Index | Thread | Search

From:
Andrew Hewus Fresh <andrew@afresh1.com>
Subject:
OpenBSD perl 5.38.2 - Call for Testing
To:
tech@openbsd.org
Date:
Wed, 21 Feb 2024 13:29:30 -0800

Download raw body.

Thread
Here is a patch to bring perl in base to 5.38.2:
https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.38.2.patch

And one for the sets if you want to build a release:
https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.38.2-sets.patch


5.38.1 was a broken release, and 5.38.2 was a security release, similar
to 5.36.3.

The big news in this release is the new "class" feature, which is a new
object system for perl, plus as seeming always a Unicode update to 15.0.

The one that is a slightly more important for folks to look at is the
new PERL_RAND_SEED environment variable, as I had to adjust our patch
to use srand48_determinsitic when folks don't actually want random
numbers.  So, additional eyes on that change would be extra nice.

https://github.com/afresh1/OpenBSD-perl/blob/perl-5.38.2/patches/GOOD/use_our_drand48.patch

There were a bunch of other changes that you can see in the perldelta:
https://metacpan.org/release/PEVANS/perl-5.38.2/view/pod/perl5380delta.pod


I had this nearly ready ~2 weeks ago before heading to South America to
visit family for vacation, which is continuing for another week, at
which point I will be incredibly busy with work and other catching up.
So, you have some time for testing!


You can see the OpenBSD changes to perl itself and get the code to run
tests on different architectures in this github repo (see the README):

https://github.com/afresh1/OpenBSD-perl/tree/perl-5.38.2
https://github.com/afresh1/OpenBSD-perl/archive/refs/heads/perl-5.38.2.tar.gz

When I get back, I'll run more tests on any missing architectures I have,
but if you do it for me, that will save some time.

The upstream version of perl is available from the metacpan.
https://metacpan.org/release/PEVANS/perl-5.38.2


If you wish to apply the attached patch to build a release,
copy the patch into your src checkout (or adjust the paths below)

# This, unfortunately, requires devel/gpatch
gpatch -p0 -uNE < OpenBSD-perl-5.38.2.patch

# Remove patch cruft
find gnu/usr.bin/perl -name '*.orig' -delete

# Add this empty file that needs to exist, but patch -E removes
touch gnu/usr.bin/perl/dist/threads/threads.h 

# Clean up any now empty directories
cd gnu/usr.bin/perl && find -d . \
    \( -type d -o -path '*/CVS' -prune \) \
    ! -name CVS \
    -exec test -e {}/CVS \; \
    -execdir sh -c 'test $( ls -1 {} | grep -v '^CVS/$' | wc -l ) -eq 0' \; \
    -exec rm -r {} \;



Index: gnu/usr.bin/perl/.travis.yml
===================================================================
RCS file: gnu/usr.bin/perl/.travis.yml
diff -N gnu/usr.bin/perl/.travis.yml
--- gnu/usr.bin/perl/.travis.yml	15 Feb 2023 01:32:01 -0000	1.1.1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-language: c
-cache: ccache
-
-os:
-  - linux
-
-compiler:
-  - gcc
-
-install:
-  - git fetch --unshallow --tags # t/porting/cmp_version.t
-  # install & enable ccache on osx
-  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install ccache; fi
-  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi
-
-env:
-    global:
-        - JOBS=4
-    matrix:
-        # exercise a variety of build options
-        # threads often cause build issues
-        - CONFIGURE_ARGS='-Uusethreads'
-        - CONFIGURE_ARGS='-Dusethreads'
-        # check long doubles
-        - CONFIGURE_ARGS='-Duseshrplib -Dusesitecustomize -Duselongdouble'
-        # exercise quadmath
-        - CONFIGURE_ARGS='-Duseshrplib -Dusequadmath -Dusecbacktrace -Dusethreads'
-
-matrix:
-  fast_finish: true
-
-script:
-  - ./Configure -des -Dusedevel -Uversiononly -Dcc="ccache $CC" $CONFIGURE_ARGS -Dprefix=$HOME/perl-blead -DDEBUGGING
-# all script commands are always run
-# rather than using one very long oneliner using '&&', just always check the build status
-  - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then TEST_JOBS=$JOBS make -j$JOBS test_harness_notty; fi
-  - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then make -j$JOBS install; fi
-  - if [ "x$TRAVIS_TEST_RESULT" = "x0" ]; then $HOME/perl-blead/bin/perlivp; fi
-
-addons:
-    apt:
-        packages:
-            - file
-            - cpio
-            - libdb-dev
-            - libgdbm-dev
-            - zlib1g-dev
-            - libbz2-dev
-
-notifications:
-## use dedicated email for smoking ?
-#  email:
-#    recipients:
-#      - perl5-porters@perl.org
-#    on_success: never  # default: change
-#    on_failure: always # default: always
-  irc:
-    nick: travisci
-    channels:
-      - "irc.perl.org#p5p-qa"
-#      - "irc.perl.org#bot-test"
-    template:
-      - "Report for %{repository} (%{commit}) from %{author} (%{elapsed_time})"
-      - "Status: %{message}"
-      - "Build URL: %{build_url}"
-      - "GitHub URL: https://github.com/%{repository_slug}/commit/%{commit}"
-    on_success: change # default: always
-    on_failure: always # default: always
-#    use_notice: true
Index: gnu/usr.bin/perl/AUTHORS
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/AUTHORS,v
diff -u -p -a -u -p -r1.11 AUTHORS
--- gnu/usr.bin/perl/AUTHORS	8 Jul 2023 14:18:35 -0000	1.11
+++ gnu/usr.bin/perl/AUTHORS	21 Feb 2024 15:47:00 -0000
@@ -12,10 +12,13 @@
 # is strictly forbidden.  (Passive distribution with the Perl source
 # code kit is, of course, allowed.)
 #
-# This should contain the preferred addresses.  Alternate addresses are in
-# Porting/checkAUTHORS.pl.
-#
-# updated_by: ./Porting/checkAUTHORS.pl --update --from=v5.30.0
+# This file contains the "canonical" or "preferred" details for our
+# contributors, and is managed by the Porting/updateAUTHORS.pl script,
+# along with .mailmap and Porting/exclude_contrib.txt. Generally you
+# should use the script to make any changes to this file, especially if
+# you wish to remove yourself. If you wish to register a new email
+# against one of these names you should update the .mailmap file
+# instead.
 -- 
 A. C. Yardley                  <yardley@tanet.net>
 A. Sinan Unur                  <nanis@cpan.org>
@@ -56,7 +59,8 @@ Albert Chin-A-Young            <china@th
 Albert Dvornik                 <bert@alum.mit.edu>
 Alberto Simões                 <ambs@cpan.org>
 Alessandro Forghieri           <alf@orion.it>
-Alex Davies                    <adavies@ptc.com>
+Alex                           <aleksandrosansan@gmail.com>
+Alex Davies                    <alex.davies501@gmail.com>
 Alex Gough                     <alex@rcon.org>
 Alex Solovey                   <a.solovey@gmail.com>
 Alex Vandiver                  <alexmv@mit.edu>
@@ -69,6 +73,7 @@ Alexander Gernler              <alexande
 Alexander Gough                <alex-p5p@earth.li>
 Alexander Hartmaier            <abraxxa@cpan.org>
 Alexander Klimov               <ask@wisdom.weizmann.ac.il>
+Alexander Nikolov              <sasho648@gmail.com>
 Alexander Smishlajev           <als@turnhere.com>
 Alexander Voronov              <alexander-voronov@yandex.ru>
 Alexandr Ciornii               <alexchorny@gmail.com>
@@ -106,6 +111,7 @@ Andrew Hamm                    <AHamm@ci
 Andrew M. Langmead             <aml@world.std.com>
 Andrew Pimlott                 <pimlott@idiomtech.com>
 Andrew Rodland                 <arodland@cpan.org>
+Andrew Ruthven                 <andrew@etc.gen.nz>
 Andrew Savige                  <ajsavige@yahoo.com.au>
 Andrew Tam                     <andrewtam000@gmail.com>
 Andrew Vignaux                 <ajv@nz.sangacorp.com>
@@ -128,6 +134,7 @@ Aristotle Pagaltzis            <pagaltzi
 Arjen Laarhoven                <arjen@nl.demon.net>
 Arkturuz                       <arkturuz@gmail.com>
 Arne Ahrend                    <aahrend@web.de>
+Arne Johannessen               <ajnn@cpan.org>
 Arnold D. Robbins              <arnold@gnu.ai.mit.edu>
 Art Green                      <Art_Green@mercmarine.com>
 Art Haas                       <ahaas@airmail.net>
@@ -148,6 +155,8 @@ Bah                            <bah@long
 Barrie Slaymaker               <barries@slaysys.com>
 Barry Friedman
 Bart Kedryna                   <bkedryna@home.com>
+Bart Van Assche                <bvanassche@acm.org>
+Bartosz Jarzyna                <bbrtj.pro@gmail.com>
 Bas van Sisseren               <bas@quarantainenet.nl>
 Beau Cox
 Ben Carter                     <bcarter@gumdrop.flyinganvil.org>
@@ -217,6 +226,7 @@ Brian S. Cashman               <bsc@umic
 Brian Strand                   <bstrand@switchmanagement.com>
 Brooks D. Boyd
 Bruce Barnett                  <barnett@grymoire.crd.ge.com>
+Bruce Gray                     <bruce.gray@acm.org>
 Bruce J. Keeler                <bkeelerx@iwa.dp.intel.com>
 Bruce P. Schuck                <bruce@aps.org>
 Bryan Stenson                  <bryan@siliconvortex.com>
@@ -283,6 +293,7 @@ Chunhui Teng                   <cteng@no
 Claes Jacobsson                <claes@surfar.nu>
 Clark Cooper                   <coopercc@netheaven.com>
 Claudio Ramirez                <nxadm@cpan.org>
+Clemens Wasser                 <clemens.wasser@gmail.com>
 Clinton A. Pierce              <clintp@geeksalad.org>
 Clinton Gormley
 Colin Kuskie                   <ckuskie@cadence.com>
@@ -331,6 +342,7 @@ Daniel P. Berrange             <dan@berr
 Daniel Perrett                 <perrettdl@googlemail.com>
 Daniel S. Lewart               <lewart@uiuc.edu>
 Daniel Yacob                   <perl@geez.org>
+danielnachun                   <daniel.nachun@gmail.com>
 Danny R. Faught                <faught@mailhost.rsn.hp.com>
 Danny Rathjens
 Danny Sadinoff                 <danny-cpan@sadinoff.com>
@@ -425,6 +437,7 @@ Earl Hood
 Ed Avis                        <eda@waniasset.com>
 Ed J                           <etj@cpan.org>
 Ed Mooring                     <mooring@Lynx.COM>
+Ed Sabol                       <esabol@users.noreply.github.com>
 Ed Santiago                    <esm@pobox.com>
 Eddy Tan                       <eddy.net@gmail.com>
 Edgar Bering                   <trizor@gmail.com>
@@ -443,7 +456,6 @@ Eric Brine                     <ikegami@
 Eric E. Coe                    <Eric.Coe@oracle.com>
 Eric Fifer                     <egf7@columbia.edu>
 Eric Herman                    <eric@freesa.org>
-Eric Lindblad                  <lindblad@gmx.com>
 Eric Melville
 Eric Promislow                 <ericp@ActiveState.com>
 Erich Rickheit
@@ -459,8 +471,10 @@ Fabien Tassin                  <tassin@e
 Father Chrysostomos            <sprout@cpan.org>
 Felipe Gasper                  <felipe@felipegasper.com>
 Felix Gallo                    <fgallo@etoys.com>
+Ferenc Erki                    <ferki@cpan.org>
 Fergal Daly                    <fergal@esatclear.ie>
 Fingle Nark                    <finglenark@gmail.com>
+Firas Khalil Khana             <firasuke@gmail.com>
 Florent Guillaume
 Florian Ragwitz                <rafl@debian.org>
 Florian Weimer                 <fweimer@redhat.com>
@@ -499,7 +513,6 @@ Gideon Israel Dsouza           <gideon@c
 Giles Lean                     <giles@nemeton.com.au>
 Giovanni Tataranni             <gtataranni@users.noreply.github.com>
 Gisle Aas                      <gisle@aas.no>
-GitHub                         <noreply@github.com>
 Glenn D. Golden                <gdg@zplane.com>
 Glenn Linderman                <perl@nevcal.com>
 Gomar                          <gomar@md.media-web.de>
@@ -721,6 +734,7 @@ John W. Krahn
 John Wright                    <john@johnwright.org>
 Johnny Lam                     <jlam@jgrind.org>
 Jon Eveland                    <jweveland@yahoo.com>
+Jon Gentle                     <atrodo@atrodo.org>
 Jon Gunnip                     <jongunnip@hotmail.com>
 Jon Orwant                     <orwant@oreilly.com>
 Jonathan Biggar                <jon@sems.com>
@@ -780,6 +794,7 @@ Ken Williams                   <ken@math
 Kenichi Ishigaki               <ishigaki@cpan.org>
 Kenneth Albanowski             <kjahds@kjahds.com>
 Kenneth Duda                   <kjd@cisco.com>
+Kenneth Ölwing                 <knth@cpan.org>
 Kent Fredric                   <kentfredric@gmail.com>
 Keong Lim                      <Keong.Lim@sr.com.au>
 Kevin Brintnall                <kbrint@rufus.net>
@@ -800,6 +815,7 @@ Kragen Sitaker                 <kragen@p
 Krishna Sethuraman             <krishna@sgi.com>
 Kriton Kyrimis                 <kyrimis@princeton.edu>
 Kurt D. Starsinic              <kstar@wolfetech.com>
+Kurt Fitzner                   <kurt@va1der.ca>
 Kyriakos Georgiou
 Lajos Veres                    <vlajos@gmail.com>
 Larry Parmelee                 <parmelee@CS.Cornell.EDU>
@@ -822,9 +838,11 @@ Leon Brocard                   <acme@ast
 Leon Timmermans                <fawaka@gmail.com>
 Les Peters                     <lpeters@aol.net>
 Lesley Binks                   <lesley.binks@gmail.com>
+Li Linjie                      <lilinjie@uniontech.com>
 Lincoln D. Stein               <lstein@cshl.org>
 Linda Walsh
 Lionel Cons                    <lionel.cons@cern.ch>
+Loren Merritt                  <pengvado@videolan.org>
 Louis Strous                   <louis.strous@gmail.com>
 Lubomir Rintel                 <lkundrak@v3.sk>
 Luc St-Louis                   <luc.st-louis@ca.transport.bombardier.com>
@@ -850,6 +868,7 @@ Marc Reisner                   <reisner.
 Marc Simpson                   <marc@0branch.com>
 Marc-Philip Werner             <marc-philip.werner@sap.com>
 Marcel Grünauer                <marcel@codewerk.com>
+Marcel Telka                   <marcel@telka.sk>
 Marco Fontani                  <MFONTANI@cpan.org>
 Marco Peereboom                <marco@conformal.com>
 Marcus Holland-Moritz          <mhx-perl@gmx.net>
@@ -864,7 +883,7 @@ Mark Dootson                   <mdootson
 Mark Fowler                    <mark@twoshortplanks.com>
 Mark Hanson
 Mark J. Reed                   <mreed@strange.turner.com>
-Mark Jason Dominus             <mjd@plover.com>
+Mark Jason Dominus             <mjd@pobox.com>
 Mark K Trettin                 <mkt@lucent.com>
 Mark Kaehny                    <kaehny@execpc.com>
 Mark Kettenis                  <kettenis@wins.uva.nl>
@@ -879,6 +898,7 @@ Mark P. Lutz                   <mark.p.l
 Mark Pease                     <peasem@primenet.com>
 Mark Pizzolato                 <mark@infocomm.com>
 Mark R. Levinson               <mrl@isc.upenn.edu>
+Mark Shelor                    <mshelor@cpan.org>
 Mark Stosberg                  <mark@summersault.com>
 Marko Asplund                  <aspa@merlot.kronodoc.fi>
 Markus Jansen                  <Markus.Jansen@ericsson.com>
@@ -916,13 +936,14 @@ Matt Turner                    <mattst88
 Matthew Black                  <black@csulb.edu>
 Matthew Green                  <mrg@splode.eterna.com.au>
 Matthew Horsfall               <wolfsage@gmail.com>
+Matthew O. Persico             <matthew.persico@gmail.com>
 Matthew Sachs                  <matthewg@zevils.com>
 Matthew T Harden               <mthard@mthard1.monsanto.com>
 Matthias Bethke                <matthias@towiski.de>
 Matthias Ulrich Neeracher      <neeracher@mac.com>
 Matthias Urlichs               <smurf@noris.net>
 Matthijs van Duin              <xmath@cpan.org>
-Mattia Barbon                  <mbarbon@dsi.unive.it>
+Mattia Barbon                  <mattia@barbon.org>
 Maurizio Loreti                <maurizio.loreti@pd.infn.it>
 Max Baker                      <max@warped.org>
 Max Maischein                  <corion@corion.net>
@@ -972,6 +993,7 @@ Mikhail Zabaluev               <mhz@alt-
 Milosz Tanski                  <mtanski@gridapp.com>
 Milton L. Hankins              <mlh@swl.msd.ray.com>
 Misty De Meo                   <mistydemeo@github.com>
+Mohammad S Anwar               <Mohammad.Anwar@yahoo.com>
 Mohammed El-Afifi              <mohammed_elafifi@yahoo.com>
 Moritz Lenz                    <moritz@casella.verplant.org>
 Moshe Kaminsky                 <kaminsky@math.huji.ac.il>
@@ -980,6 +1002,7 @@ Mr. Nobody                     <mrnobo10
 Murray Nesbitt                 <murray@nesbitt.ca>
 Nathan Glenn                   <garfieldnate@gmail.com>
 Nathan Kurz                    <nate@valleytel.net>
+Nathan Mills                   <38995150+quipyowert2@users.noreply.github.com>
 Nathan Torkington              <gnat@frii.com>
 Nathan Trapuzzano              <nbtrap@nbtrap.com>
 Neale Ferguson                 <neale@VMA.TABNSW.COM.AU>
@@ -998,6 +1021,7 @@ Nick Johnston                  <nickjohn
 Nick Logan                     <ugexe@cpan.org>
 Nick Williams                  <Nick.Williams@morganstanley.com>
 Nicolas Kaiser                 <nikai@nikai.net>
+Nicolas Mendoza                <mendoza@pvv.ntnu.no>
 Nicolas R                      <atoomic@cpan.org>
 Niels Thykier                  <niels@thykier.net>
 Nigel Sandever                 <njsandever@hotmail.com>
@@ -1080,6 +1104,7 @@ Peter J. Farley III            <pjfarley
 Peter J. Holzer                <hjp@hjp.at>
 Peter Jaspers-Fayer
 Peter John Acklam              <pjacklam@online.no>
+Peter Levine                   <plevine457@gmail.com>
 Peter Liscovius
 Peter Martini                  <PeterCMartini@GMail.com>
 Peter O'Gorman                 <peter@pogma.com>
@@ -1246,12 +1271,12 @@ Shirakata Kentaro              <argrath@
 Shishir Gundavaram             <shishir@ruby.ora.com>
 Shlomi Fish                    <shlomif@cpan.org>
 Shoichi Kaji                   <skaji@cpan.org>
+Sidney Markowitz               <sidney@sidney.com>
 Simon Cozens                   <simon@netthink.co.uk>
 Simon Glover                   <scog@roe.ac.uk>
 Simon Leinen
 Simon Parsons                  <S.Parsons@ftel.co.uk>
 Simon Schubert                 <corecode@fs.ei.tum.de>
-Sinan Unur                     <sinan@unur.com>
 Sisyphus                       <sisyphus@cpan.org>
 Sizhe Zhao                     <prc.zhao@outlook.com>
 Slaven Rezic                   <slaven@rezic.de>
@@ -1370,6 +1395,7 @@ Torsten Foertsch               <torsten.
 Torsten Schönfeld              <kaffeetisch@gmx.de>
 Trevor Blackwell               <tlb@viaweb.com>
 Tsutomu IKEGAMI                <t-ikegami@aist.go.jp>
+Tsuyoshi Watanabe              <twata_1@yahoo.co.jp>
 Tuomas J. Lukka                <tjl@lukka.student.harvard.edu>
 Tye McQueen                    <tye@metronet.com>
 Ulrich Habel                   <rhaen@NetBSD.org>
@@ -1389,12 +1415,12 @@ Vincent Pit                    <perl@pro
 Vishal Bhatia                  <vishal@deja.com>
 Vitali Peil                    <vitali.peil@uni-bielefeld.de>
 vividsnow                      <vividsnow@gmail.com>
-vividsnow                      @vividsnow
 Vlad Harchev                   <hvv@hippo.ru>
 Vladimir Alexiev               <vladimir@cs.ualberta.ca>
 Vladimir Marek                 <vlmarek@volny.cz>
 Vladimir Timofeev              <vovkasm@gmail.com>
 Volker Schatz                  <perldoc@volkerschatz.com>
+vsfos                          <vsfos@foxmail.com>
 W. Geoffrey Rommel             <grommel@sears.com>
 W. Phillip Moore               <wpm@ms.com>
 Wallace Reis                   <wreis@cpan.org>
@@ -1437,3 +1463,4 @@ Zefram                         <zefram@f
 Zsbán Ambrus                   <ambrus@math.bme.hu>
 Ævar Arnfjörð Bjarmason        <avar@cpan.org>
 Михаил Козачков                <mchlkzch@gmail.com>
+小鸡                             <345865759@163.com>
Index: gnu/usr.bin/perl/Configure
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Configure,v
diff -u -p -a -u -p -r1.54 Configure
--- gnu/usr.bin/perl/Configure	8 Jul 2023 14:18:35 -0000	1.54
+++ gnu/usr.bin/perl/Configure	21 Feb 2024 15:47:00 -0000
@@ -391,6 +391,7 @@ d_attribute_nonnull=''
 d_attribute_noreturn=''
 d_attribute_pure=''
 d_attribute_unused=''
+d_attribute_visibility=''
 d_attribute_warn_unused_result=''
 d_printf_format_null=''
 d_backtrace=''
@@ -761,6 +762,7 @@ d_semget=''
 d_semop=''
 d_sendmsg=''
 d_setegid=''
+d_setenv=''
 d_seteuid=''
 d_setgrent=''
 d_setgrent_r=''
@@ -1069,6 +1071,7 @@ i_sysselct=''
 i_sysstat=''
 i_sysstatfs=''
 i_sysstatvfs=''
+i_syssyscall=''
 i_systimes=''
 i_systypes=''
 i_sysuio=''
@@ -1207,6 +1210,11 @@ version_patchlevel_string=''
 perl5=''
 perladmin=''
 perlpath=''
+i32dformat=''
+u32XUformat=''
+u32oformat=''
+u32uformat=''
+u32xformat=''
 d_nv_preserves_uv=''
 d_nv_zero_is_allbits_zero=''
 i16size=''
@@ -1503,7 +1511,7 @@ archname=''
 usereentrant='undef'
 : List of libraries we want.
 : If anyone needs extra -lxxx, put those in a hint file.
-libswanted="cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld"
+libswanted="cl pthread socket bind inet ndbm gdbm dbm db malloc dl ld"
 libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD"
 : We probably want to search /usr/shlib before most other libraries.
 : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
@@ -2213,6 +2221,7 @@ $startsh
 xxxm=\$dflt
 $myecho
 ans='!'
+counter=42
 case "\$fastread" in
 yes) case "\$dflt" in
 	'') ;;
@@ -2287,6 +2296,12 @@ while expr "X\$ans" : "X!" >/dev/null; d
 		$myecho
 		;;
 	esac
+	counter=\`echo \$counter | awk '{ print --\$0 }'\`
+	if [ \$counter = 0 ]; then
+		echo >&4
+		echo >&4 Too many attempts asking the same question.  Giving up.
+		exit 1
+	fi
 done
 case "\$ans" in
 '') ans="\$xxxm";;
@@ -3492,7 +3507,10 @@ EOM
 			osvers="$3"
 			;;
 		dragonfly) osname=dragonfly
-			osvers="$3"
+			case "$3" in
+			    [0-9]*) osvers="$3" ;;
+			    *) osvers="$2" ;;
+			esac
 			;;
 		dynixptx*) osname=dynixptx
 			osvers=`echo "$4"|sed 's/^v//'`
@@ -3665,47 +3683,47 @@ EOM
 		fi
 	fi
 
-        case "$targetarch" in
-        '') ;;
-        *)  hostarch=$osname
-            case "$targetarch" in
-                nto*|*-nto-*)
-                    # Will load qnx.sh, which should change osname to nto
-                    osname=qnx
-                    osvers=''
-                    ;;
-                *linux-android*)
-                    # Catch arm-linux-androideabi, mipsel-linux-android,
-                    # and i686-linux-android
-                    osname=linux-android
-                    osvers=''
-                    ;;
-                *linux*)
-                    # Something like arm-linux-gnueabihf is really just
-                    # plain linux.
-                    osname=linux
-                    osvers=''
-                    ;;
-                *solaris*|*sunos*)
-                    osname=solaris
-                    # XXX perhaps we should just assume
-                    # osvers to be 2, or maybe take the value
-                    # from targetarch. Using $run before the
-                    # hints are run is somewhat icky.
-                    set X `$run $uname -a 2>/dev/null`
-                    shift
-                    case "$3" in
-                        5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
-                        *)  osvers="$3" ;;
-                    esac
-                    ;;
-                *)
+	case "$targetarch" in
+	'') ;;
+	*)  hostarch=$osname
+	    case "$targetarch" in
+		nto*|*-nto-*)
+		    # Will load qnx.sh, which should change osname to nto
+		    osname=qnx
+		    osvers=''
+		    ;;
+		*linux-android*)
+		    # Catch arm-linux-androideabi, mipsel-linux-android,
+		    # and i686-linux-android
+		    osname=linux-android
+		    osvers=''
+		    ;;
+		*linux*)
+		    # Something like arm-linux-gnueabihf is really just
+		    # plain linux.
+		    osname=linux
+		    osvers=''
+		    ;;
+		*solaris*|*sunos*)
+		    osname=solaris
+		    # XXX perhaps we should just assume
+		    # osvers to be 2, or maybe take the value
+		    # from targetarch. Using $run before the
+		    # hints are run is somewhat icky.
+		    set X `$run $uname -a 2>/dev/null`
+		    shift
+		    case "$3" in
+			5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
+			*)  osvers="$3" ;;
+		    esac
+		    ;;
+		*)
 		    osname=`echo $targetarch|sed 's,^[^-]*-,,'`
 		    osvers=''
-                ;;
-            esac
-            ;;
-        esac
+		;;
+	    esac
+	    ;;
+	esac
 
 	: Now look for a hint file osname_osvers, unless one has been
 	: specified already.
@@ -5207,26 +5225,6 @@ EOM
     esac
 fi
 
-: Check if quadmath is requested
-case "$usequadmath" in
-"$define"|true|[yY]*) usequadmath="$define" ;;
-*)                    usequadmath="$undef"  ;;
-esac
-
-: Fail if both uselongdouble and usequadmath are requested
-case "$usequadmath:$uselongdouble" in
-define:define)
-	$cat <<EOM >&4
-
-*** You requested the use of the quadmath library and use
-*** of long doubles.
-***
-*** Please select one or the other.
-EOM
-	exit 1
-	;;
-esac
-
 : Looking for optional libraries
 echo " "
 echo "Checking for optional libraries..." >&4
@@ -5243,9 +5241,6 @@ esac
 case "$usecbacktrace" in
 "$define") libswanted="$libswanted bfd" ;;
 esac
-case "$usequadmath" in
-"$define") libswanted="$libswanted quadmath" ;;
-esac
 libsfound=''
 libsfiles=''
 libsdirs=''
@@ -5265,6 +5260,16 @@ for thislib in $libswanted; do
 		$test -f "$xxx" && libstyle=shared
 	    fi
 	    if test ! -f "$xxx"; then
+		xxx=$thisdir/lib$thislib.$so$_a
+		$test -f "$xxx" && eval $libscheck
+		$test -f "$xxx" && libstyle="import"
+	    fi
+	    if test ! -f "$xxx"; then
+		xxx=$thisdir/$thislib.$so$_a
+		$test -f "$xxx" && eval $libscheck
+		$test -f "$xxx" && libstyle="import"
+	    fi
+	    if test ! -f "$xxx"; then
 		xxx=$thisdir/lib$thislib.$so
 	        $test -f "$xxx" && eval $libscheck
 		$test -f "$xxx" && libstyle=shared
@@ -5299,14 +5304,14 @@ for thislib in $libswanted; do
 		case " $dflt " in
 		*"-l$thislib "*);;
 		*) dflt="$dflt -l$thislib"
-                   libsfound="$libsfound $xxx"
-                   yyy=`basename $xxx`
-                   libsfiles="$libsfiles $yyy"
-                   yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
-                   case " $libsdirs " in
-                   *" $yyy "*) ;;
-                   *) libsdirs="$libsdirs $yyy" ;;
-                   esac
+		   libsfound="$libsfound $xxx"
+		   yyy=`basename $xxx`
+		   libsfiles="$libsfiles $yyy"
+		   yyy=`echo $xxx|$sed -e "s%/$yyy\\$%%"`
+		   case " $libsdirs " in
+		   *" $yyy "*) ;;
+		   *) libsdirs="$libsdirs $yyy" ;;
+		   esac
 		   ;;
 		esac
 		break
@@ -7141,6 +7146,26 @@ if test "${api_revision}${api_version}${
 	api_versionstring='5.005'
 fi
 
+: Check if quadmath is requested
+case "$usequadmath" in
+"$define"|true|[yY]*) usequadmath="$define" ;;
+*)                    usequadmath="$undef"  ;;
+esac
+
+: Fail if both uselongdouble and usequadmath are requested
+case "$usequadmath:$uselongdouble" in
+define:define)
+	$cat <<EOM >&4
+
+*** You requested the use of the quadmath library and use
+*** of long doubles.
+***
+*** Please select one or the other.
+EOM
+	exit 1
+	;;
+esac
+
 : determine the architecture name
 echo " "
 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
@@ -7758,36 +7783,6 @@ case "$inc_version_list" in
 esac
 $rm -f getverlist
 
-: see if malloc/malloc.h has to be included
-set malloc/malloc.h i_mallocmalloc
-eval $inhdr
-
-: see if this is a malloc.h system
-: we want a real compile instead of Inhdr because some systems have a
-: malloc.h that just gives a compile error saying to use stdlib.h instead
-echo " "
-$cat >try.c <<EOCP
-#include <stdlib.h>
-#include <malloc.h>
-#$i_mallocmalloc I_MALLOCMALLOC
-#ifdef I_MALLOCMALLOC
-# include <malloc/malloc.h>
-#endif
-
-int main () { return 0; }
-EOCP
-set try
-if eval $compile; then
-    echo "<malloc.h> found." >&4
-    val="$define"
-else
-    echo "<malloc.h> NOT found." >&4
-    val="$undef"
-fi
-$rm_try
-set i_malloc
-eval $setvar
-
 : check for length of pointer
 echo " "
 case "$ptrsize" in
@@ -10756,7 +10751,7 @@ while test $# -ge 2; do
     shift 2
 done
 cat >> try.c <<'EOCP'
-#define	_(args) args
+#define _(args) args
 EOCP
 echo "$foo" >> try.c
 echo 'int no_real_function_has_this_name _((void)) { return 0; }' >> try.c
@@ -11321,6 +11316,34 @@ set d_attribute_always_inline
 eval $setvar
 $rm -f attrib*
 
+: Look for GCC-style attribute visibility
+case "$d_attribute_visibility" in
+'')
+echo " "
+echo "Checking whether your compiler can handle __attribute__((visibility)) ..." >&4
+$cat >attrib.c <<'EOCP'
+#include <stdio.h>
+__attribute__((visibility("hidden"))) int I_will_be_hidden(void);
+EOCP
+if $cc $ccflags -c attrib.c >attrib.out 2>&1 ; then
+	if $compiler_warning attrib.out >/dev/null 2>&1; then
+		echo "Your C compiler doesn't support __attribute__((visibility))."
+		val="$undef"
+	else
+		echo "Your C compiler supports __attribute__((visibility))."
+		val="$define"
+	fi
+else
+	echo "Your C compiler doesn't seem to understand __attribute__ at all."
+	val="$undef"
+fi
+;;
+*) val="$d_attribute_visibility" ;;
+esac
+set d_attribute_visibility
+eval $setvar
+$rm -f attrib*
+
 : see if getpgrp exists
 set getpgrp d_getpgrp
 eval $inlibc
@@ -16198,6 +16221,36 @@ eval $inlibc
 set llroundl d_llroundl
 eval $inlibc
 
+: see if malloc/malloc.h has to be included
+set malloc/malloc.h i_mallocmalloc
+eval $inhdr
+
+: see if this is a malloc.h system
+: we want a real compile instead of Inhdr because some systems have a
+: malloc.h that just gives a compile error saying to use stdlib.h instead
+echo " "
+$cat >try.c <<EOCP
+#include <stdlib.h>
+#include <malloc.h>
+#$i_mallocmalloc I_MALLOCMALLOC
+#ifdef I_MALLOCMALLOC
+# include <malloc/malloc.h>
+#endif
+
+int main () { return 0; }
+EOCP
+set try
+if eval $compile; then
+    echo "<malloc.h> found." >&4
+    val="$define"
+else
+    echo "<malloc.h> NOT found." >&4
+    val="$undef"
+fi
+$rm_try
+set i_malloc
+eval $setvar
+
 : see if localtime_r exists
 set localtime_r d_localtime_r
 eval $inlibc
@@ -16816,17 +16869,49 @@ case "$usequadmath:$i_quadmath" in
 define:define)
   nvtype="__float128"
   nvsize=16
-  case "$libs" in
-  *quadmath*) ;;
-  *) $cat <<EOM >&4
+  : libquadmath is not in the usual places, and the place
+  : changes if the compiler is upgraded.  So ask the compiler if it
+  : can find it.
+  : We do not need to save this, if it fails we abort.
+  libs="$libs -lquadmath"
+  set try
+  $cat >try.c <<EOM
+#include <quadmath.h>
+#include <stdio.h>
+int main(int argc, char *argv[]) {
+  __float128 x = 1.0;
+  if (fabsq(logq(x)) > 1e-6) {
+     fputs("quadmath is broken\n", stderr);
+     return 1;
+  }
+  puts("define");
+  return 0;
+}
+EOM
+  yyy=''
+  if eval $compile_ok; then
+      yyy=`$run ./try`
+      case "$yyy" in
+      define) ;;
+      *) cat <<EOM >&4
+
+*** You requested the use of the quadmath library, but
+*** it appears to be nonfunctional.
+*** Cannot continue, aborting.
+
+EOM
+       exit 1
+       ;;
+       esac
+  else
+      $cat <<EOM >&4
 
 *** You requested the use of the quadmath library, but you
 *** do not seem to have the quadmath library installed.
 *** Cannot continue, aborting.
 EOM
     exit 1
-    ;;
-  esac
+  fi
   ;;
 define:*) $cat <<EOM >&4
 
@@ -16983,6 +17068,10 @@ $cat <<EOP >try.c
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
+#$i_inttypes I_INTTYPES
+#ifdef I_INTTYPES
+#include <inttypes.h>
+#endif
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
@@ -18035,6 +18124,10 @@ eval $inlibc
 set setegid d_setegid
 eval $inlibc
 
+: see if setenv exists
+set setenv d_setenv
+eval $inlibc
+
 : see if seteuid exists
 set seteuid d_seteuid
 eval $inlibc
@@ -19717,9 +19810,13 @@ eval $inlibc
 set syscall d_syscall
 eval $inlibc
 
+: see if this is a sys/syscall.h system
+set sys/syscall.h i_syssyscall
+eval $inhdr
+
 : see if prototype for syscall is available
 echo " "
-set d_syscallproto syscall $i_unistd unistd.h
+set d_syscallproto syscall $i_unistd unistd.h $i_syssyscall sys/syscall.h
 eval $hasproto
 
 : see if sysconf exists
@@ -20077,6 +20174,10 @@ EOM
 #ifdef I_STDLIB
 #include <stdlib.h>
 #endif
+#$i_inttypes I_INTTYPES
+#ifdef I_INTTYPES
+#include <inttypes.h>
+#endif
 #include <sys/types.h>
 typedef $uvtype UV;
 int main()
@@ -21585,7 +21686,7 @@ EOCP
 		case "$yyy" in
 		12345678901)
 			sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
-			sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64;
+			sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIX64;
 			echo "We will use the C9X style."
 			;;
 		esac
@@ -21810,6 +21911,49 @@ EOM
 *)  groupstype="$gidtype";;
 esac
 
+: Check format strings for internal 32bit types
+echo " "
+$echo "Checking the format strings to be used for Perl's internal 32bit-types..." >&4
+
+case "$i32dformat" in
+'')	case "$i32type" in
+	int)
+		i32dformat='"d"'
+		u32uformat='"u"'
+		u32oformat='"o"'
+		u32xformat='"x"'
+		u32XUformat='"X"'
+		;;
+	long)
+		i32dformat='"ld"'
+		u32uformat='"lu"'
+		u32oformat='"lo"'
+		u32xformat='"lx"'
+		u32XUformat='"lX"'
+		;;
+	int_least32_t)		: will not happen currently
+		i32dformat=PRIdLEAST32
+		u32uformat=PRIuLEAST32
+		u32oformat=PRIoLEAST32
+		u32xformat=PRIxLEAST32
+		u32XUformat=PRIXLEAST32
+		;;
+	int32_t)
+		i32dformat=PRId32
+		u32uformat=PRIu32
+		u32oformat=PRIo32
+		u32xformat=PRIx32
+		u32XUformat=PRIX32
+		;;
+	esac ;;
+esac
+
+case "$i32dformat" in
+'') echo "$0: Fatal: failed to find format strings for 32-bit integers, cannot continue." >&4
+    exit 1
+    ;;
+esac
+
 : check whether make sets MAKE
 echo " "
 echo "Checking if your $make program sets \$(MAKE)..." >&4
@@ -23665,7 +23809,7 @@ EOF
 for i in \`$cc -v -c tmp.c 2>&1 $postprocess_cc_v\`
 do
 	case "\$i" in
-	-D*) echo "\$i" | $sed 's/^-D//';;
+	-D*) echo "\$i" | $sed 's/^-D//;s/['\''\"]//g';;
 	-A*) $test "$gccversion" && echo "\$i" | $sed 's/^-A//' | $sed 's/\(.*\)(\(.*\))/\1=\2/';;
 	esac
 done
@@ -24370,7 +24514,7 @@ case " $extensions"  in
 *" Fcntl "*"_File "*" IO "*) ;; # GDBM_File
 *" Fcntl "*" IO "*"_File "*) ;; # NDBM_File
 *) echo "WARNING: Extensions DB_File or *DBM_File, Fcntl, and IO not configured." >&4
-   echo "WARNING: The Perl you are building will be quite crippled." >& 4
+   echo "WARNING: The Perl you are building will be quite crippled." >&4
    ;;
 esac
 
@@ -24585,6 +24729,7 @@ d_attribute_nonnull='$d_attribute_nonnul
 d_attribute_noreturn='$d_attribute_noreturn'
 d_attribute_pure='$d_attribute_pure'
 d_attribute_unused='$d_attribute_unused'
+d_attribute_visibility='$d_attribute_visibility'
 d_attribute_warn_unused_result='$d_attribute_warn_unused_result'
 d_backtrace='$d_backtrace'
 d_bsd='$d_bsd'
@@ -24953,6 +25098,7 @@ d_semget='$d_semget'
 d_semop='$d_semop'
 d_sendmsg='$d_sendmsg'
 d_setegid='$d_setegid'
+d_setenv='$d_setenv'
 d_seteuid='$d_seteuid'
 d_setgrent='$d_setgrent'
 d_setgrent_r='$d_setgrent_r'
@@ -25208,6 +25354,7 @@ html3dir='$html3dir'
 html3direxp='$html3direxp'
 i16size='$i16size'
 i16type='$i16type'
+i32dformat='$i32dformat'
 i32size='$i32size'
 i32type='$i32type'
 i64size='$i64size'
@@ -25278,6 +25425,7 @@ i_syssockio='$i_syssockio'
 i_sysstat='$i_sysstat'
 i_sysstatfs='$i_sysstatfs'
 i_sysstatvfs='$i_sysstatvfs'
+i_syssyscall='$i_syssyscall'
 i_systime='$i_systime'
 i_systimek='$i_systimek'
 i_systimes='$i_systimes'
@@ -25595,8 +25743,12 @@ troff='$troff'
 ttyname_r_proto='$ttyname_r_proto'
 u16size='$u16size'
 u16type='$u16type'
+u32XUformat='$u32XUformat'
+u32oformat='$u32oformat'
 u32size='$u32size'
 u32type='$u32type'
+u32uformat='$u32uformat'
+u32xformat='$u32xformat'
 u64size='$u64size'
 u64type='$u64type'
 u8size='$u8size'
Index: gnu/usr.bin/perl/EXTERN.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/EXTERN.h,v
diff -u -p -a -u -p -r1.14 EXTERN.h
--- gnu/usr.bin/perl/EXTERN.h	15 Feb 2023 01:36:12 -0000	1.14
+++ gnu/usr.bin/perl/EXTERN.h	21 Feb 2024 15:47:00 -0000
@@ -9,10 +9,11 @@
  */
 
 /*
- * EXT  designates a global var which is defined in perl.h
- * dEXT designates a global var which is defined in another
- *      file, so we can't count on finding it in perl.h
- *      (this practice should be avoided).
+ * EXT:  designates a global var which is defined in perl.h
+ *
+ * dEXT: designates a global var which is defined in another
+ *       file, so we can't count on finding it in perl.h
+ *       (this practice should be avoided).
  */
 #undef EXT
 #undef dEXT
@@ -52,6 +53,6 @@
 #  endif
 
 #undef INIT
-#define INIT(x)
+#define INIT(...)
 
 #undef DOINIT
Index: gnu/usr.bin/perl/INSTALL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/INSTALL,v
diff -u -p -a -u -p -r1.30 INSTALL
--- gnu/usr.bin/perl/INSTALL	23 Dec 2023 21:02:20 -0000	1.30
+++ gnu/usr.bin/perl/INSTALL	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see F<pod/perlpod.pod>) which is specially
 designed to be readable as is.
@@ -90,10 +92,10 @@ to F<pod/perldelta.pod> for more detaile
 
 =head3 Compatibility with earlier versions
 
-B<WARNING:> This version is not binary compatible with versions of Perl
-earlier than 5.36.0.  If you have built extensions (i.e. modules that
-include C code) using an earlier version of Perl, you will need to
-rebuild and reinstall those extensions.
+B<WARNING:> This version is not binary compatible with earlier versions
+of Perl.  If you have built extensions (i.e. modules that include C code)
+using an earlier version of Perl, you will need to rebuild and reinstall
+those extensions.
 
 Pure perl modules without XS or C code should continue to work fine
 without reinstallation.  See the discussion below on
@@ -101,11 +103,18 @@ L<"Coexistence with earlier versions of 
 
 The standard extensions supplied with Perl will be handled automatically.
 
-On a related issue, old modules may possibly be affected by the changes
-in the Perl language in the current release.  Please see
-F<pod/perldelta.pod> for a description of what's changed.  See your
-installed copy of the perllocal.pod file for a (possibly incomplete)
-list of locally installed modules.  Also see the L<CPAN> module's
+On a related issue, old modules may possibly be affected by the changes in the
+Perl language in the current release.  We try hard to make new features
+"opt-in", such that existing code will work unchanged, and attempt to identify
+where bug fixes might expose code which was relying on incorrect interpreter
+behaviour.  Please see F<pod/perldelta.pod> for a description of what's
+changed between this and the previous release.  If you are upgrading from an
+earlier release, please also check the perldeltas describing changes for the
+intermediate releases, to get a full picture of what changes might affect your
+installation.
+
+See your installed copy of the perllocal.pod file for a (possibly
+incomplete) list of locally installed modules. Also see the L<CPAN> module's
 C<autobundle> function for one way to make a "bundle" of your currently
 installed modules.
 
@@ -411,6 +420,38 @@ the compiler dependency, you may need to
 At C level the type is called C<__float128> (note, not "long double"),
 but Perl source knows it as NV.  (This is not "long doubles".)
 
+=head3 Taint Support
+
+Traditional perl has provided a security mechanism based on marking
+input data as untrusted unless it has been validated by a regex. This
+mechanism is called tainting and is enabled with the -T or -t options on
+the command line. This support has a performance cost on all code
+executed. It is possible to disable this support by providing the
+setting C<-Accflags=-DNO_TAINT_SUPPORT> or the setting
+C<-Accflags=-DSILENT_NO_TAINT_SUPPORT> to Configure.
+
+The former option C<NO_TAINT_SUPPORT> is more secure and disables taint
+support while making the use of the C<-T> or C<-t> options which
+normally enable taint support into an untrappable exception to ensure
+that no-one uses them while expecting taint checks to run. With this
+build mode there can be no confusion if a script supports taint or not.
+
+The latter option, C<SILENT_NO_TAINT_SUPPORT> is less secure but more
+flexible in that it silently disables taint support while ignoring the
+C<-T> and C<-t> command line options entirely. In this build mode it is
+possible to run a script with the C<-T> or C<-t> option and expect taint
+support but not get it, so this mode is only recommended to people who
+really know what they are doing.
+
+Both modes improve performance although the amount depends on your
+workload. It is not unreasonable to expect a 5%-10% improvement in
+performance by using one of these options. At this time this build mode
+is supported but not recommended, and if you chose to use such a perl
+you do so at your own risk. It is possible that there may be
+interoperability issues with CPAN distributions as many distributions
+are unaware of this build mode and will expect test scripts to pass or
+to detect unvalidated data when run under the C<-T> or C<-t>.
+
 =head3 Algorithmic Complexity Attacks on Hashes
 
 Perl 5.18 reworked the measures used to secure its hash function
@@ -450,30 +491,39 @@ storage with 256 32-bit random values as
 for seeding the SBOX32 storage is very efficient, and populating the table
 required for hashing even fairly long keys is negligible as we only do it
 during startup. By default we build with SBOX32 enabled, but you can change
-that by setting
+that by setting the C<PERL_HASH_USE_SBOX32_ALSO> in the Configure process,
+with something like this
+
+   -Accflags='-DPERL_HASH_USE_SBOX32_ALSO=0'
 
-   PERL_HASH_USE_SBOX32_ALSO
+or alternatively you can use the simple define C<PERL_HASH_NO_SBOX32> like this:
 
-to zero in configure. By default Perl will use SBOX32 to hash strings 24 bytes
-or shorter, you can change this length by setting
+    -Accflags='-DPERL_HASH_NO_SBOX32'
 
-    SBOX32_MAX_LEN
+By default Perl will use SBOX32 to hash strings 24 bytes
+or shorter, you can change this length by setting C<SBOX32_MAX_LEN>
+to the desired length, with the maximum length being 256. For example with
+this:
 
-to the desired length, with the maximum length being 256.
+    -Accflags='-DSBOX_MAX_LEN=128'
 
 As of Perl 5.18 the order returned by keys(), values(), and each() is
 non-deterministic and distinct per hash, and the insert order for
 colliding keys is randomized as well, and perl allows for controlling this
 by the PERL_PERTURB_KEYS environment setting. You can disable this behavior
-entirely with the define
+entirely with the define C<PERL_PERTURB_KEYS_DISABLED> with
 
-    PERL_PERTURB_KEYS_DISABLED
+    -Accflags='-DPERL_PERTURB_KEYS_DISABLED'
 
 You can disable the environment variable checks and compile time specify
-the type of key traversal randomization to be used by defining one of these:
+the type of key traversal randomization to be used by defining either
+C<PERL_PERTURB_KEYS_RANDOM> or C<PERL_PERTURB_KEYS_DETERMINISTIC> with
+
+    -Accflags='-DPERL_PERTURB_KEYS_RANDOM'
 
-    PERL_PERTURB_KEYS_RANDOM
-    PERL_PERTURB_KEYS_DETERMINISTIC
+or
+
+    -Accflags='-DPERL_PERTURB_KEYS_DETERMINISTIC'
 
 Since Perl 5.18 the seed used for the hash function is randomly selected
 at process start, which can be overridden by specifying a seed by setting
@@ -489,9 +539,9 @@ DETERMINISTIC in this context means "if 
 the same results should be observed".
 
 You can change this behavior so that your perl is built with a hard coded
-seed with the define
+seed with the define C<NO_HASH_SEED> by providing to Configure
 
-    NO_HASH_SEED
+    -Accflags='-DNO_HASH_SEED'
 
 Note that if you do this you should modify the code in hv_func.h to specify
 your own key. In the future this define may be renamed and replaced with one
@@ -519,6 +569,38 @@ C<-Accflags=-DNO_PERL_HASH_ENV>.
 The C<PERL_HASH_SEED_DEBUG> environment variable can be disabled by
 configuring perl with C<-Accflags=-DNO_PERL_HASH_SEED_DEBUG>.
 
+=head3 MISCELLANEOUS CONFIG
+
+Perl uses various defines to control defaults for its behavior. These
+values are chosen to represent "sane" config, but users can override
+these values in their builds if they wish. This is a list of such
+settings.
+
+=over 2
+
+=item PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT
+
+This define is used to control the default maximum number of nested
+eval/BEGIN statements, and in this context require should be
+understood to be a special form of eval so this means require/BEGIN
+and "use" statements as well.
+
+Currently each C<BEGIN> block inside of an C<eval EXPR> or C<require>
+operation will use a fairly high number of frames of the perl internal
+C stack, and this value is used to prevent stack overflows. Normally
+it is defaulted to 1000 but the default can be configured to another
+value, for instance 100, like this
+
+  -Accflags='-DPERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT=100'
+
+
+If you don't know what this is then it is safe to ignore it. Do not
+configure this to 0 or another very low value, it will break a lot of
+code. If you want to set it to a low value use the run time variable
+C<${^MAX_NESTED_EVAL_BEGIN_BLOCKS}> instead.
+
+=back
+
 =head3 SOCKS
 
 Perl can be configured to be 'socksified', that is, to use the SOCKS
@@ -612,7 +694,7 @@ for example:
 
     18126:./miniperl: /sbin/loader: Fatal Error: cannot map libperl.so
 
-There is also an potential problem with the shared perl library if you
+There is also a potential problem with the shared perl library if you
 want to have more than one "flavor" of the same version of perl (e.g.
 with and without -DDEBUGGING).  For example, suppose you build and
 install a standard Perl 5.10.0 with a shared library.  Then, suppose you
@@ -637,21 +719,6 @@ architecture-dependent library for your 
 You can do this by changing all the *archlib* variables in config.sh to
 point to your new architecture-dependent library.
 
-=head3 Environment access
-
-Perl often needs to write to the program's environment, such as when
-C<%ENV> is assigned to. Many implementations of the C library function
-C<putenv()> leak memory, so where possible perl will manipulate the
-environment directly to avoid these leaks. The default is now to perform
-direct manipulation whenever perl is running as a stand alone interpreter,
-and to call the safe but potentially leaky C<putenv()> function when the
-perl interpreter is embedded in another application. You can force perl
-to always use C<putenv()> by compiling with
-C<-Accflags="-DPERL_USE_SAFE_PUTENV">, see section L</"Altering Configure
-variables for C compiler switches etc.">.  You can force an embedded perl
-to use direct manipulation by setting C<PL_use_safe_putenv = 0;> after
-the C<perl_construct()> call.
-
 =head3 External glob
 
 Before File::Glob entered core in 5.6.0 globbing was implemented by shelling
@@ -683,7 +750,7 @@ The directories set up by Configure fall
 
 =item Directories for the perl distribution
 
-By default, Configure will use the following directories for 5.36.3.
+By default, Configure will use the following directories for 5.38.2.
 $version is the full perl version number, including subversion, e.g.
 5.12.3, and $archname is a string like sun4-sunos,
 determined by Configure.  The full definitions of all Configure
@@ -826,7 +893,7 @@ separated list of directories, like this
 
        sh Configure -Accflags='-DAPPLLIB_EXP=\"/usr/libperl\"'
 
-The directories defined by APPLLIB_EXP get added to @INC I<first>,
+The directories defined by APPLLIB_EXP get added to @INC B<first>,
 ahead of any others, and so provide a way to override the standard perl
 modules should you, for example, want to distribute fixes without
 touching the perl distribution proper.  And, like otherlib dirs,
@@ -1258,6 +1325,13 @@ options.  Try
 
 for a listing.
 
+Unrecognized arguments with a double dash prefix produce an error.
+
+Any other arguments are passed through to C<Configure>, so you could
+build a threaded perl with:
+
+        CC=gcc ./configure.gnu -Dusethreads
+
 (The file is called configure.gnu to avoid problems on systems
 that would not distinguish the files "Configure" and "configure".)
 
@@ -2506,8 +2580,8 @@ L<https://www.chiark.greenend.org.uk/~sg
 
 =head1 Coexistence with earlier versions of perl 5
 
-Perl 5.36.3 is not binary compatible with versions of Perl earlier than.
-5.36.0.  In other words, you will have to recompile your XS modules.
+Perl 5.38.2 is not binary compatible with earlier versions of Perl.
+In other words, you will have to recompile your XS modules.
 
 In general, you can usually safely upgrade from one stable version of Perl
 (e.g. 5.30.0) to another similar minor version (e.g. 5.30.1) without
@@ -2581,9 +2655,9 @@ won't interfere with another version.  (
 libraries after 5.6.0, but not for executables. TODO?)  One convenient
 way to do this is by using a separate prefix for each version, such as
 
-	sh Configure -Dprefix=/opt/perl5.36.3
+	sh Configure -Dprefix=/opt/perl5.38.2
 
-and adding /opt/perl5.36.3/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.38.2/bin to the shell PATH variable.  Such users
 may also wish to add a symbolic link /usr/local/bin/perl so that
 scripts can still start with #!/usr/local/bin/perl.
 
@@ -2596,13 +2670,13 @@ seriously consider using a separate dire
 subversions may not have all the compatibility wrinkles ironed out
 yet.
 
-=head2 Upgrading from 5.35.11 or earlier
+=head2 Upgrading from 5.36.0 or earlier
 
-B<Perl 5.36.3 may not be binary compatible with Perl 5.35.11 or
+B<Perl 5.38.2 may not be binary compatible with Perl 5.36.0 or
 earlier Perl releases.>  Perl modules having binary parts
 (meaning that a C compiler is used) will have to be recompiled to be
-used with 5.36.3.  If you find you do need to rebuild an extension with
-5.36.3, you may safely do so without disturbing the older
+used with 5.38.2.  If you find you do need to rebuild an extension with
+5.38.2, you may safely do so without disturbing the older
 installations.  (See L<"Coexistence with earlier versions of perl 5">
 above.)
 
@@ -2635,15 +2709,15 @@ Firstly, the bare minimum to run this sc
      print("$f\n");
   }
 
-in Linux with perl-5.36.3 is as follows (under $Config{prefix}):
+in Linux with perl-5.38.2 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.36.3/strict.pm
-  ./lib/perl5/5.36.3/warnings.pm
-  ./lib/perl5/5.36.3/i686-linux/File/Glob.pm
-  ./lib/perl5/5.36.3/feature.pm
-  ./lib/perl5/5.36.3/XSLoader.pm
-  ./lib/perl5/5.36.3/i686-linux/auto/File/Glob/Glob.so
+  ./lib/perl5/5.38.2/strict.pm
+  ./lib/perl5/5.38.2/warnings.pm
+  ./lib/perl5/5.38.2/i686-linux/File/Glob.pm
+  ./lib/perl5/5.38.2/feature.pm
+  ./lib/perl5/5.38.2/XSLoader.pm
+  ./lib/perl5/5.38.2/i686-linux/auto/File/Glob/Glob.so
 
 Secondly, for perl-5.10.1, the Debian perl-base package contains 591
 files, (of which 510 are for lib/unicore) totaling about 3.5MB in its
@@ -2756,10 +2830,15 @@ by perl itself; for source compatibility
 completely removed.
 
 =head2 C<-DNO_PERL_INTERNAL_RAND_SEED>
-X<PERL_INTERNAL_RAND_SEED>
 
 If you configure perl with C<-Accflags=-DNO_PERL_INTERNAL_RAND_SEED>,
 perl will ignore the C<PERL_INTERNAL_RAND_SEED> environment variable.
+
+=head2 C<-DNO_PERL_RAND_SEED>
+X<PERL_RAND_SEED>
+
+If you configure perl with C<-Accflags=-DNO_PERL_RAND_SEED>,
+perl will ignore the C<PERL_RAND_SEED> environment variable.
 
 =head1 DOCUMENTATION
 
Index: gnu/usr.bin/perl/INTERN.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/INTERN.h,v
diff -u -p -a -u -p -r1.11 INTERN.h
--- gnu/usr.bin/perl/INTERN.h	15 Feb 2023 01:36:12 -0000	1.11
+++ gnu/usr.bin/perl/INTERN.h	21 Feb 2024 15:47:00 -0000
@@ -46,6 +46,6 @@
 #  endif
 
 #undef INIT
-#define INIT(x) = x
+#define INIT(...) = __VA_ARGS__
 
 #define DOINIT
Index: gnu/usr.bin/perl/MANIFEST
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/MANIFEST,v
diff -u -p -a -u -p -r1.69 MANIFEST
--- gnu/usr.bin/perl/MANIFEST	23 Dec 2023 21:02:20 -0000	1.69
+++ gnu/usr.bin/perl/MANIFEST	21 Feb 2024 15:47:00 -0000
@@ -1,146 +1,342 @@
-.dir-locals.el			Emacs control file
-.editorconfig			EditorConfig style file
-.lgtm.yml			LGTM.com configuration file
-.metaconf-exclusions.txt	Symbols that should ignored when generating Configure
-.travis.yml		continuous integration on github (where enabled)
-amigaos4/amigaio.c	AmigaOS4 port
-amigaos4/amigaio.h	AmigaOS4 port
-amigaos4/amigaos.c	AmigaOS4 port
-amigaos4/amigaos.h	AmigaOS4 port
-amigaos4/config.sh	AmigaOS4 config
-Artistic		The "Artistic License"
-asan_ignore		Errors to skip under clang's Addresss Sanitizer
-AUTHORS			Contact info for contributors
-autodoc.pl		Creates pod/perlintern.pod and pod/perlapi.pod
-av.c			Array value code
-av.h			Array value header
-builtin.c		Functions in the builtin:: namespace
-caretx.c		C file to create $^X
-cflags.SH		A script that emits C compilation flags per file
-Changes			Describe how to peruse changes between releases
-charclass_invlists.h	Compiled-in inversion lists
-CODE_OF_CONDUCT.md	Information on where to find the Standards of Conduct
-config.over		Site-specific overrides for Configure defaults
-config_h.SH		Produces config.h
-configpm		Produces lib/Config.pm
-Configure		Portability tool
-configure.com		Configure-equivalent for VMS
-configure.gnu		Crude emulation of GNU configure
-cop.h			Control operator header
-Copying			The GNU General Public License
+.dir-locals.el				Emacs control file
+.editorconfig				EditorConfig style file
+.lgtm.yml				LGTM.com configuration file
+.metaconf-exclusions.txt		Symbols that should ignored when generating Configure
+Artistic				The "Artistic License"
+asan_ignore				Errors to skip under clang's Addresss Sanitizer
+AUTHORS					Contact info for contributors
+autodoc.pl				Creates pod/perlintern.pod and pod/perlapi.pod
+av.c					Array value code
+av.h					Array value header
+builtin.c				Functions in the builtin:: namespace
+caretx.c				C file to create $^X
+cflags.SH				A script that emits C compilation flags per file
+Changes					Describe how to peruse changes between releases
+charclass_invlists.h			Compiled-in inversion lists
+class.c					Internals of the `use feature 'class'` object system
+CODE_OF_CONDUCT.md			Information on where to find the Standards of Conduct
+config.over				Site-specific overrides for Configure defaults
+config_h.SH				Produces config.h
+configpm				Produces lib/Config.pm
+Configure				Portability tool
+configure.com				Configure-equivalent for VMS
+configure.gnu				Crude emulation of GNU configure
+cop.h					Control operator header
+Copying					The GNU General Public License
+cv.h					Code value header
+deb.c					Debugging routines
+doio.c					I/O operations
+doop.c					Support code for various operations
+dosish.h				Some defines for MS/DOSish machines
+dquote.c				Functions for double quotish contexts
+dump.c					Debugging output
+ebcdic_tables.h				Generated tables included in utfebcdic.h
+embed.fnc				Database used by embed.pl
+embed.h					Maps symbols to safer names
+embedvar.h				C namespace management
+EXTERN.h				Included before foreign .h files
+fakesdio.h				stdio in terms of PerlIO
+feature.h				Feature header
+form.h					Public declarations for formats
+generate_uudmap.c			Generate uudmap.h, the uuencode decoding map
+git_version.h				Pre-generated git_version.h for OpenBSD
+globals.c				File to declare global symbols (for shared library)
+globvar.sym				Global variables that need hiding when embedded
+gv.c					Glob value code
+gv.h					Glob value header
+handy.h					Handy definitions
+hv.c					Hash value code
+hv.h					Hash value header
+hv_func.h				Hash value static inline function header
+hv_macro.h				Macros used by hv_func.h
+inline.h				Static inline functions
+INSTALL					Detailed installation instructions
+install_lib.pl				functions shared between install* scripts
+installhtml				Perl script to install html files for pods
+installman				Perl script to install man pages for pods
+installperl				Perl script to do "make install" dirty work
+INTERN.h				Included before domestic .h files
+intrpvar.h				Variables held in each interpreter instance
+invlist_inline.h			Inline functions for handling inversion lists
+iperlsys.h				Perl's interface to the system
+keywords.c				Perl_keyword(), generated by regen/keywords.pl
+keywords.h				The keyword numbers
+l1_char_class_tab.h			256 word bit table of character classes (for handy.h)
+locale.c				locale-specific utility functions
+make_ext.pl				Used by Makefile to execute extension Makefiles
+make_patchnum.pl			Script to generate git_version.h and lib/Config_git.pl files for all OS'es
+makedef.pl				Create symbol export lists for linking
+makedepend.SH				Precursor to makedepend
+makedepend_file.SH			Precursor to makedepend_file
+Makefile.micro				microperl Makefile
+Makefile.SH				A script that generates Makefile
+malloc.c				A version of malloc you might not want
+malloc_ctl.h				A version of malloc you might not want
+MANIFEST				This list of files
+mathoms.c				A home for binary-compatible code artifacts
+META.json				Distribution meta-data in JSON
+META.yml				Distribution meta-data in YAML
+metaconfig.h				Control file for the metaconfig process
+metaconfig.SH				Control file for the metaconfig process
+mg.c					Magic code
+mg.h					Magic header
+mg_names.inc				Generated magic names used by dump.c
+mg_raw.h				Generated magic data used by generate_uudmap.c
+mg_vtable.h				Generated magic vtable data
+miniperlmain.c				Basic perl w/o dynamic loading or extensions
+mkppport				A script that distributes ppport.h
+mkppport.lst				List of extensions that need a ppport.h
+mro_core.c				Method Resolution Order code
+myconfig.SH				Prints summary of the current configuration
+mydtrace.h				Support for optional DTrace probes
+nostdio.h				Cause compile error on stdio calls
+numeric.c				Miscellaneous numeric conversion routines
+op.c					Opcode syntax tree code
+op.h					Opcode syntax tree header
+op_reg_common.h				Common parts of op.h, regexp.h header
+opcode.h				Automatically generated opcode header
+opnames.h				Automatically generated opcode header
+overload.h				generated overload enum (public)
+overload.inc				generated overload name table (implementation)
+PACKAGING				notes and best practice for packaging perl 5
+packsizetables.inc			The generated packprops array used in pp_pack.c
+pad.c					Scratchpad functions
+pad.h					Scratchpad headers
+parser.h				parser object header
+patchlevel.h				The current patch level of perl
+peep.c					The peephole optimizer and optree finalizer
+perl.c					main()
+perl.h					Global declarations
+perl_inc_macro.h			macro used to set \@INC using S_incpush_use_sep
+perl_langinfo.h				Perl's version of <langinfo.h>
+perl_siphash.h				Implementation of SipHash
+perlapi.h				Empty backwards-compat include
+perldtrace.d				D script for Perl probes
+perlio.c				C code for PerlIO abstraction
+perlio.h				PerlIO abstraction
+perlio.sym				Symbols for PerlIO abstraction
+perliol.h				PerlIO Layer definition
+perlsdio.h				Fake stdio using perlio
+perlstatic.h				Like inline.h, but functions not declared inline
+perlvars.h				Global variables
+perly.act				parser actions; derived from perly.y
+perly.c					parser code (NOT derived from perly.y)
+perly.h					header file for perly.c; derived from perly.y
+perly.tab				parser state tables; derived from perly.y
+perly.y					Yacc grammar for perl
+Policy_sh.SH				Hold site-wide preferences between Configure runs.
+pp.c					Push/Pop code
+pp.h					Push/Pop code defs
+pp_ctl.c				Push/Pop code for control flow
+pp_hot.c				Push/Pop code for heavily used opcodes
+pp_pack.c				Push/Pop code for pack/unpack
+pp_proto.h				C++ definitions for Push/Pop code
+pp_sort.c				Push/Pop code for sort
+pp_sys.c				Push/Pop code for system interaction
+proto.h					Prototypes
+README					The Instructions
+README.aix				Perl notes for AIX
+README.amiga				Perl notes for AmigaOS
+README.android				Perl notes for Android
+README.bs2000				Perl notes for POSIX-BC BS2000
+README.cn				Perl for Simplified Chinese (in UTF-8)
+README.cygwin				Perl notes for Cygwin
+README.freebsd				Perl notes for FreeBSD
+README.haiku				Perl notes for Haiku
+README.hpux				Perl notes for HP-UX
+README.hurd				Perl notes for Hurd
+README.irix				Perl notes for Irix
+README.jp				Perl for Japanese (in EUC-JP)
+README.ko				Perl for Korean (in EUC-KR)
+README.linux				Perl notes for Linux
+README.macosx				Perl notes for Mac OS X
+README.micro				Notes about microperl
+README.openbsd				Perl notes for OpenBSD
+README.os2				Perl notes for OS/2
+README.os390				Perl notes for OS/390
+README.os400				Perl notes for OS/400
+README.plan9				Perl notes for Plan 9
+README.qnx				Perl notes for QNX
+README.riscos				Perl notes for RISC OS
+README.solaris				Perl notes for Solaris
+README.synology				Perl notes for Synology
+README.tru64				Perl notes for Tru64
+README.tw				Perl for Traditional Chinese (in Big5)
+README.vms				Notes about installing the VMS port
+README.vos				Perl notes for Stratus VOS
+README.win32				Perl notes for Windows
+reentr.c				Reentrant interfaces
+reentr.h				Reentrant interfaces
+regcharclass.h				Generated by regen/regcharclass.pl
+regcomp.c				Regular expression compiler
+regcomp.h				Private declarations for above
+regcomp.sym				Data for regnodes.h
+regcomp_debug.c				Regular expression compiler debug code
+regcomp_internal.h			Internal stuff for regex compiler
+regcomp_invlist.c			Invlist logic for regular expression engine
+regcomp_study.c				Optimizer for regular expression compiler
+regcomp_trie.c				Trie logic for regular expression compiler
+regen.pl				Run all scripts that (re)generate files
+regen_perly.pl				generate perly.{act,h,tab} from perly.y
+regexec.c				Regular expression evaluator
+regexp.h				Public declarations for the above
+reginline.h				Inline subs for the RE engine.
+regnodes.h				Description of nodes of the RE engine
+run.c					The interpreter loop
+runtests.SH				A script that generates runtests
+sbox32_hash.h				SBox hash code (32 Bit SBOX based hash function)
+scope.c					Scope entry and exit code
+scope.h					Scope entry and exit header
+scope_types.h				Types used to manage the save stack
+SECURITY.md				Add Security Policy for GitHub
+sv.c					Scalar value code
+sv.h					Scalar value header
+sv_inline.h				Perl_newSV_type and required defs
+taint.c					Tainting code
+TestInit.pm				Preamble library for tests
+thread.h				Threading header
+time64.c				64 bit clean time.h (code)
+time64.h				64 bit clean time.h (header)
+time64_config.h				64 bit clean time.h (configuration)
+toke.c					The tokener
+uconfig.h				Configuration header for microperl
+uconfig.sh				Configuration script for microperl
+uconfig64.sh				Configuration script for microperl for LP64
+uni_keywords.h				Map unicode property names to numbers
+unicode_constants.h			compile-time macros for Unicode code points
+universal.c				The default UNIVERSAL package methods
+unixish.h				Defines that are assumed on Unix
+utf8.c					Unicode routines
+utf8.h					Unicode header
+utfebcdic.h				Unicode on EBCDIC (UTF-EBCDIC, tr16) header
+util.c					Utility routines
+util.h					Dummy header
+utils.lst				Lists utilities bundled with Perl
+vutil.c					Version object C functions
+vutil.h					Version object headers
+vxs.inc					Version object XS methods
+warnings.h				The warning numbers
+write_buildcustomize.pl			Generate lib/buildcustomize.pl
+XSUB.h					Include file for extension subroutines
+zaphod32_hash.h				Zaphod32 hash code (32 bit fast hash function)
+amigaos4/amigaio.c			AmigaOS4 port
+amigaos4/amigaio.h			AmigaOS4 port
+amigaos4/amigaos.c			AmigaOS4 port
+amigaos4/amigaos.h			AmigaOS4 port
+amigaos4/config.sh			AmigaOS4 config
 cpan/.dir-locals.el			Emacs control file
-cpan/Archive-Tar/bin/ptar				the ptar utility
-cpan/Archive-Tar/bin/ptardiff				the ptardiff utility
-cpan/Archive-Tar/bin/ptargrep				the ptardiff utility
-cpan/Archive-Tar/lib/Archive/Tar.pm			Archive::Tar
-cpan/Archive-Tar/lib/Archive/Tar/Constant.pm		Archive::Tar
-cpan/Archive-Tar/lib/Archive/Tar/File.pm		Archive::Tar
-cpan/Archive-Tar/t/01_use.t				Archive::Tar tests
-cpan/Archive-Tar/t/02_methods.t				Archive::Tar tests
-cpan/Archive-Tar/t/03_file.t				Archive::Tar tests
-cpan/Archive-Tar/t/04_resolved_issues.t			Archive::Tar tests
-cpan/Archive-Tar/t/05_iter.t				Archive::Tar tests
-cpan/Archive-Tar/t/06_error.t				Archive::Tar tests
+cpan/Archive-Tar/bin/ptar					the ptar utility
+cpan/Archive-Tar/bin/ptardiff					the ptardiff utility
+cpan/Archive-Tar/bin/ptargrep					the ptardiff utility
+cpan/Archive-Tar/lib/Archive/Tar.pm				Archive::Tar
+cpan/Archive-Tar/lib/Archive/Tar/Constant.pm			Archive::Tar
+cpan/Archive-Tar/lib/Archive/Tar/File.pm			Archive::Tar
+cpan/Archive-Tar/t/01_use.t					Archive::Tar tests
+cpan/Archive-Tar/t/02_methods.t					Archive::Tar tests
+cpan/Archive-Tar/t/03_file.t					Archive::Tar tests
+cpan/Archive-Tar/t/04_resolved_issues.t				Archive::Tar tests
+cpan/Archive-Tar/t/05_iter.t					Archive::Tar tests
+cpan/Archive-Tar/t/06_error.t					Archive::Tar tests
 cpan/Archive-Tar/t/08_ptargrep.t
 cpan/Archive-Tar/t/09_roundtrip.t
-cpan/Archive-Tar/t/90_symlink.t				Archive::Tar tests
-cpan/Archive-Tar/t/99_pod.t				Archive::Tar tests
-cpan/Archive-Tar/t/src/header/signed.tar		Archive::Tar tests
+cpan/Archive-Tar/t/90_symlink.t					Archive::Tar tests
+cpan/Archive-Tar/t/99_pod.t					Archive::Tar tests
+cpan/Archive-Tar/t/src/header/signed.tar			Archive::Tar tests
 cpan/Archive-Tar/t/src/linktest/linktest_missing_dir.tar	Archive::Tar tests
-cpan/Archive-Tar/t/src/linktest/linktest_with_dir.tar	Archive::Tar tests
-cpan/Archive-Tar/t/src/long/b				Archive::Tar tests
-cpan/Archive-Tar/t/src/long/bar.tar			Archive::Tar tests
-cpan/Archive-Tar/t/src/long/foo.tbz			Archive::Tar tests
-cpan/Archive-Tar/t/src/long/foo.tgz			Archive::Tar tests
-cpan/Archive-Tar/t/src/short/b				Archive::Tar tests
-cpan/Archive-Tar/t/src/short/bar.tar			Archive::Tar tests
-cpan/Archive-Tar/t/src/short/foo.tbz			Archive::Tar tests
-cpan/Archive-Tar/t/src/short/foo.tgz			Archive::Tar tests
-cpan/autodie/lib/autodie.pm		Functions succeed or die with lexical scope
-cpan/autodie/lib/autodie/exception.pm		Exception class for autodie
-cpan/autodie/lib/autodie/exception/system.pm	Exception class for autodying system()
-cpan/autodie/lib/autodie/hints.pm	Hinting interface for autodie
+cpan/Archive-Tar/t/src/linktest/linktest_with_dir.tar		Archive::Tar tests
+cpan/Archive-Tar/t/src/long/b					Archive::Tar tests
+cpan/Archive-Tar/t/src/long/bar.tar				Archive::Tar tests
+cpan/Archive-Tar/t/src/long/foo.tbz				Archive::Tar tests
+cpan/Archive-Tar/t/src/long/foo.tgz				Archive::Tar tests
+cpan/Archive-Tar/t/src/short/b					Archive::Tar tests
+cpan/Archive-Tar/t/src/short/bar.tar				Archive::Tar tests
+cpan/Archive-Tar/t/src/short/foo.tbz				Archive::Tar tests
+cpan/Archive-Tar/t/src/short/foo.tgz				Archive::Tar tests
+cpan/autodie/lib/autodie.pm				Functions succeed or die with lexical scope
+cpan/autodie/lib/autodie/exception.pm			Exception class for autodie
+cpan/autodie/lib/autodie/exception/system.pm		Exception class for autodying system()
+cpan/autodie/lib/autodie/hints.pm			Hinting interface for autodie
 cpan/autodie/lib/autodie/Scope/Guard.pm
 cpan/autodie/lib/autodie/Scope/GuardStack.pm
 cpan/autodie/lib/autodie/skip.pm
 cpan/autodie/lib/autodie/Util.pm
-cpan/autodie/lib/Fatal.pm		Make errors in functions/builtins fatal
-cpan/autodie/t/00-load.t		autodie - basic load
+cpan/autodie/lib/Fatal.pm				Make errors in functions/builtins fatal
+cpan/autodie/t/00-load.t				autodie - basic load
 cpan/autodie/t/args.t
-cpan/autodie/t/autodie.t		autodie - Basic functionality
+cpan/autodie/t/autodie.t				autodie - Basic functionality
 cpan/autodie/t/autodie_skippy.pm
-cpan/autodie/t/autodie_test_module.pm	autodie - test helper
-cpan/autodie/t/backcompat.t		autodie - More Fatal backcompat
-cpan/autodie/t/basic_exceptions.t	autodie - Basic exception tests
-cpan/autodie/t/binmode.t		autodie - Binmode testing
-cpan/autodie/t/blog_hints.t		autodie - Tests fro PJF's blog
-cpan/autodie/t/caller.t			autodie - Caller diagnostics
+cpan/autodie/t/autodie_test_module.pm			autodie - test helper
+cpan/autodie/t/backcompat.t				autodie - More Fatal backcompat
+cpan/autodie/t/basic_exceptions.t			autodie - Basic exception tests
+cpan/autodie/t/binmode.t				autodie - Binmode testing
+cpan/autodie/t/blog_hints.t				autodie - Tests fro PJF's blog
+cpan/autodie/t/caller.t					autodie - Caller diagnostics
 cpan/autodie/t/chmod.t
 cpan/autodie/t/chown.t
-cpan/autodie/t/context.t		autodie - Context clobbering tests
-cpan/autodie/t/context_lexical.t	autodie - Context clobbering lexically
+cpan/autodie/t/context.t				autodie - Context clobbering tests
+cpan/autodie/t/context_lexical.t			autodie - Context clobbering lexically
 cpan/autodie/t/core-trampoline-slurp.t
-cpan/autodie/t/crickey.t		autodie - Like an Australian
-cpan/autodie/t/dbmopen.t		autodie - dbm tests
+cpan/autodie/t/crickey.t				autodie - Like an Australian
+cpan/autodie/t/dbmopen.t				autodie - dbm tests
 cpan/autodie/t/eval_error.t
-cpan/autodie/t/exception_class.t	autodie - Exception class subclasses
+cpan/autodie/t/exception_class.t			autodie - Exception class subclasses
 cpan/autodie/t/exception_nonref.t
-cpan/autodie/t/exceptions.t		autodie - 5.10 exception tests.
-cpan/autodie/t/exec.t			autodie - exec tests.
-cpan/autodie/t/Fatal.t			autodie - Fatal backcompatibility
-cpan/autodie/t/filehandles.t		autodie - filehandle tests
-cpan/autodie/t/fileno.t			autodie - fileno tests
-cpan/autodie/t/flock.t			autodie - File locking tests
-cpan/autodie/t/format-clobber.t		autodie - Don't clobber scalars
-cpan/autodie/t/hints.t			autodie - Test hints interface
-cpan/autodie/t/hints_insist.t		autodie - Test hints insistance
-cpan/autodie/t/hints_pod_examples.t	autodie - Test hints POD examples
-cpan/autodie/t/hints_provider_does.t	autodie - Test hints/does roles
-cpan/autodie/t/hints_provider_easy_does_it.t	autodie - Test easy hints/does
-cpan/autodie/t/hints_provider_isa.t	autodie - Test hints/inheritance
+cpan/autodie/t/exceptions.t				autodie - 5.10 exception tests.
+cpan/autodie/t/exec.t					autodie - exec tests.
+cpan/autodie/t/Fatal.t					autodie - Fatal backcompatibility
+cpan/autodie/t/filehandles.t				autodie - filehandle tests
+cpan/autodie/t/fileno.t					autodie - fileno tests
+cpan/autodie/t/flock.t					autodie - File locking tests
+cpan/autodie/t/format-clobber.t				autodie - Don't clobber scalars
+cpan/autodie/t/hints.t					autodie - Test hints interface
+cpan/autodie/t/hints_insist.t				autodie - Test hints insistance
+cpan/autodie/t/hints_pod_examples.t			autodie - Test hints POD examples
+cpan/autodie/t/hints_provider_does.t			autodie - Test hints/does roles
+cpan/autodie/t/hints_provider_easy_does_it.t		autodie - Test easy hints/does
+cpan/autodie/t/hints_provider_isa.t			autodie - Test hints/inheritance
 cpan/autodie/t/import-into.t
-cpan/autodie/t/internal.t		autodie - internal interface tests
-cpan/autodie/t/internal-backcompat.t	autodie - Back-compatibility tests
+cpan/autodie/t/internal.t				autodie - internal interface tests
+cpan/autodie/t/internal-backcompat.t			autodie - Back-compatibility tests
 cpan/autodie/t/kill.t
-cpan/autodie/t/lethal.t			autodie - lethal is the one true name
-cpan/autodie/t/lib/autodie/test/au.pm		autodie - Australian helper
-cpan/autodie/t/lib/autodie/test/au/exception.pm	autodie - Australian helper
-cpan/autodie/t/lib/autodie/test/badname.pm	autodie - Bad exception class
-cpan/autodie/t/lib/autodie/test/missing.pm	autodie - Missing exception class
-cpan/autodie/t/lib/Caller_helper.pm		autodie - Caller helper
-cpan/autodie/t/lib/Hints_pod_examples.pm	autodie - Hints/pod helper
-cpan/autodie/t/lib/Hints_provider_does.pm	autodie - Hints/does helper
+cpan/autodie/t/lethal.t					autodie - lethal is the one true name
+cpan/autodie/t/lib/autodie/test/au.pm			autodie - Australian helper
+cpan/autodie/t/lib/autodie/test/au/exception.pm		autodie - Australian helper
+cpan/autodie/t/lib/autodie/test/badname.pm		autodie - Bad exception class
+cpan/autodie/t/lib/autodie/test/missing.pm		autodie - Missing exception class
+cpan/autodie/t/lib/Caller_helper.pm			autodie - Caller helper
+cpan/autodie/t/lib/Hints_pod_examples.pm		autodie - Hints/pod helper
+cpan/autodie/t/lib/Hints_provider_does.pm		autodie - Hints/does helper
 cpan/autodie/t/lib/Hints_provider_easy_does_it.pm	autodie - Hints/easy helper
-cpan/autodie/t/lib/Hints_provider_isa.pm	autodie - Hints/inherit helper
-cpan/autodie/t/lib/Hints_test.pm	autodie - Hints test helper
-cpan/autodie/t/lib/lethal.pm		autodie - with a better name
-cpan/autodie/t/lib/my/autodie.pm	autodie - blog_hints.t helper
+cpan/autodie/t/lib/Hints_provider_isa.pm		autodie - Hints/inherit helper
+cpan/autodie/t/lib/Hints_test.pm			autodie - Hints test helper
+cpan/autodie/t/lib/lethal.pm				autodie - with a better name
+cpan/autodie/t/lib/my/autodie.pm			autodie - blog_hints.t helper
 cpan/autodie/t/lib/my/pragma.pm
-cpan/autodie/t/lib/OtherTypes.pm	autodie - Format clobberer helper.
-cpan/autodie/t/lib/pujHa/ghach.pm	autodie - Like a Klingon
-cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm	autodie - With Klingon honour
-cpan/autodie/t/lib/Some/Module.pm	autodie - blog_hints.t helper
-cpan/autodie/t/mkdir.t			autodie - filesystem tests
+cpan/autodie/t/lib/OtherTypes.pm			autodie - Format clobberer helper.
+cpan/autodie/t/lib/pujHa/ghach.pm			autodie - Like a Klingon
+cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm			autodie - With Klingon honour
+cpan/autodie/t/lib/Some/Module.pm			autodie - blog_hints.t helper
+cpan/autodie/t/mkdir.t					autodie - filesystem tests
 cpan/autodie/t/no-default.t
 cpan/autodie/t/no_carp.t
-cpan/autodie/t/open.t			autodie - Testing open
+cpan/autodie/t/open.t					autodie - Testing open
 cpan/autodie/t/read.t
-cpan/autodie/t/recv.t			autodie - send/recv tests
-cpan/autodie/t/repeat.t			autodie - repeat autodie leak tests
+cpan/autodie/t/recv.t					autodie - send/recv tests
+cpan/autodie/t/repeat.t					autodie - repeat autodie leak tests
 cpan/autodie/t/rt-74246.t
-cpan/autodie/t/scope_leak.t		autodie - file scope leak tests
+cpan/autodie/t/scope_leak.t				autodie - file scope leak tests
 cpan/autodie/t/skip.t
-cpan/autodie/t/string-eval-basic.t	autodie - Basic string eval test
-cpan/autodie/t/string-eval-leak.t	autodie - String eval leak test
-cpan/autodie/t/sysopen.t		autodie - sysopen tests
+cpan/autodie/t/string-eval-basic.t			autodie - Basic string eval test
+cpan/autodie/t/string-eval-leak.t			autodie - String eval leak test
+cpan/autodie/t/sysopen.t				autodie - sysopen tests
 cpan/autodie/t/touch_me
-cpan/autodie/t/truncate.t		autodie - File truncation tests
-cpan/autodie/t/unlink.t			autodie - Unlink system tests.
-cpan/autodie/t/user-context.t		autodie - Context changes for usersubs
-cpan/autodie/t/usersub.t		autodie - user subroutine tests
+cpan/autodie/t/truncate.t				autodie - File truncation tests
+cpan/autodie/t/unlink.t					autodie - Unlink system tests.
+cpan/autodie/t/user-context.t				autodie - Context changes for usersubs
+cpan/autodie/t/usersub.t				autodie - user subroutine tests
 cpan/autodie/t/utf8_open.t
 cpan/autodie/t/utime.t
-cpan/autodie/t/version.t		autodie - versioning tests
+cpan/autodie/t/version.t				autodie - versioning tests
 cpan/autodie/t/version_tag.t
 cpan/AutoLoader/lib/AutoLoader.pm	Autoloader base class
 cpan/AutoLoader/lib/AutoSplit.pm	Split up autoload functions
@@ -150,11 +346,11 @@ cpan/bignum/gentest/backend.sh
 cpan/bignum/gentest/scope-nested-const.sh
 cpan/bignum/gentest/scope-nested-hex-oct.sh
 cpan/bignum/lib/bigfloat.pm
-cpan/bignum/lib/bigint.pm		bigint
-cpan/bignum/lib/bignum.pm		bignum
-cpan/bignum/lib/bigrat.pm		bigrat
-cpan/bignum/lib/Math/BigFloat/Trace.pm	bignum tracing
-cpan/bignum/lib/Math/BigInt/Trace.pm	bignum tracing
+cpan/bignum/lib/bigint.pm			bigint
+cpan/bignum/lib/bignum.pm			bignum
+cpan/bignum/lib/bigrat.pm			bigrat
+cpan/bignum/lib/Math/BigFloat/Trace.pm		bignum tracing
+cpan/bignum/lib/Math/BigInt/Trace.pm		bignum tracing
 cpan/bignum/lib/Math/BigRat/Trace.pm
 cpan/bignum/t/backend-gmp-bigfloat.t
 cpan/bignum/t/backend-gmp-bigint.t
@@ -164,11 +360,11 @@ cpan/bignum/t/backend-pari-bigfloat.t
 cpan/bignum/t/backend-pari-bigint.t
 cpan/bignum/t/backend-pari-bignum.t
 cpan/bignum/t/backend-pari-bigrat.t
-cpan/bignum/t/bigexp.t			See if bignum works
+cpan/bignum/t/bigexp.t				See if bignum works
 cpan/bignum/t/bigfloat.t
-cpan/bignum/t/bigint.t			See if bigint works
-cpan/bignum/t/bignum.t			See if bignum works
-cpan/bignum/t/bigrat.t			See if bigrat works
+cpan/bignum/t/bigint.t				See if bigint works
+cpan/bignum/t/bignum.t				See if bignum works
+cpan/bignum/t/bigrat.t				See if bigrat works
 cpan/bignum/t/const-bigfloat.t
 cpan/bignum/t/const-bigint.t
 cpan/bignum/t/const-bignum.t
@@ -185,21 +381,22 @@ cpan/bignum/t/import-bigfloat.t
 cpan/bignum/t/import-bigint.t
 cpan/bignum/t/import-bignum.t
 cpan/bignum/t/import-bigrat.t
-cpan/bignum/t/in_effect.t		See if in_effect() works
+cpan/bignum/t/in_effect.t			See if in_effect() works
 cpan/bignum/t/infnan-bigfloat.t
 cpan/bignum/t/infnan-bigint.t
-cpan/bignum/t/infnan-bignum.t
+cpan/bignum/t/infnan-bignum-mbf.t
+cpan/bignum/t/infnan-bignum-mbr.t
 cpan/bignum/t/infnan-bigrat.t
-cpan/bignum/t/option_a.t		See if bignum a => X works
+cpan/bignum/t/option_a.t			See if bignum a => X works
 cpan/bignum/t/option_a-bignum.t
 cpan/bignum/t/option_l-bigfloat.t
 cpan/bignum/t/option_l-bigint.t
 cpan/bignum/t/option_l-bignum.t
 cpan/bignum/t/option_l-bigrat.t
-cpan/bignum/t/option_p.t		See if bignum p => X works
+cpan/bignum/t/option_p.t			See if bignum p => X works
 cpan/bignum/t/option_p-bignum.t
-cpan/bignum/t/overrides.t		See if global overrides behave
-cpan/bignum/t/ratopt_a.t		See if bigrat a => X works
+cpan/bignum/t/overrides.t			See if global overrides behave
+cpan/bignum/t/ratopt_a.t			See if bigrat a => X works
 cpan/bignum/t/scope-bigfloat.t
 cpan/bignum/t/scope-bigint.t
 cpan/bignum/t/scope-bignum.t
@@ -230,118 +427,123 @@ cpan/Compress-Raw-Bzip2/t/19nonpv.t
 cpan/Compress-Raw-Bzip2/t/99pod.t
 cpan/Compress-Raw-Bzip2/t/compress/CompTestUtils.pm
 cpan/Compress-Raw-Bzip2/typemap
-cpan/Compress-Raw-Zlib/config.in		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/fallback/constants.h	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/fallback/constants.xs	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/Makefile.PL		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/private/MakeUtil.pm	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/t/01version.t		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/t/02zlib.t		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/t/07bufsize.t		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/t/09limitoutput.t	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/t/18lvalue.t		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/config.in			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/fallback/constants.h		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/fallback/constants.xs		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/Makefile.PL			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/private/MakeUtil.pm		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/t/01version.t			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/t/02zlib.t			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/t/07bufsize.t			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/t/09limitoutput.t		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/t/18lvalue.t			Compress::Raw::Zlib
 cpan/Compress-Raw-Zlib/t/19nonpv.t
 cpan/Compress-Raw-Zlib/t/compress/CompTestUtils.pm
-cpan/Compress-Raw-Zlib/typemap			Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/Zlib.xs			Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/adler32.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/compress.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/crc32.c		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/crc32.h		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/deflate.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/deflate.h	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/infback.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inffast.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inffast.h	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inffixed.h	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inflate.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inflate.h	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inftrees.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/inftrees.h	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/trees.c		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/trees.h		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/uncompr.c	Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/zconf.h		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/zlib.h		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/zutil.c		Compress::Raw::Zlib
-cpan/Compress-Raw-Zlib/zlib-src/zutil.h		Compress::Raw::Zlib
-cpan/Config-Perl-V/t/10_base.t			Config::Perl::V
-cpan/Config-Perl-V/t/20_plv56.t			Config::Perl::V
-cpan/Config-Perl-V/t/21_plv58.t			Config::Perl::V
-cpan/Config-Perl-V/t/22_plv510.t		Config::Perl::V
-cpan/Config-Perl-V/t/23_plv512.t		Config::Perl::V
-cpan/Config-Perl-V/t/24_plv514.t		Config::Perl::V
-cpan/Config-Perl-V/t/25_plv516.t		Config::Perl::V
-cpan/Config-Perl-V/t/25_plv5162.t		Config::Perl::V
-cpan/Config-Perl-V/t/26_plv518.t		Config::Perl::V
-cpan/Config-Perl-V/t/26_plv5182.t		Config::Perl::V
-cpan/Config-Perl-V/t/27_plv5200.t		Config::Perl::V
-cpan/Config-Perl-V/t/27_plv5202.t		Config::Perl::V
-cpan/Config-Perl-V/t/28_plv5220.t		Config::Perl::V
-cpan/Config-Perl-V/t/28_plv52201w.t		Config::Perl::V
-cpan/Config-Perl-V/t/29_plv5235w.t		Config::Perl::V
-cpan/Config-Perl-V/t/30_plv5240.t		Config::Perl::V
-cpan/Config-Perl-V/t/31_plv52511.t		Config::Perl::V
-cpan/Config-Perl-V/t/32_plv5261rc1.t		Config::Perl::V
-cpan/Config-Perl-V/t/33_plv52711r.t		Config::Perl::V
-cpan/Config-Perl-V/t/34_plv5280.t		Config::Perl::V
-cpan/Config-Perl-V/t/35_plv52910g.t		Config::Perl::V
-cpan/Config-Perl-V/t/36_plv5300.t		Config::Perl::V
-cpan/Config-Perl-V/t/37_plv53111qm.t		Config::Perl::V
-cpan/Config-Perl-V/t/38_plv5320tld.t		Config::Perl::V
-cpan/Config-Perl-V/V.pm				Config::Perl::V
-cpan/CPAN/lib/App/Cpan.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN.pm			Interface to Comprehensive Perl Archive Network
-cpan/CPAN/lib/CPAN/API/HOWTO.pod	recipe book for programming with CPAN.pm
-cpan/CPAN/lib/CPAN/Author.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Bundle.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/CacheMgr.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Complete.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Debug.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/DeferredCode.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Distribution.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Distroprefs.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Distrostatus.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Exception/blocked_urllist.pm	helper package for CPAN.pm
+cpan/Compress-Raw-Zlib/typemap				Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/Zlib.xs				Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/adler32.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/compress.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/crc32.c			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/crc32.h			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/deflate.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/deflate.h		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/infback.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inffast.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inffast.h		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inffixed.h		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inflate.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inflate.h		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inftrees.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/inftrees.h		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/trees.c			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/trees.h			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/uncompr.c		Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/zconf.h			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/zlib.h			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/zutil.c			Compress::Raw::Zlib
+cpan/Compress-Raw-Zlib/zlib-src/zutil.h			Compress::Raw::Zlib
+cpan/Config-Perl-V/t/10_base.t		Config::Perl::V
+cpan/Config-Perl-V/t/20_plv56.t		Config::Perl::V
+cpan/Config-Perl-V/t/21_plv58.t		Config::Perl::V
+cpan/Config-Perl-V/t/22_plv510.t	Config::Perl::V
+cpan/Config-Perl-V/t/23_plv512.t	Config::Perl::V
+cpan/Config-Perl-V/t/24_plv514.t	Config::Perl::V
+cpan/Config-Perl-V/t/25_plv516.t	Config::Perl::V
+cpan/Config-Perl-V/t/25_plv5162.t	Config::Perl::V
+cpan/Config-Perl-V/t/26_plv518.t	Config::Perl::V
+cpan/Config-Perl-V/t/26_plv5182.t	Config::Perl::V
+cpan/Config-Perl-V/t/27_plv5200.t	Config::Perl::V
+cpan/Config-Perl-V/t/27_plv5202.t	Config::Perl::V
+cpan/Config-Perl-V/t/28_plv5220.t	Config::Perl::V
+cpan/Config-Perl-V/t/28_plv52201w.t	Config::Perl::V
+cpan/Config-Perl-V/t/29_plv5235w.t	Config::Perl::V
+cpan/Config-Perl-V/t/30_plv5240.t	Config::Perl::V
+cpan/Config-Perl-V/t/31_plv52511.t	Config::Perl::V
+cpan/Config-Perl-V/t/32_plv5261rc1.t	Config::Perl::V
+cpan/Config-Perl-V/t/33_plv52711r.t	Config::Perl::V
+cpan/Config-Perl-V/t/34_plv5280.t	Config::Perl::V
+cpan/Config-Perl-V/t/35_plv52910g.t	Config::Perl::V
+cpan/Config-Perl-V/t/36_plv5300.t	Config::Perl::V
+cpan/Config-Perl-V/t/37_plv53111qm.t	Config::Perl::V
+cpan/Config-Perl-V/t/38_plv5320tld.t	Config::Perl::V
+cpan/Config-Perl-V/t/39_plv5340tqm.t	Config::Perl::V
+cpan/Config-Perl-V/t/40_plv5358dnqm.t	Config::Perl::V
+cpan/Config-Perl-V/t/41_plv5360dnqm.t	Config::Perl::V
+cpan/Config-Perl-V/t/42_plv5373tld.t	Config::Perl::V
+cpan/Config-Perl-V/t/43_plv53710rcs.t	Test file related to Config::Perl::V
+cpan/Config-Perl-V/V.pm			Config::Perl::V
+cpan/CPAN/lib/App/Cpan.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN.pm					Interface to Comprehensive Perl Archive Network
+cpan/CPAN/lib/CPAN/API/HOWTO.pod			recipe book for programming with CPAN.pm
+cpan/CPAN/lib/CPAN/Author.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Bundle.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/CacheMgr.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Complete.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Debug.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/DeferredCode.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Distribution.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Distroprefs.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Distrostatus.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Exception/blocked_urllist.pm		helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Exception/RecursiveDependency.pm	helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Exception/yaml_not_installed.pm	helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Exception/yaml_process_error.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/FirstTime.pm		Utility for creating CPAN config files
-cpan/CPAN/lib/CPAN/FTP.pm			helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/FTP/netrc.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/HandleConfig.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/HTTP/Client.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/HTTP/Credentials.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Index.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/InfoObj.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Kwalify.pm		helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/FirstTime.pm				Utility for creating CPAN config files
+cpan/CPAN/lib/CPAN/FTP.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/FTP/netrc.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/HandleConfig.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/HTTP/Client.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/HTTP/Credentials.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Index.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/InfoObj.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Kwalify.pm				helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/Kwalify/distroprefs.dd		helper file for validating config files
-cpan/CPAN/lib/CPAN/Kwalify/distroprefs.yml	helper file for validating config files
-cpan/CPAN/lib/CPAN/LWP/UserAgent.pm	helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Mirrors.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Module.pm		helper package for CPAN.pm
-cpan/CPAN/lib/CPAN/Nox.pm			Runs CPAN while avoiding compiled extensions
+cpan/CPAN/lib/CPAN/Kwalify/distroprefs.yml		helper file for validating config files
+cpan/CPAN/lib/CPAN/LWP/UserAgent.pm			helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Mirrors.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Module.pm				helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Nox.pm				Runs CPAN while avoiding compiled extensions
 cpan/CPAN/lib/CPAN/Plugin.pm
 cpan/CPAN/lib/CPAN/Plugin/Specfile.pm
 cpan/CPAN/lib/CPAN/Prompt.pm
-cpan/CPAN/lib/CPAN/Queue.pm		queueing system for CPAN.pm
+cpan/CPAN/lib/CPAN/Queue.pm				queueing system for CPAN.pm
 cpan/CPAN/lib/CPAN/Shell.pm
-cpan/CPAN/lib/CPAN/Tarzip.pm		helper package for CPAN.pm
+cpan/CPAN/lib/CPAN/Tarzip.pm				helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/URL.pm
-cpan/CPAN/lib/CPAN/Version.pm		Simple math with different flavors of version strings
-cpan/CPAN/PAUSE2003.pub		CPAN public key
-cpan/CPAN/PAUSE2005.pub		CPAN public key
-cpan/CPAN/PAUSE2007.pub		CPAN public key
-cpan/CPAN/PAUSE2009.pub		CPAN public key
+cpan/CPAN/lib/CPAN/Version.pm				Simple math with different flavors of version strings
+cpan/CPAN/PAUSE2003.pub					CPAN public key
+cpan/CPAN/PAUSE2005.pub					CPAN public key
+cpan/CPAN/PAUSE2007.pub					CPAN public key
+cpan/CPAN/PAUSE2009.pub					CPAN public key
 cpan/CPAN/PAUSE2011.pub
 cpan/CPAN/PAUSE2022.pub
-cpan/CPAN/scripts/cpan		easily interact with CPAN from the command line
-cpan/CPAN/t/01loadme.t		See if CPAN the module works
-cpan/CPAN/t/02nox.t		See if CPAN::Nox works
-cpan/CPAN/t/03pkgs.t		See if CPAN::Version works
-cpan/CPAN/t/10version.t		See if CPAN the module works
-cpan/CPAN/t/11mirroredby.t		See if CPAN::Mirrored::By works
+cpan/CPAN/scripts/cpan					easily interact with CPAN from the command line
+cpan/CPAN/t/01loadme.t					See if CPAN the module works
+cpan/CPAN/t/02nox.t					See if CPAN::Nox works
+cpan/CPAN/t/03pkgs.t					See if CPAN::Version works
+cpan/CPAN/t/10version.t					See if CPAN the module works
+cpan/CPAN/t/11mirroredby.t				See if CPAN::Mirrored::By works
 cpan/CPAN/t/32pushyhttps.t
 cpan/CPAN-Meta/corpus/BadMETA.yml
 cpan/CPAN-Meta/corpus/bareyaml.meta
@@ -446,14 +648,14 @@ cpan/CPAN-Meta-Requirements/t/finalize.t
 cpan/CPAN-Meta-Requirements/t/from-hash.t
 cpan/CPAN-Meta-Requirements/t/merge.t
 cpan/CPAN-Meta-Requirements/t/strings.t
-cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm		CPAN-Meta-YAML files
+cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm				CPAN-Meta-YAML files
 cpan/CPAN-Meta-YAML/t/01_api.t
-cpan/CPAN-Meta-YAML/t/01_compile.t		CPAN-Meta-YAML files
+cpan/CPAN-Meta-YAML/t/01_compile.t					CPAN-Meta-YAML files
 cpan/CPAN-Meta-YAML/t/10_read.t
 cpan/CPAN-Meta-YAML/t/11_read_string.t
 cpan/CPAN-Meta-YAML/t/12_write.t
 cpan/CPAN-Meta-YAML/t/13_write_string.t
-cpan/CPAN-Meta-YAML/t/20_subclass.t		CPAN-Meta-YAML files
+cpan/CPAN-Meta-YAML/t/20_subclass.t					CPAN-Meta-YAML files
 cpan/CPAN-Meta-YAML/t/21_yamlpm_compat.t
 cpan/CPAN-Meta-YAML/t/30_yaml_spec_tml.t
 cpan/CPAN-Meta-YAML/t/31_local_tml.t
@@ -461,8 +663,8 @@ cpan/CPAN-Meta-YAML/t/32_world_tml.t
 cpan/CPAN-Meta-YAML/t/86_fail.t
 cpan/CPAN-Meta-YAML/t/data/ascii.yml
 cpan/CPAN-Meta-YAML/t/data/latin1.yml
-cpan/CPAN-Meta-YAML/t/data/multibyte.yml		CPAN-Meta-YAML files
-cpan/CPAN-Meta-YAML/t/data/utf_16_le_bom.yml		CPAN-Meta-YAML files
+cpan/CPAN-Meta-YAML/t/data/multibyte.yml				CPAN-Meta-YAML files
+cpan/CPAN-Meta-YAML/t/data/utf_16_le_bom.yml				CPAN-Meta-YAML files
 cpan/CPAN-Meta-YAML/t/data/utf_8_bom.yml
 cpan/CPAN-Meta-YAML/t/lib/SubtestCompat.pm
 cpan/CPAN-Meta-YAML/t/lib/TestBridge.pm
@@ -497,30 +699,30 @@ cpan/CPAN-Meta-YAML/t/tml-world/toolbar.
 cpan/CPAN-Meta-YAML/t/tml-world/Vanilla-Perl.tml
 cpan/CPAN-Meta-YAML/t/tml-world/YAML-Tiny-META.tml
 cpan/CPAN-Meta-YAML/t/tml-world/yaml_org.tml
-cpan/DB_File/config.in		Part of Berkeley DB configuration
-cpan/DB_File/DB_File.pm		Berkeley DB extension Perl module
-cpan/DB_File/DB_File.xs		Berkeley DB extension external subroutines
-cpan/DB_File/dbinfo		Berkeley DB database version checker
+cpan/DB_File/config.in			Part of Berkeley DB configuration
+cpan/DB_File/DB_File.pm			Berkeley DB extension Perl module
+cpan/DB_File/DB_File.xs			Berkeley DB extension external subroutines
+cpan/DB_File/dbinfo			Berkeley DB database version checker
 cpan/DB_File/hints/bitrig.pl
-cpan/DB_File/hints/dynixptx.pl	Hint for DB_File for named architecture
+cpan/DB_File/hints/dynixptx.pl		Hint for DB_File for named architecture
 cpan/DB_File/hints/minix.pl
 cpan/DB_File/hints/netbsd.pl
 cpan/DB_File/hints/openbsd.pl
-cpan/DB_File/hints/sco.pl	Hint for DB_File for named architecture
-cpan/DB_File/Makefile.PL	Berkeley DB extension makefile writer
-cpan/DB_File/t/db-btree.t	See if DB_File works
-cpan/DB_File/t/db-hash.t	See if DB_File works
-cpan/DB_File/t/db-recno.t	See if DB_File works
-cpan/DB_File/t/db-threads.t	See if DB_File works
-cpan/DB_File/typemap		Berkeley DB extension interface types
-cpan/DB_File/version.c		Berkeley DB extension interface version check
+cpan/DB_File/hints/sco.pl		Hint for DB_File for named architecture
+cpan/DB_File/Makefile.PL		Berkeley DB extension makefile writer
+cpan/DB_File/t/db-btree.t		See if DB_File works
+cpan/DB_File/t/db-hash.t		See if DB_File works
+cpan/DB_File/t/db-recno.t		See if DB_File works
+cpan/DB_File/t/db-threads.t		See if DB_File works
+cpan/DB_File/typemap			Berkeley DB extension interface types
+cpan/DB_File/version.c			Berkeley DB extension interface version check
 cpan/Digest/lib/Digest.pm
 cpan/Digest/lib/Digest/base.pm
 cpan/Digest/lib/Digest/file.pm
-cpan/Digest/t/base.t		See if Digest extensions work
-cpan/Digest/t/digest.t		See if Digest extensions work
-cpan/Digest/t/file.t		See if Digest extensions work
-cpan/Digest/t/lib/Digest/Dummy.pm		See if Digest extensions work
+cpan/Digest/t/base.t			See if Digest extensions work
+cpan/Digest/t/digest.t			See if Digest extensions work
+cpan/Digest/t/file.t			See if Digest extensions work
+cpan/Digest/t/lib/Digest/Dummy.pm	See if Digest extensions work
 cpan/Digest/t/security.t		See if Digest extensions work
 cpan/Digest-MD5/hints/dec_osf.pl	Hints for named architecture
 cpan/Digest-MD5/hints/irix_6.pl		Hints for named architecture
@@ -571,225 +773,226 @@ cpan/Digest-SHA/t/state.t		See if Digest
 cpan/Digest-SHA/t/unicode.t
 cpan/Digest-SHA/t/woodbury.t		See if Digest::SHA works
 cpan/Digest-SHA/typemap			Typemap for Digest::SHA
-cpan/Encode/bin/enc2xs		Encode module generator
-cpan/Encode/bin/encguess		guess character encodings of files
-cpan/Encode/bin/piconv		iconv by perl
-cpan/Encode/bin/ucm2table	Table Generator for testing
-cpan/Encode/bin/ucmlint		A UCM Lint utility
-cpan/Encode/bin/ucmsort		A UCM sort utility
-cpan/Encode/bin/unidump		Unicode Dump like hexdump(1)
-cpan/Encode/Byte/Byte.pm		Encode extension
-cpan/Encode/Byte/Makefile.PL	Encode extension
-cpan/Encode/CN/CN.pm		Encode extension
-cpan/Encode/CN/Makefile.PL	Encode extension
-cpan/Encode/EBCDIC/EBCDIC.pm	Encode extension
-cpan/Encode/EBCDIC/Makefile.PL	Encode extension
-cpan/Encode/encengine.c		Encode extension
-cpan/Encode/Encode.pm		Mother of all Encode extensions
-cpan/Encode/Encode.xs		Encode extension
-cpan/Encode/Encode/_PM.e2x	Skeleton file for enc2xs
-cpan/Encode/Encode/_T.e2x	Skeleton file for enc2xs
-cpan/Encode/Encode/Changes.e2x	Skeleton file for enc2xs
-cpan/Encode/Encode/ConfigLocal_PM.e2x	Skeleton file for enc2xs
-cpan/Encode/Encode/encode.h	Encode extension header file
-cpan/Encode/Encode/Makefile_PL.e2x	Skeleton file for enc2xs
-cpan/Encode/Encode/README.e2x	Skeleton file for enc2xs
-cpan/Encode/encoding.pm		Perl Pragmatic Module
-cpan/Encode/JP/JP.pm		Encode extension
-cpan/Encode/JP/Makefile.PL	Encode extension
-cpan/Encode/KR/KR.pm		Encode extension
-cpan/Encode/KR/Makefile.PL	Encode extension
-cpan/Encode/lib/Encode/Alias.pm	Encode extension
-cpan/Encode/lib/Encode/CJKConstants.pm	Encode extension
-cpan/Encode/lib/Encode/CN/HZ.pm		Encode extension
-cpan/Encode/lib/Encode/Config.pm	Encode configuration module
-cpan/Encode/lib/Encode/Encoder.pm	OO Encoder
-cpan/Encode/lib/Encode/Encoding.pm	Encode extension
-cpan/Encode/lib/Encode/GSM0338.pm	Encode extension
-cpan/Encode/lib/Encode/Guess.pm	Encode Extension
-cpan/Encode/lib/Encode/JP/H2Z.pm	Encode extension
-cpan/Encode/lib/Encode/JP/JIS7.pm	Encode extension
-cpan/Encode/lib/Encode/KR/2022_KR.pm	Encode extension
-cpan/Encode/lib/Encode/MIME/Header.pm	Encode extension
+cpan/Encode/bin/enc2xs					Encode module generator
+cpan/Encode/bin/encguess				guess character encodings of files
+cpan/Encode/bin/piconv					iconv by perl
+cpan/Encode/bin/ucm2table				Table Generator for testing
+cpan/Encode/bin/ucmlint					A UCM Lint utility
+cpan/Encode/bin/ucmsort					A UCM sort utility
+cpan/Encode/bin/unidump					Unicode Dump like hexdump(1)
+cpan/Encode/Byte/Byte.pm				Encode extension
+cpan/Encode/Byte/Makefile.PL				Encode extension
+cpan/Encode/CN/CN.pm					Encode extension
+cpan/Encode/CN/Makefile.PL				Encode extension
+cpan/Encode/EBCDIC/EBCDIC.pm				Encode extension
+cpan/Encode/EBCDIC/Makefile.PL				Encode extension
+cpan/Encode/encengine.c					Encode extension
+cpan/Encode/Encode.pm					Mother of all Encode extensions
+cpan/Encode/Encode.xs					Encode extension
+cpan/Encode/Encode/_PM.e2x				Skeleton file for enc2xs
+cpan/Encode/Encode/_T.e2x				Skeleton file for enc2xs
+cpan/Encode/Encode/Changes.e2x				Skeleton file for enc2xs
+cpan/Encode/Encode/ConfigLocal_PM.e2x			Skeleton file for enc2xs
+cpan/Encode/Encode/encode.h				Encode extension header file
+cpan/Encode/Encode/Makefile_PL.e2x			Skeleton file for enc2xs
+cpan/Encode/Encode/README.e2x				Skeleton file for enc2xs
+cpan/Encode/encoding.pm					Perl Pragmatic Module
+cpan/Encode/JP/JP.pm					Encode extension
+cpan/Encode/JP/Makefile.PL				Encode extension
+cpan/Encode/KR/KR.pm					Encode extension
+cpan/Encode/KR/Makefile.PL				Encode extension
+cpan/Encode/lib/Encode/Alias.pm				Encode extension
+cpan/Encode/lib/Encode/CJKConstants.pm			Encode extension
+cpan/Encode/lib/Encode/CN/HZ.pm				Encode extension
+cpan/Encode/lib/Encode/Config.pm			Encode configuration module
+cpan/Encode/lib/Encode/Encoder.pm			OO Encoder
+cpan/Encode/lib/Encode/Encoding.pm			Encode extension
+cpan/Encode/lib/Encode/GSM0338.pm			Encode extension
+cpan/Encode/lib/Encode/Guess.pm				Encode Extension
+cpan/Encode/lib/Encode/JP/H2Z.pm			Encode extension
+cpan/Encode/lib/Encode/JP/JIS7.pm			Encode extension
+cpan/Encode/lib/Encode/KR/2022_KR.pm			Encode extension
+cpan/Encode/lib/Encode/MIME/Header.pm			Encode extension
 cpan/Encode/lib/Encode/MIME/Header/ISO_2022_JP.pm	Encode extension
-cpan/Encode/lib/Encode/MIME/Name.pm	Encode extension
-cpan/Encode/lib/Encode/PerlIO.pod	Documents for Encode & PerlIO
-cpan/Encode/lib/Encode/Supported.pod	Documents for supported encodings
-cpan/Encode/lib/Encode/Unicode/UTF7.pm	Encode extension
-cpan/Encode/Makefile.PL			Encode extension makefile writer
-cpan/Encode/Symbol/Makefile.PL		Encode extension
-cpan/Encode/Symbol/Symbol.pm		Encode extension
-cpan/Encode/t/Aliases.t			test script
-cpan/Encode/t/at-cn.t			test script
-cpan/Encode/t/at-tw.t			test script
-cpan/Encode/t/big5-eten.enc		test data
-cpan/Encode/t/big5-eten.utf		test data
-cpan/Encode/t/big5-hkscs.enc		test data
-cpan/Encode/t/big5-hkscs.utf		test data
-cpan/Encode/t/CJKT.t			test script
+cpan/Encode/lib/Encode/MIME/Name.pm			Encode extension
+cpan/Encode/lib/Encode/PerlIO.pod			Documents for Encode & PerlIO
+cpan/Encode/lib/Encode/Supported.pod			Documents for supported encodings
+cpan/Encode/lib/Encode/Unicode/UTF7.pm			Encode extension
+cpan/Encode/Makefile.PL					Encode extension makefile writer
+cpan/Encode/Symbol/Makefile.PL				Encode extension
+cpan/Encode/Symbol/Symbol.pm				Encode extension
+cpan/Encode/t/Aliases.t					test script
+cpan/Encode/t/at-cn.t					test script
+cpan/Encode/t/at-tw.t					test script
+cpan/Encode/t/big5-eten.enc				test data
+cpan/Encode/t/big5-eten.utf				test data
+cpan/Encode/t/big5-hkscs.enc				test data
+cpan/Encode/t/big5-hkscs.utf				test data
+cpan/Encode/t/CJKT.t					test script
 cpan/Encode/t/cow.t
 cpan/Encode/t/decode.t
-cpan/Encode/t/enc_data.t		test script for utf8 DATA
-cpan/Encode/t/enc_eucjp.t		test script
-cpan/Encode/t/enc_module.enc		test data for t/enc_module.t
-cpan/Encode/t/enc_module.t		test script
-cpan/Encode/t/enc_utf8.t		test script
-cpan/Encode/t/Encode.t			test script
-cpan/Encode/t/Encoder.t			test script
-cpan/Encode/t/encoding.t		test script
-cpan/Encode/t/encoding-locale.t		test script
-cpan/Encode/t/fallback.t		test script
-cpan/Encode/t/from_to.t			test script
-cpan/Encode/t/gb2312.enc		test data
-cpan/Encode/t/gb2312.utf		test data
-cpan/Encode/t/grow.t			test script
-cpan/Encode/t/gsm0338.t			test script
-cpan/Encode/t/guess.t			test script
+cpan/Encode/t/enc_data.t				test script for utf8 DATA
+cpan/Encode/t/enc_eucjp.t				test script
+cpan/Encode/t/enc_module.enc				test data for t/enc_module.t
+cpan/Encode/t/enc_module.t				test script
+cpan/Encode/t/enc_utf8.t				test script
+cpan/Encode/t/Encode.t					test script
+cpan/Encode/t/Encoder.t					test script
+cpan/Encode/t/encoding.t				test script
+cpan/Encode/t/encoding-locale.t				test script
+cpan/Encode/t/fallback.t				test script
+cpan/Encode/t/from_to.t					test script
+cpan/Encode/t/gb2312.enc				test data
+cpan/Encode/t/gb2312.utf				test data
+cpan/Encode/t/grow.t					test script
+cpan/Encode/t/gsm0338.t					test script
+cpan/Encode/t/guess.t					test script
 cpan/Encode/t/isa.t
-cpan/Encode/t/jis7-fallback.t		test script
-cpan/Encode/t/jisx0201.enc		test data
-cpan/Encode/t/jisx0201.utf		test data
-cpan/Encode/t/jisx0208.enc		test data
-cpan/Encode/t/jisx0208.utf		test data
-cpan/Encode/t/jisx0212.enc		test data
-cpan/Encode/t/jisx0212.utf		test data
-cpan/Encode/t/jperl.t			test script
-cpan/Encode/t/ksc5601.enc		test data
-cpan/Encode/t/ksc5601.utf		test data
-cpan/Encode/t/magic.t			test script
-cpan/Encode/t/mime-header.t		test script
-cpan/Encode/t/mime-name.t		test script
-cpan/Encode/t/mime_header_iso2022jp.t	test script
-cpan/Encode/t/Mod_EUCJP.pm		module that t/enc_module.enc uses
-cpan/Encode/t/perlio.t			test script
-cpan/Encode/t/piconv.t			Test for piconv.t
-cpan/Encode/t/rt.pl			test script
-cpan/Encode/t/rt113164.t		test script
-cpan/Encode/t/rt65541.t			test script
-cpan/Encode/t/rt76824.t			test script
-cpan/Encode/t/rt85489.t			test script
-cpan/Encode/t/rt86327.t			test script
+cpan/Encode/t/jis7-fallback.t				test script
+cpan/Encode/t/jisx0201.enc				test data
+cpan/Encode/t/jisx0201.utf				test data
+cpan/Encode/t/jisx0208.enc				test data
+cpan/Encode/t/jisx0208.utf				test data
+cpan/Encode/t/jisx0212.enc				test data
+cpan/Encode/t/jisx0212.utf				test data
+cpan/Encode/t/jperl.t					test script
+cpan/Encode/t/ksc5601.enc				test data
+cpan/Encode/t/ksc5601.utf				test data
+cpan/Encode/t/magic.t					test script
+cpan/Encode/t/mime-header.t				test script
+cpan/Encode/t/mime-name.t				test script
+cpan/Encode/t/mime_header_iso2022jp.t			test script
+cpan/Encode/t/Mod_EUCJP.pm				module that t/enc_module.enc uses
+cpan/Encode/t/perlio.t					test script
+cpan/Encode/t/piconv.t					Test for piconv.t
+cpan/Encode/t/rt.pl					test script
+cpan/Encode/t/rt113164.t				test script
+cpan/Encode/t/rt65541.t					test script
+cpan/Encode/t/rt76824.t					test script
+cpan/Encode/t/rt85489.t					test script
+cpan/Encode/t/rt86327.t					test script
 cpan/Encode/t/taint.t
 cpan/Encode/t/truncated_utf8.t
 cpan/Encode/t/undef.t
-cpan/Encode/t/unibench.pl		benchmark script
-cpan/Encode/t/Unicode.t			test script
+cpan/Encode/t/unibench.pl				benchmark script
+cpan/Encode/t/Unicode.t					test script
 cpan/Encode/t/Unicode_trailing_nul.t
 cpan/Encode/t/use-Encode-Alias.t
 cpan/Encode/t/utf32warnings.t
-cpan/Encode/t/utf8ref.t			test script
-cpan/Encode/t/utf8strict.t		test script
+cpan/Encode/t/utf8ref.t					test script
+cpan/Encode/t/utf8strict.t				test script
 cpan/Encode/t/utf8warnings.t
 cpan/Encode/t/xml.t
-cpan/Encode/TW/Makefile.PL		Encode extension
-cpan/Encode/TW/TW.pm			Encode extension
-cpan/Encode/ucm/8859-1.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-10.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-11.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-13.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-14.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-15.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-16.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-2.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-3.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-4.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-5.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-6.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-7.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-8.ucm		Unicode Character Map
-cpan/Encode/ucm/8859-9.ucm		Unicode Character Map
-cpan/Encode/ucm/adobeStdenc.ucm		Unicode Character Map
-cpan/Encode/ucm/adobeSymbol.ucm		Unicode Character Map
-cpan/Encode/ucm/adobeZdingbat.ucm	Unicode Character Map
-cpan/Encode/ucm/ascii.ucm		Unicode Character Map
-cpan/Encode/ucm/big5-eten.ucm		Unicode Character Map
-cpan/Encode/ucm/big5-hkscs.ucm		Unicode Character Map
-cpan/Encode/ucm/cp037.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1006.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1026.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1047.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1250.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1251.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1252.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1253.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1254.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1255.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1256.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1257.ucm		Unicode Character Map
-cpan/Encode/ucm/cp1258.ucm		Unicode Character Map
-cpan/Encode/ucm/cp424.ucm		Unicode Character Map
-cpan/Encode/ucm/cp437.ucm		Unicode Character Map
-cpan/Encode/ucm/cp500.ucm		Unicode Character Map
-cpan/Encode/ucm/cp737.ucm		Unicode Character Map
-cpan/Encode/ucm/cp775.ucm		Unicode Character Map
-cpan/Encode/ucm/cp850.ucm		Unicode Character Map
-cpan/Encode/ucm/cp852.ucm		Unicode Character Map
-cpan/Encode/ucm/cp855.ucm		Unicode Character Map
-cpan/Encode/ucm/cp856.ucm		Unicode Character Map
-cpan/Encode/ucm/cp857.ucm		Unicode Character Map
-cpan/Encode/ucm/cp858.ucm		Unicode Character Map
-cpan/Encode/ucm/cp860.ucm		Unicode Character Map
-cpan/Encode/ucm/cp861.ucm		Unicode Character Map
-cpan/Encode/ucm/cp862.ucm		Unicode Character Map
-cpan/Encode/ucm/cp863.ucm		Unicode Character Map
-cpan/Encode/ucm/cp864.ucm		Unicode Character Map
-cpan/Encode/ucm/cp865.ucm		Unicode Character Map
-cpan/Encode/ucm/cp866.ucm		Unicode Character Map
-cpan/Encode/ucm/cp869.ucm		Unicode Character Map
-cpan/Encode/ucm/cp874.ucm		Unicode Character Map
-cpan/Encode/ucm/cp875.ucm		Unicode Character Map
-cpan/Encode/ucm/cp932.ucm		Unicode Character Map
-cpan/Encode/ucm/cp936.ucm		Unicode Character Map
-cpan/Encode/ucm/cp949.ucm		Unicode Character Map
-cpan/Encode/ucm/cp950.ucm		Unicode Character Map
-cpan/Encode/ucm/ctrl.ucm		Unicode Character Map
-cpan/Encode/ucm/dingbats.ucm		Unicode Character Map
-cpan/Encode/ucm/euc-cn.ucm		Unicode Character Map
-cpan/Encode/ucm/euc-jp.ucm		Unicode Character Map
-cpan/Encode/ucm/euc-kr.ucm		Unicode Character Map
-cpan/Encode/ucm/gb12345.ucm		Unicode Character Map
-cpan/Encode/ucm/gb2312.ucm		Unicode Character Map
-cpan/Encode/ucm/hp-roman8.ucm		Unicode Character Map
-cpan/Encode/ucm/ir-165.ucm		Unicode Character Map
-cpan/Encode/ucm/jis0201.ucm		Unicode Character Map
-cpan/Encode/ucm/jis0208.ucm		Unicode Character Map
-cpan/Encode/ucm/jis0212.ucm		Unicode Character Map
-cpan/Encode/ucm/johab.ucm		Unicode Character Map
-cpan/Encode/ucm/koi8-f.ucm		Unicode Character Map
-cpan/Encode/ucm/koi8-r.ucm		Unicode Character Map
-cpan/Encode/ucm/koi8-u.ucm		Unicode Character Map
-cpan/Encode/ucm/ksc5601.ucm		Unicode Character Map
-cpan/Encode/ucm/macArabic.ucm		Unicode Character Map
-cpan/Encode/ucm/macCentEuro.ucm		Unicode Character Map
-cpan/Encode/ucm/macChinsimp.ucm		Unicode Character Map
-cpan/Encode/ucm/macChintrad.ucm		Unicode Character Map
-cpan/Encode/ucm/macCroatian.ucm		Unicode Character Map
-cpan/Encode/ucm/macCyrillic.ucm		Unicode Character Map
-cpan/Encode/ucm/macDingbats.ucm		Unicode Character Map
-cpan/Encode/ucm/macFarsi.ucm		Unicode Character Map
-cpan/Encode/ucm/macGreek.ucm		Unicode Character Map
-cpan/Encode/ucm/macHebrew.ucm		Unicode Character Map
-cpan/Encode/ucm/macIceland.ucm		Unicode Character Map
-cpan/Encode/ucm/macJapanese.ucm		Unicode Character Map
-cpan/Encode/ucm/macKorean.ucm		Unicode Character Map
-cpan/Encode/ucm/macRoman.ucm		Unicode Character Map
-cpan/Encode/ucm/macROMnn.ucm		Unicode Character Map
-cpan/Encode/ucm/macRUMnn.ucm		Unicode Character Map
-cpan/Encode/ucm/macSami.ucm		Unicode Character Map
-cpan/Encode/ucm/macSymbol.ucm		Unicode Character Map
-cpan/Encode/ucm/macThai.ucm		Unicode Character Map
-cpan/Encode/ucm/macTurkish.ucm		Unicode Character Map
-cpan/Encode/ucm/macUkraine.ucm		Unicode Character Map
-cpan/Encode/ucm/nextstep.ucm		Unicode Character Map
-cpan/Encode/ucm/null.ucm		Unicode Character Map
-cpan/Encode/ucm/posix-bc.ucm		Unicode Character Map
-cpan/Encode/ucm/shiftjis.ucm		Unicode Character Map
-cpan/Encode/ucm/symbol.ucm		Unicode Character Map
-cpan/Encode/ucm/viscii.ucm		Unicode Character Map
-cpan/Encode/Unicode/Makefile.PL		Encode extension
-cpan/Encode/Unicode/Unicode.pm		Encode extension
-cpan/Encode/Unicode/Unicode.xs		Encode extension
+cpan/Encode/TW/Makefile.PL				Encode extension
+cpan/Encode/TW/TW.pm					Encode extension
+cpan/Encode/ucm/8859-1.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-10.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-11.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-13.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-14.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-15.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-16.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-2.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-3.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-4.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-5.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-6.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-7.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-8.ucm				Unicode Character Map
+cpan/Encode/ucm/8859-9.ucm				Unicode Character Map
+cpan/Encode/ucm/adobeStdenc.ucm				Unicode Character Map
+cpan/Encode/ucm/adobeSymbol.ucm				Unicode Character Map
+cpan/Encode/ucm/adobeZdingbat.ucm			Unicode Character Map
+cpan/Encode/ucm/ascii.ucm				Unicode Character Map
+cpan/Encode/ucm/big5-eten.ucm				Unicode Character Map
+cpan/Encode/ucm/big5-hkscs.ucm				Unicode Character Map
+cpan/Encode/ucm/cp037.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1006.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1026.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1047.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1250.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1251.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1252.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1253.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1254.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1255.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1256.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1257.ucm				Unicode Character Map
+cpan/Encode/ucm/cp1258.ucm				Unicode Character Map
+cpan/Encode/ucm/cp424.ucm				Unicode Character Map
+cpan/Encode/ucm/cp437.ucm				Unicode Character Map
+cpan/Encode/ucm/cp500.ucm				Unicode Character Map
+cpan/Encode/ucm/cp737.ucm				Unicode Character Map
+cpan/Encode/ucm/cp775.ucm				Unicode Character Map
+cpan/Encode/ucm/cp850.ucm				Unicode Character Map
+cpan/Encode/ucm/cp852.ucm				Unicode Character Map
+cpan/Encode/ucm/cp855.ucm				Unicode Character Map
+cpan/Encode/ucm/cp856.ucm				Unicode Character Map
+cpan/Encode/ucm/cp857.ucm				Unicode Character Map
+cpan/Encode/ucm/cp858.ucm				Unicode Character Map
+cpan/Encode/ucm/cp860.ucm				Unicode Character Map
+cpan/Encode/ucm/cp861.ucm				Unicode Character Map
+cpan/Encode/ucm/cp862.ucm				Unicode Character Map
+cpan/Encode/ucm/cp863.ucm				Unicode Character Map
+cpan/Encode/ucm/cp864.ucm				Unicode Character Map
+cpan/Encode/ucm/cp865.ucm				Unicode Character Map
+cpan/Encode/ucm/cp866.ucm				Unicode Character Map
+cpan/Encode/ucm/cp869.ucm				Unicode Character Map
+cpan/Encode/ucm/cp874.ucm				Unicode Character Map
+cpan/Encode/ucm/cp875.ucm				Unicode Character Map
+cpan/Encode/ucm/cp932.ucm				Unicode Character Map
+cpan/Encode/ucm/cp936.ucm				Unicode Character Map
+cpan/Encode/ucm/cp949.ucm				Unicode Character Map
+cpan/Encode/ucm/cp950.ucm				Unicode Character Map
+cpan/Encode/ucm/ctrl.ucm				Unicode Character Map
+cpan/Encode/ucm/dingbats.ucm				Unicode Character Map
+cpan/Encode/ucm/euc-cn.ucm				Unicode Character Map
+cpan/Encode/ucm/euc-jp.ucm				Unicode Character Map
+cpan/Encode/ucm/euc-kr.ucm				Unicode Character Map
+cpan/Encode/ucm/gb12345.ucm				Unicode Character Map
+cpan/Encode/ucm/gb2312.ucm				Unicode Character Map
+cpan/Encode/ucm/hp-roman8.ucm				Unicode Character Map
+cpan/Encode/ucm/ir-165.ucm				Unicode Character Map
+cpan/Encode/ucm/jis0201.ucm				Unicode Character Map
+cpan/Encode/ucm/jis0208.ucm				Unicode Character Map
+cpan/Encode/ucm/jis0212.ucm				Unicode Character Map
+cpan/Encode/ucm/johab.ucm				Unicode Character Map
+cpan/Encode/ucm/koi8-f.ucm				Unicode Character Map
+cpan/Encode/ucm/koi8-r.ucm				Unicode Character Map
+cpan/Encode/ucm/koi8-u.ucm				Unicode Character Map
+cpan/Encode/ucm/ksc5601.ucm				Unicode Character Map
+cpan/Encode/ucm/macArabic.ucm				Unicode Character Map
+cpan/Encode/ucm/macCentEuro.ucm				Unicode Character Map
+cpan/Encode/ucm/macChinsimp.ucm				Unicode Character Map
+cpan/Encode/ucm/macChintrad.ucm				Unicode Character Map
+cpan/Encode/ucm/macCroatian.ucm				Unicode Character Map
+cpan/Encode/ucm/macCyrillic.ucm				Unicode Character Map
+cpan/Encode/ucm/macDingbats.ucm				Unicode Character Map
+cpan/Encode/ucm/macFarsi.ucm				Unicode Character Map
+cpan/Encode/ucm/macGreek.ucm				Unicode Character Map
+cpan/Encode/ucm/macHebrew.ucm				Unicode Character Map
+cpan/Encode/ucm/macIceland.ucm				Unicode Character Map
+cpan/Encode/ucm/macJapanese.ucm				Unicode Character Map
+cpan/Encode/ucm/macKorean.ucm				Unicode Character Map
+cpan/Encode/ucm/macRoman.ucm				Unicode Character Map
+cpan/Encode/ucm/macROMnn.ucm				Unicode Character Map
+cpan/Encode/ucm/macRUMnn.ucm				Unicode Character Map
+cpan/Encode/ucm/macSami.ucm				Unicode Character Map
+cpan/Encode/ucm/macSymbol.ucm				Unicode Character Map
+cpan/Encode/ucm/macThai.ucm				Unicode Character Map
+cpan/Encode/ucm/macTurkish.ucm				Unicode Character Map
+cpan/Encode/ucm/macUkraine.ucm				Unicode Character Map
+cpan/Encode/ucm/nextstep.ucm				Unicode Character Map
+cpan/Encode/ucm/null.ucm				Unicode Character Map
+cpan/Encode/ucm/posix-bc.ucm				Unicode Character Map
+cpan/Encode/ucm/shiftjis.ucm				Unicode Character Map
+cpan/Encode/ucm/symbol.ucm				Unicode Character Map
+cpan/Encode/ucm/viscii.ucm				Unicode Character Map
+cpan/Encode/Unicode/Makefile.PL				Encode extension
+cpan/Encode/Unicode/Unicode.pm				Encode extension
+cpan/Encode/Unicode/Unicode.xs				Encode extension
 cpan/experimental/lib/experimental.pm
+cpan/experimental/lib/stable.pm
 cpan/experimental/t/basic.t
 cpan/ExtUtils-Constant/lib/ExtUtils/Constant.pm			generate XS code to import C header constants
 cpan/ExtUtils-Constant/lib/ExtUtils/Constant/Base.pm		generate XS code to import C header constants
@@ -809,121 +1012,121 @@ cpan/ExtUtils-Install/t/lib/MakeMaker/Te
 cpan/ExtUtils-Install/t/lib/MakeMaker/Test/Utils.pm	MakeMaker test utilities
 cpan/ExtUtils-Install/t/lib/TieOut.pm			Testing library to capture prints
 cpan/ExtUtils-Install/t/Packlist.t			See if Packlist works
-cpan/ExtUtils-MakeMaker/bin/instmodsh				Give information about installed extensions
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm		Calling MM functions from the cmd line
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm			Locates libraries
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm		Does the real work of the above
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm		Write Makefiles for extensions
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm	MakeMaker wrapper for Config
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod		MakeMaker FAQ
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod	Writing a module with MakeMaker
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm		Writes a bootstrap file (see MakeMaker)
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm		Writes a linker options file for extensions
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm			MakeMaker adaptor class
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm			MakeMaker methods for AIX
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm			MakeMaker methods for Any OS
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm			MakeMaker methods for BeOS
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm		MakeMaker methods for Cygwin
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm		MakeMaker methods for Darwin
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm			MakeMaker methods for DOS
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm		MakeMaker methods for MacOS
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm			MakeMaker methods for NetWare
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm			MakeMaker methods for OS/2
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm		MakeMaker methods for OS 390
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm			MakeMaker methods for QNX
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm			MakeMaker methods for Unix
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm			MakeMaker methods for U/WIN
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm			MakeMaker methods for VMS
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm			MakeMaker methods for VOS
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm		MakeMaker methods for Win32
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm		MakeMaker methods for Win95
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm			MakeMaker user override class
-cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm			Fixes up @INC to use just-built extension
-cpan/ExtUtils-MakeMaker/t/00compile.t				See if MakeMaker modules compile
-cpan/ExtUtils-MakeMaker/t/01perl_bugs.t
-cpan/ExtUtils-MakeMaker/t/02-xsdynamic.t
-cpan/ExtUtils-MakeMaker/t/03-xsstatic.t
-cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t
-cpan/ExtUtils-MakeMaker/t/arch_check.t				Test MakeMaker's arch_check()
-cpan/ExtUtils-MakeMaker/t/backwards.t				Check MakeMaker's backwards compatibility
-cpan/ExtUtils-MakeMaker/t/basic.t				See if MakeMaker can build a module
-cpan/ExtUtils-MakeMaker/t/build_man.t				Set if MakeMaker builds manpages
-cpan/ExtUtils-MakeMaker/t/cd.t					Test to see cd works
-cpan/ExtUtils-MakeMaker/t/config.t				Test ExtUtils::MakeMaker::Config
-cpan/ExtUtils-MakeMaker/t/cp.t
-cpan/ExtUtils-MakeMaker/t/dir_target.t				Verify if dir_target() is supported
-cpan/ExtUtils-MakeMaker/t/echo.t				Test for ExtUtils::MakeMaker
-cpan/ExtUtils-MakeMaker/t/eu_command.t
-cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t			See if FIRST_MAKEFILE works
-cpan/ExtUtils-MakeMaker/t/fix_libs.t				Test for ExtUtils::MakeMaker
-cpan/ExtUtils-MakeMaker/t/fixin.t				See if ExtUtils::MakeMaker works
-cpan/ExtUtils-MakeMaker/t/hints.t				See if hint files are honored.
-cpan/ExtUtils-MakeMaker/t/INST.t				Check MakeMaker INST_* macros
-cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t				See if MakeMaker can apply PREFIXs
-cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t			Test INSTALL_BASE in MakeMaker
-cpan/ExtUtils-MakeMaker/t/installed_file.t			Test for ExtUtils::MakeMaker
-cpan/ExtUtils-MakeMaker/t/is_of_type.t				Test for ExtUtils::MakeMaker
-cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/NoXS.pm		MakeMaker test utilities
-cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm	MakeMaker test utilities
-cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm	MakeMaker test utilities
-cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm		MakeMaker test utilities
-cpan/ExtUtils-MakeMaker/t/lib/TieIn.pm				Testing library for dummy input handles
-cpan/ExtUtils-MakeMaker/t/lib/TieOut.pm				Testing library to capture prints
-cpan/ExtUtils-MakeMaker/t/Liblist.t				See if ExtUtils::Liblist works
-cpan/ExtUtils-MakeMaker/t/make.t				See if make detection works
-cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t		test "MakeMaker Parameters" section
-cpan/ExtUtils-MakeMaker/t/maketext_filter.t			See if maketext_filter works
-cpan/ExtUtils-MakeMaker/t/meta_convert.t				See if MakeMaker works
-cpan/ExtUtils-MakeMaker/t/META_for_testing.json				test data for MakeMaker
-cpan/ExtUtils-MakeMaker/t/META_for_testing.yml				test data for MakeMaker
-cpan/ExtUtils-MakeMaker/t/META_for_testing_tricky_version.yml				test data for MakeMaker
-cpan/ExtUtils-MakeMaker/t/metafile_data.t			See if META.yml handling works
-cpan/ExtUtils-MakeMaker/t/metafile_file.t			See if META.yml handling works
-cpan/ExtUtils-MakeMaker/t/min_perl_version.t			Test the MIN_PERL_VERSION argument to WriteMakefile.
-cpan/ExtUtils-MakeMaker/t/miniperl.t				Test MakeMaker with miniperl
-cpan/ExtUtils-MakeMaker/t/Mkbootstrap.t				See if ExtUtils::Mkbootstrap works
-cpan/ExtUtils-MakeMaker/t/MM_Any.t				See if ExtUtils::MM_Any works
-cpan/ExtUtils-MakeMaker/t/MM_BeOS.t				See if ExtUtils::MM_BeOS works
-cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t				See if ExtUtils::MM_Cygwin works
-cpan/ExtUtils-MakeMaker/t/MM_NW5.t				See if ExtUtils::MM_NW5 works
-cpan/ExtUtils-MakeMaker/t/MM_OS2.t				See if ExtUtils::MM_OS2 works
-cpan/ExtUtils-MakeMaker/t/MM_Unix.t				See if ExtUtils::MM_UNIX works
-cpan/ExtUtils-MakeMaker/t/MM_VMS.t				See if ExtUtils::MM_VMS works
-cpan/ExtUtils-MakeMaker/t/MM_Win32.t				See if ExtUtils::MM_Win32 works
-cpan/ExtUtils-MakeMaker/t/oneliner.t				See if MM can generate perl one-liners
-cpan/ExtUtils-MakeMaker/t/os_unsupported.t
-cpan/ExtUtils-MakeMaker/t/parse_abstract.t			See if parse_abstract works
-cpan/ExtUtils-MakeMaker/t/parse_version.t			See if parse_version works
-cpan/ExtUtils-MakeMaker/t/PL_FILES.t				Test PL_FILES in MakeMaker
-cpan/ExtUtils-MakeMaker/t/pm.t					See if MakeMaker can handle PM
-cpan/ExtUtils-MakeMaker/t/pm_to_blib.t				Test for ExtUtils::MakeMaker
-cpan/ExtUtils-MakeMaker/t/pod2man.t				See if MakeMaker can handle no pod2man
-cpan/ExtUtils-MakeMaker/t/postamble.t				See if postamble works
-cpan/ExtUtils-MakeMaker/t/prefixify.t				See if MakeMaker can apply a PREFIX
-cpan/ExtUtils-MakeMaker/t/prereq.t				See if MakeMaker works
-cpan/ExtUtils-MakeMaker/t/prereq_print.t				See if PREREQ_PRINT works
-cpan/ExtUtils-MakeMaker/t/problems.t				How MakeMaker reacts to build problems
-cpan/ExtUtils-MakeMaker/t/prompt.t				See if E::MM::prompt() works
-cpan/ExtUtils-MakeMaker/t/recurs.t				See if recursive builds work
-cpan/ExtUtils-MakeMaker/t/revision.t				See if $Revision is correct
-cpan/ExtUtils-MakeMaker/t/several_authors.t			See if multiple AUTHORs work
-cpan/ExtUtils-MakeMaker/t/split_command.t			See if MM's xargs-like function works
-cpan/ExtUtils-MakeMaker/t/test_boilerplate.t			MakeMaker test
+cpan/ExtUtils-MakeMaker/bin/instmodsh						Give information about installed extensions
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm					Module related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm				Calling MM functions from the cmd line
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm					Locates libraries
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm				Does the real work of the above
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm				Write Makefiles for extensions
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm			MakeMaker wrapper for Config
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod				MakeMaker FAQ
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm			Module related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod			Writing a module with MakeMaker
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm			Module related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm			Module related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm				Writes a bootstrap file (see MakeMaker)
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm				Writes a linker options file for extensions
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm					MakeMaker adaptor class
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm					MakeMaker methods for AIX
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm					MakeMaker methods for Any OS
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm					MakeMaker methods for BeOS
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm				MakeMaker methods for Cygwin
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm				MakeMaker methods for Darwin
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm					MakeMaker methods for DOS
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm				MakeMaker methods for MacOS
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm					MakeMaker methods for NetWare
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm					MakeMaker methods for OS/2
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm				MakeMaker methods for OS 390
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm					MakeMaker methods for QNX
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm					MakeMaker methods for Unix
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm					MakeMaker methods for U/WIN
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm					MakeMaker methods for VMS
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm					MakeMaker methods for VOS
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm				MakeMaker methods for Win32
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm				MakeMaker methods for Win95
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm					MakeMaker user override class
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm					Fixes up @INC to use just-built extension
+cpan/ExtUtils-MakeMaker/t/00compile.t						See if MakeMaker modules compile
+cpan/ExtUtils-MakeMaker/t/01perl_bugs.t						Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/02-xsdynamic.t					Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/03-xsstatic.t						Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t					Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/arch_check.t						Test MakeMaker's arch_check()
+cpan/ExtUtils-MakeMaker/t/backwards.t						Check MakeMaker's backwards compatibility
+cpan/ExtUtils-MakeMaker/t/basic.t						See if MakeMaker can build a module
+cpan/ExtUtils-MakeMaker/t/build_man.t						Set if MakeMaker builds manpages
+cpan/ExtUtils-MakeMaker/t/cd.t							Test to see cd works
+cpan/ExtUtils-MakeMaker/t/config.t						Test ExtUtils::MakeMaker::Config
+cpan/ExtUtils-MakeMaker/t/cp.t							Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/dir_target.t						Verify if dir_target() is supported
+cpan/ExtUtils-MakeMaker/t/echo.t						Test for ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/eu_command.t						Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t					See if FIRST_MAKEFILE works
+cpan/ExtUtils-MakeMaker/t/fix_libs.t						Test for ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/fixin.t						See if ExtUtils::MakeMaker works
+cpan/ExtUtils-MakeMaker/t/hints.t						See if hint files are honored.
+cpan/ExtUtils-MakeMaker/t/INST.t						Check MakeMaker INST_* macros
+cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t						See if MakeMaker can apply PREFIXs
+cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t					Test INSTALL_BASE in MakeMaker
+cpan/ExtUtils-MakeMaker/t/installed_file.t					Test for ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/is_of_type.t						Test for ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/NoXS.pm				MakeMaker test utilities
+cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm			MakeMaker test utilities
+cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm			MakeMaker test utilities
+cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm				MakeMaker test utilities
+cpan/ExtUtils-MakeMaker/t/lib/TieIn.pm						Testing library for dummy input handles
+cpan/ExtUtils-MakeMaker/t/lib/TieOut.pm						Testing library to capture prints
+cpan/ExtUtils-MakeMaker/t/Liblist.t						See if ExtUtils::Liblist works
+cpan/ExtUtils-MakeMaker/t/make.t						See if make detection works
+cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t				test "MakeMaker Parameters" section
+cpan/ExtUtils-MakeMaker/t/maketext_filter.t					See if maketext_filter works
+cpan/ExtUtils-MakeMaker/t/meta_convert.t					See if MakeMaker works
+cpan/ExtUtils-MakeMaker/t/META_for_testing.json					test data for MakeMaker
+cpan/ExtUtils-MakeMaker/t/META_for_testing.yml					test data for MakeMaker
+cpan/ExtUtils-MakeMaker/t/META_for_testing_tricky_version.yml			test data for MakeMaker
+cpan/ExtUtils-MakeMaker/t/metafile_data.t					See if META.yml handling works
+cpan/ExtUtils-MakeMaker/t/metafile_file.t					See if META.yml handling works
+cpan/ExtUtils-MakeMaker/t/min_perl_version.t					Test the MIN_PERL_VERSION argument to WriteMakefile.
+cpan/ExtUtils-MakeMaker/t/miniperl.t						Test MakeMaker with miniperl
+cpan/ExtUtils-MakeMaker/t/Mkbootstrap.t						See if ExtUtils::Mkbootstrap works
+cpan/ExtUtils-MakeMaker/t/MM_Any.t						See if ExtUtils::MM_Any works
+cpan/ExtUtils-MakeMaker/t/MM_BeOS.t						See if ExtUtils::MM_BeOS works
+cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t						See if ExtUtils::MM_Cygwin works
+cpan/ExtUtils-MakeMaker/t/MM_NW5.t						See if ExtUtils::MM_NW5 works
+cpan/ExtUtils-MakeMaker/t/MM_OS2.t						See if ExtUtils::MM_OS2 works
+cpan/ExtUtils-MakeMaker/t/MM_Unix.t						See if ExtUtils::MM_UNIX works
+cpan/ExtUtils-MakeMaker/t/MM_VMS.t						See if ExtUtils::MM_VMS works
+cpan/ExtUtils-MakeMaker/t/MM_Win32.t						See if ExtUtils::MM_Win32 works
+cpan/ExtUtils-MakeMaker/t/oneliner.t						See if MM can generate perl one-liners
+cpan/ExtUtils-MakeMaker/t/os_unsupported.t					Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/parse_abstract.t					See if parse_abstract works
+cpan/ExtUtils-MakeMaker/t/parse_version.t					See if parse_version works
+cpan/ExtUtils-MakeMaker/t/PL_FILES.t						Test PL_FILES in MakeMaker
+cpan/ExtUtils-MakeMaker/t/pm.t							See if MakeMaker can handle PM
+cpan/ExtUtils-MakeMaker/t/pm_to_blib.t						Test for ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/pod2man.t						See if MakeMaker can handle no pod2man
+cpan/ExtUtils-MakeMaker/t/postamble.t						See if postamble works
+cpan/ExtUtils-MakeMaker/t/prefixify.t						See if MakeMaker can apply a PREFIX
+cpan/ExtUtils-MakeMaker/t/prereq.t						See if MakeMaker works
+cpan/ExtUtils-MakeMaker/t/prereq_print.t					See if PREREQ_PRINT works
+cpan/ExtUtils-MakeMaker/t/problems.t						How MakeMaker reacts to build problems
+cpan/ExtUtils-MakeMaker/t/prompt.t						See if E::MM::prompt() works
+cpan/ExtUtils-MakeMaker/t/recurs.t						See if recursive builds work
+cpan/ExtUtils-MakeMaker/t/revision.t						See if $Revision is correct
+cpan/ExtUtils-MakeMaker/t/several_authors.t					See if multiple AUTHORs work
+cpan/ExtUtils-MakeMaker/t/split_command.t					See if MM's xargs-like function works
+cpan/ExtUtils-MakeMaker/t/test_boilerplate.t					MakeMaker test
 cpan/ExtUtils-MakeMaker/t/testdata/reallylongdirectoryname/arch1/Config.pm	test data for MakeMaker
 cpan/ExtUtils-MakeMaker/t/testdata/reallylongdirectoryname/arch2/Config.pm	test data for MakeMaker
-cpan/ExtUtils-MakeMaker/t/testlib.t				See if ExtUtils::testlib works
-cpan/ExtUtils-MakeMaker/t/unicode.t
-cpan/ExtUtils-MakeMaker/t/VERSION_FROM.t			See if MakeMaker's VERSION_FROM works
-cpan/ExtUtils-MakeMaker/t/vstrings.t
-cpan/ExtUtils-MakeMaker/t/WriteEmptyMakefile.t			See if WriteEmptyMakefile works
-cpan/ExtUtils-MakeMaker/t/writemakefile_args.t			See if WriteMakefile works
-cpan/ExtUtils-Manifest/lib/ExtUtils/Manifest.pm			Utilities to write MANIFEST files
-cpan/ExtUtils-Manifest/lib/ExtUtils/MANIFEST.SKIP		The default MANIFEST.SKIP
-cpan/ExtUtils-Manifest/t/Manifest.t				See if ExtUtils::Manifest works
+cpan/ExtUtils-MakeMaker/t/testlib.t						See if ExtUtils::testlib works
+cpan/ExtUtils-MakeMaker/t/unicode.t						Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/VERSION_FROM.t					See if MakeMaker's VERSION_FROM works
+cpan/ExtUtils-MakeMaker/t/vstrings.t						Test file related to ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/WriteEmptyMakefile.t					See if WriteEmptyMakefile works
+cpan/ExtUtils-MakeMaker/t/writemakefile_args.t					See if WriteMakefile works
+cpan/ExtUtils-Manifest/lib/ExtUtils/Manifest.pm		Utilities to write MANIFEST files
+cpan/ExtUtils-Manifest/lib/ExtUtils/MANIFEST.SKIP	The default MANIFEST.SKIP
+cpan/ExtUtils-Manifest/t/Manifest.t			See if ExtUtils::Manifest works
 cpan/ExtUtils-PL2Bat/lib/ExtUtils/PL2Bat.pm	Implement pl2bat
 cpan/ExtUtils-PL2Bat/t/make_executable.t	Tests if ExtUtils::PL2Bat makes bat files that are executable
 cpan/File-Fetch/lib/File/Fetch.pm	File::Fetch
@@ -935,21 +1138,21 @@ cpan/File-Path/t/Path.t			See if File::P
 cpan/File-Path/t/Path_root.t		See if File::Path works
 cpan/File-Path/t/Path_win32.t		See if File::Path works
 cpan/File-Path/t/taint.t		See if File::Path works with -T
-cpan/File-Temp/lib/File/Temp.pm	create safe temporary files and file handles
-cpan/File-Temp/t/cmp.t		See if File::Temp works
-cpan/File-Temp/t/fork.t		See if File::Temp works
-cpan/File-Temp/t/lock.t		See if File::Temp works
-cpan/File-Temp/t/mktemp.t	See if File::Temp works
-cpan/File-Temp/t/object.t	See if File::Temp works
-cpan/File-Temp/t/posix.t	See if File::Temp works
-cpan/File-Temp/t/rmtree.t	See if File::Temp works
-cpan/File-Temp/t/security.t	See if File::Temp works
-cpan/File-Temp/t/seekable.t	See if File::Temp works
-cpan/File-Temp/t/tempfile.t	See if File::Temp works
-cpan/Filter-Util-Call/Call.pm	Filter::Util::Call extension module
-cpan/Filter-Util-Call/Call.xs	Filter::Util::Call extension external subroutines
+cpan/File-Temp/lib/File/Temp.pm		create safe temporary files and file handles
+cpan/File-Temp/t/cmp.t			See if File::Temp works
+cpan/File-Temp/t/fork.t			See if File::Temp works
+cpan/File-Temp/t/lock.t			See if File::Temp works
+cpan/File-Temp/t/mktemp.t		See if File::Temp works
+cpan/File-Temp/t/object.t		See if File::Temp works
+cpan/File-Temp/t/posix.t		See if File::Temp works
+cpan/File-Temp/t/rmtree.t		See if File::Temp works
+cpan/File-Temp/t/security.t		See if File::Temp works
+cpan/File-Temp/t/seekable.t		See if File::Temp works
+cpan/File-Temp/t/tempfile.t		See if File::Temp works
+cpan/Filter-Util-Call/Call.pm			Filter::Util::Call extension module
+cpan/Filter-Util-Call/Call.xs			Filter::Util::Call extension external subroutines
 cpan/Filter-Util-Call/filter-util.pl		See if Filter::Util::Call works
-cpan/Filter-Util-Call/t/call.t	See if Filter::Util::Call works
+cpan/Filter-Util-Call/t/call.t			See if Filter::Util::Call works
 cpan/Filter-Util-Call/t/rt_101033.pm
 cpan/Filter-Util-Call/t/rt_101033.t
 cpan/Filter-Util-Call/t/rt_54452-rebless.t
@@ -1059,6 +1262,7 @@ cpan/HTTP-Tiny/t/160_cookies.t
 cpan/HTTP-Tiny/t/161_basic_auth.t
 cpan/HTTP-Tiny/t/162_proxy_auth.t
 cpan/HTTP-Tiny/t/170_keepalive.t
+cpan/HTTP-Tiny/t/180_verify_SSL.t
 cpan/HTTP-Tiny/t/BrokenCookieJar.pm
 cpan/HTTP-Tiny/t/SimpleCookieJar.pm
 cpan/HTTP-Tiny/t/Util.pm
@@ -1227,23 +1431,23 @@ cpan/IO-Socket-IP/t/22timeout.t
 cpan/IO-Socket-IP/t/30nonblocking-connect.t		IO::Socket::IP tests
 cpan/IO-Socket-IP/t/31nonblocking-connect-internet.t	IO::Socket::IP tests
 cpan/IO-Socket-IP/t/99pod.t				IO::Socket::IP tests
-cpan/IO-Zlib/t/basic.t		Tests for IO::Zlib
-cpan/IO-Zlib/t/external.t	Tests for IO::Zlib
-cpan/IO-Zlib/t/getc.t		Tests for IO::Zlib
-cpan/IO-Zlib/t/getline.t	Tests for IO::Zlib
-cpan/IO-Zlib/t/import.t		Tests for IO::Zlib
-cpan/IO-Zlib/t/large.t		Tests for IO::Zlib
-cpan/IO-Zlib/t/tied.t		Tests for IO::Zlib
-cpan/IO-Zlib/t/uncomp1.t	Tests for IO::Zlib
-cpan/IO-Zlib/t/uncomp2.t	Tests for IO::Zlib
-cpan/IO-Zlib/Zlib.pm		IO::Zlib
-cpan/IPC-Cmd/lib/IPC/Cmd.pm			IPC::Cmd
-cpan/IPC-Cmd/t/01_IPC-Cmd.t	IPC::Cmd tests
-cpan/IPC-Cmd/t/02_Interactive.t	IPC::Cmd tests
-cpan/IPC-Cmd/t/03_run-forked.t	IPC::Cmd tests
-cpan/IPC-Cmd/t/src/child.pl	IPC::Cmd tests
-cpan/IPC-Cmd/t/src/output.pl	IPC::Cmd tests
-cpan/IPC-Cmd/t/src/x.tgz	IPC::Cmd tests
+cpan/IO-Zlib/t/basic.t			Tests for IO::Zlib
+cpan/IO-Zlib/t/external.t		Tests for IO::Zlib
+cpan/IO-Zlib/t/getc.t			Tests for IO::Zlib
+cpan/IO-Zlib/t/getline.t		Tests for IO::Zlib
+cpan/IO-Zlib/t/import.t			Tests for IO::Zlib
+cpan/IO-Zlib/t/large.t			Tests for IO::Zlib
+cpan/IO-Zlib/t/tied.t			Tests for IO::Zlib
+cpan/IO-Zlib/t/uncomp1.t		Tests for IO::Zlib
+cpan/IO-Zlib/t/uncomp2.t		Tests for IO::Zlib
+cpan/IO-Zlib/Zlib.pm			IO::Zlib
+cpan/IPC-Cmd/lib/IPC/Cmd.pm		IPC::Cmd
+cpan/IPC-Cmd/t/01_IPC-Cmd.t		IPC::Cmd tests
+cpan/IPC-Cmd/t/02_Interactive.t		IPC::Cmd tests
+cpan/IPC-Cmd/t/03_run-forked.t		IPC::Cmd tests
+cpan/IPC-Cmd/t/src/child.pl		IPC::Cmd tests
+cpan/IPC-Cmd/t/src/output.pl		IPC::Cmd tests
+cpan/IPC-Cmd/t/src/x.tgz		IPC::Cmd tests
 cpan/IPC-SysV/hints/cygwin.pl		Hint for IPC::SysV for named architecture
 cpan/IPC-SysV/hints/next_3.pl		Hint for IPC::SysV for named architecture
 cpan/IPC-SysV/lib/IPC/Msg.pm		IPC::SysV extension Perl module
@@ -1288,7 +1492,23 @@ cpan/JSON-PP/t/020_unknown.t
 cpan/JSON-PP/t/021_evans.t
 cpan/JSON-PP/t/022_comment_at_eof.t
 cpan/JSON-PP/t/052_object.t
-cpan/JSON-PP/t/099_binary.t
+cpan/JSON-PP/t/099_binary.pl
+cpan/JSON-PP/t/099_binary00.t
+cpan/JSON-PP/t/099_binary01.t
+cpan/JSON-PP/t/099_binary02.t
+cpan/JSON-PP/t/099_binary03.t
+cpan/JSON-PP/t/099_binary04.t
+cpan/JSON-PP/t/099_binary05.t
+cpan/JSON-PP/t/099_binary06.t
+cpan/JSON-PP/t/099_binary07.t
+cpan/JSON-PP/t/099_binary08.t
+cpan/JSON-PP/t/099_binary09.t
+cpan/JSON-PP/t/099_binary10.t
+cpan/JSON-PP/t/099_binary11.t
+cpan/JSON-PP/t/099_binary12.t
+cpan/JSON-PP/t/099_binary13.t
+cpan/JSON-PP/t/099_binary14.t
+cpan/JSON-PP/t/099_binary15.t
 cpan/JSON-PP/t/104_sortby.t
 cpan/JSON-PP/t/105_esc_slash.t
 cpan/JSON-PP/t/106_allow_barekey.t
@@ -1303,42 +1523,46 @@ cpan/JSON-PP/t/115_tie_ixhash.t
 cpan/JSON-PP/t/116_incr_parse_fixed.t
 cpan/JSON-PP/t/117_numbers.t
 cpan/JSON-PP/t/118_boolean_values.t
+cpan/JSON-PP/t/119_incr_parse_utf8.t
+cpan/JSON-PP/t/120_incr_parse_truncated.t
+cpan/JSON-PP/t/core_bools.t
 cpan/JSON-PP/t/gh_28_json_test_suite.t
 cpan/JSON-PP/t/gh_29_trailing_false_value.t
 cpan/JSON-PP/t/rt_116998_wrong_character_offset.t
+cpan/JSON-PP/t/rt_122270_old_xs_boolean.t
 cpan/JSON-PP/t/rt_90071_incr_parse.t
 cpan/JSON-PP/t/zero-mojibake.t
-cpan/libnet/lib/Net/Cmd.pm
-cpan/libnet/lib/Net/Config.pm
-cpan/libnet/lib/Net/Domain.pm
-cpan/libnet/lib/Net/FTP.pm
-cpan/libnet/lib/Net/FTP/A.pm
-cpan/libnet/lib/Net/FTP/dataconn.pm
-cpan/libnet/lib/Net/FTP/E.pm
-cpan/libnet/lib/Net/FTP/I.pm
-cpan/libnet/lib/Net/FTP/L.pm
-cpan/libnet/lib/Net/libnetFAQ.pod
-cpan/libnet/lib/Net/Netrc.pm
-cpan/libnet/lib/Net/NNTP.pm
-cpan/libnet/lib/Net/POP3.pm
-cpan/libnet/lib/Net/SMTP.pm
-cpan/libnet/lib/Net/Time.pm
-cpan/libnet/Makefile.PL
-cpan/libnet/t/config.t		libnet
-cpan/libnet/t/datasend.t	libnet
-cpan/libnet/t/ftp.t		libnet
-cpan/libnet/t/hostname.t	libnet
-cpan/libnet/t/netrc.t		libnet
-cpan/libnet/t/nntp.t		libnet
-cpan/libnet/t/nntp_ipv6.t
-cpan/libnet/t/nntp_ssl.t
-cpan/libnet/t/pop3_ipv6.t
-cpan/libnet/t/pop3_ssl.t
-cpan/libnet/t/require.t		libnet
-cpan/libnet/t/smtp.t		libnet
-cpan/libnet/t/smtp_ipv6.t
-cpan/libnet/t/smtp_ssl.t
-cpan/libnet/t/time.t		libnet
+cpan/libnet/lib/Net/Cmd.pm		Module related to libnet
+cpan/libnet/lib/Net/Config.pm		Module related to libnet
+cpan/libnet/lib/Net/Domain.pm		Module related to libnet
+cpan/libnet/lib/Net/FTP.pm		Module related to libnet
+cpan/libnet/lib/Net/FTP/A.pm		Module related to libnet
+cpan/libnet/lib/Net/FTP/dataconn.pm	Module related to libnet
+cpan/libnet/lib/Net/FTP/E.pm		Module related to libnet
+cpan/libnet/lib/Net/FTP/I.pm		Module related to libnet
+cpan/libnet/lib/Net/FTP/L.pm		Module related to libnet
+cpan/libnet/lib/Net/libnetFAQ.pod	libnet
+cpan/libnet/lib/Net/Netrc.pm		Module related to libnet
+cpan/libnet/lib/Net/NNTP.pm		Module related to libnet
+cpan/libnet/lib/Net/POP3.pm		Module related to libnet
+cpan/libnet/lib/Net/SMTP.pm		Module related to libnet
+cpan/libnet/lib/Net/Time.pm		Module related to libnet
+cpan/libnet/Makefile.PL			libnet
+cpan/libnet/t/config.t			libnet
+cpan/libnet/t/datasend.t		libnet
+cpan/libnet/t/ftp.t			libnet
+cpan/libnet/t/hostname.t		libnet
+cpan/libnet/t/netrc.t			libnet
+cpan/libnet/t/nntp.t			libnet
+cpan/libnet/t/nntp_ipv6.t		Test file related to libnet
+cpan/libnet/t/nntp_ssl.t		Test file related to libnet
+cpan/libnet/t/pop3_ipv6.t		Test file related to libnet
+cpan/libnet/t/pop3_ssl.t		Test file related to libnet
+cpan/libnet/t/require.t			libnet
+cpan/libnet/t/smtp.t			libnet
+cpan/libnet/t/smtp_ipv6.t		Test file related to libnet
+cpan/libnet/t/smtp_ssl.t		Test file related to libnet
+cpan/libnet/t/time.t			libnet
 cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm	Locale::Simple
 cpan/Locale-Maketext-Simple/t/0-signature.t			Locale::Simple tests
 cpan/Locale-Maketext-Simple/t/1-basic.t				Locale::Simple tests
@@ -1350,136 +1574,80 @@ cpan/Locale-Maketext-Simple/t/po_with_i_
 cpan/Locale-Maketext-Simple/t/po_without_i_default/en.po	Locale::Simple tests
 cpan/Locale-Maketext-Simple/t/po_without_i_default/fr.po	Locale::Simple tests
 cpan/Math-BigInt/lib/Math/BigFloat.pm		An arbitrary precision floating-point arithmetic package
-cpan/Math-BigInt/lib/Math/BigInt.pm	An arbitrary precision integer arithmetic package
+cpan/Math-BigInt/lib/Math/BigInt.pm		An arbitrary precision integer arithmetic package
 cpan/Math-BigInt/lib/Math/BigInt/Calc.pm	Pure Perl module to support Math::BigInt
 cpan/Math-BigInt/lib/Math/BigInt/Lib.pm
-cpan/Math-BigInt/t/_bin_parts_to_lib_parts.t
-cpan/Math-BigInt/t/_bin_str_to_str_parts.t
-cpan/Math-BigInt/t/_dec_parts_to_lib_parts.t
-cpan/Math-BigInt/t/_dec_str_to_str_parts.t
-cpan/Math-BigInt/t/_e_math.t		Helper routine in BigFloat for _e math
-cpan/Math-BigInt/t/_hex_str_to_str_parts.t
-cpan/Math-BigInt/t/_oct_str_to_str_parts.t
-cpan/Math-BigInt/t/alias.inc		Support for BigInt tests
-cpan/Math-BigInt/t/backermann-mbi.t	Test Math::BigInt
-cpan/Math-BigInt/t/bare_mbf.t		Test MBF under Math::BigInt::BareCalc
-cpan/Math-BigInt/t/bare_mbi.t		Test MBI under Math::BigInt::BareCalc
-cpan/Math-BigInt/t/bare_mif.t		Rounding tests under BareCalc
-cpan/Math-BigInt/t/bdigitsum-mbi.t	Test Math::BigInt
-cpan/Math-BigInt/t/bdstr-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/bdstr-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/bestr-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/bestr-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/bfib-mbi.t
-cpan/Math-BigInt/t/big_pi_e.t		test bpi() and bexp()
-cpan/Math-BigInt/t/bigfltpm.inc		Shared tests for bigfltpm.t and sub_mbf.t
-cpan/Math-BigInt/t/bigfltpm.t		See if BigFloat.pm works
-cpan/Math-BigInt/t/bigintc.t		See if BigInt/Calc.pm works
+cpan/Math-BigInt/t/alias.inc			Support for BigInt tests
+cpan/Math-BigInt/t/bare_mbf.t			Test MBF under Math::BigInt::BareCalc
+cpan/Math-BigInt/t/bare_mbi.t			Test MBI under Math::BigInt::BareCalc
+cpan/Math-BigInt/t/bare_mif.t			Rounding tests under BareCalc
+cpan/Math-BigInt/t/big_pi_e.t			test bpi() and bexp()
+cpan/Math-BigInt/t/bigfltpm.inc			Shared tests for bigfltpm.t and sub_mbf.t
+cpan/Math-BigInt/t/bigfltpm.t			See if BigFloat.pm works
+cpan/Math-BigInt/t/bigintc.t			See if BigInt/Calc.pm works
 cpan/Math-BigInt/t/bigintc-import.t
-cpan/Math-BigInt/t/bigintpm.inc		Shared tests for bigintpm.t and sub_mbi.t
-cpan/Math-BigInt/t/bigintpm.t		See if BigInt.pm works
-cpan/Math-BigInt/t/bigints.t		See if BigInt.pm works
-cpan/Math-BigInt/t/biglog.t		Test the log function
-cpan/Math-BigInt/t/bigroot.t		Test the broot function
-cpan/Math-BigInt/t/blucas-mbi.t
-cpan/Math-BigInt/t/bnok-mbf.t
-cpan/Math-BigInt/t/bnok-mbi.t
-cpan/Math-BigInt/t/bnstr-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/bnstr-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/bpi-mbf.t
-cpan/Math-BigInt/t/bpi-mbi.t
-cpan/Math-BigInt/t/bpow-mbf.t
-cpan/Math-BigInt/t/bpow-mbi.t
-cpan/Math-BigInt/t/bsstr-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/bsstr-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/buparrow-mbi.t	Test Math::BigInt
+cpan/Math-BigInt/t/bigintpm.inc			Shared tests for bigintpm.t and sub_mbi.t
+cpan/Math-BigInt/t/bigintpm.t			See if BigInt.pm works
+cpan/Math-BigInt/t/bigints.t			See if BigInt.pm works
+cpan/Math-BigInt/t/biglog.t			Test the log function
+cpan/Math-BigInt/t/bigroot.t			Test the broot function
 cpan/Math-BigInt/t/calling-class-methods.t	Test Math::BigInt
 cpan/Math-BigInt/t/calling-constant.t
 cpan/Math-BigInt/t/calling-instance-methods.t	Test Math::BigInt
 cpan/Math-BigInt/t/calling-lib1.t
 cpan/Math-BigInt/t/calling-lib2.t
-cpan/Math-BigInt/t/config.t		Test Math::BigInt->config()
-cpan/Math-BigInt/t/const-mbf.t
-cpan/Math-BigInt/t/const-mbi.t
-cpan/Math-BigInt/t/downgrade.t		Test if use Math::BigInt(); under downgrade works
-cpan/Math-BigInt/t/dparts-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/dparts-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/eparts-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/eparts-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/fparts-mbf.t
-cpan/Math-BigInt/t/fparts-mbi.t
-cpan/Math-BigInt/t/from_base-mbi.t
-cpan/Math-BigInt/t/from_base_num-mbi.t
-cpan/Math-BigInt/t/from_bin-mbf.t	Test Math::BigInt
-cpan/Math-BigInt/t/from_bin-mbi.t
-cpan/Math-BigInt/t/from_hex-mbf.t	Test Math::BigInt
-cpan/Math-BigInt/t/from_hex-mbi.t
-cpan/Math-BigInt/t/from_ieee754-mbf.t	Test Math::BigInt
-cpan/Math-BigInt/t/from_oct-mbf.t	Test Math::BigInt
-cpan/Math-BigInt/t/from_oct-mbi.t
-cpan/Math-BigInt/t/inf_nan.t		Special tests for inf and *NaN* handling
-cpan/Math-BigInt/t/isa.t		Test for Math::BigInt inheritance
-cpan/Math-BigInt/t/lib_load-mbf-mbi.t
-cpan/Math-BigInt/t/lib_load-mbi-mbf.t
+cpan/Math-BigInt/t/config.t			Test Math::BigInt->config()
+cpan/Math-BigInt/t/downgrade.t			Test if use Math::BigInt(); under downgrade works
+cpan/Math-BigInt/t/inf_nan.t			Special tests for inf and *NaN* handling
+cpan/Math-BigInt/t/isa.t			Test for Math::BigInt inheritance
 cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm	Empty subclass of BigFloat for test
 cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm	Bigint's simulation of Calc
 cpan/Math-BigInt/t/Math/BigInt/Lib/Minimal.pm
 cpan/Math-BigInt/t/Math/BigInt/Lib/TestUtil.pm	Test Math::BigInt
 cpan/Math-BigInt/t/Math/BigInt/Scalar.pm	Pure Perl module to support Math::BigInt
 cpan/Math-BigInt/t/Math/BigInt/Subclass.pm	Empty subclass of BigInt for test
-cpan/Math-BigInt/t/mbf_ali.t		Tests for BigFloat
-cpan/Math-BigInt/t/mbi_ali.t		Tests for BigInt
-cpan/Math-BigInt/t/mbi_rand.t		Test Math::BigInt randomly
-cpan/Math-BigInt/t/mbimbf.inc		Actual BigInt/BigFloat accuracy, precision and fallback, round_mode tests
-cpan/Math-BigInt/t/mbimbf.t		BigInt/BigFloat accuracy, precision and fallback, round_mode
-cpan/Math-BigInt/t/nan_cmp.t		overloaded comparison involving *NaN*
-cpan/Math-BigInt/t/new-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/new-mbi.t
-cpan/Math-BigInt/t/new_overloaded.t	test overloaded numbers in BigFloat's new()
-cpan/Math-BigInt/t/nparts-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/nparts-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/objectify_mbf.t	Math::BigInt tests
-cpan/Math-BigInt/t/objectify_mbi.t	Math::BigInt tests
-cpan/Math-BigInt/t/req_mbf0.t		test: require Math::BigFloat; ->bzero();
-cpan/Math-BigInt/t/req_mbf1.t		test: require Math::BigFloat; ->bone();
-cpan/Math-BigInt/t/req_mbfa.t		test: require Math::BigFloat; ->bnan();
-cpan/Math-BigInt/t/req_mbfi.t		test: require Math::BigFloat; ->binf();
-cpan/Math-BigInt/t/req_mbfn.t		test: require Math::BigFloat; ->new();
-cpan/Math-BigInt/t/req_mbfw.t		require Math::BigFloat; import ( with => );
-cpan/Math-BigInt/t/require.t		Test if require Math::BigInt works
-cpan/Math-BigInt/t/round.t		Test rounding with non-integer A and P
-cpan/Math-BigInt/t/rt-16221.t		Tests for objectify() w/foreign objs
-cpan/Math-BigInt/t/sparts-mbf.t		Test Math::BigInt
-cpan/Math-BigInt/t/sparts-mbi.t		Test Math::BigInt
-cpan/Math-BigInt/t/sub_ali.t		Tests for aliases in BigInt subclasses
-cpan/Math-BigInt/t/sub_mbf.t		Empty subclass test of BigFloat
-cpan/Math-BigInt/t/sub_mbi.t		Empty subclass test of BigInt
-cpan/Math-BigInt/t/sub_mif.t		Test A & P with subclasses using mbimbf.inc
-cpan/Math-BigInt/t/to_base-mbi.t
-cpan/Math-BigInt/t/to_base_num-mbi.t
-cpan/Math-BigInt/t/to_ieee754-mbf.t	Test Math::BigInt
-cpan/Math-BigInt/t/trap.t		Test whether trap_nan and trap_inf work
-cpan/Math-BigInt/t/upgrade.inc		Actual tests for upgrade.t
-cpan/Math-BigInt/t/upgrade.t		Test if use Math::BigInt(); under upgrade works
-cpan/Math-BigInt/t/upgrade2.t		Test that two upgrade levels work
-cpan/Math-BigInt/t/upgradef.t		Test if use Math::BigFloat(); under upgrade works
-cpan/Math-BigInt/t/use.t		Test if use Math::BigInt(); works
-cpan/Math-BigInt/t/use_lib1.t		Test combinations of Math::BigInt and BigFloat
-cpan/Math-BigInt/t/use_lib2.t		Test combinations of Math::BigInt and BigFloat
-cpan/Math-BigInt/t/use_lib3.t		Test combinations of Math::BigInt and BigFloat
-cpan/Math-BigInt/t/use_lib4.t		Test combinations of Math::BigInt and BigFloat
+cpan/Math-BigInt/t/mbf_ali.t			Tests for BigFloat
+cpan/Math-BigInt/t/mbi_ali.t			Tests for BigInt
+cpan/Math-BigInt/t/mbi_rand.t			Test Math::BigInt randomly
+cpan/Math-BigInt/t/mbimbf.inc			Actual BigInt/BigFloat accuracy, precision and fallback, round_mode tests
+cpan/Math-BigInt/t/mbimbf.t			BigInt/BigFloat accuracy, precision and fallback, round_mode
+cpan/Math-BigInt/t/nan_cmp.t			overloaded comparison involving *NaN*
+cpan/Math-BigInt/t/new_overloaded.t		test overloaded numbers in BigFloat's new()
+cpan/Math-BigInt/t/req_mbf0.t			test: require Math::BigFloat; ->bzero();
+cpan/Math-BigInt/t/req_mbf1.t			test: require Math::BigFloat; ->bone();
+cpan/Math-BigInt/t/req_mbfa.t			test: require Math::BigFloat; ->bnan();
+cpan/Math-BigInt/t/req_mbfi.t			test: require Math::BigFloat; ->binf();
+cpan/Math-BigInt/t/req_mbfn.t			test: require Math::BigFloat; ->new();
+cpan/Math-BigInt/t/req_mbfw.t			require Math::BigFloat; import ( with => );
+cpan/Math-BigInt/t/require.t			Test if require Math::BigInt works
+cpan/Math-BigInt/t/round.t			Test rounding with non-integer A and P
+cpan/Math-BigInt/t/rt-16221.t			Tests for objectify() w/foreign objs
+cpan/Math-BigInt/t/sub_ali.t			Tests for aliases in BigInt subclasses
+cpan/Math-BigInt/t/sub_mbf.t			Empty subclass test of BigFloat
+cpan/Math-BigInt/t/sub_mbi.t			Empty subclass test of BigInt
+cpan/Math-BigInt/t/sub_mif.t			Test A & P with subclasses using mbimbf.inc
+cpan/Math-BigInt/t/trap.t			Test whether trap_nan and trap_inf work
+cpan/Math-BigInt/t/upgrade.inc			Actual tests for upgrade.t
+cpan/Math-BigInt/t/upgrade.t			Test if use Math::BigInt(); under upgrade works
+cpan/Math-BigInt/t/upgrade2.t			Test that two upgrade levels work
+cpan/Math-BigInt/t/upgradef.t			Test if use Math::BigFloat(); under upgrade works
+cpan/Math-BigInt/t/use.t			Test if use Math::BigInt(); works
+cpan/Math-BigInt/t/use_lib1.t			Test combinations of Math::BigInt and BigFloat
+cpan/Math-BigInt/t/use_lib2.t			Test combinations of Math::BigInt and BigFloat
+cpan/Math-BigInt/t/use_lib3.t			Test combinations of Math::BigInt and BigFloat
+cpan/Math-BigInt/t/use_lib4.t			Test combinations of Math::BigInt and BigFloat
 cpan/Math-BigInt/t/use_lib5.t
 cpan/Math-BigInt/t/use_lib6.t
-cpan/Math-BigInt/t/use_mbfw.t		use BigFloat w/ with and lib at the same time
-cpan/Math-BigInt/t/with_sub.t		Test use Math::BigFloat with => package
-cpan/Math-BigInt-FastCalc/FastCalc.xs	Math::BigInt::FastCalc extension
+cpan/Math-BigInt/t/use_mbfw.t			use BigFloat w/ with and lib at the same time
+cpan/Math-BigInt/t/with_sub.t			Test use Math::BigFloat with => package
+cpan/Math-BigInt-FastCalc/FastCalc.xs			Math::BigInt::FastCalc extension
 cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm	Math::BigInt::FastCalc extension
-cpan/Math-BigInt-FastCalc/t/bigintfc.t	Math::BigInt::FastCalc extension
+cpan/Math-BigInt-FastCalc/t/bigintfc.t			Math::BigInt::FastCalc extension
 cpan/Math-BigInt-FastCalc/t/biglog.t
 cpan/Math-BigInt-FastCalc/t/bigroot.t
-cpan/Math-BigInt-FastCalc/t/bootstrap.t	Math::BigInt::FastCalc extension
-cpan/Math-BigInt-FastCalc/t/leak.t	test for memory leaks in Math::BigInt::FastCalc
-cpan/Math-BigInt-FastCalc/t/mbi_rand.t	Math::BigInt::FastCalc extension
+cpan/Math-BigInt-FastCalc/t/bootstrap.t			Math::BigInt::FastCalc extension
+cpan/Math-BigInt-FastCalc/t/leak.t			test for memory leaks in Math::BigInt::FastCalc
+cpan/Math-BigInt-FastCalc/t/mbi_rand.t			Math::BigInt::FastCalc extension
 cpan/Math-BigRat/lib/Math/BigRat.pm	Math::BigRat
 cpan/Math-BigRat/t/badd-mbr.t
 cpan/Math-BigRat/t/big_ap.t		Math::BigRat test
@@ -1502,46 +1670,38 @@ cpan/Math-BigRat/t/new-mbr.t
 cpan/Math-BigRat/t/requirer.t		see if require works properly
 cpan/Math-BigRat/t/rt121139.t
 cpan/Math-BigRat/t/trap.t		see if trap_nan and trap_inf work
-cpan/Math-Complex/lib/Math/Complex.pm	A Complex package
-cpan/Math-Complex/lib/Math/Trig.pm	A simple interface to complex trigonometry
-cpan/Math-Complex/t/Complex.t		See if Math::Complex works
-cpan/Math-Complex/t/Trig.t		See if Math::Trig works
-cpan/Math-Complex/t/underbar.t		See if Math::Complex works
 cpan/Memoize/Memoize.pm			Memoize
 cpan/Memoize/Memoize/AnyDBM_File.pm	Memoize glue layer for AnyDBM_File
 cpan/Memoize/Memoize/Expire.pm		Memoize expiry manager example
-cpan/Memoize/Memoize/ExpireFile.pm	Memoize expiry manager test scaffold
-cpan/Memoize/Memoize/ExpireTest.pm	Memoize expiry manager test scaffold
 cpan/Memoize/Memoize/NDBM_File.pm	Memoize glue layer for NDBM_File
 cpan/Memoize/Memoize/SDBM_File.pm	Memoize glue layer for SDBM_File
 cpan/Memoize/Memoize/Storable.pm	Memoize glue layer for Storable
-cpan/Memoize/t/array.t			Memoize array context return tests
-cpan/Memoize/t/array_confusion.t	Memoize ambiguous array return tests
+cpan/Memoize/t/basic.t
+cpan/Memoize/t/cache.t
 cpan/Memoize/t/correctness.t		Memoize basic correctness tests
-cpan/Memoize/t/errors.t			Memoize PEBKAC detection tests
-cpan/Memoize/t/expfile.t		Memoize expiry manager tests
-cpan/Memoize/t/expire.t			Memoize expiry manager tests
-cpan/Memoize/t/expmod_n.t		Memoize expiry manager tests
+cpan/Memoize/t/expmod.t
 cpan/Memoize/t/expmod_t.t		Memoize expiry manager (timed) tests
 cpan/Memoize/t/flush.t			Memoize 'flush_cache' function tests
+cpan/Memoize/t/lib/DBMTest.pm
 cpan/Memoize/t/normalize.t		Memoize 'normalizer' feature tests
-cpan/Memoize/t/prototype.t		Memoize prototyped function handling tests
-cpan/Memoize/t/speed.t			"Makes functions faster" advertisement test
+cpan/Memoize/t/st_concurrency
+cpan/Memoize/t/threadsafe.t
 cpan/Memoize/t/tie.t			Memoize tied file test
+cpan/Memoize/t/tie_db.t
 cpan/Memoize/t/tie_gdbm.t		Memoize GDBM interface test
 cpan/Memoize/t/tie_ndbm.t		Memoize NDBM interface test
+cpan/Memoize/t/tie_odbm.t
 cpan/Memoize/t/tie_sdbm.t		Memoize SDBM interface test
 cpan/Memoize/t/tie_storable.t		Memoize Storable interface test
-cpan/Memoize/t/tiefeatures.t		Memoize FAULT / MERGE / HASH options test
 cpan/Memoize/t/unmemoize.t		Memoize 'unmemoize' function test
-cpan/MIME-Base64/Base64.xs		MIME::Base64 extension
+cpan/MIME-Base64/Base64.xs			MIME::Base64 extension
 cpan/MIME-Base64/lib/MIME/Base64.pm
 cpan/MIME-Base64/lib/MIME/QuotedPrint.pm
-cpan/MIME-Base64/t/base64.t		See whether MIME::Base64 works
+cpan/MIME-Base64/t/base64.t			See whether MIME::Base64 works
 cpan/MIME-Base64/t/base64url.t
-cpan/MIME-Base64/t/length.t	See whether MIME::QuotedPrint works
-cpan/MIME-Base64/t/quoted-print.t	See whether MIME::QuotedPrint works
-cpan/MIME-Base64/t/unicode.t		See whether MIME::Base64 works
+cpan/MIME-Base64/t/length.t			See whether MIME::QuotedPrint works
+cpan/MIME-Base64/t/quoted-print.t		See whether MIME::QuotedPrint works
+cpan/MIME-Base64/t/unicode.t			See whether MIME::Base64 works
 cpan/Module-Load/lib/Module/Load.pm		Module::Load
 cpan/Module-Load/t/01_Module-Load.t		Module::Load tests
 cpan/Module-Load/t/02_Module-Load.t		Module::Load tests
@@ -1584,23 +1744,23 @@ cpan/Module-Metadata/t/lib/GeneratePacka
 cpan/Module-Metadata/t/metadata.t
 cpan/Module-Metadata/t/taint.t
 cpan/Module-Metadata/t/version.t
-cpan/NEXT/lib/NEXT.pm		Pseudo-class NEXT for method redispatch
-cpan/NEXT/t/actual.t		NEXT
-cpan/NEXT/t/actuns.t		NEXT
+cpan/NEXT/lib/NEXT.pm				Pseudo-class NEXT for method redispatch
+cpan/NEXT/t/actual.t				NEXT
+cpan/NEXT/t/actuns.t				NEXT
 cpan/NEXT/t/dynamically_scoped_regex_vars.t	NEXT
-cpan/NEXT/t/next.t		NEXT
-cpan/NEXT/t/stringify.t		NEXT
-cpan/NEXT/t/unseen.t		NEXT
-cpan/OpenBSD-MkTemp/lib/OpenBSD/MkTemp.pm		OpenBSD::MkTemp
-cpan/OpenBSD-MkTemp/MkTemp.xs		OpenBSD::MkTemp
-cpan/OpenBSD-MkTemp/README		OpenBSD::MkTemp Readme
+cpan/NEXT/t/next.t				NEXT
+cpan/NEXT/t/stringify.t				NEXT
+cpan/NEXT/t/unseen.t				NEXT
+cpan/OpenBSD-MkTemp/lib/OpenBSD/MkTemp.pm	OpenBSD::MkTemp
+cpan/OpenBSD-MkTemp/MkTemp.xs			OpenBSD::MkTemp
+cpan/OpenBSD-MkTemp/README			OpenBSD::MkTemp Readme
 cpan/OpenBSD-MkTemp/t/OpenBSD-MkTemp.t		OpenBSD::MkTemp test file
 cpan/OpenBSD-Pledge/lib/OpenBSD/Pledge.pm	OpenBSD::Pledge
-cpan/OpenBSD-Pledge/Pledge.xs	OpenBSD::Pledge
-cpan/OpenBSD-Pledge/t/OpenBSD-Pledge.t	OpenBSD::Pledge test file
+cpan/OpenBSD-Pledge/Pledge.xs			OpenBSD::Pledge
+cpan/OpenBSD-Pledge/t/OpenBSD-Pledge.t		OpenBSD::Pledge test file
 cpan/OpenBSD-Unveil/lib/OpenBSD/Unveil.pm	OpenBSD::Unveil
-cpan/OpenBSD-Unveil/t/OpenBSD-Unveil.t	OpenBSD::Unveil test file
-cpan/OpenBSD-Unveil/Unveil.xs	OpenBSD::Unveil
+cpan/OpenBSD-Unveil/t/OpenBSD-Unveil.t		OpenBSD::Unveil test file
+cpan/OpenBSD-Unveil/Unveil.xs			OpenBSD::Unveil
 cpan/Params-Check/lib/Params/Check.pm	Params::Check
 cpan/Params-Check/t/01_Params-Check.t	Params::Check tests
 cpan/parent/lib/parent.pm			Establish an ISA relationship with base classes at compile time
@@ -1617,19 +1777,19 @@ cpan/parent/t/parent-classfromfile.t		te
 cpan/parent/t/parent-pmc.t			tests for parent.pm
 cpan/parent/t/parent-returns-false.t		tests for parent.pm
 cpan/parent/t/rt62341.t.disabled		test files for parent.pm
-cpan/Perl-OSType/lib/Perl/OSType.pm			Perl::OSType
-cpan/Perl-OSType/t/OSType.t			Perl::OSType
-cpan/perlfaq/lib/perlfaq.pm	Perl frequently asked questions
-cpan/perlfaq/lib/perlfaq.pod	Perl frequently asked questions
+cpan/Perl-OSType/lib/Perl/OSType.pm	Perl::OSType
+cpan/Perl-OSType/t/OSType.t		Perl::OSType
+cpan/perlfaq/lib/perlfaq.pm		Perl frequently asked questions
+cpan/perlfaq/lib/perlfaq.pod		Perl frequently asked questions
 cpan/perlfaq/lib/perlfaq1.pod		General Questions About Perl
-cpan/perlfaq/lib/perlfaq2.pod	Obtaining and Learning about Perl
-cpan/perlfaq/lib/perlfaq3.pod	Programming Tools
-cpan/perlfaq/lib/perlfaq4.pod	Data Manipulation
-cpan/perlfaq/lib/perlfaq5.pod	Files and Formats
-cpan/perlfaq/lib/perlfaq6.pod	Regexes
-cpan/perlfaq/lib/perlfaq7.pod	Perl Language Issues
-cpan/perlfaq/lib/perlfaq8.pod	System Interaction
-cpan/perlfaq/lib/perlfaq9.pod	Networking
+cpan/perlfaq/lib/perlfaq2.pod		Obtaining and Learning about Perl
+cpan/perlfaq/lib/perlfaq3.pod		Programming Tools
+cpan/perlfaq/lib/perlfaq4.pod		Data Manipulation
+cpan/perlfaq/lib/perlfaq5.pod		Files and Formats
+cpan/perlfaq/lib/perlfaq6.pod		Regexes
+cpan/perlfaq/lib/perlfaq7.pod		Perl Language Issues
+cpan/perlfaq/lib/perlfaq8.pod		System Interaction
+cpan/perlfaq/lib/perlfaq9.pod		Networking
 cpan/perlfaq/lib/perlglossary.pod	Perl Glossary
 cpan/PerlIO-via-QuotedPrint/lib/PerlIO/via/QuotedPrint.pm	PerlIO::via::QuotedPrint
 cpan/PerlIO-via-QuotedPrint/t/changes.t
@@ -1732,10 +1892,10 @@ cpan/Pod-Simple/t/corpus/8859_7.pod			Po
 cpan/Pod-Simple/t/corpus/8859_7.xml			Pod::Simple test file
 cpan/Pod-Simple/t/corpus/cp1256.txt			Pod::Simple test file
 cpan/Pod-Simple/t/corpus/cp1256.xml			Pod::Simple test file
-cpan/Pod-Simple/t/corpus/enc_char_directive.txt			Pod::Simple test file
-cpan/Pod-Simple/t/corpus/enc_char_directive.xml			Pod::Simple test file
-cpan/Pod-Simple/t/corpus/enc_char_wrong_directive.txt			Pod::Simple test file
-cpan/Pod-Simple/t/corpus/enc_char_wrong_directive.xml			Pod::Simple test file
+cpan/Pod-Simple/t/corpus/enc_char_directive.txt		Pod::Simple test file
+cpan/Pod-Simple/t/corpus/enc_char_directive.xml		Pod::Simple test file
+cpan/Pod-Simple/t/corpus/enc_char_wrong_directive.txt	Pod::Simple test file
+cpan/Pod-Simple/t/corpus/enc_char_wrong_directive.xml	Pod::Simple test file
 cpan/Pod-Simple/t/corpus/encwarn01.txt			Pod::Simple test file
 cpan/Pod-Simple/t/corpus/encwarn01.xml			Pod::Simple test file
 cpan/Pod-Simple/t/corpus/encwarn02.txt			Pod::Simple test file
@@ -1906,22 +2066,30 @@ cpan/Pod-Usage/t/pod/testcmp.pl
 cpan/Pod-Usage/t/pod/testp2pt.pl
 cpan/Pod-Usage/t/pod/usage.pod
 cpan/Pod-Usage/t/pod/usage2.pod
-cpan/podlators/lib/Pod/Man.pm			Convert POD data to *roff
-cpan/podlators/lib/Pod/ParseLink.pm		Perl an L<> formatting code in POD text
-cpan/podlators/lib/Pod/Text.pm			Pod-Parser - convert POD data to formatted ASCII text
-cpan/podlators/lib/Pod/Text/Color.pm		Convert POD data to color ASCII text
-cpan/podlators/lib/Pod/Text/Overstrike.pm	Convert POD data to formatted overstrike text
-cpan/podlators/lib/Pod/Text/Termcap.pm		Convert POD data to ASCII text with format escapes
-cpan/podlators/Makefile.PL			podlators Makefile.PL
-cpan/podlators/scripts/pod2man.PL		Translator to turn pod into manpage
-cpan/podlators/scripts/pod2text.PL		Translator to turn pod into text
-cpan/podlators/t/data/basic.cap			podlators test			podlators test
-cpan/podlators/t/data/basic.clr			podlators test
-cpan/podlators/t/data/basic.man			podlators test
-cpan/podlators/t/data/basic.ovr			podlators test
-cpan/podlators/t/data/basic.pod			podlators test
-cpan/podlators/t/data/basic.txt			podlators test
-cpan/podlators/t/data/perl.conf			podlators test
+cpan/podlators/docs/docknot.yaml
+cpan/podlators/lib/Pod/Man.pm					Convert POD data to *roff
+cpan/podlators/lib/Pod/ParseLink.pm				Perl an L<> formatting code in POD text
+cpan/podlators/lib/Pod/Text.pm					Pod-Parser - convert POD data to formatted ASCII text
+cpan/podlators/lib/Pod/Text/Color.pm				Convert POD data to color ASCII text
+cpan/podlators/lib/Pod/Text/Overstrike.pm			Convert POD data to formatted overstrike text
+cpan/podlators/lib/Pod/Text/Termcap.pm				Convert POD data to ASCII text with format escapes
+cpan/podlators/Makefile.PL					podlators Makefile.PL
+cpan/podlators/scripts/pod2man.PL				Translator to turn pod into manpage
+cpan/podlators/scripts/pod2text.PL				Translator to turn pod into text
+cpan/podlators/t/data/basic.cap					podlators test
+cpan/podlators/t/data/basic.clr					podlators test
+cpan/podlators/t/data/basic.man					podlators test
+cpan/podlators/t/data/basic.ovr					podlators test
+cpan/podlators/t/data/basic.pod					podlators test
+cpan/podlators/t/data/basic.txt					podlators test
+cpan/podlators/t/data/man/encoding.groff
+cpan/podlators/t/data/man/encoding.pod
+cpan/podlators/t/data/man/encoding.roff
+cpan/podlators/t/data/man/encoding.utf8
+cpan/podlators/t/data/perl.conf					podlators test
+cpan/podlators/t/data/perlcriticrc
+cpan/podlators/t/data/perltidyrc
+cpan/podlators/t/data/regenerate-data
 cpan/podlators/t/data/snippets/color/escape-wrapping
 cpan/podlators/t/data/snippets/color/tag-width
 cpan/podlators/t/data/snippets/color/tag-wrapping
@@ -1945,9 +2113,19 @@ cpan/podlators/t/data/snippets/man/eth
 cpan/podlators/t/data/snippets/man/fixed-font
 cpan/podlators/t/data/snippets/man/fixed-font-in-item
 cpan/podlators/t/data/snippets/man/for-blocks
+cpan/podlators/t/data/snippets/man/guesswork
+cpan/podlators/t/data/snippets/man/guesswork-all
+cpan/podlators/t/data/snippets/man/guesswork-no-quoting
+cpan/podlators/t/data/snippets/man/guesswork-none
+cpan/podlators/t/data/snippets/man/guesswork-partial
+cpan/podlators/t/data/snippets/man/guesswork-quoting
 cpan/podlators/t/data/snippets/man/hyphen-in-s
 cpan/podlators/t/data/snippets/man/iso-8859-1
+cpan/podlators/t/data/snippets/man/iso-8859-1-error-die
+cpan/podlators/t/data/snippets/man/iso-8859-1-error-pod
+cpan/podlators/t/data/snippets/man/iso-8859-1-roff
 cpan/podlators/t/data/snippets/man/item-fonts
+cpan/podlators/t/data/snippets/man/language
 cpan/podlators/t/data/snippets/man/link-quoting
 cpan/podlators/t/data/snippets/man/link-to-url
 cpan/podlators/t/data/snippets/man/long-quote
@@ -1955,29 +2133,32 @@ cpan/podlators/t/data/snippets/man/lquot
 cpan/podlators/t/data/snippets/man/lquote-rquote
 cpan/podlators/t/data/snippets/man/markup-in-name
 cpan/podlators/t/data/snippets/man/multiline-x
+cpan/podlators/t/data/snippets/man/naive
+cpan/podlators/t/data/snippets/man/naive-groff
 cpan/podlators/t/data/snippets/man/name-guesswork
+cpan/podlators/t/data/snippets/man/name-quotes
+cpan/podlators/t/data/snippets/man/name-quotes-none
 cpan/podlators/t/data/snippets/man/nested-lists
 cpan/podlators/t/data/snippets/man/newlines-in-c
 cpan/podlators/t/data/snippets/man/non-ascii
+cpan/podlators/t/data/snippets/man/nonbreaking-space-l
 cpan/podlators/t/data/snippets/man/not-bullet
 cpan/podlators/t/data/snippets/man/not-numbers
 cpan/podlators/t/data/snippets/man/nourls
-cpan/podlators/t/data/snippets/man/paired-quotes
 cpan/podlators/t/data/snippets/man/periods
 cpan/podlators/t/data/snippets/man/quote-escaping
 cpan/podlators/t/data/snippets/man/rquote-none
-cpan/podlators/t/data/snippets/man/small-caps-magic
 cpan/podlators/t/data/snippets/man/soft-hyphens
 cpan/podlators/t/data/snippets/man/trailing-space
 cpan/podlators/t/data/snippets/man/true-false
-cpan/podlators/t/data/snippets/man/uppercase-license
 cpan/podlators/t/data/snippets/man/utf8-nonbreaking
 cpan/podlators/t/data/snippets/man/utf8-verbatim
 cpan/podlators/t/data/snippets/man/x-whitespace
 cpan/podlators/t/data/snippets/man/x-whitespace-entry
+cpan/podlators/t/data/snippets/man/zero-width-space
 cpan/podlators/t/data/snippets/overstrike/tag-width
 cpan/podlators/t/data/snippets/overstrike/wrapping
-cpan/podlators/t/data/snippets/README			podlators test
+cpan/podlators/t/data/snippets/README.md
 cpan/podlators/t/data/snippets/termcap/escape-wrapping
 cpan/podlators/t/data/snippets/termcap/tag-width
 cpan/podlators/t/data/snippets/termcap/tag-wrapping
@@ -1987,7 +2168,7 @@ cpan/podlators/t/data/snippets/termcap/w
 cpan/podlators/t/data/snippets/text/alt
 cpan/podlators/t/data/snippets/text/c-with-spaces
 cpan/podlators/t/data/snippets/text/code
-cpan/podlators/t/data/snippets/text/cpp			podlators test
+cpan/podlators/t/data/snippets/text/cpp				podlators test
 cpan/podlators/t/data/snippets/text/empty
 cpan/podlators/t/data/snippets/text/error-die
 cpan/podlators/t/data/snippets/text/error-none
@@ -1996,12 +2177,22 @@ cpan/podlators/t/data/snippets/text/erro
 cpan/podlators/t/data/snippets/text/error-stderr
 cpan/podlators/t/data/snippets/text/error-stderr-opt
 cpan/podlators/t/data/snippets/text/for
+cpan/podlators/t/data/snippets/text/guesswork-no-quoting
+cpan/podlators/t/data/snippets/text/guesswork-quoting
 cpan/podlators/t/data/snippets/text/iso-8859-1
+cpan/podlators/t/data/snippets/text/iso-8859-1-error-die
+cpan/podlators/t/data/snippets/text/iso-8859-1-error-pod
+cpan/podlators/t/data/snippets/text/iso-8859-1-utf8
 cpan/podlators/t/data/snippets/text/late-encoding
 cpan/podlators/t/data/snippets/text/link-rt
 cpan/podlators/t/data/snippets/text/link-url
 cpan/podlators/t/data/snippets/text/margin
+cpan/podlators/t/data/snippets/text/naive
+cpan/podlators/t/data/snippets/text/name-quotes
+cpan/podlators/t/data/snippets/text/name-quotes-none
+cpan/podlators/t/data/snippets/text/non-latin
 cpan/podlators/t/data/snippets/text/nonbreaking-space
+cpan/podlators/t/data/snippets/text/nonbreaking-space-l
 cpan/podlators/t/data/snippets/text/nourls
 cpan/podlators/t/data/snippets/text/periods
 cpan/podlators/t/data/snippets/text/quotes-opt
@@ -2010,37 +2201,41 @@ cpan/podlators/t/data/snippets/text/sent
 cpan/podlators/t/data/snippets/text/utf8
 cpan/podlators/t/data/snippets/text/utf8-iso
 cpan/podlators/t/data/snippets/text/verbatim
-cpan/podlators/t/data/termcap			podlators test
-cpan/podlators/t/docs/pod.t			podlators test
-cpan/podlators/t/docs/pod-spelling.t			podlators test
-cpan/podlators/t/docs/spdx-license.t			podlators test
-cpan/podlators/t/docs/synopsis.t			podlators test
-cpan/podlators/t/general/basic.t			podlators test
-cpan/podlators/t/general/filehandle.t			podlators test
-cpan/podlators/t/general/pod-parser.t			podlators test
-cpan/podlators/t/lib/Test/Podlators.pm			podlators test
-cpan/podlators/t/lib/Test/RRA.pm			podlators test
-cpan/podlators/t/lib/Test/RRA/Config.pm			podlators test
-cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm		podlators test
-cpan/podlators/t/man/devise-date.t			podlators test
-cpan/podlators/t/man/devise-title.t			podlators test
-cpan/podlators/t/man/empty.t			podlators test
-cpan/podlators/t/man/heading.t			podlators test
-cpan/podlators/t/man/iso-8859-1.t		podlators test
-cpan/podlators/t/man/no-encode.t		podlators test
-cpan/podlators/t/man/snippets.t			podlators test
-cpan/podlators/t/man/utf8-io.t			podlators test
-cpan/podlators/t/parselink/basic.t			podlators test
+cpan/podlators/t/data/termcap					podlators test
+cpan/podlators/t/docs/changes.t
+cpan/podlators/t/docs/pod.t					podlators test
+cpan/podlators/t/docs/pod-spelling.t				podlators test
+cpan/podlators/t/docs/spdx-license.t				podlators test
+cpan/podlators/t/docs/synopsis.t				podlators test
+cpan/podlators/t/general/basic.t				podlators test
+cpan/podlators/t/general/filehandle.t				podlators test
+cpan/podlators/t/general/pod-parser.t				podlators test
+cpan/podlators/t/lib/Test/Podlators.pm				podlators test
+cpan/podlators/t/lib/Test/RRA.pm				podlators test
+cpan/podlators/t/lib/Test/RRA/Config.pm				podlators test
+cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm			podlators test
+cpan/podlators/t/man/devise-date.t				podlators test
+cpan/podlators/t/man/devise-title.t				podlators test
+cpan/podlators/t/man/empty.t					podlators test
+cpan/podlators/t/man/encoding.t
+cpan/podlators/t/man/heading.t					podlators test
+cpan/podlators/t/man/iso-8859-1.t				podlators test
+cpan/podlators/t/man/no-encode.t				podlators test
+cpan/podlators/t/man/snippets.t					podlators test
+cpan/podlators/t/man/utf8-io.t					podlators test
+cpan/podlators/t/parselink/basic.t				podlators test
+cpan/podlators/t/style/critic.t
+cpan/podlators/t/style/kwalitee.t
 cpan/podlators/t/style/minimum-version.t			podlators test
-cpan/podlators/t/style/module-version.t			podlators test
+cpan/podlators/t/style/module-version.t				podlators test
 cpan/podlators/t/style/obsolete-strings.t
-cpan/podlators/t/style/strict.t			podlators test
-cpan/podlators/t/text/color.t			podlators test
+cpan/podlators/t/style/strict.t					podlators test
+cpan/podlators/t/text/color.t					podlators test
 cpan/podlators/t/text/invalid.t
 cpan/podlators/t/text/iso-8859-1.t
-cpan/podlators/t/text/overstrike.t			podlators test
+cpan/podlators/t/text/overstrike.t				podlators test
 cpan/podlators/t/text/snippets.t
-cpan/podlators/t/text/termcap.t			podlators test
+cpan/podlators/t/text/termcap.t					podlators test
 cpan/podlators/t/text/utf8-io.t
 cpan/Scalar-List-Utils/lib/List/Util.pm		List::Util
 cpan/Scalar-List-Utils/lib/List/Util/XS.pm	List::Util
@@ -2139,549 +2334,549 @@ cpan/Term-ReadKey/genchars.pl			Term::Re
 cpan/Term-ReadKey/Makefile.PL			Term::ReadKey
 cpan/Term-ReadKey/ppport.h			Term::ReadKey
 cpan/Term-ReadKey/ReadKey.xs			Term::ReadKey
-cpan/Term-ReadKey/ReadKey.pm.PL		Term::ReadKey
+cpan/Term-ReadKey/ReadKey.pm.PL			Term::ReadKey
 cpan/Term-ReadKey/README			Term::ReadKey
 cpan/Term-ReadKey/t/01_basic.t			Term::ReadKey
 cpan/Term-ReadKey/t/02_terminal_functions.t	Term::ReadKey
-cpan/Test-Harness/bin/prove				The prove harness utility
-cpan/Test-Harness/lib/App/Prove.pm			Gubbins for the prove utility
-cpan/Test-Harness/lib/App/Prove/State.pm		Gubbins for the prove utility
-cpan/Test-Harness/lib/App/Prove/State/Result.pm		Gubbins for the prove utility
-cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm	Gubbins for the prove utility
-cpan/Test-Harness/lib/TAP/Base.pm			A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/Base.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/Color.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/Console.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/bin/prove					The prove harness utility
+cpan/Test-Harness/lib/App/Prove.pm				Gubbins for the prove utility
+cpan/Test-Harness/lib/App/Prove/State.pm			Gubbins for the prove utility
+cpan/Test-Harness/lib/App/Prove/State/Result.pm			Gubbins for the prove utility
+cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm		Gubbins for the prove utility
+cpan/Test-Harness/lib/TAP/Base.pm				A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/Base.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/Color.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/Console.pm			A parser for Test Anything Protocol
 cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/File.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Formatter/Session.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Harness.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/File.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Formatter/Session.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Harness.pm				A parser for Test Anything Protocol
 cpan/Test-Harness/lib/TAP/Harness/Beyond.pod
-cpan/Test-Harness/lib/TAP/Harness/Env.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Object.pm			A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser.pm			A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Grammar.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Iterator.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm		A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/Source.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Harness/Env.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Object.pm				A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser.pm				A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Grammar.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Iterator.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm			A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/Source.pm			A parser for Test Anything Protocol
 cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm		A parser for Test Anything Protocol
 cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm
 cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm
 cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm
 cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm
 cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm
-cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm	A parser for Test Anything Protocol
-cpan/Test-Harness/lib/Test/Harness.pm			A test harness
-cpan/Test-Harness/t/aggregator.t			Test::Harness test
-cpan/Test-Harness/t/bailout.t				Test::Harness test
-cpan/Test-Harness/t/base.t				Test::Harness test
-cpan/Test-Harness/t/callbacks.t				Test::Harness test
-cpan/Test-Harness/t/compat/env.t			Test::Harness test
-cpan/Test-Harness/t/compat/env_opts.t			Test::Harness test
-cpan/Test-Harness/t/compat/failure.t			Test::Harness test
-cpan/Test-Harness/t/compat/inc-propagation.t		Test::Harness test
-cpan/Test-Harness/t/compat/inc_taint.t			Test::Harness test
-cpan/Test-Harness/t/compat/nonumbers.t			Test::Harness test
-cpan/Test-Harness/t/compat/regression.t			Test::Harness test
+cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm		A parser for Test Anything Protocol
+cpan/Test-Harness/lib/Test/Harness.pm				A test harness
+cpan/Test-Harness/t/aggregator.t				Test::Harness test
+cpan/Test-Harness/t/bailout.t					Test::Harness test
+cpan/Test-Harness/t/base.t					Test::Harness test
+cpan/Test-Harness/t/callbacks.t					Test::Harness test
+cpan/Test-Harness/t/compat/env.t				Test::Harness test
+cpan/Test-Harness/t/compat/env_opts.t				Test::Harness test
+cpan/Test-Harness/t/compat/failure.t				Test::Harness test
+cpan/Test-Harness/t/compat/inc-propagation.t			Test::Harness test
+cpan/Test-Harness/t/compat/inc_taint.t				Test::Harness test
+cpan/Test-Harness/t/compat/nonumbers.t				Test::Harness test
+cpan/Test-Harness/t/compat/regression.t				Test::Harness test
 cpan/Test-Harness/t/compat/subclass.t				Test::Harness test
-cpan/Test-Harness/t/compat/switches.t			Test::Harness test
-cpan/Test-Harness/t/compat/test-harness-compat.t	Test::Harness test
-cpan/Test-Harness/t/compat/version.t			Test::Harness test
-cpan/Test-Harness/t/console.t				Test::Harness test
-cpan/Test-Harness/t/data/catme.1			Test data for Test::Harness
-cpan/Test-Harness/t/data/proverc			Test data for Test::Harness
-cpan/Test-Harness/t/data/sample.yml			Test data for Test::Harness
+cpan/Test-Harness/t/compat/switches.t				Test::Harness test
+cpan/Test-Harness/t/compat/test-harness-compat.t		Test::Harness test
+cpan/Test-Harness/t/compat/version.t				Test::Harness test
+cpan/Test-Harness/t/console.t					Test::Harness test
+cpan/Test-Harness/t/data/catme.1				Test data for Test::Harness
+cpan/Test-Harness/t/data/proverc				Test data for Test::Harness
+cpan/Test-Harness/t/data/sample.yml				Test data for Test::Harness
 cpan/Test-Harness/t/env_opts.t
-cpan/Test-Harness/t/errors.t				Test::Harness test
-cpan/Test-Harness/t/file.t				Test::Harness test
-cpan/Test-Harness/t/glob-to-regexp.t			Test::Harness test
-cpan/Test-Harness/t/grammar.t				Test::Harness test
-cpan/Test-Harness/t/harness.t				Test::Harness test
-cpan/Test-Harness/t/harness-bailout.t			Test::Harness test
-cpan/Test-Harness/t/harness-subclass.t			Test::Harness test
+cpan/Test-Harness/t/errors.t					Test::Harness test
+cpan/Test-Harness/t/file.t					Test::Harness test
+cpan/Test-Harness/t/glob-to-regexp.t				Test::Harness test
+cpan/Test-Harness/t/grammar.t					Test::Harness test
+cpan/Test-Harness/t/harness.t					Test::Harness test
+cpan/Test-Harness/t/harness-bailout.t				Test::Harness test
+cpan/Test-Harness/t/harness-subclass.t				Test::Harness test
 cpan/Test-Harness/t/iterator_factory.t				Test::Harness test
-cpan/Test-Harness/t/iterators.t				Test::Harness test
-cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm	Module for testing Test::Harness
-cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm	Module for testing Test::Harness
-cpan/Test-Harness/t/lib/Dev/Null.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/EmptyParser.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/IO/c55Capture.pm		Module for testing Test::Harness
-cpan/Test-Harness/t/lib/MyCustom.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/MyFileSourceHandler.pm				Test::Harness test
-cpan/Test-Harness/t/lib/MyGrammar.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/MyIterator.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm				Test::Harness test
-cpan/Test-Harness/t/lib/MyResult.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/MyResultFactory.pm		Module for testing Test::Harness
-cpan/Test-Harness/t/lib/MySourceHandler.pm				Test::Harness test
-cpan/Test-Harness/t/lib/NoFork.pm			Module for testing Test::Harness
-cpan/Test-Harness/t/lib/NOP.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/iterators.t					Test::Harness test
+cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm		Module for testing Test::Harness
+cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm		Module for testing Test::Harness
+cpan/Test-Harness/t/lib/Dev/Null.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/EmptyParser.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/IO/c55Capture.pm			Module for testing Test::Harness
+cpan/Test-Harness/t/lib/MyCustom.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/MyFileSourceHandler.pm			Test::Harness test
+cpan/Test-Harness/t/lib/MyGrammar.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/MyIterator.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm			Test::Harness test
+cpan/Test-Harness/t/lib/MyResult.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/MyResultFactory.pm			Module for testing Test::Harness
+cpan/Test-Harness/t/lib/MySourceHandler.pm			Test::Harness test
+cpan/Test-Harness/t/lib/NoFork.pm				Module for testing Test::Harness
+cpan/Test-Harness/t/lib/NOP.pm					Module for testing Test::Harness
 cpan/Test-Harness/t/lib/TAP/Harness/TestSubclass.pm
-cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm	Module for testing Test::Harness
-cpan/Test-Harness/t/multiplexer.t			Test::Harness test
-cpan/Test-Harness/t/nested.t				Test::Harness test
-cpan/Test-Harness/t/nofork.t				Test::Harness test
-cpan/Test-Harness/t/nofork-mux.t			Test::Harness test
-cpan/Test-Harness/t/object.t				Test::Harness test
-cpan/Test-Harness/t/parse.t				Test::Harness test
-cpan/Test-Harness/t/parser-config.t			Test::Harness test
-cpan/Test-Harness/t/parser-subclass.t			Test::Harness test
-cpan/Test-Harness/t/perl5lib.t				Test::Harness test
-cpan/Test-Harness/t/premature-bailout.t			Test::Harness test
-cpan/Test-Harness/t/process.t				Test::Harness test
-cpan/Test-Harness/t/prove.t				Test::Harness test
-cpan/Test-Harness/t/proverc.t				Test::Harness test
-cpan/Test-Harness/t/proverc/emptyexec			Test data for Test::Harness
-cpan/Test-Harness/t/proverun.t				Test::Harness test
+cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm		Module for testing Test::Harness
+cpan/Test-Harness/t/multiplexer.t				Test::Harness test
+cpan/Test-Harness/t/nested.t					Test::Harness test
+cpan/Test-Harness/t/nofork.t					Test::Harness test
+cpan/Test-Harness/t/nofork-mux.t				Test::Harness test
+cpan/Test-Harness/t/object.t					Test::Harness test
+cpan/Test-Harness/t/parse.t					Test::Harness test
+cpan/Test-Harness/t/parser-config.t				Test::Harness test
+cpan/Test-Harness/t/parser-subclass.t				Test::Harness test
+cpan/Test-Harness/t/perl5lib.t					Test::Harness test
+cpan/Test-Harness/t/premature-bailout.t				Test::Harness test
+cpan/Test-Harness/t/process.t					Test::Harness test
+cpan/Test-Harness/t/prove.t					Test::Harness test
+cpan/Test-Harness/t/proverc.t					Test::Harness test
+cpan/Test-Harness/t/proverc/emptyexec				Test data for Test::Harness
+cpan/Test-Harness/t/proverun.t					Test::Harness test
 cpan/Test-Harness/t/proveversion.t				Test::Harness test
-cpan/Test-Harness/t/regression.t			Test::Harness test
-cpan/Test-Harness/t/results.t				Test::Harness test
+cpan/Test-Harness/t/regression.t				Test::Harness test
+cpan/Test-Harness/t/results.t					Test::Harness test
 cpan/Test-Harness/t/rulesfile.t
-cpan/Test-Harness/t/sample-tests/bailout		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/bignum			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/bignum_many		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/combined		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/combined_compat	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/delayed		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/descriptive		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/descriptive_trailing	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/die			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/die_head_end		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/die_last_minute	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/die_unfinished		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/duplicates		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/echo			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/empty			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/escape_eol		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/escape_hash		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/head_end		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/head_fail		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/inc_taint		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/junk_before_plan	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/lone_not_bug		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/no_nums		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/no_output		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/out_err_mix		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/out_of_order		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/schwern		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/schwern-todo-quiet	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/segfault		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/sequence_misparse	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/shbang_misparse	Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/simple			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/simple_fail		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/simple_yaml		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/simple_yaml_missing_version13		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/skip			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/skip_nomsg		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/skipall		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/skipall_nomsg		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/skipall_v13		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/space_after_plan	Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/bailout			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/bignum				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/bignum_many			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/combined			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/combined_compat		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/delayed			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/descriptive			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/descriptive_trailing		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/die				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/die_head_end			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/die_last_minute		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/die_unfinished			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/duplicates			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/echo				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/empty				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/escape_eol			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/escape_hash			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/head_end			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/head_fail			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/inc_taint			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/junk_before_plan		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/lone_not_bug			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/no_nums			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/no_output			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/out_err_mix			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/out_of_order			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/schwern			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/schwern-todo-quiet		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/segfault			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/sequence_misparse		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/shbang_misparse		Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/simple				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/simple_fail			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/simple_yaml			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/simple_yaml_missing_version13	Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/skip				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/skip_nomsg			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/skipall			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/skipall_nomsg			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/skipall_v13			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/space_after_plan		Test data for Test::Harness
 cpan/Test-Harness/t/sample-tests/space_after_plan_v13
-cpan/Test-Harness/t/sample-tests/stdout_stderr		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/strict			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/switches		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/taint			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/taint_warn		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/todo			Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/todo_inline		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/todo_misparse		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/too_many		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/version_good		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/version_late		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/version_old		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/vms_nit		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/with_comments		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/yaml_late_plan		Test data for Test::Harness
-cpan/Test-Harness/t/sample-tests/zero_valid		Test data for Test::Harness
-cpan/Test-Harness/t/scheduler.t				Test::Harness test
-cpan/Test-Harness/t/source.t				Test::Harness test
+cpan/Test-Harness/t/sample-tests/stdout_stderr			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/strict				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/switches			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/taint				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/taint_warn			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/todo				Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/todo_inline			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/todo_misparse			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/too_many			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/version_good			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/version_late			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/version_old			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/vms_nit			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/with_comments			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/yaml_late_plan			Test data for Test::Harness
+cpan/Test-Harness/t/sample-tests/zero_valid			Test data for Test::Harness
+cpan/Test-Harness/t/scheduler.t					Test::Harness test
+cpan/Test-Harness/t/source.t					Test::Harness test
 cpan/Test-Harness/t/source_handler.t				Test::Harness test
-cpan/Test-Harness/t/source_tests/harness		Test data for Test::Harness
-cpan/Test-Harness/t/source_tests/harness_badtap		Test data for Test::Harness
-cpan/Test-Harness/t/source_tests/harness_complain	Test data for Test::Harness
-cpan/Test-Harness/t/source_tests/harness_directives	Test data for Test::Harness
-cpan/Test-Harness/t/source_tests/harness_failure	Test data for Test::Harness
-cpan/Test-Harness/t/source_tests/psql.bat				Test::Harness test
-cpan/Test-Harness/t/source_tests/source			Test data for Test::Harness
-cpan/Test-Harness/t/source_tests/source.1				Test::Harness test
-cpan/Test-Harness/t/source_tests/source.bat				Test::Harness test
-cpan/Test-Harness/t/source_tests/source.pl				Test::Harness test
-cpan/Test-Harness/t/source_tests/source.sh				Test::Harness test
-cpan/Test-Harness/t/source_tests/source.t				Test::Harness test
-cpan/Test-Harness/t/source_tests/source.tap				Test::Harness test
-cpan/Test-Harness/t/source_tests/source_args.sh				Test::Harness test
+cpan/Test-Harness/t/source_tests/harness			Test data for Test::Harness
+cpan/Test-Harness/t/source_tests/harness_badtap			Test data for Test::Harness
+cpan/Test-Harness/t/source_tests/harness_complain		Test data for Test::Harness
+cpan/Test-Harness/t/source_tests/harness_directives		Test data for Test::Harness
+cpan/Test-Harness/t/source_tests/harness_failure		Test data for Test::Harness
+cpan/Test-Harness/t/source_tests/psql.bat			Test::Harness test
+cpan/Test-Harness/t/source_tests/source				Test data for Test::Harness
+cpan/Test-Harness/t/source_tests/source.1			Test::Harness test
+cpan/Test-Harness/t/source_tests/source.bat			Test::Harness test
+cpan/Test-Harness/t/source_tests/source.pl			Test::Harness test
+cpan/Test-Harness/t/source_tests/source.sh			Test::Harness test
+cpan/Test-Harness/t/source_tests/source.t			Test::Harness test
+cpan/Test-Harness/t/source_tests/source.tap			Test::Harness test
+cpan/Test-Harness/t/source_tests/source_args.sh			Test::Harness test
 cpan/Test-Harness/t/source_tests/test.tap
-cpan/Test-Harness/t/spool.t				Test::Harness test
-cpan/Test-Harness/t/state.t				Test::Harness test
-cpan/Test-Harness/t/state_results.t			Test::Harness test
-cpan/Test-Harness/t/streams.t				Test::Harness test
-cpan/Test-Harness/t/subclass_tests/non_perl_source	Test data for Test::Harness
-cpan/Test-Harness/t/subclass_tests/perl_source		Test data for Test::Harness
-cpan/Test-Harness/t/taint.t				Test::Harness test
-cpan/Test-Harness/t/testargs.t				Test::Harness test
-cpan/Test-Harness/t/unicode.t				Test::Harness test
-cpan/Test-Harness/t/yamlish.t				Test::Harness test
-cpan/Test-Harness/t/yamlish-output.t			Test::Harness test
-cpan/Test-Harness/t/yamlish-writer.t			Test::Harness test
-cpan/Test-Simple/lib/ok.pm
-cpan/Test-Simple/lib/Test/Builder.pm
-cpan/Test-Simple/lib/Test/Builder/Formatter.pm
-cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm
-cpan/Test-Simple/lib/Test/Builder/Module.pm
-cpan/Test-Simple/lib/Test/Builder/Tester.pm
-cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
-cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
-cpan/Test-Simple/lib/Test/More.pm
-cpan/Test-Simple/lib/Test/Simple.pm
-cpan/Test-Simple/lib/Test/Tester.pm
-cpan/Test-Simple/lib/Test/Tester/Capture.pm
-cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
-cpan/Test-Simple/lib/Test/Tester/Delegate.pm
-cpan/Test-Simple/lib/Test/Tutorial.pod
-cpan/Test-Simple/lib/Test/use/ok.pm
-cpan/Test-Simple/lib/Test2.pm
-cpan/Test-Simple/lib/Test2/API.pm
-cpan/Test-Simple/lib/Test2/API/Breakage.pm
-cpan/Test-Simple/lib/Test2/API/Context.pm
-cpan/Test-Simple/lib/Test2/API/Instance.pm
-cpan/Test-Simple/lib/Test2/API/InterceptResult.pm
-cpan/Test-Simple/lib/Test2/API/InterceptResult/Event.pm
-cpan/Test-Simple/lib/Test2/API/InterceptResult/Facet.pm
-cpan/Test-Simple/lib/Test2/API/InterceptResult/Hub.pm
-cpan/Test-Simple/lib/Test2/API/InterceptResult/Squasher.pm
-cpan/Test-Simple/lib/Test2/API/Stack.pm
-cpan/Test-Simple/lib/Test2/Event.pm
-cpan/Test-Simple/lib/Test2/Event/Bail.pm
-cpan/Test-Simple/lib/Test2/Event/Diag.pm
-cpan/Test-Simple/lib/Test2/Event/Encoding.pm
-cpan/Test-Simple/lib/Test2/Event/Exception.pm
-cpan/Test-Simple/lib/Test2/Event/Fail.pm
-cpan/Test-Simple/lib/Test2/Event/Generic.pm
-cpan/Test-Simple/lib/Test2/Event/Note.pm
-cpan/Test-Simple/lib/Test2/Event/Ok.pm
-cpan/Test-Simple/lib/Test2/Event/Pass.pm
-cpan/Test-Simple/lib/Test2/Event/Plan.pm
-cpan/Test-Simple/lib/Test2/Event/Skip.pm
-cpan/Test-Simple/lib/Test2/Event/Subtest.pm
-cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm
-cpan/Test-Simple/lib/Test2/Event/V2.pm
-cpan/Test-Simple/lib/Test2/Event/Waiting.pm
-cpan/Test-Simple/lib/Test2/EventFacet.pm
-cpan/Test-Simple/lib/Test2/EventFacet/About.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Render.pm
-cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm
-cpan/Test-Simple/lib/Test2/Formatter.pm
-cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
-cpan/Test-Simple/lib/Test2/Hub.pm
-cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
-cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
-cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
-cpan/Test-Simple/lib/Test2/IPC.pm
-cpan/Test-Simple/lib/Test2/IPC/Driver.pm
-cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
-cpan/Test-Simple/lib/Test2/Tools/Tiny.pm
-cpan/Test-Simple/lib/Test2/Transition.pod
-cpan/Test-Simple/lib/Test2/Util.pm
-cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
-cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm
-cpan/Test-Simple/lib/Test2/Util/HashBase.pm
-cpan/Test-Simple/lib/Test2/Util/Trace.pm
-cpan/Test-Simple/t/HashBase.t
-cpan/Test-Simple/t/Legacy/00test_harness_check.t
-cpan/Test-Simple/t/Legacy/01-basic.t
-cpan/Test-Simple/t/Legacy/478-cmp_ok_hash.t
-cpan/Test-Simple/t/Legacy/auto.t
-cpan/Test-Simple/t/Legacy/bad_plan.t
-cpan/Test-Simple/t/Legacy/bail_out.t
-cpan/Test-Simple/t/Legacy/BEGIN_require_ok.t
-cpan/Test-Simple/t/Legacy/BEGIN_use_ok.t
-cpan/Test-Simple/t/Legacy/buffer.t
-cpan/Test-Simple/t/Legacy/Bugs/600.t
-cpan/Test-Simple/t/Legacy/Bugs/629.t
-cpan/Test-Simple/t/Legacy/Builder/Builder.t
-cpan/Test-Simple/t/Legacy/Builder/carp.t
-cpan/Test-Simple/t/Legacy/Builder/create.t
-cpan/Test-Simple/t/Legacy/Builder/current_test.t
-cpan/Test-Simple/t/Legacy/Builder/current_test_without_plan.t
-cpan/Test-Simple/t/Legacy/Builder/details.t
-cpan/Test-Simple/t/Legacy/Builder/done_testing.t
-cpan/Test-Simple/t/Legacy/Builder/done_testing_double.t
-cpan/Test-Simple/t/Legacy/Builder/done_testing_plan_mismatch.t
-cpan/Test-Simple/t/Legacy/Builder/done_testing_with_no_plan.t
-cpan/Test-Simple/t/Legacy/Builder/done_testing_with_number.t
-cpan/Test-Simple/t/Legacy/Builder/done_testing_with_plan.t
-cpan/Test-Simple/t/Legacy/Builder/fork_with_new_stdout.t
-cpan/Test-Simple/t/Legacy/Builder/has_plan.t
-cpan/Test-Simple/t/Legacy/Builder/has_plan2.t
-cpan/Test-Simple/t/Legacy/Builder/is_fh.t
-cpan/Test-Simple/t/Legacy/Builder/is_passing.t
-cpan/Test-Simple/t/Legacy/Builder/maybe_regex.t
-cpan/Test-Simple/t/Legacy/Builder/no_diag.t
-cpan/Test-Simple/t/Legacy/Builder/no_ending.t
-cpan/Test-Simple/t/Legacy/Builder/no_header.t
-cpan/Test-Simple/t/Legacy/Builder/no_plan_at_all.t
-cpan/Test-Simple/t/Legacy/Builder/ok_obj.t
-cpan/Test-Simple/t/Legacy/Builder/output.t
-cpan/Test-Simple/t/Legacy/Builder/reset.t
-cpan/Test-Simple/t/Legacy/Builder/reset_outputs.t
-cpan/Test-Simple/t/Legacy/Builder/try.t
-cpan/Test-Simple/t/Legacy/c_flag.t
-cpan/Test-Simple/t/Legacy/capture.t
-cpan/Test-Simple/t/Legacy/check_tests.t
-cpan/Test-Simple/t/Legacy/circular_data.t
-cpan/Test-Simple/t/Legacy/cmp_ok.t
-cpan/Test-Simple/t/Legacy/depth.t
-cpan/Test-Simple/t/Legacy/diag.t
-cpan/Test-Simple/t/Legacy/died.t
-cpan/Test-Simple/t/Legacy/dont_overwrite_die_handler.t
-cpan/Test-Simple/t/Legacy/eq_set.t
-cpan/Test-Simple/t/Legacy/exit.t
-cpan/Test-Simple/t/Legacy/explain.t
-cpan/Test-Simple/t/Legacy/explain_err_vars.t
-cpan/Test-Simple/t/Legacy/extra.t
-cpan/Test-Simple/t/Legacy/extra_one.t
-cpan/Test-Simple/t/Legacy/fail.t
-cpan/Test-Simple/t/Legacy/fail-like.t
-cpan/Test-Simple/t/Legacy/fail-more.t
-cpan/Test-Simple/t/Legacy/fail_one.t
-cpan/Test-Simple/t/Legacy/filehandles.t
-cpan/Test-Simple/t/Legacy/fork.t
-cpan/Test-Simple/t/Legacy/harness_active.t
-cpan/Test-Simple/t/Legacy/import.t
-cpan/Test-Simple/t/Legacy/is_deeply_dne_bug.t
-cpan/Test-Simple/t/Legacy/is_deeply_fail.t
-cpan/Test-Simple/t/Legacy/is_deeply_with_threads.t
-cpan/Test-Simple/t/Legacy/missing.t
-cpan/Test-Simple/t/Legacy/More.t
-cpan/Test-Simple/t/Legacy/new_ok.t
-cpan/Test-Simple/t/Legacy/no_log_results.t
-cpan/Test-Simple/t/Legacy/no_plan.t
-cpan/Test-Simple/t/Legacy/no_tests.t
-cpan/Test-Simple/t/Legacy/note.t
-cpan/Test-Simple/t/Legacy/overload.t
-cpan/Test-Simple/t/Legacy/overload_threads.t
-cpan/Test-Simple/t/Legacy/plan.t
-cpan/Test-Simple/t/Legacy/plan_bad.t
-cpan/Test-Simple/t/Legacy/plan_is_noplan.t
-cpan/Test-Simple/t/Legacy/plan_no_plan.t
-cpan/Test-Simple/t/Legacy/plan_shouldnt_import.t
-cpan/Test-Simple/t/Legacy/plan_skip_all.t
-cpan/Test-Simple/t/Legacy/Regression/637.t
-cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t
-cpan/Test-Simple/t/Legacy/Regression/6_cmp_ok.t
-cpan/Test-Simple/t/Legacy/Regression/736_use_ok.t
-cpan/Test-Simple/t/Legacy/Regression/789-read-only.t
-cpan/Test-Simple/t/Legacy/Regression/870-experimental-warnings.t
-cpan/Test-Simple/t/Legacy/Regression/is_capture.t
-cpan/Test-Simple/t/Legacy/require_ok.t
-cpan/Test-Simple/t/Legacy/run_test.t
-cpan/Test-Simple/t/Legacy/simple.t
-cpan/Test-Simple/t/Legacy/Simple/load.t
-cpan/Test-Simple/t/Legacy/skip.t
-cpan/Test-Simple/t/Legacy/skipall.t
-cpan/Test-Simple/t/Legacy/strays.t
-cpan/Test-Simple/t/Legacy/subtest/args.t
-cpan/Test-Simple/t/Legacy/subtest/bail_out.t
-cpan/Test-Simple/t/Legacy/subtest/basic.t
-cpan/Test-Simple/t/Legacy/subtest/callback.t
-cpan/Test-Simple/t/Legacy/subtest/die.t
-cpan/Test-Simple/t/Legacy/subtest/do.t
-cpan/Test-Simple/t/Legacy/subtest/events.t
-cpan/Test-Simple/t/Legacy/subtest/for_do_t.test
-cpan/Test-Simple/t/Legacy/subtest/fork.t
-cpan/Test-Simple/t/Legacy/subtest/implicit_done.t
-cpan/Test-Simple/t/Legacy/subtest/line_numbers.t
-cpan/Test-Simple/t/Legacy/subtest/plan.t
-cpan/Test-Simple/t/Legacy/subtest/predicate.t
-cpan/Test-Simple/t/Legacy/subtest/singleton.t
-cpan/Test-Simple/t/Legacy/subtest/threads.t
-cpan/Test-Simple/t/Legacy/subtest/todo.t
-cpan/Test-Simple/t/Legacy/subtest/wstat.t
-cpan/Test-Simple/t/Legacy/tbm_doesnt_set_exported_to.t
-cpan/Test-Simple/t/Legacy/Test2/Subtest.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_01basic.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_02fhrestore.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_03die.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_04line_num.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_05faildiag.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_06errormess.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_07args.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_08subtest.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_09do.t
-cpan/Test-Simple/t/Legacy/Tester/tbt_09do_script.pl
-cpan/Test-Simple/t/Legacy/thread_taint.t
-cpan/Test-Simple/t/Legacy/threads.t
-cpan/Test-Simple/t/Legacy/todo.t
-cpan/Test-Simple/t/Legacy/undef.t
-cpan/Test-Simple/t/Legacy/use_ok.t
-cpan/Test-Simple/t/Legacy/useing.t
-cpan/Test-Simple/t/Legacy/utf8.t
-cpan/Test-Simple/t/Legacy/versions.t
-cpan/Test-Simple/t/Legacy_And_Test2/builder_loaded_late.t
-cpan/Test-Simple/t/Legacy_And_Test2/diag_event_on_ok.t
-cpan/Test-Simple/t/Legacy_And_Test2/hidden_warnings.t
-cpan/Test-Simple/t/Legacy_And_Test2/preload_diag_note.t
-cpan/Test-Simple/t/Legacy_And_Test2/thread_init_warning.t
-cpan/Test-Simple/t/lib/Dev/Null.pm
-cpan/Test-Simple/t/lib/Dummy.pm
-cpan/Test-Simple/t/lib/MyOverload.pm
-cpan/Test-Simple/t/lib/MyTest.pm
-cpan/Test-Simple/t/lib/NoExporter.pm
-cpan/Test-Simple/t/lib/SigDie.pm
-cpan/Test-Simple/t/lib/SkipAll.pm
-cpan/Test-Simple/t/lib/SmallTest.pm
-cpan/Test-Simple/t/lib/Test/Builder/NoOutput.pm
-cpan/Test-Simple/t/lib/Test/Simple/Catch.pm
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_in_eval.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_with_handler.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/exit.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/extras.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/five_fail.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/last_minute_death.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/missing_done_testing.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail_without_plan.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/pre_plan_death.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/require.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/success.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few_fail.plx
-cpan/Test-Simple/t/lib/Test/Simple/sample_tests/two_fail.plx
-cpan/Test-Simple/t/lib/TieOut.pm
-cpan/Test-Simple/t/regression/642_persistent_end.t
-cpan/Test-Simple/t/regression/662-tbt-no-plan.t
-cpan/Test-Simple/t/regression/684-nested_todo_diag.t
-cpan/Test-Simple/t/regression/694_note_diag_return_values.t
-cpan/Test-Simple/t/regression/696-intercept_skip_all.t
-cpan/Test-Simple/t/regression/721-nested-streamed-subtest.t
-cpan/Test-Simple/t/regression/757-reset_in_subtest.t
-cpan/Test-Simple/t/regression/812-todo.t
-cpan/Test-Simple/t/regression/817-subtest-todo.t
-cpan/Test-Simple/t/regression/862-intercept_tb_todo.t
-cpan/Test-Simple/t/regression/buffered_subtest_plan_buffered.t
-cpan/Test-Simple/t/regression/builder_does_not_init.t
-cpan/Test-Simple/t/regression/errors_facet.t
-cpan/Test-Simple/t/regression/fork_first.t
-cpan/Test-Simple/t/regression/inherit_trace.t
-cpan/Test-Simple/t/regression/no_name_in_subtest.t
-cpan/Test-Simple/t/regression/skip_reason_object_ipc.t
-cpan/Test-Simple/t/regression/todo_and_facets.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_done_testing.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_fork.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_no_plan.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_plan.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_skip.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_threads.t
-cpan/Test-Simple/t/Test2/acceptance/try_it_todo.t
-cpan/Test-Simple/t/Test2/behavior/disable_ipc_a.t
-cpan/Test-Simple/t/Test2/behavior/disable_ipc_b.t
-cpan/Test-Simple/t/Test2/behavior/disable_ipc_c.t
-cpan/Test-Simple/t/Test2/behavior/disable_ipc_d.t
-cpan/Test-Simple/t/Test2/behavior/err_var.t
-cpan/Test-Simple/t/Test2/behavior/Formatter.t
-cpan/Test-Simple/t/Test2/behavior/init_croak.t
-cpan/Test-Simple/t/Test2/behavior/intercept.t
-cpan/Test-Simple/t/Test2/behavior/ipc_wait_timeout.t
-cpan/Test-Simple/t/Test2/behavior/nested_context_exception.t
-cpan/Test-Simple/t/Test2/behavior/no_load_api.t
-cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t
-cpan/Test-Simple/t/Test2/behavior/special_names.t
-cpan/Test-Simple/t/Test2/behavior/subtest_bailout.t
-cpan/Test-Simple/t/Test2/behavior/Subtest_buffer_formatter.t
-cpan/Test-Simple/t/Test2/behavior/Subtest_callback.t
-cpan/Test-Simple/t/Test2/behavior/Subtest_events.t
-cpan/Test-Simple/t/Test2/behavior/Subtest_plan.t
-cpan/Test-Simple/t/Test2/behavior/Subtest_todo.t
-cpan/Test-Simple/t/Test2/behavior/Taint.t
-cpan/Test-Simple/t/Test2/behavior/trace_signature.t
-cpan/Test-Simple/t/Test2/behavior/uuid.t
-cpan/Test-Simple/t/Test2/legacy/TAP.t
-cpan/Test-Simple/t/Test2/modules/API.t
-cpan/Test-Simple/t/Test2/modules/API/Breakage.t
-cpan/Test-Simple/t/Test2/modules/API/Context.t
-cpan/Test-Simple/t/Test2/modules/API/Instance.t
-cpan/Test-Simple/t/Test2/modules/API/InterceptResult.t
-cpan/Test-Simple/t/Test2/modules/API/InterceptResult/Event.t
-cpan/Test-Simple/t/Test2/modules/API/InterceptResult/Squasher.t
-cpan/Test-Simple/t/Test2/modules/API/Stack.t
-cpan/Test-Simple/t/Test2/modules/Event.t
-cpan/Test-Simple/t/Test2/modules/Event/Bail.t
-cpan/Test-Simple/t/Test2/modules/Event/Diag.t
-cpan/Test-Simple/t/Test2/modules/Event/Encoding.t
-cpan/Test-Simple/t/Test2/modules/Event/Exception.t
-cpan/Test-Simple/t/Test2/modules/Event/Fail.t
-cpan/Test-Simple/t/Test2/modules/Event/Generic.t
-cpan/Test-Simple/t/Test2/modules/Event/Note.t
-cpan/Test-Simple/t/Test2/modules/Event/Ok.t
-cpan/Test-Simple/t/Test2/modules/Event/Pass.t
-cpan/Test-Simple/t/Test2/modules/Event/Plan.t
-cpan/Test-Simple/t/Test2/modules/Event/Skip.t
-cpan/Test-Simple/t/Test2/modules/Event/Subtest.t
-cpan/Test-Simple/t/Test2/modules/Event/TAP/Version.t
-cpan/Test-Simple/t/Test2/modules/Event/V2.t
-cpan/Test-Simple/t/Test2/modules/Event/Waiting.t
-cpan/Test-Simple/t/Test2/modules/EventFacet.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/About.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Amnesty.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Assert.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Control.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Error.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Info.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Meta.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Parent.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Plan.t
-cpan/Test-Simple/t/Test2/modules/EventFacet/Trace.t
-cpan/Test-Simple/t/Test2/modules/Formatter/TAP.t
-cpan/Test-Simple/t/Test2/modules/Hub.t
-cpan/Test-Simple/t/Test2/modules/Hub/Interceptor.t
-cpan/Test-Simple/t/Test2/modules/Hub/Interceptor/Terminator.t
-cpan/Test-Simple/t/Test2/modules/Hub/Subtest.t
-cpan/Test-Simple/t/Test2/modules/IPC.t
-cpan/Test-Simple/t/Test2/modules/IPC/Driver.t
-cpan/Test-Simple/t/Test2/modules/IPC/Driver/Files.t
-cpan/Test-Simple/t/Test2/modules/Tools/Tiny.t
-cpan/Test-Simple/t/Test2/modules/Util.t
-cpan/Test-Simple/t/Test2/modules/Util/ExternalMeta.t
-cpan/Test-Simple/t/Test2/modules/Util/Facets2Legacy.t
-cpan/Test-Simple/t/Test2/modules/Util/Trace.t
-cpan/Test-Simple/t/Test2/regression/693_ipc_ordering.t
-cpan/Test-Simple/t/Test2/regression/746-forking-subtest.t
-cpan/Test-Simple/t/Test2/regression/gh_16.t
-cpan/Test-Simple/t/Test2/regression/ipc_files_abort_exit.t
+cpan/Test-Harness/t/spool.t					Test::Harness test
+cpan/Test-Harness/t/state.t					Test::Harness test
+cpan/Test-Harness/t/state_results.t				Test::Harness test
+cpan/Test-Harness/t/streams.t					Test::Harness test
+cpan/Test-Harness/t/subclass_tests/non_perl_source		Test data for Test::Harness
+cpan/Test-Harness/t/subclass_tests/perl_source			Test data for Test::Harness
+cpan/Test-Harness/t/taint.t					Test::Harness test
+cpan/Test-Harness/t/testargs.t					Test::Harness test
+cpan/Test-Harness/t/unicode.t					Test::Harness test
+cpan/Test-Harness/t/yamlish.t					Test::Harness test
+cpan/Test-Harness/t/yamlish-output.t				Test::Harness test
+cpan/Test-Harness/t/yamlish-writer.t				Test::Harness test
+cpan/Test-Simple/lib/ok.pm							Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder/Formatter.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder/IO/Scalar.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder/Module.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder/Tester.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/More.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Simple.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Tester.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Tester/Capture.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Tester/Delegate.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test/Tutorial.pod						Test::Simple
+cpan/Test-Simple/lib/Test/use/ok.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2.pm							Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/Breakage.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/Context.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/Instance.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/InterceptResult.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/InterceptResult/Event.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/InterceptResult/Facet.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/InterceptResult/Hub.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/InterceptResult/Squasher.pm			Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/API/Stack.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Bail.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Diag.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Encoding.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Exception.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Fail.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Generic.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Note.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Ok.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Pass.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Plan.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Skip.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Subtest.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/V2.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Event/Waiting.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/About.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Control.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Error.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Info.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Render.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Formatter.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Formatter/TAP.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Hub.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm			Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Hub/Subtest.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/IPC.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/IPC/Driver.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Tools/Tiny.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Transition.pod					Test::Simple
+cpan/Test-Simple/lib/Test2/Util.pm						Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm				Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Util/HashBase.pm					Module related to Test::Simple
+cpan/Test-Simple/lib/Test2/Util/Trace.pm					Module related to Test::Simple
+cpan/Test-Simple/t/HashBase.t							Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/00test_harness_check.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/01-basic.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/478-cmp_ok_hash.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/auto.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/bad_plan.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/bail_out.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/BEGIN_require_ok.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/BEGIN_use_ok.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/buffer.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Bugs/600.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Bugs/629.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/Builder.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/carp.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/create.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/current_test.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/current_test_without_plan.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/details.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/done_testing.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/done_testing_double.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/done_testing_plan_mismatch.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/done_testing_with_no_plan.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/done_testing_with_number.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/done_testing_with_plan.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/fork_with_new_stdout.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/has_plan.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/has_plan2.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/is_fh.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/is_passing.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/maybe_regex.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/no_diag.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/no_ending.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/no_header.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/no_plan_at_all.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/ok_obj.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/output.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/reset.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/reset_outputs.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Builder/try.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/c_flag.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/capture.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/check_tests.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/circular_data.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/cmp_ok.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/depth.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/diag.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/died.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/dont_overwrite_die_handler.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/eq_set.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/exit.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/explain.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/explain_err_vars.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/extra.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/extra_one.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/fail.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/fail-like.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/fail-more.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/fail_one.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/filehandles.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/fork.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/harness_active.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/import.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/is_deeply_dne_bug.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/is_deeply_fail.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/is_deeply_with_threads.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/missing.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/More.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/new_ok.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/no_log_results.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/no_plan.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/no_tests.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/note.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/overload.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/overload_threads.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/plan.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/plan_bad.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/plan_is_noplan.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/plan_no_plan.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/plan_shouldnt_import.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/plan_skip_all.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/637.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/683_thread_todo.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/6_cmp_ok.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/736_use_ok.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/789-read-only.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/870-experimental-warnings.t		Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Regression/is_capture.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/require_ok.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/run_test.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/simple.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Simple/load.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/skip.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/skipall.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/strays.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/args.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/bail_out.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/basic.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/callback.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/die.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/do.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/events.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/for_do_t.test					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/fork.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/implicit_done.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/line_numbers.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/plan.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/predicate.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/singleton.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/threads.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/todo.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/subtest/wstat.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/tbm_doesnt_set_exported_to.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Test2/Subtest.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_01basic.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_02fhrestore.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_03die.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_04line_num.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_05faildiag.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_06errormess.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_07args.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_08subtest.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_09do.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/Tester/tbt_09do_script.pl				Script related to Test::Simple
+cpan/Test-Simple/t/Legacy/thread_taint.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/threads.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/todo.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/undef.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/use_ok.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/useing.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/utf8.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy/versions.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy_And_Test2/builder_loaded_late.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy_And_Test2/diag_event_on_ok.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy_And_Test2/hidden_warnings.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy_And_Test2/preload_diag_note.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Legacy_And_Test2/thread_init_warning.t			Test file related to Test::Simple
+cpan/Test-Simple/t/lib/Dev/Null.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/Dummy.pm							Module related to Test::Simple
+cpan/Test-Simple/t/lib/MyOverload.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/MyTest.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/NoExporter.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/SigDie.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/SkipAll.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/SmallTest.pm						Module related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Builder/NoOutput.pm					Module related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/Catch.pm					Module related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_in_eval.plx		Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/death_with_handler.plx		Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/exit.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/extras.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/five_fail.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/last_minute_death.plx		Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/missing_done_testing.plx	Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/one_fail_without_plan.plx	Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/pre_plan_death.plx		Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/require.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/success.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/too_few_fail.plx		Script related to Test::Simple
+cpan/Test-Simple/t/lib/Test/Simple/sample_tests/two_fail.plx			Script related to Test::Simple
+cpan/Test-Simple/t/lib/TieOut.pm						Module related to Test::Simple
+cpan/Test-Simple/t/regression/642_persistent_end.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/662-tbt-no-plan.t					Test file related to Test::Simple
+cpan/Test-Simple/t/regression/684-nested_todo_diag.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/694_note_diag_return_values.t			Test file related to Test::Simple
+cpan/Test-Simple/t/regression/696-intercept_skip_all.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/721-nested-streamed-subtest.t			Test file related to Test::Simple
+cpan/Test-Simple/t/regression/757-reset_in_subtest.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/812-todo.t					Test file related to Test::Simple
+cpan/Test-Simple/t/regression/817-subtest-todo.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/862-intercept_tb_todo.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/buffered_subtest_plan_buffered.t			Test file related to Test::Simple
+cpan/Test-Simple/t/regression/builder_does_not_init.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/errors_facet.t					Test file related to Test::Simple
+cpan/Test-Simple/t/regression/fork_first.t					Test file related to Test::Simple
+cpan/Test-Simple/t/regression/inherit_trace.t					Test file related to Test::Simple
+cpan/Test-Simple/t/regression/no_name_in_subtest.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/skip_reason_object_ipc.t				Test file related to Test::Simple
+cpan/Test-Simple/t/regression/todo_and_facets.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_done_testing.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_fork.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_no_plan.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_plan.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_skip.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_threads.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/acceptance/try_it_todo.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/disable_ipc_a.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/disable_ipc_b.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/disable_ipc_c.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/disable_ipc_d.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/err_var.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Formatter.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/init_croak.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/intercept.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/ipc_wait_timeout.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/nested_context_exception.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/no_load_api.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/special_names.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/subtest_bailout.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Subtest_buffer_formatter.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Subtest_callback.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Subtest_events.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Subtest_plan.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Subtest_todo.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/Taint.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/trace_signature.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/behavior/uuid.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/legacy/TAP.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/Breakage.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/Context.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/Instance.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/InterceptResult.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/InterceptResult/Event.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/InterceptResult/Squasher.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/API/Stack.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Bail.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Diag.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Encoding.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Exception.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Fail.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Generic.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Note.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Ok.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Pass.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Plan.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Skip.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Subtest.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/TAP/Version.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/V2.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Event/Waiting.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/About.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Amnesty.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Assert.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Control.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Error.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Info.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Meta.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Parent.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Plan.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/EventFacet/Trace.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Formatter/TAP.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Hub.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Hub/Interceptor.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Hub/Interceptor/Terminator.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Hub/Subtest.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/IPC.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/IPC/Driver.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/IPC/Driver/Files.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Tools/Tiny.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Util.t						Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Util/ExternalMeta.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Util/Facets2Legacy.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/modules/Util/Trace.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/regression/693_ipc_ordering.t				Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/regression/746-forking-subtest.t			Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/regression/gh_16.t					Test file related to Test::Simple
+cpan/Test-Simple/t/Test2/regression/ipc_files_abort_exit.t			Test file related to Test::Simple
 cpan/Text-Balanced/lib/Text/Balanced.pm	Text::Balanced
 cpan/Text-Balanced/t/01_compile.t	See if Text::Balanced works
 cpan/Text-Balanced/t/02_extbrk.t	See if Text::Balanced works
@@ -2720,25 +2915,25 @@ cpan/Text-Tabs/t/undef.t
 cpan/Text-Tabs/t/wrap.t			See if Text::Wrap::wrap works
 cpan/Text-Tabs/t/Wrap-JLB.t		See if Text::Wrap::wrap works
 cpan/Text-Tabs/t/wrap_separator2.t	See if Text::Wrap::wrap works
-cpan/Tie-RefHash/lib/Tie/RefHash.pm		Base class for tied hashes with references as keys
-cpan/Tie-RefHash/t/rebless.t	Test for Tie::RefHash with rebless
-cpan/Tie-RefHash/t/refhash.t	Test for Tie::RefHash and Tie::RefHash::Nestable
-cpan/Tie-RefHash/t/storable.t	Test for Tie::RefHash with storable
-cpan/Tie-RefHash/t/threaded.t	Test for Tie::RefHash with threads
+cpan/Tie-RefHash/lib/Tie/RefHash.pm	Base class for tied hashes with references as keys
+cpan/Tie-RefHash/t/rebless.t		Test for Tie::RefHash with rebless
+cpan/Tie-RefHash/t/refhash.t		Test for Tie::RefHash and Tie::RefHash::Nestable
+cpan/Tie-RefHash/t/storable.t		Test for Tie::RefHash with storable
+cpan/Tie-RefHash/t/threaded.t		Test for Tie::RefHash with threads
 cpan/Time-Local/lib/Time/Local.pm	Reverse translation of localtime, gmtime
 cpan/Time-Local/t/Local.t		See if Time::Local works
-cpan/Time-Piece/Piece.pm	Time::Piece extension
-cpan/Time-Piece/Piece.xs	Time::Piece extension
-cpan/Time-Piece/Seconds.pm	Time::Piece extension
-cpan/Time-Piece/t/01base.t	Test for Time::Piece
-cpan/Time-Piece/t/02core.t	Test for Time::Piece
+cpan/Time-Piece/Piece.pm			Time::Piece extension
+cpan/Time-Piece/Piece.xs			Time::Piece extension
+cpan/Time-Piece/Seconds.pm			Time::Piece extension
+cpan/Time-Piece/t/01base.t			Test for Time::Piece
+cpan/Time-Piece/t/02core.t			Test for Time::Piece
 cpan/Time-Piece/t/02core_dst.t
-cpan/Time-Piece/t/03compare.t	Test for Time::Piece
-cpan/Time-Piece/t/04mjd.t	Test for Time::Piece
-cpan/Time-Piece/t/05overload.t	Test for Time::Piece
+cpan/Time-Piece/t/03compare.t			Test for Time::Piece
+cpan/Time-Piece/t/04mjd.t			Test for Time::Piece
+cpan/Time-Piece/t/05overload.t			Test for Time::Piece
 cpan/Time-Piece/t/06large.t
-cpan/Time-Piece/t/06subclass.t	Test for Time::Piece
-cpan/Time-Piece/t/07arith.t	Test for Time::Piece
+cpan/Time-Piece/t/06subclass.t			Test for Time::Piece
+cpan/Time-Piece/t/07arith.t			Test for Time::Piece
 cpan/Time-Piece/t/08truncate.t
 cpan/Time-Piece/t/09locales.t
 cpan/Time-Piece/t/10overload.t
@@ -2747,112 +2942,112 @@ cpan/Time-Piece/t/lib/Time/Piece/Twin.pm
 cpan/Unicode-Collate/Collate.pm			Unicode::Collate
 cpan/Unicode-Collate/Collate.xs			Unicode::Collate
 cpan/Unicode-Collate/Collate/allkeys.txt	Unicode::Collate
-cpan/Unicode-Collate/Collate/CJK/Big5.pm			Unicode::Collate
-cpan/Unicode-Collate/Collate/CJK/GB2312.pm			Unicode::Collate
-cpan/Unicode-Collate/Collate/CJK/JISX0208.pm			Unicode::Collate
-cpan/Unicode-Collate/Collate/CJK/Korean.pm			Unicode::Collate
-cpan/Unicode-Collate/Collate/CJK/Pinyin.pm			Unicode::Collate
-cpan/Unicode-Collate/Collate/CJK/Stroke.pm			Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/Big5.pm	Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/GB2312.pm	Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/JISX0208.pm	Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/Korean.pm	Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/Pinyin.pm	Unicode::Collate
+cpan/Unicode-Collate/Collate/CJK/Stroke.pm	Unicode::Collate
 cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm
 cpan/Unicode-Collate/Collate/keys.txt		Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale.pm			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/af.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ar.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale.pm		Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/af.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ar.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/as.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/az.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/az.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/be.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/bn.pl		Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ca.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/cs.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/bn.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ca.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/cs.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/cu.pl
-cpan/Unicode-Collate/Collate/Locale/cy.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/da.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/de_phone.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/cy.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/da.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/de_phone.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/dsb.pl
 cpan/Unicode-Collate/Collate/Locale/ee.pl
-cpan/Unicode-Collate/Collate/Locale/eo.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/es.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/es_trad.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/et.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/eo.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/es.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/es_trad.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/et.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/fa.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/fi.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/fi.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/fi_phone.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/fil.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/fo.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/fr_ca.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/fil.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/fo.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/fr_ca.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/gu.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ha.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/haw.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ha.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/haw.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/he.pl
 cpan/Unicode-Collate/Collate/Locale/hi.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/hr.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/hu.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/hy.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ig.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/is.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ja.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/kk.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/kl.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/hr.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/hu.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/hy.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ig.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/is.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ja.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/kk.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/kl.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/kn.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ko.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ko.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/kok.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/lkt.pl
 cpan/Unicode-Collate/Collate/Locale/ln.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/lt.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/lv.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/lt.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/lv.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/mk.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ml.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/mr.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/mt.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/nb.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/nn.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/nso.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/om.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/mt.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/nb.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/nn.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/nso.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/om.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/or.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/pa.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/pl.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ro.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/sa.pl		Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/se.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/pl.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ro.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/sa.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/se.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/si.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/si_dict.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/sk.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/sl.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/sq.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/sk.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/sl.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/sq.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/sr.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/sv.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/sv.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/sv_refo.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ta.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/te.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/th.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/tn.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/to.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/tr.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/uk.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/tn.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/to.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/tr.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/uk.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ur.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/vi.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/vi.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/vo.pl
 cpan/Unicode-Collate/Collate/Locale/wae.pl	Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/wo.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/yo.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/zh.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/zh_big5.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/zh_gb.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/zh_pin.pl			Unicode::Collate
-cpan/Unicode-Collate/Collate/Locale/zh_strk.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/wo.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/yo.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/zh.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/zh_big5.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/zh_gb.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/zh_pin.pl	Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/zh_strk.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl
-cpan/Unicode-Collate/Makefile.PL			Unicode::Collate
+cpan/Unicode-Collate/Makefile.PL		Unicode::Collate
 cpan/Unicode-Collate/mkheader			Unicode::Collate
 cpan/Unicode-Collate/t/altern.t			Unicode::Collate
-cpan/Unicode-Collate/t/backwds.t			Unicode::Collate
-cpan/Unicode-Collate/t/cjk_b5.t		Unicode::Collate
-cpan/Unicode-Collate/t/cjk_gb.t		Unicode::Collate
-cpan/Unicode-Collate/t/cjk_ja.t		Unicode::Collate
-cpan/Unicode-Collate/t/cjk_ko.t		Unicode::Collate
-cpan/Unicode-Collate/t/cjk_py.t		Unicode::Collate
-cpan/Unicode-Collate/t/cjk_st.t		Unicode::Collate
+cpan/Unicode-Collate/t/backwds.t		Unicode::Collate
+cpan/Unicode-Collate/t/cjk_b5.t			Unicode::Collate
+cpan/Unicode-Collate/t/cjk_gb.t			Unicode::Collate
+cpan/Unicode-Collate/t/cjk_ja.t			Unicode::Collate
+cpan/Unicode-Collate/t/cjk_ko.t			Unicode::Collate
+cpan/Unicode-Collate/t/cjk_py.t			Unicode::Collate
+cpan/Unicode-Collate/t/cjk_st.t			Unicode::Collate
 cpan/Unicode-Collate/t/cjk_zy.t
 cpan/Unicode-Collate/t/cjkrange.t		Unicode::Collate
 cpan/Unicode-Collate/t/compatui.t		Unicode::Collate
@@ -2861,7 +3056,7 @@ cpan/Unicode-Collate/t/default.t		Unicod
 cpan/Unicode-Collate/t/hangtype.t		Unicode::Collate
 cpan/Unicode-Collate/t/hangul.t			Unicode::Collate
 cpan/Unicode-Collate/t/ident.t
-cpan/Unicode-Collate/t/iglevel2.t			Unicode::Collate
+cpan/Unicode-Collate/t/iglevel2.t		Unicode::Collate
 cpan/Unicode-Collate/t/ignor.t			Unicode::Collate
 cpan/Unicode-Collate/t/illegal.t		Unicode::Collate
 cpan/Unicode-Collate/t/illegalp.t		Unicode::Collate
@@ -2869,12 +3064,12 @@ cpan/Unicode-Collate/t/index.t			Unicode
 cpan/Unicode-Collate/t/khitan.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_af.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ar.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_as.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_as.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_az.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_be.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_bg.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_bn.t		Unicode::Collate
-cpan/Unicode-Collate/t/loc_bs.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_bn.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_bs.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_bscy.t
 cpan/Unicode-Collate/t/loc_ca.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_cjk.t		Unicode::Collate
@@ -2882,94 +3077,94 @@ cpan/Unicode-Collate/t/loc_cjkc.t		Unico
 cpan/Unicode-Collate/t/loc_cs.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_cu.t
 cpan/Unicode-Collate/t/loc_cy.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_cyrl.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_cyrl.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_da.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_de.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_deat.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_deph.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_deat.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_deph.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_dsb.t
 cpan/Unicode-Collate/t/loc_ee.t
 cpan/Unicode-Collate/t/loc_eo.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_es.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_estr.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_estr.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_et.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_fa.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_fa.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_fi.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_fil.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_fiph.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_fil.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_fiph.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_fo.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_fr.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_frca.t		Unicode::Collate
-cpan/Unicode-Collate/t/loc_gu.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_gu.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ha.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_haw.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_haw.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_he.t
-cpan/Unicode-Collate/t/loc_hi.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_hi.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_hr.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_hu.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_hy.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ig.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_is.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ja.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_jait.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_japr.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_jait.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_japr.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_kk.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_kl.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_kn.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_kn.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ko.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_kok.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_kok.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_lkt.t
-cpan/Unicode-Collate/t/loc_ln.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_ln.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_lt.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_lv.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_mk.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_ml.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_ml.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_mncy.t		Unicode::Collate
-cpan/Unicode-Collate/t/loc_mr.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_mr.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_mt.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_nb.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_nn.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_nso.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_nso.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_om.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_or.t	Unicode::Collate
-cpan/Unicode-Collate/t/loc_pa.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_or.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_pa.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_pl.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ro.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ru.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_sa.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_sa.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_se.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_si.t	Unicode::Collate
-cpan/Unicode-Collate/t/loc_sidt.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_si.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_sidt.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_sk.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_sl.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_sq.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_sr.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_srla.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_srla.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_sv.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_svrf.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_svrf.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_sw.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_ta.t	Unicode::Collate
-cpan/Unicode-Collate/t/loc_te.t	Unicode::Collate
-cpan/Unicode-Collate/t/loc_test.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_th.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_ta.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_te.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_test.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_th.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_tn.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_to.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_tr.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_ugcy.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_uk.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_ur.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_ur.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_vi.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_vo.t
-cpan/Unicode-Collate/t/loc_wae.t	Unicode::Collate
+cpan/Unicode-Collate/t/loc_wae.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_wo.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_yo.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_zh.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_zhb5.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_zhgb.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_zhpy.t			Unicode::Collate
-cpan/Unicode-Collate/t/loc_zhst.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_zhb5.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_zhgb.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_zhpy.t		Unicode::Collate
+cpan/Unicode-Collate/t/loc_zhst.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_zhzy.t
-cpan/Unicode-Collate/t/nonchar.t			Unicode::Collate
+cpan/Unicode-Collate/t/nonchar.t		Unicode::Collate
 cpan/Unicode-Collate/t/normal.t			Unicode::Collate
 cpan/Unicode-Collate/t/notable.t
 cpan/Unicode-Collate/t/nushu.t
@@ -2977,7 +3172,7 @@ cpan/Unicode-Collate/t/overcjk0.t		Unico
 cpan/Unicode-Collate/t/overcjk1.t		Unicode::Collate
 cpan/Unicode-Collate/t/override.t		Unicode::Collate
 cpan/Unicode-Collate/t/rearrang.t		Unicode::Collate
-cpan/Unicode-Collate/t/rewrite.t			Unicode::Collate
+cpan/Unicode-Collate/t/rewrite.t		Unicode::Collate
 cpan/Unicode-Collate/t/tangut.t
 cpan/Unicode-Collate/t/test.t			Unicode::Collate
 cpan/Unicode-Collate/t/trailwt.t		Unicode::Collate
@@ -3019,34 +3214,32 @@ cpan/Win32/t/Privileges.t
 cpan/Win32/t/Unicode.t			See if Win32 extension works
 cpan/Win32/Win32.pm			Win32 extension Perl module
 cpan/Win32/Win32.xs			Win32 extension external subroutines
-cpan/Win32API-File/buffers.h	Win32API::File extension
-cpan/Win32API-File/cFile.h	Win32API::File extension
-cpan/Win32API-File/cFile.pc	Win32API::File extension
-cpan/Win32API-File/const2perl.h	Win32API::File extension
-cpan/Win32API-File/File.pm	Win32API::File extension
-cpan/Win32API-File/File.xs	Win32API::File extension
+cpan/Win32API-File/buffers.h			Win32API::File extension
+cpan/Win32API-File/cFile.h			Win32API::File extension
+cpan/Win32API-File/cFile.pc			Win32API::File extension
+cpan/Win32API-File/const2perl.h			Win32API::File extension
+cpan/Win32API-File/File.pm			Win32API::File extension
+cpan/Win32API-File/File.xs			Win32API::File extension
 cpan/Win32API-File/inc/ExtUtils/Myconst2perl.pm	Win32API::File extension
-cpan/Win32API-File/Makefile.PL	Win32API::File extension makefile write
-cpan/Win32API-File/t/file.t	See if Win32API::File extension works
-cpan/Win32API-File/t/tie.t	See if Win32API::File extension works
-cpan/Win32API-File/typemap	Win32API::File extension interface types
-Cross/build-arm-n770-sh		Cross-compilation
-Cross/cflags-cross-arm		Cross-compilation
-Cross/config			Cross-compilation
-Cross/config.sh-arm-linux	Cross-compilation
-Cross/config.sh-arm-linux-n770	Cross-compilation
-Cross/generate_config_sh	Cross-compilation
-Cross/installperl.patch		Cross-compilation
-Cross/Makefile			Cross-compilation
-Cross/Makefile-cross-SH		Cross-compilation
-Cross/Makefile.SH.patch		Cross-compilation
-Cross/README			Cross-compilation
-Cross/README.new		Cross-compilation
-Cross/TODO			Cross-compilation
-Cross/warp			Cross-compilation
-cv.h				Code value header
-cygwin/cygwin.c			Additional code for Cygwin port
-deb.c				Debugging routines
+cpan/Win32API-File/Makefile.PL			Win32API::File extension makefile write
+cpan/Win32API-File/t/file.t			See if Win32API::File extension works
+cpan/Win32API-File/t/tie.t			See if Win32API::File extension works
+cpan/Win32API-File/typemap			Win32API::File extension interface types
+Cross/build-arm-n770-sh			Cross-compilation
+Cross/cflags-cross-arm			Cross-compilation
+Cross/config				Cross-compilation
+Cross/config.sh-arm-linux		Cross-compilation
+Cross/config.sh-arm-linux-n770		Cross-compilation
+Cross/generate_config_sh		Cross-compilation
+Cross/installperl.patch			Cross-compilation
+Cross/Makefile				Cross-compilation
+Cross/Makefile-cross-SH			Cross-compilation
+Cross/Makefile.SH.patch			Cross-compilation
+Cross/README				Cross-compilation
+Cross/README.new			Cross-compilation
+Cross/TODO				Cross-compilation
+Cross/warp				Cross-compilation
+cygwin/cygwin.c				Additional code for Cygwin port
 dist/Attribute-Handlers/Changes				Attribute::Handlers
 dist/Attribute-Handlers/demo/demo.pl			Attribute::Handlers demo
 dist/Attribute-Handlers/demo/Demo.pm			Attribute::Handlers demo
@@ -3063,6 +3256,7 @@ dist/Attribute-Handlers/demo/demo_rawdat
 dist/Attribute-Handlers/demo/Descriptions.pm		Attribute::Handlers demo
 dist/Attribute-Handlers/demo/MyClass.pm			Attribute::Handlers demo
 dist/Attribute-Handlers/lib/Attribute/Handlers.pm	Attribute::Handlers
+dist/Attribute-Handlers/Makefile.PL			Attribute::Handlers
 dist/Attribute-Handlers/t/caller.t			See if Attribute::Handlers works
 dist/Attribute-Handlers/t/constants.t			Test constants and Attribute::Handlers
 dist/Attribute-Handlers/t/data_convert.t		Test attribute data conversion
@@ -3072,316 +3266,318 @@ dist/autouse/lib/autouse.pm		Load and ca
 dist/autouse/t/autouse.t		See if autouse works
 dist/autouse/t/lib/MyTestModule.pm	Test module for autouse
 dist/autouse/t/lib/MyTestModule2.pm	Test module for autouse
-dist/base/Changes		base.pm changelog
-dist/base/lib/base.pm		Establish IS-A relationship at compile time
-dist/base/lib/fields.pm		Set up object field names for pseudo-hash-using classes
-dist/base/Makefile.PL	base.pm Makefile.PL
-dist/base/t/base.t		See if base works
-dist/base/t/base-open-chunk.t	See if base works
-dist/base/t/base-open-line.t	See if base works
-dist/base/t/compile-time.t	See if base works
-dist/base/t/core-global.t	See if base works around CORE::GLOBAL::require
-dist/base/t/fields.t		See if fields work
-dist/base/t/fields-5_6_0.t	See if fields work
-dist/base/t/fields-5_8_0.t	See if fields work
-dist/base/t/fields-base.t	See if fields work
-dist/base/t/incdot.t		Test how base.pm handles '.' in @INC
-dist/base/t/isa.t		See if base's behaviour doesn't change
+dist/base/Changes			base.pm changelog
+dist/base/lib/base.pm			Establish IS-A relationship at compile time
+dist/base/lib/fields.pm			Set up object field names for pseudo-hash-using classes
+dist/base/Makefile.PL			base.pm Makefile.PL
+dist/base/t/base.t			See if base works
+dist/base/t/base-open-chunk.t		See if base works
+dist/base/t/base-open-line.t		See if base works
+dist/base/t/compile-time.t		See if base works
+dist/base/t/core-global.t		See if base works around CORE::GLOBAL::require
+dist/base/t/fields.t			See if fields work
+dist/base/t/fields-5_6_0.t		See if fields work
+dist/base/t/fields-5_8_0.t		See if fields work
+dist/base/t/fields-base.t		See if fields work
+dist/base/t/incdot.t			Test how base.pm handles '.' in @INC
+dist/base/t/isa.t			See if base's behaviour doesn't change
 dist/base/t/lib/BaseIncMandatory.pm	Test module for base.pm
 dist/base/t/lib/BaseIncOptional.pm	Test module for base.pm
-dist/base/t/lib/Broken.pm	Test module for base.pm
-dist/base/t/lib/Dummy.pm	Test module for base.pm
-dist/base/t/lib/HasSigDie.pm	Module for testing base.pm
-dist/base/t/sigdie.t		See if base works with SIGDIE
-dist/base/t/version.t		See if base works with versions
-dist/base/t/warnings.t		See if base works with warnings
-dist/Carp/Changes		Changelog for Carp's CPAN releases
-dist/Carp/lib/Carp.pm		Error message extension
-dist/Carp/lib/Carp/Heavy.pm	Error message retired workhorse
-dist/Carp/Makefile.PL		makefile writer for Carp
-dist/Carp/README		README for Carp's CPAN releases
+dist/base/t/lib/Broken.pm		Test module for base.pm
+dist/base/t/lib/Dummy.pm		Test module for base.pm
+dist/base/t/lib/HasSigDie.pm		Module for testing base.pm
+dist/base/t/sigdie.t			See if base works with SIGDIE
+dist/base/t/version.t			See if base works with versions
+dist/base/t/warnings.t			See if base works with warnings
+dist/Carp/Changes			Changelog for Carp's CPAN releases
+dist/Carp/lib/Carp.pm			Error message extension
+dist/Carp/lib/Carp/Heavy.pm		Error message retired workhorse
+dist/Carp/Makefile.PL			makefile writer for Carp
+dist/Carp/README			README for Carp's CPAN releases
 dist/Carp/t/arg_regexp.t		See if Carp formats regexp args OK in stack traces
 dist/Carp/t/arg_string.t		See if Carp formats string args OK in stack traces
-dist/Carp/t/baduni.t		See if Carp handles non-char Unicode
+dist/Carp/t/baduni.t			See if Carp handles non-char Unicode
 dist/Carp/t/baduni_warnings.t		See if Carp handles non-char Unicode when loaded via warnings.pm
-dist/Carp/t/broken_can.t	Test Carp with bad can implementations
-dist/Carp/t/broken_univ_can.t	Test Carp with bad UNIVERSAL::can
-dist/Carp/t/Carp.t		See if Carp works
+dist/Carp/t/broken_can.t		Test Carp with bad can implementations
+dist/Carp/t/broken_univ_can.t		Test Carp with bad UNIVERSAL::can
+dist/Carp/t/Carp.t			See if Carp works
 dist/Carp/t/Carp_overload.t		See if Carp handles overloads
 dist/Carp/t/Carp_overloadless.t		See if Carp handles overloads that dont use overload.pm
-dist/Carp/t/errno.t		See if Carp preserves $! and $^E
-dist/Carp/t/heavy.t		See if Carp::Heavy works
+dist/Carp/t/errno.t			See if Carp preserves $! and $^E
+dist/Carp/t/heavy.t			See if Carp::Heavy works
 dist/Carp/t/heavy_mismatch.t		See if Carp::Heavy catches version mismatch
-dist/Carp/t/stack_after_err.t	Test stack traces after syntax errors
+dist/Carp/t/stack_after_err.t		Test stack traces after syntax errors
 dist/Carp/t/stash_deletion.t		See if Carp handles stash deletion
-dist/Carp/t/swash.t		See if Carp avoids breaking swash loading
-dist/Carp/t/vivify_gv.t		See if Carp leaves utf8:: stuff alone
+dist/Carp/t/swash.t			See if Carp avoids breaking swash loading
+dist/Carp/t/vivify_gv.t			See if Carp leaves utf8:: stuff alone
 dist/Carp/t/vivify_stash.t		See if Carp leaves utf8:: stash alone
 dist/Carp/t/with_warnings.t		See if Carp plays nicely with warnings
-dist/constant/lib/constant.pm	For "use constant"
-dist/constant/t/constant.t	See if compile-time constants work
-dist/constant/t/utf8.t		Test Unicode constants under utf8 pragma
-dist/Data-Dumper/Changes	Data pretty printer, changelog
-dist/Data-Dumper/Dumper.pm	Data pretty printer, module
-dist/Data-Dumper/Dumper.xs	Data pretty printer, externals
-dist/Data-Dumper/Makefile.PL	Data pretty printer, makefile writer
-dist/Data-Dumper/t/bless.t	See if Data::Dumper works
-dist/Data-Dumper/t/bless_var_method.t	See if Data::Dumper::Bless works
-dist/Data-Dumper/t/bugs.t	See if Data::Dumper works
-dist/Data-Dumper/t/deparse.t	See if Data::Dumper::Deparse works
-dist/Data-Dumper/t/dumper.t	See if Data::Dumper works
-dist/Data-Dumper/t/dumpperl.t	See if Data::Dumper::Dumpperl works
-dist/Data-Dumper/t/freezer.t	See if Data::Dumper::Freezer works
-dist/Data-Dumper/t/freezer_useperl.t	See if Data::Dumper works
-dist/Data-Dumper/t/huge.t	See if Data::Dumper works on huge inputs
-dist/Data-Dumper/t/indent.t	See if Data::Dumper::Indent works
-dist/Data-Dumper/t/lib/Testing.pm	Functions used in testing Data-Dumper
-dist/Data-Dumper/t/misc.t	Miscellaneous tests for Data-Dumper
-dist/Data-Dumper/t/names.t	See if Data::Dumper::Names works
-dist/Data-Dumper/t/overload.t	See if Data::Dumper works for overloaded data
-dist/Data-Dumper/t/pair.t	See if Data::Dumper pair separator works
-dist/Data-Dumper/t/perl-74170.t	Regression test for stack reallocation
+dist/constant/Changes			Changes for constant.pm
+dist/constant/lib/constant.pm		For "use constant"
+dist/constant/Makefile.PL		Build constant.pm (from the cpan release)
+dist/constant/t/constant.t		See if compile-time constants work
+dist/constant/t/utf8.t			Test Unicode constants under utf8 pragma
+dist/Data-Dumper/Changes			Data pretty printer, changelog
+dist/Data-Dumper/Dumper.pm			Data pretty printer, module
+dist/Data-Dumper/Dumper.xs			Data pretty printer, externals
+dist/Data-Dumper/Makefile.PL			Data pretty printer, makefile writer
+dist/Data-Dumper/t/bless.t			See if Data::Dumper works
+dist/Data-Dumper/t/bless_var_method.t		See if Data::Dumper::Bless works
+dist/Data-Dumper/t/bugs.t			See if Data::Dumper works
+dist/Data-Dumper/t/deparse.t			See if Data::Dumper::Deparse works
+dist/Data-Dumper/t/dumper.t			See if Data::Dumper works
+dist/Data-Dumper/t/dumpperl.t			See if Data::Dumper::Dumpperl works
+dist/Data-Dumper/t/freezer.t			See if Data::Dumper::Freezer works
+dist/Data-Dumper/t/freezer_useperl.t		See if Data::Dumper works
+dist/Data-Dumper/t/huge.t			See if Data::Dumper works on huge inputs
+dist/Data-Dumper/t/indent.t			See if Data::Dumper::Indent works
+dist/Data-Dumper/t/lib/Testing.pm		Functions used in testing Data-Dumper
+dist/Data-Dumper/t/misc.t			Miscellaneous tests for Data-Dumper
+dist/Data-Dumper/t/names.t			See if Data::Dumper::Names works
+dist/Data-Dumper/t/overload.t			See if Data::Dumper works for overloaded data
+dist/Data-Dumper/t/pair.t			See if Data::Dumper pair separator works
+dist/Data-Dumper/t/perl-74170.t			Regression test for stack reallocation
 dist/Data-Dumper/t/purity_deepcopy_maxdepth.t	See if three Data::Dumper functions work
-dist/Data-Dumper/t/qr.t		See if Data::Dumper works with qr|/|
-dist/Data-Dumper/t/quotekeys.t	See if Data::Dumper::Quotekeys works
-dist/Data-Dumper/t/recurse.t	See if Data::Dumper::Maxrecurse works
-dist/Data-Dumper/t/seen.t	See if Data::Dumper::Seen works
-dist/Data-Dumper/t/sortkeys.t	See if Data::Dumper::Sortkeys works
-dist/Data-Dumper/t/sparseseen.t	See if Data::Dumper::Sparseseen works
-dist/Data-Dumper/t/terse.t	See if Data::Dumper terse option works
-dist/Data-Dumper/t/toaster.t	See if Data::Dumper::Toaster works
-dist/Data-Dumper/t/trailing_comma.t	See if Data::Dumper::Trailingcomma works
-dist/Data-Dumper/t/values.t	See if Data::Dumper::Values works
-dist/Data-Dumper/Todo		Data pretty printer, futures
-dist/Devel-PPPort/apicheck_c.PL		Devel::PPPort apicheck generator
+dist/Data-Dumper/t/qr.t				See if Data::Dumper works with qr|/|
+dist/Data-Dumper/t/quotekeys.t			See if Data::Dumper::Quotekeys works
+dist/Data-Dumper/t/recurse.t			See if Data::Dumper::Maxrecurse works
+dist/Data-Dumper/t/seen.t			See if Data::Dumper::Seen works
+dist/Data-Dumper/t/sortkeys.t			See if Data::Dumper::Sortkeys works
+dist/Data-Dumper/t/sparseseen.t			See if Data::Dumper::Sparseseen works
+dist/Data-Dumper/t/terse.t			See if Data::Dumper terse option works
+dist/Data-Dumper/t/toaster.t			See if Data::Dumper::Toaster works
+dist/Data-Dumper/t/trailing_comma.t		See if Data::Dumper::Trailingcomma works
+dist/Data-Dumper/t/values.t			See if Data::Dumper::Values works
+dist/Data-Dumper/Todo				Data pretty printer, futures
+dist/Devel-PPPort/apicheck_c.PL			Devel::PPPort apicheck generator
 dist/Devel-PPPort/Changes			Devel::PPPort Changes file
-dist/Devel-PPPort/devel/buildperl.pl	Devel::PPPort perl version builder
-dist/Devel-PPPort/devel/devtools.pl	Devel::PPPort development utilities
-dist/Devel-PPPort/devel/mkapidoc.pl	Devel::PPPort apidoc collector 
-dist/Devel-PPPort/devel/mkppport_fnc.pl	Devel::PPPort
-dist/Devel-PPPort/devel/mktodo		Devel::PPPort baseline/todo generator
-dist/Devel-PPPort/devel/mktodo.pl	Devel::PPPort baseline/todo generator
-dist/Devel-PPPort/devel/regenerate	Devel::PPPort API re-generator
-dist/Devel-PPPort/devel/scanprov	Devel::PPPort provided API scanner
+dist/Devel-PPPort/devel/buildperl.pl		Devel::PPPort perl version builder
+dist/Devel-PPPort/devel/devtools.pl		Devel::PPPort development utilities
+dist/Devel-PPPort/devel/mkapidoc.pl		Devel::PPPort apidoc collector
+dist/Devel-PPPort/devel/mkppport_fnc.pl		Devel::PPPort
+dist/Devel-PPPort/devel/mktodo			Devel::PPPort baseline/todo generator
+dist/Devel-PPPort/devel/mktodo.pl		Devel::PPPort baseline/todo generator
+dist/Devel-PPPort/devel/regenerate		Devel::PPPort API re-generator
+dist/Devel-PPPort/devel/scanprov		Devel::PPPort provided API scanner
 dist/Devel-PPPort/devel/update_release_date.pl	Devel::PPPort timestamp builder
-dist/Devel-PPPort/HACKERS		Devel::PPPort hackers documentation
-dist/Devel-PPPort/Makefile.PL		Devel::PPPort makefile writer
-dist/Devel-PPPort/MANIFEST.SKIP		Devel::PPPort manifest skip file
-dist/Devel-PPPort/mktests.PL		Devel::PPPort test file writer
-dist/Devel-PPPort/module2.c		Devel::PPPort test file
-dist/Devel-PPPort/module3.c		Devel::PPPort test file
-dist/Devel-PPPort/parts/apicheck.pl	Devel::PPPort apicheck generator
-dist/Devel-PPPort/parts/apidoc.fnc	Devel::PPPort Perl API listing
-dist/Devel-PPPort/parts/base/5003007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5004000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5004001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5004002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5004003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5004004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5004005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5005000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5005001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5005002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5005003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5005004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5006000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5006001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5006002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5007000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5007001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5007002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5007003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5008009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5009000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5009001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5009002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5009003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5009004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5009005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5010000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5010001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5011000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5011001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5011002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5011003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5011004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5011005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5012000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5012001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5012002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5012003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5012004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5012005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5013011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5014000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5014001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5014002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5014003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5014004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5015009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5016000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5016001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5016002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5016003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5017011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5018000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5018001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5018002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5018003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5018004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5019011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5020000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5020001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5020002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5020003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5021011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5022000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5022001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5022002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5022003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5022004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5023009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5024000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5024001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5024002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5024003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5024004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5025012	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5026000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5026001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5026002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5026003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5027011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5028000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5028001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5028002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5028003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5029010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5030000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5030001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5030002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5030003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031007	Devel::PPPort baseline todo file
+dist/Devel-PPPort/HACKERS			Devel::PPPort hackers documentation
+dist/Devel-PPPort/Makefile.PL			Devel::PPPort makefile writer
+dist/Devel-PPPort/MANIFEST.SKIP			Devel::PPPort manifest skip file
+dist/Devel-PPPort/mktests.PL			Devel::PPPort test file writer
+dist/Devel-PPPort/module2.c			Devel::PPPort test file
+dist/Devel-PPPort/module3.c			Devel::PPPort test file
+dist/Devel-PPPort/parts/apicheck.pl		Devel::PPPort apicheck generator
+dist/Devel-PPPort/parts/apidoc.fnc		Devel::PPPort Perl API listing
+dist/Devel-PPPort/parts/base/5003007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5004000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5004001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5004002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5004003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5004004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5004005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5005000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5005001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5005002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5005003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5005004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5006000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5006001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5006002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5007000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5007001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5007002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5007003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5008009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5009000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5009001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5009002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5009003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5009004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5009005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5010000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5010001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5011000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5011001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5011002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5011003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5011004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5011005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5012000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5012001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5012002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5012003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5012004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5012005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5013011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5014000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5014001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5014002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5014003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5014004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5015009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5016000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5016001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5016002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5016003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5017011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5018000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5018001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5018002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5018003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5018004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5019011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5020000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5020001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5020002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5020003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5021011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5022000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5022001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5022002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5022003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5022004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5023009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5024000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5024001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5024002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5024003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5024004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5025012		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5026000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5026001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5026002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5026003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5027011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5028000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5028001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5028002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5028003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5029010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031007		Devel::PPPort baseline todo file
 dist/Devel-PPPort/parts/base/5031008
-dist/Devel-PPPort/parts/base/5031009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5031011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5032000	Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5032000		Devel::PPPort baseline todo file
 dist/Devel-PPPort/parts/base/5032001
-dist/Devel-PPPort/parts/base/5033000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5033001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/base/5033002	Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5033000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5033001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5033002		Devel::PPPort baseline todo file
 dist/Devel-PPPort/parts/base/5033003
 dist/Devel-PPPort/parts/base/5033004
 dist/Devel-PPPort/parts/base/5033005
@@ -3400,262 +3596,262 @@ dist/Devel-PPPort/parts/base/5035007
 dist/Devel-PPPort/parts/base/5035008
 dist/Devel-PPPort/parts/base/5035009
 dist/Devel-PPPort/parts/base/5035010
-dist/Devel-PPPort/parts/embed.fnc	Devel::PPPort Perl API listing
-dist/Devel-PPPort/parts/inc/01_test	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/call	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/cop		Devel::PPPort include
-dist/Devel-PPPort/parts/inc/exception	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/format	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/grok	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/gv		Devel::PPPort include
-dist/Devel-PPPort/parts/inc/HvNAME	Devel::PPPort include
+dist/Devel-PPPort/parts/embed.fnc		Devel::PPPort Perl API listing
+dist/Devel-PPPort/parts/inc/01_test		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/call		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/cop			Devel::PPPort include
+dist/Devel-PPPort/parts/inc/exception		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/format		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/grok		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/gv			Devel::PPPort include
+dist/Devel-PPPort/parts/inc/HvNAME		Devel::PPPort include
 dist/Devel-PPPort/parts/inc/inctools
-dist/Devel-PPPort/parts/inc/limits	Devel::PPPort include
+dist/Devel-PPPort/parts/inc/limits		Devel::PPPort include
 dist/Devel-PPPort/parts/inc/locale
-dist/Devel-PPPort/parts/inc/magic	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/magic_defs	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/memory	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/mess	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/misc	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/mPUSH	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/MY_CXT	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/newCONSTSUB	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/newRV	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/newSV_type	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/newSVpv	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/podtest	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/ppphbin	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/ppphdoc	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/ppphtest	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/pv_tools	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/pvs		Devel::PPPort include
-dist/Devel-PPPort/parts/inc/shared_pv	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/snprintf	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/sprintf	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/strlfuncs	Devel::PPPort include
+dist/Devel-PPPort/parts/inc/magic		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/magic_defs		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/memory		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/mess		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/misc		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/mPUSH		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/MY_CXT		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/newCONSTSUB		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/newRV		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/newSV_type		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/newSVpv		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/podtest		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/ppphbin		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/ppphdoc		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/ppphtest		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/pv_tools		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/pvs			Devel::PPPort include
+dist/Devel-PPPort/parts/inc/shared_pv		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/snprintf		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/sprintf		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/strlfuncs		Devel::PPPort include
 dist/Devel-PPPort/parts/inc/subparse
-dist/Devel-PPPort/parts/inc/Sv_set	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/sv_xpvf	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/SvPV	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/SvREFCNT	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/threads	Devel::PPPort include
+dist/Devel-PPPort/parts/inc/Sv_set		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/sv_xpvf		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/SvPV		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/SvREFCNT		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/threads		Devel::PPPort include
 dist/Devel-PPPort/parts/inc/utf8
-dist/Devel-PPPort/parts/inc/uv		Devel::PPPort include
-dist/Devel-PPPort/parts/inc/variables	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/version	Devel::PPPort include
-dist/Devel-PPPort/parts/inc/warn	Devel::PPPort include
-dist/Devel-PPPort/parts/ppport.fnc	Devel::PPPort API listing
-dist/Devel-PPPort/parts/ppptools.pl	Devel::PPPort various utilities
-dist/Devel-PPPort/parts/todo/5003007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5004000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5004001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5004002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5004003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5004004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5004005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5005000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5005001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5005002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5005003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5005004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5006000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5006001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5006002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5007000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5007001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5007002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5007003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5008009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5009000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5009001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5009002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5009003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5009004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5009005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5010000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5010001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5011000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5011001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5011002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5011003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5011004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5011005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5012000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5012001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5012002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5012003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5012004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5012005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013010	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5013011	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5014000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5014001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5014002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5014003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5014004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5015009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5016000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5016001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5016002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5016003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017010	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5017011	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5018000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5018001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5018002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5018003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5018004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019010	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5019011	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5020000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5020001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5020002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5020003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5021004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021010	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5021011	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5022000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5022001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5022002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5022003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5022004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5023000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023004	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023005	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023006	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023007	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023008	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5023009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5024000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5024001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5024002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5024003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5024004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5025012	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5026000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5026001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5026002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5026003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5027011	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5028000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5028001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5028002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5028003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5029000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029007	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029008	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029009	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5029010	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5030000	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5030001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5030002	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5030003	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5031000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5031001	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5031002	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5031003	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5031004	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5031005	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5031006	Devel::PPPort baseline todo file
-dist/Devel-PPPort/parts/todo/5031007	Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/inc/uv			Devel::PPPort include
+dist/Devel-PPPort/parts/inc/variables		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/version		Devel::PPPort include
+dist/Devel-PPPort/parts/inc/warn		Devel::PPPort include
+dist/Devel-PPPort/parts/ppport.fnc		Devel::PPPort API listing
+dist/Devel-PPPort/parts/ppptools.pl		Devel::PPPort various utilities
+dist/Devel-PPPort/parts/todo/5003007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5004000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5004001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5004002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5004003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5004004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5004005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5005000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5005001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5005002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5005003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5005004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5006000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5006001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5006002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5007000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5007001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5007002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5007003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5008009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5009000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5009001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5009002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5009003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5009004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5009005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5010000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5010001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5011000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5011001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5011002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5011003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5011004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5011005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5012000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5012001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5012002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5012003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5012004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5012005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013010		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5013011		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5014000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5014001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5014002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5014003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5014004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5015009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5016000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5016001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5016002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5016003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017010		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5017011		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5018000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5018001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5018002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5018003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5018004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019010		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5019011		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5020000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5020001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5020002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5020003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5021004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021010		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5021011		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5022000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5022001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5022002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5022003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5022004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5023000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023004		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023005		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023006		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023007		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023008		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5023009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5024000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5024001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5024002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5024003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5024004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5025012		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5026000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5026001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5026002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5026003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5027011		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5028000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5028001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5028002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5028003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5029000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029007		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029008		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029009		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5029010		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5030000		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5030001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5030002		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5030003		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031001		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5031002		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5031003		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5031004		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5031005		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5031006		Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5031007		Devel::PPPort baseline todo file
 dist/Devel-PPPort/parts/todo/5031008
-dist/Devel-PPPort/parts/todo/5031009	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5031010	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5031011	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5032000	Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031009		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031010		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031011		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5032000		Devel::PPPort todo file
 dist/Devel-PPPort/parts/todo/5032001
-dist/Devel-PPPort/parts/todo/5033000	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5033001	Devel::PPPort todo file
-dist/Devel-PPPort/parts/todo/5033002	Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5033000		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5033001		Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5033002		Devel::PPPort todo file
 dist/Devel-PPPort/parts/todo/5033003
 dist/Devel-PPPort/parts/todo/5033004
 dist/Devel-PPPort/parts/todo/5033005
@@ -3674,57 +3870,61 @@ dist/Devel-PPPort/parts/todo/5035007
 dist/Devel-PPPort/parts/todo/5035008
 dist/Devel-PPPort/parts/todo/5035009
 dist/Devel-PPPort/parts/todo/5035010
-dist/Devel-PPPort/PPPort.xs		Devel::PPPort dummy PPPort.xs
-dist/Devel-PPPort/ppport_h.PL		Devel::PPPort ppport.h writer
-dist/Devel-PPPort/PPPort_pm.PL		Devel::PPPort PPPort.pm writer
+dist/Devel-PPPort/PPPort.xs			Devel::PPPort dummy PPPort.xs
+dist/Devel-PPPort/ppport_h.PL			Devel::PPPort ppport.h writer
+dist/Devel-PPPort/PPPort_pm.PL			Devel::PPPort PPPort.pm writer
 dist/Devel-PPPort/RealPPPort_xs.PL		Devel::PPPort RealPPPort.xs writer
-dist/Devel-PPPort/soak			Devel::PPPort Test Harness to run under various Perls
+dist/Devel-PPPort/soak				Devel::PPPort Test Harness to run under various Perls
 dist/Devel-PPPort/t/testutil.pl			Devel::PPPort test utilities
-dist/Devel-PPPort/TODO			Devel::PPPort developer notes
-dist/Devel-PPPort/typemap		Devel::PPPort Typemap
+dist/Devel-PPPort/TODO				Devel::PPPort developer notes
+dist/Devel-PPPort/typemap			Devel::PPPort Typemap
 dist/Devel-SelfStubber/lib/Devel/SelfStubber.pm	Generate stubs for SelfLoader.pm
 dist/Devel-SelfStubber/t/Devel-SelfStubber.t	See if Devel::SelfStubber works
-dist/Dumpvalue/lib/Dumpvalue.pm	Screen dump of perl values
-dist/Dumpvalue/t/Dumpvalue.t	See if Dumpvalue works
+dist/Dumpvalue/lib/Dumpvalue.pm		Screen dump of perl values
+dist/Dumpvalue/t/Dumpvalue.t		See if Dumpvalue works
 dist/Dumpvalue/t/extend-coverage.t	Extend Dumpvalue's test coverage
-dist/Dumpvalue/t/lib/TieOut.pm	Helper module for Dumpvalue tests
+dist/Dumpvalue/t/lib/TieOut.pm		Helper module for Dumpvalue tests
 dist/Dumpvalue/t/rt-134441-dumpvalue.t	See if Dumpvalue works
+dist/encoding-warnings/Changes			encoding::warnings
 dist/encoding-warnings/lib/encoding/warnings.pm	warn on implicit encoding conversions
-dist/encoding-warnings/t/1-warning.t	tests for encoding::warnings
-dist/encoding-warnings/t/2-fatal.t	tests for encoding::warnings
-dist/encoding-warnings/t/3-normal.t	tests for encoding::warnings
-dist/encoding-warnings/t/4-lexical.t	tests for encoding::warnings
-dist/Env/lib/Env.pm		Map environment into ordinary variables
-dist/Env/t/array.t		See if Env works for arrays
-dist/Env/t/env.t		See if Env works
+dist/encoding-warnings/Makefile.PL		encoding::warnings
+dist/encoding-warnings/t/1-warning.t		tests for encoding::warnings
+dist/encoding-warnings/t/2-fatal.t		tests for encoding::warnings
+dist/encoding-warnings/t/3-normal.t		tests for encoding::warnings
+dist/encoding-warnings/t/4-lexical.t		tests for encoding::warnings
+dist/Env/lib/Env.pm			Map environment into ordinary variables
+dist/Env/t/array.t			See if Env works for arrays
+dist/Env/t/env.t			See if Env works
+dist/Exporter/Changes			History of changes for Exporter
 dist/Exporter/lib/Exporter.pm		Exporter base class
 dist/Exporter/lib/Exporter/Heavy.pm	Complicated routines for Exporter
+dist/Exporter/Makefile.PL		Build Exporter
 dist/Exporter/t/Exporter.t		See if Exporter works
 dist/Exporter/t/warn.t			See if Exporter respects warning handlers
-dist/ExtUtils-CBuilder/Changes		EU-CB change log
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm			Compile and link C code for Perl modules
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm		Base class for ExtUtils::CBuilder methods
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm	CBuilder methods for AIX
+dist/ExtUtils-CBuilder/Changes						EU-CB change log
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm				Compile and link C code for Perl modules
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm			Base class for ExtUtils::CBuilder methods
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm		CBuilder methods for AIX
 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm	CBuilder methods for Android
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm	CBuilder methods for cygwin
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm	CBuilder methods for darwin
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm		CBuilder methods for cygwin
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm		CBuilder methods for darwin
 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm	CBuilder methods for OSF
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm	CBuilder methods for OS/2
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm	CBuilder methods for Unix
-dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm	CBuilder methods for VMS
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm		CBuilder methods for OS/2
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm		CBuilder methods for Unix
+dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm		CBuilder methods for VMS
 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm	CBuilder methods for Windows
 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm	CBuilder methods for Windows
 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm	CBuilder methods for Windows
 dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm	CBuilder methods for Windows
-dist/ExtUtils-CBuilder/LICENSE		EU-CB license
-dist/ExtUtils-CBuilder/Makefile.PL		EU-CB configuration script
-dist/ExtUtils-CBuilder/README.patching		EU-CB patching nstructions
-dist/ExtUtils-CBuilder/README.release		EU-CB release instructions
-dist/ExtUtils-CBuilder/t/00-have-compiler.t			ExtUtils::CBuilder tests
-dist/ExtUtils-CBuilder/t/01-basic.t				tests for ExtUtils::CBuilder
-dist/ExtUtils-CBuilder/t/02-link.t				tests for ExtUtils::CBuilder
-dist/ExtUtils-CBuilder/t/03-cplusplus.t				tests for ExtUtils::CBuilder
-dist/ExtUtils-CBuilder/t/04-base.t				tests for ExtUtils::CBuilder
+dist/ExtUtils-CBuilder/LICENSE						EU-CB license
+dist/ExtUtils-CBuilder/Makefile.PL					EU-CB configuration script
+dist/ExtUtils-CBuilder/README.patching					EU-CB patching nstructions
+dist/ExtUtils-CBuilder/README.release					EU-CB release instructions
+dist/ExtUtils-CBuilder/t/00-have-compiler.t				ExtUtils::CBuilder tests
+dist/ExtUtils-CBuilder/t/01-basic.t					tests for ExtUtils::CBuilder
+dist/ExtUtils-CBuilder/t/02-link.t					tests for ExtUtils::CBuilder
+dist/ExtUtils-CBuilder/t/03-cplusplus.t					tests for ExtUtils::CBuilder
+dist/ExtUtils-CBuilder/t/04-base.t					tests for ExtUtils::CBuilder
 dist/ExtUtils-ParseXS/Changes					ExtUtils::ParseXS change log
 dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm			converts Perl XS code into C code
 dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pod			ExtUtils::ParseXS documentation
@@ -3782,15 +3982,22 @@ dist/ExtUtils-ParseXS/t/lib/PrimitiveCap
 dist/ExtUtils-ParseXS/t/lib/TypemapTest/Foo.pm			ExtUtils::Typemaps tests
 dist/ExtUtils-ParseXS/t/pseudotypemap1				A test-typemap
 dist/ExtUtils-ParseXS/t/typemap					Standard typemap for controlled testing
+dist/ExtUtils-ParseXS/t/XSAlias.xs				Test file for ExtUtils::ParseXS ALIAS tests
 dist/ExtUtils-ParseXS/t/XSBroken.xs				Test file for ExtUtils::ParseXS tests
+dist/ExtUtils-ParseXS/t/XSFalsePositive.xs			Test file for ExtUtils::ParseXS tests
+dist/ExtUtils-ParseXS/t/XSFalsePositive2.xs			Test file for ExtUtils::ParseXS tests
 dist/ExtUtils-ParseXS/t/XSInclude.xsh				Test file for ExtUtils::ParseXS tests
 dist/ExtUtils-ParseXS/t/XSMore.xs				Test file for ExtUtils::ParseXS tests
+dist/ExtUtils-ParseXS/t/XSNoMap.xs
 dist/ExtUtils-ParseXS/t/XSTest.pm				Test file for ExtUtils::ParseXS tests
 dist/ExtUtils-ParseXS/t/XSTest.xs				Test file for ExtUtils::ParseXS tests
+dist/ExtUtils-ParseXS/t/XSTightDirectives.xs			Test file for ExtUtils::ParseXS tests
 dist/ExtUtils-ParseXS/t/XSUsage.pm				ExtUtils::ParseXS tests
 dist/ExtUtils-ParseXS/t/XSUsage.xs				ExtUtils::ParseXS tests
 dist/ExtUtils-ParseXS/t/XSWarn.xs				ExtUtils::ParseXS tests
+dist/Filter-Simple/Changes					History of change for Filter::Simple
 dist/Filter-Simple/lib/Filter/Simple.pm				Simple frontend to Filter::Util::Call
+dist/Filter-Simple/Makefile.PL					Build Filter::Simple
 dist/Filter-Simple/t/code_no_comments.t				See if Filter::Simple works
 dist/Filter-Simple/t/data.t					See if Filter::Simple works
 dist/Filter-Simple/t/export.t					See if Filter::Simple works
@@ -3804,14 +4011,17 @@ dist/Filter-Simple/t/lib/Filter/Simple/F
 dist/Filter-Simple/t/lib/Filter/Simple/FilterTest.pm		Helper file for Filter::Simple tests
 dist/Filter-Simple/t/lib/Filter/Simple/ImportTest.pm		Helper file for Filter::Simple tests
 dist/Filter-Simple/t/no.t					See if Filter::Simple works
-dist/FindBin/lib/FindBin.pm			Find name of currently executing program
-dist/FindBin/t/FindBin.t			See if FindBin works
-dist/I18N-Collate/lib/I18N/Collate.pm		Routines to do strxfrm-based collation
-dist/I18N-Collate/t/I18N-Collate.t		See if I18N::Collate works
-dist/I18N-LangTags/ChangeLog			I18N::LangTags
+dist/FindBin/Changes			Tracks changes made in blead
+dist/FindBin/lib/FindBin.pm		Find name of currently executing program
+dist/FindBin/Makefile.PL		Build FindBin
+dist/FindBin/t/FindBin.t		See if FindBin works
+dist/I18N-Collate/lib/I18N/Collate.pm	Routines to do strxfrm-based collation
+dist/I18N-Collate/t/I18N-Collate.t	See if I18N::Collate works
+dist/I18N-LangTags/ChangeLog			I18N::LangTags change history
 dist/I18N-LangTags/lib/I18N/LangTags.pm		I18N::LangTags
 dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm	Detect language preferences
 dist/I18N-LangTags/lib/I18N/LangTags/List.pm	List of tags for human languages
+dist/I18N-LangTags/Makefile.PL			Build I18N::LangTags
 dist/I18N-LangTags/README			I18N::LangTags
 dist/I18N-LangTags/t/01_about_verbose.t		See whether I18N::LangTags works
 dist/I18N-LangTags/t/05_main.t			See whether I18N::LangTags works
@@ -3821,59 +4031,60 @@ dist/I18N-LangTags/t/20_locales.t		See w
 dist/I18N-LangTags/t/50_super.t			See whether I18N::LangTags works
 dist/I18N-LangTags/t/55_supers_strict.t		See whether I18N::LangTags works
 dist/I18N-LangTags/t/80_all_env.t		See whether I18N::LangTags works
-dist/if/Changes			if perl module change log
-dist/if/if.pm			For "use if"
-dist/if/MANIFEST		MANIFEST for if.pm
-dist/if/META.json		META.json for if.pm
-dist/if/META.yml		META.json for if.pm
-dist/if/t/if.t			Tests for "use if"
-dist/IO/ChangeLog		IO perl module change log
-dist/IO/hints/sco.pl		Hint for IO for named architecture
-dist/IO/IO.pm			Top-level interface to IO::* classes
-dist/IO/IO.xs			IO extension external subroutines
-dist/IO/lib/IO/Dir.pm		IO directory reading package
-dist/IO/lib/IO/File.pm		IO file handle package
-dist/IO/lib/IO/Handle.pm	IO base handle package
-dist/IO/lib/IO/Pipe.pm		IO pipe package
-dist/IO/lib/IO/Poll.pm		IO system poll() interface
-dist/IO/lib/IO/Seekable.pm	IO methods for seekable handles
-dist/IO/lib/IO/Select.pm	IO system select() interface
-dist/IO/lib/IO/Socket.pm	IO socket handle package
-dist/IO/lib/IO/Socket/INET.pm	IO INET specific socket methods
-dist/IO/lib/IO/Socket/UNIX.pm	IO UNIX specific socket methods
-dist/IO/Makefile.PL		IO extension makefile writer
-dist/IO/poll.c			IO poll() emulation using select()
-dist/IO/poll.h			IO poll() emulation using select()
-dist/IO/README			IO extension maintenance notice
-dist/IO/t/cachepropagate-tcp.t	See if IO::Socket duplication works
-dist/IO/t/cachepropagate-udp.t	See if IO::Socket duplication works
-dist/IO/t/cachepropagate-unix.t	See if IO::Socket duplication works
-dist/IO/t/gh17447.t		Tests fix for #17447
-dist/IO/t/IO.t			See if IO works
-dist/IO/t/io_const.t		See if constants from IO work
-dist/IO/t/io_dir.t		See if directory-related methods from IO work
-dist/IO/t/io_dup.t		See if dup()-related methods from IO work
-dist/IO/t/io_file.t		See if binmode()-related methods on IO::File work
-dist/IO/t/io_file_export.t	Test IO::File exports
-dist/IO/t/io_getline.t		Test getline and getlines
-dist/IO/t/io_leak.t		See if IO leaks SVs (only run in core)
-dist/IO/t/io_linenum.t		See if I/O line numbers are tracked correctly
-dist/IO/t/io_multihomed.t	See if INET sockets work with multi-homed hosts
-dist/IO/t/io_pipe.t		See if pipe()-related methods from IO work
-dist/IO/t/io_poll.t		See if poll()-related methods from IO work
-dist/IO/t/io_sel.t		See if select()-related methods from IO work
-dist/IO/t/io_sock.t		See if INET socket-related methods from IO work
-dist/IO/t/io_sock_errstr.t	See if socket constructors put error string in the right place
-dist/IO/t/io_taint.t		See if the untaint method from IO works
-dist/IO/t/io_tell.t		See if seek()/tell()-related methods from IO work
-dist/IO/t/io_udp.t		See if UDP socket-related methods from IO work
-dist/IO/t/io_unix.t		See if UNIX socket-related methods from IO work
-dist/IO/t/io_utf8.t		See if perlio opens work
-dist/IO/t/io_utf8argv.t		See if <> respects open pragma
-dist/IO/t/io_xs.t		See if XSUB methods from IO work
-dist/lib/lib_pm.PL		For "use lib", produces lib/lib.pm
+dist/if/Changes				if perl module change log
+dist/if/if.pm				For "use if"
+dist/if/Makefile.PL			Makefile.PL for if.pm
+dist/if/MANIFEST			MANIFEST for if.pm
+dist/if/META.json			META.json for if.pm
+dist/if/META.yml			META.json for if.pm
+dist/if/t/if.t				Tests for "use if"
+dist/IO/ChangeLog			IO perl module change log
+dist/IO/hints/sco.pl			Hint for IO for named architecture
+dist/IO/IO.pm				Top-level interface to IO::* classes
+dist/IO/IO.xs				IO extension external subroutines
+dist/IO/lib/IO/Dir.pm			IO directory reading package
+dist/IO/lib/IO/File.pm			IO file handle package
+dist/IO/lib/IO/Handle.pm		IO base handle package
+dist/IO/lib/IO/Pipe.pm			IO pipe package
+dist/IO/lib/IO/Poll.pm			IO system poll() interface
+dist/IO/lib/IO/Seekable.pm		IO methods for seekable handles
+dist/IO/lib/IO/Select.pm		IO system select() interface
+dist/IO/lib/IO/Socket.pm		IO socket handle package
+dist/IO/lib/IO/Socket/INET.pm		IO INET specific socket methods
+dist/IO/lib/IO/Socket/UNIX.pm		IO UNIX specific socket methods
+dist/IO/Makefile.PL			IO extension makefile writer
+dist/IO/poll.c				IO poll() emulation using select()
+dist/IO/poll.h				IO poll() emulation using select()
+dist/IO/README				IO extension maintenance notice
+dist/IO/t/cachepropagate-tcp.t		See if IO::Socket duplication works
+dist/IO/t/cachepropagate-udp.t		See if IO::Socket duplication works
+dist/IO/t/cachepropagate-unix.t		See if IO::Socket duplication works
+dist/IO/t/gh17447.t			Tests fix for #17447
+dist/IO/t/IO.t				See if IO works
+dist/IO/t/io_const.t			See if constants from IO work
+dist/IO/t/io_dir.t			See if directory-related methods from IO work
+dist/IO/t/io_dup.t			See if dup()-related methods from IO work
+dist/IO/t/io_file.t			See if binmode()-related methods on IO::File work
+dist/IO/t/io_file_export.t		Test IO::File exports
+dist/IO/t/io_getline.t			Test getline and getlines
+dist/IO/t/io_leak.t			See if IO leaks SVs (only run in core)
+dist/IO/t/io_linenum.t			See if I/O line numbers are tracked correctly
+dist/IO/t/io_multihomed.t		See if INET sockets work with multi-homed hosts
+dist/IO/t/io_pipe.t			See if pipe()-related methods from IO work
+dist/IO/t/io_poll.t			See if poll()-related methods from IO work
+dist/IO/t/io_sel.t			See if select()-related methods from IO work
+dist/IO/t/io_sock.t			See if INET socket-related methods from IO work
+dist/IO/t/io_sock_errstr.t		See if socket constructors put error string in the right place
+dist/IO/t/io_taint.t			See if the untaint method from IO works
+dist/IO/t/io_tell.t			See if seek()/tell()-related methods from IO work
+dist/IO/t/io_udp.t			See if UDP socket-related methods from IO work
+dist/IO/t/io_unix.t			See if UNIX socket-related methods from IO work
+dist/IO/t/io_utf8.t			See if perlio opens work
+dist/IO/t/io_utf8argv.t			See if <> respects open pragma
+dist/IO/t/io_xs.t			See if XSUB methods from IO work
+dist/lib/lib_pm.PL			For "use lib", produces lib/lib.pm
 dist/lib/Makefile.PL
-dist/lib/t/01lib.t		For "use lib" testing
+dist/lib/t/01lib.t			For "use lib" testing
 dist/Locale-Maketext/ChangeLog				Locale::Maketext
 dist/Locale-Maketext/lib/Locale/Maketext.pm		Locale::Maketext
 dist/Locale-Maketext/lib/Locale/Maketext.pod		Locale::Maketext documentation
@@ -3881,10 +4092,11 @@ dist/Locale-Maketext/lib/Locale/Maketext
 dist/Locale-Maketext/lib/Locale/Maketext/Guts.pm	Locale::Maketext
 dist/Locale-Maketext/lib/Locale/Maketext/GutsLoader.pm	Locale::Maketext
 dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod	Locale::Maketext documentation article
+dist/Locale-Maketext/Makefile.PL			Build Locale::Maketext
 dist/Locale-Maketext/README				Locale::Maketext
 dist/Locale-Maketext/t/01_about_verbose.t		See if Locale::Maketext works
 dist/Locale-Maketext/t/04_use_external_lex_cache.t	See if Locale::Maketext works
-dist/Locale-Maketext/t/09_compile.t	Test Locale::Maketext::_compile
+dist/Locale-Maketext/t/09_compile.t			Test Locale::Maketext::_compile
 dist/Locale-Maketext/t/10_make.t			See if Locale::Maketext works
 dist/Locale-Maketext/t/20_get.t				See if Locale::Maketext works
 dist/Locale-Maketext/t/30_eval_dollar_at.t		See if Locale::Maketext works
@@ -3898,24 +4110,33 @@ dist/Locale-Maketext/t/92_blacklist.t			
 dist/Locale-Maketext/t/93_whitelist.t			See if Locale::Maketext works
 dist/Locale-Maketext/t/94_denylist.t			See if Locale::Maketext works
 dist/Locale-Maketext/t/95_allowlist.t			See if Locale::Maketext works
-dist/Module-CoreList/Changes			Module::CoreList Changes
-dist/Module-CoreList/corelist			The corelist command-line utility
-dist/Module-CoreList/identify-dependencies	A usage example for Module::CoreList
-dist/Module-CoreList/lib/Module/CoreList.pm	Module::CoreList
-dist/Module-CoreList/lib/Module/CoreList.pod	Module::CoreList
+dist/Math-Complex/ChangeLog		History of changes for Math::Complex
+dist/Math-Complex/lib/Math/Complex.pm	A package for doing math with complex numbers
+dist/Math-Complex/lib/Math/Trig.pm	A simple interface to complex trigonometry
+dist/Math-Complex/Makefile.PL		Build Math::Complex
+dist/Math-Complex/t/Complex.t		See if Math::Complex works
+dist/Math-Complex/t/Trig.t		See if Math::Trig works
+dist/Math-Complex/t/underbar.t		See if Math::Complex works
+dist/Math-Complex/TODO			TODO for Math::Complex
+dist/Module-CoreList/Changes				Module::CoreList Changes
+dist/Module-CoreList/corelist				The corelist command-line utility
+dist/Module-CoreList/identify-dependencies		A usage example for Module::CoreList
+dist/Module-CoreList/lib/Module/CoreList.pm		Module::CoreList
+dist/Module-CoreList/lib/Module/CoreList.pod		Module::CoreList
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm	Module::CoreList guts
-dist/Module-CoreList/Makefile.PL		Module::CoreList
-dist/Module-CoreList/MANIFEST			Module::CoreList
-dist/Module-CoreList/README			Module::CoreList
-dist/Module-CoreList/t/corelist.t		Module::CoreList tests
-dist/Module-CoreList/t/deprecated.t		Module::CoreList tests
-dist/Module-CoreList/t/find_modules.t		Module::CoreList tests
-dist/Module-CoreList/t/is_core.t		Module::CoreList tests
+dist/Module-CoreList/Makefile.PL			Module::CoreList
+dist/Module-CoreList/MANIFEST				Module::CoreList
+dist/Module-CoreList/README				Module::CoreList
+dist/Module-CoreList/t/corelist.t			Module::CoreList tests
+dist/Module-CoreList/t/deprecated.t			Module::CoreList tests
+dist/Module-CoreList/t/find_modules.t			Module::CoreList tests
+dist/Module-CoreList/t/is_core.t			Module::CoreList tests
 dist/Module-CoreList/t/maintainer.t			Module::CoreList tests
-dist/Module-CoreList/t/pod.t			Module::CoreList tests
-dist/Module-CoreList/t/utils.t			Module::CoreList tests
+dist/Module-CoreList/t/pod.t				Module::CoreList tests
+dist/Module-CoreList/t/utils.t				Module::CoreList tests
 dist/Net-Ping/Changes			Net::Ping
 dist/Net-Ping/lib/Net/Ping.pm		Hello, anybody home?
+dist/Net-Ping/Makefile.PL		Build Net::Ping
 dist/Net-Ping/t/000_load.t
 dist/Net-Ping/t/001_new.t
 dist/Net-Ping/t/010_pingecho.t
@@ -3924,7 +4145,7 @@ dist/Net-Ping/t/120_udp_inst.t		Ping Net
 dist/Net-Ping/t/130_tcp_inst.t		Ping Net::Ping
 dist/Net-Ping/t/140_stream_inst.t	Ping Net::Ping
 dist/Net-Ping/t/150_syn_inst.t		Ping Net::Ping
-dist/Net-Ping/t/190_alarm.t			Ping Net::Ping
+dist/Net-Ping/t/190_alarm.t		Ping Net::Ping
 dist/Net-Ping/t/200_ping_tcp.t		Ping Net::Ping
 dist/Net-Ping/t/250_ping_hires.t	Ping Net::Ping
 dist/Net-Ping/t/300_ping_stream.t	Ping Net::Ping
@@ -3936,12 +4157,13 @@ dist/Net-Ping/t/500_ping_icmp.t		Ping Ne
 dist/Net-Ping/t/501_ping_icmpv6.t	Ping Net::Ping
 dist/Net-Ping/t/510_ping_udp.t		Ping Net::Ping
 dist/Net-Ping/t/520_icmp_ttl.t		Ping Net::Ping
-dist/PathTools/Changes			Changelog for PathTools dist
+dist/Net-Ping/TODO			TODO list for Net::Ping
+dist/PathTools/Changes				Changelog for PathTools dist
 dist/PathTools/Cwd.pm				Various cwd routines (getcwd, fastcwd, chdir)
 dist/PathTools/Cwd.xs				Cwd extension external subroutines
-dist/PathTools/lib/File/Spec.pm		portable operations on file names
+dist/PathTools/lib/File/Spec.pm			portable operations on file names
 dist/PathTools/lib/File/Spec/AmigaOS.pm		portable operations on AmigaOS file names
-dist/PathTools/lib/File/Spec/Cygwin.pm	portable operations on Cygwin file names
+dist/PathTools/lib/File/Spec/Cygwin.pm		portable operations on Cygwin file names
 dist/PathTools/lib/File/Spec/Epoc.pm		portable operations on EPOC file names
 dist/PathTools/lib/File/Spec/Functions.pm	Function interface to File::Spec object methods
 dist/PathTools/lib/File/Spec/Mac.pm		portable operations on Mac file names
@@ -3950,45 +4172,47 @@ dist/PathTools/lib/File/Spec/Unix.pm		po
 dist/PathTools/lib/File/Spec/VMS.pm		portable operations on VMS file names
 dist/PathTools/lib/File/Spec/Win32.pm		portable operations on Win32 and NetWare file names
 dist/PathTools/Makefile.PL			makefile writer for Cwd
-dist/PathTools/MANIFEST		MANIFEST for PathTools
-dist/PathTools/META.json		META.json for PathTools
-dist/PathTools/META.yml		META.yml for PathTools
-dist/PathTools/t/abs2rel.t		See if File::Spec->abs2rel works
+dist/PathTools/MANIFEST				MANIFEST for PathTools
+dist/PathTools/META.json			META.json for PathTools
+dist/PathTools/META.yml				META.yml for PathTools
+dist/PathTools/t/abs2rel.t			See if File::Spec->abs2rel works
 dist/PathTools/t/crossplatform.t		See if File::Spec works crossplatform
-dist/PathTools/t/cwd.t			See if Cwd works
+dist/PathTools/t/cwd.t				See if Cwd works
 dist/PathTools/t/cwd_enoent.t			See if getcwd errors correctly
 dist/PathTools/t/Functions.t			See if File::Spec::Functions works
-dist/PathTools/t/rel2abs2rel.t		See if File::Spec->rel2abs/abs2rel works
-dist/PathTools/t/Spec.t			See if File::Spec works
+dist/PathTools/t/rel2abs2rel.t			See if File::Spec->rel2abs/abs2rel works
+dist/PathTools/t/Spec.t				See if File::Spec works
 dist/PathTools/t/Spec-taint.t			See if File::Spec works with taint
 dist/PathTools/t/taint.t			See if Cwd works with taint
 dist/PathTools/t/tmpdir.t			See if File::Spec->tmpdir() works
 dist/PathTools/t/win32.t			See if Cwd works on Win32
-dist/Safe/Changes		Changes for Safe.pm
-dist/Safe/Makefile.PL		Makefile.PL for Safe.pm
-dist/Safe/MANIFEST		MANIFEST for Safe.pm
-dist/Safe/META.yml		META.yml for Safe.pm
-dist/Safe/README		README for Safe.pm
-dist/Safe/Safe.pm		Safe extension Perl module
-dist/Safe/t/safe1.t		See if Safe works
-dist/Safe/t/safe2.t		See if Safe works
-dist/Safe/t/safe3.t		See if Safe works
-dist/Safe/t/safeload.t		Tests that some modules can be loaded by Safe
-dist/Safe/t/safenamedcap.t	Tests that Tie::Hash::NamedCapture can be loaded
-dist/Safe/t/safeops.t		Tests that all ops can be trapped by Safe
-dist/Safe/t/saferegexp.t	Tests Safe with regular expressions
-dist/Safe/t/safesecurity.t	Tests misc. security fixes in Safe
-dist/Safe/t/safesort.t		Tests Safe with sort
-dist/Safe/t/safeuniversal.t	Tests Safe with functions from universal.c
-dist/Safe/t/safeutf8.t		Tests Safe with utf8.pm
-dist/Safe/t/safewrap.t		Tests Safe::wrap_code_ref()
+dist/Safe/Changes			Changes for Safe.pm
+dist/Safe/Makefile.PL			Makefile.PL for Safe.pm
+dist/Safe/MANIFEST			MANIFEST for Safe.pm
+dist/Safe/META.yml			META.yml for Safe.pm
+dist/Safe/README			README for Safe.pm
+dist/Safe/Safe.pm			Safe extension Perl module
+dist/Safe/t/safe1.t			See if Safe works
+dist/Safe/t/safe2.t			See if Safe works
+dist/Safe/t/safe3.t			See if Safe works
+dist/Safe/t/safeload.t			Tests that some modules can be loaded by Safe
+dist/Safe/t/safenamedcap.t		Tests that Tie::Hash::NamedCapture can be loaded
+dist/Safe/t/safeops.t			Tests that all ops can be trapped by Safe
+dist/Safe/t/saferegexp.t		Tests Safe with regular expressions
+dist/Safe/t/safesecurity.t		Tests misc. security fixes in Safe
+dist/Safe/t/safesort.t			Tests Safe with sort
+dist/Safe/t/safeuniversal.t		Tests Safe with functions from universal.c
+dist/Safe/t/safeutf8.t			Tests Safe with utf8.pm
+dist/Safe/t/safewrap.t			Tests Safe::wrap_code_ref()
 dist/Search-Dict/Changes		Change log
 dist/Search-Dict/lib/Search/Dict.pm	Perform binary search on dictionaries
 dist/Search-Dict/Makefile.PL		Makefile.PL
 dist/Search-Dict/README.patching	Patch instructions
 dist/Search-Dict/README.release		Release instructions
 dist/Search-Dict/t/Dict.t		See if Search::Dict works
+dist/SelfLoader/Changes			History of changes for SelfLoader
 dist/SelfLoader/lib/SelfLoader.pm	Load functions only on demand
+dist/SelfLoader/Makefile.PL		Build SelfLoader
 dist/SelfLoader/t/01SelfLoader.t	See if SelfLoader works
 dist/SelfLoader/t/02SelfLoader-buggy.t	See if SelfLoader works
 dist/SelfLoader/t/03taint.t		See if SelfLoader works under taint
@@ -4007,6 +4231,7 @@ dist/Storable/t/attach.t		Check STORABLE
 dist/Storable/t/attach_errors.t		Trigger and test STORABLE_attach errors
 dist/Storable/t/attach_singleton.t	Test STORABLE_attach for the Singleton pattern
 dist/Storable/t/blessed.t		See if Storable works
+dist/Storable/t/boolean.t		See if Storable works
 dist/Storable/t/canonical.t		See if Storable works
 dist/Storable/t/circular_hook.t		Test thaw hook called depth-first for circular refs
 dist/Storable/t/code.t			See if Storable works
@@ -4056,25 +4281,31 @@ dist/Storable/t/utf8hash.t		See if Stora
 dist/Storable/t/weak.t			Can Storable store weakrefs
 dist/Term-Complete/lib/Term/Complete.pm	A command completion subroutine
 dist/Term-Complete/t/Complete.t		See if Term::Complete works
-dist/Term-ReadLine/lib/Term/ReadLine.pm		Stub readline library
-dist/Term-ReadLine/t/AE.t			See if Term::ReadLine works
-dist/Term-ReadLine/t/AETk.t			See if Term::ReadLine works
-dist/Term-ReadLine/t/ReadLine.t			See if Term::ReadLine works
-dist/Term-ReadLine/t/ReadLine-STDERR.t		See if Term::ReadLine works
-dist/Term-ReadLine/t/Tk.t			See if Term::ReadLine works
-dist/Test/lib/Test.pm		A simple framework for writing test scripts
-dist/Test/t/05_about_verbose.t	See if Test works
-dist/Test/t/fail.t		See if Test works
-dist/Test/t/mix.t		See if Test works
-dist/Test/t/multiline.t		See if Test works
-dist/Test/t/onfail.t		See if Test works
-dist/Test/t/qr.t		See if Test works
-dist/Test/t/skip.t		See if Test works
-dist/Test/t/success.t		See if Test works
-dist/Test/t/todo.t		See if Test works
-dist/Text-Abbrev/lib/Text/Abbrev.pm		An abbreviation table builder
+dist/Term-ReadLine/lib/Term/ReadLine.pm	Stub readline library
+dist/Term-ReadLine/t/AE.t		See if Term::ReadLine works
+dist/Term-ReadLine/t/AETk.t		See if Term::ReadLine works
+dist/Term-ReadLine/t/ReadLine.t		See if Term::ReadLine works
+dist/Term-ReadLine/t/ReadLine-STDERR.t	See if Term::ReadLine works
+dist/Term-ReadLine/t/Tk.t		See if Term::ReadLine works
+dist/Test/ChangeLog			History of changes for the Test module
+dist/Test/lib/Test.pm			A simple framework for writing test scripts
+dist/Test/Makefile.PL			Build the Test module
+dist/Test/t/05_about_verbose.t		See if Test works
+dist/Test/t/fail.t			See if Test works
+dist/Test/t/mix.t			See if Test works
+dist/Test/t/multiline.t			See if Test works
+dist/Test/t/onfail.t			See if Test works
+dist/Test/t/qr.t			See if Test works
+dist/Test/t/skip.t			See if Test works
+dist/Test/t/success.t			See if Test works
+dist/Test/t/todo.t			See if Test works
+dist/Text-Abbrev/lib/Text/Abbrev.pm	An abbreviation table builder
 dist/Text-Abbrev/t/Abbrev.t		Test Text::Abbrev
+dist/Thread-Queue/Changes		Thread-safe queues
+dist/Thread-Queue/examples/callback.pl	Thread::Queue example script
+dist/Thread-Queue/examples/queue.pl	Thread::Queue example script
 dist/Thread-Queue/lib/Thread/Queue.pm	Thread-safe queues
+dist/Thread-Queue/Makefile.PL		Build Thread::Queue
 dist/Thread-Queue/t/01_basic.t		Thread::Queue tests
 dist/Thread-Queue/t/02_refs.t		Thread::Queue tests
 dist/Thread-Queue/t/03_peek.t		Thread::Queue tests
@@ -4084,68 +4315,74 @@ dist/Thread-Queue/t/06_insert.t		Thread:
 dist/Thread-Queue/t/07_lock.t		Thread::Queue tests
 dist/Thread-Queue/t/08_nothreads.t	Thread::Queue tests
 dist/Thread-Queue/t/09_ended.t		Thread::Queue tests
-dist/Thread-Queue/t/10_timed.t	Thread::Queue tests
-dist/Thread-Queue/t/11_limit.t	Thread::Queue tests
+dist/Thread-Queue/t/10_timed.t		Thread::Queue tests
+dist/Thread-Queue/t/11_limit.t		Thread::Queue tests
+dist/Thread-Semaphore/Changes			History of changes for Thread::Semaphore
+dist/Thread-Semaphore/examples/semaphore.pl	Thread::Semaphore example script
 dist/Thread-Semaphore/lib/Thread/Semaphore.pm	Thread-safe semaphores
+dist/Thread-Semaphore/Makefile.PL		Build Thread::Semaphore
 dist/Thread-Semaphore/t/01_basic.t		Thread::Semaphore tests
 dist/Thread-Semaphore/t/02_errs.t		Thread::Semaphore tests
 dist/Thread-Semaphore/t/03_nothreads.t		Thread::Semaphore tests
 dist/Thread-Semaphore/t/04_nonblocking.t	Thread::Semaphore tests
-dist/Thread-Semaphore/t/05_force.t	Thread::Semaphore tests
-dist/Thread-Semaphore/t/06_timed.t	Thread::Semaphore tests
-dist/threads/hints/hpux.pl	Hint file for HPUX
-dist/threads/hints/linux.pl	Hint file for Linux
+dist/Thread-Semaphore/t/05_force.t		Thread::Semaphore tests
+dist/Thread-Semaphore/t/06_timed.t		Thread::Semaphore tests
+dist/threads/hints/hpux.pl		Hint file for HPUX
+dist/threads/hints/linux.pl		Hint file for Linux
 dist/threads/lib/threads.pm		ithreads
-dist/threads/t/basic.t		ithreads
-dist/threads/t/blocks.t		Test threads in special blocks
-dist/threads/t/context.t	Explicit thread context
-dist/threads/t/end.t		Test end functions
-dist/threads/t/err.t		Test $thr->error()
-dist/threads/t/exit.t		Test exit and die in threads
-dist/threads/t/free.t		Test ithread destruction
-dist/threads/t/free2.t		More ithread destruction tests
-dist/threads/t/join.t		Testing the join function
-dist/threads/t/kill.t		Tests thread signalling
-dist/threads/t/kill2.t		Tests thread signalling
-dist/threads/t/kill3.t		Tests thread signalling
-dist/threads/t/libc.t		testing libc functions for threadsafety
-dist/threads/t/list.t		Test threads->list()
-dist/threads/t/no_threads.t	threads test for non-threaded Perls
-dist/threads/t/problems.t	Test various memory problems
-dist/threads/t/stack.t		Tests for stack limits
-dist/threads/t/stack_env.t	Tests for stack limits
-dist/threads/t/state.t		Tests state methods
-dist/threads/t/stress_cv.t	Test with multiple threads, coderef cv argument.
-dist/threads/t/stress_re.t	Test with multiple threads, string cv argument and regexes.
-dist/threads/t/stress_string.t	Test with multiple threads, string cv argument.
-dist/threads/t/thread.t		General ithread tests from thr5005
+dist/threads/t/basic.t			ithreads
+dist/threads/t/blocks.t			Test threads in special blocks
+dist/threads/t/context.t		Explicit thread context
+dist/threads/t/end.t			Test end functions
+dist/threads/t/err.t			Test $thr->error()
+dist/threads/t/exit.t			Test exit and die in threads
+dist/threads/t/free.t			Test ithread destruction
+dist/threads/t/free2.t			More ithread destruction tests
+dist/threads/t/join.t			Testing the join function
+dist/threads/t/kill.t			Tests thread signalling
+dist/threads/t/kill2.t			Tests thread signalling
+dist/threads/t/kill3.t			Tests thread signalling
+dist/threads/t/libc.t			testing libc functions for threadsafety
+dist/threads/t/list.t			Test threads->list()
+dist/threads/t/no_threads.t		threads test for non-threaded Perls
+dist/threads/t/problems.t		Test various memory problems
+dist/threads/t/stack.t			Tests for stack limits
+dist/threads/t/stack_env.t		Tests for stack limits
+dist/threads/t/state.t			Tests state methods
+dist/threads/t/stress_cv.t		Test with multiple threads, coderef cv argument.
+dist/threads/t/stress_re.t		Test with multiple threads, string cv argument and regexes.
+dist/threads/t/stress_string.t		Test with multiple threads, string cv argument.
+dist/threads/t/thread.t			General ithread tests from thr5005
 dist/threads/t/unique.t			Test unique attribute with threads
-dist/threads/threads.xs		ithreads
-dist/threads-shared/hints/linux.pl	thread shared variables
+dist/threads/t/version.t		Test that pod version matches code version.
+dist/threads/threads.h			threads compatibility helper
+dist/threads/threads.xs			ithreads
+dist/threads-shared/hints/linux.pl		thread shared variables
 dist/threads-shared/lib/threads/shared.pm	thread shared variables
-dist/threads-shared/shared.xs		thread shared variables
-dist/threads-shared/t/0nothread.t	Tests for basic shared array functionality.
-dist/threads-shared/t/av_refs.t		Tests for arrays containing references
-dist/threads-shared/t/av_simple.t	Tests for basic shared array functionality.
-dist/threads-shared/t/blessed.t		Test blessed shared variables
-dist/threads-shared/t/clone.t		Test shared cloning
-dist/threads-shared/t/cond.t		Test condition variables
-dist/threads-shared/t/disabled.t	Test threads::shared when threads are disabled.
-dist/threads-shared/t/dualvar.t	Test dual-valued variables
-dist/threads-shared/t/hv_refs.t		Test shared hashes containing references
-dist/threads-shared/t/hv_simple.t	Tests for basic shared hash functionality.
-dist/threads-shared/t/no_share.t	Tests for disabled share on variables.
-dist/threads-shared/t/object.t		Shared objects tests
-dist/threads-shared/t/object2.t	More shared objects tests
-dist/threads-shared/t/shared_attr.t	Test :shared attribute
-dist/threads-shared/t/stress.t		Stress test
-dist/threads-shared/t/sv_refs.t		thread shared variables
-dist/threads-shared/t/sv_simple.t	thread shared variables
-dist/threads-shared/t/utf8.t		Test UTF-8 keys in shared hashes
-dist/threads-shared/t/wait.t		Test cond_wait and cond_timedwait
-dist/threads-shared/t/waithires.t	Test sub-second cond_timedwait
+dist/threads-shared/shared.xs			thread shared variables
+dist/threads-shared/t/0nothread.t		Tests for basic shared array functionality.
+dist/threads-shared/t/av_refs.t			Tests for arrays containing references
+dist/threads-shared/t/av_simple.t		Tests for basic shared array functionality.
+dist/threads-shared/t/blessed.t			Test blessed shared variables
+dist/threads-shared/t/clone.t			Test shared cloning
+dist/threads-shared/t/cond.t			Test condition variables
+dist/threads-shared/t/disabled.t		Test threads::shared when threads are disabled.
+dist/threads-shared/t/dualvar.t			Test dual-valued variables
+dist/threads-shared/t/hv_refs.t			Test shared hashes containing references
+dist/threads-shared/t/hv_simple.t		Tests for basic shared hash functionality.
+dist/threads-shared/t/no_share.t		Tests for disabled share on variables.
+dist/threads-shared/t/object.t			Shared objects tests
+dist/threads-shared/t/object2.t			More shared objects tests
+dist/threads-shared/t/shared_attr.t		Test :shared attribute
+dist/threads-shared/t/stress.t			Stress test
+dist/threads-shared/t/sv_refs.t			thread shared variables
+dist/threads-shared/t/sv_simple.t		thread shared variables
+dist/threads-shared/t/utf8.t			Test UTF-8 keys in shared hashes
+dist/threads-shared/t/wait.t			Test cond_wait and cond_timedwait
+dist/threads-shared/t/waithires.t		Test sub-second cond_timedwait
 dist/Tie-File/ChangeLog			Tie::File
 dist/Tie-File/lib/Tie/File.pm		Files as tied arrays
+dist/Tie-File/Makefile.PL		Build Tie::File
 dist/Tie-File/t/01_gen.t		Generic read/write tests for Tie::File
 dist/Tie-File/t/02_fetchsize.t		File length fetch test for Tie::File
 dist/Tie-File/t/03_longfetch.t		Past-the-end-of-the-array tests for Tie::File
@@ -4223,255 +4460,246 @@ dist/Unicode-Normalize/t/func.t		Unicode
 dist/Unicode-Normalize/t/illegal.t	Unicode::Normalize
 dist/Unicode-Normalize/t/norm.t		Unicode::Normalize
 dist/Unicode-Normalize/t/null.t		Unicode::Normalize
-dist/Unicode-Normalize/t/partial1.t		Unicode::Normalize
-dist/Unicode-Normalize/t/partial2.t		Unicode::Normalize
+dist/Unicode-Normalize/t/partial1.t	Unicode::Normalize
+dist/Unicode-Normalize/t/partial2.t	Unicode::Normalize
 dist/Unicode-Normalize/t/proto.t	Unicode::Normalize
 dist/Unicode-Normalize/t/split.t	Unicode::Normalize
 dist/Unicode-Normalize/t/test.t		Unicode::Normalize
 dist/Unicode-Normalize/t/tie.t		Unicode::Normalize
-dist/XSLoader/Makefile.PL	Dynamic Loader makefile writer
-dist/XSLoader/t/XSLoader.t	See if XSLoader works
-dist/XSLoader/XSLoader_pm.PL	Simple XS Loader perl module
-doio.c			I/O operations
-doop.c			Support code for various operations
-dosish.h		Some defines for MS/DOSish machines
-dquote.c		Functions for double quotish contexts
-dump.c			Debugging output
-ebcdic_tables.h		Generated tables included in utfebcdic.h
-embed.fnc		Database used by embed.pl
-embed.h			Maps symbols to safer names
-embedvar.h		C namespace management
+dist/XSLoader/Makefile.PL		Dynamic Loader makefile writer
+dist/XSLoader/t/XSLoader.t		See if XSLoader works
+dist/XSLoader/XSLoader_pm.PL		Simple XS Loader perl module
 ext/Amiga-ARexx/__examples/simplecommand.pl	Amiga::ARexx extension
 ext/Amiga-ARexx/__examples/simplehost.pl	Amiga::ARexx extension
-ext/Amiga-ARexx/ARexx.pm	Amiga::ARexx extension
-ext/Amiga-ARexx/ARexx.xs	Amiga::ARexx extension
-ext/Amiga-ARexx/Makefile.PL	Amiga::ARexx extension
+ext/Amiga-ARexx/ARexx.pm			Amiga::ARexx extension
+ext/Amiga-ARexx/ARexx.xs			Amiga::ARexx extension
+ext/Amiga-ARexx/Makefile.PL			Amiga::ARexx extension
 ext/Amiga-ARexx/tagtypes.h			Amiga::ARexx extension
-ext/Amiga-ARexx/typemap	Amiga::ARexx extension
+ext/Amiga-ARexx/typemap				Amiga::ARexx extension
 ext/Amiga-Exec/__examples/simplecommand.pl	Amiga::Exec extension
 ext/Amiga-Exec/__examples/simplehost.pl		Amiga::Exec extension
-ext/Amiga-Exec/Exec.pm	Amiga::Exec extension
-ext/Amiga-Exec/Exec.xs	Amiga::Exec extension
+ext/Amiga-Exec/Exec.pm				Amiga::Exec extension
+ext/Amiga-Exec/Exec.xs				Amiga::Exec extension
 ext/Amiga-Exec/Makefile.PL			Amiga::Exec extension
-ext/Amiga-Exec/tagtypes.h	Amiga::Exec extension
-ext/Amiga-Exec/typemap		Amiga::Exec extension
+ext/Amiga-Exec/tagtypes.h			Amiga::Exec extension
+ext/Amiga-Exec/typemap				Amiga::Exec extension
 ext/attributes/attributes.pm		For "sub foo : attrlist"
 ext/attributes/attributes.xs		For "sub foo : attrlist"
-ext/B/B.pm		Compiler backend support functions and methods
-ext/B/B.xs		Compiler backend external subroutines
-ext/B/B/Concise.pm	Compiler Concise backend
-ext/B/B/Showlex.pm	Compiler Showlex backend
-ext/B/B/Terse.pm	Compiler Terse backend
-ext/B/B/Xref.pm		Compiler Xref backend
-ext/B/hints/darwin.pl	Hints for named architecture
-ext/B/Makefile.PL	Compiler backend makefile writer
-ext/B/O.pm		Compiler front-end module (-MO=...)
-ext/B/t/b.t		See if B works
-ext/B/t/B/success.pm	Test module for ext/B/t/o.t
-ext/B/t/concise.t	See whether B::Concise works
-ext/B/t/concise-xs.t	See whether B::Concise recognizes XS functions
-ext/B/t/f_map			code from perldoc -f map
-ext/B/t/f_map.t			converted to optreeCheck()s
-ext/B/t/f_sort			optree test raw material
-ext/B/t/f_sort.t		optree test raw material
-ext/B/t/invlist.t		test B::INVLIST
-ext/B/t/o.t		See if O works
-ext/B/t/optree_check.t		test OptreeCheck apparatus
-ext/B/t/optree_concise.t	more B::Concise tests
-ext/B/t/optree_constants.t	B::Concise rendering of optimized constant subs
-ext/B/t/optree_for.t		for loops
-ext/B/t/optree_misc.t		misc optree tests
-ext/B/t/optree_samples.t	various basic codes: if for while
-ext/B/t/optree_sort.t		inplace sort optimization regression
-ext/B/t/optree_specials.t	BEGIN, END, etc code
-ext/B/t/optree_varinit.t	my,our,local var init optimization
-ext/B/t/OptreeCheck.pm		optree comparison tool
-ext/B/t/perlstring.t	See if B::perlstring output roundtrips properly
-ext/B/t/pragma.t	See if user pragmas work.
-ext/B/t/showlex.t	See if B::ShowLex works
-ext/B/t/strict.t	See if B works with strict and warnings.
-ext/B/t/sv_stash.t	See if SvSTASH() works
-ext/B/t/terse.t		See if B::Terse works
-ext/B/t/walkoptree.t	See if B::walkoptree (and friends) work
-ext/B/t/xref.t		See if B::Xref works
-ext/B/typemap			Compiler backend interface types
-ext/Devel-Peek/Changes		Data debugging tool, changelog
-ext/Devel-Peek/Peek.pm		Data debugging tool, module and pod
-ext/Devel-Peek/Peek.xs		Data debugging tool, externals
-ext/Devel-Peek/t/Peek.t		See if Devel::Peek works
-ext/DynaLoader/dl_aix.xs	AIX implementation
-ext/DynaLoader/dl_dllload.xs	S/390 dllload() style implementation
-ext/DynaLoader/dl_dlopen.xs	BSD/SunOS4&5 dlopen() style implementation
-ext/DynaLoader/dl_dyld.xs	NeXT/Apple dyld implementation
-ext/DynaLoader/dl_freemint.xs	GNU dld style implementation for FreeMINT
-ext/DynaLoader/dl_hpux.xs	HP-UX implementation
-ext/DynaLoader/dl_none.xs	Stub implementation
-ext/DynaLoader/dl_vms.xs	VMS implementation
-ext/DynaLoader/dl_win32.xs	Win32 implementation
-ext/DynaLoader/dlutils.c	Dynamic loader utilities for dl_*.xs files
-ext/DynaLoader/DynaLoader_pm.PL	Dynamic Loader perl module
-ext/DynaLoader/hints/aix.pl	Hint for DynaLoader for named architecture
-ext/DynaLoader/hints/android.pl	Hint for DynaLoader for named architecture
+ext/B/B.pm				Compiler backend support functions and methods
+ext/B/B.xs				Compiler backend external subroutines
+ext/B/B/Concise.pm			Compiler Concise backend
+ext/B/B/Showlex.pm			Compiler Showlex backend
+ext/B/B/Terse.pm			Compiler Terse backend
+ext/B/B/Xref.pm				Compiler Xref backend
+ext/B/hints/darwin.pl			Hints for named architecture
+ext/B/Makefile.PL			Compiler backend makefile writer
+ext/B/O.pm				Compiler front-end module (-MO=...)
+ext/B/t/b.t				See if B works
+ext/B/t/B/success.pm			Test module for ext/B/t/o.t
+ext/B/t/bool.t				See if B works for bool
+ext/B/t/concise.t			See whether B::Concise works
+ext/B/t/concise-xs.t			See whether B::Concise recognizes XS functions
+ext/B/t/f_map				code from perldoc -f map
+ext/B/t/f_map.t				converted to optreeCheck()s
+ext/B/t/f_sort				optree test raw material
+ext/B/t/f_sort.t			optree test raw material
+ext/B/t/invlist.t			test B::INVLIST
+ext/B/t/o.t				See if O works
+ext/B/t/optree_check.t			test OptreeCheck apparatus
+ext/B/t/optree_concise.t		more B::Concise tests
+ext/B/t/optree_constants.t		B::Concise rendering of optimized constant subs
+ext/B/t/optree_for.t			for loops
+ext/B/t/optree_misc.t			misc optree tests
+ext/B/t/optree_samples.t		various basic codes: if for while
+ext/B/t/optree_sort.t			inplace sort optimization regression
+ext/B/t/optree_specials.t		BEGIN, END, etc code
+ext/B/t/optree_varinit.t		my,our,local var init optimization
+ext/B/t/OptreeCheck.pm			optree comparison tool
+ext/B/t/perlstring.t			See if B::perlstring output roundtrips properly
+ext/B/t/pragma.t			See if user pragmas work.
+ext/B/t/showlex.t			See if B::ShowLex works
+ext/B/t/strict.t			See if B works with strict and warnings.
+ext/B/t/sv_stash.t			See if SvSTASH() works
+ext/B/t/terse.t				See if B::Terse works
+ext/B/t/walkoptree.t			See if B::walkoptree (and friends) work
+ext/B/t/xref.t				See if B::Xref works
+ext/B/typemap				Compiler backend interface types
+ext/Devel-Peek/Changes			Data debugging tool, changelog
+ext/Devel-Peek/Peek.pm			Data debugging tool, module and pod
+ext/Devel-Peek/Peek.xs			Data debugging tool, externals
+ext/Devel-Peek/t/Peek.t			See if Devel::Peek works
+ext/DynaLoader/dl_aix.xs		AIX implementation
+ext/DynaLoader/dl_dllload.xs		S/390 dllload() style implementation
+ext/DynaLoader/dl_dlopen.xs		BSD/SunOS4&5 dlopen() style implementation
+ext/DynaLoader/dl_dyld.xs		NeXT/Apple dyld implementation
+ext/DynaLoader/dl_freemint.xs		GNU dld style implementation for FreeMINT
+ext/DynaLoader/dl_hpux.xs		HP-UX implementation
+ext/DynaLoader/dl_none.xs		Stub implementation
+ext/DynaLoader/dl_vms.xs		VMS implementation
+ext/DynaLoader/dl_win32.xs		Win32 implementation
+ext/DynaLoader/dlutils.c		Dynamic loader utilities for dl_*.xs files
+ext/DynaLoader/DynaLoader_pm.PL		Dynamic Loader perl module
+ext/DynaLoader/hints/aix.pl		Hint for DynaLoader for named architecture
+ext/DynaLoader/hints/android.pl		Hint for DynaLoader for named architecture
 ext/DynaLoader/hints/gnukfreebsd.pl	Hint for DynaLoader for named architecture
 ext/DynaLoader/hints/gnuknetbsd.pl	Hint for DynaLoader for named architecture
-ext/DynaLoader/hints/linux.pl	Hint for DynaLoader for named architecture
-ext/DynaLoader/hints/netbsd.pl	Hint for DynaLoader for named architecture
-ext/DynaLoader/hints/openbsd.pl	Hint for DynaLoader for named architecture
-ext/DynaLoader/Makefile.PL	Dynamic Loader makefile writer
-ext/DynaLoader/README		Dynamic Loader notes and intro
-ext/DynaLoader/t/DynaLoader.t	See if DynaLoader works
-ext/Errno/ChangeLog	Errno changes
-ext/Errno/Errno_pm.PL	Errno perl module create script
-ext/Errno/Makefile.PL	Errno extension makefile writer
-ext/Errno/t/Errno.t	See if Errno works
+ext/DynaLoader/hints/linux.pl		Hint for DynaLoader for named architecture
+ext/DynaLoader/hints/netbsd.pl		Hint for DynaLoader for named architecture
+ext/DynaLoader/hints/openbsd.pl		Hint for DynaLoader for named architecture
+ext/DynaLoader/Makefile.PL		Dynamic Loader makefile writer
+ext/DynaLoader/README			Dynamic Loader notes and intro
+ext/DynaLoader/t/DynaLoader.t		See if DynaLoader works
+ext/Errno/ChangeLog			Errno changes
+ext/Errno/Errno_pm.PL			Errno perl module create script
+ext/Errno/Makefile.PL			Errno extension makefile writer
+ext/Errno/t/Errno.t			See if Errno works
 ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm	Writes {mini,}perlmain.c
-ext/Fcntl/Fcntl.pm	Fcntl extension Perl module
-ext/Fcntl/Fcntl.xs	Fcntl extension external subroutines
-ext/Fcntl/Makefile.PL	Fcntl extension makefile writer
-ext/Fcntl/t/autoload.t	See if Fcntl AUTOLOAD error messages work
-ext/Fcntl/t/fcntl.t	See if Fcntl works
-ext/Fcntl/t/mode.t	See if S_ISREG() and S_ISDIR() work
-ext/Fcntl/t/syslfs.t	See if large files work for sysio
+ext/Fcntl/Fcntl.pm			Fcntl extension Perl module
+ext/Fcntl/Fcntl.xs			Fcntl extension external subroutines
+ext/Fcntl/Makefile.PL			Fcntl extension makefile writer
+ext/Fcntl/t/autoload.t			See if Fcntl AUTOLOAD error messages work
+ext/Fcntl/t/fcntl.t			See if Fcntl works
+ext/Fcntl/t/mode.t			See if S_ISREG() and S_ISDIR() work
+ext/Fcntl/t/syslfs.t			See if large files work for sysio
 ext/File-DosGlob/DosGlob.xs		Win32 DOS-globbing module
 ext/File-DosGlob/lib/File/DosGlob.pm	Win32 DOS-globbing module
 ext/File-DosGlob/t/DosGlob.t		See if File::DosGlob works
-ext/File-Find/lib/File/Find.pm	Routines to do a find
-ext/File-Find/t/find.t		See if File::Find works
-ext/File-Find/t/lib/Testing.pm		Functions used in testing File-find
-ext/File-Find/t/taint.t		See if File::Find works with taint
-ext/File-Glob/bsd_glob.c	File::Glob extension run time code
-ext/File-Glob/bsd_glob.h	File::Glob extension header file
-ext/File-Glob/Changes		File::Glob extension changelog
-ext/File-Glob/Glob.pm		File::Glob extension module
-ext/File-Glob/Glob.xs		File::Glob extension external subroutines
-ext/File-Glob/Makefile.PL	File::Glob extension makefile writer
-ext/File-Glob/t/basic.t		See if File::Glob works
-ext/File-Glob/t/case.t		See if File::Glob works
-ext/File-Glob/t/global.t	See if File::Glob works
-ext/File-Glob/t/rt114984.t	See if File::Glob works
-ext/File-Glob/t/rt131211.t	See if File::Glob works
-ext/File-Glob/t/taint.t		See if File::Glob works
-ext/File-Glob/t/threads.t	See if File::Glob + threads works
-ext/File-Glob/TODO		File::Glob extension todo list
-ext/FileCache/lib/FileCache.pm	Keep more files open than the system permits
-ext/FileCache/t/01open.t	See if FileCache works
-ext/FileCache/t/02maxopen.t	See if FileCache works
-ext/FileCache/t/03append.t	See if FileCache works
-ext/FileCache/t/04twoarg.t	See if FileCache works
-ext/FileCache/t/05override.t	See if FileCache works
-ext/FileCache/t/06export.t	See if FileCache exporting works
-ext/FileCache/t/07noimport.t	See if FileCache works without importing
-ext/GDBM_File/GDBM_File.pm	GDBM extension Perl module
-ext/GDBM_File/GDBM_File.xs	GDBM extension external subroutines
-ext/GDBM_File/hints/sco.pl	Hint for GDBM_File for named architecture
-ext/GDBM_File/Makefile.PL	GDBM extension makefile writer
-ext/GDBM_File/t/count.t		Test if the count method works
-ext/GDBM_File/t/dump.t		Test if export/import methods work
-ext/GDBM_File/t/fatal.t		Test the fatal_func argument to gdbm_open
-ext/GDBM_File/t/gdbm.t		See if GDBM_File works
-ext/GDBM_File/t/opt.t		Test if gdbm_setopt and derived methods work
-ext/GDBM_File/t/snapshot.t	Test if the latest_snapshot method works
-ext/GDBM_File/typemap		GDBM extension interface types
-ext/Hash-Util/Changes		Change history of Hash::Util
-ext/Hash-Util/lib/Hash/Util.pm	Hash::Util
-ext/Hash-Util/Makefile.PL	Makefile for Hash::Util
-ext/Hash-Util/t/builtin.t	See if Hash::Util builtin exports work as expected
-ext/Hash-Util/t/Util.t		See if Hash::Util works
-ext/Hash-Util/Util.xs		XS bits of Hash::Util
-ext/Hash-Util-FieldHash/Changes			Changes for Hash::Util::FieldHash
-ext/Hash-Util-FieldHash/FieldHash.xs		XS portion
+ext/File-Find/lib/File/Find.pm				Routines to do a find
+ext/File-Find/t/correct-absolute-path-with-follow.t
+ext/File-Find/t/find.t					See if File::Find works
+ext/File-Find/t/lib/Testing.pm				Functions used in testing File-find
+ext/File-Find/t/taint.t					See if File::Find works with taint
+ext/File-Glob/bsd_glob.c		File::Glob extension run time code
+ext/File-Glob/bsd_glob.h		File::Glob extension header file
+ext/File-Glob/Changes			File::Glob extension changelog
+ext/File-Glob/Glob.pm			File::Glob extension module
+ext/File-Glob/Glob.xs			File::Glob extension external subroutines
+ext/File-Glob/Makefile.PL		File::Glob extension makefile writer
+ext/File-Glob/t/basic.t			See if File::Glob works
+ext/File-Glob/t/case.t			See if File::Glob works
+ext/File-Glob/t/global.t		See if File::Glob works
+ext/File-Glob/t/rt114984.t		See if File::Glob works
+ext/File-Glob/t/rt131211.t		See if File::Glob works
+ext/File-Glob/t/taint.t			See if File::Glob works
+ext/File-Glob/t/threads.t		See if File::Glob + threads works
+ext/File-Glob/TODO			File::Glob extension todo list
+ext/FileCache/lib/FileCache.pm		Keep more files open than the system permits
+ext/FileCache/t/01open.t		See if FileCache works
+ext/FileCache/t/02maxopen.t		See if FileCache works
+ext/FileCache/t/03append.t		See if FileCache works
+ext/FileCache/t/04twoarg.t		See if FileCache works
+ext/FileCache/t/05override.t		See if FileCache works
+ext/FileCache/t/06export.t		See if FileCache exporting works
+ext/FileCache/t/07noimport.t		See if FileCache works without importing
+ext/GDBM_File/GDBM_File.pm		GDBM extension Perl module
+ext/GDBM_File/GDBM_File.xs		GDBM extension external subroutines
+ext/GDBM_File/hints/sco.pl		Hint for GDBM_File for named architecture
+ext/GDBM_File/Makefile.PL		GDBM extension makefile writer
+ext/GDBM_File/t/count.t			Test if the count method works
+ext/GDBM_File/t/dump.t			Test if export/import methods work
+ext/GDBM_File/t/fatal.t			Test the fatal_func argument to gdbm_open
+ext/GDBM_File/t/gdbm.t			See if GDBM_File works
+ext/GDBM_File/t/opt.t			Test if gdbm_setopt and derived methods work
+ext/GDBM_File/t/snapshot.t		Test if the latest_snapshot method works
+ext/GDBM_File/typemap			GDBM extension interface types
+ext/Hash-Util/Changes			Change history of Hash::Util
+ext/Hash-Util/lib/Hash/Util.pm		Hash::Util
+ext/Hash-Util/Makefile.PL		Makefile for Hash::Util
+ext/Hash-Util/t/builtin.t		See if Hash::Util builtin exports work as expected
+ext/Hash-Util/t/Util.t			See if Hash::Util works
+ext/Hash-Util/Util.xs			XS bits of Hash::Util
+ext/Hash-Util-FieldHash/Changes				Changes for Hash::Util::FieldHash
+ext/Hash-Util-FieldHash/FieldHash.xs			XS portion
 ext/Hash-Util-FieldHash/lib/Hash/Util/FieldHash.pm	Perl portion and documentation
-ext/Hash-Util-FieldHash/t/01_load.t		Test script
-ext/Hash-Util-FieldHash/t/02_function.t		Test script
-ext/Hash-Util-FieldHash/t/03_class.t		Test script
-ext/Hash-Util-FieldHash/t/04_thread.t		Test script
-ext/Hash-Util-FieldHash/t/05_perlhook.t		Test script
-ext/Hash-Util-FieldHash/t/11_hashassign.t	Adapted from t/op/hashassign.t
-ext/Hash-Util-FieldHash/t/12_hashwarn.t		Adapted from t/op/hashwarn.t
-ext/I18N-Langinfo/Langinfo.pm	I18N::Langinfo
-ext/I18N-Langinfo/Langinfo.xs	I18N::Langinfo
-ext/I18N-Langinfo/Makefile.PL	I18N::Langinfo
-ext/I18N-Langinfo/t/Langinfo.t	See whether I18N::Langinfo works
-ext/IPC-Open3/lib/IPC/Open2.pm	Open a two-ended pipe
-ext/IPC-Open3/lib/IPC/Open3.pm	Open a three-ended pipe
-ext/IPC-Open3/t/fd.t		See if IPC::Open3 works w/ file descriptors
-ext/IPC-Open3/t/IPC-Open2.t	See if IPC::Open2 works
-ext/IPC-Open3/t/IPC-Open3.t	See if IPC::Open3 works
-ext/mro/Changes			mro extension
-ext/mro/mro.pm			mro extension
-ext/mro/mro.xs			mro extension
-ext/NDBM_File/hints/cygwin.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/dec_osf.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/dynixptx.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/gnu.pl	Hint for NDBM_File for named architecture
+ext/Hash-Util-FieldHash/t/01_load.t			Test script
+ext/Hash-Util-FieldHash/t/02_function.t			Test script
+ext/Hash-Util-FieldHash/t/03_class.t			Test script
+ext/Hash-Util-FieldHash/t/04_thread.t			Test script
+ext/Hash-Util-FieldHash/t/05_perlhook.t			Test script
+ext/Hash-Util-FieldHash/t/11_hashassign.t		Adapted from t/op/hashassign.t
+ext/Hash-Util-FieldHash/t/12_hashwarn.t			Adapted from t/op/hashwarn.t
+ext/I18N-Langinfo/Langinfo.pm		I18N::Langinfo
+ext/I18N-Langinfo/Langinfo.xs		I18N::Langinfo
+ext/I18N-Langinfo/Makefile.PL		I18N::Langinfo
+ext/I18N-Langinfo/t/Langinfo.t		See whether I18N::Langinfo works
+ext/IPC-Open3/lib/IPC/Open2.pm		Open a two-ended pipe
+ext/IPC-Open3/lib/IPC/Open3.pm		Open a three-ended pipe
+ext/IPC-Open3/t/fd.t			See if IPC::Open3 works w/ file descriptors
+ext/IPC-Open3/t/IPC-Open2.t		See if IPC::Open2 works
+ext/IPC-Open3/t/IPC-Open3.t		See if IPC::Open3 works
+ext/mro/Changes				mro extension
+ext/mro/mro.pm				mro extension
+ext/mro/mro.xs				mro extension
+ext/NDBM_File/hints/cygwin.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/dec_osf.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/dynixptx.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/gnu.pl		Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/gnukfreebsd.pl	Hint for NDBM_File for named architecture
 ext/NDBM_File/hints/gnuknetbsd.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/linux.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/MSWin32.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/sco.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/solaris.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/hints/svr4.pl	Hint for NDBM_File for named architecture
-ext/NDBM_File/Makefile.PL	NDBM extension makefile writer
-ext/NDBM_File/NDBM_File.pm	NDBM extension Perl module
-ext/NDBM_File/NDBM_File.xs	NDBM extension external subroutines
-ext/NDBM_File/t/ndbm.t		See if NDBM_File works
-ext/NDBM_File/typemap		NDBM extension interface types
-ext/ODBM_File/hints/cygwin.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/dec_osf.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/gnu.pl	Hint for ODBM_File for named architecture
+ext/NDBM_File/hints/linux.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/MSWin32.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/sco.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/solaris.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/hints/svr4.pl		Hint for NDBM_File for named architecture
+ext/NDBM_File/Makefile.PL		NDBM extension makefile writer
+ext/NDBM_File/NDBM_File.pm		NDBM extension Perl module
+ext/NDBM_File/NDBM_File.xs		NDBM extension external subroutines
+ext/NDBM_File/t/ndbm.t			See if NDBM_File works
+ext/NDBM_File/typemap			NDBM extension interface types
+ext/ODBM_File/hints/cygwin.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/dec_osf.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/gnu.pl		Hint for ODBM_File for named architecture
 ext/ODBM_File/hints/gnukfreebsd.pl	Hint for NDBM_File for named architecture
 ext/ODBM_File/hints/gnuknetbsd.pl	Hint for NDBM_File for named architecture
-ext/ODBM_File/hints/hpux.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/linux.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/MSWin32.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/sco.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/solaris.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/svr4.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/hints/ultrix.pl	Hint for ODBM_File for named architecture
-ext/ODBM_File/Makefile.PL	ODBM extension makefile writer
-ext/ODBM_File/ODBM_File.pm	ODBM extension Perl module
-ext/ODBM_File/ODBM_File.xs	ODBM extension external subroutines
-ext/ODBM_File/t/odbm.t		See if ODBM_File works
-ext/ODBM_File/typemap		ODBM extension interface types
-ext/Opcode/Opcode.pm		Opcode extension Perl module
-ext/Opcode/Opcode.xs		Opcode extension external subroutines
-ext/Opcode/ops.pm		"Pragma" form of Opcode extension Perl module
-ext/Opcode/t/Opcode.t		See if Opcode works
-ext/Opcode/t/ops.t		See if Opcode works
-ext/PerlIO-encoding/encoding.pm	PerlIO::encoding
-ext/PerlIO-encoding/encoding.xs	PerlIO::encoding
+ext/ODBM_File/hints/hpux.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/linux.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/MSWin32.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/sco.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/solaris.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/hints/svr4.pl		Hint for ODBM_File for named architecture
+ext/ODBM_File/Makefile.PL		ODBM extension makefile writer
+ext/ODBM_File/ODBM_File.pm		ODBM extension Perl module
+ext/ODBM_File/ODBM_File.xs		ODBM extension external subroutines
+ext/ODBM_File/t/odbm.t			See if ODBM_File works
+ext/ODBM_File/typemap			ODBM extension interface types
+ext/Opcode/Opcode.pm			Opcode extension Perl module
+ext/Opcode/Opcode.xs			Opcode extension external subroutines
+ext/Opcode/ops.pm			"Pragma" form of Opcode extension Perl module
+ext/Opcode/t/Opcode.t			See if Opcode works
+ext/Opcode/t/ops.t			See if Opcode works
+ext/PerlIO-encoding/encoding.pm		PerlIO::encoding
+ext/PerlIO-encoding/encoding.xs		PerlIO::encoding
 ext/PerlIO-encoding/t/encoding.t	See if PerlIO encoding conversion works
 ext/PerlIO-encoding/t/fallback.t	See if PerlIO fallbacks work
 ext/PerlIO-encoding/t/nolooping.t	Tests for PerlIO::encoding
 ext/PerlIO-encoding/t/threads.t		Tests PerlIO::encoding and threads
-ext/PerlIO-mmap/mmap.pm	PerlIO layer for memory maps
-ext/PerlIO-mmap/mmap.xs	PerlIO layer for memory maps
-ext/PerlIO-scalar/scalar.pm	PerlIO layer for scalars
-ext/PerlIO-scalar/scalar.xs	PerlIO layer for scalars
-ext/PerlIO-scalar/t/scalar.t	See if PerlIO::scalar works
+ext/PerlIO-mmap/mmap.pm			PerlIO layer for memory maps
+ext/PerlIO-mmap/mmap.xs			PerlIO layer for memory maps
+ext/PerlIO-scalar/scalar.pm		PerlIO layer for scalars
+ext/PerlIO-scalar/scalar.xs		PerlIO layer for scalars
+ext/PerlIO-scalar/t/scalar.t		See if PerlIO::scalar works
 ext/PerlIO-scalar/t/scalar_ungetc.t	Tests for PerlIO layer for scalars
-ext/PerlIO-via/hints/aix.pl	Hint for PerlIO::via for named architecture
+ext/PerlIO-via/hints/aix.pl		Hint for PerlIO::via for named architecture
 ext/PerlIO-via/t/thread.t		See if PerlIO::via works with threads
-ext/PerlIO-via/t/via.t		See if PerlIO::via works
-ext/PerlIO-via/via.pm		PerlIO layer for layers in perl
-ext/PerlIO-via/via.xs		PerlIO layer for layers in perl
+ext/PerlIO-via/t/via.t			See if PerlIO::via works
+ext/PerlIO-via/via.pm			PerlIO layer for layers in perl
+ext/PerlIO-via/via.xs			PerlIO layer for layers in perl
 ext/Pod-Functions/Functions_pm.PL	Writes Functions.pm
 ext/Pod-Functions/Makefile.PL		Makefile writer
 ext/Pod-Functions/t/Functions.t		See if Pod::Functions works
-ext/Pod-Html/bin/pod2html	Translator to turn pod into HTML
+ext/Pod-Html/bin/pod2html			Translator to turn pod into HTML
 ext/Pod-Html/corpus/perlpodspec-copy.pod
 ext/Pod-Html/corpus/perlvar-copy.pod
-ext/Pod-Html/lib/Pod/Html.pm	Convert POD data to HTML
-ext/Pod-Html/lib/Pod/Html/Util.pm	Helper functions for Pod-Html
+ext/Pod-Html/lib/Pod/Html.pm			Convert POD data to HTML
+ext/Pod-Html/lib/Pod/Html/Util.pm		Helper functions for Pod-Html
 ext/Pod-Html/t/anchorify.t
-ext/Pod-Html/t/anchorify-536.t	Test Pod-Html utility functions during perl-5.36
 ext/Pod-Html/t/cache.pod
 ext/Pod-Html/t/cache.t
 ext/Pod-Html/t/crossref.pod
 ext/Pod-Html/t/crossref.t
 ext/Pod-Html/t/crossref2.t
 ext/Pod-Html/t/crossref3.t
-ext/Pod-Html/t/eol.t		test end of line agnosticism
+ext/Pod-Html/t/eol.t				test end of line agnosticism
 ext/Pod-Html/t/feature.pod
 ext/Pod-Html/t/feature.t
 ext/Pod-Html/t/feature2.pod
@@ -4486,623 +4714,601 @@ ext/Pod-Html/t/htmldir4.pod
 ext/Pod-Html/t/htmldir4.t
 ext/Pod-Html/t/htmldir5.pod
 ext/Pod-Html/t/htmldir5.t
-ext/Pod-Html/t/htmlescp.pod	pod2html escape test input data
-ext/Pod-Html/t/htmlescp.t	pod2html escape test
-ext/Pod-Html/t/htmllink.pod	pod2html link test input data
-ext/Pod-Html/t/htmllink.t	pod2html link test
-ext/Pod-Html/t/htmlview.pod	pod2html render test input data
-ext/Pod-Html/t/htmlview.t	pod2html render test
-ext/Pod-Html/t/lib/Testing.pm	Testing functions for Pod-Html
+ext/Pod-Html/t/htmlescp.pod			pod2html escape test input data
+ext/Pod-Html/t/htmlescp.t			pod2html escape test
+ext/Pod-Html/t/htmllink.pod			pod2html link test input data
+ext/Pod-Html/t/htmllink.t			pod2html link test
+ext/Pod-Html/t/htmlview.pod			pod2html render test input data
+ext/Pod-Html/t/htmlview.t			pod2html render test
+ext/Pod-Html/t/lib/Testing.pm			Testing functions for Pod-Html
 ext/Pod-Html/t/poderr.pod
 ext/Pod-Html/t/poderr.t
 ext/Pod-Html/t/podnoerr.pod
 ext/Pod-Html/t/podnoerr.t
-ext/POSIX/hints/bsdos.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/dynixptx.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/freebsd.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/gnukfreebsd.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/gnuknetbsd.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/linux.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/mint.pl		Hint for POSIX for named architecture
-ext/POSIX/hints/netbsd.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/openbsd.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/sunos_4.pl	Hint for POSIX for named architecture
-ext/POSIX/hints/svr4.pl		Hint for POSIX for named architecture
-ext/POSIX/lib/POSIX.pm		POSIX extension Perl module
-ext/POSIX/lib/POSIX.pod		POSIX extension documentation
-ext/POSIX/Makefile.PL		POSIX extension makefile writer
-ext/POSIX/POSIX.xs		POSIX extension external subroutines
-ext/POSIX/t/export.t		Test @EXPORT and @EXPORT_OK
-ext/POSIX/t/fenv.t		Floating-point rounding mode tests for POSIX
-ext/POSIX/t/iscrash		See if POSIX isxxx() crashes with threads on Win32
-ext/POSIX/t/iv_const.t		See if integer constants of POSIX are IV
-ext/POSIX/t/math.t		Basic math tests for POSIX
-ext/POSIX/t/mb.t		Multibyte function tests for POSIX
-ext/POSIX/t/posix.t		See if POSIX works
-ext/POSIX/t/sigaction.t		See if POSIX::sigaction works
-ext/POSIX/t/sigset.t		See if POSIX::SigSet works
-ext/POSIX/t/strerror_errno.t	See if POSIX:strerror doesn't trash $!
-ext/POSIX/t/sysconf.t		See if POSIX works
-ext/POSIX/t/taint.t		See if POSIX works with taint
-ext/POSIX/t/termios.t		See if POSIX works
-ext/POSIX/t/time.t		See if POSIX time-related functions work
-ext/POSIX/t/unimplemented.t	Test the diagnostics for unimplemented functions
-ext/POSIX/t/usage.t		Test the diagnostics for usage messages
-ext/POSIX/t/waitpid.t		See if waitpid works
-ext/POSIX/t/wrappers.t		Test the POSIX wrapper subroutines
-ext/POSIX/typemap		POSIX extension interface types
-ext/re/Makefile.PL		re extension makefile writer
-ext/re/re.pm			re extension Perl module
-ext/re/re.xs			re extension external subroutines
-ext/re/re_comp.h		re extension wrapper for regcomp.h
-ext/re/re_top.h			re extension symbol hiding header
-ext/re/t/lexical_debug.pl	generate debug output for lexical re 'debug'
-ext/re/t/lexical_debug.t	test that lexical re 'debug' works
-ext/re/t/qr.t			test that qr// is a Regexp
-ext/re/t/re.t			see if re pragma works
-ext/re/t/re_funcs.t		See if exportable 're' funcs in re.xs work
-ext/re/t/re_funcs_u.t		See if exportable 're' funcs in universal.c work
-ext/re/t/reflags.t		see if re '/xism' pragma works
-ext/re/t/regop.pl		generate debug output for various patterns
-ext/re/t/regop.t		test RE optimizations by scraping debug output
-ext/re/t/strict.t		see if re 'strict' subpragma works
-ext/SDBM_File/biblio	SDBM kit
-ext/SDBM_File/CHANGES	SDBM kit
-ext/SDBM_File/dba.c	SDBM kit
-ext/SDBM_File/dbd.c	SDBM kit
-ext/SDBM_File/dbe.1	SDBM kit
-ext/SDBM_File/dbe.c	SDBM kit
-ext/SDBM_File/dbu.c	SDBM kit
-ext/SDBM_File/grind	SDBM kit
-ext/SDBM_File/hash.c	SDBM kit
-ext/SDBM_File/Makefile.PL	SDBM extension makefile writer
-ext/SDBM_File/pair.c	SDBM kit
-ext/SDBM_File/pair.h	SDBM kit
-ext/SDBM_File/README	SDBM kit
-ext/SDBM_File/readme.ms	SDBM kit
-ext/SDBM_File/README.too	SDBM kit
-ext/SDBM_File/sdbm.3	SDBM kit
-ext/SDBM_File/sdbm.c	SDBM kit
-ext/SDBM_File/sdbm.h	SDBM kit
-ext/SDBM_File/SDBM_File.pm	SDBM extension Perl module
-ext/SDBM_File/SDBM_File.xs	SDBM extension external subroutines
-ext/SDBM_File/t/constants.t	See if SDBM_File constants work
-ext/SDBM_File/t/corrupt.t	See if SDBM_File handles corrupt files
-ext/SDBM_File/t/prep.t		See if SDBM_File with extra argument works
-ext/SDBM_File/t/sdbm.t		See if SDBM_File works
-ext/SDBM_File/tune.h	SDBM kit
-ext/SDBM_File/typemap		SDBM extension interface types
-ext/SDBM_File/util.c	SDBM kit
-ext/Sys-Hostname/Hostname.pm	Sys::Hostname extension Perl module
-ext/Sys-Hostname/Hostname.xs	Sys::Hostname extension external subroutines
-ext/Sys-Hostname/t/Hostname.t	See if Sys::Hostname works
+ext/POSIX/hints/bsdos.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/dynixptx.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/freebsd.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/gnukfreebsd.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/gnuknetbsd.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/linux.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/mint.pl			Hint for POSIX for named architecture
+ext/POSIX/hints/netbsd.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/openbsd.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/sunos_4.pl		Hint for POSIX for named architecture
+ext/POSIX/hints/svr4.pl			Hint for POSIX for named architecture
+ext/POSIX/lib/POSIX.pm			POSIX extension Perl module
+ext/POSIX/lib/POSIX.pod			POSIX extension documentation
+ext/POSIX/Makefile.PL			POSIX extension makefile writer
+ext/POSIX/POSIX.xs			POSIX extension external subroutines
+ext/POSIX/t/export.t			Test @EXPORT and @EXPORT_OK
+ext/POSIX/t/fenv.t			Floating-point rounding mode tests for POSIX
+ext/POSIX/t/iscrash			See if POSIX isxxx() crashes with threads on Win32
+ext/POSIX/t/iv_const.t			See if integer constants of POSIX are IV
+ext/POSIX/t/math.t			Basic math tests for POSIX
+ext/POSIX/t/mb.t			Multibyte function tests for POSIX
+ext/POSIX/t/posix.t			See if POSIX works
+ext/POSIX/t/sigaction.t			See if POSIX::sigaction works
+ext/POSIX/t/sigset.t			See if POSIX::SigSet works
+ext/POSIX/t/strerror_errno.t		See if POSIX:strerror doesn't trash $!
+ext/POSIX/t/sysconf.t			See if POSIX works
+ext/POSIX/t/taint.t			See if POSIX works with taint
+ext/POSIX/t/termios.t			See if POSIX works
+ext/POSIX/t/time.t			See if POSIX time-related functions work
+ext/POSIX/t/unimplemented.t		Test the diagnostics for unimplemented functions
+ext/POSIX/t/usage.t			Test the diagnostics for usage messages
+ext/POSIX/t/waitpid.t			See if waitpid works
+ext/POSIX/t/wrappers.t			Test the POSIX wrapper subroutines
+ext/POSIX/typemap			POSIX extension interface types
+ext/re/Makefile.PL			re extension makefile writer
+ext/re/re.pm				re extension Perl module
+ext/re/re.xs				re extension external subroutines
+ext/re/re_comp.h			re extension wrapper for regcomp.h
+ext/re/re_top.h				re extension symbol hiding header
+ext/re/t/intflags.pl			Program used by intflags.t
+ext/re/t/intflags.t			Test that intflags are serialized properly
+ext/re/t/lexical_debug.pl		generate debug output for lexical re 'debug'
+ext/re/t/lexical_debug.t		test that lexical re 'debug' works
+ext/re/t/qr.t				test that qr// is a Regexp
+ext/re/t/re.t				see if re pragma works
+ext/re/t/re_funcs.t			See if exportable 're' funcs in re.xs work
+ext/re/t/re_funcs_u.t			See if exportable 're' funcs in universal.c work
+ext/re/t/reflags.t			see if re '/xism' pragma works
+ext/re/t/regop.pl			generate debug output for various patterns
+ext/re/t/regop.t			test RE optimizations by scraping debug output
+ext/re/t/strict.t			see if re 'strict' subpragma works
+ext/SDBM_File/biblio			SDBM kit
+ext/SDBM_File/CHANGES			SDBM kit
+ext/SDBM_File/dba.c			SDBM kit
+ext/SDBM_File/dbd.c			SDBM kit
+ext/SDBM_File/dbe.1			SDBM kit
+ext/SDBM_File/dbe.c			SDBM kit
+ext/SDBM_File/dbu.c			SDBM kit
+ext/SDBM_File/grind			SDBM kit
+ext/SDBM_File/hash.c			SDBM kit
+ext/SDBM_File/Makefile.PL		SDBM extension makefile writer
+ext/SDBM_File/pair.c			SDBM kit
+ext/SDBM_File/pair.h			SDBM kit
+ext/SDBM_File/README			SDBM kit
+ext/SDBM_File/readme.ms			SDBM kit
+ext/SDBM_File/README.too		SDBM kit
+ext/SDBM_File/sdbm.3			SDBM kit
+ext/SDBM_File/sdbm.c			SDBM kit
+ext/SDBM_File/sdbm.h			SDBM kit
+ext/SDBM_File/SDBM_File.pm		SDBM extension Perl module
+ext/SDBM_File/SDBM_File.xs		SDBM extension external subroutines
+ext/SDBM_File/t/constants.t		See if SDBM_File constants work
+ext/SDBM_File/t/corrupt.t		See if SDBM_File handles corrupt files
+ext/SDBM_File/t/prep.t			See if SDBM_File with extra argument works
+ext/SDBM_File/t/sdbm.t			See if SDBM_File works
+ext/SDBM_File/tune.h			SDBM kit
+ext/SDBM_File/typemap			SDBM extension interface types
+ext/SDBM_File/util.c			SDBM kit
+ext/Sys-Hostname/Hostname.pm		Sys::Hostname extension Perl module
+ext/Sys-Hostname/Hostname.xs		Sys::Hostname extension external subroutines
+ext/Sys-Hostname/t/Hostname.t		See if Sys::Hostname works
 ext/Tie-Hash-NamedCapture/NamedCapture.pm	Implements %- and %+ behaviour
 ext/Tie-Hash-NamedCapture/t/tiehash.t		Tests TIEHASH
 ext/Tie-Memoize/lib/Tie/Memoize.pm	Base class for memoized tied hashes
 ext/Tie-Memoize/t/Tie-Memoize.t		Test for Tie::Memoize
-ext/VMS-DCLsym/0README.txt	ReadMe file for VMS::DCLsym
-ext/VMS-DCLsym/DCLsym.pm	Perl access to CLI symbols
-ext/VMS-DCLsym/DCLsym.xs	Perl access to CLI symbols
-ext/VMS-DCLsym/Makefile.PL	MakeMaker driver for VMS::DCLsym
-ext/VMS-DCLsym/t/vms_dclsym.t	regression tests for VMS::DCLsym
+ext/VMS-DCLsym/0README.txt		ReadMe file for VMS::DCLsym
+ext/VMS-DCLsym/DCLsym.pm		Perl access to CLI symbols
+ext/VMS-DCLsym/DCLsym.xs		Perl access to CLI symbols
+ext/VMS-DCLsym/Makefile.PL		MakeMaker driver for VMS::DCLsym
+ext/VMS-DCLsym/t/vms_dclsym.t		regression tests for VMS::DCLsym
 ext/VMS-Filespec/lib/VMS/Filespec.pm	VMS-Unix file syntax interconversion
 ext/VMS-Filespec/t/filespec.t		See if VMS::Filespec functions work
-ext/VMS-Stdio/0README.txt	ReadMe file for VMS::Stdio
-ext/VMS-Stdio/Makefile.PL	MakeMaker driver for VMS::Stdio
-ext/VMS-Stdio/Stdio.pm		VMS options to stdio routines
-ext/VMS-Stdio/Stdio.xs		VMS options to stdio routines
-ext/VMS-Stdio/t/vms_stdio.t	regression tests for VMS::Stdio
-ext/Win32CORE/Makefile.PL	Win32CORE extension
-ext/Win32CORE/t/win32core.t	Win32CORE extension
-ext/Win32CORE/Win32CORE.c	Win32CORE extension
-ext/Win32CORE/Win32CORE.pm	Win32CORE extension (stubs for Win32 CORE subs)
-ext/XS-APItest/APItest.pm	XS::APItest extension
-ext/XS-APItest/APItest.xs	XS::APItest extension
-ext/XS-APItest/APItest_BS	autogenerate APItest.bs
-ext/XS-APItest/core.c		Test API functions when PERL_CORE is defined
-ext/XS-APItest/core_or_not.inc	Code common to core.c and notcore.c
-ext/XS-APItest/exception.c	XS::APItest extension
-ext/XS-APItest/Makefile.PL	XS::APItest extension
-ext/XS-APItest/notcore.c	Test API functions when PERL_CORE is not defined
-ext/XS-APItest/numeric.xs	XS::APItest wrappers for numeric.c
-ext/XS-APItest/t/addissub.t	test op check wrapping
-ext/XS-APItest/t/arrayexpr.t	test recursive descent expression parsing
-ext/XS-APItest/t/autoload.t	Test XS AUTOLOAD routines
-ext/XS-APItest/t/BHK.pm		Helper for ./blockhooks.t
-ext/XS-APItest/t/Block.pm	Helper for ./blockhooks.t
-ext/XS-APItest/t/blockasexpr.t	test recursive descent block parsing
-ext/XS-APItest/t/blockhooks.t	XS::APItest: tests for PL_blockhooks
-ext/XS-APItest/t/blockhooks-csc.t	XS::APItest: more tests for PL_blockhooks
-ext/XS-APItest/t/boolean.t	test SvIsBOOL
-ext/XS-APItest/t/boolean-thr.t	test SvIsBOOL on threads
-ext/XS-APItest/t/bootstrap.t	XS::APItest: test APItest.bs
-ext/XS-APItest/t/call.t		Test calling perl from C
-ext/XS-APItest/t/call_checker.t	test call checker plugin API
-ext/XS-APItest/t/caller.t	XS::APItest: tests for caller_cx
-ext/XS-APItest/t/callregexec.t	XS::APItest: tests for CALLREGEXEC()
-ext/XS-APItest/t/check_warnings.t	test scope of "Too late for CHECK"
-ext/XS-APItest/t/cleanup.t	test stack behaviour on unwinding
-ext/XS-APItest/t/clone-with-stack.t	test clone with CLONEf_COPY_STACKS works
-ext/XS-APItest/t/cophh.t	test COPHH API
-ext/XS-APItest/t/coplabel.t	test cop_*_label
-ext/XS-APItest/t/copstash.t	test alloccopstash
-ext/XS-APItest/t/copyhints.t	test hv_copy_hints_hv() API
-ext/XS-APItest/t/customop.t	XS::APItest: tests for custom ops
-ext/XS-APItest/t/cv_name.t	test cv_name
-ext/XS-APItest/t/delimcpy.t	test delimcpy
-ext/XS-APItest/t/eval-filter.t	Simple source filter/eval test
-ext/XS-APItest/t/exception.t	XS::APItest extension
-ext/XS-APItest/t/extend.t	test EXTEND() macro
-ext/XS-APItest/t/fetch_pad_names.t	Tests for UTF8 names in pad
-ext/XS-APItest/t/get.t		test get_sv et al.
-ext/XS-APItest/t/gotosub.t	XS::APItest: tests goto &xsub and hints
-ext/XS-APItest/t/grok.t		XS::APItest: tests for grok* functions
-ext/XS-APItest/t/gv_autoload4.t	XS::APItest: tests for gv_autoload4() and variants
-ext/XS-APItest/t/gv_const_sv.t	XS::APItest: test gv_const_sv()
-ext/XS-APItest/t/gv_fetchmeth.t		XS::APItest: tests for gv_fetchmeth() and variants
+ext/VMS-Stdio/0README.txt		ReadMe file for VMS::Stdio
+ext/VMS-Stdio/Makefile.PL		MakeMaker driver for VMS::Stdio
+ext/VMS-Stdio/Stdio.pm			VMS options to stdio routines
+ext/VMS-Stdio/Stdio.xs			VMS options to stdio routines
+ext/VMS-Stdio/t/vms_stdio.t		regression tests for VMS::Stdio
+ext/Win32CORE/Makefile.PL		Win32CORE extension
+ext/Win32CORE/t/win32core.t		Win32CORE extension
+ext/Win32CORE/Win32CORE.c		Win32CORE extension
+ext/Win32CORE/Win32CORE.pm		Win32CORE extension (stubs for Win32 CORE subs)
+ext/XS-APItest/APItest.pm			XS::APItest extension
+ext/XS-APItest/APItest.xs			XS::APItest extension
+ext/XS-APItest/APItest_BS			autogenerate APItest.bs
+ext/XS-APItest/core.c				Test API functions when PERL_CORE is defined
+ext/XS-APItest/core_or_not.inc			Code common to core.c and notcore.c
+ext/XS-APItest/exception.c			XS::APItest extension
+ext/XS-APItest/Makefile.PL			XS::APItest extension
+ext/XS-APItest/notcore.c			Test API functions when PERL_CORE is not defined
+ext/XS-APItest/numeric.xs			XS::APItest wrappers for numeric.c
+ext/XS-APItest/t/addissub.t			test op check wrapping
+ext/XS-APItest/t/arrayexpr.t			test recursive descent expression parsing
+ext/XS-APItest/t/autoload.t			Test XS AUTOLOAD routines
+ext/XS-APItest/t/BHK.pm				Helper for ./blockhooks.t
+ext/XS-APItest/t/Block.pm			Helper for ./blockhooks.t
+ext/XS-APItest/t/blockasexpr.t			test recursive descent block parsing
+ext/XS-APItest/t/blockhooks.t			XS::APItest: tests for PL_blockhooks
+ext/XS-APItest/t/blockhooks-csc.t		XS::APItest: more tests for PL_blockhooks
+ext/XS-APItest/t/boolean.t			test SvIsBOOL
+ext/XS-APItest/t/boolean-thr.t			test SvIsBOOL on threads
+ext/XS-APItest/t/bootstrap.t			XS::APItest: test APItest.bs
+ext/XS-APItest/t/call.t				Test calling perl from C
+ext/XS-APItest/t/call_checker.t			test call checker plugin API
+ext/XS-APItest/t/caller.t			XS::APItest: tests for caller_cx
+ext/XS-APItest/t/callregexec.t			XS::APItest: tests for CALLREGEXEC()
+ext/XS-APItest/t/check_warnings.t		test scope of "Too late for CHECK"
+ext/XS-APItest/t/cleanup.t			test stack behaviour on unwinding
+ext/XS-APItest/t/clone-with-stack.t		test clone with CLONEf_COPY_STACKS works
+ext/XS-APItest/t/cophh.t			test COPHH API
+ext/XS-APItest/t/coplabel.t			test cop_*_label
+ext/XS-APItest/t/copstash.t			test alloccopstash
+ext/XS-APItest/t/copyhints.t			test hv_copy_hints_hv() API
+ext/XS-APItest/t/customop.t			XS::APItest: tests for custom ops
+ext/XS-APItest/t/cv_name.t			test cv_name
+ext/XS-APItest/t/cv_refcounted_anysv.t		test CvREFCOUNTED_ANYSV
+ext/XS-APItest/t/delimcpy.t			test delimcpy
+ext/XS-APItest/t/eval-filter.t			Simple source filter/eval test
+ext/XS-APItest/t/exception.t			XS::APItest extension
+ext/XS-APItest/t/extend.t			test EXTEND() macro
+ext/XS-APItest/t/fetch_pad_names.t		Tests for UTF8 names in pad
+ext/XS-APItest/t/get.t				test get_sv et al.
+ext/XS-APItest/t/gotosub.t			XS::APItest: tests goto &xsub and hints
+ext/XS-APItest/t/grok.t				XS::APItest: tests for grok* functions
+ext/XS-APItest/t/gv_autoload4.t			XS::APItest: tests for gv_autoload4() and variants
+ext/XS-APItest/t/gv_const_sv.t			XS::APItest: test gv_const_sv()
+ext/XS-APItest/t/gv_fetchmeth.t			XS::APItest: tests for gv_fetchmeth() and variants
 ext/XS-APItest/t/gv_fetchmeth_autoload.t	XS::APItest: tests for gv_fetchmeth_autoload() and variants
-ext/XS-APItest/t/gv_fetchmethod_flags.t	XS::APItest: tests for gv_fetchmethod_flags() and variants
-ext/XS-APItest/t/gv_init.t	XS::APItest: tests for gv_init and variants
-ext/XS-APItest/t/handy00.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy01.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy02.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy03.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy04.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy05.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy06.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy07.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy08.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy09.t	XS::APItest: tests for handy.h
-ext/XS-APItest/t/handy_base.pl	XS::APItest: tests for handy.h
-ext/XS-APItest/t/hash.t		XS::APItest: tests for hash related APIs
-ext/XS-APItest/t/hv_macro.t	XS::APItest: tests for low level macros used in hashing
-ext/XS-APItest/t/join_with_space.t	test op_convert_list
-ext/XS-APItest/t/keyword_multiline.t	test keyword plugin parsing across lines
-ext/XS-APItest/t/keyword_plugin.t	test keyword plugin mechanism
+ext/XS-APItest/t/gv_fetchmethod_flags.t		XS::APItest: tests for gv_fetchmethod_flags() and variants
+ext/XS-APItest/t/gv_init.t			XS::APItest: tests for gv_init and variants
+ext/XS-APItest/t/handy00.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy01.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy02.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy03.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy04.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy05.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy06.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy07.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy08.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy09.t			XS::APItest: tests for handy.h
+ext/XS-APItest/t/handy_base.pl			XS::APItest: tests for handy.h
+ext/XS-APItest/t/hash.t				XS::APItest: tests for hash related APIs
+ext/XS-APItest/t/hv_macro.t			XS::APItest: tests for low level macros used in hashing
+ext/XS-APItest/t/join_with_space.t		test op_convert_list
+ext/XS-APItest/t/keyword_multiline.t		test keyword plugin parsing across lines
+ext/XS-APItest/t/keyword_plugin.t		test keyword plugin mechanism
 ext/XS-APItest/t/keyword_plugin_threads.t	test keyword plugin loading from multiple threads
-ext/XS-APItest/t/labelconst.aux	auxiliary file for label test
-ext/XS-APItest/t/labelconst.t	test recursive descent label parsing
-ext/XS-APItest/t/labelconst_utf8.aux	auxiliary file for label test in UTF-8
-ext/XS-APItest/t/lexsub.t	Test XS registration of lexical subs
-ext/XS-APItest/t/load-module.t	test load_module()
-ext/XS-APItest/t/locale.t	test locale-related things
-ext/XS-APItest/t/loopblock.t	test recursive descent block parsing
-ext/XS-APItest/t/looprest.t	test recursive descent statement-sequence parsing
-ext/XS-APItest/t/lvalue.t	Test XS lvalue functions
-ext/XS-APItest/t/magic.t	test attaching, finding, and removing magic
-ext/XS-APItest/t/magic_chain.t	test low-level MAGIC chain handling
-ext/XS-APItest/t/Markers.pm	Helper for ./blockhooks.t
-ext/XS-APItest/t/mro.t		Test mro plugin api
-ext/XS-APItest/t/multicall.t	XS::APItest: test MULTICALL macros
-ext/XS-APItest/t/my_cxt.t	XS::APItest: test MY_CXT interface
-ext/XS-APItest/t/my_exit.t	XS::APItest: test my_exit
-ext/XS-APItest/t/my_strtod.t	XS::APItest: test my_strtod
-ext/XS-APItest/t/newCONSTSUB.t	XS::APItest: test newCONSTSUB(_flags)
-ext/XS-APItest/t/newDEFSVOP.t	XS::APItest: test newDEFSVOP
-ext/XS-APItest/t/Null.pm	Helper for ./blockhooks.t
-ext/XS-APItest/t/op.t		XS::APItest: tests for OP related APIs
-ext/XS-APItest/t/op_contextualize.t	test op_contextualize() API
-ext/XS-APItest/t/op_list.t	test OP list construction API
-ext/XS-APItest/t/overload.t	XS::APItest: tests for overload related APIs
-ext/XS-APItest/t/pad_scalar.t	Test pad_findmy_* functions
-ext/XS-APItest/t/peep.t		test PL_peepp/PL_rpeepp
-ext/XS-APItest/t/pmflag.t	Test removal of Perl_pmflag()
-ext/XS-APItest/t/postinc.t	test op_lvalue()
-ext/XS-APItest/t/printf.t	XS::APItest extension
-ext/XS-APItest/t/ptr_table.t	Test ptr_table_* APIs
-ext/XS-APItest/t/push.t		XS::APItest extension
-ext/XS-APItest/t/refs.t		Test typemap ref handling
-ext/XS-APItest/t/rmagical.t	XS::APItest extension
-ext/XS-APItest/t/rv2cv_op_cv.t	test rv2cv_op_cv() API
-ext/XS-APItest/t/savehints.t	test SAVEHINTS() API
-ext/XS-APItest/t/scopelessblock.t	test recursive descent statement-sequence parsing
-ext/XS-APItest/t/sort.t		Test sort(xs_cmp ...)
-ext/XS-APItest/t/stmtasexpr.t	test recursive descent statement parsing
-ext/XS-APItest/t/stmtsasexpr.t	test recursive descent statement-sequence parsing
-ext/XS-APItest/t/stuff_modify_bug.t	test for eval side-effecting source string
-ext/XS-APItest/t/stuff_svcur_bug.t	test for a bug in lex_stuff_pvn
-ext/XS-APItest/t/subcall.t	Test XSUB calls
-ext/XS-APItest/t/subsignature.t	Test parse_subsignature()
-ext/XS-APItest/t/sv_numeq.t	Test sv_numeq
-ext/XS-APItest/t/sv_streq.t	Test sv_streq
-ext/XS-APItest/t/svcat.t	Test sv_catpvn
-ext/XS-APItest/t/svcatpvf.t	Test sv_catpvf argument reordering
-ext/XS-APItest/t/sviscow.t	Test SvIsCOW
-ext/XS-APItest/t/svpeek.t	XS::APItest extension
-ext/XS-APItest/t/svpv.t		More generic SvPVbyte and SvPVutf8 tests
-ext/XS-APItest/t/svpv_magic.t	Test behaviour of SvPVbyte/utf8 & get magic
-ext/XS-APItest/t/svsetsv.t	Test behaviour of sv_setsv with/without PERL_CORE
-ext/XS-APItest/t/swaplabel.t	test recursive descent label parsing
-ext/XS-APItest/t/swaptwostmts.t	test recursive descent statement parsing
-ext/XS-APItest/t/sym-hook.t	Test rv2cv hooks for bareword lookup
-ext/XS-APItest/t/synthetic_scope.t	Test block_start/block_end/intro_my
-ext/XS-APItest/t/temp_lv_sub.t	XS::APItest: tests for lvalue subs returning temps
-ext/XS-APItest/t/underscore_length.t	Test find_rundefsv()
-ext/XS-APItest/t/utf16_to_utf8.t	Test behaviour of utf16_to_utf8{,reversed}
-ext/XS-APItest/t/utf8.t		Tests for code in utf8.c
-ext/XS-APItest/t/utf8_setup.pl	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_to_bytes.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn00.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn01.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn02.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn03.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn04.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn05.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn06.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn07.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn08.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn09.t	Tests for code in utf8.c
-ext/XS-APItest/t/utf8_warn_base.pl	Tests for code in utf8.c
-ext/XS-APItest/t/weaken.t	XS::APItest: tests for sv_rvweaken() and sv_get_backrefs()
-ext/XS-APItest/t/whichsig.t	XS::APItest: tests for whichsig() and variants
-ext/XS-APItest/t/win32.t	Test Win32 specific APIs
-ext/XS-APItest/t/xs_special_subs.t	Test that XS BEGIN/CHECK/INIT/END work
+ext/XS-APItest/t/labelconst.aux			auxiliary file for label test
+ext/XS-APItest/t/labelconst.t			test recursive descent label parsing
+ext/XS-APItest/t/labelconst_utf8.aux		auxiliary file for label test in UTF-8
+ext/XS-APItest/t/lexsub.t			Test XS registration of lexical subs
+ext/XS-APItest/t/load-module.t			test load_module()
+ext/XS-APItest/t/locale.t			test locale-related things
+ext/XS-APItest/t/loopblock.t			test recursive descent block parsing
+ext/XS-APItest/t/looprest.t			test recursive descent statement-sequence parsing
+ext/XS-APItest/t/lvalue.t			Test XS lvalue functions
+ext/XS-APItest/t/magic.t			test attaching, finding, and removing magic
+ext/XS-APItest/t/magic_chain.t			test low-level MAGIC chain handling
+ext/XS-APItest/t/Markers.pm			Helper for ./blockhooks.t
+ext/XS-APItest/t/mortal_destructor.t		Test mortal_destructor api.
+ext/XS-APItest/t/mro.t				Test mro plugin api
+ext/XS-APItest/t/multicall.t			XS::APItest: test MULTICALL macros
+ext/XS-APItest/t/my_cxt.t			XS::APItest: test MY_CXT interface
+ext/XS-APItest/t/my_exit.t			XS::APItest: test my_exit
+ext/XS-APItest/t/my_strtod.t			XS::APItest: test my_strtod
+ext/XS-APItest/t/newAV.t			XS::APItest: test newAV* functions
+ext/XS-APItest/t/newCONSTSUB.t			XS::APItest: test newCONSTSUB(_flags)
+ext/XS-APItest/t/newDEFSVOP.t			XS::APItest: test newDEFSVOP
+ext/XS-APItest/t/Null.pm			Helper for ./blockhooks.t
+ext/XS-APItest/t/op.t				XS::APItest: tests for OP related APIs
+ext/XS-APItest/t/op_contextualize.t		test op_contextualize() API
+ext/XS-APItest/t/op_list.t			test OP list construction API
+ext/XS-APItest/t/overload.t			XS::APItest: tests for overload related APIs
+ext/XS-APItest/t/pad_scalar.t			Test pad_findmy_* functions
+ext/XS-APItest/t/peep.t				test PL_peepp/PL_rpeepp
+ext/XS-APItest/t/pmflag.t			Test removal of Perl_pmflag()
+ext/XS-APItest/t/postinc.t			test op_lvalue()
+ext/XS-APItest/t/printf.t			XS::APItest extension
+ext/XS-APItest/t/ptr_table.t			Test ptr_table_* APIs
+ext/XS-APItest/t/push.t				XS::APItest extension
+ext/XS-APItest/t/refs.t				Test typemap ref handling
+ext/XS-APItest/t/rmagical.t			XS::APItest extension
+ext/XS-APItest/t/rv2cv_op_cv.t			test rv2cv_op_cv() API
+ext/XS-APItest/t/savehints.t			test SAVEHINTS() API
+ext/XS-APItest/t/savestack.t			test savestack behavior, currently only in the regex engine
+ext/XS-APItest/t/scopelessblock.t		test recursive descent statement-sequence parsing
+ext/XS-APItest/t/sort.t				Test sort(xs_cmp ...)
+ext/XS-APItest/t/stmtasexpr.t			test recursive descent statement parsing
+ext/XS-APItest/t/stmtsasexpr.t			test recursive descent statement-sequence parsing
+ext/XS-APItest/t/stuff_modify_bug.t		test for eval side-effecting source string
+ext/XS-APItest/t/stuff_svcur_bug.t		test for a bug in lex_stuff_pvn
+ext/XS-APItest/t/subcall.t			Test XSUB calls
+ext/XS-APItest/t/subsignature.t			Test parse_subsignature()
+ext/XS-APItest/t/sv_numeq.t			Test sv_numeq
+ext/XS-APItest/t/sv_streq.t			Test sv_streq
+ext/XS-APItest/t/svcat.t			Test sv_catpvn
+ext/XS-APItest/t/svcatpvf.t			Test sv_catpvf argument reordering
+ext/XS-APItest/t/sviscow.t			Test SvIsCOW
+ext/XS-APItest/t/svpeek.t			XS::APItest extension
+ext/XS-APItest/t/svpv.t				More generic SvPVbyte and SvPVutf8 tests
+ext/XS-APItest/t/svpv_magic.t			Test behaviour of SvPVbyte/utf8 & get magic
+ext/XS-APItest/t/svsetsv.t			Test behaviour of sv_setsv with/without PERL_CORE
+ext/XS-APItest/t/swaplabel.t			test recursive descent label parsing
+ext/XS-APItest/t/swaptwostmts.t			test recursive descent statement parsing
+ext/XS-APItest/t/sym-hook.t			Test rv2cv hooks for bareword lookup
+ext/XS-APItest/t/synthetic_scope.t		Test block_start/block_end/intro_my
+ext/XS-APItest/t/temp_lv_sub.t			XS::APItest: tests for lvalue subs returning temps
+ext/XS-APItest/t/underscore_length.t		Test find_rundefsv()
+ext/XS-APItest/t/utf16_to_utf8.t		Test behaviour of utf16_to_utf8{,reversed}
+ext/XS-APItest/t/utf8.t				Tests for code in utf8.c
+ext/XS-APItest/t/utf8_setup.pl			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_to_bytes.t		Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn00.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn01.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn02.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn03.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn04.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn05.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn06.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn07.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn08.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn09.t			Tests for code in utf8.c
+ext/XS-APItest/t/utf8_warn_base.pl		Tests for code in utf8.c
+ext/XS-APItest/t/weaken.t			XS::APItest: tests for sv_rvweaken() and sv_get_backrefs()
+ext/XS-APItest/t/whichsig.t			XS::APItest: tests for whichsig() and variants
+ext/XS-APItest/t/win32.t			Test Win32 specific APIs
+ext/XS-APItest/t/xs_special_subs.t		Test that XS BEGIN/CHECK/INIT/END work
 ext/XS-APItest/t/xs_special_subs_require.t	for require too
-ext/XS-APItest/t/xsub_h.t	Tests for XSUB.h
+ext/XS-APItest/t/xsub_h.t			Tests for XSUB.h
 ext/XS-APItest/typemap
-ext/XS-APItest/XSUB-redefined-macros.xs	XS code needing redefined macros.
-ext/XS-APItest/XSUB-undef-XS_VERSION.xs	XS code needing #undef XS_VERSION
-ext/XS-Typemap/Makefile.PL	XS::Typemap extension
-ext/XS-Typemap/README		XS::Typemap extension
-ext/XS-Typemap/stdio.c		XS::Typemap extension
-ext/XS-Typemap/t/Typemap.t	test that typemaps work
-ext/XS-Typemap/Typemap.pm	XS::Typemap extension
-ext/XS-Typemap/Typemap.xs	XS::Typemap extension
-EXTERN.h			Included before foreign .h files
-fakesdio.h			stdio in terms of PerlIO
-feature.h			Feature header
-form.h				Public declarations for formats
-generate_uudmap.c		Generate uudmap.h, the uuencode decoding map
-git_version.h			Pre-generated git_version.h for OpenBSD
-globals.c			File to declare global symbols (for shared library)
-globvar.sym			Global variables that need hiding when embedded
-gv.c				Glob value code
-gv.h				Glob value header
-h2pl/cbreak.pl			cbreak routines using .ph
-h2pl/cbreak2.pl			cbreak routines using .pl
-h2pl/eg/sizeof.ph		Sample sizeof array initialization
-h2pl/eg/sys/errno.pl		Sample translated errno.pl
-h2pl/eg/sys/ioctl.pl		Sample translated ioctl.pl
-h2pl/eg/sysexits.pl		Sample translated sysexits.pl
-h2pl/getioctlsizes		Program to extract types from ioctl.h
-h2pl/mksizes			Program to make %sizeof array
-h2pl/mkvars			Program to make .pl from .ph files
-h2pl/README			How to turn .ph files into .pl files
-h2pl/tcbreak			cbreak test routine using .ph
-h2pl/tcbreak2			cbreak test routine using .pl
-haiku/Haiku/Haiku.pm		Haiku extension Perl module
-haiku/Haiku/Haiku.xs		Haiku extension external subroutines
-haiku/Haiku/Makefile.PL		Haiku extension makefile writer
-haiku/haikuish.h		Header for the Haiku port
-handy.h				Handy definitions
-hints/aix.sh			Hints for named architecture
-hints/aix_3.sh			Hints for named architecture
-hints/aix_4.sh			Hints for named architecture
-hints/altos486.sh		Hints for named architecture
-hints/amigaos.sh		Hints for named architecture
-hints/atheos.sh			Hints for named architecture
-hints/aux_3.sh			Hints for named architecture
-hints/bitrig.sh			Hints for named architecture
-hints/broken-db.msg		Warning message for systems with broken DB library
-hints/bsdos.sh			Hints for named architecture
-hints/catamount.sh		Hints for named architecture
-hints/convexos.sh		Hints for named architecture
-hints/cxux.sh			Hints for named architecture
-hints/cygwin.sh			Hints for named architecture
-hints/darwin.sh			Hints for named architecture
-hints/dcosx.sh			Hints for named architecture
-hints/dec_osf.sh		Hints for named architecture
-hints/dragonfly.sh		Hints for named architecture
-hints/dynix.sh			Hints for named architecture
-hints/dynixptx.sh		Hints for named architecture
-hints/epix.sh			Hints for named architecture
-hints/esix4.sh			Hints for named architecture
-hints/fps.sh			Hints for named architecture
-hints/freebsd.sh		Hints for named architecture
-hints/freemint.sh		Hints for named architecture
-hints/gnu.sh			Hints for named architecture
-hints/gnukfreebsd.sh		Hints for named architecture
-hints/gnuknetbsd.sh		Hints for named architecture
-hints/greenhills.sh		Hints for named architecture
-hints/haiku.sh			Hints for named architecture
-hints/hpux.sh			Hints for named architecture
-hints/i386.sh			Hints for named architecture
-hints/interix.sh		Hints for named architecture
-hints/irix_4.sh			Hints for named architecture
-hints/irix_5.sh			Hints for named architecture
-hints/irix_6.sh			Hints for named architecture
-hints/irix_6_0.sh		Hints for named architecture
-hints/irix_6_1.sh		Hints for named architecture
-hints/isc.sh			Hints for named architecture
-hints/isc_2.sh			Hints for named architecture
-hints/linux.sh			Hints for named architecture
-hints/linux-android.sh		Hints for named architecture
-hints/lynxos.sh			Hints for named architecture
-hints/midnightbsd.sh		Hints for named architecture
-hints/minix.sh			Hints for named architecture
-hints/mips.sh			Hints for named architecture
-hints/mirbsd.sh			Hints for named architecture
-hints/mpc.sh			Hints for named architecture
-hints/ncr_tower.sh		Hints for named architecture
-hints/netbsd.sh			Hints for named architecture
-hints/newsos4.sh		Hints for named architecture
-hints/nonstopux.sh		Hints for named architecture
-hints/openbsd.sh		Hints for named architecture
-hints/opus.sh			Hints for named architecture
-hints/os2.sh			Hints for named architecture
-hints/os390.sh			Hints for named architecture
-hints/os400.sh			Hints for named architecture
-hints/posix-bc.sh		Hints for named architecture
-hints/qnx.sh			Hints for named architecture
-hints/README.hints		Notes about hints
-hints/riscos.sh			Hints for named architecture
-hints/sco.sh			Hints for named architecture
-hints/sco_2_3_0.sh		Hints for named architecture
-hints/sco_2_3_1.sh		Hints for named architecture
-hints/sco_2_3_2.sh		Hints for named architecture
-hints/sco_2_3_3.sh		Hints for named architecture
-hints/sco_2_3_4.sh		Hints for named architecture
-hints/solaris_2.sh		Hints for named architecture
-hints/stellar.sh		Hints for named architecture
-hints/sunos_4_0.sh		Hints for named architecture
-hints/sunos_4_1.sh		Hints for named architecture
-hints/super-ux.sh		Hints for named architecture
-hints/svr4.sh			Hints for named architecture
-hints/svr5.sh			Hints for named architecture
-hints/t001.c			Test case for gcc bug
-hints/ti1500.sh			Hints for named architecture
-hints/ultrix_4.sh		Hints for named architecture
-hints/umips.sh			Hints for named architecture
-hints/unicos.sh			Hints for named architecture
-hints/unicosmk.sh		Hints for named architecture
-hints/unisysdynix.sh		Hints for named architecture
-hints/utekv.sh			Hints for named architecture
-hints/vos.sh			Hints for named architecture
-hv.c				Hash value code
-hv.h				Hash value header
-hv_func.h			Hash value static inline function header
-hv_macro.h			Macros used by hv_func.h
-inline.h			Static inline functions
-INSTALL				Detailed installation instructions
-install_lib.pl			functions shared between install* scripts
-installhtml			Perl script to install html files for pods
-installman			Perl script to install man pages for pods
-installperl			Perl script to do "make install" dirty work
-INTERN.h			Included before domestic .h files
-intrpvar.h			Variables held in each interpreter instance
-invlist_inline.h		Inline functions for handling inversion lists
-iperlsys.h			Perl's interface to the system
-keywords.c			Perl_keyword(), generated by regen/keywords.pl
-keywords.h			The keyword numbers
-l1_char_class_tab.h		256 word bit table of character classes (for handy.h)
-lib/_charnames.pm		Character names
-lib/AnyDBM_File.pm		Perl module to emulate dbmopen
-lib/AnyDBM_File.t		See if AnyDBM_File works
-lib/B/Deparse.pm		Compiler Deparse backend
-lib/B/Deparse.t			See if B::Deparse works
-lib/B/Deparse-core.t		See if B::Deparse knows when to use CORE::
-lib/B/Deparse-subclass.t	See if B::Deparse can be subclassed
-lib/B/Op_private.pm		Definitions of OP op_private flags
-lib/Benchmark.pm		Measure execution time
-lib/Benchmark.t			See if Benchmark works
-lib/blib.pm			For "use blib"
-lib/blib.t			blib.pm test
-lib/builtin.pm			builtin function namespace
-lib/builtin.t			test builtin function namespace
-lib/bytes.pm			Pragma to enable byte operations
-lib/bytes.t			bytes.pm test
-lib/bytes_heavy.pl		Support routines for byte pragma
-lib/charnames.pm		Character names
-lib/charnames.t			See if character names work
-lib/Class/Struct.pm		Declare struct-like datatypes as Perl classes
-lib/Class/Struct.t		See if Class::Struct works
-lib/Config.t			See if Config works
-lib/Config/Extensions.pm	Convenient hash lookup for built extensions
-lib/Config/Extensions.t		See if Config::Extensions works
-lib/Config_git.pl		Pre-generated Config_git.pl for OpenBSD
-lib/CORE.pod			document the CORE namespace
-lib/DB.pm			Debugger API (draft)
-lib/DB.t			See if DB works
-lib/DBM_Filter.pm		DBM Filter module
-lib/DBM_Filter/compress.pm	DBM Filter to compress keys/values
-lib/DBM_Filter/encode.pm	DBM Filter for encoding
-lib/DBM_Filter/int32.pm		DBM Filter for creating int32 keys/values
-lib/DBM_Filter/null.pm		DBM Filter for null termination
-lib/DBM_Filter/t/01error.t	test DBM_Filter::null
-lib/DBM_Filter/t/02core.t	test DBM_Filter::null
-lib/DBM_Filter/t/compress.t	test DBM_Filter::compress
-lib/DBM_Filter/t/encode.t	test DBM_Filter::encode
-lib/DBM_Filter/t/int32.t	test DBM_Filter::int32
-lib/DBM_Filter/t/null.t		test DBM_Filter::null
-lib/DBM_Filter/t/utf8.t		test DBM_Filter::utf8
-lib/DBM_Filter/utf8.pm		DBM Filter for UTF-8 Encoding
-lib/dbm_filter_util.pl		Utility functions used by DBM Filter tests
-lib/deprecate.pm		A pragma for deprecating modules from the core.
-lib/diagnostics.pm		Print verbose diagnostics
-lib/diagnostics.t		See if diagnostics.pm works
-lib/DirHandle.pm		like FileHandle only for directories
-lib/DirHandle.t			See if DirHandle works
-lib/dumpvar.pl			A variable dumper
-lib/dumpvar.t			A variable dumper tester
-lib/English.pm			Readable aliases for short variables
-lib/English.t			See if English works
-lib/ExtUtils/Embed.pm		Utilities for embedding Perl in C programs
-lib/ExtUtils/t/Embed.t		See if ExtUtils::Embed and embedding works
-lib/ExtUtils/typemap		Extension interface types
-lib/ExtUtils/XSSymSet.pm	on VMS, manage linker symbols when building extensions
-lib/feature.pm			Pragma to enable new syntax
-lib/feature.t			See if features work
-lib/feature/unicode_strings.t	See if feature "unicode_strings" work
-lib/File/Basename.pm		Emulate the basename program
-lib/File/Basename.t		See if File::Basename works
-lib/File/Compare.pm		Emulation of cmp command
-lib/File/Compare.t		See if File::Compare works
-lib/File/Copy.pm		Emulation of cp command
-lib/File/Copy.t			See if File::Copy works
-lib/File/stat.pm		By-name interface to Perl's builtin stat
-lib/File/stat.t			See if File::stat works
-lib/File/stat-7896.t		A test for ID 20011110.104
-lib/FileHandle.pm		Backward-compatible front end to IO extension
-lib/FileHandle.t		See if FileHandle works
-lib/filetest.pm			For "use filetest"
-lib/filetest.t			See if filetest works
-lib/Getopt/Std.pm		Fetch command options (getopt, getopts)
-lib/Getopt/Std.t		See if Getopt::Std and Getopt::Long work
-lib/h2ph.t			See if h2ph works like it should
-lib/h2xs.t			See if h2xs produces expected lists of files
-lib/integer.pm			For "use integer"
-lib/integer.t			For "use integer" testing
-lib/Internals.pod		Document the Internals namespace (implemented by universal.c)
-lib/Internals.t			For Internals::* testing
-lib/less.pm			For "use less"
-lib/less.t			See if less support works
-lib/locale.pm			For "use locale"
-lib/locale.t			See if locale support works
-lib/locale_threads.t		Tes locale and threads interactions
-lib/meta_notation.pm		Helper for certain /lib .pm's
-lib/meta_notation.t		See if meta_notation.t works
-lib/Net/hostent.pm		By-name interface to Perl's builtin gethost*
-lib/Net/hostent.t		See if Net::hostent works
-lib/Net/netent.pm		By-name interface to Perl's builtin getnet*
-lib/Net/netent.t		See if Net::netent works
-lib/Net/protoent.pm		By-name interface to Perl's builtin getproto*
-lib/Net/protoent.t		See if Net::protoent works
-lib/Net/servent.pm		By-name interface to Perl's builtin getserv*
-lib/Net/servent.t		See if Net::servtent works
-lib/open.pm			Pragma to specify default I/O layers
-lib/open.t			See if the open pragma works
-lib/overload.pm			Module for overloading perl operators
-lib/overload.t			See if operator overloading works
-lib/overload/numbers.pm		Helper for overloading pragma
-lib/overload64.t		See if operator overloading works with 64-bit ints
-lib/overloading.pm		Pragma to lexically control overloading
-lib/overloading.t		Tests for overloading.pm
-lib/perl5db.pl			Perl debugging routines
-lib/perl5db.t			Tests for the Perl debugger
-lib/perl5db/t/break-on-dot	Test script used by perl5db.t
-lib/perl5db/t/breakpoint-bug	Test script used by perl5db.t
-lib/perl5db/t/disable-breakpoints-1	Test script used by perl5db.t
-lib/perl5db/t/disable-breakpoints-2	Test script used by perl5db.t
-lib/perl5db/t/disable-breakpoints-3	Test script used by perl5db.t
-lib/perl5db/t/EnableModule.pm	Tests for the Perl debugger
-lib/perl5db/t/eval-line-bug	Tests for the Perl debugger
-lib/perl5db/t/fact		Tests for the Perl debugger
-lib/perl5db/t/filename-line-breakpoint		Tests for the Perl debugger
-lib/perl5db/t/gh-17660		Tests for the Perl debugger
-lib/perl5db/t/gh-17661		Tests for the Perl debugger
-lib/perl5db/t/gh-17661b		Tests for the Perl debugger
-lib/perl5db/t/load-modules	Tests for the Perl debugger
-lib/perl5db/t/lsub-n		Test script used by perl5db.t
-lib/perl5db/t/lvalue-bug	Tests for the Perl debugger
-lib/perl5db/t/MyModule.pm	Tests for the Perl debugger
-lib/perl5db/t/proxy-constants	Tests for the Perl debugger
-lib/perl5db/t/rt-104168		Tests for the Perl debugger
-lib/perl5db/t/rt-120174		Tests for the Perl debugger
+ext/XS-APItest/XSUB-redefined-macros.xs		XS code needing redefined macros.
+ext/XS-APItest/XSUB-undef-XS_VERSION.xs		XS code needing #undef XS_VERSION
+ext/XS-Typemap/Makefile.PL		XS::Typemap extension
+ext/XS-Typemap/README			XS::Typemap extension
+ext/XS-Typemap/stdio.c			XS::Typemap extension
+ext/XS-Typemap/t/Typemap.t		test that typemaps work
+ext/XS-Typemap/Typemap.pm		XS::Typemap extension
+ext/XS-Typemap/Typemap.xs		XS::Typemap extension
+h2pl/cbreak.pl				cbreak routines using .ph
+h2pl/cbreak2.pl				cbreak routines using .pl
+h2pl/eg/sizeof.ph			Sample sizeof array initialization
+h2pl/eg/sys/errno.pl			Sample translated errno.pl
+h2pl/eg/sys/ioctl.pl			Sample translated ioctl.pl
+h2pl/eg/sysexits.pl			Sample translated sysexits.pl
+h2pl/getioctlsizes			Program to extract types from ioctl.h
+h2pl/mksizes				Program to make %sizeof array
+h2pl/mkvars				Program to make .pl from .ph files
+h2pl/README				How to turn .ph files into .pl files
+h2pl/tcbreak				cbreak test routine using .ph
+h2pl/tcbreak2				cbreak test routine using .pl
+haiku/Haiku/Haiku.pm			Haiku extension Perl module
+haiku/Haiku/Haiku.xs			Haiku extension external subroutines
+haiku/Haiku/Makefile.PL			Haiku extension makefile writer
+haiku/haikuish.h			Header for the Haiku port
+hints/aix.sh				Hints for named architecture
+hints/aix_3.sh				Hints for named architecture
+hints/aix_4.sh				Hints for named architecture
+hints/altos486.sh			Hints for named architecture
+hints/amigaos.sh			Hints for named architecture
+hints/atheos.sh				Hints for named architecture
+hints/aux_3.sh				Hints for named architecture
+hints/bitrig.sh				Hints for named architecture
+hints/broken-db.msg			Warning message for systems with broken DB library
+hints/bsdos.sh				Hints for named architecture
+hints/catamount.sh			Hints for named architecture
+hints/convexos.sh			Hints for named architecture
+hints/cxux.sh				Hints for named architecture
+hints/cygwin.sh				Hints for named architecture
+hints/darwin.sh				Hints for named architecture
+hints/dcosx.sh				Hints for named architecture
+hints/dec_osf.sh			Hints for named architecture
+hints/dragonfly.sh			Hints for named architecture
+hints/dynix.sh				Hints for named architecture
+hints/dynixptx.sh			Hints for named architecture
+hints/epix.sh				Hints for named architecture
+hints/esix4.sh				Hints for named architecture
+hints/fps.sh				Hints for named architecture
+hints/freebsd.sh			Hints for named architecture
+hints/freemint.sh			Hints for named architecture
+hints/gnu.sh				Hints for named architecture
+hints/gnukfreebsd.sh			Hints for named architecture
+hints/gnuknetbsd.sh			Hints for named architecture
+hints/greenhills.sh			Hints for named architecture
+hints/haiku.sh				Hints for named architecture
+hints/hpux.sh				Hints for named architecture
+hints/i386.sh				Hints for named architecture
+hints/interix.sh			Hints for named architecture
+hints/irix_4.sh				Hints for named architecture
+hints/irix_5.sh				Hints for named architecture
+hints/irix_6.sh				Hints for named architecture
+hints/irix_6_0.sh			Hints for named architecture
+hints/irix_6_1.sh			Hints for named architecture
+hints/isc.sh				Hints for named architecture
+hints/isc_2.sh				Hints for named architecture
+hints/linux.sh				Hints for named architecture
+hints/linux-android.sh			Hints for named architecture
+hints/lynxos.sh				Hints for named architecture
+hints/midnightbsd.sh			Hints for named architecture
+hints/minix.sh				Hints for named architecture
+hints/mips.sh				Hints for named architecture
+hints/mirbsd.sh				Hints for named architecture
+hints/mpc.sh				Hints for named architecture
+hints/ncr_tower.sh			Hints for named architecture
+hints/netbsd.sh				Hints for named architecture
+hints/newsos4.sh			Hints for named architecture
+hints/nonstopux.sh			Hints for named architecture
+hints/openbsd.sh			Hints for named architecture
+hints/opus.sh				Hints for named architecture
+hints/os2.sh				Hints for named architecture
+hints/os390.sh				Hints for named architecture
+hints/os400.sh				Hints for named architecture
+hints/posix-bc.sh			Hints for named architecture
+hints/qnx.sh				Hints for named architecture
+hints/README.hints			Notes about hints
+hints/riscos.sh				Hints for named architecture
+hints/sco.sh				Hints for named architecture
+hints/sco_2_3_0.sh			Hints for named architecture
+hints/sco_2_3_1.sh			Hints for named architecture
+hints/sco_2_3_2.sh			Hints for named architecture
+hints/sco_2_3_3.sh			Hints for named architecture
+hints/sco_2_3_4.sh			Hints for named architecture
+hints/solaris_2.sh			Hints for named architecture
+hints/stellar.sh			Hints for named architecture
+hints/sunos_4_0.sh			Hints for named architecture
+hints/sunos_4_1.sh			Hints for named architecture
+hints/super-ux.sh			Hints for named architecture
+hints/svr4.sh				Hints for named architecture
+hints/svr5.sh				Hints for named architecture
+hints/t001.c				Test case for gcc bug
+hints/ti1500.sh				Hints for named architecture
+hints/umips.sh				Hints for named architecture
+hints/unicos.sh				Hints for named architecture
+hints/unicosmk.sh			Hints for named architecture
+hints/unisysdynix.sh			Hints for named architecture
+hints/utekv.sh				Hints for named architecture
+hints/vos.sh				Hints for named architecture
+lib/_charnames.pm			Character names
+lib/AnyDBM_File.pm			Perl module to emulate dbmopen
+lib/AnyDBM_File.t			See if AnyDBM_File works
+lib/B/Deparse.pm			Compiler Deparse backend
+lib/B/Deparse.t				See if B::Deparse works
+lib/B/Deparse-core.t			See if B::Deparse knows when to use CORE::
+lib/B/Deparse-subclass.t		See if B::Deparse can be subclassed
+lib/B/Op_private.pm			Definitions of OP op_private flags
+lib/Benchmark.pm			Measure execution time
+lib/Benchmark.t				See if Benchmark works
+lib/blib.pm				For "use blib"
+lib/blib.t				blib.pm test
+lib/builtin.pm				builtin function namespace
+lib/builtin.t				test builtin function namespace
+lib/bytes.pm				Pragma to enable byte operations
+lib/bytes.t				bytes.pm test
+lib/bytes_heavy.pl			Support routines for byte pragma
+lib/charnames.pm			Character names
+lib/charnames.t				See if character names work
+lib/Class/Struct.pm			Declare struct-like datatypes as Perl classes
+lib/Class/Struct.t			See if Class::Struct works
+lib/Config.t				See if Config works
+lib/Config/Extensions.pm		Convenient hash lookup for built extensions
+lib/Config/Extensions.t			See if Config::Extensions works
+lib/Config_git.pl			Pre-generated Config_git.pl for OpenBSD
+lib/CORE.pod				document the CORE namespace
+lib/DB.pm				Debugger API (draft)
+lib/DB.t				See if DB works
+lib/DBM_Filter.pm			DBM Filter module
+lib/DBM_Filter/compress.pm		DBM Filter to compress keys/values
+lib/DBM_Filter/encode.pm		DBM Filter for encoding
+lib/DBM_Filter/int32.pm			DBM Filter for creating int32 keys/values
+lib/DBM_Filter/null.pm			DBM Filter for null termination
+lib/DBM_Filter/t/01error.t		test DBM_Filter::null
+lib/DBM_Filter/t/02core.t		test DBM_Filter::null
+lib/DBM_Filter/t/compress.t		test DBM_Filter::compress
+lib/DBM_Filter/t/encode.t		test DBM_Filter::encode
+lib/DBM_Filter/t/int32.t		test DBM_Filter::int32
+lib/DBM_Filter/t/null.t			test DBM_Filter::null
+lib/DBM_Filter/t/utf8.t			test DBM_Filter::utf8
+lib/DBM_Filter/utf8.pm			DBM Filter for UTF-8 Encoding
+lib/dbm_filter_util.pl			Utility functions used by DBM Filter tests
+lib/deprecate.pm			A pragma for deprecating modules from the core.
+lib/diagnostics.pm			Print verbose diagnostics
+lib/diagnostics.t			See if diagnostics.pm works
+lib/DirHandle.pm			like FileHandle only for directories
+lib/DirHandle.t				See if DirHandle works
+lib/dumpvar.pl				A variable dumper
+lib/dumpvar.t				A variable dumper tester
+lib/English.pm				Readable aliases for short variables
+lib/English.t				See if English works
+lib/ExtUtils/Embed.pm			Utilities for embedding Perl in C programs
+lib/ExtUtils/t/Embed.t			See if ExtUtils::Embed and embedding works
+lib/ExtUtils/typemap			Extension interface types
+lib/ExtUtils/XSSymSet.pm		on VMS, manage linker symbols when building extensions
+lib/feature.pm				Pragma to enable new syntax
+lib/feature.t				See if features work
+lib/feature/unicode_strings.t		See if feature "unicode_strings" work
+lib/File/Basename.pm			Emulate the basename program
+lib/File/Basename.t			See if File::Basename works
+lib/File/Compare.pm			Emulation of cmp command
+lib/File/Compare.t			See if File::Compare works
+lib/File/Copy.pm			Emulation of cp command
+lib/File/Copy.t				See if File::Copy works
+lib/File/stat.pm			By-name interface to Perl's builtin stat
+lib/File/stat.t				See if File::stat works
+lib/File/stat-7896.t			A test for ID 20011110.104
+lib/FileHandle.pm			Backward-compatible front end to IO extension
+lib/FileHandle.t			See if FileHandle works
+lib/filetest.pm				For "use filetest"
+lib/filetest.t				See if filetest works
+lib/Getopt/Std.pm			Fetch command options (getopt, getopts)
+lib/Getopt/Std.t			See if Getopt::Std and Getopt::Long work
+lib/h2ph.t				See if h2ph works like it should
+lib/h2xs.t				See if h2xs produces expected lists of files
+lib/integer.pm				For "use integer"
+lib/integer.t				For "use integer" testing
+lib/Internals.pod			Document the Internals namespace (implemented by universal.c)
+lib/Internals.t				For Internals::* testing
+lib/less.pm				For "use less"
+lib/less.t				See if less support works
+lib/locale.pm				For "use locale"
+lib/locale.t				See if locale support works
+lib/locale_threads.t			Tes locale and threads interactions
+lib/meta_notation.pm			Helper for certain /lib .pm's
+lib/meta_notation.t			See if meta_notation.t works
+lib/Net/hostent.pm			By-name interface to Perl's builtin gethost*
+lib/Net/hostent.t			See if Net::hostent works
+lib/Net/netent.pm			By-name interface to Perl's builtin getnet*
+lib/Net/netent.t			See if Net::netent works
+lib/Net/protoent.pm			By-name interface to Perl's builtin getproto*
+lib/Net/protoent.t			See if Net::protoent works
+lib/Net/servent.pm			By-name interface to Perl's builtin getserv*
+lib/Net/servent.t			See if Net::servtent works
+lib/open.pm				Pragma to specify default I/O layers
+lib/open.t				See if the open pragma works
+lib/overload.pm				Module for overloading perl operators
+lib/overload.t				See if operator overloading works
+lib/overload/numbers.pm			Helper for overloading pragma
+lib/overload64.t			See if operator overloading works with 64-bit ints
+lib/overloading.pm			Pragma to lexically control overloading
+lib/overloading.t			Tests for overloading.pm
+lib/perl5db.pl				Perl debugging routines
+lib/perl5db.t				Tests for the Perl debugger
+lib/perl5db/t/break-on-dot				Test script used by perl5db.t
+lib/perl5db/t/breakpoint-bug				Test script used by perl5db.t
+lib/perl5db/t/disable-breakpoints-1			Test script used by perl5db.t
+lib/perl5db/t/disable-breakpoints-2			Test script used by perl5db.t
+lib/perl5db/t/disable-breakpoints-3			Test script used by perl5db.t
+lib/perl5db/t/EnableModule.pm				Tests for the Perl debugger
+lib/perl5db/t/eval-line-bug				Tests for the Perl debugger
+lib/perl5db/t/fact					Tests for the Perl debugger
+lib/perl5db/t/filename-line-breakpoint			Tests for the Perl debugger
+lib/perl5db/t/gh-17660					Tests for the Perl debugger
+lib/perl5db/t/gh-17661					Tests for the Perl debugger
+lib/perl5db/t/gh-17661b					Tests for the Perl debugger
+lib/perl5db/t/load-modules				Tests for the Perl debugger
+lib/perl5db/t/lsub-n					Test script used by perl5db.t
+lib/perl5db/t/lvalue-bug				Tests for the Perl debugger
+lib/perl5db/t/MyModule.pm				Tests for the Perl debugger
+lib/perl5db/t/proxy-constants				Tests for the Perl debugger
+lib/perl5db/t/rt-104168					Tests for the Perl debugger
+lib/perl5db/t/rt-120174					Tests for the Perl debugger
 lib/perl5db/t/rt-121509-restart-after-chdir		Tests for the Perl debugger
-lib/perl5db/t/rt-124203		Test threads in the Perl debugger
-lib/perl5db/t/rt-124203b	Test threads in the Perl debugger
-lib/perl5db/t/rt-61222		Tests for the Perl debugger
-lib/perl5db/t/rt-66110		Tests for the Perl debugger
-lib/perl5db/t/source-cmd-test.perldb		Tests for the Perl debugger
+lib/perl5db/t/rt-124203					Test threads in the Perl debugger
+lib/perl5db/t/rt-124203b				Test threads in the Perl debugger
+lib/perl5db/t/rt-61222					Tests for the Perl debugger
+lib/perl5db/t/rt-66110					Tests for the Perl debugger
+lib/perl5db/t/source-cmd-test.perldb			Tests for the Perl debugger
 lib/perl5db/t/source-cmd-test-no-q.perldb		Tests for the Perl debugger
-lib/perl5db/t/symbol-table-bug	Tests for the Perl debugger
-lib/perl5db/t/taint		Tests for the Perl debugger
-lib/perl5db/t/test-a-statement-1	Tests for the Perl debugger
-lib/perl5db/t/test-a-statement-2	Tests for the Perl debugger
-lib/perl5db/t/test-a-statement-3	Tests for the Perl debugger
-lib/perl5db/t/test-dieLevel-option-1	Tests for the Perl debugger
-lib/perl5db/t/test-frame-option-1	Tests for the Perl debugger
-lib/perl5db/t/test-l-statement-1	Tests for the Perl debugger
-lib/perl5db/t/test-l-statement-2	Tests for the Perl debugger
-lib/perl5db/t/test-m-statement-1	Tests for the Perl debugger
+lib/perl5db/t/symbol-table-bug				Tests for the Perl debugger
+lib/perl5db/t/taint					Tests for the Perl debugger
+lib/perl5db/t/test-a-statement-1			Tests for the Perl debugger
+lib/perl5db/t/test-a-statement-2			Tests for the Perl debugger
+lib/perl5db/t/test-a-statement-3			Tests for the Perl debugger
+lib/perl5db/t/test-dieLevel-option-1			Tests for the Perl debugger
+lib/perl5db/t/test-frame-option-1			Tests for the Perl debugger
+lib/perl5db/t/test-l-statement-1			Tests for the Perl debugger
+lib/perl5db/t/test-l-statement-2			Tests for the Perl debugger
+lib/perl5db/t/test-m-statement-1			Tests for the Perl debugger
 lib/perl5db/t/test-passing-at-underscore-to-x-etc	Tests for the Perl debugger
-lib/perl5db/t/test-PrintRet-option-1	Tests for the Perl debugger
-lib/perl5db/t/test-r-statement	Tests for the Perl debugger
-lib/perl5db/t/test-w-statement-1	Tests for the Perl debugger
-lib/perl5db/t/test-warnLevel-option-1	Tests for the Perl debugger
-lib/perl5db/t/uncalled-subroutine	Tests for the Perl debugger
-lib/perl5db/t/with-subroutine		Tests for the Perl debugger
-lib/perlbug.t			Tests for the Perl bug reporter
-lib/PerlIO.pm			PerlIO support module
-lib/Pod/t/Usage.t		See if Pod::Usage works
-lib/SelectSaver.pm		Enforce proper select scoping
-lib/SelectSaver.t		See if SelectSaver works
-lib/sigtrap.pm			For trapping an abort and giving traceback
-lib/sigtrap.t			See if sigtrap works
-lib/sort.pm			For "use sort"
-lib/sort.t			See if "use sort" works
-lib/strict.pm			For "use strict"
-lib/strict.t			See if strictures work
-lib/subs.pm			Declare overriding subs
-lib/subs.t			See if subroutine pseudo-importation works
-lib/Symbol.pm			Symbol table manipulation routines
-lib/Symbol.t			See if Symbol works
-lib/Thread.pm			Thread extensions frontend
-lib/Thread.t			Thread extensions frontend tests
-lib/Tie/Array.pm		Base class for tied arrays
-lib/Tie/Array/push.t		Test for Tie::Array
-lib/Tie/Array/splice.t		Test for Tie::Array::SPLICE
-lib/Tie/Array/std.t		Test for Tie::StdArray
-lib/Tie/Array/stdpush.t		Test for Tie::StdArray
-lib/Tie/ExtraHash.t		Test for Tie::ExtraHash (in Tie/Hash.pm)
-lib/Tie/Handle.pm		Base class for tied handles
-lib/Tie/Handle/stdhandle.t	Test for Tie::StdHandle
+lib/perl5db/t/test-PrintRet-option-1			Tests for the Perl debugger
+lib/perl5db/t/test-r-statement				Tests for the Perl debugger
+lib/perl5db/t/test-w-statement-1			Tests for the Perl debugger
+lib/perl5db/t/test-warnLevel-option-1			Tests for the Perl debugger
+lib/perl5db/t/uncalled-subroutine			Tests for the Perl debugger
+lib/perl5db/t/with-subroutine				Tests for the Perl debugger
+lib/perlbug.t				Tests for the Perl bug reporter
+lib/PerlIO.pm				PerlIO support module
+lib/Pod/t/Usage.t			See if Pod::Usage works
+lib/SelectSaver.pm			Enforce proper select scoping
+lib/SelectSaver.t			See if SelectSaver works
+lib/sigtrap.pm				For trapping an abort and giving traceback
+lib/sigtrap.t				See if sigtrap works
+lib/sort.pm				For "use sort"
+lib/sort.t				See if "use sort" works
+lib/strict.pm				For "use strict"
+lib/strict.t				See if strictures work
+lib/subs.pm				Declare overriding subs
+lib/subs.t				See if subroutine pseudo-importation works
+lib/Symbol.pm				Symbol table manipulation routines
+lib/Symbol.t				See if Symbol works
+lib/Thread.pm				Thread extensions frontend
+lib/Thread.t				Thread extensions frontend tests
+lib/Tie/Array.pm			Base class for tied arrays
+lib/Tie/Array/push.t			Test for Tie::Array
+lib/Tie/Array/splice.t			Test for Tie::Array::SPLICE
+lib/Tie/Array/std.t			Test for Tie::StdArray
+lib/Tie/Array/stdpush.t			Test for Tie::StdArray
+lib/Tie/ExtraHash.t			Test for Tie::ExtraHash (in Tie/Hash.pm)
+lib/Tie/Handle.pm			Base class for tied handles
+lib/Tie/Handle/stdhandle.t		Test for Tie::StdHandle
 lib/Tie/Handle/stdhandle_from_handle.t	Test for Tie::StdHandle/Handle backwards compat
-lib/Tie/Hash.pm			Base class for tied hashes
-lib/Tie/Hash.t			See if Tie::Hash works
-lib/Tie/Scalar.pm		Base class for tied scalars
-lib/Tie/Scalar.t		See if Tie::Scalar works
-lib/Tie/StdHandle.pm		Tie::StdHandle
-lib/Tie/SubstrHash.pm		Compact hash for known key, value and table size
-lib/Tie/SubstrHash.t		Test for Tie::SubstrHash
-lib/Time/gmtime.pm		By-name interface to Perl's builtin gmtime
-lib/Time/gmtime.t		Test for Time::gmtime
-lib/Time/localtime.pm		By-name interface to Perl's builtin localtime
-lib/Time/localtime.t		Test for Time::localtime
-lib/Time/tm.pm			Internal object for Time::{gm,local}time
-lib/Unicode/README		Explanation what happened to lib/unicode.
-lib/Unicode/UCD.pm		Unicode character database
-lib/Unicode/UCD.t		See if Unicode character database works
+lib/Tie/Hash.pm				Base class for tied hashes
+lib/Tie/Hash.t				See if Tie::Hash works
+lib/Tie/Scalar.pm			Base class for tied scalars
+lib/Tie/Scalar.t			See if Tie::Scalar works
+lib/Tie/StdHandle.pm			Tie::StdHandle
+lib/Tie/SubstrHash.pm			Compact hash for known key, value and table size
+lib/Tie/SubstrHash.t			Test for Tie::SubstrHash
+lib/Time/gmtime.pm			By-name interface to Perl's builtin gmtime
+lib/Time/gmtime.t			Test for Time::gmtime
+lib/Time/localtime.pm			By-name interface to Perl's builtin localtime
+lib/Time/localtime.t			Test for Time::localtime
+lib/Time/tm.pm				Internal object for Time::{gm,local}time
+lib/Unicode/README			Explanation what happened to lib/unicode.
+lib/Unicode/testnorm.t			Run official Unicode Consortium's normalization tests
+lib/Unicode/UCD.pm			Unicode character database
+lib/Unicode/UCD.t			See if Unicode character database works
 lib/unicore/ArabicShaping.txt			Unicode character database
-lib/unicore/auxiliary/GCBTest.txt			Unicode character database
-lib/unicore/auxiliary/GraphemeBreakProperty.txt			Unicode character database
-lib/unicore/auxiliary/LBTest.txt			Unicode character database
-lib/unicore/auxiliary/SBTest.txt			Unicode character database
-lib/unicore/auxiliary/SentenceBreakProperty.txt			Unicode character database
-lib/unicore/auxiliary/WBTest.txt			Unicode character database
-lib/unicore/auxiliary/WordBreakProperty.txt			Unicode character database
+lib/unicore/auxiliary/GCBTest.txt		Unicode character database
+lib/unicore/auxiliary/GraphemeBreakProperty.txt	Unicode character database
+lib/unicore/auxiliary/LBTest.txt		Unicode character database
+lib/unicore/auxiliary/SBTest.txt		Unicode character database
+lib/unicore/auxiliary/SentenceBreakProperty.txt	Unicode character database
+lib/unicore/auxiliary/WBTest.txt		Unicode character database
+lib/unicore/auxiliary/WordBreakProperty.txt	Unicode character database
 lib/unicore/BidiBrackets.txt			Unicode character database
 lib/unicore/BidiMirroring.txt			Unicode character database
 lib/unicore/Blocks.txt				Unicode character database
 lib/unicore/CaseFolding.txt			Unicode character database
 lib/unicore/CJKRadicals.txt			Unicode character database
 lib/unicore/CombiningClass.pl			Unicode character database
-lib/unicore/CompositionExclusions.txt			Unicode character database
+lib/unicore/CompositionExclusions.txt		Unicode character database
 lib/unicore/DAge.txt				Unicode character database
 lib/unicore/DCoreProperties.txt			Unicode character database
 lib/unicore/Decomposition.pl			Unicode character database
-lib/unicore/DNormalizationProps.txt			Unicode character database
+lib/unicore/DNormalizationProps.txt		Unicode character database
 lib/unicore/EastAsianWidth.txt			Unicode character database
 lib/unicore/emoji/emoji.txt			Unicode character database
 lib/unicore/EmojiSources.txt			Unicode character database
-lib/unicore/EquivalentUnifiedIdeograph.txt			Unicode character database
-lib/unicore/extracted/DBidiClass.txt			Unicode character database
-lib/unicore/extracted/DBinaryProperties.txt			Unicode character database
-lib/unicore/extracted/DCombiningClass.txt			Unicode character database
-lib/unicore/extracted/DDecompositionType.txt			Unicode character database
-lib/unicore/extracted/DEastAsianWidth.txt			Unicode character database
-lib/unicore/extracted/DGeneralCategory.txt			Unicode character database
-lib/unicore/extracted/DJoinGroup.txt			Unicode character database
-lib/unicore/extracted/DJoinType.txt			Unicode character database
-lib/unicore/extracted/DLineBreak.txt			Unicode character database
-lib/unicore/extracted/DNumType.txt			Unicode character database
-lib/unicore/extracted/DNumValues.txt			Unicode character database
-lib/unicore/HangulSyllableType.txt			Unicode character database
+lib/unicore/EquivalentUnifiedIdeograph.txt	Unicode character database
+lib/unicore/extracted/DBidiClass.txt		Unicode character database
+lib/unicore/extracted/DBinaryProperties.txt	Unicode character database
+lib/unicore/extracted/DCombiningClass.txt	Unicode character database
+lib/unicore/extracted/DDecompositionType.txt	Unicode character database
+lib/unicore/extracted/DEastAsianWidth.txt	Unicode character database
+lib/unicore/extracted/DGeneralCategory.txt	Unicode character database
+lib/unicore/extracted/DJoinGroup.txt		Unicode character database
+lib/unicore/extracted/DJoinType.txt		Unicode character database
+lib/unicore/extracted/DLineBreak.txt		Unicode character database
+lib/unicore/extracted/DNumType.txt		Unicode character database
+lib/unicore/extracted/DNumValues.txt		Unicode character database
+lib/unicore/HangulSyllableType.txt		Unicode character database
 lib/unicore/IdStatus.txt			Unicode UTS 39 database
 lib/unicore/IdType.txt				Unicode UTS 39 database
 lib/unicore/Index.txt				Unicode character database
-lib/unicore/IndicPositionalCategory.txt			Unicode character database
-lib/unicore/IndicSyllabicCategory.txt			Unicode character database
+lib/unicore/IndicPositionalCategory.txt		Unicode character database
+lib/unicore/IndicSyllabicCategory.txt		Unicode character database
 lib/unicore/Jamo.txt				Unicode character database
 lib/unicore/lib/Age/NA.pl			Unicode character database
 lib/unicore/lib/Age/V100.pl			Unicode character database
@@ -5111,6 +5317,7 @@ lib/unicore/lib/Age/V110.pl			Unicode ch
 lib/unicore/lib/Age/V120.pl			Unicode character database
 lib/unicore/lib/Age/V130.pl			Unicode character database
 lib/unicore/lib/Age/V140.pl			Unicode character database
+lib/unicore/lib/Age/V150.pl			Unicode character database
 lib/unicore/lib/Age/V20.pl			Unicode character database
 lib/unicore/lib/Age/V30.pl			Unicode character database
 lib/unicore/lib/Age/V31.pl			Unicode character database
@@ -5128,16 +5335,16 @@ lib/unicore/lib/Age/V90.pl			Unicode cha
 lib/unicore/lib/Alpha/Y.pl			Unicode character database
 lib/unicore/lib/Bc/AL.pl			Unicode character database
 lib/unicore/lib/Bc/AN.pl			Unicode character database
-lib/unicore/lib/Bc/B.pl			Unicode character database
+lib/unicore/lib/Bc/B.pl				Unicode character database
 lib/unicore/lib/Bc/BN.pl			Unicode character database
 lib/unicore/lib/Bc/CS.pl			Unicode character database
 lib/unicore/lib/Bc/EN.pl			Unicode character database
 lib/unicore/lib/Bc/ES.pl			Unicode character database
 lib/unicore/lib/Bc/ET.pl			Unicode character database
-lib/unicore/lib/Bc/L.pl			Unicode character database
+lib/unicore/lib/Bc/L.pl				Unicode character database
 lib/unicore/lib/Bc/NSM.pl			Unicode character database
 lib/unicore/lib/Bc/ON.pl			Unicode character database
-lib/unicore/lib/Bc/R.pl			Unicode character database
+lib/unicore/lib/Bc/R.pl				Unicode character database
 lib/unicore/lib/Bc/WS.pl			Unicode character database
 lib/unicore/lib/BidiC/Y.pl			Unicode character database
 lib/unicore/lib/BidiM/Y.pl			Unicode character database
@@ -5157,8 +5364,8 @@ lib/unicore/lib/Ccc/NK.pl			Unicode char
 lib/unicore/lib/Ccc/NR.pl			Unicode character database
 lib/unicore/lib/Ccc/OV.pl			Unicode character database
 lib/unicore/lib/Ccc/VR.pl			Unicode character database
-lib/unicore/lib/CE/Y.pl			Unicode character database
-lib/unicore/lib/CI/Y.pl			Unicode character database
+lib/unicore/lib/CE/Y.pl				Unicode character database
+lib/unicore/lib/CI/Y.pl				Unicode character database
 lib/unicore/lib/CompEx/Y.pl			Unicode character database
 lib/unicore/lib/CWCF/Y.pl			Unicode character database
 lib/unicore/lib/CWCM/Y.pl			Unicode character database
@@ -5168,7 +5375,7 @@ lib/unicore/lib/CWT/Y.pl			Unicode chara
 lib/unicore/lib/CWU/Y.pl			Unicode character database
 lib/unicore/lib/Dash/Y.pl			Unicode character database
 lib/unicore/lib/Dep/Y.pl			Unicode character database
-lib/unicore/lib/DI/Y.pl			Unicode character database
+lib/unicore/lib/DI/Y.pl				Unicode character database
 lib/unicore/lib/Dia/Y.pl			Unicode character database
 lib/unicore/lib/Dt/Com.pl			Unicode character database
 lib/unicore/lib/Dt/Enc.pl			Unicode character database
@@ -5184,35 +5391,35 @@ lib/unicore/lib/Dt/Sqr.pl			Unicode char
 lib/unicore/lib/Dt/Sub.pl			Unicode character database
 lib/unicore/lib/Dt/Sup.pl			Unicode character database
 lib/unicore/lib/Dt/Vert.pl			Unicode character database
-lib/unicore/lib/Ea/A.pl			Unicode character database
-lib/unicore/lib/Ea/H.pl			Unicode character database
-lib/unicore/lib/Ea/N.pl			Unicode character database
+lib/unicore/lib/Ea/A.pl				Unicode character database
+lib/unicore/lib/Ea/H.pl				Unicode character database
+lib/unicore/lib/Ea/N.pl				Unicode character database
 lib/unicore/lib/Ea/Na.pl			Unicode character database
-lib/unicore/lib/Ea/W.pl			Unicode character database
+lib/unicore/lib/Ea/W.pl				Unicode character database
 lib/unicore/lib/EBase/Y.pl			Unicode character database
 lib/unicore/lib/EComp/Y.pl			Unicode character database
 lib/unicore/lib/Emoji/Y.pl			Unicode character database
 lib/unicore/lib/EPres/Y.pl			Unicode character database
 lib/unicore/lib/Ext/Y.pl			Unicode character database
 lib/unicore/lib/ExtPict/Y.pl			Unicode character database
-lib/unicore/lib/Gc/C.pl			Unicode character database
+lib/unicore/lib/Gc/C.pl				Unicode character database
 lib/unicore/lib/Gc/Cf.pl			Unicode character database
 lib/unicore/lib/Gc/Cn.pl			Unicode character database
-lib/unicore/lib/Gc/L.pl			Unicode character database
+lib/unicore/lib/Gc/L.pl				Unicode character database
 lib/unicore/lib/Gc/LC.pl			Unicode character database
 lib/unicore/lib/Gc/Ll.pl			Unicode character database
 lib/unicore/lib/Gc/Lm.pl			Unicode character database
 lib/unicore/lib/Gc/Lo.pl			Unicode character database
 lib/unicore/lib/Gc/Lu.pl			Unicode character database
-lib/unicore/lib/Gc/M.pl			Unicode character database
+lib/unicore/lib/Gc/M.pl				Unicode character database
 lib/unicore/lib/Gc/Mc.pl			Unicode character database
 lib/unicore/lib/Gc/Me.pl			Unicode character database
 lib/unicore/lib/Gc/Mn.pl			Unicode character database
-lib/unicore/lib/Gc/N.pl			Unicode character database
+lib/unicore/lib/Gc/N.pl				Unicode character database
 lib/unicore/lib/Gc/Nd.pl			Unicode character database
 lib/unicore/lib/Gc/Nl.pl			Unicode character database
 lib/unicore/lib/Gc/No.pl			Unicode character database
-lib/unicore/lib/Gc/P.pl			Unicode character database
+lib/unicore/lib/Gc/P.pl				Unicode character database
 lib/unicore/lib/Gc/Pc.pl			Unicode character database
 lib/unicore/lib/Gc/Pd.pl			Unicode character database
 lib/unicore/lib/Gc/Pe.pl			Unicode character database
@@ -5220,12 +5427,12 @@ lib/unicore/lib/Gc/Pf.pl			Unicode chara
 lib/unicore/lib/Gc/Pi.pl			Unicode character database
 lib/unicore/lib/Gc/Po.pl			Unicode character database
 lib/unicore/lib/Gc/Ps.pl			Unicode character database
-lib/unicore/lib/Gc/S.pl			Unicode character database
+lib/unicore/lib/Gc/S.pl				Unicode character database
 lib/unicore/lib/Gc/Sc.pl			Unicode character database
 lib/unicore/lib/Gc/Sk.pl			Unicode character database
 lib/unicore/lib/Gc/Sm.pl			Unicode character database
 lib/unicore/lib/Gc/So.pl			Unicode character database
-lib/unicore/lib/Gc/Z.pl			Unicode character database
+lib/unicore/lib/Gc/Z.pl				Unicode character database
 lib/unicore/lib/Gc/Zs.pl			Unicode character database
 lib/unicore/lib/GCB/CN.pl			Unicode character database
 lib/unicore/lib/GCB/EX.pl			Unicode character database
@@ -5242,25 +5449,26 @@ lib/unicore/lib/Hyphen/T.pl			Unicode ch
 lib/unicore/lib/IDC/Y.pl			Unicode character database
 lib/unicore/lib/Ideo/Y.pl			Unicode character database
 lib/unicore/lib/IDS/Y.pl			Unicode character database
-lib/unicore/lib/IdStatus/Allowed.pl			Unicode character database
-lib/unicore/lib/IdStatus/Restrict.pl			Unicode character database
-lib/unicore/lib/IdType/DefaultI.pl			Unicode character database
-lib/unicore/lib/IdType/Exclusio.pl			Unicode character database
-lib/unicore/lib/IdType/Inclusio.pl			Unicode character database
-lib/unicore/lib/IdType/LimitedU.pl			Unicode character database
-lib/unicore/lib/IdType/NotChara.pl			Unicode character database
-lib/unicore/lib/IdType/NotNFKC.pl			Unicode character database
-lib/unicore/lib/IdType/NotXID.pl			Unicode character database
-lib/unicore/lib/IdType/Obsolete.pl			Unicode character database
-lib/unicore/lib/IdType/Recommen.pl			Unicode character database
-lib/unicore/lib/IdType/Technica.pl			Unicode character database
-lib/unicore/lib/IdType/Uncommon.pl			Unicode character database
+lib/unicore/lib/IdStatus/Allowed.pl		Unicode character database
+lib/unicore/lib/IdStatus/Restrict.pl		Unicode character database
+lib/unicore/lib/IdType/DefaultI.pl		Unicode character database
+lib/unicore/lib/IdType/Exclusio.pl		Unicode character database
+lib/unicore/lib/IdType/Inclusio.pl		Unicode character database
+lib/unicore/lib/IdType/LimitedU.pl		Unicode character database
+lib/unicore/lib/IdType/NotChara.pl		Unicode character database
+lib/unicore/lib/IdType/NotNFKC.pl		Unicode character database
+lib/unicore/lib/IdType/NotXID.pl		Unicode character database
+lib/unicore/lib/IdType/Obsolete.pl		Unicode character database
+lib/unicore/lib/IdType/Recommen.pl		Unicode character database
+lib/unicore/lib/IdType/Technica.pl		Unicode character database
+lib/unicore/lib/IdType/Uncommon.pl		Unicode character database
 lib/unicore/lib/In/10_0.pl			Unicode character database
 lib/unicore/lib/In/11_0.pl			Unicode character database
 lib/unicore/lib/In/12_0.pl			Unicode character database
 lib/unicore/lib/In/12_1.pl			Unicode character database
 lib/unicore/lib/In/13_0.pl			Unicode character database
 lib/unicore/lib/In/14_0.pl			Unicode character database
+lib/unicore/lib/In/15_0.pl			Unicode character database
 lib/unicore/lib/In/2_0.pl			Unicode character database
 lib/unicore/lib/In/2_1.pl			Unicode character database
 lib/unicore/lib/In/3_0.pl			Unicode character database
@@ -5279,41 +5487,43 @@ lib/unicore/lib/In/7_0.pl			Unicode char
 lib/unicore/lib/In/8_0.pl			Unicode character database
 lib/unicore/lib/In/9_0.pl			Unicode character database
 lib/unicore/lib/InPC/Bottom.pl			Unicode character database
-lib/unicore/lib/InPC/BottomAn.pl			Unicode character database
+lib/unicore/lib/InPC/BottomAn.pl		Unicode character database
 lib/unicore/lib/InPC/Left.pl			Unicode character database
-lib/unicore/lib/InPC/LeftAndR.pl			Unicode character database
+lib/unicore/lib/InPC/LeftAndR.pl		Unicode character database
 lib/unicore/lib/InPC/NA.pl			Unicode character database
-lib/unicore/lib/InPC/Overstru.pl			Unicode character database
+lib/unicore/lib/InPC/Overstru.pl		Unicode character database
 lib/unicore/lib/InPC/Right.pl			Unicode character database
 lib/unicore/lib/InPC/Top.pl			Unicode character database
-lib/unicore/lib/InPC/TopAndBo.pl			Unicode character database
-lib/unicore/lib/InPC/TopAndL2.pl			Unicode character database
-lib/unicore/lib/InPC/TopAndLe.pl			Unicode character database
-lib/unicore/lib/InPC/TopAndRi.pl			Unicode character database
-lib/unicore/lib/InPC/VisualOr.pl			Unicode character database
-lib/unicore/lib/InSC/Avagraha.pl			Unicode character database
+lib/unicore/lib/InPC/TopAndBo.pl		Unicode character database
+lib/unicore/lib/InPC/TopAndL2.pl		Unicode character database
+lib/unicore/lib/InPC/TopAndLe.pl		Unicode character database
+lib/unicore/lib/InPC/TopAndRi.pl		Unicode character database
+lib/unicore/lib/InPC/VisualOr.pl		Unicode character database
+lib/unicore/lib/InSC/Avagraha.pl		Unicode character database
 lib/unicore/lib/InSC/Bindu.pl			Unicode character database
-lib/unicore/lib/InSC/Cantilla.pl			Unicode character database
-lib/unicore/lib/InSC/Consona2.pl			Unicode character database
-lib/unicore/lib/InSC/Consona3.pl			Unicode character database
-lib/unicore/lib/InSC/Consona4.pl			Unicode character database
-lib/unicore/lib/InSC/Consona5.pl			Unicode character database
-lib/unicore/lib/InSC/Consona6.pl			Unicode character database
-lib/unicore/lib/InSC/Consona7.pl			Unicode character database
-lib/unicore/lib/InSC/Consona8.pl			Unicode character database
-lib/unicore/lib/InSC/Consonan.pl			Unicode character database
-lib/unicore/lib/InSC/Invisibl.pl			Unicode character database
+lib/unicore/lib/InSC/Cantilla.pl		Unicode character database
+lib/unicore/lib/InSC/Consona2.pl		Unicode character database
+lib/unicore/lib/InSC/Consona3.pl		Unicode character database
+lib/unicore/lib/InSC/Consona4.pl		Unicode character database
+lib/unicore/lib/InSC/Consona5.pl		Unicode character database
+lib/unicore/lib/InSC/Consona6.pl		Unicode character database
+lib/unicore/lib/InSC/Consona7.pl		Unicode character database
+lib/unicore/lib/InSC/Consona8.pl		Unicode character database
+lib/unicore/lib/InSC/Consona9.pl		Unicode character database
+lib/unicore/lib/InSC/Consonan.pl		Unicode character database
+lib/unicore/lib/InSC/Geminati.pl		Unicode character database
+lib/unicore/lib/InSC/Invisibl.pl		Unicode character database
 lib/unicore/lib/InSC/Nukta.pl			Unicode character database
 lib/unicore/lib/InSC/Number.pl			Unicode character database
 lib/unicore/lib/InSC/Other.pl			Unicode character database
-lib/unicore/lib/InSC/PureKill.pl			Unicode character database
-lib/unicore/lib/InSC/Syllable.pl			Unicode character database
-lib/unicore/lib/InSC/ToneMark.pl			Unicode character database
+lib/unicore/lib/InSC/PureKill.pl		Unicode character database
+lib/unicore/lib/InSC/Syllable.pl		Unicode character database
+lib/unicore/lib/InSC/ToneMark.pl		Unicode character database
 lib/unicore/lib/InSC/Virama.pl			Unicode character database
 lib/unicore/lib/InSC/Visarga.pl			Unicode character database
 lib/unicore/lib/InSC/Vowel.pl			Unicode character database
-lib/unicore/lib/InSC/VowelDep.pl			Unicode character database
-lib/unicore/lib/InSC/VowelInd.pl			Unicode character database
+lib/unicore/lib/InSC/VowelDep.pl		Unicode character database
+lib/unicore/lib/InSC/VowelInd.pl		Unicode character database
 lib/unicore/lib/Jg/Ain.pl			Unicode character database
 lib/unicore/lib/Jg/Alef.pl			Unicode character database
 lib/unicore/lib/Jg/Beh.pl			Unicode character database
@@ -5334,12 +5544,12 @@ lib/unicore/lib/Jg/Seen.pl			Unicode cha
 lib/unicore/lib/Jg/Tah.pl			Unicode character database
 lib/unicore/lib/Jg/Waw.pl			Unicode character database
 lib/unicore/lib/Jg/Yeh.pl			Unicode character database
-lib/unicore/lib/Jt/C.pl			Unicode character database
-lib/unicore/lib/Jt/D.pl			Unicode character database
-lib/unicore/lib/Jt/L.pl			Unicode character database
-lib/unicore/lib/Jt/R.pl			Unicode character database
-lib/unicore/lib/Jt/T.pl			Unicode character database
-lib/unicore/lib/Jt/U.pl			Unicode character database
+lib/unicore/lib/Jt/C.pl				Unicode character database
+lib/unicore/lib/Jt/D.pl				Unicode character database
+lib/unicore/lib/Jt/L.pl				Unicode character database
+lib/unicore/lib/Jt/R.pl				Unicode character database
+lib/unicore/lib/Jt/T.pl				Unicode character database
+lib/unicore/lib/Jt/U.pl				Unicode character database
 lib/unicore/lib/Lb/AI.pl			Unicode character database
 lib/unicore/lib/Lb/AL.pl			Unicode character database
 lib/unicore/lib/Lb/BA.pl			Unicode character database
@@ -5373,8 +5583,8 @@ lib/unicore/lib/NFKDQC/Y.pl			Unicode ch
 lib/unicore/lib/Nt/Di.pl			Unicode character database
 lib/unicore/lib/Nt/None.pl			Unicode character database
 lib/unicore/lib/Nt/Nu.pl			Unicode character database
-lib/unicore/lib/Nv/0.pl			Unicode character database
-lib/unicore/lib/Nv/1.pl			Unicode character database
+lib/unicore/lib/Nv/0.pl				Unicode character database
+lib/unicore/lib/Nv/1.pl				Unicode character database
 lib/unicore/lib/Nv/10.pl			Unicode character database
 lib/unicore/lib/Nv/100.pl			Unicode character database
 lib/unicore/lib/Nv/1000.pl			Unicode character database
@@ -5395,74 +5605,74 @@ lib/unicore/lib/Nv/1_3.pl			Unicode char
 lib/unicore/lib/Nv/1_4.pl			Unicode character database
 lib/unicore/lib/Nv/1_6.pl			Unicode character database
 lib/unicore/lib/Nv/1_8.pl			Unicode character database
-lib/unicore/lib/Nv/2.pl			Unicode character database
+lib/unicore/lib/Nv/2.pl				Unicode character database
 lib/unicore/lib/Nv/20.pl			Unicode character database
 lib/unicore/lib/Nv/200.pl			Unicode character database
 lib/unicore/lib/Nv/2000.pl			Unicode character database
 lib/unicore/lib/Nv/20000.pl			Unicode character database
 lib/unicore/lib/Nv/2_3.pl			Unicode character database
-lib/unicore/lib/Nv/3.pl			Unicode character database
+lib/unicore/lib/Nv/3.pl				Unicode character database
 lib/unicore/lib/Nv/30.pl			Unicode character database
 lib/unicore/lib/Nv/300.pl			Unicode character database
 lib/unicore/lib/Nv/3000.pl			Unicode character database
 lib/unicore/lib/Nv/30000.pl			Unicode character database
 lib/unicore/lib/Nv/3_16.pl			Unicode character database
 lib/unicore/lib/Nv/3_4.pl			Unicode character database
-lib/unicore/lib/Nv/4.pl			Unicode character database
+lib/unicore/lib/Nv/4.pl				Unicode character database
 lib/unicore/lib/Nv/40.pl			Unicode character database
 lib/unicore/lib/Nv/400.pl			Unicode character database
 lib/unicore/lib/Nv/4000.pl			Unicode character database
 lib/unicore/lib/Nv/40000.pl			Unicode character database
-lib/unicore/lib/Nv/5.pl			Unicode character database
+lib/unicore/lib/Nv/5.pl				Unicode character database
 lib/unicore/lib/Nv/50.pl			Unicode character database
 lib/unicore/lib/Nv/500.pl			Unicode character database
 lib/unicore/lib/Nv/5000.pl			Unicode character database
 lib/unicore/lib/Nv/50000.pl			Unicode character database
-lib/unicore/lib/Nv/6.pl			Unicode character database
+lib/unicore/lib/Nv/6.pl				Unicode character database
 lib/unicore/lib/Nv/60.pl			Unicode character database
 lib/unicore/lib/Nv/600.pl			Unicode character database
 lib/unicore/lib/Nv/6000.pl			Unicode character database
 lib/unicore/lib/Nv/60000.pl			Unicode character database
-lib/unicore/lib/Nv/7.pl			Unicode character database
+lib/unicore/lib/Nv/7.pl				Unicode character database
 lib/unicore/lib/Nv/70.pl			Unicode character database
 lib/unicore/lib/Nv/700.pl			Unicode character database
 lib/unicore/lib/Nv/7000.pl			Unicode character database
 lib/unicore/lib/Nv/70000.pl			Unicode character database
-lib/unicore/lib/Nv/8.pl			Unicode character database
+lib/unicore/lib/Nv/8.pl				Unicode character database
 lib/unicore/lib/Nv/80.pl			Unicode character database
 lib/unicore/lib/Nv/800.pl			Unicode character database
 lib/unicore/lib/Nv/8000.pl			Unicode character database
 lib/unicore/lib/Nv/80000.pl			Unicode character database
-lib/unicore/lib/Nv/9.pl			Unicode character database
+lib/unicore/lib/Nv/9.pl				Unicode character database
 lib/unicore/lib/Nv/90.pl			Unicode character database
 lib/unicore/lib/Nv/900.pl			Unicode character database
 lib/unicore/lib/Nv/9000.pl			Unicode character database
 lib/unicore/lib/Nv/90000.pl			Unicode character database
 lib/unicore/lib/PatSyn/Y.pl			Unicode character database
 lib/unicore/lib/PCM/Y.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlAny.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlCh2.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlCha.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlFol.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlIDC.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlIDS.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlIsI.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlNch.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlPat.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlPr2.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlPro.pl			Unicode character database
-lib/unicore/lib/Perl/_PerlQuo.pl			Unicode character database
+lib/unicore/lib/Perl/_PerlAny.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlCh2.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlCha.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlFol.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlIDC.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlIDS.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlIsI.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlNch.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlPat.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlPr2.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlPro.pl		Unicode character database
+lib/unicore/lib/Perl/_PerlQuo.pl		Unicode character database
 lib/unicore/lib/Perl/Alnum.pl			Unicode character database
-lib/unicore/lib/Perl/Assigned.pl			Unicode character database
+lib/unicore/lib/Perl/Assigned.pl		Unicode character database
 lib/unicore/lib/Perl/Blank.pl			Unicode character database
 lib/unicore/lib/Perl/Graph.pl			Unicode character database
-lib/unicore/lib/Perl/PerlWord.pl			Unicode character database
-lib/unicore/lib/Perl/PosixPun.pl			Unicode character database
+lib/unicore/lib/Perl/PerlWord.pl		Unicode character database
+lib/unicore/lib/Perl/PosixPun.pl		Unicode character database
 lib/unicore/lib/Perl/Print.pl			Unicode character database
-lib/unicore/lib/Perl/SpacePer.pl			Unicode character database
+lib/unicore/lib/Perl/SpacePer.pl		Unicode character database
 lib/unicore/lib/Perl/Title.pl			Unicode character database
 lib/unicore/lib/Perl/Word.pl			Unicode character database
-lib/unicore/lib/Perl/XPosixPu.pl			Unicode character database
+lib/unicore/lib/Perl/XPosixPu.pl		Unicode character database
 lib/unicore/lib/QMark/Y.pl			Unicode character database
 lib/unicore/lib/SB/AT.pl			Unicode character database
 lib/unicore/lib/SB/CL.pl			Unicode character database
@@ -5578,16 +5788,16 @@ lib/unicore/lib/Scx/Yi.pl			Unicode char
 lib/unicore/lib/Scx/Zinh.pl			Unicode character database
 lib/unicore/lib/Scx/Zyyy.pl			Unicode character database
 lib/unicore/lib/Scx/Zzzz.pl			Unicode character database
-lib/unicore/lib/SD/Y.pl			Unicode character database
+lib/unicore/lib/SD/Y.pl				Unicode character database
 lib/unicore/lib/STerm/Y.pl			Unicode character database
 lib/unicore/lib/Term/Y.pl			Unicode character database
 lib/unicore/lib/UIdeo/Y.pl			Unicode character database
 lib/unicore/lib/Upper/Y.pl			Unicode character database
-lib/unicore/lib/Vo/R.pl			Unicode character database
+lib/unicore/lib/Vo/R.pl				Unicode character database
 lib/unicore/lib/Vo/Tr.pl			Unicode character database
 lib/unicore/lib/Vo/Tu.pl			Unicode character database
-lib/unicore/lib/Vo/U.pl			Unicode character database
-lib/unicore/lib/VS/Y.pl			Unicode character database
+lib/unicore/lib/Vo/U.pl				Unicode character database
+lib/unicore/lib/VS/Y.pl				Unicode character database
 lib/unicore/lib/WB/EX.pl			Unicode character database
 lib/unicore/lib/WB/Extend.pl			Unicode character database
 lib/unicore/lib/WB/FO.pl			Unicode character database
@@ -5604,1363 +5814,1250 @@ lib/unicore/lib/XIDC/Y.pl			Unicode char
 lib/unicore/lib/XIDS/Y.pl			Unicode character database
 lib/unicore/LineBreak.txt			Unicode character database
 lib/unicore/Makefile				Unicode character database
-lib/unicore/mktables				Unicode character database generator
+lib/unicore/mktables				Unicode character database
 lib/unicore/mktables.lst			Unicode character database
-lib/unicore/Name.pl			Unicode character database
-lib/unicore/Name.pm			Unicode character database
+lib/unicore/Name.pl				Unicode character database
+lib/unicore/Name.pm				Unicode character database
 lib/unicore/NameAliases.txt			Unicode character database
 lib/unicore/NamedSequences.txt			Unicode character database
 lib/unicore/NamedSqProv.txt			Unicode character database
 lib/unicore/NamesList.txt			Unicode character database
-lib/unicore/NormalizationCorrections.txt			Unicode character database
+lib/unicore/NormalizationCorrections.txt	Unicode character database
+lib/unicore/NormTest.txt			Unicode character database
 lib/unicore/PropertyAliases.txt			Unicode character database
 lib/unicore/PropList.txt			Unicode character database
-lib/unicore/PropValueAliases.txt			Unicode character database
+lib/unicore/PropValueAliases.txt		Unicode character database
 lib/unicore/README.perl				Unicode character database
-lib/unicore/ReadMe.txt				Unicode character database info
-lib/unicore/ScriptExtensions.txt			Unicode character database
+lib/unicore/ReadMe.txt				Unicode character database
+lib/unicore/ScriptExtensions.txt		Unicode character database
 lib/unicore/Scripts.txt				Unicode character database
 lib/unicore/SpecialCasing.txt			Unicode character database
-lib/unicore/StandardizedVariants.txt			Unicode character database
-lib/unicore/TestProp.pl			Unicode character database
+lib/unicore/StandardizedVariants.txt		Unicode character database
+lib/unicore/TestNorm.pl				Unicode character database
+lib/unicore/TestProp.pl				Unicode character database
 lib/unicore/To/_PerlLB.pl			Unicode character database
 lib/unicore/To/_PerlSCX.pl			Unicode character database
-lib/unicore/To/Age.pl			Unicode character database
-lib/unicore/To/Bc.pl			Unicode character database
-lib/unicore/To/Bmg.pl			Unicode character database
-lib/unicore/To/Bpb.pl			Unicode character database
-lib/unicore/To/Bpt.pl			Unicode character database
-lib/unicore/To/Cf.pl			Unicode character database
-lib/unicore/To/Ea.pl			Unicode character database
+lib/unicore/To/Age.pl				Unicode character database
+lib/unicore/To/Bc.pl				Unicode character database
+lib/unicore/To/Bmg.pl				Unicode character database
+lib/unicore/To/Bpb.pl				Unicode character database
+lib/unicore/To/Bpt.pl				Unicode character database
+lib/unicore/To/Cf.pl				Unicode character database
+lib/unicore/To/Ea.pl				Unicode character database
 lib/unicore/To/EqUIdeo.pl			Unicode character database
-lib/unicore/To/Gc.pl			Unicode character database
-lib/unicore/To/GCB.pl			Unicode character database
-lib/unicore/To/Hst.pl			Unicode character database
+lib/unicore/To/Gc.pl				Unicode character database
+lib/unicore/To/GCB.pl				Unicode character database
+lib/unicore/To/Hst.pl				Unicode character database
 lib/unicore/To/Identif2.pl			Unicode character database
 lib/unicore/To/Identifi.pl			Unicode character database
-lib/unicore/To/InPC.pl			Unicode character database
-lib/unicore/To/InSC.pl			Unicode character database
-lib/unicore/To/Isc.pl			Unicode character database
-lib/unicore/To/Jg.pl			Unicode character database
-lib/unicore/To/Jt.pl			Unicode character database
-lib/unicore/To/Lb.pl			Unicode character database
-lib/unicore/To/Lc.pl			Unicode character database
-lib/unicore/To/Na1.pl			Unicode character database
+lib/unicore/To/InPC.pl				Unicode character database
+lib/unicore/To/InSC.pl				Unicode character database
+lib/unicore/To/Isc.pl				Unicode character database
+lib/unicore/To/Jg.pl				Unicode character database
+lib/unicore/To/Jt.pl				Unicode character database
+lib/unicore/To/Lb.pl				Unicode character database
+lib/unicore/To/Lc.pl				Unicode character database
+lib/unicore/To/Na1.pl				Unicode character database
 lib/unicore/To/NameAlia.pl			Unicode character database
-lib/unicore/To/NFCQC.pl			Unicode character database
-lib/unicore/To/NFDQC.pl			Unicode character database
+lib/unicore/To/NFCQC.pl				Unicode character database
+lib/unicore/To/NFDQC.pl				Unicode character database
 lib/unicore/To/NFKCCF.pl			Unicode character database
 lib/unicore/To/NFKCQC.pl			Unicode character database
 lib/unicore/To/NFKDQC.pl			Unicode character database
-lib/unicore/To/Nt.pl			Unicode character database
-lib/unicore/To/Nv.pl			Unicode character database
+lib/unicore/To/Nt.pl				Unicode character database
+lib/unicore/To/Nv.pl				Unicode character database
 lib/unicore/To/PerlDeci.pl			Unicode character database
-lib/unicore/To/SB.pl			Unicode character database
-lib/unicore/To/Sc.pl			Unicode character database
-lib/unicore/To/Scx.pl			Unicode character database
-lib/unicore/To/Tc.pl			Unicode character database
-lib/unicore/To/Uc.pl			Unicode character database
-lib/unicore/To/Vo.pl			Unicode character database
-lib/unicore/To/WB.pl			Unicode character database
-lib/unicore/UCD.pl			Unicode character database
+lib/unicore/To/SB.pl				Unicode character database
+lib/unicore/To/Sc.pl				Unicode character database
+lib/unicore/To/Scx.pl				Unicode character database
+lib/unicore/To/Tc.pl				Unicode character database
+lib/unicore/To/Uc.pl				Unicode character database
+lib/unicore/To/Vo.pl				Unicode character database
+lib/unicore/To/WB.pl				Unicode character database
+lib/unicore/UCD.pl				Unicode character database
 lib/unicore/uni_keywords.pl			Indices into array in charclass_invlists.h
 lib/unicore/UnicodeData.txt			Unicode character database
 lib/unicore/version				The version of the Unicode
-lib/unicore/VerticalOrientation.txt			Unicode character database
-lib/UNIVERSAL.pm		Base class for ALL classes
-lib/User/grent.pm		By-name interface to Perl's builtin getgr*
-lib/User/grent.t		See if User::grwent works
-lib/User/pwent.pm		By-name interface to Perl's builtin getpw*
-lib/User/pwent.t		See if User::pwent works
-lib/utf8.pm			Pragma to control Unicode support
-lib/utf8.t			See if utf8 operations work
-lib/vars.pm			Declare pseudo-imported global variables
-lib/vars.t			See if "use vars" works
-lib/vars_carp.t			See if "use vars" doesn't load Carp.pm per default
-lib/vmsish.pm			Control VMS-specific behavior of Perl core
-lib/vmsish.t			Tests for vmsish.pm
-lib/warnings.pm			For "use warnings"
-lib/warnings.t			See if warning controls work
-lib/warnings/register.pm	For "use warnings::register"
-locale.c			locale-specific utility functions
-make_ext.pl			Used by Makefile to execute extension Makefiles
-make_patchnum.pl		Script to generate git_version.h and lib/Config_git.pl files for all OS'es
-makedef.pl			Create symbol export lists for linking
-makedepend.SH			Precursor to makedepend
-makedepend_file.SH			Precursor to makedepend_file
-Makefile.micro			microperl Makefile
-Makefile.SH			A script that generates Makefile
-malloc.c			A version of malloc you might not want
-malloc_ctl.h			A version of malloc you might not want
-MANIFEST			This list of files
-mathoms.c			A home for binary-compatible code artifacts
-META.json			Distribution meta-data in JSON
-META.yml			Distribution meta-data in YAML
-metaconfig.h			Control file for the metaconfig process
-metaconfig.SH			Control file for the metaconfig process
-mg.c				Magic code
-mg.h				Magic header
-mg_names.inc			Generated magic names used by dump.c
-mg_raw.h			Generated magic data used by generate_uudmap.c
-mg_vtable.h			Generated magic vtable data
-miniperlmain.c			Basic perl w/o dynamic loading or extensions
-mkppport			A script that distributes ppport.h
-mkppport.lst			List of extensions that need a ppport.h
-mro_core.c				Method Resolution Order code
-myconfig.SH			Prints summary of the current configuration
-mydtrace.h			Support for optional DTrace probes
-nostdio.h			Cause compile error on stdio calls
-numeric.c			Miscellaneous numeric conversion routines
-op.c				Opcode syntax tree code
-op.h				Opcode syntax tree header
-op_reg_common.h			Common parts of op.h, regexp.h header
-opcode.h			Automatically generated opcode header
-opnames.h			Automatically generated opcode header
-os2/Changes			Changelog for OS/2 port
-os2/diff.configure		Patches to Configure
-os2/dl_os2.c			Addon for dl_open
-os2/dlfcn.h			Addon for dl_open
-os2/Makefile.SHs		Shared library generation for OS/2
-os2/os2.c			Additional code for OS/2
-os2/os2.sym			Additional symbols to export
-os2/OS2/OS2-ExtAttr/Changes	EA access module
-os2/OS2/OS2-ExtAttr/ExtAttr.pm	EA access module
-os2/OS2/OS2-ExtAttr/ExtAttr.xs	EA access module
-os2/OS2/OS2-ExtAttr/Makefile.PL	EA access module
-os2/OS2/OS2-ExtAttr/MANIFEST	EA access module
-os2/OS2/OS2-ExtAttr/myea.h	EA access module
-os2/OS2/OS2-ExtAttr/t/os2_ea.t	EA access module
-os2/OS2/OS2-ExtAttr/typemap	EA access module
-os2/OS2/OS2-PrfDB/Changes	System database access module
-os2/OS2/OS2-PrfDB/Makefile.PL	System database access module
-os2/OS2/OS2-PrfDB/MANIFEST	System database access module
-os2/OS2/OS2-PrfDB/PrfDB.pm	System database access module
-os2/OS2/OS2-PrfDB/PrfDB.xs	System database access module
-os2/OS2/OS2-PrfDB/t/os2_prfdb.t	System database access module
-os2/OS2/OS2-Process/Makefile.PL	system() constants in a module
-os2/OS2/OS2-Process/MANIFEST	system() constants in a module
-os2/OS2/OS2-Process/Process.pm	system() constants in a module
-os2/OS2/OS2-Process/Process.xs	system() constants in a module
-os2/OS2/OS2-Process/t/os2_atoms.t	Test for OS2::Process
-os2/OS2/OS2-Process/t/os2_clipboard.t	Test for OS2::Process
-os2/OS2/OS2-Process/t/os2_process.t	Tests
-os2/OS2/OS2-Process/t/os2_process_kid.t	Tests
+lib/unicore/VerticalOrientation.txt		Unicode character database
+lib/UNIVERSAL.pm			Base class for ALL classes
+lib/User/grent.pm			By-name interface to Perl's builtin getgr*
+lib/User/grent.t			See if User::grwent works
+lib/User/pwent.pm			By-name interface to Perl's builtin getpw*
+lib/User/pwent.t			See if User::pwent works
+lib/utf8.pm				Pragma to control Unicode support
+lib/utf8.t				See if utf8 operations work
+lib/vars.pm				Declare pseudo-imported global variables
+lib/vars.t				See if "use vars" works
+lib/vars_carp.t				See if "use vars" doesn't load Carp.pm per default
+lib/vmsish.pm				Control VMS-specific behavior of Perl core
+lib/vmsish.t				Tests for vmsish.pm
+lib/warnings.pm				For "use warnings"
+lib/warnings.t				See if warning controls work
+lib/warnings/register.pm		For "use warnings::register"
+os2/Changes				Changelog for OS/2 port
+os2/diff.configure			Patches to Configure
+os2/dl_os2.c				Addon for dl_open
+os2/dlfcn.h				Addon for dl_open
+os2/Makefile.SHs			Shared library generation for OS/2
+os2/os2.c				Additional code for OS/2
+os2/os2.sym				Additional symbols to export
+os2/OS2/OS2-ExtAttr/Changes			EA access module
+os2/OS2/OS2-ExtAttr/ExtAttr.pm			EA access module
+os2/OS2/OS2-ExtAttr/ExtAttr.xs			EA access module
+os2/OS2/OS2-ExtAttr/Makefile.PL			EA access module
+os2/OS2/OS2-ExtAttr/MANIFEST			EA access module
+os2/OS2/OS2-ExtAttr/myea.h			EA access module
+os2/OS2/OS2-ExtAttr/t/os2_ea.t			EA access module
+os2/OS2/OS2-ExtAttr/typemap			EA access module
+os2/OS2/OS2-PrfDB/Changes			System database access module
+os2/OS2/OS2-PrfDB/Makefile.PL			System database access module
+os2/OS2/OS2-PrfDB/MANIFEST			System database access module
+os2/OS2/OS2-PrfDB/PrfDB.pm			System database access module
+os2/OS2/OS2-PrfDB/PrfDB.xs			System database access module
+os2/OS2/OS2-PrfDB/t/os2_prfdb.t			System database access module
+os2/OS2/OS2-Process/Makefile.PL			system() constants in a module
+os2/OS2/OS2-Process/MANIFEST			system() constants in a module
+os2/OS2/OS2-Process/Process.pm			system() constants in a module
+os2/OS2/OS2-Process/Process.xs			system() constants in a module
+os2/OS2/OS2-Process/t/os2_atoms.t		Test for OS2::Process
+os2/OS2/OS2-Process/t/os2_clipboard.t		Test for OS2::Process
+os2/OS2/OS2-Process/t/os2_process.t		Tests
+os2/OS2/OS2-Process/t/os2_process_kid.t		Tests
 os2/OS2/OS2-Process/t/os2_process_text.t	Tests
-os2/OS2/OS2-REXX/Changes		DLL access module
-os2/OS2/OS2-REXX/DLL/Changes	DLL access module
-os2/OS2/OS2-REXX/DLL/DLL.pm	DLL access module
-os2/OS2/OS2-REXX/DLL/DLL.xs	DLL access module
-os2/OS2/OS2-REXX/DLL/Makefile.PL	DLL access module
-os2/OS2/OS2-REXX/DLL/MANIFEST	DLL access module
-os2/OS2/OS2-REXX/Makefile.PL	DLL access module
-os2/OS2/OS2-REXX/MANIFEST	DLL access module
-os2/OS2/OS2-REXX/REXX.pm	DLL access module
-os2/OS2/OS2-REXX/REXX.xs	DLL access module
-os2/OS2/OS2-REXX/t/rx_cmprt.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_dllld.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_emxrv.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_objcall.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_sql.test	DLL access module
-os2/OS2/OS2-REXX/t/rx_tiesql.test	DLL access module
-os2/OS2/OS2-REXX/t/rx_tievar.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_tieydb.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_varset.t	DLL access module
-os2/OS2/OS2-REXX/t/rx_vrexx.t	DLL access module
-os2/OS2/typemap			Common typemap for OS/2 types
-os2/os2_base.t			Additional tests for builtin methods
-os2/os2_pipe.t			Tests for pipe creation logic
-os2/os2add.sym			Overriding symbols to export
-os2/os2ish.h			Header for OS/2
-os2/os2thread.h			pthread-like typedefs
-os2/perl2cmd.pl			Corrects installed binaries under OS/2
-os2/perlrexx.c			Support perl interpreter embedded in REXX
-os2/perlrexx.cmd		Test perl interpreter embedded in REXX
-overload.h			generated overload enum (public)
-overload.inc			generated overload name table (implementation)
-PACKAGING			notes and best practice for packaging perl 5
-packsizetables.inc		The generated packprops array used in pp_pack.c
-pad.c				Scratchpad functions
-pad.h				Scratchpad headers
-parser.h			parser object header
-patchlevel.h			The current patch level of perl
-perl.c				main()
-perl.h				Global declarations
-perl_inc_macro.h		macro used to set \@INC using S_incpush_use_sep
-perl_langinfo.h			Perl's version of <langinfo.h>
-perl_siphash.h			Implementation of SipHash
-perlapi.h			Empty backwards-compat include
-perldtrace.d			D script for Perl probes
-perlio.c			C code for PerlIO abstraction
-perlio.h			PerlIO abstraction
-perlio.sym			Symbols for PerlIO abstraction
-perliol.h			PerlIO Layer definition
-perlsdio.h			Fake stdio using perlio
-perlvars.h			Global variables
-perly.act			parser actions; derived from perly.y
-perly.c				parser code (NOT derived from perly.y)
-perly.h				header file for perly.c; derived from perly.y
-perly.tab			parser state tables; derived from perly.y
-perly.y				Yacc grammar for perl
-plan9/9front.patch		Plan9 port: patch for 9front-specific flavor of Plan 9
-plan9/aperl			Plan9 port: shell to make Perl error messages Acme-friendly
-plan9/arpa/inet.h		Plan9 port: replacement C header file
-plan9/buildinfo			Plan9 port: configuration information
-plan9/config.plan9		Plan9 port: config.h template
-plan9/config_h.sample		Plan9 port: 5.32.0 sample config.h
-plan9/config_sh.sample		Plan9 port: 5.32.0 sample config.sh
-plan9/exclude			Plan9 port: tests to skip
-plan9/fndvers			Plan9 port: update Perl version in config.plan9
-plan9/genconfig.pl		Plan9 port: generate config.sh
-plan9/math.h			Plan9 port: Plan9-specific math.h
-plan9/mkfile			Plan9 port: Mk driver for build
-plan9/myconfig.plan9		Plan9 port: script to print config summary
-plan9/plan9.c			Plan9 port: Plan9-specific C routines
-plan9/plan9ish.h		Plan9 port: Plan9-specific C header file
-plan9/setup.rc			Plan9 port: script for easy build+install
-plan9/uninstall.rc		Plan9 port: uninstall script
-plan9/versnum			Plan9 port: script to print version number
-pod/buildtoc			Generate pod/perltoc.pod and pod/roffitall
-pod/Makefile.SH			generate Makefile which makes pods into something else
-pod/perl.pod			Perl overview (this section)
-pod/perl5004delta.pod		Perl changes in version 5.004
-pod/perl5005delta.pod		Perl changes in version 5.005
-pod/perl5100delta.pod		Perl changes in version 5.10.0
-pod/perl5101delta.pod		Perl changes in version 5.10.1
-pod/perl5120delta.pod		Perl changes in version 5.12.0
-pod/perl5121delta.pod		Perl changes in version 5.12.1
-pod/perl5122delta.pod		Perl changes in version 5.12.2
-pod/perl5123delta.pod		Perl changes in version 5.12.3
-pod/perl5124delta.pod		Perl changes in version 5.12.4
-pod/perl5125delta.pod		Perl changes in version 5.12.5
-pod/perl5140delta.pod		Perl changes in version 5.14.0
-pod/perl5141delta.pod		Perl changes in version 5.14.1
-pod/perl5142delta.pod		Perl changes in version 5.14.2
-pod/perl5143delta.pod		Perl changes in version 5.14.3
-pod/perl5144delta.pod		Perl changes in version 5.14.4
-pod/perl5160delta.pod		Perl changes in version 5.16.0
-pod/perl5161delta.pod		Perl changes in version 5.16.1
-pod/perl5162delta.pod		Perl changes in version 5.16.2
-pod/perl5163delta.pod		Perl changes in version 5.16.3
-pod/perl5180delta.pod		Perl changes in version 5.18.0
-pod/perl5181delta.pod		Perl changes in version 5.18.1
-pod/perl5182delta.pod		Perl changes in version 5.18.2
-pod/perl5184delta.pod		Perl changes in version 5.18.4
-pod/perl5200delta.pod		Perl changes in version 5.20.0
-pod/perl5201delta.pod		Perl changes in version 5.20.1
-pod/perl5202delta.pod		Perl changes in version 5.20.2
-pod/perl5203delta.pod		Perl changes in version 5.20.3
-pod/perl5220delta.pod		Perl changes in version 5.22.0
-pod/perl5221delta.pod		Perl changes in version 5.22.1
-pod/perl5222delta.pod		Perl changes in version 5.22.2
-pod/perl5223delta.pod		Perl changes in version 5.22.3
-pod/perl5224delta.pod		Perl changes in version 5.22.4
-pod/perl5240delta.pod		Perl changes in version 5.24.0
-pod/perl5241delta.pod		Perl changes in version 5.24.1
-pod/perl5242delta.pod		Perl changes in version 5.24.2
-pod/perl5243delta.pod		Perl changes in version 5.24.3
-pod/perl5244delta.pod		Perl changes in version 5.24.4
-pod/perl5260delta.pod		Perl changes in version 5.26.0
-pod/perl5261delta.pod		Perl changes in version 5.26.1
-pod/perl5262delta.pod		Perl changes in version 5.26.2
-pod/perl5263delta.pod		Perl changes in version 5.26.3
-pod/perl5280delta.pod		Perl changes in version 5.28.0
-pod/perl5281delta.pod		Perl changes in version 5.28.1
-pod/perl5282delta.pod		Perl changes in version 5.28.2
-pod/perl5283delta.pod		Perl changes in version 5.28.3
-pod/perl5300delta.pod		Perl changes in version 5.30.0
-pod/perl5301delta.pod		Perl changes in version 5.30.1
-pod/perl5302delta.pod		Perl changes in version 5.30.2
-pod/perl5303delta.pod		Perl changes in version 5.30.3
-pod/perl5320delta.pod		Perl changes in version 5.32.0
-pod/perl5321delta.pod		Perl changes in version 5.32.1
-pod/perl5340delta.pod		Perl changes in version 5.34.0
-pod/perl5341delta.pod		Perl changes in version 5.34.1
-pod/perl5342delta.pod		Perl changes in version 5.34.2
-pod/perl5343delta.pod		Perl changes in version 5.34.3
-pod/perl5360delta.pod		Perl changes in version 5.36.0
-pod/perl5361delta.pod		Perl changes in version 5.36.1
-pod/perl5362delta.pod		Perl changes in version 5.36.2
-pod/perl561delta.pod		Perl changes in version 5.6.1
-pod/perl56delta.pod		Perl changes in version 5.6
-pod/perl581delta.pod		Perl changes in version 5.8.1
-pod/perl582delta.pod		Perl changes in version 5.8.2
-pod/perl583delta.pod		Perl changes in version 5.8.3
-pod/perl584delta.pod		Perl changes in version 5.8.4
-pod/perl585delta.pod		Perl changes in version 5.8.5
-pod/perl586delta.pod		Perl changes in version 5.8.6
-pod/perl587delta.pod		Perl changes in version 5.8.7
-pod/perl588delta.pod		Perl changes in version 5.8.8
-pod/perl589delta.pod		Perl changes in version 5.8.9
-pod/perl58delta.pod		Perl changes in version 5.8.0
-pod/perlapio.pod		Perl internal IO abstraction interface
-pod/perlartistic.pod		Perl Artistic License
-pod/perlbook.pod		Perl book information
-pod/perlboot.pod		
-pod/perlbot.pod			
-pod/perlcall.pod		Perl calling conventions from C
-pod/perlcheat.pod		Perl cheat sheet
-pod/perlclib.pod		Internal replacements for standard C library functions
-pod/perlcommunity.pod		Perl community information
-pod/perldata.pod		Perl data structures
-pod/perldbmfilter.pod		Perl DBM filters
-pod/perldebguts.pod		Perl debugging guts and tips
-pod/perldebtut.pod		Perl debugging tutorial
-pod/perldebug.pod		Perl debugging
-pod/perldelta.pod		Perl changes since previous version
-pod/perldeprecation.pod		Perl deprecations
-pod/perldiag.pod		Perl diagnostic messages
-pod/perldocstyle.pod		Perl style guide for core docs
-pod/perldsc.pod			Perl data structures intro
-pod/perldtrace.pod		Perl's support for DTrace
-pod/perlebcdic.pod		Considerations for running Perl on EBCDIC platforms
-pod/perlembed.pod		Perl ways to embed perl in your C or C++ application
-pod/perlexperiment.pod		A listing of experimental features in Perl
-pod/perlfilter.pod		Perl source filters
-pod/perlfork.pod		Perl fork() information
-pod/perlform.pod		Perl formats
-pod/perlfunc.pod		Perl built-in functions
-pod/perlgit.pod			Using git with the Perl repository
-pod/perlgov.pod			Perl Rules of Governance
-pod/perlgpl.pod			GNU General Public License
-pod/perlguts.pod		Perl internal functions for those doing extensions
-pod/perlhack.pod		Perl hackers guide
-pod/perlhacktips.pod		Tips for Perl core C code hacking
-pod/perlhacktut.pod		Walk through the creation of a simple C code patch
-pod/perlhist.pod		Perl history records
-pod/perlinterp.pod		Overview of the Perl interpreter source and how it works
-pod/perlintro.pod		Perl introduction for beginners
-pod/perliol.pod			C API for Perl's implementation of IO in Layers
-pod/perlipc.pod			Perl interprocess communication
-pod/perllexwarn.pod		Perl warnings and their control
-pod/perllocale.pod		Perl locale support
-pod/perllol.pod			Perl data structures: arrays of arrays
-pod/perlmod.pod			Perl modules: how they work
-pod/perlmodinstall.pod		Perl modules: how to install from CPAN
-pod/perlmodlib.PL		Generate pod/perlmodlib.pod
-pod/perlmodstyle.pod		Perl modules: how to write modules with style
-pod/perlmroapi.pod		Perl method resolution plugin interface
-pod/perlnewmod.pod		Perl modules: preparing a new module for distribution
-pod/perlnumber.pod		Perl number semantics
-pod/perlobj.pod			Perl objects
-pod/perlootut.pod		Perl OO tutorial for beginners
-pod/perlop.pod			Perl operators and precedence
-pod/perlopentut.pod		Perl open() tutorial
-pod/perlpacktut.pod		Perl pack() and unpack() tutorial
-pod/perlperf.pod		Perl Performance and Optimization Techniques
-pod/perlpod.pod			Perl plain old documentation
-pod/perlpodspec.pod		Perl plain old documentation format specification
-pod/perlpodstyle.pod		Perl POD style guide
-pod/perlpolicy.pod		Perl development policies
-pod/perlport.pod		Perl portability guide
-pod/perlpragma.pod		Perl modules: writing a user pragma
-pod/perlre.pod			Perl regular expressions, the rest of the story
-pod/perlreapi.pod		Perl regular expression plugin interface
-pod/perlrebackslash.pod		Perl regular expression backslash sequences
-pod/perlrecharclass.pod		Perl regular expression character classes
-pod/perlref.pod			Perl references, the rest of the story
-pod/perlreftut.pod		Perl references short introduction
-pod/perlreguts.pod		Perl regular expression engine internals
-pod/perlrepository.pod		
-pod/perlrequick.pod		Perl regular expressions quick start
-pod/perlreref.pod		Perl regular expressions quick reference
-pod/perlretut.pod		Perl regular expressions tutorial
-pod/perlrun.pod			Perl execution and options
-pod/perlsec.pod			Perl security
-pod/perlsecpolicy.pod		Perl security report handling policy
-pod/perlsource.pod		Guide to the Perl source tree
-pod/perlstyle.pod		Perl style guide
-pod/perlsub.pod			Perl subroutines
-pod/perlsyn.pod			Perl syntax
-pod/perlthrtut.pod		Perl threads tutorial
-pod/perltie.pod			Perl objects hidden behind simple variables
-pod/perltodo.pod		
-pod/perltooc.pod		
-pod/perltoot.pod		
-pod/perltrap.pod		Perl traps for the unwary
-pod/perlunicode.pod		Perl Unicode support
-pod/perlunicook.pod		Perl Unicode cookbook
-pod/perlunifaq.pod		Perl Unicode FAQ
-pod/perluniintro.pod		Perl Unicode introduction
-pod/perluniprops.pod		Index of Unicode properties in Perl
-pod/perlunitut.pod		Perl Unicode tutorial
-pod/perlutil.pod		utilities packaged with the Perl distribution
-pod/perlvar.pod			Perl predefined variables
-pod/perlvms.pod			Perl notes for VMS
-pod/rofftoc			Generate a table of contents in troff format
-pod/splitman			Splits perlfunc into multiple man pages
-pod/splitpod			Splits perlfunc into multiple pod pages
-Policy_sh.SH			Hold site-wide preferences between Configure runs.
-Porting/acknowledgements.pl	Generate perldelta acknowledgements text
-Porting/add-package.pl		Add/Update CPAN modules that are part of Core
-Porting/add-pod-file		Utility to add new pod/*.pod file to core distribution
-Porting/bench.pl		Run benchmarks against t/perf/benchmarks
-Porting/bisect.pl		A tool to make bisecting easy
-Porting/bisect-example.sh	Example script to use with git bisect run
-Porting/bisect-runner.pl	Tool to be called by git bisect run
-Porting/bump-perl-version	bump the perl version in relevant files
-Porting/check-cpan-pollution	Check for commits that may wrongly touch CPAN distros
-Porting/checkansi.pl		Check source code for ANSI-C violations
-Porting/checkAUTHORS.pl		Check that the AUTHORS file is complete
-Porting/checkcfguse.pl		Check that config symbols are being used
-Porting/checkcfgvar.pl		Check that config scripts define all symbols
-Porting/checkpodencoding.pl	Check POD encoding
-Porting/checkURL.pl		Check whether we have working URLs
-Porting/checkVERSION.pl		Check whether we have $VERSIONs
-Porting/cmpVERSION.pl		Compare whether two trees have changed modules
-Porting/config.sh		Sample config.sh
-Porting/config_H		Sample config.h
-Porting/config_h.pl		Reorder config_h.SH after metaconfig
-Porting/core-cpan-diff		Compare core distros with their CPAN equivalents
-Porting/core-team.json		Membership of the Perl Core Team
-Porting/corecpan.pl		Reports outdated dual-lived modules
-Porting/corelist.pl		Generates data for Module::CoreList
-Porting/corelist-diff		Tool to produce corelist diffs
-Porting/corelist-perldelta.pl	Generates data perldelta from Module::CoreList
-Porting/deparse-skips.txt	List of test files to ignore/skip for deparse tests.
-Porting/docs-team-charter.pod	Perl Documentation Team charter
-Porting/epigraphs.pod		the release epigraphs used over the years
-Porting/exec-bit.txt		List of files that get +x in release tarball
-Porting/exercise_makedef.pl	Brute force testing for makedef.pl
-Porting/expand-macro.pl		A tool to expand C macro definitions in the Perl source
-Porting/findrfuncs		Find reentrant variants of functions used in an executable
-Porting/git-deltatool		Mark commits for perldelta in git notes
-Porting/git-find-p4-change	Find the change for a p4 change number
-Porting/git-make-p4-refs	Output git refs for each p4 change number, suitable for appending to .git/packed-refs
-Porting/GitUtils.pm		Generate the contents of a .patch file
-Porting/Glossary		Glossary of config.sh variables
-Porting/harness-timer-report.pl	Analyze the timings from the test harness
-Porting/how_to_write_a_perldelta.pod	Bluffer's guide to writing a perldelta.
-Porting/leakfinder.pl		Hacky script for finding memory leaks
-Porting/Maintainers		Program to pretty print info in Maintainers.pl
-Porting/Maintainers.pl		Information about maintainers
-Porting/Maintainers.pm		Library to pretty print info in Maintainers.pl
-Porting/make-rmg-checklist	Generates a checklist 4 the release manager
-Porting/make_dot_patch.pl	Make a .patch file from a git WD
-Porting/make_snapshot.pl	Make a tgz snapshot of our tree with a .patch file in it
-Porting/makemeta		Create the top-level META.yml
-Porting/makerel			Release making utility
-Porting/manicheck		Check against MANIFEST
-Porting/manifest_lib.pl		Library for checking and sorting the MANIFEST
-Porting/manisort		Sort the MANIFEST
-Porting/mksample		Generate Porting/config_H and Porting/config.sh
-Porting/new-perldelta.pl	Generate a new perldelta
-Porting/newtests-perldelta.pl	Generate Perldelta stub for newly added tests
-Porting/perldelta_template.pod	Template for creating new perldelta.pod files
+os2/OS2/OS2-REXX/Changes			DLL access module
+os2/OS2/OS2-REXX/DLL/Changes			DLL access module
+os2/OS2/OS2-REXX/DLL/DLL.pm			DLL access module
+os2/OS2/OS2-REXX/DLL/DLL.xs			DLL access module
+os2/OS2/OS2-REXX/DLL/Makefile.PL		DLL access module
+os2/OS2/OS2-REXX/DLL/MANIFEST			DLL access module
+os2/OS2/OS2-REXX/Makefile.PL			DLL access module
+os2/OS2/OS2-REXX/MANIFEST			DLL access module
+os2/OS2/OS2-REXX/REXX.pm			DLL access module
+os2/OS2/OS2-REXX/REXX.xs			DLL access module
+os2/OS2/OS2-REXX/t/rx_cmprt.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_dllld.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_emxrv.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_objcall.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_sql.test			DLL access module
+os2/OS2/OS2-REXX/t/rx_tiesql.test		DLL access module
+os2/OS2/OS2-REXX/t/rx_tievar.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_tieydb.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_varset.t			DLL access module
+os2/OS2/OS2-REXX/t/rx_vrexx.t			DLL access module
+os2/OS2/typemap					Common typemap for OS/2 types
+os2/os2_base.t				Additional tests for builtin methods
+os2/os2_pipe.t				Tests for pipe creation logic
+os2/os2add.sym				Overriding symbols to export
+os2/os2ish.h				Header for OS/2
+os2/os2thread.h				pthread-like typedefs
+os2/perl2cmd.pl				Corrects installed binaries under OS/2
+os2/perlrexx.c				Support perl interpreter embedded in REXX
+os2/perlrexx.cmd			Test perl interpreter embedded in REXX
+plan9/9front.patch			Plan9 port: patch for 9front-specific flavor of Plan 9
+plan9/aperl				Plan9 port: shell to make Perl error messages Acme-friendly
+plan9/arpa/inet.h			Plan9 port: replacement C header file
+plan9/buildinfo				Plan9 port: configuration information
+plan9/config.plan9			Plan9 port: config.h template
+plan9/config_h.sample			Plan9 port: 5.32.0 sample config.h
+plan9/config_sh.sample			Plan9 port: 5.32.0 sample config.sh
+plan9/exclude				Plan9 port: tests to skip
+plan9/fndvers				Plan9 port: update Perl version in config.plan9
+plan9/genconfig.pl			Plan9 port: generate config.sh
+plan9/math.h				Plan9 port: Plan9-specific math.h
+plan9/mkfile				Plan9 port: Mk driver for build
+plan9/myconfig.plan9			Plan9 port: script to print config summary
+plan9/plan9.c				Plan9 port: Plan9-specific C routines
+plan9/plan9ish.h			Plan9 port: Plan9-specific C header file
+plan9/setup.rc				Plan9 port: script for easy build+install
+plan9/uninstall.rc			Plan9 port: uninstall script
+plan9/versnum				Plan9 port: script to print version number
+pod/buildtoc				Generate pod/perltoc.pod and pod/roffitall
+pod/Makefile.SH				generate Makefile which makes pods into something else
+pod/perl.pod				Perl overview (this section)
+pod/perl5004delta.pod			Perl changes in version 5.004
+pod/perl5005delta.pod			Perl changes in version 5.005
+pod/perl5100delta.pod			Perl changes in version 5.10.0
+pod/perl5101delta.pod			Perl changes in version 5.10.1
+pod/perl5120delta.pod			Perl changes in version 5.12.0
+pod/perl5121delta.pod			Perl changes in version 5.12.1
+pod/perl5122delta.pod			Perl changes in version 5.12.2
+pod/perl5123delta.pod			Perl changes in version 5.12.3
+pod/perl5124delta.pod			Perl changes in version 5.12.4
+pod/perl5125delta.pod			Perl changes in version 5.12.5
+pod/perl5140delta.pod			Perl changes in version 5.14.0
+pod/perl5141delta.pod			Perl changes in version 5.14.1
+pod/perl5142delta.pod			Perl changes in version 5.14.2
+pod/perl5143delta.pod			Perl changes in version 5.14.3
+pod/perl5144delta.pod			Perl changes in version 5.14.4
+pod/perl5160delta.pod			Perl changes in version 5.16.0
+pod/perl5161delta.pod			Perl changes in version 5.16.1
+pod/perl5162delta.pod			Perl changes in version 5.16.2
+pod/perl5163delta.pod			Perl changes in version 5.16.3
+pod/perl5180delta.pod			Perl changes in version 5.18.0
+pod/perl5181delta.pod			Perl changes in version 5.18.1
+pod/perl5182delta.pod			Perl changes in version 5.18.2
+pod/perl5184delta.pod			Perl changes in version 5.18.4
+pod/perl5200delta.pod			Perl changes in version 5.20.0
+pod/perl5201delta.pod			Perl changes in version 5.20.1
+pod/perl5202delta.pod			Perl changes in version 5.20.2
+pod/perl5203delta.pod			Perl changes in version 5.20.3
+pod/perl5220delta.pod			Perl changes in version 5.22.0
+pod/perl5221delta.pod			Perl changes in version 5.22.1
+pod/perl5222delta.pod			Perl changes in version 5.22.2
+pod/perl5223delta.pod			Perl changes in version 5.22.3
+pod/perl5224delta.pod			Perl changes in version 5.22.4
+pod/perl5240delta.pod			Perl changes in version 5.24.0
+pod/perl5241delta.pod			Perl changes in version 5.24.1
+pod/perl5242delta.pod			Perl changes in version 5.24.2
+pod/perl5243delta.pod			Perl changes in version 5.24.3
+pod/perl5244delta.pod			Perl changes in version 5.24.4
+pod/perl5260delta.pod			Perl changes in version 5.26.0
+pod/perl5261delta.pod			Perl changes in version 5.26.1
+pod/perl5262delta.pod			Perl changes in version 5.26.2
+pod/perl5263delta.pod			Perl changes in version 5.26.3
+pod/perl5280delta.pod			Perl changes in version 5.28.0
+pod/perl5281delta.pod			Perl changes in version 5.28.1
+pod/perl5282delta.pod			Perl changes in version 5.28.2
+pod/perl5283delta.pod			Perl changes in version 5.28.3
+pod/perl5300delta.pod			Perl changes in version 5.30.0
+pod/perl5301delta.pod			Perl changes in version 5.30.1
+pod/perl5302delta.pod			Perl changes in version 5.30.2
+pod/perl5303delta.pod			Perl changes in version 5.30.3
+pod/perl5320delta.pod			Perl changes in version 5.32.0
+pod/perl5321delta.pod			Perl changes in version 5.32.1
+pod/perl5340delta.pod			Perl changes in version 5.34.0
+pod/perl5341delta.pod			Perl changes in version 5.34.1
+pod/perl5342delta.pod			Perl changes in version 5.34.2
+pod/perl5343delta.pod			Perl changes in version 5.34.3
+pod/perl5360delta.pod			Perl changes in version 5.36.0
+pod/perl5361delta.pod			Perl changes in version 5.36.1
+pod/perl5362delta.pod			Perl changes in version 5.36.2
+pod/perl5363delta.pod			Perl changes in version 5.36.3
+pod/perl5380delta.pod			Perl changes in version 5.38.0
+pod/perl5381delta.pod			Perl changes in version 5.38.1
+pod/perl561delta.pod			Perl changes in version 5.6.1
+pod/perl56delta.pod			Perl changes in version 5.6
+pod/perl581delta.pod			Perl changes in version 5.8.1
+pod/perl582delta.pod			Perl changes in version 5.8.2
+pod/perl583delta.pod			Perl changes in version 5.8.3
+pod/perl584delta.pod			Perl changes in version 5.8.4
+pod/perl585delta.pod			Perl changes in version 5.8.5
+pod/perl586delta.pod			Perl changes in version 5.8.6
+pod/perl587delta.pod			Perl changes in version 5.8.7
+pod/perl588delta.pod			Perl changes in version 5.8.8
+pod/perl589delta.pod			Perl changes in version 5.8.9
+pod/perl58delta.pod			Perl changes in version 5.8.0
+pod/perlapio.pod			Perl internal IO abstraction interface
+pod/perlartistic.pod			Perl Artistic License
+pod/perlbook.pod			Perl book information
+pod/perlboot.pod
+pod/perlbot.pod
+pod/perlcall.pod			Perl calling conventions from C
+pod/perlcheat.pod			Perl cheat sheet
+pod/perlclass.pod			Perl class syntax
+pod/perlclassguts.pod			Internals of class syntax
+pod/perlclib.pod			Internal replacements for standard C library functions
+pod/perlcommunity.pod			Perl community information
+pod/perldata.pod			Perl data structures
+pod/perldbmfilter.pod			Perl DBM filters
+pod/perldebguts.pod			Perl debugging guts and tips
+pod/perldebtut.pod			Perl debugging tutorial
+pod/perldebug.pod			Perl debugging
+pod/perldelta.pod			Perl changes since previous version
+pod/perldeprecation.pod			Perl deprecations
+pod/perldiag.pod			Perl diagnostic messages
+pod/perldocstyle.pod			Perl style guide for core docs
+pod/perldsc.pod				Perl data structures intro
+pod/perldtrace.pod			Perl's support for DTrace
+pod/perlebcdic.pod			Considerations for running Perl on EBCDIC platforms
+pod/perlembed.pod			Perl ways to embed perl in your C or C++ application
+pod/perlexperiment.pod			A listing of experimental features in Perl
+pod/perlfilter.pod			Perl source filters
+pod/perlfork.pod			Perl fork() information
+pod/perlform.pod			Perl formats
+pod/perlfunc.pod			Perl built-in functions
+pod/perlgit.pod				Using git with the Perl repository
+pod/perlgov.pod				Perl Rules of Governance
+pod/perlgpl.pod				GNU General Public License
+pod/perlguts.pod			Perl internal functions for those doing extensions
+pod/perlhack.pod			Perl hackers guide
+pod/perlhacktips.pod			Tips for Perl core C code hacking
+pod/perlhacktut.pod			Walk through the creation of a simple C code patch
+pod/perlhist.pod			Perl history records
+pod/perlinterp.pod			Overview of the Perl interpreter source and how it works
+pod/perlintro.pod			Perl introduction for beginners
+pod/perliol.pod				C API for Perl's implementation of IO in Layers
+pod/perlipc.pod				Perl interprocess communication
+pod/perllexwarn.pod			Perl warnings and their control
+pod/perllocale.pod			Perl locale support
+pod/perllol.pod				Perl data structures: arrays of arrays
+pod/perlmod.pod				Perl modules: how they work
+pod/perlmodinstall.pod			Perl modules: how to install from CPAN
+pod/perlmodlib.PL			Generate pod/perlmodlib.pod
+pod/perlmodstyle.pod			Perl modules: how to write modules with style
+pod/perlmroapi.pod			Perl method resolution plugin interface
+pod/perlnewmod.pod			Perl modules: preparing a new module for distribution
+pod/perlnumber.pod			Perl number semantics
+pod/perlobj.pod				Perl objects
+pod/perlootut.pod			Perl OO tutorial for beginners
+pod/perlop.pod				Perl operators and precedence
+pod/perlopentut.pod			Perl open() tutorial
+pod/perlpacktut.pod			Perl pack() and unpack() tutorial
+pod/perlperf.pod			Perl Performance and Optimization Techniques
+pod/perlpod.pod				Perl plain old documentation
+pod/perlpodspec.pod			Perl plain old documentation format specification
+pod/perlpodstyle.pod			Perl POD style guide
+pod/perlpolicy.pod			Perl development policies
+pod/perlport.pod			Perl portability guide
+pod/perlpragma.pod			Perl modules: writing a user pragma
+pod/perlre.pod				Perl regular expressions, the rest of the story
+pod/perlreapi.pod			Perl regular expression plugin interface
+pod/perlrebackslash.pod			Perl regular expression backslash sequences
+pod/perlrecharclass.pod			Perl regular expression character classes
+pod/perlref.pod				Perl references, the rest of the story
+pod/perlreftut.pod			Perl references short introduction
+pod/perlreguts.pod			Perl regular expression engine internals
+pod/perlrepository.pod
+pod/perlrequick.pod			Perl regular expressions quick start
+pod/perlreref.pod			Perl regular expressions quick reference
+pod/perlretut.pod			Perl regular expressions tutorial
+pod/perlrun.pod				Perl execution and options
+pod/perlsec.pod				Perl security
+pod/perlsecpolicy.pod			Perl security report handling policy
+pod/perlsource.pod			Guide to the Perl source tree
+pod/perlstyle.pod			Perl style guide
+pod/perlsub.pod				Perl subroutines
+pod/perlsyn.pod				Perl syntax
+pod/perlthrtut.pod			Perl threads tutorial
+pod/perltie.pod				Perl objects hidden behind simple variables
+pod/perltodo.pod
+pod/perltooc.pod
+pod/perltoot.pod
+pod/perltrap.pod			Perl traps for the unwary
+pod/perlunicode.pod			Perl Unicode support
+pod/perlunicook.pod			Perl Unicode cookbook
+pod/perlunifaq.pod			Perl Unicode FAQ
+pod/perluniintro.pod			Perl Unicode introduction
+pod/perluniprops.pod			Index of Unicode properties in Perl
+pod/perlunitut.pod			Perl Unicode tutorial
+pod/perlutil.pod			utilities packaged with the Perl distribution
+pod/perlvar.pod				Perl predefined variables
+pod/perlvms.pod				Perl notes for VMS
+pod/rofftoc				Generate a table of contents in troff format
+pod/splitman				Splits perlfunc into multiple man pages
+pod/splitpod				Splits perlfunc into multiple pod pages
+Porting/acknowledgements.pl			Generate perldelta acknowledgements text
+Porting/add-package.pl				Add/Update CPAN modules that are part of Core
+Porting/add-pod-file				Utility to add new pod/*.pod file to core distribution
+Porting/bench.pl				Run benchmarks against t/perf/benchmarks
+Porting/bisect.pl				A tool to make bisecting easy
+Porting/bisect-example.sh			Example script to use with git bisect run
+Porting/bisect-runner.pl			Tool to be called by git bisect run
+Porting/bump-perl-version			bump the perl version in relevant files
+Porting/check-cpan-pollution			Check for commits that may wrongly touch CPAN distros
+Porting/checkansi.pl				Check source code for ANSI-C violations
+Porting/checkcfguse.pl				Check that config symbols are being used
+Porting/checkcfgvar.pl				Check that config scripts define all symbols
+Porting/checkpodencoding.pl			Check POD encoding
+Porting/checkURL.pl				Check whether we have working URLs
+Porting/checkVERSION.pl				Check whether we have $VERSIONs
+Porting/cmpVERSION.pl				Compare whether two trees have changed modules
+Porting/config.sh				Sample config.sh
+Porting/config_H				Sample config.h
+Porting/config_h.pl				Reorder config_h.SH after metaconfig
+Porting/core-cpan-diff				Compare core distros with their CPAN equivalents
+Porting/core-team.json				Membership of the Perl Core Team
+Porting/corecpan.pl				Reports outdated dual-lived modules
+Porting/corelist.pl				Generates data for Module::CoreList
+Porting/corelist-diff				Tool to produce corelist diffs
+Porting/corelist-perldelta.pl			Generates data perldelta from Module::CoreList
+Porting/deparse-skips.txt			List of test files to ignore/skip for deparse tests.
+Porting/docs-team-charter.pod			Perl Documentation Team charter
+Porting/epigraphs.pod				the release epigraphs used over the years
+Porting/exclude_contrib.txt			Data about contributors that do not want to be listed in AUTHORS
+Porting/exec-bit.txt				List of files that get +x in release tarball
+Porting/exercise_makedef.pl			Brute force testing for makedef.pl
+Porting/expand-macro.pl				A tool to expand C macro definitions in the Perl source
+Porting/findrfuncs				Find reentrant variants of functions used in an executable
+Porting/git-deltatool				Mark commits for perldelta in git notes
+Porting/git-find-p4-change			Find the change for a p4 change number
+Porting/git-make-p4-refs			Output git refs for each p4 change number, suitable for appending to .git/packed-refs
+Porting/GitUtils.pm				Generate the contents of a .patch file
+Porting/Glossary				Glossary of config.sh variables
+Porting/harness-timer-report.pl			Analyze the timings from the test harness
+Porting/how_to_write_a_perldelta.pod		Bluffer's guide to writing a perldelta.
+Porting/leakfinder.pl				Hacky script for finding memory leaks
+Porting/Maintainers				Program to pretty print info in Maintainers.pl
+Porting/Maintainers.pl				Information about maintainers
+Porting/Maintainers.pm				Library to pretty print info in Maintainers.pl
+Porting/make-rmg-checklist			Generates a checklist 4 the release manager
+Porting/make_dot_patch.pl			Make a .patch file from a git WD
+Porting/make_snapshot.pl			Make a tgz snapshot of our tree with a .patch file in it
+Porting/makemeta				Create the top-level META.yml
+Porting/makerel					Release making utility
+Porting/manicheck				Check against MANIFEST
+Porting/manifest_lib.pl				Library for checking and sorting the MANIFEST
+Porting/manisort				Sort the MANIFEST
+Porting/mksample				Generate Porting/config_H and Porting/config.sh
+Porting/new-perldelta.pl			Generate a new perldelta
+Porting/newtests-perldelta.pl			Generate Perldelta stub for newly added tests
+Porting/perldelta_template.pod			Template for creating new perldelta.pod files
 Porting/perlgov-team-update			Tool to update perlgov from perl-core-teaml
-Porting/perlhist_calculate.pl		Perform calculations to update perlhist
-Porting/pod_lib.pl		Code for handling generated pods
-Porting/pod_rules.pl		generate lists of pod files for Makefiles
-Porting/podtidy			Reformat pod using Pod::Tidy
-Porting/pumpkin.pod		Guidelines and hints for Perl maintainers
-Porting/README.pod			Outline of contents of Porting directory
-Porting/README.y2038		Perl notes for the 2038 fix
+Porting/perlhist_calculate.pl			Perform calculations to update perlhist
+Porting/pod_lib.pl				Code for handling generated pods
+Porting/pod_rules.pl				generate lists of pod files for Makefiles
+Porting/podtidy					Reformat pod using Pod::Tidy
+Porting/pumpkin.pod				Guidelines and hints for Perl maintainers
+Porting/README.pod				Outline of contents of Porting directory
+Porting/README.y2038				Perl notes for the 2038 fix
 Porting/release_announcement_template.txt
-Porting/release_managers_guide.pod	Release Manager's Guide
-Porting/release_schedule.pod	Schedule for future releases
-Porting/rt_list_patches		A tool to help you apply patches from RT
-Porting/security_template.pod	Template for vulnerability announcements
-Porting/sort_perldiag.pl	Keep our diagnostics orderly
-Porting/sync-with-cpan		Sync with CPAN
-Porting/timecheck.c		Test program for the 2038 fix
-Porting/timecheck2.c		Test program for the 2038 fix
-Porting/todo.pod		Perl things to do
-Porting/updateAUTHORS.pl	Tool to automatically update AUTHORS and .mailmap from git log data
-Porting/valgrindpp.pl		Summarize valgrind reports
-Porting/vote_admin_guide.pod	Perlgov Vote Administrator guide
-pp.c				Push/Pop code
-pp.h				Push/Pop code defs
-pp_ctl.c			Push/Pop code for control flow
-pp_hot.c			Push/Pop code for heavily used opcodes
-pp_pack.c			Push/Pop code for pack/unpack
-pp_proto.h			C++ definitions for Push/Pop code
-pp_sort.c			Push/Pop code for sort
-pp_sys.c			Push/Pop code for system interaction
-proto.h				Prototypes
-qnx/ar				QNX implementation of "ar" utility
-qnx/cpp				QNX implementation of preprocessor filter
-qnx/qnx.c			QNX silent matherr callback
-README				The Instructions
-README.aix			Perl notes for AIX
-README.amiga			Perl notes for AmigaOS
-README.android			Perl notes for Android
-README.bs2000			Perl notes for POSIX-BC BS2000
-README.cn			Perl for Simplified Chinese (in UTF-8)
-README.cygwin			Perl notes for Cygwin
-README.freebsd			Perl notes for FreeBSD
-README.haiku			Perl notes for Haiku
-README.hpux			Perl notes for HP-UX
-README.hurd			Perl notes for Hurd
-README.irix			Perl notes for Irix
-README.jp			Perl for Japanese (in EUC-JP)
-README.ko			Perl for Korean (in EUC-KR)
-README.linux			Perl notes for Linux
-README.macosx			Perl notes for Mac OS X
-README.micro			Notes about microperl
-README.openbsd			Perl notes for OpenBSD
-README.os2			Perl notes for OS/2
-README.os390			Perl notes for OS/390
-README.os400			Perl notes for OS/400
-README.plan9			Perl notes for Plan 9
-README.qnx			Perl notes for QNX
-README.riscos			Perl notes for RISC OS
-README.solaris			Perl notes for Solaris
-README.synology			Perl notes for Synology
-README.tru64			Perl notes for Tru64
-README.tw			Perl for Traditional Chinese (in Big5)
-README.vms			Notes about installing the VMS port
-README.vos			Perl notes for Stratus VOS
-README.win32			Perl notes for Windows
-reentr.c			Reentrant interfaces
-reentr.h			Reentrant interfaces
-regcharclass.h			Generated by regen/regcharclass.pl
-regcomp.c			Regular expression compiler
-regcomp.h			Private declarations for above
-regcomp.sym			Data for regnodes.h
-regen.pl			Run all scripts that (re)generate files
-regen/charset_translations.pl	Character set utilities
-regen/ebcdic.pl			Generates ebcdic_tables.h
-regen/embed.pl			Produces {embed,embedvar,proto}.h
-regen/embed_lib.pl		Reads embed.fnc and regen/opcodes
-regen/feature.pl		Generates feature.pm
-regen/genpacksizetables.pl	Generate the size tables for pack/unpack
-regen/keywords.pl		Program to write keywords.h
-regen/lib_cleanup.pl		Generate lib/.gitignore from MANIFEST
-regen/mg_vtable.pl		generate mg_vtable.h
-regen/miniperlmain.pl		generate miniperlmain.c
-regen/mk_invlists.pl		Generates charclass_invlists.h
-regen/mk_PL_charclass.pl	Populate the PL_charclass table
-regen/mph.pl			Generate perfect hashes
-regen/op_private		Definitions of bits in an OP's op_private field
-regen/opcode.pl			Opcode header generator
-regen/opcodes			Opcode data
-regen/overload.pl		generate overload.h
-regen/reentr.pl			Reentrant interfaces
-regen/regcharclass.pl		Generate regcharclass.h from inline data
+Porting/release_managers_guide.pod		Release Manager's Guide
+Porting/release_schedule.pod			Schedule for future releases
+Porting/rt_list_patches				A tool to help you apply patches from RT
+Porting/security_template.pod			Template for vulnerability announcements
+Porting/sort_perldiag.pl			Keep our diagnostics orderly
+Porting/sync-with-cpan				Sync with CPAN
+Porting/test-dist-modules.pl			Test dist/ modules on currently active perl (used for CI)
+Porting/timecheck.c				Test program for the 2038 fix
+Porting/timecheck2.c				Test program for the 2038 fix
+Porting/todo.pod				Perl things to do
+Porting/updateAUTHORS.pl			Tool to automatically update AUTHORS and .mailmap from git log data
+Porting/updateAUTHORS.pm			Brains of updateAUTHORS.pl
+Porting/valgrindpp.pl				Summarize valgrind reports
+Porting/vote_admin_guide.pod			Perlgov Vote Administrator guide
+qnx/ar					QNX implementation of "ar" utility
+qnx/cpp					QNX implementation of preprocessor filter
+qnx/qnx.c				QNX silent matherr callback
+regen/charset_translations.pl		Character set utilities
+regen/ebcdic.pl				Generates ebcdic_tables.h
+regen/embed.pl				Produces {embed,embedvar,proto}.h
+regen/embed_lib.pl			Reads embed.fnc and regen/opcodes
+regen/feature.pl			Generates feature.pm
+regen/genpacksizetables.pl		Generate the size tables for pack/unpack
+regen/HeaderParser.pm			Module used to parse header files
+regen/keywords.pl			Program to write keywords.h
+regen/lib_cleanup.pl			Generate lib/.gitignore from MANIFEST
+regen/mg_vtable.pl			generate mg_vtable.h
+regen/miniperlmain.pl			generate miniperlmain.c
+regen/mk_invlists.pl			Generates charclass_invlists.h
+regen/mk_PL_charclass.pl		Populate the PL_charclass table
+regen/mph.pl				Generate perfect hashes
+regen/op_private			Definitions of bits in an OP's op_private field
+regen/opcode.pl				Opcode header generator
+regen/opcodes				Opcode data
+regen/overload.pl			generate overload.h
+regen/reentr.pl				Reentrant interfaces
+regen/regcharclass.pl			Generate regcharclass.h from inline data
 regen/regcharclass_multi_char_folds.pl	Generate input for regcharclass.pl
-regen/regcomp.pl		Builder of regnodes.h
-regen/regen_lib.pl		Common file routines for generator scripts
-regen/uconfig_h.pl		generate uconfig.h (requires /bin/sh)
-regen/unicode_constants.pl	generate unicode_constants.h
-regen/warnings.pl		Program to write warnings.h and lib/warnings.pm
-regen_perly.pl			generate perly.{act,h,tab} from perly.y
-regexec.c			Regular expression evaluator
-regexp.h			Public declarations for the above
-regnodes.h			Description of nodes of RE engine
-run.c				The interpreter loop
-runtests.SH			A script that generates runtests
-sbox32_hash.h			SBox hash code (32 Bit SBOX based hash function)
-scope.c				Scope entry and exit code
-scope.h				Scope entry and exit header
-SECURITY.md			Add Security Policy for GitHub
-sv.c				Scalar value code
-sv.h				Scalar value header
-sv_inline.h			Perl_newSV_type and required defs
-t/base/cond.t			See if conditionals work
-t/base/if.t			See if if works
-t/base/lex.t			See if lexical items work
-t/base/num.t			See if numbers work
-t/base/pat.t			See if pattern matching works
-t/base/rs.t			See if record-read works
-t/base/term.t			See if various terms work
-t/base/translate.t		See if character set translation works
-t/base/while.t			See if while work
+regen/regcomp.pl			Builder of regnodes.h
+regen/regen_lib.pl			Common file routines for generator scripts
+regen/scope_types.pl			Regenerate scope_types.h
+regen/tidy_embed.pl			Program to clean up embed.fnc manually
+regen/uconfig_h.pl			generate uconfig.h (requires /bin/sh)
+regen/unicode_constants.pl		generate unicode_constants.h
+regen/warnings.pl			Program to write warnings.h and lib/warnings.pm
+t/base/cond.t				See if conditionals work
+t/base/if.t				See if if works
+t/base/lex.t				See if lexical items work
+t/base/num.t				See if numbers work
+t/base/pat.t				See if pattern matching works
+t/base/rs.t				See if record-read works
+t/base/term.t				See if various terms work
+t/base/translate.t			See if character set translation works
+t/base/while.t				See if while work
 t/benchmark/gh7094-speed-up-keys-on-empty-hash.t	Benchmark if keys on empty hashes is fast enough
-t/bigmem/hash.t			Check hashing too large strings throws an exception
-t/bigmem/index.t		Check that index() handles large offsets
-t/bigmem/pos.t			Check that pos() handles large offsets
-t/bigmem/read.t			Check read() handles large offsets
-t/bigmem/regexp.t		Test regular expressions with large strings
-t/bigmem/subst.t		Test s/// with large strings
-t/bigmem/vec.t			Check vec() handles large offsets
-t/charset_tools.pl		To aid in portable testing across platforms with different character sets
-t/cmd/elsif.t			See if else-if works
-t/cmd/for.t			See if for loops work
-t/cmd/mod.t			See if statement modifiers work
-t/cmd/subval.t			See if subroutine values work
-t/cmd/switch.t			See if switch optimizations work
-t/comp/bproto.t			See if builtins conform to their prototypes
-t/comp/cmdopt.t			See if command optimization works
-t/comp/colon.t			See if colons are parsed correctly
-t/comp/decl.t			See if declarations work
-t/comp/filter_exception.t	See if $@ survives source filters
-t/comp/final_line_num.t		See if line numbers are correct at EOF
-t/comp/fold.t			See if constant folding works
-t/comp/form_scope.t		See if format scoping works
-t/comp/hints.aux		Auxiliary file for %^H test
-t/comp/hints.t			See if %^H works
-t/comp/line_debug.t		See if @{"_<$file"} works
-t/comp/line_debug_0.aux		Auxiliary file for @{"_<$file"} test
-t/comp/multiline.t		See if multiline strings work
-t/comp/opsubs.t			See if q() etc. are not parsed as functions
-t/comp/our.t			Tests for our declaration
-t/comp/package.t		See if packages work
-t/comp/package_block.t		See if package block syntax works
-t/comp/parser.t			See if the parser works in edge cases
+t/bigmem/hash.t				Check hashing too large strings throws an exception
+t/bigmem/index.t			Check that index() handles large offsets
+t/bigmem/pos.t				Check that pos() handles large offsets
+t/bigmem/read.t				Check read() handles large offsets
+t/bigmem/regexp.t			Test regular expressions with large strings
+t/bigmem/subst.t			Test s/// with large strings
+t/bigmem/vec.t				Check vec() handles large offsets
+t/charset_tools.pl			To aid in portable testing across platforms with different character sets
+t/class/class.t				See if class declarations work
+t/class/construct.t			See if class constructors work
+t/class/destruct.t			See if class destruction works
+t/class/field.t				See if class field declarations work
+t/class/inherit.t			See if class inheritance works
+t/class/method.t			See if class method declarations work
+t/class/phasers.t			See if class phaser blocks work
+t/class/threads.t			See if classes work across multiple threads
+t/cmd/elsif.t				See if else-if works
+t/cmd/for.t				See if for loops work
+t/cmd/mod.t				See if statement modifiers work
+t/cmd/subval.t				See if subroutine values work
+t/cmd/switch.t				See if switch optimizations work
+t/comp/bproto.t				See if builtins conform to their prototypes
+t/comp/cmdopt.t				See if command optimization works
+t/comp/colon.t				See if colons are parsed correctly
+t/comp/decl.t				See if declarations work
+t/comp/filter_exception.t		See if $@ survives source filters
+t/comp/final_line_num.t			See if line numbers are correct at EOF
+t/comp/fold.t				See if constant folding works
+t/comp/form_scope.t			See if format scoping works
+t/comp/hints.aux			Auxiliary file for %^H test
+t/comp/hints.t				See if %^H works
+t/comp/line_debug.t			See if @{"_<$file"} works
+t/comp/line_debug_0.aux			Auxiliary file for @{"_<$file"} test
+t/comp/multiline.t			See if multiline strings work
+t/comp/opsubs.t				See if q() etc. are not parsed as functions
+t/comp/our.t				Tests for our declaration
+t/comp/package.t			See if packages work
+t/comp/package_block.t			See if package block syntax works
+t/comp/parser.t				See if the parser works in edge cases
 t/comp/parser_run.t			See if parser works in additional edge case
-t/comp/proto.t			See if function prototypes work
-t/comp/redef.t			See if we get correct warnings on redefined subs
-t/comp/require.t		See if require works
-t/comp/retainedlines.t		See if the debugger can retain eval's lines
-t/comp/term.t			See if more terms work
-t/comp/uproto.t			See if the _ prototype works
-t/comp/use.t			See if pragmata work
-t/comp/utf.t			See if UTFs work
-t/harness			Finer diagnostics from test suite
-t/io/argv.t			See if ARGV stuff works
-t/io/binmode.t			See if binmode() works
-t/io/bom.t			See if scripts can start with a byte order mark
-t/io/closepid.t			See if close works for subprocesses
-t/io/crlf.t			See if :crlf works
-t/io/crlf_through.t		See if pipe passes data intact with :crlf
-t/io/data.t			See if DATA works
-t/io/defout.t			See if PL_defoutgv works
-t/io/dup.t			See if >& works right
-t/io/eintr.t			See if code called during EINTR is safe
-t/io/eintr_print.t		Test that print is not returning EINTR
-t/io/errno.t			See if $! is correctly set
-t/io/errnosig.t			Test case for restoration $! when leaving signal handlers
-t/io/fflush.t			See if auto-flush on fork/exec/system/qx works
-t/io/fs.t			See if directory manipulations work
-t/io/getcwd.t			See if Internals::getcwd is sane
-t/io/inplace.t			See if inplace editing works
-t/io/iofile.t			See if we can load IO::File on demand
-t/io/iprefix.t			See if inplace editing works with prefixes
-t/io/layers.t			See if PerlIO layers work
-t/io/msg.t			See if SysV message queues work
-t/io/nargv.t			See if nested ARGV stuff works
-t/io/open.t			See if open works
-t/io/openpid.t			See if open works for subprocesses
+t/comp/proto.t				See if function prototypes work
+t/comp/redef.t				See if we get correct warnings on redefined subs
+t/comp/require.t			See if require works
+t/comp/retainedlines.t			See if the debugger can retain eval's lines
+t/comp/term.t				See if more terms work
+t/comp/uproto.t				See if the _ prototype works
+t/comp/use.t				See if pragmata work
+t/comp/utf.t				See if UTFs work
+t/harness				Finer diagnostics from test suite
+t/io/argv.t				See if ARGV stuff works
+t/io/binmode.t				See if binmode() works
+t/io/bom.t				See if scripts can start with a byte order mark
+t/io/closepid.t				See if close works for subprocesses
+t/io/crlf.t				See if :crlf works
+t/io/crlf_through.t			See if pipe passes data intact with :crlf
+t/io/data.t				See if DATA works
+t/io/defout.t				See if PL_defoutgv works
+t/io/dup.t				See if >& works right
+t/io/eintr.t				See if code called during EINTR is safe
+t/io/eintr_print.t			Test that print is not returning EINTR
+t/io/errno.t				See if $! is correctly set
+t/io/errnosig.t				Test case for restoration $! when leaving signal handlers
+t/io/fflush.t				See if auto-flush on fork/exec/system/qx works
+t/io/fs.t				See if directory manipulations work
+t/io/getcwd.t				See if Internals::getcwd is sane
+t/io/inplace.t				See if inplace editing works
+t/io/iofile.t				See if we can load IO::File on demand
+t/io/iprefix.t				See if inplace editing works with prefixes
+t/io/layers.t				See if PerlIO layers work
+t/io/msg.t				See if SysV message queues work
+t/io/nargv.t				See if nested ARGV stuff works
+t/io/open.t				See if open works
+t/io/openpid.t				See if open works for subprocesses
 t/io/paragraph_mode.t			See if paragraph mode works
-t/io/perlio.t			See if PerlIO works
-t/io/perlio_fail.t		See if bad layers fail
-t/io/perlio_leaks.t		See if PerlIO layers are leaking
-t/io/perlio_open.t		See if certain special forms of open work
-t/io/pipe.t			See if secure pipes work
-t/io/print.t			See if print commands work
-t/io/pvbm.t			See if PVBMs break IO commands
-t/io/read.t			See if read works
-t/io/say.t			See if say works
-t/io/sem.t			See if SysV semaphores work
-t/io/semctl.t			See if SysV semaphore semctl works
-t/io/shm.t			See if SysV shared memory works
-t/io/socket.t			See if socket functions work
-t/io/socketpair.t		See if socketpair function works
-t/io/tell.t			See if file seeking works
-t/io/through.t			See if pipe passes data intact
-t/io/utf8.t			See if file seeking works
-t/japh/abigail.t		Obscure tests
-t/lib/CannotParse.pm		For test case in op/require_errors.t
-t/lib/charnames/alias		Tests of "use charnames" with aliases.
-t/lib/Cname.pm			Test charnames in regexes (op/pat.t)
-t/lib/common.pl			Helper for lib/{warnings,feature}.t
-t/lib/commonsense.t		See if configuration meets basic needs
-t/lib/Count.pm			Helper for t/op/method.t
-t/lib/croak.t			Test calls to Perl_croak() in the C source.
-t/lib/croak/gv			Test croak calls from gv.c
-t/lib/croak/mg			Test croak calls from mg.c
-t/lib/croak/op			Test croak calls from op.c
-t/lib/croak/pp			Test croak calls from pp.c
-t/lib/croak/pp_ctl		Test croak calls from pp_ctl.c
-t/lib/croak/pp_hot		Test croak calls from pp_hot.c
-t/lib/croak/pp_sys		Test croak calls from pp_sys.c
-t/lib/croak/regcomp		Test croak calls from regcomp.c
-t/lib/croak/toke		Test croak calls from toke.c
-t/lib/croak/toke_l1		Test croak calls from toke.c; file is not UTF-8 encoded
-t/lib/cygwin.t			Builtin cygwin function tests
-t/lib/dbmt_common.pl		Common functionality for ?DBM_File tests
-t/lib/deprecate.t		Test deprecate.pm
-t/lib/deprecate/Deprecated.pm	Deprecated module to test deprecate.pm
-t/lib/deprecate/Optionally.pm	Optionally deprecated module to test deprecate.pm
-t/lib/Devel/nodb.pm		Module for t/run/switchd.t
-t/lib/Devel/switchd.pm		Module for t/run/switchd.t
-t/lib/Devel/switchd_empty.pm	Module for t/run/switchd.t
-t/lib/Devel/switchd_goto.pm	Module for t/run/switchd.t
-t/lib/feature/api		Test API for checking features enabled/disabled
+t/io/perlio.t				See if PerlIO works
+t/io/perlio_fail.t			See if bad layers fail
+t/io/perlio_leaks.t			See if PerlIO layers are leaking
+t/io/perlio_open.t			See if certain special forms of open work
+t/io/pipe.t				See if secure pipes work
+t/io/print.t				See if print commands work
+t/io/pvbm.t				See if PVBMs break IO commands
+t/io/read.t				See if read works
+t/io/say.t				See if say works
+t/io/sem.t				See if SysV semaphores work
+t/io/semctl.t				See if SysV semaphore semctl works
+t/io/shm.t				See if SysV shared memory works
+t/io/socket.t				See if socket functions work
+t/io/socketpair.t			See if socketpair function works
+t/io/tell.t				See if file seeking works
+t/io/through.t				See if pipe passes data intact
+t/io/utf8.t				See if file seeking works
+t/japh/abigail.t			Obscure tests
+t/lib/caller/Apack.pm			test Module for caller.t and t/op/hook/require.t
+t/lib/caller/Bicycle.pm			test Module for t/op/hook/require.t (cyclic)
+t/lib/caller/Bpack.pm			test Module for caller.t and t/op/hook/require.t
+t/lib/caller/Cpack.pm			test Module for caller.t and t/op/hook/require.t
+t/lib/caller/Cycle.pm			test Module for t/op/hook/require.t (cyclic)
+t/lib/caller/Foo.pm			test Module for caller.t and t/op/hook/require.t
+t/lib/caller/Tricycle.pm		test Module for t/op/hook/require.t (cyclic)
+t/lib/CannotParse.pm			For test case in op/require_errors.t
+t/lib/charnames/alias			Tests of "use charnames" with aliases.
+t/lib/Cname.pm				Test charnames in regexes (op/pat.t)
+t/lib/common.pl				Helper for lib/{warnings,feature}.t
+t/lib/commonsense.t			See if configuration meets basic needs
+t/lib/Count.pm				Helper for t/op/method.t
+t/lib/croak.t				Test calls to Perl_croak() in the C source.
+t/lib/croak/class			Test croak calls from class.c
+t/lib/croak/gv				Test croak calls from gv.c
+t/lib/croak/mg				Test croak calls from mg.c
+t/lib/croak/op				Test croak calls from op.c
+t/lib/croak/pp				Test croak calls from pp.c
+t/lib/croak/pp_ctl			Test croak calls from pp_ctl.c
+t/lib/croak/pp_hot			Test croak calls from pp_hot.c
+t/lib/croak/pp_sys			Test croak calls from pp_sys.c
+t/lib/croak/regcomp			Test croak calls from regcomp.c
+t/lib/croak/toke			Test croak calls from toke.c
+t/lib/croak/toke_l1			Test croak calls from toke.c; file is not UTF-8 encoded
+t/lib/cygwin.t				Builtin cygwin function tests
+t/lib/dbmt_common.pl			Common functionality for ?DBM_File tests
+t/lib/deprecate.t			Test deprecate.pm
+t/lib/deprecate/Deprecated.pm		Deprecated module to test deprecate.pm
+t/lib/deprecate/Optionally.pm		Optionally deprecated module to test deprecate.pm
+t/lib/Devel/nodb.pm			Module for t/run/switchd.t
+t/lib/Devel/switchd.pm			Module for t/run/switchd.t
+t/lib/Devel/switchd_empty.pm		Module for t/run/switchd.t
+t/lib/Devel/switchd_goto.pm		Module for t/run/switchd.t
+t/lib/Dies.pm				For test case in op/require_errors.t
+t/lib/feature/api			Test API for checking features enabled/disabled
 t/lib/feature/bareword_filehandles	Tests for enabling/disabling bareword_filehandles feature
-t/lib/feature/bits		Tests for feature bit handling
-t/lib/feature/bundle		Tests for feature bundles
-t/lib/feature/implicit		Tests for implicit loading of feature.pm
-t/lib/feature/indirect		Tests for enabling/disabling indirect method calls
-t/lib/feature/multidimensional	Tests for enabling/disabling $foo{$x, $y} => $foo{join($;, $x, $y)}
-t/lib/feature/nonesuch		Tests for enabling/disabling nonexistent feature
-t/lib/feature/removed		Tests for enabling/disabling removed feature
-t/lib/feature/say		Tests for enabling/disabling say feature
-t/lib/feature/switch		Tests for enabling/disabling switch feature
-t/lib/GH_15109/Apack.pm		test Module for caller.t
-t/lib/GH_15109/Bpack.pm		test Module for caller.t
-t/lib/GH_15109/Cpack.pm		test Module for caller.t
-t/lib/GH_15109/Foo.pm		test Module for caller.t
-t/lib/h2ph.h			Test header file for h2ph
-t/lib/h2ph.pht			Generated output from h2ph.h by h2ph, for comparison
-t/lib/locale/latin1		Part of locale.t in Latin 1
-t/lib/locale/utf8		Part of locale.t in UTF8
-t/lib/mypragma.pm		An example user pragma
-t/lib/mypragma.t		Test the example user pragma
-t/lib/no_load.t			Test that some modules don't load others
-t/lib/overload_fallback.t	Test that using overload 2x in a scope doesn't clobber fallback
-t/lib/overload_nomethod.t	Test that nomethod works as expected
-t/lib/proxy_constant_subs.t	Test that Proxy Constant Subs behave correctly
-t/lib/Sans_mypragma.pm		Test module for t/lib/mypragma.t
-t/lib/strict/refs		Tests of "use strict 'refs'" for strict.t
-t/lib/strict/subs		Tests of "use strict 'subs'" for strict.t
-t/lib/strict/vars		Tests of "use strict 'vars'" for strict.t
-t/lib/subs/subs			Tests of "use subs"
-t/lib/test_require.pm		A test file for t/op/inccode.t
-t/lib/test_use.pm		A test pragma for t/comp/use.t
-t/lib/test_use_14937.pm		A test pragma for t/comp/use.t
-t/lib/universal.t		Tests for functions in universal.c
-t/lib/warnings/1global		Tests of global warnings for warnings.t
-t/lib/warnings/2use		Tests for "use warnings" for warnings.t
-t/lib/warnings/3both		Tests for interaction of $^W and "use warnings"
-t/lib/warnings/4lint		Tests for -W switch
-t/lib/warnings/5nolint		Tests for -X switch
-t/lib/warnings/6default		Tests default warnings
-t/lib/warnings/7fatal		Tests fatal warnings
-t/lib/warnings/8signal		Tests warnings + __WARN__ and __DIE__
-t/lib/warnings/9enabled		Tests warnings
-t/lib/warnings/9uninit		Tests "Use of uninitialized" warnings
-t/lib/warnings/av		Tests for av.c for warnings.t
-t/lib/warnings/builtin		Tests for builtin.c for warnings.t
-t/lib/warnings/doio		Tests for doio.c for warnings.t
-t/lib/warnings/gv		Tests for gv.c for warnings.t
-t/lib/warnings/hv		Tests for hv.c for warnings.t
-t/lib/warnings/malloc		Tests for malloc.c for warnings.t
-t/lib/warnings/mg		Tests for mg.c for warnings.t
-t/lib/warnings/op		Tests for op.c for warnings.t
-t/lib/warnings/pad		Tests for pad.c for warnings.t
-t/lib/warnings/perl		Tests for perl.c for warnings.t
-t/lib/warnings/perlio		Tests for perlio.c for warnings.t
-t/lib/warnings/pp		Tests for pp.c for warnings.t
-t/lib/warnings/pp_ctl		Tests for pp_ctl.c for warnings.t
-t/lib/warnings/pp_hot		Tests for pp_hot.c for warnings.t
-t/lib/warnings/pp_pack		Tests for pp_pack.c for warnings.t
-t/lib/warnings/pp_sys		Tests for pp_sys.c for warnings.t
-t/lib/warnings/regcomp		Tests for regcomp.c for warnings.t
-t/lib/warnings/regexec		Tests for regexec.c for warnings.t
-t/lib/warnings/run		Tests for run.c for warnings.t
-t/lib/warnings/sv		Tests for sv.c for warnings.t
-t/lib/warnings/taint		Tests for taint.c for warnings.t
-t/lib/warnings/toke		Tests for toke.c for warnings.t
-t/lib/warnings/universal	Tests for universal.c for warnings.t
-t/lib/warnings/utf8		Tests for utf8.c for warnings.t
-t/lib/warnings/util		Tests for util.c for warnings.t
-t/loc_tools.pl			Common functions for finding platform's locales
-t/mro/basic.t			mro tests
-t/mro/basic_01_c3.t		mro tests
-t/mro/basic_01_c3_utf8.t	utf8 mro tests
-t/mro/basic_01_dfs.t		mro tests
-t/mro/basic_01_dfs_utf8.t	utf8 mro tests
-t/mro/basic_02_c3.t		mro tests
-t/mro/basic_02_c3_utf8.t	utf8 mro tests
-t/mro/basic_02_dfs.t		mro tests
-t/mro/basic_02_dfs_utf8.t	utf8 mro tests
-t/mro/basic_03_c3.t		mro tests
-t/mro/basic_03_c3_utf8.t	utf8 mro tests
-t/mro/basic_03_dfs.t		mro tests
-t/mro/basic_03_dfs_utf8.t	utf8 mro tests
-t/mro/basic_04_c3.t		mro tests
-t/mro/basic_04_c3_utf8.t	utf8 mro tests
-t/mro/basic_04_dfs.t		mro tests
-t/mro/basic_04_dfs_utf8.t	utf8 mro tests
-t/mro/basic_05_c3.t		mro tests
-t/mro/basic_05_c3_utf8.t	utf8 mro tests
-t/mro/basic_05_dfs.t		mro tests
-t/mro/basic_05_dfs_utf8.t	utf8 mro tests
-t/mro/basic_utf8.t		utf8 mro tests
-t/mro/c3_with_overload.t	mro tests
-t/mro/c3_with_overload_utf8.t	utf8 mro tests
-t/mro/complex_c3.t		mro tests
-t/mro/complex_c3_utf8.t		utf8 mro tests
-t/mro/complex_dfs.t		mro tests
-t/mro/complex_dfs_utf8.t	utf8 mro tests
-t/mro/dbic_c3.t			mro tests
-t/mro/dbic_c3_utf8.t		utf8 mro tests
-t/mro/dbic_dfs.t		mro tests
-t/mro/dbic_dfs_utf8.t		utf8 mro tests
-t/mro/inconsistent_c3.t		mro tests
-t/mro/inconsistent_c3_utf8.t	utf8 mro tests
-t/mro/isa_aliases.t		tests for shared @ISA arrays
-t/mro/isa_aliases_utf8.t	utf8 mro tests
-t/mro/isa_c3.t			test for optimisatised mro_get_linear_isa_c3
-t/mro/isa_c3_utf8.t		utf8 mro tests
-t/mro/isa_dfs.t			test for optimisatised mro_get_linear_isa_dfs
-t/mro/isa_dfs_utf8.t		utf8 mro tests
-t/mro/isarev.t			PL_isarev/mro::get_isarev tests
-t/mro/isarev_utf8.t		utf8 mro tests
-t/mro/method_caching.t		mro tests
-t/mro/method_caching_utf8.t	utf8 mro tests
-t/mro/next_edgecases.t		mro tests
-t/mro/next_edgecases_utf8.t	utf8 mro tests
-t/mro/next_goto.t		mro tests
-t/mro/next_goto_utf8.t		utf8 mro tests
-t/mro/next_inanon.t		mro tests
-t/mro/next_inanon_utf8.t	utf8 mro tests
-t/mro/next_ineval.t		mro tests
-t/mro/next_ineval_utf8.t	utf8 mro tests
-t/mro/next_method.t		mro tests
-t/mro/next_method_utf8.t	utf8 mro tests
-t/mro/next_NEXT.t		mro tests
-t/mro/next_NEXT_utf8.t		utf8 mro tests
-t/mro/next_skip.t		mro tests
-t/mro/next_skip_utf8.t		utf8 mro tests
-t/mro/overload_c3.t		mro tests
-t/mro/overload_c3_utf8.t	utf8 mro tests
-t/mro/overload_dfs.t		mro tests
-t/mro/package_aliases.t		mro tests
-t/mro/package_aliases_utf8.t	utf8 mro tests
-t/mro/pkg_gen.t			mro tests
-t/mro/pkg_gen_utf8.t		utf8 mro tests
-t/mro/recursion_c3.t		mro tests
-t/mro/recursion_c3_utf8.t	utf8 mro tests
-t/mro/recursion_dfs.t		mro tests
-t/mro/recursion_dfs_utf8.t	utf8 mro tests
-t/mro/vulcan_c3.t		mro tests
-t/mro/vulcan_c3_utf8.t		utf8 mro tests
-t/mro/vulcan_dfs.t		mro tests
-t/mro/vulcan_dfs_utf8.t		utf8 mro tests
-t/op/64bitint.t			See if 64 bit integers work
-t/op/aassign.t			test list assign
-t/op/alarm.t			See if alarm works
-t/op/anonconst.t		See if :const works
-t/op/anonsub.t			See if anonymous subroutines work
-t/op/append.t			See if . works
-t/op/args.t			See if operations on @_ work
-t/op/arith2.t			See if arithmetic works
-t/op/array.t			See if array operations work
-t/op/assignwarn.t		See if OP= operators warn correctly for undef targets
-t/op/attrhand.t			See if attribute handlers work
-t/op/attrproto.t		See if the prototype attribute works
-t/op/attrs.t			See if attributes on declarations work
-t/op/auto.t			See if autoincrement et all work
-t/op/avhv.t			See if pseudo-hashes work
-t/op/bless.t			See if bless works
-t/op/blocks.t			See if BEGIN and friends work
-t/op/bool.t			Check misc details of boolean values
-t/op/bop.t			See if bitops work
-t/op/caller.pl			Tests shared between caller.t and XS op.t
-t/op/caller.t			See if caller() works
-t/op/catch.t			See if catching exception works
-t/op/chars.t			See if character escapes work
-t/op/chdir.t			See if chdir works
-t/op/chop.t			See if chop works
-t/op/chr.t			See if chr works
-t/op/closure.t			See if closures work
-t/op/closure_test.pl		Extra file for closure.t
-t/op/cmpchain.t			See if comparison chaining works
-t/op/concat2.t			Tests too complex for concat.t
-t/op/cond.t			See if conditional expressions work
-t/op/const-optree.t		Tests for sub(){...} becoming constant
-t/op/context.t			See if context propagation works
-t/op/coreamp.t			Test &foo() calls for CORE subs
-t/op/coresubs.t			Generic tests for CORE subs
-t/op/cproto.t			Check builtin prototypes
-t/op/crypt.t			See if crypt works
-t/op/current_sub.t		__SUB__ tests
-t/op/dbm.t			See if dbmopen/dbmclose work
-t/op/decl-refs.t		See if my \$foo works
-t/op/defer.t			See if defer blocks work
-t/op/defined.t			See if defined() edge cases work
-t/op/defins.t			See if auto-insert of defined() works
-t/op/delete.t			See if delete works
-t/op/die.t			See if die works
-t/op/die_except.t		See if die/eval avoids $@ clobberage
-t/op/die_exit.t			See if die and exit status interaction works
-t/op/die_keeperr.t		See if G_KEEPERR works for destructors
-t/op/die_unwind.t		Check die/eval early-$@ backcompat hack
-t/op/do.t			See if subroutines work
-t/op/dor.t			See if defined-or (//) works
-t/op/dump.t			See if dump works.
-t/op/each.t			See if hash iterators work
-t/op/each_array.t		See if array iterators work
-t/op/eval.t			See if eval operator works
-t/op/evalbytes.t		See if evalbytes operator works
-t/op/exec.t			See if exec, system and qx work
-t/op/exists_sub.t		See if exists(&sub) works
-t/op/exp.t			See if math functions work
-t/op/fh.t			See if filehandles work
-t/op/filehandle.t		Tests for https://github.com/Perl/perl5/issues/10133
-t/op/filetest.t			See if file tests work
-t/op/filetest_stack_ok.t	See if file tests leave their argument on the stack
-t/op/filetest_t.t		See if -t file test works
-t/op/flip.t			See if range operator works
-t/op/for.t			See if for loops work
-t/op/for-many.t			See if n-at-a-time for loops work
-t/op/fork.t			See if fork works
-t/op/fresh_perl_utf8.t		UTF8 tests for pads and gvs
-t/op/getpid.t			See if $$ and getppid work with threads
-t/op/getppid.t			See if getppid works
-t/op/glob.t			See if <*> works
-t/op/gmagic.t			See if GMAGIC works
-t/op/goto.t			See if goto works
-t/op/goto_xs.t			See if "goto &sub" works on XSUBs
-t/op/grent.t			See if getgr*() functions work
-t/op/grep.t			See if grep() and map() work
-t/op/groups.t			See if $( works
-t/op/gv.t			See if typeglobs work
-t/op/hash.t			See if the complexity attackers are repelled
-t/op/hash-clear-placeholders.t	Tests for corner cases in S_clear_placeholders
-t/op/hash-rt85026.t		See if hash iteration/deletion works
-t/op/hashassign.t		See if hash assignments work
-t/op/hashwarn.t			See if warnings for bad hash assignments work
-t/op/heredoc.t			See if heredoc edge and corner cases work
-t/op/hexfp.t			See if hexadecimal float literals work
-t/op/inc.t			See if inc/dec of integers near 32 bit limit work
-t/op/inccode.t			See if coderefs work in @INC
-t/op/inccode-tie.t		See if tie to @INC works
-t/op/incfilter.t		See if the source filters in coderef-in-@INC work
-t/op/index.t			See if index works
-t/op/index_thr.t		See if index works in another thread
-t/op/infnan.t			See if inf/nan work
-t/op/int.t			See if int works
-t/op/isa.t			See if isa works
-t/op/join.t			See if join works
-t/op/kill0.t			See if kill works
-t/op/kill0_child		Process tree script that is kill()ed
-t/op/kvaslice.t			See if index/value array slices work
-t/op/kvhslice.t			See if key/value hash slices work
-t/op/lc.t			See if lc, uc, lcfirst, ucfirst, quotemeta work
-t/op/leaky-magic.t		See whether vars' magic leaks into packages
-t/op/length.t			See if length works
-t/op/lex.t			Tests too complex for t/base/lex.t
-t/op/lex_assign.t		See if ops involving lexicals or pad temps work
-t/op/lexsub.t			See if lexical subroutines work
-t/op/lfs.t			See if large files work for perlio
-t/op/list.t			See if lists and list slices work
-t/op/local.t			See if local works
-t/op/localref.t			See if local ${deref} works
-t/op/lock.t			Tests for lock args & retval (no threads)
-t/op/loopctl.t			See if next/last/redo work
-t/op/lop.t			See if logical operators work
-t/op/lvref.t			See if aliasing via references works
-t/op/magic.t			See if magic variables work
-t/op/magic-27839.t		Test for #27839, skipped for minitest
-t/op/method.t			See if method calls work
-t/op/mkdir.t			See if mkdir works
-t/op/multideref.t		See if "$a[0]{foo}[$i]{$k}" etc works
-t/op/my.t			See if lexical scoping works
-t/op/my_stash.t			See if my Package works
-t/op/mydef.t			See if "my $_" works
-t/op/negate.t			See if unary minus works
-t/op/not.t			See if not works
-t/op/numconvert.t		See if accessing fields does not change numeric values
-t/op/numify.t			See if string-to-number conversion works
-t/op/numify_chkflags.t		See if string-to-number conversion behaves correctly
-t/op/oct.t			See if oct and hex work
-t/op/or.t			See if || works in weird situations
-t/op/ord.t			See if ord works
-t/op/overload_integer.t		See if overload::constant for integer works after "use".
-t/op/override.t			See if operator overriding works
-t/op/pack.t			See if pack and unpack work
-t/op/packagev.t			See if package VERSION work
-t/op/pos.t			See if pos works
-t/op/postfixderef.t		See if ->$* ->@[ et al work
-t/op/pow.t			See if ** works
-t/op/print.t			See if print works
-t/op/protowarn.t		See if the illegalproto warnings work
-t/op/push.t			See if push and pop work
-t/op/pwent.t			See if getpw*() functions work
-t/op/qr.t			See if qr works
-t/op/quotemeta.t		See if quotemeta works
-t/op/rand.t			See if rand works
-t/op/range.t			See if .. works
-t/op/read.t			See if read() works
-t/op/readdir.t			See if readdir() works
-t/op/readline.t			See if <> / readline / rcatline work
-t/op/recurse.t			See if deep recursion works
-t/op/ref.t			See if refs and objects work
-t/op/repeat.t			See if x operator works
-t/op/require_37033.t		See if require always closes rsfp
-t/op/require_errors.t		See if errors from require are reported correctly
-t/op/require_override.t		See if require handles no argument properly
-t/op/reset.t			See if reset operator works
-t/op/reverse.t			See if reverse operator works
-t/op/rt119311.t			Test bug #119311 (die/DESTROY/recursion)
-t/op/runlevel.t			See if die() works from perl_call_*()
-t/op/select.t			See if 0- and 1-argument select works
-t/op/setpgrpstack.t		See if setpgrp works
-t/op/sigdispatch.t		See if signals are always dispatched
-t/op/signame_canonical.t	See if duplicate signal names always use the canonical name when the handler is invoked.
-t/op/signatures.t		See if sub signatures work
-t/op/sigsystem.t		See if system and SIGCHLD handlers play together nicely
-t/op/sleep.t			See if sleep works
-t/op/smartkve.t			See if smart deref for keys/values/each works
-t/op/smartmatch.t		See if the ~~ operator works
-t/op/sort.t			See if sort works
-t/op/splice.t			See if splice works
-t/op/split.t			See if split works
-t/op/split_unicode.t		Test split /\s/ and Unicode
-t/op/sprintf.t			See if sprintf works
-t/op/sprintf2.t			See if sprintf works
-t/op/srand.t			See if srand works
-t/op/sselect.t			See if 4 argument select works
-t/op/stash.t			See if %:: stashes work
-t/op/stash_parse_gv.t		See if parse_gv_stash_name works
-t/op/stat.t			See if stat works
-t/op/stat_errors.t		See if stat and file tests handle threshold errors
-t/op/state.t			See if state variables work
-t/op/study.t			See if study works
-t/op/studytied.t		See if study works with tied scalars
-t/op/sub.t			See if subroutines work
-t/op/sub_lval.t			See if lvalue subroutines work
-t/op/substr.t			See if substr works
-t/op/substr_thr.t		See if substr works in another thread
-t/op/svflags.t			See if POK is set as expected.
-t/op/svleak.pl			Test file for svleak.t
-t/op/svleak.t			See if stuff leaks SVs
-t/op/switch.t			See if switches (given/when) work
-t/op/symbolcache.t		See if undef/delete works on stashes with functions
-t/op/syscall_emulator.t		Tests that syscall works via the emulator
-t/op/sysio.t			See if sysread and syswrite work
-t/op/taint.t			See if tainting works
-t/op/threads.t			Misc. tests for perl features with threads
-t/op/threads-dirh.t		Test interaction of threads and dir handles
-t/op/threads_create.pl		Ancillary file for t/op/threads.t
-t/op/tie.t			See if tie/untie functions work
-t/op/tie_fetch_count.t		See if FETCH is only called once on tied variables
-t/op/tiearray.t			See if tie for arrays works
-t/op/tiehandle.t		See if tie for handles works
-t/op/tiehash.t			Tests for tied hashes using test.pl
-t/op/time.t			See if time functions work
-t/op/time_loop.t		Test that very large values don't hang gmtime and localtime.
-t/op/tr.t			See if tr works
-t/op/tr_latin1.t		See if tr works, but file isn't encoded in UTF-8
-t/op/try.t			See if try works
-t/op/undef.t			See if undef works
-t/op/universal.t		See if UNIVERSAL class works
-t/op/unlink.t			See if unlink works
-t/op/unshift.t			See if unshift works
-t/op/upgrade.t			See if upgrading and assigning scalars works
-t/op/utf8cache.t		Tests malfunctions of utf8 cache
-t/op/utf8decode.t		See if UTF-8 decoding works
-t/op/utf8magic.t		See if utf8:: functions handle magic variables
-t/op/utfhash.t			See if utf8 keys in hashes behave
-t/op/utftaint.t			See if utf8 and taint work together
-t/op/vec.t			See if vectors work
-t/op/ver.t			See if v-strings and the %v format flag work
-t/op/waitpid.t			See if waitpid works
-t/op/wantarray.t		See if wantarray works
-t/op/warn.t			See if warn works
-t/op/while.t			See if while loops work
-t/op/write.t			See if write works (formats work)
-t/op/yadayada.t			See if ... works
+t/lib/feature/bits			Tests for feature bit handling
+t/lib/feature/bundle			Tests for feature bundles
+t/lib/feature/implicit			Tests for implicit loading of feature.pm
+t/lib/feature/indirect			Tests for enabling/disabling indirect method calls
+t/lib/feature/multidimensional		Tests for enabling/disabling $foo{$x, $y} => $foo{join($;, $x, $y)}
+t/lib/feature/nonesuch			Tests for enabling/disabling nonexistent feature
+t/lib/feature/removed			Tests for enabling/disabling removed feature
+t/lib/feature/say			Tests for enabling/disabling say feature
+t/lib/feature/switch			Tests for enabling/disabling switch feature
+t/lib/h2ph.h				Test header file for h2ph
+t/lib/h2ph.pht				Generated output from h2ph.h by h2ph, for comparison
+t/lib/locale/latin1			Part of locale.t in Latin 1
+t/lib/locale/utf8			Part of locale.t in UTF8
+t/lib/mypragma.pm			An example user pragma
+t/lib/mypragma.t			Test the example user pragma
+t/lib/no_load.t				Test that some modules don't load others
+t/lib/overload_fallback.t		Test that using overload 2x in a scope doesn't clobber fallback
+t/lib/overload_nomethod.t		Test that nomethod works as expected
+t/lib/proxy_constant_subs.t		Test that Proxy Constant Subs behave correctly
+t/lib/Sans_mypragma.pm			Test module for t/lib/mypragma.t
+t/lib/strict/refs			Tests of "use strict 'refs'" for strict.t
+t/lib/strict/subs			Tests of "use strict 'subs'" for strict.t
+t/lib/strict/vars			Tests of "use strict 'vars'" for strict.t
+t/lib/subs/subs				Tests of "use subs"
+t/lib/test_require.pm			A test file for t/op/inccode.t
+t/lib/test_use.pm			A test pragma for t/comp/use.t
+t/lib/test_use_14937.pm			A test pragma for t/comp/use.t
+t/lib/universal.t			Tests for functions in universal.c
+t/lib/warnings/1global			Tests of global warnings for warnings.t
+t/lib/warnings/2use			Tests for "use warnings" for warnings.t
+t/lib/warnings/3both			Tests for interaction of $^W and "use warnings"
+t/lib/warnings/4lint			Tests for -W switch
+t/lib/warnings/5nolint			Tests for -X switch
+t/lib/warnings/6default			Tests default warnings
+t/lib/warnings/7fatal			Tests fatal warnings
+t/lib/warnings/8signal			Tests warnings + __WARN__ and __DIE__
+t/lib/warnings/9enabled			Tests warnings
+t/lib/warnings/9uninit			Tests "Use of uninitialized" warnings
+t/lib/warnings/av			Tests for av.c for warnings.t
+t/lib/warnings/builtin			Tests for builtin.c for warnings.t
+t/lib/warnings/class			Tests for class.c for warnings.t
+t/lib/warnings/doio			Tests for doio.c for warnings.t
+t/lib/warnings/gv			Tests for gv.c for warnings.t
+t/lib/warnings/hv			Tests for hv.c for warnings.t
+t/lib/warnings/malloc			Tests for malloc.c for warnings.t
+t/lib/warnings/mg			Tests for mg.c for warnings.t
+t/lib/warnings/op			Tests for op.c for warnings.t
+t/lib/warnings/pad			Tests for pad.c for warnings.t
+t/lib/warnings/perl			Tests for perl.c for warnings.t
+t/lib/warnings/perlio			Tests for perlio.c for warnings.t
+t/lib/warnings/pp			Tests for pp.c for warnings.t
+t/lib/warnings/pp_ctl			Tests for pp_ctl.c for warnings.t
+t/lib/warnings/pp_hot			Tests for pp_hot.c for warnings.t
+t/lib/warnings/pp_pack			Tests for pp_pack.c for warnings.t
+t/lib/warnings/pp_sys			Tests for pp_sys.c for warnings.t
+t/lib/warnings/regcomp			Tests for regcomp.c for warnings.t
+t/lib/warnings/regexec			Tests for regexec.c for warnings.t
+t/lib/warnings/run			Tests for run.c for warnings.t
+t/lib/warnings/sv			Tests for sv.c for warnings.t
+t/lib/warnings/taint			Tests for taint.c for warnings.t
+t/lib/warnings/toke			Tests for toke.c for warnings.t
+t/lib/warnings/universal		Tests for universal.c for warnings.t
+t/lib/warnings/utf8			Tests for utf8.c for warnings.t
+t/lib/warnings/util			Tests for util.c for warnings.t
+t/loc_tools.pl				Common functions for finding platform's locales
+t/mro/basic.t				mro tests
+t/mro/basic_01_c3.t			mro tests
+t/mro/basic_01_c3_utf8.t		utf8 mro tests
+t/mro/basic_01_dfs.t			mro tests
+t/mro/basic_01_dfs_utf8.t		utf8 mro tests
+t/mro/basic_02_c3.t			mro tests
+t/mro/basic_02_c3_utf8.t		utf8 mro tests
+t/mro/basic_02_dfs.t			mro tests
+t/mro/basic_02_dfs_utf8.t		utf8 mro tests
+t/mro/basic_03_c3.t			mro tests
+t/mro/basic_03_c3_utf8.t		utf8 mro tests
+t/mro/basic_03_dfs.t			mro tests
+t/mro/basic_03_dfs_utf8.t		utf8 mro tests
+t/mro/basic_04_c3.t			mro tests
+t/mro/basic_04_c3_utf8.t		utf8 mro tests
+t/mro/basic_04_dfs.t			mro tests
+t/mro/basic_04_dfs_utf8.t		utf8 mro tests
+t/mro/basic_05_c3.t			mro tests
+t/mro/basic_05_c3_utf8.t		utf8 mro tests
+t/mro/basic_05_dfs.t			mro tests
+t/mro/basic_05_dfs_utf8.t		utf8 mro tests
+t/mro/basic_utf8.t			utf8 mro tests
+t/mro/c3_with_overload.t		mro tests
+t/mro/c3_with_overload_utf8.t		utf8 mro tests
+t/mro/complex_c3.t			mro tests
+t/mro/complex_c3_utf8.t			utf8 mro tests
+t/mro/complex_dfs.t			mro tests
+t/mro/complex_dfs_utf8.t		utf8 mro tests
+t/mro/dbic_c3.t				mro tests
+t/mro/dbic_c3_utf8.t			utf8 mro tests
+t/mro/dbic_dfs.t			mro tests
+t/mro/dbic_dfs_utf8.t			utf8 mro tests
+t/mro/inconsistent_c3.t			mro tests
+t/mro/inconsistent_c3_utf8.t		utf8 mro tests
+t/mro/isa_aliases.t			tests for shared @ISA arrays
+t/mro/isa_aliases_utf8.t		utf8 mro tests
+t/mro/isa_c3.t				test for optimisatised mro_get_linear_isa_c3
+t/mro/isa_c3_utf8.t			utf8 mro tests
+t/mro/isa_dfs.t				test for optimisatised mro_get_linear_isa_dfs
+t/mro/isa_dfs_utf8.t			utf8 mro tests
+t/mro/isarev.t				PL_isarev/mro::get_isarev tests
+t/mro/isarev_utf8.t			utf8 mro tests
+t/mro/method_caching.t			mro tests
+t/mro/method_caching_utf8.t		utf8 mro tests
+t/mro/next_edgecases.t			mro tests
+t/mro/next_edgecases_utf8.t		utf8 mro tests
+t/mro/next_goto.t			mro tests
+t/mro/next_goto_utf8.t			utf8 mro tests
+t/mro/next_inanon.t			mro tests
+t/mro/next_inanon_utf8.t		utf8 mro tests
+t/mro/next_ineval.t			mro tests
+t/mro/next_ineval_utf8.t		utf8 mro tests
+t/mro/next_method.t			mro tests
+t/mro/next_method_utf8.t		utf8 mro tests
+t/mro/next_NEXT.t			mro tests
+t/mro/next_NEXT_utf8.t			utf8 mro tests
+t/mro/next_skip.t			mro tests
+t/mro/next_skip_utf8.t			utf8 mro tests
+t/mro/overload_c3.t			mro tests
+t/mro/overload_c3_utf8.t		utf8 mro tests
+t/mro/overload_dfs.t			mro tests
+t/mro/package_aliases.t			mro tests
+t/mro/package_aliases_utf8.t		utf8 mro tests
+t/mro/pkg_gen.t				mro tests
+t/mro/pkg_gen_utf8.t			utf8 mro tests
+t/mro/recursion_c3.t			mro tests
+t/mro/recursion_c3_utf8.t		utf8 mro tests
+t/mro/recursion_dfs.t			mro tests
+t/mro/recursion_dfs_utf8.t		utf8 mro tests
+t/mro/vulcan_c3.t			mro tests
+t/mro/vulcan_c3_utf8.t			utf8 mro tests
+t/mro/vulcan_dfs.t			mro tests
+t/mro/vulcan_dfs_utf8.t			utf8 mro tests
+t/op/64bitint.t				See if 64 bit integers work
+t/op/aassign.t				test list assign
+t/op/alarm.t				See if alarm works
+t/op/anonconst.t			See if :const works
+t/op/anonsub.t				See if anonymous subroutines work
+t/op/append.t				See if . works
+t/op/args.t				See if operations on @_ work
+t/op/arith2.t				See if arithmetic works
+t/op/array.t				See if array operations work
+t/op/assignwarn.t			See if OP= operators warn correctly for undef targets
+t/op/attrhand.t				See if attribute handlers work
+t/op/attrproto.t			See if the prototype attribute works
+t/op/attrs.t				See if attributes on declarations work
+t/op/auto.t				See if autoincrement et all work
+t/op/avhv.t				See if pseudo-hashes work
+t/op/bless.t				See if bless works
+t/op/blocks.t				See if BEGIN and friends work
+t/op/bool.t				Check misc details of boolean values
+t/op/bop.t				See if bitops work
+t/op/caller.pl				Tests shared between caller.t and XS op.t
+t/op/caller.t				See if caller() works
+t/op/catch.t				See if catching exception works
+t/op/chars.t				See if character escapes work
+t/op/chdir.t				See if chdir works
+t/op/chop.t				See if chop works
+t/op/chr.t				See if chr works
+t/op/closure.t				See if closures work
+t/op/closure_test.pl			Extra file for closure.t
+t/op/cmpchain.t				See if comparison chaining works
+t/op/concat2.t				Tests too complex for concat.t
+t/op/cond.t				See if conditional expressions work
+t/op/const-optree.t			Tests for sub(){...} becoming constant
+t/op/context.t				See if context propagation works
+t/op/coreamp.t				Test &foo() calls for CORE subs
+t/op/coresubs.t				Generic tests for CORE subs
+t/op/cproto.t				Check builtin prototypes
+t/op/crypt.t				See if crypt works
+t/op/current_sub.t			__SUB__ tests
+t/op/dbm.t				See if dbmopen/dbmclose work
+t/op/decl-refs.t			See if my \$foo works
+t/op/defer.t				See if defer blocks work
+t/op/defined.t				See if defined() edge cases work
+t/op/defins.t				See if auto-insert of defined() works
+t/op/delete.t				See if delete works
+t/op/die.t				See if die works
+t/op/die_except.t			See if die/eval avoids $@ clobberage
+t/op/die_exit.t				See if die and exit status interaction works
+t/op/die_keeperr.t			See if G_KEEPERR works for destructors
+t/op/die_unwind.t			Check die/eval early-$@ backcompat hack
+t/op/do.t				See if subroutines work
+t/op/dor.t				See if defined-or (//) works
+t/op/dump.t				See if dump works.
+t/op/each.t				See if hash iterators work
+t/op/each_array.t			See if array iterators work
+t/op/eval.t				See if eval operator works
+t/op/evalbytes.t			See if evalbytes operator works
+t/op/exec.t				See if exec, system and qx work
+t/op/exists_sub.t			See if exists(&sub) works
+t/op/exp.t				See if math functions work
+t/op/fh.t				See if filehandles work
+t/op/filehandle.t			Tests for https://github.com/Perl/perl5/issues/10133
+t/op/filetest.t				See if file tests work
+t/op/filetest_stack_ok.t		See if file tests leave their argument on the stack
+t/op/filetest_t.t			See if -t file test works
+t/op/flip.t				See if range operator works
+t/op/for.t				See if for loops work
+t/op/for-many.t				See if n-at-a-time for loops work
+t/op/fork.t				See if fork works
+t/op/fresh_perl_utf8.t			UTF8 tests for pads and gvs
+t/op/getpid.t				See if $$ and getppid work with threads
+t/op/getppid.t				See if getppid works
+t/op/glob.t				See if <*> works
+t/op/gmagic.t				See if GMAGIC works
+t/op/goto.t				See if goto works
+t/op/goto_xs.t				See if "goto &sub" works on XSUBs
+t/op/grent.t				See if getgr*() functions work
+t/op/grep.t				See if grep() and map() work
+t/op/groups.t				See if $( works
+t/op/gv.t				See if typeglobs work
+t/op/hash.t				See if the complexity attackers are repelled
+t/op/hash-clear-placeholders.t		Tests for corner cases in S_clear_placeholders
+t/op/hash-rt85026.t			See if hash iteration/deletion works
+t/op/hashassign.t			See if hash assignments work
+t/op/hashwarn.t				See if warnings for bad hash assignments work
+t/op/heredoc.t				See if heredoc edge and corner cases work
+t/op/hexfp.t				See if hexadecimal float literals work
+t/op/hook/require.t			See if require hooks work properly.
+t/op/inc.t				See if inc/dec of integers near 32 bit limit work
+t/op/inccode.t				See if coderefs work in @INC
+t/op/inccode-tie.t			See if tie to @INC works
+t/op/incfilter.t			See if the source filters in coderef-in-@INC work
+t/op/index.t				See if index works
+t/op/index_thr.t			See if index works in another thread
+t/op/infnan.t				See if inf/nan work
+t/op/int.t				See if int works
+t/op/isa.t				See if isa works
+t/op/join.t				See if join works
+t/op/kill0.t				See if kill works
+t/op/kill0_child			Process tree script that is kill()ed
+t/op/kvaslice.t				See if index/value array slices work
+t/op/kvhslice.t				See if key/value hash slices work
+t/op/lc.t				See if lc, uc, lcfirst, ucfirst, quotemeta work
+t/op/leaky-magic.t			See whether vars' magic leaks into packages
+t/op/length.t				See if length works
+t/op/lex.t				Tests too complex for t/base/lex.t
+t/op/lex_assign.t			See if ops involving lexicals or pad temps work
+t/op/lexsub.t				See if lexical subroutines work
+t/op/lfs.t				See if large files work for perlio
+t/op/list.t				See if lists and list slices work
+t/op/local.t				See if local works
+t/op/localref.t				See if local ${deref} works
+t/op/lock.t				Tests for lock args & retval (no threads)
+t/op/loopctl.t				See if next/last/redo work
+t/op/lop.t				See if logical operators work
+t/op/lvref.t				See if aliasing via references works
+t/op/magic.t				See if magic variables work
+t/op/magic-27839.t			Test for #27839, skipped for minitest
+t/op/method.t				See if method calls work
+t/op/mkdir.t				See if mkdir works
+t/op/multideref.t			See if "$a[0]{foo}[$i]{$k}" etc works
+t/op/my.t				See if lexical scoping works
+t/op/my_stash.t				See if my Package works
+t/op/mydef.t				See if "my $_" works
+t/op/negate.t				See if unary minus works
+t/op/not.t				See if not works
+t/op/numconvert.t			See if accessing fields does not change numeric values
+t/op/numify.t				See if string-to-number conversion works
+t/op/numify_chkflags.t			See if string-to-number conversion behaves correctly
+t/op/oct.t				See if oct and hex work
+t/op/or.t				See if || works in weird situations
+t/op/ord.t				See if ord works
+t/op/overload_integer.t			See if overload::constant for integer works after "use".
+t/op/override.t				See if operator overriding works
+t/op/pack.t				See if pack and unpack work
+t/op/packagev.t				See if package VERSION work
+t/op/pos.t				See if pos works
+t/op/postfixderef.t			See if ->$* ->@[ et al work
+t/op/pow.t				See if ** works
+t/op/print.t				See if print works
+t/op/protowarn.t			See if the illegalproto warnings work
+t/op/push.t				See if push and pop work
+t/op/pwent.t				See if getpw*() functions work
+t/op/qr.t				See if qr works
+t/op/quotemeta.t			See if quotemeta works
+t/op/rand.t				See if rand works
+t/op/range.t				See if .. works
+t/op/read.t				See if read() works
+t/op/readdir.t				See if readdir() works
+t/op/readline.t				See if <> / readline / rcatline work
+t/op/recurse.t				See if deep recursion works
+t/op/ref.t				See if refs and objects work
+t/op/repeat.t				See if x operator works
+t/op/require_37033.t			See if require always closes rsfp
+t/op/require_errors.t			See if errors from require are reported correctly
+t/op/require_gh20577.t			Make sure updating %INC from an INC hook doesnt break @INC
+t/op/require_override.t			See if require handles no argument properly
+t/op/reset.t				See if reset operator works
+t/op/reverse.t				See if reverse operator works
+t/op/rt119311.t				Test bug #119311 (die/DESTROY/recursion)
+t/op/runlevel.t				See if die() works from perl_call_*()
+t/op/select.t				See if 0- and 1-argument select works
+t/op/setpgrpstack.t			See if setpgrp works
+t/op/sigdispatch.t			See if signals are always dispatched
+t/op/signame_canonical.t		See if duplicate signal names always use the canonical name when the handler is invoked.
+t/op/signatures.t			See if sub signatures work
+t/op/sigsystem.t			See if system and SIGCHLD handlers play together nicely
+t/op/sleep.t				See if sleep works
+t/op/smartkve.t				See if smart deref for keys/values/each works
+t/op/smartmatch.t			See if the ~~ operator works
+t/op/sort.t				See if sort works
+t/op/splice.t				See if splice works
+t/op/split.t				See if split works
+t/op/split_unicode.t			Test split /\s/ and Unicode
+t/op/sprintf.t				See if sprintf works
+t/op/sprintf2.t				See if sprintf works
+t/op/srand.t				See if srand works
+t/op/sselect.t				See if 4 argument select works
+t/op/stash.t				See if %:: stashes work
+t/op/stash_parse_gv.t			See if parse_gv_stash_name works
+t/op/stat.t				See if stat works
+t/op/stat_errors.t			See if stat and file tests handle threshold errors
+t/op/state.t				See if state variables work
+t/op/study.t				See if study works
+t/op/studytied.t			See if study works with tied scalars
+t/op/sub.t				See if subroutines work
+t/op/sub_lval.t				See if lvalue subroutines work
+t/op/substr.t				See if substr works
+t/op/substr_thr.t			See if substr works in another thread
+t/op/svflags.t				See if POK is set as expected.
+t/op/svleak.pl				Test file for svleak.t
+t/op/svleak.t				See if stuff leaks SVs
+t/op/switch.t				See if switches (given/when) work
+t/op/symbolcache.t			See if undef/delete works on stashes with functions
+t/op/syscall_emulator.t			Tests that syscall works via the emulator
+t/op/sysio.t				See if sysread and syswrite work
+t/op/taint.t				See if tainting works
+t/op/threads.t				Misc. tests for perl features with threads
+t/op/threads-dirh.t			Test interaction of threads and dir handles
+t/op/threads_create.pl			Ancillary file for t/op/threads.t
+t/op/tie.t				See if tie/untie functions work
+t/op/tie_fetch_count.t			See if FETCH is only called once on tied variables
+t/op/tiearray.t				See if tie for arrays works
+t/op/tiehandle.t			See if tie for handles works
+t/op/tiehash.t				Tests for tied hashes using test.pl
+t/op/time.t				See if time functions work
+t/op/time_loop.t			Test that very large values don't hang gmtime and localtime.
+t/op/tr.t				See if tr works
+t/op/tr_latin1.t			See if tr works, but file isn't encoded in UTF-8
+t/op/try.t				See if try works
+t/op/undef.t				See if undef works
+t/op/universal.t			See if UNIVERSAL class works
+t/op/unlink.t				See if unlink works
+t/op/unshift.t				See if unshift works
+t/op/upgrade.t				See if upgrading and assigning scalars works
+t/op/utf8cache.t			Tests malfunctions of utf8 cache
+t/op/utf8decode.t			See if UTF-8 decoding works
+t/op/utf8magic.t			See if utf8:: functions handle magic variables
+t/op/utfhash.t				See if utf8 keys in hashes behave
+t/op/utftaint.t				See if utf8 and taint work together
+t/op/vec.t				See if vectors work
+t/op/ver.t				See if v-strings and the %v format flag work
+t/op/waitpid.t				See if waitpid works
+t/op/wantarray.t			See if wantarray works
+t/op/warn.t				See if warn works
+t/op/while.t				See if while loops work
+t/op/write.t				See if write works (formats work)
+t/op/yadayada.t				See if ... works
 t/opbasic/arith.t			See if arithmetic works
-t/opbasic/cmp.t			See if the various string and numeric compare work
+t/opbasic/cmp.t				See if the various string and numeric compare work
 t/opbasic/concat.t			See if string concatenation works
-t/opbasic/magic_phase.t		See if ${^GLOBAL_PHASE} works
-t/opbasic/qq.t			See if qq works
-t/perf/benchmarks		snippets of benchmarking/profiling code
-t/perf/benchmarks.t		test t/perf/benchmarks syntax
-t/perf/opcount.t		See if optimised subs have the right op counts
-t/perf/optree.t			Test presence of some op optimisations
-t/perf/speed.t			See if optimisations are keeping things fast
-t/perf/taint.t			See if optimisations are keeping things fast (taint issues)
-t/perl.supp			Perl valgrind suppressions
-t/porting/args_assert.t		Check that all PERL_ARGS_ASSERT* macros are used
-t/porting/authors.t		Check that all authors have been acknowledged
-t/porting/bench.t		Check Porting/bench.pl runs ok
-t/porting/bench/badhash		a test file for t/porting/bench.t
-t/porting/bench/badname		a test file for t/porting/bench.t
-t/porting/bench/badversion.json	a test file for t/porting/bench.t
-t/porting/bench/callsub.json	a test file for t/porting/bench.t
-t/porting/bench/callsub2.json	a test file for t/porting/bench.t
-t/porting/bench/oddentry	a test file for t/porting/bench.t
-t/porting/bench/ret0		a test file for t/porting/bench.t
-t/porting/bench/synerr		a test file for t/porting/bench.t
-t/porting/bench_selftest.t	run Porting/bench.pl's selftest facility
-t/porting/bincompat.t		Check that {non_,}bincompat_options are ordered
-t/porting/checkcase.t		Check whether we are case-insensitive-fs-friendly
-t/porting/checkcfgvar.t		Check that all config.sh-like files are good
-t/porting/cmp_version.t		Test whether all changed module files have their VERSION bumped
-t/porting/copyright.t		Check that copyright years match
-t/porting/corelist.t		Check that Module-CoreList has perl versions for the current perl
+t/opbasic/magic_phase.t			See if ${^GLOBAL_PHASE} works
+t/opbasic/qq.t				See if qq works
+t/perf/benchmarks			snippets of benchmarking/profiling code
+t/perf/benchmarks.t			test t/perf/benchmarks syntax
+t/perf/opcount.t			See if optimised subs have the right op counts
+t/perf/optree.t				Test presence of some op optimisations
+t/perf/speed.t				See if optimisations are keeping things fast
+t/perf/taint.t				See if optimisations are keeping things fast (taint issues)
+t/perl.supp				Perl valgrind suppressions
+t/porting/args_assert.t			Check that all PERL_ARGS_ASSERT* macros are used
+t/porting/authors.t			Check that all authors have been acknowledged
+t/porting/bench.t			Check Porting/bench.pl runs ok
+t/porting/bench/badhash			a test file for t/porting/bench.t
+t/porting/bench/badname			a test file for t/porting/bench.t
+t/porting/bench/badversion.json		a test file for t/porting/bench.t
+t/porting/bench/callsub.json		a test file for t/porting/bench.t
+t/porting/bench/callsub2.json		a test file for t/porting/bench.t
+t/porting/bench/oddentry		a test file for t/porting/bench.t
+t/porting/bench/ret0			a test file for t/porting/bench.t
+t/porting/bench/synerr			a test file for t/porting/bench.t
+t/porting/bench_selftest.t		run Porting/bench.pl's selftest facility
+t/porting/bincompat.t			Check that {non_,}bincompat_options are ordered
+t/porting/checkcase.t			Check whether we are case-insensitive-fs-friendly
+t/porting/checkcfgvar.t			Check that all config.sh-like files are good
+t/porting/cmp_version.t			Test whether all changed module files have their VERSION bumped
+t/porting/copyright.t			Check that copyright years match
+t/porting/corelist.t			Check that Module-CoreList has perl versions for the current perl
 t/porting/customized.dat		Data file for porting/customized.t
-t/porting/customized.t		Check all CUSTOMIZED files are as they should be
-t/porting/diag.t		Test completeness of perldiag.pod
-t/porting/dual-life.t		Check that dual-life bins are in utils/
-t/porting/exec-bit.t		Check that exec-bit bins are identified
-t/porting/extrefs.t		Check perl headers don't make extern refs
-t/porting/filenames.t		Check the MANIFEST for filename portability.
-t/porting/FindExt.t		Test win32/FindExt.pm
-t/porting/globvar.t		Check that globvar.sym is sane
-t/porting/known_pod_issues.dat	Data file for porting/podcheck.t
-t/porting/libperl.t		Check libperl.a sanity
-t/porting/maintainers.t		Test that Porting/Maintainers.pl is up to date
-t/porting/manifest.t		Test that this MANIFEST file is well formed
-t/porting/pending-author.t	Check if any pending commit would break tests
-t/porting/perlfunc.t		Test that Functions_pm.PL can parse perlfunc.pod
-t/porting/pod_rules.t		Check that various pod lists are consistent
-t/porting/podcheck.t		Test the POD of shipped modules is well formed
-t/porting/re_context.t		Check assumptions made by save_re_context()
-t/porting/readme.t		Check that all files in Porting/ are mentioned in Porting/README.pod
-t/porting/regen.t		Check that regen.pl doesn't need running
-t/porting/ss_dup.t		Check that sv.c:ss_dup handles everything
-t/porting/test_bootstrap.t	Test that the instructions for test bootstrapping aren't accidentally overlooked.
-t/porting/utils.t		Check that utility scripts still compile
-t/re/alpha_assertions.t		See if things like '(*postive_lookahed:...) work properly
-t/re/anyof.t			See if bracketed char classes [...] compile properly
-t/re/begin-once.t		Checking that /o freeze a variable in a RegExp
-t/re/bigfuzzy_not_utf8.t	Big and ugly tests not storable as UTF-8
-t/re/charset.t			See if regex modifiers like /d, /u work properly
-t/re/fold_grind.pl		Core file to see if regex case folding works properly
-t/re/fold_grind_8.t		Wrapper for fold_grind.pl for /l testing with a UTF-8 locale
-t/re/fold_grind_a.t		Wrapper for fold_grind.pl for /a testing
-t/re/fold_grind_aa.t		Wrapper for fold_grind.pl for /aa testing
-t/re/fold_grind_d.t		Wrapper for fold_grind.pl for /d testing
-t/re/fold_grind_l.t		Wrapper for fold_grind.pl for /l testing with a C locale
-t/re/fold_grind_T.t		Wrapper for fold_grind.pl for /l testing with a Turkic locale
-t/re/fold_grind_u.t		Wrapper for fold_grind.pl for /u testing
-t/re/keep_tabs.t		Tests where \t can't be expanded.
-t/re/no_utf8_pm.t		Verify utf8.pm doesn't get loaded unless required
+t/porting/customized.t			Check all CUSTOMIZED files are as they should be
+t/porting/deprecation.t			Test that deprecation warnings are handled right
+t/porting/diag.t			Test completeness of perldiag.pod
+t/porting/dual-life.t			Check that dual-life bins are in utils/
+t/porting/exec-bit.t			Check that exec-bit bins are identified
+t/porting/extrefs.t			Check perl headers don't make extern refs
+t/porting/filenames.t			Check the MANIFEST for filename portability.
+t/porting/FindExt.t			Test win32/FindExt.pm
+t/porting/globvar.t			Check that globvar.sym is sane
+t/porting/header_parser.t		Check that regen/HeaderParser.pm works as expected
+t/porting/known_pod_issues.dat		Data file for porting/podcheck.t
+t/porting/libperl.t			Check libperl.a sanity
+t/porting/maintainers.t			Test that Porting/Maintainers.pl is up to date
+t/porting/manifest.t			Test that this MANIFEST file is well formed
+t/porting/perlfunc.t			Test that Functions_pm.PL can parse perlfunc.pod
+t/porting/pod_rules.t			Check that various pod lists are consistent
+t/porting/podcheck.t			Test the POD of shipped modules is well formed
+t/porting/re_context.t			Check assumptions made by save_re_context()
+t/porting/readme.t			Check that all files in Porting/ are mentioned in Porting/README.pod
+t/porting/regen.t			Check that regen.pl doesn't need running
+t/porting/ss_dup.t			Check that sv.c:ss_dup handles everything
+t/porting/test_bootstrap.t		Test that the instructions for test bootstrapping aren't accidentally overlooked.
+t/porting/test_testlist.t		Test that we t/harness and t/TEST and MANIFEST agree on our test list
+t/porting/update_authors.t		Tests for Porting/updateAUTHORS.pl
+t/porting/utils.t			Check that utility scripts still compile
+t/re/alpha_assertions.t			See if things like '(*postive_lookahed:...) work properly
+t/re/anyof.t				See if bracketed char classes [...] compile properly
+t/re/begin-once.t			Checking that /o freeze a variable in a RegExp
+t/re/bigfuzzy_not_utf8.t		Big and ugly tests not storable as UTF-8
+t/re/charset.t				See if regex modifiers like /d, /u work properly
+t/re/fold_grind.pl			Core file to see if regex case folding works properly
+t/re/fold_grind_8.t			Wrapper for fold_grind.pl for /l testing with a UTF-8 locale
+t/re/fold_grind_a.t			Wrapper for fold_grind.pl for /a testing
+t/re/fold_grind_aa.t			Wrapper for fold_grind.pl for /aa testing
+t/re/fold_grind_d.t			Wrapper for fold_grind.pl for /d testing
+t/re/fold_grind_l.t			Wrapper for fold_grind.pl for /l testing with a C locale
+t/re/fold_grind_T.t			Wrapper for fold_grind.pl for /l testing with a Turkic locale
+t/re/fold_grind_u.t			Wrapper for fold_grind.pl for /u testing
+t/re/keep_tabs.t			Tests where \t can't be expanded.
+t/re/no_utf8_pm.t			Verify utf8.pm doesn't get loaded unless required
 t/re/opt.t				Test regexp optimizations
-t/re/overload.t		Test against string corruption in pattern matches on overloaded objects
-t/re/pat.t			See if esoteric patterns work
-t/re/pat_advanced.t		See if advanced esoteric patterns work
-t/re/pat_advanced_thr.t		See if advanced esoteric patterns work in another thread
-t/re/pat_psycho.t		See if insane esoteric and slow patterns work
-t/re/pat_psycho_thr.t		See if insane esoteric and slow patterns work in another thread
-t/re/pat_re_eval.t		See if esoteric patterns using re 'eval' work
-t/re/pat_re_eval_thr.t		See if esoteric patterns using re 'eval' work in another thread
-t/re/pat_rt_report.t		See if esoteric patterns from rt reports work
-t/re/pat_rt_report_thr.t	See if esoteric patterns from rt reports work in another thread
-t/re/pat_special_cc.t		See if special charclasses (\s \w \d) work the same as (\s and [\s])
-t/re/pat_special_cc_thr.t	See if special charclasses (\s \w \d) work the same as (\s and [\s]) under threads
-t/re/pat_thr.t			See if esoteric patterns work in another thread
-t/re/pos.t			Ensure pos() gets set properly after pre-match failures in pp_match
-t/re/qr.t			See if qr works
-t/re/qr-72922.t			Test for bug #72922
-t/re/qr_gc.t			See if qr doesn't leak
-t/re/qrstack.t			See if qr expands the stack properly
-t/re/re_tests			Regular expressions for regexp.t
-t/re/recompile.t		See if pattern caching/recompilation works
-t/re/reg_60508.t		See if bug #60508 is fixed
-t/re/reg_email.t		See if regex recursion works by parsing email addresses
-t/re/reg_email_thr.t		See if regex recursion works by parsing email addresses in another thread
-t/re/reg_eval.t			Test again regexp state corruption in (?{ }) and (??{ })
-t/re/reg_eval_scope.t		Test scoping issues with (?{ }) and (??{ })
-t/re/reg_fold.t			See if case folding works properly
-t/re/reg_mesg.t			See if one can get regular expression errors
-t/re/reg_namedcapture.t		Make sure glob assignment doesn't break named capture
-t/re/reg_nc_tie.t		Test the tied methods of Tie::Hash::NamedCapture
-t/re/reg_nocapture.t		Test the /n flag for regexps
-t/re/reg_pmod.t			See if regexp /p modifier works as expected
-t/re/reg_posixcc.t		See if posix character classes behave consistently
-t/re/regex_sets.t		Test (?[ ])
-t/re/regex_sets_compat.t	Test (?[ ]) is compatible with old [ ]
-t/re/regexp.t			See if regular expressions work
-t/re/regexp_noamp.t		See if regular expressions work with optimizations
-t/re/regexp_nonull.t		See if regexps work without trailing nulls
-t/re/regexp_notrie.t		See if regular expressions work without trie optimisation
-t/re/regexp_qr.t		See if regular expressions work as qr//
-t/re/regexp_qr_embed.t		See if regular expressions work with embedded qr//
-t/re/regexp_qr_embed_thr.t	See if regular expressions work with embedded qr// in another thread
-t/re/regexp_trielist.t		See if regular expressions work with trie optimisation
-t/re/regexp_unicode_prop.t	See if unicode properties work in regular expressions as expected
-t/re/regexp_unicode_prop_thr.t	See if unicode properties work in regular expressions as expected under threads
-t/re/rt122747.t			Test rt122747 assert faile (requires DEBUGGING)
-t/re/rxcode.t			See if /(?{ code })/ works
-t/re/script_run.t		See if script runs works
-t/re/speed.t			See if optimisations are keeping things fast
-t/re/speed_thr.t		ditto under threads
-t/re/subst.t			See if substitution works
-t/re/subst_amp.t		See if $&-related substitution works
-t/re/subst_wamp.t		See if substitution works with $& present
-t/re/substT.t			See if substitution works with -T
-t/re/uniprops01.t		Test unicode \p{} regex constructs
-t/re/uniprops02.t		Test unicode \p{} regex constructs
-t/re/uniprops03.t		Test unicode \p{} regex constructs
-t/re/uniprops04.t		Test unicode \p{} regex constructs
-t/re/uniprops05.t		Test unicode \p{} regex constructs
-t/re/uniprops06.t		Test unicode \p{} regex constructs
-t/re/uniprops07.t		Test unicode \p{} regex constructs
-t/re/uniprops08.t		Test unicode \p{} regex constructs
-t/re/uniprops09.t		Test unicode \p{} regex constructs
-t/re/uniprops10.t		Test unicode \p{} regex constructs
-t/re/user_prop_race_thr.t	Test races in user-defined \p{} under threads
-t/README			Instructions for regression tests
-t/run/cloexec.t			Test close-on-exec.
-t/run/dtrace.pl			For dtrace.t
-t/run/dtrace.t			Test for DTrace probes
-t/run/exit.t			Test perl's exit status.
-t/run/flib/broken.pm		Bad .pm file for switchM.t
-t/run/flib/t2.pm		Test for .pmcs with -I/dir/
-t/run/flib/t2.pmc		Test for .pmcs with -I/dir/
-t/run/fresh_perl.t		Tests that require a fresh perl.
-t/run/locale.t		Tests related to locale handling
-t/run/noswitch.t		Test aliasing ARGV for other switch tests
-t/run/runenv.t			Test if perl honors its environment variables.
-t/run/runenv_hashseed.t	Test if perl honors PERL_HASH_SEED.
-t/run/script.t			See if script invocation works
-t/run/switch0.t			Test the -0 switch
-t/run/switcha.t			Test the -a switch
-t/run/switchC.t			Test the -C switch
-t/run/switchd.t			Test the -d switch
-t/run/switchd-78586.t		See whether bug 78586 is fixed
-t/run/switchDx.t		Test the -D switch
-t/run/switches.t		Tests for the other switches (-0, -l, -c, -s, -M, -m, -V, -v, -h, -z, -i)
-t/run/switchF.t			Test the -F switch
-t/run/switchF1.t		Pathological tests for the -F switch
-t/run/switchF2.t		Pathological tests for the -F switch
-t/run/switchI.t			Test the -I switch
-t/run/switchM.t			Test the -M switch
-t/run/switchn.t			Test the -n switch
-t/run/switchp.t			Test the -p switch
-t/run/switcht.t			Test the -t switch
-t/run/switchx.aux		Data for switchx.t
-t/run/switchx.t			Test the -x switch
-t/run/switchx2.aux		Data for switchx.t
-t/run/switchx3.aux		Data for switchx.t
-t/TEST				The regression tester
-t/test.pl			Simple testing library
-t/test_pl/_num_to_alpha.t	Tests for the simple testing library 
-t/test_pl/can_isa_ok.t		Tests for the simple testing library
-t/test_pl/plan_skip_all.t	Tests for the simple testing library
-t/test_pl/tempfile.t		Tests for the simple testing library
-t/thread_it.pl			Run regression tests in a new thread
-t/uni/attrs.t			See if Unicode attributes work
-t/uni/bless.t			See if Unicode bless works
-t/uni/caller.t			See if Unicode doesn't get mangled in caller()
-t/uni/case.pl			See if Unicode casing works
-t/uni/chomp.t			See if Unicode chomp works
-t/uni/class.t			See if Unicode classes work (\p)
-t/uni/eval.t			See if Unicode hints don't affect eval()
-t/uni/fold.t			See if Unicode folding works
-t/uni/goto.t			See if Unicode goto &sub works
-t/uni/greek.t			See if Unicode in greek works
-t/uni/gv.t			See if Unicode GVs work.
-t/uni/labels.t			See if Unicode labels work
-t/uni/latin2.t			See if Unicode in latin2 works
-t/uni/lex_utf8.t		See if Unicode in lexer works
-t/uni/lower.t			See if Unicode casing works
-t/uni/method.t			See if Unicode methods work
-t/uni/opcroak.t			See if Unicode croaks from op.c work
-t/uni/overload.t		See if Unicode overloading works
-t/uni/package.t			See if Unicode in package declarations works
-t/uni/parser.t			See if Unicode in the parser works in edge cases.
-t/uni/readline.t		See if Unicode filehandles in <FH> work
-t/uni/select.t			See if Unicode filehandles aren't mangled by select()
-t/uni/sprintf.t			See if Unicode sprintf works
-t/uni/stash.t			See if Unicode stashes work
-t/uni/tie.t			See if Unicode tie works
-t/uni/title.t			See if Unicode casing works
-t/uni/tr_utf8.t			See if Unicode tr/// in utf8 works
-t/uni/universal.t		See if Unicode in calls to UNIVERSAL works
-t/uni/upper.t			See if Unicode casing works
-t/uni/variables.t		See that the rules for variable names work
-t/uni/write.t			See if Unicode formats work
-t/win32/crypt.t			Test Win32 crypt for compatibility
-t/win32/fs.t			Test Win32 link for compatibility
-t/win32/popen.t			Test for stdout races in backticks, etc
-t/win32/runenv.t		Test if Win* perl honors its env variables
-t/win32/signal.t		Test Win32 signal emulation
-t/win32/stat.t			Test Win32 stat emulation
-t/win32/symlink.t		Test Win32 symlink
-t/win32/system.t		See if system works in Win*
-t/win32/system_tests		Test runner for system.t
-taint.c				Tainting code
-TestInit.pm			Preamble library for tests
-thread.h			Threading header
-time64.c			64 bit clean time.h (code)
-time64.h			64 bit clean time.h (header)
-time64_config.h			64 bit clean time.h (configuration)
-toke.c				The tokener
-uconfig.h			Configuration header for microperl
-uconfig.sh			Configuration script for microperl
-uconfig64.sh			Configuration script for microperl for LP64
-uni_keywords.h			Map unicode property names to numbers
-unicode_constants.h		compile-time macros for Unicode code points
-universal.c			The default UNIVERSAL package methods
-unixish.h			Defines that are assumed on Unix
-utf8.c				Unicode routines
-utf8.h				Unicode header
-utfebcdic.h			Unicode on EBCDIC (UTF-EBCDIC, tr16) header
-util.c				Utility routines
-util.h				Dummy header
-utils.lst			Lists utilities bundled with Perl
-utils/corelist.PL		Module::CoreList
-utils/cpan.PL			easily interact with CPAN from the command line
-utils/enc2xs.PL			Encode module generator
+t/re/overload.t				Test against string corruption in pattern matches on overloaded objects
+t/re/pat.t				See if esoteric patterns work
+t/re/pat_advanced.t			See if advanced esoteric patterns work
+t/re/pat_advanced_thr.t			See if advanced esoteric patterns work in another thread
+t/re/pat_psycho.t			See if insane esoteric and slow patterns work
+t/re/pat_psycho_thr.t			See if insane esoteric and slow patterns work in another thread
+t/re/pat_re_eval.t			See if esoteric patterns using re 'eval' work
+t/re/pat_re_eval_thr.t			See if esoteric patterns using re 'eval' work in another thread
+t/re/pat_rt_report.t			See if esoteric patterns from rt reports work
+t/re/pat_rt_report_thr.t		See if esoteric patterns from rt reports work in another thread
+t/re/pat_special_cc.t			See if special charclasses (\s \w \d) work the same as (\s and [\s])
+t/re/pat_special_cc_thr.t		See if special charclasses (\s \w \d) work the same as (\s and [\s]) under threads
+t/re/pat_thr.t				See if esoteric patterns work in another thread
+t/re/pos.t				Ensure pos() gets set properly after pre-match failures in pp_match
+t/re/qr.t				See if qr works
+t/re/qr-72922.t				Test for bug #72922
+t/re/qr_gc.t				See if qr doesn't leak
+t/re/qrstack.t				See if qr expands the stack properly
+t/re/re_tests				Regular expressions for regexp.t
+t/re/recompile.t			See if pattern caching/recompilation works
+t/re/reg_60508.t			See if bug #60508 is fixed
+t/re/reg_email.t			See if regex recursion works by parsing email addresses
+t/re/reg_email_thr.t			See if regex recursion works by parsing email addresses in another thread
+t/re/reg_eval.t				Test again regexp state corruption in (?{ }) and (??{ })
+t/re/reg_eval_scope.t			Test scoping issues with (?{ }) and (??{ })
+t/re/reg_fold.t				See if case folding works properly
+t/re/reg_mesg.t				See if one can get regular expression errors
+t/re/reg_namedcapture.t			Make sure glob assignment doesn't break named capture
+t/re/reg_nc_tie.t			Test the tied methods of Tie::Hash::NamedCapture
+t/re/reg_nocapture.t			Test the /n flag for regexps
+t/re/reg_pmod.t				See if regexp /p modifier works as expected
+t/re/reg_posixcc.t			See if posix character classes behave consistently
+t/re/regex_sets.t			Test (?[ ])
+t/re/regex_sets_compat.t		Test (?[ ]) is compatible with old [ ]
+t/re/regexp.t				See if regular expressions work
+t/re/regexp_noamp.t			See if regular expressions work with optimizations
+t/re/regexp_nonull.t			See if regexps work without trailing nulls
+t/re/regexp_normal.t			See if regexps work when expressions are normalized in various ways
+t/re/regexp_notrie.t			See if regular expressions work without trie optimisation
+t/re/regexp_qr.t			See if regular expressions work as qr//
+t/re/regexp_qr_embed.t			See if regular expressions work with embedded qr//
+t/re/regexp_qr_embed_thr.t		See if regular expressions work with embedded qr// in another thread
+t/re/regexp_trielist.t			See if regular expressions work with trie optimisation
+t/re/regexp_unicode_prop.t		See if unicode properties work in regular expressions as expected
+t/re/regexp_unicode_prop_thr.t		See if unicode properties work in regular expressions as expected under threads
+t/re/rt122747.t				Test rt122747 assert faile (requires DEBUGGING)
+t/re/rxcode.t				See if /(?{ code })/ works
+t/re/script_run.t			See if script runs works
+t/re/speed.t				See if optimisations are keeping things fast
+t/re/speed_thr.t			ditto under threads
+t/re/stclass_threads.t			Test if stclass is preserved across threads
+t/re/subst.t				See if substitution works
+t/re/subst_amp.t			See if $&-related substitution works
+t/re/subst_wamp.t			See if substitution works with $& present
+t/re/substT.t				See if substitution works with -T
+t/re/uniprops01.t			Test unicode \p{} regex constructs
+t/re/uniprops02.t			Test unicode \p{} regex constructs
+t/re/uniprops03.t			Test unicode \p{} regex constructs
+t/re/uniprops04.t			Test unicode \p{} regex constructs
+t/re/uniprops05.t			Test unicode \p{} regex constructs
+t/re/uniprops06.t			Test unicode \p{} regex constructs
+t/re/uniprops07.t			Test unicode \p{} regex constructs
+t/re/uniprops08.t			Test unicode \p{} regex constructs
+t/re/uniprops09.t			Test unicode \p{} regex constructs
+t/re/uniprops10.t			Test unicode \p{} regex constructs
+t/re/user_prop_race_thr.t		Test races in user-defined \p{} under threads
+t/README				Instructions for regression tests
+t/run/cloexec.t				Test close-on-exec.
+t/run/dtrace.pl				For dtrace.t
+t/run/dtrace.t				Test for DTrace probes
+t/run/exit.t				Test perl's exit status.
+t/run/flib/broken.pm			Bad .pm file for switchM.t
+t/run/flib/t2.pm			Test for .pmcs with -I/dir/
+t/run/flib/t2.pmc			Test for .pmcs with -I/dir/
+t/run/fresh_perl.t			Tests that require a fresh perl.
+t/run/locale.t				Tests related to locale handling
+t/run/noswitch.t			Test aliasing ARGV for other switch tests
+t/run/runenv.t				Test if perl honors its environment variables.
+t/run/runenv_hashseed.t			Test if perl honors PERL_HASH_SEED.
+t/run/runenv_randseed.t			Test if perl honors PERL_RAND_SEED.
+t/run/script.t				See if script invocation works
+t/run/switch0.t				Test the -0 switch
+t/run/switcha.t				Test the -a switch
+t/run/switchC.t				Test the -C switch
+t/run/switchd.t				Test the -d switch
+t/run/switchd-78586.t			See whether bug 78586 is fixed
+t/run/switchDx.t			Test the -D switch
+t/run/switches.t			Tests for the other switches (-0, -l, -c, -s, -M, -m, -V, -v, -h, -z, -i)
+t/run/switchF.t				Test the -F switch
+t/run/switchF1.t			Pathological tests for the -F switch
+t/run/switchF2.t			Pathological tests for the -F switch
+t/run/switchI.t				Test the -I switch
+t/run/switchM.t				Test the -M switch
+t/run/switchn.t				Test the -n switch
+t/run/switchp.t				Test the -p switch
+t/run/switcht.t				Test the -t switch
+t/run/switchx.aux			Data for switchx.t
+t/run/switchx.t				Test the -x switch
+t/run/switchx2.aux			Data for switchx.t
+t/run/switchx3.aux			Data for switchx.t
+t/TEST					The regression tester
+t/test.pl				Simple testing library
+t/test_pl/_num_to_alpha.t		Tests for the simple testing library
+t/test_pl/can_isa_ok.t			Tests for the simple testing library
+t/test_pl/plan_skip_all.t		Tests for the simple testing library
+t/test_pl/tempfile.t			Tests for the simple testing library
+t/thread_it.pl				Run regression tests in a new thread
+t/uni/attrs.t				See if Unicode attributes work
+t/uni/bless.t				See if Unicode bless works
+t/uni/caller.t				See if Unicode doesn't get mangled in caller()
+t/uni/case.pl				See if Unicode casing works
+t/uni/chomp.t				See if Unicode chomp works
+t/uni/class.t				See if Unicode classes work (\p)
+t/uni/eval.t				See if Unicode hints don't affect eval()
+t/uni/fold.t				See if Unicode folding works
+t/uni/goto.t				See if Unicode goto &sub works
+t/uni/greek.t				See if Unicode in greek works
+t/uni/gv.t				See if Unicode GVs work.
+t/uni/labels.t				See if Unicode labels work
+t/uni/latin2.t				See if Unicode in latin2 works
+t/uni/lex_utf8.t			See if Unicode in lexer works
+t/uni/lower.t				See if Unicode casing works
+t/uni/method.t				See if Unicode methods work
+t/uni/opcroak.t				See if Unicode croaks from op.c work
+t/uni/overload.t			See if Unicode overloading works
+t/uni/package.t				See if Unicode in package declarations works
+t/uni/parser.t				See if Unicode in the parser works in edge cases.
+t/uni/readline.t			See if Unicode filehandles in <FH> work
+t/uni/select.t				See if Unicode filehandles aren't mangled by select()
+t/uni/sprintf.t				See if Unicode sprintf works
+t/uni/stash.t				See if Unicode stashes work
+t/uni/tie.t				See if Unicode tie works
+t/uni/title.t				See if Unicode casing works
+t/uni/tr_utf8.t				See if Unicode tr/// in utf8 works
+t/uni/universal.t			See if Unicode in calls to UNIVERSAL works
+t/uni/upper.t				See if Unicode casing works
+t/uni/variables.t			See that the rules for variable names work
+t/uni/write.t				See if Unicode formats work
+t/win32/crypt.t				Test Win32 crypt for compatibility
+t/win32/fs.t				Test Win32 link for compatibility
+t/win32/popen.t				Test for stdout races in backticks, etc
+t/win32/runenv.t			Test if Win* perl honors its env variables
+t/win32/seekdir.t			Test that seekdir/readdir are restricted to relevant memory
+t/win32/signal.t			Test Win32 signal emulation
+t/win32/stat.t				Test Win32 stat emulation
+t/win32/symlink.t			Test Win32 symlink
+t/win32/system.t			See if system works in Win*
+t/win32/system_tests			Test runner for system.t
+utils/corelist.PL			Module::CoreList
+utils/cpan.PL				easily interact with CPAN from the command line
+utils/enc2xs.PL				Encode module generator
 utils/encguess.PL			guess character encodings of files
-utils/h2ph.PL			A thing to turn C .h files into perl .ph files
-utils/h2xs.PL			Program to make .xs files from C header files
-utils/instmodsh.PL		Give information about installed extensions
-utils/json_pp.PL		JSON::PP command line utility
-utils/libnetcfg.PL		libnet
-utils/Makefile.PL		Extract the utility scripts
-utils/perlbug.PL		A simple tool to submit a bug report
-utils/perldoc.PL		A simple tool to find & display perl's documentation
-utils/perlivp.PL		installation verification procedure
-utils/piconv.PL			iconv(1), reinvented in perl
-utils/pl2pm.PL			A pl to pm translator
-utils/pod2html.PL		Translator to turn pod into HTML
-utils/prove.PL			The prove harness utility
-utils/ptar.PL			The ptar utility
-utils/ptardiff.PL		The ptardiff utility
-utils/ptargrep.PL		The ptargrep utility
-utils/shasum.PL			filter for computing SHA digests (analogous to md5sum)
-utils/splain.PL			Stand-alone version of diagnostics.pm
+utils/h2ph.PL				A thing to turn C .h files into perl .ph files
+utils/h2xs.PL				Program to make .xs files from C header files
+utils/instmodsh.PL			Give information about installed extensions
+utils/json_pp.PL			JSON::PP command line utility
+utils/libnetcfg.PL			libnet
+utils/Makefile.PL			Extract the utility scripts
+utils/perlbug.PL			A simple tool to submit a bug report
+utils/perldoc.PL			A simple tool to find & display perl's documentation
+utils/perlivp.PL			installation verification procedure
+utils/piconv.PL				iconv(1), reinvented in perl
+utils/pl2pm.PL				A pl to pm translator
+utils/pod2html.PL			Translator to turn pod into HTML
+utils/prove.PL				The prove harness utility
+utils/ptar.PL				The ptar utility
+utils/ptardiff.PL			The ptardiff utility
+utils/ptargrep.PL			The ptargrep utility
+utils/shasum.PL				filter for computing SHA digests (analogous to md5sum)
+utils/splain.PL				Stand-alone version of diagnostics.pm
 utils/streamzip.PL
-utils/xsubpp.PL			External subroutine preprocessor
+utils/xsubpp.PL				External subroutine preprocessor
 utils/zipdetails.PL			display the internal structure of zip files
-vms/descrip_mms.template	Template MM[SK] description file for build
-vms/gen_shrfls.pl		generate options files and glue for shareable image
-vms/genopt.com			hack to write options files in case of broken makes
-vms/make_command.com		record MM[SK] command used to build Perl
-vms/mms2make.pl			convert descrip.mms to make syntax
-vms/munchconfig.c		performs shell $var substitution for VMS
-vms/myconfig.com		record local configuration info for bug report
-vms/test.com			DCL driver for regression tests
-vms/vms.c			VMS-specific C code for Perl core
-vms/vmsish.h			VMS-specific C header for Perl core
-vms/vmspipe.com			VMS-specific piped command helper script
-vos/Changes			Changes made to port Perl to the VOS operating system
-vos/compile_full_perl.cm	VOS command macro to build "full" Perl
-vos/configure_full_perl.sh	VOS shell script to configure "full" perl before building
-vos/make_full_perl.sh		VOS shell script to build and test "full" perl
-vos/vos.c			VOS emulations for missing POSIX functions
-vos/vosish.h			VOS-specific header file
-vutil.c				Version object C functions
-vutil.h				Version object headers
-vxs.inc				Version object XS methods
-warnings.h			The warning numbers
-win32/bin/exetype.pl		Set executable type to CONSOLE or WINDOWS
-win32/bin/perlglob.pl		Win32 globbing
-win32/bin/pl2bat.pl		wrap perl scripts into batch files
-win32/bin/runperl.pl		run perl script via batch file namesake
-win32/bin/search.pl		Win32 port
-win32/config.gc			Win32 base line config.sh (MinGW build)
-win32/config.vc			Win32 base line config.sh (Visual C++ build)
-win32/config_H.gc		Win32 config header (MinGW build)
-win32/config_h.PL		Perl code to convert Win32 config.sh to config.h
-win32/config_H.vc		Win32 config header (Visual C++ build)
-win32/config_sh.PL		Perl code to update Win32 config.sh from Makefile
-win32/create_perllibst_h.pl	creates perllibst.h file for inclusion from perllib.c
-win32/distclean.bat		Remove _ALL_ files not listed here in MANIFEST
-win32/fcrypt.c			crypt() implementation
-win32/FindExt.pm		Scan for extensions
-win32/GNUmakefile		Win32 makefile for GNU make
-win32/include/arpa/inet.h	Win32 port
-win32/include/dirent.h		Win32 port
-win32/include/netdb.h		Win32 port
-win32/include/sys/errno2.h	Win32 port
-win32/include/sys/socket.h	Win32 port
-win32/list_static_libs.pl	prints libraries for static linking
-win32/Makefile			Win32 makefile for NMAKE (Visual C++ build)
-win32/perlexe.ico		perlexe.ico image file
-win32/perlexe.manifest		Assembly manifest file
-win32/perlexe.rc		associated perl binary with icon
-win32/perlglob.c		Win32 port
-win32/perlhost.h		Perl "host" implementation
-win32/perllib.c			Win32 port
-win32/pod.mak			Win32 port
-win32/runperl.c			Win32 port
-win32/vdir.h			Perl "host" virtual directory manager for Win32
-win32/vmem.h			Perl "host" memory manager for Win32
-win32/win32.c			Win32 port
-win32/win32.h			Win32 port
-win32/win32iop.h		Win32 port
-win32/win32sck.c		Win32 port
-win32/win32thread.c		Win32 functions for threads
-win32/win32thread.h		Win32 port mapping to threads
-write_buildcustomize.pl		Generate lib/buildcustomize.pl
-XSUB.h				Include file for extension subroutines
-zaphod32_hash.h			Zaphod32 hash code (32 bit fast hash function)
+vms/descrip_mms.template		Template MM[SK] description file for build
+vms/gen_shrfls.pl			generate options files and glue for shareable image
+vms/genopt.com				hack to write options files in case of broken makes
+vms/make_command.com			record MM[SK] command used to build Perl
+vms/mms2make.pl				convert descrip.mms to make syntax
+vms/munchconfig.c			performs shell $var substitution for VMS
+vms/myconfig.com			record local configuration info for bug report
+vms/test.com				DCL driver for regression tests
+vms/vms.c				VMS-specific C code for Perl core
+vms/vmsish.h				VMS-specific C header for Perl core
+vms/vmspipe.com				VMS-specific piped command helper script
+vos/Changes				Changes made to port Perl to the VOS operating system
+vos/compile_full_perl.cm		VOS command macro to build "full" Perl
+vos/configure_full_perl.sh		VOS shell script to configure "full" perl before building
+vos/make_full_perl.sh			VOS shell script to build and test "full" perl
+vos/vos.c				VOS emulations for missing POSIX functions
+vos/vosish.h				VOS-specific header file
+win32/bin/exetype.pl			Set executable type to CONSOLE or WINDOWS
+win32/bin/perlglob.pl			Win32 globbing
+win32/bin/pl2bat.pl			wrap perl scripts into batch files
+win32/bin/runperl.pl			run perl script via batch file namesake
+win32/bin/search.pl			Win32 port
+win32/config.gc				Win32 base line config.sh (MinGW build)
+win32/config.vc				Win32 base line config.sh (Visual C++ build)
+win32/config_H.gc			Win32 config header (MinGW build)
+win32/config_h.PL			Perl code to convert Win32 config.sh to config.h
+win32/config_H.vc			Win32 config header (Visual C++ build)
+win32/config_sh.PL			Perl code to update Win32 config.sh from Makefile
+win32/create_perllibst_h.pl		creates perllibst.h file for inclusion from perllib.c
+win32/distclean.bat			Remove _ALL_ files not listed here in MANIFEST
+win32/fcrypt.c				crypt() implementation
+win32/FindExt.pm			Scan for extensions
+win32/GNUmakefile			Win32 makefile for GNU make
+win32/include/arpa/inet.h		Win32 port
+win32/include/dirent.h			Win32 port
+win32/include/netdb.h			Win32 port
+win32/include/sys/errno2.h		Win32 port
+win32/include/sys/socket.h		Win32 port
+win32/list_static_libs.pl		prints libraries for static linking
+win32/Makefile				Win32 makefile for NMAKE (Visual C++ build)
+win32/perlexe.ico			perlexe.ico image file
+win32/perlexe.manifest			Assembly manifest file
+win32/perlexe.rc			associated perl binary with icon
+win32/perlglob.c			Win32 port
+win32/perlhost.h			Perl "host" implementation
+win32/perllib.c				Win32 port
+win32/pod.mak				Win32 port
+win32/runperl.c				Win32 port
+win32/vdir.h				Perl "host" virtual directory manager for Win32
+win32/vmem.h				Perl "host" memory manager for Win32
+win32/win32.c				Win32 port
+win32/win32.h				Win32 port
+win32/win32iop.h			Win32 port
+win32/win32sck.c			Win32 port
+win32/win32thread.c			Win32 functions for threads
+win32/win32thread.h			Win32 port mapping to threads
Index: gnu/usr.bin/perl/META.json
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/META.json,v
diff -u -p -a -u -p -r1.14 META.json
--- gnu/usr.bin/perl/META.json	23 Dec 2023 21:02:20 -0000	1.14
+++ gnu/usr.bin/perl/META.json	21 Feb 2024 15:47:00 -0000
@@ -36,6 +36,7 @@
          "dist/IO",
          "dist/lib",
          "dist/Locale-Maketext",
+         "dist/Math-Complex",
          "dist/Module-CoreList",
          "dist/Net-Ping",
          "dist/PathTools",
@@ -118,6 +119,6 @@
          "url" : "https://github.com/Perl/perl5"
       }
    },
-   "version" : "5.036003",
-   "x_serialization_backend" : "JSON::PP version 4.07"
+   "version" : "5.038002",
+   "x_serialization_backend" : "JSON::PP version 4.16"
 }
Index: gnu/usr.bin/perl/META.yml
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/META.yml,v
diff -u -p -a -u -p -r1.14 META.yml
--- gnu/usr.bin/perl/META.yml	23 Dec 2023 21:02:20 -0000	1.14
+++ gnu/usr.bin/perl/META.yml	21 Feb 2024 15:47:00 -0000
@@ -34,6 +34,7 @@ no_index:
     - dist/IO
     - dist/lib
     - dist/Locale-Maketext
+    - dist/Math-Complex
     - dist/Module-CoreList
     - dist/Net-Ping
     - dist/PathTools
@@ -105,5 +106,5 @@ resources:
   homepage: https://www.perl.org/
   license: https://dev.perl.org/licenses/
   repository: https://github.com/Perl/perl5
-version: '5.036003'
+version: '5.038002'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
Index: gnu/usr.bin/perl/Makefile.SH
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Makefile.SH,v
diff -u -p -a -u -p -r1.62 Makefile.SH
--- gnu/usr.bin/perl/Makefile.SH	23 Dec 2023 21:02:20 -0000	1.62
+++ gnu/usr.bin/perl/Makefile.SH	21 Feb 2024 15:47:00 -0000
@@ -73,7 +73,7 @@ true)
 		esac
 		;;
 	cygwin*)
-		shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000"
+		shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a"
 		linklibperl="-L. -lperl"
 		;;
 	sunos*)
@@ -531,17 +531,19 @@ unidatadirs = lib/unicore/To lib/unicore
 
 h1 = EXTERN.h INTERN.h XSUB.h av.h $(CONFIGH) cop.h cv.h dosish.h
 h2 = embed.h form.h gv.h handy.h hv.h hv_func.h keywords.h mg.h op.h opcode.h
-h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h
+h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h regcomp_internal.h
 h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h
 h5 = utf8.h warnings.h mydtrace.h op_reg_common.h l1_char_class_tab.h
 h6 = charclass_invlists.h
 h = $(h1) $(h2) $(h3) $(h4) $(h5) $(h6)
 
-c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
-c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
-c3 = taint.c toke.c util.c deb.c run.c builtin.c universal.c pad.c globals.c keywords.c
+c1 = av.c scope.c op.c peep.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
+c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c utf8.c sv.c
+c3 = taint.c toke.c util.c deb.c run.c builtin.c universal.c class.c pad.c globals.c keywords.c
 c4 = perlio.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c dquote.c time64.c
+c5 = regcomp.c regcomp_debug.c regcomp_invlist.c regcomp_study.c regcomp_trie.c regexec.c
 c5 = $(mallocsrc) syscall_emulator.c
+c_base  = $(c1) $(c2) $(c3) $(c4) $(c5) $(c6)
 
 !NO!SUBS!
 
@@ -553,17 +555,24 @@ main_only_objs =$main_only_objs
 
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
-c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c $(mini_only_src)
+c = $(c_base) miniperlmain.c $(mini_only_src)
 
-obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT) keywords$(OBJ_EXT) builtin$(OBJ_EXT)
-obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT) dquote$(OBJ_EXT) time64$(OBJ_EXT) syscall_emulator$(OBJ_EXT)
+obj1  = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT)
+obj2  = regcomp$(OBJ_EXT) regcomp_debug$(OBJ_EXT) regcomp_invlist$(OBJ_EXT) regcomp_study$(OBJ_EXT) regcomp_trie$(OBJ_EXT)
+obj3  = regexec$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT)
+obj4  = keywords$(OBJ_EXT) builtin$(OBJ_EXT) class$(OBJ_EXT)
+obj5  = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT)
+obj6  = scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT) peep$(OBJ_EXT)
+obj7  = doop$(OBJ_EXT) doio$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT)
+obj8  = deb$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT)
+obj9  = locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT) dquote$(OBJ_EXT)
+obj10 = time64$(OBJ_EXT) syscall_emulator$(OBJ_EXT)
 
 # split the objects into 3 exclusive sets: those used by both miniperl and
 # perl, and those used by just one or the other. Doesn't include the
 # actual perl(mini)main.o, nor any dtrace objects.
 
-common_objs    = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
+common_objs    = $(obj1) $(obj2) $(obj3) $(obj4) $(obj5) $(obj6) $(obj7) $(obj8) $(obj9) $(obj10) $(ARCHOBJS)
 
 miniperl_objs_nodt = $(mini_only_objs) $(common_objs) miniperlmain$(OBJ_EXT)
 perllib_objs_nodt  = $(main_only_objs) $(common_objs)
@@ -614,7 +623,7 @@ esac
 
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
-perltoc_pod_prereqs = extra.pods pod/perl5363delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
+perltoc_pod_prereqs = extra.pods pod/perl5382delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
 generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
 generated_headers = uudmap.h bitcount.h mg_data.h
 
@@ -654,11 +663,11 @@ lintflags = \
 	@echo `$(CCCMD)` $(PLDLFLAGS) $*.c
 	@`$(CCCMD)` $(PLDLFLAGS) $*.c
 
-.c.i:	perl.h config.h
+.c.i:
 	@echo `$(CCCMDSRC)` -E $*.c \> $*.i
 	@`$(CCCMDSRC)` -E $*.c > $*.i
 
-.c.s:	perl.h config.h
+.c.s:
 	@echo `$(CCCMDSRC)` -S $*.c
 	@`$(CCCMDSRC)` -S $*.c
 
@@ -1129,9 +1138,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) auto
 pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
 	$(MINIPERL) pod/perlmodlib.PL -q
 
-pod/perl5363delta.pod: pod/perldelta.pod
-	$(RMS) pod/perl5363delta.pod
-	$(LNS) perldelta.pod pod/perl5363delta.pod
+pod/perl5382delta.pod: pod/perldelta.pod
+	$(RMS) pod/perl5382delta.pod
+	$(LNS) perldelta.pod pod/perl5382delta.pod
 
 extra.pods: $(MINIPERL_EXE)
 	-@test ! -f extra.pods || rm -f `cat extra.pods`
@@ -1632,7 +1641,7 @@ $spitshell >>$Makefile <<'!NO!SUBS!'
 
 # minitest can't depend on lib/Config.pm because that might be where miniperl
 # is crashing.
-minitest_prep:
+minitest_prep: $(MINIPERL_EXE)
 	-@test -f lib/Config.pm || $(MAKE) lib/Config.pm $(unidatafiles)
 	@echo " "
 	@echo "You may see some irrelevant test failures if you have been unable"
@@ -1642,10 +1651,10 @@ minitest_prep:
 
 MINITEST_TESTS = base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t
 
-minitest: $(MINIPERL_EXE) minitest_prep
+minitest: minitest_prep
 	cd t && $(RUN_PERL) TEST $(MINITEST_TESTS) <$(devtty)
 
-minitest-notty minitest_notty: $(MINIPERL_EXE) minitest_prep
+minitest-notty minitest_notty: minitest_prep
 	cd t && PERL_SKIP_TTY_TEST=1 $(RUN_PERL) TEST $(MINITEST_TESTS)
 
 # Test via harness
@@ -1657,7 +1666,7 @@ test_harness_notty: test_prep
 	HARNESS_NOTTY=1 TESTFILE=harness $(RUN_TESTS) choose
 
 test_reonly test-reonly: test_prep_reonly
-	TEST_ARGS='re/*.t ext/re/t/*.t' TESTFILE=harness $(RUN_TESTS) choose
+	TEST_ARGS='re/*.t ../ext/re/t/*.t' PERL_TEST_HARNESS_ASAP=1 TESTFILE=harness $(RUN_TESTS) choose
 
 
 # Porting tests (well-formedness of pod, manifest, etc)
@@ -1721,8 +1730,8 @@ distcheck: FORCE
 
 .PHONY: ctags
 
-TAGS: $(c1) $(c2) $(c3) $(c4) $(c5) $(h)
-	etags $(c1) $(c2) $(c3) $(c4) $(c5) $(h)
+TAGS: $(c_base) $(h)
+	etags $(c_base) $(h)
 !NO!SUBS!
 
 $spitshell >>$Makefile <<!GROK!THIS!
Index: gnu/usr.bin/perl/Makefile.bsd-wrapper1
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Makefile.bsd-wrapper1,v
diff -u -p -a -u -p -r1.45 Makefile.bsd-wrapper1
--- gnu/usr.bin/perl/Makefile.bsd-wrapper1	23 Dec 2023 21:02:20 -0000	1.45
+++ gnu/usr.bin/perl/Makefile.bsd-wrapper1	21 Feb 2024 15:47:00 -0000
@@ -92,6 +92,9 @@ _quick3p=
     perl5361delta 1			pod/perl5361delta.pod \
     perl5362delta 1			pod/perl5362delta.pod \
     perl5363delta 1			pod/perl5363delta.pod \
+    perl5380delta 1			pod/perl5380delta.pod \
+    perl5381delta 1			pod/perl5381delta.pod \
+    perl5382delta 1			pod/perl5382delta.pod \
     perl561delta 1			pod/perl561delta.pod \
     perl56delta 1			pod/perl56delta.pod \
     perl581delta 1			pod/perl581delta.pod \
@@ -112,6 +115,8 @@ _quick3p=
     perlbug 1				utils/perlbug \
     perlcall 1				pod/perlcall.pod \
     perlcheat 1				pod/perlcheat.pod \
+    perlclass 1				pod/perlclass.pod \
+    perlclassguts 1			pod/perlclassguts.pod \
     perlclib 1				pod/perlclib.pod \
     perlcommunity 1			pod/perlcommunity.pod \
     perldata 1				pod/perldata.pod \
@@ -513,8 +518,6 @@ _quick3p=
     Memoize 3p				lib/Memoize.pm \
     Memoize::AnyDBM_File 3p		lib/Memoize/AnyDBM_File.pm \
     Memoize::Expire 3p			lib/Memoize/Expire.pm \
-    Memoize::ExpireFile 3p		lib/Memoize/ExpireFile.pm \
-    Memoize::ExpireTest 3p		lib/Memoize/ExpireTest.pm \
     Memoize::NDBM_File 3p		lib/Memoize/NDBM_File.pm \
     Memoize::SDBM_File 3p		lib/Memoize/SDBM_File.pm \
     Memoize::Storable 3p		lib/Memoize/Storable.pm \
@@ -626,6 +629,7 @@ _quick3p=
     sigtrap 3p				lib/sigtrap.pm \
     Socket 3p				lib/Socket.pm \
     sort 3p				lib/sort.pm \
+    stable 3p				lib/stable.pm \
     Storable 3p				lib/Storable.pm \
     strict 3p				lib/strict.pm \
     Sub::Util 3p			lib/Sub/Util.pm \
@@ -802,7 +806,7 @@ _quick3p=
     vmsish 3p				lib/vmsish.pm \
     warnings 3p				lib/warnings.pm \
     warnings::register 3p		lib/warnings/register.pm \
-    XS::APItest 3p			ext/XS-APItest/APItest.pm \
+    XS::APItest 3p			lib/XS/APItest.pm \
     XS::Typemap 3p			ext/XS-Typemap/Typemap.pm \
     XSLoader 3p				lib/XSLoader.pm
 .  ifndef NOMAN
Index: gnu/usr.bin/perl/Makefile.micro
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Makefile.micro,v
diff -u -p -a -u -p -r1.4 Makefile.micro
--- gnu/usr.bin/perl/Makefile.micro	15 Feb 2023 01:36:12 -0000	1.4
+++ gnu/usr.bin/perl/Makefile.micro	21 Feb 2024 15:47:00 -0000
@@ -1,6 +1,6 @@
 LD = $(CC)
 CCFLAGS = -c
-DEFINES = -DPERL_CORE -DPERL_MICRO -DPERL_USE_SAFE_PUTENV -DNO_MATHOMS
+DEFINES = -DPERL_CORE -DPERL_MICRO -DNO_MATHOMS
 OPTIMIZE = 
 CFLAGS = $(DEFINES) $(OPTIMIZE)
 LDFLAGS = 
@@ -18,7 +18,8 @@ O = uav$(_O) udeb$(_O) udoio$(_O) udoop$
 	umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
 	upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
 	upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
-	uregcomp$(_O) uregexec$(_O) urun$(_O) \
+	uregcomp$(_O) uregcomp_debug$(_O) uregcomp_invlist$(_O) \
+	uregcomp_study$(_O) uregcomp_trie$(_O) uregexec$(_O) urun$(_O) \
 	uscope$(_O) usv$(_O) utaint$(_O) utime64$(_O) utoke$(_O) \
 	unumeric$(_O) ulocale$(_O) umathoms$(_O) \
 	uuniversal$(_O) uutf8$(_O) uutil$(_O) ukeywords$(_O)
@@ -138,7 +139,19 @@ upp_pack$(_O):	$(HE) pp_pack.c
 upp_sort$(_O):	$(HE) pp_sort.c
 	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c
 
-uregcomp$(_O):	$(HE) regcomp.c regcomp.h regnodes.h INTERN.h
+uregcomp$(_O):	$(HE) regcomp.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
+	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
+
+uregcomp_debug$(_O):	$(HE) regcomp_debug.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
+	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
+
+uregcomp_invlist$(_O):	$(HE) regcomp_invlist.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
+	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
+
+uregcomp_study$(_O):	$(HE) regcomp_study.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
+	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
+
+uregcomp_trie$(_O):	$(HE) regcomp_trie.c regcomp_internal.h regcomp.h regnodes.h INTERN.h
 	$(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
 
 uregexec$(_O):	$(HE) regexec.c regcomp.h regnodes.h
Index: gnu/usr.bin/perl/PACKAGING
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/PACKAGING,v
diff -u -p -a -u -p -r1.1.1.1 PACKAGING
--- gnu/usr.bin/perl/PACKAGING	13 Feb 2019 21:10:45 -0000	1.1.1.1
+++ gnu/usr.bin/perl/PACKAGING	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
Index: gnu/usr.bin/perl/README
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README,v
diff -u -p -a -u -p -r1.23 README
--- gnu/usr.bin/perl/README	8 Jul 2023 14:18:35 -0000	1.23
+++ gnu/usr.bin/perl/README	21 Feb 2024 15:47:00 -0000
@@ -2,10 +2,7 @@ Perl is Copyright (C) 1993 - 2023 by Lar
 
 All rights reserved.
 
-
-
-ABOUT PERL
-==========
+# ABOUT PERL
 
 Perl is a general-purpose programming language originally developed for
 text manipulation and now used for a wide range of tasks including
@@ -28,15 +25,14 @@ There are also many Perl books available
 from various publishers.  See pod/perlbook.pod for more information.
 
 
-INSTALLATION
-============
+# INSTALLATION
 
 If you're using a relatively modern operating system and want to
 install this version of Perl locally, run the following commands:
 
-  ./Configure -des -Dprefix=$HOME/localperl
-  make test
-  make install
+    ./Configure -des -Dprefix=$HOME/localperl
+    make test
+    make install
 
 This will configure and compile perl for your platform, run the regression
 tests, and install perl in a subdirectory "localperl" of your home directory.
@@ -50,11 +46,10 @@ variety of platforms, some more common t
 Once you have Perl installed, a wealth of documentation is available to you
 through the 'perldoc' tool.  To get started, run this command:
 
-  perldoc perl
+    perldoc perl
 
 
-IF YOU RUN INTO TROUBLE
-=======================
+# IF YOU RUN INTO TROUBLE
 
 Perl is a large and complex system that's used for everything from
 knitting to rocket science.  If you run into trouble, it's quite
@@ -76,20 +71,19 @@ Just a personal note:  I want you to kno
 because it pleases the Author of my story.  If this bothers you, then your
 notion of Authorship needs some revision.  But you can use perl anyway. :-)
 
-							The author.
+The author.
 
 
-LICENSING
-=========
+# LICENSING
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of either:
 
-	a) the GNU General Public License as published by the Free
-	Software Foundation; either version 1, or (at your option) any
-	later version, or
+a.  the GNU General Public License as published by the Free
+    Software Foundation; either version 1, or (at your option) any
+    later version, or
 
-	b) the "Artistic License" which comes with this Kit.
+b.  the "Artistic License" which comes with this Kit.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -126,5 +120,3 @@ is, in this case, a form of mere aggrega
 of the GPL.  If you still have concerns or difficulties understanding
 my intent, feel free to contact me.  Of course, the Artistic License
 spells all this out for your protection, so you may prefer to use that.
-
-
Index: gnu/usr.bin/perl/README.aix
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.aix,v
diff -u -p -a -u -p -r1.4 README.aix
--- gnu/usr.bin/perl/README.aix	30 Dec 2019 02:13:39 -0000	1.4
+++ gnu/usr.bin/perl/README.aix	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.amiga
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.amiga,v
diff -u -p -a -u -p -r1.8 README.amiga
--- gnu/usr.bin/perl/README.amiga	5 Feb 2017 00:31:52 -0000	1.8
+++ gnu/usr.bin/perl/README.amiga	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see. It is written in the POD format (see perlpod manpage) which is
 specially designed to be readable as is.
Index: gnu/usr.bin/perl/README.android
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.android,v
diff -u -p -a -u -p -r1.3 README.android
--- gnu/usr.bin/perl/README.android	1 Mar 2021 23:19:42 -0000	1.3
+++ gnu/usr.bin/perl/README.android	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see. It is written in the POD format (see pod/perlpod.pod) which is
 specially designed to be readable as is.
Index: gnu/usr.bin/perl/README.bs2000
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.bs2000,v
diff -u -p -a -u -p -r1.5 README.bs2000
--- gnu/usr.bin/perl/README.bs2000	15 Feb 2023 01:36:12 -0000	1.5
+++ gnu/usr.bin/perl/README.bs2000	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 This document is written in pod format hence there are punctuation
 characters in odd places.  Do not worry, you've apparently got the
 ASCII->EBCDIC translation worked out correctly.  You can read more
Index: gnu/usr.bin/perl/README.cn
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.cn,v
diff -u -p -a -u -p -r1.1.1.9 README.cn
--- gnu/usr.bin/perl/README.cn	15 Feb 2023 01:31:58 -0000	1.1.1.9
+++ gnu/usr.bin/perl/README.cn	21 Feb 2024 15:47:00 -0000
@@ -1,8 +1,10 @@
-=encoding utf8
+# vim: syntax=pod
 
 如果你用一般的文字编辑器阅览这份文件, 请忽略文中奇特的注记字符.
 这份文件是以 POD (简明文件格式) 写成; 这种格式是为了能让人直接阅读,
 而特别设计的. 关于此格式的进一步信息, 请参考 perlpod 在线文档.
+
+=encoding utf8
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/README.cygwin
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.cygwin,v
diff -u -p -a -u -p -r1.4 README.cygwin
--- gnu/usr.bin/perl/README.cygwin	15 Feb 2023 01:36:12 -0000	1.4
+++ gnu/usr.bin/perl/README.cygwin	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see. It is written in the POD format (see F<pod/perlpod.pod>) which is
 specially designed to be readable as is.
@@ -31,7 +33,7 @@ L<https://www.cygwin.com/>
 
 A recent net or commercial release of Cygwin is required.
 
-At the time this document was last updated, Cygwin 1.7.16 was current.
+At the time this document was last updated, Cygwin 3.0.7 was current.
 
 
 =head2 Cygwin Configuration
@@ -41,8 +43,8 @@ that Perl builds cleanly.  These changes
 Perl usage.
 
 B<NOTE:> The binaries that are built will run on all Win32 versions.
-They do not depend on your host system (WinXP/Win2K/Win7) or your
-Cygwin configuration (binary/text mounts, cvgserver).
+They do not depend on your host system or your
+Cygwin configuration (binary/text mounts, cygserver).
 The only dependencies come from hard-coded pathnames like F</usr/local>.
 However, your host system and Cygwin configuration will affect Perl's
 runtime behavior (see L</"TEST">).
@@ -128,11 +130,10 @@ NOTE: The BerkeleyDB library only comple
 A port of SysV IPC is available for Cygwin.
 
 NOTE: This has B<not> been extensively tested.  In particular,
-C<d_semctl_semun> is undefined because it fails a Configure test
-and on Win9x the I<shm*()> functions seem to hang.  It also creates
-a compile time dependency because F<perl.h> includes F<<sys/ipc.h>>
-and F<<sys/sem.h>> (which will be required in the future when compiling
-CPAN modules). CURRENTLY NOT SUPPORTED!
+C<d_semctl_semun> is undefined because it fails a Configure test.  It
+also creates a compile time dependency because F<perl.h> includes
+F<<sys/ipc.h>> and F<<sys/sem.h>> (which will be required in the
+future when compiling CPAN modules). CURRENTLY NOT SUPPORTED!
 
 =item * C<-lutil>
 
@@ -201,47 +202,14 @@ build perl from sources.
 
 =back
 
-=head2 Suspicious Warnings on Cygwin
-
-You may see some messages during Configure that seem suspicious.
-
-=over 4
-
-=item * Win9x and C<d_eofnblk>
-
-Win9x does not correctly report C<EOF> with a non-blocking read on a
-closed pipe.  You will see the following messages:
-
- But it also returns -1 to signal EOF, so be careful!
- WARNING: you can't distinguish between EOF and no data!
-
- *** WHOA THERE!!! ***
-     The recommended value for $d_eofnblk on this machine was
-     "define"!
-     Keep the recommended value? [y]
-
-At least for consistency with WinNT, you should keep the recommended
-value.
-
-=item * Compiler/Preprocessor defines
-
-The following error occurs because of the Cygwin C<#define> of
-C<_LONG_DOUBLE>:
-
-  Guessing which symbols your C compiler and preprocessor define...
-  try.c:<line#>: missing binary operator
-
-This failure does not seem to cause any problems.  With older gcc
-versions, "parse error" is reported instead of "missing binary
-operator".
-
-=back
-
 =head1 MAKE ON CYGWIN
 
 Simply run I<make> and wait:
 
-  make 2>&1 | tee log.make
+  make -jn 2>&1 | tee log.make
+
+where I<n> is the maximum number of simultaneous compilations you want;
+omitting this parameter is the same as specifying C<-j1>.
 
 =head1 TEST ON CYGWIN
 
@@ -252,7 +220,12 @@ There are two steps to running the test 
   cd t; ./perl harness 2>&1 | tee ../log.harness
 
 The same tests are run both times, but more information is provided when
-running as C<./perl harness>.
+running as C<./perl harness>, and you can run the tests in parallel by
+instead specifying
+
+  cd t; TEST_JOBS=n ./perl harness 2>&1 | tee ../log.harness
+
+where I<n> is the maximum number of tests to run simulataneously.
 
 Test results vary depending on your host system and your Cygwin
 configuration.  If a test can pass in some Cygwin setup, it is always
@@ -329,8 +302,8 @@ to portability, more information can be 
 =item * Pathnames
 
 Cygwin pathnames are separated by forward (F</>) slashes, Universal
-Naming Codes (F<//UNC>) are also supported Since cygwin-1.7 non-POSIX
-pathnames are discouraged.  Names may contain all printable
+Naming Codes (F<//UNC>) are also supported.  Since cygwin-1.7 non-POSIX
+pathnames should not be used.  Names may contain all printable
 characters.
 
 File names are case insensitive, but case preserving.  A pathname that
@@ -419,30 +392,24 @@ or:
  as parent(0x6FB30000) != 0x6FE60000 46 [main] perl 3488 fork: child
  3588 - died waiting for dll loading, errno11
 
-See L<https://cygwin.com/faq/faq-nochunks.html#faq.using.fixing-fork-failures>
+See L<https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures>
 It helps if not too many DLLs are loaded in memory so the available address space is larger,
 e.g. stopping the MS Internet Explorer might help.
 
-Use the perlrebase or rebase utilities to resolve the conflicting dll addresses.
++Use the rebase utilities to resolve the conflicting dll addresses.
 The rebase package is included in the Cygwin setup. Use F<setup.exe>
 from L<https://cygwin.com/install.html> to install it.
 
-1. kill all perl processes and run C<perlrebase> or
-
-2. kill all cygwin processes and services, start dash from cmd.exe and run C<rebaseall>.
+1. kill all perl processes and run
+   C<</bin/find <dir> -xdev -name \*.dll | /bin/rebase -OT ->> or
 
-=item * C<chown()>
-
-On WinNT C<chown()> can change a file's user and group IDs.  On Win9x C<chown()>
-is a no-op, although this is appropriate since there is no security model.
+2. kill all cygwin processes and services, and run setup.exe.
 
 =item * Miscellaneous
 
 File locking using the C<F_GETLK> command to C<fcntl()> is a stub that
 returns C<ENOSYS>.
 
-Win9x can not C<rename()> an open file (although WinNT can).
-
 The Cygwin C<chroot()> implementation has holes (it can not restrict file
 access by native Win32 programs).
 
@@ -566,7 +533,7 @@ be kept as clean as possible.
  pod/perl573delta.pod pod/perl58delta.pod pod/perl581delta.pod
  pod/perl590delta.pod pod/perlhist.pod pod/perlmodlib.pod
  pod/perltoc.pod Porting/Glossary pod/perlgit.pod
- Porting/checkAUTHORS.pl
+ Porting/updateAUTHORS.pl
  dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes
  dist/Time-HiRes/Changes
  ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes
@@ -774,4 +741,4 @@ Jerry D. Hedden <jdhedden@cpan.org>.
 
 =head1 HISTORY
 
-Last updated: 2012-02-08
+Last updated: 2019-11-14
Index: gnu/usr.bin/perl/README.freebsd
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.freebsd,v
diff -u -p -a -u -p -r1.2 README.freebsd
--- gnu/usr.bin/perl/README.freebsd	9 Apr 2020 01:32:11 -0000	1.2
+++ gnu/usr.bin/perl/README.freebsd	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
@@ -17,7 +19,7 @@ When perl is configured to use ithreads,
 in preference to non-re-entrant versions.  There is a bug in FreeBSD's
 C<readdir_r> function in versions 4.5 and earlier that can cause a SEGV when
 reading large directories. A patch for FreeBSD libc is available
-(see L<http://www.freebsd.org/cgi/query-pr.cgi?pr=misc/30631> )
+(see L<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=30631>)
 which has been integrated into FreeBSD 4.6.
 
 =head2 C<$^X> doesn't always contain a full path in FreeBSD
@@ -27,7 +29,7 @@ system. On FreeBSD the full path of the 
 C<sysctl> with C<KERN_PROC_PATHNAME> if that is supported, else by reading
 the symlink F</proc/curproc/file>. FreeBSD 7 and earlier has a bug where
 either approach sometimes returns an incorrect value
-(see L<http://www.freebsd.org/cgi/query-pr.cgi?pr=35703> ).
+(see L<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=35703>).
 In these cases perl will fall back to the old behaviour of using C's
 C<argv[0]> value for C<$^X>.
 
Index: gnu/usr.bin/perl/README.haiku
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.haiku,v
diff -u -p -a -u -p -r1.14 README.haiku
--- gnu/usr.bin/perl/README.haiku	23 Dec 2023 21:02:20 -0000	1.14
+++ gnu/usr.bin/perl/README.haiku	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
@@ -22,9 +24,9 @@ The build procedure is completely standa
 Make perl executable and create a symlink for libperl:
 
   chmod a+x /boot/common/bin/perl
-  cd /boot/common/lib; ln -s perl5/5.36.3/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.38.2/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.36.3> with your respective version of Perl.
+Replace C<5.38.2> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
Index: gnu/usr.bin/perl/README.hpux
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.hpux,v
diff -u -p -a -u -p -r1.3 README.hpux
--- gnu/usr.bin/perl/README.hpux	30 Dec 2019 02:13:39 -0000	1.3
+++ gnu/usr.bin/perl/README.hpux	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.hurd
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.hurd,v
diff -u -p -a -u -p -r1.4 README.hurd
--- gnu/usr.bin/perl/README.hurd	1 Mar 2021 23:19:42 -0000	1.4
+++ gnu/usr.bin/perl/README.hurd	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.irix
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.irix,v
diff -u -p -a -u -p -r1.4 README.irix
--- gnu/usr.bin/perl/README.irix	15 Feb 2023 01:36:12 -0000	1.4
+++ gnu/usr.bin/perl/README.irix	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
Index: gnu/usr.bin/perl/README.jp
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.jp,v
diff -u -p -a -u -p -r1.1.1.9 README.jp
--- gnu/usr.bin/perl/README.jp	15 Feb 2023 01:32:31 -0000	1.1.1.9
+++ gnu/usr.bin/perl/README.jp	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 =encoding utf8
 
 =head1 NAME
Index: gnu/usr.bin/perl/README.ko
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.ko,v
diff -u -p -a -u -p -r1.1.1.8 README.ko
--- gnu/usr.bin/perl/README.ko	15 Feb 2023 01:31:59 -0000	1.1.1.8
+++ gnu/usr.bin/perl/README.ko	21 Feb 2024 15:47:00 -0000
@@ -1,9 +1,10 @@
-=encoding utf8
+# vim: syntax=pod
 
 이 파일을 내용 그대로 읽고 있다면 우스꽝스러운 문자는 무시해주세요.
 이 문서는 POD로 읽을 수 있도록 POD 형식(F<pod/perlpod.pod> 문서를
 확인하세요)으로 작성되어 있습니다.
 
+=encoding utf8
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/README.linux
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.linux,v
diff -u -p -a -u -p -r1.3 README.linux
--- gnu/usr.bin/perl/README.linux	1 Mar 2021 23:19:42 -0000	1.3
+++ gnu/usr.bin/perl/README.linux	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
Index: gnu/usr.bin/perl/README.macosx
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.macosx,v
diff -u -p -a -u -p -r1.14 README.macosx
--- gnu/usr.bin/perl/README.macosx	23 Dec 2023 21:02:20 -0000	1.14
+++ gnu/usr.bin/perl/README.macosx	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
@@ -10,9 +12,9 @@ perlmacosx - Perl under Mac OS X
 
 This document briefly describes Perl under Mac OS X.
 
-  curl -O https://www.cpan.org/src/perl-5.36.3.tar.gz
-  tar -xzf perl-5.36.3.tar.gz
-  cd perl-5.36.3
+  curl -O https://www.cpan.org/src/perl-5.38.2.tar.gz
+  tar -xzf perl-5.38.2.tar.gz
+  cd perl-5.38.2
   ./Configure -des -Dprefix=/usr/local/
   make
   make test
@@ -20,7 +22,7 @@ This document briefly describes Perl und
 
 =head1 DESCRIPTION
 
-The latest Perl release (5.36.3 as of this writing) builds without changes
+The latest Perl release (5.38.2 as of this writing) builds without changes
 under all versions of Mac OS X from 10.3 "Panther" onwards. 
 
 In order to build your own version of Perl you will need 'make',
Index: gnu/usr.bin/perl/README.openbsd
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.openbsd,v
diff -u -p -a -u -p -r1.2 README.openbsd
--- gnu/usr.bin/perl/README.openbsd	9 Apr 2020 01:32:11 -0000	1.2
+++ gnu/usr.bin/perl/README.openbsd	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
Index: gnu/usr.bin/perl/README.os2
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.os2,v
diff -u -p -a -u -p -r1.30 README.os2
--- gnu/usr.bin/perl/README.os2	23 Dec 2023 21:02:20 -0000	1.30
+++ gnu/usr.bin/perl/README.os2	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see. It is written in the POD format (see perlpod manpage) which is
 specially designed to be readable as is.
@@ -619,7 +621,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, 
 
 =item Additional Perl modules
 
-  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.36.3/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.38.2/
 
 Same remark as above applies.  Additionally, if this directory is not
 one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
Index: gnu/usr.bin/perl/README.os390
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.os390,v
diff -u -p -a -u -p -r1.6 README.os390
--- gnu/usr.bin/perl/README.os390	15 Feb 2023 01:36:12 -0000	1.6
+++ gnu/usr.bin/perl/README.os390	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 This document is written in pod format hence there are punctuation
 characters in odd places. You can read more
 about pod in pod/perlpod.pod or the short summary in the INSTALL file.
Index: gnu/usr.bin/perl/README.os400
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.os400,v
diff -u -p -a -u -p -r1.3 README.os400
--- gnu/usr.bin/perl/README.os400	9 Apr 2020 01:32:11 -0000	1.3
+++ gnu/usr.bin/perl/README.os400	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.plan9
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.plan9,v
diff -u -p -a -u -p -r1.2 README.plan9
--- gnu/usr.bin/perl/README.plan9	27 Oct 2002 22:25:17 -0000	1.2
+++ gnu/usr.bin/perl/README.plan9	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.qnx
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.qnx,v
diff -u -p -a -u -p -r1.7 README.qnx
--- gnu/usr.bin/perl/README.qnx	15 Feb 2023 01:36:12 -0000	1.7
+++ gnu/usr.bin/perl/README.qnx	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.riscos
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.riscos,v
diff -u -p -a -u -p -r1.1.1.2 README.riscos
--- gnu/usr.bin/perl/README.riscos	25 Mar 2013 20:06:37 -0000	1.1.1.2
+++ gnu/usr.bin/perl/README.riscos	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
Index: gnu/usr.bin/perl/README.solaris
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.solaris,v
diff -u -p -a -u -p -r1.12 README.solaris
--- gnu/usr.bin/perl/README.solaris	9 Apr 2020 01:32:11 -0000	1.12
+++ gnu/usr.bin/perl/README.solaris	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see.  It is written in the POD format (see pod/perlpod.pod) which is
 specifically designed to be readable as is.
Index: gnu/usr.bin/perl/README.synology
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.synology,v
diff -u -p -a -u -p -r1.5 README.synology
--- gnu/usr.bin/perl/README.synology	15 Feb 2023 01:36:12 -0000	1.5
+++ gnu/usr.bin/perl/README.synology	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is. But if you have been into Perl you
@@ -23,20 +25,98 @@ L<Synology FAQ|https://kb.synology.com/e
 Since it is based on Linux, the NAS can run many popular Linux
 software packages, including Perl. In fact, Synology provides a
 ready-to-install package for Perl, depending on the version of DSM
-the installed perl ranges from 5.8.6 on DSM-4.3 to 5.24.0 on DSM-6.1.
+the installed perl ranges from 5.8.6 on DSM-4.3 to 5.28.1 on DSM-7.1.
 
 There is an active user community that provides many software packages
 for the Synology DSM systems; at the time of writing this document
-they provide Perl version 5.24.1.
+they provide Perl version 5.28.1.
 
 This document describes various features of Synology DSM operating
 system that will affect how Perl 5 (hereafter just Perl) is
 configured, compiled and/or runs. It has been compiled and verified by
 Johan Vromans for the Synology DS413 (QorIQ), with feedback from
-H.Merijn Brand (DS213, ARMv5tel and RS815, Intel Atom x64).
+H.Merijn Brand (DS213: ARMv5tel, RS815: Intel Atom x64, and DS218+:
+Celeron J3355).
 
 =head2 Setting up the build environment
 
+=head3 DSM 7
+
+For a comfortable development environment, Entware is currently the only
+viable solution. Just follow the detailed instructions on
+L<Install Entware on Synology NAS|https://github.com/Entware/Entware/wiki/Install-on-Synology-NAS>.
+supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64.
+Check L<here|https://pkg.entware.net/binaries/> for supported platforms.
+
+That github link also shows what environments should be supported.
+
+It was tested on DSM-7.1 by H.Merijn Brand on a DS218+ and a DS220+ (both
+Intel x64).
+
+Entware comes with a precompiled 5.26.1 (Jan 2018) that allowes
+building shared XS code. Note that this installation does B<not> use
+a site_perl folder. The available C<cpan> works. If all required
+development packages are installed too, also for XS.
+
+Installing perl from the Community package center:
+
+=over 4
+
+=item *
+
+Using your favourite browser open the DSM management page and start
+the Package Center.
+
+=item *
+
+In Settings, add the following Package Sources:
+
+  Name:     Community
+  Location: https://synopackage.com/repository/spk/All
+
+=item *
+
+Still in Settings, in Channel Update, select Beta Channel.
+
+=back
+
+To complete the development environment, install make and gcc
+
+ ds220# opkg install make gcc
+
+Then, optionally, make sure you use the more recent bash and gawk.
+
+ ds220# opkg install bash gawk
+ ds220# cd /usr/bin
+ ds220# mv bash bash.syno
+ ds220# ln -s /opt/bin/bash .
+
+In order to have Configure find the required libraries
+
+ ds220# cd /opt/lib
+ ds220# ln -s libcrypt.so.?       libcrypt.so
+ ds220# ln -s libdl.so.?          libdl.so
+ ds220# ln -s libgdbm.so.?        libgdbm.so
+ ds220# ln -s libgdbm_compat.so.? libgdbm_compat.so
+ ds220# ln -s libm.so.?           libm.so
+ ds220# ln -s libpthread.so.?     libpthread.so
+ ds220# ln -s libutil.so.?        libutil.so
+
+=head3 DSM 6
+
+Using iPkg has been deprecated on DSM 6, but an alternative is available
+for DSM 6: entware/opkg. For instructions on how to use that, please read
+L<Install Entware-ng on Synology NAS|https://github.com/Entware-ng/Entware-ng/wiki/Install-on-Synology-NAS>
+
+That sadly does not (yet) work on QorIQ. At the moment of writing, the
+supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64.
+Check L<here|https://pkg.entware.net/binaries/> for supported platforms.
+
+Entware-ng comes with a precompiled 5.24.1 (June 2017) that allowes
+building shared XS code. Note that this installation does B<not> use
+a site_perl folder. The available C<cpan> works. If all required
+development packages are installed too, also for XS.
+
 =head3 DSM 5
 
 As DSM is a trimmed-down Linux system, it lacks many of the tools and
@@ -62,6 +142,9 @@ In Settings, add the following Package S
   https://www.cphub.net
   http://packages.quadrat4.de
 
+As these two are both discontinued, it is unlikely you will be able
+to set up a build environment on DSM 5.
+
 =item *
 
 Still in Settings, in Channel Update, select Beta Channel.
@@ -131,21 +214,6 @@ Execute the following commands:
 B<WARNING:> When you perform a system software upgrade, these links
 will disappear and need to be re-established.
 
-=head3 DSM 6
-
-Using iPkg has been deprecated on DSM 6, but an alternative is available
-for DSM 6: entware/opkg. For instructions on how to use that, please read
-L<Install Entware-ng on Synology NAS|https://github.com/Entware-ng/Entware-ng/wiki/Install-on-Synology-NAS>
-
-That sadly does not (yet) work on QorIQ. At the moment of writing, the
-supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64.
-Check L<here|https://pkg.entware.net/binaries/> for supported platforms.
-
-Entware-ng comes with a precompiled 5.24.1 (June 2017) that allowes
-building shared XS code. Note that this installation does B<not> use
-a site_perl folder. The available C<cpan> works. If all required
-development packages are installed too, also for XS.
-
 =head2 Compiling Perl 5
 
 When the build environment has been set up, building and testing Perl
@@ -158,16 +226,18 @@ sources as usual, and add a file Policy.
   # Install Perl in a tree in /opt/perl instead of /opt/bin.
   prefix=/opt/perl
 
-  # Select the compiler. Note that there is no 'cc' alias or link.
+  # Select the compiler. Note that there is no 'cc' alias or link
+  # on older DSM versions
   cc=gcc
+  awk=/opt/bin/gawk
 
-  # Build flags.
+  # Build flags. Optional
   ccflags="-DDEBUGGING"
 
   # Library and include paths.
-  libpth="/lib"
   locincpth="/opt/include"
-  loclibpth="/lib"
+  loclibpth="/opt/lib /usr/local/lib /usr/lib"
+  libpth="/opt/lib /usr/local/lib /usr/lib"
 
 You may want to create the destination directory and give it the right
 permissions before installing, thus eliminating the need to build Perl
@@ -176,16 +246,19 @@ as a super user.
 In the directory where you unpacked the sources, issue the familiar
 commands:
 
-  ./Configure -des
-  make
-  make test
-  make install
+  $ bash ./Configure -Dusedevel -Duseshrplib -Duse64bitall -des
+  $ make -j2
+  $ env TEST_JOBS=2 make test_harness
+  $ make install
 
 =head2 Known problems
 
 =head3 Configure
 
-No known problems yet
+The GNU C-compiler might spit out unexpected stuff under -v, which
+causes the analysis of cppsymbols to fail because of unmatched quotes.
+
+You'll note if config.sh fails with a syntax error.
 
 =head3 Build
 
@@ -216,7 +289,7 @@ some system components will start to fai
 
 =back
 
-=head2 Smoke testing Perl 5
+=head2 Smoke testing Perl
 
 If building completes successfully, you can set up smoke testing as
 described in the Test::Smoke documentation.
@@ -267,11 +340,11 @@ the programs are run.
 
 =head1 REVISION
 
-June 2017, for Synology DSM 5.1.5022 and DSM 6.1-15101-4.
+July 2022, for DSM 5.1.5022 and DSM 6.1-15101-4, and DSM-7.1-42661-3.
 
 =head1 AUTHOR
 
 Johan Vromans <jvromans@squirrel.nl>
-H. Merijn Brand <h.m.brand@xs4all.nl>
+H. Merijn Brand <cpan@tux.freedom.nl>
 
 =cut
Index: gnu/usr.bin/perl/README.tru64
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.tru64,v
diff -u -p -a -u -p -r1.2 README.tru64
--- gnu/usr.bin/perl/README.tru64	5 Feb 2017 00:31:52 -0000	1.2
+++ gnu/usr.bin/perl/README.tru64	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you see.
 It is written in the POD format (see pod/perlpod.pod) which is specially
 designed to be readable as is.
Index: gnu/usr.bin/perl/README.tw
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.tw,v
diff -u -p -a -u -p -r1.1.1.10 README.tw
--- gnu/usr.bin/perl/README.tw	15 Feb 2023 01:31:57 -0000	1.1.1.10
+++ gnu/usr.bin/perl/README.tw	21 Feb 2024 15:47:00 -0000
@@ -1,8 +1,10 @@
-=encoding utf8
+# vim: syntax=pod
 
 如果你用一般的文字編輯器閱覽這份文件, 請忽略文中奇特的註記字符.
 這份文件是以 POD (簡明文件格式) 寫成; 這種格式是為了能讓人直接讀取,
 而特別設計的. 關於此格式的進一步資訊, 請參考 perlpod 線上文件.
+
+=encoding utf8
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/README.vms
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.vms,v
diff -u -p -a -u -p -r1.31 README.vms
--- gnu/usr.bin/perl/README.vms	23 Dec 2023 21:02:20 -0000	1.31
+++ gnu/usr.bin/perl/README.vms	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the equal signs on the left.
 This file is written in the POD format (see [.pod]perlpod.pod) which is
 specially designed to be readable as is.
@@ -137,11 +139,11 @@ You may need to set up a foreign symbol 
 choice.  Once you have done so, use a command like the following to
 unpack the archive:
 
-    vmstar -xvf perl-5^.36^.3.tar
+    vmstar -xvf perl-5^.38^.2.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.36^.3]
+    set default [.perl-5^.38^.2]
 
 and proceed with configuration as described in the next section.
 
Index: gnu/usr.bin/perl/README.vos
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.vos,v
diff -u -p -a -u -p -r1.1.1.10 README.vos
--- gnu/usr.bin/perl/README.vos	24 Mar 2014 14:58:47 -0000	1.1.1.10
+++ gnu/usr.bin/perl/README.vos	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see. It is written in the POD format (see pod/perlpod.pod) which is
 specially designed to be readable as is.
Index: gnu/usr.bin/perl/README.win32
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/README.win32,v
diff -u -p -a -u -p -r1.22 README.win32
--- gnu/usr.bin/perl/README.win32	15 Feb 2023 01:36:12 -0000	1.22
+++ gnu/usr.bin/perl/README.win32	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 If you read this file _as_is_, just ignore the funny characters you
 see. It is written in the POD format (see pod/perlpod.pod) which is
 specially designed to be readable as is.
@@ -53,7 +55,7 @@ delivering complete gcc toolchain for MS
 
 Delivers gcc toolchain building 32-bit executables (which can be used both 32 and 64 bit Windows platforms)
 
-=item L<http://mingw-w64.org>
+=item L<https://mingw-w64.org>
 
 Delivers gcc toolchain targeting both 64-bit Windows and 32-bit Windows
 platforms (despite the project name "mingw-w64" they are not only 64-bit
@@ -72,10 +74,10 @@ https://docs.microsoft.com/en-us/visuals
 and
 https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2013-sysrequirements-vs
 
-The MinGW64 compiler is available at L<http://mingw-w64.org>.
+The MinGW64 compiler is available at L<https://mingw-w64.org>.
 The latter is actually a cross-compiler targeting Win64. There's also a trimmed
 down compiler (no java, or gfortran) suitable for building perl available at:
-L<http://strawberryperl.com/package/kmx/64_gcctoolchain/>
+L<https://strawberryperl.com/package/kmx/64_gcctoolchain/>
 
 NOTE: If you're using a 32-bit compiler to build perl on a 64-bit Windows
 operating system, then you should set the WIN64 environment variable to "undef".
@@ -133,20 +135,25 @@ These free versions of Visual C++ 2013-2
 compilers and linkers that ship with the full versions, and also contain
 everything necessary to build Perl.
 
-These packages can be downloaded by searching in the Download Center at
-L<https://www.microsoft.com/downloads/search.aspx?displaylang=en>.  (Providing exact
-links to these packages has proven a pointless task because the links keep on
-changing so often.)
+These packages can be downloaded from L<https://visualstudio.microsoft.com/>.
 
 Install Visual C++ 2013-2022 Community, then setup your environment
 using, e.g.
 
- C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat
+F<C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat>
 
 (assuming the default installation location was chosen).
 
-Perl should now build using the win32/Makefile.  You will need to edit that
-file to set CCTYPE to one of MSVC120-MSVC142 first.
+Perl should now build using the F<win32/Makefile>.  You will need to edit that
+file to set C<CCTYPE> to one of C<MSVC120>-C<MSVC143> first.
+
+=item Microsoft C++ Build Tools
+
+There's also a standalone (IDE-less) version of the build tools mentioned
+above containing the MSVC compiler available for download from
+L<https://visualstudio.microsoft.com/visual-cpp-build-tools/>.
+
+This is also referred to as I<Build Tools for Visual Studio>.
 
 =item GCC
 
@@ -154,7 +161,7 @@ Perl can be compiled with gcc from MinGW
 MinGW64 (version 4.4.3 or later).  It can be downloaded here:
 
 L<https://osdn.net/projects/mingw/>
-L<http://www.mingw-w64.org/>
+L<https://www.mingw-w64.org/>
 
 You also need gmake. Usually it comes with MinGW but its executable may have
 a different name, such as mingw32-make.exe.
@@ -167,11 +174,11 @@ or later, and with MinGW64 64-bit 6.3.0 
 =item Intel C++ Compiler
 
 Experimental support for using Intel C++ Compiler has been added. Edit
-win32/Makefile and pick the correct CCTYPE for the Visual C that Intel C was
-installed into. Also uncomment __ICC to enable Intel C on Visual C support.
+F<win32/Makefile> and pick the correct C<CCTYPE> for the Visual C that Intel C
+was installed into. Also uncomment C<__ICC> to enable Intel C on Visual C support.
 To set up the build environment, from the Start Menu run
 IA-32 Visual Studio 20__ mode or Intel 64 Visual Studio 20__ mode as
-appropriate. Then run nmake as usually in that prompt box.
+appropriate. Then run C<nmake> as usual in that prompt box.
 
 Only Intel C++ Compiler v12.1 has been tested. Other versions probably will
 work. Using Intel C++ Compiler instead of Visual C has the benefit of C99
@@ -187,65 +194,65 @@ unlike GCC.
 
 =item *
 
-Make sure you are in the "win32" subdirectory under the perl toplevel.
-This directory contains a "Makefile" that will work with
-versions of nmake that come with Visual C++, and
-a GNU make "GNUmakefile" that will work for all supported compilers.
-The defaults in the gmake makefile are setup to build using MinGW/gcc.
+Make sure you are in the F<win32> subdirectory under the perl toplevel.
+This directory contains a F<Makefile> that will work with
+versions of C<nmake> that come with Visual C++, and
+a GNU make F<GNUmakefile> that will work for all supported compilers.
+The defaults in the C<gmake> makefile are set up to build with MinGW/gcc.
 
 =item *
 
-Edit the GNUmakefile (or Makefile, if you're using nmake) and change the values
-of INST_DRV and INST_TOP. You can also enable various build flags. These are
-explained in the makefiles.
+Edit the F<GNUmakefile> (or F<Makefile>, if you're using F<nmake>) and change
+the values of I<INST_DRV> and C<INST_TOP>. You can also enable various build
+flags. These are explained in the makefiles.
 
-Note that it is generally not a good idea to try to build a perl with
-INST_DRV and INST_TOP set to a path that already exists from a previous
+Note that it is generally not a good idea to try to build a C<perl> with
+C<INST_DRV> and C<INST_TOP> set to a path that already exists from a previous
 build.  In particular, this may cause problems with the
-lib/ExtUtils/t/Embed.t test, which attempts to build a test program and
-may end up building against the installed perl's lib/CORE directory rather
-than the one being tested.
+F<lib/ExtUtils/t/Embed.t> test, which attempts to build a test program and
+may end up building against the installed C<perl>'s F<lib/CORE> directory
+rather than the one being tested.
 
-You will have to make sure that CCTYPE is set correctly and that
-CCHOME points to wherever you installed your compiler.  For GCC this
+You will have to make sure that C<CCTYPE> is set correctly and that
+C<CCHOME> points to wherever you installed your compiler.  For GCC this
 should be the directory that contains the F<bin>, F<include> and
 F<lib> directories.
 
 If building with the cross-compiler provided by
 mingw-w64.org you'll need to uncomment the line that sets
-GCCCROSS in the GNUmakefile. Do this only if it's the cross-compiler - ie
-only if the bin folder doesn't contain a gcc.exe. (The cross-compiler
-does not provide a gcc.exe, g++.exe, ar.exe, etc. Instead, all of these
-executables are prefixed with 'x86_64-w64-mingw32-'.)
+C<GCCCROSS> in the F<GNUmakefile>. Do this only if it's the cross-compiler,
+ie. only if the F<bin> folder doesn't contain a F<gcc.exe>. (The cross-compiler
+does not provide a F<gcc.exe>, F<g++.exe>, F<ar.exe>, etc. Instead, all of these
+executables are prefixed with C<x86_64-w64-mingw32->.)
 
-The default value for CCHOME in the makefiles for Visual C++
+The default value for C<CCHOME> in the makefiles for Visual C++
 may not be correct for some versions.  Make sure the default exists
 and is valid.
 
-If you want build some core extensions statically into perl's dll, specify
-them in the STATIC_EXT macro.
+If you want build some core extensions statically into C<perl>'s DLL,
+specify them in the C<STATIC_EXT> macro.
 
 Be sure to read the instructions near the top of the makefiles carefully.
 
 =item *
 
-Type "gmake" (or "nmake" if you are using that make).
+Type C<gmake> (or C<nmake> if you are using that version of C<make>).
 
-This should build everything.  Specifically, it will create perl.exe,
-perl536.dll at the perl toplevel, and various other extension dll's
-under the lib\auto directory.  If the build fails for any reason, make
+This should build everything.  Specifically, it will create F<perl.exe>,
+F<perl538.dll> at the perl toplevel, and various other extension DLL's
+under the F<lib\auto> directory.  If the build fails for any reason, make
 sure you have done the previous steps correctly.
 
-To try gmake's parallel mode, type "gmake -j2", where 2, is the maximum number
+To try C<gmake>'s parallel mode, type C<gmake -j2> where C<2> is the maximum number
 of parallel jobs you want to run. A number of things in the build process will
 run in parallel, but there are serialization points where you will see just 1
 CPU maxed out. This is normal.
 
 If you are advanced enough with building C code, here is a suggestion to speed
-up building perl, and the later C<make test>. Try to keep your PATH environmental
+up building C<perl>, and the later C<make test>. Try to keep your C<PATH> environment
 variable with the least number of folders possible (remember to keep your C
-compiler's folders there). C<C:\WINDOWS\system32> or C<C:\WINNT\system32>
-depending on your OS version should be first folder in PATH, since "cmd.exe"
+compiler's folders there). F<C:\WINDOWS\system32> or F<C:\WINNT\system32>
+depending on your OS version should be first folder in C<PATH>, since C<cmd.exe>
 is the most commonly launched program during the build and later testing.
 
 =back
Index: gnu/usr.bin/perl/XSUB.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/XSUB.h,v
diff -u -p -a -u -p -r1.21 XSUB.h
--- gnu/usr.bin/perl/XSUB.h	15 Feb 2023 01:36:12 -0000	1.21
+++ gnu/usr.bin/perl/XSUB.h	21 Feb 2024 15:47:00 -0000
@@ -74,28 +74,28 @@ Macro to declare an XSUB and its C param
 Macro used by C<L</XS_INTERNAL>> and C<L</XS_EXTERNAL>> to declare a function
 prototype.  You probably shouldn't be using this directly yourself.
 
-=for apidoc Amns||dAX
+=for apidoc Amn;||dAX
 Sets up the C<ax> variable.
 This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
 
-=for apidoc Amns||dAXMARK
+=for apidoc Amn;||dAXMARK
 Sets up the C<ax> variable and stack marker variable C<mark>.
 This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
 
-=for apidoc Amns||dITEMS
+=for apidoc Amn;||dITEMS
 Sets up the C<items> variable.
 This is usually handled automatically by C<xsubpp> by calling C<dXSARGS>.
 
-=for apidoc Amns||dXSARGS
+=for apidoc Amn;||dXSARGS
 Sets up stack and mark pointers for an XSUB, calling C<dSP> and C<dMARK>.
 Sets up the C<ax> and C<items> variables by calling C<dAX> and C<dITEMS>.
 This is usually handled automatically by C<xsubpp>.
 
-=for apidoc Amns||dXSI32
+=for apidoc Amn;||dXSI32
 Sets up the C<ix> variable for an XSUB which has aliases.  This is usually
 handled automatically by C<xsubpp>.
 
-=for apidoc Amns||dUNDERBAR
+=for apidoc Amn;||dUNDERBAR
 Sets up any variable needed by the C<UNDERBAR> macro.  It used to define
 C<padoff_du>, but it is currently a noop.  However, it is strongly advised
 to still use it for ensuring past and future compatibility.
@@ -261,16 +261,16 @@ Return a double from an XSUB immediately
 =for apidoc Am|void|XSRETURN_PV|char* str
 Return a copy of a string from an XSUB immediately.  Uses C<XST_mPV>.
 
-=for apidoc Amns||XSRETURN_NO
+=for apidoc Amn;||XSRETURN_NO
 Return C<&PL_sv_no> from an XSUB immediately.  Uses C<XST_mNO>.
 
-=for apidoc Amns||XSRETURN_YES
+=for apidoc Amn;||XSRETURN_YES
 Return C<&PL_sv_yes> from an XSUB immediately.  Uses C<XST_mYES>.
 
-=for apidoc Amns||XSRETURN_UNDEF
+=for apidoc Amn;||XSRETURN_UNDEF
 Return C<&PL_sv_undef> from an XSUB immediately.  Uses C<XST_mUNDEF>.
 
-=for apidoc Amns||XSRETURN_EMPTY
+=for apidoc Amn;||XSRETURN_EMPTY
 Return an empty list from an XSUB immediately.
 
 =for apidoc AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
@@ -282,18 +282,18 @@ The version identifier for an XS module.
 handled automatically by C<ExtUtils::MakeMaker>.  See
 C<L</XS_VERSION_BOOTCHECK>>.
 
-=for apidoc Amns||XS_VERSION_BOOTCHECK
+=for apidoc Amn;||XS_VERSION_BOOTCHECK
 Macro to verify that a PM module's C<$VERSION> variable matches the XS
 module's C<XS_VERSION> variable.  This is usually handled automatically by
 C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 
-=for apidoc Amns||XS_APIVERSION_BOOTCHECK
+=for apidoc Amn;||XS_APIVERSION_BOOTCHECK
 Macro to verify that the perl api version an XS module has been compiled against
 matches the api version of the perl interpreter it's being loaded into.
 
 =for apidoc_section $exceptions
 
-=for apidoc Amns||dXCPT
+=for apidoc Amn;||dXCPT
 Set up necessary local variables for exception handling.
 See L<perlguts/"Exception Handling">.
 
@@ -306,7 +306,7 @@ Ends a try block.  See L<perlguts/"Excep
 =for apidoc AmnU||XCPT_CATCH
 Introduces a catch block.  See L<perlguts/"Exception Handling">.
 
-=for apidoc Amns||XCPT_RETHROW
+=for apidoc Amn;||XCPT_RETHROW
 Rethrows a previously caught exception.  See L<perlguts/"Exception Handling">.
 
 =cut
@@ -329,15 +329,15 @@ Rethrows a previously caught exception. 
         return;						\
     } STMT_END
 
-#define XSRETURN_IV(v) STMT_START { XST_mIV(0,v);  XSRETURN(1); } STMT_END
-#define XSRETURN_UV(v) STMT_START { XST_mUV(0,v);  XSRETURN(1); } STMT_END
-#define XSRETURN_NV(v) STMT_START { XST_mNV(0,v);  XSRETURN(1); } STMT_END
-#define XSRETURN_PV(v) STMT_START { XST_mPV(0,v);  XSRETURN(1); } STMT_END
-#define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n);  XSRETURN(1); } STMT_END
-#define XSRETURN_NO    STMT_START { XST_mNO(0);    XSRETURN(1); } STMT_END
-#define XSRETURN_YES   STMT_START { XST_mYES(0);   XSRETURN(1); } STMT_END
-#define XSRETURN_UNDEF STMT_START { XST_mUNDEF(0); XSRETURN(1); } STMT_END
-#define XSRETURN_EMPTY STMT_START {                XSRETURN(0); } STMT_END
+#define XSRETURN_IV(v)    STMT_START { XST_mIV(0,v);    XSRETURN(1); } STMT_END
+#define XSRETURN_UV(v)    STMT_START { XST_mUV(0,v);    XSRETURN(1); } STMT_END
+#define XSRETURN_NV(v)    STMT_START { XST_mNV(0,v);    XSRETURN(1); } STMT_END
+#define XSRETURN_PV(v)    STMT_START { XST_mPV(0,v);    XSRETURN(1); } STMT_END
+#define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n); XSRETURN(1); } STMT_END
+#define XSRETURN_NO       STMT_START { XST_mNO(0);      XSRETURN(1); } STMT_END
+#define XSRETURN_YES      STMT_START { XST_mYES(0);     XSRETURN(1); } STMT_END
+#define XSRETURN_UNDEF    STMT_START { XST_mUNDEF(0);   XSRETURN(1); } STMT_END
+#define XSRETURN_EMPTY    STMT_START {                  XSRETURN(0); } STMT_END
 
 #define newXSproto(a,b,c,d)	newXS_flags(a,b,c,d,0)
 
@@ -426,7 +426,7 @@ Rethrows a previously caught exception. 
         } STMT_END
 
 #define DBM_ckFilter(arg,type,name)				\
-        STMT_START {						\
+    STMT_START {						\
         if (db->type) {						\
             if (db->filtering) {				\
                 croak("recursion detected in %s", name) ;	\
@@ -450,7 +450,8 @@ Rethrows a previously caught exception. 
             if (name[7] == 's'){                                \
                 arg = sv_2mortal(arg);                          \
             }                                                   \
-        } } STMT_END
+        }                                                       \
+    } STMT_END
 
 #if 1		/* for compatibility */
 #  define VTBL_sv		&PL_vtbl_sv
Index: gnu/usr.bin/perl/autodoc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/autodoc.pl,v
diff -u -p -a -u -p -r1.6 autodoc.pl
--- gnu/usr.bin/perl/autodoc.pl	15 Feb 2023 01:36:12 -0000	1.6
+++ gnu/usr.bin/perl/autodoc.pl	21 Feb 2024 15:47:00 -0000
@@ -33,7 +33,7 @@ my %extra_input_pods = ( 'dist/ExtUtils-
 # the legal section names, or an error is thrown.  $section_name_variable must
 # be one of the legal section name variables defined below; these expand to
 # legal section names.  This form is used so that minor wording changes in
-# these titles can be confied to this file.  All the names of the variables
+# these titles can be confined to this file.  All the names of the variables
 # end in '_scn'; this suffix is optional in the apidoc_section lines.
 #
 # All API elements defined between this line and the next 'apidoc_section'
@@ -369,7 +369,7 @@ my $apidoc_re = qr/ ^ (\s*)            #
                       (.*?)            # $7
                       \s* \n /x;
 # Only certain flags, dealing with display, are acceptable for apidoc_item
-my $display_flags = "fFnDopsTx";
+my $display_flags = "fFnDopTx;";
 
 sub check_api_doc_line ($$) {
     my ($file, $in) = @_;
@@ -529,13 +529,19 @@ sub autodoc ($$) { # parse a file and ex
             }
 
             die "flag '$1' is not legal (for function $element_name (from $file))"
-                        if $flags =~ / ( [^AabCDdEeFfGhiIMmNnTOoPpRrSsUuWXxy] ) /x;
+                        if $flags =~ / ( [^AabCDdEeFfGhiIMmNnTOoPpRrSsUuWXxy;#] ) /x;
 
             die "'u' flag must also have 'm' or 'y' flags' for $element_name"
                                             if $flags =~ /u/ && $flags !~ /[my]/;
             warn ("'$element_name' not \\w+ in '$proto_in_file' in $file")
                         if $flags !~ /N/ && $element_name !~ / ^ [_[:alpha:]] \w* $ /x;
 
+            if ($flags =~ /#/) {
+                die "Return type must be empty for '$element_name'"
+                                                                   if $ret_type;
+                $ret_type = '#ifdef';
+            }
+
             if (exists $seen{$element_name} && $flags !~ /h/) {
                 die ("'$element_name' in $file was already documented in $seen{$element_name}");
             }
@@ -633,21 +639,23 @@ sub autodoc ($$) { # parse a file and ex
         if ($element_name) {
 
             # Here, we have accumulated into $text, the pod for $element_name
-            my $where = $flags =~ /A/ ? 'api' : 'guts';
+            my $where = $flags =~ /A/ ? 'api' : 'intern';
 
             die "No =for apidoc_section nor =head1 in $file for '$element_name'\n"
                                                     unless defined $section;
-            if (exists $docs{$where}{$section}{$element_name}) {
+            my $is_link_only = ($flags =~ /h/);
+            if (! $is_link_only && exists $docs{$where}{$section}{$element_name}) {
                 warn "$0: duplicate API entry for '$element_name' in"
                     . " $where/$section\n";
                 next;
             }
 
             # Override the text with just a link if the flags call for that
-            my $is_link_only = ($flags =~ /h/);
             if ($is_link_only) {
                 if ($file_is_C) {
-                    die "Can't currently handle link with items to it:\n$in" if @items;
+                    die "Can't currently handle link with items to it:\n$in"
+                                                                       if @items;
+                    $docs{$where}{$section}{X_tags}{$element_name} = $file;
                     redo;    # Don't put anything if C source
                 }
 
@@ -664,7 +672,7 @@ sub autodoc ($$) { # parse a file and ex
                 # Don't output a usage example for linked to documentation if
                 # it is trivial (has no arguments) and we aren't to add a
                 # semicolon
-                $flags .= 'U' if $flags =~ /n/ && $flags !~ /[Us]/;
+                $flags .= 'U' if $flags =~ /n/ && $flags !~ /[U;]/;
 
                 # Keep track of all the pod files that we refer to.
                 push $described_elsewhere{$podname}->@*, $podname;
@@ -1313,7 +1321,9 @@ sub docout ($$$) { # output the docs for
         if (   ($item_flags =~ /p/ && $item_flags =~ /o/ && $item_flags !~ /M/)
 
                 # Can't handle threaded varargs
-            || ($item_flags =~ /f/ && $item_flags !~ /T/))
+            || (   $item_flags =~ /f/
+                && $item_flags !~ /T/
+                && $item_name !~ /strftime/))
         {
             $item->{name} = "Perl_$item_name";
             print $fh <<~"EOT";
@@ -1328,8 +1338,8 @@ sub docout ($$$) { # output the docs for
 
     if ($flags =~ /[Uy]/) { # no usage; typedefs are considered simple enough
                             # to never warrant a usage line
-        warn("U and s flags are incompatible")
-                                            if $flags =~ /U/ && $flags =~ /s/;
+        warn("U and ; flags are incompatible")
+                                            if $flags =~ /U/ && $flags =~ /;/;
         # nothing
     } else {
 
@@ -1361,11 +1371,12 @@ sub docout ($$$) { # output the docs for
             my @base_args = $items[0]->{args}->@*;
             my $base_thread_context = $items[0]->{flags} =~ /T/;
             for (my $i = 1; $i < @items; $i++) {
-                no warnings 'experimental::smartmatch';
                 my $item = $items[$i];
+                my $args_are_equal = $item->{args}->@* == @base_args
+                  && !grep $item->{args}[$_] ne $base_args[$_], keys @base_args;
                 $need_individual_usage = 1
                                     if    $item->{ret_type} ne $base_ret_type
-                                    || ! ($item->{args}->@* ~~ @base_args)
+                                    || !  $args_are_equal
                                     ||   (   $item->{flags} =~ /T/
                                           != $base_thread_context);
                 my $ret_length = length $item->{ret_type};
@@ -1492,7 +1503,7 @@ sub docout ($$$) { # output the docs for
                     print $fh ")";
                 }
 
-                print $fh ";" if $item_flags =~ /s/; # semicolon: "dTHR;"
+                print $fh ";" if $item_flags =~ /;/; # semicolon: "dTHR;"
                 print $fh "\n";
 
                 # Only the first entry is normally displayed
@@ -1508,44 +1519,14 @@ sub docout ($$$) { # output the docs for
 }
 
 sub construct_missings_section {
-    my ($pod_name, $missings_ref) = @_;
+    my ($missings_hdr, $missings_ref) = @_;
     my $text = "";
 
-    return $text unless $missings_ref->@*;
-
-    $text .= <<~EOT;
+    $text .= "$missings_hdr\n" . format_pod_indexes($missings_ref);
 
-        =head1 $undocumented_scn
-
-        EOT
-    if ($pod_name eq 'perlapi') {
-        $text .= <<~'EOT';
-            The following functions have been flagged as part of the public
-            API, but are currently undocumented.  Use them at your own risk,
-            as the interfaces are subject to change.  Functions that are not
-            listed in this document are not intended for public use, and
-            should NOT be used under any circumstances.
-
-            If you feel you need to use one of these functions, first send
-            email to L<perl5-porters@perl.org|mailto:perl5-porters@perl.org>.
-            It may be that there is a good reason for the function not being
-            documented, and it should be removed from this list; or it may
-            just be that no one has gotten around to documenting it.  In the
-            latter case, you will be asked to submit a patch to document the
-            function.  Once your patch is accepted, it will indicate that the
-            interface is stable (unless it is explicitly marked otherwise) and
-            usable by you.
-            EOT
+    if ($missings_ref->@* == 0) {
+        return $text . "\nThere are currently no items of this type\n";
     }
-    else {
-        $text .= <<~'EOT';
-            The following functions are currently undocumented.  If you use
-            one of them, you may wish to consider creating and submitting
-            documentation for it.
-            EOT
-    }
-
-    $text .= "\n" . format_pod_indexes($missings_ref);
 
     # Sort the elements.
     my @missings = sort dictionary_order $missings_ref->@*;
@@ -1654,19 +1635,74 @@ sub construct_missings_section {
 }
 
 sub dictionary_order {
-    # Do a case-insensitive dictionary sort, with only alphabetics
-    # significant, falling back to using everything for determinancy
-    return (uc($a =~ s/[[:^alpha:]]//r) cmp uc($b =~ s/[[:^alpha:]]//r))
-           || uc($a) cmp uc($b)
-           || $a cmp $b;
+    # Do a case-insensitive dictionary sort, falling back in stages to using
+    # everything for determinancy.  The initial comparison ignores
+    # all non-word characters and non-trailing underscores and digits, with
+    # trailing ones collating to after any other characters.  This collation
+    # order continues in case tie breakers are needed; sequences of digits
+    # that do get looked at always compare numerically.  The first tie
+    # breaker takes all digits and underscores into account.  The next tie
+    # breaker uses a caseless character-by-character comparison of everything
+    # (including non-word characters).  Finally is a cased comparison.
+    #
+    # This gives intuitive results, but obviously could be tweaked.
+
+    no warnings 'non_unicode';
+
+    local $a = $a;
+    local $b = $b;
+
+    # Convert all digit sequences to same length with leading zeros, so for
+    # example, 8 will compare less than 16 (using a fill length value that
+    # should be longer than any sequence in the input).
+    $a =~ s/(\d+)/sprintf "%06d", $1/ge;
+    $b =~ s/(\d+)/sprintf "%06d", $1/ge;
+
+    # Translate any underscores and digits so they compare after all Unicode
+    # characters
+    $a =~ tr[_0-9]/\x{110000}-\x{11000A}/;
+    $b =~ tr[_0-9]/\x{110000}-\x{11000A}/;
+
+    use feature 'state';
+    # Modify \w, \W to reflect the changes.
+    state $ud = '\x{110000}-\x{11000A}';    # xlated underscore, digits
+    state $w = "\\w$ud";                    # new \w string
+    state $mod_w = qr/[$w]/;
+    state $mod_W = qr/[^$w]/;
+
+    # Only \w for initial comparison
+    my $a_only_word = uc($a =~ s/$mod_W//gr);
+    my $b_only_word = uc($b =~ s/$mod_W//gr);
+
+    # And not initial nor interior underscores nor digits (by squeezing them
+    # out)
+    my $a_stripped = $a_only_word =~ s/ (*atomic:[$ud]+) (*pla: $mod_w ) //grxx;
+    my $b_stripped = $b_only_word =~ s/ (*atomic:[$ud]+) (*pla: $mod_w ) //grxx;
+
+    # If the stripped versions differ, use that as the comparison.
+    my $cmp = $a_stripped cmp $b_stripped;
+    return $cmp if $cmp;
+
+    # For the first tie breaker, repeat, but consider initial and interior
+    # underscores and digits, again having those compare after all Unicode
+    # characters
+    $cmp = $a_only_word cmp $b_only_word;
+    return $cmp if $cmp;
+
+    # Next tie breaker is just a caseless comparison
+    $cmp = uc($a) cmp uc($b);
+    return $cmp if $cmp;
+
+    # Finally a straight comparison
+    return $a cmp $b;
 }
 
 sub output {
-    my ($podname, $header, $dochash, $missings_ref, $footer) = @_;
+    my ($podname, $header, $dochash, $footer, @missings_refs) = @_;
     #
     # strip leading '|' from each line which had been used to hide
     # pod from pod checkers.
-    s/^\|//gm for $header, $footer;
+    s/^\|//gm for $header, $footer, @missings_refs;
 
     my $fh = open_new("pod/$podname.pod", undef,
                       {by => "$0 extracting documentation",
@@ -1685,6 +1721,12 @@ sub output {
 
         print $fh "\n=head1 $section_name\n";
 
+        if ($section_info->{X_tags}) {
+            print $fh "X<$_>" for sort keys $section_info->{X_tags}->%*;
+            print $fh "\n";
+            delete $section_info->{X_tags};
+        }
+
         if ($podname eq 'perlapi') {
             print $fh "\n", $valid_sections{$section_name}{header}, "\n"
                                 if defined $valid_sections{$section_name}{header};
@@ -1703,7 +1745,9 @@ sub output {
             }
         }
         else {
-            print $fh "\nThere are only public API items currently in $section_name\n";
+            my $pod_type = ($podname eq 'api') ? "public" : "internal";
+            print $fh "\nThere are currently no $pod_type API items in ",
+                      $section_name, "\n";
         }
 
         print $fh "\n", $valid_sections{$section_name}{footer}, "\n"
@@ -1711,7 +1755,23 @@ sub output {
                             && defined $valid_sections{$section_name}{footer};
     }
 
-    print $fh construct_missings_section($podname, $missings_ref);
+
+    my $first_time = 1;
+    while (1) {
+        my $missings_hdr = shift @missings_refs or last;
+        my $missings_ref = shift @missings_refs or die "Foo";
+
+        if ($first_time) {
+            $first_time = 0;
+            print $fh <<~EOT;
+
+                =head1 $undocumented_scn
+
+                EOT
+        }
+
+        print $fh construct_missings_section($missings_hdr, $missings_ref);
+    }
 
     print $fh "\n$footer\n=cut\n";
 
@@ -1719,14 +1779,16 @@ sub output {
 }
 
 foreach (@{(setup_embed())[0]}) {
-    next if @$_ < 2;
-    my ($flags, $ret_type, $func, @args) = @$_;
-    s/\b(?:NN|NULLOK)\b\s+//g for @args;
+    my $embed= $_->{embed}
+        or next;
+    my ($flags, $ret_type, $func, $args) = @{$embed}{qw(flags return_type name args)};
+    my @munged_args= @$args;
+    s/\b(?:NN|NULLOK)\b\s+//g for @munged_args;
 
     $funcflags{$func} = {
                          flags => $flags,
                          ret_type => $ret_type,
-                         args => \@args,
+                         args => \@munged_args,
                         };
 }
 
@@ -1761,11 +1823,27 @@ foreach (sort keys %missing) {
 
 # List of funcs in the public API that aren't also marked as core-only,
 # experimental nor deprecated.
-my @missing_api = grep $funcflags{$_}{flags} =~ /A/
-                    && $funcflags{$_}{flags} !~ /[xD]/
-                    && !$docs{api}{$_}, keys %funcflags;
+
+my @undocumented_api =    grep {        $funcflags{$_}{flags} =~ /A/
+                                   && ! $docs{api}{$_}
+                               } keys %funcflags;
+my @undocumented_intern = grep {        $funcflags{$_}{flags} !~ /[AS]/
+                                   && ! $docs{intern}{$_}
+                               } keys %funcflags;
+my @undocumented_deprecated_api    = grep { $funcflags{$_}{flags} =~ /D/ }
+                                                            @undocumented_api;
+my @undocumented_deprecated_intern = grep { $funcflags{$_}{flags} =~ /D/ }
+                                                           @undocumented_intern;
+my @undocumented_experimental_api    =  grep { $funcflags{$_}{flags} =~ /x/ }
+                                                            @undocumented_api;
+my @undocumented_experimental_intern =  grep { $funcflags{$_}{flags} =~ /x/ }
+                                                           @undocumented_intern;
+my @missing_api = grep { $funcflags{$_}{flags} !~ /[xD]/ } @undocumented_api;
 push @missing_api, keys %missing_macros;
 
+my @missing_intern = grep { $funcflags{$_}{flags} !~ /[xD]/ }
+                                                           @undocumented_intern;
+
 my @other_places = ( qw(perlclib ), keys %described_elsewhere );
 my $places_other_than_intern = join ", ",
             map { "L<$_>" } sort dictionary_order 'perlapi', @other_places;
@@ -1785,7 +1863,9 @@ my $section_list = join "\n\n", map { "=
                                 sort(dictionary_order keys %valid_sections),
                                 $undocumented_scn;  # Keep last
 
-output('perlapi', <<"_EOB_", $docs{api}, \@missing_api, <<"_EOE_");
+# Leading '|' is to hide these lines from pod checkers.  khw is unsure if this
+# is still needed.
+my $api_hdr = <<"_EOB_";
 |=encoding UTF-8
 |
 |=head1 NAME
@@ -1826,7 +1906,7 @@ output('perlapi', <<"_EOB_", $docs{api},
 |
 |Note that all Perl API global variables must be referenced with the C<PL_>
 |prefix.  Again, those not listed here are not to be used by extension writers,
-|and can be changed or removed without notice; same with macros.
+|and may be changed or removed without notice; same with macros.
 |Some macros are provided for compatibility with the older,
 |unadorned names, but this support may be disabled in a future release.
 |
@@ -1870,6 +1950,8 @@ output('perlapi', <<"_EOB_", $docs{api},
 |
 |The listing below is alphabetical, case insensitive.
 _EOB_
+
+my $api_footer = <<"_EOE_";
 |=head1 AUTHORS
 |
 |Until May 1997, this document was maintained by Jeff Okamoto
@@ -1889,11 +1971,45 @@ _EOB_
 |F<config.h>, $places_other_than_api
 _EOE_
 
-# List of non-static internal functions
-my @missing_guts =
- grep $funcflags{$_}{flags} !~ /[AS]/ && !$docs{guts}{$_}, keys %funcflags;
+my $api_missings_hdr = <<'_EOT_';
+|The following functions have been flagged as part of the public
+|API, but are currently undocumented.  Use them at your own risk,
+|as the interfaces are subject to change.  Functions that are not
+|listed in this document are not intended for public use, and
+|should NOT be used under any circumstances.
+|
+|If you feel you need to use one of these functions, first send
+|email to L<perl5-porters@perl.org|mailto:perl5-porters@perl.org>.
+|It may be that there is a good reason for the function not being
+|documented, and it should be removed from this list; or it may
+|just be that no one has gotten around to documenting it.  In the
+|latter case, you will be asked to submit a patch to document the
+|function.  Once your patch is accepted, it will indicate that the
+|interface is stable (unless it is explicitly marked otherwise) and
+|usable by you.
+_EOT_
+
+my $api_experimental_hdr = <<"_EOT_";
+|
+|Next are the API-flagged elements that are considered experimental.  Using one
+|of these is even more risky than plain undocumented ones.  They are listed
+|here because they should be listed somewhere (so their existence doesn't get
+|lost) and this is the best place for them.
+_EOT_
+
+my $api_deprecated_hdr = <<"_EOT_";
+|
+|Finally are deprecated undocumented API elements.
+|Do not use any for new code; remove all occurrences of all of these from
+|existing code.
+_EOT_
+
+output('perlapi', $api_hdr, $docs{api}, $api_footer,
+       $api_missings_hdr, \@missing_api,
+       $api_experimental_hdr, \@undocumented_experimental_api,
+       $api_deprecated_hdr, \@undocumented_deprecated_api);
 
-output('perlintern', <<'_EOB_', $docs{guts}, \@missing_guts, <<"_EOE_");
+my $intern_hdr = <<"_EOB_";
 |=head1 NAME
 |
 |perlintern - autogenerated documentation of purely B<internal>
@@ -1910,6 +2026,8 @@ output('perlintern', <<'_EOB_', $docs{gu
 |It has the same sections as L<perlapi>, though some may be empty.
 |
 _EOB_
+
+my $intern_footer = <<"_EOE_";
 |
 |=head1 AUTHORS
 |
@@ -1921,3 +2039,33 @@ _EOB_
 |
 |F<config.h>, $places_other_than_intern
 _EOE_
+
+my $intern_missings_hdr = <<"_EOT_";
+|
+|This section lists the elements that are otherwise undocumented.  If you use
+|any of them, please consider creating and submitting documentation for it.
+|
+|Experimental and deprecated undocumented elements are listed separately at the
+|end.
+|
+_EOT_
+
+my $intern_experimental_hdr = <<"_EOT_";
+|
+|Next are the experimental undocumented elements
+|
+_EOT_
+
+my $intern_deprecated_hdr = <<"_EOT_";
+|
+|Finally are the deprecated undocumented elements.
+|Do not use any for new code; remove all occurrences of all of these from
+|existing code.
+|
+_EOT_
+
+output('perlintern', $intern_hdr, $docs{intern}, $intern_footer,
+       $intern_missings_hdr, \@missing_intern,
+       $intern_experimental_hdr, \@undocumented_experimental_intern,
+       $intern_deprecated_hdr, \@undocumented_deprecated_intern
+      );
Index: gnu/usr.bin/perl/av.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/av.c,v
diff -u -p -a -u -p -r1.21 av.c
--- gnu/usr.bin/perl/av.c	3 Sep 2023 00:48:54 -0000	1.21
+++ gnu/usr.bin/perl/av.c	21 Feb 2024 15:47:00 -0000
@@ -193,7 +193,8 @@ Perl_av_extend_guts(pTHX_ AV *av, SSize_
                 PL_stack_max = PL_stack_base + newmax;
             }
         } else { /* there is no SV* array yet */
-            *maxp = key < 3 ? 3 : key;
+            *maxp = key < PERL_ARRAY_NEW_MIN_KEY ?
+                          PERL_ARRAY_NEW_MIN_KEY : key;
             {
                 /* see comment above about newmax+1*/
                 MEM_WRAP_CHECK_s(*maxp, SV*,
@@ -302,11 +303,11 @@ Perl_av_fetch(pTHX_ AV *av, SSize_t key,
     if ((Size_t)key >= (Size_t)size) {
         if (UNLIKELY(neg))
             return NULL;
-        goto emptyness;
+        goto emptiness;
     }
 
     if (!AvARRAY(av)[key]) {
-      emptyness:
+      emptiness:
         return lval ? av_store(av,key,newSV_type(SVt_NULL)) : NULL;
     }
 
@@ -388,10 +389,47 @@ Perl_av_store(pTHX_ AV *av, SSize_t key,
     }
     else if (AvREAL(av))
         SvREFCNT_dec(ary[key]);
+
+    /* store the val into the AV before we call magic so that the magic can
+     * "see" the new value. Especially set magic on the AV itself. */
     ary[key] = val;
+
     if (SvSMAGICAL(av)) {
         const MAGIC *mg = SvMAGIC(av);
         bool set = TRUE;
+        /* We have to increment the refcount on val before we call any magic,
+         * as it is now stored in the AV (just before this block), we will
+         * then call the magic handlers which might die/Perl_croak, and
+         * longjmp up the stack to the most recent exception trap. Which means
+         * the caller code that would be expected to handle the refcount
+         * increment likely would never be executed, leading to a double free.
+         * This can happen in a case like
+         *
+         * @ary = (1);
+         *
+         * or this:
+         *
+         * if (av_store(av,n,sv)) SvREFCNT_inc(sv);
+         *
+         * where @ary/av has set magic applied to it which can die. In the
+         * first case the sv representing 1 would be mortalized, so when the
+         * set magic threw an exception it would be freed as part of the
+         * normal stack unwind. However this leaves the av structure still
+         * holding a valid visible pointer to the now freed value. In practice
+         * the next SV created will reuse the same reference, but without the
+         * refcount to account for the previous ownership and we end up with
+         * warnings about a totally different variable being double freed in
+         * the form of "attempt to free unreferenced variable"
+         * warnings/errors.
+         *
+         * https://github.com/Perl/perl5/issues/20675
+         *
+         * Arguably the API for av_store is broken in the face of magic. Instead
+         * av_store should be responsible for the refcount increment, and only
+         * not do it when specifically told to do so (eg, when storing an
+         * otherwise unreferenced scalar into an AV).
+         */
+        SvREFCNT_inc(val);  /* see comment above */
         for (; mg; mg = mg->mg_moremagic) {
           if (!isUPPER(mg->mg_type)) continue;
           if (val) {
@@ -404,53 +442,15 @@ Perl_av_store(pTHX_ AV *av, SSize_t key,
         }
         if (set)
            mg_set(MUTABLE_SV(av));
+        /* And now we are done the magic, we have to decrement it back as the av_store() api
+         * says the caller is responsible for the refcount increment, assuming
+         * av_store returns true. */
+        SvREFCNT_dec(val);
     }
     return &ary[key];
 }
 
 /*
-=for apidoc av_new_alloc
-
-This implements L<perlapi/C<newAV_alloc_x>>
-and L<perlapi/C<newAV_alloc_xz>>, which are the public API for this
-functionality.
-
-Creates a new AV and allocates its SV* array.
-
-This is similar to, but more efficient than doing:
-
-    AV *av = newAV();
-    av_extend(av, key);
-
-The size parameter is used to pre-allocate a SV* array large enough to
-hold at least elements C<0..(size-1)>.  C<size> must be at least 1.
-
-The C<zeroflag> parameter controls whether or not the array is NULL
-initialized.
-
-=cut
-*/
-
-AV *
-Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag)
-{
-    AV * const av = newAV();
-    SV** ary;
-    PERL_ARGS_ASSERT_AV_NEW_ALLOC;
-    assert(size > 0);
-
-    Newx(ary, size, SV*); /* Newx performs the memwrap check */
-    AvALLOC(av) = ary;
-    AvARRAY(av) = ary;
-    AvMAX(av) = size - 1;
-
-    if (zeroflag)
-        Zero(ary, size, SV*);
-
-    return av;
-}
-
-/*
 =for apidoc av_make
 
 Creates a new AV and populates it with a list (C<**strp>, length C<size>) of
@@ -508,6 +508,113 @@ Perl_av_make(pTHX_ SSize_t size, SV **st
 }
 
 /*
+=for apidoc newAVav
+
+Creates a new AV and populates it with values copied from an existing AV.  The
+new AV will have a reference count of 1, and will contain newly created SVs
+copied from the original SV.  The original source will remain unchanged.
+
+Perl equivalent: C<my @new_array = @existing_array;>
+
+=cut
+*/
+
+AV *
+Perl_newAVav(pTHX_ AV *oav)
+{
+    PERL_ARGS_ASSERT_NEWAVAV;
+
+    Size_t count = av_count(oav);
+
+    if(UNLIKELY(!oav) || count == 0)
+        return newAV();
+
+    AV *ret = newAV_alloc_x(count);
+
+    /* avoid ret being leaked if croak when calling magic below */
+    EXTEND_MORTAL(1);
+    PL_tmps_stack[++PL_tmps_ix] = (SV *)ret;
+    SSize_t ret_at_tmps_ix = PL_tmps_ix;
+
+    Size_t i;
+    if(LIKELY(!SvRMAGICAL(oav) && AvREAL(oav) && (SvTYPE(oav) == SVt_PVAV))) {
+        for(i = 0; i < count; i++) {
+            SV **svp = av_fetch_simple(oav, i, 0);
+            av_push_simple(ret, svp ? newSVsv(*svp) : &PL_sv_undef);
+        }
+    } else {
+        for(i = 0; i < count; i++) {
+            SV **svp = av_fetch(oav, i, 0);
+            av_push_simple(ret, svp ? newSVsv(*svp) : &PL_sv_undef);
+        }
+    }
+
+    /* disarm leak guard */
+    if(LIKELY(PL_tmps_ix == ret_at_tmps_ix))
+        PL_tmps_ix--;
+    else
+        PL_tmps_stack[ret_at_tmps_ix] = &PL_sv_undef;
+
+    return ret;
+}
+
+/*
+=for apidoc newAVhv
+
+Creates a new AV and populates it with keys and values copied from an existing
+HV.  The new AV will have a reference count of 1, and will contain newly
+created SVs copied from the original HV.  The original source will remain
+unchanged.
+
+Perl equivalent: C<my @new_array = %existing_hash;>
+
+=cut
+*/
+
+AV *
+Perl_newAVhv(pTHX_ HV *ohv)
+{
+    PERL_ARGS_ASSERT_NEWAVHV;
+
+    if(UNLIKELY(!ohv))
+        return newAV();
+
+    bool tied = SvRMAGICAL(ohv) && mg_find(MUTABLE_SV(ohv), PERL_MAGIC_tied);
+
+    Size_t nkeys = hv_iterinit(ohv);
+    /* This number isn't perfect but it doesn't matter; it only has to be
+     * close to make the initial allocation about the right size
+     */
+    AV *ret = newAV_alloc_xz(nkeys ? nkeys * 2 : 2);
+
+    /* avoid ret being leaked if croak when calling magic below */
+    EXTEND_MORTAL(1);
+    PL_tmps_stack[++PL_tmps_ix] = (SV *)ret;
+    SSize_t ret_at_tmps_ix = PL_tmps_ix;
+
+
+    HE *he;
+    while((he = hv_iternext(ohv))) {
+        if(tied) {
+            av_push_simple(ret, newSVsv(hv_iterkeysv(he)));
+            av_push_simple(ret, newSVsv(hv_iterval(ohv, he)));
+        }
+        else {
+            av_push_simple(ret, newSVhek(HeKEY_hek(he)));
+            av_push_simple(ret, HeVAL(he) ? newSVsv(HeVAL(he)) : &PL_sv_undef);
+        }
+    }
+
+    /* disarm leak guard */
+    if(LIKELY(PL_tmps_ix == ret_at_tmps_ix))
+        PL_tmps_ix--;
+    else
+        PL_tmps_stack[ret_at_tmps_ix] = &PL_sv_undef;
+
+    return ret;
+}
+
+/*
 =for apidoc av_clear
 
 Frees all the elements of an array, leaving it empty.
@@ -605,7 +712,7 @@ void
 Perl_av_undef(pTHX_ AV *av)
 {
     bool real;
-    SSize_t orig_ix = PL_tmps_ix; /* silence bogus warning about possible unitialized use */
+    SSize_t orig_ix = PL_tmps_ix; /* silence bogus warning about possible uninitialized use */
 
     PERL_ARGS_ASSERT_AV_UNDEF;
     assert(SvTYPE(av) == SVt_PVAV);
Index: gnu/usr.bin/perl/builtin.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/builtin.c,v
diff -u -p -a -u -p -r1.1.1.1 builtin.c
--- gnu/usr.bin/perl/builtin.c	15 Feb 2023 01:32:00 -0000	1.1.1.1
+++ gnu/usr.bin/perl/builtin.c	21 Feb 2024 15:47:00 -0000
@@ -32,6 +32,38 @@ static void S_warn_experimental_builtin(
                      prefix ? "builtin::" : "", name);
 }
 
+/* These three utilities might want to live elsewhere to be reused from other
+ * code sometime
+ */
+#define prepare_export_lexical()  S_prepare_export_lexical(aTHX)
+static void S_prepare_export_lexical(pTHX)
+{
+    assert(PL_compcv);
+
+    /* We need to have PL_comppad / PL_curpad set correctly for lexical importing */
+    ENTER;
+    SAVESPTR(PL_comppad_name); PL_comppad_name = PadlistNAMES(CvPADLIST(PL_compcv));
+    SAVESPTR(PL_comppad);      PL_comppad      = PadlistARRAY(CvPADLIST(PL_compcv))[1];
+    SAVESPTR(PL_curpad);       PL_curpad       = PadARRAY(PL_comppad);
+}
+
+#define export_lexical(name, sv)  S_export_lexical(aTHX_ name, sv)
+static void S_export_lexical(pTHX_ SV *name, SV *sv)
+{
+    PADOFFSET off = pad_add_name_sv(name, padadd_STATE, 0, 0);
+    SvREFCNT_dec(PL_curpad[off]);
+    PL_curpad[off] = SvREFCNT_inc(sv);
+}
+
+#define finish_export_lexical()  S_finish_export_lexical(aTHX)
+static void S_finish_export_lexical(pTHX)
+{
+    intro_my();
+
+    LEAVE;
+}
+
+
 XS(XS_builtin_true);
 XS(XS_builtin_true)
 {
@@ -125,6 +157,10 @@ XS(XS_builtin_func1_scalar)
             Perl_pp_floor(aTHX);
             break;
 
+        case OP_IS_TAINTED:
+            Perl_pp_is_tainted(aTHX);
+            break;
+
         default:
             Perl_die(aTHX_ "panic: unhandled opcode %" IVdf
                            " for xs_builtin_func1_scalar()", (IV) ix);
@@ -227,6 +263,79 @@ XS(XS_builtin_trim)
     XSRETURN(1);
 }
 
+XS(XS_builtin_export_lexically);
+XS(XS_builtin_export_lexically)
+{
+    dXSARGS;
+
+    warn_experimental_builtin("export_lexically", true);
+
+    if(!PL_compcv)
+        Perl_croak(aTHX_
+                "export_lexically can only be called at compile time");
+
+    if(items % 2)
+        Perl_croak(aTHX_ "Odd number of elements in export_lexically");
+
+    for(int i = 0; i < items; i += 2) {
+        SV *name = ST(i);
+        SV *ref  = ST(i+1);
+
+        if(!SvROK(ref))
+            /* diag_listed_as: Expected %s reference in export_lexically */
+            Perl_croak(aTHX_ "Expected a reference in export_lexically");
+
+        char sigil = SvPVX(name)[0];
+        SV *rv = SvRV(ref);
+
+        const char *bad = NULL;
+        switch(sigil) {
+            default:
+                /* overwrites the pointer on the stack; but this is fine, the
+                 * caller's value isn't modified */
+                ST(i) = name = sv_2mortal(Perl_newSVpvf(aTHX_ "&%" SVf, SVfARG(name)));
+
+                /* FALLTHROUGH */
+            case '&':
+                if(SvTYPE(rv) != SVt_PVCV)
+                    bad = "a CODE";
+                break;
+
+            case '$':
+                /* Permit any of SVt_NULL to SVt_PVMG. Technically this also
+                 * includes SVt_INVLIST but it isn't thought possible for pureperl
+                 * code to ever manage to see one of those. */
+                if(SvTYPE(rv) > SVt_PVMG)
+                    bad = "a SCALAR";
+                break;
+
+            case '@':
+                if(SvTYPE(rv) != SVt_PVAV)
+                    bad = "an ARRAY";
+                break;
+
+            case '%':
+                if(SvTYPE(rv) != SVt_PVHV)
+                    bad = "a HASH";
+                break;
+        }
+
+        if(bad)
+            Perl_croak(aTHX_ "Expected %s reference in export_lexically", bad);
+    }
+
+    prepare_export_lexical();
+
+    for(int i = 0; i < items; i += 2) {
+        SV *name = ST(i);
+        SV *ref  = ST(i+1);
+
+        export_lexical(name, SvRV(ref));
+    }
+
+    finish_export_lexical();
+}
+
 XS(XS_builtin_func1_void);
 XS(XS_builtin_func1_void)
 {
@@ -380,22 +489,24 @@ static const struct BuiltinFuncDescripto
     { "builtin::false",  &XS_builtin_false,  &ck_builtin_const, BUILTIN_CONST_FALSE },
 
     /* unary functions */
-    { "builtin::is_bool",  &XS_builtin_func1_scalar, &ck_builtin_func1, OP_IS_BOOL  },
-    { "builtin::weaken",   &XS_builtin_func1_void,   &ck_builtin_func1, OP_WEAKEN   },
-    { "builtin::unweaken", &XS_builtin_func1_void,   &ck_builtin_func1, OP_UNWEAKEN },
-    { "builtin::is_weak",  &XS_builtin_func1_scalar, &ck_builtin_func1, OP_IS_WEAK  },
-    { "builtin::blessed",  &XS_builtin_func1_scalar, &ck_builtin_func1, OP_BLESSED  },
-    { "builtin::refaddr",  &XS_builtin_func1_scalar, &ck_builtin_func1, OP_REFADDR  },
-    { "builtin::reftype",  &XS_builtin_func1_scalar, &ck_builtin_func1, OP_REFTYPE  },
-    { "builtin::ceil",     &XS_builtin_func1_scalar, &ck_builtin_func1, OP_CEIL     },
-    { "builtin::floor",    &XS_builtin_func1_scalar, &ck_builtin_func1, OP_FLOOR    },
-    { "builtin::trim",     &XS_builtin_trim, NULL, 0 },
+    { "builtin::is_bool",    &XS_builtin_func1_scalar, &ck_builtin_func1, OP_IS_BOOL    },
+    { "builtin::weaken",     &XS_builtin_func1_void,   &ck_builtin_func1, OP_WEAKEN     },
+    { "builtin::unweaken",   &XS_builtin_func1_void,   &ck_builtin_func1, OP_UNWEAKEN   },
+    { "builtin::is_weak",    &XS_builtin_func1_scalar, &ck_builtin_func1, OP_IS_WEAK    },
+    { "builtin::blessed",    &XS_builtin_func1_scalar, &ck_builtin_func1, OP_BLESSED    },
+    { "builtin::refaddr",    &XS_builtin_func1_scalar, &ck_builtin_func1, OP_REFADDR    },
+    { "builtin::reftype",    &XS_builtin_func1_scalar, &ck_builtin_func1, OP_REFTYPE    },
+    { "builtin::ceil",       &XS_builtin_func1_scalar, &ck_builtin_func1, OP_CEIL       },
+    { "builtin::floor",      &XS_builtin_func1_scalar, &ck_builtin_func1, OP_FLOOR      },
+    { "builtin::is_tainted", &XS_builtin_func1_scalar, &ck_builtin_func1, OP_IS_TAINTED },
+    { "builtin::trim",       &XS_builtin_trim,         &ck_builtin_func1, 0 },
 
     { "builtin::created_as_string", &XS_builtin_created_as_string, &ck_builtin_func1, 0 },
     { "builtin::created_as_number", &XS_builtin_created_as_number, &ck_builtin_func1, 0 },
 
     /* list functions */
     { "builtin::indexed", &XS_builtin_indexed, &ck_builtin_funcN, 0 },
+    { "builtin::export_lexically", &XS_builtin_export_lexically, NULL, 0 },
     { 0 }
 };
 
@@ -408,11 +519,7 @@ XS(XS_builtin_import)
         Perl_croak(aTHX_
                 "builtin::import can only be called at compile time");
 
-    /* We need to have PL_comppad / PL_curpad set correctly for lexical importing */
-    ENTER;
-    SAVESPTR(PL_comppad_name); PL_comppad_name = PadlistNAMES(CvPADLIST(PL_compcv));
-    SAVESPTR(PL_comppad);      PL_comppad      = PadlistARRAY(CvPADLIST(PL_compcv))[1];
-    SAVESPTR(PL_curpad);       PL_curpad       = PadARRAY(PL_comppad);
+    prepare_export_lexical();
 
     for(int i = 1; i < items; i++) {
         SV *sym = ST(i);
@@ -420,20 +527,16 @@ XS(XS_builtin_import)
             Perl_croak(aTHX_ builtin_not_recognised, sym);
 
         SV *ampname = sv_2mortal(Perl_newSVpvf(aTHX_ "&%" SVf, SVfARG(sym)));
-        SV *fqname  = sv_2mortal(Perl_newSVpvf(aTHX_ "builtin::%" SVf, SVfARG(sym)));
+        SV *fqname = sv_2mortal(Perl_newSVpvf(aTHX_ "builtin::%" SVf, SVfARG(sym)));
 
         CV *cv = get_cv(SvPV_nolen(fqname), SvUTF8(fqname) ? SVf_UTF8 : 0);
         if(!cv)
             Perl_croak(aTHX_ builtin_not_recognised, sym);
 
-        PADOFFSET off = pad_add_name_sv(ampname, padadd_STATE, 0, 0);
-        SvREFCNT_dec(PL_curpad[off]);
-        PL_curpad[off] = SvREFCNT_inc(cv);
+        export_lexical(ampname, (SV *)cv);
     }
 
-    intro_my();
-
-    LEAVE;
+    finish_export_lexical();
 }
 
 void
Index: gnu/usr.bin/perl/caretx.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/caretx.c,v
diff -u -p -a -u -p -r1.6 caretx.c
--- gnu/usr.bin/perl/caretx.c	15 Feb 2023 01:36:12 -0000	1.6
+++ gnu/usr.bin/perl/caretx.c	21 Feb 2024 15:47:00 -0000
@@ -121,7 +121,7 @@ Perl_set_caret_X(pTHX) {
        returning the text "unknown" from the readlink rather than the path
        to the executable (or returning an error from the readlink). Any
        valid path has a '/' in it somewhere, so use that to validate the
-       result. See http://www.freebsd.org/cgi/query-pr.cgi?pr=35703
+       result. See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=35703
     */
     if (len > 0 && memchr(buf, '/', len)) {
         sv_setpvn(caret_x, buf, len);
Index: gnu/usr.bin/perl/cflags.SH
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cflags.SH,v
diff -u -p -a -u -p -r1.19 cflags.SH
--- gnu/usr.bin/perl/cflags.SH	15 Feb 2023 01:36:12 -0000	1.19
+++ gnu/usr.bin/perl/cflags.SH	21 Feb 2024 15:47:00 -0000
@@ -379,6 +379,19 @@ esac
 ;;
 esac
 
+# gcc version 12 and 13 are overly aggressive with use-after-free warnings
+# and have false positives on code that shouldn't warn, and they haven't
+# sorted it out yet. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108115
+case "$gccversion" in
+"1"[23]*)
+    for f in -Wno-use-after-free
+    do
+        echo "cflags.SH: Adding $f because of false positives in gccversion '$gccversion'"
+        warn="$warn $f"
+    done
+;;
+esac
+
 echo "cflags.SH: cc       = $cc"
 echo "cflags.SH: ccflags  = $ccflags"
 echo "cflags.SH: stdflags = $stdflags"
Index: gnu/usr.bin/perl/charclass_invlists.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/charclass_invlists.h,v
diff -u -p -a -u -p -r1.6 charclass_invlists.h
--- gnu/usr.bin/perl/charclass_invlists.h	15 Feb 2023 01:36:12 -0000	1.6
+++ gnu/usr.bin/perl/charclass_invlists.h	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  * This file is built by regen/mk_invlists.pl from Unicode::UCD.
  * Any changes made here will be lost!
@@ -15,10 +15,10 @@
  * encompassing all of the Unicode BMP, and thus including all the economically
  * important world scripts.  At 12 most of them are: including Arabic,
  * Cyrillic, Greek, Hebrew, Indian subcontinent, Latin, and Thai; but not Han,
- * Japanese, nor Korean.  (The regarglen structure in regnodes.h is a U8, and
- * the trie types TRIEC and AHOCORASICKC are larger than U8 for shift values
- * above 12.)  Be sure to benchmark before changing, as larger sizes do
- * significantly slow down the test suite */
+ * Japanese, nor Korean.  The regnode sizing data structure in regnodes.h currently
+ * uses a U8, and the trie types TRIEC and AHOCORASICKC are larger than U8 for
+ * shift values above 12.)  Be sure to benchmark before changing, as larger sizes
+ * do significantly slow down the test suite. */
 
 #define NUM_ANYOF_CODE_POINTS   (1 << 8)
 
@@ -18460,7 +18460,7 @@ static const I32 Lowercase_Mapping_invma
 #if (defined(PERL_IN_REGCOMP_C) && ! defined(PERL_IN_XSUB_RE))
 
 static const UV _Perl_CCC_non0_non230_invlist[] = {  /* for all charsets */
-	373,	/* Number of elements */
+	379,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -18749,6 +18749,8 @@ static const UV _Perl_CCC_non0_non230_in
 	0x10A40,
 	0x10AE6,
 	0x10AE7,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F48,
 	0x10F4B,
@@ -18819,6 +18821,8 @@ static const UV _Perl_CCC_non0_non230_in
 	0x11D46,
 	0x11D97,
 	0x11D98,
+	0x11F41,
+	0x11F43,
 	0x16AF0,
 	0x16AF5,
 	0x16FF0,
@@ -18833,6 +18837,8 @@ static const UV _Perl_CCC_non0_non230_in
 	0x1D183,
 	0x1D18A,
 	0x1D18C,
+	0x1E4EC,
+	0x1E4EF,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E94A,
@@ -18842,7 +18848,7 @@ static const UV _Perl_CCC_non0_non230_in
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV _Perl_GCB_invlist[] = {  /* for ASCII/Latin1 */
-	1826,	/* Number of elements */
+	1851,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -19063,6 +19069,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD02,
 	0xD04,
@@ -19111,7 +19119,7 @@ static const UV _Perl_GCB_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -20314,6 +20322,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -20375,6 +20385,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -20538,8 +20550,23 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x11EF3,
 	0x11EF5,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F36,
+	0x11F3B,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -20599,12 +20626,16 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -20923,6 +20954,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Other,
 	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Other,
@@ -22178,6 +22211,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
 	GCB_SpacingMark,
 	GCB_Extend,
 	GCB_SpacingMark,
@@ -22236,6 +22271,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Extend,
 	GCB_Other,
 	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Extend,
 	GCB_Other,
@@ -22398,7 +22435,22 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Prepend,
+	GCB_SpacingMark,
+	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_Other,
 	GCB_Control,
+	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
@@ -22469,6 +22521,10 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
 	GCB_ExtPict_XX,
 	GCB_Other,
 	GCB_ExtPict_XX,
@@ -22546,7 +22602,7 @@ static const GCB_enum _Perl_GCB_invmap[]
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV _Perl_GCB_invlist[] = {  /* for EBCDIC 1047 */
-	1827,	/* Number of elements */
+	1852,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -22768,6 +22824,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD02,
 	0xD04,
@@ -22816,7 +22874,7 @@ static const UV _Perl_GCB_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -24019,6 +24077,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -24080,6 +24140,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -24243,8 +24305,23 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x11EF3,
 	0x11EF5,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F36,
+	0x11F3B,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -24304,12 +24381,16 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -24632,6 +24713,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Other,
 	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Other,
@@ -25887,6 +25970,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
 	GCB_SpacingMark,
 	GCB_Extend,
 	GCB_SpacingMark,
@@ -25945,6 +26030,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Extend,
 	GCB_Other,
 	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Extend,
 	GCB_Other,
@@ -26107,7 +26194,22 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Prepend,
+	GCB_SpacingMark,
+	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_Other,
 	GCB_Control,
+	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
@@ -26178,6 +26280,10 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
 	GCB_ExtPict_XX,
 	GCB_Other,
 	GCB_ExtPict_XX,
@@ -26255,7 +26361,7 @@ static const GCB_enum _Perl_GCB_invmap[]
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV _Perl_GCB_invlist[] = {  /* for EBCDIC 037 */
-	1827,	/* Number of elements */
+	1852,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -26477,6 +26583,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD02,
 	0xD04,
@@ -26525,7 +26633,7 @@ static const UV _Perl_GCB_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -27728,6 +27836,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -27789,6 +27899,8 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -27952,8 +28064,23 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x11EF3,
 	0x11EF5,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F36,
+	0x11F3B,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -28013,12 +28140,16 @@ static const UV _Perl_GCB_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -28341,6 +28472,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Other,
 	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Other,
@@ -29596,6 +29729,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
 	GCB_SpacingMark,
 	GCB_Extend,
 	GCB_SpacingMark,
@@ -29654,6 +29789,8 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Extend,
 	GCB_Other,
 	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Extend,
 	GCB_Other,
@@ -29816,7 +29953,22 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Extend,
 	GCB_SpacingMark,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Prepend,
+	GCB_SpacingMark,
+	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_Other,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_SpacingMark,
+	GCB_Extend,
+	GCB_Other,
 	GCB_Control,
+	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
@@ -29887,6 +30039,10 @@ static const GCB_enum _Perl_GCB_invmap[]
 	GCB_Other,
 	GCB_Extend,
 	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
+	GCB_Extend,
+	GCB_Other,
 	GCB_ExtPict_XX,
 	GCB_Other,
 	GCB_ExtPict_XX,
@@ -38855,7 +39011,7 @@ static const I32 _Perl_IVCF_invmap[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV _Perl_LB_invlist[] = {  /* for ASCII/Latin1 */
-	2501,	/* Number of elements */
+	2539,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -39143,6 +39299,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0xCE4,
 	0xCE6,
 	0xCF0,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -39191,7 +39349,7 @@ static const UV _Perl_LB_invlist[] = {  
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF01,
@@ -39380,6 +39538,10 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1CF7,
 	0x1CFA,
 	0x1DC0,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x1E00,
 	0x1FFD,
 	0x1FFE,
@@ -40820,6 +40982,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x10EAB,
 	0x10EAD,
 	0x10EAE,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -40879,6 +41043,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1123D,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112A9,
 	0x112AA,
 	0x112DF,
@@ -40989,6 +41155,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x11A9E,
 	0x11AA1,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C2F,
 	0x11C37,
 	0x11C38,
@@ -41026,6 +41194,17 @@ static const UV _Perl_LB_invlist[] = {  
 	0x11DAA,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FDD,
 	0x11FE1,
 	0x11FFF,
@@ -41049,6 +41228,14 @@ static const UV _Perl_LB_invlist[] = {  
 	0x13437,
 	0x13438,
 	0x13439,
+	0x1343C,
+	0x1343D,
+	0x1343E,
+	0x1343F,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x145CE,
 	0x145CF,
 	0x145D0,
@@ -41089,8 +41276,12 @@ static const UV _Perl_LB_invlist[] = {  
 	0x18D09,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -41139,6 +41330,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E140,
@@ -41150,6 +41343,9 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -41272,15 +41468,17 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1F6CC,
 	0x1F6CD,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
 	0x1F774,
+	0x1F777,
+	0x1F77B,
 	0x1F780,
 	0x1F7D5,
-	0x1F7D9,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -41327,24 +41525,20 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC3,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FBF0,
 	0x1FBFA,
@@ -41714,6 +41908,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Numeric,
 	LB_Alphabetic,
 	LB_Postfix_Numeric,
@@ -41937,6 +42133,10 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Glue,
+	LB_Combining_Mark,
+	LB_Glue,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Break_Before,
 	LB_Alphabetic,
@@ -41975,7 +42175,7 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Nonstarter,
 	LB_Alphabetic,
 	LB_Break_After,
-	LB_Alphabetic,
+	LB_Postfix_Numeric,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Break_After,
@@ -43384,6 +43584,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Numeric,
@@ -43436,6 +43638,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -43546,6 +43750,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Break_Before,
 	LB_Break_After,
 	LB_Alphabetic,
+	LB_Break_Before,
+	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -43583,6 +43789,17 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Break_After,
+	LB_Ideographic,
+	LB_Numeric,
+	LB_Alphabetic,
 	LB_Postfix_Numeric,
 	LB_Alphabetic,
 	LB_Break_After,
@@ -43605,6 +43822,14 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Glue,
 	LB_Open_Punctuation,
 	LB_Close_Punctuation,
+	LB_Glue,
+	LB_Open_Punctuation,
+	LB_Close_Punctuation,
+	LB_Open_Punctuation,
+	LB_Close_Punctuation,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Open_Punctuation,
 	LB_Close_Punctuation,
@@ -43650,6 +43875,10 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Nonstarter,
 	LB_Alphabetic,
+	LB_Nonstarter,
+	LB_Alphabetic,
+	LB_Nonstarter,
+	LB_Alphabetic,
 	LB_Ideographic,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -43698,6 +43927,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Numeric,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -43708,6 +43939,9 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Prefix_Numeric,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Numeric,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
@@ -43834,7 +44068,9 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Alphabetic,
+	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
+	LB_Ideographic,
 	LB_Alphabetic,
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
@@ -43890,10 +44126,6 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Ideographic,
-	LB_Unassigned_Extended_Pictographic_Ideographic,
-	LB_Ideographic,
-	LB_Unassigned_Extended_Pictographic_Ideographic,
-	LB_Ideographic,
 	LB_E_Base,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Ideographic,
@@ -43931,7 +44163,7 @@ static const LB_enum _Perl_LB_invmap[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV _Perl_LB_invlist[] = {  /* for EBCDIC 1047 */
-	2513,	/* Number of elements */
+	2551,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -44231,6 +44463,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0xCE4,
 	0xCE6,
 	0xCF0,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -44279,7 +44513,7 @@ static const UV _Perl_LB_invlist[] = {  
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF01,
@@ -44468,6 +44702,10 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1CF7,
 	0x1CFA,
 	0x1DC0,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x1E00,
 	0x1FFD,
 	0x1FFE,
@@ -45908,6 +46146,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x10EAB,
 	0x10EAD,
 	0x10EAE,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -45967,6 +46207,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1123D,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112A9,
 	0x112AA,
 	0x112DF,
@@ -46077,6 +46319,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x11A9E,
 	0x11AA1,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C2F,
 	0x11C37,
 	0x11C38,
@@ -46114,6 +46358,17 @@ static const UV _Perl_LB_invlist[] = {  
 	0x11DAA,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FDD,
 	0x11FE1,
 	0x11FFF,
@@ -46137,6 +46392,14 @@ static const UV _Perl_LB_invlist[] = {  
 	0x13437,
 	0x13438,
 	0x13439,
+	0x1343C,
+	0x1343D,
+	0x1343E,
+	0x1343F,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x145CE,
 	0x145CF,
 	0x145D0,
@@ -46177,8 +46440,12 @@ static const UV _Perl_LB_invlist[] = {  
 	0x18D09,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -46227,6 +46494,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E140,
@@ -46238,6 +46507,9 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -46360,15 +46632,17 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1F6CC,
 	0x1F6CD,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
 	0x1F774,
+	0x1F777,
+	0x1F77B,
 	0x1F780,
 	0x1F7D5,
-	0x1F7D9,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -46415,24 +46689,20 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC3,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FBF0,
 	0x1FBFA,
@@ -46817,6 +47087,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Numeric,
 	LB_Alphabetic,
 	LB_Postfix_Numeric,
@@ -47040,6 +47312,10 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Glue,
+	LB_Combining_Mark,
+	LB_Glue,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Break_Before,
 	LB_Alphabetic,
@@ -47078,7 +47354,7 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Nonstarter,
 	LB_Alphabetic,
 	LB_Break_After,
-	LB_Alphabetic,
+	LB_Postfix_Numeric,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Break_After,
@@ -48487,6 +48763,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Numeric,
@@ -48539,6 +48817,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -48649,6 +48929,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Break_Before,
 	LB_Break_After,
 	LB_Alphabetic,
+	LB_Break_Before,
+	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -48686,6 +48968,17 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Break_After,
+	LB_Ideographic,
+	LB_Numeric,
+	LB_Alphabetic,
 	LB_Postfix_Numeric,
 	LB_Alphabetic,
 	LB_Break_After,
@@ -48708,6 +49001,14 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Glue,
 	LB_Open_Punctuation,
 	LB_Close_Punctuation,
+	LB_Glue,
+	LB_Open_Punctuation,
+	LB_Close_Punctuation,
+	LB_Open_Punctuation,
+	LB_Close_Punctuation,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Open_Punctuation,
 	LB_Close_Punctuation,
@@ -48753,6 +49054,10 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Nonstarter,
 	LB_Alphabetic,
+	LB_Nonstarter,
+	LB_Alphabetic,
+	LB_Nonstarter,
+	LB_Alphabetic,
 	LB_Ideographic,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -48801,6 +49106,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Numeric,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -48811,6 +49118,9 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Prefix_Numeric,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Numeric,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
@@ -48937,7 +49247,9 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Alphabetic,
+	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
+	LB_Ideographic,
 	LB_Alphabetic,
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
@@ -48993,10 +49305,6 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Ideographic,
-	LB_Unassigned_Extended_Pictographic_Ideographic,
-	LB_Ideographic,
-	LB_Unassigned_Extended_Pictographic_Ideographic,
-	LB_Ideographic,
 	LB_E_Base,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Ideographic,
@@ -49034,7 +49342,7 @@ static const LB_enum _Perl_LB_invmap[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV _Perl_LB_invlist[] = {  /* for EBCDIC 037 */
-	2513,	/* Number of elements */
+	2551,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -49334,6 +49642,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0xCE4,
 	0xCE6,
 	0xCF0,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -49382,7 +49692,7 @@ static const UV _Perl_LB_invlist[] = {  
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF01,
@@ -49571,6 +49881,10 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1CF7,
 	0x1CFA,
 	0x1DC0,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x1E00,
 	0x1FFD,
 	0x1FFE,
@@ -51011,6 +51325,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x10EAB,
 	0x10EAD,
 	0x10EAE,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -51070,6 +51386,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1123D,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112A9,
 	0x112AA,
 	0x112DF,
@@ -51180,6 +51498,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x11A9E,
 	0x11AA1,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C2F,
 	0x11C37,
 	0x11C38,
@@ -51217,6 +51537,17 @@ static const UV _Perl_LB_invlist[] = {  
 	0x11DAA,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FDD,
 	0x11FE1,
 	0x11FFF,
@@ -51240,6 +51571,14 @@ static const UV _Perl_LB_invlist[] = {  
 	0x13437,
 	0x13438,
 	0x13439,
+	0x1343C,
+	0x1343D,
+	0x1343E,
+	0x1343F,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x145CE,
 	0x145CF,
 	0x145D0,
@@ -51280,8 +51619,12 @@ static const UV _Perl_LB_invlist[] = {  
 	0x18D09,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -51330,6 +51673,8 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E140,
@@ -51341,6 +51686,9 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -51463,15 +51811,17 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1F6CC,
 	0x1F6CD,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
 	0x1F774,
+	0x1F777,
+	0x1F77B,
 	0x1F780,
 	0x1F7D5,
-	0x1F7D9,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -51518,24 +51868,20 @@ static const UV _Perl_LB_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC3,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FBF0,
 	0x1FBFA,
@@ -51920,6 +52266,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Numeric,
 	LB_Alphabetic,
 	LB_Postfix_Numeric,
@@ -52143,6 +52491,10 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Glue,
+	LB_Combining_Mark,
+	LB_Glue,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Break_Before,
 	LB_Alphabetic,
@@ -52181,7 +52533,7 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Nonstarter,
 	LB_Alphabetic,
 	LB_Break_After,
-	LB_Alphabetic,
+	LB_Postfix_Numeric,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Break_After,
@@ -53590,6 +53942,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Numeric,
@@ -53642,6 +53996,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Break_After,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -53752,6 +54108,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Break_Before,
 	LB_Break_After,
 	LB_Alphabetic,
+	LB_Break_Before,
+	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -53789,6 +54147,17 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Break_After,
+	LB_Ideographic,
+	LB_Numeric,
+	LB_Alphabetic,
 	LB_Postfix_Numeric,
 	LB_Alphabetic,
 	LB_Break_After,
@@ -53811,6 +54180,14 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Glue,
 	LB_Open_Punctuation,
 	LB_Close_Punctuation,
+	LB_Glue,
+	LB_Open_Punctuation,
+	LB_Close_Punctuation,
+	LB_Open_Punctuation,
+	LB_Close_Punctuation,
+	LB_Combining_Mark,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Open_Punctuation,
 	LB_Close_Punctuation,
@@ -53856,6 +54233,10 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Nonstarter,
 	LB_Alphabetic,
+	LB_Nonstarter,
+	LB_Alphabetic,
+	LB_Nonstarter,
+	LB_Alphabetic,
 	LB_Ideographic,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -53904,6 +54285,8 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
+	LB_Combining_Mark,
+	LB_Alphabetic,
 	LB_Numeric,
 	LB_Alphabetic,
 	LB_Combining_Mark,
@@ -53914,6 +54297,9 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Prefix_Numeric,
 	LB_Alphabetic,
 	LB_Combining_Mark,
+	LB_Numeric,
+	LB_Alphabetic,
+	LB_Combining_Mark,
 	LB_Alphabetic,
 	LB_Combining_Mark,
 	LB_Alphabetic,
@@ -54040,7 +54426,9 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Alphabetic,
+	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
+	LB_Ideographic,
 	LB_Alphabetic,
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
@@ -54096,10 +54484,6 @@ static const LB_enum _Perl_LB_invmap[] =
 	LB_Ideographic,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Ideographic,
-	LB_Unassigned_Extended_Pictographic_Ideographic,
-	LB_Ideographic,
-	LB_Unassigned_Extended_Pictographic_Ideographic,
-	LB_Ideographic,
 	LB_E_Base,
 	LB_Unassigned_Extended_Pictographic_Ideographic,
 	LB_Ideographic,
@@ -54134,7 +54518,7 @@ static const LB_enum _Perl_LB_invmap[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV _Perl_SB_invlist[] = {  /* for ASCII/Latin1 */
-	3227,	/* Number of elements */
+	3262,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -55100,6 +55484,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0xCF0,
 	0xCF1,
 	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD0D,
@@ -55180,7 +55565,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -55244,6 +55629,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x10D0,
 	0x10FB,
 	0x10FC,
+	0x10FD,
 	0x1249,
 	0x124A,
 	0x124E,
@@ -56416,7 +56802,6 @@ static const UV _Perl_SB_invlist[] = {  
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
 	0xAB6A,
 	0xAB70,
 	0xABC0,
@@ -56700,6 +57085,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F1D,
 	0x10F27,
@@ -56784,6 +57170,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1123D,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -57001,6 +57389,19 @@ static const UV _Perl_SB_invlist[] = {  
 	0x11EF3,
 	0x11EF7,
 	0x11EF9,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -57012,9 +57413,11 @@ static const UV _Perl_SB_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -57081,8 +57484,12 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -57224,6 +57631,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -57234,6 +57643,10 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -57250,6 +57663,10 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -57348,7 +57765,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -57359,6 +57776,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -58356,6 +58775,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_Extend,
 	SB_OLetter,
@@ -58500,6 +58920,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_Lower,
 	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
@@ -59566,7 +59987,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Upper,
 	SB_Lower,
 	SB_Other,
-	SB_OLetter,
+	SB_Lower,
 	SB_Upper,
 	SB_Lower,
 	SB_OLetter,
@@ -59673,7 +60094,6 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Lower,
 	SB_Other,
 	SB_Lower,
-	SB_OLetter,
 	SB_Other,
 	SB_Lower,
 	SB_OLetter,
@@ -59957,6 +60377,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_Extend,
 	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
@@ -60040,6 +60461,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_STerm,
 	SB_Other,
 	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -60258,7 +60681,18 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Extend,
 	SB_STerm,
 	SB_Other,
+	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
+	SB_OLetter,
+	SB_Other,
 	SB_OLetter,
+	SB_Extend,
+	SB_Other,
+	SB_Extend,
+	SB_STerm,
+	SB_Other,
+	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -60270,7 +60704,11 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
 	SB_Format,
+	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -60352,6 +60790,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
+	SB_Other,
+	SB_OLetter,
+	SB_Other,
 	SB_Extend,
 	SB_STerm,
 	SB_Format,
@@ -60481,6 +60923,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_OLetter,
 	SB_Lower,
 	SB_Other,
+	SB_Lower,
+	SB_Other,
 	SB_Extend,
 	SB_Other,
 	SB_Extend,
@@ -60491,6 +60935,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_Extend,
 	SB_Other,
+	SB_Lower,
+	SB_Other,
+	SB_Extend,
+	SB_Other,
 	SB_OLetter,
 	SB_Other,
 	SB_Extend,
@@ -60508,6 +60956,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
+	SB_Extend,
+	SB_Numeric,
+	SB_Other,
+	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -60616,6 +61068,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
+	SB_Other,
 	SB_Format,
 	SB_Other,
 	SB_Extend,
@@ -60636,7 +61090,7 @@ static const SB_enum _Perl_SB_invmap[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV _Perl_SB_invlist[] = {  /* for EBCDIC 1047 */
-	3251,	/* Number of elements */
+	3286,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -61626,6 +62080,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0xCF0,
 	0xCF1,
 	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD0D,
@@ -61706,7 +62161,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -61770,6 +62225,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x10D0,
 	0x10FB,
 	0x10FC,
+	0x10FD,
 	0x1249,
 	0x124A,
 	0x124E,
@@ -62942,7 +63398,6 @@ static const UV _Perl_SB_invlist[] = {  
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
 	0xAB6A,
 	0xAB70,
 	0xABC0,
@@ -63226,6 +63681,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F1D,
 	0x10F27,
@@ -63310,6 +63766,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1123D,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -63527,6 +63985,19 @@ static const UV _Perl_SB_invlist[] = {  
 	0x11EF3,
 	0x11EF7,
 	0x11EF9,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -63538,9 +64009,11 @@ static const UV _Perl_SB_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -63607,8 +64080,12 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -63750,6 +64227,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -63760,6 +64239,10 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -63776,6 +64259,10 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -63874,7 +64361,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -63885,6 +64372,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -64909,6 +65398,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_Extend,
 	SB_OLetter,
@@ -65053,6 +65543,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_Lower,
 	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
@@ -66119,7 +66610,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Upper,
 	SB_Lower,
 	SB_Other,
-	SB_OLetter,
+	SB_Lower,
 	SB_Upper,
 	SB_Lower,
 	SB_OLetter,
@@ -66226,7 +66717,6 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Lower,
 	SB_Other,
 	SB_Lower,
-	SB_OLetter,
 	SB_Other,
 	SB_Lower,
 	SB_OLetter,
@@ -66510,6 +67000,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_Extend,
 	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
@@ -66593,6 +67084,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_STerm,
 	SB_Other,
 	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -66811,7 +67304,18 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Extend,
 	SB_STerm,
 	SB_Other,
+	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
+	SB_OLetter,
+	SB_Other,
 	SB_OLetter,
+	SB_Extend,
+	SB_Other,
+	SB_Extend,
+	SB_STerm,
+	SB_Other,
+	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -66823,7 +67327,11 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
 	SB_Format,
+	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -66905,6 +67413,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
+	SB_Other,
+	SB_OLetter,
+	SB_Other,
 	SB_Extend,
 	SB_STerm,
 	SB_Format,
@@ -67034,6 +67546,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_OLetter,
 	SB_Lower,
 	SB_Other,
+	SB_Lower,
+	SB_Other,
+	SB_Extend,
+	SB_Other,
 	SB_Extend,
 	SB_Other,
 	SB_Extend,
@@ -67042,6 +67558,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_Extend,
 	SB_Other,
+	SB_Lower,
+	SB_Other,
 	SB_Extend,
 	SB_Other,
 	SB_OLetter,
@@ -67061,6 +67579,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
+	SB_Extend,
+	SB_Numeric,
+	SB_Other,
+	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -67169,6 +67691,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
+	SB_Other,
 	SB_Format,
 	SB_Other,
 	SB_Extend,
@@ -67189,7 +67713,7 @@ static const SB_enum _Perl_SB_invmap[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV _Perl_SB_invlist[] = {  /* for EBCDIC 037 */
-	3247,	/* Number of elements */
+	3282,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -68175,6 +68699,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0xCF0,
 	0xCF1,
 	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD0D,
@@ -68255,7 +68780,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -68319,6 +68844,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x10D0,
 	0x10FB,
 	0x10FC,
+	0x10FD,
 	0x1249,
 	0x124A,
 	0x124E,
@@ -69491,7 +70017,6 @@ static const UV _Perl_SB_invlist[] = {  
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
 	0xAB6A,
 	0xAB70,
 	0xABC0,
@@ -69775,6 +70300,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F1D,
 	0x10F27,
@@ -69859,6 +70385,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1123D,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -70076,6 +70604,19 @@ static const UV _Perl_SB_invlist[] = {  
 	0x11EF3,
 	0x11EF7,
 	0x11EF9,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -70087,9 +70628,11 @@ static const UV _Perl_SB_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -70156,8 +70699,12 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -70299,6 +70846,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -70309,6 +70858,10 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -70325,6 +70878,10 @@ static const UV _Perl_SB_invlist[] = {  
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -70423,7 +70980,7 @@ static const UV _Perl_SB_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -70434,6 +70991,8 @@ static const UV _Perl_SB_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -71454,6 +72013,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_Extend,
 	SB_OLetter,
@@ -71598,6 +72158,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_Lower,
 	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
@@ -72664,7 +73225,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Upper,
 	SB_Lower,
 	SB_Other,
-	SB_OLetter,
+	SB_Lower,
 	SB_Upper,
 	SB_Lower,
 	SB_OLetter,
@@ -72771,7 +73332,6 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Lower,
 	SB_Other,
 	SB_Lower,
-	SB_OLetter,
 	SB_Other,
 	SB_Lower,
 	SB_OLetter,
@@ -73055,6 +73615,7 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_Extend,
 	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
@@ -73138,6 +73699,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_STerm,
 	SB_Other,
 	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -73356,7 +73919,18 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Extend,
 	SB_STerm,
 	SB_Other,
+	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
+	SB_OLetter,
+	SB_Other,
 	SB_OLetter,
+	SB_Extend,
+	SB_Other,
+	SB_Extend,
+	SB_STerm,
+	SB_Other,
+	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -73368,7 +73942,11 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
 	SB_Format,
+	SB_Extend,
+	SB_OLetter,
+	SB_Extend,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -73450,6 +74028,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
+	SB_Other,
+	SB_OLetter,
+	SB_Other,
 	SB_Extend,
 	SB_STerm,
 	SB_Format,
@@ -73579,6 +74161,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_OLetter,
 	SB_Lower,
 	SB_Other,
+	SB_Lower,
+	SB_Other,
+	SB_Extend,
+	SB_Other,
 	SB_Extend,
 	SB_Other,
 	SB_Extend,
@@ -73587,6 +74173,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_Extend,
 	SB_Other,
+	SB_Lower,
+	SB_Other,
 	SB_Extend,
 	SB_Other,
 	SB_OLetter,
@@ -73606,6 +74194,10 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Numeric,
 	SB_Other,
 	SB_OLetter,
+	SB_Extend,
+	SB_Numeric,
+	SB_Other,
+	SB_OLetter,
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
@@ -73714,6 +74306,8 @@ static const SB_enum _Perl_SB_invmap[] =
 	SB_Other,
 	SB_OLetter,
 	SB_Other,
+	SB_OLetter,
+	SB_Other,
 	SB_Format,
 	SB_Other,
 	SB_Extend,
@@ -73731,7 +74325,7 @@ static const SB_enum _Perl_SB_invmap[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV _Perl_SCX_invlist[] = {  /* for ASCII/Latin1 */
-	1731,	/* Number of elements */
+	1750,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -74061,7 +74655,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -74122,7 +74716,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -74887,6 +75481,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F28,
 	0x10F30,
@@ -74923,7 +75518,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -75034,6 +75629,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11AB0,
 	0x11AC0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -75076,6 +75673,12 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -75096,9 +75699,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -75158,8 +75759,12 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -75196,6 +75801,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -75252,6 +75859,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -75262,6 +75871,10 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -75276,6 +75889,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -75394,14 +76009,14 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -75423,23 +76038,19 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -75449,7 +76060,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -75460,6 +76071,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -75545,106 +76158,108 @@ typedef enum {
 	SCX_Kaithi = 63,
 	SCX_Kannada = 64,
 	SCX_Katakana = 65,
-	SCX_Kayah_Li = 66,
-	SCX_Kharoshthi = 67,
-	SCX_Khitan_Small_Script = 68,
-	SCX_Khmer = 69,
-	SCX_Khojki = 70,
-	SCX_Khudawadi = 71,
-	SCX_Kore = 72,
-	SCX_Lao = 73,
-	SCX_Latin = 74,
-	SCX_Lepcha = 75,
-	SCX_Limbu = 76,
-	SCX_Linear_A = 77,
-	SCX_Linear_B = 78,
-	SCX_Lisu = 79,
-	SCX_Lycian = 80,
-	SCX_Lydian = 81,
-	SCX_Mahajani = 82,
-	SCX_Makasar = 83,
-	SCX_Malayalam = 84,
-	SCX_Mandaic = 85,
-	SCX_Manichaean = 86,
-	SCX_Marchen = 87,
-	SCX_Masaram_Gondi = 88,
-	SCX_Medefaidrin = 89,
-	SCX_Meetei_Mayek = 90,
-	SCX_Mende_Kikakui = 91,
-	SCX_Meroitic_Cursive = 92,
-	SCX_Meroitic_Hieroglyphs = 93,
-	SCX_Miao = 94,
-	SCX_Modi = 95,
-	SCX_Mongolian = 96,
-	SCX_Mro = 97,
-	SCX_Multani = 98,
-	SCX_Myanmar = 99,
-	SCX_Nabataean = 100,
-	SCX_Nandinagari = 101,
-	SCX_New_Tai_Lue = 102,
-	SCX_Newa = 103,
-	SCX_Nko = 104,
-	SCX_Nushu = 105,
-	SCX_Nyiakeng_Puachue_Hmong = 106,
-	SCX_Ogham = 107,
-	SCX_Ol_Chiki = 108,
-	SCX_Old_Hungarian = 109,
-	SCX_Old_Italic = 110,
-	SCX_Old_North_Arabian = 111,
-	SCX_Old_Permic = 112,
-	SCX_Old_Persian = 113,
-	SCX_Old_Sogdian = 114,
-	SCX_Old_South_Arabian = 115,
-	SCX_Old_Turkic = 116,
-	SCX_Old_Uyghur = 117,
-	SCX_Oriya = 118,
-	SCX_Osage = 119,
-	SCX_Osmanya = 120,
-	SCX_Pahawh_Hmong = 121,
-	SCX_Palmyrene = 122,
-	SCX_Pau_Cin_Hau = 123,
-	SCX_Phags_Pa = 124,
-	SCX_Phoenician = 125,
-	SCX_Psalter_Pahlavi = 126,
-	SCX_Rejang = 127,
-	SCX_Runic = 128,
-	SCX_Samaritan = 129,
-	SCX_Saurashtra = 130,
-	SCX_Sharada = 131,
-	SCX_Shavian = 132,
-	SCX_Siddham = 133,
-	SCX_SignWriting = 134,
-	SCX_Sinhala = 135,
-	SCX_Sogdian = 136,
-	SCX_Sora_Sompeng = 137,
-	SCX_Soyombo = 138,
-	SCX_Sundanese = 139,
-	SCX_Syloti_Nagri = 140,
-	SCX_Syriac = 141,
-	SCX_Tagalog = 142,
-	SCX_Tagbanwa = 143,
-	SCX_Tai_Le = 144,
-	SCX_Tai_Tham = 145,
-	SCX_Tai_Viet = 146,
-	SCX_Takri = 147,
-	SCX_Tamil = 148,
-	SCX_Tangsa = 149,
-	SCX_Tangut = 150,
-	SCX_Telugu = 151,
-	SCX_Thaana = 152,
-	SCX_Thai = 153,
-	SCX_Tibetan = 154,
-	SCX_Tifinagh = 155,
-	SCX_Tirhuta = 156,
-	SCX_Toto = 157,
-	SCX_Ugaritic = 158,
-	SCX_Vai = 159,
-	SCX_Vithkuqi = 160,
-	SCX_Wancho = 161,
-	SCX_Warang_Citi = 162,
-	SCX_Yezidi = 163,
-	SCX_Yi = 164,
-	SCX_Zanabazar_Square = 165,
+	SCX_Kawi = 66,
+	SCX_Kayah_Li = 67,
+	SCX_Kharoshthi = 68,
+	SCX_Khitan_Small_Script = 69,
+	SCX_Khmer = 70,
+	SCX_Khojki = 71,
+	SCX_Khudawadi = 72,
+	SCX_Kore = 73,
+	SCX_Lao = 74,
+	SCX_Latin = 75,
+	SCX_Lepcha = 76,
+	SCX_Limbu = 77,
+	SCX_Linear_A = 78,
+	SCX_Linear_B = 79,
+	SCX_Lisu = 80,
+	SCX_Lycian = 81,
+	SCX_Lydian = 82,
+	SCX_Mahajani = 83,
+	SCX_Makasar = 84,
+	SCX_Malayalam = 85,
+	SCX_Mandaic = 86,
+	SCX_Manichaean = 87,
+	SCX_Marchen = 88,
+	SCX_Masaram_Gondi = 89,
+	SCX_Medefaidrin = 90,
+	SCX_Meetei_Mayek = 91,
+	SCX_Mende_Kikakui = 92,
+	SCX_Meroitic_Cursive = 93,
+	SCX_Meroitic_Hieroglyphs = 94,
+	SCX_Miao = 95,
+	SCX_Modi = 96,
+	SCX_Mongolian = 97,
+	SCX_Mro = 98,
+	SCX_Multani = 99,
+	SCX_Myanmar = 100,
+	SCX_Nabataean = 101,
+	SCX_Nag_Mundari = 102,
+	SCX_Nandinagari = 103,
+	SCX_New_Tai_Lue = 104,
+	SCX_Newa = 105,
+	SCX_Nko = 106,
+	SCX_Nushu = 107,
+	SCX_Nyiakeng_Puachue_Hmong = 108,
+	SCX_Ogham = 109,
+	SCX_Ol_Chiki = 110,
+	SCX_Old_Hungarian = 111,
+	SCX_Old_Italic = 112,
+	SCX_Old_North_Arabian = 113,
+	SCX_Old_Permic = 114,
+	SCX_Old_Persian = 115,
+	SCX_Old_Sogdian = 116,
+	SCX_Old_South_Arabian = 117,
+	SCX_Old_Turkic = 118,
+	SCX_Old_Uyghur = 119,
+	SCX_Oriya = 120,
+	SCX_Osage = 121,
+	SCX_Osmanya = 122,
+	SCX_Pahawh_Hmong = 123,
+	SCX_Palmyrene = 124,
+	SCX_Pau_Cin_Hau = 125,
+	SCX_Phags_Pa = 126,
+	SCX_Phoenician = 127,
+	SCX_Psalter_Pahlavi = 128,
+	SCX_Rejang = 129,
+	SCX_Runic = 130,
+	SCX_Samaritan = 131,
+	SCX_Saurashtra = 132,
+	SCX_Sharada = 133,
+	SCX_Shavian = 134,
+	SCX_Siddham = 135,
+	SCX_SignWriting = 136,
+	SCX_Sinhala = 137,
+	SCX_Sogdian = 138,
+	SCX_Sora_Sompeng = 139,
+	SCX_Soyombo = 140,
+	SCX_Sundanese = 141,
+	SCX_Syloti_Nagri = 142,
+	SCX_Syriac = 143,
+	SCX_Tagalog = 144,
+	SCX_Tagbanwa = 145,
+	SCX_Tai_Le = 146,
+	SCX_Tai_Tham = 147,
+	SCX_Tai_Viet = 148,
+	SCX_Takri = 149,
+	SCX_Tamil = 150,
+	SCX_Tangsa = 151,
+	SCX_Tangut = 152,
+	SCX_Telugu = 153,
+	SCX_Thaana = 154,
+	SCX_Thai = 155,
+	SCX_Tibetan = 156,
+	SCX_Tifinagh = 157,
+	SCX_Tirhuta = 158,
+	SCX_Toto = 159,
+	SCX_Ugaritic = 160,
+	SCX_Vai = 161,
+	SCX_Vithkuqi = 162,
+	SCX_Wancho = 163,
+	SCX_Warang_Citi = 164,
+	SCX_Yezidi = 165,
+	SCX_Yi = 166,
+	SCX_Zanabazar_Square = 167,
 	SCX_use_AUX_TABLE_1 = -1,
 	SCX_use_AUX_TABLE_2 = -2,
 	SCX_use_AUX_TABLE_3 = -3,
@@ -76366,6 +76981,7 @@ static const UV script_zeros[] = {
 	0x966,	/* Kaithi */
 	0xce6,	/* Kannada */
 	'0',	/* Katakana */
+	0x11f50,	/* Kawi */
 	0xa900,	/* Kayah_Li */
 	'0',	/* Kharoshthi */
 	'0',	/* Khitan_Small_Script */
@@ -76401,6 +77017,7 @@ static const UV script_zeros[] = {
 	0xa66,	/* Multani */
 	 0,	/* Myanmar */
 	'0',	/* Nabataean */
+	0x1e4f0,	/* Nag_Mundari */
 	0xce6,	/* Nandinagari */
 	0x19d0,	/* New_Tai_Lue */
 	0x11450,	/* Newa */
@@ -77619,6 +78236,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Yezidi,
 	SCX_Unknown,
+	SCX_Arabic,
 	SCX_Old_Sogdian,
 	SCX_Unknown,
 	SCX_Sogdian,
@@ -77766,6 +78384,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Canadian_Aboriginal,
 	SCX_Pau_Cin_Hau,
 	SCX_Unknown,
+	SCX_Devanagari,
+	SCX_Unknown,
 	SCX_Bhaiksuki,
 	SCX_Unknown,
 	SCX_Bhaiksuki,
@@ -77808,6 +78428,12 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Makasar,
 	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
 	SCX_Lisu,
 	SCX_Unknown,
 	SCX_Tamil,
@@ -77829,8 +78455,6 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Egyptian_Hieroglyphs,
 	SCX_Unknown,
-	SCX_Egyptian_Hieroglyphs,
-	SCX_Unknown,
 	SCX_Anatolian_Hieroglyphs,
 	SCX_Unknown,
 	SCX_Bamum,
@@ -77892,6 +78516,10 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_use_AUX_TABLE_44,
 	SCX_Unknown,
+	SCX_use_AUX_TABLE_44,
+	SCX_Unknown,
+	SCX_use_AUX_TABLE_45,
+	SCX_Unknown,
 	SCX_use_AUX_TABLE_45,
 	SCX_Unknown,
 	SCX_Nushu,
@@ -77932,6 +78560,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Common,
 	SCX_Unknown,
+	SCX_Common,
+	SCX_Unknown,
 	SCX_use_AUX_TABLE_38,
 	SCX_Common,
 	SCX_Unknown,
@@ -77984,6 +78614,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Latin,
 	SCX_Unknown,
+	SCX_Latin,
+	SCX_Unknown,
 	SCX_Glagolitic,
 	SCX_Unknown,
 	SCX_Glagolitic,
@@ -77994,6 +78626,10 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Glagolitic,
 	SCX_Unknown,
+	SCX_Cyrillic,
+	SCX_Unknown,
+	SCX_Cyrillic,
+	SCX_Unknown,
 	SCX_Nyiakeng_Puachue_Hmong,
 	SCX_Unknown,
 	SCX_Nyiakeng_Puachue_Hmong,
@@ -78008,6 +78644,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Wancho,
 	SCX_Unknown,
+	SCX_Nag_Mundari,
+	SCX_Unknown,
 	SCX_Ethiopic,
 	SCX_Unknown,
 	SCX_Ethiopic,
@@ -78174,9 +78812,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Common,
 	SCX_Unknown,
-	SCX_Common,
-	SCX_Unknown,
-	SCX_Common,
+	SCX_use_AUX_TABLE_38,
 	SCX_Unknown,
 	SCX_use_AUX_TABLE_38,
 	SCX_Unknown,
@@ -78212,7 +78848,7 @@ static const SCX_enum _Perl_SCX_invmap[]
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV _Perl_SCX_invlist[] = {  /* for EBCDIC 1047 */
-	1757,	/* Number of elements */
+	1776,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -78568,7 +79204,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -78629,7 +79265,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -79394,6 +80030,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F28,
 	0x10F30,
@@ -79430,7 +80067,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -79541,6 +80178,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11AB0,
 	0x11AC0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -79583,6 +80222,12 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -79603,9 +80248,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -79665,8 +80308,12 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -79703,6 +80350,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -79759,6 +80408,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -79769,6 +80420,10 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -79783,6 +80438,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -79901,14 +80558,14 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -79930,23 +80587,19 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -79956,7 +80609,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -79967,6 +80620,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -80055,106 +80710,108 @@ typedef enum {
 	SCX_Kaithi = 63,
 	SCX_Kannada = 64,
 	SCX_Katakana = 65,
-	SCX_Kayah_Li = 66,
-	SCX_Kharoshthi = 67,
-	SCX_Khitan_Small_Script = 68,
-	SCX_Khmer = 69,
-	SCX_Khojki = 70,
-	SCX_Khudawadi = 71,
-	SCX_Kore = 72,
-	SCX_Lao = 73,
-	SCX_Latin = 74,
-	SCX_Lepcha = 75,
-	SCX_Limbu = 76,
-	SCX_Linear_A = 77,
-	SCX_Linear_B = 78,
-	SCX_Lisu = 79,
-	SCX_Lycian = 80,
-	SCX_Lydian = 81,
-	SCX_Mahajani = 82,
-	SCX_Makasar = 83,
-	SCX_Malayalam = 84,
-	SCX_Mandaic = 85,
-	SCX_Manichaean = 86,
-	SCX_Marchen = 87,
-	SCX_Masaram_Gondi = 88,
-	SCX_Medefaidrin = 89,
-	SCX_Meetei_Mayek = 90,
-	SCX_Mende_Kikakui = 91,
-	SCX_Meroitic_Cursive = 92,
-	SCX_Meroitic_Hieroglyphs = 93,
-	SCX_Miao = 94,
-	SCX_Modi = 95,
-	SCX_Mongolian = 96,
-	SCX_Mro = 97,
-	SCX_Multani = 98,
-	SCX_Myanmar = 99,
-	SCX_Nabataean = 100,
-	SCX_Nandinagari = 101,
-	SCX_New_Tai_Lue = 102,
-	SCX_Newa = 103,
-	SCX_Nko = 104,
-	SCX_Nushu = 105,
-	SCX_Nyiakeng_Puachue_Hmong = 106,
-	SCX_Ogham = 107,
-	SCX_Ol_Chiki = 108,
-	SCX_Old_Hungarian = 109,
-	SCX_Old_Italic = 110,
-	SCX_Old_North_Arabian = 111,
-	SCX_Old_Permic = 112,
-	SCX_Old_Persian = 113,
-	SCX_Old_Sogdian = 114,
-	SCX_Old_South_Arabian = 115,
-	SCX_Old_Turkic = 116,
-	SCX_Old_Uyghur = 117,
-	SCX_Oriya = 118,
-	SCX_Osage = 119,
-	SCX_Osmanya = 120,
-	SCX_Pahawh_Hmong = 121,
-	SCX_Palmyrene = 122,
-	SCX_Pau_Cin_Hau = 123,
-	SCX_Phags_Pa = 124,
-	SCX_Phoenician = 125,
-	SCX_Psalter_Pahlavi = 126,
-	SCX_Rejang = 127,
-	SCX_Runic = 128,
-	SCX_Samaritan = 129,
-	SCX_Saurashtra = 130,
-	SCX_Sharada = 131,
-	SCX_Shavian = 132,
-	SCX_Siddham = 133,
-	SCX_SignWriting = 134,
-	SCX_Sinhala = 135,
-	SCX_Sogdian = 136,
-	SCX_Sora_Sompeng = 137,
-	SCX_Soyombo = 138,
-	SCX_Sundanese = 139,
-	SCX_Syloti_Nagri = 140,
-	SCX_Syriac = 141,
-	SCX_Tagalog = 142,
-	SCX_Tagbanwa = 143,
-	SCX_Tai_Le = 144,
-	SCX_Tai_Tham = 145,
-	SCX_Tai_Viet = 146,
-	SCX_Takri = 147,
-	SCX_Tamil = 148,
-	SCX_Tangsa = 149,
-	SCX_Tangut = 150,
-	SCX_Telugu = 151,
-	SCX_Thaana = 152,
-	SCX_Thai = 153,
-	SCX_Tibetan = 154,
-	SCX_Tifinagh = 155,
-	SCX_Tirhuta = 156,
-	SCX_Toto = 157,
-	SCX_Ugaritic = 158,
-	SCX_Vai = 159,
-	SCX_Vithkuqi = 160,
-	SCX_Wancho = 161,
-	SCX_Warang_Citi = 162,
-	SCX_Yezidi = 163,
-	SCX_Yi = 164,
-	SCX_Zanabazar_Square = 165,
+	SCX_Kawi = 66,
+	SCX_Kayah_Li = 67,
+	SCX_Kharoshthi = 68,
+	SCX_Khitan_Small_Script = 69,
+	SCX_Khmer = 70,
+	SCX_Khojki = 71,
+	SCX_Khudawadi = 72,
+	SCX_Kore = 73,
+	SCX_Lao = 74,
+	SCX_Latin = 75,
+	SCX_Lepcha = 76,
+	SCX_Limbu = 77,
+	SCX_Linear_A = 78,
+	SCX_Linear_B = 79,
+	SCX_Lisu = 80,
+	SCX_Lycian = 81,
+	SCX_Lydian = 82,
+	SCX_Mahajani = 83,
+	SCX_Makasar = 84,
+	SCX_Malayalam = 85,
+	SCX_Mandaic = 86,
+	SCX_Manichaean = 87,
+	SCX_Marchen = 88,
+	SCX_Masaram_Gondi = 89,
+	SCX_Medefaidrin = 90,
+	SCX_Meetei_Mayek = 91,
+	SCX_Mende_Kikakui = 92,
+	SCX_Meroitic_Cursive = 93,
+	SCX_Meroitic_Hieroglyphs = 94,
+	SCX_Miao = 95,
+	SCX_Modi = 96,
+	SCX_Mongolian = 97,
+	SCX_Mro = 98,
+	SCX_Multani = 99,
+	SCX_Myanmar = 100,
+	SCX_Nabataean = 101,
+	SCX_Nag_Mundari = 102,
+	SCX_Nandinagari = 103,
+	SCX_New_Tai_Lue = 104,
+	SCX_Newa = 105,
+	SCX_Nko = 106,
+	SCX_Nushu = 107,
+	SCX_Nyiakeng_Puachue_Hmong = 108,
+	SCX_Ogham = 109,
+	SCX_Ol_Chiki = 110,
+	SCX_Old_Hungarian = 111,
+	SCX_Old_Italic = 112,
+	SCX_Old_North_Arabian = 113,
+	SCX_Old_Permic = 114,
+	SCX_Old_Persian = 115,
+	SCX_Old_Sogdian = 116,
+	SCX_Old_South_Arabian = 117,
+	SCX_Old_Turkic = 118,
+	SCX_Old_Uyghur = 119,
+	SCX_Oriya = 120,
+	SCX_Osage = 121,
+	SCX_Osmanya = 122,
+	SCX_Pahawh_Hmong = 123,
+	SCX_Palmyrene = 124,
+	SCX_Pau_Cin_Hau = 125,
+	SCX_Phags_Pa = 126,
+	SCX_Phoenician = 127,
+	SCX_Psalter_Pahlavi = 128,
+	SCX_Rejang = 129,
+	SCX_Runic = 130,
+	SCX_Samaritan = 131,
+	SCX_Saurashtra = 132,
+	SCX_Sharada = 133,
+	SCX_Shavian = 134,
+	SCX_Siddham = 135,
+	SCX_SignWriting = 136,
+	SCX_Sinhala = 137,
+	SCX_Sogdian = 138,
+	SCX_Sora_Sompeng = 139,
+	SCX_Soyombo = 140,
+	SCX_Sundanese = 141,
+	SCX_Syloti_Nagri = 142,
+	SCX_Syriac = 143,
+	SCX_Tagalog = 144,
+	SCX_Tagbanwa = 145,
+	SCX_Tai_Le = 146,
+	SCX_Tai_Tham = 147,
+	SCX_Tai_Viet = 148,
+	SCX_Takri = 149,
+	SCX_Tamil = 150,
+	SCX_Tangsa = 151,
+	SCX_Tangut = 152,
+	SCX_Telugu = 153,
+	SCX_Thaana = 154,
+	SCX_Thai = 155,
+	SCX_Tibetan = 156,
+	SCX_Tifinagh = 157,
+	SCX_Tirhuta = 158,
+	SCX_Toto = 159,
+	SCX_Ugaritic = 160,
+	SCX_Vai = 161,
+	SCX_Vithkuqi = 162,
+	SCX_Wancho = 163,
+	SCX_Warang_Citi = 164,
+	SCX_Yezidi = 165,
+	SCX_Yi = 166,
+	SCX_Zanabazar_Square = 167,
 	SCX_use_AUX_TABLE_1 = -1,
 	SCX_use_AUX_TABLE_2 = -2,
 	SCX_use_AUX_TABLE_3 = -3,
@@ -80879,6 +81536,7 @@ static const UV script_zeros[] = {
 	0x966,	/* Kaithi */
 	0xce6,	/* Kannada */
 	'0',	/* Katakana */
+	0x11f50,	/* Kawi */
 	0xa900,	/* Kayah_Li */
 	'0',	/* Kharoshthi */
 	'0',	/* Khitan_Small_Script */
@@ -80914,6 +81572,7 @@ static const UV script_zeros[] = {
 	0xa66,	/* Multani */
 	 0,	/* Myanmar */
 	'0',	/* Nabataean */
+	0x1e4f0,	/* Nag_Mundari */
 	0xce6,	/* Nandinagari */
 	0x19d0,	/* New_Tai_Lue */
 	0x11450,	/* Newa */
@@ -82158,6 +82817,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Yezidi,
 	SCX_Unknown,
+	SCX_Arabic,
 	SCX_Old_Sogdian,
 	SCX_Unknown,
 	SCX_Sogdian,
@@ -82305,6 +82965,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Canadian_Aboriginal,
 	SCX_Pau_Cin_Hau,
 	SCX_Unknown,
+	SCX_Devanagari,
+	SCX_Unknown,
 	SCX_Bhaiksuki,
 	SCX_Unknown,
 	SCX_Bhaiksuki,
@@ -82347,6 +83009,12 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Makasar,
 	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
 	SCX_Lisu,
 	SCX_Unknown,
 	SCX_Tamil,
@@ -82368,8 +83036,6 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Egyptian_Hieroglyphs,
 	SCX_Unknown,
-	SCX_Egyptian_Hieroglyphs,
-	SCX_Unknown,
 	SCX_Anatolian_Hieroglyphs,
 	SCX_Unknown,
 	SCX_Bamum,
@@ -82431,6 +83097,10 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_use_AUX_TABLE_44,
 	SCX_Unknown,
+	SCX_use_AUX_TABLE_44,
+	SCX_Unknown,
+	SCX_use_AUX_TABLE_45,
+	SCX_Unknown,
 	SCX_use_AUX_TABLE_45,
 	SCX_Unknown,
 	SCX_Nushu,
@@ -82471,6 +83141,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Common,
 	SCX_Unknown,
+	SCX_Common,
+	SCX_Unknown,
 	SCX_use_AUX_TABLE_38,
 	SCX_Common,
 	SCX_Unknown,
@@ -82523,6 +83195,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Latin,
 	SCX_Unknown,
+	SCX_Latin,
+	SCX_Unknown,
 	SCX_Glagolitic,
 	SCX_Unknown,
 	SCX_Glagolitic,
@@ -82533,6 +83207,10 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Glagolitic,
 	SCX_Unknown,
+	SCX_Cyrillic,
+	SCX_Unknown,
+	SCX_Cyrillic,
+	SCX_Unknown,
 	SCX_Nyiakeng_Puachue_Hmong,
 	SCX_Unknown,
 	SCX_Nyiakeng_Puachue_Hmong,
@@ -82547,6 +83225,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Wancho,
 	SCX_Unknown,
+	SCX_Nag_Mundari,
+	SCX_Unknown,
 	SCX_Ethiopic,
 	SCX_Unknown,
 	SCX_Ethiopic,
@@ -82713,9 +83393,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Common,
 	SCX_Unknown,
-	SCX_Common,
-	SCX_Unknown,
-	SCX_Common,
+	SCX_use_AUX_TABLE_38,
 	SCX_Unknown,
 	SCX_use_AUX_TABLE_38,
 	SCX_Unknown,
@@ -82751,7 +83429,7 @@ static const SCX_enum _Perl_SCX_invmap[]
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV _Perl_SCX_invlist[] = {  /* for EBCDIC 037 */
-	1753,	/* Number of elements */
+	1772,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -83103,7 +83781,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -83164,7 +83842,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -83929,6 +84607,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F28,
 	0x10F30,
@@ -83965,7 +84644,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -84076,6 +84755,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11AB0,
 	0x11AC0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -84118,6 +84799,12 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -84138,9 +84825,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -84200,8 +84885,12 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -84238,6 +84927,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -84294,6 +84985,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -84304,6 +84997,10 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -84318,6 +85015,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -84436,14 +85135,14 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -84465,23 +85164,19 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -84491,7 +85186,7 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -84502,6 +85197,8 @@ static const UV _Perl_SCX_invlist[] = { 
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -84590,106 +85287,108 @@ typedef enum {
 	SCX_Kaithi = 63,
 	SCX_Kannada = 64,
 	SCX_Katakana = 65,
-	SCX_Kayah_Li = 66,
-	SCX_Kharoshthi = 67,
-	SCX_Khitan_Small_Script = 68,
-	SCX_Khmer = 69,
-	SCX_Khojki = 70,
-	SCX_Khudawadi = 71,
-	SCX_Kore = 72,
-	SCX_Lao = 73,
-	SCX_Latin = 74,
-	SCX_Lepcha = 75,
-	SCX_Limbu = 76,
-	SCX_Linear_A = 77,
-	SCX_Linear_B = 78,
-	SCX_Lisu = 79,
-	SCX_Lycian = 80,
-	SCX_Lydian = 81,
-	SCX_Mahajani = 82,
-	SCX_Makasar = 83,
-	SCX_Malayalam = 84,
-	SCX_Mandaic = 85,
-	SCX_Manichaean = 86,
-	SCX_Marchen = 87,
-	SCX_Masaram_Gondi = 88,
-	SCX_Medefaidrin = 89,
-	SCX_Meetei_Mayek = 90,
-	SCX_Mende_Kikakui = 91,
-	SCX_Meroitic_Cursive = 92,
-	SCX_Meroitic_Hieroglyphs = 93,
-	SCX_Miao = 94,
-	SCX_Modi = 95,
-	SCX_Mongolian = 96,
-	SCX_Mro = 97,
-	SCX_Multani = 98,
-	SCX_Myanmar = 99,
-	SCX_Nabataean = 100,
-	SCX_Nandinagari = 101,
-	SCX_New_Tai_Lue = 102,
-	SCX_Newa = 103,
-	SCX_Nko = 104,
-	SCX_Nushu = 105,
-	SCX_Nyiakeng_Puachue_Hmong = 106,
-	SCX_Ogham = 107,
-	SCX_Ol_Chiki = 108,
-	SCX_Old_Hungarian = 109,
-	SCX_Old_Italic = 110,
-	SCX_Old_North_Arabian = 111,
-	SCX_Old_Permic = 112,
-	SCX_Old_Persian = 113,
-	SCX_Old_Sogdian = 114,
-	SCX_Old_South_Arabian = 115,
-	SCX_Old_Turkic = 116,
-	SCX_Old_Uyghur = 117,
-	SCX_Oriya = 118,
-	SCX_Osage = 119,
-	SCX_Osmanya = 120,
-	SCX_Pahawh_Hmong = 121,
-	SCX_Palmyrene = 122,
-	SCX_Pau_Cin_Hau = 123,
-	SCX_Phags_Pa = 124,
-	SCX_Phoenician = 125,
-	SCX_Psalter_Pahlavi = 126,
-	SCX_Rejang = 127,
-	SCX_Runic = 128,
-	SCX_Samaritan = 129,
-	SCX_Saurashtra = 130,
-	SCX_Sharada = 131,
-	SCX_Shavian = 132,
-	SCX_Siddham = 133,
-	SCX_SignWriting = 134,
-	SCX_Sinhala = 135,
-	SCX_Sogdian = 136,
-	SCX_Sora_Sompeng = 137,
-	SCX_Soyombo = 138,
-	SCX_Sundanese = 139,
-	SCX_Syloti_Nagri = 140,
-	SCX_Syriac = 141,
-	SCX_Tagalog = 142,
-	SCX_Tagbanwa = 143,
-	SCX_Tai_Le = 144,
-	SCX_Tai_Tham = 145,
-	SCX_Tai_Viet = 146,
-	SCX_Takri = 147,
-	SCX_Tamil = 148,
-	SCX_Tangsa = 149,
-	SCX_Tangut = 150,
-	SCX_Telugu = 151,
-	SCX_Thaana = 152,
-	SCX_Thai = 153,
-	SCX_Tibetan = 154,
-	SCX_Tifinagh = 155,
-	SCX_Tirhuta = 156,
-	SCX_Toto = 157,
-	SCX_Ugaritic = 158,
-	SCX_Vai = 159,
-	SCX_Vithkuqi = 160,
-	SCX_Wancho = 161,
-	SCX_Warang_Citi = 162,
-	SCX_Yezidi = 163,
-	SCX_Yi = 164,
-	SCX_Zanabazar_Square = 165,
+	SCX_Kawi = 66,
+	SCX_Kayah_Li = 67,
+	SCX_Kharoshthi = 68,
+	SCX_Khitan_Small_Script = 69,
+	SCX_Khmer = 70,
+	SCX_Khojki = 71,
+	SCX_Khudawadi = 72,
+	SCX_Kore = 73,
+	SCX_Lao = 74,
+	SCX_Latin = 75,
+	SCX_Lepcha = 76,
+	SCX_Limbu = 77,
+	SCX_Linear_A = 78,
+	SCX_Linear_B = 79,
+	SCX_Lisu = 80,
+	SCX_Lycian = 81,
+	SCX_Lydian = 82,
+	SCX_Mahajani = 83,
+	SCX_Makasar = 84,
+	SCX_Malayalam = 85,
+	SCX_Mandaic = 86,
+	SCX_Manichaean = 87,
+	SCX_Marchen = 88,
+	SCX_Masaram_Gondi = 89,
+	SCX_Medefaidrin = 90,
+	SCX_Meetei_Mayek = 91,
+	SCX_Mende_Kikakui = 92,
+	SCX_Meroitic_Cursive = 93,
+	SCX_Meroitic_Hieroglyphs = 94,
+	SCX_Miao = 95,
+	SCX_Modi = 96,
+	SCX_Mongolian = 97,
+	SCX_Mro = 98,
+	SCX_Multani = 99,
+	SCX_Myanmar = 100,
+	SCX_Nabataean = 101,
+	SCX_Nag_Mundari = 102,
+	SCX_Nandinagari = 103,
+	SCX_New_Tai_Lue = 104,
+	SCX_Newa = 105,
+	SCX_Nko = 106,
+	SCX_Nushu = 107,
+	SCX_Nyiakeng_Puachue_Hmong = 108,
+	SCX_Ogham = 109,
+	SCX_Ol_Chiki = 110,
+	SCX_Old_Hungarian = 111,
+	SCX_Old_Italic = 112,
+	SCX_Old_North_Arabian = 113,
+	SCX_Old_Permic = 114,
+	SCX_Old_Persian = 115,
+	SCX_Old_Sogdian = 116,
+	SCX_Old_South_Arabian = 117,
+	SCX_Old_Turkic = 118,
+	SCX_Old_Uyghur = 119,
+	SCX_Oriya = 120,
+	SCX_Osage = 121,
+	SCX_Osmanya = 122,
+	SCX_Pahawh_Hmong = 123,
+	SCX_Palmyrene = 124,
+	SCX_Pau_Cin_Hau = 125,
+	SCX_Phags_Pa = 126,
+	SCX_Phoenician = 127,
+	SCX_Psalter_Pahlavi = 128,
+	SCX_Rejang = 129,
+	SCX_Runic = 130,
+	SCX_Samaritan = 131,
+	SCX_Saurashtra = 132,
+	SCX_Sharada = 133,
+	SCX_Shavian = 134,
+	SCX_Siddham = 135,
+	SCX_SignWriting = 136,
+	SCX_Sinhala = 137,
+	SCX_Sogdian = 138,
+	SCX_Sora_Sompeng = 139,
+	SCX_Soyombo = 140,
+	SCX_Sundanese = 141,
+	SCX_Syloti_Nagri = 142,
+	SCX_Syriac = 143,
+	SCX_Tagalog = 144,
+	SCX_Tagbanwa = 145,
+	SCX_Tai_Le = 146,
+	SCX_Tai_Tham = 147,
+	SCX_Tai_Viet = 148,
+	SCX_Takri = 149,
+	SCX_Tamil = 150,
+	SCX_Tangsa = 151,
+	SCX_Tangut = 152,
+	SCX_Telugu = 153,
+	SCX_Thaana = 154,
+	SCX_Thai = 155,
+	SCX_Tibetan = 156,
+	SCX_Tifinagh = 157,
+	SCX_Tirhuta = 158,
+	SCX_Toto = 159,
+	SCX_Ugaritic = 160,
+	SCX_Vai = 161,
+	SCX_Vithkuqi = 162,
+	SCX_Wancho = 163,
+	SCX_Warang_Citi = 164,
+	SCX_Yezidi = 165,
+	SCX_Yi = 166,
+	SCX_Zanabazar_Square = 167,
 	SCX_use_AUX_TABLE_1 = -1,
 	SCX_use_AUX_TABLE_2 = -2,
 	SCX_use_AUX_TABLE_3 = -3,
@@ -85414,6 +86113,7 @@ static const UV script_zeros[] = {
 	0x966,	/* Kaithi */
 	0xce6,	/* Kannada */
 	'0',	/* Katakana */
+	0x11f50,	/* Kawi */
 	0xa900,	/* Kayah_Li */
 	'0',	/* Kharoshthi */
 	'0',	/* Khitan_Small_Script */
@@ -85449,6 +86149,7 @@ static const UV script_zeros[] = {
 	0xa66,	/* Multani */
 	 0,	/* Myanmar */
 	'0',	/* Nabataean */
+	0x1e4f0,	/* Nag_Mundari */
 	0xce6,	/* Nandinagari */
 	0x19d0,	/* New_Tai_Lue */
 	0x11450,	/* Newa */
@@ -86689,6 +87390,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Yezidi,
 	SCX_Unknown,
+	SCX_Arabic,
 	SCX_Old_Sogdian,
 	SCX_Unknown,
 	SCX_Sogdian,
@@ -86836,6 +87538,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Canadian_Aboriginal,
 	SCX_Pau_Cin_Hau,
 	SCX_Unknown,
+	SCX_Devanagari,
+	SCX_Unknown,
 	SCX_Bhaiksuki,
 	SCX_Unknown,
 	SCX_Bhaiksuki,
@@ -86878,6 +87582,12 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Makasar,
 	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
+	SCX_Kawi,
+	SCX_Unknown,
 	SCX_Lisu,
 	SCX_Unknown,
 	SCX_Tamil,
@@ -86899,8 +87609,6 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Egyptian_Hieroglyphs,
 	SCX_Unknown,
-	SCX_Egyptian_Hieroglyphs,
-	SCX_Unknown,
 	SCX_Anatolian_Hieroglyphs,
 	SCX_Unknown,
 	SCX_Bamum,
@@ -86962,6 +87670,10 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_use_AUX_TABLE_44,
 	SCX_Unknown,
+	SCX_use_AUX_TABLE_44,
+	SCX_Unknown,
+	SCX_use_AUX_TABLE_45,
+	SCX_Unknown,
 	SCX_use_AUX_TABLE_45,
 	SCX_Unknown,
 	SCX_Nushu,
@@ -87002,6 +87714,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Common,
 	SCX_Unknown,
+	SCX_Common,
+	SCX_Unknown,
 	SCX_use_AUX_TABLE_38,
 	SCX_Common,
 	SCX_Unknown,
@@ -87054,6 +87768,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Latin,
 	SCX_Unknown,
+	SCX_Latin,
+	SCX_Unknown,
 	SCX_Glagolitic,
 	SCX_Unknown,
 	SCX_Glagolitic,
@@ -87064,6 +87780,10 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Glagolitic,
 	SCX_Unknown,
+	SCX_Cyrillic,
+	SCX_Unknown,
+	SCX_Cyrillic,
+	SCX_Unknown,
 	SCX_Nyiakeng_Puachue_Hmong,
 	SCX_Unknown,
 	SCX_Nyiakeng_Puachue_Hmong,
@@ -87078,6 +87798,8 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Wancho,
 	SCX_Unknown,
+	SCX_Nag_Mundari,
+	SCX_Unknown,
 	SCX_Ethiopic,
 	SCX_Unknown,
 	SCX_Ethiopic,
@@ -87244,9 +87966,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 	SCX_Unknown,
 	SCX_Common,
 	SCX_Unknown,
-	SCX_Common,
-	SCX_Unknown,
-	SCX_Common,
+	SCX_use_AUX_TABLE_38,
 	SCX_Unknown,
 	SCX_use_AUX_TABLE_38,
 	SCX_Unknown,
@@ -87279,7 +87999,7 @@ static const SCX_enum _Perl_SCX_invmap[]
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV _Perl_WB_invlist[] = {  /* for ASCII/Latin1 */
-	1949,	/* Number of elements */
+	1979,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -87704,6 +88424,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0xCF0,
 	0xCF1,
 	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD0D,
@@ -87766,7 +88487,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF00,
@@ -88608,6 +89329,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F1D,
 	0x10F27,
@@ -88681,6 +89403,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -88877,6 +89601,18 @@ static const UV _Perl_WB_invlist[] = {  
 	0x11EE0,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -88888,9 +89624,11 @@ static const UV _Perl_WB_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -88946,6 +89684,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1BC00,
@@ -89052,6 +89792,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -89062,6 +89804,10 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -89078,6 +89824,10 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -89693,6 +90443,7 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_Extend,
 	WB_ALetter,
@@ -90598,6 +91349,7 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_Extend,
 	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
@@ -90670,6 +91422,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Extend,
 	WB_Other,
 	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -90867,7 +91621,17 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_ALetter,
 	WB_Extend,
 	WB_Other,
+	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
+	WB_ALetter,
+	WB_Other,
 	WB_ALetter,
+	WB_Extend,
+	WB_Other,
+	WB_Extend,
+	WB_Other,
+	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -90879,7 +91643,11 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_ALetter,
 	WB_Format,
+	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -90938,6 +91706,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_Katakana,
 	WB_Other,
+	WB_Katakana,
+	WB_Other,
 	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
@@ -91042,6 +91812,10 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_ALetter,
+	WB_Other,
+	WB_Extend,
+	WB_Other,
 	WB_Extend,
 	WB_Other,
 	WB_Extend,
@@ -91050,6 +91824,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_Extend,
 	WB_Other,
+	WB_ALetter,
+	WB_Other,
 	WB_Extend,
 	WB_Other,
 	WB_ALetter,
@@ -91069,6 +91845,10 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
+	WB_Extend,
+	WB_Numeric,
+	WB_Other,
+	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -91236,7 +92016,7 @@ static const WB_enum _Perl_WB_invmap[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV _Perl_WB_invlist[] = {  /* for EBCDIC 1047 */
-	1972,	/* Number of elements */
+	2002,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -91684,6 +92464,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0xCF0,
 	0xCF1,
 	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD0D,
@@ -91746,7 +92527,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF00,
@@ -92588,6 +93369,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F1D,
 	0x10F27,
@@ -92661,6 +93443,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -92857,6 +93641,18 @@ static const UV _Perl_WB_invlist[] = {  
 	0x11EE0,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -92868,9 +93664,11 @@ static const UV _Perl_WB_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -92926,6 +93724,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1BC00,
@@ -93032,6 +93832,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -93042,6 +93844,10 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -93058,6 +93864,10 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -93699,6 +94509,7 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_Extend,
 	WB_ALetter,
@@ -94604,6 +95415,7 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_Extend,
 	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
@@ -94676,6 +95488,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Extend,
 	WB_Other,
 	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -94873,7 +95687,17 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_ALetter,
 	WB_Extend,
 	WB_Other,
+	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
+	WB_ALetter,
+	WB_Other,
 	WB_ALetter,
+	WB_Extend,
+	WB_Other,
+	WB_Extend,
+	WB_Other,
+	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -94885,7 +95709,11 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_ALetter,
 	WB_Format,
+	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -94944,6 +95772,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_Katakana,
 	WB_Other,
+	WB_Katakana,
+	WB_Other,
 	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
@@ -95048,6 +95878,10 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_ALetter,
+	WB_Other,
+	WB_Extend,
+	WB_Other,
 	WB_Extend,
 	WB_Other,
 	WB_Extend,
@@ -95056,6 +95890,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_Extend,
 	WB_Other,
+	WB_ALetter,
+	WB_Other,
 	WB_Extend,
 	WB_Other,
 	WB_ALetter,
@@ -95075,6 +95911,10 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
+	WB_Extend,
+	WB_Numeric,
+	WB_Other,
+	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -95242,7 +96082,7 @@ static const WB_enum _Perl_WB_invmap[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV _Perl_WB_invlist[] = {  /* for EBCDIC 037 */
-	1968,	/* Number of elements */
+	1998,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -95686,6 +96526,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0xCF0,
 	0xCF1,
 	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD0D,
@@ -95748,7 +96589,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF00,
@@ -96590,6 +97431,7 @@ static const UV _Perl_WB_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
+	0x10EFD,
 	0x10F00,
 	0x10F1D,
 	0x10F27,
@@ -96663,6 +97505,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -96859,6 +97703,18 @@ static const UV _Perl_WB_invlist[] = {  
 	0x11EE0,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -96870,9 +97726,11 @@ static const UV _Perl_WB_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
 	0x13430,
-	0x13439,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -96928,6 +97786,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1BC00,
@@ -97034,6 +97894,8 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -97044,6 +97906,10 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -97060,6 +97926,10 @@ static const UV _Perl_WB_invlist[] = {  
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -97697,6 +98567,7 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_Extend,
 	WB_ALetter,
@@ -98602,6 +99473,7 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_Extend,
 	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
@@ -98674,6 +99546,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Extend,
 	WB_Other,
 	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -98871,7 +99745,17 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_ALetter,
 	WB_Extend,
 	WB_Other,
+	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
+	WB_ALetter,
+	WB_Other,
 	WB_ALetter,
+	WB_Extend,
+	WB_Other,
+	WB_Extend,
+	WB_Other,
+	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -98883,7 +99767,11 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_ALetter,
 	WB_Format,
+	WB_Extend,
+	WB_ALetter,
+	WB_Extend,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -98942,6 +99830,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_Katakana,
 	WB_Other,
+	WB_Katakana,
+	WB_Other,
 	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
@@ -99046,6 +99936,10 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
+	WB_ALetter,
+	WB_Other,
+	WB_Extend,
+	WB_Other,
 	WB_Extend,
 	WB_Other,
 	WB_Extend,
@@ -99054,6 +99948,8 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Other,
 	WB_Extend,
 	WB_Other,
+	WB_ALetter,
+	WB_Other,
 	WB_Extend,
 	WB_Other,
 	WB_ALetter,
@@ -99073,6 +99969,10 @@ static const WB_enum _Perl_WB_invmap[] =
 	WB_Numeric,
 	WB_Other,
 	WB_ALetter,
+	WB_Extend,
+	WB_Numeric,
+	WB_Other,
+	WB_ALetter,
 	WB_Other,
 	WB_ALetter,
 	WB_Other,
@@ -127432,7 +128332,7 @@ static const UV UNI_ASCII_invlist[] = { 
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_ASSIGNED_invlist[] = {  /* for all charsets */
-	1396,	/* Number of elements */
+	1414,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -127679,7 +128579,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -127739,7 +128639,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -128280,7 +129180,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -128315,7 +129215,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -128420,6 +129320,8 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -128462,6 +129364,12 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -128477,9 +129385,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -128532,8 +129438,12 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -128562,6 +129472,8 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -128616,6 +129528,8 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -128626,6 +129540,10 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -128640,6 +129558,8 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -128756,14 +129676,14 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -128785,23 +129705,19 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -128811,7 +129727,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -128822,6 +129738,8 @@ static const UV UNI_ASSIGNED_invlist[] =
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -128837,7 +129755,7 @@ static const UV UNI_ASSIGNED_invlist[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_CASED_invlist[] = {  /* for ASCII/Latin1 */
-	311,	/* Number of elements */
+	315,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -128904,7 +129822,7 @@ static const UV UNI_CASED_invlist[] = { 
 	0x10CE,
 	0x10D0,
 	0x10FB,
-	0x10FD,
+	0x10FC,
 	0x1100,
 	0x13A0,
 	0x13F6,
@@ -129024,14 +129942,14 @@ static const UV UNI_CASED_invlist[] = { 
 	0xA7D4,
 	0xA7D5,
 	0xA7DA,
-	0xA7F5,
+	0xA7F2,
 	0xA7F7,
 	0xA7F8,
 	0xA7FB,
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -129144,6 +130062,10 @@ static const UV UNI_CASED_invlist[] = { 
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E900,
 	0x1E944,
 	0x1F130,
@@ -129162,7 +130084,7 @@ static const UV UNI_CASED_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_CASED_invlist[] = {  /* for EBCDIC 1047 */
-	337,	/* Number of elements */
+	341,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -129255,7 +130177,7 @@ static const UV UNI_CASED_invlist[] = { 
 	0x10CE,
 	0x10D0,
 	0x10FB,
-	0x10FD,
+	0x10FC,
 	0x1100,
 	0x13A0,
 	0x13F6,
@@ -129375,14 +130297,14 @@ static const UV UNI_CASED_invlist[] = { 
 	0xA7D4,
 	0xA7D5,
 	0xA7DA,
-	0xA7F5,
+	0xA7F2,
 	0xA7F7,
 	0xA7F8,
 	0xA7FB,
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -129495,6 +130417,10 @@ static const UV UNI_CASED_invlist[] = { 
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E900,
 	0x1E944,
 	0x1F130,
@@ -129513,7 +130439,7 @@ static const UV UNI_CASED_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_CASED_invlist[] = {  /* for EBCDIC 037 */
-	333,	/* Number of elements */
+	337,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -129602,7 +130528,7 @@ static const UV UNI_CASED_invlist[] = { 
 	0x10CE,
 	0x10D0,
 	0x10FB,
-	0x10FD,
+	0x10FC,
 	0x1100,
 	0x13A0,
 	0x13F6,
@@ -129722,14 +130648,14 @@ static const UV UNI_CASED_invlist[] = { 
 	0xA7D4,
 	0xA7D5,
 	0xA7DA,
-	0xA7F5,
+	0xA7F2,
 	0xA7F7,
 	0xA7F8,
 	0xA7FB,
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -129842,6 +130768,10 @@ static const UV UNI_CASED_invlist[] = { 
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E900,
 	0x1E944,
 	0x1F130,
@@ -129857,7 +130787,7 @@ static const UV UNI_CASED_invlist[] = { 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_CASEDLETTER_invlist[] = {  /* for ASCII/Latin1 */
-	285,	/* Number of elements */
+	287,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -130144,6 +131074,8 @@ static const UV UNI_CASEDLETTER_invlist[
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E900,
 	0x1E944
 };
@@ -130156,7 +131088,7 @@ static const UV UNI_CASEDLETTER_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_CASEDLETTER_invlist[] = {  /* for EBCDIC 1047 */
-	317,	/* Number of elements */
+	319,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -130475,6 +131407,8 @@ static const UV UNI_CASEDLETTER_invlist[
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E900,
 	0x1E944
 };
@@ -130487,7 +131421,7 @@ static const UV UNI_CASEDLETTER_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_CASEDLETTER_invlist[] = {  /* for EBCDIC 037 */
-	313,	/* Number of elements */
+	315,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -130802,6 +131736,8 @@ static const UV UNI_CASEDLETTER_invlist[
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E900,
 	0x1E944
 };
@@ -130811,7 +131747,7 @@ static const UV UNI_CASEDLETTER_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LOWERCASELETTER_invlist[] = {  /* for ASCII/Latin1 */
-	1315,	/* Number of elements */
+	1317,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -132128,6 +133064,8 @@ static const UV UNI_LOWERCASELETTER_invl
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E922,
 	0x1E944
 };
@@ -132140,7 +133078,7 @@ static const UV UNI_LOWERCASELETTER_invl
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LOWERCASELETTER_invlist[] = {  /* for EBCDIC 1047 */
-	1329,	/* Number of elements */
+	1331,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -133471,6 +134409,8 @@ static const UV UNI_LOWERCASELETTER_invl
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E922,
 	0x1E944
 };
@@ -133483,7 +134423,7 @@ static const UV UNI_LOWERCASELETTER_invl
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LOWERCASELETTER_invlist[] = {  /* for EBCDIC 037 */
-	1329,	/* Number of elements */
+	1331,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -134814,6 +135754,8 @@ static const UV UNI_LOWERCASELETTER_invl
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E922,
 	0x1E944
 };
@@ -139824,7 +140766,7 @@ static const UV UNI_VERTSPACE_invlist[] 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXALNUM_invlist[] = {  /* for ASCII/Latin1 */
-	1521,	/* Number of elements */
+	1545,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -140106,8 +141048,6 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xBE6,
 	0xBF0,
 	0xC00,
-	0xC04,
-	0xC05,
 	0xC0D,
 	0xC0E,
 	0xC11,
@@ -140158,7 +141098,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -140244,7 +141184,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xF49,
 	0xF6D,
 	0xF71,
-	0xF82,
+	0xF84,
 	0xF88,
 	0xF98,
 	0xF99,
@@ -140863,7 +141803,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11070,
 	0x11071,
 	0x11076,
-	0x11082,
+	0x11080,
 	0x110B9,
 	0x110C2,
 	0x110C3,
@@ -140896,7 +141836,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11237,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -141075,6 +142015,14 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F41,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -141086,7 +142034,9 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -141139,8 +142089,12 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -141219,6 +142173,8 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1D800,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -141229,6 +142185,10 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -141243,6 +142203,10 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -141338,7 +142302,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -141348,7 +142312,9 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -141359,7 +142325,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXALNUM_invlist[] = {  /* for EBCDIC 1047 */
-	1545,	/* Number of elements */
+	1569,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -141665,8 +142631,6 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xBE6,
 	0xBF0,
 	0xC00,
-	0xC04,
-	0xC05,
 	0xC0D,
 	0xC0E,
 	0xC11,
@@ -141717,7 +142681,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -141803,7 +142767,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xF49,
 	0xF6D,
 	0xF71,
-	0xF82,
+	0xF84,
 	0xF88,
 	0xF98,
 	0xF99,
@@ -142422,7 +143386,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11070,
 	0x11071,
 	0x11076,
-	0x11082,
+	0x11080,
 	0x110B9,
 	0x110C2,
 	0x110C3,
@@ -142455,7 +143419,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11237,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -142634,6 +143598,14 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F41,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -142645,7 +143617,9 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -142698,8 +143672,12 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -142778,6 +143756,8 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1D800,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -142788,6 +143768,10 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -142802,6 +143786,10 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -142897,7 +143885,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -142907,7 +143895,9 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -142918,7 +143908,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXALNUM_invlist[] = {  /* for EBCDIC 037 */
-	1541,	/* Number of elements */
+	1565,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -143220,8 +144210,6 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xBE6,
 	0xBF0,
 	0xC00,
-	0xC04,
-	0xC05,
 	0xC0D,
 	0xC0E,
 	0xC11,
@@ -143272,7 +144260,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -143358,7 +144346,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0xF49,
 	0xF6D,
 	0xF71,
-	0xF82,
+	0xF84,
 	0xF88,
 	0xF98,
 	0xF99,
@@ -143977,7 +144965,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11070,
 	0x11071,
 	0x11076,
-	0x11082,
+	0x11080,
 	0x110B9,
 	0x110C2,
 	0x110C3,
@@ -144010,7 +144998,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11237,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -144189,6 +145177,14 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F41,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -144200,7 +145196,9 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -144253,8 +145251,12 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -144333,6 +145335,8 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1D800,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -144343,6 +145347,10 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -144357,6 +145365,10 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x1E2EC,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -144452,7 +145464,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -144462,7 +145474,9 @@ static const UV UNI_XPOSIXALNUM_invlist[
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -144470,7 +145484,7 @@ static const UV UNI_XPOSIXALNUM_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXALPHA_invlist[] = {  /* for ASCII/Latin1 */
-	1445,	/* Number of elements */
+	1465,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -144744,8 +145758,6 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xBD7,
 	0xBD8,
 	0xC00,
-	0xC04,
-	0xC05,
 	0xC0D,
 	0xC0E,
 	0xC11,
@@ -144792,7 +145804,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xCE0,
 	0xCE4,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -144868,7 +145880,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xF49,
 	0xF6D,
 	0xF71,
-	0xF82,
+	0xF84,
 	0xF88,
 	0xF98,
 	0xF99,
@@ -145471,7 +146483,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11046,
 	0x11071,
 	0x11076,
-	0x11082,
+	0x11080,
 	0x110B9,
 	0x110C2,
 	0x110C3,
@@ -145502,7 +146514,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11237,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -145661,6 +146673,12 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11D99,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F41,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -145672,7 +146690,9 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -145719,8 +146739,12 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -145797,6 +146821,8 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -145807,6 +146833,10 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -145817,6 +146847,8 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -145908,7 +146940,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -145918,7 +146950,9 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -145929,7 +146963,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXALPHA_invlist[] = {  /* for EBCDIC 1047 */
-	1471,	/* Number of elements */
+	1491,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -146229,8 +147263,6 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xBD7,
 	0xBD8,
 	0xC00,
-	0xC04,
-	0xC05,
 	0xC0D,
 	0xC0E,
 	0xC11,
@@ -146277,7 +147309,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xCE0,
 	0xCE4,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -146353,7 +147385,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xF49,
 	0xF6D,
 	0xF71,
-	0xF82,
+	0xF84,
 	0xF88,
 	0xF98,
 	0xF99,
@@ -146956,7 +147988,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11046,
 	0x11071,
 	0x11076,
-	0x11082,
+	0x11080,
 	0x110B9,
 	0x110C2,
 	0x110C3,
@@ -146987,7 +148019,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11237,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -147146,6 +148178,12 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11D99,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F41,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -147157,7 +148195,9 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -147204,8 +148244,12 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -147282,6 +148326,8 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -147292,6 +148338,10 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -147302,6 +148352,8 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -147393,7 +148445,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -147403,7 +148455,9 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -147414,7 +148468,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXALPHA_invlist[] = {  /* for EBCDIC 037 */
-	1467,	/* Number of elements */
+	1487,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -147710,8 +148764,6 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xBD7,
 	0xBD8,
 	0xC00,
-	0xC04,
-	0xC05,
 	0xC0D,
 	0xC0E,
 	0xC11,
@@ -147758,7 +148810,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xCE0,
 	0xCE4,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -147834,7 +148886,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0xF49,
 	0xF6D,
 	0xF71,
-	0xF82,
+	0xF84,
 	0xF88,
 	0xF98,
 	0xF99,
@@ -148437,7 +149489,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11046,
 	0x11071,
 	0x11076,
-	0x11082,
+	0x11080,
 	0x110B9,
 	0x110C2,
 	0x110C3,
@@ -148468,7 +149520,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11237,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -148627,6 +149679,12 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x11D99,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F41,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -148638,7 +149696,9 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -148685,8 +149745,12 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -148763,6 +149827,8 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -148773,6 +149839,10 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -148783,6 +149853,8 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -148874,7 +149946,7 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -148884,7 +149956,9 @@ static const UV UNI_XPOSIXALPHA_invlist[
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -149029,7 +150103,7 @@ static const UV UNI_XPOSIXCNTRL_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXDIGIT_invlist[] = {  /* for ASCII/Latin1 */
-	125,	/* Number of elements */
+	129,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -149142,6 +150216,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -149154,6 +150230,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -149168,7 +150246,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXDIGIT_invlist[] = {  /* for EBCDIC 1047 */
-	125,	/* Number of elements */
+	129,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -149281,6 +150359,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -149293,6 +150373,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -149307,7 +150389,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXDIGIT_invlist[] = {  /* for EBCDIC 037 */
-	125,	/* Number of elements */
+	129,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -149420,6 +150502,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -149432,6 +150516,8 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -149443,7 +150529,7 @@ static const UV UNI_XPOSIXDIGIT_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXGRAPH_invlist[] = {  /* for ASCII/Latin1 */
-	1407,	/* Number of elements */
+	1425,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -149693,7 +150779,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -149753,7 +150839,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -150302,7 +151388,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -150337,7 +151423,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -150442,6 +151528,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -150484,6 +151572,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -150499,9 +151593,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -150554,8 +151646,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -150584,6 +151680,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -150638,6 +151736,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -150648,6 +151748,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -150662,6 +151766,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -150778,14 +151884,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -150807,23 +151913,19 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -150833,7 +151935,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -150844,6 +151946,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -150864,7 +151968,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXGRAPH_invlist[] = {  /* for EBCDIC 1047 */
-	1407,	/* Number of elements */
+	1425,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -151114,7 +152218,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -151174,7 +152278,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -151723,7 +152827,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -151758,7 +152862,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -151863,6 +152967,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -151905,6 +153011,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -151920,9 +153032,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -151975,8 +153085,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -152005,6 +153119,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -152059,6 +153175,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -152069,6 +153187,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -152083,6 +153205,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -152199,14 +153323,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -152228,23 +153352,19 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -152254,7 +153374,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -152265,6 +153385,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -152285,7 +153407,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXGRAPH_invlist[] = {  /* for EBCDIC 037 */
-	1407,	/* Number of elements */
+	1425,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -152535,7 +153657,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -152595,7 +153717,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -153144,7 +154266,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -153179,7 +154301,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -153284,6 +154406,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -153326,6 +154450,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -153341,9 +154471,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -153396,8 +154524,12 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -153426,6 +154558,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -153480,6 +154614,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -153490,6 +154626,10 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -153504,6 +154644,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -153620,14 +154762,14 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -153649,23 +154791,19 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -153675,7 +154813,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -153686,6 +154824,8 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -153703,7 +154843,7 @@ static const UV UNI_XPOSIXGRAPH_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXLOWER_invlist[] = {  /* for ASCII/Latin1 */
-	1337,	/* Number of elements */
+	1343,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -154260,7 +155400,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0x589,
 	0x10D0,
 	0x10FB,
-	0x10FD,
+	0x10FC,
 	0x1100,
 	0x13F8,
 	0x13FE,
@@ -154940,6 +156080,8 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0xA7D8,
 	0xA7D9,
 	0xA7DA,
+	0xA7F2,
+	0xA7F5,
 	0xA7F6,
 	0xA7F7,
 	0xA7F8,
@@ -154947,7 +156089,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -155042,6 +156184,10 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E922,
 	0x1E944
 };
@@ -155054,7 +156200,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXLOWER_invlist[] = {  /* for EBCDIC 1047 */
-	1345,	/* Number of elements */
+	1351,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -155619,7 +156765,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0x589,
 	0x10D0,
 	0x10FB,
-	0x10FD,
+	0x10FC,
 	0x1100,
 	0x13F8,
 	0x13FE,
@@ -156299,6 +157445,8 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0xA7D8,
 	0xA7D9,
 	0xA7DA,
+	0xA7F2,
+	0xA7F5,
 	0xA7F6,
 	0xA7F7,
 	0xA7F8,
@@ -156306,7 +157454,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -156401,6 +157549,10 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E922,
 	0x1E944
 };
@@ -156413,7 +157565,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXLOWER_invlist[] = {  /* for EBCDIC 037 */
-	1345,	/* Number of elements */
+	1351,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -156978,7 +158130,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0x589,
 	0x10D0,
 	0x10FB,
-	0x10FD,
+	0x10FC,
 	0x1100,
 	0x13F8,
 	0x13FE,
@@ -157658,6 +158810,8 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0xA7D8,
 	0xA7D9,
 	0xA7DA,
+	0xA7F2,
+	0xA7F5,
 	0xA7F6,
 	0xA7F7,
 	0xA7F8,
@@ -157665,7 +158819,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -157760,6 +158914,10 @@ static const UV UNI_XPOSIXLOWER_invlist[
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E922,
 	0x1E944
 };
@@ -157769,7 +158927,7 @@ static const UV UNI_XPOSIXLOWER_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXPRINT_invlist[] = {  /* for ASCII/Latin1 */
-	1401,	/* Number of elements */
+	1419,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -158019,7 +159177,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -158079,7 +159237,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -158622,7 +159780,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -158657,7 +159815,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -158762,6 +159920,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -158804,6 +159964,12 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -158819,9 +159985,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -158874,8 +160038,12 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -158904,6 +160072,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -158958,6 +160128,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -158968,6 +160140,10 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -158982,6 +160158,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -159098,14 +160276,14 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -159127,23 +160305,19 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -159153,7 +160327,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -159164,6 +160338,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -159184,7 +160360,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXPRINT_invlist[] = {  /* for EBCDIC 1047 */
-	1401,	/* Number of elements */
+	1419,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -159434,7 +160610,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -159494,7 +160670,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -160037,7 +161213,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -160072,7 +161248,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -160177,6 +161353,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -160219,6 +161397,12 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -160234,9 +161418,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -160289,8 +161471,12 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -160319,6 +161505,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -160373,6 +161561,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -160383,6 +161573,10 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -160397,6 +161591,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -160513,14 +161709,14 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -160542,23 +161738,19 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -160568,7 +161760,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -160579,6 +161771,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -160599,7 +161793,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXPRINT_invlist[] = {  /* for EBCDIC 037 */
-	1401,	/* Number of elements */
+	1419,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -160849,7 +162043,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -160909,7 +162103,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -161452,7 +162646,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -161487,7 +162681,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -161592,6 +162786,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -161634,6 +162830,12 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -161649,9 +162851,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -161704,8 +162904,12 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -161734,6 +162938,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -161788,6 +162994,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -161798,6 +163006,10 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -161812,6 +163024,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -161928,14 +163142,14 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -161957,23 +163171,19 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -161983,7 +163193,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -161994,6 +163204,8 @@ static const UV UNI_XPOSIXPRINT_invlist[
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -162011,7 +163223,7 @@ static const UV UNI_XPOSIXPRINT_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXPUNCT_invlist[] = {  /* for ASCII/Latin1 */
-	369,	/* Number of elements */
+	373,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -162354,12 +163566,16 @@ static const UV UNI_XPOSIXPUNCT_invlist[
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -162394,7 +163610,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXPUNCT_invlist[] = {  /* for EBCDIC 1047 */
-	377,	/* Number of elements */
+	381,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -162745,12 +163961,16 @@ static const UV UNI_XPOSIXPUNCT_invlist[
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -162785,7 +164005,7 @@ static const UV UNI_XPOSIXPUNCT_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXPUNCT_invlist[] = {  /* for EBCDIC 037 */
-	379,	/* Number of elements */
+	383,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -163138,12 +164358,16 @@ static const UV UNI_XPOSIXPUNCT_invlist[
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -167261,7 +168485,7 @@ static const UV UNI_XPOSIXUPPER_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XPOSIXWORD_invlist[] = {  /* for ASCII/Latin1 */
-	1519,	/* Number of elements */
+	1543,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -167581,7 +168805,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -167647,7 +168871,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -168274,7 +169498,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -168321,7 +169545,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -168482,6 +169706,14 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -168493,7 +169725,9 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -168548,8 +169782,12 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -168656,6 +169894,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -168666,6 +169906,10 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -168678,6 +169922,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -168771,7 +170017,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -168782,6 +170028,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -168794,7 +170042,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XPOSIXWORD_invlist[] = {  /* for EBCDIC 1047 */
-	1543,	/* Number of elements */
+	1567,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -169138,7 +170386,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -169204,7 +170452,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -169831,7 +171079,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -169878,7 +171126,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -170039,6 +171287,14 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -170050,7 +171306,9 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -170105,8 +171363,12 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -170213,6 +171475,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -170223,6 +171487,10 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -170235,6 +171503,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -170328,7 +171598,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -170339,6 +171609,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -170351,7 +171623,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XPOSIXWORD_invlist[] = {  /* for EBCDIC 037 */
-	1539,	/* Number of elements */
+	1563,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -170691,7 +171963,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -170757,7 +172029,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -171384,7 +172656,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -171431,7 +172703,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -171592,6 +172864,14 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -171603,7 +172883,9 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -171658,8 +172940,12 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -171766,6 +173052,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -171776,6 +173064,10 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -171788,6 +173080,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -171881,7 +173175,7 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -171892,6 +173186,8 @@ static const UV UNI_XPOSIXWORD_invlist[]
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -172927,7 +174223,7 @@ static const UV UNI__PERL_ANY_FOLDS_invl
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = {  /* for ASCII/Latin1 */
-	1309,	/* Number of elements */
+	1331,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -173882,6 +175178,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -174006,6 +175304,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -174015,7 +175319,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -174060,8 +175366,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -174136,6 +175446,10 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -174146,6 +175460,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -174229,7 +175545,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -174239,7 +175555,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -174250,7 +175568,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = {  /* for EBCDIC 1047 */
-	1335,	/* Number of elements */
+	1357,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -175231,6 +176549,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -175355,6 +176675,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -175364,7 +176690,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -175409,8 +176737,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -175485,6 +176817,10 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -175495,6 +176831,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -175578,7 +176916,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -175588,7 +176926,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -175599,7 +176939,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI__PERL_CHARNAME_BEGIN_invlist[] = {  /* for EBCDIC 037 */
-	1331,	/* Number of elements */
+	1353,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -176576,6 +177916,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -176700,6 +178042,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -176709,7 +178057,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -176754,8 +178104,12 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -176830,6 +178184,10 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -176840,6 +178198,8 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -176923,7 +178283,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -176933,7 +178293,9 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -176941,7 +178303,7 @@ static const UV UNI__PERL_CHARNAME_BEGIN
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = {  /* for ASCII/Latin1 */
-	1533,	/* Number of elements */
+	1557,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -177269,7 +178631,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -177335,7 +178697,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -177974,7 +179336,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -178021,7 +179383,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -178182,6 +179544,14 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -178193,7 +179563,9 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -178248,8 +179620,12 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -178356,6 +179732,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -178366,6 +179744,10 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -178378,6 +179760,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -178465,7 +179849,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -178476,6 +179860,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -178488,7 +179874,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = {  /* for EBCDIC 1047 */
-	1559,	/* Number of elements */
+	1583,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -178842,7 +180228,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -178908,7 +180294,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -179547,7 +180933,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -179594,7 +180980,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -179755,6 +181141,14 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -179766,7 +181160,9 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -179821,8 +181217,12 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -179929,6 +181329,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -179939,6 +181341,10 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -179951,6 +181357,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -180038,7 +181446,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -180049,6 +181457,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -180061,7 +181471,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI__PERL_CHARNAME_CONTINUE_invlist[] = {  /* for EBCDIC 037 */
-	1555,	/* Number of elements */
+	1579,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -180411,7 +181821,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -180477,7 +181887,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -181116,7 +182526,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -181163,7 +182573,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -181324,6 +182734,14 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -181335,7 +182753,9 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -181390,8 +182810,12 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -181498,6 +182922,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -181508,6 +182934,10 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -181520,6 +182950,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -181607,7 +183039,7 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -181618,6 +183050,8 @@ static const UV UNI__PERL_CHARNAME_CONTI
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -181843,7 +183277,7 @@ static const UV UNI__PERL_FOLDS_TO_MULTI
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI__PERL_IDCONT_invlist[] = {  /* for ASCII/Latin1 */
-	1527,	/* Number of elements */
+	1551,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -182165,7 +183599,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -182231,7 +183665,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -182870,7 +184304,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -182917,7 +184351,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -183078,6 +184512,14 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -183089,7 +184531,9 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -183144,8 +184588,12 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -183252,6 +184700,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -183262,6 +184712,10 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -183274,6 +184728,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -183361,7 +184817,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -183372,6 +184828,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -183384,7 +184842,7 @@ static const UV UNI__PERL_IDCONT_invlist
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI__PERL_IDCONT_invlist[] = {  /* for EBCDIC 1047 */
-	1551,	/* Number of elements */
+	1575,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -183730,7 +185188,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -183796,7 +185254,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -184435,7 +185893,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -184482,7 +185940,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -184643,6 +186101,14 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -184654,7 +186120,9 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -184709,8 +186177,12 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -184817,6 +186289,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -184827,6 +186301,10 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -184839,6 +186317,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -184926,7 +186406,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -184937,6 +186417,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -184949,7 +186431,7 @@ static const UV UNI__PERL_IDCONT_invlist
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI__PERL_IDCONT_invlist[] = {  /* for EBCDIC 037 */
-	1547,	/* Number of elements */
+	1571,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -185291,7 +186773,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -185357,7 +186839,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -185996,7 +187478,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -186043,7 +187525,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -186204,6 +187686,14 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -186215,7 +187705,9 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -186270,8 +187762,12 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -186378,6 +187874,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -186388,6 +187886,10 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -186400,6 +187902,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -186487,7 +187991,7 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -186498,6 +188002,8 @@ static const UV UNI__PERL_IDCONT_invlist
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -186507,7 +188013,7 @@ static const UV UNI__PERL_IDCONT_invlist
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI__PERL_IDSTART_invlist[] = {  /* for ASCII/Latin1 */
-	1315,	/* Number of elements */
+	1337,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -187466,6 +188972,8 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -187590,6 +189098,12 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -187601,7 +189115,9 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -187646,8 +189162,12 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -187722,6 +189242,10 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -187732,6 +189256,8 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -187815,7 +189341,7 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -187825,7 +189351,9 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -187836,7 +189364,7 @@ static const UV UNI__PERL_IDSTART_invlis
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI__PERL_IDSTART_invlist[] = {  /* for EBCDIC 1047 */
-	1341,	/* Number of elements */
+	1363,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -188821,6 +190349,8 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -188945,6 +190475,12 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -188956,7 +190492,9 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -189001,8 +190539,12 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -189077,6 +190619,10 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -189087,6 +190633,8 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -189170,7 +190718,7 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -189180,7 +190728,9 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -189191,7 +190741,7 @@ static const UV UNI__PERL_IDSTART_invlis
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI__PERL_IDSTART_invlist[] = {  /* for EBCDIC 037 */
-	1337,	/* Number of elements */
+	1359,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -190172,6 +191722,8 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -190296,6 +191848,12 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -190307,7 +191865,9 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -190352,8 +191912,12 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -190428,6 +191992,10 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -190438,6 +192006,8 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -190521,7 +192091,7 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -190531,7 +192101,9 @@ static const UV UNI__PERL_IDSTART_invlis
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -191851,6 +193423,78 @@ static const UV UNI_AGE__14_invlist[] = 
 	0x2B739
 };
 
+static const UV UNI_AGE__15_invlist[] = {  /* for all charsets */
+	65,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0xCF3,
+	0xCF4,
+	0xECE,
+	0xECF,
+	0x10EFD,
+	0x10F00,
+	0x1123F,
+	0x11242,
+	0x11B00,
+	0x11B0A,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
+	0x1342F,
+	0x13430,
+	0x13439,
+	0x13456,
+	0x1B132,
+	0x1B133,
+	0x1B155,
+	0x1B156,
+	0x1D2C0,
+	0x1D2D4,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
+	0x1E4D0,
+	0x1E4FA,
+	0x1F6DC,
+	0x1F6DD,
+	0x1F774,
+	0x1F777,
+	0x1F77B,
+	0x1F780,
+	0x1F7D9,
+	0x1F7DA,
+	0x1FA75,
+	0x1FA78,
+	0x1FA87,
+	0x1FA89,
+	0x1FAAD,
+	0x1FAB0,
+	0x1FABB,
+	0x1FABE,
+	0x1FABF,
+	0x1FAC0,
+	0x1FACE,
+	0x1FAD0,
+	0x1FADA,
+	0x1FADC,
+	0x1FAE8,
+	0x1FAE9,
+	0x1FAF7,
+	0x1FAF9,
+	0x2B739,
+	0x2B73A,
+	0x31350,
+	0x323B0
+};
+
 static const UV UNI_AGE__2_invlist[] = {  /* for all charsets */
 	59,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -194229,7 +195873,7 @@ static const UV UNI_ANY_invlist[] = {  /
 };
 
 static const UV UNI_ARAB_invlist[] = {  /* for all charsets */
-	103,	/* Number of elements */
+	105,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -194268,6 +195912,8 @@ static const UV UNI_ARAB_invlist[] = {  
 	0x102FC,
 	0x10E60,
 	0x10E7F,
+	0x10EFD,
+	0x10F00,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -194358,6 +196004,16 @@ static const UV UNI_ARABICEXTB_invlist[]
 	0x8A0
 };
 
+static const UV UNI_ARABICEXTC_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x10EC0,
+	0x10F00
+};
+
 static const UV UNI_ARABICMATH_invlist[] = {  /* for all charsets */
 	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -194507,7 +196163,7 @@ static const UV UNI_BATK_invlist[] = {  
 };
 
 static const UV UNI_BC__AL_invlist[] = {  /* for all charsets */
-	57,	/* Number of elements */
+	59,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -194556,6 +196212,8 @@ static const UV UNI_BC__AL_invlist[] = {
 	0x10D30,
 	0x10D3A,
 	0x10D40,
+	0x10EC0,
+	0x10EFD,
 	0x10F30,
 	0x10F46,
 	0x10F51,
@@ -195464,7 +197122,7 @@ static const UV UNI_BC__FSI_invlist[] = 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_BC__L_invlist[] = {  /* for ASCII/Latin1 */
-	942,	/* Number of elements */
+	956,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -195649,7 +197307,7 @@ static const UV UNI_BC__L_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -196100,6 +197758,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -196224,8 +197884,20 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x11FD5,
 	0x11FF2,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -196294,6 +197966,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
@@ -196302,6 +197976,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1E2F0,
 	0x1E2FF,
 	0x1E300,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E800,
 	0x1F02C,
 	0x1F030,
@@ -196326,14 +198002,14 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -196355,23 +198031,19 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -196420,7 +198092,7 @@ static const UV UNI_BC__L_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_BC__L_invlist[] = {  /* for EBCDIC 1047 */
-	968,	/* Number of elements */
+	982,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -196631,7 +198303,7 @@ static const UV UNI_BC__L_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -197082,6 +198754,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -197206,8 +198880,20 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x11FD5,
 	0x11FF2,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -197276,6 +198962,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
@@ -197284,6 +198972,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1E2F0,
 	0x1E2FF,
 	0x1E300,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E800,
 	0x1F02C,
 	0x1F030,
@@ -197308,14 +198998,14 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -197337,23 +199027,19 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -197402,7 +199088,7 @@ static const UV UNI_BC__L_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_BC__L_invlist[] = {  /* for EBCDIC 037 */
-	964,	/* Number of elements */
+	978,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -197609,7 +199295,7 @@ static const UV UNI_BC__L_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -198060,6 +199746,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -198184,8 +199872,20 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x11FD5,
 	0x11FF2,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -198254,6 +199954,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
@@ -198262,6 +199964,8 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1E2F0,
 	0x1E2FF,
 	0x1E300,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E800,
 	0x1F02C,
 	0x1F030,
@@ -198286,14 +199990,14 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -198315,23 +200019,19 @@ static const UV UNI_BC__L_invlist[] = { 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -198405,7 +200105,7 @@ static const UV UNI_BC__LRO_invlist[] = 
 };
 
 static const UV UNI_BC__NSM_invlist[] = {  /* for all charsets */
-	663,	/* Number of elements */
+	683,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -198591,7 +200291,7 @@ static const UV UNI_BC__NSM_invlist[] = 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -198846,6 +200546,8 @@ static const UV UNI_BC__NSM_invlist[] = 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -198890,6 +200592,8 @@ static const UV UNI_BC__NSM_invlist[] = 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -199012,6 +200716,18 @@ static const UV UNI_BC__NSM_invlist[] = 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -199060,12 +200776,16 @@ static const UV UNI_BC__NSM_invlist[] = 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -199077,7 +200797,7 @@ static const UV UNI_BC__NSM_invlist[] = 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_BC__ON_invlist[] = {  /* for ASCII/Latin1 */
-	383,	/* Number of elements */
+	379,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -199414,14 +201134,14 @@ static const UV UNI_BC__ON_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -199443,23 +201163,19 @@ static const UV UNI_BC__ON_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -199474,7 +201190,7 @@ static const UV UNI_BC__ON_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_BC__ON_invlist[] = {  /* for EBCDIC 1047 */
-	391,	/* Number of elements */
+	387,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -199819,14 +201535,14 @@ static const UV UNI_BC__ON_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -199848,23 +201564,19 @@ static const UV UNI_BC__ON_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -199879,7 +201591,7 @@ static const UV UNI_BC__ON_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_BC__ON_invlist[] = {  /* for EBCDIC 037 */
-	387,	/* Number of elements */
+	383,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -200220,14 +201932,14 @@ static const UV UNI_BC__ON_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -200249,23 +201961,19 @@ static const UV UNI_BC__ON_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -200295,7 +202003,7 @@ static const UV UNI_BC__PDI_invlist[] = 
 };
 
 static const UV UNI_BC__R_invlist[] = {  /* for all charsets */
-	79,	/* Number of elements */
+	81,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -200361,6 +202069,8 @@ static const UV UNI_BC__R_invlist[] = { 
 	0x10E7F,
 	0x10EAB,
 	0x10EAD,
+	0x10EC0,
+	0x10F00,
 	0x10F30,
 	0x10F70,
 	0x10F82,
@@ -202567,7 +204277,7 @@ static const UV UNI_BYZANTINEMUSIC_invli
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_C_invlist[] = {  /* for ASCII/Latin1 */
-	1401,	/* Number of elements */
+	1423,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -202823,7 +204533,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -202883,7 +204593,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -203428,7 +205138,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -203463,7 +205173,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -203568,6 +205278,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -203610,6 +205322,12 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -203625,7 +205343,9 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -203678,8 +205398,12 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -203710,6 +205434,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -203764,6 +205490,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -203774,6 +205502,10 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -203788,6 +205520,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -203904,14 +205638,14 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -203933,23 +205667,19 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -203959,7 +205689,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -203970,6 +205700,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -203982,7 +205714,7 @@ static const UV UNI_C_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_C_invlist[] = {  /* for EBCDIC 1047 */
-	1401,	/* Number of elements */
+	1423,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -204238,7 +205970,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -204298,7 +206030,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -204843,7 +206575,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -204878,7 +206610,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -204983,6 +206715,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -205025,6 +206759,12 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -205040,7 +206780,9 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -205093,8 +206835,12 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -205125,6 +206871,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -205179,6 +206927,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -205189,6 +206939,10 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -205203,6 +206957,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -205319,14 +207075,14 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -205348,23 +207104,19 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -205374,7 +207126,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -205385,6 +207137,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -205397,7 +207151,7 @@ static const UV UNI_C_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_C_invlist[] = {  /* for EBCDIC 037 */
-	1401,	/* Number of elements */
+	1423,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -205653,7 +207407,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -205713,7 +207467,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -206258,7 +208012,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -206293,7 +208047,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -206398,6 +208152,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -206440,6 +208196,12 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -206455,7 +208217,9 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -206508,8 +208272,12 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -206540,6 +208308,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -206594,6 +208364,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -206604,6 +208376,10 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -206618,6 +208394,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -206734,14 +208512,14 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -206763,23 +208541,19 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -206789,7 +208563,7 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -206800,6 +208574,8 @@ static const UV UNI_C_invlist[] = {  /* 
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -206847,7 +208623,7 @@ static const UV UNI_CARI_invlist[] = {  
 };
 
 static const UV UNI_CCC__0_invlist[] = {  /* for all charsets */
-	377,	/* Number of elements */
+	385,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -207116,6 +208892,8 @@ static const UV UNI_CCC__0_invlist[] = {
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -207188,6 +208966,8 @@ static const UV UNI_CCC__0_invlist[] = {
 	0x11D46,
 	0x11D97,
 	0x11D98,
+	0x11F41,
+	0x11F43,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -207218,12 +208998,16 @@ static const UV UNI_CCC__0_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -207749,7 +209533,7 @@ static const UV UNI_CCC__84_invlist[] = 
 };
 
 static const UV UNI_CCC__9_invlist[] = {  /* for all charsets */
-	111,	/* Number of elements */
+	113,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -207863,7 +209647,9 @@ static const UV UNI_CCC__9_invlist[] = {
 	0x11D44,
 	0x11D46,
 	0x11D97,
-	0x11D98
+	0x11D98,
+	0x11F41,
+	0x11F43
 };
 
 static const UV UNI_CCC__91_invlist[] = {  /* for all charsets */
@@ -207877,7 +209663,7 @@ static const UV UNI_CCC__91_invlist[] = 
 };
 
 static const UV UNI_CCC__A_invlist[] = {  /* for all charsets */
-	255,	/* Number of elements */
+	259,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -208128,12 +209914,16 @@ static const UV UNI_CCC__A_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EF,
+	0x1E4F0,
 	0x1E944,
 	0x1E94A
 };
@@ -208155,7 +209945,7 @@ static const UV UNI_CCC__AL_invlist[] = 
 };
 
 static const UV UNI_CCC__AR_invlist[] = {  /* for all charsets */
-	11,	/* Number of elements */
+	13,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -208169,11 +209959,13 @@ static const UV UNI_CCC__AR_invlist[] = 
 	0x1DF6,
 	0x1DF7,
 	0x302C,
-	0x302D
+	0x302D,
+	0x1E4EC,
+	0x1E4EE
 };
 
 static const UV UNI_CCC__B_invlist[] = {  /* for all charsets */
-	167,	/* Number of elements */
+	171,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -208328,6 +210120,8 @@ static const UV UNI_CCC__B_invlist[] = {
 	0x10A3B,
 	0x10AE6,
 	0x10AE7,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F48,
 	0x10F4B,
@@ -208342,6 +210136,8 @@ static const UV UNI_CCC__B_invlist[] = {
 	0x1D183,
 	0x1D18A,
 	0x1D18C,
+	0x1E4EE,
+	0x1E4EF,
 	0x1E8D0,
 	0x1E8D7
 };
@@ -208549,7 +210345,7 @@ static const UV UNI_CF_invlist[] = {  /*
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -208606,7 +210402,7 @@ static const UV UNI_CF_invlist[] = {  /*
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -208663,7 +210459,7 @@ static const UV UNI_CF_invlist[] = {  /*
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -208739,7 +210535,7 @@ static const UV UNI_CHRS_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_CI_invlist[] = {  /* for ASCII/Latin1 */
-	855,	/* Number of elements */
+	875,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -208971,7 +210767,7 @@ static const UV UNI_CI_invlist[] = {  /*
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -209348,6 +211144,8 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -209396,6 +211194,8 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -209518,8 +211318,18 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -209580,12 +211390,18 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E13E,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EB,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -209608,7 +211424,7 @@ static const UV UNI_CI_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_CI_invlist[] = {  /* for EBCDIC 1047 */
-	853,	/* Number of elements */
+	873,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -209838,7 +211654,7 @@ static const UV UNI_CI_invlist[] = {  /*
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -210215,6 +212031,8 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -210263,6 +212081,8 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -210385,8 +212205,18 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -210447,12 +212277,18 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E13E,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EB,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -210475,7 +212311,7 @@ static const UV UNI_CI_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_CI_invlist[] = {  /* for EBCDIC 037 */
-	851,	/* Number of elements */
+	871,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -210703,7 +212539,7 @@ static const UV UNI_CI_invlist[] = {  /*
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -211080,6 +212916,8 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -211128,6 +212966,8 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -211250,8 +213090,18 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -211312,12 +213162,18 @@ static const UV UNI_CI_invlist[] = {  /*
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E13E,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EB,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -211454,6 +213310,16 @@ static const UV UNI_CJKEXTG_invlist[] = 
 	0x31350
 };
 
+static const UV UNI_CJKEXTH_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x31350,
+	0x323B0
+};
+
 static const UV UNI_CJKRADICALSSUP_invlist[] = {  /* for all charsets */
 	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -211485,7 +213351,7 @@ static const UV UNI_CJKSYMBOLS_invlist[]
 };
 
 static const UV UNI_CN_invlist[] = {  /* for all charsets */
-	1396,	/* Number of elements */
+	1414,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -211732,7 +213598,7 @@ static const UV UNI_CN_invlist[] = {  /*
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -211792,7 +213658,7 @@ static const UV UNI_CN_invlist[] = {  /*
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -212333,7 +214199,7 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -212368,7 +214234,7 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -212473,6 +214339,8 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -212515,6 +214383,12 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -212530,9 +214404,7 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -212585,8 +214457,12 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -212615,6 +214491,8 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -212669,6 +214547,8 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -212679,6 +214559,10 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -212693,6 +214577,8 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -212809,14 +214695,14 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -212838,23 +214724,19 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -212864,7 +214746,7 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -212875,6 +214757,8 @@ static const UV UNI_CN_invlist[] = {  /*
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -217870,7 +219754,7 @@ static const UV UNI_CWCM_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_CWKCF_invlist[] = {  /* for ASCII/Latin1 */
-	1677,	/* Number of elements */
+	1679,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -219459,6 +221343,8 @@ static const UV UNI_CWKCF_invlist[] = { 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1E900,
 	0x1E922,
 	0x1EE00,
@@ -219561,7 +221447,7 @@ static const UV UNI_CWKCF_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_CWKCF_invlist[] = {  /* for EBCDIC 1047 */
-	1687,	/* Number of elements */
+	1689,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -221160,6 +223046,8 @@ static const UV UNI_CWKCF_invlist[] = { 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1E900,
 	0x1E922,
 	0x1EE00,
@@ -221262,7 +223150,7 @@ static const UV UNI_CWKCF_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_CWKCF_invlist[] = {  /* for EBCDIC 037 */
-	1685,	/* Number of elements */
+	1687,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -222859,6 +224747,8 @@ static const UV UNI_CWKCF_invlist[] = { 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1E900,
 	0x1E922,
 	0x1EE00,
@@ -234381,6 +236271,16 @@ static const UV UNI_CYRILLICEXTC_invlist
 	0x1C90
 };
 
+static const UV UNI_CYRILLICEXTD_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x1E030,
+	0x1E090
+};
+
 static const UV UNI_CYRILLICSUP_invlist[] = {  /* for all charsets */
 	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -234392,7 +236292,7 @@ static const UV UNI_CYRILLICSUP_invlist[
 };
 
 static const UV UNI_CYRL_invlist[] = {  /* for all charsets */
-	19,	/* Number of elements */
+	23,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -234414,7 +236314,11 @@ static const UV UNI_CYRL_invlist[] = {  
 	0xA640,
 	0xA6A0,
 	0xFE2E,
-	0xFE30
+	0xFE30,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090
 };
 
 #  if 'A' == 65 /* ASCII/Latin1 */
@@ -234622,7 +236526,7 @@ static const UV UNI_DEP_invlist[] = {  /
 };
 
 static const UV UNI_DEVA_invlist[] = {  /* for all charsets */
-	15,	/* Number of elements */
+	17,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -234640,7 +236544,9 @@ static const UV UNI_DEVA_invlist[] = {  
 	0xA830,
 	0xA83A,
 	0xA8E0,
-	0xA900
+	0xA900,
+	0x11B00,
+	0x11B0A
 };
 
 static const UV UNI_DEVANAGARIEXT_invlist[] = {  /* for all charsets */
@@ -234653,6 +236559,16 @@ static const UV UNI_DEVANAGARIEXT_invlis
 	0xA900
 };
 
+static const UV UNI_DEVANAGARIEXTA_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x11B00,
+	0x11B60
+};
+
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_DI_invlist[] = {  /* for ASCII/Latin1 */
@@ -234800,7 +236716,7 @@ static const UV UNI_DI_invlist[] = {  /*
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_DIA_invlist[] = {  /* for ASCII/Latin1 */
-	385,	/* Number of elements */
+	391,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -235083,6 +236999,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x10AE7,
 	0x10D22,
 	0x10D28,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -235149,6 +237067,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x11D46,
 	0x11D97,
 	0x11D98,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -235177,6 +237097,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x1D18C,
 	0x1D1AA,
 	0x1D1AE,
+	0x1E030,
+	0x1E06E,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
@@ -235199,7 +237121,7 @@ static const UV UNI_DIA_invlist[] = {  /
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_DIA_invlist[] = {  /* for EBCDIC 1047 */
-	385,	/* Number of elements */
+	391,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -235482,6 +237404,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x10AE7,
 	0x10D22,
 	0x10D28,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -235548,6 +237472,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x11D46,
 	0x11D97,
 	0x11D98,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -235576,6 +237502,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x1D18C,
 	0x1D1AA,
 	0x1D1AE,
+	0x1E030,
+	0x1E06E,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
@@ -235598,7 +237526,7 @@ static const UV UNI_DIA_invlist[] = {  /
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_DIA_invlist[] = {  /* for EBCDIC 037 */
-	383,	/* Number of elements */
+	389,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -235879,6 +237807,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x10AE7,
 	0x10D22,
 	0x10D28,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -235945,6 +237875,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x11D46,
 	0x11D97,
 	0x11D98,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -235973,6 +237905,8 @@ static const UV UNI_DIA_invlist[] = {  /
 	0x1D18C,
 	0x1D1AA,
 	0x1D1AE,
+	0x1E030,
+	0x1E06E,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
@@ -239058,7 +240992,7 @@ static const UV UNI_DT__NB_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_DT__NONCANON_invlist[] = {  /* for ASCII/Latin1 */
-	383,	/* Number of elements */
+	385,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -239359,6 +241293,8 @@ static const UV UNI_DT__NONCANON_invlist
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -239455,7 +241391,7 @@ static const UV UNI_DT__NONCANON_invlist
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_DT__NONCANON_invlist[] = {  /* for EBCDIC 1047 */
-	389,	/* Number of elements */
+	391,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -239762,6 +241698,8 @@ static const UV UNI_DT__NONCANON_invlist
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -239858,7 +241796,7 @@ static const UV UNI_DT__NONCANON_invlist
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_DT__NONCANON_invlist[] = {  /* for EBCDIC 037 */
-	387,	/* Number of elements */
+	389,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -240163,6 +242101,8 @@ static const UV UNI_DT__NONCANON_invlist
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -240256,7 +242196,7 @@ static const UV UNI_DT__NONCANON_invlist
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_DT__NONE_invlist[] = {  /* for ASCII/Latin1 */
-	793,	/* Number of elements */
+	795,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -240965,6 +242905,8 @@ static const UV UNI_DT__NONE_invlist[] =
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -241063,7 +243005,7 @@ static const UV UNI_DT__NONE_invlist[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_DT__NONE_invlist[] = {  /* for EBCDIC 1047 */
-	791,	/* Number of elements */
+	793,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -241770,6 +243712,8 @@ static const UV UNI_DT__NONE_invlist[] =
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -241868,7 +243812,7 @@ static const UV UNI_DT__NONE_invlist[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_DT__NONE_invlist[] = {  /* for EBCDIC 037 */
-	793,	/* Number of elements */
+	795,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -242577,6 +244521,8 @@ static const UV UNI_DT__NONE_invlist[] =
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -242710,7 +244656,7 @@ static const UV UNI_DT__SQR_invlist[] = 
 };
 
 static const UV UNI_DT__SUB_invlist[] = {  /* for all charsets */
-	9,	/* Number of elements */
+	11,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -242722,13 +244668,15 @@ static const UV UNI_DT__SUB_invlist[] = 
 	0x2090,
 	0x209D,
 	0x2C7C,
-	0x2C7D
+	0x2C7D,
+	0x1E051,
+	0x1E06B
 };
 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_DT__SUP_invlist[] = {  /* for ASCII/Latin1 */
-	59,	/* Number of elements */
+	63,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -242789,6 +244737,10 @@ static const UV UNI_DT__SUP_invlist[] = 
 	0x107B1,
 	0x107B2,
 	0x107BB,
+	0x1E030,
+	0x1E051,
+	0x1E06B,
+	0x1E06E,
 	0x1F16A,
 	0x1F16D
 };
@@ -242801,7 +244753,7 @@ static const UV UNI_DT__SUP_invlist[] = 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_DT__SUP_invlist[] = {  /* for EBCDIC 1047 */
-	61,	/* Number of elements */
+	65,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -242864,6 +244816,10 @@ static const UV UNI_DT__SUP_invlist[] = 
 	0x107B1,
 	0x107B2,
 	0x107BB,
+	0x1E030,
+	0x1E051,
+	0x1E06B,
+	0x1E06E,
 	0x1F16A,
 	0x1F16D
 };
@@ -242876,7 +244832,7 @@ static const UV UNI_DT__SUP_invlist[] = 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_DT__SUP_invlist[] = {  /* for EBCDIC 037 */
-	61,	/* Number of elements */
+	65,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -242939,6 +244895,10 @@ static const UV UNI_DT__SUP_invlist[] = 
 	0x107B1,
 	0x107B2,
 	0x107BB,
+	0x1E030,
+	0x1E051,
+	0x1E06B,
+	0x1E06E,
 	0x1F16A,
 	0x1F16D
 };
@@ -244593,8 +246553,12 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -244665,7 +246629,7 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E0,
 	0x1F6EB,
 	0x1F6ED,
@@ -244682,23 +246646,19 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x20000,
 	0x2FFFE,
 	0x30000,
@@ -245168,8 +247128,12 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -245240,7 +247204,7 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E0,
 	0x1F6EB,
 	0x1F6ED,
@@ -245257,23 +247221,19 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x20000,
 	0x2FFFE,
 	0x30000,
@@ -245743,8 +247703,12 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -245815,7 +247779,7 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E0,
 	0x1F6EB,
 	0x1F6ED,
@@ -245832,23 +247796,19 @@ static const UV UNI_EA__N_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x20000,
 	0x2FFFE,
 	0x30000,
@@ -246127,8 +248087,12 @@ static const UV UNI_EA__W_invlist[] = { 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -246195,7 +248159,7 @@ static const UV UNI_EA__W_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E0,
 	0x1F6EB,
 	0x1F6ED,
@@ -246212,23 +248176,19 @@ static const UV UNI_EA__W_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x20000,
 	0x2FFFE,
 	0x30000,
@@ -246330,7 +248290,7 @@ static const UV UNI_EBASE_invlist[] = { 
 	0x1FAC3,
 	0x1FAC6,
 	0x1FAF0,
-	0x1FAF7
+	0x1FAF9
 };
 
 #  if 'A' == 65 /* ASCII/Latin1 */
@@ -246436,15 +248396,13 @@ static const UV UNI_ECOMP_invlist[] = { 
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_EGYP_invlist[] = {  /* for all charsets */
-	5,	/* Number of elements */
+	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
 	0x0,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439
+	0x13456
 };
 
 static const UV UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS_invlist[] = {  /* for all charsets */
@@ -246454,7 +248412,7 @@ static const UV UNI_EGYPTIANHIEROGLYPHFO
 		   1 if it starts at the element beyond 0 */
 	0x0,
 	0x13430,
-	0x13440
+	0x13460
 };
 
 static const UV UNI_ELBA_invlist[] = {  /* for all charsets */
@@ -246490,7 +248448,7 @@ static const UV UNI_EMOD_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_EMOJI_invlist[] = {  /* for ASCII/Latin1 */
-	307,	/* Number of elements */
+	303,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -246763,7 +248721,7 @@ static const UV UNI_EMOJI_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E6,
 	0x1F6E9,
 	0x1F6EA,
@@ -246784,23 +248742,19 @@ static const UV UNI_EMOJI_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7
+	0x1FAF9
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -246811,7 +248765,7 @@ static const UV UNI_EMOJI_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_EMOJI_invlist[] = {  /* for EBCDIC 1047 */
-	307,	/* Number of elements */
+	303,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -247084,7 +249038,7 @@ static const UV UNI_EMOJI_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E6,
 	0x1F6E9,
 	0x1F6EA,
@@ -247105,23 +249059,19 @@ static const UV UNI_EMOJI_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7
+	0x1FAF9
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -247132,7 +249082,7 @@ static const UV UNI_EMOJI_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_EMOJI_invlist[] = {  /* for EBCDIC 037 */
-	307,	/* Number of elements */
+	303,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -247405,7 +249355,7 @@ static const UV UNI_EMOJI_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E6,
 	0x1F6E9,
 	0x1F6EA,
@@ -247426,23 +249376,19 @@ static const UV UNI_EMOJI_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7
+	0x1FAF9
 };
 
 #  endif	/* EBCDIC 037 */
@@ -247498,7 +249444,7 @@ static const UV UNI_ENCLOSEDIDEOGRAPHICS
 };
 
 static const UV UNI_EPRES_invlist[] = {  /* for all charsets */
-	167,	/* Number of elements */
+	163,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -247635,7 +249581,7 @@ static const UV UNI_EPRES_invlist[] = { 
 	0x1F6D3,
 	0x1F6D5,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6E0,
 	0x1F6EB,
 	0x1F6ED,
@@ -247652,23 +249598,19 @@ static const UV UNI_EPRES_invlist[] = { 
 	0x1F947,
 	0x1FA00,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7
+	0x1FAF9
 };
 
 static const UV UNI_ETHI_invlist[] = {  /* for all charsets */
@@ -248575,7 +250517,7 @@ static const UV UNI_GCB__CN_invlist[] = 
 	0xFFF0,
 	0xFFFC,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -248627,7 +250569,7 @@ static const UV UNI_GCB__CN_invlist[] = 
 	0xFFF0,
 	0xFFFC,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -248679,7 +250621,7 @@ static const UV UNI_GCB__CN_invlist[] = 
 	0xFFF0,
 	0xFFFC,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -248695,7 +250637,7 @@ static const UV UNI_GCB__CN_invlist[] = 
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_GCB__EX_invlist[] = {  /* for all charsets */
-	709,	/* Number of elements */
+	729,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -248905,7 +250847,7 @@ static const UV UNI_GCB__EX_invlist[] = 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -249162,6 +251104,8 @@ static const UV UNI_GCB__EX_invlist[] = 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -249206,6 +251150,8 @@ static const UV UNI_GCB__EX_invlist[] = 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -249340,6 +251286,18 @@ static const UV UNI_GCB__EX_invlist[] = 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -249392,12 +251350,16 @@ static const UV UNI_GCB__EX_invlist[] = 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -249423,7 +251385,7 @@ static const UV UNI_GCB__L_invlist[] = {
 };
 
 static const UV UNI_GCB__PP_invlist[] = {  /* for all charsets */
-	29,	/* Number of elements */
+	31,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -249455,11 +251417,13 @@ static const UV UNI_GCB__PP_invlist[] = 
 	0x11A84,
 	0x11A8A,
 	0x11D46,
-	0x11D47
+	0x11D47,
+	0x11F02,
+	0x11F03
 };
 
 static const UV UNI_GCB__SM_invlist[] = {  /* for all charsets */
-	321,	/* Number of elements */
+	331,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -249526,6 +251490,8 @@ static const UV UNI_GCB__SM_invlist[] = 
 	0xCC9,
 	0xCCA,
 	0xCCC,
+	0xCF3,
+	0xCF4,
 	0xD02,
 	0xD04,
 	0xD3F,
@@ -249776,6 +251742,14 @@ static const UV UNI_GCB__SM_invlist[] = 
 	0x11D97,
 	0x11EF5,
 	0x11EF7,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F36,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
 	0x16F51,
 	0x16F88,
 	0x16FF0,
@@ -249813,7 +251787,7 @@ static const UV UNI_GCB__V_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_GCB__XX_invlist[] = {  /* for ASCII/Latin1 */
-	640,	/* Number of elements */
+	658,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -249989,6 +251963,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -250026,7 +252002,7 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0xEB3,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -250253,6 +252229,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -250297,6 +252275,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -250385,8 +252365,16 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -250441,12 +252429,16 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -250467,7 +252459,7 @@ static const UV UNI_GCB__XX_invlist[] = 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_GCB__XX_invlist[] = {  /* for EBCDIC 1047 */
-	640,	/* Number of elements */
+	658,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -250643,6 +252635,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -250680,7 +252674,7 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0xEB3,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -250907,6 +252901,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -250951,6 +252947,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -251039,8 +253037,16 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -251095,12 +253101,16 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -251121,7 +253131,7 @@ static const UV UNI_GCB__XX_invlist[] = 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_GCB__XX_invlist[] = {  /* for EBCDIC 037 */
-	640,	/* Number of elements */
+	658,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -251297,6 +253307,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -251334,7 +253346,7 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0xEB3,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -251561,6 +253573,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -251605,6 +253619,8 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -251693,8 +253709,16 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -251749,12 +253773,16 @@ static const UV UNI_GCB__XX_invlist[] = 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -251990,7 +254018,7 @@ static const UV UNI_GRAN_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_GRBASE_invlist[] = {  /* for ASCII/Latin1 */
-	1723,	/* Number of elements */
+	1751,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -252294,7 +254322,7 @@ static const UV UNI_GRBASE_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD02,
 	0xD0D,
 	0xD0E,
@@ -253131,6 +255159,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11236,
 	0x11238,
 	0x1123E,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -253303,6 +255333,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -253349,6 +255381,16 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11EF3,
 	0x11EF5,
 	0x11EF9,
+	0x11F02,
+	0x11F11,
+	0x11F12,
+	0x11F36,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -253364,7 +255406,9 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -253419,8 +255463,12 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -253459,6 +255507,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -253517,6 +255567,10 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1DA8C,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -253533,6 +255587,10 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -253651,14 +255709,14 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -253680,23 +255738,19 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -253706,7 +255760,7 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -253716,7 +255770,9 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -253727,7 +255783,7 @@ static const UV UNI_GRBASE_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_GRBASE_invlist[] = {  /* for EBCDIC 1047 */
-	1723,	/* Number of elements */
+	1751,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -254031,7 +256087,7 @@ static const UV UNI_GRBASE_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD02,
 	0xD0D,
 	0xD0E,
@@ -254868,6 +256924,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11236,
 	0x11238,
 	0x1123E,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -255040,6 +257098,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -255086,6 +257146,16 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11EF3,
 	0x11EF5,
 	0x11EF9,
+	0x11F02,
+	0x11F11,
+	0x11F12,
+	0x11F36,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -255101,7 +257171,9 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -255156,8 +257228,12 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -255196,6 +257272,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -255254,6 +257332,10 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1DA8C,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -255270,6 +257352,10 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -255388,14 +257474,14 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -255417,23 +257503,19 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -255443,7 +257525,7 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -255453,7 +257535,9 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -255464,7 +257548,7 @@ static const UV UNI_GRBASE_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_GRBASE_invlist[] = {  /* for EBCDIC 037 */
-	1723,	/* Number of elements */
+	1751,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -255768,7 +257852,7 @@ static const UV UNI_GRBASE_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD02,
 	0xD0D,
 	0xD0E,
@@ -256605,6 +258689,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11236,
 	0x11238,
 	0x1123E,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -256777,6 +258863,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -256823,6 +258911,16 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x11EF3,
 	0x11EF5,
 	0x11EF9,
+	0x11F02,
+	0x11F11,
+	0x11F12,
+	0x11F36,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -256838,7 +258936,9 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -256893,8 +258993,12 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -256933,6 +259037,8 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -256991,6 +259097,10 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1DA8C,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -257007,6 +259117,10 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4EC,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -257125,14 +259239,14 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -257154,23 +259268,19 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -257180,7 +259290,7 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -257190,7 +259300,9 @@ static const UV UNI_GRBASE_invlist[] = {
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -257290,7 +259402,7 @@ static const UV UNI_GREK_invlist[] = {  
 };
 
 static const UV UNI_GREXT_invlist[] = {  /* for all charsets */
-	707,	/* Number of elements */
+	727,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -257500,7 +259612,7 @@ static const UV UNI_GREXT_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -257757,6 +259869,8 @@ static const UV UNI_GREXT_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -257801,6 +259915,8 @@ static const UV UNI_GREXT_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -257935,6 +260051,18 @@ static const UV UNI_GREXT_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -257987,12 +260115,16 @@ static const UV UNI_GREXT_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -258112,7 +260244,7 @@ static const UV UNI_HALFMARKS_invlist[] 
 };
 
 static const UV UNI_HAN_invlist[] = {  /* for all charsets */
-	75,	/* Number of elements */
+	77,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -258180,7 +260312,7 @@ static const UV UNI_HAN_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -258190,7 +260322,9 @@ static const UV UNI_HAN_invlist[] = {  /
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 static const UV UNI_HANG_invlist[] = {  /* for all charsets */
@@ -258314,7 +260448,7 @@ static const UV UNI_HIGHSURROGATES_invli
 };
 
 static const UV UNI_HIRA_invlist[] = {  /* for all charsets */
-	33,	/* Number of elements */
+	35,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -258347,6 +260481,8 @@ static const UV UNI_HIRA_invlist[] = {  
 	0xFFA0,
 	0x1B001,
 	0x1B120,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
 	0x1F200,
@@ -258534,7 +260670,7 @@ static const UV UNI_HYPHEN_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDC_invlist[] = {  /* for ASCII/Latin1 */
-	1513,	/* Number of elements */
+	1537,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -258856,7 +260992,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -258922,7 +261058,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -259547,7 +261683,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -259594,7 +261730,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -259755,6 +261891,14 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -259766,7 +261910,9 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -259821,8 +261967,12 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -259929,6 +262079,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -259939,6 +262091,10 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -259951,6 +262107,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -260038,7 +262196,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -260049,6 +262207,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -260061,7 +262221,7 @@ static const UV UNI_IDC_invlist[] = {  /
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDC_invlist[] = {  /* for EBCDIC 1047 */
-	1537,	/* Number of elements */
+	1561,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -260407,7 +262567,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -260473,7 +262633,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -261098,7 +263258,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -261145,7 +263305,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -261306,6 +263466,14 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -261317,7 +263485,9 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -261372,8 +263542,12 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -261480,6 +263654,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -261490,6 +263666,10 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -261502,6 +263682,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -261589,7 +263771,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -261600,6 +263782,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -261612,7 +263796,7 @@ static const UV UNI_IDC_invlist[] = {  /
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDC_invlist[] = {  /* for EBCDIC 037 */
-	1533,	/* Number of elements */
+	1557,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -261954,7 +264138,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -262020,7 +264204,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -262645,7 +264829,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -262692,7 +264876,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -262853,6 +265037,14 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -262864,7 +265056,9 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -262919,8 +265113,12 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -263027,6 +265225,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -263037,6 +265237,10 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -263049,6 +265253,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -263136,7 +265342,7 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -263147,6 +265353,8 @@ static const UV UNI_IDC_invlist[] = {  /
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -263156,7 +265364,7 @@ static const UV UNI_IDC_invlist[] = {  /
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = {  /* for ASCII/Latin1 */
-	777,	/* Number of elements */
+	785,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -263518,7 +265726,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -263596,7 +265804,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -263793,8 +266001,6 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x1FFB,
 	0x1FFC,
 	0x1FFD,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -263911,12 +266117,20 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -263928,7 +266142,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -263936,7 +266150,9 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -263947,7 +266163,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = {  /* for EBCDIC 1047 */
-	811,	/* Number of elements */
+	819,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -264343,7 +266559,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -264421,7 +266637,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -264618,8 +266834,6 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x1FFB,
 	0x1FFC,
 	0x1FFD,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -264736,12 +266950,20 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -264753,7 +266975,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -264761,7 +266983,9 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -264772,7 +266996,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERSTATUS__ALLOWED_invlist[] = {  /* for EBCDIC 037 */
-	807,	/* Number of elements */
+	815,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -265164,7 +267388,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -265242,7 +267466,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -265439,8 +267663,6 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x1FFB,
 	0x1FFC,
 	0x1FFD,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -265557,12 +267779,20 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -265574,7 +267804,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -265582,7 +267812,9 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -265590,7 +267822,7 @@ static const UV UNI_IDENTIFIERSTATUS__AL
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = {  /* for ASCII/Latin1 */
-	777,	/* Number of elements */
+	785,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -265952,7 +268184,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -266030,7 +268262,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -266227,8 +268459,6 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x1FFB,
 	0x1FFC,
 	0x1FFD,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -266345,12 +268575,20 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -266362,7 +268600,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -266370,7 +268608,9 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -266381,7 +268621,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = {  /* for EBCDIC 1047 */
-	811,	/* Number of elements */
+	819,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -266777,7 +269017,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -266855,7 +269095,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -267052,8 +269292,6 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x1FFB,
 	0x1FFC,
 	0x1FFD,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -267170,12 +269408,20 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -267187,7 +269433,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -267195,7 +269441,9 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -267206,7 +269454,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERSTATUS__RESTRICTED_invlist[] = {  /* for EBCDIC 037 */
-	807,	/* Number of elements */
+	815,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -267598,7 +269846,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -267676,7 +269924,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -267873,8 +270121,6 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x1FFB,
 	0x1FFC,
 	0x1FFD,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -267991,12 +270237,20 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -268008,7 +270262,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -268016,7 +270270,9 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -268024,7 +270280,7 @@ static const UV UNI_IDENTIFIERSTATUS__RE
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = {  /* for ASCII/Latin1 */
-	39,	/* Number of elements */
+	37,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268042,8 +270298,6 @@ static const UV UNI_IDENTIFIERTYPE__DEFA
 	0x180B,
 	0x1810,
 	0x200B,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x202A,
 	0x202F,
@@ -268077,7 +270331,7 @@ static const UV UNI_IDENTIFIERTYPE__DEFA
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = {  /* for EBCDIC 1047 */
-	39,	/* Number of elements */
+	37,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268095,8 +270349,6 @@ static const UV UNI_IDENTIFIERTYPE__DEFA
 	0x180B,
 	0x1810,
 	0x200B,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x202A,
 	0x202F,
@@ -268130,7 +270382,7 @@ static const UV UNI_IDENTIFIERTYPE__DEFA
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist[] = {  /* for EBCDIC 037 */
-	39,	/* Number of elements */
+	37,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268148,8 +270400,6 @@ static const UV UNI_IDENTIFIERTYPE__DEFA
 	0x180B,
 	0x1810,
 	0x200B,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x202A,
 	0x202F,
@@ -268178,7 +270428,7 @@ static const UV UNI_IDENTIFIERTYPE__DEFA
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_IDENTIFIERTYPE__EXCLUSION_invlist[] = {  /* for all charsets */
-	443,	/* Number of elements */
+	449,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268408,7 +270658,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCL
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -268541,6 +270791,12 @@ static const UV UNI_IDENTIFIERTYPE__EXCL
 	0x11D5A,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x12000,
 	0x1239A,
 	0x12400,
@@ -268552,9 +270808,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCL
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16A40,
@@ -268621,6 +270875,8 @@ static const UV UNI_IDENTIFIERTYPE__EXCL
 	0x1E02B,
 	0x1E290,
 	0x1E2AF,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E800,
 	0x1E8C5,
 	0x1E8C7,
@@ -268630,7 +270886,7 @@ static const UV UNI_IDENTIFIERTYPE__EXCL
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = {  /* for ASCII/Latin1 */
-	31,	/* Number of elements */
+	29,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268653,8 +270909,6 @@ static const UV UNI_IDENTIFIERTYPE__INCL
 	0x6FF,
 	0xF0B,
 	0xF0C,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -268675,7 +270929,7 @@ static const UV UNI_IDENTIFIERTYPE__INCL
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = {  /* for EBCDIC 1047 */
-	33,	/* Number of elements */
+	31,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268700,8 +270954,6 @@ static const UV UNI_IDENTIFIERTYPE__INCL
 	0x6FF,
 	0xF0B,
 	0xF0C,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -268722,7 +270974,7 @@ static const UV UNI_IDENTIFIERTYPE__INCL
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERTYPE__INCLUSION_invlist[] = {  /* for EBCDIC 037 */
-	33,	/* Number of elements */
+	31,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -268747,8 +270999,6 @@ static const UV UNI_IDENTIFIERTYPE__INCL
 	0x6FF,
 	0xF0B,
 	0xF0C,
-	0x200C,
-	0x200E,
 	0x2010,
 	0x2011,
 	0x2019,
@@ -268948,7 +271198,7 @@ static const UV UNI_IDENTIFIERTYPE__LIMI
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = {  /* for ASCII/Latin1 */
-	1399,	/* Number of elements */
+	1417,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -269202,7 +271452,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -269262,7 +271512,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -269803,7 +272053,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -269838,7 +272088,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -269943,6 +272193,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -269985,6 +272237,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -270000,9 +272258,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -270055,8 +272311,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -270085,6 +272345,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -270139,6 +272401,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -270149,6 +272413,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -270163,6 +272431,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -270279,14 +272549,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -270308,23 +272578,19 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -270334,7 +272600,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -270345,6 +272611,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -270361,7 +272629,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = {  /* for EBCDIC 1047 */
-	1403,	/* Number of elements */
+	1421,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -270619,7 +272887,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -270679,7 +272947,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -271220,7 +273488,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -271255,7 +273523,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -271360,6 +273628,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -271402,6 +273672,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -271417,9 +273693,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -271472,8 +273746,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -271502,6 +273780,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -271556,6 +273836,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -271566,6 +273848,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -271580,6 +273866,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -271696,14 +273984,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -271725,23 +274013,19 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -271751,7 +274035,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -271762,6 +274046,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -271778,7 +274064,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist[] = {  /* for EBCDIC 037 */
-	1403,	/* Number of elements */
+	1421,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -272036,7 +274322,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -272096,7 +274382,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -272637,7 +274923,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -272672,7 +274958,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -272777,6 +275063,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -272819,6 +275107,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -272834,9 +275128,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -272889,8 +275181,12 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -272919,6 +275215,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -272973,6 +275271,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -272983,6 +275283,10 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -272997,6 +275301,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -273113,14 +275419,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -273142,23 +275448,19 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -273168,7 +275470,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -273179,6 +275481,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -273192,7 +275496,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTC
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = {  /* for ASCII/Latin1 */
-	511,	/* Number of elements */
+	513,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -273619,6 +275923,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTN
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -273717,7 +276023,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTN
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = {  /* for EBCDIC 1047 */
-	517,	/* Number of elements */
+	519,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -274150,6 +276456,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTN
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -274248,7 +276556,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTN
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERTYPE__NOTNFKC_invlist[] = {  /* for EBCDIC 037 */
-	515,	/* Number of elements */
+	517,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -274679,6 +276987,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTN
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -274774,7 +277084,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTN
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = {  /* for ASCII/Latin1 */
-	707,	/* Number of elements */
+	709,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -275319,6 +277629,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C5A,
@@ -275327,6 +277639,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FC0,
 	0x11FF2,
 	0x11FFF,
@@ -275336,7 +277650,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x12FF1,
 	0x12FF3,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -275377,6 +277691,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -275435,14 +277751,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -275464,23 +277780,19 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -275495,7 +277807,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = {  /* for EBCDIC 1047 */
-	721,	/* Number of elements */
+	723,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -276054,6 +278366,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C5A,
@@ -276062,6 +278376,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FC0,
 	0x11FF2,
 	0x11FFF,
@@ -276071,7 +278387,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x12FF1,
 	0x12FF3,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -276112,6 +278428,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -276170,14 +278488,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -276199,23 +278517,19 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -276230,7 +278544,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERTYPE__NOTXID_invlist[] = {  /* for EBCDIC 037 */
-	719,	/* Number of elements */
+	721,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -276787,6 +279101,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C5A,
@@ -276795,6 +279111,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FC0,
 	0x11FF2,
 	0x11FFF,
@@ -276804,7 +279122,7 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x12FF1,
 	0x12FF3,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -276845,6 +279163,8 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -276903,14 +279223,14 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -276932,23 +279252,19 @@ static const UV UNI_IDENTIFIERTYPE__NOTX
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -277176,7 +279492,7 @@ static const UV UNI_IDENTIFIERTYPE__OBSO
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = {  /* for ASCII/Latin1 */
-	761,	/* Number of elements */
+	771,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -277530,7 +279846,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -277608,7 +279924,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -277915,12 +280231,20 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -277932,7 +280256,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -277940,7 +280264,9 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -277951,7 +280277,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = {  /* for EBCDIC 1047 */
-	791,	/* Number of elements */
+	801,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -278335,7 +280661,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -278413,7 +280739,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -278720,12 +281046,20 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -278737,7 +281071,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -278745,7 +281079,9 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -278756,7 +281092,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDENTIFIERTYPE__RECOMMENDED_invlist[] = {  /* for EBCDIC 037 */
-	787,	/* Number of elements */
+	797,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -279136,7 +281472,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD01,
 	0xD02,
@@ -279214,7 +281550,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDE,
@@ -279521,12 +281857,20 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x16FF2,
 	0x1B11F,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E08F,
+	0x1E090,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -279538,7 +281882,7 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -279546,7 +281890,9 @@ static const UV UNI_IDENTIFIERTYPE__RECO
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -279758,7 +282104,7 @@ static const UV UNI_IDENTIFIERTYPE__TECH
 };
 
 static const UV UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist[] = {  /* for all charsets */
-	165,	/* Number of elements */
+	167,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -279913,6 +282259,8 @@ static const UV UNI_IDENTIFIERTYPE__UNCO
 	0xFE30,
 	0x10780,
 	0x10781,
+	0x10EFD,
+	0x10F00,
 	0x16A40,
 	0x16A5F,
 	0x16A60,
@@ -279930,7 +282278,7 @@ static const UV UNI_IDENTIFIERTYPE__UNCO
 };
 
 static const UV UNI_IDEO_invlist[] = {  /* for all charsets */
-	39,	/* Number of elements */
+	41,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -279962,7 +282310,7 @@ static const UV UNI_IDEO_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -279972,7 +282320,9 @@ static const UV UNI_IDEO_invlist[] = {  
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 static const UV UNI_IDEOGRAPHICSYMBOLS_invlist[] = {  /* for all charsets */
@@ -279988,7 +282338,7 @@ static const UV UNI_IDEOGRAPHICSYMBOLS_i
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_IDS_invlist[] = {  /* for ASCII/Latin1 */
-	1297,	/* Number of elements */
+	1319,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -280929,6 +283279,8 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -281053,6 +283405,12 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -281064,7 +283422,9 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -281109,8 +283469,12 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -281185,6 +283549,10 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -281195,6 +283563,8 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -281278,7 +283648,7 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -281288,7 +283658,9 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -281299,7 +283671,7 @@ static const UV UNI_IDS_invlist[] = {  /
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_IDS_invlist[] = {  /* for EBCDIC 1047 */
-	1323,	/* Number of elements */
+	1345,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -282266,6 +284638,8 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -282390,6 +284764,12 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -282401,7 +284781,9 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -282446,8 +284828,12 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -282522,6 +284908,10 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -282532,6 +284922,8 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -282615,7 +285007,7 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -282625,7 +285017,9 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -282636,7 +285030,7 @@ static const UV UNI_IDS_invlist[] = {  /
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_IDS_invlist[] = {  /* for EBCDIC 037 */
-	1319,	/* Number of elements */
+	1341,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -283599,6 +285993,8 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -283723,6 +286119,12 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -283734,7 +286136,9 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -283779,8 +286183,12 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -283855,6 +286263,10 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -283865,6 +286277,8 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -283948,7 +286362,7 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -283958,7 +286372,9 @@ static const UV UNI_IDS_invlist[] = {  /
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -291239,7 +293655,1424 @@ static const UV UNI_IN__13_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6E0,
+	0x1F6E0,
+	0x1F6ED,
+	0x1F6F0,
+	0x1F6FD,
+	0x1F700,
+	0x1F774,
+	0x1F780,
+	0x1F7D9,
+	0x1F7E0,
+	0x1F7EC,
+	0x1F800,
+	0x1F80C,
+	0x1F810,
+	0x1F848,
+	0x1F850,
+	0x1F85A,
+	0x1F860,
+	0x1F888,
+	0x1F890,
+	0x1F8AE,
+	0x1F8B0,
+	0x1F8B2,
+	0x1F900,
+	0x1F979,
+	0x1F97A,
+	0x1F9CC,
+	0x1F9CD,
+	0x1FA54,
+	0x1FA60,
+	0x1FA6E,
+	0x1FA70,
+	0x1FA75,
+	0x1FA78,
+	0x1FA7B,
+	0x1FA80,
+	0x1FA87,
+	0x1FA90,
+	0x1FAA9,
+	0x1FAB0,
+	0x1FAB7,
+	0x1FAC0,
+	0x1FAC3,
+	0x1FAD0,
+	0x1FAD7,
+	0x1FB00,
+	0x1FB93,
+	0x1FB94,
+	0x1FBCB,
+	0x1FBF0,
+	0x1FBFA,
+	0x1FFFE,
+	0x2A6DE,
+	0x2A700,
+	0x2B735,
+	0x2B740,
+	0x2B81E,
+	0x2B820,
+	0x2CEA2,
+	0x2CEB0,
+	0x2EBE1,
+	0x2F800,
+	0x2FA1E,
+	0x2FFFE,
+	0x3134B,
+	0x3FFFE,
+	0x40000,
+	0x4FFFE,
+	0x50000,
+	0x5FFFE,
+	0x60000,
+	0x6FFFE,
+	0x70000,
+	0x7FFFE,
+	0x80000,
+	0x8FFFE,
+	0x90000,
+	0x9FFFE,
+	0xA0000,
+	0xAFFFE,
+	0xB0000,
+	0xBFFFE,
+	0xC0000,
+	0xCFFFE,
+	0xD0000,
+	0xDFFFE,
+	0xE0000,
+	0xE0001,
+	0xE0002,
+	0xE0020,
+	0xE0080,
+	0xE0100,
+	0xE01F0,
+	0xEFFFE,
+	0x110000
+};
+
+static const UV UNI_IN__14_invlist[] = {  /* for all charsets */
+	1412,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	0,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x378,
+	0x37A,
+	0x380,
+	0x384,
+	0x38B,
+	0x38C,
+	0x38D,
+	0x38E,
+	0x3A2,
+	0x3A3,
+	0x530,
+	0x531,
+	0x557,
+	0x559,
+	0x58B,
+	0x58D,
+	0x590,
+	0x591,
+	0x5C8,
+	0x5D0,
+	0x5EB,
+	0x5EF,
+	0x5F5,
+	0x600,
+	0x70E,
+	0x70F,
+	0x74B,
+	0x74D,
+	0x7B2,
+	0x7C0,
+	0x7FB,
+	0x7FD,
+	0x82E,
+	0x830,
+	0x83F,
+	0x840,
+	0x85C,
+	0x85E,
+	0x85F,
+	0x860,
+	0x86B,
+	0x870,
+	0x88F,
+	0x890,
+	0x892,
+	0x898,
+	0x984,
+	0x985,
+	0x98D,
+	0x98F,
+	0x991,
+	0x993,
+	0x9A9,
+	0x9AA,
+	0x9B1,
+	0x9B2,
+	0x9B3,
+	0x9B6,
+	0x9BA,
+	0x9BC,
+	0x9C5,
+	0x9C7,
+	0x9C9,
+	0x9CB,
+	0x9CF,
+	0x9D7,
+	0x9D8,
+	0x9DC,
+	0x9DE,
+	0x9DF,
+	0x9E4,
+	0x9E6,
+	0x9FF,
+	0xA01,
+	0xA04,
+	0xA05,
+	0xA0B,
+	0xA0F,
+	0xA11,
+	0xA13,
+	0xA29,
+	0xA2A,
+	0xA31,
+	0xA32,
+	0xA34,
+	0xA35,
+	0xA37,
+	0xA38,
+	0xA3A,
+	0xA3C,
+	0xA3D,
+	0xA3E,
+	0xA43,
+	0xA47,
+	0xA49,
+	0xA4B,
+	0xA4E,
+	0xA51,
+	0xA52,
+	0xA59,
+	0xA5D,
+	0xA5E,
+	0xA5F,
+	0xA66,
+	0xA77,
+	0xA81,
+	0xA84,
+	0xA85,
+	0xA8E,
+	0xA8F,
+	0xA92,
+	0xA93,
+	0xAA9,
+	0xAAA,
+	0xAB1,
+	0xAB2,
+	0xAB4,
+	0xAB5,
+	0xABA,
+	0xABC,
+	0xAC6,
+	0xAC7,
+	0xACA,
+	0xACB,
+	0xACE,
+	0xAD0,
+	0xAD1,
+	0xAE0,
+	0xAE4,
+	0xAE6,
+	0xAF2,
+	0xAF9,
+	0xB00,
+	0xB01,
+	0xB04,
+	0xB05,
+	0xB0D,
+	0xB0F,
+	0xB11,
+	0xB13,
+	0xB29,
+	0xB2A,
+	0xB31,
+	0xB32,
+	0xB34,
+	0xB35,
+	0xB3A,
+	0xB3C,
+	0xB45,
+	0xB47,
+	0xB49,
+	0xB4B,
+	0xB4E,
+	0xB55,
+	0xB58,
+	0xB5C,
+	0xB5E,
+	0xB5F,
+	0xB64,
+	0xB66,
+	0xB78,
+	0xB82,
+	0xB84,
+	0xB85,
+	0xB8B,
+	0xB8E,
+	0xB91,
+	0xB92,
+	0xB96,
+	0xB99,
+	0xB9B,
+	0xB9C,
+	0xB9D,
+	0xB9E,
+	0xBA0,
+	0xBA3,
+	0xBA5,
+	0xBA8,
+	0xBAB,
+	0xBAE,
+	0xBBA,
+	0xBBE,
+	0xBC3,
+	0xBC6,
+	0xBC9,
+	0xBCA,
+	0xBCE,
+	0xBD0,
+	0xBD1,
+	0xBD7,
+	0xBD8,
+	0xBE6,
+	0xBFB,
+	0xC00,
+	0xC0D,
+	0xC0E,
+	0xC11,
+	0xC12,
+	0xC29,
+	0xC2A,
+	0xC3A,
+	0xC3C,
+	0xC45,
+	0xC46,
+	0xC49,
+	0xC4A,
+	0xC4E,
+	0xC55,
+	0xC57,
+	0xC58,
+	0xC5B,
+	0xC5D,
+	0xC5E,
+	0xC60,
+	0xC64,
+	0xC66,
+	0xC70,
+	0xC77,
+	0xC8D,
+	0xC8E,
+	0xC91,
+	0xC92,
+	0xCA9,
+	0xCAA,
+	0xCB4,
+	0xCB5,
+	0xCBA,
+	0xCBC,
+	0xCC5,
+	0xCC6,
+	0xCC9,
+	0xCCA,
+	0xCCE,
+	0xCD5,
+	0xCD7,
+	0xCDD,
+	0xCDF,
+	0xCE0,
+	0xCE4,
+	0xCE6,
+	0xCF0,
+	0xCF1,
+	0xCF3,
+	0xD00,
+	0xD0D,
+	0xD0E,
+	0xD11,
+	0xD12,
+	0xD45,
+	0xD46,
+	0xD49,
+	0xD4A,
+	0xD50,
+	0xD54,
+	0xD64,
+	0xD66,
+	0xD80,
+	0xD81,
+	0xD84,
+	0xD85,
+	0xD97,
+	0xD9A,
+	0xDB2,
+	0xDB3,
+	0xDBC,
+	0xDBD,
+	0xDBE,
+	0xDC0,
+	0xDC7,
+	0xDCA,
+	0xDCB,
+	0xDCF,
+	0xDD5,
+	0xDD6,
+	0xDD7,
+	0xDD8,
+	0xDE0,
+	0xDE6,
+	0xDF0,
+	0xDF2,
+	0xDF5,
+	0xE01,
+	0xE3B,
+	0xE3F,
+	0xE5C,
+	0xE81,
+	0xE83,
+	0xE84,
+	0xE85,
+	0xE86,
+	0xE8B,
+	0xE8C,
+	0xEA4,
+	0xEA5,
+	0xEA6,
+	0xEA7,
+	0xEBE,
+	0xEC0,
+	0xEC5,
+	0xEC6,
+	0xEC7,
+	0xEC8,
+	0xECE,
+	0xED0,
+	0xEDA,
+	0xEDC,
+	0xEE0,
+	0xF00,
+	0xF48,
+	0xF49,
+	0xF6D,
+	0xF71,
+	0xF98,
+	0xF99,
+	0xFBD,
+	0xFBE,
+	0xFCD,
+	0xFCE,
+	0xFDB,
+	0x1000,
+	0x10C6,
+	0x10C7,
+	0x10C8,
+	0x10CD,
+	0x10CE,
+	0x10D0,
+	0x1249,
+	0x124A,
+	0x124E,
+	0x1250,
+	0x1257,
+	0x1258,
+	0x1259,
+	0x125A,
+	0x125E,
+	0x1260,
+	0x1289,
+	0x128A,
+	0x128E,
+	0x1290,
+	0x12B1,
+	0x12B2,
+	0x12B6,
+	0x12B8,
+	0x12BF,
+	0x12C0,
+	0x12C1,
+	0x12C2,
+	0x12C6,
+	0x12C8,
+	0x12D7,
+	0x12D8,
+	0x1311,
+	0x1312,
+	0x1316,
+	0x1318,
+	0x135B,
+	0x135D,
+	0x137D,
+	0x1380,
+	0x139A,
+	0x13A0,
+	0x13F6,
+	0x13F8,
+	0x13FE,
+	0x1400,
+	0x169D,
+	0x16A0,
+	0x16F9,
+	0x1700,
+	0x1716,
+	0x171F,
+	0x1737,
+	0x1740,
+	0x1754,
+	0x1760,
+	0x176D,
+	0x176E,
+	0x1771,
+	0x1772,
+	0x1774,
+	0x1780,
+	0x17DE,
+	0x17E0,
+	0x17EA,
+	0x17F0,
+	0x17FA,
+	0x1800,
+	0x181A,
+	0x1820,
+	0x1879,
+	0x1880,
+	0x18AB,
+	0x18B0,
+	0x18F6,
+	0x1900,
+	0x191F,
+	0x1920,
+	0x192C,
+	0x1930,
+	0x193C,
+	0x1940,
+	0x1941,
+	0x1944,
+	0x196E,
+	0x1970,
+	0x1975,
+	0x1980,
+	0x19AC,
+	0x19B0,
+	0x19CA,
+	0x19D0,
+	0x19DB,
+	0x19DE,
+	0x1A1C,
+	0x1A1E,
+	0x1A5F,
+	0x1A60,
+	0x1A7D,
+	0x1A7F,
+	0x1A8A,
+	0x1A90,
+	0x1A9A,
+	0x1AA0,
+	0x1AAE,
+	0x1AB0,
+	0x1ACF,
+	0x1B00,
+	0x1B4D,
+	0x1B50,
+	0x1B7F,
+	0x1B80,
+	0x1BF4,
+	0x1BFC,
+	0x1C38,
+	0x1C3B,
+	0x1C4A,
+	0x1C4D,
+	0x1C89,
+	0x1C90,
+	0x1CBB,
+	0x1CBD,
+	0x1CC8,
+	0x1CD0,
+	0x1CFB,
+	0x1D00,
+	0x1F16,
+	0x1F18,
+	0x1F1E,
+	0x1F20,
+	0x1F46,
+	0x1F48,
+	0x1F4E,
+	0x1F50,
+	0x1F58,
+	0x1F59,
+	0x1F5A,
+	0x1F5B,
+	0x1F5C,
+	0x1F5D,
+	0x1F5E,
+	0x1F5F,
+	0x1F7E,
+	0x1F80,
+	0x1FB5,
+	0x1FB6,
+	0x1FC5,
+	0x1FC6,
+	0x1FD4,
+	0x1FD6,
+	0x1FDC,
+	0x1FDD,
+	0x1FF0,
+	0x1FF2,
+	0x1FF5,
+	0x1FF6,
+	0x1FFF,
+	0x2000,
+	0x2065,
+	0x2066,
+	0x2072,
+	0x2074,
+	0x208F,
+	0x2090,
+	0x209D,
+	0x20A0,
+	0x20C1,
+	0x20D0,
+	0x20F1,
+	0x2100,
+	0x218C,
+	0x2190,
+	0x2427,
+	0x2440,
+	0x244B,
+	0x2460,
+	0x2B74,
+	0x2B76,
+	0x2B96,
+	0x2B97,
+	0x2CF4,
+	0x2CF9,
+	0x2D26,
+	0x2D27,
+	0x2D28,
+	0x2D2D,
+	0x2D2E,
+	0x2D30,
+	0x2D68,
+	0x2D6F,
+	0x2D71,
+	0x2D7F,
+	0x2D97,
+	0x2DA0,
+	0x2DA7,
+	0x2DA8,
+	0x2DAF,
+	0x2DB0,
+	0x2DB7,
+	0x2DB8,
+	0x2DBF,
+	0x2DC0,
+	0x2DC7,
+	0x2DC8,
+	0x2DCF,
+	0x2DD0,
+	0x2DD7,
+	0x2DD8,
+	0x2DDF,
+	0x2DE0,
+	0x2E5E,
+	0x2E80,
+	0x2E9A,
+	0x2E9B,
+	0x2EF4,
+	0x2F00,
+	0x2FD6,
+	0x2FF0,
+	0x2FFC,
+	0x3000,
+	0x3040,
+	0x3041,
+	0x3097,
+	0x3099,
+	0x3100,
+	0x3105,
+	0x3130,
+	0x3131,
+	0x318F,
+	0x3190,
+	0x31E4,
+	0x31F0,
+	0x321F,
+	0x3220,
+	0xA48D,
+	0xA490,
+	0xA4C7,
+	0xA4D0,
+	0xA62C,
+	0xA640,
+	0xA6F8,
+	0xA700,
+	0xA7CB,
+	0xA7D0,
+	0xA7D2,
+	0xA7D3,
+	0xA7D4,
+	0xA7D5,
+	0xA7DA,
+	0xA7F2,
+	0xA82D,
+	0xA830,
+	0xA83A,
+	0xA840,
+	0xA878,
+	0xA880,
+	0xA8C6,
+	0xA8CE,
+	0xA8DA,
+	0xA8E0,
+	0xA954,
+	0xA95F,
+	0xA97D,
+	0xA980,
+	0xA9CE,
+	0xA9CF,
+	0xA9DA,
+	0xA9DE,
+	0xA9FF,
+	0xAA00,
+	0xAA37,
+	0xAA40,
+	0xAA4E,
+	0xAA50,
+	0xAA5A,
+	0xAA5C,
+	0xAAC3,
+	0xAADB,
+	0xAAF7,
+	0xAB01,
+	0xAB07,
+	0xAB09,
+	0xAB0F,
+	0xAB11,
+	0xAB17,
+	0xAB20,
+	0xAB27,
+	0xAB28,
+	0xAB2F,
+	0xAB30,
+	0xAB6C,
+	0xAB70,
+	0xABEE,
+	0xABF0,
+	0xABFA,
+	0xAC00,
+	0xD7A4,
+	0xD7B0,
+	0xD7C7,
+	0xD7CB,
+	0xD7FC,
+	0xD800,
+	0xFA6E,
+	0xFA70,
+	0xFADA,
+	0xFB00,
+	0xFB07,
+	0xFB13,
+	0xFB18,
+	0xFB1D,
+	0xFB37,
+	0xFB38,
+	0xFB3D,
+	0xFB3E,
+	0xFB3F,
+	0xFB40,
+	0xFB42,
+	0xFB43,
+	0xFB45,
+	0xFB46,
+	0xFBC3,
+	0xFBD3,
+	0xFD90,
+	0xFD92,
+	0xFDC8,
+	0xFDCF,
+	0xFE1A,
+	0xFE20,
+	0xFE53,
+	0xFE54,
+	0xFE67,
+	0xFE68,
+	0xFE6C,
+	0xFE70,
+	0xFE75,
+	0xFE76,
+	0xFEFD,
+	0xFEFF,
+	0xFF00,
+	0xFF01,
+	0xFFBF,
+	0xFFC2,
+	0xFFC8,
+	0xFFCA,
+	0xFFD0,
+	0xFFD2,
+	0xFFD8,
+	0xFFDA,
+	0xFFDD,
+	0xFFE0,
+	0xFFE7,
+	0xFFE8,
+	0xFFEF,
+	0xFFF9,
+	0x1000C,
+	0x1000D,
+	0x10027,
+	0x10028,
+	0x1003B,
+	0x1003C,
+	0x1003E,
+	0x1003F,
+	0x1004E,
+	0x10050,
+	0x1005E,
+	0x10080,
+	0x100FB,
+	0x10100,
+	0x10103,
+	0x10107,
+	0x10134,
+	0x10137,
+	0x1018F,
+	0x10190,
+	0x1019D,
+	0x101A0,
+	0x101A1,
+	0x101D0,
+	0x101FE,
+	0x10280,
+	0x1029D,
+	0x102A0,
+	0x102D1,
+	0x102E0,
+	0x102FC,
+	0x10300,
+	0x10324,
+	0x1032D,
+	0x1034B,
+	0x10350,
+	0x1037B,
+	0x10380,
+	0x1039E,
+	0x1039F,
+	0x103C4,
+	0x103C8,
+	0x103D6,
+	0x10400,
+	0x1049E,
+	0x104A0,
+	0x104AA,
+	0x104B0,
+	0x104D4,
+	0x104D8,
+	0x104FC,
+	0x10500,
+	0x10528,
+	0x10530,
+	0x10564,
+	0x1056F,
+	0x1057B,
+	0x1057C,
+	0x1058B,
+	0x1058C,
+	0x10593,
+	0x10594,
+	0x10596,
+	0x10597,
+	0x105A2,
+	0x105A3,
+	0x105B2,
+	0x105B3,
+	0x105BA,
+	0x105BB,
+	0x105BD,
+	0x10600,
+	0x10737,
+	0x10740,
+	0x10756,
+	0x10760,
+	0x10768,
+	0x10780,
+	0x10786,
+	0x10787,
+	0x107B1,
+	0x107B2,
+	0x107BB,
+	0x10800,
+	0x10806,
+	0x10808,
+	0x10809,
+	0x1080A,
+	0x10836,
+	0x10837,
+	0x10839,
+	0x1083C,
+	0x1083D,
+	0x1083F,
+	0x10856,
+	0x10857,
+	0x1089F,
+	0x108A7,
+	0x108B0,
+	0x108E0,
+	0x108F3,
+	0x108F4,
+	0x108F6,
+	0x108FB,
+	0x1091C,
+	0x1091F,
+	0x1093A,
+	0x1093F,
+	0x10940,
+	0x10980,
+	0x109B8,
+	0x109BC,
+	0x109D0,
+	0x109D2,
+	0x10A04,
+	0x10A05,
+	0x10A07,
+	0x10A0C,
+	0x10A14,
+	0x10A15,
+	0x10A18,
+	0x10A19,
+	0x10A36,
+	0x10A38,
+	0x10A3B,
+	0x10A3F,
+	0x10A49,
+	0x10A50,
+	0x10A59,
+	0x10A60,
+	0x10AA0,
+	0x10AC0,
+	0x10AE7,
+	0x10AEB,
+	0x10AF7,
+	0x10B00,
+	0x10B36,
+	0x10B39,
+	0x10B56,
+	0x10B58,
+	0x10B73,
+	0x10B78,
+	0x10B92,
+	0x10B99,
+	0x10B9D,
+	0x10BA9,
+	0x10BB0,
+	0x10C00,
+	0x10C49,
+	0x10C80,
+	0x10CB3,
+	0x10CC0,
+	0x10CF3,
+	0x10CFA,
+	0x10D28,
+	0x10D30,
+	0x10D3A,
+	0x10E60,
+	0x10E7F,
+	0x10E80,
+	0x10EAA,
+	0x10EAB,
+	0x10EAE,
+	0x10EB0,
+	0x10EB2,
+	0x10F00,
+	0x10F28,
+	0x10F30,
+	0x10F5A,
+	0x10F70,
+	0x10F8A,
+	0x10FB0,
+	0x10FCC,
+	0x10FE0,
+	0x10FF7,
+	0x11000,
+	0x1104E,
+	0x11052,
+	0x11076,
+	0x1107F,
+	0x110C3,
+	0x110CD,
+	0x110CE,
+	0x110D0,
+	0x110E9,
+	0x110F0,
+	0x110FA,
+	0x11100,
+	0x11135,
+	0x11136,
+	0x11148,
+	0x11150,
+	0x11177,
+	0x11180,
+	0x111E0,
+	0x111E1,
+	0x111F5,
+	0x11200,
+	0x11212,
+	0x11213,
+	0x1123F,
+	0x11280,
+	0x11287,
+	0x11288,
+	0x11289,
+	0x1128A,
+	0x1128E,
+	0x1128F,
+	0x1129E,
+	0x1129F,
+	0x112AA,
+	0x112B0,
+	0x112EB,
+	0x112F0,
+	0x112FA,
+	0x11300,
+	0x11304,
+	0x11305,
+	0x1130D,
+	0x1130F,
+	0x11311,
+	0x11313,
+	0x11329,
+	0x1132A,
+	0x11331,
+	0x11332,
+	0x11334,
+	0x11335,
+	0x1133A,
+	0x1133B,
+	0x11345,
+	0x11347,
+	0x11349,
+	0x1134B,
+	0x1134E,
+	0x11350,
+	0x11351,
+	0x11357,
+	0x11358,
+	0x1135D,
+	0x11364,
+	0x11366,
+	0x1136D,
+	0x11370,
+	0x11375,
+	0x11400,
+	0x1145C,
+	0x1145D,
+	0x11462,
+	0x11480,
+	0x114C8,
+	0x114D0,
+	0x114DA,
+	0x11580,
+	0x115B6,
+	0x115B8,
+	0x115DE,
+	0x11600,
+	0x11645,
+	0x11650,
+	0x1165A,
+	0x11660,
+	0x1166D,
+	0x11680,
+	0x116BA,
+	0x116C0,
+	0x116CA,
+	0x11700,
+	0x1171B,
+	0x1171D,
+	0x1172C,
+	0x11730,
+	0x11747,
+	0x11800,
+	0x1183C,
+	0x118A0,
+	0x118F3,
+	0x118FF,
+	0x11907,
+	0x11909,
+	0x1190A,
+	0x1190C,
+	0x11914,
+	0x11915,
+	0x11917,
+	0x11918,
+	0x11936,
+	0x11937,
+	0x11939,
+	0x1193B,
+	0x11947,
+	0x11950,
+	0x1195A,
+	0x119A0,
+	0x119A8,
+	0x119AA,
+	0x119D8,
+	0x119DA,
+	0x119E5,
+	0x11A00,
+	0x11A48,
+	0x11A50,
+	0x11AA3,
+	0x11AB0,
+	0x11AF9,
+	0x11C00,
+	0x11C09,
+	0x11C0A,
+	0x11C37,
+	0x11C38,
+	0x11C46,
+	0x11C50,
+	0x11C6D,
+	0x11C70,
+	0x11C90,
+	0x11C92,
+	0x11CA8,
+	0x11CA9,
+	0x11CB7,
+	0x11D00,
+	0x11D07,
+	0x11D08,
+	0x11D0A,
+	0x11D0B,
+	0x11D37,
+	0x11D3A,
+	0x11D3B,
+	0x11D3C,
+	0x11D3E,
+	0x11D3F,
+	0x11D48,
+	0x11D50,
+	0x11D5A,
+	0x11D60,
+	0x11D66,
+	0x11D67,
+	0x11D69,
+	0x11D6A,
+	0x11D8F,
+	0x11D90,
+	0x11D92,
+	0x11D93,
+	0x11D99,
+	0x11DA0,
+	0x11DAA,
+	0x11EE0,
+	0x11EF9,
+	0x11FB0,
+	0x11FB1,
+	0x11FC0,
+	0x11FF2,
+	0x11FFF,
+	0x1239A,
+	0x12400,
+	0x1246F,
+	0x12470,
+	0x12475,
+	0x12480,
+	0x12544,
+	0x12F90,
+	0x12FF3,
+	0x13000,
+	0x1342F,
+	0x13430,
+	0x13439,
+	0x14400,
+	0x14647,
+	0x16800,
+	0x16A39,
+	0x16A40,
+	0x16A5F,
+	0x16A60,
+	0x16A6A,
+	0x16A6E,
+	0x16ABF,
+	0x16AC0,
+	0x16ACA,
+	0x16AD0,
+	0x16AEE,
+	0x16AF0,
+	0x16AF6,
+	0x16B00,
+	0x16B46,
+	0x16B50,
+	0x16B5A,
+	0x16B5B,
+	0x16B62,
+	0x16B63,
+	0x16B78,
+	0x16B7D,
+	0x16B90,
+	0x16E40,
+	0x16E9B,
+	0x16F00,
+	0x16F4B,
+	0x16F4F,
+	0x16F88,
+	0x16F8F,
+	0x16FA0,
+	0x16FE0,
+	0x16FE5,
+	0x16FF0,
+	0x16FF2,
+	0x17000,
+	0x187F8,
+	0x18800,
+	0x18CD6,
+	0x18D00,
+	0x18D09,
+	0x1AFF0,
+	0x1AFF4,
+	0x1AFF5,
+	0x1AFFC,
+	0x1AFFD,
+	0x1AFFF,
+	0x1B000,
+	0x1B123,
+	0x1B150,
+	0x1B153,
+	0x1B164,
+	0x1B168,
+	0x1B170,
+	0x1B2FC,
+	0x1BC00,
+	0x1BC6B,
+	0x1BC70,
+	0x1BC7D,
+	0x1BC80,
+	0x1BC89,
+	0x1BC90,
+	0x1BC9A,
+	0x1BC9C,
+	0x1BCA4,
+	0x1CF00,
+	0x1CF2E,
+	0x1CF30,
+	0x1CF47,
+	0x1CF50,
+	0x1CFC4,
+	0x1D000,
+	0x1D0F6,
+	0x1D100,
+	0x1D127,
+	0x1D129,
+	0x1D1EB,
+	0x1D200,
+	0x1D246,
+	0x1D2E0,
+	0x1D2F4,
+	0x1D300,
+	0x1D357,
+	0x1D360,
+	0x1D379,
+	0x1D400,
+	0x1D455,
+	0x1D456,
+	0x1D49D,
+	0x1D49E,
+	0x1D4A0,
+	0x1D4A2,
+	0x1D4A3,
+	0x1D4A5,
+	0x1D4A7,
+	0x1D4A9,
+	0x1D4AD,
+	0x1D4AE,
+	0x1D4BA,
+	0x1D4BB,
+	0x1D4BC,
+	0x1D4BD,
+	0x1D4C4,
+	0x1D4C5,
+	0x1D506,
+	0x1D507,
+	0x1D50B,
+	0x1D50D,
+	0x1D515,
+	0x1D516,
+	0x1D51D,
+	0x1D51E,
+	0x1D53A,
+	0x1D53B,
+	0x1D53F,
+	0x1D540,
+	0x1D545,
+	0x1D546,
+	0x1D547,
+	0x1D54A,
+	0x1D551,
+	0x1D552,
+	0x1D6A6,
+	0x1D6A8,
+	0x1D7CC,
+	0x1D7CE,
+	0x1DA8C,
+	0x1DA9B,
+	0x1DAA0,
+	0x1DAA1,
+	0x1DAB0,
+	0x1DF00,
+	0x1DF1F,
+	0x1E000,
+	0x1E007,
+	0x1E008,
+	0x1E019,
+	0x1E01B,
+	0x1E022,
+	0x1E023,
+	0x1E025,
+	0x1E026,
+	0x1E02B,
+	0x1E100,
+	0x1E12D,
+	0x1E130,
+	0x1E13E,
+	0x1E140,
+	0x1E14A,
+	0x1E14E,
+	0x1E150,
+	0x1E290,
+	0x1E2AF,
+	0x1E2C0,
+	0x1E2FA,
+	0x1E2FF,
+	0x1E300,
+	0x1E7E0,
+	0x1E7E7,
+	0x1E7E8,
+	0x1E7EC,
+	0x1E7ED,
+	0x1E7EF,
+	0x1E7F0,
+	0x1E7FF,
+	0x1E800,
+	0x1E8C5,
+	0x1E8C7,
+	0x1E8D7,
+	0x1E900,
+	0x1E94C,
+	0x1E950,
+	0x1E95A,
+	0x1E95E,
+	0x1E960,
+	0x1EC71,
+	0x1ECB5,
+	0x1ED01,
+	0x1ED3E,
+	0x1EE00,
+	0x1EE04,
+	0x1EE05,
+	0x1EE20,
+	0x1EE21,
+	0x1EE23,
+	0x1EE24,
+	0x1EE25,
+	0x1EE27,
+	0x1EE28,
+	0x1EE29,
+	0x1EE33,
+	0x1EE34,
+	0x1EE38,
+	0x1EE39,
+	0x1EE3A,
+	0x1EE3B,
+	0x1EE3C,
+	0x1EE42,
+	0x1EE43,
+	0x1EE47,
+	0x1EE48,
+	0x1EE49,
+	0x1EE4A,
+	0x1EE4B,
+	0x1EE4C,
+	0x1EE4D,
+	0x1EE50,
+	0x1EE51,
+	0x1EE53,
+	0x1EE54,
+	0x1EE55,
+	0x1EE57,
+	0x1EE58,
+	0x1EE59,
+	0x1EE5A,
+	0x1EE5B,
+	0x1EE5C,
+	0x1EE5D,
+	0x1EE5E,
+	0x1EE5F,
+	0x1EE60,
+	0x1EE61,
+	0x1EE63,
+	0x1EE64,
+	0x1EE65,
+	0x1EE67,
+	0x1EE6B,
+	0x1EE6C,
+	0x1EE73,
+	0x1EE74,
+	0x1EE78,
+	0x1EE79,
+	0x1EE7D,
+	0x1EE7E,
+	0x1EE7F,
+	0x1EE80,
+	0x1EE8A,
+	0x1EE8B,
+	0x1EE9C,
+	0x1EEA1,
+	0x1EEA4,
+	0x1EEA5,
+	0x1EEAA,
+	0x1EEAB,
+	0x1EEBC,
+	0x1EEF0,
+	0x1EEF2,
+	0x1F000,
+	0x1F02C,
+	0x1F030,
+	0x1F094,
+	0x1F0A0,
+	0x1F0AF,
+	0x1F0B1,
+	0x1F0C0,
+	0x1F0C1,
+	0x1F0D0,
+	0x1F0D1,
+	0x1F0F6,
+	0x1F100,
+	0x1F1AE,
+	0x1F1E6,
+	0x1F203,
+	0x1F210,
+	0x1F23C,
+	0x1F240,
+	0x1F249,
+	0x1F250,
+	0x1F252,
+	0x1F260,
+	0x1F266,
+	0x1F300,
+	0x1F6D8,
+	0x1F6DD,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
@@ -291249,6 +295082,8 @@ static const UV UNI_IN__13_invlist[] = {
 	0x1F7D9,
 	0x1F7E0,
 	0x1F7EC,
+	0x1F7F0,
+	0x1F7F1,
 	0x1F800,
 	0x1F80C,
 	0x1F810,
@@ -291262,27 +295097,27 @@ static const UV UNI_IN__13_invlist[] = {
 	0x1F8B0,
 	0x1F8B2,
 	0x1F900,
-	0x1F979,
-	0x1F97A,
-	0x1F9CC,
-	0x1F9CD,
 	0x1FA54,
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
 	0x1FA75,
 	0x1FA78,
-	0x1FA7B,
+	0x1FA7D,
 	0x1FA80,
 	0x1FA87,
 	0x1FA90,
-	0x1FAA9,
+	0x1FAAD,
 	0x1FAB0,
-	0x1FAB7,
+	0x1FABB,
 	0x1FAC0,
-	0x1FAC3,
+	0x1FAC6,
 	0x1FAD0,
-	0x1FAD7,
+	0x1FADA,
+	0x1FAE0,
+	0x1FAE8,
+	0x1FAF0,
+	0x1FAF7,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -291290,9 +295125,9 @@ static const UV UNI_IN__13_invlist[] = {
 	0x1FBF0,
 	0x1FBFA,
 	0x1FFFE,
-	0x2A6DE,
+	0x2A6E0,
 	0x2A700,
-	0x2B735,
+	0x2B739,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -291335,8 +295170,8 @@ static const UV UNI_IN__13_invlist[] = {
 	0x110000
 };
 
-static const UV UNI_IN__14_invlist[] = {  /* for all charsets */
-	1412,	/* Number of elements */
+static const UV UNI_IN__15_invlist[] = {  /* for all charsets */
+	1430,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -291583,7 +295418,7 @@ static const UV UNI_IN__14_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -291643,7 +295478,7 @@ static const UV UNI_IN__14_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -292180,7 +296015,7 @@ static const UV UNI_IN__14_invlist[] = {
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -292215,7 +296050,7 @@ static const UV UNI_IN__14_invlist[] = {
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -292320,6 +296155,8 @@ static const UV UNI_IN__14_invlist[] = {
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -292362,6 +296199,12 @@ static const UV UNI_IN__14_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -292377,9 +296220,7 @@ static const UV UNI_IN__14_invlist[] = {
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -292432,8 +296273,12 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -292462,6 +296307,8 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -292516,6 +296363,8 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -292526,6 +296375,10 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -292540,6 +296393,8 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -292656,14 +296511,14 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -292685,23 +296540,19 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -292711,7 +296562,7 @@ static const UV UNI_IN__14_invlist[] = {
 	0x1FFFE,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -292722,6 +296573,8 @@ static const UV UNI_IN__14_invlist[] = {
 	0x2FA1E,
 	0x2FFFE,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0x3FFFE,
 	0x40000,
 	0x4FFFE,
@@ -309000,7 +312853,7 @@ static const UV UNI_IN__9_invlist[] = { 
 };
 
 static const UV UNI_IN__NA_invlist[] = {  /* for all charsets */
-	1412,	/* Number of elements */
+	1430,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -309247,7 +313100,7 @@ static const UV UNI_IN__NA_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -309307,7 +313160,7 @@ static const UV UNI_IN__NA_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -309844,7 +313697,7 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -309879,7 +313732,7 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -309984,6 +313837,8 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -310026,6 +313881,12 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -310041,9 +313902,7 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -310096,8 +313955,12 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -310126,6 +313989,8 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -310180,6 +314045,8 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -310190,6 +314057,10 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -310204,6 +314075,8 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -310320,14 +314193,14 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -310349,23 +314222,19 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -310375,7 +314244,7 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x1FFFE,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -310386,6 +314255,8 @@ static const UV UNI_IN__NA_invlist[] = {
 	0x2FA1E,
 	0x2FFFE,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0x3FFFE,
 	0x40000,
 	0x4FFFE,
@@ -310998,6 +314869,16 @@ static const UV UNI_INKATAKANA_invlist[]
 	0x3100
 };
 
+static const UV UNI_INKAWI_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x11F00,
+	0x11F60
+};
+
 static const UV UNI_INKHAROSHTHI_invlist[] = {  /* for all charsets */
 	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -311298,6 +315179,16 @@ static const UV UNI_INNABATAEAN_invlist[
 	0x108B0
 };
 
+static const UV UNI_INNAGMUNDARI_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x1E4D0,
+	0x1E500
+};
+
 static const UV UNI_INNANDINAGARI_invlist[] = {  /* for all charsets */
 	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -311489,7 +315380,7 @@ static const UV UNI_INPAUCINHAU_invlist[
 };
 
 static const UV UNI_INPC__BOTTOM_invlist[] = {  /* for all charsets */
-	291,	/* Number of elements */
+	295,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -311704,6 +315595,8 @@ static const UV UNI_INPC__BOTTOM_invlist
 	0x111CD,
 	0x1122F,
 	0x11230,
+	0x11241,
+	0x11242,
 	0x112E3,
 	0x112E5,
 	0x112E9,
@@ -311783,7 +315676,9 @@ static const UV UNI_INPC__BOTTOM_invlist
 	0x11D47,
 	0x11D48,
 	0x11EF4,
-	0x11EF5
+	0x11EF5,
+	0x11F38,
+	0x11F3B
 };
 
 static const UV UNI_INPC__BOTTOMANDLEFT_invlist[] = {  /* for all charsets */
@@ -311813,7 +315708,7 @@ static const UV UNI_INPC__BOTTOMANDRIGHT
 };
 
 static const UV UNI_INPC__LEFT_invlist[] = {  /* for all charsets */
-	95,	/* Number of elements */
+	97,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -311911,7 +315806,9 @@ static const UV UNI_INPC__LEFT_invlist[]
 	0x11CB1,
 	0x11CB2,
 	0x11EF5,
-	0x11EF6
+	0x11EF6,
+	0x11F3E,
+	0x11F40
 };
 
 static const UV UNI_INPC__LEFTANDRIGHT_invlist[] = {  /* for all charsets */
@@ -311951,7 +315848,7 @@ static const UV UNI_INPC__LEFTANDRIGHT_i
 };
 
 static const UV UNI_INPC__NA_invlist[] = {  /* for all charsets */
-	429,	/* Number of elements */
+	441,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -311963,6 +315860,8 @@ static const UV UNI_INPC__NA_invlist[] =
 	0x93E,
 	0x950,
 	0x951,
+	0x953,
+	0x955,
 	0x958,
 	0x962,
 	0x964,
@@ -312064,6 +315963,8 @@ static const UV UNI_INPC__NA_invlist[] =
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -312101,7 +316002,7 @@ static const UV UNI_INPC__NA_invlist[] =
 	0xEC0,
 	0xEC5,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -312220,7 +316121,7 @@ static const UV UNI_INPC__NA_invlist[] =
 	0xA8F2,
 	0xA8FF,
 	0xA900,
-	0xA92B,
+	0xA926,
 	0xA92E,
 	0xA947,
 	0xA954,
@@ -312296,6 +316197,8 @@ static const UV UNI_INPC__NA_invlist[] =
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -312383,7 +316286,13 @@ static const UV UNI_INPC__NA_invlist[] =
 	0x11D93,
 	0x11D97,
 	0x11EF3,
-	0x11EF7
+	0x11EF7,
+	0x11F00,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F42
 };
 
 static const UV UNI_INPC__OVERSTRUCK_invlist[] = {  /* for all charsets */
@@ -312403,7 +316312,7 @@ static const UV UNI_INPC__OVERSTRUCK_inv
 };
 
 static const UV UNI_INPC__RIGHT_invlist[] = {  /* for all charsets */
-	333,	/* Number of elements */
+	341,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -312466,6 +316375,8 @@ static const UV UNI_INPC__RIGHT_invlist[
 	0xCC5,
 	0xCD5,
 	0xCD7,
+	0xCF3,
+	0xCF4,
 	0xD02,
 	0xD04,
 	0xD3E,
@@ -312739,11 +316650,17 @@ static const UV UNI_INPC__RIGHT_invlist[
 	0x11D96,
 	0x11D97,
 	0x11EF6,
-	0x11EF7
+	0x11EF7,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F36,
+	0x11F41,
+	0x11F42
 };
 
 static const UV UNI_INPC__TOP_invlist[] = {  /* for all charsets */
-	391,	/* Number of elements */
+	399,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -312756,7 +316673,7 @@ static const UV UNI_INPC__TOP_invlist[] 
 	0x949,
 	0x951,
 	0x952,
-	0x953,
+	0x955,
 	0x956,
 	0x981,
 	0x982,
@@ -312835,7 +316752,7 @@ static const UV UNI_INPC__TOP_invlist[] 
 	0xEBB,
 	0xEBC,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF39,
 	0xF3A,
 	0xF72,
@@ -312954,6 +316871,8 @@ static const UV UNI_INPC__TOP_invlist[] 
 	0xA8F2,
 	0xA8FF,
 	0xA900,
+	0xA926,
+	0xA92B,
 	0xA94A,
 	0xA94B,
 	0xA94F,
@@ -313137,7 +317056,13 @@ static const UV UNI_INPC__TOP_invlist[] 
 	0x11D95,
 	0x11D96,
 	0x11EF3,
-	0x11EF4
+	0x11EF4,
+	0x11F00,
+	0x11F03,
+	0x11F36,
+	0x11F38,
+	0x11F40,
+	0x11F41
 };
 
 static const UV UNI_INPC__TOPANDBOTTOM_invlist[] = {  /* for all charsets */
@@ -313367,7 +317292,7 @@ static const UV UNI_INSC__AVAGRAHA_invli
 };
 
 static const UV UNI_INSC__BINDU_invlist[] = {  /* for all charsets */
-	113,	/* Number of elements */
+	117,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -313394,6 +317319,8 @@ static const UV UNI_INSC__BINDU_invlist[
 	0xC05,
 	0xC80,
 	0xC83,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD03,
 	0xD04,
@@ -313483,7 +317410,9 @@ static const UV UNI_INSC__BINDU_invlist[
 	0x11D40,
 	0x11D41,
 	0x11D95,
-	0x11D96
+	0x11D96,
+	0x11F00,
+	0x11F02
 };
 
 static const UV UNI_INSC__BRAHMIJOININGNUMBER_invlist[] = {  /* for all charsets */
@@ -313497,7 +317426,7 @@ static const UV UNI_INSC__BRAHMIJOININGN
 };
 
 static const UV UNI_INSC__CANTILLATIONMARK_invlist[] = {  /* for all charsets */
-	25,	/* Number of elements */
+	27,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -313507,6 +317436,8 @@ static const UV UNI_INSC__CANTILLATIONMA
 	0xA51,
 	0xA52,
 	0xAFA,
+	0xAFB,
+	0xAFC,
 	0xAFD,
 	0x1CD0,
 	0x1CD3,
@@ -313529,7 +317460,7 @@ static const UV UNI_INSC__CANTILLATIONMA
 };
 
 static const UV UNI_INSC__CONSONANT_invlist[] = {  /* for all charsets */
-	311,	/* Number of elements */
+	315,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -313784,6 +317715,8 @@ static const UV UNI_INSC__CONSONANT_invl
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11240,
 	0x11284,
 	0x11287,
 	0x11288,
@@ -313843,7 +317776,9 @@ static const UV UNI_INSC__CONSONANT_invl
 	0x11D6C,
 	0x11D8A,
 	0x11EE0,
-	0x11EF2
+	0x11EF2,
+	0x11F12,
+	0x11F34
 };
 
 static const UV UNI_INSC__CONSONANTDEAD_invlist[] = {  /* for all charsets */
@@ -314103,7 +318038,7 @@ static const UV UNI_INSC__CONSONANTPLACE
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_INSC__CONSONANTPRECEDINGREPHA_invlist[] = {  /* for all charsets */
-	7,	/* Number of elements */
+	9,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -314113,7 +318048,9 @@ static const UV UNI_INSC__CONSONANTPRECE
 	0x11941,
 	0x11942,
 	0x11D46,
-	0x11D47
+	0x11D47,
+	0x11F02,
+	0x11F03
 };
 
 static const UV UNI_INSC__CONSONANTPREFIXED_invlist[] = {  /* for all charsets */
@@ -314191,13 +318128,15 @@ static const UV UNI_INSC__CONSONANTWITHS
 };
 
 static const UV UNI_INSC__GEMINATIONMARK_invlist[] = {  /* for all charsets */
-	7,	/* Number of elements */
+	9,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
 	0x0,
 	0xA71,
 	0xA72,
+	0xAFB,
+	0xAFC,
 	0x11237,
 	0x11238,
 	0x11A98,
@@ -314205,7 +318144,7 @@ static const UV UNI_INSC__GEMINATIONMARK
 };
 
 static const UV UNI_INSC__INVISIBLESTACKER_invlist[] = {  /* for all charsets */
-	25,	/* Number of elements */
+	27,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -314233,7 +318172,9 @@ static const UV UNI_INSC__INVISIBLESTACK
 	0x11D45,
 	0x11D46,
 	0x11D97,
-	0x11D98
+	0x11D98,
+	0x11F42,
+	0x11F43
 };
 
 static const UV UNI_INSC__MODIFYINGLETTER_invlist[] = {  /* for all charsets */
@@ -314321,7 +318262,7 @@ static const UV UNI_INSC__NUKTA_invlist[
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_INSC__NUMBER_invlist[] = {  /* for ASCII/Latin1 */
-	91,	/* Number of elements */
+	93,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -314415,7 +318356,9 @@ static const UV UNI_INSC__NUMBER_invlist
 	0x11D50,
 	0x11D5A,
 	0x11DA0,
-	0x11DAA
+	0x11DAA,
+	0x11F50,
+	0x11F5A
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -314426,7 +318369,7 @@ static const UV UNI_INSC__NUMBER_invlist
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_INSC__NUMBER_invlist[] = {  /* for EBCDIC 1047 */
-	91,	/* Number of elements */
+	93,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -314520,7 +318463,9 @@ static const UV UNI_INSC__NUMBER_invlist
 	0x11D50,
 	0x11D5A,
 	0x11DA0,
-	0x11DAA
+	0x11DAA,
+	0x11F50,
+	0x11F5A
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -314531,7 +318476,7 @@ static const UV UNI_INSC__NUMBER_invlist
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_INSC__NUMBER_invlist[] = {  /* for EBCDIC 037 */
-	91,	/* Number of elements */
+	93,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -314625,7 +318570,9 @@ static const UV UNI_INSC__NUMBER_invlist
 	0x11D50,
 	0x11D5A,
 	0x11DA0,
-	0x11DAA
+	0x11DAA,
+	0x11F50,
+	0x11F5A
 };
 
 #  endif	/* EBCDIC 037 */
@@ -314643,7 +318590,7 @@ static const UV UNI_INSC__NUMBERJOINER_i
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_INSC__OTHER_invlist[] = {  /* for ASCII/Latin1 */
-	647,	/* Number of elements */
+	655,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -314869,7 +318816,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -314941,7 +318888,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0xEC8,
 	0xECC,
 	0xECD,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -315141,7 +319088,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -315293,7 +319240,15 @@ static const UV UNI_INSC__OTHER_invlist[
 	0x11DA0,
 	0x11DAA,
 	0x11EE0,
-	0x11EF7
+	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -315304,7 +319259,7 @@ static const UV UNI_INSC__OTHER_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_INSC__OTHER_invlist[] = {  /* for EBCDIC 1047 */
-	647,	/* Number of elements */
+	655,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -315530,7 +319485,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -315602,7 +319557,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0xEC8,
 	0xECC,
 	0xECD,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -315802,7 +319757,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -315954,7 +319909,15 @@ static const UV UNI_INSC__OTHER_invlist[
 	0x11DA0,
 	0x11DAA,
 	0x11EE0,
-	0x11EF7
+	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -315965,7 +319928,7 @@ static const UV UNI_INSC__OTHER_invlist[
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_INSC__OTHER_invlist[] = {  /* for EBCDIC 037 */
-	647,	/* Number of elements */
+	655,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -316191,7 +320154,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -316263,7 +320226,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0xEC8,
 	0xECC,
 	0xECD,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -316463,7 +320426,7 @@ static const UV UNI_INSC__OTHER_invlist[
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -316615,13 +320578,21 @@ static const UV UNI_INSC__OTHER_invlist[
 	0x11DA0,
 	0x11DAA,
 	0x11EE0,
-	0x11EF7
+	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A
 };
 
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_INSC__PUREKILLER_invlist[] = {  /* for all charsets */
-	45,	/* Number of elements */
+	47,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -316669,7 +320640,9 @@ static const UV UNI_INSC__PUREKILLER_inv
 	0x11A34,
 	0x11A35,
 	0x11D44,
-	0x11D45
+	0x11D45,
+	0x11F41,
+	0x11F42
 };
 
 static const UV UNI_INSC__REGISTERSHIFTER_invlist[] = {  /* for all charsets */
@@ -316685,7 +320658,7 @@ static const UV UNI_INSC__REGISTERSHIFTE
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = {  /* for ASCII/Latin1 */
-	39,	/* Number of elements */
+	41,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -316694,6 +320667,8 @@ static const UV UNI_INSC__SYLLABLEMODIFI
 	0xB4,
 	0x9FE,
 	0x9FF,
+	0xECE,
+	0xECF,
 	0xF35,
 	0xF36,
 	0xF37,
@@ -316738,7 +320713,7 @@ static const UV UNI_INSC__SYLLABLEMODIFI
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = {  /* for EBCDIC 1047 */
-	41,	/* Number of elements */
+	43,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -316749,6 +320724,8 @@ static const UV UNI_INSC__SYLLABLEMODIFI
 	0xFB,
 	0x9FE,
 	0x9FF,
+	0xECE,
+	0xECF,
 	0xF35,
 	0xF36,
 	0xF37,
@@ -316793,7 +320770,7 @@ static const UV UNI_INSC__SYLLABLEMODIFI
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_INSC__SYLLABLEMODIFIER_invlist[] = {  /* for EBCDIC 037 */
-	41,	/* Number of elements */
+	43,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -316804,6 +320781,8 @@ static const UV UNI_INSC__SYLLABLEMODIFI
 	0xFB,
 	0x9FE,
 	0x9FF,
+	0xECE,
+	0xECF,
 	0xF35,
 	0xF36,
 	0xF37,
@@ -316957,7 +320936,7 @@ static const UV UNI_INSC__VIRAMA_invlist
 };
 
 static const UV UNI_INSC__VISARGA_invlist[] = {  /* for all charsets */
-	71,	/* Number of elements */
+	73,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -317031,7 +321010,9 @@ static const UV UNI_INSC__VISARGA_invlis
 	0x11D41,
 	0x11D42,
 	0x11D96,
-	0x11D97
+	0x11D97,
+	0x11F03,
+	0x11F04
 };
 
 static const UV UNI_INSC__VOWEL_invlist[] = {  /* for all charsets */
@@ -317053,7 +321034,7 @@ static const UV UNI_INSC__VOWEL_invlist[
 };
 
 static const UV UNI_INSC__VOWELDEPENDENT_invlist[] = {  /* for all charsets */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -317256,6 +321237,8 @@ static const UV UNI_INSC__VOWELDEPENDENT
 	0x111CF,
 	0x1122C,
 	0x11234,
+	0x11241,
+	0x11242,
 	0x112E0,
 	0x112E9,
 	0x1133E,
@@ -317325,11 +321308,15 @@ static const UV UNI_INSC__VOWELDEPENDENT
 	0x11D93,
 	0x11D95,
 	0x11EF3,
-	0x11EF7
+	0x11EF7,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F41
 };
 
 static const UV UNI_INSC__VOWELINDEPENDENT_invlist[] = {  /* for all charsets */
-	177,	/* Number of elements */
+	181,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -317456,6 +321443,8 @@ static const UV UNI_INSC__VOWELINDEPENDE
 	0x11191,
 	0x11200,
 	0x11208,
+	0x11240,
+	0x11241,
 	0x11280,
 	0x11284,
 	0x112B0,
@@ -317509,7 +321498,9 @@ static const UV UNI_INSC__VOWELINDEPENDE
 	0x11D67,
 	0x11D69,
 	0x11D6A,
-	0x11D6C
+	0x11D6C,
+	0x11F04,
+	0x11F11
 };
 
 static const UV UNI_INSIDDHAM_invlist[] = {  /* for all charsets */
@@ -319561,7 +323552,7 @@ static const UV UNI_JT__R_invlist[] = { 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_JT__T_invlist[] = {  /* for ASCII/Latin1 */
-	695,	/* Number of elements */
+	713,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -319757,7 +323748,7 @@ static const UV UNI_JT__T_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -320026,6 +324017,8 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -320070,6 +324063,8 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -320192,8 +324187,18 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -320244,12 +324249,16 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -320270,7 +324279,7 @@ static const UV UNI_JT__T_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_JT__T_invlist[] = {  /* for EBCDIC 1047 */
-	695,	/* Number of elements */
+	713,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -320466,7 +324475,7 @@ static const UV UNI_JT__T_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -320735,6 +324744,8 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -320779,6 +324790,8 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -320901,8 +324914,18 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -320953,12 +324976,16 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -320979,7 +325006,7 @@ static const UV UNI_JT__T_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_JT__T_invlist[] = {  /* for EBCDIC 037 */
-	695,	/* Number of elements */
+	713,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -321175,7 +325202,7 @@ static const UV UNI_JT__T_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -321444,6 +325471,8 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -321488,6 +325517,8 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -321610,8 +325641,18 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -321662,12 +325703,16 @@ static const UV UNI_JT__T_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -321685,7 +325730,7 @@ static const UV UNI_JT__T_invlist[] = { 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_JT__U_invlist[] = {  /* for ASCII/Latin1 */
-	745,	/* Number of elements */
+	763,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -321901,7 +325946,7 @@ static const UV UNI_JT__U_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -322188,6 +326233,8 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F30,
 	0x10F45,
 	0x10F46,
@@ -322244,6 +326291,8 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -322366,8 +326415,18 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -322418,12 +326477,16 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E900,
@@ -322444,7 +326507,7 @@ static const UV UNI_JT__U_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_JT__U_invlist[] = {  /* for EBCDIC 1047 */
-	745,	/* Number of elements */
+	763,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -322660,7 +326723,7 @@ static const UV UNI_JT__U_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -322947,6 +327010,8 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F30,
 	0x10F45,
 	0x10F46,
@@ -323003,6 +327068,8 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -323125,8 +327192,18 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -323177,12 +327254,16 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E900,
@@ -323203,7 +327284,7 @@ static const UV UNI_JT__U_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_JT__U_invlist[] = {  /* for EBCDIC 037 */
-	745,	/* Number of elements */
+	763,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -323419,7 +327500,7 @@ static const UV UNI_JT__U_invlist[] = { 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -323706,6 +327787,8 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F30,
 	0x10F45,
 	0x10F46,
@@ -323762,6 +327845,8 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -323884,8 +327969,18 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
 	0x13430,
-	0x13439,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -323936,12 +328031,16 @@ static const UV UNI_JT__U_invlist[] = { 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E900,
@@ -323956,6 +328055,16 @@ static const UV UNI_JT__U_invlist[] = { 
 
 #  endif	/* EBCDIC 037 */
 
+static const UV UNI_KAKTOVIKNUMERALS_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x1D2C0,
+	0x1D2E0
+};
+
 static const UV UNI_KALI_invlist[] = {  /* for all charsets */
 	3,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -323967,7 +328076,7 @@ static const UV UNI_KALI_invlist[] = {  
 };
 
 static const UV UNI_KANA_invlist[] = {  /* for all charsets */
-	39,	/* Number of elements */
+	41,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -324008,6 +328117,8 @@ static const UV UNI_KANA_invlist[] = {  
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168
 };
@@ -324072,6 +328183,20 @@ static const UV UNI_KATAKANAEXT_invlist[
 	0x3200
 };
 
+static const UV UNI_KAWI_invlist[] = {  /* for all charsets */
+	7,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A
+};
+
 static const UV UNI_KHAR_invlist[] = {  /* for all charsets */
 	17,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -324135,7 +328260,7 @@ static const UV UNI_KHOJ_invlist[] = {  
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F
+	0x11242
 };
 
 static const UV UNI_KITS_invlist[] = {  /* for all charsets */
@@ -324185,7 +328310,7 @@ static const UV UNI_KNDA_invlist[] = {  
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0x1CD0,
 	0x1CD1,
 	0x1CD2,
@@ -324219,7 +328344,7 @@ static const UV UNI_KTHI_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_L_invlist[] = {  /* for ASCII/Latin1 */
-	1297,	/* Number of elements */
+	1319,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -325162,6 +329287,8 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -325286,6 +329413,12 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -325295,7 +329428,9 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -325340,8 +329475,12 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -325416,6 +329555,10 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -325426,6 +329569,8 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -325509,7 +329654,7 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -325519,7 +329664,9 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -325530,7 +329677,7 @@ static const UV UNI_L_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_L_invlist[] = {  /* for EBCDIC 1047 */
-	1323,	/* Number of elements */
+	1345,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -326499,6 +330646,8 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -326623,6 +330772,12 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -326632,7 +330787,9 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -326677,8 +330834,12 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -326753,6 +330914,10 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -326763,6 +330928,8 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -326846,7 +331013,7 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -326856,7 +331023,9 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -326867,7 +331036,7 @@ static const UV UNI_L_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_L_invlist[] = {  /* for EBCDIC 037 */
-	1319,	/* Number of elements */
+	1341,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -327832,6 +332001,8 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -327956,6 +332127,12 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -327965,7 +332142,9 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -328010,8 +332189,12 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -328086,6 +332269,10 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -328096,6 +332283,8 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -328179,7 +332368,7 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -328189,7 +332378,9 @@ static const UV UNI_L_invlist[] = {  /* 
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -328235,7 +332426,7 @@ static const UV UNI_LAO_invlist[] = {  /
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -328479,7 +332670,7 @@ static const UV UNI_LATINEXTG_invlist[] 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LATN_invlist[] = {  /* for ASCII/Latin1 */
-	93,	/* Number of elements */
+	95,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -328575,7 +332766,9 @@ static const UV UNI_LATN_invlist[] = {  
 	0x107B2,
 	0x107BB,
 	0x1DF00,
-	0x1DF1F
+	0x1DF1F,
+	0x1DF25,
+	0x1DF2B
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -328586,7 +332779,7 @@ static const UV UNI_LATN_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LATN_invlist[] = {  /* for EBCDIC 1047 */
-	119,	/* Number of elements */
+	121,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -328708,7 +332901,9 @@ static const UV UNI_LATN_invlist[] = {  
 	0x107B2,
 	0x107BB,
 	0x1DF00,
-	0x1DF1F
+	0x1DF1F,
+	0x1DF25,
+	0x1DF2B
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -328719,7 +332914,7 @@ static const UV UNI_LATN_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LATN_invlist[] = {  /* for EBCDIC 037 */
-	115,	/* Number of elements */
+	117,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -328837,7 +333032,9 @@ static const UV UNI_LATN_invlist[] = {  
 	0x107B2,
 	0x107BB,
 	0x1DF00,
-	0x1DF1F
+	0x1DF1F,
+	0x1DF25,
+	0x1DF2B
 };
 
 #  endif	/* EBCDIC 037 */
@@ -329553,7 +333750,7 @@ static const UV UNI_LB__AI_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__AL_invlist[] = {  /* for ASCII/Latin1 */
-	1597,	/* Number of elements */
+	1613,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -330094,8 +334291,6 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x2044,
 	0x204A,
 	0x2056,
-	0x2057,
-	0x2058,
 	0x205C,
 	0x205D,
 	0x2061,
@@ -330704,6 +334899,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1123B,
 	0x1123D,
 	0x1123E,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -330840,6 +335037,12 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x11EF3,
 	0x11EF7,
 	0x11EF9,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -330863,7 +335066,9 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1328A,
 	0x13379,
 	0x1337C,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x145CE,
 	0x145D0,
@@ -330936,6 +335141,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -330996,6 +335203,10 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1DA8C,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -331006,6 +335217,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -331164,7 +335377,7 @@ static const UV UNI_LB__AL_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__AL_invlist[] = {  /* for EBCDIC 1047 */
-	1625,	/* Number of elements */
+	1641,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -331733,8 +335946,6 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x2044,
 	0x204A,
 	0x2056,
-	0x2057,
-	0x2058,
 	0x205C,
 	0x205D,
 	0x2061,
@@ -332343,6 +336554,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1123B,
 	0x1123D,
 	0x1123E,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -332479,6 +336692,12 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x11EF3,
 	0x11EF7,
 	0x11EF9,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -332502,7 +336721,9 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1328A,
 	0x13379,
 	0x1337C,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x145CE,
 	0x145D0,
@@ -332575,6 +336796,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -332635,6 +336858,10 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1DA8C,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -332645,6 +336872,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -332803,7 +337032,7 @@ static const UV UNI_LB__AL_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__AL_invlist[] = {  /* for EBCDIC 037 */
-	1621,	/* Number of elements */
+	1637,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -333368,8 +337597,6 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x2044,
 	0x204A,
 	0x2056,
-	0x2057,
-	0x2058,
 	0x205C,
 	0x205D,
 	0x2061,
@@ -333978,6 +338205,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1123B,
 	0x1123D,
 	0x1123E,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -334114,6 +338343,12 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x11EF3,
 	0x11EF7,
 	0x11EF9,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -334137,7 +338372,9 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1328A,
 	0x13379,
 	0x1337C,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x145CE,
 	0x145D0,
@@ -334210,6 +338447,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1D242,
 	0x1D245,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -334270,6 +338509,10 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1DA8C,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -334280,6 +338523,8 @@ static const UV UNI_LB__AL_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -334447,7 +338692,7 @@ static const UV UNI_LB__B2_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__BA_invlist[] = {  /* for ASCII/Latin1 */
-	201,	/* Number of elements */
+	203,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -334634,6 +338879,8 @@ static const UV UNI_LB__BA_invlist[] = {
 	0x11AA3,
 	0x11C41,
 	0x11C46,
+	0x11F43,
+	0x11F45,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -334662,7 +338909,7 @@ static const UV UNI_LB__BA_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__BA_invlist[] = {  /* for EBCDIC 1047 */
-	201,	/* Number of elements */
+	203,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -334849,6 +339096,8 @@ static const UV UNI_LB__BA_invlist[] = {
 	0x11AA3,
 	0x11C41,
 	0x11C46,
+	0x11F43,
+	0x11F45,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -334877,7 +339126,7 @@ static const UV UNI_LB__BA_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__BA_invlist[] = {  /* for EBCDIC 037 */
-	201,	/* Number of elements */
+	203,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335064,6 +339313,8 @@ static const UV UNI_LB__BA_invlist[] = {
 	0x11AA3,
 	0x11C41,
 	0x11C46,
+	0x11F43,
+	0x11F45,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -335089,7 +339340,7 @@ static const UV UNI_LB__BA_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__BB_invlist[] = {  /* for ASCII/Latin1 */
-	49,	/* Number of elements */
+	51,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335140,6 +339391,8 @@ static const UV UNI_LB__BB_invlist[] = {
 	0x11A46,
 	0x11A9E,
 	0x11AA1,
+	0x11B00,
+	0x11B0A,
 	0x11C70,
 	0x11C71
 };
@@ -335152,7 +339405,7 @@ static const UV UNI_LB__BB_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__BB_invlist[] = {  /* for EBCDIC 1047 */
-	49,	/* Number of elements */
+	51,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335203,6 +339456,8 @@ static const UV UNI_LB__BB_invlist[] = {
 	0x11A46,
 	0x11A9E,
 	0x11AA1,
+	0x11B00,
+	0x11B0A,
 	0x11C70,
 	0x11C71
 };
@@ -335215,7 +339470,7 @@ static const UV UNI_LB__BB_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__BB_invlist[] = {  /* for EBCDIC 037 */
-	49,	/* Number of elements */
+	51,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335266,6 +339521,8 @@ static const UV UNI_LB__BB_invlist[] = {
 	0x11A46,
 	0x11A9E,
 	0x11AA1,
+	0x11B00,
+	0x11B0A,
 	0x11C70,
 	0x11C71
 };
@@ -335337,7 +339594,7 @@ static const UV UNI_LB__CB_invlist[] = {
 };
 
 static const UV UNI_LB__CJ_invlist[] = {  /* for all charsets */
-	55,	/* Number of elements */
+	59,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335392,8 +339649,12 @@ static const UV UNI_LB__CJ_invlist[] = {
 	0x3200,
 	0xFF67,
 	0xFF71,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168
 };
@@ -335401,7 +339662,7 @@ static const UV UNI_LB__CJ_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__CL_invlist[] = {  /* for ASCII/Latin1 */
-	175,	/* Number of elements */
+	179,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335578,6 +339839,10 @@ static const UV UNI_LB__CL_invlist[] = {
 	0x1337C,
 	0x13438,
 	0x13439,
+	0x1343D,
+	0x1343E,
+	0x1343F,
+	0x13440,
 	0x145CF,
 	0x145D0
 };
@@ -335590,7 +339855,7 @@ static const UV UNI_LB__CL_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__CL_invlist[] = {  /* for EBCDIC 1047 */
-	175,	/* Number of elements */
+	179,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335767,6 +340032,10 @@ static const UV UNI_LB__CL_invlist[] = {
 	0x1337C,
 	0x13438,
 	0x13439,
+	0x1343D,
+	0x1343E,
+	0x1343F,
+	0x13440,
 	0x145CF,
 	0x145D0
 };
@@ -335779,7 +340048,7 @@ static const UV UNI_LB__CL_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__CL_invlist[] = {  /* for EBCDIC 037 */
-	175,	/* Number of elements */
+	179,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -335956,6 +340225,10 @@ static const UV UNI_LB__CL_invlist[] = {
 	0x1337C,
 	0x13438,
 	0x13439,
+	0x1343D,
+	0x1343E,
+	0x1343F,
+	0x13440,
 	0x145CF,
 	0x145D0
 };
@@ -335965,7 +340238,7 @@ static const UV UNI_LB__CL_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__CM_invlist[] = {  /* for ASCII/Latin1 */
-	574,	/* Number of elements */
+	600,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -336143,6 +340416,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -336244,6 +340519,10 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x1CF7,
 	0x1CFA,
 	0x1DC0,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x1E00,
 	0x200C,
 	0x200D,
@@ -336345,6 +340624,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -336383,6 +340664,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -336475,6 +340758,18 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -336527,12 +340822,16 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -336553,7 +340852,7 @@ static const UV UNI_LB__CM_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__CM_invlist[] = {  /* for EBCDIC 1047 */
-	578,	/* Number of elements */
+	604,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -336735,6 +341034,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -336836,6 +341137,10 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x1CF7,
 	0x1CFA,
 	0x1DC0,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x1E00,
 	0x200C,
 	0x200D,
@@ -336937,6 +341242,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -336975,6 +341282,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -337067,6 +341376,18 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -337119,12 +341440,16 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -337145,7 +341470,7 @@ static const UV UNI_LB__CM_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__CM_invlist[] = {  /* for EBCDIC 037 */
-	578,	/* Number of elements */
+	604,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -337327,6 +341652,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -337428,6 +341755,10 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x1CF7,
 	0x1CFA,
 	0x1DC0,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x1E00,
 	0x200C,
 	0x200D,
@@ -337529,6 +341860,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -337567,6 +341900,8 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -337659,6 +341994,18 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -337711,12 +342058,16 @@ static const UV UNI_LB__CM_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -338028,7 +342379,7 @@ static const UV UNI_LB__EX_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__GL_invlist[] = {  /* for ASCII/Latin1 */
-	27,	/* Number of elements */
+	33,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -338049,6 +342400,10 @@ static const UV UNI_LB__GL_invlist[] = {
 	0xFDB,
 	0x180E,
 	0x180F,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x2007,
 	0x2008,
 	0x2011,
@@ -338057,6 +342412,8 @@ static const UV UNI_LB__GL_invlist[] = {
 	0x2030,
 	0x13430,
 	0x13437,
+	0x13439,
+	0x1343C,
 	0x16FE4,
 	0x16FE5
 };
@@ -338069,7 +342426,7 @@ static const UV UNI_LB__GL_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__GL_invlist[] = {  /* for EBCDIC 1047 */
-	27,	/* Number of elements */
+	33,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -338090,6 +342447,10 @@ static const UV UNI_LB__GL_invlist[] = {
 	0xFDB,
 	0x180E,
 	0x180F,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x2007,
 	0x2008,
 	0x2011,
@@ -338098,6 +342459,8 @@ static const UV UNI_LB__GL_invlist[] = {
 	0x2030,
 	0x13430,
 	0x13437,
+	0x13439,
+	0x1343C,
 	0x16FE4,
 	0x16FE5
 };
@@ -338110,7 +342473,7 @@ static const UV UNI_LB__GL_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__GL_invlist[] = {  /* for EBCDIC 037 */
-	27,	/* Number of elements */
+	33,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -338131,6 +342494,10 @@ static const UV UNI_LB__GL_invlist[] = {
 	0xFDB,
 	0x180E,
 	0x180F,
+	0x1DCD,
+	0x1DCE,
+	0x1DFC,
+	0x1DFD,
 	0x2007,
 	0x2008,
 	0x2011,
@@ -338139,6 +342506,8 @@ static const UV UNI_LB__GL_invlist[] = {
 	0x2030,
 	0x13430,
 	0x13437,
+	0x13439,
+	0x1343C,
 	0x16FE4,
 	0x16FE5
 };
@@ -339834,7 +344203,7 @@ static const UV UNI_LB__HY_invlist[] = {
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_LB__ID_invlist[] = {  /* for all charsets */
-	335,	/* Number of elements */
+	337,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -340029,6 +344398,8 @@ static const UV UNI_LB__ID_invlist[] = {
 	0xFFDD,
 	0xFFE2,
 	0xFFE5,
+	0x11F45,
+	0x11F50,
 	0x17000,
 	0x187F8,
 	0x18800,
@@ -340165,7 +344536,7 @@ static const UV UNI_LB__ID_invlist[] = {
 	0x1FAC3,
 	0x1FAC6,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FC00,
 	0x1FFFE,
@@ -340438,7 +344809,7 @@ static const UV UNI_LB__NS_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__NU_invlist[] = {  /* for ASCII/Latin1 */
-	125,	/* Number of elements */
+	129,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -340551,6 +344922,8 @@ static const UV UNI_LB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -340563,6 +344936,8 @@ static const UV UNI_LB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -340577,7 +344952,7 @@ static const UV UNI_LB__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__NU_invlist[] = {  /* for EBCDIC 1047 */
-	125,	/* Number of elements */
+	129,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -340690,6 +345065,8 @@ static const UV UNI_LB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -340702,6 +345079,8 @@ static const UV UNI_LB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -340716,7 +345095,7 @@ static const UV UNI_LB__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__NU_invlist[] = {  /* for EBCDIC 037 */
-	125,	/* Number of elements */
+	129,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -340829,6 +345208,8 @@ static const UV UNI_LB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -340841,6 +345222,8 @@ static const UV UNI_LB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -340852,7 +345235,7 @@ static const UV UNI_LB__NU_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__OP_invlist[] = {  /* for ASCII/Latin1 */
-	179,	/* Number of elements */
+	183,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -341031,6 +345414,10 @@ static const UV UNI_LB__OP_invlist[] = {
 	0x1337A,
 	0x13437,
 	0x13438,
+	0x1343C,
+	0x1343D,
+	0x1343E,
+	0x1343F,
 	0x145CE,
 	0x145CF,
 	0x1E95E,
@@ -341045,7 +345432,7 @@ static const UV UNI_LB__OP_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__OP_invlist[] = {  /* for EBCDIC 1047 */
-	177,	/* Number of elements */
+	181,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -341222,6 +345609,10 @@ static const UV UNI_LB__OP_invlist[] = {
 	0x1337A,
 	0x13437,
 	0x13438,
+	0x1343C,
+	0x1343D,
+	0x1343E,
+	0x1343F,
 	0x145CE,
 	0x145CF,
 	0x1E95E,
@@ -341236,7 +345627,7 @@ static const UV UNI_LB__OP_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__OP_invlist[] = {  /* for EBCDIC 037 */
-	177,	/* Number of elements */
+	181,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -341413,6 +345804,10 @@ static const UV UNI_LB__OP_invlist[] = {
 	0x1337A,
 	0x13437,
 	0x13438,
+	0x1343C,
+	0x1343D,
+	0x1343E,
+	0x1343F,
 	0x145CE,
 	0x145CF,
 	0x1E95E,
@@ -341424,7 +345819,7 @@ static const UV UNI_LB__OP_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LB__PO_invlist[] = {  /* for ASCII/Latin1 */
-	49,	/* Number of elements */
+	51,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -341447,6 +345842,8 @@ static const UV UNI_LB__PO_invlist[] = {
 	0xD7A,
 	0x2030,
 	0x2038,
+	0x2057,
+	0x2058,
 	0x20A7,
 	0x20A8,
 	0x20B6,
@@ -341487,7 +345884,7 @@ static const UV UNI_LB__PO_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LB__PO_invlist[] = {  /* for EBCDIC 1047 */
-	49,	/* Number of elements */
+	51,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -341510,6 +345907,8 @@ static const UV UNI_LB__PO_invlist[] = {
 	0xD7A,
 	0x2030,
 	0x2038,
+	0x2057,
+	0x2058,
 	0x20A7,
 	0x20A8,
 	0x20B6,
@@ -341550,7 +345949,7 @@ static const UV UNI_LB__PO_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LB__PO_invlist[] = {  /* for EBCDIC 037 */
-	49,	/* Number of elements */
+	51,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -341573,6 +345972,8 @@ static const UV UNI_LB__PO_invlist[] = {
 	0xD7A,
 	0x2030,
 	0x2038,
+	0x2057,
+	0x2058,
 	0x20A7,
 	0x20A8,
 	0x20B6,
@@ -341946,7 +346347,7 @@ static const UV UNI_LB__SA_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xEDC,
 	0xEE0,
 	0x1000,
@@ -342116,7 +346517,7 @@ static const UV UNI_LB__WJ_invlist[] = {
 };
 
 static const UV UNI_LB__XX_invlist[] = {  /* for all charsets */
-	1308,	/* Number of elements */
+	1328,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -342363,7 +346764,7 @@ static const UV UNI_LB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -342423,7 +346824,7 @@ static const UV UNI_LB__XX_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -342960,7 +347361,7 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -342995,7 +347396,7 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -343100,6 +347501,8 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -343142,6 +347545,12 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -343157,9 +347566,7 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -343212,8 +347619,12 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -343242,6 +347653,8 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -343296,6 +347709,8 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -343306,6 +347721,10 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -343320,6 +347739,8 @@ static const UV UNI_LB__XX_invlist[] = {
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -343581,7 +348002,7 @@ static const UV UNI_LISUSUP_invlist[] = 
 };
 
 static const UV UNI_LM_invlist[] = {  /* for all charsets */
-	139,	/* Number of elements */
+	143,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -343720,8 +348141,12 @@ static const UV UNI_LM_invlist[] = {  /*
 	0x1AFFC,
 	0x1AFFD,
 	0x1AFFF,
+	0x1E030,
+	0x1E06E,
 	0x1E137,
 	0x1E13E,
+	0x1E4EB,
+	0x1E4EC,
 	0x1E94B,
 	0x1E94C
 };
@@ -343729,7 +348154,7 @@ static const UV UNI_LM_invlist[] = {  /*
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_LO_invlist[] = {  /* for ASCII/Latin1 */
-	1003,	/* Number of elements */
+	1021,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -344462,6 +348887,8 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -344584,6 +349011,12 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -344593,7 +349026,9 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -344622,8 +349057,12 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x18D09,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -344646,6 +349085,8 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EB,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -344725,7 +349166,7 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -344735,7 +349176,9 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -344746,7 +349189,7 @@ static const UV UNI_LO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_LO_invlist[] = {  /* for EBCDIC 1047 */
-	1001,	/* Number of elements */
+	1019,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -345477,6 +349920,8 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -345599,6 +350044,12 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -345608,7 +350059,9 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -345637,8 +350090,12 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x18D09,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -345661,6 +350118,8 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EB,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -345740,7 +350199,7 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -345750,7 +350209,9 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -345761,7 +350222,7 @@ static const UV UNI_LO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_LO_invlist[] = {  /* for EBCDIC 037 */
-	1001,	/* Number of elements */
+	1019,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -346492,6 +350953,8 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -346614,6 +351077,12 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -346623,7 +351092,9 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -346652,8 +351123,12 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x18D09,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -346676,6 +351151,8 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EB,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -346755,7 +351232,7 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -346765,7 +351242,9 @@ static const UV UNI_LO_invlist[] = {  /*
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -346825,7 +351304,7 @@ static const UV UNI_LYDI_invlist[] = {  
 };
 
 static const UV UNI_M_invlist[] = {  /* for all charsets */
-	599,	/* Number of elements */
+	621,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -346990,6 +351469,8 @@ static const UV UNI_M_invlist[] = {  /* 
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -347027,7 +351508,7 @@ static const UV UNI_M_invlist[] = {  /* 
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -347230,6 +351711,8 @@ static const UV UNI_M_invlist[] = {  /* 
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -347268,6 +351751,8 @@ static const UV UNI_M_invlist[] = {  /* 
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -347362,6 +351847,18 @@ static const UV UNI_M_invlist[] = {  /* 
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -347416,12 +351913,16 @@ static const UV UNI_M_invlist[] = {  /* 
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -348411,7 +352912,7 @@ static const UV UNI_MAYANNUMERALS_invlis
 };
 
 static const UV UNI_MC_invlist[] = {  /* for all charsets */
-	355,	/* Number of elements */
+	365,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -348486,6 +352987,8 @@ static const UV UNI_MC_invlist[] = {  /*
 	0xCCC,
 	0xCD5,
 	0xCD7,
+	0xCF3,
+	0xCF4,
 	0xD02,
 	0xD04,
 	0xD3E,
@@ -348762,6 +353265,14 @@ static const UV UNI_MC_invlist[] = {  /*
 	0x11D97,
 	0x11EF5,
 	0x11EF7,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F36,
+	0x11F3E,
+	0x11F40,
+	0x11F41,
+	0x11F42,
 	0x16F51,
 	0x16F88,
 	0x16FF0,
@@ -348951,7 +353462,7 @@ static const UV UNI_MLYM_invlist[] = {  
 };
 
 static const UV UNI_MN_invlist[] = {  /* for all charsets */
-	673,	/* Number of elements */
+	693,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -349141,7 +353652,7 @@ static const UV UNI_MN_invlist[] = {  /*
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -349402,6 +353913,8 @@ static const UV UNI_MN_invlist[] = {  /*
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -349446,6 +353959,8 @@ static const UV UNI_MN_invlist[] = {  /*
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112E0,
 	0x112E3,
@@ -349568,6 +354083,18 @@ static const UV UNI_MN_invlist[] = {  /*
 	0x11D98,
 	0x11EF3,
 	0x11EF5,
+	0x11F00,
+	0x11F02,
+	0x11F36,
+	0x11F3B,
+	0x11F40,
+	0x11F41,
+	0x11F42,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -349616,12 +354143,16 @@ static const UV UNI_MN_invlist[] = {  /*
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -349789,7 +354320,7 @@ static const UV UNI_MYMR_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_N_invlist[] = {  /* for ASCII/Latin1 */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -350020,6 +354551,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x11FC0,
 	0x11FD5,
 	0x12400,
@@ -350034,6 +354567,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -350044,6 +354579,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8C7,
 	0x1E8D0,
 	0x1E950,
@@ -350072,7 +354609,7 @@ static const UV UNI_N_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_N_invlist[] = {  /* for EBCDIC 1047 */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -350303,6 +354840,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x11FC0,
 	0x11FD5,
 	0x12400,
@@ -350317,6 +354856,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -350327,6 +354868,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8C7,
 	0x1E8D0,
 	0x1E950,
@@ -350355,7 +354898,7 @@ static const UV UNI_N_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_N_invlist[] = {  /* for EBCDIC 037 */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -350586,6 +355129,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x11FC0,
 	0x11FD5,
 	0x12400,
@@ -350600,6 +355145,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -350610,6 +355157,8 @@ static const UV UNI_N_invlist[] = {  /* 
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8C7,
 	0x1E8D0,
 	0x1E950,
@@ -350632,6 +355181,16 @@ static const UV UNI_N_invlist[] = {  /* 
 
 #  endif	/* EBCDIC 037 */
 
+static const UV UNI_NAGM_invlist[] = {  /* for all charsets */
+	3,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x1E4D0,
+	0x1E4FA
+};
+
 static const UV UNI_NAND_invlist[] = {  /* for all charsets */
 	19,	/* Number of elements */
 	148565664, /* Version and data structure type */
@@ -350696,8 +355255,6 @@ static const UV UNI_NB_invlist[] = {  /*
 	0x10C80,
 	0x10D40,
 	0x10E60,
-	0x10EC0,
-	0x10F00,
 	0x11250,
 	0x11280,
 	0x11380,
@@ -350712,17 +355269,17 @@ static const UV UNI_NB_invlist[] = {  /*
 	0x118A0,
 	0x11960,
 	0x119A0,
-	0x11B00,
+	0x11B60,
 	0x11C00,
 	0x11CC0,
 	0x11D00,
 	0x11DB0,
 	0x11EE0,
-	0x11F00,
+	0x11F60,
 	0x11FB0,
 	0x12550,
 	0x12F90,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16800,
@@ -350741,16 +355298,18 @@ static const UV UNI_NB_invlist[] = {  /*
 	0x1CFD0,
 	0x1D000,
 	0x1D250,
-	0x1D2E0,
+	0x1D2C0,
 	0x1D380,
 	0x1D400,
 	0x1DAB0,
 	0x1DF00,
-	0x1E030,
+	0x1E090,
 	0x1E100,
 	0x1E150,
 	0x1E290,
 	0x1E300,
+	0x1E4D0,
+	0x1E500,
 	0x1E7E0,
 	0x1E8E0,
 	0x1E900,
@@ -350770,7 +355329,7 @@ static const UV UNI_NB_invlist[] = {  /*
 	0x2F800,
 	0x2FA20,
 	0x30000,
-	0x31350,
+	0x323B0,
 	0xE0000,
 	0xE0080,
 	0xE0100,
@@ -352572,7 +357131,7 @@ static const UV UNI_NFDQC__Y_invlist[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NFKCQC__N_invlist[] = {  /* for ASCII/Latin1 */
-	509,	/* Number of elements */
+	511,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -352997,6 +357556,8 @@ static const UV UNI_NFKCQC__N_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -353095,7 +357656,7 @@ static const UV UNI_NFKCQC__N_invlist[] 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NFKCQC__N_invlist[] = {  /* for EBCDIC 1047 */
-	515,	/* Number of elements */
+	517,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -353526,6 +358087,8 @@ static const UV UNI_NFKCQC__N_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -353624,7 +358187,7 @@ static const UV UNI_NFKCQC__N_invlist[] 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NFKCQC__N_invlist[] = {  /* for EBCDIC 037 */
-	513,	/* Number of elements */
+	515,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -354053,6 +358616,8 @@ static const UV UNI_NFKCQC__N_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -354148,7 +358713,7 @@ static const UV UNI_NFKCQC__N_invlist[] 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NFKCQC__Y_invlist[] = {  /* for ASCII/Latin1 */
-	585,	/* Number of elements */
+	587,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -354649,6 +359214,8 @@ static const UV UNI_NFKCQC__Y_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -354747,7 +359314,7 @@ static const UV UNI_NFKCQC__Y_invlist[] 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NFKCQC__Y_invlist[] = {  /* for EBCDIC 1047 */
-	591,	/* Number of elements */
+	593,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -355254,6 +359821,8 @@ static const UV UNI_NFKCQC__Y_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -355352,7 +359921,7 @@ static const UV UNI_NFKCQC__Y_invlist[] 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NFKCQC__Y_invlist[] = {  /* for EBCDIC 037 */
-	589,	/* Number of elements */
+	591,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -355857,6 +360426,8 @@ static const UV UNI_NFKCQC__Y_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -355952,7 +360523,7 @@ static const UV UNI_NFKCQC__Y_invlist[] 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NFKDQC__N_invlist[] = {  /* for ASCII/Latin1 */
-	793,	/* Number of elements */
+	795,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -356661,6 +361232,8 @@ static const UV UNI_NFKDQC__N_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -356759,7 +361332,7 @@ static const UV UNI_NFKDQC__N_invlist[] 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NFKDQC__N_invlist[] = {  /* for EBCDIC 1047 */
-	791,	/* Number of elements */
+	793,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -357466,6 +362039,8 @@ static const UV UNI_NFKDQC__N_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -357564,7 +362139,7 @@ static const UV UNI_NFKDQC__N_invlist[] 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NFKDQC__N_invlist[] = {  /* for EBCDIC 037 */
-	793,	/* Number of elements */
+	795,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -358273,6 +362848,8 @@ static const UV UNI_NFKDQC__N_invlist[] 
 	0x1D7CC,
 	0x1D7CE,
 	0x1D800,
+	0x1E030,
+	0x1E06E,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -358420,7 +362997,7 @@ static const UV UNI_NL_invlist[] = {  /*
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NO_invlist[] = {  /* for ASCII/Latin1 */
-	143,	/* Number of elements */
+	145,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -358549,6 +363126,8 @@ static const UV UNI_NO_invlist[] = {  /*
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -358577,7 +363156,7 @@ static const UV UNI_NO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NO_invlist[] = {  /* for EBCDIC 1047 */
-	145,	/* Number of elements */
+	147,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -358708,6 +363287,8 @@ static const UV UNI_NO_invlist[] = {  /*
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -358736,7 +363317,7 @@ static const UV UNI_NO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NO_invlist[] = {  /* for EBCDIC 037 */
-	145,	/* Number of elements */
+	147,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -358867,6 +363448,8 @@ static const UV UNI_NO_invlist[] = {  /*
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -359070,7 +363653,7 @@ static const UV UNI_NT__DI_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NT__NU_invlist[] = {  /* for ASCII/Latin1 */
-	303,	/* Number of elements */
+	305,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -359327,6 +363910,8 @@ static const UV UNI_NT__NU_invlist[] = {
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -359387,7 +363972,7 @@ static const UV UNI_NT__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NT__NU_invlist[] = {  /* for EBCDIC 1047 */
-	303,	/* Number of elements */
+	305,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -359644,6 +364229,8 @@ static const UV UNI_NT__NU_invlist[] = {
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -359704,7 +364291,7 @@ static const UV UNI_NT__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NT__NU_invlist[] = {  /* for EBCDIC 037 */
-	303,	/* Number of elements */
+	305,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -359961,6 +364548,8 @@ static const UV UNI_NT__NU_invlist[] = {
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -360038,7 +364627,7 @@ static const UV UNI_NV___MINUS_1_SLASH_2
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__0_invlist[] = {  /* for ASCII/Latin1 */
-	165,	/* Number of elements */
+	171,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -360175,6 +364764,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x11D51,
 	0x11DA0,
 	0x11DA1,
+	0x11F50,
+	0x11F51,
 	0x16A60,
 	0x16A61,
 	0x16AC0,
@@ -360183,6 +364774,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x16B51,
 	0x16E80,
 	0x16E81,
+	0x1D2C0,
+	0x1D2C1,
 	0x1D2E0,
 	0x1D2E1,
 	0x1D7CE,
@@ -360199,6 +364792,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x1E141,
 	0x1E2F0,
 	0x1E2F1,
+	0x1E4F0,
+	0x1E4F1,
 	0x1E950,
 	0x1E951,
 	0x1F100,
@@ -360217,7 +364812,7 @@ static const UV UNI_NV__0_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__0_invlist[] = {  /* for EBCDIC 1047 */
-	165,	/* Number of elements */
+	171,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -360354,6 +364949,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x11D51,
 	0x11DA0,
 	0x11DA1,
+	0x11F50,
+	0x11F51,
 	0x16A60,
 	0x16A61,
 	0x16AC0,
@@ -360362,6 +364959,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x16B51,
 	0x16E80,
 	0x16E81,
+	0x1D2C0,
+	0x1D2C1,
 	0x1D2E0,
 	0x1D2E1,
 	0x1D7CE,
@@ -360378,6 +364977,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x1E141,
 	0x1E2F0,
 	0x1E2F1,
+	0x1E4F0,
+	0x1E4F1,
 	0x1E950,
 	0x1E951,
 	0x1F100,
@@ -360396,7 +364997,7 @@ static const UV UNI_NV__0_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__0_invlist[] = {  /* for EBCDIC 037 */
-	165,	/* Number of elements */
+	171,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -360533,6 +365134,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x11D51,
 	0x11DA0,
 	0x11DA1,
+	0x11F50,
+	0x11F51,
 	0x16A60,
 	0x16A61,
 	0x16AC0,
@@ -360541,6 +365144,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x16B51,
 	0x16E80,
 	0x16E81,
+	0x1D2C0,
+	0x1D2C1,
 	0x1D2E0,
 	0x1D2E1,
 	0x1D7CE,
@@ -360557,6 +365162,8 @@ static const UV UNI_NV__0_invlist[] = { 
 	0x1E141,
 	0x1E2F0,
 	0x1E2F1,
+	0x1E4F0,
+	0x1E4F1,
 	0x1E950,
 	0x1E951,
 	0x1F100,
@@ -360572,7 +365179,7 @@ static const UV UNI_NV__0_invlist[] = { 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__1_invlist[] = {  /* for ASCII/Latin1 */
-	277,	/* Number of elements */
+	283,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -360791,6 +365398,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x11D52,
 	0x11DA1,
 	0x11DA2,
+	0x11F51,
+	0x11F52,
 	0x12415,
 	0x12416,
 	0x1241E,
@@ -360813,6 +365422,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x16E82,
 	0x16E94,
 	0x16E95,
+	0x1D2C1,
+	0x1D2C2,
 	0x1D2E1,
 	0x1D2E2,
 	0x1D360,
@@ -360835,6 +365446,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x1E142,
 	0x1E2F1,
 	0x1E2F2,
+	0x1E4F1,
+	0x1E4F2,
 	0x1E8C7,
 	0x1E8C8,
 	0x1E951,
@@ -360863,7 +365476,7 @@ static const UV UNI_NV__1_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__1_invlist[] = {  /* for EBCDIC 1047 */
-	277,	/* Number of elements */
+	283,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -361082,6 +365695,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x11D52,
 	0x11DA1,
 	0x11DA2,
+	0x11F51,
+	0x11F52,
 	0x12415,
 	0x12416,
 	0x1241E,
@@ -361104,6 +365719,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x16E82,
 	0x16E94,
 	0x16E95,
+	0x1D2C1,
+	0x1D2C2,
 	0x1D2E1,
 	0x1D2E2,
 	0x1D360,
@@ -361126,6 +365743,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x1E142,
 	0x1E2F1,
 	0x1E2F2,
+	0x1E4F1,
+	0x1E4F2,
 	0x1E8C7,
 	0x1E8C8,
 	0x1E951,
@@ -361154,7 +365773,7 @@ static const UV UNI_NV__1_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__1_invlist[] = {  /* for EBCDIC 037 */
-	277,	/* Number of elements */
+	283,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -361373,6 +365992,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x11D52,
 	0x11DA1,
 	0x11DA2,
+	0x11F51,
+	0x11F52,
 	0x12415,
 	0x12416,
 	0x1241E,
@@ -361395,6 +366016,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x16E82,
 	0x16E94,
 	0x16E95,
+	0x1D2C1,
+	0x1D2C2,
 	0x1D2E1,
 	0x1D2E2,
 	0x1D360,
@@ -361417,6 +366040,8 @@ static const UV UNI_NV__1_invlist[] = { 
 	0x1E142,
 	0x1E2F1,
 	0x1E2F2,
+	0x1E4F1,
+	0x1E4F2,
 	0x1E8C7,
 	0x1E8C8,
 	0x1E951,
@@ -361916,7 +366541,7 @@ static const UV UNI_NV__1_SLASH_9_invlis
 };
 
 static const UV UNI_NV__10_invlist[] = {  /* for all charsets */
-	117,	/* Number of elements */
+	119,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362027,6 +366652,8 @@ static const UV UNI_NV__10_invlist[] = {
 	0x16B5C,
 	0x16E8A,
 	0x16E8B,
+	0x1D2CA,
+	0x1D2CB,
 	0x1D2EA,
 	0x1D2EB,
 	0x1D369,
@@ -362276,7 +366903,7 @@ static const UV UNI_NV__1000000000000_in
 };
 
 static const UV UNI_NV__11_invlist[] = {  /* for all charsets */
-	17,	/* Number of elements */
+	19,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362295,6 +366922,8 @@ static const UV UNI_NV__11_invlist[] = {
 	0x24EC,
 	0x16E8B,
 	0x16E8C,
+	0x1D2CB,
+	0x1D2CC,
 	0x1D2EB,
 	0x1D2EC
 };
@@ -362320,7 +366949,7 @@ static const UV UNI_NV__11_SLASH_2_invli
 };
 
 static const UV UNI_NV__12_invlist[] = {  /* for all charsets */
-	17,	/* Number of elements */
+	19,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362339,12 +366968,14 @@ static const UV UNI_NV__12_invlist[] = {
 	0x24ED,
 	0x16E8C,
 	0x16E8D,
+	0x1D2CC,
+	0x1D2CD,
 	0x1D2EC,
 	0x1D2ED
 };
 
 static const UV UNI_NV__13_invlist[] = {  /* for all charsets */
-	13,	/* Number of elements */
+	15,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362359,6 +366990,8 @@ static const UV UNI_NV__13_invlist[] = {
 	0x24EE,
 	0x16E8D,
 	0x16E8E,
+	0x1D2CD,
+	0x1D2CE,
 	0x1D2ED,
 	0x1D2EE
 };
@@ -362374,7 +367007,7 @@ static const UV UNI_NV__13_SLASH_2_invli
 };
 
 static const UV UNI_NV__14_invlist[] = {  /* for all charsets */
-	13,	/* Number of elements */
+	15,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362389,12 +367022,14 @@ static const UV UNI_NV__14_invlist[] = {
 	0x24EF,
 	0x16E8E,
 	0x16E8F,
+	0x1D2CE,
+	0x1D2CF,
 	0x1D2EE,
 	0x1D2EF
 };
 
 static const UV UNI_NV__15_invlist[] = {  /* for all charsets */
-	13,	/* Number of elements */
+	15,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362409,6 +367044,8 @@ static const UV UNI_NV__15_invlist[] = {
 	0x24F0,
 	0x16E8F,
 	0x16E90,
+	0x1D2CF,
+	0x1D2D0,
 	0x1D2EF,
 	0x1D2F0
 };
@@ -362424,7 +367061,7 @@ static const UV UNI_NV__15_SLASH_2_invli
 };
 
 static const UV UNI_NV__16_invlist[] = {  /* for all charsets */
-	15,	/* Number of elements */
+	17,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362441,12 +367078,14 @@ static const UV UNI_NV__16_invlist[] = {
 	0x24F1,
 	0x16E90,
 	0x16E91,
+	0x1D2D0,
+	0x1D2D1,
 	0x1D2F0,
 	0x1D2F1
 };
 
 static const UV UNI_NV__17_invlist[] = {  /* for all charsets */
-	15,	/* Number of elements */
+	17,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362463,6 +367102,8 @@ static const UV UNI_NV__17_invlist[] = {
 	0x24F2,
 	0x16E91,
 	0x16E92,
+	0x1D2D1,
+	0x1D2D2,
 	0x1D2F1,
 	0x1D2F2
 };
@@ -362478,7 +367119,7 @@ static const UV UNI_NV__17_SLASH_2_invli
 };
 
 static const UV UNI_NV__18_invlist[] = {  /* for all charsets */
-	15,	/* Number of elements */
+	17,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362495,12 +367136,14 @@ static const UV UNI_NV__18_invlist[] = {
 	0x24F3,
 	0x16E92,
 	0x16E93,
+	0x1D2D2,
+	0x1D2D3,
 	0x1D2F2,
 	0x1D2F3
 };
 
 static const UV UNI_NV__19_invlist[] = {  /* for all charsets */
-	15,	/* Number of elements */
+	17,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362517,6 +367160,8 @@ static const UV UNI_NV__19_invlist[] = {
 	0x24F4,
 	0x16E93,
 	0x16E94,
+	0x1D2D3,
+	0x1D2D4,
 	0x1D2F3,
 	0x1D2F4
 };
@@ -362524,7 +367169,7 @@ static const UV UNI_NV__19_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__2_invlist[] = {  /* for ASCII/Latin1 */
-	275,	/* Number of elements */
+	281,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -362733,6 +367378,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x11D53,
 	0x11DA2,
 	0x11DA3,
+	0x11F52,
+	0x11F53,
 	0x12400,
 	0x12401,
 	0x12416,
@@ -362763,6 +367410,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x16E83,
 	0x16E95,
 	0x16E96,
+	0x1D2C2,
+	0x1D2C3,
 	0x1D2E2,
 	0x1D2E3,
 	0x1D361,
@@ -362783,6 +367432,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x1E143,
 	0x1E2F2,
 	0x1E2F3,
+	0x1E4F2,
+	0x1E4F3,
 	0x1E8C8,
 	0x1E8C9,
 	0x1E952,
@@ -362813,7 +367464,7 @@ static const UV UNI_NV__2_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__2_invlist[] = {  /* for EBCDIC 1047 */
-	275,	/* Number of elements */
+	281,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -363022,6 +367673,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x11D53,
 	0x11DA2,
 	0x11DA3,
+	0x11F52,
+	0x11F53,
 	0x12400,
 	0x12401,
 	0x12416,
@@ -363052,6 +367705,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x16E83,
 	0x16E95,
 	0x16E96,
+	0x1D2C2,
+	0x1D2C3,
 	0x1D2E2,
 	0x1D2E3,
 	0x1D361,
@@ -363072,6 +367727,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x1E143,
 	0x1E2F2,
 	0x1E2F3,
+	0x1E4F2,
+	0x1E4F3,
 	0x1E8C8,
 	0x1E8C9,
 	0x1E952,
@@ -363102,7 +367759,7 @@ static const UV UNI_NV__2_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__2_invlist[] = {  /* for EBCDIC 037 */
-	275,	/* Number of elements */
+	281,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -363311,6 +367968,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x11D53,
 	0x11DA2,
 	0x11DA3,
+	0x11F52,
+	0x11F53,
 	0x12400,
 	0x12401,
 	0x12416,
@@ -363341,6 +368000,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x16E83,
 	0x16E95,
 	0x16E96,
+	0x1D2C2,
+	0x1D2C3,
 	0x1D2E2,
 	0x1D2E3,
 	0x1D361,
@@ -363361,6 +368022,8 @@ static const UV UNI_NV__2_invlist[] = { 
 	0x1E143,
 	0x1E2F2,
 	0x1E2F3,
+	0x1E4F2,
+	0x1E4F3,
 	0x1E8C8,
 	0x1E8C9,
 	0x1E952,
@@ -363676,7 +368339,7 @@ static const UV UNI_NV__29_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__3_invlist[] = {  /* for ASCII/Latin1 */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -363873,6 +368536,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x11D54,
 	0x11DA3,
 	0x11DA4,
+	0x11F53,
+	0x11F54,
 	0x12401,
 	0x12402,
 	0x12408,
@@ -363905,6 +368570,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x16E84,
 	0x16E96,
 	0x16E97,
+	0x1D2C3,
+	0x1D2C4,
 	0x1D2E3,
 	0x1D2E4,
 	0x1D362,
@@ -363925,6 +368592,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x1E144,
 	0x1E2F3,
 	0x1E2F4,
+	0x1E4F3,
+	0x1E4F4,
 	0x1E8C9,
 	0x1E8CA,
 	0x1E953,
@@ -363959,7 +368628,7 @@ static const UV UNI_NV__3_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__3_invlist[] = {  /* for EBCDIC 1047 */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -364156,6 +368825,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x11D54,
 	0x11DA3,
 	0x11DA4,
+	0x11F53,
+	0x11F54,
 	0x12401,
 	0x12402,
 	0x12408,
@@ -364188,6 +368859,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x16E84,
 	0x16E96,
 	0x16E97,
+	0x1D2C3,
+	0x1D2C4,
 	0x1D2E3,
 	0x1D2E4,
 	0x1D362,
@@ -364208,6 +368881,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x1E144,
 	0x1E2F3,
 	0x1E2F4,
+	0x1E4F3,
+	0x1E4F4,
 	0x1E8C9,
 	0x1E8CA,
 	0x1E953,
@@ -364242,7 +368917,7 @@ static const UV UNI_NV__3_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__3_invlist[] = {  /* for EBCDIC 037 */
-	269,	/* Number of elements */
+	275,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -364439,6 +369114,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x11D54,
 	0x11DA3,
 	0x11DA4,
+	0x11F53,
+	0x11F54,
 	0x12401,
 	0x12402,
 	0x12408,
@@ -364471,6 +369148,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x16E84,
 	0x16E96,
 	0x16E97,
+	0x1D2C3,
+	0x1D2C4,
 	0x1D2E3,
 	0x1D2E4,
 	0x1D362,
@@ -364491,6 +369170,8 @@ static const UV UNI_NV__3_invlist[] = { 
 	0x1E144,
 	0x1E2F3,
 	0x1E2F4,
+	0x1E4F3,
+	0x1E4F4,
 	0x1E8C9,
 	0x1E8CA,
 	0x1E953,
@@ -364900,7 +369581,7 @@ static const UV UNI_NV__39_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__4_invlist[] = {  /* for ASCII/Latin1 */
-	255,	/* Number of elements */
+	261,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -365085,6 +369766,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x11D55,
 	0x11DA4,
 	0x11DA5,
+	0x11F54,
+	0x11F55,
 	0x12402,
 	0x12403,
 	0x12409,
@@ -365117,6 +369800,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x16B55,
 	0x16E84,
 	0x16E85,
+	0x1D2C4,
+	0x1D2C5,
 	0x1D2E4,
 	0x1D2E5,
 	0x1D363,
@@ -365137,6 +369822,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x1E145,
 	0x1E2F4,
 	0x1E2F5,
+	0x1E4F4,
+	0x1E4F5,
 	0x1E8CA,
 	0x1E8CB,
 	0x1E954,
@@ -365169,7 +369856,7 @@ static const UV UNI_NV__4_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__4_invlist[] = {  /* for EBCDIC 1047 */
-	255,	/* Number of elements */
+	261,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -365354,6 +370041,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x11D55,
 	0x11DA4,
 	0x11DA5,
+	0x11F54,
+	0x11F55,
 	0x12402,
 	0x12403,
 	0x12409,
@@ -365386,6 +370075,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x16B55,
 	0x16E84,
 	0x16E85,
+	0x1D2C4,
+	0x1D2C5,
 	0x1D2E4,
 	0x1D2E5,
 	0x1D363,
@@ -365406,6 +370097,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x1E145,
 	0x1E2F4,
 	0x1E2F5,
+	0x1E4F4,
+	0x1E4F5,
 	0x1E8CA,
 	0x1E8CB,
 	0x1E954,
@@ -365438,7 +370131,7 @@ static const UV UNI_NV__4_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__4_invlist[] = {  /* for EBCDIC 037 */
-	255,	/* Number of elements */
+	261,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -365623,6 +370316,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x11D55,
 	0x11DA4,
 	0x11DA5,
+	0x11F54,
+	0x11F55,
 	0x12402,
 	0x12403,
 	0x12409,
@@ -365655,6 +370350,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x16B55,
 	0x16E84,
 	0x16E85,
+	0x1D2C4,
+	0x1D2C5,
 	0x1D2E4,
 	0x1D2E5,
 	0x1D363,
@@ -365675,6 +370372,8 @@ static const UV UNI_NV__4_invlist[] = { 
 	0x1E145,
 	0x1E2F4,
 	0x1E2F5,
+	0x1E4F4,
+	0x1E4F5,
 	0x1E8CA,
 	0x1E8CB,
 	0x1E954,
@@ -365922,7 +370621,7 @@ static const UV UNI_NV__49_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__5_invlist[] = {  /* for ASCII/Latin1 */
-	259,	/* Number of elements */
+	265,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -366115,6 +370814,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x11D56,
 	0x11DA5,
 	0x11DA6,
+	0x11F55,
+	0x11F56,
 	0x12403,
 	0x12404,
 	0x1240A,
@@ -366145,6 +370846,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x16B56,
 	0x16E85,
 	0x16E86,
+	0x1D2C5,
+	0x1D2C6,
 	0x1D2E5,
 	0x1D2E6,
 	0x1D364,
@@ -366167,6 +370870,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x1E146,
 	0x1E2F5,
 	0x1E2F6,
+	0x1E4F5,
+	0x1E4F6,
 	0x1E8CB,
 	0x1E8CC,
 	0x1E955,
@@ -366195,7 +370900,7 @@ static const UV UNI_NV__5_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__5_invlist[] = {  /* for EBCDIC 1047 */
-	259,	/* Number of elements */
+	265,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -366388,6 +371093,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x11D56,
 	0x11DA5,
 	0x11DA6,
+	0x11F55,
+	0x11F56,
 	0x12403,
 	0x12404,
 	0x1240A,
@@ -366418,6 +371125,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x16B56,
 	0x16E85,
 	0x16E86,
+	0x1D2C5,
+	0x1D2C6,
 	0x1D2E5,
 	0x1D2E6,
 	0x1D364,
@@ -366440,6 +371149,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x1E146,
 	0x1E2F5,
 	0x1E2F6,
+	0x1E4F5,
+	0x1E4F6,
 	0x1E8CB,
 	0x1E8CC,
 	0x1E955,
@@ -366468,7 +371179,7 @@ static const UV UNI_NV__5_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__5_invlist[] = {  /* for EBCDIC 037 */
-	259,	/* Number of elements */
+	265,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -366661,6 +371372,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x11D56,
 	0x11DA5,
 	0x11DA6,
+	0x11F55,
+	0x11F56,
 	0x12403,
 	0x12404,
 	0x1240A,
@@ -366691,6 +371404,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x16B56,
 	0x16E85,
 	0x16E86,
+	0x1D2C5,
+	0x1D2C6,
 	0x1D2E5,
 	0x1D2E6,
 	0x1D364,
@@ -366713,6 +371428,8 @@ static const UV UNI_NV__5_invlist[] = { 
 	0x1E146,
 	0x1E2F5,
 	0x1E2F6,
+	0x1E4F5,
+	0x1E4F6,
 	0x1E8CB,
 	0x1E8CC,
 	0x1E955,
@@ -366930,7 +371647,7 @@ static const UV UNI_NV__500000_invlist[]
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__6_invlist[] = {  /* for ASCII/Latin1 */
-	229,	/* Number of elements */
+	235,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -367103,6 +371820,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x11D57,
 	0x11DA6,
 	0x11DA7,
+	0x11F56,
+	0x11F57,
 	0x12404,
 	0x12405,
 	0x1240B,
@@ -367127,6 +371846,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x16B57,
 	0x16E86,
 	0x16E87,
+	0x1D2C6,
+	0x1D2C7,
 	0x1D2E6,
 	0x1D2E7,
 	0x1D365,
@@ -367145,6 +371866,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x1E147,
 	0x1E2F6,
 	0x1E2F7,
+	0x1E4F6,
+	0x1E4F7,
 	0x1E8CC,
 	0x1E8CD,
 	0x1E956,
@@ -367173,7 +371896,7 @@ static const UV UNI_NV__6_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__6_invlist[] = {  /* for EBCDIC 1047 */
-	229,	/* Number of elements */
+	235,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -367346,6 +372069,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x11D57,
 	0x11DA6,
 	0x11DA7,
+	0x11F56,
+	0x11F57,
 	0x12404,
 	0x12405,
 	0x1240B,
@@ -367370,6 +372095,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x16B57,
 	0x16E86,
 	0x16E87,
+	0x1D2C6,
+	0x1D2C7,
 	0x1D2E6,
 	0x1D2E7,
 	0x1D365,
@@ -367388,6 +372115,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x1E147,
 	0x1E2F6,
 	0x1E2F7,
+	0x1E4F6,
+	0x1E4F7,
 	0x1E8CC,
 	0x1E8CD,
 	0x1E956,
@@ -367416,7 +372145,7 @@ static const UV UNI_NV__6_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__6_invlist[] = {  /* for EBCDIC 037 */
-	229,	/* Number of elements */
+	235,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -367589,6 +372318,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x11D57,
 	0x11DA6,
 	0x11DA7,
+	0x11F56,
+	0x11F57,
 	0x12404,
 	0x12405,
 	0x1240B,
@@ -367613,6 +372344,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x16B57,
 	0x16E86,
 	0x16E87,
+	0x1D2C6,
+	0x1D2C7,
 	0x1D2E6,
 	0x1D2E7,
 	0x1D365,
@@ -367631,6 +372364,8 @@ static const UV UNI_NV__6_invlist[] = { 
 	0x1E147,
 	0x1E2F6,
 	0x1E2F7,
+	0x1E4F6,
+	0x1E4F7,
 	0x1E8CC,
 	0x1E8CD,
 	0x1E956,
@@ -367754,7 +372489,7 @@ static const UV UNI_NV__600000_invlist[]
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__7_invlist[] = {  /* for ASCII/Latin1 */
-	223,	/* Number of elements */
+	229,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -367923,6 +372658,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x11D58,
 	0x11DA7,
 	0x11DA8,
+	0x11F57,
+	0x11F58,
 	0x12405,
 	0x12406,
 	0x1240C,
@@ -367945,6 +372682,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x16B58,
 	0x16E87,
 	0x16E88,
+	0x1D2C7,
+	0x1D2C8,
 	0x1D2E7,
 	0x1D2E8,
 	0x1D366,
@@ -367963,6 +372702,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x1E148,
 	0x1E2F7,
 	0x1E2F8,
+	0x1E4F7,
+	0x1E4F8,
 	0x1E8CD,
 	0x1E8CE,
 	0x1E957,
@@ -367991,7 +372732,7 @@ static const UV UNI_NV__7_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__7_invlist[] = {  /* for EBCDIC 1047 */
-	223,	/* Number of elements */
+	229,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -368160,6 +372901,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x11D58,
 	0x11DA7,
 	0x11DA8,
+	0x11F57,
+	0x11F58,
 	0x12405,
 	0x12406,
 	0x1240C,
@@ -368182,6 +372925,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x16B58,
 	0x16E87,
 	0x16E88,
+	0x1D2C7,
+	0x1D2C8,
 	0x1D2E7,
 	0x1D2E8,
 	0x1D366,
@@ -368200,6 +372945,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x1E148,
 	0x1E2F7,
 	0x1E2F8,
+	0x1E4F7,
+	0x1E4F8,
 	0x1E8CD,
 	0x1E8CE,
 	0x1E957,
@@ -368228,7 +372975,7 @@ static const UV UNI_NV__7_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__7_invlist[] = {  /* for EBCDIC 037 */
-	223,	/* Number of elements */
+	229,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -368397,6 +373144,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x11D58,
 	0x11DA7,
 	0x11DA8,
+	0x11F57,
+	0x11F58,
 	0x12405,
 	0x12406,
 	0x1240C,
@@ -368419,6 +373168,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x16B58,
 	0x16E87,
 	0x16E88,
+	0x1D2C7,
+	0x1D2C8,
 	0x1D2E7,
 	0x1D2E8,
 	0x1D366,
@@ -368437,6 +373188,8 @@ static const UV UNI_NV__7_invlist[] = { 
 	0x1E148,
 	0x1E2F7,
 	0x1E2F8,
+	0x1E4F7,
+	0x1E4F8,
 	0x1E8CD,
 	0x1E8CE,
 	0x1E957,
@@ -368588,7 +373341,7 @@ static const UV UNI_NV__700000_invlist[]
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__8_invlist[] = {  /* for ASCII/Latin1 */
-	217,	/* Number of elements */
+	223,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -368753,6 +373506,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x11D59,
 	0x11DA8,
 	0x11DA9,
+	0x11F58,
+	0x11F59,
 	0x12406,
 	0x12407,
 	0x1240D,
@@ -368775,6 +373530,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x16B59,
 	0x16E88,
 	0x16E89,
+	0x1D2C8,
+	0x1D2C9,
 	0x1D2E8,
 	0x1D2E9,
 	0x1D367,
@@ -368793,6 +373550,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x1E149,
 	0x1E2F8,
 	0x1E2F9,
+	0x1E4F8,
+	0x1E4F9,
 	0x1E8CE,
 	0x1E8CF,
 	0x1E958,
@@ -368819,7 +373578,7 @@ static const UV UNI_NV__8_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__8_invlist[] = {  /* for EBCDIC 1047 */
-	217,	/* Number of elements */
+	223,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -368984,6 +373743,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x11D59,
 	0x11DA8,
 	0x11DA9,
+	0x11F58,
+	0x11F59,
 	0x12406,
 	0x12407,
 	0x1240D,
@@ -369006,6 +373767,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x16B59,
 	0x16E88,
 	0x16E89,
+	0x1D2C8,
+	0x1D2C9,
 	0x1D2E8,
 	0x1D2E9,
 	0x1D367,
@@ -369024,6 +373787,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x1E149,
 	0x1E2F8,
 	0x1E2F9,
+	0x1E4F8,
+	0x1E4F9,
 	0x1E8CE,
 	0x1E8CF,
 	0x1E958,
@@ -369050,7 +373815,7 @@ static const UV UNI_NV__8_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__8_invlist[] = {  /* for EBCDIC 037 */
-	217,	/* Number of elements */
+	223,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -369215,6 +373980,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x11D59,
 	0x11DA8,
 	0x11DA9,
+	0x11F58,
+	0x11F59,
 	0x12406,
 	0x12407,
 	0x1240D,
@@ -369237,6 +374004,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x16B59,
 	0x16E88,
 	0x16E89,
+	0x1D2C8,
+	0x1D2C9,
 	0x1D2E8,
 	0x1D2E9,
 	0x1D367,
@@ -369255,6 +374024,8 @@ static const UV UNI_NV__8_invlist[] = { 
 	0x1E149,
 	0x1E2F8,
 	0x1E2F9,
+	0x1E4F8,
+	0x1E4F9,
 	0x1E8CE,
 	0x1E8CF,
 	0x1E958,
@@ -369372,7 +374143,7 @@ static const UV UNI_NV__800000_invlist[]
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__9_invlist[] = {  /* for ASCII/Latin1 */
-	221,	/* Number of elements */
+	227,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -369539,6 +374310,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x11D5A,
 	0x11DA9,
 	0x11DAA,
+	0x11F59,
+	0x11F5A,
 	0x12407,
 	0x12408,
 	0x1240E,
@@ -369561,6 +374334,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x16B5A,
 	0x16E89,
 	0x16E8A,
+	0x1D2C9,
+	0x1D2CA,
 	0x1D2E9,
 	0x1D2EA,
 	0x1D368,
@@ -369579,6 +374354,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x1E14A,
 	0x1E2F9,
 	0x1E2FA,
+	0x1E4F9,
+	0x1E4FA,
 	0x1E8CF,
 	0x1E8D0,
 	0x1E959,
@@ -369607,7 +374384,7 @@ static const UV UNI_NV__9_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__9_invlist[] = {  /* for EBCDIC 1047 */
-	221,	/* Number of elements */
+	227,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -369774,6 +374551,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x11D5A,
 	0x11DA9,
 	0x11DAA,
+	0x11F59,
+	0x11F5A,
 	0x12407,
 	0x12408,
 	0x1240E,
@@ -369796,6 +374575,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x16B5A,
 	0x16E89,
 	0x16E8A,
+	0x1D2C9,
+	0x1D2CA,
 	0x1D2E9,
 	0x1D2EA,
 	0x1D368,
@@ -369814,6 +374595,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x1E14A,
 	0x1E2F9,
 	0x1E2FA,
+	0x1E4F9,
+	0x1E4FA,
 	0x1E8CF,
 	0x1E8D0,
 	0x1E959,
@@ -369842,7 +374625,7 @@ static const UV UNI_NV__9_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__9_invlist[] = {  /* for EBCDIC 037 */
-	221,	/* Number of elements */
+	227,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -370009,6 +374792,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x11D5A,
 	0x11DA9,
 	0x11DAA,
+	0x11F59,
+	0x11F5A,
 	0x12407,
 	0x12408,
 	0x1240E,
@@ -370031,6 +374816,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x16B5A,
 	0x16E89,
 	0x16E8A,
+	0x1D2C9,
+	0x1D2CA,
 	0x1D2E9,
 	0x1D2EA,
 	0x1D368,
@@ -370049,6 +374836,8 @@ static const UV UNI_NV__9_invlist[] = { 
 	0x1E14A,
 	0x1E2F9,
 	0x1E2FA,
+	0x1E4F9,
+	0x1E4FA,
 	0x1E8CF,
 	0x1E8D0,
 	0x1E959,
@@ -370180,7 +374969,7 @@ static const UV UNI_NV__900000_invlist[]
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_NV__NAN_invlist[] = {  /* for ASCII/Latin1 */
-	413,	/* Number of elements */
+	419,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -370523,6 +375312,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x11FC0,
 	0x11FD5,
 	0x12400,
@@ -370537,6 +375328,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -370547,6 +375340,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8C7,
 	0x1E8D0,
 	0x1E950,
@@ -370607,7 +375402,7 @@ static const UV UNI_NV__NAN_invlist[] = 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_NV__NAN_invlist[] = {  /* for EBCDIC 1047 */
-	413,	/* Number of elements */
+	419,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -370950,6 +375745,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x11FC0,
 	0x11FD5,
 	0x12400,
@@ -370964,6 +375761,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -370974,6 +375773,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8C7,
 	0x1E8D0,
 	0x1E950,
@@ -371034,7 +375835,7 @@ static const UV UNI_NV__NAN_invlist[] = 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_NV__NAN_invlist[] = {  /* for EBCDIC 037 */
-	413,	/* Number of elements */
+	419,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -371377,6 +376178,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x11FC0,
 	0x11FD5,
 	0x12400,
@@ -371391,6 +376194,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x16B62,
 	0x16E80,
 	0x16E97,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D360,
@@ -371401,6 +376206,8 @@ static const UV UNI_NV__NAN_invlist[] = 
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E8C7,
 	0x1E8D0,
 	0x1E950,
@@ -371600,7 +376407,7 @@ static const UV UNI_OUGR_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_P_invlist[] = {  /* for ASCII/Latin1 */
-	379,	/* Number of elements */
+	383,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -371953,12 +376760,16 @@ static const UV UNI_P_invlist[] = {  /* 
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -371993,7 +376804,7 @@ static const UV UNI_P_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_P_invlist[] = {  /* for EBCDIC 1047 */
-	387,	/* Number of elements */
+	391,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -372354,12 +377165,16 @@ static const UV UNI_P_invlist[] = {  /* 
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -372394,7 +377209,7 @@ static const UV UNI_P_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_P_invlist[] = {  /* for EBCDIC 037 */
-	385,	/* Number of elements */
+	389,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -372753,12 +377568,16 @@ static const UV UNI_P_invlist[] = {  /* 
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -374096,7 +378915,7 @@ static const UV UNI_PLAYINGCARDS_invlist
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_PO_invlist[] = {  /* for ASCII/Latin1 */
-	371,	/* Number of elements */
+	375,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -374441,12 +379260,16 @@ static const UV UNI_PO_invlist[] = {  /*
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -374481,7 +379304,7 @@ static const UV UNI_PO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_PO_invlist[] = {  /* for EBCDIC 1047 */
-	375,	/* Number of elements */
+	379,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -374830,12 +379653,16 @@ static const UV UNI_PO_invlist[] = {  /*
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -374870,7 +379697,7 @@ static const UV UNI_PO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_PO_invlist[] = {  /* for EBCDIC 037 */
-	375,	/* Number of elements */
+	379,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -375219,12 +380046,16 @@ static const UV UNI_PO_invlist[] = {  /*
 	0x11A9D,
 	0x11A9E,
 	0x11AA3,
+	0x11B00,
+	0x11B0A,
 	0x11C41,
 	0x11C46,
 	0x11C70,
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F50,
 	0x11FFF,
 	0x12000,
 	0x12470,
@@ -376038,7 +380869,7 @@ static const UV UNI_RUNR_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_S_invlist[] = {  /* for ASCII/Latin1 */
-	469,	/* Number of elements */
+	465,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -376461,14 +381292,14 @@ static const UV UNI_S_invlist[] = {  /* 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -376490,23 +381321,19 @@ static const UV UNI_S_invlist[] = {  /* 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -376521,7 +381348,7 @@ static const UV UNI_S_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_S_invlist[] = {  /* for EBCDIC 1047 */
-	475,	/* Number of elements */
+	471,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -376950,14 +381777,14 @@ static const UV UNI_S_invlist[] = {  /* 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -376979,23 +381806,19 @@ static const UV UNI_S_invlist[] = {  /* 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -377010,7 +381833,7 @@ static const UV UNI_S_invlist[] = {  /* 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_S_invlist[] = {  /* for EBCDIC 037 */
-	473,	/* Number of elements */
+	469,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -377437,14 +382260,14 @@ static const UV UNI_S_invlist[] = {  /* 
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -377466,23 +382289,19 @@ static const UV UNI_S_invlist[] = {  /* 
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -377906,7 +382725,7 @@ static const UV UNI_SB__CL_invlist[] = {
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_SB__EX_invlist[] = {  /* for all charsets */
-	605,	/* Number of elements */
+	627,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -378071,6 +382890,8 @@ static const UV UNI_SB__EX_invlist[] = {
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -378108,7 +382929,7 @@ static const UV UNI_SB__EX_invlist[] = {
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -378315,6 +383136,8 @@ static const UV UNI_SB__EX_invlist[] = {
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -378353,6 +383176,8 @@ static const UV UNI_SB__EX_invlist[] = {
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -378447,6 +383272,18 @@ static const UV UNI_SB__EX_invlist[] = {
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -378501,12 +383338,16 @@ static const UV UNI_SB__EX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -378560,7 +383401,7 @@ static const UV UNI_SB__FO_invlist[] = {
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -378617,7 +383458,7 @@ static const UV UNI_SB__FO_invlist[] = {
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -378674,7 +383515,7 @@ static const UV UNI_SB__FO_invlist[] = {
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -378686,7 +383527,7 @@ static const UV UNI_SB__FO_invlist[] = {
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_SB__LE_invlist[] = {  /* for all charsets */
-	1073,	/* Number of elements */
+	1087,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -378995,7 +383836,7 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x108F,
 	0x10D0,
 	0x10FB,
-	0x10FC,
+	0x10FD,
 	0x1249,
 	0x124A,
 	0x124E,
@@ -379187,8 +384028,6 @@ static const UV UNI_SB__LE_invlist[] = {
 	0xA789,
 	0xA78F,
 	0xA790,
-	0xA7F2,
-	0xA7F5,
 	0xA7F7,
 	0xA7F8,
 	0xA7FB,
@@ -379263,8 +384102,6 @@ static const UV UNI_SB__LE_invlist[] = {
 	0xAB27,
 	0xAB28,
 	0xAB2F,
-	0xAB69,
-	0xAB6A,
 	0xABC0,
 	0xABE3,
 	0xAC00,
@@ -379469,6 +384306,8 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -379591,6 +384430,12 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -379602,7 +384447,9 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -379645,8 +384492,12 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -379671,6 +384522,8 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -379752,7 +384605,7 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -379762,13 +384615,15 @@ static const UV UNI_SB__LE_invlist[] = {
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SB__LO_invlist[] = {  /* for ASCII/Latin1 */
-	1331,	/* Number of elements */
+	1339,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -380321,6 +385176,8 @@ static const UV UNI_SB__LO_invlist[] = {
 	0x530,
 	0x560,
 	0x589,
+	0x10FC,
+	0x10FD,
 	0x13F8,
 	0x13FE,
 	0x1C80,
@@ -380999,6 +385856,8 @@ static const UV UNI_SB__LO_invlist[] = {
 	0xA7D8,
 	0xA7D9,
 	0xA7DA,
+	0xA7F2,
+	0xA7F5,
 	0xA7F6,
 	0xA7F7,
 	0xA7F8,
@@ -381006,7 +385865,7 @@ static const UV UNI_SB__LO_invlist[] = {
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -381101,6 +385960,10 @@ static const UV UNI_SB__LO_invlist[] = {
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E922,
 	0x1E944
 };
@@ -381113,7 +385976,7 @@ static const UV UNI_SB__LO_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SB__LO_invlist[] = {  /* for EBCDIC 1047 */
-	1339,	/* Number of elements */
+	1347,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -381674,6 +386537,8 @@ static const UV UNI_SB__LO_invlist[] = {
 	0x530,
 	0x560,
 	0x589,
+	0x10FC,
+	0x10FD,
 	0x13F8,
 	0x13FE,
 	0x1C80,
@@ -382352,6 +387217,8 @@ static const UV UNI_SB__LO_invlist[] = {
 	0xA7D8,
 	0xA7D9,
 	0xA7DA,
+	0xA7F2,
+	0xA7F5,
 	0xA7F6,
 	0xA7F7,
 	0xA7F8,
@@ -382359,7 +387226,7 @@ static const UV UNI_SB__LO_invlist[] = {
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -382454,6 +387321,10 @@ static const UV UNI_SB__LO_invlist[] = {
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E922,
 	0x1E944
 };
@@ -382466,7 +387337,7 @@ static const UV UNI_SB__LO_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SB__LO_invlist[] = {  /* for EBCDIC 037 */
-	1339,	/* Number of elements */
+	1347,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -383027,6 +387898,8 @@ static const UV UNI_SB__LO_invlist[] = {
 	0x530,
 	0x560,
 	0x589,
+	0x10FC,
+	0x10FD,
 	0x13F8,
 	0x13FE,
 	0x1C80,
@@ -383705,6 +388578,8 @@ static const UV UNI_SB__LO_invlist[] = {
 	0xA7D8,
 	0xA7D9,
 	0xA7DA,
+	0xA7F2,
+	0xA7F5,
 	0xA7F6,
 	0xA7F7,
 	0xA7F8,
@@ -383712,7 +388587,7 @@ static const UV UNI_SB__LO_invlist[] = {
 	0xAB30,
 	0xAB5B,
 	0xAB5C,
-	0xAB69,
+	0xAB6A,
 	0xAB70,
 	0xABC0,
 	0xFB00,
@@ -383807,6 +388682,10 @@ static const UV UNI_SB__LO_invlist[] = {
 	0x1DF0A,
 	0x1DF0B,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E922,
 	0x1E944
 };
@@ -383816,7 +388695,7 @@ static const UV UNI_SB__LO_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SB__NU_invlist[] = {  /* for ASCII/Latin1 */
-	127,	/* Number of elements */
+	131,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -383931,6 +388810,8 @@ static const UV UNI_SB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -383943,6 +388824,8 @@ static const UV UNI_SB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -383957,7 +388840,7 @@ static const UV UNI_SB__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SB__NU_invlist[] = {  /* for EBCDIC 1047 */
-	127,	/* Number of elements */
+	131,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -384072,6 +388955,8 @@ static const UV UNI_SB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -384084,6 +388969,8 @@ static const UV UNI_SB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -384098,7 +388985,7 @@ static const UV UNI_SB__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SB__NU_invlist[] = {  /* for EBCDIC 037 */
-	127,	/* Number of elements */
+	131,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -384213,6 +389100,8 @@ static const UV UNI_SB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -384225,6 +389114,8 @@ static const UV UNI_SB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -384542,7 +389433,7 @@ static const UV UNI_SB__SP_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SB__ST_invlist[] = {  /* for ASCII/Latin1 */
-	153,	/* Number of elements */
+	155,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -384685,6 +389576,8 @@ static const UV UNI_SB__ST_invlist[] = {
 	0x11C43,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -384709,7 +389602,7 @@ static const UV UNI_SB__ST_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SB__ST_invlist[] = {  /* for EBCDIC 1047 */
-	153,	/* Number of elements */
+	155,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -384852,6 +389745,8 @@ static const UV UNI_SB__ST_invlist[] = {
 	0x11C43,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -384876,7 +389771,7 @@ static const UV UNI_SB__ST_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SB__ST_invlist[] = {  /* for EBCDIC 037 */
-	153,	/* Number of elements */
+	155,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -385019,6 +389914,8 @@ static const UV UNI_SB__ST_invlist[] = {
 	0x11C43,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -389026,7 +393923,7 @@ static const UV UNI_SB__UP_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SB__XX_invlist[] = {  /* for ASCII/Latin1 */
-	1661,	/* Number of elements */
+	1681,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -389374,7 +394271,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -389440,7 +394337,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -390157,7 +395054,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -390210,7 +395107,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1123B,
 	0x1123D,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -390379,6 +395276,14 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -390390,9 +395295,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -390449,8 +395352,12 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -390557,6 +395464,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -390567,6 +395476,10 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -390579,6 +395492,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -390674,7 +395589,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -390685,6 +395600,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -390701,7 +395618,7 @@ static const UV UNI_SB__XX_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SB__XX_invlist[] = {  /* for EBCDIC 1047 */
-	1681,	/* Number of elements */
+	1701,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -391069,7 +395986,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -391135,7 +396052,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -391852,7 +396769,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -391905,7 +396822,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1123B,
 	0x1123D,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -392074,6 +396991,14 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -392085,9 +397010,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -392144,8 +397067,12 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -392252,6 +397179,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -392262,6 +397191,10 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -392274,6 +397207,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -392369,7 +397304,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -392380,6 +397315,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -392396,7 +397333,7 @@ static const UV UNI_SB__XX_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SB__XX_invlist[] = {  /* for EBCDIC 037 */
-	1679,	/* Number of elements */
+	1699,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -392762,7 +397699,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -392828,7 +397765,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -393545,7 +398482,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -393598,7 +398535,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1123B,
 	0x1123D,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -393767,6 +398704,14 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F45,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -393778,9 +398723,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -393837,8 +398780,12 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -393945,6 +398892,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -393955,6 +398904,10 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -393967,6 +398920,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -394062,7 +399017,7 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -394073,6 +399028,8 @@ static const UV UNI_SB__XX_invlist[] = {
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -394274,7 +399231,7 @@ static const UV UNI_SC__ADLM_invlist[] =
 };
 
 static const UV UNI_SC__ARAB_invlist[] = {  /* for all charsets */
-	115,	/* Number of elements */
+	117,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -394325,6 +399282,8 @@ static const UV UNI_SC__ARAB_invlist[] =
 	0xFEFD,
 	0x10E60,
 	0x10E7F,
+	0x10EFD,
+	0x10F00,
 	0x1EE00,
 	0x1EE04,
 	0x1EE05,
@@ -394524,7 +399483,7 @@ static const UV UNI_SC__CPRT_invlist[] =
 };
 
 static const UV UNI_SC__CYRL_invlist[] = {  /* for all charsets */
-	17,	/* Number of elements */
+	21,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -394544,11 +399503,15 @@ static const UV UNI_SC__CYRL_invlist[] =
 	0xA640,
 	0xA6A0,
 	0xFE2E,
-	0xFE30
+	0xFE30,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090
 };
 
 static const UV UNI_SC__DEVA_invlist[] = {  /* for all charsets */
-	9,	/* Number of elements */
+	11,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -394560,7 +399523,9 @@ static const UV UNI_SC__DEVA_invlist[] =
 	0x966,
 	0x980,
 	0xA8E0,
-	0xA900
+	0xA900,
+	0x11B00,
+	0x11B0A
 };
 
 static const UV UNI_SC__DOGR_invlist[] = {  /* for all charsets */
@@ -394876,7 +399841,7 @@ static const UV UNI_SC__GURU_invlist[] =
 };
 
 static const UV UNI_SC__HAN_invlist[] = {  /* for all charsets */
-	41,	/* Number of elements */
+	43,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -394910,7 +399875,7 @@ static const UV UNI_SC__HAN_invlist[] = 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -394920,7 +399885,9 @@ static const UV UNI_SC__HAN_invlist[] = 
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 static const UV UNI_SC__HANG_invlist[] = {  /* for all charsets */
@@ -394970,7 +399937,7 @@ static const UV UNI_SC__HANO_invlist[] =
 };
 
 static const UV UNI_SC__HIRA_invlist[] = {  /* for all charsets */
-	11,	/* Number of elements */
+	13,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -394981,6 +399948,8 @@ static const UV UNI_SC__HIRA_invlist[] =
 	0x30A0,
 	0x1B001,
 	0x1B120,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
 	0x1F200,
@@ -395014,7 +399983,7 @@ static const UV UNI_SC__KALI_invlist[] =
 };
 
 static const UV UNI_SC__KANA_invlist[] = {  /* for all charsets */
-	27,	/* Number of elements */
+	29,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -395043,6 +400012,8 @@ static const UV UNI_SC__KANA_invlist[] =
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168
 };
@@ -395056,7 +400027,7 @@ static const UV UNI_SC__KHOJ_invlist[] =
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F
+	0x11242
 };
 
 static const UV UNI_SC__KNDA_invlist[] = {  /* for all charsets */
@@ -395090,7 +400061,7 @@ static const UV UNI_SC__KNDA_invlist[] =
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3
+	0xCF4
 };
 
 static const UV UNI_SC__KTHI_invlist[] = {  /* for all charsets */
@@ -395108,7 +400079,7 @@ static const UV UNI_SC__KTHI_invlist[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SC__LATN_invlist[] = {  /* for ASCII/Latin1 */
-	77,	/* Number of elements */
+	79,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -395188,7 +400159,9 @@ static const UV UNI_SC__LATN_invlist[] =
 	0x107B2,
 	0x107BB,
 	0x1DF00,
-	0x1DF1F
+	0x1DF1F,
+	0x1DF25,
+	0x1DF2B
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -395199,7 +400172,7 @@ static const UV UNI_SC__LATN_invlist[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SC__LATN_invlist[] = {  /* for EBCDIC 1047 */
-	103,	/* Number of elements */
+	105,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -395305,7 +400278,9 @@ static const UV UNI_SC__LATN_invlist[] =
 	0x107B2,
 	0x107BB,
 	0x1DF00,
-	0x1DF1F
+	0x1DF1F,
+	0x1DF25,
+	0x1DF2B
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -395316,7 +400291,7 @@ static const UV UNI_SC__LATN_invlist[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SC__LATN_invlist[] = {  /* for EBCDIC 037 */
-	99,	/* Number of elements */
+	101,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -395418,7 +400393,9 @@ static const UV UNI_SC__LATN_invlist[] =
 	0x107B2,
 	0x107BB,
 	0x1DF00,
-	0x1DF1F
+	0x1DF1F,
+	0x1DF25,
+	0x1DF2B
 };
 
 #  endif	/* EBCDIC 037 */
@@ -396052,7 +401029,7 @@ static const UV UNI_SC__YI_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SC__ZYYY_invlist[] = {  /* for ASCII/Latin1 */
-	348,	/* Number of elements */
+	346,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -396268,6 +401245,8 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1D1AA,
 	0x1D1AE,
 	0x1D1EB,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -396348,14 +401327,14 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -396377,23 +401356,19 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -396414,7 +401389,7 @@ static const UV UNI_SC__ZYYY_invlist[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SC__ZYYY_invlist[] = {  /* for EBCDIC 1047 */
-	374,	/* Number of elements */
+	372,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -396656,6 +401631,8 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1D1AA,
 	0x1D1AE,
 	0x1D1EB,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -396736,14 +401713,14 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -396765,23 +401742,19 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -396802,7 +401775,7 @@ static const UV UNI_SC__ZYYY_invlist[] =
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SC__ZYYY_invlist[] = {  /* for EBCDIC 037 */
-	370,	/* Number of elements */
+	368,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -397040,6 +402013,8 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1D1AA,
 	0x1D1AE,
 	0x1D1EB,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -397120,14 +402095,14 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -397149,23 +402124,19 @@ static const UV UNI_SC__ZYYY_invlist[] =
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -397183,7 +402154,7 @@ static const UV UNI_SC__ZYYY_invlist[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SD_invlist[] = {  /* for ASCII/Latin1 */
-	65,	/* Number of elements */
+	69,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -397251,7 +402222,11 @@ static const UV UNI_SD_invlist[] = {  /*
 	0x1D692,
 	0x1D694,
 	0x1DF1A,
-	0x1DF1B
+	0x1DF1B,
+	0x1E04C,
+	0x1E04E,
+	0x1E068,
+	0x1E069
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -397262,7 +402237,7 @@ static const UV UNI_SD_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SD_invlist[] = {  /* for EBCDIC 1047 */
-	67,	/* Number of elements */
+	71,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -397332,7 +402307,11 @@ static const UV UNI_SD_invlist[] = {  /*
 	0x1D692,
 	0x1D694,
 	0x1DF1A,
-	0x1DF1B
+	0x1DF1B,
+	0x1E04C,
+	0x1E04E,
+	0x1E068,
+	0x1E069
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -397343,7 +402322,7 @@ static const UV UNI_SD_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SD_invlist[] = {  /* for EBCDIC 037 */
-	67,	/* Number of elements */
+	71,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -397413,7 +402392,11 @@ static const UV UNI_SD_invlist[] = {  /*
 	0x1D692,
 	0x1D694,
 	0x1DF1A,
-	0x1DF1B
+	0x1DF1B,
+	0x1E04C,
+	0x1E04E,
+	0x1E068,
+	0x1E069
 };
 
 #  endif	/* EBCDIC 037 */
@@ -398221,7 +403204,7 @@ static const UV UNI_SMALLKANAEXT_invlist
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_SO_invlist[] = {  /* for ASCII/Latin1 */
-	373,	/* Number of elements */
+	369,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -398548,14 +403531,14 @@ static const UV UNI_SO_invlist[] = {  /*
 	0x1F3FB,
 	0x1F400,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -398577,23 +403560,19 @@ static const UV UNI_SO_invlist[] = {  /*
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -398608,7 +403587,7 @@ static const UV UNI_SO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_SO_invlist[] = {  /* for EBCDIC 1047 */
-	373,	/* Number of elements */
+	369,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -398935,14 +403914,14 @@ static const UV UNI_SO_invlist[] = {  /*
 	0x1F3FB,
 	0x1F400,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -398964,23 +403943,19 @@ static const UV UNI_SO_invlist[] = {  /*
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -398995,7 +403970,7 @@ static const UV UNI_SO_invlist[] = {  /*
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_SO_invlist[] = {  /* for EBCDIC 037 */
-	373,	/* Number of elements */
+	369,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -399322,14 +404297,14 @@ static const UV UNI_SO_invlist[] = {  /*
 	0x1F3FB,
 	0x1F400,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -399351,23 +404326,19 @@ static const UV UNI_SO_invlist[] = {  /*
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -399433,7 +404404,7 @@ static const UV UNI_SPECIALS_invlist[] =
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_STERM_invlist[] = {  /* for ASCII/Latin1 */
-	159,	/* Number of elements */
+	161,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -399582,6 +404553,8 @@ static const UV UNI_STERM_invlist[] = { 
 	0x11C43,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -399606,7 +404579,7 @@ static const UV UNI_STERM_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_STERM_invlist[] = {  /* for EBCDIC 1047 */
-	159,	/* Number of elements */
+	161,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -399755,6 +404728,8 @@ static const UV UNI_STERM_invlist[] = { 
 	0x11C43,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -399779,7 +404754,7 @@ static const UV UNI_STERM_invlist[] = { 
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_STERM_invlist[] = {  /* for EBCDIC 037 */
-	159,	/* Number of elements */
+	161,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -399928,6 +404903,8 @@ static const UV UNI_STERM_invlist[] = { 
 	0x11C43,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x16A6E,
 	0x16A70,
 	0x16AF5,
@@ -400387,7 +405364,7 @@ static const UV UNI_TELU_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_TERM_invlist[] = {  /* for ASCII/Latin1 */
-	215,	/* Number of elements */
+	217,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -400590,6 +405567,8 @@ static const UV UNI_TERM_invlist[] = {  
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x12470,
 	0x12475,
 	0x16A6E,
@@ -400616,7 +405595,7 @@ static const UV UNI_TERM_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_TERM_invlist[] = {  /* for EBCDIC 1047 */
-	217,	/* Number of elements */
+	219,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -400821,6 +405800,8 @@ static const UV UNI_TERM_invlist[] = {  
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x12470,
 	0x12475,
 	0x16A6E,
@@ -400847,7 +405828,7 @@ static const UV UNI_TERM_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_TERM_invlist[] = {  /* for EBCDIC 037 */
-	217,	/* Number of elements */
+	219,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -401052,6 +406033,8 @@ static const UV UNI_TERM_invlist[] = {  
 	0x11C72,
 	0x11EF7,
 	0x11EF9,
+	0x11F43,
+	0x11F45,
 	0x12470,
 	0x12475,
 	0x16A6E,
@@ -401251,7 +406234,7 @@ static const UV UNI_UGAR_invlist[] = {  
 };
 
 static const UV UNI_UIDEO_invlist[] = {  /* for all charsets */
-	31,	/* Number of elements */
+	33,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -401277,7 +406260,7 @@ static const UV UNI_UIDEO_invlist[] = { 
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -401285,7 +406268,9 @@ static const UV UNI_UIDEO_invlist[] = { 
 	0x2CEB0,
 	0x2EBE1,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 static const UV UNI_VAI_invlist[] = {  /* for all charsets */
@@ -401501,7 +406486,7 @@ static const UV UNI_VO__R_invlist[] = { 
 	0x11A00,
 	0x11AC0,
 	0x13000,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16FE0,
@@ -401692,7 +406677,7 @@ static const UV UNI_VO__R_invlist[] = { 
 	0x11A00,
 	0x11AC0,
 	0x13000,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16FE0,
@@ -401883,7 +406868,7 @@ static const UV UNI_VO__R_invlist[] = { 
 	0x11A00,
 	0x11AC0,
 	0x13000,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16FE0,
@@ -402261,7 +407246,7 @@ static const UV UNI_VO__U_invlist[] = { 
 	0x11A00,
 	0x11AC0,
 	0x13000,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16FE0,
@@ -402530,7 +407515,7 @@ static const UV UNI_VO__U_invlist[] = { 
 	0x11A00,
 	0x11AC0,
 	0x13000,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16FE0,
@@ -402799,7 +407784,7 @@ static const UV UNI_VO__U_invlist[] = { 
 	0x11A00,
 	0x11AC0,
 	0x13000,
-	0x13440,
+	0x13460,
 	0x14400,
 	0x14680,
 	0x16FE0,
@@ -403010,7 +407995,7 @@ static const UV UNI_WB__EX_invlist[] = {
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_WB__EXTEND_invlist[] = {  /* for all charsets */
-	607,	/* Number of elements */
+	629,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -403175,6 +408160,8 @@ static const UV UNI_WB__EXTEND_invlist[]
 	0xCD7,
 	0xCE2,
 	0xCE4,
+	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD04,
 	0xD3B,
@@ -403212,7 +408199,7 @@ static const UV UNI_WB__EXTEND_invlist[]
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xF18,
 	0xF1A,
 	0xF35,
@@ -403419,6 +408406,8 @@ static const UV UNI_WB__EXTEND_invlist[]
 	0x10D28,
 	0x10EAB,
 	0x10EAD,
+	0x10EFD,
+	0x10F00,
 	0x10F46,
 	0x10F51,
 	0x10F82,
@@ -403457,6 +408446,8 @@ static const UV UNI_WB__EXTEND_invlist[]
 	0x11238,
 	0x1123E,
 	0x1123F,
+	0x11241,
+	0x11242,
 	0x112DF,
 	0x112EB,
 	0x11300,
@@ -403551,6 +408542,18 @@ static const UV UNI_WB__EXTEND_invlist[]
 	0x11D98,
 	0x11EF3,
 	0x11EF7,
+	0x11F00,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F34,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x13440,
+	0x13441,
+	0x13447,
+	0x13456,
 	0x16AF0,
 	0x16AF5,
 	0x16B30,
@@ -403605,12 +408608,16 @@ static const UV UNI_WB__EXTEND_invlist[]
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E08F,
+	0x1E090,
 	0x1E130,
 	0x1E137,
 	0x1E2AE,
 	0x1E2AF,
 	0x1E2EC,
 	0x1E2F0,
+	0x1E4EC,
+	0x1E4F0,
 	0x1E8D0,
 	0x1E8D7,
 	0x1E944,
@@ -403664,7 +408671,7 @@ static const UV UNI_WB__FO_invlist[] = {
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -403719,7 +408726,7 @@ static const UV UNI_WB__FO_invlist[] = {
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -403774,7 +408781,7 @@ static const UV UNI_WB__FO_invlist[] = {
 	0x110CD,
 	0x110CE,
 	0x13430,
-	0x13439,
+	0x13440,
 	0x1BCA0,
 	0x1BCA4,
 	0x1D173,
@@ -403786,7 +408793,7 @@ static const UV UNI_WB__FO_invlist[] = {
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_WB__KA_invlist[] = {  /* for all charsets */
-	29,	/* Number of elements */
+	31,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -403817,6 +408824,8 @@ static const UV UNI_WB__KA_invlist[] = {
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168
 };
@@ -403824,7 +408833,7 @@ static const UV UNI_WB__KA_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_WB__LE_invlist[] = {  /* for ASCII/Latin1 */
-	1141,	/* Number of elements */
+	1157,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -404641,6 +409650,8 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -404761,6 +409772,12 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -404772,7 +409789,9 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -404873,6 +409892,10 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -404883,6 +409906,8 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -404979,7 +410004,7 @@ static const UV UNI_WB__LE_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_WB__LE_invlist[] = {  /* for EBCDIC 1047 */
-	1167,	/* Number of elements */
+	1183,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -405822,6 +410847,8 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -405942,6 +410969,12 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -405953,7 +410986,9 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -406054,6 +411089,10 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -406064,6 +411103,8 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -406160,7 +411201,7 @@ static const UV UNI_WB__LE_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_WB__LE_invlist[] = {  /* for EBCDIC 037 */
-	1163,	/* Number of elements */
+	1179,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -406999,6 +412040,8 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -407119,6 +412162,12 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -407130,7 +412179,9 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -407231,6 +412282,10 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -407241,6 +412296,8 @@ static const UV UNI_WB__LE_invlist[] = {
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -407694,7 +412751,7 @@ static const UV UNI_WB__NL_invlist[] = {
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_WB__NU_invlist[] = {  /* for ASCII/Latin1 */
-	127,	/* Number of elements */
+	131,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -407809,6 +412866,8 @@ static const UV UNI_WB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -407821,6 +412880,8 @@ static const UV UNI_WB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -407835,7 +412896,7 @@ static const UV UNI_WB__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_WB__NU_invlist[] = {  /* for EBCDIC 1047 */
-	127,	/* Number of elements */
+	131,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -407950,6 +413011,8 @@ static const UV UNI_WB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -407962,6 +413025,8 @@ static const UV UNI_WB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -407976,7 +413041,7 @@ static const UV UNI_WB__NU_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_WB__NU_invlist[] = {  /* for EBCDIC 037 */
-	127,	/* Number of elements */
+	131,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -408091,6 +413156,8 @@ static const UV UNI_WB__NU_invlist[] = {
 	0x11D5A,
 	0x11DA0,
 	0x11DAA,
+	0x11F50,
+	0x11F5A,
 	0x16A60,
 	0x16A6A,
 	0x16AC0,
@@ -408103,6 +413170,8 @@ static const UV UNI_WB__NU_invlist[] = {
 	0x1E14A,
 	0x1E2F0,
 	0x1E2FA,
+	0x1E4F0,
+	0x1E4FA,
 	0x1E950,
 	0x1E95A,
 	0x1FBF0,
@@ -408240,7 +413309,7 @@ static const UV UNI_WB__WSEGSPACE_invlis
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_WB__XX_invlist[] = {  /* for ASCII/Latin1 */
-	1541,	/* Number of elements */
+	1557,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -408576,7 +413645,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -408632,7 +413701,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF00,
@@ -409287,7 +414356,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -409338,7 +414407,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -409495,6 +414564,14 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -409506,9 +414583,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -409559,6 +414634,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1BC00,
@@ -409663,6 +414740,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -409673,6 +414752,10 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -409685,6 +414768,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -409795,7 +414880,7 @@ static const UV UNI_WB__XX_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_WB__XX_invlist[] = {  /* for EBCDIC 1047 */
-	1565,	/* Number of elements */
+	1581,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -410155,7 +415240,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -410211,7 +415296,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF00,
@@ -410866,7 +415951,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -410917,7 +416002,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -411074,6 +416159,14 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -411085,9 +416178,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -411138,6 +416229,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1BC00,
@@ -411242,6 +416335,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -411252,6 +416347,10 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -411264,6 +416363,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -411374,7 +416475,7 @@ static const UV UNI_WB__XX_invlist[] = {
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_WB__XX_invlist[] = {  /* for EBCDIC 037 */
-	1561,	/* Number of elements */
+	1577,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -411730,7 +416831,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -411786,7 +416887,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0xEB4,
 	0xEBD,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xF00,
@@ -412441,7 +417542,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -412492,7 +417593,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -412649,6 +417750,14 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -412660,9 +417769,7 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -412713,6 +417820,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1B001,
 	0x1B120,
 	0x1B123,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1BC00,
@@ -412817,6 +417926,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -412827,6 +417938,10 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -412839,6 +417954,8 @@ static const UV UNI_WB__XX_invlist[] = {
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -412958,7 +418075,7 @@ static const UV UNI_WCHO_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XIDC_invlist[] = {  /* for ASCII/Latin1 */
-	1527,	/* Number of elements */
+	1551,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -413280,7 +418397,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -413346,7 +418463,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -413985,7 +419102,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -414032,7 +419149,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -414193,6 +419310,14 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -414204,7 +419329,9 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -414259,8 +419386,12 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -414367,6 +419498,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -414377,6 +419510,10 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -414389,6 +419526,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -414476,7 +419615,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -414487,6 +419626,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -414499,7 +419640,7 @@ static const UV UNI_XIDC_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XIDC_invlist[] = {  /* for EBCDIC 1047 */
-	1551,	/* Number of elements */
+	1575,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -414845,7 +419986,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -414911,7 +420052,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -415550,7 +420691,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -415597,7 +420738,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -415758,6 +420899,14 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -415769,7 +420918,9 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -415824,8 +420975,12 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -415932,6 +421087,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -415942,6 +421099,10 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -415954,6 +421115,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -416041,7 +421204,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -416052,6 +421215,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -416064,7 +421229,7 @@ static const UV UNI_XIDC_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XIDC_invlist[] = {  /* for EBCDIC 037 */
-	1547,	/* Number of elements */
+	1571,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -416406,7 +421571,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -416472,7 +421637,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -417111,7 +422276,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x10EAD,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F1D,
 	0x10F27,
 	0x10F28,
@@ -417158,7 +422323,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x11213,
 	0x11238,
 	0x1123E,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -417319,6 +422484,14 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x11DAA,
 	0x11EE0,
 	0x11EF7,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F43,
+	0x11F50,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -417330,7 +422503,9 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13440,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -417385,8 +422560,12 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -417493,6 +422672,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -417503,6 +422684,10 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -417515,6 +422700,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x1E2AF,
 	0x1E2C0,
 	0x1E2FA,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -417602,7 +422789,7 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -417613,6 +422800,8 @@ static const UV UNI_XIDC_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0100,
 	0xE01F0
 };
@@ -417622,7 +422811,7 @@ static const UV UNI_XIDC_invlist[] = {  
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_XIDS_invlist[] = {  /* for ASCII/Latin1 */
-	1311,	/* Number of elements */
+	1333,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -418577,6 +423766,8 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -418701,6 +423892,12 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -418712,7 +423909,9 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -418757,8 +423956,12 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -418833,6 +424036,10 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -418843,6 +424050,8 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -418926,7 +424135,7 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -418936,7 +424145,9 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* ASCII/Latin1 */
@@ -418947,7 +424158,7 @@ static const UV UNI_XIDS_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_XIDS_invlist[] = {  /* for EBCDIC 1047 */
-	1337,	/* Number of elements */
+	1359,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -419928,6 +425139,8 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -420052,6 +425265,12 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -420063,7 +425282,9 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -420108,8 +425329,12 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -420184,6 +425409,10 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -420194,6 +425423,8 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -420277,7 +425508,7 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -420287,7 +425518,9 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 1047 */
@@ -420298,7 +425531,7 @@ static const UV UNI_XIDS_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_XIDS_invlist[] = {  /* for EBCDIC 037 */
-	1333,	/* Number of elements */
+	1355,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -421275,6 +426508,8 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x11212,
 	0x11213,
 	0x1122C,
+	0x1123F,
+	0x11241,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -421399,6 +426634,12 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x11D99,
 	0x11EE0,
 	0x11EF3,
+	0x11F02,
+	0x11F03,
+	0x11F04,
+	0x11F11,
+	0x11F12,
+	0x11F34,
 	0x11FB0,
 	0x11FB1,
 	0x12000,
@@ -421410,7 +426651,9 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x12F90,
 	0x12FF1,
 	0x13000,
-	0x1342F,
+	0x13430,
+	0x13441,
+	0x13447,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -421455,8 +426698,12 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -421531,6 +426778,10 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1D7CC,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
+	0x1E030,
+	0x1E06E,
 	0x1E100,
 	0x1E12D,
 	0x1E137,
@@ -421541,6 +426792,8 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x1E2AE,
 	0x1E2C0,
 	0x1E2EC,
+	0x1E4D0,
+	0x1E4EC,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -421624,7 +426877,7 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -421634,7 +426887,9 @@ static const UV UNI_XIDS_invlist[] = {  
 	0x2F800,
 	0x2FA1E,
 	0x30000,
-	0x3134B
+	0x3134B,
+	0x31350,
+	0x323B0
 };
 
 #  endif	/* EBCDIC 037 */
@@ -421950,7 +427205,7 @@ static const UV UNI_ZS_invlist[] = {  /*
 #  if 'A' == 65 /* ASCII/Latin1 */
 
 static const UV UNI_ZYYY_invlist[] = {  /* for ASCII/Latin1 */
-	296,	/* Number of elements */
+	294,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -422116,6 +427371,8 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1D1AA,
 	0x1D1AE,
 	0x1D1EB,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -422194,14 +427451,14 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -422223,23 +427480,19 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -422260,7 +427513,7 @@ static const UV UNI_ZYYY_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
 
 static const UV UNI_ZYYY_invlist[] = {  /* for EBCDIC 1047 */
-	322,	/* Number of elements */
+	320,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -422452,6 +427705,8 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1D1AA,
 	0x1D1AE,
 	0x1D1EB,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -422530,14 +427785,14 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -422559,23 +427814,19 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -422596,7 +427847,7 @@ static const UV UNI_ZYYY_invlist[] = {  
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 
 static const UV UNI_ZYYY_invlist[] = {  /* for EBCDIC 037 */
-	318,	/* Number of elements */
+	316,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	0,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -422784,6 +428035,8 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1D1AA,
 	0x1D1AE,
 	0x1D1EB,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -422862,14 +428115,14 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -422891,23 +428144,19 @@ static const UV UNI_ZYYY_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -422923,7 +428172,7 @@ static const UV UNI_ZYYY_invlist[] = {  
 #  endif	/* EBCDIC 037 */
 
 static const UV UNI_ZZZZ_invlist[] = {  /* for all charsets */
-	1392,	/* Number of elements */
+	1410,	/* Number of elements */
 	148565664, /* Version and data structure type */
 	1,	/* 0 if the list starts at 0;
 		   1 if it starts at the element beyond 0 */
@@ -423170,7 +428419,7 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0xCE6,
 	0xCF0,
 	0xCF1,
-	0xCF3,
+	0xCF4,
 	0xD00,
 	0xD0D,
 	0xD0E,
@@ -423230,7 +428479,7 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0xEC6,
 	0xEC7,
 	0xEC8,
-	0xECE,
+	0xECF,
 	0xED0,
 	0xEDA,
 	0xEDC,
@@ -423771,7 +429020,7 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x10EAE,
 	0x10EB0,
 	0x10EB2,
-	0x10F00,
+	0x10EFD,
 	0x10F28,
 	0x10F30,
 	0x10F5A,
@@ -423806,7 +429055,7 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x11200,
 	0x11212,
 	0x11213,
-	0x1123F,
+	0x11242,
 	0x11280,
 	0x11287,
 	0x11288,
@@ -423911,6 +429160,8 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x11AA3,
 	0x11AB0,
 	0x11AF9,
+	0x11B00,
+	0x11B0A,
 	0x11C00,
 	0x11C09,
 	0x11C0A,
@@ -423953,6 +429204,12 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x11DAA,
 	0x11EE0,
 	0x11EF9,
+	0x11F00,
+	0x11F11,
+	0x11F12,
+	0x11F3B,
+	0x11F3E,
+	0x11F5A,
 	0x11FB0,
 	0x11FB1,
 	0x11FC0,
@@ -423968,9 +429225,7 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x12F90,
 	0x12FF3,
 	0x13000,
-	0x1342F,
-	0x13430,
-	0x13439,
+	0x13456,
 	0x14400,
 	0x14647,
 	0x16800,
@@ -424023,8 +429278,12 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1AFFF,
 	0x1B000,
 	0x1B123,
+	0x1B132,
+	0x1B133,
 	0x1B150,
 	0x1B153,
+	0x1B155,
+	0x1B156,
 	0x1B164,
 	0x1B168,
 	0x1B170,
@@ -424053,6 +429312,8 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1D1EB,
 	0x1D200,
 	0x1D246,
+	0x1D2C0,
+	0x1D2D4,
 	0x1D2E0,
 	0x1D2F4,
 	0x1D300,
@@ -424107,6 +429368,8 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1DAB0,
 	0x1DF00,
 	0x1DF1F,
+	0x1DF25,
+	0x1DF2B,
 	0x1E000,
 	0x1E007,
 	0x1E008,
@@ -424117,6 +429380,10 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1E025,
 	0x1E026,
 	0x1E02B,
+	0x1E030,
+	0x1E06E,
+	0x1E08F,
+	0x1E090,
 	0x1E100,
 	0x1E12D,
 	0x1E130,
@@ -424131,6 +429398,8 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1E2FA,
 	0x1E2FF,
 	0x1E300,
+	0x1E4D0,
+	0x1E4FA,
 	0x1E7E0,
 	0x1E7E7,
 	0x1E7E8,
@@ -424247,14 +429516,14 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1F266,
 	0x1F300,
 	0x1F6D8,
-	0x1F6DD,
+	0x1F6DC,
 	0x1F6ED,
 	0x1F6F0,
 	0x1F6FD,
 	0x1F700,
-	0x1F774,
-	0x1F780,
-	0x1F7D9,
+	0x1F777,
+	0x1F77B,
+	0x1F7DA,
 	0x1F7E0,
 	0x1F7EC,
 	0x1F7F0,
@@ -424276,23 +429545,19 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x1FA60,
 	0x1FA6E,
 	0x1FA70,
-	0x1FA75,
-	0x1FA78,
 	0x1FA7D,
 	0x1FA80,
-	0x1FA87,
+	0x1FA89,
 	0x1FA90,
-	0x1FAAD,
-	0x1FAB0,
-	0x1FABB,
-	0x1FAC0,
+	0x1FABE,
+	0x1FABF,
 	0x1FAC6,
-	0x1FAD0,
-	0x1FADA,
+	0x1FACE,
+	0x1FADC,
 	0x1FAE0,
-	0x1FAE8,
+	0x1FAE9,
 	0x1FAF0,
-	0x1FAF7,
+	0x1FAF9,
 	0x1FB00,
 	0x1FB93,
 	0x1FB94,
@@ -424302,7 +429567,7 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x20000,
 	0x2A6E0,
 	0x2A700,
-	0x2B739,
+	0x2B73A,
 	0x2B740,
 	0x2B81E,
 	0x2B820,
@@ -424313,6 +429578,8 @@ static const UV UNI_ZZZZ_invlist[] = {  
 	0x2FA1E,
 	0x30000,
 	0x3134B,
+	0x31350,
+	0x323B0,
 	0xE0001,
 	0xE0002,
 	0xE0020,
@@ -424478,6 +429745,7 @@ typedef enum {
 	UNI_AGE__12_DOT_1,
 	UNI_AGE__13,
 	UNI_AGE__14,
+	UNI_AGE__15,
 	UNI_AGE__2,
 	UNI_AGE__2_DOT_1,
 	UNI_AGE__3,
@@ -424507,6 +429775,7 @@ typedef enum {
 	UNI_ARAB,
 	UNI_ARABICEXTA,
 	UNI_ARABICEXTB,
+	UNI_ARABICEXTC,
 	UNI_ARABICMATH,
 	UNI_ARABICPFA,
 	UNI_ARABICPFB,
@@ -424643,6 +429912,7 @@ typedef enum {
 	UNI_CJKEXTE,
 	UNI_CJKEXTF,
 	UNI_CJKEXTG,
+	UNI_CJKEXTH,
 	UNI_CJKRADICALSSUP,
 	UNI_CJKSTROKES,
 	UNI_CJKSYMBOLS,
@@ -424668,12 +429938,14 @@ typedef enum {
 	UNI_CYRILLICEXTA,
 	UNI_CYRILLICEXTB,
 	UNI_CYRILLICEXTC,
+	UNI_CYRILLICEXTD,
 	UNI_CYRILLICSUP,
 	UNI_CYRL,
 	UNI_DASH,
 	UNI_DEP,
 	UNI_DEVA,
 	UNI_DEVANAGARIEXT,
+	UNI_DEVANAGARIEXTA,
 	UNI_DI,
 	UNI_DIA,
 	UNI_DIACRITICALS,
@@ -424850,6 +430122,7 @@ typedef enum {
 	UNI_INKAITHI,
 	UNI_INKANNADA,
 	UNI_INKATAKANA,
+	UNI_INKAWI,
 	UNI_INKHAROSHTHI,
 	UNI_INKHITANSMALLSCRIPT,
 	UNI_INKHMER,
@@ -424880,6 +430153,7 @@ typedef enum {
 	UNI_INMULTANI,
 	UNI_INMYANMAR,
 	UNI_INNABATAEAN,
+	UNI_INNAGMUNDARI,
 	UNI_INNANDINAGARI,
 	UNI_INNEWA,
 	UNI_INNEWTAILUE,
@@ -424995,6 +430269,7 @@ typedef enum {
 	UNI_IN__12_DOT_1,
 	UNI_IN__13,
 	UNI_IN__14,
+	UNI_IN__15,
 	UNI_IN__1_DOT_1,
 	UNI_IN__2,
 	UNI_IN__2_DOT_1,
@@ -425131,6 +430406,7 @@ typedef enum {
 	UNI_JT__R,
 	UNI_JT__T,
 	UNI_JT__U,
+	UNI_KAKTOVIKNUMERALS,
 	UNI_KALI,
 	UNI_KANA,
 	UNI_KANAEXTA,
@@ -425139,6 +430415,7 @@ typedef enum {
 	UNI_KANBUN,
 	UNI_KANGXI,
 	UNI_KATAKANAEXT,
+	UNI_KAWI,
 	UNI_KHAR,
 	UNI_KHMERSYMBOLS,
 	UNI_KHMR,
@@ -425252,6 +430529,7 @@ typedef enum {
 	UNI_MYANMAREXTB,
 	UNI_MYMR,
 	UNI_N,
+	UNI_NAGM,
 	UNI_NAND,
 	UNI_NARB,
 	UNI_NB,
@@ -425711,6 +430989,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_AGE__12_DOT_1_invlist,
 	UNI_AGE__13_invlist,
 	UNI_AGE__14_invlist,
+	UNI_AGE__15_invlist,
 	UNI_AGE__2_invlist,
 	UNI_AGE__2_DOT_1_invlist,
 	UNI_AGE__3_invlist,
@@ -425740,6 +431019,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_ARAB_invlist,
 	UNI_ARABICEXTA_invlist,
 	UNI_ARABICEXTB_invlist,
+	UNI_ARABICEXTC_invlist,
 	UNI_ARABICMATH_invlist,
 	UNI_ARABICPFA_invlist,
 	UNI_ARABICPFB_invlist,
@@ -425876,6 +431156,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_CJKEXTE_invlist,
 	UNI_CJKEXTF_invlist,
 	UNI_CJKEXTG_invlist,
+	UNI_CJKEXTH_invlist,
 	UNI_CJKRADICALSSUP_invlist,
 	UNI_CJKSTROKES_invlist,
 	UNI_CJKSYMBOLS_invlist,
@@ -425901,12 +431182,14 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_CYRILLICEXTA_invlist,
 	UNI_CYRILLICEXTB_invlist,
 	UNI_CYRILLICEXTC_invlist,
+	UNI_CYRILLICEXTD_invlist,
 	UNI_CYRILLICSUP_invlist,
 	UNI_CYRL_invlist,
 	UNI_DASH_invlist,
 	UNI_DEP_invlist,
 	UNI_DEVA_invlist,
 	UNI_DEVANAGARIEXT_invlist,
+	UNI_DEVANAGARIEXTA_invlist,
 	UNI_DI_invlist,
 	UNI_DIA_invlist,
 	UNI_DIACRITICALS_invlist,
@@ -426083,6 +431366,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_INKAITHI_invlist,
 	UNI_INKANNADA_invlist,
 	UNI_INKATAKANA_invlist,
+	UNI_INKAWI_invlist,
 	UNI_INKHAROSHTHI_invlist,
 	UNI_INKHITANSMALLSCRIPT_invlist,
 	UNI_INKHMER_invlist,
@@ -426113,6 +431397,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_INMULTANI_invlist,
 	UNI_INMYANMAR_invlist,
 	UNI_INNABATAEAN_invlist,
+	UNI_INNAGMUNDARI_invlist,
 	UNI_INNANDINAGARI_invlist,
 	UNI_INNEWA_invlist,
 	UNI_INNEWTAILUE_invlist,
@@ -426228,6 +431513,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_IN__12_DOT_1_invlist,
 	UNI_IN__13_invlist,
 	UNI_IN__14_invlist,
+	UNI_IN__15_invlist,
 	UNI_IN__1_DOT_1_invlist,
 	UNI_IN__2_invlist,
 	UNI_IN__2_DOT_1_invlist,
@@ -426364,6 +431650,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_JT__R_invlist,
 	UNI_JT__T_invlist,
 	UNI_JT__U_invlist,
+	UNI_KAKTOVIKNUMERALS_invlist,
 	UNI_KALI_invlist,
 	UNI_KANA_invlist,
 	UNI_KANAEXTA_invlist,
@@ -426372,6 +431659,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_KANBUN_invlist,
 	UNI_KANGXI_invlist,
 	UNI_KATAKANAEXT_invlist,
+	UNI_KAWI_invlist,
 	UNI_KHAR_invlist,
 	UNI_KHMERSYMBOLS_invlist,
 	UNI_KHMR_invlist,
@@ -426485,6 +431773,7 @@ static const UV * const uni_prop_ptrs[] 
 	UNI_MYANMAREXTB_invlist,
 	UNI_MYMR_invlist,
 	UNI_N_invlist,
+	UNI_NAGM_invlist,
 	UNI_NAND_invlist,
 	UNI_NARB_invlist,
 	UNI_NB_invlist,
@@ -427004,6 +432293,7 @@ static const char * const UNI_age_values
 	"12.1",
 	"13.0",
 	"14.0",
+	"15.0",
 	"NA",
 	"na",
 	"Unassigned",
@@ -427014,6 +432304,7 @@ static const char * const UNI_age_values
 	"V12_1",
 	"V13_0",
 	"V14_0",
+	"V15_0",
 	"V1_1",
 	"V2_0",
 	"V2_1",
@@ -427039,6 +432330,7 @@ static const char * const UNI_age_values
 	"v121",
 	"v130",
 	"v140",
+	"v150",
 	"v20",
 	"v21",
 	"v30",
@@ -427213,12 +432505,17 @@ static const char * const UNI_blk_values
 	"arabicexta",
 	"Arabic_Ext_B",
 	"arabicextb",
+	"Arabic_Ext_C",
+	"arabicextc",
 	"Arabic Extended-A",
 	"Arabic_Extended_A",
 	"arabicextendeda",
 	"Arabic Extended-B",
 	"Arabic_Extended_B",
 	"arabicextendedb",
+	"Arabic Extended-C",
+	"Arabic_Extended_C",
+	"arabicextendedc",
 	"Arabic_Math",
 	"arabicmath",
 	"Arabic Mathematical Alphabetic Symbols",
@@ -427356,6 +432653,8 @@ static const char * const UNI_blk_values
 	"cjkextf",
 	"CJK_Ext_G",
 	"cjkextg",
+	"CJK_Ext_H",
+	"cjkexth",
 	"CJK_Radicals_Sup",
 	"cjkradicalssup",
 	"CJK Radicals Supplement",
@@ -427393,6 +432692,9 @@ static const char * const UNI_blk_values
 	"CJK Unified Ideographs Extension G",
 	"CJK_Unified_Ideographs_Extension_G",
 	"cjkunifiedideographsextensiong",
+	"CJK Unified Ideographs Extension H",
+	"CJK_Unified_Ideographs_Extension_H",
+	"cjkunifiedideographsextensionh",
 	"Combining Diacritical Marks",
 	"Combining_Diacritical_Marks",
 	"combiningdiacriticalmarks",
@@ -427452,6 +432754,8 @@ static const char * const UNI_blk_values
 	"cyrillicextb",
 	"Cyrillic_Ext_C",
 	"cyrillicextc",
+	"Cyrillic_Ext_D",
+	"cyrillicextd",
 	"Cyrillic Extended-A",
 	"Cyrillic_Extended_A",
 	"cyrillicextendeda",
@@ -427461,6 +432765,9 @@ static const char * const UNI_blk_values
 	"Cyrillic Extended-C",
 	"Cyrillic_Extended_C",
 	"cyrillicextendedc",
+	"Cyrillic Extended-D",
+	"Cyrillic_Extended_D",
+	"cyrillicextendedd",
 	"Cyrillic_Sup",
 	"cyrillicsup",
 	"Cyrillic Supplement",
@@ -427474,9 +432781,14 @@ static const char * const UNI_blk_values
 	"devanagari",
 	"Devanagari_Ext",
 	"devanagariext",
+	"Devanagari_Ext_A",
+	"devanagariexta",
 	"Devanagari Extended",
 	"Devanagari_Extended",
 	"devanagariextended",
+	"Devanagari Extended-A",
+	"Devanagari_Extended_A",
+	"devanagariextendeda",
 	"Diacriticals",
 	"diacriticals",
 	"Diacriticals_Ext",
@@ -427689,6 +433001,9 @@ static const char * const UNI_blk_values
 	"javanese",
 	"Kaithi",
 	"kaithi",
+	"Kaktovik Numerals",
+	"Kaktovik_Numerals",
+	"kaktoviknumerals",
 	"Kana_Ext_A",
 	"kanaexta",
 	"Kana_Ext_B",
@@ -427720,6 +433035,8 @@ static const char * const UNI_blk_values
 	"Katakana Phonetic Extensions",
 	"Katakana_Phonetic_Extensions",
 	"katakanaphoneticextensions",
+	"Kawi",
+	"kawi",
 	"Kayah Li",
 	"Kayah_Li",
 	"kayahli",
@@ -427937,6 +433254,9 @@ static const char * const UNI_blk_values
 	"myanmarextendedb",
 	"Nabataean",
 	"nabataean",
+	"Nag Mundari",
+	"Nag_Mundari",
+	"nagmundari",
 	"Nandinagari",
 	"nandinagari",
 	"NB",
@@ -429935,6 +435255,8 @@ static const char * const UNI_sc_values[
 	"kannada",
 	"Katakana",
 	"katakana",
+	"Kawi",
+	"kawi",
 	"Kayah_Li",
 	"kayahli",
 	"Khar",
@@ -430063,6 +435385,10 @@ static const char * const UNI_sc_values[
 	"mymr",
 	"Nabataean",
 	"nabataean",
+	"Nagm",
+	"nagm",
+	"Nag_Mundari",
+	"nagmundari",
 	"Nand",
 	"nand",
 	"Nandinagari",
@@ -430704,56 +436030,57 @@ static const U8 WB_table[23][23] = {
 
 /* Generated from:
  * 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
- * c7698811e9adb6cc98fb996a7de4be2b6532f2ac67e76055cc8afdbf6ee18af3 lib/unicore/ArabicShaping.txt
- * 24a74555f918bbe99f5b3f1b83cf36fc0e205bb8a600a6a3aa539c710a3dcf27 lib/unicore/BidiBrackets.txt
- * 7a5c74cedc1616a9af0a9d22e108ae592d86fe93649c144ae6ba49f193a44122 lib/unicore/BidiMirroring.txt
- * 598870dddef7b34b5a972916528c456aff2765b79cd4f9647fb58ceb767e7f17 lib/unicore/Blocks.txt
- * a566cd48687b2cd897e02501118b2413c14ae86d318f9abbbba97feb84189f0f lib/unicore/CaseFolding.txt
- * 3360762fc3295cea54ab251c31df621d05ba4b94d46c60eaac29aa16d70ad1e0 lib/unicore/CompositionExclusions.txt
- * 7e058dec02147098bc9c28d86209f0f251bba0538f3b5a705ad02ea3bb709fe0 lib/unicore/DAge.txt
- * e3eddd7d469cd1b0feed7528defad1a1cc7c6a9ceb0ae4446a6d10921ed2e7bc lib/unicore/DCoreProperties.txt
- * b2c444c20730b097787fdf50bd7d6dd3fc5256ab8084f5b35b11c8776eca674c lib/unicore/DNormalizationProps.txt
- * f901ac011aa32a09224d6555da71e2532c59c1d3381322829de0e3b880507250 lib/unicore/EastAsianWidth.txt
- * 5995522f01633073911dad1edb74d13aa832f42862c0392a79627b85d52f2391 lib/unicore/EquivalentUnifiedIdeograph.txt
- * cd1c9367cba438afa965fcb5edc6ed3ec6e685fd5dd21c0cc20c026f04beb0e5 lib/unicore/HangulSyllableType.txt
- * 3f3f368fccdb37f350ecedc20b37fa71ab31c04e847884c77780d34283539f73 lib/unicore/IdStatus.txt
- * 45a150c23961b58d7784704af6c4daccd6517d97b6489e53d13bbdbf9e4f065f lib/unicore/IdType.txt
- * d8704c8725568813a947ff2ef38bcf1f05e2a6fbea6876ba384890f187a8bf61 lib/unicore/IndicPositionalCategory.txt
- * c7b969b653dc278fb66ab4136223d320e30ad19367eb791ae60dcc6d92071b16 lib/unicore/IndicSyllabicCategory.txt
- * 39ff89e0a329e1ccce6d54fad8cf82e90926901928c0ca9b9a2ad5681f330dd9 lib/unicore/Jamo.txt
- * 9e06e9f35c6959fb91dcc7993f90d58523c3079bc62c6b25f828b4cdebc5d70c lib/unicore/LineBreak.txt
- * 14b3b677d33f95c51423dce6eef4a6a28b4b160451ecedee4b91edb6745cf4a3 lib/unicore/NameAliases.txt
- * db5745688affcdc0c3927a1ee0667018a96a7b24513f866d5235e98fef6c2436 lib/unicore/NamedSequences.txt
- * 6bddfdb850417a5bee6deff19290fd1b138589909afb50f5a049f343bf2c6722 lib/unicore/PropList.txt
- * eb755757e20b72b330b2948df3cf2ff7adb0e31bb060140dc09dafb132ace2cd lib/unicore/PropValueAliases.txt
- * 859d7225f2d2a460b3ccb1d61a7945f8cc219acdf5aa53b66b7a1e4bf6ebfc87 lib/unicore/PropertyAliases.txt
- * d37eedf63ff9c48bac863d5f76862373d6cf5269fd21253d499e2430d638c01d lib/unicore/ScriptExtensions.txt
- * 52db475c4ec445e73b0b16915448c357614946ad7062843c563e00d7535c6510 lib/unicore/Scripts.txt
- * c667b45908fd269af25fd55d2fc5bbc157fb1b77675936e25c513ce32e080334 lib/unicore/SpecialCasing.txt
- * 36018e68657fdcb3485f636630ffe8c8532e01c977703d2803f5b89d6c5feafb lib/unicore/UnicodeData.txt
- * 869ff43dd012f924d03c89fc268c88f0e7eea72f0228b91ca30455afdb84f8fd lib/unicore/VerticalOrientation.txt
- * ddc7d4d1f3838573b94fc5d83ff7217e63c47b22ae1cd40c5fe1a54efc15589b lib/unicore/auxiliary/GCBTest.txt
- * 97e79f1f8d9cd76d120f2420381a01abc00a7c78a2aa583fa3f9627264a99742 lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * 488dbb6a7e1d0070d4aa7c175352c818ff6425172850d1b40c6177726658cb05 lib/unicore/auxiliary/LBTest.txt
- * 7e42dd749dbb94aa44b13faf9df6319d9a16ce2ea09a3a094fcfbb5962168040 lib/unicore/auxiliary/SBTest.txt
- * 7092ca4117cec891c25c7724132efc519e1dece01ae9fd6068035a9db04d526e lib/unicore/auxiliary/SentenceBreakProperty.txt
- * 8094b544ec1580c7e41ac0187805cc1aeb330a90301ec7505563e1a59318284e lib/unicore/auxiliary/WBTest.txt
- * 7716752aad296d4ab23ff4ed0a2746fc5328750ff84e9e7d6f3828ee9eaef742 lib/unicore/auxiliary/WordBreakProperty.txt
- * b597836124298b8f7fa076273802840cfc3271a25f5c397a082e120954b82c3c lib/unicore/emoji/emoji.txt
- * e5fe51acc74e3e83b4fb4c7b25f3c34491d6eb8095c9955d0712dafbca7b3c2b lib/unicore/extracted/DBidiClass.txt
- * cd0a14176d93bf440b77a582a0d678190fc0688b15442d4cfb250bf2e27956af lib/unicore/extracted/DBinaryProperties.txt
- * 12b0c3af9b600b49488d66545a3e7844ea980809627201bf9afeebe1c9f16f4e lib/unicore/extracted/DCombiningClass.txt
- * f76064b298cfbd715ba542e7894f7a507d32da2f011070d1d01df95cad9817d6 lib/unicore/extracted/DDecompositionType.txt
- * f9bef074cc916db57fece99d54a4505f8e7c7b17481619e3f0005211f7717d4b lib/unicore/extracted/DEastAsianWidth.txt
- * cde679c8461976ed40d7edf61ae98cbb947540831f06f5bc7da7decbf91a1420 lib/unicore/extracted/DGeneralCategory.txt
- * 9bb891831328713603a486a4a03df7f7987c3e1e8144a6d1ac71fd061ef3f732 lib/unicore/extracted/DJoinGroup.txt
- * e97c65bbea0a69d2fae6ec4182b09e519e13232e20bd804b3004edc0f36bb0d4 lib/unicore/extracted/DJoinType.txt
- * 43f6df50e4878f501b417e366b0ee097ae5ccb2d4ce942026bed3d62d78e7887 lib/unicore/extracted/DLineBreak.txt
- * a04502ebb36a45d83cbe48a7d8132ea8143edb7b3d34d0aa6afe4a9685049741 lib/unicore/extracted/DNumType.txt
- * 11075771b112e8e7ccf6ffa637c4c91eadc3ef3db0517b24e605df8fd3624239 lib/unicore/extracted/DNumValues.txt
- * 1e514199c3fa46f5df6148d272db7bddbfd5e89c9710e39773ef9d734f344a2f lib/unicore/mktables
- * c72bbdeda99714db1c8024d3311da4aef3c0db3b9b9f11455a7cfe10d5e9aba3 lib/unicore/version
+ * eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+ * 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+ * b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+ * 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+ * cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+ * 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+ * 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+ * d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+ * d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+ * 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+ * f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+ * 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+ * 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+ * 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+ * 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+ * ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+ * 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+ * 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+ * 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+ * 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+ * fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+ * e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+ * 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+ * e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+ * 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+ * cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+ * 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+ * 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+ * ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+ * 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+ * 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+ * f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+ * 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+ * 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+ * 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+ * f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+ * ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+ * db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+ * d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+ * fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+ * e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+ * c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+ * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+ * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+ * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+ * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
  * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
- * 5f8520d3a17ade6317fc0c423f5091470924b1ef425bca0c41ce8e4a9f8460fe regen/mk_PL_charclass.pl
- * 1c73795f9150bd556573e7ae982789377289e22b6a7f3db0a05c36852e8d749f regen/mk_invlists.pl
- * ex: set ro: */
+ * c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl
+ * cdbafee25193032242e77f2a6332b731d8392ce342fa616dbabc2c14c7b44eb6 regen/mk_invlists.pl
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/class.c
===================================================================
RCS file: gnu/usr.bin/perl/class.c
diff -N gnu/usr.bin/perl/class.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/class.c	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,1064 @@
+/*    class.c
+ *
+ *    Copyright (C) 2022 by Paul Evans and others
+ *
+ *    You may distribute under the terms of either the GNU General Public
+ *    License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/* This file contains the code that implements perl's new `use feature 'class'`
+ * object model
+ */
+
+#include "EXTERN.h"
+#define PERL_IN_CLASS_C
+#include "perl.h"
+
+#include "XSUB.h"
+
+enum {
+    PADIX_SELF   = 1,
+    PADIX_PARAMS = 2,
+};
+
+void
+Perl_croak_kw_unless_class(pTHX_ const char *kw)
+{
+    PERL_ARGS_ASSERT_CROAK_KW_UNLESS_CLASS;
+
+    if(!HvSTASH_IS_CLASS(PL_curstash))
+        croak("Cannot '%s' outside of a 'class'", kw);
+}
+
+#define newSVobject(fieldcount)  Perl_newSVobject(aTHX_ fieldcount)
+SV *
+Perl_newSVobject(pTHX_ Size_t fieldcount)
+{
+    SV *sv = newSV_type(SVt_PVOBJ);
+
+    Newx(ObjectFIELDS(sv), fieldcount, SV *);
+    ObjectMAXFIELD(sv) = fieldcount - 1;
+
+    Zero(ObjectFIELDS(sv), fieldcount, SV *);
+
+    return sv;
+}
+
+PP(pp_initfield)
+{
+    dSP;
+    UNOP_AUX_item *aux = cUNOP_AUX->op_aux;
+
+    SV *self = PAD_SVl(PADIX_SELF);
+    assert(SvTYPE(SvRV(self)) == SVt_PVOBJ);
+    SV *instance = SvRV(self);
+
+    SV **fields = ObjectFIELDS(instance);
+
+    PADOFFSET fieldix = aux[0].uv;
+
+    SV *val = NULL;
+
+    switch(PL_op->op_private & (OPpINITFIELD_AV|OPpINITFIELD_HV)) {
+        case 0:
+            if(PL_op->op_flags & OPf_STACKED)
+                val = newSVsv(POPs);
+            else
+                val = newSV(0);
+            break;
+
+        case OPpINITFIELD_AV:
+        {
+            AV *av;
+            if(PL_op->op_flags & OPf_STACKED) {
+                SV **svp = PL_stack_base + POPMARK + 1;
+                STRLEN count = SP - svp + 1;
+
+                av = newAV_alloc_x(count);
+
+                av_extend(av, count);
+                while(svp <= SP) {
+                    av_push_simple(av, newSVsv(*svp));
+                    svp++;
+                }
+            }
+            else
+                av = newAV();
+            val = (SV *)av;
+            break;
+        }
+
+        case OPpINITFIELD_HV:
+        {
+            HV *hv = newHV();
+            if(PL_op->op_flags & OPf_STACKED) {
+                SV **svp = PL_stack_base + POPMARK + 1;
+                STRLEN svcount = SP - svp + 1;
+
+                if(svcount % 2)
+                    Perl_warner(aTHX_
+                            packWARN(WARN_MISC), "Odd number of elements in hash field initialization");
+
+                while(svp <= SP) {
+                    SV *key = *svp; svp++;
+                    SV *val = svp <= SP ? *svp : &PL_sv_undef; svp++;
+
+                    (void)hv_store_ent(hv, key, newSVsv(val), 0);
+                }
+            }
+            val = (SV *)hv;
+            break;
+        }
+    }
+
+    fields[fieldix] = val;
+
+    PADOFFSET padix = PL_op->op_targ;
+    if(padix) {
+        SAVESPTR(PAD_SVl(padix));
+        SV *sv = PAD_SVl(padix) = SvREFCNT_inc(val);
+        save_freesv(sv);
+    }
+
+    RETURN;
+}
+
+XS(injected_constructor);
+XS(injected_constructor)
+{
+    dXSARGS;
+
+    HV *stash = (HV *)XSANY.any_sv;
+    assert(HvSTASH_IS_CLASS(stash));
+
+    struct xpvhv_aux *aux = HvAUX(stash);
+
+    if((items - 1) % 2)
+        Perl_warn(aTHX_ "Odd number of arguments passed to %" HvNAMEf_QUOTEDPREFIX " constructor",
+                HvNAMEfARG(stash));
+
+    HV *params = NULL;
+    {
+        /* Set up params HV */
+        params = newHV();
+        SAVEFREESV((SV *)params);
+
+        for(I32 i = 1; i < items; i += 2) {
+            SV *name = ST(i);
+            SV *val  = (i+1 < items) ? ST(i+1) : &PL_sv_undef;
+
+            /* TODO: think about sanity-checking name for being 
+             *   defined
+             *   not ref (but overloaded objects?? boo)
+             *   not duplicate
+             * But then,  %params = @_;  wouldn't do that
+             */
+
+            (void)hv_store_ent(params, name, SvREFCNT_inc(val), 0);
+        }
+    }
+
+    SV *instance = newSVobject(aux->xhv_class_next_fieldix);
+    SvOBJECT_on(instance);
+    SvSTASH_set(instance, MUTABLE_HV(SvREFCNT_inc_simple(stash)));
+
+    SV *self = sv_2mortal(newRV_noinc(instance));
+
+    assert(aux->xhv_class_initfields_cv);
+    {
+        ENTER;
+        SAVETMPS;
+
+        EXTEND(SP, 2);
+        PUSHMARK(SP);
+        PUSHs(self);
+        if(params)
+            PUSHs((SV *)params); // yes a raw HV
+        else
+            PUSHs(&PL_sv_undef);
+        PUTBACK;
+
+        call_sv((SV *)aux->xhv_class_initfields_cv, G_VOID);
+
+        SPAGAIN;
+
+        FREETMPS;
+        LEAVE;
+    }
+
+    if(aux->xhv_class_adjust_blocks) {
+        CV **cvp = (CV **)AvARRAY(aux->xhv_class_adjust_blocks);
+        U32 nblocks = av_count(aux->xhv_class_adjust_blocks);
+
+        for(U32 i = 0; i < nblocks; i++) {
+            ENTER;
+            SAVETMPS;
+            SPAGAIN;
+
+            EXTEND(SP, 2);
+
+            PUSHMARK(SP);
+            PUSHs(self);  /* I don't believe this needs to be an sv_mortalcopy() */
+            PUTBACK;
+
+            call_sv((SV *)cvp[i], G_VOID);
+
+            SPAGAIN;
+
+            FREETMPS;
+            LEAVE;
+        }
+    }
+
+    if(params && hv_iterinit(params) > 0) {
+        /* TODO: consider sorting these into a canonical order, but that's awkward */
+        HE *he = hv_iternext(params);
+
+        SV *paramnames = newSVsv(HeSVKEY_force(he));
+        SAVEFREESV(paramnames);
+
+        while((he = hv_iternext(params)))
+            Perl_sv_catpvf(aTHX_ paramnames, ", %" SVf, SVfARG(HeSVKEY_force(he)));
+
+        croak("Unrecognised parameters for %" HvNAMEf_QUOTEDPREFIX " constructor: %" SVf,
+                HvNAMEfARG(stash), SVfARG(paramnames));
+    }
+
+    EXTEND(SP, 1);
+    ST(0) = self;
+    XSRETURN(1);
+}
+
+/* OP_METHSTART is an UNOP_AUX whose AUX list contains
+ *   [0].uv = count of fieldbinding pairs
+ *   [1].uv = maximum fieldidx found in the binding list
+ *   [...] = pairs of (padix, fieldix) to bind in .uv fields
+ */
+
+/* TODO: People would probably expect to find this in pp.c  ;) */
+PP(pp_methstart)
+{
+    SV *self = av_shift(GvAV(PL_defgv));
+    SV *rv = NULL;
+
+    /* pp_methstart happens before the first OP_NEXTSTATE of the method body,
+     * meaning PL_curcop still points at the callsite. This is useful for
+     * croak() messages. However, it means we have to find our current stash
+     * via a different technique.
+     */
+    CV *curcv;
+    if(LIKELY(CxTYPE(CX_CUR()) == CXt_SUB))
+        curcv = CX_CUR()->blk_sub.cv;
+    else
+        curcv = find_runcv(NULL);
+
+    if(!SvROK(self) ||
+        !SvOBJECT((rv = SvRV(self))) ||
+        SvTYPE(rv) != SVt_PVOBJ) {
+        HEK *namehek = CvGvNAME_HEK(curcv);
+        croak(
+            namehek ? "Cannot invoke method %" HEKf_QUOTEDPREFIX " on a non-instance" :
+                      "Cannot invoke method on a non-instance",
+            namehek);
+    }
+
+    if(CvSTASH(curcv) != SvSTASH(rv) &&
+        !sv_derived_from_hv(self, CvSTASH(curcv)))
+        croak("Cannot invoke a method of %" HvNAMEf_QUOTEDPREFIX " on an instance of %" HvNAMEf_QUOTEDPREFIX,
+            HvNAMEfARG(CvSTASH(curcv)), HvNAMEfARG(SvSTASH(rv)));
+
+    save_clearsv(&PAD_SVl(PADIX_SELF));
+    sv_setsv(PAD_SVl(PADIX_SELF), self);
+
+    UNOP_AUX_item *aux = cUNOP_AUX->op_aux;
+    if(aux) {
+        assert(SvTYPE(SvRV(self)) == SVt_PVOBJ);
+        SV *instance = SvRV(self);
+        SV **fieldp = ObjectFIELDS(instance);
+
+        U32 fieldcount = (aux++)->uv;
+        U32 max_fieldix = (aux++)->uv;
+
+        assert((U32)(ObjectMAXFIELD(instance)+1) > max_fieldix);
+        PERL_UNUSED_VAR(max_fieldix);
+
+        for(Size_t i = 0; i < fieldcount; i++) {
+            PADOFFSET padix   = (aux++)->uv;
+            U32       fieldix = (aux++)->uv;
+
+            assert(fieldp[fieldix]);
+
+            /* TODO: There isn't a convenient SAVE macro for doing both these
+             * steps in one go. Add one. */
+            SAVESPTR(PAD_SVl(padix));
+            SV *sv = PAD_SVl(padix) = SvREFCNT_inc(fieldp[fieldix]);
+            save_freesv(sv);
+        }
+    }
+
+    if(PL_op->op_private & OPpINITFIELDS) {
+        SV *params = *av_fetch(GvAV(PL_defgv), 0, 0);
+        if(params && SvTYPE(params) == SVt_PVHV) {
+            SAVESPTR(PAD_SVl(PADIX_PARAMS));
+            PAD_SVl(PADIX_PARAMS) = SvREFCNT_inc(params);
+            save_freesv(params);
+        }
+    }
+
+    return NORMAL;
+}
+
+static void
+invoke_class_seal(pTHX_ void *_arg)
+{
+    class_seal_stash((HV *)_arg);
+}
+
+void
+Perl_class_setup_stash(pTHX_ HV *stash)
+{
+    PERL_ARGS_ASSERT_CLASS_SETUP_STASH;
+
+    assert(HvHasAUX(stash));
+
+    if(HvSTASH_IS_CLASS(stash)) {
+        croak("Cannot reopen existing class %" HvNAMEf_QUOTEDPREFIX,
+            HvNAMEfARG(stash));
+    }
+
+    {
+        SV *isaname = newSVpvf("%" HEKf "::ISA", HvNAME_HEK(stash));
+        sv_2mortal(isaname);
+
+        AV *isa = get_av(SvPV_nolen(isaname), (SvFLAGS(isaname) & SVf_UTF8));
+
+        if(isa && av_count(isa) > 0)
+            croak("Cannot create class %" HEKf " as it already has a non-empty @ISA",
+                HvNAME_HEK(stash));
+    }
+
+    char *classname = HvNAME(stash);
+    U32 nameflags = HvNAMEUTF8(stash) ? SVf_UTF8 : 0;
+
+    /* TODO:
+     *   Set some kind of flag on the stash to point out it's a class
+     *   Allocate storage for all the extra things a class needs
+     *     See https://github.com/leonerd/perl5/discussions/1
+     */
+
+    /* Inject the constructor */
+    {
+        SV *newname = Perl_newSVpvf(aTHX_ "%s::new", classname);
+        SAVEFREESV(newname);
+
+        CV *newcv = newXS_flags(SvPV_nolen(newname), injected_constructor, __FILE__, NULL, nameflags);
+        CvXSUBANY(newcv).any_sv = (SV *)stash;
+        CvREFCOUNTED_ANYSV_on(newcv);
+    }
+
+    /* TODO:
+     *   DOES method
+     */
+
+    struct xpvhv_aux *aux = HvAUX(stash);
+    aux->xhv_class_superclass    = NULL;
+    aux->xhv_class_initfields_cv = NULL;
+    aux->xhv_class_adjust_blocks = NULL;
+    aux->xhv_class_fields        = NULL;
+    aux->xhv_class_next_fieldix  = 0;
+    aux->xhv_class_param_map     = NULL;
+
+    aux->xhv_aux_flags |= HvAUXf_IS_CLASS;
+
+    SAVEDESTRUCTOR_X(invoke_class_seal, stash);
+
+    /* Prepare a suspended compcv for parsing field init expressions */
+    {
+        I32 floor_ix = start_subparse(FALSE, 0);
+
+        CvIsMETHOD_on(PL_compcv);
+
+        /* We don't want to make `$self` visible during the expression but we
+         * still need to give it a name. Make it unusable from pure perl
+         */
+        PADOFFSET padix = pad_add_name_pvs("$(self)", 0, NULL, NULL);
+        assert(padix == PADIX_SELF);
+
+        padix = pad_add_name_pvs("%(params)", 0, NULL, NULL);
+        assert(padix == PADIX_PARAMS);
+
+        PERL_UNUSED_VAR(padix);
+
+        Newx(aux->xhv_class_suspended_initfields_compcv, 1, struct suspended_compcv);
+        suspend_compcv(aux->xhv_class_suspended_initfields_compcv);
+
+        LEAVE_SCOPE(floor_ix);
+    }
+}
+
+#define split_package_ver(value, pkgname, pkgversion)  S_split_package_ver(aTHX_ value, pkgname, pkgversion)
+static const char *S_split_package_ver(pTHX_ SV *value, SV *pkgname, SV *pkgversion)
+{
+    const char *start = SvPVX(value),
+               *p     = start,
+               *end   = start + SvCUR(value);
+
+    while(*p && !isSPACE_utf8_safe(p, end))
+        p += UTF8SKIP(p);
+
+    sv_setpvn(pkgname, start, p - start);
+    if(SvUTF8(value))
+        SvUTF8_on(pkgname);
+
+    while(*p && isSPACE_utf8_safe(p, end))
+        p += UTF8SKIP(p);
+
+    if(*p) {
+        /* scan_version() gets upset about trailing content. We need to extract
+         * exactly what it wants
+         */
+        start = p;
+        if(*p == 'v')
+            p++;
+        while(*p && strchr("0123456789._", *p))
+            p++;
+        SV *tmpsv = newSVpvn(start, p - start);
+        SAVEFREESV(tmpsv);
+
+        scan_version(SvPVX(tmpsv), pkgversion, FALSE);
+    }
+
+    while(*p && isSPACE_utf8_safe(p, end))
+        p += UTF8SKIP(p);
+
+    return p;
+}
+
+#define ensure_module_version(module, version)  S_ensure_module_version(aTHX_ module, version)
+static void S_ensure_module_version(pTHX_ SV *module, SV *version)
+{
+    dSP;
+
+    ENTER;
+
+    PUSHMARK(SP);
+    PUSHs(module);
+    PUSHs(version);
+    PUTBACK;
+
+    call_method("VERSION", G_VOID);
+
+    LEAVE;
+}
+
+#define split_attr_nameval(sv, namp, valp)  S_split_attr_nameval(aTHX_ sv, namp, valp)
+static void S_split_attr_nameval(pTHX_ SV *sv, SV **namp, SV **valp)
+{
+    STRLEN svlen = SvCUR(sv);
+    bool do_utf8 = SvUTF8(sv);
+
+    const char *paren_at = (const char *)memchr(SvPVX(sv), '(', svlen);
+    if(paren_at) {
+        STRLEN namelen = paren_at - SvPVX(sv);
+
+        if(SvPVX(sv)[svlen-1] != ')')
+            /* Should be impossible to reach this by parsing regular perl code
+             * by as class_apply_attributes() is XS-visible API it might still
+             * be reachable. As it's likely unreachable by normal perl code,
+             * don't bother listing it in perldiag.
+             */
+            /* diag_listed_as: SKIPME */
+            croak("Malformed attribute string");
+        *namp = sv_2mortal(newSVpvn_utf8(SvPVX(sv), namelen, do_utf8));
+
+        const char *value_at = paren_at + 1;
+        const char *value_max = SvPVX(sv) + svlen - 2;
+
+        /* TODO: We're only obeying ASCII whitespace here */
+
+        /* Trim whitespace at the start */
+        while(value_at < value_max && isSPACE(*value_at))
+            value_at += 1;
+        while(value_max > value_at && isSPACE(*value_max))
+            value_max -= 1;
+
+        if(value_max >= value_at)
+            *valp = sv_2mortal(newSVpvn_utf8(value_at, value_max - value_at + 1, do_utf8));
+    }
+    else {
+        *namp = sv;
+        *valp = NULL;
+    }
+}
+
+static void
+apply_class_attribute_isa(pTHX_ HV *stash, SV *value)
+{
+    assert(HvSTASH_IS_CLASS(stash));
+    struct xpvhv_aux *aux = HvAUX(stash);
+
+    /* Parse `value` into name + version */
+    SV *superclassname = sv_newmortal(), *superclassver = sv_newmortal();
+    const char *end = split_package_ver(value, superclassname, superclassver);
+    if(*end)
+        croak("Unexpected characters while parsing class :isa attribute: %s", end);
+
+    if(aux->xhv_class_superclass)
+        croak("Class already has a superclass, cannot add another");
+
+    HV *superstash = gv_stashsv(superclassname, 0);
+    if(!superstash) {
+        /* Try to `require` the module then attempt a second time */
+        load_module(PERL_LOADMOD_NOIMPORT, newSVsv(superclassname), NULL, NULL);
+        superstash = gv_stashsv(superclassname, 0);
+    }
+    if(!superstash || !HvSTASH_IS_CLASS(superstash))
+        /* TODO: This would be a useful feature addition */
+        croak("Class :isa attribute requires a class but %" HvNAMEf_QUOTEDPREFIX " is not one",
+            HvNAMEfARG(superstash));
+
+    if(superclassver && SvOK(superclassver))
+        ensure_module_version(superclassname, superclassver);
+
+    /* TODO: Suuuurely there's a way to fetch this neatly with stash + "ISA"
+     * You'd think that GvAV() of hv_fetchs() would do it, but no, because it
+     * won't lazily create a proper (magical) GV if one didn't already exist.
+     */
+    {
+        SV *isaname = newSVpvf("%" HEKf "::ISA", HvNAME_HEK(stash));
+        sv_2mortal(isaname);
+
+        AV *isa = get_av(SvPV_nolen(isaname), GV_ADD | (SvFLAGS(isaname) & SVf_UTF8));
+
+        ENTER;
+
+        /* Temporarily remove the SVf_READONLY flag */
+        SAVESETSVFLAGS((SV *)isa, SVf_READONLY|SVf_PROTECT, SVf_READONLY|SVf_PROTECT);
+        SvREADONLY_off((SV *)isa);
+
+        av_push(isa, newSVsv(value));
+
+        LEAVE;
+    }
+
+    aux->xhv_class_superclass = (HV *)SvREFCNT_inc(superstash);
+
+    struct xpvhv_aux *superaux = HvAUX(superstash);
+
+    aux->xhv_class_next_fieldix = superaux->xhv_class_next_fieldix;
+
+    if(superaux->xhv_class_adjust_blocks) {
+        if(!aux->xhv_class_adjust_blocks)
+            aux->xhv_class_adjust_blocks = newAV();
+
+        for(SSize_t i = 0; i <= AvFILL(superaux->xhv_class_adjust_blocks); i++)
+            av_push(aux->xhv_class_adjust_blocks, AvARRAY(superaux->xhv_class_adjust_blocks)[i]);
+    }
+
+    if(superaux->xhv_class_param_map) {
+        aux->xhv_class_param_map = newHVhv(superaux->xhv_class_param_map);
+    }
+}
+
+static struct {
+    const char *name;
+    bool requires_value;
+    void (*apply)(pTHX_ HV *stash, SV *value);
+} const class_attributes[] = {
+    { .name           = "isa",
+      .requires_value = true,
+      .apply          = &apply_class_attribute_isa,
+    },
+    {0}
+};
+
+static void
+S_class_apply_attribute(pTHX_ HV *stash, OP *attr)
+{
+    assert(attr->op_type == OP_CONST);
+
+    SV *name, *value;
+    split_attr_nameval(cSVOPx_sv(attr), &name, &value);
+
+    for(int i = 0; class_attributes[i].name; i++) {
+        /* TODO: These attribute names are not UTF-8 aware */
+        if(!strEQ(SvPVX(name), class_attributes[i].name))
+            continue;
+
+        if(class_attributes[i].requires_value && !(value && SvOK(value)))
+            croak("Class attribute %" SVf " requires a value", SVfARG(name));
+
+        (*class_attributes[i].apply)(aTHX_ stash, value);
+        return;
+    }
+
+    croak("Unrecognized class attribute %" SVf, SVfARG(name));
+}
+
+void
+Perl_class_apply_attributes(pTHX_ HV *stash, OP *attrlist)
+{
+    PERL_ARGS_ASSERT_CLASS_APPLY_ATTRIBUTES;
+
+    if(!attrlist)
+        return;
+    if(attrlist->op_type == OP_NULL) {
+        op_free(attrlist);
+        return;
+    }
+
+    if(attrlist->op_type == OP_LIST) {
+        OP *o = cLISTOPx(attrlist)->op_first;
+        assert(o->op_type == OP_PUSHMARK);
+        o = OpSIBLING(o);
+
+        for(; o; o = OpSIBLING(o))
+            S_class_apply_attribute(aTHX_ stash, o);
+    }
+    else
+        S_class_apply_attribute(aTHX_ stash, attrlist);
+
+    op_free(attrlist);
+}
+
+static OP *
+S_newCROAKOP(pTHX_ SV *message)
+{
+    OP *o = newLISTOP(OP_LIST, 0,
+            newOP(OP_PUSHMARK, 0),
+            newSVOP(OP_CONST, 0, message));
+    return op_convert_list(OP_DIE, 0, o);
+}
+#define newCROAKOP(message)  S_newCROAKOP(aTHX_ message)
+
+void
+Perl_class_seal_stash(pTHX_ HV *stash)
+{
+    PERL_ARGS_ASSERT_CLASS_SEAL_STASH;
+
+    assert(HvSTASH_IS_CLASS(stash));
+    struct xpvhv_aux *aux = HvAUX(stash);
+
+    /* generate initfields CV */
+    {
+        I32 floor_ix = PL_savestack_ix;
+        SAVEI32(PL_subline);
+        save_item(PL_subname);
+
+        resume_compcv_final(aux->xhv_class_suspended_initfields_compcv);
+
+        /* Some OP_INITFIELD ops will need to populate the pad with their
+         * result because later ops will rely on it. There's no need to do
+         * this for every op though. Store a mapping to work out which ones
+         * we'll need.
+         */
+        PADNAMELIST *pnl = PadlistNAMES(CvPADLIST(PL_compcv));
+        HV *fieldix_to_padix = newHV();
+        SAVEFREESV((SV *)fieldix_to_padix);
+
+        /* padix 0 == @_; padix 1 == $self. Start at 2 */
+        for(PADOFFSET padix = 2; padix <= PadnamelistMAX(pnl); padix++) {
+            PADNAME *pn = PadnamelistARRAY(pnl)[padix];
+            if(!pn || !PadnameIsFIELD(pn))
+                continue;
+
+            U32 fieldix = PadnameFIELDINFO(pn)->fieldix;
+            (void)hv_store_ent(fieldix_to_padix, sv_2mortal(newSVuv(fieldix)), newSVuv(padix), 0);
+        }
+
+        OP *ops = NULL;
+
+        ops = op_append_list(OP_LINESEQ, ops,
+                newUNOP_AUX(OP_METHSTART, OPpINITFIELDS << 8, NULL, NULL));
+
+        if(aux->xhv_class_superclass) {
+            HV *superstash = aux->xhv_class_superclass;
+            assert(HvSTASH_IS_CLASS(superstash));
+            struct xpvhv_aux *superaux = HvAUX(superstash);
+
+            /* Build an OP_ENTERSUB */
+            OP *o = NULL;
+            o = op_append_list(OP_LIST, o,
+                newPADxVOP(OP_PADSV, 0, PADIX_SELF));
+            o = op_append_list(OP_LIST, o,
+                newPADxVOP(OP_PADHV, OPf_REF, PADIX_PARAMS));
+            /* TODO: This won't work at all well under `use threads` because
+             * it embeds the CV * to the superclass initfields CV right into
+             * the optree. Maybe we'll have to pop it in the pad or something
+             */
+            o = op_append_list(OP_LIST, o,
+                newSVOP(OP_CONST, 0, (SV *)superaux->xhv_class_initfields_cv));
+
+            ops = op_append_list(OP_LINESEQ, ops,
+                op_convert_list(OP_ENTERSUB, OPf_WANT_VOID|OPf_STACKED, o));
+        }
+
+        PADNAMELIST *fieldnames = aux->xhv_class_fields;
+
+        for(SSize_t i = 0; fieldnames && i <= PadnamelistMAX(fieldnames); i++) {
+            PADNAME *pn = PadnamelistARRAY(fieldnames)[i];
+            char sigil = PadnamePV(pn)[0];
+            PADOFFSET fieldix = PadnameFIELDINFO(pn)->fieldix;
+
+            /* Extract the OP_{NEXT,DB}STATE op from the defop so we can
+             * splice it in
+             */
+            OP *valop = PadnameFIELDINFO(pn)->defop;
+            if(valop && valop->op_type == OP_LINESEQ) {
+                OP *o = cLISTOPx(valop)->op_first;
+                cLISTOPx(valop)->op_first = NULL;
+                cLISTOPx(valop)->op_last = NULL;
+                /* have to clear the OPf_KIDS flag or op_free() will get upset */
+                valop->op_flags &= ~OPf_KIDS;
+                op_free(valop);
+                assert(valop->op_type == OP_FREED);
+
+                OP *fieldcop = o;
+                assert(fieldcop->op_type == OP_NEXTSTATE || fieldcop->op_type == OP_DBSTATE);
+                o = OpSIBLING(o);
+                OpLASTSIB_set(fieldcop, NULL);
+
+                valop = o;
+                OpLASTSIB_set(valop, NULL);
+
+                ops = op_append_list(OP_LINESEQ, ops, fieldcop);
+            }
+
+            SV *paramname = PadnameFIELDINFO(pn)->paramname;
+
+            U8 op_priv = 0;
+            switch(sigil) {
+                case '$':
+                    if(paramname) {
+                        if(!valop)
+                            valop = newCROAKOP(
+                                newSVpvf("Required parameter '%" SVf "' is missing for %" HvNAMEf_QUOTEDPREFIX " constructor",
+                                    SVfARG(paramname), HvNAMEfARG(stash))
+                            );
+
+                        OP *helemop =
+                            newBINOP(OP_HELEM, 0,
+                                newPADxVOP(OP_PADHV, OPf_REF, PADIX_PARAMS),
+                                newSVOP(OP_CONST, 0, SvREFCNT_inc(paramname)));
+
+                        if(PadnameFIELDINFO(pn)->def_if_undef) {
+                            /* delete $params{$paramname} // DEFOP */
+                            valop = newLOGOP(OP_DOR, 0,
+                                    newUNOP(OP_DELETE, 0, helemop), valop);
+                        }
+                        else if(PadnameFIELDINFO(pn)->def_if_false) {
+                            /* delete $params{$paramname} || DEFOP */
+                            valop = newLOGOP(OP_OR, 0,
+                                newUNOP(OP_DELETE, 0, helemop), valop);
+                        }
+                        else {
+                            /* exists $params{$paramname} ? delete $params{$paramname} : DEFOP */
+                            /* more efficient with the new OP_HELEMEXISTSOR */
+                            valop = newLOGOP(OP_HELEMEXISTSOR, OPpHELEMEXISTSOR_DELETE << 8,
+                                helemop, valop);
+                        }
+
+                        valop = op_contextualize(valop, G_SCALAR);
+                    }
+                    break;
+
+                case '@':
+                    op_priv = OPpINITFIELD_AV;
+                    break;
+
+                case '%':
+                    op_priv = OPpINITFIELD_HV;
+                    break;
+
+                default:
+                    NOT_REACHED;
+            }
+
+            UNOP_AUX_item *aux;
+            Newx(aux, 2, UNOP_AUX_item);
+
+            aux[0].uv = fieldix;
+
+            OP *fieldop = newUNOP_AUX(OP_INITFIELD, valop ? OPf_STACKED : 0, valop, aux);
+            fieldop->op_private = op_priv;
+
+            HE *he;
+            if((he = hv_fetch_ent(fieldix_to_padix, sv_2mortal(newSVuv(fieldix)), 0, 0)) &&
+                SvOK(HeVAL(he))) {
+                fieldop->op_targ = SvUV(HeVAL(he));
+            }
+
+            ops = op_append_list(OP_LINESEQ, ops, fieldop);
+        }
+
+        /* initfields CV should not get class_wrap_method_body() called on its
+         * body. pretend it isn't a method for now */
+        CvIsMETHOD_off(PL_compcv);
+        CV *initfields = newATTRSUB(floor_ix, NULL, NULL, NULL, ops);
+        CvIsMETHOD_on(initfields);
+
+        aux->xhv_class_initfields_cv = initfields;
+    }
+}
+
+void
+Perl_class_prepare_initfield_parse(pTHX)
+{
+    PERL_ARGS_ASSERT_CLASS_PREPARE_INITFIELD_PARSE;
+
+    assert(HvSTASH_IS_CLASS(PL_curstash));
+    struct xpvhv_aux *aux = HvAUX(PL_curstash);
+
+    resume_compcv_and_save(aux->xhv_class_suspended_initfields_compcv);
+    CvOUTSIDE_SEQ(PL_compcv) = PL_cop_seqmax;
+}
+
+void
+Perl_class_prepare_method_parse(pTHX_ CV *cv)
+{
+    PERL_ARGS_ASSERT_CLASS_PREPARE_METHOD_PARSE;
+
+    assert(cv == PL_compcv);
+    assert(HvSTASH_IS_CLASS(PL_curstash));
+
+    /* We expect this to be at the start of sub parsing, so there won't be
+     * anything in the pad yet
+     */
+    assert(PL_comppad_name_fill == 0);
+
+    PADOFFSET padix;
+
+    padix = pad_add_name_pvs("$self", 0, NULL, NULL);
+    assert(padix == PADIX_SELF);
+    PERL_UNUSED_VAR(padix);
+
+    intro_my();
+
+    CvNOWARN_AMBIGUOUS_on(cv);
+    CvIsMETHOD_on(cv);
+}
+
+OP *
+Perl_class_wrap_method_body(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CLASS_WRAP_METHOD_BODY;
+
+    if(!o)
+        return o;
+
+    PADNAMELIST *pnl = PadlistNAMES(CvPADLIST(PL_compcv));
+
+    AV *fieldmap = newAV();
+    UV max_fieldix = 0;
+    SAVEFREESV((SV *)fieldmap);
+
+    /* padix 0 == @_; padix 1 == $self. Start at 2 */
+    for(PADOFFSET padix = 2; padix <= PadnamelistMAX(pnl); padix++) {
+        PADNAME *pn = PadnamelistARRAY(pnl)[padix];
+        if(!pn || !PadnameIsFIELD(pn))
+            continue;
+
+        U32 fieldix = PadnameFIELDINFO(pn)->fieldix;
+        if(fieldix > max_fieldix)
+            max_fieldix = fieldix;
+
+        av_push(fieldmap, newSVuv(padix));
+        av_push(fieldmap, newSVuv(fieldix));
+    }
+
+    UNOP_AUX_item *aux = NULL;
+
+    if(av_count(fieldmap)) {
+        Newx(aux, 2 + av_count(fieldmap), UNOP_AUX_item);
+
+        UNOP_AUX_item *ap = aux;
+
+        (ap++)->uv = av_count(fieldmap) / 2;
+        (ap++)->uv = max_fieldix;
+
+        for(Size_t i = 0; i < av_count(fieldmap); i++)
+            (ap++)->uv = SvUV(AvARRAY(fieldmap)[i]);
+    }
+
+    /* If this is an empty method body then o will be an OP_STUB and not a
+     * list. This will confuse op_sibling_splice() */
+    if(o->op_type != OP_LINESEQ)
+        o = newLISTOP(OP_LINESEQ, 0, o, NULL);
+
+    op_sibling_splice(o, NULL, 0, newUNOP_AUX(OP_METHSTART, 0, NULL, aux));
+
+    return o;
+}
+
+void
+Perl_class_add_field(pTHX_ HV *stash, PADNAME *pn)
+{
+    PERL_ARGS_ASSERT_CLASS_ADD_FIELD;
+
+    assert(HvSTASH_IS_CLASS(stash));
+    struct xpvhv_aux *aux = HvAUX(stash);
+
+    PADOFFSET fieldix = aux->xhv_class_next_fieldix;
+    aux->xhv_class_next_fieldix++;
+
+    Newxz(PadnameFIELDINFO(pn), 1, struct padname_fieldinfo);
+    PadnameFLAGS(pn) |= PADNAMEf_FIELD;
+
+    PadnameFIELDINFO(pn)->refcount = 1;
+    PadnameFIELDINFO(pn)->fieldix = fieldix;
+    PadnameFIELDINFO(pn)->fieldstash = (HV *)SvREFCNT_inc(stash);
+
+    if(!aux->xhv_class_fields)
+        aux->xhv_class_fields = newPADNAMELIST(0);
+
+    padnamelist_store(aux->xhv_class_fields, PadnamelistMAX(aux->xhv_class_fields)+1, pn);
+    PadnameREFCNT_inc(pn);
+}
+
+static void
+apply_field_attribute_param(pTHX_ PADNAME *pn, SV *value)
+{
+    if(!value)
+        /* Default to name minus the sigil */
+        value = newSVpvn_utf8(PadnamePV(pn) + 1, PadnameLEN(pn) - 1, PadnameUTF8(pn));
+
+    if(PadnamePV(pn)[0] != '$')
+        croak("Only scalar fields can take a :param attribute");
+
+    if(PadnameFIELDINFO(pn)->paramname)
+        croak("Field already has a parameter name, cannot add another");
+
+    HV *stash = PadnameFIELDINFO(pn)->fieldstash;
+    assert(HvSTASH_IS_CLASS(stash));
+    struct xpvhv_aux *aux = HvAUX(stash);
+
+    if(aux->xhv_class_param_map &&
+            hv_exists_ent(aux->xhv_class_param_map, value, 0))
+        croak("Cannot assign :param(%" SVf ") to field %" SVf " because that name is already in use",
+                SVfARG(value), SVfARG(PadnameSV(pn)));
+
+    PadnameFIELDINFO(pn)->paramname = SvREFCNT_inc(value);
+
+    if(!aux->xhv_class_param_map)
+        aux->xhv_class_param_map = newHV();
+
+    (void)hv_store_ent(aux->xhv_class_param_map, value, newSVuv(PadnameFIELDINFO(pn)->fieldix), 0);
+}
+
+static struct {
+    const char *name;
+    bool requires_value;
+    void (*apply)(pTHX_ PADNAME *pn, SV *value);
+} const field_attributes[] = {
+    { .name           = "param",
+      .requires_value = false,
+      .apply          = &apply_field_attribute_param,
+    },
+    {0}
+};
+
+static void
+S_class_apply_field_attribute(pTHX_ PADNAME *pn, OP *attr)
+{
+    assert(attr->op_type == OP_CONST);
+
+    SV *name, *value;
+    split_attr_nameval(cSVOPx_sv(attr), &name, &value);
+
+    for(int i = 0; field_attributes[i].name; i++) {
+        /* TODO: These attribute names are not UTF-8 aware */
+        if(!strEQ(SvPVX(name), field_attributes[i].name))
+            continue;
+
+        if(field_attributes[i].requires_value && !(value && SvOK(value)))
+            croak("Field attribute %" SVf " requires a value", SVfARG(name));
+
+        (*field_attributes[i].apply)(aTHX_ pn, value);
+        return;
+    }
+
+    croak("Unrecognized field attribute %" SVf, SVfARG(name));
+}
+
+void
+Perl_class_apply_field_attributes(pTHX_ PADNAME *pn, OP *attrlist)
+{
+    PERL_ARGS_ASSERT_CLASS_APPLY_FIELD_ATTRIBUTES;
+
+    if(!attrlist)
+        return;
+    if(attrlist->op_type == OP_NULL) {
+        op_free(attrlist);
+        return;
+    }
+
+    if(attrlist->op_type == OP_LIST) {
+        OP *o = cLISTOPx(attrlist)->op_first;
+        assert(o->op_type == OP_PUSHMARK);
+        o = OpSIBLING(o);
+
+        for(; o; o = OpSIBLING(o))
+            S_class_apply_field_attribute(aTHX_ pn, o);
+    }
+    else
+        S_class_apply_field_attribute(aTHX_ pn, attrlist);
+
+    op_free(attrlist);
+}
+
+void
+Perl_class_set_field_defop(pTHX_ PADNAME *pn, OPCODE defmode, OP *defop)
+{
+    PERL_ARGS_ASSERT_CLASS_SET_FIELD_DEFOP;
+
+    assert(defmode == 0 || defmode == OP_ORASSIGN || defmode == OP_DORASSIGN);
+
+    assert(HvSTASH_IS_CLASS(PL_curstash));
+
+    forbid_outofblock_ops(defop, "field initialiser expression");
+
+    if(PadnameFIELDINFO(pn)->defop)
+        op_free(PadnameFIELDINFO(pn)->defop);
+
+    char sigil = PadnamePV(pn)[0];
+    switch(sigil) {
+        case '$':
+            defop = op_contextualize(defop, G_SCALAR);
+            break;
+
+        case '@':
+        case '%':
+            defop = op_contextualize(op_force_list(defop), G_LIST);
+            break;
+    }
+
+    PadnameFIELDINFO(pn)->defop = newLISTOP(OP_LINESEQ, 0,
+        newSTATEOP(0, NULL, NULL), defop);
+    switch(defmode) {
+        case OP_DORASSIGN:
+            PadnameFIELDINFO(pn)->def_if_undef = true;
+            break;
+        case OP_ORASSIGN:
+            PadnameFIELDINFO(pn)->def_if_false = true;
+            break;
+    }
+}
+
+void
+Perl_class_add_ADJUST(pTHX_ HV *stash, CV *cv)
+{
+    PERL_ARGS_ASSERT_CLASS_ADD_ADJUST;
+
+    assert(HvSTASH_IS_CLASS(stash));
+    struct xpvhv_aux *aux = HvAUX(stash);
+
+    if(!aux->xhv_class_adjust_blocks)
+        aux->xhv_class_adjust_blocks = newAV();
+
+    av_push(aux->xhv_class_adjust_blocks, (SV *)cv);
+}
+
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
Index: gnu/usr.bin/perl/config_h.SH
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/config_h.SH,v
diff -u -p -a -u -p -r1.24 config_h.SH
--- gnu/usr.bin/perl/config_h.SH	15 Feb 2023 01:36:13 -0000	1.24
+++ gnu/usr.bin/perl/config_h.SH	21 Feb 2024 15:47:00 -0000
@@ -32,7 +32,7 @@ case "$CONFIG_H" in
 already-done) echo "Not re-extracting config.h" ;;
 *)
 echo "Extracting $CONFIG_H (with variable substitutions)"
-sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
+sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!' -e's!define\t!define !'
 /* This file was produced by running the config_h.SH script, which
  * gets its values from $CONFIG_SH, which is generally produced by
  * running Configure.
@@ -1495,6 +1495,10 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  *	Can we handle GCC attribute for functions that should always be
  *	inlined.
  */
+/* HASATTRIBUTE_VISIBILITY:
+ *	Can we handle GCC attribute for functions that should have a
+ *	different visibility.
+ */
 #$d_attribute_deprecated HASATTRIBUTE_DEPRECATED	/**/
 #$d_attribute_format HASATTRIBUTE_FORMAT	/**/
 #$d_printf_format_null PRINTF_FORMAT_NULL_OK	/**/
@@ -1505,6 +1509,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
 #$d_attribute_unused HASATTRIBUTE_UNUSED	/**/
 #$d_attribute_warn_unused_result HASATTRIBUTE_WARN_UNUSED_RESULT	/**/
 #$d_attribute_always_inline HASATTRIBUTE_ALWAYS_INLINE	/**/
+#$d_attribute_visibility HASATTRIBUTE_VISIBILITY	/**/
 
 /* HAS_BACKTRACE:
  *	This symbol, if defined, indicates that the backtrace() routine is
@@ -2281,7 +2286,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  */
 #ifndef USE_CROSS_COMPILE
 #$usecrosscompile	USE_CROSS_COMPILE	/**/
-#define	PERL_TARGETARCH	"$targetarch"	/**/
+#define PERL_TARGETARCH	"$targetarch"	/**/
 #endif
 
 /* PERL_USE_DEVEL:
@@ -2434,7 +2439,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
 #$d_dbminitproto	HAS_DBMINIT_PROTO	/**/
 
 /* HAS_DIR_DD_FD:
- *	This symbol, if defined, indicates that the the DIR* dirstream
+ *	This symbol, if defined, indicates that the DIR* dirstream
  *	structure contains a member variable named dd_fd.
  */
 #$d_dir_dd_fd HAS_DIR_DD_FD		/**/
@@ -3294,6 +3299,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  */
 #$d_sendmsg HAS_SENDMSG		/**/
 
+/* HAS_SETENV:
+ *	This symbol, if defined, indicates that the setenv routine is
+ *	available for use.
+ */
+#$d_setenv HAS_SETENV		/**/
+
 /* HAS_SETITIMER:
  *	This symbol, if defined, indicates that the setitimer routine is
  *	available to set interval timers.
@@ -3618,7 +3629,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
 
 /* HAS_WCSXFRM:
  *	This symbol, if defined, indicates that the wcsxfrm routine is
- *	available to tranform a wide character string for wcscmp().
+ *	available to transform a wide character string for wcscmp().
  */
 #$d_wcsxfrm HAS_WCSXFRM	/**/
 
@@ -3835,6 +3846,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  */
 #$i_sysstatvfs	I_SYS_STATVFS		/**/
 
+/* I_SYS_SYSCALL:
+ *	This symbol, if defined, indicates that <sys/syscall.h> exists.
+ */
+#$i_syssyscall	I_SYS_SYSCALL		/**/
+
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
@@ -4015,6 +4031,32 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  */
 #$need_va_copy	NEED_VA_COPY		/**/
 
+/* I32df:
+ *	This symbol defines the format string used for printing a Perl I32
+ *	as a signed decimal integer.
+ */
+/* U32uf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned decimal integer.
+ */
+/* U32of:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned octal integer.
+ */
+/* U32xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define I32df		$i32dformat		/**/
+#define U32of		$u32oformat		/**/
+#define U32uf		$u32uformat		/**/
+#define U32xf		$u32xformat		/**/
+#define U32Xf		$u32XUformat		/**/
+
 /* IVTYPE:
  *	This symbol defines the C type used for Perl's IV.
  */
@@ -4104,35 +4146,35 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  *	This symbol, if defined, indicates that a variable of type NVTYPE
  *	stores 0.0 in memory as all bits zero.
  */
-#define	IVTYPE		$ivtype		/**/
-#define	UVTYPE		$uvtype		/**/
-#define	I8TYPE		$i8type		/**/
-#define	U8TYPE		$u8type		/**/
-#define	I16TYPE		$i16type	/**/
-#define	U16TYPE		$u16type	/**/
-#define	I32TYPE		$i32type	/**/
-#define	U32TYPE		$u32type	/**/
+#define IVTYPE		$ivtype		/**/
+#define UVTYPE		$uvtype		/**/
+#define I8TYPE		$i8type		/**/
+#define U8TYPE		$u8type		/**/
+#define I16TYPE		$i16type	/**/
+#define U16TYPE		$u16type	/**/
+#define I32TYPE		$i32type	/**/
+#define U32TYPE		$u32type	/**/
 #ifdef HAS_QUAD
-#define	I64TYPE		$i64type	/**/
-#define	U64TYPE		$u64type	/**/
+#define I64TYPE		$i64type	/**/
+#define U64TYPE		$u64type	/**/
 #endif
-#define	NVTYPE		$nvtype		/**/
-#define	IVSIZE		$ivsize		/**/
-#define	UVSIZE		$uvsize		/**/
-#define	I8SIZE		$i8size		/**/
-#define	U8SIZE		$u8size		/**/
-#define	I16SIZE		$i16size	/**/
-#define	U16SIZE		$u16size	/**/
-#define	I32SIZE		$i32size	/**/
-#define	U32SIZE		$u32size	/**/
+#define NVTYPE		$nvtype		/**/
+#define IVSIZE		$ivsize		/**/
+#define UVSIZE		$uvsize		/**/
+#define I8SIZE		$i8size		/**/
+#define U8SIZE		$u8size		/**/
+#define I16SIZE		$i16size	/**/
+#define U16SIZE		$u16size	/**/
+#define I32SIZE		$i32size	/**/
+#define U32SIZE		$u32size	/**/
 #ifdef HAS_QUAD
-#define	I64SIZE		$i64size	/**/
-#define	U64SIZE		$u64size	/**/
+#define I64SIZE		$i64size	/**/
+#define U64SIZE		$u64size	/**/
 #endif
-#define	NVSIZE		$nvsize		/**/
+#define NVSIZE		$nvsize		/**/
 #$d_nv_preserves_uv	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	$nv_preserves_uv_bits
-#define	NV_OVERFLOWS_INTEGERS_AT	($nv_overflows_integers_at)
+#define NV_PRESERVES_UV_BITS	$nv_preserves_uv_bits
+#define NV_OVERFLOWS_INTEGERS_AT	($nv_overflows_integers_at)
 #$d_nv_zero_is_allbits_zero	NV_ZERO_IS_ALLBITS_ZERO
 #if UVSIZE == 8
 #   ifdef BYTEORDER
@@ -4180,14 +4222,14 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		$ivdformat		/**/
-#define	UVuf		$uvuformat		/**/
-#define	UVof		$uvoformat		/**/
-#define	UVxf		$uvxformat		/**/
-#define	UVXf		$uvXUformat		/**/
-#define	NVef		$nveformat		/**/
-#define	NVff		$nvfformat		/**/
-#define	NVgf		$nvgformat		/**/
+#define IVdf		$ivdformat		/**/
+#define UVuf		$uvuformat		/**/
+#define UVof		$uvoformat		/**/
+#define UVxf		$uvxformat		/**/
+#define UVXf		$uvXUformat		/**/
+#define NVef		$nveformat		/**/
+#define NVff		$nvfformat		/**/
+#define NVgf		$nvgformat		/**/
 
 /* SELECT_MIN_BITS:
  *	This symbol holds the minimum number of bits operated by select.
@@ -5284,7 +5326,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		$gidformat		/**/
+#define Gid_t_f		$gidformat		/**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedness of a Gid_t.
@@ -5352,7 +5394,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		$uidformat		/**/
+#define Uid_t_f		$uidformat		/**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedness of a Uid_t.
Index: gnu/usr.bin/perl/configpm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/configpm,v
diff -u -p -a -u -p -r1.36 configpm
--- gnu/usr.bin/perl/configpm	15 Feb 2023 01:38:20 -0000	1.36
+++ gnu/usr.bin/perl/configpm	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,5 @@
 #!./miniperl -w
+# vim: syntax=perl
 #
 # configpm
 #
@@ -28,10 +29,14 @@
 # this case, since for example an extension makefile that has a dependency
 # on Config.pm should trigger even if only Config_heavy.pl has changed.
 
-sub usage { die <<EOF }
-usage: $0  [ options ]
-    --no-glossary       don't include Porting/Glossary in lib/Config.pod
-    --chdir=dir         change directory before writing files
+sub uncomment($) { 
+    return $_[0]=~s/^#(?:    )?//mgr;
+}
+
+sub usage { die uncomment <<EOF }
+#    usage: $0  [ options ]
+#        --no-glossary       don't include Porting/Glossary in lib/Config.pod
+#        --chdir=dir         change directory before writing files
 EOF
 
 use strict;
@@ -135,74 +140,74 @@ die "Can't automatically determine name 
 my $config_txt;
 my $heavy_txt;
 
-my $export_funcs = <<'EOT';
-my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
-		    config_re => 1, compile_date => 1, local_patches => 1,
-		    bincompat_options => 1, non_bincompat_options => 1,
-		    header_files => 1);
+my $export_funcs = uncomment <<'EOT';
+#    my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
+#                        config_re => 1, compile_date => 1, local_patches => 1,
+#                        bincompat_options => 1, non_bincompat_options => 1,
+#                        header_files => 1);
 EOT
 
 my %export_ok = eval $export_funcs or die;
 
-$config_txt .= sprintf << 'EOT', $], $export_funcs;
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-# for a description of the variables, please have a look at the
-# Glossary file, as written in the Porting folder, or use the url:
-# https://github.com/Perl/perl5/blob/blead/Porting/Glossary
-
-package Config;
-use strict;
-use warnings;
-our ( %%Config, $VERSION );
-
-$VERSION = "%s";
-
-# Skip @Config::EXPORT because it only contains %%Config, which we special
-# case below as it's not a function. @Config::EXPORT won't change in the
-# lifetime of Perl 5.
-%s
-@Config::EXPORT = qw(%%Config);
-@Config::EXPORT_OK = keys %%Export_Cache;
-
-# Need to stub all the functions to make code such as print Config::config_sh
-# keep working
-
+$config_txt .= sprintf uncomment << 'EOT', $], $export_funcs;
+#    # This file was created by configpm when Perl was built. Any changes
+#    # made to this file will be lost the next time perl is built.
+#
+#    # for a description of the variables, please have a look at the
+#    # Glossary file, as written in the Porting folder, or use the url:
+#    # https://github.com/Perl/perl5/blob/blead/Porting/Glossary
+#
+#    package Config;
+#    use strict;
+#    use warnings;
+#    our ( %%Config, $VERSION );
+#
+#    $VERSION = "%s";
+#
+#    # Skip @Config::EXPORT because it only contains %%Config, which we special
+#    # case below as it's not a function. @Config::EXPORT won't change in the
+#    # lifetime of Perl 5.
+#    %s
+#    @Config::EXPORT = qw(%%Config);
+#    @Config::EXPORT_OK = keys %%Export_Cache;
+#
+#    # Need to stub all the functions to make code such as print Config::config_sh
+#    # keep working
+#
 EOT
 
 $config_txt .= "sub $_;\n" foreach sort keys %export_ok;
 
 my $myver = sprintf "%vd", $^V;
 
-$config_txt .= sprintf <<'ENDOFBEG', ($myver) x 3;
-
-# Define our own import method to avoid pulling in the full Exporter:
-sub import {
-    shift;
-    @_ = @Config::EXPORT unless @_;
-
-    my @funcs = grep $_ ne '%%Config', @_;
-    my $export_Config = @funcs < @_ ? 1 : 0;
-
-    no strict 'refs';
-    my $callpkg = caller(0);
-    foreach my $func (@funcs) {
-	die qq{"$func" is not exported by the Config module\n}
-	    unless $Export_Cache{$func};
-	*{$callpkg.'::'.$func} = \&{$func};
-    }
-
-    *{"$callpkg\::Config"} = \%%Config if $export_Config;
-    return;
-}
-
-die "$0: Perl lib version (%s) doesn't match executable '$^X' version ($])"
-    unless $^V;
-
-$^V eq %s
-    or die sprintf "%%s: Perl lib version (%s) doesn't match executable '$^X' version (%%vd)", $0, $^V;
-
+$config_txt .= sprintf uncomment <<'ENDOFBEG', ($myver) x 3;
+#
+#    # Define our own import method to avoid pulling in the full Exporter:
+#    sub import {
+#        shift;
+#        @_ = @Config::EXPORT unless @_;
+#
+#        my @funcs = grep $_ ne '%%Config', @_;
+#        my $export_Config = @funcs < @_ ? 1 : 0;
+#
+#        no strict 'refs';
+#        my $callpkg = caller(0);
+#        foreach my $func (@funcs) {
+#            die qq{"$func" is not exported by the Config module\n}
+#                unless $Export_Cache{$func};
+#            *{$callpkg.'::'.$func} = \&{$func};
+#        }
+#
+#        *{"$callpkg\::Config"} = \%%Config if $export_Config;
+#        return;
+#    }
+#
+#    die "$0: Perl lib version (%s) doesn't match executable '$^X' version ($])"
+#        unless $^V;
+#
+#    $^V eq %s
+#        or die sprintf "%%s: Perl lib version (%s) doesn't match executable '$^X' version (%%vd)", $0, $^V;
+#
 ENDOFBEG
 
 
@@ -217,12 +222,12 @@ my $quote;
 # (at least up to version 804.034) fails to build without them. We force them
 # to be emitted to Config_heavy.pl for backcompat with such modules (and we may
 # find that this set needs to be extended in future). See RT#132347.
-my @v_forced = map "$_\n", split /\n+/, <<'EOT';
-i_limits='define'
-i_stdlib='define'
-i_string='define'
-i_time='define'
-prototype='define'
+my @v_forced = map "$_\n", split /\n+/, uncomment <<'EOT';
+#    i_limits='define'
+#    i_stdlib='define'
+#    i_string='define'
+#    i_time='define'
+#    prototype='define'
 EOT
 
 
@@ -282,47 +287,47 @@ my %seen_quotes;
 # This is somewhat grim, but I want the code for parsing config.sh here and
 # now so that I can expand $Config{ivsize} and $Config{ivtype}
 
-my $fetch_string = <<'EOT';
-
-# Search for it in the big string
-sub fetch_string {
-    my($self, $key) = @_;
-
+my $fetch_string = uncomment <<'EOT';
+#
+#    # Search for it in the big string
+#    sub fetch_string {
+#        my($self, $key) = @_;
+#
 EOT
 
 if ($seen_quotes{'"'}) {
     # We need the full ' and " code
 
-$fetch_string .= <<'EOT';
-    return undef unless my ($quote_type, $value) = $Config_SH_expanded =~ /\n$key=(['"])(.*?)\1\n/s;
-
-    # If we had a double-quote, we'd better eval it so escape
-    # sequences and such can be interpolated. Since the incoming
-    # value is supposed to follow shell rules and not perl rules,
-    # we escape any perl variable markers
-
-    # Historically, since " 'support' was added in change 1409, the
-    # interpolation was done before the undef. Stick to this arguably buggy
-    # behaviour as we're refactoring.
-    if ($quote_type eq '"') {
-	$value =~ s/\$/\\\$/g;
-	$value =~ s/\@/\\\@/g;
-	eval "\$value = \"$value\"";
-    }
-
-    # So we can say "if $Config{'foo'}".
-    $self->{$key} = $value eq 'undef' ? undef : $value; # cache it
-}
+$fetch_string .= uncomment <<'EOT';
+#        return undef unless my ($quote_type, $value) = $Config_SH_expanded =~ /\n$key=(['"])(.*?)\1\n/s;
+#
+#        # If we had a double-quote, we'd better eval it so escape
+#        # sequences and such can be interpolated. Since the incoming
+#        # value is supposed to follow shell rules and not perl rules,
+#        # we escape any perl variable markers
+#
+#        # Historically, since " 'support' was added in change 1409, the
+#        # interpolation was done before the undef. Stick to this arguably buggy
+#        # behaviour as we're refactoring.
+#        if ($quote_type eq '"') {
+#            $value =~ s/\$/\\\$/g;
+#            $value =~ s/\@/\\\@/g;
+#            eval "\$value = \"$value\"";
+#        }
+#
+#        # So we can say "if $Config{'foo'}".
+#        $self->{$key} = $value eq 'undef' ? undef : $value; # cache it
+#    }
 EOT
 
 } else {
     # We only have ' delimited.
 
-$fetch_string .= <<'EOT';
-    return undef unless $Config_SH_expanded =~ /\n$key=\'(.*?)\'\n/s;
-    # So we can say "if $Config{'foo'}".
-    $self->{$key} = $1 eq 'undef' ? undef : $1;
-}
+$fetch_string .= uncomment <<'EOT';
+#        return undef unless $Config_SH_expanded =~ /\n$key=\'(.*?)\'\n/s;
+#        # So we can say "if $Config{'foo'}".
+#        $self->{$key} = $1 eq 'undef' ? undef : $1;
+#    }
 EOT
 
 }
@@ -429,32 +434,32 @@ if (fetch_string({}, 'otherlibdirs') =~ 
     $need_relocation{otherlibdirs} = 'otherlibdirs';
 }
 
-my $relocation_code = <<'EOT';
-
-sub relocate_inc {
-  my $libdir = shift;
-  return $libdir unless $libdir =~ s!^\.\.\./!!;
-  my $prefix = $^X;
-  if ($prefix =~ s!/[^/]*$!!) {
-    while ($libdir =~ m!^\.\./!) {
-      # Loop while $libdir starts "../" and $prefix still has a trailing
-      # directory
-      last unless $prefix =~ s!/([^/]+)$!!;
-      # but bail out if the directory we picked off the end of $prefix is .
-      # or ..
-      if ($1 eq '.' or $1 eq '..') {
-	# Undo! This should be rare, hence code it this way rather than a
-	# check each time before the s!!! above.
-	$prefix = "$prefix/$1";
-	last;
-      }
-      # Remove that leading ../ and loop again
-      substr ($libdir, 0, 3, '');
-    }
-    $libdir = "$prefix/$libdir";
-  }
-  $libdir;
-}
+my $relocation_code = uncomment <<'EOT';
+#
+#    sub relocate_inc {
+#      my $libdir = shift;
+#      return $libdir unless $libdir =~ s!^\.\.\./!!;
+#      my $prefix = $^X;
+#      if ($prefix =~ s!/[^/]*$!!) {
+#        while ($libdir =~ m!^\.\./!) {
+#          # Loop while $libdir starts "../" and $prefix still has a trailing
+#          # directory
+#          last unless $prefix =~ s!/([^/]+)$!!;
+#          # but bail out if the directory we picked off the end of $prefix is .
+#          # or ..
+#          if ($1 eq '.' or $1 eq '..') {
+#            # Undo! This should be rare, hence code it this way rather than a
+#            # check each time before the s!!! above.
+#            $prefix = "$prefix/$1";
+#            last;
+#          }
+#          # Remove that leading ../ and loop again
+#          substr ($libdir, 0, 3, '');
+#        }
+#        $libdir = "$prefix/$libdir";
+#      }
+#      $libdir;
+#    }
 EOT
 
 my $osname = fetch_string({}, 'osname');
@@ -462,66 +467,66 @@ my $from = $osname eq 'VMS' ? 'PERLSHR i
 my $env_cygwin = $osname eq 'cygwin'
     ? 'push @env, "CYGWIN=\"$ENV{CYGWIN}\"" if $ENV{CYGWIN};' . "\n" : "";
 
-$heavy_txt .= sprintf <<'ENDOFBEG', $osname, $osname, $from, $osname, $env_cygwin;
-# This file was created by configpm when Perl was built. Any changes
-# made to this file will be lost the next time perl is built.
-
-package Config;
-use strict;
-use warnings;
-our %%Config;
-
-sub bincompat_options {
-    return split ' ', (Internals::V())[0];
-}
-
-sub non_bincompat_options {
-    return split ' ', (Internals::V())[1];
-}
-
-sub compile_date {
-    return (Internals::V())[2]
-}
-
-sub local_patches {
-    my (undef, undef, undef, @patches) = Internals::V();
-    return @patches;
-}
-
-sub _V {
-    die "Perl lib was built for '%s' but is being run on '$^O'"
-        unless "%s" eq $^O;
-
-    my ($bincompat, $non_bincompat, $date, @patches) = Internals::V();
-
-    my @opts = sort split ' ', "$bincompat $non_bincompat";
-
-    print Config::myconfig();
-    print "\nCharacteristics of this %s: \n";
-
-    print "  Compile-time options:\n";
-    print "    $_\n" for @opts;
-
-    if (@patches) {
-        print "  Locally applied patches:\n";
-        print "    $_\n" foreach @patches;
-    }
-
-    print "  Built under %s\n";
-
-    print "  $date\n" if defined $date;
-
-    my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %%ENV;
-%s
-    if (@env) {
-        print "  \%%ENV:\n";
-        print "    $_\n" foreach @env;
-    }
-    print "  \@INC:\n";
-    print "    $_\n" foreach @INC;
-}
-
-sub header_files {
+$heavy_txt .= sprintf uncomment <<'ENDOFBEG', $osname, $osname, $from, $osname, $env_cygwin;
+#    # This file was created by configpm when Perl was built. Any changes
+#    # made to this file will be lost the next time perl is built.
+#
+#    package Config;
+#    use strict;
+#    use warnings;
+#    our %%Config;
+#
+#    sub bincompat_options {
+#        return split ' ', (Internals::V())[0];
+#    }
+#
+#    sub non_bincompat_options {
+#        return split ' ', (Internals::V())[1];
+#    }
+#
+#    sub compile_date {
+#        return (Internals::V())[2]
+#    }
+#
+#    sub local_patches {
+#        my (undef, undef, undef, @patches) = Internals::V();
+#        return @patches;
+#    }
+#
+#    sub _V {
+#        die "Perl lib was built for '%s' but is being run on '$^O'"
+#            unless "%s" eq $^O;
+#
+#        my ($bincompat, $non_bincompat, $date, @patches) = Internals::V();
+#
+#        my @opts = sort split ' ', "$bincompat $non_bincompat";
+#
+#        print Config::myconfig();
+#        print "\nCharacteristics of this %s: \n";
+#
+#        print "  Compile-time options:\n";
+#        print "    $_\n" for @opts;
+#
+#        if (@patches) {
+#            print "  Locally applied patches:\n";
+#            print "    $_\n" foreach @patches;
+#        }
+#
+#        print "  Built under %s\n";
+#
+#        print "  $date\n" if defined $date;
+#
+#        my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %%ENV;
+#    %s
+#        if (@env) {
+#            print "  \%%ENV:\n";
+#            print "    $_\n" foreach @env;
+#        }
+#        print "  \@INC:\n";
+#        print "    $_\n" foreach @INC;
+#    }
+#
+#    sub header_files {
 ENDOFBEG
 
 $heavy_txt .= $header_files . "\n}\n\n";
@@ -548,33 +553,35 @@ open(MYCONFIG,'<','myconfig.SH') || die 
 do { $heavy_txt .= $_ } until !defined($_ = <MYCONFIG>) || /^\s*$/;
 close(MYCONFIG);
 
-$heavy_txt .= "\n!END!\n" . <<'EOT';
-my $summary_expanded;
-
-sub myconfig {
-    return $summary_expanded if $summary_expanded;
-    ($summary_expanded = $summary) =~ s{\$(\w+)}
-		 { 
-			my $c;
-			if ($1 eq 'git_ancestor_line') {
-				if ($Config::Config{git_ancestor}) {
-					$c= "\n  Ancestor: $Config::Config{git_ancestor}";
-				} else {
-					$c= "";
-				}
-			} else {
-                     		$c = $Config::Config{$1}; 
-			}
-			defined($c) ? $c : 'undef' 
-		}ge;
-    $summary_expanded;
-}
-
-local *_ = \my $a;
-$_ = <<'!END!';
+$heavy_txt .= "\n!END!\n" . uncomment <<'EOT';
+#    my $summary_expanded;
+#
+#    sub myconfig {
+#        return $summary_expanded if $summary_expanded;
+#        ($summary_expanded = $summary) =~ s{\$(\w+)}
+#                     {
+#                            my $c;
+#                            if ($1 eq 'git_ancestor_line') {
+#                                    if ($Config::Config{git_ancestor}) {
+#                                            $c= "\n  Ancestor: $Config::Config{git_ancestor}";
+#                                    } else {
+#                                            $c= "";
+#                                    }
+#                            } else {
+#                                    $c = $Config::Config{$1};
+#                            }
+#                            defined($c) ? $c : 'undef'
+#                    }ge;
+#        $summary_expanded;
+#    }
+#
+#    local *_ = \my $a;
+#    $_ = <<'!END!';
 EOT
 #proper lexicographical order of the keys
 my %seen_var;
+my @v_define = ( "taint_support=''\n",
+                 "taint_disabled=''\n" );
 $heavy_txt .= join('',
     map { $_->[-1] }
     sort {$a->[0] cmp $b->[0] }
@@ -582,7 +589,7 @@ $heavy_txt .= join('',
     map {
         /^([^=]+)/ ? [ $1, $_ ]
                    : [ $_, $_ ] # shouldnt happen
-    } @v_others, @v_forced
+    } (@v_others, @v_forced, @v_define)
 ) . "!END!\n";
 
 # Only need the dynamic byteorder code in Config.pm if 'byteorder' is one of
@@ -593,29 +600,53 @@ if ($Common{byteorder}) {
     $heavy_txt .= $byteorder_code;
 }
 
+$heavy_txt .= uncomment <<'EOT';
+#    s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
+#
+EOT
+
+$heavy_txt .= uncomment <<'EOF_TAINT_INIT';
+#    {
+#        # We have to set this up late as Win32 does not build miniperl
+#        # with the same defines and CC flags as it builds perl itself.
+#        my $defines = join " ", (Internals::V)[0,1];
+#        if (
+#            $defines =~ /\b(SILENT_NO_TAINT_SUPPORT)\b/ ||
+#            $defines =~ /\b(NO_TAINT_SUPPORT)\b/
+#        ){
+#            my $which = $1;
+#            my $taint_disabled = ($which eq "SILENT_NO_TAINT_SUPPORT")
+#                                 ? "silent" : "define";
+#            s/^(taint_disabled=['"])(["'])/$1$taint_disabled$2/m;
+#        }
+#        else {
+#            my $taint_support = 'define';
+#            s/^(taint_support=['"])(["'])/$1$taint_support$2/m;
+#        }
+#    }
+EOF_TAINT_INIT
+
 if (@need_relocation) {
 $heavy_txt .= 'foreach my $what (qw(' . join (' ', @need_relocation) .
-      ")) {\n" . <<'EOT';
-    s/^($what=)(['"])(.*?)\2/$1 . $2 . relocate_inc($3) . $2/me;
-}
+      ")) {\n" . uncomment <<'EOT';
+#        s/^($what=)(['"])(.*?)\2/$1 . $2 . relocate_inc($3) . $2/me;
+#    }
 EOT
 # Currently it only makes sense to do the ... relocation on Unix, so there's
 # no need to emulate the "which separator for this platform" logic in perl.c -
 # ':' will always be applicable
 if ($need_relocation{otherlibdirs}) {
-$heavy_txt .= << 'EOT';
-s{^(otherlibdirs=)(['"])(.*?)\2}
- {$1 . $2 . join ':', map {relocate_inc($_)} split ':', $3 . $2}me;
+$heavy_txt .= uncomment << 'EOT';
+#    s{^(otherlibdirs=)(['"])(.*?)\2}
+#     {$1 . $2 . join ':', map {relocate_inc($_)} split ':', $3 . $2}me;
 EOT
 }
 }
 
-$heavy_txt .= <<'EOT';
-s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m;
-
-my $config_sh_len = length $_;
-
-our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
+$heavy_txt .= uncomment <<'EOT';
+#    my $config_sh_len = length $_;
+#
+#    our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
 EOT
 
 foreach my $prefix (qw(ccflags ldflags)) {
@@ -670,129 +701,129 @@ if (open(my $fh, '<', 'cflags')) {
 
 $heavy_txt .= "EOVIRTUAL\n";
 
-$heavy_txt .= <<'ENDOFGIT';
-eval {
-	# do not have hairy conniptions if this isnt available
-	require 'Config_git.pl';
-	$Config_SH_expanded .= $Config::Git_Data;
-	1;
-} or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n";
+$heavy_txt .= uncomment <<'ENDOFGIT';
+#    eval {
+#            # do not have hairy conniptions if this isnt available
+#            require 'Config_git.pl';
+#            $Config_SH_expanded .= $Config::Git_Data;
+#            1;
+#    } or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n";
 ENDOFGIT
 
 $heavy_txt .= $fetch_string;
 
-$config_txt .= <<'ENDOFEND';
-
-sub FETCH {
-    my($self, $key) = @_;
-
-    # check for cached value (which may be undef so we use exists not defined)
-    return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
-}
-
+$config_txt .= uncomment <<'ENDOFEND';
+#
+#    sub FETCH {
+#        my($self, $key) = @_;
+#
+#        # check for cached value (which may be undef so we use exists not defined)
+#        return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
+#    }
+#
 ENDOFEND
 
-$heavy_txt .= <<'ENDOFEND';
-
-my $prevpos = 0;
-
-sub FIRSTKEY {
-    $prevpos = 0;
-    substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 );
-}
-
-sub NEXTKEY {
+$heavy_txt .= uncomment <<'ENDOFEND';
+#
+#    my $prevpos = 0;
+#
+#    sub FIRSTKEY {
+#        $prevpos = 0;
+#        substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 );
+#    }
+#
+#    sub NEXTKEY {
 ENDOFEND
 if ($seen_quotes{'"'}) {
-$heavy_txt .= <<'ENDOFEND';
-    # Find out how the current key's quoted so we can skip to its end.
-    my $quote = substr($Config_SH_expanded,
-		       index($Config_SH_expanded, "=", $prevpos)+1, 1);
-    my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2;
+$heavy_txt .= uncomment <<'ENDOFEND';
+#        # Find out how the current key's quoted so we can skip to its end.
+#        my $quote = substr($Config_SH_expanded,
+#                           index($Config_SH_expanded, "=", $prevpos)+1, 1);
+#        my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2;
 ENDOFEND
 } else {
     # Just ' quotes, so it's much easier.
-$heavy_txt .= <<'ENDOFEND';
-    my $pos = index($Config_SH_expanded, qq('\n), $prevpos) + 2;
+$heavy_txt .= uncomment <<'ENDOFEND';
+#        my $pos = index($Config_SH_expanded, qq('\n), $prevpos) + 2;
 ENDOFEND
 }
-$heavy_txt .= <<'ENDOFEND';
-    my $len = index($Config_SH_expanded, "=", $pos) - $pos;
-    $prevpos = $pos;
-    $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef;
-}
-
-sub EXISTS {
-    return 1 if exists($_[0]->{$_[1]});
-
-    return(index($Config_SH_expanded, "\n$_[1]='") != -1
+$heavy_txt .= uncomment <<'ENDOFEND';
+#        my $len = index($Config_SH_expanded, "=", $pos) - $pos;
+#        $prevpos = $pos;
+#        $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef;
+#    }
+#
+#    sub EXISTS {
+#        return 1 if exists($_[0]->{$_[1]});
+#
+#        return(index($Config_SH_expanded, "\n$_[1]='") != -1
 ENDOFEND
 if ($seen_quotes{'"'}) {
-$heavy_txt .= <<'ENDOFEND';
-           or index($Config_SH_expanded, "\n$_[1]=\"") != -1
+$heavy_txt .= uncomment <<'ENDOFEND';
+#               or index($Config_SH_expanded, "\n$_[1]=\"") != -1
 ENDOFEND
 }
-$heavy_txt .= <<'ENDOFEND';
-          );
-}
-
-sub STORE  { die "\%Config::Config is read-only\n" }
-*DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space
-
-sub config_sh {
-    substr $Config_SH_expanded, 1, $config_sh_len;
-}
-
-sub config_re {
-    my $re = shift;
-    return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/,
-    $Config_SH_expanded;
-}
-
-sub config_vars {
-    # implements -V:cfgvar option (see perlrun -V:)
-    foreach (@_) {
-	# find optional leading, trailing colons; and query-spec
-	my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/;	# flags fore and aft, 
-	# map colon-flags to print decorations
-	my $prfx = $notag ? '': "$qry=";		# tag-prefix for print
-	my $lnend = $lncont ? ' ' : ";\n";		# line ending for print
-
-	# all config-vars are by definition \w only, any \W means regex
-	if ($qry =~ /\W/) {
-	    my @matches = config_re($qry);
-	    print map "$_$lnend", @matches ? @matches : "$qry: not found"		if !$notag;
-	    print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found"	if  $notag;
-	} else {
-	    my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry}
-						   : 'UNKNOWN';
-	    $v = 'undef' unless defined $v;
-	    print "${prfx}'${v}'$lnend";
-	}
-    }
-}
-
-# Called by the real AUTOLOAD
-sub launcher {
-    undef &AUTOLOAD;
-    goto \&$Config::AUTOLOAD;
-}
-
-1;
+$heavy_txt .= uncomment <<'ENDOFEND';
+#              );
+#    }
+#
+#    sub STORE  { die "\%Config::Config is read-only\n" }
+#    *DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space
+#
+#    sub config_sh {
+#        substr $Config_SH_expanded, 1, $config_sh_len;
+#    }
+#
+#    sub config_re {
+#        my $re = shift;
+#        return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/,
+#        $Config_SH_expanded;
+#    }
+#
+#    sub config_vars {
+#        # implements -V:cfgvar option (see perlrun -V:)
+#        foreach (@_) {
+#            # find optional leading, trailing colons; and query-spec
+#            my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/;  # flags fore and aft,
+#            # map colon-flags to print decorations
+#            my $prfx = $notag ? '': "$qry=";                # tag-prefix for print
+#            my $lnend = $lncont ? ' ' : ";\n";              # line ending for print
+#
+#            # all config-vars are by definition \w only, any \W means regex
+#            if ($qry =~ /\W/) {
+#                my @matches = config_re($qry);
+#                print map "$_$lnend", @matches ? @matches : "$qry: not found"               if !$notag;
+#                print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found"  if  $notag;
+#            } else {
+#                my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry}
+#                                                       : 'UNKNOWN';
+#                $v = 'undef' unless defined $v;
+#                print "${prfx}'${v}'$lnend";
+#            }
+#        }
+#    }
+#
+#    # Called by the real AUTOLOAD
+#    sub launcher {
+#        undef &AUTOLOAD;
+#        goto \&$Config::AUTOLOAD;
+#    }
+#
+#    1;
 ENDOFEND
 
 if ($^O eq 'os2') {
-    $config_txt .= <<'ENDOFSET';
-my %preconfig;
-if ($OS2::is_aout) {
-    my ($value, $v) = $Config_SH_expanded =~ m/^used_aout='(.*)'\s*$/m;
-    for (split ' ', $value) {
-        ($v) = $Config_SH_expanded =~ m/^aout_$_='(.*)'\s*$/m;
-        $preconfig{$_} = $v eq 'undef' ? undef : $v;
-    }
-}
-$preconfig{d_fork} = undef unless $OS2::can_fork; # Some funny cases can't
-sub TIEHASH { bless {%preconfig} }
+    $config_txt .= uncomment <<'ENDOFSET';
+#    my %preconfig;
+#    if ($OS2::is_aout) {
+#        my ($value, $v) = $Config_SH_expanded =~ m/^used_aout='(.*)'\s*$/m;
+#        for (split ' ', $value) {
+#            ($v) = $Config_SH_expanded =~ m/^aout_$_='(.*)'\s*$/m;
+#            $preconfig{$_} = $v eq 'undef' ? undef : $v;
+#        }
+#    }
+#    $preconfig{d_fork} = undef unless $OS2::can_fork; # Some funny cases can't
+#    sub TIEHASH { bless {%preconfig} }
 ENDOFSET
     # Extract the name of the DLL from the makefile to avoid duplication
     my ($f) = grep -r, qw(GNUMakefile Makefile);
@@ -802,14 +833,14 @@ ENDOFSET
 	    $dll = $1, last if /^PERL_DLL_BASE\s*=\s*(\S*)\s*$/;
 	}
     }
-    $config_txt .= <<ENDOFSET if $dll;
-\$preconfig{dll_name} = '$dll';
+    $config_txt .= uncomment <<ENDOFSET if $dll;
+#    \$preconfig{dll_name} = '$dll';
 ENDOFSET
 } else {
-    $config_txt .= <<'ENDOFSET';
-sub TIEHASH {
-    bless $_[1], $_[0];
-}
+    $config_txt .= uncomment <<'ENDOFSET';
+#    sub TIEHASH {
+#        bless $_[1], $_[0];
+#    }
 ENDOFSET
 }
 
@@ -840,202 +871,194 @@ my $fast_config = join '', map { "    $_
 
 # Sanity check needed to stop an infinite loop if Config_heavy.pl fails to
 # define &launcher for some reason (eg it got truncated)
-$config_txt .= sprintf <<'ENDOFTIE', $fast_config;
-
-sub DESTROY { }
-
-sub AUTOLOAD {
-    require 'Config_heavy.pl';
-    goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
-    die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
-}
-
-# tie returns the object, so the value returned to require will be true.
-tie %%Config, 'Config', {
-%s};
+$config_txt .= sprintf uncomment <<'ENDOFTIE', $fast_config;
+#
+#    sub DESTROY { }
+#
+#    sub AUTOLOAD {
+#        require 'Config_heavy.pl';
+#        goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
+#        die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
+#    }
+#
+#    # tie returns the object, so the value returned to require will be true.
+#    tie %%Config, 'Config', {
+#    %s};
 ENDOFTIE
 
 
 open(CONFIG_POD, '>:raw', $Config_POD) or die "Can't open $Config_POD: $!";
-print CONFIG_POD <<'ENDOFTAIL';
-=head1 NAME
-
-=for comment  Generated by configpm.  Any changes made here will be lost!
-
-Config - access Perl configuration information
-
-=head1 SYNOPSIS
-
-    use Config;
-    if ($Config{usethreads}) {
-	print "has thread support\n"
-    } 
-
-    use Config qw(myconfig config_sh config_vars config_re);
-
-    print myconfig();
-
-    print config_sh();
-
-    print config_re();
-
-    config_vars(qw(osname archname));
-
-
-=head1 DESCRIPTION
-
-The Config module contains all the information that was available to
-the C<Configure> program at Perl build time (over 900 values).
-
-Shell variables from the F<config.sh> file (written by Configure) are
-stored in the readonly-variable C<%Config>, indexed by their names.
-
-Values stored in config.sh as 'undef' are returned as undefined
-values.  The perl C<exists> function can be used to check if a
-named variable exists.
-
-For a description of the variables, please have a look at the
-Glossary file, as written in the Porting folder, or use the url:
-https://github.com/Perl/perl5/blob/blead/Porting/Glossary
-
-=over 4
-
-=item myconfig()
-
-Returns a textual summary of the major perl configuration values.
-See also C<-V> in L<perlrun/Command Switches>.
-
-=item config_sh()
-
-Returns the entire perl configuration information in the form of the
-original config.sh shell variable assignment script.
-
-=item config_re($regex)
-
-Like config_sh() but returns, as a list, only the config entries who's
-names match the $regex.
-
-=item config_vars(@names)
-
-Prints to STDOUT the values of the named configuration variable. Each is
-printed on a separate line in the form:
-
-  name='value';
-
-Names which are unknown are output as C<name='UNKNOWN';>.
-See also C<-V:name> in L<perlrun/Command Switches>.
-
-=item bincompat_options()
-
-Returns a list of C pre-processor options used when compiling this F<perl>
-binary, which affect its binary compatibility with extensions.
-C<bincompat_options()> and C<non_bincompat_options()> are shown together in
-the output of C<perl -V> as I<Compile-time options>.
-
-=item non_bincompat_options()
-
-Returns a list of C pre-processor options used when compiling this F<perl>
-binary, which do not affect binary compatibility with extensions.
-
-=item compile_date()
-
-Returns the compile date (as a string), equivalent to what is shown by
-C<perl -V>
-
-=item local_patches()
-
-Returns a list of the names of locally applied patches, equivalent to what
-is shown by C<perl -V>.
-
-=item header_files()
-
-Returns a list of the header files that should be used as dependencies for
-XS code, for this version of Perl on this platform.
-
-=back
-
-=head1 EXAMPLE
-
-Here's a more sophisticated example of using %Config:
-
-    use Config;
-    use strict;
-
-    my %sig_num;
-    my @sig_name;
-    unless($Config{sig_name} && $Config{sig_num}) {
-	die "No sigs?";
-    } else {
-	my @names = split ' ', $Config{sig_name};
-	@sig_num{@names} = split ' ', $Config{sig_num};
-	foreach (@names) {
-	    $sig_name[$sig_num{$_}] ||= $_;
-	}   
-    }
-
-    print "signal #17 = $sig_name[17]\n";
-    if ($sig_num{ALRM}) { 
-	print "SIGALRM is $sig_num{ALRM}\n";
-    }   
-
-=head1 WARNING
-
-Because this information is not stored within the perl executable
-itself it is possible (but unlikely) that the information does not
-relate to the actual perl binary which is being used to access it.
-
-The Config module is installed into the architecture and version
-specific library directory ($Config{installarchlib}) and it checks the
-perl version number when loaded.
-
-The values stored in config.sh may be either single-quoted or
-double-quoted. Double-quoted strings are handy for those cases where you
-need to include escape sequences in the strings. To avoid runtime variable
-interpolation, any C<$> and C<@> characters are replaced by C<\$> and
-C<\@>, respectively. This isn't foolproof, of course, so don't embed C<\$>
-or C<\@> in double-quoted strings unless you're willing to deal with the
-consequences. (The slashes will end up escaped and the C<$> or C<@> will
-trigger variable interpolation)
-
-=head1 GLOSSARY
-
-Most C<Config> variables are determined by the C<Configure> script
-on platforms supported by it (which is most UNIX platforms).  Some
-platforms have custom-made C<Config> variables, and may thus not have
-some of the variables described below, or may have extraneous variables
-specific to that particular port.  See the port specific documentation
-in such cases.
-
-=cut
-
+print CONFIG_POD uncomment <<'ENDOFTAIL';
+#    =head1 NAME
+#
+#    =for comment  Generated by configpm.  Any changes made here will be lost!
+#
+#    Config - access Perl configuration information
+#
+#    =head1 SYNOPSIS
+#
+#        use Config;
+#        if ($Config{usethreads}) {
+#            print "has thread support\n"
+#        }
+#
+#        use Config qw(myconfig config_sh config_vars config_re);
+#
+#        print myconfig();
+#
+#        print config_sh();
+#
+#        print config_re();
+#
+#        config_vars(qw(osname archname));
+#
+#
+#    =head1 DESCRIPTION
+#
+#    The Config module contains all the information that was available to
+#    the F<Configure> program at Perl build time (over 900 values).
+#
+#    Shell variables from the F<config.sh> file (written by Configure) are
+#    stored in the readonly-variable C<%Config>, indexed by their names.
+#
+#    Values stored in config.sh as 'undef' are returned as undefined
+#    values.  The perl C<exists> function can be used to check if a
+#    named variable exists.
+#
+#    For a description of the variables, please have a look at the
+#    Glossary file, as written in the Porting folder, or use the url:
+#    https://github.com/Perl/perl5/blob/blead/Porting/Glossary
+#
+#    =over 4
+#
+#    =item myconfig()
+#
+#    Returns a textual summary of the major perl configuration values.
+#    See also C<-V> in L<perlrun/Command Switches>.
+#
+#    =item config_sh()
+#
+#    Returns the entire perl configuration information in the form of the
+#    original config.sh shell variable assignment script.
+#
+#    =item config_re($regex)
+#
+#    Like config_sh() but returns, as a list, only the config entries who's
+#    names match the $regex.
+#
+#    =item config_vars(@names)
+#
+#    Prints to STDOUT the values of the named configuration variable. Each is
+#    printed on a separate line in the form:
+#
+#      name='value';
+#
+#    Names which are unknown are output as C<name='UNKNOWN';>.
+#    See also C<-V:name> in L<perlrun/Command Switches>.
+#
+#    =item bincompat_options()
+#
+#    Returns a list of C pre-processor options used when compiling this F<perl>
+#    binary, which affect its binary compatibility with extensions.
+#    C<bincompat_options()> and C<non_bincompat_options()> are shown together in
+#    the output of C<perl -V> as I<Compile-time options>.
+#
+#    =item non_bincompat_options()
+#
+#    Returns a list of C pre-processor options used when compiling this F<perl>
+#    binary, which do not affect binary compatibility with extensions.
+#
+#    =item compile_date()
+#
+#    Returns the compile date (as a string), equivalent to what is shown by
+#    C<perl -V>
+#
+#    =item local_patches()
+#
+#    Returns a list of the names of locally applied patches, equivalent to what
+#    is shown by C<perl -V>.
+#
+#    =item header_files()
+#
+#    Returns a list of the header files that should be used as dependencies for
+#    XS code, for this version of Perl on this platform.
+#
+#    =back
+#
+#    =head1 EXAMPLE
+#
+#    Here's a more sophisticated example of using %Config:
+#
+#        use Config;
+#        use strict;
+#
+#        my %sig_num;
+#        my @sig_name;
+#        unless($Config{sig_name} && $Config{sig_num}) {
+#            die "No sigs?";
+#        } else {
+#            my @names = split ' ', $Config{sig_name};
+#            @sig_num{@names} = split ' ', $Config{sig_num};
+#            foreach (@names) {
+#                $sig_name[$sig_num{$_}] ||= $_;
+#            }
+#        }
+#
+#        print "signal #17 = $sig_name[17]\n";
+#        if ($sig_num{ALRM}) {
+#            print "SIGALRM is $sig_num{ALRM}\n";
+#        }
+#
+#    =head1 WARNING
+#
+#    Because this information is not stored within the perl executable
+#    itself it is possible (but unlikely) that the information does not
+#    relate to the actual perl binary which is being used to access it.
+#
+#    The Config module is installed into the architecture and version
+#    specific library directory ($Config{installarchlib}) and it checks the
+#    perl version number when loaded.
+#
+#    The values stored in config.sh may be either single-quoted or
+#    double-quoted. Double-quoted strings are handy for those cases where you
+#    need to include escape sequences in the strings. To avoid runtime variable
+#    interpolation, any C<$> and C<@> characters are replaced by C<\$> and
+#    C<\@>, respectively. This isn't foolproof, of course, so don't embed C<\$>
+#    or C<\@> in double-quoted strings unless you're willing to deal with the
+#    consequences. (The slashes will end up escaped and the C<$> or C<@> will
+#    trigger variable interpolation)
+#
+#    =head1 GLOSSARY
+#
+#    Most C<Config> variables are determined by the C<Configure> script
+#    on platforms supported by it (which is most UNIX platforms).  Some
+#    platforms have custom-made C<Config> variables, and may thus not have
+#    some of the variables described below, or may have extraneous variables
+#    specific to that particular port.  See the port specific documentation
+#    in such cases.
+#
+#    =cut
+#
 ENDOFTAIL
 
 if ($Opts{glossary}) {
   open(GLOS, '<', $Glossary) or die "Can't open $Glossary: $!";
 }
-my %seen = ();
 my $text = 0;
 $/ = '';
 my $errors= 0;
 
-sub process {
-  if (s/\A(\w*)\s+\(([\w.]+)\):\s*\n(\t?)/=item C<$1>\n\nFrom F<$2>:\n\n/m) {
-    my $c = substr $1, 0, 1;
-    unless ($seen{$c}++) {
-      print CONFIG_POD <<EOF if $text;
-=back
+my %glossary;
 
-EOF
-      print CONFIG_POD <<EOF;
-=head2 $c
+my $fc;
+my $item;
 
-=over 4
-
-EOF
-     $text = 1;
-    }
+sub process {
+  if (s/\A(\w*)\s+\(([\w.]+)\):\s*\n(\t?)/=item C<$1>\n\nFrom F<$2>:\n\n/m) {
+    $item = $1;
+    $fc = substr $item, 0, 1;
   }
-  elsif (!$text || !/\A\t/) {
+  elsif (!$item || !/\A\t/) {
     warn "Expected a Configure variable header",
       ($text ? " or another paragraph of description" : () ),
       ", instead we got:\n$_";
@@ -1067,6 +1090,7 @@ EOF
   s/(?<![.<\'\"])\b([A-Z_]{2,})\b(?![\'\"])/C<$1>/g;	# UNISTD
   s/(?<![.<\'\"])\b(?!the\b)(\w+)\s+macro\b/C<$1> macro/g; # FILE_cnt macro
   s/n[\0]t/n't/g;		# undo can't, won't damage
+  $glossary{$fc}{$item} .= $_;
 }
 
 if ($Opts{glossary}) {
@@ -1074,7 +1098,6 @@ if ($Opts{glossary}) {
     <GLOS>;				# Skip the preamble
   while (<GLOS>) {
     process;
-    print CONFIG_POD;
   }
   if ($errors) {
     die "Errors encountered while processing $Glossary. ",
@@ -1085,33 +1108,67 @@ if ($Opts{glossary}) {
   }
 }
 
-print CONFIG_POD <<'ENDOFTAIL';
-
-=back
-
-=head1 GIT DATA
-
-Information on the git commit from which the current perl binary was compiled
-can be found in the variable C<$Config::Git_Data>.  The variable is a
-structured string that looks something like this:
-
-  git_commit_id='ea0c2dbd5f5ac6845ecc7ec6696415bf8e27bd52'
-  git_describe='GitLive-blead-1076-gea0c2db'
-  git_branch='smartmatch'
-  git_uncommitted_changes=''
-  git_commit_id_title='Commit id:'
-  git_commit_date='2009-05-09 17:47:31 +0200'
-
-Its format is not guaranteed not to change over time.
-
-=head1 NOTE
+$glossary{t}{taint_support} //= uncomment <<EOF_TEXT;
+#    =item C<taint_support>
+#
+#    From define: C<SILENT_NO_TAINT_SUPPORT> or C<NO_TAINT_SUPPORT>
+#
+#    If this perl is compiled with support for taint mode this variable will
+#    be set to 'define', if it is not it will be set to the empty string.
+#    Either of the above defines will result in it being empty.  This property
+#    was added in version 5.37.11. See also L</taint_disabled>.
+#
+EOF_TEXT
 
-This module contains a good example of how to use tie to implement a
-cache and an example of how to make a tied variable readonly to those
-outside of it.
+$glossary{t}{taint_disabled} //= uncomment <<EOF_TEXT;
+#    =item C<taint_disabled>
+#
+#    From define: C<SILENT_NO_TAINT_SUPPORT> or C<NO_TAINT_SUPPORT>
+#
+#    If this perl is compiled with support for taint mode this variable will
+#    be set to the empty string, if it was compiled with
+#    C<SILENT_NO_TAINT_SUPPORT> defined then it will be set to be "silent",
+#    and if it was compiled with C<NO_TAINT_SUPPORT> defined it will be
+#    'define'. Either of the above defines will results in it being a true
+#    value. This property was added in 5.37.11. See also L</taint_support>.
+#
+EOF_TEXT
 
-=cut
+if ($Opts{glossary}) {
+    foreach my $fc (sort keys %glossary) {
+        print CONFIG_POD "=head2 $fc\n\n=over 4\n\n";
+        foreach my $item (sort keys %{$glossary{$fc}}) {
+            print CONFIG_POD $glossary{$fc}{$item};
+        }
+        print CONFIG_POD "=back\n\n";
+    }
+}
 
+print CONFIG_POD uncomment <<'ENDOFTAIL';
+#
+#    =head1 GIT DATA
+#
+#    Information on the git commit from which the current perl binary was compiled
+#    can be found in the variable C<$Config::Git_Data>.  The variable is a
+#    structured string that looks something like this:
+#
+#      git_commit_id='ea0c2dbd5f5ac6845ecc7ec6696415bf8e27bd52'
+#      git_describe='GitLive-blead-1076-gea0c2db'
+#      git_branch='smartmatch'
+#      git_uncommitted_changes=''
+#      git_commit_id_title='Commit id:'
+#      git_commit_date='2009-05-09 17:47:31 +0200'
+#
+#    Its format is not guaranteed not to change over time.
+#
+#    =head1 NOTE
+#
+#    This module contains a good example of how to use tie to implement a
+#    cache and an example of how to make a tied variable readonly to those
+#    outside of it.
+#
+#    =cut
+#
 ENDOFTAIL
 
 close(GLOS) if $Opts{glossary};
Index: gnu/usr.bin/perl/configure.com
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/configure.com,v
diff -u -p -a -u -p -r1.11 configure.com
--- gnu/usr.bin/perl/configure.com	8 Jul 2023 14:18:35 -0000	1.11
+++ gnu/usr.bin/perl/configure.com	21 Feb 2024 15:47:00 -0000
@@ -36,7 +36,6 @@ $! VMS-isms we will need:
 $ echo = "write sys$output "
 $ cat  = "type"
 $ delete := delete ! local symbol overrides globals with qualifiers
-$ gcc_symbol = "gcc"
 $ ld = "Link/nodebug"
 $ ans = ""
 $ macros = ""
@@ -1288,7 +1287,6 @@ $!
 $ version = revision + "_" + patchlevel + "_" + subversion
 $!
 $!: see if we need a special compiler
-$! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands
 $!
 $ nocc = "f"
 $ vms_cc_dflt = ""
@@ -1302,8 +1300,6 @@ $ WRITE CONFIG "#include <stdio.h>"
 $ WRITE CONFIG "int main() {"
 $ WRITE CONFIG "#ifdef __DECC"
 $ WRITE CONFIG "        printf(""/DECC\n"");"
-$ WRITE CONFIG "#else"
-$ WRITE CONFIG "        printf(""/VAXC\n"");"
 $ WRITE CONFIG "#endif"
 $ WRITE CONFIG "        exit(0);"
 $ WRITE CONFIG "}"
@@ -1318,11 +1314,7 @@ $ SET ON
 $ IF (silent) THEN GOSUB Shut_up
 $ IF tmp.NE.%X10B90001
 $ THEN 
-$  IF tmp.NE.%X10000001
-$  THEN 
-$    nocc = "t"  !%X10000001 is return from gcc
-$    GOTO Gcc_initial_check
-$  ENDIF
+$   GOTO Cxx_initial_check
 $ ENDIF
 $!
 $ GOSUB List_Parse
@@ -1336,33 +1328,6 @@ $   vms_cc_dflt = "/decc"
 $   vms_cc_available = vms_cc_available + "cc/decc "
 $ ENDIF
 $!
-$Gcc_initial_check:
-$ echo "Checking for gcc"
-$ OPEN/WRITE CONFIG gccvers.lis
-$ SET NOON
-$ DEFINE/USER_MODE SYS$ERROR CONFIG
-$ DEFINE/USER_MODE SYS$OUTPUT CONFIG
-$ 'gcc_symbol'/noobj/version _nla0:
-$ tmp = $status
-$ SET ON
-$ IF (silent) THEN GOSUB Shut_up
-$ CLOSE CONFIG
-$ IF (tmp.NE.%X10000001).and.(tmp.ne.%X00030001)
-$ THEN
-$   echo "Symbol ""''gcc_symbol'"" is not defined. I guess you do not have it."
-$   DELETE/NOLOG/NOCONFIRM gccvers.lis;
-$   GOTO Cxx_initial_check
-$ ENDIF
-$ OPEN/READ CONFIG gccvers.lis
-$GCC_List_Read:
-$ READ/END_OF_FILE=GCC_List_End CONFIG line
-$ GOTO GCC_List_Read
-$GCC_List_End:
-$ CLOSE CONFIG
-$ echo line
-$ vms_cc_available = vms_cc_available + "''gcc_symbol' "
-$ DELETE/NOLOG/NOCONFIRM gccvers.lis;
-$!
 $Cxx_initial_check:
 $!
 $! In order to build with the HP C++ compiler, invoke configure.com with "-Dusecxx" on
@@ -1456,8 +1421,6 @@ $     dflt = "cxx"
 $   ELSE
 $     dflt = "cc''vms_cc_dflt'"  !-> "cc" in case first compile went OK
 $   ENDIF
-$ ELSE
-$   dflt = gcc_symbol
 $ ENDIF
 $ rp = "Use which C compiler? [''dflt'] "
 $ GOSUB myread
@@ -1506,11 +1469,6 @@ $   THEN
 $     ccname := DEC
 $     C_COMPILER_Replace = "CC=cc=''Mcc'"
 $   ENDIF
-$   IF Mcc .EQS. "gcc"
-$   THEN
-$     ccname := GCC
-$     C_COMPILER_Replace = "CC=cc=''Mcc'"
-$   ENDIF
 $ ENDIF
 $Decc_Version_check:
 $ ccversion=""
@@ -1562,121 +1520,7 @@ $   echo4 "adding /NOANSI_ALIAS qualifie
 $   ccflags = ccflags + "/NOANSI_ALIAS"
 $   DELETE/NOLOG/NOCONFIRM deccvers.*;
 $ ENDIF
-$Gcc_check:
-$ gccversion = ""
-$ IF ccname .EQS. "GCC"
-$ THEN
-$   vaxcrtl_olb = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB")
-$   vaxcrtl_exe = F$SEARCH("SYS$SHARE:VAXCRTL.EXE")
-$   gcclib_olb  = F$SEARCH("GNU_CC:[000000]GCCLIB.OLB")
-$   IF gcclib_olb .EQS. "" 
-$   THEN 
-$!    These objects/libs come w/ gcc 2.7.2 for AXP:
-$     tmp = F$SEARCH("GNU_CC:[000000]libgcc2.olb")
-$     IF tmp .NES. "" then gcclib_olb = tmp
-$     tmp = F$SEARCH("GNU_CC:[000000]libgcclib.olb")
-$     IF tmp .NES. "" 
-$     THEN 
-$       IF gcclib_olb .EQS. "" 
-$       THEN gcclib_olb = tmp
-$       ELSE gcclib_olb = gcclib_olb + "/lib," + tmp
-$       ENDIF
-$     ENDIF
-$     tmp = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB")
-$     IF tmp .NES. "" 
-$     THEN 
-$       IF gcclib_olb .EQS. "" 
-$       THEN gcclib_olb = tmp
-$       ELSE gcclib_olb = gcclib_olb + "/lib," + tmp
-$       ENDIF
-$     ENDIF
-$     tmp = F$SEARCH("GNU_CC:[000000]crt0.obj")
-$     IF tmp .NES. "" 
-$     THEN 
-$       IF gcclib_olb .EQS. "" 
-$       THEN gcclib_olb = tmp
-$       ELSE gcclib_olb = gcclib_olb + "/lib," + tmp
-$       ENDIF
-$     ENDIF
-$     IF gcclib_olb .EQS. vaxcrtl_olb THEN gcclib_olb = "" !goofy order of axplibs
-$   ELSE
-$     gcclib_olb = gcclib_olb + "/lib"
-$   ENDIF
-$   IF   gcclib_olb .NES. "" .AND. -
-     (vaxcrtl_olb .NES. "" .OR. -
-      vaxcrtl_exe .NES. "" )
-$   THEN
-$     echo ""
-$     echo4 "Checking for GNU cc in disguise and/or its version number..." !>&4
-$     OPEN/WRITE CONFIG gccvers.c
-$     WRITE CONFIG "#include <stdio.h>"
-$     WRITE CONFIG "int main() {"
-$     WRITE CONFIG "#ifdef __GNUC__"
-$     WRITE CONFIG "#ifdef __VERSION__"
-$     WRITE CONFIG "        printf(""%s\n"", __VERSION__);"
-$     WRITE CONFIG "#else"
-$     WRITE CONFIG "        printf(""%s\n"", ""1"");"
-$     WRITE CONFIG "#endif"
-$     WRITE CONFIG "#endif"
-$     WRITE CONFIG "        exit(0);"
-$     WRITE CONFIG "}"
-$     CLOSE CONFIG
-$     DEFINE SYS$ERROR _NLA0:
-$     DEFINE SYS$OUTPUT _NLA0:
-$     'Mcc' gccvers.c
-$     tmp = $status
-$     DEASSIGN SYS$ERROR _NLA0:
-$     DEASSIGN SYS$OUTPUT _NLA0:
-$     IF (silent) THEN GOSUB Shut_up
-$     DEFINE SYS$ERROR _NLA0:
-$     DEFINE SYS$OUTPUT _NLA0:
-$     IF vaxcrtl_exe .EQS. ""
-$     THEN 
-$       IF F$LOCATE("VAXCRTL",gcclib_olb).NE.F$LENGTH(gcclib_olb)
-$       THEN 
-$         link/nodebug gccvers.obj,'gcclib_olb',SYS$LIBRARY:VAXCRTL/Library
-$         tmp = $status
-$       ELSE
-$         link/nodebug gccvers.obj,'gcclib_olb'
-$         tmp = $status
-$       ENDIF
-$     ELSE
-$       OPEN/WRITE CONFIG GCCVERS.OPT
-$       WRITE CONFIG "SYS$SHARE:VAXCRTL/SHARE"
-$       CLOSE CONFIG
-$       link/nodebug gccvers.obj,GCCVERS.OPT/OPT,'gcclib_olb'
-$       tmp = $status
-$     ENDIF
-$     DEASSIGN SYS$ERROR
-$     DEASSIGN SYS$OUTPUT
-$     IF (silent) THEN GOSUB Shut_up
-$     OPEN/WRITE CONFIG gccvers.out
-$     DEFINE SYS$ERROR CONFIG
-$     DEFINE SYS$OUTPUT CONFIG
-$     mcr []gccvers.exe
-$     tmp = $status
-$     CLOSE CONFIG
-$     DEASSIGN SYS$OUTPUT
-$     DEASSIGN SYS$ERROR
-$     IF (silent) THEN GOSUB Shut_up
-$     OPEN/READ CONFIG gccvers.out
-$     READ/END_OF_FILE=Gcc_cleanup CONFIG line
-$Gcc_cleanup:
-$     CLOSE CONFIG
-$     DELETE/NOLOG/NOCONFIRM gccvers.*;
-$     IF F$LOCATE("GNU C version ",line).NE.F$LENGTH(line)
-$     THEN 
-$       echo "You are not using GNU cc."
-$       GOTO Host_name
-$     ELSE 
-$       echo "You are using GNU cc ''line'"
-$       gccversion = line
-$       ccname := "GCC"
-$       C_COMPILER_Replace = "CC=cc=''Mcc'"
-$       GOTO Include_dirs
-$     ENDIF
-$   ENDIF
-$ ENDIF
+$!
 $Cxx_Version_check:
 $ IF ccname .EQS. "CXX"
 $ THEN
@@ -1769,17 +1613,6 @@ $ line = F$EDIT(line,"TRIM")       !bit 
 $ DELETE/NOLOG/NOCONFIRM ccvms.lis;
 $ RETURN
 $!
-$Include_dirs:
-$!: What should the include directory be ? (.TLB text libraries)
-$ dflt = gcclib_olb 
-$ rp = "Where are the include files you want to use? "
-$ IF f$length( rp + "[''dflt'] " ) .GT. 76
-$ THEN rp = F$FAO("!AS!/!AS",rp,"[''dflt'] ")
-$ ELSE rp = rp + "[''dflt'] "
-$ ENDIF
-$ GOSUB myread
-$ usrinc = ans
-$!
 $!: see if we have to deal with yellow pages, now NIS.
 $!: now get the host name
 $Host_name:
@@ -2369,22 +2202,6 @@ $!
 $ bool_dflt = "n"
 $ vms_prefix = "perl_root"
 $ vms_prefixup = F$EDIT(vms_prefix,"UPCASE")
-$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] "
-$ GOSUB myread
-$ IF .NOT. ans
-$ THEN
-$   sharedperl = "N"
-$ ELSE
-$   sharedperl = "Y"
-$   IF (F$ELEMENT(0, "-", archname).EQS."VMS_AXP")
-$   THEN
-$     macros = macros + """AXE=1"","
-$   ENDIF
-$   IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64")
-$   THEN
-$     macros = macros + """IXE=1"","
-$   ENDIF
-$ ENDIF
 $!
 $!: is AFS running?                       !sfn
 $!: decide how portable to be.  Allow command line overrides. !sfn
@@ -3239,34 +3056,22 @@ $ ELSE
 $   uselargefiles = "undef"
 $ ENDIF
 $!
+$ i32dformat="""d"""
+$ u32uformat="""u"""
+$ u32oformat="""o"""
+$ u32xformat="""x"""
+$ u32XUformat="""X"""
+$!
 $ usemymalloc = "undef"
 $ if mymalloc then usemymalloc = "define"
 $!
 $ perl_cc=Mcc
 $!
-$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP")
-$ THEN
-$   obj_ext=".abj"
-$   so="axe"
-$   dlext="axe"
-$   exe_ext=".axe"
-$   lib_ext=".alb"
-$ ELSE
-$   IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64")
-$   THEN
-$     obj_ext=".ibj"
-$     so="ixe"
-$     dlext="ixe"
-$     exe_ext=".ixe"
-$     lib_ext=".ilb"
-$   ELSE
-$     obj_ext=".obj"
-$     so="exe"
-$     dlext="exe"
-$     exe_ext=".exe"
-$     lib_ext=".olb"
-$   ENDIF
-$ ENDIF
+$ obj_ext=".obj"
+$ so="exe"
+$ dlext="exe"
+$ exe_ext=".exe"
+$ lib_ext=".olb"
 $ dlobj="dl_vms''obj_ext'"
 $!
 $ cppstdin="''perl_cc'/noobj/comments=as_is/preprocess=sys$output sys$input"
@@ -3434,24 +3239,13 @@ $ ENDIF
 $!
 $! Some that we need to invoke the compiler for
 $!
-$!
 $! handy construction aliases/symbols
 $!
 $ OS := "open/write CONFIG []try.c"
 $ WS := "write CONFIG"
 $ CS := "close CONFIG"
 $ DS := "delete/nolog/noconfirm []try.*;*"
-$ Needs_Opt := N
 $ good_compile = %X10B90001
-$ IF ccname .EQS. "GCC"
-$ THEN
-$   open/write OPTCHAN []try.opt
-$   write OPTCHAN "Gnu_CC:[000000]gcclib.olb/library"
-$   write OPTCHAN "Sys$Share:VAXCRTL/Share"
-$   Close OPTCHAN
-$   Needs_Opt := Y
-$   good_compile = %X10000001
-$ ENDIF
 $ IF ccname .EQS. "CXX"
 $ THEN
 $   good_compile = %X15F60001
@@ -3550,14 +3344,8 @@ $ GOSUB compile_ok
 $ DEFINE/USER_MODE SYS$ERROR _NLA0:
 $ DEFINE/USER_MODE SYS$OUTPUT _NLA0:
 $ SET NOON
-$ IF Needs_Opt
-$ THEN
-$   'ld' try.obj,try.opt/opt
-$   link_status = $status
-$ ELSE
-$   'ld' try.obj
-$   link_status = $status
-$ ENDIF
+$ 'ld' try.obj
+$ link_status = $status
 $ SET ON
 $ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj;
 $ RETURN
@@ -4569,6 +4357,23 @@ $ tmp = "acess"
 $ GOSUB inlibc
 $ d_access = tmp
 $!
+$! Check for mkostemp
+$!
+$ OS
+$ WS "#if defined(__DECC) || defined(__DECCXX)"
+$ WS "#include <stdlib.h>"
+$ WS "#endif"
+$ WS "#include <stdio.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "mkostemp(""foo"", 0);"
+$ WS "exit(0);"
+$ WS "}"
+$ CS
+$ tmp = "mkostemp"
+$ GOSUB inlibc
+$ d_mkostemp = tmp
+$!
 $! Check for mkstemp
 $!
 $ OS
@@ -5489,21 +5294,14 @@ $ ENDIF
 $!
 $! Some that are compiler or VMS version sensitive
 $!
-$! Gnu C stuff
-$ IF ccname .EQS. "GCC"
+$ IF ccname .EQS. "CXX"
 $ THEN
-$   d_attribut="define"
-$   vms_cc_type="gcc"
+$   vms_cc_type="cxx"
 $ ELSE
-$   IF ccname .EQS. "CXX"
-$   THEN
-$      vms_cc_type="cxx"
-$   ELSE
-$      vms_cc_type="cc"
-$   ENDIF
-$   d_attribut="undef"
+$   vms_cc_type="cc"
 $ ENDIF
 $!
+$ d_attribut="undef"
 $ d_getitimer="define"
 $ d_gettimeod="define"
 $ d_mmap="define"
@@ -6122,6 +5920,7 @@ $ WC "d_attribute_nonnull='undef'"
 $ WC "d_attribute_noreturn='undef'"
 $ WC "d_attribute_pure='undef'"
 $ WC "d_attribute_unused='undef'"
+$ WC "d_attribute_visibility='undef'"
 $ WC "d_attribute_warn_unused_result='undef'"
 $ WC "d_prctl='undef'"
 $ WC "d_prctl_set_name='undef'"
@@ -6369,6 +6168,7 @@ $ WC "d_mkdtemp='" + d_mkdtemp + "'"
 $ WC "d_mkfifo='undef'"
 $ WC "d_mknod='undef'"
 $ WC "d_mkostemp='undef'"
+$ WC "d_mkostemp='" + d_mkostemp + "'"
 $ WC "d_mkstemp='" + d_mkstemp + "'"
 $ WC "d_mkstemps='" + d_mkstemps + "'"
 $ WC "d_mktime='" + d_mktime + "'"
@@ -6680,7 +6480,6 @@ $ WC "freetype='void'"
 $ WC "full_ar='" + "'"
 $ WC "full_csh='" + " '"
 $ WC "full_sed='_NLA0:'"
-$ WC "gccversion='" + gccversion + "'"
 $ WC "gidformat='lu'"
 $ WC "gidsign='1'"
 $ WC "gidsize='4'"
@@ -6692,6 +6491,7 @@ $ WC "hint='none'"
 $ WC "hintfile='" + "'"
 $ WC "i16size='" + i16size + "'"
 $ WC "i16type='" + i16type + "'"
+$ WC "i32dformat='" + i32dformat + "'"
 $ WC "i32size='" + i32size + "'"
 $ WC "i32type='" + i32type + "'"
 $ WC "i64size='" + i64size + "'"
@@ -6768,6 +6568,7 @@ $ WC "i_syssockio='undef'"
 $ WC "i_sysstat='define'"
 $ WC "i_sysstatfs='undef'"
 $ WC "i_sysstatvfs='" + i_sysstatvfs + "'"
+$ WC "i_syssyscall='undef'"
 $ WC "i_systime='undef'"
 $ WC "i_systimek='undef'"
 $ WC "i_systimes='undef'"
@@ -6985,8 +6786,12 @@ $ WC "targetsh='MCR'"
 $ WC "timetype='" + timetype + "'"
 $ WC "u16size='" + u16size + "'"
 $ WC "u16type='" + u16type + "'"
+$ WC "u32oformat='" + u32oformat + "'"
+$ WC "u32uformat='" + u32uformat + "'"
 $ WC "u32size='" + u32size + "'"
 $ WC "u32type='" + u32type + "'"
+$ WC "u32xformat='" + u32xformat + "'"
+$ WC "u32XUformat='" + u32XUformat + "'"
 $ WC "u64size='" + u64size + "'"
 $ WC "u64type='" + u64type + "'"
 $ WC "u8size='" + u8size + "'"
@@ -7188,20 +6993,7 @@ $! Okay, we've gotten here. Build munchc
 $ COPY/NOLOG [-.vms]munchconfig.c []
 $ COPY/NOLOG [-.vms]'Makefile_SH' []
 $ 'Perl_CC' 'ccflags' munchconfig.c
-$ IF Needs_Opt
-$ THEN
-$   OPEN/WRITE CONFIG []munchconfig.opt
-$   IF ccname .EQS. "GCC"
-$   THEN
-$     WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library"
-$   ENDIF
-$   WRITE CONFIG "Sys$Share:VAXCRTL/Share"
-$   CLOSE CONFIG
-$   'ld'/EXE='exe_ext' munchconfig'obj_ext',munchconfig.opt/opt
-$   DELETE/NOLOG/NOCONFIRM munchconfig.opt;
-$ ELSE
-$   'ld'/EXE='exe_ext' munchconfig'obj_ext'
-$ ENDIF
+$ 'ld'/EXE='exe_ext' munchconfig'obj_ext'
 $ IF F$SEARCH("munchconfig''obj_ext'") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig'obj_ext';
 $ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c;
 $ IF ccname .EQS. "CXX"
@@ -7253,7 +7045,6 @@ $ IF use_two_pot_malloc THEN WC "#define
 $ IF mymalloc THEN WC "#define EMBEDMYMALLOC"
 $ IF use_pack_malloc THEN WC "#define PACK_MALLOC"
 $ IF use_debugmalloc THEN WC "#define DEBUGGING_MSTATS"
-$ IF ccname .EQS. "GCC" THEN WC "#define GNUC_ATTRIBUTE_CHECK"
 $ IF (Has_Dec_C_Sockets)
 $ THEN
 $    WC "#define VMS_DO_SOCKETS"
@@ -7313,12 +7104,6 @@ $   DECCXX_REPLACE = "DECCXX=DECCXX=1"
 $ ELSE
 $   DECCXX_REPLACE = "DECCXX="
 $ ENDIF
-$ IF ccname .EQS. "GCC"
-$ THEN
-$   GNUC_REPLACE = "GNUC=gnuc=1"
-$ ELSE
-$   GNUC_REPLACE = "GNUC=" 
-$ ENDIF
 $ IF Has_Dec_C_Sockets
 $ THEN
 $   SOCKET_REPLACE = "SOCKET=DECC_SOCKETS=1"
@@ -7365,7 +7150,6 @@ $ WC := write CONFIG
 $ WC "''DECC_REPLACE'"
 $ WC "''DECCXX_REPLACE'"
 $ WC "''ARCH_TYPE'"
-$ WC "''GNUC_REPLACE'"
 $ WC "''SOCKET_REPLACE'"
 $ WC "''THREAD_REPLACE'"
 $ WC "''C_Compiler_Replace'"
@@ -7504,8 +7288,6 @@ $   echo ""
 $   echo4 "The perl.cld file is now being written..."
 $   OPEN/WRITE CONFIG 'file_2_find'
 $   ext = ".exe"
-$   IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") THEN ext := .AXE
-$   IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") THEN ext := .IXE
 $   IF (use_vmsdebug_perl)
 $   THEN
 $     WRITE CONFIG "define verb dbgperl"
@@ -7561,11 +7343,6 @@ $ WRITE CONFIG "$   root_spec = P1"
 $ WRITE CONFIG "$ endif"
 $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'root_spec'"
 $ WRITE CONFIG "$ ext = "".exe"""
-$ IF sharedperl
-$ THEN
-$ WRITE CONFIG "$ if f$getsyi(""ARCH_TYPE"") .eq. 2 then ext = "".AXE"""
-$ WRITE CONFIG "$ if f$getsyi(""ARCH_TYPE"") .eq. 3 then ext = "".IXE"""
-$ ENDIF
 $ IF (perl_symbol)
 $ THEN
 $   perl_setup_perl = "'" + "'perl'" ! triple quoted foreign command symbol
Index: gnu/usr.bin/perl/cop.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cop.h,v
diff -u -p -a -u -p -r1.22 cop.h
--- gnu/usr.bin/perl/cop.h	15 Feb 2023 01:36:13 -0000	1.22
+++ gnu/usr.bin/perl/cop.h	21 Feb 2024 15:47:00 -0000
@@ -33,7 +33,7 @@ struct jmpenv {
     struct jmpenv *	je_prev;
     Sigjmp_buf		je_buf;		/* uninit if je_prev is NULL */
     int			je_ret;		/* last exception thrown */
-    bool		je_mustcatch;	/* need to call longjmp()? */
+    bool		je_mustcatch;	/* longjmp()s must be caught locally */
     U16                 je_old_delaymagic; /* saved PL_delaymagic */
     SSize_t             je_old_stack_hwm;
 };
@@ -110,30 +110,47 @@ typedef struct jmpenv JMPENV;
 
 #define dJMPENV		JMPENV cur_env
 
-#define JMPENV_PUSH(v) \
+#define JMPENV_PUSH(v)                                                  \
     STMT_START {							\
-        DEBUG_l({							\
-            int i = 0; JMPENV *p = PL_top_env;				\
+        DEBUG_l({                                                       \
+            int i = 0;                                                  \
+            JMPENV *p = PL_top_env;                                     \
             while (p) { i++; p = p->je_prev; }				\
-            Perl_deb(aTHX_ "JUMPENV_PUSH level=%d at %s:%d\n",		\
-                         i,  __FILE__, __LINE__);})			\
+            Perl_deb(aTHX_ "JMPENV_PUSH pre level=%d in %s at %s:%d\n", \
+                         i,  SAFE_FUNCTION__, __FILE__, __LINE__);      \
+        });                                                             \
         cur_env.je_prev = PL_top_env;					\
         JE_OLD_STACK_HWM_save(cur_env);                                 \
-        cur_env.je_ret = PerlProc_setjmp(cur_env.je_buf, SCOPE_SAVES_SIGNAL_MASK);		\
+        /* setjmp() is callable in limited contexts which does not */	\
+        /* include assignment, so switch() instead */			\
+        switch (PerlProc_setjmp(cur_env.je_buf, SCOPE_SAVES_SIGNAL_MASK)) { \
+        case 0: cur_env.je_ret = 0; break;				\
+        case 1: cur_env.je_ret = 1; break;				\
+        case 2: cur_env.je_ret = 2; break;				\
+        case 3: cur_env.je_ret = 3; break;				\
+        default: Perl_croak(aTHX_ "panic: unexpected setjmp() result\n"); \
+        }								\
         JE_OLD_STACK_HWM_restore(cur_env);                              \
         PL_top_env = &cur_env;						\
         cur_env.je_mustcatch = FALSE;					\
         cur_env.je_old_delaymagic = PL_delaymagic;			\
+        DEBUG_l({                                                       \
+            int i = 0;                                                  \
+            JMPENV *p = PL_top_env;                                     \
+            while (p) { i++; p = p->je_prev; }				\
+            Perl_deb(aTHX_ "JMPENV_PUSH level=%d ret=%d in %s at %s:%d\n",    \
+                         i, cur_env.je_ret, SAFE_FUNCTION__,  __FILE__, __LINE__); \
+        });                                                             \
         (v) = cur_env.je_ret;						\
     } STMT_END
 
 #define JMPENV_POP \
     STMT_START {							\
-        DEBUG_l({							\
+        DEBUG_l({                                                       \
             int i = -1; JMPENV *p = PL_top_env;				\
             while (p) { i++; p = p->je_prev; }				\
-            Perl_deb(aTHX_ "JUMPENV_POP level=%d at %s:%d\n",		\
-                         i, __FILE__, __LINE__);})			\
+            Perl_deb(aTHX_ "JMPENV_POP level=%d in %s at %s:%d\n",        \
+                         i, SAFE_FUNCTION__, __FILE__, __LINE__);})        \
         assert(PL_top_env == &cur_env);					\
         PL_delaymagic = cur_env.je_old_delaymagic;			\
         PL_top_env = cur_env.je_prev;					\
@@ -141,27 +158,29 @@ typedef struct jmpenv JMPENV;
 
 #define JMPENV_JUMP(v) \
     STMT_START {						\
-        DEBUG_l({						\
+        DEBUG_l({                                               \
             int i = -1; JMPENV *p = PL_top_env;			\
             while (p) { i++; p = p->je_prev; }			\
-            Perl_deb(aTHX_ "JUMPENV_JUMP(%d) level=%d at %s:%d\n", \
-                         (int)v, i, __FILE__, __LINE__);})	\
-        if (PL_top_env->je_prev)				\
+            Perl_deb(aTHX_ "JMPENV_JUMP(%d) level=%d in %s at %s:%d\n",         \
+                         (int)(v), i, SAFE_FUNCTION__, __FILE__, __LINE__);})   \
+        if (PL_top_env->je_prev) {				\
+            assert((v) >= 0 && (v) <= 3);			\
             PerlProc_longjmp(PL_top_env->je_buf, (v));		\
+        }    							\
         if ((v) == 2)						\
             PerlProc_exit(STATUS_EXIT);		                \
-        PerlIO_printf(PerlIO_stderr(), "panic: top_env, v=%d\n", (int)v); \
+        PerlIO_printf(PerlIO_stderr(), "panic: top_env, v=%d\n", (int)(v)); \
         PerlProc_exit(1);					\
     } STMT_END
 
 #define CATCH_GET		(PL_top_env->je_mustcatch)
 #define CATCH_SET(v) \
     STMT_START {							\
-        DEBUG_l(							\
+        DEBUG_l(                                                        \
             Perl_deb(aTHX_						\
-                "JUMPLEVEL set catch %d => %d (for %p) at %s:%d\n",	\
-                 PL_top_env->je_mustcatch, v, (void*)PL_top_env,	\
-                 __FILE__, __LINE__);)					\
+                "JUMPLEVEL set catch %d => %d (for %p) in %s at %s:%d\n",   \
+                 PL_top_env->je_mustcatch, (v), (void*)PL_top_env,      \
+                 SAFE_FUNCTION__, __FILE__, __LINE__);)			\
         PL_top_env->je_mustcatch = (v);					\
     } STMT_END
 
@@ -175,8 +194,8 @@ typedef struct refcounted_he COPHH;
 #define COPHH_EXISTS REFCOUNTED_HE_EXISTS
 
 /*
-=for apidoc  Amx|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
-=for apidoc_item|SV *|cophh_fetch_pv |const COPHH *cophh|const char *key              |U32 hash|U32 flags
+=for apidoc  Amx|SV *|cophh_fetch_pv |const COPHH *cophh|const char *key              |U32 hash|U32 flags
+=for apidoc_item|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
 =for apidoc_item|SV *|cophh_fetch_pvs|const COPHH *cophh|           "key"                      |U32 flags
 =for apidoc_item|SV *|cophh_fetch_sv |const COPHH *cophh|        SV *key              |U32 hash|U32 flags
 
@@ -206,19 +225,24 @@ the octets.
 =for apidoc Amnh||COPHH_KEY_UTF8
 
 =cut
-*/
-
-#define cophh_fetch_pvn(cophh, key, keylen, hash, flags) \
-    Perl_refcounted_he_fetch_pvn(aTHX_ cophh, key, keylen, hash, flags)
 
-#define cophh_fetch_pvs(cophh, key, flags) \
-    Perl_refcounted_he_fetch_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, flags)
-
-#define cophh_fetch_pv(cophh, key, hash, flags) \
-    Perl_refcounted_he_fetch_pv(aTHX_ cophh, key, hash, flags)
+*/
 
-#define cophh_fetch_sv(cophh, key, hash, flags) \
-    Perl_refcounted_he_fetch_sv(aTHX_ cophh, key, hash, flags)
+#define cophh_fetch_pvn(cophh, key, keylen, hash, flags)                    \
+    Perl_refcounted_he_fetch_pvn(aTHX_ cophh, key, keylen, hash,            \
+                                       (flags & COPHH_KEY_UTF8))
+
+#define cophh_fetch_pvs(cophh, key, flags)                                  \
+    Perl_refcounted_he_fetch_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0,         \
+                                       (flags & COPHH_KEY_UTF8))
+
+#define cophh_fetch_pv(cophh, key, hash, flags)                             \
+    Perl_refcounted_he_fetch_pv(aTHX_ cophh, key, hash,                     \
+                                      (flags & COPHH_KEY_UTF8))
+
+#define cophh_fetch_sv(cophh, key, hash, flags)                             \
+    Perl_refcounted_he_fetch_sv(aTHX_ cophh, key, hash,                     \
+                                      (flags & COPHH_KEY_UTF8))
 
 /*
 =for apidoc Amx|bool|cophh_exists_pvn|const COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
@@ -305,8 +329,8 @@ Generate and return a fresh cop hints ha
 #define cophh_new_empty() ((COPHH *)NULL)
 
 /*
-=for apidoc  Amx|COPHH *|cophh_store_pvn|COPHH *cophh|const char *key|STRLEN keylen|U32 hash|SV *value|U32 flags
-=for apidoc_item|COPHH *|cophh_store_pv |COPHH *cophh|const char *key              |U32 hash|SV *value|U32 flags
+=for apidoc  Amx|COPHH *|cophh_store_pv |COPHH *cophh|const char *key              |U32 hash|SV *value|U32 flags
+=for apidoc_item|COPHH *|cophh_store_pvn|COPHH *cophh|const char *key|STRLEN keylen|U32 hash|SV *value|U32 flags
 =for apidoc_item|COPHH *|cophh_store_pvs|COPHH *cophh|           "key"                      |SV *value|U32 flags
 =for apidoc_item|COPHH *|cophh_store_sv |COPHH *cophh|        SV *key              |U32 hash|SV *value|U32 flags
 
@@ -357,8 +381,8 @@ the octets.
     Perl_refcounted_he_new_sv(aTHX_ cophh, key, hash, value, flags)
 
 /*
-=for apidoc  Amx|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
-=for apidoc_item|COPHH *|cophh_delete_pv |COPHH *cophh|const char *key              |U32 hash|U32 flags
+=for apidoc  Amx|COPHH *|cophh_delete_pv |COPHH *cophh|const char *key              |U32 hash|U32 flags
+=for apidoc_item|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *key|STRLEN keylen|U32 hash|U32 flags
 =for apidoc_item|COPHH *|cophh_delete_pvs|COPHH *cophh|           "key"                      |U32 flags
 =for apidoc_item|COPHH *|cophh_delete_sv |COPHH *cophh|        SV *key              |U32 hash|U32 flags
 
@@ -415,15 +439,20 @@ struct cop {
 #ifdef USE_ITHREADS
     PADOFFSET	cop_stashoff;	/* offset into PL_stashpad, for the
                                    package the line was compiled in */
-    char *	cop_file;	/* name of file this command is from */
+    char *      cop_file;       /* rcpv containing name of file this command is from */
 #else
     HV *	cop_stash;	/* package line was compiled in */
     GV *	cop_filegv;	/* name of GV file this command is from */
 #endif
     U32		cop_hints;	/* hints bits from pragmata */
     U32		cop_seq;	/* parse sequence number */
-    /* Beware. mg.c and warnings.pl assume the type of this is STRLEN *:  */
-    STRLEN *	cop_warnings;	/* lexical warnings bitmask */
+    char *      cop_warnings;   /* Lexical warnings bitmask vector.
+                                   Refcounted shared copy of ${^WARNING_BITS}.
+                                   This pointer either points at one of the
+                                   magic values for warnings, or it points
+                                   at a buffer constructed with rcpv_new().
+                                   Use the RCPV_LEN() macro to get its length.
+                                 */
     /* compile time state of %^H.  See the comment in op.c for how this is
        used to recreate a hash to return from caller.  */
     COPHH *	cop_hints_hash;
@@ -439,7 +468,10 @@ struct cop {
 =for apidoc Am|const char *|CopFILE|const COP * c
 Returns the name of the file associated with the C<COP> C<c>
 
-=for apidoc Am|STRLEN|CopLINE|const COP * c
+=for apidoc Am|const char *|CopFILE_LEN|const COP * c
+Returns the length of the file associated with the C<COP> C<c>
+
+=for apidoc Am|line_t|CopLINE|const COP * c
 Returns the line number in the source code associated with the C<COP> C<c>
 
 =for apidoc Am|AV *|CopFILEAV|const COP * c
@@ -455,6 +487,17 @@ Returns the SV associated with the C<COP
 =for apidoc Am|void|CopFILE_set|COP * c|const char * pv
 Makes C<pv> the name of the file associated with the C<COP> C<c>
 
+=for apidoc Am|void|CopFILE_setn|COP * c|const char * pv|STRLEN len
+Makes C<pv> the name of the file associated with the C<COP> C<c>
+
+=for apidoc Am|void|CopFILE_copy|COP * dst|COP * src
+Efficiently copies the cop file name from one COP to another. Wraps
+the required logic to do a refcounted copy under threads or not.
+
+=for apidoc Am|void|CopFILE_free|COP * c
+Frees the file data in a cop. Under the hood this is a refcounting
+operation.
+
 =for apidoc Am|GV *|CopFILEGV|const COP * c
 Returns the GV associated with the C<COP> C<c>
 
@@ -482,14 +525,113 @@ string C<p>, creating the package if nec
 =cut
 */
 
+/*
+=for apidoc Am|RCPV *|RCPVx|char *pv
+Returns the RCPV structure (struct rcpv) for a refcounted
+string pv created with C<rcpv_new()>.
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_REFCOUNT|char *pv
+Returns the refcount for a pv created with C<rcpv_new()>. 
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_REFCNT_inc|char *pv
+Increments the refcount for a C<char *> pointer which was created
+with a call to C<rcpv_new()>. Same as calling rcpv_copy().
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_REFCNT_dec|char *pv
+Decrements the refcount for a C<char *> pointer which was created
+with a call to C<rcpv_new()>. Same as calling rcpv_free().
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=for apidoc Am|RCPV *|RCPV_LEN|char *pv
+Returns the length of a pv created with C<rcpv_new()>.
+Note that this reflects the length of the string from the callers
+point of view, it does not include the mandatory null which is
+always injected at the end of the string by rcpv_new().
+No checks are performed to ensure that C<pv> was actually allocated
+with C<rcpv_new()>, it is the callers responsibility to ensure that
+this is the case.
+
+=cut
+*/
+
+struct rcpv {
+    STRLEN  refcount;  /* UV would mean a 64 refcnt on
+                          32 bit builds with -Duse64bitint */
+    STRLEN  len;       /* length of string including mandatory
+                          null byte at end */
+    char    pv[1];
+};
+typedef struct rcpv RCPV;
+
+#define RCPVf_USE_STRLEN    (1 << 0)
+#define RCPVf_NO_COPY       (1 << 1)
+#define RCPVf_ALLOW_EMPTY   (1 << 2)
+
+#define RCPVx(pv_arg)       ((RCPV *)((pv_arg) - STRUCT_OFFSET(struct rcpv, pv)))
+#define RCPV_REFCOUNT(pv)   (RCPVx(pv)->refcount)
+#define RCPV_LEN(pv)        (RCPVx(pv)->len-1) /* len always includes space for a null */
+#define RCPV_REFCNT_inc(pv) rcpv_copy(pv)
+#define RCPV_REFCNT_dec(pv) rcpv_free(pv)
+
 #ifdef USE_ITHREADS
 
-#  define CopFILE(c)		((c)->cop_file)
+#  define CopFILE(c)            ((c)->cop_file)
+#  define CopFILE_LEN(c)        (CopFILE(c) ? RCPV_LEN(CopFILE(c)) : 0)
 #  define CopFILEGV(c)		(CopFILE(c) \
                                  ? gv_fetchfile(CopFILE(c)) : NULL)
 
-#  define CopFILE_set(c,pv)	((c)->cop_file = savesharedpv(pv))
-#  define CopFILE_setn(c,pv,l)  ((c)->cop_file = savesharedpvn((pv),(l)))
+#  define CopFILE_set_x(c,pv)       ((c)->cop_file = rcpv_new((pv),0,RCPVf_USE_STRLEN))
+#  define CopFILE_setn_x(c,pv,l)    ((c)->cop_file = rcpv_new((pv),(l),0))
+#  define CopFILE_free_x(c)         ((c)->cop_file = rcpv_free((c)->cop_file))
+#  define CopFILE_copy_x(dst,src)   ((dst)->cop_file = rcpv_copy((src)->cop_file))
+
+/* change condition to 1 && to enable this debugging */
+#  define CopFILE_debug(c,t,rk)                 \
+    if (0 && (c)->cop_file)                     \
+        PerlIO_printf(Perl_debug_log,           \
+            "%-14s THX:%p OP:%p PV:%p rc: "     \
+            "%6zu fn: '%.*s' at %s line %d\n",  \
+            (t), aTHX, (c), (c)->cop_file,      \
+            RCPV_REFCOUNT((c)->cop_file)-rk,    \
+            (int)RCPV_LEN((c)->cop_file),       \
+            (c)->cop_file,__FILE__,__LINE__)    \
+
+
+#  define CopFILE_set(c,pv)                     \
+    STMT_START {                                \
+        CopFILE_set_x(c,pv);                    \
+        CopFILE_debug(c,"CopFILE_set", 0);      \
+    } STMT_END
+
+#  define CopFILE_setn(c,pv,l)                  \
+    STMT_START {                                \
+        CopFILE_setn_x(c,pv,l);                 \
+        CopFILE_debug(c,"CopFILE_setn", 0);     \
+    } STMT_END
+
+#  define CopFILE_copy(dst,src)                 \
+    STMT_START {                                \
+        CopFILE_copy_x((dst),(src));            \
+        CopFILE_debug((dst),"CopFILE_copy", 0); \
+    } STMT_END
+
+#  define CopFILE_free(c)                       \
+    STMT_START {                                \
+        CopFILE_debug((c),"CopFILE_free", 1);   \
+        CopFILE_free_x(c);                      \
+    } STMT_END
+
 
 #  define CopFILESV(c)		(CopFILE(c) \
                                  ? GvSV(gv_fetchfile(CopFILE(c))) : NULL)
@@ -502,13 +644,13 @@ string C<p>, creating the package if nec
 #  define CopSTASH_set(c,hv)	((c)->cop_stashoff = (hv)		\
                                     ? alloccopstash(hv)			\
                                     : 0)
-#  define CopFILE_free(c)	(PerlMemShared_free(CopFILE(c)),(CopFILE(c) = NULL))
 
 #else /* Above: yes threads; Below no threads */
 
 #  define CopFILEGV(c)		((c)->cop_filegv)
 #  define CopFILEGV_set(c,gv)	((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
 #  define CopFILE_set(c,pv)	CopFILEGV_set((c), gv_fetchfile(pv))
+#  define CopFILE_copy(dst,src) CopFILEGV_set((dst),CopFILEGV(src))
 #  define CopFILE_setn(c,pv,l)	CopFILEGV_set((c), gv_fetchfile_flags((pv),(l),0))
 #  define CopFILESV(c)		(CopFILEGV(c) ? GvSV(CopFILEGV(c)) : NULL)
 #  define CopFILEAV(c)		(CopFILEGV(c) ? GvAV(CopFILEGV(c)) : NULL)
@@ -520,6 +662,8 @@ string C<p>, creating the package if nec
 #  define CopFILEAVn(c)         (CopFILEGV(c) ? GvAVn(CopFILEGV(c)) : NULL)
 #  define CopFILE(c)		(CopFILEGV(c) /* +2 for '_<' */         \
                                     ? GvNAME(CopFILEGV(c))+2 : NULL)
+#  define CopFILE_LEN(c)	(CopFILEGV(c) /* -2 for '_<' */         \
+                                    ? GvNAMELEN(CopFILEGV(c))-2 : 0)
 #  define CopSTASH(c)		((c)->cop_stash)
 #  define CopSTASH_set(c,hv)	((c)->cop_stash = (hv))
 #  define CopFILE_free(c)	(SvREFCNT_dec(CopFILEGV(c)),(CopFILEGV(c) = NULL))
@@ -534,10 +678,12 @@ string C<p>, creating the package if nec
 #define CopHINTHASH_get(c)	((COPHH*)((c)->cop_hints_hash))
 #define CopHINTHASH_set(c,h)	((c)->cop_hints_hash = (h))
 
+#define CopFEATURES_setfrom(dst, src) ((dst)->cop_features = (src)->cop_features)
+
 /*
-=for apidoc   Am|SV *|cop_hints_fetch_pvn|const COP *cop|const char *key|STRLEN keylen|U32 hash|U32 flags
-=for apidoc_item|SV *|cop_hints_fetch_pv |const COP *cop|const char *key              |U32 hash|U32 flags
-=for apidoc_item|SV *|cop_hints_fetch_pvs|const COP *cop|           "key"                      |U32 flags
+=for apidoc   Am|SV *|cop_hints_fetch_pv |const COP *cop|const char *key              |U32 hash|U32 flags
+=for apidoc_item|SV *|cop_hints_fetch_pvn|const COP *cop|const char *key|STRLEN keylen|U32 hash|U32 flags
+=for apidoc_item|SV *|cop_hints_fetch_pvs|const COP *cop|           "key"             |U32 flags
 =for apidoc_item|SV *|cop_hints_fetch_sv |const COP *cop|        SV *key              |U32 hash|U32 flags
 
 These look up the hint entry in the cop C<cop> with the key specified by
@@ -579,8 +725,8 @@ the octets.
     cophh_fetch_sv(CopHINTHASH_get(cop), key, hash, flags)
 
 /*
-=for apidoc   Am|bool|cop_hints_exists_pvn|const COP *cop|const char *key|STRLEN keylen|U32 hash|U32 flags
-=for apidoc_item|bool|cop_hints_exists_pv |const COP *cop|const char *key              |U32 hash|U32 flags
+=for apidoc  Am|bool|cop_hints_exists_pv |const COP *cop|const char *key|U32 hash               |U32 flags
+=for apidoc_item|bool|cop_hints_exists_pvn|const COP *cop|const char *key|STRLEN keylen|U32 hash|U32 flags
 =for apidoc_item|bool|cop_hints_exists_pvs|const COP *cop|           "key"                      |U32 flags
 =for apidoc_item|bool|cop_hints_exists_sv |const COP *cop|        SV *key              |U32 hash|U32 flags
 
@@ -766,7 +912,7 @@ struct block_eval {
 
 /* blk_u16 bit usage for eval contexts: */
 
-#define CxOLD_IN_EVAL(cx)	(((cx)->blk_u16) & 0x3F) /* saved PL in_eval */
+#define CxOLD_IN_EVAL(cx)	(((cx)->blk_u16) & 0x3F) /* saved PL_in_eval */
 #define CxEVAL_TXT_REFCNTED(cx)	(((cx)->blk_u16) & 0x40) /* cur_text rc++ */
 #define CxOLD_OP_TYPE(cx)	(((cx)->blk_u16) >> 7)   /* type of eval op */
 
@@ -793,7 +939,7 @@ struct block_loop {
         } lazyiv;
         struct { /* CXt_LOOP_LAZYSV C<for ('a'..'z')> */
             SV * cur;
-            SV * end; /* maxiumum value (or minimum in reverse) */
+            SV * end; /* maximum value (or minimum in reverse) */
         } lazysv;
     } state_u;
 #ifdef USE_ITHREADS
@@ -808,9 +954,9 @@ struct block_loop {
                 ? &GvSV((c)->blk_loop.itervar_u.gv)     \
                 : (SV **)&(c)->blk_loop.itervar_u.gv)
 
-#define CxLABEL(c)	(0 + CopLABEL((c)->blk_oldcop))
-#define CxLABEL_len(c,len)	(0 + CopLABEL_len((c)->blk_oldcop, len))
-#define CxLABEL_len_flags(c,len,flags)	(0 + CopLABEL_len_flags((c)->blk_oldcop, len, flags))
+#define CxLABEL(c)	(CopLABEL((c)->blk_oldcop))
+#define CxLABEL_len(c,len)	(CopLABEL_len((c)->blk_oldcop, len))
+#define CxLABEL_len_flags(c,len,flags)	((const char *)CopLABEL_len_flags((c)->blk_oldcop, len, flags))
 #define CxHASARGS(c)	(((c)->cx_type & CXp_HASARGS) == CXp_HASARGS)
 
 /* CxLVAL(): the lval flags of the call site: the relevant flag bits from
@@ -875,7 +1021,7 @@ struct block {
 
 #define CX_DEBUG(cx, action)						\
     DEBUG_l(								\
-        Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) (save %ld,%ld) at %s:%d\n",\
+        Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) (save %ld,%ld) in %s at %s:%d\n",\
                     (long)cxstack_ix,					\
                     action,						\
                     PL_block_type[CxTYPE(cx)],	                        \
@@ -883,7 +1029,7 @@ struct block {
                     (long)(cx->blk_oldscopesp),		                \
                     (long)PL_savestack_ix,				\
                     (long)(cx->blk_oldsaveix),                          \
-                    __FILE__, __LINE__));
+                    SAFE_FUNCTION__, __FILE__, __LINE__));
 
 
 
@@ -1130,10 +1276,10 @@ typedef struct stackinfo PERL_SI;
 #define cxstack_max	(PL_curstackinfo->si_cxmax)
 
 #ifdef DEBUGGING
-#  define	SET_MARK_OFFSET \
+#  define SET_MARK_OFFSET \
     PL_curstackinfo->si_markoff = PL_markstack_ptr - PL_markstack
 #else
-#  define	SET_MARK_OFFSET NOOP
+#  define SET_MARK_OFFSET NOOP
 #endif
 
 #if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
@@ -1148,8 +1294,8 @@ typedef struct stackinfo PERL_SI;
         DEBUG_l({							\
             int i = 0; PERL_SI *p = PL_curstackinfo;			\
             while (p) { i++; p = p->si_prev; }				\
-            Perl_deb(aTHX_ "push STACKINFO %d at %s:%d\n",		\
-                         i, __FILE__, __LINE__);})			\
+            Perl_deb(aTHX_ "push STACKINFO %d in %s at %s:%d\n",        \
+                         i, SAFE_FUNCTION__, __FILE__, __LINE__);})        \
         if (!next) {							\
             next = new_stackinfo(32, 2048/sizeof(PERL_CONTEXT) - 1);	\
             next->si_prev = PL_curstackinfo;				\
@@ -1176,8 +1322,8 @@ typedef struct stackinfo PERL_SI;
         DEBUG_l({							\
             int i = -1; PERL_SI *p = PL_curstackinfo;			\
             while (p) { i++; p = p->si_prev; }				\
-            Perl_deb(aTHX_ "pop  STACKINFO %d at %s:%d\n",		\
-                         i, __FILE__, __LINE__);})			\
+            Perl_deb(aTHX_ "pop  STACKINFO %d in %s at %s:%d\n",        \
+                         i, SAFE_FUNCTION__, __FILE__, __LINE__);})        \
         if (!prev) {							\
             Perl_croak_popstack();					\
         }								\
@@ -1212,17 +1358,17 @@ program; otherwise 0;
 /*
 =for apidoc_section $multicall
 
-=for apidoc Amns||dMULTICALL
+=for apidoc Amn;||dMULTICALL
 Declare local variables for a multicall.  See L<perlcall/LIGHTWEIGHT CALLBACKS>.
 
-=for apidoc Ams||PUSH_MULTICALL|CV* the_cv
+=for apidoc Am;||PUSH_MULTICALL|CV* the_cv
 Opening bracket for a lightweight callback.
 See L<perlcall/LIGHTWEIGHT CALLBACKS>.
 
-=for apidoc Amns||MULTICALL
+=for apidoc Amn;||MULTICALL
 Make a lightweight callback.  See L<perlcall/LIGHTWEIGHT CALLBACKS>.
 
-=for apidoc Amns||POP_MULTICALL
+=for apidoc Amn;||POP_MULTICALL
 Closing bracket for a lightweight callback.
 See L<perlcall/LIGHTWEIGHT CALLBACKS>.
 
Index: gnu/usr.bin/perl/cv.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cv.h,v
diff -u -p -a -u -p -r1.20 cv.h
--- gnu/usr.bin/perl/cv.h	15 Feb 2023 01:36:13 -0000	1.20
+++ gnu/usr.bin/perl/cv.h	21 Feb 2024 15:47:01 -0000
@@ -38,7 +38,7 @@ See L<perlguts/Autoloading with XSUBs>.
 #  define Nullcv Null(CV*)
 #endif
 
-#define CvSTASH(sv)	(0+((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash)
+#define CvSTASH(sv)	(MUTABLE_HV(((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash))
 #define CvSTASH_set(cv,st) Perl_cvstash_set(aTHX_ cv, st)
 #define CvSTART(sv)	((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_start_u.xcv_start
 #define CvROOT(sv)	((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_root
@@ -107,7 +107,10 @@ See L<perlguts/Autoloading with XSUBs>.
           : 0                                           \
         )
 
-#define CVf_METHOD	0x0001	/* CV is explicitly marked as a method */
+/* CV has the `:method` attribute. This used to be called CVf_METHOD but is
+ * renamed to avoid collision with CVf_IsMETHOD */
+#define CVf_NOWARN_AMBIGUOUS	0x0001
+
 #define CVf_LVALUE	0x0002  /* CV return value can be used as lvalue */
 #define CVf_CONST	0x0004  /* inlinable sub */
 #define CVf_ISXSUB	0x0008	/* CV is an XSUB, not pure perl.  */
@@ -117,7 +120,7 @@ See L<perlguts/Autoloading with XSUBs>.
 #define CVf_CLONED	0x0040	/* a clone of one of those */
 #define CVf_ANON	0x0080	/* CV is not pointed to by a GV */
 #define CVf_UNIQUE	0x0100	/* sub is only called once (eg PL_main_cv,
-                                 * require, eval). */
+                                   require, eval). */
 #define CVf_NODEBUG	0x0200	/* no DB::sub indirection for this CV
                                    (esp. useful for special XSUBs) */
 #define CVf_CVGV_RC	0x0400	/* CvGV is reference counted */
@@ -131,9 +134,13 @@ See L<perlguts/Autoloading with XSUBs>.
 #define CVf_LEXICAL	0x10000 /* Omit package from name */
 #define CVf_ANONCONST	0x20000 /* :const - create anonconst op */
 #define CVf_SIGNATURE   0x40000 /* CV uses a signature */
+#define CVf_REFCOUNTED_ANYSV 0x80000 /* CvXSUBANY().any_sv is refcounted */
+#define CVf_IsMETHOD    0x100000 /* CV is a (real) method of a real class. Not
+                                   to be confused with what used to be called
+                                   CVf_METHOD; now CVf_NOWARN_AMBIGUOUS */
 
 /* This symbol for optimised communication between toke.c and op.c: */
-#define CVf_BUILTIN_ATTRS	(CVf_METHOD|CVf_LVALUE|CVf_ANONCONST)
+#define CVf_BUILTIN_ATTRS	(CVf_NOWARN_AMBIGUOUS|CVf_LVALUE|CVf_ANONCONST)
 
 #define CvCLONE(cv)		(CvFLAGS(cv) & CVf_CLONE)
 #define CvCLONE_on(cv)		(CvFLAGS(cv) |= CVf_CLONE)
@@ -156,9 +163,9 @@ See L<perlguts/Autoloading with XSUBs>.
 #define CvNODEBUG_on(cv)	(CvFLAGS(cv) |= CVf_NODEBUG)
 #define CvNODEBUG_off(cv)	(CvFLAGS(cv) &= ~CVf_NODEBUG)
 
-#define CvMETHOD(cv)		(CvFLAGS(cv) & CVf_METHOD)
-#define CvMETHOD_on(cv)		(CvFLAGS(cv) |= CVf_METHOD)
-#define CvMETHOD_off(cv)	(CvFLAGS(cv) &= ~CVf_METHOD)
+#define CvNOWARN_AMBIGUOUS(cv)		(CvFLAGS(cv) & CVf_NOWARN_AMBIGUOUS)
+#define CvNOWARN_AMBIGUOUS_on(cv)	(CvFLAGS(cv) |= CVf_NOWARN_AMBIGUOUS)
+#define CvNOWARN_AMBIGUOUS_off(cv)	(CvFLAGS(cv) &= ~CVf_NOWARN_AMBIGUOUS)
 
 #define CvLVALUE(cv)		(CvFLAGS(cv) & CVf_LVALUE)
 #define CvLVALUE_on(cv)		(CvFLAGS(cv) |= CVf_LVALUE)
@@ -223,6 +230,47 @@ See L<perlguts/Autoloading with XSUBs>.
 #define CvSIGNATURE(cv)		(CvFLAGS(cv) & CVf_SIGNATURE)
 #define CvSIGNATURE_on(cv)	(CvFLAGS(cv) |= CVf_SIGNATURE)
 #define CvSIGNATURE_off(cv)	(CvFLAGS(cv) &= ~CVf_SIGNATURE)
+
+/*
+
+=for apidoc m|bool|CvREFCOUNTED_ANYSV|CV *cv
+
+If true, indicates that the C<CvXSUBANY(cv).any_sv> member contains an SV
+pointer whose reference count should be decremented when the CV itself is
+freed.  In addition, C<cv_clone()> will increment the reference count, and
+C<sv_dup()> will duplicate the entire pointed-to SV if this flag is set.
+
+Any CV that wraps an XSUB has an C<ANY> union that the XSUB function is free
+to use for its own purposes.  It may be the case that the code wishes to store
+an SV in the C<any_sv> member of this union.  By setting this flag, this SV
+reference will be properly reclaimed or duplicated when the CV itself is.
+
+=for apidoc m|void|CvREFCOUNTED_ANYSV_on|CV *cv
+
+Helper macro to turn on the C<CvREFCOUNTED_ANYSV> flag.
+
+=for apidoc m|void|CvREFCOUNTED_ANYSV_off|CV *cv
+
+Helper macro to turn off the C<CvREFCOUNTED_ANYSV> flag.
+
+=cut
+*/
+
+#define CvREFCOUNTED_ANYSV(cv)          (CvFLAGS(cv) & CVf_REFCOUNTED_ANYSV)
+#define CvREFCOUNTED_ANYSV_on(cv)       (CvFLAGS(cv) |= CVf_REFCOUNTED_ANYSV)
+#define CvREFCOUNTED_ANYSV_off(cv)      (CvFLAGS(cv) &= ~CVf_REFCOUNTED_ANYSV)
+
+#define CvIsMETHOD(cv)		(CvFLAGS(cv) & CVf_IsMETHOD)
+#define CvIsMETHOD_on(cv)	(CvFLAGS(cv) |= CVf_IsMETHOD)
+#define CvIsMETHOD_off(cv)	(CvFLAGS(cv) &= ~CVf_IsMETHOD)
+
+/* Back-compat */
+#ifndef PERL_CORE
+#  define CVf_METHOD            CVf_NOWARN_AMBIGUOUS
+#  define CvMETHOD(cv)          CvNOWARN_AMBIGUOUS(cv)
+#  define CvMETHOD_on(cv)       CvNOWARN_AMBIGUOUS_on(cv)
+#  define CvMETHOD_off(cv)      CvNOWARN_AMBIGUOUS_off(cv)
+#endif
 
 /* Flags for newXS_flags  */
 #define XS_DYNAMIC_FILENAME	0x01	/* The filename isn't static  */
Index: gnu/usr.bin/perl/deb.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/deb.c,v
diff -u -p -a -u -p -r1.25 deb.c
--- gnu/usr.bin/perl/deb.c	15 Feb 2023 01:36:13 -0000	1.25
+++ gnu/usr.bin/perl/deb.c	21 Feb 2024 15:47:01 -0000
@@ -87,15 +87,18 @@ Perl_vdeb(pTHX_ const char *pat, va_list
 #ifdef DEBUGGING
     const char* const file = PL_curcop ? OutCopFILE(PL_curcop) : "<null>";
     const char* const display_file = file ? file : "<free>";
-    const long line = PL_curcop ? (long)CopLINE(PL_curcop) : 0;
+    line_t line = PL_curcop ? CopLINE(PL_curcop) : NOLINE;
+    if (line == NOLINE)
+        line = 0;
 
     PERL_ARGS_ASSERT_VDEB;
 
     if (DEBUG_v_TEST)
-        PerlIO_printf(Perl_debug_log, "(%ld:%s:%ld)\t",
+        PerlIO_printf(Perl_debug_log, "(%ld:%s:%" LINE_Tf ")\t",
                       (long)PerlProc_getpid(), display_file, line);
     else
-        PerlIO_printf(Perl_debug_log, "(%s:%ld)\t", display_file, line);
+        PerlIO_printf(Perl_debug_log, "(%s:%" LINE_Tf ")\t",
+                      display_file, line);
     (void) PerlIO_vprintf(Perl_debug_log, pat, *args);
 #else
     PERL_UNUSED_CONTEXT;
@@ -317,7 +320,10 @@ Perl_deb_stack_all(pTHX)
                     }
                     if (CxTYPE(&(si_n->si_cxstack[i])) == CXt_SUBST)
                         continue;
-                    cx_n = &(si_n->si_cxstack[i]);
+                    if (si_n->si_cxix >= 0)
+                        cx_n = &(si_n->si_cxstack[i]);
+                    else
+                        cx_n = NULL;
                     break;
                 }
 
Index: gnu/usr.bin/perl/doio.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/doio.c,v
diff -u -p -a -u -p -r1.25 doio.c
--- gnu/usr.bin/perl/doio.c	15 Feb 2023 01:36:13 -0000	1.25
+++ gnu/usr.bin/perl/doio.c	21 Feb 2024 15:47:02 -0000
@@ -1632,7 +1632,7 @@ S_dir_unchanged(pTHX_ const char *orig_p
     S_dir_unchanged(aTHX_ (orig_psv), (mg))
 
 STATIC bool
-S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit) {
+S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool is_explict) {
     bool retval;
 
     /* ensure args are checked before we start using them */
@@ -1679,7 +1679,7 @@ S_argvout_final(pTHX_ MAGIC *mg, IO *io,
 #endif
         }
 
-        retval = io_close(io, NULL, not_implicit, FALSE);
+        retval = io_close(io, NULL, is_explict, FALSE);
 
         if (SvIV(*pid_psv) != (IV)PerlProc_getpid()) {
             /* this is a child process, don't duplicate our rename() etc
@@ -1724,7 +1724,7 @@ S_argvout_final(pTHX_ MAGIC *mg, IO *io,
                         PerlLIO_rename(orig_pv, SvPVX(*back_psv)) < 0
 #  endif
                         ) {
-                        if (!not_implicit) {
+                        if (!is_explict) {
 #  ifdef ARGV_USE_ATFUNCTIONS
                             if (unlinkat(dfd, SvPVX_const(*temp_psv), 0) < 0 &&
                                 UNLIKELY(NotSupported(errno)) &&
@@ -1742,7 +1742,7 @@ S_argvout_final(pTHX_ MAGIC *mg, IO *io,
 #else
                     (void)UNLINK(SvPVX(*back_psv));
                     if (link(orig_pv, SvPVX(*back_psv))) {
-                        if (!not_implicit) {
+                        if (!is_explict) {
                             Perl_croak(aTHX_ "Can't rename %s to %s: %s, skipping file",
                                        SvPVX(*orig_psv), SvPVX(*back_psv), Strerror(errno));
                         }
@@ -1771,7 +1771,7 @@ S_argvout_final(pTHX_ MAGIC *mg, IO *io,
                 PerlLIO_rename(SvPVX(*temp_psv), orig_pv) < 0
 #endif
                 ) {
-                if (!not_implicit) {
+                if (!is_explict) {
 #ifdef ARGV_USE_ATFUNCTIONS
                     if (unlinkat(dfd, SvPVX_const(*temp_psv), 0) < 0 &&
                         NotSupported(errno))
@@ -1800,7 +1800,7 @@ S_argvout_final(pTHX_ MAGIC *mg, IO *io,
 #else
             UNLINK(SvPVX_const(*temp_psv));
 #endif
-            if (!not_implicit) {
+            if (!is_explict) {
                 Perl_croak(aTHX_ "Failed to close in-place work file %s: %s",
                            SvPVX(*temp_psv), Strerror(errno));
             }
@@ -1811,9 +1811,25 @@ S_argvout_final(pTHX_ MAGIC *mg, IO *io,
     return retval;
 }
 
-/* explicit renamed to avoid C++ conflict    -- kja */
+/*
+=for apidoc do_close
+
+Close an I/O stream.  This implements Perl L<perlfunc/C<close>>.
+
+C<gv> is the glob associated with the stream.
+
+C<is_explict> is C<true> if this is an explicit close of the stream; C<false>
+if it is part of another operation, such as closing a pipe (which involves
+implicitly closing both ends).
+
+Returns C<true> if successful; otherwise returns C<false> and sets C<errno> to
+indicate the cause.
+
+=cut
+*/
+
 bool
-Perl_do_close(pTHX_ GV *gv, bool not_implicit)
+Perl_do_close(pTHX_ GV *gv, bool is_explict)
 {
     bool retval;
     IO *io;
@@ -1822,13 +1838,13 @@ Perl_do_close(pTHX_ GV *gv, bool not_imp
     if (!gv)
         gv = PL_argvgv;
     if (!gv || !isGV_with_GP(gv)) {
-        if (not_implicit)
+        if (is_explict)
             SETERRNO(EBADF,SS_IVCHAN);
         return FALSE;
     }
     io = GvIO(gv);
     if (!io) {		/* never opened */
-        if (not_implicit) {
+        if (is_explict) {
             report_evil_fh(gv);
             SETERRNO(EBADF,SS_IVCHAN);
         }
@@ -1836,13 +1852,13 @@ Perl_do_close(pTHX_ GV *gv, bool not_imp
     }
     if ((mg = mg_findext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl))
         && mg->mg_obj) {
-        retval = argvout_final(mg, io, not_implicit);
+        retval = argvout_final(mg, io, is_explict);
         mg_freeext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl);
     }
     else {
-        retval = io_close(io, NULL, not_implicit, FALSE);
+        retval = io_close(io, NULL, is_explict, FALSE);
     }
-    if (not_implicit) {
+    if (is_explict) {
         IoLINES(io) = 0;
         IoPAGE(io) = 0;
         IoLINES_LEFT(io) = IoPAGE_LEN(io);
@@ -1852,7 +1868,7 @@ Perl_do_close(pTHX_ GV *gv, bool not_imp
 }
 
 bool
-Perl_io_close(pTHX_ IO *io, GV *gv, bool not_implicit, bool warn_on_fail)
+Perl_io_close(pTHX_ IO *io, GV *gv, bool is_explict, bool warn_on_fail)
 {
     bool retval = FALSE;
 
@@ -1871,7 +1887,7 @@ Perl_io_close(pTHX_ IO *io, GV *gv, bool
             */
             IoOFP(io) = IoIFP(io) = NULL;
             status = PerlProc_pclose(fh);
-            if (not_implicit) {
+            if (is_explict) {
                 STATUS_NATIVE_CHILD_SET(status);
                 retval = (STATUS_UNIX == 0);
             }
@@ -1916,7 +1932,7 @@ Perl_io_close(pTHX_ IO *io, GV *gv, bool
                                  SVfARG(get_sv("!",GV_ADD)));
         }
     }
-    else if (not_implicit) {
+    else if (is_explict) {
         SETERRNO(EBADF,SS_IVCHAN);
     }
 
@@ -2778,7 +2794,7 @@ nothing in the core.
                         {
                                 /* Under AmigaOS4 unlink only 'fails' if the filename is invalid */
                                 /* It may not remove the file if it's Locked, so check if it's still */
-                                /* arround */
+                                /* around */
                                 if((access(s,F_OK) != -1))
                                 {
                                         tot--;
Index: gnu/usr.bin/perl/doop.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/doop.c,v
diff -u -p -a -u -p -r1.21 doop.c
--- gnu/usr.bin/perl/doop.c	15 Feb 2023 01:36:13 -0000	1.21
+++ gnu/usr.bin/perl/doop.c	21 Feb 2024 15:47:02 -0000
@@ -1183,8 +1183,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV
  * values, or key-value pairs, depending on PL_op.
  */
 
-OP *
-Perl_do_kv(pTHX)
+PP(do_kv)
 {
     dSP;
     HV * const keys = MUTABLE_HV(POPs);
Index: gnu/usr.bin/perl/dosish.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dosish.h,v
diff -u -p -a -u -p -r1.18 dosish.h
--- gnu/usr.bin/perl/dosish.h	15 Feb 2023 01:36:13 -0000	1.18
+++ gnu/usr.bin/perl/dosish.h	21 Feb 2024 15:47:02 -0000
@@ -24,12 +24,17 @@
 #  define BIT_BUCKET "\\dev\\nul" /* "wanna be like, umm, Newlined, or somethin?" */
 #endif
 
+/* Generally add things last-in first-terminated.  IO and memory terminations
+ * need to be generally last
+ *
+ * BEWARE that using PerlIO in these will be using freed memory, so may appear
+ * to work, but must NOT be retained in production code. */
 #ifndef PERL_SYS_TERM_BODY
 #  define PERL_SYS_TERM_BODY()                         \
+    ENV_TERM; USER_PROP_MUTEX_TERM; LOCALE_TERM;       \
     HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM;      \
-    OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM;  \
-    MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM;    \
-    ENV_TERM;
+    OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM;               \
+    PERLIO_TERM; MALLOC_TERM; 
 #endif
 #define dXSUB_SYS dNOOP
 
@@ -104,6 +109,10 @@
 
 /* Don't go reading from /dev/urandom */
 #define PERL_NO_DEV_RANDOM
+
+#ifdef WIN32
+#  define NO_ENVIRON_ARRAY
+#endif
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/dquote.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dquote.c,v
diff -u -p -a -u -p -r1.5 dquote.c
--- gnu/usr.bin/perl/dquote.c	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/dquote.c	21 Feb 2024 15:47:02 -0000
@@ -46,7 +46,7 @@ Perl_grok_bslash_c(pTHX_ const char   so
         const char control = toCTRL('{');
         if (isPRINT_A(control)) {
             /* diag_listed_as: Use "%s" instead of "%s" */
-            *message = Perl_form(aTHX_ "Use \"%c\" instead of \"\\c{\"", control);
+            *message = Perl_form(aTHX_ PERL_DIAG_DIE_SYNTAX("Use \"%c\" instead of \"\\c{\""), control);
         }
         else {
             *message = "Sequence \"\\c{\" invalid";
@@ -58,7 +58,7 @@ Perl_grok_bslash_c(pTHX_ const char   so
     if (isPRINT_A(*result) && ckWARN(WARN_SYNTAX)) {
         U8 clearer[3];
         U8 i = 0;
-        char format[] = "\"\\c%c\" is more clearly written simply as \"%s\"";
+        char format[] = PERL_DIAG_WARN_SYNTAX("\"\\c%c\" is more clearly written simply as \"%s\"");
 
         if (! isWORDCHAR(*result)) {
             clearer[i++] = '\\';
Index: gnu/usr.bin/perl/dump.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dump.c,v
diff -u -p -a -u -p -r1.21 dump.c
--- gnu/usr.bin/perl/dump.c	15 Feb 2023 01:36:13 -0000	1.21
+++ gnu/usr.bin/perl/dump.c	21 Feb 2024 15:47:02 -0000
@@ -45,7 +45,8 @@ static const char* const svtypenames[SVt
     "PVHV",
     "PVCV",
     "PVFM",
-    "PVIO"
+    "PVIO",
+    "PVOBJ",
 };
 
 
@@ -65,7 +66,8 @@ static const char* const svshorttypename
     "HV",
     "CV",
     "FM",
-    "IO"
+    "IO",
+    "OBJ",
 };
 
 struct flag_to_name {
@@ -110,28 +112,31 @@ will also be escaped.
 Normally the SV will be cleared before the escaped string is prepared,
 but when C<PERL_PV_ESCAPE_NOCLEAR> is set this will not occur.
 
-If C<PERL_PV_ESCAPE_UNI> is set then the input string is treated as UTF-8
-if C<PERL_PV_ESCAPE_UNI_DETECT> is set then the input string is scanned
+If C<PERL_PV_ESCAPE_UNI> is set then the input string is treated as UTF-8.
+If C<PERL_PV_ESCAPE_UNI_DETECT> is set then the input string is scanned
 using C<is_utf8_string()> to determine if it is UTF-8.
 
 If C<PERL_PV_ESCAPE_ALL> is set then all input chars will be output
-using C<\x01F1> style escapes, otherwise if C<PERL_PV_ESCAPE_NONASCII> is set, only
-non-ASCII chars will be escaped using this style; otherwise, only chars above
-255 will be so escaped; other non printable chars will use octal or
-common escaped patterns like C<\n>.
-Otherwise, if C<PERL_PV_ESCAPE_NOBACKSLASH>
-then all chars below 255 will be treated as printable and
-will be output as literals.
+using C<\x01F1> style escapes, otherwise if C<PERL_PV_ESCAPE_NONASCII>
+is set, only non-ASCII chars will be escaped using this style;
+otherwise, only chars above 255 will be so escaped; other non printable
+chars will use octal or common escaped patterns like C<\n>. Otherwise,
+if C<PERL_PV_ESCAPE_NOBACKSLASH> then all chars below 255 will be
+treated as printable and will be output as literals. The
+C<PERL_PV_ESCAPE_NON_WC> modifies the previous rules to cause word
+chars, unicode or otherwise, to be output as literals, note this uses
+the *unicode* rules for deciding on word characters.
 
 If C<PERL_PV_ESCAPE_FIRSTCHAR> is set then only the first char of the
-string will be escaped, regardless of max.  If the output is to be in hex,
-then it will be returned as a plain hex
-sequence.  Thus the output will either be a single char,
-an octal escape sequence, a special escape like C<\n> or a hex value.
-
-If C<PERL_PV_ESCAPE_RE> is set then the escape char used will be a C<"%"> and
-not a C<"\\">.  This is because regexes very often contain backslashed
-sequences, whereas C<"%"> is not a particularly common character in patterns.
+string will be escaped, regardless of max. If the output is to be in
+hex, then it will be returned as a plain hex sequence. Thus the output
+will either be a single char, an octal escape sequence, a special escape
+like C<\n> or a hex value.
+
+If C<PERL_PV_ESCAPE_RE> is set then the escape char used will be a
+C<"%"> and not a C<"\\">. This is because regexes very often contain
+backslashed sequences, whereas C<"%"> is not a particularly common
+character in patterns.
 
 Returns a pointer to the escaped text as held by C<dsv>.
 
@@ -144,6 +149,7 @@ Returns a pointer to the escaped text as
 =for apidoc Amnh||PERL_PV_ESCAPE_RE
 =for apidoc Amnh||PERL_PV_ESCAPE_UNI
 =for apidoc Amnh||PERL_PV_ESCAPE_UNI_DETECT
+=for apidoc Amnh||PERL_PV_ESCAPE_NON_WC
 
 =cut
 
@@ -161,7 +167,7 @@ Unused or not for public use
 
 char *
 Perl_pv_escape( pTHX_ SV *dsv, char const * const str, 
-                const STRLEN count, const STRLEN max, 
+                const STRLEN count, STRLEN max,
                 STRLEN * const escaped, U32 flags )
 {
 
@@ -173,13 +179,45 @@ Perl_pv_escape( pTHX_ SV *dsv, char cons
 
     const char esc = (flags & PERL_PV_ESCAPE_RE) ? '%' : '\\';
     const char dq = (flags & PERL_PV_ESCAPE_QUOTE) ? '"' : esc;
+    const char *qs;
+    const char *qe;
+
     char octbuf[PV_ESCAPE_OCTBUFSIZE] = "%123456789ABCDF";
     STRLEN wrote = 0;    /* chars written so far */
     STRLEN chsize = 0;   /* size of data to be written */
     STRLEN readsize = 1; /* size of data just read */
-    bool isuni= flags & PERL_PV_ESCAPE_UNI ? 1 : 0; /* is this UTF-8 */
+    bool isuni= (flags & PERL_PV_ESCAPE_UNI)
+                ? TRUE : FALSE; /* is this UTF-8 */
     const char *pv  = str;
     const char * const end = pv + count; /* end of string */
+    const char *restart = NULL;
+    STRLEN extra_len = 0;
+    STRLEN tail = 0;
+    if ((flags & PERL_PV_ESCAPE_TRUNC_MIDDLE) && max > 3) {
+        if (flags & PERL_PV_ESCAPE_QUOTE) {
+            qs = qe = "\"";
+            extra_len = 5;
+        } else if (flags & PERL_PV_PRETTY_LTGT) {
+            qs = "<";
+            qe = ">";
+            extra_len = 5;
+        } else {
+            qs = qe = "";
+            extra_len = 3;
+        }
+        tail = max / 2;
+        restart = isuni ? (char *)utf8_hop_back((U8*)end,-tail,(U8*)pv) : end - tail;
+        if (restart > pv) {
+            max -= tail;
+        } else {
+            tail = 0;
+            restart = NULL;
+        }
+    }
+    else {
+        qs = qe = "";
+    }
+
     octbuf[0] = esc;
 
     PERL_ARGS_ASSERT_PV_ESCAPE;
@@ -192,9 +230,10 @@ Perl_pv_escape( pTHX_ SV *dsv, char cons
     if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count))
         isuni = 1;
     
-    for ( ; (pv < end && (!max || (wrote < max))) ; pv += readsize ) {
+    for ( ; pv < end ; pv += readsize ) {
         const UV u= (isuni) ? utf8_to_uvchr_buf((U8*)pv, (U8*) end, &readsize) : (U8)*pv;
         const U8 c = (U8)u;
+        const char *source_buf = octbuf;
         
         if ( ( u > 255 )
           || (flags & PERL_PV_ESCAPE_ALL)
@@ -204,6 +243,11 @@ Perl_pv_escape( pTHX_ SV *dsv, char cons
                 chsize = my_snprintf( octbuf, PV_ESCAPE_OCTBUFSIZE, 
                                       "%" UVxf, u);
             else
+            if ((flags & PERL_PV_ESCAPE_NON_WC) && isWORDCHAR_uvchr(u)) {
+                chsize = readsize;
+                source_buf = pv;
+            }
+            else
                 chsize = my_snprintf( octbuf, PV_ESCAPE_OCTBUFSIZE, 
                                       ((flags & PERL_PV_ESCAPE_DWIM) && !isuni)
                                       ? ( use_uc_hex ? ("%c" PV_BYTE_HEX_UC) : ("%c" PV_BYTE_HEX_LC) )
@@ -251,11 +295,22 @@ Perl_pv_escape( pTHX_ SV *dsv, char cons
                 chsize = 1;
             }
         }
-        if ( max && (wrote + chsize > max) ) {
-            break;
+        if (max && (wrote + chsize > max)) {
+            if (restart) {
+                /* this only happens with PERL_PV_ESCAPE_TRUNC_MIDDLE */
+                if (dsv)
+                    Perl_sv_catpvf( aTHX_ dsv,"%s...%s", qe, qs);
+                wrote += extra_len;
+                pv = restart;
+                max = tail;
+                wrote = tail = 0;
+                restart = NULL;
+            } else {
+                break;
+            }
         } else if (chsize > 1) {
             if (dsv)
-                sv_catpvn(dsv, octbuf, chsize);
+                sv_catpvn(dsv, source_buf, chsize);
             wrote += chsize;
         } else {
             /* If PERL_PV_ESCAPE_NOBACKSLASH is set then non-ASCII bytes
@@ -481,10 +536,12 @@ Perl_sv_peek(pTHX_ SV *sv)
                 break;
             }
         }
-        if (is_tmp || SvREFCNT(sv) > 1) {
+        if (is_tmp || SvREFCNT(sv) > 1 || SvPADTMP(sv)) {
             Perl_sv_catpvf(aTHX_ t, "<");
             if (SvREFCNT(sv) > 1)
                 Perl_sv_catpvf(aTHX_ t, "%" UVuf, (UV)SvREFCNT(sv));
+            if (SvPADTMP(sv))
+                Perl_sv_catpvf(aTHX_ t, "%s",  "P");
             if (is_tmp)
                 Perl_sv_catpvf(aTHX_ t, "%s", SvTEMP(t) ? "T" : "t");
             Perl_sv_catpvf(aTHX_ t, ">");
@@ -751,8 +808,7 @@ Perl_dump_sub_perl(pTHX_ const GV *gv, b
 
     PERL_ARGS_ASSERT_DUMP_SUB_PERL;
 
-    cv = isGV_with_GP(gv) ? GvCV(gv) :
-            (assert(SvROK((SV*)gv)), (CV*)SvRV((SV*)gv));
+    cv = isGV_with_GP(gv) ? GvCV(gv) : CV_FROM_REF((SV*)gv);
     if (justperl && (CvISXSUB(cv) || !CvROOT(cv)))
         return;
 
@@ -824,10 +880,8 @@ S_gv_display(pTHX_ GV *gv)
         if (isGV_with_GP(gv))
             gv_fullname3(raw, gv, NULL);
         else {
-            assert(SvROK(gv));
-            assert(SvTYPE(SvRV(gv)) == SVt_PVCV);
             Perl_sv_catpvf(aTHX_ raw, "cv ref: %s",
-                    SvPV_nolen_const(cv_name((CV *)SvRV(gv), name, 0)));
+                    SvPV_nolen_const(cv_name(CV_FROM_REF((SV*)gv), name, 0)));
         }
         rawpv = SvPV_const(raw, len);
         generic_pv_escape(name, rawpv, len, SvUTF8(raw));
@@ -1255,7 +1309,7 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar
         /* with ITHREADS, consts are stored in the pad, and the right pad
          * may not be active here, so skip */
         S_opdump_indent(aTHX_ o, level, bar, file, "SV = %s\n",
-                        SvPEEK(cMETHOPx_meth(o)));
+                        SvPEEK(cMETHOPo_meth));
 #endif
         break;
     case OP_NULL:
@@ -1265,8 +1319,8 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar
     case OP_NEXTSTATE:
     case OP_DBSTATE:
         if (CopLINE(cCOPo))
-            S_opdump_indent(aTHX_ o, level, bar, file, "LINE = %" UVuf "\n",
-                             (UV)CopLINE(cCOPo));
+            S_opdump_indent(aTHX_ o, level, bar, file, "LINE = %" LINE_Tf "\n",
+                            CopLINE(cCOPo));
 
         if (CopSTASHPV(cCOPo)) {
             SV* tmpsv = newSVpvs_flags("", SVs_TEMP);
@@ -1288,6 +1342,11 @@ S_do_op_dump_bar(pTHX_ I32 level, UV bar
                                 generic_pv_escape( tmpsv, label, label_len,
                                            (label_flags & SVf_UTF8)));
         }
+        /* add hints and features if set */
+        if (cCOPo->cop_hints)
+            S_opdump_indent(aTHX_ o, level, bar, file, "HINTS = %08x\n",cCOPo->cop_hints);
+        if (cCOPo->cop_features)
+            S_opdump_indent(aTHX_ o, level, bar, file, "FEATS = %08x\n",cCOPo->cop_features);
 
         S_opdump_indent(aTHX_ o, level, bar, file, "SEQ = %u\n",
                          (unsigned int)cCOPo->cop_seq);
@@ -1647,7 +1706,7 @@ Perl_do_gv_dump(pTHX_ I32 level, PerlIO 
     PERL_ARGS_ASSERT_DO_GV_DUMP;
 
     Perl_dump_indent(aTHX_ level, file, "%s = 0x%" UVxf, name, PTR2UV(sv));
-    if (sv && GvNAME(sv)) {
+    if (sv) {
         SV * const tmpsv = newSVpvs("");
         PerlIO_printf(file, "\t\"%s\"\n",
                               generic_pv_escape( tmpsv, GvNAME(sv), GvNAMELEN(sv), GvNAMEUTF8(sv) ));
@@ -1662,7 +1721,7 @@ Perl_do_gvgv_dump(pTHX_ I32 level, PerlI
     PERL_ARGS_ASSERT_DO_GVGV_DUMP;
 
     Perl_dump_indent(aTHX_ level, file, "%s = 0x%" UVxf, name, PTR2UV(sv));
-    if (sv && GvNAME(sv)) {
+    if (sv) {
        SV *tmp = newSVpvs_flags("", SVs_TEMP);
         const char *hvname;
         HV * const stash = GvSTASH(sv);
@@ -1710,7 +1769,7 @@ const struct flag_to_name cv_flags_names
     {CVf_CONST, "CONST,"},
     {CVf_NODEBUG, "NODEBUG,"},
     {CVf_LVALUE, "LVALUE,"},
-    {CVf_METHOD, "METHOD,"},
+    {CVf_NOWARN_AMBIGUOUS, "NOWARN_AMBIGUOUS,"},
     {CVf_WEAKOUTSIDE, "WEAKOUTSIDE,"},
     {CVf_CVGV_RC, "CVGV_RC,"},
     {CVf_DYNFILE, "DYNFILE,"},
@@ -1719,7 +1778,12 @@ const struct flag_to_name cv_flags_names
     {CVf_SLABBED, "SLABBED,"},
     {CVf_NAMED, "NAMED,"},
     {CVf_LEXICAL, "LEXICAL,"},
-    {CVf_ISXSUB, "ISXSUB,"}
+    {CVf_ISXSUB, "ISXSUB,"},
+    {CVf_ANONCONST,        "ANONCONST,"},
+    {CVf_SIGNATURE,        "SIGNATURE,"},
+    {CVf_REFCOUNTED_ANYSV, "REFCOUNTED_ANYSV,"},
+    {CVf_IsMETHOD,         "IsMETHOD,"}
+
 };
 
 const struct flag_to_name hv_flags_names[] = {
@@ -1949,8 +2013,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
 
     /* Dump general SV fields */
 
-    if ((type >= SVt_PVIV && type != SVt_PVAV && type != SVt_PVHV
-         && type != SVt_PVCV && type != SVt_PVFM && type != SVt_PVIO
+    if ((type >= SVt_PVIV && type <= SVt_PVLV
          && type != SVt_REGEXP && !isGV_with_GP(sv) && !SvVALID(sv))
         || (type == SVt_IV && !SvROK(sv))) {
         if (SvIsUV(sv)
@@ -1961,9 +2024,8 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
         (void)PerlIO_putc(file, '\n');
     }
 
-    if ((type >= SVt_PVNV && type != SVt_PVAV && type != SVt_PVHV
-                && type != SVt_PVCV && type != SVt_PVFM  && type != SVt_REGEXP
-                && type != SVt_PVIO && !isGV_with_GP(sv) && !SvVALID(sv))
+    if ((type >= SVt_PVNV && type <= SVt_PVLV
+         && type != SVt_REGEXP && !isGV_with_GP(sv) && !SvVALID(sv))
                || type == SVt_NV) {
         DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
         STORE_LC_NUMERIC_SET_STANDARD();
@@ -2091,7 +2153,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
         break;
     case SVt_PVHV: {
         U32 totalkeys;
-        if (SvOOK(sv)) {
+        if (HvHasAUX(sv)) {
             struct xpvhv_aux *const aux = HvAUX(sv);
             Perl_dump_indent(aTHX_ level, file, "  AUX_FLAGS = %" UVuf "\n",
                              (UV)aux->xhv_aux_flags);
@@ -2175,7 +2237,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
         }
         Perl_dump_indent(aTHX_ level, file, "  MAX = %" IVdf "\n",
                                (IV)HvMAX(sv));
-        if (SvOOK(sv)) {
+        if (HvHasAUX(sv)) {
             Perl_dump_indent(aTHX_ level, file, "  RITER = %" IVdf "\n",
                                    (IV)HvRITER_get(sv));
             Perl_dump_indent(aTHX_ level, file, "  EITER = 0x%" UVxf "\n",
@@ -2205,7 +2267,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
                                            HvNAMELEN(sv), HvNAMEUTF8(sv)));
         }
         }
-        if (SvOOK(sv)) {
+        if (HvHasAUX(sv)) {
             AV * const backrefs
                 = *Perl_hv_backreferences_p(aTHX_ MUTABLE_HV(sv));
             struct mro_meta * const meta = HvAUX(sv)->xhv_mro_meta;
@@ -2470,7 +2532,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
                                             " (%s)\n",
                                (UV)GvGPFLAGS(sv),
                                "");
-        Perl_dump_indent(aTHX_ level, file, "    LINE = %" IVdf "\n", (IV)GvLINE(sv));
+        Perl_dump_indent(aTHX_ level, file, "    LINE = %" LINE_Tf "\n", (line_t)GvLINE(sv));
         Perl_dump_indent(aTHX_ level, file, "    FILE = \"%s\"\n", GvFILE(sv));
         do_gv_dump (level, file, "    EGV", GvEGV(sv));
         break;
@@ -2548,55 +2610,128 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
                 Perl_dump_indent(aTHX_ level, file, "  INTFLAGS = 0x%" UVxf " (%s)\n",
                                 (UV)(r->intflags), SvPVX_const(d));
             } else {
-                Perl_dump_indent(aTHX_ level, file, "  INTFLAGS = 0x%" UVxf "\n",
+                Perl_dump_indent(aTHX_ level, file, "  INTFLAGS = 0x%" UVxf "(Plug in)\n",
                                 (UV)(r->intflags));
             }
 #undef SV_SET_STRINGIFY_REGEXP_FLAGS
             Perl_dump_indent(aTHX_ level, file, "  NPARENS = %" UVuf "\n",
                                 (UV)(r->nparens));
+            Perl_dump_indent(aTHX_ level, file, "  LOGICAL_NPARENS = %" UVuf "\n",
+                                (UV)(r->logical_nparens));
+
+#define SV_SET_STRINGIFY_I32_PAREN_ARRAY(d,count,ary)     \
+    STMT_START {                                    \
+        U32 n;                                      \
+        sv_setpv(d,"{ ");                           \
+        /* 0 element is irrelevant */               \
+        for(n=0; n <= count; n++)                   \
+            sv_catpvf(d,"%" IVdf "%s",              \
+                (IV)ary[n],                         \
+                n == count ? "" : ", ");            \
+        sv_catpvs(d," }\n");                        \
+    } STMT_END
+
+            Perl_dump_indent(aTHX_ level, file, "  LOGICAL_TO_PARNO = 0x%" UVxf "\n",
+                                PTR2UV(r->logical_to_parno));
+            if (r->logical_to_parno) {
+                SV_SET_STRINGIFY_I32_PAREN_ARRAY(d, r->logical_nparens, r->logical_to_parno);
+                Perl_dump_indent(aTHX_ level, file, "    %" SVf, d);
+            }
+            Perl_dump_indent(aTHX_ level, file, "  PARNO_TO_LOGICAL = 0x%" UVxf "\n",
+                                PTR2UV(r->parno_to_logical));
+            if (r->parno_to_logical) {
+                SV_SET_STRINGIFY_I32_PAREN_ARRAY(d, r->nparens, r->parno_to_logical);
+                Perl_dump_indent(aTHX_ level, file, "    %" SVf, d);
+            }
+
+            Perl_dump_indent(aTHX_ level, file, "  PARNO_TO_LOGICAL_NEXT = 0x%" UVxf "\n",
+                                PTR2UV(r->parno_to_logical_next));
+            if (r->parno_to_logical_next) {
+                SV_SET_STRINGIFY_I32_PAREN_ARRAY(d, r->nparens, r->parno_to_logical_next);
+                Perl_dump_indent(aTHX_ level, file, "    %" SVf, d);
+            }
+#undef SV_SET_STRINGIFY_I32_ARRAY
+
             Perl_dump_indent(aTHX_ level, file, "  LASTPAREN = %" UVuf "\n",
-                                (UV)(r->lastparen));
+                                (UV)(RXp_LASTPAREN(r)));
             Perl_dump_indent(aTHX_ level, file, "  LASTCLOSEPAREN = %" UVuf "\n",
-                                (UV)(r->lastcloseparen));
+                                (UV)(RXp_LASTCLOSEPAREN(r)));
             Perl_dump_indent(aTHX_ level, file, "  MINLEN = %" IVdf "\n",
-                                (IV)(r->minlen));
+                                (IV)(RXp_MINLEN(r)));
             Perl_dump_indent(aTHX_ level, file, "  MINLENRET = %" IVdf "\n",
-                                (IV)(r->minlenret));
+                                (IV)(RXp_MINLENRET(r)));
             Perl_dump_indent(aTHX_ level, file, "  GOFS = %" UVuf "\n",
-                                (UV)(r->gofs));
+                                (UV)(RXp_GOFS(r)));
             Perl_dump_indent(aTHX_ level, file, "  PRE_PREFIX = %" UVuf "\n",
-                                (UV)(r->pre_prefix));
+                                (UV)(RXp_PRE_PREFIX(r)));
             Perl_dump_indent(aTHX_ level, file, "  SUBLEN = %" IVdf "\n",
-                                (IV)(r->sublen));
+                                (IV)(RXp_SUBLEN(r)));
             Perl_dump_indent(aTHX_ level, file, "  SUBOFFSET = %" IVdf "\n",
-                                (IV)(r->suboffset));
+                                (IV)(RXp_SUBOFFSET(r)));
             Perl_dump_indent(aTHX_ level, file, "  SUBCOFFSET = %" IVdf "\n",
-                                (IV)(r->subcoffset));
-            if (r->subbeg)
+                                (IV)(RXp_SUBCOFFSET(r)));
+            if (RXp_SUBBEG(r))
                 Perl_dump_indent(aTHX_ level, file, "  SUBBEG = 0x%" UVxf " %s\n",
-                            PTR2UV(r->subbeg),
-                            pv_display(d, r->subbeg, r->sublen, 50, pvlim));
+                            PTR2UV(RXp_SUBBEG(r)),
+                            pv_display(d, RXp_SUBBEG(r), RXp_SUBLEN(r), 50, pvlim));
             else
                 Perl_dump_indent(aTHX_ level, file, "  SUBBEG = 0x0\n");
-            Perl_dump_indent(aTHX_ level, file, "  MOTHER_RE = 0x%" UVxf "\n",
-                                PTR2UV(r->mother_re));
-            if (nest < maxnest && r->mother_re)
-                do_sv_dump(level+1, file, (SV *)r->mother_re, nest+1,
-                           maxnest, dumpops, pvlim);
             Perl_dump_indent(aTHX_ level, file, "  PAREN_NAMES = 0x%" UVxf "\n",
-                                PTR2UV(r->paren_names));
+                                PTR2UV(RXp_PAREN_NAMES(r)));
             Perl_dump_indent(aTHX_ level, file, "  SUBSTRS = 0x%" UVxf "\n",
-                                PTR2UV(r->substrs));
+                                PTR2UV(RXp_SUBSTRS(r)));
             Perl_dump_indent(aTHX_ level, file, "  PPRIVATE = 0x%" UVxf "\n",
-                                PTR2UV(r->pprivate));
+                                PTR2UV(RXp_PPRIVATE(r)));
             Perl_dump_indent(aTHX_ level, file, "  OFFS = 0x%" UVxf "\n",
-                                PTR2UV(r->offs));
+                                PTR2UV(RXp_OFFSp(r)));
+            if (RXp_OFFSp(r)) {
+                U32 n;
+                sv_setpvs(d,"[ ");
+                /* note offs[0] is for the whole match, and
+                 * the data for $1 is in offs[1]. Thus we have to
+                 * show one more than we have nparens. */
+                for(n = 0; n <= r->nparens; n++) {
+                    sv_catpvf(d,"%" IVdf ":%" IVdf "%s",
+                        (IV)RXp_OFFSp(r)[n].start, (IV)RXp_OFFSp(r)[n].end,
+                        n+1 > r->nparens ? " ]\n" : ", ");
+                }
+                Perl_dump_indent(aTHX_ level, file, "    %" SVf, d);
+            }
             Perl_dump_indent(aTHX_ level, file, "  QR_ANONCV = 0x%" UVxf "\n",
-                                PTR2UV(r->qr_anoncv));
+                                PTR2UV(RXp_QR_ANONCV(r)));
 #ifdef PERL_ANY_COW
             Perl_dump_indent(aTHX_ level, file, "  SAVED_COPY = 0x%" UVxf "\n",
-                                PTR2UV(r->saved_copy));
+                                PTR2UV(RXp_SAVED_COPY(r)));
 #endif
+            /* this should go LAST or the output gets really confusing */
+            Perl_dump_indent(aTHX_ level, file, "  MOTHER_RE = 0x%" UVxf "\n",
+                                PTR2UV(RXp_MOTHER_RE(r)));
+            if (nest < maxnest && RXp_MOTHER_RE(r))
+                do_sv_dump(level+1, file, (SV *)RXp_MOTHER_RE(r), nest+1,
+                           maxnest, dumpops, pvlim);
+        }
+        break;
+    case SVt_PVOBJ:
+        Perl_dump_indent(aTHX_ level, file, "  MAXFIELD = %" IVdf "\n",
+                (IV)ObjectMAXFIELD(sv));
+        Perl_dump_indent(aTHX_ level, file, "  FIELDS = 0x%" UVxf "\n",
+                PTR2UV(ObjectFIELDS(sv)));
+        if (nest < maxnest && ObjectFIELDS(sv)) {
+            SSize_t count;
+            SV **svp = ObjectFIELDS(sv);
+            PADNAME **pname = PadnamelistARRAY(HvAUX(SvSTASH(sv))->xhv_class_fields);
+            for (count = 0;
+                 count <= ObjectMAXFIELD(sv) && count < maxnest;
+                 count++, svp++)
+            {
+                SV *const field = *svp;
+                PADNAME *pn = pname[count];
+
+                Perl_dump_indent(aTHX_ level + 1, file, "Field No. %" IVdf " (%s)\n",
+                        (IV)count, PadnamePV(pn));
+
+                do_sv_dump(level+1, file, field, nest+1, maxnest, dumpops, pvlim);
+            }
         }
         break;
     }
@@ -2608,7 +2743,38 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO 
 
 Dumps the contents of an SV to the C<STDERR> filehandle.
 
-For an example of its output, see L<Devel::Peek>.
+For an example of its output, see L<Devel::Peek>. If
+the item is an SvROK it will dump items to a depth of 4,
+otherwise it will dump only the top level item, which
+means that it will not dump the contents of an AV * or
+HV *. For that use C<av_dump()> or C<hv_dump()>.
+
+=for apidoc sv_dump_depth
+
+Dumps the contents of an SV to the C<STDERR> filehandle
+to the depth requested. This function can be used on any
+SV derived type (GV, HV, AV) with an appropriate cast.
+This is a more flexible variant of sv_dump(). For example
+
+    HV *hv = ...;
+    sv_dump_depth((SV*)hv, 2);
+
+would dump the hv, its keys and values, but would not recurse
+into any RV values.
+
+=for apidoc av_dump
+
+Dumps the contents of an AV to the C<STDERR> filehandle,
+Similar to using Devel::Peek on an arrayref but does not
+expect an RV wrapper. Dumps contents to a depth of 3 levels
+deep.
+
+=for apidoc hv_dump
+
+Dumps the contents of an HV to the C<STDERR> filehandle.
+Similar to using Devel::Peek on an hashref but does not
+expect an RV wrapper. Dumps contents to a depth of 3 levels
+deep.
 
 =cut
 */
@@ -2617,9 +2783,27 @@ void
 Perl_sv_dump(pTHX_ SV *sv)
 {
     if (sv && SvROK(sv))
-        do_sv_dump(0, Perl_debug_log, sv, 0, 4, 0, 0);
+        sv_dump_depth(sv, 4);
     else
-        do_sv_dump(0, Perl_debug_log, sv, 0, 0, 0, 0);
+        sv_dump_depth(sv, 0);
+}
+
+void
+Perl_sv_dump_depth(pTHX_ SV *sv, I32 depth)
+{
+    do_sv_dump(0, Perl_debug_log, sv, 0, depth, 0, 0);
+}
+
+void
+Perl_av_dump(pTHX_ AV *av)
+{
+    sv_dump_depth((SV*)av, 3);
+}
+
+void
+Perl_hv_dump(pTHX_ HV *hv)
+{
+    sv_dump_depth((SV*)hv, 3);
 }
 
 int
Index: gnu/usr.bin/perl/ebcdic_tables.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ebcdic_tables.h,v
diff -u -p -a -u -p -r1.5 ebcdic_tables.h
--- gnu/usr.bin/perl/ebcdic_tables.h	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/ebcdic_tables.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  * This file is built by regen/ebcdic.pl.
  * Any changes made here will be lost!
@@ -258,31 +258,6 @@ SOFTWARE.
 };
 #  endif
 
-#  ifndef DOINIT
-    EXT U8 PL_fold_locale[256];
-#  else
-    EXT U8 PL_fold_locale[256] = {
-/*      _0   _1   _2   _3   _4   _5   _6   _7   _8   _9   _A   _B   _C   _D   _E  _F*/
-/*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-/*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-/*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
-/*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
-/*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-/*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
-/*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-/*7_*/0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-/*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-/*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-/*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-/*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-/*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-/*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-/*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-/*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-/*      _0   _1   _2   _3   _4   _5   _6   _7   _8   _9   _A   _B   _C   _D   _E  _F*/
-};
-#  endif
-
 /* Index is EBCDIC 1047 code point; value is its other fold-pair equivalent
  * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
  * the code point itself */
@@ -661,31 +636,6 @@ SOFTWARE.
 };
 #  endif
 
-#  ifndef DOINIT
-    EXT U8 PL_fold_locale[256];
-#  else
-    EXT U8 PL_fold_locale[256] = {
-/*      _0   _1   _2   _3   _4   _5   _6   _7   _8   _9   _A   _B   _C   _D   _E  _F*/
-/*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-/*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-/*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
-/*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
-/*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-/*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
-/*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-/*7_*/0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-/*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-/*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-/*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-/*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-/*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-/*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-/*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-/*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-/*      _0   _1   _2   _3   _4   _5   _6   _7   _8   _9   _A   _B   _C   _D   _E  _F*/
-};
-#  endif
-
 /* Index is EBCDIC 037 code point; value is its other fold-pair equivalent
  * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
  * the code point itself */
@@ -845,4 +795,4 @@ SOFTWARE.
 
 #endif /* PERL_EBCDIC_TABLES_H_ */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/embed.fnc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/embed.fnc,v
diff -u -p -a -u -p -r1.14 embed.fnc
--- gnu/usr.bin/perl/embed.fnc	8 Jul 2023 14:18:35 -0000	1.14
+++ gnu/usr.bin/perl/embed.fnc	21 Feb 2024 15:47:02 -0000
@@ -69,50 +69,69 @@
 : macros can't be generated in such situations.
 :
 : WARNING: Any macro created in a header file is visible to XS code, unless
-: care is taken to wrap it within something like #ifdef PERL_CORE..#endif.
-: This has had to be done with things like MAX and MIN, but nearly everything
-: else has been created without regard to the namespace pollution problem.
-:
-: Here's what else you need to know about using this file with regards to name
-: space pollution:
-:
-: The A flag is used to make a function and its short name visible everywhere
-:	     on all platforms.  This should be used to make it part of Perl's
-:	     API contract with XS developers.  The documentation for these is
-:	     usually placed in perlapi.  If no documentation exists, that fact
-:	     is also noted in perlapi.
-:
-: The C flag is used instead for functions and their short names that need to
-:            be accessible everywhere, typically because they are called from a
-:            publicly available macro or inline function, but they are not for
-:            public use by themselves.  The documentation for these is placed
-:            in perlintern.  If no documentation exists, that fact is also
-:            noted in perlintern.
-:
-:            These really need the 'p' flag to avoid name space collisions.
-:
-:	     Some of these have been constructed so that the wrapper macro
-:	     names begin with an underscore to lessen the chances of a name
-:	     collision.  However, this is contrary to the C standard, and those
-:	     should be changed.
-:
-: The E flag is used instead for a function and its short name that is supposed
-:            to be used only in the core plus extensions compiled with the
-:            PERL_EXT symbol defined.  Again, on some platforms, the function
-:            will be visible everywhere, so one of the 'p' or 'S' flags is
-:            generally needed.  Also note that an XS writer can always cheat
-:            and pretend to be an extension by #defining PERL_EXT.
-:
-: The X flag is similar to the C flag in that the function (whose entry better
-:	     have the 'p' flag) is accessible everywhere on all platforms.
-:	     However the short name macro that normally gets generated is
-:	     suppressed outside the core.  (Except it is also visible in
-:	     PERL_EXT extensions if the E flag is also specified.)  This flag
-:	     is used for functions that are called from a public macro, the
-:	     name of which isn't derived from the function name.  You'll have
-:	     to write the macro yourself, and from within it, refer to the
-:	     function in its full 'Perl_' form with any necessary thread
-:	     context parameter.
+: care is taken to wrap it within C preprocessor guards like the following
+:
+:    #if defined(PERL_CORE)
+:    ...
+:    #endif
+:
+: A common pattern is to use defines like 'PERL_IN_FILE_C' (with FILE_C being
+: appropriately replaced with the real filename).  Most, if not all, of the
+: perl core C files define such a symbol before importing perl.h. Some groups
+: of files define more generalized flags which are referenced in this file and
+: the files generated from it.
+:
+: In general you should restrict the exposure of your exports as much as
+: possible, although older code may not do so.  Be aware that non-static
+: exports can be "over exported" and things will likely work out fine, but
+: inline and static macros will cause errors unless restricted to the specific
+: file they are intended for, and the generated PERL_ARGS_ macros will only
+: be available to inline functions in the appropriate context.
+:
+: From time to time it may be necessary to change or expand which files can
+: see a function, therefore we prefer the '#if defined()' form of condition
+: instead of the '#ifdef' form as the latter only works with one symbol and
+: the former can be combined with more than one.  It is also why you may see
+: functions with an 's' or 'i' export type grouped together into a single
+: conditional block separate from most of the other functions from the same
+: file with 'p' in them.
+:
+: The 'A' flag is used to make a function and its short name visible everywhere
+:         on all platforms.  This should be used to make it part of Perl's API
+:         contract with XS developers.  The documentation for these is usually
+:         placed in perlapi.  If no documentation exists, that fact is also
+:         noted in perlapi.
+:
+: The 'C' flag is used instead for functions and their short names that need to
+:         be accessible everywhere, typically because they are called from a
+:         publicly available macro or inline function, but they are not for
+:         public use by themselves.  The documentation for these is placed in
+:         perlintern.  If no documentation exists, that fact is also noted in
+:         perlintern.
+:
+:         These really need the 'p' flag to avoid name space collisions.
+:
+:         Some of these have been constructed so that the wrapper macro names
+:         begin with an underscore to lessen the chances of a name collision.
+:         However, this is contrary to the C standard, and those should be
+:         changed.
+:
+: The 'E' flag is used instead for a function and its short name that is
+:         supposed to be used only in the core plus extensions compiled with
+:         the PERL_EXT symbol defined.  Again, on some platforms, the function
+:         will be visible everywhere, so one of the 'p' or 'S' flags is
+:         generally needed.  Also note that an XS writer can always cheat and
+:         pretend to be an extension by #defining PERL_EXT.
+:
+: The 'X' flag is similar to the 'C' flag in that the function (whose entry
+:         better have the 'p' flag) is accessible everywhere on all platforms.
+:         However the short name macro that normally gets generated is
+:         suppressed outside the core.  (Except it is also visible in PERL_EXT
+:         extensions if the 'E' flag is also specified.)  This flag is used for
+:         functions that are called from a public macro, the name of which
+:         isn't derived from the function name.  You'll have to write the macro
+:         yourself, and from within it, refer to the function in its full
+:         'Perl_' form with any necessary thread context parameter.
 :
 : Just below is a description of the relevant parts of the automatic
 : documentation generation system which heavily involves this file.  Below that
@@ -141,7 +160,8 @@
 : the same entry.  This avoids needless repetition, making the pod shorter, and
 : makes it easier to compare and contrast the different forms, and less jumping
 : around the pod file for the person reading it.  The apidoc_item lines must
-: all come after the apidoc line and before the pod for the entry.
+: all come after the apidoc line and before the pod for the entry.  There need
+: not be empty lines between the apidoc line and any of its apidoc_item lines.
 :
 : The entries in this file that have corresponding '=for apidoc' entries must
 : have the 'd' flag set in this file.
@@ -236,318 +256,342 @@
 :
 : The remainder of these introductory comments detail all the possible flags:
 :
-:   A  Both long and short names are accessible fully everywhere (usually part
-:      of the public API).  If the function is not part of the public API,
-:      instead use C, E, or X.
-:
-:         add entry to the list of symbols available on all platforms
-:	    unless e or m are also specified;
-:         any doc entry goes in perlapi.pod rather than perlintern.pod.  If
-:	    there isn't a doc entry, autodoc.pl lists this in perlapi as
-:	    existing and being undocumented; unless x is also specified, in
-:	    which case it simply isn't listed.
-:         makes the short name defined for everywhere, not just for
-:	    PERL_CORE/PERL_EXT
-:
-:   a  Allocates memory a la malloc/calloc.  Also implies "R".  This flag
-:      should only be on a function which returns 'empty' memory which has no
-:      other pointers to it, and which does not contain any pointers to other
-:      things. So for example realloc() can't be 'a'.
-:
-:         proto.h: add __attribute__malloc__
-:
-:   b  Binary backward compatibility.  This is used for functions which are
-:      kept only to not have to change legacy applications that call them.  If
-:      there are no such legacy applications in a Perl installation for all
-:      functions flagged with this, the installation can run Configure with the
-:      -Accflags='-DNO_MATHOMS' parameter to not even compile them.
-:
-:      Sometimes the function has been subsumed by a more general one (say, by
-:      adding a flags parameter), and a macro exists with the original short
-:      name API, and it calls the new function, bypassing this one, and the
-:      original 'Perl_' form is being deprecated.  In this case also specify
-:      the 'M' flag.
-:
-:      Without the M flag, these functions should be deprecated, and it is an
-:      error to not also specify the 'D' flag.
-:
-:      The 'b' functions are normally moved to mathoms.c, but if circumstances
-:      dictate otherwise, they can be anywhere, provided the whole function is
-:      wrapped with
+:   'A'  Both long and short names are accessible fully everywhere (usually
+:        part of the public API). If the function is not part of the public
+:        API, instead use 'C', 'E', or 'X'.
+:
+:        * adds entry to the list of symbols available on all platforms unless
+:          'e' or 'm' are also specified;
+:        * any doc entry goes in perlapi.pod rather than perlintern.pod. If
+:          there isn't a doc entry, autodoc.pl lists this in perlapi as
+:          existing and being undocumented; unless 'x' is also specified, in
+:          which case it simply isn't listed.
+:        * makes the short name defined for everywhere, not just for PERL_CORE
+:          or PERL_EXT
+:
+:   'a'  Allocates memory a la malloc/calloc. Also implies 'R'. This flag
+:        should only be on a function which returns "empty" memory which has no
+:        other pointers to it, and which does not contain any pointers to other
+:        things. So for example realloc() can not be 'a'.
+:
+:          proto.h: add __attribute__malloc__
+:
+:   'b'  Binary backward compatibility. This is used for functions which are
+:        kept only to not have to change legacy applications that call them. If
+:        there are no such legacy applications in a Perl installation for all
+:        functions flagged with this, the installation can run Configure with
+:        the -Accflags='-DNO_MATHOMS' parameter to not even compile them.
+:
+:        Sometimes the function has been subsumed by a more general one (say,
+:        by adding a flags parameter), and a macro exists with the original
+:        short name API, and it calls the new function, bypassing this one, and
+:        the original 'Perl_' form is being deprecated. In this case also
+:        specify the 'M' flag.
+:
+:        Without the M flag, these functions should be deprecated, and it is an
+:        error to not also specify the 'D' flag.
+:
+:        The 'b' functions are normally moved to mathoms.c, but if
+:        circumstances dictate otherwise, they can be anywhere, provided the
+:        whole function is wrapped with
+:
 :	    #ifndef NO_MATHOMS
 :	    ...
 :	    #endif
 :
-:      Note that this flag no longer automatically adds a 'Perl_' prefix to the
-:      name.  Additionally specify 'p' to do that.
+:        Note that this flag no longer automatically adds a 'Perl_' prefix to
+:        the name. Additionally specify 'p' to do that.
 :
-:      This flag effectively causes nothing to happen if the perl interpreter
-:      is compiled with -DNO_MATHOMS (which causes any functions with this flag
-:      to not be compiled); otherwise these happen:
-:         add entry to the list of symbols available on all platforms;
-:         create PERL_ARGS_ASSERT_foo;
-:	  add embed.h entry (unless overridden by the 'M' or 'o' flags)
-:
-:   C  Intended for core use only.  This indicates to XS writers that they
-:      shouldn't be using this function.  Devel::PPPort informs them of this,
-:      for example.  Some functions have to be accessible everywhere even if
-:      they are not intended for public use.  An example is helper functions
-:      that are called from inline ones that are publicly available.
-:
-:         add entry to the list of symbols available on all platforms
-:	    unless e or m are also specified;
-:         any doc entry goes in perlintern.pod rather than perlapi.pod.  If
-:	    there isn't a doc entry, autodoc.pl lists this in perlintern as
-:	    existing and being undocumented
-:         makes the short name defined for everywhere, not just for
-:	    PERL_CORE/PERL_EXT
-:
-:   D  Function is deprecated:
-:
-:         proto.h: add __attribute__deprecated__
-:         autodoc.pl adds a note to this effect in the doc entry
+:        This flag effectively causes nothing to happen if the perl interpreter
+:        is compiled with -DNO_MATHOMS (which causes any functions with this
+:        flag to not be compiled); otherwise these happen:
+:
+:        * add entry to the list of symbols available on all platforms;
+:        * create PERL_ARGS_ASSERT_foo;
+:        * add embed.h entry (unless overridden by the 'M' or 'o' flags)
+:
+:   'C'  Intended for core use only. This indicates to XS writers that they
+:        shouldn't be using this function. Devel::PPPort informs them of this,
+:        for example. Some functions have to be accessible everywhere even if
+:        they are not intended for public use. An example is helper functions
+:        that are called from inline ones that are publicly available.
+:
+:        * add entry to the list of symbols available on all platforms unless e
+:          or m are also specified;
+:        * any doc entry goes in perlintern.pod rather than perlapi.pod. If
+:          there isn't a doc entry, autodoc.pl lists this in perlintern as
+:          existing and being undocumented
+:        * makes the short name defined for everywhere, not just for PERL_CORE
+:          or PERL_EXT
+:
+:   'D'  Function is deprecated:
+:
+:        proto.h: add __attribute__deprecated__
+:        autodoc.pl adds a note to this effect in the doc entry
 :
-:   d  Function has documentation (somewhere) in the source:
+:   'd'  Function has documentation (somewhere) in the source:
 :
-:         enables 'no docs for foo" warning in autodoc.pl if the documentation
-:         isn't found.
+:        Enables 'no docs for foo" warning in autodoc.pl if the documentation
+:        isn't found.
 :
-:   E  Visible to extensions included in the Perl core:
+:   'E'  Visible to extensions included in the Perl core:
 :
 :         in embed.h, change "#ifdef PERL_CORE"
 :         into               "#if defined(PERL_CORE) || defined(PERL_EXT)"
 :
-:       To be usable from dynamically loaded extensions, either:
-:	  1) it must be static to its containing file ("i" or "S" flag); or
-:         2) be combined with the "X" flag.
+:        To be usable from dynamically loaded extensions, either:
+:        1) it must be static to its containing file ('i' or 'S' flag); or
+:        2) be combined with the 'X' flag.
 :
-:   e  Not exported
+:   'e'  Not exported
 :
 :         suppress entry in the list of symbols available on all platforms
 :
-:   f  Function takes a format string. If the function name =~ qr/strftime/
-:      then it is assumed to take a strftime-style format string as the 1st
-:      arg; otherwise it's assumed to take a printf style format string, not
-:      necessarily the 1st arg.  All the arguments following it (including
-:      possibly '...') are assumed to be for the format.
+:   'f'  Function takes a format string. If the function name =~ qr/strftime/
+:        then it is assumed to take a strftime-style format string as the 1st
+:        arg; otherwise it's assumed to take a printf style format string, not
+:        necessarily the 1st arg.  All the arguments following the second form
+:	 (including possibly '...') are assumed to be for the format.
 :
-:         embed.h: any entry in here is suppressed because of varargs
+:         embed.h: any entry in here for the second form is suppressed because
+:	           of varargs
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
-:   F  Function has a '...' parameter, but don't assume it is a format.  This
-:      is to make sure that new functions with formats can't be added without
-:      considering if they are format functions or not.  A reason to use this
-:      flag even on a format function is if the format would generate
-:	    error: format string argument is not a string type
-:
-:   G  Suppress empty PERL_ARGS_ASSERT_foo macro.  Normally such a macro is
-:      generated for all entries for functions 'foo' in this file.  If there is
-:      a pointer argument to 'foo', it needs to be declared in this file as
-:      either NN or NULLOK, and the function definition must call its
-:      corresponding PERL_ARGS_ASSERT_foo macro (a porting test ensures this)
-:      which asserts at runtime (under DEBUGGING builds) that NN arguments are
-:      not NULL.  If there aren't NN arguments, use of this macro is optional.
-:      Rarely, a function will define its own PERL_ARGS_ASSERT_foo macro, and
-:      in those cases, adding this flag to its entry in this file will suppress
-:      the normal one.  It is not possible to suppress the generated macro if
-:      it isn't optional, that is, if there is at least one NN argument.
+:   'F'  Function has a '...' parameter, but don't assume it is a format. This
+:        is to make sure that new functions with formats can't be added without
+:        considering if they are format functions or not. A reason to use this
+:        flag even on a format function is if the format would generate error:
+:        format string argument is not a string type
+:
+:   'G'  Suppress empty PERL_ARGS_ASSERT_foo macro. Normally such a macro is
+:        generated for all entries for functions 'foo' in this file. If there
+:        is a pointer argument to 'foo', it needs to be declared in this file
+:        as either NN or NULLOK, and the function definition must call its
+:        corresponding PERL_ARGS_ASSERT_foo macro (a porting test ensures this)
+:        which asserts at runtime (under DEBUGGING builds) that NN arguments
+:        are not NULL. If there aren't NN arguments, use of this macro is
+:        optional. Rarely, a function will define its own PERL_ARGS_ASSERT_foo
+:        macro, and in those cases, adding this flag to its entry in this file
+:        will suppress the normal one. It is not possible to suppress the
+:        generated macro if it isn't optional, that is, if there is at least
+:        one NN argument.
 :
-:         proto.h: PERL_ARGS_ASSERT macro is not defined unless the function
+:          proto.h: PERL_ARGS_ASSERT macro is not defined unless the function
 :		   has NN arguments
 :
-:   h  Hide any documentation that would normally go into perlapi or
-:      perlintern.  This is typically used when the documentation is actually
-:      in another pod.  If you don't use the 'h', that documentation is
-:      displayed in both places; with the flag, it stays in the pod, and a
-:      link to that pod is instead placed in perlapi or perlintern.  This
-:      allows one to browse perlapi or perlintern and see all the potentially
-:      relevant elements.  A good example is perlapio.  It has documentation
-:      about PerlIO functions with other text giving context.  There's no point
-:      in writing a second entry for perlapi, but it would be good if someone
-:      browsing perlapi knew about the function and where it is documented.  By
-:      adding '=for apidoc' lines in perlapio, the appropriate text could be
-:      simply copied into perlapi if deemed appropriate, or just a link added
-:      there when the 'h' flag is specified.
-:      This flag is useful for symbolic names for flags.  A single =for apidoc
-:      line can be added to the pod where the meaning is discussed, and perlapi
-:      will list the name, with a link to the pod.  Another use would be if
-:      there are a bunch of macros which follow a common paradigm in their
-:      naming, so rather than having an entry for each slight variation, there
-:      is an overarching one.  This flag is useful for downstream programs,
-:      such as Devel::PPPort.
-:
-:   i  inline static.  This is used for functions that the compiler is being
-:      requested to inline.  If the function is in a header file its
-:      definition will be visible (unless guarded by #if..#endif) to all
-:      XS code.  (A typical guard will be that it is being included in a
-:      particular C file(s) or in the perl core.)  Therefore, all
-:      non-guarded functions should also have the 'p' flag specified to avoid
-:      polluting the XS code name space.  Otherwise an error is generated if
-:      the 'S' flag is not also specified.
-:
-:         proto.h: function is declared as PERL_STATIC_INLINE
-:
-:   I  This flag works exactly the same as 'i' but it also adds
-:      __attribute__((always_inline)) or __forceinline if either of them is
-:      supported by the compiler.
+:   'h'  Hide any documentation that would normally go into perlapi or
+:        perlintern. This is typically used when the documentation is actually
+:        in another pod. If you don't use the 'h', that documentation is
+:        displayed in both places; with the flag, it stays in the pod, and a
+:        link to that pod is instead placed in perlapi or perlintern. This
+:        allows one to browse perlapi or perlintern and see all the potentially
+:        relevant elements. A good example is perlapio. It has documentation
+:        about PerlIO functions with other text giving context. There's no
+:        point in writing a second entry for perlapi, but it would be good if
+:        someone browsing perlapi knew about the function and where it is
+:        documented. By adding '=for apidoc' lines in perlapio, the appropriate
+:        text could be simply copied into perlapi if deemed appropriate, or
+:        just a link added there when the 'h' flag is specified.
+:
+:        This flag is useful for symbolic names for flags. A single =for apidoc
+:        line can be added to the pod where the meaning is discussed, and
+:        perlapi will list the name, with a link to the pod. Another use would
+:        be if there are a bunch of macros which follow a common paradigm in
+:        their naming, so rather than having an entry for each slight
+:        variation, there is an overarching one. This flag is useful for
+:        downstream programs, such as Devel::PPPort.
+:
+:   'i'  inline static. This is used for functions that the compiler is being
+:        requested to inline. If the function is in a header file its
+:        definition will be visible (unless guarded by #if..#endif) to all XS
+:        code. (A typical guard will be that it is being included in a
+:        particular C file(s) or in the perl core.) Therefore, all non-guarded
+:        functions should also have the 'p' flag specified to avoid polluting
+:        the XS code name space. Otherwise an error is generated if the 'S'
+:        flag is not also specified.
+:
+:          proto.h: function is declared as PERL_STATIC_INLINE
+:
+:   'I'  This flag works exactly the same as 'i' but it also adds
+:        __attribute__((always_inline)) or __forceinline if either of them is
+:        supported by the compiler.
 :
-:         proto.h: function is declared as PERL_STATIC_FORCE_INLINE and
+:          proto.h: function is declared as PERL_STATIC_FORCE_INLINE and
 :                  __attribute__always_inline__ is added
 :
-:   m  Implemented as a macro; there is no function associated with this name,
-:      and hence no long Perl_ or S_ name.  However, if the macro name itself
-:      begins with 'Perl_', autodoc.pl will show a thread context parameter
-:      unless the 'T' flag is specified.
+:   'm'  Implemented as a macro; there is no function associated with this
+:        name, and hence no long Perl_ or S_ name. However, if the macro name
+:        itself begins with 'Perl_', autodoc.pl will show a thread context
+:        parameter unless the 'T' flag is specified.
 :
 :         suppress proto.h entry (actually, not suppressed, but commented out)
 :         suppress entry in the list of exported symbols available on all platforms
 :         suppress embed.h entry, as the implementation should furnish the macro
 :
-:   M  The implementation is furnishing its own macro instead of relying on the
-:      default short name macro that simply expands to call the real name
-:      function.  This is used if the parameters need to be cast from what the
-:      caller has, or if there is a macro that bypasses this function (whose
-:      long name is being retained for backward compatibility for those who
-:      call it with that name).  An example is when a new function is created
-:      with an extra parameter and a wrapper macro is added that has the old
-:      API, but calls the new one with the exta parameter set to a default.
+:   'M'  The implementation is furnishing its own macro instead of relying on
+:        the automatically generated short name macro (which simply expands to
+:        call the real name function). One reason to do this is if the
+:        parameters need to be cast from what the caller has, or if there is a
+:        macro that bypasses this function (whose long name is being retained
+:        for backward compatibility for those who call it with that name). An
+:        example is when a new function is created with an extra parameter and
+:        a wrapper macro is added that has the old API, but calls the new one
+:        with the exta parameter set to a default.
 :
-:      This flag requires the 'p' flag to be specified, as there would be no
-:      need to do this if the function weren't publicly accessible before.
+:        This flag requires the 'p' flag to be specified, as there would be no
+:        need to do this if the function weren't publicly accessible before.
 :
-:      The entry is processed based on the other flags, but the:
-:         embed.h entry is suppressed
+:        The entry is processed based on the other flags, but the:
+:           embed.h entry is suppressed
 :
-:   N  The name in the entry isn't strictly a name
+:   'N'  The name in the entry isn't strictly a name
 :
-:      Normally, the name of the function or macro must contain all \w
-:      characters, and a warning is raised otherwise.  This flag suppresses
-:      that warning, so that weird things can be documented
+:        Normally, the name of the function or macro must contain all \w
+:        characters, and a warning is raised otherwise. This flag suppresses
+:        that warning, so that weird things can be documented
 :
-:   n  Has no arguments.  Perhaps a better name would have been '0'. (used only
-:      in =for apidoc entries)
+:   'n'  Has no arguments. Perhaps a better name would have been '0'. (used
+:        only in =for apidoc entries)
 :
-:      The macro (it can't be a function) is used without any parameters nor
-:      empty parentheses.
+:        The macro (it can't be a function) is used without any parameters nor
+:        empty parentheses.
 :
-:      Perhaps a better name for this flag would have been '0'.  The reason the
-:      flag was not changed to that from 'n', is if D:P were to be regenerated
-:      on an older perl, it still would use the new embed.fnc shipped with it,
-:      but would be using the flags from the older perl source code.
+:        Perhaps a better name for this flag would have been '0'. The reason
+:        the flag was not changed to that from 'n', is if D:P were to be
+:        regenerated on an older perl, it still would use the new embed.fnc
+:        shipped with it, but would be using the flags from the older perl
+:        source code.
 :
-:   O  Has a perl_ compatibility macro.
+:   'O'  Has a perl_ compatibility macro.
 :
-:      The really OLD name for API funcs.
+:        The really OLD name for API funcs.
 :
-:      autodoc.pl adds a note that the perl_ form of this function is
-:      deprecated.
+:        autodoc.pl adds a note that the perl_ form of this function is
+:        deprecated.
 :
-:   o  Has no Perl_foo or S_foo compatibility macro:
+:   'o'  Has no Perl_foo or S_foo compatibility macro:
 :
-:	This is used for whatever reason to force the function to be called
-:	with the long name.  Perhaps there is a varargs issue.  Use the 'M'
-:	flag instead for wrapper macros, and legacy-only functions should
-:	also use 'b'.
+:	 This is used for whatever reason to force the function to be called
+:	 with the long name.  Perhaps there is a varargs issue.  Use the 'M'
+:	 flag instead for wrapper macros, and legacy-only functions should
+:	 also use 'b'.
 :
-:         embed.h: suppress "#define foo Perl_foo"
+:          embed.h: suppress "#define foo Perl_foo"
 :
-:      autodoc.pl adds a note that this function must be explicitly called as
-:      Perl_$name, and with an aTHX_ parameter unless the 'T' flag is also
-:      specified.
-
-:      mnemonic: 'omit' generated macro
+:        autodoc.pl adds a note that this function must be explicitly called as
+:        Perl_$name, and with an aTHX_ parameter unless the 'T' flag is also
+:        specified.
+:
+:        mnemonic: 'omit' generated macro
 :
-:   P  Pure function:
+:   'P'  Pure function:
 :
-:	A pure function has no effects except the return value, and the return
-:       value depends only on params and/or globals.  This is a hint to the
-:	compiler that it can optimize calls to this function out of common
-:	subexpressions.  Consequently if this flag is wrongly specified, it can
-:	lead to subtle bugs that vary by platform, compiler, compiler version,
-:	and optimization level.  Also, a future commit could easily change a
-:	currently-pure function without even noticing this flag.  So it should
-:	be used sparingly, only for functions that are unlikely to ever become
-:	not pure by future commits.  It should not be used for static
-:	functions, as the compiler already has the information needed to make
-:	the 'pure' determination and doesn't need any hint; so it doesn't add
-:	value in those cases, and could be dangerous if it causes the compiler
-:	to skip doing its own checks.  It should not be used on functions that
-:	touch SVs, as those can trigger unexpected magic.  Also implies "R":
+:        A pure function has no effects except the return value, and the return
+:        value depends only on params and/or globals. This is a hint to the
+:        compiler that it can optimize calls to this function out of common
+:        subexpressions. Consequently if this flag is wrongly specified, it can
+:        lead to subtle bugs that vary by platform, compiler, compiler version,
+:        and optimization level. Also, a future commit could easily change a
+:        currently-pure function without even noticing this flag. So it should
+:        be used sparingly, only for functions that are unlikely to ever become
+:        not pure by future commits. It should not be used for static
+:        functions, as the compiler already has the information needed to make
+:        the 'pure' determination and doesn't need any hint; so it doesn't add
+:        value in those cases, and could be dangerous if it causes the compiler
+:        to skip doing its own checks. It should not be used on functions that
+:        touch SVs, as those can trigger unexpected magic. Also implies "R":
 :
-:         proto.h: add __attribute__pure__
+:          proto.h: add __attribute__pure__
 :
-:   p  Function in source code has a Perl_ prefix:
+:   'p'  Function in source code has a Perl_ prefix:
 :
-:         proto.h: function is declared as Perl_foo rather than foo
-:         embed.h: "#define foo Perl_foo" entries added
+:          proto.h: function is declared as Perl_foo rather than foo
+:          embed.h: "#define foo Perl_foo" entries added
 :
-:   R  Return value must not be ignored (also implied by 'a' and 'P' flags):
+:   'R'  Return value must not be ignored (also implied by 'a' and 'P' flags):
 :
-:	gcc has a bug (which they claim is a feature) in which casting the
-:       result of one of these to (void) doesn't silence the warning that the
-:	result is ignored.  (Perl has a workaround for this bug, see
-:       PERL_UNUSED_RESULT docs)
+:        gcc has a bug (which they claim is a feature) in which casting the
+:        result of one of these to (void) doesn't silence the warning that the
+:        result is ignored. (Perl has a workaround for this bug, see
+:        PERL_UNUSED_RESULT docs)
 :
-:        proto.h: add __attribute__warn_unused_result__
+:          proto.h: add __attribute__warn_unused_result__
 :
-:   r  Function never returns:
+:   'r'  Function never returns:
 :
-:        proto.h: add __attribute__noreturn__
+:          proto.h: add __attribute__noreturn__
 :
-:   S  Static function: function in source code has a S_ prefix:
+:   'S'  Static function: function in source code has a S_ prefix:
 :
-:         proto.h: function is declared as S_foo rather than foo,
+:          proto.h: function is declared as S_foo rather than foo,
 :                STATIC is added to declaration;
-:         embed.h: "#define foo S_foo" entries added
+:          embed.h: "#define foo S_foo" entries added
 :
-:   s  autodoc.pl adds a terminating semi-colon to the usage example in the
-:      documentation.
+:   's'  Static function, but function in source code has a Perl_ prefix:
 :
-:   T  Has no implicit interpreter/thread context argument:
+:	 This is used for functions that have always had a Perl_ prefix, but
+:	 have been moved to a header file and declared static.
 :
-:         suppress the pTHX part of "foo(pTHX...)" in proto.h;
-:         In the PERL_IMPLICIT_SYS branch of embed.h, generates
+:          proto.h: function is declared as Perl_foo rather than foo
+:                STATIC is added to declaration;
+:          embed.h: "#define foo Perl_foo" entries added
+:
+:   'T'  Has no implicit interpreter/thread context argument:
+:
+:          suppress the pTHX part of "foo(pTHX...)" in proto.h;
+:          In the PERL_IMPLICIT_SYS branch of embed.h, generates
 :             "#define foo Perl_foo",      rather than
 :             "#define foo(a,b,c) Perl_foo(aTHX_ a,b,c)
 :
-:   u  The macro's (it has to be a macro) return value or parameters are
-:      unorthodox, and aren't in the list above of recognized weird ones.   For
-:      example, they aren't C parameters, or the macro expands to something
-:      that isn't a symbol.
+:   'u'  The macro's (it has to be a macro) return value or parameters are
+:        unorthodox, and aren't in the list above of recognized weird ones. For
+:        example, they aren't C parameters, or the macro expands to something
+:        that isn't a symbol.
+:
+:        For example, the expansion of STR_WITH_LEN is a comma separated pair
+:        of values, so would have this flag; or some macros take preprocessor
+:        tokens, so would have this flag.
 :
-:      For example, the expansion of STR_WITH_LEN is a comma separated pair of
-:      values, so would have this flag; or some macros take preprocessor
-:      tokens, so would have this flag.
+:        This also is used for entries that require processing for use, such as
+:        being compiled by xsubpp. This flag is an indication to downstream
+:        tools, such as Devel::PPPort, that this requires special handling.
 :
-:      This also is used for entries that require processing for use, such as
-:      being compiled by xsubpp.  This flag is an indication to downstream
-:      tools, such as Devel::PPPort, that this requires special handling.
+:   'U'  autodoc.pl will not output a usage example
 :
-:   U  autodoc.pl will not output a usage example
+:   'W'  Add a comma_pDEPTH argument to function prototypes, and a comma_aDEPTH argument
+:        to the function calls. This means that under DEBUGGING a depth
+:        argument is added to the functions, which is used for example by the
+:        regex engine for debugging and trace output. A non DEBUGGING build
+:        will not pass the unused argument. Currently restricted to functions
+:        with at least one argument.
 :
-:   W  Add a _pDEPTH argument to function prototypes, and an _aDEPTH
-:      argument to the function calls. This means that under DEBUGGING
-:      a depth argument is added to the functions, which is used for
-:      example by the regex engine for debugging and trace output.
-:      A non DEBUGGING build will not pass the unused argument.
-:      Currently restricted to functions with at least one argument.
+:   'X'  Explicitly exported:
 :
-:   X  Explicitly exported:
+:          add entry to the list of symbols available on all platforms, unless
+:          'e' or 'm'
 :
-:         add entry to the list of symbols available on all platforms, unless e
-:	    or m
+:        This is often used for private functions that are used by public
+:        macros. In those cases the macros must use the long form of the name
+:        (Perl_blah(aTHX_ ...)).
 :
-:      This is often used for private functions that are used by public
-:      macros.  In those cases the macros must use the long form of the
-:      name (Perl_blah(aTHX_ ...)).
+:   'x'  Experimental, may change:
 :
-:   x  Experimental, may change:
+:          Any doc entry is marked that it may change. An undocumented
+:          experimental function is listed in perlintern rather than perlapi,
+:          even if it is allegedly API.
 :
-:         Any doc entry is marked that it may change.  An undocumented
-:         experimental function is listed in perlintern rather than perlapi,
-:         even if it is allegedly API.
+:   'y'  Typedef.  The element names a type rather than being a macro
 :
-:   y  Typedef.  The element names a type rather than being a macro
+:   ';'  autodoc.pl adds a terminating semi-colon to the usage example in the
+:        documentation.
+:
+:   '#'  The number sign flag indicates that this is a pre-processor symbol
+:        that is just #define'd or #undef'd. Must NOT be the first symbol on
+:        the line.
+:
+:   '?'  The question mark flag is used internally by Devel::PPPort to
+:        indicate that it does not have enough information to generate a
+:        proper test case.
 :
 : In this file, pointer parameters that must not be passed NULLs should be
 : prefixed with NN.
@@ -557,3189 +601,5589 @@
 : know "I have defined whether NULL is OK or not" rather than having neither
 : NULL or NULLOK, which is ambiguous.
 :
-: Individual flags may be separated by non-tab whitespace.
-
-CipRTX	|char *	|mortal_getenv	|NN const char * str
-
-#if defined(PERL_IMPLICIT_SYS)
-CTo	|PerlInterpreter*|perl_alloc_using \
-				|NN struct IPerlMem *ipM \
-				|NN struct IPerlMem *ipMS \
-				|NN struct IPerlMem *ipMP \
-				|NN struct IPerlEnv *ipE \
-				|NN struct IPerlStdIO *ipStd \
-				|NN struct IPerlLIO *ipLIO \
-				|NN struct IPerlDir *ipD \
-				|NN struct IPerlSock *ipS \
-				|NN struct IPerlProc *ipP
-#endif
-ATod	|PerlInterpreter*	|perl_alloc
-ATod	|void	|perl_construct	|NN PerlInterpreter *my_perl
-ATod	|int	|perl_destruct	|NN PerlInterpreter *my_perl
-ATod	|void	|perl_free	|NN PerlInterpreter *my_perl
-ATod	|int	|perl_run	|NN PerlInterpreter *my_perl
-ATod	|int	|perl_parse	|NN PerlInterpreter *my_perl|XSINIT_t xsinit \
-				|int argc|NULLOK char** argv|NULLOK char** env
-CTpR	|bool	|doing_taint	|int argc|NULLOK char** argv|NULLOK char** env
-#if defined(USE_ITHREADS)
-ATod	|PerlInterpreter*|perl_clone|NN PerlInterpreter *proto_perl|UV flags
-#  if defined(PERL_IMPLICIT_SYS)
-CTo	|PerlInterpreter*|perl_clone_using \
-				|NN PerlInterpreter *proto_perl \
-				|UV flags \
-				|NN struct IPerlMem* ipM \
-				|NN struct IPerlMem* ipMS \
-				|NN struct IPerlMem* ipMP \
-				|NN struct IPerlEnv* ipE \
-				|NN struct IPerlStdIO* ipStd \
-				|NN struct IPerlLIO* ipLIO \
-				|NN struct IPerlDir* ipD \
-				|NN struct IPerlSock* ipS \
-				|NN struct IPerlProc* ipP
-#  endif
-#endif
-
-CaTopd	|Malloc_t|malloc	|MEM_SIZE nbytes
-CaTopd	|Malloc_t|calloc	|MEM_SIZE elements|MEM_SIZE size
-CRTopd	|Malloc_t|realloc	|Malloc_t where|MEM_SIZE nbytes
-CTopd	|Free_t	|mfree		|Malloc_t where
-#if defined(MYMALLOC)
-TpR	|MEM_SIZE|malloced_size	|NN void *p
-TpR	|MEM_SIZE|malloc_good_size	|size_t nbytes
-#endif
-#if defined(PERL_IN_MALLOC_C)
-ST	|int	|adjust_size_and_find_bucket	|NN size_t *nbytes_p
-#endif
-
-CTpdR	|void*	|get_context
-CTpd	|void	|set_context	|NN void *t
+: Numeric arguments may also be prefixed with NZ, which will cause the
+: appropriate asserts to be generated to validate that this is the case.
+:
+: Flags should be sorted asciibetically.
+:
+: Please keep the next line *BLANK*
 
-XEop	|bool	|try_amagic_bin	|int method|int flags
-XEop	|bool	|try_amagic_un	|int method|int flags
-Apd	|SV*	|amagic_call	|NN SV* left|NN SV* right|int method|int dir
-Apd	|SV *	|amagic_deref_call|NN SV *ref|int method
-p	|bool	|amagic_is_enabled|int method
-Apd	|int	|Gv_AMupdate	|NN HV* stash|bool destructing
-CpdR	|CV*	|gv_handler	|NULLOK HV* stash|I32 id
-Apd	|OP*	|op_append_elem	|I32 optype|NULLOK OP* first|NULLOK OP* last
-Apd	|OP*	|op_append_list	|I32 optype|NULLOK OP* first|NULLOK OP* last
-Apd	|OP*	|op_linklist	|NN OP *o
-Apd	|OP*	|op_prepend_elem|I32 optype|NULLOK OP* first|NULLOK OP* last
+pr	|void	|abort_execution|NULLOK SV *msg_sv			\
+				|NN const char * const name
+px	|LOGOP *|alloc_LOGOP	|I32 type				\
+				|NULLOK OP *first			\
+				|NULLOK OP *other
+: Used in toke.c and perly.y
+p	|PADOFFSET|allocmy	|NN const char * const name		\
+				|const STRLEN len			\
+				|const U32 flags
+Xdp	|bool	|amagic_applies |NN SV *sv				\
+				|int method				\
+				|int flags
+Adp	|SV *	|amagic_call	|NN SV *left				\
+				|NN SV *right				\
+				|int method				\
+				|int dir
+Adp	|SV *	|amagic_deref_call					\
+				|NN SV *ref				\
+				|int method
+p	|bool	|amagic_is_enabled					\
+				|int method
+
+ETXip	|void	|append_utf8_from_native_byte				\
+				|const U8 byte				\
+				|NN U8 **dest
 : FIXME - this is only called by pp_chown. They should be merged.
-p	|I32	|apply		|I32 type|NN SV** mark|NN SV** sp
-Apx	|void	|apply_attrs_string|NN const char *stashpv|NN CV *cv|NN const char *attrstr|STRLEN len
-Apd	|void	|av_clear	|NN AV *av
-Apd	|SV*	|av_delete	|NN AV *av|SSize_t key|I32 flags
-ApdR	|bool	|av_exists	|NN AV *av|SSize_t key
-Apd	|void	|av_extend	|NN AV *av|SSize_t key
-p	|void	|av_extend_guts	|NULLOK AV *av|SSize_t key \
-				|NN SSize_t *maxp \
-				|NN SV ***allocp|NN SV ***arrayp
-ApdR	|SV**	|av_fetch	|NN AV *av|SSize_t key|I32 lval
-CipdR	|SV**	|av_fetch_simple|NN AV *av|SSize_t key|I32 lval
-Apd	|void	|av_fill	|NN AV *av|SSize_t fill
-ApdR	|SSize_t|av_len		|NN AV *av
-ApdR	|AV*	|av_make	|SSize_t size|NN SV **strp
-CpdR	|AV*	|av_new_alloc	|SSize_t size|bool zeroflag
-p	|SV*	|av_nonelem	|NN AV *av|SSize_t ix
-Apd	|SV*	|av_pop		|NN AV *av
-Apdoe	|void	|av_create_and_push|NN AV **const avp|NN SV *const val
-Apd	|void	|av_push	|NN AV *av|NN SV *val
+p	|I32	|apply		|I32 type				\
+				|NN SV **mark				\
+				|NN SV **sp
+Apx	|void	|apply_attrs_string					\
+				|NN const char *stashpv 		\
+				|NN CV *cv				\
+				|NN const char *attrstr 		\
+				|STRLEN len
+Adp	|OP *	|apply_builtin_cv_attributes				\
+				|NN CV *cv				\
+				|NULLOK OP *attrlist
+CTp	|void	|atfork_lock
+CTp	|void	|atfork_unlock
+Cop	|SV **	|av_arylen_p	|NN AV *av
+Adp	|void	|av_clear	|NN AV *av
+ARdip	|Size_t |av_count	|NN AV *av
+Adeop	|void	|av_create_and_push					\
+				|NN AV ** const avp			\
+				|NN SV * const val
+Adeop	|SV **	|av_create_and_unshift_one				\
+				|NN AV ** const avp			\
+				|NN SV * const val
+Adp	|SV *	|av_delete	|NN AV *av				\
+				|SSize_t key				\
+				|I32 flags
+Adp	|void	|av_dump	|NULLOK AV *av
+ARdp	|bool	|av_exists	|NN AV *av				\
+				|SSize_t key
+Adp	|void	|av_extend	|NN AV *av				\
+				|SSize_t key
+p	|void	|av_extend_guts |NULLOK AV *av				\
+				|SSize_t key				\
+				|NN SSize_t *maxp			\
+				|NN SV ***allocp			\
+				|NN SV ***arrayp
+ARdp	|SV **	|av_fetch	|NN AV *av				\
+				|SSize_t key				\
+				|I32 lval
+CRdip	|SV **	|av_fetch_simple|NN AV *av				\
+				|SSize_t key				\
+				|I32 lval
+Adp	|void	|av_fill	|NN AV *av				\
+				|SSize_t fill
+Cop	|IV *	|av_iter_p	|NN AV *av
+ARdp	|SSize_t|av_len 	|NN AV *av
+ARdp	|AV *	|av_make	|SSize_t size				\
+				|NN SV **strp
+CRdip	|AV *	|av_new_alloc	|SSize_t size				\
+				|bool zeroflag
+p	|SV *	|av_nonelem	|NN AV *av				\
+				|SSize_t ix
+Adp	|SV *	|av_pop 	|NN AV *av
+Adp	|void	|av_push	|NN AV *av				\
+				|NN SV *val
+Adip	|void	|av_push_simple |NN AV *av				\
+				|NN SV *val
 : Used in scope.c, and by Data::Alias
 EXp	|void	|av_reify	|NN AV *av
-ApdR	|SV*	|av_shift	|NN AV *av
-Apd	|SV**	|av_store	|NN AV *av|SSize_t key|NULLOK SV *val
-Cipd	|SV**	|av_store_simple|NN AV *av|SSize_t key|NULLOK SV *val
-AmdR	|SSize_t|av_top_index	|NN AV *av
-AidRp	|Size_t	|av_count	|NN AV *av
-AmdR	|SSize_t|av_tindex	|NN AV *av
-Apd	|void	|av_undef	|NN AV *av
-Apdoe	|SV**	|av_create_and_unshift_one|NN AV **const avp|NN SV *const val
-Apd	|void	|av_unshift	|NN AV *av|SSize_t num
-Cpo	|SV**	|av_arylen_p	|NN AV *av
-Cpo	|IV*	|av_iter_p	|NN AV *av
-#if defined(PERL_IN_AV_C)
-S	|MAGIC*	|get_aux_mg	|NN AV *av
-#endif
+ARdp	|SV *	|av_shift	|NN AV *av
+Adp	|SV **	|av_store	|NN AV *av				\
+				|SSize_t key				\
+				|NULLOK SV *val
+Cdip	|SV **	|av_store_simple|NN AV *av				\
+				|SSize_t key				\
+				|NULLOK SV *val
+ARdm	|SSize_t|av_tindex	|NN AV *av
+ARdm	|SSize_t|av_top_index	|NN AV *av
+Adp	|void	|av_undef	|NN AV *av
+Adp	|void	|av_unshift	|NN AV *av				\
+				|SSize_t num
 : Used in perly.y
-pR	|OP*	|bind_match	|I32 type|NN OP *left|NN OP *right
+Rp	|OP *	|bind_match	|I32 type				\
+				|NN OP *left				\
+				|NN OP *right
 : Used in perly.y
-ApdR	|OP*	|block_end	|I32 floor|NULLOK OP* seq
-CpR	|U8	|block_gimme
+ARdp	|OP *	|block_end	|I32 floor				\
+				|NULLOK OP *seq
+CRp	|U8	|block_gimme
+Adopx	|void	|blockhook_register					\
+				|NN BHK *hk
 : Used in perly.y
-ApdR	|int	|block_start	|int full
-Aodxp	|void	|blockhook_register |NN BHK *hk
+ARdp	|int	|block_start	|int full
 p	|void	|boot_core_builtin
-: Used in perl.c
-p	|void	|boot_core_UNIVERSAL
+: Only used in perl.c
+p	|void	|boot_core_mro
 : Used in perl.c
 p	|void	|boot_core_PerlIO
-Cp	|void	|call_list	|I32 oldscope|NN AV *paramList
-Apd	|const PERL_CONTEXT *	|caller_cx|I32 level \
+: Used in perl.c
+p	|void	|boot_core_UNIVERSAL
+p	|OP *	|build_infix_plugin					\
+				|NN OP *lhs				\
+				|NN OP *rhs				\
+				|NN void *tokendata
+EXp	|char * |_byte_dump_string					\
+				|NN const U8 * const start		\
+				|const STRLEN len			\
+				|const bool format
+Adp	|int	|bytes_cmp_utf8 |NN const U8 *b 			\
+				|STRLEN blen				\
+				|NN const U8 *u 			\
+				|STRLEN ulen
+AMdpx	|U8 *	|bytes_from_utf8|NN const U8 *s 			\
+				|NN STRLEN *lenp			\
+				|NN bool *is_utf8p
+CTdpx	|U8 *	|bytes_from_utf8_loc					\
+				|NN const U8 *s 			\
+				|NN STRLEN *lenp			\
+				|NN bool *is_utf8p			\
+				|NULLOK const U8 **first_unconverted
+Adpx	|U8 *	|bytes_to_utf8	|NN const U8 *s 			\
+				|NN STRLEN *lenp
+AOdp	|I32	|call_argv	|NN const char *sub_name		\
+				|I32 flags				\
+				|NN char **argv
+
+: "Very" special - can't use the O flag for this one:
+: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
+Adp	|void	|call_atexit	|ATEXIT_t fn				\
+				|NULLOK void *ptr
+Adp	|const PERL_CONTEXT *|caller_cx 				\
+				|I32 level				\
 				|NULLOK const PERL_CONTEXT **dbcxp
+Cp	|void	|call_list	|I32 oldscope				\
+				|NN AV *paramList
+AOdp	|I32	|call_method	|NN const char *methname		\
+				|I32 flags
+CTadop	|Malloc_t|calloc	|MEM_SIZE elements			\
+				|MEM_SIZE size
+AOdp	|I32	|call_pv	|NN const char *sub_name		\
+				|I32 flags
+AOdp	|I32	|call_sv	|NN SV *sv				\
+				|volatile I32 flags
 : Used in several source files
-pR	|bool	|cando		|Mode_t mode|bool effective|NN const Stat_t* statbufp
-CpRT	|U32	|cast_ulong	|NV f
-CpRT	|I32	|cast_i32	|NV f
-CpRT	|IV	|cast_iv	|NV f
-CpRT	|UV	|cast_uv	|NV f
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-ApdR	|I32	|my_chsize	|int fd|Off_t length
-#endif
-p	|const COP*|closest_cop	|NN const COP *cop|NULLOK const OP *o \
-				|NULLOK const OP *curop|bool opnext
-: Used in perly.y
-ApdR	|OP*	|op_convert_list	|I32 optype|I32 flags|NULLOK OP* o
-: Used in op.c and perl.c
-px	|void	|create_eval_scope|NULLOK OP *retop|U32 flags
-Aprd	|void	|croak_sv	|NN SV *baseex
-: croak()'s first parm can be NULL.  Otherwise, mod_perl breaks.
-Afprd	|void	|croak		|NULLOK const char* pat|...
-Aprd	|void	|vcroak		|NULLOK const char* pat|NULLOK va_list* args
-ATprd	|void	|croak_no_modify
-ATprd	|void	|croak_xs_usage	|NN const CV *const cv \
-				|NN const char *const params
-Tpr	|void	|croak_no_mem
-TprX	|void	|croak_popstack
-fTrp	|void	|croak_caller|NULLOK const char* pat|...
-fTpre	|void	|noperl_die|NN const char* pat|...
-#if defined(WIN32)
-Tore	|void	|win32_croak_not_implemented|NN const char * fname
-#endif
-#if defined(MULTIPLICITY)
-AdfTrp	|void	|croak_nocontext|NULLOK const char* pat|...
-AdfTrp	|OP*    |die_nocontext  |NULLOK const char* pat|...
-AfTpd	|void	|deb_nocontext	|NN const char* pat|...
-AdfTp	|char*	|form_nocontext	|NN const char* pat|...
-AdFTp	|void	|load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
-AdfTp	|SV*	|mess_nocontext	|NN const char* pat|...
-AdfTp	|void	|warn_nocontext	|NN const char* pat|...
-AdfTp	|void	|warner_nocontext|U32 err|NN const char* pat|...
-AdfTp	|SV*	|newSVpvf_nocontext|NN const char *const pat|...
-AdfTp	|void	|sv_catpvf_nocontext|NN SV *const sv|NN const char *const pat|...
-AdfTp	|void	|sv_setpvf_nocontext|NN SV *const sv|NN const char *const pat|...
-AdfTp	|void	|sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
-AdfTp	|void	|sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
-AbfTpD	|int	|fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
-AbfTpD	|int	|printf_nocontext|NN const char *format|...
-#endif
+Rp	|bool	|cando		|Mode_t mode				\
+				|bool effective 			\
+				|NN const Stat_t *statbufp
+CRTp	|I32	|cast_i32	|NV f
+CRTp	|IV	|cast_iv	|NV f
+CRTp	|U32	|cast_ulong	|NV f
+CRTp	|UV	|cast_uv	|NV f
+p	|bool	|check_utf8_print					\
+				|NN const U8 *s 			\
+				|const STRLEN len
+op	|OP *	|ck_entersub_args_core					\
+				|NN OP *entersubop			\
+				|NN GV *namegv				\
+				|NN SV *protosv
+Adp	|OP *	|ck_entersub_args_list					\
+				|NN OP *entersubop
+Adp	|OP *	|ck_entersub_args_proto 				\
+				|NN OP *entersubop			\
+				|NN GV *namegv				\
+				|NN SV *protosv
+Adp	|OP *	|ck_entersub_args_proto_or_list 			\
+				|NN OP *entersubop			\
+				|NN GV *namegv				\
+				|NN SV *protosv
+
+CPop	|bool	|ckwarn 	|U32 w
+CPop	|bool	|ckwarn_d	|U32 w
+Adfp	|void	|ck_warner	|U32 err				\
+				|NN const char *pat			\
+				|...
+Adfp	|void	|ck_warner_d	|U32 err				\
+				|NN const char *pat			\
+				|...
+
+: Some static inline functions need predeclaration because they are used
+: inside other static inline functions.
+
+Cp	|void	|clear_defarray |NN AV *av				\
+				|bool abandon
+p	|const COP *|closest_cop|NN const COP *cop			\
+				|NULLOK const OP *o			\
+				|NULLOK const OP *curop 		\
+				|bool opnext
+Rp	|OP *	|cmpchain_extend|I32 type				\
+				|NN OP *ch				\
+				|NULLOK OP *right
+Rp	|OP *	|cmpchain_finish|NN OP *ch
+Rp	|OP *	|cmpchain_start |I32 type				\
+				|NULLOK OP *left			\
+				|NULLOK OP *right
+ERTXp	|const char *|cntrl_to_mnemonic 				\
+				|const U8 c
+Adpx	|const char *|cop_fetch_label					\
+				|NN COP * const cop			\
+				|NULLOK STRLEN *len			\
+				|NULLOK U32 *flags
+: Only used  in op.c and the perl compiler
+Adpx	|void	|cop_store_label|NN COP * const cop			\
+				|NN const char *label			\
+				|STRLEN len				\
+				|U32 flags
 : Used in pp.c
-pd	|SV *	|core_prototype	|NULLOK SV *sv|NN const char *name \
-				|const int code|NULLOK int * const opnum
+dp	|SV *	|core_prototype |NULLOK SV *sv				\
+				|NN const char *name			\
+				|const int code 			\
+				|NULLOK int * const opnum
 : Used in gv.c
-p	|OP *	|coresub_op	|NN SV *const coreargssv|const int code \
+p	|OP *	|coresub_op	|NN SV * const coreargssv		\
+				|const int code 			\
 				|const int opnum
+: Used in op.c and perl.c
+px	|void	|create_eval_scope					\
+				|NULLOK OP *retop			\
+				|U32 flags
+: croak()'s first parm can be NULL.  Otherwise, mod_perl breaks.
+Adfpr	|void	|croak		|NULLOK const char *pat 		\
+				|...
+Tfpr	|void	|croak_caller	|NULLOK const char *pat 		\
+				|...
+CTrs	|void	|croak_memory_wrap
+Tpr	|void	|croak_no_mem
+ATdpr	|void	|croak_no_modify
+TXpr	|void	|croak_popstack
+Adpr	|void	|croak_sv	|NN SV *baseex
+ATdpr	|void	|croak_xs_usage |NN const CV * const cv 		\
+				|NN const char * const params
+CTp	|Signal_t|csighandler1	|int sig
+CTp	|Signal_t|csighandler3	|int sig				\
+				|NULLOK Siginfo_t *info 		\
+				|NULLOK void *uap
+EXp	|regexp_engine const *|current_re_engine
+RXp	|XOPRETANY|custom_op_get_field					\
+				|NN const OP *o 			\
+				|const xop_flags_enum field
+Adop	|void	|custom_op_register					\
+				|NN Perl_ppaddr_t ppaddr		\
+				|NN const XOP *xop
 : Used in sv.c
-ExXp	|void	|cv_ckproto_len_flags	|NN const CV* cv|NULLOK const GV* gv\
-				|NULLOK const char* p|const STRLEN len \
-                                |const U32 flags
-: Used in pp.c and pp_sys.c
-ApdR	|SV*	|gv_const_sv	|NN GV* gv
-ApdRT	|SV*	|cv_const_sv	|NULLOK const CV *const cv
-pRT	|SV*	|cv_const_sv_or_av|NULLOK const CV *const cv
-Apd	|SV *	|cv_name	|NN CV *cv|NULLOK SV *sv|U32 flags
-Apd	|void	|cv_undef	|NN CV* cv
-p	|void	|cv_undef_flags	|NN CV* cv|U32 flags
-pd	|void	|cv_forget_slab	|NULLOK CV *cv
-Cp	|void	|cx_dump	|NN PERL_CONTEXT* cx
-AiMpd	|GV *	|CvGV		|NN CV *sv
-AdiMTp	|I32 *	|CvDEPTH	|NN const CV * const sv
-Aphd	|SV*	|filter_add	|NULLOK filter_t funcp|NULLOK SV* datasv
-Apd	|void	|filter_del	|NN filter_t funcp
-ApRhd	|I32	|filter_read	|int idx|NN SV *buf_sv|int maxlen
-ApPRx	|char**	|get_op_descs
-ApPRx	|char**	|get_op_names
-: FIXME discussion on p5p
-pPR	|const char*	|get_no_modify
-: FIXME discussion on p5p
-pPRx	|U32*	|get_opargs
-CpPRx	|PPADDR_t*|get_ppaddr
+EXpx	|void	|cv_ckproto_len_flags					\
+				|NN const CV *cv			\
+				|NULLOK const GV *gv			\
+				|NULLOK const char *p			\
+				|const STRLEN len			\
+				|const U32 flags
+Adp	|CV *	|cv_clone	|NN CV *proto
+p	|CV *	|cv_clone_into	|NN CV *proto				\
+				|NN CV *target
+ARTdp	|SV *	|cv_const_sv	|NULLOK const CV * const cv
+RTp	|SV *	|cv_const_sv_or_av					\
+				|NULLOK const CV * const cv
+AMTdip	|I32 *	|CvDEPTH	|NN const CV * const sv
+dp	|void	|cv_forget_slab |NULLOK CV *cv
+Adp	|void	|cv_get_call_checker					\
+				|NN CV *cv				\
+				|NN Perl_call_checker *ckfun_p		\
+				|NN SV **ckobj_p
+Adp	|void	|cv_get_call_checker_flags				\
+				|NN CV *cv				\
+				|U32 gflags				\
+				|NN Perl_call_checker *ckfun_p		\
+				|NN SV **ckobj_p			\
+				|NN U32 *ckflags_p
+AMdip	|GV *	|CvGV		|NN CV *sv
+Xop	|GV *	|cvgv_from_hek	|NN CV *cv
+Xp	|void	|cvgv_set	|NN CV *cv				\
+				|NULLOK GV *gv
+Adp	|SV *	|cv_name	|NN CV *cv				\
+				|NULLOK SV *sv				\
+				|U32 flags
+Adp	|void	|cv_set_call_checker					\
+				|NN CV *cv				\
+				|NN Perl_call_checker ckfun		\
+				|NN SV *ckobj
+Adp	|void	|cv_set_call_checker_flags				\
+				|NN CV *cv				\
+				|NN Perl_call_checker ckfun		\
+				|NN SV *ckobj				\
+				|U32 ckflags
+Xp	|void	|cvstash_set	|NN CV *cv				\
+				|NULLOK HV *stash
+Adp	|void	|cv_undef	|NN CV *cv
+p	|void	|cv_undef_flags |NN CV *cv				\
+				|U32 flags
+Cp	|void	|cx_dump	|NN PERL_CONTEXT *cx
 : Used by CXINC, which appears to be in widespread use
-CpR	|I32	|cxinc
-Afpd	|void	|deb		|NN const char* pat|...
-Apd	|void	|vdeb		|NN const char* pat|NULLOK va_list* args
-Cpd	|void	|debprofdump
-EXp	|SV*	|multideref_stringify	|NN const OP* o|NULLOK CV *cv
-EXp	|SV*	|multiconcat_stringify	|NN const OP* o
-Cpd	|I32	|debop		|NN const OP* o
-Apd	|I32	|debstack
+CRp	|I32	|cxinc
+Adfp	|void	|deb		|NN const char *pat			\
+				|...
+Cdp	|I32	|debop		|NN const OP *o
+Cdp	|void	|debprofdump
+Adp	|I32	|debstack
+
+: Only used in dump.c
+p	|void	|deb_stack_all
 Cp	|I32	|debstackptrs
-pR	|SV *	|defelem_target	|NN SV *sv|NULLOK MAGIC *mg
-ATpd	|char*	|delimcpy|NN char* to|NN const char* to_end		\
-			 |NN const char* from|NN const char* from_end	\
-			 |const int delim|NN I32* retlen
-EXTpd	|char*	|delimcpy_no_escape|NN char* to|NN const char* to_end	\
-				   |NN const char* from			\
-				   |NN const char* from_end		\
-				   |const int delim|NN I32* retlen
+p	|void	|debug_hash_seed|bool via_debug_h
+Rp	|SV *	|defelem_target |NN SV *sv				\
+				|NULLOK MAGIC *mg
 : Used in op.c, perl.c
 px	|void	|delete_eval_scope
-Aprd	|OP*    |die_sv         |NN SV *baseex
-Afrpd	|OP*    |die            |NULLOK const char* pat|...
+ATdp	|char * |delimcpy	|NN char *to				\
+				|NN const char *to_end			\
+				|NN const char *from			\
+				|NN const char *from_end		\
+				|const int delim			\
+				|NN I32 *retlen
+ETXdp	|char * |delimcpy_no_escape					\
+				|NN char *to				\
+				|NN const char *to_end			\
+				|NN const char *from			\
+				|NN const char *from_end		\
+				|const int delim			\
+				|NN I32 *retlen
+Cp	|void	|despatch_signals
+Adfpr	|OP *	|die		|NULLOK const char *pat 		\
+				|...
+Adpr	|OP *	|die_sv 	|NN SV *baseex
 : Used in util.c
-pr	|void	|die_unwind	|NN SV* msv
-Cpdh	|void	|dounwind	|I32 cxix
+pr	|void	|die_unwind	|NN SV *msv
 : FIXME
-pMb	|bool|do_aexec	|NULLOK SV* really|NN SV** mark|NN SV** sp
+Mbp	|bool	|do_aexec	|NULLOK SV *really			\
+				|NN SV **mark				\
+				|NN SV **sp
 : Used in pp_sys.c
-p	|bool|do_aexec5	|NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int do_report
-AbpD	|int	|do_binmode	|NN PerlIO *fp|int iotype|int mode
+p	|bool	|do_aexec5	|NULLOK SV *really			\
+				|NN SV **mark				\
+				|NN SV **sp				\
+				|int fd 				\
+				|int do_report
 : Used in pp.c
-Ap	|bool	|do_close	|NULLOK GV* gv|bool not_implicit
-: Defined in doio.c, used only in pp_sys.c
-p	|bool	|do_eof		|NN GV* gv
-
-#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-pM	|bool|do_exec	|NN const char* cmd
-#else
-p	|bool|do_exec	|NN const char* cmd
-#endif
-
-#if defined(WIN32) || defined(VMS)
-Cp	|int	|do_aspawn	|NULLOK SV* really|NN SV** mark|NN SV** sp
-Cp	|int	|do_spawn	|NN char* cmd
-Cp	|int	|do_spawn_nowait|NN char* cmd
-#endif
-#if !defined(WIN32)
-p	|bool|do_exec3	|NN const char *incmd|int fd|int do_report
-#endif
-#if defined(PERL_IN_DOIO_C)
-S	|void	|exec_failed	|NN const char *cmd|int fd|int do_report
-S	|bool	|argvout_final	|NN MAGIC *mg|NN IO *io|bool not_implicit
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+Adp	|bool	|do_close	|NULLOK GV *gv				\
+				|bool is_explicit
+dp	|void	|do_dump_pad	|I32 level				\
+				|NN PerlIO *file			\
+				|NULLOK PADLIST *padlist		\
+				|int full
 : Defined in doio.c, used only in pp_sys.c
-p	|I32	|do_ipcctl	|I32 optype|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p	|I32	|do_ipcget	|I32 optype|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p	|I32	|do_msgrcv	|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p	|I32	|do_msgsnd	|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p	|I32	|do_semop	|NN SV** mark|NN SV** sp
-: Defined in doio.c, used only in pp_sys.c
-p	|I32	|do_shmio	|I32 optype|NN SV** mark|NN SV** sp
-#endif
-Apd	|void	|do_join	|NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
+p	|bool	|do_eof 	|NN GV *gv
+: Used in perly.y
+p	|OP *	|dofile 	|NN OP *term				\
+				|I32 force_builtin
+Cp	|void	|do_gv_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NN const char *name			\
+				|NULLOK GV *sv
+Cp	|void	|do_gvgv_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NN const char *name			\
+				|NULLOK GV *sv
+Cp	|void	|do_hv_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NN const char *name			\
+				|NULLOK HV *sv
+CRTp	|bool	|doing_taint	|int argc				\
+				|NULLOK char **argv			\
+				|NULLOK char **env
+
+Adp	|void	|do_join	|NN SV *sv				\
+				|NN SV *delim				\
+				|NN SV **mark				\
+				|NN SV **sp
+Cp	|void	|do_magic_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NULLOK const MAGIC *mg 		\
+				|I32 nest				\
+				|I32 maxnest				\
+				|bool dumpops				\
+				|STRLEN pvlim
 : Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
 : p	|OP*	|do_kv
 : used in pp.c, pp_hot.c
-pR	|I32	|do_ncmp	|NN SV *const left|NN SV *const right
-ApMb	|bool	|do_open	|NN GV* gv|NN const char* name|I32 len|int as_raw \
-				|int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
-AbpD	|bool	|do_open9	|NN GV *gv|NN const char *name|I32 len|int as_raw \
-				|int rawmode|int rawperm|NULLOK PerlIO *supplied_fp \
-				|NN SV *svs|I32 num
-pT	|void	|setfd_cloexec|int fd
-pT	|void	|setfd_inhexec|int fd
-p	|void	|setfd_cloexec_for_nonsysfd|int fd
-p	|void	|setfd_inhexec_for_sysfd|int fd
-p	|void	|setfd_cloexec_or_inhexec_by_sysfdness|int fd
-pR	|int	|PerlLIO_dup_cloexec|int oldfd
-p	|int	|PerlLIO_dup2_cloexec|int oldfd|int newfd
-pR	|int	|PerlLIO_open_cloexec|NN const char *file|int flag
-pR	|int	|PerlLIO_open3_cloexec|NN const char *file|int flag|int perm
-pToR	|int	|my_mkstemp_cloexec|NN char *templte
-pToR	|int	|my_mkostemp_cloexec|NN char *templte|int flags
-#ifdef HAS_PIPE
-pR	|int	|PerlProc_pipe_cloexec|NN int *pipefd
-#endif
-#ifdef HAS_SOCKET
-pR	|int	|PerlSock_socket_cloexec|int domain|int type|int protocol
-pR	|int	|PerlSock_accept_cloexec|int listenfd \
-				|NULLOK struct sockaddr *addr \
-				|NULLOK Sock_size_t *addrlen
-#endif
-#if defined (HAS_SOCKETPAIR) || \
-    (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && \
-	defined(AF_INET) && defined(PF_INET))
-pR	|int	|PerlSock_socketpair_cloexec|int domain|int type|int protocol \
-				|NN int *pairfd
-#endif
-#if defined(PERL_IN_DOIO_C)
-S	|IO *	|openn_setup    |NN GV *gv|NN char *mode|NN PerlIO **saveifp \
-				|NN PerlIO **saveofp|NN int *savefd \
-                                |NN char *savetype
-S	|bool	|openn_cleanup	|NN GV *gv|NN IO *io|NULLOK PerlIO *fp \
-				|NN char *mode|NN const char *oname \
-                                |NULLOK PerlIO *saveifp|NULLOK PerlIO *saveofp \
-                                |int savefd|char savetype|int writing \
-                                |bool was_fdopen|NULLOK const char *type \
-                                |NULLOK Stat_t *statbufp
-#endif
-Ap	|bool	|do_openn	|NN GV *gv|NN const char *oname|I32 len \
-				|int as_raw|int rawmode|int rawperm \
-				|NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
-				|I32 num
-xp	|bool	|do_open_raw	|NN GV *gv|NN const char *oname|STRLEN len \
-				|int rawmode|int rawperm|NULLOK Stat_t *statbufp
-xp	|bool	|do_open6	|NN GV *gv|NN const char *oname|STRLEN len \
-				|NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
+Rp	|I32	|do_ncmp	|NN SV * const left			\
+				|NN SV * const right
+Cp	|void	|do_op_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NULLOK const OP *o
+AMbp	|bool	|do_open	|NN GV *gv				\
+				|NN const char *name			\
+				|I32 len				\
+				|int as_raw				\
+				|int rawmode				\
+				|int rawperm				\
+				|NULLOK PerlIO *supplied_fp
+px	|bool	|do_open6	|NN GV *gv				\
+				|NN const char *oname			\
+				|STRLEN len				\
+				|NULLOK PerlIO *supplied_fp		\
+				|NULLOK SV **svp			\
 				|U32 num
+Ap	|bool	|do_openn	|NN GV *gv				\
+				|NN const char *oname			\
+				|I32 len				\
+				|int as_raw				\
+				|int rawmode				\
+				|int rawperm				\
+				|NULLOK PerlIO *supplied_fp		\
+				|NULLOK SV **svp			\
+				|I32 num
+px	|bool	|do_open_raw	|NN GV *gv				\
+				|NN const char *oname			\
+				|STRLEN len				\
+				|int rawmode				\
+				|int rawperm				\
+				|NULLOK Stat_t *statbufp
+Cp	|void	|do_pmop_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NULLOK const PMOP *pm
 : Used in pp_hot.c and pp_sys.c
-p	|bool	|do_print	|NULLOK SV* sv|NN PerlIO* fp
+p	|bool	|do_print	|NULLOK SV *sv				\
+				|NN PerlIO *fp
 : Used in pp_sys.c
-pR	|OP*	|do_readline
+Rp	|OP *	|do_readline
+Cp	|OP *	|doref		|NN OP *o				\
+				|I32 type				\
+				|bool set_op_ref
 : Defined in doio.c, used only in pp_sys.c
-p	|bool	|do_seek	|NULLOK GV* gv|Off_t pos|int whence
-Apd	|void	|do_sprintf	|NN SV* sv|SSize_t len|NN SV** sarg
+p	|bool	|do_seek	|NULLOK GV *gv				\
+				|Off_t pos				\
+				|int whence
+Adp	|void	|do_sprintf	|NN SV *sv				\
+				|SSize_t len				\
+				|NN SV **sarg
+Cp	|void	|do_sv_dump	|I32 level				\
+				|NN PerlIO *file			\
+				|NULLOK SV *sv				\
+				|I32 nest				\
+				|I32 maxnest				\
+				|bool dumpops				\
+				|STRLEN pvlim
 : Defined in doio.c, used only in pp_sys.c
-p	|Off_t	|do_sysseek	|NN GV* gv|Off_t pos|int whence
+p	|Off_t	|do_sysseek	|NN GV *gv				\
+				|Off_t pos				\
+				|int whence
 : Defined in doio.c, used only in pp_sys.c
-pR	|Off_t	|do_tell	|NN GV* gv
+Rp	|Off_t	|do_tell	|NN GV *gv
 : Defined in doop.c, used only in pp.c
-p	|Size_t	|do_trans	|NN SV* sv
+p	|Size_t |do_trans	|NN SV *sv
+ERTXp	|I16	|do_uniprop_match					\
+				|NN const char * const key		\
+				|const U16 key_len
+Cdhp	|void	|dounwind	|I32 cxix
 : Used in my.c and pp.c
-p	|UV	|do_vecget	|NN SV* sv|STRLEN offset|int size
+p	|UV	|do_vecget	|NN SV *sv				\
+				|STRLEN offset				\
+				|int size
 : Defined in doop.c, used only in mg.c (with /* XXX slurp this routine */)
-p	|void	|do_vecset	|NN SV* sv
+p	|void	|do_vecset	|NN SV *sv
 : Defined in doop.c, used only in pp.c
-p	|void	|do_vop		|I32 optype|NN SV* sv|NN SV* left|NN SV* right
-: Used in perly.y
-p	|OP*	|dofile		|NN OP* term|I32 force_builtin
-CdpR	|U8	|dowantarray
+p	|void	|do_vop 	|I32 optype				\
+				|NN SV *sv				\
+				|NN SV *left				\
+				|NN SV *right
+CDRdp	|U8	|dowantarray
+TXop	|void	|drand48_init_r |NN perl_drand48_t *random_state	\
+				|U32 seed
+TXop	|double |drand48_r	|NN perl_drand48_t *random_state
 Adp	|void	|dump_all
 p	|void	|dump_all_perl	|bool justperl
-Apdh	|void	|dump_eval
-Apd	|void	|dump_form	|NN const GV* gv
-Apd	|void	|gv_dump	|NULLOK GV* gv
-Apd	|OPclass|op_class	|NULLOK const OP *o
-Apd	|void	|op_dump	|NN const OP *o
-Apd	|void	|pmop_dump	|NULLOK PMOP* pm
-Apd	|void	|dump_packsubs	|NN const HV* stash
-p	|void	|dump_packsubs_perl	|NN const HV* stash|bool justperl
-Apdh	|void	|dump_sub	|NN const GV* gv
-p	|void	|dump_sub_perl	|NN const GV* gv|bool justperl
-Apd	|void	|fbm_compile	|NN SV* sv|U32 flags
-ApdR	|char*	|fbm_instr	|NN unsigned char* big|NN unsigned char* bigend \
-				|NN SV* littlestr|U32 flags
-pEXTR	|const char *|cntrl_to_mnemonic|const U8 c
+Adhp	|void	|dump_eval
+Adp	|void	|dump_form	|NN const GV *gv
+Cfp	|void	|dump_indent	|I32 level				\
+				|NN PerlIO *file			\
+				|NN const char *pat			\
+				|...
+Adp	|void	|dump_packsubs	|NN const HV *stash
+p	|void	|dump_packsubs_perl					\
+				|NN const HV *stash			\
+				|bool justperl
+Adhp	|void	|dump_sub	|NN const GV *gv
+p	|void	|dump_sub_perl	|NN const GV *gv			\
+				|bool justperl
+Cp	|void	|dump_vindent	|I32 level				\
+				|NN PerlIO *file			\
+				|NN const char *pat			\
+				|NULLOK va_list *args
+
+EXop	|char  *|dup_warnings	|NULLOK char *warnings
+
+: Used by B
+EXopx	|void	|emulate_cop_io |NN const COP * const c 		\
+				|NN SV * const sv
+AOdp	|SV *	|eval_pv	|NN const char *p			\
+				|I32 croak_on_error
+AOdp	|I32	|eval_sv	|NN SV *sv				\
+				|I32 flags
+Adp	|void	|fbm_compile	|NN SV *sv				\
+				|U32 flags
+ARdp	|char * |fbm_instr	|NN unsigned char *big			\
+				|NN unsigned char *bigend		\
+				|NN SV *littlestr			\
+				|U32 flags
+Adhp	|SV *	|filter_add	|NULLOK filter_t funcp			\
+				|NULLOK SV *datasv
+Adp	|void	|filter_del	|NN filter_t funcp
+ARdhp	|I32	|filter_read	|int idx				\
+				|NN SV *buf_sv				\
+				|int maxlen
 p	|CV *	|find_lexical_cv|PADOFFSET off
+
+ARdp	|CV *	|find_runcv	|NULLOK U32 *db_seqp
+Rp	|CV *	|find_runcv_where					\
+				|U8 cond				\
+				|IV arg 				\
+				|NULLOK U32 *db_seqp
+Adp	|SV *	|find_rundefsv
 : Defined in util.c, used only in perl.c
-p	|char*	|find_script	|NN const char *scriptname|bool dosearch \
-				|NULLOK const char *const *const search_ext|I32 flags
-#if defined(PERL_IN_OP_C)
-S	|OP*	|force_list	|NULLOK OP* arg|bool nullit
-i	|OP*	|op_integerize	|NN OP *o
-i	|OP*	|op_std_init	|NN OP *o
-#if defined(USE_ITHREADS)
-i	|void	|op_relocate_sv	|NN SV** svp|NN PADOFFSET* targp
-#endif
-i	|OP*	|newMETHOP_internal	|I32 type|I32 flags|NULLOK OP* dynamic_meth \
-					|NULLOK SV* const_meth
-: FIXME
-S	|OP*	|fold_constants	|NN OP * const o
-Sd	|OP*	|traverse_op_tree|NN OP* top|NN OP* o
-#endif
-Afpd	|char*	|form		|NN const char* pat|...
-Adp	|char*	|vform		|NN const char* pat|NULLOK va_list* args
+p	|char * |find_script	|NN const char *scriptname			\
+				|bool dosearch					\
+				|NULLOK const char * const * const search_ext	\
+				|I32 flags
+Adip	|I32	|foldEQ 	|NN const char *a			\
+				|NN const char *b			\
+				|I32 len
+Cip	|I32	|foldEQ_latin1	|NN const char *a			\
+				|NN const char *b			\
+				|I32 len
+Adip	|I32	|foldEQ_locale	|NN const char *a			\
+				|NN const char *b			\
+				|I32 len
+Adm	|I32	|foldEQ_utf8	|NN const char *s1			\
+				|NULLOK char **pe1			\
+				|UV l1					\
+				|bool u1				\
+				|NN const char *s2			\
+				|NULLOK char **pe2			\
+				|UV l2					\
+				|bool u2
+Cp	|I32	|foldEQ_utf8_flags					\
+				|NN const char *s1			\
+				|NULLOK char **pe1			\
+				|UV l1					\
+				|bool u1				\
+				|NN const char *s2			\
+				|NULLOK char **pe2			\
+				|UV l2					\
+				|bool u2				\
+				|U32 flags
+Adpx	|void	|forbid_outofblock_ops					\
+				|NN OP *o				\
+				|NN const char *blockname
+Tp	|void	|force_locale_unlock
+Cp	|void	|_force_out_malformed_utf8_message			\
+				|NN const U8 * const p			\
+				|NN const U8 * const e			\
+				|const U32 flags			\
+				|const bool die_here
+Adfp	|char * |form		|NN const char *pat			\
+				|...
+: Only used in perl.c
+p	|void	|free_tied_hv_pool
 Cp	|void	|free_tmps
-#if defined(PERL_IN_OP_C)
-S	|void	|gen_constant_list|NULLOK OP* o
-#endif
-#if !defined(HAS_GETENV_LEN)
-: Used in hv.c
-p	|char*	|getenv_len	|NN const char *env_elem|NN unsigned long *len
-#endif
+ERXp	|SV *	|get_and_check_backslash_N_name 			\
+				|NN const char *s			\
+				|NN const char *e			\
+				|const bool is_utf8			\
+				|NN const char **error_msg
+AOdp	|AV *	|get_av 	|NN const char *name			\
+				|I32 flags
+AOdp	|CV *	|get_cv 	|NN const char *name			\
+				|I32 flags
+Adp	|CV *	|get_cvn_flags	|NN const char *name			\
+				|STRLEN len				\
+				|I32 flags
+Adp	|int	|getcwd_sv	|NN SV *sv
 : Used in pp_ctl.c and pp_hot.c
-poe	|void	|get_db_sub	|NULLOK SV **svp|NN CV *cv
-Cp	|void	|gp_free	|NULLOK GV* gv
-Cp	|GP*	|gp_ref		|NULLOK GP* gp
-Apd	|GV*	|gv_add_by_type	|NULLOK GV *gv|svtype type
-ApdMb	|GV*	|gv_AVadd	|NULLOK GV *gv
-ApdMb	|GV*	|gv_HVadd	|NULLOK GV *gv
-ApdMb	|GV*	|gv_IOadd	|NULLOK GV* gv
-AdmR	|GV*	|gv_autoload4	|NULLOK HV* stash|NN const char* name \
-				|STRLEN len|I32 method
-ApR	|GV*	|gv_autoload_sv	|NULLOK HV* stash|NN SV* namesv|U32 flags
-ApR	|GV*	|gv_autoload_pv	|NULLOK HV* stash|NN const char* namepv \
-                                |U32 flags
-ApR	|GV*	|gv_autoload_pvn	|NULLOK HV* stash|NN const char* name \
-                                        |STRLEN len|U32 flags
-Cp	|void	|gv_check	|NN HV* stash
-AbpD	|void	|gv_efullname	|NN SV* sv|NN const GV* gv
-ApdMb	|void	|gv_efullname3	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix
-Apd	|void	|gv_efullname4	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
-Adp	|GV*	|gv_fetchfile	|NN const char* name
-Adp	|GV*	|gv_fetchfile_flags|NN const char *const name|const STRLEN len\
-				|const U32 flags
-Amd	|GV*	|gv_fetchmeth	|NULLOK HV* stash|NN const char* name \
-				|STRLEN len|I32 level
-Apd	|GV*	|gv_fetchmeth_sv	|NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
-Apd	|GV*	|gv_fetchmeth_pv	|NULLOK HV* stash|NN const char* name \
-                                        |I32 level|U32 flags
-Apd	|GV*	|gv_fetchmeth_pvn	|NULLOK HV* stash|NN const char* name \
-                                        |STRLEN len|I32 level|U32 flags
-Amd	|GV*	|gv_fetchmeth_autoload	|NULLOK HV* stash \
-					|NN const char* name|STRLEN len \
-					|I32 level
-Apd	|GV*	|gv_fetchmeth_sv_autoload	|NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
-Apd	|GV*	|gv_fetchmeth_pv_autoload	|NULLOK HV* stash|NN const char* name \
-                                        |I32 level|U32 flags
-Apd	|GV*	|gv_fetchmeth_pvn_autoload	|NULLOK HV* stash|NN const char* name \
-                                        |STRLEN len|I32 level|U32 flags
-ApdMb	|GV*	|gv_fetchmethod	|NN HV* stash|NN const char* name
-Apd	|GV*	|gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
+eop	|void	|get_db_sub	|NULLOK SV **svp			\
+				|NN CV *cv
+ERTXp	|const char *|get_deprecated_property_msg			\
+				|const Size_t warning_offset
+: Used in mg.c
+Tp	|int	|get_extended_os_errno
+: Only used in perl.c
+p	|void	|get_hash_seed	|NN unsigned char * const seed_buffer
+AOdp	|HV *	|get_hv 	|NN const char *name			\
+				|I32 flags
+DPRp	|const char *|get_no_modify
+DPRp	|U32 *	|get_opargs
+ADPRdp	|char **|get_op_descs
+ADPRdp	|char **|get_op_names
+CDPRp	|PPADDR_t *|get_ppaddr
+ERXp	|SV *	|get_prop_definition					\
+				|const int table_index
+ERTXp	|const char * const *|get_prop_values				\
+				|const int table_index
+: Used by SvRX and SvRXOK
+EXopx	|REGEXP *|get_re_arg	|NULLOK SV *sv
+AOdp	|SV *	|get_sv 	|NN const char *name			\
+				|I32 flags
+CRipx	|MGVTBL *|get_vtbl	|int vtbl_id
+Cp	|void	|gp_free	|NULLOK GV *gv
+Cp	|GP *	|gp_ref 	|NULLOK GP *gp
+ATdp	|bool	|grok_atoUV	|NN const char *pv			\
+				|NN UV *valptr				\
+				|NULLOK const char **endptr
+AMdp	|UV	|grok_bin	|NN const char *start			\
+				|NN STRLEN *len_p			\
+				|NN I32 *flags				\
+				|NULLOK NV *result
+Cp	|UV	|grok_bin_oct_hex					\
+				|NN const char *start			\
+				|NN STRLEN *len_p			\
+				|NN I32 *flags				\
+				|NULLOK NV *result			\
+				|const unsigned shift			\
+				|const U8 lookup_bit			\
+				|const char prefix
+AMdp	|UV	|grok_hex	|NN const char *start			\
+				|NN STRLEN *len_p			\
+				|NN I32 *flags				\
+				|NULLOK NV *result
+Adp	|int	|grok_infnan	|NN const char **sp			\
+				|NN const char *send
+Adp	|int	|grok_number	|NN const char *pv			\
+				|STRLEN len				\
+				|NULLOK UV *valuep
+Adp	|int	|grok_number_flags					\
+				|NN const char *pv			\
+				|STRLEN len				\
+				|NULLOK UV *valuep			\
+				|U32 flags
+ARdp	|bool	|grok_numeric_radix					\
+				|NN const char **sp			\
+				|NN const char *send
+AMdp	|UV	|grok_oct	|NN const char *start			\
+				|NN STRLEN *len_p			\
+				|NN I32 *flags				\
+				|NULLOK NV *result
+Adp	|GV *	|gv_add_by_type |NULLOK GV *gv				\
+				|svtype type
+Adp	|int	|Gv_AMupdate	|NN HV *stash				\
+				|bool destructing
+ARdm	|GV *	|gv_autoload4	|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|I32 method
+ARdp	|GV *	|gv_autoload_pv |NULLOK HV *stash			\
+				|NN const char *namepv			\
+				|U32 flags
+ARdp	|GV *	|gv_autoload_pvn|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|U32 flags
+ARdp	|GV *	|gv_autoload_sv |NULLOK HV *stash			\
+				|NN SV *namesv				\
+				|U32 flags
+AMbdp	|GV *	|gv_AVadd	|NULLOK GV *gv
+Cp	|void	|gv_check	|NN HV *stash
+: Used in pp.c and pp_sys.c
+ARdp	|SV *	|gv_const_sv	|NN GV *gv
+Adp	|void	|gv_dump	|NULLOK GV *gv
+AMbdp	|void	|gv_efullname3	|NN SV *sv				\
+				|NN const GV *gv			\
+				|NULLOK const char *prefix
+Adp	|void	|gv_efullname4	|NN SV *sv				\
+				|NN const GV *gv			\
+				|NULLOK const char *prefix		\
+				|bool keepmain
+Adp	|GV *	|gv_fetchfile	|NN const char *name
+Adp	|GV *	|gv_fetchfile_flags					\
+				|NN const char * const name		\
+				|const STRLEN len			\
+				|const U32 flags
+Adm	|GV *	|gv_fetchmeth	|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|I32 level
+Adm	|GV *	|gv_fetchmeth_autoload					\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|I32 level
+AMbdp	|GV *	|gv_fetchmethod |NN HV *stash				\
+				|NN const char *name
+Adp	|GV *	|gv_fetchmethod_autoload				\
+				|NN HV *stash				\
+				|NN const char *name			\
 				|I32 autoload
-Apx	|GV*	|gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
-Apx	|GV*	|gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
+Apx	|GV *	|gv_fetchmethod_pv_flags				\
+				|NN HV *stash				\
+				|NN const char *name			\
 				|U32 flags
-Apx	|GV*	|gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
-				|const STRLEN len|U32 flags
-Adp	|GV*	|gv_fetchpv	|NN const char *nambeg|I32 flags|const svtype sv_type
-AbpD	|void	|gv_fullname	|NN SV* sv|NN const GV* gv
-ApdMb	|void	|gv_fullname3	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix
-Apd	|void	|gv_fullname4	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
-: Used in scope.c
-pxoe	|GP *	|newGP		|NN GV *const gv
-pX	|void	|cvgv_set	|NN CV* cv|NULLOK GV* gv
-poX	|GV *	|cvgv_from_hek	|NN CV* cv
-pX	|void	|cvstash_set	|NN CV* cv|NULLOK HV* stash
-Amd	|void	|gv_init	|NN GV* gv|NULLOK HV* stash \
-                                |NN const char* name|STRLEN len|int multi
-Apd	|void	|gv_init_sv	|NN GV* gv|NULLOK HV* stash|NN SV* namesv|U32 flags
-Apd	|void	|gv_init_pv	|NN GV* gv|NULLOK HV* stash|NN const char* name \
-                                |U32 flags
-Apd	|void	|gv_init_pvn	|NN GV* gv|NULLOK HV* stash|NN const char* name \
-                                |STRLEN len|U32 flags
-Ap	|void	|gv_name_set	|NN GV* gv|NN const char *name|U32 len|U32 flags
-pe	|GV *	|gv_override	|NN const char * const name \
+Apx	|GV *	|gv_fetchmethod_pvn_flags				\
+				|NN HV *stash				\
+				|NN const char *name			\
+				|const STRLEN len			\
+				|U32 flags
+Apx	|GV *	|gv_fetchmethod_sv_flags				\
+				|NN HV *stash				\
+				|NN SV *namesv				\
+				|U32 flags
+Adp	|GV *	|gv_fetchmeth_pv|NULLOK HV *stash			\
+				|NN const char *name			\
+				|I32 level				\
+				|U32 flags
+Adp	|GV *	|gv_fetchmeth_pv_autoload				\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|I32 level				\
+				|U32 flags
+Adp	|GV *	|gv_fetchmeth_pvn					\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|I32 level				\
+				|U32 flags
+Adp	|GV *	|gv_fetchmeth_pvn_autoload				\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|I32 level				\
+				|U32 flags
+Adp	|GV *	|gv_fetchmeth_sv|NULLOK HV *stash			\
+				|NN SV *namesv				\
+				|I32 level				\
+				|U32 flags
+Adp	|GV *	|gv_fetchmeth_sv_autoload				\
+				|NULLOK HV *stash			\
+				|NN SV *namesv				\
+				|I32 level				\
+				|U32 flags
+Adp	|GV *	|gv_fetchpv	|NN const char *nambeg			\
+				|I32 flags				\
+				|const svtype sv_type
+
+Adp	|GV *	|gv_fetchpvn_flags					\
+				|NN const char *name			\
+				|STRLEN len				\
+				|I32 flags				\
+				|const svtype sv_type
+Adp	|GV *	|gv_fetchsv	|NN SV *name				\
+				|I32 flags				\
+				|const svtype sv_type
+AMbdp	|void	|gv_fullname3	|NN SV *sv				\
+				|NN const GV *gv			\
+				|NULLOK const char *prefix
+Adp	|void	|gv_fullname4	|NN SV *sv				\
+				|NN const GV *gv			\
+				|NULLOK const char *prefix		\
+				|bool keepmain
+CRdp	|CV *	|gv_handler	|NULLOK HV *stash			\
+				|I32 id
+AMbdp	|GV *	|gv_HVadd	|NULLOK GV *gv
+Adm	|void	|gv_init	|NN GV *gv				\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|int multi
+Adp	|void	|gv_init_pv	|NN GV *gv				\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|U32 flags
+Adp	|void	|gv_init_pvn	|NN GV *gv				\
+				|NULLOK HV *stash			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|U32 flags
+Adp	|void	|gv_init_sv	|NN GV *gv				\
+				|NULLOK HV *stash			\
+				|NN SV *namesv				\
+				|U32 flags
+AMbdp	|GV *	|gv_IOadd	|NULLOK GV *gv
+Adp	|void	|gv_name_set	|NN GV *gv				\
+				|NN const char *name			\
+				|U32 len				\
+				|U32 flags
+ep	|GV *	|gv_override	|NN const char * const name		\
 				|const STRLEN len
-Xxpd	|void	|gv_try_downgrade|NN GV* gv
-p	|void	|gv_setref	|NN SV *const dsv|NN SV *const ssv
-Apd	|HV*	|gv_stashpv	|NN const char* name|I32 flags
-Apd	|HV*	|gv_stashpvn	|NN const char* name|U32 namelen|I32 flags
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
-EpGd	|HV*	|gv_stashsvpvn_cached|SV *namesv|const char* name|U32 namelen|I32 flags
-#endif
-#if defined(PERL_IN_GV_C)
-i	|HV*	|gv_stashpvn_internal	|NN const char* name|U32 namelen|I32 flags
-i	|GV*	|gv_fetchmeth_internal	|NULLOK HV* stash|NULLOK SV* meth|NULLOK const char* name \
-					|STRLEN len|I32 level|U32 flags
-#endif
-Apd	|HV*	|gv_stashsv	|NN SV* sv|I32 flags
-po	|struct xpvhv_aux*|hv_auxalloc|NN HV *hv
-Apd	|void	|hv_clear	|NULLOK HV *hv
+p	|void	|gv_setref	|NN SV * const dsv			\
+				|NN SV * const ssv
+Adp	|HV *	|gv_stashpv	|NN const char *name			\
+				|I32 flags
+Adp	|HV *	|gv_stashpvn	|NN const char *name			\
+				|U32 namelen				\
+				|I32 flags
+Adp	|HV *	|gv_stashsv	|NN SV *sv				\
+				|I32 flags
+Xdpx	|void	|gv_try_downgrade					\
+				|NN GV *gv
+op	|struct xpvhv_aux *|hv_auxalloc 				\
+				|NN HV *hv
+: Used in dump.c and hv.c
+opx	|AV **	|hv_backreferences_p					\
+				|NN HV *hv
+ARdpx	|SV *	|hv_bucket_ratio|NN HV *hv
+Adp	|void	|hv_clear	|NULLOK HV *hv
+Adp	|void	|hv_clear_placeholders					\
+				|NN HV *hv
+Cp	|void * |hv_common	|NULLOK HV *hv				\
+				|NULLOK SV *keysv			\
+				|NULLOK const char *key 		\
+				|STRLEN klen				\
+				|int flags				\
+				|int action				\
+				|NULLOK SV *val 			\
+				|U32 hash
+Cp	|void * |hv_common_key_len					\
+				|NULLOK HV *hv				\
+				|NN const char *key			\
+				|I32 klen_i32				\
+				|const int action			\
+				|NULLOK SV *val 			\
+				|const U32 hash
 : used in SAVEHINTS() and op.c
-ApdR	|HV *	|hv_copy_hints_hv|NULLOK HV *const ohv
-Cp	|void	|hv_delayfree_ent|NULLOK HV *notused|NULLOK HE *entry
-AbMdp	|SV*	|hv_delete	|NULLOK HV *hv|NN const char *key|I32 klen \
-				|I32 flags
-AbMdp	|SV*	|hv_delete_ent	|NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash
-AbMdRp	|bool	|hv_exists	|NULLOK HV *hv|NN const char *key|I32 klen
-AbMdRp	|bool	|hv_exists_ent	|NULLOK HV *hv|NN SV *keysv|U32 hash
-AbMdp	|SV**	|hv_fetch	|NULLOK HV *hv|NN const char *key|I32 klen \
+ARdp	|HV *	|hv_copy_hints_hv					\
+				|NULLOK HV * const ohv
+Cp	|void	|hv_delayfree_ent					\
+				|NULLOK HV *notused			\
+				|NULLOK HE *entry
+AMbdp	|SV *	|hv_delete	|NULLOK HV *hv				\
+				|NN const char *key			\
+				|I32 klen				\
+				|I32 flags
+AMbdp	|SV *	|hv_delete_ent	|NULLOK HV *hv				\
+				|NN SV *keysv				\
+				|I32 flags				\
+				|U32 hash
+Adp	|void	|hv_dump	|NULLOK HV *hv
+CRdop	|HE **	|hv_eiter_p	|NN HV *hv
+Cdop	|void	|hv_eiter_set	|NN HV *hv				\
+				|NULLOK HE *eiter
+dp	|void	|hv_ename_add	|NN HV *hv				\
+				|NN const char *name			\
+				|U32 len				\
+				|U32 flags
+dp	|void	|hv_ename_delete|NN HV *hv				\
+				|NN const char *name			\
+				|U32 len				\
+				|U32 flags
+AMRbdp	|bool	|hv_exists	|NULLOK HV *hv				\
+				|NN const char *key			\
+				|I32 klen
+AMRbdp	|bool	|hv_exists_ent	|NULLOK HV *hv				\
+				|NN SV *keysv				\
+				|U32 hash
+AMbdp	|SV **	|hv_fetch	|NULLOK HV *hv				\
+				|NN const char *key			\
+				|I32 klen				\
 				|I32 lval
-AbMdp	|HE*	|hv_fetch_ent	|NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash
-Cp	|void*	|hv_common	|NULLOK HV *hv|NULLOK SV *keysv \
-				|NULLOK const char* key|STRLEN klen|int flags \
-				|int action|NULLOK SV *val|U32 hash
-Cp	|void*	|hv_common_key_len|NULLOK HV *hv|NN const char *key \
-				|I32 klen_i32|const int action|NULLOK SV *val \
-				|const U32 hash
-Cpod	|STRLEN	|hv_fill	|NN HV *const hv
-Ap	|void	|hv_free_ent	|NULLOK HV *notused|NULLOK HE *entry
-Apd	|I32	|hv_iterinit	|NN HV *hv
-ApdR	|char*	|hv_iterkey	|NN HE* entry|NN I32* retlen
-ApdR	|SV*	|hv_iterkeysv	|NN HE* entry
-ApdRbM	|HE*	|hv_iternext	|NN HV *hv
-ApdR	|SV*	|hv_iternextsv	|NN HV *hv|NN char **key|NN I32 *retlen
-ApxdR	|HE*	|hv_iternext_flags|NN HV *hv|I32 flags
-ApdR	|SV*	|hv_iterval	|NN HV *hv|NN HE *entry
-Ap	|void	|hv_ksplit	|NN HV *hv|IV newmax
-ApdbM	|void	|hv_magic	|NN HV *hv|NULLOK GV *gv|int how
-#if defined(PERL_IN_HV_C)
-S	|SV *	|refcounted_he_value	|NN const struct refcounted_he *he
-#endif
-Xpd	|HV *	|refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c|U32 flags
-Xpd	|SV *	|refcounted_he_fetch_pvn|NULLOK const struct refcounted_he *chain \
-				|NN const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Xpd	|SV *	|refcounted_he_fetch_pv|NULLOK const struct refcounted_he *chain \
-				|NN const char *key|U32 hash|U32 flags
-Xpd	|SV *	|refcounted_he_fetch_sv|NULLOK const struct refcounted_he *chain \
-				|NN SV *key|U32 hash|U32 flags
-Xpd	|struct refcounted_he *|refcounted_he_new_pvn \
-				|NULLOK struct refcounted_he *parent \
-				|NN const char *keypv|STRLEN keylen \
-				|U32 hash|NULLOK SV *value|U32 flags
-Xpd	|struct refcounted_he *|refcounted_he_new_pv \
-				|NULLOK struct refcounted_he *parent \
-				|NN const char *key \
-				|U32 hash|NULLOK SV *value|U32 flags
-Xpd	|struct refcounted_he *|refcounted_he_new_sv \
-				|NULLOK struct refcounted_he *parent \
-				|NN SV *key \
-				|U32 hash|NULLOK SV *value|U32 flags
-Xpd	|void	|refcounted_he_free|NULLOK struct refcounted_he *he
-Xpd	|struct refcounted_he *|refcounted_he_inc|NULLOK struct refcounted_he *he
-ApbMd	|SV**	|hv_store	|NULLOK HV *hv|NULLOK const char *key \
-				|I32 klen|NULLOK SV *val|U32 hash
-ApbMd	|HE*	|hv_store_ent	|NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\
+AMbdp	|HE *	|hv_fetch_ent	|NULLOK HV *hv				\
+				|NN SV *keysv				\
+				|I32 lval				\
 				|U32 hash
-ApbMx	|SV**	|hv_store_flags	|NULLOK HV *hv|NULLOK const char *key \
-				|I32 klen|NULLOK SV *val|U32 hash|int flags
-Amd	|void	|hv_undef	|NULLOK HV *hv
-poX	|void	|hv_undef_flags	|NULLOK HV *hv|U32 flags
-AdmP	|I32	|ibcmp		|NN const char* a|NN const char* b|I32 len
-AdiTp	|I32	|foldEQ		|NN const char* a|NN const char* b|I32 len
-AdmP	|I32	|ibcmp_locale	|NN const char* a|NN const char* b|I32 len
-AiTpd	|I32	|foldEQ_locale	|NN const char* a|NN const char* b|I32 len
-Adm	|I32	|ibcmp_utf8	|NN const char *s1|NULLOK char **pe1|UV l1 \
-				|bool u1|NN const char *s2|NULLOK char **pe2 \
-				|UV l2|bool u2
-Amd	|I32	|foldEQ_utf8	|NN const char *s1|NULLOK char **pe1|UV l1 \
-				|bool u1|NN const char *s2|NULLOK char **pe2 \
-				|UV l2|bool u2
-Cp	|I32	|foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
-				|bool u1|NN const char *s2|NULLOK char **pe2 \
-				|UV l2|bool u2|U32 flags
-CiTp	|I32	|foldEQ_latin1	|NN const char* a|NN const char* b|I32 len
-#if defined(PERL_IN_DOIO_C)
-SR	|bool	|ingroup	|Gid_t testgid|bool effective
-#endif
+Cdop	|STRLEN |hv_fill	|NN HV * const hv
+Cp	|void	|hv_free_ent	|NULLOK HV *notused			\
+				|NULLOK HE *entry
+Adp	|I32	|hv_iterinit	|NN HV *hv
+ARdp	|char * |hv_iterkey	|NN HE *entry				\
+				|NN I32 *retlen
+ARdp	|SV *	|hv_iterkeysv	|NN HE *entry
+AMRbdp	|HE *	|hv_iternext	|NN HV *hv
+ARdpx	|HE *	|hv_iternext_flags					\
+				|NN HV *hv				\
+				|I32 flags
+ARdp	|SV *	|hv_iternextsv	|NN HV *hv				\
+				|NN char **key				\
+				|NN I32 *retlen
+ARdp	|SV *	|hv_iterval	|NN HV *hv				\
+				|NN HE *entry
+Adp	|void	|hv_ksplit	|NN HV *hv				\
+				|IV newmax
+AMbdp	|void	|hv_magic	|NN HV *hv				\
+				|NULLOK GV *gv				\
+				|int how
+Adp	|void	|hv_name_set	|NN HV *hv				\
+				|NULLOK const char *name		\
+				|U32 len				\
+				|U32 flags
+CRdop	|I32	|hv_placeholders_get					\
+				|NN const HV *hv
+RXop	|SSize_t *|hv_placeholders_p					\
+				|NN HV *hv
+Cdop	|void	|hv_placeholders_set					\
+				|NN HV *hv				\
+				|I32 ph
+p	|void	|hv_pushkv	|NN HV *hv				\
+				|U32 flags
+Cp	|void	|hv_rand_set	|NN HV *hv				\
+				|U32 new_xhv_rand
+CRdop	|I32 *	|hv_riter_p	|NN HV *hv
+Cdop	|void	|hv_riter_set	|NN HV *hv				\
+				|I32 riter
+
+ARdp	|SV *	|hv_scalar	|NN HV *hv
+AMbdp	|SV **	|hv_store	|NULLOK HV *hv				\
+				|NULLOK const char *key 		\
+				|I32 klen				\
+				|NULLOK SV *val 			\
+				|U32 hash
+AMbdp	|HE *	|hv_store_ent	|NULLOK HV *hv				\
+				|NULLOK SV *key 			\
+				|NULLOK SV *val 			\
+				|U32 hash
+AMbpx	|SV **	|hv_store_flags |NULLOK HV *hv				\
+				|NULLOK const char *key 		\
+				|I32 klen				\
+				|NULLOK SV *val 			\
+				|U32 hash				\
+				|int flags
+Adm	|SV **	|hv_stores	|NULLOK HV *hv				\
+				|"key"					\
+				|NULLOK SV *val
+Adm	|void	|hv_undef	|NULLOK HV *hv
+Xop	|void	|hv_undef_flags |NULLOK HV *hv				\
+				|U32 flags
+APdm	|I32	|ibcmp		|NN const char *a			\
+				|NN const char *b			\
+				|I32 len
+APdm	|I32	|ibcmp_locale	|NN const char *a			\
+				|NN const char *b			\
+				|I32 len
+Adm	|I32	|ibcmp_utf8	|NN const char *s1			\
+				|NULLOK char **pe1			\
+				|UV l1					\
+				|bool u1				\
+				|NN const char *s2			\
+				|NULLOK char **pe2			\
+				|UV l2					\
+				|bool u2
+
+eop	|STRLEN |infix_plugin_standard					\
+				|NN char *operator_ptr			\
+				|STRLEN operator_len			\
+				|NN struct Perl_custom_infix **def
 : Used in toke.c
-p	|void	|init_argv_symbols|int argc|NN char **argv
+p	|void	|init_argv_symbols					\
+				|int argc				\
+				|NN char **argv
+p	|void	|init_constants
 : Used in pp_ctl.c
-po	|void	|init_dbargs
+op	|void	|init_dbargs
 : Used in mg.c
 p	|void	|init_debugger
+COp	|int	|init_i18nl10n	|int printwarn
+Xp	|void	|init_named_cv	|NN CV *cv				\
+				|NN OP *nameop
 Cp	|void	|init_stacks
 Cp	|void	|init_tm	|NN struct tm *ptm
+p	|void	|init_uniprops
 : Used in perly.y
-AbMTpPRd|char*	|instr		|NN const char* big|NN const char* little
-: Used in sv.c
-p	|bool	|io_close	|NN IO* io|NULLOK GV *gv \
-				|bool not_implicit|bool warn_on_fail
+AMPRTbdp|char * |instr		|NN const char *big			\
+				|NN const char *little
+Adp	|U32	|intro_my
+ERXp	|Size_t |_inverse_folds |const UV cp				\
+				|NN U32 *first_folds_to 		\
+				|NN const U32 **remaining_folds_to
 : Used in perly.y
-pR	|OP*	|invert		|NULLOK OP* cmd
-pR	|OP*	|cmpchain_start	|I32 type|NULLOK OP* left \
-				|NULLOK OP* right
-pR	|OP*	|cmpchain_extend|I32 type|NN OP* ch|NULLOK OP* right
-pR	|OP*	|cmpchain_finish|NN OP* ch
-ApdR	|I32	|is_lvalue_sub
-: Used in cop.h
-XopR	|I32	|was_lvalue_sub
-CpRTP	|STRLEN	|is_utf8_char_helper_|NN const U8 * const s|NN const U8 * e|const U32 flags
-CpRTP	|Size_t	|is_utf8_FF_helper_|NN const U8 * const s0		    \
-				|NN const U8 * const e			    \
+Rp	|OP *	|invert 	|NULLOK OP *cmd
+p	|void	|invmap_dump	|NN SV *invlist 			\
+				|NN UV *map
+: Used in sv.c
+p	|bool	|io_close	|NN IO *io				\
+				|NULLOK GV *gv				\
+				|bool is_explicit			\
+				|bool warn_on_fail
+APRTdm	|bool	|is_ascii_string|NN const U8 * const s			\
+				|STRLEN len
+ARTdip	|Size_t |isC9_STRICT_UTF8_CHAR					\
+				|NN const U8 * const s0 		\
+				|NN const U8 * const e
+ARTdm	|bool	|is_c9strict_utf8_string				\
+				|NN const U8 *s 			\
+				|STRLEN len
+ATdm	|bool	|is_c9strict_utf8_string_loc				\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NN const U8 **ep
+ATdip	|bool	|is_c9strict_utf8_string_loclen 			\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep			\
+				|NULLOK STRLEN *el
+
+APTdp	|bool	|isinfnan	|NV nv
+dp	|bool	|isinfnansv	|NN SV *sv
+Cp	|bool	|_is_in_locale_category 				\
+				|const bool compiling			\
+				|const int category
+APRTdm	|bool	|is_invariant_string					\
+				|NN const U8 * const s			\
+				|STRLEN len
+ARdp	|I32	|is_lvalue_sub
+: used to check for NULs in pathnames and other names
+ARdip	|bool	|is_safe_syscall|NN const char *pv			\
+				|STRLEN len				\
+				|NN const char *what			\
+				|NN const char *op_name
+ARTdip	|Size_t |isSTRICT_UTF8_CHAR					\
+				|NN const U8 * const s0 		\
+				|NN const U8 * const e
+ARTdm	|bool	|is_strict_utf8_string					\
+				|NN const U8 *s 			\
+				|STRLEN len
+ATdm	|bool	|is_strict_utf8_string_loc				\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NN const U8 **ep
+ATdip	|bool	|is_strict_utf8_string_loclen				\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep			\
+				|NULLOK STRLEN *el
+CRp	|bool	|_is_uni_FOO	|const U8 classnum			\
+				|const UV c
+CRp	|bool	|_is_uni_perl_idcont					\
+				|UV c
+CRp	|bool	|_is_uni_perl_idstart					\
+				|UV c
+ARTdip	|Size_t |isUTF8_CHAR	|NN const U8 * const s0 		\
+				|NN const U8 * const e
+AMTbdp	|STRLEN |is_utf8_char_buf					\
+				|NN const U8 *buf			\
+				|NN const U8 *buf_end
+ARTdip	|Size_t |isUTF8_CHAR_flags					\
+				|NN const U8 * const s0 		\
+				|NN const U8 * const e			\
+				|const U32 flags
+CPRTp	|STRLEN |is_utf8_char_helper_					\
+				|NN const U8 * const s			\
+				|NN const U8 *e 			\
+				|const U32 flags
+CPRTp	|Size_t |is_utf8_FF_helper_					\
+				|NN const U8 * const s0 		\
+				|NN const U8 * const e			\
 				|const bool require_partial
-Cp	|UV	|to_uni_upper	|UV c|NN U8 *p|NN STRLEN *lenp
-Cp	|UV	|to_uni_title	|UV c|NN U8 *p|NN STRLEN *lenp
-p	|void	|init_uniprops
-#ifdef PERL_IN_UTF8_C
-STR	|U8	|to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp  \
-		|const char dummy
-#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
-p	|UV	|_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
-#endif
-Cp	|UV	|to_uni_lower	|UV c|NN U8 *p|NN STRLEN *lenp
-Cm	|UV	|to_uni_fold	|UV c|NN U8 *p|NN STRLEN *lenp
-Cp	|UV	|_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
-CpR	|bool	|_is_uni_perl_idcont|UV c
-CpR	|bool	|_is_uni_perl_idstart|UV c
-ATdmoR	|bool	|is_utf8_invariant_string|NN const U8* const s		    \
-		|STRLEN len
-ATidRp	|bool	|is_utf8_invariant_string_loc|NN const U8* const s	    \
-		|STRLEN len						    \
-		|NULLOK const U8 ** ep
-CTiRp	|unsigned|single_1bit_pos32|U32 word
-CTiRp	|unsigned|lsbit_pos32|U32 word
-CTiRp	|unsigned|msbit_pos32|U32 word
-#ifdef U64TYPE	/* HAS_QUAD undefined outside of core */
-CTiRp	|unsigned|single_1bit_pos64|U64 word
-CTiRp	|unsigned|lsbit_pos64|U64 word
-CTiRp	|unsigned|msbit_pos64|U64 word
-#endif
-#ifndef EBCDIC
-CTiRp	|unsigned int|variant_byte_number|PERL_UINTMAX_T word
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-EiTRd	|Size_t	|variant_under_utf8_count|NN const U8* const s		    \
-		|NN const U8* const e
-#endif
-AmTdRP	|bool	|is_ascii_string|NN const U8* const s|STRLEN len
-AmTdRP	|bool	|is_invariant_string|NN const U8* const s|STRLEN len
-#if defined(PERL_CORE) || defined (PERL_EXT)
-EXTidRp	|bool	|is_utf8_non_invariant_string|NN const U8* const s	    \
-		|STRLEN len
-#endif
-AbTpdD	|STRLEN	|is_utf8_char	|NN const U8 *s
-AbMTpd	|STRLEN	|is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
-ATidRp	|Size_t	|isUTF8_CHAR|NN const U8 * const s0			    \
-			    |NN const U8 * const e
-ATidRp	|Size_t	|isUTF8_CHAR_flags|NN const U8 * const s0		    \
-			    |NN const U8 * const e			    \
-			    |const U32 flags
-ATidRp	|Size_t	|isSTRICT_UTF8_CHAR |NN const U8 * const s0		    \
-				    |NN const U8 * const e
-ATidRp	|Size_t	|isC9_STRICT_UTF8_CHAR |NN const U8 * const s0		    \
-				       |NN const U8 * const e
-ATmdR	|bool	|is_utf8_string	|NN const U8 *s|STRLEN len
-ATidRp	|bool	|is_utf8_string_flags					    \
-		|NN const U8 *s|STRLEN len|const U32 flags
-ATmdR	|bool	|is_strict_utf8_string|NN const U8 *s|STRLEN len
-ATmdR	|bool	|is_c9strict_utf8_string|NN const U8 *s|STRLEN len
-ATpdMb	|bool	|is_utf8_string_loc					    \
-		|NN const U8 *s|const STRLEN len|NN const U8 **ep
-ATdm	|bool	|is_utf8_string_loc_flags				    \
-		|NN const U8 *s|STRLEN len|NN const U8 **ep		    \
-		|const U32 flags
-ATdm	|bool	|is_strict_utf8_string_loc				    \
-		|NN const U8 *s|STRLEN len|NN const U8 **ep
-ATdm	|bool	|is_c9strict_utf8_string_loc				    \
-		|NN const U8 *s|STRLEN len|NN const U8 **ep
-ATipd	|bool	|is_utf8_string_loclen					    \
-		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep		    \
-		|NULLOK STRLEN *el
-ATidp	|bool	|is_utf8_string_loclen_flags				    \
-		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep		    \
-		|NULLOK STRLEN *el|const U32 flags
-ATidp	|bool	|is_strict_utf8_string_loclen				    \
-		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep	    \
-		|NULLOK STRLEN *el
-ATidp	|bool	|is_c9strict_utf8_string_loclen				    \
-		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep	    \
-		|NULLOK STRLEN *el
-AmTd	|bool	|is_utf8_fixed_width_buf_flags				    \
-		|NN const U8 * const s|STRLEN len|const U32 flags
-AmTd	|bool	|is_utf8_fixed_width_buf_loc_flags			    \
-		|NN const U8 * const s|STRLEN len			    \
-		|NULLOK const U8 **ep|const U32 flags
-ATidp	|bool	|is_utf8_fixed_width_buf_loclen_flags			    \
-		|NN const U8 * const s|STRLEN len			    \
-		|NULLOK const U8 **ep|NULLOK STRLEN *el|const U32 flags
-AmTdP	|bool	|is_utf8_valid_partial_char				    \
-		|NN const U8 * const s0|NN const U8 * const e
-ATidRp	|bool	|is_utf8_valid_partial_char_flags			    \
-		|NN const U8 * const s0|NN const U8 * const e|const U32 flags
-CpR     |bool   |_is_uni_FOO|const U8 classnum|const UV c
-CpR     |bool   |_is_utf8_FOO|const U8 classnum|NN const U8 *p     \
-		|NN const U8 * const e
-CpR     |bool   |_is_utf8_perl_idcont|NN const U8 *p|NN const U8 * const e
-CpR     |bool   |_is_utf8_perl_idstart|NN const U8 *p|NN const U8 * const e
+ATdm	|bool	|is_utf8_fixed_width_buf_flags				\
+				|NN const U8 * const s			\
+				|STRLEN len				\
+				|const U32 flags
+ATdm	|bool	|is_utf8_fixed_width_buf_loc_flags			\
+				|NN const U8 * const s			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep			\
+				|const U32 flags
+ATdip	|bool	|is_utf8_fixed_width_buf_loclen_flags			\
+				|NN const U8 * const s			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep			\
+				|NULLOK STRLEN *el			\
+				|const U32 flags
+CRp	|bool	|_is_utf8_FOO	|const U8 classnum			\
+				|NN const U8 *p 			\
+				|NN const U8 * const e
+ARTdmo	|bool	|is_utf8_invariant_string				\
+				|NN const U8 * const s			\
+				|STRLEN len
+ARTdip	|bool	|is_utf8_invariant_string_loc				\
+				|NN const U8 * const s			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep
+CRp	|bool	|_is_utf8_perl_idcont					\
+				|NN const U8 *p 			\
+				|NN const U8 * const e
+CRp	|bool	|_is_utf8_perl_idstart					\
+				|NN const U8 *p 			\
+				|NN const U8 * const e
+ARTdm	|bool	|is_utf8_string |NN const U8 *s 			\
+				|STRLEN len
+ARTdip	|bool	|is_utf8_string_flags					\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|const U32 flags
+AMTbdp	|bool	|is_utf8_string_loc					\
+				|NN const U8 *s 			\
+				|const STRLEN len			\
+				|NN const U8 **ep
+ATdm	|bool	|is_utf8_string_loc_flags				\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NN const U8 **ep			\
+				|const U32 flags
+ATdip	|bool	|is_utf8_string_loclen					\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep			\
+				|NULLOK STRLEN *el
+ATdip	|bool	|is_utf8_string_loclen_flags				\
+				|NN const U8 *s 			\
+				|STRLEN len				\
+				|NULLOK const U8 **ep			\
+				|NULLOK STRLEN *el			\
+				|const U32 flags
+APTdm	|bool	|is_utf8_valid_partial_char				\
+				|NN const U8 * const s0 		\
+				|NN const U8 * const e
+ARTdip	|bool	|is_utf8_valid_partial_char_flags			\
+				|NN const U8 * const s0 		\
+				|NN const U8 * const e			\
+				|const U32 flags
 
-#if defined(PERL_CORE) || defined(PERL_EXT)
-EXdpR	|bool	|isSCRIPT_RUN	|NN const U8 *s|NN const U8 *send   \
-				|const bool utf8_target
-#endif
 : Used in perly.y
-p	|OP*	|jmaybe		|NN OP *o
+p	|OP *	|jmaybe 	|NN OP *o
 : Used in pp.c
-pP	|I32	|keyword	|NN const char *name|I32 len|bool all_keywords
-#if defined(PERL_IN_OP_C)
-S	|void	|inplace_aassign	|NN OP* o
-#endif
-Cpd	|void	|leave_scope	|I32 base
-p	|void	|notify_parser_that_changed_to_utf8
+Pp	|I32	|keyword	|NN const char *name			\
+				|I32 len				\
+				|bool all_keywords
+
+eop	|int	|keyword_plugin_standard				\
+				|NN char *keyword_ptr			\
+				|STRLEN keyword_len			\
+				|NN OP **op_ptr
+
+Apx	|void	|leave_adjust_stacks					\
+				|NN SV **from_sp			\
+				|NN SV **to_sp				\
+				|U8 gimme				\
+				|int filter
+Cdp	|void	|leave_scope	|I32 base
+Adpx	|bool	|lex_bufutf8
+Adpx	|void	|lex_discard_to |NN char *ptr
+Adpx	|char * |lex_grow_linestr					\
+				|STRLEN len
+Adpx	|bool	|lex_next_chunk |U32 flags
+Adpx	|I32	|lex_peek_unichar					\
+				|U32 flags
+Adpx	|void	|lex_read_space |U32 flags
+Adpx	|void	|lex_read_to	|NN char *ptr
+Adpx	|I32	|lex_read_unichar					\
+				|U32 flags
 : Public lexer API
-Axpd	|void	|lex_start	|NULLOK SV* line|NULLOK PerlIO *rsfp|U32 flags
-Axpd	|bool	|lex_bufutf8
-Axpd	|char*	|lex_grow_linestr|STRLEN len
-Axpd	|void	|lex_stuff_pvn	|NN const char* pv|STRLEN len|U32 flags
-Axpd	|void	|lex_stuff_pv	|NN const char* pv|U32 flags
-Axpd	|void	|lex_stuff_sv	|NN SV* sv|U32 flags
-Axpd	|void	|lex_unstuff	|NN char* ptr
-Axpd	|void	|lex_read_to	|NN char* ptr
-Axpd	|void	|lex_discard_to	|NN char* ptr
-Axpd	|bool	|lex_next_chunk	|U32 flags
-Axpd	|I32	|lex_peek_unichar|U32 flags
-Axpd	|I32	|lex_read_unichar|U32 flags
-Axpd	|void	|lex_read_space	|U32 flags
-: Public parser API
-Axpd	|OP*	|parse_arithexpr|U32 flags
-Axpd	|OP*	|parse_termexpr	|U32 flags
-Axpd	|OP*	|parse_listexpr	|U32 flags
-Axpd	|OP*	|parse_fullexpr	|U32 flags
-Axpd	|OP*	|parse_block	|U32 flags
-Axpd	|OP*	|parse_barestmt	|U32 flags
-Axpd	|SV*	|parse_label	|U32 flags
-Axpd	|OP*	|parse_fullstmt	|U32 flags
-Axpd	|OP*	|parse_stmtseq	|U32 flags
-Axpd	|OP*	|parse_subsignature|U32 flags
-: Used in various files
-Apd	|void	|op_null	|NN OP* o
-: FIXME. Used by Data::Alias
-EXp	|void	|op_clear	|NN OP* o
-Cpd	|void	|op_refcnt_lock
-Cpd	|void	|op_refcnt_unlock
-ApdT	|OP*	|op_sibling_splice|NULLOK OP *parent|NULLOK OP *start \
-		|int del_count|NULLOK OP* insert
-ApdT	|OP*	|op_parent|NN OP *o
-#if defined(PERL_IN_OP_C)
-S	|OP*	|listkids	|NULLOK OP* o
-#endif
-p	|OP*	|list		|NULLOK OP* o
-AFpd	|void	|load_module|U32 flags|NN SV* name|NULLOK SV* ver|...
-Adp	|void	|vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
+Adpx	|void	|lex_start	|NULLOK SV *line			\
+				|NULLOK PerlIO *rsfp			\
+				|U32 flags
+Adpx	|void	|lex_stuff_pv	|NN const char *pv			\
+				|U32 flags
+Adpx	|void	|lex_stuff_pvn	|NN const char *pv			\
+				|STRLEN len				\
+				|U32 flags
+Adpx	|void	|lex_stuff_sv	|NN SV *sv				\
+				|U32 flags
+Adpx	|void	|lex_unstuff	|NN char *ptr
+p	|OP *	|list		|NULLOK OP *o
+ERXp	|HV *	|load_charnames |NN SV *char_name			\
+				|NN const char *context 		\
+				|const STRLEN context_len		\
+				|NN const char **error_msg
+AFdp	|void	|load_module	|U32 flags				\
+				|NN SV *name				\
+				|NULLOK SV *ver 			\
+				|...
+CTopr	|void	|locale_panic	|NN const char *msg			\
+				|NN const char *file_name		\
+				|const line_t line			\
+				|const int errnum
 : Used in perly.y
-p	|OP*	|localize	|NN OP *o|I32 lex
-ApdR	|I32	|looks_like_number|NN SV *const sv
-AMpd	|UV	|grok_hex	|NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apd	|int	|grok_infnan	|NN const char** sp|NN const char *send
-Apd	|int	|grok_number	|NN const char *pv|STRLEN len|NULLOK UV *valuep
-Apd	|int	|grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
-ApdR	|bool	|grok_numeric_radix|NN const char **sp|NN const char *send
-ApMd	|UV	|grok_oct	|NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-ApMd	|UV	|grok_bin	|NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Cp	|UV	|grok_bin_oct_hex|NN const char* start			    \
-				 |NN STRLEN* len_p			    \
-				 |NN I32* flags				    \
-			         |NULLOK NV *result			    \
-				 |const unsigned shift			    \
-				 |const U8 lookup_bit			    \
-				 |const char prefix
-#ifdef PERL_IN_NUMERIC_C
-S	|void	|output_non_portable|const U8 shift
-#endif
-ApdT	|bool	|grok_atoUV	|NN const char* pv|NN UV* valptr|NULLOK const char** endptr
+p	|OP *	|localize	|NN OP *o				\
+				|I32 lex
+ARdp	|I32	|looks_like_number					\
+				|NN SV * const sv
+CRTip	|unsigned|lsbit_pos32	|U32 word
+p	|int	|magic_clear_all_env					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_cleararylen_p					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
 : These are all indirectly referenced by globals.c. This is somewhat annoying.
-p	|int	|magic_clearenv	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_clear_all_env|NN SV* sv|NN MAGIC* mg
-dp	|int	|magic_clearhint|NN SV* sv|NN MAGIC* mg
-dp	|int	|magic_clearhints|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_clearisa	|NULLOK SV* sv|NN MAGIC* mg
-p	|int	|magic_clearpack|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_clearsig	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_copycallchecker|NN SV* sv|NN MAGIC *mg|NN SV *nsv \
-				      |NULLOK const char *name|I32 namlen
-p	|int	|magic_existspack|NN SV* sv|NN const MAGIC* mg
-p	|int	|magic_freeovrld|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_get	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getarylen|NN SV* sv|NN const MAGIC* mg
-p	|int	|magic_getdefelem|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getdebugvar|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getnkeys	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getpack	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getpos	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getsig	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getsubstr|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_gettaint	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getuvar	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_getvec	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_nextpack	|NN SV *sv|NN MAGIC *mg|NN SV *key
-p	|U32	|magic_regdata_cnt|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_regdatum_get|NN SV* sv|NN MAGIC* mg
+p	|int	|magic_clearenv |NN SV *sv				\
+				|NN MAGIC *mg
+dp	|int	|magic_clearhint|NN SV *sv				\
+				|NN MAGIC *mg
+dp	|int	|magic_clearhints					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_clearhook|NULLOK SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_clearhookall					\
+				|NULLOK SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_clearisa |NULLOK SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_clearpack|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_clearsig |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_copycallchecker					\
+				|NN SV *sv				\
+				|NN MAGIC *mg				\
+				|NN SV *nsv				\
+				|NULLOK const char *name		\
+				|I32 namlen
+Adp	|void	|magic_dump	|NULLOK const MAGIC *mg
+p	|int	|magic_existspack					\
+				|NN SV *sv				\
+				|NN const MAGIC *mg
+p	|int	|magic_freearylen_p					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+dp	|int	|magic_freedestruct					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_freemglob|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_freeovrld|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_freeutf8 |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_get	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getarylen|NN SV *sv				\
+				|NN const MAGIC *mg
+p	|int	|magic_getdebugvar					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getdefelem					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getnkeys |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getpack	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getpos	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getsig	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getsubstr|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_gettaint |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getuvar	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_getvec	|NN SV *sv				\
+				|NN MAGIC *mg
+: This is indirectly referenced by globals.c. This is somewhat annoying.
+p	|int	|magic_killbackrefs					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+Fdop	|SV *	|magic_methcall |NN SV *sv				\
+				|NN const MAGIC *mg			\
+				|NN SV *meth				\
+				|U32 flags				\
+				|U32 argc				\
+				|...
+p	|int	|magic_nextpack |NN SV *sv				\
+				|NN MAGIC *mg				\
+				|NN SV *key
+p	|U32	|magic_regdata_cnt					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_regdatum_get					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+
+: This is indirectly referenced by globals.c. This is somewhat annoying.
+p	|SV *	|magic_scalarpack					\
+				|NN HV *hv				\
+				|NN MAGIC *mg
 :removing noreturn to silence a warning for this function resulted in no
 :change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits only because
 :this is used in a magic vtable, do not use this on conventionally called funcs
-#ifdef _MSC_VER
-p	|int	|magic_regdatum_set|NN SV* sv|NN MAGIC* mg
-#else
-pr	|int	|magic_regdatum_set|NN SV* sv|NN MAGIC* mg
-#endif
-p	|int	|magic_set	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setarylen|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_cleararylen_p|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_freearylen_p|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setdbline|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setdebugvar|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setdefelem|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setnonelem|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setenv	|NN SV* sv|NN MAGIC* mg
-dp	|int	|magic_sethint	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setisa	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setlvref	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setmglob	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_freemglob|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setnkeys	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setpack	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setpos	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setregexp|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setsigall|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setsig	|NULLOK SV* sv|NN MAGIC* mg
-p	|int	|magic_setsubstr|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_settaint	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setuvar	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setvec	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_setutf8	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_freeutf8	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_set_all_env|NN SV* sv|NN MAGIC* mg
-p	|U32	|magic_sizepack	|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_wipepack	|NN SV* sv|NN MAGIC* mg
-Fpod	|SV*	|magic_methcall	|NN SV *sv|NN const MAGIC *mg \
-				|NN SV *meth|U32 flags \
-				|U32 argc|...
+p	|int	|magic_set	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_set_all_env					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setarylen|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setdbline|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setdebugvar					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setdefelem					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setenv	|NN SV *sv				\
+				|NN MAGIC *mg
+dp	|int	|magic_sethint	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_sethook	|NULLOK SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_sethookall					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setisa	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setlvref |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setmglob |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setnkeys |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setnonelem					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setpack	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setpos	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setregexp|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setsig	|NULLOK SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setsigall|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setsubstr|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_settaint |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setutf8	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setuvar	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setvec	|NN SV *sv				\
+				|NN MAGIC *mg
+p	|U32	|magic_sizepack |NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_wipepack |NN SV *sv				\
+				|NN MAGIC *mg
+
+CTadop	|Malloc_t|malloc	|MEM_SIZE nbytes
 Cp	|I32 *	|markstack_grow
-#if defined(USE_LOCALE_COLLATE)
-p	|int	|magic_setcollxfrm|NN SV* sv|NN MAGIC* mg
-p	|int	|magic_freecollxfrm|NN SV* sv|NN MAGIC* mg
-pbD	|char*	|mem_collxfrm	|NN const char* input_string|STRLEN len|NN STRLEN* xlen
-: Defined in locale.c, used only in sv.c
-#   if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
-p	|char*	|_mem_collxfrm	|NN const char* input_string	\
-				|STRLEN len			\
-				|NN STRLEN* xlen		\
-				|bool utf8
-#   endif
-#endif
-Afpd	|SV*	|mess		|NN const char* pat|...
-Apd	|SV*	|mess_sv	|NN SV* basemsg|bool consume
-Apd	|SV*	|vmess		|NN const char* pat|NULLOK va_list* args
-: FIXME - either make it public, or stop exporting it. (Data::Alias uses this)
-: Used in gv.c, op.c, toke.c
-EXp	|void	|qerror		|NN SV* err
-Apd	|void	|sortsv		|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp
-Apd	|void	|sortsv_flags	|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
-Apd	|int	|mg_clear	|NN SV* sv
-Apd	|int	|mg_copy	|NN SV *sv|NN SV *nsv|NULLOK const char *key \
+EXp	|int	|mbtowc_	|NULLOK const wchar_t *pwc		\
+				|NULLOK const char *s			\
+				|const Size_t len
+Adfp	|SV *	|mess		|NN const char *pat			\
+				|...
+Adp	|SV *	|mess_sv	|NN SV *basemsg 			\
+				|bool consume
+CTdop	|Free_t |mfree		|Malloc_t where
+Adp	|int	|mg_clear	|NN SV *sv
+Adp	|int	|mg_copy	|NN SV *sv				\
+				|NN SV *nsv				\
+				|NULLOK const char *key 		\
 				|I32 klen
-: Defined in mg.c, used only in scope.c
-pd	|void	|mg_localize	|NN SV* sv|NN SV* nsv|bool setmagic
-Apd	|SV*	|sv_string_from_errnum|int errnum|NULLOK SV* tgtsv
-ApdRT	|MAGIC*	|mg_find	|NULLOK const SV* sv|int type
-ApdRT	|MAGIC*	|mg_findext	|NULLOK const SV* sv|int type|NULLOK const MGVTBL *vtbl
+ARTdp	|MAGIC *|mg_find	|NULLOK const SV *sv			\
+				|int type
+ARTdp	|MAGIC *|mg_findext	|NULLOK const SV *sv			\
+				|int type				\
+				|NULLOK const MGVTBL *vtbl
 : exported for re.pm
-EXpR	|MAGIC*	|mg_find_mglob	|NN SV* sv
-Apd	|int	|mg_free	|NN SV* sv
-Apd	|void	|mg_free_type	|NN SV* sv|int how
-Apd	|void	|mg_freeext	|NN SV* sv|int how|NULLOK const MGVTBL *vtbl
-Apd	|int	|mg_get		|NN SV* sv
-ApdD	|U32	|mg_length	|NN SV* sv
-ApdT	|void	|mg_magical	|NN SV* sv
-Apd	|int	|mg_set		|NN SV* sv
-Cp	|I32	|mg_size	|NN SV* sv
-AdpT	|void	|mini_mktime	|NN struct tm *ptm
-Axmd	|OP*	|op_lvalue	|NULLOK OP* o|I32 type
-poX	|OP*	|op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
-pd	|void	|finalize_optree		|NN OP* o
-pd	|void	|optimize_optree|NN OP* o
-#if defined(PERL_IN_OP_C)
-S	|void	|optimize_op	|NN OP* o
-S	|void	|finalize_op	|NN OP* o
-S	|void	|move_proto_attr|NN OP **proto|NN OP **attrs \
-				|NN const GV *name|bool curstash
-#endif
+ERXp	|MAGIC *|mg_find_mglob	|NN SV *sv
+Adp	|int	|mg_free	|NN SV *sv
+Adp	|void	|mg_freeext	|NN SV *sv				\
+				|int how				\
+				|NULLOK const MGVTBL *vtbl
+Adp	|void	|mg_free_type	|NN SV *sv				\
+				|int how
+Adp	|int	|mg_get 	|NN SV *sv
+: Defined in mg.c, used only in scope.c
+dp	|void	|mg_localize	|NN SV *sv				\
+				|NN SV *nsv				\
+				|bool setmagic
+ATdp	|void	|mg_magical	|NN SV *sv
+Adp	|int	|mg_set 	|NN SV *sv
+Cp	|I32	|mg_size	|NN SV *sv
+ATdp	|void	|mini_mktime	|NN struct tm *ptm
 : Used in op.c and pp_sys.c
-p	|int	|mode_from_discipline|NULLOK const char* s|STRLEN len
-Cp	|const char*	|moreswitches	|NN const char* s
-Apd	|NV	|my_atof	|NN const char *s
-ATdpR	|NV	|my_strtod	|NN const char * const s|NULLOK char ** e
-Aprd	|void	|my_exit	|U32 status
-Apr	|void	|my_failure_exit
-Cpd	|I32	|my_fflush_all
-CTpd	|Pid_t	|my_fork
-CTp	|void	|atfork_lock
-CTp	|void	|atfork_unlock
+p	|int	|mode_from_discipline					\
+				|NULLOK const char *s			\
+				|STRLEN len
+
+: Used in sv.c and hv.c
+Cop	|void * |more_bodies	|const svtype sv_type			\
+				|const size_t body_size 		\
+				|const size_t arena_size
+Cp	|const char *|moreswitches					\
+				|NN const char *s
+Adp	|void	|mortal_destructor_sv					\
+				|NN SV *coderef 			\
+				|NULLOK SV *args
+CRTXip	|char * |mortal_getenv	|NN const char *str
+Cdp	|void	|mortal_svfunc_x|SVFUNC_t f				\
+				|NULLOK SV *p
+Adop	|const struct mro_alg *|mro_get_from_name			\
+				|NN SV *name
+Adp	|AV *	|mro_get_linear_isa					\
+				|NN HV *stash
+
+Chop	|SV *	|mro_get_private_data					\
+				|NN struct mro_meta * const smeta	\
+				|NN const struct mro_alg * const which
+: Used in hv.c, mg.c, pp.c, sv.c
+dp	|void	|mro_isa_changed_in					\
+				|NN HV *stash
+: Used in HvMROMETA(), which is public.
+Xop	|struct mro_meta *|mro_meta_init				\
+				|NN HV *stash
+Adp	|void	|mro_method_changed_in					\
+				|NN HV *stash
+dep	|void	|mro_package_moved					\
+				|NULLOK HV * const stash		\
+				|NULLOK HV * const oldstash		\
+				|NN const GV * const gv 		\
+				|U32 flags
+Adop	|void	|mro_register	|NN const struct mro_alg *mro
+Adop	|void	|mro_set_mro	|NN struct mro_meta * const meta	\
+				|NN SV * const name
+Adhop	|SV *	|mro_set_private_data					\
+				|NN struct mro_meta * const smeta	\
+				|NN const struct mro_alg * const which	\
+				|NN SV * const data
+CRTip	|unsigned|msbit_pos32	|U32 word
+EXp	|SV *	|multiconcat_stringify					\
+				|NN const OP *o
+EXp	|SV *	|multideref_stringify					\
+				|NN const OP *o 			\
+				|NULLOK CV *cv
+Adp	|NV	|my_atof	|NN const char *s
+Cop	|char * |my_atof2	|NN const char *orig			\
+				|NN NV *value
+Cp	|char * |my_atof3	|NN const char *orig			\
+				|NN NV *value				\
+				|const STRLEN len
+: Used in perly.y
+p	|OP *	|my_attrs	|NN OP *o				\
+				|NULLOK OP *attrs
+
+: Used in mg.c, sv.c
+ep	|void	|my_clearenv
+ATdp	|int	|my_dirfd	|NULLOK DIR *dir
+Adpr	|void	|my_exit	|U32 status
+Adpr	|void	|my_failure_exit
+Cdp	|I32	|my_fflush_all
+CTdp	|Pid_t	|my_fork
 m	|I32	|my_lstat
-pX	|I32	|my_lstat_flags	|NULLOK const U32 flags
-#if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
-EeiT	|void *	|my_memrchr	|NN const char * s|const char c|const STRLEN len
-#endif
-#if !defined(PERL_IMPLICIT_SYS)
-Adp	|I32	|my_pclose	|NULLOK PerlIO* ptr
-Adp	|PerlIO*|my_popen	|NN const char* cmd|NN const char* mode
-#endif
-Cpd	|PerlIO*|my_popen_list	|NN const char* mode|int n|NN SV ** args
-Apd	|void	|my_setenv	|NULLOK const char* nam|NULLOK const char* val
+Xp	|I32	|my_lstat_flags |NULLOK const U32 flags
+RTop	|int	|my_mkostemp_cloexec					\
+				|NN char *templte			\
+				|int flags
+RTop	|int	|my_mkstemp_cloexec					\
+				|NN char *templte
+Cdp	|PerlIO *|my_popen_list |NN const char *mode			\
+				|int n					\
+				|NN SV **args
+Adp	|void	|my_setenv	|NULLOK const char *nam 		\
+				|NULLOK const char *val
+
+AMTdfp	|int	|my_snprintf	|NN char *buffer			\
+				|const Size_t len			\
+				|NN const char *format			\
+				|...
+CTdp	|int	|my_socketpair	|int family				\
+				|int type				\
+				|int protocol				\
+				|int fd[2]
 m	|I32	|my_stat
-pX	|I32	|my_stat_flags	|NULLOK const U32 flags
-Adfp	|char *	|my_strftime	|NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
+Xp	|I32	|my_stat_flags	|NULLOK const U32 flags
+p	|const char *|my_strerror					\
+				|const int errnum			\
+				|NN utf8ness_t *utf8ness
+Adfp	|char * |my_strftime	|NN const char *fmt			\
+				|int sec				\
+				|int min				\
+				|int hour				\
+				|int mday				\
+				|int mon				\
+				|int year				\
+				|int wday				\
+				|int yday				\
+				|int isdst
+EXfp	|char * |my_strftime8_temp					\
+				|NN const char *fmt			\
+				|int sec				\
+				|int min				\
+				|int hour				\
+				|int mday				\
+				|int mon				\
+				|int year				\
+				|int wday				\
+				|int yday				\
+				|int isdst				\
+				|NULLOK utf8ness_t *utf8ness
+ARTdp	|NV	|my_strtod	|NN const char * const s		\
+				|NULLOK char **e
 : Used in pp_ctl.c
 p	|void	|my_unexec
-CbDTPR	|UV	|NATIVE_TO_NEED	|const UV enc|const UV ch
-CbDTPR	|UV	|ASCII_TO_NEED	|const UV enc|const UV ch
-ApR	|OP*	|newANONLIST	|NULLOK OP* o
-ApR	|OP*	|newANONHASH	|NULLOK OP* o
-Ap	|OP*	|newANONSUB	|I32 floor|NULLOK OP* proto|NULLOK OP* block
-ApdR	|OP*	|newASSIGNOP	|I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right
-ApdR	|OP*	|newCONDOP	|I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop
-Apd	|CV*	|newCONSTSUB	|NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
-Apd	|CV*	|newCONSTSUB_flags|NULLOK HV* stash \
-				  |NULLOK const char* name|STRLEN len \
-				  |U32 flags|NULLOK SV* sv
-Cp	|void	|newFORM	|I32 floor|NULLOK OP* o|NULLOK OP* block
-ApdR	|OP*	|newFOROP	|I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
-ApdR	|OP*	|newGIVENOP	|NN OP* cond|NN OP* block|PADOFFSET defsv_off
-ApdR	|OP*	|newLOGOP	|I32 optype|I32 flags|NN OP *first|NN OP *other
-px	|LOGOP*	|alloc_LOGOP	|I32 type|NULLOK OP *first|NULLOK OP *other
-ApdR	|OP*	|newLOOPEX	|I32 type|NN OP* label
-ApdR	|OP*	|newLOOPOP	|I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block
-ApdR	|OP*	|newNULLLIST
-ApdR	|OP*	|newOP		|I32 optype|I32 flags
-Cp	|void	|newPROG	|NN OP* o
-ApdR	|OP*	|newRANGE	|I32 flags|NN OP* left|NN OP* right
-ApdR	|OP*	|newSLICEOP	|I32 flags|NULLOK OP* subscript|NULLOK OP* listop
-ApdR	|OP*	|newSTATEOP	|I32 flags|NULLOK char* label|NULLOK OP* o
-AdpbM	|CV*	|newSUB		|I32 floor|NULLOK OP* o|NULLOK OP* proto \
-				|NULLOK OP* block
-ApdRx	|OP*	|newTRYCATCHOP	|I32 flags|NN OP* tryblock|NN OP *catchvar|NN OP* catchblock
-ApdRx	|OP*	|newDEFEROP	|I32 flags|NN OP *block
-pd	|CV *	|newXS_len_flags|NULLOK const char *name|STRLEN len \
-				|NN XSUBADDR_t subaddr\
-				|NULLOK const char *const filename \
-				|NULLOK const char *const proto \
-				|NULLOK SV **const_svp|U32 flags
-pX	|CV *	|newXS_deffile	|NN const char *name|NN XSUBADDR_t subaddr
-Apx	|CV *	|newXS_flags	|NULLOK const char *name|NN XSUBADDR_t subaddr\
-				|NN const char *const filename \
-				|NULLOK const char *const proto|U32 flags
-ApdU	|CV*	|newXS		|NULLOK const char *name|NN XSUBADDR_t subaddr\
-				|NN const char *filename
-ApMdbR	|AV*	|newAV
-AmdR	|AV*	|newAV_alloc_x  |SSize_t size
-AmdR	|AV*	|newAV_alloc_xz |SSize_t size
-ApR	|OP*	|newAVREF	|NN OP* o
-ApdR	|OP*	|newBINOP	|I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
-ApR	|OP*	|newCVREF	|I32 flags|NULLOK OP* o
-ApdR	|OP*	|newGVOP	|I32 type|I32 flags|NN GV* gv
-Amd	|GV*	|newGVgen	|NN const char* pack
-ApdR	|GV*	|newGVgen_flags	|NN const char* pack|U32 flags
-ApR	|OP*	|newGVREF	|I32 type|NULLOK OP* o
-ApR	|OP*	|newHVREF	|NN OP* o
-ApMdbR	|HV*	|newHV
-ApRd	|HV*	|newHVhv	|NULLOK HV *hv
-ApRbMd	|IO*	|newIO
-ApdR	|OP*	|newLISTOP	|I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
-AxpdRT	|PADNAME *|newPADNAMEouter|NN PADNAME *outer
-AxpdRT	|PADNAME *|newPADNAMEpvn|NN const char *s|STRLEN len
-AxpdRT	|PADNAMELIST *|newPADNAMELIST|size_t max
-#ifdef USE_ITHREADS
-ApdR	|OP*	|newPADOP	|I32 type|I32 flags|NN SV* sv
-#endif
-ApdR	|OP*	|newPMOP	|I32 type|I32 flags
-ApdR	|OP*	|newPVOP	|I32 type|I32 flags|NULLOK char* pv
-ApdR	|SV*	|newRV		|NN SV *const sv
-ApdR	|SV*	|newRV_noinc	|NN SV *const tmpRef
-ApdR	|SV*	|newSV		|const STRLEN len
-ApR	|OP*	|newSVREF	|NN OP* o
-ApdR	|OP*	|newSVOP	|I32 type|I32 flags|NN SV* sv
-ApdR	|OP*	|newDEFSVOP
-pR	|SV*	|newSVavdefelem	|NN AV *av|SSize_t ix|bool extendible
-ApdR	|SV*	|newSViv	|const IV i
-ApdR	|SV*	|newSVuv	|const UV u
-ApdR	|SV*	|newSVnv	|const NV n
-ApdR	|SV*	|newSVpv	|NULLOK const char *const s|const STRLEN len
-ApdR	|SV*	|newSVpvn	|NULLOK const char *const buffer|const STRLEN len
-ApdR	|SV*	|newSVpvn_flags	|NULLOK const char *const s|const STRLEN len|const U32 flags
-ApdR	|SV*	|newSVhek	|NULLOK const HEK *const hek
-ApdR	|SV*	|newSVpvn_share	|NULLOK const char* s|I32 len|U32 hash
-ApdR	|SV*	|newSVpv_share	|NULLOK const char* s|U32 hash
-AfpdR	|SV*	|newSVpvf	|NN const char *const pat|...
-ApRd	|SV*	|vnewSVpvf	|NN const char *const pat|NULLOK va_list *const args
-Apd	|SV*	|newSVrv	|NN SV *const rv|NULLOK const char *const classname
-ApMbdR	|SV*	|newSVsv	|NULLOK SV *const old
-AmdR	|SV*	|newSVsv_nomg	|NULLOK SV *const old
-AdpR	|SV*	|newSVsv_flags	|NULLOK SV *const old|I32 flags
-ApdiR	|SV*	|newSV_type	|const svtype type
-ApdIR	|SV*    |newSV_type_mortal|const svtype type
-ApdR	|OP*	|newUNOP	|I32 type|I32 flags|NULLOK OP* first
-ApdR	|OP*	|newUNOP_AUX	|I32 type|I32 flags|NULLOK OP* first \
+AMTdp	|int	|my_vsnprintf	|NN char *buffer			\
+				|const Size_t len			\
+				|NN const char *format			\
+				|va_list ap
+Ap	|OP *	|newANONATTRSUB |I32 floor				\
+				|NULLOK OP *proto			\
+				|NULLOK OP *attrs			\
+				|NULLOK OP *block
+ARp	|OP *	|newANONHASH	|NULLOK OP *o
+ARp	|OP *	|newANONLIST	|NULLOK OP *o
+Ap	|OP *	|newANONSUB	|I32 floor				\
+				|NULLOK OP *proto			\
+				|NULLOK OP *block
+ARdp	|OP *	|newARGDEFELEMOP|I32 flags				\
+				|NN OP *expr				\
+				|I32 argindex
+ARdp	|OP *	|newASSIGNOP	|I32 flags				\
+				|NULLOK OP *left			\
+				|I32 optype				\
+				|NULLOK OP *right
+Adm	|CV *	|newATTRSUB	|I32 floor				\
+				|NULLOK OP *o				\
+				|NULLOK OP *proto			\
+				|NULLOK OP *attrs			\
+				|NULLOK OP *block
+Xdp	|CV *	|newATTRSUB_x	|I32 floor				\
+				|NULLOK OP *o				\
+				|NULLOK OP *proto			\
+				|NULLOK OP *attrs			\
+				|NULLOK OP *block			\
+				|bool o_is_gv
+AMRbdp	|AV *	|newAV
+ARdm	|AV *	|newAV_alloc_x	|SSize_t size
+ARdm	|AV *	|newAV_alloc_xz |SSize_t size
+ARdp	|AV *	|newAVav	|NULLOK AV *oav
+ARdp	|AV *	|newAVhv	|NULLOK HV *ohv
+ARp	|OP *	|newAVREF	|NN OP *o
+ARdp	|OP *	|newBINOP	|I32 type				\
+				|I32 flags				\
+				|NULLOK OP *first			\
+				|NULLOK OP *last
+ARdp	|OP *	|newCONDOP	|I32 flags				\
+				|NN OP *first				\
+				|NULLOK OP *trueop			\
+				|NULLOK OP *falseop
+Adp	|CV *	|newCONSTSUB	|NULLOK HV *stash			\
+				|NULLOK const char *name		\
+				|NULLOK SV *sv
+Adp	|CV *	|newCONSTSUB_flags					\
+				|NULLOK HV *stash			\
+				|NULLOK const char *name		\
+				|STRLEN len				\
+				|U32 flags				\
+				|NULLOK SV *sv
+ARp	|OP *	|newCVREF	|I32 flags				\
+				|NULLOK OP *o
+ARdpx	|OP *	|newDEFEROP	|I32 flags				\
+				|NN OP *block
+ARdp	|OP *	|newDEFSVOP
+Cp	|void	|newFORM	|I32 floor				\
+				|NULLOK OP *o				\
+				|NULLOK OP *block
+ARdp	|OP *	|newFOROP	|I32 flags				\
+				|NULLOK OP *sv				\
+				|NN OP *expr				\
+				|NULLOK OP *block			\
+				|NULLOK OP *cont
+ARdp	|OP *	|newGIVENOP	|NN OP *cond				\
+				|NN OP *block				\
+				|PADOFFSET defsv_off
+: Used in scope.c
+eopx	|GP *	|newGP		|NN GV * const gv
+Adm	|GV *	|newGVgen	|NN const char *pack
+ARdp	|GV *	|newGVgen_flags |NN const char *pack			\
+				|U32 flags
+ARdp	|OP *	|newGVOP	|I32 type				\
+				|I32 flags				\
+				|NN GV *gv
+ARp	|OP *	|newGVREF	|I32 type				\
+				|NULLOK OP *o
+AMRbdp	|HV *	|newHV
+ARdp	|HV *	|newHVhv	|NULLOK HV *hv
+ARp	|OP *	|newHVREF	|NN OP *o
+AMRbdp	|IO *	|newIO
+ARdp	|OP *	|newLISTOP	|I32 type				\
+				|I32 flags				\
+				|NULLOK OP *first			\
+				|NULLOK OP *last
+ARdp	|OP *	|newLOGOP	|I32 optype				\
+				|I32 flags				\
+				|NN OP *first				\
+				|NN OP *other
+ARdp	|OP *	|newLOOPEX	|I32 type				\
+				|NN OP *label
+ARdp	|OP *	|newLOOPOP	|I32 flags				\
+				|I32 debuggable 			\
+				|NN OP *expr				\
+				|NULLOK OP *block
+ARdp	|OP *	|newMETHOP	|I32 type				\
+				|I32 flags				\
+				|NN OP *dynamic_meth
+ARdp	|OP *	|newMETHOP_named|I32 type				\
+				|I32 flags				\
+				|NN SV * const_meth
+Cp	|CV *	|newMYSUB	|I32 floor				\
+				|NN OP *o				\
+				|NULLOK OP *proto			\
+				|NULLOK OP *attrs			\
+				|NULLOK OP *block
+ARdp	|OP *	|newNULLLIST
+ARdp	|OP *	|newOP		|I32 optype				\
+				|I32 flags
+ARTdpx	|PADNAMELIST *|newPADNAMELIST					\
+				|size_t max
+ARTdpx	|PADNAME *|newPADNAMEouter					\
+				|NN PADNAME *outer
+ARTdpx	|PADNAME *|newPADNAMEpvn|NN const char *s			\
+				|STRLEN len
+ARdip	|OP *	|newPADxVOP	|I32 type				\
+				|I32 flags				\
+				|PADOFFSET padix
+ARdp	|OP *	|newPMOP	|I32 type				\
+				|I32 flags
+Cp	|void	|newPROG	|NN OP *o
+ARdp	|OP *	|newPVOP	|I32 type				\
+				|I32 flags				\
+				|NULLOK char *pv
+ARdp	|OP *	|newRANGE	|I32 flags				\
+				|NN OP *left				\
+				|NN OP *right
+ARdp	|SV *	|newRV		|NN SV * const sv
+ARdip	|SV *	|newRV_noinc	|NN SV * const tmpRef
+ARdp	|OP *	|newSLICEOP	|I32 flags				\
+				|NULLOK OP *subscript			\
+				|NULLOK OP *listop
+CRp	|PERL_SI *|new_stackinfo|I32 stitems				\
+				|I32 cxitems
+ARdp	|OP *	|newSTATEOP	|I32 flags				\
+				|NULLOK char *label			\
+				|NULLOK OP *o
+p	|CV *	|newSTUB	|NN GV *gv				\
+				|bool fake
+AMbdp	|CV *	|newSUB 	|I32 floor				\
+				|NULLOK OP *o				\
+				|NULLOK OP *proto			\
+				|NULLOK OP *block
+ARdp	|SV *	|newSV		|const STRLEN len
+Rp	|SV *	|newSVavdefelem |NN AV *av				\
+				|SSize_t ix				\
+				|bool extendible
+ARdp	|SV *	|newSVbool	|const bool bool_val
+ARdp	|SV *	|newSV_false
+ARdp	|SV *	|newSVhek	|NULLOK const HEK * const hek
+ARdp	|SV *	|newSVhek_mortal|NULLOK const HEK * const hek
+ARdp	|SV *	|newSViv	|const IV i
+ARdp	|SV *	|newSVnv	|const NV n
+ARdp	|OP *	|newSVOP	|I32 type				\
+				|I32 flags				\
+				|NN SV *sv
+ARdp	|SV *	|newSVpv	|NULLOK const char * const s		\
+				|const STRLEN len
+ARdfp	|SV *	|newSVpvf	|NN const char * const pat		\
+				|...
+ARdp	|SV *	|newSVpvn	|NULLOK const char * const buffer	\
+				|const STRLEN len
+ARdp	|SV *	|newSVpvn_flags |NULLOK const char * const s		\
+				|const STRLEN len			\
+				|const U32 flags
+ARdp	|SV *	|newSVpvn_share |NULLOK const char *s			\
+				|I32 len				\
+				|U32 hash
+ARdp	|SV *	|newSVpv_share	|NULLOK const char *s			\
+				|U32 hash
+ARp	|OP *	|newSVREF	|NN OP *o
+Adp	|SV *	|newSVrv	|NN SV * const rv			\
+				|NULLOK const char * const classname
+AMRbdp	|SV *	|newSVsv	|NULLOK SV * const old
+ARdp	|SV *	|newSVsv_flags	|NULLOK SV * const old			\
+				|I32 flags
+ARdm	|SV *	|newSVsv_nomg	|NULLOK SV * const old
+ARdp	|SV *	|newSV_true
+ARdip	|SV *	|newSV_type	|const svtype type
+AIRdp	|SV *	|newSV_type_mortal					\
+				|const svtype type
+ARdp	|SV *	|newSVuv	|const UV u
+ARdpx	|OP *	|newTRYCATCHOP	|I32 flags				\
+				|NN OP *tryblock			\
+				|NN OP *catchvar			\
+				|NN OP *catchblock
+ARdp	|OP *	|newUNOP	|I32 type				\
+				|I32 flags				\
+				|NULLOK OP *first
+ARdp	|OP *	|newUNOP_AUX	|I32 type				\
+				|I32 flags				\
+				|NULLOK OP *first			\
 				|NULLOK UNOP_AUX_item *aux
-ApdR	|OP*	|newWHENOP	|NULLOK OP* cond|NN OP* block
-ApdR	|OP*	|newWHILEOP	|I32 flags|I32 debuggable|NULLOK LOOP* loop \
-				|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
+Adp	|SV *	|new_version	|NN SV *ver
+: FIXME - exported for ByteLoader - public or private?
+ERXopx	|char * |new_warnings_bitfield					\
+				|NULLOK char *buffer			\
+				|NN const char * const bits		\
+				|STRLEN size
+ARdp	|OP *	|newWHENOP	|NULLOK OP *cond			\
+				|NN OP *block
+ARdp	|OP *	|newWHILEOP	|I32 flags				\
+				|I32 debuggable 			\
+				|NULLOK LOOP *loop			\
+				|NULLOK OP *expr			\
+				|NULLOK OP *block			\
+				|NULLOK OP *cont			\
 				|I32 has_my
-ApdR	|OP*	|newMETHOP	|I32 type|I32 flags|NN OP* dynamic_meth
-ApdR	|OP*	|newMETHOP_named|I32 type|I32 flags|NN SV* const_meth
-Apd	|CV*	|rv2cv_op_cv	|NN OP *cvop|U32 flags
-Apd	|OP*	|ck_entersub_args_list|NN OP *entersubop
-Apd	|OP*	|ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv
-Apd	|OP*	|ck_entersub_args_proto_or_list|NN OP *entersubop|NN GV *namegv|NN SV *protosv
-po	|OP*	|ck_entersub_args_core|NN OP *entersubop|NN GV *namegv \
-				      |NN SV *protosv
-Apd	|void	|cv_get_call_checker|NN CV *cv|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p
-Apd	|void	|cv_get_call_checker_flags|NN CV *cv|U32 gflags|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p|NN U32 *ckflags_p
-Apd	|void	|cv_set_call_checker|NN CV *cv|NN Perl_call_checker ckfun|NN SV *ckobj
-Apd	|void	|cv_set_call_checker_flags|NN CV *cv \
-					  |NN Perl_call_checker ckfun \
-					  |NN SV *ckobj|U32 ckflags
-Apd	|void	|wrap_op_checker|Optype opcode|NN Perl_check_t new_checker|NN Perl_check_t *old_checker_p
-Axpd	|void	|wrap_keyword_plugin|NN Perl_keyword_plugin_t new_plugin|NN Perl_keyword_plugin_t *old_plugin_p
-CpR	|PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Apd	|char*	|scan_vstring	|NN const char *s|NN const char *const e \
-				|NN SV *sv
-Apd	|const char*	|scan_version	|NN const char *s|NN SV *rv|bool qv
-Apd	|const char*	|prescan_version	|NN const char *s\
-	|bool strict|NULLOK const char** errstr|NULLOK bool *sqv\
-	|NULLOK int *ssaw_decimal|NULLOK int *swidth|NULLOK bool *salpha
-Apd	|SV*	|new_version	|NN SV *ver
-Apd	|SV*	|upg_version	|NN SV *ver|bool qv
-Apd	|SV*	|vverify	|NN SV *vs
-Apd	|SV*	|vnumify	|NN SV *vs
-Apd	|SV*	|vnormal	|NN SV *vs
-Apd	|SV*	|vstringify	|NN SV *vs
-Apd	|int	|vcmp		|NN SV *lhv|NN SV *rhv
+AUdp	|CV *	|newXS		|NULLOK const char *name		\
+				|NN XSUBADDR_t subaddr			\
+				|NN const char *filename
+Xp	|CV *	|newXS_deffile	|NN const char *name			\
+				|NN XSUBADDR_t subaddr
+Apx	|CV *	|newXS_flags	|NULLOK const char *name		\
+				|NN XSUBADDR_t subaddr			\
+				|NN const char * const filename 	\
+				|NULLOK const char * const proto	\
+				|U32 flags
+dp	|CV *	|newXS_len_flags|NULLOK const char *name		\
+				|STRLEN len				\
+				|NN XSUBADDR_t subaddr			\
+				|NULLOK const char * const filename	\
+				|NULLOK const char * const proto	\
+				|NULLOK SV ** const_svp 		\
+				|U32 flags
 : Used in pp_hot.c and pp_sys.c
-p	|PerlIO*|nextargv	|NN GV* gv|bool nomagicopen
-AdMTpP	|char*	|ninstr		|NN const char* big|NN const char* bigend \
-				|NN const char* little|NN const char* lend
-Apd	|void	|op_free	|NULLOK OP* arg
-xp	|OP*	|op_unscope	|NULLOK OP* o
-#ifdef PERL_CORE
-p	|void	|opslab_free	|NN OPSLAB *slab
-p	|void	|opslab_free_nopad|NN OPSLAB *slab
-p	|void	|opslab_force_free|NN OPSLAB *slab
-#endif
+p	|PerlIO *|nextargv	|NN GV *gv				\
+				|bool nomagicopen
+AMPTdp	|char * |ninstr 	|NN const char *big			\
+				|NN const char *bigend			\
+				|NN const char *little			\
+				|NN const char *lend
+
+p	|void	|no_bareword_filehandle 				\
+				|NN const char *fhname
+Tefpr	|void	|noperl_die	|NN const char *pat			\
+				|...
+Adp	|int	|nothreadhook
+p	|void	|notify_parser_that_changed_to_utf8
 : Used in perly.y
-p	|void	|package	|NN OP* o
+Rp	|OP *	|oopsAV 	|NN OP *o
 : Used in perly.y
-p	|void	|package_version|NN OP* v
-: Used in toke.c and perly.y
-p	|PADOFFSET|allocmy	|NN const char *const name|const STRLEN len\
-				|const U32 flags
-#ifdef USE_ITHREADS
-Adxp	|PADOFFSET|alloccopstash|NN HV *hv
-#endif
+Rp	|OP *	|oopsHV 	|NN OP *o
+Adp	|OP *	|op_append_elem |I32 optype				\
+				|NULLOK OP *first			\
+				|NULLOK OP *last
+Adp	|OP *	|op_append_list |I32 optype				\
+				|NULLOK OP *first			\
+				|NULLOK OP *last
+Adp	|OPclass|op_class	|NULLOK const OP *o
+: FIXME. Used by Data::Alias
+EXp	|void	|op_clear	|NN OP *o
+Adp	|OP *	|op_contextualize					\
+				|NN OP *o				\
+				|I32 context
+: Used in perly.y
+ARdp	|OP *	|op_convert_list|I32 optype				\
+				|I32 flags				\
+				|NULLOK OP *o
+Adp	|void	|op_dump	|NN const OP *o
+; Used in op.c and class.c
+Adp	|OP *	|op_force_list	|NULLOK OP *o
+Adp	|void	|op_free	|NULLOK OP *arg
+Adp	|OP *	|op_linklist	|NN OP *o
+Admx	|OP *	|op_lvalue	|NULLOK OP *o				\
+				|I32 type
+Xop	|OP *	|op_lvalue_flags|NULLOK OP *o				\
+				|I32 type				\
+				|U32 flags
+: Used in various files
+Adp	|void	|op_null	|NN OP *o
+ATdp	|OP *	|op_parent	|NN OP *o
+Adp	|OP *	|op_prepend_elem|I32 optype				\
+				|NULLOK OP *first			\
+				|NULLOK OP *last
+Cdp	|void	|op_refcnt_lock
+Cdp	|void	|op_refcnt_unlock
+Adpx	|OP *	|op_scope	|NULLOK OP *o
+ATdp	|OP *	|op_sibling_splice					\
+				|NULLOK OP *parent			\
+				|NULLOK OP *start			\
+				|int del_count				\
+				|NULLOK OP *insert
+px	|OP *	|op_unscope	|NULLOK OP *o
+ARdpx	|OP *	|op_wrap_finally|NN OP *block				\
+				|NN OP *finally
 : Used in perly.y
-pR	|OP*	|oopsAV		|NN OP* o
+p	|void	|package	|NN OP *o
 : Used in perly.y
-pR	|OP*	|oopsHV		|NN OP* o
+p	|void	|package_version|NN OP *v
+Adp	|void	|packlist	|NN SV *cat				\
+				|NN const char *pat			\
+				|NN const char *patend			\
+				|NN SV **beglist			\
+				|NN SV **endlist
+Adp	|PADOFFSET|pad_add_anon |NN CV *func				\
+				|I32 optype
+Adp	|PADOFFSET|pad_add_name_pv					\
+				|NN const char *name			\
+				|const U32 flags			\
+				|NULLOK HV *typestash			\
+				|NULLOK HV *ourstash
+Adp	|PADOFFSET|pad_add_name_pvn					\
+				|NN const char *namepv			\
+				|STRLEN namelen 			\
+				|U32 flags				\
+				|NULLOK HV *typestash			\
+				|NULLOK HV *ourstash
+Adp	|PADOFFSET|pad_add_name_sv					\
+				|NN SV *name				\
+				|U32 flags				\
+				|NULLOK HV *typestash			\
+				|NULLOK HV *ourstash
+p	|void	|pad_add_weakref|NN CV *func
+Adpx	|PADOFFSET|pad_alloc	|I32 optype				\
+				|U32 tmptype
+dp	|void	|pad_block_start|int full
+Adp	|PADOFFSET|pad_findmy_pv|NN const char *name			\
+				|U32 flags
+Adp	|PADOFFSET|pad_findmy_pvn					\
+				|NN const char *namepv			\
+				|STRLEN namelen 			\
+				|U32 flags
+Adp	|PADOFFSET|pad_findmy_sv|NN SV *name				\
+				|U32 flags
+dp	|void	|pad_fixup_inner_anons					\
+				|NN PADLIST *padlist			\
+				|NN CV *old_cv				\
+				|NN CV *new_cv
+dp	|void	|pad_free	|PADOFFSET po
+dp	|OP *	|pad_leavemy
+p	|PAD ** |padlist_store	|NN PADLIST *padlist			\
+				|I32 key				\
+				|NULLOK PAD *val
+Xop	|void	|padname_free	|NN PADNAME *pn
+ARTdpx	|PADNAME *|padnamelist_fetch					\
+				|NN PADNAMELIST *pnl			\
+				|SSize_t key
+Xop	|void	|padnamelist_free					\
+				|NN PADNAMELIST *pnl
+Adpx	|PADNAME **|padnamelist_store					\
+				|NN PADNAMELIST *pnl			\
+				|SSize_t key				\
+				|NULLOK PADNAME *val
+
+: pad API
+ARdp	|PADLIST *|pad_new	|int flags
+Xdp	|void	|pad_push	|NN PADLIST *padlist			\
+				|int depth
+dp	|void	|pad_swipe	|PADOFFSET po				\
+				|bool refadjust
+Adpx	|void	|pad_tidy	|padtidy_type type
+: Public parser API
+Adpx	|OP *	|parse_arithexpr|U32 flags
+Adpx	|OP *	|parse_barestmt |U32 flags
+Adpx	|OP *	|parse_block	|U32 flags
+Adpx	|OP *	|parse_fullexpr |U32 flags
+Adpx	|OP *	|parse_fullstmt |U32 flags
+Adpx	|SV *	|parse_label	|U32 flags
+Adpx	|OP *	|parse_listexpr |U32 flags
+: Only used in scope.c
+p	|void	|parser_free	|NN const yy_parser *parser
+Adpx	|OP *	|parse_stmtseq	|U32 flags
+Adpx	|OP *	|parse_subsignature					\
+				|U32 flags
+Adpx	|OP *	|parse_termexpr |U32 flags
+: Used in locale.c and perl.c
+p	|U32	|parse_unicode_opts					\
+				|NN const char **popt
 
 : peephole optimiser
-p	|void	|peep		|NULLOK OP* o
-p	|void	|rpeep		|NULLOK OP* o
-: Defined in doio.c, used only in pp_hot.c
-dopx	|PerlIO*|start_glob	|NN SV *tmpglob|NN IO *io
+p	|void	|peep		|NULLOK OP *o
 
-Cp	|void	|reentrant_size
-Cp	|void	|reentrant_init
-Cp	|void	|reentrant_free
-CFTp	|void*	|reentrant_retry|NN const char *f|...
+ATdo	|PerlInterpreter *|perl_alloc
+ATdo	|void	|perl_construct |NN PerlInterpreter *my_perl
 
-: "Very" special - can't use the O flag for this one:
-: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
-Apd	|void	|call_atexit	|ATEXIT_t fn|NULLOK void *ptr
-ApdO	|I32	|call_argv	|NN const char* sub_name|I32 flags|NN char** argv
-ApdO	|I32	|call_method	|NN const char* methname|I32 flags
-ApdO	|I32	|call_pv	|NN const char* sub_name|I32 flags
-ApdO	|I32	|call_sv	|NN SV* sv|volatile I32 flags
-Cp	|void	|despatch_signals
-Cp	|OP *	|doref		|NN OP *o|I32 type|bool set_op_ref
-ApdO	|SV*	|eval_pv	|NN const char* p|I32 croak_on_error
-ApdO	|I32	|eval_sv	|NN SV* sv|I32 flags
-ApdO	|SV*	|get_sv		|NN const char *name|I32 flags
-ApdO	|AV*	|get_av		|NN const char *name|I32 flags
-ApdO	|HV*	|get_hv		|NN const char *name|I32 flags
-ApdO	|CV*	|get_cv		|NN const char* name|I32 flags
-Apd	|CV*	|get_cvn_flags	|NN const char* name|STRLEN len|I32 flags
-ATdo	|const char*|Perl_setlocale|const int category|NULLOK const char* locale
-#if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H)
-ATdo	|const char*|Perl_langinfo|const nl_item item
-#else
-ATdo	|const char*|Perl_langinfo|const int item
-#endif
-CpO	|int	|init_i18nl10n	|int printwarn
-CbpOD	|int	|init_i18nl14n	|int printwarn
-p	|char*	|my_strerror	|const int errnum
-XpT	|void	|_warn_problematic_locale
-Xp	|void	|set_numeric_underlying
-Xp	|void	|set_numeric_standard
-Cp	|bool	|_is_in_locale_category|const bool compiling|const int category
-ApdT	|void	|switch_to_global_locale
-ApdT	|bool	|sync_locale
-ApxT	|void	|thread_locale_init
-ApxT	|void	|thread_locale_term
-ApdO	|void	|require_pv	|NN const char* pv
-AbpdD	|void	|pack_cat	|NN SV *cat|NN const char *pat|NN const char *patend \
-				|NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
-Apd	|void	|packlist	|NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-S	|void	|pidgone	|Pid_t pid|int status
-#endif
+: The reason for the 'u' flag is that this passes "aTHX_ x" to its callee: not
+: a legal C parameter
+Admu	|const XOP *|Perl_custom_op_xop 				\
+				|NN const OP *o
+ATdo	|int	|perl_destruct	|NN PerlInterpreter *my_perl
+ATdo	|void	|perl_free	|NN PerlInterpreter *my_perl
+
+Cop	|const char *|PerlIO_context_layers				\
+				|NULLOK const char *mode
+p	|int	|PerlLIO_dup2_cloexec					\
+				|int oldfd				\
+				|int newfd
+Rp	|int	|PerlLIO_dup_cloexec					\
+				|int oldfd
+Rp	|int	|PerlLIO_open3_cloexec					\
+				|NN const char *file			\
+				|int flag				\
+				|int perm
+Rp	|int	|PerlLIO_open_cloexec					\
+				|NN const char *file			\
+				|int flag
+Ado	|HV *	|Perl_localeconv
+ATdo	|int	|perl_parse	|NN PerlInterpreter *my_perl		\
+				|XSINIT_t xsinit			\
+				|int argc				\
+				|NULLOK char **argv			\
+				|NULLOK char **env
+ATdo	|int	|perl_run	|NN PerlInterpreter *my_perl
+ATdo	|const char *|Perl_setlocale					\
+				|const int category			\
+				|NULLOK const char *locale
+CTp	|Signal_t|perly_sighandler					\
+				|int sig				\
+				|NULLOK Siginfo_t *info 		\
+				|NULLOK void *uap			\
+				|bool safe
+
+Adm	|const char * const|phase_name					\
+				|enum perl_phase
+Adp	|void	|pmop_dump	|NULLOK PMOP *pm
 : Used in perly.y
-p	|OP*	|pmruntime	|NN OP *o|NN OP *expr|NULLOK OP *repl \
-				|UV flags|I32 floor
-#if defined(PERL_IN_OP_C)
-S	|OP*	|pmtrans	|NN OP* o|NN OP* expr|NN OP* repl
-#endif
-p	|void	|invmap_dump	|NN SV* invlist|NN UV * map
-Cpd	|void	|pop_scope
-Cpd	|void	|push_scope
-#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
-pMb	|OP*	|ref		|NULLOK OP* o|I32 type
-#endif
-#if defined(PERL_IN_OP_C)
-S	|OP*	|refkids	|NULLOK OP* o|I32 type
-#endif
+p	|OP *	|pmruntime	|NN OP *o				\
+				|NN OP *expr				\
+				|NULLOK OP *repl			\
+				|UV flags				\
+				|I32 floor
+Xiop	|I32	|POPMARK
+Cdp	|void	|pop_scope
+
+: Used in perl.c and toke.c
+Fop	|void	|populate_isa	|NN const char *name			\
+				|STRLEN len				\
+				|...
+Adhp	|REGEXP *|pregcomp	|NN SV * const pattern			\
+				|const U32 flags
+Adhp	|I32	|pregexec	|NN REGEXP * const prog 		\
+				|NN char *stringarg			\
+				|NN char *strend			\
+				|NN char *strbeg			\
+				|SSize_t minend 			\
+				|NN SV *screamer			\
+				|U32 nosave
+Cp	|void	|pregfree	|NULLOK REGEXP *r
+Cp	|void	|pregfree2	|NN REGEXP *rx
+Adp	|const char *|prescan_version					\
+				|NN const char *s			\
+				|bool strict				\
+				|NULLOK const char **errstr		\
+				|NULLOK bool *sqv			\
+				|NULLOK int *ssaw_decimal		\
+				|NULLOK int *swidth			\
+				|NULLOK bool *salpha
+ARdp	|void * |ptr_table_fetch|NN PTR_TBL_t * const tbl		\
+				|NULLOK const void * const sv
+Adp	|void	|ptr_table_free |NULLOK PTR_TBL_t * const tbl
+ARdp	|PTR_TBL_t *|ptr_table_new
+Adp	|void	|ptr_table_split|NN PTR_TBL_t * const tbl
+Adp	|void	|ptr_table_store|NN PTR_TBL_t * const tbl		\
+				|NULLOK const void * const oldsv	\
+				|NN void * const newsv
+Cdp	|void	|push_scope
+Adp	|char * |pv_display	|NN SV *dsv				\
+				|NN const char *pv			\
+				|STRLEN cur				\
+				|STRLEN len				\
+				|STRLEN pvlim
+Adp	|char * |pv_escape	|NULLOK SV *dsv 			\
+				|NN char const * const str		\
+				|const STRLEN count			\
+				|STRLEN max				\
+				|NULLOK STRLEN * const escaped		\
+				|U32 flags
+Adp	|char * |pv_pretty	|NN SV *dsv				\
+				|NN char const * const str		\
+				|const STRLEN count			\
+				|const STRLEN max			\
+				|NULLOK char const * const start_color	\
+				|NULLOK char const * const end_color	\
+				|const U32 flags
+Adp	|char * |pv_uni_display |NN SV *dsv				\
+				|NN const U8 *spv			\
+				|STRLEN len				\
+				|STRLEN pvlim				\
+				|UV flags
+: FIXME - either make it public, or stop exporting it. (Data::Alias uses this)
+: Used in gv.c, op.c, toke.c
+EXp	|void	|qerror 	|NULLOK SV *err
+Adp	|char * |rcpv_copy	|NULLOK char * const pv
+Adp	|char * |rcpv_free	|NULLOK char * const pv
+Aadp	|char * |rcpv_new	|NULLOK const char * const pv		\
+				|STRLEN len				\
+				|U32 flags
+CRTdop	|Malloc_t|realloc	|Malloc_t where 			\
+				|MEM_SIZE nbytes
+CTiop	|struct regexp *|ReANY	|NN const REGEXP * const re
+Adp	|REGEXP *|re_compile	|NN SV * const pattern			\
+				|U32 orig_rx_flags
+Cp	|void	|reentrant_free
+Cp	|void	|reentrant_init
+CFTp	|void * |reentrant_retry|NN const char *f			\
+				|...
+
+Cp	|void	|reentrant_size
+Xdp	|HV *	|refcounted_he_chain_2hv				\
+				|NULLOK const struct refcounted_he *c	\
+				|U32 flags
+Xdp	|SV *	|refcounted_he_fetch_pv 					\
+				|NULLOK const struct refcounted_he *chain	\
+				|NN const char *key				\
+				|U32 hash					\
+				|U32 flags
+Xdp	|SV *	|refcounted_he_fetch_pvn					\
+				|NULLOK const struct refcounted_he *chain	\
+				|NN const char *keypv				\
+				|STRLEN keylen					\
+				|U32 hash					\
+				|U32 flags
+Xdp	|SV *	|refcounted_he_fetch_sv 					\
+				|NULLOK const struct refcounted_he *chain	\
+				|NN SV *key					\
+				|U32 hash					\
+				|U32 flags
+Xdp	|void	|refcounted_he_free					\
+				|NULLOK struct refcounted_he *he
+Xdp	|struct refcounted_he *|refcounted_he_inc			\
+				|NULLOK struct refcounted_he *he
+Xdp	|struct refcounted_he *|refcounted_he_new_pv			\
+				|NULLOK struct refcounted_he *parent	\
+				|NN const char *key			\
+				|U32 hash				\
+				|NULLOK SV *value			\
+				|U32 flags
+Xdp	|struct refcounted_he *|refcounted_he_new_pvn			\
+				|NULLOK struct refcounted_he *parent	\
+				|NN const char *keypv			\
+				|STRLEN keylen				\
+				|U32 hash				\
+				|NULLOK SV *value			\
+				|U32 flags
+Xdp	|struct refcounted_he *|refcounted_he_new_sv			\
+				|NULLOK struct refcounted_he *parent	\
+				|NN SV *key				\
+				|U32 hash				\
+				|NULLOK SV *value			\
+				|U32 flags
+Cp	|void	|regdump	|NN const regexp *r
+Cp	|I32	|regexec_flags	|NN REGEXP * const rx			\
+				|NN char *stringarg			\
+				|NN char *strend			\
+				|NN char *strbeg			\
+				|SSize_t minend 			\
+				|NN SV *sv				\
+				|NULLOK void *data			\
+				|U32 flags
+Cp	|void	|regfree_internal					\
+				|NN REGEXP * const rx
+Cp	|void	|reginitcolors
+EXp	|SV *	|reg_named_buff |NN REGEXP * const rx			\
+				|NULLOK SV * const key			\
+				|NULLOK SV * const value		\
+				|const U32 flags
+Cp	|SV *	|reg_named_buff_all					\
+				|NN REGEXP * const rx			\
+				|const U32 flags
+Cp	|bool	|reg_named_buff_exists					\
+				|NN REGEXP * const rx			\
+				|NN SV * const key			\
+				|const U32 flags
+Cp	|SV *	|reg_named_buff_fetch					\
+				|NN REGEXP * const rx			\
+				|NN SV * const namesv			\
+				|const U32 flags
+Cp	|SV *	|reg_named_buff_firstkey				\
+				|NN REGEXP * const rx			\
+				|const U32 flags
+EXp	|SV *	|reg_named_buff_iter					\
+				|NN REGEXP * const rx			\
+				|NULLOK const SV * const lastkey	\
+				|const U32 flags
+Cp	|SV *	|reg_named_buff_nextkey 				\
+				|NN REGEXP * const rx			\
+				|const U32 flags
+Cp	|SV *	|reg_named_buff_scalar					\
+				|NN REGEXP * const rx			\
+				|const U32 flags
+: FIXME - is anything in re using this now?
+EXp	|void	|reg_numbered_buff_fetch				\
+				|NN REGEXP * const re			\
+				|const I32 paren			\
+				|NULLOK SV * const sv
+
+: FIXME - is anything in re using this now?
+EXp	|void	|reg_numbered_buff_fetch_flags				\
+				|NN REGEXP * const re			\
+				|const I32 paren			\
+				|NULLOK SV * const sv			\
+				|U32 flags
+: FIXME - is anything in re using this now?
+EXp	|I32	|reg_numbered_buff_length				\
+				|NN REGEXP * const rx			\
+				|NN const SV * const sv 		\
+				|const I32 paren
+: FIXME - is anything in re using this now?
+EXp	|void	|reg_numbered_buff_store				\
+				|NN REGEXP * const rx			\
+				|const I32 paren			\
+				|NULLOK SV const * const value
 
-ATpd	|void	|repeatcpy	|NN char* to|NN const char* from|I32 len|IV count
-AdTpP	|char*	|rninstr	|NN const char* big|NN const char* bigend \
-				|NN const char* little|NN const char* lend
-Apd	|Sighandler_t|rsignal	|int i|Sighandler_t t
+: FIXME - is anything in re using this now?
+EXp	|SV *	|reg_qr_package |NN REGEXP * const rx
+: FIXME - is anything in re using this now?
+EXp	|REGEXP *|reg_temp_copy |NULLOK REGEXP *dsv			\
+				|NN REGEXP *ssv
+Cp	|char * |re_intuit_start|NN REGEXP * const rx			\
+				|NULLOK SV *sv				\
+				|NN const char * const strbeg		\
+				|NN char *strpos			\
+				|NN char *strend			\
+				|const U32 flags			\
+				|NULLOK re_scream_pos_data *data
+Cp	|SV *	|re_intuit_string					\
+				|NN REGEXP  * const r
+Xp	|REGEXP *|re_op_compile |NULLOK SV ** const patternp		\
+				|int pat_count				\
+				|NULLOK OP *expr			\
+				|NN const regexp_engine *eng		\
+				|NULLOK REGEXP *old_re			\
+				|NULLOK bool *is_bare_re		\
+				|const U32 rx_flags			\
+				|const U32 pm_flags
+
+ATdp	|void	|repeatcpy	|NN char *to				\
+				|NN const char *from			\
+				|I32 len				\
+				|IV count
+: Used in doio.c, pp_hot.c, pp_sys.c
+p	|void	|report_evil_fh |NULLOK const GV *gv
+: Used in mg.c, pp.c, pp_hot.c, regcomp.c
+EXdp	|void	|report_uninit	|NULLOK const SV *uninit_sv
+: Used in doio.c, pp_hot.c, pp_sys.c
+p	|void	|report_wrongway_fh					\
+				|NULLOK const GV *gv			\
+				|const char have
+AOdp	|void	|require_pv	|NN const char *pv
+AMp	|void	|resume_compcv	|NN struct suspended_compcv *buffer	\
+				|bool save
+dm	|void	|resume_compcv_and_save 				\
+				|NN struct suspended_compcv *buffer
+dm	|void	|resume_compcv_final					\
+				|NN struct suspended_compcv *buffer
+APTdp	|char * |rninstr	|NN const char *big			\
+				|NN const char *bigend			\
+				|NN const char *little			\
+				|NN const char *lend
+p	|void	|rpeep		|NULLOK OP *o
+Adp	|Sighandler_t|rsignal	|int i					\
+				|Sighandler_t t
 : Used in pp_sys.c
-p	|int	|rsignal_restore|int i|NULLOK Sigsave_t* t
+p	|int	|rsignal_restore|int i					\
+				|NULLOK Sigsave_t *t
 : Used in pp_sys.c
-p	|int	|rsignal_save	|int i|Sighandler_t t1|NN Sigsave_t* save
-Apd	|Sighandler_t|rsignal_state|int i
-#if defined(PERL_IN_PP_CTL_C)
-S	|void	|rxres_free	|NN void** rsp
-S	|void	|rxres_restore	|NN void **rsp|NN REGEXP *rx
-#endif
+p	|int	|rsignal_save	|int i					\
+				|Sighandler_t t1			\
+				|NN Sigsave_t *save
+Adp	|Sighandler_t|rsignal_state					\
+				|int i
+Cdhp	|int	|runops_debug
+Cdhp	|int	|runops_standard
+Adp	|CV *	|rv2cv_op_cv	|NN OP *cvop				\
+				|U32 flags
 : Used in pp_hot.c
-p	|void	|rxres_save	|NN void **rsp|NN REGEXP *rx
-#if !defined(HAS_RENAME)
-: Used in pp_sys.c
-p	|I32	|same_dirent	|NN const char* a|NN const char* b
-#endif
-Apda	|char*	|savepv		|NULLOK const char* pv
-Apda	|char*	|savepvn	|NULLOK const char* pv|Size_t len
-Apda	|char*	|savesharedpv	|NULLOK const char* pv
-
-: NULLOK only to suppress a compiler warning
-Apda	|char*	|savesharedpvn	|NULLOK const char *const pv \
-				|const STRLEN len
-Apda	|char*	|savesharedsvpv	|NN SV *sv
-Apda	|char*	|savesvpv	|NN SV* sv
-Cp	|void	|savestack_grow
-Cp	|void	|savestack_grow_cnt	|I32 need
-Am	|void	|save_aelem	|NN AV* av|SSize_t idx|NN SV **sptr
-Ap	|void	|save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \
-				 |const U32 flags
-Cpd	|I32	|save_alloc	|I32 size|I32 pad
-Apdh	|void	|save_aptr	|NN AV** aptr
-Apdh	|AV*	|save_ary	|NN GV* gv
-Cp	|void	|save_bool	|NN bool* boolp
-Cp	|void	|save_clearsv	|NN SV** svp
-Cp	|void	|save_delete	|NN HV *hv|NN char *key|I32 klen
-Cpd	|void	|save_hdelete	|NN HV *hv|NN SV *keysv
-Cpd	|void	|save_adelete	|NN AV *av|SSize_t key
-Cp	|void	|save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
-Cp	|void	|save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
-CpMb	|void	|save_freesv	|NULLOK SV* sv
+p	|void	|rxres_save	|NN void **rsp				\
+				|NN REGEXP *rx
+ATadp	|Malloc_t|safesyscalloc |MEM_SIZE elements			\
+				|MEM_SIZE size
+ATdp	|Free_t |safesysfree	|Malloc_t where
+ATadp	|Malloc_t|safesysmalloc |MEM_SIZE nbytes
+ARTdp	|Malloc_t|safesysrealloc|Malloc_t where 			\
+				|MEM_SIZE nbytes
+Cdp	|void	|save_adelete	|NN AV *av				\
+				|SSize_t key
+Adm	|void	|save_aelem	|NN AV *av				\
+				|SSize_t idx				\
+				|NN SV **sptr
+Adp	|void	|save_aelem_flags					\
+				|NN AV *av				\
+				|SSize_t idx				\
+				|NN SV **sptr				\
+				|const U32 flags
+Cdp	|SSize_t|save_alloc	|SSize_t size				\
+				|I32 pad
+Adhp	|void	|save_aptr	|NN AV **aptr
+Adhp	|AV *	|save_ary	|NN GV *gv
+Cp	|void	|save_bool	|NN bool *boolp
+Cp	|void	|save_clearsv	|NN SV **svp
+Cp	|void	|save_delete	|NN HV *hv				\
+				|NN char *key				\
+				|I32 klen
+Cp	|void	|save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f		\
+				|NN void *p
+Cp	|void	|save_destructor_x					\
+				|DESTRUCTORFUNC_t f			\
+				|NULLOK void *p
 : Used in SAVEFREOP(), used in op.c, pp_ctl.c
-CpMb	|void	|save_freeop	|NULLOK OP* o
-CpMb	|void	|save_freepv	|NULLOK char* pv
-Cpd	|void	|save_generic_svref|NN SV** sptr
-Cpd	|void	|save_generic_pvref|NN char** str
-Cpd	|void	|save_shared_pvref|NN char** str
-Adp	|void	|save_gp	|NN GV* gv|I32 empty
-Apdh	|HV*	|save_hash	|NN GV* gv
-Cpd	|void	|save_hints
-Am	|void	|save_helem	|NN HV *hv|NN SV *key|NN SV **sptr
-Ap	|void	|save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
-Apdh	|void	|save_hptr	|NN HV** hptr
-Cp	|void	|save_I16	|NN I16* intp
-Cp	|void	|save_I32	|NN I32* intp
-Cp	|void	|save_I8	|NN I8* bytep
-Cp	|void	|save_int	|NN int* intp
-Apdh	|void	|save_item	|NN SV* item
+CMbp	|void	|save_freeop	|NULLOK OP *o
+CMbp	|void	|save_freepv	|NULLOK char *pv
+Cdp	|void	|save_freercpv	|NN char *rcpv
+CMbp	|void	|save_freesv	|NULLOK SV *sv
+Cdp	|void	|save_generic_pvref					\
+				|NN char **str
+Cdp	|void	|save_generic_svref					\
+				|NN SV **sptr
+Adp	|void	|save_gp	|NN GV *gv				\
+				|I32 empty
+Adhp	|HV *	|save_hash	|NN GV *gv
+Cdp	|void	|save_hdelete	|NN HV *hv				\
+				|NN SV *keysv
+Adm	|void	|save_helem	|NN HV *hv				\
+				|NN SV *key				\
+				|NN SV **sptr
+Adp	|void	|save_helem_flags					\
+				|NN HV *hv				\
+				|NN SV *key				\
+				|NN SV **sptr				\
+				|const U32 flags
+Cdp	|void	|save_hints
+Adhp	|void	|save_hptr	|NN HV **hptr
+Cp	|void	|save_I16	|NN I16 *intp
+Cp	|void	|save_I32	|NN I32 *intp
+Cp	|void	|save_I8	|NN I8 *bytep
+Cp	|void	|save_int	|NN int *intp
+Adhp	|void	|save_item	|NN SV *item
 Cp	|void	|save_iv	|NN IV *ivp
-AbpDdh	|void	|save_list	|NN SV** sarg|I32 maxsarg
-CbpD	|void	|save_long	|NN long* longp
-CpMb	|void	|save_mortalizesv|NN SV* sv
-AbpD	|void	|save_nogv	|NN GV* gv
+CMbp	|void	|save_mortalizesv					\
+				|NN SV *sv
 : Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
-CpMbd	|void	|save_op
-Apdh	|SV*	|save_scalar	|NN GV* gv
-Cp	|void	|save_pptr	|NN char** pptr
-Cpd	|void	|save_vptr	|NN void *ptr
-Cp	|void	|save_re_context
-Cpd	|void	|save_padsv_and_mortalize|PADOFFSET off
-Cp	|void	|save_sptr	|NN SV** sptr
-Xp	|void	|save_strlen	|NN STRLEN* ptr
-Apdh	|SV*	|save_svref	|NN SV** sptr
-Axpo	|void	|savetmps
-Ap	|void	|save_pushptr	|NULLOK void *const ptr|const int type
-Ap	|void	|save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
+CMbdp	|void	|save_op
+Cdp	|void	|save_padsv_and_mortalize				\
+				|PADOFFSET off
+Cp	|void	|save_pptr	|NN char **pptr
+Cp	|void	|save_pushi32ptr|const I32 i				\
+				|NULLOK void * const ptr		\
+				|const int type
+Cdp	|void	|save_pushptr	|NULLOK void * const ptr		\
+				|const int type
 : Used by SAVESWITCHSTACK() in pp.c
-Ap	|void	|save_pushptrptr|NULLOK void *const ptr1 \
-				|NULLOK void *const ptr2|const int type
-#if defined(PERL_IN_SCOPE_C)
-S	|void	|save_pushptri32ptr|NULLOK void *const ptr1|const I32 i \
-				|NULLOK void *const ptr2|const int type
-#endif
-Xiop	|I32	|TOPMARK
-Xiop	|I32	|POPMARK
+Cp	|void	|save_pushptrptr|NULLOK void * const ptr1		\
+				|NULLOK void * const ptr2		\
+				|const int type
+Aadip	|char * |savepv 	|NULLOK const char *pv
+Aadip	|char * |savepvn	|NULLOK const char *pv			\
+				|Size_t len
+Cdp	|void	|save_rcpv	|NN char **prcpv
+Cp	|void	|save_re_context
+Adhp	|SV *	|save_scalar	|NN GV *gv
+Cdp	|void	|save_set_svflags					\
+				|NN SV *sv				\
+				|U32 mask				\
+				|U32 val
+Aadp	|char * |savesharedpv	|NULLOK const char *pv
+
+: NULLOK only to suppress a compiler warning
+Aadp	|char * |savesharedpvn	|NULLOK const char * const pv		\
+				|const STRLEN len
+Cdp	|void	|save_shared_pvref					\
+				|NN char **str
+Aadip	|char * |savesharedsvpv |NN SV *sv
+Cp	|void	|save_sptr	|NN SV **sptr
+Cp	|void	|savestack_grow
+Cp	|void	|savestack_grow_cnt					\
+				|I32 need
+Xp	|void	|save_strlen	|NN STRLEN *ptr
+Aadip	|char * |savesvpv	|NN SV *sv
+Adhp	|SV *	|save_svref	|NN SV **sptr
+Aopx	|void	|savetmps
+Cdp	|void	|save_vptr	|NN void *ptr
 : Used in perly.y
-p	|OP*	|sawparens	|NULLOK OP* o
-Apd	|OP*	|op_contextualize|NN OP* o|I32 context
+p	|OP *	|sawparens	|NULLOK OP *o
 : Used in perly.y
-p	|OP*	|scalar		|NULLOK OP* o
-#if defined(PERL_IN_OP_C)
-S	|OP*	|scalarkids	|NULLOK OP* o
-S	|OP*	|voidnonfinal	|NULLOK OP* o
-#endif
+p	|OP *	|scalar 	|NULLOK OP *o
 : Used in pp_ctl.c
-p	|OP*	|scalarvoid	|NN OP* o
-Apd	|NV	|scan_bin	|NN const char* start|STRLEN len|NN STRLEN* retlen
-Apd	|NV	|scan_hex	|NN const char* start|STRLEN len|NN STRLEN* retlen
-Cp	|char*	|scan_num	|NN const char* s|NN YYSTYPE *lvalp
-Apd	|NV	|scan_oct	|NN const char* start|STRLEN len|NN STRLEN* retlen
-Axpd	|OP*	|op_scope	|NULLOK OP* o
-ApdRx	|OP*	|op_wrap_finally|NN OP *block|NN OP *finally
+p	|OP *	|scalarvoid	|NN OP *o
+Adp	|NV	|scan_bin	|NN const char *start			\
+				|STRLEN len				\
+				|NN STRLEN *retlen
+Adp	|NV	|scan_hex	|NN const char *start			\
+				|STRLEN len				\
+				|NN STRLEN *retlen
+Cp	|char * |scan_num	|NN const char *s			\
+				|NN YYSTYPE *lvalp
+Adp	|NV	|scan_oct	|NN const char *start			\
+				|STRLEN len				\
+				|NN STRLEN *retlen
+
+: For use ONLY in B::Hooks::Parser, by special dispensation
+ERXpx	|char * |scan_str	|NN char *start 			\
+				|int keep_quoted			\
+				|int keep_delims			\
+				|int re_reparse 			\
+				|NULLOK char **delimp
+Adp	|const char *|scan_version					\
+				|NN const char *s			\
+				|NN SV *rv				\
+				|bool qv
+Adp	|char * |scan_vstring	|NN const char *s			\
+				|NN const char * const e		\
+				|NN SV *sv
+EXpx	|char * |scan_word	|NN char *s				\
+				|NN char *dest				\
+				|STRLEN destlen 			\
+				|int allow_package			\
+				|NN STRLEN *slp
+EXpx	|char * |scan_word6	|NN char *s				\
+				|NN char *dest				\
+				|STRLEN destlen 			\
+				|int allow_package			\
+				|NN STRLEN *slp 			\
+				|bool warn_tick
+Cp	|U32	|seed
 : Only used by perl.c/miniperl.c, but defined in caretx.c
-pe	|void	|set_caret_X
-Apd	|void	|setdefout	|NN GV* gv
-Cp	|HEK*	|share_hek	|NN const char* str|SSize_t len|U32 hash
-#ifdef PERL_USE_3ARG_SIGHANDLER
-: Used in perl.c
-Tp	|Signal_t |sighandler	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
-CTp	|Signal_t |csighandler	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
-#else
-Tp	|Signal_t |sighandler	|int sig
-CTp	|Signal_t |csighandler	|int sig
-#endif
-Tp	|Signal_t |sighandler1	|int sig
-CTp	|Signal_t |csighandler1	|int sig
-Tp	|Signal_t |sighandler3	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
-CTp	|Signal_t |csighandler3	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
-CTp	|Signal_t |perly_sighandler	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap|bool safe
-Cp	|SV**	|stack_grow	|NN SV** sp|NN SV** p|SSize_t n
-Ap	|I32	|start_subparse	|I32 is_format|U32 flags
-Xp	|void	|init_named_cv	|NN CV *cv|NN OP *nameop
+ep	|void	|set_caret_X
+CTdp	|void	|set_context	|NN void *t
+Adp	|void	|setdefout	|NN GV *gv
+Tp	|void	|setfd_cloexec	|int fd
+p	|void	|setfd_cloexec_for_nonsysfd				\
+				|int fd
+p	|void	|setfd_cloexec_or_inhexec_by_sysfdness			\
+				|int fd
+Tp	|void	|setfd_inhexec	|int fd
+p	|void	|setfd_inhexec_for_sysfd				\
+				|int fd
+Xp	|void	|set_numeric_standard
+Xp	|void	|set_numeric_underlying
+Cp	|HEK *	|share_hek	|NN const char *str			\
+				|SSize_t len				\
+				|U32 hash
+Tp	|Signal_t|sighandler1	|int sig
+Tp	|Signal_t|sighandler3	|int sig				\
+				|NULLOK Siginfo_t *info 		\
+				|NULLOK void *uap
+CRTip	|unsigned|single_1bit_pos32					\
+				|U32 word
+ERXpx	|char * |skipspace_flags|NN char *s				\
+				|U32 flags
+RXp	|void * |Slab_Alloc	|size_t sz
+Xp	|void	|Slab_Free	|NN void *op
+Adp	|void	|sortsv 	|NULLOK SV **array			\
+				|size_t num_elts			\
+				|NN SVCOMPARE_t cmp
+Adp	|void	|sortsv_flags	|NULLOK SV **array			\
+				|size_t num_elts			\
+				|NN SVCOMPARE_t cmp			\
+				|U32 flags
+Cp	|SV **	|stack_grow	|NN SV **sp				\
+				|NN SV **p				\
+				|SSize_t n
+: Defined in doio.c, used only in pp_hot.c
+dopx	|PerlIO *|start_glob	|NN SV *tmpglob 			\
+				|NN IO *io
+Adp	|I32	|start_subparse |I32 is_format				\
+				|U32 flags
+CRp	|NV	|str_to_version |NN SV *sv
 : Used in pp_ctl.c
-p	|void	|sub_crush_depth|NN CV* cv
-CpbMd	|bool	|sv_2bool	|NN SV *const sv
-Cpd	|bool	|sv_2bool_flags	|NN SV *sv|I32 flags
-Apd	|CV*	|sv_2cv		|NULLOK SV* sv|NN HV **const st|NN GV **const gvp \
-				|const I32 lref
-Apd	|IO*	|sv_2io		|NN SV *const sv
-#if defined(PERL_IN_SV_C)
-S	|bool	|glob_2number	|NN GV* const gv
-#endif
-CpMb	|IV	|sv_2iv		|NN SV *sv
-Apd	|IV	|sv_2iv_flags	|NN SV *const sv|const I32 flags
-Apd	|SV*	|sv_2mortal	|NULLOK SV *const sv
-Apd	|NV	|sv_2nv_flags	|NN SV *const sv|const I32 flags
-: Used in pp.c, pp_hot.c, sv.c
-pxd	|SV*	|sv_2num	|NN SV *const sv
-ApdMb	|char*	|sv_2pv		|NN SV *sv|NULLOK STRLEN *lp
-Apd	|char*	|sv_2pv_flags	|NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags
-ApdMb	|char*	|sv_2pvutf8	|NN SV *sv|NULLOK STRLEN *const lp
-Apd	|char*	|sv_2pvutf8_flags	|NN SV *sv|NULLOK STRLEN *const lp|const U32 flags
-ApdMb	|char*	|sv_2pvbyte	|NN SV *sv|NULLOK STRLEN *const lp
-Apd	|char*	|sv_2pvbyte_flags	|NN SV *sv|NULLOK STRLEN *const lp|const U32 flags
-AbpD	|char*	|sv_pvn_nomg	|NN SV* sv|NULLOK STRLEN* lp
-CpMb	|UV	|sv_2uv		|NN SV *sv
-Apd	|UV	|sv_2uv_flags	|NN SV *const sv|const I32 flags
-CbpdD	|IV	|sv_iv		|NN SV* sv
-CbpdD	|UV	|sv_uv		|NN SV* sv
-CbpdD	|NV	|sv_nv		|NN SV* sv
-CbpdD	|char*	|sv_pvn		|NN SV *sv|NN STRLEN *lp
-CbpdD	|char*	|sv_pvutf8n	|NN SV *sv|NN STRLEN *lp
-CbpdD	|char*	|sv_pvbyten	|NN SV *sv|NN STRLEN *lp
-Cpd	|I32	|sv_true	|NULLOK SV *const sv
-#if defined(PERL_IN_SV_C)
-Sd	|void	|sv_add_arena	|NN char *const ptr|const U32 size \
-				|const U32 flags
-#endif
-ApdT	|void	|sv_backoff	|NN SV *const sv
-Apd	|SV*	|sv_bless	|NN SV *const sv|NN HV *const stash
-#if defined(PERL_DEBUG_READONLY_COW)
-p	|void	|sv_buf_to_ro	|NN SV *sv
-# if defined(PERL_IN_SV_C)
-S	|void	|sv_buf_to_rw	|NN SV *sv
-# endif
-#endif
-Afpd	|void	|sv_catpvf	|NN SV *const sv|NN const char *const pat|...
-Apd	|void	|sv_vcatpvf	|NN SV *const sv|NN const char *const pat \
-				|NULLOK va_list *const args
-Apd	|void	|sv_catpv	|NN SV *const dsv|NULLOK const char* sstr
-ApMdb	|void	|sv_catpvn	|NN SV *dsv|NN const char *sstr|STRLEN len
-ApMdb	|void	|sv_catsv	|NN SV *dsv|NULLOK SV *sstr
-Apd	|void	|sv_chop	|NN SV *const sv|NULLOK const char *const ptr
+p	|void	|sub_crush_depth|NN CV *cv
+Adp	|void	|suspend_compcv |NN struct suspended_compcv *buffer
+ATdip	|void	|SvAMAGIC_off	|NN SV *sv
+ATdip	|void	|SvAMAGIC_on	|NN SV *sv
+ATdp	|void	|sv_backoff	|NN SV * const sv
+Adp	|SV *	|sv_bless	|NN SV * const sv			\
+				|NN HV * const stash
+CMbdp	|bool	|sv_2bool	|NN SV * const sv
+Cdp	|bool	|sv_2bool_flags |NN SV *sv				\
+				|I32 flags
+Adp	|bool	|sv_cat_decode	|NN SV *dsv				\
+				|NN SV *encoding			\
+				|NN SV *ssv				\
+				|NN int *offset 			\
+				|NN char *tstr				\
+				|int tlen
+Adp	|void	|sv_catpv	|NN SV * const dsv			\
+				|NULLOK const char *sstr
+Adfp	|void	|sv_catpvf	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+Adp	|void	|sv_catpv_flags |NN SV *dsv				\
+				|NN const char *sstr			\
+				|const I32 flags
+Adfp	|void	|sv_catpvf_mg	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+Adp	|void	|sv_catpv_mg	|NN SV * const dsv			\
+				|NULLOK const char * const sstr
+AMbdp	|void	|sv_catpvn	|NN SV *dsv				\
+				|NN const char *sstr			\
+				|STRLEN len
+Adp	|void	|sv_catpvn_flags|NN SV * const dsv			\
+				|NN const char *sstr			\
+				|const STRLEN len			\
+				|const I32 flags
+AMbdp	|void	|sv_catpvn_mg	|NN SV *dsv				\
+				|NN const char *sstr			\
+				|STRLEN len
+AMbdp	|void	|sv_catsv	|NN SV *dsv				\
+				|NULLOK SV *sstr
+Adp	|void	|sv_catsv_flags |NN SV * const dsv			\
+				|NULLOK SV * const sstr 		\
+				|const I32 flags
+AMbdp	|void	|sv_catsv_mg	|NN SV *dsv				\
+				|NULLOK SV *sstr
+Adp	|void	|sv_chop	|NN SV * const sv			\
+				|NULLOK const char * const ptr
 : Used only in perl.c
-pd	|I32	|sv_clean_all
+dp	|I32	|sv_clean_all
 : Used only in perl.c
-pd	|void	|sv_clean_objs
-Apd	|void	|sv_clear	|NN SV *const orig_sv
-#if defined(PERL_IN_SV_C)
-S	|bool	|curse		|NN SV * const sv|const bool check_refcnt
-#endif
-AMpd	|I32	|sv_cmp		|NULLOK SV *const sv1|NULLOK SV *const sv2
-Apd	|I32	|sv_cmp_flags	|NULLOK SV *const sv1|NULLOK SV *const sv2 \
+dp	|void	|sv_clean_objs
+Adp	|void	|sv_clear	|NN SV * const orig_sv
+AMdp	|I32	|sv_cmp 	|NULLOK SV * const sv1			\
+				|NULLOK SV * const sv2
+Adp	|I32	|sv_cmp_flags	|NULLOK SV * const sv1			\
+				|NULLOK SV * const sv2			\
 				|const U32 flags
-AMpd	|I32	|sv_cmp_locale	|NULLOK SV *const sv1|NULLOK SV *const sv2
-Apd	|I32	|sv_cmp_locale_flags	|NULLOK SV *const sv1 \
-				|NULLOK SV *const sv2|const U32 flags
-#if defined(USE_LOCALE_COLLATE)
-ApbMd	|char*	|sv_collxfrm	|NN SV *const sv|NN STRLEN *const nxp
-Apd	|char*	|sv_collxfrm_flags	|NN SV *const sv|NN STRLEN *const nxp|I32 const flags
-#endif
-Apd	|int	|getcwd_sv	|NN SV* sv
-Apd	|void	|sv_dec		|NULLOK SV *const sv
-Apd	|void	|sv_dec_nomg	|NULLOK SV *const sv
-Apd	|void	|sv_dump	|NULLOK SV* sv
-ApdR	|bool	|sv_derived_from|NN SV* sv|NN const char *const name
-ApdR	|bool	|sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags
-ApdR	|bool	|sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
-ApdR	|bool	|sv_derived_from_pvn|NN SV* sv|NN const char *const name \
-                                    |const STRLEN len|U32 flags
-ApdRx	|bool	|sv_isa_sv	|NN SV* sv|NN SV* namesv
-ApdR	|bool	|sv_does	|NN SV* sv|NN const char *const name
-ApdR	|bool	|sv_does_sv	|NN SV* sv|NN SV* namesv|U32 flags
-ApdR	|bool	|sv_does_pv	|NN SV* sv|NN const char *const name|U32 flags
-ApdR	|bool	|sv_does_pvn	|NN SV* sv|NN const char *const name|const STRLEN len \
-                                |U32 flags
-ApbMd	|I32	|sv_eq		|NULLOK SV* sv1|NULLOK SV* sv2
-Apd	|I32	|sv_eq_flags	|NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
-Apd	|void	|sv_free	|NULLOK SV *const sv
-poxX	|void	|sv_free2	|NN SV *const sv|const U32 refcnt
+AMdp	|I32	|sv_cmp_locale	|NULLOK SV * const sv1			\
+				|NULLOK SV * const sv2
+Adp	|I32	|sv_cmp_locale_flags					\
+				|NULLOK SV * const sv1			\
+				|NULLOK SV * const sv2			\
+				|const U32 flags
+AMbdp	|void	|sv_copypv	|NN SV * const dsv			\
+				|NN SV * const ssv
+Adp	|void	|sv_copypv_flags|NN SV * const dsv			\
+				|NN SV * const ssv			\
+				|const I32 flags
+Adm	|void	|sv_copypv_nomg |NN SV * const dsv			\
+				|NN SV * const ssv
+Adp	|CV *	|sv_2cv 	|NULLOK SV *sv				\
+				|NN HV ** const st			\
+				|NN GV ** const gvp			\
+				|const I32 lref
+Adp	|void	|sv_dec 	|NULLOK SV * const sv
+Adp	|void	|sv_dec_nomg	|NULLOK SV * const sv
+
+Xp	|void	|sv_del_backref |NN SV * const tsv			\
+				|NN SV * const sv
+ARdp	|bool	|sv_derived_from|NN SV *sv				\
+				|NN const char * const name
+ARdp	|bool	|sv_derived_from_hv					\
+				|NN SV *sv				\
+				|NN HV *hv
+ARdp	|bool	|sv_derived_from_pv					\
+				|NN SV *sv				\
+				|NN const char * const name		\
+				|U32 flags
+ARdp	|bool	|sv_derived_from_pvn					\
+				|NN SV *sv				\
+				|NN const char * const name		\
+				|const STRLEN len			\
+				|U32 flags
+ARdp	|bool	|sv_derived_from_sv					\
+				|NN SV *sv				\
+				|NN SV *namesv				\
+				|U32 flags
+Adp	|bool	|sv_destroyable |NULLOK SV *sv
+ARdp	|bool	|sv_does	|NN SV *sv				\
+				|NN const char * const name
+ARdp	|bool	|sv_does_pv	|NN SV *sv				\
+				|NN const char * const name		\
+				|U32 flags
+ARdp	|bool	|sv_does_pvn	|NN SV *sv				\
+				|NN const char * const name		\
+				|const STRLEN len			\
+				|U32 flags
+ARdp	|bool	|sv_does_sv	|NN SV *sv				\
+				|NN SV *namesv				\
+				|U32 flags
+Adp	|void	|sv_dump	|NULLOK SV *sv
+Adp	|void	|sv_dump_depth	|NULLOK SV *sv				\
+				|I32 depth
+AMbdp	|I32	|sv_eq		|NULLOK SV *sv1 			\
+				|NULLOK SV *sv2
+Adp	|I32	|sv_eq_flags	|NULLOK SV *sv1 			\
+				|NULLOK SV *sv2 			\
+				|const U32 flags
+AMbdp	|void	|sv_force_normal|NN SV *sv
+Adp	|void	|sv_force_normal_flags					\
+				|NN SV * const sv			\
+				|const U32 flags
+Adp	|void	|sv_free	|NULLOK SV * const sv
+Xopx	|void	|sv_free2	|NN SV * const sv			\
+				|const U32 refcnt
 : Used only in perl.c
-pd	|void	|sv_free_arenas
-Apd	|char*	|sv_gets	|NN SV *const sv|NN PerlIO *const fp|I32 append
-Cpd	|char*	|sv_grow	|NN SV *const sv|STRLEN newlen
-Cpd	|char*	|sv_grow_fresh	|NN SV *const sv|STRLEN newlen
-Apd	|void	|sv_inc		|NULLOK SV *const sv
-Apd	|void	|sv_inc_nomg	|NULLOK SV *const sv
-ApMdb	|void	|sv_insert	|NN SV *const bigstr|const STRLEN offset \
-				|const STRLEN len|NN const char *const little \
+dp	|void	|sv_free_arenas
+ATdpx	|SV *	|sv_get_backrefs|NN SV * const sv
+Adip	|void	|SvGETMAGIC	|NN SV *sv
+Adp	|char * |sv_gets	|NN SV * const sv			\
+				|NN PerlIO * const fp			\
+				|I32 append
+Cdp	|char * |sv_grow	|NN SV * const sv			\
+				|STRLEN newlen
+Cdp	|char * |sv_grow_fresh	|NN SV * const sv			\
+				|STRLEN newlen
+Adp	|void	|sv_inc 	|NULLOK SV * const sv
+Adp	|void	|sv_inc_nomg	|NULLOK SV * const sv
+AMbdp	|void	|sv_insert	|NN SV * const bigstr			\
+				|const STRLEN offset			\
+				|const STRLEN len			\
+				|NN const char * const little		\
 				|const STRLEN littlelen
-Apd	|void	|sv_insert_flags|NN SV *const bigstr|const STRLEN offset|const STRLEN len \
-				|NN const char *little|const STRLEN littlelen|const U32 flags
-Apd	|int	|sv_isa		|NULLOK SV* sv|NN const char *const name
-Apd	|int	|sv_isobject	|NULLOK SV* sv
-Apd	|STRLEN	|sv_len		|NULLOK SV *const sv
-Apd	|STRLEN	|sv_len_utf8	|NULLOK SV *const sv
-Apd	|STRLEN	|sv_len_utf8_nomg|NN SV *const sv
-Apd	|void	|sv_magic	|NN SV *const sv|NULLOK SV *const obj|const int how \
-				|NULLOK const char *const name|const I32 namlen
-Apd	|MAGIC *|sv_magicext	|NN SV *const sv|NULLOK SV *const obj|const int how \
-				|NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
+Adp	|void	|sv_insert_flags|NN SV * const bigstr			\
+				|const STRLEN offset			\
+				|const STRLEN len			\
+				|NN const char *little			\
+				|const STRLEN littlelen 		\
+				|const U32 flags
+Adp	|IO *	|sv_2io 	|NN SV * const sv
+Adp	|int	|sv_isa 	|NULLOK SV *sv				\
+				|NN const char * const name
+ARdpx	|bool	|sv_isa_sv	|NN SV *sv				\
+				|NN SV *namesv
+Adp	|int	|sv_isobject	|NULLOK SV *sv
+Adip	|IV	|SvIV		|NN SV *sv
+CMbp	|IV	|sv_2iv 	|NN SV *sv
+Adp	|IV	|sv_2iv_flags	|NN SV * const sv			\
+				|const I32 flags
+Adip	|IV	|SvIV_nomg	|NN SV *sv
+Adp	|STRLEN |sv_len 	|NULLOK SV * const sv
+Adp	|STRLEN |sv_len_utf8	|NULLOK SV * const sv
+Adp	|STRLEN |sv_len_utf8_nomg					\
+				|NN SV * const sv
+Adp	|void	|sv_magic	|NN SV * const sv			\
+				|NULLOK SV * const obj			\
+				|const int how				\
+				|NULLOK const char * const name 	\
+				|const I32 namlen
+Adp	|MAGIC *|sv_magicext	|NN SV * const sv			\
+				|NULLOK SV * const obj			\
+				|const int how				\
+				|NULLOK const MGVTBL * const vtbl	\
+				|NULLOK const char * const name 	\
 				|const I32 namlen
-EiTp	|bool	|sv_only_taint_gmagic|NN SV *sv
 : exported for re.pm
-EXp	|MAGIC *|sv_magicext_mglob|NN SV *sv
-ApdbMR	|SV*	|sv_mortalcopy	|NULLOK SV *const oldsv
-ApdR	|SV*	|sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags
-ApdR	|SV*	|sv_newmortal
-Cpd	|SV*	|sv_newref	|NULLOK SV *const sv
-Amd	|bool	|sv_numeq	|NULLOK SV* sv1|NULLOK SV* sv2
-Apd	|bool	|sv_numeq_flags	|NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
-Cpd	|char*	|sv_peek	|NULLOK SV* sv
-Apd	|void	|sv_pos_u2b	|NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *const lenp
-Apd	|STRLEN	|sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \
-				|NULLOK STRLEN *const lenp|U32 flags
-Apd	|void	|sv_pos_b2u	|NULLOK SV *const sv|NN I32 *const offsetp
-Apd	|STRLEN	|sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \
-				 |U32 flags
-CpMdb	|char*	|sv_pvn_force	|NN SV* sv|NULLOK STRLEN* lp
-Cpd	|char*	|sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
-Cpd	|char*	|sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp
-Apd	|char*	|sv_recode_to_utf8	|NN SV* sv|NN SV *encoding
-Apd	|bool	|sv_cat_decode	|NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \
-				|NN char* tstr|int tlen
-ApdR	|const char*	|sv_reftype	|NN const SV *const sv|const int ob
-Apd	|SV*	|sv_ref	|NULLOK SV *dst|NN const SV *const sv|const int ob
-Apd	|void	|sv_replace	|NN SV *const sv|NN SV *const nsv
-Apd	|void	|sv_report_used
-Apd	|void	|sv_reset	|NN const char* s|NULLOK HV *const stash
-p	|void	|sv_resetpvn	|NULLOK const char* s|STRLEN len \
-				|NULLOK HV *const stash
-Afpd	|void	|sv_setpvf	|NN SV *const sv|NN const char *const pat|...
-Apd	|void	|sv_vsetpvf	|NN SV *const sv|NN const char *const pat|NULLOK va_list *const args
-Apd	|void	|sv_setiv	|NN SV *const sv|const IV num
-ApdbD	|void	|sv_setpviv	|NN SV *const sv|const IV num
-Apd	|void	|sv_setuv	|NN SV *const sv|const UV num
-Apd	|void	|sv_setnv	|NN SV *const sv|const NV num
-Apd	|SV*	|sv_setref_iv	|NN SV *const rv|NULLOK const char *const classname|const IV iv
-Apd	|SV*	|sv_setref_uv	|NN SV *const rv|NULLOK const char *const classname|const UV uv
-Apd	|SV*	|sv_setref_nv	|NN SV *const rv|NULLOK const char *const classname|const NV nv
-Apd	|SV*	|sv_setref_pv	|NN SV *const rv|NULLOK const char *const classname \
-				|NULLOK void *const pv
-Apd	|SV*	|sv_setref_pvn	|NN SV *const rv|NULLOK const char *const classname \
-				|NN const char *const pv|const STRLEN n
-Apd	|void	|sv_setpv	|NN SV *const sv|NULLOK const char *const ptr
-Apd	|void	|sv_setpvn	|NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
-Apd	|void	|sv_setpvn_fresh|NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
-Apd	|char  *|sv_setpv_bufsize|NN SV *const sv|const STRLEN cur|const STRLEN len
-Xp	|void	|sv_sethek	|NN SV *const sv|NULLOK const HEK *const hek
-Apd	|void	|sv_setrv_noinc	|NN SV *const sv|NN SV *const ref
-Apd	|void	|sv_setrv_inc	|NN SV *const sv|NN SV *const ref
-Apd	|void	|sv_setrv_noinc_mg	|NN SV *const sv|NN SV *const ref
-Apd	|void	|sv_setrv_inc_mg	|NN SV *const sv|NN SV *const ref
-ApMdb	|void	|sv_setsv	|NN SV *dsv|NULLOK SV *ssv
-Amd	|bool	|sv_streq	|NULLOK SV* sv1|NULLOK SV* sv2
-Apd	|bool	|sv_streq_flags	|NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
-CpMdb	|void	|sv_taint	|NN SV* sv
-CpdR	|bool	|sv_tainted	|NN SV *const sv
-Apd	|int	|sv_unmagic	|NN SV *const sv|const int type
-Apd	|int	|sv_unmagicext	|NN SV *const sv|const int type|NULLOK MGVTBL *vtbl
-ApdMb	|void	|sv_unref	|NN SV* sv
-Apd	|void	|sv_unref_flags	|NN SV *const ref|const U32 flags
-Cpd	|void	|sv_untaint	|NN SV *const sv
-Apd	|void	|sv_upgrade	|NN SV *const sv|svtype new_type
-ApdMb	|void	|sv_usepvn	|NN SV* sv|NULLOK char* ptr|STRLEN len
-Apd	|void	|sv_usepvn_flags|NN SV *const sv|NULLOK char* ptr|const STRLEN len\
-				|const U32 flags
-Apd	|void	|sv_vcatpvfn	|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
-				|NULLOK va_list *const args|NULLOK SV **const svargs|const Size_t sv_count \
-				|NULLOK bool *const maybe_tainted
-Apd	|void	|sv_vcatpvfn_flags|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
-				|NULLOK va_list *const args|NULLOK SV **const svargs|const Size_t sv_count \
-				|NULLOK bool *const maybe_tainted|const U32 flags
-Apd	|void	|sv_vsetpvfn	|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
-				|NULLOK va_list *const args|NULLOK SV **const svargs \
-				|const Size_t sv_count|NULLOK bool *const maybe_tainted
-CpR	|NV	|str_to_version	|NN SV *sv
-Cp	|void	|regdump	|NN const regexp* r
-CiTop	|struct regexp *|ReANY	|NN const REGEXP * const re
-Apdh	|I32	|pregexec	|NN REGEXP * const prog|NN char* stringarg \
-				|NN char* strend|NN char* strbeg \
-				|SSize_t minend |NN SV* screamer|U32 nosave
-Cp	|void	|pregfree	|NULLOK REGEXP* r
-Cp	|void	|pregfree2	|NN REGEXP *rx
-: FIXME - is anything in re using this now?
-EXp	|REGEXP*|reg_temp_copy	|NULLOK REGEXP* dsv|NN REGEXP* ssv
-Cp	|void	|regfree_internal|NN REGEXP *const rx
-#if defined(USE_ITHREADS)
-Cp	|void*	|regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
-#endif
-EXp	|regexp_engine const *|current_re_engine
-Apdh	|REGEXP*|pregcomp	|NN SV * const pattern|const U32 flags
-p	|REGEXP*|re_op_compile	|NULLOK SV ** const patternp \
-				|int pat_count|NULLOK OP *expr \
-				|NN const regexp_engine* eng \
-				|NULLOK REGEXP *old_re \
-				|NULLOK bool *is_bare_re \
-				|const U32 rx_flags|const U32 pm_flags
-Apd	|REGEXP*|re_compile	|NN SV * const pattern|U32 orig_rx_flags
-Cp	|char*	|re_intuit_start|NN REGEXP * const rx \
-				|NULLOK SV* sv \
-				|NN const char* const strbeg \
-				|NN char* strpos \
-				|NN char* strend \
-				|const U32 flags \
-				|NULLOK re_scream_pos_data *data
-Cp	|SV*	|re_intuit_string|NN REGEXP  *const r
-Cp	|I32	|regexec_flags	|NN REGEXP *const rx|NN char *stringarg \
-				|NN char *strend|NN char *strbeg \
-				|SSize_t minend|NN SV *sv \
-				|NULLOK void *data|U32 flags
-CpR	|regnode*|regnext	|NULLOK regnode* p
-EXp	|SV*|reg_named_buff          |NN REGEXP * const rx|NULLOK SV * const key \
-                                 |NULLOK SV * const value|const U32 flags
-EXp	|SV*|reg_named_buff_iter     |NN REGEXP * const rx|NULLOK const SV * const lastkey \
-                                 |const U32 flags
-Cp	|SV*|reg_named_buff_fetch    |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
-Cp	|bool|reg_named_buff_exists  |NN REGEXP * const rx|NN SV * const key|const U32 flags
-Cp	|SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
-Cp	|SV*|reg_named_buff_nextkey  |NN REGEXP * const rx|const U32 flags
-Cp	|SV*|reg_named_buff_scalar   |NN REGEXP * const rx|const U32 flags
-Cp	|SV*|reg_named_buff_all      |NN REGEXP * const rx|const U32 flags
-
-: FIXME - is anything in re using this now?
-EXp	|void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
-: FIXME - is anything in re using this now?
-EXp	|void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
-: FIXME - is anything in re using this now?
-EXp	|I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
+EXp	|MAGIC *|sv_magicext_mglob					\
+				|NN SV *sv
+Adp	|SV *	|sv_2mortal	|NULLOK SV * const sv
+AMRbdp	|SV *	|sv_mortalcopy	|NULLOK SV * const oldsv
+ARdp	|SV *	|sv_mortalcopy_flags					\
+				|NULLOK SV * const oldsv		\
+				|U32 flags
+ARdp	|SV *	|sv_newmortal
+Cdp	|SV *	|sv_newref	|NULLOK SV * const sv
+ADbdp	|void	|sv_nolocking	|NULLOK SV *sv
 
-: FIXME - is anything in re using this now?
-EXp	|SV*|reg_qr_package|NN REGEXP * const rx
-EXpRT	|I16	|do_uniprop_match|NN const char * const key|const U16 key_len
-EXpRT	|const char * const *|get_prop_values|const int table_index
-EXpR	|SV *	|get_prop_definition|const int table_index
-EXpRT	|const char *|get_deprecated_property_msg|const Size_t warning_offset
-#if defined(PERL_IN_REGCOMP_C)
-EiRT	|bool	|invlist_is_iterating|NN const SV* const invlist
-EiR	|SV*	|invlist_contents|NN SV* const invlist		    \
-				 |const bool traditional_style
-EixRT	|UV	|invlist_lowest|NN SV* const invlist
-ERS	|SV*	|make_exactf_invlist	|NN RExC_state_t *pRExC_state \
-					|NN regnode *node
-ES	|regnode_offset|reg_la_NOTHING	|NN RExC_state_t *pRExC_state \
-					|U32 flags|NN const char *type
-ES	|regnode_offset|reg_la_OPFAIL	|NN RExC_state_t *pRExC_state \
-					|U32 flags|NN const char *type
-ES	|regnode_offset|reg	|NN RExC_state_t *pRExC_state \
-				|I32 paren|NN I32 *flagp|U32 depth
-ES	|regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state          \
-				|const STRLEN extra_len
-#ifdef DEBUGGING
-ES	|regnode_offset|regnode_guts_debug|NN RExC_state_t *pRExC_state     \
-				|const U8 op				    \
-				|const STRLEN extra_len
-#endif
-ES	|void	|change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
-ES	|regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
-				|U32 arg
-ES	|regnode_offset|regpnode|NN RExC_state_t *pRExC_state|U8 op \
-				|NN SV * arg
-ES	|regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state		   \
-				|const U8 op				   \
-				|const U32 arg1				   \
-				|const I32 arg2
-ES	|regnode_offset|regatom	|NN RExC_state_t *pRExC_state \
-				|NN I32 *flagp|U32 depth
-ES	|regnode_offset|regbranch	|NN RExC_state_t *pRExC_state \
-				|NN I32 *flagp|I32 first|U32 depth
-ES	|void	 |set_ANYOF_arg	|NN RExC_state_t* const pRExC_state \
-				|NN regnode* const node                    \
-				|NULLOK SV* const cp_list                  \
-				|NULLOK SV* const runtime_defns		   \
-				|NULLOK SV* const only_utf8_locale_list
-ES	|void	|output_posix_warnings					    \
-				|NN RExC_state_t *pRExC_state		    \
-				|NN AV* posix_warnings
-EiT	|Size_t	 |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max
-ES	|AV*	 |add_multi_match|NULLOK AV* multi_char_matches		    \
-				|NN SV* multi_string			    \
-				|const STRLEN cp_count
-ES	|regnode_offset|regclass|NN RExC_state_t *pRExC_state                 \
-				|NN I32 *flagp|U32 depth|const bool stop_at_1 \
-				|bool allow_multi_fold                        \
-				|const bool silence_non_portable              \
-				|const bool strict                            \
-				|bool optimizable			      \
-				|NULLOK SV** ret_invlist
-ES	|U8|optimize_regclass	|NN RExC_state_t *pRExC_state		    \
-				|NULLOK SV* cp_list			    \
-				|NULLOK SV* only_utf8_locale_list	    \
-				|NULLOK SV* upper_latin1_only_utf8_matches  \
-				|const U32 has_runtime_dependency	    \
-				|const U32 posixl			    \
-				|NN U8 * anyof_flags			    \
-				|NN bool * invert			    \
-				|NN regnode_offset * ret		    \
-				|NN I32 *flagp
-ES	|SV *	|parse_uniprop_string|NN const char * const name	    \
-				     |Size_t name_len			    \
-				     |const bool is_utf8		    \
-				     |const bool to_fold		    \
-				     |const bool runtime		    \
-				     |const bool deferrable		    \
-				     |NULLOK AV ** strings		    \
-				     |NN bool * user_defined_ptr	    \
-				     |NN SV * msg			    \
-				     |const STRLEN level
-ES	|SV *	|handle_user_defined_property|NN const char * name	    \
-					     |const STRLEN name_len	    \
-					     |const bool is_utf8	    \
-					     |const bool to_fold	    \
-					     |const bool runtime	    \
-					     |const bool deferrable	    \
-					     |NN SV* contents		    \
-					     |NN bool *user_defined_ptr	    \
-					     |NN SV * msg		    \
-					     |const STRLEN level
-ERS	|REGEXP*|compile_wildcard|NN const char * subpattern|const STRLEN len\
-				 |const bool ignore_case
-ES	|I32	|execute_wildcard|NN REGEXP * const prog|NN char* stringarg \
-				|NN char* strend|NN char* strbeg \
-				|SSize_t minend |NN SV* screamer|U32 nosave
-ES	|bool	|handle_names_wildcard					    \
-				|NN const char * wname			    \
-				|const STRLEN wname_len			    \
-				|NN SV ** prop_definition		    \
-				|NN AV ** strings
-ES	|void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
-				|NN SV** invlist
-ES	|regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state   \
-				|NN I32 *flagp				    \
-				|NN char * backref_parse_start		    \
-				|char ch
-ESTR	|unsigned int|regex_set_precedence|const U8 my_operator
-ES	|regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \
-				|NULLOK SV ** return_invlist            \
-				|NN I32 *flagp|U32 depth
-ES	|void	|set_regex_pv	|NN RExC_state_t *pRExC_state|NN REGEXP *Rx
-#  if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
-ES	|void	|dump_regex_sets_structures				    \
-				|NN RExC_state_t *pRExC_state		    \
-				|NN AV * stack				    \
-				|const IV fence|NN AV * fence_stack
-#  endif
-ES	|void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
-ES	|regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op
-ES	|U32	|get_quantifier_value|NN RExC_state_t *pRExC_state	    \
-				|NN const char * start|NN const char * end
-ES	|regnode_offset|regpiece|NN RExC_state_t *pRExC_state \
-				|NN I32 *flagp|U32 depth
-ES	|bool	|grok_bslash_N	|NN RExC_state_t *pRExC_state		    \
-				|NULLOK regnode_offset* nodep		    \
-				|NULLOK UV *code_point_p		    \
-				|NULLOK int* cp_count			    \
-				|NN I32 *flagp				    \
-				|const bool strict			    \
-				|const U32 depth
-ES	|void	|reginsert	|NN RExC_state_t *pRExC_state \
-				|const U8 op				    \
-				|const regnode_offset operand		    \
-				|const U32 depth
-ESR	|bool	|regtail	|NN RExC_state_t * pRExC_state		    \
-				|NN const regnode_offset p		    \
-				|NN const regnode_offset val		    \
-				|const U32 depth
-ES	|SV *	|reg_scan_name	|NN RExC_state_t *pRExC_state \
+Adp	|void	|sv_nosharing	|NULLOK SV *sv
+ADbdp	|void	|sv_nounlocking |NULLOK SV *sv
+: Used in pp.c, pp_hot.c, sv.c
+dpx	|SV *	|sv_2num	|NN SV * const sv
+Adm	|bool	|sv_numeq	|NULLOK SV *sv1 			\
+				|NULLOK SV *sv2
+Adp	|bool	|sv_numeq_flags |NULLOK SV *sv1 			\
+				|NULLOK SV *sv2 			\
+				|const U32 flags
+Adip	|NV	|SvNV		|NN SV *sv
+Adp	|NV	|sv_2nv_flags	|NN SV * const sv			\
+				|const I32 flags
+Adip	|NV	|SvNV_nomg	|NN SV *sv
+ETip	|bool	|sv_only_taint_gmagic					\
+				|NN SV *sv
+Cdp	|char * |sv_peek	|NULLOK SV *sv
+Adp	|void	|sv_pos_b2u	|NULLOK SV * const sv			\
+				|NN I32 * const offsetp
+Adp	|STRLEN |sv_pos_b2u_flags					\
+				|NN SV * const sv			\
+				|STRLEN const offset			\
 				|U32 flags
-ES	|U32	|join_exact	|NN RExC_state_t *pRExC_state \
-				|NN regnode *scan|NN UV *min_subtract  \
-				|NN bool *unfolded_multi_char          \
-				|U32 flags|NULLOK regnode *val|U32 depth
-EST	|U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
-ES	|void	|nextchar	|NN RExC_state_t *pRExC_state
-ES	|void	|skip_to_be_ignored_text|NN RExC_state_t *pRExC_state  \
-				|NN char ** p			    \
-				|const bool force_to_xmod
-EiT	|char *	|reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
-ES	|void	|scan_commit	|NN const RExC_state_t *pRExC_state \
-				|NN struct scan_data_t *data        \
-				|NN SSize_t *minlenp		    \
-				|int is_inf
-ES	|void	|populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
-ES	|void	|ssc_anything	|NN regnode_ssc *ssc
-ESRT	|int	|ssc_is_anything|NN const regnode_ssc *ssc
-ES	|void	|ssc_init	|NN const RExC_state_t *pRExC_state \
-				|NN regnode_ssc *ssc
-ESRT	|int	|ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
-				|NN const regnode_ssc *ssc
-ES	|void	|ssc_and	|NN const RExC_state_t *pRExC_state \
-				|NN regnode_ssc *ssc                \
-				|NN const regnode_charclass *and_with
-ES	|void	|ssc_or		|NN const RExC_state_t *pRExC_state \
-				|NN regnode_ssc *ssc \
-				|NN const regnode_charclass *or_with
-ES	|SV*	|get_ANYOF_cp_list_for_ssc                                 \
-				|NN const RExC_state_t *pRExC_state \
-				|NN const regnode_charclass* const node
-ES	|void	|ssc_intersection|NN regnode_ssc *ssc \
-				|NN SV* const invlist|const bool invert_2nd
-ES	|void	|ssc_union	|NN regnode_ssc *ssc \
-				|NN SV* const invlist|const bool invert_2nd
-ES	|void	|ssc_add_range	|NN regnode_ssc *ssc \
-				|UV const start|UV const end
-ES	|void	|ssc_cp_and	|NN regnode_ssc *ssc \
-				|UV const cp
-EST	|void	|ssc_clear_locale|NN regnode_ssc *ssc
-ETS	|bool	|is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
-				|NN const regnode_ssc * ssc
-ES	|void	|ssc_finalize	|NN RExC_state_t *pRExC_state \
-				|NN regnode_ssc *ssc
-ES	|SSize_t|study_chunk	|NN RExC_state_t *pRExC_state \
-				|NN regnode **scanp|NN SSize_t *minlenp \
-				|NN SSize_t *deltap|NN regnode *last \
-				|NULLOK struct scan_data_t *data \
-                                |I32 stopparen|U32 recursed_depth \
-				|NULLOK regnode_ssc *and_withp \
-				|U32 flags|U32 depth|bool was_mutate_ok
-ES	|void	|rck_elide_nothing|NN regnode *node
-ESR	|SV *	|get_ANYOFM_contents|NN const regnode * n
-ESRT	|U32	|add_data	|NN RExC_state_t* const pRExC_state \
-				|NN const char* const s|const U32 n
-frS	|void	|re_croak	|bool utf8|NN const char* pat|...
-ES	|int	|handle_possible_posix					    \
-				|NN RExC_state_t *pRExC_state		    \
-				|NN const char* const s			    \
-				|NULLOK char ** updated_parse_ptr	    \
-				|NULLOK AV** posix_warnings		    \
-				|const bool check_only
-ES	|I32	|make_trie	|NN RExC_state_t *pRExC_state \
-				|NN regnode *startbranch|NN regnode *first \
-				|NN regnode *last|NN regnode *tail \
-				|U32 word_count|U32 flags|U32 depth
-ES	|regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
-                                |NN regnode *source|U32 depth
-ETSR	|int	|edit_distance	|NN const UV *src		    \
-				|NN const UV *tgt		    \
-				|const STRLEN x			    \
-				|const STRLEN y			    \
-				|const SSize_t maxDistance
-#  ifdef DEBUGGING
-EFp	|int	|re_indentf	|NN const char *fmt|U32 depth|...
-ES	|void        |regdump_intflags|NULLOK const char *lead| const U32 flags
-ES	|void	|regdump_extflags|NULLOK const char *lead| const U32 flags
-ES	|const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
-				|NN const regnode *node \
-				|NULLOK const regnode *last \
-				|NULLOK const regnode *plast \
-				|NN SV* sv|I32 indent|U32 depth
-ES	|void	|put_code_point	|NN SV* sv|UV c
-ES	|bool	|put_charclass_bitmap_innards|NN SV* sv		    \
-				|NULLOK char* bitmap		    \
-				|NULLOK SV* nonbitmap_invlist	    \
-				|NULLOK SV* only_utf8_locale_invlist\
-				|NULLOK const regnode * const node  \
-				|const U8 flags			    \
-				|const bool force_as_is_display
-ES	|SV*	|put_charclass_bitmap_innards_common		    \
-				|NN SV* invlist			    \
-				|NULLOK SV* posixes		    \
-				|NULLOK SV* only_utf8		    \
-				|NULLOK SV* not_utf8		    \
-				|NULLOK SV* only_utf8_locale	    \
-				|const bool invert
-ES	|void	|put_charclass_bitmap_innards_invlist		    \
-				|NN SV *sv			    \
-				|NN SV* invlist
-ES	|void	|put_range	|NN SV* sv|UV start|const UV end    \
-				|const bool allow_literals
-ES	|void	|dump_trie	|NN const struct _reg_trie_data *trie\
-				|NULLOK HV* widecharmap|NN AV *revcharmap\
-				|U32 depth
-ES	|void	|dump_trie_interim_list|NN const struct _reg_trie_data *trie\
-				|NULLOK HV* widecharmap|NN AV *revcharmap\
-				|U32 next_alloc|U32 depth
-ES	|void	|dump_trie_interim_table|NN const struct _reg_trie_data *trie\
-				|NULLOK HV* widecharmap|NN AV *revcharmap\
-				|U32 next_alloc|U32 depth
-ESR	|bool	|regtail_study	|NN RExC_state_t *pRExC_state \
-				|NN regnode_offset p|NN const regnode_offset val|U32 depth
-#  endif
-#  ifndef PERL_EXT_RE_BUILD
-EiRT	|UV*	|_invlist_array_init	|NN SV* const invlist|const bool will_have_0
-EiRT	|UV	|invlist_max	|NN const SV* const invlist
-EiRT	|IV*	|get_invlist_previous_index_addr|NN SV* invlist
-EiT	|void	|invlist_set_previous_index|NN SV* const invlist|const IV index
-EiRT	|IV	|invlist_previous_index|NN SV* const invlist
-EiT	|void	|invlist_trim	|NN SV* invlist
-Ei	|void	|invlist_clear	|NN SV* invlist
-ES	|void	|_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
-ES	|void	|invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
-S	|void	|initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
-#  endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
-EiR	|SV*	|add_cp_to_invlist	|NULLOK SV* invlist|const UV cp
-Ei	|void	|invlist_extend    |NN SV* const invlist|const UV len
-Ei	|void	|invlist_set_len|NN SV* const invlist|const UV len|const bool offset
-EiRT	|UV	|invlist_highest|NN SV* const invlist
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
-m	|void	|_invlist_intersection	|NN SV* const a|NN SV* const b|NN SV** i
-EXp	|void	|_invlist_intersection_maybe_complement_2nd \
-		|NULLOK SV* const a|NN SV* const b          \
-		|const bool complement_b|NN SV** i
-Cm	|void	|_invlist_union	|NULLOK SV* const a|NN SV* const b|NN SV** output
-EXp	|void	|_invlist_union_maybe_complement_2nd        \
-		|NULLOK SV* const a|NN SV* const b          \
-		|const bool complement_b|NN SV** output
-m	|void	|_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
-EXp	|void	|_invlist_invert|NN SV* const invlist
-EXpR	|SV*	|_new_invlist	|IV initial_size
-EXpR	|SV*	|_add_range_to_invlist	|NULLOK SV* invlist|UV start|UV end
-EXpR	|SV*	|_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
-EpRX	|bool	|grok_bslash_x	|NN char** s			\
-				|NN const char* const send	\
-				|NN UV* uv			\
-				|NN const char** message	\
-				|NULLOK U32 * packed_warn	\
-				|const bool strict		\
-				|const bool allow_UV_MAX	\
-				|const bool utf8
-EpRX	|bool	|grok_bslash_c	|const char source		\
-				|NN U8 * result			\
-				|NN const char** message	\
-				|NULLOK U32 * packed_warn
-EpRX	|bool	|grok_bslash_o	|NN char** s			\
-				|NN const char* const send	\
-				|NN UV* uv			\
-				|NN const char** message        \
-				|NULLOK U32 * packed_warn	\
-				|const bool strict              \
-				|const bool allow_UV_MAX	\
-				|const bool utf8
-EpRX	|const char *|form_alien_digit_msg|const U8 which	\
-				|const STRLEN valids_len	\
-				|NN const char * const first_bad\
-				|NN const char * const send	\
-				|const bool UTF			\
-				|const bool braced
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
-EpRX	|const char *|form_cp_too_large_msg|const U8 which	\
-				|NULLOK const char * string	\
-				|const Size_t len		\
-				|const UV cp
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
-EXp	|void	|_invlist_dump	|NN PerlIO *file|I32 level   \
-				|NN const char* const indent \
-				|NN SV* const invlist
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-EiRT	|STRLEN*|get_invlist_iter_addr	|NN SV* invlist
-EiT	|void	|invlist_iterinit|NN SV* invlist
-EiRT	|bool	|invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EiT	|void	|invlist_iterfinish|NN SV* invlist
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-EXpR	|SV*	|_new_invlist_C_array|NN const UV* const list
-EXp	|bool	|_invlistEQ	|NN SV* const a|NN SV* const b|const bool complement_b
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-EiT	|const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)	\
- || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)		\
- || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)		\
- || defined(PERL_IN_DOOP_C)
-EiRT	|UV*	|invlist_array	|NN SV* const invlist
-EiRT	|bool	|is_invlist	|NULLOK const SV* const invlist
-EiRT	|bool*	|get_invlist_offset_addr|NN SV* invlist
-EiRT	|UV	|_invlist_len	|NN SV* const invlist
-EiRT	|bool	|_invlist_contains_cp|NN SV* const invlist|const UV cp
-EXpRT	|SSize_t|_invlist_search	|NN SV* const invlist|const UV cp
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#  ifndef PERL_EXT_RE_BUILD
-Ep	|SV*	|get_regclass_nonbitmap_data				   \
-				|NULLOK const regexp *prog		   \
-				|NN const struct regnode *node		   \
-				|bool doinit				   \
-				|NULLOK SV **listsvp			   \
-				|NULLOK SV **lonly_utf8_locale		   \
-				|NULLOK SV **output_invlist
-#  else
-Ep	|SV*	|get_re_gclass_nonbitmap_data				   \
-				|NULLOK const regexp *prog		   \
-				|NN const struct regnode *node		   \
-				|bool doinit				   \
-				|NULLOK SV **listsvp			   \
-				|NULLOK SV **lonly_utf8_locale		   \
-				|NULLOK SV **output_invlist
-#endif
-Ep	|void	|regprop	|NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
-				|NULLOK const RExC_state_t *pRExC_state
-Efp	|int	|re_printf	|NN const char *fmt|...
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
-ERp	|bool	|is_grapheme	|NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-EXTp	|UV	|_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-EpX	|SV*	|invlist_clone	|NN SV* const invlist|NULLOK SV* newlist
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EXpRT	|bool	|regcurly	|NN const char *s|NN const char *e|NULLOK const char * result[5]
-#endif
-#if defined(PERL_IN_REGEXEC_C)
-ERS	|bool	|isFOO_utf8_lc	|const U8 classnum|NN const U8* character|NN const U8* e
-ERTS	|U8 *	|find_next_masked|NN U8 * s				\
-				 |NN const U8 * send			\
-				 |const U8 byte|const U8 mask
-ERTS	|U8 *|find_span_end	|NN U8* s|NN const U8 * send|const U8 span_byte
-ERTS	|U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send	\
-				|const U8 span_byte|const U8 mask
-ERS	|SSize_t|regmatch	|NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-WERS	|I32	|regrepeat	|NN regexp *prog|NN char **startposp \
-				|NN const regnode *p \
-				|NN char *loceol		\
-				|NN regmatch_info *const reginfo \
-				|I32 max
-ERS	|bool	|regtry		|NN regmatch_info *reginfo|NN char **startposp
-ERS	|bool	|reginclass	|NULLOK regexp * const prog  \
-				|NN const regnode * const n  \
-				|NN const U8 * const p       \
-				|NN const U8 * const p_end   \
-				|bool const utf8_target
-WES	|CHECKPOINT|regcppush	|NN const regexp *rex|I32 parenfloor\
-				|U32 maxopenparen
-WES	|void	|regcppop	|NN regexp *rex|NN U32 *maxopenparen_p
-WES	|void	|regcp_restore	|NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
-ERST	|U8*	|reghop3	|NN U8 *s|SSize_t off|NN const U8 *lim
-ERST	|U8*	|reghop4	|NN U8 *s|SSize_t off|NN const U8 *llim \
-				|NN const U8 *rlim
-ERST	|U8*	|reghopmaybe3	|NN U8 *s|SSize_t off|NN const U8 * const lim
-ERS	|char*	|find_byclass	|NN regexp * prog|NN const regnode *c \
-				|NN char *s|NN const char *strend \
-				|NULLOK regmatch_info *reginfo
-ES	|void	|to_utf8_substr	|NN regexp * prog
-ES	|bool	|to_byte_substr	|NN regexp * prog
-ERST	|I32	|reg_check_named_buff_matched	|NN const regexp *rex \
-						|NN const regnode *scan
-ESR	|bool	|isGCB		|const GCB_enum before			\
-				|const GCB_enum after			\
-				|NN const U8 * const strbeg		\
-				|NN const U8 * const curpos		\
-				|const bool utf8_target
-ESR	|GCB_enum|backup_one_GCB|NN const U8 * const strbeg			\
-				|NN U8 ** curpos				\
-				|const bool utf8_target
-ESR	|bool	|isLB		|LB_enum before				\
-				|LB_enum after				\
-				|NN const U8 * const strbeg		\
-				|NN const U8 * const curpos		\
-				|NN const U8 * const strend		\
-				|const bool utf8_target
-ESR	|LB_enum|advance_one_LB |NN U8 ** curpos				\
-				|NN const U8 * const strend			\
-				|const bool utf8_target
-ESR	|LB_enum|backup_one_LB  |NN const U8 * const strbeg			\
-				|NN U8 ** curpos				\
-				|const bool utf8_target
-ESR	|bool	|isSB		|SB_enum before				\
-				|SB_enum after				\
-				|NN const U8 * const strbeg			\
-				|NN const U8 * const curpos			\
-				|NN const U8 * const strend			\
-				|const bool utf8_target
-ESR	|SB_enum|advance_one_SB |NN U8 ** curpos				\
-				|NN const U8 * const strend			\
-				|const bool utf8_target
-ESR	|SB_enum|backup_one_SB  |NN const U8 * const strbeg			\
-				|NN U8 ** curpos				\
-				|const bool utf8_target
-ESR	|bool	|isWB		|WB_enum previous				\
-				|WB_enum before				\
-				|WB_enum after				\
-				|NN const U8 * const strbeg			\
-				|NN const U8 * const curpos			\
-				|NN const U8 * const strend			\
-				|const bool utf8_target
-ESR	|WB_enum|advance_one_WB |NN U8 ** curpos				\
-				|NN const U8 * const strend			\
-				|const bool utf8_target				\
-				|const bool skip_Extend_Format
-ESR	|WB_enum|backup_one_WB  |NN WB_enum * previous			\
-				|NN const U8 * const strbeg			\
-				|NN U8 ** curpos				\
-				|const bool utf8_target
-EiT	|I32	|foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len
-#  ifdef DEBUGGING
-ES	|void	|dump_exec_pos	|NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
-				|NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth
-ES	|void	|debug_start_match|NN const REGEXP *prog|const bool do_utf8\
-				|NN const char *start|NN const char *end\
-				|NN const char *blurb
-
-EFp	|int	|re_exec_indentf|NN const char *fmt|U32 depth|...
-#  endif
-#endif
-#if defined(PERL_IN_REGEXEC_C)
-ESR	|bool	|isFOO_lc	|const U8 classnum|const U8 character
-#endif
-
-Cpd	|void	|taint_env
-Cpd	|void	|taint_proper	|NULLOK const char* f|NN const char *const s
-EXp	|char *	|_byte_dump_string					\
-				|NN const U8 * const start		\
-				|const STRLEN len			\
-				|const bool format
-
-#if defined(PERL_IN_UTF8_C)
-iTR	|int	|does_utf8_overflow|NN const U8 * const s		\
-				   |NN const U8 * e			\
-				   |const bool consider_overlongs
-iTR	|int	|is_utf8_overlong|NN const U8 * const s			\
+Adp	|void	|sv_pos_u2b	|NULLOK SV * const sv			\
+				|NN I32 * const offsetp 		\
+				|NULLOK I32 * const lenp
+Adp	|STRLEN |sv_pos_u2b_flags					\
+				|NN SV * const sv			\
+				|STRLEN uoffset 			\
+				|NULLOK STRLEN * const lenp		\
+				|U32 flags
+AMbdp	|char * |sv_2pv 	|NN SV *sv				\
+				|NULLOK STRLEN *lp
+CMRbdp	|char * |sv_pv		|NN SV *sv
+AMbdp	|char * |sv_2pvbyte	|NN SV *sv				\
+				|NULLOK STRLEN * const lp
+CMRbdp	|char * |sv_pvbyte	|NN SV *sv
+Adp	|char * |sv_2pvbyte_flags					\
+				|NN SV *sv				\
+				|NULLOK STRLEN * const lp		\
+				|const U32 flags
+Cdp	|char * |sv_pvbyten_force					\
+				|NN SV * const sv			\
+				|NULLOK STRLEN * const lp
+ip	|char * |sv_pvbyten_force_wrapper				\
+				|NN SV * const sv			\
+				|NULLOK STRLEN * const lp		\
+				|const U32 dummy
+CMRbdp	|char * |sv_2pvbyte_nolen					\
+				|NN SV *sv
+Adp	|char * |sv_2pv_flags	|NN SV * const sv			\
+				|NULLOK STRLEN * const lp		\
+				|const U32 flags
+CMbdp	|char * |sv_pvn_force	|NN SV *sv				\
+				|NULLOK STRLEN *lp
+Adp	|char * |sv_pvn_force_flags					\
+				|NN SV * const sv			\
+				|NULLOK STRLEN * const lp		\
+				|const U32 flags
+CMRbdp	|char * |sv_2pv_nolen	|NN SV *sv
+AMbdp	|char * |sv_2pvutf8	|NN SV *sv				\
+				|NULLOK STRLEN * const lp
+CMRbdp	|char * |sv_pvutf8	|NN SV *sv
+Adp	|char * |sv_2pvutf8_flags					\
+				|NN SV *sv				\
+				|NULLOK STRLEN * const lp		\
+				|const U32 flags
+Cdp	|char * |sv_pvutf8n_force					\
+				|NN SV * const sv			\
+				|NULLOK STRLEN * const lp
+ip	|char * |sv_pvutf8n_force_wrapper				\
+				|NN SV * const sv			\
+				|NULLOK STRLEN * const lp		\
+				|const U32 dummy
+CMRbdp	|char * |sv_2pvutf8_nolen					\
+				|NN SV *sv
+AIdp	|bool	|SvPVXtrue	|NN SV *sv
+Adp	|char * |sv_recode_to_utf8					\
+				|NN SV *sv				\
+				|NN SV *encoding
+Adp	|SV *	|sv_ref 	|NULLOK SV *dst 			\
+				|NN const SV * const sv 		\
+				|const int ob
+AMdip	|void	|SvREFCNT_dec	|NULLOK SV *sv
+AMdip	|void	|SvREFCNT_dec_NN|NN SV *sv
+Adip	|SV *	|SvREFCNT_dec_ret_NULL					\
+				|NULLOK SV *sv
+Adm	|void	|SvREFCNT_dec_set_NULL					\
+				|NULLOK SV *sv
+AMTdip	|SV *	|SvREFCNT_inc	|NULLOK SV *sv
+AMTdip	|SV *	|SvREFCNT_inc_NN|NN SV *sv
+AMTdip	|void	|SvREFCNT_inc_void					\
+				|NULLOK SV *sv
+ARdp	|const char *|sv_reftype|NN const SV * const sv 		\
+				|const int ob
+Adp	|void	|sv_replace	|NN SV * const sv			\
+				|NN SV * const nsv
+Adp	|void	|sv_report_used
+Adp	|void	|sv_reset	|NN const char *s			\
+				|NULLOK HV * const stash
+p	|void	|sv_resetpvn	|NULLOK const char *s			\
+				|STRLEN len				\
+				|NULLOK HV * const stash
+Adp	|SV *	|sv_rvunweaken	|NN SV * const sv
+Adp	|SV *	|sv_rvweaken	|NN SV * const sv
+Adp	|void	|sv_set_bool	|NN SV *sv				\
+				|const bool bool_val
+Adp	|void	|sv_set_false	|NN SV *sv
+Xp	|void	|sv_sethek	|NN SV * const sv			\
+				|NULLOK const HEK * const hek
+Adp	|void	|sv_setiv	|NN SV * const sv			\
+				|const IV num
+Adp	|void	|sv_setiv_mg	|NN SV * const sv			\
+				|const IV i
+Adp	|void	|sv_setnv	|NN SV * const sv			\
+				|const NV num
+Adp	|void	|sv_setnv_mg	|NN SV * const sv			\
+				|const NV num
+Adp	|void	|sv_setpv	|NN SV * const sv			\
+				|NULLOK const char * const ptr
+Adp	|char  *|sv_setpv_bufsize					\
+				|NN SV * const sv			\
+				|const STRLEN cur			\
 				|const STRLEN len
-iTR	|int	|isFF_overlong	|NN const U8 * const s|const STRLEN len
-SR	|char *	|unexpected_non_continuation_text			\
-		|NN const U8 * const s					\
-		|STRLEN print_len					\
-		|const STRLEN non_cont_byte_pos				\
-		|const STRLEN expect_len
-#if 0	/* Not currently used, but may be needed in the future */
-S	|void	|warn_on_first_deprecated_use				    \
-				|NN const char * const name		    \
-				|NN const char * const alternative	    \
-				|const bool use_locale			    \
-				|NN const char * const file		    \
-				|const unsigned line
-#endif
-S	|UV	|to_case_cp_list|const UV original				\
-				|NULLOK const U32 ** const remaining_list	\
-				|NULLOK Size_t * remaining_count		\
-				|NN SV *invlist					\
-				|NN const I32 * const invmap			\
-				|NULLOK const U32 * const * const aux_tables	\
-				|NULLOK const U8 * const aux_table_lengths	\
-				|NN const char * const normal
-S	|UV	|_to_utf8_case  |const UV original				\
-				|NULLOK const U8 *p				\
-				|NN U8* ustrp					\
-				|NN STRLEN *lenp				\
-				|NN SV *invlist					\
-				|NN const I32 * const invmap			\
-				|NULLOK const U32 * const * const aux_tables	\
-				|NULLOK const U8 * const aux_table_lengths	\
-				|NN const char * const normal
-S	|UV	|turkic_fc	|NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
-S	|UV	|turkic_lc	|NN const U8 * const p0|NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
-S	|UV	|turkic_uc	|NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
-#endif
-Cp	|UV	|_to_utf8_lower_flags|NN const U8 *p|NULLOK const U8* e		\
-				|NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
-Cp	|UV	|_to_utf8_upper_flags	|NN const U8 *p|NULLOK const U8 *e	\
-				|NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
-Cp	|UV	|_to_utf8_title_flags	|NN const U8 *p|NULLOK const U8* e	\
-				|NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
-Cp	|UV	|_to_utf8_fold_flags|NN const U8 *p|NULLOK const U8 *e		\
-				|NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
-#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-pT	|bool	|translate_substr_offsets|STRLEN curlen|IV pos1_iv \
-					 |bool pos1_is_uv|IV len_iv \
-					 |bool len_is_uv|NN STRLEN *posp \
-					 |NN STRLEN *lenp
-#endif
-#if defined(UNLINK_ALL_VERSIONS)
-Cp	|I32	|unlnk		|NN const char* f
-#endif
-AbpdD	|SSize_t|unpack_str	|NN const char *pat|NN const char *patend|NN const char *s \
-				|NULLOK const char *strbeg|NN const char *strend|NULLOK char **new_s \
-				|I32 ocnt|U32 flags
-Apd	|SSize_t|unpackstring	|NN const char *pat|NN const char *patend|NN const char *s \
-				|NN const char *strend|U32 flags
-Cpd	|void	|unsharepvn	|NULLOK const char* sv|I32 len|U32 hash
+Adfp	|void	|sv_setpvf	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+Adfp	|void	|sv_setpvf_mg	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+Cipx	|char  *|sv_setpv_freshbuf					\
+				|NN SV * const sv
+Adp	|void	|sv_setpv_mg	|NN SV * const sv			\
+				|NULLOK const char * const ptr
+Adp	|void	|sv_setpvn	|NN SV * const sv			\
+				|NULLOK const char * const ptr		\
+				|const STRLEN len
+Adp	|void	|sv_setpvn_fresh|NN SV * const sv			\
+				|NULLOK const char * const ptr		\
+				|const STRLEN len
+Adp	|void	|sv_setpvn_mg	|NN SV * const sv			\
+				|NN const char * const ptr		\
+				|const STRLEN len
+Adp	|SV *	|sv_setref_iv	|NN SV * const rv			\
+				|NULLOK const char * const classname	\
+				|const IV iv
+Adp	|SV *	|sv_setref_nv	|NN SV * const rv			\
+				|NULLOK const char * const classname	\
+				|const NV nv
+Adp	|SV *	|sv_setref_pv	|NN SV * const rv			\
+				|NULLOK const char * const classname	\
+				|NULLOK void * const pv
+Adp	|SV *	|sv_setref_pvn	|NN SV * const rv			\
+				|NULLOK const char * const classname	\
+				|NN const char * const pv		\
+				|const STRLEN n
+Adp	|SV *	|sv_setref_uv	|NN SV * const rv			\
+				|NULLOK const char * const classname	\
+				|const UV uv
+Adp	|void	|sv_setrv_inc	|NN SV * const sv			\
+				|NN SV * const ref
+Adp	|void	|sv_setrv_inc_mg|NN SV * const sv			\
+				|NN SV * const ref
+Adp	|void	|sv_setrv_noinc |NN SV * const sv			\
+				|NN SV * const ref
+Adp	|void	|sv_setrv_noinc_mg					\
+				|NN SV * const sv			\
+				|NN SV * const ref
+AMbdp	|void	|sv_setsv	|NN SV *dsv				\
+				|NULLOK SV *ssv
+Adp	|void	|sv_setsv_flags |NN SV *dsv				\
+				|NULLOK SV *ssv 			\
+				|const I32 flags
+Adp	|void	|sv_setsv_mg	|NN SV * const dsv			\
+				|NULLOK SV * const ssv
+Adp	|void	|sv_set_true	|NN SV *sv
+
+Adp	|void	|sv_set_undef	|NN SV *sv
+Adp	|void	|sv_setuv	|NN SV * const sv			\
+				|const UV num
+Adp	|void	|sv_setuv_mg	|NN SV * const sv			\
+				|const UV u
+Adm	|bool	|sv_streq	|NULLOK SV *sv1 			\
+				|NULLOK SV *sv2
+Adp	|bool	|sv_streq_flags |NULLOK SV *sv1 			\
+				|NULLOK SV *sv2 			\
+				|const U32 flags
+Adp	|SV *	|sv_string_from_errnum					\
+				|int errnum				\
+				|NULLOK SV *tgtsv
+CMbdp	|void	|sv_taint	|NN SV *sv
+CRdp	|bool	|sv_tainted	|NN SV * const sv
+Adip	|bool	|SvTRUE 	|NULLOK SV *sv
+Cdp	|I32	|sv_true	|NULLOK SV * const sv
+Cip	|bool	|SvTRUE_common	|NN SV *sv				\
+				|const bool sv_2bool_is_fallback
+Adip	|bool	|SvTRUE_NN	|NN SV *sv
+Adip	|bool	|SvTRUE_nomg	|NULLOK SV *sv
+ARdp	|char * |sv_uni_display |NN SV *dsv				\
+				|NN SV *ssv				\
+				|STRLEN pvlim				\
+				|UV flags
+Adp	|int	|sv_unmagic	|NN SV * const sv			\
+				|const int type
+Adp	|int	|sv_unmagicext	|NN SV * const sv			\
+				|const int type 			\
+				|NULLOK const MGVTBL *vtbl
+AMbdp	|void	|sv_unref	|NN SV *sv
+Adp	|void	|sv_unref_flags |NN SV * const ref			\
+				|const U32 flags
+Cdp	|void	|sv_untaint	|NN SV * const sv
+Adp	|void	|sv_upgrade	|NN SV * const sv			\
+				|svtype new_type
+AMbdp	|void	|sv_usepvn	|NN SV *sv				\
+				|NULLOK char *ptr			\
+				|STRLEN len
+Adp	|void	|sv_usepvn_flags|NN SV * const sv			\
+				|NULLOK char *ptr			\
+				|const STRLEN len			\
+				|const U32 flags
+AMbdp	|void	|sv_usepvn_mg	|NN SV *sv				\
+				|NULLOK char *ptr			\
+				|STRLEN len
+Adp	|bool	|sv_utf8_decode |NN SV * const sv
+AMbdp	|bool	|sv_utf8_downgrade					\
+				|NN SV * const sv			\
+				|const bool fail_ok
+Adp	|bool	|sv_utf8_downgrade_flags				\
+				|NN SV * const sv			\
+				|const bool fail_ok			\
+				|const U32 flags
+Adm	|bool	|sv_utf8_downgrade_nomg 				\
+				|NN SV * const sv			\
+				|const bool fail_ok
+Adp	|void	|sv_utf8_encode |NN SV * const sv
+AMbdp	|STRLEN |sv_utf8_upgrade|NN SV *sv
+Adm	|STRLEN |sv_utf8_upgrade_flags					\
+				|NN SV * const sv			\
+				|const I32 flags
+Adp	|STRLEN |sv_utf8_upgrade_flags_grow				\
+				|NN SV * const sv			\
+				|const I32 flags			\
+				|STRLEN extra
+Adm	|STRLEN |sv_utf8_upgrade_nomg					\
+				|NN SV *sv
+Adip	|UV	|SvUV		|NN SV *sv
+CMbp	|UV	|sv_2uv 	|NN SV *sv
+Adp	|UV	|sv_2uv_flags	|NN SV * const sv			\
+				|const I32 flags
+Adip	|UV	|SvUV_nomg	|NN SV *sv
+Adp	|void	|sv_vcatpvf	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|NULLOK va_list * const args
+Adp	|void	|sv_vcatpvf_mg	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|NULLOK va_list * const args
+Adp	|void	|sv_vcatpvfn	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|const STRLEN patlen			\
+				|NULLOK va_list * const args		\
+				|NULLOK SV ** const svargs		\
+				|const Size_t sv_count			\
+				|NULLOK bool * const maybe_tainted
+Adp	|void	|sv_vcatpvfn_flags					\
+				|NN SV * const sv			\
+				|NN const char * const pat		\
+				|const STRLEN patlen			\
+				|NULLOK va_list * const args		\
+				|NULLOK SV ** const svargs		\
+				|const Size_t sv_count			\
+				|NULLOK bool * const maybe_tainted	\
+				|const U32 flags
+Adp	|void	|sv_vsetpvf	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|NULLOK va_list * const args
+Adp	|void	|sv_vsetpvf_mg	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|NULLOK va_list * const args
+Adp	|void	|sv_vsetpvfn	|NN SV * const sv			\
+				|NN const char * const pat		\
+				|const STRLEN patlen			\
+				|NULLOK va_list * const args		\
+				|NULLOK SV ** const svargs		\
+				|const Size_t sv_count			\
+				|NULLOK bool * const maybe_tainted
+Adp	|void	|switch_to_global_locale
+Adp	|bool	|sync_locale
+CTop	|void	|sys_init	|NN int *argc				\
+				|NN char ***argv
+CTop	|void	|sys_init3	|NN int *argc				\
+				|NN char ***argv			\
+				|NN char ***env
+CTop	|void	|sys_term
+
+Cdp	|void	|taint_env
+Cdp	|void	|taint_proper	|NULLOK const char *f			\
+				|NN const char * const s
+Apx	|void	|thread_locale_init
+Apx	|void	|thread_locale_term
+
+Fp	|OP *	|tied_method	|NN SV *methname			\
+				|NN SV **sp				\
+				|NN SV * const sv			\
+				|NN const MAGIC * const mg		\
+				|const U32 flags			\
+				|U32 argc				\
+				|...
+Xp	|SSize_t|tmps_grow_p	|SSize_t ix
+Xiop	|I32	|TOPMARK
+Cm	|UV	|to_uni_fold	|UV c					\
+				|NN U8 *p				\
+				|NN STRLEN *lenp
+Cp	|UV	|_to_uni_fold_flags					\
+				|UV c					\
+				|NN U8 *p				\
+				|NN STRLEN *lenp			\
+				|U8 flags
+Cp	|UV	|to_uni_lower	|UV c					\
+				|NN U8 *p				\
+				|NN STRLEN *lenp
+Cp	|UV	|to_uni_title	|UV c					\
+				|NN U8 *p				\
+				|NN STRLEN *lenp
+Cp	|UV	|to_uni_upper	|UV c					\
+				|NN U8 *p				\
+				|NN STRLEN *lenp
+Cp	|UV	|_to_utf8_fold_flags					\
+				|NN const U8 *p 			\
+				|NULLOK const U8 *e			\
+				|NN U8 *ustrp				\
+				|NULLOK STRLEN *lenp			\
+				|U8 flags
+
+Cp	|UV	|_to_utf8_lower_flags					\
+				|NN const U8 *p 			\
+				|NULLOK const U8 *e			\
+				|NN U8 *ustrp				\
+				|NULLOK STRLEN *lenp			\
+				|bool flags
+Cp	|UV	|_to_utf8_title_flags					\
+				|NN const U8 *p 			\
+				|NULLOK const U8 *e			\
+				|NN U8 *ustrp				\
+				|NULLOK STRLEN *lenp			\
+				|bool flags
+Cp	|UV	|_to_utf8_upper_flags					\
+				|NN const U8 *p 			\
+				|NULLOK const U8 *e			\
+				|NN U8 *ustrp				\
+				|NULLOK STRLEN *lenp			\
+				|bool flags
+
+EXop	|bool	|try_amagic_bin |int method				\
+				|int flags
+EXop	|bool	|try_amagic_un	|int method				\
+				|int flags
+Adp	|SSize_t|unpackstring	|NN const char *pat			\
+				|NN const char *patend			\
+				|NN const char *s			\
+				|NN const char *strend			\
+				|U32 flags
 : Used in gv.c, hv.c
-p	|void	|unshare_hek	|NULLOK HEK* hek
+Cp	|void	|unshare_hek	|NULLOK HEK *hek
+Cdp	|void	|unsharepvn	|NULLOK const char *sv			\
+				|I32 len				\
+				|U32 hash
+Adp	|SV *	|upg_version	|NN SV *ver				\
+				|bool qv
+ARdip	|IV	|utf8_distance	|NN const U8 *a 			\
+				|NN const U8 *b
+ARTdip	|U8 *	|utf8_hop	|NN const U8 *s 			\
+				|SSize_t off
+ARTdip	|U8 *	|utf8_hop_back	|NN const U8 *s 			\
+				|SSize_t off				\
+				|NN const U8 *start
+ARTdip	|U8 *	|utf8_hop_forward					\
+				|NN const U8 *s 			\
+				|SSize_t off				\
+				|NN const U8 *end
+ARTdip	|U8 *	|utf8_hop_safe	|NN const U8 *s 			\
+				|SSize_t off				\
+				|NN const U8 *start			\
+				|NN const U8 *end
+ARdp	|STRLEN |utf8_length	|NN const U8 *s0			\
+				|NN const U8 *e
+
+AMTdp	|UV	|utf8n_to_uvchr |NN const U8 *s 			\
+				|STRLEN curlen				\
+				|NULLOK STRLEN *retlen			\
+				|const U32 flags
+AMTdp	|UV	|utf8n_to_uvchr_error					\
+				|NN const U8 *s 			\
+				|STRLEN curlen				\
+				|NULLOK STRLEN *retlen			\
+				|const U32 flags			\
+				|NULLOK U32 *errors
+ATdip	|UV	|utf8n_to_uvchr_msgs					\
+				|NN const U8 *s 			\
+				|STRLEN curlen				\
+				|NULLOK STRLEN *retlen			\
+				|const U32 flags			\
+				|NULLOK U32 *errors			\
+				|NULLOK AV **msgs
+CTp	|UV	|_utf8n_to_uvchr_msgs_helper				\
+				|NN const U8 *s 			\
+				|STRLEN curlen				\
+				|NULLOK STRLEN *retlen			\
+				|const U32 flags			\
+				|NULLOK U32 *errors			\
+				|NULLOK AV **msgs
+CDbdp	|UV	|utf8n_to_uvuni |NN const U8 *s 			\
+				|STRLEN curlen				\
+				|NULLOK STRLEN *retlen			\
+				|U32 flags
+Adpx	|U8 *	|utf8_to_bytes	|NN U8 *s				\
+				|NN STRLEN *lenp
+EMXp	|U8 *	|utf16_to_utf8	|NN U8 *p				\
+				|NN U8 *d				\
+				|Size_t bytelen 			\
+				|NN Size_t *newlen
+EXp	|U8 *	|utf16_to_utf8_base					\
+				|NN U8 *p				\
+				|NN U8 *d				\
+				|Size_t bytelen 			\
+				|NN Size_t *newlen			\
+				|const bool high			\
+				|const bool low
+EXpx	|U8 *	|utf8_to_utf16_base					\
+				|NN U8 *s				\
+				|NN U8 *d				\
+				|Size_t bytelen 			\
+				|NN Size_t *newlen			\
+				|const bool high			\
+				|const bool low
+EMXp	|U8 *	|utf16_to_utf8_reversed 				\
+				|NN U8 *p				\
+				|NN U8 *d				\
+				|Size_t bytelen 			\
+				|NN Size_t *newlen
+ADbdp	|UV	|utf8_to_uvchr	|NN const U8 *s 			\
+				|NULLOK STRLEN *retlen
+AMdp	|UV	|utf8_to_uvchr_buf					\
+				|NN const U8 *s 			\
+				|NN const U8 *send			\
+				|NULLOK STRLEN *retlen
+Cip	|UV	|utf8_to_uvchr_buf_helper				\
+				|NN const U8 *s 			\
+				|NN const U8 *send			\
+				|NULLOK STRLEN *retlen
+CDbdp	|UV	|utf8_to_uvuni	|NN const U8 *s 			\
+				|NULLOK STRLEN *retlen
 : Used in perly.y
-p	|void	|utilize	|int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg
-Cp	|void	|_force_out_malformed_utf8_message			    \
-		|NN const U8 *const p|NN const U8 * const e|const U32 flags \
-		|const bool die_here
-EXp	|U8*	|utf16_to_utf8_base|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen	\
-				|const bool high|const bool low
-EMXp	|U8*	|utf16_to_utf8	|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
-EMXp	|U8*	|utf16_to_utf8_reversed|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
-EXpx	|U8*	|utf8_to_utf16_base|NN U8* s|NN U8 *d|Size_t bytelen|NN Size_t *newlen	\
-				|const bool high|const bool low
-AdpR	|STRLEN	|utf8_length	|NN const U8* s|NN const U8 *e
-AipdR	|IV	|utf8_distance	|NN const U8 *a|NN const U8 *b
-AipdRT	|U8*	|utf8_hop	|NN const U8 *s|SSize_t off
-AipdRT	|U8*	|utf8_hop_back|NN const U8 *s|SSize_t off|NN const U8 *start
-AipdRT	|U8*	|utf8_hop_forward|NN const U8 *s|SSize_t off|NN const U8 *end
-AipdRT	|U8*	|utf8_hop_safe	|NN const U8 *s|SSize_t off|NN const U8 *start|NN const U8 *end
-Apxd	|U8*	|utf8_to_bytes	|NN U8 *s|NN STRLEN *lenp
-Apd	|int	|bytes_cmp_utf8	|NN const U8 *b|STRLEN blen|NN const U8 *u \
-				|STRLEN ulen
-AMxdp	|U8*	|bytes_from_utf8|NN const U8 *s|NN STRLEN *lenp|NN bool *is_utf8p
-CxTdp	|U8*	|bytes_from_utf8_loc|NN const U8 *s			    \
-				    |NN STRLEN *lenp			    \
-				    |NN bool *is_utf8p			    \
-				    |NULLOK const U8 ** first_unconverted
-Apxd	|U8*	|bytes_to_utf8	|NN const U8 *s|NN STRLEN *lenp
-ApdDb	|UV	|utf8_to_uvchr	|NN const U8 *s|NULLOK STRLEN *retlen
-CbpdD	|UV	|utf8_to_uvuni	|NN const U8 *s|NULLOK STRLEN *retlen
-CbpD	|UV	|valid_utf8_to_uvuni	|NN const U8 *s|NULLOK STRLEN *retlen
-AMpd	|UV	|utf8_to_uvchr_buf	|NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
-Cip	|UV	|utf8_to_uvchr_buf_helper|NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
-CpdD	|UV	|utf8_to_uvuni_buf	|NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
-p	|bool	|check_utf8_print	|NN const U8 *s|const STRLEN len
-
-AdMTp	|UV	|utf8n_to_uvchr	|NN const U8 *s				    \
-				|STRLEN curlen				    \
-				|NULLOK STRLEN *retlen			    \
-				|const U32 flags
-AdMTp	|UV	|utf8n_to_uvchr_error|NN const U8 *s			    \
-				|STRLEN curlen				    \
-				|NULLOK STRLEN *retlen			    \
-				|const U32 flags			    \
-				|NULLOK U32 * errors
-ATdip	|UV	|utf8n_to_uvchr_msgs|NN const U8 *s			    \
-				|STRLEN curlen				    \
-				|NULLOK STRLEN *retlen			    \
-				|const U32 flags			    \
-				|NULLOK U32 * errors			    \
-				|NULLOK AV ** msgs
-CTp	|UV	|_utf8n_to_uvchr_msgs_helper				    \
-				|NN const U8 *s				    \
-				|STRLEN curlen				    \
-				|NULLOK STRLEN *retlen			    \
-				|const U32 flags			    \
-				|NULLOK U32 * errors			    \
-				|NULLOK AV ** msgs
-CipTRd	|UV	|valid_utf8_to_uvchr	|NN const U8 *s|NULLOK STRLEN *retlen
-CdbDp	|UV	|utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
-
-Adm	|U8*	|uvchr_to_utf8	|NN U8 *d|UV uv
-Cp	|U8*	|uvuni_to_utf8	|NN U8 *d|UV uv
-Adm	|U8*	|uvchr_to_utf8_flags	|NN U8 *d|UV uv|UV flags
-Adm	|U8*	|uvchr_to_utf8_flags_msgs|NN U8 *d|UV uv|UV flags|NULLOK HV ** msgs
-CMpd	|U8*	|uvoffuni_to_utf8_flags	|NN U8 *d|UV uv|UV flags
-Cp	|U8*	|uvoffuni_to_utf8_flags_msgs|NN U8 *d|UV input_uv|const UV flags|NULLOK HV** msgs
-CdpbD	|U8*	|uvuni_to_utf8_flags	|NN U8 *d|UV uv|UV flags
-Apd	|char*	|pv_uni_display	|NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
-ApdR	|char*	|sv_uni_display	|NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
-EXpR	|Size_t	|_inverse_folds	|const UV cp				    \
-				|NN U32 * first_folds_to		    \
-				|NN const U32 ** remaining_folds_to
+p	|void	|utilize	|int aver				\
+				|I32 floor				\
+				|NULLOK OP *version			\
+				|NN OP *idop				\
+				|NULLOK OP *arg
+
+Adm	|U8 *	|uvchr_to_utf8	|NN U8 *d				\
+				|UV uv
+Adm	|U8 *	|uvchr_to_utf8_flags					\
+				|NN U8 *d				\
+				|UV uv					\
+				|UV flags
+Adm	|U8 *	|uvchr_to_utf8_flags_msgs				\
+				|NN U8 *d				\
+				|UV uv					\
+				|UV flags				\
+				|NULLOK HV **msgs
+CMdp	|U8 *	|uvoffuni_to_utf8_flags 				\
+				|NN U8 *d				\
+				|UV uv					\
+				|UV flags
+Cp	|U8 *	|uvoffuni_to_utf8_flags_msgs				\
+				|NN U8 *d				\
+				|UV input_uv				\
+				|const UV flags 			\
+				|NULLOK HV **msgs
+Cp	|U8 *	|uvuni_to_utf8	|NN U8 *d				\
+				|UV uv
+EXdpx	|bool	|validate_proto |NN SV *name				\
+				|NULLOK SV *proto			\
+				|bool warn				\
+				|bool curstash
+CRTdip	|UV	|valid_utf8_to_uvchr					\
+				|NN const U8 *s 			\
+				|NULLOK STRLEN *retlen
+Adp	|int	|vcmp		|NN SV *lhv				\
+				|NN SV *rhv
+Adpr	|void	|vcroak 	|NULLOK const char *pat 		\
+				|NULLOK va_list *args
+Adp	|void	|vdeb		|NN const char *pat			\
+				|NULLOK va_list *args
+Adp	|char * |vform		|NN const char *pat			\
+				|NULLOK va_list *args
 : Used by Data::Alias
-EXp	|void	|vivify_defelem	|NN SV* sv
+EXp	|void	|vivify_defelem |NN SV *sv
 : Used in pp.c
-pR	|SV*	|vivify_ref	|NN SV* sv|U32 to_what
+Rp	|SV *	|vivify_ref	|NN SV *sv				\
+				|U32 to_what
+Adp	|void	|vload_module	|U32 flags				\
+				|NN SV *name				\
+				|NULLOK SV *ver 			\
+				|NULLOK va_list *args
+Adp	|SV *	|vmess		|NN const char *pat			\
+				|NULLOK va_list *args
+ARdp	|SV *	|vnewSVpvf	|NN const char * const pat		\
+				|NULLOK va_list * const args
+Adp	|SV *	|vnormal	|NN SV *vs
+Adp	|SV *	|vnumify	|NN SV *vs
+Adp	|SV *	|vstringify	|NN SV *vs
+Adp	|SV *	|vverify	|NN SV *vs
+Adp	|void	|vwarn		|NN const char *pat			\
+				|NULLOK va_list *args
+Adp	|void	|vwarner	|U32 err				\
+				|NN const char *pat			\
+				|NULLOK va_list *args
 : Used in pp_sys.c
-p	|I32	|wait4pid	|Pid_t pid|NN int* statusp|int flags
-: Used in locale.c and perl.c
-p	|U32	|parse_unicode_opts|NN const char **popt
-Cp	|U32	|seed
-XpTo	|double	|drand48_r	|NN perl_drand48_t *random_state
-XpTo	|void	|drand48_init_r |NN perl_drand48_t *random_state|U32 seed
-: Only used in perl.c
-p	|void	|get_hash_seed  |NN unsigned char * const seed_buffer
-p	|void	|debug_hash_seed|bool via_debug_h
-: Used in doio.c, pp_hot.c, pp_sys.c
-p	|void	|report_evil_fh	|NULLOK const GV *gv
-: Used in doio.c, pp_hot.c, pp_sys.c
-p	|void	|report_wrongway_fh|NULLOK const GV *gv|const char have
-: Used in mg.c, pp.c, pp_hot.c, regcomp.c
-XEpd	|void	|report_uninit	|NULLOK const SV *uninit_sv
-#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
-p	|void	|report_redefined_cv|NN const SV *name \
-				    |NN const CV *old_cv \
-				    |NULLOK SV * const *new_const_svp
-#endif
-Apd	|void	|warn_sv	|NN SV *baseex
-Afpd	|void	|warn		|NN const char* pat|...
-Apd	|void	|vwarn		|NN const char* pat|NULLOK va_list* args
-Adfp	|void	|warner		|U32 err|NN const char* pat|...
-Adfp	|void	|ck_warner	|U32 err|NN const char* pat|...
-Adfp	|void	|ck_warner_d	|U32 err|NN const char* pat|...
-Adp	|void	|vwarner	|U32 err|NN const char* pat|NULLOK va_list* args
-#ifdef USE_C_BACKTRACE
-pd	|Perl_c_backtrace*|get_c_backtrace|int max_depth|int skip
-dm	|void	|free_c_backtrace|NN Perl_c_backtrace* bt
-Apd	|SV*	|get_c_backtrace_dump|int max_depth|int skip
-Apd	|bool	|dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip
-#endif
+p	|I32	|wait4pid	|Pid_t pid				\
+				|NN int *statusp			\
+				|int flags
+Adfp	|void	|warn		|NN const char *pat			\
+				|...
+Adfp	|void	|warner 	|U32 err				\
+				|NN const char *pat			\
+				|...
+TXp	|void	|_warn_problematic_locale
+Adp	|void	|warn_sv	|NN SV *baseex
+: Used in cop.h
+RXop	|I32	|was_lvalue_sub
 : FIXME
-p	|void	|watch		|NN char** addr
-Amd	|I32	|whichsig	|NN const char* sig
-Apd	|I32    |whichsig_sv    |NN SV* sigsv
-Apd	|I32    |whichsig_pv    |NN const char* sig
-Apd	|I32    |whichsig_pvn   |NN const char* sig|STRLEN len
-: used to check for NULs in pathnames and other names
-AiRdp	|bool	|is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name
-#ifdef PERL_CORE
-iTR	|bool	|should_warn_nl|NN const char *pv
-#endif
+p	|void	|watch		|NN char **addr
+Adm	|I32	|whichsig	|NN const char *sig
+Adp	|I32	|whichsig_pv	|NN const char *sig
+Adp	|I32	|whichsig_pvn	|NN const char *sig			\
+				|STRLEN len
+Adp	|I32	|whichsig_sv	|NN SV *sigsv
+Adpx	|void	|wrap_infix_plugin					\
+				|NN Perl_infix_plugin_t new_plugin	\
+				|NN Perl_infix_plugin_t *old_plugin_p
+Adpx	|void	|wrap_keyword_plugin					\
+				|NN Perl_keyword_plugin_t new_plugin	\
+				|NN Perl_keyword_plugin_t *old_plugin_p
+Adp	|void	|wrap_op_checker|Optype opcode				\
+				|NN Perl_check_t new_checker		\
+				|NN Perl_check_t *old_checker_p
 : Used in pp_ctl.c
-p	|void	|write_to_stderr|NN SV* msv
+p	|void	|write_to_stderr|NN SV *msv
+Xp	|void	|xs_boot_epilog |const I32 ax
+
+FTXop	|I32	|xs_handshake	|const U32 key				\
+				|NN void *v_my_perl			\
+				|NN const char *file			\
+				|...
 : Used in op.c
-p	|int	|yyerror	|NN const char *const s
-p	|void	|yyquit
-pr	|void	|abort_execution|NN const char * const msg|NN const char * const name
-p	|int	|yyerror_pv	|NN const char *const s|U32 flags
-p	|int	|yyerror_pvn	|NULLOK const char *const s|STRLEN len|U32 flags
+p	|int	|yyerror	|NN const char * const s
+p	|int	|yyerror_pv	|NN const char * const s		\
+				|U32 flags
+p	|int	|yyerror_pvn	|NULLOK const char * const s		\
+				|STRLEN len				\
+				|U32 flags
 : Used in perly.y, and by Data::Alias
 EXp	|int	|yylex
-p	|void	|yyunlex
 : Used in perl.c, pp_ctl.c
 p	|int	|yyparse	|int gramtype
-: Only used in scope.c
-p	|void	|parser_free	|NN const yy_parser *parser
-#ifdef PERL_CORE
-p	|void	|parser_free_nexttoke_ops|NN yy_parser *parser \
-					 |NN OPSLAB *slab
+p	|void	|yyquit
+p	|void	|yyunlex
+#if defined(DEBUGGING)
+: Used in mg.c
+Rp	|int	|get_debug_opts |NN const char **s			\
+				|bool givehelp
+Adop	|void	|hv_assert	|NN HV *hv
+Cdp	|void	|pad_setsv	|PADOFFSET po				\
+				|NN SV *sv
+Cdp	|SV *	|pad_sv 	|PADOFFSET po
+TXp	|void	|set_padlist	|NN CV *cv				\
+				|NULLOK PADLIST *padlist
 #endif
-#if defined(PERL_IN_TOKE_C)
-S	|int	|yywarn		|NN const char *const s|U32 flags
+#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+: Used in sv.c
+p	|void	|dump_sv_child	|NN SV *sv
 #endif
-#if defined(MYMALLOC)
-Apd	|void	|dump_mstats	|NN const char* s
-Cp	|int	|get_mstats	|NN perl_mstats_t *buf|int buflen|int level
+#if !defined(EBCDIC)
+CRTip	|unsigned int|variant_byte_number				\
+				|PERL_UINTMAX_T word
+#endif
+#if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
+ARdp	|I32	|my_chsize	|int fd 				\
+				|Off_t length
+#endif
+#if !defined(HAS_GETENV_LEN)
+: Used in hv.c
+p	|char * |getenv_len	|NN const char *env_elem		\
+				|NN unsigned long *len
+#endif
+#if !defined(HAS_MKOSTEMP)
+Tdop	|int	|my_mkostemp	|NN char *templte			\
+				|int flags
+#endif
+#if !defined(HAS_MKSTEMP)
+Tdop	|int	|my_mkstemp	|NN char *templte
+#endif
+#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+: Defined in doio.c, used only in pp_sys.c
+p	|I32	|do_ipcctl	|I32 optype				\
+				|NN SV **mark				\
+				|NN SV **sp
+: Defined in doio.c, used only in pp_sys.c
+p	|I32	|do_ipcget	|I32 optype				\
+				|NN SV **mark				\
+				|NN SV **sp
+: Defined in doio.c, used only in pp_sys.c
+p	|I32	|do_msgrcv	|NN SV **mark				\
+				|NN SV **sp
+: Defined in doio.c, used only in pp_sys.c
+p	|I32	|do_msgsnd	|NN SV **mark				\
+				|NN SV **sp
+: Defined in doio.c, used only in pp_sys.c
+p	|I32	|do_semop	|NN SV **mark				\
+				|NN SV **sp
+: Defined in doio.c, used only in pp_sys.c
+p	|I32	|do_shmio	|I32 optype				\
+				|NN SV **mark				\
+				|NN SV **sp
+#endif /* defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) */
+#if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H)
+ATdo	|const char *|Perl_langinfo					\
+				|const nl_item item
+ATdo	|const char *|Perl_langinfo8					\
+				|const nl_item item			\
+				|NULLOK utf8ness_t *utf8ness
+#else
+ATdo	|const char *|Perl_langinfo					\
+				|const int item
+ATdo	|const char *|Perl_langinfo8					\
+				|const int item 			\
+				|NULLOK utf8ness_t *utf8ness
+#endif
+#if defined(HAS_PIPE)
+Rp	|int	|PerlProc_pipe_cloexec					\
+				|NN int *pipefd
+#endif
+#if !defined(HAS_RENAME)
+: Used in pp_sys.c
+p	|I32	|same_dirent	|NN const char *a			\
+				|NN const char *b
+#endif
+#if !defined(HAS_SIGNBIT)
+APTdox	|int	|Perl_signbit	|NV f
+#endif
+#if defined(HAS_SOCKET)
+Rp	|int	|PerlSock_accept_cloexec				\
+				|int listenfd				\
+				|NULLOK struct sockaddr *addr		\
+				|NULLOK Sock_size_t *addrlen
+Rp	|int	|PerlSock_socket_cloexec				\
+				|int domain				\
+				|int type				\
+				|int protocol
+#endif
+#if   defined(HAS_SOCKETPAIR) ||                                     \
+    ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
+      defined(SOCK_DGRAM) )
+Rp	|int	|PerlSock_socketpair_cloexec				\
+				|int domain				\
+				|int type				\
+				|int protocol				\
+				|NN int *pairfd
+#endif
+#if !defined(HAS_STRLCAT)
+ATdip	|Size_t |my_strlcat	|NULLOK char *dst			\
+				|NULLOK const char *src 		\
+				|Size_t size
+#endif
+#if !defined(HAS_STRLCPY)
+ATds	|Size_t |my_strlcpy	|NULLOK char *dst			\
+				|NULLOK const char *src 		\
+				|Size_t size
+#endif
+#if !defined(HAS_STRNLEN)
+ATdip	|Size_t |my_strnlen	|NN const char *str			\
+				|Size_t maxlen
 #endif
-ATdpa	|Malloc_t|safesysmalloc	|MEM_SIZE nbytes
-ATdpa	|Malloc_t|safesyscalloc	|MEM_SIZE elements|MEM_SIZE size
-ATdpR	|Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
-AdTp	|Free_t	|safesysfree	|Malloc_t where
-CrTp	|void	|croak_memory_wrap
-Cpdh	|int	|runops_standard
-Cpdh	|int	|runops_debug
-Afpd	|void	|sv_catpvf_mg	|NN SV *const sv|NN const char *const pat|...
-Apd	|void	|sv_vcatpvf_mg	|NN SV *const sv|NN const char *const pat \
-				|NULLOK va_list *const args
-Apd	|void	|sv_catpv_mg	|NN SV *const dsv|NULLOK const char *const sstr
-ApdbM	|void	|sv_catpvn_mg	|NN SV *dsv|NN const char *sstr|STRLEN len
-ApdbM	|void	|sv_catsv_mg	|NN SV *dsv|NULLOK SV *sstr
-Afpd	|void	|sv_setpvf_mg	|NN SV *const sv|NN const char *const pat|...
-Apd	|void	|sv_vsetpvf_mg	|NN SV *const sv|NN const char *const pat \
-				|NULLOK va_list *const args
-Apd	|void	|sv_setiv_mg	|NN SV *const sv|const IV i
-ApdbD	|void	|sv_setpviv_mg	|NN SV *const sv|const IV iv
-Apd	|void	|sv_setuv_mg	|NN SV *const sv|const UV u
-Apd	|void	|sv_setnv_mg	|NN SV *const sv|const NV num
-Apd	|void	|sv_setpv_mg	|NN SV *const sv|NULLOK const char *const ptr
-Apd	|void	|sv_setpvn_mg	|NN SV *const sv|NN const char *const ptr|const STRLEN len
-Apd	|void	|sv_setsv_mg	|NN SV *const dsv|NULLOK SV *const ssv
-ApdbM	|void	|sv_usepvn_mg	|NN SV *sv|NULLOK char *ptr|STRLEN len
-CpRx	|MGVTBL*|get_vtbl	|int vtbl_id
-Apd	|char*	|pv_display	|NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \
-				|STRLEN pvlim
-Apd	|char*	|pv_escape	|NULLOK SV *dsv|NN char const * const str\
-                                |const STRLEN count|const STRLEN max\
-                                |NULLOK STRLEN * const escaped\
-                                |const U32 flags
-Apd	|char*  |pv_pretty      |NN SV *dsv|NN char const * const str\
-                                |const STRLEN count|const STRLEN max\
-                                |NULLOK char const * const start_color\
-                                |NULLOK char const * const end_color\
-                                |const U32 flags
-Cfp	|void	|dump_indent	|I32 level|NN PerlIO *file|NN const char* pat|...
-Cp	|void	|dump_vindent	|I32 level|NN PerlIO *file|NN const char* pat \
-				|NULLOK va_list *args
-Cp	|void	|do_gv_dump	|I32 level|NN PerlIO *file|NN const char *name\
-				|NULLOK GV *sv
-Cp	|void	|do_gvgv_dump	|I32 level|NN PerlIO *file|NN const char *name\
-				|NULLOK GV *sv
-Cp	|void	|do_hv_dump	|I32 level|NN PerlIO *file|NN const char *name\
-				|NULLOK HV *sv
-Cp	|void	|do_magic_dump	|I32 level|NN PerlIO *file|NULLOK const MAGIC *mg|I32 nest \
-				|I32 maxnest|bool dumpops|STRLEN pvlim
-Cp	|void	|do_op_dump	|I32 level|NN PerlIO *file|NULLOK const OP *o
-Cp	|void	|do_pmop_dump	|I32 level|NN PerlIO *file|NULLOK const PMOP *pm
-Cp	|void	|do_sv_dump	|I32 level|NN PerlIO *file|NULLOK SV *sv|I32 nest \
-				|I32 maxnest|bool dumpops|STRLEN pvlim
-Apd	|void	|magic_dump	|NULLOK const MAGIC *mg
-Cp	|void	|reginitcolors
-CpdRMb	|char*	|sv_2pv_nolen	|NN SV* sv
-CpdRMb	|char*	|sv_2pvutf8_nolen|NN SV* sv
-CpdRMb	|char*	|sv_2pvbyte_nolen|NN SV* sv
-CpMdbR	|char*	|sv_pv		|NN SV *sv
-CpMdbR	|char*	|sv_pvutf8	|NN SV *sv
-CpMdbR	|char*	|sv_pvbyte	|NN SV *sv
-ApMdb	|STRLEN	|sv_utf8_upgrade|NN SV *sv
-Amd	|STRLEN	|sv_utf8_upgrade_nomg|NN SV *sv
-ApdMb	|bool	|sv_utf8_downgrade|NN SV *const sv|const bool fail_ok
-Amd	|bool	|sv_utf8_downgrade_nomg|NN SV *const sv|const bool fail_ok
-Apd	|bool	|sv_utf8_downgrade_flags|NN SV *const sv|const bool fail_ok|const U32 flags
-Apd	|void	|sv_utf8_encode |NN SV *const sv
-Apd	|bool	|sv_utf8_decode |NN SV *const sv
-ApdMb	|void	|sv_force_normal|NN SV *sv
-Apd	|void	|sv_force_normal_flags|NN SV *const sv|const U32 flags
-pX	|SSize_t|tmps_grow_p	|SSize_t ix
-Apd	|SV*	|sv_rvweaken	|NN SV *const sv
-Apd	|SV*	|sv_rvunweaken	|NN SV *const sv
-ATpxd	|SV*	|sv_get_backrefs|NN SV *const sv
-AiTMdp	|SV *	|SvREFCNT_inc	|NULLOK SV *sv
-AiTMdp	|SV *	|SvREFCNT_inc_NN|NN SV *sv
-AiTMdp	|void	|SvREFCNT_inc_void|NULLOK SV *sv
-AiMdp	|void	|SvREFCNT_dec	|NULLOK SV *sv
-AiMdp	|void	|SvREFCNT_dec_NN|NN SV *sv
-AiTpd	|void	|SvAMAGIC_on	|NN SV *sv
-AiTpd	|void	|SvAMAGIC_off	|NN SV *sv
-Aipd	|bool	|SvTRUE		|NULLOK SV *sv
-Aipd	|bool	|SvTRUE_nomg	|NULLOK SV *sv
-Aipd	|bool	|SvTRUE_NN	|NN SV *sv
-Cip	|bool	|SvTRUE_common	|NN SV *sv|const bool sv_2bool_is_fallback
-: This is indirectly referenced by globals.c. This is somewhat annoying.
-p	|int	|magic_killbackrefs|NN SV *sv|NN MAGIC *mg
-Ap	|OP*	|newANONATTRSUB	|I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-Adm	|CV*	|newATTRSUB	|I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-pdX	|CV*	|newATTRSUB_x	|I32 floor|NULLOK OP *o|NULLOK OP *proto \
-				 |NULLOK OP *attrs|NULLOK OP *block \
-				 |bool o_is_gv
-Cp	|CV *	|newMYSUB	|I32 floor|NN OP *o|NULLOK OP *proto \
-				|NULLOK OP *attrs|NULLOK OP *block
-p	|CV*	|newSTUB	|NN GV *gv|bool fake
-: Used in perly.y
-p	|OP *	|my_attrs	|NN OP *o|NULLOK OP *attrs
-#if defined(USE_ITHREADS)
-CpR	|PERL_CONTEXT*|cx_dup	|NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param
-CpdR	|PERL_SI*|si_dup	|NULLOK PERL_SI* si|NN CLONE_PARAMS* param
-CpdR	|ANY*	|ss_dup		|NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param
-CpR	|void*	|any_dup	|NULLOK void* v|NN const PerlInterpreter* proto_perl
-CpR	|HE*	|he_dup		|NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
-CpR	|HEK*	|hek_dup	|NULLOK HEK* e|NN CLONE_PARAMS* param
-Adp	|void	|re_dup_guts	|NN const REGEXP *sstr|NN REGEXP *dstr \
-				|NN CLONE_PARAMS* param
-Cpd	|PerlIO*|fp_dup		|NULLOK PerlIO *const fp|const char type|NN CLONE_PARAMS *const param
-CpdR	|DIR*	|dirp_dup	|NULLOK DIR *const dp|NN CLONE_PARAMS *const param
-CpdR	|GP*	|gp_dup		|NULLOK GP *const gp|NN CLONE_PARAMS *const param
-CpdR	|MAGIC*	|mg_dup		|NULLOK MAGIC *mg|NN CLONE_PARAMS *const param
-#if defined(PERL_IN_SV_C)
-S	|SV **	|sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \
-				|SSize_t items|NN CLONE_PARAMS *const param
-SR	|SV*	|sv_dup_common	|NN const SV *const ssv \
-				|NN CLONE_PARAMS *const param
-#endif
-ApR	|SV*	|sv_dup		|NULLOK const SV *const ssv|NN CLONE_PARAMS *const param
-ApR	|SV*	|sv_dup_inc	|NULLOK const SV *const ssv \
-				|NN CLONE_PARAMS *const param
-Cp	|void	|rvpv_dup	|NN SV *const dsv|NN const SV *const ssv|NN CLONE_PARAMS *const param
-Cp	|yy_parser*|parser_dup	|NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param
-#endif
-ApdR	|PTR_TBL_t*|ptr_table_new
-ApdR	|void*	|ptr_table_fetch|NN PTR_TBL_t *const tbl|NULLOK const void *const sv
-Apd	|void	|ptr_table_store|NN PTR_TBL_t *const tbl|NULLOK const void *const oldsv \
-				|NN void *const newsv
-Apd	|void	|ptr_table_split|NN PTR_TBL_t *const tbl
-Apd	|void	|ptr_table_free|NULLOK PTR_TBL_t *const tbl
 #if defined(HAVE_INTERP_INTERN)
 Cp	|void	|sys_intern_clear
 Cp	|void	|sys_intern_init
-#  if defined(USE_ITHREADS)
-Cp	|void	|sys_intern_dup	|NN struct interp_intern* src|NN struct interp_intern* dst
-#  endif
-#endif
-
-: The reason for the 'u' flag is that this passes "aTHX_ x" to its callee: not
-: a legal C parameter
-Admu	|const XOP *	|Perl_custom_op_xop	|NN const OP *o
-AbpRdD	|const char *	|custom_op_name	|NN const OP *o
-AbpRdD	|const char *	|custom_op_desc	|NN const OP *o
-pRX	|XOPRETANY	|custom_op_get_field	|NN const OP *o|const xop_flags_enum field
-Adop	|void	|custom_op_register	|NN Perl_ppaddr_t ppaddr \
-			|NN const XOP *xop
-
-Adp	|void	|sv_nosharing	|NULLOK SV *sv
-AdpbD	|void	|sv_nolocking	|NULLOK SV *sv
-Adp	|bool	|sv_destroyable	|NULLOK SV *sv
-AdpbD	|void	|sv_nounlocking	|NULLOK SV *sv
-Adp	|int	|nothreadhook
-p	|void	|init_constants
-
-#if defined(PERL_IN_DOOP_C)
-SR	|Size_t	|do_trans_simple	|NN SV * const sv|NN const OPtrans_map * const tbl
-SR	|Size_t	|do_trans_count		|NN SV * const sv|NN const OPtrans_map * const tbl
-SR	|Size_t	|do_trans_complex	|NN SV * const sv|NN const OPtrans_map * const tbl
-SR	|Size_t	|do_trans_invmap	|NN SV * const sv|NN AV * const map
-SR	|Size_t	|do_trans_count_invmap  |NN SV * const sv|NN AV * const map
+# if defined(USE_ITHREADS)
+Cp	|void	|sys_intern_dup |NN struct interp_intern *src		\
+				|NN struct interp_intern *dst
+# endif
 #endif
-
-#if defined(PERL_IN_GV_C)
-S	|void	|gv_init_svtype	|NN GV *gv|const svtype sv_type
-S	|void	|gv_magicalize_isa	|NN GV *gv
-S	|bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
-                     |NN const char **name|NN STRLEN *len \
-                     |NN const char *nambeg|STRLEN full_len \
-                     |const U32 is_utf8|const I32 add
-S	|bool|find_default_stash|NN HV **stash|NN const char *name \
-                     |STRLEN len|const U32 is_utf8|const I32 add \
-                     |const svtype sv_type
-S	|bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
-                     |STRLEN len \
-                     |const svtype sv_type
-S	|void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
-S	|bool|gv_is_in_main|NN const char *name|STRLEN len \
-                      |const U32 is_utf8
-S	|void	|require_tie_mod|NN GV *gv|NN const char varname \
-				|NN const char * name|STRLEN len \
-				|const U32 flags
+#if defined(_MSC_VER)
+p	|int	|magic_regdatum_set					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+#else
+pr	|int	|magic_regdatum_set					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
 #endif
-
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-po	|SV*	|hfree_next_entry	|NN HV *hv|NN STRLEN *indexp
+#if defined(MULTIPLICITY)
+ATdfpr	|void	|croak_nocontext|NULLOK const char *pat 		\
+				|...
+ATdfp	|void	|deb_nocontext	|NN const char *pat			\
+				|...
+ATdfpr	|OP *	|die_nocontext	|NULLOK const char *pat 		\
+				|...
+ATdfp	|char * |form_nocontext |NN const char *pat			\
+				|...
+AFTdp	|void	|load_module_nocontext					\
+				|U32 flags				\
+				|NN SV *name				\
+				|NULLOK SV *ver 			\
+				|...
+ATdfp	|SV *	|mess_nocontext |NN const char *pat			\
+				|...
+Cdop	|void * |my_cxt_init	|NN int *indexp 			\
+				|size_t size
+ATdfp	|SV *	|newSVpvf_nocontext					\
+				|NN const char * const pat		\
+				|...
+ATdfp	|void	|sv_catpvf_mg_nocontext 				\
+				|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+ATdfp	|void	|sv_catpvf_nocontext					\
+				|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+ATdfp	|void	|sv_setpvf_mg_nocontext 				\
+				|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+ATdfp	|void	|sv_setpvf_nocontext					\
+				|NN SV * const sv			\
+				|NN const char * const pat		\
+				|...
+ATdfp	|void	|warner_nocontext					\
+				|U32 err				\
+				|NN const char *pat			\
+				|...
+ATdfp	|void	|warn_nocontext |NN const char *pat			\
+				|...
+#endif /* defined(MULTIPLICITY) */
+#if defined(MYMALLOC)
+Adp	|void	|dump_mstats	|NN const char *s
+Cp	|int	|get_mstats	|NN perl_mstats_t *buf			\
+				|int buflen				\
+				|int level
+RTp	|MEM_SIZE|malloced_size |NN void *p
+RTp	|MEM_SIZE|malloc_good_size					\
+				|size_t nbytes
 #endif
-
-#if defined(PERL_IN_HV_C)
-S	|void	|hsplit		|NN HV *hv|STRLEN const oldsize|STRLEN newsize
-S	|void	|hv_free_entries|NN HV *hv
-S	|SV*	|hv_free_ent_ret|NN HE *entry
-#if !defined(PURIFY)
-SR	|HE*	|new_he
-#endif
-SaTR	|HEK*	|save_hek_flags	|NN const char *str|I32 len|U32 hash|int flags
-ST	|void	|hv_magic_check	|NN HV *hv|NN bool *needs_copy|NN bool *needs_store
-S	|void	|unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
-SR	|HEK*	|share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
-rS	|void	|hv_notallowed	|int flags|NN const char *key|I32 klen|NN const char *msg
-S	|struct xpvhv_aux*|hv_auxinit|NN HV *hv
-Sx	|SV*	|hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
-		|NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
-		|U32 hash
-Sx	|void	|clear_placeholders	|NN HV *hv|U32 items
+#if defined(PERL_ANY_COW)
+: Used in regexec.c
+EXpx	|SV *	|sv_setsv_cow	|NULLOK SV *dsv 			\
+				|NN SV *ssv
 #endif
-
-#if defined(PERL_IN_MG_C)
-S	|void	|save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
-S	|int	|magic_methpack	|NN SV *sv|NN const MAGIC *mg|NN SV *meth
-S	|SV*	|magic_methcall1|NN SV *sv|NN const MAGIC *mg \
-				|NN SV *meth|U32 flags \
-				|int n|NULLOK SV *val
-S	|void	|restore_magic	|NULLOK const void *p
-S	|void	|unwind_handler_stack|NULLOK const void *p
-S	|void	|fixup_errno_string|NN SV* sv
-
+#if defined(PERL_CORE)
+p	|void	|opslab_force_free					\
+				|NN OPSLAB *slab
+p	|void	|opslab_free	|NN OPSLAB *slab
+p	|void	|opslab_free_nopad					\
+				|NN OPSLAB *slab
+p	|void	|parser_free_nexttoke_ops				\
+				|NN yy_parser *parser			\
+				|NN OPSLAB *slab
+RTi	|bool	|should_warn_nl |NN const char *pv
+# if defined(PERL_DEBUG_READONLY_OPS)
+ep	|void	|Slab_to_ro	|NN OPSLAB *slab
+ep	|void	|Slab_to_rw	|NN OPSLAB * const slab
+# endif
+#endif /* defined(PERL_CORE) */
+#if defined(PERL_CORE) || defined(PERL_EXT)
+ERXdp	|bool	|isSCRIPT_RUN	|NN const U8 *s 			\
+				|NN const U8 *send			\
+				|const bool utf8_target
+ERTXdip |bool	|is_utf8_non_invariant_string				\
+				|NN const U8 * const s			\
+				|STRLEN len
+Ei	|STRLEN |sv_or_pv_pos_u2b					\
+				|NN SV *sv				\
+				|NN const char *pv			\
+				|STRLEN pos				\
+				|NULLOK STRLEN *lenp
+ERTdi	|Size_t |variant_under_utf8_count				\
+				|NN const U8 * const s			\
+				|NN const U8 * const e
+# if !defined(HAS_MEMRCHR)
+ETei	|void * |my_memrchr	|NN const char *s			\
+				|const char c				\
+				|const STRLEN len
+# endif
 #endif
-
-#if defined(USE_ITHREADS)
-Cip	|AV*	|cop_file_avn	|NN const COP *cop
+#if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
+Adp	|void	|finalize_optree|NN OP *o
+Adp	|void	|optimize_optree|NN OP *o
 #endif
-
-#if defined(PERL_IN_OP_C)
-SRT	|bool	|is_handle_constructor|NN const OP *o|I32 numargs
-SR	|I32	|assignment_type|NULLOK const OP *o
-S	|void	|forget_pmop	|NN PMOP *const o
-S	|void	|find_and_forget_pmops	|NN OP *o
-S	|void	|cop_free	|NN COP *cop
-S	|OP*	|modkids	|NULLOK OP *o|I32 type
-S	|OP*	|scalarboolean	|NN OP *o
-SR	|OP*	|search_const	|NN OP *o
-SR	|OP*	|new_logop	|I32 type|I32 flags|NN OP **firstp|NN OP **otherp
-S	|void	|simplify_sort	|NN OP *o
-SRT	|bool	|scalar_mod_type|NULLOK const OP *o|I32 type
-S	|OP *	|my_kid		|NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
-S	|OP *	|dup_attrlist	|NN OP *o
-S	|void	|apply_attrs	|NN HV *stash|NN SV *target|NULLOK OP *attrs
-S	|void	|apply_attrs_my	|NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-S	|void	|bad_type_pv	|I32 n|NN const char *t|NN const OP *o|NN const OP *kid
-S	|void	|bad_type_gv	|I32 n|NN GV *gv|NN const OP *kid|NN const char *t
-S	|void	|no_bareword_allowed|NN OP *o
-SR	|OP*	|no_fh_allowed|NN OP *o
-SR	|OP*	|too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
-S	|OP*	|too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
-S	|bool	|looks_like_bool|NN const OP* o
-S	|OP*	|newGIVWHENOP	|NULLOK OP* cond|NN OP *block \
-				|I32 enter_opcode|I32 leave_opcode \
-				|PADOFFSET entertarg
-S	|OP*	|ref_array_or_hash|NULLOK OP* cond
-S	|bool	|process_special_blocks	|I32 floor \
-					|NN const char *const fullname\
-					|NN GV *const gv|NN CV *const cv
-S	|void	|clear_special_blocks	|NN const char *const fullname\
-					|NN GV *const gv|NN CV *const cv
+#if defined(PERL_DEBUG_READONLY_COW)
+p	|void	|sv_buf_to_ro	|NN SV *sv
 #endif
-p	|void   |no_bareword_filehandle|NN const char *fhname
-XpR	|void*	|Slab_Alloc	|size_t sz
-Xp	|void	|Slab_Free	|NN void *op
 #if defined(PERL_DEBUG_READONLY_OPS)
-#    if defined(PERL_CORE)
-pe	|void	|Slab_to_ro	|NN OPSLAB *slab
-pe	|void	|Slab_to_rw	|NN OPSLAB *const slab
-#    endif
-: Used in OpREFCNT_inc() in sv.c
-poex	|OP *	|op_refcnt_inc	|NULLOK OP *o
 : FIXME - can be static.
-poex	|PADOFFSET	|op_refcnt_dec	|NN OP *o
+eopx	|PADOFFSET|op_refcnt_dec|NN OP *o
+: Used in OpREFCNT_inc() in sv.c
+eopx	|OP *	|op_refcnt_inc	|NULLOK OP *o
 #endif
-
-#if defined(PERL_IN_PERL_C)
-S	|void	|find_beginning	|NN SV* linestr_sv|NN PerlIO *rsfp
-S	|void	|forbid_setid	|const char flag|const bool suidscript
-S	|void	|incpush	|NN const char *const dir|STRLEN len \
-				|U32 flags
-S	|SV*	|mayberelocate	|NN const char *const dir|STRLEN len \
-				|U32 flags
-S	|void	|incpush_use_sep|NN const char *p|STRLEN len|U32 flags
-S	|void	|init_interp
-S	|void	|init_ids
-S	|void	|init_main_stash
-S	|void	|init_perllib
-S	|void	|init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
-S	|void	|init_predump_symbols
-rS	|void	|my_exit_jump
-S	|void	|nuke_stacks
-S	|PerlIO *|open_script	|NN const char *scriptname|bool dosearch \
-				|NN bool *suidscript
-Sr	|void	|usage
-#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-So	|void	|validate_suid	|NN PerlIO *rsfp
+#if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
+Mp	|bool	|do_exec	|NN const char *cmd
+#else
+p	|bool	|do_exec	|NN const char *cmd
 #endif
-Sr	|void	|minus_v
-
-S	|void*	|parse_body	|NULLOK char **env|XSINIT_t xsinit
-rS	|void	|run_body	|I32 oldscope
-#  ifndef PERL_IS_MINIPERL
-S	|SV *	|incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
-#  endif
+#if defined(PERL_DONT_CREATE_GVSV)
+AMbdp	|GV *	|gv_SVadd	|NULLOK GV *gv
 #endif
-
-#if defined(PERL_IN_PP_C)
-S	|size_t	|do_chomp	|NN SV *retval|NN SV *sv|bool chomping
-S	|OP*	|do_delete_local
-SR	|SV*	|refto		|NN SV* sv
+#if defined(PERL_IMPLICIT_SYS)
+CTo	|PerlInterpreter *|perl_alloc_using				\
+				|NN struct IPerlMem *ipM		\
+				|NN struct IPerlMem *ipMS		\
+				|NN struct IPerlMem *ipMP		\
+				|NN struct IPerlEnv *ipE		\
+				|NN struct IPerlStdIO *ipStd		\
+				|NN struct IPerlLIO *ipLIO		\
+				|NN struct IPerlDir *ipD		\
+				|NN struct IPerlSock *ipS		\
+				|NN struct IPerlProc *ipP
+# if defined(USE_ITHREADS)
+CTo	|PerlInterpreter *|perl_clone_using				\
+				|NN PerlInterpreter *proto_perl 	\
+				|UV flags				\
+				|NN struct IPerlMem *ipM		\
+				|NN struct IPerlMem *ipMS		\
+				|NN struct IPerlMem *ipMP		\
+				|NN struct IPerlEnv *ipE		\
+				|NN struct IPerlStdIO *ipStd		\
+				|NN struct IPerlLIO *ipLIO		\
+				|NN struct IPerlDir *ipD		\
+				|NN struct IPerlSock *ipS		\
+				|NN struct IPerlProc *ipP
+# endif
+#else
+Adp	|I32	|my_pclose	|NULLOK PerlIO *ptr
+Adp	|PerlIO *|my_popen	|NN const char *cmd			\
+				|NN const char *mode
+# if defined(USE_ITHREADS)
+i	|bool	|PerlEnv_putenv |NN char *str
+# endif
 #endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-: Used in pp_hot.c
-pReo	|GV*	|softref2xv	|NN SV *const sv|NN const char *const what \
-				|const svtype type|NN SV ***spp
-iTR	|bool	|lossless_NV_to_IV|const NV nv|NN IV * ivp
+#if defined(PERL_IN_AV_C)
+S	|MAGIC *|get_aux_mg	|NN AV *av
 #endif
-#if defined(PERL_IN_PP_HOT_C)
-IR	|bool	|should_we_output_Debug_r|NN regexp * prog
+#if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    || \
+    defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) || \
+    defined(PERL_IN_TOKE_C)
+; Functions in class.c that are called by the parser (perly.c, toke.c, pad.c)
+Cp	|void	|class_add_ADJUST					\
+				|NN HV *stash				\
+				|NN CV *cv
+Cp	|void	|class_add_field|NN HV *stash				\
+				|NN PADNAME *pn
+Cp	|void	|class_apply_attributes 				\
+				|NN HV *stash				\
+				|NULLOK OP *attrlist
+Cp	|void	|class_apply_field_attributes				\
+				|NN PADNAME *pn 			\
+				|NULLOK OP *attrlist
+Cp	|void	|class_prepare_initfield_parse
+Cp	|void	|class_prepare_method_parse				\
+				|NN CV *cv
+Cp	|void	|class_seal_stash					\
+				|NN HV *stash
+Cp	|void	|class_set_field_defop					\
+				|NN PADNAME *pn 			\
+				|OPCODE defmode 			\
+				|NN OP *defop
+Cp	|void	|class_setup_stash					\
+				|NN HV *stash
+Cp	|OP *	|class_wrap_method_body 				\
+				|NULLOK OP *o
+Cp	|void	|croak_kw_unless_class					\
+				|NN const char *kw
+#endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    ||
+          defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) ||
+          defined(PERL_IN_TOKE_C) */
+#if defined(PERL_IN_DEB_C)
+S	|void	|deb_stack_n	|NN SV **stack_base			\
+				|I32 stack_min				\
+				|I32 stack_max				\
+				|I32 mark_min				\
+				|I32 mark_max
 #endif
-
-#if defined(PERL_IN_PP_PACK_C)
-S	|SSize_t|unpack_rec	|NN struct tempsym* symptr|NN const char *s \
-				|NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
-S	|SV **	|pack_rec	|NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
-S	|SV*	|mul128		|NN SV *sv|U8 m
-S	|SSize_t|measure_struct	|NN struct tempsym* symptr
-S	|bool	|next_symbol	|NN struct tempsym* symptr
-SR	|SV*	|is_an_int	|NN const char *s|STRLEN l
-S	|int	|div128		|NN SV *pnum|NN bool *done
-S	|const char *|group_end	|NN const char *patptr|NN const char *patend \
-				|char ender
-SR	|const char *|get_num	|NN const char *patptr|NN SSize_t *lenptr
-TS	|bool	|need_utf8	|NN const char *pat|NN const char *patend
-TS	|char	|first_symbol	|NN const char *pat|NN const char *patend
-SR	|char *	|sv_exp_grow	|NN SV *sv|STRLEN needed
-STR	|char *	|my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
-				|const bool needs_swap
+#if defined(PERL_IN_DOIO_C)
+S	|bool	|argvout_final	|NN MAGIC *mg				\
+				|NN IO *io				\
+				|bool is_explicit
+S	|void	|exec_failed	|NN const char *cmd			\
+				|int fd 				\
+				|int do_report
+RS	|bool	|ingroup	|Gid_t testgid				\
+				|bool effective
+S	|bool	|openn_cleanup	|NN GV *gv				\
+				|NN IO *io				\
+				|NULLOK PerlIO *fp			\
+				|NN char *mode				\
+				|NN const char *oname			\
+				|NULLOK PerlIO *saveifp 		\
+				|NULLOK PerlIO *saveofp 		\
+				|int savefd				\
+				|char savetype				\
+				|int writing				\
+				|bool was_fdopen			\
+				|NULLOK const char *type		\
+				|NULLOK Stat_t *statbufp
+S	|IO *	|openn_setup	|NN GV *gv				\
+				|NN char *mode				\
+				|NN PerlIO **saveifp			\
+				|NN PerlIO **saveofp			\
+				|NN int *savefd 			\
+				|NN char *savetype
 #endif
-
-#if defined(PERL_IN_PP_CTL_C)
-SdR	|OP*	|docatch	|Perl_ppaddr_t firstpp
-SR	|OP*	|dofindlabel	|NN OP *o|NN const char *label|STRLEN len \
-                                |U32 flags|NN OP **opstack|NN OP **oplimit
-S	|MAGIC *|doparseform	|NN SV *sv
-STR	|bool	|num_overflow	|NV value|I32 fldsize|I32 frcsize
-SR	|I32	|dopoptoeval	|I32 startingblock
-SR	|I32	|dopoptogivenfor|I32 startingblock
-SR	|I32	|dopoptolabel	|NN const char *label|STRLEN len|U32 flags
-SR	|I32	|dopoptoloop	|I32 startingblock
-SR	|I32	|dopoptosub_at	|NN const PERL_CONTEXT* cxstk|I32 startingblock
-SR	|I32	|dopoptowhen	|I32 startingblock
-S	|void	|save_lines	|NULLOK AV *array|NN SV *sv
-S	|bool	|doeval_compile	|U8 gimme \
-				|NULLOK CV* outside|U32 seq|NULLOK HV* hh
-SR	|PerlIO *|check_type_and_open|NN SV *name
-#ifndef PERL_DISABLE_PMC
-SR	|PerlIO *|doopen_pm	|NN SV *name
-#endif
-iRT	|bool	|path_is_searchable|NN const char *name
-SR	|I32	|run_user_filter|int idx|NN SV *buf_sv|int maxlen
-SR	|PMOP*	|make_matcher	|NN REGEXP* re
-SR	|bool	|matcher_matches_sv|NN PMOP* matcher|NN SV* sv
-S	|void	|destroy_matcher|NN PMOP* matcher
-S	|OP*	|do_smartmatch	|NULLOK HV* seen_this \
-				|NULLOK HV* seen_other|const bool copied
+#if defined(PERL_IN_DOOP_C)
+RS	|Size_t |do_trans_complex					\
+				|NN SV * const sv			\
+				|NN const OPtrans_map * const tbl
+RS	|Size_t |do_trans_count |NN SV * const sv			\
+				|NN const OPtrans_map * const tbl
+RS	|Size_t |do_trans_count_invmap					\
+				|NN SV * const sv			\
+				|NN AV * const map
+RS	|Size_t |do_trans_invmap|NN SV * const sv			\
+				|NN AV * const map
+RS	|Size_t |do_trans_simple|NN SV * const sv			\
+				|NN const OPtrans_map * const tbl
+#endif
+#if defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
+    defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
+    defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
+    defined(PERL_IN_UTF8_C)
+ERTi	|bool * |get_invlist_offset_addr				\
+				|NN SV *invlist
+ERTi	|UV *	|invlist_array	|NN SV * const invlist
+ERTi	|bool	|_invlist_contains_cp					\
+				|NN SV * const invlist			\
+				|const UV cp
+ERTi	|UV	|_invlist_len	|NN SV * const invlist
+ERTXp	|SSize_t|_invlist_search|NN SV * const invlist			\
+				|const UV cp
+ERTi	|bool	|is_invlist	|NULLOK const SV * const invlist
 #endif
-
-#if defined(PERL_IN_PP_HOT_C)
-S	|void	|do_oddball	|NN SV **oddkey|NN SV **firstkey
-i	|HV*	|opmethod_stash	|NN SV* meth
+#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_REGCOMP_ANY)
+ERi	|SV *	|add_cp_to_invlist					\
+				|NULLOK SV *invlist			\
+				|const UV cp
+Ei	|void	|invlist_extend |NN SV * const invlist			\
+				|const UV len
+ERTi	|UV	|invlist_highest|NN SV * const invlist
+Ei	|void	|invlist_set_len|NN SV * const invlist			\
+				|const UV len				\
+				|const bool offset
+#endif
+#if defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
+ERXp	|SV *	|_add_range_to_invlist					\
+				|NULLOK SV *invlist			\
+				|UV start				\
+				|UV end
+m	|void	|_invlist_intersection					\
+				|NN SV * const a			\
+				|NN SV * const b			\
+				|NN SV **i
+EXp	|void	|_invlist_intersection_maybe_complement_2nd		\
+				|NULLOK SV * const a			\
+				|NN SV * const b			\
+				|const bool complement_b		\
+				|NN SV **i
+EXp	|void	|_invlist_invert|NN SV * const invlist
+m	|void	|_invlist_subtract					\
+				|NN SV * const a			\
+				|NN SV * const b			\
+				|NN SV **result
+Cm	|void	|_invlist_union |NULLOK SV * const a			\
+				|NN SV * const b			\
+				|NN SV **output
+EXp	|void	|_invlist_union_maybe_complement_2nd			\
+				|NULLOK SV * const a			\
+				|NN SV * const b			\
+				|const bool complement_b		\
+				|NN SV **output
+ERXp	|SV *	|_new_invlist	|IV initial_size
+ERXp	|SV *	|_setup_canned_invlist					\
+				|const STRLEN size			\
+				|const UV element0			\
+				|NN UV **other_elements_ptr
+#endif /* defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) ||
+          defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+    defined(PERL_IN_TOKE_C)
+ERXp	|const char *|form_alien_digit_msg				\
+				|const U8 which 			\
+				|const STRLEN valids_len		\
+				|NN const char * const first_bad	\
+				|NN const char * const send		\
+				|const bool UTF 			\
+				|const bool braced
+ERXp	|bool	|grok_bslash_c	|const char source			\
+				|NN U8 *result				\
+				|NN const char **message		\
+				|NULLOK U32 *packed_warn
+ERXp	|bool	|grok_bslash_o	|NN char **s				\
+				|NN const char * const send		\
+				|NN UV *uv				\
+				|NN const char **message		\
+				|NULLOK U32 *packed_warn		\
+				|const bool strict			\
+				|const bool allow_UV_MAX		\
+				|const bool utf8
+ERXp	|bool	|grok_bslash_x	|NN char **s				\
+				|NN const char * const send		\
+				|NN UV *uv				\
+				|NN const char **message		\
+				|NULLOK U32 *packed_warn		\
+				|const bool strict			\
+				|const bool allow_UV_MAX		\
+				|const bool utf8
 #endif
-
-#if defined(PERL_IN_PP_SORT_C)
-i	|I32	|sv_ncmp	|NN SV *const a|NN SV *const b
-i	|I32	|sv_ncmp_desc	|NN SV *const a|NN SV *const b
-i	|I32	|sv_i_ncmp	|NN SV *const a|NN SV *const b
-i	|I32	|sv_i_ncmp_desc	|NN SV *const a|NN SV *const b
-i	|I32	|amagic_ncmp	|NN SV *const a|NN SV *const b
-i	|I32	|amagic_ncmp_desc	|NN SV *const a|NN SV *const b
-i	|I32	|amagic_i_ncmp	|NN SV *const a|NN SV *const b
-i	|I32	|amagic_i_ncmp_desc	|NN SV *const a|NN SV *const b
-i	|I32	|amagic_cmp	|NN SV *const str1|NN SV *const str2
-i	|I32	|amagic_cmp_desc	|NN SV *const str1|NN SV *const str2
-i	|I32	|cmp_desc	|NN SV *const str1|NN SV *const str2
-#  ifdef USE_LOCALE_COLLATE
-i	|I32	|amagic_cmp_locale     |NN SV *const str1|NN SV *const str2
-i	|I32	|amagic_cmp_locale_desc|NN SV *const str1|NN SV *const str2
-i	|I32	|cmp_locale_desc|NN SV *const str1|NN SV *const str2
-#  endif
-S	|I32	|sortcv		|NN SV *const a|NN SV *const b
-S	|I32	|sortcv_xsub	|NN SV *const a|NN SV *const b
-S	|I32	|sortcv_stacked	|NN SV *const a|NN SV *const b
-I	|void	|sortsv_flags_impl	|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
+#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+    defined(PERL_IN_TOKE_C)   || defined(PERL_IN_UTF8_C)
+ERXp	|const char *|form_cp_too_large_msg				\
+				|const U8 which 			\
+				|NULLOK const char *string		\
+				|const Size_t len			\
+				|const UV cp
 #endif
-
-#if defined(PERL_IN_PP_SYS_C)
-S	|OP*	|doform		|NN CV *cv|NN GV *gv|NULLOK OP *retop
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-SR	|int	|dooneliner	|NN const char *cmd|NN const char *filename
-#  endif
-S	|SV *	|space_join_names_mortal|NULLOK char *const *array
-#endif
-Fp	|OP *	|tied_method|NN SV *methname|NN SV **sp \
-				|NN SV *const sv|NN const MAGIC *const mg \
-				|const U32 flags|U32 argc|...
-
 #if defined(PERL_IN_DUMP_C)
-S	|CV*	|deb_curcv	|I32 ix
+S	|CV *	|deb_curcv	|I32 ix
 Sd	|void	|debprof	|NN const OP *o
+S	|SV *	|pm_description |NN const PMOP *pm
 S	|UV	|sequence_num	|NULLOK const OP *o
-S	|SV*	|pm_description	|NN const PMOP *pm
 #endif
-
-#if defined(PERL_IN_SCOPE_C)
-S	|SV*	|save_scalar_at	|NN SV **sptr|const U32 flags
+#if defined(PERL_IN_DUMP_C)  || defined(PERL_IN_HV_C) || \
+    defined(PERL_IN_SCOPE_C) || defined(PERL_IN_SV_C)
+opx	|void	|hv_kill_backrefs					\
+				|NN HV *hv
+#endif
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_REGCOMP_ANY)
+EXp	|void	|_invlist_dump	|NN PerlIO *file			\
+				|I32 level				\
+				|NN const char * const indent		\
+				|NN SV * const invlist
 #endif
-
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
+#if defined(PERL_IN_GV_C)
+S	|bool	|find_default_stash					\
+				|NN HV **stash				\
+				|NN const char *name			\
+				|STRLEN len				\
+				|const U32 is_utf8			\
+				|const I32 add				\
+				|const svtype sv_type
+i	|GV *	|gv_fetchmeth_internal					\
+				|NULLOK HV *stash			\
+				|NULLOK SV *meth			\
+				|NULLOK const char *name		\
+				|STRLEN len				\
+				|I32 level				\
+				|U32 flags
+S	|void	|gv_init_svtype |NN GV *gv				\
+				|const svtype sv_type
+S	|bool	|gv_is_in_main	|NN const char *name			\
+				|STRLEN len				\
+				|const U32 is_utf8
+S	|bool	|gv_magicalize	|NN GV *gv				\
+				|NN HV *stash				\
+				|NN const char *name			\
+				|STRLEN len				\
+				|const svtype sv_type
+S	|void	|gv_magicalize_isa					\
+				|NN GV *gv
+i	|HV *	|gv_stashpvn_internal					\
+				|NN const char *name			\
+				|U32 namelen				\
+				|I32 flags
+S	|void	|maybe_multimagic_gv					\
+				|NN GV *gv				\
+				|NN const char *name			\
+				|const svtype sv_type
+S	|bool	|parse_gv_stash_name					\
+				|NN HV **stash				\
+				|NN GV **gv				\
+				|NN const char **name			\
+				|NN STRLEN *len 			\
+				|NN const char *nambeg			\
+				|STRLEN full_len			\
+				|const U32 is_utf8			\
+				|const I32 add
+S	|void	|require_tie_mod|NN GV *gv				\
+				|NN const char varname			\
+				|NN const char *name			\
+				|STRLEN len				\
+				|const U32 flags
+#endif /* defined(PERL_IN_GV_C) */
+#if defined(PERL_IN_GV_C)  || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_PAD_C) || defined(PERL_IN_SV_C)
 : Used in gv.c
-po	|void	|sv_add_backref	|NN SV *const tsv|NN SV *const sv
+op	|void	|sv_add_backref |NN SV * const tsv			\
+				|NN SV * const sv
 #endif
-
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
-: Used in hv.c and mg.c
-pox	|void	|sv_kill_backrefs	|NN SV *const sv|NULLOK AV *const av
+#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
+EGdp	|HV *	|gv_stashsvpvn_cached					\
+				|SV *namesv				\
+				|const char *name			\
+				|U32 namelen				\
+				|I32 flags
 #endif
-
-#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-pR	|SV *	|varname	|NULLOK const GV *const gv|const char gvtype \
-				|PADOFFSET targ|NULLOK const SV *const keyname \
-				|SSize_t aindex|int subscript_type
-#endif
-
-pX	|void	|sv_del_backref	|NN SV *const tsv|NN SV *const sv
-#if defined(PERL_IN_SV_C)
-TiR	|char *	|uiv_2buf	|NN char *const buf|const IV iv|UV uv|const int is_uv|NN char **const peob
-i	|void	|sv_unglob	|NN SV *const sv|U32 flags
-S	|const char *|sv_display	|NN SV *const sv|NN char *tmpbuf|STRLEN tmpbuf_size
-S	|void	|not_a_number	|NN SV *const sv
-S	|void	|not_incrementable	|NN SV *const sv
-S	|I32	|visit		|NN SVFUNC_t f|const U32 flags|const U32 mask
-#  ifdef DEBUGGING
-S	|void	|del_sv	|NN SV *p
-#  endif
-#  if !defined(NV_PRESERVES_UV)
-#    ifdef DEBUGGING
-S	|int	|sv_2iuv_non_preserve	|NN SV *const sv|I32 numtype
-#    else
-S	|int	|sv_2iuv_non_preserve	|NN SV *const sv
-#    endif
-#  endif
-SR	|STRLEN	|expect_number	|NN const char **const pattern
-ST	|STRLEN	|sv_pos_u2b_forwards|NN const U8 *const start \
-		|NN const U8 *const send|NN STRLEN *const uoffset \
-		|NN bool *const at_end|NN bool *canonical_position
-ST	|STRLEN	|sv_pos_u2b_midway|NN const U8 *const start \
-		|NN const U8 *send|STRLEN uoffset|const STRLEN uend
-S	|STRLEN	|sv_pos_u2b_cached|NN SV *const sv|NN MAGIC **const mgp \
-		|NN const U8 *const start|NN const U8 *const send \
-		|STRLEN uoffset|STRLEN uoffset0|STRLEN boffset0
-S	|void	|utf8_mg_len_cache_update|NN SV *const sv|NN MAGIC **const mgp \
-		|const STRLEN ulen
-S	|void	|utf8_mg_pos_cache_update|NN SV *const sv|NN MAGIC **const mgp \
-		|const STRLEN byte|const STRLEN utf8|const STRLEN blen
-S	|STRLEN	|sv_pos_b2u_midway|NN const U8 *const s|NN const U8 *const target \
-		|NN const U8 *end|STRLEN endu
-S	|void	|assert_uft8_cache_coherent|NN const char *const func \
-		|STRLEN from_cache|STRLEN real|NN SV *const sv
-ST	|char *	|F0convert	|NV nv|NN char *const endbuf|NN STRLEN *const len
-Cp	|SV *	|more_sv
-S	|bool	|sv_2iuv_common	|NN SV *const sv
-S	|void	|glob_assign_glob|NN SV *const dsv|NN SV *const ssv \
-		|const int dtype
-SRT	|PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *const tbl|NULLOK const void *const sv
-S	|void	|anonymise_cv_maybe	|NN GV *gv|NN CV *cv
-#endif
-
-: Used in sv.c and hv.c
-Cpo	|void *	|more_bodies	|const svtype sv_type|const size_t body_size \
-				|const size_t arena_size
-EXpR	|SV*	|get_and_check_backslash_N_name|NN const char* s	\
-				|NN const char* e			\
-				|const bool is_utf8			\
-				|NN const char** error_msg
-EXpR	|HV*	|load_charnames	|NN SV * char_name			\
-				|NN const char * context		\
-				|const STRLEN context_len		\
-				|NN const char ** error_msg
-
-: For use ONLY in B::Hooks::Parser, by special dispensation
-EXpxR	|char*	|scan_str	|NN char *start|int keep_quoted \
-				|int keep_delims|int re_reparse \
-				|NULLOK char **delimp
-EXpx	|char*	|scan_word	|NN char *s|NN char *dest|STRLEN destlen \
-				|int allow_package|NN STRLEN *slp
-EXpxR	|char*	|skipspace_flags|NN char *s|U32 flags
-#if defined(PERL_IN_TOKE_C)
-S	|void	|check_uni
-S	|void	|force_next	|I32 type
-S	|char*	|force_version	|NN char *s|int guessing
-S	|char*	|force_strict_version	|NN char *s
-S	|char*	|force_word	|NN char *start|int token|int check_keyword \
-				|int allow_pack
-S	|SV*	|tokeq		|NN SV *sv
-SR	|char*	|scan_const	|NN char *start
-SR	|SV*	|get_and_check_backslash_N_name_wrapper|NN const char* s \
-				|NN const char* const e
-SR	|char*	|scan_formline	|NN char *s
-SR	|char*	|scan_heredoc	|NN char *s
-S	|char*	|scan_ident	|NN char *s|NN char *dest	\
-				|STRLEN destlen|I32 ck_uni
-SR	|char*	|scan_inputsymbol|NN char *start
-SR	|char*	|scan_pat	|NN char *start|I32 type
-SR	|char*	|scan_subst	|NN char *start
-SR	|char*	|scan_trans	|NN char *start
-S	|void	|update_debugger_info|NULLOK SV *orig_sv \
-				|NULLOK const char *const buf|STRLEN len
-SR	|char*	|swallow_bom	|NN U8 *s
-#ifndef PERL_NO_UTF16_FILTER
-S	|I32	|utf16_textfilter|int idx|NN SV *sv|int maxlen
-S	|U8*	|add_utf16_textfilter|NN U8 *const s|bool reversed
-#endif
-S	|void	|checkcomma	|NN const char *s|NN const char *name \
-				|NN const char *what
-S	|void	|force_ident	|NN const char *s|int kind
-S	|void	|force_ident_maybe_lex|char pit
-S	|void	|incline	|NN const char *s|NN const char *end
-S	|int	|intuit_method	|NN char *s|NULLOK SV *ioname|NULLOK CV *cv
-S	|int	|intuit_more	|NN char *s|NN char *e
-S	|I32	|lop		|I32 f|U8 x|NN char *s
-rS	|void	|missingterm	|NULLOK char *s|STRLEN len
-S	|void	|no_op		|NN const char *const what|NULLOK char *s
-S	|int	|pending_ident
-SR	|I32	|sublex_done
-SR	|I32	|sublex_push
-SR	|I32	|sublex_start
-SR	|char *	|filter_gets	|NN SV *sv|STRLEN append
-SR	|HV *	|find_in_my_stash|NN const char *pkgname|STRLEN len
-SR	|char *	|tokenize_use	|int is_use|NN char *s
-So	|SV*	|new_constant	|NULLOK const char *s|STRLEN len	    \
-				|NN const char *key|STRLEN keylen|NN SV *sv \
-				|NULLOK SV *pv|NULLOK const char *type	    \
-				|STRLEN typelen				    \
-				|NULLOK const char ** error_msg
-S	|int	|ao		|int toketype
-S	|void|parse_ident|NN char **s|NN char **d \
-                     |NN char * const e|int allow_package \
-				|bool is_utf8|bool check_dollar \
-				|bool tick_warn
-#  if defined(PERL_CR_FILTER)
-S	|I32	|cr_textfilter	|int idx|NULLOK SV *sv|int maxlen
-S	|void	|strip_return	|NN SV *sv
-#  endif
-#  if defined(DEBUGGING)
-S	|int	|tokereport	|I32 rv|NN const YYSTYPE* lvalp
-Sf	|void	|printbuf	|NN const char *const fmt|NN const char *const s
-#  endif
+#if defined(PERL_IN_HV_C)
+Sx	|void	|clear_placeholders					\
+				|NN HV *hv				\
+				|U32 items
+S	|void	|hsplit 	|NN HV *hv				\
+				|STRLEN const oldsize			\
+				|STRLEN newsize
+S	|struct xpvhv_aux *|hv_auxinit					\
+				|NN HV *hv
+Sx	|SV *	|hv_delete_common					\
+				|NULLOK HV *hv				\
+				|NULLOK SV *keysv			\
+				|NULLOK const char *key 		\
+				|STRLEN klen				\
+				|int k_flags				\
+				|I32 d_flags				\
+				|U32 hash
+S	|SV *	|hv_free_ent_ret|NN HE *entry
+S	|void	|hv_free_entries|NN HV *hv
+ST	|void	|hv_magic_check |NN HV *hv				\
+				|NN bool *needs_copy			\
+				|NN bool *needs_store
+Sr	|void	|hv_notallowed	|int flags				\
+				|NN const char *key			\
+				|I32 klen				\
+				|NN const char *msg
+S	|SV *	|refcounted_he_value					\
+				|NN const struct refcounted_he *he
+RSTa	|HEK *	|save_hek_flags |NN const char *str			\
+				|I32 len				\
+				|U32 hash				\
+				|int flags
+RS	|HEK *	|share_hek_flags|NN const char *str			\
+				|STRLEN len				\
+				|U32 hash				\
+				|int flags
+S	|void	|unshare_hek_or_pvn					\
+				|NULLOK const HEK *hek			\
+				|NULLOK const char *str 		\
+				|I32 len				\
+				|U32 hash
+# if !defined(PURIFY)
+RS	|HE *	|new_he
+# endif
+#endif /* defined(PERL_IN_HV_C) */
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
+: Used in hv.c and mg.c
+opx	|void	|sv_kill_backrefs					\
+				|NN SV * const sv			\
+				|NULLOK AV * const av
 #endif
-EdXxp	|bool	|validate_proto	|NN SV *name|NULLOK SV *proto|bool warn \
-		|bool curstash
-
-#if defined(PERL_IN_UNIVERSAL_C)
-SG	|bool	|isa_lookup	|NULLOK HV *stash|NULLOK SV *namesv|NULLOK const char * name \
-                                        |STRLEN len|U32 flags
-SG   |bool   |sv_derived_from_svpvn  |NULLOK SV *sv			\
-				     |NULLOK SV *namesv			\
-				     |NULLOK const char * name		\
-				     |const STRLEN len			\
-				     |U32 flags
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+op	|SV *	|hfree_next_entry					\
+				|NN HV *hv				\
+				|NN STRLEN *indexp
 #endif
-
 #if defined(PERL_IN_LOCALE_C)
-#  ifdef USE_LOCALE
-ST	|const char*|category_name |const int category
-S	|const char*|switch_category_locale_to_template|const int switch_category|const int template_category|NULLOK const char * template_locale
-S	|void	|restore_switched_locale|const int category|NULLOK const char * const original_locale
-#  endif
-#  ifdef HAS_NL_LANGINFO
-ST	|const char*|my_nl_langinfo|const nl_item item|bool toggle
-#  else
-ST	|const char*|my_nl_langinfo|const int item|bool toggle
-#  endif
-iTR	|const char *|save_to_buffer|NULLOK const char * string	\
-				    |NULLOK char **buf		\
-				    |NN Size_t *buf_size	\
-				    |const Size_t offset
-#  if defined(USE_LOCALE)
-S	|char*	|stdize_locale	|NN char* locs
-S	|void	|new_collate	|NULLOK const char* newcoll
-S	|void	|new_ctype	|NN const char* newctype
-S	|void	|set_numeric_radix|const bool use_locale
-S	|void	|new_numeric	|NULLOK const char* newnum
-#    ifdef USE_POSIX_2008_LOCALE
-ST	|const char*|emulate_setlocale|const int category		\
-				    |NULLOK const char* locale		\
-				    |unsigned int index			\
-				    |const bool is_index_valid
-#    endif
-#    ifdef WIN32
-S	|char*	|win32_setlocale|int category|NULLOK const char* locale
-#    endif
-#    ifdef DEBUGGING
-S	|void	|print_collxfrm_input_and_return		\
-			    |NN const char * const s		\
-			    |NN const char * const e		\
-			    |NULLOK const STRLEN * const xlen	\
-			    |const bool is_utf8
-S	|void	|print_bytes_for_locale	|NN const char * const s	\
-					|NN const char * const e	\
-					|const bool is_utf8
-STR	|char *	|setlocale_debug_string	|const int category		    \
-					|NULLOK const char* const locale    \
-					|NULLOK const char* const retval
-#    endif
-#  endif
-#endif
-
-#if        defined(USE_LOCALE)		\
-    && (   defined(PERL_IN_LOCALE_C)	\
-        || defined(PERL_IN_MG_C)	\
-	|| defined (PERL_EXT_POSIX)	\
-	|| defined (PERL_EXT_LANGINFO))
-Cp	|bool	|_is_cur_LC_category_utf8|int category
+S	|utf8ness_t|get_locale_string_utf8ness_i			\
+				|NULLOK const char *string		\
+				|const locale_utf8ness_t known_utf8	\
+				|NULLOK const char *locale		\
+				|const unsigned cat_index
+S	|bool	|is_locale_utf8 |NN const char *locale
+# if defined(HAS_LOCALECONV)
+S	|HV *	|my_localeconv	|const int item
+S	|void	|populate_hash_from_localeconv				\
+				|NN HV *hv				\
+				|NN const char *locale			\
+				|const U32 which_mask			\
+				|NN const lconv_offset_t *strings[2]	\
+				|NULLOK const lconv_offset_t *integers
+# endif
+# if defined(USE_LOCALE)
+ST	|unsigned int|get_category_index				\
+				|const int category			\
+				|NULLOK const char *locale
+ST	|int	|get_category_index_nowarn				\
+				|const int category
+Ri	|const char *|mortalized_pv_copy				\
+				|NULLOK const char * const pv
+S	|void	|new_LC_ALL	|NULLOK const char *unused		\
+				|bool force
+So	|void	|restore_toggled_locale_i				\
+				|const unsigned cat_index		\
+				|NULLOK const char *original_locale	\
+				|const line_t caller_line
+ST	|const char *|save_to_buffer					\
+				|NULLOK const char *string		\
+				|NULLOK const char **buf		\
+				|NULLOK Size_t *buf_size
+Sr	|void	|setlocale_failure_panic_i				\
+				|const unsigned int cat_index		\
+				|NULLOK const char *current		\
+				|NN const char *failed			\
+				|const line_t caller_0_line		\
+				|const line_t caller_1_line
+S	|const char *|stdize_locale					\
+				|const int category			\
+				|NULLOK const char *input_locale	\
+				|NULLOK const char **buf		\
+				|NULLOK Size_t *buf_size		\
+				|line_t caller_line
+So	|const char *|toggle_locale_i					\
+				|const unsigned switch_cat_index	\
+				|NN const char *new_locale		\
+				|const line_t caller_line
+#   if defined(DEBUGGING)
+RS	|char * |my_setlocale_debug_string_i				\
+				|const unsigned cat_index		\
+				|NULLOK const char *locale		\
+				|NULLOK const char *retval		\
+				|const line_t line
+#   endif
+#   if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L)
+S	|const char *|my_langinfo_i					\
+				|const nl_item item			\
+				|const unsigned int cat_index		\
+				|NN const char *locale			\
+				|NN const char **retbufp		\
+				|NULLOK Size_t *retbuf_sizep		\
+				|NULLOK utf8ness_t *utf8ness
+#   else
+S	|const char *|my_langinfo_i					\
+				|const int item 			\
+				|const unsigned int cat_index		\
+				|NN const char *locale			\
+				|NN const char **retbufp		\
+				|NULLOK Size_t *retbuf_sizep		\
+				|NULLOK utf8ness_t *utf8ness
+#   endif
+#   if defined(USE_LOCALE_COLLATE)
+S	|void	|new_collate	|NN const char *newcoll 		\
+				|bool force
+#     if defined(DEBUGGING)
+S	|void	|print_collxfrm_input_and_return			\
+				|NN const char *s			\
+				|NN const char *e			\
+				|NULLOK const char *xbuf		\
+				|const STRLEN xlen			\
+				|const bool is_utf8
+#     endif
+#   endif
+#   if defined(USE_LOCALE_CTYPE)
+ST	|bool	|is_codeset_name_UTF8					\
+				|NN const char *name
+S	|void	|new_ctype	|NN const char *newctype		\
+				|bool force
+#   endif
+#   if defined(USE_LOCALE_NUMERIC)
+S	|void	|new_numeric	|NN const char *newnum			\
+				|bool force
+#   endif
+#   if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
+S	|const char *|get_LC_ALL_display
+#   endif
+#   if defined(USE_POSIX_2008_LOCALE)
+S	|const char *|emulate_setlocale_i				\
+				|const unsigned int index		\
+				|NULLOK const char *new_locale		\
+				|const recalc_lc_all_t recalc_LC_ALL	\
+				|const line_t line
+S	|const char *|my_querylocale_i					\
+				|const unsigned int index
+S	|const char *|setlocale_from_aggregate_LC_ALL			\
+				|NN const char *locale			\
+				|const line_t line
+S	|locale_t|use_curlocale_scratch
+#     if defined(USE_QUERYLOCALE)
+S	|const char *|calculate_LC_ALL					\
+				|const locale_t cur_obj
+#     else
+S	|const char *|update_PL_curlocales_i				\
+				|const unsigned int index		\
+				|NN const char *new_locale		\
+				|recalc_lc_all_t recalc_LC_ALL
+#     endif
+#   elif  defined(USE_LOCALE_THREADS) &&                  \
+         !defined(USE_THREAD_SAFE_LOCALE) &&              \
+         !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* &&
+         !defined(USE_POSIX_2008_LOCALE) */
+S	|const char *|less_dicey_setlocale_r				\
+				|const int category			\
+				|NULLOK const char *locale
+: Not currently used
+S	|void	|less_dicey_void_setlocale_i				\
+				|const unsigned cat_index		\
+				|NN const char *locale			\
+				|const line_t line
+#     if 0
+S	|bool	|less_dicey_bool_setlocale_r				\
+				|const int cat				\
+				|NN const char *locale
+#     endif
+#   endif
+#   if !(  defined(USE_POSIX_2008_LOCALE) && defined(USE_QUERYLOCALE) ) && \
+        ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) ||            \
+           defined(WIN32) )
+S	|const char *|calculate_LC_ALL					\
+				|NN const char **individ_locales
+#   endif
+#   if defined(WIN32)
+ST	|wchar_t *|Win_byte_string_to_wstring				\
+				|const UINT code_page			\
+				|NULLOK const char *byte_string
+S	|const char *|win32_setlocale					\
+				|int category				\
+				|NULLOK const char *locale
+ST	|char * |Win_wstring_to_byte_string				\
+				|const UINT code_page			\
+				|NULLOK const wchar_t *wstring
+S	|const char *|wrap_wsetlocale					\
+				|const int category			\
+				|NULLOK const char *locale
+#   endif
+#   if   defined(WIN32) || \
+       ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
+S	|const char *|find_locale_from_environment			\
+				|const unsigned int index
+#   endif
+# endif /* defined(USE_LOCALE) */
+# if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING)
+S	|const char *|get_displayable_string				\
+				|NN const char * const s		\
+				|NN const char * const e		\
+				|const bool is_utf8
+# endif
+#endif /* defined(PERL_IN_LOCALE_C) */
+#if defined(PERL_IN_MALLOC_C)
+ST	|int	|adjust_size_and_find_bucket				\
+				|NN size_t *nbytes_p
 #endif
-
-
-#if defined(PERL_IN_UTIL_C)
-S	|SV*	|mess_alloc
-S	|SV *	|with_queued_errors|NN SV *ex
-S	|bool	|invoke_exception_hook|NULLOK SV *ex|bool warn
-#  if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-ST	|void	|mem_log_common	|enum mem_log_type mlt|const UV n|const UV typesize \
-				|NN const char *type_name|NULLOK const SV *sv \
-				|Malloc_t oldalloc|Malloc_t newalloc \
-				|NN const char *filename|const int linenumber \
-				|NN const char *funcname
-#  endif
+#if defined(PERL_IN_MATHOMS_C) || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_PERLY_C)   || defined(PERL_IN_TOKE_C)
+Mbp	|OP *	|ref		|NULLOK OP *o				\
+				|I32 type
 #endif
+#if defined(PERL_IN_MG_C)
 
-#if defined(PERL_MEM_LOG)
-CpT	|Malloc_t	|mem_log_alloc	|const UV nconst|UV typesize|NN const char *type_name|Malloc_t newalloc|NN const char *filename|const int linenumber|NN const char *funcname
-CpT	|Malloc_t	|mem_log_realloc	|const UV n|const UV typesize|NN const char *type_name|Malloc_t oldalloc|Malloc_t newalloc|NN const char *filename|const int linenumber|NN const char *funcname
-CpT	|Malloc_t	|mem_log_free	|Malloc_t oldalloc|NN const char *filename|const int linenumber|NN const char *funcname
-CpT	|void		|mem_log_new_sv|NN const SV *sv|NN const char *filename|int linenumber|NN const char *funcname
-CpT	|void		|mem_log_del_sv|NN const SV *sv|NN const char *filename|int linenumber|NN const char *funcname
+S	|void	|fixup_errno_string					\
+				|NN SV *sv
+S	|SV *	|magic_methcall1|NN SV *sv				\
+				|NN const MAGIC *mg			\
+				|NN SV *meth				\
+				|U32 flags				\
+				|int n					\
+				|NULLOK SV *val
+S	|int	|magic_methpack |NN SV *sv				\
+				|NN const MAGIC *mg			\
+				|NN SV *meth
+S	|void	|restore_magic	|NULLOK const void *p
+S	|void	|save_magic_flags					\
+				|SSize_t mgs_ix 			\
+				|NN SV *sv				\
+				|U32 flags
+S	|void	|unwind_handler_stack					\
+				|NULLOK const void *p
 #endif
-
-#if defined(PERL_IN_UTF8_C)
-SR	|HV *	|new_msg_hv |NN const char * const message		    \
-			    |U32 categories				    \
-			    |U32 flag
-SR	|UV	|check_locale_boundary_crossing				    \
-		|NN const U8* const p					    \
-		|const UV result					    \
-		|NN U8* const ustrp					    \
-		|NN STRLEN *lenp
-iR	|bool	|is_utf8_common	|NN const U8 *const p			    \
-				|NN const U8 *const e			    \
-				|NULLOK SV* const invlist
-#endif
-
-EXiTp	|void	|append_utf8_from_native_byte|const U8 byte|NN U8** dest
-
-Apd	|void	|sv_set_undef	|NN SV *sv
-Apd	|void	|sv_setsv_flags	|NN SV *dsv|NULLOK SV *ssv|const I32 flags
-Apd	|void	|sv_catpvn_flags|NN SV *const dsv|NN const char *sstr|const STRLEN len \
-				|const I32 flags
-Apd	|void	|sv_catpv_flags	|NN SV *dsv|NN const char *sstr \
-				|const I32 flags
-Apd	|void	|sv_catsv_flags	|NN SV *const dsv|NULLOK SV *const sstr|const I32 flags
-Amd	|STRLEN	|sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
-Adp	|STRLEN	|sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
-Apd	|char*	|sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags
-AdpMb	|void	|sv_copypv	|NN SV *const dsv|NN SV *const ssv
-Amd	|void	|sv_copypv_nomg	|NN SV *const dsv|NN SV *const ssv
-Apd	|void	|sv_copypv_flags	|NN SV *const dsv|NN SV *const ssv|const I32 flags
-Cpo	|char*	|my_atof2	|NN const char *orig|NN NV* value
-Cp	|char*	|my_atof3	|NN const char *orig|NN NV* value|const STRLEN len
-CpdT	|int	|my_socketpair	|int family|int type|int protocol|int fd[2]
-ApTd	|int	|my_dirfd	|NULLOK DIR* dir
-#ifdef PERL_ANY_COW
-: Used in regexec.c
-pxXE	|SV*	|sv_setsv_cow	|NULLOK SV* dsv|NN SV* ssv
+#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
+Tp	|bool	|translate_substr_offsets				\
+				|STRLEN curlen				\
+				|IV pos1_iv				\
+				|bool pos1_is_uv			\
+				|IV len_iv				\
+				|bool len_is_uv 			\
+				|NN STRLEN *posp			\
+				|NN STRLEN *lenp
 #endif
-
-Cop	|const char *|PerlIO_context_layers|NULLOK const char *mode
-
-#if defined(USE_PERLIO)
-Apdh	|void	|PerlIO_clearerr	|NULLOK PerlIO *f
-Apdh	|int	|PerlIO_close		|NULLOK PerlIO *f
-Apdh	|int	|PerlIO_eof		|NULLOK PerlIO *f
-Apdh	|int	|PerlIO_error		|NULLOK PerlIO *f
-Apdh	|int	|PerlIO_fileno		|NULLOK PerlIO *f
-Apd	|int	|PerlIO_fill		|NULLOK PerlIO *f
-Apdh	|int	|PerlIO_flush		|NULLOK PerlIO *f
-Apdh	|STDCHAR *|PerlIO_get_base	|NULLOK PerlIO *f
-ApRdh	|SSize_t  |PerlIO_get_bufsiz	|NULLOK PerlIO *f
-ApRdh	|SSize_t  |PerlIO_get_cnt	|NULLOK PerlIO *f
-Apdh	|STDCHAR *|PerlIO_get_ptr	|NULLOK PerlIO *f
-Apdh	|SSize_t|PerlIO_read		|NULLOK PerlIO *f|NN void *vbuf \
-	|Size_t count
-Xp	|void	|PerlIO_restore_errno	|NULLOK PerlIO *f
-Xp	|void	|PerlIO_save_errno	|NULLOK PerlIO *f
-Apdh	|int	|PerlIO_seek		|NULLOK PerlIO *f|Off_t offset|int whence
-Apdh	|void	|PerlIO_set_cnt		|NULLOK PerlIO *f|SSize_t cnt
-Apdh	|void	|PerlIO_setlinebuf	|NULLOK PerlIO *f
-Apdh	|void	|PerlIO_set_ptrcnt	|NULLOK PerlIO *f|NULLOK STDCHAR *ptr \
-	|SSize_t cnt
-ApRdh	|PerlIO *|PerlIO_stderr
-ApRdh	|PerlIO *|PerlIO_stdin
-ApRdh	|PerlIO *|PerlIO_stdout
-Apdh	|Off_t	|PerlIO_tell		|NULLOK PerlIO *f
-Apd	|SSize_t|PerlIO_unread		|NULLOK PerlIO *f|NN const void *vbuf \
-	|Size_t count
-Apdh	|SSize_t|PerlIO_write		|NULLOK PerlIO *f|NN const void *vbuf \
-	|Size_t count
-#endif /* USE_PERLIO */
-
-: Only used in dump.c
-p	|void	|deb_stack_all
-#if defined(PERL_IN_DEB_C)
-S	|void	|deb_stack_n	|NN SV** stack_base|I32 stack_min \
-				|I32 stack_max|I32 mark_min|I32 mark_max
+#if defined(PERL_IN_MRO_C)
+S	|void	|mro_clean_isarev					\
+				|NN HV * const isa			\
+				|NN const char * const name		\
+				|const STRLEN len			\
+				|NULLOK HV * const exceptions		\
+				|U32 hash				\
+				|U32 flags
+S	|void	|mro_gather_and_rename					\
+				|NN HV * const stashes			\
+				|NN HV * const seen_stashes		\
+				|NULLOK HV *stash			\
+				|NULLOK HV *oldstash			\
+				|NN SV *namesv
+Sd	|AV *	|mro_get_linear_isa_dfs 				\
+				|NN HV *stash				\
+				|U32 level
+#endif
+#if defined(PERL_IN_NUMERIC_C)
+S	|void	|output_non_portable					\
+				|const U8 shift
 #endif
-
-: pad API
-ApdR	|PADLIST*|pad_new	|int flags
-#ifdef DEBUGGING
-pTX	|void|set_padlist| NN CV * cv | NULLOK PADLIST * padlist
+#if defined(PERL_IN_OP_C)
+S	|void	|apply_attrs	|NN HV *stash				\
+				|NN SV *target				\
+				|NULLOK OP *attrs
+S	|void	|apply_attrs_my |NN HV *stash				\
+				|NN OP *target				\
+				|NULLOK OP *attrs			\
+				|NN OP **imopsp
+RS	|I32	|assignment_type|NULLOK const OP *o
+S	|void	|bad_type_gv	|I32 n					\
+				|NN GV *gv				\
+				|NN const OP *kid			\
+				|NN const char *t
+S	|void	|bad_type_pv	|I32 n					\
+				|NN const char *t			\
+				|NN const OP *o 			\
+				|NN const OP *kid
+S	|void	|clear_special_blocks					\
+				|NN const char * const fullname 	\
+				|NN GV * const gv			\
+				|NN CV * const cv
+S	|void	|cop_free	|NN COP *cop
+S	|OP *	|dup_attrlist	|NN OP *o
+S	|void	|find_and_forget_pmops					\
+				|NN OP *o
+: FIXME
+S	|OP *	|fold_constants |NN OP * const o
+S	|OP *	|force_list	|NULLOK OP *arg 			\
+				|bool nullit
+S	|void	|forget_pmop	|NN PMOP * const o
+S	|void	|gen_constant_list					\
+				|NULLOK OP *o
+S	|void	|inplace_aassign|NN OP *o
+RST	|bool	|is_handle_constructor					\
+				|NN const OP *o 			\
+				|I32 numargs
+S	|OP *	|listkids	|NULLOK OP *o
+S	|bool	|looks_like_bool|NN const OP *o
+S	|OP *	|modkids	|NULLOK OP *o				\
+				|I32 type
+S	|void	|move_proto_attr|NN OP **proto				\
+				|NN OP **attrs				\
+				|NN const GV *name			\
+				|bool curstash
+S	|OP *	|my_kid 	|NULLOK OP *o				\
+				|NULLOK OP *attrs			\
+				|NN OP **imopsp
+S	|OP *	|newGIVWHENOP	|NULLOK OP *cond			\
+				|NN OP *block				\
+				|I32 enter_opcode			\
+				|I32 leave_opcode			\
+				|PADOFFSET entertarg
+RS	|OP *	|new_logop	|I32 type				\
+				|I32 flags				\
+				|NN OP **firstp 			\
+				|NN OP **otherp
+i	|OP *	|newMETHOP_internal					\
+				|I32 type				\
+				|I32 flags				\
+				|NULLOK OP *dynamic_meth		\
+				|NULLOK SV * const_meth
+RS	|OP *	|no_fh_allowed	|NN OP *o
+i	|OP *	|op_integerize	|NN OP *o
+i	|OP *	|op_std_init	|NN OP *o
+S	|OP *	|pmtrans	|NN OP *o				\
+				|NN OP *expr				\
+				|NN OP *repl
+S	|bool	|process_special_blocks 				\
+				|I32 floor				\
+				|NN const char * const fullname 	\
+				|NN GV * const gv			\
+				|NN CV * const cv
+S	|OP *	|ref_array_or_hash					\
+				|NULLOK OP *cond
+S	|OP *	|refkids	|NULLOK OP *o				\
+				|I32 type
+S	|OP *	|scalarboolean	|NN OP *o
+S	|OP *	|scalarkids	|NULLOK OP *o
+RST	|bool	|scalar_mod_type|NULLOK const OP *o			\
+				|I32 type
+RS	|OP *	|search_const	|NN OP *o
+S	|void	|simplify_sort	|NN OP *o
+RS	|OP *	|too_few_arguments_pv					\
+				|NN OP *o				\
+				|NN const char *name			\
+				|U32 flags
+S	|OP *	|too_many_arguments_pv					\
+				|NN OP *o				\
+				|NN const char *name			\
+				|U32 flags
+S	|OP *	|voidnonfinal	|NULLOK OP *o
+#endif /* defined(PERL_IN_OP_C) */
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
+Ti	|bool	|PadnameIN_SCOPE|NN const PADNAME * const pn		\
+				|const U32 seq
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+p	|void	|check_hash_fields_and_hekify				\
+				|NULLOK UNOP *rop			\
+				|NULLOK SVOP *key_op			\
+				|int real
+p	|void	|no_bareword_allowed					\
+				|NN OP *o
+Tp	|void	|op_prune_chain_head					\
+				|NN OP **op_p
+p	|SV *	|op_varname	|NN const OP *o
+p	|void	|warn_elem_scalar_context				\
+				|NN const OP *o 			\
+				|NN SV *name				\
+				|bool is_hash				\
+				|bool is_slice
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+ERTi	|STRLEN *|get_invlist_iter_addr 				\
+				|NN SV *invlist
+ETi	|void	|invlist_iterfinish					\
+				|NN SV *invlist
+ETi	|void	|invlist_iterinit					\
+				|NN SV *invlist
+ERTi	|bool	|invlist_iternext					\
+				|NN SV *invlist 			\
+				|NN UV *start				\
+				|NN UV *end
 #endif
-#if defined(PERL_IN_PAD_C)
-Sd	|PADOFFSET|pad_alloc_name|NN PADNAME *name|U32 flags \
-				|NULLOK HV *typestash|NULLOK HV *ourstash
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
+p	|void	|report_redefined_cv					\
+				|NN const SV *name			\
+				|NN const CV *old_cv			\
+				|NULLOK SV * const *new_const_svp
+Rp	|SV *	|varname	|NULLOK const GV * const gv		\
+				|const char gvtype			\
+				|PADOFFSET targ 			\
+				|NULLOK const SV * const keyname	\
+				|SSize_t aindex 			\
+				|int subscript_type
 #endif
-Apd	|PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
-				|U32 flags|NULLOK HV *typestash\
-				|NULLOK HV *ourstash
-Apd	|PADOFFSET|pad_add_name_pv|NN const char *name\
-				|const U32 flags|NULLOK HV *typestash\
-				|NULLOK HV *ourstash
-Apd	|PADOFFSET|pad_add_name_sv|NN SV *name\
-				|U32 flags|NULLOK HV *typestash\
-				|NULLOK HV *ourstash
-Axpd	|PADOFFSET|pad_alloc	|I32 optype|U32 tmptype
-Apd	|PADOFFSET|pad_add_anon	|NN CV* func|I32 optype
-p	|void	|pad_add_weakref|NN CV* func
 #if defined(PERL_IN_PAD_C)
-Sd	|void	|pad_check_dup	|NN PADNAME *name|U32 flags \
+Sd	|PADOFFSET|pad_alloc_name					\
+				|NN PADNAME *name			\
+				|U32 flags				\
+				|NULLOK HV *typestash			\
+				|NULLOK HV *ourstash
+Sd	|void	|pad_check_dup	|NN PADNAME *name			\
+				|U32 flags				\
 				|NULLOK const HV *ourstash
-#endif
-Apd	|PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
-Apd	|PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
-Apd	|PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
-ApdD	|PADOFFSET|find_rundefsvoffset	|
-Apd	|SV*	|find_rundefsv	|
-#if defined(PERL_IN_PAD_C)
-Sd	|PADOFFSET|pad_findlex	|NN const char *namepv|STRLEN namelen|U32 flags \
-				|NN const CV* cv|U32 seq|int warn \
-				|NULLOK SV** out_capture \
-				|NN PADNAME** out_name|NN int *out_flags
-#endif
-#ifdef DEBUGGING
-Cpd	|SV*	|pad_sv		|PADOFFSET po
-Cpd	|void	|pad_setsv	|PADOFFSET po|NN SV* sv
-#endif
-pd	|void	|pad_block_start|int full
-Apd	|U32	|intro_my
-pd	|OP *	|pad_leavemy
-pd	|void	|pad_swipe	|PADOFFSET po|bool refadjust
-#if defined(PERL_IN_PAD_C)
+Sd	|PADOFFSET|pad_findlex	|NN const char *namepv			\
+				|STRLEN namelen 			\
+				|U32 flags				\
+				|NN const CV *cv			\
+				|U32 seq				\
+				|int warn				\
+				|NULLOK SV **out_capture		\
+				|NN PADNAME **out_name			\
+				|NN int *out_flags
 Sd	|void	|pad_reset
+# if defined(DEBUGGING)
+Sd	|void	|cv_dump	|NN const CV *cv			\
+				|NN const char *title
+# endif
 #endif
-Axpd	|void	|pad_tidy	|padtidy_type type
-pd	|void	|pad_free	|PADOFFSET po
-pd	|void	|do_dump_pad	|I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
-#if defined(PERL_IN_PAD_C)
-#  if defined(DEBUGGING)
-Sd	|void	|cv_dump	|NN const CV *cv|NN const char *title
-#  endif
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-iT	|bool	|PadnameIN_SCOPE|NN const PADNAME * const pn|const U32 seq
-#endif
-Apd	|CV*	|cv_clone	|NN CV* proto
-p	|CV*	|cv_clone_into	|NN CV* proto|NN CV *target
-pd	|void	|pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
-pdX	|void	|pad_push	|NN PADLIST *padlist|int depth
-ApbdDR	|HV*	|pad_compname_type|const PADOFFSET po
-AxpdRT	|PADNAME *|padnamelist_fetch|NN PADNAMELIST *pnl|SSize_t key
-Xop	|void	|padnamelist_free|NN PADNAMELIST *pnl
-Axpd	|PADNAME **|padnamelist_store|NN PADNAMELIST *pnl|SSize_t key \
-				     |NULLOK PADNAME *val
-Xop	|void	|padname_free	|NN PADNAME *pn
-#if defined(USE_ITHREADS)
-pdR	|PADNAME *|padname_dup	|NN PADNAME *src|NN CLONE_PARAMS *param
-pdR	|PADNAMELIST *|padnamelist_dup|NN PADNAMELIST *srcpad \
-				      |NN CLONE_PARAMS *param
-pdR	|PADLIST *|padlist_dup	|NN PADLIST *srcpad \
-				|NN CLONE_PARAMS *param
-#endif
-p	|PAD **	|padlist_store	|NN PADLIST *padlist|I32 key \
-				|NULLOK PAD *val
-
-ApdR	|CV*	|find_runcv	|NULLOK U32 *db_seqp
-pR	|CV*	|find_runcv_where|U8 cond|IV arg \
-				 |NULLOK U32 *db_seqp
-: Only used in perl.c
-p	|void	|free_tied_hv_pool
-#if defined(DEBUGGING)
-: Used in mg.c
-pR	|int	|get_debug_opts	|NN const char **s|bool givehelp
+#if defined(PERL_IN_PEEP_C)
+S	|void	|finalize_op	|NN OP *o
+S	|void	|optimize_op	|NN OP *o
+Sd	|OP *	|traverse_op_tree					\
+				|NN OP *top				\
+				|NN OP *o
 #endif
-Cpd	|void	|save_set_svflags|NN SV *sv|U32 mask|U32 val
-#ifdef DEBUGGING
-Apod	|void	|hv_assert	|NN HV *hv
-#endif
-
-ApdR	|SV*	|hv_scalar	|NN HV *hv
-p	|void	|hv_pushkv	|NN HV *hv|U32 flags
-ApdRx	|SV*	|hv_bucket_ratio|NN HV *hv
-CpdoR	|I32*	|hv_riter_p	|NN HV *hv
-CpdoR	|HE**	|hv_eiter_p	|NN HV *hv
-Cpdo	|void	|hv_riter_set	|NN HV *hv|I32 riter
-Cpdo	|void	|hv_eiter_set	|NN HV *hv|NULLOK HE *eiter
-Cp	|void   |hv_rand_set    |NN HV *hv|U32 new_xhv_rand
-Ap	|void	|hv_name_set	|NN HV *hv|NULLOK const char *name|U32 len|U32 flags
-pd	|void	|hv_ename_add	|NN HV *hv|NN const char *name|U32 len \
+#if defined(PERL_IN_PERL_C)
+S	|void	|find_beginning |NN SV *linestr_sv			\
+				|NN PerlIO *rsfp
+S	|void	|forbid_setid	|const char flag			\
+				|const bool suidscript
+S	|void	|incpush	|NN const char * const dir		\
+				|STRLEN len				\
 				|U32 flags
-pd	|void	|hv_ename_delete|NN HV *hv|NN const char *name|U32 len \
+S	|void	|incpush_use_sep|NN const char *p			\
+				|STRLEN len				\
 				|U32 flags
-: Used in dump.c and hv.c
-pox	|AV**	|hv_backreferences_p	|NN HV *hv
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
-pox	|void	|hv_kill_backrefs	|NN HV *hv
-#endif
-Apd	|void	|hv_clear_placeholders	|NN HV *hv
-XpoR	|SSize_t*|hv_placeholders_p	|NN HV *hv
-CpdoR	|I32	|hv_placeholders_get	|NN const HV *hv
-Cpdo	|void	|hv_placeholders_set	|NN HV *hv|I32 ph
-
-: This is indirectly referenced by globals.c. This is somewhat annoying.
-p	|SV*	|magic_scalarpack|NN HV *hv|NN MAGIC *mg
+S	|void	|init_ids
+S	|void	|init_interp
+S	|void	|init_main_stash
+S	|void	|init_perllib
+S	|void	|init_postdump_symbols					\
+				|int argc				\
+				|NN char **argv 			\
+				|NULLOK char **env
+S	|void	|init_predump_symbols
+S	|SV *	|mayberelocate	|NN const char * const dir		\
+				|STRLEN len				\
+				|U32 flags
+Sr	|void	|minus_v
+Sr	|void	|my_exit_jump
+S	|void	|nuke_stacks
+S	|PerlIO *|open_script	|NN const char *scriptname		\
+				|bool dosearch				\
+				|NN bool *suidscript
 
-#if defined(PERL_IN_SV_C)
-S	|SV *	|find_hash_subscript|NULLOK const HV *const hv \
-		|NN const SV *const val
-S	|SSize_t|find_array_subscript|NULLOK const AV *const av \
-		|NN const SV *const val
-Sxd	|SV*	|find_uninit_var|NULLOK const OP *const obase \
-		|NULLOK const SV *const uninit_sv|bool match \
-		|NN const char **desc_p
+S	|void * |parse_body	|NULLOK char **env			\
+				|XSINIT_t xsinit
+Sr	|void	|run_body	|I32 oldscope
+Sr	|void	|usage
+# if !defined(PERL_IS_MINIPERL)
+S	|SV *	|incpush_if_exists					\
+				|NN AV * const av			\
+				|NN SV *dir				\
+				|NN SV * const stem
+# endif
+# if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
+So	|void	|validate_suid	|NN PerlIO *rsfp
+# endif
+#endif /* defined(PERL_IN_PERL_C) */
+#if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
+    defined(PERL_IN_UTF8_C)
+EXp	|bool	|_invlistEQ	|NN SV * const a			\
+				|NN SV * const b			\
+				|const bool complement_b
+ERXp	|SV *	|_new_invlist_C_array					\
+				|NN const UV * const list
 #endif
-
-Adp	|GV*	|gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type
-Adp	|GV*	|gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type
-
-#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
-: Used in sv.c
-p	|void	|dump_sv_child	|NN SV *sv
+#if defined(PERL_IN_PP_C)
+S	|size_t |do_chomp	|NN SV *retval				\
+				|NN SV *sv				\
+				|bool chomping
+S	|OP *	|do_delete_local
+RS	|SV *	|refto		|NN SV *sv
 #endif
-
-#ifdef PERL_DONT_CREATE_GVSV
-ApdbM	|GV*	|gv_SVadd	|NULLOK GV *gv
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+RTi	|bool	|lossless_NV_to_IV					\
+				|const NV nv				\
+				|NN IV *ivp
+: Used in pp_hot.c
+Reop	|GV *	|softref2xv	|NN SV * const sv			\
+				|NN const char * const what		\
+				|const svtype type			\
+				|NN SV ***spp
+#endif
+#if defined(PERL_IN_PP_C)   || defined(PERL_IN_REGCOMP_ANY) || \
+    defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+ETi	|const char *|get_regex_charset_name				\
+				|const U32 flags			\
+				|NN STRLEN * const lenp
+#endif
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
+p	|UV	|_to_upper_title_latin1 				\
+				|const U8 c				\
+				|NN U8 *p				\
+				|NN STRLEN *lenp			\
+				|const char S_or_s
 #endif
-#if defined(PERL_IN_UTIL_C)
-S	|bool	|ckwarn_common	|U32 w
+#if defined(PERL_IN_PP_CTL_C)
+RS	|PerlIO *|check_type_and_open					\
+				|NN SV *name
+S	|void	|destroy_matcher|NN PMOP *matcher
+RSd	|OP *	|docatch	|Perl_ppaddr_t firstpp
+S	|bool	|doeval_compile |U8 gimme				\
+				|NULLOK CV *outside			\
+				|U32 seq				\
+				|NULLOK HV *hh
+RS	|OP *	|dofindlabel	|NN OP *o				\
+				|NN const char *label			\
+				|STRLEN len				\
+				|U32 flags				\
+				|NN OP **opstack			\
+				|NN OP **oplimit
+S	|MAGIC *|doparseform	|NN SV *sv
+RS	|I32	|dopoptoeval	|I32 startingblock
+RS	|I32	|dopoptogivenfor|I32 startingblock
+RS	|I32	|dopoptolabel	|NN const char *label			\
+				|STRLEN len				\
+				|U32 flags
+RS	|I32	|dopoptoloop	|I32 startingblock
+RS	|I32	|dopoptosub_at	|NN const PERL_CONTEXT *cxstk		\
+				|I32 startingblock
+RS	|I32	|dopoptowhen	|I32 startingblock
+S	|OP *	|do_smartmatch	|NULLOK HV *seen_this			\
+				|NULLOK HV *seen_other			\
+				|const bool copied
+RS	|PMOP * |make_matcher	|NN REGEXP *re
+RS	|bool	|matcher_matches_sv					\
+				|NN PMOP *matcher			\
+				|NN SV *sv
+RST	|bool	|num_overflow	|NV value				\
+				|I32 fldsize				\
+				|I32 frcsize
+RTi	|bool	|path_is_searchable					\
+				|NN const char *name
+RS	|I32	|run_user_filter|int idx				\
+				|NN SV *buf_sv				\
+				|int maxlen
+S	|void	|rxres_free	|NN void **rsp
+S	|void	|rxres_restore	|NN void **rsp				\
+				|NN REGEXP *rx
+S	|void	|save_lines	|NULLOK AV *array			\
+				|NN SV *sv
+# if !defined(PERL_DISABLE_PMC)
+RS	|PerlIO *|doopen_pm	|NN SV *name
+# endif
+#endif /* defined(PERL_IN_PP_CTL_C) */
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
+p	|bool	|invoke_exception_hook					\
+				|NULLOK SV *ex				\
+				|bool warn
 #endif
-CpoP	|bool	|ckwarn		|U32 w
-CpoP	|bool	|ckwarn_d	|U32 w
-: FIXME - exported for ByteLoader - public or private?
-XEopxR	|STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \
-				|NN const char *const bits|STRLEN size
-
-AMpTdf	|int	|my_snprintf	|NN char *buffer|const Size_t len|NN const char *format|...
-AMpTd	|int	|my_vsnprintf	|NN char *buffer|const Size_t len|NN const char *format|va_list ap
-#ifdef USE_QUADMATH
-pTd	|bool	|quadmath_format_valid|NN const char* format
-pTd	|bool|quadmath_format_needed|NN const char* format
+#if defined(PERL_IN_PP_HOT_C)
+S	|void	|do_oddball	|NN SV **oddkey 			\
+				|NN SV **firstkey
+i	|HV *	|opmethod_stash |NN SV *meth
+IR	|bool	|should_we_output_Debug_r				\
+				|NN regexp *prog
 #endif
-
-: Used in mg.c, sv.c
-pe	|void	|my_clearenv
-
-#ifdef MULTIPLICITY
-Cpod	|void*	|my_cxt_init	|NN int *indexp|size_t size
+#if defined(PERL_IN_PP_PACK_C)
+S	|int	|div128 	|NN SV *pnum				\
+				|NN bool *done
+ST	|char	|first_symbol	|NN const char *pat			\
+				|NN const char *patend
+RS	|const char *|get_num	|NN const char *patptr			\
+				|NN SSize_t *lenptr
+S	|const char *|group_end |NN const char *patptr			\
+				|NN const char *patend			\
+				|char ender
+RS	|SV *	|is_an_int	|NN const char *s			\
+				|STRLEN l
+S	|SSize_t|measure_struct |NN struct tempsym *symptr
+S	|SV *	|mul128 	|NN SV *sv				\
+				|U8 m
+RST	|char * |my_bytes_to_utf8					\
+				|NN const U8 *start			\
+				|STRLEN len				\
+				|NN char *dest				\
+				|const bool needs_swap
+ST	|bool	|need_utf8	|NN const char *pat			\
+				|NN const char *patend
+S	|bool	|next_symbol	|NN struct tempsym *symptr
+S	|SV **	|pack_rec	|NN SV *cat				\
+				|NN struct tempsym *symptr		\
+				|NN SV **beglist			\
+				|NN SV **endlist
+RS	|char * |sv_exp_grow	|NN SV *sv				\
+				|STRLEN needed
+S	|SSize_t|unpack_rec	|NN struct tempsym *symptr		\
+				|NN const char *s			\
+				|NN const char *strbeg			\
+				|NN const char *strend			\
+				|NULLOK const char **new_s
+#endif /* defined(PERL_IN_PP_PACK_C) */
+#if defined(PERL_IN_PP_SORT_C)
+i	|I32	|amagic_cmp	|NN SV * const str1			\
+				|NN SV * const str2
+i	|I32	|amagic_cmp_desc|NN SV * const str1			\
+				|NN SV * const str2
+i	|I32	|amagic_i_ncmp	|NN SV * const a			\
+				|NN SV * const b
+i	|I32	|amagic_i_ncmp_desc					\
+				|NN SV * const a			\
+				|NN SV * const b
+i	|I32	|amagic_ncmp	|NN SV * const a			\
+				|NN SV * const b
+i	|I32	|amagic_ncmp_desc					\
+				|NN SV * const a			\
+				|NN SV * const b
+i	|I32	|cmp_desc	|NN SV * const str1			\
+				|NN SV * const str2
+S	|I32	|sortcv 	|NN SV * const a			\
+				|NN SV * const b
+S	|I32	|sortcv_stacked |NN SV * const a			\
+				|NN SV * const b
+S	|I32	|sortcv_xsub	|NN SV * const a			\
+				|NN SV * const b
+I	|void	|sortsv_flags_impl					\
+				|NULLOK SV **array			\
+				|size_t num_elts			\
+				|NN SVCOMPARE_t cmp			\
+				|U32 flags
+i	|I32	|sv_i_ncmp	|NN SV * const a			\
+				|NN SV * const b
+i	|I32	|sv_i_ncmp_desc |NN SV * const a			\
+				|NN SV * const b
+i	|I32	|sv_ncmp	|NN SV * const a			\
+				|NN SV * const b
+i	|I32	|sv_ncmp_desc	|NN SV * const a			\
+				|NN SV * const b
+# if defined(USE_LOCALE_COLLATE)
+i	|I32	|amagic_cmp_locale					\
+				|NN SV * const str1			\
+				|NN SV * const str2
+i	|I32	|amagic_cmp_locale_desc 				\
+				|NN SV * const str1			\
+				|NN SV * const str2
+i	|I32	|cmp_locale_desc|NN SV * const str1			\
+				|NN SV * const str2
+# endif
+#endif /* defined(PERL_IN_PP_SORT_C) */
+#if defined(PERL_IN_PP_SYS_C)
+S	|OP *	|doform 	|NN CV *cv				\
+				|NN GV *gv				\
+				|NULLOK OP *retop
+S	|SV *	|space_join_names_mortal				\
+				|NULLOK char * const *array
+# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+RS	|int	|dooneliner	|NN const char *cmd			\
+				|NN const char *filename
+# endif
 #endif
-#if defined(PERL_IN_UTIL_C)
-So	|void	|xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \
-				|STRLEN xs_len
+#if defined(PERL_IN_REGCOMP_ANY)
+Ep	|void	|add_above_Latin1_folds 				\
+				|NN RExC_state_t *pRExC_state		\
+				|const U8 cp				\
+				|NN SV **invlist
+Ep	|regnode *|construct_ahocorasick_from_trie			\
+				|NN RExC_state_t *pRExC_state		\
+				|NN regnode *source			\
+				|U32 depth
+ERp	|SV *	|get_ANYOFHbbm_contents 				\
+				|NN const regnode *n
+ERp	|SV *	|get_ANYOFM_contents					\
+				|NN const regnode *n
+ERi	|SV *	|invlist_contents					\
+				|NN SV * const invlist			\
+				|const bool traditional_style
+ERTix	|UV	|invlist_highest_range_start				\
+				|NN SV * const invlist
+ERTi	|bool	|invlist_is_iterating					\
+				|NN const SV * const invlist
+ERTix	|UV	|invlist_lowest |NN SV * const invlist
+ETp	|bool	|is_ssc_worth_it|NN const RExC_state_t *pRExC_state	\
+				|NN const regnode_ssc *ssc
+Ep	|U32	|join_exact	|NN RExC_state_t *pRExC_state		\
+				|NN regnode *scan			\
+				|NN UV *min_subtract			\
+				|NN bool *unfolded_multi_char		\
+				|U32 flags				\
+				|NULLOK regnode *val			\
+				|U32 depth
+Ep	|I32	|make_trie	|NN RExC_state_t *pRExC_state		\
+				|NN regnode *startbranch		\
+				|NN regnode *first			\
+				|NN regnode *last			\
+				|NN regnode *tail			\
+				|U32 word_count 			\
+				|U32 flags				\
+				|U32 depth
+Ep	|void	|populate_anyof_bitmap_from_invlist			\
+				|NN regnode *node			\
+				|NN SV **invlist_ptr
+ERTp	|U32	|reg_add_data	|NN RExC_state_t * const pRExC_state	\
+				|NN const char * const s		\
+				|const U32 n
+Ep	|void	|scan_commit	|NN const RExC_state_t *pRExC_state	\
+				|NN struct scan_data_t *data		\
+				|NN SSize_t *minlenp			\
+				|int is_inf
+Ep	|void	|set_ANYOF_arg	|NN RExC_state_t * const pRExC_state		\
+				|NN regnode * const node			\
+				|NULLOK SV * const cp_list			\
+				|NULLOK SV * const runtime_defns		\
+				|NULLOK SV * const only_utf8_locale_list
+Ep	|void	|ssc_finalize	|NN RExC_state_t *pRExC_state		\
+				|NN regnode_ssc *ssc
+Ep	|void	|ssc_init	|NN const RExC_state_t *pRExC_state	\
+				|NN regnode_ssc *ssc
+Ep	|SSize_t|study_chunk	|NN RExC_state_t *pRExC_state		\
+				|NN regnode **scanp			\
+				|NN SSize_t *minlenp			\
+				|NN SSize_t *deltap			\
+				|NN regnode *last			\
+				|NULLOK struct scan_data_t *data	\
+				|I32 stopparen				\
+				|U32 recursed_depth			\
+				|NULLOK regnode_ssc *and_withp		\
+				|U32 flags				\
+				|U32 depth				\
+				|bool was_mutate_ok
+# if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING)
+ES	|void	|dump_trie	|NN const struct _reg_trie_data *trie	\
+				|NULLOK HV *widecharmap 		\
+				|NN AV *revcharmap			\
+				|U32 depth
+ES	|void	|dump_trie_interim_list 				\
+				|NN const struct _reg_trie_data *trie	\
+				|NULLOK HV *widecharmap 		\
+				|NN AV *revcharmap			\
+				|U32 next_alloc 			\
+				|U32 depth
+ES	|void	|dump_trie_interim_table				\
+				|NN const struct _reg_trie_data *trie	\
+				|NULLOK HV *widecharmap 		\
+				|NN AV *revcharmap			\
+				|U32 next_alloc 			\
+				|U32 depth
+# endif
+#endif /* defined(PERL_IN_REGCOMP_ANY) */
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
+EXp	|SV *	|invlist_clone	|NN SV * const invlist			\
+				|NULLOK SV *newlist
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+ES	|AV *	|add_multi_match|NULLOK AV *multi_char_matches		\
+				|NN SV *multi_string			\
+				|const STRLEN cp_count
+ES	|void	|change_engine_size					\
+				|NN RExC_state_t *pRExC_state		\
+				|const Ptrdiff_t size
+ERS	|REGEXP *|compile_wildcard					\
+				|NN const char *subpattern		\
+				|const STRLEN len			\
+				|const bool ignore_case
+EST	|U8	|compute_EXACTish					\
+				|NN RExC_state_t *pRExC_state
+ERST	|int	|edit_distance	|NN const UV *src			\
+				|NN const UV *tgt			\
+				|const STRLEN x 			\
+				|const STRLEN y 			\
+				|const SSize_t maxDistance
+ES	|I32	|execute_wildcard					\
+				|NN REGEXP * const prog 		\
+				|NN char *stringarg			\
+				|NN char *strend			\
+				|NN char *strbeg			\
+				|SSize_t minend 			\
+				|NN SV *screamer			\
+				|U32 nosave
+ETi	|Size_t |find_first_differing_byte_pos				\
+				|NN const U8 *s1			\
+				|NN const U8 *s2			\
+				|const Size_t max
+ES	|U32	|get_quantifier_value					\
+				|NN RExC_state_t *pRExC_state		\
+				|NN const char *start			\
+				|NN const char *end
+ES	|bool	|grok_bslash_N	|NN RExC_state_t *pRExC_state		\
+				|NULLOK regnode_offset *nodep		\
+				|NULLOK UV *code_point_p		\
+				|NULLOK int *cp_count			\
+				|NN I32 *flagp				\
+				|const bool strict			\
+				|const U32 depth
+ES	|regnode_offset|handle_named_backref				\
+				|NN RExC_state_t *pRExC_state		\
+				|NN I32 *flagp				\
+				|NN char *backref_parse_start		\
+				|char ch
+ES	|bool	|handle_names_wildcard					\
+				|NN const char *wname			\
+				|const STRLEN wname_len 		\
+				|NN SV **prop_definition		\
+				|NN AV **strings
+ES	|int	|handle_possible_posix					\
+				|NN RExC_state_t *pRExC_state		\
+				|NN const char * const s		\
+				|NULLOK char **updated_parse_ptr	\
+				|NULLOK AV **posix_warnings		\
+				|const bool check_only
+ES	|regnode_offset|handle_regex_sets				\
+				|NN RExC_state_t *pRExC_state		\
+				|NULLOK SV **return_invlist		\
+				|NN I32 *flagp				\
+				|U32 depth
+ES	|SV *	|handle_user_defined_property				\
+				|NN const char *name			\
+				|const STRLEN name_len			\
+				|const bool is_utf8			\
+				|const bool to_fold			\
+				|const bool runtime			\
+				|const bool deferrable			\
+				|NN SV *contents			\
+				|NN bool *user_defined_ptr		\
+				|NN SV *msg				\
+				|const STRLEN level
+ES	|void	|nextchar	|NN RExC_state_t *pRExC_state
+ES	|U8	|optimize_regclass						\
+				|NN RExC_state_t *pRExC_state			\
+				|NULLOK SV *cp_list				\
+				|NULLOK SV *only_utf8_locale_list		\
+				|NULLOK SV *upper_latin1_only_utf8_matches	\
+				|const U32 has_runtime_dependency		\
+				|const U32 posixl				\
+				|NN U8 *anyof_flags				\
+				|NN bool *invert				\
+				|NN regnode_offset *ret 			\
+				|NN I32 *flagp
+ES	|void	|output_posix_warnings					\
+				|NN RExC_state_t *pRExC_state		\
+				|NN AV *posix_warnings
+ES	|void	|parse_lparen_question_flags				\
+				|NN RExC_state_t *pRExC_state
+ES	|SV *	|parse_uniprop_string					\
+				|NN const char * const name		\
+				|Size_t name_len			\
+				|const bool is_utf8			\
+				|const bool to_fold			\
+				|const bool runtime			\
+				|const bool deferrable			\
+				|NULLOK AV **strings			\
+				|NN bool *user_defined_ptr		\
+				|NN SV *msg				\
+				|const STRLEN level
+Sfr	|void	|re_croak	|bool utf8				\
+				|NN const char *pat			\
+				|...
+ES	|regnode_offset|reg	|NN RExC_state_t *pRExC_state		\
+				|I32 paren				\
+				|NN I32 *flagp				\
+				|U32 depth
+ES	|regnode_offset|regatom |NN RExC_state_t *pRExC_state		\
+				|NN I32 *flagp				\
+				|U32 depth
+ES	|regnode_offset|regbranch					\
+				|NN RExC_state_t *pRExC_state		\
+				|NN I32 *flagp				\
+				|I32 first				\
+				|U32 depth
+ES	|regnode_offset|regclass|NN RExC_state_t *pRExC_state		\
+				|NN I32 *flagp				\
+				|U32 depth				\
+				|const bool stop_at_1			\
+				|bool allow_multi_fold			\
+				|const bool silence_non_portable	\
+				|const bool strict			\
+				|bool optimizable			\
+				|NULLOK SV **ret_invlist
+ERST	|unsigned int|regex_set_precedence				\
+				|const U8 my_operator
+ES	|void	|reginsert	|NN RExC_state_t *pRExC_state		\
+				|const U8 op				\
+				|const regnode_offset operand		\
+				|const U32 depth
+ES	|regnode_offset|reg_la_NOTHING					\
+				|NN RExC_state_t *pRExC_state		\
+				|U32 flags				\
+				|NN const char *type
+ES	|regnode_offset|reg_la_OPFAIL					\
+				|NN RExC_state_t *pRExC_state		\
+				|U32 flags				\
+				|NN const char *type
+ES	|regnode_offset|reg1node|NN RExC_state_t *pRExC_state		\
+				|U8 op					\
+				|U32 arg
+ES	|regnode_offset|reg2node|NN RExC_state_t *pRExC_state		\
+				|const U8 op				\
+				|const U32 arg1 			\
+				|const I32 arg2
+ES	|regnode_offset|reg_node|NN RExC_state_t *pRExC_state		\
+				|U8 op
+ES	|regnode_offset|regnode_guts					\
+				|NN RExC_state_t *pRExC_state		\
+				|const STRLEN extra_len
+ES	|regnode_offset|regpiece|NN RExC_state_t *pRExC_state		\
+				|NN I32 *flagp				\
+				|U32 depth
+ES	|regnode_offset|regpnode|NN RExC_state_t *pRExC_state		\
+				|U8 op					\
+				|NN SV *arg
+ES	|SV *	|reg_scan_name	|NN RExC_state_t *pRExC_state		\
+				|U32 flags
+ETi	|char * |reg_skipcomment|NN RExC_state_t *pRExC_state		\
+				|NN char *p
+ERS	|bool	|regtail	|NN RExC_state_t *pRExC_state		\
+				|NN const regnode_offset p		\
+				|NN const regnode_offset val		\
+				|const U32 depth
+ES	|void	|set_regex_pv	|NN RExC_state_t *pRExC_state		\
+				|NN REGEXP *Rx
+ES	|void	|skip_to_be_ignored_text				\
+				|NN RExC_state_t *pRExC_state		\
+				|NN char **p				\
+				|const bool force_to_xmod
+# if defined(DEBUGGING)
+ES	|regnode_offset|regnode_guts_debug				\
+				|NN RExC_state_t *pRExC_state		\
+				|const U8 op				\
+				|const STRLEN extra_len
+ERS	|bool	|regtail_study	|NN RExC_state_t *pRExC_state		\
+				|NN regnode_offset p			\
+				|NN const regnode_offset val		\
+				|U32 depth
+#   if defined(ENABLE_REGEX_SETS_DEBUGGING)
+ES	|void	|dump_regex_sets_structures				\
+				|NN RExC_state_t *pRExC_state		\
+				|NN AV *stack				\
+				|const IV fence 			\
+				|NN AV *fence_stack
+#   endif
+# endif
+#endif /* defined(PERL_IN_REGCOMP_C) */
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
+Ep	|void	|populate_bitmap_from_invlist				\
+				|NN SV *invlist 			\
+				|const UV offset			\
+				|NN const U8 *bitmap			\
+				|const Size_t len
+Ep	|void	|populate_invlist_from_bitmap				\
+				|NN const U8 *bitmap			\
+				|const Size_t bitmap_len		\
+				|NN SV **invlist			\
+				|const UV offset
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+    defined(PERL_IN_TOKE_C)
+ERp	|bool	|is_grapheme	|NN const U8 *strbeg			\
+				|NN const U8 *s 			\
+				|NN const U8 *strend			\
+				|const UV cp
 #endif
-FXpoT	|I32	|xs_handshake	|const U32 key|NN void * v_my_perl\
-				|NN const char * file| ...
-Xp	|void	|xs_boot_epilog	|const I32 ax
-#ifndef HAS_STRLCAT
-ApTd	|Size_t	|my_strlcat	|NULLOK char *dst|NULLOK const char *src|Size_t size
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+    defined(PERL_IN_UTF8_C)
+ETXp	|UV	|_to_fold_latin1|const U8 c				\
+				|NN U8 *p				\
+				|NN STRLEN *lenp			\
+				|const unsigned int flags
 #endif
-
-#ifndef HAS_STRLCPY
-ApTd	|Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t size
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
+ERTXp	|bool	|regcurly	|NN const char *s			\
+				|NN const char *e			\
+				|NULLOK const char *result[5]
+#endif
+#if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
+ES	|U8	|put_charclass_bitmap_innards				\
+				|NN SV *sv				\
+				|NULLOK char *bitmap			\
+				|NULLOK SV *nonbitmap_invlist		\
+				|NULLOK SV *only_utf8_locale_invlist	\
+				|NULLOK const regnode * const node	\
+				|const U8 flags 			\
+				|const bool force_as_is_display
+ES	|SV *	|put_charclass_bitmap_innards_common			\
+				|NN SV *invlist 			\
+				|NULLOK SV *posixes			\
+				|NULLOK SV *only_utf8			\
+				|NULLOK SV *not_utf8			\
+				|NULLOK SV *only_utf8_locale		\
+				|const bool invert
+ES	|void	|put_charclass_bitmap_innards_invlist			\
+				|NN SV *sv				\
+				|NN SV *invlist
+ES	|void	|put_code_point |NN SV *sv				\
+				|UV c
+ES	|void	|put_range	|NN SV *sv				\
+				|UV start				\
+				|const UV end				\
+				|const bool allow_literals
+ES	|void	|regdump_extflags					\
+				|NULLOK const char *lead		\
+				|const U32 flags
+ES	|void	|regdump_intflags					\
+				|NULLOK const char *lead		\
+				|const U32 flags
 #endif
+#if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+ES	|void	|_append_range_to_invlist				\
+				|NN SV * const invlist			\
+				|const UV start 			\
+				|const UV end
+ERTi	|IV *	|get_invlist_previous_index_addr			\
+				|NN SV *invlist
+S	|void	|initialize_invlist_guts				\
+				|NN SV *invlist 			\
+				|const Size_t initial_size
+ERTi	|UV *	|_invlist_array_init					\
+				|NN SV * const invlist			\
+				|const bool will_have_0
+Ei	|void	|invlist_clear	|NN SV *invlist
+ERTi	|UV	|invlist_max	|NN const SV * const invlist
+ERTi	|IV	|invlist_previous_index 				\
+				|NN SV * const invlist
+ES	|void	|invlist_replace_list_destroys_src			\
+				|NN SV *dest				\
+				|NN SV *src
+ETi	|void	|invlist_set_previous_index				\
+				|NN SV * const invlist			\
+				|const IV index
+ETi	|void	|invlist_trim	|NN SV *invlist
+#endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD) */
+#if defined(PERL_IN_REGCOMP_STUDY_C)
+ES	|SV *	|get_ANYOF_cp_list_for_ssc					\
+				|NN const RExC_state_t *pRExC_state		\
+				|NN const regnode_charclass * const node
+ERS	|SV *	|make_exactf_invlist					\
+				|NN RExC_state_t *pRExC_state		\
+				|NN regnode *node
+ES	|void	|rck_elide_nothing					\
+				|NN regnode *node
+ES	|void	|ssc_add_range	|NN regnode_ssc *ssc			\
+				|UV const start 			\
+				|UV const end
+ES	|void	|ssc_and	|NN const RExC_state_t *pRExC_state	\
+				|NN regnode_ssc *ssc			\
+				|NN const regnode_charclass *and_with
+ES	|void	|ssc_anything	|NN regnode_ssc *ssc
+EST	|void	|ssc_clear_locale					\
+				|NN regnode_ssc *ssc
+ES	|void	|ssc_cp_and	|NN regnode_ssc *ssc			\
+				|UV const cp
+ES	|void	|ssc_intersection					\
+				|NN regnode_ssc *ssc			\
+				|NN SV * const invlist			\
+				|const bool invert_2nd
+ERST	|int	|ssc_is_anything|NN const regnode_ssc *ssc
+ERST	|int	|ssc_is_cp_posixl_init					\
+				|NN const RExC_state_t *pRExC_state	\
+				|NN const regnode_ssc *ssc
+ES	|void	|ssc_or 	|NN const RExC_state_t *pRExC_state	\
+				|NN regnode_ssc *ssc			\
+				|NN const regnode_charclass *or_with
+ES	|void	|ssc_union	|NN regnode_ssc *ssc			\
+				|NN SV * const invlist			\
+				|const bool invert_2nd
+ES	|void	|unwind_scan_frames					\
+				|NN const void *p
+#endif /* defined(PERL_IN_REGCOMP_STUDY_C) */
+#if defined(PERL_IN_REGEXEC_C)
+ERS	|LB_enum|advance_one_LB |NN U8 **curpos 			\
+				|NN const U8 * const strend		\
+				|const bool utf8_target
+ERS	|SB_enum|advance_one_SB |NN U8 **curpos 			\
+				|NN const U8 * const strend		\
+				|const bool utf8_target
+ERS	|WB_enum|advance_one_WB |NN U8 **curpos 			\
+				|NN const U8 * const strend		\
+				|const bool utf8_target 		\
+				|const bool skip_Extend_Format
+ERS	|GCB_enum|backup_one_GCB|NN const U8 * const strbeg		\
+				|NN U8 **curpos 			\
+				|const bool utf8_target
+ERS	|LB_enum|backup_one_LB	|NN const U8 * const strbeg		\
+				|NN U8 **curpos 			\
+				|const bool utf8_target
+ERS	|SB_enum|backup_one_SB	|NN const U8 * const strbeg		\
+				|NN U8 **curpos 			\
+				|const bool utf8_target
+ERS	|WB_enum|backup_one_WB	|NN WB_enum *previous			\
+				|NN const U8 * const strbeg		\
+				|NN U8 **curpos 			\
+				|const bool utf8_target
+EWi	|void	|capture_clear	|NN regexp *rex 			\
+				|U16 from_ix				\
+				|U16 to_ix				\
+				|NN const char *str
+ERS	|char * |find_byclass	|NN regexp *prog			\
+				|NN const regnode *c			\
+				|NN char *s				\
+				|NN const char *strend			\
+				|NULLOK regmatch_info *reginfo
+ERST	|U8 *	|find_next_masked					\
+				|NN U8 *s				\
+				|NN const U8 *send			\
+				|const U8 byte				\
+				|const U8 mask
+ERST	|U8 *	|find_span_end	|NN U8 *s				\
+				|NN const U8 *send			\
+				|const U8 span_byte
+ERST	|U8 *	|find_span_end_mask					\
+				|NN U8 *s				\
+				|NN const U8 *send			\
+				|const U8 span_byte			\
+				|const U8 mask
+Ei	|I32	|foldEQ_latin1_s2_folded				\
+				|NN const char *a			\
+				|NN const char *b			\
+				|I32 len
+ERS	|bool	|isFOO_lc	|const U8 classnum			\
+				|const U8 character
+ERS	|bool	|isFOO_utf8_lc	|const U8 classnum			\
+				|NN const U8 *character 		\
+				|NN const U8 *e
+ERS	|bool	|isGCB		|const GCB_enum before			\
+				|const GCB_enum after			\
+				|NN const U8 * const strbeg		\
+				|NN const U8 * const curpos		\
+				|const bool utf8_target
+ERS	|bool	|isLB		|LB_enum before 			\
+				|LB_enum after				\
+				|NN const U8 * const strbeg		\
+				|NN const U8 * const curpos		\
+				|NN const U8 * const strend		\
+				|const bool utf8_target
+ERS	|bool	|isSB		|SB_enum before 			\
+				|SB_enum after				\
+				|NN const U8 * const strbeg		\
+				|NN const U8 * const curpos		\
+				|NN const U8 * const strend		\
+				|const bool utf8_target
+ERS	|bool	|isWB		|WB_enum previous			\
+				|WB_enum before 			\
+				|WB_enum after				\
+				|NN const U8 * const strbeg		\
+				|NN const U8 * const curpos		\
+				|NN const U8 * const strend		\
+				|const bool utf8_target
+ERST	|I32	|reg_check_named_buff_matched				\
+				|NN const regexp *rex			\
+				|NN const regnode *scan
+ESW	|void	|regcppop	|NN regexp *rex 			\
+				|NN U32 *maxopenparen_p
+ESW	|CHECKPOINT|regcppush	|NN const regexp *rex			\
+				|I32 parenfloor 			\
+				|U32 maxopenparen
+ESW	|void	|regcp_restore	|NN regexp *rex 			\
+				|I32 ix 				\
+				|NN U32 *maxopenparen_p
+ERST	|U8 *	|reghop3	|NN U8 *s				\
+				|SSize_t off				\
+				|NN const U8 *lim
+ERST	|U8 *	|reghop4	|NN U8 *s				\
+				|SSize_t off				\
+				|NN const U8 *llim			\
+				|NN const U8 *rlim
+ERST	|U8 *	|reghopmaybe3	|NN U8 *s				\
+				|SSize_t off				\
+				|NN const U8 * const lim
+ERS	|bool	|reginclass	|NULLOK regexp * const prog		\
+				|NN const regnode * const n		\
+				|NN const U8 * const p			\
+				|NN const U8 * const p_end		\
+				|bool const utf8_target
+ERS	|SSize_t|regmatch	|NN regmatch_info *reginfo		\
+				|NN char *startpos			\
+				|NN regnode *prog
+ERSW	|I32	|regrepeat	|NN regexp *prog			\
+				|NN char **startposp			\
+				|NN const regnode *p			\
+				|NN char *loceol			\
+				|NN regmatch_info * const reginfo	\
+				|NZ I32 max
+ERS	|bool	|regtry 	|NN regmatch_info *reginfo		\
+				|NN char **startposp
+ES	|bool	|to_byte_substr |NN regexp *prog
+ES	|void	|to_utf8_substr |NN regexp *prog
+EWi	|void	|unwind_paren	|NN regexp *rex 			\
+				|U32 lp 				\
+				|U32 lcp
+# if defined(DEBUGGING)
+ES	|void	|debug_start_match					\
+				|NN const REGEXP *prog			\
+				|const bool do_utf8			\
+				|NN const char *start			\
+				|NN const char *end			\
+				|NN const char *blurb
+ES	|void	|dump_exec_pos	|NN const char *locinput		\
+				|NN const regnode *scan 		\
+				|NN const char *loc_regeol		\
+				|NN const char *loc_bostr		\
+				|NN const char *loc_reg_starttry	\
+				|const bool do_utf8			\
+				|const U32 depth
 
-#ifndef HAS_STRNLEN
-AipTd	|Size_t |my_strnlen     |NN const char *str|Size_t maxlen
+EFp	|int	|re_exec_indentf|NN const char *fmt			\
+				|U32 depth				\
+				|...
+# endif
+#endif /* defined(PERL_IN_REGEXEC_C) */
+#if defined(PERL_IN_REGEX_ENGINE)
+CRip	|bool	|check_regnode_after					\
+				|NULLOK const regnode *p		\
+				|const STRLEN extra
+CRip	|regnode *|regnext	|NULLOK const regnode *p
+CRip	|regnode *|regnode_after|NULLOK const regnode *p		\
+				|bool varies
+# if defined(DEBUGGING)
+Ep	|void	|debug_peep	|NN const char *str			\
+				|NN const RExC_state_t *pRExC_state	\
+				|NULLOK regnode *scan			\
+				|U32 depth				\
+				|U32 flags
+Ep	|void	|debug_show_study_flags 				\
+				|U32 flags				\
+				|NN const char *open_str		\
+				|NN const char *close_str
+Ep	|void	|debug_studydata|NN const char *where			\
+				|NULLOK scan_data_t *data		\
+				|U32 depth				\
+				|int is_inf				\
+				|SSize_t min				\
+				|SSize_t stopmin			\
+				|SSize_t delta
+Ep	|const regnode *|dumpuntil					\
+				|NN const regexp *r			\
+				|NN const regnode *start		\
+				|NN const regnode *node 		\
+				|NULLOK const regnode *last		\
+				|NULLOK const regnode *plast		\
+				|NN SV *sv				\
+				|I32 indent				\
+				|U32 depth
+Ep	|void	|regprop	|NULLOK const regexp *prog		\
+				|NN SV *sv				\
+				|NN const regnode *o			\
+				|NULLOK const regmatch_info *reginfo	\
+				|NULLOK const RExC_state_t *pRExC_state
+EFp	|int	|re_indentf	|NN const char *fmt			\
+				|U32 depth				\
+				|...
+Efp	|int	|re_printf	|NN const char *fmt			\
+				|...
+# endif
+# if defined(PERL_EXT_RE_BUILD)
+Ep	|SV *	|get_re_gclass_aux_data 				\
+				|NULLOK const regexp *prog		\
+				|NN const struct regnode *node		\
+				|bool doinit				\
+				|NULLOK SV **listsvp			\
+				|NULLOK SV **lonly_utf8_locale		\
+				|NULLOK SV **output_invlist
+# else
+Ep	|SV *	|get_regclass_aux_data					\
+				|NULLOK const regexp *prog		\
+				|NN const struct regnode *node		\
+				|bool doinit				\
+				|NULLOK SV **listsvp			\
+				|NULLOK SV **lonly_utf8_locale		\
+				|NULLOK SV **output_invlist
+# endif
+#endif /* defined(PERL_IN_REGEX_ENGINE) */
+#if defined(PERL_IN_SCOPE_C)
+S	|void	|save_pushptri32ptr					\
+				|NULLOK void * const ptr1		\
+				|const I32 i				\
+				|NULLOK void * const ptr2		\
+				|const int type
+Sd	|SV *	|save_scalar_at |NN SV **sptr				\
+				|const U32 flags
 #endif
-
-#ifndef HAS_MKOSTEMP
-pTod	|int	|my_mkostemp	|NN char *templte|int flags
+#if defined(PERL_IN_SV_C)
+S	|void	|anonymise_cv_maybe					\
+				|NN GV *gv				\
+				|NN CV *cv
+S	|void	|assert_uft8_cache_coherent				\
+				|NN const char * const func		\
+				|STRLEN from_cache			\
+				|STRLEN real				\
+				|NN SV * const sv
+S	|bool	|curse		|NN SV * const sv			\
+				|const bool check_refcnt
+RS	|STRLEN |expect_number	|NN const char ** const pattern
+ST	|char * |F0convert	|NV nv					\
+				|NN char * const endbuf 		\
+				|NN STRLEN * const len
+S	|SSize_t|find_array_subscript					\
+				|NULLOK const AV * const av		\
+				|NN const SV * const val
+S	|SV *	|find_hash_subscript					\
+				|NULLOK const HV * const hv		\
+				|NN const SV * const val
+Sdx	|SV *	|find_uninit_var|NULLOK const OP * const obase		\
+				|NULLOK const SV * const uninit_sv	\
+				|bool match				\
+				|NN const char **desc_p
+S	|void	|glob_assign_glob					\
+				|NN SV * const dsv			\
+				|NN SV * const ssv			\
+				|const int dtype
+S	|bool	|glob_2number	|NN GV * const gv
+Cp	|SV *	|more_sv
+S	|void	|not_a_number	|NN SV * const sv
+S	|void	|not_incrementable					\
+				|NN SV * const sv
+RST	|PTR_TBL_ENT_t *|ptr_table_find 				\
+				|NN PTR_TBL_t * const tbl		\
+				|NULLOK const void * const sv
+Sd	|void	|sv_add_arena	|NN char * const ptr			\
+				|const U32 size 			\
+				|const U32 flags
+S	|const char *|sv_display|NN SV * const sv			\
+				|NN char *tmpbuf			\
+				|STRLEN tmpbuf_size
+S	|bool	|sv_2iuv_common |NN SV * const sv
+S	|STRLEN |sv_pos_b2u_midway					\
+				|NN const U8 * const s			\
+				|NN const U8 * const target		\
+				|NN const U8 *end			\
+				|STRLEN endu
+S	|STRLEN |sv_pos_u2b_cached					\
+				|NN SV * const sv			\
+				|NN MAGIC ** const mgp			\
+				|NN const U8 * const start		\
+				|NN const U8 * const send		\
+				|STRLEN uoffset 			\
+				|STRLEN uoffset0			\
+				|STRLEN boffset0
+ST	|STRLEN |sv_pos_u2b_forwards					\
+				|NN const U8 * const start		\
+				|NN const U8 * const send		\
+				|NN STRLEN * const uoffset		\
+				|NN bool * const at_end 		\
+				|NN bool *canonical_position
+ST	|STRLEN |sv_pos_u2b_midway					\
+				|NN const U8 * const start		\
+				|NN const U8 *send			\
+				|STRLEN uoffset 			\
+				|const STRLEN uend
+i	|void	|sv_unglob	|NN SV * const sv			\
+				|U32 flags
+RTi	|char * |uiv_2buf	|NN char * const buf			\
+				|const IV iv				\
+				|UV uv					\
+				|const int is_uv			\
+				|NN char ** const peob
+S	|void	|utf8_mg_len_cache_update				\
+				|NN SV * const sv			\
+				|NN MAGIC ** const mgp			\
+				|const STRLEN ulen
+S	|void	|utf8_mg_pos_cache_update				\
+				|NN SV * const sv			\
+				|NN MAGIC ** const mgp			\
+				|const STRLEN byte			\
+				|const STRLEN utf8			\
+				|const STRLEN blen
+S	|I32	|visit		|NN SVFUNC_t f				\
+				|const U32 flags			\
+				|const U32 mask
+# if defined(DEBUGGING)
+S	|void	|del_sv 	|NN SV *p
+# endif
+# if !defined(NV_PRESERVES_UV)
+#   if defined(DEBUGGING)
+S	|int	|sv_2iuv_non_preserve					\
+				|NN SV * const sv			\
+				|I32 numtype
+#   else
+S	|int	|sv_2iuv_non_preserve					\
+				|NN SV * const sv
+#   endif
+# endif
+# if defined(PERL_DEBUG_READONLY_COW)
+S	|void	|sv_buf_to_rw	|NN SV *sv
+# endif
+# if defined(USE_ITHREADS)
+RS	|SV *	|sv_dup_common	|NN const SV * const ssv		\
+				|NN CLONE_PARAMS * const param
+S	|void	|sv_dup_hvaux	|NN const SV * const ssv		\
+				|NN SV *dsv				\
+				|NN CLONE_PARAMS * const param
+S	|SV **	|sv_dup_inc_multiple					\
+				|NN SV * const *source			\
+				|NN SV **dest				\
+				|SSize_t items				\
+				|NN CLONE_PARAMS * const param
+S	|void	|unreferenced_to_tmp_stack				\
+				|NN AV * const unreferenced
+# endif
+#endif /* defined(PERL_IN_SV_C) */
+#if defined(PERL_IN_TOKE_C)
+S	|int	|ao		|int toketype
+S	|void	|checkcomma	|NN const char *s			\
+				|NN const char *name			\
+				|NN const char *what
+S	|void	|check_uni
+RS	|char * |filter_gets	|NN SV *sv				\
+				|STRLEN append
+RS	|HV *	|find_in_my_stash					\
+				|NN const char *pkgname 		\
+				|STRLEN len
+S	|void	|force_ident	|NN const char *s			\
+				|int kind
+S	|void	|force_ident_maybe_lex					\
+				|char pit
+S	|void	|force_next	|I32 type
+S	|char * |force_strict_version					\
+				|NN char *s
+S	|char * |force_version	|NN char *s				\
+				|int guessing
+S	|char * |force_word	|NN char *start 			\
+				|int token				\
+				|int check_keyword			\
+				|int allow_pack
+RS	|SV *	|get_and_check_backslash_N_name_wrapper 		\
+				|NN const char *s			\
+				|NN const char * const e
+S	|void	|incline	|NN const char *s			\
+				|NN const char *end
+S	|int	|intuit_method	|NN char *s				\
+				|NULLOK SV *ioname			\
+				|NULLOK CV *cv
+S	|int	|intuit_more	|NN char *s				\
+				|NN char *e
+S	|I32	|lop		|I32 f					\
+				|U8 x					\
+				|NN char *s
+Sr	|void	|missingterm	|NULLOK char *s 			\
+				|STRLEN len
+So	|SV *	|new_constant	|NULLOK const char *s			\
+				|STRLEN len				\
+				|NN const char *key			\
+				|STRLEN keylen				\
+				|NN SV *sv				\
+				|NULLOK SV *pv				\
+				|NULLOK const char *type		\
+				|STRLEN typelen 			\
+				|NULLOK const char **error_msg
+S	|void	|no_op		|NN const char * const what		\
+				|NULLOK char *s
+S	|void	|parse_ident	|NN char **s				\
+				|NN char **d				\
+				|NN char * const e			\
+				|int allow_package			\
+				|bool is_utf8				\
+				|bool check_dollar			\
+				|bool tick_warn
+S	|int	|pending_ident
+RS	|char * |scan_const	|NN char *start
+RS	|char * |scan_formline	|NN char *s
+RS	|char * |scan_heredoc	|NN char *s
+S	|char * |scan_ident	|NN char *s				\
+				|NN char *dest				\
+				|STRLEN destlen 			\
+				|I32 ck_uni
+RS	|char * |scan_inputsymbol					\
+				|NN char *start
+RS	|char * |scan_pat	|NN char *start 			\
+				|I32 type
+RS	|char * |scan_subst	|NN char *start
+RS	|char * |scan_trans	|NN char *start
+RS	|I32	|sublex_done
+RS	|I32	|sublex_push
+RS	|I32	|sublex_start
+RS	|char * |swallow_bom	|NN U8 *s
+RS	|char * |tokenize_use	|int is_use				\
+				|NN char *s
+S	|SV *	|tokeq		|NN SV *sv
+S	|void	|update_debugger_info					\
+				|NULLOK SV *orig_sv			\
+				|NULLOK const char * const buf		\
+				|STRLEN len
+S	|int	|yywarn 	|NN const char * const s		\
+				|U32 flags
+# if defined(DEBUGGING)
+Sf	|void	|printbuf	|NN const char * const fmt		\
+				|NN const char * const s
+S	|int	|tokereport	|I32 rv 				\
+				|NN const YYSTYPE *lvalp
+# endif
+# if defined(PERL_CR_FILTER)
+S	|I32	|cr_textfilter	|int idx				\
+				|NULLOK SV *sv				\
+				|int maxlen
+S	|void	|strip_return	|NN SV *sv
+# endif
+# if !defined(PERL_NO_UTF16_FILTER)
+S	|U8 *	|add_utf16_textfilter					\
+				|NN U8 * const s			\
+				|bool reversed
+S	|I32	|utf16_textfilter					\
+				|int idx				\
+				|NN SV *sv				\
+				|int maxlen
+# endif
+#endif /* defined(PERL_IN_TOKE_C) */
+#if defined(PERL_IN_UNIVERSAL_C)
+GS	|bool	|isa_lookup	|NULLOK HV *stash			\
+				|NULLOK SV *namesv			\
+				|NULLOK const char *name		\
+				|STRLEN len				\
+				|U32 flags
+GS	|bool	|sv_derived_from_svpvn					\
+				|NULLOK SV *sv				\
+				|NULLOK SV *namesv			\
+				|NULLOK const char *name		\
+				|const STRLEN len			\
+				|U32 flags
 #endif
-#ifndef HAS_MKSTEMP
-pTod	|int	|my_mkstemp	|NN char *templte
+#if defined(PERL_IN_UTF8_C)
+RS	|UV	|check_locale_boundary_crossing 			\
+				|NN const U8 * const p			\
+				|const UV result			\
+				|NN U8 * const ustrp			\
+				|NN STRLEN *lenp
+RTi	|int	|does_utf8_overflow					\
+				|NN const U8 * const s			\
+				|NN const U8 *e 			\
+				|const bool consider_overlongs
+RTi	|int	|isFF_overlong	|NN const U8 * const s			\
+				|const STRLEN len
+Ri	|bool	|is_utf8_common |NN const U8 * const p			\
+				|NN const U8 * const e			\
+				|NULLOK SV * const invlist
+RTi	|int	|is_utf8_overlong					\
+				|NN const U8 * const s			\
+				|const STRLEN len
+RS	|HV *	|new_msg_hv	|NN const char * const message		\
+				|U32 categories 			\
+				|U32 flag
+S	|UV	|to_case_cp_list|const UV original				\
+				|NULLOK const U32 ** const remaining_list	\
+				|NULLOK Size_t *remaining_count 		\
+				|NN SV *invlist 				\
+				|NN const I32 * const invmap			\
+				|NULLOK const U32 * const * const aux_tables	\
+				|NULLOK const U8 * const aux_table_lengths	\
+				|NN const char * const normal
+RST	|U8	|to_lower_latin1|const U8 c				\
+				|NULLOK U8 *p				\
+				|NULLOK STRLEN *lenp			\
+				|const char dummy
+S	|UV	|_to_utf8_case	|const UV original				\
+				|NULLOK const U8 *p				\
+				|NN U8 *ustrp					\
+				|NN STRLEN *lenp				\
+				|NN SV *invlist 				\
+				|NN const I32 * const invmap			\
+				|NULLOK const U32 * const * const aux_tables	\
+				|NULLOK const U8 * const aux_table_lengths	\
+				|NN const char * const normal
+S	|UV	|turkic_fc	|NN const U8 * const p			\
+				|NN const U8 * const e			\
+				|NN U8 *ustrp				\
+				|NN STRLEN *lenp
+S	|UV	|turkic_lc	|NN const U8 * const p0 		\
+				|NN const U8 * const e			\
+				|NN U8 *ustrp				\
+				|NN STRLEN *lenp
+S	|UV	|turkic_uc	|NN const U8 * const p			\
+				|NN const U8 * const e			\
+				|NN U8 *ustrp				\
+				|NN STRLEN *lenp
+RS	|char * |unexpected_non_continuation_text			\
+				|NN const U8 * const s			\
+				|STRLEN print_len			\
+				|const STRLEN non_cont_byte_pos 	\
+				|const STRLEN expect_len
+# if 0
+S	|void	|warn_on_first_deprecated_use				\
+				|U32 category				\
+				|NN const char * const name		\
+				|NN const char * const alternative	\
+				|const bool use_locale			\
+				|NN const char * const file		\
+				|const unsigned line
+# endif
+#endif /* defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_UTIL_C)
+S	|bool	|ckwarn_common	|U32 w
+S	|SV *	|mess_alloc
+Ti	|U32	|ptr_hash	|PTRV u
+S	|SV *	|with_queued_errors					\
+				|NN SV *ex
+So	|void	|xs_version_bootcheck					\
+				|U32 items				\
+				|U32 ax 				\
+				|NN const char *xs_p			\
+				|STRLEN xs_len
+# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+ST	|void	|mem_log_common |enum mem_log_type mlt			\
+				|const UV n				\
+				|const UV typesize			\
+				|NN const char *type_name		\
+				|NULLOK const SV *sv			\
+				|Malloc_t oldalloc			\
+				|Malloc_t newalloc			\
+				|NN const char *filename		\
+				|const int linenumber			\
+				|NN const char *funcname
+# endif
+# if defined(PERL_USES_PL_PIDSTATUS)
+S	|void	|pidgone	|Pid_t pid				\
+				|int status
+# endif
+#endif /* defined(PERL_IN_UTIL_C) */
+#if defined(PERL_MEM_LOG)
+CTp	|Malloc_t|mem_log_alloc |const UV nconst			\
+				|UV typesize				\
+				|NN const char *type_name		\
+				|Malloc_t newalloc			\
+				|NN const char *filename		\
+				|const int linenumber			\
+				|NN const char *funcname
+CTp	|void	|mem_log_del_sv |NN const SV *sv			\
+				|NN const char *filename		\
+				|int linenumber 			\
+				|NN const char *funcname
+CTp	|Malloc_t|mem_log_free	|Malloc_t oldalloc			\
+				|NN const char *filename		\
+				|const int linenumber			\
+				|NN const char *funcname
+CTp	|void	|mem_log_new_sv |NN const SV *sv			\
+				|NN const char *filename		\
+				|int linenumber 			\
+				|NN const char *funcname
+CTp	|Malloc_t|mem_log_realloc					\
+				|const UV n				\
+				|const UV typesize			\
+				|NN const char *type_name		\
+				|Malloc_t oldalloc			\
+				|Malloc_t newalloc			\
+				|NN const char *filename		\
+				|const int linenumber			\
+				|NN const char *funcname
 #endif
-
-APpdT	|bool	|isinfnan	|NV nv
-pd	|bool	|isinfnansv	|NN SV *sv
-
-#if !defined(HAS_SIGNBIT)
-AxdToP	|int	|Perl_signbit	|NV f
+#if !defined(PERL_NO_INLINE_FUNCTIONS)
+Cipx	|void	|cx_popblock	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popeval	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popformat	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popgiven	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_poploop	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popsub	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popsub_args |NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popsub_common					\
+				|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_popwhen	|NN PERL_CONTEXT *cx
+Cipx	|PERL_CONTEXT *|cx_pushblock					\
+				|U8 type				\
+				|U8 gimme				\
+				|NN SV **sp				\
+				|I32 saveix
+Cipx	|void	|cx_pusheval	|NN PERL_CONTEXT *cx			\
+				|NULLOK OP *retop			\
+				|NULLOK SV *namesv
+Cipx	|void	|cx_pushformat	|NN PERL_CONTEXT *cx			\
+				|NN CV *cv				\
+				|NULLOK OP *retop			\
+				|NULLOK GV *gv
+Cipx	|void	|cx_pushgiven	|NN PERL_CONTEXT *cx			\
+				|NULLOK SV *orig_defsv
+Cipx	|void	|cx_pushloop_for|NN PERL_CONTEXT *cx			\
+				|NN void *itervarp			\
+				|NULLOK SV *itersave
+Cipx	|void	|cx_pushloop_plain					\
+				|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_pushsub	|NN PERL_CONTEXT *cx			\
+				|NN CV *cv				\
+				|NULLOK OP *retop			\
+				|bool hasargs
+Cipx	|void	|cx_pushtry	|NN PERL_CONTEXT *cx			\
+				|NULLOK OP *retop
+Cipx	|void	|cx_pushwhen	|NN PERL_CONTEXT *cx
+Cipx	|void	|cx_topblock	|NN PERL_CONTEXT *cx
+Cipx	|U8	|gimme_V
+#endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#if defined(PERL_USE_3ARG_SIGHANDLER)
+CTp	|Signal_t|csighandler	|int sig				\
+				|NULLOK Siginfo_t *info 		\
+				|NULLOK void *uap
+: Used in perl.c
+Tp	|Signal_t|sighandler	|int sig				\
+				|NULLOK Siginfo_t *info 		\
+				|NULLOK void *uap
+#else
+CTp	|Signal_t|csighandler	|int sig
+Tp	|Signal_t|sighandler	|int sig
 #endif
-
-: Used by B
-XExop	|void	|emulate_cop_io	|NN const COP *const c|NN SV *const sv
-: Used by SvRX and SvRXOK
-XExop	|REGEXP *|get_re_arg|NULLOK SV *sv
-
-Coph	|SV*	|mro_get_private_data|NN struct mro_meta *const smeta \
-				     |NN const struct mro_alg *const which
-Aopdh	|SV*	|mro_set_private_data|NN struct mro_meta *const smeta \
-				     |NN const struct mro_alg *const which \
-				     |NN SV *const data
-Aopd	|const struct mro_alg *|mro_get_from_name|NN SV *name
-Aopd	|void	|mro_register	|NN const struct mro_alg *mro
-Aopd	|void	|mro_set_mro	|NN struct mro_meta *const meta \
-				|NN SV *const name
-: Used in HvMROMETA(), which is public.
-Xpo	|struct mro_meta*	|mro_meta_init	|NN HV* stash
-#if defined(USE_ITHREADS)
-: Only used in sv.c
-p	|struct mro_meta*	|mro_meta_dup	|NN struct mro_meta* smeta|NN CLONE_PARAMS* param
+#if defined(U64TYPE)
+CRTip	|unsigned|lsbit_pos64	|U64 word
+CRTip	|unsigned|msbit_pos64	|U64 word
+CRTip	|unsigned|single_1bit_pos64					\
+				|U64 word
 #endif
-Apd	|AV*	|mro_get_linear_isa|NN HV* stash
-#if defined(PERL_IN_MRO_C)
-Sd	|AV*	|mro_get_linear_isa_dfs|NN HV* stash|U32 level
-S	|void	|mro_clean_isarev|NN HV * const isa   \
-				 |NN const char * const name \
-				 |const STRLEN len \
-				 |NULLOK HV * const exceptions \
-				 |U32 hash|U32 flags
-S	|void	|mro_gather_and_rename|NN HV * const stashes \
-				      |NN HV * const seen_stashes \
-				      |NULLOK HV *stash \
-				      |NULLOK HV *oldstash \
-				      |NN SV *namesv
+#if defined(UNLINK_ALL_VERSIONS)
+Cp	|I32	|unlnk		|NN const char *f
+#endif
+#if defined(USE_C_BACKTRACE)
+Adp	|bool	|dump_c_backtrace					\
+				|NN PerlIO *fp				\
+				|int max_depth				\
+				|int skip
+dm	|void	|free_c_backtrace					\
+				|NN Perl_c_backtrace *bt
+dp	|Perl_c_backtrace *|get_c_backtrace				\
+				|int max_depth				\
+				|int skip
+Adp	|SV *	|get_c_backtrace_dump					\
+				|int max_depth				\
+				|int skip
+#endif
+#if defined(USE_DTRACE)
+EXop	|void	|dtrace_probe_call					\
+				|NN CV *cv				\
+				|bool is_call
+EXop	|void	|dtrace_probe_load					\
+				|NN const char *name			\
+				|bool is_loading
+EXop	|void	|dtrace_probe_op|NN const OP *op
+EXop	|void	|dtrace_probe_phase					\
+				|enum perl_phase phase
 #endif
-: Used in hv.c, mg.c, pp.c, sv.c
-pd	|void   |mro_isa_changed_in|NN HV* stash
-Apd	|void	|mro_method_changed_in	|NN HV* stash
-pde	|void	|mro_package_moved	|NULLOK HV * const stash|NULLOK HV * const oldstash|NN const GV * const gv|U32 flags
-: Only used in perl.c
-p	|void   |boot_core_mro
-CpoT	|void	|sys_init	|NN int* argc|NN char*** argv
-CpoT	|void	|sys_init3	|NN int* argc|NN char*** argv|NN char*** env
-CpoT	|void	|sys_term
-Apxd	|const char *|cop_fetch_label|NN COP *const cop \
-		|NULLOK STRLEN *len|NULLOK U32 *flags
-: Only used  in op.c and the perl compiler
-Apxd	|void|cop_store_label \
-		|NN COP *const cop|NN const char *label|STRLEN len|U32 flags
-
-epo	|int	|keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr
-
 #if defined(USE_ITHREADS)
-#  if defined(PERL_IN_SV_C)
-S	|void	|unreferenced_to_tmp_stack|NN AV *const unreferenced
-#  endif
-ARTop	|CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \
-		|NN PerlInterpreter *const to
-ATop	|void	|clone_params_del|NN CLONE_PARAMS *param
+Adpx	|PADOFFSET|alloccopstash|NN HV *hv
+CRp	|void * |any_dup	|NULLOK void *v 			\
+				|NN const PerlInterpreter *proto_perl
+ATop	|void	|clone_params_del					\
+				|NN CLONE_PARAMS *param
+ARTop	|CLONE_PARAMS *|clone_params_new				\
+				|NN PerlInterpreter * const from	\
+				|NN PerlInterpreter * const to
+Cip	|AV *	|cop_file_avn	|NN const COP *cop
+CRp	|PERL_CONTEXT *|cx_dup	|NULLOK PERL_CONTEXT *cx		\
+				|I32 ix 				\
+				|I32 max				\
+				|NN CLONE_PARAMS *param
+CRdp	|DIR *	|dirp_dup	|NULLOK DIR * const dp			\
+				|NN CLONE_PARAMS * const param
+Cdp	|PerlIO *|fp_dup	|NULLOK PerlIO * const fp		\
+				|const char type			\
+				|NN CLONE_PARAMS * const param
+CRdp	|GP *	|gp_dup 	|NULLOK GP * const gp			\
+				|NN CLONE_PARAMS * const param
+CRp	|HE *	|he_dup 	|NULLOK const HE *e			\
+				|bool shared				\
+				|NN CLONE_PARAMS *param
+CRp	|HEK *	|hek_dup	|NULLOK HEK *e				\
+				|NN CLONE_PARAMS *param
+CRdp	|MAGIC *|mg_dup 	|NULLOK MAGIC *mg			\
+				|NN CLONE_PARAMS * const param
+: Only used in sv.c
+p	|struct mro_meta *|mro_meta_dup 				\
+				|NN struct mro_meta *smeta		\
+				|NN CLONE_PARAMS *param
+ARdp	|OP *	|newPADOP	|I32 type				\
+				|I32 flags				\
+				|NN SV *sv
+Rdp	|PADLIST *|padlist_dup	|NN PADLIST *srcpad			\
+				|NN CLONE_PARAMS *param
+Rdp	|PADNAME *|padname_dup	|NN PADNAME *src			\
+				|NN CLONE_PARAMS *param
+Rdp	|PADNAMELIST *|padnamelist_dup					\
+				|NN PADNAMELIST *srcpad 		\
+				|NN CLONE_PARAMS *param
+Cp	|yy_parser *|parser_dup |NULLOK const yy_parser * const proto	\
+				|NN CLONE_PARAMS * const param
+ATdo	|PerlInterpreter *|perl_clone					\
+				|NN PerlInterpreter *proto_perl 	\
+				|UV flags
+Adp	|void	|re_dup_guts	|NN const REGEXP *sstr			\
+				|NN REGEXP *dstr			\
+				|NN CLONE_PARAMS *param
+Cp	|void * |regdupe_internal					\
+				|NN REGEXP * const r			\
+				|NN CLONE_PARAMS *param
+Cp	|void	|rvpv_dup	|NN SV * const dsv			\
+				|NN const SV * const ssv		\
+				|NN CLONE_PARAMS * const param
+CRdp	|PERL_SI *|si_dup	|NULLOK PERL_SI *si			\
+				|NN CLONE_PARAMS *param
+CRdp	|ANY *	|ss_dup 	|NN PerlInterpreter *proto_perl 	\
+				|NN CLONE_PARAMS *param
+ARp	|SV *	|sv_dup 	|NULLOK const SV * const ssv		\
+				|NN CLONE_PARAMS * const param
+ARp	|SV *	|sv_dup_inc	|NULLOK const SV * const ssv		\
+				|NN CLONE_PARAMS * const param
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+p	|void	|op_relocate_sv |NN SV **svp				\
+				|NN PADOFFSET *targp
+# endif
+#else /* if !defined(USE_ITHREADS) */
+Adm	|void	|CopFILEGV_set	|NN COP *c				\
+				|NN GV *gv
 #endif
-
-: Used in perl.c and toke.c
-Fop	|void	|populate_isa	|NN const char *name|STRLEN len|...
-
-: Some static inline functions need predeclaration because they are used
-: inside other static inline functions.
-#if defined(PERL_CORE) || defined (PERL_EXT)
-Ei	|STRLEN	|sv_or_pv_pos_u2b|NN SV *sv|NN const char *pv|STRLEN pos \
-				 |NULLOK STRLEN *lenp
-#endif
-
-Cp	|void	|clear_defarray	|NN AV* av|bool abandon
-
-Apx	|void	|leave_adjust_stacks|NN SV **from_sp|NN SV **to_sp \
-                |U8 gimme|int filter
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-Cixp	|U8	|gimme_V         |
-Cixp	|PERL_CONTEXT *	|cx_pushblock|U8 type|U8 gimme|NN SV** sp|I32 saveix
-Cixp	|void	|cx_popblock|NN PERL_CONTEXT *cx
-Cixp	|void	|cx_topblock|NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pushsub      |NN PERL_CONTEXT *cx|NN CV *cv \
-				 |NULLOK OP *retop|bool hasargs
-Cixp	|void	|cx_popsub_common|NN PERL_CONTEXT *cx
-Cixp	|void	|cx_popsub_args  |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_popsub       |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pushformat   |NN PERL_CONTEXT *cx|NN CV *cv \
-				 |NULLOK OP *retop|NULLOK GV *gv
-Cixp	|void	|cx_popformat    |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pusheval     |NN PERL_CONTEXT *cx \
-				 |NULLOK OP *retop|NULLOK SV *namesv
-Cixp	|void	|cx_pushtry      |NN PERL_CONTEXT *cx|NULLOK OP *retop
-Cixp	|void	|cx_popeval      |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pushloop_plain|NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pushloop_for |NN PERL_CONTEXT *cx \
-				 |NN void *itervarp|NULLOK SV *itersave
-Cixp	|void	|cx_poploop      |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pushwhen     |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_popwhen      |NN PERL_CONTEXT *cx
-Cixp	|void	|cx_pushgiven    |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv
-Cixp	|void	|cx_popgiven     |NN PERL_CONTEXT *cx
-#endif
-
-#ifdef USE_DTRACE
-XEop	|void   |dtrace_probe_call |NN CV *cv|bool is_call
-XEop	|void   |dtrace_probe_load |NN const char *name|bool is_loading
-XEop	|void   |dtrace_probe_op   |NN const OP *op
-XEop	|void   |dtrace_probe_phase|enum perl_phase phase
+#if defined(USE_LOCALE_COLLATE)
+p	|int	|magic_freecollxfrm					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+p	|int	|magic_setcollxfrm					\
+				|NN SV *sv				\
+				|NN MAGIC *mg
+EXop	|SV *	|strxfrm	|NN SV *src
+: Defined in locale.c, used only in sv.c
+AMbdp	|char * |sv_collxfrm	|NN SV * const sv			\
+				|NN STRLEN * const nxp
+Adp	|char * |sv_collxfrm_flags					\
+				|NN SV * const sv			\
+				|NN STRLEN * const nxp			\
+				|I32 const flags
+# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
+     defined(PERL_IN_SV_C)
+Ep	|char * |mem_collxfrm_	|NN const char *input_string		\
+				|STRLEN len				\
+				|NN STRLEN *xlen			\
+				|bool utf8
+# endif
+#endif /* defined(USE_LOCALE_COLLATE) */
+#if defined(USE_PERLIO)
+Adhp	|void	|PerlIO_clearerr|NULLOK PerlIO *f
+Adhp	|int	|PerlIO_close	|NULLOK PerlIO *f
+Adhp	|int	|PerlIO_eof	|NULLOK PerlIO *f
+Adhp	|int	|PerlIO_error	|NULLOK PerlIO *f
+Adhp	|int	|PerlIO_fileno	|NULLOK PerlIO *f
+Adp	|int	|PerlIO_fill	|NULLOK PerlIO *f
+Adhp	|int	|PerlIO_flush	|NULLOK PerlIO *f
+Adhp	|STDCHAR *|PerlIO_get_base					\
+				|NULLOK PerlIO *f
+ARdhp	|SSize_t|PerlIO_get_bufsiz					\
+				|NULLOK PerlIO *f
+ARdhp	|SSize_t|PerlIO_get_cnt |NULLOK PerlIO *f
+Adhp	|STDCHAR *|PerlIO_get_ptr					\
+				|NULLOK PerlIO *f
+Adhp	|SSize_t|PerlIO_read	|NULLOK PerlIO *f			\
+				|NN void *vbuf				\
+				|Size_t count
+Xp	|void	|PerlIO_restore_errno					\
+				|NULLOK PerlIO *f
+Xp	|void	|PerlIO_save_errno					\
+				|NULLOK PerlIO *f
+Adhp	|int	|PerlIO_seek	|NULLOK PerlIO *f			\
+				|Off_t offset				\
+				|int whence
+Adhp	|void	|PerlIO_set_cnt |NULLOK PerlIO *f			\
+				|SSize_t cnt
+Adhp	|void	|PerlIO_setlinebuf					\
+				|NULLOK PerlIO *f
+Adhp	|void	|PerlIO_set_ptrcnt					\
+				|NULLOK PerlIO *f			\
+				|NULLOK STDCHAR *ptr			\
+				|SSize_t cnt
+ARdhp	|PerlIO *|PerlIO_stderr
+ARdhp	|PerlIO *|PerlIO_stdin
+ARdhp	|PerlIO *|PerlIO_stdout
+Adhp	|Off_t	|PerlIO_tell	|NULLOK PerlIO *f
+Adp	|SSize_t|PerlIO_unread	|NULLOK PerlIO *f			\
+				|NN const void *vbuf			\
+				|Size_t count
+Adhp	|SSize_t|PerlIO_write	|NULLOK PerlIO *f			\
+				|NN const void *vbuf			\
+				|Size_t count
+#endif /* defined(USE_PERLIO) */
+#if defined(USE_PERL_SWITCH_LOCALE_CONTEXT)
+CTop	|void	|switch_locale_context
+#endif
+#if defined(USE_QUADMATH)
+Tdp	|bool	|quadmath_format_needed 				\
+				|NN const char *format
+Tdp	|bool	|quadmath_format_valid					\
+				|NN const char *format
+#endif
+#if defined(VMS) || defined(WIN32)
+Cp	|int	|do_aspawn	|NULLOK SV *really			\
+				|NN SV **mark				\
+				|NN SV **sp
+Cp	|int	|do_spawn	|NN char *cmd
+Cp	|int	|do_spawn_nowait|NN char *cmd
 #endif
-
-XEop	|STRLEN*|dup_warnings	|NULLOK STRLEN* warnings
-
-#ifndef USE_ITHREADS
-Amd	|void	|CopFILEGV_set	|NN COP * c|NN GV * gv
+#if defined(WIN32)
+CRTdp	|void * |get_context
+p	|bool	|get_win32_message_utf8ness				\
+				|NULLOK const char *string
+Teor	|void	|win32_croak_not_implemented				\
+				|NN const char *fname
+#else
+p	|bool	|do_exec3	|NN const char *incmd			\
+				|int fd 				\
+				|int do_report
+CRTdip	|void * |get_context
 #endif
-
-Amd|const char *const|phase_name|enum perl_phase
 
 : ex: set ts=8 sts=4 sw=4 noet:
Index: gnu/usr.bin/perl/embed.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/embed.h,v
diff -u -p -a -u -p -r1.29 embed.h
--- gnu/usr.bin/perl/embed.h	8 Jul 2023 14:18:35 -0000	1.29
+++ gnu/usr.bin/perl/embed.h	21 Feb 2024 15:47:02 -0000
@@ -1,16 +1,19 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    embed.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- *    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
+ *    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ *    2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022
+ *    by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
  *
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
- * This file is built by regen/embed.pl from data in embed.fnc,
- * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
+ * This file is built by regen/embed.pl from embed.fnc, intrpvar.h,
+ * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and
+ * regen/HeaderParser.pm.
  * Any changes made here will be lost!
  *
  * Edit those files and run 'make regen_headers' to effect changes.
@@ -24,2065 +27,29 @@
  * BEWARE that a bunch of macros don't have long names, so either must be
  * added or don't use them if you define this symbol */
 
-#ifndef PERL_NO_SHORT_NAMES
-
-/* Hide global symbols */
-
-#define Gv_AMupdate(a,b)	Perl_Gv_AMupdate(aTHX_ a,b)
-#define SvAMAGIC_off		Perl_SvAMAGIC_off
-#define SvAMAGIC_on		Perl_SvAMAGIC_on
-#define SvTRUE(a)		Perl_SvTRUE(aTHX_ a)
-#define SvTRUE_NN(a)		Perl_SvTRUE_NN(aTHX_ a)
-#define SvTRUE_common(a,b)	Perl_SvTRUE_common(aTHX_ a,b)
-#define SvTRUE_nomg(a)		Perl_SvTRUE_nomg(aTHX_ a)
-#define _force_out_malformed_utf8_message(a,b,c,d)	Perl__force_out_malformed_utf8_message(aTHX_ a,b,c,d)
-#define _is_in_locale_category(a,b)	Perl__is_in_locale_category(aTHX_ a,b)
-#define _is_uni_FOO(a,b)	Perl__is_uni_FOO(aTHX_ a,b)
-#define _is_uni_perl_idcont(a)	Perl__is_uni_perl_idcont(aTHX_ a)
-#define _is_uni_perl_idstart(a)	Perl__is_uni_perl_idstart(aTHX_ a)
-#define _is_utf8_FOO(a,b,c)	Perl__is_utf8_FOO(aTHX_ a,b,c)
-#define _is_utf8_perl_idcont(a,b)	Perl__is_utf8_perl_idcont(aTHX_ a,b)
-#define _is_utf8_perl_idstart(a,b)	Perl__is_utf8_perl_idstart(aTHX_ a,b)
-#define _to_uni_fold_flags(a,b,c,d)	Perl__to_uni_fold_flags(aTHX_ a,b,c,d)
-#define _to_utf8_fold_flags(a,b,c,d,e)	Perl__to_utf8_fold_flags(aTHX_ a,b,c,d,e)
-#define _to_utf8_lower_flags(a,b,c,d,e)	Perl__to_utf8_lower_flags(aTHX_ a,b,c,d,e)
-#define _to_utf8_title_flags(a,b,c,d,e)	Perl__to_utf8_title_flags(aTHX_ a,b,c,d,e)
-#define _to_utf8_upper_flags(a,b,c,d,e)	Perl__to_utf8_upper_flags(aTHX_ a,b,c,d,e)
-#define _utf8n_to_uvchr_msgs_helper	Perl__utf8n_to_uvchr_msgs_helper
-#define amagic_call(a,b,c,d)	Perl_amagic_call(aTHX_ a,b,c,d)
-#define amagic_deref_call(a,b)	Perl_amagic_deref_call(aTHX_ a,b)
-#define apply_attrs_string(a,b,c,d)	Perl_apply_attrs_string(aTHX_ a,b,c,d)
-#define atfork_lock		Perl_atfork_lock
-#define atfork_unlock		Perl_atfork_unlock
-#define av_clear(a)		Perl_av_clear(aTHX_ a)
-#define av_count(a)		Perl_av_count(aTHX_ a)
-#define av_delete(a,b,c)	Perl_av_delete(aTHX_ a,b,c)
-#define av_exists(a,b)		Perl_av_exists(aTHX_ a,b)
-#define av_extend(a,b)		Perl_av_extend(aTHX_ a,b)
-#define av_fetch(a,b,c)		Perl_av_fetch(aTHX_ a,b,c)
-#define av_fetch_simple(a,b,c)	Perl_av_fetch_simple(aTHX_ a,b,c)
-#define av_fill(a,b)		Perl_av_fill(aTHX_ a,b)
-#define av_len(a)		Perl_av_len(aTHX_ a)
-#define av_make(a,b)		Perl_av_make(aTHX_ a,b)
-#define av_new_alloc(a,b)	Perl_av_new_alloc(aTHX_ a,b)
-#define av_pop(a)		Perl_av_pop(aTHX_ a)
-#define av_push(a,b)		Perl_av_push(aTHX_ a,b)
-#define av_shift(a)		Perl_av_shift(aTHX_ a)
-#define av_store(a,b,c)		Perl_av_store(aTHX_ a,b,c)
-#define av_store_simple(a,b,c)	Perl_av_store_simple(aTHX_ a,b,c)
-#define av_undef(a)		Perl_av_undef(aTHX_ a)
-#define av_unshift(a,b)		Perl_av_unshift(aTHX_ a,b)
-#define block_end(a,b)		Perl_block_end(aTHX_ a,b)
-#define block_gimme()		Perl_block_gimme(aTHX)
-#define block_start(a)		Perl_block_start(aTHX_ a)
-#define bytes_cmp_utf8(a,b,c,d)	Perl_bytes_cmp_utf8(aTHX_ a,b,c,d)
-#define bytes_from_utf8_loc	Perl_bytes_from_utf8_loc
-#define bytes_to_utf8(a,b)	Perl_bytes_to_utf8(aTHX_ a,b)
-#define call_argv(a,b,c)	Perl_call_argv(aTHX_ a,b,c)
-#define call_atexit(a,b)	Perl_call_atexit(aTHX_ a,b)
-#define call_list(a,b)		Perl_call_list(aTHX_ a,b)
-#define call_method(a,b)	Perl_call_method(aTHX_ a,b)
-#define call_pv(a,b)		Perl_call_pv(aTHX_ a,b)
-#define call_sv(a,b)		Perl_call_sv(aTHX_ a,b)
-#define caller_cx(a,b)		Perl_caller_cx(aTHX_ a,b)
-#define cast_i32		Perl_cast_i32
-#define cast_iv			Perl_cast_iv
-#define cast_ulong		Perl_cast_ulong
-#define cast_uv			Perl_cast_uv
-#define ck_entersub_args_list(a)	Perl_ck_entersub_args_list(aTHX_ a)
-#define ck_entersub_args_proto(a,b,c)	Perl_ck_entersub_args_proto(aTHX_ a,b,c)
-#define ck_entersub_args_proto_or_list(a,b,c)	Perl_ck_entersub_args_proto_or_list(aTHX_ a,b,c)
-#ifndef MULTIPLICITY
-#define ck_warner		Perl_ck_warner
-#define ck_warner_d		Perl_ck_warner_d
-#endif
-#define clear_defarray(a,b)	Perl_clear_defarray(aTHX_ a,b)
-#define cop_fetch_label(a,b,c)	Perl_cop_fetch_label(aTHX_ a,b,c)
-#define cop_store_label(a,b,c,d)	Perl_cop_store_label(aTHX_ a,b,c,d)
-#ifndef MULTIPLICITY
-#define croak			Perl_croak
-#endif
-#define croak_memory_wrap	Perl_croak_memory_wrap
-#define croak_no_modify		Perl_croak_no_modify
-#define croak_sv(a)		Perl_croak_sv(aTHX_ a)
-#define croak_xs_usage		Perl_croak_xs_usage
-#define csighandler1		Perl_csighandler1
-#define csighandler3		Perl_csighandler3
-#ifndef NO_MATHOMS
-#define custom_op_desc(a)	Perl_custom_op_desc(aTHX_ a)
-#endif
-#ifndef NO_MATHOMS
-#define custom_op_name(a)	Perl_custom_op_name(aTHX_ a)
-#endif
-#define cv_clone(a)		Perl_cv_clone(aTHX_ a)
-#define cv_const_sv		Perl_cv_const_sv
-#define cv_get_call_checker(a,b,c)	Perl_cv_get_call_checker(aTHX_ a,b,c)
-#define cv_get_call_checker_flags(a,b,c,d,e)	Perl_cv_get_call_checker_flags(aTHX_ a,b,c,d,e)
-#define cv_name(a,b,c)		Perl_cv_name(aTHX_ a,b,c)
-#define cv_set_call_checker(a,b,c)	Perl_cv_set_call_checker(aTHX_ a,b,c)
-#define cv_set_call_checker_flags(a,b,c,d)	Perl_cv_set_call_checker_flags(aTHX_ a,b,c,d)
-#define cv_undef(a)		Perl_cv_undef(aTHX_ a)
-#define cx_dump(a)		Perl_cx_dump(aTHX_ a)
-#define cxinc()			Perl_cxinc(aTHX)
-#ifndef MULTIPLICITY
-#define deb			Perl_deb
-#endif
-#define debop(a)		Perl_debop(aTHX_ a)
-#define debprofdump()		Perl_debprofdump(aTHX)
-#define debstack()		Perl_debstack(aTHX)
-#define debstackptrs()		Perl_debstackptrs(aTHX)
-#define delimcpy		Perl_delimcpy
-#define despatch_signals()	Perl_despatch_signals(aTHX)
-#ifndef MULTIPLICITY
-#define die			Perl_die
-#endif
-#define die_sv(a)		Perl_die_sv(aTHX_ a)
-#ifndef NO_MATHOMS
-#define do_binmode(a,b,c)	Perl_do_binmode(aTHX_ a,b,c)
-#endif
-#define do_close(a,b)		Perl_do_close(aTHX_ a,b)
-#define do_gv_dump(a,b,c,d)	Perl_do_gv_dump(aTHX_ a,b,c,d)
-#define do_gvgv_dump(a,b,c,d)	Perl_do_gvgv_dump(aTHX_ a,b,c,d)
-#define do_hv_dump(a,b,c,d)	Perl_do_hv_dump(aTHX_ a,b,c,d)
-#define do_join(a,b,c,d)	Perl_do_join(aTHX_ a,b,c,d)
-#define do_magic_dump(a,b,c,d,e,f,g)	Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g)
-#define do_op_dump(a,b,c)	Perl_do_op_dump(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define do_open9(a,b,c,d,e,f,g,h,i)	Perl_do_open9(aTHX_ a,b,c,d,e,f,g,h,i)
-#endif
-#define do_openn(a,b,c,d,e,f,g,h,i)	Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i)
-#define do_pmop_dump(a,b,c)	Perl_do_pmop_dump(aTHX_ a,b,c)
-#define do_sprintf(a,b,c)	Perl_do_sprintf(aTHX_ a,b,c)
-#define do_sv_dump(a,b,c,d,e,f,g)	Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g)
-#define doing_taint		Perl_doing_taint
-#define doref(a,b,c)		Perl_doref(aTHX_ a,b,c)
-#define dounwind(a)		Perl_dounwind(aTHX_ a)
-#define dowantarray()		Perl_dowantarray(aTHX)
-#define dump_all()		Perl_dump_all(aTHX)
-#define dump_eval()		Perl_dump_eval(aTHX)
-#define dump_form(a)		Perl_dump_form(aTHX_ a)
-#ifndef MULTIPLICITY
-#define dump_indent		Perl_dump_indent
-#endif
-#define dump_packsubs(a)	Perl_dump_packsubs(aTHX_ a)
-#define dump_sub(a)		Perl_dump_sub(aTHX_ a)
-#define dump_vindent(a,b,c,d)	Perl_dump_vindent(aTHX_ a,b,c,d)
-#define eval_pv(a,b)		Perl_eval_pv(aTHX_ a,b)
-#define eval_sv(a,b)		Perl_eval_sv(aTHX_ a,b)
-#define fbm_compile(a,b)	Perl_fbm_compile(aTHX_ a,b)
-#define fbm_instr(a,b,c,d)	Perl_fbm_instr(aTHX_ a,b,c,d)
-#define filter_add(a,b)		Perl_filter_add(aTHX_ a,b)
-#define filter_del(a)		Perl_filter_del(aTHX_ a)
-#define filter_read(a,b,c)	Perl_filter_read(aTHX_ a,b,c)
-#define find_runcv(a)		Perl_find_runcv(aTHX_ a)
-#define find_rundefsv()		Perl_find_rundefsv(aTHX)
-#define find_rundefsvoffset()	Perl_find_rundefsvoffset(aTHX)
-#define foldEQ			Perl_foldEQ
-#define foldEQ_latin1		Perl_foldEQ_latin1
-#define foldEQ_locale		Perl_foldEQ_locale
-#define foldEQ_utf8_flags(a,b,c,d,e,f,g,h,i)	Perl_foldEQ_utf8_flags(aTHX_ a,b,c,d,e,f,g,h,i)
-#ifndef MULTIPLICITY
-#define form			Perl_form
-#endif
-#define free_tmps()		Perl_free_tmps(aTHX)
-#define get_av(a,b)		Perl_get_av(aTHX_ a,b)
-#define get_context		Perl_get_context
-#define get_cv(a,b)		Perl_get_cv(aTHX_ a,b)
-#define get_cvn_flags(a,b,c)	Perl_get_cvn_flags(aTHX_ a,b,c)
-#define get_hv(a,b)		Perl_get_hv(aTHX_ a,b)
-#define get_op_descs()		Perl_get_op_descs(aTHX)
-#define get_op_names()		Perl_get_op_names(aTHX)
-#define get_ppaddr()		Perl_get_ppaddr(aTHX)
-#define get_sv(a,b)		Perl_get_sv(aTHX_ a,b)
-#define get_vtbl(a)		Perl_get_vtbl(aTHX_ a)
-#define getcwd_sv(a)		Perl_getcwd_sv(aTHX_ a)
-#define gp_free(a)		Perl_gp_free(aTHX_ a)
-#define gp_ref(a)		Perl_gp_ref(aTHX_ a)
-#define grok_atoUV		Perl_grok_atoUV
-#define grok_bin_oct_hex(a,b,c,d,e,f,g)	Perl_grok_bin_oct_hex(aTHX_ a,b,c,d,e,f,g)
-#define grok_infnan(a,b)	Perl_grok_infnan(aTHX_ a,b)
-#define grok_number(a,b,c)	Perl_grok_number(aTHX_ a,b,c)
-#define grok_number_flags(a,b,c,d)	Perl_grok_number_flags(aTHX_ a,b,c,d)
-#define grok_numeric_radix(a,b)	Perl_grok_numeric_radix(aTHX_ a,b)
-#define gv_add_by_type(a,b)	Perl_gv_add_by_type(aTHX_ a,b)
-#define gv_autoload_pv(a,b,c)	Perl_gv_autoload_pv(aTHX_ a,b,c)
-#define gv_autoload_pvn(a,b,c,d)	Perl_gv_autoload_pvn(aTHX_ a,b,c,d)
-#define gv_autoload_sv(a,b,c)	Perl_gv_autoload_sv(aTHX_ a,b,c)
-#define gv_check(a)		Perl_gv_check(aTHX_ a)
-#define gv_const_sv(a)		Perl_gv_const_sv(aTHX_ a)
-#define gv_dump(a)		Perl_gv_dump(aTHX_ a)
-#ifndef NO_MATHOMS
-#define gv_efullname(a,b)	Perl_gv_efullname(aTHX_ a,b)
-#endif
-#define gv_efullname4(a,b,c,d)	Perl_gv_efullname4(aTHX_ a,b,c,d)
-#define gv_fetchfile(a)		Perl_gv_fetchfile(aTHX_ a)
-#define gv_fetchfile_flags(a,b,c)	Perl_gv_fetchfile_flags(aTHX_ a,b,c)
-#define gv_fetchmeth_pv(a,b,c,d)	Perl_gv_fetchmeth_pv(aTHX_ a,b,c,d)
-#define gv_fetchmeth_pv_autoload(a,b,c,d)	Perl_gv_fetchmeth_pv_autoload(aTHX_ a,b,c,d)
-#define gv_fetchmeth_pvn(a,b,c,d,e)	Perl_gv_fetchmeth_pvn(aTHX_ a,b,c,d,e)
-#define gv_fetchmeth_pvn_autoload(a,b,c,d,e)	Perl_gv_fetchmeth_pvn_autoload(aTHX_ a,b,c,d,e)
-#define gv_fetchmeth_sv(a,b,c,d)	Perl_gv_fetchmeth_sv(aTHX_ a,b,c,d)
-#define gv_fetchmeth_sv_autoload(a,b,c,d)	Perl_gv_fetchmeth_sv_autoload(aTHX_ a,b,c,d)
-#define gv_fetchmethod_autoload(a,b,c)	Perl_gv_fetchmethod_autoload(aTHX_ a,b,c)
-#define gv_fetchmethod_pv_flags(a,b,c)	Perl_gv_fetchmethod_pv_flags(aTHX_ a,b,c)
-#define gv_fetchmethod_pvn_flags(a,b,c,d)	Perl_gv_fetchmethod_pvn_flags(aTHX_ a,b,c,d)
-#define gv_fetchmethod_sv_flags(a,b,c)	Perl_gv_fetchmethod_sv_flags(aTHX_ a,b,c)
-#define gv_fetchpv(a,b,c)	Perl_gv_fetchpv(aTHX_ a,b,c)
-#define gv_fetchpvn_flags(a,b,c,d)	Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
-#define gv_fetchsv(a,b,c)	Perl_gv_fetchsv(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define gv_fullname(a,b)	Perl_gv_fullname(aTHX_ a,b)
-#endif
-#define gv_fullname4(a,b,c,d)	Perl_gv_fullname4(aTHX_ a,b,c,d)
-#define gv_handler(a,b)		Perl_gv_handler(aTHX_ a,b)
-#define gv_init_pv(a,b,c,d)	Perl_gv_init_pv(aTHX_ a,b,c,d)
-#define gv_init_pvn(a,b,c,d,e)	Perl_gv_init_pvn(aTHX_ a,b,c,d,e)
-#define gv_init_sv(a,b,c,d)	Perl_gv_init_sv(aTHX_ a,b,c,d)
-#define gv_name_set(a,b,c,d)	Perl_gv_name_set(aTHX_ a,b,c,d)
-#define gv_stashpv(a,b)		Perl_gv_stashpv(aTHX_ a,b)
-#define gv_stashpvn(a,b,c)	Perl_gv_stashpvn(aTHX_ a,b,c)
-#define gv_stashsv(a,b)		Perl_gv_stashsv(aTHX_ a,b)
-#define hv_bucket_ratio(a)	Perl_hv_bucket_ratio(aTHX_ a)
-#define hv_clear(a)		Perl_hv_clear(aTHX_ a)
-#define hv_clear_placeholders(a)	Perl_hv_clear_placeholders(aTHX_ a)
-#define hv_common(a,b,c,d,e,f,g,h)	Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
-#define hv_common_key_len(a,b,c,d,e,f)	Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f)
-#define hv_copy_hints_hv(a)	Perl_hv_copy_hints_hv(aTHX_ a)
-#define hv_delayfree_ent(a,b)	Perl_hv_delayfree_ent(aTHX_ a,b)
-#define hv_free_ent(a,b)	Perl_hv_free_ent(aTHX_ a,b)
-#define hv_iterinit(a)		Perl_hv_iterinit(aTHX_ a)
-#define hv_iterkey(a,b)		Perl_hv_iterkey(aTHX_ a,b)
-#define hv_iterkeysv(a)		Perl_hv_iterkeysv(aTHX_ a)
-#define hv_iternext_flags(a,b)	Perl_hv_iternext_flags(aTHX_ a,b)
-#define hv_iternextsv(a,b,c)	Perl_hv_iternextsv(aTHX_ a,b,c)
-#define hv_iterval(a,b)		Perl_hv_iterval(aTHX_ a,b)
-#define hv_ksplit(a,b)		Perl_hv_ksplit(aTHX_ a,b)
-#define hv_name_set(a,b,c,d)	Perl_hv_name_set(aTHX_ a,b,c,d)
-#define hv_rand_set(a,b)	Perl_hv_rand_set(aTHX_ a,b)
-#define hv_scalar(a)		Perl_hv_scalar(aTHX_ a)
-#define init_i18nl10n(a)	Perl_init_i18nl10n(aTHX_ a)
-#ifndef NO_MATHOMS
-#define init_i18nl14n(a)	Perl_init_i18nl14n(aTHX_ a)
-#endif
-#define init_stacks()		Perl_init_stacks(aTHX)
-#define init_tm(a)		Perl_init_tm(aTHX_ a)
-#define intro_my()		Perl_intro_my(aTHX)
-#define isC9_STRICT_UTF8_CHAR	Perl_isC9_STRICT_UTF8_CHAR
-#define isSTRICT_UTF8_CHAR	Perl_isSTRICT_UTF8_CHAR
-#define isUTF8_CHAR		Perl_isUTF8_CHAR
-#define isUTF8_CHAR_flags	Perl_isUTF8_CHAR_flags
-#define is_c9strict_utf8_string_loclen	Perl_is_c9strict_utf8_string_loclen
-#define is_lvalue_sub()		Perl_is_lvalue_sub(aTHX)
-#define is_safe_syscall(a,b,c,d)	Perl_is_safe_syscall(aTHX_ a,b,c,d)
-#define is_strict_utf8_string_loclen	Perl_is_strict_utf8_string_loclen
-#define is_utf8_FF_helper_	Perl_is_utf8_FF_helper_
-#ifndef NO_MATHOMS
-#define is_utf8_char		Perl_is_utf8_char
-#endif
-#define is_utf8_char_helper_	Perl_is_utf8_char_helper_
-#define is_utf8_fixed_width_buf_loclen_flags	Perl_is_utf8_fixed_width_buf_loclen_flags
-#define is_utf8_invariant_string_loc	Perl_is_utf8_invariant_string_loc
-#define is_utf8_string_flags	Perl_is_utf8_string_flags
-#define is_utf8_string_loclen	Perl_is_utf8_string_loclen
-#define is_utf8_string_loclen_flags	Perl_is_utf8_string_loclen_flags
-#define is_utf8_valid_partial_char_flags	Perl_is_utf8_valid_partial_char_flags
-#define isinfnan		Perl_isinfnan
-#define leave_adjust_stacks(a,b,c,d)	Perl_leave_adjust_stacks(aTHX_ a,b,c,d)
-#define leave_scope(a)		Perl_leave_scope(aTHX_ a)
-#define lex_bufutf8()		Perl_lex_bufutf8(aTHX)
-#define lex_discard_to(a)	Perl_lex_discard_to(aTHX_ a)
-#define lex_grow_linestr(a)	Perl_lex_grow_linestr(aTHX_ a)
-#define lex_next_chunk(a)	Perl_lex_next_chunk(aTHX_ a)
-#define lex_peek_unichar(a)	Perl_lex_peek_unichar(aTHX_ a)
-#define lex_read_space(a)	Perl_lex_read_space(aTHX_ a)
-#define lex_read_to(a)		Perl_lex_read_to(aTHX_ a)
-#define lex_read_unichar(a)	Perl_lex_read_unichar(aTHX_ a)
-#define lex_start(a,b,c)	Perl_lex_start(aTHX_ a,b,c)
-#define lex_stuff_pv(a,b)	Perl_lex_stuff_pv(aTHX_ a,b)
-#define lex_stuff_pvn(a,b,c)	Perl_lex_stuff_pvn(aTHX_ a,b,c)
-#define lex_stuff_sv(a,b)	Perl_lex_stuff_sv(aTHX_ a,b)
-#define lex_unstuff(a)		Perl_lex_unstuff(aTHX_ a)
-#ifndef MULTIPLICITY
-#define load_module		Perl_load_module
-#endif
-#define looks_like_number(a)	Perl_looks_like_number(aTHX_ a)
-#define lsbit_pos32		Perl_lsbit_pos32
-#define magic_dump(a)		Perl_magic_dump(aTHX_ a)
-#define markstack_grow()	Perl_markstack_grow(aTHX)
-#ifndef MULTIPLICITY
-#define mess			Perl_mess
-#endif
-#define mess_sv(a,b)		Perl_mess_sv(aTHX_ a,b)
-#define mg_clear(a)		Perl_mg_clear(aTHX_ a)
-#define mg_copy(a,b,c,d)	Perl_mg_copy(aTHX_ a,b,c,d)
-#define mg_find			Perl_mg_find
-#define mg_findext		Perl_mg_findext
-#define mg_free(a)		Perl_mg_free(aTHX_ a)
-#define mg_free_type(a,b)	Perl_mg_free_type(aTHX_ a,b)
-#define mg_freeext(a,b,c)	Perl_mg_freeext(aTHX_ a,b,c)
-#define mg_get(a)		Perl_mg_get(aTHX_ a)
-#define mg_length(a)		Perl_mg_length(aTHX_ a)
-#define mg_magical		Perl_mg_magical
-#define mg_set(a)		Perl_mg_set(aTHX_ a)
-#define mg_size(a)		Perl_mg_size(aTHX_ a)
-#define mini_mktime		Perl_mini_mktime
-#define moreswitches(a)		Perl_moreswitches(aTHX_ a)
-#define mortal_getenv		Perl_mortal_getenv
-#define mro_get_linear_isa(a)	Perl_mro_get_linear_isa(aTHX_ a)
-#define mro_method_changed_in(a)	Perl_mro_method_changed_in(aTHX_ a)
-#define msbit_pos32		Perl_msbit_pos32
-#define my_atof(a)		Perl_my_atof(aTHX_ a)
-#define my_atof3(a,b,c)		Perl_my_atof3(aTHX_ a,b,c)
-#define my_dirfd		Perl_my_dirfd
-#define my_exit(a)		Perl_my_exit(aTHX_ a)
-#define my_failure_exit()	Perl_my_failure_exit(aTHX)
-#define my_fflush_all()		Perl_my_fflush_all(aTHX)
-#define my_fork			Perl_my_fork
-#define my_popen_list(a,b,c)	Perl_my_popen_list(aTHX_ a,b,c)
-#define my_setenv(a,b)		Perl_my_setenv(aTHX_ a,b)
-#define my_socketpair		Perl_my_socketpair
-#define my_strftime(a,b,c,d,e,f,g,h,i,j)	Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#define my_strtod		Perl_my_strtod
-#define newANONATTRSUB(a,b,c,d)	Perl_newANONATTRSUB(aTHX_ a,b,c,d)
-#define newANONHASH(a)		Perl_newANONHASH(aTHX_ a)
-#define newANONLIST(a)		Perl_newANONLIST(aTHX_ a)
-#define newANONSUB(a,b,c)	Perl_newANONSUB(aTHX_ a,b,c)
-#define newASSIGNOP(a,b,c,d)	Perl_newASSIGNOP(aTHX_ a,b,c,d)
-#define newAVREF(a)		Perl_newAVREF(aTHX_ a)
-#define newBINOP(a,b,c,d)	Perl_newBINOP(aTHX_ a,b,c,d)
-#define newCONDOP(a,b,c,d)	Perl_newCONDOP(aTHX_ a,b,c,d)
-#define newCONSTSUB(a,b,c)	Perl_newCONSTSUB(aTHX_ a,b,c)
-#define newCONSTSUB_flags(a,b,c,d,e)	Perl_newCONSTSUB_flags(aTHX_ a,b,c,d,e)
-#define newCVREF(a,b)		Perl_newCVREF(aTHX_ a,b)
-#define newDEFEROP(a,b)		Perl_newDEFEROP(aTHX_ a,b)
-#define newDEFSVOP()		Perl_newDEFSVOP(aTHX)
-#define newFORM(a,b,c)		Perl_newFORM(aTHX_ a,b,c)
-#define newFOROP(a,b,c,d,e)	Perl_newFOROP(aTHX_ a,b,c,d,e)
-#define newGIVENOP(a,b,c)	Perl_newGIVENOP(aTHX_ a,b,c)
-#define newGVOP(a,b,c)		Perl_newGVOP(aTHX_ a,b,c)
-#define newGVREF(a,b)		Perl_newGVREF(aTHX_ a,b)
-#define newGVgen_flags(a,b)	Perl_newGVgen_flags(aTHX_ a,b)
-#define newHVREF(a)		Perl_newHVREF(aTHX_ a)
-#define newHVhv(a)		Perl_newHVhv(aTHX_ a)
-#define newLISTOP(a,b,c,d)	Perl_newLISTOP(aTHX_ a,b,c,d)
-#define newLOGOP(a,b,c,d)	Perl_newLOGOP(aTHX_ a,b,c,d)
-#define newLOOPEX(a,b)		Perl_newLOOPEX(aTHX_ a,b)
-#define newLOOPOP(a,b,c,d)	Perl_newLOOPOP(aTHX_ a,b,c,d)
-#define newMETHOP(a,b,c)	Perl_newMETHOP(aTHX_ a,b,c)
-#define newMETHOP_named(a,b,c)	Perl_newMETHOP_named(aTHX_ a,b,c)
-#define newMYSUB(a,b,c,d,e)	Perl_newMYSUB(aTHX_ a,b,c,d,e)
-#define newNULLLIST()		Perl_newNULLLIST(aTHX)
-#define newOP(a,b)		Perl_newOP(aTHX_ a,b)
-#define newPADNAMELIST		Perl_newPADNAMELIST
-#define newPADNAMEouter		Perl_newPADNAMEouter
-#define newPADNAMEpvn		Perl_newPADNAMEpvn
-#define newPMOP(a,b)		Perl_newPMOP(aTHX_ a,b)
-#define newPROG(a)		Perl_newPROG(aTHX_ a)
-#define newPVOP(a,b,c)		Perl_newPVOP(aTHX_ a,b,c)
-#define newRANGE(a,b,c)		Perl_newRANGE(aTHX_ a,b,c)
-#define newRV(a)		Perl_newRV(aTHX_ a)
-#define newRV_noinc(a)		Perl_newRV_noinc(aTHX_ a)
-#define newSLICEOP(a,b,c)	Perl_newSLICEOP(aTHX_ a,b,c)
-#define newSTATEOP(a,b,c)	Perl_newSTATEOP(aTHX_ a,b,c)
-#define newSV(a)		Perl_newSV(aTHX_ a)
-#define newSVOP(a,b,c)		Perl_newSVOP(aTHX_ a,b,c)
-#define newSVREF(a)		Perl_newSVREF(aTHX_ a)
-#define newSV_type(a)		Perl_newSV_type(aTHX_ a)
-#define newSV_type_mortal(a)	Perl_newSV_type_mortal(aTHX_ a)
-#define newSVhek(a)		Perl_newSVhek(aTHX_ a)
-#define newSViv(a)		Perl_newSViv(aTHX_ a)
-#define newSVnv(a)		Perl_newSVnv(aTHX_ a)
-#define newSVpv(a,b)		Perl_newSVpv(aTHX_ a,b)
-#define newSVpv_share(a,b)	Perl_newSVpv_share(aTHX_ a,b)
-#ifndef MULTIPLICITY
-#define newSVpvf		Perl_newSVpvf
-#endif
-#define newSVpvn(a,b)		Perl_newSVpvn(aTHX_ a,b)
-#define newSVpvn_flags(a,b,c)	Perl_newSVpvn_flags(aTHX_ a,b,c)
-#define newSVpvn_share(a,b,c)	Perl_newSVpvn_share(aTHX_ a,b,c)
-#define newSVrv(a,b)		Perl_newSVrv(aTHX_ a,b)
-#define newSVsv_flags(a,b)	Perl_newSVsv_flags(aTHX_ a,b)
-#define newSVuv(a)		Perl_newSVuv(aTHX_ a)
-#define newTRYCATCHOP(a,b,c,d)	Perl_newTRYCATCHOP(aTHX_ a,b,c,d)
-#define newUNOP(a,b,c)		Perl_newUNOP(aTHX_ a,b,c)
-#define newUNOP_AUX(a,b,c,d)	Perl_newUNOP_AUX(aTHX_ a,b,c,d)
-#define newWHENOP(a,b)		Perl_newWHENOP(aTHX_ a,b)
-#define newWHILEOP(a,b,c,d,e,f,g)	Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g)
-#define newXS(a,b,c)		Perl_newXS(aTHX_ a,b,c)
-#define newXS_flags(a,b,c,d,e)	Perl_newXS_flags(aTHX_ a,b,c,d,e)
-#define new_stackinfo(a,b)	Perl_new_stackinfo(aTHX_ a,b)
-#define new_version(a)		Perl_new_version(aTHX_ a)
-#define nothreadhook()		Perl_nothreadhook(aTHX)
-#define op_append_elem(a,b,c)	Perl_op_append_elem(aTHX_ a,b,c)
-#define op_append_list(a,b,c)	Perl_op_append_list(aTHX_ a,b,c)
-#define op_class(a)		Perl_op_class(aTHX_ a)
-#define op_contextualize(a,b)	Perl_op_contextualize(aTHX_ a,b)
-#define op_convert_list(a,b,c)	Perl_op_convert_list(aTHX_ a,b,c)
-#define op_dump(a)		Perl_op_dump(aTHX_ a)
-#define op_free(a)		Perl_op_free(aTHX_ a)
-#define op_linklist(a)		Perl_op_linklist(aTHX_ a)
-#define op_null(a)		Perl_op_null(aTHX_ a)
-#define op_parent		Perl_op_parent
-#define op_prepend_elem(a,b,c)	Perl_op_prepend_elem(aTHX_ a,b,c)
-#define op_refcnt_lock()	Perl_op_refcnt_lock(aTHX)
-#define op_refcnt_unlock()	Perl_op_refcnt_unlock(aTHX)
-#define op_scope(a)		Perl_op_scope(aTHX_ a)
-#define op_sibling_splice	Perl_op_sibling_splice
-#define op_wrap_finally(a,b)	Perl_op_wrap_finally(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define pack_cat(a,b,c,d,e,f,g)	Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
-#endif
-#define packlist(a,b,c,d,e)	Perl_packlist(aTHX_ a,b,c,d,e)
-#define pad_add_anon(a,b)	Perl_pad_add_anon(aTHX_ a,b)
-#define pad_add_name_pv(a,b,c,d)	Perl_pad_add_name_pv(aTHX_ a,b,c,d)
-#define pad_add_name_pvn(a,b,c,d,e)	Perl_pad_add_name_pvn(aTHX_ a,b,c,d,e)
-#define pad_add_name_sv(a,b,c,d)	Perl_pad_add_name_sv(aTHX_ a,b,c,d)
-#define pad_alloc(a,b)		Perl_pad_alloc(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define pad_compname_type(a)	Perl_pad_compname_type(aTHX_ a)
-#endif
-#define pad_findmy_pv(a,b)	Perl_pad_findmy_pv(aTHX_ a,b)
-#define pad_findmy_pvn(a,b,c)	Perl_pad_findmy_pvn(aTHX_ a,b,c)
-#define pad_findmy_sv(a,b)	Perl_pad_findmy_sv(aTHX_ a,b)
-#define pad_new(a)		Perl_pad_new(aTHX_ a)
-#define pad_tidy(a)		Perl_pad_tidy(aTHX_ a)
-#define padnamelist_fetch	Perl_padnamelist_fetch
-#define padnamelist_store(a,b,c)	Perl_padnamelist_store(aTHX_ a,b,c)
-#define parse_arithexpr(a)	Perl_parse_arithexpr(aTHX_ a)
-#define parse_barestmt(a)	Perl_parse_barestmt(aTHX_ a)
-#define parse_block(a)		Perl_parse_block(aTHX_ a)
-#define parse_fullexpr(a)	Perl_parse_fullexpr(aTHX_ a)
-#define parse_fullstmt(a)	Perl_parse_fullstmt(aTHX_ a)
-#define parse_label(a)		Perl_parse_label(aTHX_ a)
-#define parse_listexpr(a)	Perl_parse_listexpr(aTHX_ a)
-#define parse_stmtseq(a)	Perl_parse_stmtseq(aTHX_ a)
-#define parse_subsignature(a)	Perl_parse_subsignature(aTHX_ a)
-#define parse_termexpr(a)	Perl_parse_termexpr(aTHX_ a)
-#define perly_sighandler	Perl_perly_sighandler
-#define pmop_dump(a)		Perl_pmop_dump(aTHX_ a)
-#define pop_scope()		Perl_pop_scope(aTHX)
-#define pregcomp(a,b)		Perl_pregcomp(aTHX_ a,b)
-#define pregexec(a,b,c,d,e,f,g)	Perl_pregexec(aTHX_ a,b,c,d,e,f,g)
-#define pregfree(a)		Perl_pregfree(aTHX_ a)
-#define pregfree2(a)		Perl_pregfree2(aTHX_ a)
-#define prescan_version(a,b,c,d,e,f,g)	Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
-#define ptr_table_fetch(a,b)	Perl_ptr_table_fetch(aTHX_ a,b)
-#define ptr_table_free(a)	Perl_ptr_table_free(aTHX_ a)
-#define ptr_table_new()		Perl_ptr_table_new(aTHX)
-#define ptr_table_split(a)	Perl_ptr_table_split(aTHX_ a)
-#define ptr_table_store(a,b,c)	Perl_ptr_table_store(aTHX_ a,b,c)
-#define push_scope()		Perl_push_scope(aTHX)
-#define pv_display(a,b,c,d,e)	Perl_pv_display(aTHX_ a,b,c,d,e)
-#define pv_escape(a,b,c,d,e,f)	Perl_pv_escape(aTHX_ a,b,c,d,e,f)
-#define pv_pretty(a,b,c,d,e,f,g)	Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
-#define pv_uni_display(a,b,c,d,e)	Perl_pv_uni_display(aTHX_ a,b,c,d,e)
-#define re_compile(a,b)		Perl_re_compile(aTHX_ a,b)
-#define re_intuit_start(a,b,c,d,e,f,g)	Perl_re_intuit_start(aTHX_ a,b,c,d,e,f,g)
-#define re_intuit_string(a)	Perl_re_intuit_string(aTHX_ a)
-#define reentrant_free()	Perl_reentrant_free(aTHX)
-#define reentrant_init()	Perl_reentrant_init(aTHX)
-#define reentrant_retry		Perl_reentrant_retry
-#define reentrant_size()	Perl_reentrant_size(aTHX)
-#define reg_named_buff_all(a,b)	Perl_reg_named_buff_all(aTHX_ a,b)
-#define reg_named_buff_exists(a,b,c)	Perl_reg_named_buff_exists(aTHX_ a,b,c)
-#define reg_named_buff_fetch(a,b,c)	Perl_reg_named_buff_fetch(aTHX_ a,b,c)
-#define reg_named_buff_firstkey(a,b)	Perl_reg_named_buff_firstkey(aTHX_ a,b)
-#define reg_named_buff_nextkey(a,b)	Perl_reg_named_buff_nextkey(aTHX_ a,b)
-#define reg_named_buff_scalar(a,b)	Perl_reg_named_buff_scalar(aTHX_ a,b)
-#define regdump(a)		Perl_regdump(aTHX_ a)
-#define regexec_flags(a,b,c,d,e,f,g,h)	Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h)
-#define regfree_internal(a)	Perl_regfree_internal(aTHX_ a)
-#define reginitcolors()		Perl_reginitcolors(aTHX)
-#define regnext(a)		Perl_regnext(aTHX_ a)
-#define repeatcpy		Perl_repeatcpy
-#define require_pv(a)		Perl_require_pv(aTHX_ a)
-#define rninstr			Perl_rninstr
-#define rsignal(a,b)		Perl_rsignal(aTHX_ a,b)
-#define rsignal_state(a)	Perl_rsignal_state(aTHX_ a)
-#define runops_debug()		Perl_runops_debug(aTHX)
-#define runops_standard()	Perl_runops_standard(aTHX)
-#define rv2cv_op_cv(a,b)	Perl_rv2cv_op_cv(aTHX_ a,b)
-#define safesyscalloc		Perl_safesyscalloc
-#define safesysfree		Perl_safesysfree
-#define safesysmalloc		Perl_safesysmalloc
-#define safesysrealloc		Perl_safesysrealloc
-#define save_I16(a)		Perl_save_I16(aTHX_ a)
-#define save_I32(a)		Perl_save_I32(aTHX_ a)
-#define save_I8(a)		Perl_save_I8(aTHX_ a)
-#define save_adelete(a,b)	Perl_save_adelete(aTHX_ a,b)
-#define save_aelem_flags(a,b,c,d)	Perl_save_aelem_flags(aTHX_ a,b,c,d)
-#define save_alloc(a,b)		Perl_save_alloc(aTHX_ a,b)
-#define save_aptr(a)		Perl_save_aptr(aTHX_ a)
-#define save_ary(a)		Perl_save_ary(aTHX_ a)
-#define save_bool(a)		Perl_save_bool(aTHX_ a)
-#define save_clearsv(a)		Perl_save_clearsv(aTHX_ a)
-#define save_delete(a,b,c)	Perl_save_delete(aTHX_ a,b,c)
-#define save_destructor(a,b)	Perl_save_destructor(aTHX_ a,b)
-#define save_destructor_x(a,b)	Perl_save_destructor_x(aTHX_ a,b)
-#define save_generic_pvref(a)	Perl_save_generic_pvref(aTHX_ a)
-#define save_generic_svref(a)	Perl_save_generic_svref(aTHX_ a)
-#define save_gp(a,b)		Perl_save_gp(aTHX_ a,b)
-#define save_hash(a)		Perl_save_hash(aTHX_ a)
-#define save_hdelete(a,b)	Perl_save_hdelete(aTHX_ a,b)
-#define save_helem_flags(a,b,c,d)	Perl_save_helem_flags(aTHX_ a,b,c,d)
-#define save_hints()		Perl_save_hints(aTHX)
-#define save_hptr(a)		Perl_save_hptr(aTHX_ a)
-#define save_int(a)		Perl_save_int(aTHX_ a)
-#define save_item(a)		Perl_save_item(aTHX_ a)
-#define save_iv(a)		Perl_save_iv(aTHX_ a)
-#ifndef NO_MATHOMS
-#define save_list(a,b)		Perl_save_list(aTHX_ a,b)
-#endif
-#ifndef NO_MATHOMS
-#define save_long(a)		Perl_save_long(aTHX_ a)
-#endif
-#ifndef NO_MATHOMS
-#define save_nogv(a)		Perl_save_nogv(aTHX_ a)
-#endif
-#define save_padsv_and_mortalize(a)	Perl_save_padsv_and_mortalize(aTHX_ a)
-#define save_pptr(a)		Perl_save_pptr(aTHX_ a)
-#define save_pushi32ptr(a,b,c)	Perl_save_pushi32ptr(aTHX_ a,b,c)
-#define save_pushptr(a,b)	Perl_save_pushptr(aTHX_ a,b)
-#define save_pushptrptr(a,b,c)	Perl_save_pushptrptr(aTHX_ a,b,c)
-#define save_re_context()	Perl_save_re_context(aTHX)
-#define save_scalar(a)		Perl_save_scalar(aTHX_ a)
-#define save_set_svflags(a,b,c)	Perl_save_set_svflags(aTHX_ a,b,c)
-#define save_shared_pvref(a)	Perl_save_shared_pvref(aTHX_ a)
-#define save_sptr(a)		Perl_save_sptr(aTHX_ a)
-#define save_svref(a)		Perl_save_svref(aTHX_ a)
-#define save_vptr(a)		Perl_save_vptr(aTHX_ a)
-#define savepv(a)		Perl_savepv(aTHX_ a)
-#define savepvn(a,b)		Perl_savepvn(aTHX_ a,b)
-#define savesharedpv(a)		Perl_savesharedpv(aTHX_ a)
-#define savesharedpvn(a,b)	Perl_savesharedpvn(aTHX_ a,b)
-#define savesharedsvpv(a)	Perl_savesharedsvpv(aTHX_ a)
-#define savestack_grow()	Perl_savestack_grow(aTHX)
-#define savestack_grow_cnt(a)	Perl_savestack_grow_cnt(aTHX_ a)
-#define savesvpv(a)		Perl_savesvpv(aTHX_ a)
-#define scan_bin(a,b,c)		Perl_scan_bin(aTHX_ a,b,c)
-#define scan_hex(a,b,c)		Perl_scan_hex(aTHX_ a,b,c)
-#define scan_num(a,b)		Perl_scan_num(aTHX_ a,b)
-#define scan_oct(a,b,c)		Perl_scan_oct(aTHX_ a,b,c)
-#define scan_version(a,b,c)	Perl_scan_version(aTHX_ a,b,c)
-#define scan_vstring(a,b,c)	Perl_scan_vstring(aTHX_ a,b,c)
-#define seed()			Perl_seed(aTHX)
-#define set_context		Perl_set_context
-#define setdefout(a)		Perl_setdefout(aTHX_ a)
-#define share_hek(a,b,c)	Perl_share_hek(aTHX_ a,b,c)
-#define single_1bit_pos32	Perl_single_1bit_pos32
-#define sortsv(a,b,c)		Perl_sortsv(aTHX_ a,b,c)
-#define sortsv_flags(a,b,c,d)	Perl_sortsv_flags(aTHX_ a,b,c,d)
-#define stack_grow(a,b,c)	Perl_stack_grow(aTHX_ a,b,c)
-#define start_subparse(a,b)	Perl_start_subparse(aTHX_ a,b)
-#define str_to_version(a)	Perl_str_to_version(aTHX_ a)
-#define sv_2bool_flags(a,b)	Perl_sv_2bool_flags(aTHX_ a,b)
-#define sv_2cv(a,b,c,d)		Perl_sv_2cv(aTHX_ a,b,c,d)
-#define sv_2io(a)		Perl_sv_2io(aTHX_ a)
-#define sv_2iv_flags(a,b)	Perl_sv_2iv_flags(aTHX_ a,b)
-#define sv_2mortal(a)		Perl_sv_2mortal(aTHX_ a)
-#define sv_2nv_flags(a,b)	Perl_sv_2nv_flags(aTHX_ a,b)
-#define sv_2pv_flags(a,b,c)	Perl_sv_2pv_flags(aTHX_ a,b,c)
-#define sv_2pvbyte_flags(a,b,c)	Perl_sv_2pvbyte_flags(aTHX_ a,b,c)
-#define sv_2pvutf8_flags(a,b,c)	Perl_sv_2pvutf8_flags(aTHX_ a,b,c)
-#define sv_2uv_flags(a,b)	Perl_sv_2uv_flags(aTHX_ a,b)
-#define sv_backoff		Perl_sv_backoff
-#define sv_bless(a,b)		Perl_sv_bless(aTHX_ a,b)
-#define sv_cat_decode(a,b,c,d,e,f)	Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f)
-#define sv_catpv(a,b)		Perl_sv_catpv(aTHX_ a,b)
-#define sv_catpv_flags(a,b,c)	Perl_sv_catpv_flags(aTHX_ a,b,c)
-#define sv_catpv_mg(a,b)	Perl_sv_catpv_mg(aTHX_ a,b)
-#ifndef MULTIPLICITY
-#define sv_catpvf		Perl_sv_catpvf
-#define sv_catpvf_mg		Perl_sv_catpvf_mg
-#endif
-#define sv_catpvn_flags(a,b,c,d)	Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
-#define sv_catsv_flags(a,b,c)	Perl_sv_catsv_flags(aTHX_ a,b,c)
-#define sv_chop(a,b)		Perl_sv_chop(aTHX_ a,b)
-#define sv_clear(a)		Perl_sv_clear(aTHX_ a)
-#define sv_cmp_flags(a,b,c)	Perl_sv_cmp_flags(aTHX_ a,b,c)
-#define sv_cmp_locale_flags(a,b,c)	Perl_sv_cmp_locale_flags(aTHX_ a,b,c)
-#define sv_copypv_flags(a,b,c)	Perl_sv_copypv_flags(aTHX_ a,b,c)
-#define sv_dec(a)		Perl_sv_dec(aTHX_ a)
-#define sv_dec_nomg(a)		Perl_sv_dec_nomg(aTHX_ a)
-#define sv_derived_from(a,b)	Perl_sv_derived_from(aTHX_ a,b)
-#define sv_derived_from_pv(a,b,c)	Perl_sv_derived_from_pv(aTHX_ a,b,c)
-#define sv_derived_from_pvn(a,b,c,d)	Perl_sv_derived_from_pvn(aTHX_ a,b,c,d)
-#define sv_derived_from_sv(a,b,c)	Perl_sv_derived_from_sv(aTHX_ a,b,c)
-#define sv_destroyable(a)	Perl_sv_destroyable(aTHX_ a)
-#define sv_does(a,b)		Perl_sv_does(aTHX_ a,b)
-#define sv_does_pv(a,b,c)	Perl_sv_does_pv(aTHX_ a,b,c)
-#define sv_does_pvn(a,b,c,d)	Perl_sv_does_pvn(aTHX_ a,b,c,d)
-#define sv_does_sv(a,b,c)	Perl_sv_does_sv(aTHX_ a,b,c)
-#define sv_dump(a)		Perl_sv_dump(aTHX_ a)
-#define sv_eq_flags(a,b,c)	Perl_sv_eq_flags(aTHX_ a,b,c)
-#define sv_force_normal_flags(a,b)	Perl_sv_force_normal_flags(aTHX_ a,b)
-#define sv_free(a)		Perl_sv_free(aTHX_ a)
-#define sv_get_backrefs		Perl_sv_get_backrefs
-#define sv_gets(a,b,c)		Perl_sv_gets(aTHX_ a,b,c)
-#define sv_grow(a,b)		Perl_sv_grow(aTHX_ a,b)
-#define sv_grow_fresh(a,b)	Perl_sv_grow_fresh(aTHX_ a,b)
-#define sv_inc(a)		Perl_sv_inc(aTHX_ a)
-#define sv_inc_nomg(a)		Perl_sv_inc_nomg(aTHX_ a)
-#define sv_insert_flags(a,b,c,d,e,f)	Perl_sv_insert_flags(aTHX_ a,b,c,d,e,f)
-#define sv_isa(a,b)		Perl_sv_isa(aTHX_ a,b)
-#define sv_isa_sv(a,b)		Perl_sv_isa_sv(aTHX_ a,b)
-#define sv_isobject(a)		Perl_sv_isobject(aTHX_ a)
-#ifndef NO_MATHOMS
-#define sv_iv(a)		Perl_sv_iv(aTHX_ a)
-#endif
-#define sv_len(a)		Perl_sv_len(aTHX_ a)
-#define sv_len_utf8(a)		Perl_sv_len_utf8(aTHX_ a)
-#define sv_len_utf8_nomg(a)	Perl_sv_len_utf8_nomg(aTHX_ a)
-#define sv_magic(a,b,c,d,e)	Perl_sv_magic(aTHX_ a,b,c,d,e)
-#define sv_magicext(a,b,c,d,e,f)	Perl_sv_magicext(aTHX_ a,b,c,d,e,f)
-#define sv_mortalcopy_flags(a,b)	Perl_sv_mortalcopy_flags(aTHX_ a,b)
-#define sv_newmortal()		Perl_sv_newmortal(aTHX)
-#define sv_newref(a)		Perl_sv_newref(aTHX_ a)
-#ifndef NO_MATHOMS
-#define sv_nolocking(a)		Perl_sv_nolocking(aTHX_ a)
-#endif
-#define sv_nosharing(a)		Perl_sv_nosharing(aTHX_ a)
-#ifndef NO_MATHOMS
-#define sv_nounlocking(a)	Perl_sv_nounlocking(aTHX_ a)
-#endif
-#define sv_numeq_flags(a,b,c)	Perl_sv_numeq_flags(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define sv_nv(a)		Perl_sv_nv(aTHX_ a)
-#endif
-#define sv_peek(a)		Perl_sv_peek(aTHX_ a)
-#define sv_pos_b2u(a,b)		Perl_sv_pos_b2u(aTHX_ a,b)
-#define sv_pos_b2u_flags(a,b,c)	Perl_sv_pos_b2u_flags(aTHX_ a,b,c)
-#define sv_pos_u2b(a,b,c)	Perl_sv_pos_u2b(aTHX_ a,b,c)
-#define sv_pos_u2b_flags(a,b,c,d)	Perl_sv_pos_u2b_flags(aTHX_ a,b,c,d)
-#ifndef NO_MATHOMS
-#define sv_pvbyten(a,b)		Perl_sv_pvbyten(aTHX_ a,b)
-#endif
-#define sv_pvbyten_force(a,b)	Perl_sv_pvbyten_force(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define sv_pvn(a,b)		Perl_sv_pvn(aTHX_ a,b)
-#endif
-#define sv_pvn_force_flags(a,b,c)	Perl_sv_pvn_force_flags(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define sv_pvn_nomg(a,b)	Perl_sv_pvn_nomg(aTHX_ a,b)
-#endif
-#ifndef NO_MATHOMS
-#define sv_pvutf8n(a,b)		Perl_sv_pvutf8n(aTHX_ a,b)
-#endif
-#define sv_pvutf8n_force(a,b)	Perl_sv_pvutf8n_force(aTHX_ a,b)
-#define sv_recode_to_utf8(a,b)	Perl_sv_recode_to_utf8(aTHX_ a,b)
-#define sv_ref(a,b,c)		Perl_sv_ref(aTHX_ a,b,c)
-#define sv_reftype(a,b)		Perl_sv_reftype(aTHX_ a,b)
-#define sv_replace(a,b)		Perl_sv_replace(aTHX_ a,b)
-#define sv_report_used()	Perl_sv_report_used(aTHX)
-#define sv_reset(a,b)		Perl_sv_reset(aTHX_ a,b)
-#define sv_rvunweaken(a)	Perl_sv_rvunweaken(aTHX_ a)
-#define sv_rvweaken(a)		Perl_sv_rvweaken(aTHX_ a)
-#define sv_set_undef(a)		Perl_sv_set_undef(aTHX_ a)
-#define sv_setiv(a,b)		Perl_sv_setiv(aTHX_ a,b)
-#define sv_setiv_mg(a,b)	Perl_sv_setiv_mg(aTHX_ a,b)
-#define sv_setnv(a,b)		Perl_sv_setnv(aTHX_ a,b)
-#define sv_setnv_mg(a,b)	Perl_sv_setnv_mg(aTHX_ a,b)
-#define sv_setpv(a,b)		Perl_sv_setpv(aTHX_ a,b)
-#define sv_setpv_bufsize(a,b,c)	Perl_sv_setpv_bufsize(aTHX_ a,b,c)
-#define sv_setpv_mg(a,b)	Perl_sv_setpv_mg(aTHX_ a,b)
-#ifndef MULTIPLICITY
-#define sv_setpvf		Perl_sv_setpvf
-#define sv_setpvf_mg		Perl_sv_setpvf_mg
-#endif
-#ifndef NO_MATHOMS
-#define sv_setpviv(a,b)		Perl_sv_setpviv(aTHX_ a,b)
-#endif
-#ifndef NO_MATHOMS
-#define sv_setpviv_mg(a,b)	Perl_sv_setpviv_mg(aTHX_ a,b)
-#endif
-#define sv_setpvn(a,b,c)	Perl_sv_setpvn(aTHX_ a,b,c)
-#define sv_setpvn_fresh(a,b,c)	Perl_sv_setpvn_fresh(aTHX_ a,b,c)
-#define sv_setpvn_mg(a,b,c)	Perl_sv_setpvn_mg(aTHX_ a,b,c)
-#define sv_setref_iv(a,b,c)	Perl_sv_setref_iv(aTHX_ a,b,c)
-#define sv_setref_nv(a,b,c)	Perl_sv_setref_nv(aTHX_ a,b,c)
-#define sv_setref_pv(a,b,c)	Perl_sv_setref_pv(aTHX_ a,b,c)
-#define sv_setref_pvn(a,b,c,d)	Perl_sv_setref_pvn(aTHX_ a,b,c,d)
-#define sv_setref_uv(a,b,c)	Perl_sv_setref_uv(aTHX_ a,b,c)
-#define sv_setrv_inc(a,b)	Perl_sv_setrv_inc(aTHX_ a,b)
-#define sv_setrv_inc_mg(a,b)	Perl_sv_setrv_inc_mg(aTHX_ a,b)
-#define sv_setrv_noinc(a,b)	Perl_sv_setrv_noinc(aTHX_ a,b)
-#define sv_setrv_noinc_mg(a,b)	Perl_sv_setrv_noinc_mg(aTHX_ a,b)
-#define sv_setsv_flags(a,b,c)	Perl_sv_setsv_flags(aTHX_ a,b,c)
-#define sv_setsv_mg(a,b)	Perl_sv_setsv_mg(aTHX_ a,b)
-#define sv_setuv(a,b)		Perl_sv_setuv(aTHX_ a,b)
-#define sv_setuv_mg(a,b)	Perl_sv_setuv_mg(aTHX_ a,b)
-#define sv_streq_flags(a,b,c)	Perl_sv_streq_flags(aTHX_ a,b,c)
-#define sv_string_from_errnum(a,b)	Perl_sv_string_from_errnum(aTHX_ a,b)
-#define sv_tainted(a)		Perl_sv_tainted(aTHX_ a)
-#define sv_true(a)		Perl_sv_true(aTHX_ a)
-#define sv_uni_display(a,b,c,d)	Perl_sv_uni_display(aTHX_ a,b,c,d)
-#define sv_unmagic(a,b)		Perl_sv_unmagic(aTHX_ a,b)
-#define sv_unmagicext(a,b,c)	Perl_sv_unmagicext(aTHX_ a,b,c)
-#define sv_unref_flags(a,b)	Perl_sv_unref_flags(aTHX_ a,b)
-#define sv_untaint(a)		Perl_sv_untaint(aTHX_ a)
-#define sv_upgrade(a,b)		Perl_sv_upgrade(aTHX_ a,b)
-#define sv_usepvn_flags(a,b,c,d)	Perl_sv_usepvn_flags(aTHX_ a,b,c,d)
-#define sv_utf8_decode(a)	Perl_sv_utf8_decode(aTHX_ a)
-#define sv_utf8_downgrade_flags(a,b,c)	Perl_sv_utf8_downgrade_flags(aTHX_ a,b,c)
-#define sv_utf8_encode(a)	Perl_sv_utf8_encode(aTHX_ a)
-#define sv_utf8_upgrade_flags_grow(a,b,c)	Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define sv_uv(a)		Perl_sv_uv(aTHX_ a)
-#endif
-#define sv_vcatpvf(a,b,c)	Perl_sv_vcatpvf(aTHX_ a,b,c)
-#define sv_vcatpvf_mg(a,b,c)	Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
-#define sv_vcatpvfn(a,b,c,d,e,f,g)	Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g)
-#define sv_vcatpvfn_flags(a,b,c,d,e,f,g,h)	Perl_sv_vcatpvfn_flags(aTHX_ a,b,c,d,e,f,g,h)
-#define sv_vsetpvf(a,b,c)	Perl_sv_vsetpvf(aTHX_ a,b,c)
-#define sv_vsetpvf_mg(a,b,c)	Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
-#define sv_vsetpvfn(a,b,c,d,e,f,g)	Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
-#define switch_to_global_locale	Perl_switch_to_global_locale
-#define sync_locale		Perl_sync_locale
-#define taint_env()		Perl_taint_env(aTHX)
-#define taint_proper(a,b)	Perl_taint_proper(aTHX_ a,b)
-#define thread_locale_init	Perl_thread_locale_init
-#define thread_locale_term	Perl_thread_locale_term
-#define to_uni_lower(a,b,c)	Perl_to_uni_lower(aTHX_ a,b,c)
-#define to_uni_title(a,b,c)	Perl_to_uni_title(aTHX_ a,b,c)
-#define to_uni_upper(a,b,c)	Perl_to_uni_upper(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define unpack_str(a,b,c,d,e,f,g,h)	Perl_unpack_str(aTHX_ a,b,c,d,e,f,g,h)
-#endif
-#define unpackstring(a,b,c,d,e)	Perl_unpackstring(aTHX_ a,b,c,d,e)
-#define unsharepvn(a,b,c)	Perl_unsharepvn(aTHX_ a,b,c)
-#define upg_version(a,b)	Perl_upg_version(aTHX_ a,b)
-#define utf8_distance(a,b)	Perl_utf8_distance(aTHX_ a,b)
-#define utf8_hop		Perl_utf8_hop
-#define utf8_hop_back		Perl_utf8_hop_back
-#define utf8_hop_forward	Perl_utf8_hop_forward
-#define utf8_hop_safe		Perl_utf8_hop_safe
-#define utf8_length(a,b)	Perl_utf8_length(aTHX_ a,b)
-#define utf8_to_bytes(a,b)	Perl_utf8_to_bytes(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define utf8_to_uvchr(a,b)	Perl_utf8_to_uvchr(aTHX_ a,b)
-#endif
-#define utf8_to_uvchr_buf_helper(a,b,c)	Perl_utf8_to_uvchr_buf_helper(aTHX_ a,b,c)
-#ifndef NO_MATHOMS
-#define utf8_to_uvuni(a,b)	Perl_utf8_to_uvuni(aTHX_ a,b)
-#endif
-#define utf8_to_uvuni_buf(a,b,c)	Perl_utf8_to_uvuni_buf(aTHX_ a,b,c)
-#define utf8n_to_uvchr_msgs	Perl_utf8n_to_uvchr_msgs
-#ifndef NO_MATHOMS
-#define utf8n_to_uvuni(a,b,c,d)	Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
-#endif
-#define uvoffuni_to_utf8_flags_msgs(a,b,c,d)	Perl_uvoffuni_to_utf8_flags_msgs(aTHX_ a,b,c,d)
-#define uvuni_to_utf8(a,b)	Perl_uvuni_to_utf8(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define uvuni_to_utf8_flags(a,b,c)	Perl_uvuni_to_utf8_flags(aTHX_ a,b,c)
-#endif
-#define valid_utf8_to_uvchr	Perl_valid_utf8_to_uvchr
-#ifndef NO_MATHOMS
-#define valid_utf8_to_uvuni(a,b)	Perl_valid_utf8_to_uvuni(aTHX_ a,b)
-#endif
-#define vcmp(a,b)		Perl_vcmp(aTHX_ a,b)
-#define vcroak(a,b)		Perl_vcroak(aTHX_ a,b)
-#define vdeb(a,b)		Perl_vdeb(aTHX_ a,b)
-#define vform(a,b)		Perl_vform(aTHX_ a,b)
-#define vload_module(a,b,c,d)	Perl_vload_module(aTHX_ a,b,c,d)
-#define vmess(a,b)		Perl_vmess(aTHX_ a,b)
-#define vnewSVpvf(a,b)		Perl_vnewSVpvf(aTHX_ a,b)
-#define vnormal(a)		Perl_vnormal(aTHX_ a)
-#define vnumify(a)		Perl_vnumify(aTHX_ a)
-#define vstringify(a)		Perl_vstringify(aTHX_ a)
-#define vverify(a)		Perl_vverify(aTHX_ a)
-#define vwarn(a,b)		Perl_vwarn(aTHX_ a,b)
-#define vwarner(a,b,c)		Perl_vwarner(aTHX_ a,b,c)
-#ifndef MULTIPLICITY
-#define warn			Perl_warn
-#endif
-#define warn_sv(a)		Perl_warn_sv(aTHX_ a)
-#ifndef MULTIPLICITY
-#define warner			Perl_warner
-#endif
-#define whichsig_pv(a)		Perl_whichsig_pv(aTHX_ a)
-#define whichsig_pvn(a,b)	Perl_whichsig_pvn(aTHX_ a,b)
-#define whichsig_sv(a)		Perl_whichsig_sv(aTHX_ a)
-#define wrap_keyword_plugin(a,b)	Perl_wrap_keyword_plugin(aTHX_ a,b)
-#define wrap_op_checker(a,b,c)	Perl_wrap_op_checker(aTHX_ a,b,c)
-#if !(defined(PERL_USE_3ARG_SIGHANDLER))
-#define csighandler		Perl_csighandler
-#endif
-#if !defined(EBCDIC)
-#define variant_byte_number	Perl_variant_byte_number
-#endif
-#if !defined(HAS_STRLCAT)
-#define my_strlcat		Perl_my_strlcat
-#endif
-#if !defined(HAS_STRLCPY)
-#define my_strlcpy		Perl_my_strlcpy
-#endif
-#if !defined(HAS_STRNLEN)
-#define my_strnlen		Perl_my_strnlen
-#endif
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-#define my_chsize(a,b)		Perl_my_chsize(aTHX_ a,b)
-#endif
-#if !defined(PERL_IMPLICIT_SYS)
-#define my_pclose(a)		Perl_my_pclose(aTHX_ a)
-#define my_popen(a,b)		Perl_my_popen(aTHX_ a,b)
-#endif
-#if !defined(PERL_NO_INLINE_FUNCTIONS)
-#define cx_popblock(a)		Perl_cx_popblock(aTHX_ a)
-#define cx_popeval(a)		Perl_cx_popeval(aTHX_ a)
-#define cx_popformat(a)		Perl_cx_popformat(aTHX_ a)
-#define cx_popgiven(a)		Perl_cx_popgiven(aTHX_ a)
-#define cx_poploop(a)		Perl_cx_poploop(aTHX_ a)
-#define cx_popsub(a)		Perl_cx_popsub(aTHX_ a)
-#define cx_popsub_args(a)	Perl_cx_popsub_args(aTHX_ a)
-#define cx_popsub_common(a)	Perl_cx_popsub_common(aTHX_ a)
-#define cx_popwhen(a)		Perl_cx_popwhen(aTHX_ a)
-#define cx_pushblock(a,b,c,d)	Perl_cx_pushblock(aTHX_ a,b,c,d)
-#define cx_pusheval(a,b,c)	Perl_cx_pusheval(aTHX_ a,b,c)
-#define cx_pushformat(a,b,c,d)	Perl_cx_pushformat(aTHX_ a,b,c,d)
-#define cx_pushgiven(a,b)	Perl_cx_pushgiven(aTHX_ a,b)
-#define cx_pushloop_for(a,b,c)	Perl_cx_pushloop_for(aTHX_ a,b,c)
-#define cx_pushloop_plain(a)	Perl_cx_pushloop_plain(aTHX_ a)
-#define cx_pushsub(a,b,c,d)	Perl_cx_pushsub(aTHX_ a,b,c,d)
-#define cx_pushtry(a,b)		Perl_cx_pushtry(aTHX_ a,b)
-#define cx_pushwhen(a)		Perl_cx_pushwhen(aTHX_ a)
-#define cx_topblock(a)		Perl_cx_topblock(aTHX_ a)
-#define gimme_V()		Perl_gimme_V(aTHX)
-#endif
-#if defined(DEBUGGING)
-#define pad_setsv(a,b)		Perl_pad_setsv(aTHX_ a,b)
-#define pad_sv(a)		Perl_pad_sv(aTHX_ a)
-#endif
-#if defined(HAVE_INTERP_INTERN)
-#define sys_intern_clear()	Perl_sys_intern_clear(aTHX)
-#define sys_intern_init()	Perl_sys_intern_init(aTHX)
-#  if defined(USE_ITHREADS)
-#define sys_intern_dup(a,b)	Perl_sys_intern_dup(aTHX_ a,b)
-#  endif
-#endif
-#if defined(MULTIPLICITY)
-#define croak_nocontext		Perl_croak_nocontext
-#define deb_nocontext		Perl_deb_nocontext
-#define die_nocontext		Perl_die_nocontext
-#define form_nocontext		Perl_form_nocontext
-#ifndef NO_MATHOMS
-#define fprintf_nocontext	Perl_fprintf_nocontext
-#endif
-#define load_module_nocontext	Perl_load_module_nocontext
-#define mess_nocontext		Perl_mess_nocontext
-#define newSVpvf_nocontext	Perl_newSVpvf_nocontext
-#ifndef NO_MATHOMS
-#define printf_nocontext	Perl_printf_nocontext
-#endif
-#define sv_catpvf_mg_nocontext	Perl_sv_catpvf_mg_nocontext
-#define sv_catpvf_nocontext	Perl_sv_catpvf_nocontext
-#define sv_setpvf_mg_nocontext	Perl_sv_setpvf_mg_nocontext
-#define sv_setpvf_nocontext	Perl_sv_setpvf_nocontext
-#define warn_nocontext		Perl_warn_nocontext
-#define warner_nocontext	Perl_warner_nocontext
-#endif
-#if defined(MYMALLOC)
-#define dump_mstats(a)		Perl_dump_mstats(aTHX_ a)
-#define get_mstats(a,b,c)	Perl_get_mstats(aTHX_ a,b,c)
-#endif
-#if defined(PERL_IN_SV_C)
-#define more_sv()		Perl_more_sv(aTHX)
-#endif
-#if defined(PERL_MEM_LOG)
-#define mem_log_alloc		Perl_mem_log_alloc
-#define mem_log_del_sv		Perl_mem_log_del_sv
-#define mem_log_free		Perl_mem_log_free
-#define mem_log_new_sv		Perl_mem_log_new_sv
-#define mem_log_realloc		Perl_mem_log_realloc
-#endif
-#if defined(PERL_USE_3ARG_SIGHANDLER)
-#define csighandler		Perl_csighandler
-#endif
-#if defined(U64TYPE)	/* HAS_QUAD undefined outside of core */
-#define lsbit_pos64		Perl_lsbit_pos64
-#define msbit_pos64		Perl_msbit_pos64
-#define single_1bit_pos64	Perl_single_1bit_pos64
-#endif
-#if defined(UNLINK_ALL_VERSIONS)
-#define unlnk(a)		Perl_unlnk(aTHX_ a)
-#endif
-#if defined(USE_C_BACKTRACE)
-#define dump_c_backtrace(a,b,c)	Perl_dump_c_backtrace(aTHX_ a,b,c)
-#define get_c_backtrace_dump(a,b)	Perl_get_c_backtrace_dump(aTHX_ a,b)
-#endif
-#if defined(USE_ITHREADS)
-#define alloccopstash(a)	Perl_alloccopstash(aTHX_ a)
-#define any_dup(a,b)		Perl_any_dup(aTHX_ a,b)
-#define cop_file_avn(a)		Perl_cop_file_avn(aTHX_ a)
-#define cx_dup(a,b,c,d)		Perl_cx_dup(aTHX_ a,b,c,d)
-#define dirp_dup(a,b)		Perl_dirp_dup(aTHX_ a,b)
-#define fp_dup(a,b,c)		Perl_fp_dup(aTHX_ a,b,c)
-#define gp_dup(a,b)		Perl_gp_dup(aTHX_ a,b)
-#define he_dup(a,b,c)		Perl_he_dup(aTHX_ a,b,c)
-#define hek_dup(a,b)		Perl_hek_dup(aTHX_ a,b)
-#define mg_dup(a,b)		Perl_mg_dup(aTHX_ a,b)
-#define newPADOP(a,b,c)		Perl_newPADOP(aTHX_ a,b,c)
-#define parser_dup(a,b)		Perl_parser_dup(aTHX_ a,b)
-#define re_dup_guts(a,b,c)	Perl_re_dup_guts(aTHX_ a,b,c)
-#define regdupe_internal(a,b)	Perl_regdupe_internal(aTHX_ a,b)
-#define rvpv_dup(a,b,c)		Perl_rvpv_dup(aTHX_ a,b,c)
-#define si_dup(a,b)		Perl_si_dup(aTHX_ a,b)
-#define ss_dup(a,b)		Perl_ss_dup(aTHX_ a,b)
-#define sv_dup(a,b)		Perl_sv_dup(aTHX_ a,b)
-#define sv_dup_inc(a,b)		Perl_sv_dup_inc(aTHX_ a,b)
-#endif
-#if defined(USE_LOCALE)		    && (   defined(PERL_IN_LOCALE_C)	        || defined(PERL_IN_MG_C)		|| defined (PERL_EXT_POSIX)		|| defined (PERL_EXT_LANGINFO))
-#define _is_cur_LC_category_utf8(a)	Perl__is_cur_LC_category_utf8(aTHX_ a)
-#endif
-#if defined(USE_LOCALE_COLLATE)
-#define sv_collxfrm_flags(a,b,c)	Perl_sv_collxfrm_flags(aTHX_ a,b,c)
-#endif
-#if defined(USE_PERLIO)
-#define PerlIO_clearerr(a)	Perl_PerlIO_clearerr(aTHX_ a)
-#define PerlIO_close(a)		Perl_PerlIO_close(aTHX_ a)
-#define PerlIO_eof(a)		Perl_PerlIO_eof(aTHX_ a)
-#define PerlIO_error(a)		Perl_PerlIO_error(aTHX_ a)
-#define PerlIO_fileno(a)	Perl_PerlIO_fileno(aTHX_ a)
-#define PerlIO_fill(a)		Perl_PerlIO_fill(aTHX_ a)
-#define PerlIO_flush(a)		Perl_PerlIO_flush(aTHX_ a)
-#define PerlIO_get_base(a)	Perl_PerlIO_get_base(aTHX_ a)
-#define PerlIO_get_bufsiz(a)	Perl_PerlIO_get_bufsiz(aTHX_ a)
-#define PerlIO_get_cnt(a)	Perl_PerlIO_get_cnt(aTHX_ a)
-#define PerlIO_get_ptr(a)	Perl_PerlIO_get_ptr(aTHX_ a)
-#define PerlIO_read(a,b,c)	Perl_PerlIO_read(aTHX_ a,b,c)
-#define PerlIO_seek(a,b,c)	Perl_PerlIO_seek(aTHX_ a,b,c)
-#define PerlIO_set_cnt(a,b)	Perl_PerlIO_set_cnt(aTHX_ a,b)
-#define PerlIO_set_ptrcnt(a,b,c)	Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c)
-#define PerlIO_setlinebuf(a)	Perl_PerlIO_setlinebuf(aTHX_ a)
-#define PerlIO_stderr()		Perl_PerlIO_stderr(aTHX)
-#define PerlIO_stdin()		Perl_PerlIO_stdin(aTHX)
-#define PerlIO_stdout()		Perl_PerlIO_stdout(aTHX)
-#define PerlIO_tell(a)		Perl_PerlIO_tell(aTHX_ a)
-#define PerlIO_unread(a,b,c)	Perl_PerlIO_unread(aTHX_ a,b,c)
-#define PerlIO_write(a,b,c)	Perl_PerlIO_write(aTHX_ a,b,c)
-#endif
-#if defined(WIN32) || defined(VMS)
-#define do_aspawn(a,b,c)	Perl_do_aspawn(aTHX_ a,b,c)
-#define do_spawn(a)		Perl_do_spawn(aTHX_ a)
-#define do_spawn_nowait(a)	Perl_do_spawn_nowait(aTHX_ a)
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define _byte_dump_string(a,b,c)	Perl__byte_dump_string(aTHX_ a,b,c)
-#define _inverse_folds(a,b,c)	Perl__inverse_folds(aTHX_ a,b,c)
-#define append_utf8_from_native_byte	Perl_append_utf8_from_native_byte
-#define av_reify(a)		Perl_av_reify(aTHX_ a)
-#define cntrl_to_mnemonic	Perl_cntrl_to_mnemonic
-#define current_re_engine()	Perl_current_re_engine(aTHX)
-#define cv_ckproto_len_flags(a,b,c,d,e)	Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
-#define delimcpy_no_escape	Perl_delimcpy_no_escape
-#define do_uniprop_match	Perl_do_uniprop_match
-#define get_and_check_backslash_N_name(a,b,c,d)	Perl_get_and_check_backslash_N_name(aTHX_ a,b,c,d)
-#define get_deprecated_property_msg	Perl_get_deprecated_property_msg
-#define get_prop_definition(a)	Perl_get_prop_definition(aTHX_ a)
-#define get_prop_values		Perl_get_prop_values
-#define load_charnames(a,b,c,d)	Perl_load_charnames(aTHX_ a,b,c,d)
-#define mg_find_mglob(a)	Perl_mg_find_mglob(aTHX_ a)
-#define multiconcat_stringify(a)	Perl_multiconcat_stringify(aTHX_ a)
-#define multideref_stringify(a,b)	Perl_multideref_stringify(aTHX_ a,b)
-#define op_clear(a)		Perl_op_clear(aTHX_ a)
-#define qerror(a)		Perl_qerror(aTHX_ a)
-#define reg_named_buff(a,b,c,d)	Perl_reg_named_buff(aTHX_ a,b,c,d)
-#define reg_named_buff_iter(a,b,c)	Perl_reg_named_buff_iter(aTHX_ a,b,c)
-#define reg_numbered_buff_fetch(a,b,c)	Perl_reg_numbered_buff_fetch(aTHX_ a,b,c)
-#define reg_numbered_buff_length(a,b,c)	Perl_reg_numbered_buff_length(aTHX_ a,b,c)
-#define reg_numbered_buff_store(a,b,c)	Perl_reg_numbered_buff_store(aTHX_ a,b,c)
-#define reg_qr_package(a)	Perl_reg_qr_package(aTHX_ a)
-#define reg_temp_copy(a,b)	Perl_reg_temp_copy(aTHX_ a,b)
-#define report_uninit(a)	Perl_report_uninit(aTHX_ a)
-#define scan_str(a,b,c,d,e)	Perl_scan_str(aTHX_ a,b,c,d,e)
-#define scan_word(a,b,c,d,e)	Perl_scan_word(aTHX_ a,b,c,d,e)
-#define skipspace_flags(a,b)	Perl_skipspace_flags(aTHX_ a,b)
-#define sv_magicext_mglob(a)	Perl_sv_magicext_mglob(aTHX_ a)
-#define sv_only_taint_gmagic	Perl_sv_only_taint_gmagic
-#define utf16_to_utf8_base(a,b,c,d,e,f)	Perl_utf16_to_utf8_base(aTHX_ a,b,c,d,e,f)
-#define utf8_to_utf16_base(a,b,c,d,e,f)	Perl_utf8_to_utf16_base(aTHX_ a,b,c,d,e,f)
-#define validate_proto(a,b,c,d)	Perl_validate_proto(aTHX_ a,b,c,d)
-#define vivify_defelem(a)	Perl_vivify_defelem(aTHX_ a)
-#define yylex()			Perl_yylex(aTHX)
-#  if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
-#define my_memrchr		S_my_memrchr
-#  endif
-#  if !(!defined(PERL_EXT_RE_BUILD))
-#    if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define get_re_gclass_nonbitmap_data(a,b,c,d,e,f)	Perl_get_re_gclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
-#    endif
-#  endif
-#  if !defined(PERL_EXT_RE_BUILD)
-#    if defined(PERL_IN_REGCOMP_C)
-#define _append_range_to_invlist(a,b,c)	S__append_range_to_invlist(aTHX_ a,b,c)
-#define _invlist_array_init	S__invlist_array_init
-#define get_invlist_previous_index_addr	S_get_invlist_previous_index_addr
-#define invlist_clear(a)	S_invlist_clear(aTHX_ a)
-#define invlist_max		S_invlist_max
-#define invlist_previous_index	S_invlist_previous_index
-#define invlist_replace_list_destroys_src(a,b)	S_invlist_replace_list_destroys_src(aTHX_ a,b)
-#define invlist_set_previous_index	S_invlist_set_previous_index
-#define invlist_trim		S_invlist_trim
-#    endif
-#    if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define get_regclass_nonbitmap_data(a,b,c,d,e,f)	Perl_get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
-#    endif
-#  endif
-#  if defined(DEBUGGING)
-#    if defined(PERL_IN_REGCOMP_C)
-#define dump_trie(a,b,c,d)	S_dump_trie(aTHX_ a,b,c,d)
-#define dump_trie_interim_list(a,b,c,d,e)	S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
-#define dump_trie_interim_table(a,b,c,d,e)	S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
-#define dumpuntil(a,b,c,d,e,f,g,h)	S_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
-#define put_charclass_bitmap_innards(a,b,c,d,e,f,g)	S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e,f,g)
-#define put_charclass_bitmap_innards_common(a,b,c,d,e,f)	S_put_charclass_bitmap_innards_common(aTHX_ a,b,c,d,e,f)
-#define put_charclass_bitmap_innards_invlist(a,b)	S_put_charclass_bitmap_innards_invlist(aTHX_ a,b)
-#define put_code_point(a,b)	S_put_code_point(aTHX_ a,b)
-#define put_range(a,b,c,d)	S_put_range(aTHX_ a,b,c,d)
-#ifndef MULTIPLICITY
-#define re_indentf		Perl_re_indentf
-#endif
-#define regdump_extflags(a,b)	S_regdump_extflags(aTHX_ a,b)
-#define regdump_intflags(a,b)	S_regdump_intflags(aTHX_ a,b)
-#define regnode_guts_debug(a,b,c)	S_regnode_guts_debug(aTHX_ a,b,c)
-#define regtail_study(a,b,c,d)	S_regtail_study(aTHX_ a,b,c,d)
-#    endif
-#    if defined(PERL_IN_REGEXEC_C)
-#define debug_start_match(a,b,c,d,e)	S_debug_start_match(aTHX_ a,b,c,d,e)
-#define dump_exec_pos(a,b,c,d,e,f,g)	S_dump_exec_pos(aTHX_ a,b,c,d,e,f,g)
-#ifndef MULTIPLICITY
-#define re_exec_indentf		Perl_re_exec_indentf
-#endif
-#    endif
-#  endif
-#  if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
-#    if defined(PERL_IN_REGCOMP_C)
-#define dump_regex_sets_structures(a,b,c,d)	S_dump_regex_sets_structures(aTHX_ a,b,c,d)
-#    endif
-#  endif
-#  if defined(PERL_ANY_COW)
-#define sv_setsv_cow(a,b)	Perl_sv_setsv_cow(aTHX_ a,b)
-#  endif
-#  if defined(PERL_CORE) || defined (PERL_EXT)
-#define is_utf8_non_invariant_string	Perl_is_utf8_non_invariant_string
-#define sv_or_pv_pos_u2b(a,b,c,d)	S_sv_or_pv_pos_u2b(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_CORE) || defined(PERL_EXT)
-#define isSCRIPT_RUN(a,b,c)	Perl_isSCRIPT_RUN(aTHX_ a,b,c)
-#define variant_under_utf8_count	S_variant_under_utf8_count
-#  endif
-#  if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
-#define gv_stashsvpvn_cached(a,b,c,d)	Perl_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C)
-#define add_above_Latin1_folds(a,b,c)	S_add_above_Latin1_folds(aTHX_ a,b,c)
-#define add_data		S_add_data
-#define add_multi_match(a,b,c)	S_add_multi_match(aTHX_ a,b,c)
-#define change_engine_size(a,b)	S_change_engine_size(aTHX_ a,b)
-#define compile_wildcard(a,b,c)	S_compile_wildcard(aTHX_ a,b,c)
-#define compute_EXACTish	S_compute_EXACTish
-#define construct_ahocorasick_from_trie(a,b,c)	S_construct_ahocorasick_from_trie(aTHX_ a,b,c)
-#define edit_distance		S_edit_distance
-#define execute_wildcard(a,b,c,d,e,f,g)	S_execute_wildcard(aTHX_ a,b,c,d,e,f,g)
-#define find_first_differing_byte_pos	S_find_first_differing_byte_pos
-#define get_ANYOFM_contents(a)	S_get_ANYOFM_contents(aTHX_ a)
-#define get_ANYOF_cp_list_for_ssc(a,b)	S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
-#define get_quantifier_value(a,b,c)	S_get_quantifier_value(aTHX_ a,b,c)
-#define grok_bslash_N(a,b,c,d,e,f,g)	S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
-#define handle_named_backref(a,b,c,d)	S_handle_named_backref(aTHX_ a,b,c,d)
-#define handle_names_wildcard(a,b,c,d)	S_handle_names_wildcard(aTHX_ a,b,c,d)
-#define handle_possible_posix(a,b,c,d,e)	S_handle_possible_posix(aTHX_ a,b,c,d,e)
-#define handle_regex_sets(a,b,c,d)	S_handle_regex_sets(aTHX_ a,b,c,d)
-#define handle_user_defined_property(a,b,c,d,e,f,g,h,i,j)	S_handle_user_defined_property(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#define invlist_contents(a,b)	S_invlist_contents(aTHX_ a,b)
-#define invlist_is_iterating	S_invlist_is_iterating
-#define invlist_lowest		S_invlist_lowest
-#define is_ssc_worth_it		S_is_ssc_worth_it
-#define join_exact(a,b,c,d,e,f,g)	S_join_exact(aTHX_ a,b,c,d,e,f,g)
-#define make_exactf_invlist(a,b)	S_make_exactf_invlist(aTHX_ a,b)
-#define make_trie(a,b,c,d,e,f,g,h)	S_make_trie(aTHX_ a,b,c,d,e,f,g,h)
-#define nextchar(a)		S_nextchar(aTHX_ a)
-#define optimize_regclass(a,b,c,d,e,f,g,h,i,j)	S_optimize_regclass(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#define output_posix_warnings(a,b)	S_output_posix_warnings(aTHX_ a,b)
-#define parse_lparen_question_flags(a)	S_parse_lparen_question_flags(aTHX_ a)
-#define parse_uniprop_string(a,b,c,d,e,f,g,h,i,j)	S_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#define populate_ANYOF_from_invlist(a,b)	S_populate_ANYOF_from_invlist(aTHX_ a,b)
-#define rck_elide_nothing(a)	S_rck_elide_nothing(aTHX_ a)
-#define reg(a,b,c,d)		S_reg(aTHX_ a,b,c,d)
-#define reg2Lanode(a,b,c,d)	S_reg2Lanode(aTHX_ a,b,c,d)
-#define reg_la_NOTHING(a,b,c)	S_reg_la_NOTHING(aTHX_ a,b,c)
-#define reg_la_OPFAIL(a,b,c)	S_reg_la_OPFAIL(aTHX_ a,b,c)
-#define reg_node(a,b)		S_reg_node(aTHX_ a,b)
-#define reg_scan_name(a,b)	S_reg_scan_name(aTHX_ a,b)
-#define reg_skipcomment		S_reg_skipcomment
-#define reganode(a,b,c)		S_reganode(aTHX_ a,b,c)
-#define regatom(a,b,c)		S_regatom(aTHX_ a,b,c)
-#define regbranch(a,b,c,d)	S_regbranch(aTHX_ a,b,c,d)
-#define regclass(a,b,c,d,e,f,g,h,i)	S_regclass(aTHX_ a,b,c,d,e,f,g,h,i)
-#define regex_set_precedence	S_regex_set_precedence
-#define reginsert(a,b,c,d)	S_reginsert(aTHX_ a,b,c,d)
-#define regnode_guts(a,b)	S_regnode_guts(aTHX_ a,b)
-#define regpiece(a,b,c)		S_regpiece(aTHX_ a,b,c)
-#define regpnode(a,b,c)		S_regpnode(aTHX_ a,b,c)
-#define regtail(a,b,c,d)	S_regtail(aTHX_ a,b,c,d)
-#define scan_commit(a,b,c,d)	S_scan_commit(aTHX_ a,b,c,d)
-#define set_ANYOF_arg(a,b,c,d,e)	S_set_ANYOF_arg(aTHX_ a,b,c,d,e)
-#define set_regex_pv(a,b)	S_set_regex_pv(aTHX_ a,b)
-#define skip_to_be_ignored_text(a,b,c)	S_skip_to_be_ignored_text(aTHX_ a,b,c)
-#define ssc_add_range(a,b,c)	S_ssc_add_range(aTHX_ a,b,c)
-#define ssc_and(a,b,c)		S_ssc_and(aTHX_ a,b,c)
-#define ssc_anything(a)		S_ssc_anything(aTHX_ a)
-#define ssc_clear_locale	S_ssc_clear_locale
-#define ssc_cp_and(a,b)		S_ssc_cp_and(aTHX_ a,b)
-#define ssc_finalize(a,b)	S_ssc_finalize(aTHX_ a,b)
-#define ssc_init(a,b)		S_ssc_init(aTHX_ a,b)
-#define ssc_intersection(a,b,c)	S_ssc_intersection(aTHX_ a,b,c)
-#define ssc_is_anything		S_ssc_is_anything
-#define ssc_is_cp_posixl_init	S_ssc_is_cp_posixl_init
-#define ssc_or(a,b,c)		S_ssc_or(aTHX_ a,b,c)
-#define ssc_union(a,b,c)	S_ssc_union(aTHX_ a,b,c)
-#define study_chunk(a,b,c,d,e,f,g,h,i,j,k,l)	S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
-#define _invlist_dump(a,b,c,d)	Perl__invlist_dump(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
-#define add_cp_to_invlist(a,b)	S_add_cp_to_invlist(aTHX_ a,b)
-#define invlist_extend(a,b)	S_invlist_extend(aTHX_ a,b)
-#define invlist_highest		S_invlist_highest
-#define invlist_set_len(a,b,c)	S_invlist_set_len(aTHX_ a,b,c)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
-#define _add_range_to_invlist(a,b,c)	Perl__add_range_to_invlist(aTHX_ a,b,c)
-#define _invlist_intersection_maybe_complement_2nd(a,b,c,d)	Perl__invlist_intersection_maybe_complement_2nd(aTHX_ a,b,c,d)
-#define _invlist_invert(a)	Perl__invlist_invert(aTHX_ a)
-#define _invlist_union_maybe_complement_2nd(a,b,c,d)	Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
-#define _new_invlist(a)		Perl__new_invlist(aTHX_ a)
-#define _setup_canned_invlist(a,b,c)	Perl__setup_canned_invlist(aTHX_ a,b,c)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
-#define form_alien_digit_msg(a,b,c,d,e,f)	Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
-#define grok_bslash_c(a,b,c,d)	Perl_grok_bslash_c(aTHX_ a,b,c,d)
-#define grok_bslash_o(a,b,c,d,e,f,g,h)	Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
-#define grok_bslash_x(a,b,c,d,e,f,g,h)	Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
-#define form_cp_too_large_msg(a,b,c,d)	Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-#define get_invlist_iter_addr	S_get_invlist_iter_addr
-#define invlist_iterfinish	S_invlist_iterfinish
-#define invlist_iterinit	S_invlist_iterinit
-#define invlist_iternext	S_invlist_iternext
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-#define _invlistEQ(a,b,c)	Perl__invlistEQ(aTHX_ a,b,c)
-#define _new_invlist_C_array(a)	Perl__new_invlist_C_array(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-#define get_regex_charset_name	S_get_regex_charset_name
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#ifndef MULTIPLICITY
-#define re_printf		Perl_re_printf
-#endif
-#define regprop(a,b,c,d,e)	Perl_regprop(aTHX_ a,b,c,d,e)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)	 || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)		 || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)		 || defined(PERL_IN_DOOP_C)
-#define _invlist_contains_cp	S__invlist_contains_cp
-#define _invlist_len		S__invlist_len
-#define _invlist_search		Perl__invlist_search
-#define get_invlist_offset_addr	S_get_invlist_offset_addr
-#define invlist_array		S_invlist_array
-#define is_invlist		S_is_invlist
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
-#define is_grapheme(a,b,c,d)	Perl_is_grapheme(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-#define _to_fold_latin1		Perl__to_fold_latin1
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-#define invlist_clone(a,b)	Perl_invlist_clone(aTHX_ a,b)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#define regcurly		Perl_regcurly
-#  endif
-#  if defined(PERL_IN_REGEXEC_C)
-#define advance_one_LB(a,b,c)	S_advance_one_LB(aTHX_ a,b,c)
-#define advance_one_SB(a,b,c)	S_advance_one_SB(aTHX_ a,b,c)
-#define advance_one_WB(a,b,c,d)	S_advance_one_WB(aTHX_ a,b,c,d)
-#define backup_one_GCB(a,b,c)	S_backup_one_GCB(aTHX_ a,b,c)
-#define backup_one_LB(a,b,c)	S_backup_one_LB(aTHX_ a,b,c)
-#define backup_one_SB(a,b,c)	S_backup_one_SB(aTHX_ a,b,c)
-#define backup_one_WB(a,b,c,d)	S_backup_one_WB(aTHX_ a,b,c,d)
-#define find_byclass(a,b,c,d,e)	S_find_byclass(aTHX_ a,b,c,d,e)
-#define find_next_masked	S_find_next_masked
-#define find_span_end		S_find_span_end
-#define find_span_end_mask	S_find_span_end_mask
-#define foldEQ_latin1_s2_folded	S_foldEQ_latin1_s2_folded
-#define isFOO_lc(a,b)		S_isFOO_lc(aTHX_ a,b)
-#define isFOO_utf8_lc(a,b,c)	S_isFOO_utf8_lc(aTHX_ a,b,c)
-#define isGCB(a,b,c,d,e)	S_isGCB(aTHX_ a,b,c,d,e)
-#define isLB(a,b,c,d,e,f)	S_isLB(aTHX_ a,b,c,d,e,f)
-#define isSB(a,b,c,d,e,f)	S_isSB(aTHX_ a,b,c,d,e,f)
-#define isWB(a,b,c,d,e,f,g)	S_isWB(aTHX_ a,b,c,d,e,f,g)
-#define reg_check_named_buff_matched	S_reg_check_named_buff_matched
-#define regcp_restore(a,b,c)	S_regcp_restore(aTHX_ a,b,c _aDEPTH)
-#define regcppop(a,b)		S_regcppop(aTHX_ a,b _aDEPTH)
-#define regcppush(a,b,c)	S_regcppush(aTHX_ a,b,c _aDEPTH)
-#define reghop3			S_reghop3
-#define reghop4			S_reghop4
-#define reghopmaybe3		S_reghopmaybe3
-#define reginclass(a,b,c,d,e)	S_reginclass(aTHX_ a,b,c,d,e)
-#define regmatch(a,b,c)		S_regmatch(aTHX_ a,b,c)
-#define regrepeat(a,b,c,d,e,f)	S_regrepeat(aTHX_ a,b,c,d,e,f _aDEPTH)
-#define regtry(a,b)		S_regtry(aTHX_ a,b)
-#define to_byte_substr(a)	S_to_byte_substr(aTHX_ a)
-#define to_utf8_substr(a)	S_to_utf8_substr(aTHX_ a)
-#  endif
-#endif
-#ifdef PERL_CORE
-#define PerlLIO_dup2_cloexec(a,b)	Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
-#define PerlLIO_dup_cloexec(a)	Perl_PerlLIO_dup_cloexec(aTHX_ a)
-#define PerlLIO_open3_cloexec(a,b,c)	Perl_PerlLIO_open3_cloexec(aTHX_ a,b,c)
-#define PerlLIO_open_cloexec(a,b)	Perl_PerlLIO_open_cloexec(aTHX_ a,b)
-#define Slab_Alloc(a)		Perl_Slab_Alloc(aTHX_ a)
-#define Slab_Free(a)		Perl_Slab_Free(aTHX_ a)
-#define _warn_problematic_locale	Perl__warn_problematic_locale
-#define abort_execution(a,b)	Perl_abort_execution(aTHX_ a,b)
-#define alloc_LOGOP(a,b,c)	Perl_alloc_LOGOP(aTHX_ a,b,c)
-#define allocmy(a,b,c)		Perl_allocmy(aTHX_ a,b,c)
-#define amagic_is_enabled(a)	Perl_amagic_is_enabled(aTHX_ a)
-#define apply(a,b,c)		Perl_apply(aTHX_ a,b,c)
-#define av_extend_guts(a,b,c,d,e)	Perl_av_extend_guts(aTHX_ a,b,c,d,e)
-#define av_nonelem(a,b)		Perl_av_nonelem(aTHX_ a,b)
-#define bind_match(a,b,c)	Perl_bind_match(aTHX_ a,b,c)
-#define boot_core_PerlIO()	Perl_boot_core_PerlIO(aTHX)
-#define boot_core_UNIVERSAL()	Perl_boot_core_UNIVERSAL(aTHX)
-#define boot_core_builtin()	Perl_boot_core_builtin(aTHX)
-#define boot_core_mro()		Perl_boot_core_mro(aTHX)
-#define cando(a,b,c)		Perl_cando(aTHX_ a,b,c)
-#define check_utf8_print(a,b)	Perl_check_utf8_print(aTHX_ a,b)
-#define ck_anoncode(a)		Perl_ck_anoncode(aTHX_ a)
-#define ck_backtick(a)		Perl_ck_backtick(aTHX_ a)
-#define ck_bitop(a)		Perl_ck_bitop(aTHX_ a)
-#define ck_cmp(a)		Perl_ck_cmp(aTHX_ a)
-#define ck_concat(a)		Perl_ck_concat(aTHX_ a)
-#define ck_defined(a)		Perl_ck_defined(aTHX_ a)
-#define ck_delete(a)		Perl_ck_delete(aTHX_ a)
-#define ck_each(a)		Perl_ck_each(aTHX_ a)
-#define ck_eof(a)		Perl_ck_eof(aTHX_ a)
-#define ck_eval(a)		Perl_ck_eval(aTHX_ a)
-#define ck_exec(a)		Perl_ck_exec(aTHX_ a)
-#define ck_exists(a)		Perl_ck_exists(aTHX_ a)
-#define ck_ftst(a)		Perl_ck_ftst(aTHX_ a)
-#define ck_fun(a)		Perl_ck_fun(aTHX_ a)
-#define ck_glob(a)		Perl_ck_glob(aTHX_ a)
-#define ck_grep(a)		Perl_ck_grep(aTHX_ a)
-#define ck_index(a)		Perl_ck_index(aTHX_ a)
-#define ck_isa(a)		Perl_ck_isa(aTHX_ a)
-#define ck_join(a)		Perl_ck_join(aTHX_ a)
-#define ck_length(a)		Perl_ck_length(aTHX_ a)
-#define ck_lfun(a)		Perl_ck_lfun(aTHX_ a)
-#define ck_listiob(a)		Perl_ck_listiob(aTHX_ a)
-#define ck_match(a)		Perl_ck_match(aTHX_ a)
-#define ck_method(a)		Perl_ck_method(aTHX_ a)
-#define ck_null(a)		Perl_ck_null(aTHX_ a)
-#define ck_open(a)		Perl_ck_open(aTHX_ a)
-#define ck_prototype(a)		Perl_ck_prototype(aTHX_ a)
-#define ck_readline(a)		Perl_ck_readline(aTHX_ a)
-#define ck_refassign(a)		Perl_ck_refassign(aTHX_ a)
-#define ck_repeat(a)		Perl_ck_repeat(aTHX_ a)
-#define ck_require(a)		Perl_ck_require(aTHX_ a)
-#define ck_return(a)		Perl_ck_return(aTHX_ a)
-#define ck_rfun(a)		Perl_ck_rfun(aTHX_ a)
-#define ck_rvconst(a)		Perl_ck_rvconst(aTHX_ a)
-#define ck_sassign(a)		Perl_ck_sassign(aTHX_ a)
-#define ck_select(a)		Perl_ck_select(aTHX_ a)
-#define ck_shift(a)		Perl_ck_shift(aTHX_ a)
-#define ck_smartmatch(a)	Perl_ck_smartmatch(aTHX_ a)
-#define ck_sort(a)		Perl_ck_sort(aTHX_ a)
-#define ck_spair(a)		Perl_ck_spair(aTHX_ a)
-#define ck_split(a)		Perl_ck_split(aTHX_ a)
-#define ck_stringify(a)		Perl_ck_stringify(aTHX_ a)
-#define ck_subr(a)		Perl_ck_subr(aTHX_ a)
-#define ck_substr(a)		Perl_ck_substr(aTHX_ a)
-#define ck_svconst(a)		Perl_ck_svconst(aTHX_ a)
-#define ck_tell(a)		Perl_ck_tell(aTHX_ a)
-#define ck_trunc(a)		Perl_ck_trunc(aTHX_ a)
-#define ck_trycatch(a)		Perl_ck_trycatch(aTHX_ a)
-#define closest_cop(a,b,c,d)	Perl_closest_cop(aTHX_ a,b,c,d)
-#define cmpchain_extend(a,b,c)	Perl_cmpchain_extend(aTHX_ a,b,c)
-#define cmpchain_finish(a)	Perl_cmpchain_finish(aTHX_ a)
-#define cmpchain_start(a,b,c)	Perl_cmpchain_start(aTHX_ a,b,c)
-#define core_prototype(a,b,c,d)	Perl_core_prototype(aTHX_ a,b,c,d)
-#define coresub_op(a,b,c)	Perl_coresub_op(aTHX_ a,b,c)
-#define create_eval_scope(a,b)	Perl_create_eval_scope(aTHX_ a,b)
-#define croak_caller		Perl_croak_caller
-#define croak_no_mem		Perl_croak_no_mem
-#define croak_popstack		Perl_croak_popstack
-#define custom_op_get_field(a,b)	Perl_custom_op_get_field(aTHX_ a,b)
-#define cv_clone_into(a,b)	Perl_cv_clone_into(aTHX_ a,b)
-#define cv_const_sv_or_av	Perl_cv_const_sv_or_av
-#define cv_forget_slab(a)	Perl_cv_forget_slab(aTHX_ a)
-#define cv_undef_flags(a,b)	Perl_cv_undef_flags(aTHX_ a,b)
-#define cvgv_set(a,b)		Perl_cvgv_set(aTHX_ a,b)
-#define cvstash_set(a,b)	Perl_cvstash_set(aTHX_ a,b)
-#define deb_stack_all()		Perl_deb_stack_all(aTHX)
-#define debug_hash_seed(a)	Perl_debug_hash_seed(aTHX_ a)
-#define defelem_target(a,b)	Perl_defelem_target(aTHX_ a,b)
-#define delete_eval_scope()	Perl_delete_eval_scope(aTHX)
-#define die_unwind(a)		Perl_die_unwind(aTHX_ a)
-#define do_aexec5(a,b,c,d,e)	Perl_do_aexec5(aTHX_ a,b,c,d,e)
-#define do_dump_pad(a,b,c,d)	Perl_do_dump_pad(aTHX_ a,b,c,d)
-#define do_eof(a)		Perl_do_eof(aTHX_ a)
-#define do_ncmp(a,b)		Perl_do_ncmp(aTHX_ a,b)
-#define do_open6(a,b,c,d,e,f)	Perl_do_open6(aTHX_ a,b,c,d,e,f)
-#define do_open_raw(a,b,c,d,e,f)	Perl_do_open_raw(aTHX_ a,b,c,d,e,f)
-#define do_print(a,b)		Perl_do_print(aTHX_ a,b)
-#define do_readline()		Perl_do_readline(aTHX)
-#define do_seek(a,b,c)		Perl_do_seek(aTHX_ a,b,c)
-#define do_sysseek(a,b,c)	Perl_do_sysseek(aTHX_ a,b,c)
-#define do_tell(a)		Perl_do_tell(aTHX_ a)
-#define do_trans(a)		Perl_do_trans(aTHX_ a)
-#define do_vecget(a,b,c)	Perl_do_vecget(aTHX_ a,b,c)
-#define do_vecset(a)		Perl_do_vecset(aTHX_ a)
-#define do_vop(a,b,c,d)		Perl_do_vop(aTHX_ a,b,c,d)
-#define dofile(a,b)		Perl_dofile(aTHX_ a,b)
-#define dump_all_perl(a)	Perl_dump_all_perl(aTHX_ a)
-#define dump_packsubs_perl(a,b)	Perl_dump_packsubs_perl(aTHX_ a,b)
-#define dump_sub_perl(a,b)	Perl_dump_sub_perl(aTHX_ a,b)
-#define finalize_optree(a)	Perl_finalize_optree(aTHX_ a)
-#define find_lexical_cv(a)	Perl_find_lexical_cv(aTHX_ a)
-#define find_runcv_where(a,b,c)	Perl_find_runcv_where(aTHX_ a,b,c)
-#define find_script(a,b,c,d)	Perl_find_script(aTHX_ a,b,c,d)
-#define free_tied_hv_pool()	Perl_free_tied_hv_pool(aTHX)
-#define get_hash_seed(a)	Perl_get_hash_seed(aTHX_ a)
-#define get_no_modify()		Perl_get_no_modify(aTHX)
-#define get_opargs()		Perl_get_opargs(aTHX)
-#define gv_override(a,b)	Perl_gv_override(aTHX_ a,b)
-#define gv_setref(a,b)		Perl_gv_setref(aTHX_ a,b)
-#define gv_try_downgrade(a)	Perl_gv_try_downgrade(aTHX_ a)
-#define hv_ename_add(a,b,c,d)	Perl_hv_ename_add(aTHX_ a,b,c,d)
-#define hv_ename_delete(a,b,c,d)	Perl_hv_ename_delete(aTHX_ a,b,c,d)
-#define hv_pushkv(a,b)		Perl_hv_pushkv(aTHX_ a,b)
-#define init_argv_symbols(a,b)	Perl_init_argv_symbols(aTHX_ a,b)
-#define init_constants()	Perl_init_constants(aTHX)
-#define init_debugger()		Perl_init_debugger(aTHX)
-#define init_named_cv(a,b)	Perl_init_named_cv(aTHX_ a,b)
-#define init_uniprops()		Perl_init_uniprops(aTHX)
-#define invert(a)		Perl_invert(aTHX_ a)
-#define invmap_dump(a,b)	Perl_invmap_dump(aTHX_ a,b)
-#define io_close(a,b,c,d)	Perl_io_close(aTHX_ a,b,c,d)
-#define isinfnansv(a)		Perl_isinfnansv(aTHX_ a)
-#define jmaybe(a)		Perl_jmaybe(aTHX_ a)
-#define keyword(a,b,c)		Perl_keyword(aTHX_ a,b,c)
-#define list(a)			Perl_list(aTHX_ a)
-#define localize(a,b)		Perl_localize(aTHX_ a,b)
-#define magic_clear_all_env(a,b)	Perl_magic_clear_all_env(aTHX_ a,b)
-#define magic_cleararylen_p(a,b)	Perl_magic_cleararylen_p(aTHX_ a,b)
-#define magic_clearenv(a,b)	Perl_magic_clearenv(aTHX_ a,b)
-#define magic_clearhint(a,b)	Perl_magic_clearhint(aTHX_ a,b)
-#define magic_clearhints(a,b)	Perl_magic_clearhints(aTHX_ a,b)
-#define magic_clearisa(a,b)	Perl_magic_clearisa(aTHX_ a,b)
-#define magic_clearpack(a,b)	Perl_magic_clearpack(aTHX_ a,b)
-#define magic_clearsig(a,b)	Perl_magic_clearsig(aTHX_ a,b)
-#define magic_copycallchecker(a,b,c,d,e)	Perl_magic_copycallchecker(aTHX_ a,b,c,d,e)
-#define magic_existspack(a,b)	Perl_magic_existspack(aTHX_ a,b)
-#define magic_freearylen_p(a,b)	Perl_magic_freearylen_p(aTHX_ a,b)
-#define magic_freemglob(a,b)	Perl_magic_freemglob(aTHX_ a,b)
-#define magic_freeovrld(a,b)	Perl_magic_freeovrld(aTHX_ a,b)
-#define magic_freeutf8(a,b)	Perl_magic_freeutf8(aTHX_ a,b)
-#define magic_get(a,b)		Perl_magic_get(aTHX_ a,b)
-#define magic_getarylen(a,b)	Perl_magic_getarylen(aTHX_ a,b)
-#define magic_getdebugvar(a,b)	Perl_magic_getdebugvar(aTHX_ a,b)
-#define magic_getdefelem(a,b)	Perl_magic_getdefelem(aTHX_ a,b)
-#define magic_getnkeys(a,b)	Perl_magic_getnkeys(aTHX_ a,b)
-#define magic_getpack(a,b)	Perl_magic_getpack(aTHX_ a,b)
-#define magic_getpos(a,b)	Perl_magic_getpos(aTHX_ a,b)
-#define magic_getsig(a,b)	Perl_magic_getsig(aTHX_ a,b)
-#define magic_getsubstr(a,b)	Perl_magic_getsubstr(aTHX_ a,b)
-#define magic_gettaint(a,b)	Perl_magic_gettaint(aTHX_ a,b)
-#define magic_getuvar(a,b)	Perl_magic_getuvar(aTHX_ a,b)
-#define magic_getvec(a,b)	Perl_magic_getvec(aTHX_ a,b)
-#define magic_killbackrefs(a,b)	Perl_magic_killbackrefs(aTHX_ a,b)
-#define magic_nextpack(a,b,c)	Perl_magic_nextpack(aTHX_ a,b,c)
-#define magic_regdata_cnt(a,b)	Perl_magic_regdata_cnt(aTHX_ a,b)
-#define magic_regdatum_get(a,b)	Perl_magic_regdatum_get(aTHX_ a,b)
-#define magic_scalarpack(a,b)	Perl_magic_scalarpack(aTHX_ a,b)
-#define magic_set(a,b)		Perl_magic_set(aTHX_ a,b)
-#define magic_set_all_env(a,b)	Perl_magic_set_all_env(aTHX_ a,b)
-#define magic_setarylen(a,b)	Perl_magic_setarylen(aTHX_ a,b)
-#define magic_setdbline(a,b)	Perl_magic_setdbline(aTHX_ a,b)
-#define magic_setdebugvar(a,b)	Perl_magic_setdebugvar(aTHX_ a,b)
-#define magic_setdefelem(a,b)	Perl_magic_setdefelem(aTHX_ a,b)
-#define magic_setenv(a,b)	Perl_magic_setenv(aTHX_ a,b)
-#define magic_sethint(a,b)	Perl_magic_sethint(aTHX_ a,b)
-#define magic_setisa(a,b)	Perl_magic_setisa(aTHX_ a,b)
-#define magic_setlvref(a,b)	Perl_magic_setlvref(aTHX_ a,b)
-#define magic_setmglob(a,b)	Perl_magic_setmglob(aTHX_ a,b)
-#define magic_setnkeys(a,b)	Perl_magic_setnkeys(aTHX_ a,b)
-#define magic_setnonelem(a,b)	Perl_magic_setnonelem(aTHX_ a,b)
-#define magic_setpack(a,b)	Perl_magic_setpack(aTHX_ a,b)
-#define magic_setpos(a,b)	Perl_magic_setpos(aTHX_ a,b)
-#define magic_setregexp(a,b)	Perl_magic_setregexp(aTHX_ a,b)
-#define magic_setsig(a,b)	Perl_magic_setsig(aTHX_ a,b)
-#define magic_setsigall(a,b)	Perl_magic_setsigall(aTHX_ a,b)
-#define magic_setsubstr(a,b)	Perl_magic_setsubstr(aTHX_ a,b)
-#define magic_settaint(a,b)	Perl_magic_settaint(aTHX_ a,b)
-#define magic_setutf8(a,b)	Perl_magic_setutf8(aTHX_ a,b)
-#define magic_setuvar(a,b)	Perl_magic_setuvar(aTHX_ a,b)
-#define magic_setvec(a,b)	Perl_magic_setvec(aTHX_ a,b)
-#define magic_sizepack(a,b)	Perl_magic_sizepack(aTHX_ a,b)
-#define magic_wipepack(a,b)	Perl_magic_wipepack(aTHX_ a,b)
-#define mg_localize(a,b,c)	Perl_mg_localize(aTHX_ a,b,c)
-#define mode_from_discipline(a,b)	Perl_mode_from_discipline(aTHX_ a,b)
-#define mro_isa_changed_in(a)	Perl_mro_isa_changed_in(aTHX_ a)
-#define mro_package_moved(a,b,c,d)	Perl_mro_package_moved(aTHX_ a,b,c,d)
-#define my_attrs(a,b)		Perl_my_attrs(aTHX_ a,b)
-#define my_clearenv()		Perl_my_clearenv(aTHX)
-#define my_lstat_flags(a)	Perl_my_lstat_flags(aTHX_ a)
-#define my_stat_flags(a)	Perl_my_stat_flags(aTHX_ a)
-#define my_strerror(a)		Perl_my_strerror(aTHX_ a)
-#define my_unexec()		Perl_my_unexec(aTHX)
-#define newATTRSUB_x(a,b,c,d,e,f)	Perl_newATTRSUB_x(aTHX_ a,b,c,d,e,f)
-#define newSTUB(a,b)		Perl_newSTUB(aTHX_ a,b)
-#define newSVavdefelem(a,b,c)	Perl_newSVavdefelem(aTHX_ a,b,c)
-#define newXS_deffile(a,b)	Perl_newXS_deffile(aTHX_ a,b)
-#define newXS_len_flags(a,b,c,d,e,f,g)	Perl_newXS_len_flags(aTHX_ a,b,c,d,e,f,g)
-#define nextargv(a,b)		Perl_nextargv(aTHX_ a,b)
-#define no_bareword_filehandle(a)	Perl_no_bareword_filehandle(aTHX_ a)
-#define noperl_die		Perl_noperl_die
-#define notify_parser_that_changed_to_utf8()	Perl_notify_parser_that_changed_to_utf8(aTHX)
-#define oopsAV(a)		Perl_oopsAV(aTHX_ a)
-#define oopsHV(a)		Perl_oopsHV(aTHX_ a)
-#define op_unscope(a)		Perl_op_unscope(aTHX_ a)
-#define optimize_optree(a)	Perl_optimize_optree(aTHX_ a)
-#define package(a)		Perl_package(aTHX_ a)
-#define package_version(a)	Perl_package_version(aTHX_ a)
-#define pad_add_weakref(a)	Perl_pad_add_weakref(aTHX_ a)
-#define pad_block_start(a)	Perl_pad_block_start(aTHX_ a)
-#define pad_fixup_inner_anons(a,b,c)	Perl_pad_fixup_inner_anons(aTHX_ a,b,c)
-#define pad_free(a)		Perl_pad_free(aTHX_ a)
-#define pad_leavemy()		Perl_pad_leavemy(aTHX)
-#define pad_push(a,b)		Perl_pad_push(aTHX_ a,b)
-#define pad_swipe(a,b)		Perl_pad_swipe(aTHX_ a,b)
-#define padlist_store(a,b,c)	Perl_padlist_store(aTHX_ a,b,c)
-#define parse_unicode_opts(a)	Perl_parse_unicode_opts(aTHX_ a)
-#define parser_free(a)		Perl_parser_free(aTHX_ a)
-#define peep(a)			Perl_peep(aTHX_ a)
-#define pmruntime(a,b,c,d,e)	Perl_pmruntime(aTHX_ a,b,c,d,e)
-#define re_op_compile(a,b,c,d,e,f,g,h)	Perl_re_op_compile(aTHX_ a,b,c,d,e,f,g,h)
-#define refcounted_he_chain_2hv(a,b)	Perl_refcounted_he_chain_2hv(aTHX_ a,b)
-#define refcounted_he_fetch_pv(a,b,c,d)	Perl_refcounted_he_fetch_pv(aTHX_ a,b,c,d)
-#define refcounted_he_fetch_pvn(a,b,c,d,e)	Perl_refcounted_he_fetch_pvn(aTHX_ a,b,c,d,e)
-#define refcounted_he_fetch_sv(a,b,c,d)	Perl_refcounted_he_fetch_sv(aTHX_ a,b,c,d)
-#define refcounted_he_free(a)	Perl_refcounted_he_free(aTHX_ a)
-#define refcounted_he_inc(a)	Perl_refcounted_he_inc(aTHX_ a)
-#define refcounted_he_new_pv(a,b,c,d,e)	Perl_refcounted_he_new_pv(aTHX_ a,b,c,d,e)
-#define refcounted_he_new_pvn(a,b,c,d,e,f)	Perl_refcounted_he_new_pvn(aTHX_ a,b,c,d,e,f)
-#define refcounted_he_new_sv(a,b,c,d,e)	Perl_refcounted_he_new_sv(aTHX_ a,b,c,d,e)
-#define report_evil_fh(a)	Perl_report_evil_fh(aTHX_ a)
-#define report_wrongway_fh(a,b)	Perl_report_wrongway_fh(aTHX_ a,b)
-#define rpeep(a)		Perl_rpeep(aTHX_ a)
-#define rsignal_restore(a,b)	Perl_rsignal_restore(aTHX_ a,b)
-#define rsignal_save(a,b,c)	Perl_rsignal_save(aTHX_ a,b,c)
-#define rxres_save(a,b)		Perl_rxres_save(aTHX_ a,b)
-#define save_strlen(a)		Perl_save_strlen(aTHX_ a)
-#define sawparens(a)		Perl_sawparens(aTHX_ a)
-#define scalar(a)		Perl_scalar(aTHX_ a)
-#define scalarvoid(a)		Perl_scalarvoid(aTHX_ a)
-#define set_caret_X()		Perl_set_caret_X(aTHX)
-#define set_numeric_standard()	Perl_set_numeric_standard(aTHX)
-#define set_numeric_underlying()	Perl_set_numeric_underlying(aTHX)
-#define setfd_cloexec		Perl_setfd_cloexec
-#define setfd_cloexec_for_nonsysfd(a)	Perl_setfd_cloexec_for_nonsysfd(aTHX_ a)
-#define setfd_cloexec_or_inhexec_by_sysfdness(a)	Perl_setfd_cloexec_or_inhexec_by_sysfdness(aTHX_ a)
-#define setfd_inhexec		Perl_setfd_inhexec
-#define setfd_inhexec_for_sysfd(a)	Perl_setfd_inhexec_for_sysfd(aTHX_ a)
-#define sighandler1		Perl_sighandler1
-#define sighandler3		Perl_sighandler3
-#define sub_crush_depth(a)	Perl_sub_crush_depth(aTHX_ a)
-#define sv_2num(a)		Perl_sv_2num(aTHX_ a)
-#define sv_clean_all()		Perl_sv_clean_all(aTHX)
-#define sv_clean_objs()		Perl_sv_clean_objs(aTHX)
-#define sv_del_backref(a,b)	Perl_sv_del_backref(aTHX_ a,b)
-#define sv_free_arenas()	Perl_sv_free_arenas(aTHX)
-#define sv_resetpvn(a,b,c)	Perl_sv_resetpvn(aTHX_ a,b,c)
-#define sv_sethek(a,b)		Perl_sv_sethek(aTHX_ a,b)
-#ifndef MULTIPLICITY
-#define tied_method		Perl_tied_method
-#endif
-#define tmps_grow_p(a)		Perl_tmps_grow_p(aTHX_ a)
-#define unshare_hek(a)		Perl_unshare_hek(aTHX_ a)
-#define utilize(a,b,c,d,e)	Perl_utilize(aTHX_ a,b,c,d,e)
-#define vivify_ref(a,b)		Perl_vivify_ref(aTHX_ a,b)
-#define wait4pid(a,b,c)		Perl_wait4pid(aTHX_ a,b,c)
-#define watch(a)		Perl_watch(aTHX_ a)
-#define write_to_stderr(a)	Perl_write_to_stderr(aTHX_ a)
-#define xs_boot_epilog(a)	Perl_xs_boot_epilog(aTHX_ a)
-#define yyerror(a)		Perl_yyerror(aTHX_ a)
-#define yyerror_pv(a,b)		Perl_yyerror_pv(aTHX_ a,b)
-#define yyerror_pvn(a,b,c)	Perl_yyerror_pvn(aTHX_ a,b,c)
-#define yyparse(a)		Perl_yyparse(aTHX_ a)
-#define yyquit()		Perl_yyquit(aTHX)
-#define yyunlex()		Perl_yyunlex(aTHX)
-#  if !(defined(DEBUGGING))
-#    if !defined(NV_PRESERVES_UV)
-#      if defined(PERL_IN_SV_C)
-#define sv_2iuv_non_preserve(a)	S_sv_2iuv_non_preserve(aTHX_ a)
-#      endif
-#    endif
-#  endif
-#  if !(defined(HAS_NL_LANGINFO))
-#    if defined(PERL_IN_LOCALE_C)
-#define my_nl_langinfo		S_my_nl_langinfo
-#    endif
-#  endif
-#  if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
-#define do_exec(a)		Perl_do_exec(aTHX_ a)
-#  endif
-#  if !(defined(PERL_USE_3ARG_SIGHANDLER))
-#define sighandler		Perl_sighandler
-#  endif
-#  if !(defined(_MSC_VER))
-#define magic_regdatum_set(a,b)	Perl_magic_regdatum_set(aTHX_ a,b)
-#  endif
-#  if !defined(HAS_GETENV_LEN)
-#define getenv_len(a,b)		Perl_getenv_len(aTHX_ a,b)
-#  endif
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#    if defined(PERL_IN_PP_SYS_C)
-#define dooneliner(a,b)		S_dooneliner(aTHX_ a,b)
-#    endif
-#  endif
-#  if !defined(HAS_RENAME)
-#define same_dirent(a,b)	Perl_same_dirent(aTHX_ a,b)
-#  endif
-#  if !defined(NV_PRESERVES_UV)
-#    if defined(DEBUGGING)
-#      if defined(PERL_IN_SV_C)
-#define sv_2iuv_non_preserve(a,b)	S_sv_2iuv_non_preserve(aTHX_ a,b)
-#      endif
-#    endif
-#  endif
-#  if !defined(PERL_DISABLE_PMC)
-#    if defined(PERL_IN_PP_CTL_C)
-#define doopen_pm(a)		S_doopen_pm(aTHX_ a)
-#    endif
-#  endif
-#  if !defined(PERL_EXT_RE_BUILD)
-#    if defined(PERL_IN_REGCOMP_C)
-#define initialize_invlist_guts(a,b)	S_initialize_invlist_guts(aTHX_ a,b)
-#    endif
-#  endif
-#  if !defined(PERL_IS_MINIPERL)
-#    if defined(PERL_IN_PERL_C)
-#define incpush_if_exists(a,b,c)	S_incpush_if_exists(aTHX_ a,b,c)
-#    endif
-#  endif
-#  if !defined(PERL_NO_UTF16_FILTER)
-#    if defined(PERL_IN_TOKE_C)
-#define add_utf16_textfilter(a,b)	S_add_utf16_textfilter(aTHX_ a,b)
-#define utf16_textfilter(a,b,c)	S_utf16_textfilter(aTHX_ a,b,c)
-#    endif
-#  endif
-#  if !defined(PURIFY)
-#    if defined(PERL_IN_HV_C)
-#define new_he()		S_new_he(aTHX)
-#    endif
-#  endif
-#  if !defined(WIN32)
-#define do_exec3(a,b,c)		Perl_do_exec3(aTHX_ a,b,c)
-#  endif
-#  if 0	/* Not currently used, but may be needed in the future */
-#    if defined(PERL_IN_UTF8_C)
-#define warn_on_first_deprecated_use(a,b,c,d,e)	S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e)
-#    endif
-#  endif
-#  if defined (HAS_SOCKETPAIR) ||     (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && 	defined(AF_INET) && defined(PF_INET))
-#define PerlSock_socketpair_cloexec(a,b,c,d)	Perl_PerlSock_socketpair_cloexec(aTHX_ a,b,c,d)
-#  endif
-#  if defined(DEBUGGING)
-#define get_debug_opts(a,b)	Perl_get_debug_opts(aTHX_ a,b)
-#define set_padlist		Perl_set_padlist
-#    if defined(PERL_IN_LOCALE_C)
-#      if defined(USE_LOCALE)
-#define print_bytes_for_locale(a,b,c)	S_print_bytes_for_locale(aTHX_ a,b,c)
-#define print_collxfrm_input_and_return(a,b,c,d)	S_print_collxfrm_input_and_return(aTHX_ a,b,c,d)
-#define setlocale_debug_string	S_setlocale_debug_string
-#      endif
-#    endif
-#    if defined(PERL_IN_PAD_C)
-#define cv_dump(a,b)		S_cv_dump(aTHX_ a,b)
-#    endif
-#    if defined(PERL_IN_SV_C)
-#define del_sv(a)		S_del_sv(aTHX_ a)
-#    endif
-#    if defined(PERL_IN_TOKE_C)
-#define printbuf(a,b)		S_printbuf(aTHX_ a,b)
-#define tokereport(a,b)		S_tokereport(aTHX_ a,b)
-#    endif
-#  endif
-#  if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
-#define dump_sv_child(a)	Perl_dump_sv_child(aTHX_ a)
-#  endif
-#  if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#define do_ipcctl(a,b,c)	Perl_do_ipcctl(aTHX_ a,b,c)
-#define do_ipcget(a,b,c)	Perl_do_ipcget(aTHX_ a,b,c)
-#define do_msgrcv(a,b)		Perl_do_msgrcv(aTHX_ a,b)
-#define do_msgsnd(a,b)		Perl_do_msgsnd(aTHX_ a,b)
-#define do_semop(a,b)		Perl_do_semop(aTHX_ a,b)
-#define do_shmio(a,b,c)		Perl_do_shmio(aTHX_ a,b,c)
-#  endif
-#  if defined(HAS_NL_LANGINFO)
-#    if defined(PERL_IN_LOCALE_C)
-#define my_nl_langinfo		S_my_nl_langinfo
-#    endif
-#  endif
-#  if defined(HAS_PIPE)
-#define PerlProc_pipe_cloexec(a)	Perl_PerlProc_pipe_cloexec(aTHX_ a)
-#  endif
-#  if defined(HAS_SOCKET)
-#define PerlSock_accept_cloexec(a,b,c)	Perl_PerlSock_accept_cloexec(aTHX_ a,b,c)
-#define PerlSock_socket_cloexec(a,b,c)	Perl_PerlSock_socket_cloexec(aTHX_ a,b,c)
-#  endif
-#  if defined(MYMALLOC)
-#define malloc_good_size	Perl_malloc_good_size
-#define malloced_size		Perl_malloced_size
-#  endif
-#  if defined(PERL_CORE)
-#define opslab_force_free(a)	Perl_opslab_force_free(aTHX_ a)
-#define opslab_free(a)		Perl_opslab_free(aTHX_ a)
-#define opslab_free_nopad(a)	Perl_opslab_free_nopad(aTHX_ a)
-#define parser_free_nexttoke_ops(a,b)	Perl_parser_free_nexttoke_ops(aTHX_ a,b)
-#define should_warn_nl		S_should_warn_nl
-#    if defined(PERL_DEBUG_READONLY_OPS)
-#define Slab_to_ro(a)		Perl_Slab_to_ro(aTHX_ a)
-#define Slab_to_rw(a)		Perl_Slab_to_rw(aTHX_ a)
-#    endif
-#  endif
-#  if defined(PERL_CR_FILTER)
-#    if defined(PERL_IN_TOKE_C)
-#define cr_textfilter(a,b,c)	S_cr_textfilter(aTHX_ a,b,c)
-#define strip_return(a)		S_strip_return(aTHX_ a)
-#    endif
-#  endif
-#  if defined(PERL_DEBUG_READONLY_COW)
-#define sv_buf_to_ro(a)		Perl_sv_buf_to_ro(aTHX_ a)
-#    if defined(PERL_IN_SV_C)
-#define sv_buf_to_rw(a)		S_sv_buf_to_rw(aTHX_ a)
-#    endif
-#  endif
-#  if defined(PERL_IN_AV_C)
-#define get_aux_mg(a)		S_get_aux_mg(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_DEB_C)
-#define deb_stack_n(a,b,c,d,e)	S_deb_stack_n(aTHX_ a,b,c,d,e)
-#  endif
-#  if defined(PERL_IN_DOIO_C)
-#define argvout_final(a,b,c)	S_argvout_final(aTHX_ a,b,c)
-#define exec_failed(a,b,c)	S_exec_failed(aTHX_ a,b,c)
-#define ingroup(a,b)		S_ingroup(aTHX_ a,b)
-#define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m)	S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
-#define openn_setup(a,b,c,d,e,f)	S_openn_setup(aTHX_ a,b,c,d,e,f)
-#  endif
-#  if defined(PERL_IN_DOOP_C)
-#define do_trans_complex(a,b)	S_do_trans_complex(aTHX_ a,b)
-#define do_trans_count(a,b)	S_do_trans_count(aTHX_ a,b)
-#define do_trans_count_invmap(a,b)	S_do_trans_count_invmap(aTHX_ a,b)
-#define do_trans_invmap(a,b)	S_do_trans_invmap(aTHX_ a,b)
-#define do_trans_simple(a,b)	S_do_trans_simple(aTHX_ a,b)
-#  endif
-#  if defined(PERL_IN_DUMP_C)
-#define deb_curcv(a)		S_deb_curcv(aTHX_ a)
-#define debprof(a)		S_debprof(aTHX_ a)
-#define pm_description(a)	S_pm_description(aTHX_ a)
-#define sequence_num(a)		S_sequence_num(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_GV_C)
-#define find_default_stash(a,b,c,d,e,f)	S_find_default_stash(aTHX_ a,b,c,d,e,f)
-#define gv_fetchmeth_internal(a,b,c,d,e,f)	S_gv_fetchmeth_internal(aTHX_ a,b,c,d,e,f)
-#define gv_init_svtype(a,b)	S_gv_init_svtype(aTHX_ a,b)
-#define gv_is_in_main(a,b,c)	S_gv_is_in_main(aTHX_ a,b,c)
-#define gv_magicalize(a,b,c,d,e)	S_gv_magicalize(aTHX_ a,b,c,d,e)
-#define gv_magicalize_isa(a)	S_gv_magicalize_isa(aTHX_ a)
-#define gv_stashpvn_internal(a,b,c)	S_gv_stashpvn_internal(aTHX_ a,b,c)
-#define maybe_multimagic_gv(a,b,c)	S_maybe_multimagic_gv(aTHX_ a,b,c)
-#define parse_gv_stash_name(a,b,c,d,e,f,g,h)	S_parse_gv_stash_name(aTHX_ a,b,c,d,e,f,g,h)
-#define require_tie_mod(a,b,c,d,e)	S_require_tie_mod(aTHX_ a,b,c,d,e)
-#  endif
-#  if defined(PERL_IN_HV_C)
-#define clear_placeholders(a,b)	S_clear_placeholders(aTHX_ a,b)
-#define hsplit(a,b,c)		S_hsplit(aTHX_ a,b,c)
-#define hv_auxinit(a)		S_hv_auxinit(aTHX_ a)
-#define hv_delete_common(a,b,c,d,e,f,g)	S_hv_delete_common(aTHX_ a,b,c,d,e,f,g)
-#define hv_free_ent_ret(a)	S_hv_free_ent_ret(aTHX_ a)
-#define hv_free_entries(a)	S_hv_free_entries(aTHX_ a)
-#define hv_magic_check		S_hv_magic_check
-#define hv_notallowed(a,b,c,d)	S_hv_notallowed(aTHX_ a,b,c,d)
-#define refcounted_he_value(a)	S_refcounted_he_value(aTHX_ a)
-#define save_hek_flags		S_save_hek_flags
-#define share_hek_flags(a,b,c,d)	S_share_hek_flags(aTHX_ a,b,c,d)
-#define unshare_hek_or_pvn(a,b,c,d)	S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_LOCALE_C)
-#define save_to_buffer		S_save_to_buffer
-#    if defined(USE_LOCALE)
-#define category_name		S_category_name
-#define new_collate(a)		S_new_collate(aTHX_ a)
-#define new_ctype(a)		S_new_ctype(aTHX_ a)
-#define new_numeric(a)		S_new_numeric(aTHX_ a)
-#define restore_switched_locale(a,b)	S_restore_switched_locale(aTHX_ a,b)
-#define set_numeric_radix(a)	S_set_numeric_radix(aTHX_ a)
-#define stdize_locale(a)	S_stdize_locale(aTHX_ a)
-#define switch_category_locale_to_template(a,b,c)	S_switch_category_locale_to_template(aTHX_ a,b,c)
-#      if defined(USE_POSIX_2008_LOCALE)
-#define emulate_setlocale	S_emulate_setlocale
-#      endif
-#      if defined(WIN32)
-#define win32_setlocale(a,b)	S_win32_setlocale(aTHX_ a,b)
-#      endif
-#    endif
-#  endif
-#  if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
-#    if defined(USE_LOCALE_COLLATE)
-#define _mem_collxfrm(a,b,c,d)	Perl__mem_collxfrm(aTHX_ a,b,c,d)
-#    endif
-#  endif
-#  if defined(PERL_IN_MALLOC_C)
-#define adjust_size_and_find_bucket	S_adjust_size_and_find_bucket
-#  endif
-#  if defined(PERL_IN_MG_C)
-#define fixup_errno_string(a)	S_fixup_errno_string(aTHX_ a)
-#define magic_methcall1(a,b,c,d,e,f)	S_magic_methcall1(aTHX_ a,b,c,d,e,f)
-#define magic_methpack(a,b,c)	S_magic_methpack(aTHX_ a,b,c)
-#define restore_magic(a)	S_restore_magic(aTHX_ a)
-#define save_magic_flags(a,b,c)	S_save_magic_flags(aTHX_ a,b,c)
-#define unwind_handler_stack(a)	S_unwind_handler_stack(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-#define translate_substr_offsets	Perl_translate_substr_offsets
-#  endif
-#  if defined(PERL_IN_MRO_C)
-#define mro_clean_isarev(a,b,c,d,e,f)	S_mro_clean_isarev(aTHX_ a,b,c,d,e,f)
-#define mro_gather_and_rename(a,b,c,d,e)	S_mro_gather_and_rename(aTHX_ a,b,c,d,e)
-#define mro_get_linear_isa_dfs(a,b)	S_mro_get_linear_isa_dfs(aTHX_ a,b)
-#  endif
-#  if defined(PERL_IN_NUMERIC_C)
-#define output_non_portable(a)	S_output_non_portable(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_OP_C)
-#define apply_attrs(a,b,c)	S_apply_attrs(aTHX_ a,b,c)
-#define apply_attrs_my(a,b,c,d)	S_apply_attrs_my(aTHX_ a,b,c,d)
-#define assignment_type(a)	S_assignment_type(aTHX_ a)
-#define bad_type_gv(a,b,c,d)	S_bad_type_gv(aTHX_ a,b,c,d)
-#define bad_type_pv(a,b,c,d)	S_bad_type_pv(aTHX_ a,b,c,d)
-#define clear_special_blocks(a,b,c)	S_clear_special_blocks(aTHX_ a,b,c)
-#define cop_free(a)		S_cop_free(aTHX_ a)
-#define dup_attrlist(a)		S_dup_attrlist(aTHX_ a)
-#define finalize_op(a)		S_finalize_op(aTHX_ a)
-#define find_and_forget_pmops(a)	S_find_and_forget_pmops(aTHX_ a)
-#define fold_constants(a)	S_fold_constants(aTHX_ a)
-#define force_list(a,b)		S_force_list(aTHX_ a,b)
-#define forget_pmop(a)		S_forget_pmop(aTHX_ a)
-#define gen_constant_list(a)	S_gen_constant_list(aTHX_ a)
-#define inplace_aassign(a)	S_inplace_aassign(aTHX_ a)
-#define is_handle_constructor	S_is_handle_constructor
-#define listkids(a)		S_listkids(aTHX_ a)
-#define looks_like_bool(a)	S_looks_like_bool(aTHX_ a)
-#define modkids(a,b)		S_modkids(aTHX_ a,b)
-#define move_proto_attr(a,b,c,d)	S_move_proto_attr(aTHX_ a,b,c,d)
-#define my_kid(a,b,c)		S_my_kid(aTHX_ a,b,c)
-#define newGIVWHENOP(a,b,c,d,e)	S_newGIVWHENOP(aTHX_ a,b,c,d,e)
-#define newMETHOP_internal(a,b,c,d)	S_newMETHOP_internal(aTHX_ a,b,c,d)
-#define new_logop(a,b,c,d)	S_new_logop(aTHX_ a,b,c,d)
-#define no_bareword_allowed(a)	S_no_bareword_allowed(aTHX_ a)
-#define no_fh_allowed(a)	S_no_fh_allowed(aTHX_ a)
-#define op_integerize(a)	S_op_integerize(aTHX_ a)
-#define op_std_init(a)		S_op_std_init(aTHX_ a)
-#define optimize_op(a)		S_optimize_op(aTHX_ a)
-#define pmtrans(a,b,c)		S_pmtrans(aTHX_ a,b,c)
-#define process_special_blocks(a,b,c,d)	S_process_special_blocks(aTHX_ a,b,c,d)
-#define ref_array_or_hash(a)	S_ref_array_or_hash(aTHX_ a)
-#define refkids(a,b)		S_refkids(aTHX_ a,b)
-#define scalar_mod_type		S_scalar_mod_type
-#define scalarboolean(a)	S_scalarboolean(aTHX_ a)
-#define scalarkids(a)		S_scalarkids(aTHX_ a)
-#define search_const(a)		S_search_const(aTHX_ a)
-#define simplify_sort(a)	S_simplify_sort(aTHX_ a)
-#define too_few_arguments_pv(a,b,c)	S_too_few_arguments_pv(aTHX_ a,b,c)
-#define too_many_arguments_pv(a,b,c)	S_too_many_arguments_pv(aTHX_ a,b,c)
-#define traverse_op_tree(a,b)	S_traverse_op_tree(aTHX_ a,b)
-#define voidnonfinal(a)		S_voidnonfinal(aTHX_ a)
-#    if defined(USE_ITHREADS)
-#define op_relocate_sv(a,b)	S_op_relocate_sv(aTHX_ a,b)
-#    endif
-#  endif
-#  if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
-#define report_redefined_cv(a,b,c)	Perl_report_redefined_cv(aTHX_ a,b,c)
-#  endif
-#  if defined(PERL_IN_PAD_C)
-#define pad_alloc_name(a,b,c,d)	S_pad_alloc_name(aTHX_ a,b,c,d)
-#define pad_check_dup(a,b,c)	S_pad_check_dup(aTHX_ a,b,c)
-#define pad_findlex(a,b,c,d,e,f,g,h,i)	S_pad_findlex(aTHX_ a,b,c,d,e,f,g,h,i)
-#define pad_reset()		S_pad_reset(aTHX)
-#  endif
-#  if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-#define PadnameIN_SCOPE		S_PadnameIN_SCOPE
-#  endif
-#  if defined(PERL_IN_PERL_C)
-#define find_beginning(a,b)	S_find_beginning(aTHX_ a,b)
-#define forbid_setid(a,b)	S_forbid_setid(aTHX_ a,b)
-#define incpush(a,b,c)		S_incpush(aTHX_ a,b,c)
-#define incpush_use_sep(a,b,c)	S_incpush_use_sep(aTHX_ a,b,c)
-#define init_ids()		S_init_ids(aTHX)
-#define init_interp()		S_init_interp(aTHX)
-#define init_main_stash()	S_init_main_stash(aTHX)
-#define init_perllib()		S_init_perllib(aTHX)
-#define init_postdump_symbols(a,b,c)	S_init_postdump_symbols(aTHX_ a,b,c)
-#define init_predump_symbols()	S_init_predump_symbols(aTHX)
-#define mayberelocate(a,b,c)	S_mayberelocate(aTHX_ a,b,c)
-#define minus_v()		S_minus_v(aTHX)
-#define my_exit_jump()		S_my_exit_jump(aTHX)
-#define nuke_stacks()		S_nuke_stacks(aTHX)
-#define open_script(a,b,c)	S_open_script(aTHX_ a,b,c)
-#define parse_body(a,b)		S_parse_body(aTHX_ a,b)
-#define run_body(a)		S_run_body(aTHX_ a)
-#define usage()			S_usage(aTHX)
-#  endif
-#  if defined(PERL_IN_PP_C)
-#define do_chomp(a,b,c)		S_do_chomp(aTHX_ a,b,c)
-#define do_delete_local()	S_do_delete_local(aTHX)
-#define refto(a)		S_refto(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-#define lossless_NV_to_IV	S_lossless_NV_to_IV
-#  endif
-#  if defined(PERL_IN_PP_CTL_C)
-#define check_type_and_open(a)	S_check_type_and_open(aTHX_ a)
-#define destroy_matcher(a)	S_destroy_matcher(aTHX_ a)
-#define do_smartmatch(a,b,c)	S_do_smartmatch(aTHX_ a,b,c)
-#define docatch(a)		S_docatch(aTHX_ a)
-#define doeval_compile(a,b,c,d)	S_doeval_compile(aTHX_ a,b,c,d)
-#define dofindlabel(a,b,c,d,e,f)	S_dofindlabel(aTHX_ a,b,c,d,e,f)
-#define doparseform(a)		S_doparseform(aTHX_ a)
-#define dopoptoeval(a)		S_dopoptoeval(aTHX_ a)
-#define dopoptogivenfor(a)	S_dopoptogivenfor(aTHX_ a)
-#define dopoptolabel(a,b,c)	S_dopoptolabel(aTHX_ a,b,c)
-#define dopoptoloop(a)		S_dopoptoloop(aTHX_ a)
-#define dopoptosub_at(a,b)	S_dopoptosub_at(aTHX_ a,b)
-#define dopoptowhen(a)		S_dopoptowhen(aTHX_ a)
-#define make_matcher(a)		S_make_matcher(aTHX_ a)
-#define matcher_matches_sv(a,b)	S_matcher_matches_sv(aTHX_ a,b)
-#define num_overflow		S_num_overflow
-#define path_is_searchable	S_path_is_searchable
-#define run_user_filter(a,b,c)	S_run_user_filter(aTHX_ a,b,c)
-#define rxres_free(a)		S_rxres_free(aTHX_ a)
-#define rxres_restore(a,b)	S_rxres_restore(aTHX_ a,b)
-#define save_lines(a,b)		S_save_lines(aTHX_ a,b)
-#  endif
-#  if defined(PERL_IN_PP_HOT_C)
-#define do_oddball(a,b)		S_do_oddball(aTHX_ a,b)
-#define opmethod_stash(a)	S_opmethod_stash(aTHX_ a)
-#define should_we_output_Debug_r(a)	S_should_we_output_Debug_r(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_PP_PACK_C)
-#define div128(a,b)		S_div128(aTHX_ a,b)
-#define first_symbol		S_first_symbol
-#define get_num(a,b)		S_get_num(aTHX_ a,b)
-#define group_end(a,b,c)	S_group_end(aTHX_ a,b,c)
-#define is_an_int(a,b)		S_is_an_int(aTHX_ a,b)
-#define measure_struct(a)	S_measure_struct(aTHX_ a)
-#define mul128(a,b)		S_mul128(aTHX_ a,b)
-#define my_bytes_to_utf8	S_my_bytes_to_utf8
-#define need_utf8		S_need_utf8
-#define next_symbol(a)		S_next_symbol(aTHX_ a)
-#define pack_rec(a,b,c,d)	S_pack_rec(aTHX_ a,b,c,d)
-#define sv_exp_grow(a,b)	S_sv_exp_grow(aTHX_ a,b)
-#define unpack_rec(a,b,c,d,e)	S_unpack_rec(aTHX_ a,b,c,d,e)
-#  endif
-#  if defined(PERL_IN_PP_SORT_C)
-#define amagic_cmp(a,b)		S_amagic_cmp(aTHX_ a,b)
-#define amagic_cmp_desc(a,b)	S_amagic_cmp_desc(aTHX_ a,b)
-#define amagic_i_ncmp(a,b)	S_amagic_i_ncmp(aTHX_ a,b)
-#define amagic_i_ncmp_desc(a,b)	S_amagic_i_ncmp_desc(aTHX_ a,b)
-#define amagic_ncmp(a,b)	S_amagic_ncmp(aTHX_ a,b)
-#define amagic_ncmp_desc(a,b)	S_amagic_ncmp_desc(aTHX_ a,b)
-#define cmp_desc(a,b)		S_cmp_desc(aTHX_ a,b)
-#define sortcv(a,b)		S_sortcv(aTHX_ a,b)
-#define sortcv_stacked(a,b)	S_sortcv_stacked(aTHX_ a,b)
-#define sortcv_xsub(a,b)	S_sortcv_xsub(aTHX_ a,b)
-#define sortsv_flags_impl(a,b,c,d)	S_sortsv_flags_impl(aTHX_ a,b,c,d)
-#define sv_i_ncmp(a,b)		S_sv_i_ncmp(aTHX_ a,b)
-#define sv_i_ncmp_desc(a,b)	S_sv_i_ncmp_desc(aTHX_ a,b)
-#define sv_ncmp(a,b)		S_sv_ncmp(aTHX_ a,b)
-#define sv_ncmp_desc(a,b)	S_sv_ncmp_desc(aTHX_ a,b)
-#    if defined(USE_LOCALE_COLLATE)
-#define amagic_cmp_locale(a,b)	S_amagic_cmp_locale(aTHX_ a,b)
-#define amagic_cmp_locale_desc(a,b)	S_amagic_cmp_locale_desc(aTHX_ a,b)
-#define cmp_locale_desc(a,b)	S_cmp_locale_desc(aTHX_ a,b)
-#    endif
-#  endif
-#  if defined(PERL_IN_PP_SYS_C)
-#define doform(a,b,c)		S_doform(aTHX_ a,b,c)
-#define space_join_names_mortal(a)	S_space_join_names_mortal(aTHX_ a)
-#  endif
-#  if defined(PERL_IN_SCOPE_C)
-#define save_pushptri32ptr(a,b,c,d)	S_save_pushptri32ptr(aTHX_ a,b,c,d)
-#define save_scalar_at(a,b)	S_save_scalar_at(aTHX_ a,b)
-#  endif
-#  if defined(PERL_IN_SV_C)
-#define F0convert		S_F0convert
-#define anonymise_cv_maybe(a,b)	S_anonymise_cv_maybe(aTHX_ a,b)
-#define assert_uft8_cache_coherent(a,b,c,d)	S_assert_uft8_cache_coherent(aTHX_ a,b,c,d)
-#define curse(a,b)		S_curse(aTHX_ a,b)
-#define expect_number(a)	S_expect_number(aTHX_ a)
-#define find_array_subscript(a,b)	S_find_array_subscript(aTHX_ a,b)
-#define find_hash_subscript(a,b)	S_find_hash_subscript(aTHX_ a,b)
-#define find_uninit_var(a,b,c,d)	S_find_uninit_var(aTHX_ a,b,c,d)
-#define glob_2number(a)		S_glob_2number(aTHX_ a)
-#define glob_assign_glob(a,b,c)	S_glob_assign_glob(aTHX_ a,b,c)
-#define not_a_number(a)		S_not_a_number(aTHX_ a)
-#define not_incrementable(a)	S_not_incrementable(aTHX_ a)
-#define ptr_table_find		S_ptr_table_find
-#define sv_2iuv_common(a)	S_sv_2iuv_common(aTHX_ a)
-#define sv_add_arena(a,b,c)	S_sv_add_arena(aTHX_ a,b,c)
-#define sv_display(a,b,c)	S_sv_display(aTHX_ a,b,c)
-#define sv_pos_b2u_midway(a,b,c,d)	S_sv_pos_b2u_midway(aTHX_ a,b,c,d)
-#define sv_pos_u2b_cached(a,b,c,d,e,f,g)	S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g)
-#define sv_pos_u2b_forwards	S_sv_pos_u2b_forwards
-#define sv_pos_u2b_midway	S_sv_pos_u2b_midway
-#define sv_unglob(a,b)		S_sv_unglob(aTHX_ a,b)
-#define uiv_2buf		S_uiv_2buf
-#define utf8_mg_len_cache_update(a,b,c)	S_utf8_mg_len_cache_update(aTHX_ a,b,c)
-#define utf8_mg_pos_cache_update(a,b,c,d,e)	S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e)
-#define visit(a,b,c)		S_visit(aTHX_ a,b,c)
-#    if defined(USE_ITHREADS)
-#define sv_dup_common(a,b)	S_sv_dup_common(aTHX_ a,b)
-#define sv_dup_inc_multiple(a,b,c,d)	S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
-#define unreferenced_to_tmp_stack(a)	S_unreferenced_to_tmp_stack(aTHX_ a)
-#    endif
-#  endif
-#  if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-#define varname(a,b,c,d,e,f)	Perl_varname(aTHX_ a,b,c,d,e,f)
-#  endif
-#  if defined(PERL_IN_TOKE_C)
-#define ao(a)			S_ao(aTHX_ a)
-#define check_uni()		S_check_uni(aTHX)
-#define checkcomma(a,b,c)	S_checkcomma(aTHX_ a,b,c)
-#define filter_gets(a,b)	S_filter_gets(aTHX_ a,b)
-#define find_in_my_stash(a,b)	S_find_in_my_stash(aTHX_ a,b)
-#define force_ident(a,b)	S_force_ident(aTHX_ a,b)
-#define force_ident_maybe_lex(a)	S_force_ident_maybe_lex(aTHX_ a)
-#define force_next(a)		S_force_next(aTHX_ a)
-#define force_strict_version(a)	S_force_strict_version(aTHX_ a)
-#define force_version(a,b)	S_force_version(aTHX_ a,b)
-#define force_word(a,b,c,d)	S_force_word(aTHX_ a,b,c,d)
-#define get_and_check_backslash_N_name_wrapper(a,b)	S_get_and_check_backslash_N_name_wrapper(aTHX_ a,b)
-#define incline(a,b)		S_incline(aTHX_ a,b)
-#define intuit_method(a,b,c)	S_intuit_method(aTHX_ a,b,c)
-#define intuit_more(a,b)	S_intuit_more(aTHX_ a,b)
-#define lop(a,b,c)		S_lop(aTHX_ a,b,c)
-#define missingterm(a,b)	S_missingterm(aTHX_ a,b)
-#define no_op(a,b)		S_no_op(aTHX_ a,b)
-#define parse_ident(a,b,c,d,e,f,g)	S_parse_ident(aTHX_ a,b,c,d,e,f,g)
-#define pending_ident()		S_pending_ident(aTHX)
-#define scan_const(a)		S_scan_const(aTHX_ a)
-#define scan_formline(a)	S_scan_formline(aTHX_ a)
-#define scan_heredoc(a)		S_scan_heredoc(aTHX_ a)
-#define scan_ident(a,b,c,d)	S_scan_ident(aTHX_ a,b,c,d)
-#define scan_inputsymbol(a)	S_scan_inputsymbol(aTHX_ a)
-#define scan_pat(a,b)		S_scan_pat(aTHX_ a,b)
-#define scan_subst(a)		S_scan_subst(aTHX_ a)
-#define scan_trans(a)		S_scan_trans(aTHX_ a)
-#define sublex_done()		S_sublex_done(aTHX)
-#define sublex_push()		S_sublex_push(aTHX)
-#define sublex_start()		S_sublex_start(aTHX)
-#define swallow_bom(a)		S_swallow_bom(aTHX_ a)
-#define tokenize_use(a,b)	S_tokenize_use(aTHX_ a,b)
-#define tokeq(a)		S_tokeq(aTHX_ a)
-#define update_debugger_info(a,b,c)	S_update_debugger_info(aTHX_ a,b,c)
-#define yywarn(a,b)		S_yywarn(aTHX_ a,b)
-#  endif
-#  if defined(PERL_IN_UNIVERSAL_C)
-#define isa_lookup(a,b,c,d,e)	S_isa_lookup(aTHX_ a,b,c,d,e)
-#define sv_derived_from_svpvn(a,b,c,d,e)	S_sv_derived_from_svpvn(aTHX_ a,b,c,d,e)
-#  endif
-#  if defined(PERL_IN_UTF8_C)
-#define _to_utf8_case(a,b,c,d,e,f,g,h,i)	S__to_utf8_case(aTHX_ a,b,c,d,e,f,g,h,i)
-#define check_locale_boundary_crossing(a,b,c,d)	S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
-#define does_utf8_overflow	S_does_utf8_overflow
-#define isFF_overlong		S_isFF_overlong
-#define is_utf8_common(a,b,c)	S_is_utf8_common(aTHX_ a,b,c)
-#define is_utf8_overlong	S_is_utf8_overlong
-#define new_msg_hv(a,b,c)	S_new_msg_hv(aTHX_ a,b,c)
-#define to_case_cp_list(a,b,c,d,e,f,g,h)	S_to_case_cp_list(aTHX_ a,b,c,d,e,f,g,h)
-#define to_lower_latin1		S_to_lower_latin1
-#define turkic_fc(a,b,c,d)	S_turkic_fc(aTHX_ a,b,c,d)
-#define turkic_lc(a,b,c,d)	S_turkic_lc(aTHX_ a,b,c,d)
-#define turkic_uc(a,b,c,d)	S_turkic_uc(aTHX_ a,b,c,d)
-#define unexpected_non_continuation_text(a,b,c,d)	S_unexpected_non_continuation_text(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
-#define _to_upper_title_latin1(a,b,c,d)	Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
-#  endif
-#  if defined(PERL_IN_UTIL_C)
-#define ckwarn_common(a)	S_ckwarn_common(aTHX_ a)
-#define invoke_exception_hook(a,b)	S_invoke_exception_hook(aTHX_ a,b)
-#define mess_alloc()		S_mess_alloc(aTHX)
-#define with_queued_errors(a)	S_with_queued_errors(aTHX_ a)
-#    if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-#define mem_log_common		S_mem_log_common
-#    endif
-#  endif
-#  if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-#define pidgone(a,b)		S_pidgone(aTHX_ a,b)
-#  endif
-#  if defined(PERL_USE_3ARG_SIGHANDLER)
-#define sighandler		Perl_sighandler
-#  endif
-#  if defined(USE_C_BACKTRACE)
-#define get_c_backtrace(a,b)	Perl_get_c_backtrace(aTHX_ a,b)
-#  endif
-#  if defined(USE_ITHREADS)
-#define mro_meta_dup(a,b)	Perl_mro_meta_dup(aTHX_ a,b)
-#define padlist_dup(a,b)	Perl_padlist_dup(aTHX_ a,b)
-#define padname_dup(a,b)	Perl_padname_dup(aTHX_ a,b)
-#define padnamelist_dup(a,b)	Perl_padnamelist_dup(aTHX_ a,b)
-#  endif
-#  if defined(USE_LOCALE_COLLATE)
-#define magic_freecollxfrm(a,b)	Perl_magic_freecollxfrm(aTHX_ a,b)
-#define magic_setcollxfrm(a,b)	Perl_magic_setcollxfrm(aTHX_ a,b)
-#ifndef NO_MATHOMS
-#define mem_collxfrm(a,b,c)	Perl_mem_collxfrm(aTHX_ a,b,c)
-#endif
-#  endif
-#  if defined(USE_PERLIO)
-#define PerlIO_restore_errno(a)	Perl_PerlIO_restore_errno(aTHX_ a)
-#define PerlIO_save_errno(a)	Perl_PerlIO_save_errno(aTHX_ a)
-#  endif
-#  if defined(USE_QUADMATH)
-#define quadmath_format_needed	Perl_quadmath_format_needed
-#define quadmath_format_valid	Perl_quadmath_format_valid
-#  endif
-#  if defined(_MSC_VER)
-#define magic_regdatum_set(a,b)	Perl_magic_regdatum_set(aTHX_ a,b)
-#  endif
-#endif
-
-#endif	/* #ifndef PERL_NO_SHORT_NAMES */
-
+#if !defined(MULTIPLICITY)
+/* undefined symbols, point them back at the usual ones */
+# define Perl_croak_nocontext                   Perl_croak
+# define Perl_deb_nocontext                     Perl_deb
+# define Perl_die_nocontext                     Perl_die
+# define Perl_form_nocontext                    Perl_form
+# define Perl_load_module_nocontext             Perl_load_module
+# define Perl_mess_nocontext                    Perl_mess
+# define Perl_newSVpvf_nocontext                Perl_newSVpvf
+# define Perl_sv_catpvf_nocontext               Perl_sv_catpvf
+# define Perl_sv_catpvf_mg_nocontext            Perl_sv_catpvf_mg
+# define Perl_sv_setpvf_nocontext               Perl_sv_setpvf
+# define Perl_sv_setpvf_mg_nocontext            Perl_sv_setpvf_mg
+# define Perl_warn_nocontext                    Perl_warn
+# define Perl_warner_nocontext                  Perl_warner
+#endif /* !defined(MULTIPLICITY) */
+#if !defined(PERL_CORE)
 /* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
-   disable them.
+ * disable them.
  */
-
-#if !defined(PERL_CORE)
-#  define sv_setptrobj(rv,ptr,name)	sv_setref_iv(rv,name,PTR2IV(ptr))
-#  define sv_setptrref(rv,ptr)		sv_setref_iv(rv,NULL,PTR2IV(ptr))
-#endif
-
-#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT)
+# define sv_setptrobj(rv,ptr,name)              sv_setref_iv(rv,name,PTR2IV(ptr))
+# define sv_setptrref(rv,ptr)                   sv_setref_iv(rv,NULL,PTR2IV(ptr))
+# if !defined(PERL_NOCOMPAT)
 
 /* Compatibility for various misnamed functions.  All functions
    in the API that begin with "perl_" (not "Perl_") take an explicit
@@ -2090,59 +57,2111 @@
    The following are not like that, but since they had a "perl_"
    prefix in previous versions, we provide compatibility macros.
  */
-#  define perl_atexit(a,b)		call_atexit(a,b)
-#  define perl_call_argv(a,b,c)		call_argv(a,b,c)
-#  define perl_call_method(a,b)		call_method(a,b)
-#  define perl_call_pv(a,b)		call_pv(a,b)
-#  define perl_call_sv(a,b)		call_sv(a,b)
-#  define perl_eval_pv(a,b)		eval_pv(a,b)
-#  define perl_eval_sv(a,b)		eval_sv(a,b)
-#  define perl_get_av(a,b)		get_av(a,b)
-#  define perl_get_cv(a,b)		get_cv(a,b)
-#  define perl_get_hv(a,b)		get_hv(a,b)
-#  define perl_get_sv(a,b)		get_sv(a,b)
-#  define perl_init_i18nl10n(a)		init_i18nl10n(a)
-#  define perl_init_i18nl14n(a)		init_i18nl14n(a)
-#  define perl_require_pv(a)		require_pv(a)
+#   define perl_atexit(a,b)                     call_atexit(a,b)
+#   define perl_call_argv(a,b,c)                call_argv(a,b,c)
+#   define perl_call_method(a,b)                call_method(a,b)
+#   define perl_call_pv(a,b)                    call_pv(a,b)
+#   define perl_call_sv(a,b)                    call_sv(a,b)
+#   define perl_eval_pv(a,b)                    eval_pv(a,b)
+#   define perl_eval_sv(a,b)                    eval_sv(a,b)
+#   define perl_get_av(a,b)                     get_av(a,b)
+#   define perl_get_cv(a,b)                     get_cv(a,b)
+#   define perl_get_hv(a,b)                     get_hv(a,b)
+#   define perl_get_sv(a,b)                     get_sv(a,b)
+#   define perl_init_i18nl10n(a)                init_i18nl10n(a)
+#   define perl_require_pv(a)                   require_pv(a)
 
 /* varargs functions can't be handled with CPP macros. :-(
    This provides a set of compatibility functions that don't take
    an extra argument but grab the context pointer using the macro
    dTHX.
  */
-#if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES)
-#  define croak			Perl_croak_nocontext
-#  define deb			Perl_deb_nocontext
-#  define die			Perl_die_nocontext
-#  define form			Perl_form_nocontext
-#  define load_module		Perl_load_module_nocontext
-#  define mess			Perl_mess_nocontext
-#  define newSVpvf		Perl_newSVpvf_nocontext
-#  define sv_catpvf		Perl_sv_catpvf_nocontext
-#  define sv_catpvf_mg		Perl_sv_catpvf_mg_nocontext
-#  define sv_setpvf		Perl_sv_setpvf_nocontext
-#  define sv_setpvf_mg		Perl_sv_setpvf_mg_nocontext
-#  define warn			Perl_warn_nocontext
-#  define warner		Perl_warner_nocontext
-#endif
 
-#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
+#   if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES)
+#     define croak                              Perl_croak_nocontext
+#     define deb                                Perl_deb_nocontext
+#     define die                                Perl_die_nocontext
+#     define form                               Perl_form_nocontext
+#     define load_module                        Perl_load_module_nocontext
+#     define mess                               Perl_mess_nocontext
+#     define newSVpvf                           Perl_newSVpvf_nocontext
+#     define sv_catpvf                          Perl_sv_catpvf_nocontext
+#     define sv_catpvf_mg                       Perl_sv_catpvf_mg_nocontext
+#     define sv_setpvf                          Perl_sv_setpvf_nocontext
+#     define sv_setpvf_mg                       Perl_sv_setpvf_mg_nocontext
+#     define warn                               Perl_warn_nocontext
+#     define warner                             Perl_warner_nocontext
+#   endif /* defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES) */
+# endif /* !defined(PERL_NOCOMPAT) */
+#endif /* !defined(PERL_CORE) */
+#if !defined(PERL_NO_SHORT_NAMES)
 
-#if !defined(MULTIPLICITY)
-/* undefined symbols, point them back at the usual ones */
-#  define Perl_croak_nocontext	Perl_croak
-#  define Perl_deb_nocontext	Perl_deb
-#  define Perl_die_nocontext	Perl_die
-#  define Perl_form_nocontext	Perl_form
-#  define Perl_load_module_nocontext	Perl_load_module
-#  define Perl_mess_nocontext	Perl_mess
-#  define Perl_newSVpvf_nocontext	Perl_newSVpvf
-#  define Perl_sv_catpvf_nocontext	Perl_sv_catpvf
-#  define Perl_sv_catpvf_mg_nocontext	Perl_sv_catpvf_mg
-#  define Perl_sv_setpvf_nocontext	Perl_sv_setpvf
-#  define Perl_sv_setpvf_mg_nocontext	Perl_sv_setpvf_mg
-#  define Perl_warn_nocontext	Perl_warn
-#  define Perl_warner_nocontext	Perl_warner
-#endif
+/* Hide global symbols */
+
+# define Gv_AMupdate(a,b)                       Perl_Gv_AMupdate(aTHX_ a,b)
+# define SvAMAGIC_off                           Perl_SvAMAGIC_off
+# define SvAMAGIC_on                            Perl_SvAMAGIC_on
+# define SvGETMAGIC(a)                          Perl_SvGETMAGIC(aTHX_ a)
+# define SvIV(a)                                Perl_SvIV(aTHX_ a)
+# define SvIV_nomg(a)                           Perl_SvIV_nomg(aTHX_ a)
+# define SvNV(a)                                Perl_SvNV(aTHX_ a)
+# define SvNV_nomg(a)                           Perl_SvNV_nomg(aTHX_ a)
+# define SvPVXtrue(a)                           Perl_SvPVXtrue(aTHX_ a)
+# define SvREFCNT_dec_ret_NULL(a)               Perl_SvREFCNT_dec_ret_NULL(aTHX_ a)
+# define SvTRUE(a)                              Perl_SvTRUE(aTHX_ a)
+# define SvTRUE_NN(a)                           Perl_SvTRUE_NN(aTHX_ a)
+# define SvTRUE_common(a,b)                     Perl_SvTRUE_common(aTHX_ a,b)
+# define SvTRUE_nomg(a)                         Perl_SvTRUE_nomg(aTHX_ a)
+# define SvUV(a)                                Perl_SvUV(aTHX_ a)
+# define SvUV_nomg(a)                           Perl_SvUV_nomg(aTHX_ a)
+# define _force_out_malformed_utf8_message(a,b,c,d) Perl__force_out_malformed_utf8_message(aTHX_ a,b,c,d)
+# define _is_in_locale_category(a,b)            Perl__is_in_locale_category(aTHX_ a,b)
+# define _is_uni_FOO(a,b)                       Perl__is_uni_FOO(aTHX_ a,b)
+# define _is_uni_perl_idcont(a)                 Perl__is_uni_perl_idcont(aTHX_ a)
+# define _is_uni_perl_idstart(a)                Perl__is_uni_perl_idstart(aTHX_ a)
+# define _is_utf8_FOO(a,b,c)                    Perl__is_utf8_FOO(aTHX_ a,b,c)
+# define _is_utf8_perl_idcont(a,b)              Perl__is_utf8_perl_idcont(aTHX_ a,b)
+# define _is_utf8_perl_idstart(a,b)             Perl__is_utf8_perl_idstart(aTHX_ a,b)
+# define _to_uni_fold_flags(a,b,c,d)            Perl__to_uni_fold_flags(aTHX_ a,b,c,d)
+# define _to_utf8_fold_flags(a,b,c,d,e)         Perl__to_utf8_fold_flags(aTHX_ a,b,c,d,e)
+# define _to_utf8_lower_flags(a,b,c,d,e)        Perl__to_utf8_lower_flags(aTHX_ a,b,c,d,e)
+# define _to_utf8_title_flags(a,b,c,d,e)        Perl__to_utf8_title_flags(aTHX_ a,b,c,d,e)
+# define _to_utf8_upper_flags(a,b,c,d,e)        Perl__to_utf8_upper_flags(aTHX_ a,b,c,d,e)
+# define _utf8n_to_uvchr_msgs_helper            Perl__utf8n_to_uvchr_msgs_helper
+# define amagic_call(a,b,c,d)                   Perl_amagic_call(aTHX_ a,b,c,d)
+# define amagic_deref_call(a,b)                 Perl_amagic_deref_call(aTHX_ a,b)
+# define apply_attrs_string(a,b,c,d)            Perl_apply_attrs_string(aTHX_ a,b,c,d)
+# define apply_builtin_cv_attributes(a,b)       Perl_apply_builtin_cv_attributes(aTHX_ a,b)
+# define atfork_lock                            Perl_atfork_lock
+# define atfork_unlock                          Perl_atfork_unlock
+# define av_clear(a)                            Perl_av_clear(aTHX_ a)
+# define av_count(a)                            Perl_av_count(aTHX_ a)
+# define av_delete(a,b,c)                       Perl_av_delete(aTHX_ a,b,c)
+# define av_dump(a)                             Perl_av_dump(aTHX_ a)
+# define av_exists(a,b)                         Perl_av_exists(aTHX_ a,b)
+# define av_extend(a,b)                         Perl_av_extend(aTHX_ a,b)
+# define av_fetch(a,b,c)                        Perl_av_fetch(aTHX_ a,b,c)
+# define av_fetch_simple(a,b,c)                 Perl_av_fetch_simple(aTHX_ a,b,c)
+# define av_fill(a,b)                           Perl_av_fill(aTHX_ a,b)
+# define av_len(a)                              Perl_av_len(aTHX_ a)
+# define av_make(a,b)                           Perl_av_make(aTHX_ a,b)
+# define av_new_alloc(a,b)                      Perl_av_new_alloc(aTHX_ a,b)
+# define av_pop(a)                              Perl_av_pop(aTHX_ a)
+# define av_push(a,b)                           Perl_av_push(aTHX_ a,b)
+# define av_push_simple(a,b)                    Perl_av_push_simple(aTHX_ a,b)
+# define av_shift(a)                            Perl_av_shift(aTHX_ a)
+# define av_store(a,b,c)                        Perl_av_store(aTHX_ a,b,c)
+# define av_store_simple(a,b,c)                 Perl_av_store_simple(aTHX_ a,b,c)
+# define av_undef(a)                            Perl_av_undef(aTHX_ a)
+# define av_unshift(a,b)                        Perl_av_unshift(aTHX_ a,b)
+# define block_end(a,b)                         Perl_block_end(aTHX_ a,b)
+# define block_gimme()                          Perl_block_gimme(aTHX)
+# define block_start(a)                         Perl_block_start(aTHX_ a)
+# define bytes_cmp_utf8(a,b,c,d)                Perl_bytes_cmp_utf8(aTHX_ a,b,c,d)
+# define bytes_from_utf8_loc                    Perl_bytes_from_utf8_loc
+# define bytes_to_utf8(a,b)                     Perl_bytes_to_utf8(aTHX_ a,b)
+# define call_argv(a,b,c)                       Perl_call_argv(aTHX_ a,b,c)
+# define call_atexit(a,b)                       Perl_call_atexit(aTHX_ a,b)
+# define call_list(a,b)                         Perl_call_list(aTHX_ a,b)
+# define call_method(a,b)                       Perl_call_method(aTHX_ a,b)
+# define call_pv(a,b)                           Perl_call_pv(aTHX_ a,b)
+# define call_sv(a,b)                           Perl_call_sv(aTHX_ a,b)
+# define caller_cx(a,b)                         Perl_caller_cx(aTHX_ a,b)
+# define cast_i32                               Perl_cast_i32
+# define cast_iv                                Perl_cast_iv
+# define cast_ulong                             Perl_cast_ulong
+# define cast_uv                                Perl_cast_uv
+# define ck_entersub_args_list(a)               Perl_ck_entersub_args_list(aTHX_ a)
+# define ck_entersub_args_proto(a,b,c)          Perl_ck_entersub_args_proto(aTHX_ a,b,c)
+# define ck_entersub_args_proto_or_list(a,b,c)  Perl_ck_entersub_args_proto_or_list(aTHX_ a,b,c)
+# define clear_defarray(a,b)                    Perl_clear_defarray(aTHX_ a,b)
+# define cop_fetch_label(a,b,c)                 Perl_cop_fetch_label(aTHX_ a,b,c)
+# define cop_store_label(a,b,c,d)               Perl_cop_store_label(aTHX_ a,b,c,d)
+# define croak_memory_wrap                      Perl_croak_memory_wrap
+# define croak_no_modify                        Perl_croak_no_modify
+# define croak_sv(a)                            Perl_croak_sv(aTHX_ a)
+# define croak_xs_usage                         Perl_croak_xs_usage
+# define csighandler1                           Perl_csighandler1
+# define csighandler3                           Perl_csighandler3
+# define cv_clone(a)                            Perl_cv_clone(aTHX_ a)
+# define cv_const_sv                            Perl_cv_const_sv
+# define cv_get_call_checker(a,b,c)             Perl_cv_get_call_checker(aTHX_ a,b,c)
+# define cv_get_call_checker_flags(a,b,c,d,e)   Perl_cv_get_call_checker_flags(aTHX_ a,b,c,d,e)
+# define cv_name(a,b,c)                         Perl_cv_name(aTHX_ a,b,c)
+# define cv_set_call_checker(a,b,c)             Perl_cv_set_call_checker(aTHX_ a,b,c)
+# define cv_set_call_checker_flags(a,b,c,d)     Perl_cv_set_call_checker_flags(aTHX_ a,b,c,d)
+# define cv_undef(a)                            Perl_cv_undef(aTHX_ a)
+# define cx_dump(a)                             Perl_cx_dump(aTHX_ a)
+# define cxinc()                                Perl_cxinc(aTHX)
+# define debop(a)                               Perl_debop(aTHX_ a)
+# define debprofdump()                          Perl_debprofdump(aTHX)
+# define debstack()                             Perl_debstack(aTHX)
+# define debstackptrs()                         Perl_debstackptrs(aTHX)
+# define delimcpy                               Perl_delimcpy
+# define despatch_signals()                     Perl_despatch_signals(aTHX)
+# define die_sv(a)                              Perl_die_sv(aTHX_ a)
+# define do_close(a,b)                          Perl_do_close(aTHX_ a,b)
+# define do_gv_dump(a,b,c,d)                    Perl_do_gv_dump(aTHX_ a,b,c,d)
+# define do_gvgv_dump(a,b,c,d)                  Perl_do_gvgv_dump(aTHX_ a,b,c,d)
+# define do_hv_dump(a,b,c,d)                    Perl_do_hv_dump(aTHX_ a,b,c,d)
+# define do_join(a,b,c,d)                       Perl_do_join(aTHX_ a,b,c,d)
+# define do_magic_dump(a,b,c,d,e,f,g)           Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g)
+# define do_op_dump(a,b,c)                      Perl_do_op_dump(aTHX_ a,b,c)
+# define do_openn(a,b,c,d,e,f,g,h,i)            Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i)
+# define do_pmop_dump(a,b,c)                    Perl_do_pmop_dump(aTHX_ a,b,c)
+# define do_sprintf(a,b,c)                      Perl_do_sprintf(aTHX_ a,b,c)
+# define do_sv_dump(a,b,c,d,e,f,g)              Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g)
+# define doing_taint                            Perl_doing_taint
+# define doref(a,b,c)                           Perl_doref(aTHX_ a,b,c)
+# define dounwind(a)                            Perl_dounwind(aTHX_ a)
+# define dowantarray()                          Perl_dowantarray(aTHX)
+# define dump_all()                             Perl_dump_all(aTHX)
+# define dump_eval()                            Perl_dump_eval(aTHX)
+# define dump_form(a)                           Perl_dump_form(aTHX_ a)
+# define dump_packsubs(a)                       Perl_dump_packsubs(aTHX_ a)
+# define dump_sub(a)                            Perl_dump_sub(aTHX_ a)
+# define dump_vindent(a,b,c,d)                  Perl_dump_vindent(aTHX_ a,b,c,d)
+# define eval_pv(a,b)                           Perl_eval_pv(aTHX_ a,b)
+# define eval_sv(a,b)                           Perl_eval_sv(aTHX_ a,b)
+# define fbm_compile(a,b)                       Perl_fbm_compile(aTHX_ a,b)
+# define fbm_instr(a,b,c,d)                     Perl_fbm_instr(aTHX_ a,b,c,d)
+# define filter_add(a,b)                        Perl_filter_add(aTHX_ a,b)
+# define filter_del(a)                          Perl_filter_del(aTHX_ a)
+# define filter_read(a,b,c)                     Perl_filter_read(aTHX_ a,b,c)
+# define find_runcv(a)                          Perl_find_runcv(aTHX_ a)
+# define find_rundefsv()                        Perl_find_rundefsv(aTHX)
+# define foldEQ(a,b,c)                          Perl_foldEQ(aTHX_ a,b,c)
+# define foldEQ_latin1(a,b,c)                   Perl_foldEQ_latin1(aTHX_ a,b,c)
+# define foldEQ_locale(a,b,c)                   Perl_foldEQ_locale(aTHX_ a,b,c)
+# define foldEQ_utf8_flags(a,b,c,d,e,f,g,h,i)   Perl_foldEQ_utf8_flags(aTHX_ a,b,c,d,e,f,g,h,i)
+# define forbid_outofblock_ops(a,b)             Perl_forbid_outofblock_ops(aTHX_ a,b)
+# define free_tmps()                            Perl_free_tmps(aTHX)
+# define get_av(a,b)                            Perl_get_av(aTHX_ a,b)
+# define get_cv(a,b)                            Perl_get_cv(aTHX_ a,b)
+# define get_cvn_flags(a,b,c)                   Perl_get_cvn_flags(aTHX_ a,b,c)
+# define get_hv(a,b)                            Perl_get_hv(aTHX_ a,b)
+# define get_op_descs()                         Perl_get_op_descs(aTHX)
+# define get_op_names()                         Perl_get_op_names(aTHX)
+# define get_ppaddr()                           Perl_get_ppaddr(aTHX)
+# define get_sv(a,b)                            Perl_get_sv(aTHX_ a,b)
+# define get_vtbl(a)                            Perl_get_vtbl(aTHX_ a)
+# define getcwd_sv(a)                           Perl_getcwd_sv(aTHX_ a)
+# define gp_free(a)                             Perl_gp_free(aTHX_ a)
+# define gp_ref(a)                              Perl_gp_ref(aTHX_ a)
+# define grok_atoUV                             Perl_grok_atoUV
+# define grok_bin_oct_hex(a,b,c,d,e,f,g)        Perl_grok_bin_oct_hex(aTHX_ a,b,c,d,e,f,g)
+# define grok_infnan(a,b)                       Perl_grok_infnan(aTHX_ a,b)
+# define grok_number(a,b,c)                     Perl_grok_number(aTHX_ a,b,c)
+# define grok_number_flags(a,b,c,d)             Perl_grok_number_flags(aTHX_ a,b,c,d)
+# define grok_numeric_radix(a,b)                Perl_grok_numeric_radix(aTHX_ a,b)
+# define gv_add_by_type(a,b)                    Perl_gv_add_by_type(aTHX_ a,b)
+# define gv_autoload_pv(a,b,c)                  Perl_gv_autoload_pv(aTHX_ a,b,c)
+# define gv_autoload_pvn(a,b,c,d)               Perl_gv_autoload_pvn(aTHX_ a,b,c,d)
+# define gv_autoload_sv(a,b,c)                  Perl_gv_autoload_sv(aTHX_ a,b,c)
+# define gv_check(a)                            Perl_gv_check(aTHX_ a)
+# define gv_const_sv(a)                         Perl_gv_const_sv(aTHX_ a)
+# define gv_dump(a)                             Perl_gv_dump(aTHX_ a)
+# define gv_efullname4(a,b,c,d)                 Perl_gv_efullname4(aTHX_ a,b,c,d)
+# define gv_fetchfile(a)                        Perl_gv_fetchfile(aTHX_ a)
+# define gv_fetchfile_flags(a,b,c)              Perl_gv_fetchfile_flags(aTHX_ a,b,c)
+# define gv_fetchmeth_pv(a,b,c,d)               Perl_gv_fetchmeth_pv(aTHX_ a,b,c,d)
+# define gv_fetchmeth_pv_autoload(a,b,c,d)      Perl_gv_fetchmeth_pv_autoload(aTHX_ a,b,c,d)
+# define gv_fetchmeth_pvn(a,b,c,d,e)            Perl_gv_fetchmeth_pvn(aTHX_ a,b,c,d,e)
+# define gv_fetchmeth_pvn_autoload(a,b,c,d,e)   Perl_gv_fetchmeth_pvn_autoload(aTHX_ a,b,c,d,e)
+# define gv_fetchmeth_sv(a,b,c,d)               Perl_gv_fetchmeth_sv(aTHX_ a,b,c,d)
+# define gv_fetchmeth_sv_autoload(a,b,c,d)      Perl_gv_fetchmeth_sv_autoload(aTHX_ a,b,c,d)
+# define gv_fetchmethod_autoload(a,b,c)         Perl_gv_fetchmethod_autoload(aTHX_ a,b,c)
+# define gv_fetchmethod_pv_flags(a,b,c)         Perl_gv_fetchmethod_pv_flags(aTHX_ a,b,c)
+# define gv_fetchmethod_pvn_flags(a,b,c,d)      Perl_gv_fetchmethod_pvn_flags(aTHX_ a,b,c,d)
+# define gv_fetchmethod_sv_flags(a,b,c)         Perl_gv_fetchmethod_sv_flags(aTHX_ a,b,c)
+# define gv_fetchpv(a,b,c)                      Perl_gv_fetchpv(aTHX_ a,b,c)
+# define gv_fetchpvn_flags(a,b,c,d)             Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
+# define gv_fetchsv(a,b,c)                      Perl_gv_fetchsv(aTHX_ a,b,c)
+# define gv_fullname4(a,b,c,d)                  Perl_gv_fullname4(aTHX_ a,b,c,d)
+# define gv_handler(a,b)                        Perl_gv_handler(aTHX_ a,b)
+# define gv_init_pv(a,b,c,d)                    Perl_gv_init_pv(aTHX_ a,b,c,d)
+# define gv_init_pvn(a,b,c,d,e)                 Perl_gv_init_pvn(aTHX_ a,b,c,d,e)
+# define gv_init_sv(a,b,c,d)                    Perl_gv_init_sv(aTHX_ a,b,c,d)
+# define gv_name_set(a,b,c,d)                   Perl_gv_name_set(aTHX_ a,b,c,d)
+# define gv_stashpv(a,b)                        Perl_gv_stashpv(aTHX_ a,b)
+# define gv_stashpvn(a,b,c)                     Perl_gv_stashpvn(aTHX_ a,b,c)
+# define gv_stashsv(a,b)                        Perl_gv_stashsv(aTHX_ a,b)
+# define hv_bucket_ratio(a)                     Perl_hv_bucket_ratio(aTHX_ a)
+# define hv_clear(a)                            Perl_hv_clear(aTHX_ a)
+# define hv_clear_placeholders(a)               Perl_hv_clear_placeholders(aTHX_ a)
+# define hv_common(a,b,c,d,e,f,g,h)             Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
+# define hv_common_key_len(a,b,c,d,e,f)         Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f)
+# define hv_copy_hints_hv(a)                    Perl_hv_copy_hints_hv(aTHX_ a)
+# define hv_delayfree_ent(a,b)                  Perl_hv_delayfree_ent(aTHX_ a,b)
+# define hv_dump(a)                             Perl_hv_dump(aTHX_ a)
+# define hv_free_ent(a,b)                       Perl_hv_free_ent(aTHX_ a,b)
+# define hv_iterinit(a)                         Perl_hv_iterinit(aTHX_ a)
+# define hv_iterkey(a,b)                        Perl_hv_iterkey(aTHX_ a,b)
+# define hv_iterkeysv(a)                        Perl_hv_iterkeysv(aTHX_ a)
+# define hv_iternext_flags(a,b)                 Perl_hv_iternext_flags(aTHX_ a,b)
+# define hv_iternextsv(a,b,c)                   Perl_hv_iternextsv(aTHX_ a,b,c)
+# define hv_iterval(a,b)                        Perl_hv_iterval(aTHX_ a,b)
+# define hv_ksplit(a,b)                         Perl_hv_ksplit(aTHX_ a,b)
+# define hv_name_set(a,b,c,d)                   Perl_hv_name_set(aTHX_ a,b,c,d)
+# define hv_rand_set(a,b)                       Perl_hv_rand_set(aTHX_ a,b)
+# define hv_scalar(a)                           Perl_hv_scalar(aTHX_ a)
+# define init_i18nl10n(a)                       Perl_init_i18nl10n(aTHX_ a)
+# define init_stacks()                          Perl_init_stacks(aTHX)
+# define init_tm(a)                             Perl_init_tm(aTHX_ a)
+# define intro_my()                             Perl_intro_my(aTHX)
+# define isC9_STRICT_UTF8_CHAR                  Perl_isC9_STRICT_UTF8_CHAR
+# define isSTRICT_UTF8_CHAR                     Perl_isSTRICT_UTF8_CHAR
+# define isUTF8_CHAR                            Perl_isUTF8_CHAR
+# define isUTF8_CHAR_flags                      Perl_isUTF8_CHAR_flags
+# define is_c9strict_utf8_string_loclen         Perl_is_c9strict_utf8_string_loclen
+# define is_lvalue_sub()                        Perl_is_lvalue_sub(aTHX)
+# define is_safe_syscall(a,b,c,d)               Perl_is_safe_syscall(aTHX_ a,b,c,d)
+# define is_strict_utf8_string_loclen           Perl_is_strict_utf8_string_loclen
+# define is_utf8_FF_helper_                     Perl_is_utf8_FF_helper_
+# define is_utf8_char_helper_                   Perl_is_utf8_char_helper_
+# define is_utf8_fixed_width_buf_loclen_flags   Perl_is_utf8_fixed_width_buf_loclen_flags
+# define is_utf8_invariant_string_loc           Perl_is_utf8_invariant_string_loc
+# define is_utf8_string_flags                   Perl_is_utf8_string_flags
+# define is_utf8_string_loclen                  Perl_is_utf8_string_loclen
+# define is_utf8_string_loclen_flags            Perl_is_utf8_string_loclen_flags
+# define is_utf8_valid_partial_char_flags       Perl_is_utf8_valid_partial_char_flags
+# define isinfnan                               Perl_isinfnan
+# define leave_adjust_stacks(a,b,c,d)           Perl_leave_adjust_stacks(aTHX_ a,b,c,d)
+# define leave_scope(a)                         Perl_leave_scope(aTHX_ a)
+# define lex_bufutf8()                          Perl_lex_bufutf8(aTHX)
+# define lex_discard_to(a)                      Perl_lex_discard_to(aTHX_ a)
+# define lex_grow_linestr(a)                    Perl_lex_grow_linestr(aTHX_ a)
+# define lex_next_chunk(a)                      Perl_lex_next_chunk(aTHX_ a)
+# define lex_peek_unichar(a)                    Perl_lex_peek_unichar(aTHX_ a)
+# define lex_read_space(a)                      Perl_lex_read_space(aTHX_ a)
+# define lex_read_to(a)                         Perl_lex_read_to(aTHX_ a)
+# define lex_read_unichar(a)                    Perl_lex_read_unichar(aTHX_ a)
+# define lex_start(a,b,c)                       Perl_lex_start(aTHX_ a,b,c)
+# define lex_stuff_pv(a,b)                      Perl_lex_stuff_pv(aTHX_ a,b)
+# define lex_stuff_pvn(a,b,c)                   Perl_lex_stuff_pvn(aTHX_ a,b,c)
+# define lex_stuff_sv(a,b)                      Perl_lex_stuff_sv(aTHX_ a,b)
+# define lex_unstuff(a)                         Perl_lex_unstuff(aTHX_ a)
+# define looks_like_number(a)                   Perl_looks_like_number(aTHX_ a)
+# define lsbit_pos32                            Perl_lsbit_pos32
+# define magic_dump(a)                          Perl_magic_dump(aTHX_ a)
+# define markstack_grow()                       Perl_markstack_grow(aTHX)
+# define mess_sv(a,b)                           Perl_mess_sv(aTHX_ a,b)
+# define mg_clear(a)                            Perl_mg_clear(aTHX_ a)
+# define mg_copy(a,b,c,d)                       Perl_mg_copy(aTHX_ a,b,c,d)
+# define mg_find                                Perl_mg_find
+# define mg_findext                             Perl_mg_findext
+# define mg_free(a)                             Perl_mg_free(aTHX_ a)
+# define mg_free_type(a,b)                      Perl_mg_free_type(aTHX_ a,b)
+# define mg_freeext(a,b,c)                      Perl_mg_freeext(aTHX_ a,b,c)
+# define mg_get(a)                              Perl_mg_get(aTHX_ a)
+# define mg_magical                             Perl_mg_magical
+# define mg_set(a)                              Perl_mg_set(aTHX_ a)
+# define mg_size(a)                             Perl_mg_size(aTHX_ a)
+# define mini_mktime                            Perl_mini_mktime
+# define moreswitches(a)                        Perl_moreswitches(aTHX_ a)
+# define mortal_destructor_sv(a,b)              Perl_mortal_destructor_sv(aTHX_ a,b)
+# define mortal_getenv                          Perl_mortal_getenv
+# define mortal_svfunc_x(a,b)                   Perl_mortal_svfunc_x(aTHX_ a,b)
+# define mro_get_linear_isa(a)                  Perl_mro_get_linear_isa(aTHX_ a)
+# define mro_method_changed_in(a)               Perl_mro_method_changed_in(aTHX_ a)
+# define msbit_pos32                            Perl_msbit_pos32
+# define my_atof(a)                             Perl_my_atof(aTHX_ a)
+# define my_atof3(a,b,c)                        Perl_my_atof3(aTHX_ a,b,c)
+# define my_dirfd                               Perl_my_dirfd
+# define my_exit(a)                             Perl_my_exit(aTHX_ a)
+# define my_failure_exit()                      Perl_my_failure_exit(aTHX)
+# define my_fflush_all()                        Perl_my_fflush_all(aTHX)
+# define my_fork                                Perl_my_fork
+# define my_popen_list(a,b,c)                   Perl_my_popen_list(aTHX_ a,b,c)
+# define my_setenv(a,b)                         Perl_my_setenv(aTHX_ a,b)
+# define my_socketpair                          Perl_my_socketpair
+# define my_strftime(a,b,c,d,e,f,g,h,i,j)       Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
+# define my_strtod                              Perl_my_strtod
+# define newANONATTRSUB(a,b,c,d)                Perl_newANONATTRSUB(aTHX_ a,b,c,d)
+# define newANONHASH(a)                         Perl_newANONHASH(aTHX_ a)
+# define newANONLIST(a)                         Perl_newANONLIST(aTHX_ a)
+# define newANONSUB(a,b,c)                      Perl_newANONSUB(aTHX_ a,b,c)
+# define newARGDEFELEMOP(a,b,c)                 Perl_newARGDEFELEMOP(aTHX_ a,b,c)
+# define newASSIGNOP(a,b,c,d)                   Perl_newASSIGNOP(aTHX_ a,b,c,d)
+# define newAVREF(a)                            Perl_newAVREF(aTHX_ a)
+# define newAVav(a)                             Perl_newAVav(aTHX_ a)
+# define newAVhv(a)                             Perl_newAVhv(aTHX_ a)
+# define newBINOP(a,b,c,d)                      Perl_newBINOP(aTHX_ a,b,c,d)
+# define newCONDOP(a,b,c,d)                     Perl_newCONDOP(aTHX_ a,b,c,d)
+# define newCONSTSUB(a,b,c)                     Perl_newCONSTSUB(aTHX_ a,b,c)
+# define newCONSTSUB_flags(a,b,c,d,e)           Perl_newCONSTSUB_flags(aTHX_ a,b,c,d,e)
+# define newCVREF(a,b)                          Perl_newCVREF(aTHX_ a,b)
+# define newDEFEROP(a,b)                        Perl_newDEFEROP(aTHX_ a,b)
+# define newDEFSVOP()                           Perl_newDEFSVOP(aTHX)
+# define newFORM(a,b,c)                         Perl_newFORM(aTHX_ a,b,c)
+# define newFOROP(a,b,c,d,e)                    Perl_newFOROP(aTHX_ a,b,c,d,e)
+# define newGIVENOP(a,b,c)                      Perl_newGIVENOP(aTHX_ a,b,c)
+# define newGVOP(a,b,c)                         Perl_newGVOP(aTHX_ a,b,c)
+# define newGVREF(a,b)                          Perl_newGVREF(aTHX_ a,b)
+# define newGVgen_flags(a,b)                    Perl_newGVgen_flags(aTHX_ a,b)
+# define newHVREF(a)                            Perl_newHVREF(aTHX_ a)
+# define newHVhv(a)                             Perl_newHVhv(aTHX_ a)
+# define newLISTOP(a,b,c,d)                     Perl_newLISTOP(aTHX_ a,b,c,d)
+# define newLOGOP(a,b,c,d)                      Perl_newLOGOP(aTHX_ a,b,c,d)
+# define newLOOPEX(a,b)                         Perl_newLOOPEX(aTHX_ a,b)
+# define newLOOPOP(a,b,c,d)                     Perl_newLOOPOP(aTHX_ a,b,c,d)
+# define newMETHOP(a,b,c)                       Perl_newMETHOP(aTHX_ a,b,c)
+# define newMETHOP_named(a,b,c)                 Perl_newMETHOP_named(aTHX_ a,b,c)
+# define newMYSUB(a,b,c,d,e)                    Perl_newMYSUB(aTHX_ a,b,c,d,e)
+# define newNULLLIST()                          Perl_newNULLLIST(aTHX)
+# define newOP(a,b)                             Perl_newOP(aTHX_ a,b)
+# define newPADNAMELIST                         Perl_newPADNAMELIST
+# define newPADNAMEouter                        Perl_newPADNAMEouter
+# define newPADNAMEpvn                          Perl_newPADNAMEpvn
+# define newPADxVOP(a,b,c)                      Perl_newPADxVOP(aTHX_ a,b,c)
+# define newPMOP(a,b)                           Perl_newPMOP(aTHX_ a,b)
+# define newPROG(a)                             Perl_newPROG(aTHX_ a)
+# define newPVOP(a,b,c)                         Perl_newPVOP(aTHX_ a,b,c)
+# define newRANGE(a,b,c)                        Perl_newRANGE(aTHX_ a,b,c)
+# define newRV(a)                               Perl_newRV(aTHX_ a)
+# define newRV_noinc(a)                         Perl_newRV_noinc(aTHX_ a)
+# define newSLICEOP(a,b,c)                      Perl_newSLICEOP(aTHX_ a,b,c)
+# define newSTATEOP(a,b,c)                      Perl_newSTATEOP(aTHX_ a,b,c)
+# define newSV(a)                               Perl_newSV(aTHX_ a)
+# define newSVOP(a,b,c)                         Perl_newSVOP(aTHX_ a,b,c)
+# define newSVREF(a)                            Perl_newSVREF(aTHX_ a)
+# define newSV_false()                          Perl_newSV_false(aTHX)
+# define newSV_true()                           Perl_newSV_true(aTHX)
+# define newSV_type(a)                          Perl_newSV_type(aTHX_ a)
+# define newSV_type_mortal(a)                   Perl_newSV_type_mortal(aTHX_ a)
+# define newSVbool(a)                           Perl_newSVbool(aTHX_ a)
+# define newSVhek(a)                            Perl_newSVhek(aTHX_ a)
+# define newSVhek_mortal(a)                     Perl_newSVhek_mortal(aTHX_ a)
+# define newSViv(a)                             Perl_newSViv(aTHX_ a)
+# define newSVnv(a)                             Perl_newSVnv(aTHX_ a)
+# define newSVpv(a,b)                           Perl_newSVpv(aTHX_ a,b)
+# define newSVpv_share(a,b)                     Perl_newSVpv_share(aTHX_ a,b)
+# define newSVpvn(a,b)                          Perl_newSVpvn(aTHX_ a,b)
+# define newSVpvn_flags(a,b,c)                  Perl_newSVpvn_flags(aTHX_ a,b,c)
+# define newSVpvn_share(a,b,c)                  Perl_newSVpvn_share(aTHX_ a,b,c)
+# define newSVrv(a,b)                           Perl_newSVrv(aTHX_ a,b)
+# define newSVsv_flags(a,b)                     Perl_newSVsv_flags(aTHX_ a,b)
+# define newSVuv(a)                             Perl_newSVuv(aTHX_ a)
+# define newTRYCATCHOP(a,b,c,d)                 Perl_newTRYCATCHOP(aTHX_ a,b,c,d)
+# define newUNOP(a,b,c)                         Perl_newUNOP(aTHX_ a,b,c)
+# define newUNOP_AUX(a,b,c,d)                   Perl_newUNOP_AUX(aTHX_ a,b,c,d)
+# define newWHENOP(a,b)                         Perl_newWHENOP(aTHX_ a,b)
+# define newWHILEOP(a,b,c,d,e,f,g)              Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g)
+# define newXS(a,b,c)                           Perl_newXS(aTHX_ a,b,c)
+# define newXS_flags(a,b,c,d,e)                 Perl_newXS_flags(aTHX_ a,b,c,d,e)
+# define new_stackinfo(a,b)                     Perl_new_stackinfo(aTHX_ a,b)
+# define new_version(a)                         Perl_new_version(aTHX_ a)
+# define nothreadhook()                         Perl_nothreadhook(aTHX)
+# define op_append_elem(a,b,c)                  Perl_op_append_elem(aTHX_ a,b,c)
+# define op_append_list(a,b,c)                  Perl_op_append_list(aTHX_ a,b,c)
+# define op_class(a)                            Perl_op_class(aTHX_ a)
+# define op_contextualize(a,b)                  Perl_op_contextualize(aTHX_ a,b)
+# define op_convert_list(a,b,c)                 Perl_op_convert_list(aTHX_ a,b,c)
+# define op_dump(a)                             Perl_op_dump(aTHX_ a)
+# define op_force_list(a)                       Perl_op_force_list(aTHX_ a)
+# define op_free(a)                             Perl_op_free(aTHX_ a)
+# define op_linklist(a)                         Perl_op_linklist(aTHX_ a)
+# define op_null(a)                             Perl_op_null(aTHX_ a)
+# define op_parent                              Perl_op_parent
+# define op_prepend_elem(a,b,c)                 Perl_op_prepend_elem(aTHX_ a,b,c)
+# define op_refcnt_lock()                       Perl_op_refcnt_lock(aTHX)
+# define op_refcnt_unlock()                     Perl_op_refcnt_unlock(aTHX)
+# define op_scope(a)                            Perl_op_scope(aTHX_ a)
+# define op_sibling_splice                      Perl_op_sibling_splice
+# define op_wrap_finally(a,b)                   Perl_op_wrap_finally(aTHX_ a,b)
+# define packlist(a,b,c,d,e)                    Perl_packlist(aTHX_ a,b,c,d,e)
+# define pad_add_anon(a,b)                      Perl_pad_add_anon(aTHX_ a,b)
+# define pad_add_name_pv(a,b,c,d)               Perl_pad_add_name_pv(aTHX_ a,b,c,d)
+# define pad_add_name_pvn(a,b,c,d,e)            Perl_pad_add_name_pvn(aTHX_ a,b,c,d,e)
+# define pad_add_name_sv(a,b,c,d)               Perl_pad_add_name_sv(aTHX_ a,b,c,d)
+# define pad_alloc(a,b)                         Perl_pad_alloc(aTHX_ a,b)
+# define pad_findmy_pv(a,b)                     Perl_pad_findmy_pv(aTHX_ a,b)
+# define pad_findmy_pvn(a,b,c)                  Perl_pad_findmy_pvn(aTHX_ a,b,c)
+# define pad_findmy_sv(a,b)                     Perl_pad_findmy_sv(aTHX_ a,b)
+# define pad_new(a)                             Perl_pad_new(aTHX_ a)
+# define pad_tidy(a)                            Perl_pad_tidy(aTHX_ a)
+# define padnamelist_fetch                      Perl_padnamelist_fetch
+# define padnamelist_store(a,b,c)               Perl_padnamelist_store(aTHX_ a,b,c)
+# define parse_arithexpr(a)                     Perl_parse_arithexpr(aTHX_ a)
+# define parse_barestmt(a)                      Perl_parse_barestmt(aTHX_ a)
+# define parse_block(a)                         Perl_parse_block(aTHX_ a)
+# define parse_fullexpr(a)                      Perl_parse_fullexpr(aTHX_ a)
+# define parse_fullstmt(a)                      Perl_parse_fullstmt(aTHX_ a)
+# define parse_label(a)                         Perl_parse_label(aTHX_ a)
+# define parse_listexpr(a)                      Perl_parse_listexpr(aTHX_ a)
+# define parse_stmtseq(a)                       Perl_parse_stmtseq(aTHX_ a)
+# define parse_subsignature(a)                  Perl_parse_subsignature(aTHX_ a)
+# define parse_termexpr(a)                      Perl_parse_termexpr(aTHX_ a)
+# define perly_sighandler                       Perl_perly_sighandler
+# define pmop_dump(a)                           Perl_pmop_dump(aTHX_ a)
+# define pop_scope()                            Perl_pop_scope(aTHX)
+# define pregcomp(a,b)                          Perl_pregcomp(aTHX_ a,b)
+# define pregexec(a,b,c,d,e,f,g)                Perl_pregexec(aTHX_ a,b,c,d,e,f,g)
+# define pregfree(a)                            Perl_pregfree(aTHX_ a)
+# define pregfree2(a)                           Perl_pregfree2(aTHX_ a)
+# define prescan_version(a,b,c,d,e,f,g)         Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
+# define ptr_table_fetch(a,b)                   Perl_ptr_table_fetch(aTHX_ a,b)
+# define ptr_table_free(a)                      Perl_ptr_table_free(aTHX_ a)
+# define ptr_table_new()                        Perl_ptr_table_new(aTHX)
+# define ptr_table_split(a)                     Perl_ptr_table_split(aTHX_ a)
+# define ptr_table_store(a,b,c)                 Perl_ptr_table_store(aTHX_ a,b,c)
+# define push_scope()                           Perl_push_scope(aTHX)
+# define pv_display(a,b,c,d,e)                  Perl_pv_display(aTHX_ a,b,c,d,e)
+# define pv_escape(a,b,c,d,e,f)                 Perl_pv_escape(aTHX_ a,b,c,d,e,f)
+# define pv_pretty(a,b,c,d,e,f,g)               Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
+# define pv_uni_display(a,b,c,d,e)              Perl_pv_uni_display(aTHX_ a,b,c,d,e)
+# define rcpv_copy(a)                           Perl_rcpv_copy(aTHX_ a)
+# define rcpv_free(a)                           Perl_rcpv_free(aTHX_ a)
+# define rcpv_new(a,b,c)                        Perl_rcpv_new(aTHX_ a,b,c)
+# define re_compile(a,b)                        Perl_re_compile(aTHX_ a,b)
+# define re_intuit_start(a,b,c,d,e,f,g)         Perl_re_intuit_start(aTHX_ a,b,c,d,e,f,g)
+# define re_intuit_string(a)                    Perl_re_intuit_string(aTHX_ a)
+# define reentrant_free()                       Perl_reentrant_free(aTHX)
+# define reentrant_init()                       Perl_reentrant_init(aTHX)
+# define reentrant_retry                        Perl_reentrant_retry
+# define reentrant_size()                       Perl_reentrant_size(aTHX)
+# define reg_named_buff_all(a,b)                Perl_reg_named_buff_all(aTHX_ a,b)
+# define reg_named_buff_exists(a,b,c)           Perl_reg_named_buff_exists(aTHX_ a,b,c)
+# define reg_named_buff_fetch(a,b,c)            Perl_reg_named_buff_fetch(aTHX_ a,b,c)
+# define reg_named_buff_firstkey(a,b)           Perl_reg_named_buff_firstkey(aTHX_ a,b)
+# define reg_named_buff_nextkey(a,b)            Perl_reg_named_buff_nextkey(aTHX_ a,b)
+# define reg_named_buff_scalar(a,b)             Perl_reg_named_buff_scalar(aTHX_ a,b)
+# define regdump(a)                             Perl_regdump(aTHX_ a)
+# define regexec_flags(a,b,c,d,e,f,g,h)         Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h)
+# define regfree_internal(a)                    Perl_regfree_internal(aTHX_ a)
+# define reginitcolors()                        Perl_reginitcolors(aTHX)
+# define repeatcpy                              Perl_repeatcpy
+# define require_pv(a)                          Perl_require_pv(aTHX_ a)
+# define rninstr                                Perl_rninstr
+# define rsignal(a,b)                           Perl_rsignal(aTHX_ a,b)
+# define rsignal_state(a)                       Perl_rsignal_state(aTHX_ a)
+# define runops_debug()                         Perl_runops_debug(aTHX)
+# define runops_standard()                      Perl_runops_standard(aTHX)
+# define rv2cv_op_cv(a,b)                       Perl_rv2cv_op_cv(aTHX_ a,b)
+# define safesyscalloc                          Perl_safesyscalloc
+# define safesysfree                            Perl_safesysfree
+# define safesysmalloc                          Perl_safesysmalloc
+# define safesysrealloc                         Perl_safesysrealloc
+# define save_I16(a)                            Perl_save_I16(aTHX_ a)
+# define save_I32(a)                            Perl_save_I32(aTHX_ a)
+# define save_I8(a)                             Perl_save_I8(aTHX_ a)
+# define save_adelete(a,b)                      Perl_save_adelete(aTHX_ a,b)
+# define save_aelem_flags(a,b,c,d)              Perl_save_aelem_flags(aTHX_ a,b,c,d)
+# define save_alloc(a,b)                        Perl_save_alloc(aTHX_ a,b)
+# define save_aptr(a)                           Perl_save_aptr(aTHX_ a)
+# define save_ary(a)                            Perl_save_ary(aTHX_ a)
+# define save_bool(a)                           Perl_save_bool(aTHX_ a)
+# define save_clearsv(a)                        Perl_save_clearsv(aTHX_ a)
+# define save_delete(a,b,c)                     Perl_save_delete(aTHX_ a,b,c)
+# define save_destructor(a,b)                   Perl_save_destructor(aTHX_ a,b)
+# define save_destructor_x(a,b)                 Perl_save_destructor_x(aTHX_ a,b)
+# define save_freercpv(a)                       Perl_save_freercpv(aTHX_ a)
+# define save_generic_pvref(a)                  Perl_save_generic_pvref(aTHX_ a)
+# define save_generic_svref(a)                  Perl_save_generic_svref(aTHX_ a)
+# define save_gp(a,b)                           Perl_save_gp(aTHX_ a,b)
+# define save_hash(a)                           Perl_save_hash(aTHX_ a)
+# define save_hdelete(a,b)                      Perl_save_hdelete(aTHX_ a,b)
+# define save_helem_flags(a,b,c,d)              Perl_save_helem_flags(aTHX_ a,b,c,d)
+# define save_hints()                           Perl_save_hints(aTHX)
+# define save_hptr(a)                           Perl_save_hptr(aTHX_ a)
+# define save_int(a)                            Perl_save_int(aTHX_ a)
+# define save_item(a)                           Perl_save_item(aTHX_ a)
+# define save_iv(a)                             Perl_save_iv(aTHX_ a)
+# define save_padsv_and_mortalize(a)            Perl_save_padsv_and_mortalize(aTHX_ a)
+# define save_pptr(a)                           Perl_save_pptr(aTHX_ a)
+# define save_pushi32ptr(a,b,c)                 Perl_save_pushi32ptr(aTHX_ a,b,c)
+# define save_pushptr(a,b)                      Perl_save_pushptr(aTHX_ a,b)
+# define save_pushptrptr(a,b,c)                 Perl_save_pushptrptr(aTHX_ a,b,c)
+# define save_rcpv(a)                           Perl_save_rcpv(aTHX_ a)
+# define save_re_context()                      Perl_save_re_context(aTHX)
+# define save_scalar(a)                         Perl_save_scalar(aTHX_ a)
+# define save_set_svflags(a,b,c)                Perl_save_set_svflags(aTHX_ a,b,c)
+# define save_shared_pvref(a)                   Perl_save_shared_pvref(aTHX_ a)
+# define save_sptr(a)                           Perl_save_sptr(aTHX_ a)
+# define save_svref(a)                          Perl_save_svref(aTHX_ a)
+# define save_vptr(a)                           Perl_save_vptr(aTHX_ a)
+# define savepv(a)                              Perl_savepv(aTHX_ a)
+# define savepvn(a,b)                           Perl_savepvn(aTHX_ a,b)
+# define savesharedpv(a)                        Perl_savesharedpv(aTHX_ a)
+# define savesharedpvn(a,b)                     Perl_savesharedpvn(aTHX_ a,b)
+# define savesharedsvpv(a)                      Perl_savesharedsvpv(aTHX_ a)
+# define savestack_grow()                       Perl_savestack_grow(aTHX)
+# define savestack_grow_cnt(a)                  Perl_savestack_grow_cnt(aTHX_ a)
+# define savesvpv(a)                            Perl_savesvpv(aTHX_ a)
+# define scan_bin(a,b,c)                        Perl_scan_bin(aTHX_ a,b,c)
+# define scan_hex(a,b,c)                        Perl_scan_hex(aTHX_ a,b,c)
+# define scan_num(a,b)                          Perl_scan_num(aTHX_ a,b)
+# define scan_oct(a,b,c)                        Perl_scan_oct(aTHX_ a,b,c)
+# define scan_version(a,b,c)                    Perl_scan_version(aTHX_ a,b,c)
+# define scan_vstring(a,b,c)                    Perl_scan_vstring(aTHX_ a,b,c)
+# define seed()                                 Perl_seed(aTHX)
+# define set_context                            Perl_set_context
+# define setdefout(a)                           Perl_setdefout(aTHX_ a)
+# define share_hek(a,b,c)                       Perl_share_hek(aTHX_ a,b,c)
+# define single_1bit_pos32                      Perl_single_1bit_pos32
+# define sortsv(a,b,c)                          Perl_sortsv(aTHX_ a,b,c)
+# define sortsv_flags(a,b,c,d)                  Perl_sortsv_flags(aTHX_ a,b,c,d)
+# define stack_grow(a,b,c)                      Perl_stack_grow(aTHX_ a,b,c)
+# define start_subparse(a,b)                    Perl_start_subparse(aTHX_ a,b)
+# define str_to_version(a)                      Perl_str_to_version(aTHX_ a)
+# define suspend_compcv(a)                      Perl_suspend_compcv(aTHX_ a)
+# define sv_2bool_flags(a,b)                    Perl_sv_2bool_flags(aTHX_ a,b)
+# define sv_2cv(a,b,c,d)                        Perl_sv_2cv(aTHX_ a,b,c,d)
+# define sv_2io(a)                              Perl_sv_2io(aTHX_ a)
+# define sv_2iv_flags(a,b)                      Perl_sv_2iv_flags(aTHX_ a,b)
+# define sv_2mortal(a)                          Perl_sv_2mortal(aTHX_ a)
+# define sv_2nv_flags(a,b)                      Perl_sv_2nv_flags(aTHX_ a,b)
+# define sv_2pv_flags(a,b,c)                    Perl_sv_2pv_flags(aTHX_ a,b,c)
+# define sv_2pvbyte_flags(a,b,c)                Perl_sv_2pvbyte_flags(aTHX_ a,b,c)
+# define sv_2pvutf8_flags(a,b,c)                Perl_sv_2pvutf8_flags(aTHX_ a,b,c)
+# define sv_2uv_flags(a,b)                      Perl_sv_2uv_flags(aTHX_ a,b)
+# define sv_backoff                             Perl_sv_backoff
+# define sv_bless(a,b)                          Perl_sv_bless(aTHX_ a,b)
+# define sv_cat_decode(a,b,c,d,e,f)             Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f)
+# define sv_catpv(a,b)                          Perl_sv_catpv(aTHX_ a,b)
+# define sv_catpv_flags(a,b,c)                  Perl_sv_catpv_flags(aTHX_ a,b,c)
+# define sv_catpv_mg(a,b)                       Perl_sv_catpv_mg(aTHX_ a,b)
+# define sv_catpvn_flags(a,b,c,d)               Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
+# define sv_catsv_flags(a,b,c)                  Perl_sv_catsv_flags(aTHX_ a,b,c)
+# define sv_chop(a,b)                           Perl_sv_chop(aTHX_ a,b)
+# define sv_clear(a)                            Perl_sv_clear(aTHX_ a)
+# define sv_cmp_flags(a,b,c)                    Perl_sv_cmp_flags(aTHX_ a,b,c)
+# define sv_cmp_locale_flags(a,b,c)             Perl_sv_cmp_locale_flags(aTHX_ a,b,c)
+# define sv_copypv_flags(a,b,c)                 Perl_sv_copypv_flags(aTHX_ a,b,c)
+# define sv_dec(a)                              Perl_sv_dec(aTHX_ a)
+# define sv_dec_nomg(a)                         Perl_sv_dec_nomg(aTHX_ a)
+# define sv_derived_from(a,b)                   Perl_sv_derived_from(aTHX_ a,b)
+# define sv_derived_from_hv(a,b)                Perl_sv_derived_from_hv(aTHX_ a,b)
+# define sv_derived_from_pv(a,b,c)              Perl_sv_derived_from_pv(aTHX_ a,b,c)
+# define sv_derived_from_pvn(a,b,c,d)           Perl_sv_derived_from_pvn(aTHX_ a,b,c,d)
+# define sv_derived_from_sv(a,b,c)              Perl_sv_derived_from_sv(aTHX_ a,b,c)
+# define sv_destroyable(a)                      Perl_sv_destroyable(aTHX_ a)
+# define sv_does(a,b)                           Perl_sv_does(aTHX_ a,b)
+# define sv_does_pv(a,b,c)                      Perl_sv_does_pv(aTHX_ a,b,c)
+# define sv_does_pvn(a,b,c,d)                   Perl_sv_does_pvn(aTHX_ a,b,c,d)
+# define sv_does_sv(a,b,c)                      Perl_sv_does_sv(aTHX_ a,b,c)
+# define sv_dump(a)                             Perl_sv_dump(aTHX_ a)
+# define sv_dump_depth(a,b)                     Perl_sv_dump_depth(aTHX_ a,b)
+# define sv_eq_flags(a,b,c)                     Perl_sv_eq_flags(aTHX_ a,b,c)
+# define sv_force_normal_flags(a,b)             Perl_sv_force_normal_flags(aTHX_ a,b)
+# define sv_free(a)                             Perl_sv_free(aTHX_ a)
+# define sv_get_backrefs                        Perl_sv_get_backrefs
+# define sv_gets(a,b,c)                         Perl_sv_gets(aTHX_ a,b,c)
+# define sv_grow(a,b)                           Perl_sv_grow(aTHX_ a,b)
+# define sv_grow_fresh(a,b)                     Perl_sv_grow_fresh(aTHX_ a,b)
+# define sv_inc(a)                              Perl_sv_inc(aTHX_ a)
+# define sv_inc_nomg(a)                         Perl_sv_inc_nomg(aTHX_ a)
+# define sv_insert_flags(a,b,c,d,e,f)           Perl_sv_insert_flags(aTHX_ a,b,c,d,e,f)
+# define sv_isa(a,b)                            Perl_sv_isa(aTHX_ a,b)
+# define sv_isa_sv(a,b)                         Perl_sv_isa_sv(aTHX_ a,b)
+# define sv_isobject(a)                         Perl_sv_isobject(aTHX_ a)
+# define sv_len(a)                              Perl_sv_len(aTHX_ a)
+# define sv_len_utf8(a)                         Perl_sv_len_utf8(aTHX_ a)
+# define sv_len_utf8_nomg(a)                    Perl_sv_len_utf8_nomg(aTHX_ a)
+# define sv_magic(a,b,c,d,e)                    Perl_sv_magic(aTHX_ a,b,c,d,e)
+# define sv_magicext(a,b,c,d,e,f)               Perl_sv_magicext(aTHX_ a,b,c,d,e,f)
+# define sv_mortalcopy_flags(a,b)               Perl_sv_mortalcopy_flags(aTHX_ a,b)
+# define sv_newmortal()                         Perl_sv_newmortal(aTHX)
+# define sv_newref(a)                           Perl_sv_newref(aTHX_ a)
+# define sv_nosharing(a)                        Perl_sv_nosharing(aTHX_ a)
+# define sv_numeq_flags(a,b,c)                  Perl_sv_numeq_flags(aTHX_ a,b,c)
+# define sv_peek(a)                             Perl_sv_peek(aTHX_ a)
+# define sv_pos_b2u(a,b)                        Perl_sv_pos_b2u(aTHX_ a,b)
+# define sv_pos_b2u_flags(a,b,c)                Perl_sv_pos_b2u_flags(aTHX_ a,b,c)
+# define sv_pos_u2b(a,b,c)                      Perl_sv_pos_u2b(aTHX_ a,b,c)
+# define sv_pos_u2b_flags(a,b,c,d)              Perl_sv_pos_u2b_flags(aTHX_ a,b,c,d)
+# define sv_pvbyten_force(a,b)                  Perl_sv_pvbyten_force(aTHX_ a,b)
+# define sv_pvn_force_flags(a,b,c)              Perl_sv_pvn_force_flags(aTHX_ a,b,c)
+# define sv_pvutf8n_force(a,b)                  Perl_sv_pvutf8n_force(aTHX_ a,b)
+# define sv_recode_to_utf8(a,b)                 Perl_sv_recode_to_utf8(aTHX_ a,b)
+# define sv_ref(a,b,c)                          Perl_sv_ref(aTHX_ a,b,c)
+# define sv_reftype(a,b)                        Perl_sv_reftype(aTHX_ a,b)
+# define sv_replace(a,b)                        Perl_sv_replace(aTHX_ a,b)
+# define sv_report_used()                       Perl_sv_report_used(aTHX)
+# define sv_reset(a,b)                          Perl_sv_reset(aTHX_ a,b)
+# define sv_rvunweaken(a)                       Perl_sv_rvunweaken(aTHX_ a)
+# define sv_rvweaken(a)                         Perl_sv_rvweaken(aTHX_ a)
+# define sv_set_bool(a,b)                       Perl_sv_set_bool(aTHX_ a,b)
+# define sv_set_false(a)                        Perl_sv_set_false(aTHX_ a)
+# define sv_set_true(a)                         Perl_sv_set_true(aTHX_ a)
+# define sv_set_undef(a)                        Perl_sv_set_undef(aTHX_ a)
+# define sv_setiv(a,b)                          Perl_sv_setiv(aTHX_ a,b)
+# define sv_setiv_mg(a,b)                       Perl_sv_setiv_mg(aTHX_ a,b)
+# define sv_setnv(a,b)                          Perl_sv_setnv(aTHX_ a,b)
+# define sv_setnv_mg(a,b)                       Perl_sv_setnv_mg(aTHX_ a,b)
+# define sv_setpv(a,b)                          Perl_sv_setpv(aTHX_ a,b)
+# define sv_setpv_bufsize(a,b,c)                Perl_sv_setpv_bufsize(aTHX_ a,b,c)
+# define sv_setpv_freshbuf(a)                   Perl_sv_setpv_freshbuf(aTHX_ a)
+# define sv_setpv_mg(a,b)                       Perl_sv_setpv_mg(aTHX_ a,b)
+# define sv_setpvn(a,b,c)                       Perl_sv_setpvn(aTHX_ a,b,c)
+# define sv_setpvn_fresh(a,b,c)                 Perl_sv_setpvn_fresh(aTHX_ a,b,c)
+# define sv_setpvn_mg(a,b,c)                    Perl_sv_setpvn_mg(aTHX_ a,b,c)
+# define sv_setref_iv(a,b,c)                    Perl_sv_setref_iv(aTHX_ a,b,c)
+# define sv_setref_nv(a,b,c)                    Perl_sv_setref_nv(aTHX_ a,b,c)
+# define sv_setref_pv(a,b,c)                    Perl_sv_setref_pv(aTHX_ a,b,c)
+# define sv_setref_pvn(a,b,c,d)                 Perl_sv_setref_pvn(aTHX_ a,b,c,d)
+# define sv_setref_uv(a,b,c)                    Perl_sv_setref_uv(aTHX_ a,b,c)
+# define sv_setrv_inc(a,b)                      Perl_sv_setrv_inc(aTHX_ a,b)
+# define sv_setrv_inc_mg(a,b)                   Perl_sv_setrv_inc_mg(aTHX_ a,b)
+# define sv_setrv_noinc(a,b)                    Perl_sv_setrv_noinc(aTHX_ a,b)
+# define sv_setrv_noinc_mg(a,b)                 Perl_sv_setrv_noinc_mg(aTHX_ a,b)
+# define sv_setsv_flags(a,b,c)                  Perl_sv_setsv_flags(aTHX_ a,b,c)
+# define sv_setsv_mg(a,b)                       Perl_sv_setsv_mg(aTHX_ a,b)
+# define sv_setuv(a,b)                          Perl_sv_setuv(aTHX_ a,b)
+# define sv_setuv_mg(a,b)                       Perl_sv_setuv_mg(aTHX_ a,b)
+# define sv_streq_flags(a,b,c)                  Perl_sv_streq_flags(aTHX_ a,b,c)
+# define sv_string_from_errnum(a,b)             Perl_sv_string_from_errnum(aTHX_ a,b)
+# define sv_tainted(a)                          Perl_sv_tainted(aTHX_ a)
+# define sv_true(a)                             Perl_sv_true(aTHX_ a)
+# define sv_uni_display(a,b,c,d)                Perl_sv_uni_display(aTHX_ a,b,c,d)
+# define sv_unmagic(a,b)                        Perl_sv_unmagic(aTHX_ a,b)
+# define sv_unmagicext(a,b,c)                   Perl_sv_unmagicext(aTHX_ a,b,c)
+# define sv_unref_flags(a,b)                    Perl_sv_unref_flags(aTHX_ a,b)
+# define sv_untaint(a)                          Perl_sv_untaint(aTHX_ a)
+# define sv_upgrade(a,b)                        Perl_sv_upgrade(aTHX_ a,b)
+# define sv_usepvn_flags(a,b,c,d)               Perl_sv_usepvn_flags(aTHX_ a,b,c,d)
+# define sv_utf8_decode(a)                      Perl_sv_utf8_decode(aTHX_ a)
+# define sv_utf8_downgrade_flags(a,b,c)         Perl_sv_utf8_downgrade_flags(aTHX_ a,b,c)
+# define sv_utf8_encode(a)                      Perl_sv_utf8_encode(aTHX_ a)
+# define sv_utf8_upgrade_flags_grow(a,b,c)      Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
+# define sv_vcatpvf(a,b,c)                      Perl_sv_vcatpvf(aTHX_ a,b,c)
+# define sv_vcatpvf_mg(a,b,c)                   Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
+# define sv_vcatpvfn(a,b,c,d,e,f,g)             Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g)
+# define sv_vcatpvfn_flags(a,b,c,d,e,f,g,h)     Perl_sv_vcatpvfn_flags(aTHX_ a,b,c,d,e,f,g,h)
+# define sv_vsetpvf(a,b,c)                      Perl_sv_vsetpvf(aTHX_ a,b,c)
+# define sv_vsetpvf_mg(a,b,c)                   Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
+# define sv_vsetpvfn(a,b,c,d,e,f,g)             Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
+# define switch_to_global_locale()              Perl_switch_to_global_locale(aTHX)
+# define sync_locale()                          Perl_sync_locale(aTHX)
+# define taint_env()                            Perl_taint_env(aTHX)
+# define taint_proper(a,b)                      Perl_taint_proper(aTHX_ a,b)
+# define thread_locale_init()                   Perl_thread_locale_init(aTHX)
+# define thread_locale_term()                   Perl_thread_locale_term(aTHX)
+# define to_uni_lower(a,b,c)                    Perl_to_uni_lower(aTHX_ a,b,c)
+# define to_uni_title(a,b,c)                    Perl_to_uni_title(aTHX_ a,b,c)
+# define to_uni_upper(a,b,c)                    Perl_to_uni_upper(aTHX_ a,b,c)
+# define unpackstring(a,b,c,d,e)                Perl_unpackstring(aTHX_ a,b,c,d,e)
+# define unshare_hek(a)                         Perl_unshare_hek(aTHX_ a)
+# define unsharepvn(a,b,c)                      Perl_unsharepvn(aTHX_ a,b,c)
+# define upg_version(a,b)                       Perl_upg_version(aTHX_ a,b)
+# define utf8_distance(a,b)                     Perl_utf8_distance(aTHX_ a,b)
+# define utf8_hop                               Perl_utf8_hop
+# define utf8_hop_back                          Perl_utf8_hop_back
+# define utf8_hop_forward                       Perl_utf8_hop_forward
+# define utf8_hop_safe                          Perl_utf8_hop_safe
+# define utf8_length(a,b)                       Perl_utf8_length(aTHX_ a,b)
+# define utf8_to_bytes(a,b)                     Perl_utf8_to_bytes(aTHX_ a,b)
+# define utf8_to_uvchr_buf_helper(a,b,c)        Perl_utf8_to_uvchr_buf_helper(aTHX_ a,b,c)
+# define utf8n_to_uvchr_msgs                    Perl_utf8n_to_uvchr_msgs
+# define uvoffuni_to_utf8_flags_msgs(a,b,c,d)   Perl_uvoffuni_to_utf8_flags_msgs(aTHX_ a,b,c,d)
+# define uvuni_to_utf8(a,b)                     Perl_uvuni_to_utf8(aTHX_ a,b)
+# define valid_utf8_to_uvchr                    Perl_valid_utf8_to_uvchr
+# define vcmp(a,b)                              Perl_vcmp(aTHX_ a,b)
+# define vcroak(a,b)                            Perl_vcroak(aTHX_ a,b)
+# define vdeb(a,b)                              Perl_vdeb(aTHX_ a,b)
+# define vform(a,b)                             Perl_vform(aTHX_ a,b)
+# define vload_module(a,b,c,d)                  Perl_vload_module(aTHX_ a,b,c,d)
+# define vmess(a,b)                             Perl_vmess(aTHX_ a,b)
+# define vnewSVpvf(a,b)                         Perl_vnewSVpvf(aTHX_ a,b)
+# define vnormal(a)                             Perl_vnormal(aTHX_ a)
+# define vnumify(a)                             Perl_vnumify(aTHX_ a)
+# define vstringify(a)                          Perl_vstringify(aTHX_ a)
+# define vverify(a)                             Perl_vverify(aTHX_ a)
+# define vwarn(a,b)                             Perl_vwarn(aTHX_ a,b)
+# define vwarner(a,b,c)                         Perl_vwarner(aTHX_ a,b,c)
+# define warn_sv(a)                             Perl_warn_sv(aTHX_ a)
+# define whichsig_pv(a)                         Perl_whichsig_pv(aTHX_ a)
+# define whichsig_pvn(a,b)                      Perl_whichsig_pvn(aTHX_ a,b)
+# define whichsig_sv(a)                         Perl_whichsig_sv(aTHX_ a)
+# define wrap_infix_plugin(a,b)                 Perl_wrap_infix_plugin(aTHX_ a,b)
+# define wrap_keyword_plugin(a,b)               Perl_wrap_keyword_plugin(aTHX_ a,b)
+# define wrap_op_checker(a,b,c)                 Perl_wrap_op_checker(aTHX_ a,b,c)
+
+# if defined(DEBUGGING)
+#   define pad_setsv(a,b)                       Perl_pad_setsv(aTHX_ a,b)
+#   define pad_sv(a)                            Perl_pad_sv(aTHX_ a)
+# endif
+# if !defined(EBCDIC)
+#   define variant_byte_number                  Perl_variant_byte_number
+# endif
+# if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
+#   define my_chsize(a,b)                       Perl_my_chsize(aTHX_ a,b)
+# endif
+# if !defined(HAS_STRLCAT)
+#   define my_strlcat                           Perl_my_strlcat
+# endif
+# if !defined(HAS_STRLCPY)
+#   define my_strlcpy                           Perl_my_strlcpy
+# endif
+# if !defined(HAS_STRNLEN)
+#   define my_strnlen                           Perl_my_strnlen
+# endif
+# if defined(HAVE_INTERP_INTERN)
+#   define sys_intern_clear()                   Perl_sys_intern_clear(aTHX)
+#   define sys_intern_init()                    Perl_sys_intern_init(aTHX)
+#   if defined(USE_ITHREADS)
+#     define sys_intern_dup(a,b)                Perl_sys_intern_dup(aTHX_ a,b)
+#   endif
+# endif
+# if defined(MULTIPLICITY)
+#   define croak_nocontext                      Perl_croak_nocontext
+#   define deb_nocontext                        Perl_deb_nocontext
+#   define die_nocontext                        Perl_die_nocontext
+#   define form_nocontext                       Perl_form_nocontext
+#   define load_module_nocontext                Perl_load_module_nocontext
+#   define mess_nocontext                       Perl_mess_nocontext
+#   define newSVpvf_nocontext                   Perl_newSVpvf_nocontext
+#   define sv_catpvf_mg_nocontext               Perl_sv_catpvf_mg_nocontext
+#   define sv_catpvf_nocontext                  Perl_sv_catpvf_nocontext
+#   define sv_setpvf_mg_nocontext               Perl_sv_setpvf_mg_nocontext
+#   define sv_setpvf_nocontext                  Perl_sv_setpvf_nocontext
+#   define warn_nocontext                       Perl_warn_nocontext
+#   define warner_nocontext                     Perl_warner_nocontext
+# endif /* defined(MULTIPLICITY) */
+# if !defined(MULTIPLICITY) || defined(PERL_CORE)
+#   define ck_warner(a,...)                     Perl_ck_warner(aTHX_ a,__VA_ARGS__)
+#   define ck_warner_d(a,...)                   Perl_ck_warner_d(aTHX_ a,__VA_ARGS__)
+#   define croak(...)                           Perl_croak(aTHX_ __VA_ARGS__)
+#   define deb(...)                             Perl_deb(aTHX_ __VA_ARGS__)
+#   define die(...)                             Perl_die(aTHX_ __VA_ARGS__)
+#   define dump_indent(a,b,...)                 Perl_dump_indent(aTHX_ a,b,__VA_ARGS__)
+#   define form(...)                            Perl_form(aTHX_ __VA_ARGS__)
+#   define load_module(a,b,...)                 Perl_load_module(aTHX_ a,b,__VA_ARGS__)
+#   define mess(...)                            Perl_mess(aTHX_ __VA_ARGS__)
+#   define newSVpvf(...)                        Perl_newSVpvf(aTHX_ __VA_ARGS__)
+#   define sv_catpvf(a,...)                     Perl_sv_catpvf(aTHX_ a,__VA_ARGS__)
+#   define sv_catpvf_mg(a,...)                  Perl_sv_catpvf_mg(aTHX_ a,__VA_ARGS__)
+#   define sv_setpvf(a,...)                     Perl_sv_setpvf(aTHX_ a,__VA_ARGS__)
+#   define sv_setpvf_mg(a,...)                  Perl_sv_setpvf_mg(aTHX_ a,__VA_ARGS__)
+#   define warn(...)                            Perl_warn(aTHX_ __VA_ARGS__)
+#   define warner(a,...)                        Perl_warner(aTHX_ a,__VA_ARGS__)
+# endif /* !defined(MULTIPLICITY) || defined(PERL_CORE) */
+# if defined(MYMALLOC)
+#   define dump_mstats(a)                       Perl_dump_mstats(aTHX_ a)
+#   define get_mstats(a,b,c)                    Perl_get_mstats(aTHX_ a,b,c)
+#   if defined(PERL_CORE)
+#     define malloc_good_size                   Perl_malloc_good_size
+#     define malloced_size                      Perl_malloced_size
+#   endif
+# endif
+# if !defined(NO_MATHOMS)
+#   define sv_nolocking(a)                      Perl_sv_nolocking(aTHX_ a)
+#   define sv_nounlocking(a)                    Perl_sv_nounlocking(aTHX_ a)
+#   define utf8_to_uvchr(a,b)                   Perl_utf8_to_uvchr(aTHX_ a,b)
+#   define utf8_to_uvuni(a,b)                   Perl_utf8_to_uvuni(aTHX_ a,b)
+#   define utf8n_to_uvuni(a,b,c,d)              Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_CORE)
+#   define PerlLIO_dup2_cloexec(a,b)            Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
+#   define PerlLIO_dup_cloexec(a)               Perl_PerlLIO_dup_cloexec(aTHX_ a)
+#   define PerlLIO_open3_cloexec(a,b,c)         Perl_PerlLIO_open3_cloexec(aTHX_ a,b,c)
+#   define PerlLIO_open_cloexec(a,b)            Perl_PerlLIO_open_cloexec(aTHX_ a,b)
+#   define Slab_Alloc(a)                        Perl_Slab_Alloc(aTHX_ a)
+#   define Slab_Free(a)                         Perl_Slab_Free(aTHX_ a)
+#   define _warn_problematic_locale             Perl__warn_problematic_locale
+#   define abort_execution(a,b)                 Perl_abort_execution(aTHX_ a,b)
+#   define alloc_LOGOP(a,b,c)                   Perl_alloc_LOGOP(aTHX_ a,b,c)
+#   define allocmy(a,b,c)                       Perl_allocmy(aTHX_ a,b,c)
+#   define amagic_applies(a,b,c)                Perl_amagic_applies(aTHX_ a,b,c)
+#   define amagic_is_enabled(a)                 Perl_amagic_is_enabled(aTHX_ a)
+#   define apply(a,b,c)                         Perl_apply(aTHX_ a,b,c)
+#   define av_extend_guts(a,b,c,d,e)            Perl_av_extend_guts(aTHX_ a,b,c,d,e)
+#   define av_nonelem(a,b)                      Perl_av_nonelem(aTHX_ a,b)
+#   define bind_match(a,b,c)                    Perl_bind_match(aTHX_ a,b,c)
+#   define boot_core_PerlIO()                   Perl_boot_core_PerlIO(aTHX)
+#   define boot_core_UNIVERSAL()                Perl_boot_core_UNIVERSAL(aTHX)
+#   define boot_core_builtin()                  Perl_boot_core_builtin(aTHX)
+#   define boot_core_mro()                      Perl_boot_core_mro(aTHX)
+#   define build_infix_plugin(a,b,c)            Perl_build_infix_plugin(aTHX_ a,b,c)
+#   define cando(a,b,c)                         Perl_cando(aTHX_ a,b,c)
+#   define check_utf8_print(a,b)                Perl_check_utf8_print(aTHX_ a,b)
+#   define closest_cop(a,b,c,d)                 Perl_closest_cop(aTHX_ a,b,c,d)
+#   define cmpchain_extend(a,b,c)               Perl_cmpchain_extend(aTHX_ a,b,c)
+#   define cmpchain_finish(a)                   Perl_cmpchain_finish(aTHX_ a)
+#   define cmpchain_start(a,b,c)                Perl_cmpchain_start(aTHX_ a,b,c)
+#   define core_prototype(a,b,c,d)              Perl_core_prototype(aTHX_ a,b,c,d)
+#   define coresub_op(a,b,c)                    Perl_coresub_op(aTHX_ a,b,c)
+#   define create_eval_scope(a,b)               Perl_create_eval_scope(aTHX_ a,b)
+#   define croak_caller                         Perl_croak_caller
+#   define croak_no_mem                         Perl_croak_no_mem
+#   define croak_popstack                       Perl_croak_popstack
+#   define custom_op_get_field(a,b)             Perl_custom_op_get_field(aTHX_ a,b)
+#   define cv_clone_into(a,b)                   Perl_cv_clone_into(aTHX_ a,b)
+#   define cv_const_sv_or_av                    Perl_cv_const_sv_or_av
+#   define cv_forget_slab(a)                    Perl_cv_forget_slab(aTHX_ a)
+#   define cv_undef_flags(a,b)                  Perl_cv_undef_flags(aTHX_ a,b)
+#   define cvgv_set(a,b)                        Perl_cvgv_set(aTHX_ a,b)
+#   define cvstash_set(a,b)                     Perl_cvstash_set(aTHX_ a,b)
+#   define deb_stack_all()                      Perl_deb_stack_all(aTHX)
+#   define debug_hash_seed(a)                   Perl_debug_hash_seed(aTHX_ a)
+#   define defelem_target(a,b)                  Perl_defelem_target(aTHX_ a,b)
+#   define delete_eval_scope()                  Perl_delete_eval_scope(aTHX)
+#   define die_unwind(a)                        Perl_die_unwind(aTHX_ a)
+#   define do_aexec5(a,b,c,d,e)                 Perl_do_aexec5(aTHX_ a,b,c,d,e)
+#   define do_dump_pad(a,b,c,d)                 Perl_do_dump_pad(aTHX_ a,b,c,d)
+#   define do_eof(a)                            Perl_do_eof(aTHX_ a)
+#   define do_ncmp(a,b)                         Perl_do_ncmp(aTHX_ a,b)
+#   define do_open6(a,b,c,d,e,f)                Perl_do_open6(aTHX_ a,b,c,d,e,f)
+#   define do_open_raw(a,b,c,d,e,f)             Perl_do_open_raw(aTHX_ a,b,c,d,e,f)
+#   define do_print(a,b)                        Perl_do_print(aTHX_ a,b)
+#   define do_readline()                        Perl_do_readline(aTHX)
+#   define do_seek(a,b,c)                       Perl_do_seek(aTHX_ a,b,c)
+#   define do_sysseek(a,b,c)                    Perl_do_sysseek(aTHX_ a,b,c)
+#   define do_tell(a)                           Perl_do_tell(aTHX_ a)
+#   define do_trans(a)                          Perl_do_trans(aTHX_ a)
+#   define do_vecget(a,b,c)                     Perl_do_vecget(aTHX_ a,b,c)
+#   define do_vecset(a)                         Perl_do_vecset(aTHX_ a)
+#   define do_vop(a,b,c,d)                      Perl_do_vop(aTHX_ a,b,c,d)
+#   define dofile(a,b)                          Perl_dofile(aTHX_ a,b)
+#   define dump_all_perl(a)                     Perl_dump_all_perl(aTHX_ a)
+#   define dump_packsubs_perl(a,b)              Perl_dump_packsubs_perl(aTHX_ a,b)
+#   define dump_sub_perl(a,b)                   Perl_dump_sub_perl(aTHX_ a,b)
+#   define find_lexical_cv(a)                   Perl_find_lexical_cv(aTHX_ a)
+#   define find_runcv_where(a,b,c)              Perl_find_runcv_where(aTHX_ a,b,c)
+#   define find_script(a,b,c,d)                 Perl_find_script(aTHX_ a,b,c,d)
+#   define force_locale_unlock                  Perl_force_locale_unlock
+#   define free_tied_hv_pool()                  Perl_free_tied_hv_pool(aTHX)
+#   define get_extended_os_errno                Perl_get_extended_os_errno
+#   define get_hash_seed(a)                     Perl_get_hash_seed(aTHX_ a)
+#   define get_no_modify()                      Perl_get_no_modify(aTHX)
+#   define get_opargs()                         Perl_get_opargs(aTHX)
+#   define gv_override(a,b)                     Perl_gv_override(aTHX_ a,b)
+#   define gv_setref(a,b)                       Perl_gv_setref(aTHX_ a,b)
+#   define gv_try_downgrade(a)                  Perl_gv_try_downgrade(aTHX_ a)
+#   define hv_ename_add(a,b,c,d)                Perl_hv_ename_add(aTHX_ a,b,c,d)
+#   define hv_ename_delete(a,b,c,d)             Perl_hv_ename_delete(aTHX_ a,b,c,d)
+#   define hv_pushkv(a,b)                       Perl_hv_pushkv(aTHX_ a,b)
+#   define init_argv_symbols(a,b)               Perl_init_argv_symbols(aTHX_ a,b)
+#   define init_constants()                     Perl_init_constants(aTHX)
+#   define init_debugger()                      Perl_init_debugger(aTHX)
+#   define init_named_cv(a,b)                   Perl_init_named_cv(aTHX_ a,b)
+#   define init_uniprops()                      Perl_init_uniprops(aTHX)
+#   define invert(a)                            Perl_invert(aTHX_ a)
+#   define invmap_dump(a,b)                     Perl_invmap_dump(aTHX_ a,b)
+#   define io_close(a,b,c,d)                    Perl_io_close(aTHX_ a,b,c,d)
+#   define isinfnansv(a)                        Perl_isinfnansv(aTHX_ a)
+#   define jmaybe(a)                            Perl_jmaybe(aTHX_ a)
+#   define keyword(a,b,c)                       Perl_keyword(aTHX_ a,b,c)
+#   define list(a)                              Perl_list(aTHX_ a)
+#   define localize(a,b)                        Perl_localize(aTHX_ a,b)
+#   define magic_clear_all_env(a,b)             Perl_magic_clear_all_env(aTHX_ a,b)
+#   define magic_cleararylen_p(a,b)             Perl_magic_cleararylen_p(aTHX_ a,b)
+#   define magic_clearenv(a,b)                  Perl_magic_clearenv(aTHX_ a,b)
+#   define magic_clearhint(a,b)                 Perl_magic_clearhint(aTHX_ a,b)
+#   define magic_clearhints(a,b)                Perl_magic_clearhints(aTHX_ a,b)
+#   define magic_clearhook(a,b)                 Perl_magic_clearhook(aTHX_ a,b)
+#   define magic_clearhookall(a,b)              Perl_magic_clearhookall(aTHX_ a,b)
+#   define magic_clearisa(a,b)                  Perl_magic_clearisa(aTHX_ a,b)
+#   define magic_clearpack(a,b)                 Perl_magic_clearpack(aTHX_ a,b)
+#   define magic_clearsig(a,b)                  Perl_magic_clearsig(aTHX_ a,b)
+#   define magic_copycallchecker(a,b,c,d,e)     Perl_magic_copycallchecker(aTHX_ a,b,c,d,e)
+#   define magic_existspack(a,b)                Perl_magic_existspack(aTHX_ a,b)
+#   define magic_freearylen_p(a,b)              Perl_magic_freearylen_p(aTHX_ a,b)
+#   define magic_freedestruct(a,b)              Perl_magic_freedestruct(aTHX_ a,b)
+#   define magic_freemglob(a,b)                 Perl_magic_freemglob(aTHX_ a,b)
+#   define magic_freeovrld(a,b)                 Perl_magic_freeovrld(aTHX_ a,b)
+#   define magic_freeutf8(a,b)                  Perl_magic_freeutf8(aTHX_ a,b)
+#   define magic_get(a,b)                       Perl_magic_get(aTHX_ a,b)
+#   define magic_getarylen(a,b)                 Perl_magic_getarylen(aTHX_ a,b)
+#   define magic_getdebugvar(a,b)               Perl_magic_getdebugvar(aTHX_ a,b)
+#   define magic_getdefelem(a,b)                Perl_magic_getdefelem(aTHX_ a,b)
+#   define magic_getnkeys(a,b)                  Perl_magic_getnkeys(aTHX_ a,b)
+#   define magic_getpack(a,b)                   Perl_magic_getpack(aTHX_ a,b)
+#   define magic_getpos(a,b)                    Perl_magic_getpos(aTHX_ a,b)
+#   define magic_getsig(a,b)                    Perl_magic_getsig(aTHX_ a,b)
+#   define magic_getsubstr(a,b)                 Perl_magic_getsubstr(aTHX_ a,b)
+#   define magic_gettaint(a,b)                  Perl_magic_gettaint(aTHX_ a,b)
+#   define magic_getuvar(a,b)                   Perl_magic_getuvar(aTHX_ a,b)
+#   define magic_getvec(a,b)                    Perl_magic_getvec(aTHX_ a,b)
+#   define magic_killbackrefs(a,b)              Perl_magic_killbackrefs(aTHX_ a,b)
+#   define magic_nextpack(a,b,c)                Perl_magic_nextpack(aTHX_ a,b,c)
+#   define magic_regdata_cnt(a,b)               Perl_magic_regdata_cnt(aTHX_ a,b)
+#   define magic_regdatum_get(a,b)              Perl_magic_regdatum_get(aTHX_ a,b)
+#   define magic_scalarpack(a,b)                Perl_magic_scalarpack(aTHX_ a,b)
+#   define magic_set(a,b)                       Perl_magic_set(aTHX_ a,b)
+#   define magic_set_all_env(a,b)               Perl_magic_set_all_env(aTHX_ a,b)
+#   define magic_setarylen(a,b)                 Perl_magic_setarylen(aTHX_ a,b)
+#   define magic_setdbline(a,b)                 Perl_magic_setdbline(aTHX_ a,b)
+#   define magic_setdebugvar(a,b)               Perl_magic_setdebugvar(aTHX_ a,b)
+#   define magic_setdefelem(a,b)                Perl_magic_setdefelem(aTHX_ a,b)
+#   define magic_setenv(a,b)                    Perl_magic_setenv(aTHX_ a,b)
+#   define magic_sethint(a,b)                   Perl_magic_sethint(aTHX_ a,b)
+#   define magic_sethook(a,b)                   Perl_magic_sethook(aTHX_ a,b)
+#   define magic_sethookall(a,b)                Perl_magic_sethookall(aTHX_ a,b)
+#   define magic_setisa(a,b)                    Perl_magic_setisa(aTHX_ a,b)
+#   define magic_setlvref(a,b)                  Perl_magic_setlvref(aTHX_ a,b)
+#   define magic_setmglob(a,b)                  Perl_magic_setmglob(aTHX_ a,b)
+#   define magic_setnkeys(a,b)                  Perl_magic_setnkeys(aTHX_ a,b)
+#   define magic_setnonelem(a,b)                Perl_magic_setnonelem(aTHX_ a,b)
+#   define magic_setpack(a,b)                   Perl_magic_setpack(aTHX_ a,b)
+#   define magic_setpos(a,b)                    Perl_magic_setpos(aTHX_ a,b)
+#   define magic_setregexp(a,b)                 Perl_magic_setregexp(aTHX_ a,b)
+#   define magic_setsig(a,b)                    Perl_magic_setsig(aTHX_ a,b)
+#   define magic_setsigall(a,b)                 Perl_magic_setsigall(aTHX_ a,b)
+#   define magic_setsubstr(a,b)                 Perl_magic_setsubstr(aTHX_ a,b)
+#   define magic_settaint(a,b)                  Perl_magic_settaint(aTHX_ a,b)
+#   define magic_setutf8(a,b)                   Perl_magic_setutf8(aTHX_ a,b)
+#   define magic_setuvar(a,b)                   Perl_magic_setuvar(aTHX_ a,b)
+#   define magic_setvec(a,b)                    Perl_magic_setvec(aTHX_ a,b)
+#   define magic_sizepack(a,b)                  Perl_magic_sizepack(aTHX_ a,b)
+#   define magic_wipepack(a,b)                  Perl_magic_wipepack(aTHX_ a,b)
+#   define mg_localize(a,b,c)                   Perl_mg_localize(aTHX_ a,b,c)
+#   define mode_from_discipline(a,b)            Perl_mode_from_discipline(aTHX_ a,b)
+#   define mro_isa_changed_in(a)                Perl_mro_isa_changed_in(aTHX_ a)
+#   define mro_package_moved(a,b,c,d)           Perl_mro_package_moved(aTHX_ a,b,c,d)
+#   define my_attrs(a,b)                        Perl_my_attrs(aTHX_ a,b)
+#   define my_clearenv()                        Perl_my_clearenv(aTHX)
+#   define my_lstat_flags(a)                    Perl_my_lstat_flags(aTHX_ a)
+#   define my_stat_flags(a)                     Perl_my_stat_flags(aTHX_ a)
+#   define my_strerror(a,b)                     Perl_my_strerror(aTHX_ a,b)
+#   define my_unexec()                          Perl_my_unexec(aTHX)
+#   define newATTRSUB_x(a,b,c,d,e,f)            Perl_newATTRSUB_x(aTHX_ a,b,c,d,e,f)
+#   define newSTUB(a,b)                         Perl_newSTUB(aTHX_ a,b)
+#   define newSVavdefelem(a,b,c)                Perl_newSVavdefelem(aTHX_ a,b,c)
+#   define newXS_deffile(a,b)                   Perl_newXS_deffile(aTHX_ a,b)
+#   define newXS_len_flags(a,b,c,d,e,f,g)       Perl_newXS_len_flags(aTHX_ a,b,c,d,e,f,g)
+#   define nextargv(a,b)                        Perl_nextargv(aTHX_ a,b)
+#   define no_bareword_filehandle(a)            Perl_no_bareword_filehandle(aTHX_ a)
+#   define noperl_die                           Perl_noperl_die
+#   define notify_parser_that_changed_to_utf8() Perl_notify_parser_that_changed_to_utf8(aTHX)
+#   define oopsAV(a)                            Perl_oopsAV(aTHX_ a)
+#   define oopsHV(a)                            Perl_oopsHV(aTHX_ a)
+#   define op_unscope(a)                        Perl_op_unscope(aTHX_ a)
+#   define package(a)                           Perl_package(aTHX_ a)
+#   define package_version(a)                   Perl_package_version(aTHX_ a)
+#   define pad_add_weakref(a)                   Perl_pad_add_weakref(aTHX_ a)
+#   define pad_block_start(a)                   Perl_pad_block_start(aTHX_ a)
+#   define pad_fixup_inner_anons(a,b,c)         Perl_pad_fixup_inner_anons(aTHX_ a,b,c)
+#   define pad_free(a)                          Perl_pad_free(aTHX_ a)
+#   define pad_leavemy()                        Perl_pad_leavemy(aTHX)
+#   define pad_push(a,b)                        Perl_pad_push(aTHX_ a,b)
+#   define pad_swipe(a,b)                       Perl_pad_swipe(aTHX_ a,b)
+#   define padlist_store(a,b,c)                 Perl_padlist_store(aTHX_ a,b,c)
+#   define parse_unicode_opts(a)                Perl_parse_unicode_opts(aTHX_ a)
+#   define parser_free(a)                       Perl_parser_free(aTHX_ a)
+#   define peep(a)                              Perl_peep(aTHX_ a)
+#   define pmruntime(a,b,c,d,e)                 Perl_pmruntime(aTHX_ a,b,c,d,e)
+#   define re_op_compile(a,b,c,d,e,f,g,h)       Perl_re_op_compile(aTHX_ a,b,c,d,e,f,g,h)
+#   define refcounted_he_chain_2hv(a,b)         Perl_refcounted_he_chain_2hv(aTHX_ a,b)
+#   define refcounted_he_fetch_pv(a,b,c,d)      Perl_refcounted_he_fetch_pv(aTHX_ a,b,c,d)
+#   define refcounted_he_fetch_pvn(a,b,c,d,e)   Perl_refcounted_he_fetch_pvn(aTHX_ a,b,c,d,e)
+#   define refcounted_he_fetch_sv(a,b,c,d)      Perl_refcounted_he_fetch_sv(aTHX_ a,b,c,d)
+#   define refcounted_he_free(a)                Perl_refcounted_he_free(aTHX_ a)
+#   define refcounted_he_inc(a)                 Perl_refcounted_he_inc(aTHX_ a)
+#   define refcounted_he_new_pv(a,b,c,d,e)      Perl_refcounted_he_new_pv(aTHX_ a,b,c,d,e)
+#   define refcounted_he_new_pvn(a,b,c,d,e,f)   Perl_refcounted_he_new_pvn(aTHX_ a,b,c,d,e,f)
+#   define refcounted_he_new_sv(a,b,c,d,e)      Perl_refcounted_he_new_sv(aTHX_ a,b,c,d,e)
+#   define report_evil_fh(a)                    Perl_report_evil_fh(aTHX_ a)
+#   define report_wrongway_fh(a,b)              Perl_report_wrongway_fh(aTHX_ a,b)
+#   define rpeep(a)                             Perl_rpeep(aTHX_ a)
+#   define rsignal_restore(a,b)                 Perl_rsignal_restore(aTHX_ a,b)
+#   define rsignal_save(a,b,c)                  Perl_rsignal_save(aTHX_ a,b,c)
+#   define rxres_save(a,b)                      Perl_rxres_save(aTHX_ a,b)
+#   define save_strlen(a)                       Perl_save_strlen(aTHX_ a)
+#   define sawparens(a)                         Perl_sawparens(aTHX_ a)
+#   define scalar(a)                            Perl_scalar(aTHX_ a)
+#   define scalarvoid(a)                        Perl_scalarvoid(aTHX_ a)
+#   define set_caret_X()                        Perl_set_caret_X(aTHX)
+#   define set_numeric_standard()               Perl_set_numeric_standard(aTHX)
+#   define set_numeric_underlying()             Perl_set_numeric_underlying(aTHX)
+#   define setfd_cloexec                        Perl_setfd_cloexec
+#   define setfd_cloexec_for_nonsysfd(a)        Perl_setfd_cloexec_for_nonsysfd(aTHX_ a)
+#   define setfd_cloexec_or_inhexec_by_sysfdness(a) Perl_setfd_cloexec_or_inhexec_by_sysfdness(aTHX_ a)
+#   define setfd_inhexec                        Perl_setfd_inhexec
+#   define setfd_inhexec_for_sysfd(a)           Perl_setfd_inhexec_for_sysfd(aTHX_ a)
+#   define sighandler1                          Perl_sighandler1
+#   define sighandler3                          Perl_sighandler3
+#   define sub_crush_depth(a)                   Perl_sub_crush_depth(aTHX_ a)
+#   define sv_2num(a)                           Perl_sv_2num(aTHX_ a)
+#   define sv_clean_all()                       Perl_sv_clean_all(aTHX)
+#   define sv_clean_objs()                      Perl_sv_clean_objs(aTHX)
+#   define sv_del_backref(a,b)                  Perl_sv_del_backref(aTHX_ a,b)
+#   define sv_free_arenas()                     Perl_sv_free_arenas(aTHX)
+#   define sv_pvbyten_force_wrapper(a,b,c)      Perl_sv_pvbyten_force_wrapper(aTHX_ a,b,c)
+#   define sv_pvutf8n_force_wrapper(a,b,c)      Perl_sv_pvutf8n_force_wrapper(aTHX_ a,b,c)
+#   define sv_resetpvn(a,b,c)                   Perl_sv_resetpvn(aTHX_ a,b,c)
+#   define sv_sethek(a,b)                       Perl_sv_sethek(aTHX_ a,b)
+#   define tmps_grow_p(a)                       Perl_tmps_grow_p(aTHX_ a)
+#   define utilize(a,b,c,d,e)                   Perl_utilize(aTHX_ a,b,c,d,e)
+#   define vivify_ref(a,b)                      Perl_vivify_ref(aTHX_ a,b)
+#   define wait4pid(a,b,c)                      Perl_wait4pid(aTHX_ a,b,c)
+#   define watch(a)                             Perl_watch(aTHX_ a)
+#   define write_to_stderr(a)                   Perl_write_to_stderr(aTHX_ a)
+#   define xs_boot_epilog(a)                    Perl_xs_boot_epilog(aTHX_ a)
+#   define yyerror(a)                           Perl_yyerror(aTHX_ a)
+#   define yyerror_pv(a,b)                      Perl_yyerror_pv(aTHX_ a,b)
+#   define yyerror_pvn(a,b,c)                   Perl_yyerror_pvn(aTHX_ a,b,c)
+#   define yyparse(a)                           Perl_yyparse(aTHX_ a)
+#   define yyquit()                             Perl_yyquit(aTHX)
+#   define yyunlex()                            Perl_yyunlex(aTHX)
+#   define opslab_force_free(a)                 Perl_opslab_force_free(aTHX_ a)
+#   define opslab_free(a)                       Perl_opslab_free(aTHX_ a)
+#   define opslab_free_nopad(a)                 Perl_opslab_free_nopad(aTHX_ a)
+#   define parser_free_nexttoke_ops(a,b)        Perl_parser_free_nexttoke_ops(aTHX_ a,b)
+#   define should_warn_nl                       S_should_warn_nl
+#   if defined(DEBUGGING)
+#     define get_debug_opts(a,b)                Perl_get_debug_opts(aTHX_ a,b)
+#     define set_padlist                        Perl_set_padlist
+#   endif
+#   if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+#     define dump_sv_child(a)                   Perl_dump_sv_child(aTHX_ a)
+#   endif
+#   if !defined(HAS_GETENV_LEN)
+#     define getenv_len(a,b)                    Perl_getenv_len(aTHX_ a,b)
+#   endif
+#   if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+#     define do_ipcctl(a,b,c)                   Perl_do_ipcctl(aTHX_ a,b,c)
+#     define do_ipcget(a,b,c)                   Perl_do_ipcget(aTHX_ a,b,c)
+#     define do_msgrcv(a,b)                     Perl_do_msgrcv(aTHX_ a,b)
+#     define do_msgsnd(a,b)                     Perl_do_msgsnd(aTHX_ a,b)
+#     define do_semop(a,b)                      Perl_do_semop(aTHX_ a,b)
+#     define do_shmio(a,b,c)                    Perl_do_shmio(aTHX_ a,b,c)
+#   endif
+#   if defined(HAS_PIPE)
+#     define PerlProc_pipe_cloexec(a)           Perl_PerlProc_pipe_cloexec(aTHX_ a)
+#   endif
+#   if !defined(HAS_RENAME)
+#     define same_dirent(a,b)                   Perl_same_dirent(aTHX_ a,b)
+#   endif
+#   if defined(HAS_SOCKET)
+#     define PerlSock_accept_cloexec(a,b,c)     Perl_PerlSock_accept_cloexec(aTHX_ a,b,c)
+#     define PerlSock_socket_cloexec(a,b,c)     Perl_PerlSock_socket_cloexec(aTHX_ a,b,c)
+#   endif
+#   if   defined(HAS_SOCKETPAIR) ||                                     \
+       ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
+         defined(SOCK_DGRAM) )
+#     define PerlSock_socketpair_cloexec(a,b,c,d) Perl_PerlSock_socketpair_cloexec(aTHX_ a,b,c,d)
+#   endif
+#   if defined(_MSC_VER)
+#     define magic_regdatum_set(a,b)            Perl_magic_regdatum_set(aTHX_ a,b)
+#   else
+#     define magic_regdatum_set(a,b)            Perl_magic_regdatum_set(aTHX_ a,b)
+#   endif
+#   if !defined(MULTIPLICITY) || defined(PERL_CORE)
+#     define tied_method(a,b,c,d,e,...)         Perl_tied_method(aTHX_ a,b,c,d,e,__VA_ARGS__)
+#     if defined(PERL_IN_REGCOMP_C)
+#       define re_croak(a,...)                  S_re_croak(aTHX_ a,__VA_ARGS__)
+#     endif
+#   endif
+#   if defined(PERL_DEBUG_READONLY_COW)
+#     define sv_buf_to_ro(a)                    Perl_sv_buf_to_ro(aTHX_ a)
+#   endif
+#   if defined(PERL_DEBUG_READONLY_OPS)
+#     define Slab_to_ro(a)                      Perl_Slab_to_ro(aTHX_ a)
+#     define Slab_to_rw(a)                      Perl_Slab_to_rw(aTHX_ a)
+#   endif
+#   if !defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
+#     define do_exec(a)                         Perl_do_exec(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_AV_C)
+#     define get_aux_mg(a)                      S_get_aux_mg(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_DEB_C)
+#     define deb_stack_n(a,b,c,d,e)             S_deb_stack_n(aTHX_ a,b,c,d,e)
+#   endif
+#   if defined(PERL_IN_DOIO_C)
+#     define argvout_final(a,b,c)               S_argvout_final(aTHX_ a,b,c)
+#     define exec_failed(a,b,c)                 S_exec_failed(aTHX_ a,b,c)
+#     define ingroup(a,b)                       S_ingroup(aTHX_ a,b)
+#     define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
+#     define openn_setup(a,b,c,d,e,f)           S_openn_setup(aTHX_ a,b,c,d,e,f)
+#   endif
+#   if defined(PERL_IN_DOOP_C)
+#     define do_trans_complex(a,b)              S_do_trans_complex(aTHX_ a,b)
+#     define do_trans_count(a,b)                S_do_trans_count(aTHX_ a,b)
+#     define do_trans_count_invmap(a,b)         S_do_trans_count_invmap(aTHX_ a,b)
+#     define do_trans_invmap(a,b)               S_do_trans_invmap(aTHX_ a,b)
+#     define do_trans_simple(a,b)               S_do_trans_simple(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_DUMP_C)
+#     define deb_curcv(a)                       S_deb_curcv(aTHX_ a)
+#     define debprof(a)                         S_debprof(aTHX_ a)
+#     define pm_description(a)                  S_pm_description(aTHX_ a)
+#     define sequence_num(a)                    S_sequence_num(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \
+       defined(PERL_IN_PEEP_C)
+#     define ck_anoncode(a)                     Perl_ck_anoncode(aTHX_ a)
+#     define ck_backtick(a)                     Perl_ck_backtick(aTHX_ a)
+#     define ck_bitop(a)                        Perl_ck_bitop(aTHX_ a)
+#     define ck_cmp(a)                          Perl_ck_cmp(aTHX_ a)
+#     define ck_concat(a)                       Perl_ck_concat(aTHX_ a)
+#     define ck_defined(a)                      Perl_ck_defined(aTHX_ a)
+#     define ck_delete(a)                       Perl_ck_delete(aTHX_ a)
+#     define ck_each(a)                         Perl_ck_each(aTHX_ a)
+#     define ck_eof(a)                          Perl_ck_eof(aTHX_ a)
+#     define ck_eval(a)                         Perl_ck_eval(aTHX_ a)
+#     define ck_exec(a)                         Perl_ck_exec(aTHX_ a)
+#     define ck_exists(a)                       Perl_ck_exists(aTHX_ a)
+#     define ck_ftst(a)                         Perl_ck_ftst(aTHX_ a)
+#     define ck_fun(a)                          Perl_ck_fun(aTHX_ a)
+#     define ck_glob(a)                         Perl_ck_glob(aTHX_ a)
+#     define ck_grep(a)                         Perl_ck_grep(aTHX_ a)
+#     define ck_helemexistsor(a)                Perl_ck_helemexistsor(aTHX_ a)
+#     define ck_index(a)                        Perl_ck_index(aTHX_ a)
+#     define ck_isa(a)                          Perl_ck_isa(aTHX_ a)
+#     define ck_join(a)                         Perl_ck_join(aTHX_ a)
+#     define ck_length(a)                       Perl_ck_length(aTHX_ a)
+#     define ck_lfun(a)                         Perl_ck_lfun(aTHX_ a)
+#     define ck_listiob(a)                      Perl_ck_listiob(aTHX_ a)
+#     define ck_match(a)                        Perl_ck_match(aTHX_ a)
+#     define ck_method(a)                       Perl_ck_method(aTHX_ a)
+#     define ck_null(a)                         Perl_ck_null(aTHX_ a)
+#     define ck_open(a)                         Perl_ck_open(aTHX_ a)
+#     define ck_prototype(a)                    Perl_ck_prototype(aTHX_ a)
+#     define ck_readline(a)                     Perl_ck_readline(aTHX_ a)
+#     define ck_refassign(a)                    Perl_ck_refassign(aTHX_ a)
+#     define ck_repeat(a)                       Perl_ck_repeat(aTHX_ a)
+#     define ck_require(a)                      Perl_ck_require(aTHX_ a)
+#     define ck_return(a)                       Perl_ck_return(aTHX_ a)
+#     define ck_rfun(a)                         Perl_ck_rfun(aTHX_ a)
+#     define ck_rvconst(a)                      Perl_ck_rvconst(aTHX_ a)
+#     define ck_sassign(a)                      Perl_ck_sassign(aTHX_ a)
+#     define ck_select(a)                       Perl_ck_select(aTHX_ a)
+#     define ck_shift(a)                        Perl_ck_shift(aTHX_ a)
+#     define ck_smartmatch(a)                   Perl_ck_smartmatch(aTHX_ a)
+#     define ck_sort(a)                         Perl_ck_sort(aTHX_ a)
+#     define ck_spair(a)                        Perl_ck_spair(aTHX_ a)
+#     define ck_split(a)                        Perl_ck_split(aTHX_ a)
+#     define ck_stringify(a)                    Perl_ck_stringify(aTHX_ a)
+#     define ck_subr(a)                         Perl_ck_subr(aTHX_ a)
+#     define ck_substr(a)                       Perl_ck_substr(aTHX_ a)
+#     define ck_svconst(a)                      Perl_ck_svconst(aTHX_ a)
+#     define ck_tell(a)                         Perl_ck_tell(aTHX_ a)
+#     define ck_trunc(a)                        Perl_ck_trunc(aTHX_ a)
+#     define ck_trycatch(a)                     Perl_ck_trycatch(aTHX_ a)
+#   endif /* defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) ||
+             defined(PERL_IN_PEEP_C) */
+#   if defined(PERL_IN_GV_C)
+#     define find_default_stash(a,b,c,d,e,f)    S_find_default_stash(aTHX_ a,b,c,d,e,f)
+#     define gv_fetchmeth_internal(a,b,c,d,e,f) S_gv_fetchmeth_internal(aTHX_ a,b,c,d,e,f)
+#     define gv_init_svtype(a,b)                S_gv_init_svtype(aTHX_ a,b)
+#     define gv_is_in_main(a,b,c)               S_gv_is_in_main(aTHX_ a,b,c)
+#     define gv_magicalize(a,b,c,d,e)           S_gv_magicalize(aTHX_ a,b,c,d,e)
+#     define gv_magicalize_isa(a)               S_gv_magicalize_isa(aTHX_ a)
+#     define gv_stashpvn_internal(a,b,c)        S_gv_stashpvn_internal(aTHX_ a,b,c)
+#     define maybe_multimagic_gv(a,b,c)         S_maybe_multimagic_gv(aTHX_ a,b,c)
+#     define parse_gv_stash_name(a,b,c,d,e,f,g,h) S_parse_gv_stash_name(aTHX_ a,b,c,d,e,f,g,h)
+#     define require_tie_mod(a,b,c,d,e)         S_require_tie_mod(aTHX_ a,b,c,d,e)
+#   endif /* defined(PERL_IN_GV_C) */
+#   if defined(PERL_IN_HV_C)
+#     define clear_placeholders(a,b)            S_clear_placeholders(aTHX_ a,b)
+#     define hsplit(a,b,c)                      S_hsplit(aTHX_ a,b,c)
+#     define hv_auxinit(a)                      S_hv_auxinit(aTHX_ a)
+#     define hv_delete_common(a,b,c,d,e,f,g)    S_hv_delete_common(aTHX_ a,b,c,d,e,f,g)
+#     define hv_free_ent_ret(a)                 S_hv_free_ent_ret(aTHX_ a)
+#     define hv_free_entries(a)                 S_hv_free_entries(aTHX_ a)
+#     define hv_magic_check                     S_hv_magic_check
+#     define hv_notallowed(a,b,c,d)             S_hv_notallowed(aTHX_ a,b,c,d)
+#     define refcounted_he_value(a)             S_refcounted_he_value(aTHX_ a)
+#     define save_hek_flags                     S_save_hek_flags
+#     define share_hek_flags(a,b,c,d)           S_share_hek_flags(aTHX_ a,b,c,d)
+#     define unshare_hek_or_pvn(a,b,c,d)        S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
+#     if !defined(PURIFY)
+#       define new_he()                         S_new_he(aTHX)
+#     endif
+#   endif /* defined(PERL_IN_HV_C) */
+#   if defined(PERL_IN_LOCALE_C)
+#     define get_locale_string_utf8ness_i(a,b,c,d) S_get_locale_string_utf8ness_i(aTHX_ a,b,c,d)
+#     define is_locale_utf8(a)                  S_is_locale_utf8(aTHX_ a)
+#     if defined(HAS_LOCALECONV)
+#       define my_localeconv(a)                 S_my_localeconv(aTHX_ a)
+#       define populate_hash_from_localeconv(a,b,c,d,e) S_populate_hash_from_localeconv(aTHX_ a,b,c,d,e)
+#     endif
+#     if defined(USE_LOCALE)
+#       define get_category_index               S_get_category_index
+#       define get_category_index_nowarn        S_get_category_index_nowarn
+#       define mortalized_pv_copy(a)            S_mortalized_pv_copy(aTHX_ a)
+#       define new_LC_ALL(a,b)                  S_new_LC_ALL(aTHX_ a,b)
+#       define save_to_buffer                   S_save_to_buffer
+#       define setlocale_failure_panic_i(a,b,c,d,e) S_setlocale_failure_panic_i(aTHX_ a,b,c,d,e)
+#       define stdize_locale(a,b,c,d,e)         S_stdize_locale(aTHX_ a,b,c,d,e)
+#       if defined(DEBUGGING)
+#         define my_setlocale_debug_string_i(a,b,c,d) S_my_setlocale_debug_string_i(aTHX_ a,b,c,d)
+#       endif
+#       if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L)
+#         define my_langinfo_i(a,b,c,d,e,f)     S_my_langinfo_i(aTHX_ a,b,c,d,e,f)
+#       else
+#         define my_langinfo_i(a,b,c,d,e,f)     S_my_langinfo_i(aTHX_ a,b,c,d,e,f)
+#       endif
+#       if defined(USE_LOCALE_COLLATE)
+#         define new_collate(a,b)               S_new_collate(aTHX_ a,b)
+#         if defined(DEBUGGING)
+#           define print_collxfrm_input_and_return(a,b,c,d,e) S_print_collxfrm_input_and_return(aTHX_ a,b,c,d,e)
+#         endif
+#       endif
+#       if defined(USE_LOCALE_CTYPE)
+#         define is_codeset_name_UTF8           S_is_codeset_name_UTF8
+#         define new_ctype(a,b)                 S_new_ctype(aTHX_ a,b)
+#       endif
+#       if defined(USE_LOCALE_NUMERIC)
+#         define new_numeric(a,b)               S_new_numeric(aTHX_ a,b)
+#       endif
+#       if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
+#         define get_LC_ALL_display()           S_get_LC_ALL_display(aTHX)
+#       endif
+#       if defined(USE_POSIX_2008_LOCALE)
+#         define emulate_setlocale_i(a,b,c,d)   S_emulate_setlocale_i(aTHX_ a,b,c,d)
+#         define my_querylocale_i(a)            S_my_querylocale_i(aTHX_ a)
+#         define setlocale_from_aggregate_LC_ALL(a,b) S_setlocale_from_aggregate_LC_ALL(aTHX_ a,b)
+#         define use_curlocale_scratch()        S_use_curlocale_scratch(aTHX)
+#         if defined(USE_QUERYLOCALE)
+#           define calculate_LC_ALL(a)          S_calculate_LC_ALL(aTHX_ a)
+#         else
+#           define update_PL_curlocales_i(a,b,c) S_update_PL_curlocales_i(aTHX_ a,b,c)
+#         endif
+#       elif  defined(USE_LOCALE_THREADS) &&                  \
+             !defined(USE_THREAD_SAFE_LOCALE) &&              \
+             !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* &&
+             !defined(USE_POSIX_2008_LOCALE) */
+#         define less_dicey_setlocale_r(a,b)    S_less_dicey_setlocale_r(aTHX_ a,b)
+#         define less_dicey_void_setlocale_i(a,b,c) S_less_dicey_void_setlocale_i(aTHX_ a,b,c)
+#         if 0
+#           define less_dicey_bool_setlocale_r(a,b) S_less_dicey_bool_setlocale_r(aTHX_ a,b)
+#         endif
+#       endif
+#       if !(  defined(USE_POSIX_2008_LOCALE) && defined(USE_QUERYLOCALE) ) && \
+            ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) ||            \
+               defined(WIN32) )
+#         define calculate_LC_ALL(a)            S_calculate_LC_ALL(aTHX_ a)
+#       endif
+#       if defined(WIN32)
+#         define Win_byte_string_to_wstring     S_Win_byte_string_to_wstring
+#         define Win_wstring_to_byte_string     S_Win_wstring_to_byte_string
+#         define win32_setlocale(a,b)           S_win32_setlocale(aTHX_ a,b)
+#         define wrap_wsetlocale(a,b)           S_wrap_wsetlocale(aTHX_ a,b)
+#       endif
+#       if   defined(WIN32) || \
+           ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
+#         define find_locale_from_environment(a) S_find_locale_from_environment(aTHX_ a)
+#       endif
+#     endif /* defined(USE_LOCALE) */
+#     if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING)
+#       define get_displayable_string(a,b,c)    S_get_displayable_string(aTHX_ a,b,c)
+#     endif
+#   endif /* defined(PERL_IN_LOCALE_C) */
+#   if defined(PERL_IN_MALLOC_C)
+#     define adjust_size_and_find_bucket        S_adjust_size_and_find_bucket
+#   endif
+#   if defined(PERL_IN_MG_C)
+#     define fixup_errno_string(a)              S_fixup_errno_string(aTHX_ a)
+#     define magic_methcall1(a,b,c,d,e,f)       S_magic_methcall1(aTHX_ a,b,c,d,e,f)
+#     define magic_methpack(a,b,c)              S_magic_methpack(aTHX_ a,b,c)
+#     define restore_magic(a)                   S_restore_magic(aTHX_ a)
+#     define save_magic_flags(a,b,c)            S_save_magic_flags(aTHX_ a,b,c)
+#     define unwind_handler_stack(a)            S_unwind_handler_stack(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
+#     define translate_substr_offsets           Perl_translate_substr_offsets
+#   endif
+#   if defined(PERL_IN_MRO_C)
+#     define mro_clean_isarev(a,b,c,d,e,f)      S_mro_clean_isarev(aTHX_ a,b,c,d,e,f)
+#     define mro_gather_and_rename(a,b,c,d,e)   S_mro_gather_and_rename(aTHX_ a,b,c,d,e)
+#     define mro_get_linear_isa_dfs(a,b)        S_mro_get_linear_isa_dfs(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_NUMERIC_C)
+#     define output_non_portable(a)             S_output_non_portable(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_OP_C)
+#     define apply_attrs(a,b,c)                 S_apply_attrs(aTHX_ a,b,c)
+#     define apply_attrs_my(a,b,c,d)            S_apply_attrs_my(aTHX_ a,b,c,d)
+#     define assignment_type(a)                 S_assignment_type(aTHX_ a)
+#     define bad_type_gv(a,b,c,d)               S_bad_type_gv(aTHX_ a,b,c,d)
+#     define bad_type_pv(a,b,c,d)               S_bad_type_pv(aTHX_ a,b,c,d)
+#     define clear_special_blocks(a,b,c)        S_clear_special_blocks(aTHX_ a,b,c)
+#     define cop_free(a)                        S_cop_free(aTHX_ a)
+#     define dup_attrlist(a)                    S_dup_attrlist(aTHX_ a)
+#     define find_and_forget_pmops(a)           S_find_and_forget_pmops(aTHX_ a)
+#     define fold_constants(a)                  S_fold_constants(aTHX_ a)
+#     define force_list(a,b)                    S_force_list(aTHX_ a,b)
+#     define forget_pmop(a)                     S_forget_pmop(aTHX_ a)
+#     define gen_constant_list(a)               S_gen_constant_list(aTHX_ a)
+#     define inplace_aassign(a)                 S_inplace_aassign(aTHX_ a)
+#     define is_handle_constructor              S_is_handle_constructor
+#     define listkids(a)                        S_listkids(aTHX_ a)
+#     define looks_like_bool(a)                 S_looks_like_bool(aTHX_ a)
+#     define modkids(a,b)                       S_modkids(aTHX_ a,b)
+#     define move_proto_attr(a,b,c,d)           S_move_proto_attr(aTHX_ a,b,c,d)
+#     define my_kid(a,b,c)                      S_my_kid(aTHX_ a,b,c)
+#     define newGIVWHENOP(a,b,c,d,e)            S_newGIVWHENOP(aTHX_ a,b,c,d,e)
+#     define newMETHOP_internal(a,b,c,d)        S_newMETHOP_internal(aTHX_ a,b,c,d)
+#     define new_logop(a,b,c,d)                 S_new_logop(aTHX_ a,b,c,d)
+#     define no_fh_allowed(a)                   S_no_fh_allowed(aTHX_ a)
+#     define op_integerize(a)                   S_op_integerize(aTHX_ a)
+#     define op_std_init(a)                     S_op_std_init(aTHX_ a)
+#     define pmtrans(a,b,c)                     S_pmtrans(aTHX_ a,b,c)
+#     define process_special_blocks(a,b,c,d)    S_process_special_blocks(aTHX_ a,b,c,d)
+#     define ref_array_or_hash(a)               S_ref_array_or_hash(aTHX_ a)
+#     define refkids(a,b)                       S_refkids(aTHX_ a,b)
+#     define scalar_mod_type                    S_scalar_mod_type
+#     define scalarboolean(a)                   S_scalarboolean(aTHX_ a)
+#     define scalarkids(a)                      S_scalarkids(aTHX_ a)
+#     define search_const(a)                    S_search_const(aTHX_ a)
+#     define simplify_sort(a)                   S_simplify_sort(aTHX_ a)
+#     define too_few_arguments_pv(a,b,c)        S_too_few_arguments_pv(aTHX_ a,b,c)
+#     define too_many_arguments_pv(a,b,c)       S_too_many_arguments_pv(aTHX_ a,b,c)
+#     define voidnonfinal(a)                    S_voidnonfinal(aTHX_ a)
+#   endif /* defined(PERL_IN_OP_C) */
+#   if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
+#     define PadnameIN_SCOPE                    S_PadnameIN_SCOPE
+#   endif
+#   if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+#     define check_hash_fields_and_hekify(a,b,c) Perl_check_hash_fields_and_hekify(aTHX_ a,b,c)
+#     define no_bareword_allowed(a)             Perl_no_bareword_allowed(aTHX_ a)
+#     define op_prune_chain_head                Perl_op_prune_chain_head
+#     define op_varname(a)                      Perl_op_varname(aTHX_ a)
+#     define warn_elem_scalar_context(a,b,c,d)  Perl_warn_elem_scalar_context(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
+#     define report_redefined_cv(a,b,c)         Perl_report_redefined_cv(aTHX_ a,b,c)
+#     define varname(a,b,c,d,e,f)               Perl_varname(aTHX_ a,b,c,d,e,f)
+#   endif
+#   if defined(PERL_IN_PAD_C)
+#     define pad_alloc_name(a,b,c,d)            S_pad_alloc_name(aTHX_ a,b,c,d)
+#     define pad_check_dup(a,b,c)               S_pad_check_dup(aTHX_ a,b,c)
+#     define pad_findlex(a,b,c,d,e,f,g,h,i)     S_pad_findlex(aTHX_ a,b,c,d,e,f,g,h,i)
+#     define pad_reset()                        S_pad_reset(aTHX)
+#     if defined(DEBUGGING)
+#       define cv_dump(a,b)                     S_cv_dump(aTHX_ a,b)
+#     endif
+#   endif
+#   if defined(PERL_IN_PEEP_C)
+#     define finalize_op(a)                     S_finalize_op(aTHX_ a)
+#     define optimize_op(a)                     S_optimize_op(aTHX_ a)
+#     define traverse_op_tree(a,b)              S_traverse_op_tree(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_PERL_C)
+#     define find_beginning(a,b)                S_find_beginning(aTHX_ a,b)
+#     define forbid_setid(a,b)                  S_forbid_setid(aTHX_ a,b)
+#     define incpush(a,b,c)                     S_incpush(aTHX_ a,b,c)
+#     define incpush_use_sep(a,b,c)             S_incpush_use_sep(aTHX_ a,b,c)
+#     define init_ids()                         S_init_ids(aTHX)
+#     define init_interp()                      S_init_interp(aTHX)
+#     define init_main_stash()                  S_init_main_stash(aTHX)
+#     define init_perllib()                     S_init_perllib(aTHX)
+#     define init_postdump_symbols(a,b,c)       S_init_postdump_symbols(aTHX_ a,b,c)
+#     define init_predump_symbols()             S_init_predump_symbols(aTHX)
+#     define mayberelocate(a,b,c)               S_mayberelocate(aTHX_ a,b,c)
+#     define minus_v()                          S_minus_v(aTHX)
+#     define my_exit_jump()                     S_my_exit_jump(aTHX)
+#     define nuke_stacks()                      S_nuke_stacks(aTHX)
+#     define open_script(a,b,c)                 S_open_script(aTHX_ a,b,c)
+#     define parse_body(a,b)                    S_parse_body(aTHX_ a,b)
+#     define run_body(a)                        S_run_body(aTHX_ a)
+#     define usage()                            S_usage(aTHX)
+#     if !defined(PERL_IS_MINIPERL)
+#       define incpush_if_exists(a,b,c)         S_incpush_if_exists(aTHX_ a,b,c)
+#     endif
+#   endif /* defined(PERL_IN_PERL_C) */
+#   if defined(PERL_IN_PP_C)
+#     define do_chomp(a,b,c)                    S_do_chomp(aTHX_ a,b,c)
+#     define do_delete_local()                  S_do_delete_local(aTHX)
+#     define refto(a)                           S_refto(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+#     define lossless_NV_to_IV                  S_lossless_NV_to_IV
+#   endif
+#   if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
+#     define _to_upper_title_latin1(a,b,c,d)    Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_PP_CTL_C)
+#     define check_type_and_open(a)             S_check_type_and_open(aTHX_ a)
+#     define destroy_matcher(a)                 S_destroy_matcher(aTHX_ a)
+#     define do_smartmatch(a,b,c)               S_do_smartmatch(aTHX_ a,b,c)
+#     define docatch(a)                         S_docatch(aTHX_ a)
+#     define doeval_compile(a,b,c,d)            S_doeval_compile(aTHX_ a,b,c,d)
+#     define dofindlabel(a,b,c,d,e,f)           S_dofindlabel(aTHX_ a,b,c,d,e,f)
+#     define doparseform(a)                     S_doparseform(aTHX_ a)
+#     define dopoptoeval(a)                     S_dopoptoeval(aTHX_ a)
+#     define dopoptogivenfor(a)                 S_dopoptogivenfor(aTHX_ a)
+#     define dopoptolabel(a,b,c)                S_dopoptolabel(aTHX_ a,b,c)
+#     define dopoptoloop(a)                     S_dopoptoloop(aTHX_ a)
+#     define dopoptosub_at(a,b)                 S_dopoptosub_at(aTHX_ a,b)
+#     define dopoptowhen(a)                     S_dopoptowhen(aTHX_ a)
+#     define make_matcher(a)                    S_make_matcher(aTHX_ a)
+#     define matcher_matches_sv(a,b)            S_matcher_matches_sv(aTHX_ a,b)
+#     define num_overflow                       S_num_overflow
+#     define path_is_searchable                 S_path_is_searchable
+#     define run_user_filter(a,b,c)             S_run_user_filter(aTHX_ a,b,c)
+#     define rxres_free(a)                      S_rxres_free(aTHX_ a)
+#     define rxres_restore(a,b)                 S_rxres_restore(aTHX_ a,b)
+#     define save_lines(a,b)                    S_save_lines(aTHX_ a,b)
+#     if !defined(PERL_DISABLE_PMC)
+#       define doopen_pm(a)                     S_doopen_pm(aTHX_ a)
+#     endif
+#   endif /* defined(PERL_IN_PP_CTL_C) */
+#   if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
+#     define invoke_exception_hook(a,b)         Perl_invoke_exception_hook(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_PP_HOT_C)
+#     define do_oddball(a,b)                    S_do_oddball(aTHX_ a,b)
+#     define opmethod_stash(a)                  S_opmethod_stash(aTHX_ a)
+#     define should_we_output_Debug_r(a)        S_should_we_output_Debug_r(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_PP_PACK_C)
+#     define div128(a,b)                        S_div128(aTHX_ a,b)
+#     define first_symbol                       S_first_symbol
+#     define get_num(a,b)                       S_get_num(aTHX_ a,b)
+#     define group_end(a,b,c)                   S_group_end(aTHX_ a,b,c)
+#     define is_an_int(a,b)                     S_is_an_int(aTHX_ a,b)
+#     define measure_struct(a)                  S_measure_struct(aTHX_ a)
+#     define mul128(a,b)                        S_mul128(aTHX_ a,b)
+#     define my_bytes_to_utf8                   S_my_bytes_to_utf8
+#     define need_utf8                          S_need_utf8
+#     define next_symbol(a)                     S_next_symbol(aTHX_ a)
+#     define pack_rec(a,b,c,d)                  S_pack_rec(aTHX_ a,b,c,d)
+#     define sv_exp_grow(a,b)                   S_sv_exp_grow(aTHX_ a,b)
+#     define unpack_rec(a,b,c,d,e)              S_unpack_rec(aTHX_ a,b,c,d,e)
+#   endif /* defined(PERL_IN_PP_PACK_C) */
+#   if defined(PERL_IN_PP_SORT_C)
+#     define amagic_cmp(a,b)                    S_amagic_cmp(aTHX_ a,b)
+#     define amagic_cmp_desc(a,b)               S_amagic_cmp_desc(aTHX_ a,b)
+#     define amagic_i_ncmp(a,b)                 S_amagic_i_ncmp(aTHX_ a,b)
+#     define amagic_i_ncmp_desc(a,b)            S_amagic_i_ncmp_desc(aTHX_ a,b)
+#     define amagic_ncmp(a,b)                   S_amagic_ncmp(aTHX_ a,b)
+#     define amagic_ncmp_desc(a,b)              S_amagic_ncmp_desc(aTHX_ a,b)
+#     define cmp_desc(a,b)                      S_cmp_desc(aTHX_ a,b)
+#     define sortcv(a,b)                        S_sortcv(aTHX_ a,b)
+#     define sortcv_stacked(a,b)                S_sortcv_stacked(aTHX_ a,b)
+#     define sortcv_xsub(a,b)                   S_sortcv_xsub(aTHX_ a,b)
+#     define sortsv_flags_impl(a,b,c,d)         S_sortsv_flags_impl(aTHX_ a,b,c,d)
+#     define sv_i_ncmp(a,b)                     S_sv_i_ncmp(aTHX_ a,b)
+#     define sv_i_ncmp_desc(a,b)                S_sv_i_ncmp_desc(aTHX_ a,b)
+#     define sv_ncmp(a,b)                       S_sv_ncmp(aTHX_ a,b)
+#     define sv_ncmp_desc(a,b)                  S_sv_ncmp_desc(aTHX_ a,b)
+#     if defined(USE_LOCALE_COLLATE)
+#       define amagic_cmp_locale(a,b)           S_amagic_cmp_locale(aTHX_ a,b)
+#       define amagic_cmp_locale_desc(a,b)      S_amagic_cmp_locale_desc(aTHX_ a,b)
+#       define cmp_locale_desc(a,b)             S_cmp_locale_desc(aTHX_ a,b)
+#     endif
+#   endif /* defined(PERL_IN_PP_SORT_C) */
+#   if defined(PERL_IN_PP_SYS_C)
+#     define doform(a,b,c)                      S_doform(aTHX_ a,b,c)
+#     define space_join_names_mortal(a)         S_space_join_names_mortal(aTHX_ a)
+#     if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+#       define dooneliner(a,b)                  S_dooneliner(aTHX_ a,b)
+#     endif
+#   endif
+#   if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+#     define initialize_invlist_guts(a,b)       S_initialize_invlist_guts(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_SCOPE_C)
+#     define save_pushptri32ptr(a,b,c,d)        S_save_pushptri32ptr(aTHX_ a,b,c,d)
+#     define save_scalar_at(a,b)                S_save_scalar_at(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_TOKE_C)
+#     define ao(a)                              S_ao(aTHX_ a)
+#     define check_uni()                        S_check_uni(aTHX)
+#     define checkcomma(a,b,c)                  S_checkcomma(aTHX_ a,b,c)
+#     define filter_gets(a,b)                   S_filter_gets(aTHX_ a,b)
+#     define find_in_my_stash(a,b)              S_find_in_my_stash(aTHX_ a,b)
+#     define force_ident(a,b)                   S_force_ident(aTHX_ a,b)
+#     define force_ident_maybe_lex(a)           S_force_ident_maybe_lex(aTHX_ a)
+#     define force_next(a)                      S_force_next(aTHX_ a)
+#     define force_strict_version(a)            S_force_strict_version(aTHX_ a)
+#     define force_version(a,b)                 S_force_version(aTHX_ a,b)
+#     define force_word(a,b,c,d)                S_force_word(aTHX_ a,b,c,d)
+#     define get_and_check_backslash_N_name_wrapper(a,b) S_get_and_check_backslash_N_name_wrapper(aTHX_ a,b)
+#     define incline(a,b)                       S_incline(aTHX_ a,b)
+#     define intuit_method(a,b,c)               S_intuit_method(aTHX_ a,b,c)
+#     define intuit_more(a,b)                   S_intuit_more(aTHX_ a,b)
+#     define lop(a,b,c)                         S_lop(aTHX_ a,b,c)
+#     define missingterm(a,b)                   S_missingterm(aTHX_ a,b)
+#     define no_op(a,b)                         S_no_op(aTHX_ a,b)
+#     define parse_ident(a,b,c,d,e,f,g)         S_parse_ident(aTHX_ a,b,c,d,e,f,g)
+#     define pending_ident()                    S_pending_ident(aTHX)
+#     define scan_const(a)                      S_scan_const(aTHX_ a)
+#     define scan_formline(a)                   S_scan_formline(aTHX_ a)
+#     define scan_heredoc(a)                    S_scan_heredoc(aTHX_ a)
+#     define scan_ident(a,b,c,d)                S_scan_ident(aTHX_ a,b,c,d)
+#     define scan_inputsymbol(a)                S_scan_inputsymbol(aTHX_ a)
+#     define scan_pat(a,b)                      S_scan_pat(aTHX_ a,b)
+#     define scan_subst(a)                      S_scan_subst(aTHX_ a)
+#     define scan_trans(a)                      S_scan_trans(aTHX_ a)
+#     define sublex_done()                      S_sublex_done(aTHX)
+#     define sublex_push()                      S_sublex_push(aTHX)
+#     define sublex_start()                     S_sublex_start(aTHX)
+#     define swallow_bom(a)                     S_swallow_bom(aTHX_ a)
+#     define tokenize_use(a,b)                  S_tokenize_use(aTHX_ a,b)
+#     define tokeq(a)                           S_tokeq(aTHX_ a)
+#     define update_debugger_info(a,b,c)        S_update_debugger_info(aTHX_ a,b,c)
+#     define yywarn(a,b)                        S_yywarn(aTHX_ a,b)
+#     if defined(DEBUGGING)
+#       define printbuf(a,b)                    S_printbuf(aTHX_ a,b)
+#       define tokereport(a,b)                  S_tokereport(aTHX_ a,b)
+#     endif
+#     if defined(PERL_CR_FILTER)
+#       define cr_textfilter(a,b,c)             S_cr_textfilter(aTHX_ a,b,c)
+#       define strip_return(a)                  S_strip_return(aTHX_ a)
+#     endif
+#     if !defined(PERL_NO_UTF16_FILTER)
+#       define add_utf16_textfilter(a,b)        S_add_utf16_textfilter(aTHX_ a,b)
+#       define utf16_textfilter(a,b,c)          S_utf16_textfilter(aTHX_ a,b,c)
+#     endif
+#   endif /* defined(PERL_IN_TOKE_C) */
+#   if defined(PERL_IN_UNIVERSAL_C)
+#     define isa_lookup(a,b,c,d,e)              S_isa_lookup(aTHX_ a,b,c,d,e)
+#     define sv_derived_from_svpvn(a,b,c,d,e)   S_sv_derived_from_svpvn(aTHX_ a,b,c,d,e)
+#   endif
+#   if defined(PERL_IN_UTF8_C)
+#     define _to_utf8_case(a,b,c,d,e,f,g,h,i)   S__to_utf8_case(aTHX_ a,b,c,d,e,f,g,h,i)
+#     define check_locale_boundary_crossing(a,b,c,d) S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
+#     define does_utf8_overflow                 S_does_utf8_overflow
+#     define isFF_overlong                      S_isFF_overlong
+#     define is_utf8_common(a,b,c)              S_is_utf8_common(aTHX_ a,b,c)
+#     define is_utf8_overlong                   S_is_utf8_overlong
+#     define new_msg_hv(a,b,c)                  S_new_msg_hv(aTHX_ a,b,c)
+#     define to_case_cp_list(a,b,c,d,e,f,g,h)   S_to_case_cp_list(aTHX_ a,b,c,d,e,f,g,h)
+#     define to_lower_latin1                    S_to_lower_latin1
+#     define turkic_fc(a,b,c,d)                 S_turkic_fc(aTHX_ a,b,c,d)
+#     define turkic_lc(a,b,c,d)                 S_turkic_lc(aTHX_ a,b,c,d)
+#     define turkic_uc(a,b,c,d)                 S_turkic_uc(aTHX_ a,b,c,d)
+#     define unexpected_non_continuation_text(a,b,c,d) S_unexpected_non_continuation_text(aTHX_ a,b,c,d)
+#     if 0
+#       define warn_on_first_deprecated_use(a,b,c,d,e,f) S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e,f)
+#     endif
+#   endif /* defined(PERL_IN_UTF8_C) */
+#   if defined(PERL_IN_UTIL_C)
+#     define ckwarn_common(a)                   S_ckwarn_common(aTHX_ a)
+#     define mess_alloc()                       S_mess_alloc(aTHX)
+#     define ptr_hash                           S_ptr_hash
+#     define with_queued_errors(a)              S_with_queued_errors(aTHX_ a)
+#     if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+#       define mem_log_common                   S_mem_log_common
+#     endif
+#     if defined(PERL_USES_PL_PIDSTATUS)
+#       define pidgone(a,b)                     S_pidgone(aTHX_ a,b)
+#     endif
+#   endif /* defined(PERL_IN_UTIL_C) */
+#   if defined(PERL_USE_3ARG_SIGHANDLER)
+#     define sighandler                         Perl_sighandler
+#   else
+#     define sighandler                         Perl_sighandler
+#   endif
+#   if defined(USE_C_BACKTRACE)
+#     define get_c_backtrace(a,b)               Perl_get_c_backtrace(aTHX_ a,b)
+#   endif
+#   if defined(USE_ITHREADS)
+#     define mro_meta_dup(a,b)                  Perl_mro_meta_dup(aTHX_ a,b)
+#     define padlist_dup(a,b)                   Perl_padlist_dup(aTHX_ a,b)
+#     define padname_dup(a,b)                   Perl_padname_dup(aTHX_ a,b)
+#     define padnamelist_dup(a,b)               Perl_padnamelist_dup(aTHX_ a,b)
+#     if !defined(PERL_IMPLICIT_SYS)
+#       define PerlEnv_putenv(a)                S_PerlEnv_putenv(aTHX_ a)
+#     endif
+#     if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+#       define op_relocate_sv(a,b)              Perl_op_relocate_sv(aTHX_ a,b)
+#     endif
+#   endif /* defined(USE_ITHREADS) */
+#   if defined(USE_LOCALE_COLLATE)
+#     define magic_freecollxfrm(a,b)            Perl_magic_freecollxfrm(aTHX_ a,b)
+#     define magic_setcollxfrm(a,b)             Perl_magic_setcollxfrm(aTHX_ a,b)
+#   endif
+#   if defined(USE_PERLIO)
+#     define PerlIO_restore_errno(a)            Perl_PerlIO_restore_errno(aTHX_ a)
+#     define PerlIO_save_errno(a)               Perl_PerlIO_save_errno(aTHX_ a)
+#   endif
+#   if defined(USE_QUADMATH)
+#     define quadmath_format_needed             Perl_quadmath_format_needed
+#     define quadmath_format_valid              Perl_quadmath_format_valid
+#   endif
+#   if defined(WIN32)
+#     define get_win32_message_utf8ness(a)      Perl_get_win32_message_utf8ness(aTHX_ a)
+#   else
+#     define do_exec3(a,b,c)                    Perl_do_exec3(aTHX_ a,b,c)
+#   endif
+# endif /* defined(PERL_CORE) */
+# if defined(PERL_CORE) || defined(PERL_EXT)
+#   define _byte_dump_string(a,b,c)             Perl__byte_dump_string(aTHX_ a,b,c)
+#   define _inverse_folds(a,b,c)                Perl__inverse_folds(aTHX_ a,b,c)
+#   define append_utf8_from_native_byte         Perl_append_utf8_from_native_byte
+#   define av_reify(a)                          Perl_av_reify(aTHX_ a)
+#   define cntrl_to_mnemonic                    Perl_cntrl_to_mnemonic
+#   define current_re_engine()                  Perl_current_re_engine(aTHX)
+#   define cv_ckproto_len_flags(a,b,c,d,e)      Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
+#   define delimcpy_no_escape                   Perl_delimcpy_no_escape
+#   define do_uniprop_match                     Perl_do_uniprop_match
+#   define get_and_check_backslash_N_name(a,b,c,d) Perl_get_and_check_backslash_N_name(aTHX_ a,b,c,d)
+#   define get_deprecated_property_msg          Perl_get_deprecated_property_msg
+#   define get_prop_definition(a)               Perl_get_prop_definition(aTHX_ a)
+#   define get_prop_values                      Perl_get_prop_values
+#   define load_charnames(a,b,c,d)              Perl_load_charnames(aTHX_ a,b,c,d)
+#   define mbtowc_(a,b,c)                       Perl_mbtowc_(aTHX_ a,b,c)
+#   define mg_find_mglob(a)                     Perl_mg_find_mglob(aTHX_ a)
+#   define multiconcat_stringify(a)             Perl_multiconcat_stringify(aTHX_ a)
+#   define multideref_stringify(a,b)            Perl_multideref_stringify(aTHX_ a,b)
+#   define my_strftime8_temp(a,b,c,d,e,f,g,h,i,j,k) Perl_my_strftime8_temp(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
+#   define op_clear(a)                          Perl_op_clear(aTHX_ a)
+#   define qerror(a)                            Perl_qerror(aTHX_ a)
+#   define reg_named_buff(a,b,c,d)              Perl_reg_named_buff(aTHX_ a,b,c,d)
+#   define reg_named_buff_iter(a,b,c)           Perl_reg_named_buff_iter(aTHX_ a,b,c)
+#   define reg_numbered_buff_fetch(a,b,c)       Perl_reg_numbered_buff_fetch(aTHX_ a,b,c)
+#   define reg_numbered_buff_fetch_flags(a,b,c,d) Perl_reg_numbered_buff_fetch_flags(aTHX_ a,b,c,d)
+#   define reg_numbered_buff_length(a,b,c)      Perl_reg_numbered_buff_length(aTHX_ a,b,c)
+#   define reg_numbered_buff_store(a,b,c)       Perl_reg_numbered_buff_store(aTHX_ a,b,c)
+#   define reg_qr_package(a)                    Perl_reg_qr_package(aTHX_ a)
+#   define reg_temp_copy(a,b)                   Perl_reg_temp_copy(aTHX_ a,b)
+#   define report_uninit(a)                     Perl_report_uninit(aTHX_ a)
+#   define scan_str(a,b,c,d,e)                  Perl_scan_str(aTHX_ a,b,c,d,e)
+#   define scan_word(a,b,c,d,e)                 Perl_scan_word(aTHX_ a,b,c,d,e)
+#   define scan_word6(a,b,c,d,e,f)              Perl_scan_word6(aTHX_ a,b,c,d,e,f)
+#   define skipspace_flags(a,b)                 Perl_skipspace_flags(aTHX_ a,b)
+#   define sv_magicext_mglob(a)                 Perl_sv_magicext_mglob(aTHX_ a)
+#   define sv_only_taint_gmagic                 Perl_sv_only_taint_gmagic
+#   define utf16_to_utf8_base(a,b,c,d,e,f)      Perl_utf16_to_utf8_base(aTHX_ a,b,c,d,e,f)
+#   define utf8_to_utf16_base(a,b,c,d,e,f)      Perl_utf8_to_utf16_base(aTHX_ a,b,c,d,e,f)
+#   define validate_proto(a,b,c,d)              Perl_validate_proto(aTHX_ a,b,c,d)
+#   define vivify_defelem(a)                    Perl_vivify_defelem(aTHX_ a)
+#   define yylex()                              Perl_yylex(aTHX)
+#   define isSCRIPT_RUN(a,b,c)                  Perl_isSCRIPT_RUN(aTHX_ a,b,c)
+#   define is_utf8_non_invariant_string         Perl_is_utf8_non_invariant_string
+#   define sv_or_pv_pos_u2b(a,b,c,d)            S_sv_or_pv_pos_u2b(aTHX_ a,b,c,d)
+#   define variant_under_utf8_count             S_variant_under_utf8_count
+#   if !defined(HAS_MEMRCHR)
+#     define my_memrchr                         S_my_memrchr
+#   endif
+#   if defined(PERL_ANY_COW)
+#     define sv_setsv_cow(a,b)                  Perl_sv_setsv_cow(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
+       defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
+       defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
+       defined(PERL_IN_UTF8_C)
+#     define _invlist_contains_cp               S__invlist_contains_cp
+#     define _invlist_len                       S__invlist_len
+#     define _invlist_search                    Perl__invlist_search
+#     define get_invlist_offset_addr            S_get_invlist_offset_addr
+#     define invlist_array                      S_invlist_array
+#     define is_invlist                         S_is_invlist
+#   endif
+#   if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+       defined(PERL_IN_REGCOMP_ANY)
+#     define add_cp_to_invlist(a,b)             S_add_cp_to_invlist(aTHX_ a,b)
+#     define invlist_extend(a,b)                S_invlist_extend(aTHX_ a,b)
+#     define invlist_highest                    S_invlist_highest
+#     define invlist_set_len(a,b,c)             S_invlist_set_len(aTHX_ a,b,c)
+#   endif
+#   if defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) || \
+       defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
+#     define _add_range_to_invlist(a,b,c)       Perl__add_range_to_invlist(aTHX_ a,b,c)
+#     define _invlist_intersection_maybe_complement_2nd(a,b,c,d) Perl__invlist_intersection_maybe_complement_2nd(aTHX_ a,b,c,d)
+#     define _invlist_invert(a)                 Perl__invlist_invert(aTHX_ a)
+#     define _invlist_union_maybe_complement_2nd(a,b,c,d) Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
+#     define _new_invlist(a)                    Perl__new_invlist(aTHX_ a)
+#     define _setup_canned_invlist(a,b,c)       Perl__setup_canned_invlist(aTHX_ a,b,c)
+#   endif
+#   if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+       defined(PERL_IN_TOKE_C)
+#     define form_alien_digit_msg(a,b,c,d,e,f)  Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
+#     define grok_bslash_c(a,b,c,d)             Perl_grok_bslash_c(aTHX_ a,b,c,d)
+#     define grok_bslash_o(a,b,c,d,e,f,g,h)     Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
+#     define grok_bslash_x(a,b,c,d,e,f,g,h)     Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
+#   endif
+#   if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+       defined(PERL_IN_TOKE_C)   || defined(PERL_IN_UTF8_C)
+#     define form_cp_too_large_msg(a,b,c,d)     Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
+       defined(PERL_IN_REGCOMP_ANY)
+#     define _invlist_dump(a,b,c,d)             Perl__invlist_dump(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
+#     define gv_stashsvpvn_cached(a,b,c,d)      Perl_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+#     define get_invlist_iter_addr              S_get_invlist_iter_addr
+#     define invlist_iterfinish                 S_invlist_iterfinish
+#     define invlist_iterinit                   S_invlist_iterinit
+#     define invlist_iternext                   S_invlist_iternext
+#   endif
+#   if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
+       defined(PERL_IN_UTF8_C)
+#     define _invlistEQ(a,b,c)                  Perl__invlistEQ(aTHX_ a,b,c)
+#     define _new_invlist_C_array(a)            Perl__new_invlist_C_array(aTHX_ a)
+#   endif
+#   if defined(PERL_IN_PP_C)   || defined(PERL_IN_REGCOMP_ANY) || \
+       defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+#     define get_regex_charset_name             S_get_regex_charset_name
+#   endif
+#   if defined(PERL_IN_REGCOMP_ANY)
+#     define add_above_Latin1_folds(a,b,c)      Perl_add_above_Latin1_folds(aTHX_ a,b,c)
+#     define construct_ahocorasick_from_trie(a,b,c) Perl_construct_ahocorasick_from_trie(aTHX_ a,b,c)
+#     define get_ANYOFHbbm_contents(a)          Perl_get_ANYOFHbbm_contents(aTHX_ a)
+#     define get_ANYOFM_contents(a)             Perl_get_ANYOFM_contents(aTHX_ a)
+#     define invlist_contents(a,b)              S_invlist_contents(aTHX_ a,b)
+#     define invlist_highest_range_start        S_invlist_highest_range_start
+#     define invlist_is_iterating               S_invlist_is_iterating
+#     define invlist_lowest                     S_invlist_lowest
+#     define is_ssc_worth_it                    Perl_is_ssc_worth_it
+#     define join_exact(a,b,c,d,e,f,g)          Perl_join_exact(aTHX_ a,b,c,d,e,f,g)
+#     define make_trie(a,b,c,d,e,f,g,h)         Perl_make_trie(aTHX_ a,b,c,d,e,f,g,h)
+#     define populate_anyof_bitmap_from_invlist(a,b) Perl_populate_anyof_bitmap_from_invlist(aTHX_ a,b)
+#     define reg_add_data                       Perl_reg_add_data
+#     define scan_commit(a,b,c,d)               Perl_scan_commit(aTHX_ a,b,c,d)
+#     define set_ANYOF_arg(a,b,c,d,e)           Perl_set_ANYOF_arg(aTHX_ a,b,c,d,e)
+#     define ssc_finalize(a,b)                  Perl_ssc_finalize(aTHX_ a,b)
+#     define ssc_init(a,b)                      Perl_ssc_init(aTHX_ a,b)
+#     define study_chunk(a,b,c,d,e,f,g,h,i,j,k,l) Perl_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l)
+#     if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING)
+#       define dump_trie(a,b,c,d)               S_dump_trie(aTHX_ a,b,c,d)
+#       define dump_trie_interim_list(a,b,c,d,e) S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
+#       define dump_trie_interim_table(a,b,c,d,e) S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
+#     endif
+#   endif /* defined(PERL_IN_REGCOMP_ANY) */
+#   if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
+#     define invlist_clone(a,b)                 Perl_invlist_clone(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_REGCOMP_C)
+#     define add_multi_match(a,b,c)             S_add_multi_match(aTHX_ a,b,c)
+#     define change_engine_size(a,b)            S_change_engine_size(aTHX_ a,b)
+#     define compile_wildcard(a,b,c)            S_compile_wildcard(aTHX_ a,b,c)
+#     define compute_EXACTish                   S_compute_EXACTish
+#     define edit_distance                      S_edit_distance
+#     define execute_wildcard(a,b,c,d,e,f,g)    S_execute_wildcard(aTHX_ a,b,c,d,e,f,g)
+#     define find_first_differing_byte_pos      S_find_first_differing_byte_pos
+#     define get_quantifier_value(a,b,c)        S_get_quantifier_value(aTHX_ a,b,c)
+#     define grok_bslash_N(a,b,c,d,e,f,g)       S_grok_bslash_N(aTHX_ a,b,c,d,e,f,g)
+#     define handle_named_backref(a,b,c,d)      S_handle_named_backref(aTHX_ a,b,c,d)
+#     define handle_names_wildcard(a,b,c,d)     S_handle_names_wildcard(aTHX_ a,b,c,d)
+#     define handle_possible_posix(a,b,c,d,e)   S_handle_possible_posix(aTHX_ a,b,c,d,e)
+#     define handle_regex_sets(a,b,c,d)         S_handle_regex_sets(aTHX_ a,b,c,d)
+#     define handle_user_defined_property(a,b,c,d,e,f,g,h,i,j) S_handle_user_defined_property(aTHX_ a,b,c,d,e,f,g,h,i,j)
+#     define nextchar(a)                        S_nextchar(aTHX_ a)
+#     define optimize_regclass(a,b,c,d,e,f,g,h,i,j) S_optimize_regclass(aTHX_ a,b,c,d,e,f,g,h,i,j)
+#     define output_posix_warnings(a,b)         S_output_posix_warnings(aTHX_ a,b)
+#     define parse_lparen_question_flags(a)     S_parse_lparen_question_flags(aTHX_ a)
+#     define parse_uniprop_string(a,b,c,d,e,f,g,h,i,j) S_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i,j)
+#     define reg(a,b,c,d)                       S_reg(aTHX_ a,b,c,d)
+#     define reg1node(a,b,c)                    S_reg1node(aTHX_ a,b,c)
+#     define reg2node(a,b,c,d)                  S_reg2node(aTHX_ a,b,c,d)
+#     define reg_la_NOTHING(a,b,c)              S_reg_la_NOTHING(aTHX_ a,b,c)
+#     define reg_la_OPFAIL(a,b,c)               S_reg_la_OPFAIL(aTHX_ a,b,c)
+#     define reg_node(a,b)                      S_reg_node(aTHX_ a,b)
+#     define reg_scan_name(a,b)                 S_reg_scan_name(aTHX_ a,b)
+#     define reg_skipcomment                    S_reg_skipcomment
+#     define regatom(a,b,c)                     S_regatom(aTHX_ a,b,c)
+#     define regbranch(a,b,c,d)                 S_regbranch(aTHX_ a,b,c,d)
+#     define regclass(a,b,c,d,e,f,g,h,i)        S_regclass(aTHX_ a,b,c,d,e,f,g,h,i)
+#     define regex_set_precedence               S_regex_set_precedence
+#     define reginsert(a,b,c,d)                 S_reginsert(aTHX_ a,b,c,d)
+#     define regnode_guts(a,b)                  S_regnode_guts(aTHX_ a,b)
+#     define regpiece(a,b,c)                    S_regpiece(aTHX_ a,b,c)
+#     define regpnode(a,b,c)                    S_regpnode(aTHX_ a,b,c)
+#     define regtail(a,b,c,d)                   S_regtail(aTHX_ a,b,c,d)
+#     define set_regex_pv(a,b)                  S_set_regex_pv(aTHX_ a,b)
+#     define skip_to_be_ignored_text(a,b,c)     S_skip_to_be_ignored_text(aTHX_ a,b,c)
+#     if defined(DEBUGGING)
+#       define regnode_guts_debug(a,b,c)        S_regnode_guts_debug(aTHX_ a,b,c)
+#       define regtail_study(a,b,c,d)           S_regtail_study(aTHX_ a,b,c,d)
+#       if defined(ENABLE_REGEX_SETS_DEBUGGING)
+#         define dump_regex_sets_structures(a,b,c,d) S_dump_regex_sets_structures(aTHX_ a,b,c,d)
+#       endif
+#     endif
+#   endif /* defined(PERL_IN_REGCOMP_C) */
+#   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
+#     define populate_bitmap_from_invlist(a,b,c,d) Perl_populate_bitmap_from_invlist(aTHX_ a,b,c,d)
+#     define populate_invlist_from_bitmap(a,b,c,d) Perl_populate_invlist_from_bitmap(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+       defined(PERL_IN_TOKE_C)
+#     define is_grapheme(a,b,c,d)               Perl_is_grapheme(aTHX_ a,b,c,d)
+#   endif
+#   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+       defined(PERL_IN_UTF8_C)
+#     define _to_fold_latin1                    Perl__to_fold_latin1
+#   endif
+#   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
+#     define regcurly                           Perl_regcurly
+#   endif
+#   if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
+#     define put_charclass_bitmap_innards(a,b,c,d,e,f,g) S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e,f,g)
+#     define put_charclass_bitmap_innards_common(a,b,c,d,e,f) S_put_charclass_bitmap_innards_common(aTHX_ a,b,c,d,e,f)
+#     define put_charclass_bitmap_innards_invlist(a,b) S_put_charclass_bitmap_innards_invlist(aTHX_ a,b)
+#     define put_code_point(a,b)                S_put_code_point(aTHX_ a,b)
+#     define put_range(a,b,c,d)                 S_put_range(aTHX_ a,b,c,d)
+#     define regdump_extflags(a,b)              S_regdump_extflags(aTHX_ a,b)
+#     define regdump_intflags(a,b)              S_regdump_intflags(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+#     define _append_range_to_invlist(a,b,c)    S__append_range_to_invlist(aTHX_ a,b,c)
+#     define _invlist_array_init                S__invlist_array_init
+#     define get_invlist_previous_index_addr    S_get_invlist_previous_index_addr
+#     define invlist_clear(a)                   S_invlist_clear(aTHX_ a)
+#     define invlist_max                        S_invlist_max
+#     define invlist_previous_index             S_invlist_previous_index
+#     define invlist_replace_list_destroys_src(a,b) S_invlist_replace_list_destroys_src(aTHX_ a,b)
+#     define invlist_set_previous_index         S_invlist_set_previous_index
+#     define invlist_trim                       S_invlist_trim
+#   endif /*  defined(PERL_IN_REGCOMP_INVLIST_C) &&
+             !defined(PERL_EXT_RE_BUILD) */
+#   if defined(PERL_IN_REGCOMP_STUDY_C)
+#     define get_ANYOF_cp_list_for_ssc(a,b)     S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
+#     define make_exactf_invlist(a,b)           S_make_exactf_invlist(aTHX_ a,b)
+#     define rck_elide_nothing(a)               S_rck_elide_nothing(aTHX_ a)
+#     define ssc_add_range(a,b,c)               S_ssc_add_range(aTHX_ a,b,c)
+#     define ssc_and(a,b,c)                     S_ssc_and(aTHX_ a,b,c)
+#     define ssc_anything(a)                    S_ssc_anything(aTHX_ a)
+#     define ssc_clear_locale                   S_ssc_clear_locale
+#     define ssc_cp_and(a,b)                    S_ssc_cp_and(aTHX_ a,b)
+#     define ssc_intersection(a,b,c)            S_ssc_intersection(aTHX_ a,b,c)
+#     define ssc_is_anything                    S_ssc_is_anything
+#     define ssc_is_cp_posixl_init              S_ssc_is_cp_posixl_init
+#     define ssc_or(a,b,c)                      S_ssc_or(aTHX_ a,b,c)
+#     define ssc_union(a,b,c)                   S_ssc_union(aTHX_ a,b,c)
+#     define unwind_scan_frames(a)              S_unwind_scan_frames(aTHX_ a)
+#   endif /* defined(PERL_IN_REGCOMP_STUDY_C) */
+#   if defined(PERL_IN_REGEXEC_C)
+#     define advance_one_LB(a,b,c)              S_advance_one_LB(aTHX_ a,b,c)
+#     define advance_one_SB(a,b,c)              S_advance_one_SB(aTHX_ a,b,c)
+#     define advance_one_WB(a,b,c,d)            S_advance_one_WB(aTHX_ a,b,c,d)
+#     define backup_one_GCB(a,b,c)              S_backup_one_GCB(aTHX_ a,b,c)
+#     define backup_one_LB(a,b,c)               S_backup_one_LB(aTHX_ a,b,c)
+#     define backup_one_SB(a,b,c)               S_backup_one_SB(aTHX_ a,b,c)
+#     define backup_one_WB(a,b,c,d)             S_backup_one_WB(aTHX_ a,b,c,d)
+#     define capture_clear(a,b,c,d)             S_capture_clear(aTHX_ a,b,c,d comma_aDEPTH)
+#     define find_byclass(a,b,c,d,e)            S_find_byclass(aTHX_ a,b,c,d,e)
+#     define find_next_masked                   S_find_next_masked
+#     define find_span_end                      S_find_span_end
+#     define find_span_end_mask                 S_find_span_end_mask
+#     define foldEQ_latin1_s2_folded(a,b,c)     S_foldEQ_latin1_s2_folded(aTHX_ a,b,c)
+#     define isFOO_lc(a,b)                      S_isFOO_lc(aTHX_ a,b)
+#     define isFOO_utf8_lc(a,b,c)               S_isFOO_utf8_lc(aTHX_ a,b,c)
+#     define isGCB(a,b,c,d,e)                   S_isGCB(aTHX_ a,b,c,d,e)
+#     define isLB(a,b,c,d,e,f)                  S_isLB(aTHX_ a,b,c,d,e,f)
+#     define isSB(a,b,c,d,e,f)                  S_isSB(aTHX_ a,b,c,d,e,f)
+#     define isWB(a,b,c,d,e,f,g)                S_isWB(aTHX_ a,b,c,d,e,f,g)
+#     define reg_check_named_buff_matched       S_reg_check_named_buff_matched
+#     define regcp_restore(a,b,c)               S_regcp_restore(aTHX_ a,b,c comma_aDEPTH)
+#     define regcppop(a,b)                      S_regcppop(aTHX_ a,b comma_aDEPTH)
+#     define regcppush(a,b,c)                   S_regcppush(aTHX_ a,b,c comma_aDEPTH)
+#     define reghop3                            S_reghop3
+#     define reghop4                            S_reghop4
+#     define reghopmaybe3                       S_reghopmaybe3
+#     define reginclass(a,b,c,d,e)              S_reginclass(aTHX_ a,b,c,d,e)
+#     define regmatch(a,b,c)                    S_regmatch(aTHX_ a,b,c)
+#     define regrepeat(a,b,c,d,e,f)             S_regrepeat(aTHX_ a,b,c,d,e,f comma_aDEPTH)
+#     define regtry(a,b)                        S_regtry(aTHX_ a,b)
+#     define to_byte_substr(a)                  S_to_byte_substr(aTHX_ a)
+#     define to_utf8_substr(a)                  S_to_utf8_substr(aTHX_ a)
+#     define unwind_paren(a,b,c)                S_unwind_paren(aTHX_ a,b,c comma_aDEPTH)
+#     if defined(DEBUGGING)
+#       define debug_start_match(a,b,c,d,e)     S_debug_start_match(aTHX_ a,b,c,d,e)
+#       define dump_exec_pos(a,b,c,d,e,f,g)     S_dump_exec_pos(aTHX_ a,b,c,d,e,f,g)
+#       if !defined(MULTIPLICITY) || defined(PERL_CORE)
+#         define re_exec_indentf(a,...)         Perl_re_exec_indentf(aTHX_ a,__VA_ARGS__)
+#       endif
+#     endif
+#   endif /* defined(PERL_IN_REGEXEC_C) */
+# endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+# if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
+#   define finalize_optree(a)                   Perl_finalize_optree(aTHX_ a)
+#   define optimize_optree(a)                   Perl_optimize_optree(aTHX_ a)
+# endif
+# if !defined(PERL_IMPLICIT_SYS)
+#   define my_pclose(a)                         Perl_my_pclose(aTHX_ a)
+#   define my_popen(a,b)                        Perl_my_popen(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    || \
+     defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) || \
+     defined(PERL_IN_TOKE_C)
+#   define class_add_ADJUST(a,b)                Perl_class_add_ADJUST(aTHX_ a,b)
+#   define class_add_field(a,b)                 Perl_class_add_field(aTHX_ a,b)
+#   define class_apply_attributes(a,b)          Perl_class_apply_attributes(aTHX_ a,b)
+#   define class_apply_field_attributes(a,b)    Perl_class_apply_field_attributes(aTHX_ a,b)
+#   define class_prepare_initfield_parse()      Perl_class_prepare_initfield_parse(aTHX)
+#   define class_prepare_method_parse(a)        Perl_class_prepare_method_parse(aTHX_ a)
+#   define class_seal_stash(a)                  Perl_class_seal_stash(aTHX_ a)
+#   define class_set_field_defop(a,b,c)         Perl_class_set_field_defop(aTHX_ a,b,c)
+#   define class_setup_stash(a)                 Perl_class_setup_stash(aTHX_ a)
+#   define class_wrap_method_body(a)            Perl_class_wrap_method_body(aTHX_ a)
+#   define croak_kw_unless_class(a)             Perl_croak_kw_unless_class(aTHX_ a)
+# endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    ||
+           defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) ||
+           defined(PERL_IN_TOKE_C) */
+# if defined(PERL_IN_REGEX_ENGINE)
+#   define check_regnode_after(a,b)             Perl_check_regnode_after(aTHX_ a,b)
+#   define regnext(a)                           Perl_regnext(aTHX_ a)
+#   define regnode_after(a,b)                   Perl_regnode_after(aTHX_ a,b)
+#   if defined(DEBUGGING)
+#     if ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
+         (  defined(PERL_CORE)    || defined(PERL_EXT) )
+#       define re_indentf(a,...)                Perl_re_indentf(aTHX_ a,__VA_ARGS__)
+#       define re_printf(...)                   Perl_re_printf(aTHX_ __VA_ARGS__)
+#     endif
+#     if defined(PERL_CORE) || defined(PERL_EXT)
+#       define debug_peep(a,b,c,d,e)            Perl_debug_peep(aTHX_ a,b,c,d,e)
+#       define debug_show_study_flags(a,b,c)    Perl_debug_show_study_flags(aTHX_ a,b,c)
+#       define debug_studydata(a,b,c,d,e,f,g)   Perl_debug_studydata(aTHX_ a,b,c,d,e,f,g)
+#       define dumpuntil(a,b,c,d,e,f,g,h)       Perl_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
+#       define regprop(a,b,c,d,e)               Perl_regprop(aTHX_ a,b,c,d,e)
+#     endif
+#   endif /* defined(DEBUGGING) */
+#   if defined(PERL_EXT_RE_BUILD)
+#     if defined(PERL_CORE) || defined(PERL_EXT)
+#       define get_re_gclass_aux_data(a,b,c,d,e,f) Perl_get_re_gclass_aux_data(aTHX_ a,b,c,d,e,f)
+#     endif
+#   elif defined(PERL_CORE) || defined(PERL_EXT)
+#     define get_regclass_aux_data(a,b,c,d,e,f) Perl_get_regclass_aux_data(aTHX_ a,b,c,d,e,f)
+#   endif
+# endif /* defined(PERL_IN_REGEX_ENGINE) */
+# if defined(PERL_IN_SV_C)
+#   define more_sv()                            Perl_more_sv(aTHX)
+#   if defined(PERL_CORE)
+#     define F0convert                          S_F0convert
+#     define anonymise_cv_maybe(a,b)            S_anonymise_cv_maybe(aTHX_ a,b)
+#     define assert_uft8_cache_coherent(a,b,c,d) S_assert_uft8_cache_coherent(aTHX_ a,b,c,d)
+#     define curse(a,b)                         S_curse(aTHX_ a,b)
+#     define expect_number(a)                   S_expect_number(aTHX_ a)
+#     define find_array_subscript(a,b)          S_find_array_subscript(aTHX_ a,b)
+#     define find_hash_subscript(a,b)           S_find_hash_subscript(aTHX_ a,b)
+#     define find_uninit_var(a,b,c,d)           S_find_uninit_var(aTHX_ a,b,c,d)
+#     define glob_2number(a)                    S_glob_2number(aTHX_ a)
+#     define glob_assign_glob(a,b,c)            S_glob_assign_glob(aTHX_ a,b,c)
+#     define not_a_number(a)                    S_not_a_number(aTHX_ a)
+#     define not_incrementable(a)               S_not_incrementable(aTHX_ a)
+#     define ptr_table_find                     S_ptr_table_find
+#     define sv_2iuv_common(a)                  S_sv_2iuv_common(aTHX_ a)
+#     define sv_add_arena(a,b,c)                S_sv_add_arena(aTHX_ a,b,c)
+#     define sv_display(a,b,c)                  S_sv_display(aTHX_ a,b,c)
+#     define sv_pos_b2u_midway(a,b,c,d)         S_sv_pos_b2u_midway(aTHX_ a,b,c,d)
+#     define sv_pos_u2b_cached(a,b,c,d,e,f,g)   S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g)
+#     define sv_pos_u2b_forwards                S_sv_pos_u2b_forwards
+#     define sv_pos_u2b_midway                  S_sv_pos_u2b_midway
+#     define sv_unglob(a,b)                     S_sv_unglob(aTHX_ a,b)
+#     define uiv_2buf                           S_uiv_2buf
+#     define utf8_mg_len_cache_update(a,b,c)    S_utf8_mg_len_cache_update(aTHX_ a,b,c)
+#     define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e)
+#     define visit(a,b,c)                       S_visit(aTHX_ a,b,c)
+#     if defined(DEBUGGING)
+#       define del_sv(a)                        S_del_sv(aTHX_ a)
+#     endif
+#     if !defined(NV_PRESERVES_UV)
+#       if defined(DEBUGGING)
+#         define sv_2iuv_non_preserve(a,b)      S_sv_2iuv_non_preserve(aTHX_ a,b)
+#       else
+#         define sv_2iuv_non_preserve(a)        S_sv_2iuv_non_preserve(aTHX_ a)
+#       endif
+#     endif
+#     if defined(PERL_DEBUG_READONLY_COW)
+#       define sv_buf_to_rw(a)                  S_sv_buf_to_rw(aTHX_ a)
+#     endif
+#     if defined(USE_ITHREADS)
+#       define sv_dup_common(a,b)               S_sv_dup_common(aTHX_ a,b)
+#       define sv_dup_hvaux(a,b,c)              S_sv_dup_hvaux(aTHX_ a,b,c)
+#       define sv_dup_inc_multiple(a,b,c,d)     S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
+#       define unreferenced_to_tmp_stack(a)     S_unreferenced_to_tmp_stack(aTHX_ a)
+#     endif
+#   endif /* defined(PERL_CORE) */
+# endif /* defined(PERL_IN_SV_C) */
+# if defined(PERL_MEM_LOG)
+#   define mem_log_alloc                        Perl_mem_log_alloc
+#   define mem_log_del_sv                       Perl_mem_log_del_sv
+#   define mem_log_free                         Perl_mem_log_free
+#   define mem_log_new_sv                       Perl_mem_log_new_sv
+#   define mem_log_realloc                      Perl_mem_log_realloc
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+#   define cx_popblock(a)                       Perl_cx_popblock(aTHX_ a)
+#   define cx_popeval(a)                        Perl_cx_popeval(aTHX_ a)
+#   define cx_popformat(a)                      Perl_cx_popformat(aTHX_ a)
+#   define cx_popgiven(a)                       Perl_cx_popgiven(aTHX_ a)
+#   define cx_poploop(a)                        Perl_cx_poploop(aTHX_ a)
+#   define cx_popsub(a)                         Perl_cx_popsub(aTHX_ a)
+#   define cx_popsub_args(a)                    Perl_cx_popsub_args(aTHX_ a)
+#   define cx_popsub_common(a)                  Perl_cx_popsub_common(aTHX_ a)
+#   define cx_popwhen(a)                        Perl_cx_popwhen(aTHX_ a)
+#   define cx_pushblock(a,b,c,d)                Perl_cx_pushblock(aTHX_ a,b,c,d)
+#   define cx_pusheval(a,b,c)                   Perl_cx_pusheval(aTHX_ a,b,c)
+#   define cx_pushformat(a,b,c,d)               Perl_cx_pushformat(aTHX_ a,b,c,d)
+#   define cx_pushgiven(a,b)                    Perl_cx_pushgiven(aTHX_ a,b)
+#   define cx_pushloop_for(a,b,c)               Perl_cx_pushloop_for(aTHX_ a,b,c)
+#   define cx_pushloop_plain(a)                 Perl_cx_pushloop_plain(aTHX_ a)
+#   define cx_pushsub(a,b,c,d)                  Perl_cx_pushsub(aTHX_ a,b,c,d)
+#   define cx_pushtry(a,b)                      Perl_cx_pushtry(aTHX_ a,b)
+#   define cx_pushwhen(a)                       Perl_cx_pushwhen(aTHX_ a)
+#   define cx_topblock(a)                       Perl_cx_topblock(aTHX_ a)
+#   define gimme_V()                            Perl_gimme_V(aTHX)
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+# if defined(PERL_USE_3ARG_SIGHANDLER)
+#   define csighandler                          Perl_csighandler
+# else
+#   define csighandler                          Perl_csighandler
+# endif
+# if defined(U64TYPE)
+#   define lsbit_pos64                          Perl_lsbit_pos64
+#   define msbit_pos64                          Perl_msbit_pos64
+#   define single_1bit_pos64                    Perl_single_1bit_pos64
+# endif
+# if defined(UNLINK_ALL_VERSIONS)
+#   define unlnk(a)                             Perl_unlnk(aTHX_ a)
+# endif
+# if defined(USE_C_BACKTRACE)
+#   define dump_c_backtrace(a,b,c)              Perl_dump_c_backtrace(aTHX_ a,b,c)
+#   define get_c_backtrace_dump(a,b)            Perl_get_c_backtrace_dump(aTHX_ a,b)
+# endif
+# if defined(USE_ITHREADS)
+#   define alloccopstash(a)                     Perl_alloccopstash(aTHX_ a)
+#   define any_dup(a,b)                         Perl_any_dup(aTHX_ a,b)
+#   define cop_file_avn(a)                      Perl_cop_file_avn(aTHX_ a)
+#   define cx_dup(a,b,c,d)                      Perl_cx_dup(aTHX_ a,b,c,d)
+#   define dirp_dup(a,b)                        Perl_dirp_dup(aTHX_ a,b)
+#   define fp_dup(a,b,c)                        Perl_fp_dup(aTHX_ a,b,c)
+#   define gp_dup(a,b)                          Perl_gp_dup(aTHX_ a,b)
+#   define he_dup(a,b,c)                        Perl_he_dup(aTHX_ a,b,c)
+#   define hek_dup(a,b)                         Perl_hek_dup(aTHX_ a,b)
+#   define mg_dup(a,b)                          Perl_mg_dup(aTHX_ a,b)
+#   define newPADOP(a,b,c)                      Perl_newPADOP(aTHX_ a,b,c)
+#   define parser_dup(a,b)                      Perl_parser_dup(aTHX_ a,b)
+#   define re_dup_guts(a,b,c)                   Perl_re_dup_guts(aTHX_ a,b,c)
+#   define regdupe_internal(a,b)                Perl_regdupe_internal(aTHX_ a,b)
+#   define rvpv_dup(a,b,c)                      Perl_rvpv_dup(aTHX_ a,b,c)
+#   define si_dup(a,b)                          Perl_si_dup(aTHX_ a,b)
+#   define ss_dup(a,b)                          Perl_ss_dup(aTHX_ a,b)
+#   define sv_dup(a,b)                          Perl_sv_dup(aTHX_ a,b)
+#   define sv_dup_inc(a,b)                      Perl_sv_dup_inc(aTHX_ a,b)
+# endif /* defined(USE_ITHREADS) */
+# if defined(USE_LOCALE_COLLATE)
+#   define sv_collxfrm_flags(a,b,c)             Perl_sv_collxfrm_flags(aTHX_ a,b,c)
+#   if ( defined(PERL_CORE)        || defined(PERL_EXT) ) &&        \
+       ( defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
+         defined(PERL_IN_SV_C) )
+#     define mem_collxfrm_(a,b,c,d)             Perl_mem_collxfrm_(aTHX_ a,b,c,d)
+#   endif
+# endif
+# if defined(USE_PERLIO)
+#   define PerlIO_clearerr(a)                   Perl_PerlIO_clearerr(aTHX_ a)
+#   define PerlIO_close(a)                      Perl_PerlIO_close(aTHX_ a)
+#   define PerlIO_eof(a)                        Perl_PerlIO_eof(aTHX_ a)
+#   define PerlIO_error(a)                      Perl_PerlIO_error(aTHX_ a)
+#   define PerlIO_fileno(a)                     Perl_PerlIO_fileno(aTHX_ a)
+#   define PerlIO_fill(a)                       Perl_PerlIO_fill(aTHX_ a)
+#   define PerlIO_flush(a)                      Perl_PerlIO_flush(aTHX_ a)
+#   define PerlIO_get_base(a)                   Perl_PerlIO_get_base(aTHX_ a)
+#   define PerlIO_get_bufsiz(a)                 Perl_PerlIO_get_bufsiz(aTHX_ a)
+#   define PerlIO_get_cnt(a)                    Perl_PerlIO_get_cnt(aTHX_ a)
+#   define PerlIO_get_ptr(a)                    Perl_PerlIO_get_ptr(aTHX_ a)
+#   define PerlIO_read(a,b,c)                   Perl_PerlIO_read(aTHX_ a,b,c)
+#   define PerlIO_seek(a,b,c)                   Perl_PerlIO_seek(aTHX_ a,b,c)
+#   define PerlIO_set_cnt(a,b)                  Perl_PerlIO_set_cnt(aTHX_ a,b)
+#   define PerlIO_set_ptrcnt(a,b,c)             Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c)
+#   define PerlIO_setlinebuf(a)                 Perl_PerlIO_setlinebuf(aTHX_ a)
+#   define PerlIO_stderr()                      Perl_PerlIO_stderr(aTHX)
+#   define PerlIO_stdin()                       Perl_PerlIO_stdin(aTHX)
+#   define PerlIO_stdout()                      Perl_PerlIO_stdout(aTHX)
+#   define PerlIO_tell(a)                       Perl_PerlIO_tell(aTHX_ a)
+#   define PerlIO_unread(a,b,c)                 Perl_PerlIO_unread(aTHX_ a,b,c)
+#   define PerlIO_write(a,b,c)                  Perl_PerlIO_write(aTHX_ a,b,c)
+# endif /* defined(USE_PERLIO) */
+# if defined(VMS) || defined(WIN32)
+#   define do_aspawn(a,b,c)                     Perl_do_aspawn(aTHX_ a,b,c)
+#   define do_spawn(a)                          Perl_do_spawn(aTHX_ a)
+#   define do_spawn_nowait(a)                   Perl_do_spawn_nowait(aTHX_ a)
+# endif
+# if defined(WIN32)
+#   define get_context                          Perl_get_context
+# else
+#   define get_context                          Perl_get_context
+# endif
+#endif /* !defined(PERL_NO_SHORT_NAMES) */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/embedvar.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/embedvar.h,v
diff -u -p -a -u -p -r1.7 embedvar.h
--- gnu/usr.bin/perl/embedvar.h	15 Feb 2023 01:36:13 -0000	1.7
+++ gnu/usr.bin/perl/embedvar.h	21 Feb 2024 15:47:02 -0000
@@ -1,358 +1,371 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    embedvar.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- *    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
+ *    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ *    2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022
+ *    by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
  *
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
- * This file is built by regen/embed.pl from data in embed.fnc,
- * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
+ * This file is built by regen/embed.pl from embed.fnc, intrpvar.h,
+ * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and
+ * regen/HeaderParser.pm.
  * Any changes made here will be lost!
  *
  * Edit those files and run 'make regen_headers' to effect changes.
  */
 
 #if defined(MULTIPLICITY)
-#  define vTHX	aTHX
-#define PL_AboveLatin1		(vTHX->IAboveLatin1)
-#define PL_Assigned_invlist	(vTHX->IAssigned_invlist)
-#define PL_CCC_non0_non230	(vTHX->ICCC_non0_non230)
-#define PL_DBcontrol		(vTHX->IDBcontrol)
-#define PL_DBcv			(vTHX->IDBcv)
-#define PL_DBgv			(vTHX->IDBgv)
-#define PL_DBline		(vTHX->IDBline)
-#define PL_DBsignal		(vTHX->IDBsignal)
-#define PL_DBsingle		(vTHX->IDBsingle)
-#define PL_DBsub		(vTHX->IDBsub)
-#define PL_DBtrace		(vTHX->IDBtrace)
-#define PL_Dir			(vTHX->IDir)
-#define PL_Env			(vTHX->IEnv)
-#define PL_GCB_invlist		(vTHX->IGCB_invlist)
-#define PL_HasMultiCharFold	(vTHX->IHasMultiCharFold)
-#define PL_InBitmap		(vTHX->IInBitmap)
-#define PL_InMultiCharFold	(vTHX->IInMultiCharFold)
-#define PL_LB_invlist		(vTHX->ILB_invlist)
-#define PL_LIO			(vTHX->ILIO)
-#define PL_Latin1		(vTHX->ILatin1)
-#define PL_Mem			(vTHX->IMem)
-#define PL_MemParse		(vTHX->IMemParse)
-#define PL_MemShared		(vTHX->IMemShared)
-#define PL_Posix_ptrs		(vTHX->IPosix_ptrs)
-#define PL_Private_Use		(vTHX->IPrivate_Use)
-#define PL_Proc			(vTHX->IProc)
-#define PL_SB_invlist		(vTHX->ISB_invlist)
-#define PL_SCX_invlist		(vTHX->ISCX_invlist)
-#define PL_Sock			(vTHX->ISock)
-#define PL_StdIO		(vTHX->IStdIO)
-#define PL_Sv			(vTHX->ISv)
-#define PL_TR_SPECIAL_HANDLING_UTF8	(vTHX->ITR_SPECIAL_HANDLING_UTF8)
-#define PL_UpperLatin1		(vTHX->IUpperLatin1)
-#define PL_WB_invlist		(vTHX->IWB_invlist)
-#define PL_XPosix_ptrs		(vTHX->IXPosix_ptrs)
-#define PL_Xpv			(vTHX->IXpv)
-#define PL_an			(vTHX->Ian)
-#define PL_argvgv		(vTHX->Iargvgv)
-#define PL_argvout_stack	(vTHX->Iargvout_stack)
-#define PL_argvoutgv		(vTHX->Iargvoutgv)
-#define PL_basetime		(vTHX->Ibasetime)
-#define PL_beginav		(vTHX->Ibeginav)
-#define PL_beginav_save		(vTHX->Ibeginav_save)
-#define PL_blockhooks		(vTHX->Iblockhooks)
-#define PL_body_arenas		(vTHX->Ibody_arenas)
-#define PL_body_roots		(vTHX->Ibody_roots)
-#define PL_bodytarget		(vTHX->Ibodytarget)
-#define PL_breakable_sub_gen	(vTHX->Ibreakable_sub_gen)
-#define PL_checkav		(vTHX->Icheckav)
-#define PL_checkav_save		(vTHX->Icheckav_save)
-#define PL_chopset		(vTHX->Ichopset)
-#define PL_clocktick		(vTHX->Iclocktick)
-#define PL_collation_ix		(vTHX->Icollation_ix)
-#define PL_collation_name	(vTHX->Icollation_name)
-#define PL_collation_standard	(vTHX->Icollation_standard)
-#define PL_collxfrm_base	(vTHX->Icollxfrm_base)
-#define PL_collxfrm_mult	(vTHX->Icollxfrm_mult)
-#define PL_colors		(vTHX->Icolors)
-#define PL_colorset		(vTHX->Icolorset)
-#define PL_compcv		(vTHX->Icompcv)
-#define PL_compiling		(vTHX->Icompiling)
-#define PL_comppad		(vTHX->Icomppad)
-#define PL_comppad_name		(vTHX->Icomppad_name)
-#define PL_comppad_name_fill	(vTHX->Icomppad_name_fill)
-#define PL_comppad_name_floor	(vTHX->Icomppad_name_floor)
-#define PL_constpadix		(vTHX->Iconstpadix)
-#define PL_cop_seqmax		(vTHX->Icop_seqmax)
-#define PL_curcop		(vTHX->Icurcop)
-#define PL_curcopdb		(vTHX->Icurcopdb)
-#define PL_curlocales		(vTHX->Icurlocales)
-#define PL_curpad		(vTHX->Icurpad)
-#define PL_curpm		(vTHX->Icurpm)
-#define PL_curpm_under		(vTHX->Icurpm_under)
-#define PL_curstack		(vTHX->Icurstack)
-#define PL_curstackinfo		(vTHX->Icurstackinfo)
-#define PL_curstash		(vTHX->Icurstash)
-#define PL_curstname		(vTHX->Icurstname)
-#define PL_custom_op_descs	(vTHX->Icustom_op_descs)
-#define PL_custom_op_names	(vTHX->Icustom_op_names)
-#define PL_custom_ops		(vTHX->Icustom_ops)
-#define PL_cv_has_eval		(vTHX->Icv_has_eval)
-#define PL_dbargs		(vTHX->Idbargs)
-#define PL_debstash		(vTHX->Idebstash)
-#define PL_debug		(vTHX->Idebug)
-#define PL_debug_pad		(vTHX->Idebug_pad)
-#define PL_def_layerlist	(vTHX->Idef_layerlist)
-#define PL_defgv		(vTHX->Idefgv)
-#define PL_defoutgv		(vTHX->Idefoutgv)
-#define PL_defstash		(vTHX->Idefstash)
-#define PL_delaymagic		(vTHX->Idelaymagic)
-#define PL_delaymagic_egid	(vTHX->Idelaymagic_egid)
-#define PL_delaymagic_euid	(vTHX->Idelaymagic_euid)
-#define PL_delaymagic_gid	(vTHX->Idelaymagic_gid)
-#define PL_delaymagic_uid	(vTHX->Idelaymagic_uid)
-#define PL_destroyhook		(vTHX->Idestroyhook)
-#define PL_diehook		(vTHX->Idiehook)
-#define PL_doswitches		(vTHX->Idoswitches)
-#define PL_dowarn		(vTHX->Idowarn)
-#define PL_dump_re_max_len	(vTHX->Idump_re_max_len)
-#define PL_dumper_fd		(vTHX->Idumper_fd)
-#define PL_dumpindent		(vTHX->Idumpindent)
-#define PL_e_script		(vTHX->Ie_script)
-#define PL_efloatbuf		(vTHX->Iefloatbuf)
-#define PL_efloatsize		(vTHX->Iefloatsize)
-#define PL_endav		(vTHX->Iendav)
-#define PL_envgv		(vTHX->Ienvgv)
-#define PL_errgv		(vTHX->Ierrgv)
-#define PL_errors		(vTHX->Ierrors)
-#define PL_eval_root		(vTHX->Ieval_root)
-#define PL_eval_start		(vTHX->Ieval_start)
-#define PL_evalseq		(vTHX->Ievalseq)
-#define PL_exit_flags		(vTHX->Iexit_flags)
-#define PL_exitlist		(vTHX->Iexitlist)
-#define PL_exitlistlen		(vTHX->Iexitlistlen)
-#define PL_fdpid		(vTHX->Ifdpid)
-#define PL_filemode		(vTHX->Ifilemode)
-#define PL_firstgv		(vTHX->Ifirstgv)
-#define PL_forkprocess		(vTHX->Iforkprocess)
-#define PL_formtarget		(vTHX->Iformtarget)
-#define PL_generation		(vTHX->Igeneration)
-#define PL_gensym		(vTHX->Igensym)
-#define PL_globalstash		(vTHX->Iglobalstash)
-#define PL_globhook		(vTHX->Iglobhook)
-#define PL_hash_rand_bits	(vTHX->Ihash_rand_bits)
-#define PL_hash_rand_bits_enabled	(vTHX->Ihash_rand_bits_enabled)
-#define PL_hintgv		(vTHX->Ihintgv)
-#define PL_hv_fetch_ent_mh	(vTHX->Ihv_fetch_ent_mh)
-#define PL_in_clean_all		(vTHX->Iin_clean_all)
-#define PL_in_clean_objs	(vTHX->Iin_clean_objs)
-#define PL_in_eval		(vTHX->Iin_eval)
-#define PL_in_load_module	(vTHX->Iin_load_module)
-#define PL_in_some_fold		(vTHX->Iin_some_fold)
-#define PL_in_utf8_COLLATE_locale	(vTHX->Iin_utf8_COLLATE_locale)
-#define PL_in_utf8_CTYPE_locale	(vTHX->Iin_utf8_CTYPE_locale)
-#define PL_in_utf8_turkic_locale	(vTHX->Iin_utf8_turkic_locale)
-#define PL_incgv		(vTHX->Iincgv)
-#define PL_initav		(vTHX->Iinitav)
-#define PL_inplace		(vTHX->Iinplace)
-#define PL_internal_random_state	(vTHX->Iinternal_random_state)
-#define PL_isarev		(vTHX->Iisarev)
-#define PL_known_layers		(vTHX->Iknown_layers)
-#define PL_langinfo_buf		(vTHX->Ilanginfo_buf)
-#define PL_langinfo_bufsize	(vTHX->Ilanginfo_bufsize)
-#define PL_last_in_gv		(vTHX->Ilast_in_gv)
-#define PL_lastfd		(vTHX->Ilastfd)
-#define PL_lastgotoprobe	(vTHX->Ilastgotoprobe)
-#define PL_laststatval		(vTHX->Ilaststatval)
-#define PL_laststype		(vTHX->Ilaststype)
-#define PL_lc_numeric_mutex_depth	(vTHX->Ilc_numeric_mutex_depth)
-#define PL_locale_utf8ness	(vTHX->Ilocale_utf8ness)
-#define PL_localizing		(vTHX->Ilocalizing)
-#define PL_localpatches		(vTHX->Ilocalpatches)
-#define PL_lockhook		(vTHX->Ilockhook)
-#define PL_main_cv		(vTHX->Imain_cv)
-#define PL_main_root		(vTHX->Imain_root)
-#define PL_main_start		(vTHX->Imain_start)
-#define PL_mainstack		(vTHX->Imainstack)
-#define PL_markstack		(vTHX->Imarkstack)
-#define PL_markstack_max	(vTHX->Imarkstack_max)
-#define PL_markstack_ptr	(vTHX->Imarkstack_ptr)
-#define PL_max_intro_pending	(vTHX->Imax_intro_pending)
-#define PL_maxsysfd		(vTHX->Imaxsysfd)
-#define PL_mbrlen_ps		(vTHX->Imbrlen_ps)
-#define PL_mbrtowc_ps		(vTHX->Imbrtowc_ps)
-#define PL_mem_log		(vTHX->Imem_log)
-#define PL_memory_debug_header	(vTHX->Imemory_debug_header)
-#define PL_mess_sv		(vTHX->Imess_sv)
-#define PL_min_intro_pending	(vTHX->Imin_intro_pending)
-#define PL_minus_E		(vTHX->Iminus_E)
-#define PL_minus_F		(vTHX->Iminus_F)
-#define PL_minus_a		(vTHX->Iminus_a)
-#define PL_minus_c		(vTHX->Iminus_c)
-#define PL_minus_l		(vTHX->Iminus_l)
-#define PL_minus_n		(vTHX->Iminus_n)
-#define PL_minus_p		(vTHX->Iminus_p)
-#define PL_modcount		(vTHX->Imodcount)
-#define PL_modglobal		(vTHX->Imodglobal)
-#define PL_multideref_pc	(vTHX->Imultideref_pc)
-#define PL_my_cxt_list		(vTHX->Imy_cxt_list)
-#define PL_my_cxt_size		(vTHX->Imy_cxt_size)
-#define PL_na			(vTHX->Ina)
-#define PL_nomemok		(vTHX->Inomemok)
-#define PL_numeric_name		(vTHX->Inumeric_name)
-#define PL_numeric_radix_sv	(vTHX->Inumeric_radix_sv)
-#define PL_numeric_standard	(vTHX->Inumeric_standard)
-#define PL_numeric_underlying	(vTHX->Inumeric_underlying)
-#define PL_numeric_underlying_is_standard	(vTHX->Inumeric_underlying_is_standard)
-#define PL_ofsgv		(vTHX->Iofsgv)
-#define PL_oldname		(vTHX->Ioldname)
-#define PL_op			(vTHX->Iop)
-#define PL_op_exec_cnt		(vTHX->Iop_exec_cnt)
-#define PL_op_mask		(vTHX->Iop_mask)
-#define PL_opfreehook		(vTHX->Iopfreehook)
-#define PL_origalen		(vTHX->Iorigalen)
-#define PL_origargc		(vTHX->Iorigargc)
-#define PL_origargv		(vTHX->Iorigargv)
-#define PL_origenviron		(vTHX->Iorigenviron)
-#define PL_origfilename		(vTHX->Iorigfilename)
-#define PL_ors_sv		(vTHX->Iors_sv)
-#define PL_osname		(vTHX->Iosname)
-#define PL_pad_reset_pending	(vTHX->Ipad_reset_pending)
-#define PL_padix		(vTHX->Ipadix)
-#define PL_padix_floor		(vTHX->Ipadix_floor)
-#define PL_padlist_generation	(vTHX->Ipadlist_generation)
-#define PL_padname_const	(vTHX->Ipadname_const)
-#define PL_padname_undef	(vTHX->Ipadname_undef)
-#define PL_parser		(vTHX->Iparser)
-#define PL_patchlevel		(vTHX->Ipatchlevel)
-#define PL_peepp		(vTHX->Ipeepp)
-#define PL_perl_destruct_level	(vTHX->Iperl_destruct_level)
-#define PL_perldb		(vTHX->Iperldb)
-#define PL_perlio		(vTHX->Iperlio)
-#define PL_phase		(vTHX->Iphase)
-#define PL_pidstatus		(vTHX->Ipidstatus)
-#define PL_preambleav		(vTHX->Ipreambleav)
-#define PL_prevailing_version	(vTHX->Iprevailing_version)
-#define PL_profiledata		(vTHX->Iprofiledata)
-#define PL_psig_name		(vTHX->Ipsig_name)
-#define PL_psig_pend		(vTHX->Ipsig_pend)
-#define PL_psig_ptr		(vTHX->Ipsig_ptr)
-#define PL_ptr_table		(vTHX->Iptr_table)
-#define PL_random_state		(vTHX->Irandom_state)
-#define PL_reentrant_buffer	(vTHX->Ireentrant_buffer)
-#define PL_reentrant_retint	(vTHX->Ireentrant_retint)
-#define PL_reg_curpm		(vTHX->Ireg_curpm)
-#define PL_regex_pad		(vTHX->Iregex_pad)
-#define PL_regex_padav		(vTHX->Iregex_padav)
-#define PL_registered_mros	(vTHX->Iregistered_mros)
-#define PL_regmatch_slab	(vTHX->Iregmatch_slab)
-#define PL_regmatch_state	(vTHX->Iregmatch_state)
-#define PL_replgv		(vTHX->Ireplgv)
-#define PL_restartjmpenv	(vTHX->Irestartjmpenv)
-#define PL_restartop		(vTHX->Irestartop)
-#define PL_rpeepp		(vTHX->Irpeepp)
-#define PL_rs			(vTHX->Irs)
-#define PL_runops		(vTHX->Irunops)
-#define PL_savebegin		(vTHX->Isavebegin)
-#define PL_savestack		(vTHX->Isavestack)
-#define PL_savestack_ix		(vTHX->Isavestack_ix)
-#define PL_savestack_max	(vTHX->Isavestack_max)
-#ifndef PL_sawampersand
-#define PL_sawampersand		(vTHX->Isawampersand)
-#endif
-#define PL_scopestack		(vTHX->Iscopestack)
-#define PL_scopestack_ix	(vTHX->Iscopestack_ix)
-#define PL_scopestack_max	(vTHX->Iscopestack_max)
-#define PL_scopestack_name	(vTHX->Iscopestack_name)
-#define PL_secondgv		(vTHX->Isecondgv)
-#define PL_setlocale_buf	(vTHX->Isetlocale_buf)
-#define PL_setlocale_bufsize	(vTHX->Isetlocale_bufsize)
-#define PL_sharehook		(vTHX->Isharehook)
-#define PL_sig_pending		(vTHX->Isig_pending)
-#define PL_sighandler1p		(vTHX->Isighandler1p)
-#define PL_sighandler3p		(vTHX->Isighandler3p)
-#define PL_sighandlerp		(vTHX->Isighandlerp)
-#define PL_signalhook		(vTHX->Isignalhook)
-#define PL_signals		(vTHX->Isignals)
-#define PL_sortcop		(vTHX->Isortcop)
-#define PL_sortstash		(vTHX->Isortstash)
-#define PL_splitstr		(vTHX->Isplitstr)
-#define PL_srand_called		(vTHX->Isrand_called)
-#define PL_stack_base		(vTHX->Istack_base)
-#define PL_stack_max		(vTHX->Istack_max)
-#define PL_stack_sp		(vTHX->Istack_sp)
-#define PL_start_env		(vTHX->Istart_env)
-#define PL_stashcache		(vTHX->Istashcache)
-#define PL_stashpad		(vTHX->Istashpad)
-#define PL_stashpadix		(vTHX->Istashpadix)
-#define PL_stashpadmax		(vTHX->Istashpadmax)
-#define PL_statcache		(vTHX->Istatcache)
-#define PL_statgv		(vTHX->Istatgv)
-#define PL_statname		(vTHX->Istatname)
-#define PL_statusvalue		(vTHX->Istatusvalue)
-#define PL_statusvalue_posix	(vTHX->Istatusvalue_posix)
-#define PL_statusvalue_vms	(vTHX->Istatusvalue_vms)
-#define PL_stderrgv		(vTHX->Istderrgv)
-#define PL_stdingv		(vTHX->Istdingv)
-#define PL_strtab		(vTHX->Istrtab)
-#define PL_strxfrm_NUL_replacement	(vTHX->Istrxfrm_NUL_replacement)
-#define PL_strxfrm_is_behaved	(vTHX->Istrxfrm_is_behaved)
-#define PL_strxfrm_max_cp	(vTHX->Istrxfrm_max_cp)
-#define PL_sub_generation	(vTHX->Isub_generation)
-#define PL_subline		(vTHX->Isubline)
-#define PL_subname		(vTHX->Isubname)
-#define PL_sv_arenaroot		(vTHX->Isv_arenaroot)
-#define PL_sv_consts		(vTHX->Isv_consts)
-#define PL_sv_count		(vTHX->Isv_count)
-#define PL_sv_immortals		(vTHX->Isv_immortals)
-#define PL_sv_no		(vTHX->Isv_no)
-#define PL_sv_root		(vTHX->Isv_root)
-#define PL_sv_serial		(vTHX->Isv_serial)
-#define PL_sv_undef		(vTHX->Isv_undef)
-#define PL_sv_yes		(vTHX->Isv_yes)
-#define PL_sv_zero		(vTHX->Isv_zero)
-#define PL_sys_intern		(vTHX->Isys_intern)
-#define PL_taint_warn		(vTHX->Itaint_warn)
-#define PL_tainted		(vTHX->Itainted)
-#define PL_tainting		(vTHX->Itainting)
-#define PL_threadhook		(vTHX->Ithreadhook)
-#define PL_tmps_floor		(vTHX->Itmps_floor)
-#define PL_tmps_ix		(vTHX->Itmps_ix)
-#define PL_tmps_max		(vTHX->Itmps_max)
-#define PL_tmps_stack		(vTHX->Itmps_stack)
-#define PL_top_env		(vTHX->Itop_env)
-#define PL_toptarget		(vTHX->Itoptarget)
-#define PL_underlying_numeric_obj	(vTHX->Iunderlying_numeric_obj)
-#define PL_unicode		(vTHX->Iunicode)
-#define PL_unitcheckav		(vTHX->Iunitcheckav)
-#define PL_unitcheckav_save	(vTHX->Iunitcheckav_save)
-#define PL_unlockhook		(vTHX->Iunlockhook)
-#define PL_unsafe		(vTHX->Iunsafe)
-#define PL_utf8_charname_begin	(vTHX->Iutf8_charname_begin)
-#define PL_utf8_charname_continue	(vTHX->Iutf8_charname_continue)
-#define PL_utf8_foldclosures	(vTHX->Iutf8_foldclosures)
-#define PL_utf8_idcont		(vTHX->Iutf8_idcont)
-#define PL_utf8_idstart		(vTHX->Iutf8_idstart)
-#define PL_utf8_mark		(vTHX->Iutf8_mark)
-#define PL_utf8_perl_idcont	(vTHX->Iutf8_perl_idcont)
-#define PL_utf8_perl_idstart	(vTHX->Iutf8_perl_idstart)
-#define PL_utf8_tofold		(vTHX->Iutf8_tofold)
-#define PL_utf8_tolower		(vTHX->Iutf8_tolower)
-#define PL_utf8_tosimplefold	(vTHX->Iutf8_tosimplefold)
-#define PL_utf8_totitle		(vTHX->Iutf8_totitle)
-#define PL_utf8_toupper		(vTHX->Iutf8_toupper)
-#define PL_utf8_xidcont		(vTHX->Iutf8_xidcont)
-#define PL_utf8_xidstart	(vTHX->Iutf8_xidstart)
-#define PL_utf8cache		(vTHX->Iutf8cache)
-#define PL_utf8locale		(vTHX->Iutf8locale)
-#define PL_warn_locale		(vTHX->Iwarn_locale)
-#define PL_warnhook		(vTHX->Iwarnhook)
-#define PL_watchaddr		(vTHX->Iwatchaddr)
-#define PL_watchok		(vTHX->Iwatchok)
-#define PL_wcrtomb_ps		(vTHX->Iwcrtomb_ps)
-#define PL_xsubfilename		(vTHX->Ixsubfilename)
+# define vTHX                                   aTHX
+# define PL_AboveLatin1                         (vTHX->IAboveLatin1)
+# define PL_an                                  (vTHX->Ian)
+# define PL_argvgv                              (vTHX->Iargvgv)
+# define PL_argvout_stack                       (vTHX->Iargvout_stack)
+# define PL_argvoutgv                           (vTHX->Iargvoutgv)
+# define PL_Assigned_invlist                    (vTHX->IAssigned_invlist)
+# define PL_basetime                            (vTHX->Ibasetime)
+# define PL_beginav                             (vTHX->Ibeginav)
+# define PL_beginav_save                        (vTHX->Ibeginav_save)
+# define PL_blockhooks                          (vTHX->Iblockhooks)
+# define PL_body_arenas                         (vTHX->Ibody_arenas)
+# define PL_body_roots                          (vTHX->Ibody_roots)
+# define PL_bodytarget                          (vTHX->Ibodytarget)
+# define PL_breakable_sub_gen                   (vTHX->Ibreakable_sub_gen)
+# define PL_CCC_non0_non230                     (vTHX->ICCC_non0_non230)
+# define PL_checkav                             (vTHX->Icheckav)
+# define PL_checkav_save                        (vTHX->Icheckav_save)
+# define PL_chopset                             (vTHX->Ichopset)
+# define PL_clocktick                           (vTHX->Iclocktick)
+# define PL_collation_ix                        (vTHX->Icollation_ix)
+# define PL_collation_name                      (vTHX->Icollation_name)
+# define PL_collation_standard                  (vTHX->Icollation_standard)
+# define PL_collxfrm_base                       (vTHX->Icollxfrm_base)
+# define PL_collxfrm_mult                       (vTHX->Icollxfrm_mult)
+# define PL_colors                              (vTHX->Icolors)
+# define PL_colorset                            (vTHX->Icolorset)
+# define PL_compcv                              (vTHX->Icompcv)
+# define PL_compiling                           (vTHX->Icompiling)
+# define PL_comppad                             (vTHX->Icomppad)
+# define PL_comppad_name                        (vTHX->Icomppad_name)
+# define PL_comppad_name_fill                   (vTHX->Icomppad_name_fill)
+# define PL_comppad_name_floor                  (vTHX->Icomppad_name_floor)
+# define PL_constpadix                          (vTHX->Iconstpadix)
+# define PL_cop_seqmax                          (vTHX->Icop_seqmax)
+# define PL_ctype_name                          (vTHX->Ictype_name)
+# define PL_cur_LC_ALL                          (vTHX->Icur_LC_ALL)
+# define PL_cur_locale_obj                      (vTHX->Icur_locale_obj)
+# define PL_curcop                              (vTHX->Icurcop)
+# define PL_curcopdb                            (vTHX->Icurcopdb)
+# define PL_curlocales                          (vTHX->Icurlocales)
+# define PL_curpad                              (vTHX->Icurpad)
+# define PL_curpm                               (vTHX->Icurpm)
+# define PL_curpm_under                         (vTHX->Icurpm_under)
+# define PL_curstack                            (vTHX->Icurstack)
+# define PL_curstackinfo                        (vTHX->Icurstackinfo)
+# define PL_curstash                            (vTHX->Icurstash)
+# define PL_curstname                           (vTHX->Icurstname)
+# define PL_custom_op_descs                     (vTHX->Icustom_op_descs)
+# define PL_custom_op_names                     (vTHX->Icustom_op_names)
+# define PL_custom_ops                          (vTHX->Icustom_ops)
+# define PL_cv_has_eval                         (vTHX->Icv_has_eval)
+# define PL_dbargs                              (vTHX->Idbargs)
+# define PL_DBcontrol                           (vTHX->IDBcontrol)
+# define PL_DBcv                                (vTHX->IDBcv)
+# define PL_DBgv                                (vTHX->IDBgv)
+# define PL_DBline                              (vTHX->IDBline)
+# define PL_DBsignal                            (vTHX->IDBsignal)
+# define PL_DBsingle                            (vTHX->IDBsingle)
+# define PL_DBsub                               (vTHX->IDBsub)
+# define PL_DBtrace                             (vTHX->IDBtrace)
+# define PL_debstash                            (vTHX->Idebstash)
+# define PL_debug                               (vTHX->Idebug)
+# define PL_debug_pad                           (vTHX->Idebug_pad)
+# define PL_def_layerlist                       (vTHX->Idef_layerlist)
+# define PL_defgv                               (vTHX->Idefgv)
+# define PL_defoutgv                            (vTHX->Idefoutgv)
+# define PL_defstash                            (vTHX->Idefstash)
+# define PL_delaymagic                          (vTHX->Idelaymagic)
+# define PL_delaymagic_egid                     (vTHX->Idelaymagic_egid)
+# define PL_delaymagic_euid                     (vTHX->Idelaymagic_euid)
+# define PL_delaymagic_gid                      (vTHX->Idelaymagic_gid)
+# define PL_delaymagic_uid                      (vTHX->Idelaymagic_uid)
+# define PL_destroyhook                         (vTHX->Idestroyhook)
+# define PL_diehook                             (vTHX->Idiehook)
+# define PL_Dir                                 (vTHX->IDir)
+# define PL_doswitches                          (vTHX->Idoswitches)
+# define PL_dowarn                              (vTHX->Idowarn)
+# define PL_dump_re_max_len                     (vTHX->Idump_re_max_len)
+# define PL_dumper_fd                           (vTHX->Idumper_fd)
+# define PL_dumpindent                          (vTHX->Idumpindent)
+# define PL_e_script                            (vTHX->Ie_script)
+# define PL_efloatbuf                           (vTHX->Iefloatbuf)
+# define PL_efloatsize                          (vTHX->Iefloatsize)
+# define PL_endav                               (vTHX->Iendav)
+# define PL_Env                                 (vTHX->IEnv)
+# define PL_envgv                               (vTHX->Ienvgv)
+# define PL_errgv                               (vTHX->Ierrgv)
+# define PL_errors                              (vTHX->Ierrors)
+# define PL_eval_begin_nest_depth               (vTHX->Ieval_begin_nest_depth)
+# define PL_eval_root                           (vTHX->Ieval_root)
+# define PL_eval_start                          (vTHX->Ieval_start)
+# define PL_evalseq                             (vTHX->Ievalseq)
+# define PL_exit_flags                          (vTHX->Iexit_flags)
+# define PL_exitlist                            (vTHX->Iexitlist)
+# define PL_exitlistlen                         (vTHX->Iexitlistlen)
+# define PL_fdpid                               (vTHX->Ifdpid)
+# define PL_filemode                            (vTHX->Ifilemode)
+# define PL_firstgv                             (vTHX->Ifirstgv)
+# define PL_fold_locale                         (vTHX->Ifold_locale)
+# define PL_forkprocess                         (vTHX->Iforkprocess)
+# define PL_formtarget                          (vTHX->Iformtarget)
+# define PL_GCB_invlist                         (vTHX->IGCB_invlist)
+# define PL_generation                          (vTHX->Igeneration)
+# define PL_gensym                              (vTHX->Igensym)
+# define PL_globalstash                         (vTHX->Iglobalstash)
+# define PL_globhook                            (vTHX->Iglobhook)
+# define PL_hash_rand_bits                      (vTHX->Ihash_rand_bits)
+# define PL_hash_rand_bits_enabled              (vTHX->Ihash_rand_bits_enabled)
+# define PL_HasMultiCharFold                    (vTHX->IHasMultiCharFold)
+# define PL_hintgv                              (vTHX->Ihintgv)
+# define PL_hook__require__after                (vTHX->Ihook__require__after)
+# define PL_hook__require__before               (vTHX->Ihook__require__before)
+# define PL_hv_fetch_ent_mh                     (vTHX->Ihv_fetch_ent_mh)
+# define PL_in_clean_all                        (vTHX->Iin_clean_all)
+# define PL_in_clean_objs                       (vTHX->Iin_clean_objs)
+# define PL_in_eval                             (vTHX->Iin_eval)
+# define PL_in_load_module                      (vTHX->Iin_load_module)
+# define PL_in_some_fold                        (vTHX->Iin_some_fold)
+# define PL_in_utf8_COLLATE_locale              (vTHX->Iin_utf8_COLLATE_locale)
+# define PL_in_utf8_CTYPE_locale                (vTHX->Iin_utf8_CTYPE_locale)
+# define PL_in_utf8_turkic_locale               (vTHX->Iin_utf8_turkic_locale)
+# define PL_InBitmap                            (vTHX->IInBitmap)
+# define PL_incgv                               (vTHX->Iincgv)
+# define PL_initav                              (vTHX->Iinitav)
+# define PL_InMultiCharFold                     (vTHX->IInMultiCharFold)
+# define PL_inplace                             (vTHX->Iinplace)
+# define PL_internal_random_state               (vTHX->Iinternal_random_state)
+# define PL_isarev                              (vTHX->Iisarev)
+# define PL_known_layers                        (vTHX->Iknown_layers)
+# define PL_langinfo_buf                        (vTHX->Ilanginfo_buf)
+# define PL_langinfo_bufsize                    (vTHX->Ilanginfo_bufsize)
+# define PL_last_in_gv                          (vTHX->Ilast_in_gv)
+# define PL_lastfd                              (vTHX->Ilastfd)
+# define PL_lastgotoprobe                       (vTHX->Ilastgotoprobe)
+# define PL_laststatval                         (vTHX->Ilaststatval)
+# define PL_laststype                           (vTHX->Ilaststype)
+# define PL_Latin1                              (vTHX->ILatin1)
+# define PL_LB_invlist                          (vTHX->ILB_invlist)
+# define PL_LIO                                 (vTHX->ILIO)
+# define PL_locale_mutex_depth                  (vTHX->Ilocale_mutex_depth)
+# define PL_localizing                          (vTHX->Ilocalizing)
+# define PL_localpatches                        (vTHX->Ilocalpatches)
+# define PL_lockhook                            (vTHX->Ilockhook)
+# define PL_main_cv                             (vTHX->Imain_cv)
+# define PL_main_root                           (vTHX->Imain_root)
+# define PL_main_start                          (vTHX->Imain_start)
+# define PL_mainstack                           (vTHX->Imainstack)
+# define PL_markstack                           (vTHX->Imarkstack)
+# define PL_markstack_max                       (vTHX->Imarkstack_max)
+# define PL_markstack_ptr                       (vTHX->Imarkstack_ptr)
+# define PL_max_intro_pending                   (vTHX->Imax_intro_pending)
+# define PL_maxsysfd                            (vTHX->Imaxsysfd)
+# define PL_mbrlen_ps                           (vTHX->Imbrlen_ps)
+# define PL_mbrtowc_ps                          (vTHX->Imbrtowc_ps)
+# define PL_Mem                                 (vTHX->IMem)
+# define PL_mem_log                             (vTHX->Imem_log)
+# define PL_memory_debug_header                 (vTHX->Imemory_debug_header)
+# define PL_MemParse                            (vTHX->IMemParse)
+# define PL_MemShared                           (vTHX->IMemShared)
+# define PL_mess_sv                             (vTHX->Imess_sv)
+# define PL_min_intro_pending                   (vTHX->Imin_intro_pending)
+# define PL_minus_a                             (vTHX->Iminus_a)
+# define PL_minus_c                             (vTHX->Iminus_c)
+# define PL_minus_E                             (vTHX->Iminus_E)
+# define PL_minus_F                             (vTHX->Iminus_F)
+# define PL_minus_l                             (vTHX->Iminus_l)
+# define PL_minus_n                             (vTHX->Iminus_n)
+# define PL_minus_p                             (vTHX->Iminus_p)
+# define PL_modcount                            (vTHX->Imodcount)
+# define PL_modglobal                           (vTHX->Imodglobal)
+# define PL_multideref_pc                       (vTHX->Imultideref_pc)
+# define PL_my_cxt_list                         (vTHX->Imy_cxt_list)
+# define PL_my_cxt_size                         (vTHX->Imy_cxt_size)
+# define PL_na                                  (vTHX->Ina)
+# define PL_nomemok                             (vTHX->Inomemok)
+# define PL_numeric_name                        (vTHX->Inumeric_name)
+# define PL_numeric_radix_sv                    (vTHX->Inumeric_radix_sv)
+# define PL_numeric_standard                    (vTHX->Inumeric_standard)
+# define PL_numeric_underlying                  (vTHX->Inumeric_underlying)
+# define PL_numeric_underlying_is_standard      (vTHX->Inumeric_underlying_is_standard)
+# define PL_ofsgv                               (vTHX->Iofsgv)
+# define PL_oldname                             (vTHX->Ioldname)
+# define PL_op                                  (vTHX->Iop)
+# define PL_op_exec_cnt                         (vTHX->Iop_exec_cnt)
+# define PL_op_mask                             (vTHX->Iop_mask)
+# define PL_opfreehook                          (vTHX->Iopfreehook)
+# define PL_origalen                            (vTHX->Iorigalen)
+# define PL_origargc                            (vTHX->Iorigargc)
+# define PL_origargv                            (vTHX->Iorigargv)
+# define PL_origfilename                        (vTHX->Iorigfilename)
+# define PL_ors_sv                              (vTHX->Iors_sv)
+# define PL_osname                              (vTHX->Iosname)
+# define PL_pad_reset_pending                   (vTHX->Ipad_reset_pending)
+# define PL_padix                               (vTHX->Ipadix)
+# define PL_padix_floor                         (vTHX->Ipadix_floor)
+# define PL_padlist_generation                  (vTHX->Ipadlist_generation)
+# define PL_padname_const                       (vTHX->Ipadname_const)
+# define PL_padname_undef                       (vTHX->Ipadname_undef)
+# define PL_parser                              (vTHX->Iparser)
+# define PL_patchlevel                          (vTHX->Ipatchlevel)
+# define PL_peepp                               (vTHX->Ipeepp)
+# define PL_perl_destruct_level                 (vTHX->Iperl_destruct_level)
+# define PL_perldb                              (vTHX->Iperldb)
+# define PL_perlio                              (vTHX->Iperlio)
+# define PL_phase                               (vTHX->Iphase)
+# define PL_pidstatus                           (vTHX->Ipidstatus)
+# define PL_Posix_ptrs                          (vTHX->IPosix_ptrs)
+# define PL_preambleav                          (vTHX->Ipreambleav)
+# define PL_prevailing_version                  (vTHX->Iprevailing_version)
+# define PL_Private_Use                         (vTHX->IPrivate_Use)
+# define PL_Proc                                (vTHX->IProc)
+# define PL_profiledata                         (vTHX->Iprofiledata)
+# define PL_psig_name                           (vTHX->Ipsig_name)
+# define PL_psig_pend                           (vTHX->Ipsig_pend)
+# define PL_psig_ptr                            (vTHX->Ipsig_ptr)
+# define PL_ptr_table                           (vTHX->Iptr_table)
+# define PL_random_state                        (vTHX->Irandom_state)
+# define PL_reentrant_buffer                    (vTHX->Ireentrant_buffer)
+# define PL_reentrant_retint                    (vTHX->Ireentrant_retint)
+# define PL_reg_curpm                           (vTHX->Ireg_curpm)
+# define PL_regex_pad                           (vTHX->Iregex_pad)
+# define PL_regex_padav                         (vTHX->Iregex_padav)
+# define PL_registered_mros                     (vTHX->Iregistered_mros)
+# define PL_regmatch_slab                       (vTHX->Iregmatch_slab)
+# define PL_regmatch_state                      (vTHX->Iregmatch_state)
+# define PL_replgv                              (vTHX->Ireplgv)
+# define PL_restartjmpenv                       (vTHX->Irestartjmpenv)
+# define PL_restartop                           (vTHX->Irestartop)
+# define PL_rpeepp                              (vTHX->Irpeepp)
+# define PL_rs                                  (vTHX->Irs)
+# define PL_runops                              (vTHX->Irunops)
+# define PL_savebegin                           (vTHX->Isavebegin)
+# define PL_savestack                           (vTHX->Isavestack)
+# define PL_savestack_ix                        (vTHX->Isavestack_ix)
+# define PL_savestack_max                       (vTHX->Isavestack_max)
+# define PL_SB_invlist                          (vTHX->ISB_invlist)
+# define PL_scopestack                          (vTHX->Iscopestack)
+# define PL_scopestack_ix                       (vTHX->Iscopestack_ix)
+# define PL_scopestack_max                      (vTHX->Iscopestack_max)
+# define PL_scopestack_name                     (vTHX->Iscopestack_name)
+# define PL_scratch_locale_obj                  (vTHX->Iscratch_locale_obj)
+# define PL_SCX_invlist                         (vTHX->ISCX_invlist)
+# define PL_secondgv                            (vTHX->Isecondgv)
+# define PL_setlocale_buf                       (vTHX->Isetlocale_buf)
+# define PL_setlocale_bufsize                   (vTHX->Isetlocale_bufsize)
+# define PL_sharehook                           (vTHX->Isharehook)
+# define PL_sig_pending                         (vTHX->Isig_pending)
+# define PL_sighandler1p                        (vTHX->Isighandler1p)
+# define PL_sighandler3p                        (vTHX->Isighandler3p)
+# define PL_sighandlerp                         (vTHX->Isighandlerp)
+# define PL_signalhook                          (vTHX->Isignalhook)
+# define PL_signals                             (vTHX->Isignals)
+# define PL_Sock                                (vTHX->ISock)
+# define PL_sortcop                             (vTHX->Isortcop)
+# define PL_sortstash                           (vTHX->Isortstash)
+# define PL_splitstr                            (vTHX->Isplitstr)
+# define PL_srand_called                        (vTHX->Isrand_called)
+# define PL_srand_override                      (vTHX->Isrand_override)
+# define PL_srand_override_next                 (vTHX->Isrand_override_next)
+# define PL_stack_base                          (vTHX->Istack_base)
+# define PL_stack_max                           (vTHX->Istack_max)
+# define PL_stack_sp                            (vTHX->Istack_sp)
+# define PL_start_env                           (vTHX->Istart_env)
+# define PL_stashcache                          (vTHX->Istashcache)
+# define PL_stashpad                            (vTHX->Istashpad)
+# define PL_stashpadix                          (vTHX->Istashpadix)
+# define PL_stashpadmax                         (vTHX->Istashpadmax)
+# define PL_statcache                           (vTHX->Istatcache)
+# define PL_statgv                              (vTHX->Istatgv)
+# define PL_statname                            (vTHX->Istatname)
+# define PL_statusvalue                         (vTHX->Istatusvalue)
+# define PL_statusvalue_posix                   (vTHX->Istatusvalue_posix)
+# define PL_statusvalue_vms                     (vTHX->Istatusvalue_vms)
+# define PL_stderrgv                            (vTHX->Istderrgv)
+# define PL_stdingv                             (vTHX->Istdingv)
+# define PL_StdIO                               (vTHX->IStdIO)
+# define PL_stdize_locale_buf                   (vTHX->Istdize_locale_buf)
+# define PL_stdize_locale_bufsize               (vTHX->Istdize_locale_bufsize)
+# define PL_strtab                              (vTHX->Istrtab)
+# define PL_strxfrm_is_behaved                  (vTHX->Istrxfrm_is_behaved)
+# define PL_strxfrm_max_cp                      (vTHX->Istrxfrm_max_cp)
+# define PL_strxfrm_NUL_replacement             (vTHX->Istrxfrm_NUL_replacement)
+# define PL_sub_generation                      (vTHX->Isub_generation)
+# define PL_subline                             (vTHX->Isubline)
+# define PL_subname                             (vTHX->Isubname)
+# define PL_Sv                                  (vTHX->ISv)
+# define PL_sv_arenaroot                        (vTHX->Isv_arenaroot)
+# define PL_sv_consts                           (vTHX->Isv_consts)
+# define PL_sv_count                            (vTHX->Isv_count)
+# define PL_sv_immortals                        (vTHX->Isv_immortals)
+# define PL_sv_no                               (vTHX->Isv_no)
+# define PL_sv_root                             (vTHX->Isv_root)
+# define PL_sv_serial                           (vTHX->Isv_serial)
+# define PL_sv_undef                            (vTHX->Isv_undef)
+# define PL_sv_yes                              (vTHX->Isv_yes)
+# define PL_sv_zero                             (vTHX->Isv_zero)
+# define PL_sys_intern                          (vTHX->Isys_intern)
+# define PL_taint_warn                          (vTHX->Itaint_warn)
+# define PL_tainted                             (vTHX->Itainted)
+# define PL_tainting                            (vTHX->Itainting)
+# define PL_threadhook                          (vTHX->Ithreadhook)
+# define PL_tmps_floor                          (vTHX->Itmps_floor)
+# define PL_tmps_ix                             (vTHX->Itmps_ix)
+# define PL_tmps_max                            (vTHX->Itmps_max)
+# define PL_tmps_stack                          (vTHX->Itmps_stack)
+# define PL_top_env                             (vTHX->Itop_env)
+# define PL_toptarget                           (vTHX->Itoptarget)
+# define PL_TR_SPECIAL_HANDLING_UTF8            (vTHX->ITR_SPECIAL_HANDLING_UTF8)
+# define PL_underlying_numeric_obj              (vTHX->Iunderlying_numeric_obj)
+# define PL_underlying_radix_sv                 (vTHX->Iunderlying_radix_sv)
+# define PL_unicode                             (vTHX->Iunicode)
+# define PL_unitcheckav                         (vTHX->Iunitcheckav)
+# define PL_unitcheckav_save                    (vTHX->Iunitcheckav_save)
+# define PL_unlockhook                          (vTHX->Iunlockhook)
+# define PL_unsafe                              (vTHX->Iunsafe)
+# define PL_UpperLatin1                         (vTHX->IUpperLatin1)
+# define PL_utf8_charname_begin                 (vTHX->Iutf8_charname_begin)
+# define PL_utf8_charname_continue              (vTHX->Iutf8_charname_continue)
+# define PL_utf8_foldclosures                   (vTHX->Iutf8_foldclosures)
+# define PL_utf8_idcont                         (vTHX->Iutf8_idcont)
+# define PL_utf8_idstart                        (vTHX->Iutf8_idstart)
+# define PL_utf8_mark                           (vTHX->Iutf8_mark)
+# define PL_utf8_perl_idcont                    (vTHX->Iutf8_perl_idcont)
+# define PL_utf8_perl_idstart                   (vTHX->Iutf8_perl_idstart)
+# define PL_utf8_tofold                         (vTHX->Iutf8_tofold)
+# define PL_utf8_tolower                        (vTHX->Iutf8_tolower)
+# define PL_utf8_tosimplefold                   (vTHX->Iutf8_tosimplefold)
+# define PL_utf8_totitle                        (vTHX->Iutf8_totitle)
+# define PL_utf8_toupper                        (vTHX->Iutf8_toupper)
+# define PL_utf8_xidcont                        (vTHX->Iutf8_xidcont)
+# define PL_utf8_xidstart                       (vTHX->Iutf8_xidstart)
+# define PL_utf8cache                           (vTHX->Iutf8cache)
+# define PL_utf8locale                          (vTHX->Iutf8locale)
+# define PL_warn_locale                         (vTHX->Iwarn_locale)
+# define PL_warnhook                            (vTHX->Iwarnhook)
+# define PL_watchaddr                           (vTHX->Iwatchaddr)
+# define PL_watchok                             (vTHX->Iwatchok)
+# define PL_WB_invlist                          (vTHX->IWB_invlist)
+# define PL_wcrtomb_ps                          (vTHX->Iwcrtomb_ps)
+# define PL_XPosix_ptrs                         (vTHX->IXPosix_ptrs)
+# define PL_Xpv                                 (vTHX->IXpv)
+# define PL_xsubfilename                        (vTHX->Ixsubfilename)
+# if !defined(PL_sawampersand)
+#   define PL_sawampersand                      (vTHX->Isawampersand)
+# endif
+#endif /* defined(MULTIPLICITY) */
 
-#endif	/* MULTIPLICITY */
-
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/feature.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/feature.h,v
diff -u -p -a -u -p -r1.6 feature.h
--- gnu/usr.bin/perl/feature.h	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/feature.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen/feature.pl.
    Any changes made here will be lost!
@@ -14,24 +14,26 @@
 
 #define FEATURE_BAREWORD_FILEHANDLES_BIT    0x0001
 #define FEATURE_BITWISE_BIT                 0x0002
-#define FEATURE___SUB___BIT                 0x0004
-#define FEATURE_MYREF_BIT                   0x0008
-#define FEATURE_DEFER_BIT                   0x0010
-#define FEATURE_EVALBYTES_BIT               0x0020
-#define FEATURE_MORE_DELIMS_BIT             0x0040
-#define FEATURE_FC_BIT                      0x0080
-#define FEATURE_INDIRECT_BIT                0x0100
-#define FEATURE_ISA_BIT                     0x0200
-#define FEATURE_MULTIDIMENSIONAL_BIT        0x0400
-#define FEATURE_POSTDEREF_QQ_BIT            0x0800
-#define FEATURE_REFALIASING_BIT             0x1000
-#define FEATURE_SAY_BIT                     0x2000
-#define FEATURE_SIGNATURES_BIT              0x4000
-#define FEATURE_STATE_BIT                   0x8000
-#define FEATURE_SWITCH_BIT                  0x10000
-#define FEATURE_TRY_BIT                     0x20000
-#define FEATURE_UNIEVAL_BIT                 0x40000
-#define FEATURE_UNICODE_BIT                 0x80000
+#define FEATURE_CLASS_BIT                   0x0004
+#define FEATURE___SUB___BIT                 0x0008
+#define FEATURE_MYREF_BIT                   0x0010
+#define FEATURE_DEFER_BIT                   0x0020
+#define FEATURE_EVALBYTES_BIT               0x0040
+#define FEATURE_MORE_DELIMS_BIT             0x0080
+#define FEATURE_FC_BIT                      0x0100
+#define FEATURE_INDIRECT_BIT                0x0200
+#define FEATURE_ISA_BIT                     0x0400
+#define FEATURE_MODULE_TRUE_BIT             0x0800
+#define FEATURE_MULTIDIMENSIONAL_BIT        0x1000
+#define FEATURE_POSTDEREF_QQ_BIT            0x2000
+#define FEATURE_REFALIASING_BIT             0x4000
+#define FEATURE_SAY_BIT                     0x8000
+#define FEATURE_SIGNATURES_BIT              0x10000
+#define FEATURE_STATE_BIT                   0x20000
+#define FEATURE_SWITCH_BIT                  0x40000
+#define FEATURE_TRY_BIT                     0x80000
+#define FEATURE_UNIEVAL_BIT                 0x100000
+#define FEATURE_UNICODE_BIT                 0x200000
 
 #define FEATURE_BUNDLE_DEFAULT	0
 #define FEATURE_BUNDLE_510	1
@@ -40,10 +42,16 @@
 #define FEATURE_BUNDLE_523	4
 #define FEATURE_BUNDLE_527	5
 #define FEATURE_BUNDLE_535	6
+#define FEATURE_BUNDLE_537	7
 #define FEATURE_BUNDLE_CUSTOM	(HINT_FEATURE_MASK >> HINT_FEATURE_SHIFT)
 
-#define CURRENT_HINTS \
+/* this is preserved for testing and asserts */
+#define OLD_CURRENT_HINTS \
     (PL_curcop == &PL_compiling ? PL_hints : PL_curcop->cop_hints)
+/* this is the same thing, but simpler (no if) as PL_hints expands
+   to PL_compiling.cop_hints */
+#define CURRENT_HINTS \
+    PL_curcop->cop_hints
 #define CURRENT_FEATURE_BUNDLE \
     ((CURRENT_HINTS & HINT_FEATURE_MASK) >> HINT_FEATURE_SHIFT)
 
@@ -57,14 +65,15 @@
 #define FEATURE_FC_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_FC_BIT)) \
     )
 
 #define FEATURE_ISA_IS_ENABLED \
     ( \
-	CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_535 \
+	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_535 && \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_ISA_BIT)) \
     )
@@ -72,7 +81,7 @@
 #define FEATURE_SAY_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_SAY_BIT)) \
     )
@@ -83,6 +92,12 @@
 	 FEATURE_IS_ENABLED_MASK(FEATURE_TRY_BIT) \
     )
 
+#define FEATURE_CLASS_IS_ENABLED \
+    ( \
+	CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+	 FEATURE_IS_ENABLED_MASK(FEATURE_CLASS_BIT) \
+    )
+
 #define FEATURE_DEFER_IS_ENABLED \
     ( \
 	CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
@@ -92,7 +107,7 @@
 #define FEATURE_STATE_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_510 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_STATE_BIT)) \
     )
@@ -108,7 +123,7 @@
 #define FEATURE_BITWISE_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_527 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_BITWISE_BIT)) \
     )
@@ -123,14 +138,15 @@
 #define FEATURE_EVALBYTES_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_EVALBYTES_BIT)) \
     )
 
 #define FEATURE_SIGNATURES_IS_ENABLED \
     ( \
-	CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_535 \
+	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_535 && \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_SIGNATURES_BIT)) \
     )
@@ -138,11 +154,18 @@
 #define FEATURE___SUB___IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE___SUB___BIT)) \
     )
 
+#define FEATURE_MODULE_TRUE_IS_ENABLED \
+    ( \
+	CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_537 \
+     || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+	 FEATURE_IS_ENABLED_MASK(FEATURE_MODULE_TRUE_BIT)) \
+    )
+
 #define FEATURE_REFALIASING_IS_ENABLED \
     ( \
 	CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
@@ -152,7 +175,7 @@
 #define FEATURE_POSTDEREF_QQ_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_523 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_POSTDEREF_QQ_BIT)) \
     )
@@ -160,7 +183,7 @@
 #define FEATURE_UNIEVAL_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_515 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_UNIEVAL_BIT)) \
     )
@@ -174,7 +197,7 @@
 #define FEATURE_UNICODE_IS_ENABLED \
     ( \
 	(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_511 && \
-	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_535) \
+	 CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_537) \
      || (CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
 	 FEATURE_IS_ENABLED_MASK(FEATURE_UNICODE_BIT)) \
     )
@@ -222,6 +245,9 @@ S_enable_feature_bundle(pTHX_ SV *ver)
     SV *comp_ver = sv_newmortal();
     PL_hints = (PL_hints &~ HINT_FEATURE_MASK)
 	     | (
+		  (sv_setnv(comp_ver, 5.037),
+		   vcmp(ver, upg_version(comp_ver, FALSE)) >= 0)
+			? FEATURE_BUNDLE_537 :
 		  (sv_setnv(comp_ver, 5.035),
 		   vcmp(ver, upg_version(comp_ver, FALSE)) >= 0)
 			? FEATURE_BUNDLE_535 :
@@ -284,6 +310,14 @@ S_magic_sethint_feature(pTHX_ SV *keysv,
             }
             return;
 
+        case 'c':
+            if (keylen == sizeof("feature_class")-1
+                 && memcmp(subf+1, "lass", keylen - sizeof("feature_")) == 0) {
+                mask = FEATURE_CLASS_BIT;
+                break;
+            }
+            return;
+
         case 'd':
             if (keylen == sizeof("feature_defer")-1
                  && memcmp(subf+1, "efer", keylen - sizeof("feature_")) == 0) {
@@ -322,7 +356,12 @@ S_magic_sethint_feature(pTHX_ SV *keysv,
             return;
 
         case 'm':
-            if (keylen == sizeof("feature_more_delims")-1
+            if (keylen == sizeof("feature_module_true")-1
+                 && memcmp(subf+1, "odule_true", keylen - sizeof("feature_")) == 0) {
+                mask = FEATURE_MODULE_TRUE_BIT;
+                break;
+            }
+            else if (keylen == sizeof("feature_more_delims")-1
                  && memcmp(subf+1, "ore_delims", keylen - sizeof("feature_")) == 0) {
                 mask = FEATURE_MORE_DELIMS_BIT;
                 break;
@@ -412,4 +451,4 @@ S_magic_sethint_feature(pTHX_ SV *keysv,
 
 #endif /* PERL_FEATURE_H_ */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/globvar.sym
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/globvar.sym,v
diff -u -p -a -u -p -r1.14 globvar.sym
--- gnu/usr.bin/perl/globvar.sym	15 Feb 2023 01:36:13 -0000	1.14
+++ gnu/usr.bin/perl/globvar.sym	21 Feb 2024 15:47:02 -0000
@@ -19,7 +19,6 @@ PL_EXACT_REQ8_bitmask
 PL_extended_utf8_dfa_tab
 PL_fold
 PL_fold_latin1
-PL_fold_locale
 PL_hexdigit
 PL_inf
 PL_interp_size
@@ -58,8 +57,8 @@ PL_phase_names
 PL_ppaddr
 PL_reg_extflags_name
 PL_reg_intflags_name
-PL_reg_name
-PL_regkind
+PL_regnode_info
+PL_regnode_name
 PL_revision
 PL_runops_dbg
 PL_runops_std
Index: gnu/usr.bin/perl/gv.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/gv.c,v
diff -u -p -a -u -p -r1.24 gv.c
--- gnu/usr.bin/perl/gv.c	8 Jul 2023 14:18:35 -0000	1.24
+++ gnu/usr.bin/perl/gv.c	21 Feb 2024 15:47:02 -0000
@@ -79,7 +79,6 @@ Perl_gv_add_by_type(pTHX_ GV *gv, svtype
         } else {
             what = type == SVt_PVAV ? "array" : "scalar";
         }
-        /* diag_listed_as: Bad symbol for filehandle */
         Perl_croak(aTHX_ "Bad symbol for %s", what);
     }
 
@@ -207,9 +206,6 @@ Perl_newGP(pTHX_ GV *const gv)
     U32 hash;
     const char *file;
     STRLEN len;
-#ifndef USE_ITHREADS
-    GV *filegv;
-#endif
 
     PERL_ARGS_ASSERT_NEWGP;
     Newxz(gp, 1, GP);
@@ -223,19 +219,13 @@ Perl_newGP(pTHX_ GV *const gv)
        frees INIT before looking up DESTROY (and creating *DESTROY)
     */
     if (PL_curcop) {
+        char *tmp= CopFILE(PL_curcop);
         gp->gp_line = CopLINE(PL_curcop); /* 0 otherwise Newxz */
-#ifdef USE_ITHREADS
-        if (CopFILE(PL_curcop)) {
-            file = CopFILE(PL_curcop);
-            len = strlen(file);
-        }
-#else
-        filegv = CopFILEGV(PL_curcop);
-        if (filegv) {
-            file = GvNAME(filegv)+2;
-            len = GvNAMELEN(filegv)-2;
+
+        if (tmp) {
+            file = tmp;
+            len = CopFILE_LEN(PL_curcop);
         }
-#endif
         else goto no_file;
     }
     else {
@@ -311,7 +301,7 @@ Perl_cvgv_from_hek(pTHX_ CV *cv)
     if (!isGV(gv))
         gv_init_pvn(gv, CvSTASH(cv), HEK_KEY(CvNAME_HEK(cv)),
                 HEK_LEN(CvNAME_HEK(cv)),
-                SVf_UTF8 * !!HEK_UTF8(CvNAME_HEK(cv)));
+                SVf_UTF8 * cBOOL(HEK_UTF8(CvNAME_HEK(cv))));
     if (!CvNAMED(cv)) { /* gv_init took care of it */
         assert (SvANY(cv)->xcv_gv_u.xcv_gv == gv);
         return gv;
@@ -615,23 +605,28 @@ S_maybe_add_coresub(pTHX_ HV * const sta
     switch (code < 0 ? -code : code) {
      /* no support for \&CORE::infix;
         no support for funcs that do not parse like funcs */
-    case KEY___DATA__: case KEY___END__: case KEY_and: case KEY_AUTOLOAD:
-    case KEY_BEGIN   : case KEY_CHECK  : case KEY_catch : case KEY_cmp:
-    case KEY_default : case KEY_defer  : case KEY_DESTROY:
+    case KEY___DATA__: case KEY___END__ :
+    case KEY_ADJUST  : case KEY_AUTOLOAD: case KEY_BEGIN : case KEY_CHECK :
+    case KEY_DESTROY : case KEY_END     : case KEY_INIT  : case KEY_UNITCHECK:
+    case KEY_and     : case KEY_catch  : case KEY_class  :
+    case KEY_cmp     : case KEY_default: case KEY_defer :
     case KEY_do      : case KEY_dump   : case KEY_else  : case KEY_elsif  :
-    case KEY_END     : case KEY_eq     : case KEY_eval  : case KEY_finally:
+    case KEY_eq     : case KEY_eval  : case KEY_field  :
+    case KEY_finally:
     case KEY_for     : case KEY_foreach: case KEY_format: case KEY_ge     :
     case KEY_given   : case KEY_goto   : case KEY_grep  : case KEY_gt     :
-    case KEY_if      : case KEY_isa    : case KEY_INIT  : case KEY_last   :
+    case KEY_if      : case KEY_isa    : 
+    case KEY_last   :
     case KEY_le      : case KEY_local  : case KEY_lt    : case KEY_m      :
-    case KEY_map     : case KEY_my:
+    case KEY_map     : case KEY_method : case KEY_my    :
     case KEY_ne   : case KEY_next : case KEY_no: case KEY_or: case KEY_our:
     case KEY_package: case KEY_print: case KEY_printf:
     case KEY_q    : case KEY_qq   : case KEY_qr     : case KEY_qw    :
     case KEY_qx   : case KEY_redo : case KEY_require: case KEY_return:
     case KEY_s    : case KEY_say  : case KEY_sort   :
     case KEY_state: case KEY_sub  :
-    case KEY_tr   : case KEY_try  : case KEY_UNITCHECK: case KEY_unless:
+    case KEY_tr   : case KEY_try  :
+    case KEY_unless:
     case KEY_until: case KEY_use  : case KEY_when     : case KEY_while :
     case KEY_x    : case KEY_xor  : case KEY_y        :
         return NULL;
@@ -725,14 +720,56 @@ S_maybe_add_coresub(pTHX_ HV * const sta
 }
 
 /*
-=for apidoc gv_fetchmeth
-
-Like L</gv_fetchmeth_pvn>, but lacks a flags parameter.
+=for apidoc      gv_fetchmeth
+=for apidoc_item gv_fetchmeth_pv
+=for apidoc_item gv_fetchmeth_pvn
+=for apidoc_item gv_fetchmeth_sv
+
+These each look for a glob with name C<name>, containing a defined subroutine,
+returning the GV of that glob if found, or C<NULL> if not.
+
+C<stash> is always searched (first), unless it is C<NULL>.
+
+If C<stash> is NULL, or was searched but nothing was found in it, and the
+C<GV_SUPER> bit is set in C<flags>, stashes accessible via C<@ISA> are searched
+next.  Searching is conducted according to L<C<MRO> order|perlmroapi>.
+
+Finally, if no matches were found so far, and the C<GV_NOUNIVERSAL> flag in
+C<flags> is not set,  C<UNIVERSAL::> is searched.
+
+The argument C<level> should be either 0 or -1.  If -1, the function will
+return without any side effects or caching.  If 0, the function makes sure
+there is a glob named C<name> in C<stash>, creating one if necessary.
+The subroutine slot in the glob will be set to any subroutine found in the
+C<stash> and C<SUPER::> search, hence caching any C<SUPER::> result.  Note that
+subroutines found in C<UNIVERSAL::> are not cached.
+
+The GV returned from these may be a method cache entry, which is not visible to
+Perl code.  So when calling C<call_sv>, you should not use the GV directly;
+instead, you should use the method's CV, which can be obtained from the GV with
+the C<GvCV> macro.
+
+The only other significant value for C<flags> is C<SVf_UTF8>, indicating that
+C<name> is to be treated as being encoded in UTF-8.
+
+Plain C<gv_fetchmeth> lacks a C<flags> parameter, hence always searches in
+C<stash>, then C<UNIVERSAL::>, and C<name> is never UTF-8.  Otherwise it is
+exactly like C<gv_fetchmeth_pvn>.
+
+The other forms do have a C<flags> parameter, and differ only in how the glob
+name is specified.
+
+In C<gv_fetchmeth_pv>, C<name> is a C language NUL-terminated string.
+
+In C<gv_fetchmeth_pvn>, C<name> points to the first byte of the name, and an
+additional parameter, C<len>, specifies its length in bytes.  Hence, the name
+may contain embedded-NUL characters.
+
+In C<gv_fetchmeth_sv>, C<*name> is an SV, and the name is the PV extracted from
+that, using L</C<SvPV>>.  If the SV is marked as being in UTF-8, the extracted
+PV will also be.
 
-=for apidoc gv_fetchmeth_sv
-
-Exactly like L</gv_fetchmeth_pvn>, but takes the name string in the form
-of an SV instead of a string/length pair.
+=for apidoc Amnh||GV_SUPER
 
 =cut
 */
@@ -751,14 +788,6 @@ Perl_gv_fetchmeth_sv(pTHX_ HV *stash, SV
     return gv_fetchmeth_pvn(stash, namepv, namelen, level, flags);
 }
 
-/*
-=for apidoc gv_fetchmeth_pv
-
-Exactly like L</gv_fetchmeth_pvn>, but takes a nul-terminated string
-instead of a string/length pair.
-
-=cut
-*/
 
 GV *
 Perl_gv_fetchmeth_pv(pTHX_ HV *stash, const char *name, I32 level, U32 flags)
@@ -767,38 +796,6 @@ Perl_gv_fetchmeth_pv(pTHX_ HV *stash, co
     return gv_fetchmeth_internal(stash, NULL, name, strlen(name), level, flags);
 }
 
-/*
-=for apidoc gv_fetchmeth_pvn
-
-Returns the glob with the given C<name> and a defined subroutine or
-C<NULL>.  The glob lives in the given C<stash>, or in the stashes
-accessible via C<@ISA> and C<UNIVERSAL::>.
-
-The argument C<level> should be either 0 or -1.  If C<level==0>, as a
-side-effect creates a glob with the given C<name> in the given C<stash>
-which in the case of success contains an alias for the subroutine, and sets
-up caching info for this glob.
-
-The only significant values for C<flags> are C<GV_SUPER>, C<GV_NOUNIVERSAL>, and
-C<SVf_UTF8>.
-
-C<GV_SUPER> indicates that we want to look up the method in the superclasses
-of the C<stash>.
-
-C<GV_NOUNIVERSAL> indicates that we do not want to look up the method in
-the stash accessible by C<UNIVERSAL::>.
-
-The
-GV returned from C<gv_fetchmeth> may be a method cache entry, which is not
-visible to Perl code.  So when calling C<call_sv>, you should not use
-the GV directly; instead, you should use the method's CV, which can be
-obtained from the GV with the C<GvCV> macro.
-
-=for apidoc Amnh||GV_SUPER
-
-=cut
-*/
-
 /* NOTE: No support for tied ISA */
 
 PERL_STATIC_INLINE GV*
@@ -915,8 +912,8 @@ S_gv_fetchmeth_internal(pTHX_ HV* stash,
                 } else {
                     Perl_ck_warner(aTHX_ packWARN(WARN_SYNTAX),
                         "While trying to resolve method call %.*s->%.*s()"
-                        " can not locate package \"%" SVf "\" yet it is mentioned in @%.*s::ISA"
-                        " (perhaps you forgot to load \"%" SVf "\"?)",
+                        " can not locate package %" SVf_QUOTEDPREFIX " yet it is mentioned in @%.*s::ISA"
+                        " (perhaps you forgot to load %" SVf_QUOTEDPREFIX "?)",
                          (int) hvnamelen, hvname,
                          (int) len, name,
                         SVfARG(linear_sv),
@@ -1202,12 +1199,12 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *
         }
         else if ( sep_len >= 7 &&
                  strBEGINs(last_separator - 7, "::SUPER")) {
-            /* don't autovifify if ->NoSuchStash::SUPER::method */
+            /* don't autovivify if ->NoSuchStash::SUPER::method */
             stash = gv_stashpvn(origname, sep_len - 7, is_utf8);
             if (stash) flags |= GV_SUPER;
         }
         else {
-            /* don't autovifify if ->NoSuchStash::method */
+            /* don't autovivify if ->NoSuchStash::method */
             stash = gv_stashpvn(origname, sep_len, is_utf8);
         }
         ostash = stash;
@@ -1244,8 +1241,8 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *
                         return gv;
                 }
                 Perl_croak(aTHX_
-                           "Can't locate object method \"%" UTF8f
-                           "\" via package \"%" HEKf "\"",
+                           "Can't locate object method %" UTF8f_QUOTEDPREFIX ""
+                           " via package %" HEKf_QUOTEDPREFIX,
                                     UTF8fARG(is_utf8, name_end - name, name),
                                     HEKfARG(HvNAME_HEK(stash)));
             }
@@ -1260,9 +1257,9 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *
                 }
 
                 Perl_croak(aTHX_
-                           "Can't locate object method \"%" UTF8f
-                           "\" via package \"%" SVf "\""
-                           " (perhaps you forgot to load \"%" SVf "\"?)",
+                           "Can't locate object method %" UTF8f_QUOTEDPREFIX ""
+                           " via package %" SVf_QUOTEDPREFIX ""
+                           " (perhaps you forgot to load %" SVf_QUOTEDPREFIX "?)",
                            UTF8fARG(is_utf8, name_end - name, name),
                            SVfARG(packnamesv), SVfARG(packnamesv));
             }
@@ -1293,6 +1290,36 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *
     return gv;
 }
 
+
+/*
+=for apidoc      gv_autoload_pv
+=for apidoc_item gv_autoload_pvn
+=for apidoc_item gv_autoload_sv
+
+These each search for an C<AUTOLOAD> method, returning NULL if not found, or
+else returning a pointer to its GV, while setting the package
+L<C<$AUTOLOAD>|perlobj/AUTOLOAD> variable to C<name> (fully qualified).  Also,
+if found and the GV's CV is an XSUB, the CV's PV will be set to C<name>, and
+its stash will be set to the stash of the GV.
+
+Searching is done in L<C<MRO> order|perlmroapi>, as specified in
+L</C<gv_fetchmeth>>, beginning with C<stash> if it isn't NULL.
+
+The forms differ only in how C<name> is specified.
+
+In C<gv_autoload_pv>, C<namepv> is a C language NUL-terminated string.
+
+In C<gv_autoload_pvn>, C<name> points to the first byte of the name, and an
+additional parameter, C<len>, specifies its length in bytes.  Hence, C<*name>
+may contain embedded-NUL characters.
+
+In C<gv_autoload_sv>, C<*namesv> is an SV, and the name is the PV extracted
+from that using L</C<SvPV>>.  If the SV is marked as being in UTF-8, the
+extracted PV will also be.
+
+=cut
+*/
+
 GV*
 Perl_gv_autoload_sv(pTHX_ HV *stash, SV* namesv, U32 flags)
 {
@@ -1336,7 +1363,7 @@ Perl_gv_autoload_pvn(pTHX_ HV *stash, co
             stash = NULL;
         }
         else
-            packname = sv_2mortal(newSVhek(HvNAME_HEK(stash)));
+            packname = newSVhek_mortal(HvNAME_HEK(stash));
         if (flags & GV_SUPER) sv_catpvs(packname, "::SUPER");
     }
     if (!(gv = gv_fetchmeth_pvn(stash, S_autoload, S_autolen, FALSE,
@@ -1360,15 +1387,15 @@ Perl_gv_autoload_pvn(pTHX_ HV *stash, co
                          UTF8fARG(is_utf8, len, name));
 
     if (CvISXSUB(cv)) {
-        /* Instead of forcing the XSUB do another lookup for $AUTOLOAD
+        /* Instead of forcing the XSUB to do another lookup for $AUTOLOAD
          * and split that value on the last '::', pass along the same data
          * via the SvPVX field in the CV, and the stash in CvSTASH.
          *
          * Due to an unfortunate accident of history, the SvPVX field
-         * serves two purposes.  It is also used for the subroutine's pro-
-         * type.  Since SvPVX has been documented as returning the sub name
-         * for a long time, but not as returning the prototype, we have
-         * to preserve the SvPVX AUTOLOAD behaviour and put the prototype
+         * serves two purposes.  It is also used for the subroutine's
+         * prototype.  Since SvPVX has been documented as returning the sub
+         * name for a long time, but not as returning the prototype, we have to
+         * preserve the SvPVX AUTOLOAD behaviour and put the prototype
          * elsewhere.
          *
          * We put the prototype in the same allocated buffer, but after
@@ -1606,7 +1633,7 @@ S_gv_stashpvn_internal(pTHX_ const char 
     stash = GvHV(tmpgv);
     if (!(flags & ~GV_NOADD_MASK) && !stash) return NULL;
     assert(stash);
-    if (!HvNAME_get(stash)) {
+    if (!HvHasNAME(stash)) {
         hv_name_set(stash, name, namelen, flags & SVf_UTF8 ? SVf_UTF8 : 0 );
 
         /* FIXME: This is a repeat of logic in gv_fetchpvn_flags */
@@ -1736,6 +1763,14 @@ S_gv_magicalize_isa(pTHX_ GV *gv)
     GvMULTI_on(gv);
     sv_magic(MUTABLE_SV(av), MUTABLE_SV(gv), PERL_MAGIC_isa,
              NULL, 0);
+
+    if(HvSTASH_IS_CLASS(GvSTASH(gv))) {
+        /* Don't permit modification of @ISA outside of the class management
+         * code. This is temporarily undone by class.c when fiddling with the
+         * array, so it knows it can be done safely.
+         */
+        SvREADONLY_on((SV *)av);
+    }
 }
 
 /* This function grabs name and tries to split a stash and glob
@@ -1812,7 +1847,7 @@ S_parse_gv_stash_name(pTHX_ HV **stash, 
 
                 if (!(*stash = GvHV(*gv))) {
                     *stash = GvHV(*gv) = newHV();
-                    if (!HvNAME_get(*stash)) {
+                    if (!HvHasNAME(*stash)) {
                         if (GvSTASH(*gv) == PL_defstash && *len == 6
                             && strBEGINs(*name, "CORE"))
                             hv_name_sets(*stash, "CORE", 0);
@@ -1826,7 +1861,7 @@ S_parse_gv_stash_name(pTHX_ HV **stash, 
                         mro_package_moved(*stash, NULL, *gv, 1);
                     }
                 }
-                else if (!HvNAME_get(*stash))
+                else if (!HvHasNAME(*stash))
                     hv_name_set(*stash, nambeg, name_cursor - nambeg, is_utf8);
             }
 
@@ -2176,29 +2211,37 @@ S_gv_magicalize(pTHX_ GV *gv, HV *stash,
                     require_tie_mod_s(gv, '-', "Tie::Hash::NamedCapture",0);
                 }
                 break;
-            case '\005':	/* $^ENCODING */
+            case '\005':        /* ${^ENCODING} */
                 if (memEQs(name, len, "\005NCODING"))
                     goto magicalize;
                 break;
-            case '\007':	/* $^GLOBAL_PHASE */
+            case '\007':        /* ${^GLOBAL_PHASE} */
                 if (memEQs(name, len, "\007LOBAL_PHASE"))
                     goto ro_magicalize;
                 break;
-            case '\014':	/* $^LAST_FH */
-                if (memEQs(name, len, "\014AST_FH"))
+            case '\010':        /* %{^HOOK} */
+                if (memEQs(name, len, "\010OOK")) {
+                    GvMULTI_on(gv);
+                    HV *hv = GvHVn(gv);
+                    hv_magic(hv, NULL, PERL_MAGIC_hook);
+                }
+                break;
+            case '\014':
+                if ( memEQs(name, len, "\014AST_FH") ||               /* ${^LAST_FH} */
+                     memEQs(name, len, "\014AST_SUCCESSFUL_PATTERN")) /* ${^LAST_SUCCESSFUL_PATTERN} */
                     goto ro_magicalize;
                 break;
-            case '\015':        /* $^MATCH */
+            case '\015':        /* ${^MATCH} */
                 if (memEQs(name, len, "\015ATCH")) {
                     paren = RX_BUFF_IDX_CARET_FULLMATCH;
                     goto storeparen;
                 }
                 break;
-            case '\017':	/* $^OPEN */
+            case '\017':        /* ${^OPEN} */
                 if (memEQs(name, len, "\017PEN"))
                     goto magicalize;
                 break;
-            case '\020':        /* $^PREMATCH  $^POSTMATCH */
+            case '\020':        /* ${^PREMATCH}  ${^POSTMATCH} */
                 if (memEQs(name, len, "\020REMATCH")) {
                     paren = RX_BUFF_IDX_CARET_PREMATCH;
                     goto storeparen;
@@ -2532,8 +2575,8 @@ to C<gv_fetchsv> makes it behave identic
 =for apidoc Amnh||GV_ADDMG
 =for apidoc Amnh||GV_ADDMULTI
 =for apidoc Amnh||GV_ADDWARN
-=for apidoc Amnh||GV_NOADD_NOINIT
 =for apidoc Amnh||GV_NOINIT
+=for apidoc Amnh||GV_NOADD_NOINIT
 =for apidoc Amnh||GV_NOTQUAL
 =for apidoc Amnh||GV_NO_SVGMAGIC
 =for apidoc Amnh||SVf_UTF8
@@ -2677,10 +2720,10 @@ Perl_gv_fetchpvn_flags(pTHX_ const char 
 }
 
 /*
-=for apidoc      gv_fullname3
-=for apidoc_item gv_fullname4
-=for apidoc_item gv_efullname3
+=for apidoc      gv_efullname3
 =for apidoc_item gv_efullname4
+=for apidoc_item gv_fullname3
+=for apidoc_item gv_fullname4
 
 Place the full package name of C<gv> into C<sv>.  The C<gv_e*> forms return
 instead the effective package name (see L</HvENAME>).
@@ -2713,7 +2756,7 @@ Perl_gv_fullname4(pTHX_ SV *sv, const GV
       }
     }
     else sv_catpvs(sv,"__ANON__::");
-    sv_catsv(sv,sv_2mortal(newSVhek(GvNAME_HEK(gv))));
+    sv_catsv(sv,newSVhek_mortal(GvNAME_HEK(gv)));
 }
 
 void
@@ -2738,7 +2781,7 @@ Perl_gv_check(pTHX_ HV *stash)
 
     PERL_ARGS_ASSERT_GV_CHECK;
 
-    if (!SvOOK(stash))
+    if (!HvHasAUX(stash))
         return;
 
     assert(HvARRAY(stash));
@@ -2757,7 +2800,7 @@ Perl_gv_check(pTHX_ HV *stash)
                 (gv = MUTABLE_GV(HeVAL(entry))) && isGV(gv) && (hv = GvHV(gv)))
             {
                 if (hv != PL_defstash && hv != stash
-                    && !(SvOOK(hv)
+                    && !(HvHasAUX(hv)
                         && (HvAUX(hv)->xhv_aux_flags & HvAUXf_SCAN_STASH))
                 )
                      gv_check(hv);              /* nested package */
@@ -2773,9 +2816,11 @@ Perl_gv_check(pTHX_ HV *stash)
                 if (SvTYPE(gv) != SVt_PVGV || GvMULTI(gv))
                     continue;
                 file = GvFILE(gv);
+                assert(PL_curcop == &PL_compiling);
                 CopLINE_set(PL_curcop, GvLINE(gv));
 #ifdef USE_ITHREADS
-                CopFILE(PL_curcop) = (char *)file;	/* set for warning */
+                SAVECOPFILE_FREE(PL_curcop);
+                CopFILE_set(PL_curcop, (char *)file);	/* set for warning */
 #else
                 CopFILEGV(PL_curcop)
                     = gv_fetchfile_flags(file, HEK_LEN(GvFILE_HEK(gv)), 0);
@@ -2915,12 +2960,12 @@ Perl_gp_free(pTHX_ GV *gv)
          simple problems likely found by fuzzers but never written by humans,
          whilst leaving working code unchanged. */
       if (sv) {
-          SV *referant;
+          SV *referent;
           if (SvREFCNT(sv) > 1 || SvOBJECT(sv) || UNLIKELY(in_global_destruction)) {
               SvREFCNT_dec_NN(sv);
               sv = NULL;
-          } else if (SvROK(sv) && (referant = SvRV(sv))
-                     && (SvREFCNT(referant) > 1 || SvOBJECT(referant))) {
+          } else if (SvROK(sv) && (referent = SvRV(sv))
+                     && (SvREFCNT(referent) > 1 || SvOBJECT(referent))) {
               SvREFCNT_dec_NN(sv);
               sv = NULL;
           } else {
@@ -3110,7 +3155,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash, bool d
       sv_unmagic(MUTABLE_SV(stash), PERL_MAGIC_overload_table);
   }
 
-  DEBUG_o( Perl_deb(aTHX_ "Recalcing overload magic in package %s\n",HvNAME_get(stash)) );
+  DEBUG_o( Perl_deb(aTHX_ "Recalculating overload magic in package %s\n",HvNAME_get(stash)) );
 
   Zero(&amt,1,AMT);
   amt.was_ok_sub = newgen;
@@ -3152,7 +3197,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash, bool d
         filled = 1;
     }
 
-    assert(SvOOK(stash));
+    assert(HvHasAUX(stash));
     /* initially assume the worst */
     HvAUX(stash)->xhv_aux_flags &= ~HvAUXf_NO_DEREF;
 
@@ -3274,7 +3319,7 @@ Perl_gv_handler(pTHX_ HV *stash, I32 id)
     U32 newgen;
     struct mro_meta* stash_meta;
 
-    if (!stash || !HvNAME_get(stash))
+    if (!stash || !HvHasNAME(stash))
         return NULL;
 
     stash_meta = HvMROMETA(stash);
@@ -3353,6 +3398,153 @@ Perl_try_amagic_un(pTHX_ int method, int
 }
 
 
+/*
+=for apidoc amagic_applies
+
+Check C<sv> to see if the overloaded (active magic) operation C<method>
+applies to it. If the sv is not SvROK or it is not an object then returns
+false, otherwise checks if the object is blessed into a class supporting
+overloaded operations, and returns true if a call to amagic_call() with
+this SV and the given method would trigger an amagic operation, including
+via the overload fallback rules or via nomethod. Thus a call like:
+
+    amagic_applies(sv, string_amg, AMG_unary)
+
+would return true for an object with overloading set up in any of the
+following ways:
+
+    use overload q("") => sub { ... };
+    use overload q(0+) => sub { ... }, fallback => 1;
+
+and could be used to tell if a given object would stringify to something
+other than the normal default ref stringification.
+
+Note that the fact that this function returns TRUE does not mean you
+can succesfully perform the operation with amagic_call(), for instance
+any overloaded method might throw a fatal exception,  however if this
+function returns FALSE you can be confident that it will NOT perform
+the given overload operation.
+
+C<method> is an integer enum, one of the values found in F<overload.h>,
+for instance C<string_amg>.
+
+C<flags> should be set to AMG_unary for unary operations.
+
+=cut
+*/
+bool
+Perl_amagic_applies(pTHX_ SV *sv, int method, int flags)
+{
+    PERL_ARGS_ASSERT_AMAGIC_APPLIES;
+    PERL_UNUSED_VAR(flags);
+
+    assert(method >= 0 && method < NofAMmeth);
+
+    if (!SvAMAGIC(sv))
+        return FALSE;
+
+    HV *stash = SvSTASH(SvRV(sv));
+    if (!Gv_AMG(stash))
+        return FALSE;
+
+    MAGIC *mg = mg_find((const SV *)stash, PERL_MAGIC_overload_table);
+    if (!mg)
+        return FALSE;
+
+    CV **cvp = NULL;
+    AMT *amtp = NULL;
+    if (AMT_AMAGIC((AMT *)mg->mg_ptr)) {
+        amtp = (AMT *)mg->mg_ptr;
+        cvp = amtp->table;
+    }
+    if (!cvp)
+        return FALSE;
+
+    if (cvp[method])
+        return TRUE;
+
+    /* Note this logic should be kept in sync with amagic_call() */
+    if (amtp->fallback > AMGfallNEVER && flags & AMGf_unary) {
+         CV *cv;       /* This makes it easier to kee ... */
+         int off,off1; /* ... in sync with amagic_call() */
+
+      /* look for substituted methods */
+      /* In all the covered cases we should be called with assign==0. */
+         switch (method) {
+         case inc_amg:
+           if ((cv = cvp[off=add_ass_amg]) || ((cv = cvp[off = add_amg])))
+               return TRUE;
+           break;
+         case dec_amg:
+           if((cv = cvp[off = subtr_ass_amg]) || ((cv = cvp[off = subtr_amg])))
+               return TRUE;
+           break;
+         case bool__amg:
+           if ((cv = cvp[off=numer_amg]) || (cv = cvp[off=string_amg]))
+               return TRUE;
+           break;
+         case numer_amg:
+           if((cv = cvp[off=string_amg]) || (cv = cvp[off=bool__amg]))
+               return TRUE;
+           break;
+         case string_amg:
+           if((cv = cvp[off=numer_amg]) || (cv = cvp[off=bool__amg]))
+               return TRUE;
+           break;
+         case not_amg:
+           if((cv = cvp[off=bool__amg])
+                  || (cv = cvp[off=numer_amg])
+                  || (cv = cvp[off=string_amg]))
+               return TRUE;
+           break;
+         case abs_amg:
+           if((cvp[off1=lt_amg] || cvp[off1=ncmp_amg])
+               && ((cv = cvp[off=neg_amg]) || (cv = cvp[off=subtr_amg])))
+               return TRUE;
+           break;
+         case neg_amg:
+           if ((cv = cvp[off=subtr_amg]))
+               return TRUE;
+           break;
+         }
+    } else if (((cvp && amtp->fallback > AMGfallNEVER))
+               && !(flags & AMGf_unary)) {
+                                /* We look for substitution for
+                                 * comparison operations and
+                                 * concatenation */
+      if (method==concat_amg || method==concat_ass_amg
+          || method==repeat_amg || method==repeat_ass_amg) {
+        return FALSE;            /* Delegate operation to string conversion */
+      }
+      switch (method) {
+         case lt_amg:
+         case le_amg:
+         case gt_amg:
+         case ge_amg:
+         case eq_amg:
+         case ne_amg:
+             if (cvp[ncmp_amg])
+                 return TRUE;
+             break;
+         case slt_amg:
+         case sle_amg:
+         case sgt_amg:
+         case sge_amg:
+         case seq_amg:
+         case sne_amg:
+             if (cvp[scmp_amg])
+                 return TRUE;
+             break;
+      }
+    }
+
+    if (cvp[nomethod_amg])
+        return TRUE;
+
+    return FALSE;
+}
+
+
 /* Implement tryAMAGICbin_MG macro.
    Do get magic, then see if the two stack args are overloaded and if so
    call it.
@@ -3448,7 +3640,7 @@ Perl_amagic_deref_call(pTHX_ SV *ref, in
         return ref;
     /* return quickly if none of the deref ops are overloaded */
     stash = SvSTASH(SvRV(ref));
-    assert(SvOOK(stash));
+    assert(HvHasAUX(stash));
     if (HvAUX(stash)->xhv_aux_flags & HvAUXf_NO_DEREF)
         return ref;
 
@@ -3560,9 +3752,11 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
 #ifdef DEBUGGING
                    fl = 1,
 #endif
-                   cv = cvp[off=method])))) {
+                   cv = cvp[off=method]))))
+  {
     lr = -1;			/* Call method for left argument */
   } else {
+    /* Note this logic should be kept in sync with amagic_applies() */
     if (cvp && amtp->fallback > AMGfallNEVER && flags & AMGf_unary) {
       int logic;
 
@@ -3756,7 +3950,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
                         "in overloaded package ":
                         "has no overloaded magic",
                       SvAMAGIC(left)?
-                        SVfARG(sv_2mortal(newSVhek(HvNAME_HEK(SvSTASH(SvRV(left)))))):
+                        SVfARG(newSVhek_mortal(HvNAME_HEK(SvSTASH(SvRV(left))))):
                         SVfARG(&PL_sv_no),
                       SvAMAGIC(right)?
                         ",\n\tright argument in overloaded package ":
@@ -3764,7 +3958,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
                          ? ""
                          : ",\n\tright argument has no overloaded magic"),
                       SvAMAGIC(right)?
-                        SVfARG(sv_2mortal(newSVhek(HvNAME_HEK(SvSTASH(SvRV(right)))))):
+                        SVfARG(newSVhek_mortal(HvNAME_HEK(SvSTASH(SvRV(right))))):
                         SVfARG(&PL_sv_no)));
         if (use_default_op) {
           DEBUG_o( Perl_deb(aTHX_ "%" SVf, SVfARG(msg)) );
@@ -3850,12 +4044,12 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
                      flags & AMGf_unary? "" :
                      lr==1 ? " for right argument": " for left argument",
                      flags & AMGf_unary? " for argument" : "",
-                     stash ? SVfARG(sv_2mortal(newSVhek(HvNAME_HEK(stash)))) : SVfARG(newSVpvs_flags("null", SVs_TEMP)),
+                     stash ? SVfARG(newSVhek_mortal(HvNAME_HEK(stash))) : SVfARG(newSVpvs_flags("null", SVs_TEMP)),
                      fl? ",\n\tassignment variant used": "") );
   }
 #endif
     /* Since we use shallow copy during assignment, we need
-     * to dublicate the contents, probably calling user-supplied
+     * to duplicate the contents, probably calling user-supplied
      * version of copy operator
      */
     /* We need to copy in following cases:
@@ -3893,7 +4087,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
 
   {
     dSP;
-    BINOP myop;
+    UNOP myop;
     SV* res;
     const bool oldcatch = CATCH_GET;
     I32 oldmark, nret;
@@ -3905,10 +4099,11 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
                     ? G_SCALAR : GIMME_V;
 
     CATCH_SET(TRUE);
-    Zero(&myop, 1, BINOP);
-    myop.op_last = (OP *) &myop;
-    myop.op_next = NULL;
+    Zero(&myop, 1, UNOP);
     myop.op_flags = OPf_STACKED;
+    myop.op_ppaddr = PL_ppaddr[OP_ENTERSUB];
+    myop.op_type = OP_ENTERSUB;
+
 
     switch (gimme) {
         case G_VOID:
@@ -3948,9 +4143,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
     PUSHs(MUTABLE_SV(cv));
     PUTBACK;
     oldmark = TOPMARK;
-
-    if ((PL_op = PL_ppaddr[OP_ENTERSUB](aTHX)))
-      CALLRUNOPS(aTHX);
+    CALLRUNOPS(aTHX);
     LEAVE;
     SPAGAIN;
     nret = SP - (PL_stack_base + oldmark);
@@ -4022,6 +4215,18 @@ Perl_amagic_call(pTHX_ SV *left, SV *rig
   }
 }
 
+/*
+=for apidoc gv_name_set
+
+Set the name for GV C<gv> to C<name> which is C<len> bytes long.  Thus it may
+contain embedded NUL characters.
+
+If C<flags> contains C<SVf_UTF8>, the name is treated as being encoded in
+UTF-8; otherwise not.
+
+=cut
+*/
+
 void
 Perl_gv_name_set(pTHX_ GV *gv, const char *name, U32 len, U32 flags)
 {
@@ -4099,13 +4304,13 @@ Perl_gv_try_downgrade(pTHX_ GV *gv)
     } else if (GvMULTI(gv) && cv && SvREFCNT(cv) == 1 &&
             !SvOBJECT(cv) && !SvMAGICAL(cv) && !SvREADONLY(cv) &&
             CvSTASH(cv) == stash && !CvNAMED(cv) && CvGV(cv) == gv &&
-            CvCONST(cv) && !CvMETHOD(cv) && !CvLVALUE(cv) && !CvUNIQUE(cv) &&
+            CvCONST(cv) && !CvNOWARN_AMBIGUOUS(cv) && !CvLVALUE(cv) && !CvUNIQUE(cv) &&
             !CvNODEBUG(cv) && !CvCLONE(cv) && !CvCLONED(cv) && !CvANON(cv) &&
             (namehek = GvNAME_HEK(gv)) &&
             (gvp = hv_fetchhek(stash, namehek, 0)) &&
             *gvp == (SV*)gv) {
         SV *value = SvREFCNT_inc(CvXSUBANY(cv).any_ptr);
-        const bool imported = !!GvIMPORTED_CV(gv);
+        const bool imported = cBOOL(GvIMPORTED_CV(gv));
         SvREFCNT(gv) = 0;
         sv_clear((SV*)gv);
         SvREFCNT(gv) = 1;
Index: gnu/usr.bin/perl/gv.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/gv.h,v
diff -u -p -a -u -p -r1.17 gv.h
--- gnu/usr.bin/perl/gv.h	15 Feb 2023 01:36:13 -0000	1.17
+++ gnu/usr.bin/perl/gv.h	21 Feb 2024 15:47:02 -0000
@@ -28,7 +28,7 @@ struct gp {
 
 #if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS) && !defined(__INTEL_COMPILER)
 #  define GvGP(gv)							\
-        (0+(*({GV *const _gvgp = (GV *) (gv);				\
+        ((GP *)(*({GV *const _gvgp = (GV *) (gv);				\
             assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \
             assert(isGV_with_GP(_gvgp));				\
             &((_gvgp)->sv_u.svu_gp);})))
@@ -134,7 +134,7 @@ Return the CV from the GV.
                          GvGP(gv)->gp_hv : \
                          GvGP(gv_HVadd(gv))->gp_hv)
 
-#define GvCV(gv)	(0+GvGP(gv)->gp_cv)
+#define GvCV(gv)	((CV*)GvGP(gv)->gp_cv)
 #define GvCV_set(gv,cv)	(GvGP(gv)->gp_cv = (cv))
 #define GvCVGEN(gv)	(GvGP(gv)->gp_cvgen)
 #define GvCVu(gv)	(GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv)
@@ -162,7 +162,7 @@ Return the CV from the GV.
 #define GVf_INTRO	0x01
 #define GVf_MULTI	0x02
 #define GVf_ASSUMECV	0x04
-/*	UNUSED		0x08 */
+#define GVf_RESERVED    0x08   /* unused */
 #define GVf_IMPORTED	0xF0
 #define GVf_IMPORTED_SV	  0x10
 #define GVf_IMPORTED_AV	  0x20
@@ -269,7 +269,7 @@ Return the CV from the GV.
 #define gv_fetchmethod(stash, name) gv_fetchmethod_autoload(stash, name, TRUE)
 #define gv_fetchsv_nomg(n,f,t) gv_fetchsv(n,(f)|GV_NO_SVGMAGIC,t)
 #define gv_init(gv,stash,name,len,multi) \
-        gv_init_pvn(gv,stash,name,len,GV_ADDMULTI*!!(multi))
+        gv_init_pvn(gv,stash,name,len,GV_ADDMULTI*cBOOL(multi))
 #define gv_fetchmeth(stash,name,len,level) gv_fetchmeth_pvn(stash, name, len, level, 0)
 #define gv_fetchmeth_autoload(stash,name,len,level) gv_fetchmeth_pvn_autoload(stash, name, len, level, 0)
 #define gv_fetchmethod_flags(stash,name,flags) gv_fetchmethod_pv_flags(stash, name, flags)
@@ -281,7 +281,7 @@ Equivalent to C<L</gv_autoload_pvn>>.
 =cut
 */
 #define gv_autoload4(stash, name, len, autoload) \
-        gv_autoload_pvn(stash, name, len, !!(autoload))
+        gv_autoload_pvn(stash, name, len, cBOOL(autoload))
 #define newGVgen(pack)  newGVgen_flags(pack, 0)
 #define gv_method_changed(gv)		    \
     (					     \
Index: gnu/usr.bin/perl/handy.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/handy.h,v
diff -u -p -a -u -p -r1.22 handy.h
--- gnu/usr.bin/perl/handy.h	8 Jul 2023 14:18:35 -0000	1.22
+++ gnu/usr.bin/perl/handy.h	21 Feb 2024 15:47:02 -0000
@@ -70,13 +70,13 @@ from it, and are very unlikely to change
 
 /*
 =for apidoc_section $SV
-=for apidoc Am|void *|MUTABLE_PTR|void * p
-=for apidoc_item |AV *|MUTABLE_AV|AV * p
-=for apidoc_item |CV *|MUTABLE_CV|CV * p
-=for apidoc_item |GV *|MUTABLE_GV|GV * p
-=for apidoc_item |HV *|MUTABLE_HV|HV * p
-=for apidoc_item |IO *|MUTABLE_IO|IO * p
-=for apidoc_item |SV *|MUTABLE_SV|SV * p
+=for apidoc   Am |AV *  |MUTABLE_AV |AV * p
+=for apidoc_item |CV *  |MUTABLE_CV |CV * p
+=for apidoc_item |GV *  |MUTABLE_GV |GV * p
+=for apidoc_item |HV *  |MUTABLE_HV |HV * p
+=for apidoc_item |IO *  |MUTABLE_IO |IO * p
+=for apidoc_item |void *|MUTABLE_PTR|void * p
+=for apidoc_item |SV *  |MUTABLE_SV |SV * p
 
 The C<MUTABLE_I<*>>() macros cast pointers to the types shown, in such a way
 (compiler permitting) that casting away const-ness will give a warning;
@@ -91,8 +91,10 @@ C<MUTABLE_PTR> is the base macro used to
 already-built-in ones return pointers to what their names indicate.
 
 =cut
- */
 
+The brace group version will raise a diagnostic if 'p' is const; the other
+blindly casts away const.
+ */
 #if defined(PERL_USE_GCC_BRACE_GROUPS)
 #  define MUTABLE_PTR(p) ({ void *p_ = (p); p_; })
 #else
@@ -106,6 +108,34 @@ already-built-in ones return pointers to
 #define MUTABLE_IO(p)	((IO *)MUTABLE_PTR(p))
 #define MUTABLE_SV(p)	((SV *)MUTABLE_PTR(p))
 
+/*
+=for apidoc_section $SV
+=for apidoc   Am |AV *|AV_FROM_REF|SV * ref
+=for apidoc_item |CV *|CV_FROM_REF|SV * ref
+=for apidoc_item |HV *|HV_FROM_REF|SV * ref
+
+The C<I<*>V_FROM_REF> macros extract the C<SvRV()> from a given reference SV
+and return a suitably-cast to pointer to the referenced SV. When running
+under C<-DDEBUGGING>, assertions are also applied that check that I<ref> is
+definitely a reference SV that refers to an SV of the right type.
+
+=cut
+*/
+
+#if defined(DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
+#  define xV_FROM_REF(XV, ref)  \
+    ({ SV *_ref = ref; \
+       assert(SvROK(_ref)); \
+       assert(SvTYPE(SvRV(_ref)) == SVt_PV ## XV); \
+       (XV *)(SvRV(_ref)); })
+#else
+#  define xV_FROM_REF(XV, ref)  ((XV *)(SvRV(ref)))
+#endif
+
+#define AV_FROM_REF(ref)  xV_FROM_REF(AV, ref)
+#define CV_FROM_REF(ref)  xV_FROM_REF(CV, ref)
+#define HV_FROM_REF(ref)  xV_FROM_REF(HV, ref)
+
 #ifndef __cplusplus
 #  include <stdbool.h>
 #endif
@@ -130,10 +160,13 @@ required, but is kept for backwards comp
  * XXX Similarly, a Configure probe for __FILE__ and __LINE__ is needed. */
 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(__SUNPRO_C)) /* C99 or close enough. */
 #  define FUNCTION__ __func__
-#elif (defined(__DECC_VER)) /* Tru64 or VMS, and strict C89 being used, but not modern enough cc (in Tur64, -c99 not known, only -std1). */
-#  define FUNCTION__ ""
+#  define SAFE_FUNCTION__ __func__
+#elif (defined(__DECC_VER)) /* Tru64 or VMS, and strict C89 being used, but not modern enough cc (in Tru64, -c99 not known, only -std1). */
+#  define FUNCTION__ ("")
+#  define SAFE_FUNCTION__ ("UNKNOWN")
 #else
 #  define FUNCTION__ __FUNCTION__ /* Common extension. */
+#  define SAFE_FUNCTION__ __FUNCTION__ /* Common extension. */
 #endif
 
 /* XXX A note on the perl source internal type system.  The
@@ -270,17 +303,17 @@ don't, so that you can portably take adv
 
 =cut
 */
-#  ifdef I_STDINT
+#ifdef I_STDINT
     typedef  int_fast8_t  PERL_INT_FAST8_T;
     typedef uint_fast8_t  PERL_UINT_FAST8_T;
     typedef  int_fast16_t PERL_INT_FAST16_T;
     typedef uint_fast16_t PERL_UINT_FAST16_T;
-#  else
+#else
     typedef int           PERL_INT_FAST8_T;
     typedef unsigned int  PERL_UINT_FAST8_T;
     typedef int           PERL_INT_FAST16_T;
     typedef unsigned int  PERL_UINT_FAST16_T;
-#  endif
+#endif
 
 /* log(2) (i.e., log base 10 of 2) is pretty close to 0.30103, just in case
  * anyone is grepping for it.  So BIT_DIGITS gives the number of decimal digits
@@ -395,12 +428,6 @@ string/length pair.
 =for apidoc Am|SV**|hv_fetchs|HV* tb|"key"|I32 lval
 Like C<hv_fetch>, but takes a literal string instead of a
 string/length pair.
-
-=for apidoc Am|SV**|hv_stores|HV* tb|"key"|SV* val
-Like C<hv_store>, but takes a literal string instead of a
-string/length pair
-and omits the hash parameter.
-
 =for apidoc_section $lexer
 
 =for apidoc Amx|void|lex_stuff_pvs|"pv"|U32 flags
@@ -454,8 +481,6 @@ Perl_xxx(aTHX_ ...) form for any API cal
 #define gv_fetchpvs(namebeg, flags, sv_type) \
     Perl_gv_fetchpvn_flags(aTHX_ STR_WITH_LEN(namebeg), flags, sv_type)
 #define  gv_fetchpvn  gv_fetchpvn_flags
-#define sv_catxmlpvs(dsv, str, utf8) \
-    Perl_sv_catxmlpvn(aTHX_ dsv, STR_WITH_LEN(str), utf8)
 
 
 #define lex_stuff_pvs(pv,flags) Perl_lex_stuff_pvn(aTHX_ STR_WITH_LEN(pv), flags)
@@ -491,11 +516,11 @@ Perl_xxx(aTHX_ ...) form for any API cal
 /*
 =for apidoc_section $versioning
 =for apidoc AmR|bool|PERL_VERSION_EQ|const U8 major|const U8 minor|const U8 patch
-=for apidoc_item PERL_VERSION_NE
-=for apidoc_item PERL_VERSION_LT
-=for apidoc_item PERL_VERSION_LE
-=for apidoc_item PERL_VERSION_GT
 =for apidoc_item PERL_VERSION_GE
+=for apidoc_item PERL_VERSION_GT
+=for apidoc_item PERL_VERSION_LE
+=for apidoc_item PERL_VERSION_LT
+=for apidoc_item PERL_VERSION_NE
 
 Returns whether or not the perl currently being compiled has the specified
 relationship to the perl given by the parameters.  For example,
@@ -618,7 +643,7 @@ C<l1> gives the number of bytes in C<s1>
 Returns true or false.
 
 =for apidoc Am|bool|memCHRs|"list"|char c
-Returns the position of the first occurence of the byte C<c> in the literal
+Returns the position of the first occurrence of the byte C<c> in the literal
 string C<"list">, or NULL if C<c> doesn't appear in C<"list">.  All bytes are
 treated as unsigned char.  Thus this macro can be used to determine if C<c> is
 in a set of particular characters.  Unlike L<strchr(3)>, it works even if C<c>
@@ -725,12 +750,12 @@ based on the underlying C library functi
  * it comes to /\w+/ with tainting enabled, we *must* be able
  * to trust our character classes.
  *
- * Therefore, the default tests in the text of Perl will be
- * independent of locale.  Any code that wants to depend on
- * the current locale will use the tests that begin with "lc".
+ * Therefore, the default tests in the text of Perl will be independent of
+ * locale.  Any code that wants to depend on the current locale will use the
+ * macros that contain _LC in their names
  */
 
-#ifdef USE_LOCALE
+#ifdef USE_LOCALE_CTYPE
 #  ifndef CTYPE256
 #    define CTYPE256
 #  endif
@@ -814,13 +839,13 @@ future releases.
 
 =for apidoc Am|bool|isALPHA|UV ch
 =for apidoc_item ||isALPHA_A|UV ch
-=for apidoc_item ||isALPHA_L1|UV ch
-=for apidoc_item ||isALPHA_uvchr|UV ch
-=for apidoc_item ||isALPHA_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isALPHA_utf8|U8 * s|U8 * end
 =for apidoc_item ||isALPHA_LC|UV ch
-=for apidoc_item ||isALPHA_LC_uvchr|UV ch
 =for apidoc_item ||isALPHA_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isALPHA_LC_uvchr|UV ch
+=for apidoc_item ||isALPHA_L1|UV ch
+=for apidoc_item ||isALPHA_utf8|U8 * s|U8 * end
+=for apidoc_item ||isALPHA_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isALPHA_uvchr|UV ch
 Returns a boolean indicating whether the specified input is one of C<[A-Za-z]>,
 analogous to C<m/[[:alpha:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
@@ -833,38 +858,39 @@ that would be interested in them, such a
 
 =for apidoc Am|bool|isALPHANUMERIC|UV ch
 =for apidoc_item ||isALPHANUMERIC_A|UV ch
-=for apidoc_item ||isALPHANUMERIC_L1|UV ch
-=for apidoc_item ||isALPHANUMERIC_uvchr|UV ch
-=for apidoc_item ||isALPHANUMERIC_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isALPHANUMERIC_utf8|U8 * s|U8 * end
 =for apidoc_item ||isALPHANUMERIC_LC|UV ch
-=for apidoc_item ||isALPHANUMERIC_LC_uvchr|UV ch
 =for apidoc_item ||isALPHANUMERIC_LC_utf8_safe|U8 * s| U8 *end
-=for apidoc_item ||isALNUMC|UV ch
-=for apidoc_item ||isALNUMC_A|UV ch
-=for apidoc_item ||isALNUMC_L1|UV ch
-=for apidoc_item ||isALNUMC_LC|UV ch
-=for apidoc_item ||isALNUMC_LC_uvchr|UV ch
+=for apidoc_item ||isALPHANUMERIC_LC_uvchr|UV ch
+=for apidoc_item ||isALPHANUMERIC_L1|UV ch
+=for apidoc_item ||isALPHANUMERIC_utf8|U8 * s|U8 * end
+=for apidoc_item ||isALPHANUMERIC_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isALPHANUMERIC_uvchr|UV ch
 Returns a boolean indicating whether the specified character is one of
 C<[A-Za-z0-9]>, analogous to C<m/[[:alnum:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
 the variants.
 
-A (discouraged from use) synonym is C<isALNUMC> (where the C<C> suffix means
-this corresponds to the C language alphanumeric definition).  Also
-there are the variants
-C<isALNUMC_A>, C<isALNUMC_L1>
-C<isALNUMC_LC>, and C<isALNUMC_LC_uvchr>.
+=for apidoc Am|bool|isALNUMC|UV ch
+=for apidoc_item  ||isALNUMC_A|UV ch
+=for apidoc_item  ||isALNUMC_LC|UV ch
+=for apidoc_item  ||isALNUMC_LC_uvchr|UV ch
+=for apidoc_item  ||isALNUMC_L1|UV ch
+These are discouraged, backward compatibility macros for L</C<isALPHANUMERIC>>.
+That is, each returns a boolean indicating whether the specified character is
+one of C<[A-Za-z0-9]>, analogous to C<m/[[:alnum:]]/>.
+
+The C<C> suffix in the names was meant to indicate that they correspond to the
+C language L<C<isalnum(3)>>.
 
 =for apidoc Am|bool|isASCII|UV ch
 =for apidoc_item ||isASCII_A|UV ch
-=for apidoc_item ||isASCII_L1|UV ch
-=for apidoc_item ||isASCII_uvchr|UV ch
-=for apidoc_item ||isASCII_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isASCII_utf8|U8 * s|U8 * end
 =for apidoc_item ||isASCII_LC|UV ch
-=for apidoc_item ||isASCII_LC_uvchr|UV ch
 =for apidoc_item ||isASCII_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isASCII_LC_uvchr|UV ch
+=for apidoc_item ||isASCII_L1|UV ch
+=for apidoc_item ||isASCII_utf8|U8 * s|U8 * end
+=for apidoc_item ||isASCII_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isASCII_uvchr|UV ch
 Returns a boolean indicating whether the specified character is one of the 128
 characters in the ASCII character set, analogous to C<m/[[:ascii:]]/>.
 On non-ASCII platforms, it returns TRUE iff this
@@ -884,13 +910,13 @@ C<isASCII_utf8_safe> will work properly 
 
 =for apidoc Am|bool|isBLANK|UV ch
 =for apidoc_item ||isBLANK_A|UV ch
-=for apidoc_item ||isBLANK_L1|UV ch
-=for apidoc_item ||isBLANK_uvchr|UV ch
-=for apidoc_item ||isBLANK_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isBLANK_utf8|U8 * s|U8 * end
 =for apidoc_item ||isBLANK_LC|UV ch
-=for apidoc_item ||isBLANK_LC_uvchr|UV ch
 =for apidoc_item ||isBLANK_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isBLANK_LC_uvchr|UV ch
+=for apidoc_item ||isBLANK_L1|UV ch
+=for apidoc_item ||isBLANK_utf8|U8 * s|U8 * end
+=for apidoc_item ||isBLANK_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isBLANK_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a
 character considered to be a blank, analogous to C<m/[[:blank:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
@@ -902,13 +928,13 @@ the same as the corresponding ones witho
 
 =for apidoc Am|bool|isCNTRL|UV ch
 =for apidoc_item ||isCNTRL_A|UV ch
-=for apidoc_item ||isCNTRL_L1|UV ch
-=for apidoc_item ||isCNTRL_uvchr|UV ch
-=for apidoc_item ||isCNTRL_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isCNTRL_utf8|U8 * s|U8 * end
 =for apidoc_item ||isCNTRL_LC|UV ch
-=for apidoc_item ||isCNTRL_LC_uvchr|UV ch
 =for apidoc_item ||isCNTRL_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isCNTRL_LC_uvchr|UV ch
+=for apidoc_item ||isCNTRL_L1|UV ch
+=for apidoc_item ||isCNTRL_utf8|U8 * s|U8 * end
+=for apidoc_item ||isCNTRL_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isCNTRL_uvchr|UV ch
 
 Returns a boolean indicating whether the specified character is a
 control character, analogous to C<m/[[:cntrl:]]/>.
@@ -918,13 +944,13 @@ On EBCDIC platforms, you almost always w
 
 =for apidoc Am|bool|isDIGIT|UV ch
 =for apidoc_item ||isDIGIT_A|UV ch
-=for apidoc_item ||isDIGIT_L1|UV ch
-=for apidoc_item ||isDIGIT_uvchr|UV ch
-=for apidoc_item ||isDIGIT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isDIGIT_utf8|U8 * s|U8 * end
 =for apidoc_item ||isDIGIT_LC|UV ch
-=for apidoc_item ||isDIGIT_LC_uvchr|UV ch
 =for apidoc_item ||isDIGIT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isDIGIT_LC_uvchr|UV ch
+=for apidoc_item ||isDIGIT_L1|UV ch
+=for apidoc_item ||isDIGIT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isDIGIT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isDIGIT_uvchr|UV ch
 
 Returns a boolean indicating whether the specified character is a
 digit, analogous to C<m/[[:digit:]]/>.
@@ -934,13 +960,13 @@ the variants.
 
 =for apidoc Am|bool|isGRAPH|UV ch
 =for apidoc_item ||isGRAPH_A|UV ch
-=for apidoc_item ||isGRAPH_L1|UV ch
-=for apidoc_item ||isGRAPH_uvchr|UV ch
-=for apidoc_item ||isGRAPH_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isGRAPH_utf8|U8 * s|U8 * end
 =for apidoc_item ||isGRAPH_LC|UV ch
-=for apidoc_item ||isGRAPH_LC_uvchr|UV ch
 =for apidoc_item ||isGRAPH_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isGRAPH_LC_uvchr|UV ch
+=for apidoc_item ||isGRAPH_L1|UV ch
+=for apidoc_item ||isGRAPH_utf8|U8 * s|U8 * end
+=for apidoc_item ||isGRAPH_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isGRAPH_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a
 graphic character, analogous to C<m/[[:graph:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
@@ -948,13 +974,13 @@ the variants.
 
 =for apidoc Am|bool|isLOWER|UV ch
 =for apidoc_item ||isLOWER_A|UV ch
-=for apidoc_item ||isLOWER_L1|UV ch
-=for apidoc_item ||isLOWER_uvchr|UV ch
-=for apidoc_item ||isLOWER_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isLOWER_utf8|U8 * s|U8 * end
 =for apidoc_item ||isLOWER_LC|UV ch
-=for apidoc_item ||isLOWER_LC_uvchr|UV ch
 =for apidoc_item ||isLOWER_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isLOWER_LC_uvchr|UV ch
+=for apidoc_item ||isLOWER_L1|UV ch
+=for apidoc_item ||isLOWER_utf8|U8 * s|U8 * end
+=for apidoc_item ||isLOWER_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isLOWER_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a
 lowercase character, analogous to C<m/[[:lower:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
@@ -970,13 +996,13 @@ C<isOCTAL>.
 
 =for apidoc Am|bool|isPUNCT|UV ch
 =for apidoc_item ||isPUNCT_A|UV ch
-=for apidoc_item ||isPUNCT_L1|UV ch
-=for apidoc_item ||isPUNCT_uvchr|UV ch
-=for apidoc_item ||isPUNCT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isPUNCT_utf8|U8 * s|U8 * end
 =for apidoc_item ||isPUNCT_LC|UV ch
-=for apidoc_item ||isPUNCT_LC_uvchr|UV ch
 =for apidoc_item ||isPUNCT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isPUNCT_LC_uvchr|UV ch
+=for apidoc_item ||isPUNCT_L1|UV ch
+=for apidoc_item ||isPUNCT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isPUNCT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isPUNCT_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a
 punctuation character, analogous to C<m/[[:punct:]]/>.
 Note that the definition of what is punctuation isn't as
@@ -987,13 +1013,13 @@ the variants.
 
 =for apidoc Am|bool|isSPACE|UV ch
 =for apidoc_item ||isSPACE_A|UV ch
-=for apidoc_item ||isSPACE_L1|UV ch
-=for apidoc_item ||isSPACE_uvchr|UV ch
-=for apidoc_item ||isSPACE_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isSPACE_utf8|U8 * s|U8 * end
 =for apidoc_item ||isSPACE_LC|UV ch
-=for apidoc_item ||isSPACE_LC_uvchr|UV ch
 =for apidoc_item ||isSPACE_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isSPACE_LC_uvchr|UV ch
+=for apidoc_item ||isSPACE_L1|UV ch
+=for apidoc_item ||isSPACE_utf8|U8 * s|U8 * end
+=for apidoc_item ||isSPACE_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isSPACE_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a
 whitespace character.  This is analogous
 to what C<m/\s/> matches in a regular expression.  Starting in Perl 5.18
@@ -1007,13 +1033,13 @@ the variants.
 
 =for apidoc Am|bool|isPSXSPC|UV ch
 =for apidoc_item ||isPSXSPC_A|UV ch
-=for apidoc_item ||isPSXSPC_L1|UV ch
-=for apidoc_item ||isPSXSPC_uvchr|UV ch
-=for apidoc_item ||isPSXSPC_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isPSXSPC_utf8|U8 * s|U8 * end
 =for apidoc_item ||isPSXSPC_LC|UV ch
-=for apidoc_item ||isPSXSPC_LC_uvchr|UV ch
 =for apidoc_item ||isPSXSPC_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isPSXSPC_LC_uvchr|UV ch
+=for apidoc_item ||isPSXSPC_L1|UV ch
+=for apidoc_item ||isPSXSPC_utf8|U8 * s|U8 * end
+=for apidoc_item ||isPSXSPC_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isPSXSPC_uvchr|UV ch
 (short for Posix Space)
 Starting in 5.18, this is identical in all its forms to the
 corresponding C<isSPACE()> macros.
@@ -1028,13 +1054,13 @@ the variants.
 
 =for apidoc Am|bool|isUPPER|UV ch
 =for apidoc_item ||isUPPER_A|UV ch
-=for apidoc_item ||isUPPER_L1|UV ch
-=for apidoc_item ||isUPPER_uvchr|UV ch
-=for apidoc_item ||isUPPER_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isUPPER_utf8|U8 * s|U8 * end
 =for apidoc_item ||isUPPER_LC|UV ch
-=for apidoc_item ||isUPPER_LC_uvchr|UV ch
 =for apidoc_item ||isUPPER_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isUPPER_LC_uvchr|UV ch
+=for apidoc_item ||isUPPER_L1|UV ch
+=for apidoc_item ||isUPPER_utf8|U8 * s|U8 * end
+=for apidoc_item ||isUPPER_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isUPPER_uvchr|UV ch
 Returns a boolean indicating whether the specified character is an
 uppercase character, analogous to C<m/[[:upper:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
@@ -1042,13 +1068,13 @@ the variants.
 
 =for apidoc Am|bool|isPRINT|UV ch
 =for apidoc_item ||isPRINT_A|UV ch
-=for apidoc_item ||isPRINT_L1|UV ch
-=for apidoc_item ||isPRINT_uvchr|UV ch
-=for apidoc_item ||isPRINT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isPRINT_utf8|U8 * s|U8 * end
 =for apidoc_item ||isPRINT_LC|UV ch
-=for apidoc_item ||isPRINT_LC_uvchr|UV ch
 =for apidoc_item ||isPRINT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isPRINT_LC_uvchr|UV ch
+=for apidoc_item ||isPRINT_L1|UV ch
+=for apidoc_item ||isPRINT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isPRINT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isPRINT_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a
 printable character, analogous to C<m/[[:print:]]/>.
 See the L<top of this section|/Character classification> for an explanation of
@@ -1056,41 +1082,48 @@ the variants.
 
 =for apidoc Am|bool|isWORDCHAR|UV ch
 =for apidoc_item ||isWORDCHAR_A|UV ch
-=for apidoc_item ||isWORDCHAR_L1|UV ch
-=for apidoc_item ||isWORDCHAR_uvchr|UV ch
-=for apidoc_item ||isWORDCHAR_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isWORDCHAR_utf8|U8 * s|U8 * end
 =for apidoc_item ||isWORDCHAR_LC|UV ch
-=for apidoc_item ||isWORDCHAR_LC_uvchr|UV ch
 =for apidoc_item ||isWORDCHAR_LC_utf8_safe|U8 * s| U8 *end
-=for apidoc_item ||isALNUM|UV ch
-=for apidoc_item ||isALNUM_A|UV ch
-=for apidoc_item ||isALNUM_LC|UV ch
-=for apidoc_item ||isALNUM_LC_uvchr|UV ch
+=for apidoc_item ||isWORDCHAR_LC_uvchr|UV ch
+=for apidoc_item ||isWORDCHAR_L1|UV ch
+=for apidoc_item ||isWORDCHAR_utf8|U8 * s|U8 * end
+=for apidoc_item ||isWORDCHAR_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isWORDCHAR_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a character
 that is a word character, analogous to what C<m/\w/> and C<m/[[:word:]]/> match
 in a regular expression.  A word character is an alphabetic character, a
 decimal digit, a connecting punctuation character (such as an underscore), or
 a "mark" character that attaches to one of those (like some sort of accent).
-C<isALNUM()> is a synonym provided for backward compatibility, even though a
-word character includes more than the standard C language meaning of
-alphanumeric.
+
 See the L<top of this section|/Character classification> for an explanation of
 the variants.
+
 C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uvchr>,
 C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, C<isWORDCHAR_LC_utf8>, and
 C<isWORDCHAR_LC_utf8_safe> are also as described there, but additionally
 include the platform's native underscore.
 
+=for apidoc Am|bool|isALNUM         |UV ch
+=for apidoc_item  ||isALNUM_A       |UV ch
+=for apidoc_item  ||isALNUM_LC      |UV ch
+=for apidoc_item  ||isALNUM_LC_uvchr|UV ch
+These are each a synonym for their respectively named L</C<isWORDCHAR>>
+variant.
+
+They are provided for backward compatibility, even though a word character
+includes more than the standard C language meaning of alphanumeric.
+To get the C language definition, use the corresponding L</C<isALPHANUMERIC>>
+variant.
+
 =for apidoc Am|bool|isXDIGIT|UV ch
 =for apidoc_item ||isXDIGIT_A|UV ch
-=for apidoc_item ||isXDIGIT_L1|UV ch
-=for apidoc_item ||isXDIGIT_uvchr|UV ch
-=for apidoc_item ||isXDIGIT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isXDIGIT_utf8|U8 * s|U8 * end
 =for apidoc_item ||isXDIGIT_LC|UV ch
-=for apidoc_item ||isXDIGIT_LC_uvchr|UV ch
 =for apidoc_item ||isXDIGIT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isXDIGIT_LC_uvchr|UV ch
+=for apidoc_item ||isXDIGIT_L1|UV ch
+=for apidoc_item ||isXDIGIT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isXDIGIT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isXDIGIT_uvchr|UV ch
 Returns a boolean indicating whether the specified character is a hexadecimal
 digit.  In the ASCII range these are C<[0-9A-Fa-f]>.  Variants C<isXDIGIT_A()>
 and C<isXDIGIT_L1()> are identical to C<isXDIGIT()>.
@@ -1099,13 +1132,13 @@ the variants.
 
 =for apidoc Am|bool|isIDFIRST|UV ch
 =for apidoc_item ||isIDFIRST_A|UV ch
-=for apidoc_item ||isIDFIRST_L1|UV ch
-=for apidoc_item ||isIDFIRST_uvchr|UV ch
-=for apidoc_item ||isIDFIRST_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isIDFIRST_utf8|U8 * s|U8 * end
 =for apidoc_item ||isIDFIRST_LC|UV ch
-=for apidoc_item ||isIDFIRST_LC_uvchr|UV ch
 =for apidoc_item ||isIDFIRST_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isIDFIRST_LC_uvchr|UV ch
+=for apidoc_item ||isIDFIRST_L1|UV ch
+=for apidoc_item ||isIDFIRST_utf8|U8 * s|U8 * end
+=for apidoc_item ||isIDFIRST_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isIDFIRST_uvchr|UV ch
 Returns a boolean indicating whether the specified character can be the first
 character of an identifier.  This is very close to, but not quite the same as
 the official Unicode property C<XID_Start>.  The difference is that this
@@ -1115,13 +1148,13 @@ the variants.
 
 =for apidoc Am|bool|isIDCONT|UV ch
 =for apidoc_item ||isIDCONT_A|UV ch
-=for apidoc_item ||isIDCONT_L1|UV ch
-=for apidoc_item ||isIDCONT_uvchr|UV ch
-=for apidoc_item ||isIDCONT_utf8_safe|U8 * s|U8 * end
-=for apidoc_item ||isIDCONT_utf8|U8 * s|U8 * end
 =for apidoc_item ||isIDCONT_LC|UV ch
-=for apidoc_item ||isIDCONT_LC_uvchr|UV ch
 =for apidoc_item ||isIDCONT_LC_utf8_safe|U8 * s| U8 *end
+=for apidoc_item ||isIDCONT_LC_uvchr|UV ch
+=for apidoc_item ||isIDCONT_L1|UV ch
+=for apidoc_item ||isIDCONT_utf8|U8 * s|U8 * end
+=for apidoc_item ||isIDCONT_utf8_safe|U8 * s|U8 * end
+=for apidoc_item ||isIDCONT_uvchr|UV ch
 Returns a boolean indicating whether the specified character can be the
 second or succeeding character of an identifier.  This is very close to, but
 not quite the same as the official Unicode property C<XID_Continue>.  The
@@ -1149,9 +1182,9 @@ results for the full range of possible i
 
 =for apidoc Am|UV|toUPPER|UV cp
 =for apidoc_item |UV|toUPPER_A|UV cp
-=for apidoc_item |UV|toUPPER_uvchr|UV cp|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toUPPER_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toUPPER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toUPPER_uvchr|UV cp|U8* s|STRLEN* lenp
 
 These all return the uppercase of a character.  The differences are what domain
 they operate on, and whether the input is specified as a code point (those
@@ -1198,9 +1231,9 @@ change in future releases.
 
 =for apidoc Am|UV|toFOLD|UV cp
 =for apidoc_item |UV|toFOLD_A|UV cp
-=for apidoc_item |UV|toFOLD_uvchr|UV cp|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toFOLD_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toFOLD_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toFOLD_uvchr|UV cp|U8* s|STRLEN* lenp
 
 These all return the foldcase of a character.  "foldcase" is an internal case
 for C</i> pattern matching. If the foldcase of character A and the foldcase of
@@ -1252,12 +1285,12 @@ change in future releases.
 
 =for apidoc Am|UV|toLOWER|UV cp
 =for apidoc_item |UV|toLOWER_A|UV cp
-=for apidoc_item |UV|toLOWER_L1|UV cp
 =for apidoc_item |UV|toLOWER_LATIN1|UV cp
 =for apidoc_item |UV|toLOWER_LC|UV cp
-=for apidoc_item |UV|toLOWER_uvchr|UV cp|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toLOWER_L1|UV cp
 =for apidoc_item |UV|toLOWER_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toLOWER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toLOWER_uvchr|UV cp|U8* s|STRLEN* lenp
 
 These all return the lowercase of a character.  The differences are what domain
 they operate on, and whether the input is specified as a code point (those
@@ -1309,9 +1342,9 @@ change in future releases.
 
 =for apidoc Am|UV|toTITLE|UV cp
 =for apidoc_item |UV|toTITLE_A|UV cp
-=for apidoc_item |UV|toTITLE_uvchr|UV cp|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toTITLE_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
 =for apidoc_item |UV|toTITLE_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+=for apidoc_item |UV|toTITLE_uvchr|UV cp|U8* s|STRLEN* lenp
 
 These all return the titlecase of a character.  The differences are what domain
 they operate on, and whether the input is specified as a code point (those
@@ -1362,6 +1395,7 @@ change in future releases.
 XXX Still undocumented isVERTWS_uvchr and _utf8; it's unclear what their names
 really should be.  Also toUPPER_LC and toFOLD_LC, which are subject to change,
 and aren't general purpose as they don't work on U+DF, and assert against that.
+and isCASED_LC, as it really is more of an internal thing.
 
 Note that these macros are repeated in Devel::PPPort, so should also be
 patched there.  The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
@@ -1385,11 +1419,7 @@ or casts
 =cut
 
 */
-#ifdef QUADKIND
-#   define WIDEST_UTYPE U64
-#else
-#   define WIDEST_UTYPE U32
-#endif
+#define WIDEST_UTYPE PERL_UINTMAX_T
 
 /* Where there could be some confusion, use this as a static assert in macros
  * to make sure that a parameter isn't a pointer.  But some compilers can't
@@ -1403,7 +1433,10 @@ or casts
 #endif
 
 /* Likewise, this is effectively a static assert to be used to guarantee the
- * parameter is a pointer */
+ * parameter is a pointer
+ *
+ * NOT suitable for void* 
+ */
 #define ASSERT_IS_PTR(x) (__ASSERT_(sizeof(*(x))) (x))
 
 /* FITS_IN_8_BITS(c) returns true if c doesn't have  a bit set other than in
@@ -1489,7 +1522,7 @@ or casts
 
 /* Character class numbers.  For internal core Perl use only.  The ones less
  * than 32 are used in PL_charclass[] and the ones up through the one that
- * corresponds to <_HIGHEST_REGCOMP_DOT_H_SYNC> are used by regcomp.h and
+ * corresponds to <HIGHEST_REGCOMP_DOT_H_SYNC_> are used by regcomp.h and
  * related files.  PL_charclass ones use names used in l1_char_class_tab.h but
  * their actual definitions are here.  If that file has a name not used here,
  * it won't compile.
@@ -1503,37 +1536,37 @@ or casts
  * to group these which have no members that match above Latin1, (or above
  * ASCII in the latter case) */
 
-#  define _CC_WORDCHAR           0      /* \w and [:word:] */
-#  define _CC_DIGIT              1      /* \d and [:digit:] */
-#  define _CC_ALPHA              2      /* [:alpha:] */
-#  define _CC_LOWER              3      /* [:lower:] */
-#  define _CC_UPPER              4      /* [:upper:] */
-#  define _CC_PUNCT              5      /* [:punct:] */
-#  define _CC_PRINT              6      /* [:print:] */
-#  define _CC_ALPHANUMERIC       7      /* [:alnum:] */
-#  define _CC_GRAPH              8      /* [:graph:] */
-#  define _CC_CASED              9      /* [:lower:] or [:upper:] under /i */
-#  define _CC_SPACE             10      /* \s, [:space:] */
-#  define _CC_BLANK             11      /* [:blank:] */
-#  define _CC_XDIGIT            12      /* [:xdigit:] */
-#  define _CC_CNTRL             13      /* [:cntrl:] */
-#  define _CC_ASCII             14      /* [:ascii:] */
-#  define _CC_VERTSPACE         15      /* \v */
+#  define CC_WORDCHAR_           0      /* \w and [:word:] */
+#  define CC_DIGIT_              1      /* \d and [:digit:] */
+#  define CC_ALPHA_              2      /* [:alpha:] */
+#  define CC_LOWER_              3      /* [:lower:] */
+#  define CC_UPPER_              4      /* [:upper:] */
+#  define CC_PUNCT_              5      /* [:punct:] */
+#  define CC_PRINT_              6      /* [:print:] */
+#  define CC_ALPHANUMERIC_       7      /* [:alnum:] */
+#  define CC_GRAPH_              8      /* [:graph:] */
+#  define CC_CASED_              9      /* [:lower:] or [:upper:] under /i */
+#  define CC_SPACE_             10      /* \s, [:space:] */
+#  define CC_BLANK_             11      /* [:blank:] */
+#  define CC_XDIGIT_            12      /* [:xdigit:] */
+#  define CC_CNTRL_             13      /* [:cntrl:] */
+#  define CC_ASCII_             14      /* [:ascii:] */
+#  define CC_VERTSPACE_         15      /* \v */
 
-#  define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_VERTSPACE
+#  define HIGHEST_REGCOMP_DOT_H_SYNC_ CC_VERTSPACE_
 
 /* The members of the third group below do not need to be coordinated with data
  * structures in regcomp.[ch] and regexec.c. */
-#  define _CC_IDFIRST                  16
-#  define _CC_CHARNAME_CONT            17
-#  define _CC_NONLATIN1_FOLD           18
-#  define _CC_NONLATIN1_SIMPLE_FOLD    19
-#  define _CC_QUOTEMETA                20
-#  define _CC_NON_FINAL_FOLD           21
-#  define _CC_IS_IN_SOME_FOLD          22
-#  define _CC_BINDIGIT                 23
-#  define _CC_OCTDIGIT                 24
-#  define _CC_MNEMONIC_CNTRL           25
+#  define CC_IDFIRST_                  16
+#  define CC_CHARNAME_CONT_            17
+#  define CC_NONLATIN1_FOLD_           18
+#  define CC_NONLATIN1_SIMPLE_FOLD_    19
+#  define CC_QUOTEMETA_                20
+#  define CC_NON_FINAL_FOLD_           21
+#  define CC_IS_IN_SOME_FOLD_          22
+#  define CC_BINDIGIT_                 23
+#  define CC_OCTDIGIT_                 24
+#  define CC_MNEMONIC_CNTRL_           25
 
 /* Unused: 26-31
  * If more bits are needed, one could add a second word for non-64bit
@@ -1550,26 +1583,26 @@ or casts
 /* An enum version of the character class numbers, to help compilers
  * optimize */
 typedef enum {
-    _CC_ENUM_ALPHA          = _CC_ALPHA,
-    _CC_ENUM_ALPHANUMERIC   = _CC_ALPHANUMERIC,
-    _CC_ENUM_ASCII          = _CC_ASCII,
-    _CC_ENUM_BLANK          = _CC_BLANK,
-    _CC_ENUM_CASED          = _CC_CASED,
-    _CC_ENUM_CNTRL          = _CC_CNTRL,
-    _CC_ENUM_DIGIT          = _CC_DIGIT,
-    _CC_ENUM_GRAPH          = _CC_GRAPH,
-    _CC_ENUM_LOWER          = _CC_LOWER,
-    _CC_ENUM_PRINT          = _CC_PRINT,
-    _CC_ENUM_PUNCT          = _CC_PUNCT,
-    _CC_ENUM_SPACE          = _CC_SPACE,
-    _CC_ENUM_UPPER          = _CC_UPPER,
-    _CC_ENUM_VERTSPACE      = _CC_VERTSPACE,
-    _CC_ENUM_WORDCHAR       = _CC_WORDCHAR,
-    _CC_ENUM_XDIGIT         = _CC_XDIGIT
-} _char_class_number;
+    CC_ENUM_ALPHA_          = CC_ALPHA_,
+    CC_ENUM_ALPHANUMERIC_   = CC_ALPHANUMERIC_,
+    CC_ENUM_ASCII_          = CC_ASCII_,
+    CC_ENUM_BLANK_          = CC_BLANK_,
+    CC_ENUM_CASED_          = CC_CASED_,
+    CC_ENUM_CNTRL_          = CC_CNTRL_,
+    CC_ENUM_DIGIT_          = CC_DIGIT_,
+    CC_ENUM_GRAPH_          = CC_GRAPH_,
+    CC_ENUM_LOWER_          = CC_LOWER_,
+    CC_ENUM_PRINT_          = CC_PRINT_,
+    CC_ENUM_PUNCT_          = CC_PUNCT_,
+    CC_ENUM_SPACE_          = CC_SPACE_,
+    CC_ENUM_UPPER_          = CC_UPPER_,
+    CC_ENUM_VERTSPACE_      = CC_VERTSPACE_,
+    CC_ENUM_WORDCHAR_       = CC_WORDCHAR_,
+    CC_ENUM_XDIGIT_         = CC_XDIGIT_
+} char_class_number_;
 #endif
 
-#define POSIX_CC_COUNT    (_HIGHEST_REGCOMP_DOT_H_SYNC + 1)
+#define POSIX_CC_COUNT    (HIGHEST_REGCOMP_DOT_H_SYNC_ + 1)
 
 START_EXTERN_C
 #  ifdef DOINIT
@@ -1583,32 +1616,32 @@ EXTCONST U32 PL_charclass[];
 END_EXTERN_C
 
     /* The 1U keeps Solaris from griping when shifting sets the uppermost bit */
-#   define _CC_mask(classnum) (1U << (classnum))
+#   define CC_mask_(classnum) (1U << (classnum))
 
     /* For internal core Perl use only: the base macro for defining macros like
      * isALPHA */
-#   define _generic_isCC(c, classnum) cBOOL(FITS_IN_8_BITS(c)    \
-                && (PL_charclass[(U8) (c)] & _CC_mask(classnum)))
+#   define generic_isCC_(c, classnum) cBOOL(FITS_IN_8_BITS(c)    \
+                && (PL_charclass[(U8) (c)] & CC_mask_(classnum)))
 
     /* The mask for the _A versions of the macros; it just adds in the bit for
      * ASCII. */
-#   define _CC_mask_A(classnum) (_CC_mask(classnum) | _CC_mask(_CC_ASCII))
+#   define CC_mask_A_(classnum) (CC_mask_(classnum) | CC_mask_(CC_ASCII_))
 
     /* For internal core Perl use only: the base macro for defining macros like
      * isALPHA_A.  The foo_A version makes sure that both the desired bit and
      * the ASCII bit are present */
-#   define _generic_isCC_A(c, classnum) (FITS_IN_8_BITS(c)      \
-        && ((PL_charclass[(U8) (c)] & _CC_mask_A(classnum))     \
-                                   == _CC_mask_A(classnum)))
+#   define generic_isCC_A_(c, classnum) (FITS_IN_8_BITS(c)      \
+        && ((PL_charclass[(U8) (c)] & CC_mask_A_(classnum))     \
+                                   == CC_mask_A_(classnum)))
 
 /* On ASCII platforms certain classes form a single range.  It's faster to
  * special case these.  isDIGIT is a single range on all platforms */
 #   ifdef EBCDIC
-#     define isALPHA_A(c)  _generic_isCC_A(c, _CC_ALPHA)
-#     define isGRAPH_A(c)  _generic_isCC_A(c, _CC_GRAPH)
-#     define isLOWER_A(c)  _generic_isCC_A(c, _CC_LOWER)
-#     define isPRINT_A(c)  _generic_isCC_A(c, _CC_PRINT)
-#     define isUPPER_A(c)  _generic_isCC_A(c, _CC_UPPER)
+#     define isALPHA_A(c)  generic_isCC_A_(c, CC_ALPHA_)
+#     define isGRAPH_A(c)  generic_isCC_A_(c, CC_GRAPH_)
+#     define isLOWER_A(c)  generic_isCC_A_(c, CC_LOWER_)
+#     define isPRINT_A(c)  generic_isCC_A_(c, CC_PRINT_)
+#     define isUPPER_A(c)  generic_isCC_A_(c, CC_UPPER_)
 #   else
       /* By folding the upper and lowercase, we can use a single range */
 #     define isALPHA_A(c)  inRANGE((~('A' ^ 'a') & (c)), 'A', 'Z')
@@ -1617,58 +1650,57 @@ END_EXTERN_C
 #     define isPRINT_A(c)  inRANGE(c, ' ', 0x7e)
 #     define isUPPER_A(c)  inRANGE(c, 'A', 'Z')
 #   endif
-#   define isALPHANUMERIC_A(c) _generic_isCC_A(c, _CC_ALPHANUMERIC)
-#   define isBLANK_A(c)  _generic_isCC_A(c, _CC_BLANK)
-#   define isCNTRL_A(c)  _generic_isCC_A(c, _CC_CNTRL)
+#   define isALPHANUMERIC_A(c) generic_isCC_A_(c, CC_ALPHANUMERIC_)
+#   define isBLANK_A(c)  generic_isCC_A_(c, CC_BLANK_)
+#   define isCNTRL_A(c)  generic_isCC_A_(c, CC_CNTRL_)
 #   define isDIGIT_A(c)  inRANGE(c, '0', '9')
-#   define isPUNCT_A(c)  _generic_isCC_A(c, _CC_PUNCT)
-#   define isSPACE_A(c)  _generic_isCC_A(c, _CC_SPACE)
-#   define isWORDCHAR_A(c) _generic_isCC_A(c, _CC_WORDCHAR)
-#   define isXDIGIT_A(c)  _generic_isCC(c, _CC_XDIGIT) /* No non-ASCII xdigits
-                                                        */
-#   define isIDFIRST_A(c) _generic_isCC_A(c, _CC_IDFIRST)
-#   define isALPHA_L1(c)  _generic_isCC(c, _CC_ALPHA)
-#   define isALPHANUMERIC_L1(c) _generic_isCC(c, _CC_ALPHANUMERIC)
-#   define isBLANK_L1(c)  _generic_isCC(c, _CC_BLANK)
+#   define isPUNCT_A(c)  generic_isCC_A_(c, CC_PUNCT_)
+#   define isSPACE_A(c)  generic_isCC_A_(c, CC_SPACE_)
+#   define isWORDCHAR_A(c) generic_isCC_A_(c, CC_WORDCHAR_)
+#   define isXDIGIT_A(c)  generic_isCC_(c, CC_XDIGIT_) /* No non-ASCII xdigits */
+#   define isIDFIRST_A(c) generic_isCC_A_(c, CC_IDFIRST_)
+#   define isALPHA_L1(c)  generic_isCC_(c, CC_ALPHA_)
+#   define isALPHANUMERIC_L1(c) generic_isCC_(c, CC_ALPHANUMERIC_)
+#   define isBLANK_L1(c)  generic_isCC_(c, CC_BLANK_)
 
     /* continuation character for legal NAME in \N{NAME} */
-#   define isCHARNAME_CONT(c) _generic_isCC(c, _CC_CHARNAME_CONT)
+#   define isCHARNAME_CONT(c) generic_isCC_(c, CC_CHARNAME_CONT_)
 
-#   define isCNTRL_L1(c)  _generic_isCC(c, _CC_CNTRL)
-#   define isGRAPH_L1(c)  _generic_isCC(c, _CC_GRAPH)
-#   define isLOWER_L1(c)  _generic_isCC(c, _CC_LOWER)
-#   define isPRINT_L1(c)  _generic_isCC(c, _CC_PRINT)
+#   define isCNTRL_L1(c)  generic_isCC_(c, CC_CNTRL_)
+#   define isGRAPH_L1(c)  generic_isCC_(c, CC_GRAPH_)
+#   define isLOWER_L1(c)  generic_isCC_(c, CC_LOWER_)
+#   define isPRINT_L1(c)  generic_isCC_(c, CC_PRINT_)
 #   define isPSXSPC_L1(c)  isSPACE_L1(c)
-#   define isPUNCT_L1(c)  _generic_isCC(c, _CC_PUNCT)
-#   define isSPACE_L1(c)  _generic_isCC(c, _CC_SPACE)
-#   define isUPPER_L1(c)  _generic_isCC(c, _CC_UPPER)
-#   define isWORDCHAR_L1(c) _generic_isCC(c, _CC_WORDCHAR)
-#   define isIDFIRST_L1(c) _generic_isCC(c, _CC_IDFIRST)
+#   define isPUNCT_L1(c)  generic_isCC_(c, CC_PUNCT_)
+#   define isSPACE_L1(c)  generic_isCC_(c, CC_SPACE_)
+#   define isUPPER_L1(c)  generic_isCC_(c, CC_UPPER_)
+#   define isWORDCHAR_L1(c) generic_isCC_(c, CC_WORDCHAR_)
+#   define isIDFIRST_L1(c) generic_isCC_(c, CC_IDFIRST_)
 
 #   ifdef EBCDIC
-#       define isASCII(c) _generic_isCC(c, _CC_ASCII)
+#       define isASCII(c) generic_isCC_(c, CC_ASCII_)
 #   endif
 
     /* Participates in a single-character fold with a character above 255 */
-#   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#     define HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(c)                          \
+#   if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_REGEXEC_C)
+#     define HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(c)                           \
         ((   ! cBOOL(FITS_IN_8_BITS(c)))                                    \
-          || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_SIMPLE_FOLD)))
+          || (PL_charclass[(U8) (c)] & CC_mask_(CC_NONLATIN1_SIMPLE_FOLD_)))
 
-#   define IS_NON_FINAL_FOLD(c)   _generic_isCC(c, _CC_NON_FINAL_FOLD)
-#   define IS_IN_SOME_FOLD_L1(c)  _generic_isCC(c, _CC_IS_IN_SOME_FOLD)
+#   define IS_NON_FINAL_FOLD(c)   generic_isCC_(c, CC_NON_FINAL_FOLD_)
+#   define IS_IN_SOME_FOLD_L1(c)  generic_isCC_(c, CC_IS_IN_SOME_FOLD_)
 #  endif
 
     /* Like the above, but also can be part of a multi-char fold */
 #   define HAS_NONLATIN1_FOLD_CLOSURE(c)                                    \
       (   (! cBOOL(FITS_IN_8_BITS(c)))                                      \
-       || (PL_charclass[(U8) (c)] & _CC_mask(_CC_NONLATIN1_FOLD)))
+       || (PL_charclass[(U8) (c)] & CC_mask_(CC_NONLATIN1_FOLD_)))
 
-#   define _isQUOTEMETA(c) _generic_isCC(c, _CC_QUOTEMETA)
+#   define _isQUOTEMETA(c) generic_isCC_(c, CC_QUOTEMETA_)
 
 /* is c a control character for which we have a mnemonic? */
 #  if defined(PERL_CORE) || defined(PERL_EXT)
-#     define isMNEMONIC_CNTRL(c) _generic_isCC(c, _CC_MNEMONIC_CNTRL)
+#     define isMNEMONIC_CNTRL(c) generic_isCC_(c, CC_MNEMONIC_CNTRL_)
 #  endif
 #else   /* else we don't have perl.h H_PERL */
 
@@ -1795,14 +1827,7 @@ END_EXTERN_C
     /* The following are not fully accurate in the above-ASCII range.  I (khw)
      * don't think it's necessary to be so for the purposes where this gets
      * compiled */
-#   define _isQUOTEMETA(c)      (FITS_IN_8_BITS(c) && ! isWORDCHAR_L1(c))
-#   define _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) isALPHA_L1(c)
-
-    /*  And these aren't accurate at all.  They are useful only for above
-     *  Latin1, which utilities and bootstrapping don't deal with */
-#   define _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) 0
-#   define _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) 0
-#   define _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) 0
+#   define isQUOTEMETA_(c)      (FITS_IN_8_BITS(c) && ! isWORDCHAR_L1(c))
 
     /* Many of the macros later in this file are defined in terms of these.  By
      * implementing them with a function, which converts the class number into
@@ -1811,9 +1836,9 @@ END_EXTERN_C
      * perl.h), and so a compiler error will be generated if one is attempted
      * to be used.  And the above-Latin1 code points require Unicode tables to
      * be present, something unlikely to be the case when bootstrapping */
-#   define _generic_isCC(c, classnum)                                        \
+#   define generic_isCC_(c, classnum)                                        \
          (FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), TRUE))
-#   define _generic_isCC_A(c, classnum)                                      \
+#   define generic_isCC_A_(c, classnum)                                      \
          (FITS_IN_8_BITS(c) && S_bootstrap_ctype((U8) (c), (classnum), FALSE))
 #endif  /* End of no perl.h H_PERL */
 
@@ -1873,181 +1898,242 @@ END_EXTERN_C
 #define toUPPER_LATIN1_MOD(c) ((! FITS_IN_8_BITS(c))                       \
                                ? (c)                                       \
                                : PL_mod_latin1_uc[ (U8) (c) ])
-#define IN_UTF8_CTYPE_LOCALE PL_in_utf8_CTYPE_locale
+#ifdef USE_LOCALE_CTYPE
+#  define IN_UTF8_CTYPE_LOCALE   PL_in_utf8_CTYPE_locale
+#  define IN_UTF8_TURKIC_LOCALE  PL_in_utf8_turkic_locale
+#else
+#  define IN_UTF8_CTYPE_LOCALE   false
+#  define IN_UTF8_TURKIC_LOCALE  false
+#endif
 
 /* Use foo_LC_uvchr() instead  of these for beyond the Latin1 range */
 
 /* For internal core Perl use only: the base macro for defining macros like
  * isALPHA_LC, which uses the current LC_CTYPE locale.  'c' is the code point
  * (0-255) to check.  In a UTF-8 locale, the result is the same as calling
- * isFOO_L1(); the 'utf8_locale_classnum' parameter is something like
- * _CC_UPPER, which gives the class number for doing this.  For non-UTF-8
- * locales, the code to actually do the test this is passed in 'non_utf8'.  If
- * 'c' is above 255, 0 is returned.  For accessing the full range of possible
- * code points under locale rules, use the macros based on _generic_LC_uvchr
- * instead of this. */
-#define _generic_LC_base(c, utf8_locale_classnum, non_utf8)                    \
-           (! FITS_IN_8_BITS(c)                                                \
-           ? 0                                                                 \
-           : IN_UTF8_CTYPE_LOCALE                                              \
-             ? cBOOL(PL_charclass[(U8) (c)] & _CC_mask(utf8_locale_classnum))  \
-             : cBOOL(non_utf8))
-
-/* For internal core Perl use only: a helper macro for defining macros like
- * isALPHA_LC.  'c' is the code point (0-255) to check.  The function name to
- * actually do this test is passed in 'non_utf8_func', which is called on 'c',
- * casting 'c' to the macro _LC_CAST, which should not be parenthesized.  See
- * _generic_LC_base for more info */
-#define _generic_LC(c, utf8_locale_classnum, non_utf8_func)                    \
-                        _generic_LC_base(c,utf8_locale_classnum,               \
-                                         non_utf8_func( (_LC_CAST) (c)))
-
-/* For internal core Perl use only: like _generic_LC, but also returns TRUE if
- * 'c' is the platform's native underscore character */
-#define _generic_LC_underscore(c,utf8_locale_classnum,non_utf8_func)           \
-                        _generic_LC_base(c, utf8_locale_classnum,              \
-                                         (non_utf8_func( (_LC_CAST) (c))       \
-                                          || (char)(c) == '_'))
-
-/* These next three are also for internal core Perl use only: case-change
- * helper macros.  The reason for using the PL_latin arrays is in case the
- * system function is defective; it ensures uniform results that conform to the
- * Unicod standard.   It does not handle the anomalies in UTF-8 Turkic locales */
-#define _generic_toLOWER_LC(c, function, cast)  (! FITS_IN_8_BITS(c)           \
-                                                ? (c)                          \
-                                                : (IN_UTF8_CTYPE_LOCALE)       \
-                                                  ? PL_latin1_lc[ (U8) (c) ]   \
-                                                  : (cast)function((cast)(c)))
-
-/* Note that the result can be larger than a byte in a UTF-8 locale.  It
- * returns a single value, so can't adequately return the upper case of LATIN
- * SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of two
- * values "SS");  instead it asserts against that under DEBUGGING, and
- * otherwise returns its input.  It does not handle the anomalies in UTF-8
- * Turkic locales. */
-#define _generic_toUPPER_LC(c, function, cast)                                 \
-                    (! FITS_IN_8_BITS(c)                                       \
-                    ? (c)                                                      \
-                    : ((! IN_UTF8_CTYPE_LOCALE)                                \
-                      ? (cast)function((cast)(c))                              \
-                      : ((((U8)(c)) == MICRO_SIGN)                             \
-                        ? GREEK_CAPITAL_LETTER_MU                              \
-                        : ((((U8)(c)) == LATIN_SMALL_LETTER_Y_WITH_DIAERESIS)  \
-                          ? LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS              \
-                          : ((((U8)(c)) == LATIN_SMALL_LETTER_SHARP_S)         \
-                            ? (__ASSERT_(0) (c))                               \
-                            : PL_mod_latin1_uc[ (U8) (c) ])))))
-
-/* Note that the result can be larger than a byte in a UTF-8 locale.  It
- * returns a single value, so can't adequately return the fold case of LATIN
- * SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of two
- * values "ss"); instead it asserts against that under DEBUGGING, and
- * otherwise returns its input.  It does not handle the anomalies in UTF-8
- * Turkic locales */
-#define _generic_toFOLD_LC(c, function, cast)                                  \
-                    ((UNLIKELY((c) == MICRO_SIGN) && IN_UTF8_CTYPE_LOCALE)     \
-                      ? GREEK_SMALL_LETTER_MU                                  \
-                      : (__ASSERT_(! IN_UTF8_CTYPE_LOCALE                      \
-                                   || (c) != LATIN_SMALL_LETTER_SHARP_S)       \
-                         _generic_toLOWER_LC(c, function, cast)))
-
-/* Use the libc versions for these if available. */
+ * isFOO_L1(); 'classnum' is something like CC_UPPER_, which gives the class
+ * number for doing this.  For non-UTF-8 locales, the code to actually do the
+ * test this is passed in 'non_utf8'.  If 'c' is above 255, 0 is returned.  For
+ * accessing the full range of possible code points under locale rules, use the
+ * macros based on generic_LC_uvchr_ instead of this. */
+#define generic_LC_base_(c, classnum, non_utf8_func)                        \
+       (! FITS_IN_8_BITS(c)                                                 \
+       ? 0                                                                  \
+       : IN_UTF8_CTYPE_LOCALE                                               \
+         ? cBOOL(PL_charclass[(U8) (c)] & CC_mask_(classnum))               \
+         : cBOOL(non_utf8_func(c)))
+
+/* A helper macro for defining macros like isALPHA_LC.  On systems without
+ * proper locales, these reduce to, e.g., isALPHA_A */
+#ifdef CTYPE256
+#  define generic_LC_(c, classnum, non_utf8_func)   \
+     generic_LC_base_(c, classnum, non_utf8_func)
+#else
+# define generic_LC_(c, classnum, non_utf8_func)    \
+     generic_isCC_A_(c, classnum)
+#endif
+
+/* Below are the definitions for the locale-sensitive character classification
+ * macros whose input domain is a byte, and the locale isn't UTF-8.  These are
+ * as close as possible to the bare versions on the platform and still yield
+ * POSIX Standard-compliant results.
+ *
+ * There is currently only one place these definitions should be used, in
+ * certain function calls like Perl_iswordchar_() in inline.h.
+ *
+ * Most likely you want to use the macros a ways below with names like
+ * isALPHA_LC().  Rarely, you may want isU8_ALPHA_LC(), somewhat below.
+ *
+ * The first two aren't in C89, so the fallback is to use the non-locale
+ * sensitive versions; these are the same for all platforms */
 #if defined(HAS_ISASCII)
-#   define isASCII_LC(c) (FITS_IN_8_BITS(c) && isascii( (U8) (c)))
+#   define is_posix_ASCII(c) isascii((U8) (c))
 #else
-#   define isASCII_LC(c) isASCII(c)
+#   define is_posix_ASCII(c) isASCII(c)
 #endif
 
 #if defined(HAS_ISBLANK)
-#   define isBLANK_LC(c) _generic_LC(c, _CC_BLANK, isblank)
-#else /* Unlike isASCII, varies if in a UTF-8 locale */
-#   define isBLANK_LC(c) ((IN_UTF8_CTYPE_LOCALE) ? isBLANK_L1(c) : isBLANK(c))
+#   define is_posix_BLANK(c) isblank((U8) (c))
+#else
+#   define is_posix_BLANK(c) isBLANK(c)
 #endif
 
-#define _LC_CAST U8
+/* The next few are the same in all platforms. */
+#define is_posix_CNTRL(c)     iscntrl((U8) (c))
+#define is_posix_IDFIRST(c)  (UNLIKELY((c) == '_') || is_posix_ALPHA(c))
+#define is_posix_SPACE(c)     isspace((U8) (c))
+#define is_posix_WORDCHAR(c) (UNLIKELY((c) == '_') || is_posix_ALPHANUMERIC(c))
+
+/* The base-level case changing macros are also the same in all platforms */
+#define to_posix_LOWER(c)     tolower((U8) (c))
+#define to_posix_UPPER(c)     toupper((U8) (c))
+#define to_posix_FOLD(c)      to_posix_LOWER(c)
 
 #ifdef WIN32
-    /* The Windows functions don't bother to follow the POSIX standard, which
-     * for example says that something can't both be a printable and a control.
-     * But Windows treats the \t control as a printable, and does such things
-     * as making superscripts into both digits and punctuation.  This tames
-     * these flaws by assuming that the definitions of both controls and space
-     * are correct, and then making sure that other definitions don't have
-     * weirdnesses, by making sure that isalnum() isn't also ispunct(), etc.
-     * Not all possible weirdnesses are checked for, just the ones that were
-     * detected on actual Microsoft code pages */
-
-#  define isCNTRL_LC(c)  _generic_LC(c, _CC_CNTRL, iscntrl)
-#  define isSPACE_LC(c)  _generic_LC(c, _CC_SPACE, isspace)
-
-#  define isALPHA_LC(c)  (_generic_LC(c, _CC_ALPHA, isalpha)                  \
-                                                    && isALPHANUMERIC_LC(c))
-#  define isALPHANUMERIC_LC(c)  (_generic_LC(c, _CC_ALPHANUMERIC, isalnum) && \
-                                                              ! isPUNCT_LC(c))
-#  define isDIGIT_LC(c)  (_generic_LC(c, _CC_DIGIT, isdigit) &&               \
-                                                         isALPHANUMERIC_LC(c))
-#  define isGRAPH_LC(c)  (_generic_LC(c, _CC_GRAPH, isgraph) && isPRINT_LC(c))
-#  define isIDFIRST_LC(c) (((c) == '_')                                       \
-                 || (_generic_LC(c, _CC_IDFIRST, isalpha) && ! isPUNCT_LC(c)))
-#  define isLOWER_LC(c)  (_generic_LC(c, _CC_LOWER, islower) && isALPHA_LC(c))
-#  define isPRINT_LC(c)  (_generic_LC(c, _CC_PRINT, isprint) && ! isCNTRL_LC(c))
-#  define isPUNCT_LC(c)  (_generic_LC(c, _CC_PUNCT, ispunct) && ! isCNTRL_LC(c))
-#  define isUPPER_LC(c)  (_generic_LC(c, _CC_UPPER, isupper) && isALPHA_LC(c))
-#  define isWORDCHAR_LC(c) (((c) == '_') || isALPHANUMERIC_LC(c))
-#  define isXDIGIT_LC(c) (_generic_LC(c, _CC_XDIGIT, isxdigit)                \
-                                                    && isALPHANUMERIC_LC(c))
-
-#  define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
-#  define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
-#  define toFOLD_LC(c)  _generic_toFOLD_LC((c), tolower, U8)
-
-#elif defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))
-    /* For most other platforms */
-
-#  define isALPHA_LC(c)   _generic_LC(c, _CC_ALPHA, isalpha)
-#  define isALPHANUMERIC_LC(c)  _generic_LC(c, _CC_ALPHANUMERIC, isalnum)
-#  define isCNTRL_LC(c)    _generic_LC(c, _CC_CNTRL, iscntrl)
-#  define isDIGIT_LC(c)    _generic_LC(c, _CC_DIGIT, isdigit)
-#  ifdef OS390  /* This system considers NBSP to be a graph */
-#    define isGRAPH_LC(c)    _generic_LC(c, _CC_GRAPH, isgraph)             \
-                        && ! isSPACE_LC(c)
+
+/* The Windows functions don't bother to follow the POSIX standard, which for
+ * example says that something can't both be a printable and a control.  But
+ * Windows treats \t as both a control and a printable, and does such things as
+ * making superscripts into both digits and punctuation.  These #defines tame
+ * these flaws by assuming that the definitions of controls (and the other few
+ * ones defined above) are correct, and then making sure that other definitions
+ * don't have weirdnesses, by adding a check that \w and its subsets aren't
+ * ispunct(), and things that are \W, like ispunct(), arent't controls.  Not
+ * all possible weirdnesses are checked for, just ones that were detected on
+ * actual Microsoft code pages */
+#  define is_posix_ALPHA(c)                                          \
+                          (isalpha((U8) (c)) && ! is_posix_PUNCT(c))
+#  define is_posix_ALPHANUMERIC(c)                                   \
+                          (isalnum((U8) (c)) && ! is_posix_PUNCT(c))
+#  define is_posix_CASED(c)                                          \
+   ((isupper((U8) (c)) || islower((U8) (c))) && ! is_posix_PUNCT(c))
+#  define is_posix_DIGIT(c)                                          \
+                          (isdigit((U8) (c)) && ! is_posix_PUNCT(c))
+#  define is_posix_GRAPH(c)                                          \
+                          (isgraph((U8) (c)) && ! is_posix_CNTRL(c))
+#  define is_posix_LOWER(c)                                          \
+                          (islower((U8) (c)) && ! is_posix_PUNCT(c))
+#  define is_posix_PRINT(c)                                          \
+                          (isprint((U8) (c)) && ! is_posix_CNTRL(c))
+#  define is_posix_PUNCT(c)                                          \
+                          (ispunct((U8) (c)) && ! is_posix_CNTRL(c))
+#  define is_posix_UPPER(c)                                          \
+                          (isupper((U8) (c)) && ! is_posix_PUNCT(c))
+#  define is_posix_XDIGIT(c)                                         \
+                         (isxdigit((U8) (c)) && ! is_posix_PUNCT(c))
+#else
+
+/* For all other platforms, as far as we know, isdigit(), etc. work sanely
+ * enough */
+#  define is_posix_ALPHA(c)         isalpha((U8) (c))
+#  define is_posix_ALPHANUMERIC(c)  isalnum((U8) (c))
+#  define is_posix_CASED(c)        (islower((U8) (c)) || isupper((U8) (c)))
+#  define is_posix_DIGIT(c)         isdigit((U8) (c))
+
+     /* ... But it seems that IBM products treat NBSP as both a space and a
+      * graphic; these are the two platforms that we have active test beds for.
+      */
+#  if defined(OS390) || defined(_AIX)
+#    define is_posix_GRAPH(c)      (isgraph((U8) (c)) && ! isspace((U8) (c)))
 #  else
-#    define isGRAPH_LC(c)    _generic_LC(c, _CC_GRAPH, isgraph)
+#    define is_posix_GRAPH(c)       isgraph((U8) (c))
 #  endif
-#  define isIDFIRST_LC(c)  _generic_LC_underscore(c, _CC_IDFIRST, isalpha)
-#  define isLOWER_LC(c)    _generic_LC(c, _CC_LOWER, islower)
-#  define isPRINT_LC(c)    _generic_LC(c, _CC_PRINT, isprint)
-#  define isPUNCT_LC(c)    _generic_LC(c, _CC_PUNCT, ispunct)
-#  define isSPACE_LC(c)    _generic_LC(c, _CC_SPACE, isspace)
-#  define isUPPER_LC(c)    _generic_LC(c, _CC_UPPER, isupper)
-#  define isWORDCHAR_LC(c) _generic_LC_underscore(c, _CC_WORDCHAR, isalnum)
-#  define isXDIGIT_LC(c)   _generic_LC(c, _CC_XDIGIT, isxdigit)
-
-
-#  define toLOWER_LC(c) _generic_toLOWER_LC((c), tolower, U8)
-#  define toUPPER_LC(c) _generic_toUPPER_LC((c), toupper, U8)
-#  define toFOLD_LC(c)  _generic_toFOLD_LC((c), tolower, U8)
-
-#else  /* The final fallback position */
-
-#  define isALPHA_LC(c)	        (isascii(c) && isalpha(c))
-#  define isALPHANUMERIC_LC(c)  (isascii(c) && isalnum(c))
-#  define isCNTRL_LC(c)	        (isascii(c) && iscntrl(c))
-#  define isDIGIT_LC(c)	        (isascii(c) && isdigit(c))
-#  define isGRAPH_LC(c)	        (isascii(c) && isgraph(c))
-#  define isIDFIRST_LC(c)	(isascii(c) && (isalpha(c) || (c) == '_'))
-#  define isLOWER_LC(c)	        (isascii(c) && islower(c))
-#  define isPRINT_LC(c)	        (isascii(c) && isprint(c))
-#  define isPUNCT_LC(c)	        (isascii(c) && ispunct(c))
-#  define isSPACE_LC(c)	        (isascii(c) && isspace(c))
-#  define isUPPER_LC(c)	        (isascii(c) && isupper(c))
-#  define isWORDCHAR_LC(c)	(isascii(c) && (isalnum(c) || (c) == '_'))
-#  define isXDIGIT_LC(c)        (isascii(c) && isxdigit(c))
-
-#  define toLOWER_LC(c)	(isascii(c) ? tolower(c) : (c))
-#  define toUPPER_LC(c)	(isascii(c) ? toupper(c) : (c))
-#  define toFOLD_LC(c)	(isascii(c) ? tolower(c) : (c))
+#  define is_posix_LOWER(c)         islower((U8) (c))
+#  define is_posix_PRINT(c)         isprint((U8) (c))
+#  define is_posix_PUNCT(c)         ispunct((U8) (c))
+#  define is_posix_UPPER(c)         isupper((U8) (c))
+#  define is_posix_XDIGIT(c)        isxdigit((U8) (c))
+#endif
+
+/* Below is the next level up, which currently expands to nothing more
+ * than the previous layer.  These are the macros to use if you really need
+ * something whose input domain is a byte, and the locale isn't UTF-8; that is,
+ * where you normally would have to use things like bare isalnum().
+ *
+ * But most likely you should instead use the layer defined further below which
+ * has names like isALPHA_LC.  They deal with larger-than-byte inputs, and
+ * UTF-8 locales.
+ *
+ * (Note, proper general operation of the bare libc functions requires you to
+ * cast to U8.  These do that for you automatically.) */
 
+#  define WRAP_U8_LC_(c, classnum, posix)  posix(c)
+
+#define isU8_ALPHANUMERIC_LC(c)                                                \
+              WRAP_U8_LC_((c), CC_ALPHANUMERIC_, is_posix_ALPHANUMERIC)
+#define isU8_ALPHA_LC(c)    WRAP_U8_LC_((c), CC_ALPHA_, is_posix_ALPHA)
+#define isU8_ASCII_LC(c)    WRAP_U8_LC_((c), CC_ASCII_, is_posix_ASCII)
+#define isU8_BLANK_LC(c)    WRAP_U8_LC_((c), CC_BLANK_, is_posix_BLANK)
+#define isU8_CASED_LC(c)    WRAP_U8_LC_((c), CC_CASED_, is_posix_CASED)
+#define isU8_CNTRL_LC(c)    WRAP_U8_LC_((c), CC_CNTRL_, is_posix_CNTRL)
+#define isU8_DIGIT_LC(c)    WRAP_U8_LC_((c), CC_DIGIT_, is_posix_DIGIT)
+#define isU8_GRAPH_LC(c)    WRAP_U8_LC_((c), CC_GRAPH_, is_posix_GRAPH)
+#define isU8_IDFIRST_LC(c)  WRAP_U8_LC_((c), CC_IDFIRST_, is_posix_IDFIRST)
+#define isU8_LOWER_LC(c)    WRAP_U8_LC_((c), CC_LOWER_, is_posix_LOWER)
+#define isU8_PRINT_LC(c)    WRAP_U8_LC_((c), CC_PRINT_, is_posix_PRINT)
+#define isU8_PUNCT_LC(c)    WRAP_U8_LC_((c), CC_PUNCT_, is_posix_PUNCT)
+#define isU8_SPACE_LC(c)    WRAP_U8_LC_((c), CC_SPACE_, is_posix_SPACE)
+#define isU8_UPPER_LC(c)    WRAP_U8_LC_((c), CC_UPPER_, is_posix_UPPER)
+#define isU8_WORDCHAR_LC(c) WRAP_U8_LC_((c), CC_WORDCHAR_, is_posix_WORDCHAR)
+#define isU8_XDIGIT_LC(c)   WRAP_U8_LC_((c), CC_XDIGIT_, is_posix_XDIGIT)
+
+#define toU8_LOWER_LC(c)    WRAP_U8_LC_((c), CC_TOLOWER_, to_posix_LOWER)
+#define toU8_UPPER_LC(c)    WRAP_U8_LC_((c), CC_TOUPPER_, to_posix_UPPER)
+#define toU8_FOLD_LC(c)     toU8_LOWER_LC(c)
+
+/* The definitions below use the ones above to create versions in which the
+ * input domain isn't restricted to bytes (though always returning false if the
+ * input doesn't fit in a byte), and to behave properly should the locale be
+ * UTF-8.  These are the documented ones, suitable for general use (though
+ * toUPPER_LC and toFOLD_LC aren't documented because they need special
+ * handling to deal with SHARP S expanding to two characters). */
+
+#define isASCII_LC(c)               (FITS_IN_8_BITS(c) && isU8_ASCII_LC(c))
+#define isALPHA_LC(c)               generic_LC_(c, CC_ALPHA_, isU8_ALPHA_LC)
+#define isALPHANUMERIC_LC(c)                                                \
+                      generic_LC_(c, CC_ALPHANUMERIC_, isU8_ALPHANUMERIC_LC)
+#define isBLANK_LC(c)               generic_LC_(c, CC_BLANK_, isU8_BLANK_LC)
+#define isCASED_LC(c)               generic_LC_(c, CC_CASED_, isU8_CASED_LC)
+#define isCNTRL_LC(c)               generic_LC_(c, CC_CNTRL_, isU8_CNTRL_LC)
+#define isDIGIT_LC(c)               generic_LC_(c, CC_DIGIT_, isU8_DIGIT_LC)
+#define isGRAPH_LC(c)               generic_LC_(c, CC_GRAPH_, isU8_GRAPH_LC)
+#define isIDFIRST_LC(c)         generic_LC_(c, CC_IDFIRST_, isU8_IDFIRST_LC)
+#define isLOWER_LC(c)               generic_LC_(c, CC_LOWER_, isU8_LOWER_LC)
+#define isPRINT_LC(c)               generic_LC_(c, CC_PRINT_, isU8_PRINT_LC)
+#define isPUNCT_LC(c)               generic_LC_(c, CC_PUNCT_, isU8_PUNCT_LC)
+#define isSPACE_LC(c)               generic_LC_(c, CC_SPACE_, isU8_SPACE_LC)
+#define isUPPER_LC(c)               generic_LC_(c, CC_UPPER_, isU8_UPPER_LC)
+#define isWORDCHAR_LC(c)      generic_LC_(c, CC_WORDCHAR_, isU8_WORDCHAR_LC)
+#define isXDIGIT_LC(c)            generic_LC_(c, CC_XDIGIT_, isU8_XDIGIT_LC)
+
+#ifndef CTYPE256
+#  define toLOWER_LC(c)             toLOWER_A(c)
+#  define toUPPER_LC(c)             toUPPER_A(c)
+#  define toFOLD_LC(c)              toFOLD_A(c)
+#else
+
+/* In the next three macros, the reason for using the PL_latin arrays is in
+ * case the system function is defective; it ensures uniform results that
+ * conform to the Unicode standard. */
+
+/* This does not handle the anomalies in UTF-8 Turkic locales. */
+#  define toLOWER_LC(c)  ((! FITS_IN_8_BITS(c))                             \
+                          ? (c)                                             \
+                          : ((IN_UTF8_CTYPE_LOCALE)                         \
+                             ? PL_latin1_lc[ (U8) (c) ]                     \
+                             : ((U8) toU8_LOWER_LC(c))))
+
+/* In this macro, note that the result can be larger than a byte in a UTF-8
+ * locale.  It returns a single value, so can't adequately return the upper
+ * case of LATIN SMALL LETTER SHARP S in a UTF-8 locale (which should be a
+ * string of two values "SS");  instead it asserts against that under
+ * DEBUGGING, and otherwise returns its input.  It does not handle the
+ * anomalies in UTF-8 Turkic locales. */
+#  define toUPPER_LC(c)                                                     \
+    ((! FITS_IN_8_BITS(c))                                                  \
+     ? (c)                                                                  \
+     : ((! IN_UTF8_CTYPE_LOCALE)                                            \
+        ? ((U8) toU8_UPPER_LC(c))                                           \
+        : (UNLIKELY(((U8)(c)) == MICRO_SIGN)                                \
+           ? GREEK_CAPITAL_LETTER_MU                                        \
+           : ((UNLIKELY(((U8) (c)) == LATIN_SMALL_LETTER_Y_WITH_DIAERESIS)  \
+              ? LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS                       \
+              : (UNLIKELY(((U8)(c)) == LATIN_SMALL_LETTER_SHARP_S)          \
+                ? (__ASSERT_(0) (c)) /* Fail on Sharp S in DEBUGGING */     \
+                : PL_mod_latin1_uc[ (U8) (c) ]))))))
+
+/* In this macro, note that the result can be larger than a byte in a UTF-8
+ * locale.  It returns a single value, so can't adequately return the fold case
+ * of LATIN SMALL LETTER SHARP S in a UTF-8 locale (which should be a string of
+ * two values "ss"); instead it asserts against that under DEBUGGING, and
+ * otherwise returns its input.  It does not handle the anomalies in UTF-8
+ * Turkic locales */
+#  define toFOLD_LC(c)                                                      \
+                ((UNLIKELY((c) == MICRO_SIGN) && IN_UTF8_CTYPE_LOCALE)      \
+                 ? GREEK_SMALL_LETTER_MU                                    \
+                 : (__ASSERT_(   ! IN_UTF8_CTYPE_LOCALE                     \
+                              || LIKELY((c) != LATIN_SMALL_LETTER_SHARP_S)) \
+                    toLOWER_LC(c)))
 #endif
 
 #define isIDCONT(c)             isWORDCHAR(c)
@@ -2058,46 +2144,46 @@ END_EXTERN_C
 
 /* For internal core Perl use only: the base macros for defining macros like
  * isALPHA_uvchr.  'c' is the code point to check.  'classnum' is the POSIX class
- * number defined earlier in this file.  _generic_uvchr() is used for POSIX
+ * number defined earlier in this file.  generic_uvchr_() is used for POSIX
  * classes where there is a macro or function 'above_latin1' that takes the
  * single argument 'c' and returns the desired value.  These exist for those
  * classes which have simple definitions, avoiding the overhead of an inversion
- * list binary search.  _generic_invlist_uvchr() can be used
+ * list binary search.  generic_invlist_uvchr_() can be used
  * for classes where that overhead is faster than a direct lookup.
- * _generic_uvchr() won't compile if 'c' isn't unsigned, as it won't match the
- * 'above_latin1' prototype. _generic_isCC() macro does bounds checking, so
+ * generic_uvchr_() won't compile if 'c' isn't unsigned, as it won't match the
+ * 'above_latin1' prototype. generic_isCC_() macro does bounds checking, so
  * have duplicate checks here, so could create versions of the macros that
  * don't, but experiments show that gcc optimizes them out anyway. */
 
 /* Note that all ignore 'use bytes' */
-#define _generic_uvchr(classnum, above_latin1, c) ((c) < 256                \
-                                             ? _generic_isCC(c, classnum)   \
+#define generic_uvchr_(classnum, above_latin1, c) ((c) < 256                \
+                                             ? generic_isCC_(c, classnum)   \
                                              : above_latin1(c))
-#define _generic_invlist_uvchr(classnum, c) ((c) < 256                        \
-                                             ? _generic_isCC(c, classnum)   \
+#define generic_invlist_uvchr_(classnum, c) ((c) < 256                      \
+                                             ? generic_isCC_(c, classnum)   \
                                              : _is_uni_FOO(classnum, c))
-#define isALPHA_uvchr(c)      _generic_invlist_uvchr(_CC_ALPHA, c)
-#define isALPHANUMERIC_uvchr(c) _generic_invlist_uvchr(_CC_ALPHANUMERIC, c)
+#define isALPHA_uvchr(c)      generic_invlist_uvchr_(CC_ALPHA_, c)
+#define isALPHANUMERIC_uvchr(c) generic_invlist_uvchr_(CC_ALPHANUMERIC_, c)
 #define isASCII_uvchr(c)      isASCII(c)
-#define isBLANK_uvchr(c)      _generic_uvchr(_CC_BLANK, is_HORIZWS_cp_high, c)
+#define isBLANK_uvchr(c)      generic_uvchr_(CC_BLANK_, is_HORIZWS_cp_high, c)
 #define isCNTRL_uvchr(c)      isCNTRL_L1(c) /* All controls are in Latin1 */
-#define isDIGIT_uvchr(c)      _generic_invlist_uvchr(_CC_DIGIT, c)
-#define isGRAPH_uvchr(c)      _generic_invlist_uvchr(_CC_GRAPH, c)
+#define isDIGIT_uvchr(c)      generic_invlist_uvchr_(CC_DIGIT_, c)
+#define isGRAPH_uvchr(c)      generic_invlist_uvchr_(CC_GRAPH_, c)
 #define isIDCONT_uvchr(c)                                                   \
-                    _generic_uvchr(_CC_WORDCHAR, _is_uni_perl_idcont, c)
+                    generic_uvchr_(CC_WORDCHAR_, _is_uni_perl_idcont, c)
 #define isIDFIRST_uvchr(c)                                                  \
-                    _generic_uvchr(_CC_IDFIRST, _is_uni_perl_idstart, c)
-#define isLOWER_uvchr(c)      _generic_invlist_uvchr(_CC_LOWER, c)
-#define isPRINT_uvchr(c)      _generic_invlist_uvchr(_CC_PRINT, c)
+                    generic_uvchr_(CC_IDFIRST_, _is_uni_perl_idstart, c)
+#define isLOWER_uvchr(c)      generic_invlist_uvchr_(CC_LOWER_, c)
+#define isPRINT_uvchr(c)      generic_invlist_uvchr_(CC_PRINT_, c)
 
-#define isPUNCT_uvchr(c)      _generic_invlist_uvchr(_CC_PUNCT, c)
-#define isSPACE_uvchr(c)      _generic_uvchr(_CC_SPACE, is_XPERLSPACE_cp_high, c)
+#define isPUNCT_uvchr(c)      generic_invlist_uvchr_(CC_PUNCT_, c)
+#define isSPACE_uvchr(c)      generic_uvchr_(CC_SPACE_, is_XPERLSPACE_cp_high, c)
 #define isPSXSPC_uvchr(c)     isSPACE_uvchr(c)
 
-#define isUPPER_uvchr(c)      _generic_invlist_uvchr(_CC_UPPER, c)
-#define isVERTWS_uvchr(c)     _generic_uvchr(_CC_VERTSPACE, is_VERTWS_cp_high, c)
-#define isWORDCHAR_uvchr(c)   _generic_invlist_uvchr(_CC_WORDCHAR, c)
-#define isXDIGIT_uvchr(c)     _generic_uvchr(_CC_XDIGIT, is_XDIGIT_cp_high, c)
+#define isUPPER_uvchr(c)      generic_invlist_uvchr_(CC_UPPER_, c)
+#define isVERTWS_uvchr(c)     generic_uvchr_(CC_VERTSPACE_, is_VERTWS_cp_high, c)
+#define isWORDCHAR_uvchr(c)   generic_invlist_uvchr_(CC_WORDCHAR_, c)
+#define isXDIGIT_uvchr(c)     generic_uvchr_(CC_XDIGIT_, is_XDIGIT_cp_high, c)
 
 #define toFOLD_uvchr(c,s,l)	to_uni_fold(c,s,l)
 #define toLOWER_uvchr(c,s,l)	to_uni_lower(c,s,l)
@@ -2131,37 +2217,37 @@ END_EXTERN_C
 
 /* For internal core Perl use only: the base macros for defining macros like
  * isALPHA_LC_uvchr.  These are like isALPHA_LC, but the input can be any code
- * point, not just 0-255.  Like _generic_uvchr, there are two versions, one for
+ * point, not just 0-255.  Like generic_uvchr_, there are two versions, one for
  * simple class definitions; the other for more complex.  These are like
- * _generic_uvchr, so see it for more info. */
-#define _generic_LC_uvchr(latin1, above_latin1, c)                            \
+ * generic_uvchr_, so see it for more info. */
+#define generic_LC_uvchr_(latin1, above_latin1, c)                            \
                                     (c < 256 ? latin1(c) : above_latin1(c))
-#define _generic_LC_invlist_uvchr(latin1, classnum, c)                          \
+#define generic_LC_invlist_uvchr_(latin1, classnum, c)                        \
                             (c < 256 ? latin1(c) : _is_uni_FOO(classnum, c))
 
-#define isALPHA_LC_uvchr(c)  _generic_LC_invlist_uvchr(isALPHA_LC, _CC_ALPHA, c)
-#define isALPHANUMERIC_LC_uvchr(c)  _generic_LC_invlist_uvchr(isALPHANUMERIC_LC, \
-                                                         _CC_ALPHANUMERIC, c)
+#define isALPHA_LC_uvchr(c)  generic_LC_invlist_uvchr_(isALPHA_LC, CC_ALPHA_, c)
+#define isALPHANUMERIC_LC_uvchr(c)  generic_LC_invlist_uvchr_(isALPHANUMERIC_LC, \
+                                                         CC_ALPHANUMERIC_, c)
 #define isASCII_LC_uvchr(c)   isASCII_LC(c)
-#define isBLANK_LC_uvchr(c)  _generic_LC_uvchr(isBLANK_LC,                    \
+#define isBLANK_LC_uvchr(c)  generic_LC_uvchr_(isBLANK_LC,                    \
                                                         is_HORIZWS_cp_high, c)
 #define isCNTRL_LC_uvchr(c)  (c < 256 ? isCNTRL_LC(c) : 0)
-#define isDIGIT_LC_uvchr(c)  _generic_LC_invlist_uvchr(isDIGIT_LC, _CC_DIGIT, c)
-#define isGRAPH_LC_uvchr(c)  _generic_LC_invlist_uvchr(isGRAPH_LC, _CC_GRAPH, c)
-#define isIDCONT_LC_uvchr(c) _generic_LC_uvchr(isIDCONT_LC,                   \
+#define isDIGIT_LC_uvchr(c)  generic_LC_invlist_uvchr_(isDIGIT_LC, CC_DIGIT_, c)
+#define isGRAPH_LC_uvchr(c)  generic_LC_invlist_uvchr_(isGRAPH_LC, CC_GRAPH_, c)
+#define isIDCONT_LC_uvchr(c) generic_LC_uvchr_(isIDCONT_LC,                   \
                                                   _is_uni_perl_idcont, c)
-#define isIDFIRST_LC_uvchr(c) _generic_LC_uvchr(isIDFIRST_LC,                 \
+#define isIDFIRST_LC_uvchr(c) generic_LC_uvchr_(isIDFIRST_LC,                 \
                                                   _is_uni_perl_idstart, c)
-#define isLOWER_LC_uvchr(c)  _generic_LC_invlist_uvchr(isLOWER_LC, _CC_LOWER, c)
-#define isPRINT_LC_uvchr(c)  _generic_LC_invlist_uvchr(isPRINT_LC, _CC_PRINT, c)
+#define isLOWER_LC_uvchr(c)  generic_LC_invlist_uvchr_(isLOWER_LC, CC_LOWER_, c)
+#define isPRINT_LC_uvchr(c)  generic_LC_invlist_uvchr_(isPRINT_LC, CC_PRINT_, c)
 #define isPSXSPC_LC_uvchr(c)  isSPACE_LC_uvchr(c)
-#define isPUNCT_LC_uvchr(c)  _generic_LC_invlist_uvchr(isPUNCT_LC, _CC_PUNCT, c)
-#define isSPACE_LC_uvchr(c)  _generic_LC_uvchr(isSPACE_LC,                    \
+#define isPUNCT_LC_uvchr(c)  generic_LC_invlist_uvchr_(isPUNCT_LC, CC_PUNCT_, c)
+#define isSPACE_LC_uvchr(c)  generic_LC_uvchr_(isSPACE_LC,                    \
                                                     is_XPERLSPACE_cp_high, c)
-#define isUPPER_LC_uvchr(c)  _generic_LC_invlist_uvchr(isUPPER_LC, _CC_UPPER, c)
-#define isWORDCHAR_LC_uvchr(c) _generic_LC_invlist_uvchr(isWORDCHAR_LC,         \
-                                                           _CC_WORDCHAR, c)
-#define isXDIGIT_LC_uvchr(c) _generic_LC_uvchr(isXDIGIT_LC,                  \
+#define isUPPER_LC_uvchr(c)  generic_LC_invlist_uvchr_(isUPPER_LC, CC_UPPER_, c)
+#define isWORDCHAR_LC_uvchr(c) generic_LC_invlist_uvchr_(isWORDCHAR_LC,       \
+                                                           CC_WORDCHAR_, c)
+#define isXDIGIT_LC_uvchr(c) generic_LC_uvchr_(isXDIGIT_LC,                   \
                                                        is_XDIGIT_cp_high, c)
 
 #define isBLANK_LC_uni(c)    isBLANK_LC_uvchr(UNI_TO_NATIVE(c))
@@ -2189,41 +2275,41 @@ END_EXTERN_C
 #  define _utf8_safe_assert(p,e) ((e) > (p))
 #endif
 
-#define _generic_utf8_safe(classnum, p, e, above_latin1)                    \
+#define generic_utf8_safe_(classnum, p, e, above_latin1)                    \
     ((! _utf8_safe_assert(p, e))                                            \
       ? (_force_out_malformed_utf8_message((U8 *) (p), (U8 *) (e), 0, 1), 0)\
       : (UTF8_IS_INVARIANT(*(p)))                                           \
-          ? _generic_isCC(*(p), classnum)                                   \
+          ? generic_isCC_(*(p), classnum)                                   \
           : (UTF8_IS_DOWNGRADEABLE_START(*(p))                              \
              ? ((LIKELY((e) - (p) > 1 && UTF8_IS_CONTINUATION(*((p)+1))))   \
-                ? _generic_isCC(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1 )),  \
+                ? generic_isCC_(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1 )),  \
                                 classnum)                                   \
                 : (_force_out_malformed_utf8_message(                       \
                                         (U8 *) (p), (U8 *) (e), 0, 1), 0))  \
              : above_latin1))
 /* Like the above, but calls 'above_latin1(p)' to get the utf8 value.
  * 'above_latin1' can be a macro */
-#define _generic_func_utf8_safe(classnum, above_latin1, p, e)               \
-                    _generic_utf8_safe(classnum, p, e, above_latin1(p, e))
-#define _generic_non_invlist_utf8_safe(classnum, above_latin1, p, e)          \
-          _generic_utf8_safe(classnum, p, e,                                \
+#define generic_func_utf8_safe_(classnum, above_latin1, p, e)               \
+                    generic_utf8_safe_(classnum, p, e, above_latin1(p, e))
+#define generic_non_invlist_utf8_safe_(classnum, above_latin1, p, e)        \
+          generic_utf8_safe_(classnum, p, e,                                \
                              (UNLIKELY((e) - (p) < UTF8SKIP(p))             \
                               ? (_force_out_malformed_utf8_message(         \
                                       (U8 *) (p), (U8 *) (e), 0, 1), 0)     \
                               : above_latin1(p)))
 /* Like the above, but passes classnum to _isFOO_utf8(), instead of having an
  * 'above_latin1' parameter */
-#define _generic_invlist_utf8_safe(classnum, p, e)                            \
-            _generic_utf8_safe(classnum, p, e, _is_utf8_FOO(classnum, p, e))
+#define generic_invlist_utf8_safe_(classnum, p, e)                          \
+            generic_utf8_safe_(classnum, p, e, _is_utf8_FOO(classnum, p, e))
 
 /* Like the above, but should be used only when it is known that there are no
  * characters in the upper-Latin1 range (128-255 on ASCII platforms) which the
  * class is TRUE for.  Hence it can skip the tests for this range.
  * 'above_latin1' should include its arguments */
-#define _generic_utf8_safe_no_upper_latin1(classnum, p, e, above_latin1)    \
+#define generic_utf8_safe_no_upper_latin1_(classnum, p, e, above_latin1)    \
          (__ASSERT_(_utf8_safe_assert(p, e))                                \
          (isASCII(*(p)))                                                    \
-          ? _generic_isCC(*(p), classnum)                                   \
+          ? generic_isCC_(*(p), classnum)                                   \
           : (UTF8_IS_DOWNGRADEABLE_START(*(p)))                             \
              ? 0 /* Note that doesn't check validity for latin1 */          \
              : above_latin1)
@@ -2248,15 +2334,15 @@ END_EXTERN_C
 #define isWORDCHAR_utf8(p, e)      isWORDCHAR_utf8_safe(p, e)
 #define isXDIGIT_utf8(p, e)        isXDIGIT_utf8_safe(p, e)
 
-#define isALPHA_utf8_safe(p, e)  _generic_invlist_utf8_safe(_CC_ALPHA, p, e)
+#define isALPHA_utf8_safe(p, e)  generic_invlist_utf8_safe_(CC_ALPHA_, p, e)
 #define isALPHANUMERIC_utf8_safe(p, e)                                      \
-                        _generic_invlist_utf8_safe(_CC_ALPHANUMERIC, p, e)
+                        generic_invlist_utf8_safe_(CC_ALPHANUMERIC_, p, e)
 #define isASCII_utf8_safe(p, e)                                             \
     /* Because ASCII is invariant under utf8, the non-utf8 macro            \
     * works */                                                              \
     (__ASSERT_(_utf8_safe_assert(p, e)) isASCII(*(p)))
 #define isBLANK_utf8_safe(p, e)                                             \
-        _generic_non_invlist_utf8_safe(_CC_BLANK, is_HORIZWS_high, p, e)
+        generic_non_invlist_utf8_safe_(CC_BLANK_, is_HORIZWS_high, p, e)
 
 #ifdef EBCDIC
     /* Because all controls are UTF-8 invariants in EBCDIC, we can use this
@@ -2264,14 +2350,14 @@ END_EXTERN_C
 #   define isCNTRL_utf8_safe(p, e)                                          \
                     (__ASSERT_(_utf8_safe_assert(p, e)) isCNTRL_L1(*(p)))
 #else
-#   define isCNTRL_utf8_safe(p, e)  _generic_utf8_safe(_CC_CNTRL, p, e, 0)
+#   define isCNTRL_utf8_safe(p, e)  generic_utf8_safe_(CC_CNTRL_, p, e, 0)
 #endif
 
 #define isDIGIT_utf8_safe(p, e)                                             \
-            _generic_utf8_safe_no_upper_latin1(_CC_DIGIT, p, e,             \
-                                            _is_utf8_FOO(_CC_DIGIT, p, e))
-#define isGRAPH_utf8_safe(p, e)    _generic_invlist_utf8_safe(_CC_GRAPH, p, e)
-#define isIDCONT_utf8_safe(p, e)   _generic_func_utf8_safe(_CC_WORDCHAR,    \
+            generic_utf8_safe_no_upper_latin1_(CC_DIGIT_, p, e,             \
+                                            _is_utf8_FOO(CC_DIGIT_, p, e))
+#define isGRAPH_utf8_safe(p, e)    generic_invlist_utf8_safe_(CC_GRAPH_, p, e)
+#define isIDCONT_utf8_safe(p, e)   generic_func_utf8_safe_(CC_WORDCHAR_,    \
                                                  _is_utf8_perl_idcont, p, e)
 
 /* To prevent S_scan_word in toke.c from hanging, we have to make sure that
@@ -2281,22 +2367,22 @@ END_EXTERN_C
  * This used to be not the XID version, but we decided to go with the more
  * modern Unicode definition */
 #define isIDFIRST_utf8_safe(p, e)                                           \
-    _generic_func_utf8_safe(_CC_IDFIRST,                                    \
+    generic_func_utf8_safe_(CC_IDFIRST_,                                    \
                             _is_utf8_perl_idstart, (U8 *) (p), (U8 *) (e))
 
-#define isLOWER_utf8_safe(p, e)     _generic_invlist_utf8_safe(_CC_LOWER, p, e)
-#define isPRINT_utf8_safe(p, e)     _generic_invlist_utf8_safe(_CC_PRINT, p, e)
+#define isLOWER_utf8_safe(p, e)     generic_invlist_utf8_safe_(CC_LOWER_, p, e)
+#define isPRINT_utf8_safe(p, e)     generic_invlist_utf8_safe_(CC_PRINT_, p, e)
 #define isPSXSPC_utf8_safe(p, e)     isSPACE_utf8_safe(p, e)
-#define isPUNCT_utf8_safe(p, e)     _generic_invlist_utf8_safe(_CC_PUNCT, p, e)
+#define isPUNCT_utf8_safe(p, e)     generic_invlist_utf8_safe_(CC_PUNCT_, p, e)
 #define isSPACE_utf8_safe(p, e)                                             \
-    _generic_non_invlist_utf8_safe(_CC_SPACE, is_XPERLSPACE_high, p, e)
-#define isUPPER_utf8_safe(p, e)  _generic_invlist_utf8_safe(_CC_UPPER, p, e)
+    generic_non_invlist_utf8_safe_(CC_SPACE_, is_XPERLSPACE_high, p, e)
+#define isUPPER_utf8_safe(p, e)  generic_invlist_utf8_safe_(CC_UPPER_, p, e)
 #define isVERTWS_utf8_safe(p, e)                                            \
-        _generic_non_invlist_utf8_safe(_CC_VERTSPACE, is_VERTWS_high, p, e)
+        generic_non_invlist_utf8_safe_(CC_VERTSPACE_, is_VERTWS_high, p, e)
 #define isWORDCHAR_utf8_safe(p, e)                                          \
-                             _generic_invlist_utf8_safe(_CC_WORDCHAR, p, e)
+                             generic_invlist_utf8_safe_(CC_WORDCHAR_, p, e)
 #define isXDIGIT_utf8_safe(p, e)                                            \
-                   _generic_utf8_safe_no_upper_latin1(_CC_XDIGIT, p, e,     \
+                   generic_utf8_safe_no_upper_latin1_(CC_XDIGIT_, p, e,     \
                              (UNLIKELY((e) - (p) < UTF8SKIP(p))             \
                               ? (_force_out_malformed_utf8_message(         \
                                       (U8 *) (p), (U8 *) (e), 0, 1), 0)     \
@@ -2337,10 +2423,10 @@ END_EXTERN_C
 #define isXDIGIT_LC_utf8(p, e)        isXDIGIT_LC_utf8_safe(p, e)
 
 /* For internal core Perl use only: the base macros for defining macros like
- * isALPHA_LC_utf8_safe.  These are like _generic_utf8, but if the first code
+ * isALPHA_LC_utf8_safe.  These are like generic_utf8_, but if the first code
  * point in 'p' is within the 0-255 range, it uses locale rules from the
  * passed-in 'macro' parameter */
-#define _generic_LC_utf8_safe(macro, p, e, above_latin1)                    \
+#define generic_LC_utf8_safe_(macro, p, e, above_latin1)                    \
          (__ASSERT_(_utf8_safe_assert(p, e))                                \
          (UTF8_IS_INVARIANT(*(p)))                                          \
           ? macro(*(p))                                                     \
@@ -2351,56 +2437,56 @@ END_EXTERN_C
                                         (U8 *) (p), (U8 *) (e), 0, 1), 0))  \
               : above_latin1))
 
-#define _generic_LC_invlist_utf8_safe(macro, classnum, p, e)                  \
-            _generic_LC_utf8_safe(macro, p, e,                              \
+#define generic_LC_invlist_utf8_safe_(macro, classnum, p, e)                  \
+            generic_LC_utf8_safe_(macro, p, e,                              \
                                             _is_utf8_FOO(classnum, p, e))
 
-#define _generic_LC_func_utf8_safe(macro, above_latin1, p, e)               \
-            _generic_LC_utf8_safe(macro, p, e, above_latin1(p, e))
+#define generic_LC_func_utf8_safe_(macro, above_latin1, p, e)               \
+            generic_LC_utf8_safe_(macro, p, e, above_latin1(p, e))
 
-#define _generic_LC_non_invlist_utf8_safe(classnum, above_latin1, p, e)       \
-          _generic_LC_utf8_safe(classnum, p, e,                             \
+#define generic_LC_non_invlist_utf8_safe_(classnum, above_latin1, p, e)       \
+          generic_LC_utf8_safe_(classnum, p, e,                             \
                              (UNLIKELY((e) - (p) < UTF8SKIP(p))             \
                               ? (_force_out_malformed_utf8_message(         \
                                       (U8 *) (p), (U8 *) (e), 0, 1), 0)     \
                               : above_latin1(p)))
 
 #define isALPHANUMERIC_LC_utf8_safe(p, e)                                   \
-            _generic_LC_invlist_utf8_safe(isALPHANUMERIC_LC,                  \
-                                        _CC_ALPHANUMERIC, p, e)
+            generic_LC_invlist_utf8_safe_(isALPHANUMERIC_LC,                \
+                                        CC_ALPHANUMERIC_, p, e)
 #define isALPHA_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isALPHA_LC, _CC_ALPHA, p, e)
+            generic_LC_invlist_utf8_safe_(isALPHA_LC, CC_ALPHA_, p, e)
 #define isASCII_LC_utf8_safe(p, e)                                          \
                     (__ASSERT_(_utf8_safe_assert(p, e)) isASCII_LC(*(p)))
 #define isBLANK_LC_utf8_safe(p, e)                                          \
-        _generic_LC_non_invlist_utf8_safe(isBLANK_LC, is_HORIZWS_high, p, e)
+        generic_LC_non_invlist_utf8_safe_(isBLANK_LC, is_HORIZWS_high, p, e)
 #define isCNTRL_LC_utf8_safe(p, e)                                          \
-            _generic_LC_utf8_safe(isCNTRL_LC, p, e, 0)
+            generic_LC_utf8_safe_(isCNTRL_LC, p, e, 0)
 #define isDIGIT_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isDIGIT_LC, _CC_DIGIT, p, e)
+            generic_LC_invlist_utf8_safe_(isDIGIT_LC, CC_DIGIT_, p, e)
 #define isGRAPH_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isGRAPH_LC, _CC_GRAPH, p, e)
+            generic_LC_invlist_utf8_safe_(isGRAPH_LC, CC_GRAPH_, p, e)
 #define isIDCONT_LC_utf8_safe(p, e)                                         \
-            _generic_LC_func_utf8_safe(isIDCONT_LC,                         \
+            generic_LC_func_utf8_safe_(isIDCONT_LC,                         \
                                                 _is_utf8_perl_idcont, p, e)
 #define isIDFIRST_LC_utf8_safe(p, e)                                        \
-            _generic_LC_func_utf8_safe(isIDFIRST_LC,                        \
+            generic_LC_func_utf8_safe_(isIDFIRST_LC,                        \
                                                _is_utf8_perl_idstart, p, e)
 #define isLOWER_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isLOWER_LC, _CC_LOWER, p, e)
+            generic_LC_invlist_utf8_safe_(isLOWER_LC, CC_LOWER_, p, e)
 #define isPRINT_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isPRINT_LC, _CC_PRINT, p, e)
+            generic_LC_invlist_utf8_safe_(isPRINT_LC, CC_PRINT_, p, e)
 #define isPSXSPC_LC_utf8_safe(p, e)    isSPACE_LC_utf8_safe(p, e)
 #define isPUNCT_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isPUNCT_LC, _CC_PUNCT, p, e)
+            generic_LC_invlist_utf8_safe_(isPUNCT_LC, CC_PUNCT_, p, e)
 #define isSPACE_LC_utf8_safe(p, e)                                          \
-    _generic_LC_non_invlist_utf8_safe(isSPACE_LC, is_XPERLSPACE_high, p, e)
+    generic_LC_non_invlist_utf8_safe_(isSPACE_LC, is_XPERLSPACE_high, p, e)
 #define isUPPER_LC_utf8_safe(p, e)                                          \
-            _generic_LC_invlist_utf8_safe(isUPPER_LC, _CC_UPPER, p, e)
+            generic_LC_invlist_utf8_safe_(isUPPER_LC, CC_UPPER_, p, e)
 #define isWORDCHAR_LC_utf8_safe(p, e)                                       \
-            _generic_LC_invlist_utf8_safe(isWORDCHAR_LC, _CC_WORDCHAR, p, e)
+            generic_LC_invlist_utf8_safe_(isWORDCHAR_LC, CC_WORDCHAR_, p, e)
 #define isXDIGIT_LC_utf8_safe(p, e)                                         \
-        _generic_LC_non_invlist_utf8_safe(isXDIGIT_LC, is_XDIGIT_high, p, e)
+        generic_LC_non_invlist_utf8_safe_(isXDIGIT_LC, is_XDIGIT_high, p, e)
 
 /* Macros for backwards compatibility and for completeness when the ASCII and
  * Latin1 values are identical */
@@ -2460,6 +2546,7 @@ The typedef to use to declare variables 
   Line numbers are unsigned, 32 bits.
 */
 typedef U32 line_t;
+#define LINE_Tf  U32uf
 #define NOLINE ((line_t) 4294967295UL)  /* = FFFFFFFF */
 
 /* Helpful alias for version prescan */
@@ -2585,6 +2672,10 @@ C<CopyD> is like C<Copy> but returns C<d
 for encouraging compilers to tail-call
 optimise.
 
+=for apidoc    Am|void  |NewCopy |void* src|void* dest|int nitems|type
+Combines Newx() and Copy() into a single macro. Dest will be allocated
+using Newx() and then src will be copied into it.
+
 =for apidoc    Am|void  |Zero |void* dest|int nitems|type
 =for apidoc_item |void *|ZeroD|void* dest|int nitems|type
 
@@ -2639,6 +2730,7 @@ PoisonWith(0xEF) for catching access to 
  *    max(n) * sizeof(t) > MEM_SIZE_MAX
  */
 
+
 #  define _MEM_WRAP_NEEDS_RUNTIME_CHECK(n,t) \
     (  sizeof(MEM_SIZE) < sizeof(n) \
     || sizeof(t) > ((MEM_SIZE)1 << 8*(sizeof(MEM_SIZE) - sizeof(n))))
@@ -2677,17 +2769,17 @@ PoisonWith(0xEF) for catching access to 
         (   (void) (UNLIKELY(_MEM_WRAP_WILL_WRAP(n,t))          \
          && (Perl_croak_nocontext(ASSERT_IS_LITERAL(a)), 0)))
 
-#define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
+#  define MEM_WRAP_CHECK_(n,t) MEM_WRAP_CHECK(n,t),
 
-#define PERL_STRLEN_ROUNDUP(n) ((void)(((n) > MEM_SIZE_MAX - 2 * PERL_STRLEN_ROUNDUP_QUANTUM) ? (croak_memory_wrap(),0) : 0), _PERL_STRLEN_ROUNDUP_UNCHECKED(n))
+#  define PERL_STRLEN_ROUNDUP(n) ((void)(((n) > MEM_SIZE_MAX - 2 * PERL_STRLEN_ROUNDUP_QUANTUM) ? (croak_memory_wrap(),0) : 0), _PERL_STRLEN_ROUNDUP_UNCHECKED(n))
 #else
 
-#define MEM_WRAP_CHECK(n,t)
-#define MEM_WRAP_CHECK_1(n,t,a)
-#define MEM_WRAP_CHECK_s(n,t,a)
-#define MEM_WRAP_CHECK_(n,t)
+#  define MEM_WRAP_CHECK(n,t)
+#  define MEM_WRAP_CHECK_1(n,t,a)
+#  define MEM_WRAP_CHECK_s(n,t,a)
+#  define MEM_WRAP_CHECK_(n,t)
 
-#define PERL_STRLEN_ROUNDUP(n) _PERL_STRLEN_ROUNDUP_UNCHECKED(n)
+#  define PERL_STRLEN_ROUNDUP(n) _PERL_STRLEN_ROUNDUP_UNCHECKED(n)
 
 #endif
 
@@ -2792,6 +2884,11 @@ enum mem_log_type {
 #define CopyD(s,d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), perl_assert_ptr(s), memcpy((char*)(d),(const char*)(s), (n) * sizeof(t)))
 #define ZeroD(d,n,t)	(MEM_WRAP_CHECK_(n,t) perl_assert_ptr(d), memzero((char*)(d), (n) * sizeof(t)))
 
+#define NewCopy(s,d,n,t) STMT_START {   \
+    Newx(d,n,t);                        \
+    Copy(s,d,n,t);                      \
+} STMT_END
+
 #define PoisonWith(d,n,t,b)	(MEM_WRAP_CHECK_(n,t) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)))
 #define PoisonNew(d,n,t)	PoisonWith(d,n,t,0xAB)
 #define PoisonFree(d,n,t)	PoisonWith(d,n,t,0xEF)
@@ -2826,6 +2923,12 @@ last-inclusive range.
 #define C_ARRAY_LENGTH(a)	(sizeof(a)/sizeof((a)[0]))
 #define C_ARRAY_END(a)		((a) + C_ARRAY_LENGTH(a))
 
+#if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD)
+/* strlen() of a literal string constant.  Restricting this to core, in part
+ * because it can generate compiler warnings about comparing unlike signs */
+#  define STRLENs(s)  (sizeof("" s "") - 1)
+#endif
+
 #ifdef NEED_VA_COPY
 # ifdef va_copy
 #  define Perl_va_copy(s, d) va_copy(d, s)
@@ -2853,18 +2956,53 @@ last-inclusive range.
 #define pTHX__VALUE
 #endif /* USE_ITHREADS */
 
-/* Perl_deprecate was not part of the public API, and did not have a deprecate()
-   shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
-   CPAN::Unpack show any users outside the core.  */
+/*
+ Perl_deprecate was not part of the public API, and did not have a deprecate()
+ shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
+ CPAN::Unpack show any users outside the core.
+
+=for apidoc_section $warning
+=for apidoc Cdm||deprecate|U32 category|"message"
+Wrapper around Perl_ck_warner_d() to produce a deprecated warning in the
+given category with an appropriate message. The C<message> argument must
+be a C string. The string " is deprecated" will automatically be added
+to the end of the C<message>.
+
+=for apidoc Cdm||deprecate_disappears_in|U32 category|"when"|"message"
+Wrapper around Perl_ck_warner_d() to produce a deprecated warning in the
+given category with an appropriate message that the construct referred
+to by the message will disappear in a specific release.  The C<when> and
+C<message> arguments must be a C string.  The C<when> string is expected
+to be of the form "5.40", with no minor element in the version.  The actual
+message output will be the result of the following expression C<message
+" is deprecated, and will disappear in Perl " when> which is why C<message>
+and C<when> must be literal C strings.
+
+=for apidoc Cdm||deprecate_fatal_in|U32 category|"when"|"message"
+Wrapper around Perl_ck_warner_d() to produce a deprecated warning in the
+given category with an appropriate message that the construct referred
+to by the message will become fatal in a specific release.  The C<when>
+and C<message> arguments must be a C string.  The C<when> string is expected
+to be of the form "5.40", with no minor element in the version.  The actual
+message output will be the result of the following expression C<message " is
+deprecated, and will become fatal in Perl " when> which is why C<message>
+and C<when> must be literal C strings.
+
+=cut
+*/
+
 #ifdef PERL_CORE
-#  define deprecate(s) Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),    \
-                                            "Use of " s " is deprecated")
-#  define deprecate_disappears_in(when,message) \
-              Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),    \
-                               message " is deprecated, and will disappear in Perl " when)
-#  define deprecate_fatal_in(when,message) \
-              Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),    \
-                               message " is deprecated, and will become fatal in Perl " when)
+#  define deprecate(category,message)                       \
+    Perl_ck_warner_d(aTHX_ packWARN(category),              \
+        message " is deprecated")
+
+#  define deprecate_disappears_in(category,when,message)    \
+    Perl_ck_warner_d(aTHX_ packWARN(category),              \
+        message " is deprecated, and will disappear in Perl " when)
+
+#  define deprecate_fatal_in(category,when,message)         \
+    Perl_ck_warner_d(aTHX_ packWARN(category),              \
+        message " is deprecated, and will become fatal in Perl " when)
 #endif
 
 /* Internal macros to deal with gids and uids */
@@ -2893,6 +3031,85 @@ last-inclusive range.
 #  endif /* Gid_t_size */
 
 #endif
+
+/* These are simple Marsaglia XOR-SHIFT RNG's for 64 and 32 bits. These
+ * RNG's are of reasonable quality, very fast, and have the interesting
+ * property that provided 'x' is non-zero they create a cycle of 2^32-1
+ * or 2^64-1 "random" like numbers, with the exception of 0. Thus they
+ * are very useful when you want an integer to "dance" in a random way,
+ * but you also never want it to become 0 and thus false.
+ *
+ * Obviously they leave x unchanged if it starts out as 0.
+ *
+ * We have two variants just because that can be helpful in certain
+ * places. There is no advantage to either, they are equally bad as each
+ * other as far RNG's go. Sufficiently random for many purposes, but
+ * insufficiently random for serious use as they fail important tests in
+ * the Test01 BigCrush RNG test suite by L’Ecuyer and Simard. (Note
+ * that Drand48 also fails BigCrush). The main point is they produce
+ * different sequences and in places where we want some randomlike
+ * behavior they are cheap and easy.
+ *
+ * Marsaglia was one of the early researchers into RNG testing and wrote
+ * the Diehard RNG test suite, which after his death become the
+ * Dieharder RNG suite, and was generally supplanted by the Test01 suite
+ * by L'Ecruyer and associates.
+ *
+ * There are dozens of shift parameters that create a pseudo random ring
+ * of integers 1..2^N-1, if you need a different sequence just read the
+ * paper and select a set of parameters. In fact, simply reversing the
+ * shift order from L/R/L to R/L/R should result in another valid
+ * example, but read the paper before you do that.
+ *
+ * PDF of the original paper:
+ *  https://www.jstatsoft.org/article/download/v008i14/916
+ * Wikipedia:
+ *  https://en.wikipedia.org/wiki/Xorshift
+ * Criticism:
+ *  https://www.iro.umontreal.ca/~lecuyer/myftp/papers/xorshift.pdf
+ * Test01:
+ *  http://simul.iro.umontreal.ca/testu01/tu01.html
+ * Diehard:
+ *  https://en.wikipedia.org/wiki/Diehard_tests
+ * Dieharder:
+ *  https://webhome.phy.duke.edu/~rgb/General/rand_rate/rand_rate.abs
+ *
+ */
+
+/* 32 bit version */
+#define PERL_XORSHIFT32_A(x)    \
+STMT_START {                    \
+    (x) ^= ((x) << 13);         \
+    (x) ^= ((x) >> 17);         \
+    (x) ^= ((x) << 5);          \
+} STMT_END
+
+/* 64 bit version */
+#define PERL_XORSHIFT64_A(x)    \
+STMT_START {                    \
+    (x) ^= ((x) << 13);         \
+    (x) ^= ((x) >> 7);          \
+    (x) ^= ((x) << 17);         \
+} STMT_END
+
+/* 32 bit version */
+#define PERL_XORSHIFT32_B(x)    \
+STMT_START {                    \
+    (x) ^= ((x) << 5);          \
+    (x) ^= ((x) >> 27);         \
+    (x) ^= ((x) << 8);          \
+} STMT_END
+
+/* 64 bit version - currently this is unused,
+ * it is provided here to complement the 32 bit _B
+ * variant which IS used. */
+#define PERL_XORSHIFT64_B(x)    \
+STMT_START {                    \
+    (x) ^= ((x) << 15);         \
+    (x) ^= ((x) >> 49);         \
+    (x) ^= ((x) << 26);         \
+} STMT_END
+
 
 #endif  /* PERL_HANDY_H_ */
 
Index: gnu/usr.bin/perl/hv.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hv.c,v
diff -u -p -a -u -p -r1.26 hv.c
--- gnu/usr.bin/perl/hv.c	15 Feb 2023 01:36:13 -0000	1.26
+++ gnu/usr.bin/perl/hv.c	21 Feb 2024 15:47:02 -0000
@@ -56,20 +56,10 @@ static const char S_strtab_error[]
  */
 #if IVSIZE == 8
 /* 64 bit version */
-#define XORSHIFT_RAND_BITS(x)   \
-STMT_START {                    \
-    (x) ^= (x) << 13;           \
-    (x) ^= (x) >> 17;           \
-    (x) ^= (x) << 5;            \
-} STMT_END
+#define XORSHIFT_RAND_BITS(x)   PERL_XORSHIFT64_A(x)
 #else
 /* 32 bit version */
-#define XORSHIFT_RAND_BITS(x)   \
-STMT_START {                    \
-    (x) ^= (x) << 13;           \
-    (x) ^= (x) >> 7;            \
-    (x) ^= (x) << 17;           \
-} STMT_END
+#define XORSHIFT_RAND_BITS(x)   PERL_XORSHIFT32_A(x)
 #endif
 
 #define UPDATE_HASH_RAND_BITS_KEY(key,klen)                             \
@@ -337,28 +327,44 @@ S_hv_notallowed(pTHX_ int flags, const c
  * contains an SV* */
 
 /*
-=for apidoc hv_store
+=for apidoc      hv_store
+=for apidoc_item hv_stores
 
-Stores an SV in a hash.  The hash key is specified as C<key> and the
-absolute value of C<klen> is the length of the key.  If C<klen> is
-negative the key is assumed to be in UTF-8-encoded Unicode.  The
-C<hash> parameter is the precomputed hash value; if it is zero then
-Perl will compute it.
+These each store SV C<val> with the specified key in hash C<hv>, returning NULL
+if the operation failed or if the value did not need to be actually stored
+within the hash (as in the case of tied hashes).  Otherwise it can be
+dereferenced to get the original C<SV*>.
 
-The return value will be
-C<NULL> if the operation failed or if the value did not need to be actually
-stored within the hash (as in the case of tied hashes).  Otherwise it can
-be dereferenced to get the original C<SV*>.  Note that the caller is
+They differ only in how the hash key is specified.
+
+In C<hv_stores>, the key is a C language string literal, enclosed in double
+quotes.  It is never treated as being in UTF-8.
+
+In C<hv_store>, C<key> is either NULL or points to the first byte of the string
+specifying the key, and its length in bytes is given by the absolute value of
+an additional parameter, C<klen>.  A NULL key indicates the key is to be
+treated as C<undef>, and C<klen> is ignored; otherwise the key string may
+contain embedded-NUL bytes.  If C<klen> is negative, the string is treated as
+being encoded in UTF-8; otherwise not.
+
+C<hv_store> has another extra parameter, C<hash>, a precomputed hash of the key
+string, or zero if it has not been precomputed.  This parameter is omitted from
+C<hv_stores>, as it is computed automatically at compile time.
+
+If <hv> is NULL, NULL is returned and no action is taken.
+
+If C<val> is NULL, it is treated as being C<undef>; otherwise the caller is
 responsible for suitably incrementing the reference count of C<val> before
 the call, and decrementing it if the function returned C<NULL>.  Effectively
 a successful C<hv_store> takes ownership of one reference to C<val>.  This is
 usually what you want; a newly created SV has a reference count of one, so
 if all your code does is create SVs then store them in a hash, C<hv_store>
 will own the only reference to the new SV, and your code doesn't need to do
-anything further to tidy up.  C<hv_store> is not implemented as a call to
-C<hv_store_ent>, and does not create a temporary SV for the key, so if your
-key data is not already in SV form then use C<hv_store> in preference to
-C<hv_store_ent>.
+anything further to tidy up.
+
+C<hv_store> is not implemented as a call to L</C<hv_store_ent>>, and does not
+create a temporary SV for the key, so if your key data is not already in SV
+form then use C<hv_store> in preference to C<hv_store_ent>.
 
 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
 information on how to use this function on tied hashes.
@@ -474,7 +480,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, 
 
     if (!hv)
         return NULL;
-    if (SvTYPE(hv) == (svtype)SVTYPEMASK)
+    if (SvIS_FREED(hv))
         return NULL;
 
     assert(SvTYPE(hv) == SVt_PVHV);
@@ -587,7 +593,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, 
                 for (i = 0; i < klen; ++i)
                     if (isLOWER(key[i])) {
                         /* Would be nice if we had a routine to do the
-                           copy and upercase in a single pass through.  */
+                           copy and uppercase in a single pass through.  */
                         const char * const nkey = strupr(savepvn(key,klen));
                         /* Note that this fetch is for nkey (the uppercased
                            key) whereas the store is for key (the original)  */
@@ -1000,7 +1006,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, 
         *oentry = entry;
     }
 #ifdef PERL_HASH_RANDOMIZE_KEYS
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         /* Currently this makes various tests warn in annoying ways.
          * So Silenced for now. - Yves | bogus end of comment =>* /
         if (HvAUX(hv)->xhv_riter != -1) {
@@ -1416,11 +1422,11 @@ S_hv_delete_common(pTHX_ HV *hv, SV *key
         else {
             HeVAL(entry) = NULL;
             *oentry = HeNEXT(entry);
-            if (SvOOK(hv) && entry == HvAUX(hv)->xhv_eiter /* HvEITER(hv) */) {
+            if (HvHasAUX(hv) && entry == HvAUX(hv)->xhv_eiter /* HvEITER(hv) */) {
                 HvLAZYDEL_on(hv);
             }
             else {
-                if (SvOOK(hv) && HvLAZYDEL(hv) &&
+                if (HvHasAUX(hv) && HvLAZYDEL(hv) &&
                     entry == HeNEXT(HvAUX(hv)->xhv_eiter))
                     HeNEXT(HvAUX(hv)->xhv_eiter) = HeNEXT(entry);
                 hv_free_ent(NULL, entry);
@@ -1433,7 +1439,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *key
         /* If this is a stash and the key ends with ::, then someone is 
          * deleting a package.
          */
-        if (sv && SvTYPE(sv) == SVt_PVGV && HvENAME_get(hv)) {
+        if (sv && SvTYPE(sv) == SVt_PVGV && HvHasENAME(hv)) {
                 gv = (GV *)sv;
                 if ((
                      (klen > 1 && key[klen-2] == ':' && key[klen-1] == ':')
@@ -1442,7 +1448,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *key
                     )
                  && (klen != 6 || hv!=PL_defstash || memNE(key,"main::",6))
                  && (stash = GvHV((GV *)gv))
-                 && HvENAME_get(stash)) {
+                 && HvHasENAME(stash)) {
                         /* A previous version of this code checked that the
                          * GV was still in the symbol table by fetching the
                          * GV with its name. That is not necessary (and
@@ -1470,11 +1476,13 @@ S_hv_delete_common(pTHX_ HV *hv, SV *key
                             SV **svp, **end;
                         strip_magic:
                             svp = AvARRAY(isa);
-                            end = svp + (AvFILLp(isa)+1);
-                            while (svp < end) {
-                                if (*svp)
-                                    mg_free_type(*svp, PERL_MAGIC_isaelem);
-                                ++svp;
+                            if (svp) {
+                                end = svp + (AvFILLp(isa)+1);
+                                while (svp < end) {
+                                    if (*svp)
+                                        mg_free_type(*svp, PERL_MAGIC_isaelem);
+                                    ++svp;
+                                }
                             }
                             mg_free_type((SV*)GvAV(gv), PERL_MAGIC_isa);
                         }
@@ -1529,7 +1537,7 @@ S_hv_delete_common(pTHX_ HV *hv, SV *key
         if (sv) {
             /* deletion of method from stash */
             if (isGV(sv) && isGV_with_GP(sv) && GvCVu(sv)
-             && HvENAME_get(hv))
+             && HvHasENAME(hv))
                 mro_method_changed_in(hv);
 
             if (d_flags & G_DISCARD) {
@@ -1586,7 +1594,7 @@ static bool
 S_large_hash_heuristic(pTHX_ HV *hv, STRLEN size) {
     if (size > 42
         && !SvOBJECT(hv)
-        && !(SvOOK(hv) && HvENAME_get(hv))) {
+        && !(HvHasAUX(hv) && HvENAME_get(hv))) {
         /* This hash appears to be growing quite large.
            We gamble that it is not sharing keys with other hashes. */
         return TRUE;
@@ -1679,6 +1687,19 @@ S_hsplit(pTHX_ HV *hv, STRLEN const olds
     } while (i++ < oldsize);
 }
 
+/*
+=for apidoc hv_ksplit
+
+Attempt to grow the hash C<hv> so it has at least C<newmax> buckets available.
+Perl chooses the actual number for its convenience.
+
+This is the same as doing the following in Perl code:
+
+ keys %hv = newmax;
+
+=cut
+*/
+
 void
 Perl_hv_ksplit(pTHX_ HV *hv, IV newmax)
 {
@@ -1716,11 +1737,11 @@ Perl_hv_ksplit(pTHX_ HV *hv, IV newmax)
     a = (char *) HvARRAY(hv);
     if (a) {
 #ifdef PERL_HASH_RANDOMIZE_KEYS
-        U32 was_ook = SvOOK(hv);
+        U32 was_ook = HvHasAUX(hv);
 #endif
         hsplit(hv, oldsize, newsize);
 #ifdef PERL_HASH_RANDOMIZE_KEYS
-        if (was_ook && SvOOK(hv) && HvTOTALKEYS(hv)) {
+        if (was_ook && HvHasAUX(hv) && HvTOTALKEYS(hv)) {
             MAYBE_UPDATE_HASH_RAND_BITS();
             HvAUX(hv)->xhv_rand = (U32)PL_hash_rand_bits;
         }
@@ -2018,7 +2039,7 @@ Perl_hv_clear(pTHX_ HV *hv)
 
         HvHASKFLAGS_off(hv);
     }
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         if(HvENAME_get(hv))
             mro_isa_changed_in(hv);
         HvEITER_set(hv, NULL);
@@ -2079,7 +2100,7 @@ S_clear_placeholders(pTHX_ HV *hv, const
                 if (entry == HvEITER_get(hv))
                     HvLAZYDEL_on(hv);
                 else {
-                    if (SvOOK(hv) && HvLAZYDEL(hv) &&
+                    if (HvHasAUX(hv) && HvLAZYDEL(hv) &&
                         entry == HeNEXT(HvAUX(hv)->xhv_eiter))
                         HeNEXT(HvAUX(hv)->xhv_eiter) = HeNEXT(entry);
                     hv_free_ent(NULL, entry);
@@ -2138,7 +2159,7 @@ Perl_hfree_next_entry(pTHX_ HV *hv, STRL
 
     PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY;
 
-    if (SvOOK(hv) && ((iter = HvAUX(hv)))) {
+    if (HvHasAUX(hv) && ((iter = HvAUX(hv)))) {
         if ((entry = iter->xhv_eiter)) {
             /* the iterator may get resurrected after each
              * destructor call, so check each time */
@@ -2169,9 +2190,9 @@ Perl_hfree_next_entry(pTHX_ HV *hv, STRL
     array[*indexp] = HeNEXT(entry);
     ((XPVHV*) SvANY(hv))->xhv_keys--;
 
-    if (   PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv)
+    if (   PL_phase != PERL_PHASE_DESTRUCT && HvHasENAME(hv)
         && HeVAL(entry) && isGV(HeVAL(entry))
-        && GvHV(HeVAL(entry)) && HvENAME(GvHV(HeVAL(entry)))
+        && GvHV(HeVAL(entry)) && HvHasENAME(GvHV(HeVAL(entry)))
     ) {
         STRLEN klen;
         const char * const key = HePV(entry,klen);
@@ -2205,7 +2226,7 @@ void
 Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags)
 {
     bool save;
-    SSize_t orig_ix = PL_tmps_ix; /* silence compiler warning about unitialized vars */
+    SSize_t orig_ix = PL_tmps_ix; /* silence compiler warning about uninitialized vars */
 
     if (!hv)
         return;
@@ -2222,7 +2243,7 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 fl
        if they will be freed anyway. */
     /* note that the code following prior to hv_free_entries is duplicated
      * in sv_clear(), and changes here should be done there too */
-    if (PL_phase != PERL_PHASE_DESTRUCT && HvNAME(hv)) {
+    if (PL_phase != PERL_PHASE_DESTRUCT && HvHasNAME(hv)) {
         if (PL_stashcache) {
             DEBUG_o(Perl_deb(aTHX_ "hv_undef_flags clearing PL_stashcache for '%"
                              HEKf "'\n", HEKfARG(HvNAME_HEK(hv))));
@@ -2243,7 +2264,7 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 fl
        HE* that needs to be explicitly freed. */
     hv_free_entries(hv);
 
-    /* SvOOK() is true for a hash if it has struct xpvhv_aux allocated. That
+    /* HvHasAUX() is true for a hash if it has struct xpvhv_aux allocated. That
        structure has several other pieces of allocated memory - hence those must
        be freed before the structure itself can be freed. Some can be freed when
        a hash is "undefined" (this function), but some must persist until it is
@@ -2256,32 +2277,36 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 fl
        must remain consistent, because this code can no longer clear SVf_OOK,
        meaning that this structure might be read again at any point in the
        future without further checks or reinitialisation. */
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
+      struct xpvhv_aux *aux = HvAUX(hv);
       struct mro_meta *meta;
       const char *name;
 
-      if (HvENAME_get(hv)) {
+      if (HvHasENAME(hv)) {
         if (PL_phase != PERL_PHASE_DESTRUCT)
             mro_isa_changed_in(hv);
         if (PL_stashcache) {
             DEBUG_o(Perl_deb(aTHX_ "hv_undef_flags clearing PL_stashcache for effective name '%"
-                             HEKf "'\n", HEKfARG(HvENAME_HEK(hv))));
-            (void)hv_deletehek(PL_stashcache, HvENAME_HEK(hv), G_DISCARD);
+                             HEKf "'\n", HEKfARG(HvENAME_HEK_NN(hv))));
+            (void)hv_deletehek(PL_stashcache, HvENAME_HEK_NN(hv), G_DISCARD);
         }
       }
 
       /* If this call originated from sv_clear, then we must check for
        * effective names that need freeing, as well as the usual name. */
       name = HvNAME(hv);
-      if (flags & HV_NAME_SETALL ? !!HvAUX(hv)->xhv_name_u.xhvnameu_name : !!name) {
+      if (flags & HV_NAME_SETALL
+          ? cBOOL(aux->xhv_name_u.xhvnameu_name)
+          : cBOOL(name))
+      {
         if (name && PL_stashcache) {
             DEBUG_o(Perl_deb(aTHX_ "hv_undef_flags clearing PL_stashcache for name '%"
-                             HEKf "'\n", HEKfARG(HvNAME_HEK(hv))));
-            (void)hv_deletehek(PL_stashcache, HvNAME_HEK(hv), G_DISCARD);
+                             HEKf "'\n", HEKfARG(HvNAME_HEK_NN(hv))));
+            (void)hv_deletehek(PL_stashcache, HvNAME_HEK_NN(hv), G_DISCARD);
         }
         hv_name_set(hv, NULL, 0, flags);
       }
-      if((meta = HvAUX(hv)->xhv_mro_meta)) {
+      if((meta = aux->xhv_mro_meta)) {
         if (meta->mro_linear_all) {
             SvREFCNT_dec_NN(meta->mro_linear_all);
             /* mro_linear_current is just acting as a shortcut pointer,
@@ -2295,7 +2320,20 @@ Perl_hv_undef_flags(pTHX_ HV *hv, U32 fl
         SvREFCNT_dec(meta->isa);
         SvREFCNT_dec(meta->super);
         Safefree(meta);
-        HvAUX(hv)->xhv_mro_meta = NULL;
+        aux->xhv_mro_meta = NULL;
+      }
+
+      if(HvSTASH_IS_CLASS(hv)) {
+          SvREFCNT_dec(aux->xhv_class_superclass);
+          SvREFCNT_dec(aux->xhv_class_initfields_cv);
+          SvREFCNT_dec(aux->xhv_class_adjust_blocks);
+          if(aux->xhv_class_fields)
+            PadnamelistREFCNT_dec(aux->xhv_class_fields);
+          SvREFCNT_dec(aux->xhv_class_param_map);
+          Safefree(aux->xhv_class_suspended_initfields_compcv);
+          aux->xhv_class_suspended_initfields_compcv = NULL;
+
+          aux->xhv_aux_flags &= ~HvAUXf_IS_CLASS;
       }
     }
 
@@ -2375,7 +2413,7 @@ S_hv_auxinit(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_AUXINIT;
 
-    if (!SvOOK(hv)) {
+    if (!HvHasAUX(hv)) {
         char *array = (char *) HvARRAY(hv);
         if (!array) {
             Newxz(array, PERL_HV_ARRAY_ALLOC_BYTES(HvMAX(hv) + 1), char);
@@ -2423,7 +2461,7 @@ Perl_hv_iterinit(pTHX_ HV *hv)
 {
     PERL_ARGS_ASSERT_HV_ITERINIT;
 
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         struct xpvhv_aux * iter = HvAUX(hv);
         HE * const entry = iter->xhv_eiter; /* HvEITER(hv) */
         if (entry && HvLAZYDEL(hv)) {	/* was deleted earlier? */
@@ -2457,7 +2495,7 @@ Perl_hv_riter_p(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_RITER_P;
 
-    iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv);
+    iter = HvHasAUX(hv) ? HvAUX(hv) : hv_auxinit(hv);
     return &(iter->xhv_riter);
 }
 
@@ -2475,7 +2513,7 @@ Perl_hv_eiter_p(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_EITER_P;
 
-    iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv);
+    iter = HvHasAUX(hv) ? HvAUX(hv) : hv_auxinit(hv);
     return &(iter->xhv_eiter);
 }
 
@@ -2493,7 +2531,7 @@ Perl_hv_riter_set(pTHX_ HV *hv, I32 rite
 
     PERL_ARGS_ASSERT_HV_RITER_SET;
 
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         iter = HvAUX(hv);
     } else {
         if (riter == -1)
@@ -2511,7 +2549,7 @@ Perl_hv_rand_set(pTHX_ HV *hv, U32 new_x
     PERL_ARGS_ASSERT_HV_RAND_SET;
 
 #ifdef PERL_HASH_RANDOMIZE_KEYS
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         iter = HvAUX(hv);
     } else {
         iter = hv_auxinit(hv);
@@ -2536,7 +2574,7 @@ Perl_hv_eiter_set(pTHX_ HV *hv, HE *eite
 
     PERL_ARGS_ASSERT_HV_EITER_SET;
 
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         iter = HvAUX(hv);
     } else {
         /* 0 is the default so don't go malloc()ing a new structure just to
@@ -2549,6 +2587,31 @@ Perl_hv_eiter_set(pTHX_ HV *hv, HE *eite
     iter->xhv_eiter = eiter;
 }
 
+/*
+=for apidoc        hv_name_set
+=for apidoc_item ||hv_name_sets|HV *hv|"name"|U32 flags
+
+These each set the name of stash C<hv> to the specified name.
+
+They differ only in how the name is specified.
+
+In C<hv_name_sets>, the name is a literal C string, enclosed in double quotes.
+
+In C<hv_name_set>, C<name> points to the first byte of the name, and an
+additional parameter, C<len>, specifies its length in bytes.  Hence, the name
+may contain embedded-NUL characters.
+
+If C<SVf_UTF8> is set in C<flags>, the name is treated as being in UTF-8;
+otherwise not.
+
+If C<HV_NAME_SETALL> is set in C<flags>, both the name and the effective name
+are set.
+
+=for apidoc Amnh||HV_NAME_SETALL
+
+=cut
+*/
+
 void
 Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
 {
@@ -2561,7 +2624,7 @@ Perl_hv_name_set(pTHX_ HV *hv, const cha
     if (len > I32_MAX)
         Perl_croak(aTHX_ "panic: hv name too long (%" UVuf ")", (UV) len);
 
-    if (SvOOK(hv)) {
+    if (HvHasAUX(hv)) {
         iter = HvAUX(hv);
         if (iter->xhv_name_u.xhvnameu_name) {
             if(iter->xhv_name_count) {
@@ -2657,7 +2720,7 @@ table.
 void
 Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
 {
-    struct xpvhv_aux *aux = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv);
+    struct xpvhv_aux *aux = HvHasAUX(hv) ? HvAUX(hv) : hv_auxinit(hv);
     U32 hash;
 
     PERL_ARGS_ASSERT_HV_ENAME_ADD;
@@ -2727,7 +2790,7 @@ Perl_hv_ename_delete(pTHX_ HV *hv, const
     if (len > I32_MAX)
         Perl_croak(aTHX_ "panic: hv name too long (%" UVuf ")", (UV) len);
 
-    if (!SvOOK(hv)) return;
+    if (!HvHasAUX(hv)) return;
 
     aux = HvAUX(hv);
     if (!aux->xhv_name_u.xhvnameu_name) return;
@@ -2787,7 +2850,7 @@ Perl_hv_backreferences_p(pTHX_ HV *hv) {
     PERL_ARGS_ASSERT_HV_BACKREFERENCES_P;
     /* See also Perl_sv_get_backrefs in sv.c where this logic is unrolled */
     {
-        struct xpvhv_aux * const iter = SvOOK(hv) ? HvAUX(hv) : hv_auxinit(hv);
+        struct xpvhv_aux * const iter = HvHasAUX(hv) ? HvAUX(hv) : hv_auxinit(hv);
         return &(iter->xhv_backreferences);
     }
 }
@@ -2798,7 +2861,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_KILL_BACKREFS;
 
-    if (!SvOOK(hv))
+    if (!HvHasAUX(hv))
         return;
 
     av = HvAUX(hv)->xhv_backreferences;
@@ -2853,7 +2916,7 @@ Perl_hv_iternext_flags(pTHX_ HV *hv, I32
 
     PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS;
 
-    if (!SvOOK(hv)) {
+    if (!HvHasAUX(hv)) {
         /* Too many things (well, pp_each at least) merrily assume that you can
            call hv_iternext without calling hv_iterinit, so we'll have to deal
            with it.  */
@@ -3068,7 +3131,7 @@ Perl_hv_iterkeysv(pTHX_ HE *entry)
 {
     PERL_ARGS_ASSERT_HV_ITERKEYSV;
 
-    return sv_2mortal(newSVhek(HeKEY_hek(entry)));
+    return newSVhek_mortal(HeKEY_hek(entry));
 }
 
 /*
@@ -3316,7 +3379,7 @@ S_share_hek_flags(pTHX_ const char *str,
     if (!entry) {
         /* What used to be head of the list.
            If this is NULL, then we're the first entry for this slot, which
-           means we need to increate fill.  */
+           means we need to increase fill.  */
         struct shared_he *new_entry;
         HEK *hek;
         char *k;
@@ -3521,8 +3584,8 @@ Perl_refcounted_he_chain_2hv(pTHX_ const
                 const STRLEN klen = HeKLEN(entry);
                 const char *const key = HeKEY(entry);
                 if (klen == chain->refcounted_he_keylen
-                    && (!!HeKUTF8(entry)
-                        == !!(chain->refcounted_he_data[0] & HVhek_UTF8))
+                    && (cBOOL(HeKUTF8(entry))
+                        == cBOOL((chain->refcounted_he_data[0] & HVhek_UTF8)))
                     && memEQ(key, REF_HE_KEY(chain), klen))
                     goto next_please;
 #else
@@ -3967,7 +4030,7 @@ Upon return, C<*flags> will be set to ei
 Alternatively, use the macro C<L</CopLABEL_len_flags>>;
 or if you don't need to know if the label is UTF-8 or not, the macro
 C<L</CopLABEL_len>>;
-or if you additionally dont need to know the length, C<L</CopLABEL>>.
+or if you additionally don't need to know the length, C<L</CopLABEL>>.
 
 =cut
 */
Index: gnu/usr.bin/perl/hv.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hv.h,v
diff -u -p -a -u -p -r1.18 hv.h
--- gnu/usr.bin/perl/hv.h	15 Feb 2023 01:36:13 -0000	1.18
+++ gnu/usr.bin/perl/hv.h	21 Feb 2024 15:47:02 -0000
@@ -112,6 +112,9 @@ union _xhvnameu {
     HEK **xhvnameu_names;	/* When xhv_name_count is non-0 */
 };
 
+/* A struct defined by pad.h and used within class.c */
+struct suspended_compcv;
+
 struct xpvhv_aux {
     union _xhvnameu xhv_name_u;	/* name, if a symbol table */
     AV		*xhv_backreferences; /* back references for weak references */
@@ -132,10 +135,25 @@ struct xpvhv_aux {
                                    used to detect each() after insert for warnings */
 #endif
     U32         xhv_aux_flags;      /* assorted extra flags */
+
+    /* The following fields are only valid if we have the flag HvAUXf_IS_CLASS */
+    HV          *xhv_class_superclass;         /* STASH of the :isa() base class */
+    CV          *xhv_class_initfields_cv;      /* CV for running initfields */
+    AV          *xhv_class_adjust_blocks;      /* CVs containing the ADJUST blocks */
+    PADNAMELIST *xhv_class_fields;             /* PADNAMEs with PadnameIsFIELD() */
+    PADOFFSET    xhv_class_next_fieldix;
+    HV          *xhv_class_param_map;          /* Maps param names to field index stored in UV */
+
+    struct suspended_compcv
+                *xhv_class_suspended_initfields_compcv;
 };
 
 #define HvAUXf_SCAN_STASH   0x1   /* stash is being scanned by gv_check */
 #define HvAUXf_NO_DEREF     0x2   /* @{}, %{} etc (and nomethod) not present */
+#define HvAUXf_IS_CLASS     0x4   /* the package is a 'class' */
+
+#define HvSTASH_IS_CLASS(hv) \
+    (HvHasAUX(hv) && HvAUX(hv)->xhv_aux_flags & HvAUXf_IS_CLASS)
 
 /* hash structure: */
 /* This structure must match the beginning of struct xpvmg in sv.h. */
@@ -280,19 +298,33 @@ hash.
 =cut
 
 */
+
 #define HvFILL(hv)	Perl_hv_fill(aTHX_ MUTABLE_HV(hv))
 #define HvMAX(hv)	((XPVHV*)  SvANY(hv))->xhv_max
+
+/*
+
+=for apidoc Am|bool|HvHasAUX|HV *const hv
+
+Returns true if the HV has a C<struct xpvhv_aux> extension. Use this to check
+whether it is valid to call C<HvAUX()>.
+
+=cut
+
+*/
+#define HvHasAUX(hv)	(SvFLAGS(hv) & SVphv_HasAUX)
+
 /* This quite intentionally does no flag checking first. That's your
-   responsibility.  */
+   responsibility. Use HvHasAUX() first */
 #define HvAUX(hv)       (&(((struct xpvhv_with_aux*)  SvANY(hv))->xhv_aux))
 #define HvRITER(hv)	(*Perl_hv_riter_p(aTHX_ MUTABLE_HV(hv)))
 #define HvEITER(hv)	(*Perl_hv_eiter_p(aTHX_ MUTABLE_HV(hv)))
 #define HvRITER_set(hv,r)	Perl_hv_riter_set(aTHX_ MUTABLE_HV(hv), r)
 #define HvEITER_set(hv,e)	Perl_hv_eiter_set(aTHX_ MUTABLE_HV(hv), e)
-#define HvRITER_get(hv)	(SvOOK(hv) ? HvAUX(hv)->xhv_riter : -1)
-#define HvEITER_get(hv)	(SvOOK(hv) ? HvAUX(hv)->xhv_eiter : NULL)
-#define HvRAND_get(hv)	(SvOOK(hv) ? HvAUX(hv)->xhv_rand : 0)
-#define HvLASTRAND_get(hv)	(SvOOK(hv) ? HvAUX(hv)->xhv_last_rand : 0)
+#define HvRITER_get(hv)	(HvHasAUX(hv) ? HvAUX(hv)->xhv_riter : -1)
+#define HvEITER_get(hv)	(HvHasAUX(hv) ? HvAUX(hv)->xhv_eiter : NULL)
+#define HvRAND_get(hv)	(HvHasAUX(hv) ? HvAUX(hv)->xhv_rand : 0)
+#define HvLASTRAND_get(hv)	(HvHasAUX(hv) ? HvAUX(hv)->xhv_last_rand : 0)
 
 #define HvNAME(hv)	HvNAME_get(hv)
 #define HvNAMELEN(hv)   HvNAMELEN_get(hv)
@@ -313,15 +345,16 @@ hash.
  )
 /* This macro may go away without notice.  */
 #define HvNAME_HEK(hv) \
-        (SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvNAME_HEK_NN(hv) : NULL)
+        (HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvNAME_HEK_NN(hv) : NULL)
+#define HvHasNAME(hv) \
+        (HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv))
 #define HvNAME_get(hv) \
-        ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
-                         ? HEK_KEY(HvNAME_HEK_NN(hv)) : NULL)
+        (HvHasNAME(hv) ? HEK_KEY(HvNAME_HEK_NN(hv)) : NULL)
 #define HvNAMELEN_get(hv) \
-        ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
+        ((HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
                                  ? HEK_LEN(HvNAME_HEK_NN(hv)) : 0)
 #define HvNAMEUTF8(hv) \
-        ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
+        ((HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
                                  ? HEK_UTF8(HvNAME_HEK_NN(hv)) : 0)
 #define HvENAME_HEK_NN(hv)                                             \
  (                                                                      \
@@ -330,17 +363,18 @@ hash.
   HvAUX(hv)->xhv_name_count == -1 ? NULL                              : \
                                     HvAUX(hv)->xhv_name_u.xhvnameu_name \
  )
+#define HvHasENAME_HEK(hv) \
+        (HvHasAUX(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name)
 #define HvENAME_HEK(hv) \
-        (SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvENAME_HEK_NN(hv) : NULL)
+        (HvHasENAME_HEK(hv) ? HvENAME_HEK_NN(hv) : NULL)
+#define HvHasENAME(hv) \
+        (HvHasENAME_HEK(hv) && HvAUX(hv)->xhv_name_count != -1)
 #define HvENAME_get(hv) \
-   ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
-                         ? HEK_KEY(HvENAME_HEK_NN(hv)) : NULL)
+        (HvHasENAME(hv) ? HEK_KEY(HvENAME_HEK_NN(hv)) : NULL)
 #define HvENAMELEN_get(hv) \
-   ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
-                                 ? HEK_LEN(HvENAME_HEK_NN(hv)) : 0)
+        (HvHasENAME(hv) ? HEK_LEN(HvENAME_HEK_NN(hv)) : 0)
 #define HvENAMEUTF8(hv) \
-   ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
-                                 ? HEK_UTF8(HvENAME_HEK_NN(hv)) : 0)
+        (HvHasENAME(hv) ? HEK_UTF8(HvENAME_HEK_NN(hv)) : 0)
 
 /*
  * HvKEYS gets the number of keys that actually exist(), and is provided
Index: gnu/usr.bin/perl/hv_func.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hv_func.h,v
diff -u -p -a -u -p -r1.12 hv_func.h
--- gnu/usr.bin/perl/hv_func.h	15 Feb 2023 01:36:13 -0000	1.12
+++ gnu/usr.bin/perl/hv_func.h	21 Feb 2024 15:47:02 -0000
@@ -23,7 +23,19 @@
 #endif
 
 #ifndef PERL_HASH_USE_SBOX32_ALSO
-#define PERL_HASH_USE_SBOX32_ALSO 1
+#  if defined(PERL_HASH_USE_SBOX32) || !defined(PERL_HASH_NO_SBOX32)
+#    define PERL_HASH_USE_SBOX32_ALSO 1
+#  else
+#    define PERL_HASH_USE_SBOX32_ALSO 0
+#  endif
+#endif
+
+#undef PERL_HASH_USE_SBOX32
+#undef PERL_HASH_NO_SBOX32
+#if PERL_HASH_USE_SBOX32_ALSO != 0
+#  define PERL_HASH_USE_SBOX32
+#else
+#  define PERL_HASH_NO_SBOX32
 #endif
 
 #ifndef SBOX32_MAX_LEN
@@ -34,40 +46,43 @@
 #include "sbox32_hash.h"
 
 #if defined(PERL_HASH_FUNC_SIPHASH)
-# define __PERL_HASH_FUNC "SIPHASH_2_4"
-# define __PERL_HASH_WORD_TYPE U64
-# define __PERL_HASH_WORD_SIZE sizeof(__PERL_HASH_WORD_TYPE)
-# define __PERL_HASH_SEED_BYTES (__PERL_HASH_WORD_SIZE * 2)
-# define __PERL_HASH_STATE_BYTES (__PERL_HASH_WORD_SIZE * 4)
-# define __PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
-# define __PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_2_4_with_state((state),(U8*)(str),(len))
+# define PERL_HASH_FUNC_DEFINE "PERL_HASH_FUNC_SIPHASH"
+# define PVT__PERL_HASH_FUNC "SIPHASH_2_4"
+# define PVT__PERL_HASH_WORD_TYPE U64
+# define PVT__PERL_HASH_WORD_SIZE sizeof(PVT__PERL_HASH_WORD_TYPE)
+# define PVT__PERL_HASH_SEED_BYTES (PVT__PERL_HASH_WORD_SIZE * 2)
+# define PVT__PERL_HASH_STATE_BYTES (PVT__PERL_HASH_WORD_SIZE * 4)
+# define PVT__PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
+# define PVT__PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_2_4_with_state((state),(U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_SIPHASH13)
-# define __PERL_HASH_FUNC "SIPHASH_1_3"
-# define __PERL_HASH_WORD_TYPE U64
-# define __PERL_HASH_WORD_SIZE sizeof(__PERL_HASH_WORD_TYPE)
-# define __PERL_HASH_SEED_BYTES (__PERL_HASH_WORD_SIZE * 2)
-# define __PERL_HASH_STATE_BYTES (__PERL_HASH_WORD_SIZE * 4)
-# define __PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
-# define __PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_1_3_with_state((state),(U8*)(str),(len))
+# define PERL_HASH_FUNC_DEFINE "PERL_HASH_FUNC_SIPHASH13"
+# define PVT__PERL_HASH_FUNC "SIPHASH_1_3"
+# define PVT__PERL_HASH_WORD_TYPE U64
+# define PVT__PERL_HASH_WORD_SIZE sizeof(PVT__PERL_HASH_WORD_TYPE)
+# define PVT__PERL_HASH_SEED_BYTES (PVT__PERL_HASH_WORD_SIZE * 2)
+# define PVT__PERL_HASH_STATE_BYTES (PVT__PERL_HASH_WORD_SIZE * 4)
+# define PVT__PERL_HASH_SEED_STATE(seed,state) S_perl_siphash_seed_state(seed,state)
+# define PVT__PERL_HASH_WITH_STATE(state,str,len) S_perl_hash_siphash_1_3_with_state((state),(const U8*)(str),(len))
 #elif defined(PERL_HASH_FUNC_ZAPHOD32)
-# define __PERL_HASH_FUNC "ZAPHOD32"
-# define __PERL_HASH_WORD_TYPE U32
-# define __PERL_HASH_WORD_SIZE sizeof(__PERL_HASH_WORD_TYPE)
-# define __PERL_HASH_SEED_BYTES (__PERL_HASH_WORD_SIZE * 3)
-# define __PERL_HASH_STATE_BYTES (__PERL_HASH_WORD_SIZE * 3)
-# define __PERL_HASH_SEED_STATE(seed,state) zaphod32_seed_state(seed,state)
-# define __PERL_HASH_WITH_STATE(state,str,len) (U32)zaphod32_hash_with_state((state),(U8*)(str),(len))
+# define PERL_HASH_FUNC_DEFINE "PERL_HASH_FUNC_ZAPHOD32"
+# define PVT__PERL_HASH_FUNC "ZAPHOD32"
+# define PVT__PERL_HASH_WORD_TYPE U32
+# define PVT__PERL_HASH_WORD_SIZE sizeof(PVT__PERL_HASH_WORD_TYPE)
+# define PVT__PERL_HASH_SEED_BYTES (PVT__PERL_HASH_WORD_SIZE * 3)
+# define PVT__PERL_HASH_STATE_BYTES (PVT__PERL_HASH_WORD_SIZE * 3)
+# define PVT__PERL_HASH_SEED_STATE(seed,state) zaphod32_seed_state(seed,state)
+# define PVT__PERL_HASH_WITH_STATE(state,str,len) (U32)zaphod32_hash_with_state((state),(U8*)(str),(len))
 # include "zaphod32_hash.h"
 #endif
 
-#ifndef __PERL_HASH_WITH_STATE
+#ifndef PVT__PERL_HASH_WITH_STATE
 #error "No hash function defined!"
 #endif
-#ifndef __PERL_HASH_SEED_BYTES
-#error "__PERL_HASH_SEED_BYTES not defined"
+#ifndef PVT__PERL_HASH_SEED_BYTES
+#error "PVT__PERL_HASH_SEED_BYTES not defined"
 #endif
-#ifndef __PERL_HASH_FUNC
-#error "__PERL_HASH_FUNC not defined"
+#ifndef PVT__PERL_HASH_FUNC
+#error "PVT__PERL_HASH_FUNC not defined"
 #endif
 
 /* Some siphash static functions are needed by XS::APItest even when
@@ -76,56 +91,56 @@
 */
 #include "perl_siphash.h"
 
-#define __PERL_HASH_SEED_roundup(x, y)   ( ( ( (x) + ( (y) - 1 ) ) / (y) ) * (y) )
-#define _PERL_HASH_SEED_roundup(x) __PERL_HASH_SEED_roundup(x,__PERL_HASH_WORD_SIZE)
+#define PVT__PERL_HASH_SEED_roundup(x, y)   ( ( ( (x) + ( (y) - 1 ) ) / (y) ) * (y) )
+#define PVT_PERL_HASH_SEED_roundup(x) PVT__PERL_HASH_SEED_roundup(x,PVT__PERL_HASH_WORD_SIZE)
 
 #define PL_hash_seed ((U8 *)PL_hash_seed_w)
 #define PL_hash_state ((U8 *)PL_hash_state_w)
 
-#if PERL_HASH_USE_SBOX32_ALSO != 1
-# define _PERL_HASH_FUNC                        __PERL_HASH_FUNC
-# define _PERL_HASH_SEED_BYTES                  __PERL_HASH_SEED_BYTES
-# define _PERL_HASH_STATE_BYTES                 __PERL_HASH_STATE_BYTES
-# define _PERL_HASH_SEED_STATE(seed,state)      __PERL_HASH_SEED_STATE(seed,state)
-# define _PERL_HASH_WITH_STATE(state,str,len)   __PERL_HASH_WITH_STATE(state,str,len)
+#if PERL_HASH_USE_SBOX32_ALSO == 0
+# define PVT_PERL_HASH_FUNC                        PVT__PERL_HASH_FUNC
+# define PVT_PERL_HASH_SEED_BYTES                  PVT__PERL_HASH_SEED_BYTES
+# define PVT_PERL_HASH_STATE_BYTES                 PVT__PERL_HASH_STATE_BYTES
+# define PVT_PERL_HASH_SEED_STATE(seed,state)      PVT__PERL_HASH_SEED_STATE(seed,state)
+# define PVT_PERL_HASH_WITH_STATE(state,str,len)   PVT__PERL_HASH_WITH_STATE(state,str,len)
 #else
 
-#define _PERL_HASH_FUNC         "SBOX32_WITH_" __PERL_HASH_FUNC
+#define PVT_PERL_HASH_FUNC         "SBOX32_WITH_" PVT__PERL_HASH_FUNC
 /* note the 4 in the below code comes from the fact the seed to initialize the SBOX is 128 bits */
-#define _PERL_HASH_SEED_BYTES   ( __PERL_HASH_SEED_BYTES + (int)( 4 * sizeof(U32)) )
+#define PVT_PERL_HASH_SEED_BYTES   ( PVT__PERL_HASH_SEED_BYTES + (int)( 4 * sizeof(U32)) )
 
-#define _PERL_HASH_STATE_BYTES  \
-    ( __PERL_HASH_STATE_BYTES + ( ( 1 + ( 256 * SBOX32_MAX_LEN ) ) * sizeof(U32) ) )
+#define PVT_PERL_HASH_STATE_BYTES  \
+    ( PVT__PERL_HASH_STATE_BYTES + ( ( 1 + ( 256 * SBOX32_MAX_LEN ) ) * sizeof(U32) ) )
 
-#define _PERL_HASH_SEED_STATE(seed,state) STMT_START {                                      \
-    __PERL_HASH_SEED_STATE(seed,state);                                                     \
-    sbox32_seed_state128(seed + __PERL_HASH_SEED_BYTES, state + __PERL_HASH_STATE_BYTES);    \
+#define PVT_PERL_HASH_SEED_STATE(seed,state) STMT_START {                                      \
+    PVT__PERL_HASH_SEED_STATE(seed,state);                                                     \
+    sbox32_seed_state128(seed + PVT__PERL_HASH_SEED_BYTES, state + PVT__PERL_HASH_STATE_BYTES);    \
 } STMT_END
 
-#define _PERL_HASH_WITH_STATE(state,str,len)                                            \
+#define PVT_PERL_HASH_WITH_STATE(state,str,len)                                            \
     (LIKELY(len <= SBOX32_MAX_LEN)                                                      \
-        ? sbox32_hash_with_state((state + __PERL_HASH_STATE_BYTES),(U8*)(str),(len))    \
-        : __PERL_HASH_WITH_STATE((state),(str),(len)))
+        ? sbox32_hash_with_state((state + PVT__PERL_HASH_STATE_BYTES),(const U8*)(str),(len))    \
+        : PVT__PERL_HASH_WITH_STATE((state),(str),(len)))
 
 #endif
 
 #define PERL_HASH_WITH_SEED(seed,hash,str,len) \
     (hash) = S_perl_hash_with_seed((const U8 *) seed, (const U8 *) str,len)
 #define PERL_HASH_WITH_STATE(state,hash,str,len) \
-    (hash) = _PERL_HASH_WITH_STATE((state),(U8*)(str),(len))
+    (hash) = PVT_PERL_HASH_WITH_STATE((state),(const U8*)(str),(len))
 
-#define PERL_HASH_SEED_STATE(seed,state) _PERL_HASH_SEED_STATE(seed,state)
-#define PERL_HASH_SEED_BYTES _PERL_HASH_SEED_roundup(_PERL_HASH_SEED_BYTES)
-#define PERL_HASH_STATE_BYTES _PERL_HASH_SEED_roundup(_PERL_HASH_STATE_BYTES)
-#define PERL_HASH_FUNC        _PERL_HASH_FUNC
+#define PERL_HASH_SEED_STATE(seed,state) PVT_PERL_HASH_SEED_STATE(seed,state)
+#define PERL_HASH_SEED_BYTES PVT_PERL_HASH_SEED_roundup(PVT_PERL_HASH_SEED_BYTES)
+#define PERL_HASH_STATE_BYTES PVT_PERL_HASH_SEED_roundup(PVT_PERL_HASH_STATE_BYTES)
+#define PERL_HASH_FUNC        PVT_PERL_HASH_FUNC
 
-#define PERL_HASH_SEED_WORDS (PERL_HASH_SEED_BYTES/__PERL_HASH_WORD_SIZE)
-#define PERL_HASH_STATE_WORDS (PERL_HASH_STATE_BYTES/__PERL_HASH_WORD_SIZE)
+#define PERL_HASH_SEED_WORDS (PERL_HASH_SEED_BYTES/PVT__PERL_HASH_WORD_SIZE)
+#define PERL_HASH_STATE_WORDS (PERL_HASH_STATE_BYTES/PVT__PERL_HASH_WORD_SIZE)
 
 #ifdef PERL_USE_SINGLE_CHAR_HASH_CACHE
 #define PERL_HASH(state,str,len) \
     (hash) = ((len) < 2 ? ( (len) == 0 ? PL_hash_chars[256] : PL_hash_chars[(U8)(str)[0]] ) \
-                       : _PERL_HASH_WITH_STATE(PL_hash_state,(U8*)(str),(len)))
+                       : PVT_PERL_HASH_WITH_STATE(PL_hash_state,(U8*)(str),(len)))
 #else
 #define PERL_HASH(hash,str,len) \
     PERL_HASH_WITH_STATE(PL_hash_state,hash,(U8*)(str),(len))
@@ -162,9 +177,9 @@
 
 PERL_STATIC_INLINE U32
 S_perl_hash_with_seed(const U8 * seed, const U8 *str, STRLEN len) {
-    __PERL_HASH_WORD_TYPE state[PERL_HASH_STATE_WORDS];
-    _PERL_HASH_SEED_STATE(seed,(U8*)state);
-    return _PERL_HASH_WITH_STATE((U8*)state,str,len);
+    PVT__PERL_HASH_WORD_TYPE state[PERL_HASH_STATE_WORDS];
+    PVT_PERL_HASH_SEED_STATE(seed,(U8*)state);
+    return PVT_PERL_HASH_WITH_STATE((U8*)state,str,len);
 }
 
 #endif /*compile once*/
Index: gnu/usr.bin/perl/hv_macro.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hv_macro.h,v
diff -u -p -a -u -p -r1.1.1.3 hv_macro.h
--- gnu/usr.bin/perl/hv_macro.h	15 Feb 2023 01:31:52 -0000	1.1.1.3
+++ gnu/usr.bin/perl/hv_macro.h	21 Feb 2024 15:47:02 -0000
@@ -20,9 +20,9 @@
  * The following 3 macros are defined in this section. The other macros defined
  * are only needed to help derive these 3.
  *
- * U8TO16_LE(x)   Read a little endian unsigned 32-bit int
+ * U8TO16_LE(x)   Read a little endian unsigned 16-bit int
  * U8TO32_LE(x)   Read a little endian unsigned 32-bit int
- * U8TO28_LE(x)   Read a little endian unsigned 32-bit int
+ * U8TO64_LE(x)   Read a little endian unsigned 64-bit int
  * ROTL32(x,r)      Rotate x left by r bits
  * ROTL64(x,r)      Rotate x left by r bits
  * ROTR32(x,r)      Rotate x right by r bits
@@ -30,7 +30,7 @@
  */
 
 #ifndef U8TO16_LE
-  #define _shifted_octet(type,ptr,idx,shift) (((type)(((U8*)(ptr))[(idx)]))<<(shift))
+  #define _shifted_octet(type,ptr,idx,shift) (((type)(((const U8*)(ptr))[(idx)]))<<(shift))
     #if defined(USE_UNALIGNED_PTR_DEREF) && (BYTEORDER == 0x1234 || BYTEORDER == 0x12345678)
         #define U8TO16_LE(ptr)   (*((const U16*)(ptr)))
         #define U8TO32_LE(ptr)   (*((const U32*)(ptr)))
Index: gnu/usr.bin/perl/inline.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/inline.h,v
diff -u -p -a -u -p -r1.7 inline.h
--- gnu/usr.bin/perl/inline.h	15 Feb 2023 01:36:13 -0000	1.7
+++ gnu/usr.bin/perl/inline.h	21 Feb 2024 15:47:02 -0000
@@ -34,6 +34,10 @@ SOFTWARE.
  * header files, because they depend on proto.h (included after most other
  * headers) or struct definitions.
  *
+ * Note also perlstatic.h for functions that can't or shouldn't be inlined, but
+ * whose details should be exposed to the compiler, for such things as tail
+ * call optimization.
+ *
  * Each section names the header file that the functions "belong" to.
  */
 
@@ -140,6 +144,78 @@ Perl_av_fetch_simple(pTHX_ AV *av, SSize
     }
 }
 
+/*
+=for apidoc av_push_simple
+
+This is a cut-down version of av_push that assumes that the array is very
+straightforward - no magic, not readonly, and AvREAL - and that C<key> is
+not less than -1. This function MUST NOT be used in situations where any
+of those assumptions may not hold.
+
+Pushes an SV (transferring control of one reference count) onto the end of the
+array.  The array will grow automatically to accommodate the addition.
+
+Perl equivalent: C<push @myarray, $val;>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_av_push_simple(pTHX_ AV *av, SV *val)
+{
+    PERL_ARGS_ASSERT_AV_PUSH_SIMPLE;
+    assert(SvTYPE(av) == SVt_PVAV);
+    assert(!SvMAGICAL(av));
+    assert(!SvREADONLY(av));
+    assert(AvREAL(av));
+    assert(AvFILLp(av) > -2);
+
+    (void)av_store_simple(av,AvFILLp(av)+1,val);
+}
+
+/*
+=for apidoc av_new_alloc
+
+This implements L<perlapi/C<newAV_alloc_x>>
+and L<perlapi/C<newAV_alloc_xz>>, which are the public API for this
+functionality.
+
+Creates a new AV and allocates its SV* array.
+
+This is similar to, but more efficient than doing:
+
+    AV *av = newAV();
+    av_extend(av, key);
+
+The size parameter is used to pre-allocate a SV* array large enough to
+hold at least elements C<0..(size-1)>.  C<size> must be at least 1.
+
+The C<zeroflag> parameter controls whether or not the array is NULL
+initialized.
+
+=cut
+*/
+
+PERL_STATIC_INLINE AV *
+Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag)
+{
+    AV * const av = newAV();
+    SV** ary;
+    PERL_ARGS_ASSERT_AV_NEW_ALLOC;
+    assert(size > 0);
+
+    Newx(ary, size, SV*); /* Newx performs the memwrap check */
+    AvALLOC(av) = ary;
+    AvARRAY(av) = ary;
+    AvMAX(av) = size - 1;
+
+    if (zeroflag)
+        Zero(ary, size, SV*);
+
+    return av;
+}
+
+
 /* ------------------------------- cv.h ------------------------------- */
 
 /*
@@ -205,6 +281,25 @@ S_strip_spaces(pTHX_ const char * orig, 
 }
 #endif
 
+/* ------------------------------- iperlsys.h ------------------------------- */
+#if ! defined(PERL_IMPLICIT_SYS) && defined(USE_ITHREADS)
+
+/* Otherwise this function is implemented as macros in iperlsys.h */
+
+PERL_STATIC_INLINE bool
+S_PerlEnv_putenv(pTHX_ char * str)
+{
+    PERL_ARGS_ASSERT_PERLENV_PUTENV;
+
+    ENV_LOCK;
+    bool retval = putenv(str);
+    ENV_UNLOCK;
+
+    return retval;
+}
+
+#endif
+
 /* ------------------------------- mg.h ------------------------------- */
 
 #if defined(PERL_CORE) || defined(PERL_EXT)
@@ -314,171 +409,6 @@ Perl_ReANY(const REGEXP * const re)
                                    : (struct regexp *)p;
 }
 
-/* ------------------------------- sv.h ------------------------------- */
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SVTRUE;
-
-    if (UNLIKELY(sv == NULL))
-        return FALSE;
-    SvGETMAGIC(sv);
-    return SvTRUE_nomg_NN(sv);
-}
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE_nomg(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SVTRUE_NOMG;
-
-    if (UNLIKELY(sv == NULL))
-        return FALSE;
-    return SvTRUE_nomg_NN(sv);
-}
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE_NN(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SVTRUE_NN;
-
-    SvGETMAGIC(sv);
-    return SvTRUE_nomg_NN(sv);
-}
-
-PERL_STATIC_INLINE bool
-Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
-{
-    PERL_ARGS_ASSERT_SVTRUE_COMMON;
-
-    if (UNLIKELY(SvIMMORTAL_INTERP(sv)))
-        return SvIMMORTAL_TRUE(sv);
-
-    if (! SvOK(sv))
-        return FALSE;
-
-    if (SvPOK(sv))
-        return SvPVXtrue(sv);
-
-    if (SvIOK(sv))
-        return SvIVX(sv) != 0; /* casts to bool */
-
-    if (SvROK(sv) && !(SvOBJECT(SvRV(sv)) && HvAMAGIC(SvSTASH(SvRV(sv)))))
-        return TRUE;
-
-    if (sv_2bool_is_fallback)
-        return sv_2bool_nomg(sv);
-
-    return isGV_with_GP(sv);
-}
-
-
-PERL_STATIC_INLINE SV *
-Perl_SvREFCNT_inc(SV *sv)
-{
-    if (LIKELY(sv != NULL))
-        SvREFCNT(sv)++;
-    return sv;
-}
-PERL_STATIC_INLINE SV *
-Perl_SvREFCNT_inc_NN(SV *sv)
-{
-    PERL_ARGS_ASSERT_SVREFCNT_INC_NN;
-
-    SvREFCNT(sv)++;
-    return sv;
-}
-PERL_STATIC_INLINE void
-Perl_SvREFCNT_inc_void(SV *sv)
-{
-    if (LIKELY(sv != NULL))
-        SvREFCNT(sv)++;
-}
-PERL_STATIC_INLINE void
-Perl_SvREFCNT_dec(pTHX_ SV *sv)
-{
-    if (LIKELY(sv != NULL)) {
-        U32 rc = SvREFCNT(sv);
-        if (LIKELY(rc > 1))
-            SvREFCNT(sv) = rc - 1;
-        else
-            Perl_sv_free2(aTHX_ sv, rc);
-    }
-}
-
-PERL_STATIC_INLINE void
-Perl_SvREFCNT_dec_NN(pTHX_ SV *sv)
-{
-    U32 rc = SvREFCNT(sv);
-
-    PERL_ARGS_ASSERT_SVREFCNT_DEC_NN;
-
-    if (LIKELY(rc > 1))
-        SvREFCNT(sv) = rc - 1;
-    else
-        Perl_sv_free2(aTHX_ sv, rc);
-}
-
-/*
-=for apidoc SvAMAGIC_on
-
-Indicate that C<sv> has overloading (active magic) enabled.
-
-=cut
-*/
-
-PERL_STATIC_INLINE void
-Perl_SvAMAGIC_on(SV *sv)
-{
-    PERL_ARGS_ASSERT_SVAMAGIC_ON;
-    assert(SvROK(sv));
-
-    if (SvOBJECT(SvRV(sv))) HvAMAGIC_on(SvSTASH(SvRV(sv)));
-}
-
-/*
-=for apidoc SvAMAGIC_off
-
-Indicate that C<sv> has overloading (active magic) disabled.
-
-=cut
-*/
-
-PERL_STATIC_INLINE void
-Perl_SvAMAGIC_off(SV *sv)
-{
-    PERL_ARGS_ASSERT_SVAMAGIC_OFF;
-
-    if (SvROK(sv) && SvOBJECT(SvRV(sv)))
-        HvAMAGIC_off(SvSTASH(SvRV(sv)));
-}
-
-PERL_STATIC_INLINE U32
-Perl_SvPADSTALE_on(SV *sv)
-{
-    assert(!(SvFLAGS(sv) & SVs_PADTMP));
-    return SvFLAGS(sv) |= SVs_PADSTALE;
-}
-PERL_STATIC_INLINE U32
-Perl_SvPADSTALE_off(SV *sv)
-{
-    assert(!(SvFLAGS(sv) & SVs_PADTMP));
-    return SvFLAGS(sv) &= ~SVs_PADSTALE;
-}
-#if defined(PERL_CORE) || defined (PERL_EXT)
-PERL_STATIC_INLINE STRLEN
-S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp)
-{
-    PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B;
-    if (SvGAMAGIC(sv)) {
-        U8 *hopped = utf8_hop((U8 *)pv, pos);
-        if (lenp) *lenp = (STRLEN)(utf8_hop(hopped, *lenp) - hopped);
-        return (STRLEN)(hopped - (U8 *)pv);
-    }
-    return sv_pos_u2b_flags(sv,pos,lenp,SV_CONST_RETURN);
-}
-#endif
-
 /* ------------------------------- utf8.h ------------------------------- */
 
 /*
@@ -657,7 +587,7 @@ Perl_is_utf8_invariant_string_loc(const 
         /* Here, we know we have at least one full word to process.  Process
          * per-word as long as we have at least a full word left */
         do {
-            if ((* (PERL_UINTMAX_T *) x) & PERL_VARIANTS_WORD_MASK)  {
+            if ((* (const PERL_UINTMAX_T *) x) & PERL_VARIANTS_WORD_MASK)  {
 
                 /* Found a variant.  Just return if caller doesn't want its
                  * exact position */
@@ -668,7 +598,7 @@ Perl_is_utf8_invariant_string_loc(const 
 #  if   BYTEORDER == 0x1234 || BYTEORDER == 0x12345678    \
      || BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
 
-                *ep = x + variant_byte_number(* (PERL_UINTMAX_T *) x);
+                *ep = x + variant_byte_number(* (const PERL_UINTMAX_T *) x);
                 assert(*ep >= s && *ep < send);
 
                 return FALSE;
@@ -1200,7 +1130,8 @@ S_variant_under_utf8_count(const U8* con
 
 #endif
 
-#ifndef PERL_IN_REGEXEC_C   /* Keep  these around for that file */
+   /* Keep  these around for these files */
+#if ! defined(PERL_IN_REGEXEC_C) && ! defined(PERL_IN_UTF8_C)
 #  undef PERL_WORDSIZE
 #  undef PERL_COUNT_MULTIPLIER
 #  undef PERL_WORD_BOUNDARY_MASK
@@ -1542,7 +1473,7 @@ Perl_is_utf8_string_loclen(const U8 *s, 
  * This uses adaptations of the table and algorithm given in
  * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
  * documentation of the original version.  A copyright notice for the original
- * version is given at the beginning of this file.  The Perl adapations are
+ * version is given at the beginning of this file.  The Perl adaptations are
  * documented at the definition of PL_extended_utf8_dfa_tab[].
  *
  * This dfa is fast.  There are three exit conditions:
@@ -1599,9 +1530,10 @@ Perl_is_utf8_string_loclen(const U8 *s, 
                               incomplete_char_action)                       \
     STMT_START {                                                            \
         const U8 * s = s0;                                                  \
+        const U8 * e_ = e;                                                  \
         UV state = 0;                                                       \
                                                                             \
-        PERL_NON_CORE_CHECK_EMPTY(s,e);                                     \
+        PERL_NON_CORE_CHECK_EMPTY(s, e_);                                   \
                                                                             \
         do {                                                                \
             state = dfa_tab[256 + state + dfa_tab[*s]];                     \
@@ -1614,7 +1546,7 @@ Perl_is_utf8_string_loclen(const U8 *s, 
             if (UNLIKELY(state == 1)) { /* Rejecting state */               \
                 reject_action;                                              \
             }                                                               \
-        } while (s < e);                                                    \
+        } while (s < e_);                                                   \
                                                                             \
         /* Here, dropped out of loop before end-of-char */                  \
         incomplete_char_action;                                             \
@@ -1654,7 +1586,7 @@ machines) is a valid UTF-8 character.
 This uses an adaptation of the table and algorithm given in
 https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
 documentation of the original version.  A copyright notice for the original
-version is given at the beginning of this file.  The Perl adapation is
+version is given at the beginning of this file.  The Perl adaptation is
 documented at the definition of PL_extended_utf8_dfa_tab[].
 */
 
@@ -1723,7 +1655,7 @@ C<L</is_strict_utf8_string_loclen>> to c
 This uses an adaptation of the tables and algorithm given in
 https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
 documentation of the original version.  A copyright notice for the original
-version is given at the beginning of this file.  The Perl adapation is
+version is given at the beginning of this file.  The Perl adaptation is
 documented at the definition of strict_extended_utf8_dfa_tab[].
 
 */
@@ -1778,7 +1710,7 @@ C<L</is_c9strict_utf8_string_loclen>> to
 This uses an adaptation of the tables and algorithm given in
 https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides comprehensive
 documentation of the original version.  A copyright notice for the original
-version is given at the beginning of this file.  The Perl adapation is
+version is given at the beginning of this file.  The Perl adaptation is
 documented at the definition of PL_c9_utf8_dfa_tab[].
 
 */
@@ -2072,11 +2004,16 @@ Perl_utf8_distance(pTHX_ const U8 *a, co
 =for apidoc utf8_hop
 
 Return the UTF-8 pointer C<s> displaced by C<off> characters, either
-forward or backward.
-
-WARNING: do not use the following unless you *know* C<off> is within
-the UTF-8 data pointed to by C<s> *and* that on entry C<s> is aligned
-on the first byte of character or just after the last byte of a character.
+forward (if C<off> is positive) or backward (if negative).  C<s> does not need
+to be pointing to the starting byte of a character.  If it isn't, one count of
+C<off> will be used up to get to the start of the next character for forward
+hops, and to the start of the current character for negative ones.
+
+WARNING: Prefer L</utf8_hop_safe> to this one.
+
+Do NOT use this function unless you B<know> C<off> is within
+the UTF-8 data pointed to by C<s> B<and> that on entry C<s> is aligned
+on the first byte of a character or just after the last byte of a character.
 
 =cut
 */
@@ -2087,10 +2024,20 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
     PERL_ARGS_ASSERT_UTF8_HOP;
 
     /* Note: cannot use UTF8_IS_...() too eagerly here since e.g
-     * the bitops (especially ~) can create illegal UTF-8.
+     * the XXX bitops (especially ~) can create illegal UTF-8.
      * In other words: in Perl UTF-8 is not just for Unicode. */
 
-    if (off >= 0) {
+    if (off > 0) {
+
+        /* Get to next non-continuation byte */
+        if (UNLIKELY(UTF8_IS_CONTINUATION(*s))) {
+            do {
+                s++;
+            }
+            while (UTF8_IS_CONTINUATION(*s));
+            off--;
+        }
+
         while (off--)
             s += UTF8SKIP(s);
     }
@@ -2101,6 +2048,7 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
                 s--;
         }
     }
+
     GCC_DIAG_IGNORE(-Wcast-qual)
     return (U8 *)s;
     GCC_DIAG_RESTORE
@@ -2110,7 +2058,9 @@ Perl_utf8_hop(const U8 *s, SSize_t off)
 =for apidoc utf8_hop_forward
 
 Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
-forward.
+forward.  C<s> does not need to be pointing to the starting byte of a
+character.  If it isn't, one count of C<off> will be used up to get to the
+start of the next character.
 
 C<off> must be non-negative.
 
@@ -2135,6 +2085,15 @@ Perl_utf8_hop_forward(const U8 *s, SSize
     assert(s <= end);
     assert(off >= 0);
 
+    if (off && UNLIKELY(UTF8_IS_CONTINUATION(*s))) {
+        /* Get to next non-continuation byte */
+        do {
+            s++;
+        }
+        while (UTF8_IS_CONTINUATION(*s));
+        off--;
+    }
+
     while (off--) {
         STRLEN skip = UTF8SKIP(s);
         if ((STRLEN)(end - s) <= skip) {
@@ -2154,7 +2113,9 @@ Perl_utf8_hop_forward(const U8 *s, SSize
 =for apidoc utf8_hop_back
 
 Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
-backward.
+backward.  C<s> does not need to be pointing to the starting byte of a
+character.  If it isn't, one count of C<off> will be used up to get to that
+start.
 
 C<off> must be non-positive.
 
@@ -2179,6 +2140,13 @@ Perl_utf8_hop_back(const U8 *s, SSize_t 
     assert(start <= s);
     assert(off <= 0);
 
+    /* Note: if we know that the input is well-formed, we can do per-word
+     * hop-back.  Commit d6ad3b72778369a84a215b498d8d60d5b03aa1af implemented
+     * that.  But it was reverted because doing per-word has some
+     * start-up/tear-down overhead, so only makes sense if the distance to be
+     * moved is large, and core perl doesn't currently move more than a few
+     * characters at a time.  You can reinstate it if it does become
+     * advantageous. */
     while (off++ && s > start) {
         do {
             s--;
@@ -2194,7 +2162,10 @@ Perl_utf8_hop_back(const U8 *s, SSize_t 
 =for apidoc utf8_hop_safe
 
 Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
-either forward or backward.
+either forward or backward.  C<s> does not need to be pointing to the starting
+byte of a character.  If it isn't, one count of C<off> will be used up to get
+to the start of the next character for forward hops, and to the start of the
+current character for negative ones.
 
 When moving backward it will not move before C<start>.
 
@@ -2460,11 +2431,11 @@ Perl_is_utf8_fixed_width_buf_loclen_flag
 
 PERL_STATIC_INLINE UV
 Perl_utf8n_to_uvchr_msgs(const U8 *s,
-                      STRLEN curlen,
-                      STRLEN *retlen,
-                      const U32 flags,
-                      U32 * errors,
-                      AV ** msgs)
+                         STRLEN curlen,
+                         STRLEN *retlen,
+                         const U32 flags,
+                         U32 * errors,
+                         AV ** msgs)
 {
     /* This is the inlined portion of utf8n_to_uvchr_msgs.  It handles the
      * simple cases, and, if necessary calls a helper function to deal with the
@@ -2476,7 +2447,7 @@ Perl_utf8n_to_uvchr_msgs(const U8 *s,
      * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which provides
      * comprehensive documentation of the original version.  A copyright notice
      * for the original version is given at the beginning of this file.  The
-     * Perl adapation is documented at the definition of PL_strict_utf8_dfa_tab[].
+     * Perl adaptation is documented at the definition of PL_strict_utf8_dfa_tab[].
      */
 
     const U8 * const s0 = s;
@@ -2687,7 +2658,7 @@ S_lossless_NV_to_IV(const NV nv, IV *ivp
 
 /* ------------------ pp.c, regcomp.c, toke.c, universal.c ------------ */
 
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
 
 #define MAX_CHARSET_NAME_LENGTH 2
 
@@ -3086,6 +3057,8 @@ Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx)
         cx->blk_loop.itersave = NULL;
         SvREFCNT_dec(cursv);
     }
+    if (cx->cx_type & (CXp_FOR_GV|CXp_FOR_LVREF))
+        SvREFCNT_dec(cx->blk_loop.itervar_u.svp);
 }
 
 
@@ -3134,6 +3107,36 @@ Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx)
     SvREFCNT_dec(sv);
 }
 
+/*
+=for apidoc newPADxVOP
+
+Constructs, checks and returns an op containing a pad offset.  C<type> is
+the opcode, which should be one of C<OP_PADSV>, C<OP_PADAV>, C<OP_PADHV>
+or C<OP_PADCV>.  The returned op will have the C<op_targ> field set by
+the C<padix> argument.
+
+This is convenient when constructing a large optree in nested function
+calls, as it avoids needing to store the pad op directly to set the
+C<op_targ> field as a side-effect. For example
+
+    o = op_append_elem(OP_LINESEQ, o,
+        newPADxVOP(OP_PADSV, 0, padix));
+
+=cut
+*/
+
+PERL_STATIC_INLINE OP *
+Perl_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix)
+{
+    PERL_ARGS_ASSERT_NEWPADXVOP;
+
+    assert(type == OP_PADSV || type == OP_PADAV || type == OP_PADHV
+            || type == OP_PADCV);
+    OP *o = newOP(type, flags);
+    o->op_targ = padix;
+    return o;
+}
+
 /* ------------------ util.h ------------------------------------------- */
 
 /*
@@ -3151,7 +3154,7 @@ range bytes match only themselves.
 */
 
 PERL_STATIC_INLINE I32
-Perl_foldEQ(const char *s1, const char *s2, I32 len)
+Perl_foldEQ(pTHX_ const char *s1, const char *s2, I32 len)
 {
     const U8 *a = (const U8 *)s1;
     const U8 *b = (const U8 *)s2;
@@ -3169,7 +3172,7 @@ Perl_foldEQ(const char *s1, const char *
 }
 
 PERL_STATIC_INLINE I32
-Perl_foldEQ_latin1(const char *s1, const char *s2, I32 len)
+Perl_foldEQ_latin1(pTHX_ const char *s1, const char *s2, I32 len)
 {
     /* Compare non-UTF-8 using Unicode (Latin1) semantics.  Works on all folds
      * representable without UTF-8, except for LATIN_SMALL_LETTER_SHARP_S, and
@@ -3203,7 +3206,7 @@ same case-insensitively in the current l
 */
 
 PERL_STATIC_INLINE I32
-Perl_foldEQ_locale(const char *s1, const char *s2, I32 len)
+Perl_foldEQ_locale(pTHX_ const char *s1, const char *s2, I32 len)
 {
     const U8 *a = (const U8 *)s1;
     const U8 *b = (const U8 *)s2;
@@ -3213,8 +3216,14 @@ Perl_foldEQ_locale(const char *s1, const
     assert(len >= 0);
 
     while (len--) {
-        if (*a != *b && *a != PL_fold_locale[*b])
+        if (*a != *b && *a != PL_fold_locale[*b]) {
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                     "%s:%d: Our records indicate %02x is not a fold of %02x"
+                     " or its mate %02x\n",
+                     __FILE__, __LINE__, *a, *b, PL_fold_locale[*b]));
+
             return 0;
+        }
         a++,b++;
     }
     return 1;
@@ -3341,7 +3350,7 @@ Perl_mortal_getenv(const char * str)
      * the recursive calls and calls from the logger, and treat them specially.
      * Let's say we want to do getenv("foo").  We first find
      * getenv(PERL_MEM_LOG) and save it to a fixed-length per-interpreter
-     * variable, so no temporary is required.  Then we do getenv(foo}, and in
+     * variable, so no temporary is required.  Then we do getenv(foo), and in
      * the process of creating a temporary to save it, this function will be
      * called recursively to do a getenv(PERL_MEM_LOG).  On the recursed call,
      * we detect that it is such a call and return our saved value instead of
@@ -3421,7 +3430,7 @@ Perl_mortal_getenv(const char * str)
             }
         }
 
-        /* Then each of the three significant characters */
+        /* Then each of the four significant characters */
         if (strchr(ret, 'm')) {
             *mem_log_meat++ = 'm';
         }
@@ -3431,6 +3440,9 @@ Perl_mortal_getenv(const char * str)
         if (strchr(ret, 't')) {
             *mem_log_meat++ = 't';
         }
+        if (strchr(ret, 'c')) {
+            *mem_log_meat++ = 'c';
+        }
         *mem_log_meat = '\0';
 
         assert(mem_log_meat < PL_mem_log + sizeof(PL_mem_log));
@@ -3475,8 +3487,7 @@ Perl_mortal_getenv(const char * str)
 PERL_STATIC_INLINE bool
 Perl_sv_isbool(pTHX_ const SV *sv)
 {
-    return SvIOK(sv) && SvPOK(sv) && SvIsCOW_static(sv) &&
-        (SvPVX_const(sv) == PL_Yes || SvPVX_const(sv) == PL_No);
+    return SvBoolFlagsOK(sv) && BOOL_INTERNALS_sv_isbool(sv);
 }
 
 #ifdef USE_ITHREADS
@@ -3499,6 +3510,254 @@ Perl_cop_file_avn(pTHX_ const COP *cop) 
          return NULL;
 }
 
+#endif
+
+PERL_STATIC_INLINE PADNAME *
+Perl_padname_refcnt_inc(PADNAME *pn)
+{
+    PadnameREFCNT(pn)++;
+    return pn;
+}
+
+PERL_STATIC_INLINE PADNAMELIST *
+Perl_padnamelist_refcnt_inc(PADNAMELIST *pnl)
+{
+    PadnamelistREFCNT(pnl)++;
+    return pnl;
+}
+
+/* copy a string to a safe spot */
+
+/*
+=for apidoc_section $string
+=for apidoc savepv
+
+Perl's version of C<strdup()>.  Returns a pointer to a newly allocated
+string which is a duplicate of C<pv>.  The size of the string is
+determined by C<strlen()>, which means it may not contain embedded C<NUL>
+characters and must have a trailing C<NUL>.  To prevent memory leaks, the
+memory allocated for the new string needs to be freed when no longer needed.
+This can be done with the C<L</Safefree>> function, or
+L<C<SAVEFREEPV>|perlguts/SAVEFREEPV(p)>.
+
+On some platforms, Windows for example, all allocated memory owned by a thread
+is deallocated when that thread ends.  So if you need that not to happen, you
+need to use the shared memory functions, such as C<L</savesharedpv>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savepv(pTHX_ const char *pv)
+{
+    PERL_UNUSED_CONTEXT;
+    if (!pv)
+        return NULL;
+    else {
+        char *newaddr;
+        const STRLEN pvlen = strlen(pv)+1;
+        Newx(newaddr, pvlen, char);
+        return (char*)memcpy(newaddr, pv, pvlen);
+    }
+}
+
+/* same thing but with a known length */
+
+/*
+=for apidoc savepvn
+
+Perl's version of what C<strndup()> would be if it existed.  Returns a
+pointer to a newly allocated string which is a duplicate of the first
+C<len> bytes from C<pv>, plus a trailing
+C<NUL> byte.  The memory allocated for
+the new string can be freed with the C<Safefree()> function.
+
+On some platforms, Windows for example, all allocated memory owned by a thread
+is deallocated when that thread ends.  So if you need that not to happen, you
+need to use the shared memory functions, such as C<L</savesharedpvn>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savepvn(pTHX_ const char *pv, Size_t len)
+{
+    char *newaddr;
+    PERL_UNUSED_CONTEXT;
+
+    Newx(newaddr,len+1,char);
+    /* Give a meaning to NULL pointer mainly for the use in sv_magic() */
+    if (pv) {
+        /* might not be null terminated */
+        newaddr[len] = '\0';
+        return (char *) CopyD(pv,newaddr,len,char);
+    }
+    else {
+        return (char *) ZeroD(newaddr,len+1,char);
+    }
+}
+
+/*
+=for apidoc savesvpv
+
+A version of C<savepv()>/C<savepvn()> which gets the string to duplicate from
+the passed in SV using C<SvPV()>
+
+On some platforms, Windows for example, all allocated memory owned by a thread
+is deallocated when that thread ends.  So if you need that not to happen, you
+need to use the shared memory functions, such as C<L</savesharedsvpv>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savesvpv(pTHX_ SV *sv)
+{
+    STRLEN len;
+    const char * const pv = SvPV_const(sv, len);
+    char *newaddr;
+
+    PERL_ARGS_ASSERT_SAVESVPV;
+
+    ++len;
+    Newx(newaddr,len,char);
+    return (char *) CopyD(pv,newaddr,len,char);
+}
+
+/*
+=for apidoc savesharedsvpv
+
+A version of C<savesharedpv()> which allocates the duplicate string in
+memory which is shared between threads.
+
+=cut
+*/
+
+PERL_STATIC_INLINE char *
+Perl_savesharedsvpv(pTHX_ SV *sv)
+{
+    STRLEN len;
+    const char * const pv = SvPV_const(sv, len);
+
+    PERL_ARGS_ASSERT_SAVESHAREDSVPV;
+
+    return savesharedpvn(pv, len);
+}
+
+#ifndef PERL_GET_CONTEXT_DEFINED
+
+/*
+=for apidoc_section $embedding
+=for apidoc get_context
+
+Implements L<perlapi/C<PERL_GET_CONTEXT>>, which you should use instead.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void *
+Perl_get_context(void)
+{
+#  if defined(USE_ITHREADS)
+#    ifdef OLD_PTHREADS_API
+    pthread_addr_t t;
+    int error = pthread_getspecific(PL_thr_key, &t);
+    if (error)
+        Perl_croak_nocontext("panic: pthread_getspecific, error=%d", error);
+    return (void*)t;
+#    elif defined(I_MACH_CTHREADS)
+    return (void*)cthread_data(cthread_self());
+#    else
+    return (void*)PTHREAD_GETSPECIFIC(PL_thr_key);
+#    endif
+#  else
+    return (void*)NULL;
+#  endif
+}
+
+#endif
+
+PERL_STATIC_INLINE MGVTBL*
+Perl_get_vtbl(pTHX_ int vtbl_id)
+{
+    PERL_UNUSED_CONTEXT;
+
+    return (vtbl_id < 0 || vtbl_id >= magic_vtable_max)
+        ? NULL : (MGVTBL*)PL_magic_vtables + vtbl_id;
+}
+
+/*
+=for apidoc my_strlcat
+
+The C library C<strlcat> if available, or a Perl implementation of it.
+This operates on C C<NUL>-terminated strings.
+
+C<my_strlcat()> appends string C<src> to the end of C<dst>.  It will append at
+most S<C<size - strlen(dst) - 1>> characters.  It will then C<NUL>-terminate,
+unless C<size> is 0 or the original C<dst> string was longer than C<size> (in
+practice this should not happen as it means that either C<size> is incorrect or
+that C<dst> is not a proper C<NUL>-terminated string).
+
+Note that C<size> is the full size of the destination buffer and
+the result is guaranteed to be C<NUL>-terminated if there is room.  Note that
+room for the C<NUL> should be included in C<size>.
+
+The return value is the total length that C<dst> would have if C<size> is
+sufficiently large.  Thus it is the initial length of C<dst> plus the length of
+C<src>.  If C<size> is smaller than the return, the excess was not appended.
+
+=cut
+
+Description stolen from http://man.openbsd.org/strlcat.3
+*/
+#ifndef HAS_STRLCAT
+PERL_STATIC_INLINE Size_t
+Perl_my_strlcat(char *dst, const char *src, Size_t size)
+{
+    Size_t used, length, copy;
+
+    used = strlen(dst);
+    length = strlen(src);
+    if (size > 0 && used < size - 1) {
+        copy = (length >= size - used) ? size - used - 1 : length;
+        memcpy(dst + used, src, copy);
+        dst[used + copy] = '\0';
+    }
+    return used + length;
+}
+#endif
+
+
+/*
+=for apidoc my_strlcpy
+
+The C library C<strlcpy> if available, or a Perl implementation of it.
+This operates on C C<NUL>-terminated strings.
+
+C<my_strlcpy()> copies up to S<C<size - 1>> characters from the string C<src>
+to C<dst>, C<NUL>-terminating the result if C<size> is not 0.
+
+The return value is the total length C<src> would be if the copy completely
+succeeded.  If it is larger than C<size>, the excess was not copied.
+
+=cut
+
+Description stolen from http://man.openbsd.org/strlcpy.3
+*/
+#ifndef HAS_STRLCPY
+PERL_STATIC_INLINE Size_t
+Perl_my_strlcpy(char *dst, const char *src, Size_t size)
+{
+    Size_t length, copy;
+
+    length = strlen(src);
+    if (size > 0) {
+        copy = (length >= size) ? size - 1 : length;
+        memcpy(dst, src, copy);
+        dst[copy] = '\0';
+    }
+    return length;
+}
 #endif
 
 /*
Index: gnu/usr.bin/perl/intrpvar.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/intrpvar.h,v
diff -u -p -a -u -p -r1.7 intrpvar.h
--- gnu/usr.bin/perl/intrpvar.h	15 Feb 2023 01:36:13 -0000	1.7
+++ gnu/usr.bin/perl/intrpvar.h	21 Feb 2024 15:47:02 -0000
@@ -58,7 +58,10 @@ PERLVARI(I, sub_generation, U32, 1)	/* i
 
 #ifdef PERL_HASH_RANDOMIZE_KEYS
 #ifdef USE_PERL_PERTURB_KEYS
-PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff 0 == no-random, 1 == random, 2 == determinsitic */
+PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff
+                                              0. no-random
+                                              1. random
+                                              2. deterministic */
 #endif
 PERLVARI(I, hash_rand_bits, UV, 0)      /* used to randomize hash stuff */
 #endif
@@ -83,7 +86,7 @@ PERLVARI(I, tainted,	bool, FALSE)	/* usi
  * control returns to pp_push or whatever, it sees if any of those flags
  * have been set, and if so finally calls mg_set().
  *
- * NB: PL_delaymagic is automatically saved and restored by JUMPENV_PUSH
+ * NB: PL_delaymagic is automatically saved and restored by JMPENV_PUSH
  * / POP. This removes the need to do ENTER/SAVEI16(PL_delaymagic)/LEAVE
  * in hot code like pp_push.
  */
@@ -127,7 +130,8 @@ thread's copy.
 =cut
 */
 
-PERLVAR(I, localizing,	U8)		/* are we processing a local() list? */
+PERLVAR(I, localizing,  U8)             /* are we processing a local() list?
+                                           0 = no, 1 = localizing, 2 = delocalizing */
 PERLVAR(I, in_eval,	U8)		/* trap "fatal" errors? */
 PERLVAR(I, defgv,	GV *)           /* the *_ glob */
 
@@ -232,6 +236,10 @@ fallback by macros on platforms where L<
 unavailable, and which would otherwise evaluate their SV parameter more than
 once.
 
+B<BUT BEWARE>, if this is used in a situation where something that is using it
+is in a call stack with something else that is using it, this variable would
+get zapped, leading to hard-to-diagnose errors.
+
 =cut
 */
 PERLVAR(I, Sv,		SV *)
@@ -252,6 +260,10 @@ It is is typically used with C<SvPV> whe
 the returned length, (hence the length is "Not Applicable", which is how this
 variable got its name).
 
+B<BUT BEWARE>, if this is used in a situation where something that is using it
+is in a call stack with something else that is using it, this variable would
+get zapped, leading to hard-to-diagnose errors.
+
 It is usually more efficient to either declare a local variable and use that
 instead, or to use the C<SvPV_nolen> macro.
 
@@ -376,16 +388,15 @@ thread's copy.
 PERLVAR(I, exit_flags,	U8)		/* was exit() unexpected, etc. */
 
 PERLVAR(I, utf8locale,	bool)		/* utf8 locale detected */
-PERLVAR(I, in_utf8_CTYPE_locale, bool)
-PERLVAR(I, in_utf8_COLLATE_locale, bool)
-PERLVAR(I, in_utf8_turkic_locale, bool)
-#if defined(USE_ITHREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
-PERLVARI(I, lc_numeric_mutex_depth, int, 0)   /* Emulate general semaphore */
+
+#if defined(USE_LOCALE) && defined(USE_LOCALE_THREADS)
+PERLVARI(I, locale_mutex_depth, int, 0)     /* Emulate general semaphore */
 #endif
-PERLVARA(I, locale_utf8ness, 256, char)
 
 #ifdef USE_LOCALE_CTYPE
-    PERLVAR(I, warn_locale, SV *)
+PERLVAR(I, warn_locale, SV *)
+PERLVAR(I, in_utf8_CTYPE_locale, bool)
+PERLVAR(I, in_utf8_turkic_locale, bool)
 #endif
 
 PERLVARA(I, colors,6,	char *)		/* values from PERL_RE_COLORS env var */
@@ -485,11 +496,14 @@ PERLVAR(I, origfilename, char *)
 PERLVARI(I, xsubfilename, const char *, NULL)
 PERLVAR(I, diehook,	SV *)
 PERLVAR(I, warnhook,	SV *)
+/* keyword hooks*/
+PERLVARI(I, hook__require__before, SV *,NULL)
+PERLVARI(I, hook__require__after, SV *,NULL)
 
 /* switches */
 PERLVAR(I, patchlevel,	SV *)
 PERLVAR(I, localpatches, const char * const *)
-PERLVARI(I, splitstr,	const char *, " ")
+PERLVARI(I, splitstr,	char *, NULL)
 
 PERLVAR(I, minus_c,	bool)
 PERLVAR(I, minus_n,	bool)
@@ -700,7 +714,6 @@ PERLVARI(I, cop_seqmax,	U32,	PERL_COP_SE
 
 PERLVARI(I, evalseq,	U32,	0)	/* eval sequence number */
 PERLVAR(I, origalen,	U32)
-PERLVAR(I, origenviron,	char **)
 #ifdef PERL_USES_PL_PIDSTATUS
 PERLVAR(I, pidstatus,	HV *)		/* pid-to-status mappings for waitpid */
 #endif
@@ -732,20 +745,33 @@ PERLVAR(I, constpadix,	PADOFFSET)	/* low
 
 PERLVAR(I, padix_floor,	PADOFFSET)	/* how low may inner block reset padix */
 
-#if defined(USE_POSIX_2008_LOCALE)          \
- && defined(USE_THREAD_SAFE_LOCALE)         \
- && ! defined(HAS_QUERYLOCALE)
+#if defined(USE_POSIX_2008_LOCALE) && defined(MULTIPLICITY)
+PERLVARI(I, cur_locale_obj, locale_t, NULL)
+#endif
+#ifdef USE_PL_CURLOCALES
 
 /* This is the most number of categories we've encountered so far on any
- * platform */
-PERLVARA(I, curlocales, 12, char *)
+ * platform, doesn't include LC_ALL */
+PERLVARA(I, curlocales, 12, const char *)
+
+#endif
+#ifdef USE_PL_CUR_LC_ALL
+
+PERLVARI(I, cur_LC_ALL, const char *, NULL)
 
 #endif
 #ifdef USE_LOCALE_COLLATE
 
+/* The emory needed to store the collxfrm transformation of a string with
+ * length 'x' is predicted by the linear equation mx+b; m=mult, b=base */
+PERLVARI(I, collxfrm_mult,Size_t, 0)	/* Expansion factor in *xfrm();
+                                           0 => unknown or bad, depending on
+                                           base */
+PERLVAR(I, collxfrm_base, Size_t)	/* Basic overhead in *xfrm();
+                                           mult == 0, base == 0 => need to compute
+                                           mult == 0, base != 0 => ill-formed;
+                                         */
 PERLVAR(I, collation_name, char *)	/* Name of current collation */
-PERLVAR(I, collxfrm_base, Size_t)	/* Basic overhead in *xfrm() */
-PERLVARI(I, collxfrm_mult,Size_t, 2)	/* Expansion factor in *xfrm() */
 PERLVARI(I, collation_ix, U32,	0)	/* Collation generation index */
 PERLVARI(I, strxfrm_NUL_replacement, U8, 0)  /* Code point to replace NULs */
 PERLVARI(I, strxfrm_is_behaved, bool, TRUE)
@@ -753,12 +779,15 @@ PERLVARI(I, strxfrm_is_behaved, bool, TR
 PERLVARI(I, strxfrm_max_cp, U8, 0)      /* Highest collating cp in locale */
 PERLVARI(I, collation_standard, bool, TRUE)
                                         /* Assume simple collation */
+PERLVAR(I, in_utf8_COLLATE_locale, bool)
 #endif /* USE_LOCALE_COLLATE */
 
-PERLVARI(I, langinfo_buf, char *, NULL)
+PERLVARI(I, langinfo_buf, const char *, NULL)
 PERLVARI(I, langinfo_bufsize, Size_t, 0)
-PERLVARI(I, setlocale_buf, char *, NULL)
+PERLVARI(I, setlocale_buf, const char *, NULL)
 PERLVARI(I, setlocale_bufsize, Size_t, 0)
+PERLVARI(I, stdize_locale_buf, const char *, NULL)
+PERLVARI(I, stdize_locale_bufsize, Size_t, 0)
 
 #ifdef PERL_SAWAMPERSAND
 PERLVAR(I, sawampersand, U8)		/* must save all match strings */
@@ -771,6 +800,8 @@ PERLVARI(I, phase,	enum perl_phase, PERL
 
 PERLVARI(I, in_load_module, bool, FALSE)	/* to prevent recursions in PerlIO_find_layer */
 
+PERLVARI(I, eval_begin_nest_depth, U32, 0)
+
 PERLVAR(I, unsafe,	bool)
 PERLVAR(I, colorset,	bool)		/* PERL_RE_COLORS env var is in use */
 
@@ -806,25 +837,33 @@ PERLVARI(I, perl_destruct_level, signed 
 
 PERLVAR(I, pad_reset_pending, bool)	/* reset pad on next attempted alloc */
 
-PERLVAR(I, srand_called, bool)
-
-#ifdef USE_LOCALE_NUMERIC
+PERLVARI(I, srand_called, bool, false)      /* has random_state been initialized yet? */
+PERLVARI(I, srand_override, U32, 0)         /* Should we use a deterministic sequence? */
+PERLVARI(I, srand_override_next, U32, 0)    /* Next item in the sequence */
 
 PERLVARI(I, numeric_underlying, bool, TRUE)
                                         /* Assume underlying locale numerics */
 PERLVARI(I, numeric_underlying_is_standard, bool, TRUE)
 
-PERLVARI(I, numeric_standard, int, TRUE)
-                                        /* Assume C locale numerics */
-PERLVAR(I, numeric_name, char *)	/* Name of current numeric locale */
-PERLVAR(I, numeric_radix_sv, SV *)	/* The radix separator if not '.' */
+PERLVARI(I, numeric_standard, int, TRUE)    /* Assume C locale numerics */
+PERLVAR(I, numeric_name, char *)     /* Name of current numeric locale */
+PERLVAR(I, numeric_radix_sv, SV *)	/* The radix separator */
+PERLVAR(I, underlying_radix_sv, SV *)	/* The radix in the program's current underlying locale */
 
-#  ifdef HAS_POSIX_2008_LOCALE
+#if defined(USE_LOCALE_NUMERIC) && defined(USE_POSIX_2008_LOCALE)
 
 PERLVARI(I, underlying_numeric_obj, locale_t, NULL)
 
+#endif
+#ifdef USE_POSIX_2008_LOCALE
+PERLVARI(I, scratch_locale_obj, locale_t, 0)
+#endif
+
+#ifdef USE_LOCALE_CTYPE
+
+PERLVARI(I, ctype_name, const char *, NULL)   /* Name of current ctype locale */
+
 #  endif
-#endif /* !USE_LOCALE_NUMERIC */
 
 /* Array of signal handlers, indexed by signal number, through which the C
    signal handler dispatches.  */
@@ -888,7 +927,12 @@ PERLVARI(I, clocktick,	long,	0)	/* this 
 PERLVARI(I, sharehook,	share_proc_t, Perl_sv_nosharing)
 PERLVARI(I, lockhook,	share_proc_t, Perl_sv_nosharing)
 
+#if defined(__HP_cc) || defined(__HP_aCC)
+#pragma diag_suppress 3215
+#endif
 GCC_DIAG_IGNORE(-Wdeprecated-declarations)
+MSVC_DIAG_IGNORE(4996)
+
 #ifdef NO_MATHOMS
 #  define PERL_UNLOCK_HOOK Perl_sv_nosharing
 #else
@@ -897,7 +941,11 @@ GCC_DIAG_IGNORE(-Wdeprecated-declaration
 #endif
 PERLVARI(I, unlockhook,	share_proc_t, PERL_UNLOCK_HOOK)
 
+MSVC_DIAG_RESTORE
 GCC_DIAG_RESTORE
+#if defined(__HP_cc) || defined(__HP_aCC)
+#pragma diag_default 3215
+#endif
 
 PERLVARI(I, threadhook,	thrhook_proc_t,	Perl_nothreadhook)
 
@@ -925,7 +973,7 @@ PERLVAR(I, Xpv,		XPV *)		/* (unused) hel
 
 /* name of the scopes we've ENTERed. Only used with -DDEBUGGING, but needs to be
    present always, as -DDEBUGGING must be binary compatible with non.  */
-PERLVARI(I, scopestack_name, const char * *, NULL)
+PERLVARI(I, scopestack_name, const char **, NULL)
 
 PERLVAR(I, debug_pad,	struct perl_debug_pad)	/* always needed because of the re extension */
 
@@ -966,12 +1014,11 @@ PERLVARI(I, sv_serial,	U32,	0)	/* SV ser
 PERLVARA(I, sv_consts, SV_CONSTS_COUNT, SV*)	/* constant SVs with precomputed hash value */
 
 #ifdef PERL_TRACE_OPS
-PERLVARA(I, op_exec_cnt, OP_max+2, UV)	/* Counts of executed OPs of the given type.
+PERLVARA(I, op_exec_cnt, OP_max+2, UV)  /* Counts of executed OPs of the given type.
                                            If PERL_TRACE_OPS is enabled, we'll dump
                                            a summary count of all ops executed in the
-                                           program at perl_destruct time. For
-                                           profiling/debugging only. Works only if
-                                           DEBUGGING is enabled, too. */
+                                           program at perl_destruct time. Used only
+                                           for profiling in DEBUGGING mode. */
 #endif
 
 PERLVAR(I, random_state, PL_RANDOM_STATE_TYPE)
@@ -999,6 +1046,8 @@ PERLVAR(I, SB_invlist, SV *)
 PERLVAR(I, SCX_invlist, SV *)
 PERLVAR(I, UpperLatin1,	SV *)   /* Code points 128 - 255 */
 
+PERLVARA(I, fold_locale, 256, U8)
+
 /* List of characters that participate in any fold defined by Unicode */
 PERLVAR(I, in_some_fold, SV *)
 
@@ -1040,7 +1089,8 @@ PERLVAR(I, wcrtomb_ps, mbstate_t)
 /* Enough space for the reserved byte, 1 for a potential leading 0, then enough
  * for the longest representable integer plus an extra, the 3 flag characters,
  * and NUL */
-PERLVARA(I, mem_log, 1 + 1 + TYPE_DIGITS(UV) + 1 + 3 + 1, char)
+#define PERL_MEM_LOG_ARYLEN (1 + 1 + TYPE_DIGITS(UV) + 1 + 3 + 1)
+PERLVARA(I, mem_log, PERL_MEM_LOG_ARYLEN,  char)
 #endif
 
 /* The most recently seen `use VERSION` declaration, encoded in a single
Index: gnu/usr.bin/perl/invlist_inline.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/invlist_inline.h,v
diff -u -p -a -u -p -r1.5 invlist_inline.h
--- gnu/usr.bin/perl/invlist_inline.h	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/invlist_inline.h	21 Feb 2024 15:47:02 -0000
@@ -10,7 +10,7 @@
 #define PERL_INVLIST_INLINE_H_
 
 #if defined(PERL_IN_UTF8_C)             \
- || defined(PERL_IN_REGCOMP_C)          \
+ || defined(PERL_IN_REGCOMP_ANY)        \
  || defined(PERL_IN_REGEXEC_C)          \
  || defined(PERL_IN_TOKE_C)             \
  || defined(PERL_IN_PP_C)               \
@@ -93,7 +93,7 @@ S_invlist_array(SV* const invlist)
 }
 
 #endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_OP_C) || defined(PERL_IN_DOOP_C)
 
 PERL_STATIC_INLINE void
 S_invlist_extend(pTHX_ SV* const invlist, const UV new_max)
@@ -161,8 +161,45 @@ S_invlist_highest(SV* const invlist)
            : array[len - 1] - 1;
 }
 
+#  if defined(PERL_IN_REGCOMP_ANY)
+
+PERL_STATIC_INLINE UV
+S_invlist_highest_range_start(SV* const invlist)
+{
+    /* Returns the lowest code point of the highest range in the inversion
+     * list parameter.  This API has an ambiguity: it returns 0 either when
+     * the lowest such point is actually 0 or when the list is empty.  If this
+     * distinction matters to you, check for emptiness before calling this
+     * function. */
+
+    UV len = _invlist_len(invlist);
+    UV *array;
+
+    PERL_ARGS_ASSERT_INVLIST_HIGHEST_RANGE_START;
+
+    if (len == 0) {
+        return 0;
+    }
+
+    array = invlist_array(invlist);
+
+    /* The last element in the array in the inversion list always starts a
+     * range that goes to infinity.  That range may be for code points that are
+     * matched in the inversion list, or it may be for ones that aren't
+     * matched.  In the first case, the lowest code point in the matching range
+     * is that the one that started the range.  If the other case, the final
+     * matching range begins at the next element down (which may be 0 in the
+     * edge case). */
+    return (ELEMENT_RANGE_MATCHES_INVLIST(len - 1))
+           ? array[len - 1]
+           : len == 1
+             ? 0
+             : array[len - 2];
+}
+
+#  endif
 #endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_OP_C)
 
 PERL_STATIC_INLINE STRLEN*
 S_get_invlist_iter_addr(SV* invlist)
@@ -238,11 +275,101 @@ S_invlist_iternext(SV* invlist, UV* star
 
 #endif
 
-#ifndef PERL_IN_REGCOMP_C
+#ifndef PERL_IN_REGCOMP_ANY
 
 /* These symbols are only needed later in regcomp.c */
 #       undef TO_INTERNAL_SIZE
 #       undef FROM_INTERNAL_SIZE
+#endif
+
+#ifdef PERL_IN_REGCOMP_ANY
+PERL_STATIC_INLINE
+bool
+S_invlist_is_iterating(const SV* const invlist)
+{
+    PERL_ARGS_ASSERT_INVLIST_IS_ITERATING;
+
+    /* get_invlist_iter_addr()'s sv is non-const only because it returns a
+     * value that can be used to modify the invlist, it doesn't modify the
+     * invlist itself */
+    return *(get_invlist_iter_addr((SV*)invlist)) < (STRLEN) UV_MAX;
+}
+
+PERL_STATIC_INLINE
+SV *
+S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style)
+{
+    /* Get the contents of an inversion list into a string SV so that they can
+     * be printed out.  If 'traditional_style' is TRUE, it uses the format
+     * traditionally done for debug tracing; otherwise it uses a format
+     * suitable for just copying to the output, with blanks between ranges and
+     * a dash between range components */
+
+    UV start, end;
+    SV* output;
+    const char intra_range_delimiter = (traditional_style ? '\t' : '-');
+    const char inter_range_delimiter = (traditional_style ? '\n' : ' ');
+
+    if (traditional_style) {
+        output = newSVpvs("\n");
+    }
+    else {
+        output = newSVpvs("");
+    }
+
+    PERL_ARGS_ASSERT_INVLIST_CONTENTS;
+
+    assert(! invlist_is_iterating(invlist));
+
+    invlist_iterinit(invlist);
+    while (invlist_iternext(invlist, &start, &end)) {
+        if (end == UV_MAX) {
+            Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%cINFTY%c",
+                                          start, intra_range_delimiter,
+                                                 inter_range_delimiter);
+        }
+        else if (end != start) {
+            Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%c%04" UVXf "%c",
+                                          start,
+                                                   intra_range_delimiter,
+                                                  end, inter_range_delimiter);
+        }
+        else {
+            Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%c",
+                                          start, inter_range_delimiter);
+        }
+    }
+
+    if (SvCUR(output) && ! traditional_style) {/* Get rid of trailing blank */
+        SvCUR_set(output, SvCUR(output) - 1);
+    }
+
+    return output;
+}
+
+PERL_STATIC_INLINE
+UV
+S_invlist_lowest(SV* const invlist)
+{
+    /* Returns the lowest code point that matches an inversion list.  This API
+     * has an ambiguity, as it returns 0 under either the lowest is actually
+     * 0, or if the list is empty.  If this distinction matters to you, check
+     * for emptiness before calling this function */
+
+    UV len = _invlist_len(invlist);
+    UV *array;
+
+    PERL_ARGS_ASSERT_INVLIST_LOWEST;
+
+    if (len == 0) {
+        return 0;
+    }
+
+    array = invlist_array(invlist);
+
+    return array[0];
+}
+
 #endif
 
 #endif /* PERL_INVLIST_INLINE_H_ */
Index: gnu/usr.bin/perl/iperlsys.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/iperlsys.h,v
diff -u -p -a -u -p -r1.5 iperlsys.h
--- gnu/usr.bin/perl/iperlsys.h	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/iperlsys.h	21 Feb 2024 15:47:02 -0000
@@ -559,14 +559,7 @@ struct IPerlEnvInfo
 #  endif
 
 #else   /* below is ! PERL_IMPLICIT_SYS */
-#  ifdef USE_ITHREADS
-
-     /* Use the comma operator to return 0/non-zero, while avoiding putting
-      * this in an inline function */
-#    define PerlEnv_putenv(str) (ENV_LOCK, (putenv(str)         \
-                                            ? (ENV_UNLOCK, 1)   \
-                                            : (ENV_UNLOCK, 0)))
-#  else
+#  ifndef USE_ITHREADS  /* Threaded is an inline function in inline.h */
 #    define PerlEnv_putenv(str)         putenv(str)
 #  endif
 #  define PerlEnv_getenv(str)           mortal_getenv(str)
Index: gnu/usr.bin/perl/keywords.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/keywords.c,v
diff -u -p -a -u -p -r1.5 keywords.c
--- gnu/usr.bin/perl/keywords.c	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/keywords.c	21 Feb 2024 15:47:02 -0000
@@ -978,7 +978,7 @@ Perl_keyword (pTHX_ const char *name, I3
           goto unknown;
       }
 
-    case 5: /* 41 tokens of length 5 */
+    case 5: /* 43 tokens of length 5 */
       switch (name[0])
       {
         case 'B':
@@ -1119,14 +1119,29 @@ Perl_keyword (pTHX_ const char *name, I3
               }
 
             case 'l':
-              if (name[2] == 'o' &&
-                  name[3] == 's' &&
-                  name[4] == 'e')
-              {                                   /* close            */
-                return -KEY_close;
-              }
+              switch (name[2])
+              {
+                case 'a':
+                  if (name[3] == 's' &&
+                      name[4] == 's')
+                  {                               /* class            */
+                    return (all_keywords || FEATURE_CLASS_IS_ENABLED ? -KEY_class : 0);
+                  }
 
-              goto unknown;
+                  goto unknown;
+
+                case 'o':
+                  if (name[3] == 's' &&
+                      name[4] == 'e')
+                  {                               /* close            */
+                    return -KEY_close;
+                  }
+
+                  goto unknown;
+
+                default:
+                  goto unknown;
+              }
 
             case 'r':
               if (name[2] == 'y' &&
@@ -1177,6 +1192,16 @@ Perl_keyword (pTHX_ const char *name, I3
 
               goto unknown;
 
+            case 'i':
+              if (name[2] == 'e' &&
+                  name[3] == 'l' &&
+                  name[4] == 'd')
+              {                                   /* field            */
+                return (all_keywords || FEATURE_CLASS_IS_ENABLED ? -KEY_field : 0);
+              }
+
+              goto unknown;
+
             case 'l':
               if (name[2] == 'o' &&
                   name[3] == 'c' &&
@@ -1494,9 +1519,21 @@ Perl_keyword (pTHX_ const char *name, I3
           goto unknown;
       }
 
-    case 6: /* 33 tokens of length 6 */
+    case 6: /* 35 tokens of length 6 */
       switch (name[0])
       {
+        case 'A':
+          if (name[1] == 'D' &&
+              name[2] == 'J' &&
+              name[3] == 'U' &&
+              name[4] == 'S' &&
+              name[5] == 'T')
+          {                                       /* ADJUST           */
+            return (all_keywords || FEATURE_CLASS_IS_ENABLED ? KEY_ADJUST : 0);
+          }
+
+          goto unknown;
+
         case 'a':
           if (name[1] == 'c' &&
               name[2] == 'c' &&
@@ -1650,54 +1687,71 @@ Perl_keyword (pTHX_ const char *name, I3
           }
 
         case 'm':
-          if (name[1] == 's' &&
-              name[2] == 'g')
+          switch (name[1])
           {
-            switch (name[3])
-            {
-              case 'c':
-                if (name[4] == 't' &&
-                    name[5] == 'l')
-                {                                 /* msgctl           */
-                  return -KEY_msgctl;
-                }
+            case 'e':
+              if (name[2] == 't' &&
+                  name[3] == 'h' &&
+                  name[4] == 'o' &&
+                  name[5] == 'd')
+              {                                   /* method           */
+                return (all_keywords || FEATURE_CLASS_IS_ENABLED ? -KEY_method : 0);
+              }
 
-                goto unknown;
+              goto unknown;
 
-              case 'g':
-                if (name[4] == 'e' &&
-                    name[5] == 't')
-                {                                 /* msgget           */
-                  return -KEY_msgget;
-                }
+            case 's':
+              if (name[2] == 'g')
+              {
+                switch (name[3])
+                {
+                  case 'c':
+                    if (name[4] == 't' &&
+                        name[5] == 'l')
+                    {                             /* msgctl           */
+                      return -KEY_msgctl;
+                    }
 
-                goto unknown;
+                    goto unknown;
 
-              case 'r':
-                if (name[4] == 'c' &&
-                    name[5] == 'v')
-                {                                 /* msgrcv           */
-                  return -KEY_msgrcv;
-                }
+                  case 'g':
+                    if (name[4] == 'e' &&
+                        name[5] == 't')
+                    {                             /* msgget           */
+                      return -KEY_msgget;
+                    }
 
-                goto unknown;
+                    goto unknown;
 
-              case 's':
-                if (name[4] == 'n' &&
-                    name[5] == 'd')
-                {                                 /* msgsnd           */
-                  return -KEY_msgsnd;
+                  case 'r':
+                    if (name[4] == 'c' &&
+                        name[5] == 'v')
+                    {                             /* msgrcv           */
+                      return -KEY_msgrcv;
+                    }
+
+                    goto unknown;
+
+                  case 's':
+                    if (name[4] == 'n' &&
+                        name[5] == 'd')
+                    {                             /* msgsnd           */
+                      return -KEY_msgsnd;
+                    }
+
+                    goto unknown;
+
+                  default:
+                    goto unknown;
                 }
+              }
 
-                goto unknown;
+              goto unknown;
 
-              default:
-                goto unknown;
-            }
+            default:
+              goto unknown;
           }
 
-          goto unknown;
-
         case 'p':
           if (name[1] == 'r' &&
               name[2] == 'i' &&
@@ -3504,5 +3558,5 @@ unknown:
 }
 
 /* Generated from:
- * b680fb3a27b173b65d9c4e534ad92897c925e336476879a6be1da18ac55cbe8b regen/keywords.pl
+ * eb67e851da14ede1aad67aec4a387fa250c1345407fad0a02988d2d8d3cc27f2 regen/keywords.pl
  * ex: set ro: */
Index: gnu/usr.bin/perl/keywords.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/keywords.h,v
diff -u -p -a -u -p -r1.14 keywords.h
--- gnu/usr.bin/perl/keywords.h	15 Feb 2023 01:36:13 -0000	1.14
+++ gnu/usr.bin/perl/keywords.h	21 Feb 2024 15:47:02 -0000
@@ -20,260 +20,264 @@
 #define KEY___DATA__		4
 #define KEY___END__		5
 #define KEY___SUB__		6
-#define KEY_AUTOLOAD		7
-#define KEY_BEGIN		8
-#define KEY_UNITCHECK		9
-#define KEY_DESTROY		10
-#define KEY_END			11
-#define KEY_INIT		12
-#define KEY_CHECK		13
-#define KEY_abs			14
-#define KEY_accept		15
-#define KEY_alarm		16
-#define KEY_and			17
-#define KEY_atan2		18
-#define KEY_bind		19
-#define KEY_binmode		20
-#define KEY_bless		21
-#define KEY_break		22
-#define KEY_caller		23
-#define KEY_catch		24
-#define KEY_chdir		25
-#define KEY_chmod		26
-#define KEY_chomp		27
-#define KEY_chop		28
-#define KEY_chown		29
-#define KEY_chr			30
-#define KEY_chroot		31
-#define KEY_close		32
-#define KEY_closedir		33
-#define KEY_cmp			34
-#define KEY_connect		35
-#define KEY_continue		36
-#define KEY_cos			37
-#define KEY_crypt		38
-#define KEY_dbmclose		39
-#define KEY_dbmopen		40
-#define KEY_default		41
-#define KEY_defer		42
-#define KEY_defined		43
-#define KEY_delete		44
-#define KEY_die			45
-#define KEY_do			46
-#define KEY_dump		47
-#define KEY_each		48
-#define KEY_else		49
-#define KEY_elsif		50
-#define KEY_endgrent		51
-#define KEY_endhostent		52
-#define KEY_endnetent		53
-#define KEY_endprotoent		54
-#define KEY_endpwent		55
-#define KEY_endservent		56
-#define KEY_eof			57
-#define KEY_eq			58
-#define KEY_eval		59
-#define KEY_evalbytes		60
-#define KEY_exec		61
-#define KEY_exists		62
-#define KEY_exit		63
-#define KEY_exp			64
-#define KEY_fc			65
-#define KEY_fcntl		66
-#define KEY_fileno		67
-#define KEY_finally		68
-#define KEY_flock		69
-#define KEY_for			70
-#define KEY_foreach		71
-#define KEY_fork		72
-#define KEY_format		73
-#define KEY_formline		74
-#define KEY_ge			75
-#define KEY_getc		76
-#define KEY_getgrent		77
-#define KEY_getgrgid		78
-#define KEY_getgrnam		79
-#define KEY_gethostbyaddr	80
-#define KEY_gethostbyname	81
-#define KEY_gethostent		82
-#define KEY_getlogin		83
-#define KEY_getnetbyaddr	84
-#define KEY_getnetbyname	85
-#define KEY_getnetent		86
-#define KEY_getpeername		87
-#define KEY_getpgrp		88
-#define KEY_getppid		89
-#define KEY_getpriority		90
-#define KEY_getprotobyname	91
-#define KEY_getprotobynumber	92
-#define KEY_getprotoent		93
-#define KEY_getpwent		94
-#define KEY_getpwnam		95
-#define KEY_getpwuid		96
-#define KEY_getservbyname	97
-#define KEY_getservbyport	98
-#define KEY_getservent		99
-#define KEY_getsockname		100
-#define KEY_getsockopt		101
-#define KEY_given		102
-#define KEY_glob		103
-#define KEY_gmtime		104
-#define KEY_goto		105
-#define KEY_grep		106
-#define KEY_gt			107
-#define KEY_hex			108
-#define KEY_if			109
-#define KEY_index		110
-#define KEY_int			111
-#define KEY_ioctl		112
-#define KEY_isa			113
-#define KEY_join		114
-#define KEY_keys		115
-#define KEY_kill		116
-#define KEY_last		117
-#define KEY_lc			118
-#define KEY_lcfirst		119
-#define KEY_le			120
-#define KEY_length		121
-#define KEY_link		122
-#define KEY_listen		123
-#define KEY_local		124
-#define KEY_localtime		125
-#define KEY_lock		126
-#define KEY_log			127
-#define KEY_lstat		128
-#define KEY_lt			129
-#define KEY_m			130
-#define KEY_map			131
-#define KEY_mkdir		132
-#define KEY_msgctl		133
-#define KEY_msgget		134
-#define KEY_msgrcv		135
-#define KEY_msgsnd		136
-#define KEY_my			137
-#define KEY_ne			138
-#define KEY_next		139
-#define KEY_no			140
-#define KEY_not			141
-#define KEY_oct			142
-#define KEY_open		143
-#define KEY_opendir		144
-#define KEY_or			145
-#define KEY_ord			146
-#define KEY_our			147
-#define KEY_pack		148
-#define KEY_package		149
-#define KEY_pipe		150
-#define KEY_pop			151
-#define KEY_pos			152
-#define KEY_print		153
-#define KEY_printf		154
-#define KEY_prototype		155
-#define KEY_push		156
-#define KEY_q			157
-#define KEY_qq			158
-#define KEY_qr			159
-#define KEY_quotemeta		160
-#define KEY_qw			161
-#define KEY_qx			162
-#define KEY_rand		163
-#define KEY_read		164
-#define KEY_readdir		165
-#define KEY_readline		166
-#define KEY_readlink		167
-#define KEY_readpipe		168
-#define KEY_recv		169
-#define KEY_redo		170
-#define KEY_ref			171
-#define KEY_rename		172
-#define KEY_require		173
-#define KEY_reset		174
-#define KEY_return		175
-#define KEY_reverse		176
-#define KEY_rewinddir		177
-#define KEY_rindex		178
-#define KEY_rmdir		179
-#define KEY_s			180
-#define KEY_say			181
-#define KEY_scalar		182
-#define KEY_seek		183
-#define KEY_seekdir		184
-#define KEY_select		185
-#define KEY_semctl		186
-#define KEY_semget		187
-#define KEY_semop		188
-#define KEY_send		189
-#define KEY_setgrent		190
-#define KEY_sethostent		191
-#define KEY_setnetent		192
-#define KEY_setpgrp		193
-#define KEY_setpriority		194
-#define KEY_setprotoent		195
-#define KEY_setpwent		196
-#define KEY_setservent		197
-#define KEY_setsockopt		198
-#define KEY_shift		199
-#define KEY_shmctl		200
-#define KEY_shmget		201
-#define KEY_shmread		202
-#define KEY_shmwrite		203
-#define KEY_shutdown		204
-#define KEY_sin			205
-#define KEY_sleep		206
-#define KEY_socket		207
-#define KEY_socketpair		208
-#define KEY_sort		209
-#define KEY_splice		210
-#define KEY_split		211
-#define KEY_sprintf		212
-#define KEY_sqrt		213
-#define KEY_srand		214
-#define KEY_stat		215
-#define KEY_state		216
-#define KEY_study		217
-#define KEY_sub			218
-#define KEY_substr		219
-#define KEY_symlink		220
-#define KEY_syscall		221
-#define KEY_sysopen		222
-#define KEY_sysread		223
-#define KEY_sysseek		224
-#define KEY_system		225
-#define KEY_syswrite		226
-#define KEY_tell		227
-#define KEY_telldir		228
-#define KEY_tie			229
-#define KEY_tied		230
-#define KEY_time		231
-#define KEY_times		232
-#define KEY_tr			233
-#define KEY_try			234
-#define KEY_truncate		235
-#define KEY_uc			236
-#define KEY_ucfirst		237
-#define KEY_umask		238
-#define KEY_undef		239
-#define KEY_unless		240
-#define KEY_unlink		241
-#define KEY_unpack		242
-#define KEY_unshift		243
-#define KEY_untie		244
-#define KEY_until		245
-#define KEY_use			246
-#define KEY_utime		247
-#define KEY_values		248
-#define KEY_vec			249
-#define KEY_wait		250
-#define KEY_waitpid		251
-#define KEY_wantarray		252
-#define KEY_warn		253
-#define KEY_when		254
-#define KEY_while		255
-#define KEY_write		256
-#define KEY_x			257
-#define KEY_xor			258
-#define KEY_y			259
+#define KEY_ADJUST		7
+#define KEY_AUTOLOAD		8
+#define KEY_BEGIN		9
+#define KEY_UNITCHECK		10
+#define KEY_DESTROY		11
+#define KEY_END			12
+#define KEY_INIT		13
+#define KEY_CHECK		14
+#define KEY_abs			15
+#define KEY_accept		16
+#define KEY_alarm		17
+#define KEY_and			18
+#define KEY_atan2		19
+#define KEY_bind		20
+#define KEY_binmode		21
+#define KEY_bless		22
+#define KEY_break		23
+#define KEY_caller		24
+#define KEY_catch		25
+#define KEY_chdir		26
+#define KEY_chmod		27
+#define KEY_chomp		28
+#define KEY_chop		29
+#define KEY_chown		30
+#define KEY_chr			31
+#define KEY_chroot		32
+#define KEY_class		33
+#define KEY_close		34
+#define KEY_closedir		35
+#define KEY_cmp			36
+#define KEY_connect		37
+#define KEY_continue		38
+#define KEY_cos			39
+#define KEY_crypt		40
+#define KEY_dbmclose		41
+#define KEY_dbmopen		42
+#define KEY_default		43
+#define KEY_defer		44
+#define KEY_defined		45
+#define KEY_delete		46
+#define KEY_die			47
+#define KEY_do			48
+#define KEY_dump		49
+#define KEY_each		50
+#define KEY_else		51
+#define KEY_elsif		52
+#define KEY_endgrent		53
+#define KEY_endhostent		54
+#define KEY_endnetent		55
+#define KEY_endprotoent		56
+#define KEY_endpwent		57
+#define KEY_endservent		58
+#define KEY_eof			59
+#define KEY_eq			60
+#define KEY_eval		61
+#define KEY_evalbytes		62
+#define KEY_exec		63
+#define KEY_exists		64
+#define KEY_exit		65
+#define KEY_exp			66
+#define KEY_fc			67
+#define KEY_fcntl		68
+#define KEY_field		69
+#define KEY_fileno		70
+#define KEY_finally		71
+#define KEY_flock		72
+#define KEY_for			73
+#define KEY_foreach		74
+#define KEY_fork		75
+#define KEY_format		76
+#define KEY_formline		77
+#define KEY_ge			78
+#define KEY_getc		79
+#define KEY_getgrent		80
+#define KEY_getgrgid		81
+#define KEY_getgrnam		82
+#define KEY_gethostbyaddr	83
+#define KEY_gethostbyname	84
+#define KEY_gethostent		85
+#define KEY_getlogin		86
+#define KEY_getnetbyaddr	87
+#define KEY_getnetbyname	88
+#define KEY_getnetent		89
+#define KEY_getpeername		90
+#define KEY_getpgrp		91
+#define KEY_getppid		92
+#define KEY_getpriority		93
+#define KEY_getprotobyname	94
+#define KEY_getprotobynumber	95
+#define KEY_getprotoent		96
+#define KEY_getpwent		97
+#define KEY_getpwnam		98
+#define KEY_getpwuid		99
+#define KEY_getservbyname	100
+#define KEY_getservbyport	101
+#define KEY_getservent		102
+#define KEY_getsockname		103
+#define KEY_getsockopt		104
+#define KEY_given		105
+#define KEY_glob		106
+#define KEY_gmtime		107
+#define KEY_goto		108
+#define KEY_grep		109
+#define KEY_gt			110
+#define KEY_hex			111
+#define KEY_if			112
+#define KEY_index		113
+#define KEY_int			114
+#define KEY_ioctl		115
+#define KEY_isa			116
+#define KEY_join		117
+#define KEY_keys		118
+#define KEY_kill		119
+#define KEY_last		120
+#define KEY_lc			121
+#define KEY_lcfirst		122
+#define KEY_le			123
+#define KEY_length		124
+#define KEY_link		125
+#define KEY_listen		126
+#define KEY_local		127
+#define KEY_localtime		128
+#define KEY_lock		129
+#define KEY_log			130
+#define KEY_lstat		131
+#define KEY_lt			132
+#define KEY_m			133
+#define KEY_map			134
+#define KEY_method		135
+#define KEY_mkdir		136
+#define KEY_msgctl		137
+#define KEY_msgget		138
+#define KEY_msgrcv		139
+#define KEY_msgsnd		140
+#define KEY_my			141
+#define KEY_ne			142
+#define KEY_next		143
+#define KEY_no			144
+#define KEY_not			145
+#define KEY_oct			146
+#define KEY_open		147
+#define KEY_opendir		148
+#define KEY_or			149
+#define KEY_ord			150
+#define KEY_our			151
+#define KEY_pack		152
+#define KEY_package		153
+#define KEY_pipe		154
+#define KEY_pop			155
+#define KEY_pos			156
+#define KEY_print		157
+#define KEY_printf		158
+#define KEY_prototype		159
+#define KEY_push		160
+#define KEY_q			161
+#define KEY_qq			162
+#define KEY_qr			163
+#define KEY_quotemeta		164
+#define KEY_qw			165
+#define KEY_qx			166
+#define KEY_rand		167
+#define KEY_read		168
+#define KEY_readdir		169
+#define KEY_readline		170
+#define KEY_readlink		171
+#define KEY_readpipe		172
+#define KEY_recv		173
+#define KEY_redo		174
+#define KEY_ref			175
+#define KEY_rename		176
+#define KEY_require		177
+#define KEY_reset		178
+#define KEY_return		179
+#define KEY_reverse		180
+#define KEY_rewinddir		181
+#define KEY_rindex		182
+#define KEY_rmdir		183
+#define KEY_s			184
+#define KEY_say			185
+#define KEY_scalar		186
+#define KEY_seek		187
+#define KEY_seekdir		188
+#define KEY_select		189
+#define KEY_semctl		190
+#define KEY_semget		191
+#define KEY_semop		192
+#define KEY_send		193
+#define KEY_setgrent		194
+#define KEY_sethostent		195
+#define KEY_setnetent		196
+#define KEY_setpgrp		197
+#define KEY_setpriority		198
+#define KEY_setprotoent		199
+#define KEY_setpwent		200
+#define KEY_setservent		201
+#define KEY_setsockopt		202
+#define KEY_shift		203
+#define KEY_shmctl		204
+#define KEY_shmget		205
+#define KEY_shmread		206
+#define KEY_shmwrite		207
+#define KEY_shutdown		208
+#define KEY_sin			209
+#define KEY_sleep		210
+#define KEY_socket		211
+#define KEY_socketpair		212
+#define KEY_sort		213
+#define KEY_splice		214
+#define KEY_split		215
+#define KEY_sprintf		216
+#define KEY_sqrt		217
+#define KEY_srand		218
+#define KEY_stat		219
+#define KEY_state		220
+#define KEY_study		221
+#define KEY_sub			222
+#define KEY_substr		223
+#define KEY_symlink		224
+#define KEY_syscall		225
+#define KEY_sysopen		226
+#define KEY_sysread		227
+#define KEY_sysseek		228
+#define KEY_system		229
+#define KEY_syswrite		230
+#define KEY_tell		231
+#define KEY_telldir		232
+#define KEY_tie			233
+#define KEY_tied		234
+#define KEY_time		235
+#define KEY_times		236
+#define KEY_tr			237
+#define KEY_try			238
+#define KEY_truncate		239
+#define KEY_uc			240
+#define KEY_ucfirst		241
+#define KEY_umask		242
+#define KEY_undef		243
+#define KEY_unless		244
+#define KEY_unlink		245
+#define KEY_unpack		246
+#define KEY_unshift		247
+#define KEY_untie		248
+#define KEY_until		249
+#define KEY_use			250
+#define KEY_utime		251
+#define KEY_values		252
+#define KEY_vec			253
+#define KEY_wait		254
+#define KEY_waitpid		255
+#define KEY_wantarray		256
+#define KEY_warn		257
+#define KEY_when		258
+#define KEY_while		259
+#define KEY_write		260
+#define KEY_x			261
+#define KEY_xor			262
+#define KEY_y			263
 
 /* Generated from:
- * b680fb3a27b173b65d9c4e534ad92897c925e336476879a6be1da18ac55cbe8b regen/keywords.pl
+ * eb67e851da14ede1aad67aec4a387fa250c1345407fad0a02988d2d8d3cc27f2 regen/keywords.pl
  * ex: set ro: */
Index: gnu/usr.bin/perl/l1_char_class_tab.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/l1_char_class_tab.h,v
diff -u -p -a -u -p -r1.6 l1_char_class_tab.h
--- gnu/usr.bin/perl/l1_char_class_tab.h	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/l1_char_class_tab.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  * This file is built by regen/mk_PL_charclass.pl from Unicode::UCD.
  * Any changes made here will be lost!
@@ -8,262 +8,262 @@
  * in the comment*/
 
 #if 'A' == 65 /* ASCII/Latin1 */
-/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+41 'A' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+42 'B' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+43 'C' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+44 'D' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+45 'E' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+46 'F' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+47 'G' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+48 'H' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+49 'I' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4A 'J' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4B 'K' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4C 'L' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4D 'M' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4E 'N' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+4F 'O' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+50 'P' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+51 'Q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+52 'R' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+53 'S' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+54 'T' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+55 'U' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+56 'V' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+57 'W' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+58 'X' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+59 'Y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+5A 'Z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
-/* U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+61 'a' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+62 'b' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+63 'c' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+64 'd' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+65 'e' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+66 'f' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* U+67 'g' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+68 'h' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+69 'i' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6A 'j' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6B 'k' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6C 'l' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6D 'm' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6E 'n' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+6F 'o' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+70 'p' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+71 'q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+72 'r' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+73 's' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+74 't' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+75 'u' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+76 'v' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+77 'w' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+78 'x' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+79 'y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+7A 'z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A4 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A5 YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A6 BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+A7 SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+A8 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+A9 COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AA FEMININE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+AC NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AD SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AE REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+AF MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B0 DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+B1 PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+B2 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B3 SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B4 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B5 MICRO */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+B6 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+B7 MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
-/* U+B8 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+B9 SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BA MASCULINE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+BC 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BD 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BE 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* U+BF INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+C0 A with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C1 A with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C2 A with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C3 A with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C4 A with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C5 A with RING */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C6 AE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C7 C with CEDILLA */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C8 E with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+C9 E with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CA E with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CB E with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CC I with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CD I with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CE I with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+CF I with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D0 ETH */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D1 N with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D2 O with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D3 O with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D4 O with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D5 O with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D6 O with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+D8 O with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+D9 U with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DA U with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DB U with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DC U with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DD Y with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DE THORN */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* U+DF sharp s */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E0 a with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E1 a with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E2 a with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E3 a with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E4 a with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E5 a with ring */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E6 ae */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E7 c with cedilla */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E8 e with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+E9 e with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EA e with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EB e with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EC i with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+ED i with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EE i with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+EF i with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F0 eth */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F1 n with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F2 o with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F3 o with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F4 o with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F5 o with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F6 o with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F7 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* U+F8 o with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+F9 u with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FA u with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FB u with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FC u with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FD y with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FE thorn */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* U+FF y with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)
+/* U+00 NUL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+01 SOH */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+02 STX */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+03 ETX */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+04 EOT */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+05 ENQ */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+06 ACK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+07 BEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+08 BS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+09 HT */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* U+0A LF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0B VT */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0C FF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0D CR */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0E SO */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+0F SI */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+10 DLE */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+11 DC1 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+12 DC2 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+13 DC3 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+14 DC4 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+15 NAK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+16 SYN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+17 ETB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+18 CAN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+19 EOM */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1A SUB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1B ESC */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1C FS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1D GS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1E RS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1F US */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+20 SP */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* U+21 '!' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+22 '"' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+23 '#' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+24 '$' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+25 '%' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+26 '&' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+27 "'" */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+28 '(' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+29 ')' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2A '*' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2B '+' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2C ',' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2D '-' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2E '.' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+2F '/' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+30 '0' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+31 '1' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+32 '2' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+33 '3' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+34 '4' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+35 '5' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+36 '6' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+37 '7' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+38 '8' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+39 '9' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+3A ':' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3B ';' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3C '<' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3D '=' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3E '>' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+3F '?' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+40 '@' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+41 'A' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+42 'B' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+43 'C' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+44 'D' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+45 'E' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+46 'F' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+47 'G' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+48 'H' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+49 'I' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4A 'J' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4B 'K' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4C 'L' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4D 'M' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4E 'N' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+4F 'O' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+50 'P' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+51 'Q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+52 'R' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+53 'S' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+54 'T' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+55 'U' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+56 'V' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+57 'W' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+58 'X' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+59 'Y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+5A 'Z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+5B '[' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5C '\' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5D ']' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5E '^' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+5F '_' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_WORDCHAR_),
+/* U+60 '`' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+61 'a' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+62 'b' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+63 'c' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+64 'd' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+65 'e' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+66 'f' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* U+67 'g' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+68 'h' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+69 'i' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6A 'j' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6B 'k' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6C 'l' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6D 'm' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6E 'n' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+6F 'o' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+70 'p' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+71 'q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+72 'r' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+73 's' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+74 't' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+75 'u' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+76 'v' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+77 'w' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+78 'x' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+79 'y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+7A 'z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+7B '{' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7C '|' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7D '}' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7E '~' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+7F DEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+80 PAD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+81 HOP */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+82 BPH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+83 NBH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+84 IND */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+85 NEL */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+86 SSA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+87 ESA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+88 HTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+89 HTJ */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8A VTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8B PLD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8C PLU */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8D RI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8E SS2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+8F SS3 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+90 DCS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+91 PU1 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+92 PU2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+93 STS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+94 CCH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+95 MW */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+96 SPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+97 EPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+98 SOS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+99 SGC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9A SCI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9B CSI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9C ST */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9D OSC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9E PM */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+9F APC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+A0 NBSP */ (1U<<CC_BLANK_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* U+A1 INVERTED '!' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+A2 CENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+A3 POUND */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+A4 CURRENCY */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+A5 YEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+A6 BROKEN BAR */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+A7 SECTION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+A8 DIAERESIS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+A9 COPYRIGHT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+AA FEMININE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+AC NOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+AD SOFT HYPHEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+AE REGISTERED */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+AF MACRON */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+B0 DEGREE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+B1 PLUS-MINUS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+B2 SUPERSCRIPT 2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+B3 SUPERSCRIPT 3 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+B4 ACUTE ACCENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+B5 MICRO */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+B6 PILCROW */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+B7 MIDDLE DOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_),
+/* U+B8 CEDILLA */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+B9 SUPERSCRIPT 1 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+BA MASCULINE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+BC 1/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+BD 1/2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+BE 3/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* U+BF INVERTED '?' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+C0 A with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C1 A with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C2 A with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C3 A with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C4 A with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C5 A with RING */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C6 AE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C7 C with CEDILLA */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C8 E with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+C9 E with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CA E with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CB E with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CC I with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CD I with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CE I with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+CF I with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D0 ETH */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D1 N with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D2 O with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D3 O with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D4 O with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D5 O with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D6 O with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D7 MULTIPLICATION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+D8 O with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+D9 U with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DA U with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DB U with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DC U with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DD Y with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DE THORN */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* U+DF sharp s */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E0 a with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E1 a with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E2 a with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E3 a with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E4 a with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E5 a with ring */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E6 ae */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E7 c with cedilla */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E8 e with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+E9 e with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EA e with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EB e with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EC i with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+ED i with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EE i with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+EF i with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F0 eth */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F1 n with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F2 o with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F3 o with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F4 o with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F5 o with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F6 o with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F7 DIVISION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* U+F8 o with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+F9 u with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FA u with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FB u with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FC u with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FD y with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FE thorn */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* U+FF y with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)
 
 #endif	/* ASCII/Latin1 */
 
@@ -271,262 +271,262 @@
      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
-/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x15 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x25 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x44 U+E0 I8=A3 a with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x45 U+E1 I8=A4 a with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x47 U+E5 I8=A6 a with ring */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x4A U+A2 I8=A9 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x51 U+E9 I8=AA e with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x52 U+EA I8=AB e with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x54 U+E8 I8=AD e with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x55 U+ED I8=AE i with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x56 U+EE I8=AF i with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x58 U+EC I8=B1 i with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x59 U+DF I8=B2 sharp s */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5F U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x62 U+C2 I8=B3 A with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x63 U+C4 I8=B4 A with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x64 U+C0 I8=B5 A with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x65 U+C1 I8=B6 A with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x66 U+C3 I8=B7 A with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x67 U+C5 I8=B8 A with RING */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x68 U+C7 I8=B9 C with CEDILLA */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x69 U+D1 I8=BA N with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x6A U+A6 I8=BB BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
-/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x70 U+F8 I8=BC o with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x71 U+C9 I8=BD E with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x72 U+CA I8=BE E with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x73 U+CB I8=BF E with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x74 U+C8 I8=C0 E with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x75 U+CD I8=C1 I with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x76 U+CE I8=C2 I with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x77 U+CF I8=C3 I with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x78 U+CC I8=C4 I with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x79 U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x80 U+D8 I8=C5 O with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x81 U+61 'a' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x82 U+62 'b' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x83 U+63 'c' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x84 U+64 'd' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x85 U+65 'e' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x86 U+66 'f' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x87 U+67 'g' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x88 U+68 'h' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x89 U+69 'i' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8A U+AB I8=C6 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8B U+BB I8=C7 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8C U+F0 I8=C8 eth */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8D U+FD I8=C9 y with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8E U+FE I8=CA thorn */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8F U+B1 I8=CB PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x90 U+B0 I8=CC DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x91 U+6A 'j' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x92 U+6B 'k' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x93 U+6C 'l' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x95 U+6E 'n' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x97 U+70 'p' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x98 U+71 'q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x99 U+72 'r' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9A U+AA I8=CD FEMININE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9B U+BA I8=CE MASCULINE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9C U+E6 I8=CF ae */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9D U+B8 I8=D0 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0x9E U+C6 I8=D1 AE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x9F U+A4 I8=D2 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xA0 U+B5 I8=D3 MICRO */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xA2 U+73 's' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA3 U+74 't' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA6 U+77 'w' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA8 U+79 'y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xAA U+A1 I8=D4 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAB U+BF I8=D5 INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAC U+D0 I8=D6 ETH */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAD U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAE U+DE I8=D7 THORN */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAF U+AE I8=D8 REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB0 U+AC I8=D9 NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB1 U+A3 I8=DA POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB2 U+A5 I8=DB YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB3 U+B7 I8=DC MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
-/* 0xB4 U+A9 I8=DD COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB5 U+A7 I8=DE SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+B6 I8=DF PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xB7 U+BC I8=E0 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB8 U+BD I8=E1 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB9 U+BE I8=E2 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBA U+DD I8=E3 Y with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xBB U+A8 I8=E4 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBC U+AF I8=E5 MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBD U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xBE U+B4 I8=E6 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBF U+D7 I8=E7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xC0 U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xC1 U+41 'A' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC6 U+46 'F' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC8 U+48 'H' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC9 U+49 'I' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCD U+F2 I8=EB o with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCE U+F3 I8=EC o with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCF U+F5 I8=ED o with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xD1 U+4A 'J' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD2 U+4B 'K' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD3 U+4C 'L' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD5 U+4E 'N' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xDB U+FB I8=EF u with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDD U+F9 I8=F1 u with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDE U+FA I8=F2 u with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xE2 U+53 'S' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE3 U+54 'T' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE6 U+57 'W' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE8 U+59 'Y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEF U+D5 I8=FA O with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xFA U+B3 I8=FB SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xFB U+DB I8=FC U with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)
+/* U+00 NUL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+01 SOH */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+02 STX */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+03 ETX */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x04 U+9C ST */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x05 U+09 HT */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x06 U+86 SSA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x07 U+7F DEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x08 U+97 EPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x09 U+8D RI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x0A U+8E SS2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+0B VT */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0C FF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0D CR */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0E SO */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+0F SI */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+10 DLE */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+11 DC1 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+12 DC2 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+13 DC3 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x14 U+9D OSC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x15 U+0A LF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 0x16 U+08 BS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x17 U+87 ESA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+18 CAN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+19 EOM */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x1A U+92 PU2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x1B U+8F SS3 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1C FS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1D GS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1E RS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1F US */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x20 U+80 PAD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x21 U+81 HOP */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x22 U+82 BPH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x23 U+83 NBH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x24 U+84 IND */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x25 U+85 NEL */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 0x26 U+17 ETB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x27 U+1B ESC */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x28 U+88 HTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x29 U+89 HTJ */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2A U+8A VTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2B U+8B PLD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2C U+8C PLU */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2D U+05 ENQ */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2E U+06 ACK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2F U+07 BEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x30 U+90 DCS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x31 U+91 PU1 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x32 U+16 SYN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x33 U+93 STS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x34 U+94 CCH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x35 U+95 MW */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x36 U+96 SPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x37 U+04 EOT */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x38 U+98 SOS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x39 U+99 SGC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3A U+9A SCI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3B U+9B CSI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3C U+14 DC4 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3D U+15 NAK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3E U+9E PM */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3F U+1A SUB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x40 U+20 SP */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x41 U+A0 NBSP */ (1U<<CC_BLANK_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x44 U+E0 I8=A3 a with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x45 U+E1 I8=A4 a with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x47 U+E5 I8=A6 a with ring */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x4A U+A2 I8=A9 CENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4B U+2E '.' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4C U+3C '<' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4D U+28 '(' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4E U+2B '+' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4F U+7C '|' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x50 U+26 '&' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x51 U+E9 I8=AA e with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x52 U+EA I8=AB e with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x54 U+E8 I8=AD e with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x55 U+ED I8=AE i with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x56 U+EE I8=AF i with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x58 U+EC I8=B1 i with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x59 U+DF I8=B2 sharp s */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x5A U+21 '!' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5B U+24 '$' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5C U+2A '*' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5D U+29 ')' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5E U+3B ';' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5F U+5E '^' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x60 U+2D '-' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x61 U+2F '/' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x62 U+C2 I8=B3 A with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x63 U+C4 I8=B4 A with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x64 U+C0 I8=B5 A with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x65 U+C1 I8=B6 A with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x66 U+C3 I8=B7 A with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x67 U+C5 I8=B8 A with RING */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x68 U+C7 I8=B9 C with CEDILLA */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x69 U+D1 I8=BA N with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x6A U+A6 I8=BB BROKEN BAR */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6B U+2C ',' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6C U+25 '%' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6D U+5F '_' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_WORDCHAR_),
+/* 0x6E U+3E '>' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6F U+3F '?' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x70 U+F8 I8=BC o with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x71 U+C9 I8=BD E with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x72 U+CA I8=BE E with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x73 U+CB I8=BF E with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x74 U+C8 I8=C0 E with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x75 U+CD I8=C1 I with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x76 U+CE I8=C2 I with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x77 U+CF I8=C3 I with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x78 U+CC I8=C4 I with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x79 U+60 '`' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7A U+3A ':' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7B U+23 '#' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7C U+40 '@' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7D U+27 "'" */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7E U+3D '=' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7F U+22 '"' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x80 U+D8 I8=C5 O with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x81 U+61 'a' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x82 U+62 'b' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x83 U+63 'c' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x84 U+64 'd' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x85 U+65 'e' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x86 U+66 'f' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x87 U+67 'g' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x88 U+68 'h' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x89 U+69 'i' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8A U+AB I8=C6 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8B U+BB I8=C7 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8C U+F0 I8=C8 eth */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8D U+FD I8=C9 y with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8E U+FE I8=CA thorn */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8F U+B1 I8=CB PLUS-MINUS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x90 U+B0 I8=CC DEGREE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x91 U+6A 'j' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x92 U+6B 'k' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x93 U+6C 'l' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x94 U+6D 'm' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x95 U+6E 'n' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x96 U+6F 'o' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x97 U+70 'p' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x98 U+71 'q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x99 U+72 'r' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9A U+AA I8=CD FEMININE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9B U+BA I8=CE MASCULINE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9C U+E6 I8=CF ae */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9D U+B8 I8=D0 CEDILLA */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0x9E U+C6 I8=D1 AE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x9F U+A4 I8=D2 CURRENCY */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA0 U+B5 I8=D3 MICRO */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA1 U+7E '~' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA2 U+73 's' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA3 U+74 't' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA4 U+75 'u' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA5 U+76 'v' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA6 U+77 'w' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA7 U+78 'x' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA8 U+79 'y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA9 U+7A 'z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xAA U+A1 I8=D4 INVERTED '!' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAB U+BF I8=D5 INVERTED '?' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAC U+D0 I8=D6 ETH */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAD U+5B '[' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAE U+DE I8=D7 THORN */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAF U+AE I8=D8 REGISTERED */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB0 U+AC I8=D9 NOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB1 U+A3 I8=DA POUND */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB2 U+A5 I8=DB YEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB3 U+B7 I8=DC MIDDLE DOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_),
+/* 0xB4 U+A9 I8=DD COPYRIGHT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB5 U+A7 I8=DE SECTION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+B6 I8=DF PILCROW */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB7 U+BC I8=E0 1/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB8 U+BD I8=E1 1/2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB9 U+BE I8=E2 3/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBA U+DD I8=E3 Y with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xBB U+A8 I8=E4 DIAERESIS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBC U+AF I8=E5 MACRON */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBD U+5D ']' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xBE U+B4 I8=E6 ACUTE ACCENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBF U+D7 I8=E7 MULTIPLICATION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xC0 U+7B '{' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xC1 U+41 'A' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC2 U+42 'B' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC3 U+43 'C' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC4 U+44 'D' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC5 U+45 'E' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC6 U+46 'F' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC7 U+47 'G' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC8 U+48 'H' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC9 U+49 'I' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCD U+F2 I8=EB o with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCE U+F3 I8=EC o with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCF U+F5 I8=ED o with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xD0 U+7D '}' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xD1 U+4A 'J' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD2 U+4B 'K' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD3 U+4C 'L' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD4 U+4D 'M' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD5 U+4E 'N' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD6 U+4F 'O' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD7 U+50 'P' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD8 U+51 'Q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD9 U+52 'R' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xDB U+FB I8=EF u with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDD U+F9 I8=F1 u with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDE U+FA I8=F2 u with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xE0 U+5C '\' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE2 U+53 'S' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE3 U+54 'T' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE4 U+55 'U' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE5 U+56 'V' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE6 U+57 'W' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE7 U+58 'X' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE8 U+59 'Y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE9 U+5A 'Z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEF U+D5 I8=FA O with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xF0 U+30 '0' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF1 U+31 '1' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF2 U+32 '2' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF3 U+33 '3' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF4 U+34 '4' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF5 U+35 '5' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF6 U+36 '6' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF7 U+37 '7' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF8 U+38 '8' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF9 U+39 '9' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xFA U+B3 I8=FB SUPERSCRIPT 3 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xFB U+DB I8=FC U with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFF U+9F APC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)
 
 #endif	/* EBCDIC 1047 */
 
@@ -534,263 +534,263 @@
      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
-/* U+00 NUL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+01 SOH */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+02 STX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+03 ETX */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x04 U+9C ST */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x05 U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x06 U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x07 U+7F DEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x08 U+97 EPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x09 U+8D RI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x0A U+8E SS2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+11 DC1 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+12 DC2 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+13 DC3 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x14 U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x15 U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 0x16 U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x17 U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+18 CAN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+19 EOM */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x1A U+92 PU2 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x1B U+8F SS3 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1C FS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1D GS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1E RS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+1F US */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x20 U+80 PAD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x21 U+81 HOP */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x22 U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x23 U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x24 U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x25 U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
-/* 0x26 U+17 ETB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x27 U+1B ESC */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x28 U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x29 U+89 HTJ */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2A U+8A VTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2B U+8B PLD */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2C U+8C PLU */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2D U+05 ENQ */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2E U+06 ACK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x2F U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_MNEMONIC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x30 U+90 DCS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x31 U+91 PU1 */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x32 U+16 SYN */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x33 U+93 STS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x34 U+94 CCH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x35 U+95 MW */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x36 U+96 SPA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x37 U+04 EOT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x38 U+98 SOS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x39 U+99 SGC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3A U+9A SCI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3B U+9B CSI */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3C U+14 DC4 */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3D U+15 NAK */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x44 U+E0 I8=A3 a with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x45 U+E1 I8=A4 a with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x47 U+E5 I8=A6 a with ring */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x4A U+A2 I8=A9 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x4B U+2E '.' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4C U+3C '<' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4D U+28 '(' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4E U+2B '+' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x4F U+7C '|' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x50 U+26 '&' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x51 U+E9 I8=AA e with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x52 U+EA I8=AB e with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x54 U+E8 I8=AD e with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x55 U+ED I8=AE i with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x56 U+EE I8=AF i with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x58 U+EC I8=B1 i with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x59 U+DF I8=B2 sharp s */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x5A U+21 '!' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5B U+24 '$' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5C U+2A '*' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5D U+29 ')' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5E U+3B ';' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x5F U+AC I8=B3 NOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x60 U+2D '-' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x61 U+2F '/' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x62 U+C2 I8=B4 A with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x63 U+C4 I8=B5 A with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x64 U+C0 I8=B6 A with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x65 U+C1 I8=B7 A with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x66 U+C3 I8=B8 A with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x67 U+C5 I8=B9 A with RING */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x68 U+C7 I8=BA C with CEDILLA */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x69 U+D1 I8=BB N with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x6A U+A6 I8=BC BROKEN BAR */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x6B U+2C ',' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x6C U+25 '%' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x6D U+5F '_' */ (1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_WORDCHAR),
-/* 0x6E U+3E '>' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x6F U+3F '?' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x70 U+F8 I8=BD o with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x71 U+C9 I8=BE E with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x72 U+CA I8=BF E with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x73 U+CB I8=C0 E with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x74 U+C8 I8=C1 E with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x75 U+CD I8=C2 I with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x76 U+CE I8=C3 I with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x77 U+CF I8=C4 I with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x78 U+CC I8=C5 I with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x79 U+60 '`' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7A U+3A ':' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7B U+23 '#' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7C U+40 '@' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7D U+27 "'" */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7E U+3D '=' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x7F U+22 '"' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x80 U+D8 I8=C6 O with '/' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x81 U+61 'a' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x82 U+62 'b' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x83 U+63 'c' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x84 U+64 'd' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x85 U+65 'e' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x86 U+66 'f' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0x87 U+67 'g' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x88 U+68 'h' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x89 U+69 'i' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8A U+AB I8=C7 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8B U+BB I8=C8 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0x8C U+F0 I8=C9 eth */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8D U+FD I8=CA y with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8E U+FE I8=CB thorn */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x8F U+B1 I8=CC PLUS-MINUS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x90 U+B0 I8=CD DEGREE */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0x91 U+6A 'j' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x92 U+6B 'k' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x93 U+6C 'l' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x94 U+6D 'm' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x95 U+6E 'n' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x96 U+6F 'o' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x97 U+70 'p' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x98 U+71 'q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x99 U+72 'r' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9A U+AA I8=CE FEMININE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9B U+BA I8=CF MASCULINE ORDINAL */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9C U+E6 I8=D0 ae */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0x9D U+B8 I8=D1 CEDILLA */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0x9E U+C6 I8=D2 AE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0x9F U+A4 I8=D3 CURRENCY */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xA0 U+B5 I8=D4 MICRO */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA1 U+7E '~' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xA2 U+73 's' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA3 U+74 't' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA4 U+75 'u' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA5 U+76 'v' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA6 U+77 'w' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA7 U+78 'x' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA8 U+79 'y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xA9 U+7A 'z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xAA U+A1 I8=D5 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAB U+BF I8=D6 INVERTED '?' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xAC U+D0 I8=D7 ETH */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAD U+DD I8=D8 Y with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAE U+DE I8=D9 THORN */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xAF U+AE I8=DA REGISTERED */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB0 U+5E '^' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xB1 U+A3 I8=DB POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB2 U+A5 I8=DC YEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB3 U+B7 I8=DD MIDDLE DOT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT),
-/* 0xB4 U+A9 I8=DE COPYRIGHT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xB5 U+A7 I8=DF SECTION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* U+B6 I8=E0 PILCROW */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xB7 U+BC I8=E1 1/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB8 U+BD I8=E2 1/2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xB9 U+BE I8=E3 3/4 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBA U+5B '[' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xBB U+5D ']' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xBC U+AF I8=E4 MACRON */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBD U+A8 I8=E5 DIAERESIS */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBE U+B4 I8=E6 ACUTE ACCENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xBF U+D7 I8=E7 MULTIPLICATION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xC0 U+7B '{' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xC1 U+41 'A' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC2 U+42 'B' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC3 U+43 'C' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC4 U+44 'D' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC5 U+45 'E' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC6 U+46 'F' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xC7 U+47 'G' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC8 U+48 'H' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xC9 U+49 'I' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCD U+F2 I8=EB o with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCE U+F3 I8=EC o with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xCF U+F5 I8=ED o with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xD0 U+7D '}' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xD1 U+4A 'J' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD2 U+4B 'K' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD3 U+4C 'L' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD4 U+4D 'M' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD5 U+4E 'N' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD6 U+4F 'O' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD7 U+50 'P' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD8 U+51 'Q' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xD9 U+52 'R' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xDB U+FB I8=EF u with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDD U+F9 I8=F1 u with grave */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDE U+FA I8=F2 u with acute */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_LOWER)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR),
-/* 0xE0 U+5C '\' */ (1U<<_CC_ASCII)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
-/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
-/* 0xE2 U+53 'S' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NONLATIN1_SIMPLE_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE3 U+54 'T' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE4 U+55 'U' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE5 U+56 'V' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE6 U+57 'W' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE7 U+58 'X' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE8 U+59 'Y' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_NONLATIN1_FOLD)|(1U<<_CC_NON_FINAL_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xE9 U+5A 'Z' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xEF U+D5 I8=FA O with '~' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xF0 U+30 '0' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF1 U+31 '1' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_BINDIGIT)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF2 U+32 '2' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF3 U+33 '3' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF4 U+34 '4' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF5 U+35 '5' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF6 U+36 '6' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF7 U+37 '7' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_OCTDIGIT)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF8 U+38 '8' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xF9 U+39 '9' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ASCII)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_DIGIT)|(1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_XDIGIT),
-/* 0xFA U+B3 I8=FB SUPERSCRIPT 3 */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT),
-/* 0xFB U+DB I8=FC U with '^' */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<_CC_ALPHA)|(1U<<_CC_ALPHANUMERIC)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_PRINT)|(1U<<_CC_UPPER)|(1U<<_CC_WORDCHAR),
-/* 0xFF U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA)
+/* U+00 NUL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+01 SOH */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+02 STX */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+03 ETX */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x04 U+9C ST */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x05 U+09 HT */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x06 U+86 SSA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x07 U+7F DEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x08 U+97 EPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x09 U+8D RI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x0A U+8E SS2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+0B VT */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0C FF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0D CR */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* U+0E SO */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+0F SI */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+10 DLE */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+11 DC1 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+12 DC2 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+13 DC3 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x14 U+9D OSC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x15 U+85 NEL */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 0x16 U+08 BS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x17 U+87 ESA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+18 CAN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+19 EOM */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x1A U+92 PU2 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x1B U+8F SS3 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1C FS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1D GS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1E RS */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* U+1F US */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x20 U+80 PAD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x21 U+81 HOP */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x22 U+82 BPH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x23 U+83 NBH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x24 U+84 IND */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x25 U+0A LF */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_)|(1U<<CC_VERTSPACE_),
+/* 0x26 U+17 ETB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x27 U+1B ESC */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x28 U+88 HTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x29 U+89 HTJ */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2A U+8A VTS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2B U+8B PLD */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2C U+8C PLU */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2D U+05 ENQ */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2E U+06 ACK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x2F U+07 BEL */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_MNEMONIC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x30 U+90 DCS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x31 U+91 PU1 */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x32 U+16 SYN */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x33 U+93 STS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x34 U+94 CCH */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x35 U+95 MW */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x36 U+96 SPA */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x37 U+04 EOT */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x38 U+98 SOS */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x39 U+99 SGC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3A U+9A SCI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3B U+9B CSI */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3C U+14 DC4 */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3D U+15 NAK */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3E U+9E PM */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x3F U+1A SUB */ (1U<<CC_ASCII_)|(1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_),
+/* 0x40 U+20 SP */ (1U<<CC_ASCII_)|(1U<<CC_BLANK_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x41 U+A0 NBSP */ (1U<<CC_BLANK_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_)|(1U<<CC_SPACE_),
+/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x44 U+E0 I8=A3 a with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x45 U+E1 I8=A4 a with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x46 U+E3 I8=A5 a with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x47 U+E5 I8=A6 a with ring */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x48 U+E7 I8=A7 c with cedilla */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x49 U+F1 I8=A8 n with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x4A U+A2 I8=A9 CENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4B U+2E '.' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4C U+3C '<' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4D U+28 '(' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4E U+2B '+' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x4F U+7C '|' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x50 U+26 '&' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x51 U+E9 I8=AA e with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x52 U+EA I8=AB e with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x53 U+EB I8=AC e with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x54 U+E8 I8=AD e with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x55 U+ED I8=AE i with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x56 U+EE I8=AF i with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x57 U+EF I8=B0 i with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x58 U+EC I8=B1 i with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x59 U+DF I8=B2 sharp s */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x5A U+21 '!' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5B U+24 '$' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5C U+2A '*' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5D U+29 ')' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5E U+3B ';' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x5F U+AC I8=B3 NOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x60 U+2D '-' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x61 U+2F '/' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x62 U+C2 I8=B4 A with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x63 U+C4 I8=B5 A with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x64 U+C0 I8=B6 A with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x65 U+C1 I8=B7 A with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x66 U+C3 I8=B8 A with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x67 U+C5 I8=B9 A with RING */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x68 U+C7 I8=BA C with CEDILLA */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x69 U+D1 I8=BB N with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x6A U+A6 I8=BC BROKEN BAR */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6B U+2C ',' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6C U+25 '%' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6D U+5F '_' */ (1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_WORDCHAR_),
+/* 0x6E U+3E '>' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x6F U+3F '?' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x70 U+F8 I8=BD o with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x71 U+C9 I8=BE E with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x72 U+CA I8=BF E with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x73 U+CB I8=C0 E with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x74 U+C8 I8=C1 E with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x75 U+CD I8=C2 I with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x76 U+CE I8=C3 I with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x77 U+CF I8=C4 I with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x78 U+CC I8=C5 I with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x79 U+60 '`' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7A U+3A ':' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7B U+23 '#' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7C U+40 '@' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7D U+27 "'" */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7E U+3D '=' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x7F U+22 '"' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x80 U+D8 I8=C6 O with '/' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x81 U+61 'a' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x82 U+62 'b' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x83 U+63 'c' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x84 U+64 'd' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x85 U+65 'e' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x86 U+66 'f' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0x87 U+67 'g' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x88 U+68 'h' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x89 U+69 'i' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8A U+AB I8=C7 LEFT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8B U+BB I8=C8 RIGHT-POINTING DOUBLE ANGLE QUOTE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0x8C U+F0 I8=C9 eth */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8D U+FD I8=CA y with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8E U+FE I8=CB thorn */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x8F U+B1 I8=CC PLUS-MINUS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x90 U+B0 I8=CD DEGREE */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0x91 U+6A 'j' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x92 U+6B 'k' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x93 U+6C 'l' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x94 U+6D 'm' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x95 U+6E 'n' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x96 U+6F 'o' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x97 U+70 'p' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x98 U+71 'q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x99 U+72 'r' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9A U+AA I8=CE FEMININE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9B U+BA I8=CF MASCULINE ORDINAL */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9C U+E6 I8=D0 ae */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0x9D U+B8 I8=D1 CEDILLA */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0x9E U+C6 I8=D2 AE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0x9F U+A4 I8=D3 CURRENCY */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA0 U+B5 I8=D4 MICRO */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA1 U+7E '~' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xA2 U+73 's' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA3 U+74 't' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA4 U+75 'u' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA5 U+76 'v' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA6 U+77 'w' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA7 U+78 'x' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA8 U+79 'y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xA9 U+7A 'z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xAA U+A1 I8=D5 INVERTED '!' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAB U+BF I8=D6 INVERTED '?' */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xAC U+D0 I8=D7 ETH */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAD U+DD I8=D8 Y with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAE U+DE I8=D9 THORN */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xAF U+AE I8=DA REGISTERED */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB0 U+5E '^' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB1 U+A3 I8=DB POUND */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB2 U+A5 I8=DC YEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB3 U+B7 I8=DD MIDDLE DOT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_),
+/* 0xB4 U+A9 I8=DE COPYRIGHT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB5 U+A7 I8=DF SECTION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* U+B6 I8=E0 PILCROW */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xB7 U+BC I8=E1 1/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB8 U+BD I8=E2 1/2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xB9 U+BE I8=E3 3/4 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBA U+5B '[' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xBB U+5D ']' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xBC U+AF I8=E4 MACRON */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBD U+A8 I8=E5 DIAERESIS */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBE U+B4 I8=E6 ACUTE ACCENT */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xBF U+D7 I8=E7 MULTIPLICATION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xC0 U+7B '{' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xC1 U+41 'A' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC2 U+42 'B' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC3 U+43 'C' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC4 U+44 'D' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC5 U+45 'E' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC6 U+46 'F' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xC7 U+47 'G' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC8 U+48 'H' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xC9 U+49 'I' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xCA U+AD I8=E8 SOFT HYPHEN */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xCB U+F4 I8=E9 o with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCC U+F6 I8=EA o with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCD U+F2 I8=EB o with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCE U+F3 I8=EC o with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xCF U+F5 I8=ED o with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xD0 U+7D '}' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xD1 U+4A 'J' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD2 U+4B 'K' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD3 U+4C 'L' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD4 U+4D 'M' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD5 U+4E 'N' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD6 U+4F 'O' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD7 U+50 'P' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD8 U+51 'Q' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xD9 U+52 'R' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xDA U+B9 I8=EE SUPERSCRIPT 1 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xDB U+FB I8=EF u with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDC U+FC I8=F0 u with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDD U+F9 I8=F1 u with grave */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDE U+FA I8=F2 u with acute */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xDF U+FF I8=F3 y with diaeresis */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_LOWER_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_),
+/* 0xE0 U+5C '\' */ (1U<<CC_ASCII_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_PUNCT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE1 U+F7 I8=F4 DIVISION */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_QUOTEMETA_),
+/* 0xE2 U+53 'S' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NONLATIN1_SIMPLE_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE3 U+54 'T' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE4 U+55 'U' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE5 U+56 'V' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE6 U+57 'W' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE7 U+58 'X' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE8 U+59 'Y' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_NONLATIN1_FOLD_)|(1U<<CC_NON_FINAL_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xE9 U+5A 'Z' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEA U+B2 I8=F5 SUPERSCRIPT 2 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xEB U+D4 I8=F6 O with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEC U+D6 I8=F7 O with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xED U+D2 I8=F8 O with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEE U+D3 I8=F9 O with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xEF U+D5 I8=FA O with '~' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xF0 U+30 '0' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF1 U+31 '1' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_BINDIGIT_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF2 U+32 '2' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF3 U+33 '3' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF4 U+34 '4' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF5 U+35 '5' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF6 U+36 '6' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF7 U+37 '7' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_OCTDIGIT_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF8 U+38 '8' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xF9 U+39 '9' */ (1U<<CC_ALPHANUMERIC_)|(1U<<CC_ASCII_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_DIGIT_)|(1U<<CC_GRAPH_)|(1U<<CC_PRINT_)|(1U<<CC_WORDCHAR_)|(1U<<CC_XDIGIT_),
+/* 0xFA U+B3 I8=FB SUPERSCRIPT 3 */ (1U<<CC_GRAPH_)|(1U<<CC_PRINT_),
+/* 0xFB U+DB I8=FC U with '^' */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFC U+DC I8=FD U with DIAERESIS */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFD U+D9 I8=FE U with GRAVE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFE U+DA I8=FF U with ACUTE */ (1U<<CC_ALPHA_)|(1U<<CC_ALPHANUMERIC_)|(1U<<CC_CASED_)|(1U<<CC_CHARNAME_CONT_)|(1U<<CC_GRAPH_)|(1U<<CC_IDFIRST_)|(1U<<CC_IS_IN_SOME_FOLD_)|(1U<<CC_PRINT_)|(1U<<CC_UPPER_)|(1U<<CC_WORDCHAR_),
+/* 0xFF U+9F APC */ (1U<<CC_CNTRL_)|(1U<<CC_QUOTEMETA_)
 
 #endif	/* EBCDIC 037 */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/locale.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/locale.c,v
diff -u -p -a -u -p -r1.9 locale.c
--- gnu/usr.bin/perl/locale.c	15 Feb 2023 01:36:13 -0000	1.9
+++ gnu/usr.bin/perl/locale.c	21 Feb 2024 15:47:02 -0000
@@ -38,14 +38,113 @@
  * it would be possible to emulate thread-safe locales, but this likely would
  * involve a lot of locale switching, and would require XS code changes.
  * Macros could be written so that the code wouldn't have to know which type of
- * system is being used.  It's unlikely that we would ever do that, since most
- * modern systems support thread-safe locales, but there was code written to
- * this end, and is retained, #ifdef'd out.
+ * system is being used.
+ *
+ * Table-driven code is used for simplicity and clarity, as many operations
+ * differ only in which category is being worked on.  However the system
+ * categories need not be small contiguous integers, so do not lend themselves
+ * to table lookup.  Instead we have created our own equivalent values which
+ * are all small contiguous non-negative integers, and translation functions
+ * between the two sets.  For category 'LC_foo', the name of our index is
+ * LC_foo_INDEX_.  Various parallel tables, indexed by these, are used.
+ *
+ * Many of the macros and functions in this file have one of the suffixes '_c',
+ * '_r', or '_i'.  khw found these useful in remembering what type of locale
+ * category to use as their parameter.  '_r' takes an int category number as
+ * passed to setlocale(), like LC_ALL, LC_CTYPE, etc.  The 'r' indicates that
+ * the value isn't known until runtime.  '_c' also indicates such a category
+ * number, but its value is known at compile time.  These are both converted
+ * into unsigned indexes into various tables of category information, where the
+ * real work is generally done.  The tables are generated at compile-time based
+ * on platform characteristics and Configure options.  They hide from the code
+ * many of the vagaries of the different locale implementations out there.  You
+ * may have already guessed that '_i' indicates the parameter is such an
+ * unsigned index.  Converting from '_r' to '_i' requires run-time lookup.
+ * '_c' is used to get cpp to do this at compile time.  To avoid the runtime
+ * expense, the code is structured to use '_r' at the API level, and once
+ * converted, everything possible is done using the table indexes.
+ *
+ * On unthreaded perls, most operations expand out to just the basic
+ * setlocale() calls.  The same is true on threaded perls on modern Windows
+ * systems where the same API, after set up, is used for thread-safe locale
+ * handling.  On other systems, there is a completely different API, specified
+ * in POSIX 2008, to do thread-safe locales.  On these systems, our
+ * emulate_setlocale_i() function is used to hide the different API from the
+ * outside.  This makes it completely transparent to most XS code.
+ *
+ * A huge complicating factor is that the LC_NUMERIC category is normally held
+ * in the C locale, except during those relatively rare times when it needs to
+ * be in the underlying locale.  There is a bunch of code to accomplish this,
+ * and to allow easy switches from one state to the other.
+ *
+ * In addition, the setlocale equivalents have versions for the return context,
+ * 'void' and 'bool', besides the full return value.  This can present
+ * opportunities for avoiding work.  We don't have to necessarily create a safe
+ * copy to return if no return is desired.
+ *
+ * There are 3.5 major implementations here; which one chosen depends on what
+ * the platform has available, and Configuration options.
+ *
+ * 1) Raw my_setlocale().  Here the layer adds nothing.  This is used for
+ *    unthreaded perls, and when the API for safe locale threading is identical
+ *    to the unsafe API (Windows, currently).
+ *
+ * 2) A minimal layer that makes my_setlocale() uninterruptible and returns a
+ *    per-thread/per-category value.
+ *
+ * 3a and 3b) A layer that implements POSIX 2008 thread-safe locale handling,
+ *    mapping the setlocale() API to them.  This automatically makes almost all
+ *    code thread-safe without need for changes.  This layer is chosen on
+ *    threaded perls when the platform supports the POSIX 2008 functions, and
+ *    when there is no manual override in Configure.
+ *
+ *    3a) is when the platform has a reliable querylocale() function or
+ *        equivalent that is selected to be used.
+ *    3b) is when we have to emulate that functionality.
+ *
+ * z/OS (os390) is an outlier.  Locales really don't work under threads when
+ * either the radix character isn't a dot, or attempts are made to change
+ * locales after the first thread is created.  The reason is that IBM has made
+ * it thread-safe by refusing to change locales (returning failure if
+ * attempted) any time after an application has called pthread_create() to
+ * create another thread.  The expectation is that an application will set up
+ * its locale information before the first fork, and be stable thereafter.  But
+ * perl toggles LC_NUMERIC if the locale's radix character isn't a dot, as do
+ * the other toggles, which are less common.
  */
 
+/* If the environment says to, we can output debugging information during
+ * initialization.  This is done before option parsing, and before any thread
+ * creation, so can be a file-level static.  (Must come before #including
+ * perl.h) */
+#ifdef DEBUGGING
+static int debug_initialization = 0;
+#  define DEBUG_INITIALIZATION_set(v) (debug_initialization = v)
+#  define DEBUG_LOCALE_INITIALIZATION_  debug_initialization
+/* C standards seem to say that __LINE__ is merely "an integer constant",
+ * which means it might be either int, long (with L suffix), or long long
+ * (or their corresponding unsigned type).  So, we have to explicitly cast
+ * __LINE__ to a particular integer type to pass it reliably to variadic
+ * functions like (PerlIO_)printf, as below: */
+#  ifdef USE_LOCALE_THREADS
+#    define DEBUG_PRE_STMTS                                                     \
+     dSAVE_ERRNO; dTHX; PerlIO_printf(Perl_debug_log,"\n%s: %" LINE_Tf ": %p: ",\
+                                      __FILE__, (line_t)__LINE__, aTHX);
+#  else
+#    define DEBUG_PRE_STMTS                                                     \
+     dSAVE_ERRNO; dTHX; PerlIO_printf(Perl_debug_log, "\n%s: %" LINE_Tf ": ",   \
+                                      __FILE__, (line_t)__LINE__);
+#  endif
+#  define DEBUG_POST_STMTS  RESTORE_ERRNO;
+#else
+#  define debug_initialization 0
+#  define DEBUG_INITIALIZATION_set(v)
+#  define DEBUG_PRE_STMTS
+#  define DEBUG_POST_STMTS
+#endif
+
 #include "EXTERN.h"
 #define PERL_IN_LOCALE_C
-#include "perl_langinfo.h"
 #include "perl.h"
 
 #include "reentr.h"
@@ -57,27 +156,53 @@
 #  include <wctype.h>
 #endif
 
-/* If the environment says to, we can output debugging information during
- * initialization.  This is done before option parsing, and before any thread
- * creation, so can be a file-level static */
-#if ! defined(DEBUGGING)
-#  define debug_initialization 0
-#  define DEBUG_INITIALIZATION_set(v)
+ /* The main errno that gets used is this one, on platforms that support it */
+#ifdef EINVAL
+#  define SET_EINVAL  SETERRNO(EINVAL, LIB_INVARG)
 #else
-static bool debug_initialization = FALSE;
-#  define DEBUG_INITIALIZATION_set(v) (debug_initialization = v)
+#  define SET_EINVAL
+#endif
+
+/* If we have any of these library functions, we can reliably determine is a
+ * locale is a UTF-8 one or not.  And if we aren't using locales at all, we act
+ * as if everything is the C locale, so the answer there is always "No, it
+ * isn't UTF-8"; this too is reliably accurate */
+#if   defined(HAS_SOME_LANGINFO) || defined(HAS_MBTOWC) || defined(HAS_MBRTOWC) \
+ || ! defined(USE_LOCALE)
+#  define HAS_RELIABLE_UTF8NESS_DETERMINATION
 #endif
 
+#ifdef USE_LOCALE
+
+PERL_STATIC_INLINE const char *
+S_mortalized_pv_copy(pTHX_ const char * const pv)
+{
+    PERL_ARGS_ASSERT_MORTALIZED_PV_COPY;
+
+    /* Copies the input pv, and arranges for it to be freed at an unspecified
+     * later time. */
+
+    if (pv == NULL) {
+        return NULL;
+    }
+
+    const char * copy = savepv(pv);
+    SAVEFREEPV(copy);
+    return copy;
+}
+
+#endif
 
 /* Returns the Unix errno portion; ignoring any others.  This is a macro here
  * instead of putting it into perl.h, because unclear to khw what should be
  * done generally. */
 #define GET_ERRNO   saved_errno
 
-/* strlen() of a literal string constant.  We might want this more general,
- * but using it in just this file for now.  A problem with more generality is
- * the compiler warnings about comparing unlike signs */
-#define STRLENs(s)  (sizeof("" s "") - 1)
+/* Default values come from the C locale */
+#define C_codeset "ANSI_X3.4-1968" /* Only in some Configurations, and usually
+                                      a single instance, so is a #define */
+static const char C_decimal_point[] = ".";
+static const char C_thousands_sep[] = "";
 
 /* Is the C string input 'name' "C" or "POSIX"?  If so, and 'name' is the
  * return of setlocale(), then this is extremely likely to be the C or POSIX
@@ -94,85 +219,47 @@ static bool debug_initialization = FALSE
                               && (( *(name) == 'C' && (*(name + 1)) == '\0') \
                                    || strEQ((name), "POSIX")))
 
-#ifdef USE_LOCALE
-
-/* This code keeps a LRU cache of the UTF-8ness of the locales it has so-far
- * looked up.  This is in the form of a C string:  */
-
-#define UTF8NESS_SEP     "\v"
-#define UTF8NESS_PREFIX  "\f"
-
-/* So, the string looks like:
- *
- *      \vC\a0\vPOSIX\a0\vam_ET\a0\vaf_ZA.utf8\a1\ven_US.UTF-8\a1\0
- *
- * where the digit 0 after the \a indicates that the locale starting just
- * after the preceding \v is not UTF-8, and the digit 1 mean it is. */
-
-STATIC_ASSERT_DECL(STRLENs(UTF8NESS_SEP) == 1);
-STATIC_ASSERT_DECL(STRLENs(UTF8NESS_PREFIX) == 1);
-
-#define C_and_POSIX_utf8ness    UTF8NESS_SEP "C"     UTF8NESS_PREFIX "0"    \
-                                UTF8NESS_SEP "POSIX" UTF8NESS_PREFIX "0"
-
-/* The cache is initialized to C_and_POSIX_utf8ness at start up.  These are
- * kept there always.  The remining portion of the cache is LRU, with the
- * oldest looked-up locale at the tail end */
-
-STATIC char *
-S_stdize_locale(pTHX_ char *locs)
-{
-    /* Standardize the locale name from a string returned by 'setlocale',
-     * possibly modifying that string.
-     *
-     * The typical return value of setlocale() is either
-     * (1) "xx_YY" if the first argument of setlocale() is not LC_ALL
-     * (2) "xa_YY xb_YY ..." if the first argument of setlocale() is LC_ALL
-     *     (the space-separated values represent the various sublocales,
-     *      in some unspecified order).  This is not handled by this function.
-     *
-     * In some platforms it has a form like "LC_SOMETHING=Lang_Country.866\n",
-     * which is harmful for further use of the string in setlocale().  This
-     * function removes the trailing new line and everything up through the '='
-     * */
-
-    const char * const s = strchr(locs, '=');
-    bool okay = TRUE;
-
-    PERL_ARGS_ASSERT_STDIZE_LOCALE;
-
-    if (s) {
-        const char * const t = strchr(s, '.');
-        okay = FALSE;
-        if (t) {
-            const char * const u = strchr(t, '\n');
-            if (u && (u[1] == 0)) {
-                const STRLEN len = u - s;
-                Move(s + 1, locs, len, char);
-                locs[len] = 0;
-                okay = TRUE;
-            }
-        }
-    }
+#if defined(HAS_NL_LANGINFO_L) || defined(HAS_NL_LANGINFO)
+#  define HAS_SOME_LANGINFO
+#endif
 
-    if (!okay)
-        Perl_croak(aTHX_ "Can't fix broken locale name \"%s\"", locs);
+#define my_langinfo_c(item, category, locale, retbufp, retbuf_sizep, utf8ness) \
+            my_langinfo_i(item, category##_INDEX_, locale, retbufp,            \
+                                                      retbuf_sizep,  utf8ness)
 
-    return locs;
-}
+#ifdef USE_LOCALE
 
-/* Two parallel arrays; first the locale categories Perl uses on this system;
- * the second array is their names.  These arrays are in mostly arbitrary
- * order. */
+#  ifdef DEBUGGING
+#    define setlocale_debug_string_i(index, locale, result)                 \
+            my_setlocale_debug_string_i(index, locale, result, __LINE__)
+#    define setlocale_debug_string_c(category, locale, result)              \
+                setlocale_debug_string_i(category##_INDEX_, locale, result)
+#    define setlocale_debug_string_r(category, locale, result)              \
+             setlocale_debug_string_i(get_category_index(category, locale), \
+                                      locale, result)
+#  endif
+
+#  define toggle_locale_i(index, locale)                                    \
+                 S_toggle_locale_i(aTHX_ index, locale, __LINE__)
+#  define toggle_locale_c(cat, locale)  toggle_locale_i(cat##_INDEX_, locale)
+#  define restore_toggled_locale_i(index, locale)                           \
+                 S_restore_toggled_locale_i(aTHX_ index, locale, __LINE__)
+#  define restore_toggled_locale_c(cat, locale)                             \
+                             restore_toggled_locale_i(cat##_INDEX_, locale)
+
+/* Two parallel arrays indexed by our mapping of category numbers into small
+ * non-negative indexes; first the locale categories Perl uses on this system,
+ * used to do the inverse mapping.  The second array is their names.  These
+ * arrays are in mostly arbitrary order. */
 
-const int categories[] = {
+STATIC const int categories[] = {
 
-#    ifdef USE_LOCALE_NUMERIC
-                             LC_NUMERIC,
-#    endif
 #    ifdef USE_LOCALE_CTYPE
                              LC_CTYPE,
 #    endif
+#  ifdef USE_LOCALE_NUMERIC
+                             LC_NUMERIC,
+#  endif
 #    ifdef USE_LOCALE_COLLATE
                              LC_COLLATE,
 #    endif
@@ -200,6 +287,9 @@ const int categories[] = {
 #    ifdef USE_LOCALE_TELEPHONE
                              LC_TELEPHONE,
 #    endif
+#    ifdef USE_LOCALE_NAME
+                             LC_NAME,
+#    endif
 #    ifdef USE_LOCALE_SYNTAX
                              LC_SYNTAX,
 #    endif
@@ -209,21 +299,22 @@ const int categories[] = {
 #    ifdef LC_ALL
                              LC_ALL,
 #    endif
-                            -1  /* Placeholder because C doesn't allow a
-                                   trailing comma, and it would get complicated
-                                   with all the #ifdef's */
+
+   /* Placeholder as a precaution if code fails to check the return of
+    * get_category_index(), which returns this element to indicate an error */
+                            -1
 };
 
 /* The top-most real element is LC_ALL */
 
-const char * const category_names[] = {
+STATIC const char * const category_names[] = {
 
-#    ifdef USE_LOCALE_NUMERIC
-                                 "LC_NUMERIC",
-#    endif
 #    ifdef USE_LOCALE_CTYPE
                                  "LC_CTYPE",
 #    endif
+#  ifdef USE_LOCALE_NUMERIC
+                                 "LC_NUMERIC",
+#  endif
 #    ifdef USE_LOCALE_COLLATE
                                  "LC_COLLATE",
 #    endif
@@ -251,6 +342,9 @@ const char * const category_names[] = {
 #    ifdef USE_LOCALE_TELEPHONE
                                  "LC_TELEPHONE",
 #    endif
+#    ifdef USE_LOCALE_NAME
+                                 "LC_NAME",
+#    endif
 #    ifdef USE_LOCALE_SYNTAX
                                  "LC_SYNTAX",
 #    endif
@@ -260,1024 +354,1511 @@ const char * const category_names[] = {
 #    ifdef LC_ALL
                                  "LC_ALL",
 #    endif
-                                 NULL  /* Placeholder */
-                            };
+
+   /* Placeholder as a precaution if code fails to check the return of
+    * get_category_index(), which returns this element to indicate an error */
+                                 NULL
+};
+
+/* A few categories require additional setup when they are changed.  This table
+ * points to the functions that do that setup */
+STATIC void (*update_functions[]) (pTHX_ const char *, bool force) = {
+#  ifdef USE_LOCALE_CTYPE
+                                S_new_ctype,
+#  endif
+#  ifdef USE_LOCALE_NUMERIC
+                                S_new_numeric,
+#  endif
+#  ifdef USE_LOCALE_COLLATE
+                                S_new_collate,
+#  endif
+#  ifdef USE_LOCALE_TIME
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_MESSAGES
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_MONETARY
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_ADDRESS
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_IDENTIFICATION
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_MEASUREMENT
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_PAPER
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_TELEPHONE
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_NAME
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_SYNTAX
+                                NULL,
+#  endif
+#  ifdef USE_LOCALE_TOD
+                                NULL,
+#  endif
+    /* No harm done to have this even without an LC_ALL */
+                                S_new_LC_ALL,
+
+   /* Placeholder as a precaution if code fails to check the return of
+    * get_category_index(), which returns this element to indicate an error */
+                                NULL
+};
 
 #  ifdef LC_ALL
 
     /* On systems with LC_ALL, it is kept in the highest index position.  (-2
      * to account for the final unused placeholder element.) */
 #    define NOMINAL_LC_ALL_INDEX (C_ARRAY_LENGTH(categories) - 2)
-
 #  else
 
     /* On systems without LC_ALL, we pretend it is there, one beyond the real
      * top element, hence in the unused placeholder element. */
 #    define NOMINAL_LC_ALL_INDEX (C_ARRAY_LENGTH(categories) - 1)
-
 #  endif
 
 /* Pretending there is an LC_ALL element just above allows us to avoid most
  * special cases.  Most loops through these arrays in the code below are
  * written like 'for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++)'.  They will work
  * on either type of system.  But the code must be written to not access the
- * element at 'LC_ALL_INDEX' except on platforms that have it.  This can be
- * checked for at compile time by using the #define LC_ALL_INDEX which is only
+ * element at 'LC_ALL_INDEX_' except on platforms that have it.  This can be
+ * checked for at compile time by using the #define LC_ALL_INDEX_ which is only
  * defined if we do have LC_ALL. */
 
-STATIC const char *
-S_category_name(const int category)
+STATIC int
+S_get_category_index_nowarn(const int category)
 {
+    /* Given a category, return the equivalent internal index we generally use
+     * instead, or negative if not found.
+     *
+     * Some sort of hash could be used instead of this loop, but the number of
+     * elements is so far at most 12 */
+
     unsigned int i;
 
-#ifdef LC_ALL
+    PERL_ARGS_ASSERT_GET_CATEGORY_INDEX;
 
-    if (category == LC_ALL) {
-        return "LC_ALL";
+#  ifdef LC_ALL
+    for (i = 0; i <=         LC_ALL_INDEX_; i++)
+#  else
+    for (i = 0; i <  NOMINAL_LC_ALL_INDEX;  i++)
+#  endif
+    {
+        if (category == categories[i]) {
+            dTHX_DEBUGGING;
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                                   "index of category %d (%s) is %d\n",
+                                   category, category_names[i], i));
+            return i;
+        }
+    }
+
+    return -1;
+}
+
+STATIC unsigned int
+S_get_category_index(const int category, const char * locale)
+{
+    /* Given a category, return the equivalent internal index we generally use
+     * instead.
+     *
+     * 'locale' is for use in any generated diagnostics, and may be NULL
+     */
+
+    const char * conditional_warn_text = "; can't set it to ";
+    const int index = get_category_index_nowarn(category);
+
+    if (index >= 0) {
+        return index;
+    }
+
+    /* Here, we don't know about this category, so can't handle it. */
+
+    if (! locale) {
+        locale = "";
+        conditional_warn_text = "";
+    }
+
+    /* diag_listed_as: Unknown locale category %d; can't set it to %s */
+    Perl_warner_nocontext(packWARN(WARN_LOCALE),
+                          "Unknown locale category %d%s%s",
+                          category, conditional_warn_text, locale);
+
+    SET_EINVAL;
+
+    /* Return an out-of-bounds value */
+    return NOMINAL_LC_ALL_INDEX + 1;
+}
+
+#endif /* ifdef USE_LOCALE */
+
+void
+Perl_force_locale_unlock()
+{
+
+#if defined(USE_LOCALE_THREADS)
+
+    dTHX;
+
+    /* If recursively locked, clear all at once */
+    if (PL_locale_mutex_depth > 1) {
+        PL_locale_mutex_depth = 1;
+    }
+
+    if (PL_locale_mutex_depth > 0) {
+        LOCALE_UNLOCK_;
     }
 
 #endif
 
-    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
-        if (category == categories[i]) {
-            return category_names[i];
-        }
+}
+
+#ifdef USE_POSIX_2008_LOCALE
+
+STATIC locale_t
+S_use_curlocale_scratch(pTHX)
+{
+    /* This function is used to hide from the caller the case where the current
+     * locale_t object in POSIX 2008 is the global one, which is illegal in
+     * many of the P2008 API calls.  This checks for that and, if necessary
+     * creates a proper P2008 object.  Any prior object is deleted, as is any
+     * remaining object during global destruction. */
+
+    locale_t cur = uselocale((locale_t) 0);
+
+    if (cur != LC_GLOBAL_LOCALE) {
+        return cur;
     }
 
-    {
-        const char suffix[] = " (unknown)";
-        int temp = category;
-        Size_t length = sizeof(suffix) + 1;
-        char * unknown;
-        dTHX;
+    if (PL_scratch_locale_obj) {
+        freelocale(PL_scratch_locale_obj);
+    }
 
-        if (temp < 0) {
-            length++;
-            temp = - temp;
-        }
+    PL_scratch_locale_obj = duplocale(LC_GLOBAL_LOCALE);
+    return PL_scratch_locale_obj;
+}
 
-        /* Calculate the number of digits */
-        while (temp >= 10) {
-            temp /= 10;
-            length++;
-        }
+#endif
+
+void
+Perl_locale_panic(const char * msg,
+                  const char * file_name,
+                  const line_t line,
+                  const int errnum)
+{
+    dTHX;
+
+    PERL_ARGS_ASSERT_LOCALE_PANIC;
+
+    force_locale_unlock();
+
+#ifdef USE_C_BACKTRACE
+    dump_c_backtrace(Perl_debug_log, 20, 1);
+#endif
+
+    /* diag_listed_as: panic: %s */
+    Perl_croak(aTHX_ "%s: %" LINE_Tf ": panic: %s; errno=%d\n",
+                     file_name, line, msg, errnum);
+}
+
+#define setlocale_failure_panic_c(                                          \
+                        cat, current, failed, caller_0_line, caller_1_line) \
+        setlocale_failure_panic_i(cat##_INDEX_, current, failed,            \
+                        caller_0_line, caller_1_line)
+
+/* posix_setlocale() presents a consistent POSIX-compliant interface to
+ * setlocale().   Windows requres a customized base-level setlocale().  Any
+ * necessary mutex locking needs to be done at a higher level */
+#ifdef WIN32
+#  define posix_setlocale(cat, locale) win32_setlocale(cat, locale)
+#else
+#  define posix_setlocale(cat, locale) ((const char *) setlocale(cat, locale))
+#endif
+
+/* The next layer up is to catch vagaries and bugs in the libc setlocale return
+ * value.  Again, any necessary mutex locking needs to be done at a higher
+ * level */
+#ifdef stdize_locale
+#  define stdized_setlocale(cat, locale)                                       \
+     stdize_locale(cat, posix_setlocale(cat, locale),                          \
+                   &PL_stdize_locale_buf, &PL_stdize_locale_bufsize, __LINE__)
+#else
+#  define stdized_setlocale(cat, locale)  posix_setlocale(cat, locale)
+#endif
+
+/* The next many lines form a layer above the close-to-the-metal 'posix'
+ * and 'stdized' macros.  They are used to present a uniform API to the rest of
+ * the code in this file in spite of the disparate underlying implementations.
+ * */
+
+#if    (! defined(USE_LOCALE_THREADS) && ! defined(USE_POSIX_2008_LOCALE))    \
+    || (  defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE))
+
+/* For non-threaded perls, the added layer just expands to the base-level
+ * functions, except if we are supposed to use the POSIX 2008 interface anyway.
+ * On perls where threading is invisible to us, the base-level functions are
+ * used regardless of threading.  Currently this is only on later Windows
+ * versions.
+ *
+ * See the introductory comments in this file for the meaning of the suffixes
+ * '_c', '_r', '_i'. */
+
+#  define setlocale_r(cat, locale)        stdized_setlocale(cat, locale)
+#  define setlocale_i(i, locale)      setlocale_r(categories[i], locale)
+#  define setlocale_c(cat, locale)              setlocale_r(cat, locale)
+
+#  define void_setlocale_i(i, locale)                                       \
+    STMT_START {                                                            \
+        if (! posix_setlocale(categories[i], locale)) {                     \
+            setlocale_failure_panic_i(i, NULL, locale, __LINE__, 0);        \
+            NOT_REACHED; /* NOTREACHED */                                   \
+        }                                                                   \
+    } STMT_END
+#  define void_setlocale_c(cat, locale)                                     \
+                                  void_setlocale_i(cat##_INDEX_, locale)
+#  define void_setlocale_r(cat, locale)                                     \
+               void_setlocale_i(get_category_index(cat, locale), locale)
+
+#  define bool_setlocale_r(cat, locale) cBOOL(posix_setlocale(cat, locale))
+#  define bool_setlocale_i(i, locale)                                       \
+                                 bool_setlocale_c(categories[i], locale)
+#  define bool_setlocale_c(cat, locale)    bool_setlocale_r(cat, locale)
+
+/* All the querylocale...() forms return a mortalized copy.  If you need
+ * something stable across calls, you need to savepv() the result yourself */
+
+#  define querylocale_r(cat)        mortalized_pv_copy(setlocale_r(cat, NULL))
+#  define querylocale_c(cat)        querylocale_r(cat)
+#  define querylocale_i(i)          querylocale_c(categories[i])
+
+#elif   defined(USE_LOCALE_THREADS)                 \
+   && ! defined(USE_THREAD_SAFE_LOCALE)
+
+   /* Here, there are threads, and there is no support for thread-safe
+    * operation.  This is a dangerous situation, which perl is documented as
+    * not supporting, but it arises in practice.  We can do a modicum of
+    * automatic mitigation by making sure there is a per-thread return from
+    * setlocale(), and that a mutex protects it from races */
+STATIC const char *
+S_less_dicey_setlocale_r(pTHX_ const int category, const char * locale)
+{
+    const char * retval;
 
-        Newx(unknown, length, char);
-        my_snprintf(unknown, length, "%d%s", category, suffix);
-        SAVEFREEPV(unknown);
-        return unknown;
+    PERL_ARGS_ASSERT_LESS_DICEY_SETLOCALE_R;
+
+    POSIX_SETLOCALE_LOCK;
+
+    retval = stdized_setlocale(category, locale);
+
+    /* We reuse PL_stdize_locale_buf as it doesn't conflict, but the call may
+     * already have used it, in which case we don't have to do anything further
+     * */
+    retval = save_to_buffer(retval,
+                            &PL_stdize_locale_buf, &PL_stdize_locale_bufsize);
+
+    POSIX_SETLOCALE_UNLOCK;
+
+    return retval;
+}
+
+#  define setlocale_r(cat, locale)  less_dicey_setlocale_r(cat, locale)
+#  define setlocale_c(cat, locale)             setlocale_r(cat, locale)
+#  define setlocale_i(i, locale)     setlocale_r(categories[i], locale)
+
+#  define querylocale_r(cat)  mortalized_pv_copy(setlocale_r(cat, NULL))
+#  define querylocale_c(cat)                   querylocale_r(cat)
+#  define querylocale_i(i)                     querylocale_r(categories[i])
+
+STATIC void
+S_less_dicey_void_setlocale_i(pTHX_ const unsigned cat_index,
+                                    const char * locale,
+                                    const line_t line)
+{
+    PERL_ARGS_ASSERT_LESS_DICEY_VOID_SETLOCALE_I;
+
+    POSIX_SETLOCALE_LOCK;
+    if (! posix_setlocale(categories[cat_index], locale)) {
+        POSIX_SETLOCALE_UNLOCK;
+        setlocale_failure_panic_i(cat_index, NULL, locale, __LINE__, line);
     }
+    POSIX_SETLOCALE_UNLOCK;
+}
+
+#  define void_setlocale_i(i, locale)                                       \
+                          less_dicey_void_setlocale_i(i, locale, __LINE__)
+#  define void_setlocale_c(cat, locale)                                     \
+                          void_setlocale_i(cat##_INDEX_, locale)
+#  define void_setlocale_r(cat, locale)                                     \
+       void_setlocale_i(get_category_index(cat, locale), locale)
+
+#  if 0     /* Not currently used */
+
+STATIC bool
+S_less_dicey_bool_setlocale_r(pTHX_ const int cat, const char * locale)
+{
+    bool retval;
+
+    PERL_ARGS_ASSERT_LESS_DICEY_BOOL_SETLOCALE_R;
+
+    POSIX_SETLOCALE_LOCK;
+    retval = cBOOL(posix_setlocale(cat, locale));
+    POSIX_SETLOCALE_UNLOCK;
+
+    return retval;
 }
 
-/* Now create LC_foo_INDEX #defines for just those categories on this system */
-#  ifdef USE_LOCALE_NUMERIC
-#    define LC_NUMERIC_INDEX            0
-#    define _DUMMY_NUMERIC              LC_NUMERIC_INDEX
-#  else
-#    define _DUMMY_NUMERIC              -1
 #  endif
+#  define bool_setlocale_r(cat, locale)                                 \
+                               less_dicey_bool_setlocale_r(cat, locale)
+#  define bool_setlocale_i(i, locale)                                   \
+                                bool_setlocale_r(categories[i], locale)
+#  define bool_setlocale_c(cat, locale) bool_setlocale_r(cat, locale)
+#else
+
+/* Here, there is a completely different API to get thread-safe locales.  We
+ * emulate the setlocale() API with our own function(s).  setlocale categories,
+ * like LC_NUMERIC, are not valid here for the POSIX 2008 API.  Instead, there
+ * are equivalents, like LC_NUMERIC_MASK, which we use instead, converting to
+ * by using get_category_index() followed by table lookup. */
+
+#  define emulate_setlocale_c(cat, locale, recalc_LC_ALL, line)             \
+           emulate_setlocale_i(cat##_INDEX_, locale, recalc_LC_ALL, line)
+
+     /* A wrapper for the macros below. */
+#  define common_emulate_setlocale(i, locale)                               \
+                 emulate_setlocale_i(i, locale, YES_RECALC_LC_ALL, __LINE__)
+
+#  define setlocale_i(i, locale)                                            \
+     save_to_buffer(common_emulate_setlocale(i, locale),                    \
+                                             &PL_stdize_locale_buf,         \
+                                             &PL_stdize_locale_bufsize)
+#  define setlocale_c(cat, locale)     setlocale_i(cat##_INDEX_, locale)
+#  define setlocale_r(cat, locale)                                          \
+                    setlocale_i(get_category_index(cat, locale), locale)
+
+#  define void_setlocale_i(i, locale)                                       \
+                             ((void) common_emulate_setlocale(i, locale))
+#  define void_setlocale_c(cat, locale)                                     \
+                                  void_setlocale_i(cat##_INDEX_, locale)
+#  define void_setlocale_r(cat, locale) ((void) setlocale_r(cat, locale))
+
+#  define bool_setlocale_i(i, locale)                                       \
+                               cBOOL(common_emulate_setlocale(i, locale))
+#  define bool_setlocale_c(cat, locale)                                     \
+                                  bool_setlocale_i(cat##_INDEX_, locale)
+#  define bool_setlocale_r(cat, locale)   cBOOL(setlocale_r(cat, locale))
+
+#  define querylocale_i(i)      mortalized_pv_copy(my_querylocale_i(i))
+#  define querylocale_c(cat)    querylocale_i(cat##_INDEX_)
+#  define querylocale_r(cat)    querylocale_i(get_category_index(cat,NULL))
+
+#  ifdef USE_QUERYLOCALE
+#    define isSINGLE_BIT_SET(mask) isPOWER_OF_2(mask)
+
+     /* This code used to think querylocale() was valid on LC_ALL.  Make sure
+      * all instances of that have been removed */
+#    define QUERYLOCALE_ASSERT(index)                                       \
+                        __ASSERT_(isSINGLE_BIT_SET(category_masks[index]))
+#    if ! defined(HAS_QUERYLOCALE) && (   defined(_NL_LOCALE_NAME)          \
+                                       && defined(HAS_NL_LANGINFO_L))
+#      define querylocale_l(index, locale_obj)                              \
+            (QUERYLOCALE_ASSERT(index)                                      \
+             mortalized_pv_copy(nl_langinfo_l(                              \
+                         _NL_LOCALE_NAME(categories[index]), locale_obj)))
+#    else
+#      define querylocale_l(index, locale_obj)                              \
+        (QUERYLOCALE_ASSERT(index)                                          \
+         mortalized_pv_copy(querylocale(category_masks[index], locale_obj)))
+#    endif
+#  endif
+#  if defined(__GLIBC__) && defined(USE_LOCALE_MESSAGES)
+#    define HAS_GLIBC_LC_MESSAGES_BUG
+#    include <libintl.h>
+#  endif
+
+/* A fourth array, parallel to the ones above to map from category to its
+ * equivalent mask */
+STATIC const int category_masks[] = {
 #  ifdef USE_LOCALE_CTYPE
-#    define LC_CTYPE_INDEX              _DUMMY_NUMERIC + 1
-#    define _DUMMY_CTYPE                LC_CTYPE_INDEX
-#  else
-#    define _DUMMY_CTYPE                _DUMMY_NUMERIC
+                                LC_CTYPE_MASK,
+#  endif
+#  ifdef USE_LOCALE_NUMERIC
+                                LC_NUMERIC_MASK,
 #  endif
 #  ifdef USE_LOCALE_COLLATE
-#    define LC_COLLATE_INDEX            _DUMMY_CTYPE + 1
-#    define _DUMMY_COLLATE              LC_COLLATE_INDEX
-#  else
-#    define _DUMMY_COLLATE              _DUMMY_CTYPE
+                                LC_COLLATE_MASK,
 #  endif
 #  ifdef USE_LOCALE_TIME
-#    define LC_TIME_INDEX               _DUMMY_COLLATE + 1
-#    define _DUMMY_TIME                 LC_TIME_INDEX
-#  else
-#    define _DUMMY_TIME                 _DUMMY_COLLATE
+                                LC_TIME_MASK,
 #  endif
 #  ifdef USE_LOCALE_MESSAGES
-#    define LC_MESSAGES_INDEX           _DUMMY_TIME + 1
-#    define _DUMMY_MESSAGES             LC_MESSAGES_INDEX
-#  else
-#    define _DUMMY_MESSAGES             _DUMMY_TIME
+                                LC_MESSAGES_MASK,
 #  endif
 #  ifdef USE_LOCALE_MONETARY
-#    define LC_MONETARY_INDEX           _DUMMY_MESSAGES + 1
-#    define _DUMMY_MONETARY             LC_MONETARY_INDEX
-#  else
-#    define _DUMMY_MONETARY             _DUMMY_MESSAGES
+                                LC_MONETARY_MASK,
 #  endif
 #  ifdef USE_LOCALE_ADDRESS
-#    define LC_ADDRESS_INDEX            _DUMMY_MONETARY + 1
-#    define _DUMMY_ADDRESS              LC_ADDRESS_INDEX
-#  else
-#    define _DUMMY_ADDRESS              _DUMMY_MONETARY
+                                LC_ADDRESS_MASK,
 #  endif
 #  ifdef USE_LOCALE_IDENTIFICATION
-#    define LC_IDENTIFICATION_INDEX     _DUMMY_ADDRESS + 1
-#    define _DUMMY_IDENTIFICATION       LC_IDENTIFICATION_INDEX
-#  else
-#    define _DUMMY_IDENTIFICATION       _DUMMY_ADDRESS
+                                LC_IDENTIFICATION_MASK,
 #  endif
 #  ifdef USE_LOCALE_MEASUREMENT
-#    define LC_MEASUREMENT_INDEX        _DUMMY_IDENTIFICATION + 1
-#    define _DUMMY_MEASUREMENT          LC_MEASUREMENT_INDEX
-#  else
-#    define _DUMMY_MEASUREMENT          _DUMMY_IDENTIFICATION
+                                LC_MEASUREMENT_MASK,
 #  endif
 #  ifdef USE_LOCALE_PAPER
-#    define LC_PAPER_INDEX              _DUMMY_MEASUREMENT + 1
-#    define _DUMMY_PAPER                LC_PAPER_INDEX
-#  else
-#    define _DUMMY_PAPER                _DUMMY_MEASUREMENT
+                                LC_PAPER_MASK,
 #  endif
 #  ifdef USE_LOCALE_TELEPHONE
-#    define LC_TELEPHONE_INDEX          _DUMMY_PAPER + 1
-#    define _DUMMY_TELEPHONE            LC_TELEPHONE_INDEX
-#  else
-#    define _DUMMY_TELEPHONE            _DUMMY_PAPER
+                                LC_TELEPHONE_MASK,
+#  endif
+#  ifdef USE_LOCALE_NAME
+                                LC_NAME_MASK,
 #  endif
 #  ifdef USE_LOCALE_SYNTAX
-#    define LC_SYNTAX_INDEX             _DUMMY_TELEPHONE + 1
-#    define _DUMMY_SYNTAX               LC_SYNTAX_INDEX
-#  else
-#    define _DUMMY_SYNTAX               _DUMMY_TELEPHONE
+                                LC_SYNTAX_MASK,
 #  endif
 #  ifdef USE_LOCALE_TOD
-#    define LC_TOD_INDEX                _DUMMY_SYNTAX + 1
-#    define _DUMMY_TOD                  LC_TOD_INDEX
-#  else
-#    define _DUMMY_TOD                  _DUMMY_SYNTAX
-#  endif
-#  ifdef LC_ALL
-#    define LC_ALL_INDEX                _DUMMY_TOD + 1
-#  endif
-#endif /* ifdef USE_LOCALE */
-
-/* Windows requres a customized base-level setlocale() */
-#ifdef WIN32
-#  define my_setlocale(cat, locale) win32_setlocale(cat, locale)
-#else
-#  define my_setlocale(cat, locale) setlocale(cat, locale)
-#endif
-
-#ifndef USE_POSIX_2008_LOCALE
-
-/* "do_setlocale_c" is intended to be called when the category is a constant
- * known at compile time; "do_setlocale_r", not known until run time  */
-#  define do_setlocale_c(cat, locale) my_setlocale(cat, locale)
-#  define do_setlocale_r(cat, locale) my_setlocale(cat, locale)
-#  define FIX_GLIBC_LC_MESSAGES_BUG(i)
-
-#else   /* Below uses POSIX 2008 */
-
-/* We emulate setlocale with our own function.  LC_foo is not valid for the
- * POSIX 2008 functions.  Instead LC_foo_MASK is used, which we use an array
- * lookup to convert to.  At compile time we have defined LC_foo_INDEX as the
- * proper offset into the array 'category_masks[]'.  At runtime, we have to
- * search through the array (as the actual numbers may not be small contiguous
- * positive integers which would lend themselves to array lookup). */
-#  define do_setlocale_c(cat, locale)                                       \
-                        emulate_setlocale(cat, locale, cat ## _INDEX, TRUE)
-#  define do_setlocale_r(cat, locale) emulate_setlocale(cat, locale, 0, FALSE)
-
-#  if ! defined(__GLIBC__) || ! defined(USE_LOCALE_MESSAGES)
-
-#    define FIX_GLIBC_LC_MESSAGES_BUG(i)
-
-#  else /* Invalidate glibc cache of loaded translations, see [perl #134264] */
-
-#    include <libintl.h>
-#    define FIX_GLIBC_LC_MESSAGES_BUG(i)                                        \
-        STMT_START {                                                        \
-            if ((i) == LC_MESSAGES_INDEX) {                                 \
-                textdomain(textdomain(NULL));                               \
-            }                                                               \
-        } STMT_END
-
-#  endif
-
-/* A third array, parallel to the ones above to map from category to its
- * equivalent mask */
-const int category_masks[] = {
-#  ifdef USE_LOCALE_NUMERIC
-                                LC_NUMERIC_MASK,
-#  endif
-#  ifdef USE_LOCALE_CTYPE
-                                LC_CTYPE_MASK,
-#  endif
-#  ifdef USE_LOCALE_COLLATE
-                                LC_COLLATE_MASK,
-#  endif
-#  ifdef USE_LOCALE_TIME
-                                LC_TIME_MASK,
-#  endif
-#  ifdef USE_LOCALE_MESSAGES
-                                LC_MESSAGES_MASK,
-#  endif
-#  ifdef USE_LOCALE_MONETARY
-                                LC_MONETARY_MASK,
-#  endif
-#  ifdef USE_LOCALE_ADDRESS
-                                LC_ADDRESS_MASK,
-#  endif
-#  ifdef USE_LOCALE_IDENTIFICATION
-                                LC_IDENTIFICATION_MASK,
-#  endif
-#  ifdef USE_LOCALE_MEASUREMENT
-                                LC_MEASUREMENT_MASK,
-#  endif
-#  ifdef USE_LOCALE_PAPER
-                                LC_PAPER_MASK,
-#  endif
-#  ifdef USE_LOCALE_TELEPHONE
-                                LC_TELEPHONE_MASK,
-#  endif
-#  ifdef USE_LOCALE_SYNTAX
-                                LC_SYNTAX_MASK,
-#  endif
-#  ifdef USE_LOCALE_TOD
-                                LC_TOD_MASK,
+                                LC_TOD_MASK,
 #  endif
                                 /* LC_ALL can't be turned off by a Configure
                                  * option, and in Posix 2008, should always be
                                  * here, so compile it in unconditionally.
                                  * This could catch some glitches at compile
                                  * time */
-                                LC_ALL_MASK
-                            };
+                                LC_ALL_MASK,
+
+   /* Placeholder as a precaution if code fails to check the return of
+    * get_category_index(), which returns this element to indicate an error */
+                                0
+};
+
+#  define my_querylocale_c(cat) my_querylocale_i(cat##_INDEX_)
 
 STATIC const char *
-S_emulate_setlocale(const int category,
-                    const char * locale,
-                    unsigned int index,
-                    const bool is_index_valid
-                   )
+S_my_querylocale_i(pTHX_ const unsigned int index)
 {
-    /* This function effectively performs a setlocale() on just the current
-     * thread; thus it is thread-safe.  It does this by using the POSIX 2008
-     * locale functions to emulate the behavior of setlocale().  Similar to
-     * regular setlocale(), the return from this function points to memory that
-     * can be overwritten by other system calls, so needs to be copied
-     * immediately if you need to retain it.  The difference here is that
-     * system calls besides another setlocale() can overwrite it.
-     *
-     * By doing this, most locale-sensitive functions become thread-safe.  The
-     * exceptions are mostly those that return a pointer to static memory.
-     *
-     * This function takes the same parameters, 'category' and 'locale', that
-     * the regular setlocale() function does, but it also takes two additional
-     * ones.  This is because the 2008 functions don't use a category; instead
-     * they use a corresponding mask.  Because this function operates in both
-     * worlds, it may need one or the other or both.  This function can
-     * calculate the mask from the input category, but to avoid this
-     * calculation, if the caller knows at compile time what the mask is, it
-     * can pass it, setting 'is_index_valid' to TRUE; otherwise the mask
-     * parameter is ignored.
+    /* This function returns the name of the locale category given by the input
+     * index into our parallel tables of them.
      *
      * POSIX 2008, for some sick reason, chose not to provide a method to find
-     * the category name of a locale.  Some vendors have created a
-     * querylocale() function to do just that.  This function is a lot simpler
-     * to implement on systems that have this.  Otherwise, we have to keep
-     * track of what the locale has been set to, so that we can return its
-     * name to emulate setlocale().  It's also possible for C code in some
-     * library to change the locale without us knowing it, though as of
+     * the category name of a locale, discarding a basic linguistic tenet that
+     * for any object, people will create a name for it.  Some vendors have
+     * created a querylocale() function to do just that.  This function is a
+     * lot simpler to implement on systems that have this.  Otherwise, we have
+     * to keep track of what the locale has been set to, so that we can return
+     * its name so as to emulate setlocale().  It's also possible for C code in
+     * some library to change the locale without us knowing it, though as of
      * September 2017, there are no occurrences in CPAN of uselocale().  Some
      * libraries do use setlocale(), but that changes the global locale, and
-     * threads using per-thread locales will just ignore those changes.
-     * Another problem is that without querylocale(), we have to guess at what
-     * was meant by setting a locale of "".  We handle this by not actually
-     * ever setting to "" (unless querylocale exists), but to emulate what we
-     * think should happen for "".
-     */
-
-    int mask;
-    locale_t old_obj;
-    locale_t new_obj;
-    const char * safelocale = locale ? locale : "(null)";
-    dTHX;
+     * threads using per-thread locales will just ignore those changes. */
 
-#  ifdef DEBUGGING
+    int category;
+    const locale_t cur_obj = uselocale((locale_t) 0);
+    const char * retval;
 
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale input=%d (%s), \"%s\", %d, %d\n", __FILE__, __LINE__, category, category_name(category), safelocale, index, is_index_valid);
-    }
+    PERL_ARGS_ASSERT_MY_QUERYLOCALE_I;
+    assert(index <= NOMINAL_LC_ALL_INDEX);
 
-#  endif
+    category = categories[index];
 
-    /* If the input mask might be incorrect, calculate the correct one */
-    if (! is_index_valid) {
-        unsigned int i;
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log, "my_querylocale_i(%s) on %p\n",
+                                           category_names[index], cur_obj));
+    if (cur_obj == LC_GLOBAL_LOCALE) {
+        POSIX_SETLOCALE_LOCK;
+        retval = posix_setlocale(category, NULL);
+        POSIX_SETLOCALE_UNLOCK;
+    }
+    else {
 
-#  ifdef DEBUGGING
+#  ifdef USE_QUERYLOCALE
 
-        if (DEBUG_Lv_TEST || debug_initialization) {
-            PerlIO_printf(Perl_debug_log, "%s:%d: finding index of category %d (%s)\n", __FILE__, __LINE__, category, category_name(category));
-        }
+        /* We don't currently keep records when there is querylocale(), so have
+         * to get it anew each time */
+        retval = (index == LC_ALL_INDEX_)
+                 ? calculate_LC_ALL(cur_obj)
+                 : querylocale_l(index, cur_obj);
 
-#  endif
+#  else
 
-        for (i = 0; i <= LC_ALL_INDEX; i++) {
-            if (category == categories[i]) {
-                index = i;
-                goto found_index;
-            }
+        /* But we do have up-to-date values when we keep our own records
+         * (except some times in initialization, where we get the value from
+         * the system. */
+        const char ** which  = (index == LC_ALL_INDEX_)
+                               ? &PL_cur_LC_ALL
+                               : &PL_curlocales[index];
+        if (*which == NULL) {
+            retval = stdized_setlocale(category, NULL);
+            *which = savepv(retval);
         }
-
-        /* Here, we don't know about this category, so can't handle it.
-         * Fallback to the early POSIX usages */
-        Perl_warner(aTHX_ packWARN(WARN_LOCALE),
-                            "Unknown locale category %d; can't set it to %s\n",
-                                                     category, safelocale);
-        return NULL;
-
-      found_index: ;
-
-#  ifdef DEBUGGING
-
-        if (DEBUG_Lv_TEST || debug_initialization) {
-            PerlIO_printf(Perl_debug_log, "%s:%d: index is %d for %s\n", __FILE__, __LINE__, index, category_name(category));
+        else {
+            retval = *which;
         }
 
 #  endif
 
     }
 
-    mask = category_masks[index];
-
-#  ifdef DEBUGGING
-
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log, "%s:%d: category name is %s; mask is 0x%x\n", __FILE__, __LINE__, category_names[index], mask);
-    }
-
-#  endif
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                           "my_querylocale_i(%s) returning '%s'\n",
+                           category_names[index], retval));
+    assert(strNE(retval, ""));
+    return retval;
+}
 
-    /* If just querying what the existing locale is ... */
-    if (locale == NULL) {
-        locale_t cur_obj = uselocale((locale_t) 0);
+#  ifdef USE_PL_CURLOCALES
 
-#  ifdef DEBUGGING
+STATIC const char *
+S_update_PL_curlocales_i(pTHX_
+                         const unsigned int index,
+                         const char * new_locale,
+                         recalc_lc_all_t recalc_LC_ALL)
+{
+    /* This is a helper function for emulate_setlocale_i(), mostly used to
+     * make that function easier to read. */
 
-        if (DEBUG_Lv_TEST || debug_initialization) {
-            PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale querying %p\n", __FILE__, __LINE__, cur_obj);
-        }
+    PERL_ARGS_ASSERT_UPDATE_PL_CURLOCALES_I;
+    assert(index <= NOMINAL_LC_ALL_INDEX);
 
-#  endif
+    if (index == LC_ALL_INDEX_) {
+        unsigned int i;
 
-        if (cur_obj == LC_GLOBAL_LOCALE) {
-            return my_setlocale(category, NULL);
+        /* For LC_ALL, we change all individual categories to correspond */
+                         /* PL_curlocales is a parallel array, so has same
+                          * length as 'categories' */
+        for (i = 0; i < LC_ALL_INDEX_; i++) {
+            Safefree(PL_curlocales[i]);
+            PL_curlocales[i] = savepv(new_locale);
         }
 
-#  ifdef HAS_QUERYLOCALE
-
-        return (char *) querylocale(mask, cur_obj);
+        Safefree(PL_cur_LC_ALL);
+        PL_cur_LC_ALL = savepv(calculate_LC_ALL(PL_curlocales));
+        return PL_cur_LC_ALL;
+    }
 
-#  else
+    /* Update the single category's record */
+    Safefree(PL_curlocales[index]);
+    PL_curlocales[index] = savepv(new_locale);
 
-        /* If this assert fails, adjust the size of curlocales in intrpvar.h */
-        STATIC_ASSERT_STMT(C_ARRAY_LENGTH(PL_curlocales) > LC_ALL_INDEX);
+    /* And also LC_ALL if the input says to, including if this is the final
+     * iteration of a loop updating all sub-categories */
+    if (   recalc_LC_ALL == YES_RECALC_LC_ALL
+        || (   recalc_LC_ALL == RECALCULATE_LC_ALL_ON_FINAL_INTERATION
+            && index == NOMINAL_LC_ALL_INDEX - 1))
+    {
+        Safefree(PL_cur_LC_ALL);
+        PL_cur_LC_ALL = savepv(calculate_LC_ALL(PL_curlocales));
+    }
 
-#    if   defined(_NL_LOCALE_NAME)                                          \
-     &&   defined(DEBUGGING)                                                \
-          /* On systems that accept any locale name, the real underlying    \
-           * locale is often returned by this internal function, so we      \
-           * can't use it */                                                \
-     && ! defined(SETLOCALE_ACCEPTS_ANY_LOCALE_NAME)
-        {
-            /* Internal glibc for querylocale(), but doesn't handle
-             * empty-string ("") locale properly; who knows what other
-             * glitches.  Check for it now, under debug. */
-
-            char * temp_name = nl_langinfo_l(_NL_LOCALE_NAME(category),
-                                             uselocale((locale_t) 0));
-            /*
-            PerlIO_printf(Perl_debug_log, "%s:%d: temp_name=%s\n", __FILE__, __LINE__, temp_name ? temp_name : "NULL");
-            PerlIO_printf(Perl_debug_log, "%s:%d: index=%d\n", __FILE__, __LINE__, index);
-            PerlIO_printf(Perl_debug_log, "%s:%d: PL_curlocales[index]=%s\n", __FILE__, __LINE__, PL_curlocales[index]);
-            */
-            if (temp_name && PL_curlocales[index] && strNE(temp_name, "")) {
-                if (         strNE(PL_curlocales[index], temp_name)
-                    && ! (   isNAME_C_OR_POSIX(temp_name)
-                          && isNAME_C_OR_POSIX(PL_curlocales[index]))) {
+    return PL_curlocales[index];
+}
 
-#      ifdef USE_C_BACKTRACE
+#  endif  /* Need PL_curlocales[] */
 
-                    dump_c_backtrace(Perl_debug_log, 20, 1);
+STATIC const char *
+S_setlocale_from_aggregate_LC_ALL(pTHX_ const char * locale, const line_t line)
+{
+    /* This function parses the value of the LC_ALL locale, assuming glibc
+     * syntax, and sets each individual category on the system to the proper
+     * value.
+     *
+     * This is likely to only ever be called from one place, so exists to make
+     * the calling function easier to read by moving this ancillary code out of
+     * the main line.
+     *
+     * The locale for each category is independent of the other categories.
+     * Often, they are all the same, but certainly not always.  Perl, in fact,
+     * usually keeps LC_NUMERIC in the C locale, regardless of the underlying
+     * locale.  LC_ALL has to be able to represent the case of when there are
+     * varying locales.  Platforms have differing ways of representing this.
+     * Because of this, the code in this file goes to lengths to avoid the
+     * issue, generally looping over the component categories instead of
+     * referring to them in the aggregate, wherever possible.  However, there
+     * are cases where we have to parse our own constructed aggregates, which use
+     * the glibc syntax. */
+
+    const char * locale_on_entry = querylocale_c(LC_ALL);
+
+    PERL_ARGS_ASSERT_SETLOCALE_FROM_AGGREGATE_LC_ALL;
+
+    /* If the string that gives what to set doesn't include all categories,
+     * the omitted ones get set to "C".  To get this behavior, first set
+     * all the individual categories to "C", and override the furnished
+     * ones below.  FALSE => No need to recalculate LC_ALL, as this is a
+     * temporary state */
+    if (! emulate_setlocale_c(LC_ALL, "C", DONT_RECALC_LC_ALL, line)) {
+        setlocale_failure_panic_c(LC_ALL, locale_on_entry,
+                                  "C", __LINE__, line);
+        NOT_REACHED; /* NOTREACHED */
+    }
+
+    const char * s = locale;
+    const char * e = locale + strlen(locale);
+    while (s < e) {
+        const char * p = s;
 
-#      endif
+        /* Parse through the category */
+        while (isWORDCHAR(*p)) {
+            p++;
+        }
 
-                    Perl_croak(aTHX_ "panic: Mismatch between what Perl thinks %s is"
-                                     " (%s) and what internal glibc thinks"
-                                     " (%s)\n", category_names[index],
-                                     PL_curlocales[index], temp_name);
-                }
+        const char * category_end = p;
 
-                return temp_name;
-            }
+        if (*p++ != '=') {
+            locale_panic_(Perl_form(aTHX_
+                          "Unexpected character in locale category name '%s"
+                          "<-- HERE",
+                          get_displayable_string(s, p - 1, 0)));
         }
 
-#    endif
+        /* Parse through the locale name */
+        const char * name_start = p;
+        while (p < e && *p != ';') {
+            p++;
+        }
+        if (UNLIKELY( p < e && *p != ';')) {
+            locale_panic_(Perl_form(aTHX_
+                          "Unexpected character in locale name '%s<-- HERE",
+                          get_displayable_string(s, p, 0)));
+        }
 
-        /* Without querylocale(), we have to use our record-keeping we've
-         *  done. */
+        const char * name_end = p;
 
-        if (category != LC_ALL) {
+        /* Space past the semi-colon */
+        if (p < e) {
+            p++;
+        }
 
-#    ifdef DEBUGGING
+        /* Find the index of the category name in our lists */
+        for (PERL_UINT_FAST8_T i = 0; i < LC_ALL_INDEX_; i++) {
 
-            if (DEBUG_Lv_TEST || debug_initialization) {
-                PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale returning %s\n", __FILE__, __LINE__, PL_curlocales[index]);
+            /* Keep going if this index doesn't point to the category being
+             * parsed.  The strnNE() avoids a Perl_form(), but would fail if
+             * ever a category name could be a substring of another one, e.g.,
+             * if there were a "LC_TIME_DATE" */
+            if strnNE(s, category_names[i], category_end - s) {
+                continue;
             }
 
-#    endif
-
-            return PL_curlocales[index];
-        }
-        else {  /* For LC_ALL */
-            unsigned int i;
-            Size_t names_len = 0;
-            char * all_string;
-            bool are_all_categories_the_same_locale = TRUE;
-
-            /* If we have a valid LC_ALL value, just return it */
-            if (PL_curlocales[LC_ALL_INDEX]) {
+            /* Here i points to the category being parsed.  Now isolate the
+             * locale it is being changed to */
+            const char * individ_locale = Perl_form(aTHX_ "%.*s",
+                                (int) (name_end - name_start), name_start);
 
-#    ifdef DEBUGGING
+            /* And do the change.  Don't recalculate LC_ALL; we'll do it
+             * ourselves after the loop */
+            if (! emulate_setlocale_i(i, individ_locale,
+                                      DONT_RECALC_LC_ALL, line))
+            {
 
-                if (DEBUG_Lv_TEST || debug_initialization) {
-                    PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale returning %s\n", __FILE__, __LINE__, PL_curlocales[LC_ALL_INDEX]);
+                /* But if we have to back out, do fix up LC_ALL */
+                if (! emulate_setlocale_c(LC_ALL, locale_on_entry,
+                                          YES_RECALC_LC_ALL, line))
+                {
+                    setlocale_failure_panic_i(i, individ_locale,
+                                              locale, __LINE__, line);
+                    NOT_REACHED; /* NOTREACHED */
                 }
 
-#    endif
-
-                return PL_curlocales[LC_ALL_INDEX];
+                /* Reverting to the entry value succeeded, but the operation
+                 * failed to go to the requested locale. */
+                return NULL;
             }
 
-            /* Otherwise, we need to construct a string of name=value pairs.
-             * We use the glibc syntax, like
-             *      LC_NUMERIC=C;LC_TIME=en_US.UTF-8;...
-             *  First calculate the needed size.  Along the way, check if all
-             *  the locale names are the same */
-            for (i = 0; i < LC_ALL_INDEX; i++) {
-
-#    ifdef DEBUGGING
-
-                if (DEBUG_Lv_TEST || debug_initialization) {
-                    PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale i=%d, name=%s, locale=%s\n", __FILE__, __LINE__, i, category_names[i], PL_curlocales[i]);
-                }
+            /* Found and handled the desired category.  Quit the inner loop to
+             * try the next category */
+            break;
+        }
 
-#    endif
+        /* Finished with this category; iterate to the next one in the input */
+        s = p;
+    }
 
-                names_len += strlen(category_names[i])
-                          + 1                       /* '=' */
-                          + strlen(PL_curlocales[i])
-                          + 1;                      /* ';' */
+#    ifdef USE_PL_CURLOCALES
 
-                if (i > 0 && strNE(PL_curlocales[i], PL_curlocales[i-1])) {
-                    are_all_categories_the_same_locale = FALSE;
-                }
-            }
+    /* Here we have set all the individual categories.  Update the LC_ALL entry
+     * as well.  We can't just use the input 'locale' as the value may omit
+     * categories whose locale is 'C'.  khw thinks it's better to store a
+     * complete LC_ALL.  So calculate it. */
+    const char * retval = savepv(calculate_LC_ALL(PL_curlocales));
+    Safefree(PL_cur_LC_ALL);
+    PL_cur_LC_ALL = retval;
 
-            /* If they are the same, we don't actually have to construct the
-             * string; we just make the entry in LC_ALL_INDEX valid, and be
-             * that single name */
-            if (are_all_categories_the_same_locale) {
-                PL_curlocales[LC_ALL_INDEX] = savepv(PL_curlocales[0]);
-                return PL_curlocales[LC_ALL_INDEX];
-            }
+#    else
 
-            names_len++;    /* Trailing '\0' */
-            SAVEFREEPV(Newx(all_string, names_len, char));
-            *all_string = '\0';
+    const char * retval = querylocale_c(LC_ALL);
 
-            /* Then fill in the string */
-            for (i = 0; i < LC_ALL_INDEX; i++) {
+#    endif
 
-#    ifdef DEBUGGING
+    return retval;
+}
 
-                if (DEBUG_Lv_TEST || debug_initialization) {
-                    PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale i=%d, name=%s, locale=%s\n", __FILE__, __LINE__, i, category_names[i], PL_curlocales[i]);
-                }
+STATIC const char *
+S_emulate_setlocale_i(pTHX_
 
-#    endif
+        /* Our internal index of the 'category' setlocale is called with */
+        const unsigned int index,
 
-                my_strlcat(all_string, category_names[i], names_len);
-                my_strlcat(all_string, "=", names_len);
-                my_strlcat(all_string, PL_curlocales[i], names_len);
-                my_strlcat(all_string, ";", names_len);
-            }
+        const char * new_locale, /* The locale to set the category to */
+        const recalc_lc_all_t recalc_LC_ALL,  /* Explained below */
+        const line_t line     /* Called from this line number */
+       )
+{
+    PERL_ARGS_ASSERT_EMULATE_SETLOCALE_I;
+    assert(index <= NOMINAL_LC_ALL_INDEX);
 
-#    ifdef DEBUGGING
+    /* Otherwise could have undefined behavior, as the return of this function
+     * may be copied to this buffer, which this function could change in the
+     * middle of its work */
+    assert(new_locale != PL_stdize_locale_buf);
 
-            if (DEBUG_L_TEST || debug_initialization) {
-                PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale returning %s\n", __FILE__, __LINE__, all_string);
-            }
+    /* This function effectively performs a setlocale() on just the current
+     * thread; thus it is thread-safe.  It does this by using the POSIX 2008
+     * locale functions to emulate the behavior of setlocale().  Similar to
+     * regular setlocale(), the return from this function points to memory that
+     * can be overwritten by other system calls, so needs to be copied
+     * immediately if you need to retain it.  The difference here is that
+     * system calls besides another setlocale() can overwrite it.
+     *
+     * By doing this, most locale-sensitive functions become thread-safe.  The
+     * exceptions are mostly those that return a pointer to static memory.
+     *
+     * This function may be called in a tight loop that iterates over all
+     * categories.  Because LC_ALL is not a "real" category, but merely the sum
+     * of all the other ones, such loops don't include LC_ALL.  On systems that
+     * have querylocale() or similar, the current LC_ALL value is immediately
+     * retrievable; on systems lacking that feature, we have to keep track of
+     * LC_ALL ourselves.  We could do that on each iteration, only to throw it
+     * away on the next, but the calculation is more than a trivial amount of
+     * work.  Instead, the 'recalc_LC_ALL' parameter is set to
+     * RECALCULATE_LC_ALL_ON_FINAL_INTERATION to only do the calculation once.
+     * This function calls itself recursively in such a loop.
+     *
+     * When not in such a loop, the parameter is set to the other enum values
+     * DONT_RECALC_LC_ALL or YES_RECALC_LC_ALL. */
 
-    #endif
+    int mask = category_masks[index];
+    const locale_t entry_obj = uselocale((locale_t) 0);
+    const char * locale_on_entry = querylocale_i(index);
 
-            return all_string;
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+             "emulate_setlocale_i input=%d (%s), mask=0x%x,"
+             " new locale=\"%s\", current locale=\"%s\","
+             "index=%d, object=%p\n",
+             categories[index], category_names[index], mask,
+             ((new_locale == NULL) ? "(nil)" : new_locale),
+             locale_on_entry, index, entry_obj));
+
+    /* Return the already-calculated info if just querying what the existing
+     * locale is */
+    if (new_locale == NULL) {
+        return locale_on_entry;
+    }
+
+    /* Here, trying to change the locale, but it is a no-op if the new boss is
+     * the same as the old boss.  Except this routine is called when converting
+     * from the global locale, so in that case we will create a per-thread
+     * locale below (with the current values).  It also seemed that newlocale()
+     * could free up the basis locale memory if we called it with the new and
+     * old being the same, but khw now thinks that this was due to some other
+     * bug, since fixed, as there are other places where newlocale() gets
+     * similarly called without problems. */
+    if (   entry_obj != LC_GLOBAL_LOCALE
+        && locale_on_entry
+        && strEQ(new_locale, locale_on_entry))
+    {
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                 "(%" LINE_Tf "): emulate_setlocale_i"
+                 " no-op to change to what it already was\n",
+                 line));
+
+#  ifdef USE_PL_CURLOCALES
+
+       /* On the final iteration of a loop that needs to recalculate LC_ALL, do
+        * so.  If no iteration changed anything, LC_ALL also doesn't change,
+        * but khw believes the complexity needed to keep track of that isn't
+        * worth it. */
+        if (UNLIKELY(   recalc_LC_ALL == RECALCULATE_LC_ALL_ON_FINAL_INTERATION
+                     && index == NOMINAL_LC_ALL_INDEX - 1))
+        {
+            Safefree(PL_cur_LC_ALL);
+            PL_cur_LC_ALL = savepv(calculate_LC_ALL(PL_curlocales));
         }
 
-#    ifdef EINVAL
+#  endif
 
-        SETERRNO(EINVAL, LIB_INVARG);
+        return locale_on_entry;
+    }
 
-#    endif
+#  ifndef USE_QUERYLOCALE
 
-        return NULL;
+    /* Without a querylocale() mechanism, we have to figure out ourselves what
+     * happens with setting a locale to "" */
+    if (strEQ(new_locale, "")) {
+        new_locale = find_locale_from_environment(index);
+    }
 
 #  endif
 
-    }   /* End of this being setlocale(LC_foo, NULL) */
-
-    /* Here, we are switching locales. */
+    /* So far, it has worked that a semi-colon in the locale name means that
+     * the category is LC_ALL and it subsumes categories which don't all have
+     * the same locale.  This is the glibc syntax. */
+    if (strchr(new_locale, ';')) {
+        assert(index == LC_ALL_INDEX_);
+        return setlocale_from_aggregate_LC_ALL(new_locale, line);
+    }
 
-#  ifndef HAS_QUERYLOCALE
+#  ifdef HAS_GLIBC_LC_MESSAGES_BUG
 
-    if (strEQ(locale, "")) {
+    /* For this bug, if the LC_MESSAGES locale changes, we have to do an
+     * expensive workaround.  Save the current value so we can later determine
+     * if it changed. */
+    const char * old_messages_locale = NULL;
+    if (   (index == LC_MESSAGES_INDEX_ || index == LC_ALL_INDEX_)
+        &&  LIKELY(PL_phase != PERL_PHASE_CONSTRUCT))
+    {
+        old_messages_locale = querylocale_c(LC_MESSAGES);
+    }
 
-        /* For non-querylocale() systems, we do the setting of "" ourselves to
-         * be sure that we really know what's going on.  We follow the Linux
-         * documented behavior (but if that differs from the actual behavior,
-         * this won't work exactly as the OS implements).  We go out and
-         * examine the environment based on our understanding of how the system
-         * works, and use that to figure things out */
-
-        const char * const lc_all = PerlEnv_getenv("LC_ALL");
-
-        /* Use any "LC_ALL" environment variable, as it overrides everything
-         * else. */
-        if (lc_all && strNE(lc_all, "")) {
-            locale = lc_all;
-        }
-        else {
+#  endif
 
-            /* Otherwise, we need to dig deeper.  Unless overridden, the
-             * default is the LANG environment variable; if it doesn't exist,
-             * then "C" */
+    assert(PL_C_locale_obj);
 
-            const char * default_name;
+    /* Now ready to switch to the input 'new_locale' */
 
-            default_name = PerlEnv_getenv("LANG");
+    /* Switching locales generally entails freeing the current one's space (at
+     * the C library's discretion), hence we can't be using that locale at the
+     * time of the switch (this wasn't obvious to khw from the man pages).  So
+     * switch to a known locale object that we don't otherwise mess with. */
+    if (! uselocale(PL_C_locale_obj)) {
+
+        /* Not being able to change to the C locale is severe; don't keep
+         * going.  */
+        setlocale_failure_panic_i(index, locale_on_entry, "C", __LINE__, line);
+        NOT_REACHED; /* NOTREACHED */
+    }
 
-            if (! default_name || strEQ(default_name, "")) {
-                default_name = "C";
-            }
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+             "(%" LINE_Tf "): emulate_setlocale_i now using C"
+             " object=%p\n", line, PL_C_locale_obj));
 
-            if (category != LC_ALL) {
-                const char * const name = PerlEnv_getenv(category_names[index]);
+    locale_t new_obj;
 
-                /* Here we are setting a single category.  Assume will have the
-                 * default name */
-                locale = default_name;
+    /* We created a (never changing) object at start-up for LC_ALL being in the
+     * C locale.  If this call is to switch to LC_ALL=>C, simply use that
+     * object.  But in fact, we already have switched to it just above, in
+     * preparation for the general case.  Since we're already there, no need to
+     * do further switching. */
+    if (mask == LC_ALL_MASK && isNAME_C_OR_POSIX(new_locale)) {
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log, "(%" LINE_Tf "):"
+                                               " emulate_setlocale_i will stay"
+                                               " in C object\n", line));
+        new_obj = PL_C_locale_obj;
 
-                /* But then look for an overriding environment variable */
-                if (name && strNE(name, "")) {
-                    locale = name;
-                }
+        /* And free the old object if it isn't a special one */
+        if (entry_obj != LC_GLOBAL_LOCALE && entry_obj != PL_C_locale_obj) {
+            freelocale(entry_obj);
+        }
+    }
+    else {  /* Here is the general case, not to LC_ALL=>C */
+        locale_t basis_obj = entry_obj;
+
+        /* Specially handle two objects */
+        if (basis_obj == LC_GLOBAL_LOCALE || basis_obj == PL_C_locale_obj) {
+
+            /* For these two objects, we make duplicates to hand to newlocale()
+             * below.  For LC_GLOBAL_LOCALE, this is because newlocale()
+             * doesn't necessarily accept it as input (the results are
+             * undefined).  For PL_C_locale_obj, it is so that it never gets
+             * modified, as otherwise newlocale() is free to do so */
+            basis_obj = duplocale(basis_obj);
+            if (! basis_obj) {
+                locale_panic_(Perl_form(aTHX_ "(%" LINE_Tf "): duplocale failed",
+                                              line));
+                NOT_REACHED; /* NOTREACHED */
             }
-            else {
-                bool did_override = FALSE;
-                unsigned int i;
-
-                /* Here, we are getting LC_ALL.  Any categories that don't have
-                 * a corresponding environment variable set should be set to
-                 * LANG, or to "C" if there is no LANG.  If no individual
-                 * categories differ from this, we can just set LC_ALL.  This
-                 * is buggy on systems that have extra categories that we don't
-                 * know about.  If there is an environment variable that sets
-                 * that category, we won't know to look for it, and so our use
-                 * of LANG or "C" improperly overrides it.  On the other hand,
-                 * if we don't do what is done here, and there is no
-                 * environment variable, the category's locale should be set to
-                 * LANG or "C".  So there is no good solution.  khw thinks the
-                 * best is to look at systems to see what categories they have,
-                 * and include them, and then to assume that we know the
-                 * complete set */
-
-                for (i = 0; i < LC_ALL_INDEX; i++) {
-                    const char * const env_override
-                                            = PerlEnv_getenv(category_names[i]);
-                    const char * this_locale = (   env_override
-                                                && strNE(env_override, ""))
-                                               ? env_override
-                                               : default_name;
-                    if (! emulate_setlocale(categories[i], this_locale, i, TRUE))
-                    {
-                        return NULL;
-                    }
 
-                    if (strNE(this_locale, default_name)) {
-                        did_override = TRUE;
-                    }
-                }
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                                   "(%" LINE_Tf "): emulate_setlocale_i"
+                                   " created %p by duping the input\n",
+                                   line, basis_obj));
+        }
 
-                /* If all the categories are the same, we can set LC_ALL to
-                 * that */
-                if (! did_override) {
-                    locale = default_name;
-                }
-                else {
+        /* Ready to create a new locale by modification of the existing one.
+         *
+         * NOTE: This code may incorrectly show up as a leak under the address
+         * sanitizer. We do not free this object under normal teardown, however
+         * you can set PERL_DESTRUCT_LEVEL=2 to cause it to be freed.
+         */
+        new_obj = newlocale(mask, new_locale, basis_obj);
 
-                    /* Here, LC_ALL is no longer valid, as some individual
-                     * categories don't match it.  We call ourselves
-                     * recursively, as that will execute the code that
-                     * generates the proper locale string for this situation.
-                     * We don't do the remainder of this function, as that is
-                     * to update our records, and we've just done that for the
-                     * individual categories in the loop above, and doing so
-                     * would cause LC_ALL to be done as well */
-                    return emulate_setlocale(LC_ALL, NULL, LC_ALL_INDEX, TRUE);
+        if (! new_obj) {
+            DEBUG_L(PerlIO_printf(Perl_debug_log,
+                                  " (%" LINE_Tf "): emulate_setlocale_i"
+                                  " creating new object from %p failed:"
+                                  " errno=%d\n",
+                                  line, basis_obj, GET_ERRNO));
+
+            /* Failed.  Likely this is because the proposed new locale isn't
+             * valid on this system.  But we earlier switched to the LC_ALL=>C
+             * locale in anticipation of it succeeding,  Now have to switch
+             * back to the state upon entry */
+            if (! uselocale(entry_obj)) {
+                setlocale_failure_panic_i(index, "switching back to",
+                                          locale_on_entry, __LINE__, line);
+                NOT_REACHED; /* NOTREACHED */
+            }
+
+#    ifdef USE_PL_CURLOCALES
+
+            if (entry_obj == LC_GLOBAL_LOCALE) {
+
+                /* Here, we are back in the global locale.  We may never have
+                 * set PL_curlocales.  If the locale change had succeeded, the
+                 * code would have then set them up, but since it didn't, do so
+                 * here.  khw isn't sure if this prevents some issues or not,
+                 * This will calculate LC_ALL's entry only on the final
+                 * iteration */
+                POSIX_SETLOCALE_LOCK;
+                for (PERL_UINT_FAST8_T i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+                    update_PL_curlocales_i(i,
+                                       posix_setlocale(categories[i], NULL),
+                                       RECALCULATE_LC_ALL_ON_FINAL_INTERATION);
                 }
+                POSIX_SETLOCALE_UNLOCK;
             }
+#    endif
+
+            return NULL;
         }
-    }   /* End of this being setlocale(LC_foo, "") */
-    else if (strchr(locale, ';')) {
-
-        /* LC_ALL may actually incude a conglomeration of various categories.
-         * Without querylocale, this code uses the glibc (as of this writing)
-         * syntax for representing that, but that is not a stable API, and
-         * other platforms do it differently, so we have to handle all cases
-         * ourselves */
 
-        unsigned int i;
-        const char * s = locale;
-        const char * e = locale + strlen(locale);
-        const char * p = s;
-        const char * category_end;
-        const char * name_start;
-        const char * name_end;
-
-        /* If the string that gives what to set doesn't include all categories,
-         * the omitted ones get set to "C".  To get this behavior, first set
-         * all the individual categories to "C", and override the furnished
-         * ones below */
-        for (i = 0; i < LC_ALL_INDEX; i++) {
-            if (! emulate_setlocale(categories[i], "C", i, TRUE)) {
-                return NULL;
-            }
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                               "(%" LINE_Tf "): emulate_setlocale_i created %p"
+                               " while freeing %p\n", line, new_obj, basis_obj));
+
+        /* Here, successfully created an object representing the desired
+         * locale; now switch into it */
+        if (! uselocale(new_obj)) {
+            freelocale(new_obj);
+            locale_panic_(Perl_form(aTHX_ "(%" LINE_Tf "): emulate_setlocale_i"
+                                          " switching into new locale failed",
+                                          line));
         }
+    }
 
-        while (s < e) {
+    /* Here, we are using 'new_obj' which matches the input 'new_locale'. */
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+             "(%" LINE_Tf "): emulate_setlocale_i now using %p\n",
+             line, new_obj));
 
-            /* Parse through the category */
-            while (isWORDCHAR(*p)) {
-                p++;
-            }
-            category_end = p;
+#ifdef MULTIPLICITY
+    PL_cur_locale_obj = new_obj;
+#endif
 
-            if (*p++ != '=') {
-                Perl_croak(aTHX_
-                    "panic: %s: %d: Unexpected character in locale name '%02X",
-                    __FILE__, __LINE__, *(p-1));
-            }
+    /* We are done, except for updating our records (if the system doesn't keep
+     * them) and in the case of locale "", we don't actually know what the
+     * locale that got switched to is, as it came from the environment.  So
+     * have to find it */
 
-            /* Parse through the locale name */
-            name_start = p;
-            while (p < e && *p != ';') {
-                if (! isGRAPH(*p)) {
-                    Perl_croak(aTHX_
-                        "panic: %s: %d: Unexpected character in locale name '%02X",
-                        __FILE__, __LINE__, *(p-1));
-                }
-                p++;
-            }
-            name_end = p;
+#  ifdef USE_QUERYLOCALE
 
-            /* Space past the semi-colon */
-            if (p < e) {
-                p++;
-            }
+    if (strEQ(new_locale, "")) {
+        new_locale = querylocale_i(index);
+    }
 
-            /* Find the index of the category name in our lists */
-            for (i = 0; i < LC_ALL_INDEX; i++) {
-                char * individ_locale;
+    PERL_UNUSED_ARG(recalc_LC_ALL);
 
-                /* Keep going if this isn't the index.  The strnNE() avoids a
-                 * Perl_form(), but would fail if ever a category name could be
-                 * a substring of another one, like if there were a
-                 * "LC_TIME_DATE" */
-                if strnNE(s, category_names[i], category_end - s) {
-                    continue;
-                }
+#  else
 
-                /* If this index is for the single category we're changing, we
-                 * have found the locale to set it to. */
-                if (category == categories[i]) {
-                    locale = Perl_form(aTHX_ "%.*s",
-                                             (int) (name_end - name_start),
-                                             name_start);
-                    goto ready_to_set;
-                }
+    new_locale = update_PL_curlocales_i(index, new_locale, recalc_LC_ALL);
 
-                assert(category == LC_ALL);
-                individ_locale = Perl_form(aTHX_ "%.*s",
-                                    (int) (name_end - name_start), name_start);
-                if (! emulate_setlocale(categories[i], individ_locale, i, TRUE))
-                {
-                    return NULL;
-                }
-            }
+#  endif
+#  ifdef HAS_GLIBC_LC_MESSAGES_BUG
 
-            s = p;
+    /* Invalidate the glibc cache of loaded translations if the locale has
+     * changed, see [perl #134264] */
+    if (old_messages_locale) {
+        if (strNE(old_messages_locale, my_querylocale_c(LC_MESSAGES))) {
+            textdomain(textdomain(NULL));
         }
+    }
 
-        /* Here we have set all the individual categories by recursive calls.
-         * These collectively should have fixed up LC_ALL, so can just query
-         * what that now is */
-        assert(category == LC_ALL);
-
-        return do_setlocale_c(LC_ALL, NULL);
-    }   /* End of this being setlocale(LC_ALL,
-           "LC_CTYPE=foo;LC_NUMERIC=bar;...") */
+#  endif
 
-  ready_to_set: ;
+    return new_locale;
+}
 
-    /* Here at the end of having to deal with the absence of querylocale().
-     * Some cases have already been fully handled by recursive calls to this
-     * function.  But at this point, we haven't dealt with those, but are now
-     * prepared to, knowing what the locale name to set this category to is.
-     * This would have come for free if this system had had querylocale() */
+#endif   /* End of the various implementations of the setlocale and
+            querylocale macros used in the remainder of this program */
 
-#  endif  /* end of ! querylocale */
+#ifdef USE_LOCALE
 
-    assert(PL_C_locale_obj);
+/* So far, the locale strings returned by modern 2008-compliant systems have
+ * been fine */
 
-    /* Switching locales generally entails freeing the current one's space (at
-     * the C library's discretion).  We need to stop using that locale before
-     * the switch.  So switch to a known locale object that we don't otherwise
-     * mess with.  This returns the locale object in effect at the time of the
-     * switch. */
-    old_obj = uselocale(PL_C_locale_obj);
+STATIC const char *
+S_stdize_locale(pTHX_ const int category,
+                      const char *input_locale,
+                      const char **buf,
+                      Size_t *buf_size,
+                      const line_t caller_line)
+{
+    /* The return value of setlocale() is opaque, but is required to be usable
+     * as input to a future setlocale() to create the same state.
+     * Unfortunately not all systems are compliant.  But most often they are of
+     * a very restricted set of forms that this file has been coded to expect.
+     *
+     * There are some outliers, though, that this function tries to tame:
+     *
+     * 1) A new-line.  This function chomps any \n characters
+     * 2) foo=bar.     'bar' is what is generally meant, and the foo= part is
+     *                 stripped.  This form is legal for LC_ALL.  When found in
+     *                 that category group, the function calls itself
+     *                 recursively on each possible component category to make
+     *                 sure the individual categories are ok.
+     *
+     * If no changes to the input were made, it is returned; otherwise the
+     * changed version is stored into memory at *buf, with *buf_size set to its
+     * new value, and *buf is returned.
+     */
 
-#  ifdef DEBUGGING
+    const char * first_bad;
+    const char * retval;
+
+    PERL_ARGS_ASSERT_STDIZE_LOCALE;
 
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale was using %p\n", __FILE__, __LINE__, old_obj);
+    if (input_locale == NULL) {
+        return NULL;
     }
 
-#  endif
+    first_bad = strpbrk(input_locale, "=\n");
 
-    if (! old_obj) {
+    /* Most likely, there isn't a problem with the input */
+    if (LIKELY(! first_bad)) {
+        return input_locale;
+    }
 
-#  ifdef DEBUGGING
+#    ifdef LC_ALL
 
-        if (DEBUG_L_TEST || debug_initialization) {
-            dSAVE_ERRNO;
-            PerlIO_printf(Perl_debug_log, "%s:%d: emulate_setlocale switching to C failed: %d\n", __FILE__, __LINE__, GET_ERRNO);
-            RESTORE_ERRNO;
-        }
+    /* But if there is, and the category is LC_ALL, we have to look at each
+     * component category */
+    if (category == LC_ALL) {
+        const char * individ_locales[LC_ALL_INDEX_];
+        bool made_changes = FALSE;
+        unsigned int i;
 
-#  endif
+        for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+            Size_t this_size = 0;
+            individ_locales[i] = stdize_locale(categories[i],
+                                               posix_setlocale(categories[i],
+                                                               NULL),
+                                               &individ_locales[i],
+                                               &this_size,
+                                               caller_line);
+
+            /* If the size didn't change, it means this category did not have
+             * to be adjusted, and individ_locales[i] points to the buffer
+             * returned by posix_setlocale(); we have to copy that before
+             * it's called again in the next iteration */
+            if (this_size == 0) {
+                individ_locales[i] = savepv(individ_locales[i]);
+            }
+            else {
+                made_changes = TRUE;
+            }
+        }
 
-        return NULL;
-    }
+        /* If all the individual categories were ok as-is, this was a false
+         * alarm.  We must have seen an '=' which was a legal occurrence in
+         * this combination locale */
+        if (! made_changes) {
+            retval = input_locale;  /* The input can be returned unchanged */
+        }
+        else {
+            retval = save_to_buffer(querylocale_c(LC_ALL), buf, buf_size);
+        }
 
-#  ifdef DEBUGGING
+        for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+            Safefree(individ_locales[i]);
+        }
 
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log,
-                      "%s:%d: emulate_setlocale now using %p\n",
-                      __FILE__, __LINE__, PL_C_locale_obj);
+        return retval;
     }
 
-#  endif
-
-    /* If this call is to switch to the LC_ALL C locale, it already exists, and
-     * in fact, we already have switched to it (in preparation for what
-     * normally is to come).  But since we're already there, continue to use
-     * it instead of trying to create a new locale */
-    if (mask == LC_ALL_MASK && isNAME_C_OR_POSIX(locale)) {
+#    else   /* else no LC_ALL */
 
-#  ifdef DEBUGGING
+    PERL_UNUSED_ARG(category);
+    PERL_UNUSED_ARG(caller_line);
 
-        if (DEBUG_Lv_TEST || debug_initialization) {
-            PerlIO_printf(Perl_debug_log,
-                          "%s:%d: will stay in C object\n", __FILE__, __LINE__);
-        }
+#    endif
 
-#  endif
+    /* Here, there was a problem in an individual category.  This means that at
+     * least one adjustment will be necessary.  Create a modifiable copy */
+    retval = save_to_buffer(input_locale, buf, buf_size);
 
-        new_obj = PL_C_locale_obj;
+    if (*first_bad != '=') {
 
-        /* We already had switched to the C locale in preparation for freeing
-         * 'old_obj' */
-        if (old_obj != LC_GLOBAL_LOCALE && old_obj != PL_C_locale_obj) {
-            freelocale(old_obj);
-        }
+        /* Translate the found position into terms of the copy */
+        first_bad = retval + (first_bad - input_locale);
     }
-    else {
-        /* If we weren't in a thread safe locale, set so that newlocale() below
-         * which uses 'old_obj', uses an empty one.  Same for our reserved C
-         * object.  The latter is defensive coding, so that, even if there is
-         * some bug, we will never end up trying to modify either of these, as
-         * if passed to newlocale(), they can be. */
-        if (old_obj == LC_GLOBAL_LOCALE || old_obj == PL_C_locale_obj) {
-            old_obj = (locale_t) 0;
-        }
+    else { /* An '=' */
 
-        /* Ready to create a new locale by modification of the exising one */
-        new_obj = newlocale(mask, locale, old_obj);
+        /* It is unlikely that the return is so screwed-up that it contains
+         * multiple equals signs, but handle that case by stripping all of
+         * them.  */
+        const char * final_equals = strrchr(retval, '=');
 
-        if (! new_obj) {
-            dSAVE_ERRNO;
+        /* The length passed here causes the move to include the terminating
+         * NUL */
+        Move(final_equals + 1, retval, strlen(final_equals), char);
 
-#  ifdef DEBUGGING
+        /* See if there are additional problems; if not, we're good to return.
+         * */
+        first_bad = strpbrk(retval, "\n");
 
-            if (DEBUG_L_TEST || debug_initialization) {
-                PerlIO_printf(Perl_debug_log,
-                              "%s:%d: emulate_setlocale creating new object"
-                              " failed: %d\n", __FILE__, __LINE__, GET_ERRNO);
-            }
+        if (! first_bad) {
+            return retval;
+        }
+    }
 
-#  endif
+    /* Here, the problem must be a \n.  Get rid of it and what follows.
+     * (Originally, only a trailing \n was stripped.  Unsure what to do if not
+     * trailing) */
+    *((char *) first_bad) = '\0';
+    return retval;
+}
 
-            if (! uselocale(old_obj)) {
+#if defined(WIN32) || (     defined(USE_POSIX_2008_LOCALE)      \
+                       && ! defined(USE_QUERYLOCALE))
 
-#  ifdef DEBUGGING
+STATIC const char *
+S_find_locale_from_environment(pTHX_ const unsigned int index)
+{
+    /* NB: This function may actually change the locale on Windows.
+     *
+     * On Windows systems, the concept of the POSIX ordering of environment
+     * variables is missing.  To increase portability of programs across
+     * platforms, the POSIX ordering is emulated on Windows.
+     *
+     * And on POSIX 2008 systems without querylocale(), it is problematic
+     * getting the results of the POSIX 2008 equivalent of
+     *      setlocale(category,  "")
+     * (which gets the locale from the environment).
+     *
+     * To ensure that we know exactly what those values are, we do the setting
+     * ourselves, using the documented algorithm (assuming the documentation is
+     * correct) rather than use "" as the locale.  This will lead to results
+     * that differ from native behavior if the native behavior differs from the
+     * standard documented value, but khw believes it is better to know what's
+     * going on, even if different from native, than to just guess.
+     *
+     * Another option for the POSIX 2008 case would be, in a critical section,
+     * to save the global locale's current value, and do a straight
+     * setlocale(LC_ALL, "").  That would return our desired values, destroying
+     * the global locale's, which we would then restore.  But that could cause
+     * races with any other thread that is using the global locale and isn't
+     * using the mutex.  And, the only reason someone would have done that is
+     * because they are calling a library function, like in gtk, that calls
+     * setlocale(), and which can't be changed to use the mutex.  That wouldn't
+     * be a problem if this were to be done before any threads had switched,
+     * say during perl construction time.  But this code would still be needed
+     * for the general case.
+     *
+     * The Windows and POSIX 2008 differ in that the ultimate fallback is "C"
+     * in POSIX, and is the system default locale in Windows.  To get that
+     * system default value, we actually have to call setlocale() on Windows.
+     */
 
-                if (DEBUG_L_TEST || debug_initialization) {
-                    PerlIO_printf(Perl_debug_log,
-                                  "%s:%d: switching back failed: %d\n",
-                                  __FILE__, __LINE__, GET_ERRNO);
-                }
+    /* We rely on PerlEnv_getenv() returning a mortalized copy */
+    const char * const lc_all = PerlEnv_getenv("LC_ALL");
 
-#  endif
+    /* Use any "LC_ALL" environment variable, as it overrides everything
+     * else. */
+    if (lc_all && strNE(lc_all, "")) {
+        return lc_all;
+    }
 
-            }
-            RESTORE_ERRNO;
-            return NULL;
-        }
+    /* If setting an individual category, use its corresponding value found in
+     * the environment, if any */
+    if (index != LC_ALL_INDEX_) {
+        const char * const new_value = PerlEnv_getenv(category_names[index]);
 
-#  ifdef DEBUGGING
+        if (new_value && strNE(new_value, "")) {
+            return new_value;
+        }
 
-        if (DEBUG_Lv_TEST || debug_initialization) {
-            PerlIO_printf(Perl_debug_log,
-                          "%s:%d: emulate_setlocale created %p",
-                          __FILE__, __LINE__, new_obj);
-            if (old_obj) {
-                PerlIO_printf(Perl_debug_log,
-                              "; should have freed %p", old_obj);
-            }
-            PerlIO_printf(Perl_debug_log, "\n");
+        /* If no corresponding environment variable, see if LANG exists.  If
+         * so, use it. */
+        const char * default_name = PerlEnv_getenv("LANG");
+        if (default_name && strNE(default_name, "")) {
+            return default_name;
         }
 
+        /* If no LANG, use "C" on POSIX 2008, the system default on Windows */
+#  ifndef WIN32
+        return "C";
+#  else
+        return wrap_wsetlocale(categories[index], "");
 #  endif
 
-        /* And switch into it */
-        if (! uselocale(new_obj)) {
-            dSAVE_ERRNO;
-
-#  ifdef DEBUGGING
-
-            if (DEBUG_L_TEST || debug_initialization) {
-                PerlIO_printf(Perl_debug_log,
-                              "%s:%d: emulate_setlocale switching to new object"
-                              " failed\n", __FILE__, __LINE__);
-            }
+    }
 
-#  endif
+    /* Here is LC_ALL, and no LC_ALL environment variable.  LANG is used as a
+     * default, but overridden for individual categories that have
+     * corresponding environment variables.  If no LANG exists, the default is
+     * "C" on POSIX 2008, or the system default for the category on Windows. */
+    const char * default_name = PerlEnv_getenv("LANG");
 
-            if (! uselocale(old_obj)) {
+    /* Convert "" to NULL to save conditionals in the loop below */
+    if (default_name != NULL && strEQ(default_name, "")) {
+        default_name = NULL;
+    }
 
-#  ifdef DEBUGGING
+    /* Loop through all the individual categories, setting each to any
+     * corresponding environment variable; or to the default if none exists for
+     * the category */
+    const char * locale_names[LC_ALL_INDEX_];
+    for (unsigned i = 0; i < LC_ALL_INDEX_; i++) {
+        const char * const env_override = PerlEnv_getenv(category_names[i]);
 
-                if (DEBUG_L_TEST || debug_initialization) {
-                    PerlIO_printf(Perl_debug_log,
-                                  "%s:%d: switching back failed: %d\n",
-                                  __FILE__, __LINE__, GET_ERRNO);
-                }
+        if (env_override && strNE(env_override, "")) {
+            locale_names[i] = env_override;
+        }
+        else if (default_name) {
+            locale_names[i] = default_name;
+        }
+        else {
 
+#  ifndef WIN32
+            locale_names[i] = "C";
+#  else
+            locale_names[i] = wrap_wsetlocale(categories[index], "");
 #  endif
 
-            }
-            freelocale(new_obj);
-            RESTORE_ERRNO;
-            return NULL;
         }
+
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                 "find_locale_from_environment i=%d, name=%s, locale=%s\n",
+                 i, category_names[i], locale_names[i]));
     }
 
-#  ifdef DEBUGGING
+    return calculate_LC_ALL(locale_names);
+}
 
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log,
-                      "%s:%d: emulate_setlocale now using %p\n",
-                      __FILE__, __LINE__, new_obj);
-    }
+#endif
+#if defined(WIN32) || defined(USE_POSIX_2008_LOCALE) || ! defined(LC_ALL)
 
+STATIC
+const char *
+
+#  ifdef USE_QUERYLOCALE
+S_calculate_LC_ALL(pTHX_ const locale_t cur_obj)
+#  else
+S_calculate_LC_ALL(pTHX_ const char ** individ_locales)
 #  endif
 
-    /* We are done, except for updating our records (if the system doesn't keep
-     * them) and in the case of locale "", we don't actually know what the
-     * locale that got switched to is, as it came from the environment.  So
-     * have to find it */
+{
+    /* For POSIX 2008, we have to figure out LC_ALL ourselves when needed.
+     * querylocale(), on systems that have it, doesn't tend to work for LC_ALL.
+     * So we have to construct the answer ourselves based on the passed in
+     * data, which is either a locale_t object, for systems with querylocale(),
+     * or an array we keep updated to the proper values, otherwise.
+     *
+     * For Windows, we also may need to construct an LC_ALL when setting the
+     * locale to the system default.
+     *
+     * This function returns a mortalized string containing the locale name(s)
+     * of LC_ALL.
+     *
+     * If all individual categories are the same locale, we can just set LC_ALL
+     * to that locale.  But if not, we have to create an aggregation of all the
+     * categories on the system.  Platforms differ as to the syntax they use
+     * for these non-uniform locales for LC_ALL.  Some use a '/' or other
+     * delimiter of the locales with a predetermined order of categories; a
+     * Configure probe would be needed to tell us how to decipher those.  glibc
+     * and Windows use a series of name=value pairs, like
+     *      LC_NUMERIC=C;LC_TIME=en_US.UTF-8;...
+     * This function returns that syntax, which is suitable for input to the
+     * Windows setlocale().  It could also be suitable for glibc, but because
+     * the non-Windows code is common to systems that use a different syntax,
+     * we don't depend on it for glibc.  Instead we take care not to use the
+     * native setlocale() function on whatever non-Windows style is chosen.
+     * But, it would be possible for someone to call Perl_setlocale() using a
+     * native style we don't understand.  So far no one has complained.
+     *
+     * For systems that have categories we don't know about, the algorithm
+     * below won't know about those missing categories, leading to potential
+     * bugs for code that looks at them.  If there is an environment variable
+     * that sets that category, we won't know to look for it, and so our use of
+     * LANG or "C" improperly overrides it.  On the other hand, if we don't do
+     * what is done here, and there is no environment variable, the category's
+     * locale should be set to LANG or "C".  So there is no good solution.  khw
+     * thinks the best is to make sure we have a complete list of possible
+     * categories, adding new ones as they show up on obscure platforms.
+     */
 
-#  ifdef HAS_QUERYLOCALE
+    unsigned int i;
+    Size_t names_len = 0;
+    bool are_all_categories_the_same_locale = TRUE;
+    char * aggregate_locale;
+    char * previous_start = NULL;
+    char * this_start = NULL;
+    Size_t entry_len = 0;
 
-    if (strEQ(locale, "")) {
-        locale = querylocale(mask, new_obj);
-    }
+    PERL_ARGS_ASSERT_CALCULATE_LC_ALL;
 
-#  else
+    /* First calculate the needed size for the string listing the categories
+     * and their locales. */
+    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
 
-    /* Here, 'locale' is the return value */
+#  ifdef USE_QUERYLOCALE
+        const char * entry = querylocale_l(i, cur_obj);
+#  else
+        const char * entry = individ_locales[i];
+#  endif
 
-    /* Without querylocale(), we have to update our records */
+        names_len += strlen(category_names[i])
+                  + 1                           /* '=' */
+                  + strlen(entry)
+                  + 1;                          /* ';' */
+    }
 
-    if (category == LC_ALL) {
-        unsigned int i;
+    names_len++;    /* Trailing '\0' */
 
-        /* For LC_ALL, we change all individual categories to correspond */
-                              /* PL_curlocales is a parallel array, so has same
-                               * length as 'categories' */
-        for (i = 0; i <= LC_ALL_INDEX; i++) {
-            Safefree(PL_curlocales[i]);
-            PL_curlocales[i] = savepv(locale);
-        }
+    /* Allocate enough space for the aggregated string */
+    Newxz(aggregate_locale, names_len, char);
+    SAVEFREEPV(aggregate_locale);
 
-        FIX_GLIBC_LC_MESSAGES_BUG(LC_MESSAGES_INDEX);
-    }
-    else {
+    /* Then fill it in */
+    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        Size_t new_len;
 
-        /* For a single category, if it's not the same as the one in LC_ALL, we
-         * nullify LC_ALL */
+#  ifdef USE_QUERYLOCALE
+        const char * entry = querylocale_l(i, cur_obj);
+#  else
+        const char * entry = individ_locales[i];
+#  endif
 
-        if (PL_curlocales[LC_ALL_INDEX] && strNE(PL_curlocales[LC_ALL_INDEX], locale)) {
-            Safefree(PL_curlocales[LC_ALL_INDEX]);
-            PL_curlocales[LC_ALL_INDEX] = NULL;
+        new_len = my_strlcat(aggregate_locale, category_names[i], names_len);
+        assert(new_len <= names_len);
+        new_len = my_strlcat(aggregate_locale, "=", names_len);
+        assert(new_len <= names_len);
+
+        this_start = aggregate_locale + strlen(aggregate_locale);
+        entry_len = strlen(entry);
+
+        new_len = my_strlcat(aggregate_locale, entry, names_len);
+        assert(new_len <= names_len);
+        new_len = my_strlcat(aggregate_locale, ";", names_len);
+        assert(new_len <= names_len);
+        PERL_UNUSED_VAR(new_len);   /* Only used in DEBUGGING */
+
+        if (   i > 0
+            && are_all_categories_the_same_locale
+            && memNE(previous_start, this_start, entry_len + 1))
+        {
+            are_all_categories_the_same_locale = FALSE;
         }
+        else {
+            previous_start = this_start;
+        }
+    }
 
-        /* Then update the category's record */
-        Safefree(PL_curlocales[index]);
-        PL_curlocales[index] = savepv(locale);
-
-        FIX_GLIBC_LC_MESSAGES_BUG(index);
+    /* If they are all the same, just return any one of them */
+    if (are_all_categories_the_same_locale) {
+        aggregate_locale = this_start;
+        aggregate_locale[entry_len] = '\0';
     }
 
-#  endif
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                           "calculate_LC_ALL returning '%s'\n",
+                           aggregate_locale));
 
-    return locale;
+    return aggregate_locale;
 }
 
-#endif /* USE_POSIX_2008_LOCALE */
-
-#ifdef USE_LOCALE
+#endif
+#if defined(USE_LOCALE) && (   defined(DEBUGGING)                       \
+                            || defined(USE_PERL_SWITCH_LOCALE_CONTEXT))
 
-STATIC void
-S_set_numeric_radix(pTHX_ const bool use_locale)
+STATIC const char *
+S_get_LC_ALL_display(pTHX)
 {
-    /* If 'use_locale' is FALSE, set to use a dot for the radix character.  If
-     * TRUE, use the radix character derived from the current locale */
 
-#if defined(USE_LOCALE_NUMERIC) && (   defined(HAS_LOCALECONV)              \
-                                    || defined(HAS_NL_LANGINFO))
+#  ifdef LC_ALL
 
-    const char * radix = (use_locale)
-                         ? my_nl_langinfo(RADIXCHAR, FALSE)
-                                        /* FALSE => already in dest locale */
-                         : ".";
-
-        sv_setpv(PL_numeric_radix_sv, radix);
-
-    /* If this is valid UTF-8 that isn't totally ASCII, and we are in
-        * a UTF-8 locale, then mark the radix as being in UTF-8 */
-    if (is_utf8_non_invariant_string((U8 *) SvPVX(PL_numeric_radix_sv),
-                                            SvCUR(PL_numeric_radix_sv))
-        && _is_cur_LC_category_utf8(LC_NUMERIC))
-    {
-        SvUTF8_on(PL_numeric_radix_sv);
-    }
+    return querylocale_c(LC_ALL);
 
-#  ifdef DEBUGGING
+#  else
 
-    if (DEBUG_L_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log, "Locale radix is '%s', ?UTF-8=%d\n",
-                                           SvPVX(PL_numeric_radix_sv),
-                                           cBOOL(SvUTF8(PL_numeric_radix_sv)));
-    }
+    const char * curlocales[NOMINAL_LC_ALL_INDEX];
 
-#  endif
-#else
+    for (unsigned i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        curlocales[i] = querylocale_i(i);
+    }
 
-    PERL_UNUSED_ARG(use_locale);
+    return calculate_LC_ALL(curlocales);
 
-#endif /* USE_LOCALE_NUMERIC and can find the radix char */
+#  endif
 
 }
 
+#endif
+
 STATIC void
-S_new_numeric(pTHX_ const char *newnum)
+S_setlocale_failure_panic_i(pTHX_
+                            const unsigned int cat_index,
+                            const char * current,
+                            const char * failed,
+                            const line_t caller_0_line,
+                            const line_t caller_1_line)
 {
+    dSAVE_ERRNO;
+    const int cat = categories[cat_index];
+    const char * name = category_names[cat_index];
+
+    PERL_ARGS_ASSERT_SETLOCALE_FAILURE_PANIC_I;
+
+    if (current == NULL) {
+        current = querylocale_i(cat_index);
+    }
+
+    Perl_locale_panic(Perl_form(aTHX_ "(%" LINE_Tf
+                                      "): Can't change locale for %s(%d)"
+                                      " from '%s' to '%s'",
+                                      caller_1_line, name, cat,
+                                      current, failed),
+                      __FILE__, caller_0_line, GET_ERRNO);
+    NOT_REACHED; /* NOTREACHED */
+}
 
-#ifndef USE_LOCALE_NUMERIC
-
-    PERL_UNUSED_ARG(newnum);
+/* Any of these will allow us to find the RADIX */
+#  if defined(USE_LOCALE_NUMERIC) && (   defined(HAS_SOME_LANGINFO)         \
+                                      || defined(HAS_LOCALECONV)            \
+                                      || defined(HAS_SNPRINTF))
+#    define CAN_CALCULATE_RADIX
+#  endif
+#  ifdef USE_LOCALE_NUMERIC
 
-#else
+STATIC void
+S_new_numeric(pTHX_ const char *newnum, bool force)
+{
+    PERL_ARGS_ASSERT_NEW_NUMERIC;
 
     /* Called after each libc setlocale() call affecting LC_NUMERIC, to tell
-     * core Perl this and that 'newnum' is the name of the new locale.
-     * It installs this locale as the current underlying default.
+     * core Perl this and that 'newnum' is the name of the new locale, and we
+     * are switched into it.  It installs this locale as the current underlying
+     * default, and then switches to the C locale, if necessary, so that the
+     * code that has traditionally expected the radix character to be a dot may
+     * continue to do so.
      *
      * The default locale and the C locale can be toggled between by use of the
      * set_numeric_underlying() and set_numeric_standard() functions, which
@@ -1285,8 +1866,8 @@ S_new_numeric(pTHX_ const char *newnum)
      * SET_NUMERIC_STANDARD() in perl.h.
      *
      * The toggling is necessary mainly so that a non-dot radix decimal point
-     * character can be output, while allowing internal calculations to use a
-     * dot.
+     * character can be input and output, while allowing internal calculations
+     * to use a dot.
      *
      * This sets several interpreter-level variables:
      * PL_numeric_name  The underlying locale's name: a copy of 'newnum'
@@ -1305,101 +1886,155 @@ S_new_numeric(pTHX_ const char *newnum)
      *                  variables are true at the same time.  (Toggling is a
      *                  no-op under these circumstances.)  This variable is
      *                  used to avoid having to recalculate.
+     * PL_numeric_radix_sv  Contains the string that code should use for the
+     *                  decimal point.  It is set to either a dot or the
+     *                  program's underlying locale's radix character string,
+     *                  depending on the situation.
+     * PL_underlying_radix_sv  Contains the program's underlying locale's radix
+     *                  character string.  This is copied into
+     *                  PL_numeric_radix_sv when the situation warrants.  It
+     *                  exists to avoid having to recalculate it when toggling.
+     * PL_underlying_numeric_obj = (only on POSIX 2008 platforms)  An object
+     *                  with everything set up properly so as to avoid work on
+     *                  such platforms.
      */
 
-    char *save_newnum;
+    DEBUG_L( PerlIO_printf(Perl_debug_log,
+                           "Called new_numeric with %s, PL_numeric_name=%s\n",
+                           newnum, PL_numeric_name));
+
+    /* If not forcing this procedure, and there isn't actually a change from
+     * our records, do nothing.  (Our records can be wrong when sync'ing to the
+     * locale set up by an external library, hence the 'force' parameter) */
+    if (! force && strEQ(PL_numeric_name, newnum)) {
+        return;
+    }
+
+    Safefree(PL_numeric_name);
+    PL_numeric_name = savepv(newnum);
 
-    if (! newnum) {
-        Safefree(PL_numeric_name);
-        PL_numeric_name = NULL;
+    /* Handle the trivial case.  Since this is called at process
+     * initialization, be aware that this bit can't rely on much being
+     * available. */
+    if (isNAME_C_OR_POSIX(PL_numeric_name)) {
         PL_numeric_standard = TRUE;
-        PL_numeric_underlying = TRUE;
         PL_numeric_underlying_is_standard = TRUE;
+        PL_numeric_underlying = TRUE;
+        sv_setpv(PL_numeric_radix_sv, C_decimal_point);
+        sv_setpv(PL_underlying_radix_sv, C_decimal_point);
         return;
     }
 
-    save_newnum = stdize_locale(savepv(newnum));
+    /* We are in the underlying locale until changed at the end of this
+     * function */
     PL_numeric_underlying = TRUE;
-    PL_numeric_standard = isNAME_C_OR_POSIX(save_newnum);
-
-#ifndef TS_W32_BROKEN_LOCALECONV
-
-    /* If its name isn't C nor POSIX, it could still be indistinguishable from
-     * them.  But on broken Windows systems calling my_nl_langinfo() for
-     * THOUSEP can currently (but rarely) cause a race, so avoid doing that,
-     * and just always change the locale if not C nor POSIX on those systems */
-    if (! PL_numeric_standard) {
-        PL_numeric_standard = cBOOL(strEQ(".", my_nl_langinfo(RADIXCHAR,
-                                            FALSE /* Don't toggle locale */  ))
-                                 && strEQ("",  my_nl_langinfo(THOUSEP, FALSE)));
-    }
 
-#endif
-
-    /* Save the new name if it isn't the same as the previous one, if any */
-    if (! PL_numeric_name || strNE(PL_numeric_name, save_newnum)) {
-        Safefree(PL_numeric_name);
-        PL_numeric_name = save_newnum;
-    }
-    else {
-        Safefree(save_newnum);
-    }
-
-    PL_numeric_underlying_is_standard = PL_numeric_standard;
-
-#  ifdef HAS_POSIX_2008_LOCALE
+#  ifdef USE_POSIX_2008_LOCALE
 
+    /* We keep a special object for easy switching to.
+     *
+     * NOTE: This code may incorrectly show up as a leak under the address
+     * sanitizer. We do not free this object under normal teardown, however
+     * you can set PERL_DESTRUCT_LEVEL=2 to cause it to be freed.
+     */
     PL_underlying_numeric_obj = newlocale(LC_NUMERIC_MASK,
                                           PL_numeric_name,
                                           PL_underlying_numeric_obj);
 
-#endif
+#    endif
 
-    if (DEBUG_L_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log, "Called new_numeric with %s, PL_numeric_name=%s\n", newnum, PL_numeric_name);
+    const char * radix = NULL;
+    utf8ness_t utf8ness = UTF8NESS_IMMATERIAL;
+
+    /* Find and save this locale's radix character. */
+    my_langinfo_c(RADIXCHAR, LC_NUMERIC, PL_numeric_name,
+                  &radix, NULL, &utf8ness);
+    sv_setpv(PL_underlying_radix_sv, radix);
+
+    if (utf8ness == UTF8NESS_YES) {
+        SvUTF8_on(PL_underlying_radix_sv);
     }
 
-    /* Keep LC_NUMERIC in the C locale.  This is for XS modules, so they don't
-     * have to worry about the radix being a non-dot.  (Core operations that
-     * need the underlying locale change to it temporarily). */
-    if (PL_numeric_standard) {
-        set_numeric_radix(0);
+    DEBUG_L(PerlIO_printf(Perl_debug_log,
+                          "Locale radix is '%s', ?UTF-8=%d\n",
+                          SvPVX(PL_underlying_radix_sv),
+                          cBOOL(SvUTF8(PL_underlying_radix_sv))));
+
+    /* This locale is indistinguishable from C (for numeric purposes) if both
+     * the radix character and the thousands separator are the same as C's.
+     * Start with the radix. */
+    PL_numeric_underlying_is_standard = strEQ(C_decimal_point, radix);
+    Safefree(radix);
+
+#    ifndef TS_W32_BROKEN_LOCALECONV
+
+    /* If the radix isn't the same as C's, we know it is distinguishable from
+     * C; otherwise check the thousands separator too.  Only if both are the
+     * same as C's is the locale indistinguishable from C.
+     *
+     * But on earlier Windows versions, there is a potential race.  This code
+     * knows that localeconv() (elsewhere in this file) will be used to extract
+     * the needed value, and localeconv() was buggy for quite a while, and that
+     * code in this file hence uses a workaround.  And that workaround may have
+     * an (unlikely) race.  Gathering the radix uses a different workaround on
+     * Windows that doesn't involve a race.  It might be possible to do the
+     * same for this (patches welcome).
+     *
+     * Until then khw doesn't think it's worth even the small risk of a race to
+     * get this value, which doesn't appear to be used in any of the Microsoft
+     * library routines anyway. */
+
+    const char * scratch_buffer = NULL;
+    if (PL_numeric_underlying_is_standard) {
+        PL_numeric_underlying_is_standard = strEQ(C_thousands_sep,
+                                             my_langinfo_c(THOUSEP, LC_NUMERIC,
+                                                           PL_numeric_name,
+                                                           &scratch_buffer,
+                                                           NULL, NULL));
     }
-    else {
+    Safefree(scratch_buffer);
+
+#    else
+    PERL_UNUSED_VAR(C_thousands_sep);
+#    endif
+
+    PL_numeric_standard = PL_numeric_underlying_is_standard;
+
+    /* Keep LC_NUMERIC so that it has the C locale radix and thousands
+     * separator.  This is for XS modules, so they don't have to worry about
+     * the radix being a non-dot.  (Core operations that need the underlying
+     * locale change to it temporarily). */
+    if (! PL_numeric_standard) {
         set_numeric_standard();
     }
 
-#endif /* USE_LOCALE_NUMERIC */
-
 }
 
+#  endif
+
 void
 Perl_set_numeric_standard(pTHX)
 {
 
-#ifdef USE_LOCALE_NUMERIC
-
-    /* Toggle the LC_NUMERIC locale to C.  Most code should use the macros like
-     * SET_NUMERIC_STANDARD() in perl.h instead of calling this directly.  The
-     * macro avoids calling this routine if toggling isn't necessary according
-     * to our records (which could be wrong if some XS code has changed the
-     * locale behind our back) */
-
-#  ifdef DEBUGGING
+#  ifdef USE_LOCALE_NUMERIC
 
-    if (DEBUG_L_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log,
-                          "Setting LC_NUMERIC locale to standard C\n");
-    }
+    /* Unconditionally toggle the LC_NUMERIC locale to the C locale
+     *
+     * Most code should use the macro SET_NUMERIC_STANDARD() in perl.h
+     * instead of calling this directly.  The macro avoids calling this routine
+     * if toggling isn't necessary according to our records (which could be
+     * wrong if some XS code has changed the locale behind our back) */
 
-#  endif
+    DEBUG_L(PerlIO_printf(Perl_debug_log,
+                                  "Setting LC_NUMERIC locale to standard C\n"));
 
-    do_setlocale_c(LC_NUMERIC, "C");
+    void_setlocale_c(LC_NUMERIC, "C");
     PL_numeric_standard = TRUE;
+    sv_setpv(PL_numeric_radix_sv, C_decimal_point);
+
     PL_numeric_underlying = PL_numeric_underlying_is_standard;
-    set_numeric_radix(0);
 
-#endif /* USE_LOCALE_NUMERIC */
+#  endif /* USE_LOCALE_NUMERIC */
 
 }
 
@@ -1407,65 +2042,50 @@ void
 Perl_set_numeric_underlying(pTHX)
 {
 
-#ifdef USE_LOCALE_NUMERIC
+#  ifdef USE_LOCALE_NUMERIC
 
-    /* Toggle the LC_NUMERIC locale to the current underlying default.  Most
-     * code should use the macros like SET_NUMERIC_UNDERLYING() in perl.h
+    /* Unconditionally toggle the LC_NUMERIC locale to the current underlying
+     * default.
+     *
+     * Most code should use the macro SET_NUMERIC_UNDERLYING() in perl.h
      * instead of calling this directly.  The macro avoids calling this routine
      * if toggling isn't necessary according to our records (which could be
      * wrong if some XS code has changed the locale behind our back) */
 
-#  ifdef DEBUGGING
-
-    if (DEBUG_L_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log,
-                          "Setting LC_NUMERIC locale to %s\n",
-                          PL_numeric_name);
-    }
+    DEBUG_L(PerlIO_printf(Perl_debug_log, "Setting LC_NUMERIC locale to %s\n",
+                                          PL_numeric_name));
 
-#  endif
+    void_setlocale_c(LC_NUMERIC, PL_numeric_name);
+    PL_numeric_underlying = TRUE;
+    sv_setsv_nomg(PL_numeric_radix_sv, PL_underlying_radix_sv);
 
-    do_setlocale_c(LC_NUMERIC, PL_numeric_name);
     PL_numeric_standard = PL_numeric_underlying_is_standard;
-    PL_numeric_underlying = TRUE;
-    set_numeric_radix(! PL_numeric_standard);
 
-#endif /* USE_LOCALE_NUMERIC */
+#  endif /* USE_LOCALE_NUMERIC */
 
 }
 
-/*
- * Set up for a new ctype locale.
- */
+#  ifdef USE_LOCALE_CTYPE
+
 STATIC void
-S_new_ctype(pTHX_ const char *newctype)
+S_new_ctype(pTHX_ const char *newctype, bool force)
 {
-
-#ifndef USE_LOCALE_CTYPE
-
-    PERL_UNUSED_ARG(newctype);
-    PERL_UNUSED_CONTEXT;
-
-#else
+    PERL_ARGS_ASSERT_NEW_CTYPE;
+    PERL_UNUSED_ARG(force);
 
     /* Called after each libc setlocale() call affecting LC_CTYPE, to tell
      * core Perl this and that 'newctype' is the name of the new locale.
      *
      * This function sets up the folding arrays for all 256 bytes, assuming
      * that tofold() is tolc() since fold case is not a concept in POSIX,
-     *
-     * Any code changing the locale (outside this file) should use
-     * Perl_setlocale or POSIX::setlocale, which call this function.  Therefore
-     * this function should be called directly only from this file and from
-     * POSIX::setlocale() */
-
-    unsigned int i;
+     */
 
-    /* Don't check for problems if we are suppressing the warnings */
-    bool check_for_problems = ckWARN_d(WARN_LOCALE) || UNLIKELY(DEBUG_L_TEST);
-    bool maybe_utf8_turkic = FALSE;
+    DEBUG_L(PerlIO_printf(Perl_debug_log, "Entering new_ctype(%s)\n", newctype));
 
-    PERL_ARGS_ASSERT_NEW_CTYPE;
+    /* No change means no-op */
+    if (strEQ(PL_ctype_name, newctype)) {
+        return;
+    }
 
     /* We will replace any bad locale warning with 1) nothing if the new one is
      * ok; or 2) a new warning for the bad new locale */
@@ -1474,52 +2094,196 @@ S_new_ctype(pTHX_ const char *newctype)
         PL_warn_locale = NULL;
     }
 
-    PL_in_utf8_CTYPE_locale = _is_cur_LC_category_utf8(LC_CTYPE);
+    /* Clear cache */
+    Safefree(PL_ctype_name);
+    PL_ctype_name = "";
+
+    PL_in_utf8_turkic_locale = FALSE;
+
+    /* For the C locale, just use the standard folds, and we know there are no
+     * glitches possible, so return early.  Since this is called at process
+     * initialization, be aware that this bit can't rely on much being
+     * available. */
+    if (isNAME_C_OR_POSIX(newctype)) {
+        Copy(PL_fold, PL_fold_locale, 256, U8);
+        PL_ctype_name = savepv(newctype);
+        PL_in_utf8_CTYPE_locale = FALSE;
+        return;
+    }
+
+    /* The cache being cleared signals this function to compute a new value */
+    PL_in_utf8_CTYPE_locale = is_locale_utf8(newctype);
+
+    PL_ctype_name = savepv(newctype);
+    bool maybe_utf8_turkic = FALSE;
+
+    /* Don't check for problems if we are suppressing the warnings */
+    bool check_for_problems = ckWARN_d(WARN_LOCALE) || UNLIKELY(DEBUG_L_TEST);
 
-    /* A UTF-8 locale gets standard rules.  But note that code still has to
-     * handle this specially because of the three problematic code points */
     if (PL_in_utf8_CTYPE_locale) {
+
+        /* A UTF-8 locale gets standard rules.  But note that code still has to
+         * handle this specially because of the three problematic code points
+         * */
         Copy(PL_fold_latin1, PL_fold_locale, 256, U8);
 
         /* UTF-8 locales can have special handling for 'I' and 'i' if they are
-         * Turkic.  Make sure these two are the only anomalies.  (We don't use
-         * towupper and towlower because they aren't in C89.) */
+         * Turkic.  Make sure these two are the only anomalies.  (We don't
+         * require towupper and towlower because they aren't in C89.) */
 
-#if defined(HAS_TOWUPPER) && defined (HAS_TOWLOWER)
+#    if defined(HAS_TOWUPPER) && defined (HAS_TOWLOWER)
 
-        if (towupper('i') == 0x130 && towlower('I') == 0x131) {
+        if (towupper('i') == 0x130 && towlower('I') == 0x131)
 
-#else
+#    else
 
-        if (toupper('i') == 'i' && tolower('I') == 'I') {
+        if (toU8_UPPER_LC('i') == 'i' && toU8_LOWER_LC('I') == 'I')
 
-#endif
+#    endif
+
+        {
+            /* This is how we determine it really is Turkic */
             check_for_problems = TRUE;
             maybe_utf8_turkic = TRUE;
         }
     }
+    else {  /* Not a canned locale we know the values for.  Compute them */
 
-    /* We don't populate the other lists if a UTF-8 locale, but do check that
-     * everything works as expected, unless checking turned off */
-    if (check_for_problems || ! PL_in_utf8_CTYPE_locale) {
-        /* Assume enough space for every character being bad.  4 spaces each
-         * for the 94 printable characters that are output like "'x' "; and 5
+#    ifdef DEBUGGING
+
+        bool has_non_ascii_fold = FALSE;
+        bool found_unexpected = FALSE;
+
+        /* Under -DLv, see if there are any folds outside the ASCII range.
+         * This factoid is used below */
+        if (DEBUG_Lv_TEST) {
+            for (unsigned i = 128; i < 256; i++) {
+                int j = LATIN1_TO_NATIVE(i);
+                if (toU8_LOWER_LC(j) != j || toU8_UPPER_LC(j) != j) {
+                    has_non_ascii_fold = TRUE;
+                    break;
+                }
+            }
+        }
+
+#    endif
+
+        for (unsigned i = 0; i < 256; i++) {
+            if (isU8_UPPER_LC(i))
+                PL_fold_locale[i] = (U8) toU8_LOWER_LC(i);
+            else if (isU8_LOWER_LC(i))
+                PL_fold_locale[i] = (U8) toU8_UPPER_LC(i);
+            else
+                PL_fold_locale[i] = (U8) i;
+
+#    ifdef DEBUGGING
+
+            /* Most locales these days are supersets of ASCII.  When debugging
+             * with -DLv, it is helpful to know what the exceptions to that are
+             * in this locale */
+            if (DEBUG_Lv_TEST) {
+                bool unexpected = FALSE;
+
+                if (isUPPER_L1(i)) {
+                    if (isUPPER_A(i)) {
+                        if (PL_fold_locale[i] != toLOWER_A(i)) {
+                            unexpected = TRUE;
+                        }
+                    }
+                    else if (has_non_ascii_fold) {
+                        if (PL_fold_locale[i] != toLOWER_L1(i)) {
+                            unexpected = TRUE;
+                        }
+                    }
+                    else if (PL_fold_locale[i] != i) {
+                        unexpected = TRUE;
+                    }
+                }
+                else if (   isLOWER_L1(i)
+                         && i != LATIN_SMALL_LETTER_SHARP_S
+                         && i != MICRO_SIGN)
+                {
+                    if (isLOWER_A(i)) {
+                        if (PL_fold_locale[i] != toUPPER_A(i)) {
+                            unexpected = TRUE;
+                        }
+                    }
+                    else if (has_non_ascii_fold) {
+                        if (PL_fold_locale[i] != toUPPER_LATIN1_MOD(i)) {
+                            unexpected = TRUE;
+                        }
+                    }
+                    else if (PL_fold_locale[i] != i) {
+                        unexpected = TRUE;
+                    }
+                }
+                else if (PL_fold_locale[i] != i) {
+                    unexpected = TRUE;
+                }
+
+                if (unexpected) {
+                    found_unexpected = TRUE;
+                    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                                           "For %s, fold of %02x is %02x\n",
+                                           newctype, i, PL_fold_locale[i]));
+                }
+            }
+        }
+
+        if (found_unexpected) {
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                               "All bytes not mentioned above either fold to"
+                               " themselves or are the expected ASCII or"
+                               " Latin1 ones\n"));
+        }
+        else {
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                                   "No nonstandard folds were found\n"));
+#    endif
+
+        }
+    }
+
+#    ifdef MB_CUR_MAX
+
+    /* We only handle single-byte locales (outside of UTF-8 ones); so if this
+     * locale requires more than one byte, there are going to be BIG problems.
+     * */
+
+    if (MB_CUR_MAX > 1 && ! PL_in_utf8_CTYPE_locale
+
+            /* Some platforms return MB_CUR_MAX > 1 for even the "C" locale.
+             * Just assume that the implementation for them (plus for POSIX) is
+             * correct and the > 1 value is spurious.  (Since these are
+             * specially handled to never be considered UTF-8 locales, as long
+             * as this is the only problem, everything should work fine */
+        && ! isNAME_C_OR_POSIX(newctype))
+    {
+        DEBUG_L(PerlIO_printf(Perl_debug_log,
+                              "Unsupported, MB_CUR_MAX=%d\n", (int) MB_CUR_MAX));
+
+        Perl_ck_warner_d(aTHX_ packWARN(WARN_LOCALE),
+                         "Locale '%s' is unsupported, and may crash the"
+                         " interpreter.\n",
+                         newctype);
+    }
+
+#    endif
+
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log, "check_for_problems=%d\n",
+                                           check_for_problems));
+
+    /* We don't populate the other lists if a UTF-8 locale, but do check that
+     * everything works as expected, unless checking turned off */
+    if (check_for_problems) {
+        /* Assume enough space for every character being bad.  4 spaces each
+         * for the 94 printable characters that are output like "'x' "; and 5
          * spaces each for "'\\' ", "'\t' ", and "'\n' "; plus a terminating
          * NUL */
         char bad_chars_list[ (94 * 4) + (3 * 5) + 1 ] = { '\0' };
-        bool multi_byte_locale = FALSE;     /* Assume is a single-byte locale
-                                               to start */
         unsigned int bad_count = 0;         /* Count of bad characters */
 
-        for (i = 0; i < 256; i++) {
-            if (! PL_in_utf8_CTYPE_locale) {
-                if (isupper(i))
-                    PL_fold_locale[i] = (U8) tolower(i);
-                else if (islower(i))
-                    PL_fold_locale[i] = (U8) toupper(i);
-                else
-                    PL_fold_locale[i] = (U8) i;
-            }
+        for (unsigned i = 0; i < 256; i++) {
 
             /* If checking for locale problems, see if the native ASCII-range
              * printables plus \n and \t are in their expected categories in
@@ -1530,9 +2294,7 @@ S_new_ctype(pTHX_ const char *newctype)
              * nowadays.  It isn't a problem for most controls to be changed
              * into something else; we check only \n and \t, though perhaps \r
              * could be an issue as well. */
-            if (    check_for_problems
-                && (isGRAPH_A(i) || isBLANK_A(i) || i == '\n'))
-            {
+            if (isGRAPH_A(i) || isBLANK_A(i) || i == '\n') {
                 bool is_bad = FALSE;
                 char name[4] = { '\0' };
 
@@ -1553,77 +2315,79 @@ S_new_ctype(pTHX_ const char *newctype)
                 }
 
                 /* Check each possibe class */
-                if (UNLIKELY(cBOOL(isalnum(i)) != cBOOL(isALPHANUMERIC_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_ALPHANUMERIC_LC(i)) !=
+                                                    cBOOL(isALPHANUMERIC_A(i))))
+                {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isalnum('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isalnum(i))));
+                                          "isalnum('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_ALPHANUMERIC_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isalpha(i)) != cBOOL(isALPHA_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_ALPHA_LC(i)) != cBOOL(isALPHA_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isalpha('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isalpha(i))));
+                                          "isalpha('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_ALPHA_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isdigit(i)) != cBOOL(isDIGIT_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_DIGIT_LC(i)) != cBOOL(isDIGIT_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isdigit('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isdigit(i))));
+                                          "isdigit('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_DIGIT_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isgraph(i)) != cBOOL(isGRAPH_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_GRAPH_LC(i)) != cBOOL(isGRAPH_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isgraph('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isgraph(i))));
+                                          "isgraph('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_GRAPH_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(islower(i)) != cBOOL(isLOWER_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_LOWER_LC(i)) != cBOOL(isLOWER_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "islower('%s') unexpectedly is %d\n",
-                                          name, cBOOL(islower(i))));
+                                          "islower('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_LOWER_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isprint(i)) != cBOOL(isPRINT_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_PRINT_LC(i)) != cBOOL(isPRINT_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isprint('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isprint(i))));
+                                          "isprint('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_PRINT_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(ispunct(i)) != cBOOL(isPUNCT_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_PUNCT_LC(i)) != cBOOL(isPUNCT_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "ispunct('%s') unexpectedly is %d\n",
-                                          name, cBOOL(ispunct(i))));
+                                          "ispunct('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_PUNCT_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isspace(i)) != cBOOL(isSPACE_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_SPACE_LC(i)) != cBOOL(isSPACE_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isspace('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isspace(i))));
+                                          "isspace('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_SPACE_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isupper(i)) != cBOOL(isUPPER_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_UPPER_LC(i)) != cBOOL(isUPPER_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isupper('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isupper(i))));
+                                          "isupper('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_UPPER_LC(i))));
                 }
-                if (UNLIKELY(cBOOL(isxdigit(i))!= cBOOL(isXDIGIT_A(i))))  {
+                if (UNLIKELY(cBOOL(isU8_XDIGIT_LC(i))!= cBOOL(isXDIGIT_A(i))))  {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                          "isxdigit('%s') unexpectedly is %d\n",
-                                          name, cBOOL(isxdigit(i))));
+                                          "isxdigit('%s') unexpectedly is %x\n",
+                                          name, cBOOL(isU8_XDIGIT_LC(i))));
                 }
-                if (UNLIKELY(tolower(i) != (int) toLOWER_A(i))) {
+                if (UNLIKELY(toU8_LOWER_LC(i) != (int) toLOWER_A(i))) {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
                             "tolower('%s')=0x%x instead of the expected 0x%x\n",
-                            name, tolower(i), (int) toLOWER_A(i)));
+                            name, toU8_LOWER_LC(i), (int) toLOWER_A(i)));
                 }
-                if (UNLIKELY(toupper(i) != (int) toUPPER_A(i))) {
+                if (UNLIKELY(toU8_UPPER_LC(i) != (int) toUPPER_A(i))) {
                     is_bad = TRUE;
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
                             "toupper('%s')=0x%x instead of the expected 0x%x\n",
-                            name, toupper(i), (int) toUPPER_A(i)));
+                            name, toU8_UPPER_LC(i), (int) toUPPER_A(i)));
                 }
                 if (UNLIKELY((i == '\n' && ! isCNTRL_LC(i))))  {
                     is_bad = TRUE;
@@ -1645,46 +2409,25 @@ S_new_ctype(pTHX_ const char *newctype)
         if (bad_count == 2 && maybe_utf8_turkic) {
             bad_count = 0;
             *bad_chars_list = '\0';
-            PL_fold_locale['I'] = 'I';
-            PL_fold_locale['i'] = 'i';
-            PL_in_utf8_turkic_locale = TRUE;
-            DEBUG_L(PerlIO_printf(Perl_debug_log, "%s:%d: %s is turkic\n",
-                                                 __FILE__, __LINE__, newctype));
-        }
-        else {
-            PL_in_utf8_turkic_locale = FALSE;
-        }
-
-#  ifdef MB_CUR_MAX
-
-        /* We only handle single-byte locales (outside of UTF-8 ones; so if
-         * this locale requires more than one byte, there are going to be
-         * problems. */
-        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                 "%s:%d: check_for_problems=%d, MB_CUR_MAX=%d\n",
-                 __FILE__, __LINE__, check_for_problems, (int) MB_CUR_MAX));
-
-        if (   check_for_problems && MB_CUR_MAX > 1
-            && ! PL_in_utf8_CTYPE_locale
 
-               /* Some platforms return MB_CUR_MAX > 1 for even the "C"
-                * locale.  Just assume that the implementation for them (plus
-                * for POSIX) is correct and the > 1 value is spurious.  (Since
-                * these are specially handled to never be considered UTF-8
-                * locales, as long as this is the only problem, everything
-                * should work fine */
-            && strNE(newctype, "C") && strNE(newctype, "POSIX"))
-        {
-            multi_byte_locale = TRUE;
+            /* The casts are because otherwise some compilers warn:
+                gcc.gnu.org/bugzilla/show_bug.cgi?id=99950
+                gcc.gnu.org/bugzilla/show_bug.cgi?id=94182
+             */
+            PL_fold_locale[ (U8) 'I' ] = 'I';
+            PL_fold_locale[ (U8) 'i' ] = 'i';
+            PL_in_utf8_turkic_locale = TRUE;
+            DEBUG_L(PerlIO_printf(Perl_debug_log, "%s is turkic\n", newctype));
         }
 
-#  endif
-
         /* If we found problems and we want them output, do so */
-        if (   (UNLIKELY(bad_count) || UNLIKELY(multi_byte_locale))
+        if (   (UNLIKELY(bad_count))
             && (LIKELY(ckWARN_d(WARN_LOCALE)) || UNLIKELY(DEBUG_L_TEST)))
         {
-            if (UNLIKELY(bad_count) && PL_in_utf8_CTYPE_locale) {
+            /* WARNING.  If you change the wording of these; be sure to update
+             * t/loc_tools.pl correspondingly */
+
+            if (PL_in_utf8_CTYPE_locale) {
                 PL_warn_locale = Perl_newSVpvf(aTHX_
                      "Locale '%s' contains (at least) the following characters"
                      " which have\nunexpected meanings: %s\nThe Perl program"
@@ -1692,29 +2435,24 @@ S_new_ctype(pTHX_ const char *newctype)
                       newctype, bad_chars_list);
             }
             else {
-                PL_warn_locale = Perl_newSVpvf(aTHX_
-                             "Locale '%s' may not work well.%s%s%s\n",
-                             newctype,
-                             (multi_byte_locale)
-                              ? "  Some characters in it are not recognized by"
-                                " Perl."
-                              : "",
-                             (bad_count)
-                              ? "\nThe following characters (and maybe others)"
-                                " may not have the same meaning as the Perl"
-                                " program expects:\n"
-                              : "",
-                             (bad_count)
-                              ? bad_chars_list
-                              : ""
+                PL_warn_locale =
+                    Perl_newSVpvf(aTHX_
+                                  "\nThe following characters (and maybe"
+                                  " others) may not have the same meaning as"
+                                  " the Perl program expects: %s\n",
+                                  bad_chars_list
                             );
             }
 
-#  ifdef HAS_NL_LANGINFO
+#    ifdef HAS_SOME_LANGINFO
 
+            const char * scratch_buffer = NULL;
             Perl_sv_catpvf(aTHX_ PL_warn_locale, "; codeset=%s",
-                                    /* parameter FALSE is a don't care here */
-                                    my_nl_langinfo(CODESET, FALSE));
+                                 my_langinfo_c(CODESET, LC_CTYPE,
+                                               newctype,
+                                               &scratch_buffer, NULL,
+                                               NULL));
+            Safefree(scratch_buffer);
 
 #  endif
 
@@ -1728,7 +2466,8 @@ S_new_ctype(pTHX_ const char *newctype)
             if (IN_LC(LC_CTYPE) || UNLIKELY(DEBUG_L_TEST)) {
 
                 /* The '0' below suppresses a bogus gcc compiler warning */
-                Perl_warner(aTHX_ packWARN(WARN_LOCALE), SvPVX(PL_warn_locale), 0);
+                Perl_warner(aTHX_ packWARN(WARN_LOCALE), SvPVX(PL_warn_locale),
+                                                                            0);
 
                 if (IN_LC(LC_CTYPE)) {
                     SvREFCNT_dec_NN(PL_warn_locale);
@@ -1737,22 +2476,21 @@ S_new_ctype(pTHX_ const char *newctype)
             }
         }
     }
-
-#endif /* USE_LOCALE_CTYPE */
-
 }
 
+#  endif /* USE_LOCALE_CTYPE */
+
 void
 Perl__warn_problematic_locale()
 {
 
-#ifdef USE_LOCALE_CTYPE
+#  ifdef USE_LOCALE_CTYPE
 
     dTHX;
 
     /* Internal-to-core function that outputs the message in PL_warn_locale,
      * and then NULLS it.  Should be called only through the macro
-     * _CHECK_AND_WARN_PROBLEMATIC_LOCALE */
+     * CHECK_AND_WARN_PROBLEMATIC_LOCALE_ */
 
     if (PL_warn_locale) {
         Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),
@@ -1762,26 +2500,39 @@ Perl__warn_problematic_locale()
         PL_warn_locale = NULL;
     }
 
-#endif
+#  endif
 
 }
 
 STATIC void
-S_new_collate(pTHX_ const char *newcoll)
+S_new_LC_ALL(pTHX_ const char *unused, bool force)
 {
+    PERL_ARGS_ASSERT_NEW_LC_ALL;
+    PERL_UNUSED_ARG(unused);
 
-#ifndef USE_LOCALE_COLLATE
+    /* LC_ALL updates all the things we care about. */
 
-    PERL_UNUSED_ARG(newcoll);
-    PERL_UNUSED_CONTEXT;
+    for (unsigned int i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        if (update_functions[i]) {
+            const char * this_locale = querylocale_i(i);
+            update_functions[i](aTHX_ this_locale, force);
+        }
+    }
+}
 
-#else
+#  ifdef USE_LOCALE_COLLATE
+
+STATIC void
+S_new_collate(pTHX_ const char *newcoll, bool force)
+{
+    PERL_ARGS_ASSERT_NEW_COLLATE;
+    PERL_UNUSED_ARG(force);
 
     /* Called after each libc setlocale() call affecting LC_COLLATE, to tell
      * core Perl this and that 'newcoll' is the name of the new locale.
      *
      * The design of locale collation is that every locale change is given an
-     * index 'PL_collation_ix'.  The first time a string particpates in an
+     * index 'PL_collation_ix'.  The first time a string participates in an
      * operation that requires collation while locale collation is active, it
      * is given PERL_MAGIC_collxfrm magic (via sv_collxfrm_flags()).  That
      * magic includes the collation index, and the transformation of the string
@@ -1794,14 +2545,23 @@ S_new_collate(pTHX_ const char *newcoll)
      * that a transformation would improperly be considered valid, leading to
      * an unlikely bug */
 
-    if (! newcoll) {
-        if (PL_collation_name) {
-            ++PL_collation_ix;
-            Safefree(PL_collation_name);
-            PL_collation_name = NULL;
-        }
-        PL_collation_standard = TRUE;
-      is_standard_collation:
+    /* Return if the locale isn't changing */
+    if (strEQ(PL_collation_name, newcoll)) {
+        return;
+    }
+
+    Safefree(PL_collation_name);
+    PL_collation_name = savepv(newcoll);
+    ++PL_collation_ix;
+
+    /* Set the new one up if trivial.  Since this is called at process
+     * initialization, be aware that this bit can't rely on much being
+     * available. */
+    PL_collation_standard = isNAME_C_OR_POSIX(newcoll);
+    if (PL_collation_standard) {
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                               "Setting PL_collation name='%s'\n",
+                               PL_collation_name));
         PL_collxfrm_base = 0;
         PL_collxfrm_mult = 2;
         PL_in_utf8_COLLATE_locale = FALSE;
@@ -1810,240 +2570,105 @@ S_new_collate(pTHX_ const char *newcoll)
         return;
     }
 
-    /* If this is not the same locale as currently, set the new one up */
-    if (! PL_collation_name || strNE(PL_collation_name, newcoll)) {
-        ++PL_collation_ix;
-        Safefree(PL_collation_name);
-        PL_collation_name = stdize_locale(savepv(newcoll));
-        PL_collation_standard = isNAME_C_OR_POSIX(newcoll);
-        if (PL_collation_standard) {
-            goto is_standard_collation;
-        }
+    /* Flag that the remainder of the set up is being deferred until first
+     * need. */
+    PL_collxfrm_mult = 0;
+    PL_collxfrm_base = 0;
 
-        PL_in_utf8_COLLATE_locale = _is_cur_LC_category_utf8(LC_COLLATE);
-        PL_strxfrm_NUL_replacement = '\0';
-        PL_strxfrm_max_cp = 0;
+}
 
-        /* A locale collation definition includes primary, secondary, tertiary,
-         * etc. weights for each character.  To sort, the primary weights are
-         * used, and only if they compare equal, then the secondary weights are
-         * used, and only if they compare equal, then the tertiary, etc.
-         *
-         * strxfrm() works by taking the input string, say ABC, and creating an
-         * output transformed string consisting of first the primary weights,
-         * A¹B¹C¹ followed by the secondary ones, A²B²C²; and then the
-         * tertiary, etc, yielding A¹B¹C¹ A²B²C² A³B³C³ ....  Some characters
-         * may not have weights at every level.  In our example, let's say B
-         * doesn't have a tertiary weight, and A doesn't have a secondary
-         * weight.  The constructed string is then going to be
-         *  A¹B¹C¹ B²C² A³C³ ....
-         * This has the desired effect that strcmp() will look at the secondary
-         * or tertiary weights only if the strings compare equal at all higher
-         * priority weights.  The spaces shown here, like in
-         *  "A¹B¹C¹ A²B²C² "
-         * are not just for readability.  In the general case, these must
-         * actually be bytes, which we will call here 'separator weights'; and
-         * they must be smaller than any other weight value, but since these
-         * are C strings, only the terminating one can be a NUL (some
-         * implementations may include a non-NUL separator weight just before
-         * the NUL).  Implementations tend to reserve 01 for the separator
-         * weights.  They are needed so that a shorter string's secondary
-         * weights won't be misconstrued as primary weights of a longer string,
-         * etc.  By making them smaller than any other weight, the shorter
-         * string will sort first.  (Actually, if all secondary weights are
-         * smaller than all primary ones, there is no need for a separator
-         * weight between those two levels, etc.)
-         *
-         * The length of the transformed string is roughly a linear function of
-         * the input string.  It's not exactly linear because some characters
-         * don't have weights at all levels.  When we call strxfrm() we have to
-         * allocate some memory to hold the transformed string.  The
-         * calculations below try to find coefficients 'm' and 'b' for this
-         * locale so that m*x + b equals how much space we need, given the size
-         * of the input string in 'x'.  If we calculate too small, we increase
-         * the size as needed, and call strxfrm() again, but it is better to
-         * get it right the first time to avoid wasted expensive string
-         * transformations. */
+#  endif /* USE_LOCALE_COLLATE */
+#endif  /* USE_LOCALE */
 
-        {
-            /* We use the string below to find how long the tranformation of it
-             * is.  Almost all locales are supersets of ASCII, or at least the
-             * ASCII letters.  We use all of them, half upper half lower,
-             * because if we used fewer, we might hit just the ones that are
-             * outliers in a particular locale.  Most of the strings being
-             * collated will contain a preponderance of letters, and even if
-             * they are above-ASCII, they are likely to have the same number of
-             * weight levels as the ASCII ones.  It turns out that digits tend
-             * to have fewer levels, and some punctuation has more, but those
-             * are relatively sparse in text, and khw believes this gives a
-             * reasonable result, but it could be changed if experience so
-             * dictates. */
-            const char longer[] = "ABCDEFGHIJKLMnopqrstuvwxyz";
-            char * x_longer;        /* Transformed 'longer' */
-            Size_t x_len_longer;    /* Length of 'x_longer' */
-
-            char * x_shorter;   /* We also transform a substring of 'longer' */
-            Size_t x_len_shorter;
-
-            /* _mem_collxfrm() is used get the transformation (though here we
-             * are interested only in its length).  It is used because it has
-             * the intelligence to handle all cases, but to work, it needs some
-             * values of 'm' and 'b' to get it started.  For the purposes of
-             * this calculation we use a very conservative estimate of 'm' and
-             * 'b'.  This assumes a weight can be multiple bytes, enough to
-             * hold any UV on the platform, and there are 5 levels, 4 weight
-             * bytes, and a trailing NUL.  */
-            PL_collxfrm_base = 5;
-            PL_collxfrm_mult = 5 * sizeof(UV);
-
-            /* Find out how long the transformation really is */
-            x_longer = _mem_collxfrm(longer,
-                                     sizeof(longer) - 1,
-                                     &x_len_longer,
-
-                                     /* We avoid converting to UTF-8 in the
-                                      * called function by telling it the
-                                      * string is in UTF-8 if the locale is a
-                                      * UTF-8 one.  Since the string passed
-                                      * here is invariant under UTF-8, we can
-                                      * claim it's UTF-8 even though it isn't.
-                                      * */
-                                     PL_in_utf8_COLLATE_locale);
-            Safefree(x_longer);
-
-            /* Find out how long the transformation of a substring of 'longer'
-             * is.  Together the lengths of these transformations are
-             * sufficient to calculate 'm' and 'b'.  The substring is all of
-             * 'longer' except the first character.  This minimizes the chances
-             * of being swayed by outliers */
-            x_shorter = _mem_collxfrm(longer + 1,
-                                      sizeof(longer) - 2,
-                                      &x_len_shorter,
-                                      PL_in_utf8_COLLATE_locale);
-            Safefree(x_shorter);
-
-            /* If the results are nonsensical for this simple test, the whole
-             * locale definition is suspect.  Mark it so that locale collation
-             * is not active at all for it.  XXX Should we warn? */
-            if (   x_len_shorter == 0
-                || x_len_longer == 0
-                || x_len_shorter >= x_len_longer)
-            {
-                PL_collxfrm_mult = 0;
-                PL_collxfrm_base = 0;
-            }
-            else {
-                SSize_t base;       /* Temporary */
+#ifdef WIN32
 
-                /* We have both:    m * strlen(longer)  + b = x_len_longer
-                 *                  m * strlen(shorter) + b = x_len_shorter;
-                 * subtracting yields:
-                 *          m * (strlen(longer) - strlen(shorter))
-                 *                             = x_len_longer - x_len_shorter
-                 * But we have set things up so that 'shorter' is 1 byte smaller
-                 * than 'longer'.  Hence:
-                 *          m = x_len_longer - x_len_shorter
-                 *
-                 * But if something went wrong, make sure the multiplier is at
-                 * least 1.
-                 */
-                if (x_len_longer > x_len_shorter) {
-                    PL_collxfrm_mult = (STRLEN) x_len_longer - x_len_shorter;
-                }
-                else {
-                    PL_collxfrm_mult = 1;
-                }
+wchar_t *
+S_Win_byte_string_to_wstring(const UINT code_page, const char * byte_string)
+{
+    /* Caller must arrange to free the returned string */
 
-                /*     mx + b = len
-                 * so:      b = len - mx
-                 * but in case something has gone wrong, make sure it is
-                 * non-negative */
-                base = x_len_longer - PL_collxfrm_mult * (sizeof(longer) - 1);
-                if (base < 0) {
-                    base = 0;
-                }
+    int req_size = MultiByteToWideChar(code_page, 0, byte_string, -1, NULL, 0);
+    if (! req_size) {
+        SET_EINVAL;
+        return NULL;
+    }
 
-                /* Add 1 for the trailing NUL */
-                PL_collxfrm_base = base + 1;
-            }
+    wchar_t *wstring;
+    Newx(wstring, req_size, wchar_t);
 
-#  ifdef DEBUGGING
+    if (! MultiByteToWideChar(code_page, 0, byte_string, -1, wstring, req_size))
+    {
+        Safefree(wstring);
+        SET_EINVAL;
+        return NULL;
+    }
 
-            if (DEBUG_L_TEST || debug_initialization) {
-                PerlIO_printf(Perl_debug_log,
-                    "%s:%d: ?UTF-8 locale=%d; x_len_shorter=%zu, "
-                    "x_len_longer=%zu,"
-                    " collate multipler=%zu, collate base=%zu\n",
-                    __FILE__, __LINE__,
-                    PL_in_utf8_COLLATE_locale,
-                    x_len_shorter, x_len_longer,
-                    PL_collxfrm_mult, PL_collxfrm_base);
-            }
-#  endif
+    return wstring;
+}
 
-        }
-    }
+#define Win_utf8_string_to_wstring(s)  Win_byte_string_to_wstring(CP_UTF8, (s))
 
-#endif /* USE_LOCALE_COLLATE */
+char *
+S_Win_wstring_to_byte_string(const UINT code_page, const wchar_t * wstring)
+{
+    /* Caller must arrange to free the returned string */
 
-}
+    int req_size =
+            WideCharToMultiByte(code_page, 0, wstring, -1, NULL, 0, NULL, NULL);
 
-#endif
+    char *byte_string;
+    Newx(byte_string, req_size, char);
 
-#ifdef WIN32
+    if (! WideCharToMultiByte(code_page, 0, wstring, -1, byte_string,
+                                                         req_size, NULL, NULL))
+    {
+        Safefree(byte_string);
+        SET_EINVAL;
+        return NULL;
+    }
 
-#define USE_WSETLOCALE
+    return byte_string;
+}
 
-#ifdef USE_WSETLOCALE
+#define Win_wstring_to_utf8_string(ws) Win_wstring_to_byte_string(CP_UTF8, (ws))
 
-STATIC char *
-S_wrap_wsetlocale(pTHX_ int category, const char *locale) {
-    wchar_t *wlocale;
-    wchar_t *wresult;
-    char *result;
+STATIC const char *
+S_wrap_wsetlocale(pTHX_ const int category, const char *locale)
+{
+    PERL_ARGS_ASSERT_WRAP_WSETLOCALE;
 
-    if (locale) {
-        int req_size =
-            MultiByteToWideChar(CP_UTF8, 0, locale, -1, NULL, 0);
+    /* Calls _wsetlocale(), converting the parameters/return to/from
+     * Perl-expected forms as if plain setlocale() were being called instead.
+     */
 
-        if (!req_size) {
-            errno = EINVAL;
-            return NULL;
-        }
+    const wchar_t * wlocale = NULL;
 
-        Newx(wlocale, req_size, wchar_t);
-        if (!MultiByteToWideChar(CP_UTF8, 0, locale, -1, wlocale, req_size)) {
-            Safefree(wlocale);
-            errno = EINVAL;
+    if (locale) {
+        wlocale = Win_utf8_string_to_wstring(locale);
+        if (! wlocale) {
             return NULL;
         }
     }
-    else {
-        wlocale = NULL;
-    }
-    wresult = _wsetlocale(category, wlocale);
+
+    WSETLOCALE_LOCK;
+    const wchar_t * wresult = _wsetlocale(category, wlocale);
     Safefree(wlocale);
-    if (wresult) {
-        int req_size =
-            WideCharToMultiByte(CP_UTF8, 0, wresult, -1, NULL, 0, NULL, NULL);
-        Newx(result, req_size, char);
-        SAVEFREEPV(result); /* is there something better we can do here? */
-        if (!WideCharToMultiByte(CP_UTF8, 0, wresult, -1,
-                                 result, req_size, NULL, NULL)) {
-            errno = EINVAL;
-            return NULL;
-        }
-    }
-    else {
-        result = NULL;
+
+    if (! wresult) {
+        WSETLOCALE_UNLOCK;
+        return NULL;
     }
 
+    const char * result = Win_wstring_to_utf8_string(wresult);
+    WSETLOCALE_UNLOCK;
+
+    SAVEFREEPV(result); /* is there something better we can do here?  Answer:
+                           Without restructuring, returning a unique value each
+                           call is required.  See GH #20434 */
     return result;
 }
 
-#endif
-
-STATIC char *
+STATIC const char *
 S_win32_setlocale(pTHX_ int category, const char* locale)
 {
     /* This, for Windows, emulates POSIX setlocale() behavior.  There is no
@@ -2060,90 +2685,32 @@ S_win32_setlocale(pTHX_ int category, co
      * use the particular category's variable if set; otherwise to use the LANG
      * variable. */
 
-    bool override_LC_ALL = FALSE;
-    char * result;
-    unsigned int i;
-
-    if (locale && strEQ(locale, "")) {
-
-#  ifdef LC_ALL
-
-        locale = PerlEnv_getenv("LC_ALL");
-        if (! locale) {
-            if (category ==  LC_ALL) {
-                override_LC_ALL = TRUE;
-            }
-            else {
-
-#  endif
-
-                for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
-                    if (category == categories[i]) {
-                        locale = PerlEnv_getenv(category_names[i]);
-                        goto found_locale;
-                    }
-                }
-
-                locale = PerlEnv_getenv("LANG");
-                if (! locale) {
-                    locale = "";
-                }
-
-              found_locale: ;
+    if (locale == NULL) {
+        return wrap_wsetlocale(category, NULL);
+    }
 
-#  ifdef LC_ALL
+    if (strEQ(locale, "")) {
+        /* Note this function may change the locale, but that's ok because we
+         * are about to change it anyway */
+        locale = find_locale_from_environment(get_category_index(category, ""));
+    }
 
-            }
-        }
+    const char * result = wrap_wsetlocale(category, locale);
+    DEBUG_L(PerlIO_printf(Perl_debug_log, "%s\n",
+                          setlocale_debug_string_r(category, locale, result)));
 
-#  endif
+#  ifdef USE_PL_CUR_LC_ALL
 
+    /* If we need to keep track of LC_ALL, update it to the new value.  */
+    Safefree(PL_cur_LC_ALL);
+    if (category == LC_ALL) {
+        PL_cur_LC_ALL = savepv(result);
     }
-
-#ifdef USE_WSETLOCALE
-    result = S_wrap_wsetlocale(aTHX_ category, locale);
-#else
-    result = setlocale(category, locale);
-#endif
-    DEBUG_L(STMT_START {
-                dSAVE_ERRNO;
-                PerlIO_printf(Perl_debug_log, "%s:%d: %s\n", __FILE__, __LINE__,
-                            setlocale_debug_string(category, locale, result));
-                RESTORE_ERRNO;
-            } STMT_END);
-
-    if (! override_LC_ALL)  {
-        return result;
-    }
-
-    /* Here the input category was LC_ALL, and we have set it to what is in the
-     * LANG variable or the system default if there is no LANG.  But these have
-     * lower priority than the other LC_foo variables, so override it for each
-     * one that is set.  (If they are set to "", it means to use the same thing
-     * we just set LC_ALL to, so can skip) */
-
-    for (i = 0; i < LC_ALL_INDEX; i++) {
-        result = PerlEnv_getenv(category_names[i]);
-        if (result && strNE(result, "")) {
-#ifdef USE_WSETLOCALE
-            S_wrap_wsetlocale(aTHX_ categories[i], result);
-#else
-            setlocale(categories[i], result);
-#endif
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log, "%s:%d: %s\n",
-                __FILE__, __LINE__,
-                setlocale_debug_string(categories[i], result, "not captured")));
-        }
+    else {
+        PL_cur_LC_ALL = savepv(wrap_wsetlocale(LC_ALL, NULL));
     }
 
-    result = setlocale(LC_ALL, NULL);
-    DEBUG_L(STMT_START {
-                dSAVE_ERRNO;
-                PerlIO_printf(Perl_debug_log, "%s:%d: %s\n",
-                               __FILE__, __LINE__,
-                               setlocale_debug_string(LC_ALL, NULL, result));
-                RESTORE_ERRNO;
-            } STMT_END);
+#  endif
 
     return result;
 }
@@ -2169,219 +2736,1156 @@ C<const> (presumably because its API was
 updated; it is illegal to change the information C<setlocale> returns; doing
 so leads to segfaults.)
 
-Finally, C<Perl_setlocale> works under all circumstances, whereas plain
-C<setlocale> can be completely ineffective on some platforms under some
-configurations.
+Finally, C<Perl_setlocale> works under all circumstances, whereas plain
+C<setlocale> can be completely ineffective on some platforms under some
+configurations.
+
+Changing the locale is not a good idea when more than one thread is running,
+except on systems where the predefined variable C<${^SAFE_LOCALES}> is 1.
+This is because on such systems the locale is global to the whole process and
+not local to just the thread calling the function.  So changing it in one
+thread instantaneously changes it in all.  On some such systems, the system
+C<setlocale()> is ineffective, returning the wrong information, and failing to
+actually change the locale.  z/OS refuses to try to change the locale once a
+second thread is created.  C<Perl_setlocale>, should give you accurate results
+of what actually happened on these problematic platforms, returning NULL if the
+system forbade the locale change.
+
+The return points to a per-thread static buffer, which is overwritten the next
+time C<Perl_setlocale> is called from the same thread.
+
+=cut
+
+*/
+
+#ifndef USE_LOCALE_NUMERIC
+#  define affects_LC_NUMERIC(cat) 0
+#elif defined(LC_ALL)
+#  define affects_LC_NUMERIC(cat) (cat == LC_NUMERIC || cat == LC_ALL)
+#else
+#  define affects_LC_NUMERIC(cat) (cat == LC_NUMERIC)
+#endif
+
+const char *
+Perl_setlocale(const int category, const char * locale)
+{
+    /* This wraps POSIX::setlocale() */
+
+#ifndef USE_LOCALE
+
+    PERL_UNUSED_ARG(category);
+    PERL_UNUSED_ARG(locale);
+
+    return "C";
+
+#else
+
+    const char * retval;
+    dTHX;
+
+    DEBUG_L(PerlIO_printf(Perl_debug_log,
+                          "Entering Perl_setlocale(%d, \"%s\")\n",
+                          category, locale));
+
+    /* A NULL locale means only query what the current one is. */
+    if (locale == NULL) {
+
+#  ifndef USE_LOCALE_NUMERIC
+
+        /* Without LC_NUMERIC, it's trivial; we just return the value */
+        return save_to_buffer(querylocale_r(category),
+                              &PL_setlocale_buf, &PL_setlocale_bufsize);
+#  else
+
+        /* We have the LC_NUMERIC name saved, because we are normally switched
+         * into the C locale (or equivalent) for it. */
+        if (category == LC_NUMERIC) {
+            DEBUG_L(PerlIO_printf(Perl_debug_log,
+                    "Perl_setlocale(LC_NUMERIC, NULL) returning stashed '%s'\n",
+                    PL_numeric_name));
+
+            /* We don't have to copy this return value, as it is a per-thread
+             * variable, and won't change until a future setlocale */
+            return PL_numeric_name;
+        }
+
+#    ifndef LC_ALL
+
+        /* Without LC_ALL, just return the value */
+        return save_to_buffer(querylocale_r(category),
+                              &PL_setlocale_buf, &PL_setlocale_bufsize);
+
+#    else
+
+        /* Here, LC_ALL is available on this platform.  It's the one
+         * complicating category (because it can contain a toggled LC_NUMERIC
+         * value), for all the remaining ones (we took care of LC_NUMERIC
+         * above), just return the value */
+        if (category != LC_ALL) {
+            return save_to_buffer(querylocale_r(category),
+                                  &PL_setlocale_buf, &PL_setlocale_bufsize);
+        }
+
+        bool toggled = FALSE;
+
+        /* For an LC_ALL query, switch back to the underlying numeric locale
+         * (if we aren't there already) so as to get the correct results.  Our
+         * records for all the other categories are valid without switching */
+        if (! PL_numeric_underlying) {
+            set_numeric_underlying();
+            toggled = TRUE;
+        }
+
+        retval = querylocale_c(LC_ALL);
+
+        if (toggled) {
+            set_numeric_standard();
+        }
+
+        DEBUG_L(PerlIO_printf(Perl_debug_log, "%s\n",
+                            setlocale_debug_string_r(category, locale, retval)));
+
+        return save_to_buffer(retval, &PL_setlocale_buf, &PL_setlocale_bufsize);
+
+#    endif      /* Has LC_ALL */
+#  endif        /* Has LC_NUMERIC */
+
+    } /* End of querying the current locale */
+
+
+    unsigned int cat_index = get_category_index(category, NULL);
+    retval = querylocale_i(cat_index);
+
+    /* If the new locale is the same as the current one, nothing is actually
+     * being changed, so do nothing. */
+    if (      strEQ(retval, locale)
+        && (   ! affects_LC_NUMERIC(category)
+
+#  ifdef USE_LOCALE_NUMERIC
+
+            || strEQ(locale, PL_numeric_name)
+
+#  endif
+
+    )) {
+        DEBUG_L(PerlIO_printf(Perl_debug_log,
+                              "Already in requested locale: no action taken\n"));
+        return save_to_buffer(retval, &PL_setlocale_buf, &PL_setlocale_bufsize);
+    }
+
+    /* Here, an actual change is being requested.  Do it */
+    retval = setlocale_i(cat_index, locale);
+
+    if (! retval) {
+        DEBUG_L(PerlIO_printf(Perl_debug_log, "%s\n",
+                          setlocale_debug_string_i(cat_index, locale, "NULL")));
+        return NULL;
+    }
+
+    assert(strNE(retval, ""));
+    retval = save_to_buffer(retval, &PL_setlocale_buf, &PL_setlocale_bufsize);
+
+    /* Now that have changed locales, we have to update our records to
+     * correspond.  Only certain categories have extra work to update. */
+    if (update_functions[cat_index]) {
+        update_functions[cat_index](aTHX_ retval, false);
+    }
+
+    DEBUG_L(PerlIO_printf(Perl_debug_log, "returning '%s'\n", retval));
+
+    return retval;
+
+#endif
+
+}
+
+STATIC utf8ness_t
+S_get_locale_string_utf8ness_i(pTHX_ const char * string,
+                                     const locale_utf8ness_t known_utf8,
+                                     const char * locale,
+                                     const unsigned cat_index)
+{
+    PERL_ARGS_ASSERT_GET_LOCALE_STRING_UTF8NESS_I;
+
+#ifndef USE_LOCALE
+
+    return UTF8NESS_NO;
+    PERL_UNUSED_ARG(string);
+    PERL_UNUSED_ARG(known_utf8);
+    PERL_UNUSED_ARG(locale);
+    PERL_UNUSED_ARG(cat_index);
+
+#else
+
+    assert(cat_index <= NOMINAL_LC_ALL_INDEX);
+
+    /* Return to indicate if 'string' in the locale given by the input
+     * arguments should be considered UTF-8 or not.
+     *
+     * If the input 'locale' is not NULL, use that for the locale; otherwise
+     * use the current locale for the category specified by 'cat_index'.
+     */
+
+    if (string == NULL) {
+        return UTF8NESS_NO;
+    }
+
+    if (IN_BYTES) { /* respect 'use bytes' */
+        return UTF8NESS_NO;
+    }
+
+    Size_t len = strlen(string);
+
+    /* UTF8ness is immaterial if the representation doesn't vary */
+    const U8 * first_variant = NULL;
+    if (is_utf8_invariant_string_loc((U8 *) string, len, &first_variant)) {
+        return UTF8NESS_IMMATERIAL;
+    }
+
+    /* Can't be UTF-8 if invalid */
+    if (! is_utf8_string((U8 *) first_variant,
+                         len - ((char *) first_variant - string)))
+    {
+        return UTF8NESS_NO;
+    }
+
+    /* Here and below, we know the string is legal UTF-8, containing at least
+     * one character requiring a sequence of two or more bytes.  It is quite
+     * likely to be UTF-8.  But it pays to be paranoid and do further checking.
+     *
+     * If we already know the UTF-8ness of the locale, then we immediately know
+     * what the string is */
+    if (UNLIKELY(known_utf8 != LOCALE_UTF8NESS_UNKNOWN)) {
+        if (known_utf8 == LOCALE_IS_UTF8) {
+            return UTF8NESS_YES;
+        }
+        else {
+            return UTF8NESS_NO;
+        }
+    }
+
+#  ifdef HAS_RELIABLE_UTF8NESS_DETERMINATION
+
+    /* Here, we have available the libc functions that can be used to
+     * accurately determine the UTF8ness of the underlying locale.  If it is a
+     * UTF-8 locale, the string is UTF-8;  otherwise it was coincidental that
+     * the string is legal UTF-8
+     *
+     * However, if the perl is compiled to not pay attention to the category
+     * being passed in, you might think that that locale is essentially always
+     * the C locale, so it would make sense to say it isn't UTF-8.  But to get
+     * here, the string has to contain characters unknown in the C locale.  And
+     * in fact, Windows boxes are compiled without LC_MESSAGES, as their
+     * message catalog isn't really a part of the locale system.  But those
+     * messages really could be UTF-8, and given that the odds are rather small
+     * of something not being UTF-8 but being syntactically valid UTF-8, khw
+     * has decided to call such strings as UTF-8. */
+
+    if (locale == NULL) {
+        locale = querylocale_i(cat_index);
+    }
+    if (is_locale_utf8(locale)) {
+        return UTF8NESS_YES;
+    }
+
+    return UTF8NESS_NO;
+
+#  else
+
+    /* Here, we have a valid UTF-8 string containing non-ASCII characters, and
+     * don't have access to functions to check if the locale is UTF-8 or not.
+     * Assume that it is.  khw tried adding a check that the string is entirely
+     * in a single Unicode script, but discovered the strftime() timezone is
+     * user-settable through the environment, which may be in a different
+     * script than the locale-expected value. */
+    PERL_UNUSED_ARG(locale);
+    PERL_UNUSED_ARG(cat_index);
+
+    return UTF8NESS_YES;
+
+#  endif
+#endif
+
+}
+
+STATIC bool
+S_is_locale_utf8(pTHX_ const char * locale)
+{
+    /* Returns TRUE if the locale 'locale' is UTF-8; FALSE otherwise.  It uses
+     * my_langinfo(), which employs various methods to get this information
+     * if nl_langinfo() isn't available, using heuristics as a last resort, in
+     * which case, the result will very likely be correct for locales for
+     * languages that have commonly used non-ASCII characters, but for notably
+     * English, it comes down to if the locale's name ends in something like
+     * "UTF-8".  It errs on the side of not being a UTF-8 locale. */
+
+#  if ! defined(USE_LOCALE)                                                   \
+   || ! defined(USE_LOCALE_CTYPE)                                             \
+   ||   defined(EBCDIC) /* There aren't any real UTF-8 locales at this time */
+
+    PERL_UNUSED_ARG(locale);
+
+    return FALSE;
+
+#  else
+
+    const char * scratch_buffer = NULL;
+    const char * codeset;
+    bool retval;
+
+    PERL_ARGS_ASSERT_IS_LOCALE_UTF8;
+
+    if (strEQ(locale, PL_ctype_name)) {
+        return PL_in_utf8_CTYPE_locale;
+    }
+
+    codeset = my_langinfo_c(CODESET, LC_CTYPE, locale,
+                            &scratch_buffer, NULL, NULL);
+    retval = is_codeset_name_UTF8(codeset);
+
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                           "found codeset=%s, is_utf8=%d\n", codeset, retval));
+
+    Safefree(scratch_buffer);
+    return retval;
+
+#  endif
+
+}
+
+#ifdef USE_LOCALE
+
+STATIC const char *
+S_save_to_buffer(const char * string, const char **buf, Size_t *buf_size)
+{
+    /* Copy the NUL-terminated 'string' to a buffer whose address before this
+     * call began at *buf, and whose available length before this call was
+     * *buf_size.
+     *
+     * If the length of 'string' is greater than the space available, the
+     * buffer is grown accordingly, which may mean that it gets relocated.
+     * *buf and *buf_size will be updated to reflect this.
+     *
+     * Regardless, the function returns a pointer to where 'string' is now
+     * stored.
+     *
+     * 'string' may be NULL, which means no action gets taken, and NULL is
+     * returned.
+     *
+     * If *buf or 'buf_size' are NULL or *buf_size is 0, the buffer is assumed
+     * empty, and memory is malloc'd.   'buf-size' being NULL is to be used
+     * when this is a single use buffer, which will shortly be freed by the
+     * caller.
+     */
+
+    Size_t string_size;
+
+    PERL_ARGS_ASSERT_SAVE_TO_BUFFER;
+
+    if (! string) {
+        return NULL;
+    }
+
+    /* No-op to copy over oneself */
+    if (string == *buf) {
+        return string;
+    }
+
+    string_size = strlen(string) + 1;
+
+    if (buf_size == NULL) {
+        Newx(*buf, string_size, char);
+    }
+    else if (*buf_size == 0) {
+        Newx(*buf, string_size, char);
+        *buf_size = string_size;
+    }
+    else if (string_size > *buf_size) {
+        Renew(*buf, string_size, char);
+        *buf_size = string_size;
+    }
+
+    {
+        dTHX_DEBUGGING;
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                         "Copying '%s' to %p\n",
+                         ((is_utf8_string((U8 *) string, 0))
+                          ? string
+                          :_byte_dump_string((U8 *) string, strlen(string), 0)),
+                          *buf));
+    }
+
+#    ifdef DEBUGGING
+
+    /* Catch glitches.  Usually this is because LC_CTYPE needs to be the same
+     * locale as whatever is being worked on */
+    if (UNLIKELY(instr(string, REPLACEMENT_CHARACTER_UTF8))) {
+        dTHX_DEBUGGING;
+
+        locale_panic_(Perl_form(aTHX_
+                                "Unexpected REPLACEMENT_CHARACTER in '%s'\n%s",
+                                string, get_LC_ALL_display()));
+    }
+
+#    endif
+
+    Copy(string, *buf, string_size, char);
+    return *buf;
+}
+
+#  ifdef WIN32
+
+bool
+Perl_get_win32_message_utf8ness(pTHX_ const char * string)
+{
+    /* NULL => locale irrelevant, 0 => category irrelevant
+     * so returns based on the UTF-8 legality of the input string, ignoring the
+     * locale and category completely.
+     *
+     * This is because Windows doesn't have LC_MESSAGES */
+    return get_locale_string_utf8ness_i(string, LOCALE_IS_UTF8, NULL, 0);
+}
+
+#  endif
+#endif  /* USE_LOCALE */
+
+
+int
+Perl_mbtowc_(pTHX_ const wchar_t * pwc, const char * s, const Size_t len)
+{
+
+#if ! defined(HAS_MBRTOWC) && ! defined(HAS_MBTOWC)
+
+    PERL_UNUSED_ARG(pwc);
+    PERL_UNUSED_ARG(s);
+    PERL_UNUSED_ARG(len);
+    return -1;
+
+#else   /* Below we have some form of mbtowc() */
+#   if defined(HAS_MBRTOWC)                                     \
+   && (defined(USE_LOCALE_THREADS) || ! defined(HAS_MBTOWC))
+#    define USE_MBRTOWC
+#  else
+#    undef USE_MBRTOWC
+#  endif
+
+    int retval = -1;
+
+    if (s == NULL) { /* Initialize the shift state to all zeros in
+                        PL_mbrtowc_ps. */
+
+#  if defined(USE_MBRTOWC)
+
+        memzero(&PL_mbrtowc_ps, sizeof(PL_mbrtowc_ps));
+        return 0;
+
+#  else
+
+        MBTOWC_LOCK_;
+        SETERRNO(0, 0);
+        retval = mbtowc(NULL, NULL, 0);
+        MBTOWC_UNLOCK_;
+        return retval;
+
+#  endif
+
+    }
+
+#  if defined(USE_MBRTOWC)
+
+    SETERRNO(0, 0);
+    retval = (SSize_t) mbrtowc((wchar_t *) pwc, s, len, &PL_mbrtowc_ps);
+
+#  else
+
+    /* Locking prevents races, but locales can be switched out without locking,
+     * so this isn't a cure all */
+    MBTOWC_LOCK_;
+    SETERRNO(0, 0);
+    retval = mbtowc((wchar_t *) pwc, s, len);
+    MBTOWC_UNLOCK_;
+
+#  endif
+
+    return retval;
+
+#endif
+
+}
+
+/*
+=for apidoc Perl_localeconv
+
+This is a thread-safe version of the libc L<localeconv(3)>.  It is the same as
+L<POSIX::localeconv|POSIX/localeconv> (returning a hash of the C<localeconv()>
+fields), but directly callable from XS code.
+
+=cut
+*/
+
+HV *
+Perl_localeconv(pTHX)
+{
+
+#if  ! defined(HAS_LOCALECONV)
+
+    return newHV();
+
+#else
+
+    return my_localeconv(0);
+
+#endif
+
+}
+
+#if  defined(HAS_LOCALECONV)
+
+HV *
+S_my_localeconv(pTHX_ const int item)
+{
+    PERL_ARGS_ASSERT_MY_LOCALECONV;
+
+    /* This returns a mortalized hash containing all or one of the elements
+     * returned by localeconv().  It is used by Perl_localeconv() and
+     * POSIX::localeconv() and is thread-safe.
+     *
+     * There are two use cases:
+     * 1) Called from POSIX::locale_conv().  This returns the lconv structure
+     *    copied to a hash, based on the current underlying locales for
+     *    LC_NUMERIC and LC_MONETARY. An input item==0 signifies this case, or
+     *    on many platforms it is the only use case compiled.
+     * 2) Certain items that nl_langinfo() provides are also derivable from
+     *    the return of localeconv().  Windows notably doesn't have
+     *    nl_langinfo(), so on that, and actually any platform lacking it,
+     *    my_localeconv() is used also to emulate it for those particular
+     *    items.  The code to do this is compiled only on such platforms.
+     *    Rather than going to the expense of creating a full hash when only
+     *    one item is needed, the returned hash has just the desired item in
+     *    it.
+     *
+     * To access all the localeconv() struct lconv fields, there is a data
+     * structure that contains every commonly documented field in it.  (Maybe
+     * some minority platforms have extra fields.  Those could be added here
+     * without harm; they would just be ignored on platforms lacking them.)
+     *
+     * Our structure is compiled to make looping through the fields easier by
+     * pointing each name to its value's offset within lconv, e.g.,
+        { "thousands_sep", STRUCT_OFFSET(struct lconv, thousands_sep) }
+     */
+#  define LCONV_ENTRY(name)                                           \
+                {STRINGIFY(name), STRUCT_OFFSET(struct lconv, name)}
+
+    /* These synonyms are just for clarity, and to make it easier in case
+     * something needs to change in the future */
+#  define LCONV_NUMERIC_ENTRY(name)  LCONV_ENTRY(name)
+#  define LCONV_MONETARY_ENTRY(name) LCONV_ENTRY(name)
+
+    /* There are just a few fields for NUMERIC strings */
+    const lconv_offset_t lconv_numeric_strings[] = {
+#  ifndef NO_LOCALECONV_GROUPING
+        LCONV_NUMERIC_ENTRY(grouping),
+#   endif
+        LCONV_NUMERIC_ENTRY(thousands_sep),
+        LCONV_NUMERIC_ENTRY(decimal_point),
+        {NULL, 0}
+    };
+
+    /* When used to implement nl_langinfo(), we save time by only populating
+     * the hash with the field(s) needed.  Thus we would need a data structure
+     * of just:
+     *  LCONV_NUMERIC_ENTRY(decimal_point),
+     *  {NULL, 0}
+     *
+     * By placing the decimal_point field last in the full structure, we can
+     * use just the tail for this bit of it, saving space.  This macro yields
+     * the address of the sub structure. */
+#  define DECIMAL_POINT_ADDRESS                                             \
+        &lconv_numeric_strings[(C_ARRAY_LENGTH(lconv_numeric_strings) - 2)]
+
+    /* And the MONETARY string fields */
+    const lconv_offset_t lconv_monetary_strings[] = {
+        LCONV_MONETARY_ENTRY(int_curr_symbol),
+        LCONV_MONETARY_ENTRY(mon_decimal_point),
+#  ifndef NO_LOCALECONV_MON_THOUSANDS_SEP
+        LCONV_MONETARY_ENTRY(mon_thousands_sep),
+#  endif
+#  ifndef NO_LOCALECONV_MON_GROUPING
+        LCONV_MONETARY_ENTRY(mon_grouping),
+#  endif
+        LCONV_MONETARY_ENTRY(positive_sign),
+        LCONV_MONETARY_ENTRY(negative_sign),
+        LCONV_MONETARY_ENTRY(currency_symbol),
+        {NULL, 0}
+    };
+
+    /* Like above, this field being last can be used as a sub structure */
+#  define CURRENCY_SYMBOL_ADDRESS                                            \
+      &lconv_monetary_strings[(C_ARRAY_LENGTH(lconv_monetary_strings) - 2)]
+
+    /* Finally there are integer fields, all are for monetary purposes */
+    const lconv_offset_t lconv_integers[] = {
+        LCONV_ENTRY(int_frac_digits),
+        LCONV_ENTRY(frac_digits),
+        LCONV_ENTRY(p_sep_by_space),
+        LCONV_ENTRY(n_cs_precedes),
+        LCONV_ENTRY(n_sep_by_space),
+        LCONV_ENTRY(p_sign_posn),
+        LCONV_ENTRY(n_sign_posn),
+#  ifdef HAS_LC_MONETARY_2008
+        LCONV_ENTRY(int_p_cs_precedes),
+        LCONV_ENTRY(int_p_sep_by_space),
+        LCONV_ENTRY(int_n_cs_precedes),
+        LCONV_ENTRY(int_n_sep_by_space),
+        LCONV_ENTRY(int_p_sign_posn),
+        LCONV_ENTRY(int_n_sign_posn),
+#  endif
+        LCONV_ENTRY(p_cs_precedes),
+        {NULL, 0}
+    };
+
+    /* Like above, this field being last can be used as a sub structure */
+#  define P_CS_PRECEDES_ADDRESS                                       \
+      &lconv_integers[(C_ARRAY_LENGTH(lconv_integers) - 2)]
+
+    /* If we aren't paying attention to a given category, use LC_CTYPE instead;
+     * If not paying attention to that either, the code below should end up not
+     * using this.  Make sure that things blow up if that avoidance gets lost,
+     * by setting the category to -1 */
+    unsigned int numeric_index;
+    unsigned int monetary_index;
+
+#  ifdef USE_LOCALE_NUMERIC
+    numeric_index = LC_NUMERIC_INDEX_;
+#  elif defined(USE_LOCALE_CTYPE)
+    numeric_index = LC_CTYPE_INDEX_;
+#  else
+    numeric_index = (unsigned) -1;
+#  endif
+#  ifdef USE_LOCALE_MONETARY
+    monetary_index = LC_MONETARY_INDEX_;
+#  elif defined(USE_LOCALE_CTYPE)
+    monetary_index = LC_CTYPE_INDEX_;
+#  else
+    monetary_index = (unsigned) -1;
+#  endif
+
+    /* Some platforms, for correct non-mojibake results, require LC_CTYPE's
+     * locale to match LC_NUMERIC's for the numeric fields, and LC_MONETARY's
+     * for the monetary ones.  What happens if LC_NUMERIC and LC_MONETARY
+     * aren't compatible?  Wrong results.  To avoid that, we call localeconv()
+     * twice, once for each locale, setting LC_CTYPE to match the category.
+     * But if the locales of both categories are the same, there is no need for
+     * a second call.  Assume this is the case unless overridden below */
+    bool requires_2nd_localeconv = false;
+
+    /* The actual hash populating is done by S_populate_hash_from_localeconv().
+     * It gets passed an array of length two containing the data structure it
+     * is supposed to use to get the key names to fill the hash with.  One
+     * element is alwasy for the NUMERIC strings (or NULL if none to use), and
+     * the other element similarly for the MONETARY ones. */
+#    define NUMERIC_STRING_OFFSET   0
+#    define MONETARY_STRING_OFFSET  1
+    const lconv_offset_t * strings[2] = { NULL, NULL };
+
+    /* This is a mask, with one bit to tell S_populate_hash_from_localeconv to
+     * populate the NUMERIC items; another bit for the MONETARY ones.  This way
+     * it can choose which (or both) to populate from */
+    U32 index_bits = 0;
+
+    /* This converts from a locale index to its bit position in the above mask.
+     * */
+#  define INDEX_TO_BIT(i)  (1 << (i))
+
+    /* The two categories can have disparate locales.  Initialize them to C and
+     * override later whichever one(s) we pay attention to */
+    const char * numeric_locale = "C";
+    const char * monetary_locale = "C";
+
+    /* This will be either 'numeric_locale' or 'monetary_locale' depending on
+     * what we are working on at the moment */
+    const char * locale;
+
+    /* The LC_MONETARY category also has some integer-valued fields, whose
+     * information is kept in a separate list */
+    const lconv_offset_t * integers;
+
+#  ifdef HAS_SOME_LANGINFO
+
+    /* If the only use-case for this is the full localeconv(), the 'item'
+     * parameter is ignored. */
+    PERL_UNUSED_ARG(item);
+
+#  else
+
+    /* This only gets compiled for the use-case of using localeconv() to
+     * emulate an nl_langinfo() missing from the platform.
+     *
+     * We need this substructure to only return this field for the THOUSEP
+     * item.  The other items also need substructures, but they were handled
+     * above by placing the substructure's item at the end of the full one, so
+     * the data structure could do double duty.  However, both this and
+     * RADIXCHAR would need to be in the final position of the same full
+     * structure; an impossibility.  So make this into a separate structure */
+    const lconv_offset_t  thousands_sep_string[] = {
+        LCONV_NUMERIC_ENTRY(thousands_sep),
+        {NULL, 0}
+    };
+
+    /* End of all the initialization of datastructures.  Now for actual code.
+     *
+     * Without nl_langinfo(), the call to my_localeconv() could be for just one
+     * of the following 3 items to emulate nl_langinfo().  This is compiled
+     * only when using perl_langinfo.h, which we control, and it has been
+     * constructed so that no item is numbered 0.
+     *
+     * For each, setup the appropriate parameters for the call below to
+     * S_populate_hash_from_localeconv() */
+    if (item != 0) switch (item) {
+      default:
+        locale_panic_(Perl_form(aTHX_
+                    "Unexpected item passed to my_localeconv: %d", item));
+        break;
+
+#    ifdef USE_LOCALE_NUMERIC
+
+      case RADIXCHAR:
+        locale = numeric_locale = PL_numeric_name;
+        index_bits = INDEX_TO_BIT(LC_NUMERIC_INDEX_);
+        strings[NUMERIC_STRING_OFFSET] = DECIMAL_POINT_ADDRESS;
+        integers = NULL;
+        break;
+
+      case THOUSEP:
+        index_bits = INDEX_TO_BIT(LC_NUMERIC_INDEX_);
+        locale = numeric_locale = PL_numeric_name;
+        strings[NUMERIC_STRING_OFFSET] = thousands_sep_string;
+        integers = NULL;
+        break;
+
+#    endif
+#    ifdef USE_LOCALE_MONETARY
+
+      case CRNCYSTR:
+        index_bits = INDEX_TO_BIT(LC_MONETARY_INDEX_);
+        locale = monetary_locale = querylocale_i(LC_MONETARY_INDEX_);
+
+        /* This item needs the values for both the currency symbol, and another
+         * one used to construct the nl_langino()-compatible return */
+        strings[MONETARY_STRING_OFFSET] = CURRENCY_SYMBOL_ADDRESS;
+        integers = P_CS_PRECEDES_ADDRESS;
+        break;
 
-C<Perl_setlocale> should not be used to change the locale except on systems
-where the predefined variable C<${^SAFE_LOCALES}> is 1.  On some such systems,
-the system C<setlocale()> is ineffective, returning the wrong information, and
-failing to actually change the locale.  C<Perl_setlocale>, however works
-properly in all circumstances.
+#    endif
 
-The return points to a per-thread static buffer, which is overwritten the next
-time C<Perl_setlocale> is called from the same thread.
+    } /* End of switch() */
 
-=cut
+    else    /* End of for just one item to emulate nl_langinfo() */
 
-*/
+#  endif
 
-const char *
-Perl_setlocale(const int category, const char * locale)
-{
-    /* This wraps POSIX::setlocale() */
+    {   /* Here, the call is for all of localeconv().  It has a bunch of
+         * items.  As in the individual item case, set up the parameters for
+         * S_populate_hash_from_localeconv(); */
 
-#ifndef USE_LOCALE
+#  ifdef USE_LOCALE_NUMERIC
+        numeric_locale = PL_numeric_name;
+#  elif defined(USE_LOCALE_CTYPE)
+        numeric_locale = querylocale_i(numeric_index);
+#  endif
+#  if defined(USE_LOCALE_MONETARY) || defined(USE_LOCALE_CTYPE)
+        monetary_locale = querylocale_i(monetary_index);
+#  endif
+
+        /* The first call to S_populate_hash_from_localeconv() will be for the
+         * MONETARY values */
+        index_bits = INDEX_TO_BIT(monetary_index);
+        locale = monetary_locale;
+
+        /* And if the locales for the two categories are the same, we can also
+         * do the NUMERIC values in the same call */
+        if (strEQ(numeric_locale, monetary_locale)) {
+            index_bits |= INDEX_TO_BIT(numeric_index);
+        }
+        else {
+            requires_2nd_localeconv = true;
+        }
 
-    PERL_UNUSED_ARG(category);
-    PERL_UNUSED_ARG(locale);
+        /* We always pass both sets of strings. 'index_bits' tells
+         * S_populate_hash_from_localeconv which to actually look at */
+        strings[NUMERIC_STRING_OFFSET] = lconv_numeric_strings;
+        strings[MONETARY_STRING_OFFSET] = lconv_monetary_strings;
+
+        /* And pass the integer values to populate; again 'index_bits' will
+         * say to use them or not */
+        integers = lconv_integers;
+
+    }   /* End of call is for localeconv() */
+
+    /* The code above has determined the parameters to
+       S_populate_hash_from_localeconv() for both cases of an individual item
+       and for the entire structure.  Below is code common to both */
+
+    HV * hv = newHV();      /* The returned hash, initially empty */
+    sv_2mortal((SV*)hv);
+
+    /* Call localeconv() and copy its results into the hash.  All the
+     * parameters have been initialized above */
+    populate_hash_from_localeconv(hv,
+                                  locale,
+                                  index_bits,
+                                  strings,
+                                  integers
+                                 );
+
+    /* The above call may have done all the hash fields, but not always, as
+     * already explained.  If we need a second call it is always for the
+     * NUMERIC fields */
+    if (requires_2nd_localeconv) {
+        populate_hash_from_localeconv(hv,
+                                      numeric_locale,
+                                      INDEX_TO_BIT(numeric_index),
+                                      strings,
+                                      NULL      /* There are No NUMERIC integer
+                                                   fields */
+                                     );
+    }
 
-    return "C";
+    /* Here, the hash has been completely populated.
+     *
+     * Now go through all the items and:
+     *  a) For string items, see if they should be marked as UTF-8 or not.
+     *     This would have been more convenient and faster to do while
+     *     populating the hash in the first place, but that operation has to be
+     *     done within a critical section, keeping other threads from
+     *     executing, so only the minimal amount of work necessary is done at
+     *     that time.
+     *  b) For integer items, convert the C CHAR_MAX value into -1.  Again,
+     *     this could have been done in the critical section, but was deferred
+     *     to here to keep to the bare minimum amount the time spent owning the
+     *     processor. CHAR_MAX is a C concept for an 8-bit character type.
+     *     Perl has no such type; the closest fit is a -1.
+     *
+     * XXX On unthreaded perls, this code could be #ifdef'd out, and the
+     * corrections determined at hash population time, at an extra maintenance
+     * cost which khw doesn't think is worth it
+     */
+    for (unsigned int i = 0; i < 2; i++) {  /* Try both types of strings */
+        if (! strings[i]) {     /* Skip if no strings of this type */
+            continue;
+        }
 
-#else
+        locale = (i == NUMERIC_STRING_OFFSET)
+                 ? numeric_locale
+                 : monetary_locale;
 
-    const char * retval;
-    const char * newlocale;
-    dSAVEDERRNO;
-    dTHX;
-    DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        locale_utf8ness_t locale_is_utf8 = LOCALE_UTF8NESS_UNKNOWN;
 
-#ifdef USE_LOCALE_NUMERIC
+#  ifdef HAS_RELIABLE_UTF8NESS_DETERMINATION
 
-    /* A NULL locale means only query what the current one is.  We have the
-     * LC_NUMERIC name saved, because we are normally switched into the C
-     * (or equivalent) locale for it.  For an LC_ALL query, switch back to get
-     * the correct results.  All other categories don't require special
-     * handling */
-    if (locale == NULL) {
-        if (category == LC_NUMERIC) {
+        /* It saves time in the loop below to have predetermined the UTF8ness
+         * of the locale.  But only do so if the platform reliably has this
+         * information; otherwise to do it, this could recurse indefinitely.
+         *
+         * When we don't do it here, it will be done on a per-element basis in
+         * the loop.  The per-element check is intelligent enough to not
+         * recurse */
 
-            /* We don't have to copy this return value, as it is a per-thread
-             * variable, and won't change until a future setlocale */
-            return PL_numeric_name;
+        locale_is_utf8 = (is_locale_utf8(locale))
+                         ? LOCALE_IS_UTF8
+                         : LOCALE_NOT_UTF8;
+
+        if (locale_is_utf8 == LOCALE_NOT_UTF8) {
+            continue;   /* No string can be UTF-8 if the locale isn't */
         }
 
-#  ifdef LC_ALL
+#  endif
+
+        /* Examine each string */
+        while (1) {
+            const char * name = strings[i]->name;
+
+            if (! name) {   /* Reached the end */
+                break;
+            }
+
+            /* 'value' will contain the string that may need to be marked as
+             * UTF-8 */
+            SV ** value = hv_fetch(hv, name, strlen(name), true);
+            if (! value) {
+                continue;
+            }
 
-        else if (category == LC_ALL) {
-            STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
+            /* Determine if the string should be marked as UTF-8. */
+            if (UTF8NESS_YES == (get_locale_string_utf8ness_i(SvPVX(*value),
+                                                              locale_is_utf8,
+                                                              NULL, 0)))
+            {
+                SvUTF8_on(*value);
+            }
+
+            strings[i]++;   /* Iterate */
         }
+    }   /* End of fixing up UTF8ness */
 
-#  endif
 
-    }
+    /* Examine each integer */
+    if (integers) while (1) {
+        const char * name = integers->name;
 
-#endif
+        if (! name) {   /* Reached the end */
+            break;
+        }
 
-    retval = save_to_buffer(do_setlocale_r(category, locale),
-                            &PL_setlocale_buf, &PL_setlocale_bufsize, 0);
-    SAVE_ERRNO;
+        SV ** value = hv_fetch(hv, name, strlen(name), true);
+        if (! value) {
+            continue;
+        }
 
-#if defined(USE_LOCALE_NUMERIC) && defined(LC_ALL)
+        /* Change CHAR_MAX to -1 */
+        if (SvIV(*value) == CHAR_MAX) {
+            sv_setiv(*value, -1);
+        }
 
-    if (locale == NULL && category == LC_ALL) {
-        RESTORE_LC_NUMERIC();
+        integers++;   /* Iterate */
     }
 
-#endif
+    return hv;
+}
 
-    DEBUG_L(PerlIO_printf(Perl_debug_log,
-        "%s:%d: %s\n", __FILE__, __LINE__,
-            setlocale_debug_string(category, locale, retval)));
+STATIC void
+S_populate_hash_from_localeconv(pTHX_ HV * hv,
 
-    RESTORE_ERRNO;
+                                      /* Switch to this locale to run
+                                       * localeconv() from */
+                                      const char * locale,
+
+                                      /* bit mask of which categories to
+                                       * populate */
+                                      const U32 which_mask,
+
+                                      /* strings[0] points the numeric
+                                       * string fields; [1] to the monetary */
+                                      const lconv_offset_t * strings[2],
 
-    if (! retval) {
-        return NULL;
-    }
+                                      /* And to the monetary integer fields */
+                                      const lconv_offset_t * integers)
+{
+    PERL_ARGS_ASSERT_POPULATE_HASH_FROM_LOCALECONV;
+    PERL_UNUSED_ARG(which_mask);    /* Some configurations don't use this;
+                                       complicated to figure out which */
+
+    /* Run localeconv() and copy some or all of its results to the input 'hv'
+     * hash.  Most localeconv() implementations return the values in a global
+     * static buffer, so the operation must be performed in a critical section,
+     * ending only after the copy is completed.  There are so many locks
+     * because localeconv() deals with two categories, and returns in a single
+     * global static buffer.  Some locks might be no-ops on this platform, but
+     * not others.  We need to lock if any one isn't a no-op. */
 
-    /* If locale == NULL, we are just querying the state */
-    if (locale == NULL) {
-        return retval;
-    }
+#  ifdef USE_LOCALE_CTYPE
 
-    /* Now that have switched locales, we have to update our records to
-     * correspond. */
+    /* Some platforms require LC_CTYPE to be congruent with the category we are
+     * looking for */
+    const char * orig_CTYPE_locale = toggle_locale_c(LC_CTYPE, locale);
 
-    switch (category) {
+#  endif
+#  ifdef USE_LOCALE_NUMERIC
 
-#ifdef USE_LOCALE_CTYPE
+    /* We need to toggle to the underlying NUMERIC locale if we are getting
+     * NUMERIC strings */
+    const char * orig_NUMERIC_locale = NULL;
+    if (which_mask & INDEX_TO_BIT(LC_NUMERIC_INDEX_)) {
+        LC_NUMERIC_LOCK(0);
+        orig_NUMERIC_locale = toggle_locale_i(LC_NUMERIC_INDEX_, locale);
+    }
 
-        case LC_CTYPE:
-            new_ctype(retval);
-            break;
+#    endif
 
-#endif
-#ifdef USE_LOCALE_COLLATE
+    /* Finally ready to do the actual localeconv().  Lock to prevent other
+     * accesses until we have made a copy of its returned static buffer */
+    gwLOCALE_LOCK;
 
-        case LC_COLLATE:
-            new_collate(retval);
-            break;
+#  ifdef TS_W32_BROKEN_LOCALECONV
 
-#endif
-#ifdef USE_LOCALE_NUMERIC
+    /* This is a workaround for another bug in Windows.  localeconv() was
+     * broken with thread-safe locales prior to VS 15.  It looks at the global
+     * locale instead of the thread one.  As a work-around, we toggle to the
+     * global locale; populate the return; then toggle back.  We have to use
+     * LC_ALL instead of the individual categories because of yet another bug
+     * in Windows.  And this all has to be done in a critical section.
+     *
+     * This introduces a potential race with any other thread that has also
+     * converted to use the global locale, and doesn't protect its locale calls
+     * with mutexes.  khw can't think of any reason for a thread to do so on
+     * Windows, as the locale API is the same regardless of thread-safety, except
+     * if the code is ported from working on another platform where there might
+     * be some reason to do this.  But this is typically due to some
+     * alien-to-Perl library that thinks it owns locale setting.  Such a
+     * library isn't likely to exist on Windows, so such an application is
+     * unlikely to be run on Windows
+     */
+    bool restore_per_thread = FALSE;
 
-        case LC_NUMERIC:
-            new_numeric(retval);
-            break;
+    /* Save the per-thread locale state */
+    const char * save_thread = querylocale_c(LC_ALL);
 
-#endif
-#ifdef LC_ALL
+    /* Change to the global locale, and note if we already were there */
+    if (_configthreadlocale(_DISABLE_PER_THREAD_LOCALE)
+                         != _DISABLE_PER_THREAD_LOCALE)
+    {
+        restore_per_thread = TRUE;
+    }
 
-        case LC_ALL:
+    /* Save the state of the global locale; then convert to our desired
+     * state.  */
+    const char * save_global = querylocale_c(LC_ALL);
+    void_setlocale_c(LC_ALL, save_thread);
 
-            /* LC_ALL updates all the things we care about.  The values may not
-             * be the same as 'retval', as the locale "" may have set things
-             * individually */
+#  endif  /* TS_W32_BROKEN_LOCALECONV */
 
-#  ifdef USE_LOCALE_CTYPE
+    /* Finally, do the actual localeconv */
+    const char *lcbuf_as_string = (const char *) localeconv();
 
-            newlocale = savepv(do_setlocale_c(LC_CTYPE, NULL));
-            new_ctype(newlocale);
-            Safefree(newlocale);
+    /* Fill in the string fields of the HV* */
+    for (unsigned int i = 0; i < 2; i++) {
 
-#  endif /* USE_LOCALE_CTYPE */
-#  ifdef USE_LOCALE_COLLATE
+#  ifdef USE_LOCALE_NUMERIC
 
-            newlocale = savepv(do_setlocale_c(LC_COLLATE, NULL));
-            new_collate(newlocale);
-            Safefree(newlocale);
+        /* One iteration is only for the numeric string fields */
+        if (   i == NUMERIC_STRING_OFFSET
+            && (which_mask & INDEX_TO_BIT(LC_NUMERIC_INDEX_))  == 0)
+        {
+            continue;
+        }
 
 #  endif
-#  ifdef USE_LOCALE_NUMERIC
+#  ifdef USE_LOCALE_MONETARY
 
-            newlocale = savepv(do_setlocale_c(LC_NUMERIC, NULL));
-            new_numeric(newlocale);
-            Safefree(newlocale);
+        /* The other iteration is only for the monetary string fields */
+        if (   i == MONETARY_STRING_OFFSET
+            && (which_mask & INDEX_TO_BIT(LC_MONETARY_INDEX_)) == 0)
+        {
+            continue;
+        }
 
-#  endif /* USE_LOCALE_NUMERIC */
-#endif /* LC_ALL */
+#  endif
 
-        default:
-            break;
-    }
+        /* For each field for the given category ... */
+        const lconv_offset_t * category_strings = strings[i];
+        while (1) {
+            const char * name = category_strings->name;
+            if (! name) {   /* Quit at the end */
+                break;
+            }
 
-    return retval;
+            /* we have set things up so that we know where in the returned
+             * structure, when viewed as a string, the corresponding value is.
+             * */
+            const char *value = *((const char **)(  lcbuf_as_string
+                                                  + category_strings->offset));
 
-#endif
+            /* Set to get next string on next iteration */
+            category_strings++;
 
-}
+            /* Skip if this platform doesn't have this field. */
+            if (! value) {
+                continue;
+            }
 
-PERL_STATIC_INLINE const char *
-S_save_to_buffer(const char * string, char **buf, Size_t *buf_size, const Size_t offset)
-{
-    /* Copy the NUL-terminated 'string' to 'buf' + 'offset'.  'buf' has size 'buf_size',
-     * growing it if necessary */
+            /* Copy to the hash */
+            (void) hv_store(hv,
+                            name, strlen(name),
+                            newSVpv(value, strlen(value)),
+                            0);
+        }
 
-    Size_t string_size;
+        /* Add any int fields to the HV* */
+        if (i == MONETARY_STRING_OFFSET && integers) {
+            while (integers->name) {
+                const char value = *((const char *)(  lcbuf_as_string
+                                                    + integers->offset));
+                (void) hv_store(hv, integers->name,
+                                strlen(integers->name), newSViv(value), 0);
+                integers++;
+            }
+        }
+    }   /* End of loop through the fields */
 
-    PERL_ARGS_ASSERT_SAVE_TO_BUFFER;
+    /* Done with copying to the hash.  Can unwind the critical section locks */
 
-    if (! string) {
-        return NULL;
-    }
+#  ifdef TS_W32_BROKEN_LOCALECONV
 
-    string_size = strlen(string) + offset + 1;
+    /* Restore the global locale's prior state */
+    void_setlocale_c(LC_ALL, save_global);
 
-    if (*buf_size == 0) {
-        Newx(*buf, string_size, char);
-        *buf_size = string_size;
+    /* And back to per-thread locales */
+    if (restore_per_thread) {
+        _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
     }
-    else if (string_size > *buf_size) {
-        Renew(*buf, string_size, char);
-        *buf_size = string_size;
+
+    /* Restore the per-thread locale state */
+    void_setlocale_c(LC_ALL, save_thread);
+
+#  endif  /* TS_W32_BROKEN_LOCALECONV */
+
+    gwLOCALE_UNLOCK;    /* Finished with the critical section of a
+                           globally-accessible buffer */
+
+#  ifdef USE_LOCALE_NUMERIC
+
+    restore_toggled_locale_i(LC_NUMERIC_INDEX_, orig_NUMERIC_locale);
+    if (which_mask & INDEX_TO_BIT(LC_NUMERIC_INDEX_)) {
+        LC_NUMERIC_UNLOCK;
     }
 
-    Copy(string, *buf + offset, string_size - offset, char);
-    return *buf;
+#  endif
+#  ifdef USE_LOCALE_CTYPE
+
+    restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_locale);
+
+#  endif
+
 }
 
+#endif /* defined(HAS_LOCALECONV) */
+#ifndef HAS_SOME_LANGINFO
+
+typedef int nl_item;    /* Substitute 'int' for emulated nl_langinfo() */
+
+#endif
+
 /*
 
-=for apidoc Perl_langinfo
+=for apidoc      Perl_langinfo
+=for apidoc_item Perl_langinfo8
 
-This is an (almost) drop-in replacement for the system C<L<nl_langinfo(3)>>,
-taking the same C<item> parameter values, and returning the same information.
-But it is more thread-safe than regular C<nl_langinfo()>, and hides the quirks
-of Perl's locale handling from your code, and can be used on systems that lack
-a native C<nl_langinfo>.
+C<Perl_langinfo> is an (almost) drop-in replacement for the system
+C<L<nl_langinfo(3)>>, taking the same C<item> parameter values, and returning
+the same information.  But it is more thread-safe than regular
+C<nl_langinfo()>, and hides the quirks of Perl's locale handling from your
+code, and can be used on systems that lack a native C<nl_langinfo>.
+
+However, you should instead use the improved version of this:
+L</Perl_langinfo8>, which behaves identically except for an additional
+parameter, a pointer to a variable declared as L</C<utf8ness_t>>, into which it
+returns to you how you should treat the returned string with regards to it
+being encoded in UTF-8 or not.
 
-Expanding on these:
+Concerning the differences between these and plain C<nl_langinfo()>:
 
 =over
 
-=item *
+=item a.
 
-The reason it isn't quite a drop-in replacement is actually an advantage.  The
-only difference is that it returns S<C<const char *>>, whereas plain
-C<nl_langinfo()> returns S<C<char *>>, but you are (only by documentation)
-forbidden to write into the buffer.  By declaring this C<const>, the compiler
-enforces this restriction, so if it is violated, you know at compilation time,
-rather than getting segfaults at runtime.
+C<Perl_langinfo8> has an extra parameter, described above.  Besides this, the
+other reason they aren't quite a drop-in replacement is actually an advantage.
+The C<const>ness of the return allows the compiler to catch attempts to write
+into the returned buffer, which is illegal and could cause run-time crashes.
 
-=item *
+=item b.
 
-It delivers the correct results for the C<RADIXCHAR> and C<THOUSEP> items,
+They deliver the correct results for the C<RADIXCHAR> and C<THOUSEP> items,
 without you having to write extra code.  The reason for the extra code would be
 because these are from the C<LC_NUMERIC> locale category, which is normally
 kept set by Perl so that the radix is a dot, and the separator is the empty
@@ -2393,737 +3897,1094 @@ the other advantages of C<Perl_langinfo(
 (or equivalent) locale would break a lot of CPAN, which is expecting the radix
 (decimal point) character to be a dot.)
 
-=item *
+=item c.
 
-The system function it replaces can have its static return buffer trashed,
+The system function they replace can have its static return buffer trashed,
 not only by a subsequent call to that function, but by a C<freelocale>,
-C<setlocale>, or other locale change.  The returned buffer of this function is
-not changed until the next call to it, so the buffer is never in a trashed
-state.
+C<setlocale>, or other locale change.  The returned buffer of these functions
+is not changed until the next call to one or the other, so the buffer is never
+in a trashed state.
 
-=item *
+=item d.
 
-Its return buffer is per-thread, so it also is never overwritten by a call to
-this function from another thread;  unlike the function it replaces.
+The return buffer is per-thread, so it also is never overwritten by a call to
+these functions from another thread;  unlike the function it replaces.
 
-=item *
+=item e.
 
-But most importantly, it works on systems that don't have C<nl_langinfo>, such
-as Windows, hence makes your code more portable.  Of the fifty-some possible
+But most importantly, they work on systems that don't have C<nl_langinfo>, such
+as Windows, hence making your code more portable.  Of the fifty-some possible
 items specified by the POSIX 2008 standard,
 L<http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html>,
 only one is completely unimplemented, though on non-Windows platforms, another
-significant one is also not implemented).  It uses various techniques to
+significant one is not fully implemented).  They use various techniques to
 recover the other items, including calling C<L<localeconv(3)>>, and
 C<L<strftime(3)>>, both of which are specified in C89, so should be always be
-available.  Later C<strftime()> versions have additional capabilities; C<""> is
-returned for those not available on your system.
+available.  Later C<strftime()> versions have additional capabilities; What the
+C locale yields or C<""> is returned for any item not available on your system.
 
-It is important to note that when called with an item that is recovered by
+It is important to note that, when called with an item that is recovered by
 using C<localeconv>, the buffer from any previous explicit call to
-C<localeconv> will be overwritten.  This means you must save that buffer's
-contents if you need to access them after a call to this function.  (But note
-that you might not want to be using C<localeconv()> directly anyway, because of
-issues like the ones listed in the second item of this list (above) for
-C<RADIXCHAR> and C<THOUSEP>.  You can use the methods given in L<perlcall> to
-call L<POSIX/localeconv> and avoid all the issues, but then you have a hash to
-unpack).
+C<L<localeconv(3)>> will be overwritten.  But you shouldn't be using
+C<localeconv> anyway because it is is very much not thread-safe, and suffers
+from the same problems outlined in item 'b.' above for the fields it returns that
+are controlled by the LC_NUMERIC locale category.  Instead, avoid all of those
+problems by calling L</Perl_localeconv>, which is thread-safe; or by using the
+methods given in L<perlcall>  to call
+L<C<POSIX::localeconv()>|POSIX/localeconv>, which is also thread-safe.
+
+=back
 
 The details for those items which may deviate from what this emulation returns
 and what a native C<nl_langinfo()> would return are specified in
 L<I18N::Langinfo>.
 
-=back
-
-When using C<Perl_langinfo> on systems that don't have a native
-C<nl_langinfo()>, you must
+When using C<Perl_langinfo8> (or plain C<Perl_langinfo>) on systems that don't
+have a native C<nl_langinfo()>, you must
 
  #include "perl_langinfo.h"
 
-before the C<perl.h> C<#include>.  You can replace your C<langinfo.h>
+before the C<perl.h> C<#include>.  You can replace your F<langinfo.h>
 C<#include> with this one.  (Doing it this way keeps out the symbols that plain
-C<langinfo.h> would try to import into the namespace for code that doesn't need
+F<langinfo.h> would try to import into the namespace for code that doesn't need
 it.)
 
-The original impetus for C<Perl_langinfo()> was so that code that needs to
-find out the current currency symbol, floating point radix character, or digit
-grouping separator can use, on all systems, the simpler and more
-thread-friendly C<nl_langinfo> API instead of C<L<localeconv(3)>> which is a
-pain to make thread-friendly.  For other fields returned by C<localeconv>, it
-is better to use the methods given in L<perlcall> to call
-L<C<POSIX::localeconv()>|POSIX/localeconv>, which is thread-friendly.
-
 =cut
 
 */
 
 const char *
-#ifdef HAS_NL_LANGINFO
 Perl_langinfo(const nl_item item)
-#else
-Perl_langinfo(const int item)
-#endif
 {
-    return my_nl_langinfo(item, TRUE);
+    return Perl_langinfo8(item, NULL);
 }
 
-STATIC const char *
-#ifdef HAS_NL_LANGINFO
-S_my_nl_langinfo(const nl_item item, bool toggle)
-#else
-S_my_nl_langinfo(const int item, bool toggle)
-#endif
+const char *
+Perl_langinfo8(const nl_item item, utf8ness_t * utf8ness)
 {
     dTHX;
-    const char * retval;
+    unsigned cat_index;
 
-#ifdef USE_LOCALE_NUMERIC
+    PERL_ARGS_ASSERT_PERL_LANGINFO8;
 
-    /* We only need to toggle into the underlying LC_NUMERIC locale for these
-     * two items, and only if not already there */
-    if (toggle && ((   item != RADIXCHAR && item != THOUSEP)
-                    || PL_numeric_underlying))
+    if (utf8ness) {     /* Assume for now */
+        *utf8ness = UTF8NESS_IMMATERIAL;
+    }
 
-#endif  /* No toggling needed if not using LC_NUMERIC */
+    /* Find the locale category that controls the input 'item'.  If we are not
+     * paying attention to that category, instead return a default value.  Also
+     * return the default value if there is no way for us to figure out the
+     * correct value.  If we have some form of nl_langinfo(), we can always
+     * figure it out, but lacking that, there may be alternative methods that
+     * can be used to recover most of the possible items.  Some of those
+     * methods need libc functions, which may or may not be available.  If
+     * unavailable, we can't compute the correct value, so must here return the
+     * default. */
+    switch (item) {
 
-        toggle = FALSE;
+      case CODESET:
 
-#if defined(HAS_NL_LANGINFO) /* nl_langinfo() is available.  */
-#  if   ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L)      \
-     || ! defined(HAS_POSIX_2008_LOCALE)
+#ifdef USE_LOCALE_CTYPE
 
-    /* Here, use plain nl_langinfo(), switching to the underlying LC_NUMERIC
-     * for those items dependent on it.  This must be copied to a buffer before
-     * switching back, as some systems destroy the buffer when setlocale() is
-     * called */
+        cat_index = LC_CTYPE_INDEX_;
+        break;
 
-    {
-        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+#else
+        return C_codeset;
+#endif
+#if defined(USE_LOCALE_MESSAGES) && defined(HAS_SOME_LANGINFO)
 
-        if (toggle) {
-            STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
-        }
+      case YESEXPR: case YESSTR: case NOEXPR: case NOSTR:
+        cat_index = LC_MESSAGES_INDEX_;
+        break;
+#else
+      case YESEXPR:   return "^[+1yY]";
+      case YESSTR:    return "yes";
+      case NOEXPR:    return "^[-0nN]";
+      case NOSTR:     return "no";
+#endif
 
-        /* Prevent interference from another thread executing this code
-         * section. */
-        NL_LANGINFO_LOCK;
+      case CRNCYSTR:
 
-        /* Copy to a per-thread buffer, which is also one that won't be
-         * destroyed by a subsequent setlocale(), such as the
-         * RESTORE_LC_NUMERIC may do just below. */
-        retval = save_to_buffer(nl_langinfo(item),
-                                &PL_langinfo_buf, &PL_langinfo_bufsize, 0);
-        NL_LANGINFO_UNLOCK;
+#if  defined(USE_LOCALE_MONETARY)                                   \
+ && (defined(HAS_SOME_LANGINFO) || defined(HAS_LOCALECONV))
 
-        if (toggle) {
-            RESTORE_LC_NUMERIC();
-        }
+        cat_index = LC_MONETARY_INDEX_;
+        break;
+#else
+        return "-";
+#endif
+
+      case RADIXCHAR:
+
+#ifdef CAN_CALCULATE_RADIX
+
+        cat_index = LC_NUMERIC_INDEX_;
+        break;
+#else
+        return C_decimal_point;
+#endif
+
+      case THOUSEP:
+
+#if  defined(USE_LOCALE_NUMERIC)                                    \
+ && (defined(HAS_SOME_LANGINFO) || defined(HAS_LOCALECONV))
+
+        cat_index = LC_NUMERIC_INDEX_;
+        break;
+#else
+        return C_thousands_sep;
+#endif
+
+/* The other possible items are all in LC_TIME. */
+#ifdef USE_LOCALE_TIME
+
+      default:
+        cat_index = LC_TIME_INDEX_;
+        break;
+
+#endif
+#if ! defined(USE_LOCALE_TIME) || ! defined(HAS_SOME_LANGINFO)
+
+    /* If not using LC_TIME, hard code the rest.  Or, if there is no
+     * nl_langinfo(), we use strftime() as an alternative, and it is missing
+     * functionality to get every single one, so hard-code those */
+
+      case ERA: return "";  /* Unimplemented; for use with strftime() %E
+                               modifier */
+
+      /* These formats are defined by C89, so we assume that strftime supports
+       * them, and so are returned unconditionally; they may not be what the
+       * locale actually says, but should give good enough results for someone
+       * using them as formats (as opposed to trying to parse them to figure
+       * out what the locale says).  The other format items are actually tested
+       * to verify they work on the platform */
+      case D_FMT:         return "%x";
+      case T_FMT:         return "%X";
+      case D_T_FMT:       return "%c";
+
+#  if defined(WIN32) || ! defined(USE_LOCALE_TIME)
+
+      /* strftime() on Windows doesn't have the POSIX (beyond C89) extensions
+       * that would allow it to recover these */
+      case ERA_D_FMT:     return "%x";
+      case ERA_T_FMT:     return "%X";
+      case ERA_D_T_FMT:   return "%c";
+      case ALT_DIGITS:    return "0";
+
+#  endif
+#  ifndef USE_LOCALE_TIME
+
+      case T_FMT_AMPM:    return "%r";
+      case ABDAY_1:       return "Sun";
+      case ABDAY_2:       return "Mon";
+      case ABDAY_3:       return "Tue";
+      case ABDAY_4:       return "Wed";
+      case ABDAY_5:       return "Thu";
+      case ABDAY_6:       return "Fri";
+      case ABDAY_7:       return "Sat";
+      case AM_STR:        return "AM";
+      case PM_STR:        return "PM";
+      case ABMON_1:       return "Jan";
+      case ABMON_2:       return "Feb";
+      case ABMON_3:       return "Mar";
+      case ABMON_4:       return "Apr";
+      case ABMON_5:       return "May";
+      case ABMON_6:       return "Jun";
+      case ABMON_7:       return "Jul";
+      case ABMON_8:       return "Aug";
+      case ABMON_9:       return "Sep";
+      case ABMON_10:      return "Oct";
+      case ABMON_11:      return "Nov";
+      case ABMON_12:      return "Dec";
+      case DAY_1:         return "Sunday";
+      case DAY_2:         return "Monday";
+      case DAY_3:         return "Tuesday";
+      case DAY_4:         return "Wednesday";
+      case DAY_5:         return "Thursday";
+      case DAY_6:         return "Friday";
+      case DAY_7:         return "Saturday";
+      case MON_1:         return "January";
+      case MON_2:         return "February";
+      case MON_3:         return "March";
+      case MON_4:         return "April";
+      case MON_5:         return "May";
+      case MON_6:         return "June";
+      case MON_7:         return "July";
+      case MON_8:         return "August";
+      case MON_9:         return "September";
+      case MON_10:        return "October";
+      case MON_11:        return "November";
+      case MON_12:        return "December";
+
+#  endif
+#endif
+
+    } /* End of switch on item */
+
+#ifndef USE_LOCALE
+
+    Perl_croak_nocontext("panic: Unexpected nl_langinfo() item %d", item);
+    NOT_REACHED; /* NOTREACHED */
+    PERL_UNUSED_VAR(cat_index);
+
+#else
+#  ifdef USE_LOCALE_NUMERIC
+
+    /* Use either the underlying numeric, or the other underlying categories */
+    if (cat_index == LC_NUMERIC_INDEX_) {
+        return my_langinfo_c(item, LC_NUMERIC, PL_numeric_name,
+                             &PL_langinfo_buf, &PL_langinfo_bufsize, utf8ness);
     }
+    else
 
-#  else /* Use nl_langinfo_l(), avoiding both a mutex and changing the locale */
+#  endif
 
     {
-        bool do_free = FALSE;
-        locale_t cur = uselocale((locale_t) 0);
+        return my_langinfo_i(item, cat_index, querylocale_i(cat_index),
+                             &PL_langinfo_buf, &PL_langinfo_bufsize, utf8ness);
+    }
 
-        if (cur == LC_GLOBAL_LOCALE) {
-            cur = duplocale(LC_GLOBAL_LOCALE);
-            do_free = TRUE;
-        }
+#endif
 
-#    ifdef USE_LOCALE_NUMERIC
+}
 
-        if (toggle) {
-            if (PL_underlying_numeric_obj) {
-                cur = PL_underlying_numeric_obj;
-            }
-            else {
-                cur = newlocale(LC_NUMERIC_MASK, PL_numeric_name, cur);
-                do_free = TRUE;
-            }
-        }
+#ifdef USE_LOCALE
+
+/* There are several implementations of my_langinfo, depending on the
+ * Configuration.  They all share the same beginning of the function */
+STATIC const char *
+S_my_langinfo_i(pTHX_
+                const nl_item item,           /* The item to look up */
+                const unsigned int cat_index, /* The locale category that
+                                                 controls it */
+                /* The locale to look up 'item' in. */
+                const char * locale,
+
+                /* Where to store the result, and where the size of that buffer
+                 * is stored, updated on exit. retbuf_sizep may be NULL for an
+                 * empty-on-entry, single use buffer whose size we don't need
+                 * to keep track of */
+                const char ** retbufp,
+                Size_t * retbuf_sizep,
+
+                /* If not NULL, the location to store the UTF8-ness of 'item's
+                 * value, as documented */
+                utf8ness_t * utf8ness)
+{
+    const char * retval = NULL;
+
+    PERL_ARGS_ASSERT_MY_LANGINFO_I;
+    assert(cat_index < NOMINAL_LC_ALL_INDEX);
+
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                           "Entering my_langinfo item=%ld, using locale %s\n",
+                           (long) item, locale));
+/*--------------------------------------------------------------------------*/
+/* Above is the common beginning to all the implementations of my_langinfo().
+ * Below are the various completions.
+ *
+ * Some platforms don't deal well with non-ASCII strings in locale X when
+ * LC_CTYPE is not in X.  (Actually it is probably when X is UTF-8 and LC_CTYPE
+ * isn't, or vice versa).  There is explicit code to bring the categories into
+ * sync.  This doesn't seem to be a problem with nl_langinfo(), so that
+ * implementation doesn't currently worry about it.  But it is a problem on
+ * Windows boxes, which don't have nl_langinfo(). */
+
+/*--------------------------------------------------------------------------*/
+#  if defined(HAS_NL_LANGINFO) /* nl_langinfo() is available.  */
+#    ifdef USE_LOCALE_CTYPE
+
+    /* Ths function sorts out if things actually have to be switched or not,
+     * for both calls. */
+    const char * orig_CTYPE_locale = toggle_locale_c(LC_CTYPE, locale);
 
 #    endif
 
-        /* We have to save it to a buffer, because the freelocale() just below
-         * can invalidate the internal one */
-        retval = save_to_buffer(nl_langinfo_l(item, cur),
-                                &PL_langinfo_buf, &PL_langinfo_bufsize, 0);
+    const char * orig_switched_locale = toggle_locale_i(cat_index, locale);
 
-        if (do_free) {
-            freelocale(cur);
-        }
+    gwLOCALE_LOCK;
+    retval = save_to_buffer(nl_langinfo(item), retbufp, retbuf_sizep);
+    gwLOCALE_UNLOCK;
+
+    if (utf8ness) {
+        *utf8ness = get_locale_string_utf8ness_i(retval,
+                                                 LOCALE_UTF8NESS_UNKNOWN,
+                                                 locale, cat_index);
     }
 
-#  endif
+    restore_toggled_locale_i(cat_index, orig_switched_locale);
 
-    if (strEQ(retval, "")) {
-        if (item == YESSTR) {
-            return "yes";
-        }
-        if (item == NOSTR) {
-            return "no";
-        }
-    }
+#    ifdef USE_LOCALE_CTYPE
+    restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_locale);
+#    endif
 
     return retval;
+/*--------------------------------------------------------------------------*/
+#  else   /* Below, emulate nl_langinfo as best we can */
 
-#else   /* Below, emulate nl_langinfo as best we can */
+    /* And the third and final completion is where we have to emulate
+     * nl_langinfo().  There are various possibilities depending on the
+     * Configuration */
 
-    {
+#    ifdef USE_LOCALE_CTYPE
 
-#  ifdef HAS_LOCALECONV
+    const char * orig_CTYPE_locale = toggle_locale_c(LC_CTYPE, locale);
 
-        const struct lconv* lc;
-        const char * temp;
-        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+#    endif
 
-#    ifdef TS_W32_BROKEN_LOCALECONV
+    const char * orig_switched_locale = toggle_locale_i(cat_index, locale);
 
-        const char * save_global;
-        const char * save_thread;
-        int needed_size;
-        char * ptr;
-        char * e;
-        char * item_start;
+    /* Here, we are in the locale we want information about */
 
-#    endif
-#  endif
-#  ifdef HAS_STRFTIME
+    /* Almost all the items will have ASCII return values.  Set that here, and
+     * override if necessary */
+    utf8ness_t is_utf8 = UTF8NESS_IMMATERIAL;
 
-        struct tm tm;
-        bool return_format = FALSE; /* Return the %format, not the value */
-        const char * format;
+    switch (item) {
+      default:
+        assert(item < 0);   /* Make sure using perl_langinfo.h */
+        retval = "";
+        break;
 
-#  endif
+      case RADIXCHAR:
+
+#    if      defined(HAS_SNPRINTF)                                              \
+       && (! defined(HAS_LOCALECONV) || defined(TS_W32_BROKEN_LOCALECONV))
+
+        {
+            /* snprintf() can be used to find the radix character by outputting
+             * a known simple floating point number to a buffer, and parsing
+             * it, inferring the radix as the bytes separating the integer and
+             * fractional parts.  But localeconv() is more direct, not
+             * requiring inference, so use it instead of the code just below,
+             * if (likely) it is available and works ok */
+
+            char * floatbuf = NULL;
+            const Size_t initial_size = 10;
+
+            Newx(floatbuf, initial_size, char);
+
+            /* 1.5 is exactly representable on binary computers */
+            Size_t needed_size = snprintf(floatbuf, initial_size, "%.1f", 1.5);
 
-        /* We copy the results to a per-thread buffer, even if not
-         * multi-threaded.  This is in part to simplify this code, and partly
-         * because we need a buffer anyway for strftime(), and partly because a
-         * call of localeconv() could otherwise wipe out the buffer, and the
-         * programmer would not be expecting this, as this is a nl_langinfo()
-         * substitute after all, so s/he might be thinking their localeconv()
-         * is safe until another localeconv() call. */
+            /* If our guess wasn't big enough, increase and try again, based on
+             * the real number that snprintf() is supposed to return */
+            if (UNLIKELY(needed_size >= initial_size)) {
+                needed_size++;  /* insurance */
+                Renew(floatbuf, needed_size, char);
+                Size_t new_needed = snprintf(floatbuf, needed_size, "%.1f", 1.5);
+                assert(new_needed <= needed_size);
+                needed_size = new_needed;
+            }
+
+            char * s = floatbuf;
+            char * e = floatbuf + needed_size;
+
+            /* Find the '1' */
+            while (s < e && *s != '1') {
+                s++;
+            }
+
+            if (LIKELY(s < e)) {
+                s++;
+            }
+
+            /* Find the '5' */
+            char * item_start = s;
+            while (s < e && *s != '5') {
+                s++;
+            }
+
+            /* Everything in between is the radix string */
+            if (LIKELY(s < e)) {
+                *s = '\0';
+                retval = save_to_buffer(item_start, retbufp, retbuf_sizep);
+                Safefree(floatbuf);
+
+                if (utf8ness) {
+                    is_utf8 = get_locale_string_utf8ness_i(retval,
+                                                        LOCALE_UTF8NESS_UNKNOWN,
+                                                        locale, cat_index);
+                }
+
+                break;
+            }
+
+            Safefree(floatbuf);
+        }
 
-        switch (item) {
-            Size_t len;
+#      ifdef HAS_LOCALECONV /* snprintf() failed; drop down to use
+                               localeconv() */
 
-            /* This is unimplemented */
-            case ERA:      /* For use with strftime() %E modifier */
+        /* FALLTHROUGH */
+
+#      else                      /* snprintf() failed and no localeconv() */
+
+        retval = C_decimal_point;
+        break;
+
+#      endif
+#    endif
+#    ifdef HAS_LOCALECONV
+
+    /* These items are available from localeconv().  (To avoid using
+     * TS_W32_BROKEN_LOCALECONV, one could use GetNumberFormat and
+     * GetCurrencyFormat; patches welcome) */
+
+#    define P_CS_PRECEDES    "p_cs_precedes"
+#    define CURRENCY_SYMBOL  "currency_symbol"
+
+   /* case RADIXCHAR:   // May drop down to here in some configurations */
+      case THOUSEP:
+      case CRNCYSTR:
+       {
+
+        /* The hash gets populated with just the field(s) related to 'item'. */
+        HV * result_hv = my_localeconv(item);
+
+        SV* string;
+        if (item != CRNCYSTR) {
+
+            /* These items have been populated with just one key => value */
+            (void) hv_iterinit(result_hv);
+            HE * entry = hv_iternext(result_hv);
+            string = hv_iterval(result_hv, entry);
+        }
+        else {
+
+            /* But CRNCYSTR localeconv() returns a slightly different value
+             * than the nl_langinfo() API calls for, so have to modify this one
+             * to conform.  We need another value from localeconv() to know
+             * what to change it to.  my_localeconv() has populated the hash
+             * with exactly both fields.  Delete this one, leaving just the
+             * CRNCYSTR one in the hash */
+            SV* precedes = hv_delete(result_hv,
+                                     P_CS_PRECEDES, STRLENs(P_CS_PRECEDES),
+                                     0);
+            if (! precedes) {
+                    locale_panic_("my_localeconv() unexpectedly didn't return"
+                                  " a value for " P_CS_PRECEDES);
+            }
+
+            /* The modification is to prefix the localeconv() return with a
+             * single byte, calculated as follows: */
+            char prefix = (LIKELY(SvIV(precedes) != -1))
+                          ? ((precedes != 0) ?  '-' : '+')
+
+                            /* khw couldn't find any documentation that
+                             * CHAR_MAX (which we modify to -1) is the signal,
+                             * but cygwin uses it thusly, and it makes sense
+                             * given that CHAR_MAX indicates the value isn't
+                             * used, so it neither precedes nor succeeds */
+                          : '.';
+
+            /* Now get CRNCYSTR */
+            (void) hv_iterinit(result_hv);
+            HE * entry = hv_iternext(result_hv);
+            string = hv_iterval(result_hv, entry);
+
+            /* And perform the modification */
+            Perl_sv_setpvf(aTHX_ string, "%c%s", prefix, SvPV_nolen(string));
+        }
+
+        /* Here, 'string' contains the value we want to return */
+        retval = save_to_buffer(SvPV_nolen(string), retbufp, retbuf_sizep);
+
+        if (utf8ness) {
+            is_utf8 = (SvUTF8(string))
+                      ? UTF8NESS_YES
+                      : (is_utf8_invariant_string( (U8 *) retval,
+                                                  strlen(retval)))
+                        ? UTF8NESS_IMMATERIAL
+                        : UTF8NESS_NO;
+        }
+
+        break;
+
+       }
+
+#    endif  /* Some form of localeconv */
+#    ifdef HAS_STRFTIME
+
+      /* These formats are only available in later strftime's */
+      case ERA_D_FMT: case ERA_T_FMT: case ERA_D_T_FMT: case T_FMT_AMPM:
+
+      /* The rest can be gotten from most versions of strftime(). */
+      case ABDAY_1: case ABDAY_2: case ABDAY_3:
+      case ABDAY_4: case ABDAY_5: case ABDAY_6: case ABDAY_7:
+      case ALT_DIGITS:
+      case AM_STR: case PM_STR:
+      case ABMON_1: case ABMON_2: case ABMON_3: case ABMON_4:
+      case ABMON_5: case ABMON_6: case ABMON_7: case ABMON_8:
+      case ABMON_9: case ABMON_10: case ABMON_11: case ABMON_12:
+      case DAY_1: case DAY_2: case DAY_3: case DAY_4:
+      case DAY_5: case DAY_6: case DAY_7:
+      case MON_1: case MON_2: case MON_3: case MON_4:
+      case MON_5: case MON_6: case MON_7: case MON_8:
+      case MON_9: case MON_10: case MON_11: case MON_12:
+        {
+            const char * format;
+            bool return_format = FALSE;
+            int mon = 0;
+            int mday = 1;
+            int hour = 6;
+
+            GCC_DIAG_IGNORE_STMT(-Wimplicit-fallthrough);
+
+            switch (item) {
+              default:
+                locale_panic_(Perl_form(aTHX_ "switch case: %d problem", item));
+                NOT_REACHED; /* NOTREACHED */
+
+              case PM_STR: hour = 18;
+              case AM_STR:
+                format = "%p";
+                break;
+              case ABDAY_7: mday++;
+              case ABDAY_6: mday++;
+              case ABDAY_5: mday++;
+              case ABDAY_4: mday++;
+              case ABDAY_3: mday++;
+              case ABDAY_2: mday++;
+              case ABDAY_1:
+                format = "%a";
+                break;
+              case DAY_7: mday++;
+              case DAY_6: mday++;
+              case DAY_5: mday++;
+              case DAY_4: mday++;
+              case DAY_3: mday++;
+              case DAY_2: mday++;
+              case DAY_1:
+                format = "%A";
+                break;
+              case ABMON_12: mon++;
+              case ABMON_11: mon++;
+              case ABMON_10: mon++;
+              case ABMON_9:  mon++;
+              case ABMON_8:  mon++;
+              case ABMON_7:  mon++;
+              case ABMON_6:  mon++;
+              case ABMON_5:  mon++;
+              case ABMON_4:  mon++;
+              case ABMON_3:  mon++;
+              case ABMON_2:  mon++;
+              case ABMON_1:
+                format = "%b";
+                break;
+              case MON_12: mon++;
+              case MON_11: mon++;
+              case MON_10: mon++;
+              case MON_9:  mon++;
+              case MON_8:  mon++;
+              case MON_7:  mon++;
+              case MON_6:  mon++;
+              case MON_5:  mon++;
+              case MON_4:  mon++;
+              case MON_3:  mon++;
+              case MON_2:  mon++;
+              case MON_1:
+                format = "%B";
+                break;
+              case T_FMT_AMPM:
+                format = "%r";
+                return_format = TRUE;
+                break;
+              case ERA_D_FMT:
+                format = "%Ex";
+                return_format = TRUE;
+                break;
+              case ERA_T_FMT:
+                format = "%EX";
+                return_format = TRUE;
+                break;
+              case ERA_D_T_FMT:
+                format = "%Ec";
+                return_format = TRUE;
+                break;
+              case ALT_DIGITS:
+                format = "%Ow";	/* Find the alternate digit for 0 */
+                break;
+            }
 
-            default:
-                return "";
+            GCC_DIAG_RESTORE_STMT;
 
-            /* We use only an English set, since we don't know any more */
-            case YESEXPR:   return "^[+1yY]";
-            case YESSTR:    return "yes";
-            case NOEXPR:    return "^[-0nN]";
-            case NOSTR:     return "no";
+            /* The year was deliberately chosen so that January 1 is on the
+             * first day of the week.  Since we're only getting one thing at a
+             * time, it all works */
+            const char * temp = my_strftime8_temp(format, 30, 30, hour, mday, mon,
+                                             2011, 0, 0, 0, &is_utf8);
+            retval = save_to_buffer(temp, retbufp, retbuf_sizep);
+            Safefree(temp);
+
+            /* If the item is 'ALT_DIGITS', '*retbuf' contains the alternate
+             * format for wday 0.  If the value is the same as the normal 0,
+             * there isn't an alternate, so clear the buffer.
+             *
+             * (wday was chosen because its range is all a single digit.
+             * Things like tm_sec have two digits as the minimum: '00'.) */
+            if (item == ALT_DIGITS && strEQ(*retbufp, "0")) {
+                retval = "";
+                break;
+            }
 
-            case CODESET:
+            /* ALT_DIGITS is problematic.  Experiments on it showed that
+             * strftime() did not always work properly when going from alt-9 to
+             * alt-10.  Only a few locales have this item defined, and in all
+             * of them on Linux that khw was able to find, nl_langinfo() merely
+             * returned the alt-0 character, possibly doubled.  Most Unicode
+             * digits are in blocks of 10 consecutive code points, so that is
+             * sufficient information for such scripts, as we can infer alt-1,
+             * alt-2, ....  But for a Japanese locale, a CJK ideographic 0 is
+             * returned, and the CJK digits are not in code point order, so you
+             * can't really infer anything.  The localedef for this locale did
+             * specify the succeeding digits, so that strftime() works properly
+             * on them, without needing to infer anything.  But the
+             * nl_langinfo() return did not give sufficient information for the
+             * caller to understand what's going on.  So until there is
+             * evidence that it should work differently, this returns the alt-0
+             * string for ALT_DIGITS. */
 
-#  ifndef WIN32
+            if (return_format) {
 
-                /* On non-windows, this is unimplemented, in part because of
-                 * inconsistencies between vendors.  The Darwin native
-                 * nl_langinfo() implementation simply looks at everything past
-                 * any dot in the name, but that doesn't work for other
-                 * vendors.  Many Linux locales that don't have UTF-8 in their
-                 * names really are UTF-8, for example; z/OS locales that do
-                 * have UTF-8 in their names, aren't really UTF-8 */
-                return "";
+                /* If to return the format, not the value, overwrite the buffer
+                 * with it.  But some strftime()s will keep the original format
+                 * if illegal, so change those to "" */
+                if (strEQ(*retbufp, format)) {
+                    retval = "";
+                }
+                else {
+                    retval = format;
+                }
 
-#  else
+                /* A format is always in ASCII */
+                is_utf8 = UTF8NESS_IMMATERIAL;
+            }
 
-                {   /* But on Windows, the name does seem to be consistent, so
-                       use that. */
-                    const char * p;
-                    const char * first;
-                    Size_t offset = 0;
-                    const char * name = my_setlocale(LC_CTYPE, NULL);
+            break;
+        }
 
-                    if (isNAME_C_OR_POSIX(name)) {
-                        return "ANSI_X3.4-1968";
-                    }
+#    endif
 
-                    /* Find the dot in the locale name */
-                    first = (const char *) strchr(name, '.');
-                    if (! first) {
-                        first = name;
-                        goto has_nondigit;
-                    }
+      case CODESET:
 
-                    /* Look at everything past the dot */
-                    first++;
-                    p = first;
-
-                    while (*p) {
-                        if (! isDIGIT(*p)) {
-                            goto has_nondigit;
-                        }
+        /* The trivial case */
+        if (isNAME_C_OR_POSIX(locale)) {
+            retval = C_codeset;
+            break;
+        }
 
-                        p++;
-                    }
+#    ifdef WIN32
 
-                    /* Here everything past the dot is a digit.  Treat it as a
-                     * code page */
-                    retval = save_to_buffer("CP", &PL_langinfo_buf,
-                                                &PL_langinfo_bufsize, 0);
-                    offset = STRLENs("CP");
+        /* This function retrieves the code page.  It is subject to change, but
+         * is documented and has been stable for many releases */
+        UINT ___lc_codepage_func(void);
+
+        retval = save_to_buffer(Perl_form(aTHX_ "%d", ___lc_codepage_func()),
+                                retbufp, retbuf_sizep);
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log, "locale='%s' cp=%s\n",
+                                               locale, retval));
+        break;
 
-                  has_nondigit:
+#    else
 
-                    retval = save_to_buffer(first, &PL_langinfo_buf,
-                                            &PL_langinfo_bufsize, offset);
-                }
+        /* The codeset is important, but khw did not figure out a way for it to
+         * be retrieved on non-Windows boxes without nl_langinfo().  But even
+         * if we can't get it directly, we can usually determine if it is a
+         * UTF-8 locale or not.  If it is UTF-8, we (correctly) use that for
+         * the code set. */
+
+#      if defined(HAS_MBTOWC) || defined(HAS_MBRTOWC)
+
+        /* If libc mbtowc() evaluates the bytes that form the REPLACEMENT
+         * CHARACTER as that Unicode code point, this has to be a UTF-8 locale.
+         * */
+        wchar_t wc = 0;
+        (void) Perl_mbtowc_(aTHX_ NULL, NULL, 0);/* Reset shift state */
+        int mbtowc_ret = Perl_mbtowc_(aTHX_ &wc,
+                              STR_WITH_LEN(REPLACEMENT_CHARACTER_UTF8));
+        if (mbtowc_ret >= 0 && wc == UNICODE_REPLACEMENT) {
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                                   "mbtowc returned REPLACEMENT\n"));
+            retval = "UTF-8";
+            break;
+        }
 
-                break;
+        /* Here, it isn't a UTF-8 locale. */
 
-#  endif
-#  ifdef HAS_LOCALECONV
+#    else   /* mbtowc() is not available. */
 
-            case CRNCYSTR:
+        /* Sling together several possibilities, depending on platform
+         * capabilities and what we found.
+         *
+         * For non-English locales or non-dollar currency locales, we likely
+         * will find out whether a locale is UTF-8 or not */
 
-                /* We don't bother with localeconv_l() because any system that
-                 * has it is likely to also have nl_langinfo() */
+        utf8ness_t is_utf8 = UTF8NESS_UNKNOWN;
+        const char * scratch_buf = NULL;
 
-                LOCALECONV_LOCK;    /* Prevent interference with other threads
-                                       using localeconv() */
+#      if defined(USE_LOCALE_MONETARY) && defined(HAS_LOCALECONV)
 
-#    ifdef TS_W32_BROKEN_LOCALECONV
+        /* Can't use this method unless localeconv() is available, as that's
+         * the way we find out the currency symbol. */
+
+        /* First try looking at the currency symbol (via a recursive call) to
+         * see if it disambiguates things.  Often that will be in the native
+         * script, and if the symbol isn't legal UTF-8, we know that the locale
+         * isn't either. */
+        (void) my_langinfo_c(CRNCYSTR, LC_MONETARY, locale, &scratch_buf, NULL,
+                             &is_utf8);
+        Safefree(scratch_buf);
 
-                /* This is a workaround for a Windows bug prior to VS 15.
-                 * What we do here is, while locked, switch to the global
-                 * locale so localeconv() works; then switch back just before
-                 * the unlock.  This can screw things up if some thread is
-                 * already using the global locale while assuming no other is.
-                 * A different workaround would be to call GetCurrencyFormat on
-                 * a known value, and parse it; patches welcome
-                 *
-                 * We have to use LC_ALL instead of LC_MONETARY because of
-                 * another bug in Windows */
+#      endif
+#      ifdef USE_LOCALE_TIME
 
-                save_thread = savepv(my_setlocale(LC_ALL, NULL));
-                _configthreadlocale(_DISABLE_PER_THREAD_LOCALE);
-                save_global= savepv(my_setlocale(LC_ALL, NULL));
-                my_setlocale(LC_ALL, save_thread);
+        /* If we have ruled out being UTF-8, no point in checking further. */
+        if (is_utf8 != UTF8NESS_NO) {
 
-#    endif
+            /* But otherwise do check more.  This is done even if the currency
+             * symbol looks to be UTF-8, just in case that's a false positive.
+             *
+             * Look at the LC_TIME entries, like the names of the months or
+             * weekdays.  We quit at the first one that is illegal UTF-8 */
 
-                lc = localeconv();
-                if (   ! lc
-                    || ! lc->currency_symbol
-                    || strEQ("", lc->currency_symbol))
-                {
-                    LOCALECONV_UNLOCK;
-                    return "";
+            utf8ness_t this_is_utf8 = UTF8NESS_UNKNOWN;
+            const int times[] = {
+                DAY_1, DAY_2, DAY_3, DAY_4, DAY_5, DAY_6, DAY_7,
+                MON_1, MON_2, MON_3, MON_4, MON_5, MON_6, MON_7, MON_8,
+                                            MON_9, MON_10, MON_11, MON_12,
+                ALT_DIGITS, AM_STR, PM_STR,
+                ABDAY_1, ABDAY_2, ABDAY_3, ABDAY_4, ABDAY_5, ABDAY_6,
+                                                             ABDAY_7,
+                ABMON_1, ABMON_2, ABMON_3, ABMON_4, ABMON_5, ABMON_6,
+                ABMON_7, ABMON_8, ABMON_9, ABMON_10, ABMON_11, ABMON_12
+            };
+
+            /* The code in the recursive call can handle switching the locales,
+             * but by doing it here, we avoid switching each iteration of the
+             * loop */
+            const char * orig_TIME_locale = toggle_locale_c(LC_TIME, locale);
+
+            for (PERL_UINT_FAST8_T i = 0; i < C_ARRAY_LENGTH(times); i++) {
+                scratch_buf = NULL;
+                (void) my_langinfo_c(times[i], LC_TIME, locale, &scratch_buf,
+                                     NULL, &this_is_utf8);
+                Safefree(scratch_buf);
+                if (this_is_utf8 == UTF8NESS_NO) {
+                    is_utf8 = UTF8NESS_NO;
+                    break;
                 }
 
-                /* Leave the first spot empty to be filled in below */
-                retval = save_to_buffer(lc->currency_symbol, &PL_langinfo_buf,
-                                        &PL_langinfo_bufsize, 1);
-                if (lc->mon_decimal_point && strEQ(lc->mon_decimal_point, ""))
-                { /*  khw couldn't figure out how the localedef specifications
-                      would show that the $ should replace the radix; this is
-                      just a guess as to how it might work.*/
-                    PL_langinfo_buf[0] = '.';
-                }
-                else if (lc->p_cs_precedes) {
-                    PL_langinfo_buf[0] = '-';
-                }
-                else {
-                    PL_langinfo_buf[0] = '+';
+                if (this_is_utf8 == UTF8NESS_YES) {
+                    is_utf8 = UTF8NESS_YES;
                 }
+            }
 
-#    ifdef TS_W32_BROKEN_LOCALECONV
-
-                my_setlocale(LC_ALL, save_global);
-                _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
-                my_setlocale(LC_ALL, save_thread);
-                Safefree(save_global);
-                Safefree(save_thread);
-
-#    endif
-
-                LOCALECONV_UNLOCK;
-                break;
+            /* Here we have gone through all the LC_TIME elements.  is_utf8 has
+             * been set as follows:
+             *      UTF8NESS_NO           If at least one is't legal UTF-8
+             *      UTF8NESS_IMMMATERIAL  If all are ASCII
+             *      UTF8NESS_YES          If all are legal UTF-8 (including
+             *                            ASCIIi), and at least one isn't
+             *                            ASCII. */
 
-#    ifdef TS_W32_BROKEN_LOCALECONV
+            restore_toggled_locale_c(LC_TIME, orig_TIME_locale);
+        }
 
-            case RADIXCHAR:
+#      endif    /* LC_TIME */
 
-                /* For this, we output a known simple floating point number to
-                 * a buffer, and parse it, looking for the radix */
+        /* If nothing examined above rules out it being UTF-8, and at least one
+         * thing fits as UTF-8 (and not plain ASCII), assume the codeset is
+         * UTF-8. */
+        if (is_utf8 == UTF8NESS_YES) {
+            retval = "UTF-8";
+            break;
+        }
 
-                if (toggle) {
-                    STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
-                }
+        /* Here, nothing examined indicates that the codeset is UTF-8.  But
+         * what is it?  The other locale categories are not likely to be of
+         * further help:
+         *
+         * LC_NUMERIC   Only a few locales in the world have a non-ASCII radix
+         *              or group separator.
+         * LC_CTYPE     This code wouldn't be compiled if mbtowc() existed and
+         *              was reliable.  This is unlikely in C99.  There are
+         *              other functions that could be used instead, but are
+         *              they going to exist, and be able to distinguish between
+         *              UTF-8 and 8859-1?  Deal with this only if it becomes
+         *              necessary.
+         * LC_MESSAGES  The strings returned from strerror() would seem likely
+         *              candidates, but experience has shown that many systems
+         *              don't actually have translations installed for them.
+         *              They are instead always in English, so everything in
+         *              them is ASCII, which is of no help to us.  A Configure
+         *              probe could possibly be written to see if this platform
+         *              has non-ASCII error messages.  But again, wait until it
+         *              turns out to be an actual problem. */
 
-                if (PL_langinfo_bufsize < 10) {
-                    PL_langinfo_bufsize = 10;
-                    Renew(PL_langinfo_buf, PL_langinfo_bufsize, char);
-                }
+#    endif    /* ! mbtowc() */
 
-                needed_size = my_snprintf(PL_langinfo_buf, PL_langinfo_bufsize,
-                                          "%.1f", 1.5);
-                if (needed_size >= (int) PL_langinfo_bufsize) {
-                    PL_langinfo_bufsize = needed_size + 1;
-                    Renew(PL_langinfo_buf, PL_langinfo_bufsize, char);
-                    needed_size = my_snprintf(PL_langinfo_buf, PL_langinfo_bufsize,
-                                             "%.1f", 1.5);
-                    assert(needed_size < (int) PL_langinfo_bufsize);
-                }
+        /* Rejoin the mbtowc available/not-available cases.
+         *
+         * We got here only because we haven't been able to find the codeset.
+         * The only other option khw could think of is to see if the codeset is
+         * part of the locale name.  This is very less than ideal; often there
+         * is no code set in the name; and at other times they even lie.
+         *
+         * But there is an XPG standard syntax, which many locales follow:
+         *
+         * language[_territory[.codeset]][@modifier]
+         *
+         * So we take the part between the dot and any '@' */
+        retval = (const char *) strchr(locale, '.');
+        if (! retval) {
+            retval = "";  /* Alas, no dot */
+            break;
+        }
 
-                ptr = PL_langinfo_buf;
-                e = PL_langinfo_buf + PL_langinfo_bufsize;
+        /* Don't include the dot */
+        retval++;
 
-                /* Find the '1' */
-                while (ptr < e && *ptr != '1') {
-                    ptr++;
-                }
-                ptr++;
+        /* And stop before any '@' */
+        const char * modifier = strchr(retval, '@');
+        if (modifier) {
+            char * code_set_name;
+            const Size_t name_len = modifier - retval;
+            Newx(code_set_name, name_len + 1, char);         /* +1 for NUL */
+            my_strlcpy(code_set_name, retval, name_len + 1);
+            SAVEFREEPV(code_set_name);
+            retval = code_set_name;
+        }
+
+#      if defined(HAS_MBTOWC) || defined(HAS_MBRTOWC)
+
+        /* When these functions, are available, they were tried earlier and
+         * indicated that the locale did not act like a proper UTF-8 one.  So
+         * if it claims to be UTF-8, it is a lie */
+        if (is_codeset_name_UTF8(retval)) {
+            retval = "";
+            break;
+        }
 
-                /* Find the '5' */
-                item_start = ptr;
-                while (ptr < e && *ptr != '5') {
-                    ptr++;
-                }
+#      endif
 
-                /* Everything in between is the radix string */
-                if (ptr >= e) {
-                    PL_langinfo_buf[0] = '?';
-                    PL_langinfo_buf[1] = '\0';
-                }
-                else {
-                    *ptr = '\0';
-                    Move(item_start, PL_langinfo_buf, ptr - PL_langinfo_buf, char);
-                }
+        /* Otherwise the code set name is considered to be everything between
+         * the dot and the '@' */
+        retval = save_to_buffer(retval, retbufp, retbuf_sizep);
 
-                if (toggle) {
-                    RESTORE_LC_NUMERIC();
-                }
+        break;
 
-                retval = PL_langinfo_buf;
-                break;
+#    endif
 
-#    else
+    } /* Giant switch() of nl_langinfo() items */
 
-            case RADIXCHAR:     /* No special handling needed */
+    restore_toggled_locale_i(cat_index, orig_switched_locale);
 
+#    ifdef USE_LOCALE_CTYPE
+    restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_locale);
 #    endif
 
-            case THOUSEP:
+    if (utf8ness) {
+        *utf8ness = is_utf8;
+    }
 
-                if (toggle) {
-                    STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
-                }
+    return retval;
 
-                LOCALECONV_LOCK;    /* Prevent interference with other threads
-                                       using localeconv() */
+#  endif    /* All the implementations of my_langinfo() */
 
-#    ifdef TS_W32_BROKEN_LOCALECONV
+/*--------------------------------------------------------------------------*/
 
-                /* This should only be for the thousands separator.  A
-                 * different work around would be to use GetNumberFormat on a
-                 * known value and parse the result to find the separator */
-                save_thread = savepv(my_setlocale(LC_ALL, NULL));
-                _configthreadlocale(_DISABLE_PER_THREAD_LOCALE);
-                save_global = savepv(my_setlocale(LC_ALL, NULL));
-                my_setlocale(LC_ALL, save_thread);
-#      if 0
-                /* This is the start of code that for broken Windows replaces
-                 * the above and below code, and instead calls
-                 * GetNumberFormat() and then would parse that to find the
-                 * thousands separator.  It needs to handle UTF-16 vs -8
-                 * issues. */
+}   /* my_langinfo() */
 
-                needed_size = GetNumberFormatEx(PL_numeric_name, 0, "1234.5", NULL, PL_langinfo_buf, PL_langinfo_bufsize);
-                DEBUG_L(PerlIO_printf(Perl_debug_log,
-                    "%s: %d: return from GetNumber, count=%d, val=%s\n",
-                    __FILE__, __LINE__, needed_size, PL_langinfo_buf));
+#endif      /* USE_LOCALE */
 
-#      endif
-#    endif
+char *
+Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
+{
+#ifdef HAS_STRFTIME
 
-                lc = localeconv();
-                if (! lc) {
-                    temp = "";
-                }
-                else {
-                    temp = (item == RADIXCHAR)
-                             ? lc->decimal_point
-                             : lc->thousands_sep;
-                    if (! temp) {
-                        temp = "";
-                    }
-                }
+/*
+=for apidoc_section $time
+=for apidoc      my_strftime
 
-                retval = save_to_buffer(temp, &PL_langinfo_buf,
-                                        &PL_langinfo_bufsize, 0);
+strftime(), but with a different API so that the return value is a pointer
+to the formatted result (which MUST be arranged to be FREED BY THE
+CALLER).  This allows this function to increase the buffer size as needed,
+so that the caller doesn't have to worry about that.
 
-#    ifdef TS_W32_BROKEN_LOCALECONV
+On failure it returns NULL.
 
-                my_setlocale(LC_ALL, save_global);
-                _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
-                my_setlocale(LC_ALL, save_thread);
-                Safefree(save_global);
-                Safefree(save_thread);
+Note that yday and wday effectively are ignored by this function, as
+mini_mktime() overwrites them.
 
-#    endif
+Also note that it is always executed in the underlying C<LC_TIME> locale of
+the program, giving results based on that locale.
 
-                LOCALECONV_UNLOCK;
+=cut
+ */
+    PERL_ARGS_ASSERT_MY_STRFTIME;
 
-                if (toggle) {
-                    RESTORE_LC_NUMERIC();
-                }
+    /* An empty format yields an empty result */
+    const int fmtlen = strlen(fmt);
+    if (fmtlen == 0) {
+        char *ret;
+        Newxz (ret, 1, char);
+        return ret;
+    }
+
+    /* Set mytm to now */
+    struct tm mytm;
+    init_tm(&mytm);	/* XXX workaround - see Perl_init_tm() */
+
+    /* Override with the passed-in values */
+    mytm.tm_sec = sec;
+    mytm.tm_min = min;
+    mytm.tm_hour = hour;
+    mytm.tm_mday = mday;
+    mytm.tm_mon = mon;
+    mytm.tm_year = year;
+    mytm.tm_wday = wday;
+    mytm.tm_yday = yday;
+    mytm.tm_isdst = isdst;
+    mini_mktime(&mytm);
+
+    /* use libc to get the values for tm_gmtoff and tm_zone on platforms that
+     * have them [perl #18238] */
+#if defined(HAS_MKTIME) && (defined(HAS_TM_TM_GMTOFF) || defined(HAS_TM_TM_ZONE))
+    struct tm mytm2;
+    mytm2 = mytm;
+    MKTIME_LOCK;
+    mktime(&mytm2);
+    MKTIME_UNLOCK;
+#  ifdef HAS_TM_TM_GMTOFF
+    mytm.tm_gmtoff = mytm2.tm_gmtoff;
+#  endif
+#  ifdef HAS_TM_TM_ZONE
+    mytm.tm_zone = mytm2.tm_zone;
+#  endif
+#endif
+#if defined(USE_LOCALE_CTYPE) && defined(USE_LOCALE_TIME)
 
-                break;
+    const char * orig_CTYPE_LOCALE = toggle_locale_c(LC_CTYPE,
+                                                     querylocale_c(LC_TIME));
+#endif
 
-#  endif
-#  ifdef HAS_STRFTIME
+    /* Guess an initial size for the returned string based on an expansion
+     * factor of the input format, but with a minimum that should handle most
+     * common cases.  If this guess is too small, we will try again with a
+     * larger one */
+    int bufsize = MAX(fmtlen * 2, 64);
+
+    char *buf = NULL;   /* Makes Renew() act as Newx() on the first iteration */
+    do {
+        Renew(buf, bufsize, char);
+
+        GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral); /* fmt checked by caller */
+
+        STRFTIME_LOCK;
+        int len = strftime(buf, bufsize, fmt, &mytm);
+        STRFTIME_UNLOCK;
+
+        GCC_DIAG_RESTORE_STMT;
+
+        /* A non-zero return indicates success.  But to make sure we're not
+         * dealing with some rogue strftime that returns how much space it
+         * needs instead of 0 when there isn't enough, check that the return
+         * indicates we have at least one byte of spare space (which will be
+         * used for the terminating NUL). */
+        if (inRANGE(len, 1, bufsize - 1)) {
+            goto strftime_success;
+        }
+
+        /* There are several possible reasons for a 0 return code for a
+         * non-empty format, and they are not trivial to tease apart.  This
+         * issue is a known bug in the strftime() API.  What we do to cope is
+         * to assume that the reason is not enough space in the buffer, so
+         * increase it and try again. */
+        bufsize *= 2;
+
+        /* But don't just keep increasing the size indefinitely.  Stop when it
+         * becomes obvious that the reason for failure is something besides not
+         * enough space.  The most likely largest expanding format is %c.  On
+         * khw's Linux box, the maximum result of this is 67 characters, in the
+         * km_KH locale.  If a new script comes along that uses 4 UTF-8 bytes
+         * per character, and with a similar expansion factor, that would be a
+         * 268:2 byte ratio, or a bit more than 128:1 = 2**7:1.  Some strftime
+         * implementations allow you to say %1000c to pad to 1000 bytes.  This
+         * shows that it is impossible to implement this without a heuristic
+         * (that can fail).  But it indicates we need to be generous in the
+         * upper limit before failing.  The previous heuristic used was too
+         * stingy.  Since the size doubles per iteration, it doesn't take many
+         * to reach the limit */
+    } while (bufsize < ((1 << 11) + 1) * fmtlen);
 
-            /* These are defined by C89, so we assume that strftime supports
-             * them, and so are returned unconditionally; they may not be what
-             * the locale actually says, but should give good enough results
-             * for someone using them as formats (as opposed to trying to parse
-             * them to figure out what the locale says).  The other format
-             * items are actually tested to verify they work on the platform */
-            case D_FMT:         return "%x";
-            case T_FMT:         return "%X";
-            case D_T_FMT:       return "%c";
-
-            /* These formats are only available in later strfmtime's */
-            case ERA_D_FMT: case ERA_T_FMT: case ERA_D_T_FMT: case T_FMT_AMPM:
-
-            /* The rest can be gotten from most versions of strftime(). */
-            case ABDAY_1: case ABDAY_2: case ABDAY_3:
-            case ABDAY_4: case ABDAY_5: case ABDAY_6: case ABDAY_7:
-            case ALT_DIGITS:
-            case AM_STR: case PM_STR:
-            case ABMON_1: case ABMON_2: case ABMON_3: case ABMON_4:
-            case ABMON_5: case ABMON_6: case ABMON_7: case ABMON_8:
-            case ABMON_9: case ABMON_10: case ABMON_11: case ABMON_12:
-            case DAY_1: case DAY_2: case DAY_3: case DAY_4:
-            case DAY_5: case DAY_6: case DAY_7:
-            case MON_1: case MON_2: case MON_3: case MON_4:
-            case MON_5: case MON_6: case MON_7: case MON_8:
-            case MON_9: case MON_10: case MON_11: case MON_12:
-
-                init_tm(&tm);   /* Precaution against core dumps */
-                tm.tm_sec = 30;
-                tm.tm_min = 30;
-                tm.tm_hour = 6;
-                tm.tm_year = 2017 - 1900;
-                tm.tm_wday = 0;
-                tm.tm_mon = 0;
-
-                GCC_DIAG_IGNORE_STMT(-Wimplicit-fallthrough);
-
-                switch (item) {
-                    default:
-                        Perl_croak(aTHX_
-                                    "panic: %s: %d: switch case: %d problem",
-                                       __FILE__, __LINE__, item);
-                        NOT_REACHED; /* NOTREACHED */
-
-                    case PM_STR: tm.tm_hour = 18;
-                    case AM_STR:
-                        format = "%p";
-                        break;
-
-                    case ABDAY_7: tm.tm_wday++;
-                    case ABDAY_6: tm.tm_wday++;
-                    case ABDAY_5: tm.tm_wday++;
-                    case ABDAY_4: tm.tm_wday++;
-                    case ABDAY_3: tm.tm_wday++;
-                    case ABDAY_2: tm.tm_wday++;
-                    case ABDAY_1:
-                        format = "%a";
-                        break;
-
-                    case DAY_7: tm.tm_wday++;
-                    case DAY_6: tm.tm_wday++;
-                    case DAY_5: tm.tm_wday++;
-                    case DAY_4: tm.tm_wday++;
-                    case DAY_3: tm.tm_wday++;
-                    case DAY_2: tm.tm_wday++;
-                    case DAY_1:
-                        format = "%A";
-                        break;
-
-                    case ABMON_12: tm.tm_mon++;
-                    case ABMON_11: tm.tm_mon++;
-                    case ABMON_10: tm.tm_mon++;
-                    case ABMON_9: tm.tm_mon++;
-                    case ABMON_8: tm.tm_mon++;
-                    case ABMON_7: tm.tm_mon++;
-                    case ABMON_6: tm.tm_mon++;
-                    case ABMON_5: tm.tm_mon++;
-                    case ABMON_4: tm.tm_mon++;
-                    case ABMON_3: tm.tm_mon++;
-                    case ABMON_2: tm.tm_mon++;
-                    case ABMON_1:
-                        format = "%b";
-                        break;
-
-                    case MON_12: tm.tm_mon++;
-                    case MON_11: tm.tm_mon++;
-                    case MON_10: tm.tm_mon++;
-                    case MON_9: tm.tm_mon++;
-                    case MON_8: tm.tm_mon++;
-                    case MON_7: tm.tm_mon++;
-                    case MON_6: tm.tm_mon++;
-                    case MON_5: tm.tm_mon++;
-                    case MON_4: tm.tm_mon++;
-                    case MON_3: tm.tm_mon++;
-                    case MON_2: tm.tm_mon++;
-                    case MON_1:
-                        format = "%B";
-                        break;
-
-                    case T_FMT_AMPM:
-                        format = "%r";
-                        return_format = TRUE;
-                        break;
-
-                    case ERA_D_FMT:
-                        format = "%Ex";
-                        return_format = TRUE;
-                        break;
-
-                    case ERA_T_FMT:
-                        format = "%EX";
-                        return_format = TRUE;
-                        break;
-
-                    case ERA_D_T_FMT:
-                        format = "%Ec";
-                        return_format = TRUE;
-                        break;
-
-                    case ALT_DIGITS:
-                        tm.tm_wday = 0;
-                        format = "%Ow";	/* Find the alternate digit for 0 */
-                        break;
-                }
-
-                GCC_DIAG_RESTORE_STMT;
-
-                /* We can't use my_strftime() because it doesn't look at
-                 * tm_wday  */
-                while (0 == strftime(PL_langinfo_buf, PL_langinfo_bufsize,
-                                     format, &tm))
-                {
-                    /* A zero return means one of:
-                     *  a)  there wasn't enough space in PL_langinfo_buf
-                     *  b)  the format, like a plain %p, returns empty
-                     *  c)  it was an illegal format, though some
-                     *      implementations of strftime will just return the
-                     *      illegal format as a plain character sequence.
-                     *
-                     *  To quickly test for case 'b)', try again but precede
-                     *  the format with a plain character.  If that result is
-                     *  still empty, the problem is either 'a)' or 'c)' */
-
-                    Size_t format_size = strlen(format) + 1;
-                    Size_t mod_size = format_size + 1;
-                    char * mod_format;
-                    char * temp_result;
-
-                    Newx(mod_format, mod_size, char);
-                    Newx(temp_result, PL_langinfo_bufsize, char);
-                    *mod_format = ' ';
-                    my_strlcpy(mod_format + 1, format, mod_size);
-                    len = strftime(temp_result,
-                                   PL_langinfo_bufsize,
-                                   mod_format, &tm);
-                    Safefree(mod_format);
-                    Safefree(temp_result);
-
-                    /* If 'len' is non-zero, it means that we had a case like
-                     * %p which means the current locale doesn't use a.m. or
-                     * p.m., and that is valid */
-                    if (len == 0) {
-
-                        /* Here, still didn't work.  If we get well beyond a
-                         * reasonable size, bail out to prevent an infinite
-                         * loop. */
+    /* Here, strftime() returned 0, and it likely wasn't for lack of space.
+     * There are two possible reasons:
+     *
+     * First is that the result is legitimately 0 length.  This can happen
+     * when the format is precisely "%p".  That is the only documented format
+     * that can have an empty result. */
+    if (strEQ(fmt, "%p")) {
+        Renew(buf, 1, char);
+        *buf = '\0';
+        goto strftime_success;
+    }
 
-                        if (PL_langinfo_bufsize > 100 * format_size) {
-                            *PL_langinfo_buf = '\0';
-                        }
-                        else {
-                            /* Double the buffer size to retry;  Add 1 in case
-                             * original was 0, so we aren't stuck at 0.  */
-                            PL_langinfo_bufsize *= 2;
-                            PL_langinfo_bufsize++;
-                            Renew(PL_langinfo_buf, PL_langinfo_bufsize, char);
-                            continue;
-                        }
-                    }
+    /* The other reason is that the format string is malformed.  Probably it is
+     * an illegal conversion specifier.) */
+    Safefree(buf);
+    return NULL;
 
-                    break;
-                }
+  strftime_success:
 
-                /* Here, we got a result.
-                 *
-                 * If the item is 'ALT_DIGITS', PL_langinfo_buf contains the
-                 * alternate format for wday 0.  If the value is the same as
-                 * the normal 0, there isn't an alternate, so clear the buffer.
-                 * */
-                if (   item == ALT_DIGITS
-                    && strEQ(PL_langinfo_buf, "0"))
-                {
-                    *PL_langinfo_buf = '\0';
-                }
+#if defined(USE_LOCALE_CTYPE) && defined(USE_LOCALE_TIME)
 
-                /* ALT_DIGITS is problematic.  Experiments on it showed that
-                 * strftime() did not always work properly when going from
-                 * alt-9 to alt-10.  Only a few locales have this item defined,
-                 * and in all of them on Linux that khw was able to find,
-                 * nl_langinfo() merely returned the alt-0 character, possibly
-                 * doubled.  Most Unicode digits are in blocks of 10
-                 * consecutive code points, so that is sufficient information
-                 * for those scripts, as we can infer alt-1, alt-2, ....  But
-                 * for a Japanese locale, a CJK ideographic 0 is returned, and
-                 * the CJK digits are not in code point order, so you can't
-                 * really infer anything.  The localedef for this locale did
-                 * specify the succeeding digits, so that strftime() works
-                 * properly on them, without needing to infer anything.  But
-                 * the nl_langinfo() return did not give sufficient information
-                 * for the caller to understand what's going on.  So until
-                 * there is evidence that it should work differently, this
-                 * returns the alt-0 string for ALT_DIGITS.
-                 *
-                 * wday was chosen because its range is all a single digit.
-                 * Things like tm_sec have two digits as the minimum: '00' */
+    restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_LOCALE);
 
-                retval = PL_langinfo_buf;
+#endif
+    return buf;
 
-                /* If to return the format, not the value, overwrite the buffer
-                 * with it.  But some strftime()s will keep the original format
-                 * if illegal, so change those to "" */
-                if (return_format) {
-                    if (strEQ(PL_langinfo_buf, format)) {
-                        *PL_langinfo_buf = '\0';
-                    }
-                    else {
-                        retval = save_to_buffer(format, &PL_langinfo_buf,
-                                                &PL_langinfo_bufsize, 0);
-                    }
-                }
+#else
+    Perl_croak(aTHX_ "panic: no strftime");
+    return NULL;
+#endif
 
-                break;
+}
 
-#  endif
+char *
+Perl_my_strftime8_temp(pTHX_ const char *fmt, int sec, int min, int hour, int mday,
+                         int mon, int year, int wday, int yday, int isdst,
+                         utf8ness_t * utf8ness)
+{   /* Documented above */
+    char * retval = my_strftime(fmt, sec, min, hour, mday, mon, year, wday,
+                                yday, isdst);
+
+    PERL_ARGS_ASSERT_MY_STRFTIME8_TEMP;
+
+    if (utf8ness) {
+
+#ifdef USE_LOCALE_TIME
+        *utf8ness = get_locale_string_utf8ness_i(retval,
+                                                 LOCALE_UTF8NESS_UNKNOWN,
+                                                 NULL, LC_TIME_INDEX_);
+#else
+        *utf8ness = UTF8NESS_IMMATERIAL;
+#endif
 
-        }
     }
 
-    return retval;
-
-#endif
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                        "fmt=%s, retval=%s", fmt,
+                        ((is_utf8_string((U8 *) retval, 0))
+                         ? retval
+                         :_byte_dump_string((U8 *) retval, strlen(retval), 0)));
+             if (utf8ness) PerlIO_printf(Perl_debug_log, "; utf8ness=%d",
+                                                         (int) *utf8ness);
+             PerlIO_printf(Perl_debug_log, "\n");
+            );
 
+    return retval;
 }
 
 /*
@@ -3150,53 +5011,79 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
      * error handling.
      *
      * Besides some asserts, data structure initialization, and specific
-     * platform complications, this routine is effectively just two things.
-     *
-     *    a)    setlocale(LC_ALL, "");
+     * platform complications, this routine is effectively represented by this
+     * pseudo-code:
      *
-     * which sets LC_ALL to the values in the current environment.
+     *      setlocale(LC_ALL, "");                                            x
+     *      foreach (subcategory) {                                           x
+     *          curlocales[f(subcategory)] = setlocale(subcategory, NULL);    x
+     *      }                                                                 x
+     *      if (platform_so_requires) {
+     *          foreach (subcategory) {
+     *            PL_curlocales[f(subcategory)] = curlocales[f(subcategory)]
+     *          }
+     *      }
+     *      foreach (subcategory) {
+     *          if (needs_special_handling[f(subcategory)] &this_subcat_handler
+     *      }
      *
-     * And for each individual category 'foo' whose value we care about:
+     * This sets all the categories to the values in the current environment,
+     * saves them temporarily in curlocales[] until they can be handled and/or
+     * on some platforms saved in a per-thread array PL_curlocales[].
      *
-     *    b)    save_foo = setlocale(LC_foo, NULL); handle_foo(save_foo);
+     * f(foo) is a mapping from the opaque system category numbers to small
+     * non-negative integers used most everywhere in this file as indices into
+     * arrays (such as curlocales[]) so the program doesn't have to otherwise
+     * deal with the opaqueness.
      *
-     * (We don't tend to care about categories like LC_PAPER, for example.)
+     * If the platform doesn't have LC_ALL, the lines marked 'x' above are
+     * effectively replaced by:
+     *      foreach (subcategory) {                                           y
+     *          curlocales[f(subcategory)] = setlocale(subcategory, "");      y
+     *      }                                                                 y
      *
-     * But there are complications.  On systems without LC_ALL, it emulates
-     * step a) by looping through all the categories, and doing
+     * The only differences being the lack of an LC_ALL call, and using ""
+     * instead of NULL in the setlocale calls.
      *
-     *    setlocale(LC_foo, "");
+     * But there are, of course, complications.
      *
-     * on each.
+     * it has to deal with if this is an embedded perl, whose locale doesn't
+     * come from the environment, but has been set up by the caller.  This is
+     * pretty simply handled: the "" in the setlocale calls is not a string
+     * constant, but a variable which is set to NULL in the embedded case.
      *
-     * And it has to deal with if this is an embedded perl, whose locale
-     * doesn't come from the environment, but has been set up by the caller.
-     * This is pretty simply handled: the "" in the setlocale calls is not a
-     * string constant, but a variable which is set to NULL in the embedded
-     * case.
+     * But the major complication is handling failure and doing fallback.  All
+     * the code marked 'x' or 'y' above is actually enclosed in an outer loop,
+     * using the array trial_locales[].  On entry, trial_locales[] is
+     * initialized to just one entry, containing the NULL or "" locale argument
+     * shown above.  If, as is almost always the case, everything works, it
+     * exits after just the one iteration, going on to the next step.
      *
-     * But the major complication is handling failure and doing fallback.
-     * There is an array, trial_locales, the elements of which are looped over
-     * until the locale is successfully set.  The array is initialized with
-     * just one element, for
-     *      setlocale(LC_ALL, $NULL_or_empty)
-     * If that works, as it almost always does, there's no more elements and
-     * the loop iterates just the once.  Otherwise elements are added for each
-     * of the environment variables that POSIX dictates should control the
-     * program, in priority order, with a final one being "C".  The loop is
-     * repeated until the first one succeeds.  If all fail, we limp along with
-     * whatever state we got to.  If there is no LC_ALL, an inner loop is run
-     * through all categories (making things look complex).
+     * But if there is a failure, the code tries its best to honor the
+     * environment as much as possible.  It self-modifies trial_locales[] to
+     * have more elements, one for each of the POSIX-specified settings from
+     * the environment, such as LANG, ending in the ultimate fallback, the C
+     * locale.  Thus if there is something bogus with a higher priority
+     * environment variable, it will try with the next highest, until something
+     * works.  If everything fails, it limps along with whatever state it got
+     * to.
      *
      * A further complication is that Windows has an additional fallback, the
      * user-default ANSI code page obtained from the operating system.  This is
      * added as yet another loop iteration, just before the final "C"
      *
-     * On Ultrix, the locale MUST come from the environment, so there is
-     * preliminary code to set it.  I (khw) am not sure that it is necessary,
-     * and that this couldn't be folded into the loop, but barring any real
-     * platforms to test on, it's staying as-is
-     */
+     * A slight complication is that in embedded Perls, the locale may already
+     * be set-up, and we don't want to get it from the normal environment
+     * variables.  This is handled by having a special environment variable
+     * indicate we're in this situation.  We simply set setlocale's 2nd
+     * parameter to be a NULL instead of "".  That indicates to setlocale that
+     * it is not to change anything, but to return the current value,
+     * effectively initializing perl's db to what the locale already is.
+     *
+     * We play the same trick with NULL if a LC_ALL succeeds.  We call
+     * setlocale() on the individual categories with NULL to get their existing
+     * values for our db, instead of trying to change them.
+     * */
 
     int ok = 1;
 
@@ -3215,7 +5102,13 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
     const char * const setlocale_init = (PerlEnv_getenv("PERL_SKIP_LOCALE_INIT"))
                                         ? NULL
                                         : "";
-    const char* trial_locales[5];   /* 5 = 1 each for "", LC_ALL, LANG, "", C */
+    typedef struct trial_locales_struct_s {
+        const char* trial_locale;
+        const char* fallback_desc;
+        const char* fallback_name;
+    } trial_locales_struct;
+    /* 5 = 1 each for "", LC_ALL, LANG, (Win32) system default locale, C */
+    trial_locales_struct trial_locales[5];
     unsigned int trial_locales_count;
     const char * const lc_all     = PerlEnv_getenv("LC_ALL");
     const char * const lang       = PerlEnv_getenv("LANG");
@@ -3233,165 +5126,140 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
                                          *bad_lang_use_once
                                        && strNE("0", bad_lang_use_once)))));
 
-    /* setlocale() return vals; not copied so must be looked at immediately */
-    const char * sl_result[NOMINAL_LC_ALL_INDEX + 1];
-
     /* current locale for given category; should have been copied so aren't
      * volatile */
     const char * curlocales[NOMINAL_LC_ALL_INDEX + 1];
 
-#  ifdef WIN32
-
-    /* In some systems you can find out the system default locale
-     * and use that as the fallback locale. */
-#    define SYSTEM_DEFAULT_LOCALE
-#  endif
-#  ifdef SYSTEM_DEFAULT_LOCALE
-
-    const char *system_default_locale = NULL;
-
-#  endif
-
 #  ifndef DEBUGGING
 #    define DEBUG_LOCALE_INIT(a,b,c)
 #  else
 
     DEBUG_INITIALIZATION_set(cBOOL(PerlEnv_getenv("PERL_DEBUG_LOCALE_INIT")));
 
-#    define DEBUG_LOCALE_INIT(category, locale, result)                     \
-        STMT_START {                                                        \
-                if (debug_initialization) {                                 \
-                    PerlIO_printf(Perl_debug_log,                           \
-                                  "%s:%d: %s\n",                            \
-                                  __FILE__, __LINE__,                       \
-                                  setlocale_debug_string(category,          \
-                                                          locale,           \
-                                                          result));         \
-                }                                                           \
-        } STMT_END
+#    define DEBUG_LOCALE_INIT(cat_index, locale, result)                    \
+        DEBUG_L(PerlIO_printf(Perl_debug_log, "%s\n",                       \
+                    setlocale_debug_string_i(cat_index, locale, result)));
 
 /* Make sure the parallel arrays are properly set up */
 #    ifdef USE_LOCALE_NUMERIC
-    assert(categories[LC_NUMERIC_INDEX] == LC_NUMERIC);
-    assert(strEQ(category_names[LC_NUMERIC_INDEX], "LC_NUMERIC"));
+    assert(categories[LC_NUMERIC_INDEX_] == LC_NUMERIC);
+    assert(strEQ(category_names[LC_NUMERIC_INDEX_], "LC_NUMERIC"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_NUMERIC_INDEX] == LC_NUMERIC_MASK);
+    assert(category_masks[LC_NUMERIC_INDEX_] == LC_NUMERIC_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_CTYPE
-    assert(categories[LC_CTYPE_INDEX] == LC_CTYPE);
-    assert(strEQ(category_names[LC_CTYPE_INDEX], "LC_CTYPE"));
+    assert(categories[LC_CTYPE_INDEX_] == LC_CTYPE);
+    assert(strEQ(category_names[LC_CTYPE_INDEX_], "LC_CTYPE"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_CTYPE_INDEX] == LC_CTYPE_MASK);
+    assert(category_masks[LC_CTYPE_INDEX_] == LC_CTYPE_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_COLLATE
-    assert(categories[LC_COLLATE_INDEX] == LC_COLLATE);
-    assert(strEQ(category_names[LC_COLLATE_INDEX], "LC_COLLATE"));
+    assert(categories[LC_COLLATE_INDEX_] == LC_COLLATE);
+    assert(strEQ(category_names[LC_COLLATE_INDEX_], "LC_COLLATE"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_COLLATE_INDEX] == LC_COLLATE_MASK);
+    assert(category_masks[LC_COLLATE_INDEX_] == LC_COLLATE_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_TIME
-    assert(categories[LC_TIME_INDEX] == LC_TIME);
-    assert(strEQ(category_names[LC_TIME_INDEX], "LC_TIME"));
+    assert(categories[LC_TIME_INDEX_] == LC_TIME);
+    assert(strEQ(category_names[LC_TIME_INDEX_], "LC_TIME"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_TIME_INDEX] == LC_TIME_MASK);
+    assert(category_masks[LC_TIME_INDEX_] == LC_TIME_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_MESSAGES
-    assert(categories[LC_MESSAGES_INDEX] == LC_MESSAGES);
-    assert(strEQ(category_names[LC_MESSAGES_INDEX], "LC_MESSAGES"));
+    assert(categories[LC_MESSAGES_INDEX_] == LC_MESSAGES);
+    assert(strEQ(category_names[LC_MESSAGES_INDEX_], "LC_MESSAGES"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_MESSAGES_INDEX] == LC_MESSAGES_MASK);
+    assert(category_masks[LC_MESSAGES_INDEX_] == LC_MESSAGES_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_MONETARY
-    assert(categories[LC_MONETARY_INDEX] == LC_MONETARY);
-    assert(strEQ(category_names[LC_MONETARY_INDEX], "LC_MONETARY"));
+    assert(categories[LC_MONETARY_INDEX_] == LC_MONETARY);
+    assert(strEQ(category_names[LC_MONETARY_INDEX_], "LC_MONETARY"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_MONETARY_INDEX] == LC_MONETARY_MASK);
+    assert(category_masks[LC_MONETARY_INDEX_] == LC_MONETARY_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_ADDRESS
-    assert(categories[LC_ADDRESS_INDEX] == LC_ADDRESS);
-    assert(strEQ(category_names[LC_ADDRESS_INDEX], "LC_ADDRESS"));
+    assert(categories[LC_ADDRESS_INDEX_] == LC_ADDRESS);
+    assert(strEQ(category_names[LC_ADDRESS_INDEX_], "LC_ADDRESS"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_ADDRESS_INDEX] == LC_ADDRESS_MASK);
+    assert(category_masks[LC_ADDRESS_INDEX_] == LC_ADDRESS_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_IDENTIFICATION
-    assert(categories[LC_IDENTIFICATION_INDEX] == LC_IDENTIFICATION);
-    assert(strEQ(category_names[LC_IDENTIFICATION_INDEX], "LC_IDENTIFICATION"));
+    assert(categories[LC_IDENTIFICATION_INDEX_] == LC_IDENTIFICATION);
+    assert(strEQ(category_names[LC_IDENTIFICATION_INDEX_], "LC_IDENTIFICATION"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_IDENTIFICATION_INDEX] == LC_IDENTIFICATION_MASK);
+    assert(category_masks[LC_IDENTIFICATION_INDEX_] == LC_IDENTIFICATION_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_MEASUREMENT
-    assert(categories[LC_MEASUREMENT_INDEX] == LC_MEASUREMENT);
-    assert(strEQ(category_names[LC_MEASUREMENT_INDEX], "LC_MEASUREMENT"));
+    assert(categories[LC_MEASUREMENT_INDEX_] == LC_MEASUREMENT);
+    assert(strEQ(category_names[LC_MEASUREMENT_INDEX_], "LC_MEASUREMENT"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_MEASUREMENT_INDEX] == LC_MEASUREMENT_MASK);
+    assert(category_masks[LC_MEASUREMENT_INDEX_] == LC_MEASUREMENT_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_PAPER
-    assert(categories[LC_PAPER_INDEX] == LC_PAPER);
-    assert(strEQ(category_names[LC_PAPER_INDEX], "LC_PAPER"));
+    assert(categories[LC_PAPER_INDEX_] == LC_PAPER);
+    assert(strEQ(category_names[LC_PAPER_INDEX_], "LC_PAPER"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_PAPER_INDEX] == LC_PAPER_MASK);
+    assert(category_masks[LC_PAPER_INDEX_] == LC_PAPER_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_TELEPHONE
-    assert(categories[LC_TELEPHONE_INDEX] == LC_TELEPHONE);
-    assert(strEQ(category_names[LC_TELEPHONE_INDEX], "LC_TELEPHONE"));
+    assert(categories[LC_TELEPHONE_INDEX_] == LC_TELEPHONE);
+    assert(strEQ(category_names[LC_TELEPHONE_INDEX_], "LC_TELEPHONE"));
+#      ifdef USE_POSIX_2008_LOCALE
+    assert(category_masks[LC_TELEPHONE_INDEX_] == LC_TELEPHONE_MASK);
+#      endif
+#    endif
+#    ifdef USE_LOCALE_NAME
+    assert(categories[LC_NAME_INDEX_] == LC_NAME);
+    assert(strEQ(category_names[LC_NAME_INDEX_], "LC_NAME"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_TELEPHONE_INDEX] == LC_TELEPHONE_MASK);
+    assert(category_masks[LC_NAME_INDEX_] == LC_NAME_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_SYNTAX
-    assert(categories[LC_SYNTAX_INDEX] == LC_SYNTAX);
-    assert(strEQ(category_names[LC_SYNTAX_INDEX], "LC_SYNTAX"));
+    assert(categories[LC_SYNTAX_INDEX_] == LC_SYNTAX);
+    assert(strEQ(category_names[LC_SYNTAX_INDEX_], "LC_SYNTAX"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_SYNTAX_INDEX] == LC_SYNTAX_MASK);
+    assert(category_masks[LC_SYNTAX_INDEX_] == LC_SYNTAX_MASK);
 #      endif
 #    endif
 #    ifdef USE_LOCALE_TOD
-    assert(categories[LC_TOD_INDEX] == LC_TOD);
-    assert(strEQ(category_names[LC_TOD_INDEX], "LC_TOD"));
+    assert(categories[LC_TOD_INDEX_] == LC_TOD);
+    assert(strEQ(category_names[LC_TOD_INDEX_], "LC_TOD"));
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_TOD_INDEX] == LC_TOD_MASK);
+    assert(category_masks[LC_TOD_INDEX_] == LC_TOD_MASK);
 #      endif
 #    endif
 #    ifdef LC_ALL
-    assert(categories[LC_ALL_INDEX] == LC_ALL);
-    assert(strEQ(category_names[LC_ALL_INDEX], "LC_ALL"));
-    assert(NOMINAL_LC_ALL_INDEX == LC_ALL_INDEX);
+    assert(categories[LC_ALL_INDEX_] == LC_ALL);
+    assert(strEQ(category_names[LC_ALL_INDEX_], "LC_ALL"));
+    STATIC_ASSERT_STMT(NOMINAL_LC_ALL_INDEX == LC_ALL_INDEX_);
 #      ifdef USE_POSIX_2008_LOCALE
-    assert(category_masks[LC_ALL_INDEX] == LC_ALL_MASK);
+    assert(category_masks[LC_ALL_INDEX_] == LC_ALL_MASK);
 #      endif
 #    endif
 #  endif    /* DEBUGGING */
 
     /* Initialize the per-thread mbrFOO() state variables.  See POSIX.xs for
      * why these particular incantations are used. */
-#ifdef HAS_MBRLEN
+#  ifdef HAS_MBRLEN
     memzero(&PL_mbrlen_ps, sizeof(PL_mbrlen_ps));
-#endif
-#ifdef HAS_MBRTOWC
+#  endif
+#  ifdef HAS_MBRTOWC
     memzero(&PL_mbrtowc_ps, sizeof(PL_mbrtowc_ps));
-#endif
-#ifdef HAS_WCTOMBR
+#  endif
+#  ifdef HAS_WCTOMBR
     wcrtomb(NULL, L'\0', &PL_wcrtomb_ps);
-#endif
-
-    /* Initialize the cache of the program's UTF-8ness for the always known
-     * locales C and POSIX */
-    my_strlcpy(PL_locale_utf8ness, C_and_POSIX_utf8ness,
-               sizeof(PL_locale_utf8ness));
-
-    /* See https://github.com/Perl/perl5/issues/17824 */
-    Zero(curlocales, NOMINAL_LC_ALL_INDEX, char *);
-
+#  endif
 #  ifdef USE_THREAD_SAFE_LOCALE
 #    ifdef WIN32
 
@@ -3401,123 +5269,87 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 #  endif
 #  ifdef USE_POSIX_2008_LOCALE
 
-    PL_C_locale_obj = newlocale(LC_ALL_MASK, "C", (locale_t) 0);
     if (! PL_C_locale_obj) {
-        Perl_croak_nocontext(
-            "panic: Cannot create POSIX 2008 C locale object; errno=%d", errno);
+        PL_C_locale_obj = newlocale(LC_ALL_MASK, "C", (locale_t) 0);
     }
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        PerlIO_printf(Perl_debug_log, "%s:%d: created C object %p\n", __FILE__, __LINE__, PL_C_locale_obj);
+    if (! PL_C_locale_obj) {
+        locale_panic_(Perl_form(aTHX_
+                                "Cannot create POSIX 2008 C locale object"));
     }
 
-#  endif
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log, "created C object %p\n",
+                           PL_C_locale_obj));
 
-#  ifdef USE_LOCALE_NUMERIC
+    /* Switch to using the POSIX 2008 interface now.  This would happen below
+     * anyway, but deferring it can lead to leaks of memory that would also get
+     * malloc'd in the interim */
+    uselocale(PL_C_locale_obj);
+
+#    ifdef USE_LOCALE_NUMERIC
 
-    PL_numeric_radix_sv = newSVpvs(".");
+    PL_underlying_numeric_obj = duplocale(PL_C_locale_obj);
 
+#    endif
 #  endif
+#  ifdef USE_LOCALE_NUMERIC
+
+    PL_numeric_radix_sv    = newSV(1);
+    PL_underlying_radix_sv = newSV(1);
+    Newxz(PL_numeric_name, 1, char);    /* Single NUL character */
+    new_numeric("C", false);
 
-#  if defined(USE_POSIX_2008_LOCALE) && ! defined(HAS_QUERYLOCALE)
+#  endif
+#  ifdef USE_LOCALE_COLLATE
 
-    /* Initialize our records.  If we have POSIX 2008, we have LC_ALL */
-    do_setlocale_c(LC_ALL, my_setlocale(LC_ALL, NULL));
+    Newxz(PL_collation_name, 1, char);
+    new_collate("C", false);
 
 #  endif
-#  ifdef LOCALE_ENVIRON_REQUIRED
+#  ifdef USE_LOCALE_CTYPE
 
-    /*
-     * Ultrix setlocale(..., "") fails if there are no environment
-     * variables from which to get a locale name.
-     */
+    Newxz(PL_ctype_name, 1, char);
+    new_ctype("C", false);
 
-#    ifndef LC_ALL
-#      error Ultrix without LC_ALL not implemented
-#    else
+#  endif
+#  ifdef USE_PL_CURLOCALES
 
-    {
-        bool done = FALSE;
-        if (lang) {
-            sl_result[LC_ALL_INDEX] = do_setlocale_c(LC_ALL, setlocale_init);
-            DEBUG_LOCALE_INIT(LC_ALL, setlocale_init, sl_result[LC_ALL_INDEX]);
-            if (sl_result[LC_ALL_INDEX])
-                done = TRUE;
-            else
-                setlocale_failure = TRUE;
-        }
-        if (! setlocale_failure) {
-            const char * locale_param;
-            for (i = 0; i < LC_ALL_INDEX; i++) {
-                locale_param = (! done && (lang || PerlEnv_getenv(category_names[i])))
-                            ? setlocale_init
-                            : NULL;
-                sl_result[i] = do_setlocale_r(categories[i], locale_param);
-                if (! sl_result[i]) {
-                    setlocale_failure = TRUE;
-                }
-                DEBUG_LOCALE_INIT(categories[i], locale_param, sl_result[i]);
-            }
-        }
+    /* Initialize our records. */
+    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        (void) emulate_setlocale_i(i, posix_setlocale(categories[i], NULL),
+                                   RECALCULATE_LC_ALL_ON_FINAL_INTERATION,
+                                   __LINE__);
     }
 
-#    endif /* LC_ALL */
-#  endif /* LOCALE_ENVIRON_REQUIRED */
+#  endif
 
     /* We try each locale in the list until we get one that works, or exhaust
      * the list.  Normally the loop is executed just once.  But if setting the
      * locale fails, inside the loop we add fallback trials to the array and so
      * will execute the loop multiple times */
-    trial_locales[0] = setlocale_init;
+    trial_locales_struct ts = {
+        .trial_locale = setlocale_init,
+        .fallback_desc = NULL,
+        .fallback_name = NULL,
+    };
+    trial_locales[0] = ts;
     trial_locales_count = 1;
 
-    for (i= 0; i < trial_locales_count; i++) {
-        const char * trial_locale = trial_locales[i];
-
-        if (i > 0) {
-
-            /* XXX This is to preserve old behavior for LOCALE_ENVIRON_REQUIRED
-             * when i==0, but I (khw) don't think that behavior makes much
-             * sense */
-            setlocale_failure = FALSE;
-
-#  ifdef SYSTEM_DEFAULT_LOCALE
-#    ifdef WIN32    /* Note that assumes Win32 has LC_ALL */
-
-            /* On Windows machines, an entry of "" after the 0th means to use
-             * the system default locale, which we now proceed to get. */
-            if (strEQ(trial_locale, "")) {
-                unsigned int j;
-
-                /* Note that this may change the locale, but we are going to do
-                 * that anyway just below */
-                system_default_locale = do_setlocale_c(LC_ALL, "");
-                DEBUG_LOCALE_INIT(LC_ALL, "", system_default_locale);
-
-                /* Skip if invalid or if it's already on the list of locales to
-                 * try */
-                if (! system_default_locale) {
-                    goto next_iteration;
-                }
-                for (j = 0; j < trial_locales_count; j++) {
-                    if (strEQ(system_default_locale, trial_locales[j])) {
-                        goto next_iteration;
-                    }
-                }
-
-                trial_locale = system_default_locale;
-            }
-#    else
-#      error SYSTEM_DEFAULT_LOCALE only implemented for Win32
-#    endif
-#  endif /* SYSTEM_DEFAULT_LOCALE */
+    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        curlocales[i] = NULL;
+    }
 
-        }   /* For i > 0 */
+    for (i= 0; i < trial_locales_count; i++) {
+        const char * trial_locale = trial_locales[i].trial_locale;
+        setlocale_failure = FALSE;
 
 #  ifdef LC_ALL
 
-        sl_result[LC_ALL_INDEX] = do_setlocale_c(LC_ALL, trial_locale);
-        DEBUG_LOCALE_INIT(LC_ALL, trial_locale, sl_result[LC_ALL_INDEX]);
-        if (! sl_result[LC_ALL_INDEX]) {
+        /* setlocale() return vals; not copied so must be looked at
+         * immediately. */
+        const char * sl_result[NOMINAL_LC_ALL_INDEX + 1];
+        sl_result[LC_ALL_INDEX_] = stdized_setlocale(LC_ALL, trial_locale);
+        DEBUG_LOCALE_INIT(LC_ALL_INDEX_, trial_locale, sl_result[LC_ALL_INDEX_]);
+        if (! sl_result[LC_ALL_INDEX_]) {
             setlocale_failure = TRUE;
         }
         else {
@@ -3536,12 +5368,12 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
         if (! setlocale_failure) {
             unsigned int j;
             for (j = 0; j < NOMINAL_LC_ALL_INDEX; j++) {
-                curlocales[j]
-                        = savepv(do_setlocale_r(categories[j], trial_locale));
+                curlocales[j] = stdized_setlocale(categories[j], trial_locale);
                 if (! curlocales[j]) {
                     setlocale_failure = TRUE;
                 }
-                DEBUG_LOCALE_INIT(categories[j], trial_locale, curlocales[j]);
+                curlocales[j] = savepv(curlocales[j]);
+                DEBUG_LOCALE_INIT(j, trial_locale, curlocales[j]);
             }
 
             if (LIKELY(! setlocale_failure)) {  /* All succeeded */
@@ -3565,14 +5397,11 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 #  else /* !LC_ALL */
 
                 PerlIO_printf(Perl_error_log,
-                "perl: warning: Setting locale failed for the categories:\n\t");
+                "perl: warning: Setting locale failed for the categories:\n");
 
                 for (j = 0; j < NOMINAL_LC_ALL_INDEX; j++) {
                     if (! curlocales[j]) {
-                        PerlIO_printf(Perl_error_log, category_names[j]);
-                    }
-                    else {
-                        Safefree(curlocales[j]);
+                        PerlIO_printf(Perl_error_log, "\t%s\n", category_names[j]);
                     }
                 }
 
@@ -3656,21 +5485,35 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
              * to change the behavior. */
             if (lc_all) {
                 for (j = 0; j < trial_locales_count; j++) {
-                    if (strEQ(lc_all, trial_locales[j])) {
+                    if (strEQ(lc_all, trial_locales[j].trial_locale)) {
                         goto done_lc_all;
                     }
                 }
-                trial_locales[trial_locales_count++] = lc_all;
+                trial_locales_struct ts = {
+                    .trial_locale = lc_all,
+                    .fallback_desc = (strEQ(lc_all, "C")
+                                      ? "the standard locale"
+                                      : "a fallback locale"),
+                    .fallback_name = lc_all,
+                };
+                trial_locales[trial_locales_count++] = ts;
             }
           done_lc_all:
 
             if (lang) {
                 for (j = 0; j < trial_locales_count; j++) {
-                    if (strEQ(lang, trial_locales[j])) {
+                    if (strEQ(lang, trial_locales[j].trial_locale)) {
                         goto done_lang;
                     }
                 }
-                trial_locales[trial_locales_count++] = lang;
+                trial_locales_struct ts = {
+                    .trial_locale = lang,
+                    .fallback_desc = (strEQ(lang, "C")
+                                      ? "the standard locale"
+                                      : "a fallback locale"),
+                    .fallback_name = lang,
+                };
+                trial_locales[trial_locales_count++] = ts;
             }
           done_lang:
 
@@ -3679,29 +5522,65 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
             /* For Windows, we also try the system default locale before "C".
              * (If there exists a Windows without LC_ALL we skip this because
              * it gets too complicated.  For those, the "C" is the next
-             * fallback possibility).  The "" is the same as the 0th element of
-             * the array, but the code at the loop above knows to treat it
-             * differently when not the 0th */
-            trial_locales[trial_locales_count++] = "";
+             * fallback possibility). */
+            {
+                /* Note that this may change the locale, but we are going to do
+                 * that anyway.
+                 *
+                 * Our normal Windows setlocale() implementation ignores the
+                 * system default locale to make things work like POSIX.  This
+                 * is the only place where we want to consider it, so have to
+                 * use wrap_wsetlocale(). */
+                const char *system_default_locale =
+                                    stdize_locale(LC_ALL,
+                                                  wrap_wsetlocale(LC_ALL, ""),
+                                                  &PL_stdize_locale_buf,
+                                                  &PL_stdize_locale_bufsize,
+                                                  __LINE__);
+                DEBUG_LOCALE_INIT(LC_ALL_INDEX_, "", system_default_locale);
+
+                /* Skip if invalid or if it's already on the list of locales to
+                 * try */
+                if (! system_default_locale) {
+                    goto done_system_default;
+                }
+                for (j = 0; j < trial_locales_count; j++) {
+                    if (strEQ(system_default_locale, trial_locales[j].trial_locale)) {
+                        goto done_system_default;
+                    }
+                }
+
+                trial_locales_struct ts = {
+                    .trial_locale = system_default_locale,
+                    .fallback_desc = (strEQ(system_default_locale, "C")
+                                      ? "the standard locale"
+                                      : "the system default locale"),
+                    .fallback_name = system_default_locale,
+                };
+                trial_locales[trial_locales_count++] = ts;
+            }
+          done_system_default:
 
 #  endif
 
             for (j = 0; j < trial_locales_count; j++) {
-                if (strEQ("C", trial_locales[j])) {
+                if (strEQ("C", trial_locales[j].trial_locale)) {
                     goto done_C;
                 }
             }
-            trial_locales[trial_locales_count++] = "C";
-
+            {
+                /* new scope to avoid C++ complaining about
+                   initialization being bypassed by goto.
+                */
+                trial_locales_struct ts = {
+                    .trial_locale = "C",
+                    .fallback_desc = "the standard locale",
+                    .fallback_name = "C",
+                };
+                trial_locales[trial_locales_count++] = ts;
+            }
           done_C: ;
         }   /* end of first time through the loop */
-
-#  ifdef WIN32
-
-      next_iteration: ;
-
-#  endif
-
     }   /* end of looping through the trial locales */
 
     if (ok < 1) {   /* If we tried to fallback */
@@ -3723,34 +5602,15 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 
             for (j = 0; j < NOMINAL_LC_ALL_INDEX; j++) {
                 Safefree(curlocales[j]);
-                curlocales[j] = savepv(do_setlocale_r(categories[j], NULL));
-                DEBUG_LOCALE_INIT(categories[j], NULL, curlocales[j]);
+                curlocales[j] = savepv(stdized_setlocale(categories[j], NULL));
+                DEBUG_LOCALE_INIT(j, NULL, curlocales[j]);
             }
         }
 
         if (locwarn) {
-            const char * description;
-            const char * name = "";
-            if (strEQ(trial_locales[i], "C")) {
-                description = "the standard locale";
-                name = "C";
-            }
+            const char * description = trial_locales[i].fallback_desc;
+            const char * name = trial_locales[i].fallback_name;
 
-#  ifdef SYSTEM_DEFAULT_LOCALE
-
-            else if (strEQ(trial_locales[i], "")) {
-                description = "the system default locale";
-                if (system_default_locale) {
-                    name = system_default_locale;
-                }
-            }
-
-#  endif /* SYSTEM_DEFAULT_LOCALE */
-
-            else {
-                description = "a fallback locale";
-                name = trial_locales[i];
-            }
             if (name && strNE(name, "")) {
                 PerlIO_printf(Perl_error_log,
                     "perl: warning: %s %s (\"%s\").\n", msg, description, name);
@@ -3762,43 +5622,23 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
         }
     } /* End of tried to fallback */
 
-    /* Done with finding the locales; update our records */
-
-#  ifdef USE_LOCALE_CTYPE
-
-    new_ctype(curlocales[LC_CTYPE_INDEX]);
-
-#  endif
-#  ifdef USE_LOCALE_COLLATE
-
-    new_collate(curlocales[LC_COLLATE_INDEX]);
-
-#  endif
-#  ifdef USE_LOCALE_NUMERIC
-
-    new_numeric(curlocales[LC_NUMERIC_INDEX]);
-
-#  endif
-
-    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
-
-#  if defined(USE_ITHREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
+#  ifdef USE_POSIX_2008_LOCALE
 
-        /* This caches whether each category's locale is UTF-8 or not.  This
-         * may involve changing the locale.  It is ok to do this at
-         * initialization time before any threads have started, but not later
-         * unless thread-safe operations are used.
-         * Caching means that if the program heeds our dictate not to change
-         * locales in threaded applications, this data will remain valid, and
-         * it may get queried without having to change locales.  If the
-         * environment is such that all categories have the same locale, this
-         * isn't needed, as the code will not change the locale; but this
-         * handles the uncommon case where the environment has disparate
-         * locales for the categories */
-        (void) _is_cur_LC_category_utf8(categories[i]);
+    /* The stdized setlocales haven't affected the P2008 locales.  Initialize
+     * them now, calculating LC_ALL only on the final go round, when all have
+     * been set. */
+    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        (void) emulate_setlocale_i(i, curlocales[i],
+                                   RECALCULATE_LC_ALL_ON_FINAL_INTERATION,
+                                   __LINE__);
+    }
 
 #  endif
 
+    /* Done with finding the locales; update the auxiliary records */
+    new_LC_ALL(NULL, false);
+
+    for (i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
         Safefree(curlocales[i]);
     }
 
@@ -3824,20 +5664,174 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 
 #  endif
 #endif /* USE_LOCALE */
-#ifdef DEBUGGING
 
     /* So won't continue to output stuff */
     DEBUG_INITIALIZATION_set(FALSE);
 
-#endif
-
     return ok;
 }
 
 #ifdef USE_LOCALE_COLLATE
 
+STATIC void
+S_compute_collxfrm_coefficients(pTHX)
+{
+
+    /* A locale collation definition includes primary, secondary, tertiary,
+     * etc. weights for each character.  To sort, the primary weights are used,
+     * and only if they compare equal, then the secondary weights are used, and
+     * only if they compare equal, then the tertiary, etc.
+     *
+     * strxfrm() works by taking the input string, say ABC, and creating an
+     * output transformed string consisting of first the primary weights,
+     * A¹B¹C¹ followed by the secondary ones, A²B²C²; and then the tertiary,
+     * etc, yielding A¹B¹C¹ A²B²C² A³B³C³ ....  Some characters may not have
+     * weights at every level.  In our example, let's say B doesn't have a
+     * tertiary weight, and A doesn't have a secondary weight.  The constructed
+     * string is then going to be
+     *  A¹B¹C¹ B²C² A³C³ ....
+     * This has the desired effect that strcmp() will look at the secondary or
+     * tertiary weights only if the strings compare equal at all higher
+     * priority weights.  The spaces shown here, like in
+     *  "A¹B¹C¹ A²B²C² "
+     * are not just for readability.  In the general case, these must actually
+     * be bytes, which we will call here 'separator weights'; and they must be
+     * smaller than any other weight value, but since these are C strings, only
+     * the terminating one can be a NUL (some implementations may include a
+     * non-NUL separator weight just before the NUL).  Implementations tend to
+     * reserve 01 for the separator weights.  They are needed so that a shorter
+     * string's secondary weights won't be misconstrued as primary weights of a
+     * longer string, etc.  By making them smaller than any other weight, the
+     * shorter string will sort first.  (Actually, if all secondary weights are
+     * smaller than all primary ones, there is no need for a separator weight
+     * between those two levels, etc.)
+     *
+     * The length of the transformed string is roughly a linear function of the
+     * input string.  It's not exactly linear because some characters don't
+     * have weights at all levels.  When we call strxfrm() we have to allocate
+     * some memory to hold the transformed string.  The calculations below try
+     * to find coefficients 'm' and 'b' for this locale so that m*x + b equals
+     * how much space we need, given the size of the input string in 'x'.  If
+     * we calculate too small, we increase the size as needed, and call
+     * strxfrm() again, but it is better to get it right the first time to
+     * avoid wasted expensive string transformations.
+     *
+     * We use the string below to find how long the transformation of it is.
+     * Almost all locales are supersets of ASCII, or at least the ASCII
+     * letters.  We use all of them, half upper half lower, because if we used
+     * fewer, we might hit just the ones that are outliers in a particular
+     * locale.  Most of the strings being collated will contain a preponderance
+     * of letters, and even if they are above-ASCII, they are likely to have
+     * the same number of weight levels as the ASCII ones.  It turns out that
+     * digits tend to have fewer levels, and some punctuation has more, but
+     * those are relatively sparse in text, and khw believes this gives a
+     * reasonable result, but it could be changed if experience so dictates. */
+    const char longer[] = "ABCDEFGHIJKLMnopqrstuvwxyz";
+    char * x_longer;        /* Transformed 'longer' */
+    Size_t x_len_longer;    /* Length of 'x_longer' */
+
+    char * x_shorter;   /* We also transform a substring of 'longer' */
+    Size_t x_len_shorter;
+
+    PL_in_utf8_COLLATE_locale = (PL_collation_standard)
+                                ? 0
+                                : is_locale_utf8(PL_collation_name);
+    PL_strxfrm_NUL_replacement = '\0';
+    PL_strxfrm_max_cp = 0;
+
+    /* mem_collxfrm_() is used get the transformation (though here we are
+     * interested only in its length).  It is used because it has the
+     * intelligence to handle all cases, but to work, it needs some values of
+     * 'm' and 'b' to get it started.  For the purposes of this calculation we
+     * use a very conservative estimate of 'm' and 'b'.  This assumes a weight
+     * can be multiple bytes, enough to hold any UV on the platform, and there
+     * are 5 levels, 4 weight bytes, and a trailing NUL.  */
+    PL_collxfrm_base = 5;
+    PL_collxfrm_mult = 5 * sizeof(UV);
+
+    /* Find out how long the transformation really is */
+    x_longer = mem_collxfrm_(longer,
+                             sizeof(longer) - 1,
+                             &x_len_longer,
+
+                             /* We avoid converting to UTF-8 in the called
+                              * function by telling it the string is in UTF-8
+                              * if the locale is a UTF-8 one.  Since the string
+                              * passed here is invariant under UTF-8, we can
+                              * claim it's UTF-8 even though it isn't.  */
+                              PL_in_utf8_COLLATE_locale);
+    Safefree(x_longer);
+
+    /* Find out how long the transformation of a substring of 'longer' is.
+     * Together the lengths of these transformations are sufficient to
+     * calculate 'm' and 'b'.  The substring is all of 'longer' except the
+     * first character.  This minimizes the chances of being swayed by outliers
+     * */
+    x_shorter = mem_collxfrm_(longer + 1,
+                              sizeof(longer) - 2,
+                              &x_len_shorter,
+                              PL_in_utf8_COLLATE_locale);
+    Safefree(x_shorter);
+
+    /* If the results are nonsensical for this simple test, the whole locale
+     * definition is suspect.  Mark it so that locale collation is not active
+     * at all for it.  XXX Should we warn? */
+    if (   x_len_shorter == 0
+        || x_len_longer == 0
+        || x_len_shorter >= x_len_longer)
+    {
+        PL_collxfrm_mult = 0;
+        PL_collxfrm_base = 1;
+        DEBUG_L(PerlIO_printf(Perl_debug_log,
+                "Disabling locale collation for LC_COLLATE='%s';"
+                " length for shorter sample=%zu; longer=%zu\n",
+                PL_collation_name, x_len_shorter, x_len_longer));
+    }
+    else {
+        SSize_t base;       /* Temporary */
+
+        /* We have both: m * strlen(longer)  + b = x_len_longer
+         *               m * strlen(shorter) + b = x_len_shorter;
+         * subtracting yields:
+         *          m * (strlen(longer) - strlen(shorter))
+         *                             = x_len_longer - x_len_shorter
+         * But we have set things up so that 'shorter' is 1 byte smaller than
+         * 'longer'.  Hence:
+         *          m = x_len_longer - x_len_shorter
+         *
+         * But if something went wrong, make sure the multiplier is at least 1.
+         */
+        if (x_len_longer > x_len_shorter) {
+            PL_collxfrm_mult = (STRLEN) x_len_longer - x_len_shorter;
+        }
+        else {
+            PL_collxfrm_mult = 1;
+        }
+
+        /*     mx + b = len
+         * so:      b = len - mx
+         * but in case something has gone wrong, make sure it is non-negative
+         * */
+        base = x_len_longer - PL_collxfrm_mult * (sizeof(longer) - 1);
+        if (base < 0) {
+            base = 0;
+        }
+
+        /* Add 1 for the trailing NUL */
+        PL_collxfrm_base = base + 1;
+    }
+
+    DEBUG_L(PerlIO_printf(Perl_debug_log,
+                          "?UTF-8 locale=%d; x_len_shorter=%zu, "
+                          "x_len_longer=%zu,"
+                          " collate multipler=%zu, collate base=%zu\n",
+                          PL_in_utf8_COLLATE_locale,
+                          x_len_shorter, x_len_longer,
+                          PL_collxfrm_mult, PL_collxfrm_base));
+}
+
 char *
-Perl__mem_collxfrm(pTHX_ const char *input_string,
+Perl_mem_collxfrm_(pTHX_ const char *input_string,
                          STRLEN len,    /* Length of 'input_string' */
                          STRLEN *xlen,  /* Set to length of returned string
                                            (not including the collation index
@@ -3845,15 +5839,18 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                          bool utf8      /* Is the input in UTF-8? */
                    )
 {
-
-    /* _mem_collxfrm() is a bit like strxfrm() but with two important
-     * differences. First, it handles embedded NULs. Second, it allocates a bit
-     * more memory than needed for the transformed data itself.  The real
-     * transformed data begins at offset COLLXFRM_HDR_LEN.  *xlen is set to
-     * the length of that, and doesn't include the collation index size.
+    /* mem_collxfrm_() is like strxfrm() but with two important differences.
+     * First, it handles embedded NULs. Second, it allocates a bit more memory
+     * than needed for the transformed data itself.  The real transformed data
+     * begins at offset COLLXFRM_HDR_LEN.  *xlen is set to the length of that,
+     * and doesn't include the collation index size.
+     *
+     * It is the caller's responsibility to eventually free the memory returned
+     * by this function.
+     *
      * Please see sv_collxfrm() to see how this is used. */
 
-#define COLLXFRM_HDR_LEN    sizeof(PL_collation_ix)
+#  define COLLXFRM_HDR_LEN    sizeof(PL_collation_ix)
 
     char * s = (char *) input_string;
     STRLEN s_strlen = strlen(input_string);
@@ -3862,16 +5859,29 @@ Perl__mem_collxfrm(pTHX_ const char *inp
     STRLEN length_in_chars;
     bool first_time = TRUE; /* Cleared after first loop iteration */
 
-    PERL_ARGS_ASSERT__MEM_COLLXFRM;
+#  ifdef USE_LOCALE_CTYPE
+        const char * orig_CTYPE_locale = NULL;
+#  endif
+
+#  if defined(USE_POSIX_2008_LOCALE) && defined HAS_STRXFRM_L
+    locale_t constructed_locale = (locale_t) 0;
+#  endif
+
+    PERL_ARGS_ASSERT_MEM_COLLXFRM_;
 
     /* Must be NUL-terminated */
     assert(*(input_string + len) == '\0');
 
-    /* If this locale has defective collation, skip */
-    if (PL_collxfrm_base == 0 && PL_collxfrm_mult == 0) {
-        DEBUG_L(PerlIO_printf(Perl_debug_log,
-                      "_mem_collxfrm: locale's collation is defective\n"));
-        goto bad;
+    if (PL_collxfrm_mult == 0) {     /* unknown or bad */
+        if (PL_collxfrm_base != 0) { /* bad collation => skip */
+            DEBUG_L(PerlIO_printf(Perl_debug_log,
+                            "mem_collxfrm_: locale's collation is defective\n"));
+            goto bad;
+        }
+
+        /* (mult, base) == (0,0) means we need to calculate mult and base
+         * before proceeding */
+        S_compute_collxfrm_coefficients(aTHX);
     }
 
     /* Replace any embedded NULs with the control that sorts before any others.
@@ -3912,6 +5922,16 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                  try_non_controls < 2;
                  try_non_controls++)
             {
+
+#  ifdef USE_LOCALE_CTYPE
+
+                /* In this case we use isCNTRL_LC() below, which relies on
+                 * LC_CTYPE, so that must be switched to correspond with the
+                 * LC_COLLATE locale */
+                if (! try_non_controls && ! PL_in_utf8_COLLATE_locale) {
+                    orig_CTYPE_locale = toggle_locale_c(LC_CTYPE, PL_collation_name);
+                }
+#  endif
                 /* Look through all legal code points (NUL isn't) */
                 for (j = 1; j < 256; j++) {
                     char * x;       /* j's xfrm plus collation index */
@@ -3932,7 +5952,7 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                     cur_source[0] = (char) j;
 
                     /* Then transform it */
-                    x = _mem_collxfrm(cur_source, trial_len, &x_len,
+                    x = mem_collxfrm_(cur_source, trial_len, &x_len,
                                       0 /* The string is not in UTF-8 */);
 
                     /* Ignore any character that didn't successfully transform.
@@ -3956,6 +5976,10 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                     }
                 } /* end of loop through all 255 characters */
 
+#  ifdef USE_LOCALE_CTYPE
+                restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_locale);
+#  endif
+
                 /* Stop looking if found */
                 if (cur_min_x) {
                     break;
@@ -3965,18 +5989,18 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                  * work in the locale, repeat the loop, looking for any
                  * character that works */
                 DEBUG_L(PerlIO_printf(Perl_debug_log,
-                "_mem_collxfrm: No control worked.  Trying non-controls\n"));
+                "mem_collxfrm_: No control worked.  Trying non-controls\n"));
             } /* End of loop to try first the controls, then any char */
 
             if (! cur_min_x) {
                 DEBUG_L(PerlIO_printf(Perl_debug_log,
-                    "_mem_collxfrm: Couldn't find any character to replace"
+                    "mem_collxfrm_: Couldn't find any character to replace"
                     " embedded NULs in locale %s with", PL_collation_name));
                 goto bad;
             }
 
             DEBUG_L(PerlIO_printf(Perl_debug_log,
-                    "_mem_collxfrm: Replacing embedded NULs in locale %s with "
+                    "mem_collxfrm_: Replacing embedded NULs in locale %s with "
                     "0x%02X\n", PL_collation_name, PL_strxfrm_NUL_replacement));
 
             Safefree(cur_min_x);
@@ -4089,7 +6113,7 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                         cur_source[0] = (char) j;
 
                         /* Then transform it */
-                        x = _mem_collxfrm(cur_source, 1, &x_len, FALSE);
+                        x = mem_collxfrm_(cur_source, 1, &x_len, FALSE);
 
                         /* If something went wrong (which it shouldn't), just
                          * ignore this code point */
@@ -4114,14 +6138,14 @@ Perl__mem_collxfrm(pTHX_ const char *inp
 
                     if (! cur_max_x) {
                         DEBUG_L(PerlIO_printf(Perl_debug_log,
-                            "_mem_collxfrm: Couldn't find any character to"
+                            "mem_collxfrm_: Couldn't find any character to"
                             " replace above-Latin1 chars in locale %s with",
                             PL_collation_name));
                         goto bad;
                     }
 
                     DEBUG_L(PerlIO_printf(Perl_debug_log,
-                            "_mem_collxfrm: highest 1-byte collating character"
+                            "mem_collxfrm_: highest 1-byte collating character"
                             " in locale %s is 0x%02X\n",
                             PL_collation_name,
                             PL_strxfrm_max_cp));
@@ -4181,27 +6205,66 @@ Perl__mem_collxfrm(pTHX_ const char *inp
     Newx(xbuf, xAlloc, char);
     if (UNLIKELY(! xbuf)) {
         DEBUG_L(PerlIO_printf(Perl_debug_log,
-                      "_mem_collxfrm: Couldn't malloc %zu bytes\n", xAlloc));
+                      "mem_collxfrm_: Couldn't malloc %zu bytes\n", xAlloc));
         goto bad;
     }
 
     /* Store the collation id */
     *(U32*)xbuf = PL_collation_ix;
 
+#  if defined(USE_POSIX_2008_LOCALE) && defined HAS_STRXFRM_L
+#    ifdef USE_LOCALE_CTYPE
+
+    constructed_locale = newlocale(LC_CTYPE_MASK, PL_collation_name,
+                                   duplocale(use_curlocale_scratch()));
+#    else
+
+    constructed_locale = duplocale(use_curlocale_scratch());
+
+#    endif
+#    define my_strxfrm(dest, src, n)  strxfrm_l(dest, src, n,           \
+                                                constructed_locale)
+#    define CLEANUP_STRXFRM                                             \
+        STMT_START {                                                    \
+            if (constructed_locale != (locale_t) 0)                     \
+                freelocale(constructed_locale);                         \
+        } STMT_END
+#  else
+#    define my_strxfrm(dest, src, n)  strxfrm(dest, src, n)
+#    ifdef USE_LOCALE_CTYPE
+
+    orig_CTYPE_locale = toggle_locale_c(LC_CTYPE, PL_collation_name);
+
+#      define CLEANUP_STRXFRM                                           \
+                restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_locale)
+#    else
+#      define CLEANUP_STRXFRM  NOOP
+#    endif
+#  endif
+
     /* Then the transformation of the input.  We loop until successful, or we
      * give up */
     for (;;) {
 
-        *xlen = strxfrm(xbuf + COLLXFRM_HDR_LEN, s, xAlloc - COLLXFRM_HDR_LEN);
+        errno = 0;
+        *xlen = my_strxfrm(xbuf + COLLXFRM_HDR_LEN, s, xAlloc - COLLXFRM_HDR_LEN);
 
         /* If the transformed string occupies less space than we told strxfrm()
-         * was available, it means it successfully transformed the whole
-         * string. */
+         * was available, it means it transformed the whole string. */
         if (*xlen < xAlloc - COLLXFRM_HDR_LEN) {
 
-            /* Some systems include a trailing NUL in the returned length.
-             * Ignore it, using a loop in case multiple trailing NULs are
-             * returned. */
+            /* But there still could have been a problem */
+            if (errno != 0) {
+                DEBUG_L(PerlIO_printf(Perl_debug_log,
+                       "strxfrm failed for LC_COLLATE=%s; errno=%d, input=%s\n",
+                       PL_collation_name, errno,
+                       _byte_dump_string((U8 *) s, len, 0)));
+                goto bad;
+            }
+
+            /* Here, the transformation was successful.  Some systems include a
+             * trailing NUL in the returned length.  Ignore it, using a loop in
+             * case multiple trailing NULs are returned. */
             while (   (*xlen) > 0
                    && *(xbuf + COLLXFRM_HDR_LEN + (*xlen) - 1) == '\0')
             {
@@ -4223,9 +6286,8 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                                      : PL_collxfrm_mult;
 
                 DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                    "%s: %d: initial size of %zu bytes for a length "
+                    "initial size of %zu bytes for a length "
                     "%zu string was insufficient, %zu needed\n",
-                    __FILE__, __LINE__,
                     computed_guess, length_in_chars, needed));
 
                 /* If slope increased, use it, but discard this result for
@@ -4249,9 +6311,8 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                     }
 
                     DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                        "%s: %d: slope is now %zu; was %zu, base "
+                                    "slope is now %zu; was %zu, base "
                         "is now %zu; was %zu\n",
-                        __FILE__, __LINE__,
                         PL_collxfrm_mult, old_m,
                         PL_collxfrm_base, old_b));
                 }
@@ -4260,9 +6321,7 @@ Perl__mem_collxfrm(pTHX_ const char *inp
                                         - computed_guess
                                         + PL_collxfrm_base;
                     DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                        "%s: %d: base is now %zu; was %zu\n",
-                        __FILE__, __LINE__,
-                        new_b, PL_collxfrm_base));
+                        "base is now %zu; was %zu\n", new_b, PL_collxfrm_base));
                     PL_collxfrm_base = new_b;
                 }
             }
@@ -4272,7 +6331,7 @@ Perl__mem_collxfrm(pTHX_ const char *inp
 
         if (UNLIKELY(*xlen >= PERL_INT_MAX)) {
             DEBUG_L(PerlIO_printf(Perl_debug_log,
-                  "_mem_collxfrm: Needed %zu bytes, max permissible is %u\n",
+                  "mem_collxfrm_: Needed %zu bytes, max permissible is %u\n",
                   *xlen, PERL_INT_MAX));
             goto bad;
         }
@@ -4298,45 +6357,29 @@ Perl__mem_collxfrm(pTHX_ const char *inp
             xAlloc += (xAlloc / 4) + 1;
             PL_strxfrm_is_behaved = FALSE;
 
-#  ifdef DEBUGGING
-
-            if (DEBUG_Lv_TEST || debug_initialization) {
-                PerlIO_printf(Perl_debug_log,
-                "_mem_collxfrm required more space than previously calculated"
-                " for locale %s, trying again with new guess=%zu+%zu\n",
+            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                     "mem_collxfrm_ required more space than previously"
+                     " calculated for locale %s, trying again with new"
+                     " guess=%zu+%zu\n",
                 PL_collation_name,  COLLXFRM_HDR_LEN,
-                xAlloc - COLLXFRM_HDR_LEN);
-            }
-
-#  endif
-
+                     xAlloc - COLLXFRM_HDR_LEN));
         }
 
         Renew(xbuf, xAlloc, char);
         if (UNLIKELY(! xbuf)) {
             DEBUG_L(PerlIO_printf(Perl_debug_log,
-                      "_mem_collxfrm: Couldn't realloc %zu bytes\n", xAlloc));
+                      "mem_collxfrm_: Couldn't realloc %zu bytes\n", xAlloc));
             goto bad;
         }
 
         first_time = FALSE;
     }
 
+    CLEANUP_STRXFRM;
 
-#  ifdef DEBUGGING
-
-    if (DEBUG_Lv_TEST || debug_initialization) {
-
-        print_collxfrm_input_and_return(s, s + len, xlen, utf8);
-        PerlIO_printf(Perl_debug_log, "Its xfrm is:");
-        PerlIO_printf(Perl_debug_log, "%s\n",
-                      _byte_dump_string((U8 *) xbuf + COLLXFRM_HDR_LEN,
-                       *xlen, 1));
-    }
-
-#  endif
+    DEBUG_L(print_collxfrm_input_and_return(s, s + len, xbuf, *xlen, utf8));
 
-    /* Free up unneeded space; retain ehough for trailing NUL */
+    /* Free up unneeded space; retain enough for trailing NUL */
     Renew(xbuf, COLLXFRM_HDR_LEN + *xlen + 1, char);
 
     if (s != input_string) {
@@ -4347,13 +6390,8 @@ Perl__mem_collxfrm(pTHX_ const char *inp
 
   bad:
 
-#  ifdef DEBUGGING
-
-    if (DEBUG_Lv_TEST || debug_initialization) {
-        print_collxfrm_input_and_return(s, s + len, NULL, utf8);
-    }
-
-#  endif
+    CLEANUP_STRXFRM;
+    DEBUG_L(print_collxfrm_input_and_return(s, s + len, NULL, 0, utf8));
 
     Safefree(xbuf);
     if (s != input_string) {
@@ -4368,45 +6406,96 @@ Perl__mem_collxfrm(pTHX_ const char *inp
 
 STATIC void
 S_print_collxfrm_input_and_return(pTHX_
-                                  const char * const s,
-                                  const char * const e,
-                                  const STRLEN * const xlen,
+                                  const char * s,
+                                  const char * e,
+                                  const char * xbuf,
+                                  const STRLEN xlen,
                                   const bool is_utf8)
 {
 
     PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN;
 
-    PerlIO_printf(Perl_debug_log, "_mem_collxfrm[%" UVuf "]: returning ",
-                                                        (UV)PL_collation_ix);
-    if (xlen) {
-        PerlIO_printf(Perl_debug_log, "%zu", *xlen);
-    }
-    else {
-        PerlIO_printf(Perl_debug_log, "NULL");
+    PerlIO_printf(Perl_debug_log,
+                  "mem_collxfrm_[ix %" UVuf "] for locale '%s':\n"
+                  "     input=%s\n    return=%s\n    return len=%zu\n",
+                  (UV) PL_collation_ix, PL_collation_name,
+                  get_displayable_string(s, e, is_utf8),
+                  ((xbuf == NULL)
+                   ? "(null)"
+                   : _byte_dump_string((U8 *) xbuf + COLLXFRM_HDR_LEN, xlen, 0)),
+                  xlen);
+}
+
+#  endif    /* DEBUGGING */
+
+SV *
+Perl_strxfrm(pTHX_ SV * src)
+{
+    PERL_ARGS_ASSERT_STRXFRM;
+
+    /* For use by POSIX::strxfrm().  If they differ, toggle LC_CTYPE to
+     * LC_COLLATE to avoid potential mojibake.
+     *
+     * If we can't calculate a collation, 'src' is instead returned, so that
+     * future comparisons will be by code point order */
+
+#  ifdef USE_LOCALE_CTYPE
+
+    const char * orig_ctype = toggle_locale_c(LC_CTYPE,
+                                              querylocale_c(LC_COLLATE));
+#  endif
+
+    SV * dst = src;
+    STRLEN dstlen;
+    STRLEN srclen;
+    const char *p = SvPV_const(src,srclen);
+    const U32 utf8_flag = SvUTF8(src);
+    char *d = mem_collxfrm_(p, srclen, &dstlen, cBOOL(utf8_flag));
+
+    assert(utf8_flag == 0 || utf8_flag == SVf_UTF8);
+
+    if (d != NULL) {
+        assert(dstlen > 0);
+        dst =newSVpvn_flags(d + COLLXFRM_HDR_LEN,
+                            dstlen, SVs_TEMP|utf8_flag);
+        Safefree(d);
     }
-    PerlIO_printf(Perl_debug_log, " for locale '%s', string='",
-                                                            PL_collation_name);
-    print_bytes_for_locale(s, e, is_utf8);
 
-    PerlIO_printf(Perl_debug_log, "'\n");
+#  ifdef USE_LOCALE_CTYPE
+
+    restore_toggled_locale_c(LC_CTYPE, orig_ctype);
+
+#  endif
+
+    return dst;
 }
 
-#  endif    /* DEBUGGING */
 #endif /* USE_LOCALE_COLLATE */
-#ifdef USE_LOCALE
-#  ifdef DEBUGGING
+#if  defined(DEBUGGING) || defined(USE_POSIX_2008_LOCALE)
 
-STATIC void
-S_print_bytes_for_locale(pTHX_
-                    const char * const s,
-                    const char * const e,
-                    const bool is_utf8)
+STATIC const char *
+S_get_displayable_string(pTHX_
+                         const char * const s,
+                         const char * const e,
+                         const bool is_utf8)
 {
+    PERL_ARGS_ASSERT_GET_DISPLAYABLE_STRING;
+
     const char * t = s;
     bool prev_was_printable = TRUE;
     bool first_time = TRUE;
+    char * ret;
+
+    if (e <= s) {
+        return "";
+    }
 
-    PERL_ARGS_ASSERT_PRINT_BYTES_FOR_LOCALE;
+    /* Worst case scenario: All are non-printable so have a blank between each.
+     * If UTF-8, all are the largest possible code point; otherwise all are a
+     * single byte.  '(2 + 1)'  is from each byte takes 2 characters to
+     * display, and a blank (or NUL for the final one) after it */
+    Newxz(ret, (e - s) * (2 + 1) * ((is_utf8) ? UVSIZE : 1), char);
+    SAVEFREEPV(ret);
 
     while (t < e) {
         UV cp = (is_utf8)
@@ -4414,720 +6503,153 @@ S_print_bytes_for_locale(pTHX_
                 : * (U8 *) t;
         if (isPRINT(cp)) {
             if (! prev_was_printable) {
-                PerlIO_printf(Perl_debug_log, " ");
+                my_strlcat(ret, " ", sizeof(ret));
+            }
+
+            /* Escape these to avoid any ambiguity */
+            if (cp == ' ' || cp == '\\') {
+                my_strlcat(ret, "\\", sizeof(ret));
             }
-            PerlIO_printf(Perl_debug_log, "%c", (U8) cp);
+            my_strlcat(ret, Perl_form(aTHX_ "%c", (U8) cp), sizeof(ret));
             prev_was_printable = TRUE;
         }
         else {
             if (! first_time) {
-                PerlIO_printf(Perl_debug_log, " ");
+                my_strlcat(ret, " ", sizeof(ret));
             }
-            PerlIO_printf(Perl_debug_log, "%02" UVXf, cp);
+            my_strlcat(ret, Perl_form(aTHX_ "%02" UVXf, cp), sizeof(ret));
             prev_was_printable = FALSE;
         }
         t += (is_utf8) ? UTF8SKIP(t) : 1;
         first_time = FALSE;
     }
+
+    return ret;
 }
 
-#  endif   /* #ifdef DEBUGGING */
+#endif
+#ifdef USE_LOCALE
 
 STATIC const char *
-S_switch_category_locale_to_template(pTHX_ const int switch_category, const int template_category, const char * template_locale)
+S_toggle_locale_i(pTHX_ const unsigned cat_index,
+                        const char * new_locale,
+                        const line_t caller_line)
 {
-    /* Changes the locale for LC_'switch_category" to that of
-     * LC_'template_category', if they aren't already the same.  If not NULL,
-     * 'template_locale' is the locale that 'template_category' is in.
+    /* Changes the locale for the category specified by 'index' to 'new_locale,
+     * if they aren't already the same.
      *
-     * Returns a copy of the name of the original locale for 'switch_category'
+     * Returns a copy of the name of the original locale for 'cat_index'
      * so can be switched back to with the companion function
-     * restore_switched_locale(),  (NULL if no restoral is necessary.) */
-
-    char * restore_to_locale = NULL;
-
-    if (switch_category == template_category) { /* No changes needed */
-        return NULL;
-    }
-
-    /* Find the original locale of the category we may need to change, so that
-     * it can be restored to later */
-    restore_to_locale = stdize_locale(savepv(do_setlocale_r(switch_category,
-                                                            NULL)));
-    if (! restore_to_locale) {
-        Perl_croak(aTHX_
-             "panic: %s: %d: Could not find current %s locale, errno=%d\n",
-                __FILE__, __LINE__, category_name(switch_category), errno);
-    }
-
-    /* If the locale of the template category wasn't passed in, find it now */
-    if (template_locale == NULL) {
-        template_locale = do_setlocale_r(template_category, NULL);
-        if (! template_locale) {
-            Perl_croak(aTHX_
-             "panic: %s: %d: Could not find current %s locale, errno=%d\n",
-                   __FILE__, __LINE__, category_name(template_category), errno);
-        }
-    }
-
-    /* It the locales are the same, there's nothing to do */
-    if (strEQ(restore_to_locale, template_locale)) {
-        Safefree(restore_to_locale);
-
-        DEBUG_Lv(PerlIO_printf(Perl_debug_log, "%s locale unchanged as %s\n",
-                            category_name(switch_category), template_locale));
-
-        return NULL;
-    }
-
-    /* Finally, change the locale to the template one */
-    if (! do_setlocale_r(switch_category, template_locale)) {
-        Perl_croak(aTHX_
-         "panic: %s: %d: Could not change %s locale to %s, errno=%d\n",
-                            __FILE__, __LINE__, category_name(switch_category),
-                                                       template_locale, errno);
-    }
-
-    DEBUG_Lv(PerlIO_printf(Perl_debug_log, "%s locale switched to %s\n",
-                            category_name(switch_category), template_locale));
-
-    return restore_to_locale;
-}
-
-STATIC void
-S_restore_switched_locale(pTHX_ const int category, const char * const original_locale)
-{
-    /* Restores the locale for LC_'category' to 'original_locale' (which is a
-     * copy that will be freed by this function), or do nothing if the latter
-     * parameter is NULL */
-
-    if (original_locale == NULL) {
-        return;
-    }
-
-    if (! do_setlocale_r(category, original_locale)) {
-        Perl_croak(aTHX_
-             "panic: %s: %d: setlocale %s restore to %s failed, errno=%d\n",
-                 __FILE__, __LINE__,
-                             category_name(category), original_locale, errno);
-    }
-
-    Safefree(original_locale);
-}
-
-/* is_cur_LC_category_utf8 uses a small char buffer to avoid malloc/free */
-#define CUR_LC_BUFFER_SIZE  64
-
-bool
-Perl__is_cur_LC_category_utf8(pTHX_ int category)
-{
-    /* Returns TRUE if the current locale for 'category' is UTF-8; FALSE
-     * otherwise. 'category' may not be LC_ALL.  If the platform doesn't have
-     * nl_langinfo(), nor MB_CUR_MAX, this employs a heuristic, which hence
-     * could give the wrong result.  The result will very likely be correct for
-     * languages that have commonly used non-ASCII characters, but for notably
-     * English, it comes down to if the locale's name ends in something like
-     * "UTF-8".  It errs on the side of not being a UTF-8 locale.
-     *
-     * If the platform is early C89, not containing mbtowc(), or we are
-     * compiled to not pay attention to LC_CTYPE, this employs heuristics.
-     * These work very well for non-Latin locales or those whose currency
-     * symbol isn't a '$' nor plain ASCII text.  But without LC_CTYPE and at
-     * least MB_CUR_MAX, English locales with an ASCII currency symbol depend
-     * on the name containing UTF-8 or not. */
-
-    /* Name of current locale corresponding to the input category */
-    const char *save_input_locale = NULL;
-
-    bool is_utf8 = FALSE;                /* The return value */
-
-    /* The variables below are for the cache of previous lookups using this
-     * function.  The cache is a C string, described at the definition for
-     * 'C_and_POSIX_utf8ness'.
-     *
-     * The first part of the cache is fixed, for the C and POSIX locales.  The
-     * varying part starts just after them. */
-    char * utf8ness_cache = PL_locale_utf8ness + STRLENs(C_and_POSIX_utf8ness);
-
-    Size_t utf8ness_cache_size; /* Size of the varying portion */
-    Size_t input_name_len;      /* Length in bytes of save_input_locale */
-    Size_t input_name_len_with_overhead;    /* plus extra chars used to store
-                                               the name in the cache */
-    char * delimited;           /* The name plus the delimiters used to store
-                                   it in the cache */
-    char buffer[CUR_LC_BUFFER_SIZE];        /* small buffer */
-    char * name_pos;            /* position of 'delimited' in the cache, or 0
-                                   if not there */
-
-
-#  ifdef LC_ALL
-
-    assert(category != LC_ALL);
-
-#  endif
-
-    /* Get the desired category's locale */
-    save_input_locale = stdize_locale(savepv(do_setlocale_r(category, NULL)));
-    if (! save_input_locale) {
-        Perl_croak(aTHX_
-             "panic: %s: %d: Could not find current %s locale, errno=%d\n",
-                     __FILE__, __LINE__, category_name(category), errno);
-    }
-
-    DEBUG_L(PerlIO_printf(Perl_debug_log,
-                          "Current locale for %s is %s\n",
-                          category_name(category), save_input_locale));
-
-    input_name_len = strlen(save_input_locale);
-
-    /* In our cache, each name is accompanied by two delimiters and a single
-     * utf8ness digit */
-    input_name_len_with_overhead = input_name_len + 3;
-
-    if ( input_name_len_with_overhead <= CUR_LC_BUFFER_SIZE ) {
-        /* we can use the buffer, avoid a malloc */
-        delimited = buffer;
-    } else { /* need a malloc */
-        /* Allocate and populate space for a copy of the name surrounded by the
-         * delimiters */
-        Newx(delimited, input_name_len_with_overhead, char);
-    }
-
-    delimited[0] = UTF8NESS_SEP[0];
-    Copy(save_input_locale, delimited + 1, input_name_len, char);
-    delimited[input_name_len+1] = UTF8NESS_PREFIX[0];
-    delimited[input_name_len+2] = '\0';
-
-    /* And see if that is in the cache */
-    name_pos = instr(PL_locale_utf8ness, delimited);
-    if (name_pos) {
-        is_utf8 = *(name_pos + input_name_len_with_overhead - 1) - '0';
-
-#  ifdef DEBUGGING
-
-        if (DEBUG_Lv_TEST || debug_initialization) {
-            PerlIO_printf(Perl_debug_log, "UTF8ness for locale %s=%d, \n",
-                                          save_input_locale, is_utf8);
-        }
-
-#  endif
-
-        /* And, if not already in that position, move it to the beginning of
-         * the non-constant portion of the list, since it is the most recently
-         * used.  (We don't have to worry about overflow, since just moving
-         * existing names around) */
-        if (name_pos > utf8ness_cache) {
-            Move(utf8ness_cache,
-                 utf8ness_cache + input_name_len_with_overhead,
-                 name_pos - utf8ness_cache, char);
-            Copy(delimited,
-                 utf8ness_cache,
-                 input_name_len_with_overhead - 1, char);
-            utf8ness_cache[input_name_len_with_overhead - 1] = is_utf8 + '0';
-        }
-
-        /* free only when not using the buffer */
-        if ( delimited != buffer ) Safefree(delimited);
-        Safefree(save_input_locale);
-        return is_utf8;
-    }
-
-    /* Here we don't have stored the utf8ness for the input locale.  We have to
-     * calculate it */
-
-#  if        defined(USE_LOCALE_CTYPE)                                  \
-     && (    defined(HAS_NL_LANGINFO)                                   \
-         || (defined(HAS_MBTOWC) || defined(HAS_MBRTOWC)))
-
-    {
-        const char *original_ctype_locale
-                        = switch_category_locale_to_template(LC_CTYPE,
-                                                             category,
-                                                             save_input_locale);
-
-        /* Here the current LC_CTYPE is set to the locale of the category whose
-         * information is desired.  This means that nl_langinfo() and mbtowc()
-         * should give the correct results */
-
-#    ifdef MB_CUR_MAX  /* But we can potentially rule out UTF-8ness, avoiding
-                          calling the functions if we have this */
-
-            /* Standard UTF-8 needs at least 4 bytes to represent the maximum
-             * Unicode code point. */
-
-            DEBUG_L(PerlIO_printf(Perl_debug_log, "%s: %d: MB_CUR_MAX=%d\n",
-                                       __FILE__, __LINE__, (int) MB_CUR_MAX));
-            if ((unsigned) MB_CUR_MAX < STRLENs(MAX_UNICODE_UTF8)) {
-                is_utf8 = FALSE;
-                restore_switched_locale(LC_CTYPE, original_ctype_locale);
-                goto finish_and_return;
-            }
-
-#    endif
-#    if defined(HAS_NL_LANGINFO)
-
-        { /* The task is easiest if the platform has this POSIX 2001 function.
-             Except on some platforms it can wrongly return "", so have to have
-             a fallback.  And it can return that it's UTF-8, even if there are
-             variances from that.  For example, Turkish locales may use the
-             alternate dotted I rules, and sometimes it appears to be a
-             defective locale definition.  XXX We should probably check for
-             these in the Latin1 range and warn (but on glibc, requires
-             iswalnum() etc. due to their not handling 80-FF correctly */
-            const char *codeset = my_nl_langinfo(CODESET, FALSE);
-                                          /* FALSE => already in dest locale */
-
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                            "\tnllanginfo returned CODESET '%s'\n", codeset));
-
-            if (codeset && strNE(codeset, "")) {
-
-                              /* If the implementation of foldEQ() somehow were
-                               * to change to not go byte-by-byte, this could
-                               * read past end of string, as only one length is
-                               * checked.  But currently, a premature NUL will
-                               * compare false, and it will stop there */
-                is_utf8 = cBOOL(   foldEQ(codeset, STR_WITH_LEN("UTF-8"))
-                                || foldEQ(codeset, STR_WITH_LEN("UTF8")));
-
-                DEBUG_L(PerlIO_printf(Perl_debug_log,
-                       "\tnllanginfo returned CODESET '%s'; ?UTF8 locale=%d\n",
-                                                     codeset,         is_utf8));
-                restore_switched_locale(LC_CTYPE, original_ctype_locale);
-                goto finish_and_return;
-            }
-        }
-
-#    endif
-#    if defined(HAS_MBTOWC) || defined(HAS_MBRTOWC)
-     /* We can see if this is a UTF-8-like locale if have mbtowc().  It was a
-      * late adder to C89, so very likely to have it.  However, testing has
-      * shown that, like nl_langinfo() above, there are locales that are not
-      * strictly UTF-8 that this will return that they are */
-
-        {
-            wchar_t wc;
-            int len;
-            dSAVEDERRNO;
-
-#      if defined(HAS_MBRTOWC) && defined(USE_ITHREADS)
-
-            mbstate_t ps;
-
-#      endif
-
-            /* mbrtowc() and mbtowc() convert a byte string to a wide
-             * character.  Feed a byte string to one of them and check that the
-             * result is the expected Unicode code point */
-
-#      if defined(HAS_MBRTOWC) && defined(USE_ITHREADS)
-            /* Prefer this function if available, as it's reentrant */
-
-            memzero(&ps, sizeof(ps));;
-            PERL_UNUSED_RESULT(mbrtowc(&wc, NULL, 0, &ps)); /* Reset any shift
-                                                               state */
-            SETERRNO(0, 0);
-            len = mbrtowc(&wc, STR_WITH_LEN(REPLACEMENT_CHARACTER_UTF8), &ps);
-            SAVE_ERRNO;
-
-#      else
-
-            MBTOWC_LOCK;
-            PERL_UNUSED_RESULT(mbtowc(&wc, NULL, 0));/* Reset any shift state */
-            SETERRNO(0, 0);
-            len = mbtowc(&wc, STR_WITH_LEN(REPLACEMENT_CHARACTER_UTF8));
-            SAVE_ERRNO;
-            MBTOWC_UNLOCK;
-
-#      endif
-
-            RESTORE_ERRNO;
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                    "\treturn from mbtowc; len=%d; code_point=%x; errno=%d\n",
-                                   len,      (unsigned int) wc, GET_ERRNO));
-
-            is_utf8 = cBOOL(   len == STRLENs(REPLACEMENT_CHARACTER_UTF8)
-                            && wc == (wchar_t) UNICODE_REPLACEMENT);
-        }
-
-#    endif
-
-        restore_switched_locale(LC_CTYPE, original_ctype_locale);
-        goto finish_and_return;
-    }
-
-#  else
-
-        /* Here, we must have a C89 compiler that doesn't have mbtowc().  Next
-         * try looking at the currency symbol to see if it disambiguates
-         * things.  Often that will be in the native script, and if the symbol
-         * isn't in UTF-8, we know that the locale isn't.  If it is non-ASCII
-         * UTF-8, we infer that the locale is too, as the odds of a non-UTF8
-         * string being valid UTF-8 are quite small */
-
-#    ifdef USE_LOCALE_MONETARY
-
-        /* If have LC_MONETARY, we can look at the currency symbol.  Often that
-         * will be in the native script.  We do this one first because there is
-         * just one string to examine, so potentially avoids work */
-
-        {
-            const char *original_monetary_locale
-                        = switch_category_locale_to_template(LC_MONETARY,
-                                                             category,
-                                                             save_input_locale);
-            bool only_ascii = FALSE;
-            const U8 * currency_string
-                            = (const U8 *) my_nl_langinfo(CRNCYSTR, FALSE);
-                                      /* 2nd param not relevant for this item */
-            const U8 * first_variant;
-
-            assert(   *currency_string == '-'
-                   || *currency_string == '+'
-                   || *currency_string == '.');
-
-            currency_string++;
-
-            if (is_utf8_invariant_string_loc(currency_string, 0, &first_variant))
-            {
-                DEBUG_L(PerlIO_printf(Perl_debug_log, "Couldn't get currency symbol for %s, or contains only ASCII; can't use for determining if UTF-8 locale\n", save_input_locale));
-                only_ascii = TRUE;
-            }
-            else {
-                is_utf8 = is_strict_utf8_string(first_variant, 0);
-            }
-
-            restore_switched_locale(LC_MONETARY, original_monetary_locale);
-
-            if (! only_ascii) {
-
-                /* It isn't a UTF-8 locale if the symbol is not legal UTF-8;
-                 * otherwise assume the locale is UTF-8 if and only if the symbol
-                 * is non-ascii UTF-8. */
-                DEBUG_Lv(PerlIO_printf(Perl_debug_log, "\t?Currency symbol for %s is UTF-8=%d\n",
-                                        save_input_locale, is_utf8));
-                goto finish_and_return;
-            }
-        }
-
-#    endif /* USE_LOCALE_MONETARY */
-#    if defined(HAS_STRFTIME) && defined(USE_LOCALE_TIME)
-
-    /* Still haven't found a non-ASCII string to disambiguate UTF-8 or not.  Try
-     * the names of the months and weekdays, timezone, and am/pm indicator */
-        {
-            const char *original_time_locale
-                            = switch_category_locale_to_template(LC_TIME,
-                                                                 category,
-                                                                 save_input_locale);
-            int hour = 10;
-            bool is_dst = FALSE;
-            int dom = 1;
-            int month = 0;
-            int i;
-            char * formatted_time;
-
-            /* Here the current LC_TIME is set to the locale of the category
-             * whose information is desired.  Look at all the days of the week and
-             * month names, and the timezone and am/pm indicator for UTF-8 variant
-             * characters.  The first such a one found will tell us if the locale
-             * is UTF-8 or not */
-
-            for (i = 0; i < 7 + 12; i++) {  /* 7 days; 12 months */
-                formatted_time = my_strftime("%A %B %Z %p",
-                                0, 0, hour, dom, month, 2012 - 1900, 0, 0, is_dst);
-                if ( ! formatted_time
-                    || is_utf8_invariant_string((U8 *) formatted_time, 0))
-                {
-
-                    /* Here, we didn't find a non-ASCII.  Try the next time through
-                     * with the complemented dst and am/pm, and try with the next
-                     * weekday.  After we have gotten all weekdays, try the next
-                     * month */
-                    is_dst = ! is_dst;
-                    hour = (hour + 12) % 24;
-                    dom++;
-                    if (i > 6) {
-                        month++;
-                    }
-                    continue;
-                }
-
-                /* Here, we have a non-ASCII.  Return TRUE is it is valid UTF8;
-                 * false otherwise.  But first, restore LC_TIME to its original
-                 * locale if we changed it */
-                restore_switched_locale(LC_TIME, original_time_locale);
-
-                DEBUG_Lv(PerlIO_printf(Perl_debug_log, "\t?time-related strings for %s are UTF-8=%d\n",
-                                    save_input_locale,
-                                    is_utf8_string((U8 *) formatted_time, 0)));
-                is_utf8 = is_utf8_string((U8 *) formatted_time, 0);
-                goto finish_and_return;
-            }
-
-            /* Falling off the end of the loop indicates all the names were just
-             * ASCII.  Go on to the next test.  If we changed it, restore LC_TIME
-             * to its original locale */
-            restore_switched_locale(LC_TIME, original_time_locale);
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log, "All time-related words for %s contain only ASCII; can't use for determining if UTF-8 locale\n", save_input_locale));
-        }
-
-#    endif
-
-#    if 0 && defined(USE_LOCALE_MESSAGES) && defined(HAS_SYS_ERRLIST)
-
-    /* This code is ifdefd out because it was found to not be necessary in testing
-     * on our dromedary test machine, which has over 700 locales.  There, this
-     * added no value to looking at the currency symbol and the time strings.  I
-     * left it in so as to avoid rewriting it if real-world experience indicates
-     * that dromedary is an outlier.  Essentially, instead of returning abpve if we
-     * haven't found illegal utf8, we continue on and examine all the strerror()
-     * messages on the platform for utf8ness.  If all are ASCII, we still don't
-     * know the answer; but otherwise we have a pretty good indication of the
-     * utf8ness.  The reason this doesn't help much is that the messages may not
-     * have been translated into the locale.  The currency symbol and time strings
-     * are much more likely to have been translated.  */
-        {
-            int e;
-            bool non_ascii = FALSE;
-            const char *original_messages_locale
-                            = switch_category_locale_to_template(LC_MESSAGES,
-                                                                 category,
-                                                                 save_input_locale);
-            const char * errmsg = NULL;
-
-            /* Here the current LC_MESSAGES is set to the locale of the category
-             * whose information is desired.  Look through all the messages.  We
-             * can't use Strerror() here because it may expand to code that
-             * segfaults in miniperl */
-
-            for (e = 0; e <= sys_nerr; e++) {
-                errno = 0;
-                errmsg = sys_errlist[e];
-                if (errno || !errmsg) {
-                    break;
-                }
-                errmsg = savepv(errmsg);
-                if (! is_utf8_invariant_string((U8 *) errmsg, 0)) {
-                    non_ascii = TRUE;
-                    is_utf8 = is_utf8_string((U8 *) errmsg, 0);
-                    break;
-                }
-            }
-            Safefree(errmsg);
+     * restore_toggled_locale_i(),  (NULL if no restoral is necessary.) */
 
-            restore_switched_locale(LC_MESSAGES, original_messages_locale);
+    const char * locale_to_restore_to = NULL;
 
-            if (non_ascii) {
+    PERL_ARGS_ASSERT_TOGGLE_LOCALE_I;
+    assert(cat_index <= NOMINAL_LC_ALL_INDEX);
 
-                /* Any non-UTF-8 message means not a UTF-8 locale; if all are valid,
-                 * any non-ascii means it is one; otherwise we assume it isn't */
-                DEBUG_Lv(PerlIO_printf(Perl_debug_log, "\t?error messages for %s are UTF-8=%d\n",
-                                    save_input_locale,
-                                    is_utf8));
-                goto finish_and_return;
-            }
+    /* Find the original locale of the category we may need to change, so that
+     * it can be restored to later */
 
-            DEBUG_L(PerlIO_printf(Perl_debug_log, "All error messages for %s contain only ASCII; can't use for determining if UTF-8 locale\n", save_input_locale));
-        }
+    locale_to_restore_to = querylocale_i(cat_index);
 
-#    endif
-#    ifndef EBCDIC  /* On os390, even if the name ends with "UTF-8', it isn't a
-                   UTF-8 locale */
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+             "(%" LINE_Tf "): toggle_locale_i: index=%d(%s), wanted=%s,"
+             " actual=%s\n",
+             caller_line, cat_index, category_names[cat_index],
+             new_locale, locale_to_restore_to));
+
+    if (! locale_to_restore_to) {
+        locale_panic_(Perl_form(aTHX_
+                                "Could not find current %s locale, errno=%d",
+                                category_names[cat_index], errno));
+    }
 
-    /* As a last resort, look at the locale name to see if it matches
-     * qr/UTF -?  * 8 /ix, or some other common locale names.  This "name", the
-     * return of setlocale(), is actually defined to be opaque, so we can't
-     * really rely on the absence of various substrings in the name to indicate
-     * its UTF-8ness, but if it has UTF8 in the name, it is extremely likely to
-     * be a UTF-8 locale.  Similarly for the other common names */
+    /* If the locales are the same, there's nothing to do */
+    if (strEQ(locale_to_restore_to, new_locale)) {
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                               "(%" LINE_Tf "): %s locale unchanged as %s\n",
+                               caller_line, category_names[cat_index],
+                               new_locale));
 
-    {
-        const Size_t final_pos = strlen(save_input_locale) - 1;
+        return NULL;
+    }
 
-        if (final_pos >= 3) {
-            const char *name = save_input_locale;
+    /* Finally, change the locale to the new one */
+    void_setlocale_i(cat_index, new_locale);
 
-            /* Find next 'U' or 'u' and look from there */
-            while ((name += strcspn(name, "Uu") + 1)
-                                        <= save_input_locale + final_pos - 2)
-            {
-                if (   isALPHA_FOLD_NE(*name, 't')
-                    || isALPHA_FOLD_NE(*(name + 1), 'f'))
-                {
-                    continue;
-                }
-                name += 2;
-                if (*(name) == '-') {
-                    if ((name > save_input_locale + final_pos - 1)) {
-                        break;
-                    }
-                    name++;
-                }
-                if (*(name) == '8') {
-                    DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                        "Locale %s ends with UTF-8 in name\n",
-                                        save_input_locale));
-                    is_utf8 = TRUE;
-                    goto finish_and_return;
-                }
-            }
-            DEBUG_L(PerlIO_printf(Perl_debug_log,
-                                "Locale %s doesn't end with UTF-8 in name\n",
-                                    save_input_locale));
-        }
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                           "(%" LINE_Tf "): %s locale switched to %s\n",
+                           caller_line, category_names[cat_index], new_locale));
 
-#      ifdef WIN32
+    return locale_to_restore_to;
 
-        /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx */
-        if (memENDs(save_input_locale, final_pos, "65001")) {
-            DEBUG_L(PerlIO_printf(Perl_debug_log,
-                        "Locale %s ends with 65001 in name, is UTF-8 locale\n",
-                        save_input_locale));
-            is_utf8 = TRUE;
-            goto finish_and_return;
-        }
+#  ifndef DEBUGGING
+    PERL_UNUSED_ARG(caller_line);
+#  endif
 
-#      endif
-    }
-#    endif
+}
+
+STATIC void
+S_restore_toggled_locale_i(pTHX_ const unsigned int cat_index,
+                                 const char * restore_locale,
+                                 const line_t caller_line)
+{
+    /* Restores the locale for LC_category corresponding to cat_indes to
+     * 'restore_locale' (which is a copy that will be freed by this function),
+     * or do nothing if the latter parameter is NULL */
 
-    /* Other common encodings are the ISO 8859 series, which aren't UTF-8.  But
-     * since we are about to return FALSE anyway, there is no point in doing
-     * this extra work */
+    PERL_ARGS_ASSERT_RESTORE_TOGGLED_LOCALE_I;
+    assert(cat_index <= NOMINAL_LC_ALL_INDEX);
 
-#    if 0
-    if (instr(save_input_locale, "8859")) {
-        DEBUG_L(PerlIO_printf(Perl_debug_log,
-                             "Locale %s has 8859 in name, not UTF-8 locale\n",
-                             save_input_locale));
-        is_utf8 = FALSE;
-        goto finish_and_return;
+    if (restore_locale == NULL) {
+        DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                               "(%" LINE_Tf "): No need to restore %s\n",
+                               caller_line, category_names[cat_index]));
+        return;
     }
-#    endif
 
-    DEBUG_L(PerlIO_printf(Perl_debug_log,
-                          "Assuming locale %s is not a UTF-8 locale\n",
-                                    save_input_locale));
-    is_utf8 = FALSE;
-
-#  endif /* the code that is compiled when no modern LC_CTYPE */
-
-  finish_and_return:
-
-    /* Cache this result so we don't have to go through all this next time. */
-    utf8ness_cache_size = sizeof(PL_locale_utf8ness)
-                       - (utf8ness_cache - PL_locale_utf8ness);
-
-    /* But we can't save it if it is too large for the total space available */
-    if (LIKELY(input_name_len_with_overhead < utf8ness_cache_size)) {
-        Size_t utf8ness_cache_len = strlen(utf8ness_cache);
-
-        /* Here it can fit, but we may need to clear out the oldest cached
-         * result(s) to do so.  Check */
-        if (utf8ness_cache_len + input_name_len_with_overhead
-                                                        >= utf8ness_cache_size)
-        {
-            /* Here we have to clear something out to make room for this.
-             * Start looking at the rightmost place where it could fit and find
-             * the beginning of the entry that extends past that. */
-            char * cutoff = (char *) my_memrchr(utf8ness_cache,
-                                                UTF8NESS_SEP[0],
-                                                utf8ness_cache_size
-                                              - input_name_len_with_overhead);
-
-            assert(cutoff);
-            assert(cutoff >= utf8ness_cache);
-
-            /* This and all subsequent entries must be removed */
-            *cutoff = '\0';
-            utf8ness_cache_len = strlen(utf8ness_cache);
-        }
-
-        /* Make space for the new entry */
-        Move(utf8ness_cache,
-             utf8ness_cache + input_name_len_with_overhead,
-             utf8ness_cache_len + 1 /* Incl. trailing NUL */, char);
-
-        /* And insert it */
-        Copy(delimited, utf8ness_cache, input_name_len_with_overhead - 1, char);
-        utf8ness_cache[input_name_len_with_overhead - 1] = is_utf8 + '0';
-
-        if ((PL_locale_utf8ness[strlen(PL_locale_utf8ness)-1] & ~1) != '0') {
-            Perl_croak(aTHX_
-             "panic: %s: %d: Corrupt utf8ness_cache=%s\nlen=%zu,"
-             " inserted_name=%s, its_len=%zu\n",
-                __FILE__, __LINE__,
-                PL_locale_utf8ness, strlen(PL_locale_utf8ness),
-                delimited, input_name_len_with_overhead);
-        }
-    }
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
+                           "(%" LINE_Tf "): %s restoring locale to %s\n",
+                           caller_line, category_names[cat_index],
+                           restore_locale));
 
-#  ifdef DEBUGGING
+    void_setlocale_i(cat_index, restore_locale);
 
-    if (DEBUG_Lv_TEST) {
-        const char * s = PL_locale_utf8ness;
+#  ifndef DEBUGGING
+    PERL_UNUSED_ARG(caller_line);
+#  endif
 
-        /* Audit the structure */
-        while (s < PL_locale_utf8ness + strlen(PL_locale_utf8ness)) {
-            const char *e;
-
-            if (*s != UTF8NESS_SEP[0]) {
-                Perl_croak(aTHX_
-                           "panic: %s: %d: Corrupt utf8ness_cache: missing"
-                           " separator %.*s<-- HERE %s\n",
-                           __FILE__, __LINE__,
-                           (int) (s - PL_locale_utf8ness), PL_locale_utf8ness,
-                           s);
-            }
-            s++;
-            e = strchr(s, UTF8NESS_PREFIX[0]);
-            if (! e) {
-                e = PL_locale_utf8ness + strlen(PL_locale_utf8ness);
-                Perl_croak(aTHX_
-                           "panic: %s: %d: Corrupt utf8ness_cache: missing"
-                           " separator %.*s<-- HERE %s\n",
-                           __FILE__, __LINE__,
-                           (int) (e - PL_locale_utf8ness), PL_locale_utf8ness,
-                           e);
-            }
-            e++;
-            if (*e != '0' && *e != '1') {
-                Perl_croak(aTHX_
-                           "panic: %s: %d: Corrupt utf8ness_cache: utf8ness"
-                           " must be [01] %.*s<-- HERE %s\n",
-                           __FILE__, __LINE__,
-                           (int) (e + 1 - PL_locale_utf8ness),
-                           PL_locale_utf8ness, e + 1);
-            }
-            if (ninstr(PL_locale_utf8ness, s, s-1, e)) {
-                Perl_croak(aTHX_
-                           "panic: %s: %d: Corrupt utf8ness_cache: entry"
-                           " has duplicate %.*s<-- HERE %s\n",
-                           __FILE__, __LINE__,
-                           (int) (e - PL_locale_utf8ness), PL_locale_utf8ness,
-                           e);
-            }
-            s = e + 1;
-        }
-    }
+}
 
-    if (DEBUG_Lv_TEST || debug_initialization) {
-
-        PerlIO_printf(Perl_debug_log,
-                "PL_locale_utf8ness is now %s; returning %d\n",
-                                     PL_locale_utf8ness, is_utf8);
-    }
+#  ifdef USE_LOCALE_CTYPE
 
-#  endif
+STATIC bool
+S_is_codeset_name_UTF8(const char * name)
+{
+    /* Return a boolean as to if the passed-in name indicates it is a UTF-8
+     * code set.  Several variants are possible */
+    const Size_t len = strlen(name);
+
+    PERL_ARGS_ASSERT_IS_CODESET_NAME_UTF8;
+
+#    ifdef WIN32
+
+    /* http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756.aspx */
+    if (memENDs(name, len, "65001")) {
+        return TRUE;
+    }
 
-    /* free only when not using the buffer */
-    if ( delimited != buffer ) Safefree(delimited);
-    Safefree(save_input_locale);
-    return is_utf8;
+#    endif
+               /* 'UTF8' or 'UTF-8' */
+    return (    inRANGE(len, 4, 5)
+            &&  name[len-1] == '8'
+            && (   memBEGINs(name, len, "UTF")
+                || memBEGINs(name, len, "utf"))
+            && (len == 4 || name[3] == '-'));
 }
 
-#endif
+#  endif
+#endif  /* USE_LOCALE */
 
 bool
 Perl__is_in_locale_category(pTHX_ const bool compiling, const int category)
@@ -5149,197 +6671,285 @@ Perl__is_in_locale_category(pTHX_ const 
     return cBOOL(SvUV(these_categories) & (1U << (category + 1)));
 }
 
-char *
-Perl_my_strerror(pTHX_ const int errnum)
+/* my_strerror() returns a mortalized copy of the text of the error message
+ * associated with 'errnum'.
+ *
+ * If not called from within the scope of 'use locale', it uses the text from
+ * the C locale.  If Perl is compiled to not pay attention to LC_CTYPE nor
+ * LC_MESSAGES, it uses whatever strerror() returns.  Otherwise the text is
+ * derived from the locale, LC_MESSAGES if we have that; LC_CTYPE if not.
+ *
+ * It returns in *utf8ness the result's UTF-8ness
+ *
+ * The function just calls strerror(), but temporarily switches locales, if
+ * needed.  Many platforms require LC_CTYPE and LC_MESSAGES to be in the same
+ * CODESET in order for the return from strerror() to not contain '?' symbols,
+ * or worse, mojibaked.  It's cheaper to just use the stricter criteria of
+ * being in the same locale.  So the code below uses a common locale for both
+ * categories.  Again, that is C if not within 'use locale' scope; or the
+ * LC_MESSAGES locale if in scope and we have that category; and LC_CTYPE if we
+ * don't have LC_MESSAGES; and whatever strerror returns if we don't have
+ * either category.
+ *
+ * There are two sets of implementations.  The first below is if we have
+ * strerror_l().  This is the simpler.  We just use the already-built C locale
+ * object if not in locale scope, or build up a custom one otherwise.
+ *
+ * When strerror_l() is not available, we may have to swap locales temporarily
+ * to bring the two categories into sync with each other, and possibly to the C
+ * locale.
+ *
+ * Because the prepropessing directives to conditionally compile this function
+ * would greatly obscure the logic of the various implementations, the whole
+ * function is repeated for each configuration, with some common macros. */
+
+/* Used to shorten the definitions of the following implementations of
+ * my_strerror() */
+#define DEBUG_STRERROR_ENTER(errnum, in_locale)                             \
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,                                  \
+                           "my_strerror called with errnum %d;"             \
+                           " Within locale scope=%d\n",                     \
+                           errnum, in_locale))
+#define DEBUG_STRERROR_RETURN(errstr, utf8ness)                             \
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log,                                  \
+                           "Strerror returned; saving a copy: '%s';"        \
+                           " utf8ness=%d\n",                                \
+                           get_displayable_string(errstr,                   \
+                                                  errstr + strlen(errstr),  \
+                                                  *utf8ness),               \
+                           (int) *utf8ness))
+
+/* On platforms that have precisely one of these categories (Windows
+ * qualifies), these yield the correct one */
+#if defined(USE_LOCALE_CTYPE)
+#  define WHICH_LC_INDEX LC_CTYPE_INDEX_
+#elif defined(USE_LOCALE_MESSAGES)
+#  define WHICH_LC_INDEX LC_MESSAGES_INDEX_
+#endif
+
+/*==========================================================================*/
+/* First set of implementations, when have strerror_l() */
+
+#if defined(USE_POSIX_2008_LOCALE) && defined(HAS_STRERROR_L)
+
+#  if ! defined(USE_LOCALE_CTYPE) && ! defined(USE_LOCALE_MESSAGES)
+
+/* Here, neither category is defined: use the C locale */
+const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t * utf8ness)
 {
-    /* Returns a mortalized copy of the text of the error message associated
-     * with 'errnum'.  It uses the current locale's text unless the platform
-     * doesn't have the LC_MESSAGES category or we are not being called from
-     * within the scope of 'use locale'.  In the former case, it uses whatever
-     * strerror returns; in the latter case it uses the text from the C locale.
-     *
-     * The function just calls strerror(), but temporarily switches, if needed,
-     * to the C locale */
+    PERL_ARGS_ASSERT_MY_STRERROR;
+
+    DEBUG_STRERROR_ENTER(errnum, 0);
+
+    const char *errstr = savepv(strerror_l(errnum, PL_C_locale_obj));
+    *utf8ness = UTF8NESS_IMMATERIAL;
+
+    DEBUG_STRERROR_RETURN(errstr, utf8ness);
+
+    SAVEFREEPV(errstr);
+    return errstr;
+}
+
+#  elif ! defined(USE_LOCALE_CTYPE) || ! defined(USE_LOCALE_MESSAGES)
+
+/*--------------------------------------------------------------------------*/
+
+/* Here one or the other of CTYPE or MESSAGES is defined, but not both.  If we
+ * are not within 'use locale' scope of the only one defined, we use the C
+ * locale; otherwise use the current locale object */
 
-    char *errstr;
+const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t * utf8ness)
+{
+    PERL_ARGS_ASSERT_MY_STRERROR;
 
-#ifndef USE_LOCALE_MESSAGES
+    DEBUG_STRERROR_ENTER(errnum, IN_LC(categories[WHICH_LC_INDEX]));
 
-    /* If platform doesn't have messages category, we don't do any switching to
-     * the C locale; we just use whatever strerror() returns */
+    /* Use C if not within locale scope;  Otherwise, use current locale */
+    const locale_t which_obj = (IN_LC(categories[WHICH_LC_INDEX]))
+                               ? PL_C_locale_obj
+                               : use_curlocale_scratch();
+
+    const char *errstr = savepv(strerror_l(errnum, which_obj));
+    *utf8ness = get_locale_string_utf8ness_i(errstr, LOCALE_UTF8NESS_UNKNOWN,
+                                             NULL, WHICH_LC_INDEX);
+    DEBUG_STRERROR_RETURN(errstr, utf8ness);
 
-    errstr = savepv(Strerror(errnum));
+    SAVEFREEPV(errstr);
+    return errstr;
+}
 
-#else   /* Has locale messages */
+/*--------------------------------------------------------------------------*/
+#  else     /* Are using both categories.  Place them in the same CODESET,
+             * either C or the LC_MESSAGES locale */
 
-    const bool within_locale_scope = IN_LC(LC_MESSAGES);
+const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t * utf8ness)
+{
+    PERL_ARGS_ASSERT_MY_STRERROR;
 
-#  ifndef USE_ITHREADS
+    DEBUG_STRERROR_ENTER(errnum, IN_LC(LC_MESSAGES));
 
-    /* This function is trivial without threads. */
-    if (within_locale_scope) {
-        errstr = savepv(strerror(errnum));
+    const char *errstr;
+    if (! IN_LC(LC_MESSAGES)) {    /* Use C if not within locale scope */
+        errstr = savepv(strerror_l(errnum, PL_C_locale_obj));
+        *utf8ness = UTF8NESS_IMMATERIAL;
     }
-    else {
-        const char * save_locale = savepv(do_setlocale_c(LC_MESSAGES, NULL));
+    else {  /* Otherwise, use the LC_MESSAGES locale, making sure LC_CTYPE
+               matches */
+        locale_t cur = duplocale(use_curlocale_scratch());
 
-        do_setlocale_c(LC_MESSAGES, "C");
-        errstr = savepv(strerror(errnum));
-        do_setlocale_c(LC_MESSAGES, save_locale);
-        Safefree(save_locale);
+        cur = newlocale(LC_CTYPE_MASK, querylocale_c(LC_MESSAGES), cur);
+        errstr = savepv(strerror_l(errnum, cur));
+        *utf8ness = get_locale_string_utf8ness_i(errstr,
+                                                 LOCALE_UTF8NESS_UNKNOWN,
+                                                 NULL, LC_MESSAGES_INDEX_);
+        freelocale(cur);
     }
 
-#  elif   defined(USE_POSIX_2008_LOCALE)                      \
-     &&   defined(HAS_STRERROR_L)
+    DEBUG_STRERROR_RETURN(errstr, utf8ness);
+
+    SAVEFREEPV(errstr);
+    return errstr;
+}
+#  endif    /* Above is using strerror_l */
+/*==========================================================================*/
+#else       /* Below is not using strerror_l */
+#  if ! defined(USE_LOCALE_CTYPE) && ! defined(USE_LOCALE_MESSAGES)
+
+/* If not using using either of the categories, return plain, unadorned
+ * strerror */
+
+const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t * utf8ness)
+{
+    PERL_ARGS_ASSERT_MY_STRERROR;
+
+    DEBUG_STRERROR_ENTER(errnum, 0);
+
+    const char *errstr = savepv(Strerror(errnum));
+    *utf8ness = UTF8NESS_IMMATERIAL;
+
+    DEBUG_STRERROR_RETURN(errstr, utf8ness);
 
-    /* This function is also trivial if we don't have to worry about thread
-     * safety and have strerror_l(), as it handles the switch of locales so we
-     * don't have to deal with that.  We don't have to worry about thread
-     * safety if strerror_r() is also available.  Both it and strerror_l() are
-     * thread-safe.  Plain strerror() isn't thread safe.  But on threaded
-     * builds when strerror_r() is available, the apparent call to strerror()
-     * below is actually a macro that behind-the-scenes calls strerror_r(). */
+    SAVEFREEPV(errstr);
+    return errstr;
+}
+
+/*--------------------------------------------------------------------------*/
+#  elif ! defined(USE_LOCALE_CTYPE) || ! defined(USE_LOCALE_MESSAGES)
+
+/* Here one or the other of CTYPE or MESSAGES is defined, but not both.  If we
+ * are not within 'use locale' scope of the only one defined, we use the C
+ * locale; otherwise use the current locale */
+
+const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t * utf8ness)
+{
+    PERL_ARGS_ASSERT_MY_STRERROR;
 
-#    ifdef HAS_STRERROR_R
+    DEBUG_STRERROR_ENTER(errnum, IN_LC(categories[WHICH_LC_INDEX]));
 
-    if (within_locale_scope) {
-        errstr = savepv(strerror(errnum));
+    const char *errstr;
+    if (IN_LC(categories[WHICH_LC_INDEX])) {
+        errstr = savepv(Strerror(errnum));
+        *utf8ness = get_locale_string_utf8ness_i(errstr,
+                                                 LOCALE_UTF8NESS_UNKNOWN,
+                                                 NULL, WHICH_LC_INDEX);
     }
     else {
-        errstr = savepv(strerror_l(errnum, PL_C_locale_obj));
-    }
 
-#    else
+        SETLOCALE_LOCK;
 
-    /* Here we have strerror_l(), but not strerror_r() and we are on a
-     * threaded-build.  We use strerror_l() for everything, constructing a
-     * locale to pass to it if necessary */
+        const char * orig_locale = toggle_locale_i(WHICH_LC_INDEX, "C");
 
-    bool do_free = FALSE;
-    locale_t locale_to_use;
+        errstr = savepv(Strerror(errnum));
 
-    if (within_locale_scope) {
-        locale_to_use = uselocale((locale_t) 0);
-        if (locale_to_use == LC_GLOBAL_LOCALE) {
-            locale_to_use = duplocale(LC_GLOBAL_LOCALE);
-            do_free = TRUE;
-        }
-    }
-    else {  /* Use C locale if not within 'use locale' scope */
-        locale_to_use = PL_C_locale_obj;
-    }
+        restore_toggled_locale_i(WHICH_LC_INDEX, orig_locale);
 
-    errstr = savepv(strerror_l(errnum, locale_to_use));
+        SETLOCALE_UNLOCK;
+
+        *utf8ness = UTF8NESS_IMMATERIAL;
 
-    if (do_free) {
-        freelocale(locale_to_use);
     }
 
-#    endif
-#  else /* Doesn't have strerror_l() */
+    DEBUG_STRERROR_RETURN(errstr, utf8ness);
 
-    const char * save_locale = NULL;
-    bool locale_is_C = FALSE;
+    SAVEFREEPV(errstr);
+    return errstr;
+}
 
-    /* We have a critical section to prevent another thread from executing this
-     * same code at the same time.  (On thread-safe perls, the LOCK is a
-     * no-op.)  Since this is the only place in core that changes LC_MESSAGES
-     * (unless the user has called setlocale(), this works to prevent races. */
-    SETLOCALE_LOCK;
+/*--------------------------------------------------------------------------*/
+#  else
 
-    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                            "my_strerror called with errnum %d\n", errnum));
-    if (! within_locale_scope) {
-        save_locale = do_setlocale_c(LC_MESSAGES, NULL);
-        if (! save_locale) {
-            SETLOCALE_UNLOCK;
-            Perl_croak(aTHX_
-                 "panic: %s: %d: Could not find current LC_MESSAGES locale,"
-                 " errno=%d\n", __FILE__, __LINE__, errno);
-        }
-        else {
-            locale_is_C = isNAME_C_OR_POSIX(save_locale);
+/* Below, have both LC_CTYPE and LC_MESSAGES.  Place them in the same CODESET,
+ * either C or the LC_MESSAGES locale */
 
-            /* Switch to the C locale if not already in it */
-            if (! locale_is_C) {
+const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t * utf8ness)
+{
+    PERL_ARGS_ASSERT_MY_STRERROR;
 
-                /* The setlocale() just below likely will zap 'save_locale', so
-                 * create a copy.  */
-                save_locale = savepv(save_locale);
-                if (! do_setlocale_c(LC_MESSAGES, "C")) {
-
-                    /* If, for some reason, the locale change failed, we
-                     * soldier on as best as possible under the circumstances,
-                     * using the current locale, and clear save_locale, so we
-                     * don't try to change back.  On z/0S, all setlocale()
-                     * calls fail after you've created a thread.  This is their
-                     * way of making sure the entire process is always a single
-                     * locale.  This means that 'use locale' is always in place
-                     * for messages under these circumstances. */
-                    Safefree(save_locale);
-                    save_locale = NULL;
-                }
-            }
-        }
-    }   /* end of ! within_locale_scope */
-    else {
-        DEBUG_Lv(PerlIO_printf(Perl_debug_log, "%s: %d: WITHIN locale scope\n",
-                                               __FILE__, __LINE__));
-    }
+    DEBUG_STRERROR_ENTER(errnum, IN_LC(LC_MESSAGES));
 
-    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-             "Any locale change has been done; about to call Strerror\n"));
-    errstr = savepv(Strerror(errnum));
+    const char * desired_locale = (IN_LC(LC_MESSAGES))
+                                  ? querylocale_c(LC_MESSAGES)
+                                  : "C";
+    /* XXX Can fail on z/OS */
 
-    if (! within_locale_scope) {
-        if (save_locale && ! locale_is_C) {
-            if (! do_setlocale_c(LC_MESSAGES, save_locale)) {
-                SETLOCALE_UNLOCK;
-                Perl_croak(aTHX_
-                     "panic: %s: %d: setlocale restore to '%s' failed, errno=%d\n",
-                             __FILE__, __LINE__, save_locale, errno);
-            }
-            Safefree(save_locale);
-        }
-    }
+    SETLOCALE_LOCK;
 
-    SETLOCALE_UNLOCK;
+    const char* orig_CTYPE_locale    = toggle_locale_c(LC_CTYPE, desired_locale);
+    const char* orig_MESSAGES_locale = toggle_locale_c(LC_MESSAGES,
+                                                       desired_locale);
+    const char *errstr = savepv(Strerror(errnum));
 
-#  endif /* End of doesn't have strerror_l */
-#  ifdef DEBUGGING
+    restore_toggled_locale_c(LC_MESSAGES, orig_MESSAGES_locale);
+    restore_toggled_locale_c(LC_CTYPE, orig_CTYPE_locale);
 
-    if (DEBUG_Lv_TEST) {
-        PerlIO_printf(Perl_debug_log, "Strerror returned; saving a copy: '");
-        print_bytes_for_locale(errstr, errstr + strlen(errstr), 0);
-        PerlIO_printf(Perl_debug_log, "'\n");
-    }
+    SETLOCALE_UNLOCK;
 
-#  endif
-#endif   /* End of does have locale messages */
+    *utf8ness = get_locale_string_utf8ness_i(errstr, LOCALE_UTF8NESS_UNKNOWN,
+                                             NULL, LC_MESSAGES_INDEX_);
+    DEBUG_STRERROR_RETURN(errstr, utf8ness);
 
     SAVEFREEPV(errstr);
     return errstr;
 }
 
+/*--------------------------------------------------------------------------*/
+#  endif /* end of not using strerror_l() */
+#endif   /* end of all the my_strerror() implementations */
+
 /*
 
 =for apidoc switch_to_global_locale
 
-On systems without locale support, or on typical single-threaded builds, or on
-platforms that do not support per-thread locale operations, this function does
-nothing.  On such systems that do have locale support, only a locale global to
-the whole program is available.
-
-On multi-threaded builds on systems that do have per-thread locale operations,
-this function converts the thread it is running in to use the global locale.
-This is for code that has not yet or cannot be updated to handle multi-threaded
-locale operation.  As long as only a single thread is so-converted, everything
-works fine, as all the other threads continue to ignore the global one, so only
-this thread looks at it.
-
-However, on Windows systems this isn't quite true prior to Visual Studio 15,
-at which point Microsoft fixed a bug.  A race can occur if you use the
-following operations on earlier Windows platforms:
+This function copies the locale state of the calling thread into the program's
+global locale, and converts the thread to use that global locale.
+
+It is intended so that Perl can safely be used with C libraries that access the
+global locale and which can't be converted to not access it.  Effectively, this
+means libraries that call C<L<setlocale(3)>> on non-Windows systems.  (For
+portability, it is a good idea to use it on Windows as well.)
+
+A downside of using it is that it disables the services that Perl provides to
+hide locale gotchas from your code.  The service you most likely will miss
+regards the radix character (decimal point) in floating point numbers.  Code
+executed after this function is called can no longer just assume that this
+character is correct for the current circumstances.
+
+To return to Perl control, and restart the gotcha prevention services, call
+C<L</sync_locale>>.  Behavior is undefined for any pure Perl code that executes
+while the switch is in effect.
+
+The global locale and the per-thread locales are independent.  As long as just
+one thread converts to the global locale, everything works smoothly.  But if
+more than one does, they can easily interfere with each other, and races are
+likely.  On Windows systems prior to Visual Studio 15 (at which point Microsoft
+fixed a bug), races can occur (even if only one thread has been converted to
+the global locale), but only if you use the following operations:
 
 =over
 
@@ -5352,59 +6962,98 @@ following operations on earlier Windows 
 =back
 
 The first item is not fixable (except by upgrading to a later Visual Studio
-release), but it would be possible to work around the latter two items by using
-the Windows API functions C<GetNumberFormat> and C<GetCurrencyFormat>; patches
+release), but it would be possible to work around the latter two items by
+having Perl change its algorithm for calculating these to use Windows API
+functions (likely C<GetNumberFormat> and C<GetCurrencyFormat>); patches
 welcome.
 
-Without this function call, threads that use the L<C<setlocale(3)>> system
-function will not work properly, as all the locale-sensitive functions will
-look at the per-thread locale, and C<setlocale> will have no effect on this
-thread.
-
-Perl code should convert to either call
-L<C<Perl_setlocale>|perlapi/Perl_setlocale> (which is a drop-in for the system
-C<setlocale>) or use the methods given in L<perlcall> to call
+XS code should never call plain C<setlocale>, but should instead be converted
+to either call L<C<Perl_setlocale>|perlapi/Perl_setlocale> (which is a drop-in
+for the system C<setlocale>) or use the methods given in L<perlcall> to call
 L<C<POSIX::setlocale>|POSIX/setlocale>.  Either one will transparently properly
 handle all cases of single- vs multi-thread, POSIX 2008-supported or not.
 
-Non-Perl libraries, such as C<gtk>, that call the system C<setlocale> can
-continue to work if this function is called before transferring control to the
-library.
-
-Upon return from the code that needs to use the global locale,
-L<C<sync_locale()>|perlapi/sync_locale> should be called to restore the safe
-multi-thread operation.
-
 =cut
 */
 
 void
-Perl_switch_to_global_locale()
+Perl_switch_to_global_locale(pTHX)
 {
 
-#ifdef USE_THREAD_SAFE_LOCALE
-#  ifdef WIN32
+#ifdef USE_LOCALE
 
-    _configthreadlocale(_DISABLE_PER_THREAD_LOCALE);
+    DEBUG_L(PerlIO_printf(Perl_debug_log, "Entering switch_to_global; %s\n",
+                                          get_LC_ALL_display()));
+    bool perl_controls = false;
 
-#  else
-#    ifdef HAS_QUERYLOCALE
+#  ifdef USE_THREAD_SAFE_LOCALE
+
+   /* In these cases, we use the system state to determine if we are in the
+    * global locale or not. */
+
+#    ifdef USE_POSIX_2008_LOCALE
 
-    setlocale(LC_ALL, querylocale(LC_ALL_MASK, uselocale((locale_t) 0)));
+    perl_controls = (LC_GLOBAL_LOCALE != uselocale((locale_t) 0));
+
+#    elif defined(WIN32)
+
+    perl_controls = (_configthreadlocale(0) == _ENABLE_PER_THREAD_LOCALE);
 
 #    else
+#      error Unexpected Configuration
+#    endif
+#  endif
 
-    {
-        unsigned int i;
+    /* No-op if already in global */
+    if (! perl_controls) {
+        return;
+    }
 
-        for (i = 0; i < LC_ALL_INDEX; i++) {
-            setlocale(categories[i], do_setlocale_r(categories[i], NULL));
-        }
+#  ifdef USE_THREAD_SAFE_LOCALE
+#    if defined(WIN32)
+
+    const char * thread_locale = posix_setlocale(LC_ALL, NULL);
+    _configthreadlocale(_DISABLE_PER_THREAD_LOCALE);
+    posix_setlocale(LC_ALL, thread_locale);
+
+#    else   /* Must be USE_POSIX_2008_LOCALE) */
+
+    const char * cur_thread_locales[NOMINAL_LC_ALL_INDEX + 1];
+
+    /* Save each category's current per-thread state */
+    for (unsigned i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        cur_thread_locales[i] = querylocale_i(i);
+    }
+
+    /* Now switch to global */
+    DEBUG_Lv(PerlIO_printf(Perl_debug_log, "Switching to global locale\n"));
+
+    locale_t old_locale = uselocale(LC_GLOBAL_LOCALE);
+    if (! old_locale) {
+        locale_panic_("Could not change to global locale");
+    }
+
+    /* Free the per-thread memory */
+    if (old_locale != LC_GLOBAL_LOCALE && old_locale != PL_C_locale_obj) {
+        freelocale(old_locale);
     }
 
+    /* Set the global to what was our per-thread state */
+    POSIX_SETLOCALE_LOCK;
+    for (unsigned int i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        posix_setlocale(categories[i], cur_thread_locales[i]);
+    }
+    POSIX_SETLOCALE_UNLOCK;
+
 #    endif
+#  endif
+#  ifdef USE_LOCALE_NUMERIC
 
-    uselocale(LC_GLOBAL_LOCALE);
+    /* Switch to the underlying C numeric locale; the application is on its
+     * own. */
+    POSIX_SETLOCALE_LOCK;
+    posix_setlocale(LC_NUMERIC, PL_numeric_name);
+    POSIX_SETLOCALE_UNLOCK;
 
 #  endif
 #endif
@@ -5415,27 +7064,45 @@ Perl_switch_to_global_locale()
 
 =for apidoc sync_locale
 
+This function copies the state of the program global locale into the calling
+thread, and converts that thread to using per-thread locales, if it wasn't
+already, and the platform supports them.  The LC_NUMERIC locale is toggled into
+the standard state (using the C locale's conventions), if not within the
+lexical scope of S<C<use locale>>.
+
+Perl will now consider itself to have control of the locale.
+
+Since unthreaded perls have only a global locale, this function is a no-op
+without threads.
+
+This function is intended for use with C libraries that do locale manipulation.
+It allows Perl to accommodate the use of them.  Call this function before
+transferring back to Perl space so that it knows what state the C code has left
+things in.
+
+XS code should not manipulate the locale on its own.  Instead,
 L<C<Perl_setlocale>|perlapi/Perl_setlocale> can be used at any time to query or
 change the locale (though changing the locale is antisocial and dangerous on
 multi-threaded systems that don't have multi-thread safe locale operations.
-(See L<perllocale/Multi-threaded operation>).  Using the system
-L<C<setlocale(3)>> should be avoided.  Nevertheless, certain non-Perl libraries
-called from XS, such as C<Gtk> do so, and this can't be changed.  When the
-locale is changed by XS code that didn't use
-L<C<Perl_setlocale>|perlapi/Perl_setlocale>, Perl needs to be told that the
-locale has changed.  Use this function to do so, before returning to Perl.
+(See L<perllocale/Multi-threaded operation>).
+
+Using the libc L<C<setlocale(3)>> function should be avoided.  Nevertheless,
+certain non-Perl libraries called from XS, do call it, and their behavior may
+not be able to be changed.  This function, along with
+C<L</switch_to_global_locale>>, can be used to get seamless behavior in these
+circumstances, as long as only one thread is involved.
+
+If the library has an option to turn off its locale manipulation, doing that is
+preferable to using this mechanism.  C<Gtk> is such a library.
 
 The return value is a boolean: TRUE if the global locale at the time of call
-was in effect; and FALSE if a per-thread locale was in effect.  This can be
-used by the caller that needs to restore things as-they-were to decide whether
-or not to call
-L<C<Perl_switch_to_global_locale>|perlapi/switch_to_global_locale>.
+was in effect for the caller; and FALSE if a per-thread locale was in effect.
 
 =cut
 */
 
 bool
-Perl_sync_locale()
+Perl_sync_locale(pTHX)
 {
 
 #ifndef USE_LOCALE
@@ -5444,77 +7111,52 @@ Perl_sync_locale()
 
 #else
 
-    const char * newlocale;
-    dTHX;
-
-#  ifdef USE_POSIX_2008_LOCALE
+    bool was_in_global = TRUE;
 
-    bool was_in_global_locale = FALSE;
-    locale_t cur_obj = uselocale((locale_t) 0);
+#  ifdef USE_THREAD_SAFE_LOCALE
+#    if defined(WIN32)
 
-    /* On Windows, unless the foreign code has turned off the thread-safe
-     * locale setting, any plain setlocale() will have affected what we see, so
-     * no need to worry.  Otherwise, If the foreign code has done a plain
-     * setlocale(), it will only affect the global locale on POSIX systems, but
-     * will affect the */
-    if (cur_obj == LC_GLOBAL_LOCALE) {
+    was_in_global = _configthreadlocale(_DISABLE_PER_THREAD_LOCALE)
+                                     == _DISABLE_PER_THREAD_LOCALE;
 
-#    ifdef HAS_QUERY_LOCALE
+#    elif defined(USE_POSIX_2008_LOCALE)
 
-        do_setlocale_c(LC_ALL, setlocale(LC_ALL, NULL));
+    was_in_global = (LC_GLOBAL_LOCALE == uselocale((locale_t) 0));
 
 #    else
-
-        unsigned int i;
-
-        /* We can't trust that we can read the LC_ALL format on the
-         * platform, so do them individually */
-        for (i = 0; i < LC_ALL_INDEX; i++) {
-            do_setlocale_r(categories[i], setlocale(categories[i], NULL));
-        }
-
+#      error Unexpected Configuration
 #    endif
+#  endif    /* USE_THREAD_SAFE_LOCALE */
 
-        was_in_global_locale = TRUE;
+    /* Here, we are in the global locale.  Get and save the values for each
+     * category. */
+    const char * current_globals[NOMINAL_LC_ALL_INDEX];
+    for (unsigned i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        POSIX_SETLOCALE_LOCK;
+        current_globals[i] = savepv(stdized_setlocale(categories[i], NULL));
+        POSIX_SETLOCALE_UNLOCK;
     }
 
-#  else
-
-    bool was_in_global_locale = TRUE;
-
-#  endif
-#  ifdef USE_LOCALE_CTYPE
-
-    newlocale = savepv(do_setlocale_c(LC_CTYPE, NULL));
-    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-        "%s:%d: %s\n", __FILE__, __LINE__,
-        setlocale_debug_string(LC_CTYPE, NULL, newlocale)));
-    new_ctype(newlocale);
-    Safefree(newlocale);
+    /* Now we have to convert the current thread to use them */
 
-#  endif /* USE_LOCALE_CTYPE */
-#  ifdef USE_LOCALE_COLLATE
+#  if defined(WIN32)
 
-    newlocale = savepv(do_setlocale_c(LC_COLLATE, NULL));
-    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-        "%s:%d: %s\n", __FILE__, __LINE__,
-        setlocale_debug_string(LC_COLLATE, NULL, newlocale)));
-    new_collate(newlocale);
-    Safefree(newlocale);
+    /* On Windows, convert to per-thread behavior.  This isn't necessary in
+     * POSIX 2008, as the conversion gets done automatically in the loop below.
+     * */
+    _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
 
 #  endif
-#  ifdef USE_LOCALE_NUMERIC
 
-    newlocale = savepv(do_setlocale_c(LC_NUMERIC, NULL));
-    DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-        "%s:%d: %s\n", __FILE__, __LINE__,
-        setlocale_debug_string(LC_NUMERIC, NULL, newlocale)));
-    new_numeric(newlocale);
-    Safefree(newlocale);
+    for (unsigned i = 0; i < NOMINAL_LC_ALL_INDEX; i++) {
+        setlocale_i(i, current_globals[i]);
+        Safefree(current_globals[i]);
+    }
 
-#  endif /* USE_LOCALE_NUMERIC */
+    /* And update our remaining records.  'true' => force recalculation */
+    new_LC_ALL(NULL, true);
 
-    return was_in_global_locale;
+    return was_in_global;
 
 #endif
 
@@ -5523,75 +7165,127 @@ Perl_sync_locale()
 #if defined(DEBUGGING) && defined(USE_LOCALE)
 
 STATIC char *
-S_setlocale_debug_string(const int category,        /* category number,
-                                                           like LC_ALL */
-                            const char* const locale,   /* locale name */
-
-                            /* return value from setlocale() when attempting to
-                             * set 'category' to 'locale' */
-                            const char* const retval)
+S_my_setlocale_debug_string_i(pTHX_
+                              const unsigned cat_index,
+                              const char* locale, /* Optional locale name */
+
+                              /* return value from setlocale() when attempting
+                               * to set 'category' to 'locale' */
+                              const char* retval,
+
+                              const line_t line)
 {
     /* Returns a pointer to a NUL-terminated string in static storage with
      * added text about the info passed in.  This is not thread safe and will
      * be overwritten by the next call, so this should be used just to
      * formulate a string to immediately print or savepv() on. */
 
-    static char ret[256];
+    const char * locale_quote;
+    const char * retval_quote;
 
-    my_strlcpy(ret, "setlocale(", sizeof(ret));
-    my_strlcat(ret, category_name(category), sizeof(ret));
-    my_strlcat(ret, ", ", sizeof(ret));
+    assert(cat_index <= NOMINAL_LC_ALL_INDEX);
 
-    if (locale) {
-        my_strlcat(ret, "\"", sizeof(ret));
-        my_strlcat(ret, locale, sizeof(ret));
-        my_strlcat(ret, "\"", sizeof(ret));
+    if (locale == NULL) {
+        locale_quote = "";
+        locale = "NULL";
     }
     else {
-        my_strlcat(ret, "NULL", sizeof(ret));
+        locale_quote = "\"";
     }
 
-    my_strlcat(ret, ") returned ", sizeof(ret));
-
-    if (retval) {
-        my_strlcat(ret, "\"", sizeof(ret));
-        my_strlcat(ret, retval, sizeof(ret));
-        my_strlcat(ret, "\"", sizeof(ret));
+    if (retval == NULL) {
+        retval_quote = "";
+        retval = "NULL";
     }
     else {
-        my_strlcat(ret, "NULL", sizeof(ret));
+        retval_quote = "\"";
     }
 
-    assert(strlen(ret) < sizeof(ret));
+#  ifdef USE_LOCALE_THREADS
+#    define THREAD_FORMAT "%p:"
+#    define THREAD_ARGUMENT aTHX_
+#  else
+#    define THREAD_FORMAT
+#    define THREAD_ARGUMENT
+#  endif
 
-    return ret;
+    return Perl_form(aTHX_
+                     "%s:%" LINE_Tf ": " THREAD_FORMAT
+                     " setlocale(%s[%d], %s%s%s) returned %s%s%s\n",
+
+                     __FILE__, line, THREAD_ARGUMENT
+                     category_names[cat_index], categories[cat_index],
+                     locale_quote, locale, locale_quote,
+                     retval_quote, retval, retval_quote);
 }
 
 #endif
+#ifdef USE_PERL_SWITCH_LOCALE_CONTEXT
 
 void
-Perl_thread_locale_init()
+Perl_switch_locale_context()
 {
-    /* Called from a thread on startup*/
+    /* libc keeps per-thread locale status information in some configurations.
+     * So, we can't just switch out aTHX to switch to a new thread.  libc has
+     * to follow along.  This routine does that based on per-interpreter
+     * variables we keep just for this purpose */
 
-#ifdef USE_THREAD_SAFE_LOCALE
+    /* Can't use pTHX, because we may be called from a place where that
+     * isn't available */
+    dTHX;
 
-    dTHX_DEBUGGING;
+    if (UNLIKELY(   aTHX == NULL
+                 || PL_veto_switch_non_tTHX_context
+                 || PL_phase == PERL_PHASE_CONSTRUCT))
+    {
+        return;
+    }
 
-    /* C starts the new thread in the global C locale.  If we are thread-safe,
-     * we want to not be in the global locale */
+#  ifdef USE_POSIX_2008_LOCALE
 
-     DEBUG_L(PerlIO_printf(Perl_debug_log,
-            "%s:%d: new thread, initial locale is %s; calling setlocale\n",
-            __FILE__, __LINE__, setlocale(LC_ALL, NULL)));
+    if (! uselocale(PL_cur_locale_obj)) {
+        locale_panic_(Perl_form(aTHX_
+                                "Can't uselocale(%p), LC_ALL supposed to be '%s",
+                                PL_cur_locale_obj, get_LC_ALL_display()));
+    }
 
-#  ifdef WIN32
+#  elif defined(WIN32)
 
-    _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
+    if (! bool_setlocale_c(LC_ALL, PL_cur_LC_ALL)) {
+        locale_panic_(Perl_form(aTHX_ "Can't setlocale(%s)", PL_cur_LC_ALL));
+    }
 
-#  else
+#  endif
+
+}
+
+#endif
+
+void
+Perl_thread_locale_init(pTHX)
+{
+
+#ifdef USE_THREAD_SAFE_LOCALE
+#  ifdef USE_POSIX_2008_LOCALE
+
+    /* Called from a thread on startup.
+     *
+     * The operations here have to be done from within the calling thread, as
+     * they affect libc's knowledge of the thread; libc has no knowledge of
+     * aTHX */
+
+     DEBUG_L(PerlIO_printf(Perl_debug_log,
+                           "new thread, initial locale is %s;"
+                           " calling setlocale(LC_ALL, \"C\")\n",
+                           get_LC_ALL_display()));
+
+    uselocale(PL_C_locale_obj);
 
-    Perl_setlocale(LC_ALL, "C");
+#  elif defined(WIN32)
+
+    /* On Windows, make sure new thread has per-thread locales enabled */
+    _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
+    void_setlocale_c(LC_ALL, "C");
 
 #  endif
 #endif
@@ -5599,25 +7293,36 @@ Perl_thread_locale_init()
 }
 
 void
-Perl_thread_locale_term()
+Perl_thread_locale_term(pTHX)
 {
-    /* Called from a thread as it gets ready to terminate */
+    /* Called from a thread as it gets ready to terminate.
+     *
+     * The operations here have to be done from within the calling thread, as
+     * they affect libc's knowledge of the thread; libc has no knowledge of
+     * aTHX */
 
-#ifdef USE_THREAD_SAFE_LOCALE
+#ifdef USE_POSIX_2008_LOCALE
 
     /* C starts the new thread in the global C locale.  If we are thread-safe,
      * we want to not be in the global locale */
 
-#  ifndef WIN32
+    /* Free up */
+    locale_t actual_obj   = uselocale(LC_GLOBAL_LOCALE);
+    if (actual_obj != LC_GLOBAL_LOCALE && actual_obj != PL_C_locale_obj) {
+        freelocale(actual_obj);
+    }
 
-    {   /* Free up */
-        locale_t cur_obj = uselocale(LC_GLOBAL_LOCALE);
-        if (cur_obj != LC_GLOBAL_LOCALE && cur_obj != PL_C_locale_obj) {
-            freelocale(cur_obj);
-        }
+    /* Prevent leaks even if something has gone wrong */
+    locale_t expected_obj = PL_cur_locale_obj;
+    if (UNLIKELY(   expected_obj != actual_obj
+                 && expected_obj != LC_GLOBAL_LOCALE
+                 && expected_obj != PL_C_locale_obj))
+    {
+        freelocale(expected_obj);
     }
 
-#  endif
+    PL_cur_locale_obj = LC_GLOBAL_LOCALE;
+
 #endif
 
 }
Index: gnu/usr.bin/perl/make_patchnum.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/make_patchnum.pl,v
diff -u -p -a -u -p -r1.3 make_patchnum.pl
--- gnu/usr.bin/perl/make_patchnum.pl	1 Mar 2021 23:19:43 -0000	1.3
+++ gnu/usr.bin/perl/make_patchnum.pl	21 Feb 2024 15:47:02 -0000
@@ -51,14 +51,6 @@ our $opt_v = scalar grep $_ eq '-v', @AR
 
 BEGIN {
     my $root=".";
-    # test 1st to see if we're a -Dmksymlinks target dir
-    $subcd = '';
-    $srcdir = $root;
-    if (-l "./Configure") {
-	$srcdir = readlink("./Configure");
-	$srcdir =~ s/Configure//;
-	$subcd = "cd $srcdir &&"; # activate backtick fragment
-    }
     while (!-e "$root/perl.c" and length($root)<100) {
         if ($root eq '.') {
             $root="..";
@@ -68,6 +60,15 @@ BEGIN {
     }
     die "Can't find toplevel" if !-e "$root/perl.c";
     sub path_to { "$root/$_[0]" } # use $_[0] if this'd be placed in toplevel.
+
+    # test to see if we're a -Dmksymlinks target dir
+    $subcd = '';
+    $srcdir = $root;
+    if (-l "$root/Configure") {
+        $srcdir = readlink("$root/Configure");
+        $srcdir =~ s/Configure//;
+        $subcd = "cd $srcdir &&"; # activate backtick fragment
+    }
 }
 
 sub read_file {
@@ -161,8 +162,7 @@ elsif ($git_patch_file = read_file(".git
     $commit_title = "Snapshot of:";
 }
 elsif (-d "$srcdir/.git") {
-    # git branch | awk 'BEGIN{ORS=""} /\*/ { print $2 }'
-    ($branch) = map { /\* ([^(]\S*)/ ? $1 : () } backtick("git branch");
+    ($branch) = backtick("git symbolic-ref -q HEAD") =~ m#^refs/heads/(.+)$#;
     $branch //= "";
     my ($remote,$merge);
     if (length $branch) {
Index: gnu/usr.bin/perl/makedef.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/makedef.pl,v
diff -u -p -a -u -p -r1.17 makedef.pl
--- gnu/usr.bin/perl/makedef.pl	8 Jul 2023 14:18:35 -0000	1.17
+++ gnu/usr.bin/perl/makedef.pl	21 Feb 2024 15:47:02 -0000
@@ -33,6 +33,7 @@
 
 use strict;
 use Config;
+use warnings;
 
 my $fold;
 my %ARGS;
@@ -66,14 +67,19 @@ BEGIN {
     die "PLATFORM must be one of: @PLATFORM\n"
 	unless exists $PLATFORM{$ARGS{PLATFORM}};
 }
+
 use constant PLATFORM => $ARGS{PLATFORM};
 
+# This makes us able to use, e.g., $define{WIN32}, so you don't have to
+# remember what things came from %ARGS.
+$define{uc $ARGS{'PLATFORM'}} = 1;
+
 require "./$ARGS{TARG_DIR}regen/embed_lib.pl";
 
 # Is the following guard strictly necessary? Added during refactoring
 # to keep the same behaviour when merging other code into here.
 process_cc_flags(@Config{qw(ccflags optimize)})
-    if $ARGS{PLATFORM} ne 'win32';
+    if PLATFORM ne 'win32';
 
 # Add the compile-time options that miniperl was built with to %define.
 # On Win32 these are not the same options as perl itself will be built
@@ -85,7 +91,7 @@ process_cc_flags(@Config{qw(ccflags opti
 # minimal configs that don't include any of those options.
 
 my @options = sort(Config::bincompat_options(), Config::non_bincompat_options());
-print STDERR "Options: (@options)\n" unless $ARGS{PLATFORM} eq 'test';
+print STDERR "Options: (@options)\n" unless PLATFORM eq 'test';
 $define{$_} = 1 foreach @options;
 
 my %exportperlmalloc =
@@ -96,7 +102,7 @@ my %exportperlmalloc =
        Perl_calloc		=>	"calloc",
     );
 
-my $exportperlmalloc = $ARGS{PLATFORM} eq 'os2';
+my $exportperlmalloc = PLATFORM eq 'os2';
 
 my $config_h = 'config.h';
 open(CFG, '<', $config_h) || die "Cannot open $config_h: $!\n";
@@ -107,8 +113,10 @@ while (<CFG>) {
 }
 close(CFG);
 
+#==========================================================================
 # perl.h logic duplication begins
 
+
 if ($define{USE_ITHREADS}) {
     if (!$define{MULTIPLICITY}) {
         $define{MULTIPLICITY} = 1;
@@ -119,7 +127,7 @@ $define{MULTIPLICITY} ||=
     $define{USE_ITHREADS} ||
     $define{PERL_IMPLICIT_CONTEXT} ;
 
-if ($define{USE_ITHREADS} && $ARGS{PLATFORM} ne 'win32') {
+if ($define{USE_ITHREADS} && ! $define{WIN32}) {
     $define{USE_REENTRANT_API} = 1;
 }
 
@@ -140,36 +148,66 @@ if (! $define{NO_LOCALE}) {
 
 # https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
 my $cctype = $ARGS{CCTYPE} =~ s/MSVC//r;
-if (! $define{HAS_SETLOCALE} && $define{HAS_POSIX_2008_LOCALE}) {
+if ($define{USE_ITHREADS} && ! $define{NO_LOCALE_THREADS}) {
+    $define{USE_LOCALE_THREADS} = 1;
+}
+
+if (   $define{HAS_POSIX_2008_LOCALE}
+    && (  ! $define{HAS_SETLOCALE} || (     $define{USE_LOCALE_THREADS}
+                                       && ! $define{NO_POSIX_2008_LOCALE})))
+{
     $define{USE_POSIX_2008_LOCALE} = 1;
-    $define{USE_THREAD_SAFE_LOCALE} = 1;
 }
-elsif (   ($define{USE_ITHREADS} || $define{USE_THREAD_SAFE_LOCALE})
-       && (    $define{HAS_POSIX_2008_LOCALE}
-           || ($ARGS{PLATFORM} eq 'win32' && (   $cctype !~ /\D/
-                                              && $cctype >= 80)))
-       && ! $define{NO_THREAD_SAFE_LOCALE})
+
+if ($define{USE_LOCALE_THREADS} && ! $define{NO_THREAD_SAFE_LOCALE})
 {
-    $define{USE_THREAD_SAFE_LOCALE} = 1 unless $define{USE_THREAD_SAFE_LOCALE};
-    $define{USE_POSIX_2008_LOCALE} = 1 if $define{HAS_POSIX_2008_LOCALE};
+    if (    $define{USE_POSIX_2008_LOCALE}
+        || ($define{WIN32} && (   $cctype !~ /\D/
+                               && $cctype >= 80)))
+    {
+        $define{USE_THREAD_SAFE_LOCALE} = 1;
+    }
+}
+
+if ($define{USE_POSIX_2008_LOCALE} && $define{HAS_QUERYLOCALE})
+{
+    $define{USE_QUERYLOCALE} = 1;
+
+    # Don't need glibc only code from perl.h
+}
+
+if ($define{USE_POSIX_2008_LOCALE} && ! $define{USE_QUERYLOCALE})
+{
+    $define{USE_PL_CURLOCALES} = 1;
+    $define{USE_PL_CUR_LC_ALL} = 1;
+}
+
+if ($define{WIN32} && $define{USE_THREAD_SAFE_LOCALE})
+{
+    $define{USE_PL_CUR_LC_ALL} = 1;
+
+    if ($cctype < 140) {
+        $define{TS_W32_BROKEN_LOCALECONV} = 1;
+    }
 }
 
-if (   $ARGS{PLATFORM} eq 'win32'
-    && $define{USE_THREAD_SAFE_LOCALE}
-    && $cctype < 140)
+if ($define{MULTIPLICITY} && (   $define{USE_POSIX_2008_LOCALE}
+                              || (   $define{WIN32}
+                                  && $define{USE_THREAD_SAFE_LOCALE})))
 {
-    $define{TS_W32_BROKEN_LOCALECONV} = 1;
+    $define{USE_PERL_SWITCH_LOCALE_CONTEXT} = 1;
 }
 
 # perl.h logic duplication ends
+#==========================================================================
 
 print STDERR "Defines: (" . join(' ', sort keys %define) . ")\n"
-     unless $ARGS{PLATFORM} eq 'test';
+     unless PLATFORM eq 'test';
 
 my $sym_ord = 0;
 my %ordinal;
 
-if ($ARGS{PLATFORM} eq 'os2') {
+if (PLATFORM eq 'os2') {
     if (open my $fh, '<', 'perl5.def') {
       while (<$fh>) {
 	last if /^\s*EXPORTS\b/;
@@ -219,7 +257,7 @@ sub readvar {
     }
 }
 
-if ($ARGS{PLATFORM} ne 'os2') {
+if (PLATFORM ne 'os2') {
     ++$skip{$_} foreach qw(
 		     PL_opsave
 		     Perl_dump_fds
@@ -232,7 +270,7 @@ if ($ARGS{PLATFORM} ne 'os2') {
 		     Perl_my_ntohl
 		     Perl_my_swap
 			 );
-    if ($ARGS{PLATFORM} eq 'vms') {
+    if (PLATFORM eq 'vms') {
 	++$skip{PL_statusvalue_posix};
         # This is a wrapper if we have symlink, not a replacement
         # if we don't.
@@ -240,7 +278,7 @@ if ($ARGS{PLATFORM} ne 'os2') {
     } else {
 	++$skip{PL_statusvalue_vms};
 	++$skip{PL_perllib_sep};
-	if ($ARGS{PLATFORM} ne 'aix') {
+	if (PLATFORM ne 'aix') {
 	    ++$skip{$_} foreach qw(
 				PL_DBcv
 				PL_generation
@@ -252,14 +290,14 @@ if ($ARGS{PLATFORM} ne 'os2') {
     }
 }
 
-if ($ARGS{PLATFORM} ne 'vms') {
+if (PLATFORM ne 'vms') {
     # VMS does its own thing for these symbols.
     ++$skip{$_} foreach qw(
 			PL_sig_handlers_initted
 			PL_sig_ignoring
 			PL_sig_defaulting
 			 );
-    if ($ARGS{PLATFORM} ne 'win32') {
+    if (PLATFORM ne 'win32') {
 	++$skip{$_} foreach qw(
 			    Perl_do_spawn
 			    Perl_do_spawn_nowait
@@ -268,9 +306,12 @@ if ($ARGS{PLATFORM} ne 'vms') {
     }
 }
 
-if ($ARGS{PLATFORM} ne 'win32') {
+if (PLATFORM ne 'win32') {
     ++$skip{$_} foreach qw(
-		    Perl_my_setlocale
+		    Perl_get_context
+		    Perl_get_win32_message_utf8ness
+		    Perl_Win_utf8_string_to_wstring
+		    Perl_Win_wstring_to_utf8_string
 			 );
 }
 
@@ -286,7 +327,6 @@ unless ($define{'DEBUGGING'}) {
 		    Perl_debstackptrs
 		    Perl_pad_sv
 		    Perl_pad_setsv
-                    Perl__setlocale_debug_string
 		    Perl_set_padlist
 		    Perl_hv_assert
 		    PL_watchaddr
@@ -353,10 +393,6 @@ else {
 			 );
 }
 
-if ($define{'PERL_USE_SAFE_PUTENV'}) {
-    ++$skip{PL_use_safe_putenv};
-}
-
 unless ($define{'USE_ITHREADS'}) {
     ++$skip{PL_thr_key};
     ++$skip{PL_user_prop_mutex};
@@ -367,6 +403,7 @@ unless ($define{'USE_ITHREADS'}) {
     ++$skip{$_} foreach qw(
                     PL_keyword_plugin_mutex
 		    PL_check_mutex
+                    PL_cur_locale_obj
 		    PL_op_mutex
 		    PL_regex_pad
 		    PL_regex_padav
@@ -374,13 +411,13 @@ unless ($define{'USE_ITHREADS'}) {
 		    PL_env_mutex
 		    PL_hints_mutex
 		    PL_locale_mutex
-		    PL_lc_numeric_mutex
-		    PL_lc_numeric_mutex_depth
+		    PL_locale_mutex_depth
 		    PL_my_ctx_mutex
 		    PL_perlio_mutex
 		    PL_stashpad
 		    PL_stashpadix
 		    PL_stashpadmax
+                    PL_veto_switch_non_tTHX_context
 		    Perl_alloccopstash
 		    Perl_allocfilegv
 		    Perl_clone_params_del
@@ -409,23 +446,32 @@ unless ($define{'USE_ITHREADS'}) {
 			 );
 }
 
-if (      $define{NO_LOCALE}
-    || (! $define{USE_ITHREADS} && ! $define{USE_THREAD_SAFE_LOCALE}))
+unless ($define{USE_POSIX_2008_LOCALE})
 {
     ++$skip{$_} foreach qw(
         PL_C_locale_obj
+        PL_scratch_locale_obj
+        PL_underlying_numeric_obj
+    );
+}
+unless ($define{USE_PL_CURLOCALES})
+{
+    ++$skip{$_} foreach qw(
         PL_curlocales
     );
 }
 
-unless ( $define{'HAS_NEWLOCALE'}
-    &&   $define{'HAS_FREELOCALE'}
-    &&   $define{'HAS_USELOCALE'}
-    && ! $define{'NO_POSIX_2008_LOCALE'})
+unless ($define{USE_PL_CUR_LC_ALL})
 {
     ++$skip{$_} foreach qw(
-        PL_C_locale_obj
-        PL_underlying_numeric_obj
+        PL_cur_LC_ALL
+    );
+}
+
+unless ($define{USE_PERL_SWITCH_LOCALE_CONTEXT})
+{
+    ++$skip{$_} foreach qw(
+        Perl_switch_locale_context
     );
 }
 
@@ -454,11 +500,6 @@ unless ($define{'MULTIPLICITY'}) {
 			 );
 }
 
-if ($define{USE_THREAD_SAFE_LOCALE}) {
-    ++$skip{PL_lc_numeric_mutex};
-    ++$skip{PL_lc_numeric_mutex_depth};
-}
-
 unless ($define{'USE_DTRACE'}) {
     ++$skip{$_} foreach qw(
                     Perl_dtrace_probe_call
@@ -517,14 +558,14 @@ unless ($define{HAS_MMAP}) {
 if ($define{HAS_SIGACTION}) {
     ++$skip{PL_sig_trapped};
 
-    if ($ARGS{PLATFORM} eq 'vms') {
+    if (PLATFORM eq 'vms') {
         # FAKE_PERSISTENT_SIGNAL_HANDLERS defined as !defined(HAS_SIGACTION)
         ++$skip{PL_sig_ignoring};
         ++$skip{PL_sig_handlers_initted} unless $define{KILL_BY_SIGPRC};
     }
 }
 
-if ($ARGS{PLATFORM} eq 'vms' && !$define{KILL_BY_SIGPRC}) {
+if (PLATFORM eq 'vms' && !$define{KILL_BY_SIGPRC}) {
     # FAKE_DEFAULT_SIGNAL_HANDLERS defined as KILL_BY_SIGPRC
     ++$skip{Perl_csighandler_init};
     ++$skip{Perl_my_kill};
@@ -550,21 +591,24 @@ unless ($define{USE_LOCALE_COLLATE}) {
                     PL_strxfrm_NUL_replacement
                     PL_strxfrm_is_behaved
                     PL_strxfrm_max_cp
+		    PL_in_utf8_COLLATE_locale
 			 );
 }
 
 unless ($define{USE_LOCALE_NUMERIC}) {
     ++$skip{$_} foreach qw(
-		    PL_numeric_local
-		    PL_numeric_name
-		    PL_numeric_radix_sv
-		    PL_numeric_standard
-                    PL_numeric_underlying
-                    PL_numeric_underlying_is_standard
                     PL_underlying_numeric_obj
 			 );
 }
 
+unless ($define{USE_LOCALE_CTYPE}) {
+    ++$skip{$_} foreach qw(
+		    PL_ctype_name
+                    PL_in_utf8_CTYPE_locale
+                    PL_in_utf8_turkic_locale
+			 );
+}
+
 unless ($define{'USE_C_BACKTRACE'}) {
     ++$skip{Perl_get_c_backtrace_dump};
     ++$skip{Perl_dump_c_backtrace};
@@ -706,11 +750,13 @@ unless ($Config{d_wcrtomb}) {
 
 {
     my %seen;
-    my ($embed) = setup_embed($ARGS{TARG_DIR});
-    my $excludedre = $define{'NO_MATHOMS'} ? qr/[emiIb]/ : qr/[emiI]/;
+    my ($embed_array) = setup_embed($ARGS{TARG_DIR});
+    my $excludedre = $define{'NO_MATHOMS'} ? qr/[emiIsb]/ : qr/[emiIs]/;
 
-    foreach (@$embed) {
-	my ($flags, $retval, $func, @args) = @$_;
+    foreach (@$embed_array) {
+        my $embed= $_->{embed}
+            or next;
+	my ($flags, $retval, $func, $args) = @{$embed}{qw(flags return_type name args)};
 	next unless $func;
 	if (($flags =~ /[AXC]/ && $flags !~ $excludedre)
             || (!$define{'NO_MATHOMS'} && $flags =~ /b/))
@@ -723,7 +769,7 @@ unless ($Config{d_wcrtomb}) {
 	    # mean "don't export"
 	    next if $seen{$func}++;
 	    # Should we also skip adding the Perl_ prefix if $flags =~ /o/ ?
-	    $func = "Perl_$func" if ($flags =~ /[pX]/ && $func !~ /^Perl_/);
+	    $func = "Perl_$func" if ($flags =~ /[psX]/ && $func !~ /^Perl_/);
 	    ++$export{$func} unless exists $skip{$func};
 	}
     }
@@ -757,7 +803,7 @@ try_symbols(qw(
 		    PerlIO_tmpfile
 	     ));
 
-if ($ARGS{PLATFORM} eq 'win32') {
+if (PLATFORM eq 'win32') {
     try_symbols(qw(
 		    win32_free_childdir
 		    win32_free_childenv
@@ -922,7 +968,7 @@ if ($ARGS{PLATFORM} eq 'win32') {
                     win32_readlink
 		 ));
 }
-elsif ($ARGS{PLATFORM} eq 'vms') {
+elsif (PLATFORM eq 'vms') {
     try_symbols(qw(
 		      Perl_cando
 		      Perl_cando_by_name
@@ -1007,7 +1053,7 @@ elsif ($ARGS{PLATFORM} eq 'vms') {
 		      PerlIO_openn
 		 ));
 }
-elsif ($ARGS{PLATFORM} eq 'os2') {
+elsif (PLATFORM eq 'os2') {
     try_symbols(qw(
 		      ctermid
 		      get_sysinfo
@@ -1083,7 +1129,7 @@ elsif ($ARGS{PLATFORM} eq 'os2') {
 # static extensions with -fPIC, but links them to perl, not libperl.so
 # The VMS build scripts don't yet implement static extensions at all.
 
-if ($ARGS{PLATFORM} eq 'win32') {
+if (PLATFORM eq 'win32') {
     # records of type boot_module for statically linked modules (except Dynaloader)
     my $static_ext = $Config{static_ext} // "";
     $static_ext =~ s/\//__/g;
@@ -1092,7 +1138,7 @@ if ($ARGS{PLATFORM} eq 'win32') {
     try_symbols("init_Win32CORE") if $static_ext =~ /\bWin32CORE\b/;
 }
 
-if ($ARGS{PLATFORM} eq 'os2') {
+if (PLATFORM eq 'os2') {
     my (%mapped, @missing);
     open MAP, '<', 'miniperl.map' or die 'Cannot read miniperl.map';
     /^\s*[\da-f:]+\s+(\w+)/i and $mapped{$1}++ foreach <MAP>;
@@ -1110,7 +1156,7 @@ if ($ARGS{PLATFORM} eq 'os2') {
 
 # Start with platform specific headers:
 
-if ($ARGS{PLATFORM} eq 'win32') {
+if (PLATFORM eq 'win32') {
     my $dll = $define{PERL_DLL} ? $define{PERL_DLL} =~ s/\.dll$//ir
 	: "perl$Config{api_revision}$Config{api_version}";
     print "LIBRARY $dll\n";
@@ -1121,7 +1167,7 @@ if ($ARGS{PLATFORM} eq 'win32') {
     }
     print "EXPORTS\n";
 }
-elsif ($ARGS{PLATFORM} eq 'os2') {
+elsif (PLATFORM eq 'os2') {
     (my $v = $]) =~ s/(\d\.\d\d\d)(\d\d)$/$1_$2/;
     $v .= '-thread' if $Config{archname} =~ /-thread/;
     (my $dll = $define{PERL_DLL}) =~ s/\.dll$//i;
@@ -1137,7 +1183,7 @@ DATA LOADONCALL NONSHARED MULTIPLE
 EXPORTS
 ---EOP---
 }
-elsif ($ARGS{PLATFORM} eq 'aix') {
+elsif (PLATFORM eq 'aix') {
     my $OSVER = `uname -v`;
     chop $OSVER;
     my $OSREL = `uname -r`;
@@ -1176,7 +1222,7 @@ foreach my $symbol (@symbols) {
 
 # Then platform specific footers.
 
-if ($ARGS{PLATFORM} eq 'os2') {
+if (PLATFORM eq 'os2') {
     print <<EOP;
     dll_perlmain=main
     fill_extLibpath
Index: gnu/usr.bin/perl/malloc.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/malloc.c,v
diff -u -p -a -u -p -r1.20 malloc.c
--- gnu/usr.bin/perl/malloc.c	15 Feb 2023 01:36:13 -0000	1.20
+++ gnu/usr.bin/perl/malloc.c	21 Feb 2024 15:47:02 -0000
@@ -410,25 +410,25 @@ union	overhead {
                 u_int	ovu_rmagic;	/* range magic number */
 #endif
         } ovu;
-#define	ov_magic	ovu.ovu_magic
-#define	ov_index	ovu.ovu_index
-#define	ov_size		ovu.ovu_size
-#define	ov_rmagic	ovu.ovu_rmagic
+#define ov_magic        ovu.ovu_magic
+#define ov_index        ovu.ovu_index
+#define ov_size         ovu.ovu_size
+#define ov_rmagic       ovu.ovu_rmagic
 };
 
-#define	MAGIC		0xff		/* magic # on accounting info */
+#define MAGIC           0xff            /* magic # on accounting info */
 #define RMAGIC		0x55555555	/* magic # on range info */
 #define RMAGIC_C	0x55		/* magic # on range info */
 
 #ifdef RCHECK
-#  define	RMAGIC_SZ	sizeof (u_int) /* Overhead at end of bucket */
+#  define RMAGIC_SZ     sizeof (u_int) /* Overhead at end of bucket */
 #  ifdef TWO_POT_OPTIMIZE
 #    define MAX_SHORT_BUCKET (12 * BUCKETS_PER_POW2) /* size-1 fits in short */
 #  else
 #    define MAX_SHORT_BUCKET (13 * BUCKETS_PER_POW2)
 #  endif 
 #else
-#  define	RMAGIC_SZ	0
+#  define RMAGIC_SZ     0
 #endif
 
 #if !defined(PACK_MALLOC) && defined(BUCKETS_ROOT2)
@@ -583,7 +583,7 @@ static const u_short buck_size[MAX_BUCKE
  *
  * This allows for an additional optimization: the above scheme leads
  * to giant overheads for sizes 128 or more (one whole chunk needs to
- * be sacrifised to keep INDEX).  Instead we use chunks not of size
+ * be sacrificed to keep INDEX).  Instead we use chunks not of size
  * 2^k, but of size 2^k-ALIGN.  If we pack these chunks at the end of
  * the arena, then the beginnings are still in different 2^k-long
  * sections of the arena if k>=7 for ALIGN==4, and k>=8 if ALIGN=8.
@@ -812,7 +812,7 @@ static int	getpages_adjacent(MEM_SIZE re
  * smallest allocatable block is 8 bytes.  The overhead information
  * precedes the data area returned to the user.
  */
-#define	NBUCKETS (BITS_IN_PTR*BUCKETS_PER_POW2 + 1)
+#define NBUCKETS (BITS_IN_PTR*BUCKETS_PER_POW2 + 1)
 static	union overhead *nextf[NBUCKETS];
 
 #if defined(PURIFY) && !defined(USE_PERL_SBRK)
@@ -1059,7 +1059,7 @@ emergency_sbrk(MEM_SIZE size)
 
 #ifdef DEBUGGING
 #undef ASSERT
-#define	ASSERT(p,diag)   if (!(p)) botch(diag,STRINGIFY(p),__FILE__,__LINE__);
+#define ASSERT(p,diag)   if (!(p)) botch(diag,STRINGIFY(p),__FILE__,__LINE__);
 
 static void
 botch(const char *diag, const char *s, const char *file, int line)
@@ -1095,7 +1095,7 @@ botch(const char *diag, const char *s, c
     }
 }
 #else
-#define	ASSERT(p, diag)
+#define ASSERT(p, diag)
 #endif
 
 #ifdef MALLOC_FILL
Index: gnu/usr.bin/perl/mathoms.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mathoms.c,v
diff -u -p -a -u -p -r1.6 mathoms.c
--- gnu/usr.bin/perl/mathoms.c	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/mathoms.c	21 Feb 2024 15:47:02 -0000
@@ -301,110 +301,13 @@ Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr
 
 /*
 =for apidoc_section $SV
-=for apidoc sv_iv
-
-A private implementation of the C<SvIVx> macro for compilers which can't
-cope with complex macro expressions.  Always use the macro instead.
-
-=cut
-*/
-
-IV
-Perl_sv_iv(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SV_IV;
-
-    if (SvIOK(sv)) {
-        if (SvIsUV(sv))
-            return (IV)SvUVX(sv);
-        return SvIVX(sv);
-    }
-    return sv_2iv(sv);
-}
-
-/*
-=for apidoc_section $SV
-=for apidoc sv_uv
-
-A private implementation of the C<SvUVx> macro for compilers which can't
-cope with complex macro expressions.  Always use the macro instead.
-
-=cut
-*/
-
-UV
-Perl_sv_uv(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SV_UV;
-
-    if (SvIOK(sv)) {
-        if (SvIsUV(sv))
-            return SvUVX(sv);
-        return (UV)SvIVX(sv);
-    }
-    return sv_2uv(sv);
-}
-
-/*
-=for apidoc_section $SV
-=for apidoc sv_nv
-
-A private implementation of the C<SvNVx> macro for compilers which can't
-cope with complex macro expressions.  Always use the macro instead.
-
-=cut
-*/
-
-NV
-Perl_sv_nv(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SV_NV;
-
-    if (SvNOK(sv))
-        return SvNVX(sv);
-    return sv_2nv(sv);
-}
-
-/*
-=for apidoc_section $SV
 =for apidoc sv_pv
 
 Use the C<SvPV_nolen> macro instead
 
-=for apidoc_section $SV
-=for apidoc sv_pvn
-
-A private implementation of the C<SvPV> macro for compilers which can't
-cope with complex macro expressions.  Always use the macro instead.
-
 =cut
 */
 
-char *
-Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp)
-{
-    PERL_ARGS_ASSERT_SV_PVN;
-
-    if (SvPOK(sv)) {
-        *lp = SvCUR(sv);
-        return SvPVX(sv);
-    }
-    return sv_2pv(sv, lp);
-}
-
-
-char *
-Perl_sv_pvn_nomg(pTHX_ SV *sv, STRLEN *lp)
-{
-    PERL_ARGS_ASSERT_SV_PVN_NOMG;
-
-    if (SvPOK(sv)) {
-        *lp = SvCUR(sv);
-        return SvPVX(sv);
-    }
-    return sv_2pv_flags(sv, lp, 0);
-}
-
 /* sv_pv() is now a macro using SvPV_nolen();
  * this function provided for binary compatibility only
  */
@@ -441,7 +344,7 @@ Perl_sv_pvbyte(pTHX_ SV *sv)
 {
     PERL_ARGS_ASSERT_SV_PVBYTE;
 
-    sv_utf8_downgrade(sv, FALSE);
+    (void)sv_utf8_downgrade(sv, FALSE);
     return sv_pv(sv);
 }
 
@@ -451,59 +354,26 @@ Perl_sv_pvbyte(pTHX_ SV *sv)
 
 Use C<SvPVbyte_nolen> instead.
 
-=for apidoc sv_pvbyten
-
-A private implementation of the C<SvPVbyte> macro for compilers
-which can't cope with complex macro expressions.  Always use the macro
-instead.
-
 =cut
 */
 
-char *
-Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp)
-{
-    PERL_ARGS_ASSERT_SV_PVBYTEN;
-
-    sv_utf8_downgrade(sv, FALSE);
-    return sv_pvn(sv,lp);
-}
-
-/* sv_pvutf8 () is now a macro using Perl_sv_2pv_flags();
- * this function provided for binary compatibility only
- */
-
-char *
-Perl_sv_pvutf8(pTHX_ SV *sv)
-{
-    PERL_ARGS_ASSERT_SV_PVUTF8;
-
-    sv_utf8_upgrade(sv);
-    return sv_pv(sv);
-}
-
 /*
 =for apidoc_section $SV
 =for apidoc sv_pvutf8
 
 Use the C<SvPVutf8_nolen> macro instead
 
-=for apidoc sv_pvutf8n
-
-A private implementation of the C<SvPVutf8> macro for compilers
-which can't cope with complex macro expressions.  Always use the macro
-instead.
-
 =cut
 */
 
+
 char *
-Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp)
+Perl_sv_pvutf8(pTHX_ SV *sv)
 {
-    PERL_ARGS_ASSERT_SV_PVUTF8N;
+    PERL_ARGS_ASSERT_SV_PVUTF8;
 
     sv_utf8_upgrade(sv);
-    return sv_pvn(sv,lp);
+    return sv_pv(sv);
 }
 
 /* sv_utf8_upgrade() is now a macro using sv_utf8_upgrade_flags();
@@ -518,41 +388,6 @@ Perl_sv_utf8_upgrade(pTHX_ SV *sv)
     return sv_utf8_upgrade_flags(sv, SV_GMAGIC);
 }
 
-int
-Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
-{
-    int ret = 0;
-    va_list arglist;
-
-    /* Easier to special case this here than in embed.pl. (Look at what it
-       generates for proto.h) */
-#ifdef MULTIPLICITY
-    PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT;
-#endif
-
-    va_start(arglist, format);
-    ret = PerlIO_vprintf(stream, format, arglist);
-    va_end(arglist);
-    return ret;
-}
-
-int
-Perl_printf_nocontext(const char *format, ...)
-{
-    dTHX;
-    va_list arglist;
-    int ret = 0;
-
-#ifdef MULTIPLICITY
-    PERL_ARGS_ASSERT_PRINTF_NOCONTEXT;
-#endif
-
-    va_start(arglist, format);
-    ret = PerlIO_vprintf(PerlIO_stdout(), format, arglist);
-    va_end(arglist);
-    return ret;
-}
-
 #if defined(HUGE_VAL) || (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL))
 /*
  * This hack is to force load of "huge" support from libm.a
@@ -570,24 +405,6 @@ Perl_huge(void)
 }
 #endif
 
-/* compatibility with versions <= 5.003. */
-void
-Perl_gv_fullname(pTHX_ SV *sv, const GV *gv)
-{
-    PERL_ARGS_ASSERT_GV_FULLNAME;
-
-    gv_fullname3(sv, gv, sv == (const SV*)gv ? "*" : "");
-}
-
-/* compatibility with versions <= 5.003. */
-void
-Perl_gv_efullname(pTHX_ SV *sv, const GV *gv)
-{
-    PERL_ARGS_ASSERT_GV_EFULLNAME;
-
-    gv_efullname3(sv, gv, sv == (const SV*)gv ? "*" : "");
-}
-
 void
 Perl_gv_fullname3(pTHX_ SV *sv, const GV *gv, const char *prefix)
 {
@@ -647,36 +464,6 @@ Perl_do_open(pTHX_ GV *gv, const char *n
                     supplied_fp, (SV **) NULL, 0);
 }
 
-bool
-Perl_do_open9(pTHX_ GV *gv, const char *name, I32 len, int
-as_raw,
-              int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs,
-              I32 num_svs)
-{
-    PERL_ARGS_ASSERT_DO_OPEN9;
-
-    PERL_UNUSED_ARG(num_svs);
-    return do_openn(gv, name, len, as_raw, rawmode, rawperm,
-                    supplied_fp, &svs, 1);
-}
-
-int
-Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode)
-{
- /* The old body of this is now in non-LAYER part of perlio.c
-  * This is a stub for any XS code which might have been calling it.
-  */
- const char *name = ":raw";
-
- PERL_ARGS_ASSERT_DO_BINMODE;
-
-#ifdef PERLIO_USING_CRLF
- if (!(mode & O_BINARY))
-     name = ":crlf";
-#endif
- return PerlIO_binmode(aTHX_ fp, iotype, mode, name);
-}
-
 #ifndef OS2
 bool
 Perl_do_aexec(pTHX_ SV *really, SV **mark, SV **sp)
@@ -687,13 +474,6 @@ Perl_do_aexec(pTHX_ SV *really, SV **mar
 }
 #endif
 
-/* Backwards compatibility. */
-int
-Perl_init_i18nl14n(pTHX_ int printwarn)
-{
-    return init_i18nl10n(printwarn);
-}
-
 bool
 Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep)
 {
@@ -748,46 +528,6 @@ Perl_sv_nounlocking(pTHX_ SV *sv)
 }
 
 void
-Perl_save_long(pTHX_ long int *longp)
-{
-    PERL_ARGS_ASSERT_SAVE_LONG;
-
-    SSCHECK(3);
-    SSPUSHLONG(*longp);
-    SSPUSHPTR(longp);
-    SSPUSHUV(SAVEt_LONG);
-}
-
-void
-Perl_save_nogv(pTHX_ GV *gv)
-{
-    PERL_ARGS_ASSERT_SAVE_NOGV;
-
-    SSCHECK(2);
-    SSPUSHPTR(gv);
-    SSPUSHUV(SAVEt_NSTAB);
-}
-
-void
-Perl_save_list(pTHX_ SV **sarg, I32 maxsarg)
-{
-    I32 i;
-
-    PERL_ARGS_ASSERT_SAVE_LIST;
-
-    for (i = 1; i <= maxsarg; i++) {
-        SV *sv;
-        SvGETMAGIC(sarg[i]);
-        sv = newSV(0);
-        sv_setsv_nomg(sv,sarg[i]);
-        SSCHECK(3);
-        SSPUSHPTR(sarg[i]);		/* remember the pointer */
-        SSPUSHPTR(sv);			/* remember the value */
-        SSPUSHUV(SAVEt_ITEM);
-    }
-}
-
-void
 Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len)
 {
     PERL_ARGS_ASSERT_SV_USEPVN_MG;
@@ -804,52 +544,6 @@ Perl_sv_usepvn(pTHX_ SV *sv, char *ptr, 
     sv_usepvn_flags(sv,ptr,len, 0);
 }
 
-/*
-=for apidoc_section $pack
-=for apidoc unpack_str
-
-The engine implementing C<unpack()> Perl function.  Note: parameters C<strbeg>,
-C<new_s> and C<ocnt> are not used.  This call should not be used, use
-C<unpackstring> instead.
-
-=cut */
-
-SSize_t
-Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s,
-                const char *strbeg, const char *strend, char **new_s, I32 ocnt,
-                U32 flags)
-{
-    PERL_ARGS_ASSERT_UNPACK_STR;
-
-    PERL_UNUSED_ARG(strbeg);
-    PERL_UNUSED_ARG(new_s);
-    PERL_UNUSED_ARG(ocnt);
-
-    return unpackstring(pat, patend, s, strend, flags);
-}
-
-/*
-=for apidoc_section $pack
-=for apidoc pack_cat
-
-The engine implementing C<pack()> Perl function.  Note: parameters
-C<next_in_list> and C<flags> are not used.  This call should not be used; use
-C<L</packlist>> instead.
-
-=cut
-*/
-
-void
-Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)
-{
-    PERL_ARGS_ASSERT_PACK_CAT;
-
-    PERL_UNUSED_ARG(next_in_list);
-    PERL_UNUSED_ARG(flags);
-
-    packlist(cat, pat, patend, beglist, endlist);
-}
-
 HE *
 Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, U32 hash)
 {
@@ -1081,17 +775,6 @@ Perl_sv_collxfrm(pTHX_ SV *const sv, STR
     return sv_collxfrm_flags(sv, nxp, SV_GMAGIC);
 }
 
-char *
-Perl_mem_collxfrm(pTHX_ const char *input_string, STRLEN len, STRLEN *xlen)
-{
-    /* This function is retained for compatibility in case someone outside core
-     * is using this (but it is undocumented) */
-
-    PERL_ARGS_ASSERT_MEM_COLLXFRM;
-
-    return _mem_collxfrm(input_string, len, xlen, FALSE);
-}
-
 #endif
 
 bool
@@ -1101,36 +784,6 @@ Perl_sv_2bool(pTHX_ SV *const sv)
     return sv_2bool_flags(sv, SV_GMAGIC);
 }
 
-
-/*
-=for apidoc_section $custom
-=for apidoc custom_op_name
-Return the name for a given custom op.  This was once used by the C<OP_NAME>
-macro, but is no longer: it has only been kept for compatibility, and
-should not be used.
-
-=for apidoc custom_op_desc
-Return the description of a given custom op.  This was once used by the
-C<OP_DESC> macro, but is no longer: it has only been kept for
-compatibility, and should not be used.
-
-=cut
-*/
-
-const char*
-Perl_custom_op_name(pTHX_ const OP* o)
-{
-    PERL_ARGS_ASSERT_CUSTOM_OP_NAME;
-    return XopENTRYCUSTOM(o, xop_name);
-}
-
-const char*
-Perl_custom_op_desc(pTHX_ const OP* o)
-{
-    PERL_ARGS_ASSERT_CUSTOM_OP_DESC;
-    return XopENTRYCUSTOM(o, xop_desc);
-}
-
 CV *
 Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block)
 {
@@ -1151,46 +804,6 @@ Perl_sv_copypv(pTHX_ SV *const dsv, SV *
     sv_copypv_flags(dsv, ssv, SV_GMAGIC);
 }
 
-UV      /* Made into a function, so can be deprecated */
-NATIVE_TO_NEED(const UV enc, const UV ch)
-{
-    PERL_UNUSED_ARG(enc);
-    return ch;
-}
-
-UV      /* Made into a function, so can be deprecated */
-ASCII_TO_NEED(const UV enc, const UV ch)
-{
-    PERL_UNUSED_ARG(enc);
-    return ch;
-}
-
-/*
-=for apidoc_section $unicode
-=for apidoc is_utf8_char
-
-Tests if some arbitrary number of bytes begins in a valid UTF-8
-character.  Note that an INVARIANT (i.e. ASCII on non-EBCDIC machines)
-character is a valid UTF-8 character.  The actual number of bytes in the UTF-8
-character will be returned if it is valid, otherwise 0.
-
-This function is deprecated due to the possibility that malformed input could
-cause reading beyond the end of the input buffer.  Use L</isUTF8_CHAR>
-instead.
-
-=cut */
-
-STRLEN
-Perl_is_utf8_char(const U8 *s)
-{
-    PERL_ARGS_ASSERT_IS_UTF8_CHAR;
-
-    /* Assumes we have enough space, which is why this is deprecated.  But the
-     * UTF8_CHK_SKIP(s)) makes it safe for the common case of NUL-terminated
-     * strings */
-    return isUTF8_CHAR(s, s + UTF8_CHK_SKIP(s));
-}
-
 /*
 =for apidoc_section $unicode
 =for apidoc is_utf8_char_buf
@@ -1208,20 +821,6 @@ Perl_is_utf8_char_buf(const U8 *buf, con
     return isUTF8_CHAR(buf, buf_end);
 }
 
-/* DEPRECATED!
- * Like L</utf8_to_uvuni_buf>(), but should only be called when it is known that
- * there are no malformations in the input UTF-8 string C<s>.  Surrogates,
- * non-character code points, and non-Unicode code points are allowed */
-
-UV
-Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
-{
-    PERL_UNUSED_CONTEXT;
-    PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI;
-
-    return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
-}
-
 /*
 =for apidoc_section $unicode
 =for apidoc utf8_to_uvuni
@@ -1234,7 +833,7 @@ Some, but not all, UTF-8 malformations a
 malformed input could cause reading beyond the end of the input buffer, which
 is one reason why this function is deprecated.  The other is that only in
 extremely limited circumstances should the Unicode versus native code point be
-of any interest to you.  See L</utf8_to_uvuni_buf> for alternatives.
+of any interest to you.
 
 If C<s> points to one of the detected malformations, and UTF8 warnings are
 enabled, zero is returned and C<*retlen> is set (if C<retlen> doesn't point to
@@ -1256,25 +855,6 @@ Perl_utf8_to_uvuni(pTHX_ const U8 *s, ST
     return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
 }
 
-/*
-=for apidoc_section $pad
-=for apidoc pad_compname_type
-
-Looks up the type of the lexical variable at position C<po> in the
-currently-compiling pad.  If the variable is typed, the stash of the
-class to which it is typed is returned.  If not, C<NULL> is returned.
-
-Use L<perlintern/C<PAD_COMPNAME_TYPE>> instead.
-
-=cut
-*/
-
-HV *
-Perl_pad_compname_type(pTHX_ const PADOFFSET po)
-{
-    return PAD_COMPNAME_TYPE(po);
-}
-
 /* return ptr to little string in big string, NULL if not found */
 /* The original version of this routine was donated by Corey Satten. */
 
@@ -1347,31 +927,6 @@ Perl_utf8n_to_uvuni(pTHX_ const U8 *s, S
     PERL_ARGS_ASSERT_UTF8N_TO_UVUNI;
 
     return NATIVE_TO_UNI(utf8n_to_uvchr(s, curlen, retlen, flags));
-}
-
-/*
-=for apidoc_section $unicode
-=for apidoc uvuni_to_utf8_flags
-
-Instead you almost certainly want to use L<perlapi/uvchr_to_utf8> or
-L<perlapi/uvchr_to_utf8_flags>.
-
-This function is a deprecated synonym for L</uvoffuni_to_utf8_flags>,
-which itself, while not deprecated, should be used only in isolated
-circumstances.  These functions were useful for code that wanted to handle
-both EBCDIC and ASCII platforms with Unicode properties, but starting in Perl
-v5.20, the distinctions between the platforms have mostly been made invisible
-to most code, so this function is quite unlikely to be what you want.
-
-=cut
-*/
-
-U8 *
-Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
-{
-    PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS;
-
-    return uvoffuni_to_utf8_flags(d, uv, flags);
 }
 
 /*
Index: gnu/usr.bin/perl/metaconfig.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/metaconfig.h,v
diff -u -p -a -u -p -r1.6 metaconfig.h
--- gnu/usr.bin/perl/metaconfig.h	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/metaconfig.h	21 Feb 2024 15:47:02 -0000
@@ -14,9 +14,5 @@
  * they should be removed from here.
  *
  * HAS_NON_INT_BITFIELDS
- * HAS_STRXFRM_L
- * HAS_NL_LANGINFO_L
- * HAS_FFS
- * HAS_FFSL
  *
  */
Index: gnu/usr.bin/perl/mg.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mg.c,v
diff -u -p -a -u -p -r1.28 mg.c
--- gnu/usr.bin/perl/mg.c	8 Jul 2023 14:18:35 -0000	1.28
+++ gnu/usr.bin/perl/mg.c	21 Feb 2024 15:47:02 -0000
@@ -87,7 +87,7 @@ struct magic_state {
 /* MGS is typedef'ed to struct magic_state in perl.h */
 
 STATIC void
-S_save_magic_flags(pTHX_ I32 mgs_ix, SV *sv, U32 flags)
+S_save_magic_flags(pTHX_ SSize_t mgs_ix, SV *sv, U32 flags)
 {
     MGS* mgs;
     bool bumped = FALSE;
@@ -165,7 +165,7 @@ be >= C<SVt_PVMG>.  See C<L</sv_magic>>.
 int
 Perl_mg_get(pTHX_ SV *sv)
 {
-    const I32 mgs_ix = SSNEW(sizeof(MGS));
+    const SSize_t mgs_ix = SSNEW(sizeof(MGS));
     bool saved = FALSE;
     bool have_new = 0;
     bool taint_only = TRUE; /* the only get method seen is taint */
@@ -269,7 +269,7 @@ Do magic after a value is assigned to th
 int
 Perl_mg_set(pTHX_ SV *sv)
 {
-    const I32 mgs_ix = SSNEW(sizeof(MGS));
+    const SSize_t mgs_ix = SSNEW(sizeof(MGS));
     MAGIC* mg;
     MAGIC* nextmg;
 
@@ -297,42 +297,6 @@ Perl_mg_set(pTHX_ SV *sv)
     return 0;
 }
 
-/*
-=for apidoc mg_length
-
-Reports on the SV's length in bytes, calling length magic if available,
-but does not set the UTF8 flag on C<sv>.  It will fall back to 'get'
-magic if there is no 'length' magic, but with no indication as to
-whether it called 'get' magic.  It assumes C<sv> is a C<PVMG> or
-higher.  Use C<sv_len()> instead.
-
-=cut
-*/
-
-U32
-Perl_mg_length(pTHX_ SV *sv)
-{
-    MAGIC* mg;
-    STRLEN len;
-
-    PERL_ARGS_ASSERT_MG_LENGTH;
-
-    for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
-        const MGVTBL * const vtbl = mg->mg_virtual;
-        if (vtbl && vtbl->svt_len) {
-            const I32 mgs_ix = SSNEW(sizeof(MGS));
-            save_magic(mgs_ix, sv);
-            /* omit MGf_GSKIP -- not changed here */
-            len = vtbl->svt_len(aTHX_ sv, mg);
-            restore_magic(INT2PTR(void*, (IV)mgs_ix));
-            return len;
-        }
-    }
-
-    (void)SvPV_const(sv, len);
-    return len;
-}
-
 I32
 Perl_mg_size(pTHX_ SV *sv)
 {
@@ -343,7 +307,7 @@ Perl_mg_size(pTHX_ SV *sv)
     for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
         const MGVTBL* const vtbl = mg->mg_virtual;
         if (vtbl && vtbl->svt_len) {
-            const I32 mgs_ix = SSNEW(sizeof(MGS));
+            const SSize_t mgs_ix = SSNEW(sizeof(MGS));
             I32 len;
             save_magic(mgs_ix, sv);
             /* omit MGf_GSKIP -- not changed here */
@@ -376,7 +340,7 @@ Clear something magical that the SV repr
 int
 Perl_mg_clear(pTHX_ SV *sv)
 {
-    const I32 mgs_ix = SSNEW(sizeof(MGS));
+    const SSize_t mgs_ix = SSNEW(sizeof(MGS));
     MAGIC* mg;
     MAGIC *nextmg;
 
@@ -674,15 +638,15 @@ Perl_magic_regdata_cnt(pTHX_ SV *sv, MAG
             const SSize_t n = (SSize_t)mg->mg_obj;
             if (n == '+') {          /* @+ */
                 /* return the number possible */
-                return RX_NPARENS(rx);
+                return RX_LOGICAL_NPARENS(rx) ? RX_LOGICAL_NPARENS(rx) : RX_NPARENS(rx);
             } else {   /* @- @^CAPTURE  @{^CAPTURE} */
                 I32 paren = RX_LASTPAREN(rx);
 
                 /* return the last filled */
-                while ( paren >= 0
-                        && (RX_OFFS(rx)[paren].start == -1
-                            || RX_OFFS(rx)[paren].end == -1) )
+                while ( paren >= 0 && !RX_OFFS_VALID(rx,paren) )
                     paren--;
+                if (paren && RX_PARNO_TO_LOGICAL(rx))
+                    paren = RX_PARNO_TO_LOGICAL(rx)[paren];
                 if (n == '-') {
                     /* @- */
                     return (U32)paren;
@@ -703,32 +667,42 @@ int
 Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg)
 {
     PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET;
+    REGEXP * const rx = PL_curpm ? PM_GETRE(PL_curpm) : NULL;
 
-    if (PL_curpm) {
-        REGEXP * const rx = PM_GETRE(PL_curpm);
-        if (rx) {
-            const SSize_t n = (SSize_t)mg->mg_obj;
-            /* @{^CAPTURE} does not contain $&, so we need to increment by 1 */
-            const I32 paren = mg->mg_len
-                            + (n == '\003' ? 1 : 0);
-            SSize_t s;
-            SSize_t t;
-            if (paren < 0)
-                return 0;
-            if (paren <= (I32)RX_NPARENS(rx) &&
-                (s = RX_OFFS(rx)[paren].start) != -1 &&
-                (t = RX_OFFS(rx)[paren].end) != -1)
+    if (rx) {
+        const SSize_t n = (SSize_t)mg->mg_obj;
+        /* @{^CAPTURE} does not contain $&, so we need to increment by 1 */
+        const I32 paren = mg->mg_len
+                        + (n == '\003' ? 1 : 0);
+        
+        if (paren < 0)
+            return 0;
+
+        SSize_t s;
+        SSize_t t;
+        I32 logical_nparens = (I32)RX_LOGICAL_NPARENS(rx);
+
+        if (!logical_nparens) 
+            logical_nparens = (I32)RX_NPARENS(rx);
+
+        if (n != '+' && n != '-') {
+            CALLREG_NUMBUF_FETCH(rx,paren,sv);
+            return 0;
+        }
+        if (paren <= (I32)logical_nparens) {
+            I32 true_paren = RX_LOGICAL_TO_PARNO(rx)
+                             ? RX_LOGICAL_TO_PARNO(rx)[paren]
+                             : paren;
+            do {
+                if (((s = RX_OFFS_START(rx,true_paren)) != -1) &&
+                    ((t = RX_OFFS_END(rx,true_paren)) != -1))
                 {
                     SSize_t i;
 
-                    if (n == '+')                /* @+ */
+                    if (n == '+')               /* @+ */
                         i = t;
-                    else if (n == '-')           /* @- */
+                    else                        /* @- */
                         i = s;
-                    else {                        /* @^CAPTURE @{^CAPTURE} */
-                        CALLREG_NUMBUF_FETCH(rx,paren,sv);
-                        return 0;
-                    }
 
                     if (RX_MATCH_UTF8(rx)) {
                         const char * const b = RX_SUBBEG(rx);
@@ -741,6 +715,11 @@ Perl_magic_regdatum_get(pTHX_ SV *sv, MA
                     sv_setuv(sv, i);
                     return 0;
                 }
+                if (RX_PARNO_TO_LOGICAL_NEXT(rx))
+                    true_paren = RX_PARNO_TO_LOGICAL_NEXT(rx)[true_paren];
+                else
+                    break;
+            } while (true_paren);
         }
     }
     sv_set_undef(sv);
@@ -760,15 +739,16 @@ Perl_magic_regdatum_set(pTHX_ SV *sv, MA
     NORETURN_FUNCTION_END;
 }
 
-#define SvRTRIM(sv) STMT_START { \
-    if (SvPOK(sv)) { \
-        STRLEN len = SvCUR(sv); \
-        char * const p = SvPVX(sv); \
-        while (len > 0 && isSPACE(p[len-1])) \
-           --len; \
-        SvCUR_set(sv, len); \
-        p[len] = '\0'; \
-    } \
+#define SvRTRIM(sv) STMT_START {                \
+    SV * sv_ = sv;                              \
+    if (SvPOK(sv_)) {                           \
+        STRLEN len = SvCUR(sv_);                \
+        char * const p = SvPVX(sv_);            \
+        while (len > 0 && isSPACE(p[len-1]))    \
+           --len;                               \
+        SvCUR_set(sv_, len);                    \
+        p[len] = '\0';                          \
+    }                                           \
 } STMT_END
 
 void
@@ -795,6 +775,39 @@ Perl_emulate_cop_io(pTHX_ const COP *con
     }
 }
 
+int
+Perl_get_extended_os_errno(void)
+{
+
+#if defined(VMS)
+
+    return (int) vaxc$errno;
+
+#elif defined(OS2)
+
+    if (! (_emx_env & 0x200)) {	/* Under DOS */
+        return (int) errno;
+    }
+
+    if (errno != errno_isOS2) {
+        const int tmp = _syserrno();
+        if (tmp)	/* 2nd call to _syserrno() makes it 0 */
+            Perl_rc = tmp;
+    }
+    return (int) Perl_rc;
+
+#elif defined(WIN32)
+
+    return (int) GetLastError();
+
+#else
+
+    return (int) errno;
+
+#endif
+
+}
+
 STATIC void
 S_fixup_errno_string(pTHX_ SV* sv)
 {
@@ -808,37 +821,6 @@ S_fixup_errno_string(pTHX_ SV* sv)
     if(strEQ(SvPVX(sv), "")) {
         sv_catpv(sv, UNKNOWN_ERRNO_MSG);
     }
-    else {
-
-        /* In some locales the error string may come back as UTF-8, in which
-         * case we should turn on that flag.  This didn't use to happen, and to
-         * avoid as many possible backward compatibility issues as possible, we
-         * don't turn on the flag unless we have to.  So the flag stays off for
-         * an entirely invariant string.  We assume that if the string looks
-         * like UTF-8 in a single script, it really is UTF-8:  "text in any
-         * other encoding that uses bytes with the high bit set is extremely
-         * unlikely to pass a UTF-8 validity test"
-         * (http://en.wikipedia.org/wiki/Charset_detection).  There is a
-         * potential that we will get it wrong however, especially on short
-         * error message text, so do an additional check. */
-        if ( ! IN_BYTES  /* respect 'use bytes' */
-            && is_utf8_non_invariant_string((U8*) SvPVX_const(sv), SvCUR(sv))
-
-#ifdef USE_LOCALE_MESSAGES
-
-            &&  _is_cur_LC_category_utf8(LC_MESSAGES)
-
-#else   /* If can't check directly, at least can see if script is consistent,
-           under UTF-8, which gives us an extra measure of confidence. */
-
-            && isSCRIPT_RUN((const U8 *) SvPVX_const(sv), (U8 *) SvEND(sv),
-                            TRUE) /* Means assume UTF-8 */
-#endif
-
-        ) {
-            SvUTF8_on(sv);
-        }
-    }
 }
 
 /*
@@ -876,11 +858,16 @@ SV *
 Perl_sv_string_from_errnum(pTHX_ int errnum, SV *tgtsv)
 {
     char const *errstr;
+    utf8ness_t utf8ness;
+
     if(!tgtsv)
         tgtsv = newSV_type_mortal(SVt_PV);
-    errstr = my_strerror(errnum);
+    errstr = my_strerror(errnum, &utf8ness);
     if(errstr) {
         sv_setpv(tgtsv, errstr);
+        if (utf8ness == UTF8NESS_YES) {
+            SvUTF8_on(tgtsv);
+        }
         fixup_errno_string(tgtsv);
     } else {
         SvPVCLEAR(tgtsv);
@@ -899,11 +886,14 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
     I32 paren;
     const char *s = NULL;
     REGEXP *rx;
-    const char * const remaining = mg->mg_ptr + 1;
     char nextchar;
 
     PERL_ARGS_ASSERT_MAGIC_GET;
 
+    const char * const remaining = (mg->mg_ptr)
+                                   ? mg->mg_ptr + 1
+                                   : NULL;
+
     if (!mg->mg_ptr) {
         paren = mg->mg_len;
         if (PL_curpm && (rx = PM_GETRE(PL_curpm))) {
@@ -937,51 +927,73 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
         sv_setiv(sv, (IV)(PL_debug & DEBUG_MASK));
         break;
     case '\005':  /* ^E */
-         if (nextchar != '\0') {
-            if (strEQ(remaining, "NCODING"))
-                sv_set_undef(sv);
-            break;
-        }
+        {
+            if (nextchar != '\0') {
+                if (strEQ(remaining, "NCODING"))
+                    sv_set_undef(sv);
+                break;
+            }
 
 #if defined(VMS) || defined(OS2) || defined(WIN32)
+
+            int extended_errno = get_extended_os_errno();
+
 #   if defined(VMS)
-        {
             char msg[255];
             $DESCRIPTOR(msgdsc,msg);
-            sv_setnv(sv,(NV) vaxc$errno);
-            if (sys$getmsg(vaxc$errno,&msgdsc.dsc$w_length,&msgdsc,0,0) & 1)
+
+            sv_setnv(sv, (NV) extended_errno);
+            if (sys$getmsg(extended_errno,
+                           &msgdsc.dsc$w_length,
+                           &msgdsc,
+                           0, 0)
+                & 1)
                 sv_setpvn(sv,msgdsc.dsc$a_pointer,msgdsc.dsc$w_length);
             else
                 SvPVCLEAR(sv);
-        }
+
 #elif defined(OS2)
-        if (!(_emx_env & 0x200)) {	/* Under DOS */
-            sv_setnv(sv, (NV)errno);
-            sv_setpv(sv, errno ? my_strerror(errno) : "");
-        } else {
-            if (errno != errno_isOS2) {
-                const int tmp = _syserrno();
-                if (tmp)	/* 2nd call to _syserrno() makes it 0 */
-                    Perl_rc = tmp;
+            if (!(_emx_env & 0x200)) {	/* Under DOS */
+                sv_setnv(sv, (NV) extended_errno);
+                if (extended_errno) {
+                    utf8ness_t utf8ness;
+                    const char * errstr = my_strerror(extended_errno, &utf8ness);
+
+                    sv_setpv(sv, errstr);
+
+                    if (utf8ness == UTF8NESS_YES) {
+                        SvUTF8_on(sv);
+                    }
+                }
+                else {
+                    SvPVCLEAR(sv);
+                }
+            } else {
+                sv_setnv(sv, (NV) extended_errno);
+                sv_setpv(sv, os2error(extended_errno));
             }
-            sv_setnv(sv, (NV)Perl_rc);
-            sv_setpv(sv, os2error(Perl_rc));
-        }
-        if (SvOK(sv) && strNE(SvPVX(sv), "")) {
-            fixup_errno_string(sv);
-        }
+            if (SvOK(sv) && strNE(SvPVX(sv), "")) {
+                fixup_errno_string(sv);
+            }
+
 #   elif defined(WIN32)
-        {
-            const DWORD dwErr = GetLastError();
-            sv_setnv(sv, (NV)dwErr);
+            const DWORD dwErr = (DWORD) extended_errno;
+            sv_setnv(sv, (NV) dwErr);
             if (dwErr) {
                 PerlProc_GetOSError(sv, dwErr);
                 fixup_errno_string(sv);
+
+#     ifdef USE_LOCALE
+                if (   IN_LOCALE
+                    && get_win32_message_utf8ness(SvPV_nomg_const_nolen(sv)))
+                {
+                    SvUTF8_on(sv);
+                }
+#     endif
             }
             else
                 SvPVCLEAR(sv);
             SetLastError(dwErr);
-        }
 #   else
 #   error Missing code for platform
 #   endif
@@ -990,6 +1002,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
         break;
 #endif  /* End of platforms with special handling for $^E; others just fall
            through to $! */
+        }
     /* FALLTHROUGH */
 
     case '!':
@@ -1050,6 +1063,14 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
             else
                 sv_set_undef(sv);
         }
+        else if (strEQ(remaining, "AST_SUCCESSFUL_PATTERN")) {
+            if (PL_curpm && (rx = PM_GETRE(PL_curpm))) {
+                sv_setrv_inc(sv, MUTABLE_SV(rx));
+                sv_rvweaken(sv);
+            }
+            else
+                sv_set_undef(sv);
+        }
         break;
     case '\017':		/* ^O & ^OPEN */
         if (nextchar == '\0') {
@@ -1120,23 +1141,31 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
                 sv_setpvn(sv, WARN_ALLstring, WARNsize);
             }
             else {
-                sv_setpvn(sv, (char *) (PL_compiling.cop_warnings + 1),
-                          *PL_compiling.cop_warnings);
+                sv_setpvn(sv, PL_compiling.cop_warnings,
+                        RCPV_LEN(PL_compiling.cop_warnings));
             }
         }
         break;
-    case '+':
+    case '+':                   /* $+ */
         if (PL_curpm && (rx = PM_GETRE(PL_curpm))) {
             paren = RX_LASTPAREN(rx);
-            if (paren)
+            if (paren) {
+                I32 *parno_to_logical = RX_PARNO_TO_LOGICAL(rx);
+                if (parno_to_logical)
+                    paren = parno_to_logical[paren];
                 goto do_numbuf_fetch;
+            }
         }
         goto set_undef;
-    case '\016':		/* ^N */
+    case '\016':		/* $^N */
         if (PL_curpm && (rx = PM_GETRE(PL_curpm))) {
             paren = RX_LASTCLOSEPAREN(rx);
-            if (paren)
+            if (paren) {
+                I32 *parno_to_logical = RX_PARNO_TO_LOGICAL(rx);
+                if (parno_to_logical)
+                    paren = parno_to_logical[paren];
                 goto do_numbuf_fetch;
+            }
         }
         goto set_undef;
     case '.':
@@ -1296,7 +1325,7 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *m
         /* defined environment variables are byte strings; unfortunately
            there is no SvPVbyte_force_nomg(), so we must do this piecewise */
         (void)SvPV_force_nomg_nolen(sv);
-        sv_utf8_downgrade(sv, /* fail_ok */ TRUE);
+        (void)sv_utf8_downgrade(sv, /* fail_ok */ TRUE);
         if (SvUTF8(sv)) {
             Perl_ck_warner_d(aTHX_ packWARN(WARN_UTF8), "Wide character in %s", "setenv");
             SvUTF8_off(sv);
@@ -1356,6 +1385,15 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *m
             const char path_sep = ':';
 #endif
 
+#ifndef __VMS
+            /* Does this apply for VMS?
+             * Empty PATH on linux is treated same as ".", which is forbidden
+             * under taint. So check if the PATH variable is empty. */
+            if (!len) {
+                MgTAINTEDDIR_on(mg);
+                return 0;
+            }
+#endif
             /* set MGf_TAINTEDDIR if any component of the new path is
              * relative or world-writeable */
             while (s < strend) {
@@ -1372,7 +1410,8 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *m
                       /* Using Unix separator, e.g. under bash, so act line Unix */
                       || (PL_perllib_sep == ':' && *tmpbuf != '/')
 #else
-                      || *tmpbuf != '/'       /* no starting slash -- assume relative path */
+                      || *tmpbuf != '/' /* no starting slash -- assume relative path */
+                      || s == strend    /* trailing empty component -- same as "." */
 #endif
                       || (PerlLIO_stat(tmpbuf, &st) == 0 && (st.st_mode & 2)) ) {
                     MgTAINTEDDIR_on(mg);
@@ -1706,7 +1745,8 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *m
                For magic_clearsig, we don't change the warnings handler if it's
                set to the &PL_warnhook.  */
             svp = &PL_warnhook;
-        } else if (sv) {
+        }
+        else if (sv) {
             SV *tmp = sv_newmortal();
             Perl_croak(aTHX_ "No such hook: %s",
                                 pv_pretty(tmp, s, len, 0, NULL, NULL, 0));
@@ -1778,8 +1818,9 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *m
         if (i) {
             (void)rsignal(i, PL_csighandlerp);
         }
-        else
+        else {
             *svp = SvREFCNT_inc_simple_NN(sv);
+        }
     } else {
         if (sv && SvOK(sv)) {
             s = SvPV_force(sv, len);
@@ -1850,6 +1891,92 @@ Perl_magic_setsigall(pTHX_ SV* sv, MAGIC
 }
 
 int
+Perl_magic_clearhook(pTHX_ SV *sv, MAGIC *mg)
+{
+    PERL_ARGS_ASSERT_MAGIC_CLEARHOOK;
+
+    magic_sethook(NULL, mg);
+    return sv_unmagic(sv, mg->mg_type);
+}
+
+/* sv of NULL signifies that we're acting as magic_clearhook.  */
+int
+Perl_magic_sethook(pTHX_ SV *sv, MAGIC *mg)
+{
+    SV** svp = NULL;
+    STRLEN len;
+    const char *s = MgPV_const(mg,len);
+
+    PERL_ARGS_ASSERT_MAGIC_SETHOOK;
+
+    if (memEQs(s, len, "require__before")) {
+        svp = &PL_hook__require__before;
+    }
+    else if (memEQs(s, len, "require__after")) {
+        svp = &PL_hook__require__after;
+    }
+    else {
+        SV *tmp = sv_newmortal();
+        Perl_croak(aTHX_ "Attempt to set unknown hook '%s' in %%{^HOOK}",
+                            pv_pretty(tmp, s, len, 0, NULL, NULL, 0));
+    }
+    if (sv && SvOK(sv) && (!SvROK(sv) || SvTYPE(SvRV(sv))!= SVt_PVCV))
+        croak("${^HOOK}{%.*s} may only be a CODE reference or undef", (int)len, s);
+
+    if (svp) {
+        if (*svp)
+            SvREFCNT_dec(*svp);
+
+        if (sv)
+            *svp = SvREFCNT_inc_simple_NN(sv);
+        else
+            *svp = NULL;
+    }
+
+    return 0;
+}
+
+int
+Perl_magic_sethookall(pTHX_ SV* sv, MAGIC* mg)
+{
+    PERL_ARGS_ASSERT_MAGIC_SETHOOKALL;
+    PERL_UNUSED_ARG(mg);
+
+    if (PL_localizing == 1) {
+        SAVEGENERICSV(PL_hook__require__before);
+        PL_hook__require__before = NULL;
+        SAVEGENERICSV(PL_hook__require__after);
+        PL_hook__require__after = NULL;
+    }
+    else
+    if (PL_localizing == 2) {
+        HV* hv = (HV*)sv;
+        HE* current;
+        hv_iterinit(hv);
+        while ((current = hv_iternext(hv))) {
+            SV* hookelem = hv_iterval(hv, current);
+            mg_set(hookelem);
+        }
+    }
+    return 0;
+}
+
+int
+Perl_magic_clearhookall(pTHX_ SV* sv, MAGIC* mg)
+{
+    PERL_ARGS_ASSERT_MAGIC_CLEARHOOKALL;
+    PERL_UNUSED_ARG(mg);
+    PERL_UNUSED_ARG(sv);
+
+    SvREFCNT_dec_set_NULL(PL_hook__require__before);
+
+    SvREFCNT_dec_set_NULL(PL_hook__require__after);
+
+    return 0;
+}
+
+
+int
 Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
 {
     PERL_ARGS_ASSERT_MAGIC_SETISA;
@@ -1886,7 +2013,7 @@ Perl_magic_clearisa(pTHX_ SV *sv, MAGIC 
         I32 items = AvFILLp((AV *)mg->mg_obj) + 1;
         while (items--) {
             stash = GvSTASH((GV *)*svp++);
-            if (stash && HvENAME(stash)) mro_isa_changed_in(stash);
+            if (stash && HvHasENAME(stash)) mro_isa_changed_in(stash);
         }
 
         return 0;
@@ -1898,7 +2025,7 @@ Perl_magic_clearisa(pTHX_ SV *sv, MAGIC 
 
     /* The stash may have been detached from the symbol table, so check its
        name before doing anything. */
-    if (stash && HvENAME_get(stash))
+    if (stash && HvHasENAME(stash))
         mro_isa_changed_in(stash);
 
     return 0;
@@ -3040,7 +3167,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
         else if (strEQ(mg->mg_ptr+1, "ARNING_BITS")) {
             if ( ! (PL_dowarn & G_WARN_ALL_MASK)) {
                 if (!SvPOK(sv)) {
-            free_and_set_cop_warnings(&PL_compiling, pWARN_STD);
+                    free_and_set_cop_warnings(&PL_compiling, pWARN_STD);
                     break;
                 }
                 {
@@ -3052,23 +3179,24 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
                         not_all |= ptr[i] ^ 0x55;
                     }
                     if (!not_none) {
-                free_and_set_cop_warnings(&PL_compiling, pWARN_NONE);
+                        free_and_set_cop_warnings(&PL_compiling, pWARN_NONE);
                     } else if (len >= WARNsize && !not_all) {
-                free_and_set_cop_warnings(&PL_compiling, pWARN_ALL);
-                    PL_dowarn |= G_WARN_ONCE ;
-                }
-            else {
-                             STRLEN len;
-                             const char *const p = SvPV_const(sv, len);
-
-                             PL_compiling.cop_warnings
-                                 = Perl_new_warnings_bitfield(aTHX_ PL_compiling.cop_warnings,
-                                                         p, len);
+                        free_and_set_cop_warnings(&PL_compiling, pWARN_ALL);
+                        PL_dowarn |= G_WARN_ONCE ;
+                    }
+                    else {
+                        STRLEN len;
+                        const char *const p = SvPV_const(sv, len);
+
+                        free_and_set_cop_warnings(
+                            &PL_compiling,
+                            Perl_new_warnings_bitfield(aTHX_ PL_compiling.cop_warnings,
+                                                     p, len)
+                        );
 
-                     if (isWARN_on(PL_compiling.cop_warnings, WARN_ONCE))
+                        if (isWARN_on(PL_compiling.cop_warnings, WARN_ONCE))
                             PL_dowarn |= G_WARN_ONCE ;
-               }
-
+                    }
                 }
             }
         }
Index: gnu/usr.bin/perl/mg_names.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mg_names.inc,v
diff -u -p -a -u -p -r1.2 mg_names.inc
--- gnu/usr.bin/perl/mg_names.inc	13 Feb 2019 21:15:03 -0000	1.2
+++ gnu/usr.bin/perl/mg_names.inc	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    mg_names.inc
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
@@ -44,11 +44,15 @@
 	{ PERL_MAGIC_vstring,        "vstring(V)" },
 	{ PERL_MAGIC_vec,            "vec(v)" },
 	{ PERL_MAGIC_utf8,           "utf8(w)" },
+	{ PERL_MAGIC_destruct,       "destruct(X)" },
 	{ PERL_MAGIC_substr,         "substr(x)" },
 	{ PERL_MAGIC_nonelem,        "nonelem(Y)" },
 	{ PERL_MAGIC_defelem,        "defelem(y)" },
+	{ PERL_MAGIC_hook,           "hook(Z)" },
+	{ PERL_MAGIC_hookelem,       "hookelem(z)" },
 	{ PERL_MAGIC_lvref,          "lvref(\\)" },
 	{ PERL_MAGIC_checkcall,      "checkcall(])" },
+	{ PERL_MAGIC_extvalue,       "extvalue(^)" },
 	{ PERL_MAGIC_ext,            "ext(~)" },
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/mg_raw.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mg_raw.h,v
diff -u -p -a -u -p -r1.4 mg_raw.h
--- gnu/usr.bin/perl/mg_raw.h	15 Feb 2023 01:36:13 -0000	1.4
+++ gnu/usr.bin/perl/mg_raw.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    mg_raw.h
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
@@ -76,17 +76,25 @@
       "/* vec 'v' vec() lvalue */" },
     { 'w', "want_vtbl_utf8 | PERL_MAGIC_VALUE_MAGIC",
       "/* utf8 'w' Cached UTF-8 information */" },
+    { 'X', "want_vtbl_destruct | PERL_MAGIC_VALUE_MAGIC",
+      "/* destruct 'X' destruct callback */" },
     { 'x', "want_vtbl_substr | PERL_MAGIC_VALUE_MAGIC",
       "/* substr 'x' substr() lvalue */" },
     { 'Y', "want_vtbl_nonelem | PERL_MAGIC_VALUE_MAGIC",
       "/* nonelem 'Y' Array element that does not exist */" },
     { 'y', "want_vtbl_defelem | PERL_MAGIC_VALUE_MAGIC",
       "/* defelem 'y' Shadow \"foreach\" iterator variable / smart parameter vivification */" },
+    { 'Z', "want_vtbl_hook",
+      "/* hook 'Z' %{^HOOK} hash */" },
+    { 'z', "want_vtbl_hookelem",
+      "/* hookelem 'z' %{^HOOK} hash element */" },
     { '\\', "want_vtbl_lvref",
       "/* lvref '\\' Lvalue reference constructor */" },
     { ']', "want_vtbl_checkcall | PERL_MAGIC_VALUE_MAGIC",
       "/* checkcall ']' Inlining/mutation of call to this CV */" },
+    { '^', "magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE | PERL_MAGIC_VALUE_MAGIC",
+      "/* extvalue '^' Value magic available for use by extensions */" },
     { '~', "magic_vtable_max | PERL_MAGIC_READONLY_ACCEPTABLE",
-      "/* ext '~' Available for use by extensions */" },
+      "/* ext '~' Variable magic available for use by extensions */" },
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/mg_vtable.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mg_vtable.h,v
diff -u -p -a -u -p -r1.4 mg_vtable.h
--- gnu/usr.bin/perl/mg_vtable.h	15 Feb 2023 01:36:13 -0000	1.4
+++ gnu/usr.bin/perl/mg_vtable.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    mg_vtable.h
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
@@ -51,13 +51,17 @@
 #define PERL_MAGIC_vstring        'V' /* SV was vstring literal */
 #define PERL_MAGIC_vec            'v' /* vec() lvalue */
 #define PERL_MAGIC_utf8           'w' /* Cached UTF-8 information */
+#define PERL_MAGIC_destruct       'X' /* destruct callback */
 #define PERL_MAGIC_substr         'x' /* substr() lvalue */
 #define PERL_MAGIC_nonelem        'Y' /* Array element that does not exist */
 #define PERL_MAGIC_defelem        'y' /* Shadow "foreach" iterator variable /
                                          smart parameter vivification */
+#define PERL_MAGIC_hook           'Z' /* %{^HOOK} hash */
+#define PERL_MAGIC_hookelem       'z' /* %{^HOOK} hash element */
 #define PERL_MAGIC_lvref          '\\' /* Lvalue reference constructor */
 #define PERL_MAGIC_checkcall      ']' /* Inlining/mutation of call to this CV */
-#define PERL_MAGIC_ext            '~' /* Available for use by extensions */
+#define PERL_MAGIC_extvalue       '^' /* Value magic available for use by extensions */
+#define PERL_MAGIC_ext            '~' /* Variable magic available for use by extensions */
 
 enum {		/* pass one of these to get_vtbl */
     want_vtbl_arylen,
@@ -68,10 +72,13 @@ enum {		/* pass one of these to get_vtbl
     want_vtbl_dbline,
     want_vtbl_debugvar,
     want_vtbl_defelem,
+    want_vtbl_destruct,
     want_vtbl_env,
     want_vtbl_envelem,
     want_vtbl_hints,
     want_vtbl_hintselem,
+    want_vtbl_hook,
+    want_vtbl_hookelem,
     want_vtbl_isa,
     want_vtbl_isaelem,
     want_vtbl_lvref,
@@ -106,10 +113,13 @@ EXTCONST char * const PL_magic_vtable_na
     "dbline",
     "debugvar",
     "defelem",
+    "destruct",
     "env",
     "envelem",
     "hints",
     "hintselem",
+    "hook",
+    "hookelem",
     "isa",
     "isaelem",
     "lvref",
@@ -167,10 +177,13 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable
   { 0, Perl_magic_setdbline, 0, 0, 0, 0, 0, 0 },
   { Perl_magic_getdebugvar, Perl_magic_setdebugvar, 0, 0, 0, 0, 0, 0 },
   { Perl_magic_getdefelem, Perl_magic_setdefelem, 0, 0, 0, 0, 0, 0 },
+  { 0, 0, 0, 0, Perl_magic_freedestruct, 0, 0, 0 },
   { 0, Perl_magic_set_all_env, 0, Perl_magic_clear_all_env, 0, 0, 0, 0 },
   { 0, Perl_magic_setenv, 0, Perl_magic_clearenv, 0, 0, 0, 0 },
   { 0, 0, 0, Perl_magic_clearhints, 0, 0, 0, 0 },
   { 0, Perl_magic_sethint, 0, Perl_magic_clearhint, 0, 0, 0, 0 },
+  { 0, Perl_magic_sethookall, 0, Perl_magic_clearhookall, 0, 0, 0, 0 },
+  { 0, Perl_magic_sethook, 0, Perl_magic_clearhook, 0, 0, 0, 0 },
   { 0, Perl_magic_setisa, 0, Perl_magic_clearisa, 0, 0, 0, 0 },
   { 0, Perl_magic_setisa, 0, 0, 0, 0, 0, 0 },
   { 0, Perl_magic_setlvref, 0, 0, 0, 0, 0, 0 },
@@ -213,11 +226,14 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable
 #define PL_vtbl_dbline PL_magic_vtables[want_vtbl_dbline]
 #define PL_vtbl_debugvar PL_magic_vtables[want_vtbl_debugvar]
 #define PL_vtbl_defelem PL_magic_vtables[want_vtbl_defelem]
+#define PL_vtbl_destruct PL_magic_vtables[want_vtbl_destruct]
 #define PL_vtbl_env PL_magic_vtables[want_vtbl_env]
 #define PL_vtbl_envelem PL_magic_vtables[want_vtbl_envelem]
 #define PL_vtbl_fm PL_magic_vtables[want_vtbl_fm]
 #define PL_vtbl_hints PL_magic_vtables[want_vtbl_hints]
 #define PL_vtbl_hintselem PL_magic_vtables[want_vtbl_hintselem]
+#define PL_vtbl_hook PL_magic_vtables[want_vtbl_hook]
+#define PL_vtbl_hookelem PL_magic_vtables[want_vtbl_hookelem]
 #define PL_vtbl_isa PL_magic_vtables[want_vtbl_isa]
 #define PL_vtbl_isaelem PL_magic_vtables[want_vtbl_isaelem]
 #define PL_vtbl_lvref PL_magic_vtables[want_vtbl_lvref]
@@ -240,4 +256,4 @@ EXT_MGVTBL PL_magic_vtables[magic_vtable
 #define PL_vtbl_uvar PL_magic_vtables[want_vtbl_uvar]
 #define PL_vtbl_vec PL_magic_vtables[want_vtbl_vec]
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/miniperlmain.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/miniperlmain.c,v
diff -u -p -a -u -p -r1.18 miniperlmain.c
--- gnu/usr.bin/perl/miniperlmain.c	15 Feb 2023 01:36:13 -0000	1.18
+++ gnu/usr.bin/perl/miniperlmain.c	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen/miniperlmain.pl and ExtUtils::Miniperl.
    Any changes made here will be lost!
@@ -73,9 +73,6 @@ main(int argc, char **argv, char **env)
 #ifndef NO_ENV_ARRAY_IN_MAIN
     PERL_UNUSED_ARG(env);
 #endif
-#ifndef PERL_USE_SAFE_PUTENV
-    PL_use_safe_putenv = FALSE;
-#endif /* PERL_USE_SAFE_PUTENV */
 
     /* if user wants control of gprof profiling off by default */
     /* noop unless Configure is given -Accflags=-DPERL_GPROF_CONTROL */
@@ -112,8 +109,29 @@ main(int argc, char **argv, char **env)
 	PL_perl_destruct_level = 0;
     }
     PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
-    if (!perl_parse(my_perl, xs_init, argc, argv, (char **)NULL))
+    if (!perl_parse(my_perl, xs_init, argc, argv, (char **)NULL)) {
+
+        /* perl_parse() may end up starting its own run loops, which
+         * might end up "leaking" PL_restartop from the parse phase into
+         * the run phase which then ends up confusing run_body(). This
+         * leakage shouldn't happen and if it does its a bug.
+         *
+         * Note we do not do this assert in perl_run() or perl_parse()
+         * as there are modules out there which explicitly set
+         * PL_restartop before calling perl_run() directly from XS code
+         * (Coro), and it is conceivable PL_restartop could be set prior
+         * to calling perl_parse() by XS code as well.
+         *
+         * What we want to check is that the top level perl_parse(),
+         * perl_run() pairing does not allow a leaking PL_restartop, as
+         * that indicates a bug in perl. By putting the assert here we
+         * can validate that Perl itself is operating correctly without
+         * risking breakage to XS code under DEBUGGING. - Yves
+         */
+        assert(!PL_restartop);
+
         perl_run(my_perl);
+    }
 
 #ifndef PERL_MICRO
     /* Unregister our signal handler before destroying my_perl */
@@ -128,19 +146,6 @@ main(int argc, char **argv, char **env)
 
     perl_free(my_perl);
 
-#if defined(USE_ENVIRON_ARRAY) && defined(PERL_TRACK_MEMPOOL) && !defined(NO_ENV_ARRAY_IN_MAIN)
-    /*
-     * The old environment may have been freed by perl_free()
-     * when PERL_TRACK_MEMPOOL is defined, but without having
-     * been restored by perl_destruct() before (this is only
-     * done if destruct_level > 0).
-     *
-     * It is important to have a valid environment for atexit()
-     * routines that are eventually called.
-     */
-    environ = env;
-#endif
-
     PERL_SYS_TERM();
 
     exit(exitstatus);
@@ -156,4 +161,4 @@ xs_init(pTHX)
     PERL_UNUSED_CONTEXT;
 }
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/mkppport
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mkppport,v
diff -u -p -a -u -p -r1.5 mkppport
--- gnu/usr.bin/perl/mkppport	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/mkppport	21 Feb 2024 15:47:02 -0000
@@ -1,3 +1,5 @@
+#!perl
+
 use strict;
 use warnings;
 
Index: gnu/usr.bin/perl/mro_core.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/mro_core.c,v
diff -u -p -a -u -p -r1.5 mro_core.c
--- gnu/usr.bin/perl/mro_core.c	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/mro_core.c	21 Feb 2024 15:47:02 -0000
@@ -28,6 +28,7 @@ Also see L<perlmroapi>.
 
 #include "EXTERN.h"
 #define PERL_IN_MRO_C
+#define PERL_IN_MRO_CORE_C
 #include "perl.h"
 
 static const struct mro_alg dfs_alg =
@@ -215,7 +216,8 @@ Perl_mro_meta_dup(pTHX_ struct mro_meta*
 =for apidoc mro_get_linear_isa_dfs
 
 Returns the Depth-First Search linearization of C<@ISA>
-the given stash.  The return value is a read-only AV*.
+the given stash.  The return value is a read-only AV*
+whose elements are string SVs giving class names.
 C<level> should be 0 (it is used internally in this
 function's recursion).
 
@@ -268,7 +270,7 @@ S_mro_get_linear_isa_dfs(pTHX_ HV *stash
     /* We use this later in this function, but don't need a reference to it
        beyond the end of this function, so reference count is fine.  */
     our_name = newSVhek(stashhek);
-    av_push(retval, our_name); /* add ourselves at the top */
+    av_push_simple(retval, our_name); /* add ourselves at the top */
 
     /* fetch our @ISA */
     gvp = (GV**)hv_fetchs(stash, "ISA", FALSE);
@@ -326,7 +328,7 @@ S_mro_get_linear_isa_dfs(pTHX_ HV *stash
 
                         HeVAL(he) = &PL_sv_undef;
                         sv_sethek(val, key);
-                        av_push(retval, val);
+                        av_push_simple(retval, val);
                     }
                 }
             } else {
@@ -358,7 +360,7 @@ S_mro_get_linear_isa_dfs(pTHX_ HV *stash
                        as if we'd copied it from what theirs should be.  */
                     stored = MUTABLE_HV(newSV_type_mortal(SVt_PVHV));
                     (void) hv_stores(stored, "UNIVERSAL", &PL_sv_undef);
-                    av_push(retval,
+                    av_push_simple(retval,
                             newSVhek(HeKEY_hek(hv_store_ent(stored, sv,
                                                             &PL_sv_undef, 0))));
                 }
@@ -398,7 +400,7 @@ S_mro_get_linear_isa_dfs(pTHX_ HV *stash
 Returns the mro linearisation for the given stash.  By default, this
 will be whatever C<mro_get_linear_isa_dfs> returns unless some
 other MRO is in effect for the stash.  The return value is a
-read-only AV*.
+read-only AV* whose values are string SVs giving class names.
 
 You are responsible for C<SvREFCNT_inc()> on the
 return value if you plan to store it anywhere
@@ -415,7 +417,7 @@ Perl_mro_get_linear_isa(pTHX_ HV *stash)
     AV *isa;
 
     PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA;
-    if(!SvOOK(stash))
+    if(!HvHasAUX(stash))
         Perl_croak(aTHX_ "Can't linearize anonymous symbol table");
 
     meta = HvMROMETA(stash);
@@ -425,8 +427,8 @@ Perl_mro_get_linear_isa(pTHX_ HV *stash)
 
     if (meta->mro_which != &dfs_alg) { /* skip for dfs, for speed */
         SV * const namesv =
-            (HvENAME(stash)||HvNAME(stash))
-              ? newSVhek(HvENAME_HEK(stash)
+            (HvHasENAME_HEK(stash) || HvHasNAME(stash))
+              ? newSVhek(HvHasENAME_HEK(stash)
                           ? HvENAME_HEK(stash)
                           : HvNAME_HEK(stash))
               : NULL;
@@ -787,12 +789,12 @@ Perl_mro_package_moved(pTHX_ HV * const 
     if(!(flags & 1)) {
         SV **svp;
         if(
-         !GvSTASH(gv) || !HvENAME(GvSTASH(gv)) ||
+         !GvSTASH(gv) || !HvHasENAME(GvSTASH(gv)) ||
          !(svp = hv_fetchhek(GvSTASH(gv), GvNAME_HEK(gv), 0)) ||
          *svp != (SV *)gv
         ) return;
     }
-    assert(SvOOK(GvSTASH(gv)));
+    assert(HvHasAUX(GvSTASH(gv)));
     assert(GvNAMELEN(gv));
     assert(GvNAME(gv)[GvNAMELEN(gv) - 1] == ':');
     assert(GvNAMELEN(gv) == 1 || GvNAME(gv)[GvNAMELEN(gv) - 2] == ':');
@@ -812,7 +814,7 @@ Perl_mro_package_moved(pTHX_ HV * const 
                 : newSVpvs_flags("",  SVs_TEMP);
         }
         else {
-            namesv = sv_2mortal(newSVhek(*namep));
+            namesv = newSVhek_mortal(*namep);
             if (GvNAMELEN(gv) == 1) sv_catpvs(namesv, ":");
             else                    sv_catpvs(namesv, "::");
         }
@@ -846,7 +848,7 @@ Perl_mro_package_moved(pTHX_ HV * const 
                     GvNAMEUTF8(gv) ? SV_CATUTF8 : SV_CATBYTES
                 );
             }
-            av_push((AV *)namesv, aname);
+            av_push_simple((AV *)namesv, aname);
         }
     }
 
@@ -903,7 +905,7 @@ S_mro_gather_and_rename(pTHX_ HV * const
     HE *entry;
     I32 riter = -1;
     I32 items = 0;
-    const bool stash_had_name = stash && HvENAME(stash);
+    const bool stash_had_name = stash && HvHasENAME(stash);
     bool fetched_isarev = FALSE;
     HV *seen = NULL;
     HV *isarev = NULL;
@@ -1163,7 +1165,7 @@ S_mro_gather_and_rename(pTHX_ HV * const
                             stashentry && *stashentry && isGV(*stashentry)
                          && (substash = GvHV(*stashentry))
                         )
-                     || (oldsubstash && HvENAME_get(oldsubstash))
+                     || (oldsubstash && HvHasENAME(oldsubstash))
                     )
                     {
                         /* Add :: and the key (minus the trailing ::)
@@ -1186,7 +1188,7 @@ S_mro_gather_and_rename(pTHX_ HV * const
                                            ? SV_CATUTF8 : SV_CATBYTES
                                     );
                                 }
-                                av_push((AV *)subname, aname);
+                                av_push_simple((AV *)subname, aname);
                             }
                         }
                         else {
@@ -1269,7 +1271,7 @@ S_mro_gather_and_rename(pTHX_ HV * const
                                            ? SV_CATUTF8 : SV_CATBYTES
                                     );
                                 }
-                                av_push((AV *)subname, aname);
+                                av_push_simple((AV *)subname, aname);
                             }
                         }
                         else {
@@ -1327,16 +1329,17 @@ via, C<mro::method_changed_in(classname)
 void
 Perl_mro_method_changed_in(pTHX_ HV *stash)
 {
-    const char * const stashname = HvENAME_get(stash);
-    const STRLEN stashname_len = HvENAMELEN_get(stash);
-
-    SV ** const svp = hv_fetchhek(PL_isarev, HvENAME_HEK(stash), 0);
-    HV * const isarev = svp ? MUTABLE_HV(*svp) : NULL;
-
     PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN;
 
+    const char * const stashname = HvENAME_get(stash);
+
     if(!stashname)
         Perl_croak(aTHX_ "Can't call mro_method_changed_in() on anonymous symbol table");
+
+    const STRLEN stashname_len = HvENAMELEN_get(stash);
+
+    SV ** const svp = hv_fetchhek(PL_isarev, HvENAME_HEK_NN(stash), 0);
+    HV * const isarev = svp ? MUTABLE_HV(*svp) : NULL;
 
     /* Inc the package generation, since a local method changed */
     HvMROMETA(stash)->pkg_gen++;
Index: gnu/usr.bin/perl/numeric.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/numeric.c,v
diff -u -p -a -u -p -r1.11 numeric.c
--- gnu/usr.bin/perl/numeric.c	15 Feb 2023 01:38:21 -0000	1.11
+++ gnu/usr.bin/perl/numeric.c	21 Feb 2024 15:47:02 -0000
@@ -426,42 +426,42 @@ Perl_grok_bin_oct_hex(pTHX_ const char *
       case 0:
           return 0;
       default:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 7:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 6:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 5:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 4:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 3:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 2:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
           s++;
           /* FALLTHROUGH */
       case 1:
-          if (UNLIKELY(! _generic_isCC(*s, class_bit)))  break;
+          if (UNLIKELY(! generic_isCC_(*s, class_bit)))  break;
           value = (value << shift) | XDIGIT_VALUE(*s);
 
           if (LIKELY(len <= 8)) {
@@ -477,7 +477,7 @@ Perl_grok_bin_oct_hex(pTHX_ const char *
     len -= bytes_so_far;
 
     for (; len--; s++) {
-        if (_generic_isCC(*s, class_bit)) {
+        if (generic_isCC_(*s, class_bit)) {
             /* Write it in this wonky order with a goto to attempt to get the
                compiler to make the common case integer-only loop pretty tight.
                With gcc seems to be much straighter code than old scan_hex.
@@ -527,7 +527,7 @@ Perl_grok_bin_oct_hex(pTHX_ const char *
         if (   *s == '_'
             && len
             && allow_underscores
-            && _generic_isCC(s[1], class_bit)
+            && generic_isCC_(s[1], class_bit)
 
                 /* Don't allow a leading underscore if the only-medial bit is
                  * set */
@@ -924,7 +924,7 @@ Perl_grok_infnan(pTHX_ const char** sp, 
                      * of UVs and NVs can be different. */
 
                     if ((nantype & IS_NUMBER_NOT_INT) ||
-                        !(nantype && IS_NUMBER_IN_UV)) {
+                        !(nantype & IS_NUMBER_IN_UV)) {
                         /* treat "NaN(invalid)" the same as "NaNgarbage" */
                         return trail;
                     }
@@ -1277,7 +1277,7 @@ no leading zeros).  Otherwise it returns
 value.
 
 If you constrain the portion of C<pv> that is looked at by this function (by
-passing a non-NULL C<endptr>), and if the intial bytes of that portion form a
+passing a non-NULL C<endptr>), and if the initial bytes of that portion form a
 valid value, it will return TRUE, setting C<*endptr> to the byte following the
 final digit of the value.  But if there is no constraint at what's looked at,
 all of C<pv> must be valid in order for TRUE to be returned.  C<*endptr> is
@@ -1492,7 +1492,7 @@ N.B. C<s> must be NUL terminated.
     {
         DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
         STORE_LC_NUMERIC_SET_TO_NEEDED();
-        if (! (PL_numeric_radix_sv && IN_LC(LC_NUMERIC))) {
+        if (! IN_LC(LC_NUMERIC)) {
             ATOF(s,x);
         }
         else {
Index: gnu/usr.bin/perl/op.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/op.c,v
diff -u -p -a -u -p -r1.27 op.c
--- gnu/usr.bin/perl/op.c	8 Jul 2023 14:18:35 -0000	1.27
+++ gnu/usr.bin/perl/op.c	21 Feb 2024 15:47:02 -0000
@@ -19,8 +19,8 @@
  *     [p.23 of _The Lord of the Rings_, I/i: "A Long-Expected Party"]
  */
 
-/* This file contains the functions that create, manipulate and optimize
- * the OP structures that hold a compiled perl program.
+/* This file contains the functions that create and manipulate the OP
+ * structures that hold a compiled perl program.
  *
  * Note that during the build of miniperl, a temporary copy of this file
  * is made, called opmini.c.
@@ -167,7 +167,6 @@ recursive, but it's recursive on basic b
 #include "invlist_inline.h"
 
 #define CALL_PEEP(o) PL_peepp(aTHX_ o)
-#define CALL_RPEEP(o) PL_rpeepp(aTHX_ o)
 #define CALL_OPFREEHOOK(o) if (PL_opfreehook) PL_opfreehook(aTHX_ o)
 
 static const char array_passed_to_stat[] = "Array passed to stat will be coerced to a scalar";
@@ -177,9 +176,11 @@ static const char array_passed_to_stat[]
  * first node in op_p.
  */
 
-STATIC void
-S_prune_chain_head(OP** op_p)
+void
+Perl_op_prune_chain_head(OP** op_p)
 {
+    PERL_ARGS_ASSERT_OP_PRUNE_CHAIN_HEAD;
+
     while (*op_p
         && (   (*op_p)->op_type == OP_NULL
             || (*op_p)->op_type == OP_SCOPE
@@ -512,7 +513,7 @@ Perl_Slab_Free(pTHX_ void *op)
 void
 Perl_opslab_free_nopad(pTHX_ OPSLAB *slab)
 {
-    const bool havepad = !!PL_comppad;
+    const bool havepad = cBOOL(PL_comppad);
     PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD;
     if (havepad) {
         ENTER;
@@ -654,12 +655,6 @@ Perl_op_refcnt_dec(pTHX_ OP *o)
 
 #define RETURN_UNLIMITED_NUMBER (PERL_INT_MAX / 2)
 
-#define OpTYPE_set(o,type) \
-    STMT_START {				\
-        o->op_type = (OPCODE)type;		\
-        o->op_ppaddr = PL_ppaddr[type];		\
-    } STMT_END
-
 STATIC OP *
 S_no_fh_allowed(pTHX_ OP *o)
 {
@@ -706,8 +701,8 @@ S_bad_type_gv(pTHX_ I32 n, GV *gv, const
                  (int)n, SVfARG(namesv), t, OP_DESC(kid)), SvUTF8(namesv));
 }
 
-STATIC void
-S_no_bareword_allowed(pTHX_ OP *o)
+void
+Perl_no_bareword_allowed(pTHX_ OP *o)
 {
     PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED;
 
@@ -777,9 +772,15 @@ Perl_allocmy(pTHX_ const char *const nam
 
     /* allocate a spare slot and store the name in that slot */
 
-    off = pad_add_name_pvn(name, len,
-                       (is_our ? padadd_OUR :
-                        PL_parser->in_my == KEY_state ? padadd_STATE : 0),
+    U32 addflags = 0;
+    if(is_our)
+        addflags |= padadd_OUR;
+    else if(PL_parser->in_my == KEY_state)
+        addflags |= padadd_STATE;
+    else if(PL_parser->in_my == KEY_field)
+        addflags |= padadd_FIELD;
+
+    off = pad_add_name_pvn(name, len, addflags,
                     PL_parser->in_my_stash,
                     (is_our
                         /* $_ is always in main::, even with our */
@@ -854,6 +855,15 @@ S_op_destroy(pTHX_ OP *o)
 Free an op and its children. Only use this when an op is no longer linked
 to from any optree.
 
+Remember that any op with C<OPf_KIDS> set is expected to have a valid
+C<op_first> pointer.  If you are attempting to free an op but preserve its
+child op, make sure to clear that flag before calling C<op_free()>.  For
+example:
+
+    OP *kid = o->op_first; o->op_first = NULL;
+    o->op_flags &= ~OPf_KIDS;
+    op_free(o);
+
 =cut
 */
 
@@ -903,6 +913,12 @@ Perl_op_free(pTHX_ OP *o)
         /* free child ops before ourself, (then free ourself "on the
          * way back up") */
 
+        /* Ensure the caller maintains the relationship between OPf_KIDS and
+         * op_first != NULL when restructuring the tree
+         *   https://github.com/Perl/perl5/issues/20764
+         */
+        assert(!(o->op_flags & OPf_KIDS) || cUNOPo->op_first);
+
         if (!went_up && o->op_flags & OPf_KIDS) {
             next_op = cUNOPo->op_first;
             continue;
@@ -1064,19 +1080,19 @@ Perl_op_clear(pTHX_ OP *o)
     case OP_METHOD_REDIR:
     case OP_METHOD_REDIR_SUPER:
 #ifdef USE_ITHREADS
-        if (cMETHOPx(o)->op_rclass_targ) {
-            pad_swipe(cMETHOPx(o)->op_rclass_targ, 1);
-            cMETHOPx(o)->op_rclass_targ = 0;
+        if (cMETHOPo->op_rclass_targ) {
+            pad_swipe(cMETHOPo->op_rclass_targ, 1);
+            cMETHOPo->op_rclass_targ = 0;
         }
 #else
-        SvREFCNT_dec(cMETHOPx(o)->op_rclass_sv);
-        cMETHOPx(o)->op_rclass_sv = NULL;
+        SvREFCNT_dec(cMETHOPo->op_rclass_sv);
+        cMETHOPo->op_rclass_sv = NULL;
 #endif
         /* FALLTHROUGH */
     case OP_METHOD_NAMED:
     case OP_METHOD_SUPER:
-        SvREFCNT_dec(cMETHOPx(o)->op_u.op_meth_sv);
-        cMETHOPx(o)->op_u.op_meth_sv = NULL;
+        SvREFCNT_dec(cMETHOPo->op_u.op_meth_sv);
+        cMETHOPo->op_u.op_meth_sv = NULL;
 #ifdef USE_ITHREADS
         if (o->op_targ) {
             pad_swipe(o->op_targ, 1);
@@ -1303,6 +1319,22 @@ Perl_op_clear(pTHX_ OP *o)
             PerlMemShared_free(cUNOP_AUXo->op_aux - 1);
         }
         break;
+
+    case OP_METHSTART:
+        {
+            UNOP_AUX_item *aux = cUNOP_AUXo->op_aux;
+            /* Every item in aux is a UV, so nothing in it to free */
+            Safefree(aux);
+        }
+        break;
+
+    case OP_INITFIELD:
+        {
+            UNOP_AUX_item *aux = cUNOP_AUXo->op_aux;
+            /* Every item in aux is a UV, so nothing in it to free */
+            Safefree(aux);
+        }
+        break;
     }
 
     if (o->op_targ > 0) {
@@ -1336,7 +1368,8 @@ S_cop_free(pTHX_ COP* cop)
     }
     CopFILE_free(cop);
     if (! specialWARN(cop->cop_warnings))
-        PerlMemShared_free(cop->cop_warnings);
+        cop->cop_warnings = rcpv_free(cop->cop_warnings);
+
     cophh_free(CopHINTHASH_get(cop));
     if (PL_curcop == cop)
        PL_curcop = NULL;
@@ -1391,7 +1424,7 @@ S_find_and_forget_pmops(pTHX_ OP *o)
         case OP_SPLIT:
         case OP_MATCH:
         case OP_QR:
-            forget_pmop((PMOP*)o);
+            forget_pmop(cPMOPo);
         }
 
         if (o->op_flags & OPf_KIDS) {
@@ -1833,105 +1866,80 @@ S_op_varname_subscript(pTHX_ const OP *o
     }
 }
 
-static SV *
-S_op_varname(pTHX_ const OP *o)
+SV *
+Perl_op_varname(pTHX_ const OP *o)
 {
+    PERL_ARGS_ASSERT_OP_VARNAME;
+
     return S_op_varname_subscript(aTHX_ o, 1);
 }
 
-static void
-S_op_pretty(pTHX_ const OP *o, SV **retsv, const char **retpv)
-{ /* or not so pretty :-) */
-    if (o->op_type == OP_CONST) {
-        *retsv = cSVOPo_sv;
-        if (SvPOK(*retsv)) {
-            SV *sv = *retsv;
-            *retsv = sv_newmortal();
-            pv_pretty(*retsv, SvPVX_const(sv), SvCUR(sv), 32, NULL, NULL,
-                      PERL_PV_PRETTY_DUMP |PERL_PV_ESCAPE_UNI_DETECT);
-        }
-        else if (!SvOK(*retsv))
-            *retpv = "undef";
-    }
-    else *retpv = "...";
-}
+/*
 
-static void
-S_scalar_slice_warning(pTHX_ const OP *o)
+Warns that an access of a single element from a named container variable in
+scalar context might not be what the programmer wanted. The container
+variable's (sigiled, full) name is given by C<name>, and the key to access
+it is given by the C<SVOP_sv> of the C<OP_CONST> op given by C<o>.
+C<is_hash> selects whether it prints using {KEY} or [KEY] brackets.
+
+C<is_slice> selects between two different messages used in different places.
+ */
+void
+Perl_warn_elem_scalar_context(pTHX_ const OP *o, SV *name, bool is_hash, bool is_slice)
 {
-    OP *kid;
-    const bool h = o->op_type == OP_HSLICE
-                || (o->op_type == OP_NULL && o->op_targ == OP_HSLICE);
-    const char lbrack =
-        h ? '{' : '[';
-    const char rbrack =
-        h ? '}' : ']';
-    SV *name;
-    SV *keysv = NULL; /* just to silence compiler warnings */
-    const char *key = NULL;
+    PERL_ARGS_ASSERT_WARN_ELEM_SCALAR_CONTEXT;
 
-    if (!(o->op_private & OPpSLICEWARNING))
-        return;
-    if (PL_parser && PL_parser->error_count)
-        /* This warning can be nonsensical when there is a syntax error. */
-        return;
+    SV *keysv = NULL;
+    const char *keypv = NULL;
 
-    kid = cLISTOPo->op_first;
-    kid = OpSIBLING(kid); /* get past pushmark */
-    /* weed out false positives: any ops that can return lists */
-    switch (kid->op_type) {
-    case OP_BACKTICK:
-    case OP_GLOB:
-    case OP_READLINE:
-    case OP_MATCH:
-    case OP_RV2AV:
-    case OP_EACH:
-    case OP_VALUES:
-    case OP_KEYS:
-    case OP_SPLIT:
-    case OP_LIST:
-    case OP_SORT:
-    case OP_REVERSE:
-    case OP_ENTERSUB:
-    case OP_CALLER:
-    case OP_LSTAT:
-    case OP_STAT:
-    case OP_READDIR:
-    case OP_SYSTEM:
-    case OP_TMS:
-    case OP_LOCALTIME:
-    case OP_GMTIME:
-    case OP_ENTEREVAL:
-        return;
-    }
+    const char lbrack = is_hash ? '{' : '[';
+    const char rbrack = is_hash ? '}' : ']';
 
-    /* Don't warn if we have a nulled list either. */
-    if (kid->op_type == OP_NULL && kid->op_targ == OP_LIST)
-        return;
+    if (o->op_type == OP_CONST) {
+        keysv = cSVOPo_sv;
+        if (SvPOK(keysv)) {
+            SV *sv = keysv;
+            keysv = sv_newmortal();
+            pv_pretty(keysv, SvPVX_const(sv), SvCUR(sv), 32, NULL, NULL,
+                      PERL_PV_PRETTY_DUMP |PERL_PV_ESCAPE_UNI_DETECT);
+        }
+        else if (!SvOK(keysv))
+            keypv = "undef";
+    }
+    else keypv = "...";
 
-    assert(OpSIBLING(kid));
-    name = S_op_varname(aTHX_ OpSIBLING(kid));
-    if (!name) /* XS module fiddling with the op tree */
-        return;
-    S_op_pretty(aTHX_ kid, &keysv, &key);
     assert(SvPOK(name));
     sv_chop(name,SvPVX(name)+1);
-    if (key)
-       /* diag_listed_as: Scalar value @%s[%s] better written as $%s[%s] */
-        Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                   "Scalar value @%" SVf "%c%s%c better written as $%" SVf
-                   "%c%s%c",
-                    SVfARG(name), lbrack, key, rbrack, SVfARG(name),
-                    lbrack, key, rbrack);
-    else
-       /* diag_listed_as: Scalar value @%s[%s] better written as $%s[%s] */
-        Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                   "Scalar value @%" SVf "%c%" SVf "%c better written as $%"
-                    SVf "%c%" SVf "%c",
-                    SVfARG(name), lbrack, SVfARG(keysv), rbrack,
-                    SVfARG(name), lbrack, SVfARG(keysv), rbrack);
-}
 
+    const char *msg;
+
+    if (keypv) {
+        msg = is_slice ?
+            /* diag_listed_as: Scalar value @%s[%s] better written as $%s[%s] */
+            PERL_DIAG_WARN_SYNTAX(
+                "Scalar value @%" SVf "%c%s%c better written as $%" SVf "%c%s%c") :
+            /* diag_listed_as: %%s[%s] in scalar context better written as $%s[%s] */
+            PERL_DIAG_WARN_SYNTAX(
+                "%%%" SVf "%c%s%c in scalar context better written as $%" SVf "%c%s%c");
+
+        Perl_warner(aTHX_ packWARN(WARN_SYNTAX), msg,
+                SVfARG(name), lbrack, keypv, rbrack,
+                SVfARG(name), lbrack, keypv, rbrack);
+    }
+    else {
+        msg = is_slice ?
+            /* diag_listed_as: Scalar value @%s[%s] better written as $%s[%s] */
+            PERL_DIAG_WARN_SYNTAX(
+                "Scalar value @%" SVf "%c%" SVf "%c better written as $%" SVf "%c%" SVf "%c") :
+            /* diag_listed_as: %%s[%s] in scalar context better written as $%s[%s] */
+            PERL_DIAG_WARN_SYNTAX(
+                "%%%" SVf "%c%" SVf "%c in scalar context better written as $%" SVf "%c%" SVf "%c");
+
+        Perl_warner(aTHX_ packWARN(WARN_SYNTAX), msg,
+                SVfARG(name), lbrack, SVfARG(keysv), rbrack,
+                SVfARG(name), lbrack, SVfARG(keysv), rbrack);
+    }
+}
 
 
 /* apply scalar context to the o subtree */
@@ -2039,11 +2047,7 @@ Perl_scalar(pTHX_ OP *o)
         case OP_KVASLICE:
         {
             /* Warn about scalar context */
-            const char lbrack = o->op_type == OP_KVHSLICE ? '{' : '[';
-            const char rbrack = o->op_type == OP_KVHSLICE ? '}' : ']';
             SV *name;
-            SV *keysv;
-            const char *key = NULL;
 
             /* This warning can be nonsensical when there is a syntax error. */
             if (PL_parser && PL_parser->error_count)
@@ -2054,26 +2058,10 @@ Perl_scalar(pTHX_ OP *o)
             kid = cLISTOPo->op_first;
             kid = OpSIBLING(kid); /* get past pushmark */
             assert(OpSIBLING(kid));
-            name = S_op_varname(aTHX_ OpSIBLING(kid));
+            name = op_varname(OpSIBLING(kid));
             if (!name) /* XS module fiddling with the op tree */
                 break;
-            S_op_pretty(aTHX_ kid, &keysv, &key);
-            assert(SvPOK(name));
-            sv_chop(name,SvPVX(name)+1);
-            if (key)
-      /* diag_listed_as: %%s[%s] in scalar context better written as $%s[%s] */
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                           "%%%" SVf "%c%s%c in scalar context better written "
-                           "as $%" SVf "%c%s%c",
-                            SVfARG(name), lbrack, key, rbrack, SVfARG(name),
-                            lbrack, key, rbrack);
-            else
-      /* diag_listed_as: %%s[%s] in scalar context better written as $%s[%s] */
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                           "%%%" SVf "%c%" SVf "%c in scalar context better "
-                           "written as $%" SVf "%c%" SVf "%c",
-                            SVfARG(name), lbrack, SVfARG(keysv), rbrack,
-                            SVfARG(name), lbrack, SVfARG(keysv), rbrack);
+            warn_elem_scalar_context(kid, name, o->op_type == OP_KVHSLICE, false);
         }
         } /* switch */
 
@@ -2174,6 +2162,7 @@ Perl_scalarvoid(pTHX_ OP *arg)
         case OP_REF:
         case OP_REFGEN:
         case OP_SREFGEN:
+        case OP_ANONCODE:
         case OP_DEFINED:
         case OP_HEX:
         case OP_OCT:
@@ -2343,17 +2332,17 @@ Perl_scalarvoid(pTHX_ OP *arg)
             if ((o->op_private & ~OPpASSIGN_BACKWARDS) != 2)
                 break;
 
-            rv2gv = ((BINOP *)o)->op_last;
+            rv2gv = cBINOPo->op_last;
             if (!rv2gv || rv2gv->op_type != OP_RV2GV)
                 break;
 
-            refgen = (UNOP *)((BINOP *)o)->op_first;
+            refgen = cUNOPx(cBINOPo->op_first);
 
             if (!refgen || (refgen->op_type != OP_REFGEN
                             && refgen->op_type != OP_SREFGEN))
                 break;
 
-            exlist = (LISTOP *)refgen->op_first;
+            exlist = cLISTOPx(refgen->op_first);
             if (!exlist || exlist->op_type != OP_NULL
                 || exlist->op_targ != OP_LIST)
                 break;
@@ -2362,7 +2351,7 @@ Perl_scalarvoid(pTHX_ OP *arg)
                 && exlist->op_first != exlist->op_last)
                 break;
 
-            rv2cv = (UNOP*)exlist->op_last;
+            rv2cv = cUNOPx(exlist->op_last);
 
             if (rv2cv->op_type != OP_RV2CV)
                 break;
@@ -2480,8 +2469,7 @@ Perl_scalarvoid(pTHX_ OP *arg)
         }
         o = next_kid;
     }
-
-    return arg;
+    NOT_REACHED;
 }
 
 
@@ -2698,8 +2686,8 @@ S_modkids(pTHX_ OP *o, I32 type)
  * real   if false, only check (and possibly croak); don't update op
  */
 
-STATIC void
-S_check_hash_fields_and_hekify(pTHX_ UNOP *rop, SVOP *key_op, int real)
+void
+Perl_check_hash_fields_and_hekify(pTHX_ UNOP *rop, SVOP *key_op, int real)
 {
     PADNAME *lexname;
     GV **fields;
@@ -2709,13 +2697,13 @@ S_check_hash_fields_and_hekify(pTHX_ UNO
     if (rop) {
         if (rop->op_first->op_type == OP_PADSV)
             /* @$hash{qw(keys here)} */
-            rop = (UNOP*)rop->op_first;
+            rop = cUNOPx(rop->op_first);
         else {
             /* @{$hash}{qw(keys here)} */
             if (rop->op_first->op_type == OP_SCOPE
                 && cLISTOPx(rop->op_first)->op_last->op_type == OP_PADSV)
                 {
-                    rop = (UNOP*)cLISTOPx(rop->op_first)->op_last;
+                    rop = cUNOPx(cLISTOPx(rop->op_first)->op_last);
                 }
             else
                 rop = NULL;
@@ -2728,11 +2716,11 @@ S_check_hash_fields_and_hekify(pTHX_ UNO
     check_fields =
             rop
          && (lexname = padnamelist_fetch(PL_comppad_name, rop->op_targ),
-             SvPAD_TYPED(lexname))
+             PadnameHasTYPE(lexname))
          && (fields = (GV**)hv_fetchs(PadnameTYPE(lexname), "FIELDS", FALSE))
          && isGV(*fields) && GvHV(*fields);
 
-    for (; key_op; key_op = (SVOP*)OpSIBLING(key_op)) {
+    for (; key_op; key_op = cSVOPx(OpSIBLING(key_op))) {
         SV **svp, *sv;
         if (key_op->op_type != OP_CONST)
             continue;
@@ -2770,6337 +2758,5272 @@ S_check_hash_fields_and_hekify(pTHX_ UNO
     }
 }
 
-/* info returned by S_sprintf_is_multiconcatable() */
-
-struct sprintf_ismc_info {
-    SSize_t nargs;    /* num of args to sprintf (not including the format) */
-    char  *start;     /* start of raw format string */
-    char  *end;       /* bytes after end of raw format string */
-    STRLEN total_len; /* total length (in bytes) of format string, not
-                         including '%s' and  half of '%%' */
-    STRLEN variant;   /* number of bytes by which total_len_p would grow
-                         if upgraded to utf8 */
-    bool   utf8;      /* whether the format is utf8 */
-};
-
 
-/* is the OP_SPRINTF o suitable for converting into a multiconcat op?
- * i.e. its format argument is a const string with only '%s' and '%%'
- * formats, and the number of args is known, e.g.
- *    sprintf "a=%s f=%s", $a[0], scalar(f());
- * but not
- *    sprintf "i=%d a=%s f=%s", $i, @a, f();
- *
- * If successful, the sprintf_ismc_info struct pointed to by info will be
- * populated.
+/* do all the final processing on an optree (e.g. running the peephole
+ * optimiser on it), then attach it to cv (if cv is non-null)
  */
 
-STATIC bool
-S_sprintf_is_multiconcatable(pTHX_ OP *o,struct sprintf_ismc_info *info)
+static void
+S_process_optree(pTHX_ CV *cv, OP *optree, OP* start)
 {
-    OP    *pm, *constop, *kid;
-    SV    *sv;
-    char  *s, *e, *p;
-    SSize_t nargs, nformats;
-    STRLEN cur, total_len, variant;
-    bool   utf8;
-
-    /* if sprintf's behaviour changes, die here so that someone
-     * can decide whether to enhance this function or skip optimising
-     * under those new circumstances */
-    assert(!(o->op_flags & OPf_STACKED));
-    assert(!(PL_opargs[OP_SPRINTF] & OA_TARGLEX));
-    assert(!(o->op_private & ~OPpARG4_MASK));
-
-    pm = cUNOPo->op_first;
-    if (pm->op_type != OP_PUSHMARK) /* weird coreargs stuff */
-        return FALSE;
-    constop = OpSIBLING(pm);
-    if (!constop || constop->op_type != OP_CONST)
-        return FALSE;
-    sv = cSVOPx_sv(constop);
-    if (SvMAGICAL(sv) || !SvPOK(sv))
-        return FALSE;
+    OP **startp;
 
-    s = SvPV(sv, cur);
-    e = s + cur;
+    /* XXX for some reason, evals, require and main optrees are
+     * never attached to their CV; instead they just hang off
+     * PL_main_root + PL_main_start or PL_eval_root + PL_eval_start
+     * and get manually freed when appropriate */
+    if (cv)
+        startp = &CvSTART(cv);
+    else
+        startp = PL_in_eval? &PL_eval_start : &PL_main_start;
 
-    /* Scan format for %% and %s and work out how many %s there are.
-     * Abandon if other format types are found.
-     */
+    *startp = start;
+    optree->op_private |= OPpREFCOUNTED;
+    OpREFCNT_set(optree, 1);
+    optimize_optree(optree);
+    CALL_PEEP(*startp);
+    finalize_optree(optree);
+    op_prune_chain_head(startp);
 
-    nformats  = 0;
-    total_len = 0;
-    variant   = 0;
-
-    for (p = s; p < e; p++) {
-        if (*p != '%') {
-            total_len++;
-            if (!UTF8_IS_INVARIANT(*p))
-                variant++;
-            continue;
-        }
-        p++;
-        if (p >= e)
-            return FALSE; /* lone % at end gives "Invalid conversion" */
-        if (*p == '%')
-            total_len++;
-        else if (*p == 's')
-            nformats++;
-        else
-            return FALSE;
+    if (cv) {
+        /* now that optimizer has done its work, adjust pad values */
+        pad_tidy(optree->op_type == OP_LEAVEWRITE ? padtidy_FORMAT
+                 : CvCLONE(cv) ? padtidy_SUBCLONE : padtidy_SUB);
     }
+}
 
-    if (!nformats || nformats > PERL_MULTICONCAT_MAXARG)
-        return FALSE;
-
-    utf8 = cBOOL(SvUTF8(sv));
-    if (utf8)
-        variant = 0;
-
-    /* scan args; they must all be in scalar cxt */
-
-    nargs = 0;
-    kid = OpSIBLING(constop);
+#ifdef USE_ITHREADS
+/* Relocate sv to the pad for thread safety.
+ * Despite being a "constant", the SV is written to,
+ * for reference counts, sv_upgrade() etc. */
+void
+Perl_op_relocate_sv(pTHX_ SV** svp, PADOFFSET* targp)
+{
+    PADOFFSET ix;
+    PERL_ARGS_ASSERT_OP_RELOCATE_SV;
+    if (!*svp) return;
+    ix = pad_alloc(OP_CONST, SVf_READONLY);
+    SvREFCNT_dec(PAD_SVl(ix));
+    PAD_SETSV(ix, *svp);
+    /* XXX I don't know how this isn't readonly already. */
+    if (!SvIsCOW(PAD_SVl(ix))) SvREADONLY_on(PAD_SVl(ix));
+    *svp = NULL;
+    *targp = ix;
+}
+#endif
 
-    while (kid) {
-        if ((kid->op_flags & OPf_WANT) != OPf_WANT_SCALAR)
-            return FALSE;
-        nargs++;
-        kid = OpSIBLING(kid);
+static void
+S_mark_padname_lvalue(pTHX_ PADNAME *pn)
+{
+    CV *cv = PL_compcv;
+    PadnameLVALUE_on(pn);
+    while (PadnameOUTER(pn) && PARENT_PAD_INDEX(pn)) {
+        cv = CvOUTSIDE(cv);
+        /* RT #127786: cv can be NULL due to an eval within the DB package
+         * called from an anon sub - anon subs don't have CvOUTSIDE() set
+         * unless they contain an eval, but calling eval within DB
+         * pretends the eval was done in the caller's scope.
+         */
+        if (!cv)
+            break;
+        assert(CvPADLIST(cv));
+        pn =
+           PadlistNAMESARRAY(CvPADLIST(cv))[PARENT_PAD_INDEX(pn)];
+        assert(PadnameLEN(pn));
+        PadnameLVALUE_on(pn);
     }
-
-    if (nargs != nformats)
-        return FALSE; /* e.g. sprintf("%s%s", $a); */
-
-
-    info->nargs      = nargs;
-    info->start      = s;
-    info->end        = e;
-    info->total_len  = total_len;
-    info->variant    = variant;
-    info->utf8       = utf8;
-
-    return TRUE;
 }
 
+static bool
+S_vivifies(const OPCODE type)
+{
+    switch(type) {
+    case OP_RV2AV:     case   OP_ASLICE:
+    case OP_RV2HV:     case OP_KVASLICE:
+    case OP_RV2SV:     case   OP_HSLICE:
+    case OP_AELEMFAST: case OP_KVHSLICE:
+    case OP_HELEM:
+    case OP_AELEM:
+        return 1;
+    }
+    return 0;
+}
 
 
-/* S_maybe_multiconcat():
- *
- * given an OP_STRINGIFY, OP_SASSIGN, OP_CONCAT or OP_SPRINTF op, possibly
- * convert it (and its children) into an OP_MULTICONCAT. See the code
- * comments just before pp_multiconcat() for the full details of what
- * OP_MULTICONCAT supports.
- *
- * Basically we're looking for an optree with a chain of OP_CONCATS down
- * the LHS (or an OP_SPRINTF), with possibly an OP_SASSIGN, and/or
- * OP_STRINGIFY, and/or OP_CONCAT acting as '.=' at its head, e.g.
- *
- *      $x = "$a$b-$c"
- *
- *  looks like
- *
- *      SASSIGN
- *         |
- *      STRINGIFY   -- PADSV[$x]
- *         |
- *         |
- *      ex-PUSHMARK -- CONCAT/S
- *                        |
- *                     CONCAT/S  -- PADSV[$d]
- *                        |
- *                     CONCAT    -- CONST["-"]
- *                        |
- *                     PADSV[$a] -- PADSV[$b]
- *
- * Note that at this stage the OP_SASSIGN may have already been optimised
- * away with OPpTARGET_MY set on the OP_STRINGIFY or OP_CONCAT.
+/* apply lvalue reference (aliasing) context to the optree o.
+ * E.g. in
+ *     \($x,$y) = (...)
+ * o would be the list ($x,$y) and type would be OP_AASSIGN.
+ * It may descend and apply this to children too, for example in
+ * \( $cond ? $x, $y) = (...)
  */
 
-STATIC void
-S_maybe_multiconcat(pTHX_ OP *o)
+static void
+S_lvref(pTHX_ OP *o, I32 type)
 {
-    OP *lastkidop;   /* the right-most of any kids unshifted onto o */
-    OP *topop;       /* the top-most op in the concat tree (often equals o,
-                        unless there are assign/stringify ops above it */
-    OP *parentop;    /* the parent op of topop (or itself if no parent) */
-    OP *targmyop;    /* the op (if any) with the OPpTARGET_MY flag */
-    OP *targetop;    /* the op corresponding to target=... or target.=... */
-    OP *stringop;    /* the OP_STRINGIFY op, if any */
-    OP *nextop;      /* used for recreating the op_next chain without consts */
-    OP *kid;         /* general-purpose op pointer */
-    UNOP_AUX_item *aux;
-    UNOP_AUX_item *lenp;
-    char *const_str, *p;
-    struct sprintf_ismc_info sprintf_info;
-
-                     /* store info about each arg in args[];
-                      * toparg is the highest used slot; argp is a general
-                      * pointer to args[] slots */
-    struct {
-        void *p;      /* initially points to const sv (or null for op);
-                         later, set to SvPV(constsv), with ... */
-        STRLEN len;   /* ... len set to SvPV(..., len) */
-    } *argp, *toparg, args[PERL_MULTICONCAT_MAXARG*2 + 1];
-
-    SSize_t nargs  = 0;
-    SSize_t nconst = 0;
-    SSize_t nadjconst  = 0; /* adjacent consts - may be demoted to args */
-    STRLEN variant;
-    bool utf8 = FALSE;
-    bool kid_is_last = FALSE; /* most args will be the RHS kid of a concat op;
-                                 the last-processed arg will the LHS of one,
-                                 as args are processed in reverse order */
-    U8   stacked_last = 0;   /* whether the last seen concat op was STACKED */
-    STRLEN total_len  = 0;   /* sum of the lengths of the const segments */
-    U8 flags          = 0;   /* what will become the op_flags and ... */
-    U8 private_flags  = 0;   /* ... op_private of the multiconcat op */
-    bool is_sprintf = FALSE; /* we're optimising an sprintf */
-    bool is_targable  = FALSE; /* targetop is an OPpTARGET_MY candidate */
-    bool prev_was_const = FALSE; /* previous arg was a const */
+    OP *kid;
+    OP * top_op = o;
 
-    /* -----------------------------------------------------------------
-     * Phase 1:
-     *
-     * Examine the optree non-destructively to determine whether it's
-     * suitable to be converted into an OP_MULTICONCAT. Accumulate
-     * information about the optree in args[].
-     */
+    while (1) {
+        switch (o->op_type) {
+        case OP_COND_EXPR:
+            o = OpSIBLING(cUNOPo->op_first);
+            continue;
 
-    argp     = args;
-    targmyop = NULL;
-    targetop = NULL;
-    stringop = NULL;
-    topop    = o;
-    parentop = o;
-
-    assert(   o->op_type == OP_SASSIGN
-           || o->op_type == OP_CONCAT
-           || o->op_type == OP_SPRINTF
-           || o->op_type == OP_STRINGIFY);
-
-    Zero(&sprintf_info, 1, struct sprintf_ismc_info);
-
-    /* first see if, at the top of the tree, there is an assign,
-     * append and/or stringify */
-
-    if (topop->op_type == OP_SASSIGN) {
-        /* expr = ..... */
-        if (o->op_ppaddr != PL_ppaddr[OP_SASSIGN])
-            return;
-        if (o->op_private & (OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV))
-            return;
-        assert(!(o->op_private & ~OPpARG2_MASK)); /* barf on unknown flags */
+        case OP_PUSHMARK:
+            goto do_next;
 
-        parentop = topop;
-        topop = cBINOPo->op_first;
-        targetop = OpSIBLING(topop);
-        if (!targetop) /* probably some sort of syntax error */
-            return;
+        case OP_RV2AV:
+            if (cUNOPo->op_first->op_type != OP_GV) goto badref;
+            o->op_flags |= OPf_STACKED;
+            if (o->op_flags & OPf_PARENS) {
+                if (o->op_private & OPpLVAL_INTRO) {
+                     yyerror(Perl_form(aTHX_ "Can't modify reference to "
+                          "localized parenthesized array in list assignment"));
+                    goto do_next;
+                }
+              slurpy:
+                OpTYPE_set(o, OP_LVAVREF);
+                o->op_private &= OPpLVAL_INTRO|OPpPAD_STATE;
+                o->op_flags |= OPf_MOD|OPf_REF;
+                goto do_next;
+            }
+            o->op_private |= OPpLVREF_AV;
+            goto checkgv;
 
-        /* don't optimise away assign in 'local $foo = ....' */
-        if (   (targetop->op_private & OPpLVAL_INTRO)
-            /* these are the common ops which do 'local', but
-             * not all */
-            && (   targetop->op_type == OP_GVSV
-                || targetop->op_type == OP_RV2SV
-                || targetop->op_type == OP_AELEM
-                || targetop->op_type == OP_HELEM
-                )
-        )
-            return;
-    }
-    else if (   topop->op_type == OP_CONCAT
-             && (topop->op_flags & OPf_STACKED)
-             && (!(topop->op_private & OPpCONCAT_NESTED))
-            )
-    {
-        /* expr .= ..... */
+        case OP_RV2CV:
+            kid = cUNOPo->op_first;
+            if (kid->op_type == OP_NULL)
+                kid = cUNOPx(OpSIBLING(kUNOP->op_first))
+                    ->op_first;
+            o->op_private = OPpLVREF_CV;
+            if (kid->op_type == OP_GV)
+                o->op_flags |= OPf_STACKED;
+            else if (kid->op_type == OP_PADCV) {
+                o->op_targ = kid->op_targ;
+                kid->op_targ = 0;
+                op_free(cUNOPo->op_first);
+                cUNOPo->op_first = NULL;
+                o->op_flags &=~ OPf_KIDS;
+            }
+            else goto badref;
+            break;
 
-        /* OPpTARGET_MY shouldn't be able to be set here. If it is,
-         * decide what to do about it */
-        assert(!(o->op_private & OPpTARGET_MY));
-
-        /* barf on unknown flags */
-        assert(!(o->op_private & ~(OPpARG2_MASK|OPpTARGET_MY)));
-        private_flags |= OPpMULTICONCAT_APPEND;
-        targetop = cBINOPo->op_first;
-        parentop = topop;
-        topop    = OpSIBLING(targetop);
+        case OP_RV2HV:
+            if (o->op_flags & OPf_PARENS) {
+              parenhash:
+                yyerror(Perl_form(aTHX_ "Can't modify reference to "
+                                     "parenthesized hash in list assignment"));
+                    goto do_next;
+            }
+            o->op_private |= OPpLVREF_HV;
+            /* FALLTHROUGH */
+        case OP_RV2SV:
+          checkgv:
+            if (cUNOPo->op_first->op_type != OP_GV) goto badref;
+            o->op_flags |= OPf_STACKED;
+            break;
 
-        /* $x .= <FOO> gets optimised to rcatline instead */
-        if (topop->op_type == OP_READLINE)
-            return;
-    }
-
-    if (targetop) {
-        /* Can targetop (the LHS) if it's a padsv, be optimised
-         * away and use OPpTARGET_MY instead?
-         */
-        if (    (targetop->op_type == OP_PADSV)
-            && !(targetop->op_private & OPpDEREF)
-            && !(targetop->op_private & OPpPAD_STATE)
-               /* we don't support 'my $x .= ...' */
-            && (   o->op_type == OP_SASSIGN
-                || !(targetop->op_private & OPpLVAL_INTRO))
-        )
-            is_targable = TRUE;
-    }
-
-    if (topop->op_type == OP_STRINGIFY) {
-        if (topop->op_ppaddr != PL_ppaddr[OP_STRINGIFY])
-            return;
-        stringop = topop;
-
-        /* barf on unknown flags */
-        assert(!(o->op_private & ~(OPpARG4_MASK|OPpTARGET_MY)));
-
-        if ((topop->op_private & OPpTARGET_MY)) {
-            if (o->op_type == OP_SASSIGN)
-                return; /* can't have two assigns */
-            targmyop = topop;
-        }
-
-        private_flags |= OPpMULTICONCAT_STRINGIFY;
-        parentop = topop;
-        topop = cBINOPx(topop)->op_first;
-        assert(OP_TYPE_IS_OR_WAS_NN(topop, OP_PUSHMARK));
-        topop = OpSIBLING(topop);
-    }
-
-    if (topop->op_type == OP_SPRINTF) {
-        if (topop->op_ppaddr != PL_ppaddr[OP_SPRINTF])
-            return;
-        if (S_sprintf_is_multiconcatable(aTHX_ topop, &sprintf_info)) {
-            nargs     = sprintf_info.nargs;
-            total_len = sprintf_info.total_len;
-            variant   = sprintf_info.variant;
-            utf8      = sprintf_info.utf8;
-            is_sprintf = TRUE;
-            private_flags |= OPpMULTICONCAT_FAKE;
-            toparg = argp;
-            /* we have an sprintf op rather than a concat optree.
-             * Skip most of the code below which is associated with
-             * processing that optree. We also skip phase 2, determining
-             * whether its cost effective to optimise, since for sprintf,
-             * multiconcat is *always* faster */
-            goto create_aux;
-        }
-        /* note that even if the sprintf itself isn't multiconcatable,
-         * the expression as a whole may be, e.g. in
-         *    $x .= sprintf("%d",...)
-         * the sprintf op will be left as-is, but the concat/S op may
-         * be upgraded to multiconcat
-         */
-    }
-    else if (topop->op_type == OP_CONCAT) {
-        if (topop->op_ppaddr != PL_ppaddr[OP_CONCAT])
-            return;
-
-        if ((topop->op_private & OPpTARGET_MY)) {
-            if (o->op_type == OP_SASSIGN || targmyop)
-                return; /* can't have two assigns */
-            targmyop = topop;
-        }
-    }
-
-    /* Is it safe to convert a sassign/stringify/concat op into
-     * a multiconcat? */
-    assert((PL_opargs[OP_SASSIGN]   & OA_CLASS_MASK) == OA_BINOP);
-    assert((PL_opargs[OP_CONCAT]    & OA_CLASS_MASK) == OA_BINOP);
-    assert((PL_opargs[OP_STRINGIFY] & OA_CLASS_MASK) == OA_LISTOP);
-    assert((PL_opargs[OP_SPRINTF]   & OA_CLASS_MASK) == OA_LISTOP);
-    STATIC_ASSERT_STMT(   STRUCT_OFFSET(BINOP,    op_last)
-                       == STRUCT_OFFSET(UNOP_AUX, op_aux));
-    STATIC_ASSERT_STMT(   STRUCT_OFFSET(LISTOP,   op_last)
-                       == STRUCT_OFFSET(UNOP_AUX, op_aux));
-
-    /* Now scan the down the tree looking for a series of
-     * CONCAT/OPf_STACKED ops on the LHS (with the last one not
-     * stacked). For example this tree:
-     *
-     *     |
-     *   CONCAT/STACKED
-     *     |
-     *   CONCAT/STACKED -- EXPR5
-     *     |
-     *   CONCAT/STACKED -- EXPR4
-     *     |
-     *   CONCAT -- EXPR3
-     *     |
-     *   EXPR1  -- EXPR2
-     *
-     * corresponds to an expression like
-     *
-     *   (EXPR1 . EXPR2 . EXPR3 . EXPR4 . EXPR5)
-     *
-     * Record info about each EXPR in args[]: in particular, whether it is
-     * a stringifiable OP_CONST and if so what the const sv is.
-     *
-     * The reason why the last concat can't be STACKED is the difference
-     * between
-     *
-     *    ((($a .= $a) .= $a) .= $a) .= $a
-     *
-     * and
-     *    $a . $a . $a . $a . $a
-     *
-     * The main difference between the optrees for those two constructs
-     * is the presence of the last STACKED. As well as modifying $a,
-     * the former sees the changed $a between each concat, so if $s is
-     * initially 'a', the first returns 'a' x 16, while the latter returns
-     * 'a' x 5. And pp_multiconcat can't handle that kind of thing.
-     */
+        case OP_PADHV:
+            if (o->op_flags & OPf_PARENS) goto parenhash;
+            o->op_private |= OPpLVREF_HV;
+            /* FALLTHROUGH */
+        case OP_PADSV:
+            PAD_COMPNAME_GEN_set(o->op_targ, PERL_INT_MAX);
+            break;
 
-    kid = topop;
+        case OP_PADAV:
+            PAD_COMPNAME_GEN_set(o->op_targ, PERL_INT_MAX);
+            if (o->op_flags & OPf_PARENS) goto slurpy;
+            o->op_private |= OPpLVREF_AV;
+            break;
 
-    for (;;) {
-        OP *argop;
-        SV *sv;
-        bool last = FALSE;
+        case OP_AELEM:
+        case OP_HELEM:
+            o->op_private |= OPpLVREF_ELEM;
+            o->op_flags   |= OPf_STACKED;
+            break;
 
-        if (    kid->op_type == OP_CONCAT
-            && !kid_is_last
-        ) {
-            OP *k1, *k2;
-            k1 = cUNOPx(kid)->op_first;
-            k2 = OpSIBLING(k1);
-            /* shouldn't happen except maybe after compile err? */
-            if (!k2)
-                return;
+        case OP_ASLICE:
+        case OP_HSLICE:
+            OpTYPE_set(o, OP_LVREFSLICE);
+            o->op_private &= OPpLVAL_INTRO;
+            goto do_next;
 
-            /* avoid turning (A . B . ($lex = C) ...)  into  (A . B . C ...) */
-            if (kid->op_private & OPpTARGET_MY)
-                kid_is_last = TRUE;
-
-            stacked_last = (kid->op_flags & OPf_STACKED);
-            if (!stacked_last)
-                kid_is_last = TRUE;
+        case OP_NULL:
+            if (o->op_flags & OPf_SPECIAL)		/* do BLOCK */
+                goto badref;
+            else if (!(o->op_flags & OPf_KIDS))
+                goto do_next;
 
-            kid   = k1;
-            argop = k2;
-        }
-        else {
-            argop = kid;
-            last = TRUE;
-        }
+            /* the code formerly only recursed into the first child of
+             * a non ex-list OP_NULL. if we ever encounter such a null op with
+             * more than one child, need to decide whether its ok to process
+             * *all* its kids or not */
+            assert(o->op_targ == OP_LIST
+                    || !(OpHAS_SIBLING(cBINOPo->op_first)));
+            /* FALLTHROUGH */
+        case OP_LIST:
+            o = cLISTOPo->op_first;
+            continue;
 
-        if (   nargs + nadjconst  >  PERL_MULTICONCAT_MAXARG        - 2
-            || (argp - args + 1)  > (PERL_MULTICONCAT_MAXARG*2 + 1) - 2)
-        {
-            /* At least two spare slots are needed to decompose both
-             * concat args. If there are no slots left, continue to
-             * examine the rest of the optree, but don't push new values
-             * on args[]. If the optree as a whole is legal for conversion
-             * (in particular that the last concat isn't STACKED), then
-             * the first PERL_MULTICONCAT_MAXARG elements of the optree
-             * can be converted into an OP_MULTICONCAT now, with the first
-             * child of that op being the remainder of the optree -
-             * which may itself later be converted to a multiconcat op
-             * too.
-             */
-            if (last) {
-                /* the last arg is the rest of the optree */
-                argp++->p = NULL;
-                nargs++;
-            }
-        }
-        else if (   argop->op_type == OP_CONST
-            && ((sv = cSVOPx_sv(argop)))
-            /* defer stringification until runtime of 'constant'
-             * things that might stringify variantly, e.g. the radix
-             * point of NVs, or overloaded RVs */
-            && (SvPOK(sv) || SvIOK(sv))
-            && (!SvGMAGICAL(sv))
-        ) {
-            if (argop->op_private & OPpCONST_STRICT)
-                no_bareword_allowed(argop);
-            argp++->p = sv;
-            utf8   |= cBOOL(SvUTF8(sv));
-            nconst++;
-            if (prev_was_const)
-                /* this const may be demoted back to a plain arg later;
-                 * make sure we have enough arg slots left */
-                nadjconst++;
-            prev_was_const = !prev_was_const;
-        }
-        else {
-            argp++->p = NULL;
-            nargs++;
-            prev_was_const = FALSE;
+        case OP_STUB:
+            if (o->op_flags & OPf_PARENS)
+                goto do_next;
+            /* FALLTHROUGH */
+        default:
+          badref:
+            /* diag_listed_as: Can't modify reference to %s in %s assignment */
+            yyerror(Perl_form(aTHX_ "Can't modify reference to %s in %s",
+                         o->op_type == OP_NULL && o->op_flags & OPf_SPECIAL
+                          ? "do block"
+                          : OP_DESC(o),
+                         PL_op_desc[type]));
+            goto do_next;
         }
 
-        if (last)
-            break;
-    }
-
-    toparg = argp - 1;
-
-    if (stacked_last)
-        return; /* we don't support ((A.=B).=C)...) */
+        OpTYPE_set(o, OP_LVREF);
+        o->op_private &=
+            OPpLVAL_INTRO|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpPAD_STATE;
+        if (type == OP_ENTERLOOP)
+            o->op_private |= OPpLVREF_ITER;
 
-    /* look for two adjacent consts and don't fold them together:
-     *     $o . "a" . "b"
-     * should do
-     *     $o->concat("a")->concat("b")
-     * rather than
-     *     $o->concat("ab")
-     * (but $o .=  "a" . "b" should still fold)
-     */
-    {
-        bool seen_nonconst = FALSE;
-        for (argp = toparg; argp >= args; argp--) {
-            if (argp->p == NULL) {
-                seen_nonconst = TRUE;
-                continue;
-            }
-            if (!seen_nonconst)
-                continue;
-            if (argp[1].p) {
-                /* both previous and current arg were constants;
-                 * leave the current OP_CONST as-is */
-                argp->p = NULL;
-                nconst--;
-                nargs++;
+      do_next:
+        while (1) {
+            if (o == top_op)
+                return; /* at top; no parents/siblings to try */
+            if (OpHAS_SIBLING(o)) {
+                o = o->op_sibparent;
+                break;
             }
+            o = o->op_sibparent; /*try parent's next sibling */
         }
-    }
-
-    /* -----------------------------------------------------------------
-     * Phase 2:
-     *
-     * At this point we have determined that the optree *can* be converted
-     * into a multiconcat. Having gathered all the evidence, we now decide
-     * whether it *should*.
-     */
+    } /* while */
+}
 
 
-    /* we need at least one concat action, e.g.:
-     *
-     *  Y . Z
-     *  X = Y . Z
-     *  X .= Y
-     *
-     * otherwise we could be doing something like $x = "foo", which
-     * if treated as a concat, would fail to COW.
-     */
-    if (nargs + nconst + cBOOL(private_flags & OPpMULTICONCAT_APPEND) < 2)
-        return;
+PERL_STATIC_INLINE bool
+S_potential_mod_type(I32 type)
+{
+    /* Types that only potentially result in modification.  */
+    return type == OP_GREPSTART || type == OP_ENTERSUB
+        || type == OP_REFGEN    || type == OP_LEAVESUBLV;
+}
 
-    /* Benchmarking seems to indicate that we gain if:
-     * * we optimise at least two actions into a single multiconcat
-     *    (e.g concat+concat, sassign+concat);
-     * * or if we can eliminate at least 1 OP_CONST;
-     * * or if we can eliminate a padsv via OPpTARGET_MY
-     */
 
-    if (
-           /* eliminated at least one OP_CONST */
-           nconst >= 1
-           /* eliminated an OP_SASSIGN */
-        || o->op_type == OP_SASSIGN
-           /* eliminated an OP_PADSV */
-        || (!targmyop && is_targable)
-    )
-        /* definitely a net gain to optimise */
-        goto optimise;
+/*
+=for apidoc op_lvalue
 
-    /* ... if not, what else? */
+Propagate lvalue ("modifiable") context to an op and its children.
+C<type> represents the context type, roughly based on the type of op that
+would do the modifying, although C<local()> is represented by C<OP_NULL>,
+because it has no op type of its own (it is signalled by a flag on
+the lvalue op).
 
-    /* special-case '$lex1 = expr . $lex1' (where expr isn't lex1):
-     * multiconcat is faster (due to not creating a temporary copy of
-     * $lex1), whereas for a general $lex1 = $lex2 . $lex3, concat is
-     * faster.
-     */
-    if (   nconst == 0
-         && nargs == 2
-         && targmyop
-         && topop->op_type == OP_CONCAT
-    ) {
-        PADOFFSET t = targmyop->op_targ;
-        OP *k1 = cBINOPx(topop)->op_first;
-        OP *k2 = cBINOPx(topop)->op_last;
-        if (   k2->op_type == OP_PADSV
-            && k2->op_targ == t
-            && (   k1->op_type != OP_PADSV
-                || k1->op_targ != t)
-        )
-            goto optimise;
-    }
+This function detects things that can't be modified, such as C<$x+1>, and
+generates errors for them.  For example, C<$x+1 = 2> would cause it to be
+called with an op of type C<OP_ADD> and a C<type> argument of C<OP_SASSIGN>.
 
-    /* need at least two concats */
-    if (nargs + nconst + cBOOL(private_flags & OPpMULTICONCAT_APPEND) < 3)
-        return;
+It also flags things that need to behave specially in an lvalue context,
+such as C<$$x = 5> which might have to vivify a reference in C<$x>.
 
+=cut
 
+Perl_op_lvalue_flags() is a non-API lower-level interface to
+op_lvalue().  The flags param has these bits:
+    OP_LVALUE_NO_CROAK:  return rather than croaking on error
 
-    /* -----------------------------------------------------------------
-     * Phase 3:
-     *
-     * At this point the optree has been verified as ok to be optimised
-     * into an OP_MULTICONCAT. Now start changing things.
-     */
+*/
 
-   optimise:
+OP *
+Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
+{
+    OP *top_op = o;
 
-    /* stringify all const args and determine utf8ness */
+    if (!o || (PL_parser && PL_parser->error_count))
+        return o;
 
-    variant = 0;
-    for (argp = args; argp <= toparg; argp++) {
-        SV *sv = (SV*)argp->p;
-        if (!sv)
-            continue; /* not a const op */
-        if (utf8 && !SvUTF8(sv))
-            sv_utf8_upgrade_nomg(sv);
-        argp->p = SvPV_nomg(sv, argp->len);
-        total_len += argp->len;
+    while (1) {
+    OP *kid;
+    /* -1 = error on localize, 0 = ignore localize, 1 = ok to localize */
+    int localize = -1;
+    OP *next_kid = NULL;
 
-        /* see if any strings would grow if converted to utf8 */
-        if (!utf8) {
-            variant += variant_under_utf8_count((U8 *) argp->p,
-                                                (U8 *) argp->p + argp->len);
-        }
+    if ((o->op_private & OPpTARGET_MY)
+        && (PL_opargs[o->op_type] & OA_TARGLEX))/* OPp share the meaning */
+    {
+        goto do_next;
     }
 
-    /* create and populate aux struct */
-
-  create_aux:
-
-    aux = (UNOP_AUX_item*)PerlMemShared_malloc(
-                    sizeof(UNOP_AUX_item)
-                    *  (
-                           PERL_MULTICONCAT_HEADER_SIZE
-                         + ((nargs + 1) * (variant ? 2 : 1))
-                        )
-                    );
-    const_str = (char *)PerlMemShared_malloc(total_len ? total_len : 1);
+    /* elements of a list might be in void context because the list is
+       in scalar context or because they are attribute sub calls */
+    if ((o->op_flags & OPf_WANT) == OPf_WANT_VOID)
+        goto do_next;
 
-    /* Extract all the non-const expressions from the concat tree then
-     * dispose of the old tree, e.g. convert the tree from this:
-     *
-     *  o => SASSIGN
-     *         |
-     *       STRINGIFY   -- TARGET
-     *         |
-     *       ex-PUSHMARK -- CONCAT
-     *                        |
-     *                      CONCAT -- EXPR5
-     *                        |
-     *                      CONCAT -- EXPR4
-     *                        |
-     *                      CONCAT -- EXPR3
-     *                        |
-     *                      EXPR1  -- EXPR2
-     *
-     *
-     * to:
-     *
-     *  o => MULTICONCAT
-     *         |
-     *       ex-PUSHMARK -- EXPR1 -- EXPR2 -- EXPR3 -- EXPR4 -- EXPR5 -- TARGET
-     *
-     * except that if EXPRi is an OP_CONST, it's discarded.
-     *
-     * During the conversion process, EXPR ops are stripped from the tree
-     * and unshifted onto o. Finally, any of o's remaining original
-     * childen are discarded and o is converted into an OP_MULTICONCAT.
-     *
-     * In this middle of this, o may contain both: unshifted args on the
-     * left, and some remaining original args on the right. lastkidop
-     * is set to point to the right-most unshifted arg to delineate
-     * between the two sets.
-     */
+    if (type == OP_PRTF || type == OP_SPRINTF) type = OP_ENTERSUB;
 
+    switch (o->op_type) {
+    case OP_UNDEF:
+        if (type == OP_SASSIGN)
+            goto nomod;
+        PL_modcount++;
+        goto do_next;
 
-    if (is_sprintf) {
-        /* create a copy of the format with the %'s removed, and record
-         * the sizes of the const string segments in the aux struct */
-        char *q, *oldq;
-        lenp = aux + PERL_MULTICONCAT_IX_LENGTHS;
-
-        p    = sprintf_info.start;
-        q    = const_str;
-        oldq = q;
-        for (; p < sprintf_info.end; p++) {
-            if (*p == '%') {
-                p++;
-                if (*p != '%') {
-                    (lenp++)->ssize = q - oldq;
-                    oldq = q;
-                    continue;
-                }
-            }
-            *q++ = *p;
-        }
-        lenp->ssize = q - oldq;
-        assert((STRLEN)(q - const_str) == total_len);
+    case OP_STUB:
+        if ((o->op_flags & OPf_PARENS))
+            break;
+        goto nomod;
 
-        /* Attach all the args (i.e. the kids of the sprintf) to o (which
-         * may or may not be topop) The pushmark and const ops need to be
-         * kept in case they're an op_next entry point.
-         */
-        lastkidop = cLISTOPx(topop)->op_last;
-        kid = cUNOPx(topop)->op_first; /* pushmark */
-        op_null(kid);
-        op_null(OpSIBLING(kid));       /* const */
-        if (o != topop) {
-            kid = op_sibling_splice(topop, NULL, -1, NULL); /* cut all args */
-            op_sibling_splice(o, NULL, 0, kid); /* and attach to o */
-            lastkidop->op_next = o;
+    case OP_ENTERSUB:
+        if ((type == OP_UNDEF || type == OP_REFGEN || type == OP_LOCK) &&
+            !(o->op_flags & OPf_STACKED)) {
+            OpTYPE_set(o, OP_RV2CV);		/* entersub => rv2cv */
+            assert(cUNOPo->op_first->op_type == OP_NULL);
+            op_null(cLISTOPx(cUNOPo->op_first)->op_first);/* disable pushmark */
+            break;
         }
-    }
-    else {
-        p = const_str;
-        lenp = aux + PERL_MULTICONCAT_IX_LENGTHS;
-
-        lenp->ssize = -1;
-
-        /* Concatenate all const strings into const_str.
-         * Note that args[] contains the RHS args in reverse order, so
-         * we scan args[] from top to bottom to get constant strings
-         * in L-R order
-         */
-        for (argp = toparg; argp >= args; argp--) {
-            if (!argp->p)
-                /* not a const op */
-                (++lenp)->ssize = -1;
-            else {
-                STRLEN l = argp->len;
-                Copy(argp->p, p, l, char);
-                p += l;
-                if (lenp->ssize == -1)
-                    lenp->ssize = l;
-                else
-                    lenp->ssize += l;
+        else {				/* lvalue subroutine call */
+            o->op_private |= OPpLVAL_INTRO;
+            PL_modcount = RETURN_UNLIMITED_NUMBER;
+            if (S_potential_mod_type(type)) {
+                o->op_private |= OPpENTERSUB_INARGS;
+                break;
             }
-        }
-
-        kid = topop;
-        nextop = o;
-        lastkidop = NULL;
-
-        for (argp = args; argp <= toparg; argp++) {
-            /* only keep non-const args, except keep the first-in-next-chain
-             * arg no matter what it is (but nulled if OP_CONST), because it
-             * may be the entry point to this subtree from the previous
-             * op_next.
-             */
-            bool last = (argp == toparg);
-            OP *prev;
+            else {                      /* Compile-time error message: */
+                OP *kid = cUNOPo->op_first;
+                CV *cv;
+                GV *gv;
+                SV *namesv;
 
-            /* set prev to the sibling *before* the arg to be cut out,
-             * e.g. when cutting EXPR:
-             *
-             *         |
-             * kid=  CONCAT
-             *         |
-             * prev= CONCAT -- EXPR
-             *         |
-             */
-            if (argp == args && kid->op_type != OP_CONCAT) {
-                /* in e.g. '$x .= f(1)' there's no RHS concat tree
-                 * so the expression to be cut isn't kid->op_last but
-                 * kid itself */
-                OP *o1, *o2;
-                /* find the op before kid */
-                o1 = NULL;
-                o2 = cUNOPx(parentop)->op_first;
-                while (o2 && o2 != kid) {
-                    o1 = o2;
-                    o2 = OpSIBLING(o2);
+                if (kid->op_type != OP_PUSHMARK) {
+                    if (kid->op_type != OP_NULL || kid->op_targ != OP_LIST)
+                        Perl_croak(aTHX_
+                                "panic: unexpected lvalue entersub "
+                                "args: type/targ %ld:%" UVuf,
+                                (long)kid->op_type, (UV)kid->op_targ);
+                    kid = kLISTOP->op_first;
                 }
-                assert(o2 == kid);
-                prev = o1;
-                kid  = parentop;
-            }
-            else if (kid == o && lastkidop)
-                prev = last ? lastkidop : OpSIBLING(lastkidop);
-            else
-                prev = last ? NULL : cUNOPx(kid)->op_first;
-
-            if (!argp->p || last) {
-                /* cut RH op */
-                OP *aop = op_sibling_splice(kid, prev, 1, NULL);
-                /* and unshift to front of o */
-                op_sibling_splice(o, NULL, 0, aop);
-                /* record the right-most op added to o: later we will
-                 * free anything to the right of it */
-                if (!lastkidop)
-                    lastkidop = aop;
-                aop->op_next = nextop;
-                if (last) {
-                    if (argp->p)
-                        /* null the const at start of op_next chain */
-                        op_null(aop);
+                while (OpHAS_SIBLING(kid))
+                    kid = OpSIBLING(kid);
+                if (!(kid->op_type == OP_NULL && kid->op_targ == OP_RV2CV)) {
+                    break;	/* Postpone until runtime */
                 }
-                else if (prev)
-                    nextop = prev->op_next;
-            }
-
-            /* the last two arguments are both attached to the same concat op */
-            if (argp < toparg - 1)
-                kid = prev;
-        }
-    }
 
-    /* Populate the aux struct */
-
-    aux[PERL_MULTICONCAT_IX_NARGS].ssize     = nargs;
-    aux[PERL_MULTICONCAT_IX_PLAIN_PV].pv    = utf8 ? NULL : const_str;
-    aux[PERL_MULTICONCAT_IX_PLAIN_LEN].ssize = utf8 ?    0 : total_len;
-    aux[PERL_MULTICONCAT_IX_UTF8_PV].pv     = const_str;
-    aux[PERL_MULTICONCAT_IX_UTF8_LEN].ssize  = total_len;
-
-    /* if variant > 0, calculate a variant const string and lengths where
-     * the utf8 version of the string will take 'variant' more bytes than
-     * the plain one. */
-
-    if (variant) {
-        char              *p = const_str;
-        STRLEN          ulen = total_len + variant;
-        UNOP_AUX_item  *lens = aux + PERL_MULTICONCAT_IX_LENGTHS;
-        UNOP_AUX_item *ulens = lens + (nargs + 1);
-        char             *up = (char*)PerlMemShared_malloc(ulen);
-        SSize_t            n;
+                kid = kUNOP->op_first;
+                if (kid->op_type == OP_NULL && kid->op_targ == OP_RV2SV)
+                    kid = kUNOP->op_first;
+                if (kid->op_type == OP_NULL)
+                    Perl_croak(aTHX_
+                               "panic: unexpected constant lvalue entersub "
+                               "entry via type/targ %ld:%" UVuf,
+                               (long)kid->op_type, (UV)kid->op_targ);
+                if (kid->op_type != OP_GV) {
+                    break;
+                }
 
-        aux[PERL_MULTICONCAT_IX_UTF8_PV].pv    = up;
-        aux[PERL_MULTICONCAT_IX_UTF8_LEN].ssize = ulen;
+                gv = kGVOP_gv;
+                cv = isGV(gv)
+                    ? GvCV(gv)
+                    : SvROK(gv) && SvTYPE(SvRV(gv)) == SVt_PVCV
+                        ? MUTABLE_CV(SvRV(gv))
+                        : NULL;
+                if (!cv)
+                    break;
+                if (CvLVALUE(cv))
+                    break;
+                if (flags & OP_LVALUE_NO_CROAK)
+                    return NULL;
 
-        for (n = 0; n < (nargs + 1); n++) {
-            SSize_t i;
-            char * orig_up = up;
-            for (i = (lens++)->ssize; i > 0; i--) {
-                U8 c = *p++;
-                append_utf8_from_native_byte(c, (U8**)&up);
+                namesv = cv_name(cv, NULL, 0);
+                yyerror_pv(Perl_form(aTHX_ "Can't modify non-lvalue "
+                                     "subroutine call of &%" SVf " in %s",
+                                     SVfARG(namesv), PL_op_desc[type]),
+                           SvUTF8(namesv));
+                goto do_next;
             }
-            (ulens++)->ssize = (i < 0) ? i : up - orig_up;
         }
-    }
-
-    if (stringop) {
-        /* if there was a top(ish)-level OP_STRINGIFY, we need to keep
-         * that op's first child - an ex-PUSHMARK - because the op_next of
-         * the previous op may point to it (i.e. it's the entry point for
-         * the o optree)
-         */
-        OP *pmop =
-            (stringop == o)
-                ? op_sibling_splice(o, lastkidop, 1, NULL)
-                : op_sibling_splice(stringop, NULL, 1, NULL);
-        assert(OP_TYPE_IS_OR_WAS_NN(pmop, OP_PUSHMARK));
-        op_sibling_splice(o, NULL, 0, pmop);
-        if (!lastkidop)
-            lastkidop = pmop;
-    }
-
-    /* Optimise
-     *    target  = A.B.C...
-     *    target .= A.B.C...
-     */
+        /* FALLTHROUGH */
+    default:
+      nomod:
+        if (flags & OP_LVALUE_NO_CROAK) return NULL;
+        /* grep, foreach, subcalls, refgen */
+        if (S_potential_mod_type(type))
+            break;
+        yyerror(Perl_form(aTHX_ "Can't modify %s in %s",
+                     (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL)
+                      ? "do block"
+                      : OP_DESC(o)),
+                     type ? PL_op_desc[type] : "local"));
+        goto do_next;
 
-    if (targetop) {
-        assert(!targmyop);
+    case OP_PREINC:
+    case OP_PREDEC:
+    case OP_POW:
+    case OP_MULTIPLY:
+    case OP_DIVIDE:
+    case OP_MODULO:
+    case OP_ADD:
+    case OP_SUBTRACT:
+    case OP_CONCAT:
+    case OP_LEFT_SHIFT:
+    case OP_RIGHT_SHIFT:
+    case OP_BIT_AND:
+    case OP_BIT_XOR:
+    case OP_BIT_OR:
+    case OP_I_MULTIPLY:
+    case OP_I_DIVIDE:
+    case OP_I_MODULO:
+    case OP_I_ADD:
+    case OP_I_SUBTRACT:
+        if (!(o->op_flags & OPf_STACKED))
+            goto nomod;
+        PL_modcount++;
+        break;
 
-        if (o->op_type == OP_SASSIGN) {
-            /* Move the target subtree from being the last of o's children
-             * to being the last of o's preserved children.
-             * Note the difference between 'target = ...' and 'target .= ...':
-             * for the former, target is executed last; for the latter,
-             * first.
-             */
-            kid = OpSIBLING(lastkidop);
-            op_sibling_splice(o, kid, 1, NULL); /* cut target op */
-            op_sibling_splice(o, lastkidop, 0, targetop); /* and paste */
-            lastkidop->op_next = kid->op_next;
-            lastkidop = targetop;
+    case OP_REPEAT:
+        if (o->op_flags & OPf_STACKED) {
+            PL_modcount++;
+            break;
         }
+        if (!(o->op_private & OPpREPEAT_DOLIST))
+            goto nomod;
         else {
-            /* Move the target subtree from being the first of o's
-             * original children to being the first of *all* o's children.
+            const I32 mods = PL_modcount;
+            /* we recurse rather than iterate here because we need to
+             * calculate and use the delta applied to PL_modcount by the
+             * first child. So in something like
+             *     ($x, ($y) x 3) = split;
+             * split knows that 4 elements are wanted
              */
-            if (lastkidop) {
-                op_sibling_splice(o, lastkidop, 1, NULL); /* cut target op */
-                op_sibling_splice(o, NULL, 0, targetop);  /* and paste*/
-            }
-            else {
-                /* if the RHS of .= doesn't contain a concat (e.g.
-                 * $x .= "foo"), it gets missed by the "strip ops from the
-                 * tree and add to o" loop earlier */
-                assert(topop->op_type != OP_CONCAT);
-                if (stringop) {
-                    /* in e.g. $x .= "$y", move the $y expression
-                     * from being a child of OP_STRINGIFY to being the
-                     * second child of the OP_CONCAT
-                     */
-                    assert(cUNOPx(stringop)->op_first == topop);
-                    op_sibling_splice(stringop, NULL, 1, NULL);
-                    op_sibling_splice(o, cUNOPo->op_first, 0, topop);
-                }
-                assert(topop == OpSIBLING(cBINOPo->op_first));
-                if (toparg->p)
-                    op_null(topop);
-                lastkidop = topop;
+            modkids(cBINOPo->op_first, type);
+            if (type != OP_AASSIGN)
+                goto nomod;
+            kid = cBINOPo->op_last;
+            if (kid->op_type == OP_CONST && SvIOK(kSVOP_sv)) {
+                const IV iv = SvIV(kSVOP_sv);
+                if (PL_modcount != RETURN_UNLIMITED_NUMBER)
+                    PL_modcount =
+                        mods + (PL_modcount - mods) * (iv < 0 ? 0 : iv);
             }
+            else
+                PL_modcount = RETURN_UNLIMITED_NUMBER;
         }
+        break;
 
-        if (is_targable) {
-            /* optimise
-             *  my $lex  = A.B.C...
-             *     $lex  = A.B.C...
-             *     $lex .= A.B.C...
-             * The original padsv op is kept but nulled in case it's the
-             * entry point for the optree (which it will be for
-             * '$lex .=  ... '
-             */
-            private_flags |= OPpTARGET_MY;
-            private_flags |= (targetop->op_private & OPpLVAL_INTRO);
-            o->op_targ = targetop->op_targ;
-            targetop->op_targ = 0;
-            op_null(targetop);
-        }
-        else
-            flags |= OPf_STACKED;
-    }
-    else if (targmyop) {
-        private_flags |= OPpTARGET_MY;
-        if (o != targmyop) {
-            o->op_targ = targmyop->op_targ;
-            targmyop->op_targ = 0;
-        }
-    }
-
-    /* detach the emaciated husk of the sprintf/concat optree and free it */
-    for (;;) {
-        kid = op_sibling_splice(o, lastkidop, 1, NULL);
-        if (!kid)
-            break;
-        op_free(kid);
-    }
+    case OP_COND_EXPR:
+        localize = 1;
+        next_kid = OpSIBLING(cUNOPo->op_first);
+        break;
 
-    /* and convert o into a multiconcat */
+    case OP_RV2AV:
+    case OP_RV2HV:
+        if (type == OP_REFGEN && o->op_flags & OPf_PARENS) {
+           PL_modcount = RETURN_UNLIMITED_NUMBER;
+           /* Treat \(@foo) like ordinary list, but still mark it as modi-
+              fiable since some contexts need to know.  */
+           o->op_flags |= OPf_MOD;
+           goto do_next;
+        }
+        /* FALLTHROUGH */
+    case OP_RV2GV:
+        if (scalar_mod_type(o, type))
+            goto nomod;
+        ref(cUNOPo->op_first, o->op_type);
+        /* FALLTHROUGH */
+    case OP_ASLICE:
+    case OP_HSLICE:
+        localize = 1;
+        /* FALLTHROUGH */
+    case OP_AASSIGN:
+        /* Do not apply the lvsub flag for rv2[ah]v in scalar context.  */
+        if (type == OP_LEAVESUBLV && (
+                (o->op_type != OP_RV2AV && o->op_type != OP_RV2HV)
+             || (o->op_flags & OPf_WANT) != OPf_WANT_SCALAR
+           ))
+            o->op_private |= OPpMAYBE_LVSUB;
+        /* FALLTHROUGH */
+    case OP_NEXTSTATE:
+    case OP_DBSTATE:
+       PL_modcount = RETURN_UNLIMITED_NUMBER;
+        break;
 
-    o->op_flags        = (flags|OPf_KIDS|stacked_last
-                         |(o->op_flags & (OPf_WANT|OPf_PARENS)));
-    o->op_private      = private_flags;
-    o->op_type         = OP_MULTICONCAT;
-    o->op_ppaddr       = PL_ppaddr[OP_MULTICONCAT];
-    cUNOP_AUXo->op_aux = aux;
-}
+    case OP_KVHSLICE:
+    case OP_KVASLICE:
+    case OP_AKEYS:
+        if (type == OP_LEAVESUBLV)
+            o->op_private |= OPpMAYBE_LVSUB;
+        goto nomod;
 
+    case OP_AVHVSWITCH:
+        if (type == OP_LEAVESUBLV
+         && (o->op_private & OPpAVHVSWITCH_MASK) + OP_EACH == OP_KEYS)
+            o->op_private |= OPpMAYBE_LVSUB;
+        goto nomod;
 
-/* do all the final processing on an optree (e.g. running the peephole
- * optimiser on it), then attach it to cv (if cv is non-null)
- */
+    case OP_AV2ARYLEN:
+        PL_hints |= HINT_BLOCK_SCOPE;
+        if (type == OP_LEAVESUBLV)
+            o->op_private |= OPpMAYBE_LVSUB;
+        PL_modcount++;
+        break;
 
-static void
-S_process_optree(pTHX_ CV *cv, OP *optree, OP* start)
-{
-    OP **startp;
+    case OP_RV2SV:
+        ref(cUNOPo->op_first, o->op_type);
+        localize = 1;
+        /* FALLTHROUGH */
+    case OP_GV:
+        PL_hints |= HINT_BLOCK_SCOPE;
+        /* FALLTHROUGH */
+    case OP_SASSIGN:
+    case OP_ANDASSIGN:
+    case OP_ORASSIGN:
+    case OP_DORASSIGN:
+        PL_modcount++;
+        break;
 
-    /* XXX for some reason, evals, require and main optrees are
-     * never attached to their CV; instead they just hang off
-     * PL_main_root + PL_main_start or PL_eval_root + PL_eval_start
-     * and get manually freed when appropriate */
-    if (cv)
-        startp = &CvSTART(cv);
-    else
-        startp = PL_in_eval? &PL_eval_start : &PL_main_start;
+    case OP_AELEMFAST:
+    case OP_AELEMFAST_LEX:
+        localize = -1;
+        PL_modcount++;
+        break;
 
-    *startp = start;
-    optree->op_private |= OPpREFCOUNTED;
-    OpREFCNT_set(optree, 1);
-    optimize_optree(optree);
-    CALL_PEEP(*startp);
-    finalize_optree(optree);
-    S_prune_chain_head(startp);
+    case OP_PADAV:
+    case OP_PADHV:
+       PL_modcount = RETURN_UNLIMITED_NUMBER;
+        if (type == OP_REFGEN && o->op_flags & OPf_PARENS)
+        {
+           /* Treat \(@foo) like ordinary list, but still mark it as modi-
+              fiable since some contexts need to know.  */
+            o->op_flags |= OPf_MOD;
+            goto do_next;
+        }
+        if (scalar_mod_type(o, type))
+            goto nomod;
+        if ((o->op_flags & OPf_WANT) != OPf_WANT_SCALAR
+          && type == OP_LEAVESUBLV)
+            o->op_private |= OPpMAYBE_LVSUB;
+        /* FALLTHROUGH */
+    case OP_PADSV:
+        PL_modcount++;
+        if (!type) /* local() */
+            Perl_croak(aTHX_ "Can't localize lexical variable %" PNf,
+                              PNfARG(PAD_COMPNAME(o->op_targ)));
+        if (!(o->op_private & OPpLVAL_INTRO)
+         || (  type != OP_SASSIGN && type != OP_AASSIGN
+            && PadnameIsSTATE(PAD_COMPNAME_SV(o->op_targ))  ))
+            S_mark_padname_lvalue(aTHX_ PAD_COMPNAME_SV(o->op_targ));
+        break;
 
-    if (cv) {
-        /* now that optimizer has done its work, adjust pad values */
-        pad_tidy(optree->op_type == OP_LEAVEWRITE ? padtidy_FORMAT
-                 : CvCLONE(cv) ? padtidy_SUBCLONE : padtidy_SUB);
-    }
-}
+    case OP_PUSHMARK:
+        localize = 0;
+        break;
 
+    case OP_KEYS:
+        if (type != OP_LEAVESUBLV && !scalar_mod_type(NULL, type))
+            goto nomod;
+        goto lvalue_func;
+    case OP_SUBSTR:
+        if (o->op_private == 4) /* don't allow 4 arg substr as lvalue */
+            goto nomod;
+        /* FALLTHROUGH */
+    case OP_POS:
+    case OP_VEC:
+      lvalue_func:
+        if (type == OP_LEAVESUBLV)
+            o->op_private |= OPpMAYBE_LVSUB;
+        if (o->op_flags & OPf_KIDS && OpHAS_SIBLING(cBINOPo->op_first)) {
+            /* we recurse rather than iterate here because the child
+             * needs to be processed with a different 'type' parameter */
 
-/*
-=for apidoc optimize_optree
-
-This function applies some optimisations to the optree in top-down order.
-It is called before the peephole optimizer, which processes ops in
-execution order. Note that finalize_optree() also does a top-down scan,
-but is called *after* the peephole optimizer.
-
-=cut
-*/
-
-void
-Perl_optimize_optree(pTHX_ OP* o)
-{
-    PERL_ARGS_ASSERT_OPTIMIZE_OPTREE;
-
-    ENTER;
-    SAVEVPTR(PL_curcop);
-
-    optimize_op(o);
-
-    LEAVE;
-}
-
-
-#define warn_implicit_snail_cvsig(o)  S_warn_implicit_snail_cvsig(aTHX_ o)
-static void
-S_warn_implicit_snail_cvsig(pTHX_ OP *o)
-{
-    CV *cv = PL_compcv;
-    while(cv && CvEVAL(cv))
-        cv = CvOUTSIDE(cv);
-
-    if(cv && CvSIGNATURE(cv))
-        Perl_ck_warner_d(aTHX_ packWARN(WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES),
-            "Implicit use of @_ in %s with signatured subroutine is experimental", OP_DESC(o));
-}
-
-#define OP_ZOOM(o)  (OP_TYPE_IS(o, OP_NULL) ? cUNOPx(o)->op_first : (o))
-
-/* helper for optimize_optree() which optimises one op then recurses
- * to optimise any children.
- */
-
-STATIC void
-S_optimize_op(pTHX_ OP* o)
-{
-    OP *top_op = o;
-
-    PERL_ARGS_ASSERT_OPTIMIZE_OP;
-
-    while (1) {
-        OP * next_kid = NULL;
-
-        assert(o->op_type != OP_FREED);
-
-        switch (o->op_type) {
-        case OP_NEXTSTATE:
-        case OP_DBSTATE:
-            PL_curcop = ((COP*)o);		/* for warnings */
-            break;
+            /* substr and vec */
+            /* If this op is in merely potential (non-fatal) modifiable
+               context, then apply OP_ENTERSUB context to
+               the kid op (to avoid croaking).  Other-
+               wise pass this op’s own type so the correct op is mentioned
+               in error messages.  */
+            op_lvalue(OpSIBLING(cBINOPo->op_first),
+                      S_potential_mod_type(type)
+                        ? (I32)OP_ENTERSUB
+                        : o->op_type);
+        }
+        break;
 
+    case OP_AELEM:
+    case OP_HELEM:
+        ref(cBINOPo->op_first, o->op_type);
+        if (type == OP_ENTERSUB &&
+             !(o->op_private & (OPpLVAL_INTRO | OPpDEREF)))
+            o->op_private |= OPpLVAL_DEFER;
+        if (type == OP_LEAVESUBLV)
+            o->op_private |= OPpMAYBE_LVSUB;
+        localize = 1;
+        PL_modcount++;
+        break;
 
-        case OP_CONCAT:
-        case OP_SASSIGN:
-        case OP_STRINGIFY:
-        case OP_SPRINTF:
-            S_maybe_multiconcat(aTHX_ o);
-            break;
+    case OP_LEAVE:
+    case OP_LEAVELOOP:
+        o->op_private |= OPpLVALUE;
+        /* FALLTHROUGH */
+    case OP_SCOPE:
+    case OP_ENTER:
+    case OP_LINESEQ:
+        localize = 0;
+        if (o->op_flags & OPf_KIDS)
+            next_kid = cLISTOPo->op_last;
+        break;
 
-        case OP_SUBST:
-            if (cPMOPo->op_pmreplrootu.op_pmreplroot) {
-                /* we can't assume that op_pmreplroot->op_sibparent == o
-                 * and that it is thus possible to walk back up the tree
-                 * past op_pmreplroot. So, although we try to avoid
-                 * recursing through op trees, do it here. After all,
-                 * there are unlikely to be many nested s///e's within
-                 * the replacement part of a s///e.
-                 */
-                optimize_op(cPMOPo->op_pmreplrootu.op_pmreplroot);
-            }
+    case OP_NULL:
+        localize = 0;
+        if (o->op_flags & OPf_SPECIAL)		/* do BLOCK */
+            goto nomod;
+        else if (!(o->op_flags & OPf_KIDS))
             break;
 
-        case OP_RV2AV:
-        {
-            OP *first = (o->op_flags & OPf_KIDS) ? cUNOPo->op_first : NULL;
-            CV *cv = PL_compcv;
-            while(cv && CvEVAL(cv))
-                cv = CvOUTSIDE(cv);
-
-            if(cv && CvSIGNATURE(cv) &&
-                    OP_TYPE_IS(first, OP_GV) && cGVOPx_gv(first) == PL_defgv) {
-                OP *parent = op_parent(o);
-                while(OP_TYPE_IS(parent, OP_NULL))
-                    parent = op_parent(parent);
+        if (o->op_targ != OP_LIST) {
+            OP *sib = OpSIBLING(cLISTOPo->op_first);
+            /* OP_TRANS and OP_TRANSR with argument have a weird optree
+             * that looks like
+             *
+             *   null
+             *      arg
+             *      trans
+             *
+             * compared with things like OP_MATCH which have the argument
+             * as a child:
+             *
+             *   match
+             *      arg
+             *
+             * so handle specially to correctly get "Can't modify" croaks etc
+             */
 
-                Perl_ck_warner_d(aTHX_ packWARN(WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES),
-                    "Use of @_ in %s with signatured subroutine is experimental", OP_DESC(parent));
+            if (sib && (sib->op_type == OP_TRANS || sib->op_type == OP_TRANSR))
+            {
+                /* this should trigger a "Can't modify transliteration" err */
+                op_lvalue(sib, type);
             }
+            next_kid = cBINOPo->op_first;
+            /* we assume OP_NULLs which aren't ex-list have no more than 2
+             * children. If this assumption is wrong, increase the scan
+             * limit below */
+            assert(   !OpHAS_SIBLING(next_kid)
+                   || !OpHAS_SIBLING(OpSIBLING(next_kid)));
             break;
         }
+        /* FALLTHROUGH */
+    case OP_LIST:
+        localize = 0;
+        next_kid = cLISTOPo->op_first;
+        break;
 
-        case OP_SHIFT:
-        case OP_POP:
-            if(!CvUNIQUE(PL_compcv) && !(o->op_flags & OPf_KIDS))
-                warn_implicit_snail_cvsig(o);
-            break;
+    case OP_COREARGS:
+        goto do_next;
 
-        case OP_ENTERSUB:
-            if(!(o->op_flags & OPf_STACKED))
-                warn_implicit_snail_cvsig(o);
-            break;
+    case OP_AND:
+    case OP_OR:
+        if (type == OP_LEAVESUBLV
+         || !S_vivifies(cLOGOPo->op_first->op_type))
+            next_kid = cLOGOPo->op_first;
+        else if (type == OP_LEAVESUBLV
+         || !S_vivifies(OpSIBLING(cLOGOPo->op_first)->op_type))
+            next_kid = OpSIBLING(cLOGOPo->op_first);
+        goto nomod;
 
-        case OP_GOTO:
+    case OP_SREFGEN:
+        if (type == OP_NULL) { /* local */
+          local_refgen:
+            if (!FEATURE_MYREF_IS_ENABLED)
+                Perl_croak(aTHX_ "The experimental declared_refs "
+                                 "feature is not enabled");
+            Perl_ck_warner_d(aTHX_
+                     packWARN(WARN_EXPERIMENTAL__DECLARED_REFS),
+                    "Declaring references is experimental");
+            next_kid = cUNOPo->op_first;
+            goto do_next;
+        }
+        if (type != OP_AASSIGN && type != OP_SASSIGN
+         && type != OP_ENTERLOOP)
+            goto nomod;
+        /* Don’t bother applying lvalue context to the ex-list.  */
+        kid = cUNOPx(cUNOPo->op_first)->op_first;
+        assert (!OpHAS_SIBLING(kid));
+        goto kid_2lvref;
+    case OP_REFGEN:
+        if (type == OP_NULL) /* local */
+            goto local_refgen;
+        if (type != OP_AASSIGN) goto nomod;
+        kid = cUNOPo->op_first;
+      kid_2lvref:
         {
-            OP *first = (o->op_flags & OPf_KIDS) ? cUNOPo->op_first : NULL;
-            OP *ffirst;
-            if(OP_TYPE_IS(first, OP_SREFGEN) &&
-                    (ffirst = OP_ZOOM(cUNOPx(first)->op_first)) &&
-                    OP_TYPE_IS(ffirst, OP_RV2CV))
-                warn_implicit_snail_cvsig(o);
-            break;
+            const U8 ec = PL_parser ? PL_parser->error_count : 0;
+            S_lvref(aTHX_ kid, type);
+            if (!PL_parser || PL_parser->error_count == ec) {
+                if (!FEATURE_REFALIASING_IS_ENABLED)
+                    Perl_croak(aTHX_
+                       "Experimental aliasing via reference not enabled");
+                Perl_ck_warner_d(aTHX_
+                                 packWARN(WARN_EXPERIMENTAL__REFALIASING),
+                                "Aliasing via reference is experimental");
+            }
         }
+        if (o->op_type == OP_REFGEN)
+            op_null(cUNOPx(cUNOPo->op_first)->op_first); /* pushmark */
+        op_null(o);
+        goto do_next;
 
-        default:
+    case OP_SPLIT:
+        if ((o->op_private & OPpSPLIT_ASSIGN)) {
+            /* This is actually @array = split.  */
+            PL_modcount = RETURN_UNLIMITED_NUMBER;
             break;
         }
+        goto nomod;
 
-        if (o->op_flags & OPf_KIDS)
-            next_kid = cUNOPo->op_first;
+    case OP_SCALAR:
+        op_lvalue(cUNOPo->op_first, OP_ENTERSUB);
+        goto nomod;
 
-        /* if a kid hasn't been nominated to process, continue with the
-         * next sibling, or if no siblings left, go back to the parent's
-         * siblings and so on
+    case OP_ANONCODE:
+        /* If we were to set OPf_REF on this and it was constructed by XS
+         * code as a child of an OP_REFGEN then we'd end up generating a
+         * double-ref when executed. We don't want to do that, so don't
+         * set flag here.
+         *   See also https://github.com/Perl/perl5/issues/20384
          */
-        while (!next_kid) {
-            if (o == top_op)
-                return; /* at top; no parents/siblings to try */
-            if (OpHAS_SIBLING(o))
-                next_kid = o->op_sibparent;
-            else
-                o = o->op_sibparent; /*try parent's next sibling */
-        }
 
-      /* this label not yet used. Goto here if any code above sets
-       * next-kid
-       get_next_op:
-       */
-        o = next_kid;
+        // Perl always sets OPf_REF as of 5.37.5.
+        //
+        if (LIKELY(o->op_flags & OPf_REF)) goto nomod;
+
+        // If we got here, then our op came from an XS module that predates
+        // 5.37.5’s change to the op tree, which we have to handle a bit
+        // diffrently to preserve backward compatibility.
+        //
+        goto do_next;
     }
-}
-
 
-/*
-=for apidoc finalize_optree
+    /* [20011101.069 (#7861)] File test operators interpret OPf_REF to mean that
+       their argument is a filehandle; thus \stat(".") should not set
+       it. AMS 20011102 */
+    if (type == OP_REFGEN && OP_IS_STAT(o->op_type))
+        goto do_next;
 
-This function finalizes the optree.  Should be called directly after
-the complete optree is built.  It does some additional
-checking which can't be done in the normal C<ck_>xxx functions and makes
-the tree thread-safe.
+    if (type != OP_LEAVESUBLV)
+        o->op_flags |= OPf_MOD;
 
-=cut
-*/
-void
-Perl_finalize_optree(pTHX_ OP* o)
-{
-    PERL_ARGS_ASSERT_FINALIZE_OPTREE;
+    if (type == OP_AASSIGN || type == OP_SASSIGN)
+        o->op_flags |= o->op_type == OP_ENTERSUB ? 0 : OPf_SPECIAL|OPf_REF;
+    else if (!type) { /* local() */
+        switch (localize) {
+        case 1:
+            o->op_private |= OPpLVAL_INTRO;
+            o->op_flags &= ~OPf_SPECIAL;
+            PL_hints |= HINT_BLOCK_SCOPE;
+            break;
+        case 0:
+            break;
+        case -1:
+            Perl_ck_warner(aTHX_ packWARN(WARN_SYNTAX),
+                           "Useless localization of %s", OP_DESC(o));
+        }
+    }
+    else if (type != OP_GREPSTART && type != OP_ENTERSUB
+             && type != OP_LEAVESUBLV && o->op_type != OP_ENTERSUB)
+        o->op_flags |= OPf_REF;
 
-    ENTER;
-    SAVEVPTR(PL_curcop);
+  do_next:
+    while (!next_kid) {
+        if (o == top_op)
+            return top_op; /* at top; no parents/siblings to try */
+        if (OpHAS_SIBLING(o)) {
+            next_kid = o->op_sibparent;
+            if (!OpHAS_SIBLING(next_kid)) {
+                /* a few node types don't recurse into their second child */
+                OP *parent = next_kid->op_sibparent;
+                I32 ptype  = parent->op_type;
+                if (   (ptype == OP_NULL && parent->op_targ != OP_LIST)
+                    || (   (ptype == OP_AND || ptype == OP_OR)
+                        && (type != OP_LEAVESUBLV
+                            && S_vivifies(next_kid->op_type))
+                       )
+                )  {
+                    /*try parent's next sibling */
+                    o = parent;
+                    next_kid =  NULL;
+                }
+            }
+        }
+        else
+            o = o->op_sibparent; /*try parent's next sibling */
 
-    finalize_op(o);
+    }
+    o = next_kid;
 
-    LEAVE;
-}
+    } /* while */
 
-#ifdef USE_ITHREADS
-/* Relocate sv to the pad for thread safety.
- * Despite being a "constant", the SV is written to,
- * for reference counts, sv_upgrade() etc. */
-PERL_STATIC_INLINE void
-S_op_relocate_sv(pTHX_ SV** svp, PADOFFSET* targp)
-{
-    PADOFFSET ix;
-    PERL_ARGS_ASSERT_OP_RELOCATE_SV;
-    if (!*svp) return;
-    ix = pad_alloc(OP_CONST, SVf_READONLY);
-    SvREFCNT_dec(PAD_SVl(ix));
-    PAD_SETSV(ix, *svp);
-    /* XXX I don't know how this isn't readonly already. */
-    if (!SvIsCOW(PAD_SVl(ix))) SvREADONLY_on(PAD_SVl(ix));
-    *svp = NULL;
-    *targp = ix;
 }
-#endif
-
-/*
-=for apidoc traverse_op_tree
-
-Return the next op in a depth-first traversal of the op tree,
-returning NULL when the traversal is complete.
 
-The initial call must supply the root of the tree as both top and o.
 
-For now it's static, but it may be exposed to the API in the future.
-
-=cut
-*/
-
-STATIC OP*
-S_traverse_op_tree(pTHX_ OP *top, OP *o) {
-    OP *sib;
+STATIC bool
+S_scalar_mod_type(const OP *o, I32 type)
+{
+    switch (type) {
+    case OP_POS:
+    case OP_SASSIGN:
+        if (o && o->op_type == OP_RV2GV)
+            return FALSE;
+        /* FALLTHROUGH */
+    case OP_PREINC:
+    case OP_PREDEC:
+    case OP_POSTINC:
+    case OP_POSTDEC:
+    case OP_I_PREINC:
+    case OP_I_PREDEC:
+    case OP_I_POSTINC:
+    case OP_I_POSTDEC:
+    case OP_POW:
+    case OP_MULTIPLY:
+    case OP_DIVIDE:
+    case OP_MODULO:
+    case OP_REPEAT:
+    case OP_ADD:
+    case OP_SUBTRACT:
+    case OP_I_MULTIPLY:
+    case OP_I_DIVIDE:
+    case OP_I_MODULO:
+    case OP_I_ADD:
+    case OP_I_SUBTRACT:
+    case OP_LEFT_SHIFT:
+    case OP_RIGHT_SHIFT:
+    case OP_BIT_AND:
+    case OP_BIT_XOR:
+    case OP_BIT_OR:
+    case OP_NBIT_AND:
+    case OP_NBIT_XOR:
+    case OP_NBIT_OR:
+    case OP_SBIT_AND:
+    case OP_SBIT_XOR:
+    case OP_SBIT_OR:
+    case OP_CONCAT:
+    case OP_SUBST:
+    case OP_TRANS:
+    case OP_TRANSR:
+    case OP_READ:
+    case OP_SYSREAD:
+    case OP_RECV:
+    case OP_ANDASSIGN:
+    case OP_ORASSIGN:
+    case OP_DORASSIGN:
+    case OP_VEC:
+    case OP_SUBSTR:
+        return TRUE;
+    default:
+        return FALSE;
+    }
+}
 
-    PERL_ARGS_ASSERT_TRAVERSE_OP_TREE;
+STATIC bool
+S_is_handle_constructor(const OP *o, I32 numargs)
+{
+    PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR;
 
-    if ((o->op_flags & OPf_KIDS) && cUNOPo->op_first) {
-        return cUNOPo->op_first;
-    }
-    else if ((sib = OpSIBLING(o))) {
-        return sib;
+    switch (o->op_type) {
+    case OP_PIPE_OP:
+    case OP_SOCKPAIR:
+        if (numargs == 2)
+            return TRUE;
+        /* FALLTHROUGH */
+    case OP_SYSOPEN:
+    case OP_OPEN:
+    case OP_SELECT:		/* XXX c.f. SelectSaver.pm */
+    case OP_SOCKET:
+    case OP_OPEN_DIR:
+    case OP_ACCEPT:
+        if (numargs == 1)
+            return TRUE;
+        /* FALLTHROUGH */
+    default:
+        return FALSE;
     }
-    else {
-        OP *parent = o->op_sibparent;
-        assert(!(o->op_moresib));
-        while (parent && parent != top) {
-            OP *sib = OpSIBLING(parent);
-            if (sib)
-                return sib;
-            parent = parent->op_sibparent;
-        }
+}
 
-        return NULL;
+static OP *
+S_refkids(pTHX_ OP *o, I32 type)
+{
+    if (o && o->op_flags & OPf_KIDS) {
+        OP *kid;
+        for (kid = cLISTOPo->op_first; kid; kid = OpSIBLING(kid))
+            ref(kid, type);
     }
+    return o;
 }
 
-STATIC void
-S_finalize_op(pTHX_ OP* o)
+
+/* Apply reference (autovivification) context to the subtree at o.
+ * For example in
+ *     push @{expression}, ....;
+ * o will be the head of 'expression' and type will be OP_RV2AV.
+ * It marks the op o (or a suitable child) as autovivifying, e.g. by
+ * setting  OPf_MOD.
+ * For OP_RV2AV/OP_PADAV and OP_RV2HV/OP_PADHV sets OPf_REF too if
+ * set_op_ref is true.
+ *
+ * Also calls scalar(o).
+ */
+
+OP *
+Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
 {
-    OP * const top = o;
-    PERL_ARGS_ASSERT_FINALIZE_OP;
+    OP * top_op = o;
 
-    do {
-        assert(o->op_type != OP_FREED);
+    PERL_ARGS_ASSERT_DOREF;
+
+    if (PL_parser && PL_parser->error_count)
+        return o;
 
+    while (1) {
         switch (o->op_type) {
-        case OP_NEXTSTATE:
-        case OP_DBSTATE:
-            PL_curcop = ((COP*)o);		/* for warnings */
-            break;
-        case OP_EXEC:
-            if (OpHAS_SIBLING(o)) {
-                OP *sib = OpSIBLING(o);
-                if ((  sib->op_type == OP_NEXTSTATE || sib->op_type == OP_DBSTATE)
-                    && ckWARN(WARN_EXEC)
-                    && OpHAS_SIBLING(sib))
-                {
-                    const OPCODE type = OpSIBLING(sib)->op_type;
-                    if (type != OP_EXIT && type != OP_WARN && type != OP_DIE) {
-                        const line_t oldline = CopLINE(PL_curcop);
-                        CopLINE_set(PL_curcop, CopLINE((COP*)sib));
-                        Perl_warner(aTHX_ packWARN(WARN_EXEC),
-                            "Statement unlikely to be reached");
-                        Perl_warner(aTHX_ packWARN(WARN_EXEC),
-                            "\t(Maybe you meant system() when you said exec()?)\n");
-                        CopLINE_set(PL_curcop, oldline);
-                    }
-                }
+        case OP_ENTERSUB:
+            if ((type == OP_EXISTS || type == OP_DEFINED) &&
+                !(o->op_flags & OPf_STACKED)) {
+                OpTYPE_set(o, OP_RV2CV);             /* entersub => rv2cv */
+                assert(cUNOPo->op_first->op_type == OP_NULL);
+                /* disable pushmark */
+                op_null(cLISTOPx(cUNOPo->op_first)->op_first);
+                o->op_flags |= OPf_SPECIAL;
+            }
+            else if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV){
+                o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
+                                  : type == OP_RV2HV ? OPpDEREF_HV
+                                  : OPpDEREF_SV);
+                o->op_flags |= OPf_MOD;
             }
+
             break;
 
-        case OP_GV:
-            if ((o->op_private & OPpEARLY_CV) && ckWARN(WARN_PROTOTYPE)) {
-                GV * const gv = cGVOPo_gv;
-                if (SvTYPE(gv) == SVt_PVGV && GvCV(gv) && SvPVX_const(GvCV(gv))) {
-                    /* XXX could check prototype here instead of just carping */
-                    SV * const sv = sv_newmortal();
-                    gv_efullname3(sv, gv, NULL);
-                    Perl_warner(aTHX_ packWARN(WARN_PROTOTYPE),
-                                "%" SVf "() called too early to check prototype",
-                                SVfARG(sv));
-                }
+        case OP_COND_EXPR:
+            o = OpSIBLING(cUNOPo->op_first);
+            continue;
+
+        case OP_RV2SV:
+            if (type == OP_DEFINED)
+                o->op_flags |= OPf_SPECIAL;		/* don't create GV */
+            /* FALLTHROUGH */
+        case OP_PADSV:
+            if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV) {
+                o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
+                                  : type == OP_RV2HV ? OPpDEREF_HV
+                                  : OPpDEREF_SV);
+                o->op_flags |= OPf_MOD;
+            }
+            if (o->op_flags & OPf_KIDS) {
+                type = o->op_type;
+                o = cUNOPo->op_first;
+                continue;
             }
             break;
 
-        case OP_CONST:
-            if (cSVOPo->op_private & OPpCONST_STRICT)
-                no_bareword_allowed(o);
-#ifdef USE_ITHREADS
+        case OP_RV2AV:
+        case OP_RV2HV:
+            if (set_op_ref)
+                o->op_flags |= OPf_REF;
             /* FALLTHROUGH */
-        case OP_HINTSEVAL:
-            op_relocate_sv(&cSVOPo->op_sv, &o->op_targ);
-#endif
-            break;
+        case OP_RV2GV:
+            if (type == OP_DEFINED)
+                o->op_flags |= OPf_SPECIAL;		/* don't create GV */
+            type = o->op_type;
+            o = cUNOPo->op_first;
+            continue;
 
-#ifdef USE_ITHREADS
-            /* Relocate all the METHOP's SVs to the pad for thread safety. */
-        case OP_METHOD_NAMED:
-        case OP_METHOD_SUPER:
-        case OP_METHOD_REDIR:
-        case OP_METHOD_REDIR_SUPER:
-            op_relocate_sv(&cMETHOPx(o)->op_u.op_meth_sv, &o->op_targ);
+        case OP_PADAV:
+        case OP_PADHV:
+            if (set_op_ref)
+                o->op_flags |= OPf_REF;
             break;
-#endif
-
-        case OP_HELEM: {
-            UNOP *rop;
-            SVOP *key_op;
-            OP *kid;
 
-            if ((key_op = cSVOPx(((BINOP*)o)->op_last))->op_type != OP_CONST)
+        case OP_SCALAR:
+        case OP_NULL:
+            if (!(o->op_flags & OPf_KIDS) || type == OP_DEFINED)
                 break;
+             o = cBINOPo->op_first;
+            continue;
 
-            rop = (UNOP*)((BINOP*)o)->op_first;
-
-            goto check_keys;
-
-            case OP_HSLICE:
-                S_scalar_slice_warning(aTHX_ o);
-                /* FALLTHROUGH */
-
-            case OP_KVHSLICE:
-                kid = OpSIBLING(cLISTOPo->op_first);
-            if (/* I bet there's always a pushmark... */
-                OP_TYPE_ISNT_AND_WASNT_NN(kid, OP_LIST)
-                && OP_TYPE_ISNT_NN(kid, OP_CONST))
-            {
-                break;
+        case OP_AELEM:
+        case OP_HELEM:
+            if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV) {
+                o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
+                                  : type == OP_RV2HV ? OPpDEREF_HV
+                                  : OPpDEREF_SV);
+                o->op_flags |= OPf_MOD;
             }
+            type = o->op_type;
+            o = cBINOPo->op_first;
+            continue;;
 
-            key_op = (SVOP*)(kid->op_type == OP_CONST
-                             ? kid
-                             : OpSIBLING(kLISTOP->op_first));
-
-            rop = (UNOP*)((LISTOP*)o)->op_last;
-
-        check_keys:
-            if (o->op_private & OPpLVAL_INTRO || rop->op_type != OP_RV2HV)
-                rop = NULL;
-            S_check_hash_fields_and_hekify(aTHX_ rop, key_op, 1);
-            break;
-        }
-        case OP_NULL:
-            if (o->op_targ != OP_HSLICE && o->op_targ != OP_ASLICE)
-                break;
+        case OP_SCOPE:
+        case OP_LEAVE:
+            set_op_ref = FALSE;
             /* FALLTHROUGH */
-        case OP_ASLICE:
-            S_scalar_slice_warning(aTHX_ o);
-            break;
+        case OP_ENTER:
+        case OP_LIST:
+            if (!(o->op_flags & OPf_KIDS))
+                break;
+            o = cLISTOPo->op_last;
+            continue;
 
-        case OP_SUBST: {
-            if (cPMOPo->op_pmreplrootu.op_pmreplroot)
-                finalize_op(cPMOPo->op_pmreplrootu.op_pmreplroot);
-            break;
-        }
         default:
             break;
-        }
+        } /* switch */
 
-#ifdef DEBUGGING
-        if (o->op_flags & OPf_KIDS) {
-            OP *kid;
-
-            /* check that op_last points to the last sibling, and that
-             * the last op_sibling/op_sibparent field points back to the
-             * parent, and that the only ops with KIDS are those which are
-             * entitled to them */
-            U32 type = o->op_type;
-            U32 family;
-            bool has_last;
-
-            if (type == OP_NULL) {
-                type = o->op_targ;
-                /* ck_glob creates a null UNOP with ex-type GLOB
-                 * (which is a list op. So pretend it wasn't a listop */
-                if (type == OP_GLOB)
-                    type = OP_NULL;
-            }
-            family = PL_opargs[type] & OA_CLASS_MASK;
-
-            has_last = (   family == OA_BINOP
-                        || family == OA_LISTOP
-                        || family == OA_PMOP
-                        || family == OA_LOOP
-                       );
-            assert(  has_last /* has op_first and op_last, or ...
-                  ... has (or may have) op_first: */
-                  || family == OA_UNOP
-                  || family == OA_UNOP_AUX
-                  || family == OA_LOGOP
-                  || family == OA_BASEOP_OR_UNOP
-                  || family == OA_FILESTATOP
-                  || family == OA_LOOPEXOP
-                  || family == OA_METHOP
-                  || type == OP_CUSTOM
-                  || type == OP_NULL /* new_logop does this */
-                  );
-
-            for (kid = cUNOPo->op_first; kid; kid = OpSIBLING(kid)) {
-                if (!OpHAS_SIBLING(kid)) {
-                    if (has_last)
-                        assert(kid == cLISTOPo->op_last);
-                    assert(kid->op_sibparent == o);
-                }
+        while (1) {
+            if (o == top_op)
+                return scalar(top_op); /* at top; no parents/siblings to try */
+            if (OpHAS_SIBLING(o)) {
+                o = o->op_sibparent;
+                /* Normally skip all siblings and go straight to the parent;
+                 * the only op that requires two children to be processed
+                 * is OP_COND_EXPR */
+                if (!OpHAS_SIBLING(o)
+                        && o->op_sibparent->op_type == OP_COND_EXPR)
+                    break;
+                continue;
             }
+            o = o->op_sibparent; /*try parent's next sibling */
         }
-#endif
-    } while (( o = traverse_op_tree(top, o)) != NULL);
+    } /* while */
 }
 
-static void
-S_mark_padname_lvalue(pTHX_ PADNAME *pn)
+
+STATIC OP *
+S_dup_attrlist(pTHX_ OP *o)
 {
-    CV *cv = PL_compcv;
-    PadnameLVALUE_on(pn);
-    while (PadnameOUTER(pn) && PARENT_PAD_INDEX(pn)) {
-        cv = CvOUTSIDE(cv);
-        /* RT #127786: cv can be NULL due to an eval within the DB package
-         * called from an anon sub - anon subs don't have CvOUTSIDE() set
-         * unless they contain an eval, but calling eval within DB
-         * pretends the eval was done in the caller's scope.
-         */
-        if (!cv)
-            break;
-        assert(CvPADLIST(cv));
-        pn =
-           PadlistNAMESARRAY(CvPADLIST(cv))[PARENT_PAD_INDEX(pn)];
-        assert(PadnameLEN(pn));
-        PadnameLVALUE_on(pn);
+    OP *rop;
+
+    PERL_ARGS_ASSERT_DUP_ATTRLIST;
+
+    /* An attrlist is either a simple OP_CONST or an OP_LIST with kids,
+     * where the first kid is OP_PUSHMARK and the remaining ones
+     * are OP_CONST.  We need to push the OP_CONST values.
+     */
+    if (o->op_type == OP_CONST)
+        rop = newSVOP(OP_CONST, o->op_flags, SvREFCNT_inc_NN(cSVOPo->op_sv));
+    else {
+        assert((o->op_type == OP_LIST) && (o->op_flags & OPf_KIDS));
+        rop = NULL;
+        for (o = cLISTOPo->op_first; o; o = OpSIBLING(o)) {
+            if (o->op_type == OP_CONST)
+                rop = op_append_elem(OP_LIST, rop,
+                                  newSVOP(OP_CONST, o->op_flags,
+                                          SvREFCNT_inc_NN(cSVOPo->op_sv)));
+        }
     }
+    return rop;
 }
 
-static bool
-S_vivifies(const OPCODE type)
+STATIC void
+S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs)
 {
-    switch(type) {
-    case OP_RV2AV:     case   OP_ASLICE:
-    case OP_RV2HV:     case OP_KVASLICE:
-    case OP_RV2SV:     case   OP_HSLICE:
-    case OP_AELEMFAST: case OP_KVHSLICE:
-    case OP_HELEM:
-    case OP_AELEM:
-        return 1;
+    PERL_ARGS_ASSERT_APPLY_ATTRS;
+    {
+        SV * const stashsv = newSVhek(HvNAME_HEK(stash));
+
+        /* fake up C<use attributes $pkg,$rv,@attrs> */
+
+#define ATTRSMODULE "attributes"
+#define ATTRSMODULE_PM "attributes.pm"
+
+        Perl_load_module(
+          aTHX_ PERL_LOADMOD_IMPORT_OPS,
+          newSVpvs(ATTRSMODULE),
+          NULL,
+          op_prepend_elem(OP_LIST,
+                          newSVOP(OP_CONST, 0, stashsv),
+                          op_prepend_elem(OP_LIST,
+                                          newSVOP(OP_CONST, 0,
+                                                  newRV(target)),
+                                          dup_attrlist(attrs))));
     }
-    return 0;
 }
 
+STATIC void
+S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp)
+{
+    OP *pack, *imop, *arg;
+    SV *meth, *stashsv, **svp;
 
-/* apply lvalue reference (aliasing) context to the optree o.
- * E.g. in
- *     \($x,$y) = (...)
- * o would be the list ($x,$y) and type would be OP_AASSIGN.
- * It may descend and apply this to children too, for example in
- * \( $cond ? $x, $y) = (...)
- */
+    PERL_ARGS_ASSERT_APPLY_ATTRS_MY;
 
-static void
-S_lvref(pTHX_ OP *o, I32 type)
-{
-    OP *kid;
-    OP * top_op = o;
+    if (!attrs)
+        return;
 
-    while (1) {
-        switch (o->op_type) {
-        case OP_COND_EXPR:
-            o = OpSIBLING(cUNOPo->op_first);
-            continue;
+    assert(target->op_type == OP_PADSV ||
+           target->op_type == OP_PADHV ||
+           target->op_type == OP_PADAV);
 
-        case OP_PUSHMARK:
-            goto do_next;
+    /* Ensure that attributes.pm is loaded. */
+    /* Don't force the C<use> if we don't need it. */
+    svp = hv_fetchs(GvHVn(PL_incgv), ATTRSMODULE_PM, FALSE);
+    if (svp && *svp != &PL_sv_undef)
+        NOOP;	/* already in %INC */
+    else
+        Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
+                               newSVpvs(ATTRSMODULE), NULL);
 
-        case OP_RV2AV:
-            if (cUNOPo->op_first->op_type != OP_GV) goto badref;
-            o->op_flags |= OPf_STACKED;
-            if (o->op_flags & OPf_PARENS) {
-                if (o->op_private & OPpLVAL_INTRO) {
-                     yyerror(Perl_form(aTHX_ "Can't modify reference to "
-                          "localized parenthesized array in list assignment"));
-                    goto do_next;
-                }
-              slurpy:
-                OpTYPE_set(o, OP_LVAVREF);
-                o->op_private &= OPpLVAL_INTRO|OPpPAD_STATE;
-                o->op_flags |= OPf_MOD|OPf_REF;
-                goto do_next;
-            }
-            o->op_private |= OPpLVREF_AV;
-            goto checkgv;
+    /* Need package name for method call. */
+    pack = newSVOP(OP_CONST, 0, newSVpvs(ATTRSMODULE));
 
-        case OP_RV2CV:
-            kid = cUNOPo->op_first;
-            if (kid->op_type == OP_NULL)
-                kid = cUNOPx(OpSIBLING(kUNOP->op_first))
-                    ->op_first;
-            o->op_private = OPpLVREF_CV;
-            if (kid->op_type == OP_GV)
-                o->op_flags |= OPf_STACKED;
-            else if (kid->op_type == OP_PADCV) {
-                o->op_targ = kid->op_targ;
-                kid->op_targ = 0;
-                op_free(cUNOPo->op_first);
-                cUNOPo->op_first = NULL;
-                o->op_flags &=~ OPf_KIDS;
-            }
-            else goto badref;
-            break;
+    /* Build up the real arg-list. */
+    stashsv = newSVhek(HvNAME_HEK(stash));
 
-        case OP_RV2HV:
-            if (o->op_flags & OPf_PARENS) {
-              parenhash:
-                yyerror(Perl_form(aTHX_ "Can't modify reference to "
-                                     "parenthesized hash in list assignment"));
-                    goto do_next;
-            }
-            o->op_private |= OPpLVREF_HV;
-            /* FALLTHROUGH */
-        case OP_RV2SV:
-          checkgv:
-            if (cUNOPo->op_first->op_type != OP_GV) goto badref;
-            o->op_flags |= OPf_STACKED;
-            break;
+    arg = newPADxVOP(OP_PADSV, 0, target->op_targ);
+    arg = op_prepend_elem(OP_LIST,
+                       newSVOP(OP_CONST, 0, stashsv),
+                       op_prepend_elem(OP_LIST,
+                                    newUNOP(OP_REFGEN, 0,
+                                            arg),
+                                    dup_attrlist(attrs)));
 
-        case OP_PADHV:
-            if (o->op_flags & OPf_PARENS) goto parenhash;
-            o->op_private |= OPpLVREF_HV;
-            /* FALLTHROUGH */
-        case OP_PADSV:
-            PAD_COMPNAME_GEN_set(o->op_targ, PERL_INT_MAX);
-            break;
+    /* Fake up a method call to import */
+    meth = newSVpvs_share("import");
+    imop = op_convert_list(OP_ENTERSUB, OPf_STACKED|OPf_WANT_VOID,
+                   op_append_elem(OP_LIST,
+                               op_prepend_elem(OP_LIST, pack, arg),
+                               newMETHOP_named(OP_METHOD_NAMED, 0, meth)));
 
-        case OP_PADAV:
-            PAD_COMPNAME_GEN_set(o->op_targ, PERL_INT_MAX);
-            if (o->op_flags & OPf_PARENS) goto slurpy;
-            o->op_private |= OPpLVREF_AV;
-            break;
+    /* Combine the ops. */
+    *imopsp = op_append_elem(OP_LIST, *imopsp, imop);
+}
 
-        case OP_AELEM:
-        case OP_HELEM:
-            o->op_private |= OPpLVREF_ELEM;
-            o->op_flags   |= OPf_STACKED;
-            break;
+/*
+=notfor apidoc apply_attrs_string
 
-        case OP_ASLICE:
-        case OP_HSLICE:
-            OpTYPE_set(o, OP_LVREFSLICE);
-            o->op_private &= OPpLVAL_INTRO;
-            goto do_next;
+Attempts to apply a list of attributes specified by the C<attrstr> and
+C<len> arguments to the subroutine identified by the C<cv> argument which
+is expected to be associated with the package identified by the C<stashpv>
+argument (see L<attributes>).  It gets this wrong, though, in that it
+does not correctly identify the boundaries of the individual attribute
+specifications within C<attrstr>.  This is not really intended for the
+public API, but has to be listed here for systems such as AIX which
+need an explicit export list for symbols.  (It's called from XS code
+in support of the C<ATTRS:> keyword from F<xsubpp>.)  Patches to fix it
+to respect attribute syntax properly would be welcome.
 
-        case OP_NULL:
-            if (o->op_flags & OPf_SPECIAL)		/* do BLOCK */
-                goto badref;
-            else if (!(o->op_flags & OPf_KIDS))
-                goto do_next;
+=cut
+*/
 
-            /* the code formerly only recursed into the first child of
-             * a non ex-list OP_NULL. if we ever encounter such a null op with
-             * more than one child, need to decide whether its ok to process
-             * *all* its kids or not */
-            assert(o->op_targ == OP_LIST
-                    || !(OpHAS_SIBLING(cBINOPo->op_first)));
-            /* FALLTHROUGH */
-        case OP_LIST:
-            o = cLISTOPo->op_first;
-            continue;
+void
+Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv,
+                        const char *attrstr, STRLEN len)
+{
+    OP *attrs = NULL;
 
-        case OP_STUB:
-            if (o->op_flags & OPf_PARENS)
-                goto do_next;
-            /* FALLTHROUGH */
-        default:
-          badref:
-            /* diag_listed_as: Can't modify reference to %s in %s assignment */
-            yyerror(Perl_form(aTHX_ "Can't modify reference to %s in %s",
-                         o->op_type == OP_NULL && o->op_flags & OPf_SPECIAL
-                          ? "do block"
-                          : OP_DESC(o),
-                         PL_op_desc[type]));
-            goto do_next;
-        }
+    PERL_ARGS_ASSERT_APPLY_ATTRS_STRING;
 
-        OpTYPE_set(o, OP_LVREF);
-        o->op_private &=
-            OPpLVAL_INTRO|OPpLVREF_ELEM|OPpLVREF_TYPE|OPpPAD_STATE;
-        if (type == OP_ENTERLOOP)
-            o->op_private |= OPpLVREF_ITER;
+    if (!len) {
+        len = strlen(attrstr);
+    }
 
-      do_next:
-        while (1) {
-            if (o == top_op)
-                return; /* at top; no parents/siblings to try */
-            if (OpHAS_SIBLING(o)) {
-                o = o->op_sibparent;
-                break;
-            }
-            o = o->op_sibparent; /*try parent's next sibling */
+    while (len) {
+        for (; isSPACE(*attrstr) && len; --len, ++attrstr) ;
+        if (len) {
+            const char * const sstr = attrstr;
+            for (; !isSPACE(*attrstr) && len; --len, ++attrstr) ;
+            attrs = op_append_elem(OP_LIST, attrs,
+                                newSVOP(OP_CONST, 0,
+                                        newSVpvn(sstr, attrstr-sstr)));
         }
-    } /* while */
-}
-
+    }
 
-PERL_STATIC_INLINE bool
-S_potential_mod_type(I32 type)
-{
-    /* Types that only potentially result in modification.  */
-    return type == OP_GREPSTART || type == OP_ENTERSUB
-        || type == OP_REFGEN    || type == OP_LEAVESUBLV;
+    Perl_load_module(aTHX_ PERL_LOADMOD_IMPORT_OPS,
+                     newSVpvs(ATTRSMODULE),
+                     NULL, op_prepend_elem(OP_LIST,
+                                  newSVOP(OP_CONST, 0, newSVpv(stashpv,0)),
+                                  op_prepend_elem(OP_LIST,
+                                               newSVOP(OP_CONST, 0,
+                                                       newRV(MUTABLE_SV(cv))),
+                                               attrs)));
 }
 
+STATIC void
+S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV * name,
+                        bool curstash)
+{
+    OP *new_proto = NULL;
+    STRLEN pvlen;
+    char *pv;
+    OP *o;
 
-/*
-=for apidoc op_lvalue
+    PERL_ARGS_ASSERT_MOVE_PROTO_ATTR;
 
-Propagate lvalue ("modifiable") context to an op and its children.
-C<type> represents the context type, roughly based on the type of op that
-would do the modifying, although C<local()> is represented by C<OP_NULL>,
-because it has no op type of its own (it is signalled by a flag on
-the lvalue op).
+    if (!*attrs)
+        return;
 
-This function detects things that can't be modified, such as C<$x+1>, and
-generates errors for them.  For example, C<$x+1 = 2> would cause it to be
-called with an op of type C<OP_ADD> and a C<type> argument of C<OP_SASSIGN>.
+    o = *attrs;
+    if (o->op_type == OP_CONST) {
+        pv = SvPV(cSVOPo_sv, pvlen);
+        if (memBEGINs(pv, pvlen, "prototype(")) {
+            SV * const tmpsv = newSVpvn_flags(pv + 10, pvlen - 11, SvUTF8(cSVOPo_sv));
+            SV ** const tmpo = cSVOPx_svp(o);
+            SvREFCNT_dec(cSVOPo_sv);
+            *tmpo = tmpsv;
+            new_proto = o;
+            *attrs = NULL;
+        }
+    } else if (o->op_type == OP_LIST) {
+        OP * lasto;
+        assert(o->op_flags & OPf_KIDS);
+        lasto = cLISTOPo->op_first;
+        assert(lasto->op_type == OP_PUSHMARK);
+        for (o = OpSIBLING(lasto); o; o = OpSIBLING(o)) {
+            if (o->op_type == OP_CONST) {
+                pv = SvPV(cSVOPo_sv, pvlen);
+                if (memBEGINs(pv, pvlen, "prototype(")) {
+                    SV * const tmpsv = newSVpvn_flags(pv + 10, pvlen - 11, SvUTF8(cSVOPo_sv));
+                    SV ** const tmpo = cSVOPx_svp(o);
+                    SvREFCNT_dec(cSVOPo_sv);
+                    *tmpo = tmpsv;
+                    if (new_proto && ckWARN(WARN_MISC)) {
+                        STRLEN new_len;
+                        const char * newp = SvPV(cSVOPo_sv, new_len);
+                        Perl_warner(aTHX_ packWARN(WARN_MISC),
+                            "Attribute prototype(%" UTF8f ") discards earlier prototype attribute in same sub",
+                            UTF8fARG(SvUTF8(cSVOPo_sv), new_len, newp));
+                        op_free(new_proto);
+                    }
+                    else if (new_proto)
+                        op_free(new_proto);
+                    new_proto = o;
+                    /* excise new_proto from the list */
+                    op_sibling_splice(*attrs, lasto, 1, NULL);
+                    o = lasto;
+                    continue;
+                }
+            }
+            lasto = o;
+        }
+        /* If the list is now just the PUSHMARK, scrap the whole thing; otherwise attributes.xs
+           would get pulled in with no real need */
+        if (!OpHAS_SIBLING(cLISTOPx(*attrs)->op_first)) {
+            op_free(*attrs);
+            *attrs = NULL;
+        }
+    }
 
-It also flags things that need to behave specially in an lvalue context,
-such as C<$$x = 5> which might have to vivify a reference in C<$x>.
+    if (new_proto) {
+        SV *svname;
+        if (isGV(name)) {
+            svname = sv_newmortal();
+            gv_efullname3(svname, name, NULL);
+        }
+        else if (SvPOK(name) && *SvPVX((SV *)name) == '&')
+            svname = newSVpvn_flags(SvPVX((SV *)name)+1, SvCUR(name)-1, SvUTF8(name)|SVs_TEMP);
+        else
+            svname = (SV *)name;
+        if (ckWARN(WARN_ILLEGALPROTO))
+            (void)validate_proto(svname, cSVOPx_sv(new_proto), TRUE,
+                                 curstash);
+        if (*proto && ckWARN(WARN_PROTOTYPE)) {
+            STRLEN old_len, new_len;
+            const char * oldp = SvPV(cSVOPx_sv(*proto), old_len);
+            const char * newp = SvPV(cSVOPx_sv(new_proto), new_len);
 
-=cut
+            if (curstash && svname == (SV *)name
+             && !memchr(SvPVX(svname), ':', SvCUR(svname))) {
+                svname = sv_2mortal(newSVsv(PL_curstname));
+                sv_catpvs(svname, "::");
+                sv_catsv(svname, (SV *)name);
+            }
 
-Perl_op_lvalue_flags() is a non-API lower-level interface to
-op_lvalue().  The flags param has these bits:
-    OP_LVALUE_NO_CROAK:  return rather than croaking on error
+            Perl_warner(aTHX_ packWARN(WARN_PROTOTYPE),
+                "Prototype '%" UTF8f "' overridden by attribute 'prototype(%" UTF8f ")'"
+                " in %" SVf,
+                UTF8fARG(SvUTF8(cSVOPx_sv(*proto)), old_len, oldp),
+                UTF8fARG(SvUTF8(cSVOPx_sv(new_proto)), new_len, newp),
+                SVfARG(svname));
+        }
+        if (*proto)
+            op_free(*proto);
+        *proto = new_proto;
+    }
+}
 
-*/
+static void
+S_cant_declare(pTHX_ OP *o)
+{
+    if (o->op_type == OP_NULL
+     && (o->op_flags & (OPf_SPECIAL|OPf_KIDS)) == OPf_KIDS)
+        o = cUNOPo->op_first;
+    yyerror(Perl_form(aTHX_ "Can't declare %s in \"%s\"",
+                             o->op_type == OP_NULL
+                               && o->op_flags & OPf_SPECIAL
+                                 ? "do block"
+                                 : OP_DESC(o),
+                             PL_parser->in_my == KEY_our   ? "our"   :
+                             PL_parser->in_my == KEY_state ? "state" :
+                                                             "my"));
+}
 
-OP *
-Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags)
+STATIC OP *
+S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
 {
-    OP *top_op = o;
+    I32 type;
+    const bool stately = PL_parser && PL_parser->in_my == KEY_state;
+
+    PERL_ARGS_ASSERT_MY_KID;
 
     if (!o || (PL_parser && PL_parser->error_count))
         return o;
 
-    while (1) {
-    OP *kid;
-    /* -1 = error on localize, 0 = ignore localize, 1 = ok to localize */
-    int localize = -1;
-    OP *next_kid = NULL;
+    type = o->op_type;
 
-    if ((o->op_private & OPpTARGET_MY)
-        && (PL_opargs[o->op_type] & OA_TARGLEX))/* OPp share the meaning */
+    if (OP_TYPE_IS_OR_WAS(o, OP_LIST)) {
+        OP *kid;
+        for (kid = cLISTOPo->op_first; kid; kid = OpSIBLING(kid))
+            my_kid(kid, attrs, imopsp);
+        return o;
+    } else if (type == OP_UNDEF || type == OP_STUB) {
+        return o;
+    } else if (type == OP_RV2SV ||	/* "our" declaration */
+               type == OP_RV2AV ||
+               type == OP_RV2HV) {
+        if (cUNOPo->op_first->op_type != OP_GV) { /* MJD 20011224 */
+            S_cant_declare(aTHX_ o);
+        } else if (attrs) {
+            GV * const gv = cGVOPx_gv(cUNOPo->op_first);
+            assert(PL_parser);
+            PL_parser->in_my = FALSE;
+            PL_parser->in_my_stash = NULL;
+            apply_attrs(GvSTASH(gv),
+                        (type == OP_RV2SV ? GvSVn(gv) :
+                         type == OP_RV2AV ? MUTABLE_SV(GvAVn(gv)) :
+                         type == OP_RV2HV ? MUTABLE_SV(GvHVn(gv)) : MUTABLE_SV(gv)),
+                        attrs);
+        }
+        o->op_private |= OPpOUR_INTRO;
+        return o;
+    }
+    else if (type == OP_REFGEN || type == OP_SREFGEN) {
+        if (!FEATURE_MYREF_IS_ENABLED)
+            Perl_croak(aTHX_ "The experimental declared_refs "
+                             "feature is not enabled");
+        Perl_ck_warner_d(aTHX_
+             packWARN(WARN_EXPERIMENTAL__DECLARED_REFS),
+            "Declaring references is experimental");
+        /* Kid is a nulled OP_LIST, handled above.  */
+        my_kid(cUNOPo->op_first, attrs, imopsp);
+        return o;
+    }
+    else if (type != OP_PADSV &&
+             type != OP_PADAV &&
+             type != OP_PADHV &&
+             type != OP_PUSHMARK)
     {
-        goto do_next;
+        S_cant_declare(aTHX_ o);
+        return o;
     }
+    else if (attrs && type != OP_PUSHMARK) {
+        HV *stash;
 
-    /* elements of a list might be in void context because the list is
-       in scalar context or because they are attribute sub calls */
-    if ((o->op_flags & OPf_WANT) == OPf_WANT_VOID)
-        goto do_next;
-
-    if (type == OP_PRTF || type == OP_SPRINTF) type = OP_ENTERSUB;
+        assert(PL_parser);
+        PL_parser->in_my = FALSE;
+        PL_parser->in_my_stash = NULL;
 
-    switch (o->op_type) {
-    case OP_UNDEF:
-        if (type == OP_SASSIGN)
-            goto nomod;
-        PL_modcount++;
-        goto do_next;
+        /* check for C<my Dog $spot> when deciding package */
+        stash = PAD_COMPNAME_TYPE(o->op_targ);
+        if (!stash)
+            stash = PL_curstash;
+        apply_attrs_my(stash, o, attrs, imopsp);
+    }
+    o->op_flags |= OPf_MOD;
+    o->op_private |= OPpLVAL_INTRO;
+    if (stately)
+        o->op_private |= OPpPAD_STATE;
+    return o;
+}
 
-    case OP_STUB:
-        if ((o->op_flags & OPf_PARENS))
-            break;
-        goto nomod;
+OP *
+Perl_my_attrs(pTHX_ OP *o, OP *attrs)
+{
+    OP *rops;
+    int maybe_scalar = 0;
 
-    case OP_ENTERSUB:
-        if ((type == OP_UNDEF || type == OP_REFGEN || type == OP_LOCK) &&
-            !(o->op_flags & OPf_STACKED)) {
-            OpTYPE_set(o, OP_RV2CV);		/* entersub => rv2cv */
-            assert(cUNOPo->op_first->op_type == OP_NULL);
-            op_null(((LISTOP*)cUNOPo->op_first)->op_first);/* disable pushmark */
-            break;
-        }
-        else {				/* lvalue subroutine call */
+    PERL_ARGS_ASSERT_MY_ATTRS;
+
+/* [perl #17376]: this appears to be premature, and results in code such as
+   C< our(%x); > executing in list mode rather than void mode */
+#if 0
+    if (o->op_flags & OPf_PARENS)
+        list(o);
+    else
+        maybe_scalar = 1;
+#else
+    maybe_scalar = 1;
+#endif
+    if (attrs)
+        SAVEFREEOP(attrs);
+    rops = NULL;
+    o = my_kid(o, attrs, &rops);
+    if (rops) {
+        if (maybe_scalar && o->op_type == OP_PADSV) {
+            o = scalar(op_append_list(OP_LIST, rops, o));
             o->op_private |= OPpLVAL_INTRO;
-            PL_modcount = RETURN_UNLIMITED_NUMBER;
-            if (S_potential_mod_type(type)) {
-                o->op_private |= OPpENTERSUB_INARGS;
-                break;
+        }
+        else {
+            /* The listop in rops might have a pushmark at the beginning,
+               which will mess up list assignment. */
+            LISTOP * const lrops = cLISTOPx(rops); /* for brevity */
+            if (rops->op_type == OP_LIST &&
+                lrops->op_first && lrops->op_first->op_type == OP_PUSHMARK)
+            {
+                OP * const pushmark = lrops->op_first;
+                /* excise pushmark */
+                op_sibling_splice(rops, NULL, 1, NULL);
+                op_free(pushmark);
             }
-            else {                      /* Compile-time error message: */
-                OP *kid = cUNOPo->op_first;
-                CV *cv;
-                GV *gv;
-                SV *namesv;
+            o = op_append_list(OP_LIST, o, rops);
+        }
+    }
+    PL_parser->in_my = FALSE;
+    PL_parser->in_my_stash = NULL;
+    return o;
+}
 
-                if (kid->op_type != OP_PUSHMARK) {
-                    if (kid->op_type != OP_NULL || kid->op_targ != OP_LIST)
-                        Perl_croak(aTHX_
-                                "panic: unexpected lvalue entersub "
-                                "args: type/targ %ld:%" UVuf,
-                                (long)kid->op_type, (UV)kid->op_targ);
-                    kid = kLISTOP->op_first;
-                }
-                while (OpHAS_SIBLING(kid))
-                    kid = OpSIBLING(kid);
-                if (!(kid->op_type == OP_NULL && kid->op_targ == OP_RV2CV)) {
-                    break;	/* Postpone until runtime */
-                }
+OP *
+Perl_sawparens(pTHX_ OP *o)
+{
+    PERL_UNUSED_CONTEXT;
+    if (o)
+        o->op_flags |= OPf_PARENS;
+    return o;
+}
 
-                kid = kUNOP->op_first;
-                if (kid->op_type == OP_NULL && kid->op_targ == OP_RV2SV)
-                    kid = kUNOP->op_first;
-                if (kid->op_type == OP_NULL)
-                    Perl_croak(aTHX_
-                               "panic: unexpected constant lvalue entersub "
-                               "entry via type/targ %ld:%" UVuf,
-                               (long)kid->op_type, (UV)kid->op_targ);
-                if (kid->op_type != OP_GV) {
-                    break;
-                }
+OP *
+Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
+{
+    OP *o;
+    bool ismatchop = 0;
+    const OPCODE ltype = left->op_type;
+    const OPCODE rtype = right->op_type;
 
-                gv = kGVOP_gv;
-                cv = isGV(gv)
-                    ? GvCV(gv)
-                    : SvROK(gv) && SvTYPE(SvRV(gv)) == SVt_PVCV
-                        ? MUTABLE_CV(SvRV(gv))
-                        : NULL;
-                if (!cv)
-                    break;
-                if (CvLVALUE(cv))
-                    break;
-                if (flags & OP_LVALUE_NO_CROAK)
-                    return NULL;
+    PERL_ARGS_ASSERT_BIND_MATCH;
 
-                namesv = cv_name(cv, NULL, 0);
-                yyerror_pv(Perl_form(aTHX_ "Can't modify non-lvalue "
-                                     "subroutine call of &%" SVf " in %s",
-                                     SVfARG(namesv), PL_op_desc[type]),
-                           SvUTF8(namesv));
-                goto do_next;
-            }
-        }
-        /* FALLTHROUGH */
-    default:
-      nomod:
-        if (flags & OP_LVALUE_NO_CROAK) return NULL;
-        /* grep, foreach, subcalls, refgen */
-        if (S_potential_mod_type(type))
-            break;
-        yyerror(Perl_form(aTHX_ "Can't modify %s in %s",
-                     (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL)
-                      ? "do block"
-                      : OP_DESC(o)),
-                     type ? PL_op_desc[type] : "local"));
-        goto do_next;
+    if ( (ltype == OP_RV2AV || ltype == OP_RV2HV || ltype == OP_PADAV
+          || ltype == OP_PADHV) && ckWARN(WARN_MISC))
+    {
+      const char * const desc
+          = PL_op_desc[(
+                          rtype == OP_SUBST || rtype == OP_TRANS
+                       || rtype == OP_TRANSR
+                       )
+                       ? (int)rtype : OP_MATCH];
+      const bool isary = ltype == OP_RV2AV || ltype == OP_PADAV;
+      SV * const name = op_varname(left);
+      if (name)
+        Perl_warner(aTHX_ packWARN(WARN_MISC),
+             "Applying %s to %" SVf " will act on scalar(%" SVf ")",
+             desc, SVfARG(name), SVfARG(name));
+      else {
+        const char * const sample = (isary
+             ? "@array" : "%hash");
+        Perl_warner(aTHX_ packWARN(WARN_MISC),
+             "Applying %s to %s will act on scalar(%s)",
+             desc, sample, sample);
+      }
+    }
 
-    case OP_PREINC:
-    case OP_PREDEC:
-    case OP_POW:
-    case OP_MULTIPLY:
-    case OP_DIVIDE:
-    case OP_MODULO:
-    case OP_ADD:
-    case OP_SUBTRACT:
-    case OP_CONCAT:
-    case OP_LEFT_SHIFT:
-    case OP_RIGHT_SHIFT:
-    case OP_BIT_AND:
-    case OP_BIT_XOR:
-    case OP_BIT_OR:
-    case OP_I_MULTIPLY:
-    case OP_I_DIVIDE:
-    case OP_I_MODULO:
-    case OP_I_ADD:
-    case OP_I_SUBTRACT:
-        if (!(o->op_flags & OPf_STACKED))
-            goto nomod;
-        PL_modcount++;
-        break;
+    if (rtype == OP_CONST &&
+        cSVOPx(right)->op_private & OPpCONST_BARE &&
+        cSVOPx(right)->op_private & OPpCONST_STRICT)
+    {
+        no_bareword_allowed(right);
+    }
 
-    case OP_REPEAT:
-        if (o->op_flags & OPf_STACKED) {
-            PL_modcount++;
-            break;
+    /* !~ doesn't make sense with /r, so error on it for now */
+    if (rtype == OP_SUBST && (cPMOPx(right)->op_pmflags & PMf_NONDESTRUCT) &&
+        type == OP_NOT)
+        /* diag_listed_as: Using !~ with %s doesn't make sense */
+        yyerror("Using !~ with s///r doesn't make sense");
+    if (rtype == OP_TRANSR && type == OP_NOT)
+        /* diag_listed_as: Using !~ with %s doesn't make sense */
+        yyerror("Using !~ with tr///r doesn't make sense");
+
+    ismatchop = (rtype == OP_MATCH ||
+                 rtype == OP_SUBST ||
+                 rtype == OP_TRANS || rtype == OP_TRANSR)
+             && !(right->op_flags & OPf_SPECIAL);
+    if (ismatchop && right->op_private & OPpTARGET_MY) {
+        right->op_targ = 0;
+        right->op_private &= ~OPpTARGET_MY;
+    }
+    if (!(right->op_flags & OPf_STACKED) && !right->op_targ && ismatchop) {
+        if (left->op_type == OP_PADSV
+         && !(left->op_private & OPpLVAL_INTRO))
+        {
+            right->op_targ = left->op_targ;
+            op_free(left);
+            o = right;
         }
-        if (!(o->op_private & OPpREPEAT_DOLIST))
-            goto nomod;
         else {
-            const I32 mods = PL_modcount;
-            /* we recurse rather than iterate here because we need to
-             * calculate and use the delta applied to PL_modcount by the
-             * first child. So in something like
-             *     ($x, ($y) x 3) = split;
-             * split knows that 4 elements are wanted
-             */
-            modkids(cBINOPo->op_first, type);
-            if (type != OP_AASSIGN)
-                goto nomod;
-            kid = cBINOPo->op_last;
-            if (kid->op_type == OP_CONST && SvIOK(kSVOP_sv)) {
-                const IV iv = SvIV(kSVOP_sv);
-                if (PL_modcount != RETURN_UNLIMITED_NUMBER)
-                    PL_modcount =
-                        mods + (PL_modcount - mods) * (iv < 0 ? 0 : iv);
-            }
-            else
-                PL_modcount = RETURN_UNLIMITED_NUMBER;
-        }
-        break;
-
-    case OP_COND_EXPR:
-        localize = 1;
-        next_kid = OpSIBLING(cUNOPo->op_first);
-        break;
-
-    case OP_RV2AV:
-    case OP_RV2HV:
-        if (type == OP_REFGEN && o->op_flags & OPf_PARENS) {
-           PL_modcount = RETURN_UNLIMITED_NUMBER;
-           /* Treat \(@foo) like ordinary list, but still mark it as modi-
-              fiable since some contexts need to know.  */
-           o->op_flags |= OPf_MOD;
-           goto do_next;
+            right->op_flags |= OPf_STACKED;
+            if (rtype != OP_MATCH && rtype != OP_TRANSR &&
+            ! (rtype == OP_TRANS &&
+               right->op_private & OPpTRANS_IDENTICAL) &&
+            ! (rtype == OP_SUBST &&
+               (cPMOPx(right)->op_pmflags & PMf_NONDESTRUCT)))
+                left = op_lvalue(left, rtype);
+            if (right->op_type == OP_TRANS || right->op_type == OP_TRANSR)
+                o = newBINOP(OP_NULL, OPf_STACKED, scalar(left), right);
+            else
+                o = op_prepend_elem(rtype, scalar(left), right);
         }
-        /* FALLTHROUGH */
-    case OP_RV2GV:
-        if (scalar_mod_type(o, type))
-            goto nomod;
-        ref(cUNOPo->op_first, o->op_type);
-        /* FALLTHROUGH */
-    case OP_ASLICE:
-    case OP_HSLICE:
-        localize = 1;
-        /* FALLTHROUGH */
-    case OP_AASSIGN:
-        /* Do not apply the lvsub flag for rv2[ah]v in scalar context.  */
-        if (type == OP_LEAVESUBLV && (
-                (o->op_type != OP_RV2AV && o->op_type != OP_RV2HV)
-             || (o->op_flags & OPf_WANT) != OPf_WANT_SCALAR
-           ))
-            o->op_private |= OPpMAYBE_LVSUB;
-        /* FALLTHROUGH */
-    case OP_NEXTSTATE:
-    case OP_DBSTATE:
-       PL_modcount = RETURN_UNLIMITED_NUMBER;
-        break;
+        if (type == OP_NOT)
+            return newUNOP(OP_NOT, 0, scalar(o));
+        return o;
+    }
+    else
+        return bind_match(type, left,
+                pmruntime(newPMOP(OP_MATCH, 0), right, NULL, 0, 0));
+}
 
-    case OP_KVHSLICE:
-    case OP_KVASLICE:
-    case OP_AKEYS:
-        if (type == OP_LEAVESUBLV)
-            o->op_private |= OPpMAYBE_LVSUB;
-        goto nomod;
+OP *
+Perl_invert(pTHX_ OP *o)
+{
+    if (!o)
+        return NULL;
+    return newUNOP(OP_NOT, OPf_SPECIAL, scalar(o));
+}
 
-    case OP_AVHVSWITCH:
-        if (type == OP_LEAVESUBLV
-         && (o->op_private & OPpAVHVSWITCH_MASK) + OP_EACH == OP_KEYS)
-            o->op_private |= OPpMAYBE_LVSUB;
-        goto nomod;
+OP *
+Perl_cmpchain_start(pTHX_ I32 type, OP *left, OP *right)
+{
+    BINOP *bop;
+    OP *op;
 
-    case OP_AV2ARYLEN:
-        PL_hints |= HINT_BLOCK_SCOPE;
-        if (type == OP_LEAVESUBLV)
-            o->op_private |= OPpMAYBE_LVSUB;
-        PL_modcount++;
-        break;
+    if (!left)
+        left = newOP(OP_NULL, 0);
+    if (!right)
+        right = newOP(OP_NULL, 0);
+    scalar(left);
+    scalar(right);
+    NewOp(0, bop, 1, BINOP);
+    op = (OP*)bop;
+    ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP);
+    OpTYPE_set(op, type);
+    cBINOPx(op)->op_flags = OPf_KIDS;
+    cBINOPx(op)->op_private = 2;
+    cBINOPx(op)->op_first = left;
+    cBINOPx(op)->op_last = right;
+    OpMORESIB_set(left, right);
+    OpLASTSIB_set(right, op);
+    return op;
+}
 
-    case OP_RV2SV:
-        ref(cUNOPo->op_first, o->op_type);
-        localize = 1;
-        /* FALLTHROUGH */
-    case OP_GV:
-        PL_hints |= HINT_BLOCK_SCOPE;
-        /* FALLTHROUGH */
-    case OP_SASSIGN:
-    case OP_ANDASSIGN:
-    case OP_ORASSIGN:
-    case OP_DORASSIGN:
-        PL_modcount++;
-        break;
+OP *
+Perl_cmpchain_extend(pTHX_ I32 type, OP *ch, OP *right)
+{
+    BINOP *bop;
+    OP *op;
 
-    case OP_AELEMFAST:
-    case OP_AELEMFAST_LEX:
-        localize = -1;
-        PL_modcount++;
-        break;
+    PERL_ARGS_ASSERT_CMPCHAIN_EXTEND;
+    if (!right)
+        right = newOP(OP_NULL, 0);
+    scalar(right);
+    NewOp(0, bop, 1, BINOP);
+    op = (OP*)bop;
+    ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP);
+    OpTYPE_set(op, type);
+    if (ch->op_type != OP_NULL) {
+        UNOP *lch;
+        OP *nch, *cleft, *cright;
+        NewOp(0, lch, 1, UNOP);
+        nch = (OP*)lch;
+        OpTYPE_set(nch, OP_NULL);
+        nch->op_flags = OPf_KIDS;
+        cleft = cBINOPx(ch)->op_first;
+        cright = cBINOPx(ch)->op_last;
+        cBINOPx(ch)->op_first = NULL;
+        cBINOPx(ch)->op_last = NULL;
+        cBINOPx(ch)->op_private = 0;
+        cBINOPx(ch)->op_flags = 0;
+        cUNOPx(nch)->op_first = cright;
+        OpMORESIB_set(cright, ch);
+        OpMORESIB_set(ch, cleft);
+        OpLASTSIB_set(cleft, nch);
+        ch = nch;
+    }
+    OpMORESIB_set(right, op);
+    OpMORESIB_set(op, cUNOPx(ch)->op_first);
+    cUNOPx(ch)->op_first = right;
+    return ch;
+}
 
-    case OP_PADAV:
-    case OP_PADHV:
-       PL_modcount = RETURN_UNLIMITED_NUMBER;
-        if (type == OP_REFGEN && o->op_flags & OPf_PARENS)
-        {
-           /* Treat \(@foo) like ordinary list, but still mark it as modi-
-              fiable since some contexts need to know.  */
-            o->op_flags |= OPf_MOD;
-            goto do_next;
-        }
-        if (scalar_mod_type(o, type))
-            goto nomod;
-        if ((o->op_flags & OPf_WANT) != OPf_WANT_SCALAR
-          && type == OP_LEAVESUBLV)
-            o->op_private |= OPpMAYBE_LVSUB;
-        /* FALLTHROUGH */
-    case OP_PADSV:
-        PL_modcount++;
-        if (!type) /* local() */
-            Perl_croak(aTHX_ "Can't localize lexical variable %" PNf,
-                              PNfARG(PAD_COMPNAME(o->op_targ)));
-        if (!(o->op_private & OPpLVAL_INTRO)
-         || (  type != OP_SASSIGN && type != OP_AASSIGN
-            && PadnameIsSTATE(PAD_COMPNAME_SV(o->op_targ))  ))
-            S_mark_padname_lvalue(aTHX_ PAD_COMPNAME_SV(o->op_targ));
-        break;
+OP *
+Perl_cmpchain_finish(pTHX_ OP *ch)
+{
 
-    case OP_PUSHMARK:
-        localize = 0;
-        break;
+    PERL_ARGS_ASSERT_CMPCHAIN_FINISH;
+    if (ch->op_type != OP_NULL) {
+        OPCODE cmpoptype = ch->op_type;
+        ch = CHECKOP(cmpoptype, ch);
+        if(!ch->op_next && ch->op_type == cmpoptype)
+            ch = fold_constants(op_integerize(op_std_init(ch)));
+        return ch;
+    } else {
+        OP *condop = NULL;
+        OP *rightarg = cUNOPx(ch)->op_first;
+        cUNOPx(ch)->op_first = OpSIBLING(rightarg);
+        OpLASTSIB_set(rightarg, NULL);
+        while (1) {
+            OP *cmpop = cUNOPx(ch)->op_first;
+            OP *leftarg = OpSIBLING(cmpop);
+            OPCODE cmpoptype = cmpop->op_type;
+            OP *nextrightarg;
+            bool is_last;
+            is_last = !(cUNOPx(ch)->op_first = OpSIBLING(leftarg));
+            OpLASTSIB_set(cmpop, NULL);
+            OpLASTSIB_set(leftarg, NULL);
+            if (is_last) {
+                ch->op_flags = 0;
+                op_free(ch);
+                nextrightarg = NULL;
+            } else {
+                nextrightarg = newUNOP(OP_CMPCHAIN_DUP, 0, leftarg);
+                leftarg = newOP(OP_NULL, 0);
+            }
+            cBINOPx(cmpop)->op_first = leftarg;
+            cBINOPx(cmpop)->op_last = rightarg;
+            OpMORESIB_set(leftarg, rightarg);
+            OpLASTSIB_set(rightarg, cmpop);
+            cmpop->op_flags = OPf_KIDS;
+            cmpop->op_private = 2;
+            cmpop = CHECKOP(cmpoptype, cmpop);
+            if(!cmpop->op_next && cmpop->op_type == cmpoptype)
+                cmpop = op_integerize(op_std_init(cmpop));
+            condop = condop ? newLOGOP(OP_CMPCHAIN_AND, 0, cmpop, condop) :
+                        cmpop;
+            if (!nextrightarg)
+                return condop;
+            rightarg = nextrightarg;
+        }
+    }
+}
 
-    case OP_KEYS:
-        if (type != OP_LEAVESUBLV && !scalar_mod_type(NULL, type))
-            goto nomod;
-        goto lvalue_func;
-    case OP_SUBSTR:
-        if (o->op_private == 4) /* don't allow 4 arg substr as lvalue */
-            goto nomod;
-        /* FALLTHROUGH */
-    case OP_POS:
-    case OP_VEC:
-      lvalue_func:
-        if (type == OP_LEAVESUBLV)
-            o->op_private |= OPpMAYBE_LVSUB;
-        if (o->op_flags & OPf_KIDS && OpHAS_SIBLING(cBINOPo->op_first)) {
-            /* we recurse rather than iterate here because the child
-             * needs to be processed with a different 'type' parameter */
+/*
+=for apidoc op_scope
 
-            /* substr and vec */
-            /* If this op is in merely potential (non-fatal) modifiable
-               context, then apply OP_ENTERSUB context to
-               the kid op (to avoid croaking).  Other-
-               wise pass this op’s own type so the correct op is mentioned
-               in error messages.  */
-            op_lvalue(OpSIBLING(cBINOPo->op_first),
-                      S_potential_mod_type(type)
-                        ? (I32)OP_ENTERSUB
-                        : o->op_type);
-        }
-        break;
-
-    case OP_AELEM:
-    case OP_HELEM:
-        ref(cBINOPo->op_first, o->op_type);
-        if (type == OP_ENTERSUB &&
-             !(o->op_private & (OPpLVAL_INTRO | OPpDEREF)))
-            o->op_private |= OPpLVAL_DEFER;
-        if (type == OP_LEAVESUBLV)
-            o->op_private |= OPpMAYBE_LVSUB;
-        localize = 1;
-        PL_modcount++;
-        break;
-
-    case OP_LEAVE:
-    case OP_LEAVELOOP:
-        o->op_private |= OPpLVALUE;
-        /* FALLTHROUGH */
-    case OP_SCOPE:
-    case OP_ENTER:
-    case OP_LINESEQ:
-        localize = 0;
-        if (o->op_flags & OPf_KIDS)
-            next_kid = cLISTOPo->op_last;
-        break;
-
-    case OP_NULL:
-        localize = 0;
-        if (o->op_flags & OPf_SPECIAL)		/* do BLOCK */
-            goto nomod;
-        else if (!(o->op_flags & OPf_KIDS))
-            break;
+Wraps up an op tree with some additional ops so that at runtime a dynamic
+scope will be created.  The original ops run in the new dynamic scope,
+and then, provided that they exit normally, the scope will be unwound.
+The additional ops used to create and unwind the dynamic scope will
+normally be an C<enter>/C<leave> pair, but a C<scope> op may be used
+instead if the ops are simple enough to not need the full dynamic scope
+structure.
 
-        if (o->op_targ != OP_LIST) {
-            OP *sib = OpSIBLING(cLISTOPo->op_first);
-            /* OP_TRANS and OP_TRANSR with argument have a weird optree
-             * that looks like
-             *
-             *   null
-             *      arg
-             *      trans
-             *
-             * compared with things like OP_MATCH which have the argument
-             * as a child:
-             *
-             *   match
-             *      arg
-             *
-             * so handle specially to correctly get "Can't modify" croaks etc
-             */
+=cut
+*/
 
-            if (sib && (sib->op_type == OP_TRANS || sib->op_type == OP_TRANSR))
-            {
-                /* this should trigger a "Can't modify transliteration" err */
-                op_lvalue(sib, type);
-            }
-            next_kid = cBINOPo->op_first;
-            /* we assume OP_NULLs which aren't ex-list have no more than 2
-             * children. If this assumption is wrong, increase the scan
-             * limit below */
-            assert(   !OpHAS_SIBLING(next_kid)
-                   || !OpHAS_SIBLING(OpSIBLING(next_kid)));
-            break;
+OP *
+Perl_op_scope(pTHX_ OP *o)
+{
+    if (o) {
+        if (o->op_flags & OPf_PARENS || PERLDB_NOOPT || TAINTING_get) {
+            o = op_prepend_elem(OP_LINESEQ,
+                    newOP(OP_ENTER, (o->op_flags & OPf_WANT)), o);
+            OpTYPE_set(o, OP_LEAVE);
         }
-        /* FALLTHROUGH */
-    case OP_LIST:
-        localize = 0;
-        next_kid = cLISTOPo->op_first;
-        break;
-
-    case OP_COREARGS:
-        goto do_next;
-
-    case OP_AND:
-    case OP_OR:
-        if (type == OP_LEAVESUBLV
-         || !S_vivifies(cLOGOPo->op_first->op_type))
-            next_kid = cLOGOPo->op_first;
-        else if (type == OP_LEAVESUBLV
-         || !S_vivifies(OpSIBLING(cLOGOPo->op_first)->op_type))
-            next_kid = OpSIBLING(cLOGOPo->op_first);
-        goto nomod;
+        else if (o->op_type == OP_LINESEQ) {
+            OP *kid;
+            OpTYPE_set(o, OP_SCOPE);
+            kid = cLISTOPo->op_first;
+            if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) {
+                op_null(kid);
 
-    case OP_SREFGEN:
-        if (type == OP_NULL) { /* local */
-          local_refgen:
-            if (!FEATURE_MYREF_IS_ENABLED)
-                Perl_croak(aTHX_ "The experimental declared_refs "
-                                 "feature is not enabled");
-            Perl_ck_warner_d(aTHX_
-                     packWARN(WARN_EXPERIMENTAL__DECLARED_REFS),
-                    "Declaring references is experimental");
-            next_kid = cUNOPo->op_first;
-            goto do_next;
-        }
-        if (type != OP_AASSIGN && type != OP_SASSIGN
-         && type != OP_ENTERLOOP)
-            goto nomod;
-        /* Don’t bother applying lvalue context to the ex-list.  */
-        kid = cUNOPx(cUNOPo->op_first)->op_first;
-        assert (!OpHAS_SIBLING(kid));
-        goto kid_2lvref;
-    case OP_REFGEN:
-        if (type == OP_NULL) /* local */
-            goto local_refgen;
-        if (type != OP_AASSIGN) goto nomod;
-        kid = cUNOPo->op_first;
-      kid_2lvref:
-        {
-            const U8 ec = PL_parser ? PL_parser->error_count : 0;
-            S_lvref(aTHX_ kid, type);
-            if (!PL_parser || PL_parser->error_count == ec) {
-                if (!FEATURE_REFALIASING_IS_ENABLED)
-                    Perl_croak(aTHX_
-                       "Experimental aliasing via reference not enabled");
-                Perl_ck_warner_d(aTHX_
-                                 packWARN(WARN_EXPERIMENTAL__REFALIASING),
-                                "Aliasing via reference is experimental");
+                /* The following deals with things like 'do {1 for 1}' */
+                kid = OpSIBLING(kid);
+                if (kid &&
+                    (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE))
+                    op_null(kid);
             }
         }
-        if (o->op_type == OP_REFGEN)
-            op_null(cUNOPx(cUNOPo->op_first)->op_first); /* pushmark */
-        op_null(o);
-        goto do_next;
-
-    case OP_SPLIT:
-        if ((o->op_private & OPpSPLIT_ASSIGN)) {
-            /* This is actually @array = split.  */
-            PL_modcount = RETURN_UNLIMITED_NUMBER;
-            break;
-        }
-        goto nomod;
+        else
+            o = newLISTOP(OP_SCOPE, 0, o, NULL);
+    }
+    return o;
+}
 
-    case OP_SCALAR:
-        op_lvalue(cUNOPo->op_first, OP_ENTERSUB);
-        goto nomod;
+OP *
+Perl_op_unscope(pTHX_ OP *o)
+{
+    if (o && o->op_type == OP_LINESEQ) {
+        OP *kid = cLISTOPo->op_first;
+        for(; kid; kid = OpSIBLING(kid))
+            if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE)
+                op_null(kid);
     }
+    return o;
+}
 
-    /* [20011101.069 (#7861)] File test operators interpret OPf_REF to mean that
-       their argument is a filehandle; thus \stat(".") should not set
-       it. AMS 20011102 */
-    if (type == OP_REFGEN && OP_IS_STAT(o->op_type))
-        goto do_next;
+/*
+=for apidoc block_start
 
-    if (type != OP_LEAVESUBLV)
-        o->op_flags |= OPf_MOD;
+Handles compile-time scope entry.
+Arranges for hints to be restored on block
+exit and also handles pad sequence numbers to make lexical variables scope
+right.  Returns a savestack index for use with C<block_end>.
 
-    if (type == OP_AASSIGN || type == OP_SASSIGN)
-        o->op_flags |= OPf_SPECIAL
-                      |(o->op_type == OP_ENTERSUB ? 0 : OPf_REF);
-    else if (!type) { /* local() */
-        switch (localize) {
-        case 1:
-            o->op_private |= OPpLVAL_INTRO;
-            o->op_flags &= ~OPf_SPECIAL;
-            PL_hints |= HINT_BLOCK_SCOPE;
-            break;
-        case 0:
-            break;
-        case -1:
-            Perl_ck_warner(aTHX_ packWARN(WARN_SYNTAX),
-                           "Useless localization of %s", OP_DESC(o));
-        }
-    }
-    else if (type != OP_GREPSTART && type != OP_ENTERSUB
-             && type != OP_LEAVESUBLV && o->op_type != OP_ENTERSUB)
-        o->op_flags |= OPf_REF;
+=cut
+*/
 
-  do_next:
-    while (!next_kid) {
-        if (o == top_op)
-            return top_op; /* at top; no parents/siblings to try */
-        if (OpHAS_SIBLING(o)) {
-            next_kid = o->op_sibparent;
-            if (!OpHAS_SIBLING(next_kid)) {
-                /* a few node types don't recurse into their second child */
-                OP *parent = next_kid->op_sibparent;
-                I32 ptype  = parent->op_type;
-                if (   (ptype == OP_NULL && parent->op_targ != OP_LIST)
-                    || (   (ptype == OP_AND || ptype == OP_OR)
-                        && (type != OP_LEAVESUBLV
-                            && S_vivifies(next_kid->op_type))
-                       )
-                )  {
-                    /*try parent's next sibling */
-                    o = parent;
-                    next_kid =  NULL;
-                }
-            }
-        }
-        else
-            o = o->op_sibparent; /*try parent's next sibling */
+int
+Perl_block_start(pTHX_ int full)
+{
+    const int retval = PL_savestack_ix;
 
-    }
-    o = next_kid;
+    PL_compiling.cop_seq = PL_cop_seqmax;
+    COP_SEQMAX_INC;
+    pad_block_start(full);
+    SAVEHINTS();
+    PL_hints &= ~HINT_BLOCK_SCOPE;
+    SAVECOMPILEWARNINGS();
+    PL_compiling.cop_warnings = DUP_WARNINGS(PL_compiling.cop_warnings);
+    SAVEI32(PL_compiling.cop_seq);
+    PL_compiling.cop_seq = 0;
 
-    } /* while */
+    CALL_BLOCK_HOOKS(bhk_start, full);
 
+    return retval;
 }
 
+/*
+=for apidoc block_end
 
-STATIC bool
-S_scalar_mod_type(const OP *o, I32 type)
-{
-    switch (type) {
-    case OP_POS:
-    case OP_SASSIGN:
-        if (o && o->op_type == OP_RV2GV)
-            return FALSE;
-        /* FALLTHROUGH */
-    case OP_PREINC:
-    case OP_PREDEC:
-    case OP_POSTINC:
-    case OP_POSTDEC:
-    case OP_I_PREINC:
-    case OP_I_PREDEC:
-    case OP_I_POSTINC:
-    case OP_I_POSTDEC:
-    case OP_POW:
-    case OP_MULTIPLY:
-    case OP_DIVIDE:
-    case OP_MODULO:
-    case OP_REPEAT:
-    case OP_ADD:
-    case OP_SUBTRACT:
-    case OP_I_MULTIPLY:
-    case OP_I_DIVIDE:
-    case OP_I_MODULO:
-    case OP_I_ADD:
-    case OP_I_SUBTRACT:
-    case OP_LEFT_SHIFT:
-    case OP_RIGHT_SHIFT:
-    case OP_BIT_AND:
-    case OP_BIT_XOR:
-    case OP_BIT_OR:
-    case OP_NBIT_AND:
-    case OP_NBIT_XOR:
-    case OP_NBIT_OR:
-    case OP_SBIT_AND:
-    case OP_SBIT_XOR:
-    case OP_SBIT_OR:
-    case OP_CONCAT:
-    case OP_SUBST:
-    case OP_TRANS:
-    case OP_TRANSR:
-    case OP_READ:
-    case OP_SYSREAD:
-    case OP_RECV:
-    case OP_ANDASSIGN:
-    case OP_ORASSIGN:
-    case OP_DORASSIGN:
-    case OP_VEC:
-    case OP_SUBSTR:
-        return TRUE;
-    default:
-        return FALSE;
-    }
-}
+Handles compile-time scope exit.  C<floor>
+is the savestack index returned by
+C<block_start>, and C<seq> is the body of the block.  Returns the block,
+possibly modified.
 
-STATIC bool
-S_is_handle_constructor(const OP *o, I32 numargs)
+=cut
+*/
+
+OP*
+Perl_block_end(pTHX_ I32 floor, OP *seq)
 {
-    PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR;
+    const int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
+    OP* retval = voidnonfinal(seq);
+    OP *o;
 
-    switch (o->op_type) {
-    case OP_PIPE_OP:
-    case OP_SOCKPAIR:
-        if (numargs == 2)
-            return TRUE;
-        /* FALLTHROUGH */
-    case OP_SYSOPEN:
-    case OP_OPEN:
-    case OP_SELECT:		/* XXX c.f. SelectSaver.pm */
-    case OP_SOCKET:
-    case OP_OPEN_DIR:
-    case OP_ACCEPT:
-        if (numargs == 1)
-            return TRUE;
-        /* FALLTHROUGH */
-    default:
-        return FALSE;
+    /* XXX Is the null PL_parser check necessary here? */
+    assert(PL_parser); /* Let’s find out under debugging builds.  */
+    if (PL_parser && PL_parser->parsed_sub) {
+        o = newSTATEOP(0, NULL, NULL);
+        op_null(o);
+        retval = op_append_elem(OP_LINESEQ, retval, o);
     }
-}
 
-static OP *
-S_refkids(pTHX_ OP *o, I32 type)
-{
-    if (o && o->op_flags & OPf_KIDS) {
-        OP *kid;
-        for (kid = cLISTOPo->op_first; kid; kid = OpSIBLING(kid))
-            ref(kid, type);
-    }
-    return o;
-}
+    CALL_BLOCK_HOOKS(bhk_pre_end, &retval);
 
+    LEAVE_SCOPE(floor);
+    if (needblockscope)
+        PL_hints |= HINT_BLOCK_SCOPE; /* propagate out */
+    o = pad_leavemy();
 
-/* Apply reference (autovivification) context to the subtree at o.
- * For example in
- *     push @{expression}, ....;
- * o will be the head of 'expression' and type will be OP_RV2AV.
- * It marks the op o (or a suitable child) as autovivifying, e.g. by
- * setting  OPf_MOD.
- * For OP_RV2AV/OP_PADAV and OP_RV2HV/OP_PADHV sets OPf_REF too if
- * set_op_ref is true.
- *
- * Also calls scalar(o).
- */
+    if (o) {
+        /* pad_leavemy has created a sequence of introcv ops for all my
+           subs declared in the block.  We have to replicate that list with
+           clonecv ops, to deal with this situation:
 
-OP *
-Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
-{
-    OP * top_op = o;
+               sub {
+                   my sub s1;
+                   my sub s2;
+                   sub s1 { state sub foo { \&s2 } }
+               }->()
 
-    PERL_ARGS_ASSERT_DOREF;
+           Originally, I was going to have introcv clone the CV and turn
+           off the stale flag.  Since &s1 is declared before &s2, the
+           introcv op for &s1 is executed (on sub entry) before the one for
+           &s2.  But the &foo sub inside &s1 (which is cloned when &s1 is
+           cloned, since it is a state sub) closes over &s2 and expects
+           to see it in its outer CV’s pad.  If the introcv op clones &s1,
+           then &s2 is still marked stale.  Since &s1 is not active, and
+           &foo closes over &s1’s implicit entry for &s2, we get a ‘Varia-
+           ble will not stay shared’ warning.  Because it is the same stub
+           that will be used when the introcv op for &s2 is executed, clos-
+           ing over it is safe.  Hence, we have to turn off the stale flag
+           on all lexical subs in the block before we clone any of them.
+           Hence, having introcv clone the sub cannot work.  So we create a
+           list of ops like this:
 
-    if (PL_parser && PL_parser->error_count)
-        return o;
+               lineseq
+                  |
+                  +-- introcv
+                  |
+                  +-- introcv
+                  |
+                  +-- introcv
+                  |
+                  .
+                  .
+                  .
+                  |
+                  +-- clonecv
+                  |
+                  +-- clonecv
+                  |
+                  +-- clonecv
+                  |
+                  .
+                  .
+                  .
+         */
+        OP *kid = o->op_flags & OPf_KIDS ? cLISTOPo->op_first : o;
+        OP * const last = o->op_flags & OPf_KIDS ? cLISTOPo->op_last : o;
+        for (;; kid = OpSIBLING(kid)) {
+            OP *newkid = newOP(OP_CLONECV, 0);
+            newkid->op_targ = kid->op_targ;
+            o = op_append_elem(OP_LINESEQ, o, newkid);
+            if (kid == last) break;
+        }
+        retval = op_prepend_elem(OP_LINESEQ, o, retval);
+    }
 
-    while (1) {
-        switch (o->op_type) {
-        case OP_ENTERSUB:
-            if ((type == OP_EXISTS || type == OP_DEFINED) &&
-                !(o->op_flags & OPf_STACKED)) {
-                OpTYPE_set(o, OP_RV2CV);             /* entersub => rv2cv */
-                assert(cUNOPo->op_first->op_type == OP_NULL);
-                /* disable pushmark */
-                op_null(((LISTOP*)cUNOPo->op_first)->op_first);
-                o->op_flags |= OPf_SPECIAL;
-            }
-            else if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV){
-                o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
-                                  : type == OP_RV2HV ? OPpDEREF_HV
-                                  : OPpDEREF_SV);
-                o->op_flags |= OPf_MOD;
-            }
+    CALL_BLOCK_HOOKS(bhk_post_end, &retval);
 
-            break;
+    return retval;
+}
 
-        case OP_COND_EXPR:
-            o = OpSIBLING(cUNOPo->op_first);
-            continue;
+/*
+=for apidoc_section $scope
 
-        case OP_RV2SV:
-            if (type == OP_DEFINED)
-                o->op_flags |= OPf_SPECIAL;		/* don't create GV */
-            /* FALLTHROUGH */
-        case OP_PADSV:
-            if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV) {
-                o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
-                                  : type == OP_RV2HV ? OPpDEREF_HV
-                                  : OPpDEREF_SV);
-                o->op_flags |= OPf_MOD;
-            }
-            if (o->op_flags & OPf_KIDS) {
-                type = o->op_type;
-                o = cUNOPo->op_first;
-                continue;
-            }
-            break;
+=for apidoc blockhook_register
 
-        case OP_RV2AV:
-        case OP_RV2HV:
-            if (set_op_ref)
-                o->op_flags |= OPf_REF;
-            /* FALLTHROUGH */
-        case OP_RV2GV:
-            if (type == OP_DEFINED)
-                o->op_flags |= OPf_SPECIAL;		/* don't create GV */
-            type = o->op_type;
-            o = cUNOPo->op_first;
-            continue;
+Register a set of hooks to be called when the Perl lexical scope changes
+at compile time.  See L<perlguts/"Compile-time scope hooks">.
 
-        case OP_PADAV:
-        case OP_PADHV:
-            if (set_op_ref)
-                o->op_flags |= OPf_REF;
-            break;
+=cut
+*/
 
-        case OP_SCALAR:
-        case OP_NULL:
-            if (!(o->op_flags & OPf_KIDS) || type == OP_DEFINED)
-                break;
-             o = cBINOPo->op_first;
-            continue;
+void
+Perl_blockhook_register(pTHX_ BHK *hk)
+{
+    PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER;
 
-        case OP_AELEM:
-        case OP_HELEM:
-            if (type == OP_RV2SV || type == OP_RV2AV || type == OP_RV2HV) {
-                o->op_private |= (type == OP_RV2AV ? OPpDEREF_AV
-                                  : type == OP_RV2HV ? OPpDEREF_HV
-                                  : OPpDEREF_SV);
-                o->op_flags |= OPf_MOD;
-            }
-            type = o->op_type;
-            o = cBINOPo->op_first;
-            continue;;
-
-        case OP_SCOPE:
-        case OP_LEAVE:
-            set_op_ref = FALSE;
-            /* FALLTHROUGH */
-        case OP_ENTER:
-        case OP_LIST:
-            if (!(o->op_flags & OPf_KIDS))
-                break;
-            o = cLISTOPo->op_last;
-            continue;
+    Perl_av_create_and_push(aTHX_ &PL_blockhooks, newSViv(PTR2IV(hk)));
+}
 
-        default:
-            break;
-        } /* switch */
+void
+Perl_newPROG(pTHX_ OP *o)
+{
+    OP *start;
 
-        while (1) {
-            if (o == top_op)
-                return scalar(top_op); /* at top; no parents/siblings to try */
-            if (OpHAS_SIBLING(o)) {
-                o = o->op_sibparent;
-                /* Normally skip all siblings and go straight to the parent;
-                 * the only op that requires two children to be processed
-                 * is OP_COND_EXPR */
-                if (!OpHAS_SIBLING(o)
-                        && o->op_sibparent->op_type == OP_COND_EXPR)
-                    break;
-                continue;
-            }
-            o = o->op_sibparent; /*try parent's next sibling */
-        }
-    } /* while */
-}
+    PERL_ARGS_ASSERT_NEWPROG;
 
+    if (PL_in_eval) {
+        PERL_CONTEXT *cx;
+        I32 i;
+        if (PL_eval_root)
+                return;
+        PL_eval_root = newUNOP(OP_LEAVEEVAL,
+                               ((PL_in_eval & EVAL_KEEPERR)
+                                ? OPf_SPECIAL : 0), o);
 
-STATIC OP *
-S_dup_attrlist(pTHX_ OP *o)
-{
-    OP *rop;
+        cx = CX_CUR();
+        assert(CxTYPE(cx) == CXt_EVAL);
 
-    PERL_ARGS_ASSERT_DUP_ATTRLIST;
+        if ((cx->blk_gimme & G_WANT) == G_VOID)
+            scalarvoid(PL_eval_root);
+        else if ((cx->blk_gimme & G_WANT) == G_LIST)
+            list(PL_eval_root);
+        else
+            scalar(PL_eval_root);
 
-    /* An attrlist is either a simple OP_CONST or an OP_LIST with kids,
-     * where the first kid is OP_PUSHMARK and the remaining ones
-     * are OP_CONST.  We need to push the OP_CONST values.
-     */
-    if (o->op_type == OP_CONST)
-        rop = newSVOP(OP_CONST, o->op_flags, SvREFCNT_inc_NN(cSVOPo->op_sv));
+        start = op_linklist(PL_eval_root);
+        PL_eval_root->op_next = 0;
+        i = PL_savestack_ix;
+        SAVEFREEOP(o);
+        ENTER;
+        S_process_optree(aTHX_ NULL, PL_eval_root, start);
+        LEAVE;
+        PL_savestack_ix = i;
+    }
     else {
-        assert((o->op_type == OP_LIST) && (o->op_flags & OPf_KIDS));
-        rop = NULL;
-        for (o = cLISTOPo->op_first; o; o = OpSIBLING(o)) {
-            if (o->op_type == OP_CONST)
-                rop = op_append_elem(OP_LIST, rop,
-                                  newSVOP(OP_CONST, o->op_flags,
-                                          SvREFCNT_inc_NN(cSVOPo->op_sv)));
+        if (o->op_type == OP_STUB) {
+            /* This block is entered if nothing is compiled for the main
+               program. This will be the case for an genuinely empty main
+               program, or one which only has BEGIN blocks etc, so already
+               run and freed.
+
+               Historically (5.000) the guard above was !o. However, commit
+               f8a08f7b8bd67b28 (Jun 2001), integrated to blead as
+               c71fccf11fde0068, changed perly.y so that newPROG() is now
+               called with the output of block_end(), which returns a new
+               OP_STUB for the case of an empty optree. ByteLoader (and
+               maybe other things) also take this path, because they set up
+               PL_main_start and PL_main_root directly, without generating an
+               optree.
+
+               If the parsing the main program aborts (due to parse errors,
+               or due to BEGIN or similar calling exit), then newPROG()
+               isn't even called, and hence this code path and its cleanups
+               are skipped. This shouldn't make a make a difference:
+               * a non-zero return from perl_parse is a failure, and
+                 perl_destruct() should be called immediately.
+               * however, if exit(0) is called during the parse, then
+                 perl_parse() returns 0, and perl_run() is called. As
+                 PL_main_start will be NULL, perl_run() will return
+                 promptly, and the exit code will remain 0.
+            */
+
+            PL_comppad_name = 0;
+            PL_compcv = 0;
+            S_op_destroy(aTHX_ o);
+            return;
+        }
+        PL_main_root = op_scope(sawparens(scalarvoid(o)));
+        PL_curcop = &PL_compiling;
+        start = LINKLIST(PL_main_root);
+        PL_main_root->op_next = 0;
+        S_process_optree(aTHX_ NULL, PL_main_root, start);
+        if (!PL_parser->error_count)
+            /* on error, leave CV slabbed so that ops left lying around
+             * will eb cleaned up. Else unslab */
+            cv_forget_slab(PL_compcv);
+        PL_compcv = 0;
+
+        /* Register with debugger */
+        if (PERLDB_INTER) {
+            CV * const cv = get_cvs("DB::postponed", 0);
+            if (cv) {
+                dSP;
+                PUSHMARK(SP);
+                XPUSHs(MUTABLE_SV(CopFILEGV(&PL_compiling)));
+                PUTBACK;
+                call_sv(MUTABLE_SV(cv), G_DISCARD);
+            }
         }
     }
-    return rop;
 }
 
-STATIC void
-S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs)
+OP *
+Perl_localize(pTHX_ OP *o, I32 lex)
 {
-    PERL_ARGS_ASSERT_APPLY_ATTRS;
-    {
-        SV * const stashsv = newSVhek(HvNAME_HEK(stash));
+    PERL_ARGS_ASSERT_LOCALIZE;
 
-        /* fake up C<use attributes $pkg,$rv,@attrs> */
+    if (o->op_flags & OPf_PARENS)
+/* [perl #17376]: this appears to be premature, and results in code such as
+   C< our(%x); > executing in list mode rather than void mode */
+#if 0
+        list(o);
+#else
+        NOOP;
+#endif
+    else {
+        if ( PL_parser->bufptr > PL_parser->oldbufptr
+            && PL_parser->bufptr[-1] == ','
+            && ckWARN(WARN_PARENTHESIS))
+        {
+            char *s = PL_parser->bufptr;
+            bool sigil = FALSE;
 
-#define ATTRSMODULE "attributes"
-#define ATTRSMODULE_PM "attributes.pm"
+            /* some heuristics to detect a potential error */
+            while (*s && (memCHRs(", \t\n", *s)))
+                s++;
 
-        Perl_load_module(
-          aTHX_ PERL_LOADMOD_IMPORT_OPS,
-          newSVpvs(ATTRSMODULE),
-          NULL,
-          op_prepend_elem(OP_LIST,
-                          newSVOP(OP_CONST, 0, stashsv),
-                          op_prepend_elem(OP_LIST,
-                                          newSVOP(OP_CONST, 0,
-                                                  newRV(target)),
-                                          dup_attrlist(attrs))));
+            while (1) {
+                if (*s && (memCHRs("@$%", *s) || (!lex && *s == '*'))
+                       && *++s
+                       && (isWORDCHAR(*s) || UTF8_IS_CONTINUED(*s))) {
+                    s++;
+                    sigil = TRUE;
+                    while (*s && (isWORDCHAR(*s) || UTF8_IS_CONTINUED(*s)))
+                        s++;
+                    while (*s && (memCHRs(", \t\n", *s)))
+                        s++;
+                }
+                else
+                    break;
+            }
+            if (sigil && (*s == ';' || *s == '=')) {
+                Perl_warner(aTHX_ packWARN(WARN_PARENTHESIS),
+                                "Parentheses missing around \"%s\" list",
+                                lex
+                                    ? (PL_parser->in_my == KEY_our
+                                        ? "our"
+                                        : PL_parser->in_my == KEY_state
+                                            ? "state"
+                                            : "my")
+                                    : "local");
+            }
+        }
     }
+    if (lex)
+        o = my(o);
+    else
+        o = op_lvalue(o, OP_NULL);		/* a bit kludgey */
+    PL_parser->in_my = FALSE;
+    PL_parser->in_my_stash = NULL;
+    return o;
 }
 
-STATIC void
-S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp)
+OP *
+Perl_jmaybe(pTHX_ OP *o)
 {
-    OP *pack, *imop, *arg;
-    SV *meth, *stashsv, **svp;
+    PERL_ARGS_ASSERT_JMAYBE;
 
-    PERL_ARGS_ASSERT_APPLY_ATTRS_MY;
+    if (o->op_type == OP_LIST) {
+        if (FEATURE_MULTIDIMENSIONAL_IS_ENABLED) {
+            OP * const o2
+                = newSVREF(newGVOP(OP_GV, 0, gv_fetchpvs(";", GV_ADD|GV_NOTQUAL, SVt_PV)));
+            o = op_convert_list(OP_JOIN, 0, op_prepend_elem(OP_LIST, o2, o));
+        }
+        else {
+            /* If the user disables this, then a warning might not be enough to alert
+               them to a possible change of behaviour here, so throw an exception.
+            */
+            yyerror("Multidimensional hash lookup is disabled");
+        }
+    }
+    return o;
+}
 
-    if (!attrs)
-        return;
+PERL_STATIC_INLINE OP *
+S_op_std_init(pTHX_ OP *o)
+{
+    I32 type = o->op_type;
 
-    assert(target->op_type == OP_PADSV ||
-           target->op_type == OP_PADHV ||
-           target->op_type == OP_PADAV);
+    PERL_ARGS_ASSERT_OP_STD_INIT;
 
-    /* Ensure that attributes.pm is loaded. */
-    /* Don't force the C<use> if we don't need it. */
-    svp = hv_fetchs(GvHVn(PL_incgv), ATTRSMODULE_PM, FALSE);
-    if (svp && *svp != &PL_sv_undef)
-        NOOP;	/* already in %INC */
-    else
-        Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
-                               newSVpvs(ATTRSMODULE), NULL);
-
-    /* Need package name for method call. */
-    pack = newSVOP(OP_CONST, 0, newSVpvs(ATTRSMODULE));
-
-    /* Build up the real arg-list. */
-    stashsv = newSVhek(HvNAME_HEK(stash));
+    if (PL_opargs[type] & OA_RETSCALAR)
+        scalar(o);
+    if (PL_opargs[type] & OA_TARGET && !o->op_targ)
+        o->op_targ = pad_alloc(type, SVs_PADTMP);
 
-    arg = newOP(OP_PADSV, 0);
-    arg->op_targ = target->op_targ;
-    arg = op_prepend_elem(OP_LIST,
-                       newSVOP(OP_CONST, 0, stashsv),
-                       op_prepend_elem(OP_LIST,
-                                    newUNOP(OP_REFGEN, 0,
-                                            arg),
-                                    dup_attrlist(attrs)));
+    return o;
+}
 
-    /* Fake up a method call to import */
-    meth = newSVpvs_share("import");
-    imop = op_convert_list(OP_ENTERSUB, OPf_STACKED|OPf_SPECIAL|OPf_WANT_VOID,
-                   op_append_elem(OP_LIST,
-                               op_prepend_elem(OP_LIST, pack, arg),
-                               newMETHOP_named(OP_METHOD_NAMED, 0, meth)));
+PERL_STATIC_INLINE OP *
+S_op_integerize(pTHX_ OP *o)
+{
+    I32 type = o->op_type;
 
-    /* Combine the ops. */
-    *imopsp = op_append_elem(OP_LIST, *imopsp, imop);
-}
+    PERL_ARGS_ASSERT_OP_INTEGERIZE;
 
-/*
-=notfor apidoc apply_attrs_string
+    /* integerize op. */
+    if ((PL_opargs[type] & OA_OTHERINT) && (PL_hints & HINT_INTEGER))
+    {
+        o->op_ppaddr = PL_ppaddr[++(o->op_type)];
+    }
 
-Attempts to apply a list of attributes specified by the C<attrstr> and
-C<len> arguments to the subroutine identified by the C<cv> argument which
-is expected to be associated with the package identified by the C<stashpv>
-argument (see L<attributes>).  It gets this wrong, though, in that it
-does not correctly identify the boundaries of the individual attribute
-specifications within C<attrstr>.  This is not really intended for the
-public API, but has to be listed here for systems such as AIX which
-need an explicit export list for symbols.  (It's called from XS code
-in support of the C<ATTRS:> keyword from F<xsubpp>.)  Patches to fix it
-to respect attribute syntax properly would be welcome.
+    if (type == OP_NEGATE)
+        /* XXX might want a ck_negate() for this */
+        cUNOPo->op_first->op_private &= ~OPpCONST_STRICT;
 
-=cut
-*/
+    return o;
+}
 
-void
-Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv,
-                        const char *attrstr, STRLEN len)
-{
-    OP *attrs = NULL;
+/* This function exists solely to provide a scope to limit
+   setjmp/longjmp() messing with auto variables.  It cannot be inlined because
+   it uses setjmp
+ */
+STATIC int
+S_fold_constants_eval(pTHX) {
+    int ret = 0;
+    dJMPENV;
 
-    PERL_ARGS_ASSERT_APPLY_ATTRS_STRING;
+    JMPENV_PUSH(ret);
 
-    if (!len) {
-        len = strlen(attrstr);
+    if (ret == 0) {
+        CALLRUNOPS(aTHX);
     }
 
-    while (len) {
-        for (; isSPACE(*attrstr) && len; --len, ++attrstr) ;
-        if (len) {
-            const char * const sstr = attrstr;
-            for (; !isSPACE(*attrstr) && len; --len, ++attrstr) ;
-            attrs = op_append_elem(OP_LIST, attrs,
-                                newSVOP(OP_CONST, 0,
-                                        newSVpvn(sstr, attrstr-sstr)));
-        }
-    }
+    JMPENV_POP;
 
-    Perl_load_module(aTHX_ PERL_LOADMOD_IMPORT_OPS,
-                     newSVpvs(ATTRSMODULE),
-                     NULL, op_prepend_elem(OP_LIST,
-                                  newSVOP(OP_CONST, 0, newSVpv(stashpv,0)),
-                                  op_prepend_elem(OP_LIST,
-                                               newSVOP(OP_CONST, 0,
-                                                       newRV(MUTABLE_SV(cv))),
-                                               attrs)));
+    return ret;
 }
 
-STATIC void
-S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV * name,
-                        bool curstash)
+static OP *
+S_fold_constants(pTHX_ OP *const o)
 {
-    OP *new_proto = NULL;
-    STRLEN pvlen;
-    char *pv;
-    OP *o;
+    OP *curop;
+    OP *newop;
+    I32 type = o->op_type;
+    bool is_stringify;
+    SV *sv = NULL;
+    int ret = 0;
+    OP *old_next;
+    SV * const oldwarnhook = PL_warnhook;
+    SV * const olddiehook  = PL_diehook;
+    COP not_compiling;
+    U8 oldwarn = PL_dowarn;
+    I32 old_cxix;
 
-    PERL_ARGS_ASSERT_MOVE_PROTO_ATTR;
+    PERL_ARGS_ASSERT_FOLD_CONSTANTS;
 
-    if (!*attrs)
-        return;
+    if (!(PL_opargs[type] & OA_FOLDCONST))
+        goto nope;
 
-    o = *attrs;
-    if (o->op_type == OP_CONST) {
-        pv = SvPV(cSVOPo_sv, pvlen);
-        if (memBEGINs(pv, pvlen, "prototype(")) {
-            SV * const tmpsv = newSVpvn_flags(pv + 10, pvlen - 11, SvUTF8(cSVOPo_sv));
-            SV ** const tmpo = cSVOPx_svp(o);
-            SvREFCNT_dec(cSVOPo_sv);
-            *tmpo = tmpsv;
-            new_proto = o;
-            *attrs = NULL;
-        }
-    } else if (o->op_type == OP_LIST) {
-        OP * lasto;
-        assert(o->op_flags & OPf_KIDS);
-        lasto = cLISTOPo->op_first;
-        assert(lasto->op_type == OP_PUSHMARK);
-        for (o = OpSIBLING(lasto); o; o = OpSIBLING(o)) {
-            if (o->op_type == OP_CONST) {
-                pv = SvPV(cSVOPo_sv, pvlen);
-                if (memBEGINs(pv, pvlen, "prototype(")) {
-                    SV * const tmpsv = newSVpvn_flags(pv + 10, pvlen - 11, SvUTF8(cSVOPo_sv));
-                    SV ** const tmpo = cSVOPx_svp(o);
-                    SvREFCNT_dec(cSVOPo_sv);
-                    *tmpo = tmpsv;
-                    if (new_proto && ckWARN(WARN_MISC)) {
-                        STRLEN new_len;
-                        const char * newp = SvPV(cSVOPo_sv, new_len);
-                        Perl_warner(aTHX_ packWARN(WARN_MISC),
-                            "Attribute prototype(%" UTF8f ") discards earlier prototype attribute in same sub",
-                            UTF8fARG(SvUTF8(cSVOPo_sv), new_len, newp));
-                        op_free(new_proto);
-                    }
-                    else if (new_proto)
-                        op_free(new_proto);
-                    new_proto = o;
-                    /* excise new_proto from the list */
-                    op_sibling_splice(*attrs, lasto, 1, NULL);
-                    o = lasto;
-                    continue;
+    switch (type) {
+    case OP_UCFIRST:
+    case OP_LCFIRST:
+    case OP_UC:
+    case OP_LC:
+    case OP_FC:
+#ifdef USE_LOCALE_CTYPE
+        if (IN_LC_COMPILETIME(LC_CTYPE))
+            goto nope;
+#endif
+        break;
+    case OP_SLT:
+    case OP_SGT:
+    case OP_SLE:
+    case OP_SGE:
+    case OP_SCMP:
+#ifdef USE_LOCALE_COLLATE
+        if (IN_LC_COMPILETIME(LC_COLLATE))
+            goto nope;
+#endif
+        break;
+    case OP_SPRINTF:
+        /* XXX what about the numeric ops? */
+#ifdef USE_LOCALE_NUMERIC
+        if (IN_LC_COMPILETIME(LC_NUMERIC))
+            goto nope;
+#endif
+        break;
+    case OP_PACK:
+        if (!OpHAS_SIBLING(cLISTOPo->op_first)
+          || OpSIBLING(cLISTOPo->op_first)->op_type != OP_CONST)
+            goto nope;
+        {
+            SV * const sv = cSVOPx_sv(OpSIBLING(cLISTOPo->op_first));
+            if (!SvPOK(sv) || SvGMAGICAL(sv)) goto nope;
+            {
+                const char *s = SvPVX_const(sv);
+                while (s < SvEND(sv)) {
+                    if (isALPHA_FOLD_EQ(*s, 'p')) goto nope;
+                    s++;
                 }
             }
-            lasto = o;
-        }
-        /* If the list is now just the PUSHMARK, scrap the whole thing; otherwise attributes.xs
-           would get pulled in with no real need */
-        if (!OpHAS_SIBLING(cLISTOPx(*attrs)->op_first)) {
-            op_free(*attrs);
-            *attrs = NULL;
         }
+        break;
+    case OP_REPEAT:
+        if (o->op_private & OPpREPEAT_DOLIST) goto nope;
+        break;
+    case OP_SREFGEN:
+        if (cUNOPx(cUNOPo->op_first)->op_first->op_type != OP_CONST
+         || SvPADTMP(cSVOPx_sv(cUNOPx(cUNOPo->op_first)->op_first)))
+            goto nope;
     }
 
-    if (new_proto) {
-        SV *svname;
-        if (isGV(name)) {
-            svname = sv_newmortal();
-            gv_efullname3(svname, name, NULL);
-        }
-        else if (SvPOK(name) && *SvPVX((SV *)name) == '&')
-            svname = newSVpvn_flags(SvPVX((SV *)name)+1, SvCUR(name)-1, SvUTF8(name)|SVs_TEMP);
-        else
-            svname = (SV *)name;
-        if (ckWARN(WARN_ILLEGALPROTO))
-            (void)validate_proto(svname, cSVOPx_sv(new_proto), TRUE,
-                                 curstash);
-        if (*proto && ckWARN(WARN_PROTOTYPE)) {
-            STRLEN old_len, new_len;
-            const char * oldp = SvPV(cSVOPx_sv(*proto), old_len);
-            const char * newp = SvPV(cSVOPx_sv(new_proto), new_len);
+    if (PL_parser && PL_parser->error_count)
+        goto nope;		/* Don't try to run w/ errors */
 
-            if (curstash && svname == (SV *)name
-             && !memchr(SvPVX(svname), ':', SvCUR(svname))) {
-                svname = sv_2mortal(newSVsv(PL_curstname));
-                sv_catpvs(svname, "::");
-                sv_catsv(svname, (SV *)name);
+    for (curop = LINKLIST(o); curop != o; curop = LINKLIST(curop)) {
+        switch (curop->op_type) {
+        case OP_CONST:
+            if (   (curop->op_private & OPpCONST_BARE)
+                && (curop->op_private & OPpCONST_STRICT)) {
+                no_bareword_allowed(curop);
+                goto nope;
             }
+            /* FALLTHROUGH */
+        case OP_LIST:
+        case OP_SCALAR:
+        case OP_NULL:
+        case OP_PUSHMARK:
+            /* Foldable; move to next op in list */
+            break;
 
-            Perl_warner(aTHX_ packWARN(WARN_PROTOTYPE),
-                "Prototype '%" UTF8f "' overridden by attribute 'prototype(%" UTF8f ")'"
-                " in %" SVf,
-                UTF8fARG(SvUTF8(cSVOPx_sv(*proto)), old_len, oldp),
-                UTF8fARG(SvUTF8(cSVOPx_sv(new_proto)), new_len, newp),
-                SVfARG(svname));
+        default:
+            /* No other op types are considered foldable */
+            goto nope;
         }
-        if (*proto)
-            op_free(*proto);
-        *proto = new_proto;
     }
-}
 
-static void
-S_cant_declare(pTHX_ OP *o)
-{
-    if (o->op_type == OP_NULL
-     && (o->op_flags & (OPf_SPECIAL|OPf_KIDS)) == OPf_KIDS)
-        o = cUNOPo->op_first;
-    yyerror(Perl_form(aTHX_ "Can't declare %s in \"%s\"",
-                             o->op_type == OP_NULL
-                               && o->op_flags & OPf_SPECIAL
-                                 ? "do block"
-                                 : OP_DESC(o),
-                             PL_parser->in_my == KEY_our   ? "our"   :
-                             PL_parser->in_my == KEY_state ? "state" :
-                                                             "my"));
-}
+    curop = LINKLIST(o);
+    old_next = o->op_next;
+    o->op_next = 0;
+    PL_op = curop;
 
-STATIC OP *
-S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
-{
-    I32 type;
-    const bool stately = PL_parser && PL_parser->in_my == KEY_state;
+    old_cxix = cxstack_ix;
+    create_eval_scope(NULL, G_FAKINGEVAL);
 
-    PERL_ARGS_ASSERT_MY_KID;
+    /* Verify that we don't need to save it:  */
+    assert(PL_curcop == &PL_compiling);
+    StructCopy(&PL_compiling, &not_compiling, COP);
+    PL_curcop = &not_compiling;
+    /* The above ensures that we run with all the correct hints of the
+       currently compiling COP, but that IN_PERL_RUNTIME is true. */
+    assert(IN_PERL_RUNTIME);
+    PL_warnhook = PERL_WARNHOOK_FATAL;
+    PL_diehook  = NULL;
 
-    if (!o || (PL_parser && PL_parser->error_count))
-        return o;
+    /* Effective $^W=1.  */
+    if ( ! (PL_dowarn & G_WARN_ALL_MASK))
+        PL_dowarn |= G_WARN_ON;
 
-    type = o->op_type;
+    ret = S_fold_constants_eval(aTHX);
 
-    if (OP_TYPE_IS_OR_WAS(o, OP_LIST)) {
-        OP *kid;
-        for (kid = cLISTOPo->op_first; kid; kid = OpSIBLING(kid))
-            my_kid(kid, attrs, imopsp);
-        return o;
-    } else if (type == OP_UNDEF || type == OP_STUB) {
-        return o;
-    } else if (type == OP_RV2SV ||	/* "our" declaration */
-               type == OP_RV2AV ||
-               type == OP_RV2HV) {
-        if (cUNOPo->op_first->op_type != OP_GV) { /* MJD 20011224 */
-            S_cant_declare(aTHX_ o);
-        } else if (attrs) {
-            GV * const gv = cGVOPx_gv(cUNOPo->op_first);
-            assert(PL_parser);
-            PL_parser->in_my = FALSE;
-            PL_parser->in_my_stash = NULL;
-            apply_attrs(GvSTASH(gv),
-                        (type == OP_RV2SV ? GvSVn(gv) :
-                         type == OP_RV2AV ? MUTABLE_SV(GvAVn(gv)) :
-                         type == OP_RV2HV ? MUTABLE_SV(GvHVn(gv)) : MUTABLE_SV(gv)),
-                        attrs);
+    switch (ret) {
+    case 0:
+        sv = *(PL_stack_sp--);
+        if (o->op_targ && sv == PAD_SV(o->op_targ)) {	/* grab pad temp? */
+            pad_swipe(o->op_targ,  FALSE);
         }
-        o->op_private |= OPpOUR_INTRO;
-        return o;
-    }
-    else if (type == OP_REFGEN || type == OP_SREFGEN) {
-        if (!FEATURE_MYREF_IS_ENABLED)
-            Perl_croak(aTHX_ "The experimental declared_refs "
-                             "feature is not enabled");
-        Perl_ck_warner_d(aTHX_
-             packWARN(WARN_EXPERIMENTAL__DECLARED_REFS),
-            "Declaring references is experimental");
-        /* Kid is a nulled OP_LIST, handled above.  */
-        my_kid(cUNOPo->op_first, attrs, imopsp);
-        return o;
-    }
-    else if (type != OP_PADSV &&
-             type != OP_PADAV &&
-             type != OP_PADHV &&
-             type != OP_PUSHMARK)
-    {
-        S_cant_declare(aTHX_ o);
-        return o;
+        else if (SvTEMP(sv)) {			/* grab mortal temp? */
+            SvREFCNT_inc_simple_void(sv);
+            SvTEMP_off(sv);
+        }
+        else { assert(SvIMMORTAL(sv)); }
+        break;
+    case 3:
+        /* Something tried to die.  Abandon constant folding.  */
+        /* Pretend the error never happened.  */
+        CLEAR_ERRSV();
+        o->op_next = old_next;
+        break;
+    default:
+        /* Don't expect 1 (setjmp failed) or 2 (something called my_exit)  */
+        PL_warnhook = oldwarnhook;
+        PL_diehook  = olddiehook;
+        /* XXX note that this croak may fail as we've already blown away
+         * the stack - eg any nested evals */
+        Perl_croak(aTHX_ "panic: fold_constants JMPENV_PUSH returned %d", ret);
     }
-    else if (attrs && type != OP_PUSHMARK) {
-        HV *stash;
-
-        assert(PL_parser);
-        PL_parser->in_my = FALSE;
-        PL_parser->in_my_stash = NULL;
+    PL_dowarn   = oldwarn;
+    PL_warnhook = oldwarnhook;
+    PL_diehook  = olddiehook;
+    PL_curcop = &PL_compiling;
 
-        /* check for C<my Dog $spot> when deciding package */
-        stash = PAD_COMPNAME_TYPE(o->op_targ);
-        if (!stash)
-            stash = PL_curstash;
-        apply_attrs_my(stash, o, attrs, imopsp);
+    /* if we croaked, depending on how we croaked the eval scope
+     * may or may not have already been popped */
+    if (cxstack_ix > old_cxix) {
+        assert(cxstack_ix == old_cxix + 1);
+        assert(CxTYPE(CX_CUR()) == CXt_EVAL);
+        delete_eval_scope();
     }
-    o->op_flags |= OPf_MOD;
-    o->op_private |= OPpLVAL_INTRO;
-    if (stately)
-        o->op_private |= OPpPAD_STATE;
-    return o;
-}
-
-OP *
-Perl_my_attrs(pTHX_ OP *o, OP *attrs)
-{
-    OP *rops;
-    int maybe_scalar = 0;
-
-    PERL_ARGS_ASSERT_MY_ATTRS;
+    if (ret)
+        goto nope;
 
-/* [perl #17376]: this appears to be premature, and results in code such as
-   C< our(%x); > executing in list mode rather than void mode */
-#if 0
-    if (o->op_flags & OPf_PARENS)
-        list(o);
-    else
-        maybe_scalar = 1;
-#else
-    maybe_scalar = 1;
-#endif
-    if (attrs)
-        SAVEFREEOP(attrs);
-    rops = NULL;
-    o = my_kid(o, attrs, &rops);
-    if (rops) {
-        if (maybe_scalar && o->op_type == OP_PADSV) {
-            o = scalar(op_append_list(OP_LIST, rops, o));
-            o->op_private |= OPpLVAL_INTRO;
-        }
-        else {
-            /* The listop in rops might have a pushmark at the beginning,
-               which will mess up list assignment. */
-            LISTOP * const lrops = (LISTOP *)rops; /* for brevity */
-            if (rops->op_type == OP_LIST &&
-                lrops->op_first && lrops->op_first->op_type == OP_PUSHMARK)
-            {
-                OP * const pushmark = lrops->op_first;
-                /* excise pushmark */
-                op_sibling_splice(rops, NULL, 1, NULL);
-                op_free(pushmark);
-            }
-            o = op_append_list(OP_LIST, o, rops);
-        }
+    /* OP_STRINGIFY and constant folding are used to implement qq.
+       Here the constant folding is an implementation detail that we
+       want to hide.  If the stringify op is itself already marked
+       folded, however, then it is actually a folded join.  */
+    is_stringify = type == OP_STRINGIFY && !o->op_folded;
+    op_free(o);
+    assert(sv);
+    if (is_stringify)
+        SvPADTMP_off(sv);
+    else if (!SvIMMORTAL(sv)) {
+        SvPADTMP_on(sv);
+        SvREADONLY_on(sv);
     }
-    PL_parser->in_my = FALSE;
-    PL_parser->in_my_stash = NULL;
-    return o;
-}
+    newop = newSVOP(OP_CONST, 0, MUTABLE_SV(sv));
+    if (!is_stringify) newop->op_folded = 1;
+    return newop;
 
-OP *
-Perl_sawparens(pTHX_ OP *o)
-{
-    PERL_UNUSED_CONTEXT;
-    if (o)
-        o->op_flags |= OPf_PARENS;
+ nope:
     return o;
 }
 
-OP *
-Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
+/* convert a constant range in list context into an OP_RV2AV, OP_CONST pair;
+ * the constant value being an AV holding the flattened range.
+ */
+
+static void
+S_gen_constant_list(pTHX_ OP *o)
 {
-    OP *o;
-    bool ismatchop = 0;
-    const OPCODE ltype = left->op_type;
-    const OPCODE rtype = right->op_type;
+    OP *curop, *old_next;
+    SV * const oldwarnhook = PL_warnhook;
+    SV * const olddiehook  = PL_diehook;
+    COP *old_curcop;
+    U8 oldwarn = PL_dowarn;
+    SV **svp;
+    AV *av;
+    I32 old_cxix;
+    COP not_compiling;
+    int ret = 0;
+    dJMPENV;
+    bool op_was_null;
 
-    PERL_ARGS_ASSERT_BIND_MATCH;
+    list(o);
+    if (PL_parser && PL_parser->error_count)
+        return;		/* Don't attempt to run with errors */
 
-    if ( (ltype == OP_RV2AV || ltype == OP_RV2HV || ltype == OP_PADAV
-          || ltype == OP_PADHV) && ckWARN(WARN_MISC))
-    {
-      const char * const desc
-          = PL_op_desc[(
-                          rtype == OP_SUBST || rtype == OP_TRANS
-                       || rtype == OP_TRANSR
-                       )
-                       ? (int)rtype : OP_MATCH];
-      const bool isary = ltype == OP_RV2AV || ltype == OP_PADAV;
-      SV * const name =
-        S_op_varname(aTHX_ left);
-      if (name)
-        Perl_warner(aTHX_ packWARN(WARN_MISC),
-             "Applying %s to %" SVf " will act on scalar(%" SVf ")",
-             desc, SVfARG(name), SVfARG(name));
-      else {
-        const char * const sample = (isary
-             ? "@array" : "%hash");
-        Perl_warner(aTHX_ packWARN(WARN_MISC),
-             "Applying %s to %s will act on scalar(%s)",
-             desc, sample, sample);
-      }
-    }
+    curop = LINKLIST(o);
+    old_next = o->op_next;
+    o->op_next = 0;
+    op_was_null = o->op_type == OP_NULL;
+    if (op_was_null) /* b3698342565fb462291fba4b432cfcd05b6eb4e1 */
+        o->op_type = OP_CUSTOM;
+    CALL_PEEP(curop);
+    if (op_was_null)
+        o->op_type = OP_NULL;
+    op_prune_chain_head(&curop);
+    PL_op = curop;
 
-    if (rtype == OP_CONST &&
-        cSVOPx(right)->op_private & OPpCONST_BARE &&
-        cSVOPx(right)->op_private & OPpCONST_STRICT)
-    {
-        no_bareword_allowed(right);
+    old_cxix = cxstack_ix;
+    create_eval_scope(NULL, G_FAKINGEVAL);
+
+    old_curcop = PL_curcop;
+    StructCopy(old_curcop, &not_compiling, COP);
+    PL_curcop = &not_compiling;
+    /* The above ensures that we run with all the correct hints of the
+       current COP, but that IN_PERL_RUNTIME is true. */
+    assert(IN_PERL_RUNTIME);
+    PL_warnhook = PERL_WARNHOOK_FATAL;
+    PL_diehook  = NULL;
+    JMPENV_PUSH(ret);
+
+    /* Effective $^W=1.  */
+    if ( ! (PL_dowarn & G_WARN_ALL_MASK))
+        PL_dowarn |= G_WARN_ON;
+
+    switch (ret) {
+    case 0:
+#if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
+        PL_curstackinfo->si_stack_hwm = 0; /* stop valgrind complaining */
+#endif
+        Perl_pp_pushmark(aTHX);
+        CALLRUNOPS(aTHX);
+        PL_op = curop;
+        assert (!(curop->op_flags & OPf_SPECIAL));
+        assert(curop->op_type == OP_RANGE);
+        Perl_pp_anonlist(aTHX);
+        break;
+    case 3:
+        CLEAR_ERRSV();
+        o->op_next = old_next;
+        break;
+    default:
+        JMPENV_POP;
+        PL_warnhook = oldwarnhook;
+        PL_diehook = olddiehook;
+        Perl_croak(aTHX_ "panic: gen_constant_list JMPENV_PUSH returned %d",
+            ret);
     }
 
-    /* !~ doesn't make sense with /r, so error on it for now */
-    if (rtype == OP_SUBST && (cPMOPx(right)->op_pmflags & PMf_NONDESTRUCT) &&
-        type == OP_NOT)
-        /* diag_listed_as: Using !~ with %s doesn't make sense */
-        yyerror("Using !~ with s///r doesn't make sense");
-    if (rtype == OP_TRANSR && type == OP_NOT)
-        /* diag_listed_as: Using !~ with %s doesn't make sense */
-        yyerror("Using !~ with tr///r doesn't make sense");
+    JMPENV_POP;
+    PL_dowarn = oldwarn;
+    PL_warnhook = oldwarnhook;
+    PL_diehook = olddiehook;
+    PL_curcop = old_curcop;
 
-    ismatchop = (rtype == OP_MATCH ||
-                 rtype == OP_SUBST ||
-                 rtype == OP_TRANS || rtype == OP_TRANSR)
-             && !(right->op_flags & OPf_SPECIAL);
-    if (ismatchop && right->op_private & OPpTARGET_MY) {
-        right->op_targ = 0;
-        right->op_private &= ~OPpTARGET_MY;
+    if (cxstack_ix > old_cxix) {
+        assert(cxstack_ix == old_cxix + 1);
+        assert(CxTYPE(CX_CUR()) == CXt_EVAL);
+        delete_eval_scope();
     }
-    if (!(right->op_flags & OPf_STACKED) && !right->op_targ && ismatchop) {
-        if (left->op_type == OP_PADSV
-         && !(left->op_private & OPpLVAL_INTRO))
+    if (ret)
+        return;
+
+    OpTYPE_set(o, OP_RV2AV);
+    o->op_flags &= ~OPf_REF;	/* treat \(1..2) like an ordinary list */
+    o->op_flags |= OPf_PARENS;	/* and flatten \(1..2,3) */
+    o->op_opt = 0;		/* needs to be revisited in rpeep() */
+    av = (AV *)SvREFCNT_inc_NN(*PL_stack_sp--);
+
+    /* replace subtree with an OP_CONST */
+    curop = cUNOPo->op_first;
+    op_sibling_splice(o, NULL, -1, newSVOP(OP_CONST, 0, (SV *)av));
+    op_free(curop);
+
+    if (AvFILLp(av) != -1)
+        for (svp = AvARRAY(av) + AvFILLp(av); svp >= AvARRAY(av); --svp)
         {
-            right->op_targ = left->op_targ;
-            op_free(left);
-            o = right;
-        }
-        else {
-            right->op_flags |= OPf_STACKED;
-            if (rtype != OP_MATCH && rtype != OP_TRANSR &&
-            ! (rtype == OP_TRANS &&
-               right->op_private & OPpTRANS_IDENTICAL) &&
-            ! (rtype == OP_SUBST &&
-               (cPMOPx(right)->op_pmflags & PMf_NONDESTRUCT)))
-                left = op_lvalue(left, rtype);
-            if (right->op_type == OP_TRANS || right->op_type == OP_TRANSR)
-                o = newBINOP(OP_NULL, OPf_STACKED, scalar(left), right);
-            else
-                o = op_prepend_elem(rtype, scalar(left), right);
+            SvPADTMP_on(*svp);
+            SvREADONLY_on(*svp);
         }
-        if (type == OP_NOT)
-            return newUNOP(OP_NOT, 0, scalar(o));
-        return o;
-    }
-    else
-        return bind_match(type, left,
-                pmruntime(newPMOP(OP_MATCH, 0), right, NULL, 0, 0));
+    LINKLIST(o);
+    list(o);
+    return;
 }
 
-OP *
-Perl_invert(pTHX_ OP *o)
-{
-    if (!o)
-        return NULL;
-    return newUNOP(OP_NOT, OPf_SPECIAL, scalar(o));
-}
+/*
+=for apidoc_section $optree_manipulation
+*/
 
-OP *
-Perl_cmpchain_start(pTHX_ I32 type, OP *left, OP *right)
+enum {
+    FORBID_LOOPEX_DEFAULT = (1<<0),
+};
+
+static void walk_ops_find_labels(pTHX_ OP *o, HV *gotolabels)
 {
-    BINOP *bop;
-    OP *op;
+    switch(o->op_type) {
+        case OP_NEXTSTATE:
+        case OP_DBSTATE:
+            {
+                STRLEN label_len;
+                U32 label_flags;
+                const char *label_pv = CopLABEL_len_flags((COP *)o, &label_len, &label_flags);
+                if(!label_pv)
+                    break;
 
-    if (!left)
-        left = newOP(OP_NULL, 0);
-    if (!right)
-        right = newOP(OP_NULL, 0);
-    scalar(left);
-    scalar(right);
-    NewOp(0, bop, 1, BINOP);
-    op = (OP*)bop;
-    ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP);
-    OpTYPE_set(op, type);
-    cBINOPx(op)->op_flags = OPf_KIDS;
-    cBINOPx(op)->op_private = 2;
-    cBINOPx(op)->op_first = left;
-    cBINOPx(op)->op_last = right;
-    OpMORESIB_set(left, right);
-    OpLASTSIB_set(right, op);
-    return op;
-}
+                SV *labelsv = newSVpvn_flags(label_pv, label_len, label_flags);
+                SAVEFREESV(labelsv);
 
-OP *
-Perl_cmpchain_extend(pTHX_ I32 type, OP *ch, OP *right)
-{
-    BINOP *bop;
-    OP *op;
+                sv_inc(HeVAL(hv_fetch_ent(gotolabels, labelsv, TRUE, 0)));
+                break;
+            }
+    }
 
-    PERL_ARGS_ASSERT_CMPCHAIN_EXTEND;
-    if (!right)
-        right = newOP(OP_NULL, 0);
-    scalar(right);
-    NewOp(0, bop, 1, BINOP);
-    op = (OP*)bop;
-    ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP);
-    OpTYPE_set(op, type);
-    if (ch->op_type != OP_NULL) {
-        UNOP *lch;
-        OP *nch, *cleft, *cright;
-        NewOp(0, lch, 1, UNOP);
-        nch = (OP*)lch;
-        OpTYPE_set(nch, OP_NULL);
-        nch->op_flags = OPf_KIDS;
-        cleft = cBINOPx(ch)->op_first;
-        cright = cBINOPx(ch)->op_last;
-        cBINOPx(ch)->op_first = NULL;
-        cBINOPx(ch)->op_last = NULL;
-        cBINOPx(ch)->op_private = 0;
-        cBINOPx(ch)->op_flags = 0;
-        cUNOPx(nch)->op_first = cright;
-        OpMORESIB_set(cright, ch);
-        OpMORESIB_set(ch, cleft);
-        OpLASTSIB_set(cleft, nch);
-        ch = nch;
+    if(!(o->op_flags & OPf_KIDS))
+        return;
+
+    OP *kid = cUNOPo->op_first;
+    while(kid) {
+        walk_ops_find_labels(aTHX_ kid, gotolabels);
+        kid = OpSIBLING(kid);
     }
-    OpMORESIB_set(right, op);
-    OpMORESIB_set(op, cUNOPx(ch)->op_first);
-    cUNOPx(ch)->op_first = right;
-    return ch;
 }
 
-OP *
-Perl_cmpchain_finish(pTHX_ OP *ch)
+static void walk_ops_forbid(pTHX_ OP *o, U32 flags, HV *permittedloops, HV *permittedgotos, const char *blockname)
 {
+    bool is_loop = FALSE;
+    SV *labelsv = NULL;
 
-    PERL_ARGS_ASSERT_CMPCHAIN_FINISH;
-    if (ch->op_type != OP_NULL) {
-        OPCODE cmpoptype = ch->op_type;
-        ch = CHECKOP(cmpoptype, ch);
-        if(!ch->op_next && ch->op_type == cmpoptype)
-            ch = fold_constants(op_integerize(op_std_init(ch)));
-        return ch;
-    } else {
-        OP *condop = NULL;
-        OP *rightarg = cUNOPx(ch)->op_first;
-        cUNOPx(ch)->op_first = OpSIBLING(rightarg);
-        OpLASTSIB_set(rightarg, NULL);
-        while (1) {
-            OP *cmpop = cUNOPx(ch)->op_first;
-            OP *leftarg = OpSIBLING(cmpop);
-            OPCODE cmpoptype = cmpop->op_type;
-            OP *nextrightarg;
-            bool is_last;
-            is_last = !(cUNOPx(ch)->op_first = OpSIBLING(leftarg));
-            OpLASTSIB_set(cmpop, NULL);
-            OpLASTSIB_set(leftarg, NULL);
-            if (is_last) {
-                ch->op_flags = 0;
-                op_free(ch);
-                nextrightarg = NULL;
-            } else {
-                nextrightarg = newUNOP(OP_CMPCHAIN_DUP, 0, leftarg);
-                leftarg = newOP(OP_NULL, 0);
-            }
-            cBINOPx(cmpop)->op_first = leftarg;
-            cBINOPx(cmpop)->op_last = rightarg;
-            OpMORESIB_set(leftarg, rightarg);
-            OpLASTSIB_set(rightarg, cmpop);
-            cmpop->op_flags = OPf_KIDS;
-            cmpop->op_private = 2;
-            cmpop = CHECKOP(cmpoptype, cmpop);
-            if(!cmpop->op_next && cmpop->op_type == cmpoptype)
-                cmpop = op_integerize(op_std_init(cmpop));
-            condop = condop ? newLOGOP(OP_CMPCHAIN_AND, 0, cmpop, condop) :
-                        cmpop;
-            if (!nextrightarg)
-                return condop;
-            rightarg = nextrightarg;
-        }
-    }
-}
+    switch(o->op_type) {
+        case OP_NEXTSTATE:
+        case OP_DBSTATE:
+            PL_curcop = (COP *)o;
+            return;
 
-/*
-=for apidoc op_scope
+        case OP_RETURN:
+            goto forbid;
 
-Wraps up an op tree with some additional ops so that at runtime a dynamic
-scope will be created.  The original ops run in the new dynamic scope,
-and then, provided that they exit normally, the scope will be unwound.
-The additional ops used to create and unwind the dynamic scope will
-normally be an C<enter>/C<leave> pair, but a C<scope> op may be used
-instead if the ops are simple enough to not need the full dynamic scope
-structure.
+        case OP_GOTO:
+            {
+                /* OPf_STACKED means either dynamically computed label or `goto &sub` */
+                if(o->op_flags & OPf_STACKED)
+                    goto forbid;
 
-=cut
-*/
+                SV *target = newSVpvn_utf8(cPVOPo->op_pv, strlen(cPVOPo->op_pv),
+                        cPVOPo->op_private & OPpPV_IS_UTF8);
+                SAVEFREESV(target);
 
-OP *
-Perl_op_scope(pTHX_ OP *o)
-{
-    if (o) {
-        if (o->op_flags & OPf_PARENS || PERLDB_NOOPT || TAINTING_get) {
-            o = op_prepend_elem(OP_LINESEQ,
-                    newOP(OP_ENTER, (o->op_flags & OPf_WANT)), o);
-            OpTYPE_set(o, OP_LEAVE);
-        }
-        else if (o->op_type == OP_LINESEQ) {
-            OP *kid;
-            OpTYPE_set(o, OP_SCOPE);
-            kid = ((LISTOP*)o)->op_first;
-            if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) {
-                op_null(kid);
+                if(hv_fetch_ent(permittedgotos, target, FALSE, 0))
+                    break;
 
-                /* The following deals with things like 'do {1 for 1}' */
-                kid = OpSIBLING(kid);
-                if (kid &&
-                    (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE))
-                    op_null(kid);
+                goto forbid;
+            }
+
+        case OP_NEXT:
+        case OP_LAST:
+        case OP_REDO:
+            {
+                /* OPf_SPECIAL means this is a default loopex */
+                if(o->op_flags & OPf_SPECIAL) {
+                    if(flags & FORBID_LOOPEX_DEFAULT)
+                        goto forbid;
+
+                    break;
+                }
+                /* OPf_STACKED means it's a dynamically computed label */
+                if(o->op_flags & OPf_STACKED)
+                    goto forbid;
+
+                SV *target = newSVpv(cPVOPo->op_pv, strlen(cPVOPo->op_pv));
+                if(cPVOPo->op_private & OPpPV_IS_UTF8)
+                    SvUTF8_on(target);
+                SAVEFREESV(target);
+
+                if(hv_fetch_ent(permittedloops, target, FALSE, 0))
+                    break;
+
+                goto forbid;
+            }
+
+        case OP_LEAVELOOP:
+            {
+                STRLEN label_len;
+                U32 label_flags;
+                const char *label_pv = CopLABEL_len_flags(PL_curcop, &label_len, &label_flags);
+
+                if(label_pv) {
+                    labelsv = newSVpvn(label_pv, label_len);
+                    if(label_flags & SVf_UTF8)
+                        SvUTF8_on(labelsv);
+                    SAVEFREESV(labelsv);
+
+                    sv_inc(HeVAL(hv_fetch_ent(permittedloops, labelsv, TRUE, 0)));
+                }
+
+                is_loop = TRUE;
+                break;
             }
+
+forbid:
+            /* diag_listed_as: Can't "%s" out of a "defer" block */
+            /* diag_listed_as: Can't "%s" out of a "finally" block */
+            croak("Can't \"%s\" out of %s", PL_op_name[o->op_type], blockname);
+
+        default:
+            break;
+    }
+
+    if(!(o->op_flags & OPf_KIDS))
+        return;
+
+    OP *kid = cUNOPo->op_first;
+    while(kid) {
+        walk_ops_forbid(aTHX_ kid, flags, permittedloops, permittedgotos, blockname);
+        kid = OpSIBLING(kid);
+
+        if(is_loop) {
+            /* Now in the body of the loop; we can permit loopex default */
+            flags &= ~FORBID_LOOPEX_DEFAULT;
         }
-        else
-            o = newLISTOP(OP_SCOPE, 0, o, NULL);
     }
-    return o;
-}
 
-OP *
-Perl_op_unscope(pTHX_ OP *o)
-{
-    if (o && o->op_type == OP_LINESEQ) {
-        OP *kid = cLISTOPo->op_first;
-        for(; kid; kid = OpSIBLING(kid))
-            if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE)
-                op_null(kid);
+    if(is_loop && labelsv) {
+        HE *he = hv_fetch_ent(permittedloops, labelsv, FALSE, 0);
+        if(SvIV(HeVAL(he)) > 1)
+            sv_dec(HeVAL(he));
+        else
+            hv_delete_ent(permittedloops, labelsv, 0, 0);
     }
-    return o;
 }
 
 /*
-=for apidoc block_start
+=for apidoc forbid_outofblock_ops
 
-Handles compile-time scope entry.
-Arranges for hints to be restored on block
-exit and also handles pad sequence numbers to make lexical variables scope
-right.  Returns a savestack index for use with C<block_end>.
+Checks an optree that implements a block, to ensure there are no control-flow
+ops that attempt to leave the block.  Any C<OP_RETURN> is forbidden, as is any
+C<OP_GOTO>. Loops are analysed, so any LOOPEX op (C<OP_NEXT>, C<OP_LAST> or
+C<OP_REDO>) that affects a loop that contains it within the block are
+permitted, but those that do not are forbidden.
+
+If any of these forbidden constructions are detected, an exception is thrown
+by using the op name and the blockname argument to construct a suitable
+message.
+
+This function alone is not sufficient to ensure the optree does not perform
+any of these forbidden activities during runtime, as it might call a different
+function that performs a non-local LOOPEX, or a string-eval() that performs a
+C<goto>, or various other things. It is intended purely as a compile-time
+check for those that could be detected statically. Additional runtime checks
+may be required depending on the circumstance it is used for.
+
+Note currently that I<all> C<OP_GOTO> ops are forbidden, even in cases where
+they might otherwise be safe to execute.  This may be permitted in a later
+version.
 
 =cut
 */
 
-int
-Perl_block_start(pTHX_ int full)
+void
+Perl_forbid_outofblock_ops(pTHX_ OP *o, const char *blockname)
 {
-    const int retval = PL_savestack_ix;
+    PERL_ARGS_ASSERT_FORBID_OUTOFBLOCK_OPS;
 
-    PL_compiling.cop_seq = PL_cop_seqmax;
-    COP_SEQMAX_INC;
-    pad_block_start(full);
-    SAVEHINTS();
-    PL_hints &= ~HINT_BLOCK_SCOPE;
-    SAVECOMPILEWARNINGS();
-    PL_compiling.cop_warnings = DUP_WARNINGS(PL_compiling.cop_warnings);
-    SAVEI32(PL_compiling.cop_seq);
-    PL_compiling.cop_seq = 0;
+    ENTER;
+    SAVEVPTR(PL_curcop);
 
-    CALL_BLOCK_HOOKS(bhk_start, full);
+    HV *looplabels = newHV();
+    SAVEFREESV((SV *)looplabels);
 
-    return retval;
+    HV *gotolabels = newHV();
+    SAVEFREESV((SV *)gotolabels);
+
+    walk_ops_find_labels(aTHX_ o, gotolabels);
+
+    walk_ops_forbid(aTHX_ o, FORBID_LOOPEX_DEFAULT, looplabels, gotolabels, blockname);
+
+    LEAVE;
 }
 
+/* List constructors */
+
 /*
-=for apidoc block_end
+=for apidoc op_append_elem
 
-Handles compile-time scope exit.  C<floor>
-is the savestack index returned by
-C<block_start>, and C<seq> is the body of the block.  Returns the block,
-possibly modified.
+Append an item to the list of ops contained directly within a list-type
+op, returning the lengthened list.  C<first> is the list-type op,
+and C<last> is the op to append to the list.  C<optype> specifies the
+intended opcode for the list.  If C<first> is not already a list of the
+right type, it will be upgraded into one.  If either C<first> or C<last>
+is null, the other is returned unchanged.
 
 =cut
 */
 
-OP*
-Perl_block_end(pTHX_ I32 floor, OP *seq)
+OP *
+Perl_op_append_elem(pTHX_ I32 type, OP *first, OP *last)
 {
-    const int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
-    OP* retval = voidnonfinal(seq);
-    OP *o;
-
-    /* XXX Is the null PL_parser check necessary here? */
-    assert(PL_parser); /* Let’s find out under debugging builds.  */
-    if (PL_parser && PL_parser->parsed_sub) {
-        o = newSTATEOP(0, NULL, NULL);
-        op_null(o);
-        retval = op_append_elem(OP_LINESEQ, retval, o);
-    }
-
-    CALL_BLOCK_HOOKS(bhk_pre_end, &retval);
-
-    LEAVE_SCOPE(floor);
-    if (needblockscope)
-        PL_hints |= HINT_BLOCK_SCOPE; /* propagate out */
-    o = pad_leavemy();
-
-    if (o) {
-        /* pad_leavemy has created a sequence of introcv ops for all my
-           subs declared in the block.  We have to replicate that list with
-           clonecv ops, to deal with this situation:
-
-               sub {
-                   my sub s1;
-                   my sub s2;
-                   sub s1 { state sub foo { \&s2 } }
-               }->()
+    if (!first)
+        return last;
 
-           Originally, I was going to have introcv clone the CV and turn
-           off the stale flag.  Since &s1 is declared before &s2, the
-           introcv op for &s1 is executed (on sub entry) before the one for
-           &s2.  But the &foo sub inside &s1 (which is cloned when &s1 is
-           cloned, since it is a state sub) closes over &s2 and expects
-           to see it in its outer CV’s pad.  If the introcv op clones &s1,
-           then &s2 is still marked stale.  Since &s1 is not active, and
-           &foo closes over &s1’s implicit entry for &s2, we get a ‘Varia-
-           ble will not stay shared’ warning.  Because it is the same stub
-           that will be used when the introcv op for &s2 is executed, clos-
-           ing over it is safe.  Hence, we have to turn off the stale flag
-           on all lexical subs in the block before we clone any of them.
-           Hence, having introcv clone the sub cannot work.  So we create a
-           list of ops like this:
+    if (!last)
+        return first;
 
-               lineseq
-                  |
-                  +-- introcv
-                  |
-                  +-- introcv
-                  |
-                  +-- introcv
-                  |
-                  .
-                  .
-                  .
-                  |
-                  +-- clonecv
-                  |
-                  +-- clonecv
-                  |
-                  +-- clonecv
-                  |
-                  .
-                  .
-                  .
-         */
-        OP *kid = o->op_flags & OPf_KIDS ? cLISTOPo->op_first : o;
-        OP * const last = o->op_flags & OPf_KIDS ? cLISTOPo->op_last : o;
-        for (;; kid = OpSIBLING(kid)) {
-            OP *newkid = newOP(OP_CLONECV, 0);
-            newkid->op_targ = kid->op_targ;
-            o = op_append_elem(OP_LINESEQ, o, newkid);
-            if (kid == last) break;
-        }
-        retval = op_prepend_elem(OP_LINESEQ, o, retval);
+    if (first->op_type != (unsigned)type
+        || (type == OP_LIST && (first->op_flags & OPf_PARENS)))
+    {
+        return newLISTOP(type, 0, first, last);
     }
 
-    CALL_BLOCK_HOOKS(bhk_post_end, &retval);
-
-    return retval;
+    op_sibling_splice(first, cLISTOPx(first)->op_last, 0, last);
+    first->op_flags |= OPf_KIDS;
+    return first;
 }
 
 /*
-=for apidoc_section $scope
-
-=for apidoc blockhook_register
+=for apidoc op_append_list
 
-Register a set of hooks to be called when the Perl lexical scope changes
-at compile time.  See L<perlguts/"Compile-time scope hooks">.
+Concatenate the lists of ops contained directly within two list-type ops,
+returning the combined list.  C<first> and C<last> are the list-type ops
+to concatenate.  C<optype> specifies the intended opcode for the list.
+If either C<first> or C<last> is not already a list of the right type,
+it will be upgraded into one.  If either C<first> or C<last> is null,
+the other is returned unchanged.
 
 =cut
 */
 
-void
-Perl_blockhook_register(pTHX_ BHK *hk)
+OP *
+Perl_op_append_list(pTHX_ I32 type, OP *first, OP *last)
 {
-    PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER;
+    if (!first)
+        return last;
 
-    Perl_av_create_and_push(aTHX_ &PL_blockhooks, newSViv(PTR2IV(hk)));
-}
+    if (!last)
+        return first;
 
-void
-Perl_newPROG(pTHX_ OP *o)
-{
-    OP *start;
+    if (first->op_type != (unsigned)type)
+        return op_prepend_elem(type, first, last);
 
-    PERL_ARGS_ASSERT_NEWPROG;
+    if (last->op_type != (unsigned)type)
+        return op_append_elem(type, first, last);
 
-    if (PL_in_eval) {
-        PERL_CONTEXT *cx;
-        I32 i;
-        if (PL_eval_root)
-                return;
-        PL_eval_root = newUNOP(OP_LEAVEEVAL,
-                               ((PL_in_eval & EVAL_KEEPERR)
-                                ? OPf_SPECIAL : 0), o);
+    OpMORESIB_set(cLISTOPx(first)->op_last, cLISTOPx(last)->op_first);
+    cLISTOPx(first)->op_last = cLISTOPx(last)->op_last;
+    OpLASTSIB_set(cLISTOPx(first)->op_last, first);
+    first->op_flags |= (last->op_flags & OPf_KIDS);
 
-        cx = CX_CUR();
-        assert(CxTYPE(cx) == CXt_EVAL);
+    S_op_destroy(aTHX_ last);
 
-        if ((cx->blk_gimme & G_WANT) == G_VOID)
-            scalarvoid(PL_eval_root);
-        else if ((cx->blk_gimme & G_WANT) == G_LIST)
-            list(PL_eval_root);
-        else
-            scalar(PL_eval_root);
+    return first;
+}
 
-        start = op_linklist(PL_eval_root);
-        PL_eval_root->op_next = 0;
-        i = PL_savestack_ix;
-        SAVEFREEOP(o);
-        ENTER;
-        S_process_optree(aTHX_ NULL, PL_eval_root, start);
-        LEAVE;
-        PL_savestack_ix = i;
-    }
-    else {
-        if (o->op_type == OP_STUB) {
-            /* This block is entered if nothing is compiled for the main
-               program. This will be the case for an genuinely empty main
-               program, or one which only has BEGIN blocks etc, so already
-               run and freed.
+/*
+=for apidoc op_prepend_elem
 
-               Historically (5.000) the guard above was !o. However, commit
-               f8a08f7b8bd67b28 (Jun 2001), integrated to blead as
-               c71fccf11fde0068, changed perly.y so that newPROG() is now
-               called with the output of block_end(), which returns a new
-               OP_STUB for the case of an empty optree. ByteLoader (and
-               maybe other things) also take this path, because they set up
-               PL_main_start and PL_main_root directly, without generating an
-               optree.
+Prepend an item to the list of ops contained directly within a list-type
+op, returning the lengthened list.  C<first> is the op to prepend to the
+list, and C<last> is the list-type op.  C<optype> specifies the intended
+opcode for the list.  If C<last> is not already a list of the right type,
+it will be upgraded into one.  If either C<first> or C<last> is null,
+the other is returned unchanged.
 
-               If the parsing the main program aborts (due to parse errors,
-               or due to BEGIN or similar calling exit), then newPROG()
-               isn't even called, and hence this code path and its cleanups
-               are skipped. This shouldn't make a make a difference:
-               * a non-zero return from perl_parse is a failure, and
-                 perl_destruct() should be called immediately.
-               * however, if exit(0) is called during the parse, then
-                 perl_parse() returns 0, and perl_run() is called. As
-                 PL_main_start will be NULL, perl_run() will return
-                 promptly, and the exit code will remain 0.
-            */
+=cut
+*/
 
-            PL_comppad_name = 0;
-            PL_compcv = 0;
-            S_op_destroy(aTHX_ o);
-            return;
-        }
-        PL_main_root = op_scope(sawparens(scalarvoid(o)));
-        PL_curcop = &PL_compiling;
-        start = LINKLIST(PL_main_root);
-        PL_main_root->op_next = 0;
-        S_process_optree(aTHX_ NULL, PL_main_root, start);
-        if (!PL_parser->error_count)
-            /* on error, leave CV slabbed so that ops left lying around
-             * will eb cleaned up. Else unslab */
-            cv_forget_slab(PL_compcv);
-        PL_compcv = 0;
+OP *
+Perl_op_prepend_elem(pTHX_ I32 type, OP *first, OP *last)
+{
+    if (!first)
+        return last;
 
-        /* Register with debugger */
-        if (PERLDB_INTER) {
-            CV * const cv = get_cvs("DB::postponed", 0);
-            if (cv) {
-                dSP;
-                PUSHMARK(SP);
-                XPUSHs(MUTABLE_SV(CopFILEGV(&PL_compiling)));
-                PUTBACK;
-                call_sv(MUTABLE_SV(cv), G_DISCARD);
-            }
+    if (!last)
+        return first;
+
+    if (last->op_type == (unsigned)type) {
+        if (type == OP_LIST) {	/* already a PUSHMARK there */
+            /* insert 'first' after pushmark */
+            op_sibling_splice(last, cLISTOPx(last)->op_first, 0, first);
+            if (!(first->op_flags & OPf_PARENS))
+                last->op_flags &= ~OPf_PARENS;
         }
+        else
+            op_sibling_splice(last, NULL, 0, first);
+        last->op_flags |= OPf_KIDS;
+        return last;
     }
+
+    return newLISTOP(type, 0, first, last);
 }
 
-OP *
-Perl_localize(pTHX_ OP *o, I32 lex)
-{
-    PERL_ARGS_ASSERT_LOCALIZE;
+/*
+=for apidoc op_convert_list
 
-    if (o->op_flags & OPf_PARENS)
-/* [perl #17376]: this appears to be premature, and results in code such as
-   C< our(%x); > executing in list mode rather than void mode */
-#if 0
-        list(o);
-#else
-        NOOP;
-#endif
-    else {
-        if ( PL_parser->bufptr > PL_parser->oldbufptr
-            && PL_parser->bufptr[-1] == ','
-            && ckWARN(WARN_PARENTHESIS))
-        {
-            char *s = PL_parser->bufptr;
-            bool sigil = FALSE;
+Converts C<o> into a list op if it is not one already, and then converts it
+into the specified C<type>, calling its check function, allocating a target if
+it needs one, and folding constants.
 
-            /* some heuristics to detect a potential error */
-            while (*s && (memCHRs(", \t\n", *s)))
-                s++;
+A list-type op is usually constructed one kid at a time via C<newLISTOP>,
+C<op_prepend_elem> and C<op_append_elem>.  Then finally it is passed to
+C<op_convert_list> to make it the right type.
 
-            while (1) {
-                if (*s && (memCHRs("@$%", *s) || (!lex && *s == '*'))
-                       && *++s
-                       && (isWORDCHAR(*s) || UTF8_IS_CONTINUED(*s))) {
-                    s++;
-                    sigil = TRUE;
-                    while (*s && (isWORDCHAR(*s) || UTF8_IS_CONTINUED(*s)))
-                        s++;
-                    while (*s && (memCHRs(", \t\n", *s)))
-                        s++;
-                }
-                else
-                    break;
-            }
-            if (sigil && (*s == ';' || *s == '=')) {
-                Perl_warner(aTHX_ packWARN(WARN_PARENTHESIS),
-                                "Parentheses missing around \"%s\" list",
-                                lex
-                                    ? (PL_parser->in_my == KEY_our
-                                        ? "our"
-                                        : PL_parser->in_my == KEY_state
-                                            ? "state"
-                                            : "my")
-                                    : "local");
-            }
-        }
-    }
-    if (lex)
-        o = my(o);
-    else
-        o = op_lvalue(o, OP_NULL);		/* a bit kludgey */
-    PL_parser->in_my = FALSE;
-    PL_parser->in_my_stash = NULL;
-    return o;
-}
+=cut
+*/
 
 OP *
-Perl_jmaybe(pTHX_ OP *o)
+Perl_op_convert_list(pTHX_ I32 type, I32 flags, OP *o)
 {
-    PERL_ARGS_ASSERT_JMAYBE;
+    if (type < 0) type = -type, flags |= OPf_SPECIAL;
+    if (type == OP_RETURN) {
+        if (FEATURE_MODULE_TRUE_IS_ENABLED)
+            flags |= OPf_SPECIAL;
+    }
+    if (!o || o->op_type != OP_LIST)
+        o = force_list(o, FALSE);
+    else
+    {
+        o->op_flags &= ~OPf_WANT;
+        o->op_private &= ~OPpLVAL_INTRO;
+    }
 
-    if (o->op_type == OP_LIST) {
-        if (FEATURE_MULTIDIMENSIONAL_IS_ENABLED) {
-            OP * const o2
-                = newSVREF(newGVOP(OP_GV, 0, gv_fetchpvs(";", GV_ADD|GV_NOTQUAL, SVt_PV)));
-            o = op_convert_list(OP_JOIN, 0, op_prepend_elem(OP_LIST, o2, o));
-        }
-        else {
-            /* If the user disables this, then a warning might not be enough to alert
-               them to a possible change of behaviour here, so throw an exception.
-            */
-            yyerror("Multidimensional hash lookup is disabled");
+    if (!(PL_opargs[type] & OA_MARK))
+        op_null(cLISTOPo->op_first);
+    else {
+        OP * const kid2 = OpSIBLING(cLISTOPo->op_first);
+        if (kid2 && kid2->op_type == OP_COREARGS) {
+            op_null(cLISTOPo->op_first);
+            kid2->op_private |= OPpCOREARGS_PUSHMARK;
         }
     }
-    return o;
-}
 
-PERL_STATIC_INLINE OP *
-S_op_std_init(pTHX_ OP *o)
-{
-    I32 type = o->op_type;
+    if (type != OP_SPLIT)
+        /* At this point o is a LISTOP, but OP_SPLIT is a PMOP; let
+         * ck_split() create a real PMOP and leave the op's type as listop
+         * for now. Otherwise op_free() etc will crash.
+         */
+        OpTYPE_set(o, type);
 
-    PERL_ARGS_ASSERT_OP_STD_INIT;
+    o->op_flags |= flags;
+    if (flags & OPf_FOLDED)
+        o->op_folded = 1;
 
-    if (PL_opargs[type] & OA_RETSCALAR)
-        scalar(o);
-    if (PL_opargs[type] & OA_TARGET && !o->op_targ)
-        o->op_targ = pad_alloc(type, SVs_PADTMP);
+    o = CHECKOP(type, o);
+    if (o->op_type != (unsigned)type)
+        return o;
 
-    return o;
+    return fold_constants(op_integerize(op_std_init(o)));
 }
 
-PERL_STATIC_INLINE OP *
-S_op_integerize(pTHX_ OP *o)
-{
-    I32 type = o->op_type;
+/* Constructors */
 
-    PERL_ARGS_ASSERT_OP_INTEGERIZE;
 
-    /* integerize op. */
-    if ((PL_opargs[type] & OA_OTHERINT) && (PL_hints & HINT_INTEGER))
-    {
-        o->op_ppaddr = PL_ppaddr[++(o->op_type)];
-    }
+/*
+=for apidoc_section $optree_construction
 
-    if (type == OP_NEGATE)
-        /* XXX might want a ck_negate() for this */
-        cUNOPo->op_first->op_private &= ~OPpCONST_STRICT;
+=for apidoc newNULLLIST
 
-    return o;
-}
+Constructs, checks, and returns a new C<stub> op, which represents an
+empty list expression.
 
-/* This function exists solely to provide a scope to limit
-   setjmp/longjmp() messing with auto variables.  It cannot be inlined because
-   it uses setjmp
- */
-STATIC int
-S_fold_constants_eval(pTHX) {
-    int ret = 0;
-    dJMPENV;
+=cut
+*/
 
-    JMPENV_PUSH(ret);
+OP *
+Perl_newNULLLIST(pTHX)
+{
+    return newOP(OP_STUB, 0);
+}
 
-    if (ret == 0) {
-        CALLRUNOPS(aTHX);
+/* promote o and any siblings to be a list if its not already; i.e.
+ *
+ *  o - A - B
+ *
+ * becomes
+ *
+ *  list
+ *    |
+ *  pushmark - o - A - B
+ *
+ * If nullit it true, the list op is nulled.
+ */
+
+static OP *
+S_force_list(pTHX_ OP *o, bool nullit)
+{
+    if (!o || o->op_type != OP_LIST) {
+        OP *rest = NULL;
+        if (o) {
+            /* manually detach any siblings then add them back later */
+            rest = OpSIBLING(o);
+            OpLASTSIB_set(o, NULL);
+        }
+        o = newLISTOP(OP_LIST, 0, o, NULL);
+        if (rest)
+            op_sibling_splice(o, cLISTOPo->op_last, 0, rest);
     }
+    if (nullit)
+        op_null(o);
+    return o;
+}
 
-    JMPENV_POP;
+/*
+=for apidoc op_force_list
 
-    return ret;
+Promotes o and any siblings to be an C<OP_LIST> if it is not already. If
+a new C<OP_LIST> op was created, its first child will be C<OP_PUSHMARK>.
+The returned node itself will be nulled, leaving only its children.
+
+This is often what you want to do before putting the optree into list
+context; as
+
+    o = op_contextualize(op_force_list(o), G_LIST);
+
+=cut
+*/
+
+OP *
+Perl_op_force_list(pTHX_ OP *o)
+{
+    return force_list(o, TRUE);
 }
 
-static OP *
-S_fold_constants(pTHX_ OP *const o)
+/*
+=for apidoc newLISTOP
+
+Constructs, checks, and returns an op of any list type.  C<type> is
+the opcode.  C<flags> gives the eight bits of C<op_flags>, except that
+C<OPf_KIDS> will be set automatically if required.  C<first> and C<last>
+supply up to two ops to be direct children of the list op; they are
+consumed by this function and become part of the constructed op tree.
+
+For most list operators, the check function expects all the kid ops to be
+present already, so calling C<newLISTOP(OP_JOIN, ...)> (e.g.) is not
+appropriate.  What you want to do in that case is create an op of type
+C<OP_LIST>, append more children to it, and then call L</op_convert_list>.
+See L</op_convert_list> for more information.
+
+=cut
+*/
+
+OP *
+Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
 {
-    OP *curop;
-    OP *newop;
-    I32 type = o->op_type;
-    bool is_stringify;
-    SV *sv = NULL;
-    int ret = 0;
-    OP *old_next;
-    SV * const oldwarnhook = PL_warnhook;
-    SV * const olddiehook  = PL_diehook;
-    COP not_compiling;
-    U8 oldwarn = PL_dowarn;
-    I32 old_cxix;
+    LISTOP *listop;
+    /* Note that allocating an OP_PUSHMARK can die under Safe.pm if
+     * pushmark is banned. So do it now while existing ops are in a
+     * consistent state, in case they suddenly get freed */
+    OP* const pushop = type == OP_LIST ? newOP(OP_PUSHMARK, 0) : NULL;
 
-    PERL_ARGS_ASSERT_FOLD_CONSTANTS;
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_LISTOP
+        || type == OP_CUSTOM);
 
-    if (!(PL_opargs[type] & OA_FOLDCONST))
-        goto nope;
+    NewOp(1101, listop, 1, LISTOP);
+    OpTYPE_set(listop, type);
+    if (first || last)
+        flags |= OPf_KIDS;
+    listop->op_flags = (U8)flags;
 
-    switch (type) {
-    case OP_UCFIRST:
-    case OP_LCFIRST:
-    case OP_UC:
-    case OP_LC:
-    case OP_FC:
-#ifdef USE_LOCALE_CTYPE
-        if (IN_LC_COMPILETIME(LC_CTYPE))
-            goto nope;
-#endif
-        break;
-    case OP_SLT:
-    case OP_SGT:
-    case OP_SLE:
-    case OP_SGE:
-    case OP_SCMP:
-#ifdef USE_LOCALE_COLLATE
-        if (IN_LC_COMPILETIME(LC_COLLATE))
-            goto nope;
-#endif
-        break;
-    case OP_SPRINTF:
-        /* XXX what about the numeric ops? */
-#ifdef USE_LOCALE_NUMERIC
-        if (IN_LC_COMPILETIME(LC_NUMERIC))
-            goto nope;
-#endif
-        break;
-    case OP_PACK:
-        if (!OpHAS_SIBLING(cLISTOPo->op_first)
-          || OpSIBLING(cLISTOPo->op_first)->op_type != OP_CONST)
-            goto nope;
-        {
-            SV * const sv = cSVOPx_sv(OpSIBLING(cLISTOPo->op_first));
-            if (!SvPOK(sv) || SvGMAGICAL(sv)) goto nope;
-            {
-                const char *s = SvPVX_const(sv);
-                while (s < SvEND(sv)) {
-                    if (isALPHA_FOLD_EQ(*s, 'p')) goto nope;
-                    s++;
-                }
-            }
-        }
-        break;
-    case OP_REPEAT:
-        if (o->op_private & OPpREPEAT_DOLIST) goto nope;
-        break;
-    case OP_SREFGEN:
-        if (cUNOPx(cUNOPo->op_first)->op_first->op_type != OP_CONST
-         || SvPADTMP(cSVOPx_sv(cUNOPx(cUNOPo->op_first)->op_first)))
-            goto nope;
+    if (!last && first)
+        last = first;
+    else if (!first && last)
+        first = last;
+    else if (first)
+        OpMORESIB_set(first, last);
+    listop->op_first = first;
+    listop->op_last = last;
+
+    if (pushop) {
+        OpMORESIB_set(pushop, first);
+        listop->op_first = pushop;
+        listop->op_flags |= OPf_KIDS;
+        if (!last)
+            listop->op_last = pushop;
     }
+    if (listop->op_last)
+        OpLASTSIB_set(listop->op_last, (OP*)listop);
 
-    if (PL_parser && PL_parser->error_count)
-        goto nope;		/* Don't try to run w/ errors */
+    return CHECKOP(type, listop);
+}
 
-    for (curop = LINKLIST(o); curop != o; curop = LINKLIST(curop)) {
-        switch (curop->op_type) {
-        case OP_CONST:
-            if (   (curop->op_private & OPpCONST_BARE)
-                && (curop->op_private & OPpCONST_STRICT)) {
-                no_bareword_allowed(curop);
-                goto nope;
-            }
-            /* FALLTHROUGH */
-        case OP_LIST:
-        case OP_SCALAR:
-        case OP_NULL:
-        case OP_PUSHMARK:
-            /* Foldable; move to next op in list */
-            break;
+/*
+=for apidoc newOP
 
-        default:
-            /* No other op types are considered foldable */
-            goto nope;
-        }
+Constructs, checks, and returns an op of any base type (any type that
+has no extra fields).  C<type> is the opcode.  C<flags> gives the
+eight bits of C<op_flags>, and, shifted up eight bits, the eight bits
+of C<op_private>.
+
+=cut
+*/
+
+OP *
+Perl_newOP(pTHX_ I32 type, I32 flags)
+{
+    OP *o;
+
+    if (type == -OP_ENTEREVAL) {
+        type = OP_ENTEREVAL;
+        flags |= OPpEVAL_BYTES<<8;
     }
 
-    curop = LINKLIST(o);
-    old_next = o->op_next;
-    o->op_next = 0;
-    PL_op = curop;
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_BASEOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_BASEOP_OR_UNOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
 
-    old_cxix = cxstack_ix;
-    create_eval_scope(NULL, G_FAKINGEVAL);
+    NewOp(1101, o, 1, OP);
+    OpTYPE_set(o, type);
+    o->op_flags = (U8)flags;
 
-    /* Verify that we don't need to save it:  */
-    assert(PL_curcop == &PL_compiling);
-    StructCopy(&PL_compiling, &not_compiling, COP);
-    PL_curcop = &not_compiling;
-    /* The above ensures that we run with all the correct hints of the
-       currently compiling COP, but that IN_PERL_RUNTIME is true. */
-    assert(IN_PERL_RUNTIME);
-    PL_warnhook = PERL_WARNHOOK_FATAL;
-    PL_diehook  = NULL;
+    o->op_next = o;
+    o->op_private = (U8)(0 | (flags >> 8));
+    if (PL_opargs[type] & OA_RETSCALAR)
+        scalar(o);
+    if (PL_opargs[type] & OA_TARGET)
+        o->op_targ = pad_alloc(type, SVs_PADTMP);
+    return CHECKOP(type, o);
+}
 
-    /* Effective $^W=1.  */
-    if ( ! (PL_dowarn & G_WARN_ALL_MASK))
-        PL_dowarn |= G_WARN_ON;
+/*
+=for apidoc newUNOP
 
-    ret = S_fold_constants_eval(aTHX);
+Constructs, checks, and returns an op of any unary type.  C<type> is
+the opcode.  C<flags> gives the eight bits of C<op_flags>, except that
+C<OPf_KIDS> will be set automatically if required, and, shifted up eight
+bits, the eight bits of C<op_private>, except that the bit with value 1
+is automatically set.  C<first> supplies an optional op to be the direct
+child of the unary op; it is consumed by this function and become part
+of the constructed op tree.
 
-    switch (ret) {
-    case 0:
-        sv = *(PL_stack_sp--);
-        if (o->op_targ && sv == PAD_SV(o->op_targ)) {	/* grab pad temp? */
-            pad_swipe(o->op_targ,  FALSE);
-        }
-        else if (SvTEMP(sv)) {			/* grab mortal temp? */
-            SvREFCNT_inc_simple_void(sv);
-            SvTEMP_off(sv);
-        }
-        else { assert(SvIMMORTAL(sv)); }
-        break;
-    case 3:
-        /* Something tried to die.  Abandon constant folding.  */
-        /* Pretend the error never happened.  */
-        CLEAR_ERRSV();
-        o->op_next = old_next;
-        break;
-    default:
-        /* Don't expect 1 (setjmp failed) or 2 (something called my_exit)  */
-        PL_warnhook = oldwarnhook;
-        PL_diehook  = olddiehook;
-        /* XXX note that this croak may fail as we've already blown away
-         * the stack - eg any nested evals */
-        Perl_croak(aTHX_ "panic: fold_constants JMPENV_PUSH returned %d", ret);
-    }
-    PL_dowarn   = oldwarn;
-    PL_warnhook = oldwarnhook;
-    PL_diehook  = olddiehook;
-    PL_curcop = &PL_compiling;
-
-    /* if we croaked, depending on how we croaked the eval scope
-     * may or may not have already been popped */
-    if (cxstack_ix > old_cxix) {
-        assert(cxstack_ix == old_cxix + 1);
-        assert(CxTYPE(CX_CUR()) == CXt_EVAL);
-        delete_eval_scope();
-    }
-    if (ret)
-        goto nope;
-
-    /* OP_STRINGIFY and constant folding are used to implement qq.
-       Here the constant folding is an implementation detail that we
-       want to hide.  If the stringify op is itself already marked
-       folded, however, then it is actually a folded join.  */
-    is_stringify = type == OP_STRINGIFY && !o->op_folded;
-    op_free(o);
-    assert(sv);
-    if (is_stringify)
-        SvPADTMP_off(sv);
-    else if (!SvIMMORTAL(sv)) {
-        SvPADTMP_on(sv);
-        SvREADONLY_on(sv);
-    }
-    newop = newSVOP(OP_CONST, 0, MUTABLE_SV(sv));
-    if (!is_stringify) newop->op_folded = 1;
-    return newop;
-
- nope:
-    return o;
-}
+=for apidoc Amnh||OPf_KIDS
 
-/* convert a constant range in list context into an OP_RV2AV, OP_CONST pair;
- * the constant value being an AV holding the flattened range.
- */
+=cut
+*/
 
-static void
-S_gen_constant_list(pTHX_ OP *o)
+OP *
+Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
 {
-    OP *curop, *old_next;
-    SV * const oldwarnhook = PL_warnhook;
-    SV * const olddiehook  = PL_diehook;
-    COP *old_curcop;
-    U8 oldwarn = PL_dowarn;
-    SV **svp;
-    AV *av;
-    I32 old_cxix;
-    COP not_compiling;
-    int ret = 0;
-    dJMPENV;
-    bool op_was_null;
-
-    list(o);
-    if (PL_parser && PL_parser->error_count)
-        return;		/* Don't attempt to run with errors */
-
-    curop = LINKLIST(o);
-    old_next = o->op_next;
-    o->op_next = 0;
-    op_was_null = o->op_type == OP_NULL;
-    if (op_was_null) /* b3698342565fb462291fba4b432cfcd05b6eb4e1 */
-        o->op_type = OP_CUSTOM;
-    CALL_PEEP(curop);
-    if (op_was_null)
-        o->op_type = OP_NULL;
-    S_prune_chain_head(&curop);
-    PL_op = curop;
-
-    old_cxix = cxstack_ix;
-    create_eval_scope(NULL, G_FAKINGEVAL);
-
-    old_curcop = PL_curcop;
-    StructCopy(old_curcop, &not_compiling, COP);
-    PL_curcop = &not_compiling;
-    /* The above ensures that we run with all the correct hints of the
-       current COP, but that IN_PERL_RUNTIME is true. */
-    assert(IN_PERL_RUNTIME);
-    PL_warnhook = PERL_WARNHOOK_FATAL;
-    PL_diehook  = NULL;
-    JMPENV_PUSH(ret);
-
-    /* Effective $^W=1.  */
-    if ( ! (PL_dowarn & G_WARN_ALL_MASK))
-        PL_dowarn |= G_WARN_ON;
+    UNOP *unop;
 
-    switch (ret) {
-    case 0:
-#if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
-        PL_curstackinfo->si_stack_hwm = 0; /* stop valgrind complaining */
-#endif
-        Perl_pp_pushmark(aTHX);
-        CALLRUNOPS(aTHX);
-        PL_op = curop;
-        assert (!(curop->op_flags & OPf_SPECIAL));
-        assert(curop->op_type == OP_RANGE);
-        Perl_pp_anonlist(aTHX);
-        break;
-    case 3:
-        CLEAR_ERRSV();
-        o->op_next = old_next;
-        break;
-    default:
-        JMPENV_POP;
-        PL_warnhook = oldwarnhook;
-        PL_diehook = olddiehook;
-        Perl_croak(aTHX_ "panic: gen_constant_list JMPENV_PUSH returned %d",
-            ret);
+    if (type == -OP_ENTEREVAL) {
+        type = OP_ENTEREVAL;
+        flags |= OPpEVAL_BYTES<<8;
     }
 
-    JMPENV_POP;
-    PL_dowarn = oldwarn;
-    PL_warnhook = oldwarnhook;
-    PL_diehook = olddiehook;
-    PL_curcop = old_curcop;
-
-    if (cxstack_ix > old_cxix) {
-        assert(cxstack_ix == old_cxix + 1);
-        assert(CxTYPE(CX_CUR()) == CXt_EVAL);
-        delete_eval_scope();
-    }
-    if (ret)
-        return;
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_UNOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_BASEOP_OR_UNOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP
+        || type == OP_SASSIGN
+        || type == OP_ENTERTRY
+        || type == OP_ENTERTRYCATCH
+        || type == OP_CUSTOM
+        || type == OP_NULL );
 
-    OpTYPE_set(o, OP_RV2AV);
-    o->op_flags &= ~OPf_REF;	/* treat \(1..2) like an ordinary list */
-    o->op_flags |= OPf_PARENS;	/* and flatten \(1..2,3) */
-    o->op_opt = 0;		/* needs to be revisited in rpeep() */
-    av = (AV *)SvREFCNT_inc_NN(*PL_stack_sp--);
+    if (!first)
+        first = newOP(OP_STUB, 0);
+    if (PL_opargs[type] & OA_MARK)
+        first = op_force_list(first);
 
-    /* replace subtree with an OP_CONST */
-    curop = ((UNOP*)o)->op_first;
-    op_sibling_splice(o, NULL, -1, newSVOP(OP_CONST, 0, (SV *)av));
-    op_free(curop);
+    NewOp(1101, unop, 1, UNOP);
+    OpTYPE_set(unop, type);
+    unop->op_first = first;
+    unop->op_flags = (U8)(flags | OPf_KIDS);
+    unop->op_private = (U8)(1 | (flags >> 8));
 
-    if (AvFILLp(av) != -1)
-        for (svp = AvARRAY(av) + AvFILLp(av); svp >= AvARRAY(av); --svp)
-        {
-            SvPADTMP_on(*svp);
-            SvREADONLY_on(*svp);
-        }
-    LINKLIST(o);
-    list(o);
-    return;
-}
+    if (!OpHAS_SIBLING(first)) /* true unless weird syntax error */
+        OpLASTSIB_set(first, (OP*)unop);
 
-/*
-=for apidoc_section $optree_manipulation
-*/
+    unop = (UNOP*) CHECKOP(type, unop);
+    if (unop->op_next)
+        return (OP*)unop;
 
-/* List constructors */
+    return fold_constants(op_integerize(op_std_init((OP *) unop)));
+}
 
 /*
-=for apidoc op_append_elem
+=for apidoc newUNOP_AUX
 
-Append an item to the list of ops contained directly within a list-type
-op, returning the lengthened list.  C<first> is the list-type op,
-and C<last> is the op to append to the list.  C<optype> specifies the
-intended opcode for the list.  If C<first> is not already a list of the
-right type, it will be upgraded into one.  If either C<first> or C<last>
-is null, the other is returned unchanged.
+Similar to C<newUNOP>, but creates an C<UNOP_AUX> struct instead, with C<op_aux>
+initialised to C<aux>
 
 =cut
 */
 
 OP *
-Perl_op_append_elem(pTHX_ I32 type, OP *first, OP *last)
+Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP *first, UNOP_AUX_item *aux)
 {
-    if (!first)
-        return last;
+    UNOP_AUX *unop;
 
-    if (!last)
-        return first;
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_UNOP_AUX
+        || type == OP_CUSTOM);
 
-    if (first->op_type != (unsigned)type
-        || (type == OP_LIST && (first->op_flags & OPf_PARENS)))
-    {
-        return newLISTOP(type, 0, first, last);
-    }
+    NewOp(1101, unop, 1, UNOP_AUX);
+    unop->op_type = (OPCODE)type;
+    unop->op_ppaddr = PL_ppaddr[type];
+    unop->op_first = first;
+    unop->op_flags = (U8)(flags | (first ? OPf_KIDS : 0));
+    unop->op_private = (U8)((first ? 1 : 0) | (flags >> 8));
+    unop->op_aux = aux;
 
-    op_sibling_splice(first, ((LISTOP*)first)->op_last, 0, last);
-    first->op_flags |= OPf_KIDS;
-    return first;
+    if (first && !OpHAS_SIBLING(first)) /* true unless weird syntax error */
+        OpLASTSIB_set(first, (OP*)unop);
+
+    unop = (UNOP_AUX*) CHECKOP(type, unop);
+
+    return op_std_init((OP *) unop);
 }
 
 /*
-=for apidoc op_append_list
+=for apidoc newMETHOP
 
-Concatenate the lists of ops contained directly within two list-type ops,
-returning the combined list.  C<first> and C<last> are the list-type ops
-to concatenate.  C<optype> specifies the intended opcode for the list.
-If either C<first> or C<last> is not already a list of the right type,
-it will be upgraded into one.  If either C<first> or C<last> is null,
-the other is returned unchanged.
+Constructs, checks, and returns an op of method type with a method name
+evaluated at runtime.  C<type> is the opcode.  C<flags> gives the eight
+bits of C<op_flags>, except that C<OPf_KIDS> will be set automatically,
+and, shifted up eight bits, the eight bits of C<op_private>, except that
+the bit with value 1 is automatically set.  C<dynamic_meth> supplies an
+op which evaluates method name; it is consumed by this function and
+become part of the constructed op tree.
+Supported optypes: C<OP_METHOD>.
 
 =cut
 */
 
-OP *
-Perl_op_append_list(pTHX_ I32 type, OP *first, OP *last)
-{
-    if (!first)
-        return last;
+static OP*
+S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth) {
+    METHOP *methop;
 
-    if (!last)
-        return first;
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_METHOP
+        || type == OP_CUSTOM);
 
-    if (first->op_type != (unsigned)type)
-        return op_prepend_elem(type, first, last);
+    NewOp(1101, methop, 1, METHOP);
+    if (dynamic_meth) {
+        if (PL_opargs[type] & OA_MARK) dynamic_meth = op_force_list(dynamic_meth);
+        methop->op_flags = (U8)(flags | OPf_KIDS);
+        methop->op_u.op_first = dynamic_meth;
+        methop->op_private = (U8)(1 | (flags >> 8));
 
-    if (last->op_type != (unsigned)type)
-        return op_append_elem(type, first, last);
+        if (!OpHAS_SIBLING(dynamic_meth))
+            OpLASTSIB_set(dynamic_meth, (OP*)methop);
+    }
+    else {
+        assert(const_meth);
+        methop->op_flags = (U8)(flags & ~OPf_KIDS);
+        methop->op_u.op_meth_sv = const_meth;
+        methop->op_private = (U8)(0 | (flags >> 8));
+        methop->op_next = (OP*)methop;
+    }
 
-    OpMORESIB_set(((LISTOP*)first)->op_last, ((LISTOP*)last)->op_first);
-    ((LISTOP*)first)->op_last = ((LISTOP*)last)->op_last;
-    OpLASTSIB_set(((LISTOP*)first)->op_last, first);
-    first->op_flags |= (last->op_flags & OPf_KIDS);
+#ifdef USE_ITHREADS
+    methop->op_rclass_targ = 0;
+#else
+    methop->op_rclass_sv = NULL;
+#endif
 
-    S_op_destroy(aTHX_ last);
+    OpTYPE_set(methop, type);
+    return CHECKOP(type, methop);
+}
 
-    return first;
+OP *
+Perl_newMETHOP (pTHX_ I32 type, I32 flags, OP* dynamic_meth) {
+    PERL_ARGS_ASSERT_NEWMETHOP;
+    return newMETHOP_internal(type, flags, dynamic_meth, NULL);
 }
 
 /*
-=for apidoc op_prepend_elem
+=for apidoc newMETHOP_named
 
-Prepend an item to the list of ops contained directly within a list-type
-op, returning the lengthened list.  C<first> is the op to prepend to the
-list, and C<last> is the list-type op.  C<optype> specifies the intended
-opcode for the list.  If C<last> is not already a list of the right type,
-it will be upgraded into one.  If either C<first> or C<last> is null,
-the other is returned unchanged.
+Constructs, checks, and returns an op of method type with a constant
+method name.  C<type> is the opcode.  C<flags> gives the eight bits of
+C<op_flags>, and, shifted up eight bits, the eight bits of
+C<op_private>.  C<const_meth> supplies a constant method name;
+it must be a shared COW string.
+Supported optypes: C<OP_METHOD_NAMED>.
 
 =cut
 */
 
 OP *
-Perl_op_prepend_elem(pTHX_ I32 type, OP *first, OP *last)
-{
-    if (!first)
-        return last;
-
-    if (!last)
-        return first;
-
-    if (last->op_type == (unsigned)type) {
-        if (type == OP_LIST) {	/* already a PUSHMARK there */
-            /* insert 'first' after pushmark */
-            op_sibling_splice(last, cLISTOPx(last)->op_first, 0, first);
-            if (!(first->op_flags & OPf_PARENS))
-                last->op_flags &= ~OPf_PARENS;
-        }
-        else
-            op_sibling_splice(last, NULL, 0, first);
-        last->op_flags |= OPf_KIDS;
-        return last;
-    }
-
-    return newLISTOP(type, 0, first, last);
+Perl_newMETHOP_named (pTHX_ I32 type, I32 flags, SV* const_meth) {
+    PERL_ARGS_ASSERT_NEWMETHOP_NAMED;
+    return newMETHOP_internal(type, flags, NULL, const_meth);
 }
 
 /*
-=for apidoc op_convert_list
-
-Converts C<o> into a list op if it is not one already, and then converts it
-into the specified C<type>, calling its check function, allocating a target if
-it needs one, and folding constants.
+=for apidoc newBINOP
 
-A list-type op is usually constructed one kid at a time via C<newLISTOP>,
-C<op_prepend_elem> and C<op_append_elem>.  Then finally it is passed to
-C<op_convert_list> to make it the right type.
+Constructs, checks, and returns an op of any binary type.  C<type>
+is the opcode.  C<flags> gives the eight bits of C<op_flags>, except
+that C<OPf_KIDS> will be set automatically, and, shifted up eight bits,
+the eight bits of C<op_private>, except that the bit with value 1 or
+2 is automatically set as required.  C<first> and C<last> supply up to
+two ops to be the direct children of the binary op; they are consumed
+by this function and become part of the constructed op tree.
 
 =cut
 */
 
 OP *
-Perl_op_convert_list(pTHX_ I32 type, I32 flags, OP *o)
+Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
 {
-    if (type < 0) type = -type, flags |= OPf_SPECIAL;
-    if (!o || o->op_type != OP_LIST)
-        o = force_list(o, FALSE);
-    else
-    {
-        o->op_flags &= ~OPf_WANT;
-        o->op_private &= ~OPpLVAL_INTRO;
-    }
+    BINOP *binop;
 
-    if (!(PL_opargs[type] & OA_MARK))
-        op_null(cLISTOPo->op_first);
+    ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP
+        || type == OP_NULL || type == OP_CUSTOM);
+
+    NewOp(1101, binop, 1, BINOP);
+
+    if (!first)
+        first = newOP(OP_NULL, 0);
+
+    OpTYPE_set(binop, type);
+    binop->op_first = first;
+    binop->op_flags = (U8)(flags | OPf_KIDS);
+    if (!last) {
+        last = first;
+        binop->op_private = (U8)(1 | (flags >> 8));
+    }
     else {
-        OP * const kid2 = OpSIBLING(cLISTOPo->op_first);
-        if (kid2 && kid2->op_type == OP_COREARGS) {
-            op_null(cLISTOPo->op_first);
-            kid2->op_private |= OPpCOREARGS_PUSHMARK;
-        }
+        binop->op_private = (U8)(2 | (flags >> 8));
+        OpMORESIB_set(first, last);
     }
 
-    if (type != OP_SPLIT)
-        /* At this point o is a LISTOP, but OP_SPLIT is a PMOP; let
-         * ck_split() create a real PMOP and leave the op's type as listop
-         * for now. Otherwise op_free() etc will crash.
-         */
-        OpTYPE_set(o, type);
+    if (!OpHAS_SIBLING(last)) /* true unless weird syntax error */
+        OpLASTSIB_set(last, (OP*)binop);
 
-    o->op_flags |= flags;
-    if (flags & OPf_FOLDED)
-        o->op_folded = 1;
+    binop->op_last = OpSIBLING(binop->op_first);
+    if (binop->op_last)
+        OpLASTSIB_set(binop->op_last, (OP*)binop);
 
-    o = CHECKOP(type, o);
-    if (o->op_type != (unsigned)type)
-        return o;
+    binop = (BINOP*) CHECKOP(type, binop);
+    if (binop->op_next || binop->op_type != (OPCODE)type)
+        return (OP*)binop;
 
-    return fold_constants(op_integerize(op_std_init(o)));
+    return fold_constants(op_integerize(op_std_init((OP *)binop)));
 }
 
-/* Constructors */
+void
+Perl_invmap_dump(pTHX_ SV* invlist, UV *map)
+{
+    const char indent[] = "    ";
 
+    UV len = _invlist_len(invlist);
+    UV * array = invlist_array(invlist);
+    UV i;
 
-/*
-=for apidoc_section $optree_construction
+    PERL_ARGS_ASSERT_INVMAP_DUMP;
 
-=for apidoc newNULLLIST
+    for (i = 0; i < len; i++) {
+        UV start = array[i];
+        UV end   = (i + 1 < len) ? array[i+1] - 1 : IV_MAX;
 
-Constructs, checks, and returns a new C<stub> op, which represents an
-empty list expression.
+        PerlIO_printf(Perl_debug_log, "%s[%" UVuf "] 0x%04" UVXf, indent, i, start);
+        if (end == IV_MAX) {
+            PerlIO_printf(Perl_debug_log, " .. INFTY");
+        }
+        else if (end != start) {
+            PerlIO_printf(Perl_debug_log, " .. 0x%04" UVXf, end);
+        }
+        else {
+            PerlIO_printf(Perl_debug_log, "            ");
+        }
 
-=cut
-*/
+        PerlIO_printf(Perl_debug_log, "\t");
 
-OP *
-Perl_newNULLLIST(pTHX)
-{
-    return newOP(OP_STUB, 0);
+        if (map[i] == TR_UNLISTED) {
+            PerlIO_printf(Perl_debug_log, "TR_UNLISTED\n");
+        }
+        else if (map[i] == TR_SPECIAL_HANDLING) {
+            PerlIO_printf(Perl_debug_log, "TR_SPECIAL_HANDLING\n");
+        }
+        else {
+            PerlIO_printf(Perl_debug_log, "0x%04" UVXf "\n", map[i]);
+        }
+    }
 }
 
-/* promote o and any siblings to be a list if its not already; i.e.
- *
- *  o - A - B
- *
- * becomes
- *
- *  list
- *    |
- *  pushmark - o - A - B
- *
- * If nullit it true, the list op is nulled.
+/* Given an OP_TRANS / OP_TRANSR op o, plus OP_CONST ops expr and repl
+ * containing the search and replacement strings, assemble into
+ * a translation table attached as o->op_pv.
+ * Free expr and repl.
+ * It expects the toker to have already set the
+ *   OPpTRANS_COMPLEMENT
+ *   OPpTRANS_SQUASH
+ *   OPpTRANS_DELETE
+ * flags as appropriate; this function may add
+ *   OPpTRANS_USE_SVOP
+ *   OPpTRANS_CAN_FORCE_UTF8
+ *   OPpTRANS_IDENTICAL
+ *   OPpTRANS_GROWS
+ * flags
  */
 
 static OP *
-S_force_list(pTHX_ OP *o, bool nullit)
+S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
 {
-    if (!o || o->op_type != OP_LIST) {
-        OP *rest = NULL;
-        if (o) {
-            /* manually detach any siblings then add them back later */
-            rest = OpSIBLING(o);
-            OpLASTSIB_set(o, NULL);
-        }
-        o = newLISTOP(OP_LIST, 0, o, NULL);
-        if (rest)
-            op_sibling_splice(o, cLISTOPo->op_last, 0, rest);
-    }
-    if (nullit)
-        op_null(o);
-    return o;
-}
-
-/*
-=for apidoc newLISTOP
-
-Constructs, checks, and returns an op of any list type.  C<type> is
-the opcode.  C<flags> gives the eight bits of C<op_flags>, except that
-C<OPf_KIDS> will be set automatically if required.  C<first> and C<last>
-supply up to two ops to be direct children of the list op; they are
-consumed by this function and become part of the constructed op tree.
-
-For most list operators, the check function expects all the kid ops to be
-present already, so calling C<newLISTOP(OP_JOIN, ...)> (e.g.) is not
-appropriate.  What you want to do in that case is create an op of type
-C<OP_LIST>, append more children to it, and then call L</op_convert_list>.
-See L</op_convert_list> for more information.
-
+    /* This function compiles a tr///, from data gathered from toke.c, into a
+     * form suitable for use by do_trans() in doop.c at runtime.
+     *
+     * It first normalizes the data, while discarding extraneous inputs; then
+     * writes out the compiled data.  The normalization allows for complete
+     * analysis, and avoids some false negatives and positives earlier versions
+     * of this code had.
+     *
+     * The normalization form is an inversion map (described below in detail).
+     * This is essentially the compiled form for tr///'s that require UTF-8,
+     * and its easy to use it to write the 257-byte table for tr///'s that
+     * don't need UTF-8.  That table is identical to what's been in use for
+     * many perl versions, except that it doesn't handle some edge cases that
+     * it used to, involving code points above 255.  The UTF-8 form now handles
+     * these.  (This could be changed with extra coding should it shown to be
+     * desirable.)
+     *
+     * If the complement (/c) option is specified, the lhs string (tstr) is
+     * parsed into an inversion list.  Complementing these is trivial.  Then a
+     * complemented tstr is built from that, and used thenceforth.  This hides
+     * the fact that it was complemented from almost all successive code.
+     *
+     * One of the important characteristics to know about the input is whether
+     * the transliteration may be done in place, or does a temporary need to be
+     * allocated, then copied.  If the replacement for every character in every
+     * possible string takes up no more bytes than the character it
+     * replaces, then it can be edited in place.  Otherwise the replacement
+     * could overwrite a byte we are about to read, depending on the strings
+     * being processed.  The comments and variable names here refer to this as
+     * "growing".  Some inputs won't grow, and might even shrink under /d, but
+     * some inputs could grow, so we have to assume any given one might grow.
+     * On very long inputs, the temporary could eat up a lot of memory, so we
+     * want to avoid it if possible.  For non-UTF-8 inputs, everything is
+     * single-byte, so can be edited in place, unless there is something in the
+     * pattern that could force it into UTF-8.  The inversion map makes it
+     * feasible to determine this.  Previous versions of this code pretty much
+     * punted on determining if UTF-8 could be edited in place.  Now, this code
+     * is rigorous in making that determination.
+     *
+     * Another characteristic we need to know is whether the lhs and rhs are
+     * identical.  If so, and no other flags are present, the only effect of
+     * the tr/// is to count the characters present in the input that are
+     * mentioned in the lhs string.  The implementation of that is easier and
+     * runs faster than the more general case.  Normalizing here allows for
+     * accurate determination of this.  Previously there were false negatives
+     * possible.
+     *
+     * Instead of 'transliterated', the comments here use 'unmapped' for the
+     * characters that are left unchanged by the operation; otherwise they are
+     * 'mapped'
+     *
+     * The lhs of the tr/// is here referred to as the t side.
+     * The rhs of the tr/// is here referred to as the r side.
+     */
 
-=cut
-*/
+    SV * const tstr = cSVOPx(expr)->op_sv;
+    SV * const rstr = cSVOPx(repl)->op_sv;
+    STRLEN tlen;
+    STRLEN rlen;
+    const U8 * t0 = (U8*)SvPV_const(tstr, tlen);
+    const U8 * r0 = (U8*)SvPV_const(rstr, rlen);
+    const U8 * t = t0;
+    const U8 * r = r0;
+    UV t_count = 0, r_count = 0;  /* Number of characters in search and
+                                         replacement lists */
 
-OP *
-Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
-{
-    LISTOP *listop;
-    /* Note that allocating an OP_PUSHMARK can die under Safe.pm if
-     * pushmark is banned. So do it now while existing ops are in a
-     * consistent state, in case they suddenly get freed */
-    OP* const pushop = type == OP_LIST ? newOP(OP_PUSHMARK, 0) : NULL;
+    /* khw thinks some of the private flags for this op are quaintly named.
+     * OPpTRANS_GROWS for example is TRUE if the replacement for some lhs
+     * character when represented in UTF-8 is longer than the original
+     * character's UTF-8 representation */
+    const bool complement = cBOOL(o->op_private & OPpTRANS_COMPLEMENT);
+    const bool squash     = cBOOL(o->op_private & OPpTRANS_SQUASH);
+    const bool del        = cBOOL(o->op_private & OPpTRANS_DELETE);
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_LISTOP
-        || type == OP_CUSTOM);
+    /* Set to true if there is some character < 256 in the lhs that maps to
+     * above 255.  If so, a non-UTF-8 match string can be forced into being in
+     * UTF-8 by a tr/// operation. */
+    bool can_force_utf8 = FALSE;
 
-    NewOp(1101, listop, 1, LISTOP);
-    OpTYPE_set(listop, type);
-    if (first || last)
-        flags |= OPf_KIDS;
-    listop->op_flags = (U8)flags;
+    /* What is the maximum expansion factor in UTF-8 transliterations.  If a
+     * 2-byte UTF-8 encoded character is to be replaced by a 3-byte one, its
+     * expansion factor is 1.5.  This number is used at runtime to calculate
+     * how much space to allocate for non-inplace transliterations.  Without
+     * this number, the worst case is 14, which is extremely unlikely to happen
+     * in real life, and could require significant memory overhead. */
+    NV max_expansion = 1.;
 
-    if (!last && first)
-        last = first;
-    else if (!first && last)
-        first = last;
-    else if (first)
-        OpMORESIB_set(first, last);
-    listop->op_first = first;
-    listop->op_last = last;
+    UV t_range_count, r_range_count, min_range_count;
+    UV* t_array;
+    SV* t_invlist;
+    UV* r_map;
+    UV r_cp = 0, t_cp = 0;
+    UV t_cp_end = (UV) -1;
+    UV r_cp_end;
+    Size_t len;
+    AV* invmap;
+    UV final_map = TR_UNLISTED;    /* The final character in the replacement
+                                      list, updated as we go along.  Initialize
+                                      to something illegal */
 
-    if (pushop) {
-        OpMORESIB_set(pushop, first);
-        listop->op_first = pushop;
-        listop->op_flags |= OPf_KIDS;
-        if (!last)
-            listop->op_last = pushop;
-    }
-    if (listop->op_last)
-        OpLASTSIB_set(listop->op_last, (OP*)listop);
+    bool rstr_utf8 = cBOOL(SvUTF8(rstr));
+    bool tstr_utf8 = cBOOL(SvUTF8(tstr));
 
-    return CHECKOP(type, listop);
-}
+    const U8* tend = t + tlen;
+    const U8* rend = r + rlen;
 
-/*
-=for apidoc newOP
+    SV * inverted_tstr = NULL;
 
-Constructs, checks, and returns an op of any base type (any type that
-has no extra fields).  C<type> is the opcode.  C<flags> gives the
-eight bits of C<op_flags>, and, shifted up eight bits, the eight bits
-of C<op_private>.
+    Size_t i;
+    unsigned int pass2;
 
-=cut
-*/
+    /* This routine implements detection of a transliteration having a longer
+     * UTF-8 representation than its source, by partitioning all the possible
+     * code points of the platform into equivalence classes of the same UTF-8
+     * byte length in the first pass.  As it constructs the mappings, it carves
+     * these up into smaller chunks, but doesn't merge any together.  This
+     * makes it easy to find the instances it's looking for.  A second pass is
+     * done after this has been determined which merges things together to
+     * shrink the table for runtime.  The table below is used for both ASCII
+     * and EBCDIC platforms.  On EBCDIC, the byte length is not monotonically
+     * increasing for code points below 256.  To correct for that, the macro
+     * CP_ADJUST defined below converts those code points to ASCII in the first
+     * pass, and we use the ASCII partition values.  That works because the
+     * growth factor will be unaffected, which is all that is calculated during
+     * the first pass. */
+    UV PL_partition_by_byte_length[] = {
+        0,
+        0x80,   /* Below this is 1 byte representations */
+        (32 * (1UL << (    UTF_ACCUMULATION_SHIFT))),   /* 2 bytes below this */
+        (16 * (1UL << (2 * UTF_ACCUMULATION_SHIFT))),   /* 3 bytes below this */
+        ( 8 * (1UL << (3 * UTF_ACCUMULATION_SHIFT))),   /* 4 bytes below this */
+        ( 4 * (1UL << (4 * UTF_ACCUMULATION_SHIFT))),   /* 5 bytes below this */
+        ( 2 * (1UL << (5 * UTF_ACCUMULATION_SHIFT)))    /* 6 bytes below this */
 
-OP *
-Perl_newOP(pTHX_ I32 type, I32 flags)
-{
-    OP *o;
+#  ifdef UV_IS_QUAD
+                                                    ,
+        ( ((UV) 1U << (6 * UTF_ACCUMULATION_SHIFT)))    /* 7 bytes below this */
+#  endif
 
-    if (type == -OP_ENTEREVAL) {
-        type = OP_ENTEREVAL;
-        flags |= OPpEVAL_BYTES<<8;
-    }
+    };
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_BASEOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_BASEOP_OR_UNOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
+    PERL_ARGS_ASSERT_PMTRANS;
 
-    NewOp(1101, o, 1, OP);
-    OpTYPE_set(o, type);
-    o->op_flags = (U8)flags;
+    PL_hints |= HINT_BLOCK_SCOPE;
 
-    o->op_next = o;
-    o->op_private = (U8)(0 | (flags >> 8));
-    if (PL_opargs[type] & OA_RETSCALAR)
-        scalar(o);
-    if (PL_opargs[type] & OA_TARGET)
-        o->op_targ = pad_alloc(type, SVs_PADTMP);
-    return CHECKOP(type, o);
-}
+    /* If /c, the search list is sorted and complemented.  This is now done by
+     * creating an inversion list from it, and then trivially inverting that.
+     * The previous implementation used qsort, but creating the list
+     * automatically keeps it sorted as we go along */
+    if (complement) {
+        UV start, end;
+        SV * inverted_tlist = _new_invlist(tlen);
+        Size_t temp_len;
 
-/*
-=for apidoc newUNOP
+        DEBUG_y(PerlIO_printf(Perl_debug_log,
+                    "%s: %d: tstr before inversion=\n%s\n",
+                    __FILE__, __LINE__, _byte_dump_string(t, tend - t, 0)));
 
-Constructs, checks, and returns an op of any unary type.  C<type> is
-the opcode.  C<flags> gives the eight bits of C<op_flags>, except that
-C<OPf_KIDS> will be set automatically if required, and, shifted up eight
-bits, the eight bits of C<op_private>, except that the bit with value 1
-is automatically set.  C<first> supplies an optional op to be the direct
-child of the unary op; it is consumed by this function and become part
-of the constructed op tree.
+        while (t < tend) {
 
-=for apidoc Amnh||OPf_KIDS
+            /* Non-utf8 strings don't have ranges, so each character is listed
+             * out */
+            if (! tstr_utf8) {
+                inverted_tlist = add_cp_to_invlist(inverted_tlist, *t);
+                t++;
+            }
+            else {  /* But UTF-8 strings have been parsed in toke.c to have
+                 * ranges if appropriate. */
+                UV t_cp;
+                Size_t t_char_len;
 
-=cut
-*/
+                /* Get the first character */
+                t_cp = valid_utf8_to_uvchr(t, &t_char_len);
+                t += t_char_len;
 
-OP *
-Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
-{
-    UNOP *unop;
+                /* If the next byte indicates that this wasn't the first
+                 * element of a range, the range is just this one */
+                if (t >= tend || *t != RANGE_INDICATOR) {
+                    inverted_tlist = add_cp_to_invlist(inverted_tlist, t_cp);
+                }
+                else { /* Otherwise, ignore the indicator byte, and get the
+                          final element, and add the whole range */
+                    t++;
+                    t_cp_end = valid_utf8_to_uvchr(t, &t_char_len);
+                    t += t_char_len;
 
-    if (type == -OP_ENTEREVAL) {
-        type = OP_ENTEREVAL;
-        flags |= OPpEVAL_BYTES<<8;
-    }
+                    inverted_tlist = _add_range_to_invlist(inverted_tlist,
+                                                      t_cp, t_cp_end);
+                }
+            }
+        } /* End of parse through tstr */
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_UNOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_BASEOP_OR_UNOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP
-        || type == OP_SASSIGN
-        || type == OP_ENTERTRY
-        || type == OP_ENTERTRYCATCH
-        || type == OP_CUSTOM
-        || type == OP_NULL );
-
-    if (!first)
-        first = newOP(OP_STUB, 0);
-    if (PL_opargs[type] & OA_MARK)
-        first = force_list(first, TRUE);
+        /* The inversion list is done; now invert it */
+        _invlist_invert(inverted_tlist);
 
-    NewOp(1101, unop, 1, UNOP);
-    OpTYPE_set(unop, type);
-    unop->op_first = first;
-    unop->op_flags = (U8)(flags | OPf_KIDS);
-    unop->op_private = (U8)(1 | (flags >> 8));
+        /* Now go through the inverted list and create a new tstr for the rest
+         * of the routine to use.  Since the UTF-8 version can have ranges, and
+         * can be much more compact than the non-UTF-8 version, we create the
+         * string in UTF-8 even if not necessary.  (This is just an intermediate
+         * value that gets thrown away anyway.) */
+        invlist_iterinit(inverted_tlist);
+        inverted_tstr = newSVpvs("");
+        while (invlist_iternext(inverted_tlist, &start, &end)) {
+            U8 temp[UTF8_MAXBYTES];
+            U8 * temp_end_pos;
 
-    if (!OpHAS_SIBLING(first)) /* true unless weird syntax error */
-        OpLASTSIB_set(first, (OP*)unop);
+            /* IV_MAX keeps things from going out of bounds */
+            start = MIN(IV_MAX, start);
+            end   = MIN(IV_MAX, end);
 
-    unop = (UNOP*) CHECKOP(type, unop);
-    if (unop->op_next)
-        return (OP*)unop;
+            temp_end_pos = uvchr_to_utf8(temp, start);
+            sv_catpvn(inverted_tstr, (char *) temp, temp_end_pos - temp);
 
-    return fold_constants(op_integerize(op_std_init((OP *) unop)));
-}
+            if (start != end) {
+                Perl_sv_catpvf(aTHX_ inverted_tstr, "%c", RANGE_INDICATOR);
+                temp_end_pos = uvchr_to_utf8(temp, end);
+                sv_catpvn(inverted_tstr, (char *) temp, temp_end_pos - temp);
+            }
+        }
 
-/*
-=for apidoc newUNOP_AUX
+        /* Set up so the remainder of the routine uses this complement, instead
+         * of the actual input */
+        t0 = t = (U8*)SvPV_const(inverted_tstr, temp_len);
+        tend = t0 + temp_len;
+        tstr_utf8 = TRUE;
 
-Similar to C<newUNOP>, but creates an C<UNOP_AUX> struct instead, with C<op_aux>
-initialised to C<aux>
+        SvREFCNT_dec_NN(inverted_tlist);
+    }
 
-=cut
-*/
+    /* For non-/d, an empty rhs means to use the lhs */
+    if (rlen == 0 && ! del) {
+        r0 = t0;
+        rend = tend;
+        rstr_utf8  = tstr_utf8;
+    }
 
-OP *
-Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP *first, UNOP_AUX_item *aux)
-{
-    UNOP_AUX *unop;
+    t_invlist = _new_invlist(1);
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_UNOP_AUX
-        || type == OP_CUSTOM);
+    /* Initialize to a single range */
+    t_invlist = _add_range_to_invlist(t_invlist, 0, UV_MAX);
 
-    NewOp(1101, unop, 1, UNOP_AUX);
-    unop->op_type = (OPCODE)type;
-    unop->op_ppaddr = PL_ppaddr[type];
-    unop->op_first = first;
-    unop->op_flags = (U8)(flags | (first ? OPf_KIDS : 0));
-    unop->op_private = (U8)((first ? 1 : 0) | (flags >> 8));
-    unop->op_aux = aux;
+    /* Below, we parse the (potentially adjusted) input, creating the inversion
+     * map.  This is done in two passes.  The first pass is just to determine
+     * if the transliteration can be done in-place.  It can be done in place if
+     * no possible inputs result in the replacement taking up more bytes than
+     * the input.  To figure that out, in the first pass we start with all the
+     * possible code points partitioned into ranges so that every code point in
+     * a range occupies the same number of UTF-8 bytes as every other code
+     * point in the range.  Constructing the inversion map doesn't merge ranges
+     * together, but can split them into multiple ones.  Given the starting
+     * partition, the ending state will also have the same characteristic,
+     * namely that each code point in each partition requires the same number
+     * of UTF-8 bytes to represent as every other code point in the same
+     * partition.
+     *
+     * This partitioning has been pre-compiled.  Copy it to initialize */
+    len = C_ARRAY_LENGTH(PL_partition_by_byte_length);
+    invlist_extend(t_invlist, len);
+    t_array = invlist_array(t_invlist);
+    Copy(PL_partition_by_byte_length, t_array, len, UV);
+    invlist_set_len(t_invlist, len, *(get_invlist_offset_addr(t_invlist)));
+    Newx(r_map, len + 1, UV);
 
-    if (first && !OpHAS_SIBLING(first)) /* true unless weird syntax error */
-        OpLASTSIB_set(first, (OP*)unop);
+    /* The inversion map the first pass creates could be used as-is, but
+     * generally would be larger and slower to run than the output of the
+     * second pass.  */
 
-    unop = (UNOP_AUX*) CHECKOP(type, unop);
+    for (pass2 = 0; pass2 < 2; pass2++) {
+        if (pass2) {
+            /* In the second pass, we start with a single range */
+            t_invlist = _add_range_to_invlist(t_invlist, 0, UV_MAX);
+            len = 1;
+            t_array = invlist_array(t_invlist);
+        }
 
-    return op_std_init((OP *) unop);
-}
+/* As noted earlier, we convert EBCDIC code points to Unicode in the first pass
+ * so as to get the well-behaved length 1 vs length 2 boundary.  Only code
+ * points below 256 differ between the two character sets in this regard.  For
+ * these, we also can't have any ranges, as they have to be individually
+ * converted. */
+#ifdef EBCDIC
+#  define CP_ADJUST(x)          ((pass2) ? (x) : NATIVE_TO_UNI(x))
+#  define FORCE_RANGE_LEN_1(x)  ((pass2) ? 0 : ((x) < 256))
+#  define CP_SKIP(x)            ((pass2) ? UVCHR_SKIP(x) : OFFUNISKIP(x))
+#else
+#  define CP_ADJUST(x)          (x)
+#  define FORCE_RANGE_LEN_1(x)  0
+#  define CP_SKIP(x)            UVCHR_SKIP(x)
+#endif
 
-/*
-=for apidoc newMETHOP
+        /* And the mapping of each of the ranges is initialized.  Initially,
+         * everything is TR_UNLISTED. */
+        for (i = 0; i < len; i++) {
+            r_map[i] = TR_UNLISTED;
+        }
 
-Constructs, checks, and returns an op of method type with a method name
-evaluated at runtime.  C<type> is the opcode.  C<flags> gives the eight
-bits of C<op_flags>, except that C<OPf_KIDS> will be set automatically,
-and, shifted up eight bits, the eight bits of C<op_private>, except that
-the bit with value 1 is automatically set.  C<dynamic_meth> supplies an
-op which evaluates method name; it is consumed by this function and
-become part of the constructed op tree.
-Supported optypes: C<OP_METHOD>.
+        t = t0;
+        t_count = 0;
+        r = r0;
+        r_count = 0;
+        t_range_count = r_range_count = 0;
 
-=cut
-*/
+        DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d:\ntstr=%s\n",
+                    __FILE__, __LINE__, _byte_dump_string(t, tend - t, 0)));
+        DEBUG_y(PerlIO_printf(Perl_debug_log, "rstr=%s\n",
+                                        _byte_dump_string(r, rend - r, 0)));
+        DEBUG_y(PerlIO_printf(Perl_debug_log, "/c=%d; /s=%d; /d=%d\n",
+                                                  complement, squash, del));
+        DEBUG_y(invmap_dump(t_invlist, r_map));
 
-static OP*
-S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth) {
-    METHOP *methop;
+        /* Now go through the search list constructing an inversion map.  The
+         * input is not necessarily in any particular order.  Making it an
+         * inversion map orders it, potentially simplifying, and makes it easy
+         * to deal with at run time.  This is the only place in core that
+         * generates an inversion map; if others were introduced, it might be
+         * better to create general purpose routines to handle them.
+         * (Inversion maps are created in perl in other places.)
+         *
+         * An inversion map consists of two parallel arrays.  One is
+         * essentially an inversion list: an ordered list of code points such
+         * that each element gives the first code point of a range of
+         * consecutive code points that map to the element in the other array
+         * that has the same index as this one (in other words, the
+         * corresponding element).  Thus the range extends up to (but not
+         * including) the code point given by the next higher element.  In a
+         * true inversion map, the corresponding element in the other array
+         * gives the mapping of the first code point in the range, with the
+         * understanding that the next higher code point in the inversion
+         * list's range will map to the next higher code point in the map.
+         *
+         * So if at element [i], let's say we have:
+         *
+         *     t_invlist  r_map
+         * [i]    A         a
+         *
+         * This means that A => a, B => b, C => c....  Let's say that the
+         * situation is such that:
+         *
+         * [i+1]  L        -1
+         *
+         * This means the sequence that started at [i] stops at K => k.  This
+         * illustrates that you need to look at the next element to find where
+         * a sequence stops.  Except, the highest element in the inversion list
+         * begins a range that is understood to extend to the platform's
+         * infinity.
+         *
+         * This routine modifies traditional inversion maps to reserve two
+         * mappings:
+         *
+         *  TR_UNLISTED (or -1) indicates that no code point in the range
+         *      is listed in the tr/// searchlist.  At runtime, these are
+         *      always passed through unchanged.  In the inversion map, all
+         *      points in the range are mapped to -1, instead of increasing,
+         *      like the 'L' in the example above.
+         *
+         *      We start the parse with every code point mapped to this, and as
+         *      we parse and find ones that are listed in the search list, we
+         *      carve out ranges as we go along that override that.
+         *
+         *  TR_SPECIAL_HANDLING (or -2) indicates that every code point in the
+         *      range needs special handling.  Again, all code points in the
+         *      range are mapped to -2, instead of increasing.
+         *
+         *      Under /d this value means the code point should be deleted from
+         *      the transliteration when encountered.
+         *
+         *      Otherwise, it marks that every code point in the range is to
+         *      map to the final character in the replacement list.  This
+         *      happens only when the replacement list is shorter than the
+         *      search one, so there are things in the search list that have no
+         *      correspondence in the replacement list.  For example, in
+         *      tr/a-z/A/, 'A' is the final value, and the inversion map
+         *      generated for this would be like this:
+         *          \0  =>  -1
+         *          a   =>   A
+         *          b-z =>  -2
+         *          z+1 =>  -1
+         *      'A' appears once, then the remainder of the range maps to -2.
+         *      The use of -2 isn't strictly necessary, as an inversion map is
+         *      capable of representing this situation, but not nearly so
+         *      compactly, and this is actually quite commonly encountered.
+         *      Indeed, the original design of this code used a full inversion
+         *      map for this.  But things like
+         *          tr/\0-\x{FFFF}/A/
+         *      generated huge data structures, slowly, and the execution was
+         *      also slow.  So the current scheme was implemented.
+         *
+         *  So, if the next element in our example is:
+         *
+         * [i+2]  Q        q
+         *
+         * Then all of L, M, N, O, and P map to TR_UNLISTED.  If the next
+         * elements are
+         *
+         * [i+3]  R        z
+         * [i+4]  S       TR_UNLISTED
+         *
+         * Then Q => q; R => z; and S => TR_UNLISTED.  If [i+4] (the 'S') is
+         * the final element in the arrays, every code point from S to infinity
+         * maps to TR_UNLISTED.
+         *
+         */
+                           /* Finish up range started in what otherwise would
+                            * have been the final iteration */
+        while (t < tend || t_range_count > 0) {
+            bool adjacent_to_range_above = FALSE;
+            bool adjacent_to_range_below = FALSE;
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_METHOP
-        || type == OP_CUSTOM);
+            bool merge_with_range_above = FALSE;
+            bool merge_with_range_below = FALSE;
 
-    NewOp(1101, methop, 1, METHOP);
-    if (dynamic_meth) {
-        if (PL_opargs[type] & OA_MARK) dynamic_meth = force_list(dynamic_meth, TRUE);
-        methop->op_flags = (U8)(flags | OPf_KIDS);
-        methop->op_u.op_first = dynamic_meth;
-        methop->op_private = (U8)(1 | (flags >> 8));
+            UV span, invmap_range_length_remaining;
+            SSize_t j;
+            Size_t i;
 
-        if (!OpHAS_SIBLING(dynamic_meth))
-            OpLASTSIB_set(dynamic_meth, (OP*)methop);
-    }
-    else {
-        assert(const_meth);
-        methop->op_flags = (U8)(flags & ~OPf_KIDS);
-        methop->op_u.op_meth_sv = const_meth;
-        methop->op_private = (U8)(0 | (flags >> 8));
-        methop->op_next = (OP*)methop;
-    }
-
-#ifdef USE_ITHREADS
-    methop->op_rclass_targ = 0;
-#else
-    methop->op_rclass_sv = NULL;
-#endif
-
-    OpTYPE_set(methop, type);
-    return CHECKOP(type, methop);
-}
-
-OP *
-Perl_newMETHOP (pTHX_ I32 type, I32 flags, OP* dynamic_meth) {
-    PERL_ARGS_ASSERT_NEWMETHOP;
-    return newMETHOP_internal(type, flags, dynamic_meth, NULL);
-}
-
-/*
-=for apidoc newMETHOP_named
-
-Constructs, checks, and returns an op of method type with a constant
-method name.  C<type> is the opcode.  C<flags> gives the eight bits of
-C<op_flags>, and, shifted up eight bits, the eight bits of
-C<op_private>.  C<const_meth> supplies a constant method name;
-it must be a shared COW string.
-Supported optypes: C<OP_METHOD_NAMED>.
+            /* If we are in the middle of processing a range in the 'target'
+             * side, the previous iteration has set us up.  Otherwise, look at
+             * the next character in the search list */
+            if (t_range_count <= 0) {
+                if (! tstr_utf8) {
 
-=cut
-*/
+                    /* Here, not in the middle of a range, and not UTF-8.  The
+                     * next code point is the single byte where we're at */
+                    t_cp = CP_ADJUST(*t);
+                    t_range_count = 1;
+                    t++;
+                }
+                else {
+                    Size_t t_char_len;
 
-OP *
-Perl_newMETHOP_named (pTHX_ I32 type, I32 flags, SV* const_meth) {
-    PERL_ARGS_ASSERT_NEWMETHOP_NAMED;
-    return newMETHOP_internal(type, flags, NULL, const_meth);
-}
+                    /* Here, not in the middle of a range, and is UTF-8.  The
+                     * next code point is the next UTF-8 char in the input.  We
+                     * know the input is valid, because the toker constructed
+                     * it */
+                    t_cp = CP_ADJUST(valid_utf8_to_uvchr(t, &t_char_len));
+                    t += t_char_len;
 
-/*
-=for apidoc newBINOP
+                    /* UTF-8 strings (only) have been parsed in toke.c to have
+                     * ranges.  See if the next byte indicates that this was
+                     * the first element of a range.  If so, get the final
+                     * element and calculate the range size.  If not, the range
+                     * size is 1 */
+                    if (   t < tend && *t == RANGE_INDICATOR
+                        && ! FORCE_RANGE_LEN_1(t_cp))
+                    {
+                        t++;
+                        t_range_count = valid_utf8_to_uvchr(t, &t_char_len)
+                                      - t_cp + 1;
+                        t += t_char_len;
+                    }
+                    else {
+                        t_range_count = 1;
+                    }
+                }
 
-Constructs, checks, and returns an op of any binary type.  C<type>
-is the opcode.  C<flags> gives the eight bits of C<op_flags>, except
-that C<OPf_KIDS> will be set automatically, and, shifted up eight bits,
-the eight bits of C<op_private>, except that the bit with value 1 or
-2 is automatically set as required.  C<first> and C<last> supply up to
-two ops to be the direct children of the binary op; they are consumed
-by this function and become part of the constructed op tree.
+                /* Count the total number of listed code points * */
+                t_count += t_range_count;
+            }
 
-=cut
-*/
+            /* Similarly, get the next character in the replacement list */
+            if (r_range_count <= 0) {
+                if (r >= rend) {
 
-OP *
-Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
-{
-    BINOP *binop;
+                    /* But if we've exhausted the rhs, there is nothing to map
+                     * to, except the special handling one, and we make the
+                     * range the same size as the lhs one. */
+                    r_cp = TR_SPECIAL_HANDLING;
+                    r_range_count = t_range_count;
 
-    ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP
-        || type == OP_NULL || type == OP_CUSTOM);
+                    if (! del) {
+                        DEBUG_yv(PerlIO_printf(Perl_debug_log,
+                                        "final_map =%" UVXf "\n", final_map));
+                    }
+                }
+                else {
+                    if (! rstr_utf8) {
+                        r_cp = CP_ADJUST(*r);
+                        r_range_count = 1;
+                        r++;
+                    }
+                    else {
+                        Size_t r_char_len;
 
-    NewOp(1101, binop, 1, BINOP);
+                        r_cp = CP_ADJUST(valid_utf8_to_uvchr(r, &r_char_len));
+                        r += r_char_len;
+                        if (   r < rend && *r == RANGE_INDICATOR
+                            && ! FORCE_RANGE_LEN_1(r_cp))
+                        {
+                            r++;
+                            r_range_count = valid_utf8_to_uvchr(r,
+                                                    &r_char_len) - r_cp + 1;
+                            r += r_char_len;
+                        }
+                        else {
+                            r_range_count = 1;
+                        }
+                    }
 
-    if (!first)
-        first = newOP(OP_NULL, 0);
+                    if (r_cp == TR_SPECIAL_HANDLING) {
+                        r_range_count = t_range_count;
+                    }
 
-    OpTYPE_set(binop, type);
-    binop->op_first = first;
-    binop->op_flags = (U8)(flags | OPf_KIDS);
-    if (!last) {
-        last = first;
-        binop->op_private = (U8)(1 | (flags >> 8));
-    }
-    else {
-        binop->op_private = (U8)(2 | (flags >> 8));
-        OpMORESIB_set(first, last);
-    }
+                    /* This is the final character so far */
+                    final_map = r_cp + r_range_count - 1;
 
-    if (!OpHAS_SIBLING(last)) /* true unless weird syntax error */
-        OpLASTSIB_set(last, (OP*)binop);
+                    r_count += r_range_count;
+                }
+            }
 
-    binop->op_last = OpSIBLING(binop->op_first);
-    if (binop->op_last)
-        OpLASTSIB_set(binop->op_last, (OP*)binop);
+            /* Here, we have the next things ready in both sides.  They are
+             * potentially ranges.  We try to process as big a chunk as
+             * possible at once, but the lhs and rhs must be synchronized, so
+             * things like tr/A-Z/a-ij-z/ will need to be processed in 2 chunks
+             * */
+            min_range_count = MIN(t_range_count, r_range_count);
 
-    binop = (BINOP*)CHECKOP(type, binop);
-    if (binop->op_next || binop->op_type != (OPCODE)type)
-        return (OP*)binop;
+            /* Search the inversion list for the entry that contains the input
+             * code point <cp>.  The inversion map was initialized to cover the
+             * entire range of possible inputs, so this should not fail.  So
+             * the return value is the index into the list's array of the range
+             * that contains <cp>, that is, 'i' such that array[i] <= cp <
+             * array[i+1] */
+            j = _invlist_search(t_invlist, t_cp);
+            assert(j >= 0);
+            i = j;
 
-    return fold_constants(op_integerize(op_std_init((OP *)binop)));
-}
+            /* Here, the data structure might look like:
+             *
+             * index    t   r     Meaning
+             * [i-1]    J   j   # J-L => j-l
+             * [i]      M  -1   # M => default; as do N, O, P, Q
+             * [i+1]    R   x   # R => x, S => x+1, T => x+2
+             * [i+2]    U   y   # U => y, V => y+1, ...
+             * ...
+             * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
+             *
+             * where 'x' and 'y' above are not to be taken literally.
+             *
+             * The maximum chunk we can handle in this loop iteration, is the
+             * smallest of the three components: the lhs 't_', the rhs 'r_',
+             * and the remainder of the range in element [i].  (In pass 1, that
+             * range will have everything in it be of the same class; we can't
+             * cross into another class.)  'min_range_count' already contains
+             * the smallest of the first two values.  The final one is
+             * irrelevant if the map is to the special indicator */
 
-void
-Perl_invmap_dump(pTHX_ SV* invlist, UV *map)
-{
-    const char indent[] = "    ";
+            invmap_range_length_remaining = (i + 1 < len)
+                                            ? t_array[i+1] - t_cp
+                                            : IV_MAX - t_cp;
+            span = MAX(1, MIN(min_range_count, invmap_range_length_remaining));
 
-    UV len = _invlist_len(invlist);
-    UV * array = invlist_array(invlist);
-    UV i;
+            /* The end point of this chunk is where we are, plus the span, but
+             * never larger than the platform's infinity */
+            t_cp_end = MIN(IV_MAX, t_cp + span - 1);
 
-    PERL_ARGS_ASSERT_INVMAP_DUMP;
+            if (r_cp == TR_SPECIAL_HANDLING) {
 
-    for (i = 0; i < len; i++) {
-        UV start = array[i];
-        UV end   = (i + 1 < len) ? array[i+1] - 1 : IV_MAX;
+                /* If unmatched lhs code points map to the final map, use that
+                 * value.  This being set to TR_SPECIAL_HANDLING indicates that
+                 * we don't have a final map: unmatched lhs code points are
+                 * simply deleted */
+                r_cp_end = (del) ? TR_SPECIAL_HANDLING : final_map;
+            }
+            else {
+                r_cp_end = MIN(IV_MAX, r_cp + span - 1);
 
-        PerlIO_printf(Perl_debug_log, "%s[%" UVuf "] 0x%04" UVXf, indent, i, start);
-        if (end == IV_MAX) {
-            PerlIO_printf(Perl_debug_log, " .. INFTY");
-        }
-        else if (end != start) {
-            PerlIO_printf(Perl_debug_log, " .. 0x%04" UVXf, end);
-        }
-        else {
-            PerlIO_printf(Perl_debug_log, "            ");
-        }
+                /* If something on the lhs is below 256, and something on the
+                 * rhs is above, there is a potential mapping here across that
+                 * boundary.  Indeed the only way there isn't is if both sides
+                 * start at the same point.  That means they both cross at the
+                 * same time.  But otherwise one crosses before the other */
+                if (t_cp < 256 && r_cp_end > 255 && r_cp != t_cp) {
+                    can_force_utf8 = TRUE;
+                }
+            }
 
-        PerlIO_printf(Perl_debug_log, "\t");
+            /* If a character appears in the search list more than once, the
+             * 2nd and succeeding occurrences are ignored, so only do this
+             * range if haven't already processed this character.  (The range
+             * has been set up so that all members in it will be of the same
+             * ilk) */
+            if (r_map[i] == TR_UNLISTED) {
+                DEBUG_yv(PerlIO_printf(Perl_debug_log,
+                    "Processing %" UVxf "-%" UVxf " => %" UVxf "-%" UVxf "\n",
+                    t_cp, t_cp_end, r_cp, r_cp_end));
 
-        if (map[i] == TR_UNLISTED) {
-            PerlIO_printf(Perl_debug_log, "TR_UNLISTED\n");
-        }
-        else if (map[i] == TR_SPECIAL_HANDLING) {
-            PerlIO_printf(Perl_debug_log, "TR_SPECIAL_HANDLING\n");
-        }
-        else {
-            PerlIO_printf(Perl_debug_log, "0x%04" UVXf "\n", map[i]);
-        }
-    }
-}
+                /* This is the first definition for this chunk, hence is valid
+                 * and needs to be processed.  Here and in the comments below,
+                 * we use the above sample data.  The t_cp chunk must be any
+                 * contiguous subset of M, N, O, P, and/or Q.
+                 *
+                 * In the first pass, calculate if there is any possible input
+                 * string that has a character whose transliteration will be
+                 * longer than it.  If none, the transliteration may be done
+                 * in-place, as it can't write over a so-far unread byte.
+                 * Otherwise, a copy must first be made.  This could be
+                 * expensive for long inputs.
+                 *
+                 * In the first pass, the t_invlist has been partitioned so
+                 * that all elements in any single range have the same number
+                 * of bytes in their UTF-8 representations.  And the r space is
+                 * either a single byte, or a range of strictly monotonically
+                 * increasing code points.  So the final element in the range
+                 * will be represented by no fewer bytes than the initial one.
+                 * That means that if the final code point in the t range has
+                 * at least as many bytes as the final code point in the r,
+                 * then all code points in the t range have at least as many
+                 * bytes as their corresponding r range element.  But if that's
+                 * not true, the transliteration of at least the final code
+                 * point grows in length.  As an example, suppose we had
+                 *      tr/\x{fff0}-\x{fff1}/\x{ffff}-\x{10000}/
+                 * The UTF-8 for all but 10000 occupies 3 bytes on ASCII
+                 * platforms.  We have deliberately set up the data structure
+                 * so that any range in the lhs gets split into chunks for
+                 * processing, such that every code point in a chunk has the
+                 * same number of UTF-8 bytes.  We only have to check the final
+                 * code point in the rhs against any code point in the lhs. */
+                if ( ! pass2
+                    && r_cp_end != TR_SPECIAL_HANDLING
+                    && CP_SKIP(t_cp_end) < CP_SKIP(r_cp_end))
+                {
+                    /* Here, we will need to make a copy of the input string
+                     * before doing the transliteration.  The worst possible
+                     * case is an expansion ratio of 14:1. This is rare, and
+                     * we'd rather allocate only the necessary amount of extra
+                     * memory for that copy.  We can calculate the worst case
+                     * for this particular transliteration is by keeping track
+                     * of the expansion factor for each range.
+                     *
+                     * Consider tr/\xCB/\X{E000}/.  The maximum expansion
+                     * factor is 1 byte going to 3 if the target string is not
+                     * UTF-8, but 2 bytes going to 3 if it is in UTF-8.  We
+                     * could pass two different values so doop could choose
+                     * based on the UTF-8ness of the target.  But khw thinks
+                     * (perhaps wrongly) that is overkill.  It is used only to
+                     * make sure we malloc enough space.
+                     *
+                     * If no target string can force the result to be UTF-8,
+                     * then we don't have to worry about the case of the target
+                     * string not being UTF-8 */
+                    NV t_size = (can_force_utf8 && t_cp < 256)
+                                ? 1
+                                : CP_SKIP(t_cp_end);
+                    NV ratio = CP_SKIP(r_cp_end) / t_size;
 
-/* Given an OP_TRANS / OP_TRANSR op o, plus OP_CONST ops expr and repl
- * containing the search and replacement strings, assemble into
- * a translation table attached as o->op_pv.
- * Free expr and repl.
- * It expects the toker to have already set the
- *   OPpTRANS_COMPLEMENT
- *   OPpTRANS_SQUASH
- *   OPpTRANS_DELETE
- * flags as appropriate; this function may add
- *   OPpTRANS_USE_SVOP
- *   OPpTRANS_CAN_FORCE_UTF8
- *   OPpTRANS_IDENTICAL
- *   OPpTRANS_GROWS
- * flags
- */
+                    o->op_private |= OPpTRANS_GROWS;
 
-static OP *
-S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
-{
-    /* This function compiles a tr///, from data gathered from toke.c, into a
-     * form suitable for use by do_trans() in doop.c at runtime.
-     *
-     * It first normalizes the data, while discarding extraneous inputs; then
-     * writes out the compiled data.  The normalization allows for complete
-     * analysis, and avoids some false negatives and positives earlier versions
-     * of this code had.
-     *
-     * The normalization form is an inversion map (described below in detail).
-     * This is essentially the compiled form for tr///'s that require UTF-8,
-     * and its easy to use it to write the 257-byte table for tr///'s that
-     * don't need UTF-8.  That table is identical to what's been in use for
-     * many perl versions, except that it doesn't handle some edge cases that
-     * it used to, involving code points above 255.  The UTF-8 form now handles
-     * these.  (This could be changed with extra coding should it shown to be
-     * desirable.)
-     *
-     * If the complement (/c) option is specified, the lhs string (tstr) is
-     * parsed into an inversion list.  Complementing these is trivial.  Then a
-     * complemented tstr is built from that, and used thenceforth.  This hides
-     * the fact that it was complemented from almost all successive code.
-     *
-     * One of the important characteristics to know about the input is whether
-     * the transliteration may be done in place, or does a temporary need to be
-     * allocated, then copied.  If the replacement for every character in every
-     * possible string takes up no more bytes than the character it
-     * replaces, then it can be edited in place.  Otherwise the replacement
-     * could overwrite a byte we are about to read, depending on the strings
-     * being processed.  The comments and variable names here refer to this as
-     * "growing".  Some inputs won't grow, and might even shrink under /d, but
-     * some inputs could grow, so we have to assume any given one might grow.
-     * On very long inputs, the temporary could eat up a lot of memory, so we
-     * want to avoid it if possible.  For non-UTF-8 inputs, everything is
-     * single-byte, so can be edited in place, unless there is something in the
-     * pattern that could force it into UTF-8.  The inversion map makes it
-     * feasible to determine this.  Previous versions of this code pretty much
-     * punted on determining if UTF-8 could be edited in place.  Now, this code
-     * is rigorous in making that determination.
-     *
-     * Another characteristic we need to know is whether the lhs and rhs are
-     * identical.  If so, and no other flags are present, the only effect of
-     * the tr/// is to count the characters present in the input that are
-     * mentioned in the lhs string.  The implementation of that is easier and
-     * runs faster than the more general case.  Normalizing here allows for
-     * accurate determination of this.  Previously there were false negatives
-     * possible.
-     *
-     * Instead of 'transliterated', the comments here use 'unmapped' for the
-     * characters that are left unchanged by the operation; otherwise they are
-     * 'mapped'
-     *
-     * The lhs of the tr/// is here referred to as the t side.
-     * The rhs of the tr/// is here referred to as the r side.
-     */
+                    /* Now that we know it grows, we can keep track of the
+                     * largest ratio */
+                    if (ratio > max_expansion) {
+                        max_expansion = ratio;
+                        DEBUG_y(PerlIO_printf(Perl_debug_log,
+                                        "New expansion factor: %" NVgf "\n",
+                                        max_expansion));
+                    }
+                }
 
-    SV * const tstr = ((SVOP*)expr)->op_sv;
-    SV * const rstr = ((SVOP*)repl)->op_sv;
-    STRLEN tlen;
-    STRLEN rlen;
-    const U8 * t0 = (U8*)SvPV_const(tstr, tlen);
-    const U8 * r0 = (U8*)SvPV_const(rstr, rlen);
-    const U8 * t = t0;
-    const U8 * r = r0;
-    UV t_count = 0, r_count = 0;  /* Number of characters in search and
-                                         replacement lists */
+                /* The very first range is marked as adjacent to the
+                 * non-existent range below it, as it causes things to "just
+                 * work" (TradeMark)
+                 *
+                 * If the lowest code point in this chunk is M, it adjoins the
+                 * J-L range */
+                if (t_cp == t_array[i]) {
+                    adjacent_to_range_below = TRUE;
 
-    /* khw thinks some of the private flags for this op are quaintly named.
-     * OPpTRANS_GROWS for example is TRUE if the replacement for some lhs
-     * character when represented in UTF-8 is longer than the original
-     * character's UTF-8 representation */
-    const bool complement = cBOOL(o->op_private & OPpTRANS_COMPLEMENT);
-    const bool squash     = cBOOL(o->op_private & OPpTRANS_SQUASH);
-    const bool del        = cBOOL(o->op_private & OPpTRANS_DELETE);
+                    /* And if the map has the same offset from the beginning of
+                     * the range as does this new code point (or both are for
+                     * TR_SPECIAL_HANDLING), this chunk can be completely
+                     * merged with the range below.  EXCEPT, in the first pass,
+                     * we don't merge ranges whose UTF-8 byte representations
+                     * have different lengths, so that we can more easily
+                     * detect if a replacement is longer than the source, that
+                     * is if it 'grows'.  But in the 2nd pass, there's no
+                     * reason to not merge */
+                    if (   (i > 0 && (   pass2
+                                      || CP_SKIP(t_array[i-1])
+                                                            == CP_SKIP(t_cp)))
+                        && (   (   r_cp == TR_SPECIAL_HANDLING
+                                && r_map[i-1] == TR_SPECIAL_HANDLING)
+                            || (   r_cp != TR_SPECIAL_HANDLING
+                                && r_cp - r_map[i-1] == t_cp - t_array[i-1])))
+                    {
+                        merge_with_range_below = TRUE;
+                    }
+                }
 
-    /* Set to true if there is some character < 256 in the lhs that maps to
-     * above 255.  If so, a non-UTF-8 match string can be forced into being in
-     * UTF-8 by a tr/// operation. */
-    bool can_force_utf8 = FALSE;
+                /* Similarly, if the highest code point in this chunk is 'Q',
+                 * it adjoins the range above, and if the map is suitable, can
+                 * be merged with it */
+                if (    t_cp_end >= IV_MAX - 1
+                    || (   i + 1 < len
+                        && t_cp_end + 1 == t_array[i+1]))
+                {
+                    adjacent_to_range_above = TRUE;
+                    if (i + 1 < len)
+                    if (    (   pass2
+                             || CP_SKIP(t_cp) == CP_SKIP(t_array[i+1]))
+                        && (   (   r_cp == TR_SPECIAL_HANDLING
+                                && r_map[i+1] == (UV) TR_SPECIAL_HANDLING)
+                            || (   r_cp != TR_SPECIAL_HANDLING
+                                && r_cp_end == r_map[i+1] - 1)))
+                    {
+                        merge_with_range_above = TRUE;
+                    }
+                }
 
-    /* What is the maximum expansion factor in UTF-8 transliterations.  If a
-     * 2-byte UTF-8 encoded character is to be replaced by a 3-byte one, its
-     * expansion factor is 1.5.  This number is used at runtime to calculate
-     * how much space to allocate for non-inplace transliterations.  Without
-     * this number, the worst case is 14, which is extremely unlikely to happen
-     * in real life, and could require significant memory overhead. */
-    NV max_expansion = 1.;
+                if (merge_with_range_below && merge_with_range_above) {
 
-    UV t_range_count, r_range_count, min_range_count;
-    UV* t_array;
-    SV* t_invlist;
-    UV* r_map;
-    UV r_cp = 0, t_cp = 0;
-    UV t_cp_end = (UV) -1;
-    UV r_cp_end;
-    Size_t len;
-    AV* invmap;
-    UV final_map = TR_UNLISTED;    /* The final character in the replacement
-                                      list, updated as we go along.  Initialize
-                                      to something illegal */
+                    /* Here the new chunk looks like M => m, ... Q => q; and
+                     * the range above is like R => r, ....  Thus, the [i-1]
+                     * and [i+1] ranges should be seamlessly melded so the
+                     * result looks like
+                     *
+                     * [i-1]    J   j   # J-T => j-t
+                     * [i]      U   y   # U => y, V => y+1, ...
+                     * ...
+                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
+                     */
+                    Move(t_array + i + 2, t_array + i, len - i - 2, UV);
+                    Move(r_map   + i + 2, r_map   + i, len - i - 2, UV);
+                    len -= 2;
+                    invlist_set_len(t_invlist,
+                                    len,
+                                    *(get_invlist_offset_addr(t_invlist)));
+                }
+                else if (merge_with_range_below) {
 
-    bool rstr_utf8 = cBOOL(SvUTF8(rstr));
-    bool tstr_utf8 = cBOOL(SvUTF8(tstr));
-
-    const U8* tend = t + tlen;
-    const U8* rend = r + rlen;
-
-    SV * inverted_tstr = NULL;
+                    /* Here the new chunk looks like M => m, .... But either
+                     * (or both) it doesn't extend all the way up through Q; or
+                     * the range above doesn't start with R => r. */
+                    if (! adjacent_to_range_above) {
 
-    Size_t i;
-    unsigned int pass2;
+                        /* In the first case, let's say the new chunk extends
+                         * through O.  We then want:
+                         *
+                         * [i-1]    J   j   # J-O => j-o
+                         * [i]      P  -1   # P => -1, Q => -1
+                         * [i+1]    R   x   # R => x, S => x+1, T => x+2
+                         * [i+2]    U   y   # U => y, V => y+1, ...
+                         * ...
+                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
+                         *                                            infinity
+                         */
+                        t_array[i] = t_cp_end + 1;
+                        r_map[i] = TR_UNLISTED;
+                    }
+                    else { /* Adjoins the range above, but can't merge with it
+                              (because 'x' is not the next map after q) */
+                        /*
+                         * [i-1]    J   j   # J-Q => j-q
+                         * [i]      R   x   # R => x, S => x+1, T => x+2
+                         * [i+1]    U   y   # U => y, V => y+1, ...
+                         * ...
+                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
+                         *                                          infinity
+                         */
 
-    /* This routine implements detection of a transliteration having a longer
-     * UTF-8 representation than its source, by partitioning all the possible
-     * code points of the platform into equivalence classes of the same UTF-8
-     * byte length in the first pass.  As it constructs the mappings, it carves
-     * these up into smaller chunks, but doesn't merge any together.  This
-     * makes it easy to find the instances it's looking for.  A second pass is
-     * done after this has been determined which merges things together to
-     * shrink the table for runtime.  The table below is used for both ASCII
-     * and EBCDIC platforms.  On EBCDIC, the byte length is not monotonically
-     * increasing for code points below 256.  To correct for that, the macro
-     * CP_ADJUST defined below converts those code points to ASCII in the first
-     * pass, and we use the ASCII partition values.  That works because the
-     * growth factor will be unaffected, which is all that is calculated during
-     * the first pass. */
-    UV PL_partition_by_byte_length[] = {
-        0,
-        0x80,   /* Below this is 1 byte representations */
-        (32 * (1UL << (    UTF_ACCUMULATION_SHIFT))),   /* 2 bytes below this */
-        (16 * (1UL << (2 * UTF_ACCUMULATION_SHIFT))),   /* 3 bytes below this */
-        ( 8 * (1UL << (3 * UTF_ACCUMULATION_SHIFT))),   /* 4 bytes below this */
-        ( 4 * (1UL << (4 * UTF_ACCUMULATION_SHIFT))),   /* 5 bytes below this */
-        ( 2 * (1UL << (5 * UTF_ACCUMULATION_SHIFT)))    /* 6 bytes below this */
+                        Move(t_array + i + 1, t_array + i, len - i - 1, UV);
+                        Move(r_map + i + 1, r_map + i, len - i - 1, UV);
+                        len--;
+                        invlist_set_len(t_invlist, len,
+                                        *(get_invlist_offset_addr(t_invlist)));
+                    }
+                }
+                else if (merge_with_range_above) {
 
-#  ifdef UV_IS_QUAD
-                                                    ,
-        ( ((UV) 1U << (6 * UTF_ACCUMULATION_SHIFT)))    /* 7 bytes below this */
-#  endif
+                    /* Here the new chunk ends with Q => q, and the range above
+                     * must start with R => r, so the two can be merged. But
+                     * either (or both) the new chunk doesn't extend all the
+                     * way down to M; or the mapping of the final code point
+                     * range below isn't m */
+                    if (! adjacent_to_range_below) {
 
-    };
+                        /* In the first case, let's assume the new chunk starts
+                         * with P => p.  Then, because it's merge-able with the
+                         * range above, that range must be R => r.  We want:
+                         *
+                         * [i-1]    J   j   # J-L => j-l
+                         * [i]      M  -1   # M => -1, N => -1
+                         * [i+1]    P   p   # P-T => p-t
+                         * [i+2]    U   y   # U => y, V => y+1, ...
+                         * ...
+                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
+                         *                                          infinity
+                         */
+                        t_array[i+1] = t_cp;
+                        r_map[i+1] = r_cp;
+                    }
+                    else { /* Adjoins the range below, but can't merge with it
+                            */
+                        /*
+                         * [i-1]    J   j   # J-L => j-l
+                         * [i]      M   x   # M-T => x-5 .. x+2
+                         * [i+1]    U   y   # U => y, V => y+1, ...
+                         * ...
+                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
+                         *                                          infinity
+                         */
+                        Move(t_array + i + 1, t_array + i, len - i - 1, UV);
+                        Move(r_map   + i + 1, r_map   + i, len - i - 1, UV);
+                        len--;
+                        t_array[i] = t_cp;
+                        r_map[i] = r_cp;
+                        invlist_set_len(t_invlist, len,
+                                        *(get_invlist_offset_addr(t_invlist)));
+                    }
+                }
+                else if (adjacent_to_range_below && adjacent_to_range_above) {
+                    /* The new chunk completely fills the gap between the
+                     * ranges on either side, but can't merge with either of
+                     * them.
+                     *
+                     * [i-1]    J   j   # J-L => j-l
+                     * [i]      M   z   # M => z, N => z+1 ... Q => z+4
+                     * [i+1]    R   x   # R => x, S => x+1, T => x+2
+                     * [i+2]    U   y   # U => y, V => y+1, ...
+                     * ...
+                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
+                     */
+                    r_map[i] = r_cp;
+                }
+                else if (adjacent_to_range_below) {
+                    /* The new chunk adjoins the range below, but not the range
+                     * above, and can't merge.  Let's assume the chunk ends at
+                     * O.
+                     *
+                     * [i-1]    J   j   # J-L => j-l
+                     * [i]      M   z   # M => z, N => z+1, O => z+2
+                     * [i+1]    P   -1  # P => -1, Q => -1
+                     * [i+2]    R   x   # R => x, S => x+1, T => x+2
+                     * [i+3]    U   y   # U => y, V => y+1, ...
+                     * ...
+                     * [-w]     Z  -1   # Z => default; as do Z+1, ... infinity
+                     */
+                    invlist_extend(t_invlist, len + 1);
+                    t_array = invlist_array(t_invlist);
+                    Renew(r_map, len + 1, UV);
 
-    PERL_ARGS_ASSERT_PMTRANS;
+                    Move(t_array + i + 1, t_array + i + 2, len - i - 1, UV);
+                    Move(r_map + i + 1,   r_map   + i + 2, len - i - 1, UV);
+                    r_map[i] = r_cp;
+                    t_array[i+1] = t_cp_end + 1;
+                    r_map[i+1] = TR_UNLISTED;
+                    len++;
+                    invlist_set_len(t_invlist, len,
+                                    *(get_invlist_offset_addr(t_invlist)));
+                }
+                else if (adjacent_to_range_above) {
+                    /* The new chunk adjoins the range above, but not the range
+                     * below, and can't merge.  Let's assume the new chunk
+                     * starts at O
+                     *
+                     * [i-1]    J   j   # J-L => j-l
+                     * [i]      M  -1   # M => default, N => default
+                     * [i+1]    O   z   # O => z, P => z+1, Q => z+2
+                     * [i+2]    R   x   # R => x, S => x+1, T => x+2
+                     * [i+3]    U   y   # U => y, V => y+1, ...
+                     * ...
+                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
+                     */
+                    invlist_extend(t_invlist, len + 1);
+                    t_array = invlist_array(t_invlist);
+                    Renew(r_map, len + 1, UV);
 
-    PL_hints |= HINT_BLOCK_SCOPE;
+                    Move(t_array + i + 1, t_array + i + 2, len - i - 1, UV);
+                    Move(r_map   + i + 1, r_map   + i + 2, len - i - 1, UV);
+                    t_array[i+1] = t_cp;
+                    r_map[i+1] = r_cp;
+                    len++;
+                    invlist_set_len(t_invlist, len,
+                                    *(get_invlist_offset_addr(t_invlist)));
+                }
+                else {
+                    /* The new chunk adjoins neither the range above, nor the
+                     * range below.  Lets assume it is N..P => n..p
+                     *
+                     * [i-1]    J   j   # J-L => j-l
+                     * [i]      M  -1   # M => default
+                     * [i+1]    N   n   # N..P => n..p
+                     * [i+2]    Q  -1   # Q => default
+                     * [i+3]    R   x   # R => x, S => x+1, T => x+2
+                     * [i+4]    U   y   # U => y, V => y+1, ...
+                     * ...
+                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
+                     */
 
-    /* If /c, the search list is sorted and complemented.  This is now done by
-     * creating an inversion list from it, and then trivially inverting that.
-     * The previous implementation used qsort, but creating the list
-     * automatically keeps it sorted as we go along */
-    if (complement) {
-        UV start, end;
-        SV * inverted_tlist = _new_invlist(tlen);
-        Size_t temp_len;
+                    DEBUG_yv(PerlIO_printf(Perl_debug_log,
+                                        "Before fixing up: len=%d, i=%d\n",
+                                        (int) len, (int) i));
+                    DEBUG_yv(invmap_dump(t_invlist, r_map));
 
-        DEBUG_y(PerlIO_printf(Perl_debug_log,
-                    "%s: %d: tstr before inversion=\n%s\n",
-                    __FILE__, __LINE__, _byte_dump_string(t, tend - t, 0)));
+                    invlist_extend(t_invlist, len + 2);
+                    t_array = invlist_array(t_invlist);
+                    Renew(r_map, len + 2, UV);
 
-        while (t < tend) {
+                    Move(t_array + i + 1,
+                         t_array + i + 2 + 1, len - i - (2 - 1), UV);
+                    Move(r_map   + i + 1,
+                         r_map   + i + 2 + 1, len - i - (2 - 1), UV);
 
-            /* Non-utf8 strings don't have ranges, so each character is listed
-             * out */
-            if (! tstr_utf8) {
-                inverted_tlist = add_cp_to_invlist(inverted_tlist, *t);
-                t++;
-            }
-            else {  /* But UTF-8 strings have been parsed in toke.c to have
-                 * ranges if appropriate. */
-                UV t_cp;
-                Size_t t_char_len;
+                    len += 2;
+                    invlist_set_len(t_invlist, len,
+                                    *(get_invlist_offset_addr(t_invlist)));
 
-                /* Get the first character */
-                t_cp = valid_utf8_to_uvchr(t, &t_char_len);
-                t += t_char_len;
+                    t_array[i+1] = t_cp;
+                    r_map[i+1] = r_cp;
 
-                /* If the next byte indicates that this wasn't the first
-                 * element of a range, the range is just this one */
-                if (t >= tend || *t != RANGE_INDICATOR) {
-                    inverted_tlist = add_cp_to_invlist(inverted_tlist, t_cp);
+                    t_array[i+2] = t_cp_end + 1;
+                    r_map[i+2] = TR_UNLISTED;
                 }
-                else { /* Otherwise, ignore the indicator byte, and get the
-                          final element, and add the whole range */
-                    t++;
-                    t_cp_end = valid_utf8_to_uvchr(t, &t_char_len);
-                    t += t_char_len;
+                DEBUG_yv(PerlIO_printf(Perl_debug_log,
+                          "After iteration: span=%" UVuf ", t_range_count=%"
+                          UVuf " r_range_count=%" UVuf "\n",
+                          span, t_range_count, r_range_count));
+                DEBUG_yv(invmap_dump(t_invlist, r_map));
+            } /* End of this chunk needs to be processed */
 
-                    inverted_tlist = _add_range_to_invlist(inverted_tlist,
-                                                      t_cp, t_cp_end);
-                }
+            /* Done with this chunk. */
+            t_cp += span;
+            if (t_cp >= IV_MAX) {
+                break;
+            }
+            t_range_count -= span;
+            if (r_cp != TR_SPECIAL_HANDLING) {
+                r_cp += span;
+                r_range_count -= span;
+            }
+            else {
+                r_range_count = 0;
             }
-        } /* End of parse through tstr */
-
-        /* The inversion list is done; now invert it */
-        _invlist_invert(inverted_tlist);
 
-        /* Now go through the inverted list and create a new tstr for the rest
-         * of the routine to use.  Since the UTF-8 version can have ranges, and
-         * can be much more compact than the non-UTF-8 version, we create the
-         * string in UTF-8 even if not necessary.  (This is just an intermediate
-         * value that gets thrown away anyway.) */
-        invlist_iterinit(inverted_tlist);
-        inverted_tstr = newSVpvs("");
-        while (invlist_iternext(inverted_tlist, &start, &end)) {
-            U8 temp[UTF8_MAXBYTES];
-            U8 * temp_end_pos;
+        } /* End of loop through the search list */
 
-            /* IV_MAX keeps things from going out of bounds */
-            start = MIN(IV_MAX, start);
-            end   = MIN(IV_MAX, end);
+        /* We don't need an exact count, but we do need to know if there is
+         * anything left over in the replacement list.  So, just assume it's
+         * one byte per character */
+        if (rend > r) {
+            r_count++;
+        }
+    } /* End of passes */
 
-            temp_end_pos = uvchr_to_utf8(temp, start);
-            sv_catpvn(inverted_tstr, (char *) temp, temp_end_pos - temp);
+    SvREFCNT_dec(inverted_tstr);
 
-            if (start != end) {
-                Perl_sv_catpvf(aTHX_ inverted_tstr, "%c", RANGE_INDICATOR);
-                temp_end_pos = uvchr_to_utf8(temp, end);
-                sv_catpvn(inverted_tstr, (char *) temp, temp_end_pos - temp);
+    DEBUG_y(PerlIO_printf(Perl_debug_log, "After everything: \n"));
+    DEBUG_y(invmap_dump(t_invlist, r_map));
+
+    /* We now have normalized the input into an inversion map.
+     *
+     * See if the lhs and rhs are equivalent.  If so, this tr/// is a no-op
+     * except for the count, and streamlined runtime code can be used */
+    if (!del && !squash) {
+
+        /* They are identical if they point to the same address, or if
+         * everything maps to UNLISTED or to itself.  This catches things that
+         * not looking at the normalized inversion map doesn't catch, like
+         * tr/aa/ab/ or tr/\x{100}-\x{104}/\x{100}-\x{102}\x{103}-\x{104}  */
+        if (r0 != t0) {
+            for (i = 0; i < len; i++) {
+                if (r_map[i] != TR_UNLISTED && r_map[i] != t_array[i]) {
+                    goto done_identical_check;
+                }
             }
         }
 
-        /* Set up so the remainder of the routine uses this complement, instead
-         * of the actual input */
-        t0 = t = (U8*)SvPV_const(inverted_tstr, temp_len);
-        tend = t0 + temp_len;
-        tstr_utf8 = TRUE;
+        /* Here have gone through entire list, and didn't find any
+         * non-identical mappings */
+        o->op_private |= OPpTRANS_IDENTICAL;
 
-        SvREFCNT_dec_NN(inverted_tlist);
+      done_identical_check: ;
     }
 
-    /* For non-/d, an empty rhs means to use the lhs */
-    if (rlen == 0 && ! del) {
-        r0 = t0;
-        rend = tend;
-        rstr_utf8  = tstr_utf8;
-    }
+    t_array = invlist_array(t_invlist);
 
-    t_invlist = _new_invlist(1);
+    /* If has components above 255, we generally need to use the inversion map
+     * implementation */
+    if (   can_force_utf8
+        || (   len > 0
+            && t_array[len-1] > 255
+                 /* If the final range is 0x100-INFINITY and is a special
+                  * mapping, the table implementation can handle it */
+            && ! (   t_array[len-1] == 256
+                  && (   r_map[len-1] == TR_UNLISTED
+                      || r_map[len-1] == TR_SPECIAL_HANDLING))))
+    {
+        SV* r_map_sv;
+        SV* temp_sv;
 
-    /* Initialize to a single range */
-    t_invlist = _add_range_to_invlist(t_invlist, 0, UV_MAX);
+        /* A UTF-8 op is generated, indicated by this flag.  This op is an
+         * sv_op */
+        o->op_private |= OPpTRANS_USE_SVOP;
 
-    /* For the first pass, the lhs is partitioned such that the
-     * number of UTF-8 bytes required to represent a code point in each
-     * partition is the same as the number for any other code point in
-     * that partion.  We copy the pre-compiled partion. */
-    len = C_ARRAY_LENGTH(PL_partition_by_byte_length);
-    invlist_extend(t_invlist, len);
-    t_array = invlist_array(t_invlist);
-    Copy(PL_partition_by_byte_length, t_array, len, UV);
-    invlist_set_len(t_invlist, len, *(get_invlist_offset_addr(t_invlist)));
-    Newx(r_map, len + 1, UV);
+        if (can_force_utf8) {
+            o->op_private |= OPpTRANS_CAN_FORCE_UTF8;
+        }
 
-    /* Parse the (potentially adjusted) input, creating the inversion map.
-     * This is done in two passes.  The first pass is to determine if the
-     * transliteration can be done in place.  The inversion map it creates
-     * could be used, but generally would be larger and slower to run than the
-     * output of the second pass, which starts with a more compact table and
-     * allows more ranges to be merged */
-    for (pass2 = 0; pass2 < 2; pass2++) {
-        if (pass2) {
-            /* Initialize to a single range */
-            t_invlist = _add_range_to_invlist(t_invlist, 0, UV_MAX);
+        /* The inversion map is pushed; first the list. */
+        invmap = MUTABLE_AV(newAV());
 
-            /* In the second pass, we just have the single range */
-            len = 1;
-            t_array = invlist_array(t_invlist);
+        SvREADONLY_on(t_invlist);
+        av_push(invmap, t_invlist);
+
+        /* 2nd is the mapping */
+        r_map_sv = newSVpvn((char *) r_map, len * sizeof(UV));
+        SvREADONLY_on(r_map_sv);
+        av_push(invmap, r_map_sv);
+
+        /* 3rd is the max possible expansion factor */
+        temp_sv = newSVnv(max_expansion);
+        SvREADONLY_on(temp_sv);
+        av_push(invmap, temp_sv);
+
+        /* Characters that are in the search list, but not in the replacement
+         * list are mapped to the final character in the replacement list */
+        if (! del && r_count < t_count) {
+            temp_sv = newSVuv(final_map);
+            SvREADONLY_on(temp_sv);
+            av_push(invmap, temp_sv);
         }
 
-/* As noted earlier, we convert EBCDIC code points to Unicode in the first pass
- * so as to get the well-behaved length 1 vs length 2 boundary.  Only code
- * points below 256 differ between the two character sets in this regard.  For
- * these, we also can't have any ranges, as they have to be individually
- * converted. */
-#ifdef EBCDIC
-#  define CP_ADJUST(x)          ((pass2) ? (x) : NATIVE_TO_UNI(x))
-#  define FORCE_RANGE_LEN_1(x)  ((pass2) ? 0 : ((x) < 256))
-#  define CP_SKIP(x)            ((pass2) ? UVCHR_SKIP(x) : OFFUNISKIP(x))
+#ifdef USE_ITHREADS
+        cPADOPo->op_padix = pad_alloc(OP_TRANS, SVf_READONLY);
+        SvREFCNT_dec(PAD_SVl(cPADOPo->op_padix));
+        PAD_SETSV(cPADOPo->op_padix, (SV *) invmap);
+        SvPADTMP_on(invmap);
+        SvREADONLY_on(invmap);
 #else
-#  define CP_ADJUST(x)          (x)
-#  define FORCE_RANGE_LEN_1(x)  0
-#  define CP_SKIP(x)            UVCHR_SKIP(x)
+        cSVOPo->op_sv = (SV *) invmap;
 #endif
 
-        /* And the mapping of each of the ranges is initialized.  Initially,
-         * everything is TR_UNLISTED. */
+    }
+    else {
+        OPtrans_map *tbl;
+        unsigned short i;
+
+        /* The OPtrans_map struct already contains one slot; hence the -1. */
+        SSize_t struct_size = sizeof(OPtrans_map)
+                            + (256 - 1 + 1)*sizeof(short);
+
+        /* Non-utf8 case: set o->op_pv to point to a simple 256+ entry lookup
+         * table. Entries with the value TR_UNMAPPED indicate chars not to be
+         * translated, while TR_DELETE indicates a search char without a
+         * corresponding replacement char under /d.
+         *
+         * In addition, an extra slot at the end is used to store the final
+         * repeating char, or TR_R_EMPTY under an empty replacement list, or
+         * TR_DELETE under /d; which makes the runtime code easier. */
+
+        /* Indicate this is an op_pv */
+        o->op_private &= ~OPpTRANS_USE_SVOP;
+
+        tbl = (OPtrans_map*)PerlMemShared_calloc(struct_size, 1);
+        tbl->size = 256;
+        cPVOPo->op_pv = (char*)tbl;
+
         for (i = 0; i < len; i++) {
-            r_map[i] = TR_UNLISTED;
+            STATIC_ASSERT_DECL(TR_SPECIAL_HANDLING == TR_DELETE);
+            short upper = i >= len - 1 ? 256 : (short) t_array[i+1];
+            short to = (short) r_map[i];
+            short j;
+            bool do_increment = TRUE;
+
+            /* Any code points above our limit should be irrelevant */
+            if (t_array[i] >= tbl->size) break;
+
+            /* Set up the map */
+            if (to == (short) TR_SPECIAL_HANDLING && ! del) {
+                to = (short) final_map;
+                do_increment = FALSE;
+            }
+            else if (to < 0) {
+                do_increment = FALSE;
+            }
+
+            /* Create a map for everything in this range.  The value increases
+             * except for the special cases */
+            for (j = (short) t_array[i]; j < upper; j++) {
+                tbl->map[j] = to;
+                if (do_increment) to++;
+            }
         }
 
-        t = t0;
-        t_count = 0;
-        r = r0;
-        r_count = 0;
-        t_range_count = r_range_count = 0;
+        tbl->map[tbl->size] = del
+                              ? (short) TR_DELETE
+                              : (short) rlen
+                                ? (short) final_map
+                                : (short) TR_R_EMPTY;
+        DEBUG_y(PerlIO_printf(Perl_debug_log,"%s: %d\n", __FILE__, __LINE__));
+        for (i = 0; i < tbl->size; i++) {
+            if (tbl->map[i] < 0) {
+                DEBUG_y(PerlIO_printf(Perl_debug_log," %02x=>%d",
+                                                (unsigned) i, tbl->map[i]));
+            }
+            else {
+                DEBUG_y(PerlIO_printf(Perl_debug_log," %02x=>%02x",
+                                                (unsigned) i, tbl->map[i]));
+            }
+            if ((i+1) % 8 == 0 || i + 1 == (short) tbl->size) {
+                DEBUG_y(PerlIO_printf(Perl_debug_log,"\n"));
+            }
+        }
+        DEBUG_y(PerlIO_printf(Perl_debug_log,"Final map 0x%x=>%02x\n",
+                                (unsigned) tbl->size, tbl->map[tbl->size]));
 
-        DEBUG_y(PerlIO_printf(Perl_debug_log, "%s: %d:\ntstr=%s\n",
-                    __FILE__, __LINE__, _byte_dump_string(t, tend - t, 0)));
-        DEBUG_y(PerlIO_printf(Perl_debug_log, "rstr=%s\n",
-                                        _byte_dump_string(r, rend - r, 0)));
-        DEBUG_y(PerlIO_printf(Perl_debug_log, "/c=%d; /s=%d; /d=%d\n",
-                                                  complement, squash, del));
-        DEBUG_y(invmap_dump(t_invlist, r_map));
+        SvREFCNT_dec(t_invlist);
 
-        /* Now go through the search list constructing an inversion map.  The
-         * input is not necessarily in any particular order.  Making it an
-         * inversion map orders it, potentially simplifying, and makes it easy
-         * to deal with at run time.  This is the only place in core that
-         * generates an inversion map; if others were introduced, it might be
-         * better to create general purpose routines to handle them.
-         * (Inversion maps are created in perl in other places.)
-         *
-         * An inversion map consists of two parallel arrays.  One is
-         * essentially an inversion list: an ordered list of code points such
-         * that each element gives the first code point of a range of
-         * consecutive code points that map to the element in the other array
-         * that has the same index as this one (in other words, the
-         * corresponding element).  Thus the range extends up to (but not
-         * including) the code point given by the next higher element.  In a
-         * true inversion map, the corresponding element in the other array
-         * gives the mapping of the first code point in the range, with the
-         * understanding that the next higher code point in the inversion
-         * list's range will map to the next higher code point in the map.
-         *
-         * So if at element [i], let's say we have:
-         *
-         *     t_invlist  r_map
-         * [i]    A         a
-         *
-         * This means that A => a, B => b, C => c....  Let's say that the
-         * situation is such that:
-         *
-         * [i+1]  L        -1
-         *
-         * This means the sequence that started at [i] stops at K => k.  This
-         * illustrates that you need to look at the next element to find where
-         * a sequence stops.  Except, the highest element in the inversion list
-         * begins a range that is understood to extend to the platform's
-         * infinity.
-         *
-         * This routine modifies traditional inversion maps to reserve two
-         * mappings:
-         *
-         *  TR_UNLISTED (or -1) indicates that no code point in the range
-         *      is listed in the tr/// searchlist.  At runtime, these are
-         *      always passed through unchanged.  In the inversion map, all
-         *      points in the range are mapped to -1, instead of increasing,
-         *      like the 'L' in the example above.
-         *
-         *      We start the parse with every code point mapped to this, and as
-         *      we parse and find ones that are listed in the search list, we
-         *      carve out ranges as we go along that override that.
-         *
-         *  TR_SPECIAL_HANDLING (or -2) indicates that every code point in the
-         *      range needs special handling.  Again, all code points in the
-         *      range are mapped to -2, instead of increasing.
-         *
-         *      Under /d this value means the code point should be deleted from
-         *      the transliteration when encountered.
-         *
-         *      Otherwise, it marks that every code point in the range is to
-         *      map to the final character in the replacement list.  This
-         *      happens only when the replacement list is shorter than the
-         *      search one, so there are things in the search list that have no
-         *      correspondence in the replacement list.  For example, in
-         *      tr/a-z/A/, 'A' is the final value, and the inversion map
-         *      generated for this would be like this:
-         *          \0  =>  -1
-         *          a   =>   A
-         *          b-z =>  -2
-         *          z+1 =>  -1
-         *      'A' appears once, then the remainder of the range maps to -2.
-         *      The use of -2 isn't strictly necessary, as an inversion map is
-         *      capable of representing this situation, but not nearly so
-         *      compactly, and this is actually quite commonly encountered.
-         *      Indeed, the original design of this code used a full inversion
-         *      map for this.  But things like
-         *          tr/\0-\x{FFFF}/A/
-         *      generated huge data structures, slowly, and the execution was
-         *      also slow.  So the current scheme was implemented.
-         *
-         *  So, if the next element in our example is:
-         *
-         * [i+2]  Q        q
-         *
-         * Then all of L, M, N, O, and P map to TR_UNLISTED.  If the next
-         * elements are
-         *
-         * [i+3]  R        z
-         * [i+4]  S       TR_UNLISTED
-         *
-         * Then Q => q; R => z; and S => TR_UNLISTED.  If [i+4] (the 'S') is
-         * the final element in the arrays, every code point from S to infinity
-         * maps to TR_UNLISTED.
-         *
-         */
-                           /* Finish up range started in what otherwise would
-                            * have been the final iteration */
-        while (t < tend || t_range_count > 0) {
-            bool adjacent_to_range_above = FALSE;
-            bool adjacent_to_range_below = FALSE;
-
-            bool merge_with_range_above = FALSE;
-            bool merge_with_range_below = FALSE;
-
-            UV span, invmap_range_length_remaining;
-            SSize_t j;
-            Size_t i;
-
-            /* If we are in the middle of processing a range in the 'target'
-             * side, the previous iteration has set us up.  Otherwise, look at
-             * the next character in the search list */
-            if (t_range_count <= 0) {
-                if (! tstr_utf8) {
-
-                    /* Here, not in the middle of a range, and not UTF-8.  The
-                     * next code point is the single byte where we're at */
-                    t_cp = CP_ADJUST(*t);
-                    t_range_count = 1;
-                    t++;
-                }
-                else {
-                    Size_t t_char_len;
+#if 0   /* code that added excess above-255 chars at the end of the table, in
+           case we ever want to not use the inversion map implementation for
+           this */
 
-                    /* Here, not in the middle of a range, and is UTF-8.  The
-                     * next code point is the next UTF-8 char in the input.  We
-                     * know the input is valid, because the toker constructed
-                     * it */
-                    t_cp = CP_ADJUST(valid_utf8_to_uvchr(t, &t_char_len));
-                    t += t_char_len;
+        ASSUME(j <= rlen);
+        excess = rlen - j;
 
-                    /* UTF-8 strings (only) have been parsed in toke.c to have
-                     * ranges.  See if the next byte indicates that this was
-                     * the first element of a range.  If so, get the final
-                     * element and calculate the range size.  If not, the range
-                     * size is 1 */
-                    if (   t < tend && *t == RANGE_INDICATOR
-                        && ! FORCE_RANGE_LEN_1(t_cp))
-                    {
-                        t++;
-                        t_range_count = valid_utf8_to_uvchr(t, &t_char_len)
-                                      - t_cp + 1;
-                        t += t_char_len;
-                    }
-                    else {
-                        t_range_count = 1;
-                    }
-                }
+        if (excess) {
+            /* More replacement chars than search chars:
+             * store excess replacement chars at end of main table.
+             */
 
-                /* Count the total number of listed code points * */
-                t_count += t_range_count;
-            }
+            struct_size += excess;
+            tbl = (OPtrans_map*)PerlMemShared_realloc(tbl,
+                        struct_size + excess * sizeof(short));
+            tbl->size += excess;
+            cPVOPo->op_pv = (char*)tbl;
 
-            /* Similarly, get the next character in the replacement list */
-            if (r_range_count <= 0) {
-                if (r >= rend) {
+            for (i = 0; i < excess; i++)
+                tbl->map[i + 256] = r[j+i];
+        }
+        else {
+            /* no more replacement chars than search chars */
+        }
+#endif
 
-                    /* But if we've exhausted the rhs, there is nothing to map
-                     * to, except the special handling one, and we make the
-                     * range the same size as the lhs one. */
-                    r_cp = TR_SPECIAL_HANDLING;
-                    r_range_count = t_range_count;
+    }
 
-                    if (! del) {
-                        DEBUG_yv(PerlIO_printf(Perl_debug_log,
-                                        "final_map =%" UVXf "\n", final_map));
-                    }
-                }
-                else {
-                    if (! rstr_utf8) {
-                        r_cp = CP_ADJUST(*r);
-                        r_range_count = 1;
-                        r++;
-                    }
-                    else {
-                        Size_t r_char_len;
+    DEBUG_y(PerlIO_printf(Perl_debug_log,
+            "/d=%d, /s=%d, /c=%d, identical=%d, grows=%d,"
+            " use_svop=%d, can_force_utf8=%d,\nexpansion=%" NVgf "\n",
+            del, squash, complement,
+            cBOOL(o->op_private & OPpTRANS_IDENTICAL),
+            cBOOL(o->op_private & OPpTRANS_USE_SVOP),
+            cBOOL(o->op_private & OPpTRANS_GROWS),
+            cBOOL(o->op_private & OPpTRANS_CAN_FORCE_UTF8),
+            max_expansion));
 
-                        r_cp = CP_ADJUST(valid_utf8_to_uvchr(r, &r_char_len));
-                        r += r_char_len;
-                        if (   r < rend && *r == RANGE_INDICATOR
-                            && ! FORCE_RANGE_LEN_1(r_cp))
-                        {
-                            r++;
-                            r_range_count = valid_utf8_to_uvchr(r,
-                                                    &r_char_len) - r_cp + 1;
-                            r += r_char_len;
-                        }
-                        else {
-                            r_range_count = 1;
-                        }
-                    }
+    Safefree(r_map);
 
-                    if (r_cp == TR_SPECIAL_HANDLING) {
-                        r_range_count = t_range_count;
-                    }
+    if(del && rlen != 0 && r_count == t_count) {
+        Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "Useless use of /d modifier in transliteration operator");
+    } else if(r_count > t_count) {
+        Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "Replacement list is longer than search list");
+    }
 
-                    /* This is the final character so far */
-                    final_map = r_cp + r_range_count - 1;
+    op_free(expr);
+    op_free(repl);
 
-                    r_count += r_range_count;
-                }
-            }
+    return o;
+}
 
-            /* Here, we have the next things ready in both sides.  They are
-             * potentially ranges.  We try to process as big a chunk as
-             * possible at once, but the lhs and rhs must be synchronized, so
-             * things like tr/A-Z/a-ij-z/ will need to be processed in 2 chunks
-             * */
-            min_range_count = MIN(t_range_count, r_range_count);
 
-            /* Search the inversion list for the entry that contains the input
-             * code point <cp>.  The inversion map was initialized to cover the
-             * entire range of possible inputs, so this should not fail.  So
-             * the return value is the index into the list's array of the range
-             * that contains <cp>, that is, 'i' such that array[i] <= cp <
-             * array[i+1] */
-            j = _invlist_search(t_invlist, t_cp);
-            assert(j >= 0);
-            i = j;
+/*
+=for apidoc newPMOP
 
-            /* Here, the data structure might look like:
-             *
-             * index    t   r     Meaning
-             * [i-1]    J   j   # J-L => j-l
-             * [i]      M  -1   # M => default; as do N, O, P, Q
-             * [i+1]    R   x   # R => x, S => x+1, T => x+2
-             * [i+2]    U   y   # U => y, V => y+1, ...
-             * ...
-             * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
-             *
-             * where 'x' and 'y' above are not to be taken literally.
-             *
-             * The maximum chunk we can handle in this loop iteration, is the
-             * smallest of the three components: the lhs 't_', the rhs 'r_',
-             * and the remainder of the range in element [i].  (In pass 1, that
-             * range will have everything in it be of the same class; we can't
-             * cross into another class.)  'min_range_count' already contains
-             * the smallest of the first two values.  The final one is
-             * irrelevant if the map is to the special indicator */
+Constructs, checks, and returns an op of any pattern matching type.
+C<type> is the opcode.  C<flags> gives the eight bits of C<op_flags>
+and, shifted up eight bits, the eight bits of C<op_private>.
 
-            invmap_range_length_remaining = (i + 1 < len)
-                                            ? t_array[i+1] - t_cp
-                                            : IV_MAX - t_cp;
-            span = MAX(1, MIN(min_range_count, invmap_range_length_remaining));
+=cut
+*/
 
-            /* The end point of this chunk is where we are, plus the span, but
-             * never larger than the platform's infinity */
-            t_cp_end = MIN(IV_MAX, t_cp + span - 1);
+OP *
+Perl_newPMOP(pTHX_ I32 type, I32 flags)
+{
+    PMOP *pmop;
 
-            if (r_cp == TR_SPECIAL_HANDLING) {
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_PMOP
+        || type == OP_CUSTOM);
 
-                /* If unmatched lhs code points map to the final map, use that
-                 * value.  This being set to TR_SPECIAL_HANDLING indicates that
-                 * we don't have a final map: unmatched lhs code points are
-                 * simply deleted */
-                r_cp_end = (del) ? TR_SPECIAL_HANDLING : final_map;
-            }
-            else {
-                r_cp_end = MIN(IV_MAX, r_cp + span - 1);
+    NewOp(1101, pmop, 1, PMOP);
+    OpTYPE_set(pmop, type);
+    pmop->op_flags = (U8)flags;
+    pmop->op_private = (U8)(0 | (flags >> 8));
+    if (PL_opargs[type] & OA_RETSCALAR)
+        scalar((OP *)pmop);
 
-                /* If something on the lhs is below 256, and something on the
-                 * rhs is above, there is a potential mapping here across that
-                 * boundary.  Indeed the only way there isn't is if both sides
-                 * start at the same point.  That means they both cross at the
-                 * same time.  But otherwise one crosses before the other */
-                if (t_cp < 256 && r_cp_end > 255 && r_cp != t_cp) {
-                    can_force_utf8 = TRUE;
-                }
-            }
+    if (PL_hints & HINT_RE_TAINT)
+        pmop->op_pmflags |= PMf_RETAINT;
+#ifdef USE_LOCALE_CTYPE
+    if (IN_LC_COMPILETIME(LC_CTYPE)) {
+        set_regex_charset(&(pmop->op_pmflags), REGEX_LOCALE_CHARSET);
+    }
+    else
+#endif
+         if (IN_UNI_8_BIT) {
+        set_regex_charset(&(pmop->op_pmflags), REGEX_UNICODE_CHARSET);
+    }
+    if (PL_hints & HINT_RE_FLAGS) {
+        SV *reflags = Perl_refcounted_he_fetch_pvn(aTHX_
+         PL_compiling.cop_hints_hash, STR_WITH_LEN("reflags"), 0, 0
+        );
+        if (reflags && SvOK(reflags)) pmop->op_pmflags |= SvIV(reflags);
+        reflags = Perl_refcounted_he_fetch_pvn(aTHX_
+         PL_compiling.cop_hints_hash, STR_WITH_LEN("reflags_charset"), 0, 0
+        );
+        if (reflags && SvOK(reflags)) {
+            set_regex_charset(&(pmop->op_pmflags), (regex_charset)SvIV(reflags));
+        }
+    }
 
-            /* If a character appears in the search list more than once, the
-             * 2nd and succeeding occurrences are ignored, so only do this
-             * range if haven't already processed this character.  (The range
-             * has been set up so that all members in it will be of the same
-             * ilk) */
-            if (r_map[i] == TR_UNLISTED) {
-                DEBUG_yv(PerlIO_printf(Perl_debug_log,
-                    "Processing %" UVxf "-%" UVxf " => %" UVxf "-%" UVxf "\n",
-                    t_cp, t_cp_end, r_cp, r_cp_end));
 
-                /* This is the first definition for this chunk, hence is valid
-                 * and needs to be processed.  Here and in the comments below,
-                 * we use the above sample data.  The t_cp chunk must be any
-                 * contiguous subset of M, N, O, P, and/or Q.
-                 *
-                 * In the first pass, calculate if there is any possible input
-                 * string that has a character whose transliteration will be
-                 * longer than it.  If none, the transliteration may be done
-                 * in-place, as it can't write over a so-far unread byte.
-                 * Otherwise, a copy must first be made.  This could be
-                 * expensive for long inputs.
-                 *
-                 * In the first pass, the t_invlist has been partitioned so
-                 * that all elements in any single range have the same number
-                 * of bytes in their UTF-8 representations.  And the r space is
-                 * either a single byte, or a range of strictly monotonically
-                 * increasing code points.  So the final element in the range
-                 * will be represented by no fewer bytes than the initial one.
-                 * That means that if the final code point in the t range has
-                 * at least as many bytes as the final code point in the r,
-                 * then all code points in the t range have at least as many
-                 * bytes as their corresponding r range element.  But if that's
-                 * not true, the transliteration of at least the final code
-                 * point grows in length.  As an example, suppose we had
-                 *      tr/\x{fff0}-\x{fff1}/\x{ffff}-\x{10000}/
-                 * The UTF-8 for all but 10000 occupies 3 bytes on ASCII
-                 * platforms.  We have deliberately set up the data structure
-                 * so that any range in the lhs gets split into chunks for
-                 * processing, such that every code point in a chunk has the
-                 * same number of UTF-8 bytes.  We only have to check the final
-                 * code point in the rhs against any code point in the lhs. */
-                if ( ! pass2
-                    && r_cp_end != TR_SPECIAL_HANDLING
-                    && CP_SKIP(t_cp_end) < CP_SKIP(r_cp_end))
-                {
-                    /* Here, we will need to make a copy of the input string
-                     * before doing the transliteration.  The worst possible
-                     * case is an expansion ratio of 14:1. This is rare, and
-                     * we'd rather allocate only the necessary amount of extra
-                     * memory for that copy.  We can calculate the worst case
-                     * for this particular transliteration is by keeping track
-                     * of the expansion factor for each range.
-                     *
-                     * Consider tr/\xCB/\X{E000}/.  The maximum expansion
-                     * factor is 1 byte going to 3 if the target string is not
-                     * UTF-8, but 2 bytes going to 3 if it is in UTF-8.  We
-                     * could pass two different values so doop could choose
-                     * based on the UTF-8ness of the target.  But khw thinks
-                     * (perhaps wrongly) that is overkill.  It is used only to
-                     * make sure we malloc enough space.
-                     *
-                     * If no target string can force the result to be UTF-8,
-                     * then we don't have to worry about the case of the target
-                     * string not being UTF-8 */
-                    NV t_size = (can_force_utf8 && t_cp < 256)
-                                ? 1
-                                : CP_SKIP(t_cp_end);
-                    NV ratio = CP_SKIP(r_cp_end) / t_size;
+#ifdef USE_ITHREADS
+    assert(SvPOK(PL_regex_pad[0]));
+    if (SvCUR(PL_regex_pad[0])) {
+        /* Pop off the "packed" IV from the end.  */
+        SV *const repointer_list = PL_regex_pad[0];
+        const char *p = SvEND(repointer_list) - sizeof(IV);
+        const IV offset = *((IV*)p);
 
-                    o->op_private |= OPpTRANS_GROWS;
+        assert(SvCUR(repointer_list) % sizeof(IV) == 0);
 
-                    /* Now that we know it grows, we can keep track of the
-                     * largest ratio */
-                    if (ratio > max_expansion) {
-                        max_expansion = ratio;
-                        DEBUG_y(PerlIO_printf(Perl_debug_log,
-                                        "New expansion factor: %" NVgf "\n",
-                                        max_expansion));
-                    }
-                }
+        SvEND_set(repointer_list, p);
 
-                /* The very first range is marked as adjacent to the
-                 * non-existent range below it, as it causes things to "just
-                 * work" (TradeMark)
-                 *
-                 * If the lowest code point in this chunk is M, it adjoins the
-                 * J-L range */
-                if (t_cp == t_array[i]) {
-                    adjacent_to_range_below = TRUE;
+        pmop->op_pmoffset = offset;
+        /* This slot should be free, so assert this:  */
+        assert(PL_regex_pad[offset] == &PL_sv_undef);
+    } else {
+        SV * const repointer = &PL_sv_undef;
+        av_push(PL_regex_padav, repointer);
+        pmop->op_pmoffset = av_top_index(PL_regex_padav);
+        PL_regex_pad = AvARRAY(PL_regex_padav);
+    }
+#endif
 
-                    /* And if the map has the same offset from the beginning of
-                     * the range as does this new code point (or both are for
-                     * TR_SPECIAL_HANDLING), this chunk can be completely
-                     * merged with the range below.  EXCEPT, in the first pass,
-                     * we don't merge ranges whose UTF-8 byte representations
-                     * have different lengths, so that we can more easily
-                     * detect if a replacement is longer than the source, that
-                     * is if it 'grows'.  But in the 2nd pass, there's no
-                     * reason to not merge */
-                    if (   (i > 0 && (   pass2
-                                      || CP_SKIP(t_array[i-1])
-                                                            == CP_SKIP(t_cp)))
-                        && (   (   r_cp == TR_SPECIAL_HANDLING
-                                && r_map[i-1] == TR_SPECIAL_HANDLING)
-                            || (   r_cp != TR_SPECIAL_HANDLING
-                                && r_cp - r_map[i-1] == t_cp - t_array[i-1])))
-                    {
-                        merge_with_range_below = TRUE;
-                    }
-                }
+    return CHECKOP(type, pmop);
+}
 
-                /* Similarly, if the highest code point in this chunk is 'Q',
-                 * it adjoins the range above, and if the map is suitable, can
-                 * be merged with it */
-                if (    t_cp_end >= IV_MAX - 1
-                    || (   i + 1 < len
-                        && t_cp_end + 1 == t_array[i+1]))
-                {
-                    adjacent_to_range_above = TRUE;
-                    if (i + 1 < len)
-                    if (    (   pass2
-                             || CP_SKIP(t_cp) == CP_SKIP(t_array[i+1]))
-                        && (   (   r_cp == TR_SPECIAL_HANDLING
-                                && r_map[i+1] == (UV) TR_SPECIAL_HANDLING)
-                            || (   r_cp != TR_SPECIAL_HANDLING
-                                && r_cp_end == r_map[i+1] - 1)))
-                    {
-                        merge_with_range_above = TRUE;
-                    }
-                }
+static void
+S_set_haseval(pTHX)
+{
+    PADOFFSET i = 1;
+    PL_cv_has_eval = 1;
+    /* Any pad names in scope are potentially lvalues.  */
+    for (; i < PadnamelistMAXNAMED(PL_comppad_name); i++) {
+        PADNAME *pn = PAD_COMPNAME_SV(i);
+        if (!pn || !PadnameLEN(pn))
+            continue;
+        if (PadnameOUTER(pn) || PadnameIN_SCOPE(pn, PL_cop_seqmax))
+            S_mark_padname_lvalue(aTHX_ pn);
+    }
+}
 
-                if (merge_with_range_below && merge_with_range_above) {
+/* Given some sort of match op o, and an expression expr containing a
+ * pattern, either compile expr into a regex and attach it to o (if it's
+ * constant), or convert expr into a runtime regcomp op sequence (if it's
+ * not)
+ *
+ * Flags currently has 2 bits of meaning:
+ * 1: isreg indicates that the pattern is part of a regex construct, eg
+ *      $x =~ /pattern/ or split /pattern/, as opposed to $x =~ $pattern or
+ *      split "pattern", which aren't. In the former case, expr will be a list
+ *      if the pattern contains more than one term (eg /a$b/).
+ * 2: The pattern is for a split.
+ *
+ * When the pattern has been compiled within a new anon CV (for
+ * qr/(?{...})/ ), then floor indicates the savestack level just before
+ * the new sub was created
+ *
+ * tr/// is also handled.
+ */
 
-                    /* Here the new chunk looks like M => m, ... Q => q; and
-                     * the range above is like R => r, ....  Thus, the [i-1]
-                     * and [i+1] ranges should be seamlessly melded so the
-                     * result looks like
-                     *
-                     * [i-1]    J   j   # J-T => j-t
-                     * [i]      U   y   # U => y, V => y+1, ...
-                     * ...
-                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
-                     */
-                    Move(t_array + i + 2, t_array + i, len - i - 2, UV);
-                    Move(r_map   + i + 2, r_map   + i, len - i - 2, UV);
-                    len -= 2;
-                    invlist_set_len(t_invlist,
-                                    len,
-                                    *(get_invlist_offset_addr(t_invlist)));
-                }
-                else if (merge_with_range_below) {
+OP *
+Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor)
+{
+    PMOP *pm;
+    LOGOP *rcop;
+    I32 repl_has_vars = 0;
+    bool is_trans = (o->op_type == OP_TRANS || o->op_type == OP_TRANSR);
+    bool is_compiletime;
+    bool has_code;
+    bool isreg    = cBOOL(flags & 1);
+    bool is_split = cBOOL(flags & 2);
 
-                    /* Here the new chunk looks like M => m, .... But either
-                     * (or both) it doesn't extend all the way up through Q; or
-                     * the range above doesn't start with R => r. */
-                    if (! adjacent_to_range_above) {
+    PERL_ARGS_ASSERT_PMRUNTIME;
 
-                        /* In the first case, let's say the new chunk extends
-                         * through O.  We then want:
-                         *
-                         * [i-1]    J   j   # J-O => j-o
-                         * [i]      P  -1   # P => -1, Q => -1
-                         * [i+1]    R   x   # R => x, S => x+1, T => x+2
-                         * [i+2]    U   y   # U => y, V => y+1, ...
-                         * ...
-                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
-                         *                                            infinity
-                         */
-                        t_array[i] = t_cp_end + 1;
-                        r_map[i] = TR_UNLISTED;
-                    }
-                    else { /* Adjoins the range above, but can't merge with it
-                              (because 'x' is not the next map after q) */
-                        /*
-                         * [i-1]    J   j   # J-Q => j-q
-                         * [i]      R   x   # R => x, S => x+1, T => x+2
-                         * [i+1]    U   y   # U => y, V => y+1, ...
-                         * ...
-                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
-                         *                                          infinity
-                         */
-
-                        Move(t_array + i + 1, t_array + i, len - i - 1, UV);
-                        Move(r_map + i + 1, r_map + i, len - i - 1, UV);
-                        len--;
-                        invlist_set_len(t_invlist, len,
-                                        *(get_invlist_offset_addr(t_invlist)));
-                    }
-                }
-                else if (merge_with_range_above) {
-
-                    /* Here the new chunk ends with Q => q, and the range above
-                     * must start with R => r, so the two can be merged. But
-                     * either (or both) the new chunk doesn't extend all the
-                     * way down to M; or the mapping of the final code point
-                     * range below isn't m */
-                    if (! adjacent_to_range_below) {
-
-                        /* In the first case, let's assume the new chunk starts
-                         * with P => p.  Then, because it's merge-able with the
-                         * range above, that range must be R => r.  We want:
-                         *
-                         * [i-1]    J   j   # J-L => j-l
-                         * [i]      M  -1   # M => -1, N => -1
-                         * [i+1]    P   p   # P-T => p-t
-                         * [i+2]    U   y   # U => y, V => y+1, ...
-                         * ...
-                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
-                         *                                          infinity
-                         */
-                        t_array[i+1] = t_cp;
-                        r_map[i+1] = r_cp;
-                    }
-                    else { /* Adjoins the range below, but can't merge with it
-                            */
-                        /*
-                         * [i-1]    J   j   # J-L => j-l
-                         * [i]      M   x   # M-T => x-5 .. x+2
-                         * [i+1]    U   y   # U => y, V => y+1, ...
-                         * ...
-                         * [-1]     Z  -1   # Z => default; as do Z+1, ...
-                         *                                          infinity
-                         */
-                        Move(t_array + i + 1, t_array + i, len - i - 1, UV);
-                        Move(r_map   + i + 1, r_map   + i, len - i - 1, UV);
-                        len--;
-                        t_array[i] = t_cp;
-                        r_map[i] = r_cp;
-                        invlist_set_len(t_invlist, len,
-                                        *(get_invlist_offset_addr(t_invlist)));
-                    }
-                }
-                else if (adjacent_to_range_below && adjacent_to_range_above) {
-                    /* The new chunk completely fills the gap between the
-                     * ranges on either side, but can't merge with either of
-                     * them.
-                     *
-                     * [i-1]    J   j   # J-L => j-l
-                     * [i]      M   z   # M => z, N => z+1 ... Q => z+4
-                     * [i+1]    R   x   # R => x, S => x+1, T => x+2
-                     * [i+2]    U   y   # U => y, V => y+1, ...
-                     * ...
-                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
-                     */
-                    r_map[i] = r_cp;
-                }
-                else if (adjacent_to_range_below) {
-                    /* The new chunk adjoins the range below, but not the range
-                     * above, and can't merge.  Let's assume the chunk ends at
-                     * O.
-                     *
-                     * [i-1]    J   j   # J-L => j-l
-                     * [i]      M   z   # M => z, N => z+1, O => z+2
-                     * [i+1]    P   -1  # P => -1, Q => -1
-                     * [i+2]    R   x   # R => x, S => x+1, T => x+2
-                     * [i+3]    U   y   # U => y, V => y+1, ...
-                     * ...
-                     * [-w]     Z  -1   # Z => default; as do Z+1, ... infinity
-                     */
-                    invlist_extend(t_invlist, len + 1);
-                    t_array = invlist_array(t_invlist);
-                    Renew(r_map, len + 1, UV);
+    if (is_trans) {
+        return pmtrans(o, expr, repl);
+    }
 
-                    Move(t_array + i + 1, t_array + i + 2, len - i - 1, UV);
-                    Move(r_map + i + 1,   r_map   + i + 2, len - i - 1, UV);
-                    r_map[i] = r_cp;
-                    t_array[i+1] = t_cp_end + 1;
-                    r_map[i+1] = TR_UNLISTED;
-                    len++;
-                    invlist_set_len(t_invlist, len,
-                                    *(get_invlist_offset_addr(t_invlist)));
-                }
-                else if (adjacent_to_range_above) {
-                    /* The new chunk adjoins the range above, but not the range
-                     * below, and can't merge.  Let's assume the new chunk
-                     * starts at O
-                     *
-                     * [i-1]    J   j   # J-L => j-l
-                     * [i]      M  -1   # M => default, N => default
-                     * [i+1]    O   z   # O => z, P => z+1, Q => z+2
-                     * [i+2]    R   x   # R => x, S => x+1, T => x+2
-                     * [i+3]    U   y   # U => y, V => y+1, ...
-                     * ...
-                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
-                     */
-                    invlist_extend(t_invlist, len + 1);
-                    t_array = invlist_array(t_invlist);
-                    Renew(r_map, len + 1, UV);
+    /* find whether we have any runtime or code elements;
+     * at the same time, temporarily set the op_next of each DO block;
+     * then when we LINKLIST, this will cause the DO blocks to be excluded
+     * from the op_next chain (and from having LINKLIST recursively
+     * applied to them). We fix up the DOs specially later */
 
-                    Move(t_array + i + 1, t_array + i + 2, len - i - 1, UV);
-                    Move(r_map   + i + 1, r_map   + i + 2, len - i - 1, UV);
-                    t_array[i+1] = t_cp;
-                    r_map[i+1] = r_cp;
-                    len++;
-                    invlist_set_len(t_invlist, len,
-                                    *(get_invlist_offset_addr(t_invlist)));
+    is_compiletime = 1;
+    has_code = 0;
+    if (expr->op_type == OP_LIST) {
+        OP *child;
+        for (child = cLISTOPx(expr)->op_first; child; child = OpSIBLING(child)) {
+            if (child->op_type == OP_NULL && (child->op_flags & OPf_SPECIAL)) {
+                has_code = 1;
+                assert(!child->op_next);
+                if (UNLIKELY(!OpHAS_SIBLING(child))) {
+                    assert(PL_parser && PL_parser->error_count);
+                    /* This can happen with qr/ (?{(^{})/.  Just fake up
+                       the op we were expecting to see, to avoid crashing
+                       elsewhere.  */
+                    op_sibling_splice(expr, child, 0,
+                              newSVOP(OP_CONST, 0, &PL_sv_no));
                 }
-                else {
-                    /* The new chunk adjoins neither the range above, nor the
-                     * range below.  Lets assume it is N..P => n..p
-                     *
-                     * [i-1]    J   j   # J-L => j-l
-                     * [i]      M  -1   # M => default
-                     * [i+1]    N   n   # N..P => n..p
-                     * [i+2]    Q  -1   # Q => default
-                     * [i+3]    R   x   # R => x, S => x+1, T => x+2
-                     * [i+4]    U   y   # U => y, V => y+1, ...
-                     * ...
-                     * [-1]     Z  -1   # Z => default; as do Z+1, ... infinity
-                     */
-
-                    DEBUG_yv(PerlIO_printf(Perl_debug_log,
-                                        "Before fixing up: len=%d, i=%d\n",
-                                        (int) len, (int) i));
-                    DEBUG_yv(invmap_dump(t_invlist, r_map));
-
-                    invlist_extend(t_invlist, len + 2);
-                    t_array = invlist_array(t_invlist);
-                    Renew(r_map, len + 2, UV);
-
-                    Move(t_array + i + 1,
-                         t_array + i + 2 + 1, len - i - (2 - 1), UV);
-                    Move(r_map   + i + 1,
-                         r_map   + i + 2 + 1, len - i - (2 - 1), UV);
+                child->op_next = OpSIBLING(child);
+            }
+            else if (child->op_type != OP_CONST && child->op_type != OP_PUSHMARK)
+            is_compiletime = 0;
+        }
+    }
+    else if (expr->op_type != OP_CONST)
+        is_compiletime = 0;
 
-                    len += 2;
-                    invlist_set_len(t_invlist, len,
-                                    *(get_invlist_offset_addr(t_invlist)));
+    LINKLIST(expr);
 
-                    t_array[i+1] = t_cp;
-                    r_map[i+1] = r_cp;
+    /* fix up DO blocks; treat each one as a separate little sub;
+     * also, mark any arrays as LIST/REF */
 
-                    t_array[i+2] = t_cp_end + 1;
-                    r_map[i+2] = TR_UNLISTED;
-                }
-                DEBUG_yv(PerlIO_printf(Perl_debug_log,
-                          "After iteration: span=%" UVuf ", t_range_count=%"
-                          UVuf " r_range_count=%" UVuf "\n",
-                          span, t_range_count, r_range_count));
-                DEBUG_yv(invmap_dump(t_invlist, r_map));
-            } /* End of this chunk needs to be processed */
+    if (expr->op_type == OP_LIST) {
+        OP *child;
+        for (child = cLISTOPx(expr)->op_first; child; child = OpSIBLING(child)) {
 
-            /* Done with this chunk. */
-            t_cp += span;
-            if (t_cp >= IV_MAX) {
-                break;
+            if (child->op_type == OP_PADAV || child->op_type == OP_RV2AV) {
+                assert( !(child->op_flags  & OPf_WANT));
+                /* push the array rather than its contents. The regex
+                 * engine will retrieve and join the elements later */
+                child->op_flags |= (OPf_WANT_LIST | OPf_REF);
+                continue;
             }
-            t_range_count -= span;
-            if (r_cp != TR_SPECIAL_HANDLING) {
-                r_cp += span;
-                r_range_count -= span;
+
+            if (!(child->op_type == OP_NULL && (child->op_flags & OPf_SPECIAL)))
+                continue;
+            child->op_next = NULL; /* undo temporary hack from above */
+            scalar(child);
+            LINKLIST(child);
+            if (cLISTOPx(child)->op_first->op_type == OP_LEAVE) {
+                LISTOP *leaveop = cLISTOPx(cLISTOPx(child)->op_first);
+                /* skip ENTER */
+                assert(leaveop->op_first->op_type == OP_ENTER);
+                assert(OpHAS_SIBLING(leaveop->op_first));
+                child->op_next = OpSIBLING(leaveop->op_first);
+                /* skip leave */
+                assert(leaveop->op_flags & OPf_KIDS);
+                assert(leaveop->op_last->op_next == (OP*)leaveop);
+                leaveop->op_next = NULL; /* stop on last op */
+                op_null((OP*)leaveop);
             }
             else {
-                r_range_count = 0;
+                /* skip SCOPE */
+                OP *scope = cLISTOPx(child)->op_first;
+                assert(scope->op_type == OP_SCOPE);
+                assert(scope->op_flags & OPf_KIDS);
+                scope->op_next = NULL; /* stop on last op */
+                op_null(scope);
             }
 
-        } /* End of loop through the search list */
+            /* XXX optimize_optree() must be called on o before
+             * CALL_PEEP(), as currently S_maybe_multiconcat() can't
+             * currently cope with a peephole-optimised optree.
+             * Calling optimize_optree() here ensures that condition
+             * is met, but may mean optimize_optree() is applied
+             * to the same optree later (where hopefully it won't do any
+             * harm as it can't convert an op to multiconcat if it's
+             * already been converted */
+            optimize_optree(child);
 
-        /* We don't need an exact count, but we do need to know if there is
-         * anything left over in the replacement list.  So, just assume it's
-         * one byte per character */
-        if (rend > r) {
-            r_count++;
-        }
-    } /* End of passes */
-
-    SvREFCNT_dec(inverted_tstr);
-
-    DEBUG_y(PerlIO_printf(Perl_debug_log, "After everything: \n"));
-    DEBUG_y(invmap_dump(t_invlist, r_map));
-
-    /* We now have normalized the input into an inversion map.
-     *
-     * See if the lhs and rhs are equivalent.  If so, this tr/// is a no-op
-     * except for the count, and streamlined runtime code can be used */
-    if (!del && !squash) {
-
-        /* They are identical if they point to same address, or if everything
-         * maps to UNLISTED or to itself.  This catches things that not looking
-         * at the normalized inversion map doesn't catch, like tr/aa/ab/ or
-         * tr/\x{100}-\x{104}/\x{100}-\x{102}\x{103}-\x{104}  */
-        if (r0 != t0) {
-            for (i = 0; i < len; i++) {
-                if (r_map[i] != TR_UNLISTED && r_map[i] != t_array[i]) {
-                    goto done_identical_check;
-                }
-            }
+            /* have to peep the DOs individually as we've removed it from
+             * the op_next chain */
+            CALL_PEEP(child);
+            op_prune_chain_head(&(child->op_next));
+            if (is_compiletime)
+                /* runtime finalizes as part of finalizing whole tree */
+                finalize_optree(child);
         }
-
-        /* Here have gone through entire list, and didn't find any
-         * non-identical mappings */
-        o->op_private |= OPpTRANS_IDENTICAL;
-
-      done_identical_check: ;
+    }
+    else if (expr->op_type == OP_PADAV || expr->op_type == OP_RV2AV) {
+        assert( !(expr->op_flags  & OPf_WANT));
+        /* push the array rather than its contents. The regex
+         * engine will retrieve and join the elements later */
+        expr->op_flags |= (OPf_WANT_LIST | OPf_REF);
     }
 
-    t_array = invlist_array(t_invlist);
-
-    /* If has components above 255, we generally need to use the inversion map
-     * implementation */
-    if (   can_force_utf8
-        || (   len > 0
-            && t_array[len-1] > 255
-                 /* If the final range is 0x100-INFINITY and is a special
-                  * mapping, the table implementation can handle it */
-            && ! (   t_array[len-1] == 256
-                  && (   r_map[len-1] == TR_UNLISTED
-                      || r_map[len-1] == TR_SPECIAL_HANDLING))))
-    {
-        SV* r_map_sv;
+    PL_hints |= HINT_BLOCK_SCOPE;
+    pm = cPMOPo;
+    assert(floor==0 || (pm->op_pmflags & PMf_HAS_CV));
 
-        /* A UTF-8 op is generated, indicated by this flag.  This op is an
-         * sv_op */
-        o->op_private |= OPpTRANS_USE_SVOP;
+    if (is_compiletime) {
+        U32 rx_flags = pm->op_pmflags & RXf_PMf_COMPILETIME;
+        regexp_engine const *eng = current_re_engine();
 
-        if (can_force_utf8) {
-            o->op_private |= OPpTRANS_CAN_FORCE_UTF8;
+        if (is_split) {
+            /* make engine handle split ' ' specially */
+            pm->op_pmflags |= PMf_SPLIT;
+            rx_flags |= RXf_SPLIT;
         }
 
-        /* The inversion map is pushed; first the list. */
-        invmap = MUTABLE_AV(newAV());
-        av_push(invmap, t_invlist);
-
-        /* 2nd is the mapping */
-        r_map_sv = newSVpvn((char *) r_map, len * sizeof(UV));
-        av_push(invmap, r_map_sv);
-
-        /* 3rd is the max possible expansion factor */
-        av_push(invmap, newSVnv(max_expansion));
-
-        /* Characters that are in the search list, but not in the replacement
-         * list are mapped to the final character in the replacement list */
-        if (! del && r_count < t_count) {
-            av_push(invmap, newSVuv(final_map));
-        }
+        if (!has_code || !eng->op_comp) {
+            /* compile-time simple constant pattern */
 
-#ifdef USE_ITHREADS
-        cPADOPo->op_padix = pad_alloc(OP_TRANS, SVf_READONLY);
-        SvREFCNT_dec(PAD_SVl(cPADOPo->op_padix));
-        PAD_SETSV(cPADOPo->op_padix, (SV *) invmap);
-        SvPADTMP_on(invmap);
-        SvREADONLY_on(invmap);
-#else
-        cSVOPo->op_sv = (SV *) invmap;
+            if ((pm->op_pmflags & PMf_HAS_CV) && !has_code) {
+                /* whoops! we guessed that a qr// had a code block, but we
+                 * were wrong (e.g. /[(?{}]/ ). Throw away the PL_compcv
+                 * that isn't required now. Note that we have to be pretty
+                 * confident that nothing used that CV's pad while the
+                 * regex was parsed, except maybe op targets for \Q etc.
+                 * If there were any op targets, though, they should have
+                 * been stolen by constant folding.
+                 */
+#ifdef DEBUGGING
+                SSize_t i = 0;
+                assert(PadnamelistMAXNAMED(PL_comppad_name) == 0);
+                while (++i <= AvFILLp(PL_comppad)) {
+#  ifdef USE_PAD_RESET
+                    /* under USE_PAD_RESET, pad swipe replaces a swiped
+                     * folded constant with a fresh padtmp */
+                    assert(!PL_curpad[i] || SvPADTMP(PL_curpad[i]));
+#  else
+                    assert(!PL_curpad[i]);
+#  endif
+                }
 #endif
+                /* This LEAVE_SCOPE will restore PL_compcv to point to the
+                 * outer CV (the one whose slab holds the pm op). The
+                 * inner CV (which holds expr) will be freed later, once
+                 * all the entries on the parse stack have been popped on
+                 * return from this function. Which is why its safe to
+                 * call op_free(expr) below.
+                 */
+                LEAVE_SCOPE(floor);
+                pm->op_pmflags &= ~PMf_HAS_CV;
+            }
 
-    }
-    else {
-        OPtrans_map *tbl;
-        unsigned short i;
-
-        /* The OPtrans_map struct already contains one slot; hence the -1. */
-        SSize_t struct_size = sizeof(OPtrans_map)
-                            + (256 - 1 + 1)*sizeof(short);
-
-        /* Non-utf8 case: set o->op_pv to point to a simple 256+ entry lookup
-        * table. Entries with the value TR_UNMAPPED indicate chars not to be
-        * translated, while TR_DELETE indicates a search char without a
-        * corresponding replacement char under /d.
-        *
-        * In addition, an extra slot at the end is used to store the final
-        * repeating char, or TR_R_EMPTY under an empty replacement list, or
-        * TR_DELETE under /d; which makes the runtime code easier.
-        */
-
-        /* Indicate this is an op_pv */
-        o->op_private &= ~OPpTRANS_USE_SVOP;
-
-        tbl = (OPtrans_map*)PerlMemShared_calloc(struct_size, 1);
-        tbl->size = 256;
-        cPVOPo->op_pv = (char*)tbl;
+            /* Skip compiling if parser found an error for this pattern */
+            if (pm->op_pmflags & PMf_HAS_ERROR) {
+                return o;
+            }
 
-        for (i = 0; i < len; i++) {
-            STATIC_ASSERT_DECL(TR_SPECIAL_HANDLING == TR_DELETE);
-            short upper = i >= len - 1 ? 256 : (short) t_array[i+1];
-            short to = (short) r_map[i];
-            short j;
-            bool do_increment = TRUE;
+            PM_SETRE(pm,
+                eng->op_comp
+                    ? eng->op_comp(aTHX_ NULL, 0, expr, eng, NULL, NULL,
+                                        rx_flags, pm->op_pmflags)
+                    : Perl_re_op_compile(aTHX_ NULL, 0, expr, eng, NULL, NULL,
+                                        rx_flags, pm->op_pmflags)
+            );
+            op_free(expr);
+        }
+        else {
+            /* compile-time pattern that includes literal code blocks */
 
-            /* Any code points above our limit should be irrelevant */
-            if (t_array[i] >= tbl->size) break;
+            REGEXP* re;
 
-            /* Set up the map */
-            if (to == (short) TR_SPECIAL_HANDLING && ! del) {
-                to = (short) final_map;
-                do_increment = FALSE;
-            }
-            else if (to < 0) {
-                do_increment = FALSE;
+            /* Skip compiling if parser found an error for this pattern */
+            if (pm->op_pmflags & PMf_HAS_ERROR) {
+                return o;
             }
 
-            /* Create a map for everything in this range.  The value increases
-             * except for the special cases */
-            for (j = (short) t_array[i]; j < upper; j++) {
-                tbl->map[j] = to;
-                if (do_increment) to++;
-            }
-        }
+            re = eng->op_comp(aTHX_ NULL, 0, expr, eng, NULL, NULL,
+                        rx_flags,
+                        (pm->op_pmflags |
+                            ((PL_hints & HINT_RE_EVAL) ? PMf_USE_RE_EVAL : 0))
+                    );
+            PM_SETRE(pm, re);
+            if (pm->op_pmflags & PMf_HAS_CV) {
+                CV *cv;
+                /* this QR op (and the anon sub we embed it in) is never
+                 * actually executed. It's just a placeholder where we can
+                 * squirrel away expr in op_code_list without the peephole
+                 * optimiser etc processing it for a second time */
+                OP *qr = newPMOP(OP_QR, 0);
+                cPMOPx(qr)->op_code_list = expr;
 
-        tbl->map[tbl->size] = del
-                              ? (short) TR_DELETE
-                              : (short) rlen
-                                ? (short) final_map
-                                : (short) TR_R_EMPTY;
-        DEBUG_y(PerlIO_printf(Perl_debug_log,"%s: %d\n", __FILE__, __LINE__));
-        for (i = 0; i < tbl->size; i++) {
-            if (tbl->map[i] < 0) {
-                DEBUG_y(PerlIO_printf(Perl_debug_log," %02x=>%d",
-                                                (unsigned) i, tbl->map[i]));
+                /* handle the implicit sub{} wrapped round the qr/(?{..})/ */
+                SvREFCNT_inc_simple_void(PL_compcv);
+                cv = newATTRSUB(floor, 0, NULL, NULL, qr);
+                ReANY(re)->qr_anoncv = cv;
+
+                /* attach the anon CV to the pad so that
+                 * pad_fixup_inner_anons() can find it */
+                (void)pad_add_anon(cv, o->op_type);
+                SvREFCNT_inc_simple_void(cv);
             }
             else {
-                DEBUG_y(PerlIO_printf(Perl_debug_log," %02x=>%02x",
-                                                (unsigned) i, tbl->map[i]));
-            }
-            if ((i+1) % 8 == 0 || i + 1 == (short) tbl->size) {
-                DEBUG_y(PerlIO_printf(Perl_debug_log,"\n"));
+                pm->op_code_list = expr;
             }
         }
-        DEBUG_y(PerlIO_printf(Perl_debug_log,"Final map 0x%x=>%02x\n",
-                                (unsigned) tbl->size, tbl->map[tbl->size]));
+    }
+    else {
+        /* runtime pattern: build chain of regcomp etc ops */
+        bool reglist;
+        PADOFFSET cv_targ = 0;
 
-        SvREFCNT_dec(t_invlist);
+        reglist = isreg && expr->op_type == OP_LIST;
+        if (reglist)
+            op_null(expr);
 
-#if 0   /* code that added excess above-255 chars at the end of the table, in
-           case we ever want to not use the inversion map implementation for
-           this */
+        if (has_code) {
+            pm->op_code_list = expr;
+            /* don't free op_code_list; its ops are embedded elsewhere too */
+            pm->op_pmflags |= PMf_CODELIST_PRIVATE;
+        }
 
-        ASSUME(j <= rlen);
-        excess = rlen - j;
+        if (is_split)
+            /* make engine handle split ' ' specially */
+            pm->op_pmflags |= PMf_SPLIT;
 
-        if (excess) {
-            /* More replacement chars than search chars:
-             * store excess replacement chars at end of main table.
-             */
+        /* the OP_REGCMAYBE is a placeholder in the non-threaded case
+         * to allow its op_next to be pointed past the regcomp and
+         * preceding stacking ops;
+         * OP_REGCRESET is there to reset taint before executing the
+         * stacking ops */
+        if (pm->op_pmflags & PMf_KEEP || TAINTING_get)
+            expr = newUNOP((TAINTING_get ? OP_REGCRESET : OP_REGCMAYBE),0,expr);
 
-            struct_size += excess;
-            tbl = (OPtrans_map*)PerlMemShared_realloc(tbl,
-                        struct_size + excess * sizeof(short));
-            tbl->size += excess;
-            cPVOPo->op_pv = (char*)tbl;
+        if (pm->op_pmflags & PMf_HAS_CV) {
+            /* we have a runtime qr with literal code. This means
+             * that the qr// has been wrapped in a new CV, which
+             * means that runtime consts, vars etc will have been compiled
+             * against a new pad. So... we need to execute those ops
+             * within the environment of the new CV. So wrap them in a call
+             * to a new anon sub. i.e. for
+             *
+             *     qr/a$b(?{...})/,
+             *
+             * we build an anon sub that looks like
+             *
+             *     sub { "a", $b, '(?{...})' }
+             *
+             * and call it, passing the returned list to regcomp.
+             * Or to put it another way, the list of ops that get executed
+             * are:
+             *
+             *     normal              PMf_HAS_CV
+             *     ------              -------------------
+             *                         pushmark (for regcomp)
+             *                         pushmark (for entersub)
+             *                         anoncode
+             *                         entersub
+             *     regcreset                  regcreset
+             *     pushmark                   pushmark
+             *     const("a")                 const("a")
+             *     gvsv(b)                    gvsv(b)
+             *     const("(?{...})")          const("(?{...})")
+             *                                leavesub
+             *     regcomp             regcomp
+             */
 
-            for (i = 0; i < excess; i++)
-                tbl->map[i + 256] = r[j+i];
+            SvREFCNT_inc_simple_void(PL_compcv);
+            CvLVALUE_on(PL_compcv);
+            /* these lines are just an unrolled newANONATTRSUB */
+            expr = newSVOP(OP_ANONCODE, OPf_REF,
+                    MUTABLE_SV(newATTRSUB(floor, 0, NULL, NULL, expr)));
+            cv_targ = expr->op_targ;
+
+            expr = list(op_force_list(newUNOP(OP_ENTERSUB, 0, scalar(expr))));
+        }
+
+        rcop = alloc_LOGOP(OP_REGCOMP, scalar(expr), o);
+        rcop->op_flags |=  ((PL_hints & HINT_RE_EVAL) ? OPf_SPECIAL : 0)
+                           | (reglist ? OPf_STACKED : 0);
+        rcop->op_targ = cv_targ;
+
+        /* /$x/ may cause an eval, since $x might be qr/(?{..})/  */
+        if (PL_hints & HINT_RE_EVAL)
+            S_set_haseval(aTHX);
+
+        /* establish postfix order */
+        if (expr->op_type == OP_REGCRESET || expr->op_type == OP_REGCMAYBE) {
+            LINKLIST(expr);
+            rcop->op_next = expr;
+            cUNOPx(expr)->op_first->op_next = (OP*)rcop;
         }
         else {
-            /* no more replacement chars than search chars */
+            rcop->op_next = LINKLIST(expr);
+            expr->op_next = (OP*)rcop;
         }
-#endif
 
+        op_prepend_elem(o->op_type, scalar((OP*)rcop), o);
     }
 
-    DEBUG_y(PerlIO_printf(Perl_debug_log,
-            "/d=%d, /s=%d, /c=%d, identical=%d, grows=%d,"
-            " use_svop=%d, can_force_utf8=%d,\nexpansion=%" NVgf "\n",
-            del, squash, complement,
-            cBOOL(o->op_private & OPpTRANS_IDENTICAL),
-            cBOOL(o->op_private & OPpTRANS_USE_SVOP),
-            cBOOL(o->op_private & OPpTRANS_GROWS),
-            cBOOL(o->op_private & OPpTRANS_CAN_FORCE_UTF8),
-            max_expansion));
+    if (repl) {
+        OP *curop = repl;
+        bool konst;
+        /* If we are looking at s//.../e with a single statement, get past
+           the implicit do{}. */
+        if (curop->op_type == OP_NULL && curop->op_flags & OPf_KIDS
+             && cUNOPx(curop)->op_first->op_type == OP_SCOPE
+             && cUNOPx(curop)->op_first->op_flags & OPf_KIDS)
+         {
+            OP *sib;
+            OP *kid = cUNOPx(cUNOPx(curop)->op_first)->op_first;
+            if (kid->op_type == OP_NULL && (sib = OpSIBLING(kid))
+             && !OpHAS_SIBLING(sib))
+                curop = sib;
+        }
+        if (curop->op_type == OP_CONST)
+            konst = TRUE;
+        else if (( (curop->op_type == OP_RV2SV ||
+                    curop->op_type == OP_RV2AV ||
+                    curop->op_type == OP_RV2HV ||
+                    curop->op_type == OP_RV2GV)
+                   && cUNOPx(curop)->op_first
+                   && cUNOPx(curop)->op_first->op_type == OP_GV )
+                || curop->op_type == OP_PADSV
+                || curop->op_type == OP_PADAV
+                || curop->op_type == OP_PADHV
+                || curop->op_type == OP_PADANY) {
+            repl_has_vars = 1;
+            konst = TRUE;
+        }
+        else konst = FALSE;
+        if (konst
+            && !(repl_has_vars
+                 && (!PM_GETRE(pm)
+                     || !RX_PRELEN(PM_GETRE(pm))
+                     || RX_EXTFLAGS(PM_GETRE(pm)) & RXf_EVAL_SEEN)))
+        {
+            pm->op_pmflags |= PMf_CONST;	/* const for long enough */
+            op_prepend_elem(o->op_type, scalar(repl), o);
+        }
+        else {
+            rcop = alloc_LOGOP(OP_SUBSTCONT, scalar(repl), o);
+            rcop->op_private = 1;
 
-    Safefree(r_map);
+            /* establish postfix order */
+            rcop->op_next = LINKLIST(repl);
+            repl->op_next = (OP*)rcop;
 
-    if(del && rlen != 0 && r_count == t_count) {
-        Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "Useless use of /d modifier in transliteration operator");
-    } else if(r_count > t_count) {
-        Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "Replacement list is longer than search list");
+            pm->op_pmreplrootu.op_pmreplroot = scalar((OP*)rcop);
+            assert(!(pm->op_pmflags & PMf_ONCE));
+            pm->op_pmstashstartu.op_pmreplstart = LINKLIST(rcop);
+            rcop->op_next = 0;
+        }
     }
 
-    op_free(expr);
-    op_free(repl);
-
-    return o;
+    return (OP*)pm;
 }
 
-
 /*
-=for apidoc newPMOP
+=for apidoc newSVOP
 
-Constructs, checks, and returns an op of any pattern matching type.
-C<type> is the opcode.  C<flags> gives the eight bits of C<op_flags>
-and, shifted up eight bits, the eight bits of C<op_private>.
+Constructs, checks, and returns an op of any type that involves an
+embedded SV.  C<type> is the opcode.  C<flags> gives the eight bits
+of C<op_flags>.  C<sv> gives the SV to embed in the op; this function
+takes ownership of one reference to it.
 
 =cut
 */
 
 OP *
-Perl_newPMOP(pTHX_ I32 type, I32 flags)
+Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
 {
-    PMOP *pmop;
+    SVOP *svop;
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_PMOP
+    PERL_ARGS_ASSERT_NEWSVOP;
+
+    /* OP_RUNCV is allowed specially so rpeep has room to convert it into an
+     * OP_CONST */
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_SVOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_PVOP_OR_SVOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
+        || type == OP_RUNCV
         || type == OP_CUSTOM);
 
-    NewOp(1101, pmop, 1, PMOP);
-    OpTYPE_set(pmop, type);
-    pmop->op_flags = (U8)flags;
-    pmop->op_private = (U8)(0 | (flags >> 8));
+    NewOp(1101, svop, 1, SVOP);
+    OpTYPE_set(svop, type);
+    svop->op_sv = sv;
+    svop->op_next = (OP*)svop;
+    svop->op_flags = (U8)flags;
+    svop->op_private = (U8)(0 | (flags >> 8));
     if (PL_opargs[type] & OA_RETSCALAR)
-        scalar((OP *)pmop);
+        scalar((OP*)svop);
+    if (PL_opargs[type] & OA_TARGET)
+        svop->op_targ = pad_alloc(type, SVs_PADTMP);
+    return CHECKOP(type, svop);
+}
 
-    if (PL_hints & HINT_RE_TAINT)
-        pmop->op_pmflags |= PMf_RETAINT;
-#ifdef USE_LOCALE_CTYPE
-    if (IN_LC_COMPILETIME(LC_CTYPE)) {
-        set_regex_charset(&(pmop->op_pmflags), REGEX_LOCALE_CHARSET);
-    }
-    else
-#endif
-         if (IN_UNI_8_BIT) {
-        set_regex_charset(&(pmop->op_pmflags), REGEX_UNICODE_CHARSET);
-    }
-    if (PL_hints & HINT_RE_FLAGS) {
-        SV *reflags = Perl_refcounted_he_fetch_pvn(aTHX_
-         PL_compiling.cop_hints_hash, STR_WITH_LEN("reflags"), 0, 0
-        );
-        if (reflags && SvOK(reflags)) pmop->op_pmflags |= SvIV(reflags);
-        reflags = Perl_refcounted_he_fetch_pvn(aTHX_
-         PL_compiling.cop_hints_hash, STR_WITH_LEN("reflags_charset"), 0, 0
-        );
-        if (reflags && SvOK(reflags)) {
-            set_regex_charset(&(pmop->op_pmflags), (regex_charset)SvIV(reflags));
-        }
-    }
+/*
+=for apidoc newDEFSVOP
+
+Constructs and returns an op to access C<$_>.
+
+=cut
+*/
 
+OP *
+Perl_newDEFSVOP(pTHX)
+{
+        return newSVREF(newGVOP(OP_GV, 0, PL_defgv));
+}
 
 #ifdef USE_ITHREADS
-    assert(SvPOK(PL_regex_pad[0]));
-    if (SvCUR(PL_regex_pad[0])) {
-        /* Pop off the "packed" IV from the end.  */
-        SV *const repointer_list = PL_regex_pad[0];
-        const char *p = SvEND(repointer_list) - sizeof(IV);
-        const IV offset = *((IV*)p);
 
-        assert(SvCUR(repointer_list) % sizeof(IV) == 0);
+/*
+=for apidoc newPADOP
 
-        SvEND_set(repointer_list, p);
+Constructs, checks, and returns an op of any type that involves a
+reference to a pad element.  C<type> is the opcode.  C<flags> gives the
+eight bits of C<op_flags>.  A pad slot is automatically allocated, and
+is populated with C<sv>; this function takes ownership of one reference
+to it.
 
-        pmop->op_pmoffset = offset;
-        /* This slot should be free, so assert this:  */
-        assert(PL_regex_pad[offset] == &PL_sv_undef);
-    } else {
-        SV * const repointer = &PL_sv_undef;
-        av_push(PL_regex_padav, repointer);
-        pmop->op_pmoffset = av_top_index(PL_regex_padav);
-        PL_regex_pad = AvARRAY(PL_regex_padav);
-    }
-#endif
+This function only exists if Perl has been compiled to use ithreads.
 
-    return CHECKOP(type, pmop);
-}
+=cut
+*/
 
-static void
-S_set_haseval(pTHX)
+OP *
+Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
 {
-    PADOFFSET i = 1;
-    PL_cv_has_eval = 1;
-    /* Any pad names in scope are potentially lvalues.  */
-    for (; i < PadnamelistMAXNAMED(PL_comppad_name); i++) {
-        PADNAME *pn = PAD_COMPNAME_SV(i);
-        if (!pn || !PadnameLEN(pn))
-            continue;
-        if (PadnameOUTER(pn) || PadnameIN_SCOPE(pn, PL_cop_seqmax))
-            S_mark_padname_lvalue(aTHX_ pn);
-    }
-}
+    PADOP *padop;
 
-/* Given some sort of match op o, and an expression expr containing a
- * pattern, either compile expr into a regex and attach it to o (if it's
- * constant), or convert expr into a runtime regcomp op sequence (if it's
- * not)
- *
- * Flags currently has 2 bits of meaning:
- * 1: isreg indicates that the pattern is part of a regex construct, eg
- *      $x =~ /pattern/ or split /pattern/, as opposed to $x =~ $pattern or
- *      split "pattern", which aren't. In the former case, expr will be a list
- *      if the pattern contains more than one term (eg /a$b/).
- * 2: The pattern is for a split.
- *
- * When the pattern has been compiled within a new anon CV (for
- * qr/(?{...})/ ), then floor indicates the savestack level just before
- * the new sub was created
- *
- * tr/// is also handled.
- */
+    PERL_ARGS_ASSERT_NEWPADOP;
 
-OP *
-Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor)
-{
-    PMOP *pm;
-    LOGOP *rcop;
-    I32 repl_has_vars = 0;
-    bool is_trans = (o->op_type == OP_TRANS || o->op_type == OP_TRANSR);
-    bool is_compiletime;
-    bool has_code;
-    bool isreg    = cBOOL(flags & 1);
-    bool is_split = cBOOL(flags & 2);
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_SVOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_PVOP_OR_SVOP
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
+        || type == OP_CUSTOM);
 
-    PERL_ARGS_ASSERT_PMRUNTIME;
+    NewOp(1101, padop, 1, PADOP);
+    OpTYPE_set(padop, type);
+    padop->op_padix =
+        pad_alloc(type, isGV(sv) ? SVf_READONLY : SVs_PADTMP);
+    SvREFCNT_dec(PAD_SVl(padop->op_padix));
+    PAD_SETSV(padop->op_padix, sv);
+    assert(sv);
+    padop->op_next = (OP*)padop;
+    padop->op_flags = (U8)flags;
+    if (PL_opargs[type] & OA_RETSCALAR)
+        scalar((OP*)padop);
+    if (PL_opargs[type] & OA_TARGET)
+        padop->op_targ = pad_alloc(type, SVs_PADTMP);
+    return CHECKOP(type, padop);
+}
 
-    if (is_trans) {
-        return pmtrans(o, expr, repl);
-    }
+#endif /* USE_ITHREADS */
 
-    /* find whether we have any runtime or code elements;
-     * at the same time, temporarily set the op_next of each DO block;
-     * then when we LINKLIST, this will cause the DO blocks to be excluded
-     * from the op_next chain (and from having LINKLIST recursively
-     * applied to them). We fix up the DOs specially later */
+/*
+=for apidoc newGVOP
 
-    is_compiletime = 1;
-    has_code = 0;
-    if (expr->op_type == OP_LIST) {
-        OP *child;
-        for (child = cLISTOPx(expr)->op_first; child; child = OpSIBLING(child)) {
-            if (child->op_type == OP_NULL && (child->op_flags & OPf_SPECIAL)) {
-                has_code = 1;
-                assert(!child->op_next);
-                if (UNLIKELY(!OpHAS_SIBLING(child))) {
-                    assert(PL_parser && PL_parser->error_count);
-                    /* This can happen with qr/ (?{(^{})/.  Just fake up
-                       the op we were expecting to see, to avoid crashing
-                       elsewhere.  */
-                    op_sibling_splice(expr, child, 0,
-                              newSVOP(OP_CONST, 0, &PL_sv_no));
-                }
-                child->op_next = OpSIBLING(child);
-            }
-            else if (child->op_type != OP_CONST && child->op_type != OP_PUSHMARK)
-            is_compiletime = 0;
-        }
-    }
-    else if (expr->op_type != OP_CONST)
-        is_compiletime = 0;
+Constructs, checks, and returns an op of any type that involves an
+embedded reference to a GV.  C<type> is the opcode.  C<flags> gives the
+eight bits of C<op_flags>.  C<gv> identifies the GV that the op should
+reference; calling this function does not transfer ownership of any
+reference to it.
 
-    LINKLIST(expr);
+=cut
+*/
 
-    /* fix up DO blocks; treat each one as a separate little sub;
-     * also, mark any arrays as LIST/REF */
+OP *
+Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
+{
+    PERL_ARGS_ASSERT_NEWGVOP;
 
-    if (expr->op_type == OP_LIST) {
-        OP *child;
-        for (child = cLISTOPx(expr)->op_first; child; child = OpSIBLING(child)) {
+#ifdef USE_ITHREADS
+    return newPADOP(type, flags, SvREFCNT_inc_simple_NN(gv));
+#else
+    return newSVOP(type, flags, SvREFCNT_inc_simple_NN(gv));
+#endif
+}
 
-            if (child->op_type == OP_PADAV || child->op_type == OP_RV2AV) {
-                assert( !(child->op_flags  & OPf_WANT));
-                /* push the array rather than its contents. The regex
-                 * engine will retrieve and join the elements later */
-                child->op_flags |= (OPf_WANT_LIST | OPf_REF);
-                continue;
-            }
+/*
+=for apidoc newPVOP
 
-            if (!(child->op_type == OP_NULL && (child->op_flags & OPf_SPECIAL)))
-                continue;
-            child->op_next = NULL; /* undo temporary hack from above */
-            scalar(child);
-            LINKLIST(child);
-            if (cLISTOPx(child)->op_first->op_type == OP_LEAVE) {
-                LISTOP *leaveop = cLISTOPx(cLISTOPx(child)->op_first);
-                /* skip ENTER */
-                assert(leaveop->op_first->op_type == OP_ENTER);
-                assert(OpHAS_SIBLING(leaveop->op_first));
-                child->op_next = OpSIBLING(leaveop->op_first);
-                /* skip leave */
-                assert(leaveop->op_flags & OPf_KIDS);
-                assert(leaveop->op_last->op_next == (OP*)leaveop);
-                leaveop->op_next = NULL; /* stop on last op */
-                op_null((OP*)leaveop);
-            }
-            else {
-                /* skip SCOPE */
-                OP *scope = cLISTOPx(child)->op_first;
-                assert(scope->op_type == OP_SCOPE);
-                assert(scope->op_flags & OPf_KIDS);
-                scope->op_next = NULL; /* stop on last op */
-                op_null(scope);
-            }
+Constructs, checks, and returns an op of any type that involves an
+embedded C-level pointer (PV).  C<type> is the opcode.  C<flags> gives
+the eight bits of C<op_flags>.  C<pv> supplies the C-level pointer.
+Depending on the op type, the memory referenced by C<pv> may be freed
+when the op is destroyed.  If the op is of a freeing type, C<pv> must
+have been allocated using C<PerlMemShared_malloc>.
 
-            /* XXX optimize_optree() must be called on o before
-             * CALL_PEEP(), as currently S_maybe_multiconcat() can't
-             * currently cope with a peephole-optimised optree.
-             * Calling optimize_optree() here ensures that condition
-             * is met, but may mean optimize_optree() is applied
-             * to the same optree later (where hopefully it won't do any
-             * harm as it can't convert an op to multiconcat if it's
-             * already been converted */
-            optimize_optree(child);
+=cut
+*/
 
-            /* have to peep the DOs individually as we've removed it from
-             * the op_next chain */
-            CALL_PEEP(child);
-            S_prune_chain_head(&(child->op_next));
-            if (is_compiletime)
-                /* runtime finalizes as part of finalizing whole tree */
-                finalize_optree(child);
-        }
-    }
-    else if (expr->op_type == OP_PADAV || expr->op_type == OP_RV2AV) {
-        assert( !(expr->op_flags  & OPf_WANT));
-        /* push the array rather than its contents. The regex
-         * engine will retrieve and join the elements later */
-        expr->op_flags |= (OPf_WANT_LIST | OPf_REF);
-    }
+OP *
+Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
+{
+    const bool utf8 = cBOOL(flags & SVf_UTF8);
+    PVOP *pvop;
 
-    PL_hints |= HINT_BLOCK_SCOPE;
-    pm = (PMOP*)o;
-    assert(floor==0 || (pm->op_pmflags & PMf_HAS_CV));
+    flags &= ~SVf_UTF8;
 
-    if (is_compiletime) {
-        U32 rx_flags = pm->op_pmflags & RXf_PMf_COMPILETIME;
-        regexp_engine const *eng = current_re_engine();
+    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_PVOP_OR_SVOP
+        || type == OP_CUSTOM
+        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
 
-        if (is_split) {
-            /* make engine handle split ' ' specially */
-            pm->op_pmflags |= PMf_SPLIT;
-            rx_flags |= RXf_SPLIT;
-        }
+    NewOp(1101, pvop, 1, PVOP);
+    OpTYPE_set(pvop, type);
+    pvop->op_pv = pv;
+    pvop->op_next = (OP*)pvop;
+    pvop->op_flags = (U8)flags;
+    pvop->op_private = utf8 ? OPpPV_IS_UTF8 : 0;
+    if (PL_opargs[type] & OA_RETSCALAR)
+        scalar((OP*)pvop);
+    if (PL_opargs[type] & OA_TARGET)
+        pvop->op_targ = pad_alloc(type, SVs_PADTMP);
+    return CHECKOP(type, pvop);
+}
 
-        if (!has_code || !eng->op_comp) {
-            /* compile-time simple constant pattern */
+void
+Perl_package(pTHX_ OP *o)
+{
+    SV *const sv = cSVOPo->op_sv;
 
-            if ((pm->op_pmflags & PMf_HAS_CV) && !has_code) {
-                /* whoops! we guessed that a qr// had a code block, but we
-                 * were wrong (e.g. /[(?{}]/ ). Throw away the PL_compcv
-                 * that isn't required now. Note that we have to be pretty
-                 * confident that nothing used that CV's pad while the
-                 * regex was parsed, except maybe op targets for \Q etc.
-                 * If there were any op targets, though, they should have
-                 * been stolen by constant folding.
-                 */
-#ifdef DEBUGGING
-                SSize_t i = 0;
-                assert(PadnamelistMAXNAMED(PL_comppad_name) == 0);
-                while (++i <= AvFILLp(PL_comppad)) {
-#  ifdef USE_PAD_RESET
-                    /* under USE_PAD_RESET, pad swipe replaces a swiped
-                     * folded constant with a fresh padtmp */
-                    assert(!PL_curpad[i] || SvPADTMP(PL_curpad[i]));
-#  else
-                    assert(!PL_curpad[i]);
-#  endif
-                }
-#endif
-                /* This LEAVE_SCOPE will restore PL_compcv to point to the
-                 * outer CV (the one whose slab holds the pm op). The
-                 * inner CV (which holds expr) will be freed later, once
-                 * all the entries on the parse stack have been popped on
-                 * return from this function. Which is why its safe to
-                 * call op_free(expr) below.
-                 */
-                LEAVE_SCOPE(floor);
-                pm->op_pmflags &= ~PMf_HAS_CV;
-            }
+    PERL_ARGS_ASSERT_PACKAGE;
 
-            /* Skip compiling if parser found an error for this pattern */
-            if (pm->op_pmflags & PMf_HAS_ERROR) {
-                return o;
-            }
+    SAVEGENERICSV(PL_curstash);
+    save_item(PL_curstname);
 
-            PM_SETRE(pm,
-                eng->op_comp
-                    ? eng->op_comp(aTHX_ NULL, 0, expr, eng, NULL, NULL,
-                                        rx_flags, pm->op_pmflags)
-                    : Perl_re_op_compile(aTHX_ NULL, 0, expr, eng, NULL, NULL,
-                                        rx_flags, pm->op_pmflags)
-            );
-            op_free(expr);
-        }
-        else {
-            /* compile-time pattern that includes literal code blocks */
+    PL_curstash = (HV *)SvREFCNT_inc(gv_stashsv(sv, GV_ADD));
 
-            REGEXP* re;
+    sv_setsv(PL_curstname, sv);
 
-            /* Skip compiling if parser found an error for this pattern */
-            if (pm->op_pmflags & PMf_HAS_ERROR) {
-                return o;
-            }
-
-            re = eng->op_comp(aTHX_ NULL, 0, expr, eng, NULL, NULL,
-                        rx_flags,
-                        (pm->op_pmflags |
-                            ((PL_hints & HINT_RE_EVAL) ? PMf_USE_RE_EVAL : 0))
-                    );
-            PM_SETRE(pm, re);
-            if (pm->op_pmflags & PMf_HAS_CV) {
-                CV *cv;
-                /* this QR op (and the anon sub we embed it in) is never
-                 * actually executed. It's just a placeholder where we can
-                 * squirrel away expr in op_code_list without the peephole
-                 * optimiser etc processing it for a second time */
-                OP *qr = newPMOP(OP_QR, 0);
-                ((PMOP*)qr)->op_code_list = expr;
+    PL_hints |= HINT_BLOCK_SCOPE;
+    PL_parser->copline = NOLINE;
 
-                /* handle the implicit sub{} wrapped round the qr/(?{..})/ */
-                SvREFCNT_inc_simple_void(PL_compcv);
-                cv = newATTRSUB(floor, 0, NULL, NULL, qr);
-                ReANY(re)->qr_anoncv = cv;
+    op_free(o);
+}
 
-                /* attach the anon CV to the pad so that
-                 * pad_fixup_inner_anons() can find it */
-                (void)pad_add_anon(cv, o->op_type);
-                SvREFCNT_inc_simple_void(cv);
-            }
-            else {
-                pm->op_code_list = expr;
-            }
-        }
-    }
-    else {
-        /* runtime pattern: build chain of regcomp etc ops */
-        bool reglist;
-        PADOFFSET cv_targ = 0;
+void
+Perl_package_version( pTHX_ OP *v )
+{
+    U32 savehints = PL_hints;
+    PERL_ARGS_ASSERT_PACKAGE_VERSION;
+    PL_hints &= ~HINT_STRICT_VARS;
+    sv_setsv( GvSV(gv_fetchpvs("VERSION", GV_ADDMULTI, SVt_PV)), cSVOPx(v)->op_sv );
+    PL_hints = savehints;
+    op_free(v);
+}
 
-        reglist = isreg && expr->op_type == OP_LIST;
-        if (reglist)
-            op_null(expr);
+/* Extract the first two components of a "version" object as two 8bit integers
+ * and return them packed into a single U16 in the format of PL_prevailing_version.
+ * This function only ever has to cope with version objects already known
+ * bounded by the current perl version, so we know its components will fit
+ * (Up until we reach perl version 5.256 anyway) */
+static U16 S_extract_shortver(pTHX_ SV *sv)
+{
+    SV *rv;
+    if(!SvRV(sv) || !SvOBJECT(rv = SvRV(sv)) || !sv_derived_from(sv, "version"))
+        return 0;
 
-        if (has_code) {
-            pm->op_code_list = expr;
-            /* don't free op_code_list; its ops are embedded elsewhere too */
-            pm->op_pmflags |= PMf_CODELIST_PRIVATE;
-        }
+    AV *av = MUTABLE_AV(SvRV(*hv_fetchs(MUTABLE_HV(rv), "version", 0)));
 
-        if (is_split)
-            /* make engine handle split ' ' specially */
-            pm->op_pmflags |= PMf_SPLIT;
+    U16 shortver = 0;
 
-        /* the OP_REGCMAYBE is a placeholder in the non-threaded case
-         * to allow its op_next to be pointed past the regcomp and
-         * preceding stacking ops;
-         * OP_REGCRESET is there to reset taint before executing the
-         * stacking ops */
-        if (pm->op_pmflags & PMf_KEEP || TAINTING_get)
-            expr = newUNOP((TAINTING_get ? OP_REGCRESET : OP_REGCMAYBE),0,expr);
+    IV major = av_count(av) > 0 ? SvIV(*av_fetch(av, 0, false)) : 0;
+    if(major > 255)
+        shortver |= 255 << 8;
+    else
+        shortver |= major << 8;
 
-        if (pm->op_pmflags & PMf_HAS_CV) {
-            /* we have a runtime qr with literal code. This means
-             * that the qr// has been wrapped in a new CV, which
-             * means that runtime consts, vars etc will have been compiled
-             * against a new pad. So... we need to execute those ops
-             * within the environment of the new CV. So wrap them in a call
-             * to a new anon sub. i.e. for
-             *
-             *     qr/a$b(?{...})/,
-             *
-             * we build an anon sub that looks like
-             *
-             *     sub { "a", $b, '(?{...})' }
-             *
-             * and call it, passing the returned list to regcomp.
-             * Or to put it another way, the list of ops that get executed
-             * are:
-             *
-             *     normal              PMf_HAS_CV
-             *     ------              -------------------
-             *                         pushmark (for regcomp)
-             *                         pushmark (for entersub)
-             *                         anoncode
-             *                         srefgen
-             *                         entersub
-             *     regcreset                  regcreset
-             *     pushmark                   pushmark
-             *     const("a")                 const("a")
-             *     gvsv(b)                    gvsv(b)
-             *     const("(?{...})")          const("(?{...})")
-             *                                leavesub
-             *     regcomp             regcomp
-             */
+    IV minor = av_count(av) > 1 ? SvIV(*av_fetch(av, 1, false)) : 0;
+    if(minor > 255)
+        shortver |= 255;
+    else
+        shortver |= minor;
 
-            SvREFCNT_inc_simple_void(PL_compcv);
-            CvLVALUE_on(PL_compcv);
-            /* these lines are just an unrolled newANONATTRSUB */
-            expr = newSVOP(OP_ANONCODE, 0,
-                    MUTABLE_SV(newATTRSUB(floor, 0, NULL, NULL, expr)));
-            cv_targ = expr->op_targ;
-            expr = newUNOP(OP_REFGEN, 0, expr);
+    return shortver;
+}
+#define SHORTVER(maj,min) ((maj << 8) | min)
 
-            expr = list(force_list(newUNOP(OP_ENTERSUB, 0, scalar(expr)), TRUE));
-        }
+void
+Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
+{
+    OP *pack;
+    OP *imop;
+    OP *veop;
+    SV *use_version = NULL;
 
-        rcop = alloc_LOGOP(OP_REGCOMP, scalar(expr), o);
-        rcop->op_flags |=  ((PL_hints & HINT_RE_EVAL) ? OPf_SPECIAL : 0)
-                           | (reglist ? OPf_STACKED : 0);
-        rcop->op_targ = cv_targ;
+    PERL_ARGS_ASSERT_UTILIZE;
 
-        /* /$x/ may cause an eval, since $x might be qr/(?{..})/  */
-        if (PL_hints & HINT_RE_EVAL)
-            S_set_haseval(aTHX);
+    if (idop->op_type != OP_CONST)
+        Perl_croak(aTHX_ "Module name must be constant");
 
-        /* establish postfix order */
-        if (expr->op_type == OP_REGCRESET || expr->op_type == OP_REGCMAYBE) {
-            LINKLIST(expr);
-            rcop->op_next = expr;
-            ((UNOP*)expr)->op_first->op_next = (OP*)rcop;
-        }
-        else {
-            rcop->op_next = LINKLIST(expr);
-            expr->op_next = (OP*)rcop;
-        }
+    veop = NULL;
 
-        op_prepend_elem(o->op_type, scalar((OP*)rcop), o);
-    }
+    if (version) {
+        SV * const vesv = cSVOPx(version)->op_sv;
 
-    if (repl) {
-        OP *curop = repl;
-        bool konst;
-        /* If we are looking at s//.../e with a single statement, get past
-           the implicit do{}. */
-        if (curop->op_type == OP_NULL && curop->op_flags & OPf_KIDS
-             && cUNOPx(curop)->op_first->op_type == OP_SCOPE
-             && cUNOPx(curop)->op_first->op_flags & OPf_KIDS)
-         {
-            OP *sib;
-            OP *kid = cUNOPx(cUNOPx(curop)->op_first)->op_first;
-            if (kid->op_type == OP_NULL && (sib = OpSIBLING(kid))
-             && !OpHAS_SIBLING(sib))
-                curop = sib;
-        }
-        if (curop->op_type == OP_CONST)
-            konst = TRUE;
-        else if (( (curop->op_type == OP_RV2SV ||
-                    curop->op_type == OP_RV2AV ||
-                    curop->op_type == OP_RV2HV ||
-                    curop->op_type == OP_RV2GV)
-                   && cUNOPx(curop)->op_first
-                   && cUNOPx(curop)->op_first->op_type == OP_GV )
-                || curop->op_type == OP_PADSV
-                || curop->op_type == OP_PADAV
-                || curop->op_type == OP_PADHV
-                || curop->op_type == OP_PADANY) {
-            repl_has_vars = 1;
-            konst = TRUE;
-        }
-        else konst = FALSE;
-        if (konst
-            && !(repl_has_vars
-                 && (!PM_GETRE(pm)
-                     || !RX_PRELEN(PM_GETRE(pm))
-                     || RX_EXTFLAGS(PM_GETRE(pm)) & RXf_EVAL_SEEN)))
-        {
-            pm->op_pmflags |= PMf_CONST;	/* const for long enough */
-            op_prepend_elem(o->op_type, scalar(repl), o);
+        if (!arg && !SvNIOKp(vesv)) {
+            arg = version;
         }
         else {
-            rcop = alloc_LOGOP(OP_SUBSTCONT, scalar(repl), o);
-            rcop->op_private = 1;
+            OP *pack;
+            SV *meth;
 
-            /* establish postfix order */
-            rcop->op_next = LINKLIST(repl);
-            repl->op_next = (OP*)rcop;
+            if (version->op_type != OP_CONST || !SvNIOKp(vesv))
+                Perl_croak(aTHX_ "Version number must be a constant number");
 
-            pm->op_pmreplrootu.op_pmreplroot = scalar((OP*)rcop);
-            assert(!(pm->op_pmflags & PMf_ONCE));
-            pm->op_pmstashstartu.op_pmreplstart = LINKLIST(rcop);
-            rcop->op_next = 0;
+            /* Make copy of idop so we don't free it twice */
+            pack = newSVOP(OP_CONST, 0, newSVsv(cSVOPx(idop)->op_sv));
+
+            /* Fake up a method call to VERSION */
+            meth = newSVpvs_share("VERSION");
+            veop = op_convert_list(OP_ENTERSUB, OPf_STACKED,
+                            op_append_elem(OP_LIST,
+                                        op_prepend_elem(OP_LIST, pack, version),
+                                        newMETHOP_named(OP_METHOD_NAMED, 0, meth)));
         }
     }
 
-    return (OP*)pm;
-}
-
-/*
-=for apidoc newSVOP
-
-Constructs, checks, and returns an op of any type that involves an
-embedded SV.  C<type> is the opcode.  C<flags> gives the eight bits
-of C<op_flags>.  C<sv> gives the SV to embed in the op; this function
-takes ownership of one reference to it.
+    /* Fake up an import/unimport */
+    if (arg && arg->op_type == OP_STUB) {
+        imop = arg;		/* no import on explicit () */
+    }
+    else if (SvNIOKp(cSVOPx(idop)->op_sv)) {
+        imop = NULL;		/* use 5.0; */
+        if (aver)
+            use_version = cSVOPx(idop)->op_sv;
+        else
+            idop->op_private |= OPpCONST_NOVER;
+    }
+    else {
+        SV *meth;
 
-=cut
-*/
+        /* Make copy of idop so we don't free it twice */
+        pack = newSVOP(OP_CONST, 0, newSVsv(cSVOPx(idop)->op_sv));
 
-OP *
-Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
-{
-    SVOP *svop;
+        /* Fake up a method call to import/unimport */
+        meth = aver
+            ? newSVpvs_share("import") : newSVpvs_share("unimport");
+        imop = op_convert_list(OP_ENTERSUB, OPf_STACKED,
+                       op_append_elem(OP_LIST,
+                                   op_prepend_elem(OP_LIST, pack, arg),
+                                   newMETHOP_named(OP_METHOD_NAMED, 0, meth)
+                       ));
+    }
 
-    PERL_ARGS_ASSERT_NEWSVOP;
-
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_SVOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_PVOP_OR_SVOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
-        || type == OP_CUSTOM);
-
-    NewOp(1101, svop, 1, SVOP);
-    OpTYPE_set(svop, type);
-    svop->op_sv = sv;
-    svop->op_next = (OP*)svop;
-    svop->op_flags = (U8)flags;
-    svop->op_private = (U8)(0 | (flags >> 8));
-    if (PL_opargs[type] & OA_RETSCALAR)
-        scalar((OP*)svop);
-    if (PL_opargs[type] & OA_TARGET)
-        svop->op_targ = pad_alloc(type, SVs_PADTMP);
-    return CHECKOP(type, svop);
-}
-
-/*
-=for apidoc newDEFSVOP
-
-Constructs and returns an op to access C<$_>.
-
-=cut
-*/
-
-OP *
-Perl_newDEFSVOP(pTHX)
-{
-        return newSVREF(newGVOP(OP_GV, 0, PL_defgv));
-}
-
-#ifdef USE_ITHREADS
+    /* Fake up the BEGIN {}, which does its thing immediately. */
+    newATTRSUB(floor,
+        newSVOP(OP_CONST, 0, newSVpvs_share("BEGIN")),
+        NULL,
+        NULL,
+        op_append_elem(OP_LINESEQ,
+            op_append_elem(OP_LINESEQ,
+                newSTATEOP(0, NULL, newUNOP(OP_REQUIRE, 0, idop)),
+                newSTATEOP(0, NULL, veop)),
+            newSTATEOP(0, NULL, imop) ));
 
-/*
-=for apidoc newPADOP
+    if (use_version) {
+        /* Enable the
+         * feature bundle that corresponds to the required version. */
+        use_version = sv_2mortal(new_version(use_version));
+        S_enable_feature_bundle(aTHX_ use_version);
 
-Constructs, checks, and returns an op of any type that involves a
-reference to a pad element.  C<type> is the opcode.  C<flags> gives the
-eight bits of C<op_flags>.  A pad slot is automatically allocated, and
-is populated with C<sv>; this function takes ownership of one reference
-to it.
+        U16 shortver = S_extract_shortver(aTHX_ use_version);
 
-This function only exists if Perl has been compiled to use ithreads.
+        /* If a version >= 5.11.0 is requested, strictures are on by default! */
+        if (shortver >= SHORTVER(5, 11)) {
+            if (!(PL_hints & HINT_EXPLICIT_STRICT_REFS))
+                PL_hints |= HINT_STRICT_REFS;
+            if (!(PL_hints & HINT_EXPLICIT_STRICT_SUBS))
+                PL_hints |= HINT_STRICT_SUBS;
+            if (!(PL_hints & HINT_EXPLICIT_STRICT_VARS))
+                PL_hints |= HINT_STRICT_VARS;
 
-=cut
-*/
+            if (shortver >= SHORTVER(5, 35))
+                free_and_set_cop_warnings(&PL_compiling, pWARN_ALL);
+        }
+        /* otherwise they are off */
+        else {
+            if(PL_prevailing_version >= SHORTVER(5, 11))
+                deprecate_fatal_in(WARN_DEPRECATED__VERSION_DOWNGRADE, "5.40",
+                    "Downgrading a use VERSION declaration to below v5.11");
 
-OP *
-Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
-{
-    PADOP *padop;
+            if (!(PL_hints & HINT_EXPLICIT_STRICT_REFS))
+                PL_hints &= ~HINT_STRICT_REFS;
+            if (!(PL_hints & HINT_EXPLICIT_STRICT_SUBS))
+                PL_hints &= ~HINT_STRICT_SUBS;
+            if (!(PL_hints & HINT_EXPLICIT_STRICT_VARS))
+                PL_hints &= ~HINT_STRICT_VARS;
+        }
 
-    PERL_ARGS_ASSERT_NEWPADOP;
+        PL_prevailing_version = shortver;
+    }
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_SVOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_PVOP_OR_SVOP
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
-        || type == OP_CUSTOM);
+    /* The "did you use incorrect case?" warning used to be here.
+     * The problem is that on case-insensitive filesystems one
+     * might get false positives for "use" (and "require"):
+     * "use Strict" or "require CARP" will work.  This causes
+     * portability problems for the script: in case-strict
+     * filesystems the script will stop working.
+     *
+     * The "incorrect case" warning checked whether "use Foo"
+     * imported "Foo" to your namespace, but that is wrong, too:
+     * there is no requirement nor promise in the language that
+     * a Foo.pm should or would contain anything in package "Foo".
+     *
+     * There is very little Configure-wise that can be done, either:
+     * the case-sensitivity of the build filesystem of Perl does not
+     * help in guessing the case-sensitivity of the runtime environment.
+     */
 
-    NewOp(1101, padop, 1, PADOP);
-    OpTYPE_set(padop, type);
-    padop->op_padix =
-        pad_alloc(type, isGV(sv) ? SVf_READONLY : SVs_PADTMP);
-    SvREFCNT_dec(PAD_SVl(padop->op_padix));
-    PAD_SETSV(padop->op_padix, sv);
-    assert(sv);
-    padop->op_next = (OP*)padop;
-    padop->op_flags = (U8)flags;
-    if (PL_opargs[type] & OA_RETSCALAR)
-        scalar((OP*)padop);
-    if (PL_opargs[type] & OA_TARGET)
-        padop->op_targ = pad_alloc(type, SVs_PADTMP);
-    return CHECKOP(type, padop);
+    PL_hints |= HINT_BLOCK_SCOPE;
+    PL_parser->copline = NOLINE;
+    COP_SEQMAX_INC; /* Purely for B::*'s benefit */
 }
 
-#endif /* USE_ITHREADS */
-
 /*
-=for apidoc newGVOP
+=for apidoc_section $embedding
 
-Constructs, checks, and returns an op of any type that involves an
-embedded reference to a GV.  C<type> is the opcode.  C<flags> gives the
-eight bits of C<op_flags>.  C<gv> identifies the GV that the op should
-reference; calling this function does not transfer ownership of any
-reference to it.
+=for apidoc      load_module
+=for apidoc_item load_module_nocontext
 
-=cut
-*/
+These load the module whose name is pointed to by the string part of C<name>.
+Note that the actual module name, not its filename, should be given.
+Eg, "Foo::Bar" instead of "Foo/Bar.pm". ver, if specified and not NULL,
+provides version semantics similar to C<use Foo::Bar VERSION>. The optional
+trailing arguments can be used to specify arguments to the module's C<import()>
+method, similar to C<use Foo::Bar VERSION LIST>; their precise handling depends
+on the flags. The flags argument is a bitwise-ORed collection of any of
+C<PERL_LOADMOD_DENY>, C<PERL_LOADMOD_NOIMPORT>, or C<PERL_LOADMOD_IMPORT_OPS>
+(or 0 for no flags).
 
-OP *
-Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
-{
-    PERL_ARGS_ASSERT_NEWGVOP;
+If C<PERL_LOADMOD_NOIMPORT> is set, the module is loaded as if with an empty
+import list, as in C<use Foo::Bar ()>; this is the only circumstance in which
+the trailing optional arguments may be omitted entirely. Otherwise, if
+C<PERL_LOADMOD_IMPORT_OPS> is set, the trailing arguments must consist of
+exactly one C<OP*>, containing the op tree that produces the relevant import
+arguments. Otherwise, the trailing arguments must all be C<SV*> values that
+will be used as import arguments; and the list must be terminated with C<(SV*)
+NULL>. If neither C<PERL_LOADMOD_NOIMPORT> nor C<PERL_LOADMOD_IMPORT_OPS> is
+set, the trailing C<NULL> pointer is needed even if no import arguments are
+desired. The reference count for each specified C<SV*> argument is
+decremented. In addition, the C<name> argument is modified.
 
-#ifdef USE_ITHREADS
-    return newPADOP(type, flags, SvREFCNT_inc_simple_NN(gv));
-#else
-    return newSVOP(type, flags, SvREFCNT_inc_simple_NN(gv));
-#endif
-}
+If C<PERL_LOADMOD_DENY> is set, the module is loaded as if with C<no> rather
+than C<use>.
 
-/*
-=for apidoc newPVOP
+C<load_module> and C<load_module_nocontext> have the same apparent signature,
+but the former hides the fact that it is accessing a thread context parameter.
+So use the latter when you get a compilation error about C<pTHX>.
 
-Constructs, checks, and returns an op of any type that involves an
-embedded C-level pointer (PV).  C<type> is the opcode.  C<flags> gives
-the eight bits of C<op_flags>.  C<pv> supplies the C-level pointer.
-Depending on the op type, the memory referenced by C<pv> may be freed
-when the op is destroyed.  If the op is of a freeing type, C<pv> must
-have been allocated using C<PerlMemShared_malloc>.
+=for apidoc Amnh||PERL_LOADMOD_DENY
+=for apidoc Amnh||PERL_LOADMOD_NOIMPORT
+=for apidoc Amnh||PERL_LOADMOD_IMPORT_OPS
 
-=cut
-*/
+=for apidoc vload_module
+Like C<L</load_module>> but the arguments are an encapsulated argument list.
 
-OP *
-Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
-{
-    const bool utf8 = cBOOL(flags & SVf_UTF8);
-    PVOP *pvop;
+=cut */
 
-    flags &= ~SVf_UTF8;
+void
+Perl_load_module(pTHX_ U32 flags, SV *name, SV *ver, ...)
+{
+    va_list args;
 
-    assert((PL_opargs[type] & OA_CLASS_MASK) == OA_PVOP_OR_SVOP
-        || type == OP_RUNCV || type == OP_CUSTOM
-        || (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
+    PERL_ARGS_ASSERT_LOAD_MODULE;
 
-    NewOp(1101, pvop, 1, PVOP);
-    OpTYPE_set(pvop, type);
-    pvop->op_pv = pv;
-    pvop->op_next = (OP*)pvop;
-    pvop->op_flags = (U8)flags;
-    pvop->op_private = utf8 ? OPpPV_IS_UTF8 : 0;
-    if (PL_opargs[type] & OA_RETSCALAR)
-        scalar((OP*)pvop);
-    if (PL_opargs[type] & OA_TARGET)
-        pvop->op_targ = pad_alloc(type, SVs_PADTMP);
-    return CHECKOP(type, pvop);
+    va_start(args, ver);
+    vload_module(flags, name, ver, &args);
+    va_end(args);
 }
 
+#ifdef MULTIPLICITY
 void
-Perl_package(pTHX_ OP *o)
+Perl_load_module_nocontext(U32 flags, SV *name, SV *ver, ...)
 {
-    SV *const sv = cSVOPo->op_sv;
-
-    PERL_ARGS_ASSERT_PACKAGE;
-
-    SAVEGENERICSV(PL_curstash);
-    save_item(PL_curstname);
-
-    PL_curstash = (HV *)SvREFCNT_inc(gv_stashsv(sv, GV_ADD));
-
-    sv_setsv(PL_curstname, sv);
-
-    PL_hints |= HINT_BLOCK_SCOPE;
-    PL_parser->copline = NOLINE;
-
-    op_free(o);
+    dTHX;
+    va_list args;
+    PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT;
+    va_start(args, ver);
+    vload_module(flags, name, ver, &args);
+    va_end(args);
 }
+#endif
 
 void
-Perl_package_version( pTHX_ OP *v )
+Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args)
 {
-    U32 savehints = PL_hints;
-    PERL_ARGS_ASSERT_PACKAGE_VERSION;
-    PL_hints &= ~HINT_STRICT_VARS;
-    sv_setsv( GvSV(gv_fetchpvs("VERSION", GV_ADDMULTI, SVt_PV)), cSVOPx(v)->op_sv );
-    PL_hints = savehints;
-    op_free(v);
-}
-
-/* Extract the first two components of a "version" object as two 8bit integers
- * and return them packed into a single U16 in the format of PL_prevailing_version.
- * This function only ever has to cope with version objects already known
- * bounded by the current perl version, so we know its components will fit
- * (Up until we reach perl version 5.256 anyway) */
-static U16 S_extract_shortver(pTHX_ SV *sv)
-{
-    SV *rv;
-    if(!SvRV(sv) || !SvOBJECT(rv = SvRV(sv)) || !sv_derived_from(sv, "version"))
-        return 0;
-
-    AV *av = MUTABLE_AV(SvRV(*hv_fetchs(MUTABLE_HV(rv), "version", 0)));
-
-    U16 shortver = 0;
-
-    IV major = av_count(av) > 0 ? SvIV(*av_fetch(av, 0, false)) : 0;
-    if(major > 255)
-        shortver |= 255 << 8;
-    else
-        shortver |= major << 8;
-
-    IV minor = av_count(av) > 1 ? SvIV(*av_fetch(av, 1, false)) : 0;
-    if(minor > 255)
-        shortver |= 255;
-    else
-        shortver |= minor;
-
-    return shortver;
-}
-#define SHORTVER(maj,min) ((maj << 8) | min)
-
-void
-Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
-{
-    OP *pack;
-    OP *imop;
-    OP *veop;
-    SV *use_version = NULL;
-
-    PERL_ARGS_ASSERT_UTILIZE;
-
-    if (idop->op_type != OP_CONST)
-        Perl_croak(aTHX_ "Module name must be constant");
-
-    veop = NULL;
-
-    if (version) {
-        SV * const vesv = ((SVOP*)version)->op_sv;
-
-        if (!arg && !SvNIOKp(vesv)) {
-            arg = version;
-        }
-        else {
-            OP *pack;
-            SV *meth;
-
-            if (version->op_type != OP_CONST || !SvNIOKp(vesv))
-                Perl_croak(aTHX_ "Version number must be a constant number");
-
-            /* Make copy of idop so we don't free it twice */
-            pack = newSVOP(OP_CONST, 0, newSVsv(((SVOP*)idop)->op_sv));
-
-            /* Fake up a method call to VERSION */
-            meth = newSVpvs_share("VERSION");
-            veop = op_convert_list(OP_ENTERSUB, OPf_STACKED|OPf_SPECIAL,
-                            op_append_elem(OP_LIST,
-                                        op_prepend_elem(OP_LIST, pack, version),
-                                        newMETHOP_named(OP_METHOD_NAMED, 0, meth)));
-        }
-    }
-
-    /* Fake up an import/unimport */
-    if (arg && arg->op_type == OP_STUB) {
-        imop = arg;		/* no import on explicit () */
-    }
-    else if (SvNIOKp(((SVOP*)idop)->op_sv)) {
-        imop = NULL;		/* use 5.0; */
-        if (aver)
-            use_version = ((SVOP*)idop)->op_sv;
-        else
-            idop->op_private |= OPpCONST_NOVER;
-    }
-    else {
-        SV *meth;
-
-        /* Make copy of idop so we don't free it twice */
-        pack = newSVOP(OP_CONST, 0, newSVsv(((SVOP*)idop)->op_sv));
-
-        /* Fake up a method call to import/unimport */
-        meth = aver
-            ? newSVpvs_share("import") : newSVpvs_share("unimport");
-        imop = op_convert_list(OP_ENTERSUB, OPf_STACKED|OPf_SPECIAL,
-                       op_append_elem(OP_LIST,
-                                   op_prepend_elem(OP_LIST, pack, arg),
-                                   newMETHOP_named(OP_METHOD_NAMED, 0, meth)
-                       ));
-    }
-
-    /* Fake up the BEGIN {}, which does its thing immediately. */
-    newATTRSUB(floor,
-        newSVOP(OP_CONST, 0, newSVpvs_share("BEGIN")),
-        NULL,
-        NULL,
-        op_append_elem(OP_LINESEQ,
-            op_append_elem(OP_LINESEQ,
-                newSTATEOP(0, NULL, newUNOP(OP_REQUIRE, 0, idop)),
-                newSTATEOP(0, NULL, veop)),
-            newSTATEOP(0, NULL, imop) ));
-
-    if (use_version) {
-        /* Enable the
-         * feature bundle that corresponds to the required version. */
-        use_version = sv_2mortal(new_version(use_version));
-        S_enable_feature_bundle(aTHX_ use_version);
-
-        U16 shortver = S_extract_shortver(aTHX_ use_version);
-
-        /* If a version >= 5.11.0 is requested, strictures are on by default! */
-        if (shortver >= SHORTVER(5, 11)) {
-            if (!(PL_hints & HINT_EXPLICIT_STRICT_REFS))
-                PL_hints |= HINT_STRICT_REFS;
-            if (!(PL_hints & HINT_EXPLICIT_STRICT_SUBS))
-                PL_hints |= HINT_STRICT_SUBS;
-            if (!(PL_hints & HINT_EXPLICIT_STRICT_VARS))
-                PL_hints |= HINT_STRICT_VARS;
-
-            if (shortver >= SHORTVER(5, 35))
-                free_and_set_cop_warnings(&PL_compiling, pWARN_ALL);
-        }
-        /* otherwise they are off */
-        else {
-            if(PL_prevailing_version >= SHORTVER(5, 11))
-                deprecate_fatal_in("5.40",
-                    "Downgrading a use VERSION declaration to below v5.11");
-
-            if (!(PL_hints & HINT_EXPLICIT_STRICT_REFS))
-                PL_hints &= ~HINT_STRICT_REFS;
-            if (!(PL_hints & HINT_EXPLICIT_STRICT_SUBS))
-                PL_hints &= ~HINT_STRICT_SUBS;
-            if (!(PL_hints & HINT_EXPLICIT_STRICT_VARS))
-                PL_hints &= ~HINT_STRICT_VARS;
-        }
-
-        PL_prevailing_version = shortver;
-    }
-
-    /* The "did you use incorrect case?" warning used to be here.
-     * The problem is that on case-insensitive filesystems one
-     * might get false positives for "use" (and "require"):
-     * "use Strict" or "require CARP" will work.  This causes
-     * portability problems for the script: in case-strict
-     * filesystems the script will stop working.
-     *
-     * The "incorrect case" warning checked whether "use Foo"
-     * imported "Foo" to your namespace, but that is wrong, too:
-     * there is no requirement nor promise in the language that
-     * a Foo.pm should or would contain anything in package "Foo".
-     *
-     * There is very little Configure-wise that can be done, either:
-     * the case-sensitivity of the build filesystem of Perl does not
-     * help in guessing the case-sensitivity of the runtime environment.
-     */
-
-    PL_hints |= HINT_BLOCK_SCOPE;
-    PL_parser->copline = NOLINE;
-    COP_SEQMAX_INC; /* Purely for B::*'s benefit */
-}
-
-/*
-=for apidoc_section $embedding
-
-=for apidoc      load_module
-=for apidoc_item load_module_nocontext
-
-These load the module whose name is pointed to by the string part of C<name>.
-Note that the actual module name, not its filename, should be given.
-Eg, "Foo::Bar" instead of "Foo/Bar.pm". ver, if specified and not NULL,
-provides version semantics similar to C<use Foo::Bar VERSION>. The optional
-trailing arguments can be used to specify arguments to the module's C<import()>
-method, similar to C<use Foo::Bar VERSION LIST>; their precise handling depends
-on the flags. The flags argument is a bitwise-ORed collection of any of
-C<PERL_LOADMOD_DENY>, C<PERL_LOADMOD_NOIMPORT>, or C<PERL_LOADMOD_IMPORT_OPS>
-(or 0 for no flags).
-
-If C<PERL_LOADMOD_NOIMPORT> is set, the module is loaded as if with an empty
-import list, as in C<use Foo::Bar ()>; this is the only circumstance in which
-the trailing optional arguments may be omitted entirely. Otherwise, if
-C<PERL_LOADMOD_IMPORT_OPS> is set, the trailing arguments must consist of
-exactly one C<OP*>, containing the op tree that produces the relevant import
-arguments. Otherwise, the trailing arguments must all be C<SV*> values that
-will be used as import arguments; and the list must be terminated with C<(SV*)
-NULL>. If neither C<PERL_LOADMOD_NOIMPORT> nor C<PERL_LOADMOD_IMPORT_OPS> is
-set, the trailing C<NULL> pointer is needed even if no import arguments are
-desired. The reference count for each specified C<SV*> argument is
-decremented. In addition, the C<name> argument is modified.
-
-If C<PERL_LOADMOD_DENY> is set, the module is loaded as if with C<no> rather
-than C<use>.
-
-C<load_module> and C<load_module_nocontext> have the same apparent signature,
-but the former hides the fact that it is accessing a thread context parameter.
-So use the latter when you get a compilation error about C<pTHX>.
-
-=for apidoc Amnh||PERL_LOADMOD_DENY
-=for apidoc Amnh||PERL_LOADMOD_NOIMPORT
-=for apidoc Amnh||PERL_LOADMOD_IMPORT_OPS
-
-=for apidoc vload_module
-Like C<L</load_module>> but the arguments are an encapsulated argument list.
-
-=cut */
-
-void
-Perl_load_module(pTHX_ U32 flags, SV *name, SV *ver, ...)
-{
-    va_list args;
-
-    PERL_ARGS_ASSERT_LOAD_MODULE;
-
-    va_start(args, ver);
-    vload_module(flags, name, ver, &args);
-    va_end(args);
-}
-
-#ifdef MULTIPLICITY
-void
-Perl_load_module_nocontext(U32 flags, SV *name, SV *ver, ...)
-{
-    dTHX;
-    va_list args;
-    PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT;
-    va_start(args, ver);
-    vload_module(flags, name, ver, &args);
-    va_end(args);
-}
-#endif
-
-void
-Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args)
-{
-    OP *veop, *imop;
-    OP * modname;
-    I32 floor;
+    OP *veop, *imop;
+    OP * modname;
+    I32 floor;
 
     PERL_ARGS_ASSERT_VLOAD_MODULE;
 
@@ -9194,8 +8117,8 @@ OP *
 Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listval)
 {
     return newBINOP(OP_LSLICE, flags,
-            list(force_list(subscript, TRUE)),
-            list(force_list(listval,   TRUE)));
+            list(op_force_list(subscript)),
+            list(op_force_list(listval)));
 }
 
 #define ASSIGN_SCALAR 0
@@ -9297,6 +8220,32 @@ S_newONCEOP(pTHX_ OP *initop, OP *padop)
 }
 
 /*
+=for apidoc newARGDEFELEMOP
+
+Constructs and returns a new C<OP_ARGDEFELEM> op which provides a defaulting
+expression given by C<expr> for the signature parameter at the index given
+by C<argindex>. The expression optree is consumed by this function and
+becomes part of the returned optree.
+
+=cut
+*/
+
+OP *
+Perl_newARGDEFELEMOP(pTHX_ I32 flags, OP *expr, I32 argindex)
+{
+    PERL_ARGS_ASSERT_NEWARGDEFELEMOP;
+
+    OP *o = (OP *)alloc_LOGOP(OP_ARGDEFELEM, expr, LINKLIST(expr));
+    o->op_flags |= (U8)(flags);
+    o->op_private = 1 | (U8)(flags >> 8);
+
+    /* re-purpose op_targ to hold @_ index */
+    o->op_targ = (PADOFFSET)(argindex);
+
+    return o;
+}
+
+/*
 =for apidoc newASSIGNOP
 
 Constructs, checks, and returns an assignment op.  C<left> and C<right>
@@ -9350,13 +8299,13 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *le
 
         PL_modcount = 0;
         left = op_lvalue(left, OP_AASSIGN);
-        curop = list(force_list(left, TRUE));
-        o = newBINOP(OP_AASSIGN, flags, list(force_list(right, TRUE)), curop);
+        curop = list(op_force_list(left));
+        o = newBINOP(OP_AASSIGN, flags, list(op_force_list(right)), curop);
         o->op_private = (U8)(0 | (flags >> 8));
 
         if (OP_TYPE_IS_OR_WAS(left, OP_LIST))
         {
-            OP *lop = ((LISTOP*)left)->op_first, *vop, *eop;
+            OP *lop = cLISTOPx(left)->op_first, *vop, *eop;
             if (!(left->op_flags & OPf_PARENS) &&
                     lop->op_type == OP_PUSHMARK &&
                     (vop = OpSIBLING(lop)) &&
@@ -9418,18 +8367,18 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *le
             OP *gvop = NULL;
 
             if (   (  left->op_type == OP_RV2AV
-                   && (gvop=((UNOP*)left)->op_first)->op_type==OP_GV)
+                   && (gvop=cUNOPx(left)->op_first)->op_type==OP_GV)
                 || left->op_type == OP_PADAV)
             {
                 /* @pkg or @lex or local @pkg' or 'my @lex' */
                 OP *tmpop;
                 if (gvop) {
 #ifdef USE_ITHREADS
-                    ((PMOP*)right)->op_pmreplrootu.op_pmtargetoff
+                    cPMOPx(right)->op_pmreplrootu.op_pmtargetoff
                         = cPADOPx(gvop)->op_padix;
                     cPADOPx(gvop)->op_padix = 0;	/* steal it */
 #else
-                    ((PMOP*)right)->op_pmreplrootu.op_pmtargetgv
+                    cPMOPx(right)->op_pmreplrootu.op_pmtargetgv
                         = MUTABLE_GV(cSVOPx(gvop)->op_sv);
                     cSVOPx(gvop)->op_sv = NULL;	/* steal it */
 #endif
@@ -9437,7 +8386,7 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *le
                         left->op_private & OPpOUR_INTRO;
                 }
                 else {
-                    ((PMOP*)right)->op_pmreplrootu.op_pmtargetoff = left->op_targ;
+                    cPMOPx(right)->op_pmreplrootu.op_pmtargetoff = left->op_targ;
                     left->op_targ = 0;	/* steal it */
                     right->op_private |= OPpSPLIT_LEX;
                 }
@@ -9445,7 +8394,7 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *le
 
               detach_split:
                 tmpop = cUNOPo->op_first;	/* to list (nulled) */
-                tmpop = ((UNOP*)tmpop)->op_first; /* to pushmark */
+                tmpop = cUNOPx(tmpop)->op_first; /* to pushmark */
                 assert(OpSIBLING(tmpop) == right);
                 assert(!OpHAS_SIBLING(right));
                 /* detach the split subtreee from the o tree,
@@ -9472,11 +8421,11 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *le
                 goto detach_split;
             }
             else if (PL_modcount < RETURN_UNLIMITED_NUMBER &&
-                    ((LISTOP*)right)->op_last->op_type == OP_CONST)
+                    cLISTOPx(right)->op_last->op_type == OP_CONST)
             {
                 /* convert split(...,0) to split(..., PL_modcount+1) */
                 SV ** const svp =
-                    &((SVOP*)((LISTOP*)right)->op_last)->op_sv;
+                    &cSVOPx(cLISTOPx(right)->op_last)->op_sv;
                 SV * const sv = *svp;
                 if (SvIOK(sv) && SvIVX(sv) == 0)
                 {
@@ -9561,6 +8510,7 @@ Perl_newSTATEOP(pTHX_ I32 flags, char *l
     cop->cop_seq = seq;
     cop->cop_warnings = DUP_WARNINGS(PL_curcop->cop_warnings);
     CopHINTHASH_set(cop, cophh_copy(CopHINTHASH_get(PL_curcop)));
+    CopFEATURES_setfrom(cop, PL_curcop);
     if (label) {
         Perl_cop_store_label(aTHX_ cop, label, strlen(label), utf8);
 
@@ -9582,7 +8532,7 @@ Perl_newSTATEOP(pTHX_ I32 flags, char *l
         PL_parser->copline = NOLINE;
     }
 #ifdef USE_ITHREADS
-    CopFILE_set(cop, CopFILE(PL_curcop));	/* XXX share in a pvtable? */
+    CopFILE_copy(cop, PL_curcop);
 #else
     CopFILEGV_set(cop, CopFILEGV(PL_curcop));
 #endif
@@ -9750,9 +8700,9 @@ S_new_logop(pTHX_ I32 type, I32 flags, O
             no_bareword_allowed(cstop);
         else if ((cstop->op_private & OPpCONST_BARE))
                 Perl_ck_warner(aTHX_ packWARN(WARN_BAREWORD), "Bareword found in conditional");
-        if ((type == OP_AND &&  SvTRUE(((SVOP*)cstop)->op_sv)) ||
-            (type == OP_OR  && !SvTRUE(((SVOP*)cstop)->op_sv)) ||
-            (type == OP_DOR && !SvOK(((SVOP*)cstop)->op_sv))) {
+        if ((type == OP_AND &&  SvTRUE(cSVOPx(cstop)->op_sv)) ||
+            (type == OP_OR  && !SvTRUE(cSVOPx(cstop)->op_sv)) ||
+            (type == OP_DOR && !SvOK(cSVOPx(cstop)->op_sv))) {
             /* Elide the (constant) lhs, since it can't affect the outcome */
             *firstp = NULL;
             if (other->op_type == OP_CONST)
@@ -9801,7 +8751,7 @@ S_new_logop(pTHX_ I32 type, I32 flags, O
     else if ((first->op_flags & OPf_KIDS) && type != OP_DOR
         && ckWARN(WARN_MISC)) /* [#24076] Don't warn for <FH> err FOO. */
     {
-        const OP * const k1 = ((UNOP*)first)->op_first;
+        const OP * const k1 = cUNOPx(first)->op_first;
         const OP * const k2 = OpSIBLING(k1);
         OPCODE warnop = 0;
         switch (first->op_type)
@@ -9912,7 +8862,7 @@ Perl_newCONDOP(pTHX_ I32 flags, OP *firs
     scalarboolean(first);
     if ((cstop = search_const(first))) {
         /* Left or right arm of the conditional?  */
-        const bool left = SvTRUE(((SVOP*)cstop)->op_sv);
+        const bool left = SvTRUE(cSVOPx(cstop)->op_sv);
         OP *live = left ? trueop : falseop;
         OP *const dead = left ? falseop : trueop;
         if (cstop->op_private & OPpCONST_BARE &&
@@ -10065,7 +9015,7 @@ Perl_newRANGE(pTHX_ I32 flags, OP *left,
     flip->op_private =  left->op_type == OP_CONST ? OPpFLIP_LINENUM : 0;
     flop->op_private = right->op_type == OP_CONST ? OPpFLIP_LINENUM : 0;
 
-    /* check barewords before they might be optimized aways */
+    /* check barewords before they might be optimized away */
     if (flip->op_private && cSVOPx(left)->op_private & OPpCONST_STRICT)
         no_bareword_allowed(left);
     if (flop->op_private && cSVOPx(right)->op_private & OPpCONST_STRICT)
@@ -10097,6 +9047,8 @@ unused and should always be 1.
 OP *
 Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP *expr, OP *block)
 {
+    PERL_ARGS_ASSERT_NEWLOOPOP;
+
     OP* listop;
     OP* o;
     const bool once = block && block->op_flags & OPf_SPECIAL &&
@@ -10104,48 +9056,46 @@ Perl_newLOOPOP(pTHX_ I32 flags, I32 debu
 
     PERL_UNUSED_ARG(debuggable);
 
-    if (expr) {
-        if (once && (
-              (expr->op_type == OP_CONST && !SvTRUE(((SVOP*)expr)->op_sv))
-           || (  expr->op_type == OP_NOT
-              && cUNOPx(expr)->op_first->op_type == OP_CONST
-              && SvTRUE(cSVOPx_sv(cUNOPx(expr)->op_first))
-              )
-           ))
-            /* Return the block now, so that S_new_logop does not try to
-               fold it away. */
-        {
-            op_free(expr);
-            return block;	/* do {} while 0 does once */
-        }
+    if (once && (
+          (expr->op_type == OP_CONST && !SvTRUE(cSVOPx(expr)->op_sv))
+       || (  expr->op_type == OP_NOT
+          && cUNOPx(expr)->op_first->op_type == OP_CONST
+          && SvTRUE(cSVOPx_sv(cUNOPx(expr)->op_first))
+          )
+       ))
+        /* Return the block now, so that S_new_logop does not try to
+           fold it away. */
+    {
+        op_free(expr);
+        return block;	/* do {} while 0 does once */
+    }
 
-        if (expr->op_type == OP_READLINE
-            || expr->op_type == OP_READDIR
-            || expr->op_type == OP_GLOB
-            || expr->op_type == OP_EACH || expr->op_type == OP_AEACH
-            || (expr->op_type == OP_NULL && expr->op_targ == OP_GLOB)) {
-            expr = newUNOP(OP_DEFINED, 0,
-                newASSIGNOP(0, newDEFSVOP(), 0, expr) );
-        } else if (expr->op_flags & OPf_KIDS) {
-            const OP * const k1 = ((UNOP*)expr)->op_first;
-            const OP * const k2 = k1 ? OpSIBLING(k1) : NULL;
-            switch (expr->op_type) {
-              case OP_NULL:
-                if (k2 && (k2->op_type == OP_READLINE || k2->op_type == OP_READDIR)
-                      && (k2->op_flags & OPf_STACKED)
-                      && ((k1->op_flags & OPf_WANT) == OPf_WANT_SCALAR))
-                    expr = newUNOP(OP_DEFINED, 0, expr);
-                break;
+    if (expr->op_type == OP_READLINE
+        || expr->op_type == OP_READDIR
+        || expr->op_type == OP_GLOB
+        || expr->op_type == OP_EACH || expr->op_type == OP_AEACH
+        || (expr->op_type == OP_NULL && expr->op_targ == OP_GLOB)) {
+        expr = newUNOP(OP_DEFINED, 0,
+            newASSIGNOP(0, newDEFSVOP(), 0, expr) );
+    } else if (expr->op_flags & OPf_KIDS) {
+        const OP * const k1 = cUNOPx(expr)->op_first;
+        const OP * const k2 = k1 ? OpSIBLING(k1) : NULL;
+        switch (expr->op_type) {
+          case OP_NULL:
+            if (k2 && (k2->op_type == OP_READLINE || k2->op_type == OP_READDIR)
+                  && (k2->op_flags & OPf_STACKED)
+                  && ((k1->op_flags & OPf_WANT) == OPf_WANT_SCALAR))
+                expr = newUNOP(OP_DEFINED, 0, expr);
+            break;
 
-              case OP_SASSIGN:
-                if (k1 && (k1->op_type == OP_READDIR
-                      || k1->op_type == OP_GLOB
-                      || (k1->op_type == OP_NULL && k1->op_targ == OP_GLOB)
-                     || k1->op_type == OP_EACH
-                     || k1->op_type == OP_AEACH))
-                    expr = newUNOP(OP_DEFINED, 0, expr);
-                break;
-            }
+          case OP_SASSIGN:
+            if (k1 && (k1->op_type == OP_READDIR
+                  || k1->op_type == OP_GLOB
+                  || (k1->op_type == OP_NULL && k1->op_targ == OP_GLOB)
+                  || k1->op_type == OP_EACH
+                  || k1->op_type == OP_AEACH))
+                expr = newUNOP(OP_DEFINED, 0, expr);
+            break;
         }
     }
 
@@ -10161,13 +9111,13 @@ Perl_newLOOPOP(pTHX_ I32 flags, I32 debu
     }
 
     if (listop)
-        ((LISTOP*)listop)->op_last->op_next = LINKLIST(o);
+        cLISTOPx(listop)->op_last->op_next = LINKLIST(o);
 
     if (once && o != listop)
     {
         assert(cUNOPo->op_first->op_type == OP_AND
             || cUNOPo->op_first->op_type == OP_OR);
-        o->op_next = ((LOGOP*)cUNOPo->op_first)->op_other;
+        o->op_next = cLOGOPx(cUNOPo->op_first)->op_other;
     }
 
     if (o == listop)
@@ -10224,7 +9174,7 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 deb
             expr = newUNOP(OP_DEFINED, 0,
                 newASSIGNOP(0, newDEFSVOP(), 0, expr) );
         } else if (expr->op_flags & OPf_KIDS) {
-            const OP * const k1 = ((UNOP*)expr)->op_first;
+            const OP * const k1 = cUNOPx(expr)->op_first;
             const OP * const k2 = (k1) ? OpSIBLING(k1) : NULL;
             switch (expr->op_type) {
               case OP_NULL:
@@ -10275,7 +9225,7 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 deb
             return expr;		/* listop already freed by new_logop */
         }
         if (listop)
-            ((LISTOP*)listop)->op_last->op_next =
+            cLISTOPx(listop)->op_last->op_next =
                 (o == listop ? redo : LINKLIST(o));
     }
     else
@@ -10371,7 +9321,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
         else if (sv->op_type == OP_NULL && sv->op_targ == OP_SREFGEN)
             NOOP;
         else if (sv->op_type == OP_LIST) {
-            LISTOP *list = (LISTOP *) sv;
+            LISTOP *list = cLISTOPx(sv);
             OP *pushmark = list->op_first;
             OP *first_padsv;
             UNOP *padsv;
@@ -10393,7 +9343,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
 
             /* There should be at least one more PADSV to find, and the ops
                should have consecutive values in targ: */
-            padsv = (UNOP *) OpSIBLING(first_padsv);
+            padsv = cUNOPx(OpSIBLING(first_padsv));
             do {
                 if (!padsv || padsv->op_type != OP_PADSV) {
                     Perl_croak(aTHX_ "panic: newFORLOOP, found %s at %zd, expecting padsv",
@@ -10406,7 +9356,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
                                how_many_more, padsv->op_targ, padoff + how_many_more);
                 }
 
-                padsv = (UNOP *) OpSIBLING(padsv);
+                padsv = cUNOPx(OpSIBLING(padsv));
             } while (padsv);
 
             /* OK, this optree has the shape that we expected. So now *we*
@@ -10416,13 +9366,13 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
 
             i = padoff;
 
-            padsv = (UNOP *) OpSIBLING(first_padsv);
+            padsv = cUNOPx(OpSIBLING(first_padsv));
             do {
                 ++i;
                 padsv->op_targ = 0;
                 PAD_COMPNAME_GEN_set(i, PERL_INT_MAX);
 
-                padsv = (UNOP *) OpSIBLING(padsv);
+                padsv = cUNOPx(OpSIBLING(padsv));
             } while (padsv);
 
             op_free(sv);
@@ -10444,19 +9394,19 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
     }
 
     if (expr->op_type == OP_RV2AV || expr->op_type == OP_PADAV) {
-        expr = op_lvalue(force_list(scalar(ref(expr, OP_ITER)), TRUE), OP_GREPSTART);
+        expr = op_lvalue(op_force_list(scalar(ref(expr, OP_ITER))), OP_GREPSTART);
         iterflags |= OPf_STACKED;
     }
     else if (expr->op_type == OP_NULL &&
              (expr->op_flags & OPf_KIDS) &&
-             ((BINOP*)expr)->op_first->op_type == OP_FLOP)
+             cBINOPx(expr)->op_first->op_type == OP_FLOP)
     {
         /* Basically turn for($x..$y) into the same as for($x,$y), but we
          * set the STACKED flag to indicate that these values are to be
          * treated as min/max values by 'pp_enteriter'.
          */
-        const UNOP* const flip = (UNOP*)((UNOP*)((BINOP*)expr)->op_first)->op_first;
-        LOGOP* const range = (LOGOP*) flip->op_first;
+        const UNOP* const flip = cUNOPx(cUNOPx(cBINOPx(expr)->op_first)->op_first);
+        LOGOP* const range = cLOGOPx(flip->op_first);
         OP* const left  = range->op_first;
         OP* const right = OpSIBLING(left);
         LISTOP* listop;
@@ -10465,7 +9415,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
         /* detach range's children */
         op_sibling_splice((OP*)range, NULL, -1, NULL);
 
-        listop = (LISTOP*)newLISTOP(OP_LIST, 0, left, right);
+        listop = cLISTOPx(newLISTOP(OP_LIST, 0, left, right));
         listop->op_first->op_next = range->op_next;
         left->op_next = range->op_other;
         right->op_next = (OP*)listop;
@@ -10477,7 +9427,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, O
         iterflags |= OPf_STACKED;
     }
     else {
-        expr = op_lvalue(force_list(expr, TRUE), OP_GREPSTART);
+        expr = op_lvalue(op_force_list(expr), OP_GREPSTART);
     }
 
     loop = (LOOP*)op_convert_list(OP_ENTERITER, iterflags,
@@ -10554,14 +9504,14 @@ Perl_newLOOPEX(pTHX_ I32 type, OP *label
 
     /* Check for a constant argument */
     if (label->op_type == OP_CONST) {
-            SV * const sv = ((SVOP *)label)->op_sv;
+            SV * const sv = cSVOPx(label)->op_sv;
             STRLEN l;
             const char *s = SvPV_const(sv,l);
             if (l == strlen(s)) {
                 o = newPVOP(type,
-                            SvUTF8(((SVOP*)label)->op_sv),
+                            SvUTF8(cSVOPx(label)->op_sv),
                             savesharedpv(
-                                SvPV_nolen_const(((SVOP*)label)->op_sv)));
+                                SvPV_nolen_const(cSVOPx(label)->op_sv)));
             }
     }
 
@@ -10828,9 +9778,12 @@ Perl_newDEFEROP(pTHX_ I32 flags, OP *blo
 
     PERL_ARGS_ASSERT_NEWDEFEROP;
 
+    forbid_outofblock_ops(block,
+        (flags & (OPpDEFER_FINALLY << 8)) ? "a \"finally\" block" : "a \"defer\" block");
+
     start = LINKLIST(block);
 
-    /* Hide the block inside an OP_NULL with no exection */
+    /* Hide the block inside an OP_NULL with no execution */
     block = newUNOP(OP_NULL, 0, block);
     block->op_next = block;
 
@@ -10923,7 +9876,7 @@ Perl_cv_ckproto_len_flags(pTHX_ const CV
         else if (SvPOK(gv) && *SvPVX((SV *)gv) == '&')
             name = newSVpvn_flags(SvPVX((SV *)gv)+1, SvCUR(gv)-1, SvUTF8(gv)|SVs_TEMP);
         else if (flags & CV_CKPROTO_CURSTASH || SvROK(gv)) {
-            name = sv_2mortal(newSVhek(HvNAME_HEK(PL_curstash)));
+            name = newSVhek_mortal(HvNAME_HEK(PL_curstash));
             sv_catpvs(name, "::");
             if (SvROK(gv)) {
                 assert (SvTYPE(SvRV_const(gv)) == SVt_PVCV);
@@ -11034,7 +9987,7 @@ S_op_const_sv(pTHX_ const OP *o, CV *cv,
             SAVEFREESV(sv);
         }
         else if (allow_lex && type == OP_PADSV) {
-                if (PAD_COMPNAME_FLAGS(o->op_targ) & PADNAMEt_OUTER)
+                if (PAD_COMPNAME_FLAGS(o->op_targ) & PADNAMEf_OUTER)
                 {
                     sv = &PL_sv_undef; /* an arbitrary non-null value */
                     padsv = TRUE;
@@ -11152,8 +10105,8 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP
 
     if (proto) {
         assert(proto->op_type == OP_CONST);
-        ps = SvPV_const(((SVOP*)proto)->op_sv, ps_len);
-        ps_utf8 = SvUTF8(((SVOP*)proto)->op_sv);
+        ps = SvPV_const(cSVOPx(proto)->op_sv, ps_len);
+        ps_utf8 = SvUTF8(cSVOPx(proto)->op_sv);
     }
     else
         ps = NULL;
@@ -11267,7 +10220,7 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP
         CvCONST_on(cv);
         CvISXSUB_on(cv);
         PoisonPADLIST(cv);
-        CvFLAGS(cv) |= CvMETHOD(compcv);
+        CvFLAGS(cv) |= CvNOWARN_AMBIGUOUS(compcv);
         op_free(block);
         SvREFCNT_dec(compcv);
         PL_compcv = NULL;
@@ -11393,10 +10346,10 @@ Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP
             GV * const db_postponed = gv_fetchpvs("DB::postponed",
                                                   GV_ADDMULTI, SVt_PVHV);
             HV *hv;
-            SV * const sv = Perl_newSVpvf(aTHX_ "%s:%ld-%ld",
+            SV * const sv = Perl_newSVpvf(aTHX_ "%s:%" LINE_Tf "-%" LINE_Tf,
                                           CopFILE(PL_curcop),
-                                          (long)PL_subline,
-                                          (long)CopLINE(PL_curcop));
+                                          (line_t)PL_subline,
+                                          CopLINE(PL_curcop));
             if (HvNAME_HEK(PL_curstash)) {
                 sv_sethek(tmpstr, HvNAME_HEK(PL_curstash));
                 sv_catpvs(tmpstr, "::");
@@ -11574,6 +10527,7 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
     bool has_name;
     bool name_is_utf8 = o && !o_is_gv && SvUTF8(cSVOPo->op_sv);
     bool evanescent = FALSE;
+    bool isBEGIN = FALSE;
     OP *start = NULL;
 #ifdef PERL_DEBUG_READONLY_OPS
     OPSLAB *slab = NULL;
@@ -11604,9 +10558,9 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
         has_name = TRUE;
     } else if (PERLDB_NAMEANON && CopLINE(PL_curcop)) {
         SV * const sv = sv_newmortal();
-        Perl_sv_setpvf(aTHX_ sv, "%s[%s:%" IVdf "]",
+        Perl_sv_setpvf(aTHX_ sv, "%s[%s:%" LINE_Tf "]",
                        PL_curstash ? "__ANON__" : "__ANON__::__ANON__",
-                       CopFILE(PL_curcop), (IV)CopLINE(PL_curcop));
+                       CopFILE(PL_curcop), CopLINE(PL_curcop));
         gv = gv_fetchsv(sv, gv_fetch_flags, SVt_PVCV);
         has_name = TRUE;
     } else if (PL_curstash) {
@@ -11626,14 +10580,6 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
         }
     }
 
-    if (proto) {
-        assert(proto->op_type == OP_CONST);
-        ps = SvPV_const(((SVOP*)proto)->op_sv, ps_len);
-        ps_utf8 = SvUTF8(((SVOP*)proto)->op_sv);
-    }
-    else
-        ps = NULL;
-
     if (o)
         SAVEFREEOP(o);
     if (proto)
@@ -11641,6 +10587,37 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
     if (attrs)
         SAVEFREEOP(attrs);
 
+    /* we need this in two places later on, so set it up here */
+    if (name && block) {
+        const char *s = (char *) my_memrchr(name, ':', namlen);
+        s = s ? s+1 : name;
+        isBEGIN = strEQ(s,"BEGIN");
+    }
+
+    if (isBEGIN) {
+        /* Make sure that we do not have any prototypes or
+         * attributes associated with this BEGIN block, as the block
+         * is already done and dusted, and we will assert or worse
+         * if we try to attach the prototype to the now essentially
+         * nonexistent sub. */
+        if (proto)
+            /* diag_listed_as: %s on BEGIN block ignored */
+            Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "Prototype on BEGIN block ignored");
+        if (attrs)
+            /* diag_listed_as: %s on BEGIN block ignored */
+            Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "Attribute on BEGIN block ignored");
+        proto = NULL;
+        attrs = NULL;
+    }
+
+    if (proto) {
+        assert(proto->op_type == OP_CONST);
+        ps = SvPV_const(cSVOPx(proto)->op_sv, ps_len);
+        ps_utf8 = SvUTF8(cSVOPx(proto)->op_sv);
+    }
+    else
+        ps = NULL;
+
     if (ec) {
         op_free(block);
 
@@ -11650,18 +10627,14 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
             cv = PL_compcv;
 
         PL_compcv = 0;
-        if (name && block) {
-            const char *s = (char *) my_memrchr(name, ':', namlen);
-            s = s ? s+1 : name;
-            if (strEQ(s, "BEGIN")) {
-                if (PL_in_eval & EVAL_KEEPERR)
-                    Perl_croak_nocontext("BEGIN not safe after errors--compilation aborted");
-                else {
-                    SV * const errsv = ERRSV;
-                    /* force display of errors found but not reported */
-                    sv_catpvs(errsv, "BEGIN not safe after errors--compilation aborted");
-                    Perl_croak_nocontext("%" SVf, SVfARG(errsv));
-                }
+        if (isBEGIN) {
+            if (PL_in_eval & EVAL_KEEPERR)
+                Perl_croak_nocontext("BEGIN not safe after errors--compilation aborted");
+            else {
+                SV * const errsv = ERRSV;
+                /* force display of errors found but not reported */
+                sv_catpvs(errsv, "BEGIN not safe after errors--compilation aborted");
+                Perl_croak_nocontext("%" SVf, SVfARG(errsv));
             }
         }
         goto done;
@@ -11711,6 +10684,8 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
 
     if (block) {
         assert(PL_parser);
+        if (CvIsMETHOD(PL_compcv))
+            block = class_wrap_method_body(block);
         /* This makes sub {}; work as expected.  */
         if (block->op_type == OP_STUB) {
             const line_t l = PL_parser->copline;
@@ -11756,7 +10731,9 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
             if (ckWARN(WARN_REDEFINE)
              || (  ckWARN_d(WARN_REDEFINE)
                 && (  !const_sv || SvRV(gv) == const_sv
-                   || sv_cmp(SvRV(gv), const_sv)  ))) {
+                      || SvTYPE(const_sv) == SVt_PVAV
+                      || SvTYPE(SvRV(gv)) == SVt_PVAV
+                      || sv_cmp(SvRV(gv), const_sv)  ))) {
                 assert(cSVOPo);
                 Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
                           "Constant subroutine %" SVf " redefined",
@@ -11805,10 +10782,10 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
             CvCONST_on(cv);
             CvISXSUB_on(cv);
             PoisonPADLIST(cv);
-            CvFLAGS(cv) |= CvMETHOD(PL_compcv);
+            CvFLAGS(cv) |= CvNOWARN_AMBIGUOUS(PL_compcv);
         }
         else {
-            if (isGV(gv) || CvMETHOD(PL_compcv)) {
+            if (isGV(gv) || CvNOWARN_AMBIGUOUS(PL_compcv)) {
                 if (name && isGV(gv))
                     GvCV_set(gv, NULL);
                 cv = newCONSTSUB_flags(
@@ -11817,7 +10794,7 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
                 );
                 assert(cv);
                 assert(SvREFCNT((SV*)cv) != 0);
-                CvFLAGS(cv) |= CvMETHOD(PL_compcv);
+                CvFLAGS(cv) |= CvNOWARN_AMBIGUOUS(PL_compcv);
             }
             else {
                 if (!SvROK(gv)) {
@@ -11981,10 +10958,10 @@ Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o
             GV * const db_postponed = gv_fetchpvs("DB::postponed",
                                                   GV_ADDMULTI, SVt_PVHV);
             HV *hv;
-            SV * const sv = Perl_newSVpvf(aTHX_ "%s:%ld-%ld",
+            SV * const sv = Perl_newSVpvf(aTHX_ "%s:%" LINE_Tf "-%" LINE_Tf,
                                           CopFILE(PL_curcop),
-                                          (long)PL_subline,
-                                          (long)CopLINE(PL_curcop));
+                                          (line_t)PL_subline,
+                                          CopLINE(PL_curcop));
             (void)hv_store_ent(GvHV(PL_DBsub), tmpstr, sv, 0);
             hv = GvHVn(db_postponed);
             if (HvTOTALKEYS(hv) > 0 && hv_exists_ent(hv, tmpstr, 0)) {
@@ -12065,12 +11042,80 @@ S_process_special_blocks(pTHX_ I32 floor
 
     if (*name == 'B') {
         if (strEQ(name, "BEGIN")) {
+            /* can't goto a declaration, but a null statement is fine */
+            module_install_hack: ;
             const I32 oldscope = PL_scopestack_ix;
+            SV *max_nest_sv = NULL;
+            IV max_nest_iv;
             dSP;
             (void)CvGV(cv);
             if (floor) LEAVE_SCOPE(floor);
             ENTER;
 
+            /* Make sure we don't recurse too deeply into BEGIN blocks,
+             * but let the user control it via the new control variable
+             *
+             *   ${^MAX_NESTED_EVAL_BEGIN_BLOCKS}
+             *
+             * Note that this code (when max_nest_iv is 1) *looks* like
+             * it would block the following code:
+             *
+             * BEGIN { $n |= 1; BEGIN { $n |= 2; BEGIN { $n |= 4 } } }
+             *
+             * but it does *not*; this code will happily execute when
+             * the nest limit is 1. The reason is revealed in the
+             * execution order. If we could watch $n in this code, we
+             * would see the following order of modifications:
+             *
+             * $n |= 4;
+             * $n |= 2;
+             * $n |= 1;
+             *
+             * This is because nested BEGIN blocks execute in FILO
+             * order; this is because BEGIN blocks are defined to
+             * execute immediately once they are closed. So the
+             * innermost block is closed first, and it executes, which
+             * increments the eval_begin_nest_depth by 1, and then it
+             * finishes, which drops eval_begin_nest_depth back to its
+             * previous value. This happens in turn as each BEGIN is
+             * completed.
+             *
+             * The *only* place these counts matter is when BEGIN is
+             * inside of some kind of string eval, either a require or a
+             * true eval. Only in that case would there be any nesting
+             * and would perl try to execute a BEGIN before another had
+             * completed.
+             *
+             * Thus this logic puts an upper limit on module nesting.
+             * Hence the reason we let the user control it, although it
+             * is hard to imagine a 1000-level-deep module use
+             * dependency even in a very large codebase. The real
+             * objective is to prevent code like this:
+             *
+             * perl -e'sub f { eval "BEGIN { f() }" } f()'
+             *
+             * from segfaulting due to stack exhaustion.
+             *
+             */
+            max_nest_sv = get_sv(PERL_VAR_MAX_NESTED_EVAL_BEGIN_BLOCKS, GV_ADD);
+            if (!SvOK(max_nest_sv))
+                sv_setiv(max_nest_sv, PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT);
+            max_nest_iv = SvIV(max_nest_sv);
+            if (max_nest_iv < 0) {
+                max_nest_iv = PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT;
+                sv_setiv(max_nest_sv, max_nest_iv);
+            }
+
+            /* (UV) below is just to silence a compiler warning, and should be
+             * effectively a no-op, as max_nest_iv will never be negative here.
+             */
+            if (PL_eval_begin_nest_depth >= (UV)max_nest_iv) {
+                Perl_croak(aTHX_ "Too many nested BEGIN blocks, maximum of %" IVdf " allowed",
+                             max_nest_iv);
+            }
+            SAVEINT(PL_eval_begin_nest_depth);
+            PL_eval_begin_nest_depth++;
+
             SAVEVPTR(PL_curcop);
             if (PL_curcop == &PL_compiling) {
                 /* Avoid pushing the "global" &PL_compiling onto the
@@ -12133,6 +11178,28 @@ S_process_special_blocks(pTHX_ I32 floor
                 return FALSE;
         } else if (*name == 'I') {
             if (strEQ(name, "INIT")) {
+#ifdef MI_INIT_WORKAROUND_PACK
+                {
+                    HV *hv = CvSTASH(cv);
+                    STRLEN len = hv ? HvNAMELEN(hv) : 0;
+                    char *pv = (len == sizeof(MI_INIT_WORKAROUND_PACK)-1)
+                            ? HvNAME_get(hv) : NULL;
+                    if ( pv && strEQ(pv, MI_INIT_WORKAROUND_PACK) ) {
+                        /* old versions of Module::Install::DSL contain code
+                         * that creates an INIT in eval, which expects to run
+                         * after an exit(0) in BEGIN. This unfortunately
+                         * breaks a lot of code in the CPAN river. So we magically
+                         * convert INIT blocks from Module::Install::DSL to
+                         * be BEGIN blocks. Which works out, since the INIT
+                         * blocks it creates are eval'ed and so are late.
+                         */
+                        Perl_warn(aTHX_ "Treating %s::INIT block as BEGIN block as workaround",
+                                MI_INIT_WORKAROUND_PACK);
+                        goto module_install_hack;
+                    }
+
+                }
+#endif
                 if (PL_main_start)
                     /* diag_listed_as: Too late to run %s block */
                     Perl_ck_warner(aTHX_ packWARN(WARN_VOID),
@@ -12599,15 +11666,21 @@ OP *
 Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block)
 {
     SV * const cv = MUTABLE_SV(newATTRSUB(floor, 0, proto, attrs, block));
+
+    bool is_const = CvANONCONST(cv);
+
     OP * anoncode =
-        newSVOP(OP_ANONCODE, 0,
+        newSVOP(OP_ANONCODE, is_const ? 0 : OPf_REF,
                 cv);
-    if (CvANONCONST(cv))
-        anoncode = newUNOP(OP_ANONCONST, 0,
+
+    if (is_const) {
+        anoncode = newUNOP(OP_ANONCONST, OPf_REF,
                            op_convert_list(OP_ENTERSUB,
                                            OPf_STACKED|OPf_WANT_SCALAR,
                                            anoncode));
-    return newUNOP(OP_REFGEN, 0, anoncode);
+    }
+
+    return anoncode;
 }
 
 OP *
@@ -12683,6 +11756,13 @@ Perl_newGVREF(pTHX_ I32 type, OP *o)
 {
     if (type == OP_MAPSTART || type == OP_GREPSTART || type == OP_SORT)
         return newUNOP(OP_NULL, 0, o);
+
+    if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED &&
+        ((PL_opargs[type] >> OASHIFT) & 7) == OA_FILEREF &&
+        o->op_type == OP_CONST && (o->op_private & OPpCONST_BARE)) {
+        no_bareword_filehandle(SvPVX(cSVOPo_sv));
+    }
+
     return ref(newUNOP(OP_RV2GV, OPf_REF, o), type);
 }
 
@@ -12856,5671 +11936,3091 @@ is_dollar_bracket(pTHX_ const OP * const
 
 OP *
 Perl_ck_cmp(pTHX_ OP *o)
-{
-    bool is_eq;
-    bool neg;
-    bool reverse;
-    bool iv0;
-    OP *indexop, *constop, *start;
-    SV *sv;
-    IV iv;
-
-    PERL_ARGS_ASSERT_CK_CMP;
-
-    is_eq = (   o->op_type == OP_EQ
-             || o->op_type == OP_NE
-             || o->op_type == OP_I_EQ
-             || o->op_type == OP_I_NE);
-
-    if (!is_eq && ckWARN(WARN_SYNTAX)) {
-        const OP *kid = cUNOPo->op_first;
-        if (kid &&
-            (
-                (   is_dollar_bracket(aTHX_ kid)
-                 && OpSIBLING(kid) && OpSIBLING(kid)->op_type == OP_CONST
-                )
-             || (   kid->op_type == OP_CONST
-                 && (kid = OpSIBLING(kid)) && is_dollar_bracket(aTHX_ kid)
-                )
-           )
-        )
-            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                        "$[ used in %s (did you mean $] ?)", OP_DESC(o));
-    }
-
-    /* convert (index(...) == -1) and variations into
-     *   (r)index/BOOL(,NEG)
-     */
-
-    reverse = FALSE;
-
-    indexop = cUNOPo->op_first;
-    constop = OpSIBLING(indexop);
-    start = NULL;
-    if (indexop->op_type == OP_CONST) {
-        constop = indexop;
-        indexop = OpSIBLING(constop);
-        start = constop;
-        reverse = TRUE;
-    }
-
-    if (indexop->op_type != OP_INDEX && indexop->op_type != OP_RINDEX)
-        return o;
-
-    /* ($lex = index(....)) == -1 */
-    if (indexop->op_private & OPpTARGET_MY)
-        return o;
-
-    if (constop->op_type != OP_CONST)
-        return o;
-
-    sv = cSVOPx_sv(constop);
-    if (!(sv && SvIOK_notUV(sv)))
-        return o;
-
-    iv = SvIVX(sv);
-    if (iv != -1 && iv != 0)
-        return o;
-    iv0 = (iv == 0);
-
-    if (o->op_type == OP_LT || o->op_type == OP_I_LT) {
-        if (!(iv0 ^ reverse))
-            return o;
-        neg = iv0;
-    }
-    else if (o->op_type == OP_LE || o->op_type == OP_I_LE) {
-        if (iv0 ^ reverse)
-            return o;
-        neg = !iv0;
-    }
-    else if (o->op_type == OP_GE || o->op_type == OP_I_GE) {
-        if (!(iv0 ^ reverse))
-            return o;
-        neg = !iv0;
-    }
-    else if (o->op_type == OP_GT || o->op_type == OP_I_GT) {
-        if (iv0 ^ reverse)
-            return o;
-        neg = iv0;
-    }
-    else if (o->op_type == OP_EQ || o->op_type == OP_I_EQ) {
-        if (iv0)
-            return o;
-        neg = TRUE;
-    }
-    else {
-        assert(o->op_type == OP_NE || o->op_type == OP_I_NE);
-        if (iv0)
-            return o;
-        neg = FALSE;
-    }
-
-    indexop->op_flags &= ~OPf_PARENS;
-    indexop->op_flags |= (o->op_flags & OPf_PARENS);
-    indexop->op_private |= OPpTRUEBOOL;
-    if (neg)
-        indexop->op_private |= OPpINDEX_BOOLNEG;
-    /* cut out the index op and free the eq,const ops */
-    (void)op_sibling_splice(o, start, 1, NULL);
-    op_free(o);
-
-    return indexop;
-}
-
-
-OP *
-Perl_ck_concat(pTHX_ OP *o)
-{
-    const OP * const kid = cUNOPo->op_first;
-
-    PERL_ARGS_ASSERT_CK_CONCAT;
-    PERL_UNUSED_CONTEXT;
-
-    /* reuse the padtmp returned by the concat child */
-    if (kid->op_type == OP_CONCAT && !(kid->op_private & OPpTARGET_MY) &&
-            !(kUNOP->op_first->op_flags & OPf_MOD))
-    {
-        o->op_flags |= OPf_STACKED;
-        o->op_private |= OPpCONCAT_NESTED;
-    }
-    return o;
-}
-
-OP *
-Perl_ck_spair(pTHX_ OP *o)
-{
-
-    PERL_ARGS_ASSERT_CK_SPAIR;
-
-    if (o->op_flags & OPf_KIDS) {
-        OP* newop;
-        OP* kid;
-        OP* kidkid;
-        const OPCODE type = o->op_type;
-        o = modkids(ck_fun(o), type);
-        kid    = cUNOPo->op_first;
-        kidkid = kUNOP->op_first;
-        newop = OpSIBLING(kidkid);
-        if (newop) {
-            const OPCODE type = newop->op_type;
-            if (OpHAS_SIBLING(newop))
-                return o;
-            if (o->op_type == OP_REFGEN
-             && (  type == OP_RV2CV
-                || (  !(newop->op_flags & OPf_PARENS)
-                   && (  type == OP_RV2AV || type == OP_PADAV
-                      || type == OP_RV2HV || type == OP_PADHV))))
-                NOOP; /* OK (allow srefgen for \@a and \%h) */
-            else if (OP_GIMME(newop,0) != G_SCALAR)
-                return o;
-        }
-        /* excise first sibling */
-        op_sibling_splice(kid, NULL, 1, NULL);
-        op_free(kidkid);
-    }
-    /* transforms OP_REFGEN into OP_SREFGEN, OP_CHOP into OP_SCHOP,
-     * and OP_CHOMP into OP_SCHOMP */
-    o->op_ppaddr = PL_ppaddr[++o->op_type];
-    return ck_fun(o);
-}
-
-OP *
-Perl_ck_delete(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_DELETE;
-
-    o = ck_fun(o);
-    o->op_private = 0;
-    if (o->op_flags & OPf_KIDS) {
-        OP * const kid = cUNOPo->op_first;
-        switch (kid->op_type) {
-        case OP_ASLICE:
-            o->op_flags |= OPf_SPECIAL;
-            /* FALLTHROUGH */
-        case OP_HSLICE:
-            o->op_private |= OPpSLICE;
-            break;
-        case OP_AELEM:
-            o->op_flags |= OPf_SPECIAL;
-            /* FALLTHROUGH */
-        case OP_HELEM:
-            break;
-        case OP_KVASLICE:
-            o->op_flags |= OPf_SPECIAL;
-            /* FALLTHROUGH */
-        case OP_KVHSLICE:
-            o->op_private |= OPpKVSLICE;
-            break;
-        default:
-            Perl_croak(aTHX_ "delete argument is not a HASH or ARRAY "
-                             "element or slice");
-        }
-        if (kid->op_private & OPpLVAL_INTRO)
-            o->op_private |= OPpLVAL_INTRO;
-        op_null(kid);
-    }
-    return o;
-}
-
-OP *
-Perl_ck_eof(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_EOF;
-
-    if (o->op_flags & OPf_KIDS) {
-        OP *kid;
-        if (cLISTOPo->op_first->op_type == OP_STUB) {
-            OP * const newop
-                = newUNOP(o->op_type, OPf_SPECIAL, newGVOP(OP_GV, 0, PL_argvgv));
-            op_free(o);
-            o = newop;
-        }
-        o = ck_fun(o);
-        kid = cLISTOPo->op_first;
-        if (kid->op_type == OP_RV2GV)
-            kid->op_private |= OPpALLOW_FAKE;
-    }
-    return o;
-}
-
-
-OP *
-Perl_ck_eval(pTHX_ OP *o)
-{
-
-    PERL_ARGS_ASSERT_CK_EVAL;
-
-    PL_hints |= HINT_BLOCK_SCOPE;
-    if (o->op_flags & OPf_KIDS) {
-        SVOP * const kid = (SVOP*)cUNOPo->op_first;
-        assert(kid);
-
-        if (o->op_type == OP_ENTERTRY) {
-            LOGOP *enter;
-
-            /* cut whole sibling chain free from o */
-            op_sibling_splice(o, NULL, -1, NULL);
-            op_free(o);
-
-            enter = alloc_LOGOP(OP_ENTERTRY, NULL, NULL);
-
-            /* establish postfix order */
-            enter->op_next = (OP*)enter;
-
-            o = op_prepend_elem(OP_LINESEQ, (OP*)enter, (OP*)kid);
-            OpTYPE_set(o, OP_LEAVETRY);
-            enter->op_other = o;
-            return o;
-        }
-        else {
-            scalar((OP*)kid);
-            S_set_haseval(aTHX);
-        }
-    }
-    else {
-        const U8 priv = o->op_private;
-        op_free(o);
-        /* the newUNOP will recursively call ck_eval(), which will handle
-         * all the stuff at the end of this function, like adding
-         * OP_HINTSEVAL
-         */
-        return newUNOP(OP_ENTEREVAL, priv <<8, newDEFSVOP());
-    }
-    o->op_targ = (PADOFFSET)PL_hints;
-    if (o->op_private & OPpEVAL_BYTES) o->op_targ &= ~HINT_UTF8;
-    if ((PL_hints & HINT_LOCALIZE_HH) != 0
-     && !(o->op_private & OPpEVAL_COPHH) && GvHV(PL_hintgv)) {
-        /* Store a copy of %^H that pp_entereval can pick up. */
-        HV *hh = hv_copy_hints_hv(GvHV(PL_hintgv));
-        OP *hhop;
-        STOREFEATUREBITSHH(hh);
-        hhop = newSVOP(OP_HINTSEVAL, 0, MUTABLE_SV(hh));
-        /* append hhop to only child  */
-        op_sibling_splice(o, cUNOPo->op_first, 0, hhop);
-
-        o->op_private |= OPpEVAL_HAS_HH;
-    }
-    if (!(o->op_private & OPpEVAL_BYTES)
-         && FEATURE_UNIEVAL_IS_ENABLED)
-            o->op_private |= OPpEVAL_UNICODE;
-    return o;
-}
-
-OP *
-Perl_ck_trycatch(pTHX_ OP *o)
-{
-    LOGOP *enter;
-    OP *to_free = NULL;
-    OP *trykid, *catchkid;
-    OP *catchroot, *catchstart;
-
-    PERL_ARGS_ASSERT_CK_TRYCATCH;
-
-    trykid = cUNOPo->op_first;
-    if(trykid->op_type == OP_NULL || trykid->op_type == OP_PUSHMARK) {
-        to_free = trykid;
-        trykid = OpSIBLING(trykid);
-    }
-    catchkid = OpSIBLING(trykid);
-
-    assert(trykid->op_type == OP_POPTRY);
-    assert(catchkid->op_type == OP_CATCH);
-
-    /* cut whole sibling chain free from o */
-    op_sibling_splice(o, NULL, -1, NULL);
-    if(to_free)
-        op_free(to_free);
-    op_free(o);
-
-    enter = alloc_LOGOP(OP_ENTERTRYCATCH, NULL, NULL);
-
-    /* establish postfix order */
-    enter->op_next = (OP*)enter;
-
-    o = op_prepend_elem(OP_LINESEQ, (OP*)enter, trykid);
-    op_append_elem(OP_LINESEQ, (OP*)o, catchkid);
-
-    OpTYPE_set(o, OP_LEAVETRYCATCH);
-
-    /* The returned optree is actually threaded up slightly nonobviously in
-     * terms of its ->op_next pointers.
-     *
-     * This way, if the tryblock dies, its retop points at the OP_CATCH, but
-     * if it does not then its leavetry skips over that and continues
-     * execution past it.
-     */
-
-    /* First, link up the actual body of the catch block */
-    catchroot = OpSIBLING(cUNOPx(catchkid)->op_first);
-    catchstart = LINKLIST(catchroot);
-    cLOGOPx(catchkid)->op_other = catchstart;
-
-    o->op_next = LINKLIST(o);
-
-    /* die within try block should jump to the catch */
-    enter->op_other = catchkid;
-
-    /* after try block that doesn't die, just skip straight to leavetrycatch */
-    trykid->op_next = o;
-
-    /* after catch block, skip back up to the leavetrycatch */
-    catchroot->op_next = o;
-
-    return o;
-}
-
-OP *
-Perl_ck_exec(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_EXEC;
-
-    if (o->op_flags & OPf_STACKED) {
-        OP *kid;
-        o = ck_fun(o);
-        kid = OpSIBLING(cUNOPo->op_first);
-        if (kid->op_type == OP_RV2GV)
-            op_null(kid);
-    }
-    else
-        o = listkids(o);
-    return o;
-}
-
-OP *
-Perl_ck_exists(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_EXISTS;
-
-    o = ck_fun(o);
-    if (o->op_flags & OPf_KIDS) {
-        OP * const kid = cUNOPo->op_first;
-        if (kid->op_type == OP_ENTERSUB) {
-            (void) ref(kid, o->op_type);
-            if (kid->op_type != OP_RV2CV
-                        && !(PL_parser && PL_parser->error_count))
-                Perl_croak(aTHX_
-                          "exists argument is not a subroutine name");
-            o->op_private |= OPpEXISTS_SUB;
-        }
-        else if (kid->op_type == OP_AELEM)
-            o->op_flags |= OPf_SPECIAL;
-        else if (kid->op_type != OP_HELEM)
-            Perl_croak(aTHX_ "exists argument is not a HASH or ARRAY "
-                             "element or a subroutine");
-        op_null(kid);
-    }
-    return o;
-}
-
-OP *
-Perl_ck_rvconst(pTHX_ OP *o)
-{
-    SVOP * const kid = (SVOP*)cUNOPo->op_first;
-
-    PERL_ARGS_ASSERT_CK_RVCONST;
-
-    if (o->op_type == OP_RV2HV)
-        /* rv2hv steals the bottom bit for its own uses */
-        o->op_private &= ~OPpARG1_MASK;
-
-    o->op_private |= (PL_hints & HINT_STRICT_REFS);
-
-    if (kid->op_type == OP_CONST) {
-        int iscv;
-        GV *gv;
-        SV * const kidsv = kid->op_sv;
-
-        /* Is it a constant from cv_const_sv()? */
-        if ((SvROK(kidsv) || isGV_with_GP(kidsv)) && SvREADONLY(kidsv)) {
-            return o;
-        }
-        if (SvTYPE(kidsv) == SVt_PVAV) return o;
-        if ((o->op_private & HINT_STRICT_REFS) && (kid->op_private & OPpCONST_BARE)) {
-            const char *badthing;
-            switch (o->op_type) {
-            case OP_RV2SV:
-                badthing = "a SCALAR";
-                break;
-            case OP_RV2AV:
-                badthing = "an ARRAY";
-                break;
-            case OP_RV2HV:
-                badthing = "a HASH";
-                break;
-            default:
-                badthing = NULL;
-                break;
-            }
-            if (badthing)
-                Perl_croak(aTHX_
-                           "Can't use bareword (\"%" SVf "\") as %s ref while \"strict refs\" in use",
-                           SVfARG(kidsv), badthing);
-        }
-        /*
-         * This is a little tricky.  We only want to add the symbol if we
-         * didn't add it in the lexer.  Otherwise we get duplicate strict
-         * warnings.  But if we didn't add it in the lexer, we must at
-         * least pretend like we wanted to add it even if it existed before,
-         * or we get possible typo warnings.  OPpCONST_ENTERED says
-         * whether the lexer already added THIS instance of this symbol.
-         */
-        iscv = o->op_type == OP_RV2CV ? GV_NOEXPAND|GV_ADDMULTI : 0;
-        gv = gv_fetchsv(kidsv,
-                o->op_type == OP_RV2CV
-                        && o->op_private & OPpMAY_RETURN_CONSTANT
-                    ? GV_NOEXPAND
-                    : iscv | !(kid->op_private & OPpCONST_ENTERED),
-                iscv
-                    ? SVt_PVCV
-                    : o->op_type == OP_RV2SV
-                        ? SVt_PV
-                        : o->op_type == OP_RV2AV
-                            ? SVt_PVAV
-                            : o->op_type == OP_RV2HV
-                                ? SVt_PVHV
-                                : SVt_PVGV);
-        if (gv) {
-            if (!isGV(gv)) {
-                assert(iscv);
-                assert(SvROK(gv));
-                if (!(o->op_private & OPpMAY_RETURN_CONSTANT)
-                  && SvTYPE(SvRV(gv)) != SVt_PVCV)
-                    gv_fetchsv(kidsv, GV_ADDMULTI, SVt_PVCV);
-            }
-            OpTYPE_set(kid, OP_GV);
-            SvREFCNT_dec(kid->op_sv);
-#ifdef USE_ITHREADS
-            /* XXX hack: dependence on sizeof(PADOP) <= sizeof(SVOP) */
-            STATIC_ASSERT_STMT(sizeof(PADOP) <= sizeof(SVOP));
-            kPADOP->op_padix = pad_alloc(OP_GV, SVf_READONLY);
-            SvREFCNT_dec(PAD_SVl(kPADOP->op_padix));
-            PAD_SETSV(kPADOP->op_padix, MUTABLE_SV(SvREFCNT_inc_simple_NN(gv)));
-#else
-            kid->op_sv = SvREFCNT_inc_simple_NN(gv);
-#endif
-            kid->op_private = 0;
-            /* FAKE globs in the symbol table cause weird bugs (#77810) */
-            SvFAKE_off(gv);
-        }
-    }
-    return o;
-}
-
-OP *
-Perl_ck_ftst(pTHX_ OP *o)
-{
-    const I32 type = o->op_type;
-
-    PERL_ARGS_ASSERT_CK_FTST;
-
-    if (o->op_flags & OPf_REF) {
-        NOOP;
-    }
-    else if (o->op_flags & OPf_KIDS && cUNOPo->op_first->op_type != OP_STUB) {
-        SVOP * const kid = (SVOP*)cUNOPo->op_first;
-        const OPCODE kidtype = kid->op_type;
-
-        if (kidtype == OP_CONST && (kid->op_private & OPpCONST_BARE)
-         && !kid->op_folded) {
-            OP * const newop = newGVOP(type, OPf_REF,
-                gv_fetchsv(kid->op_sv, GV_ADD, SVt_PVIO));
-            op_free(o);
-            return newop;
-        }
-
-        if ((kidtype == OP_RV2AV || kidtype == OP_PADAV) && ckWARN(WARN_SYNTAX)) {
-            SV *name = S_op_varname_subscript(aTHX_ (OP*)kid, 2);
-            if (name) {
-                /* diag_listed_as: Array passed to stat will be coerced to a scalar%s */
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%s (did you want stat %" SVf "?)",
-                            array_passed_to_stat, name);
-            }
-            else {
-                /* diag_listed_as: Array passed to stat will be coerced to a scalar%s */
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%s", array_passed_to_stat);
-            }
-       }
-        scalar((OP *) kid);
-        if ((PL_hints & HINT_FILETEST_ACCESS) && OP_IS_FILETEST_ACCESS(o->op_type))
-            o->op_private |= OPpFT_ACCESS;
-        if (OP_IS_FILETEST(type)
-            && OP_IS_FILETEST(kidtype)
-        ) {
-            o->op_private |= OPpFT_STACKED;
-            kid->op_private |= OPpFT_STACKING;
-            if (kidtype == OP_FTTTY && (
-                   !(kid->op_private & OPpFT_STACKED)
-                || kid->op_private & OPpFT_AFTER_t
-               ))
-                o->op_private |= OPpFT_AFTER_t;
-        }
-    }
-    else {
-        op_free(o);
-        if (type == OP_FTTTY)
-            o = newGVOP(type, OPf_REF, PL_stdingv);
-        else
-            o = newUNOP(type, 0, newDEFSVOP());
-    }
-    return o;
-}
-
-OP *
-Perl_ck_fun(pTHX_ OP *o)
-{
-    const int type = o->op_type;
-    I32 oa = PL_opargs[type] >> OASHIFT;
-
-    PERL_ARGS_ASSERT_CK_FUN;
-
-    if (o->op_flags & OPf_STACKED) {
-        if ((oa & OA_OPTIONAL) && (oa >> 4) && !((oa >> 4) & OA_OPTIONAL))
-            oa &= ~OA_OPTIONAL;
-        else
-            return no_fh_allowed(o);
-    }
-
-    if (o->op_flags & OPf_KIDS) {
-        OP *prev_kid = NULL;
-        OP *kid = cLISTOPo->op_first;
-        I32 numargs = 0;
-        bool seen_optional = FALSE;
-
-        if (kid->op_type == OP_PUSHMARK ||
-            (kid->op_type == OP_NULL && kid->op_targ == OP_PUSHMARK))
-        {
-            prev_kid = kid;
-            kid = OpSIBLING(kid);
-        }
-        if (kid && kid->op_type == OP_COREARGS) {
-            bool optional = FALSE;
-            while (oa) {
-                numargs++;
-                if (oa & OA_OPTIONAL) optional = TRUE;
-                oa = oa >> 4;
-            }
-            if (optional) o->op_private |= numargs;
-            return o;
-        }
-
-        while (oa) {
-            if (oa & OA_OPTIONAL || (oa & 7) == OA_LIST) {
-                if (!kid && !seen_optional && PL_opargs[type] & OA_DEFGV) {
-                    kid = newDEFSVOP();
-                    /* append kid to chain */
-                    op_sibling_splice(o, prev_kid, 0, kid);
-                }
-                seen_optional = TRUE;
-            }
-            if (!kid) break;
-
-            numargs++;
-            switch (oa & 7) {
-            case OA_SCALAR:
-                /* list seen where single (scalar) arg expected? */
-                if (numargs == 1 && !(oa >> 4)
-                    && kid->op_type == OP_LIST && type != OP_SCALAR)
-                {
-                    return too_many_arguments_pv(o,PL_op_desc[type], 0);
-                }
-                if (type != OP_DELETE) scalar(kid);
-                break;
-            case OA_LIST:
-                if (oa < 16) {
-                    kid = 0;
-                    continue;
-                }
-                else
-                    list(kid);
-                break;
-            case OA_AVREF:
-                if ((type == OP_PUSH || type == OP_UNSHIFT)
-                    && !OpHAS_SIBLING(kid))
-                    Perl_ck_warner(aTHX_ packWARN(WARN_SYNTAX),
-                                   "Useless use of %s with no values",
-                                   PL_op_desc[type]);
-
-                if (kid->op_type == OP_CONST
-                      && (  !SvROK(cSVOPx_sv(kid))
-                         || SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVAV  )
-                        )
-                    bad_type_pv(numargs, "array", o, kid);
-                else if (kid->op_type == OP_RV2HV || kid->op_type == OP_PADHV
-                         || kid->op_type == OP_RV2GV) {
-                    bad_type_pv(1, "array", o, kid);
-                }
-                else if (kid->op_type != OP_RV2AV && kid->op_type != OP_PADAV) {
-                    yyerror_pv(Perl_form(aTHX_ "Experimental %s on scalar is now forbidden",
-                                         PL_op_desc[type]), 0);
-                }
-                else {
-                    op_lvalue(kid, type);
-                }
-                break;
-            case OA_HVREF:
-                if (kid->op_type != OP_RV2HV && kid->op_type != OP_PADHV)
-                    bad_type_pv(numargs, "hash", o, kid);
-                op_lvalue(kid, type);
-                break;
-            case OA_CVREF:
-                {
-                    /* replace kid with newop in chain */
-                    OP * const newop =
-                        S_op_sibling_newUNOP(aTHX_ o, prev_kid, OP_NULL, 0);
-                    newop->op_next = newop;
-                    kid = newop;
-                }
-                break;
-            case OA_FILEREF:
-                if (kid->op_type != OP_GV && kid->op_type != OP_RV2GV) {
-                    if (kid->op_type == OP_CONST &&
-                        (kid->op_private & OPpCONST_BARE))
-                    {
-                        OP * const newop = newGVOP(OP_GV, 0,
-                            gv_fetchsv(((SVOP*)kid)->op_sv, GV_ADD, SVt_PVIO));
-                        /* a first argument is handled by toke.c, ideally we'd
-                         just check here but several ops don't use ck_fun() */
-                        if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED && numargs > 1) {
-                            no_bareword_filehandle(SvPVX(cSVOPx_sv((SVOP*)kid)));
-                        }
-                        /* replace kid with newop in chain */
-                        op_sibling_splice(o, prev_kid, 1, newop);
-                        op_free(kid);
-                        kid = newop;
-                    }
-                    else if (kid->op_type == OP_READLINE) {
-                        /* neophyte patrol: open(<FH>), close(<FH>) etc. */
-                        bad_type_pv(numargs, "HANDLE", o, kid);
-                    }
-                    else {
-                        I32 flags = OPf_SPECIAL;
-                        I32 priv = 0;
-                        PADOFFSET targ = 0;
-
-                        /* is this op a FH constructor? */
-                        if (is_handle_constructor(o,numargs)) {
-                            const char *name = NULL;
-                            STRLEN len = 0;
-                            U32 name_utf8 = 0;
-                            bool want_dollar = TRUE;
-
-                            flags = 0;
-                            /* Set a flag to tell rv2gv to vivify
-                             * need to "prove" flag does not mean something
-                             * else already - NI-S 1999/05/07
-                             */
-                            priv = OPpDEREF;
-                            if (kid->op_type == OP_PADSV) {
-                                PADNAME * const pn
-                                    = PAD_COMPNAME_SV(kid->op_targ);
-                                name = PadnamePV (pn);
-                                len  = PadnameLEN(pn);
-                                name_utf8 = PadnameUTF8(pn);
-                            }
-                            else if (kid->op_type == OP_RV2SV
-                                     && kUNOP->op_first->op_type == OP_GV)
-                            {
-                                GV * const gv = cGVOPx_gv(kUNOP->op_first);
-                                name = GvNAME(gv);
-                                len = GvNAMELEN(gv);
-                                name_utf8 = GvNAMEUTF8(gv) ? SVf_UTF8 : 0;
-                            }
-                            else if (kid->op_type == OP_AELEM
-                                     || kid->op_type == OP_HELEM)
-                            {
-                                 OP *firstop;
-                                 OP *op = ((BINOP*)kid)->op_first;
-                                 name = NULL;
-                                 if (op) {
-                                      SV *tmpstr = NULL;
-                                      const char * const a =
-                                           kid->op_type == OP_AELEM ?
-                                           "[]" : "{}";
-                                      if (((op->op_type == OP_RV2AV) ||
-                                           (op->op_type == OP_RV2HV)) &&
-                                          (firstop = ((UNOP*)op)->op_first) &&
-                                          (firstop->op_type == OP_GV)) {
-                                           /* packagevar $a[] or $h{} */
-                                           GV * const gv = cGVOPx_gv(firstop);
-                                           if (gv)
-                                                tmpstr =
-                                                     Perl_newSVpvf(aTHX_
-                                                                   "%s%c...%c",
-                                                                   GvNAME(gv),
-                                                                   a[0], a[1]);
-                                      }
-                                      else if (op->op_type == OP_PADAV
-                                               || op->op_type == OP_PADHV) {
-                                           /* lexicalvar $a[] or $h{} */
-                                           const char * const padname =
-                                                PAD_COMPNAME_PV(op->op_targ);
-                                           if (padname)
-                                                tmpstr =
-                                                     Perl_newSVpvf(aTHX_
-                                                                   "%s%c...%c",
-                                                                   padname + 1,
-                                                                   a[0], a[1]);
-                                      }
-                                      if (tmpstr) {
-                                           name = SvPV_const(tmpstr, len);
-                                           name_utf8 = SvUTF8(tmpstr);
-                                           sv_2mortal(tmpstr);
-                                      }
-                                 }
-                                 if (!name) {
-                                      name = "__ANONIO__";
-                                      len = 10;
-                                      want_dollar = FALSE;
-                                 }
-                                 op_lvalue(kid, type);
-                            }
-                            if (name) {
-                                SV *namesv;
-                                targ = pad_alloc(OP_RV2GV, SVf_READONLY);
-                                namesv = PAD_SVl(targ);
-                                if (want_dollar && *name != '$')
-                                    sv_setpvs(namesv, "$");
-                                else
-                                    SvPVCLEAR(namesv);
-                                sv_catpvn(namesv, name, len);
-                                if ( name_utf8 ) SvUTF8_on(namesv);
-                            }
-                        }
-                        scalar(kid);
-                        kid = S_op_sibling_newUNOP(aTHX_ o, prev_kid,
-                                    OP_RV2GV, flags);
-                        kid->op_targ = targ;
-                        kid->op_private |= priv;
-                    }
-                }
-                scalar(kid);
-                break;
-            case OA_SCALARREF:
-                if ((type == OP_UNDEF || type == OP_POS)
-                    && numargs == 1 && !(oa >> 4)
-                    && kid->op_type == OP_LIST)
-                    return too_many_arguments_pv(o,PL_op_desc[type], 0);
-                op_lvalue(scalar(kid), type);
-                break;
-            }
-            oa >>= 4;
-            prev_kid = kid;
-            kid = OpSIBLING(kid);
-        }
-        /* FIXME - should the numargs or-ing move after the too many
-         * arguments check? */
-        o->op_private |= numargs;
-        if (kid)
-            return too_many_arguments_pv(o,OP_DESC(o), 0);
-        listkids(o);
-    }
-    else if (PL_opargs[type] & OA_DEFGV) {
-        /* Ordering of these two is important to keep f_map.t passing.  */
-        op_free(o);
-        return newUNOP(type, 0, newDEFSVOP());
-    }
-
-    if (oa) {
-        while (oa & OA_OPTIONAL)
-            oa >>= 4;
-        if (oa && oa != OA_LIST)
-            return too_few_arguments_pv(o,OP_DESC(o), 0);
-    }
-    return o;
-}
-
-OP *
-Perl_ck_glob(pTHX_ OP *o)
-{
-    GV *gv;
-
-    PERL_ARGS_ASSERT_CK_GLOB;
-
-    o = ck_fun(o);
-    if ((o->op_flags & OPf_KIDS) && !OpHAS_SIBLING(cLISTOPo->op_first))
-        op_append_elem(OP_GLOB, o, newDEFSVOP()); /* glob() => glob($_) */
-
-    if (!(o->op_flags & OPf_SPECIAL) && (gv = gv_override("glob", 4)))
-    {
-        /* convert
-         *     glob
-         *       \ null - const(wildcard)
-         * into
-         *     null
-         *       \ enter
-         *            \ list
-         *                 \ mark - glob - rv2cv
-         *                             |        \ gv(CORE::GLOBAL::glob)
-         *                             |
-         *                              \ null - const(wildcard)
-         */
-        o->op_flags |= OPf_SPECIAL;
-        o->op_targ = pad_alloc(OP_GLOB, SVs_PADTMP);
-        o = S_new_entersubop(aTHX_ gv, o);
-        o = newUNOP(OP_NULL, 0, o);
-        o->op_targ = OP_GLOB; /* hint at what it used to be: eg in newWHILEOP */
-        return o;
-    }
-    else o->op_flags &= ~OPf_SPECIAL;
-#if !defined(PERL_EXTERNAL_GLOB)
-    if (!PL_globhook) {
-        ENTER;
-        Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
-                               newSVpvs("File::Glob"), NULL, NULL, NULL);
-        LEAVE;
-    }
-#endif /* !PERL_EXTERNAL_GLOB */
-    gv = (GV *)newSV_type(SVt_NULL);
-    gv_init(gv, 0, "", 0, 0);
-    gv_IOadd(gv);
-    op_append_elem(OP_GLOB, o, newGVOP(OP_GV, 0, gv));
-    SvREFCNT_dec_NN(gv); /* newGVOP increased it */
-    scalarkids(o);
-    return o;
-}
-
-OP *
-Perl_ck_grep(pTHX_ OP *o)
-{
-    LOGOP *gwop;
-    OP *kid;
-    const OPCODE type = o->op_type == OP_GREPSTART ? OP_GREPWHILE : OP_MAPWHILE;
-
-    PERL_ARGS_ASSERT_CK_GREP;
-
-    /* don't allocate gwop here, as we may leak it if PL_parser->error_count > 0 */
-
-    if (o->op_flags & OPf_STACKED) {
-        kid = cUNOPx(OpSIBLING(cLISTOPo->op_first))->op_first;
-        if (kid->op_type != OP_SCOPE && kid->op_type != OP_LEAVE)
-            return no_fh_allowed(o);
-        o->op_flags &= ~OPf_STACKED;
-    }
-    kid = OpSIBLING(cLISTOPo->op_first);
-    if (type == OP_MAPWHILE)
-        list(kid);
-    else
-        scalar(kid);
-    o = ck_fun(o);
-    if (PL_parser && PL_parser->error_count)
-        return o;
-    kid = OpSIBLING(cLISTOPo->op_first);
-    if (kid->op_type != OP_NULL)
-        Perl_croak(aTHX_ "panic: ck_grep, type=%u", (unsigned) kid->op_type);
-    kid = kUNOP->op_first;
-
-    gwop = alloc_LOGOP(type, o, LINKLIST(kid));
-    kid->op_next = (OP*)gwop;
-    o->op_private = gwop->op_private = 0;
-    gwop->op_targ = pad_alloc(type, SVs_PADTMP);
-
-    kid = OpSIBLING(cLISTOPo->op_first);
-    for (kid = OpSIBLING(kid); kid; kid = OpSIBLING(kid))
-        op_lvalue(kid, OP_GREPSTART);
-
-    return (OP*)gwop;
-}
-
-OP *
-Perl_ck_index(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_INDEX;
-
-    if (o->op_flags & OPf_KIDS) {
-        OP *kid = OpSIBLING(cLISTOPo->op_first);	/* get past pushmark */
-        if (kid)
-            kid = OpSIBLING(kid);			/* get past "big" */
-        if (kid && kid->op_type == OP_CONST) {
-            const bool save_taint = TAINT_get;
-            SV *sv = kSVOP->op_sv;
-            if (   (!SvPOK(sv) || SvNIOKp(sv) || isREGEXP(sv))
-                && SvOK(sv) && !SvROK(sv))
-            {
-                sv = newSV_type(SVt_NULL);
-                sv_copypv(sv, kSVOP->op_sv);
-                SvREFCNT_dec_NN(kSVOP->op_sv);
-                kSVOP->op_sv = sv;
-            }
-            if (SvOK(sv)) fbm_compile(sv, 0);
-            TAINT_set(save_taint);
-#ifdef NO_TAINT_SUPPORT
-            PERL_UNUSED_VAR(save_taint);
-#endif
-        }
-    }
-    return ck_fun(o);
-}
-
-OP *
-Perl_ck_lfun(pTHX_ OP *o)
-{
-    const OPCODE type = o->op_type;
-
-    PERL_ARGS_ASSERT_CK_LFUN;
-
-    return modkids(ck_fun(o), type);
-}
-
-OP *
-Perl_ck_defined(pTHX_ OP *o)		/* 19990527 MJD */
-{
-    PERL_ARGS_ASSERT_CK_DEFINED;
-
-    if ((o->op_flags & OPf_KIDS)) {
-        switch (cUNOPo->op_first->op_type) {
-        case OP_RV2AV:
-        case OP_PADAV:
-            Perl_croak(aTHX_ "Can't use 'defined(@array)'"
-                             " (Maybe you should just omit the defined()?)");
-            NOT_REACHED; /* NOTREACHED */
-            break;
-        case OP_RV2HV:
-        case OP_PADHV:
-            Perl_croak(aTHX_ "Can't use 'defined(%%hash)'"
-                             " (Maybe you should just omit the defined()?)");
-            NOT_REACHED; /* NOTREACHED */
-            break;
-        default:
-            /* no warning */
-            break;
-        }
-    }
-    return ck_rfun(o);
-}
-
-OP *
-Perl_ck_readline(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_READLINE;
-
-    if (o->op_flags & OPf_KIDS) {
-         OP *kid = cLISTOPo->op_first;
-         if (kid->op_type == OP_RV2GV) kid->op_private |= OPpALLOW_FAKE;
-         scalar(kid);
-    }
-    else {
-        OP * const newop
-            = newUNOP(OP_READLINE, 0, newGVOP(OP_GV, 0, PL_argvgv));
-        op_free(o);
-        return newop;
-    }
-    return o;
-}
-
-OP *
-Perl_ck_rfun(pTHX_ OP *o)
-{
-    const OPCODE type = o->op_type;
-
-    PERL_ARGS_ASSERT_CK_RFUN;
-
-    return refkids(ck_fun(o), type);
-}
-
-OP *
-Perl_ck_listiob(pTHX_ OP *o)
-{
-    OP *kid;
-
-    PERL_ARGS_ASSERT_CK_LISTIOB;
-
-    kid = cLISTOPo->op_first;
-    if (!kid) {
-        o = force_list(o, TRUE);
-        kid = cLISTOPo->op_first;
-    }
-    if (kid->op_type == OP_PUSHMARK)
-        kid = OpSIBLING(kid);
-    if (kid && o->op_flags & OPf_STACKED)
-        kid = OpSIBLING(kid);
-    else if (kid && !OpHAS_SIBLING(kid)) {		/* print HANDLE; */
-        if (kid->op_type == OP_CONST && kid->op_private & OPpCONST_BARE
-         && !kid->op_folded) {
-            o->op_flags |= OPf_STACKED;	/* make it a filehandle */
-            scalar(kid);
-            /* replace old const op with new OP_RV2GV parent */
-            kid = S_op_sibling_newUNOP(aTHX_ o, cLISTOPo->op_first,
-                                        OP_RV2GV, OPf_REF);
-            kid = OpSIBLING(kid);
-        }
-    }
-
-    if (!kid)
-        op_append_elem(o->op_type, o, newDEFSVOP());
-
-    if (o->op_type == OP_PRTF) return modkids(listkids(o), OP_PRTF);
-    return listkids(o);
-}
-
-OP *
-Perl_ck_smartmatch(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_SMARTMATCH;
-    if (0 == (o->op_flags & OPf_SPECIAL)) {
-        OP *first  = cBINOPo->op_first;
-        OP *second = OpSIBLING(first);
-
-        /* Implicitly take a reference to an array or hash */
-
-        /* remove the original two siblings, then add back the
-         * (possibly different) first and second sibs.
-         */
-        op_sibling_splice(o, NULL, 1, NULL);
-        op_sibling_splice(o, NULL, 1, NULL);
-        first  = ref_array_or_hash(first);
-        second = ref_array_or_hash(second);
-        op_sibling_splice(o, NULL, 0, second);
-        op_sibling_splice(o, NULL, 0, first);
-
-        /* Implicitly take a reference to a regular expression */
-        if (first->op_type == OP_MATCH && !(first->op_flags & OPf_STACKED)) {
-            OpTYPE_set(first, OP_QR);
-        }
-        if (second->op_type == OP_MATCH && !(second->op_flags & OPf_STACKED)) {
-            OpTYPE_set(second, OP_QR);
-        }
-    }
-
-    return o;
-}
-
-
-static OP *
-S_maybe_targlex(pTHX_ OP *o)
-{
-    OP * const kid = cLISTOPo->op_first;
-    /* has a disposable target? */
-    if ((PL_opargs[kid->op_type] & OA_TARGLEX)
-        && !(kid->op_flags & OPf_STACKED)
-        /* Cannot steal the second time! */
-        && !(kid->op_private & OPpTARGET_MY)
-        )
-    {
-        OP * const kkid = OpSIBLING(kid);
-
-        /* Can just relocate the target. */
-        if (kkid && kkid->op_type == OP_PADSV
-            && (!(kkid->op_private & OPpLVAL_INTRO)
-               || kkid->op_private & OPpPAD_STATE))
-        {
-            kid->op_targ = kkid->op_targ;
-            kkid->op_targ = 0;
-            /* Now we do not need PADSV and SASSIGN.
-             * Detach kid and free the rest. */
-            op_sibling_splice(o, NULL, 1, NULL);
-            op_free(o);
-            kid->op_private |= OPpTARGET_MY;	/* Used for context settings */
-            return kid;
-        }
-    }
-    return o;
-}
-
-OP *
-Perl_ck_sassign(pTHX_ OP *o)
-{
-    OP * const kid = cBINOPo->op_first;
-
-    PERL_ARGS_ASSERT_CK_SASSIGN;
-
-    if (OpHAS_SIBLING(kid)) {
-        OP *kkid = OpSIBLING(kid);
-        /* For state variable assignment with attributes, kkid is a list op
-           whose op_last is a padsv. */
-        if ((kkid->op_type == OP_PADSV ||
-             (OP_TYPE_IS_OR_WAS(kkid, OP_LIST) &&
-              (kkid = cLISTOPx(kkid)->op_last)->op_type == OP_PADSV
-             )
-            )
-                && (kkid->op_private & (OPpLVAL_INTRO|OPpPAD_STATE))
-                    == (OPpLVAL_INTRO|OPpPAD_STATE)) {
-            return S_newONCEOP(aTHX_ o, kkid);
-        }
-    }
-    return S_maybe_targlex(aTHX_ o);
-}
-
-
-OP *
-Perl_ck_match(pTHX_ OP *o)
-{
-    PERL_UNUSED_CONTEXT;
-    PERL_ARGS_ASSERT_CK_MATCH;
-
-    return o;
-}
-
-OP *
-Perl_ck_method(pTHX_ OP *o)
-{
-    SV *sv, *methsv, *rclass;
-    const char* method;
-    char* compatptr;
-    int utf8;
-    STRLEN len, nsplit = 0, i;
-    OP* new_op;
-    OP * const kid = cUNOPo->op_first;
-
-    PERL_ARGS_ASSERT_CK_METHOD;
-    if (kid->op_type != OP_CONST) return o;
-
-    sv = kSVOP->op_sv;
-
-    /* replace ' with :: */
-    while ((compatptr = (char *) memchr(SvPVX(sv), '\'',
-                                        SvEND(sv) - SvPVX(sv) )))
-    {
-        *compatptr = ':';
-        sv_insert(sv, compatptr - SvPVX_const(sv), 0, ":", 1);
-    }
-
-    method = SvPVX_const(sv);
-    len = SvCUR(sv);
-    utf8 = SvUTF8(sv) ? -1 : 1;
-
-    for (i = len - 1; i > 0; --i) if (method[i] == ':') {
-        nsplit = i+1;
-        break;
-    }
-
-    methsv = newSVpvn_share(method+nsplit, utf8*(len - nsplit), 0);
-
-    if (!nsplit) { /* $proto->method() */
-        op_free(o);
-        return newMETHOP_named(OP_METHOD_NAMED, 0, methsv);
-    }
-
-    if (memEQs(method, nsplit, "SUPER::")) { /* $proto->SUPER::method() */
-        op_free(o);
-        return newMETHOP_named(OP_METHOD_SUPER, 0, methsv);
-    }
-
-    /* $proto->MyClass::method() and $proto->MyClass::SUPER::method() */
-    if (nsplit >= 9 && strBEGINs(method+nsplit-9, "::SUPER::")) {
-        rclass = newSVpvn_share(method, utf8*(nsplit-9), 0);
-        new_op = newMETHOP_named(OP_METHOD_REDIR_SUPER, 0, methsv);
-    } else {
-        rclass = newSVpvn_share(method, utf8*(nsplit-2), 0);
-        new_op = newMETHOP_named(OP_METHOD_REDIR, 0, methsv);
-    }
-#ifdef USE_ITHREADS
-    op_relocate_sv(&rclass, &cMETHOPx(new_op)->op_rclass_targ);
-#else
-    cMETHOPx(new_op)->op_rclass_sv = rclass;
-#endif
-    op_free(o);
-    return new_op;
-}
-
-OP *
-Perl_ck_null(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_NULL;
-    PERL_UNUSED_CONTEXT;
-    return o;
-}
-
-OP *
-Perl_ck_open(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_OPEN;
-
-    S_io_hints(aTHX_ o);
-    {
-         /* In case of three-arg dup open remove strictness
-          * from the last arg if it is a bareword. */
-         OP * const first = cLISTOPx(o)->op_first; /* The pushmark. */
-         OP * const last  = cLISTOPx(o)->op_last;  /* The bareword. */
-         OP *oa;
-         const char *mode;
-
-         if ((last->op_type == OP_CONST) &&		/* The bareword. */
-             (last->op_private & OPpCONST_BARE) &&
-             (last->op_private & OPpCONST_STRICT) &&
-             (oa = OpSIBLING(first)) &&		/* The fh. */
-             (oa = OpSIBLING(oa)) &&			/* The mode. */
-             (oa->op_type == OP_CONST) &&
-             SvPOK(((SVOP*)oa)->op_sv) &&
-             (mode = SvPVX_const(((SVOP*)oa)->op_sv)) &&
-             mode[0] == '>' && mode[1] == '&' &&	/* A dup open. */
-             (last == OpSIBLING(oa)))			/* The bareword. */
-              last->op_private &= ~OPpCONST_STRICT;
-    }
-    return ck_fun(o);
-}
-
-OP *
-Perl_ck_prototype(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_PROTOTYPE;
-    if (!(o->op_flags & OPf_KIDS)) {
-        op_free(o);
-        return newUNOP(OP_PROTOTYPE, 0, newDEFSVOP());
-    }
-    return o;
-}
-
-OP *
-Perl_ck_refassign(pTHX_ OP *o)
-{
-    OP * const right = cLISTOPo->op_first;
-    OP * const left = OpSIBLING(right);
-    OP *varop = cUNOPx(cUNOPx(left)->op_first)->op_first;
-    bool stacked = 0;
-
-    PERL_ARGS_ASSERT_CK_REFASSIGN;
-    assert (left);
-    assert (left->op_type == OP_SREFGEN);
-
-    o->op_private = 0;
-    /* we use OPpPAD_STATE in refassign to mean either of those things,
-     * and the code assumes the two flags occupy the same bit position
-     * in the various ops below */
-    assert(OPpPAD_STATE == OPpOUR_INTRO);
-
-    switch (varop->op_type) {
-    case OP_PADAV:
-        o->op_private |= OPpLVREF_AV;
-        goto settarg;
-    case OP_PADHV:
-        o->op_private |= OPpLVREF_HV;
-        /* FALLTHROUGH */
-    case OP_PADSV:
-      settarg:
-        o->op_private |= (varop->op_private & (OPpLVAL_INTRO|OPpPAD_STATE));
-        o->op_targ = varop->op_targ;
-        varop->op_targ = 0;
-        PAD_COMPNAME_GEN_set(o->op_targ, PERL_INT_MAX);
-        break;
-
-    case OP_RV2AV:
-        o->op_private |= OPpLVREF_AV;
-        goto checkgv;
-        NOT_REACHED; /* NOTREACHED */
-    case OP_RV2HV:
-        o->op_private |= OPpLVREF_HV;
-        /* FALLTHROUGH */
-    case OP_RV2SV:
-      checkgv:
-        o->op_private |= (varop->op_private & (OPpLVAL_INTRO|OPpOUR_INTRO));
-        if (cUNOPx(varop)->op_first->op_type != OP_GV) goto bad;
-      detach_and_stack:
-        /* Point varop to its GV kid, detached.  */
-        varop = op_sibling_splice(varop, NULL, -1, NULL);
-        stacked = TRUE;
-        break;
-    case OP_RV2CV: {
-        OP * const kidparent =
-            OpSIBLING(cUNOPx(cUNOPx(varop)->op_first)->op_first);
-        OP * const kid = cUNOPx(kidparent)->op_first;
-        o->op_private |= OPpLVREF_CV;
-        if (kid->op_type == OP_GV) {
-            SV *sv = (SV*)cGVOPx_gv(kid);
-            varop = kidparent;
-            if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) {
-                /* a CVREF here confuses pp_refassign, so make sure
-                   it gets a GV */
-                CV *const cv = (CV*)SvRV(sv);
-                SV *name_sv = sv_2mortal(newSVhek(CvNAME_HEK(cv)));
-                (void)gv_init_sv((GV*)sv, CvSTASH(cv), name_sv, 0);
-                assert(SvTYPE(sv) == SVt_PVGV);
-            }
-            goto detach_and_stack;
-        }
-        if (kid->op_type != OP_PADCV)	goto bad;
-        o->op_targ = kid->op_targ;
-        kid->op_targ = 0;
-        break;
-    }
-    case OP_AELEM:
-    case OP_HELEM:
-        o->op_private |= (varop->op_private & OPpLVAL_INTRO);
-        o->op_private |= OPpLVREF_ELEM;
-        op_null(varop);
-        stacked = TRUE;
-        /* Detach varop.  */
-        op_sibling_splice(cUNOPx(left)->op_first, NULL, -1, NULL);
-        break;
-    default:
-      bad:
-        /* diag_listed_as: Can't modify reference to %s in %s assignment */
-        yyerror(Perl_form(aTHX_ "Can't modify reference to %s in scalar "
-                                "assignment",
-                                 OP_DESC(varop)));
-        return o;
-    }
-    if (!FEATURE_REFALIASING_IS_ENABLED)
-        Perl_croak(aTHX_
-                  "Experimental aliasing via reference not enabled");
-    Perl_ck_warner_d(aTHX_
-                     packWARN(WARN_EXPERIMENTAL__REFALIASING),
-                    "Aliasing via reference is experimental");
-    if (stacked) {
-        o->op_flags |= OPf_STACKED;
-        op_sibling_splice(o, right, 1, varop);
-    }
-    else {
-        o->op_flags &=~ OPf_STACKED;
-        op_sibling_splice(o, right, 1, NULL);
-    }
-    op_free(left);
-    return o;
-}
-
-OP *
-Perl_ck_repeat(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_REPEAT;
-
-    if (cBINOPo->op_first->op_flags & OPf_PARENS) {
-        OP* kids;
-        o->op_private |= OPpREPEAT_DOLIST;
-        kids = op_sibling_splice(o, NULL, 1, NULL); /* detach first kid */
-        kids = force_list(kids, TRUE); /* promote it to a list */
-        op_sibling_splice(o, NULL, 0, kids); /* and add back */
-    }
-    else
-        scalar(o);
-    return o;
-}
-
-OP *
-Perl_ck_require(pTHX_ OP *o)
-{
-    GV* gv;
-
-    PERL_ARGS_ASSERT_CK_REQUIRE;
-
-    if (o->op_flags & OPf_KIDS) {	/* Shall we supply missing .pm? */
-        SVOP * const kid = (SVOP*)cUNOPo->op_first;
-        U32 hash;
-        char *s;
-        STRLEN len;
-        if (kid->op_type == OP_CONST) {
-          SV * const sv = kid->op_sv;
-          U32 const was_readonly = SvREADONLY(sv);
-          if (kid->op_private & OPpCONST_BARE) {
-            const char *end;
-            HEK *hek;
-
-            if (was_readonly) {
-                SvREADONLY_off(sv);
-            }
-
-            if (SvIsCOW(sv)) sv_force_normal_flags(sv, 0);
-
-            s = SvPVX(sv);
-            len = SvCUR(sv);
-            end = s + len;
-            /* treat ::foo::bar as foo::bar */
-            if (len >= 2 && s[0] == ':' && s[1] == ':')
-                DIE(aTHX_ "Bareword in require must not start with a double-colon: \"%s\"\n", s);
-            if (s == end)
-                DIE(aTHX_ "Bareword in require maps to empty filename");
-
-            for (; s < end; s++) {
-                if (*s == ':' && s[1] == ':') {
-                    *s = '/';
-                    Move(s+2, s+1, end - s - 1, char);
-                    --end;
-                }
-            }
-            SvEND_set(sv, end);
-            sv_catpvs(sv, ".pm");
-            PERL_HASH(hash, SvPVX(sv), SvCUR(sv));
-            hek = share_hek(SvPVX(sv),
-                            (SSize_t)SvCUR(sv) * (SvUTF8(sv) ? -1 : 1),
-                            hash);
-            sv_sethek(sv, hek);
-            unshare_hek(hek);
-            SvFLAGS(sv) |= was_readonly;
-          }
-          else if (SvPOK(sv) && !SvNIOK(sv) && !SvGMAGICAL(sv)
-                && !SvVOK(sv)) {
-            s = SvPV(sv, len);
-            if (SvREFCNT(sv) > 1) {
-                kid->op_sv = newSVpvn_share(
-                    s, SvUTF8(sv) ? -(SSize_t)len : (SSize_t)len, 0);
-                SvREFCNT_dec_NN(sv);
-            }
-            else {
-                HEK *hek;
-                if (was_readonly) SvREADONLY_off(sv);
-                PERL_HASH(hash, s, len);
-                hek = share_hek(s,
-                                SvUTF8(sv) ? -(SSize_t)len : (SSize_t)len,
-                                hash);
-                sv_sethek(sv, hek);
-                unshare_hek(hek);
-                SvFLAGS(sv) |= was_readonly;
-            }
-          }
-        }
-    }
-
-    if (!(o->op_flags & OPf_SPECIAL) /* Wasn't written as CORE::require */
-        /* handle override, if any */
-     && (gv = gv_override("require", 7))) {
-        OP *kid, *newop;
-        if (o->op_flags & OPf_KIDS) {
-            kid = cUNOPo->op_first;
-            op_sibling_splice(o, NULL, -1, NULL);
-        }
-        else {
-            kid = newDEFSVOP();
-        }
-        op_free(o);
-        newop = S_new_entersubop(aTHX_ gv, kid);
-        return newop;
-    }
-
-    return ck_fun(o);
-}
-
-OP *
-Perl_ck_return(pTHX_ OP *o)
-{
-    OP *kid;
-
-    PERL_ARGS_ASSERT_CK_RETURN;
-
-    kid = OpSIBLING(cLISTOPo->op_first);
-    if (PL_compcv && CvLVALUE(PL_compcv)) {
-        for (; kid; kid = OpSIBLING(kid))
-            op_lvalue(kid, OP_LEAVESUBLV);
-    }
-
-    return o;
-}
-
-OP *
-Perl_ck_select(pTHX_ OP *o)
-{
-    OP* kid;
-
-    PERL_ARGS_ASSERT_CK_SELECT;
-
-    if (o->op_flags & OPf_KIDS) {
-        kid = OpSIBLING(cLISTOPo->op_first);     /* get past pushmark */
-        if (kid && OpHAS_SIBLING(kid)) {
-            OpTYPE_set(o, OP_SSELECT);
-            o = ck_fun(o);
-            return fold_constants(op_integerize(op_std_init(o)));
-        }
-    }
-    o = ck_fun(o);
-    kid = OpSIBLING(cLISTOPo->op_first);    /* get past pushmark */
-    if (kid && kid->op_type == OP_RV2GV)
-        kid->op_private &= ~HINT_STRICT_REFS;
-    return o;
-}
-
-OP *
-Perl_ck_shift(pTHX_ OP *o)
-{
-    const I32 type = o->op_type;
-
-    PERL_ARGS_ASSERT_CK_SHIFT;
-
-    if (!(o->op_flags & OPf_KIDS)) {
-        OP *argop;
-
-        if (!CvUNIQUE(PL_compcv)) {
-            o->op_flags |= OPf_SPECIAL;
-            return o;
-        }
-
-        argop = newUNOP(OP_RV2AV, 0, scalar(newGVOP(OP_GV, 0, PL_argvgv)));
-        op_free(o);
-        return newUNOP(type, 0, scalar(argop));
-    }
-    return scalar(ck_fun(o));
-}
-
-OP *
-Perl_ck_sort(pTHX_ OP *o)
-{
-    OP *firstkid;
-    OP *kid;
-    U8 stacked;
-
-    PERL_ARGS_ASSERT_CK_SORT;
-
-    if (o->op_flags & OPf_STACKED)
-        simplify_sort(o);
-    firstkid = OpSIBLING(cLISTOPo->op_first);		/* get past pushmark */
-
-    if (!firstkid)
-        return too_few_arguments_pv(o,OP_DESC(o), 0);
-
-    if ((stacked = o->op_flags & OPf_STACKED)) {	/* may have been cleared */
-        OP *kid = cUNOPx(firstkid)->op_first;		/* get past null */
-
-        /* if the first arg is a code block, process it and mark sort as
-         * OPf_SPECIAL */
-        if (kid->op_type == OP_SCOPE || kid->op_type == OP_LEAVE) {
-            LINKLIST(kid);
-            if (kid->op_type == OP_LEAVE)
-                    op_null(kid);			/* wipe out leave */
-            /* Prevent execution from escaping out of the sort block. */
-            kid->op_next = 0;
-
-            /* provide scalar context for comparison function/block */
-            kid = scalar(firstkid);
-            kid->op_next = kid;
-            o->op_flags |= OPf_SPECIAL;
-        }
-        else if (kid->op_type == OP_CONST
-              && kid->op_private & OPpCONST_BARE) {
-            char tmpbuf[256];
-            STRLEN len;
-            PADOFFSET off;
-            const char * const name = SvPV(kSVOP_sv, len);
-            *tmpbuf = '&';
-            assert (len < 256);
-            Copy(name, tmpbuf+1, len, char);
-            off = pad_findmy_pvn(tmpbuf, len+1, 0);
-            if (off != NOT_IN_PAD) {
-                if (PAD_COMPNAME_FLAGS_isOUR(off)) {
-                    SV * const fq =
-                        newSVhek(HvNAME_HEK(PAD_COMPNAME_OURSTASH(off)));
-                    sv_catpvs(fq, "::");
-                    sv_catsv(fq, kSVOP_sv);
-                    SvREFCNT_dec_NN(kSVOP_sv);
-                    kSVOP->op_sv = fq;
-                }
-                else {
-                    OP * const padop = newOP(OP_PADCV, 0);
-                    padop->op_targ = off;
-                    /* replace the const op with the pad op */
-                    op_sibling_splice(firstkid, NULL, 1, padop);
-                    op_free(kid);
-                }
-            }
-        }
-
-        firstkid = OpSIBLING(firstkid);
-    }
-
-    for (kid = firstkid; kid; kid = OpSIBLING(kid)) {
-        /* provide list context for arguments */
-        list(kid);
-        if (stacked)
-            op_lvalue(kid, OP_GREPSTART);
-    }
-
-    return o;
-}
-
-/* for sort { X } ..., where X is one of
- *   $a <=> $b, $b <=> $a, $a cmp $b, $b cmp $a
- * elide the second child of the sort (the one containing X),
- * and set these flags as appropriate
-        OPpSORT_NUMERIC;
-        OPpSORT_INTEGER;
-        OPpSORT_DESCEND;
- * Also, check and warn on lexical $a, $b.
- */
-
-STATIC void
-S_simplify_sort(pTHX_ OP *o)
-{
-    OP *kid = OpSIBLING(cLISTOPo->op_first);	/* get past pushmark */
-    OP *k;
-    int descending;
-    GV *gv;
-    const char *gvname;
-    bool have_scopeop;
-
-    PERL_ARGS_ASSERT_SIMPLIFY_SORT;
-
-    kid = kUNOP->op_first;				/* get past null */
-    if (!(have_scopeop = kid->op_type == OP_SCOPE)
-     && kid->op_type != OP_LEAVE)
-        return;
-    kid = kLISTOP->op_last;				/* get past scope */
-    switch(kid->op_type) {
-        case OP_NCMP:
-        case OP_I_NCMP:
-        case OP_SCMP:
-            if (!have_scopeop) goto padkids;
-            break;
-        default:
-            return;
-    }
-    k = kid;						/* remember this node*/
-    if (kBINOP->op_first->op_type != OP_RV2SV
-     || kBINOP->op_last ->op_type != OP_RV2SV)
-    {
-        /*
-           Warn about my($a) or my($b) in a sort block, *if* $a or $b is
-           then used in a comparison.  This catches most, but not
-           all cases.  For instance, it catches
-               sort { my($a); $a <=> $b }
-           but not
-               sort { my($a); $a < $b ? -1 : $a == $b ? 0 : 1; }
-           (although why you'd do that is anyone's guess).
-        */
-
-       padkids:
-        if (!ckWARN(WARN_SYNTAX)) return;
-        kid = kBINOP->op_first;
-        do {
-            if (kid->op_type == OP_PADSV) {
-                PADNAME * const name = PAD_COMPNAME(kid->op_targ);
-                if (PadnameLEN(name) == 2 && *PadnamePV(name) == '$'
-                 && (  PadnamePV(name)[1] == 'a'
-                    || PadnamePV(name)[1] == 'b'  ))
-                    /* diag_listed_as: "my %s" used in sort comparison */
-                    Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                                     "\"%s %s\" used in sort comparison",
-                                      PadnameIsSTATE(name)
-                                        ? "state"
-                                        : "my",
-                                      PadnamePV(name));
-            }
-        } while ((kid = OpSIBLING(kid)));
-        return;
-    }
-    kid = kBINOP->op_first;				/* get past cmp */
-    if (kUNOP->op_first->op_type != OP_GV)
-        return;
-    kid = kUNOP->op_first;				/* get past rv2sv */
-    gv = kGVOP_gv;
-    if (GvSTASH(gv) != PL_curstash)
-        return;
-    gvname = GvNAME(gv);
-    if (*gvname == 'a' && gvname[1] == '\0')
-        descending = 0;
-    else if (*gvname == 'b' && gvname[1] == '\0')
-        descending = 1;
-    else
-        return;
-
-    kid = k;						/* back to cmp */
-    /* already checked above that it is rv2sv */
-    kid = kBINOP->op_last;				/* down to 2nd arg */
-    if (kUNOP->op_first->op_type != OP_GV)
-        return;
-    kid = kUNOP->op_first;				/* get past rv2sv */
-    gv = kGVOP_gv;
-    if (GvSTASH(gv) != PL_curstash)
-        return;
-    gvname = GvNAME(gv);
-    if ( descending
-         ? !(*gvname == 'a' && gvname[1] == '\0')
-         : !(*gvname == 'b' && gvname[1] == '\0'))
-        return;
-    o->op_flags &= ~(OPf_STACKED | OPf_SPECIAL);
-    if (descending)
-        o->op_private |= OPpSORT_DESCEND;
-    if (k->op_type == OP_NCMP)
-        o->op_private |= OPpSORT_NUMERIC;
-    if (k->op_type == OP_I_NCMP)
-        o->op_private |= OPpSORT_NUMERIC | OPpSORT_INTEGER;
-    kid = OpSIBLING(cLISTOPo->op_first);
-    /* cut out and delete old block (second sibling) */
-    op_sibling_splice(o, cLISTOPo->op_first, 1, NULL);
-    op_free(kid);
-}
-
-OP *
-Perl_ck_split(pTHX_ OP *o)
-{
-    OP *kid;
-    OP *sibs;
-
-    PERL_ARGS_ASSERT_CK_SPLIT;
-
-    assert(o->op_type == OP_LIST);
-
-    if (o->op_flags & OPf_STACKED)
-        return no_fh_allowed(o);
-
-    kid = cLISTOPo->op_first;
-    /* delete leading NULL node, then add a CONST if no other nodes */
-    assert(kid->op_type == OP_NULL);
-    op_sibling_splice(o, NULL, 1,
-        OpHAS_SIBLING(kid) ? NULL : newSVOP(OP_CONST, 0, newSVpvs(" ")));
-    op_free(kid);
-    kid = cLISTOPo->op_first;
-
-    if (kid->op_type != OP_MATCH || kid->op_flags & OPf_STACKED) {
-        /* remove match expression, and replace with new optree with
-         * a match op at its head */
-        op_sibling_splice(o, NULL, 1, NULL);
-        /* pmruntime will handle split " " behavior with flag==2 */
-        kid = pmruntime(newPMOP(OP_MATCH, 0), kid, NULL, 2, 0);
-        op_sibling_splice(o, NULL, 0, kid);
-    }
-
-    assert(kid->op_type == OP_MATCH || kid->op_type == OP_SPLIT);
-
-    if (((PMOP *)kid)->op_pmflags & PMf_GLOBAL) {
-      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),
-                     "Use of /g modifier is meaningless in split");
-    }
-
-    /* eliminate the split op, and move the match op (plus any children)
-     * into its place, then convert the match op into a split op. i.e.
-     *
-     *  SPLIT                    MATCH                 SPLIT(ex-MATCH)
-     *    |                        |                     |
-     *  MATCH - A - B - C   =>     R - A - B - C   =>    R - A - B - C
-     *    |                        |                     |
-     *    R                        X - Y                 X - Y
-     *    |
-     *    X - Y
-     *
-     * (R, if it exists, will be a regcomp op)
-     */
-
-    op_sibling_splice(o, NULL, 1, NULL); /* detach match op from o */
-    sibs = op_sibling_splice(o, NULL, -1, NULL); /* detach any other sibs */
-    op_sibling_splice(kid, cLISTOPx(kid)->op_last, 0, sibs); /* and reattach */
-    OpTYPE_set(kid, OP_SPLIT);
-    kid->op_flags   = (o->op_flags | (kid->op_flags & OPf_KIDS));
-    kid->op_private = o->op_private;
-    op_free(o);
-    o = kid;
-    kid = sibs; /* kid is now the string arg of the split */
-
-    if (!kid) {
-        kid = newDEFSVOP();
-        op_append_elem(OP_SPLIT, o, kid);
-    }
-    scalar(kid);
-
-    kid = OpSIBLING(kid);
-    if (!kid) {
-        kid = newSVOP(OP_CONST, 0, newSViv(0));
-        op_append_elem(OP_SPLIT, o, kid);
-        o->op_private |= OPpSPLIT_IMPLIM;
-    }
-    scalar(kid);
-
-    if (OpHAS_SIBLING(kid))
-        return too_many_arguments_pv(o,OP_DESC(o), 0);
-
-    return o;
-}
-
-OP *
-Perl_ck_stringify(pTHX_ OP *o)
-{
-    OP * const kid = OpSIBLING(cUNOPo->op_first);
-    PERL_ARGS_ASSERT_CK_STRINGIFY;
-    if ((   kid->op_type == OP_JOIN || kid->op_type == OP_QUOTEMETA
-         || kid->op_type == OP_LC   || kid->op_type == OP_LCFIRST
-         || kid->op_type == OP_UC   || kid->op_type == OP_UCFIRST)
-        && !OpHAS_SIBLING(kid)) /* syntax errs can leave extra children */
-    {
-        op_sibling_splice(o, cUNOPo->op_first, -1, NULL);
-        op_free(o);
-        return kid;
-    }
-    return ck_fun(o);
-}
-
-OP *
-Perl_ck_join(pTHX_ OP *o)
-{
-    OP * const kid = OpSIBLING(cLISTOPo->op_first);
-
-    PERL_ARGS_ASSERT_CK_JOIN;
-
-    if (kid && kid->op_type == OP_MATCH) {
-        if (ckWARN(WARN_SYNTAX)) {
-            const REGEXP *re = PM_GETRE(kPMOP);
-            const SV *msg = re
-                    ? newSVpvn_flags( RX_PRECOMP_const(re), RX_PRELEN(re),
-                                            SVs_TEMP | ( RX_UTF8(re) ? SVf_UTF8 : 0 ) )
-                    : newSVpvs_flags( "STRING", SVs_TEMP );
-            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                        "/%" SVf "/ should probably be written as \"%" SVf "\"",
-                        SVfARG(msg), SVfARG(msg));
-        }
-    }
-    if (kid
-     && (kid->op_type == OP_CONST /* an innocent, unsuspicious separator */
-        || (kid->op_type == OP_PADSV && !(kid->op_private & OPpLVAL_INTRO))
-        || (  kid->op_type==OP_RV2SV && kUNOP->op_first->op_type == OP_GV
-           && !(kid->op_private & (OPpLVAL_INTRO|OPpOUR_INTRO)))))
-    {
-        const OP * const bairn = OpSIBLING(kid); /* the list */
-        if (bairn && !OpHAS_SIBLING(bairn) /* single-item list */
-         && OP_GIMME(bairn,0) == G_SCALAR)
-        {
-            OP * const ret = op_convert_list(OP_STRINGIFY, OPf_FOLDED,
-                                     op_sibling_splice(o, kid, 1, NULL));
-            op_free(o);
-            return ret;
-        }
-    }
-
-    return ck_fun(o);
-}
-
-/*
-=for apidoc rv2cv_op_cv
-
-Examines an op, which is expected to identify a subroutine at runtime,
-and attempts to determine at compile time which subroutine it identifies.
-This is normally used during Perl compilation to determine whether
-a prototype can be applied to a function call.  C<cvop> is the op
-being considered, normally an C<rv2cv> op.  A pointer to the identified
-subroutine is returned, if it could be determined statically, and a null
-pointer is returned if it was not possible to determine statically.
-
-Currently, the subroutine can be identified statically if the RV that the
-C<rv2cv> is to operate on is provided by a suitable C<gv> or C<const> op.
-A C<gv> op is suitable if the GV's CV slot is populated.  A C<const> op is
-suitable if the constant value must be an RV pointing to a CV.  Details of
-this process may change in future versions of Perl.  If the C<rv2cv> op
-has the C<OPpENTERSUB_AMPER> flag set then no attempt is made to identify
-the subroutine statically: this flag is used to suppress compile-time
-magic on a subroutine call, forcing it to use default runtime behaviour.
-
-If C<flags> has the bit C<RV2CVOPCV_MARK_EARLY> set, then the handling
-of a GV reference is modified.  If a GV was examined and its CV slot was
-found to be empty, then the C<gv> op has the C<OPpEARLY_CV> flag set.
-If the op is not optimised away, and the CV slot is later populated with
-a subroutine having a prototype, that flag eventually triggers the warning
-"called too early to check prototype".
-
-If C<flags> has the bit C<RV2CVOPCV_RETURN_NAME_GV> set, then instead
-of returning a pointer to the subroutine it returns a pointer to the
-GV giving the most appropriate name for the subroutine in this context.
-Normally this is just the C<CvGV> of the subroutine, but for an anonymous
-(C<CvANON>) subroutine that is referenced through a GV it will be the
-referencing GV.  The resulting C<GV*> is cast to C<CV*> to be returned.
-A null pointer is returned as usual if there is no statically-determinable
-subroutine.
-
-=for apidoc Amnh||OPpEARLY_CV
-=for apidoc Amnh||OPpENTERSUB_AMPER
-=for apidoc Amnh||RV2CVOPCV_MARK_EARLY
-=for apidoc Amnh||RV2CVOPCV_RETURN_NAME_GV
-
-=cut
-*/
-
-/* shared by toke.c:yylex */
-CV *
-Perl_find_lexical_cv(pTHX_ PADOFFSET off)
-{
-    const PADNAME *name = PAD_COMPNAME(off);
-    CV *compcv = PL_compcv;
-    while (PadnameOUTER(name)) {
-        compcv = CvOUTSIDE(compcv);
-        if (LIKELY(PARENT_PAD_INDEX(name))) {
-            name = PadlistNAMESARRAY(CvPADLIST(compcv))
-                [off = PARENT_PAD_INDEX(name)];
-        }
-        else {
-            /* In an eval() in an inner scope like a function, the
-               intermediate pad in the sub might not be populated with the
-               sub.  So search harder.
-
-               It is possible we won't find the name in this
-               particular scope, but that's fine, if we don't we'll
-               find it in some outer scope.  Finding it here will let us
-               go back to following the PARENT_PAD_INDEX() chain.
-            */
-            const PADNAMELIST * const names = PadlistNAMES(CvPADLIST(compcv));
-            PADNAME * const * const name_p = PadnamelistARRAY(names);
-            int offset;
-            for (offset = PadnamelistMAXNAMED(names); offset > 0; offset--) {
-                const PADNAME * const thisname = name_p[offset];
-                /* The pv is copied from the outer PADNAME to the
-                   inner PADNAMEs so we don't need to compare the
-                   string contents
-                */
-                if (thisname && PadnameLEN(thisname) == PadnameLEN(name)
-                    && PadnamePV(thisname) == PadnamePV(name)) {
-                    name = thisname;
-                    break;
-                }
-            }
-        }
-    }
-    assert(!PadnameIsOUR(name));
-    if (!PadnameIsSTATE(name) && PadnamePROTOCV(name)) {
-        return PadnamePROTOCV(name);
-    }
-    return (CV *)AvARRAY(PadlistARRAY(CvPADLIST(compcv))[1])[off];
-}
-
-CV *
-Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags)
-{
-    OP *rvop;
-    CV *cv;
-    GV *gv;
-    PERL_ARGS_ASSERT_RV2CV_OP_CV;
-    if (flags & ~RV2CVOPCV_FLAG_MASK)
-        Perl_croak(aTHX_ "panic: rv2cv_op_cv bad flags %x", (unsigned)flags);
-    if (cvop->op_type != OP_RV2CV)
-        return NULL;
-    if (cvop->op_private & OPpENTERSUB_AMPER)
-        return NULL;
-    if (!(cvop->op_flags & OPf_KIDS))
-        return NULL;
-    rvop = cUNOPx(cvop)->op_first;
-    switch (rvop->op_type) {
-        case OP_GV: {
-            gv = cGVOPx_gv(rvop);
-            if (!isGV(gv)) {
-                if (SvROK(gv) && SvTYPE(SvRV(gv)) == SVt_PVCV) {
-                    cv = MUTABLE_CV(SvRV(gv));
-                    gv = NULL;
-                    break;
-                }
-                if (flags & RV2CVOPCV_RETURN_STUB)
-                    return (CV *)gv;
-                else return NULL;
-            }
-            cv = GvCVu(gv);
-            if (!cv) {
-                if (flags & RV2CVOPCV_MARK_EARLY)
-                    rvop->op_private |= OPpEARLY_CV;
-                return NULL;
-            }
-        } break;
-        case OP_CONST: {
-            SV *rv = cSVOPx_sv(rvop);
-            if (!SvROK(rv))
-                return NULL;
-            cv = (CV*)SvRV(rv);
-            gv = NULL;
-        } break;
-        case OP_PADCV: {
-            cv = find_lexical_cv(rvop->op_targ);
-            gv = NULL;
-        } break;
-        default: {
-            return NULL;
-        } NOT_REACHED; /* NOTREACHED */
-    }
-    if (SvTYPE((SV*)cv) != SVt_PVCV)
-        return NULL;
-    if (flags & RV2CVOPCV_RETURN_NAME_GV) {
-        if ((!CvANON(cv) && !CvLEXICAL(cv)) || !gv)
-            gv = CvGV(cv);
-        return (CV*)gv;
-    }
-    else if (flags & RV2CVOPCV_MAYBE_NAME_GV) {
-        if (CvLEXICAL(cv) || CvNAMED(cv))
-            return NULL;
-        if (!CvANON(cv) || !gv)
-            gv = CvGV(cv);
-        return (CV*)gv;
-
-    } else {
-        return cv;
-    }
-}
-
-/*
-=for apidoc ck_entersub_args_list
-
-Performs the default fixup of the arguments part of an C<entersub>
-op tree.  This consists of applying list context to each of the
-argument ops.  This is the standard treatment used on a call marked
-with C<&>, or a method call, or a call through a subroutine reference,
-or any other call where the callee can't be identified at compile time,
-or a call where the callee has no prototype.
-
-=cut
-*/
-
-OP *
-Perl_ck_entersub_args_list(pTHX_ OP *entersubop)
-{
-    OP *aop;
-
-    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST;
-
-    aop = cUNOPx(entersubop)->op_first;
-    if (!OpHAS_SIBLING(aop))
-        aop = cUNOPx(aop)->op_first;
-    for (aop = OpSIBLING(aop); OpHAS_SIBLING(aop); aop = OpSIBLING(aop)) {
-        /* skip the extra attributes->import() call implicitly added in
-         * something like foo(my $x : bar)
-         */
-        if (   aop->op_type == OP_ENTERSUB
-            && (aop->op_flags & OPf_WANT) == OPf_WANT_VOID
-        )
-            continue;
-        list(aop);
-        op_lvalue(aop, OP_ENTERSUB);
-    }
-    return entersubop;
-}
-
-/*
-=for apidoc ck_entersub_args_proto
-
-Performs the fixup of the arguments part of an C<entersub> op tree
-based on a subroutine prototype.  This makes various modifications to
-the argument ops, from applying context up to inserting C<refgen> ops,
-and checking the number and syntactic types of arguments, as directed by
-the prototype.  This is the standard treatment used on a subroutine call,
-not marked with C<&>, where the callee can be identified at compile time
-and has a prototype.
-
-C<protosv> supplies the subroutine prototype to be applied to the call.
-It may be a normal defined scalar, of which the string value will be used.
-Alternatively, for convenience, it may be a subroutine object (a C<CV*>
-that has been cast to C<SV*>) which has a prototype.  The prototype
-supplied, in whichever form, does not need to match the actual callee
-referenced by the op tree.
-
-If the argument ops disagree with the prototype, for example by having
-an unacceptable number of arguments, a valid op tree is returned anyway.
-The error is reflected in the parser state, normally resulting in a single
-exception at the top level of parsing which covers all the compilation
-errors that occurred.  In the error message, the callee is referred to
-by the name defined by the C<namegv> parameter.
-
-=cut
-*/
-
-OP *
-Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
-{
-    STRLEN proto_len;
-    const char *proto, *proto_end;
-    OP *aop, *prev, *cvop, *parent;
-    int optional = 0;
-    I32 arg = 0;
-    I32 contextclass = 0;
-    const char *e = NULL;
-    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO;
-    if (SvTYPE(protosv) == SVt_PVCV ? !SvPOK(protosv) : !SvOK(protosv))
-        Perl_croak(aTHX_ "panic: ck_entersub_args_proto CV with no proto, "
-                   "flags=%lx", (unsigned long) SvFLAGS(protosv));
-    if (SvTYPE(protosv) == SVt_PVCV)
-         proto = CvPROTO(protosv), proto_len = CvPROTOLEN(protosv);
-    else proto = SvPV(protosv, proto_len);
-    proto = S_strip_spaces(aTHX_ proto, &proto_len);
-    proto_end = proto + proto_len;
-    parent = entersubop;
-    aop = cUNOPx(entersubop)->op_first;
-    if (!OpHAS_SIBLING(aop)) {
-        parent = aop;
-        aop = cUNOPx(aop)->op_first;
-    }
-    prev = aop;
-    aop = OpSIBLING(aop);
-    for (cvop = aop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ;
-    while (aop != cvop) {
-        OP* o3 = aop;
-
-        if (proto >= proto_end)
-        {
-            SV * const namesv = cv_name((CV *)namegv, NULL, 0);
-            yyerror_pv(Perl_form(aTHX_ "Too many arguments for %" SVf,
-                                        SVfARG(namesv)), SvUTF8(namesv));
-            return entersubop;
-        }
-
-        switch (*proto) {
-            case ';':
-                optional = 1;
-                proto++;
-                continue;
-            case '_':
-                /* _ must be at the end */
-                if (proto[1] && !memCHRs(";@%", proto[1]))
-                    goto oops;
-                /* FALLTHROUGH */
-            case '$':
-                proto++;
-                arg++;
-                scalar(aop);
-                break;
-            case '%':
-            case '@':
-                list(aop);
-                arg++;
-                break;
-            case '&':
-                proto++;
-                arg++;
-                if (    o3->op_type != OP_UNDEF
-                    && (o3->op_type != OP_SREFGEN
-                        || (  cUNOPx(cUNOPx(o3)->op_first)->op_first->op_type
-                                != OP_ANONCODE
-                            && cUNOPx(cUNOPx(o3)->op_first)->op_first->op_type
-                                != OP_RV2CV)))
-                    bad_type_gv(arg, namegv, o3,
-                            arg == 1 ? "block or sub {}" : "sub {}");
-                break;
-            case '*':
-                /* '*' allows any scalar type, including bareword */
-                proto++;
-                arg++;
-                if (o3->op_type == OP_RV2GV)
-                    goto wrapref;	/* autoconvert GLOB -> GLOBref */
-                else if (o3->op_type == OP_CONST)
-                    o3->op_private &= ~OPpCONST_STRICT;
-                scalar(aop);
-                break;
-            case '+':
-                proto++;
-                arg++;
-                if (o3->op_type == OP_RV2AV ||
-                    o3->op_type == OP_PADAV ||
-                    o3->op_type == OP_RV2HV ||
-                    o3->op_type == OP_PADHV
-                ) {
-                    goto wrapref;
-                }
-                scalar(aop);
-                break;
-            case '[': case ']':
-                goto oops;
-
-            case '\\':
-                proto++;
-                arg++;
-            again:
-                switch (*proto++) {
-                    case '[':
-                        if (contextclass++ == 0) {
-                            e = (char *) memchr(proto, ']', proto_end - proto);
-                            if (!e || e == proto)
-                                goto oops;
-                        }
-                        else
-                            goto oops;
-                        goto again;
-
-                    case ']':
-                        if (contextclass) {
-                            const char *p = proto;
-                            const char *const end = proto;
-                            contextclass = 0;
-                            while (*--p != '[')
-                                /* \[$] accepts any scalar lvalue */
-                                if (*p == '$'
-                                 && Perl_op_lvalue_flags(aTHX_
-                                     scalar(o3),
-                                     OP_READ, /* not entersub */
-                                     OP_LVALUE_NO_CROAK
-                                    )) goto wrapref;
-                            bad_type_gv(arg, namegv, o3,
-                                    Perl_form(aTHX_ "one of %.*s",(int)(end - p), p));
-                        } else
-                            goto oops;
-                        break;
-                    case '*':
-                        if (o3->op_type == OP_RV2GV)
-                            goto wrapref;
-                        if (!contextclass)
-                            bad_type_gv(arg, namegv, o3, "symbol");
-                        break;
-                    case '&':
-                        if (o3->op_type == OP_ENTERSUB
-                         && !(o3->op_flags & OPf_STACKED))
-                            goto wrapref;
-                        if (!contextclass)
-                            bad_type_gv(arg, namegv, o3, "subroutine");
-                        break;
-                    case '$':
-                        if (o3->op_type == OP_RV2SV ||
-                                o3->op_type == OP_PADSV ||
-                                o3->op_type == OP_HELEM ||
-                                o3->op_type == OP_AELEM)
-                            goto wrapref;
-                        if (!contextclass) {
-                            /* \$ accepts any scalar lvalue */
-                            if (Perl_op_lvalue_flags(aTHX_
-                                    scalar(o3),
-                                    OP_READ,  /* not entersub */
-                                    OP_LVALUE_NO_CROAK
-                               )) goto wrapref;
-                            bad_type_gv(arg, namegv, o3, "scalar");
-                        }
-                        break;
-                    case '@':
-                        if (o3->op_type == OP_RV2AV ||
-                                o3->op_type == OP_PADAV)
-                        {
-                            o3->op_flags &=~ OPf_PARENS;
-                            goto wrapref;
-                        }
-                        if (!contextclass)
-                            bad_type_gv(arg, namegv, o3, "array");
-                        break;
-                    case '%':
-                        if (o3->op_type == OP_RV2HV ||
-                                o3->op_type == OP_PADHV)
-                        {
-                            o3->op_flags &=~ OPf_PARENS;
-                            goto wrapref;
-                        }
-                        if (!contextclass)
-                            bad_type_gv(arg, namegv, o3, "hash");
-                        break;
-                    wrapref:
-                            aop = S_op_sibling_newUNOP(aTHX_ parent, prev,
-                                                OP_REFGEN, 0);
-                        if (contextclass && e) {
-                            proto = e + 1;
-                            contextclass = 0;
-                        }
-                        break;
-                    default: goto oops;
-                }
-                if (contextclass)
-                    goto again;
-                break;
-            case ' ':
-                proto++;
-                continue;
-            default:
-            oops: {
-                Perl_croak(aTHX_ "Malformed prototype for %" SVf ": %" SVf,
-                                  SVfARG(cv_name((CV *)namegv, NULL, 0)),
-                                  SVfARG(protosv));
-            }
-        }
+{
+    bool is_eq;
+    bool neg;
+    bool reverse;
+    bool iv0;
+    OP *indexop, *constop, *start;
+    SV *sv;
+    IV iv;
 
-        op_lvalue(aop, OP_ENTERSUB);
-        prev = aop;
-        aop = OpSIBLING(aop);
-    }
-    if (aop == cvop && *proto == '_') {
-        /* generate an access to $_ */
-        op_sibling_splice(parent, prev, 0, newDEFSVOP());
+    PERL_ARGS_ASSERT_CK_CMP;
+
+    is_eq = (   o->op_type == OP_EQ
+             || o->op_type == OP_NE
+             || o->op_type == OP_I_EQ
+             || o->op_type == OP_I_NE);
+
+    if (!is_eq && ckWARN(WARN_SYNTAX)) {
+        const OP *kid = cUNOPo->op_first;
+        if (kid &&
+            (
+                (   is_dollar_bracket(aTHX_ kid)
+                 && OpSIBLING(kid) && OpSIBLING(kid)->op_type == OP_CONST
+                )
+             || (   kid->op_type == OP_CONST
+                 && (kid = OpSIBLING(kid)) && is_dollar_bracket(aTHX_ kid)
+                )
+           )
+        )
+            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                        "$[ used in %s (did you mean $] ?)", OP_DESC(o));
     }
-    if (!optional && proto_end > proto &&
-        (*proto != '@' && *proto != '%' && *proto != ';' && *proto != '_'))
-    {
-        SV * const namesv = cv_name((CV *)namegv, NULL, 0);
-        yyerror_pv(Perl_form(aTHX_ "Not enough arguments for %" SVf,
-                                    SVfARG(namesv)), SvUTF8(namesv));
+
+    /* convert (index(...) == -1) and variations into
+     *   (r)index/BOOL(,NEG)
+     */
+
+    reverse = FALSE;
+
+    indexop = cUNOPo->op_first;
+    constop = OpSIBLING(indexop);
+    start = NULL;
+    if (indexop->op_type == OP_CONST) {
+        constop = indexop;
+        indexop = OpSIBLING(constop);
+        start = constop;
+        reverse = TRUE;
     }
-    return entersubop;
-}
 
-/*
-=for apidoc ck_entersub_args_proto_or_list
+    if (indexop->op_type != OP_INDEX && indexop->op_type != OP_RINDEX)
+        return o;
 
-Performs the fixup of the arguments part of an C<entersub> op tree either
-based on a subroutine prototype or using default list-context processing.
-This is the standard treatment used on a subroutine call, not marked
-with C<&>, where the callee can be identified at compile time.
+    /* ($lex = index(....)) == -1 */
+    if (indexop->op_private & OPpTARGET_MY)
+        return o;
 
-C<protosv> supplies the subroutine prototype to be applied to the call,
-or indicates that there is no prototype.  It may be a normal scalar,
-in which case if it is defined then the string value will be used
-as a prototype, and if it is undefined then there is no prototype.
-Alternatively, for convenience, it may be a subroutine object (a C<CV*>
-that has been cast to C<SV*>), of which the prototype will be used if it
-has one.  The prototype (or lack thereof) supplied, in whichever form,
-does not need to match the actual callee referenced by the op tree.
+    if (constop->op_type != OP_CONST)
+        return o;
 
-If the argument ops disagree with the prototype, for example by having
-an unacceptable number of arguments, a valid op tree is returned anyway.
-The error is reflected in the parser state, normally resulting in a single
-exception at the top level of parsing which covers all the compilation
-errors that occurred.  In the error message, the callee is referred to
-by the name defined by the C<namegv> parameter.
+    sv = cSVOPx_sv(constop);
+    if (!(sv && SvIOK_notUV(sv)))
+        return o;
 
-=cut
-*/
+    iv = SvIVX(sv);
+    if (iv != -1 && iv != 0)
+        return o;
+    iv0 = (iv == 0);
 
-OP *
-Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop,
-        GV *namegv, SV *protosv)
-{
-    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST;
-    if (SvTYPE(protosv) == SVt_PVCV ? SvPOK(protosv) : SvOK(protosv))
-        return ck_entersub_args_proto(entersubop, namegv, protosv);
-    else
-        return ck_entersub_args_list(entersubop);
+    if (o->op_type == OP_LT || o->op_type == OP_I_LT) {
+        if (!(iv0 ^ reverse))
+            return o;
+        neg = iv0;
+    }
+    else if (o->op_type == OP_LE || o->op_type == OP_I_LE) {
+        if (iv0 ^ reverse)
+            return o;
+        neg = !iv0;
+    }
+    else if (o->op_type == OP_GE || o->op_type == OP_I_GE) {
+        if (!(iv0 ^ reverse))
+            return o;
+        neg = !iv0;
+    }
+    else if (o->op_type == OP_GT || o->op_type == OP_I_GT) {
+        if (iv0 ^ reverse)
+            return o;
+        neg = iv0;
+    }
+    else if (o->op_type == OP_EQ || o->op_type == OP_I_EQ) {
+        if (iv0)
+            return o;
+        neg = TRUE;
+    }
+    else {
+        assert(o->op_type == OP_NE || o->op_type == OP_I_NE);
+        if (iv0)
+            return o;
+        neg = FALSE;
+    }
+
+    indexop->op_flags &= ~OPf_PARENS;
+    indexop->op_flags |= (o->op_flags & OPf_PARENS);
+    indexop->op_private |= OPpTRUEBOOL;
+    if (neg)
+        indexop->op_private |= OPpINDEX_BOOLNEG;
+    /* cut out the index op and free the eq,const ops */
+    (void)op_sibling_splice(o, start, 1, NULL);
+    op_free(o);
+
+    return indexop;
 }
 
+
 OP *
-Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
+Perl_ck_concat(pTHX_ OP *o)
 {
-    IV cvflags = SvIVX(protosv);
-    int opnum = cvflags & 0xffff;
-    OP *aop = cUNOPx(entersubop)->op_first;
-
-    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE;
+    const OP * const kid = cUNOPo->op_first;
 
-    if (!opnum) {
-        OP *cvop;
-        if (!OpHAS_SIBLING(aop))
-            aop = cUNOPx(aop)->op_first;
-        aop = OpSIBLING(aop);
-        for (cvop = aop; OpSIBLING(cvop); cvop = OpSIBLING(cvop)) ;
-        if (aop != cvop) {
-            SV *namesv = cv_name((CV *)namegv, NULL, CV_NAME_NOTQUAL);
-            yyerror_pv(Perl_form(aTHX_ "Too many arguments for %" SVf,
-                SVfARG(namesv)), SvUTF8(namesv));
-        }
+    PERL_ARGS_ASSERT_CK_CONCAT;
+    PERL_UNUSED_CONTEXT;
 
-        op_free(entersubop);
-        switch(cvflags >> 16) {
-        case 'F': return newSVOP(OP_CONST, 0,
-                                        newSVpv(CopFILE(PL_curcop),0));
-        case 'L': return newSVOP(
-                           OP_CONST, 0,
-                           Perl_newSVpvf(aTHX_
-                             "%" IVdf, (IV)CopLINE(PL_curcop)
-                           )
-                         );
-        case 'P': return newSVOP(OP_CONST, 0,
-                                   (PL_curstash
-                                     ? newSVhek(HvNAME_HEK(PL_curstash))
-                                     : &PL_sv_undef
-                                   )
-                                );
-        }
-        NOT_REACHED; /* NOTREACHED */
+    /* reuse the padtmp returned by the concat child */
+    if (kid->op_type == OP_CONCAT && !(kid->op_private & OPpTARGET_MY) &&
+            !(kUNOP->op_first->op_flags & OPf_MOD))
+    {
+        o->op_flags |= OPf_STACKED;
+        o->op_private |= OPpCONCAT_NESTED;
     }
-    else {
-        OP *prev, *cvop, *first, *parent;
-        U32 flags = 0;
-
-        parent = entersubop;
-        if (!OpHAS_SIBLING(aop)) {
-            parent = aop;
-            aop = cUNOPx(aop)->op_first;
-        }
+    return o;
+}
 
-        first = prev = aop;
-        aop = OpSIBLING(aop);
-        /* find last sibling */
-        for (cvop = aop;
-             OpHAS_SIBLING(cvop);
-             prev = cvop, cvop = OpSIBLING(cvop))
-            ;
-        if (!(cvop->op_private & OPpENTERSUB_NOPAREN)
-            /* Usually, OPf_SPECIAL on an op with no args means that it had
-             * parens, but these have their own meaning for that flag: */
-            && opnum != OP_VALUES && opnum != OP_KEYS && opnum != OP_EACH
-            && opnum != OP_DELETE && opnum != OP_EXISTS)
-                flags |= OPf_SPECIAL;
-        /* excise cvop from end of sibling chain */
-        op_sibling_splice(parent, prev, 1, NULL);
-        op_free(cvop);
-        if (aop == cvop) aop = NULL;
+OP *
+Perl_ck_spair(pTHX_ OP *o)
+{
 
-        /* detach remaining siblings from the first sibling, then
-         * dispose of original optree */
+    PERL_ARGS_ASSERT_CK_SPAIR;
 
-        if (aop)
-            op_sibling_splice(parent, first, -1, NULL);
-        op_free(entersubop);
+    if (o->op_flags & OPf_KIDS) {
+        OP* newop;
+        OP* kid;
+        OP* kidkid;
+        const OPCODE type = o->op_type;
+        o = modkids(ck_fun(o), type);
+        kid    = cUNOPo->op_first;
+        kidkid = kUNOP->op_first;
+        newop = OpSIBLING(kidkid);
+        if (newop) {
+            const OPCODE type = newop->op_type;
+            if (OpHAS_SIBLING(newop))
+                return o;
+            if (o->op_type == OP_REFGEN
+             && (  type == OP_RV2CV
+                || (  !(newop->op_flags & OPf_PARENS)
+                   && (  type == OP_RV2AV || type == OP_PADAV
+                      || type == OP_RV2HV || type == OP_PADHV))))
+                NOOP; /* OK (allow srefgen for \@a and \%h) */
+            else if (OP_GIMME(newop,0) != G_SCALAR)
+                return o;
+        }
+        /* excise first sibling */
+        op_sibling_splice(kid, NULL, 1, NULL);
+        op_free(kidkid);
+    }
+    /* transforms OP_REFGEN into OP_SREFGEN, OP_CHOP into OP_SCHOP,
+     * and OP_CHOMP into OP_SCHOMP */
+    o->op_ppaddr = PL_ppaddr[++o->op_type];
+    return ck_fun(o);
+}
 
-        if (cvflags == (OP_ENTEREVAL | (1<<16)))
-            flags |= OPpEVAL_BYTES <<8;
+OP *
+Perl_ck_delete(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_DELETE;
 
-        switch (PL_opargs[opnum] & OA_CLASS_MASK) {
-        case OA_UNOP:
-        case OA_BASEOP_OR_UNOP:
-        case OA_FILESTATOP:
-            if (!aop)
-                return newOP(opnum,flags);       /* zero args */
-            if (aop == prev)
-                return newUNOP(opnum,flags,aop); /* one arg */
-            /* too many args */
+    o = ck_fun(o);
+    o->op_private = 0;
+    if (o->op_flags & OPf_KIDS) {
+        OP * const kid = cUNOPo->op_first;
+        switch (kid->op_type) {
+        case OP_ASLICE:
+            o->op_flags |= OPf_SPECIAL;
             /* FALLTHROUGH */
-        case OA_BASEOP:
-            if (aop) {
-                SV *namesv;
-                OP *nextop;
-
-                namesv = cv_name((CV *)namegv, NULL, CV_NAME_NOTQUAL);
-                yyerror_pv(Perl_form(aTHX_ "Too many arguments for %" SVf,
-                    SVfARG(namesv)), SvUTF8(namesv));
-                while (aop) {
-                    nextop = OpSIBLING(aop);
-                    op_free(aop);
-                    aop = nextop;
-                }
-
-            }
-            return opnum == OP_RUNCV
-                ? newPVOP(OP_RUNCV,0,NULL)
-                : newOP(opnum,0);
+        case OP_HSLICE:
+            o->op_private |= OPpSLICE;
+            break;
+        case OP_AELEM:
+            o->op_flags |= OPf_SPECIAL;
+            /* FALLTHROUGH */
+        case OP_HELEM:
+            break;
+        case OP_KVASLICE:
+            o->op_flags |= OPf_SPECIAL;
+            /* FALLTHROUGH */
+        case OP_KVHSLICE:
+            o->op_private |= OPpKVSLICE;
+            break;
         default:
-            return op_convert_list(opnum,0,aop);
+            Perl_croak(aTHX_ "delete argument is not a HASH or ARRAY "
+                             "element or slice");
         }
+        if (kid->op_private & OPpLVAL_INTRO)
+            o->op_private |= OPpLVAL_INTRO;
+        op_null(kid);
     }
-    NOT_REACHED; /* NOTREACHED */
-    return entersubop;
+    return o;
 }
 
-/*
-=for apidoc cv_get_call_checker_flags
-
-Retrieves the function that will be used to fix up a call to C<cv>.
-Specifically, the function is applied to an C<entersub> op tree for a
-subroutine call, not marked with C<&>, where the callee can be identified
-at compile time as C<cv>.
-
-The C-level function pointer is returned in C<*ckfun_p>, an SV argument
-for it is returned in C<*ckobj_p>, and control flags are returned in
-C<*ckflags_p>.  The function is intended to be called in this manner:
+OP *
+Perl_ck_eof(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_EOF;
 
- entersubop = (*ckfun_p)(aTHX_ entersubop, namegv, (*ckobj_p));
+    if (o->op_flags & OPf_KIDS) {
+        OP *kid;
+        if (cLISTOPo->op_first->op_type == OP_STUB) {
+            OP * const newop
+                = newUNOP(o->op_type, OPf_SPECIAL, newGVOP(OP_GV, 0, PL_argvgv));
+            op_free(o);
+            o = newop;
+        }
+        o = ck_fun(o);
+        kid = cLISTOPo->op_first;
+        if (kid->op_type == OP_RV2GV)
+            kid->op_private |= OPpALLOW_FAKE;
+    }
+    return o;
+}
 
-In this call, C<entersubop> is a pointer to the C<entersub> op,
-which may be replaced by the check function, and C<namegv> supplies
-the name that should be used by the check function to refer
-to the callee of the C<entersub> op if it needs to emit any diagnostics.
-It is permitted to apply the check function in non-standard situations,
-such as to a call to a different subroutine or to a method call.
 
-C<namegv> may not actually be a GV.  If the C<CALL_CHECKER_REQUIRE_GV>
-bit is clear in C<*ckflags_p>, it is permitted to pass a CV or other SV
-instead, anything that can be used as the first argument to L</cv_name>.
-If the C<CALL_CHECKER_REQUIRE_GV> bit is set in C<*ckflags_p> then the
-check function requires C<namegv> to be a genuine GV.
+OP *
+Perl_ck_eval(pTHX_ OP *o)
+{
 
-By default, the check function is
-L<Perl_ck_entersub_args_proto_or_list|/ck_entersub_args_proto_or_list>,
-the SV parameter is C<cv> itself, and the C<CALL_CHECKER_REQUIRE_GV>
-flag is clear.  This implements standard prototype processing.  It can
-be changed, for a particular subroutine, by L</cv_set_call_checker_flags>.
+    PERL_ARGS_ASSERT_CK_EVAL;
 
-If the C<CALL_CHECKER_REQUIRE_GV> bit is set in C<gflags> then it
-indicates that the caller only knows about the genuine GV version of
-C<namegv>, and accordingly the corresponding bit will always be set in
-C<*ckflags_p>, regardless of the check function's recorded requirements.
-If the C<CALL_CHECKER_REQUIRE_GV> bit is clear in C<gflags> then it
-indicates the caller knows about the possibility of passing something
-other than a GV as C<namegv>, and accordingly the corresponding bit may
-be either set or clear in C<*ckflags_p>, indicating the check function's
-recorded requirements.
+    PL_hints |= HINT_BLOCK_SCOPE;
+    if (o->op_flags & OPf_KIDS) {
+        SVOP * const kid = cSVOPx(cUNOPo->op_first);
+        assert(kid);
 
-C<gflags> is a bitset passed into C<cv_get_call_checker_flags>, in which
-only the C<CALL_CHECKER_REQUIRE_GV> bit currently has a defined meaning
-(for which see above).  All other bits should be clear.
+        if (o->op_type == OP_ENTERTRY) {
+            LOGOP *enter;
 
-=for apidoc Amnh||CALL_CHECKER_REQUIRE_GV
+            /* cut whole sibling chain free from o */
+            op_sibling_splice(o, NULL, -1, NULL);
+            op_free(o);
 
-=for apidoc cv_get_call_checker
+            enter = alloc_LOGOP(OP_ENTERTRY, NULL, NULL);
 
-The original form of L</cv_get_call_checker_flags>, which does not return
-checker flags.  When using a checker function returned by this function,
-it is only safe to call it with a genuine GV as its C<namegv> argument.
+            /* establish postfix order */
+            enter->op_next = (OP*)enter;
 
-=cut
-*/
+            o = op_prepend_elem(OP_LINESEQ, (OP*)enter, (OP*)kid);
+            OpTYPE_set(o, OP_LEAVETRY);
+            enter->op_other = o;
+            return o;
+        }
+        else {
+            scalar((OP*)kid);
+            S_set_haseval(aTHX);
+        }
+    }
+    else {
+        const U8 priv = o->op_private;
+        op_free(o);
+        /* the newUNOP will recursively call ck_eval(), which will handle
+         * all the stuff at the end of this function, like adding
+         * OP_HINTSEVAL
+         */
+        return newUNOP(OP_ENTEREVAL, priv <<8, newDEFSVOP());
+    }
+    o->op_targ = (PADOFFSET)PL_hints;
+    if (o->op_private & OPpEVAL_BYTES) o->op_targ &= ~HINT_UTF8;
+    if ((PL_hints & HINT_LOCALIZE_HH) != 0
+     && !(o->op_private & OPpEVAL_COPHH) && GvHV(PL_hintgv)) {
+        /* Store a copy of %^H that pp_entereval can pick up. */
+        HV *hh = hv_copy_hints_hv(GvHV(PL_hintgv));
+        OP *hhop;
+        STOREFEATUREBITSHH(hh);
+        hhop = newSVOP(OP_HINTSEVAL, 0, MUTABLE_SV(hh));
+        /* append hhop to only child  */
+        op_sibling_splice(o, cUNOPo->op_first, 0, hhop);
 
-void
-Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags,
-        Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p)
-{
-    MAGIC *callmg;
-    PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS;
-    PERL_UNUSED_CONTEXT;
-    callmg = SvMAGICAL((SV*)cv) ? mg_find((SV*)cv, PERL_MAGIC_checkcall) : NULL;
-    if (callmg) {
-        *ckfun_p = DPTR2FPTR(Perl_call_checker, callmg->mg_ptr);
-        *ckobj_p = callmg->mg_obj;
-        *ckflags_p = (callmg->mg_flags | gflags) & MGf_REQUIRE_GV;
-    } else {
-        *ckfun_p = Perl_ck_entersub_args_proto_or_list;
-        *ckobj_p = (SV*)cv;
-        *ckflags_p = gflags & MGf_REQUIRE_GV;
+        o->op_private |= OPpEVAL_HAS_HH;
     }
+    if (!(o->op_private & OPpEVAL_BYTES)
+         && FEATURE_UNIEVAL_IS_ENABLED)
+            o->op_private |= OPpEVAL_UNICODE;
+    return o;
 }
 
-void
-Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p)
+OP *
+Perl_ck_trycatch(pTHX_ OP *o)
 {
-    U32 ckflags;
-    PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER;
-    PERL_UNUSED_CONTEXT;
-    cv_get_call_checker_flags(cv, CALL_CHECKER_REQUIRE_GV, ckfun_p, ckobj_p,
-        &ckflags);
-}
+    LOGOP *enter;
+    OP *to_free = NULL;
+    OP *trykid, *catchkid;
+    OP *catchroot, *catchstart;
 
-/*
-=for apidoc cv_set_call_checker_flags
+    PERL_ARGS_ASSERT_CK_TRYCATCH;
 
-Sets the function that will be used to fix up a call to C<cv>.
-Specifically, the function is applied to an C<entersub> op tree for a
-subroutine call, not marked with C<&>, where the callee can be identified
-at compile time as C<cv>.
+    trykid = cUNOPo->op_first;
+    if(trykid->op_type == OP_NULL || trykid->op_type == OP_PUSHMARK) {
+        to_free = trykid;
+        trykid = OpSIBLING(trykid);
+    }
+    catchkid = OpSIBLING(trykid);
 
-The C-level function pointer is supplied in C<ckfun>, an SV argument for
-it is supplied in C<ckobj>, and control flags are supplied in C<ckflags>.
-The function should be defined like this:
+    assert(trykid->op_type == OP_POPTRY);
+    assert(catchkid->op_type == OP_CATCH);
 
-    STATIC OP * ckfun(pTHX_ OP *op, GV *namegv, SV *ckobj)
+    /* cut whole sibling chain free from o */
+    op_sibling_splice(o, NULL, -1, NULL);
+    if(to_free)
+        op_free(to_free);
+    op_free(o);
 
-It is intended to be called in this manner:
+    enter = alloc_LOGOP(OP_ENTERTRYCATCH, NULL, NULL);
 
-    entersubop = ckfun(aTHX_ entersubop, namegv, ckobj);
+    /* establish postfix order */
+    enter->op_next = (OP*)enter;
 
-In this call, C<entersubop> is a pointer to the C<entersub> op,
-which may be replaced by the check function, and C<namegv> supplies
-the name that should be used by the check function to refer
-to the callee of the C<entersub> op if it needs to emit any diagnostics.
-It is permitted to apply the check function in non-standard situations,
-such as to a call to a different subroutine or to a method call.
+    o = op_prepend_elem(OP_LINESEQ, (OP*)enter, trykid);
+    op_append_elem(OP_LINESEQ, (OP*)o, catchkid);
+
+    OpTYPE_set(o, OP_LEAVETRYCATCH);
+
+    /* The returned optree is actually threaded up slightly nonobviously in
+     * terms of its ->op_next pointers.
+     *
+     * This way, if the tryblock dies, its retop points at the OP_CATCH, but
+     * if it does not then its leavetry skips over that and continues
+     * execution past it.
+     */
 
-C<namegv> may not actually be a GV.  For efficiency, perl may pass a
-CV or other SV instead.  Whatever is passed can be used as the first
-argument to L</cv_name>.  You can force perl to pass a GV by including
-C<CALL_CHECKER_REQUIRE_GV> in the C<ckflags>.
+    /* First, link up the actual body of the catch block */
+    catchroot = OpSIBLING(cUNOPx(catchkid)->op_first);
+    catchstart = LINKLIST(catchroot);
+    cLOGOPx(catchkid)->op_other = catchstart;
 
-C<ckflags> is a bitset, in which only the C<CALL_CHECKER_REQUIRE_GV>
-bit currently has a defined meaning (for which see above).  All other
-bits should be clear.
+    o->op_next = LINKLIST(o);
 
-The current setting for a particular CV can be retrieved by
-L</cv_get_call_checker_flags>.
+    /* die within try block should jump to the catch */
+    enter->op_other = catchkid;
 
-=for apidoc cv_set_call_checker
+    /* after try block that doesn't die, just skip straight to leavetrycatch */
+    trykid->op_next = o;
 
-The original form of L</cv_set_call_checker_flags>, which passes it the
-C<CALL_CHECKER_REQUIRE_GV> flag for backward-compatibility.  The effect
-of that flag setting is that the check function is guaranteed to get a
-genuine GV as its C<namegv> argument.
+    /* after catch block, skip back up to the leavetrycatch */
+    catchroot->op_next = o;
 
-=cut
-*/
+    return o;
+}
 
-void
-Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj)
+OP *
+Perl_ck_exec(pTHX_ OP *o)
 {
-    PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER;
-    cv_set_call_checker_flags(cv, ckfun, ckobj, CALL_CHECKER_REQUIRE_GV);
+    PERL_ARGS_ASSERT_CK_EXEC;
+
+    if (o->op_flags & OPf_STACKED) {
+        OP *kid;
+        o = ck_fun(o);
+        kid = OpSIBLING(cUNOPo->op_first);
+        if (kid->op_type == OP_RV2GV)
+            op_null(kid);
+    }
+    else
+        o = listkids(o);
+    return o;
 }
 
-void
-Perl_cv_set_call_checker_flags(pTHX_ CV *cv, Perl_call_checker ckfun,
-                                     SV *ckobj, U32 ckflags)
+OP *
+Perl_ck_exists(pTHX_ OP *o)
 {
-    PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS;
-    if (ckfun == Perl_ck_entersub_args_proto_or_list && ckobj == (SV*)cv) {
-        if (SvMAGICAL((SV*)cv))
-            mg_free_type((SV*)cv, PERL_MAGIC_checkcall);
-    } else {
-        MAGIC *callmg;
-        sv_magic((SV*)cv, &PL_sv_undef, PERL_MAGIC_checkcall, NULL, 0);
-        callmg = mg_find((SV*)cv, PERL_MAGIC_checkcall);
-        assert(callmg);
-        if (callmg->mg_flags & MGf_REFCOUNTED) {
-            SvREFCNT_dec(callmg->mg_obj);
-            callmg->mg_flags &= ~MGf_REFCOUNTED;
-        }
-        callmg->mg_ptr = FPTR2DPTR(char *, ckfun);
-        callmg->mg_obj = ckobj;
-        if (ckobj != (SV*)cv) {
-            SvREFCNT_inc_simple_void_NN(ckobj);
-            callmg->mg_flags |= MGf_REFCOUNTED;
+    PERL_ARGS_ASSERT_CK_EXISTS;
+
+    o = ck_fun(o);
+    if (o->op_flags & OPf_KIDS) {
+        OP * const kid = cUNOPo->op_first;
+        if (kid->op_type == OP_ENTERSUB) {
+            (void) ref(kid, o->op_type);
+            if (kid->op_type != OP_RV2CV
+                        && !(PL_parser && PL_parser->error_count))
+                Perl_croak(aTHX_
+                          "exists argument is not a subroutine name");
+            o->op_private |= OPpEXISTS_SUB;
         }
-        callmg->mg_flags = (callmg->mg_flags &~ MGf_REQUIRE_GV)
-                         | (U8)(ckflags & MGf_REQUIRE_GV) | MGf_COPY;
+        else if (kid->op_type == OP_AELEM)
+            o->op_flags |= OPf_SPECIAL;
+        else if (kid->op_type != OP_HELEM)
+            Perl_croak(aTHX_ "exists argument is not a HASH or ARRAY "
+                             "element or a subroutine");
+        op_null(kid);
     }
+    return o;
 }
 
-static void
-S_entersub_alloc_targ(pTHX_ OP * const o)
+OP *
+Perl_ck_helemexistsor(pTHX_ OP *o)
 {
-    o->op_targ = pad_alloc(OP_ENTERSUB, SVs_PADTMP);
-    o->op_private |= OPpENTERSUB_HASTARG;
+    PERL_ARGS_ASSERT_CK_HELEMEXISTSOR;
+
+    o = ck_fun(o);
+
+    OP *first;
+    if(!(o->op_flags & OPf_KIDS) ||
+        !(first = cLOGOPo->op_first) ||
+        first->op_type != OP_HELEM)
+        /* As this opcode isn't currently exposed to pure-perl, only core or XS
+         * authors are ever going to see this message. We don't need to list it
+         * in perldiag as to do so would require documenting OP_HELEMEXISTSOR
+         * itself
+         */
+        /* diag_listed_as: SKIPME */
+        croak("OP_HELEMEXISTSOR argument is not a HASH element");
+
+    OP *hvop  = cBINOPx(first)->op_first;
+    OP *keyop = OpSIBLING(hvop);
+    assert(!OpSIBLING(keyop));
+
+    op_null(first); // null out the OP_HELEM
+
+    keyop->op_next = o;
+
+    return o;
 }
 
 OP *
-Perl_ck_subr(pTHX_ OP *o)
+Perl_ck_rvconst(pTHX_ OP *o)
 {
-    OP *aop, *cvop;
-    CV *cv;
-    GV *namegv;
-    SV **const_class = NULL;
+    SVOP * const kid = cSVOPx(cUNOPo->op_first);
 
-    PERL_ARGS_ASSERT_CK_SUBR;
+    PERL_ARGS_ASSERT_CK_RVCONST;
 
-    aop = cUNOPx(o)->op_first;
-    if (!OpHAS_SIBLING(aop))
-        aop = cUNOPx(aop)->op_first;
-    aop = OpSIBLING(aop);
-    for (cvop = aop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ;
-    cv = rv2cv_op_cv(cvop, RV2CVOPCV_MARK_EARLY);
-    namegv = cv ? (GV*)rv2cv_op_cv(cvop, RV2CVOPCV_MAYBE_NAME_GV) : NULL;
+    if (o->op_type == OP_RV2HV)
+        /* rv2hv steals the bottom bit for its own uses */
+        o->op_private &= ~OPpARG1_MASK;
 
-    o->op_private &= ~1;
     o->op_private |= (PL_hints & HINT_STRICT_REFS);
-    if (PERLDB_SUB && PL_curstash != PL_debstash)
-        o->op_private |= OPpENTERSUB_DB;
-    switch (cvop->op_type) {
-        case OP_RV2CV:
-            o->op_private |= (cvop->op_private & OPpENTERSUB_AMPER);
-            op_null(cvop);
-            break;
-        case OP_METHOD:
-        case OP_METHOD_NAMED:
-        case OP_METHOD_SUPER:
-        case OP_METHOD_REDIR:
-        case OP_METHOD_REDIR_SUPER:
-            o->op_flags |= OPf_REF;
-            if (aop->op_type == OP_CONST) {
-                aop->op_private &= ~OPpCONST_STRICT;
-                const_class = &cSVOPx(aop)->op_sv;
-            }
-            else if (aop->op_type == OP_LIST) {
-                OP * const sib = OpSIBLING(((UNOP*)aop)->op_first);
-                if (sib && sib->op_type == OP_CONST) {
-                    sib->op_private &= ~OPpCONST_STRICT;
-                    const_class = &cSVOPx(sib)->op_sv;
-                }
-            }
-            /* make class name a shared cow string to speedup method calls */
-            /* constant string might be replaced with object, f.e. bigint */
-            if (const_class && SvPOK(*const_class)) {
-                STRLEN len;
-                const char* str = SvPV(*const_class, len);
-                if (len) {
-                    SV* const shared = newSVpvn_share(
-                        str, SvUTF8(*const_class)
-                                    ? -(SSize_t)len : (SSize_t)len,
-                        0
-                    );
-                    if (SvREADONLY(*const_class))
-                        SvREADONLY_on(shared);
-                    SvREFCNT_dec(*const_class);
-                    *const_class = shared;
-                }
-            }
-            break;
-    }
 
-    if (!cv) {
-        S_entersub_alloc_targ(aTHX_ o);
-        return ck_entersub_args_list(o);
-    } else {
-        Perl_call_checker ckfun;
-        SV *ckobj;
-        U32 ckflags;
-        cv_get_call_checker_flags(cv, 0, &ckfun, &ckobj, &ckflags);
-        if (CvISXSUB(cv) || !CvROOT(cv))
-            S_entersub_alloc_targ(aTHX_ o);
-        if (!namegv) {
-            /* The original call checker API guarantees that a GV will
-               be provided with the right name.  So, if the old API was
-               used (or the REQUIRE_GV flag was passed), we have to reify
-               the CV’s GV, unless this is an anonymous sub.  This is not
-               ideal for lexical subs, as its stringification will include
-               the package.  But it is the best we can do.  */
-            if (ckflags & CALL_CHECKER_REQUIRE_GV) {
-                if (!CvANON(cv) && (!CvNAMED(cv) || CvNAME_HEK(cv)))
-                    namegv = CvGV(cv);
-            }
-            else namegv = MUTABLE_GV(cv);
-            /* After a syntax error in a lexical sub, the cv that
-               rv2cv_op_cv returns may be a nameless stub. */
-            if (!namegv) return ck_entersub_args_list(o);
+    if (kid->op_type == OP_CONST) {
+        int iscv;
+        GV *gv;
+        SV * const kidsv = kid->op_sv;
 
+        /* Is it a constant from cv_const_sv()? */
+        if ((SvROK(kidsv) || isGV_with_GP(kidsv)) && SvREADONLY(kidsv)) {
+            return o;
+        }
+        if (SvTYPE(kidsv) == SVt_PVAV) return o;
+        if ((o->op_private & HINT_STRICT_REFS) && (kid->op_private & OPpCONST_BARE)) {
+            const char *badthing;
+            switch (o->op_type) {
+            case OP_RV2SV:
+                badthing = "a SCALAR";
+                break;
+            case OP_RV2AV:
+                badthing = "an ARRAY";
+                break;
+            case OP_RV2HV:
+                badthing = "a HASH";
+                break;
+            default:
+                badthing = NULL;
+                break;
+            }
+            if (badthing)
+                Perl_croak(aTHX_
+                           "Can't use bareword (\"%" SVf "\") as %s ref while \"strict refs\" in use",
+                           SVfARG(kidsv), badthing);
+        }
+        /*
+         * This is a little tricky.  We only want to add the symbol if we
+         * didn't add it in the lexer.  Otherwise we get duplicate strict
+         * warnings.  But if we didn't add it in the lexer, we must at
+         * least pretend like we wanted to add it even if it existed before,
+         * or we get possible typo warnings.  OPpCONST_ENTERED says
+         * whether the lexer already added THIS instance of this symbol.
+         */
+        iscv = o->op_type == OP_RV2CV ? GV_NOEXPAND|GV_ADDMULTI : 0;
+        gv = gv_fetchsv(kidsv,
+                o->op_type == OP_RV2CV
+                        && o->op_private & OPpMAY_RETURN_CONSTANT
+                    ? GV_NOEXPAND
+                    : iscv | !(kid->op_private & OPpCONST_ENTERED),
+                iscv
+                    ? SVt_PVCV
+                    : o->op_type == OP_RV2SV
+                        ? SVt_PV
+                        : o->op_type == OP_RV2AV
+                            ? SVt_PVAV
+                            : o->op_type == OP_RV2HV
+                                ? SVt_PVHV
+                                : SVt_PVGV);
+        if (gv) {
+            if (!isGV(gv)) {
+                assert(iscv);
+                assert(SvROK(gv));
+                if (!(o->op_private & OPpMAY_RETURN_CONSTANT)
+                  && SvTYPE(SvRV(gv)) != SVt_PVCV)
+                    gv_fetchsv(kidsv, GV_ADDMULTI, SVt_PVCV);
+            }
+            OpTYPE_set(kid, OP_GV);
+            SvREFCNT_dec(kid->op_sv);
+#ifdef USE_ITHREADS
+            /* XXX hack: dependence on sizeof(PADOP) <= sizeof(SVOP) */
+            STATIC_ASSERT_STMT(sizeof(PADOP) <= sizeof(SVOP));
+            kPADOP->op_padix = pad_alloc(OP_GV, SVf_READONLY);
+            SvREFCNT_dec(PAD_SVl(kPADOP->op_padix));
+            PAD_SETSV(kPADOP->op_padix, MUTABLE_SV(SvREFCNT_inc_simple_NN(gv)));
+#else
+            kid->op_sv = SvREFCNT_inc_simple_NN(gv);
+#endif
+            kid->op_private = 0;
+            /* FAKE globs in the symbol table cause weird bugs (#77810) */
+            SvFAKE_off(gv);
         }
-        return ckfun(aTHX_ o, namegv, ckobj);
-    }
-}
-
-OP *
-Perl_ck_svconst(pTHX_ OP *o)
-{
-    SV * const sv = cSVOPo->op_sv;
-    PERL_ARGS_ASSERT_CK_SVCONST;
-    PERL_UNUSED_CONTEXT;
-#ifdef PERL_COPY_ON_WRITE
-    /* Since the read-only flag may be used to protect a string buffer, we
-       cannot do copy-on-write with existing read-only scalars that are not
-       already copy-on-write scalars.  To allow $_ = "hello" to do COW with
-       that constant, mark the constant as COWable here, if it is not
-       already read-only. */
-    if (!SvREADONLY(sv) && !SvIsCOW(sv) && SvCANCOW(sv)) {
-        SvIsCOW_on(sv);
-        CowREFCNT(sv) = 0;
-# ifdef PERL_DEBUG_READONLY_COW
-        sv_buf_to_ro(sv);
-# endif
     }
-#endif
-    SvREADONLY_on(sv);
     return o;
 }
 
 OP *
-Perl_ck_trunc(pTHX_ OP *o)
+Perl_ck_ftst(pTHX_ OP *o)
 {
-    PERL_ARGS_ASSERT_CK_TRUNC;
+    const I32 type = o->op_type;
 
-    if (o->op_flags & OPf_KIDS) {
-        SVOP *kid = (SVOP*)cUNOPo->op_first;
+    PERL_ARGS_ASSERT_CK_FTST;
 
-        if (kid->op_type == OP_NULL)
-            kid = (SVOP*)OpSIBLING(kid);
-        if (kid && kid->op_type == OP_CONST &&
-            (kid->op_private & OPpCONST_BARE) &&
-            !kid->op_folded)
-        {
-            o->op_flags |= OPf_SPECIAL;
-            kid->op_private &= ~OPpCONST_STRICT;
+    if (o->op_flags & OPf_REF) {
+        NOOP;
+    }
+    else if (o->op_flags & OPf_KIDS && cUNOPo->op_first->op_type != OP_STUB) {
+        SVOP * const kid = cSVOPx(cUNOPo->op_first);
+        const OPCODE kidtype = kid->op_type;
+
+        if (kidtype == OP_CONST && (kid->op_private & OPpCONST_BARE)
+         && !kid->op_folded) {
             if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED) {
-                no_bareword_filehandle(SvPVX(cSVOPx_sv(kid)));
+                no_bareword_filehandle(SvPVX(kSVOP_sv));
+            }
+            OP * const newop = newGVOP(type, OPf_REF,
+                gv_fetchsv(kid->op_sv, GV_ADD, SVt_PVIO));
+            op_free(o);
+            return newop;
+        }
+
+        if ((kidtype == OP_RV2AV || kidtype == OP_PADAV) && ckWARN(WARN_SYNTAX)) {
+            SV *name = S_op_varname_subscript(aTHX_ (OP*)kid, 2);
+            if (name) {
+                /* diag_listed_as: Array passed to stat will be coerced to a scalar%s */
+                Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%s (did you want stat %" SVf "?)",
+                            array_passed_to_stat, name);
             }
+            else {
+                /* diag_listed_as: Array passed to stat will be coerced to a scalar%s */
+                Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "%s", array_passed_to_stat);
+            }
+       }
+        scalar((OP *) kid);
+        if ((PL_hints & HINT_FILETEST_ACCESS) && OP_IS_FILETEST_ACCESS(o->op_type))
+            o->op_private |= OPpFT_ACCESS;
+        if (OP_IS_FILETEST(type)
+            && OP_IS_FILETEST(kidtype)
+        ) {
+            o->op_private |= OPpFT_STACKED;
+            kid->op_private |= OPpFT_STACKING;
+            if (kidtype == OP_FTTTY && (
+                   !(kid->op_private & OPpFT_STACKED)
+                || kid->op_private & OPpFT_AFTER_t
+               ))
+                o->op_private |= OPpFT_AFTER_t;
         }
     }
-    return ck_fun(o);
+    else {
+        op_free(o);
+        if (type == OP_FTTTY)
+            o = newGVOP(type, OPf_REF, PL_stdingv);
+        else
+            o = newUNOP(type, 0, newDEFSVOP());
+    }
+    return o;
 }
 
 OP *
-Perl_ck_substr(pTHX_ OP *o)
+Perl_ck_fun(pTHX_ OP *o)
 {
-    PERL_ARGS_ASSERT_CK_SUBSTR;
-
-    o = ck_fun(o);
-    if ((o->op_flags & OPf_KIDS) && (o->op_private == 4)) {
-        OP *kid = cLISTOPo->op_first;
+    const int type = o->op_type;
+    I32 oa = PL_opargs[type] >> OASHIFT;
 
-        if (kid->op_type == OP_NULL)
-            kid = OpSIBLING(kid);
-        if (kid)
-            /* Historically, substr(delete $foo{bar},...) has been allowed
-               with 4-arg substr.  Keep it working by applying entersub
-               lvalue context.  */
-            op_lvalue(kid, OP_ENTERSUB);
+    PERL_ARGS_ASSERT_CK_FUN;
 
+    if (o->op_flags & OPf_STACKED) {
+        if ((oa & OA_OPTIONAL) && (oa >> 4) && !((oa >> 4) & OA_OPTIONAL))
+            oa &= ~OA_OPTIONAL;
+        else
+            return no_fh_allowed(o);
     }
-    return o;
-}
 
-OP *
-Perl_ck_tell(pTHX_ OP *o)
-{
-    PERL_ARGS_ASSERT_CK_TELL;
-    o = ck_fun(o);
     if (o->op_flags & OPf_KIDS) {
-     OP *kid = cLISTOPo->op_first;
-     if (kid->op_type == OP_NULL && OpHAS_SIBLING(kid)) kid = OpSIBLING(kid);
-     if (kid->op_type == OP_RV2GV) kid->op_private |= OPpALLOW_FAKE;
-    }
-    return o;
-}
+        OP *prev_kid = NULL;
+        OP *kid = cLISTOPo->op_first;
+        I32 numargs = 0;
+        bool seen_optional = FALSE;
 
-PERL_STATIC_INLINE OP *
-S_last_non_null_kid(OP *o) {
-    OP *last = NULL;
-    if (cUNOPo->op_flags & OPf_KIDS) {
-        OP *k = cLISTOPo->op_first;
-        while (k) {
-            if (k->op_type != OP_NULL) {
-                last = k;
+        if (kid->op_type == OP_PUSHMARK ||
+            (kid->op_type == OP_NULL && kid->op_targ == OP_PUSHMARK))
+        {
+            prev_kid = kid;
+            kid = OpSIBLING(kid);
+        }
+        if (kid && kid->op_type == OP_COREARGS) {
+            bool optional = FALSE;
+            while (oa) {
+                numargs++;
+                if (oa & OA_OPTIONAL) optional = TRUE;
+                oa = oa >> 4;
             }
-            k = OpSIBLING(k);
+            if (optional) o->op_private |= numargs;
+            return o;
         }
-    }
 
-    return last;
-}
+        while (oa) {
+            if (oa & OA_OPTIONAL || (oa & 7) == OA_LIST) {
+                if (!kid && !seen_optional && PL_opargs[type] & OA_DEFGV) {
+                    kid = newDEFSVOP();
+                    /* append kid to chain */
+                    op_sibling_splice(o, prev_kid, 0, kid);
+                }
+                seen_optional = TRUE;
+            }
+            if (!kid) break;
 
-OP *
-Perl_ck_each(pTHX_ OP *o)
-{
-    OP *kid = o->op_flags & OPf_KIDS ? cUNOPo->op_first : NULL;
-    const unsigned orig_type  = o->op_type;
+            numargs++;
+            switch (oa & 7) {
+            case OA_SCALAR:
+                /* list seen where single (scalar) arg expected? */
+                if (numargs == 1 && !(oa >> 4)
+                    && kid->op_type == OP_LIST && type != OP_SCALAR)
+                {
+                    return too_many_arguments_pv(o,PL_op_desc[type], 0);
+                }
+                if (type != OP_DELETE) scalar(kid);
+                break;
+            case OA_LIST:
+                if (oa < 16) {
+                    kid = 0;
+                    continue;
+                }
+                else
+                    list(kid);
+                break;
+            case OA_AVREF:
+                if ((type == OP_PUSH || type == OP_UNSHIFT)
+                    && !OpHAS_SIBLING(kid))
+                    Perl_ck_warner(aTHX_ packWARN(WARN_SYNTAX),
+                                   "Useless use of %s with no values",
+                                   PL_op_desc[type]);
 
-    PERL_ARGS_ASSERT_CK_EACH;
+                if (kid->op_type == OP_CONST
+                      && (  !SvROK(cSVOPx_sv(kid))
+                         || SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVAV  )
+                        )
+                    bad_type_pv(numargs, "array", o, kid);
+                else if (kid->op_type == OP_RV2HV || kid->op_type == OP_PADHV
+                         || kid->op_type == OP_RV2GV) {
+                    bad_type_pv(1, "array", o, kid);
+                }
+                else if (kid->op_type != OP_RV2AV && kid->op_type != OP_PADAV) {
+                    yyerror_pv(Perl_form(aTHX_ "Experimental %s on scalar is now forbidden",
+                                         PL_op_desc[type]), 0);
+                }
+                else {
+                    op_lvalue(kid, type);
+                }
+                break;
+            case OA_HVREF:
+                if (kid->op_type != OP_RV2HV && kid->op_type != OP_PADHV)
+                    bad_type_pv(numargs, "hash", o, kid);
+                op_lvalue(kid, type);
+                break;
+            case OA_CVREF:
+                {
+                    /* replace kid with newop in chain */
+                    OP * const newop =
+                        S_op_sibling_newUNOP(aTHX_ o, prev_kid, OP_NULL, 0);
+                    newop->op_next = newop;
+                    kid = newop;
+                }
+                break;
+            case OA_FILEREF:
+                if (kid->op_type != OP_GV && kid->op_type != OP_RV2GV) {
+                    if (kid->op_type == OP_CONST &&
+                        (kid->op_private & OPpCONST_BARE))
+                    {
+                        OP * const newop = newGVOP(OP_GV, 0,
+                            gv_fetchsv(kSVOP->op_sv, GV_ADD, SVt_PVIO));
+                        /* a first argument is handled by toke.c, ideally we'd
+                         just check here but several ops don't use ck_fun() */
+                        if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED) {
+                            no_bareword_filehandle(SvPVX(kSVOP_sv));
+                        }
+                        /* replace kid with newop in chain */
+                        op_sibling_splice(o, prev_kid, 1, newop);
+                        op_free(kid);
+                        kid = newop;
+                    }
+                    else if (kid->op_type == OP_READLINE) {
+                        /* neophyte patrol: open(<FH>), close(<FH>) etc. */
+                        bad_type_pv(numargs, "HANDLE", o, kid);
+                    }
+                    else {
+                        I32 flags = OPf_SPECIAL;
+                        I32 priv = 0;
+                        PADOFFSET targ = 0;
 
-    if (kid) {
-        switch (kid->op_type) {
-            case OP_PADHV:
-                break;
+                        /* is this op a FH constructor? */
+                        if (is_handle_constructor(o,numargs)) {
+                            const char *name = NULL;
+                            STRLEN len = 0;
+                            U32 name_utf8 = 0;
+                            bool want_dollar = TRUE;
 
-            case OP_RV2HV:
-                /* Catch out an anonhash here, since the behaviour might be
-                 * confusing.
-                 *
-                 * The typical tree is:
-                 *
-                 *     rv2hv
-                 *         scope
-                 *             null
-                 *             anonhash
-                 *
-                 * If the contents of the block is more complex you might get:
-                 *
-                 *     rv2hv
-                 *         leave
-                 *             enter
-                 *             ...
-                 *             anonhash
-                 *
-                 * Similarly for the anonlist version below.
-                 */
-                if (orig_type == OP_EACH &&
-                    ckWARN(WARN_SYNTAX) &&
-                    (cUNOPx(kid)->op_flags & OPf_KIDS) &&
-                    ( cUNOPx(kid)->op_first->op_type == OP_SCOPE ||
-                      cUNOPx(kid)->op_first->op_type == OP_LEAVE) &&
-                    (cUNOPx(kid)->op_first->op_flags & OPf_KIDS)) {
-                    /* look for last non-null kid, since we might have:
-                       each %{ some code ; +{ anon hash } }
-                    */
-                    OP *k = S_last_non_null_kid(cUNOPx(kid)->op_first);
-                    if (k && k->op_type == OP_ANONHASH) {
-                        /* diag_listed_as: each on anonymous %s will always start from the beginning */
-                        Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "each on anonymous hash will always start from the beginning");
+                            flags = 0;
+                            /* Set a flag to tell rv2gv to vivify
+                             * need to "prove" flag does not mean something
+                             * else already - NI-S 1999/05/07
+                             */
+                            priv = OPpDEREF;
+                            if (kid->op_type == OP_PADSV) {
+                                PADNAME * const pn
+                                    = PAD_COMPNAME_SV(kid->op_targ);
+                                name = PadnamePV (pn);
+                                len  = PadnameLEN(pn);
+                                name_utf8 = PadnameUTF8(pn);
+                            }
+                            else if (kid->op_type == OP_RV2SV
+                                     && kUNOP->op_first->op_type == OP_GV)
+                            {
+                                GV * const gv = cGVOPx_gv(kUNOP->op_first);
+                                name = GvNAME(gv);
+                                len = GvNAMELEN(gv);
+                                name_utf8 = GvNAMEUTF8(gv) ? SVf_UTF8 : 0;
+                            }
+                            else if (kid->op_type == OP_AELEM
+                                     || kid->op_type == OP_HELEM)
+                            {
+                                 OP *firstop;
+                                 OP *op = kBINOP->op_first;
+                                 name = NULL;
+                                 if (op) {
+                                      SV *tmpstr = NULL;
+                                      const char * const a =
+                                           kid->op_type == OP_AELEM ?
+                                           "[]" : "{}";
+                                      if (((op->op_type == OP_RV2AV) ||
+                                           (op->op_type == OP_RV2HV)) &&
+                                          (firstop = cUNOPx(op)->op_first) &&
+                                          (firstop->op_type == OP_GV)) {
+                                           /* packagevar $a[] or $h{} */
+                                           GV * const gv = cGVOPx_gv(firstop);
+                                           if (gv)
+                                                tmpstr =
+                                                     Perl_newSVpvf(aTHX_
+                                                                   "%s%c...%c",
+                                                                   GvNAME(gv),
+                                                                   a[0], a[1]);
+                                      }
+                                      else if (op->op_type == OP_PADAV
+                                               || op->op_type == OP_PADHV) {
+                                           /* lexicalvar $a[] or $h{} */
+                                           const char * const padname =
+                                                PAD_COMPNAME_PV(op->op_targ);
+                                           if (padname)
+                                                tmpstr =
+                                                     Perl_newSVpvf(aTHX_
+                                                                   "%s%c...%c",
+                                                                   padname + 1,
+                                                                   a[0], a[1]);
+                                      }
+                                      if (tmpstr) {
+                                           name = SvPV_const(tmpstr, len);
+                                           name_utf8 = SvUTF8(tmpstr);
+                                           sv_2mortal(tmpstr);
+                                      }
+                                 }
+                                 if (!name) {
+                                      name = "__ANONIO__";
+                                      len = 10;
+                                      want_dollar = FALSE;
+                                 }
+                                 op_lvalue(kid, type);
+                            }
+                            if (name) {
+                                SV *namesv;
+                                targ = pad_alloc(OP_RV2GV, SVf_READONLY);
+                                namesv = PAD_SVl(targ);
+                                if (want_dollar && *name != '$')
+                                    sv_setpvs(namesv, "$");
+                                else
+                                    SvPVCLEAR(namesv);
+                                sv_catpvn(namesv, name, len);
+                                if ( name_utf8 ) SvUTF8_on(namesv);
+                            }
+                        }
+                        scalar(kid);
+                        kid = S_op_sibling_newUNOP(aTHX_ o, prev_kid,
+                                    OP_RV2GV, flags);
+                        kid->op_targ = targ;
+                        kid->op_private |= priv;
                     }
                 }
+                scalar(kid);
                 break;
-            case OP_RV2AV:
-                if (orig_type == OP_EACH &&
-                    ckWARN(WARN_SYNTAX) &&
-                    (cUNOPx(kid)->op_flags & OPf_KIDS) &&
-                    (cUNOPx(kid)->op_first->op_type == OP_SCOPE ||
-                     cUNOPx(kid)->op_first->op_type == OP_LEAVE) &&
-                    (cUNOPx(kid)->op_first->op_flags & OPf_KIDS)) {
-                    OP *k = S_last_non_null_kid(cUNOPx(kid)->op_first);
-                    if (k && k->op_type == OP_ANONLIST) {
-                        /* diag_listed_as: each on anonymous %s will always start from the beginning */
-                        Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "each on anonymous array will always start from the beginning");
-                    }
-                }
-                /* FALLTHROUGH */
-            case OP_PADAV:
-                OpTYPE_set(o, orig_type == OP_EACH ? OP_AEACH
-                            : orig_type == OP_KEYS ? OP_AKEYS
-                            :                        OP_AVALUES);
+            case OA_SCALARREF:
+                if ((type == OP_UNDEF || type == OP_POS)
+                    && numargs == 1 && !(oa >> 4)
+                    && kid->op_type == OP_LIST)
+                    return too_many_arguments_pv(o,PL_op_desc[type], 0);
+                op_lvalue(scalar(kid), type);
                 break;
-            case OP_CONST:
-                if (kid->op_private == OPpCONST_BARE
-                 || !SvROK(cSVOPx_sv(kid))
-                 || (  SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVAV
-                    && SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVHV  )
-                   )
-                    goto bad;
-                /* FALLTHROUGH */
-            default:
-                qerror(Perl_mess(aTHX_
-                    "Experimental %s on scalar is now forbidden",
-                     PL_op_desc[orig_type]));
-               bad:
-                bad_type_pv(1, "hash or array", o, kid);
-                return o;
+            }
+            oa >>= 4;
+            prev_kid = kid;
+            kid = OpSIBLING(kid);
         }
+        /* FIXME - should the numargs or-ing move after the too many
+         * arguments check? */
+        o->op_private |= numargs;
+        if (kid)
+            return too_many_arguments_pv(o,OP_DESC(o), 0);
+        listkids(o);
     }
-    return ck_fun(o);
+    else if (PL_opargs[type] & OA_DEFGV) {
+        /* Ordering of these two is important to keep f_map.t passing.  */
+        op_free(o);
+        return newUNOP(type, 0, newDEFSVOP());
+    }
+
+    if (oa) {
+        while (oa & OA_OPTIONAL)
+            oa >>= 4;
+        if (oa && oa != OA_LIST)
+            return too_few_arguments_pv(o,OP_DESC(o), 0);
+    }
+    return o;
 }
 
 OP *
-Perl_ck_length(pTHX_ OP *o)
+Perl_ck_glob(pTHX_ OP *o)
 {
-    PERL_ARGS_ASSERT_CK_LENGTH;
+    GV *gv;
 
-    o = ck_fun(o);
+    PERL_ARGS_ASSERT_CK_GLOB;
 
-    if (ckWARN(WARN_SYNTAX)) {
-        const OP *kid = o->op_flags & OPf_KIDS ? cLISTOPo->op_first : NULL;
+    o = ck_fun(o);
+    if ((o->op_flags & OPf_KIDS) && !OpHAS_SIBLING(cLISTOPo->op_first))
+        op_append_elem(OP_GLOB, o, newDEFSVOP()); /* glob() => glob($_) */
 
-        if (kid) {
-            SV *name = NULL;
-            const bool hash = kid->op_type == OP_PADHV
-                           || kid->op_type == OP_RV2HV;
-            switch (kid->op_type) {
-                case OP_PADHV:
-                case OP_PADAV:
-                case OP_RV2HV:
-                case OP_RV2AV:
-                    name = S_op_varname(aTHX_ kid);
-                    break;
-                default:
-                    return o;
-            }
-            if (name)
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                    "length() used on %" SVf " (did you mean \"scalar(%s%" SVf
-                    ")\"?)",
-                    SVfARG(name), hash ? "keys " : "", SVfARG(name)
-                );
-            else if (hash)
-     /* diag_listed_as: length() used on %s (did you mean "scalar(%s)"?) */
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                    "length() used on %%hash (did you mean \"scalar(keys %%hash)\"?)");
-            else
-     /* diag_listed_as: length() used on %s (did you mean "scalar(%s)"?) */
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                    "length() used on @array (did you mean \"scalar(@array)\"?)");
-        }
+    if (!(o->op_flags & OPf_SPECIAL) && (gv = gv_override("glob", 4)))
+    {
+        /* convert
+         *     glob
+         *       \ null - const(wildcard)
+         * into
+         *     null
+         *       \ enter
+         *            \ list
+         *                 \ mark - glob - rv2cv
+         *                             |        \ gv(CORE::GLOBAL::glob)
+         *                             |
+         *                              \ null - const(wildcard)
+         */
+        o->op_flags |= OPf_SPECIAL;
+        o->op_targ = pad_alloc(OP_GLOB, SVs_PADTMP);
+        o = S_new_entersubop(aTHX_ gv, o);
+        o = newUNOP(OP_NULL, 0, o);
+        o->op_targ = OP_GLOB; /* hint at what it used to be: eg in newWHILEOP */
+        return o;
+    }
+    else o->op_flags &= ~OPf_SPECIAL;
+#if !defined(PERL_EXTERNAL_GLOB)
+    if (!PL_globhook) {
+        ENTER;
+        Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
+                               newSVpvs("File::Glob"), NULL, NULL, NULL);
+        LEAVE;
     }
-
+#endif /* !PERL_EXTERNAL_GLOB */
+    gv = (GV *)newSV_type(SVt_NULL);
+    gv_init(gv, 0, "", 0, 0);
+    gv_IOadd(gv);
+    op_append_elem(OP_GLOB, o, newGVOP(OP_GV, 0, gv));
+    SvREFCNT_dec_NN(gv); /* newGVOP increased it */
+    scalarkids(o);
     return o;
 }
 
-
 OP *
-Perl_ck_isa(pTHX_ OP *o)
+Perl_ck_grep(pTHX_ OP *o)
 {
-    OP *classop = cBINOPo->op_last;
-
-    PERL_ARGS_ASSERT_CK_ISA;
-
-    /* Convert barename into PV */
-    if(classop->op_type == OP_CONST && classop->op_private & OPpCONST_BARE) {
-        /* TODO: Optionally convert package to raw HV here */
-        classop->op_private &= ~(OPpCONST_BARE|OPpCONST_STRICT);
-    }
-
-    return o;
-}
-
-
-/*
-   ---------------------------------------------------------
-
-   Common vars in list assignment
-
-   There now follows some enums and static functions for detecting
-   common variables in list assignments. Here is a little essay I wrote
-   for myself when trying to get my head around this. DAPM.
-
-   ----
-
-   First some random observations:
-
-   * If a lexical var is an alias of something else, e.g.
-       for my $x ($lex, $pkg, $a[0]) {...}
-     then the act of aliasing will increase the reference count of the SV
-
-   * If a package var is an alias of something else, it may still have a
-     reference count of 1, depending on how the alias was created, e.g.
-     in *a = *b, $a may have a refcount of 1 since the GP is shared
-     with a single GvSV pointer to the SV. So If it's an alias of another
-     package var, then RC may be 1; if it's an alias of another scalar, e.g.
-     a lexical var or an array element, then it will have RC > 1.
-
-   * There are many ways to create a package alias; ultimately, XS code
-     may quite legally do GvSV(gv) = SvREFCNT_inc(sv) for example, so
-     run-time tracing mechanisms are unlikely to be able to catch all cases.
-
-   * When the LHS is all my declarations, the same vars can't appear directly
-     on the RHS, but they can indirectly via closures, aliasing and lvalue
-     subs. But those techniques all involve an increase in the lexical
-     scalar's ref count.
-
-   * When the LHS is all lexical vars (but not necessarily my declarations),
-     it is possible for the same lexicals to appear directly on the RHS, and
-     without an increased ref count, since the stack isn't refcounted.
-     This case can be detected at compile time by scanning for common lex
-     vars with PL_generation.
-
-   * lvalue subs defeat common var detection, but they do at least
-     return vars with a temporary ref count increment. Also, you can't
-     tell at compile time whether a sub call is lvalue.
-
-
-   So...
-
-   A: There are a few circumstances where there definitely can't be any
-     commonality:
-
-       LHS empty:  () = (...);
-       RHS empty:  (....) = ();
-       RHS contains only constants or other 'can't possibly be shared'
-           elements (e.g. ops that return PADTMPs):  (...) = (1,2, length)
-           i.e. they only contain ops not marked as dangerous, whose children
-           are also not dangerous;
-       LHS ditto;
-       LHS contains a single scalar element: e.g. ($x) = (....); because
-           after $x has been modified, it won't be used again on the RHS;
-       RHS contains a single element with no aggregate on LHS: e.g.
-           ($a,$b,$c)  = ($x); again, once $a has been modified, its value
-           won't be used again.
-
-   B: If LHS are all 'my' lexical var declarations (or safe ops, which
-     we can ignore):
-
-       my ($a, $b, @c) = ...;
-
-       Due to closure and goto tricks, these vars may already have content.
-       For the same reason, an element on the RHS may be a lexical or package
-       alias of one of the vars on the left, or share common elements, for
-       example:
-
-           my ($x,$y) = f(); # $x and $y on both sides
-           sub f : lvalue { ($x,$y) = (1,2); $y, $x }
-
-       and
-
-           my $ra = f();
-           my @a = @$ra;  # elements of @a on both sides
-           sub f { @a = 1..4; \@a }
-
-
-       First, just consider scalar vars on LHS:
-
-           RHS is safe only if (A), or in addition,
-               * contains only lexical *scalar* vars, where neither side's
-                 lexicals have been flagged as aliases
-
-           If RHS is not safe, then it's always legal to check LHS vars for
-           RC==1, since the only RHS aliases will always be associated
-           with an RC bump.
+    LOGOP *gwop;
+    OP *kid;
+    const OPCODE type = o->op_type == OP_GREPSTART ? OP_GREPWHILE : OP_MAPWHILE;
 
-           Note that in particular, RHS is not safe if:
+    PERL_ARGS_ASSERT_CK_GREP;
 
-               * it contains package scalar vars; e.g.:
+    /* don't allocate gwop here, as we may leak it if PL_parser->error_count > 0 */
 
-                   f();
-                   my ($x, $y) = (2, $x_alias);
-                   sub f { $x = 1; *x_alias = \$x; }
+    if (o->op_flags & OPf_STACKED) {
+        kid = cUNOPx(OpSIBLING(cLISTOPo->op_first))->op_first;
+        if (kid->op_type != OP_SCOPE && kid->op_type != OP_LEAVE)
+            return no_fh_allowed(o);
+        o->op_flags &= ~OPf_STACKED;
+    }
+    kid = OpSIBLING(cLISTOPo->op_first);
+    if (type == OP_MAPWHILE)
+        list(kid);
+    else
+        scalar(kid);
+    o = ck_fun(o);
+    if (PL_parser && PL_parser->error_count)
+        return o;
+    kid = OpSIBLING(cLISTOPo->op_first);
+    if (kid->op_type != OP_NULL)
+        Perl_croak(aTHX_ "panic: ck_grep, type=%u", (unsigned) kid->op_type);
+    kid = kUNOP->op_first;
 
-               * It contains other general elements, such as flattened or
-               * spliced or single array or hash elements, e.g.
+    gwop = alloc_LOGOP(type, o, LINKLIST(kid));
+    kid->op_next = (OP*)gwop;
+    o->op_private = gwop->op_private = 0;
+    gwop->op_targ = pad_alloc(type, SVs_PADTMP);
 
-                   f();
-                   my ($x,$y) = @a; # or $a[0] or @a{@b} etc
+    kid = OpSIBLING(cLISTOPo->op_first);
+    for (kid = OpSIBLING(kid); kid; kid = OpSIBLING(kid))
+        op_lvalue(kid, OP_GREPSTART);
 
-                   sub f {
-                       ($x, $y) = (1,2);
-                       use feature 'refaliasing';
-                       \($a[0], $a[1]) = \($y,$x);
-                   }
+    return (OP*)gwop;
+}
 
-                 It doesn't matter if the array/hash is lexical or package.
+OP *
+Perl_ck_index(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_INDEX;
 
-               * it contains a function call that happens to be an lvalue
-                 sub which returns one or more of the above, e.g.
+    if (o->op_flags & OPf_KIDS) {
+        OP *kid = OpSIBLING(cLISTOPo->op_first);	/* get past pushmark */
+        if (kid)
+            kid = OpSIBLING(kid);			/* get past "big" */
+        if (kid && kid->op_type == OP_CONST) {
+            const bool save_taint = TAINT_get;
+            SV *sv = kSVOP->op_sv;
+            if (   (!SvPOK(sv) || SvNIOKp(sv) || isREGEXP(sv))
+                && SvOK(sv) && !SvROK(sv))
+            {
+                sv = newSV_type(SVt_NULL);
+                sv_copypv(sv, kSVOP->op_sv);
+                SvREFCNT_dec_NN(kSVOP->op_sv);
+                kSVOP->op_sv = sv;
+            }
+            if (SvOK(sv)) fbm_compile(sv, 0);
+            TAINT_set(save_taint);
+#ifdef NO_TAINT_SUPPORT
+            PERL_UNUSED_VAR(save_taint);
+#endif
+        }
+    }
+    return ck_fun(o);
+}
 
-                   f();
-                   my ($x,$y) = f();
+OP *
+Perl_ck_lfun(pTHX_ OP *o)
+{
+    const OPCODE type = o->op_type;
 
-                   sub f : lvalue {
-                       ($x, $y) = (1,2);
-                       *x1 = \$x;
-                       $y, $x1;
-                   }
+    PERL_ARGS_ASSERT_CK_LFUN;
 
-                   (so a sub call on the RHS should be treated the same
-                   as having a package var on the RHS).
+    return modkids(ck_fun(o), type);
+}
 
-               * any other "dangerous" thing, such an op or built-in that
-                 returns one of the above, e.g. pp_preinc
+OP *
+Perl_ck_defined(pTHX_ OP *o)		/* 19990527 MJD */
+{
+    PERL_ARGS_ASSERT_CK_DEFINED;
 
+    if ((o->op_flags & OPf_KIDS)) {
+        switch (cUNOPo->op_first->op_type) {
+        case OP_RV2AV:
+        case OP_PADAV:
+            Perl_croak(aTHX_ "Can't use 'defined(@array)'"
+                             " (Maybe you should just omit the defined()?)");
+            NOT_REACHED; /* NOTREACHED */
+            break;
+        case OP_RV2HV:
+        case OP_PADHV:
+            Perl_croak(aTHX_ "Can't use 'defined(%%hash)'"
+                             " (Maybe you should just omit the defined()?)");
+            NOT_REACHED; /* NOTREACHED */
+            break;
+        default:
+            /* no warning */
+            break;
+        }
+    }
+    return ck_rfun(o);
+}
 
-           If RHS is not safe, what we can do however is at compile time flag
-           that the LHS are all my declarations, and at run time check whether
-           all the LHS have RC == 1, and if so skip the full scan.
+OP *
+Perl_ck_readline(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_READLINE;
 
-       Now consider array and hash vars on LHS: e.g. my (...,@a) = ...;
+    if (o->op_flags & OPf_KIDS) {
+         OP *kid = cLISTOPo->op_first;
+         if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED
+             && kid->op_type == OP_CONST && (kid->op_private & OPpCONST_BARE)) {
+             no_bareword_filehandle(SvPVX(kSVOP_sv));
+         }
+         if (kid->op_type == OP_RV2GV) kid->op_private |= OPpALLOW_FAKE;
+         scalar(kid);
+    }
+    else {
+        OP * const newop
+            = newUNOP(OP_READLINE, 0, newGVOP(OP_GV, 0, PL_argvgv));
+        op_free(o);
+        return newop;
+    }
+    return o;
+}
 
-           Here the issue is whether there can be elements of @a on the RHS
-           which will get prematurely freed when @a is cleared prior to
-           assignment. This is only a problem if the aliasing mechanism
-           is one which doesn't increase the refcount - only if RC == 1
-           will the RHS element be prematurely freed.
+OP *
+Perl_ck_rfun(pTHX_ OP *o)
+{
+    const OPCODE type = o->op_type;
 
-           Because the array/hash is being INTROed, it or its elements
-           can't directly appear on the RHS:
+    PERL_ARGS_ASSERT_CK_RFUN;
 
-               my (@a) = ($a[0], @a, etc) # NOT POSSIBLE
+    return refkids(ck_fun(o), type);
+}
 
-           but can indirectly, e.g.:
+OP *
+Perl_ck_listiob(pTHX_ OP *o)
+{
+    OP *kid;
 
-               my $r = f();
-               my (@a) = @$r;
-               sub f { @a = 1..3; \@a }
+    PERL_ARGS_ASSERT_CK_LISTIOB;
 
-           So if the RHS isn't safe as defined by (A), we must always
-           mortalise and bump the ref count of any remaining RHS elements
-           when assigning to a non-empty LHS aggregate.
+    kid = cLISTOPo->op_first;
+    if (!kid) {
+        o = op_force_list(o);
+        kid = cLISTOPo->op_first;
+    }
+    if (kid->op_type == OP_PUSHMARK)
+        kid = OpSIBLING(kid);
+    if (kid && o->op_flags & OPf_STACKED)
+        kid = OpSIBLING(kid);
+    else if (kid && !OpHAS_SIBLING(kid)) {		/* print HANDLE; */
+        if (kid->op_type == OP_CONST && kid->op_private & OPpCONST_BARE
+         && !kid->op_folded) {
+            if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED) {
+                no_bareword_filehandle(SvPVX(kSVOP_sv));
+            }
+            o->op_flags |= OPf_STACKED;	/* make it a filehandle */
+            scalar(kid);
+            /* replace old const op with new OP_RV2GV parent */
+            kid = S_op_sibling_newUNOP(aTHX_ o, cLISTOPo->op_first,
+                                        OP_RV2GV, OPf_REF);
+            kid = OpSIBLING(kid);
+        }
+    }
 
-           Lexical scalars on the RHS aren't safe if they've been involved in
-           aliasing, e.g.
+    if (!kid)
+        op_append_elem(o->op_type, o, newDEFSVOP());
 
-               use feature 'refaliasing';
+    if (o->op_type == OP_PRTF) return modkids(listkids(o), OP_PRTF);
+    return listkids(o);
+}
 
-               f();
-               \(my $lex) = \$pkg;
-               my @a = ($lex,3); # equivalent to ($a[0],3)
+OP *
+Perl_ck_smartmatch(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_SMARTMATCH;
+    if (0 == (o->op_flags & OPf_SPECIAL)) {
+        OP *first  = cBINOPo->op_first;
+        OP *second = OpSIBLING(first);
 
-               sub f {
-                   @a = (1,2);
-                   \$pkg = \$a[0];
-               }
+        /* Implicitly take a reference to an array or hash */
 
-           Similarly with lexical arrays and hashes on the RHS:
+        /* remove the original two siblings, then add back the
+         * (possibly different) first and second sibs.
+         */
+        op_sibling_splice(o, NULL, 1, NULL);
+        op_sibling_splice(o, NULL, 1, NULL);
+        first  = ref_array_or_hash(first);
+        second = ref_array_or_hash(second);
+        op_sibling_splice(o, NULL, 0, second);
+        op_sibling_splice(o, NULL, 0, first);
 
-               f();
-               my @b;
-               my @a = (@b);
+        /* Implicitly take a reference to a regular expression */
+        if (first->op_type == OP_MATCH && !(first->op_flags & OPf_STACKED)) {
+            OpTYPE_set(first, OP_QR);
+        }
+        if (second->op_type == OP_MATCH && !(second->op_flags & OPf_STACKED)) {
+            OpTYPE_set(second, OP_QR);
+        }
+    }
 
-               sub f {
-                   @a = (1,2);
-                   \$b[0] = \$a[1];
-                   \$b[1] = \$a[0];
-               }
+    return o;
+}
 
 
+static OP *
+S_maybe_targlex(pTHX_ OP *o)
+{
+    OP * const kid = cLISTOPo->op_first;
+    /* has a disposable target? */
+    if ((PL_opargs[kid->op_type] & OA_TARGLEX)
+        && !(kid->op_flags & OPf_STACKED)
+        /* Cannot steal the second time! */
+        && !(kid->op_private & OPpTARGET_MY)
+        )
+    {
+        OP * const kkid = OpSIBLING(kid);
 
-   C: As (B), but in addition the LHS may contain non-intro lexicals, e.g.
-       my $a; ($a, my $b) = (....);
+        /* Can just relocate the target. */
+        if (kkid && kkid->op_type == OP_PADSV
+            && (!(kkid->op_private & OPpLVAL_INTRO)
+               || kkid->op_private & OPpPAD_STATE))
+        {
+            kid->op_targ = kkid->op_targ;
+            kkid->op_targ = 0;
+            /* Now we do not need PADSV and SASSIGN.
+             * Detach kid and free the rest. */
+            op_sibling_splice(o, NULL, 1, NULL);
+            op_free(o);
+            kid->op_private |= OPpTARGET_MY;	/* Used for context settings */
+            return kid;
+        }
+    }
+    return o;
+}
 
-       The difference between (B) and (C) is that it is now physically
-       possible for the LHS vars to appear on the RHS too, where they
-       are not reference counted; but in this case, the compile-time
-       PL_generation sweep will detect such common vars.
+OP *
+Perl_ck_sassign(pTHX_ OP *o)
+{
+    OP * const kid = cBINOPo->op_first;
 
-       So the rules for (C) differ from (B) in that if common vars are
-       detected, the runtime "test RC==1" optimisation can no longer be used,
-       and a full mark and sweep is required
+    PERL_ARGS_ASSERT_CK_SASSIGN;
 
-   D: As (C), but in addition the LHS may contain package vars.
+    if (OpHAS_SIBLING(kid)) {
+        OP *kkid = OpSIBLING(kid);
+        /* For state variable assignment with attributes, kkid is a list op
+           whose op_last is a padsv. */
+        if ((kkid->op_type == OP_PADSV ||
+             (OP_TYPE_IS_OR_WAS(kkid, OP_LIST) &&
+              (kkid = cLISTOPx(kkid)->op_last)->op_type == OP_PADSV
+             )
+            )
+                && (kkid->op_private & (OPpLVAL_INTRO|OPpPAD_STATE))
+                    == (OPpLVAL_INTRO|OPpPAD_STATE)) {
+            return S_newONCEOP(aTHX_ o, kkid);
+        }
+    }
+    return S_maybe_targlex(aTHX_ o);
+}
 
-       Since package vars can be aliased without a corresponding refcount
-       increase, all bets are off. It's only safe if (A). E.g.
 
-           my ($x, $y) = (1,2);
+OP *
+Perl_ck_match(pTHX_ OP *o)
+{
+    PERL_UNUSED_CONTEXT;
+    PERL_ARGS_ASSERT_CK_MATCH;
 
-           for $x_alias ($x) {
-               ($x_alias, $y) = (3, $x); # whoops
-           }
+    return o;
+}
 
-       Ditto for LHS aggregate package vars.
+OP *
+Perl_ck_method(pTHX_ OP *o)
+{
+    SV *sv, *methsv, *rclass;
+    const char* method;
+    char* compatptr;
+    int utf8;
+    STRLEN len, nsplit = 0, i;
+    OP* new_op;
+    OP * const kid = cUNOPo->op_first;
 
-   E: Any other dangerous ops on LHS, e.g.
-           (f(), $a[0], @$r) = (...);
+    PERL_ARGS_ASSERT_CK_METHOD;
+    if (kid->op_type != OP_CONST) return o;
 
-       this is similar to (E) in that all bets are off. In addition, it's
-       impossible to determine at compile time whether the LHS
-       contains a scalar or an aggregate, e.g.
+    sv = kSVOP->op_sv;
 
-           sub f : lvalue { @a }
-           (f()) = 1..3;
+    /* replace ' with :: */
+    while ((compatptr = (char *) memchr(SvPVX(sv), '\'',
+                                        SvEND(sv) - SvPVX(sv) )))
+    {
+        *compatptr = ':';
+        sv_insert(sv, compatptr - SvPVX_const(sv), 0, ":", 1);
+    }
 
-* ---------------------------------------------------------
-*/
+    method = SvPVX_const(sv);
+    len = SvCUR(sv);
+    utf8 = SvUTF8(sv) ? -1 : 1;
 
+    for (i = len - 1; i > 0; --i) if (method[i] == ':') {
+        nsplit = i+1;
+        break;
+    }
 
-/* A set of bit flags returned by S_aassign_scan(). Each flag indicates
- * that at least one of the things flagged was seen.
- */
+    methsv = newSVpvn_share(method+nsplit, utf8*(len - nsplit), 0);
 
-enum {
-    AAS_MY_SCALAR       = 0x001, /* my $scalar */
-    AAS_MY_AGG          = 0x002, /* aggregate: my @array or my %hash */
-    AAS_LEX_SCALAR      = 0x004, /* $lexical */
-    AAS_LEX_AGG         = 0x008, /* @lexical or %lexical aggregate */
-    AAS_LEX_SCALAR_COMM = 0x010, /* $lexical seen on both sides */
-    AAS_PKG_SCALAR      = 0x020, /* $scalar (where $scalar is pkg var) */
-    AAS_PKG_AGG         = 0x040, /* package @array or %hash aggregate */
-    AAS_DANGEROUS       = 0x080, /* an op (other than the above)
-                                         that's flagged OA_DANGEROUS */
-    AAS_SAFE_SCALAR     = 0x100, /* produces at least one scalar SV that's
-                                        not in any of the categories above */
-    AAS_DEFAV           = 0x200  /* contains just a single '@_' on RHS */
-};
+    if (!nsplit) { /* $proto->method() */
+        op_free(o);
+        return newMETHOP_named(OP_METHOD_NAMED, 0, methsv);
+    }
 
+    if (memEQs(method, nsplit, "SUPER::")) { /* $proto->SUPER::method() */
+        op_free(o);
+        return newMETHOP_named(OP_METHOD_SUPER, 0, methsv);
+    }
 
+    /* $proto->MyClass::method() and $proto->MyClass::SUPER::method() */
+    if (nsplit >= 9 && strBEGINs(method+nsplit-9, "::SUPER::")) {
+        rclass = newSVpvn_share(method, utf8*(nsplit-9), 0);
+        new_op = newMETHOP_named(OP_METHOD_REDIR_SUPER, 0, methsv);
+    } else {
+        rclass = newSVpvn_share(method, utf8*(nsplit-2), 0);
+        new_op = newMETHOP_named(OP_METHOD_REDIR, 0, methsv);
+    }
+#ifdef USE_ITHREADS
+    op_relocate_sv(&rclass, &cMETHOPx(new_op)->op_rclass_targ);
+#else
+    cMETHOPx(new_op)->op_rclass_sv = rclass;
+#endif
+    op_free(o);
+    return new_op;
+}
 
-/* helper function for S_aassign_scan().
- * check a PAD-related op for commonality and/or set its generation number.
- * Returns a boolean indicating whether its shared */
+OP *
+Perl_ck_null(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_NULL;
+    PERL_UNUSED_CONTEXT;
+    return o;
+}
 
-static bool
-S_aassign_padcheck(pTHX_ OP* o, bool rhs)
+OP *
+Perl_ck_open(pTHX_ OP *o)
 {
-    if (PAD_COMPNAME_GEN(o->op_targ) == PERL_INT_MAX)
-        /* lexical used in aliasing */
-        return TRUE;
+    PERL_ARGS_ASSERT_CK_OPEN;
 
-    if (rhs)
-        return cBOOL(PAD_COMPNAME_GEN(o->op_targ) == (STRLEN)PL_generation);
-    else
-        PAD_COMPNAME_GEN_set(o->op_targ, PL_generation);
+    S_io_hints(aTHX_ o);
+    {
+         /* In case of three-arg dup open remove strictness
+          * from the last arg if it is a bareword. */
+         OP * const first = cLISTOPx(o)->op_first; /* The pushmark. */
+         OP * const last  = cLISTOPx(o)->op_last;  /* The bareword. */
+         OP *oa;
+         const char *mode;
 
-    return FALSE;
+         if ((last->op_type == OP_CONST) &&		/* The bareword. */
+             (last->op_private & OPpCONST_BARE) &&
+             (last->op_private & OPpCONST_STRICT) &&
+             (oa = OpSIBLING(first)) &&		/* The fh. */
+             (oa = OpSIBLING(oa)) &&			/* The mode. */
+             (oa->op_type == OP_CONST) &&
+             SvPOK(cSVOPx(oa)->op_sv) &&
+             (mode = SvPVX_const(cSVOPx(oa)->op_sv)) &&
+             mode[0] == '>' && mode[1] == '&' &&	/* A dup open. */
+             (last == OpSIBLING(oa)))			/* The bareword. */
+              last->op_private &= ~OPpCONST_STRICT;
+    }
+    return ck_fun(o);
 }
 
+OP *
+Perl_ck_prototype(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_PROTOTYPE;
+    if (!(o->op_flags & OPf_KIDS)) {
+        op_free(o);
+        return newUNOP(OP_PROTOTYPE, 0, newDEFSVOP());
+    }
+    return o;
+}
 
-/*
-  Helper function for OPpASSIGN_COMMON* detection in rpeep().
-  It scans the left or right hand subtree of the aassign op, and returns a
-  set of flags indicating what sorts of things it found there.
-  'rhs' indicates whether we're scanning the LHS or RHS. If the former, we
-  set PL_generation on lexical vars; if the latter, we see if
-  PL_generation matches.
-  'scalars_p' is a pointer to a counter of the number of scalar SVs seen.
-  This fn will increment it by the number seen. It's not intended to
-  be an accurate count (especially as many ops can push a variable
-  number of SVs onto the stack); rather it's used as to test whether there
-  can be at most 1 SV pushed; so it's only meanings are "0, 1, many".
-*/
-
-static int
-S_aassign_scan(pTHX_ OP* o, bool rhs, int *scalars_p)
+OP *
+Perl_ck_refassign(pTHX_ OP *o)
 {
-    OP *top_op           = o;
-    OP *effective_top_op = o;
-    int all_flags = 0;
+    OP * const right = cLISTOPo->op_first;
+    OP * const left = OpSIBLING(right);
+    OP *varop = cUNOPx(cUNOPx(left)->op_first)->op_first;
+    bool stacked = 0;
 
-    while (1) {
-    bool top = o == effective_top_op;
-    int flags = 0;
-    OP* next_kid = NULL;
-
-    /* first, look for a solitary @_ on the RHS */
-    if (   rhs
-        && top
-        && (o->op_flags & OPf_KIDS)
-        && OP_TYPE_IS_OR_WAS(o, OP_LIST)
-    ) {
-        OP *kid = cUNOPo->op_first;
-        if (   (   kid->op_type == OP_PUSHMARK
-                || kid->op_type == OP_PADRANGE) /* ex-pushmark */
-            && ((kid = OpSIBLING(kid)))
-            && !OpHAS_SIBLING(kid)
-            && kid->op_type == OP_RV2AV
-            && !(kid->op_flags & OPf_REF)
-            && !(kid->op_private & (OPpLVAL_INTRO|OPpMAYBE_LVSUB))
-            && ((kid->op_flags & OPf_WANT) == OPf_WANT_LIST)
-            && ((kid = cUNOPx(kid)->op_first))
-            && kid->op_type == OP_GV
-            && cGVOPx_gv(kid) == PL_defgv
-        )
-            flags = AAS_DEFAV;
-    }
+    PERL_ARGS_ASSERT_CK_REFASSIGN;
+    assert (left);
+    assert (left->op_type == OP_SREFGEN);
 
-    switch (o->op_type) {
-    case OP_GVSV:
-        (*scalars_p)++;
-        all_flags |= AAS_PKG_SCALAR;
-        goto do_next;
+    o->op_private = 0;
+    /* we use OPpPAD_STATE in refassign to mean either of those things,
+     * and the code assumes the two flags occupy the same bit position
+     * in the various ops below */
+    assert(OPpPAD_STATE == OPpOUR_INTRO);
 
+    switch (varop->op_type) {
     case OP_PADAV:
+        o->op_private |= OPpLVREF_AV;
+        goto settarg;
     case OP_PADHV:
-        (*scalars_p) += 2;
-        /* if !top, could be e.g. @a[0,1] */
-        all_flags |=  (top && (o->op_flags & OPf_REF))
-                        ? ((o->op_private & OPpLVAL_INTRO)
-                            ? AAS_MY_AGG : AAS_LEX_AGG)
-                        : AAS_DANGEROUS;
-        goto do_next;
-
+        o->op_private |= OPpLVREF_HV;
+        /* FALLTHROUGH */
     case OP_PADSV:
-        {
-            int comm = S_aassign_padcheck(aTHX_ o, rhs)
-                        ?  AAS_LEX_SCALAR_COMM : 0;
-            (*scalars_p)++;
-            all_flags |= (o->op_private & OPpLVAL_INTRO)
-                ? (AAS_MY_SCALAR|comm) : (AAS_LEX_SCALAR|comm);
-            goto do_next;
-
-        }
+      settarg:
+        o->op_private |= (varop->op_private & (OPpLVAL_INTRO|OPpPAD_STATE));
+        o->op_targ = varop->op_targ;
+        varop->op_targ = 0;
+        PAD_COMPNAME_GEN_set(o->op_targ, PERL_INT_MAX);
+        break;
 
     case OP_RV2AV:
+        o->op_private |= OPpLVREF_AV;
+        goto checkgv;
+        NOT_REACHED; /* NOTREACHED */
     case OP_RV2HV:
-        (*scalars_p) += 2;
-        if (cUNOPx(o)->op_first->op_type != OP_GV)
-            all_flags |= AAS_DANGEROUS; /* @{expr}, %{expr} */
-        /* @pkg, %pkg */
-        /* if !top, could be e.g. @a[0,1] */
-        else if (top && (o->op_flags & OPf_REF))
-            all_flags |= AAS_PKG_AGG;
-        else
-            all_flags |= AAS_DANGEROUS;
-        goto do_next;
-
+        o->op_private |= OPpLVREF_HV;
+        /* FALLTHROUGH */
     case OP_RV2SV:
-        (*scalars_p)++;
-        if (cUNOPx(o)->op_first->op_type != OP_GV) {
-            (*scalars_p) += 2;
-            all_flags |= AAS_DANGEROUS; /* ${expr} */
+      checkgv:
+        o->op_private |= (varop->op_private & (OPpLVAL_INTRO|OPpOUR_INTRO));
+        if (cUNOPx(varop)->op_first->op_type != OP_GV) goto bad;
+      detach_and_stack:
+        /* Point varop to its GV kid, detached.  */
+        varop = op_sibling_splice(varop, NULL, -1, NULL);
+        stacked = TRUE;
+        break;
+    case OP_RV2CV: {
+        OP * const kidparent =
+            OpSIBLING(cUNOPx(cUNOPx(varop)->op_first)->op_first);
+        OP * const kid = cUNOPx(kidparent)->op_first;
+        o->op_private |= OPpLVREF_CV;
+        if (kid->op_type == OP_GV) {
+            SV *sv = (SV*)cGVOPx_gv(kid);
+            varop = kidparent;
+            if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVCV) {
+                /* a CVREF here confuses pp_refassign, so make sure
+                   it gets a GV */
+                CV *const cv = (CV*)SvRV(sv);
+                SV *name_sv = newSVhek_mortal(CvNAME_HEK(cv));
+                (void)gv_init_sv((GV*)sv, CvSTASH(cv), name_sv, 0);
+                assert(SvTYPE(sv) == SVt_PVGV);
+            }
+            goto detach_and_stack;
         }
-        else
-            all_flags |= AAS_PKG_SCALAR; /* $pkg */
-        goto do_next;
+        if (kid->op_type != OP_PADCV)	goto bad;
+        o->op_targ = kid->op_targ;
+        kid->op_targ = 0;
+        break;
+    }
+    case OP_AELEM:
+    case OP_HELEM:
+        o->op_private |= (varop->op_private & OPpLVAL_INTRO);
+        o->op_private |= OPpLVREF_ELEM;
+        op_null(varop);
+        stacked = TRUE;
+        /* Detach varop.  */
+        op_sibling_splice(cUNOPx(left)->op_first, NULL, -1, NULL);
+        break;
+    default:
+      bad:
+        /* diag_listed_as: Can't modify reference to %s in %s assignment */
+        yyerror(Perl_form(aTHX_ "Can't modify reference to %s in scalar "
+                                "assignment",
+                                 OP_DESC(varop)));
+        return o;
+    }
+    if (!FEATURE_REFALIASING_IS_ENABLED)
+        Perl_croak(aTHX_
+                  "Experimental aliasing via reference not enabled");
+    Perl_ck_warner_d(aTHX_
+                     packWARN(WARN_EXPERIMENTAL__REFALIASING),
+                    "Aliasing via reference is experimental");
+    if (stacked) {
+        o->op_flags |= OPf_STACKED;
+        op_sibling_splice(o, right, 1, varop);
+    }
+    else {
+        o->op_flags &=~ OPf_STACKED;
+        op_sibling_splice(o, right, 1, NULL);
+    }
+    op_free(left);
+    return o;
+}
 
-    case OP_SPLIT:
-        if (o->op_private & OPpSPLIT_ASSIGN) {
-            /* the assign in @a = split() has been optimised away
-             * and the @a attached directly to the split op
-             * Treat the array as appearing on the RHS, i.e.
-             *    ... = (@a = split)
-             * is treated like
-             *    ... = @a;
-             */
+OP *
+Perl_ck_repeat(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_REPEAT;
+
+    if (cBINOPo->op_first->op_flags & OPf_PARENS) {
+        OP* kids;
+        o->op_private |= OPpREPEAT_DOLIST;
+        kids = op_sibling_splice(o, NULL, 1, NULL); /* detach first kid */
+        kids = op_force_list(kids); /* promote it to a list */
+        op_sibling_splice(o, NULL, 0, kids); /* and add back */
+    }
+    else
+        scalar(o);
+    return o;
+}
 
-            if (o->op_flags & OPf_STACKED) {
-                /* @{expr} = split() - the array expression is tacked
-                 * on as an extra child to split - process kid */
-                next_kid = cLISTOPo->op_last;
-                goto do_next;
-            }
+OP *
+Perl_ck_require(pTHX_ OP *o)
+{
+    GV* gv;
 
-            /* ... else array is directly attached to split op */
-            (*scalars_p) += 2;
-            all_flags |= (PL_op->op_private & OPpSPLIT_LEX)
-                            ? ((o->op_private & OPpLVAL_INTRO)
-                                ? AAS_MY_AGG : AAS_LEX_AGG)
-                            : AAS_PKG_AGG;
-            goto do_next;
-        }
-        (*scalars_p)++;
-        /* other args of split can't be returned */
-        all_flags |= AAS_SAFE_SCALAR;
-        goto do_next;
+    PERL_ARGS_ASSERT_CK_REQUIRE;
 
-    case OP_UNDEF:
-        /* undef on LHS following a var is significant, e.g.
-         *    my $x = 1;
-         *    @a = (($x, undef) = (2 => $x));
-         *    # @a shoul be (2,1) not (2,2)
-         *
-         * undef on RHS counts as a scalar:
-         *   ($x, $y)    = (undef, $x); # 2 scalars on RHS: unsafe
-         */
-        if ((!rhs && *scalars_p) || rhs)
-            (*scalars_p)++;
-        flags = AAS_SAFE_SCALAR;
-        break;
+    if (o->op_flags & OPf_KIDS) {	/* Shall we supply missing .pm? */
+        SVOP * const kid = cSVOPx(cUNOPo->op_first);
+        U32 hash;
+        char *s;
+        STRLEN len;
+        if (kid->op_type == OP_CONST) {
+          SV * const sv = kid->op_sv;
+          U32 const was_readonly = SvREADONLY(sv);
+          if (kid->op_private & OPpCONST_BARE) {
+            const char *end;
+            HEK *hek;
 
-    case OP_PUSHMARK:
-    case OP_STUB:
-        /* these are all no-ops; they don't push a potentially common SV
-         * onto the stack, so they are neither AAS_DANGEROUS nor
-         * AAS_SAFE_SCALAR */
-        goto do_next;
+            if (was_readonly) {
+                SvREADONLY_off(sv);
+            }
 
-    case OP_PADRANGE: /* Ignore padrange; checking its siblings is enough */
-        break;
+            if (SvIsCOW(sv)) sv_force_normal_flags(sv, 0);
 
-    case OP_NULL:
-    case OP_LIST:
-        /* these do nothing, but may have children */
-        break;
+            s = SvPVX(sv);
+            len = SvCUR(sv);
+            end = s + len;
+            /* treat ::foo::bar as foo::bar */
+            if (len >= 2 && s[0] == ':' && s[1] == ':')
+                DIE(aTHX_ "Bareword in require must not start with a double-colon: \"%s\"\n", s);
+            if (s == end)
+                DIE(aTHX_ "Bareword in require maps to empty filename");
 
-    default:
-        if (PL_opargs[o->op_type] & OA_DANGEROUS) {
-            (*scalars_p) += 2;
-            flags = AAS_DANGEROUS;
-            break;
+            for (; s < end; s++) {
+                if (*s == ':' && s[1] == ':') {
+                    *s = '/';
+                    Move(s+2, s+1, end - s - 1, char);
+                    --end;
+                }
+            }
+            SvEND_set(sv, end);
+            sv_catpvs(sv, ".pm");
+            PERL_HASH(hash, SvPVX(sv), SvCUR(sv));
+            hek = share_hek(SvPVX(sv),
+                            (SSize_t)SvCUR(sv) * (SvUTF8(sv) ? -1 : 1),
+                            hash);
+            sv_sethek(sv, hek);
+            unshare_hek(hek);
+            SvFLAGS(sv) |= was_readonly;
+          }
+          else if (SvPOK(sv) && !SvNIOK(sv) && !SvGMAGICAL(sv)
+                && !SvVOK(sv)) {
+            s = SvPV(sv, len);
+            if (SvREFCNT(sv) > 1) {
+                kid->op_sv = newSVpvn_share(
+                    s, SvUTF8(sv) ? -(SSize_t)len : (SSize_t)len, 0);
+                SvREFCNT_dec_NN(sv);
+            }
+            else {
+                HEK *hek;
+                if (was_readonly) SvREADONLY_off(sv);
+                PERL_HASH(hash, s, len);
+                hek = share_hek(s,
+                                SvUTF8(sv) ? -(SSize_t)len : (SSize_t)len,
+                                hash);
+                sv_sethek(sv, hek);
+                unshare_hek(hek);
+                SvFLAGS(sv) |= was_readonly;
+            }
+          }
         }
+    }
 
-        if (   (PL_opargs[o->op_type] & OA_TARGLEX)
-            && (o->op_private & OPpTARGET_MY))
-        {
-            (*scalars_p)++;
-            all_flags |= S_aassign_padcheck(aTHX_ o, rhs)
-                            ? AAS_LEX_SCALAR_COMM : AAS_LEX_SCALAR;
-            goto do_next;
+    if (!(o->op_flags & OPf_SPECIAL) /* Wasn't written as CORE::require */
+        /* handle override, if any */
+     && (gv = gv_override("require", 7))) {
+        OP *kid, *newop;
+        if (o->op_flags & OPf_KIDS) {
+            kid = cUNOPo->op_first;
+            op_sibling_splice(o, NULL, -1, NULL);
         }
-
-        /* if its an unrecognised, non-dangerous op, assume that it
-         * is the cause of at least one safe scalar */
-        (*scalars_p)++;
-        flags = AAS_SAFE_SCALAR;
-        break;
+        else {
+            kid = newDEFSVOP();
+        }
+        op_free(o);
+        newop = S_new_entersubop(aTHX_ gv, kid);
+        return newop;
     }
 
-    all_flags |= flags;
-
-    /* by default, process all kids next
-     * XXX this assumes that all other ops are "transparent" - i.e. that
-     * they can return some of their children. While this true for e.g.
-     * sort and grep, it's not true for e.g. map. We really need a
-     * 'transparent' flag added to regen/opcodes
-     */
-    if (o->op_flags & OPf_KIDS) {
-        next_kid = cUNOPo->op_first;
-        /* these ops do nothing but may have children; but their
-         * children should also be treated as top-level */
-        if (   o == effective_top_op
-            && (o->op_type == OP_NULL || o->op_type == OP_LIST)
-        )
-            effective_top_op = next_kid;
-    }
+    return ck_fun(o);
+}
 
+OP *
+Perl_ck_return(pTHX_ OP *o)
+{
+    OP *kid;
 
-    /* If next_kid is set, someone in the code above wanted us to process
-     * that kid and all its remaining siblings.  Otherwise, work our way
-     * back up the tree */
-  do_next:
-    while (!next_kid) {
-        if (o == top_op)
-            return all_flags; /* at top; no parents/siblings to try */
-        if (OpHAS_SIBLING(o)) {
-            next_kid = o->op_sibparent;
-            if (o == effective_top_op)
-                effective_top_op = next_kid;
-        }
-        else
-            if (o == effective_top_op)
-                effective_top_op = o->op_sibparent;
-            o = o->op_sibparent; /* try parent's next sibling */
+    PERL_ARGS_ASSERT_CK_RETURN;
 
+    kid = OpSIBLING(cLISTOPo->op_first);
+    if (PL_compcv && CvLVALUE(PL_compcv)) {
+        for (; kid; kid = OpSIBLING(kid))
+            op_lvalue(kid, OP_LEAVESUBLV);
     }
-    o = next_kid;
-    } /* while */
 
+    return o;
 }
 
+OP *
+Perl_ck_select(pTHX_ OP *o)
+{
+    OP* kid;
 
-/* Check for in place reverse and sort assignments like "@a = reverse @a"
-   and modify the optree to make them work inplace */
+    PERL_ARGS_ASSERT_CK_SELECT;
 
-STATIC void
-S_inplace_aassign(pTHX_ OP *o) {
+    if (o->op_flags & OPf_KIDS) {
+        kid = OpSIBLING(cLISTOPo->op_first);     /* get past pushmark */
+        if (kid && OpHAS_SIBLING(kid)) {
+            OpTYPE_set(o, OP_SSELECT);
+            o = ck_fun(o);
+            return fold_constants(op_integerize(op_std_init(o)));
+        }
+    }
+    o = ck_fun(o);
+    kid = OpSIBLING(cLISTOPo->op_first);    /* get past pushmark */
+    if (kid && kid->op_type == OP_RV2GV)
+        kid->op_private &= ~HINT_STRICT_REFS;
+    return o;
+}
 
-    OP *modop, *modop_pushmark;
-    OP *oright;
-    OP *oleft, *oleft_pushmark;
+OP *
+Perl_ck_shift(pTHX_ OP *o)
+{
+    const I32 type = o->op_type;
 
-    PERL_ARGS_ASSERT_INPLACE_AASSIGN;
+    PERL_ARGS_ASSERT_CK_SHIFT;
 
-    assert((o->op_flags & OPf_WANT) == OPf_WANT_VOID);
+    if (!(o->op_flags & OPf_KIDS)) {
+        OP *argop;
 
-    assert(cUNOPo->op_first->op_type == OP_NULL);
-    modop_pushmark = cUNOPx(cUNOPo->op_first)->op_first;
-    assert(modop_pushmark->op_type == OP_PUSHMARK);
-    modop = OpSIBLING(modop_pushmark);
+        if (!CvUNIQUE(PL_compcv)) {
+            o->op_flags |= OPf_SPECIAL;
+            return o;
+        }
 
-    if (modop->op_type != OP_SORT && modop->op_type != OP_REVERSE)
-        return;
+        argop = newUNOP(OP_RV2AV, 0, scalar(newGVOP(OP_GV, 0, PL_argvgv)));
+        op_free(o);
+        return newUNOP(type, 0, scalar(argop));
+    }
+    return scalar(ck_fun(o));
+}
 
-    /* no other operation except sort/reverse */
-    if (OpHAS_SIBLING(modop))
-        return;
+OP *
+Perl_ck_sort(pTHX_ OP *o)
+{
+    OP *firstkid;
+    OP *kid;
+    U8 stacked;
 
-    assert(cUNOPx(modop)->op_first->op_type == OP_PUSHMARK);
-    if (!(oright = OpSIBLING(cUNOPx(modop)->op_first))) return;
+    PERL_ARGS_ASSERT_CK_SORT;
 
-    if (modop->op_flags & OPf_STACKED) {
-        /* skip sort subroutine/block */
-        assert(oright->op_type == OP_NULL);
-        oright = OpSIBLING(oright);
-    }
+    if (o->op_flags & OPf_STACKED)
+        simplify_sort(o);
+    firstkid = OpSIBLING(cLISTOPo->op_first);		/* get past pushmark */
 
-    assert(OpSIBLING(cUNOPo->op_first)->op_type == OP_NULL);
-    oleft_pushmark = cUNOPx(OpSIBLING(cUNOPo->op_first))->op_first;
-    assert(oleft_pushmark->op_type == OP_PUSHMARK);
-    oleft = OpSIBLING(oleft_pushmark);
+    if (!firstkid)
+        return too_few_arguments_pv(o,OP_DESC(o), 0);
 
-    /* Check the lhs is an array */
-    if (!oleft ||
-        (oleft->op_type != OP_RV2AV && oleft->op_type != OP_PADAV)
-        || OpHAS_SIBLING(oleft)
-        || (oleft->op_private & OPpLVAL_INTRO)
-    )
-        return;
+    if ((stacked = o->op_flags & OPf_STACKED)) {	/* may have been cleared */
+        OP *kid = cUNOPx(firstkid)->op_first;		/* get past null */
 
-    /* Only one thing on the rhs */
-    if (OpHAS_SIBLING(oright))
-        return;
+        /* if the first arg is a code block, process it and mark sort as
+         * OPf_SPECIAL */
+        if (kid->op_type == OP_SCOPE || kid->op_type == OP_LEAVE) {
+            LINKLIST(kid);
+            if (kid->op_type == OP_LEAVE)
+                    op_null(kid);			/* wipe out leave */
+            /* Prevent execution from escaping out of the sort block. */
+            kid->op_next = 0;
+
+            /* provide scalar context for comparison function/block */
+            kid = scalar(firstkid);
+            kid->op_next = kid;
+            o->op_flags |= OPf_SPECIAL;
+        }
+        else if (kid->op_type == OP_CONST
+              && kid->op_private & OPpCONST_BARE) {
+            char tmpbuf[256];
+            STRLEN len;
+            PADOFFSET off;
+            const char * const name = SvPV(kSVOP_sv, len);
+            *tmpbuf = '&';
+            assert (len < 256);
+            Copy(name, tmpbuf+1, len, char);
+            off = pad_findmy_pvn(tmpbuf, len+1, 0);
+            if (off != NOT_IN_PAD) {
+                if (PAD_COMPNAME_FLAGS_isOUR(off)) {
+                    SV * const fq =
+                        newSVhek(HvNAME_HEK(PAD_COMPNAME_OURSTASH(off)));
+                    sv_catpvs(fq, "::");
+                    sv_catsv(fq, kSVOP_sv);
+                    SvREFCNT_dec_NN(kSVOP_sv);
+                    kSVOP->op_sv = fq;
+                }
+                else {
+                    /* replace the const op with the pad op */
+                    op_sibling_splice(firstkid, NULL, 1,
+                        newPADxVOP(OP_PADCV, 0, off));
+                    op_free(kid);
+                }
+            }
+        }
 
-    /* check the array is the same on both sides */
-    if (oleft->op_type == OP_RV2AV) {
-        if (oright->op_type != OP_RV2AV
-            || !cUNOPx(oright)->op_first
-            || cUNOPx(oright)->op_first->op_type != OP_GV
-            || cUNOPx(oleft )->op_first->op_type != OP_GV
-            || cGVOPx_gv(cUNOPx(oleft)->op_first) !=
-               cGVOPx_gv(cUNOPx(oright)->op_first)
-        )
-            return;
+        firstkid = OpSIBLING(firstkid);
     }
-    else if (oright->op_type != OP_PADAV
-        || oright->op_targ != oleft->op_targ
-    )
-        return;
-
-    /* This actually is an inplace assignment */
 
-    modop->op_private |= OPpSORT_INPLACE;
-
-    /* transfer MODishness etc from LHS arg to RHS arg */
-    oright->op_flags = oleft->op_flags;
+    for (kid = firstkid; kid; kid = OpSIBLING(kid)) {
+        /* provide list context for arguments */
+        list(kid);
+        if (stacked)
+            op_lvalue(kid, OP_GREPSTART);
+    }
 
-    /* remove the aassign op and the lhs */
-    op_null(o);
-    op_null(oleft_pushmark);
-    if (oleft->op_type == OP_RV2AV && cUNOPx(oleft)->op_first)
-        op_null(cUNOPx(oleft)->op_first);
-    op_null(oleft);
+    return o;
 }
 
-
-
-/* S_maybe_multideref(): given an op_next chain of ops beginning at 'start'
- * that potentially represent a series of one or more aggregate derefs
- * (such as $a->[1]{$key}), examine the chain, and if appropriate, convert
- * the whole chain to a single OP_MULTIDEREF op (maybe with a few
- * additional ops left in too).
- *
- * The caller will have already verified that the first few ops in the
- * chain following 'start' indicate a multideref candidate, and will have
- * set 'orig_o' to the point further on in the chain where the first index
- * expression (if any) begins.  'orig_action' specifies what type of
- * beginning has already been determined by the ops between start..orig_o
- * (e.g.  $lex_ary[], $pkg_ary->{}, expr->[], etc).
- *
- * 'hints' contains any hints flags that need adding (currently just
- * OPpHINT_STRICT_REFS) as found in any rv2av/hv skipped by the caller.
+/* for sort { X } ..., where X is one of
+ *   $a <=> $b, $b <=> $a, $a cmp $b, $b cmp $a
+ * elide the second child of the sort (the one containing X),
+ * and set these flags as appropriate
+        OPpSORT_NUMERIC;
+        OPpSORT_INTEGER;
+        OPpSORT_DESCEND;
+ * Also, check and warn on lexical $a, $b.
  */
 
 STATIC void
-S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV orig_action, U8 hints)
+S_simplify_sort(pTHX_ OP *o)
 {
-    int pass;
-    UNOP_AUX_item *arg_buf = NULL;
-    bool reset_start_targ  = FALSE; /* start->op_targ needs zeroing */
-    int index_skip         = -1;    /* don't output index arg on this action */
-
-    /* similar to regex compiling, do two passes; the first pass
-     * determines whether the op chain is convertible and calculates the
-     * buffer size; the second pass populates the buffer and makes any
-     * changes necessary to ops (such as moving consts to the pad on
-     * threaded builds).
-     *
-     * NB: for things like Coverity, note that both passes take the same
-     * path through the logic tree (except for 'if (pass)' bits), since
-     * both passes are following the same op_next chain; and in
-     * particular, if it would return early on the second pass, it would
-     * already have returned early on the first pass.
-     */
-    for (pass = 0; pass < 2; pass++) {
-        OP *o                = orig_o;
-        UV action            = orig_action;
-        OP *first_elem_op    = NULL;  /* first seen aelem/helem */
-        OP *top_op           = NULL;  /* highest [ah]elem/exists/del/rv2[ah]v */
-        int action_count     = 0;     /* number of actions seen so far */
-        int action_ix        = 0;     /* action_count % (actions per IV) */
-        bool next_is_hash    = FALSE; /* is the next lookup to be a hash? */
-        bool is_last         = FALSE; /* no more derefs to follow */
-        bool maybe_aelemfast = FALSE; /* we can replace with aelemfast? */
-        UV action_word       = 0;     /* all actions so far */
-        UNOP_AUX_item *arg     = arg_buf;
-        UNOP_AUX_item *action_ptr = arg_buf;
-
-        arg++; /* reserve slot for first action word */
-
-        switch (action) {
-        case MDEREF_HV_gvsv_vivify_rv2hv_helem:
-        case MDEREF_HV_gvhv_helem:
-            next_is_hash = TRUE;
-            /* FALLTHROUGH */
-        case MDEREF_AV_gvsv_vivify_rv2av_aelem:
-        case MDEREF_AV_gvav_aelem:
-            if (pass) {
-#ifdef USE_ITHREADS
-                arg->pad_offset = cPADOPx(start)->op_padix;
-                /* stop it being swiped when nulled */
-                cPADOPx(start)->op_padix = 0;
-#else
-                arg->sv = cSVOPx(start)->op_sv;
-                cSVOPx(start)->op_sv = NULL;
-#endif
-            }
-            arg++;
-            break;
+    OP *kid = OpSIBLING(cLISTOPo->op_first);	/* get past pushmark */
+    OP *k;
+    int descending;
+    GV *gv;
+    const char *gvname;
+    bool have_scopeop;
 
-        case MDEREF_HV_padhv_helem:
-        case MDEREF_HV_padsv_vivify_rv2hv_helem:
-            next_is_hash = TRUE;
-            /* FALLTHROUGH */
-        case MDEREF_AV_padav_aelem:
-        case MDEREF_AV_padsv_vivify_rv2av_aelem:
-            if (pass) {
-                arg->pad_offset = start->op_targ;
-                /* we skip setting op_targ = 0 for now, since the intact
-                 * OP_PADXV is needed by S_check_hash_fields_and_hekify */
-                reset_start_targ = TRUE;
-            }
-            arg++;
-            break;
+    PERL_ARGS_ASSERT_SIMPLIFY_SORT;
 
-        case MDEREF_HV_pop_rv2hv_helem:
-            next_is_hash = TRUE;
-            /* FALLTHROUGH */
-        case MDEREF_AV_pop_rv2av_aelem:
+    kid = kUNOP->op_first;				/* get past null */
+    if (!(have_scopeop = kid->op_type == OP_SCOPE)
+     && kid->op_type != OP_LEAVE)
+        return;
+    kid = kLISTOP->op_last;				/* get past scope */
+    switch(kid->op_type) {
+        case OP_NCMP:
+        case OP_I_NCMP:
+        case OP_SCMP:
+            if (!have_scopeop) goto padkids;
             break;
-
         default:
-            NOT_REACHED; /* NOTREACHED */
             return;
-        }
-
-        while (!is_last) {
-            /* look for another (rv2av/hv; get index;
-             * aelem/helem/exists/delele) sequence */
+    }
+    k = kid;						/* remember this node*/
+    if (kBINOP->op_first->op_type != OP_RV2SV
+     || kBINOP->op_last ->op_type != OP_RV2SV)
+    {
+        /*
+           Warn about my($a) or my($b) in a sort block, *if* $a or $b is
+           then used in a comparison.  This catches most, but not
+           all cases.  For instance, it catches
+               sort { my($a); $a <=> $b }
+           but not
+               sort { my($a); $a < $b ? -1 : $a == $b ? 0 : 1; }
+           (although why you'd do that is anyone's guess).
+        */
 
-            OP *kid;
-            bool is_deref;
-            bool ok;
-            UV index_type = MDEREF_INDEX_none;
-
-            if (action_count) {
-                /* if this is not the first lookup, consume the rv2av/hv  */
-
-                /* for N levels of aggregate lookup, we normally expect
-                 * that the first N-1 [ah]elem ops will be flagged as
-                 * /DEREF (so they autovivifiy if necessary), and the last
-                 * lookup op not to be.
-                 * For other things (like @{$h{k1}{k2}}) extra scope or
-                 * leave ops can appear, so abandon the effort in that
-                 * case */
-                if (o->op_type != OP_RV2AV && o->op_type != OP_RV2HV)
-                    return;
+       padkids:
+        if (!ckWARN(WARN_SYNTAX)) return;
+        kid = kBINOP->op_first;
+        do {
+            if (kid->op_type == OP_PADSV) {
+                PADNAME * const name = PAD_COMPNAME(kid->op_targ);
+                if (PadnameLEN(name) == 2 && *PadnamePV(name) == '$'
+                 && (  PadnamePV(name)[1] == 'a'
+                    || PadnamePV(name)[1] == 'b'  ))
+                    /* diag_listed_as: "my %s" used in sort comparison */
+                    Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                                     "\"%s %s\" used in sort comparison",
+                                      PadnameIsSTATE(name)
+                                        ? "state"
+                                        : "my",
+                                      PadnamePV(name));
+            }
+        } while ((kid = OpSIBLING(kid)));
+        return;
+    }
+    kid = kBINOP->op_first;				/* get past cmp */
+    if (kUNOP->op_first->op_type != OP_GV)
+        return;
+    kid = kUNOP->op_first;				/* get past rv2sv */
+    gv = kGVOP_gv;
+    if (GvSTASH(gv) != PL_curstash)
+        return;
+    gvname = GvNAME(gv);
+    if (*gvname == 'a' && gvname[1] == '\0')
+        descending = 0;
+    else if (*gvname == 'b' && gvname[1] == '\0')
+        descending = 1;
+    else
+        return;
 
-                /* rv2av or rv2hv sKR/1 */
+    kid = k;						/* back to cmp */
+    /* already checked above that it is rv2sv */
+    kid = kBINOP->op_last;				/* down to 2nd arg */
+    if (kUNOP->op_first->op_type != OP_GV)
+        return;
+    kid = kUNOP->op_first;				/* get past rv2sv */
+    gv = kGVOP_gv;
+    if (GvSTASH(gv) != PL_curstash)
+        return;
+    gvname = GvNAME(gv);
+    if ( descending
+         ? !(*gvname == 'a' && gvname[1] == '\0')
+         : !(*gvname == 'b' && gvname[1] == '\0'))
+        return;
+    o->op_flags &= ~(OPf_STACKED | OPf_SPECIAL);
+    if (descending)
+        o->op_private |= OPpSORT_DESCEND;
+    if (k->op_type == OP_NCMP)
+        o->op_private |= OPpSORT_NUMERIC;
+    if (k->op_type == OP_I_NCMP)
+        o->op_private |= OPpSORT_NUMERIC | OPpSORT_INTEGER;
+    kid = OpSIBLING(cLISTOPo->op_first);
+    /* cut out and delete old block (second sibling) */
+    op_sibling_splice(o, cLISTOPo->op_first, 1, NULL);
+    op_free(kid);
+}
 
-                ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
-                                            |OPf_REF|OPf_MOD|OPf_SPECIAL)));
-                if (o->op_flags != (OPf_WANT_SCALAR|OPf_KIDS|OPf_REF))
-                    return;
+OP *
+Perl_ck_split(pTHX_ OP *o)
+{
+    OP *kid;
+    OP *sibs;
 
-                /* at this point, we wouldn't expect any of these
-                 * possible private flags:
-                 * OPpMAYBE_LVSUB, OPpOUR_INTRO, OPpLVAL_INTRO
-                 * OPpTRUEBOOL, OPpMAYBE_TRUEBOOL (rv2hv only)
-                 */
-                ASSUME(!(o->op_private &
-                    ~(OPpHINT_STRICT_REFS|OPpARG1_MASK|OPpSLICEWARNING)));
+    PERL_ARGS_ASSERT_CK_SPLIT;
 
-                hints = (o->op_private & OPpHINT_STRICT_REFS);
+    assert(o->op_type == OP_LIST);
 
-                /* make sure the type of the previous /DEREF matches the
-                 * type of the next lookup */
-                ASSUME(o->op_type == (next_is_hash ? OP_RV2HV : OP_RV2AV));
-                top_op = o;
+    if (o->op_flags & OPf_STACKED)
+        return no_fh_allowed(o);
 
-                action = next_is_hash
-                            ? MDEREF_HV_vivify_rv2hv_helem
-                            : MDEREF_AV_vivify_rv2av_aelem;
-                o = o->op_next;
-            }
+    kid = cLISTOPo->op_first;
+    /* delete leading NULL node, then add a CONST if no other nodes */
+    assert(kid->op_type == OP_NULL);
+    op_sibling_splice(o, NULL, 1,
+        OpHAS_SIBLING(kid) ? NULL : newSVOP(OP_CONST, 0, newSVpvs(" ")));
+    op_free(kid);
+    kid = cLISTOPo->op_first;
 
-            /* if this is the second pass, and we're at the depth where
-             * previously we encountered a non-simple index expression,
-             * stop processing the index at this point */
-            if (action_count != index_skip) {
+    if (kid->op_type != OP_MATCH || kid->op_flags & OPf_STACKED) {
+        /* remove match expression, and replace with new optree with
+         * a match op at its head */
+        op_sibling_splice(o, NULL, 1, NULL);
+        /* pmruntime will handle split " " behavior with flag==2 */
+        kid = pmruntime(newPMOP(OP_MATCH, 0), kid, NULL, 2, 0);
+        op_sibling_splice(o, NULL, 0, kid);
+    }
 
-                /* look for one or more simple ops that return an array
-                 * index or hash key */
+    assert(kid->op_type == OP_MATCH || kid->op_type == OP_SPLIT);
 
-                switch (o->op_type) {
-                case OP_PADSV:
-                    /* it may be a lexical var index */
-                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_PARENS
-                                            |OPf_REF|OPf_MOD|OPf_SPECIAL)));
-                    ASSUME(!(o->op_private &
-                            ~(OPpPAD_STATE|OPpDEREF|OPpLVAL_INTRO)));
-
-                    if (   OP_GIMME(o,0) == G_SCALAR
-                        && !(o->op_flags & (OPf_REF|OPf_MOD))
-                        && o->op_private == 0)
-                    {
-                        if (pass)
-                            arg->pad_offset = o->op_targ;
-                        arg++;
-                        index_type = MDEREF_INDEX_padsv;
-                        o = o->op_next;
-                    }
-                    break;
+    if (kPMOP->op_pmflags & PMf_GLOBAL) {
+      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),
+                     "Use of /g modifier is meaningless in split");
+    }
 
-                case OP_CONST:
-                    if (next_is_hash) {
-                        /* it's a constant hash index */
-                        if (!(SvFLAGS(cSVOPo_sv) & (SVf_IOK|SVf_NOK|SVf_POK)))
-                            /* "use constant foo => FOO; $h{+foo}" for
-                             * some weird FOO, can leave you with constants
-                             * that aren't simple strings. It's not worth
-                             * the extra hassle for those edge cases */
-                            break;
+    /* eliminate the split op, and move the match op (plus any children)
+     * into its place, then convert the match op into a split op. i.e.
+     *
+     *  SPLIT                    MATCH                 SPLIT(ex-MATCH)
+     *    |                        |                     |
+     *  MATCH - A - B - C   =>     R - A - B - C   =>    R - A - B - C
+     *    |                        |                     |
+     *    R                        X - Y                 X - Y
+     *    |
+     *    X - Y
+     *
+     * (R, if it exists, will be a regcomp op)
+     */
 
-                        {
-                            UNOP *rop = NULL;
-                            OP * helem_op = o->op_next;
+    op_sibling_splice(o, NULL, 1, NULL); /* detach match op from o */
+    sibs = op_sibling_splice(o, NULL, -1, NULL); /* detach any other sibs */
+    op_sibling_splice(kid, cLISTOPx(kid)->op_last, 0, sibs); /* and reattach */
+    OpTYPE_set(kid, OP_SPLIT);
+    kid->op_flags   = (o->op_flags | (kid->op_flags & OPf_KIDS));
+    kid->op_private = o->op_private;
+    op_free(o);
+    o = kid;
+    kid = sibs; /* kid is now the string arg of the split */
 
-                            ASSUME(   helem_op->op_type == OP_HELEM
-                                   || helem_op->op_type == OP_NULL
-                                   || pass == 0);
-                            if (helem_op->op_type == OP_HELEM) {
-                                rop = (UNOP*)(((BINOP*)helem_op)->op_first);
-                                if (   helem_op->op_private & OPpLVAL_INTRO
-                                    || rop->op_type != OP_RV2HV
-                                )
-                                    rop = NULL;
-                            }
-                            /* on first pass just check; on second pass
-                             * hekify */
-                            S_check_hash_fields_and_hekify(aTHX_ rop, cSVOPo,
-                                                            pass);
-                        }
+    if (!kid) {
+        kid = newDEFSVOP();
+        op_append_elem(OP_SPLIT, o, kid);
+    }
+    scalar(kid);
 
-                        if (pass) {
-#ifdef USE_ITHREADS
-                            /* Relocate sv to the pad for thread safety */
-                            op_relocate_sv(&cSVOPo->op_sv, &o->op_targ);
-                            arg->pad_offset = o->op_targ;
-                            o->op_targ = 0;
-#else
-                            arg->sv = cSVOPx_sv(o);
-#endif
-                        }
-                    }
-                    else {
-                        /* it's a constant array index */
-                        IV iv;
-                        SV *ix_sv = cSVOPo->op_sv;
-                        if (!SvIOK(ix_sv))
-                            break;
-                        iv = SvIV(ix_sv);
-
-                        if (   action_count == 0
-                            && iv >= -128
-                            && iv <= 127
-                            && (   action == MDEREF_AV_padav_aelem
-                                || action == MDEREF_AV_gvav_aelem)
-                        )
-                            maybe_aelemfast = TRUE;
+    kid = OpSIBLING(kid);
+    if (!kid) {
+        kid = newSVOP(OP_CONST, 0, newSViv(0));
+        op_append_elem(OP_SPLIT, o, kid);
+        o->op_private |= OPpSPLIT_IMPLIM;
+    }
+    scalar(kid);
 
-                        if (pass) {
-                            arg->iv = iv;
-                            SvREFCNT_dec_NN(cSVOPo->op_sv);
-                        }
-                    }
-                    if (pass)
-                        /* we've taken ownership of the SV */
-                        cSVOPo->op_sv = NULL;
-                    arg++;
-                    index_type = MDEREF_INDEX_const;
-                    o = o->op_next;
-                    break;
+    if (OpHAS_SIBLING(kid))
+        return too_many_arguments_pv(o,OP_DESC(o), 0);
 
-                case OP_GV:
-                    /* it may be a package var index */
+    return o;
+}
 
-                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_PARENS|OPf_SPECIAL)));
-                    ASSUME(!(o->op_private & ~(OPpEARLY_CV)));
-                    if (  (o->op_flags & ~(OPf_PARENS|OPf_SPECIAL)) != OPf_WANT_SCALAR
-                        || o->op_private != 0
-                    )
-                        break;
+OP *
+Perl_ck_stringify(pTHX_ OP *o)
+{
+    OP * const kid = OpSIBLING(cUNOPo->op_first);
+    PERL_ARGS_ASSERT_CK_STRINGIFY;
+    if ((   kid->op_type == OP_JOIN || kid->op_type == OP_QUOTEMETA
+         || kid->op_type == OP_LC   || kid->op_type == OP_LCFIRST
+         || kid->op_type == OP_UC   || kid->op_type == OP_UCFIRST)
+        && !OpHAS_SIBLING(kid)) /* syntax errs can leave extra children */
+    {
+        op_sibling_splice(o, cUNOPo->op_first, -1, NULL);
+        op_free(o);
+        return kid;
+    }
+    return ck_fun(o);
+}
 
-                    kid = o->op_next;
-                    if (kid->op_type != OP_RV2SV)
-                        break;
+OP *
+Perl_ck_join(pTHX_ OP *o)
+{
+    OP * const kid = OpSIBLING(cLISTOPo->op_first);
 
-                    ASSUME(!(kid->op_flags &
-                            ~(OPf_WANT|OPf_KIDS|OPf_MOD|OPf_REF
-                             |OPf_SPECIAL|OPf_PARENS)));
-                    ASSUME(!(kid->op_private &
-                                    ~(OPpARG1_MASK
-                                     |OPpHINT_STRICT_REFS|OPpOUR_INTRO
-                                     |OPpDEREF|OPpLVAL_INTRO)));
-                    if(   (kid->op_flags &~ OPf_PARENS)
-                            != (OPf_WANT_SCALAR|OPf_KIDS)
-                       || (kid->op_private & ~(OPpARG1_MASK|HINT_STRICT_REFS))
-                    )
-                        break;
+    PERL_ARGS_ASSERT_CK_JOIN;
 
-                    if (pass) {
-#ifdef USE_ITHREADS
-                        arg->pad_offset = cPADOPx(o)->op_padix;
-                        /* stop it being swiped when nulled */
-                        cPADOPx(o)->op_padix = 0;
-#else
-                        arg->sv = cSVOPx(o)->op_sv;
-                        cSVOPo->op_sv = NULL;
-#endif
-                    }
-                    arg++;
-                    index_type = MDEREF_INDEX_gvsv;
-                    o = kid->op_next;
-                    break;
+    if (kid && kid->op_type == OP_MATCH) {
+        if (ckWARN(WARN_SYNTAX)) {
+            const REGEXP *re = PM_GETRE(kPMOP);
+            const SV *msg = re
+                    ? newSVpvn_flags( RX_PRECOMP_const(re), RX_PRELEN(re),
+                                            SVs_TEMP | ( RX_UTF8(re) ? SVf_UTF8 : 0 ) )
+                    : newSVpvs_flags( "STRING", SVs_TEMP );
+            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                        "/%" SVf "/ should probably be written as \"%" SVf "\"",
+                        SVfARG(msg), SVfARG(msg));
+        }
+    }
+    if (kid
+     && (kid->op_type == OP_CONST /* an innocent, unsuspicious separator */
+        || (kid->op_type == OP_PADSV && !(kid->op_private & OPpLVAL_INTRO))
+        || (  kid->op_type==OP_RV2SV && kUNOP->op_first->op_type == OP_GV
+           && !(kid->op_private & (OPpLVAL_INTRO|OPpOUR_INTRO)))))
+    {
+        const OP * const bairn = OpSIBLING(kid); /* the list */
+        if (bairn && !OpHAS_SIBLING(bairn) /* single-item list */
+         && OP_GIMME(bairn,0) == G_SCALAR)
+        {
+            OP * const ret = op_convert_list(OP_STRINGIFY, OPf_FOLDED,
+                                     op_sibling_splice(o, kid, 1, NULL));
+            op_free(o);
+            return ret;
+        }
+    }
 
-                } /* switch */
-            } /* action_count != index_skip */
+    return ck_fun(o);
+}
 
-            action |= index_type;
+/*
+=for apidoc rv2cv_op_cv
 
+Examines an op, which is expected to identify a subroutine at runtime,
+and attempts to determine at compile time which subroutine it identifies.
+This is normally used during Perl compilation to determine whether
+a prototype can be applied to a function call.  C<cvop> is the op
+being considered, normally an C<rv2cv> op.  A pointer to the identified
+subroutine is returned, if it could be determined statically, and a null
+pointer is returned if it was not possible to determine statically.
 
-            /* at this point we have either:
-             *   * detected what looks like a simple index expression,
-             *     and expect the next op to be an [ah]elem, or
-             *     an nulled  [ah]elem followed by a delete or exists;
-             *  * found a more complex expression, so something other
-             *    than the above follows.
-             */
+Currently, the subroutine can be identified statically if the RV that the
+C<rv2cv> is to operate on is provided by a suitable C<gv> or C<const> op.
+A C<gv> op is suitable if the GV's CV slot is populated.  A C<const> op is
+suitable if the constant value must be an RV pointing to a CV.  Details of
+this process may change in future versions of Perl.  If the C<rv2cv> op
+has the C<OPpENTERSUB_AMPER> flag set then no attempt is made to identify
+the subroutine statically: this flag is used to suppress compile-time
+magic on a subroutine call, forcing it to use default runtime behaviour.
 
-            /* possibly an optimised away [ah]elem (where op_next is
-             * exists or delete) */
-            if (o->op_type == OP_NULL)
-                o = o->op_next;
-
-            /* at this point we're looking for an OP_AELEM, OP_HELEM,
-             * OP_EXISTS or OP_DELETE */
-
-            /* if a custom array/hash access checker is in scope,
-             * abandon optimisation attempt */
-            if (  (o->op_type == OP_AELEM || o->op_type == OP_HELEM)
-               && PL_check[o->op_type] != Perl_ck_null)
-                return;
-            /* similarly for customised exists and delete */
-            if (  (o->op_type == OP_EXISTS)
-               && PL_check[o->op_type] != Perl_ck_exists)
-                return;
-            if (  (o->op_type == OP_DELETE)
-               && PL_check[o->op_type] != Perl_ck_delete)
-                return;
+If C<flags> has the bit C<RV2CVOPCV_MARK_EARLY> set, then the handling
+of a GV reference is modified.  If a GV was examined and its CV slot was
+found to be empty, then the C<gv> op has the C<OPpEARLY_CV> flag set.
+If the op is not optimised away, and the CV slot is later populated with
+a subroutine having a prototype, that flag eventually triggers the warning
+"called too early to check prototype".
 
-            if (   o->op_type != OP_AELEM
-                || (o->op_private &
-                      (OPpLVAL_INTRO|OPpLVAL_DEFER|OPpDEREF|OPpMAYBE_LVSUB))
-                )
-                maybe_aelemfast = FALSE;
+If C<flags> has the bit C<RV2CVOPCV_RETURN_NAME_GV> set, then instead
+of returning a pointer to the subroutine it returns a pointer to the
+GV giving the most appropriate name for the subroutine in this context.
+Normally this is just the C<CvGV> of the subroutine, but for an anonymous
+(C<CvANON>) subroutine that is referenced through a GV it will be the
+referencing GV.  The resulting C<GV*> is cast to C<CV*> to be returned.
+A null pointer is returned as usual if there is no statically-determinable
+subroutine.
 
-            /* look for aelem/helem/exists/delete. If it's not the last elem
-             * lookup, it *must* have OPpDEREF_AV/HV, but not many other
-             * flags; if it's the last, then it mustn't have
-             * OPpDEREF_AV/HV, but may have lots of other flags, like
-             * OPpLVAL_INTRO etc
-             */
+=for apidoc Amnh||OPpEARLY_CV
+=for apidoc Amnh||OPpENTERSUB_AMPER
+=for apidoc Amnh||RV2CVOPCV_MARK_EARLY
+=for apidoc Amnh||RV2CVOPCV_RETURN_NAME_GV
 
-            if (   index_type == MDEREF_INDEX_none
-                || (   o->op_type != OP_AELEM  && o->op_type != OP_HELEM
-                    && o->op_type != OP_EXISTS && o->op_type != OP_DELETE)
-            )
-                ok = FALSE;
-            else {
-                /* we have aelem/helem/exists/delete with valid simple index */
+=cut
+*/
 
-                is_deref =    (o->op_type == OP_AELEM || o->op_type == OP_HELEM)
-                           && (   (o->op_private & OPpDEREF) == OPpDEREF_AV
-                               || (o->op_private & OPpDEREF) == OPpDEREF_HV);
-
-                /* This doesn't make much sense but is legal:
-                 *    @{ local $x[0][0] } = 1
-                 * Since scope exit will undo the autovivification,
-                 * don't bother in the first place. The OP_LEAVE
-                 * assertion is in case there are other cases of both
-                 * OPpLVAL_INTRO and OPpDEREF which don't include a scope
-                 * exit that would undo the local - in which case this
-                 * block of code would need rethinking.
-                 */
-                if (is_deref && (o->op_private & OPpLVAL_INTRO)) {
-#ifdef DEBUGGING
-                    OP *n = o->op_next;
-                    while (n && (  n->op_type == OP_NULL
-                                || n->op_type == OP_LIST
-                                || n->op_type == OP_SCALAR))
-                        n = n->op_next;
-                    assert(n && n->op_type == OP_LEAVE);
-#endif
-                    o->op_private &= ~OPpDEREF;
-                    is_deref = FALSE;
-                }
+/* shared by toke.c:yylex */
+CV *
+Perl_find_lexical_cv(pTHX_ PADOFFSET off)
+{
+    const PADNAME *name = PAD_COMPNAME(off);
+    CV *compcv = PL_compcv;
+    while (PadnameOUTER(name)) {
+        compcv = CvOUTSIDE(compcv);
+        if (LIKELY(PARENT_PAD_INDEX(name))) {
+            name = PadlistNAMESARRAY(CvPADLIST(compcv))
+                [off = PARENT_PAD_INDEX(name)];
+        }
+        else {
+            /* In an eval() in an inner scope like a function, the
+               intermediate pad in the sub might not be populated with the
+               sub.  So search harder.
 
-                if (is_deref) {
-                    ASSUME(!(o->op_flags &
-                                 ~(OPf_WANT|OPf_KIDS|OPf_MOD|OPf_PARENS)));
-                    ASSUME(!(o->op_private & ~(OPpARG2_MASK|OPpDEREF)));
-
-                    ok =    (o->op_flags &~ OPf_PARENS)
-                               == (OPf_WANT_SCALAR|OPf_KIDS|OPf_MOD)
-                         && !(o->op_private & ~(OPpDEREF|OPpARG2_MASK));
-                }
-                else if (o->op_type == OP_EXISTS) {
-                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
-                                |OPf_REF|OPf_MOD|OPf_SPECIAL)));
-                    ASSUME(!(o->op_private & ~(OPpARG1_MASK|OPpEXISTS_SUB)));
-                    ok =  !(o->op_private & ~OPpARG1_MASK);
-                }
-                else if (o->op_type == OP_DELETE) {
-                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
-                                |OPf_REF|OPf_MOD|OPf_SPECIAL)));
-                    ASSUME(!(o->op_private &
-                                    ~(OPpARG1_MASK|OPpSLICE|OPpLVAL_INTRO)));
-                    /* don't handle slices or 'local delete'; the latter
-                     * is fairly rare, and has a complex runtime */
-                    ok =  !(o->op_private & ~OPpARG1_MASK);
-                    if (OP_TYPE_IS_OR_WAS(cUNOPo->op_first, OP_AELEM))
-                        /* skip handling run-tome error */
-                        ok = (ok && cBOOL(o->op_flags & OPf_SPECIAL));
-                }
-                else {
-                    ASSUME(o->op_type == OP_AELEM || o->op_type == OP_HELEM);
-                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_MOD
-                                            |OPf_PARENS|OPf_REF|OPf_SPECIAL)));
-                    ASSUME(!(o->op_private & ~(OPpARG2_MASK|OPpMAYBE_LVSUB
-                                    |OPpLVAL_DEFER|OPpDEREF|OPpLVAL_INTRO)));
-                    ok = (o->op_private & OPpDEREF) != OPpDEREF_SV;
+               It is possible we won't find the name in this
+               particular scope, but that's fine, if we don't we'll
+               find it in some outer scope.  Finding it here will let us
+               go back to following the PARENT_PAD_INDEX() chain.
+            */
+            const PADNAMELIST * const names = PadlistNAMES(CvPADLIST(compcv));
+            PADNAME * const * const name_p = PadnamelistARRAY(names);
+            int offset;
+            for (offset = PadnamelistMAXNAMED(names); offset > 0; offset--) {
+                const PADNAME * const thisname = name_p[offset];
+                /* The pv is copied from the outer PADNAME to the
+                   inner PADNAMEs so we don't need to compare the
+                   string contents
+                */
+                if (thisname && PadnameLEN(thisname) == PadnameLEN(name)
+                    && PadnamePV(thisname) == PadnamePV(name)) {
+                    name = thisname;
+                    break;
                 }
             }
+        }
+    }
+    assert(!PadnameIsOUR(name));
+    if (!PadnameIsSTATE(name) && PadnamePROTOCV(name)) {
+        return PadnamePROTOCV(name);
+    }
+    return (CV *)AvARRAY(PadlistARRAY(CvPADLIST(compcv))[1])[off];
+}
 
-            if (ok) {
-                if (!first_elem_op)
-                    first_elem_op = o;
-                top_op = o;
-                if (is_deref) {
-                    next_is_hash = cBOOL((o->op_private & OPpDEREF) == OPpDEREF_HV);
-                    o = o->op_next;
-                }
-                else {
-                    is_last = TRUE;
-                    action |= MDEREF_FLAG_last;
+CV *
+Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags)
+{
+    OP *rvop;
+    CV *cv;
+    GV *gv;
+    PERL_ARGS_ASSERT_RV2CV_OP_CV;
+    if (flags & ~RV2CVOPCV_FLAG_MASK)
+        Perl_croak(aTHX_ "panic: rv2cv_op_cv bad flags %x", (unsigned)flags);
+    if (cvop->op_type != OP_RV2CV)
+        return NULL;
+    if (cvop->op_private & OPpENTERSUB_AMPER)
+        return NULL;
+    if (!(cvop->op_flags & OPf_KIDS))
+        return NULL;
+    rvop = cUNOPx(cvop)->op_first;
+    switch (rvop->op_type) {
+        case OP_GV: {
+            gv = cGVOPx_gv(rvop);
+            if (!isGV(gv)) {
+                if (SvROK(gv) && SvTYPE(SvRV(gv)) == SVt_PVCV) {
+                    cv = MUTABLE_CV(SvRV(gv));
+                    gv = NULL;
+                    break;
                 }
+                if (flags & RV2CVOPCV_RETURN_STUB)
+                    return (CV *)gv;
+                else return NULL;
             }
-            else {
-                /* at this point we have something that started
-                 * promisingly enough (with rv2av or whatever), but failed
-                 * to find a simple index followed by an
-                 * aelem/helem/exists/delete. If this is the first action,
-                 * give up; but if we've already seen at least one
-                 * aelem/helem, then keep them and add a new action with
-                 * MDEREF_INDEX_none, which causes it to do the vivify
-                 * from the end of the previous lookup, and do the deref,
-                 * but stop at that point. So $a[0][expr] will do one
-                 * av_fetch, vivify and deref, then continue executing at
-                 * expr */
-                if (!action_count)
-                    return;
-                is_last = TRUE;
-                index_skip = action_count;
-                action |= MDEREF_FLAG_last;
-                if (index_type != MDEREF_INDEX_none)
-                    arg--;
-            }
-
-            action_word |= (action << (action_ix * MDEREF_SHIFT));
-            action_ix++;
-            action_count++;
-            /* if there's no space for the next action, reserve a new slot
-             * for it *before* we start adding args for that action */
-            if ((action_ix + 1) * MDEREF_SHIFT > UVSIZE*8) {
-                if (pass)
-                    action_ptr->uv = action_word;
-                action_word = 0;
-                action_ptr = arg;
-                arg++;
-                action_ix = 0;
-            }
-        } /* while !is_last */
-
-        /* success! */
-
-        if (!action_ix)
-            /* slot reserved for next action word not now needed */
-            arg--;
-        else if (pass)
-            action_ptr->uv = action_word;
-
-        if (pass) {
-            OP *mderef;
-            OP *p, *q;
-
-            mderef = newUNOP_AUX(OP_MULTIDEREF, 0, NULL, arg_buf);
-            if (index_skip == -1) {
-                mderef->op_flags = o->op_flags
-                        & (OPf_WANT|OPf_MOD|(next_is_hash ? OPf_SPECIAL : 0));
-                if (o->op_type == OP_EXISTS)
-                    mderef->op_private = OPpMULTIDEREF_EXISTS;
-                else if (o->op_type == OP_DELETE)
-                    mderef->op_private = OPpMULTIDEREF_DELETE;
-                else
-                    mderef->op_private = o->op_private
-                        & (OPpMAYBE_LVSUB|OPpLVAL_DEFER|OPpLVAL_INTRO);
+            cv = GvCVu(gv);
+            if (!cv) {
+                if (flags & RV2CVOPCV_MARK_EARLY)
+                    rvop->op_private |= OPpEARLY_CV;
+                return NULL;
             }
-            /* accumulate strictness from every level (although I don't think
-             * they can actually vary) */
-            mderef->op_private |= hints;
-
-            /* integrate the new multideref op into the optree and the
-             * op_next chain.
-             *
-             * In general an op like aelem or helem has two child
-             * sub-trees: the aggregate expression (a_expr) and the
-             * index expression (i_expr):
-             *
-             *     aelem
-             *       |
-             *     a_expr - i_expr
-             *
-             * The a_expr returns an AV or HV, while the i-expr returns an
-             * index. In general a multideref replaces most or all of a
-             * multi-level tree, e.g.
-             *
-             *     exists
-             *       |
-             *     ex-aelem
-             *       |
-             *     rv2av  - i_expr1
-             *       |
-             *     helem
-             *       |
-             *     rv2hv  - i_expr2
-             *       |
-             *     aelem
-             *       |
-             *     a_expr - i_expr3
-             *
-             * With multideref, all the i_exprs will be simple vars or
-             * constants, except that i_expr1 may be arbitrary in the case
-             * of MDEREF_INDEX_none.
-             *
-             * The bottom-most a_expr will be either:
-             *   1) a simple var (so padXv or gv+rv2Xv);
-             *   2) a simple scalar var dereferenced (e.g. $r->[0]):
-             *      so a simple var with an extra rv2Xv;
-             *   3) or an arbitrary expression.
-             *
-             * 'start', the first op in the execution chain, will point to
-             *   1),2): the padXv or gv op;
-             *   3):    the rv2Xv which forms the last op in the a_expr
-             *          execution chain, and the top-most op in the a_expr
-             *          subtree.
-             *
-             * For all cases, the 'start' node is no longer required,
-             * but we can't free it since one or more external nodes
-             * may point to it. E.g. consider
-             *     $h{foo} = $a ? $b : $c
-             * Here, both the op_next and op_other branches of the
-             * cond_expr point to the gv[*h] of the hash expression, so
-             * we can't free the 'start' op.
-             *
-             * For expr->[...], we need to save the subtree containing the
-             * expression; for the other cases, we just need to save the
-             * start node.
-             * So in all cases, we null the start op and keep it around by
-             * making it the child of the multideref op; for the expr->
-             * case, the expr will be a subtree of the start node.
-             *
-             * So in the simple 1,2 case the  optree above changes to
-             *
-             *     ex-exists
-             *       |
-             *     multideref
-             *       |
-             *     ex-gv (or ex-padxv)
-             *
-             *  with the op_next chain being
-             *
-             *  -> ex-gv -> multideref -> op-following-ex-exists ->
-             *
-             *  In the 3 case, we have
-             *
-             *     ex-exists
-             *       |
-             *     multideref
-             *       |
-             *     ex-rv2xv
-             *       |
-             *    rest-of-a_expr
-             *      subtree
-             *
-             *  and
-             *
-             *  -> rest-of-a_expr subtree ->
-             *    ex-rv2xv -> multideref -> op-following-ex-exists ->
-             *
-             *
-             * Where the last i_expr is non-simple (i.e. MDEREF_INDEX_none,
-             * e.g. $a[0]{foo}[$x+1], the next rv2xv is nulled and the
-             * multideref attached as the child, e.g.
-             *
-             *     exists
-             *       |
-             *     ex-aelem
-             *       |
-             *     ex-rv2av  - i_expr1
-             *       |
-             *     multideref
-             *       |
-             *     ex-whatever
-             *
-             */
-
-            /* if we free this op, don't free the pad entry */
-            if (reset_start_targ)
-                start->op_targ = 0;
-
+        } break;
+        case OP_CONST: {
+            SV *rv = cSVOPx_sv(rvop);
+            if (!SvROK(rv))
+                return NULL;
+            cv = (CV*)SvRV(rv);
+            gv = NULL;
+        } break;
+        case OP_PADCV: {
+            cv = find_lexical_cv(rvop->op_targ);
+            gv = NULL;
+        } break;
+        default: {
+            return NULL;
+        } NOT_REACHED; /* NOTREACHED */
+    }
+    if (SvTYPE((SV*)cv) != SVt_PVCV)
+        return NULL;
+    if (flags & RV2CVOPCV_RETURN_NAME_GV) {
+        if ((!CvANON(cv) && !CvLEXICAL(cv)) || !gv)
+            gv = CvGV(cv);
+        return (CV*)gv;
+    }
+    else if (flags & RV2CVOPCV_MAYBE_NAME_GV) {
+        if (CvLEXICAL(cv) || CvNAMED(cv))
+            return NULL;
+        if (!CvANON(cv) || !gv)
+            gv = CvGV(cv);
+        return (CV*)gv;
 
-            /* Cut the bit we need to save out of the tree and attach to
-             * the multideref op, then free the rest of the tree */
-
-            /* find parent of node to be detached (for use by splice) */
-            p = first_elem_op;
-            if (   orig_action == MDEREF_AV_pop_rv2av_aelem
-                || orig_action == MDEREF_HV_pop_rv2hv_helem)
-            {
-                /* there is an arbitrary expression preceding us, e.g.
-                 * expr->[..]? so we need to save the 'expr' subtree */
-                if (p->op_type == OP_EXISTS || p->op_type == OP_DELETE)
-                    p = cUNOPx(p)->op_first;
-                ASSUME(   start->op_type == OP_RV2AV
-                       || start->op_type == OP_RV2HV);
-            }
-            else {
-                /* either a padXv or rv2Xv+gv, maybe with an ex-Xelem
-                 * above for exists/delete. */
-                while (   (p->op_flags & OPf_KIDS)
-                       && cUNOPx(p)->op_first != start
-                )
-                    p = cUNOPx(p)->op_first;
-            }
-            ASSUME(cUNOPx(p)->op_first == start);
+    } else {
+        return cv;
+    }
+}
 
-            /* detach from main tree, and re-attach under the multideref */
-            op_sibling_splice(mderef, NULL, 0,
-                    op_sibling_splice(p, NULL, 1, NULL));
-            op_null(start);
+/*
+=for apidoc ck_entersub_args_list
 
-            start->op_next = mderef;
+Performs the default fixup of the arguments part of an C<entersub>
+op tree.  This consists of applying list context to each of the
+argument ops.  This is the standard treatment used on a call marked
+with C<&>, or a method call, or a call through a subroutine reference,
+or any other call where the callee can't be identified at compile time,
+or a call where the callee has no prototype.
 
-            mderef->op_next = index_skip == -1 ? o->op_next : o;
+=cut
+*/
 
-            /* excise and free the original tree, and replace with
-             * the multideref op */
-            p = op_sibling_splice(top_op, NULL, -1, mderef);
-            while (p) {
-                q = OpSIBLING(p);
-                op_free(p);
-                p = q;
-            }
-            op_null(top_op);
-        }
-        else {
-            Size_t size = arg - arg_buf;
+OP *
+Perl_ck_entersub_args_list(pTHX_ OP *entersubop)
+{
+    OP *aop;
 
-            if (maybe_aelemfast && action_count == 1)
-                return;
+    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST;
 
-            arg_buf = (UNOP_AUX_item*)PerlMemShared_malloc(
-                                sizeof(UNOP_AUX_item) * (size + 1));
-            /* for dumping etc: store the length in a hidden first slot;
-             * we set the op_aux pointer to the second slot */
-            arg_buf->uv = size;
-            arg_buf++;
-        }
-    } /* for (pass = ...) */
+    aop = cUNOPx(entersubop)->op_first;
+    if (!OpHAS_SIBLING(aop))
+        aop = cUNOPx(aop)->op_first;
+    for (aop = OpSIBLING(aop); OpHAS_SIBLING(aop); aop = OpSIBLING(aop)) {
+        /* skip the extra attributes->import() call implicitly added in
+         * something like foo(my $x : bar)
+         */
+        if (   aop->op_type == OP_ENTERSUB
+            && (aop->op_flags & OPf_WANT) == OPf_WANT_VOID
+        )
+            continue;
+        list(aop);
+        op_lvalue(aop, OP_ENTERSUB);
+    }
+    return entersubop;
 }
 
-/* See if the ops following o are such that o will always be executed in
- * boolean context: that is, the SV which o pushes onto the stack will
- * only ever be consumed by later ops via SvTRUE(sv) or similar.
- * If so, set a suitable private flag on o. Normally this will be
- * bool_flag; but see below why maybe_flag is needed too.
- *
- * Typically the two flags you pass will be the generic OPpTRUEBOOL and
- * OPpMAYBE_TRUEBOOL, buts it's possible that for some ops those bits may
- * already be taken, so you'll have to give that op two different flags.
- *
- * More explanation of 'maybe_flag' and 'safe_and' parameters.
- * The binary logical ops &&, ||, // (plus 'if' and 'unless' which use
- * those underlying ops) short-circuit, which means that rather than
- * necessarily returning a truth value, they may return the LH argument,
- * which may not be boolean. For example in $x = (keys %h || -1), keys
- * should return a key count rather than a boolean, even though its
- * sort-of being used in boolean context.
- *
- * So we only consider such logical ops to provide boolean context to
- * their LH argument if they themselves are in void or boolean context.
- * However, sometimes the context isn't known until run-time. In this
- * case the op is marked with the maybe_flag flag it.
- *
- * Consider the following.
- *
- *     sub f { ....;  if (%h) { .... } }
- *
- * This is actually compiled as
- *
- *     sub f { ....;  %h && do { .... } }
- *
- * Here we won't know until runtime whether the final statement (and hence
- * the &&) is in void context and so is safe to return a boolean value.
- * So mark o with maybe_flag rather than the bool_flag.
- * Note that there is cost associated with determining context at runtime
- * (e.g. a call to block_gimme()), so it may not be worth setting (at
- * compile time) and testing (at runtime) maybe_flag if the scalar verses
- * boolean costs savings are marginal.
- *
- * However, we can do slightly better with && (compared to || and //):
- * this op only returns its LH argument when that argument is false. In
- * this case, as long as the op promises to return a false value which is
- * valid in both boolean and scalar contexts, we can mark an op consumed
- * by && with bool_flag rather than maybe_flag.
- * For example as long as pp_padhv and pp_rv2hv return &PL_sv_zero rather
- * than &PL_sv_no for a false result in boolean context, then it's safe. An
- * op which promises to handle this case is indicated by setting safe_and
- * to true.
- */
+/*
+=for apidoc ck_entersub_args_proto
 
-static void
-S_check_for_bool_cxt(OP*o, bool safe_and, U8 bool_flag, U8 maybe_flag)
-{
-    OP *lop;
-    U8 flag = 0;
+Performs the fixup of the arguments part of an C<entersub> op tree
+based on a subroutine prototype.  This makes various modifications to
+the argument ops, from applying context up to inserting C<refgen> ops,
+and checking the number and syntactic types of arguments, as directed by
+the prototype.  This is the standard treatment used on a subroutine call,
+not marked with C<&>, where the callee can be identified at compile time
+and has a prototype.
 
-    assert((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR);
+C<protosv> supplies the subroutine prototype to be applied to the call.
+It may be a normal defined scalar, of which the string value will be used.
+Alternatively, for convenience, it may be a subroutine object (a C<CV*>
+that has been cast to C<SV*>) which has a prototype.  The prototype
+supplied, in whichever form, does not need to match the actual callee
+referenced by the op tree.
 
-    /* OPpTARGET_MY and boolean context probably don't mix well.
-     * If someone finds a valid use case, maybe add an extra flag to this
-     * function which indicates its safe to do so for this op? */
-    assert(!(   (PL_opargs[o->op_type] & OA_TARGLEX)
-             && (o->op_private & OPpTARGET_MY)));
+If the argument ops disagree with the prototype, for example by having
+an unacceptable number of arguments, a valid op tree is returned anyway.
+The error is reflected in the parser state, normally resulting in a single
+exception at the top level of parsing which covers all the compilation
+errors that occurred.  In the error message, the callee is referred to
+by the name defined by the C<namegv> parameter.
 
-    lop = o->op_next;
+=cut
+*/
 
-    while (lop) {
-        switch (lop->op_type) {
-        case OP_NULL:
-        case OP_SCALAR:
-            break;
+OP *
+Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
+{
+    STRLEN proto_len;
+    const char *proto, *proto_end;
+    OP *aop, *prev, *cvop, *parent;
+    int optional = 0;
+    I32 arg = 0;
+    I32 contextclass = 0;
+    const char *e = NULL;
+    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO;
+    if (SvTYPE(protosv) == SVt_PVCV ? !SvPOK(protosv) : !SvOK(protosv))
+        Perl_croak(aTHX_ "panic: ck_entersub_args_proto CV with no proto, "
+                   "flags=%lx", (unsigned long) SvFLAGS(protosv));
+    if (SvTYPE(protosv) == SVt_PVCV)
+         proto = CvPROTO(protosv), proto_len = CvPROTOLEN(protosv);
+    else proto = SvPV(protosv, proto_len);
+    proto = S_strip_spaces(aTHX_ proto, &proto_len);
+    proto_end = proto + proto_len;
+    parent = entersubop;
+    aop = cUNOPx(entersubop)->op_first;
+    if (!OpHAS_SIBLING(aop)) {
+        parent = aop;
+        aop = cUNOPx(aop)->op_first;
+    }
+    prev = aop;
+    aop = OpSIBLING(aop);
+    for (cvop = aop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ;
+    while (aop != cvop) {
+        OP* o3 = aop;
 
-        /* these two consume the stack argument in the scalar case,
-         * and treat it as a boolean in the non linenumber case */
-        case OP_FLIP:
-        case OP_FLOP:
-            if (   ((lop->op_flags & OPf_WANT) == OPf_WANT_LIST)
-                || (lop->op_private & OPpFLIP_LINENUM))
-            {
-                lop = NULL;
+        if (proto >= proto_end)
+        {
+            SV * const namesv = cv_name((CV *)namegv, NULL, 0);
+            yyerror_pv(Perl_form(aTHX_ "Too many arguments for %" SVf,
+                                        SVfARG(namesv)), SvUTF8(namesv));
+            return entersubop;
+        }
+
+        switch (*proto) {
+            case ';':
+                optional = 1;
+                proto++;
+                continue;
+            case '_':
+                /* _ must be at the end */
+                if (proto[1] && !memCHRs(";@%", proto[1]))
+                    goto oops;
+                /* FALLTHROUGH */
+            case '$':
+                proto++;
+                arg++;
+                scalar(aop);
                 break;
-            }
-            /* FALLTHROUGH */
-        /* these never leave the original value on the stack */
-        case OP_NOT:
-        case OP_XOR:
-        case OP_COND_EXPR:
-        case OP_GREPWHILE:
-            flag = bool_flag;
-            lop = NULL;
-            break;
+            case '%':
+            case '@':
+                list(aop);
+                arg++;
+                break;
+            case '&':
+                proto++;
+                arg++;
+                if (    o3->op_type != OP_UNDEF
+                    && o3->op_type != OP_ANONCODE
+                    && (o3->op_type != OP_SREFGEN
+                        || (  cUNOPx(cUNOPx(o3)->op_first)->op_first->op_type
+                                != OP_ANONCODE
+                            && cUNOPx(cUNOPx(o3)->op_first)->op_first->op_type
+                                != OP_RV2CV)))
+                    bad_type_gv(arg, namegv, o3,
+                            arg == 1 ? "block or sub {}" : "sub {}");
+                break;
+            case '*':
+                /* '*' allows any scalar type, including bareword */
+                proto++;
+                arg++;
+                if (o3->op_type == OP_RV2GV)
+                    goto wrapref;	/* autoconvert GLOB -> GLOBref */
+                else if (o3->op_type == OP_CONST)
+                    o3->op_private &= ~OPpCONST_STRICT;
+                scalar(aop);
+                break;
+            case '+':
+                proto++;
+                arg++;
+                if (o3->op_type == OP_RV2AV ||
+                    o3->op_type == OP_PADAV ||
+                    o3->op_type == OP_RV2HV ||
+                    o3->op_type == OP_PADHV
+                ) {
+                    goto wrapref;
+                }
+                scalar(aop);
+                break;
+            case '[': case ']':
+                goto oops;
 
-        /* OR DOR and AND evaluate their arg as a boolean, but then may
-         * leave the original scalar value on the stack when following the
-         * op_next route. If not in void context, we need to ensure
-         * that whatever follows consumes the arg only in boolean context
-         * too.
-         */
-        case OP_AND:
-            if (safe_and) {
-                flag = bool_flag;
-                lop = NULL;
+            case '\\':
+                proto++;
+                arg++;
+            again:
+                switch (*proto++) {
+                    case '[':
+                        if (contextclass++ == 0) {
+                            e = (char *) memchr(proto, ']', proto_end - proto);
+                            if (!e || e == proto)
+                                goto oops;
+                        }
+                        else
+                            goto oops;
+                        goto again;
+
+                    case ']':
+                        if (contextclass) {
+                            const char *p = proto;
+                            const char *const end = proto;
+                            contextclass = 0;
+                            while (*--p != '[')
+                                /* \[$] accepts any scalar lvalue */
+                                if (*p == '$'
+                                 && Perl_op_lvalue_flags(aTHX_
+                                     scalar(o3),
+                                     OP_READ, /* not entersub */
+                                     OP_LVALUE_NO_CROAK
+                                    )) goto wrapref;
+                            bad_type_gv(arg, namegv, o3,
+                                    Perl_form(aTHX_ "one of %.*s",(int)(end - p), p));
+                        } else
+                            goto oops;
+                        break;
+                    case '*':
+                        if (o3->op_type == OP_RV2GV)
+                            goto wrapref;
+                        if (!contextclass)
+                            bad_type_gv(arg, namegv, o3, "symbol");
+                        break;
+                    case '&':
+                        if (o3->op_type == OP_ENTERSUB
+                         && !(o3->op_flags & OPf_STACKED))
+                            goto wrapref;
+                        if (!contextclass)
+                            bad_type_gv(arg, namegv, o3, "subroutine");
+                        break;
+                    case '$':
+                        if (o3->op_type == OP_RV2SV ||
+                                o3->op_type == OP_PADSV ||
+                                o3->op_type == OP_HELEM ||
+                                o3->op_type == OP_AELEM)
+                            goto wrapref;
+                        if (!contextclass) {
+                            /* \$ accepts any scalar lvalue */
+                            if (Perl_op_lvalue_flags(aTHX_
+                                    scalar(o3),
+                                    OP_READ,  /* not entersub */
+                                    OP_LVALUE_NO_CROAK
+                               )) goto wrapref;
+                            bad_type_gv(arg, namegv, o3, "scalar");
+                        }
+                        break;
+                    case '@':
+                        if (o3->op_type == OP_RV2AV ||
+                                o3->op_type == OP_PADAV)
+                        {
+                            o3->op_flags &=~ OPf_PARENS;
+                            goto wrapref;
+                        }
+                        if (!contextclass)
+                            bad_type_gv(arg, namegv, o3, "array");
+                        break;
+                    case '%':
+                        if (o3->op_type == OP_RV2HV ||
+                                o3->op_type == OP_PADHV)
+                        {
+                            o3->op_flags &=~ OPf_PARENS;
+                            goto wrapref;
+                        }
+                        if (!contextclass)
+                            bad_type_gv(arg, namegv, o3, "hash");
+                        break;
+                    wrapref:
+                            aop = S_op_sibling_newUNOP(aTHX_ parent, prev,
+                                                OP_REFGEN, 0);
+                        if (contextclass && e) {
+                            proto = e + 1;
+                            contextclass = 0;
+                        }
+                        break;
+                    default: goto oops;
+                }
+                if (contextclass)
+                    goto again;
                 break;
+            case ' ':
+                proto++;
+                continue;
+            default:
+            oops: {
+                Perl_croak(aTHX_ "Malformed prototype for %" SVf ": %" SVf,
+                                  SVfARG(cv_name((CV *)namegv, NULL, 0)),
+                                  SVfARG(protosv));
             }
-            /* FALLTHROUGH */
-        case OP_OR:
-        case OP_DOR:
-            if ((lop->op_flags & OPf_WANT) == OPf_WANT_VOID) {
-                flag = bool_flag;
-                lop = NULL;
-            }
-            else if (!(lop->op_flags & OPf_WANT)) {
-                /* unknown context - decide at runtime */
-                flag = maybe_flag;
-                lop = NULL;
-            }
-            break;
-
-        default:
-            lop = NULL;
-            break;
         }
 
-        if (lop)
-            lop = lop->op_next;
+        op_lvalue(aop, OP_ENTERSUB);
+        prev = aop;
+        aop = OpSIBLING(aop);
     }
-
-    o->op_private |= flag;
+    if (aop == cvop && *proto == '_') {
+        /* generate an access to $_ */
+        op_sibling_splice(parent, prev, 0, newDEFSVOP());
+    }
+    if (!optional && proto_end > proto &&
+        (*proto != '@' && *proto != '%' && *proto != ';' && *proto != '_'))
+    {
+        SV * const namesv = cv_name((CV *)namegv, NULL, 0);
+        yyerror_pv(Perl_form(aTHX_ "Not enough arguments for %" SVf,
+                                    SVfARG(namesv)), SvUTF8(namesv));
+    }
+    return entersubop;
 }
 
+/*
+=for apidoc ck_entersub_args_proto_or_list
 
+Performs the fixup of the arguments part of an C<entersub> op tree either
+based on a subroutine prototype or using default list-context processing.
+This is the standard treatment used on a subroutine call, not marked
+with C<&>, where the callee can be identified at compile time.
 
-/* mechanism for deferring recursion in rpeep() */
-
-#define MAX_DEFERRED 4
-
-#define DEFER(o) \
-  STMT_START { \
-    if (defer_ix == (MAX_DEFERRED-1)) { \
-        OP **defer = defer_queue[defer_base]; \
-        CALL_RPEEP(*defer); \
-        S_prune_chain_head(defer); \
-        defer_base = (defer_base + 1) % MAX_DEFERRED; \
-        defer_ix--; \
-    } \
-    defer_queue[(defer_base + ++defer_ix) % MAX_DEFERRED] = &(o); \
-  } STMT_END
-
-#define IS_AND_OP(o)   (o->op_type == OP_AND)
-#define IS_OR_OP(o)    (o->op_type == OP_OR)
+C<protosv> supplies the subroutine prototype to be applied to the call,
+or indicates that there is no prototype.  It may be a normal scalar,
+in which case if it is defined then the string value will be used
+as a prototype, and if it is undefined then there is no prototype.
+Alternatively, for convenience, it may be a subroutine object (a C<CV*>
+that has been cast to C<SV*>), of which the prototype will be used if it
+has one.  The prototype (or lack thereof) supplied, in whichever form,
+does not need to match the actual callee referenced by the op tree.
 
+If the argument ops disagree with the prototype, for example by having
+an unacceptable number of arguments, a valid op tree is returned anyway.
+The error is reflected in the parser state, normally resulting in a single
+exception at the top level of parsing which covers all the compilation
+errors that occurred.  In the error message, the callee is referred to
+by the name defined by the C<namegv> parameter.
 
-/* A peephole optimizer.  We visit the ops in the order they're to execute.
- * See the comments at the top of this file for more details about when
- * peep() is called */
+=cut
+*/
 
-void
-Perl_rpeep(pTHX_ OP *o)
+OP *
+Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop,
+        GV *namegv, SV *protosv)
 {
-    OP* oldop = NULL;
-    OP* oldoldop = NULL;
-    OP** defer_queue[MAX_DEFERRED]; /* small queue of deferred branches */
-    int defer_base = 0;
-    int defer_ix = -1;
+    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST;
+    if (SvTYPE(protosv) == SVt_PVCV ? SvPOK(protosv) : SvOK(protosv))
+        return ck_entersub_args_proto(entersubop, namegv, protosv);
+    else
+        return ck_entersub_args_list(entersubop);
+}
 
-    if (!o || o->op_opt)
-        return;
+OP *
+Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
+{
+    IV cvflags = SvIVX(protosv);
+    int opnum = cvflags & 0xffff;
+    OP *aop = cUNOPx(entersubop)->op_first;
 
-    assert(o->op_type != OP_FREED);
+    PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE;
 
-    ENTER;
-    SAVEOP();
-    SAVEVPTR(PL_curcop);
-    for (;; o = o->op_next) {
-        if (o && o->op_opt)
-            o = NULL;
-        if (!o) {
-            while (defer_ix >= 0) {
-                OP **defer =
-                        defer_queue[(defer_base + defer_ix--) % MAX_DEFERRED];
-                CALL_RPEEP(*defer);
-                S_prune_chain_head(defer);
-            }
-            break;
+    if (!opnum) {
+        OP *cvop;
+        if (!OpHAS_SIBLING(aop))
+            aop = cUNOPx(aop)->op_first;
+        aop = OpSIBLING(aop);
+        for (cvop = aop; OpSIBLING(cvop); cvop = OpSIBLING(cvop)) ;
+        if (aop != cvop) {
+            SV *namesv = cv_name((CV *)namegv, NULL, CV_NAME_NOTQUAL);
+            yyerror_pv(Perl_form(aTHX_ "Too many arguments for %" SVf,
+                SVfARG(namesv)), SvUTF8(namesv));
         }
 
-      redo:
-
-        /* oldoldop -> oldop -> o should be a chain of 3 adjacent ops */
-        assert(!oldoldop || oldoldop->op_next == oldop);
-        assert(!oldop    || oldop->op_next    == o);
-
-        /* By default, this op has now been optimised. A couple of cases below
-           clear this again.  */
-        o->op_opt = 1;
-        PL_op = o;
-
-        /* look for a series of 1 or more aggregate derefs, e.g.
-         *   $a[1]{foo}[$i]{$k}
-         * and replace with a single OP_MULTIDEREF op.
-         * Each index must be either a const, or a simple variable,
-         *
-         * First, look for likely combinations of starting ops,
-         * corresponding to (global and lexical variants of)
-         *     $a[...]   $h{...}
-         *     $r->[...] $r->{...}
-         *     (preceding expression)->[...]
-         *     (preceding expression)->{...}
-         * and if so, call maybe_multideref() to do a full inspection
-         * of the op chain and if appropriate, replace with an
-         * OP_MULTIDEREF
-         */
-        {
-            UV action;
-            OP *o2 = o;
-            U8 hints = 0;
-
-            switch (o2->op_type) {
-            case OP_GV:
-                /* $pkg[..]   :   gv[*pkg]
-                 * $pkg->[...]:   gv[*pkg]; rv2sv sKM/DREFAV */
-
-                /* Fail if there are new op flag combinations that we're
-                 * not aware of, rather than:
-                 *  * silently failing to optimise, or
-                 *  * silently optimising the flag away.
-                 * If this ASSUME starts failing, examine what new flag
-                 * has been added to the op, and decide whether the
-                 * optimisation should still occur with that flag, then
-                 * update the code accordingly. This applies to all the
-                 * other ASSUMEs in the block of code too.
-                 */
-                ASSUME(!(o2->op_flags &
-                            ~(OPf_WANT|OPf_MOD|OPf_PARENS|OPf_SPECIAL)));
-                ASSUME(!(o2->op_private & ~OPpEARLY_CV));
-
-                o2 = o2->op_next;
-
-                if (o2->op_type == OP_RV2AV) {
-                    action = MDEREF_AV_gvav_aelem;
-                    goto do_deref;
-                }
-
-                if (o2->op_type == OP_RV2HV) {
-                    action = MDEREF_HV_gvhv_helem;
-                    goto do_deref;
-                }
-
-                if (o2->op_type != OP_RV2SV)
-                    break;
-
-                /* at this point we've seen gv,rv2sv, so the only valid
-                 * construct left is $pkg->[] or $pkg->{} */
+        op_free(entersubop);
+        switch(cvflags >> 16) {
+        case 'F': return newSVOP(OP_CONST, 0,
+                                        newSVpv(CopFILE(PL_curcop),0));
+        case 'L': return newSVOP(
+                           OP_CONST, 0,
+                           Perl_newSVpvf(aTHX_
+                             "%" LINE_Tf, CopLINE(PL_curcop)
+                           )
+                         );
+        case 'P': return newSVOP(OP_CONST, 0,
+                                   (PL_curstash
+                                     ? newSVhek(HvNAME_HEK(PL_curstash))
+                                     : &PL_sv_undef
+                                   )
+                                );
+        }
+        NOT_REACHED; /* NOTREACHED */
+    }
+    else {
+        OP *prev, *cvop, *first, *parent;
+        U32 flags = 0;
 
-                ASSUME(!(o2->op_flags & OPf_STACKED));
-                if ((o2->op_flags & (OPf_WANT|OPf_REF|OPf_MOD|OPf_SPECIAL))
-                            != (OPf_WANT_SCALAR|OPf_MOD))
-                    break;
+        parent = entersubop;
+        if (!OpHAS_SIBLING(aop)) {
+            parent = aop;
+            aop = cUNOPx(aop)->op_first;
+        }
 
-                ASSUME(!(o2->op_private & ~(OPpARG1_MASK|HINT_STRICT_REFS
-                                    |OPpOUR_INTRO|OPpDEREF|OPpLVAL_INTRO)));
-                if (o2->op_private & (OPpOUR_INTRO|OPpLVAL_INTRO))
-                    break;
-                if (   (o2->op_private & OPpDEREF) != OPpDEREF_AV
-                    && (o2->op_private & OPpDEREF) != OPpDEREF_HV)
-                    break;
+        first = prev = aop;
+        aop = OpSIBLING(aop);
+        /* find last sibling */
+        for (cvop = aop;
+             OpHAS_SIBLING(cvop);
+             prev = cvop, cvop = OpSIBLING(cvop))
+            ;
+        if (!(cvop->op_private & OPpENTERSUB_NOPAREN)
+            /* Usually, OPf_SPECIAL on an op with no args means that it had
+             * parens, but these have their own meaning for that flag: */
+            && opnum != OP_VALUES && opnum != OP_KEYS && opnum != OP_EACH
+            && opnum != OP_DELETE && opnum != OP_EXISTS)
+                flags |= OPf_SPECIAL;
+        /* excise cvop from end of sibling chain */
+        op_sibling_splice(parent, prev, 1, NULL);
+        op_free(cvop);
+        if (aop == cvop) aop = NULL;
 
-                o2 = o2->op_next;
-                if (o2->op_type == OP_RV2AV) {
-                    action = MDEREF_AV_gvsv_vivify_rv2av_aelem;
-                    goto do_deref;
-                }
-                if (o2->op_type == OP_RV2HV) {
-                    action = MDEREF_HV_gvsv_vivify_rv2hv_helem;
-                    goto do_deref;
-                }
-                break;
+        /* detach remaining siblings from the first sibling, then
+         * dispose of original optree */
 
-            case OP_PADSV:
-                /* $lex->[...]: padsv[$lex] sM/DREFAV */
+        if (aop)
+            op_sibling_splice(parent, first, -1, NULL);
+        op_free(entersubop);
 
-                ASSUME(!(o2->op_flags &
-                    ~(OPf_WANT|OPf_PARENS|OPf_REF|OPf_MOD|OPf_SPECIAL)));
-                if ((o2->op_flags &
-                        (OPf_WANT|OPf_REF|OPf_MOD|OPf_SPECIAL))
-                     != (OPf_WANT_SCALAR|OPf_MOD))
-                    break;
+        if (cvflags == (OP_ENTEREVAL | (1<<16)))
+            flags |= OPpEVAL_BYTES <<8;
 
-                ASSUME(!(o2->op_private &
-                                ~(OPpPAD_STATE|OPpDEREF|OPpLVAL_INTRO)));
-                /* skip if state or intro, or not a deref */
-                if (      o2->op_private != OPpDEREF_AV
-                       && o2->op_private != OPpDEREF_HV)
-                    break;
+        switch (PL_opargs[opnum] & OA_CLASS_MASK) {
+        case OA_UNOP:
+        case OA_BASEOP_OR_UNOP:
+        case OA_FILESTATOP:
+            if (!aop)
+                return newOP(opnum,flags);       /* zero args */
+            if (aop == prev)
+                return newUNOP(opnum,flags,aop); /* one arg */
+            /* too many args */
+            /* FALLTHROUGH */
+        case OA_BASEOP:
+            if (aop) {
+                SV *namesv;
+                OP *nextop;
 
-                o2 = o2->op_next;
-                if (o2->op_type == OP_RV2AV) {
-                    action = MDEREF_AV_padsv_vivify_rv2av_aelem;
-                    goto do_deref;
-                }
-                if (o2->op_type == OP_RV2HV) {
-                    action = MDEREF_HV_padsv_vivify_rv2hv_helem;
-                    goto do_deref;
+                namesv = cv_name((CV *)namegv, NULL, CV_NAME_NOTQUAL);
+                yyerror_pv(Perl_form(aTHX_ "Too many arguments for %" SVf,
+                    SVfARG(namesv)), SvUTF8(namesv));
+                while (aop) {
+                    nextop = OpSIBLING(aop);
+                    op_free(aop);
+                    aop = nextop;
                 }
-                break;
-
-            case OP_PADAV:
-            case OP_PADHV:
-                /*    $lex[..]:  padav[@lex:1,2] sR *
-                 * or $lex{..}:  padhv[%lex:1,2] sR */
-                ASSUME(!(o2->op_flags & ~(OPf_WANT|OPf_MOD|OPf_PARENS|
-                                            OPf_REF|OPf_SPECIAL)));
-                if ((o2->op_flags &
-                        (OPf_WANT|OPf_REF|OPf_MOD|OPf_SPECIAL))
-                     != (OPf_WANT_SCALAR|OPf_REF))
-                    break;
-                if (o2->op_flags != (OPf_WANT_SCALAR|OPf_REF))
-                    break;
-                /* OPf_PARENS isn't currently used in this case;
-                 * if that changes, let us know! */
-                ASSUME(!(o2->op_flags & OPf_PARENS));
-
-                /* at this point, we wouldn't expect any of the remaining
-                 * possible private flags:
-                 * OPpPAD_STATE, OPpLVAL_INTRO, OPpTRUEBOOL,
-                 * OPpMAYBE_TRUEBOOL, OPpMAYBE_LVSUB
-                 *
-                 * OPpSLICEWARNING shouldn't affect runtime
-                 */
-                ASSUME(!(o2->op_private & ~(OPpSLICEWARNING)));
 
-                action = o2->op_type == OP_PADAV
-                            ? MDEREF_AV_padav_aelem
-                            : MDEREF_HV_padhv_helem;
-                o2 = o2->op_next;
-                S_maybe_multideref(aTHX_ o, o2, action, 0);
-                break;
+            }
+            return opnum == OP_RUNCV
+                ? newSVOP(OP_RUNCV, 0, &PL_sv_undef)
+                : newOP(opnum,0);
+        default:
+            return op_convert_list(opnum,0,aop);
+        }
+    }
+    NOT_REACHED; /* NOTREACHED */
+    return entersubop;
+}
 
+/*
+=for apidoc cv_get_call_checker_flags
 
-            case OP_RV2AV:
-            case OP_RV2HV:
-                action = o2->op_type == OP_RV2AV
-                            ? MDEREF_AV_pop_rv2av_aelem
-                            : MDEREF_HV_pop_rv2hv_helem;
-                /* FALLTHROUGH */
-            do_deref:
-                /* (expr)->[...]:  rv2av sKR/1;
-                 * (expr)->{...}:  rv2hv sKR/1; */
-
-                ASSUME(o2->op_type == OP_RV2AV || o2->op_type == OP_RV2HV);
-
-                ASSUME(!(o2->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
-                                |OPf_REF|OPf_MOD|OPf_STACKED|OPf_SPECIAL)));
-                if (o2->op_flags != (OPf_WANT_SCALAR|OPf_KIDS|OPf_REF))
-                    break;
+Retrieves the function that will be used to fix up a call to C<cv>.
+Specifically, the function is applied to an C<entersub> op tree for a
+subroutine call, not marked with C<&>, where the callee can be identified
+at compile time as C<cv>.
 
-                /* at this point, we wouldn't expect any of these
-                 * possible private flags:
-                 * OPpMAYBE_LVSUB, OPpLVAL_INTRO
-                 * OPpTRUEBOOL, OPpMAYBE_TRUEBOOL, (rv2hv only)
-                 */
-                ASSUME(!(o2->op_private &
-                    ~(OPpHINT_STRICT_REFS|OPpARG1_MASK|OPpSLICEWARNING
-                     |OPpOUR_INTRO)));
-                hints |= (o2->op_private & OPpHINT_STRICT_REFS);
+The C-level function pointer is returned in C<*ckfun_p>, an SV argument
+for it is returned in C<*ckobj_p>, and control flags are returned in
+C<*ckflags_p>.  The function is intended to be called in this manner:
 
-                o2 = o2->op_next;
+ entersubop = (*ckfun_p)(aTHX_ entersubop, namegv, (*ckobj_p));
 
-                S_maybe_multideref(aTHX_ o, o2, action, hints);
-                break;
+In this call, C<entersubop> is a pointer to the C<entersub> op,
+which may be replaced by the check function, and C<namegv> supplies
+the name that should be used by the check function to refer
+to the callee of the C<entersub> op if it needs to emit any diagnostics.
+It is permitted to apply the check function in non-standard situations,
+such as to a call to a different subroutine or to a method call.
 
-            default:
-                break;
-            }
-        }
+C<namegv> may not actually be a GV.  If the C<CALL_CHECKER_REQUIRE_GV>
+bit is clear in C<*ckflags_p>, it is permitted to pass a CV or other SV
+instead, anything that can be used as the first argument to L</cv_name>.
+If the C<CALL_CHECKER_REQUIRE_GV> bit is set in C<*ckflags_p> then the
+check function requires C<namegv> to be a genuine GV.
 
+By default, the check function is
+L<Perl_ck_entersub_args_proto_or_list|/ck_entersub_args_proto_or_list>,
+the SV parameter is C<cv> itself, and the C<CALL_CHECKER_REQUIRE_GV>
+flag is clear.  This implements standard prototype processing.  It can
+be changed, for a particular subroutine, by L</cv_set_call_checker_flags>.
 
-        switch (o->op_type) {
-        case OP_DBSTATE:
-            PL_curcop = ((COP*)o);		/* for warnings */
-            break;
-        case OP_NEXTSTATE:
-            PL_curcop = ((COP*)o);		/* for warnings */
+If the C<CALL_CHECKER_REQUIRE_GV> bit is set in C<gflags> then it
+indicates that the caller only knows about the genuine GV version of
+C<namegv>, and accordingly the corresponding bit will always be set in
+C<*ckflags_p>, regardless of the check function's recorded requirements.
+If the C<CALL_CHECKER_REQUIRE_GV> bit is clear in C<gflags> then it
+indicates the caller knows about the possibility of passing something
+other than a GV as C<namegv>, and accordingly the corresponding bit may
+be either set or clear in C<*ckflags_p>, indicating the check function's
+recorded requirements.
 
-            /* Optimise a "return ..." at the end of a sub to just be "...".
-             * This saves 2 ops. Before:
-             * 1  <;> nextstate(main 1 -e:1) v ->2
-             * 4  <@> return K ->5
-             * 2    <0> pushmark s ->3
-             * -    <1> ex-rv2sv sK/1 ->4
-             * 3      <#> gvsv[*cat] s ->4
-             *
-             * After:
-             * -  <@> return K ->-
-             * -    <0> pushmark s ->2
-             * -    <1> ex-rv2sv sK/1 ->-
-             * 2      <$> gvsv(*cat) s ->3
-             */
-            {
-                OP *next = o->op_next;
-                OP *sibling = OpSIBLING(o);
-                if (   OP_TYPE_IS(next, OP_PUSHMARK)
-                    && OP_TYPE_IS(sibling, OP_RETURN)
-                    && OP_TYPE_IS(sibling->op_next, OP_LINESEQ)
-                    && ( OP_TYPE_IS(sibling->op_next->op_next, OP_LEAVESUB)
-                       ||OP_TYPE_IS(sibling->op_next->op_next,
-                                    OP_LEAVESUBLV))
-                    && cUNOPx(sibling)->op_first == next
-                    && OpHAS_SIBLING(next) && OpSIBLING(next)->op_next
-                    && next->op_next
-                ) {
-                    /* Look through the PUSHMARK's siblings for one that
-                     * points to the RETURN */
-                    OP *top = OpSIBLING(next);
-                    while (top && top->op_next) {
-                        if (top->op_next == sibling) {
-                            top->op_next = sibling->op_next;
-                            o->op_next = next->op_next;
-                            break;
-                        }
-                        top = OpSIBLING(top);
-                    }
-                }
-            }
+C<gflags> is a bitset passed into C<cv_get_call_checker_flags>, in which
+only the C<CALL_CHECKER_REQUIRE_GV> bit currently has a defined meaning
+(for which see above).  All other bits should be clear.
 
-            /* Optimise 'my $x; my $y;' into 'my ($x, $y);'
-             *
-             * This latter form is then suitable for conversion into padrange
-             * later on. Convert:
-             *
-             *   nextstate1 -> padop1 -> nextstate2 -> padop2 -> nextstate3
-             *
-             * into:
-             *
-             *   nextstate1 ->     listop     -> nextstate3
-             *                 /            \
-             *         pushmark -> padop1 -> padop2
-             */
-            if (o->op_next && (
-                    o->op_next->op_type == OP_PADSV
-                 || o->op_next->op_type == OP_PADAV
-                 || o->op_next->op_type == OP_PADHV
-                )
-                && !(o->op_next->op_private & ~OPpLVAL_INTRO)
-                && o->op_next->op_next && o->op_next->op_next->op_type == OP_NEXTSTATE
-                && o->op_next->op_next->op_next && (
-                    o->op_next->op_next->op_next->op_type == OP_PADSV
-                 || o->op_next->op_next->op_next->op_type == OP_PADAV
-                 || o->op_next->op_next->op_next->op_type == OP_PADHV
-                )
-                && !(o->op_next->op_next->op_next->op_private & ~OPpLVAL_INTRO)
-                && o->op_next->op_next->op_next->op_next && o->op_next->op_next->op_next->op_next->op_type == OP_NEXTSTATE
-                && (!CopLABEL((COP*)o)) /* Don't mess with labels */
-                && (!CopLABEL((COP*)o->op_next->op_next)) /* ... */
-            ) {
-                OP *pad1, *ns2, *pad2, *ns3, *newop, *newpm;
+=for apidoc Amnh||CALL_CHECKER_REQUIRE_GV
 
-                pad1 =    o->op_next;
-                ns2  = pad1->op_next;
-                pad2 =  ns2->op_next;
-                ns3  = pad2->op_next;
-
-                /* we assume here that the op_next chain is the same as
-                 * the op_sibling chain */
-                assert(OpSIBLING(o)    == pad1);
-                assert(OpSIBLING(pad1) == ns2);
-                assert(OpSIBLING(ns2)  == pad2);
-                assert(OpSIBLING(pad2) == ns3);
-
-                /* excise and delete ns2 */
-                op_sibling_splice(NULL, pad1, 1, NULL);
-                op_free(ns2);
-
-                /* excise pad1 and pad2 */
-                op_sibling_splice(NULL, o, 2, NULL);
-
-                /* create new listop, with children consisting of:
-                 * a new pushmark, pad1, pad2. */
-                newop = newLISTOP(OP_LIST, 0, pad1, pad2);
-                newop->op_flags |= OPf_PARENS;
-                newop->op_flags = (newop->op_flags & ~OPf_WANT) | OPf_WANT_VOID;
-
-                /* insert newop between o and ns3 */
-                op_sibling_splice(NULL, o, 0, newop);
-
-                /*fixup op_next chain */
-                newpm = cUNOPx(newop)->op_first; /* pushmark */
-                o    ->op_next = newpm;
-                newpm->op_next = pad1;
-                pad1 ->op_next = pad2;
-                pad2 ->op_next = newop; /* listop */
-                newop->op_next = ns3;
-
-                /* Ensure pushmark has this flag if padops do */
-                if (pad1->op_flags & OPf_MOD && pad2->op_flags & OPf_MOD) {
-                    newpm->op_flags |= OPf_MOD;
-                }
+=for apidoc cv_get_call_checker
 
-                break;
-            }
+The original form of L</cv_get_call_checker_flags>, which does not return
+checker flags.  When using a checker function returned by this function,
+it is only safe to call it with a genuine GV as its C<namegv> argument.
 
-            /* Two NEXTSTATEs in a row serve no purpose. Except if they happen
-               to carry two labels. For now, take the easier option, and skip
-               this optimisation if the first NEXTSTATE has a label.  */
-            if (!CopLABEL((COP*)o) && !PERLDB_NOOPT) {
-                OP *nextop = o->op_next;
-                while (nextop) {
-                    switch (nextop->op_type) {
-                        case OP_NULL:
-                        case OP_SCALAR:
-                        case OP_LINESEQ:
-                        case OP_SCOPE:
-                            nextop = nextop->op_next;
-                            continue;
-                    }
-                    break;
-                }
+=cut
+*/
 
-                if (nextop && (nextop->op_type == OP_NEXTSTATE)) {
-                    op_null(o);
-                    if (oldop)
-                        oldop->op_next = nextop;
-                    o = nextop;
-                    /* Skip (old)oldop assignment since the current oldop's
-                       op_next already points to the next op.  */
-                    goto redo;
-                }
-            }
-            break;
+void
+Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags,
+        Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p)
+{
+    MAGIC *callmg;
+    PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS;
+    PERL_UNUSED_CONTEXT;
+    callmg = SvMAGICAL((SV*)cv) ? mg_find((SV*)cv, PERL_MAGIC_checkcall) : NULL;
+    if (callmg) {
+        *ckfun_p = DPTR2FPTR(Perl_call_checker, callmg->mg_ptr);
+        *ckobj_p = callmg->mg_obj;
+        *ckflags_p = (callmg->mg_flags | gflags) & MGf_REQUIRE_GV;
+    } else {
+        *ckfun_p = Perl_ck_entersub_args_proto_or_list;
+        *ckobj_p = (SV*)cv;
+        *ckflags_p = gflags & MGf_REQUIRE_GV;
+    }
+}
 
-        case OP_CONCAT:
-            if (o->op_next && o->op_next->op_type == OP_STRINGIFY) {
-                if (o->op_next->op_private & OPpTARGET_MY) {
-                    if (o->op_flags & OPf_STACKED) /* chained concats */
-                        break; /* ignore_optimization */
-                    else {
-                        /* assert(PL_opargs[o->op_type] & OA_TARGLEX); */
-                        o->op_targ = o->op_next->op_targ;
-                        o->op_next->op_targ = 0;
-                        o->op_private |= OPpTARGET_MY;
-                    }
-                }
-                op_null(o->op_next);
-            }
-            break;
-        case OP_STUB:
-            if ((o->op_flags & OPf_WANT) != OPf_WANT_LIST) {
-                break; /* Scalar stub must produce undef.  List stub is noop */
-            }
-            goto nothin;
-        case OP_NULL:
-            if (o->op_targ == OP_NEXTSTATE
-                || o->op_targ == OP_DBSTATE)
-            {
-                PL_curcop = ((COP*)o);
-            }
-            /* XXX: We avoid setting op_seq here to prevent later calls
-               to rpeep() from mistakenly concluding that optimisation
-               has already occurred. This doesn't fix the real problem,
-               though (See 20010220.007 (#5874)). AMS 20010719 */
-            /* op_seq functionality is now replaced by op_opt */
-            o->op_opt = 0;
-            /* FALLTHROUGH */
-        case OP_SCALAR:
-        case OP_LINESEQ:
-        case OP_SCOPE:
-        nothin:
-            if (oldop) {
-                oldop->op_next = o->op_next;
-                o->op_opt = 0;
-                continue;
-            }
-            break;
+void
+Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p)
+{
+    U32 ckflags;
+    PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER;
+    PERL_UNUSED_CONTEXT;
+    cv_get_call_checker_flags(cv, CALL_CHECKER_REQUIRE_GV, ckfun_p, ckobj_p,
+        &ckflags);
+}
 
-        case OP_PUSHMARK:
+/*
+=for apidoc cv_set_call_checker_flags
 
-            /* Given
-                 5 repeat/DOLIST
-                 3   ex-list
-                 1     pushmark
-                 2     scalar or const
-                 4   const[0]
-               convert repeat into a stub with no kids.
-             */
-            if (o->op_next->op_type == OP_CONST
-             || (  o->op_next->op_type == OP_PADSV
-                && !(o->op_next->op_private & OPpLVAL_INTRO))
-             || (  o->op_next->op_type == OP_GV
-                && o->op_next->op_next->op_type == OP_RV2SV
-                && !(o->op_next->op_next->op_private
-                        & (OPpLVAL_INTRO|OPpOUR_INTRO))))
-            {
-                const OP *kid = o->op_next->op_next;
-                if (o->op_next->op_type == OP_GV)
-                   kid = kid->op_next;
-                /* kid is now the ex-list.  */
-                if (kid->op_type == OP_NULL
-                 && (kid = kid->op_next)->op_type == OP_CONST
-                    /* kid is now the repeat count.  */
-                 && kid->op_next->op_type == OP_REPEAT
-                 && kid->op_next->op_private & OPpREPEAT_DOLIST
-                 && (kid->op_next->op_flags & OPf_WANT) == OPf_WANT_LIST
-                 && SvIOK(kSVOP_sv) && SvIVX(kSVOP_sv) == 0
-                 && oldop)
-                {
-                    o = kid->op_next; /* repeat */
-                    oldop->op_next = o;
-                    op_free(cBINOPo->op_first);
-                    op_free(cBINOPo->op_last );
-                    o->op_flags &=~ OPf_KIDS;
-                    /* stub is a baseop; repeat is a binop */
-                    STATIC_ASSERT_STMT(sizeof(OP) <= sizeof(BINOP));
-                    OpTYPE_set(o, OP_STUB);
-                    o->op_private = 0;
-                    break;
-                }
-            }
+Sets the function that will be used to fix up a call to C<cv>.
+Specifically, the function is applied to an C<entersub> op tree for a
+subroutine call, not marked with C<&>, where the callee can be identified
+at compile time as C<cv>.
 
-            /* Convert a series of PAD ops for my vars plus support into a
-             * single padrange op. Basically
-             *
-             *    pushmark -> pad[ahs]v -> pad[ahs]?v -> ... -> (list) -> rest
-             *
-             * becomes, depending on circumstances, one of
-             *
-             *    padrange  ----------------------------------> (list) -> rest
-             *    padrange  --------------------------------------------> rest
-             *
-             * where all the pad indexes are sequential and of the same type
-             * (INTRO or not).
-             * We convert the pushmark into a padrange op, then skip
-             * any other pad ops, and possibly some trailing ops.
-             * Note that we don't null() the skipped ops, to make it
-             * easier for Deparse to undo this optimisation (and none of
-             * the skipped ops are holding any resourses). It also makes
-             * it easier for find_uninit_var(), as it can just ignore
-             * padrange, and examine the original pad ops.
-             */
-        {
-            OP *p;
-            OP *followop = NULL; /* the op that will follow the padrange op */
-            U8 count = 0;
-            U8 intro = 0;
-            PADOFFSET base = 0; /* init only to stop compiler whining */
-            bool gvoid = 0;     /* init only to stop compiler whining */
-            bool defav = 0;  /* seen (...) = @_ */
-            bool reuse = 0;  /* reuse an existing padrange op */
+The C-level function pointer is supplied in C<ckfun>, an SV argument for
+it is supplied in C<ckobj>, and control flags are supplied in C<ckflags>.
+The function should be defined like this:
 
-            /* look for a pushmark -> gv[_] -> rv2av */
+    STATIC OP * ckfun(pTHX_ OP *op, GV *namegv, SV *ckobj)
 
-            {
-                OP *rv2av, *q;
-                p = o->op_next;
-                if (   p->op_type == OP_GV
-                    && cGVOPx_gv(p) == PL_defgv
-                    && (rv2av = p->op_next)
-                    && rv2av->op_type == OP_RV2AV
-                    && !(rv2av->op_flags & OPf_REF)
-                    && !(rv2av->op_private & (OPpLVAL_INTRO|OPpMAYBE_LVSUB))
-                    && ((rv2av->op_flags & OPf_WANT) == OPf_WANT_LIST)
-                ) {
-                    q = rv2av->op_next;
-                    if (q->op_type == OP_NULL)
-                        q = q->op_next;
-                    if (q->op_type == OP_PUSHMARK) {
-                        defav = 1;
-                        p = q;
-                    }
-                }
-            }
-            if (!defav) {
-                p = o;
-            }
+It is intended to be called in this manner:
 
-            /* scan for PAD ops */
+    entersubop = ckfun(aTHX_ entersubop, namegv, ckobj);
 
-            for (p = p->op_next; p; p = p->op_next) {
-                if (p->op_type == OP_NULL)
-                    continue;
+In this call, C<entersubop> is a pointer to the C<entersub> op,
+which may be replaced by the check function, and C<namegv> supplies
+the name that should be used by the check function to refer
+to the callee of the C<entersub> op if it needs to emit any diagnostics.
+It is permitted to apply the check function in non-standard situations,
+such as to a call to a different subroutine or to a method call.
 
-                if ((     p->op_type != OP_PADSV
-                       && p->op_type != OP_PADAV
-                       && p->op_type != OP_PADHV
-                    )
-                      /* any private flag other than INTRO? e.g. STATE */
-                   || (p->op_private & ~OPpLVAL_INTRO)
-                )
-                    break;
+C<namegv> may not actually be a GV.  For efficiency, perl may pass a
+CV or other SV instead.  Whatever is passed can be used as the first
+argument to L</cv_name>.  You can force perl to pass a GV by including
+C<CALL_CHECKER_REQUIRE_GV> in the C<ckflags>.
 
-                /* let $a[N] potentially be optimised into AELEMFAST_LEX
-                 * instead */
-                if (   p->op_type == OP_PADAV
-                    && p->op_next
-                    && p->op_next->op_type == OP_CONST
-                    && p->op_next->op_next
-                    && p->op_next->op_next->op_type == OP_AELEM
-                )
-                    break;
+C<ckflags> is a bitset, in which only the C<CALL_CHECKER_REQUIRE_GV>
+bit currently has a defined meaning (for which see above).  All other
+bits should be clear.
 
-                /* for 1st padop, note what type it is and the range
-                 * start; for the others, check that it's the same type
-                 * and that the targs are contiguous */
-                if (count == 0) {
-                    intro = (p->op_private & OPpLVAL_INTRO);
-                    base = p->op_targ;
-                    gvoid = OP_GIMME(p,0) == G_VOID;
-                }
-                else {
-                    if ((p->op_private & OPpLVAL_INTRO) != intro)
-                        break;
-                    /* Note that you'd normally  expect targs to be
-                     * contiguous in my($a,$b,$c), but that's not the case
-                     * when external modules start doing things, e.g.
-                     * Function::Parameters */
-                    if (p->op_targ != base + count)
-                        break;
-                    assert(p->op_targ == base + count);
-                    /* Either all the padops or none of the padops should
-                       be in void context.  Since we only do the optimisa-
-                       tion for av/hv when the aggregate itself is pushed
-                       on to the stack (one item), there is no need to dis-
-                       tinguish list from scalar context.  */
-                    if (gvoid != (OP_GIMME(p,0) == G_VOID))
-                        break;
-                }
+The current setting for a particular CV can be retrieved by
+L</cv_get_call_checker_flags>.
 
-                /* for AV, HV, only when we're not flattening */
-                if (   p->op_type != OP_PADSV
-                    && !gvoid
-                    && !(p->op_flags & OPf_REF)
-                )
-                    break;
+=for apidoc cv_set_call_checker
 
-                if (count >= OPpPADRANGE_COUNTMASK)
-                    break;
+The original form of L</cv_set_call_checker_flags>, which passes it the
+C<CALL_CHECKER_REQUIRE_GV> flag for backward-compatibility.  The effect
+of that flag setting is that the check function is guaranteed to get a
+genuine GV as its C<namegv> argument.
 
-                /* there's a biggest base we can fit into a
-                 * SAVEt_CLEARPADRANGE in pp_padrange.
-                 * (The sizeof() stuff will be constant-folded, and is
-                 * intended to avoid getting "comparison is always false"
-                 * compiler warnings. See the comments above
-                 * MEM_WRAP_CHECK for more explanation on why we do this
-                 * in a weird way to avoid compiler warnings.)
-                 */
-                if (   intro
-                    && (8*sizeof(base) >
-                        8*sizeof(UV)-OPpPADRANGE_COUNTSHIFT-SAVE_TIGHT_SHIFT
-                        ? (Size_t)base
-                        : (UV_MAX >> (OPpPADRANGE_COUNTSHIFT+SAVE_TIGHT_SHIFT))
-                        ) >
-                        (UV_MAX >> (OPpPADRANGE_COUNTSHIFT+SAVE_TIGHT_SHIFT))
-                )
-                    break;
+=cut
+*/
 
-                /* Success! We've got another valid pad op to optimise away */
-                count++;
-                followop = p->op_next;
-            }
+void
+Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj)
+{
+    PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER;
+    cv_set_call_checker_flags(cv, ckfun, ckobj, CALL_CHECKER_REQUIRE_GV);
+}
 
-            if (count < 1 || (count == 1 && !defav))
-                break;
+void
+Perl_cv_set_call_checker_flags(pTHX_ CV *cv, Perl_call_checker ckfun,
+                                     SV *ckobj, U32 ckflags)
+{
+    PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS;
+    if (ckfun == Perl_ck_entersub_args_proto_or_list && ckobj == (SV*)cv) {
+        if (SvMAGICAL((SV*)cv))
+            mg_free_type((SV*)cv, PERL_MAGIC_checkcall);
+    } else {
+        MAGIC *callmg;
+        sv_magic((SV*)cv, &PL_sv_undef, PERL_MAGIC_checkcall, NULL, 0);
+        callmg = mg_find((SV*)cv, PERL_MAGIC_checkcall);
+        assert(callmg);
+        if (callmg->mg_flags & MGf_REFCOUNTED) {
+            SvREFCNT_dec(callmg->mg_obj);
+            callmg->mg_flags &= ~MGf_REFCOUNTED;
+        }
+        callmg->mg_ptr = FPTR2DPTR(char *, ckfun);
+        callmg->mg_obj = ckobj;
+        if (ckobj != (SV*)cv) {
+            SvREFCNT_inc_simple_void_NN(ckobj);
+            callmg->mg_flags |= MGf_REFCOUNTED;
+        }
+        callmg->mg_flags = (callmg->mg_flags &~ MGf_REQUIRE_GV)
+                         | (U8)(ckflags & MGf_REQUIRE_GV) | MGf_COPY;
+    }
+}
 
-            /* pp_padrange in specifically compile-time void context
-             * skips pushing a mark and lexicals; in all other contexts
-             * (including unknown till runtime) it pushes a mark and the
-             * lexicals. We must be very careful then, that the ops we
-             * optimise away would have exactly the same effect as the
-             * padrange.
-             * In particular in void context, we can only optimise to
-             * a padrange if we see the complete sequence
-             *     pushmark, pad*v, ...., list
-             * which has the net effect of leaving the markstack as it
-             * was.  Not pushing onto the stack (whereas padsv does touch
-             * the stack) makes no difference in void context.
-             */
-            assert(followop);
-            if (gvoid) {
-                if (followop->op_type == OP_LIST
-                        && OP_GIMME(followop,0) == G_VOID
-                   )
-                {
-                    followop = followop->op_next; /* skip OP_LIST */
+static void
+S_entersub_alloc_targ(pTHX_ OP * const o)
+{
+    o->op_targ = pad_alloc(OP_ENTERSUB, SVs_PADTMP);
+    o->op_private |= OPpENTERSUB_HASTARG;
+}
 
-                    /* consolidate two successive my(...);'s */
+OP *
+Perl_ck_subr(pTHX_ OP *o)
+{
+    OP *aop, *cvop;
+    CV *cv;
+    GV *namegv;
+    SV **const_class = NULL;
 
-                    if (   oldoldop
-                        && oldoldop->op_type == OP_PADRANGE
-                        && (oldoldop->op_flags & OPf_WANT) == OPf_WANT_VOID
-                        && (oldoldop->op_private & OPpLVAL_INTRO) == intro
-                        && !(oldoldop->op_flags & OPf_SPECIAL)
-                    ) {
-                        U8 old_count;
-                        assert(oldoldop->op_next == oldop);
-                        assert(   oldop->op_type == OP_NEXTSTATE
-                               || oldop->op_type == OP_DBSTATE);
-                        assert(oldop->op_next == o);
-
-                        old_count
-                            = (oldoldop->op_private & OPpPADRANGE_COUNTMASK);
-
-                       /* Do not assume pad offsets for $c and $d are con-
-                          tiguous in
-                            my ($a,$b,$c);
-                            my ($d,$e,$f);
-                        */
-                        if (  oldoldop->op_targ + old_count == base
-                           && old_count < OPpPADRANGE_COUNTMASK - count) {
-                            base = oldoldop->op_targ;
-                            count += old_count;
-                            reuse = 1;
-                        }
-                    }
+    PERL_ARGS_ASSERT_CK_SUBR;
 
-                    /* if there's any immediately following singleton
-                     * my var's; then swallow them and the associated
-                     * nextstates; i.e.
-                     *    my ($a,$b); my $c; my $d;
-                     * is treated as
-                     *    my ($a,$b,$c,$d);
-                     */
+    aop = cUNOPx(o)->op_first;
+    if (!OpHAS_SIBLING(aop))
+        aop = cUNOPx(aop)->op_first;
+    aop = OpSIBLING(aop);
+    for (cvop = aop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ;
+    cv = rv2cv_op_cv(cvop, RV2CVOPCV_MARK_EARLY);
+    namegv = cv ? (GV*)rv2cv_op_cv(cvop, RV2CVOPCV_MAYBE_NAME_GV) : NULL;
 
-                    while (    ((p = followop->op_next))
-                            && (  p->op_type == OP_PADSV
-                               || p->op_type == OP_PADAV
-                               || p->op_type == OP_PADHV)
-                            && (p->op_flags & OPf_WANT) == OPf_WANT_VOID
-                            && (p->op_private & OPpLVAL_INTRO) == intro
-                            && !(p->op_private & ~OPpLVAL_INTRO)
-                            && p->op_next
-                            && (   p->op_next->op_type == OP_NEXTSTATE
-                                || p->op_next->op_type == OP_DBSTATE)
-                            && count < OPpPADRANGE_COUNTMASK
-                            && base + count == p->op_targ
-                    ) {
-                        count++;
-                        followop = p->op_next;
-                    }
-                }
-                else
-                    break;
+    o->op_private &= ~1;
+    o->op_private |= (PL_hints & HINT_STRICT_REFS);
+    if (PERLDB_SUB && PL_curstash != PL_debstash)
+        o->op_private |= OPpENTERSUB_DB;
+    switch (cvop->op_type) {
+        case OP_RV2CV:
+            o->op_private |= (cvop->op_private & OPpENTERSUB_AMPER);
+            op_null(cvop);
+            break;
+        case OP_METHOD:
+        case OP_METHOD_NAMED:
+        case OP_METHOD_SUPER:
+        case OP_METHOD_REDIR:
+        case OP_METHOD_REDIR_SUPER:
+            o->op_flags |= OPf_REF;
+            if (aop->op_type == OP_CONST) {
+                aop->op_private &= ~OPpCONST_STRICT;
+                const_class = &cSVOPx(aop)->op_sv;
             }
-
-            if (reuse) {
-                assert(oldoldop->op_type == OP_PADRANGE);
-                oldoldop->op_next = followop;
-                oldoldop->op_private = (intro | count);
-                o = oldoldop;
-                oldop = NULL;
-                oldoldop = NULL;
+            else if (aop->op_type == OP_LIST) {
+                OP * const sib = OpSIBLING(cUNOPx(aop)->op_first);
+                if (sib && sib->op_type == OP_CONST) {
+                    sib->op_private &= ~OPpCONST_STRICT;
+                    const_class = &cSVOPx(sib)->op_sv;
+                }
             }
-            else {
-                /* Convert the pushmark into a padrange.
-                 * To make Deparse easier, we guarantee that a padrange was
-                 * *always* formerly a pushmark */
-                assert(o->op_type == OP_PUSHMARK);
-                o->op_next = followop;
-                OpTYPE_set(o, OP_PADRANGE);
-                o->op_targ = base;
-                /* bit 7: INTRO; bit 6..0: count */
-                o->op_private = (intro | count);
-                o->op_flags = ((o->op_flags & ~(OPf_WANT|OPf_SPECIAL))
-                              | gvoid * OPf_WANT_VOID
-                              | (defav ? OPf_SPECIAL : 0));
+            /* make class name a shared cow string to speedup method calls */
+            /* constant string might be replaced with object, f.e. bigint */
+            if (const_class && SvPOK(*const_class)) {
+                STRLEN len;
+                const char* str = SvPV(*const_class, len);
+                if (len) {
+                    SV* const shared = newSVpvn_share(
+                        str, SvUTF8(*const_class)
+                                    ? -(SSize_t)len : (SSize_t)len,
+                        0
+                    );
+                    if (SvREADONLY(*const_class))
+                        SvREADONLY_on(shared);
+                    SvREFCNT_dec(*const_class);
+                    *const_class = shared;
+                }
             }
             break;
-        }
-
-        case OP_RV2AV:
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
-            break;
+    }
 
-        case OP_RV2HV:
-        case OP_PADHV:
-            /*'keys %h' in void or scalar context: skip the OP_KEYS
-             * and perform the functionality directly in the RV2HV/PADHV
-             * op
-             */
-            if (o->op_flags & OPf_REF) {
-                OP *k = o->op_next;
-                U8 want = (k->op_flags & OPf_WANT);
-                if (   k
-                    && k->op_type == OP_KEYS
-                    && (   want == OPf_WANT_VOID
-                        || want == OPf_WANT_SCALAR)
-                    && !(k->op_private & OPpMAYBE_LVSUB)
-                    && !(k->op_flags & OPf_MOD)
-                ) {
-                    o->op_next     = k->op_next;
-                    o->op_flags   &= ~(OPf_REF|OPf_WANT);
-                    o->op_flags   |= want;
-                    o->op_private |= (o->op_type == OP_PADHV ?
-                                      OPpPADHV_ISKEYS : OPpRV2HV_ISKEYS);
-                    /* for keys(%lex), hold onto the OP_KEYS's targ
-                     * since padhv doesn't have its own targ to return
-                     * an int with */
-                    if (!(o->op_type ==OP_PADHV && want == OPf_WANT_SCALAR))
-                        op_null(k);
-                }
+    if (!cv) {
+        S_entersub_alloc_targ(aTHX_ o);
+        return ck_entersub_args_list(o);
+    } else {
+        Perl_call_checker ckfun;
+        SV *ckobj;
+        U32 ckflags;
+        cv_get_call_checker_flags(cv, 0, &ckfun, &ckobj, &ckflags);
+        if (CvISXSUB(cv) || !CvROOT(cv))
+            S_entersub_alloc_targ(aTHX_ o);
+        if (!namegv) {
+            /* The original call checker API guarantees that a GV will
+               be provided with the right name.  So, if the old API was
+               used (or the REQUIRE_GV flag was passed), we have to reify
+               the CV’s GV, unless this is an anonymous sub.  This is not
+               ideal for lexical subs, as its stringification will include
+               the package.  But it is the best we can do.  */
+            if (ckflags & CALL_CHECKER_REQUIRE_GV) {
+                if (!CvANON(cv) && (!CvNAMED(cv) || CvNAME_HEK(cv)))
+                    namegv = CvGV(cv);
             }
+            else namegv = MUTABLE_GV(cv);
+            /* After a syntax error in a lexical sub, the cv that
+               rv2cv_op_cv returns may be a nameless stub. */
+            if (!namegv) return ck_entersub_args_list(o);
 
-            /* see if %h is used in boolean context */
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, OPpMAYBE_TRUEBOOL);
+        }
+        return ckfun(aTHX_ o, namegv, ckobj);
+    }
+}
 
+OP *
+Perl_ck_svconst(pTHX_ OP *o)
+{
+    SV * const sv = cSVOPo->op_sv;
+    PERL_ARGS_ASSERT_CK_SVCONST;
+    PERL_UNUSED_CONTEXT;
+#ifdef PERL_COPY_ON_WRITE
+    /* Since the read-only flag may be used to protect a string buffer, we
+       cannot do copy-on-write with existing read-only scalars that are not
+       already copy-on-write scalars.  To allow $_ = "hello" to do COW with
+       that constant, mark the constant as COWable here, if it is not
+       already read-only. */
+    if (!SvREADONLY(sv) && !SvIsCOW(sv) && SvCANCOW(sv)) {
+        SvIsCOW_on(sv);
+        CowREFCNT(sv) = 0;
+# ifdef PERL_DEBUG_READONLY_COW
+        sv_buf_to_ro(sv);
+# endif
+    }
+#endif
+    SvREADONLY_on(sv);
+    return o;
+}
 
-            if (o->op_type != OP_PADHV)
-                break;
-            /* FALLTHROUGH */
-        case OP_PADAV:
-            if (   o->op_type == OP_PADAV
-                && (o->op_flags & OPf_WANT) == OPf_WANT_SCALAR
-            )
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
-            /* FALLTHROUGH */
-        case OP_PADSV:
-            /* Skip over state($x) in void context.  */
-            if (oldop && o->op_private == (OPpPAD_STATE|OPpLVAL_INTRO)
-             && (o->op_flags & OPf_WANT) == OPf_WANT_VOID)
-            {
-                oldop->op_next = o->op_next;
-                goto redo_nextstate;
-            }
-            if (o->op_type != OP_PADAV)
-                break;
-            /* FALLTHROUGH */
-        case OP_GV:
-            if (o->op_type == OP_PADAV || o->op_next->op_type == OP_RV2AV) {
-                OP* const pop = (o->op_type == OP_PADAV) ?
-                            o->op_next : o->op_next->op_next;
-                IV i;
-                if (pop && pop->op_type == OP_CONST &&
-                    ((PL_op = pop->op_next)) &&
-                    pop->op_next->op_type == OP_AELEM &&
-                    !(pop->op_next->op_private &
-                      (OPpLVAL_INTRO|OPpLVAL_DEFER|OPpDEREF|OPpMAYBE_LVSUB)) &&
-                    (i = SvIV(((SVOP*)pop)->op_sv)) >= -128 && i <= 127)
-                {
-                    GV *gv;
-                    if (cSVOPx(pop)->op_private & OPpCONST_STRICT)
-                        no_bareword_allowed(pop);
-                    if (o->op_type == OP_GV)
-                        op_null(o->op_next);
-                    op_null(pop->op_next);
-                    op_null(pop);
-                    o->op_flags |= pop->op_next->op_flags & OPf_MOD;
-                    o->op_next = pop->op_next->op_next;
-                    o->op_ppaddr = PL_ppaddr[OP_AELEMFAST];
-                    o->op_private = (U8)i;
-                    if (o->op_type == OP_GV) {
-                        gv = cGVOPo_gv;
-                        GvAVn(gv);
-                        o->op_type = OP_AELEMFAST;
-                    }
-                    else
-                        o->op_type = OP_AELEMFAST_LEX;
-                }
-                if (o->op_type != OP_GV)
-                    break;
-            }
+OP *
+Perl_ck_trunc(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_TRUNC;
 
-            /* Remove $foo from the op_next chain in void context.  */
-            if (oldop
-             && (  o->op_next->op_type == OP_RV2SV
-                || o->op_next->op_type == OP_RV2AV
-                || o->op_next->op_type == OP_RV2HV  )
-             && (o->op_next->op_flags & OPf_WANT) == OPf_WANT_VOID
-             && !(o->op_next->op_private & OPpLVAL_INTRO))
-            {
-                oldop->op_next = o->op_next->op_next;
-                /* Reprocess the previous op if it is a nextstate, to
-                   allow double-nextstate optimisation.  */
-              redo_nextstate:
-                if (oldop->op_type == OP_NEXTSTATE) {
-                    oldop->op_opt = 0;
-                    o = oldop;
-                    oldop = oldoldop;
-                    oldoldop = NULL;
-                    goto redo;
-                }
-                o = oldop->op_next;
-                goto redo;
-            }
-            else if (o->op_next->op_type == OP_RV2SV) {
-                if (!(o->op_next->op_private & OPpDEREF)) {
-                    op_null(o->op_next);
-                    o->op_private |= o->op_next->op_private & (OPpLVAL_INTRO
-                                                               | OPpOUR_INTRO);
-                    o->op_next = o->op_next->op_next;
-                    OpTYPE_set(o, OP_GVSV);
-                }
-            }
-            else if (o->op_next->op_type == OP_READLINE
-                    && o->op_next->op_next->op_type == OP_CONCAT
-                    && (o->op_next->op_next->op_flags & OPf_STACKED))
-            {
-                /* Turn "$a .= <FH>" into an OP_RCATLINE. AMS 20010917 */
-                OpTYPE_set(o, OP_RCATLINE);
-                o->op_flags |= OPf_STACKED;
-                op_null(o->op_next->op_next);
-                op_null(o->op_next);
+    if (o->op_flags & OPf_KIDS) {
+        SVOP *kid = cSVOPx(cUNOPo->op_first);
+
+        if (kid->op_type == OP_NULL)
+            kid = cSVOPx(OpSIBLING(kid));
+        if (kid && kid->op_type == OP_CONST &&
+            (kid->op_private & OPpCONST_BARE) &&
+            !kid->op_folded)
+        {
+            o->op_flags |= OPf_SPECIAL;
+            kid->op_private &= ~OPpCONST_STRICT;
+            if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED) {
+                no_bareword_filehandle(SvPVX(cSVOPx_sv(kid)));
             }
+        }
+    }
+    return ck_fun(o);
+}
 
-            break;
+OP *
+Perl_ck_substr(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_SUBSTR;
 
-        case OP_NOT:
-            break;
+    o = ck_fun(o);
+    if ((o->op_flags & OPf_KIDS) && (o->op_private == 4)) {
+        OP *kid = cLISTOPo->op_first;
 
-        case OP_AND:
-        case OP_OR:
-        case OP_DOR:
-        case OP_CMPCHAIN_AND:
-        case OP_PUSHDEFER:
-            while (cLOGOP->op_other->op_type == OP_NULL)
-                cLOGOP->op_other = cLOGOP->op_other->op_next;
-            while (o->op_next && (   o->op_type == o->op_next->op_type
-                                  || o->op_next->op_type == OP_NULL))
-                o->op_next = o->op_next->op_next;
-
-            /* If we're an OR and our next is an AND in void context, we'll
-               follow its op_other on short circuit, same for reverse.
-               We can't do this with OP_DOR since if it's true, its return
-               value is the underlying value which must be evaluated
-               by the next op. */
-            if (o->op_next &&
-                (
-                    (IS_AND_OP(o) && IS_OR_OP(o->op_next))
-                 || (IS_OR_OP(o) && IS_AND_OP(o->op_next))
-                )
-                && (o->op_next->op_flags & OPf_WANT) == OPf_WANT_VOID
-            ) {
-                o->op_next = ((LOGOP*)o->op_next)->op_other;
-            }
-            DEFER(cLOGOP->op_other);
-            o->op_opt = 1;
-            break;
+        if (kid->op_type == OP_NULL)
+            kid = OpSIBLING(kid);
+        if (kid)
+            /* Historically, substr(delete $foo{bar},...) has been allowed
+               with 4-arg substr.  Keep it working by applying entersub
+               lvalue context.  */
+            op_lvalue(kid, OP_ENTERSUB);
 
-        case OP_GREPWHILE:
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
-            /* FALLTHROUGH */
-        case OP_COND_EXPR:
-        case OP_MAPWHILE:
-        case OP_ANDASSIGN:
-        case OP_ORASSIGN:
-        case OP_DORASSIGN:
-        case OP_RANGE:
-        case OP_ONCE:
-        case OP_ARGDEFELEM:
-            while (cLOGOP->op_other->op_type == OP_NULL)
-                cLOGOP->op_other = cLOGOP->op_other->op_next;
-            DEFER(cLOGOP->op_other);
-            break;
+    }
+    return o;
+}
 
-        case OP_ENTERLOOP:
-        case OP_ENTERITER:
-            while (cLOOP->op_redoop->op_type == OP_NULL)
-                cLOOP->op_redoop = cLOOP->op_redoop->op_next;
-            while (cLOOP->op_nextop->op_type == OP_NULL)
-                cLOOP->op_nextop = cLOOP->op_nextop->op_next;
-            while (cLOOP->op_lastop->op_type == OP_NULL)
-                cLOOP->op_lastop = cLOOP->op_lastop->op_next;
-            /* a while(1) loop doesn't have an op_next that escapes the
-             * loop, so we have to explicitly follow the op_lastop to
-             * process the rest of the code */
-            DEFER(cLOOP->op_lastop);
-            break;
+OP *
+Perl_ck_tell(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_TELL;
+    o = ck_fun(o);
+    if (o->op_flags & OPf_KIDS) {
+     OP *kid = cLISTOPo->op_first;
+     if (kid->op_type == OP_NULL && OpHAS_SIBLING(kid)) kid = OpSIBLING(kid);
+     if (kid->op_type == OP_RV2GV) kid->op_private |= OPpALLOW_FAKE;
+    }
+    return o;
+}
 
-        case OP_ENTERTRY:
-            assert(cLOGOPo->op_other->op_type == OP_LEAVETRY);
-            DEFER(cLOGOPo->op_other);
-            break;
+PERL_STATIC_INLINE OP *
+S_last_non_null_kid(OP *o) {
+    OP *last = NULL;
+    if (cUNOPo->op_flags & OPf_KIDS) {
+        OP *k = cLISTOPo->op_first;
+        while (k) {
+            if (k->op_type != OP_NULL) {
+                last = k;
+            }
+            k = OpSIBLING(k);
+        }
+    }
 
-        case OP_ENTERTRYCATCH:
-            assert(cLOGOPo->op_other->op_type == OP_CATCH);
-            /* catch body is the ->op_other of the OP_CATCH */
-            DEFER(cLOGOPx(cLOGOPo->op_other)->op_other);
-            break;
+    return last;
+}
 
-        case OP_SUBST:
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
-            assert(!(cPMOP->op_pmflags & PMf_ONCE));
-            while (cPMOP->op_pmstashstartu.op_pmreplstart &&
-                   cPMOP->op_pmstashstartu.op_pmreplstart->op_type == OP_NULL)
-                cPMOP->op_pmstashstartu.op_pmreplstart
-                    = cPMOP->op_pmstashstartu.op_pmreplstart->op_next;
-            DEFER(cPMOP->op_pmstashstartu.op_pmreplstart);
-            break;
+OP *
+Perl_ck_each(pTHX_ OP *o)
+{
+    OP *kid = o->op_flags & OPf_KIDS ? cUNOPo->op_first : NULL;
+    const unsigned orig_type  = o->op_type;
 
-        case OP_SORT: {
-            OP *oright;
+    PERL_ARGS_ASSERT_CK_EACH;
 
-            if (o->op_flags & OPf_SPECIAL) {
-                /* first arg is a code block */
-                OP * const nullop = OpSIBLING(cLISTOP->op_first);
-                OP * kid          = cUNOPx(nullop)->op_first;
-
-                assert(nullop->op_type == OP_NULL);
-                assert(kid->op_type == OP_SCOPE
-                 || (kid->op_type == OP_NULL && kid->op_targ == OP_LEAVE));
-                /* since OP_SORT doesn't have a handy op_other-style
-                 * field that can point directly to the start of the code
-                 * block, store it in the otherwise-unused op_next field
-                 * of the top-level OP_NULL. This will be quicker at
-                 * run-time, and it will also allow us to remove leading
-                 * OP_NULLs by just messing with op_nexts without
-                 * altering the basic op_first/op_sibling layout. */
-                kid = kLISTOP->op_first;
-                assert(
-                      (kid->op_type == OP_NULL
-                      && (  kid->op_targ == OP_NEXTSTATE
-                         || kid->op_targ == OP_DBSTATE  ))
-                    || kid->op_type == OP_STUB
-                    || kid->op_type == OP_ENTER
-                    || (PL_parser && PL_parser->error_count));
-                nullop->op_next = kid->op_next;
-                DEFER(nullop->op_next);
-            }
-
-            /* check that RHS of sort is a single plain array */
-            oright = cUNOPo->op_first;
-            if (!oright || oright->op_type != OP_PUSHMARK)
+    if (kid) {
+        switch (kid->op_type) {
+            case OP_PADHV:
                 break;
 
-            if (o->op_private & OPpSORT_INPLACE)
+            case OP_RV2HV:
+                /* Catch out an anonhash here, since the behaviour might be
+                 * confusing.
+                 *
+                 * The typical tree is:
+                 *
+                 *     rv2hv
+                 *         scope
+                 *             null
+                 *             anonhash
+                 *
+                 * If the contents of the block is more complex you might get:
+                 *
+                 *     rv2hv
+                 *         leave
+                 *             enter
+                 *             ...
+                 *             anonhash
+                 *
+                 * Similarly for the anonlist version below.
+                 */
+                if (orig_type == OP_EACH &&
+                    ckWARN(WARN_SYNTAX) &&
+                    (cUNOPx(kid)->op_flags & OPf_KIDS) &&
+                    ( cUNOPx(kid)->op_first->op_type == OP_SCOPE ||
+                      cUNOPx(kid)->op_first->op_type == OP_LEAVE) &&
+                    (cUNOPx(kid)->op_first->op_flags & OPf_KIDS)) {
+                    /* look for last non-null kid, since we might have:
+                       each %{ some code ; +{ anon hash } }
+                    */
+                    OP *k = S_last_non_null_kid(cUNOPx(kid)->op_first);
+                    if (k && k->op_type == OP_ANONHASH) {
+                        /* diag_listed_as: each on anonymous %s will always start from the beginning */
+                        Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "each on anonymous hash will always start from the beginning");
+                    }
+                }
                 break;
-
-            /* reverse sort ... can be optimised.  */
-            if (!OpHAS_SIBLING(cUNOPo)) {
-                /* Nothing follows us on the list. */
-                OP * const reverse = o->op_next;
-
-                if (reverse->op_type == OP_REVERSE &&
-                    (reverse->op_flags & OPf_WANT) == OPf_WANT_LIST) {
-                    OP * const pushmark = cUNOPx(reverse)->op_first;
-                    if (pushmark && (pushmark->op_type == OP_PUSHMARK)
-                        && (OpSIBLING(cUNOPx(pushmark)) == o)) {
-                        /* reverse -> pushmark -> sort */
-                        o->op_private |= OPpSORT_REVERSE;
-                        op_null(reverse);
-                        pushmark->op_next = oright->op_next;
-                        op_null(oright);
+            case OP_RV2AV:
+                if (orig_type == OP_EACH &&
+                    ckWARN(WARN_SYNTAX) &&
+                    (cUNOPx(kid)->op_flags & OPf_KIDS) &&
+                    (cUNOPx(kid)->op_first->op_type == OP_SCOPE ||
+                     cUNOPx(kid)->op_first->op_type == OP_LEAVE) &&
+                    (cUNOPx(kid)->op_first->op_flags & OPf_KIDS)) {
+                    OP *k = S_last_non_null_kid(cUNOPx(kid)->op_first);
+                    if (k && k->op_type == OP_ANONLIST) {
+                        /* diag_listed_as: each on anonymous %s will always start from the beginning */
+                        Perl_warner(aTHX_ packWARN(WARN_SYNTAX), "each on anonymous array will always start from the beginning");
                     }
                 }
-            }
+                /* FALLTHROUGH */
+            case OP_PADAV:
+                OpTYPE_set(o, orig_type == OP_EACH ? OP_AEACH
+                            : orig_type == OP_KEYS ? OP_AKEYS
+                            :                        OP_AVALUES);
+                break;
+            case OP_CONST:
+                if (kid->op_private == OPpCONST_BARE
+                 || !SvROK(cSVOPx_sv(kid))
+                 || (  SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVAV
+                    && SvTYPE(SvRV(cSVOPx_sv(kid))) != SVt_PVHV  )
+                   )
+                    goto bad;
+                /* FALLTHROUGH */
+            default:
+                qerror(Perl_mess(aTHX_
+                    "Experimental %s on scalar is now forbidden",
+                     PL_op_desc[orig_type]));
+               bad:
+                bad_type_pv(1, "hash or array", o, kid);
+                return o;
+        }
+    }
+    return ck_fun(o);
+}
 
-            break;
-        }
+OP *
+Perl_ck_length(pTHX_ OP *o)
+{
+    PERL_ARGS_ASSERT_CK_LENGTH;
 
-        case OP_REVERSE: {
-            OP *ourmark, *theirmark, *ourlast, *iter, *expushmark, *rv2av;
-            OP *gvop = NULL;
-            LISTOP *enter, *exlist;
+    o = ck_fun(o);
 
-            if (o->op_private & OPpSORT_INPLACE)
-                break;
+    if (ckWARN(WARN_SYNTAX)) {
+        const OP *kid = o->op_flags & OPf_KIDS ? cLISTOPo->op_first : NULL;
 
-            enter = (LISTOP *) o->op_next;
-            if (!enter)
-                break;
-            if (enter->op_type == OP_NULL) {
-                enter = (LISTOP *) enter->op_next;
-                if (!enter)
-                    break;
-            }
-            /* for $a (...) will have OP_GV then OP_RV2GV here.
-               for (...) just has an OP_GV.  */
-            if (enter->op_type == OP_GV) {
-                gvop = (OP *) enter;
-                enter = (LISTOP *) enter->op_next;
-                if (!enter)
-                    break;
-                if (enter->op_type == OP_RV2GV) {
-                  enter = (LISTOP *) enter->op_next;
-                  if (!enter)
+        if (kid) {
+            SV *name = NULL;
+            const bool hash = kid->op_type == OP_PADHV
+                           || kid->op_type == OP_RV2HV;
+            switch (kid->op_type) {
+                case OP_PADHV:
+                case OP_PADAV:
+                case OP_RV2HV:
+                case OP_RV2AV:
+                    name = op_varname(kid);
                     break;
-                }
+                default:
+                    return o;
             }
+            if (name)
+                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                    "length() used on %" SVf " (did you mean \"scalar(%s%" SVf
+                    ")\"?)",
+                    SVfARG(name), hash ? "keys " : "", SVfARG(name)
+                );
+            else if (hash)
+     /* diag_listed_as: length() used on %s (did you mean "scalar(%s)"?) */
+                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                    "length() used on %%hash (did you mean \"scalar(keys %%hash)\"?)");
+            else
+     /* diag_listed_as: length() used on %s (did you mean "scalar(%s)"?) */
+                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                    "length() used on @array (did you mean \"scalar(@array)\"?)");
+        }
+    }
 
-            if (enter->op_type != OP_ENTERITER)
-                break;
+    return o;
+}
 
-            iter = enter->op_next;
-            if (!iter || iter->op_type != OP_ITER)
-                break;
 
-            expushmark = enter->op_first;
-            if (!expushmark || expushmark->op_type != OP_NULL
-                || expushmark->op_targ != OP_PUSHMARK)
-                break;
+OP *
+Perl_ck_isa(pTHX_ OP *o)
+{
+    OP *classop = cBINOPo->op_last;
 
-            exlist = (LISTOP *) OpSIBLING(expushmark);
-            if (!exlist || exlist->op_type != OP_NULL
-                || exlist->op_targ != OP_LIST)
-                break;
+    PERL_ARGS_ASSERT_CK_ISA;
 
-            if (exlist->op_last != o) {
-                /* Mmm. Was expecting to point back to this op.  */
-                break;
-            }
-            theirmark = exlist->op_first;
-            if (!theirmark || theirmark->op_type != OP_PUSHMARK)
-                break;
+    /* Convert barename into PV */
+    if(classop->op_type == OP_CONST && classop->op_private & OPpCONST_BARE) {
+        /* TODO: Optionally convert package to raw HV here */
+        classop->op_private &= ~(OPpCONST_BARE|OPpCONST_STRICT);
+    }
 
-            if (OpSIBLING(theirmark) != o) {
-                /* There's something between the mark and the reverse, eg
-                   for (1, reverse (...))
-                   so no go.  */
-                break;
-            }
+    return o;
+}
 
-            ourmark = ((LISTOP *)o)->op_first;
-            if (!ourmark || ourmark->op_type != OP_PUSHMARK)
-                break;
 
-            ourlast = ((LISTOP *)o)->op_last;
-            if (!ourlast || ourlast->op_next != o)
-                break;
+/* Check for in place reverse and sort assignments like "@a = reverse @a"
+   and modify the optree to make them work inplace */
 
-            rv2av = OpSIBLING(ourmark);
-            if (rv2av && rv2av->op_type == OP_RV2AV && !OpHAS_SIBLING(rv2av)
-                && rv2av->op_flags == (OPf_WANT_LIST | OPf_KIDS)) {
-                /* We're just reversing a single array.  */
-                rv2av->op_flags = OPf_WANT_SCALAR | OPf_KIDS | OPf_REF;
-                enter->op_flags |= OPf_STACKED;
-            }
-
-            /* We don't have control over who points to theirmark, so sacrifice
-               ours.  */
-            theirmark->op_next = ourmark->op_next;
-            theirmark->op_flags = ourmark->op_flags;
-            ourlast->op_next = gvop ? gvop : (OP *) enter;
-            op_null(ourmark);
-            op_null(o);
-            enter->op_private |= OPpITER_REVERSED;
-            iter->op_private |= OPpITER_REVERSED;
-
-            oldoldop = NULL;
-            oldop    = ourlast;
-            o        = oldop->op_next;
-            goto redo;
-            NOT_REACHED; /* NOTREACHED */
-            break;
-        }
+STATIC void
+S_inplace_aassign(pTHX_ OP *o) {
 
-        case OP_QR:
-        case OP_MATCH:
-            if (!(cPMOP->op_pmflags & PMf_ONCE)) {
-                assert (!cPMOP->op_pmstashstartu.op_pmreplstart);
-            }
-            break;
+    OP *modop, *modop_pushmark;
+    OP *oright;
+    OP *oleft, *oleft_pushmark;
 
-        case OP_RUNCV:
-            if (!(o->op_private & OPpOFFBYONE) && !CvCLONE(PL_compcv)
-             && (!CvANON(PL_compcv) || (!PL_cv_has_eval && !PL_perldb)))
-            {
-                SV *sv;
-                if (CvEVAL(PL_compcv)) sv = &PL_sv_undef;
-                else {
-                    sv = newRV((SV *)PL_compcv);
-                    sv_rvweaken(sv);
-                    SvREADONLY_on(sv);
-                }
-                OpTYPE_set(o, OP_CONST);
-                o->op_flags |= OPf_SPECIAL;
-                cSVOPo->op_sv = sv;
-            }
-            break;
+    PERL_ARGS_ASSERT_INPLACE_AASSIGN;
 
-        case OP_SASSIGN:
-            if (OP_GIMME(o,0) == G_VOID
-             || (  o->op_next->op_type == OP_LINESEQ
-                && (  o->op_next->op_next->op_type == OP_LEAVESUB
-                   || (  o->op_next->op_next->op_type == OP_RETURN
-                      && !CvLVALUE(PL_compcv)))))
-            {
-                OP *right = cBINOP->op_first;
-                if (right) {
-                    /*   sassign
-                    *      RIGHT
-                    *      substr
-                    *         pushmark
-                    *         arg1
-                    *         arg2
-                    *         ...
-                    * becomes
-                    *
-                    *  ex-sassign
-                    *     substr
-                    *        pushmark
-                    *        RIGHT
-                    *        arg1
-                    *        arg2
-                    *        ...
-                    */
-                    OP *left = OpSIBLING(right);
-                    if (left->op_type == OP_SUBSTR
-                         && (left->op_private & 7) < 4) {
-                        op_null(o);
-                        /* cut out right */
-                        op_sibling_splice(o, NULL, 1, NULL);
-                        /* and insert it as second child of OP_SUBSTR */
-                        op_sibling_splice(left, cBINOPx(left)->op_first, 0,
-                                    right);
-                        left->op_private |= OPpSUBSTR_REPL_FIRST;
-                        left->op_flags =
-                            (o->op_flags & ~OPf_WANT) | OPf_WANT_VOID;
-                    }
-                }
-            }
-            break;
+    assert((o->op_flags & OPf_WANT) == OPf_WANT_VOID);
 
-        case OP_AASSIGN: {
-            int l, r, lr, lscalars, rscalars;
+    assert(cUNOPo->op_first->op_type == OP_NULL);
+    modop_pushmark = cUNOPx(cUNOPo->op_first)->op_first;
+    assert(modop_pushmark->op_type == OP_PUSHMARK);
+    modop = OpSIBLING(modop_pushmark);
 
-            /* handle common vars detection, e.g. ($a,$b) = ($b,$a).
-               Note that we do this now rather than in newASSIGNOP(),
-               since only by now are aliased lexicals flagged as such
-
-               See the essay "Common vars in list assignment" above for
-               the full details of the rationale behind all the conditions
-               below.
-
-               PL_generation sorcery:
-               To detect whether there are common vars, the global var
-               PL_generation is incremented for each assign op we scan.
-               Then we run through all the lexical variables on the LHS,
-               of the assignment, setting a spare slot in each of them to
-               PL_generation.  Then we scan the RHS, and if any lexicals
-               already have that value, we know we've got commonality.
-               Also, if the generation number is already set to
-               PERL_INT_MAX, then the variable is involved in aliasing, so
-               we also have potential commonality in that case.
-             */
+    if (modop->op_type != OP_SORT && modop->op_type != OP_REVERSE)
+        return;
 
-            PL_generation++;
-            /* scan LHS */
-            lscalars = 0;
-            l = S_aassign_scan(aTHX_ cLISTOPo->op_last,  FALSE, &lscalars);
-            /* scan RHS */
-            rscalars = 0;
-            r = S_aassign_scan(aTHX_ cLISTOPo->op_first, TRUE, &rscalars);
-            lr = (l|r);
-
-
-            /* After looking for things which are *always* safe, this main
-             * if/else chain selects primarily based on the type of the
-             * LHS, gradually working its way down from the more dangerous
-             * to the more restrictive and thus safer cases */
-
-            if (   !l                      /* () = ....; */
-                || !r                      /* .... = (); */
-                || !(l & ~AAS_SAFE_SCALAR) /* (undef, pos()) = ...; */
-                || !(r & ~AAS_SAFE_SCALAR) /* ... = (1,2,length,undef); */
-                || (lscalars < 2)          /* (undef, $x) = ... */
-            ) {
-                NOOP; /* always safe */
-            }
-            else if (l & AAS_DANGEROUS) {
-                /* always dangerous */
-                o->op_private |= OPpASSIGN_COMMON_SCALAR;
-                o->op_private |= OPpASSIGN_COMMON_AGG;
-            }
-            else if (l & (AAS_PKG_SCALAR|AAS_PKG_AGG)) {
-                /* package vars are always dangerous - too many
-                 * aliasing possibilities */
-                if (l & AAS_PKG_SCALAR)
-                    o->op_private |= OPpASSIGN_COMMON_SCALAR;
-                if (l & AAS_PKG_AGG)
-                    o->op_private |= OPpASSIGN_COMMON_AGG;
-            }
-            else if (l & ( AAS_MY_SCALAR|AAS_MY_AGG
-                          |AAS_LEX_SCALAR|AAS_LEX_AGG))
-            {
-                /* LHS contains only lexicals and safe ops */
+    /* no other operation except sort/reverse */
+    if (OpHAS_SIBLING(modop))
+        return;
 
-                if (l & (AAS_MY_AGG|AAS_LEX_AGG))
-                    o->op_private |= OPpASSIGN_COMMON_AGG;
+    assert(cUNOPx(modop)->op_first->op_type == OP_PUSHMARK);
+    if (!(oright = OpSIBLING(cUNOPx(modop)->op_first))) return;
 
-                if (l & (AAS_MY_SCALAR|AAS_LEX_SCALAR)) {
-                    if (lr & AAS_LEX_SCALAR_COMM)
-                        o->op_private |= OPpASSIGN_COMMON_SCALAR;
-                    else if (   !(l & AAS_LEX_SCALAR)
-                             && (r & AAS_DEFAV))
-                    {
-                        /* falsely mark
-                         *    my (...) = @_
-                         * as scalar-safe for performance reasons.
-                         * (it will still have been marked _AGG if necessary */
-                        NOOP;
-                    }
-                    else if (r  & (AAS_PKG_SCALAR|AAS_PKG_AGG|AAS_DANGEROUS))
-                        /* if there are only lexicals on the LHS and no
-                         * common ones on the RHS, then we assume that the
-                         * only way those lexicals could also get
-                         * on the RHS is via some sort of dereffing or
-                         * closure, e.g.
-                         *    $r = \$lex;
-                         *    ($lex, $x) = (1, $$r)
-                         * and in this case we assume the var must have
-                         *  a bumped ref count. So if its ref count is 1,
-                         *  it must only be on the LHS.
-                         */
-                        o->op_private |= OPpASSIGN_COMMON_RC1;
-                }
-            }
+    if (modop->op_flags & OPf_STACKED) {
+        /* skip sort subroutine/block */
+        assert(oright->op_type == OP_NULL);
+        oright = OpSIBLING(oright);
+    }
+
+    assert(OpSIBLING(cUNOPo->op_first)->op_type == OP_NULL);
+    oleft_pushmark = cUNOPx(OpSIBLING(cUNOPo->op_first))->op_first;
+    assert(oleft_pushmark->op_type == OP_PUSHMARK);
+    oleft = OpSIBLING(oleft_pushmark);
 
-            /* ... = ($x)
-             * may have to handle aggregate on LHS, but we can't
-             * have common scalars. */
-            if (rscalars < 2)
-                o->op_private &=
-                        ~(OPpASSIGN_COMMON_SCALAR|OPpASSIGN_COMMON_RC1);
+    /* Check the lhs is an array */
+    if (!oleft ||
+        (oleft->op_type != OP_RV2AV && oleft->op_type != OP_PADAV)
+        || OpHAS_SIBLING(oleft)
+        || (oleft->op_private & OPpLVAL_INTRO)
+    )
+        return;
 
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpASSIGN_TRUEBOOL, 0);
-            break;
-        }
+    /* Only one thing on the rhs */
+    if (OpHAS_SIBLING(oright))
+        return;
 
-        case OP_REF:
-        case OP_BLESSED:
-            /* if the op is used in boolean context, set the TRUEBOOL flag
-             * which enables an optimisation at runtime which avoids creating
-             * a stack temporary for known-true package names */
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, OPpMAYBE_TRUEBOOL);
-            break;
+    /* check the array is the same on both sides */
+    if (oleft->op_type == OP_RV2AV) {
+        if (oright->op_type != OP_RV2AV
+            || !cUNOPx(oright)->op_first
+            || cUNOPx(oright)->op_first->op_type != OP_GV
+            || cUNOPx(oleft )->op_first->op_type != OP_GV
+            || cGVOPx_gv(cUNOPx(oleft)->op_first) !=
+               cGVOPx_gv(cUNOPx(oright)->op_first)
+        )
+            return;
+    }
+    else if (oright->op_type != OP_PADAV
+        || oright->op_targ != oleft->op_targ
+    )
+        return;
 
-        case OP_LENGTH:
-            /* see if the op is used in known boolean context,
-             * but not if OA_TARGLEX optimisation is enabled */
-            if (   (o->op_flags & OPf_WANT) == OPf_WANT_SCALAR
-                && !(o->op_private & OPpTARGET_MY)
-            )
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
-            break;
+    /* This actually is an inplace assignment */
 
-        case OP_POS:
-            /* see if the op is used in known boolean context */
-            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
-                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
-            break;
+    modop->op_private |= OPpSORT_INPLACE;
 
-        case OP_CUSTOM: {
-            Perl_cpeep_t cpeep =
-                XopENTRYCUSTOM(o, xop_peep);
-            if (cpeep)
-                cpeep(aTHX_ o, oldop);
-            break;
-        }
+    /* transfer MODishness etc from LHS arg to RHS arg */
+    oright->op_flags = oleft->op_flags;
 
-        }
-        /* did we just null the current op? If so, re-process it to handle
-         * eliding "empty" ops from the chain */
-        if (o->op_type == OP_NULL && oldop && oldop->op_next == o) {
-            o->op_opt = 0;
-            o = oldop;
-        }
-        else {
-            oldoldop = oldop;
-            oldop = o;
-        }
-    }
-    LEAVE;
+    /* remove the aassign op and the lhs */
+    op_null(o);
+    op_null(oleft_pushmark);
+    if (oleft->op_type == OP_RV2AV && cUNOPx(oleft)->op_first)
+        op_null(cUNOPx(oleft)->op_first);
+    op_null(oleft);
 }
 
-void
-Perl_peep(pTHX_ OP *o)
-{
-    CALL_RPEEP(o);
-}
 
 /*
 =for apidoc_section $custom
@@ -18890,8 +15390,8 @@ Perl_report_redefined_cv(pTHX_ const SV 
                                SV * const *new_const_svp)
 {
     const char *hvname;
-    bool is_const = !!CvCONST(old_cv);
-    SV *old_const_sv = is_const ? cv_const_sv(old_cv) : NULL;
+    bool is_const = cBOOL(CvCONST(old_cv));
+    SV *old_const_sv = is_const ? cv_const_sv_or_av(old_cv) : NULL;
 
     PERL_ARGS_ASSERT_REPORT_REDEFINED_CV;
 
@@ -18914,14 +15414,22 @@ Perl_report_redefined_cv(pTHX_ const SV 
         )
      || (is_const
          && ckWARN_d(WARN_REDEFINE)
-         && (!new_const_svp || sv_cmp(old_const_sv, *new_const_svp))
+         && (!new_const_svp ||
+             !*new_const_svp ||
+             !old_const_sv ||
+             SvTYPE(old_const_sv) == SVt_PVAV ||
+             SvTYPE(*new_const_svp) == SVt_PVAV ||
+             sv_cmp(old_const_sv, *new_const_svp))
         )
-    )
+        ) {
         Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
                           is_const
                             ? "Constant subroutine %" SVf " redefined"
-                            : "Subroutine %" SVf " redefined",
+                            : CvIsMETHOD(old_cv)
+                              ? "Method %" SVf " redefined"
+                              : "Subroutine %" SVf " redefined",
                           SVfARG(name));
+    }
 }
 
 /*
@@ -19048,20 +15556,155 @@ const_av_xsub(pTHX_ CV* cv)
  * This is the e implementation for the DUP_WARNINGS() macro
  */
 
-STRLEN*
-Perl_dup_warnings(pTHX_ STRLEN* warnings)
+char *
+Perl_dup_warnings(pTHX_ char* warnings)
 {
-    Size_t size;
-    STRLEN *new_warnings;
-
     if (warnings == NULL || specialWARN(warnings))
         return warnings;
 
-    size = sizeof(*warnings) + *warnings;
+    return rcpv_copy(warnings);
+}
+
+/*
+=for apidoc rcpv_new
+
+Create a new shared memory refcounted string with the requested size, and
+with the requested initialization and a refcount of 1. The actual space
+allocated will be 1 byte more than requested and rcpv_new() will ensure that
+the extra byte is a null regardless of any flags settings.
+
+If the RCPVf_NO_COPY flag is set then the pv argument will be
+ignored, otherwise the contents of the pv pointer will be copied into
+the new buffer or if it is NULL the function will do nothing and return NULL.
+
+If the RCPVf_USE_STRLEN flag is set then the len argument is ignored and
+recomputed using C<strlen(pv)>. It is an error to combine RCPVf_USE_STRLEN
+and RCPVf_NO_COPY at the same time.
+
+Under DEBUGGING rcpv_new() will assert() if it is asked to create a 0 length
+shared string unless the RCPVf_ALLOW_EMPTY flag is set.
+
+The return value from the function is suitable for passing into rcpv_copy() and
+rcpv_free(). To access the RCPV * from the returned value use the RCPVx() macro.
+The 'len' member of the RCPV struct stores the allocated length (including the
+extra byte), but the RCPV_LEN() macro returns the requested length (not
+including the extra byte).
+
+Note that rcpv_new() does NOT use a hash table or anything like that to
+dedupe inputs given the same text content. Each call with a non-null pv
+parameter will produce a distinct pointer with its own refcount regardless of
+the input content.
+
+=cut
+*/
+
+char *
+Perl_rcpv_new(pTHX_ const char *pv, STRLEN len, U32 flags) {
+    RCPV *rcpv;
+
+    PERL_ARGS_ASSERT_RCPV_NEW;
+
+    PERL_UNUSED_CONTEXT;
+
+    /* Musn't use both at the same time */
+    assert((flags & (RCPVf_NO_COPY|RCPVf_USE_STRLEN))!=
+                    (RCPVf_NO_COPY|RCPVf_USE_STRLEN));
+
+    if (!pv && (flags & RCPVf_NO_COPY) == 0)
+        return NULL;
+
+    if (flags & RCPVf_USE_STRLEN)
+        len = strlen(pv);
+
+    assert(len || (flags & RCPVf_ALLOW_EMPTY));
+
+    len++; /* add one for the null we will add to the end */
+
+    rcpv = (RCPV *)PerlMemShared_malloc(sizeof(struct rcpv) + len);
+    if (!rcpv)
+        croak_no_mem();
+
+    rcpv->len = len;    /* store length including null,
+                           RCPV_LEN() subtracts 1 to account for this */
+    rcpv->refcount = 1;
+
+    if ((flags & RCPVf_NO_COPY) == 0) {
+        (void)memcpy(rcpv->pv, pv, len-1);
+    }
+    rcpv->pv[len-1]= '\0'; /* the last byte should always be null */
+    return rcpv->pv;
+}
+
+/*
+=for apidoc rcpv_free
+
+refcount decrement a shared memory refcounted string, and when
+the refcount goes to 0 free it using perlmemshared_free().
+
+it is the callers responsibility to ensure that the pv is the
+result of a rcpv_new() call.
+
+Always returns NULL so it can be used like this:
+
+    thing = rcpv_free(thing);
+
+=cut
+*/
+
+char *
+Perl_rcpv_free(pTHX_ char *pv) {
+
+    PERL_ARGS_ASSERT_RCPV_FREE;
+
+    PERL_UNUSED_CONTEXT;
+
+    if (!pv)
+        return NULL;
+    RCPV *rcpv = RCPVx(pv);
+
+    assert(rcpv->refcount);
+    assert(rcpv->len);
+
+    OP_REFCNT_LOCK;
+    if (--rcpv->refcount == 0) {
+        rcpv->len = 0;
+        PerlMemShared_free(rcpv);
+    }
+    OP_REFCNT_UNLOCK;
+    return NULL;
+}
+
+/*
+=for apidoc rcpv_copy
+
+refcount increment a shared memory refcounted string, and when
+the refcount goes to 0 free it using PerlMemShared_free().
+
+It is the callers responsibility to ensure that the pv is the
+result of a rcpv_new() call.
+
+Returns the same pointer that was passed in.
+
+    new = rcpv_copy(pv);
+
+=cut
+*/
 
-    new_warnings = (STRLEN*)PerlMemShared_malloc(size);
-    Copy(warnings, new_warnings, size, char);
-    return new_warnings;
+
+char *
+Perl_rcpv_copy(pTHX_ char *pv) {
+
+    PERL_ARGS_ASSERT_RCPV_COPY;
+
+    PERL_UNUSED_CONTEXT;
+
+    if (!pv)
+        return NULL;
+    RCPV *rcpv = RCPVx(pv);
+    OP_REFCNT_LOCK;
+    rcpv->refcount++;
+    OP_REFCNT_UNLOCK;
+    return pv;
 }
 
 /*
Index: gnu/usr.bin/perl/op.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/op.h,v
diff -u -p -a -u -p -r1.23 op.h
--- gnu/usr.bin/perl/op.h	15 Feb 2023 01:36:13 -0000	1.23
+++ gnu/usr.bin/perl/op.h	21 Feb 2024 15:47:02 -0000
@@ -64,6 +64,14 @@ typedef PERL_BITFIELD16 Optype;
     U8		op_private;
 #endif
 
+#define OpTYPE_set(o,type)                      \
+    STMT_START {                                \
+        OP *o_ = (OP *)o;                       \
+        OPCODE type_ = type;                    \
+        o_->op_type = type_;                    \
+        o_->op_ppaddr = PL_ppaddr[type_];       \
+    } STMT_END
+
 /* If op_type:9 is changed to :10, also change cx_pusheval()
    Also, if the type of op_type is ever changed (e.g. to PERL_BITFIELD32)
    then all the other bit-fields before/after it should change their
@@ -153,6 +161,9 @@ Deprecated.  Use C<GIMME_V> instead.
                                 /*  On OP_DUMP, has no label */
                                 /*  On OP_UNSTACK, in a C-style for loop */
                                 /*  On OP_READLINE, it's for <<>>, not <> */
+                                /*  On OP_RETURN, module_true is in effect */
+                                /*  On OP_NEXT/OP_LAST/OP_REDO, there is no
+                                 *  loop label */
 /* There is no room in op_flags for this one, so it has its own bit-
    field member (op_folded) instead.  The flag is only used to tell
    op_convert_list to set op_folded.  */
@@ -248,8 +259,7 @@ struct methop {
     BASEOP
     union {
         /* op_u.op_first *must* be aligned the same as the op_first
-         * field of the other op types, and op_u.op_meth_sv *must*
-         * be aligned with op_sv */
+         * field of the other op types */
         OP* op_first;   /* optree for method name */
         SV* op_meth_sv; /* static method name */
     } op_u;
@@ -469,6 +479,7 @@ struct loop {
 #define cPVOP		cPVOPx(PL_op)
 #define cCOP		cCOPx(PL_op)
 #define cLOOP		cLOOPx(PL_op)
+#define cMETHOP         cMETHOPx(PL_op)
 
 #define cUNOPo		cUNOPx(o)
 #define cUNOP_AUXo	cUNOP_AUXx(o)
@@ -481,6 +492,7 @@ struct loop {
 #define cPVOPo		cPVOPx(o)
 #define cCOPo		cCOPx(o)
 #define cLOOPo		cLOOPx(o)
+#define cMETHOPo        cMETHOPx(o)
 
 #define kUNOP		cUNOPx(kid)
 #define kUNOP_AUX	cUNOP_AUXx(kid)
@@ -493,6 +505,7 @@ struct loop {
 #define kPVOP		cPVOPx(kid)
 #define kCOP		cCOPx(kid)
 #define kLOOP		cLOOPx(kid)
+#define kMETHOP         cMETHOPx(kid)
 
 
 typedef enum {
@@ -514,33 +527,40 @@ typedef enum {
 
 
 #ifdef USE_ITHREADS
-#  define	cGVOPx_gv(o)	((GV*)PAD_SVl(cPADOPx(o)->op_padix))
+#  define cGVOPx_gv(o)  ((GV*)PAD_SVl(cPADOPx(o)->op_padix))
 #  ifndef PERL_CORE
-#    define	IS_PADGV(v)	(v && isGV(v))
-#    define	IS_PADCONST(v) \
+#    define IS_PADGV(v) (v && isGV(v))
+#    define IS_PADCONST(v) \
         (v && (SvREADONLY(v) || (SvIsCOW(v) && !SvLEN(v))))
 #  endif
-#  define	cSVOPx_sv(v)	(cSVOPx(v)->op_sv \
+#  define cSVOPx_sv(v)  (cSVOPx(v)->op_sv \
                                  ? cSVOPx(v)->op_sv : PAD_SVl((v)->op_targ))
-#  define	cSVOPx_svp(v)	(cSVOPx(v)->op_sv \
+#  define cSVOPx_svp(v) (cSVOPx(v)->op_sv \
                                  ? &cSVOPx(v)->op_sv : &PAD_SVl((v)->op_targ))
-#  define	cMETHOPx_rclass(v) PAD_SVl(cMETHOPx(v)->op_rclass_targ)
+#  define       cMETHOPx_meth(v) (cMETHOPx(v)->op_u.op_meth_sv \
+                                  ? cMETHOPx(v)->op_u.op_meth_sv : PAD_SVl((v)->op_targ))
+#  define cMETHOPx_rclass(v) PAD_SVl(cMETHOPx(v)->op_rclass_targ)
 #else
-#  define	cGVOPx_gv(o)	((GV*)cSVOPx(o)->op_sv)
+#  define cGVOPx_gv(o)  ((GV*)cSVOPx(o)->op_sv)
 #  ifndef PERL_CORE
-#    define	IS_PADGV(v)	FALSE
-#    define	IS_PADCONST(v)	FALSE
+#    define IS_PADGV(v) FALSE
+#    define IS_PADCONST(v)      FALSE
 #  endif
-#  define	cSVOPx_sv(v)	(cSVOPx(v)->op_sv)
-#  define	cSVOPx_svp(v)	(&cSVOPx(v)->op_sv)
-#  define	cMETHOPx_rclass(v) (cMETHOPx(v)->op_rclass_sv)
+#  define cSVOPx_sv(v)  (cSVOPx(v)->op_sv)
+#  define cSVOPx_svp(v) (&cSVOPx(v)->op_sv)
+#  define       cMETHOPx_meth(v)   (cMETHOPx(v)->op_u.op_meth_sv)
+#  define cMETHOPx_rclass(v) (cMETHOPx(v)->op_rclass_sv)
 #endif
 
-#define	cMETHOPx_meth(v)	cSVOPx_sv(v)
+#define cMETHOP_meth            cMETHOPx_meth(PL_op)
+#define cMETHOP_rclass          cMETHOPx_rclass(PL_op)
 
-#define	cGVOP_gv		cGVOPx_gv(PL_op)
-#define	cGVOPo_gv		cGVOPx_gv(o)
-#define	kGVOP_gv		cGVOPx_gv(kid)
+#define cMETHOPo_meth           cMETHOPx_meth(o)
+#define cMETHOPo_rclass         cMETHOPx_rclass(o)
+
+#define cGVOP_gv                cGVOPx_gv(PL_op)
+#define cGVOPo_gv               cGVOPx_gv(o)
+#define kGVOP_gv                cGVOPx_gv(kid)
 #define cSVOP_sv		cSVOPx_sv(PL_op)
 #define cSVOPo_sv		cSVOPx_sv(o)
 #define kSVOP_sv		cSVOPx_sv(kid)
@@ -601,6 +621,7 @@ typedef enum {
  * The same mutex is used to protect the refcounts of the reg_trie_data
  * and reg_ac_data structures, which are shared between duplicated
  * regexes.
+ * The same mutex is used to protect the refcounts for RCPV objects.
  */
 
 #ifdef USE_ITHREADS
@@ -768,29 +789,29 @@ struct block_hooks {
 =for apidoc mx|U32|BhkFLAGS|BHK *hk
 Return the BHK's flags.
 
-=for apidoc mxu|void *|BhkENTRY|BHK *hk|which
+=for apidoc mxu|void *|BhkENTRY|BHK *hk|token which
 Return an entry from the BHK structure.  C<which> is a preprocessor token
 indicating which entry to return.  If the appropriate flag is not set
 this will return C<NULL>.  The type of the return value depends on which
 entry you ask for.
 
-=for apidoc Amxu|void|BhkENTRY_set|BHK *hk|which|void *ptr
+=for apidoc Amxu|void|BhkENTRY_set|BHK *hk|token which|void *ptr
 Set an entry in the BHK structure, and set the flags to indicate it is
 valid.  C<which> is a preprocessing token indicating which entry to set.
 The type of C<ptr> depends on the entry.
 
-=for apidoc Amxu|void|BhkDISABLE|BHK *hk|which
+=for apidoc Amxu|void|BhkDISABLE|BHK *hk|token which
 Temporarily disable an entry in this BHK structure, by clearing the
 appropriate flag.  C<which> is a preprocessor token indicating which
 entry to disable.
 
-=for apidoc Amxu|void|BhkENABLE|BHK *hk|which
+=for apidoc Amxu|void|BhkENABLE|BHK *hk|token which
 Re-enable an entry in this BHK structure, by setting the appropriate
 flag.  C<which> is a preprocessor token indicating which entry to enable.
 This will assert (under -DDEBUGGING) if the entry doesn't contain a valid
 pointer.
 
-=for apidoc mxu|void|CALL_BLOCK_HOOKS|which|arg
+=for apidoc mxu|void|CALL_BLOCK_HOOKS|token which|arg
 Call all the registered block hooks for type C<which>.  C<which> is a
 preprocessing token; the type of C<arg> depends on C<which>.
 
@@ -866,7 +887,7 @@ preprocessing token; the type of C<arg> 
 =for apidoc Am|U32|XopFLAGS|XOP *xop
 Return the XOP's flags.
 
-=for apidoc Am||XopENTRY|XOP *xop|which
+=for apidoc Amu||XopENTRY|XOP *xop|token which
 Return a member of the XOP structure.  C<which> is a cpp token
 indicating which entry to return.  If the member is not set
 this will return a default value.  The return type depends
@@ -874,21 +895,21 @@ on C<which>.  This macro evaluates its a
 once.  If you are using C<Perl_custom_op_xop> to retrieve a
 C<XOP *> from a C<OP *>, use the more efficient L</XopENTRYCUSTOM> instead.
 
-=for apidoc Am||XopENTRYCUSTOM|const OP *o|which
+=for apidoc Amu||XopENTRYCUSTOM|const OP *o|token which
 Exactly like C<XopENTRY(XopENTRY(Perl_custom_op_xop(aTHX_ o), which)> but more
 efficient.  The C<which> parameter is identical to L</XopENTRY>.
 
-=for apidoc Am|void|XopENTRY_set|XOP *xop|which|value
+=for apidoc Amu|void|XopENTRY_set|XOP *xop|token which|value
 Set a member of the XOP structure.  C<which> is a cpp token
 indicating which entry to set.  See L<perlguts/"Custom Operators">
 for details about the available members and how
 they are used.  This macro evaluates its argument
 more than once.
 
-=for apidoc Am|void|XopDISABLE|XOP *xop|which
+=for apidoc Amu|void|XopDISABLE|XOP *xop|token which
 Temporarily disable a member of the XOP, by clearing the appropriate flag.
 
-=for apidoc Am|void|XopENABLE|XOP *xop|which
+=for apidoc Amu|void|XopENABLE|XOP *xop|token which
 Reenable a member of the XOP which has been disabled.
 
 =cut
@@ -1148,6 +1169,8 @@ struct op_argcheck_aux {
     UV   opt_params; /* number of optional positional parameters */
     char slurpy;     /* presence of slurpy: may be '\0', '@' or '%' */
 };
+
+#define MI_INIT_WORKAROUND_PACK "Module::Install::DSL"
 
 
 /*
Index: gnu/usr.bin/perl/op_reg_common.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/op_reg_common.h,v
diff -u -p -a -u -p -r1.3 op_reg_common.h
--- gnu/usr.bin/perl/op_reg_common.h	15 Feb 2023 01:36:13 -0000	1.3
+++ gnu/usr.bin/perl/op_reg_common.h	21 Feb 2024 15:47:02 -0000
@@ -101,8 +101,20 @@ get_regex_charset(const U32 flags)
 
 /* Mask of the above bits.  These need to be transferred from op_pmflags to
  * re->extflags during compilation */
-#define RXf_PMf_COMPILETIME    (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_EXTENDED_MORE|RXf_PMf_KEEPCOPY|RXf_PMf_NOCAPTURE|RXf_PMf_CHARSET|RXf_PMf_STRICT)
-#define RXf_PMf_FLAGCOPYMASK   (RXf_PMf_COMPILETIME|RXf_PMf_SPLIT)
+#define RXf_PMf_COMPILETIME \
+    ( RXf_PMf_MULTILINE     \
+    | RXf_PMf_SINGLELINE    \
+    | RXf_PMf_FOLD          \
+    | RXf_PMf_EXTENDED      \
+    | RXf_PMf_EXTENDED_MORE \
+    | RXf_PMf_KEEPCOPY      \
+    | RXf_PMf_NOCAPTURE     \
+    | RXf_PMf_CHARSET       \
+    | RXf_PMf_STRICT )
+
+#define RXf_PMf_FLAGCOPYMASK    \
+    ( RXf_PMf_COMPILETIME       \
+    | RXf_PMf_SPLIT )
 
 /* Temporary to get Jenkins happy again
  * See thread starting at http://nntp.perl.org/group/perl.perl5.porters/220710
Index: gnu/usr.bin/perl/opcode.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/opcode.h,v
diff -u -p -a -u -p -r1.21 opcode.h
--- gnu/usr.bin/perl/opcode.h	15 Feb 2023 01:36:13 -0000	1.21
+++ gnu/usr.bin/perl/opcode.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    opcode.h
  *
@@ -145,10 +145,7 @@
 
 START_EXTERN_C
 
-#ifndef DOINIT
-EXTCONST char* const PL_op_name[];
-#else
-EXTCONST char* const PL_op_name[] = {
+EXTCONST char* const PL_op_name[] INIT({
 	"null",
 	"stub",
 	"scalar",
@@ -159,6 +156,7 @@ EXTCONST char* const PL_op_name[] = {
 	"gv",
 	"gelem",
 	"padsv",
+	"padsv_store",
 	"padav",
 	"padhv",
 	"padany",
@@ -287,6 +285,7 @@ EXTCONST char* const PL_op_name[] = {
 	"rv2av",
 	"aelemfast",
 	"aelemfast_lex",
+	"aelemfastlex_store",
 	"aelem",
 	"aslice",
 	"kvaslice",
@@ -311,6 +310,7 @@ EXTCONST char* const PL_op_name[] = {
 	"lslice",
 	"anonlist",
 	"anonhash",
+	"emptyavhv",
 	"splice",
 	"push",
 	"pop",
@@ -563,14 +563,14 @@ EXTCONST char* const PL_op_name[] = {
 	"reftype",
 	"ceil",
 	"floor",
+	"is_tainted",
+	"helemexistsor",
+	"methstart",
+	"initfield",
         "freed",
-};
-#endif
+});
 
-#ifndef DOINIT
-EXTCONST char* const PL_op_desc[];
-#else
-EXTCONST char* const PL_op_desc[] = {
+EXTCONST char* const PL_op_desc[] INIT({
 	"null operation",
 	"stub",
 	"scalar",
@@ -581,6 +581,7 @@ EXTCONST char* const PL_op_desc[] = {
 	"glob value",
 	"glob elem",
 	"private variable",
+	"padsv scalar assignment",
 	"private array",
 	"private hash",
 	"private value",
@@ -709,6 +710,7 @@ EXTCONST char* const PL_op_desc[] = {
 	"array dereference",
 	"constant array element",
 	"constant lexical array element",
+	"const lexical array element store",
 	"array element",
 	"array slice",
 	"index/value array slice",
@@ -733,6 +735,7 @@ EXTCONST char* const PL_op_desc[] = {
 	"list slice",
 	"anonymous array ([])",
 	"anonymous hash ({})",
+	"empty anon hash/array",
 	"splice",
 	"push",
 	"pop",
@@ -985,17 +988,19 @@ EXTCONST char* const PL_op_desc[] = {
 	"reftype",
 	"ceil",
 	"floor",
-        "freed op",
-};
-#endif
+	"is_tainted",
+	"hash element exists or",
+	"method start",
+	"initialise field",
+    "freed op",
+});
 
 END_EXTERN_C
 
 START_EXTERN_C
 
 EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
-#if defined(DOINIT)
-= {
+INIT({
 	Perl_pp_null,
 	Perl_pp_stub,
 	Perl_pp_scalar,	/* implemented by Perl_pp_null */
@@ -1006,6 +1011,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perl
 	Perl_pp_gv,
 	Perl_pp_gelem,
 	Perl_pp_padsv,
+	Perl_pp_padsv_store,
 	Perl_pp_padav,
 	Perl_pp_padhv,
 	Perl_pp_padany,	/* implemented by Perl_unimplemented_op */
@@ -1134,6 +1140,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perl
 	Perl_pp_rv2av,
 	Perl_pp_aelemfast,
 	Perl_pp_aelemfast_lex,	/* implemented by Perl_pp_aelemfast */
+	Perl_pp_aelemfastlex_store,
 	Perl_pp_aelem,
 	Perl_pp_aslice,
 	Perl_pp_kvaslice,
@@ -1158,6 +1165,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perl
 	Perl_pp_lslice,
 	Perl_pp_anonlist,
 	Perl_pp_anonhash,
+	Perl_pp_emptyavhv,
 	Perl_pp_splice,
 	Perl_pp_push,
 	Perl_pp_pop,	/* implemented by Perl_pp_shift */
@@ -1410,13 +1418,14 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perl
 	Perl_pp_reftype,
 	Perl_pp_ceil,
 	Perl_pp_floor,
-}
-#endif
-;
+	Perl_pp_is_tainted,
+	Perl_pp_helemexistsor,
+	Perl_pp_methstart,
+	Perl_pp_initfield,
+});
 
 EXT Perl_check_t PL_check[] /* or perlvars.h */
-#if defined(DOINIT)
-= {
+INIT({
 	Perl_ck_null,		/* null */
 	Perl_ck_null,		/* stub */
 	Perl_ck_fun,		/* scalar */
@@ -1427,6 +1436,7 @@ EXT Perl_check_t PL_check[] /* or perlva
 	Perl_ck_null,		/* gv */
 	Perl_ck_null,		/* gelem */
 	Perl_ck_null,		/* padsv */
+	Perl_ck_sassign,	/* padsv_store */
 	Perl_ck_null,		/* padav */
 	Perl_ck_null,		/* padhv */
 	Perl_ck_null,		/* padany */
@@ -1555,6 +1565,7 @@ EXT Perl_check_t PL_check[] /* or perlva
 	Perl_ck_rvconst,	/* rv2av */
 	Perl_ck_null,		/* aelemfast */
 	Perl_ck_null,		/* aelemfast_lex */
+	Perl_ck_null,		/* aelemfastlex_store */
 	Perl_ck_null,		/* aelem */
 	Perl_ck_null,		/* aslice */
 	Perl_ck_null,		/* kvaslice */
@@ -1579,6 +1590,7 @@ EXT Perl_check_t PL_check[] /* or perlva
 	Perl_ck_null,		/* lslice */
 	Perl_ck_fun,		/* anonlist */
 	Perl_ck_fun,		/* anonhash */
+	Perl_ck_fun,		/* emptyavhv */
 	Perl_ck_fun,		/* splice */
 	Perl_ck_fun,		/* push */
 	Perl_ck_shift,		/* pop */
@@ -1831,14 +1843,13 @@ EXT Perl_check_t PL_check[] /* or perlva
 	Perl_ck_null,		/* reftype */
 	Perl_ck_null,		/* ceil */
 	Perl_ck_null,		/* floor */
-}
-#endif
-;
+	Perl_ck_null,		/* is_tainted */
+	Perl_ck_helemexistsor,	/* helemexistsor */
+	Perl_ck_null,		/* methstart */
+	Perl_ck_null,		/* initfield */
+});
 
-#ifndef DOINIT
-EXTCONST U32 PL_opargs[];
-#else
-EXTCONST U32 PL_opargs[] = {
+EXTCONST U32 PL_opargs[] INIT({
 	0x00000000,	/* null */
 	0x00000000,	/* stub */
 	0x00001b04,	/* scalar */
@@ -1849,6 +1860,7 @@ EXTCONST U32 PL_opargs[] = {
 	0x00000644,	/* gv */
 	0x00011244,	/* gelem */
 	0x00000044,	/* padsv */
+	0x00011104,	/* padsv_store */
 	0x00000040,	/* padav */
 	0x00000040,	/* padhv */
 	0x00000040,	/* padany */
@@ -1977,6 +1989,7 @@ EXTCONST U32 PL_opargs[] = {
 	0x00000148,	/* rv2av */
 	0x00013644,	/* aelemfast */
 	0x00013040,	/* aelemfast_lex */
+	0x00013140,	/* aelemfastlex_store */
 	0x00013204,	/* aelem */
 	0x00023401,	/* aslice */
 	0x00023401,	/* kvaslice */
@@ -2001,6 +2014,7 @@ EXTCONST U32 PL_opargs[] = {
 	0x00224200,	/* lslice */
 	0x00002405,	/* anonlist */
 	0x00002405,	/* anonhash */
+	0x0000241c,	/* emptyavhv */
 	0x02993401,	/* splice */
 	0x0002341d,	/* push */
 	0x0000bb04,	/* pop */
@@ -2244,8 +2258,8 @@ EXTCONST U32 PL_opargs[] = {
 	0x00000400,	/* poptry */
 	0x00000300,	/* catch */
 	0x00000300,	/* pushdefer */
-	0x0000011e,	/* is_bool */
-	0x0000011e,	/* is_weak */
+	0x00000106,	/* is_bool */
+	0x00000106,	/* is_weak */
 	0x00000100,	/* weaken */
 	0x00000100,	/* unweaken */
 	0x00000106,	/* blessed */
@@ -2253,8 +2267,11 @@ EXTCONST U32 PL_opargs[] = {
 	0x0000011e,	/* reftype */
 	0x0000011e,	/* ceil */
 	0x0000011e,	/* floor */
-};
-#endif
+	0x00000106,	/* is_tainted */
+	0x00011300,	/* helemexistsor */
+	0x00000f00,	/* methstart */
+	0x00000f00,	/* initfield */
+});
 
 END_EXTERN_C
 
@@ -2274,6 +2291,7 @@ END_EXTERN_C
 #define OPpEVAL_HAS_HH          0x02
 #define OPpFT_ACCESS            0x02
 #define OPpHINT_STRICT_REFS     0x02
+#define OPpINITFIELD_AV         0x02
 #define OPpITER_REVERSED        0x02
 #define OPpSORT_INTEGER         0x02
 #define OPpTRANS_USE_SVOP       0x02
@@ -2286,6 +2304,7 @@ END_EXTERN_C
 #define OPpENTERSUB_HASTARG     0x04
 #define OPpEVAL_UNICODE         0x04
 #define OPpFT_STACKED           0x04
+#define OPpINITFIELD_HV         0x04
 #define OPpLVREF_ELEM           0x04
 #define OPpSLICEWARNING         0x04
 #define OPpSORT_REVERSE         0x04
@@ -2324,6 +2343,7 @@ END_EXTERN_C
 #define OPpASSIGN_COMMON_RC1    0x20
 #define OPpDEREF_HV             0x20
 #define OPpEARLY_CV             0x20
+#define OPpEMPTYAVHV_IS_HV      0x20
 #define OPpEVAL_RE_REPARSING    0x20
 #define OPpHUSH_VMSISH          0x20
 #define OPpKVSLICE              0x20
@@ -2334,17 +2354,20 @@ END_EXTERN_C
 #define OPpOPEN_IN_CRLF         0x20
 #define OPpTRANS_COMPLEMENT     0x20
 #define OPpTRUEBOOL             0x20
+#define OPpUNDEF_KEEP_PV        0x20
 #define OPpDEREF                0x30
 #define OPpDEREF_SV             0x30
 #define OPpLVREF_CV             0x30
 #define OPpLVREF_TYPE           0x30
 #define OPpALLOW_FAKE           0x40
+#define OPpARG_IF_FALSE         0x40
 #define OPpASSIGN_BACKWARDS     0x40
 #define OPpASSIGN_COMMON_SCALAR 0x40
 #define OPpCONCAT_NESTED        0x40
 #define OPpCONST_BARE           0x40
 #define OPpCOREARGS_SCALARMOD   0x40
 #define OPpENTERSUB_DB          0x40
+#define OPpEVAL_EVALSV          0x40
 #define OPpEXISTS_SUB           0x40
 #define OPpFLIP_LINENUM         0x40
 #define OPpINDEX_BOOLNEG        0x40
@@ -2359,10 +2382,13 @@ END_EXTERN_C
 #define OPpSLICE                0x40
 #define OPpTRANS_GROWS          0x40
 #define OPpPADRANGE_COUNTMASK   0x7f
+#define OPpARG_IF_UNDEF         0x80
 #define OPpASSIGN_CV_TO_GV      0x80
 #define OPpCOREARGS_PUSHMARK    0x80
 #define OPpDEFER_FINALLY        0x80
 #define OPpENTERSUB_NOPAREN     0x80
+#define OPpHELEMEXISTSOR_DELETE 0x80
+#define OPpINITFIELDS           0x80
 #define OPpLVALUE               0x80
 #define OPpLVAL_INTRO           0x80
 #define OPpOFFBYONE             0x80
@@ -2394,6 +2420,7 @@ EXTCONST char PL_op_private_labels[] = {
     '+','1','\0',
     '-','\0',
     'A','M','P','E','R','\0',
+    'A','N','O','N','H','A','S','H','\0',
     'A','P','P','E','N','D','\0',
     'A','S','S','I','G','N','\0',
     'A','V','\0',
@@ -2425,6 +2452,7 @@ EXTCONST char PL_op_private_labels[] = {
     'E','A','R','L','Y','C','V','\0',
     'E','L','E','M','\0',
     'E','N','T','E','R','E','D','\0',
+    'E','V','A','L','S','V','\0',
     'E','X','I','S','T','S','\0',
     'F','A','K','E','\0',
     'F','I','N','A','L','L','Y','\0',
@@ -2438,13 +2466,19 @@ EXTCONST char PL_op_private_labels[] = {
     'H','U','S','H','\0',
     'H','V','\0',
     'I','D','E','N','T','\0',
+    'I','F','_','F','A','L','S','E','\0',
+    'I','F','_','U','N','D','E','F','\0',
     'I','M','P','L','I','M','\0',
     'I','N','A','R','G','S','\0',
     'I','N','B','I','N','\0',
     'I','N','C','R','\0',
+    'I','N','I','T','F','I','E','L','D','S','\0',
+    'I','N','I','T','F','I','E','L','D','_','A','V','\0',
+    'I','N','I','T','F','I','E','L','D','_','H','V','\0',
     'I','N','P','L','A','C','E','\0',
     'I','N','T','\0',
     'I','T','E','R','\0',
+    'K','E','E','P','_','P','V','\0',
     'K','E','Y','S','\0',
     'K','V','S','L','I','C','E','\0',
     'L','E','X','\0',
@@ -2504,14 +2538,14 @@ EXTCONST char PL_op_private_labels[] = {
 EXTCONST I16 PL_op_private_bitfields[] = {
     0, 8, -1,
     0, 8, -1,
-    0, 596, -1,
+    0, 675, -1,
     0, 8, -1,
     0, 8, -1,
-    0, 603, -1,
-    0, 592, -1,
-    1, -1, 0, 553, 1, 30, 2, 303, -1,
-    4, -1, 1, 176, 2, 183, 3, 190, -1,
-    4, -1, 0, 553, 1, 30, 2, 303, 3, 122, -1,
+    0, 682, -1,
+    0, 671, -1,
+    1, -1, 0, 632, 1, 39, 2, 319, -1,
+    4, -1, 1, 185, 2, 192, 3, 199, -1,
+    4, -1, 0, 632, 1, 39, 2, 319, 3, 131, -1,
 
 };
 
@@ -2530,21 +2564,22 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
       11, /* gv */
       12, /* gelem */
       13, /* padsv */
-      16, /* padav */
-      21, /* padhv */
+      16, /* padsv_store */
+      19, /* padav */
+      24, /* padhv */
       -1, /* padany */
-      28, /* rv2gv */
-      35, /* rv2sv */
-      40, /* av2arylen */
-      42, /* rv2cv */
+      31, /* rv2gv */
+      38, /* rv2sv */
+      43, /* av2arylen */
+      45, /* rv2cv */
       -1, /* anoncode */
        0, /* prototype */
        0, /* refgen */
        0, /* srefgen */
-      49, /* ref */
-      52, /* bless */
-      53, /* backtick */
-      52, /* glob */
+      52, /* ref */
+      55, /* bless */
+      56, /* backtick */
+      55, /* glob */
        0, /* readline */
       -1, /* rcatline */
        0, /* regcmaybe */
@@ -2552,20 +2587,20 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
        0, /* regcomp */
       -1, /* match */
       -1, /* qr */
-      58, /* subst */
+      61, /* subst */
        0, /* substcont */
-      59, /* trans */
-      59, /* transr */
-      66, /* sassign */
-      69, /* aassign */
+      62, /* trans */
+      62, /* transr */
+      69, /* sassign */
+      72, /* aassign */
        0, /* chop */
        0, /* schop */
-      75, /* chomp */
-      75, /* schomp */
+      78, /* chomp */
+      78, /* schomp */
        0, /* defined */
-       0, /* undef */
+      80, /* undef */
        0, /* study */
-      77, /* pos */
+      85, /* pos */
        0, /* preinc */
        0, /* i_preinc */
        0, /* predec */
@@ -2574,23 +2609,23 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
        0, /* i_postinc */
        0, /* postdec */
        0, /* i_postdec */
-      80, /* pow */
-      80, /* multiply */
-      80, /* i_multiply */
-      80, /* divide */
-      80, /* i_divide */
-      80, /* modulo */
-      80, /* i_modulo */
-      82, /* repeat */
-      80, /* add */
-      80, /* i_add */
-      80, /* subtract */
-      80, /* i_subtract */
-      84, /* concat */
-      87, /* multiconcat */
-      93, /* stringify */
-      95, /* left_shift */
-      95, /* right_shift */
+      88, /* pow */
+      88, /* multiply */
+      88, /* i_multiply */
+      88, /* divide */
+      88, /* i_divide */
+      88, /* modulo */
+      88, /* i_modulo */
+      90, /* repeat */
+      88, /* add */
+      88, /* i_add */
+      88, /* subtract */
+      88, /* i_subtract */
+      92, /* concat */
+      95, /* multiconcat */
+     101, /* stringify */
+     103, /* left_shift */
+     103, /* right_shift */
       12, /* lt */
       12, /* i_lt */
       12, /* gt */
@@ -2612,126 +2647,128 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
       12, /* seq */
       12, /* sne */
       12, /* scmp */
-      97, /* bit_and */
-      97, /* bit_xor */
-      97, /* bit_or */
-      95, /* nbit_and */
-      95, /* nbit_xor */
-      95, /* nbit_or */
-      97, /* sbit_and */
-      97, /* sbit_xor */
-      97, /* sbit_or */
+     105, /* bit_and */
+     105, /* bit_xor */
+     105, /* bit_or */
+     103, /* nbit_and */
+     103, /* nbit_xor */
+     103, /* nbit_or */
+     105, /* sbit_and */
+     105, /* sbit_xor */
+     105, /* sbit_or */
        0, /* negate */
        0, /* i_negate */
        0, /* not */
-      97, /* complement */
-      95, /* ncomplement */
-      75, /* scomplement */
+     105, /* complement */
+     103, /* ncomplement */
+      78, /* scomplement */
       12, /* smartmatch */
-      93, /* atan2 */
-      75, /* sin */
-      75, /* cos */
-      93, /* rand */
-      93, /* srand */
-      75, /* exp */
-      75, /* log */
-      75, /* sqrt */
-      75, /* int */
-      75, /* hex */
-      75, /* oct */
-      75, /* abs */
-      98, /* length */
-     101, /* substr */
-     104, /* vec */
-     106, /* index */
-     106, /* rindex */
-      52, /* sprintf */
-      52, /* formline */
-      75, /* ord */
-      75, /* chr */
-      93, /* crypt */
+     101, /* atan2 */
+      78, /* sin */
+      78, /* cos */
+     101, /* rand */
+     101, /* srand */
+      78, /* exp */
+      78, /* log */
+      78, /* sqrt */
+      78, /* int */
+      78, /* hex */
+      78, /* oct */
+      78, /* abs */
+     106, /* length */
+     109, /* substr */
+     112, /* vec */
+     114, /* index */
+     114, /* rindex */
+      55, /* sprintf */
+      55, /* formline */
+      78, /* ord */
+      78, /* chr */
+     101, /* crypt */
        0, /* ucfirst */
        0, /* lcfirst */
        0, /* uc */
        0, /* lc */
        0, /* quotemeta */
-     110, /* rv2av */
-     117, /* aelemfast */
-     117, /* aelemfast_lex */
-     118, /* aelem */
-     123, /* aslice */
-     126, /* kvaslice */
+     118, /* rv2av */
+     125, /* aelemfast */
+     125, /* aelemfast_lex */
+     125, /* aelemfastlex_store */
+     126, /* aelem */
+     131, /* aslice */
+     134, /* kvaslice */
        0, /* aeach */
        0, /* avalues */
-      40, /* akeys */
+      43, /* akeys */
        0, /* each */
-      40, /* values */
-      40, /* keys */
-     127, /* delete */
-     131, /* exists */
-     133, /* rv2hv */
-     118, /* helem */
-     123, /* hslice */
-     126, /* kvhslice */
-     141, /* multideref */
-      52, /* unpack */
-      52, /* pack */
-     148, /* split */
-      52, /* join */
-     153, /* list */
+      43, /* values */
+      43, /* keys */
+     135, /* delete */
+     139, /* exists */
+     141, /* rv2hv */
+     126, /* helem */
+     131, /* hslice */
+     134, /* kvhslice */
+     149, /* multideref */
+      55, /* unpack */
+      55, /* pack */
+     156, /* split */
+      55, /* join */
+     161, /* list */
       12, /* lslice */
-      52, /* anonlist */
-      52, /* anonhash */
-      52, /* splice */
-      93, /* push */
+      55, /* anonlist */
+      55, /* anonhash */
+     163, /* emptyavhv */
+      55, /* splice */
+     101, /* push */
        0, /* pop */
        0, /* shift */
-      93, /* unshift */
-     155, /* sort */
-     160, /* reverse */
+     101, /* unshift */
+     168, /* sort */
+     173, /* reverse */
        0, /* grepstart */
-     162, /* grepwhile */
+     175, /* grepwhile */
        0, /* mapstart */
        0, /* mapwhile */
        0, /* range */
-     164, /* flip */
-     164, /* flop */
+     177, /* flip */
+     177, /* flop */
        0, /* and */
        0, /* or */
       12, /* xor */
        0, /* dor */
-     166, /* cond_expr */
+     179, /* cond_expr */
        0, /* andassign */
        0, /* orassign */
        0, /* dorassign */
-     168, /* entersub */
-     175, /* leavesub */
-     175, /* leavesublv */
+     181, /* entersub */
+     188, /* leavesub */
+     188, /* leavesublv */
        0, /* argcheck */
-     177, /* argelem */
-       0, /* argdefelem */
-     179, /* caller */
-      52, /* warn */
-      52, /* die */
-      52, /* reset */
+     190, /* argelem */
+     192, /* argdefelem */
+     195, /* caller */
+      55, /* warn */
+      55, /* die */
+      55, /* reset */
       -1, /* lineseq */
-     181, /* nextstate */
-     181, /* dbstate */
+     197, /* nextstate */
+     197, /* dbstate */
       -1, /* unstack */
       -1, /* enter */
-     182, /* leave */
+     198, /* leave */
       -1, /* scope */
-     184, /* enteriter */
-     188, /* iter */
+     200, /* enteriter */
+     204, /* iter */
       -1, /* enterloop */
-     189, /* leaveloop */
+     205, /* leaveloop */
       -1, /* return */
-     191, /* last */
-     191, /* next */
-     191, /* redo */
-     191, /* dump */
-     191, /* goto */
-      52, /* exit */
+     207, /* last */
+     207, /* next */
+     207, /* redo */
+     207, /* dump */
+     207, /* goto */
+      55, /* exit */
        0, /* method */
        0, /* method_named */
        0, /* method_super */
@@ -2743,143 +2780,143 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
        0, /* leavewhen */
       -1, /* break */
       -1, /* continue */
-     193, /* open */
-      52, /* close */
-      52, /* pipe_op */
-      52, /* fileno */
-      52, /* umask */
-      52, /* binmode */
-      52, /* tie */
+     209, /* open */
+      55, /* close */
+      55, /* pipe_op */
+      55, /* fileno */
+      55, /* umask */
+      55, /* binmode */
+      55, /* tie */
        0, /* untie */
        0, /* tied */
-      52, /* dbmopen */
+      55, /* dbmopen */
        0, /* dbmclose */
-      52, /* sselect */
-      52, /* select */
-      52, /* getc */
-      52, /* read */
-      52, /* enterwrite */
-     175, /* leavewrite */
+      55, /* sselect */
+      55, /* select */
+      55, /* getc */
+      55, /* read */
+      55, /* enterwrite */
+     188, /* leavewrite */
       -1, /* prtf */
       -1, /* print */
       -1, /* say */
-      52, /* sysopen */
-      52, /* sysseek */
-      52, /* sysread */
-      52, /* syswrite */
-      52, /* eof */
-      52, /* tell */
-      52, /* seek */
-      52, /* truncate */
-      52, /* fcntl */
-      52, /* ioctl */
-      93, /* flock */
-      52, /* send */
-      52, /* recv */
-      52, /* socket */
-      52, /* sockpair */
-      52, /* bind */
-      52, /* connect */
-      52, /* listen */
-      52, /* accept */
-      52, /* shutdown */
-      52, /* gsockopt */
-      52, /* ssockopt */
+      55, /* sysopen */
+      55, /* sysseek */
+      55, /* sysread */
+      55, /* syswrite */
+      55, /* eof */
+      55, /* tell */
+      55, /* seek */
+      55, /* truncate */
+      55, /* fcntl */
+      55, /* ioctl */
+     101, /* flock */
+      55, /* send */
+      55, /* recv */
+      55, /* socket */
+      55, /* sockpair */
+      55, /* bind */
+      55, /* connect */
+      55, /* listen */
+      55, /* accept */
+      55, /* shutdown */
+      55, /* gsockopt */
+      55, /* ssockopt */
        0, /* getsockname */
        0, /* getpeername */
        0, /* lstat */
        0, /* stat */
-     198, /* ftrread */
-     198, /* ftrwrite */
-     198, /* ftrexec */
-     198, /* fteread */
-     198, /* ftewrite */
-     198, /* fteexec */
-     203, /* ftis */
-     203, /* ftsize */
-     203, /* ftmtime */
-     203, /* ftatime */
-     203, /* ftctime */
-     203, /* ftrowned */
-     203, /* fteowned */
-     203, /* ftzero */
-     203, /* ftsock */
-     203, /* ftchr */
-     203, /* ftblk */
-     203, /* ftfile */
-     203, /* ftdir */
-     203, /* ftpipe */
-     203, /* ftsuid */
-     203, /* ftsgid */
-     203, /* ftsvtx */
-     203, /* ftlink */
-     203, /* fttty */
-     203, /* fttext */
-     203, /* ftbinary */
-      93, /* chdir */
-      93, /* chown */
-      75, /* chroot */
-      93, /* unlink */
-      93, /* chmod */
-      93, /* utime */
-      93, /* rename */
-      93, /* link */
-      93, /* symlink */
+     214, /* ftrread */
+     214, /* ftrwrite */
+     214, /* ftrexec */
+     214, /* fteread */
+     214, /* ftewrite */
+     214, /* fteexec */
+     219, /* ftis */
+     219, /* ftsize */
+     219, /* ftmtime */
+     219, /* ftatime */
+     219, /* ftctime */
+     219, /* ftrowned */
+     219, /* fteowned */
+     219, /* ftzero */
+     219, /* ftsock */
+     219, /* ftchr */
+     219, /* ftblk */
+     219, /* ftfile */
+     219, /* ftdir */
+     219, /* ftpipe */
+     219, /* ftsuid */
+     219, /* ftsgid */
+     219, /* ftsvtx */
+     219, /* ftlink */
+     219, /* fttty */
+     219, /* fttext */
+     219, /* ftbinary */
+     101, /* chdir */
+     101, /* chown */
+      78, /* chroot */
+     101, /* unlink */
+     101, /* chmod */
+     101, /* utime */
+     101, /* rename */
+     101, /* link */
+     101, /* symlink */
        0, /* readlink */
-      93, /* mkdir */
-      75, /* rmdir */
-      52, /* open_dir */
+     101, /* mkdir */
+      78, /* rmdir */
+      55, /* open_dir */
        0, /* readdir */
        0, /* telldir */
-      52, /* seekdir */
+      55, /* seekdir */
        0, /* rewinddir */
        0, /* closedir */
       -1, /* fork */
-     207, /* wait */
-      93, /* waitpid */
-      93, /* system */
-      93, /* exec */
-      93, /* kill */
-     207, /* getppid */
-      93, /* getpgrp */
-      93, /* setpgrp */
-      93, /* getpriority */
-      93, /* setpriority */
-     207, /* time */
+     223, /* wait */
+     101, /* waitpid */
+     101, /* system */
+     101, /* exec */
+     101, /* kill */
+     223, /* getppid */
+     101, /* getpgrp */
+     101, /* setpgrp */
+     101, /* getpriority */
+     101, /* setpriority */
+     223, /* time */
       -1, /* tms */
        0, /* localtime */
-      52, /* gmtime */
+      55, /* gmtime */
        0, /* alarm */
-      93, /* sleep */
-      52, /* shmget */
-      52, /* shmctl */
-      52, /* shmread */
-      52, /* shmwrite */
-      52, /* msgget */
-      52, /* msgctl */
-      52, /* msgsnd */
-      52, /* msgrcv */
-      52, /* semop */
-      52, /* semget */
-      52, /* semctl */
+     101, /* sleep */
+      55, /* shmget */
+      55, /* shmctl */
+      55, /* shmread */
+      55, /* shmwrite */
+      55, /* msgget */
+      55, /* msgctl */
+      55, /* msgsnd */
+      55, /* msgrcv */
+      55, /* semop */
+      55, /* semget */
+      55, /* semctl */
        0, /* require */
        0, /* dofile */
       -1, /* hintseval */
-     208, /* entereval */
-     175, /* leaveeval */
+     224, /* entereval */
+     188, /* leaveeval */
        0, /* entertry */
       -1, /* leavetry */
        0, /* ghbyname */
-      52, /* ghbyaddr */
+      55, /* ghbyaddr */
       -1, /* ghostent */
        0, /* gnbyname */
-      52, /* gnbyaddr */
+      55, /* gnbyaddr */
       -1, /* gnetent */
        0, /* gpbyname */
-      52, /* gpbynumber */
+      55, /* gpbynumber */
       -1, /* gprotoent */
-      52, /* gsbyname */
-      52, /* gsbyport */
+      55, /* gsbyname */
+      55, /* gsbyport */
       -1, /* gservent */
        0, /* shostent */
        0, /* snetent */
@@ -2900,22 +2937,22 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
       -1, /* sgrent */
       -1, /* egrent */
       -1, /* getlogin */
-      52, /* syscall */
+      55, /* syscall */
        0, /* lock */
        0, /* once */
       -1, /* custom */
-     214, /* coreargs */
-     218, /* avhvswitch */
+     231, /* coreargs */
+     235, /* avhvswitch */
        3, /* runcv */
        0, /* fc */
       -1, /* padcv */
       -1, /* introcv */
       -1, /* clonecv */
-     220, /* padrange */
-     222, /* refassign */
-     228, /* lvref */
-     234, /* lvrefslice */
-     235, /* lvavref */
+     237, /* padrange */
+     239, /* refassign */
+     245, /* lvref */
+     251, /* lvrefslice */
+      16, /* lvavref */
        0, /* anonconst */
       12, /* isa */
        0, /* cmpchain_and */
@@ -2924,16 +2961,20 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
       -1, /* leavetrycatch */
       -1, /* poptry */
        0, /* catch */
-     238, /* pushdefer */
-      75, /* is_bool */
-      75, /* is_weak */
+     252, /* pushdefer */
+       0, /* is_bool */
+       0, /* is_weak */
        0, /* weaken */
        0, /* unweaken */
-      49, /* blessed */
-      75, /* refaddr */
-      75, /* reftype */
-      75, /* ceil */
-      75, /* floor */
+      52, /* blessed */
+      78, /* refaddr */
+      78, /* reftype */
+      78, /* ceil */
+      78, /* floor */
+       0, /* is_tainted */
+     254, /* helemexistsor */
+     256, /* methstart */
+     258, /* initfield */
 
 };
 
@@ -2952,79 +2993,85 @@ EXTCONST I16  PL_op_private_bitdef_ix[] 
  */
 
 EXTCONST U16  PL_op_private_bitdefs[] = {
-    0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, argdefelem, method, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst, cmpchain_and, cmpchain_dup, entertrycatch, catch, weaken, unweaken */
-    0x30dc, 0x41d9, /* pushmark */
+    0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, method, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst, cmpchain_and, cmpchain_dup, entertrycatch, catch, is_bool, is_weak, weaken, unweaken, is_tainted */
+    0x3abc, 0x4bb9, /* pushmark */
     0x00bd, /* wantarray, runcv */
-    0x0438, 0x1a50, 0x428c, 0x3e28, 0x3605, /* const */
-    0x30dc, 0x3759, /* gvsv */
-    0x18b5, /* gv */
+    0x0558, 0x1b70, 0x4c6c, 0x4808, 0x3fe5, /* const */
+    0x3abc, 0x4139, /* gvsv */
+    0x19d5, /* gv */
     0x0067, /* gelem, lt, i_lt, gt, i_gt, le, i_le, ge, i_ge, eq, i_eq, ne, i_ne, ncmp, i_ncmp, slt, sgt, sle, sge, seq, sne, scmp, smartmatch, lslice, xor, isa */
-    0x30dc, 0x41d8, 0x03d7, /* padsv */
-    0x30dc, 0x41d8, 0x05b4, 0x31cc, 0x3fa9, /* padav */
-    0x30dc, 0x41d8, 0x05b4, 0x0650, 0x31cc, 0x3fa8, 0x2c41, /* padhv */
-    0x30dc, 0x1c38, 0x03d6, 0x31cc, 0x3528, 0x4284, 0x0003, /* rv2gv */
-    0x30dc, 0x3758, 0x03d6, 0x4284, 0x0003, /* rv2sv */
-    0x31cc, 0x0003, /* av2arylen, akeys, values, keys */
-    0x349c, 0x1078, 0x0dd4, 0x014c, 0x4588, 0x4284, 0x0003, /* rv2cv */
-    0x05b4, 0x0650, 0x0003, /* ref, blessed */
+    0x3abc, 0x4bb8, 0x03d7, /* padsv */
+    0x3abc, 0x4bb8, 0x0003, /* padsv_store, lvavref */
+    0x3abc, 0x4bb8, 0x06d4, 0x3bac, 0x4989, /* padav */
+    0x3abc, 0x4bb8, 0x06d4, 0x0770, 0x3bac, 0x4988, 0x3621, /* padhv */
+    0x3abc, 0x1e38, 0x03d6, 0x3bac, 0x3f08, 0x4c64, 0x0003, /* rv2gv */
+    0x3abc, 0x4138, 0x03d6, 0x4c64, 0x0003, /* rv2sv */
+    0x3bac, 0x0003, /* av2arylen, akeys, values, keys */
+    0x3e7c, 0x1198, 0x0ef4, 0x014c, 0x4f68, 0x4c64, 0x0003, /* rv2cv */
+    0x06d4, 0x0770, 0x0003, /* ref, blessed */
     0x018f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */
-    0x393c, 0x3858, 0x2994, 0x28d0, 0x0003, /* backtick */
-    0x05b5, /* subst */
-    0x117c, 0x22b8, 0x09b4, 0x40ec, 0x2648, 0x4864, 0x07c1, /* trans, transr */
-    0x0fbc, 0x04d8, 0x0067, /* sassign */
-    0x0c78, 0x0b74, 0x0a70, 0x31cc, 0x05a8, 0x0067, /* aassign */
-    0x4630, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, is_bool, is_weak, refaddr, reftype, ceil, floor */
-    0x05b4, 0x31cc, 0x0003, /* pos */
-    0x4630, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract */
-    0x1538, 0x0067, /* repeat */
-    0x33b8, 0x4630, 0x0067, /* concat */
-    0x30dc, 0x0218, 0x1c34, 0x4630, 0x436c, 0x0003, /* multiconcat */
-    0x4630, 0x018f, /* stringify, atan2, rand, srand, crypt, push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, symlink, mkdir, waitpid, system, exec, kill, getpgrp, setpgrp, getpriority, setpriority, sleep */
-    0x4630, 0x4789, /* left_shift, right_shift, nbit_and, nbit_xor, nbit_or, ncomplement */
-    0x4789, /* bit_and, bit_xor, bit_or, sbit_and, sbit_xor, sbit_or, complement */
-    0x05b4, 0x4630, 0x0003, /* length */
-    0x3b90, 0x31cc, 0x012b, /* substr */
-    0x31cc, 0x0067, /* vec */
-    0x3338, 0x05b4, 0x4630, 0x018f, /* index, rindex */
-    0x30dc, 0x3758, 0x05b4, 0x31cc, 0x3fa8, 0x4284, 0x0003, /* rv2av */
-    0x025f, /* aelemfast, aelemfast_lex */
-    0x30dc, 0x2fd8, 0x03d6, 0x31cc, 0x0067, /* aelem, helem */
-    0x30dc, 0x31cc, 0x3fa9, /* aslice, hslice */
-    0x31cd, /* kvaslice, kvhslice */
-    0x30dc, 0x3ef8, 0x2cf4, 0x0003, /* delete */
-    0x44b8, 0x0003, /* exists */
-    0x30dc, 0x3758, 0x05b4, 0x0650, 0x31cc, 0x3fa8, 0x4284, 0x2c41, /* rv2hv */
-    0x30dc, 0x2fd8, 0x11f4, 0x1b50, 0x31cc, 0x4284, 0x0003, /* multideref */
-    0x30dc, 0x3758, 0x02f0, 0x2dec, 0x2709, /* split */
-    0x30dc, 0x2379, /* list */
-    0x1490, 0x2a2c, 0x3c88, 0x2b24, 0x36c1, /* sort */
-    0x2a2c, 0x0003, /* reverse */
-    0x05b4, 0x0003, /* grepwhile */
-    0x2e78, 0x0003, /* flip, flop */
-    0x30dc, 0x0003, /* cond_expr */
-    0x30dc, 0x1078, 0x03d6, 0x014c, 0x4588, 0x4284, 0x27e1, /* entersub */
-    0x39f8, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
+    0x431c, 0x4238, 0x2dd4, 0x2d10, 0x0003, /* backtick */
+    0x06d5, /* subst */
+    0x129c, 0x24b8, 0x0ad4, 0x4acc, 0x2848, 0x5244, 0x08e1, /* trans, transr */
+    0x10dc, 0x05f8, 0x0067, /* sassign */
+    0x0d98, 0x0c94, 0x0b90, 0x3bac, 0x06c8, 0x0067, /* aassign */
+    0x5010, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, refaddr, reftype, ceil, floor */
+    0x3abc, 0x4bb8, 0x3534, 0x5010, 0x0003, /* undef */
+    0x06d4, 0x3bac, 0x0003, /* pos */
+    0x5010, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract */
+    0x1658, 0x0067, /* repeat */
+    0x3d98, 0x5010, 0x0067, /* concat */
+    0x3abc, 0x0338, 0x1e34, 0x5010, 0x4d4c, 0x0003, /* multiconcat */
+    0x5010, 0x018f, /* stringify, atan2, rand, srand, crypt, push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, symlink, mkdir, waitpid, system, exec, kill, getpgrp, setpgrp, getpriority, setpriority, sleep */
+    0x5010, 0x5169, /* left_shift, right_shift, nbit_and, nbit_xor, nbit_or, ncomplement */
+    0x5169, /* bit_and, bit_xor, bit_or, sbit_and, sbit_xor, sbit_or, complement */
+    0x06d4, 0x5010, 0x0003, /* length */
+    0x4570, 0x3bac, 0x012b, /* substr */
+    0x3bac, 0x0067, /* vec */
+    0x3d18, 0x06d4, 0x5010, 0x018f, /* index, rindex */
+    0x3abc, 0x4138, 0x06d4, 0x3bac, 0x4988, 0x4c64, 0x0003, /* rv2av */
+    0x025f, /* aelemfast, aelemfast_lex, aelemfastlex_store */
+    0x3abc, 0x39b8, 0x03d6, 0x3bac, 0x0067, /* aelem, helem */
+    0x3abc, 0x3bac, 0x4989, /* aslice, hslice */
+    0x3bad, /* kvaslice, kvhslice */
+    0x3abc, 0x48d8, 0x36d4, 0x0003, /* delete */
+    0x4e98, 0x0003, /* exists */
+    0x3abc, 0x4138, 0x06d4, 0x0770, 0x3bac, 0x4988, 0x4c64, 0x3621, /* rv2hv */
+    0x3abc, 0x39b8, 0x1314, 0x1d50, 0x3bac, 0x4c64, 0x0003, /* multideref */
+    0x3abc, 0x4138, 0x0410, 0x37cc, 0x2b49, /* split */
+    0x3abc, 0x2579, /* list */
+    0x3abc, 0x4bb8, 0x0214, 0x5010, 0x018f, /* emptyavhv */
+    0x15b0, 0x330c, 0x4668, 0x3404, 0x40a1, /* sort */
+    0x330c, 0x0003, /* reverse */
+    0x06d4, 0x0003, /* grepwhile */
+    0x3858, 0x0003, /* flip, flop */
+    0x3abc, 0x0003, /* cond_expr */
+    0x3abc, 0x1198, 0x03d6, 0x014c, 0x4f68, 0x4c64, 0x2c21, /* entersub */
+    0x43d8, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
     0x02aa, 0x0003, /* argelem */
+    0x2a3c, 0x2918, 0x0003, /* argdefelem */
     0x00bc, 0x018f, /* caller */
-    0x2555, /* nextstate, dbstate */
-    0x2f7c, 0x39f9, /* leave */
-    0x30dc, 0x3758, 0x10ec, 0x3d05, /* enteriter */
-    0x3d05, /* iter */
-    0x2f7c, 0x0067, /* leaveloop */
-    0x499c, 0x0003, /* last, next, redo, dump, goto */
-    0x393c, 0x3858, 0x2994, 0x28d0, 0x018f, /* open */
-    0x1ef0, 0x214c, 0x2008, 0x1dc4, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
-    0x1ef0, 0x214c, 0x2008, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
-    0x4631, /* wait, getppid, time */
-    0x3a94, 0x0e90, 0x070c, 0x4708, 0x2464, 0x0003, /* entereval */
-    0x329c, 0x0018, 0x13a4, 0x12c1, /* coreargs */
-    0x31cc, 0x00c7, /* avhvswitch */
-    0x30dc, 0x01fb, /* padrange */
-    0x30dc, 0x41d8, 0x04f6, 0x2bac, 0x19a8, 0x0067, /* refassign */
-    0x30dc, 0x41d8, 0x04f6, 0x2bac, 0x19a8, 0x0003, /* lvref */
-    0x30dd, /* lvrefslice */
-    0x30dc, 0x41d8, 0x0003, /* lvavref */
-    0x1cdc, 0x0003, /* pushdefer */
+    0x2755, /* nextstate, dbstate */
+    0x395c, 0x43d9, /* leave */
+    0x3abc, 0x4138, 0x120c, 0x46e5, /* enteriter */
+    0x46e5, /* iter */
+    0x395c, 0x0067, /* leaveloop */
+    0x537c, 0x0003, /* last, next, redo, dump, goto */
+    0x431c, 0x4238, 0x2dd4, 0x2d10, 0x018f, /* open */
+    0x20f0, 0x234c, 0x2208, 0x1fc4, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
+    0x20f0, 0x234c, 0x2208, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
+    0x5011, /* wait, getppid, time */
+    0x1c78, 0x4474, 0x0fb0, 0x082c, 0x50e8, 0x2664, 0x0003, /* entereval */
+    0x3c7c, 0x0018, 0x14c4, 0x13e1, /* coreargs */
+    0x3bac, 0x00c7, /* avhvswitch */
+    0x3abc, 0x01fb, /* padrange */
+    0x3abc, 0x4bb8, 0x04f6, 0x348c, 0x1ac8, 0x0067, /* refassign */
+    0x3abc, 0x4bb8, 0x04f6, 0x348c, 0x1ac8, 0x0003, /* lvref */
+    0x3abd, /* lvrefslice */
+    0x1edc, 0x0003, /* pushdefer */
+    0x131c, 0x0003, /* helemexistsor */
+    0x2e7c, 0x0003, /* methstart */
+    0x3168, 0x2fc4, 0x0003, /* initfield */
 
 };
 
@@ -3043,6 +3090,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* GV         */ (OPpEARLY_CV),
     /* GELEM      */ (OPpARG2_MASK),
     /* PADSV      */ (OPpDEREF|OPpPAD_STATE|OPpLVAL_INTRO),
+    /* PADSV_STORE */ (OPpARG1_MASK|OPpPAD_STATE|OPpLVAL_INTRO),
     /* PADAV      */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
     /* PADHV      */ (OPpPADHV_ISKEYS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
     /* PADANY     */ (0),
@@ -3076,7 +3124,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* CHOMP      */ (OPpARG1_MASK|OPpTARGET_MY),
     /* SCHOMP     */ (OPpARG1_MASK|OPpTARGET_MY),
     /* DEFINED    */ (OPpARG1_MASK),
-    /* UNDEF      */ (OPpARG1_MASK),
+    /* UNDEF      */ (OPpARG1_MASK|OPpTARGET_MY|OPpUNDEF_KEEP_PV|OPpPAD_STATE|OPpLVAL_INTRO),
     /* STUDY      */ (OPpARG1_MASK),
     /* POS        */ (OPpARG1_MASK|OPpMAYBE_LVSUB|OPpTRUEBOOL),
     /* PREINC     */ (OPpARG1_MASK),
@@ -3171,6 +3219,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* RV2AV      */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpTRUEBOOL|OPpOUR_INTRO|OPpLVAL_INTRO),
     /* AELEMFAST  */ (255),
     /* AELEMFAST_LEX */ (255),
+    /* AELEMFASTLEX_STORE */ (255),
     /* AELEM      */ (OPpARG2_MASK|OPpMAYBE_LVSUB|OPpDEREF|OPpLVAL_DEFER|OPpLVAL_INTRO),
     /* ASLICE     */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO),
     /* KVASLICE   */ (OPpMAYBE_LVSUB),
@@ -3195,6 +3244,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* LSLICE     */ (OPpARG2_MASK),
     /* ANONLIST   */ (OPpARG4_MASK),
     /* ANONHASH   */ (OPpARG4_MASK),
+    /* EMPTYAVHV  */ (OPpARG4_MASK|OPpTARGET_MY|OPpEMPTYAVHV_IS_HV|OPpPAD_STATE|OPpLVAL_INTRO),
     /* SPLICE     */ (OPpARG4_MASK),
     /* PUSH       */ (OPpARG4_MASK|OPpTARGET_MY),
     /* POP        */ (OPpARG1_MASK),
@@ -3222,7 +3272,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* LEAVESUBLV */ (OPpARG1_MASK|OPpREFCOUNTED),
     /* ARGCHECK   */ (OPpARG1_MASK),
     /* ARGELEM    */ (OPpARG1_MASK|OPpARGELEM_MASK),
-    /* ARGDEFELEM */ (OPpARG1_MASK),
+    /* ARGDEFELEM */ (OPpARG1_MASK|OPpARG_IF_FALSE|OPpARG_IF_UNDEF),
     /* CALLER     */ (OPpARG4_MASK|OPpOFFBYONE),
     /* WARN       */ (OPpARG4_MASK),
     /* DIE        */ (OPpARG4_MASK),
@@ -3378,7 +3428,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* REQUIRE    */ (OPpARG1_MASK),
     /* DOFILE     */ (OPpARG1_MASK),
     /* HINTSEVAL  */ (0),
-    /* ENTEREVAL  */ (OPpARG1_MASK|OPpEVAL_HAS_HH|OPpEVAL_UNICODE|OPpEVAL_BYTES|OPpEVAL_COPHH|OPpEVAL_RE_REPARSING),
+    /* ENTEREVAL  */ (OPpARG1_MASK|OPpEVAL_HAS_HH|OPpEVAL_UNICODE|OPpEVAL_BYTES|OPpEVAL_COPHH|OPpEVAL_RE_REPARSING|OPpEVAL_EVALSV),
     /* LEAVEEVAL  */ (OPpARG1_MASK|OPpREFCOUNTED),
     /* ENTERTRY   */ (OPpARG1_MASK),
     /* LEAVETRY   */ (0),
@@ -3438,8 +3488,8 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* POPTRY     */ (0),
     /* CATCH      */ (OPpARG1_MASK),
     /* PUSHDEFER  */ (OPpARG1_MASK|OPpDEFER_FINALLY),
-    /* IS_BOOL    */ (OPpARG1_MASK|OPpTARGET_MY),
-    /* IS_WEAK    */ (OPpARG1_MASK|OPpTARGET_MY),
+    /* IS_BOOL    */ (OPpARG1_MASK),
+    /* IS_WEAK    */ (OPpARG1_MASK),
     /* WEAKEN     */ (OPpARG1_MASK),
     /* UNWEAKEN   */ (OPpARG1_MASK),
     /* BLESSED    */ (OPpARG1_MASK|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL),
@@ -3447,6 +3497,10 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* REFTYPE    */ (OPpARG1_MASK|OPpTARGET_MY),
     /* CEIL       */ (OPpARG1_MASK|OPpTARGET_MY),
     /* FLOOR      */ (OPpARG1_MASK|OPpTARGET_MY),
+    /* IS_TAINTED */ (OPpARG1_MASK),
+    /* HELEMEXISTSOR */ (OPpARG1_MASK|OPpHELEMEXISTSOR_DELETE),
+    /* METHSTART  */ (OPpARG1_MASK|OPpINITFIELDS),
+    /* INITFIELD  */ (OPpARG1_MASK|OPpINITFIELD_AV|OPpINITFIELD_HV),
 
 };
 
@@ -3456,4 +3510,4 @@ END_EXTERN_C
 
 
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/opnames.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/opnames.h,v
diff -u -p -a -u -p -r1.5 opnames.h
--- gnu/usr.bin/perl/opnames.h	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/opnames.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    opnames.h
  *
@@ -24,414 +24,421 @@ typedef enum opcode {
 	OP_GV		 = 7,
 	OP_GELEM	 = 8,
 	OP_PADSV	 = 9,
-	OP_PADAV	 = 10,
-	OP_PADHV	 = 11,
-	OP_PADANY	 = 12,
-	OP_RV2GV	 = 13,
-	OP_RV2SV	 = 14,
-	OP_AV2ARYLEN	 = 15,
-	OP_RV2CV	 = 16,
-	OP_ANONCODE	 = 17,
-	OP_PROTOTYPE	 = 18,
-	OP_REFGEN	 = 19,
-	OP_SREFGEN	 = 20,
-	OP_REF		 = 21,
-	OP_BLESS	 = 22,
-	OP_BACKTICK	 = 23,
-	OP_GLOB		 = 24,
-	OP_READLINE	 = 25,
-	OP_RCATLINE	 = 26,
-	OP_REGCMAYBE	 = 27,
-	OP_REGCRESET	 = 28,
-	OP_REGCOMP	 = 29,
-	OP_MATCH	 = 30,
-	OP_QR		 = 31,
-	OP_SUBST	 = 32,
-	OP_SUBSTCONT	 = 33,
-	OP_TRANS	 = 34,
-	OP_TRANSR	 = 35,
-	OP_SASSIGN	 = 36,
-	OP_AASSIGN	 = 37,
-	OP_CHOP		 = 38,
-	OP_SCHOP	 = 39,
-	OP_CHOMP	 = 40,
-	OP_SCHOMP	 = 41,
-	OP_DEFINED	 = 42,
-	OP_UNDEF	 = 43,
-	OP_STUDY	 = 44,
-	OP_POS		 = 45,
-	OP_PREINC	 = 46,
-	OP_I_PREINC	 = 47,
-	OP_PREDEC	 = 48,
-	OP_I_PREDEC	 = 49,
-	OP_POSTINC	 = 50,
-	OP_I_POSTINC	 = 51,
-	OP_POSTDEC	 = 52,
-	OP_I_POSTDEC	 = 53,
-	OP_POW		 = 54,
-	OP_MULTIPLY	 = 55,
-	OP_I_MULTIPLY	 = 56,
-	OP_DIVIDE	 = 57,
-	OP_I_DIVIDE	 = 58,
-	OP_MODULO	 = 59,
-	OP_I_MODULO	 = 60,
-	OP_REPEAT	 = 61,
-	OP_ADD		 = 62,
-	OP_I_ADD	 = 63,
-	OP_SUBTRACT	 = 64,
-	OP_I_SUBTRACT	 = 65,
-	OP_CONCAT	 = 66,
-	OP_MULTICONCAT	 = 67,
-	OP_STRINGIFY	 = 68,
-	OP_LEFT_SHIFT	 = 69,
-	OP_RIGHT_SHIFT	 = 70,
-	OP_LT		 = 71,
-	OP_I_LT		 = 72,
-	OP_GT		 = 73,
-	OP_I_GT		 = 74,
-	OP_LE		 = 75,
-	OP_I_LE		 = 76,
-	OP_GE		 = 77,
-	OP_I_GE		 = 78,
-	OP_EQ		 = 79,
-	OP_I_EQ		 = 80,
-	OP_NE		 = 81,
-	OP_I_NE		 = 82,
-	OP_NCMP		 = 83,
-	OP_I_NCMP	 = 84,
-	OP_SLT		 = 85,
-	OP_SGT		 = 86,
-	OP_SLE		 = 87,
-	OP_SGE		 = 88,
-	OP_SEQ		 = 89,
-	OP_SNE		 = 90,
-	OP_SCMP		 = 91,
-	OP_BIT_AND	 = 92,
-	OP_BIT_XOR	 = 93,
-	OP_BIT_OR	 = 94,
-	OP_NBIT_AND	 = 95,
-	OP_NBIT_XOR	 = 96,
-	OP_NBIT_OR	 = 97,
-	OP_SBIT_AND	 = 98,
-	OP_SBIT_XOR	 = 99,
-	OP_SBIT_OR	 = 100,
-	OP_NEGATE	 = 101,
-	OP_I_NEGATE	 = 102,
-	OP_NOT		 = 103,
-	OP_COMPLEMENT	 = 104,
-	OP_NCOMPLEMENT	 = 105,
-	OP_SCOMPLEMENT	 = 106,
-	OP_SMARTMATCH	 = 107,
-	OP_ATAN2	 = 108,
-	OP_SIN		 = 109,
-	OP_COS		 = 110,
-	OP_RAND		 = 111,
-	OP_SRAND	 = 112,
-	OP_EXP		 = 113,
-	OP_LOG		 = 114,
-	OP_SQRT		 = 115,
-	OP_INT		 = 116,
-	OP_HEX		 = 117,
-	OP_OCT		 = 118,
-	OP_ABS		 = 119,
-	OP_LENGTH	 = 120,
-	OP_SUBSTR	 = 121,
-	OP_VEC		 = 122,
-	OP_INDEX	 = 123,
-	OP_RINDEX	 = 124,
-	OP_SPRINTF	 = 125,
-	OP_FORMLINE	 = 126,
-	OP_ORD		 = 127,
-	OP_CHR		 = 128,
-	OP_CRYPT	 = 129,
-	OP_UCFIRST	 = 130,
-	OP_LCFIRST	 = 131,
-	OP_UC		 = 132,
-	OP_LC		 = 133,
-	OP_QUOTEMETA	 = 134,
-	OP_RV2AV	 = 135,
-	OP_AELEMFAST	 = 136,
-	OP_AELEMFAST_LEX = 137,
-	OP_AELEM	 = 138,
-	OP_ASLICE	 = 139,
-	OP_KVASLICE	 = 140,
-	OP_AEACH	 = 141,
-	OP_AVALUES	 = 142,
-	OP_AKEYS	 = 143,
-	OP_EACH		 = 144,
-	OP_VALUES	 = 145,
-	OP_KEYS		 = 146,
-	OP_DELETE	 = 147,
-	OP_EXISTS	 = 148,
-	OP_RV2HV	 = 149,
-	OP_HELEM	 = 150,
-	OP_HSLICE	 = 151,
-	OP_KVHSLICE	 = 152,
-	OP_MULTIDEREF	 = 153,
-	OP_UNPACK	 = 154,
-	OP_PACK		 = 155,
-	OP_SPLIT	 = 156,
-	OP_JOIN		 = 157,
-	OP_LIST		 = 158,
-	OP_LSLICE	 = 159,
-	OP_ANONLIST	 = 160,
-	OP_ANONHASH	 = 161,
-	OP_SPLICE	 = 162,
-	OP_PUSH		 = 163,
-	OP_POP		 = 164,
-	OP_SHIFT	 = 165,
-	OP_UNSHIFT	 = 166,
-	OP_SORT		 = 167,
-	OP_REVERSE	 = 168,
-	OP_GREPSTART	 = 169,
-	OP_GREPWHILE	 = 170,
-	OP_MAPSTART	 = 171,
-	OP_MAPWHILE	 = 172,
-	OP_RANGE	 = 173,
-	OP_FLIP		 = 174,
-	OP_FLOP		 = 175,
-	OP_AND		 = 176,
-	OP_OR		 = 177,
-	OP_XOR		 = 178,
-	OP_DOR		 = 179,
-	OP_COND_EXPR	 = 180,
-	OP_ANDASSIGN	 = 181,
-	OP_ORASSIGN	 = 182,
-	OP_DORASSIGN	 = 183,
-	OP_ENTERSUB	 = 184,
-	OP_LEAVESUB	 = 185,
-	OP_LEAVESUBLV	 = 186,
-	OP_ARGCHECK	 = 187,
-	OP_ARGELEM	 = 188,
-	OP_ARGDEFELEM	 = 189,
-	OP_CALLER	 = 190,
-	OP_WARN		 = 191,
-	OP_DIE		 = 192,
-	OP_RESET	 = 193,
-	OP_LINESEQ	 = 194,
-	OP_NEXTSTATE	 = 195,
-	OP_DBSTATE	 = 196,
-	OP_UNSTACK	 = 197,
-	OP_ENTER	 = 198,
-	OP_LEAVE	 = 199,
-	OP_SCOPE	 = 200,
-	OP_ENTERITER	 = 201,
-	OP_ITER		 = 202,
-	OP_ENTERLOOP	 = 203,
-	OP_LEAVELOOP	 = 204,
-	OP_RETURN	 = 205,
-	OP_LAST		 = 206,
-	OP_NEXT		 = 207,
-	OP_REDO		 = 208,
-	OP_DUMP		 = 209,
-	OP_GOTO		 = 210,
-	OP_EXIT		 = 211,
-	OP_METHOD	 = 212,
-	OP_METHOD_NAMED	 = 213,
-	OP_METHOD_SUPER	 = 214,
-	OP_METHOD_REDIR	 = 215,
-	OP_METHOD_REDIR_SUPER = 216,
-	OP_ENTERGIVEN	 = 217,
-	OP_LEAVEGIVEN	 = 218,
-	OP_ENTERWHEN	 = 219,
-	OP_LEAVEWHEN	 = 220,
-	OP_BREAK	 = 221,
-	OP_CONTINUE	 = 222,
-	OP_OPEN		 = 223,
-	OP_CLOSE	 = 224,
-	OP_PIPE_OP	 = 225,
-	OP_FILENO	 = 226,
-	OP_UMASK	 = 227,
-	OP_BINMODE	 = 228,
-	OP_TIE		 = 229,
-	OP_UNTIE	 = 230,
-	OP_TIED		 = 231,
-	OP_DBMOPEN	 = 232,
-	OP_DBMCLOSE	 = 233,
-	OP_SSELECT	 = 234,
-	OP_SELECT	 = 235,
-	OP_GETC		 = 236,
-	OP_READ		 = 237,
-	OP_ENTERWRITE	 = 238,
-	OP_LEAVEWRITE	 = 239,
-	OP_PRTF		 = 240,
-	OP_PRINT	 = 241,
-	OP_SAY		 = 242,
-	OP_SYSOPEN	 = 243,
-	OP_SYSSEEK	 = 244,
-	OP_SYSREAD	 = 245,
-	OP_SYSWRITE	 = 246,
-	OP_EOF		 = 247,
-	OP_TELL		 = 248,
-	OP_SEEK		 = 249,
-	OP_TRUNCATE	 = 250,
-	OP_FCNTL	 = 251,
-	OP_IOCTL	 = 252,
-	OP_FLOCK	 = 253,
-	OP_SEND		 = 254,
-	OP_RECV		 = 255,
-	OP_SOCKET	 = 256,
-	OP_SOCKPAIR	 = 257,
-	OP_BIND		 = 258,
-	OP_CONNECT	 = 259,
-	OP_LISTEN	 = 260,
-	OP_ACCEPT	 = 261,
-	OP_SHUTDOWN	 = 262,
-	OP_GSOCKOPT	 = 263,
-	OP_SSOCKOPT	 = 264,
-	OP_GETSOCKNAME	 = 265,
-	OP_GETPEERNAME	 = 266,
-	OP_LSTAT	 = 267,
-	OP_STAT		 = 268,
-	OP_FTRREAD	 = 269,
-	OP_FTRWRITE	 = 270,
-	OP_FTREXEC	 = 271,
-	OP_FTEREAD	 = 272,
-	OP_FTEWRITE	 = 273,
-	OP_FTEEXEC	 = 274,
-	OP_FTIS		 = 275,
-	OP_FTSIZE	 = 276,
-	OP_FTMTIME	 = 277,
-	OP_FTATIME	 = 278,
-	OP_FTCTIME	 = 279,
-	OP_FTROWNED	 = 280,
-	OP_FTEOWNED	 = 281,
-	OP_FTZERO	 = 282,
-	OP_FTSOCK	 = 283,
-	OP_FTCHR	 = 284,
-	OP_FTBLK	 = 285,
-	OP_FTFILE	 = 286,
-	OP_FTDIR	 = 287,
-	OP_FTPIPE	 = 288,
-	OP_FTSUID	 = 289,
-	OP_FTSGID	 = 290,
-	OP_FTSVTX	 = 291,
-	OP_FTLINK	 = 292,
-	OP_FTTTY	 = 293,
-	OP_FTTEXT	 = 294,
-	OP_FTBINARY	 = 295,
-	OP_CHDIR	 = 296,
-	OP_CHOWN	 = 297,
-	OP_CHROOT	 = 298,
-	OP_UNLINK	 = 299,
-	OP_CHMOD	 = 300,
-	OP_UTIME	 = 301,
-	OP_RENAME	 = 302,
-	OP_LINK		 = 303,
-	OP_SYMLINK	 = 304,
-	OP_READLINK	 = 305,
-	OP_MKDIR	 = 306,
-	OP_RMDIR	 = 307,
-	OP_OPEN_DIR	 = 308,
-	OP_READDIR	 = 309,
-	OP_TELLDIR	 = 310,
-	OP_SEEKDIR	 = 311,
-	OP_REWINDDIR	 = 312,
-	OP_CLOSEDIR	 = 313,
-	OP_FORK		 = 314,
-	OP_WAIT		 = 315,
-	OP_WAITPID	 = 316,
-	OP_SYSTEM	 = 317,
-	OP_EXEC		 = 318,
-	OP_KILL		 = 319,
-	OP_GETPPID	 = 320,
-	OP_GETPGRP	 = 321,
-	OP_SETPGRP	 = 322,
-	OP_GETPRIORITY	 = 323,
-	OP_SETPRIORITY	 = 324,
-	OP_TIME		 = 325,
-	OP_TMS		 = 326,
-	OP_LOCALTIME	 = 327,
-	OP_GMTIME	 = 328,
-	OP_ALARM	 = 329,
-	OP_SLEEP	 = 330,
-	OP_SHMGET	 = 331,
-	OP_SHMCTL	 = 332,
-	OP_SHMREAD	 = 333,
-	OP_SHMWRITE	 = 334,
-	OP_MSGGET	 = 335,
-	OP_MSGCTL	 = 336,
-	OP_MSGSND	 = 337,
-	OP_MSGRCV	 = 338,
-	OP_SEMOP	 = 339,
-	OP_SEMGET	 = 340,
-	OP_SEMCTL	 = 341,
-	OP_REQUIRE	 = 342,
-	OP_DOFILE	 = 343,
-	OP_HINTSEVAL	 = 344,
-	OP_ENTEREVAL	 = 345,
-	OP_LEAVEEVAL	 = 346,
-	OP_ENTERTRY	 = 347,
-	OP_LEAVETRY	 = 348,
-	OP_GHBYNAME	 = 349,
-	OP_GHBYADDR	 = 350,
-	OP_GHOSTENT	 = 351,
-	OP_GNBYNAME	 = 352,
-	OP_GNBYADDR	 = 353,
-	OP_GNETENT	 = 354,
-	OP_GPBYNAME	 = 355,
-	OP_GPBYNUMBER	 = 356,
-	OP_GPROTOENT	 = 357,
-	OP_GSBYNAME	 = 358,
-	OP_GSBYPORT	 = 359,
-	OP_GSERVENT	 = 360,
-	OP_SHOSTENT	 = 361,
-	OP_SNETENT	 = 362,
-	OP_SPROTOENT	 = 363,
-	OP_SSERVENT	 = 364,
-	OP_EHOSTENT	 = 365,
-	OP_ENETENT	 = 366,
-	OP_EPROTOENT	 = 367,
-	OP_ESERVENT	 = 368,
-	OP_GPWNAM	 = 369,
-	OP_GPWUID	 = 370,
-	OP_GPWENT	 = 371,
-	OP_SPWENT	 = 372,
-	OP_EPWENT	 = 373,
-	OP_GGRNAM	 = 374,
-	OP_GGRGID	 = 375,
-	OP_GGRENT	 = 376,
-	OP_SGRENT	 = 377,
-	OP_EGRENT	 = 378,
-	OP_GETLOGIN	 = 379,
-	OP_SYSCALL	 = 380,
-	OP_LOCK		 = 381,
-	OP_ONCE		 = 382,
-	OP_CUSTOM	 = 383,
-	OP_COREARGS	 = 384,
-	OP_AVHVSWITCH	 = 385,
-	OP_RUNCV	 = 386,
-	OP_FC		 = 387,
-	OP_PADCV	 = 388,
-	OP_INTROCV	 = 389,
-	OP_CLONECV	 = 390,
-	OP_PADRANGE	 = 391,
-	OP_REFASSIGN	 = 392,
-	OP_LVREF	 = 393,
-	OP_LVREFSLICE	 = 394,
-	OP_LVAVREF	 = 395,
-	OP_ANONCONST	 = 396,
-	OP_ISA		 = 397,
-	OP_CMPCHAIN_AND	 = 398,
-	OP_CMPCHAIN_DUP	 = 399,
-	OP_ENTERTRYCATCH = 400,
-	OP_LEAVETRYCATCH = 401,
-	OP_POPTRY	 = 402,
-	OP_CATCH	 = 403,
-	OP_PUSHDEFER	 = 404,
-	OP_IS_BOOL	 = 405,
-	OP_IS_WEAK	 = 406,
-	OP_WEAKEN	 = 407,
-	OP_UNWEAKEN	 = 408,
-	OP_BLESSED	 = 409,
-	OP_REFADDR	 = 410,
-	OP_REFTYPE	 = 411,
-	OP_CEIL		 = 412,
-	OP_FLOOR	 = 413,
+	OP_PADSV_STORE	 = 10,
+	OP_PADAV	 = 11,
+	OP_PADHV	 = 12,
+	OP_PADANY	 = 13,
+	OP_RV2GV	 = 14,
+	OP_RV2SV	 = 15,
+	OP_AV2ARYLEN	 = 16,
+	OP_RV2CV	 = 17,
+	OP_ANONCODE	 = 18,
+	OP_PROTOTYPE	 = 19,
+	OP_REFGEN	 = 20,
+	OP_SREFGEN	 = 21,
+	OP_REF		 = 22,
+	OP_BLESS	 = 23,
+	OP_BACKTICK	 = 24,
+	OP_GLOB		 = 25,
+	OP_READLINE	 = 26,
+	OP_RCATLINE	 = 27,
+	OP_REGCMAYBE	 = 28,
+	OP_REGCRESET	 = 29,
+	OP_REGCOMP	 = 30,
+	OP_MATCH	 = 31,
+	OP_QR		 = 32,
+	OP_SUBST	 = 33,
+	OP_SUBSTCONT	 = 34,
+	OP_TRANS	 = 35,
+	OP_TRANSR	 = 36,
+	OP_SASSIGN	 = 37,
+	OP_AASSIGN	 = 38,
+	OP_CHOP		 = 39,
+	OP_SCHOP	 = 40,
+	OP_CHOMP	 = 41,
+	OP_SCHOMP	 = 42,
+	OP_DEFINED	 = 43,
+	OP_UNDEF	 = 44,
+	OP_STUDY	 = 45,
+	OP_POS		 = 46,
+	OP_PREINC	 = 47,
+	OP_I_PREINC	 = 48,
+	OP_PREDEC	 = 49,
+	OP_I_PREDEC	 = 50,
+	OP_POSTINC	 = 51,
+	OP_I_POSTINC	 = 52,
+	OP_POSTDEC	 = 53,
+	OP_I_POSTDEC	 = 54,
+	OP_POW		 = 55,
+	OP_MULTIPLY	 = 56,
+	OP_I_MULTIPLY	 = 57,
+	OP_DIVIDE	 = 58,
+	OP_I_DIVIDE	 = 59,
+	OP_MODULO	 = 60,
+	OP_I_MODULO	 = 61,
+	OP_REPEAT	 = 62,
+	OP_ADD		 = 63,
+	OP_I_ADD	 = 64,
+	OP_SUBTRACT	 = 65,
+	OP_I_SUBTRACT	 = 66,
+	OP_CONCAT	 = 67,
+	OP_MULTICONCAT	 = 68,
+	OP_STRINGIFY	 = 69,
+	OP_LEFT_SHIFT	 = 70,
+	OP_RIGHT_SHIFT	 = 71,
+	OP_LT		 = 72,
+	OP_I_LT		 = 73,
+	OP_GT		 = 74,
+	OP_I_GT		 = 75,
+	OP_LE		 = 76,
+	OP_I_LE		 = 77,
+	OP_GE		 = 78,
+	OP_I_GE		 = 79,
+	OP_EQ		 = 80,
+	OP_I_EQ		 = 81,
+	OP_NE		 = 82,
+	OP_I_NE		 = 83,
+	OP_NCMP		 = 84,
+	OP_I_NCMP	 = 85,
+	OP_SLT		 = 86,
+	OP_SGT		 = 87,
+	OP_SLE		 = 88,
+	OP_SGE		 = 89,
+	OP_SEQ		 = 90,
+	OP_SNE		 = 91,
+	OP_SCMP		 = 92,
+	OP_BIT_AND	 = 93,
+	OP_BIT_XOR	 = 94,
+	OP_BIT_OR	 = 95,
+	OP_NBIT_AND	 = 96,
+	OP_NBIT_XOR	 = 97,
+	OP_NBIT_OR	 = 98,
+	OP_SBIT_AND	 = 99,
+	OP_SBIT_XOR	 = 100,
+	OP_SBIT_OR	 = 101,
+	OP_NEGATE	 = 102,
+	OP_I_NEGATE	 = 103,
+	OP_NOT		 = 104,
+	OP_COMPLEMENT	 = 105,
+	OP_NCOMPLEMENT	 = 106,
+	OP_SCOMPLEMENT	 = 107,
+	OP_SMARTMATCH	 = 108,
+	OP_ATAN2	 = 109,
+	OP_SIN		 = 110,
+	OP_COS		 = 111,
+	OP_RAND		 = 112,
+	OP_SRAND	 = 113,
+	OP_EXP		 = 114,
+	OP_LOG		 = 115,
+	OP_SQRT		 = 116,
+	OP_INT		 = 117,
+	OP_HEX		 = 118,
+	OP_OCT		 = 119,
+	OP_ABS		 = 120,
+	OP_LENGTH	 = 121,
+	OP_SUBSTR	 = 122,
+	OP_VEC		 = 123,
+	OP_INDEX	 = 124,
+	OP_RINDEX	 = 125,
+	OP_SPRINTF	 = 126,
+	OP_FORMLINE	 = 127,
+	OP_ORD		 = 128,
+	OP_CHR		 = 129,
+	OP_CRYPT	 = 130,
+	OP_UCFIRST	 = 131,
+	OP_LCFIRST	 = 132,
+	OP_UC		 = 133,
+	OP_LC		 = 134,
+	OP_QUOTEMETA	 = 135,
+	OP_RV2AV	 = 136,
+	OP_AELEMFAST	 = 137,
+	OP_AELEMFAST_LEX = 138,
+	OP_AELEMFASTLEX_STORE = 139,
+	OP_AELEM	 = 140,
+	OP_ASLICE	 = 141,
+	OP_KVASLICE	 = 142,
+	OP_AEACH	 = 143,
+	OP_AVALUES	 = 144,
+	OP_AKEYS	 = 145,
+	OP_EACH		 = 146,
+	OP_VALUES	 = 147,
+	OP_KEYS		 = 148,
+	OP_DELETE	 = 149,
+	OP_EXISTS	 = 150,
+	OP_RV2HV	 = 151,
+	OP_HELEM	 = 152,
+	OP_HSLICE	 = 153,
+	OP_KVHSLICE	 = 154,
+	OP_MULTIDEREF	 = 155,
+	OP_UNPACK	 = 156,
+	OP_PACK		 = 157,
+	OP_SPLIT	 = 158,
+	OP_JOIN		 = 159,
+	OP_LIST		 = 160,
+	OP_LSLICE	 = 161,
+	OP_ANONLIST	 = 162,
+	OP_ANONHASH	 = 163,
+	OP_EMPTYAVHV	 = 164,
+	OP_SPLICE	 = 165,
+	OP_PUSH		 = 166,
+	OP_POP		 = 167,
+	OP_SHIFT	 = 168,
+	OP_UNSHIFT	 = 169,
+	OP_SORT		 = 170,
+	OP_REVERSE	 = 171,
+	OP_GREPSTART	 = 172,
+	OP_GREPWHILE	 = 173,
+	OP_MAPSTART	 = 174,
+	OP_MAPWHILE	 = 175,
+	OP_RANGE	 = 176,
+	OP_FLIP		 = 177,
+	OP_FLOP		 = 178,
+	OP_AND		 = 179,
+	OP_OR		 = 180,
+	OP_XOR		 = 181,
+	OP_DOR		 = 182,
+	OP_COND_EXPR	 = 183,
+	OP_ANDASSIGN	 = 184,
+	OP_ORASSIGN	 = 185,
+	OP_DORASSIGN	 = 186,
+	OP_ENTERSUB	 = 187,
+	OP_LEAVESUB	 = 188,
+	OP_LEAVESUBLV	 = 189,
+	OP_ARGCHECK	 = 190,
+	OP_ARGELEM	 = 191,
+	OP_ARGDEFELEM	 = 192,
+	OP_CALLER	 = 193,
+	OP_WARN		 = 194,
+	OP_DIE		 = 195,
+	OP_RESET	 = 196,
+	OP_LINESEQ	 = 197,
+	OP_NEXTSTATE	 = 198,
+	OP_DBSTATE	 = 199,
+	OP_UNSTACK	 = 200,
+	OP_ENTER	 = 201,
+	OP_LEAVE	 = 202,
+	OP_SCOPE	 = 203,
+	OP_ENTERITER	 = 204,
+	OP_ITER		 = 205,
+	OP_ENTERLOOP	 = 206,
+	OP_LEAVELOOP	 = 207,
+	OP_RETURN	 = 208,
+	OP_LAST		 = 209,
+	OP_NEXT		 = 210,
+	OP_REDO		 = 211,
+	OP_DUMP		 = 212,
+	OP_GOTO		 = 213,
+	OP_EXIT		 = 214,
+	OP_METHOD	 = 215,
+	OP_METHOD_NAMED	 = 216,
+	OP_METHOD_SUPER	 = 217,
+	OP_METHOD_REDIR	 = 218,
+	OP_METHOD_REDIR_SUPER = 219,
+	OP_ENTERGIVEN	 = 220,
+	OP_LEAVEGIVEN	 = 221,
+	OP_ENTERWHEN	 = 222,
+	OP_LEAVEWHEN	 = 223,
+	OP_BREAK	 = 224,
+	OP_CONTINUE	 = 225,
+	OP_OPEN		 = 226,
+	OP_CLOSE	 = 227,
+	OP_PIPE_OP	 = 228,
+	OP_FILENO	 = 229,
+	OP_UMASK	 = 230,
+	OP_BINMODE	 = 231,
+	OP_TIE		 = 232,
+	OP_UNTIE	 = 233,
+	OP_TIED		 = 234,
+	OP_DBMOPEN	 = 235,
+	OP_DBMCLOSE	 = 236,
+	OP_SSELECT	 = 237,
+	OP_SELECT	 = 238,
+	OP_GETC		 = 239,
+	OP_READ		 = 240,
+	OP_ENTERWRITE	 = 241,
+	OP_LEAVEWRITE	 = 242,
+	OP_PRTF		 = 243,
+	OP_PRINT	 = 244,
+	OP_SAY		 = 245,
+	OP_SYSOPEN	 = 246,
+	OP_SYSSEEK	 = 247,
+	OP_SYSREAD	 = 248,
+	OP_SYSWRITE	 = 249,
+	OP_EOF		 = 250,
+	OP_TELL		 = 251,
+	OP_SEEK		 = 252,
+	OP_TRUNCATE	 = 253,
+	OP_FCNTL	 = 254,
+	OP_IOCTL	 = 255,
+	OP_FLOCK	 = 256,
+	OP_SEND		 = 257,
+	OP_RECV		 = 258,
+	OP_SOCKET	 = 259,
+	OP_SOCKPAIR	 = 260,
+	OP_BIND		 = 261,
+	OP_CONNECT	 = 262,
+	OP_LISTEN	 = 263,
+	OP_ACCEPT	 = 264,
+	OP_SHUTDOWN	 = 265,
+	OP_GSOCKOPT	 = 266,
+	OP_SSOCKOPT	 = 267,
+	OP_GETSOCKNAME	 = 268,
+	OP_GETPEERNAME	 = 269,
+	OP_LSTAT	 = 270,
+	OP_STAT		 = 271,
+	OP_FTRREAD	 = 272,
+	OP_FTRWRITE	 = 273,
+	OP_FTREXEC	 = 274,
+	OP_FTEREAD	 = 275,
+	OP_FTEWRITE	 = 276,
+	OP_FTEEXEC	 = 277,
+	OP_FTIS		 = 278,
+	OP_FTSIZE	 = 279,
+	OP_FTMTIME	 = 280,
+	OP_FTATIME	 = 281,
+	OP_FTCTIME	 = 282,
+	OP_FTROWNED	 = 283,
+	OP_FTEOWNED	 = 284,
+	OP_FTZERO	 = 285,
+	OP_FTSOCK	 = 286,
+	OP_FTCHR	 = 287,
+	OP_FTBLK	 = 288,
+	OP_FTFILE	 = 289,
+	OP_FTDIR	 = 290,
+	OP_FTPIPE	 = 291,
+	OP_FTSUID	 = 292,
+	OP_FTSGID	 = 293,
+	OP_FTSVTX	 = 294,
+	OP_FTLINK	 = 295,
+	OP_FTTTY	 = 296,
+	OP_FTTEXT	 = 297,
+	OP_FTBINARY	 = 298,
+	OP_CHDIR	 = 299,
+	OP_CHOWN	 = 300,
+	OP_CHROOT	 = 301,
+	OP_UNLINK	 = 302,
+	OP_CHMOD	 = 303,
+	OP_UTIME	 = 304,
+	OP_RENAME	 = 305,
+	OP_LINK		 = 306,
+	OP_SYMLINK	 = 307,
+	OP_READLINK	 = 308,
+	OP_MKDIR	 = 309,
+	OP_RMDIR	 = 310,
+	OP_OPEN_DIR	 = 311,
+	OP_READDIR	 = 312,
+	OP_TELLDIR	 = 313,
+	OP_SEEKDIR	 = 314,
+	OP_REWINDDIR	 = 315,
+	OP_CLOSEDIR	 = 316,
+	OP_FORK		 = 317,
+	OP_WAIT		 = 318,
+	OP_WAITPID	 = 319,
+	OP_SYSTEM	 = 320,
+	OP_EXEC		 = 321,
+	OP_KILL		 = 322,
+	OP_GETPPID	 = 323,
+	OP_GETPGRP	 = 324,
+	OP_SETPGRP	 = 325,
+	OP_GETPRIORITY	 = 326,
+	OP_SETPRIORITY	 = 327,
+	OP_TIME		 = 328,
+	OP_TMS		 = 329,
+	OP_LOCALTIME	 = 330,
+	OP_GMTIME	 = 331,
+	OP_ALARM	 = 332,
+	OP_SLEEP	 = 333,
+	OP_SHMGET	 = 334,
+	OP_SHMCTL	 = 335,
+	OP_SHMREAD	 = 336,
+	OP_SHMWRITE	 = 337,
+	OP_MSGGET	 = 338,
+	OP_MSGCTL	 = 339,
+	OP_MSGSND	 = 340,
+	OP_MSGRCV	 = 341,
+	OP_SEMOP	 = 342,
+	OP_SEMGET	 = 343,
+	OP_SEMCTL	 = 344,
+	OP_REQUIRE	 = 345,
+	OP_DOFILE	 = 346,
+	OP_HINTSEVAL	 = 347,
+	OP_ENTEREVAL	 = 348,
+	OP_LEAVEEVAL	 = 349,
+	OP_ENTERTRY	 = 350,
+	OP_LEAVETRY	 = 351,
+	OP_GHBYNAME	 = 352,
+	OP_GHBYADDR	 = 353,
+	OP_GHOSTENT	 = 354,
+	OP_GNBYNAME	 = 355,
+	OP_GNBYADDR	 = 356,
+	OP_GNETENT	 = 357,
+	OP_GPBYNAME	 = 358,
+	OP_GPBYNUMBER	 = 359,
+	OP_GPROTOENT	 = 360,
+	OP_GSBYNAME	 = 361,
+	OP_GSBYPORT	 = 362,
+	OP_GSERVENT	 = 363,
+	OP_SHOSTENT	 = 364,
+	OP_SNETENT	 = 365,
+	OP_SPROTOENT	 = 366,
+	OP_SSERVENT	 = 367,
+	OP_EHOSTENT	 = 368,
+	OP_ENETENT	 = 369,
+	OP_EPROTOENT	 = 370,
+	OP_ESERVENT	 = 371,
+	OP_GPWNAM	 = 372,
+	OP_GPWUID	 = 373,
+	OP_GPWENT	 = 374,
+	OP_SPWENT	 = 375,
+	OP_EPWENT	 = 376,
+	OP_GGRNAM	 = 377,
+	OP_GGRGID	 = 378,
+	OP_GGRENT	 = 379,
+	OP_SGRENT	 = 380,
+	OP_EGRENT	 = 381,
+	OP_GETLOGIN	 = 382,
+	OP_SYSCALL	 = 383,
+	OP_LOCK		 = 384,
+	OP_ONCE		 = 385,
+	OP_CUSTOM	 = 386,
+	OP_COREARGS	 = 387,
+	OP_AVHVSWITCH	 = 388,
+	OP_RUNCV	 = 389,
+	OP_FC		 = 390,
+	OP_PADCV	 = 391,
+	OP_INTROCV	 = 392,
+	OP_CLONECV	 = 393,
+	OP_PADRANGE	 = 394,
+	OP_REFASSIGN	 = 395,
+	OP_LVREF	 = 396,
+	OP_LVREFSLICE	 = 397,
+	OP_LVAVREF	 = 398,
+	OP_ANONCONST	 = 399,
+	OP_ISA		 = 400,
+	OP_CMPCHAIN_AND	 = 401,
+	OP_CMPCHAIN_DUP	 = 402,
+	OP_ENTERTRYCATCH = 403,
+	OP_LEAVETRYCATCH = 404,
+	OP_POPTRY	 = 405,
+	OP_CATCH	 = 406,
+	OP_PUSHDEFER	 = 407,
+	OP_IS_BOOL	 = 408,
+	OP_IS_WEAK	 = 409,
+	OP_WEAKEN	 = 410,
+	OP_UNWEAKEN	 = 411,
+	OP_BLESSED	 = 412,
+	OP_REFADDR	 = 413,
+	OP_REFTYPE	 = 414,
+	OP_CEIL		 = 415,
+	OP_FLOOR	 = 416,
+	OP_IS_TAINTED	 = 417,
+	OP_HELEMEXISTSOR = 418,
+	OP_METHSTART	 = 419,
+	OP_INITFIELD	 = 420,
 	OP_max		
 } opcode;
 
-#define MAXO 414
+#define MAXO 421
 #define OP_FREED MAXO
 
 /* the OP_IS_* macros are optimized to a simple range check because
@@ -439,22 +446,22 @@ typedef enum opcode {
     opcode.pl verifies the range contiguity, or generates an OR-equals
     expression */
 
-#define OP_IS_SOCKET(op)	\
+#define OP_IS_SOCKET(op)   \
 	((op) >= OP_SEND && (op) <= OP_GETPEERNAME)
 
-#define OP_IS_FILETEST(op)	\
+#define OP_IS_FILETEST(op)   \
 	((op) >= OP_FTRREAD && (op) <= OP_FTBINARY)
 
-#define OP_IS_FILETEST_ACCESS(op)	\
+#define OP_IS_FILETEST_ACCESS(op)   \
 	((op) >= OP_FTRREAD && (op) <= OP_FTEEXEC)
 
-#define OP_IS_NUMCOMPARE(op)	\
+#define OP_IS_NUMCOMPARE(op)   \
 	((op) >= OP_LT && (op) <= OP_I_NCMP)
 
-#define OP_IS_DIRHOP(op)	\
+#define OP_IS_DIRHOP(op)   \
 	((op) >= OP_READDIR && (op) <= OP_CLOSEDIR)
 
-#define OP_IS_INFIX_BIT(op)	\
+#define OP_IS_INFIX_BIT(op)   \
 	((op) >= OP_BIT_AND && (op) <= OP_SBIT_OR)
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/overload.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/overload.h,v
diff -u -p -a -u -p -r1.2 overload.h
--- gnu/usr.bin/perl/overload.h	5 Feb 2017 00:31:53 -0000	1.2
+++ gnu/usr.bin/perl/overload.h	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    overload.h
  *
@@ -95,4 +95,4 @@ enum {
 
 #define NofAMmeth max_amg_code
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/overload.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/overload.inc,v
diff -u -p -a -u -p -r1.1 overload.inc
--- gnu/usr.bin/perl/overload.inc	5 Feb 2017 00:31:53 -0000	1.1
+++ gnu/usr.bin/perl/overload.inc	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    overload.inc
  *
@@ -177,4 +177,4 @@ static const char * const PL_AMG_names[N
     "(qr"
 };
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/packsizetables.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/packsizetables.inc,v
diff -u -p -a -u -p -r1.2 packsizetables.inc
--- gnu/usr.bin/perl/packsizetables.inc	15 Feb 2023 01:36:13 -0000	1.2
+++ gnu/usr.bin/perl/packsizetables.inc	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen/genpacksizetables.pl from its data.
    Any changes made here will be lost!
@@ -219,4 +219,4 @@ STATIC const packprops_t packprops[512] 
 };
 #endif
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/pad.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pad.c,v
diff -u -p -a -u -p -r1.6 pad.c
--- gnu/usr.bin/perl/pad.c	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/pad.c	21 Feb 2024 15:47:02 -0000
@@ -302,7 +302,7 @@ void
 Perl_cv_undef_flags(pTHX_ CV *cv, U32 flags)
 {
     CV cvbody;/*CV body will never be realloced inside this func,
-               so dont read it more than once, use fake CV so existing macros
+               so don't read it more than once, use fake CV so existing macros
                will work, the indirection and CV head struct optimized away*/
     SvANY(&cvbody) = SvANY(cv);
 
@@ -357,7 +357,7 @@ Perl_cv_undef_flags(pTHX_ CV *cv, U32 fl
 #endif
         }
     }
-    else { /* dont bother checking if CvXSUB(cv) is true, less branching */
+    else { /* don't bother checking if CvXSUB(cv) is true, less branching */
         CvXSUB(&cvbody) = NULL;
     }
     SvPOK_off(MUTABLE_SV(cv));		/* forget prototype */
@@ -457,8 +457,11 @@ Perl_cv_undef_flags(pTHX_ CV *cv, U32 fl
         Safefree(padlist);
         CvPADLIST_set(&cvbody, NULL);
     }
-    else if (CvISXSUB(&cvbody))
+    else if (CvISXSUB(&cvbody)) {
+        if (CvREFCOUNTED_ANYSV(&cvbody))
+            SvREFCNT_dec(CvXSUBANY(&cvbody).any_sv);
         CvHSCXT(&cvbody) = NULL;
+    }
     /* else is (!CvISXSUB(&cvbody) && !CvPADLIST(&cvbody)) {do nothing;} */
 
 
@@ -550,17 +553,21 @@ S_pad_alloc_name(pTHX_ PADNAME *name, U3
     ASSERT_CURPAD_ACTIVE("pad_alloc_name");
 
     if (typestash) {
-        SvPAD_TYPED_on(name);
+        PadnameFLAGS(name) |= PADNAMEf_TYPED;
         PadnameTYPE(name) =
             MUTABLE_HV(SvREFCNT_inc_simple_NN(MUTABLE_SV(typestash)));
     }
     if (ourstash) {
-        SvPAD_OUR_on(name);
-        SvOURSTASH_set(name, ourstash);
+        PadnameFLAGS(name) |= PADNAMEf_OUR;
+        PadnameOURSTASH_set(name, ourstash);
         SvREFCNT_inc_simple_void_NN(ourstash);
     }
     else if (flags & padadd_STATE) {
-        SvPAD_STATE_on(name);
+        PadnameFLAGS(name) |= PADNAMEf_STATE;
+    }
+    if (flags & padadd_FIELD) {
+        assert(HvSTASH_IS_CLASS(PL_curstash));
+        class_add_field(PL_curstash, name);
     }
 
     padnamelist_store(PL_comppad_name, offset, name);
@@ -586,6 +593,7 @@ flags can be OR'ed together:
  padadd_OUR          redundantly specifies if it's a package var
  padadd_STATE        variable will retain value persistently
  padadd_NO_DUP_CHECK skip check for lexical shadowing
+ padadd_FIELD        specifies that the lexical is a field for a class
 
 =cut
 */
@@ -599,7 +607,7 @@ Perl_pad_add_name_pvn(pTHX_ const char *
 
     PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN;
 
-    if (flags & ~(padadd_OUR|padadd_STATE|padadd_NO_DUP_CHECK))
+    if (flags & ~(padadd_OUR|padadd_STATE|padadd_NO_DUP_CHECK|padadd_FIELD))
         Perl_croak(aTHX_ "panic: pad_add_name_pvn illegal flag bits 0x%" UVxf,
                    (UV)flags);
 
@@ -609,8 +617,8 @@ Perl_pad_add_name_pvn(pTHX_ const char *
         ENTER;
         SAVEFREEPADNAME(name); /* in case of fatal warnings */
         /* check for duplicate declaration */
-        pad_check_dup(name, flags & padadd_OUR, ourstash);
-        PadnameREFCNT(name)++;
+        pad_check_dup(name, flags & (padadd_OUR|padadd_FIELD), ourstash);
+        PadnameREFCNT_inc(name);
         LEAVE;
     }
 
@@ -861,12 +869,13 @@ S_pad_check_dup(pTHX_ PADNAME *name, U32
     PADNAME	**svp;
     PADOFFSET	top, off;
     const U32	is_our = flags & padadd_OUR;
+    bool        is_field = flags & padadd_FIELD;
 
     PERL_ARGS_ASSERT_PAD_CHECK_DUP;
 
     ASSERT_CURPAD_ACTIVE("pad_check_dup");
 
-    assert((flags & ~padadd_OUR) == 0);
+    assert((flags & ~(padadd_OUR|padadd_FIELD)) == 0);
 
     if (PadnamelistMAX(PL_comppad_name) < 0 || !ckWARN(WARN_SHADOW))
         return; /* nothing to check */
@@ -875,26 +884,30 @@ S_pad_check_dup(pTHX_ PADNAME *name, U32
     top = PadnamelistMAX(PL_comppad_name);
     /* check the current scope */
     for (off = top; off > PL_comppad_name_floor; off--) {
-        PADNAME * const sv = svp[off];
-        if (sv
-            && PadnameLEN(sv) == PadnameLEN(name)
-            && !PadnameOUTER(sv)
-            && (   COP_SEQ_RANGE_LOW(sv)  == PERL_PADSEQ_INTRO
-                || COP_SEQ_RANGE_HIGH(sv) == PERL_PADSEQ_INTRO)
-            && memEQ(PadnamePV(sv), PadnamePV(name), PadnameLEN(name)))
+        PADNAME * const pn = svp[off];
+        if (pn
+            && PadnameLEN(pn) == PadnameLEN(name)
+            && !PadnameOUTER(pn)
+            && (   COP_SEQ_RANGE_LOW(pn)  == PERL_PADSEQ_INTRO
+                || COP_SEQ_RANGE_HIGH(pn) == PERL_PADSEQ_INTRO)
+            && memEQ(PadnamePV(pn), PadnamePV(name), PadnameLEN(name)))
         {
-            if (is_our && (SvPAD_OUR(sv)))
+            if (is_our && (PadnameIsOUR(pn)))
                 break; /* "our" masking "our" */
+            if (is_field && PadnameIsFIELD(pn) &&
+                    PadnameFIELDINFO(pn)->fieldstash != PL_curstash)
+                break; /* field of a different class */
             /* diag_listed_as: "%s" variable %s masks earlier declaration in same %s */
             Perl_warner(aTHX_ packWARN(WARN_SHADOW),
                 "\"%s\" %s %" PNf " masks earlier declaration in same %s",
                 (   is_our                         ? "our"   :
                     PL_parser->in_my == KEY_my     ? "my"    :
                     PL_parser->in_my == KEY_sigvar ? "my"    :
+                    PL_parser->in_my == KEY_field  ? "field" :
                                                      "state" ),
-                *PadnamePV(sv) == '&' ? "subroutine" : "variable",
-                PNfARG(sv),
-                (COP_SEQ_RANGE_HIGH(sv) == PERL_PADSEQ_INTRO
+                *PadnamePV(pn) == '&' ? "subroutine" : "variable",
+                PNfARG(pn),
+                (COP_SEQ_RANGE_HIGH(pn) == PERL_PADSEQ_INTRO
                     ? "scope" : "statement"));
             --off;
             break;
@@ -903,17 +916,17 @@ S_pad_check_dup(pTHX_ PADNAME *name, U32
     /* check the rest of the pad */
     if (is_our) {
         while (off > 0) {
-            PADNAME * const sv = svp[off];
-            if (sv
-                && PadnameLEN(sv) == PadnameLEN(name)
-                && !PadnameOUTER(sv)
-                && (   COP_SEQ_RANGE_LOW(sv)  == PERL_PADSEQ_INTRO
-                    || COP_SEQ_RANGE_HIGH(sv) == PERL_PADSEQ_INTRO)
-                && SvOURSTASH(sv) == ourstash
-                && memEQ(PadnamePV(sv), PadnamePV(name), PadnameLEN(name)))
+            PADNAME * const pn = svp[off];
+            if (pn
+                && PadnameLEN(pn) == PadnameLEN(name)
+                && !PadnameOUTER(pn)
+                && (   COP_SEQ_RANGE_LOW(pn)  == PERL_PADSEQ_INTRO
+                    || COP_SEQ_RANGE_HIGH(pn) == PERL_PADSEQ_INTRO)
+                && PadnameOURSTASH(pn) == ourstash
+                && memEQ(PadnamePV(pn), PadnamePV(name), PadnameLEN(name)))
             {
                 Perl_warner(aTHX_ packWARN(WARN_SHADOW),
-                    "\"our\" variable %" PNf " redeclared", PNfARG(sv));
+                    "\"our\" variable %" PNf " redeclared", PNfARG(pn));
                 if (off <= PL_comppad_name_floor)
                     Perl_warner(aTHX_ packWARN(WARN_SHADOW),
                         "\t(Did you mean \"local\" instead of \"our\"?)\n");
@@ -1026,26 +1039,6 @@ Perl_pad_findmy_sv(pTHX_ SV *name, U32 f
 }
 
 /*
-=for apidoc find_rundefsvoffset
-
-Until the lexical C<$_> feature was removed, this function would
-find the position of the lexical C<$_> in the pad of the
-currently-executing function and return the offset in the current pad,
-or C<NOT_IN_PAD>.
-
-Now it always returns C<NOT_IN_PAD>.
-
-=cut
-*/
-
-PADOFFSET
-Perl_find_rundefsvoffset(pTHX)
-{
-    PERL_UNUSED_CONTEXT; /* Can we just remove the pTHX from the sig? */
-    return NOT_IN_PAD;
-}
-
-/*
 =for apidoc find_rundefsv
 
 Returns the global variable C<$_>.
@@ -1110,11 +1103,12 @@ S_pad_findlex(pTHX_ const char *namepv, 
     SV *new_capture;
     SV **new_capturep;
     const PADLIST * const padlist = CvPADLIST(cv);
-    const bool staleok = !!(flags & padadd_STALEOK);
+    const bool staleok = cBOOL(flags & padadd_STALEOK);
+    const bool fieldok = cBOOL(flags & padfind_FIELD_OK);
 
     PERL_ARGS_ASSERT_PAD_FINDLEX;
 
-    flags &= ~ padadd_STALEOK; /* one-shot flag */
+    flags &= ~(padadd_STALEOK|padfind_FIELD_OK); /* one-shot flags */
     if (flags)
         Perl_croak(aTHX_ "panic: pad_findlex illegal flag bits 0x%" UVxf,
                    (UV)flags);
@@ -1153,6 +1147,10 @@ S_pad_findlex(pTHX_ const char *namepv, 
                 fake_offset = 0;
                 *out_name = name_p[offset]; /* return the name */
 
+                if (PadnameIsFIELD(*out_name) && !fieldok)
+                    croak("Field %" SVf " is not accessible outside a method",
+                            SVfARG(PadnameSV(*out_name)));
+
                 /* set PAD_FAKELEX_MULTI if this lex can have multiple
                  * instances. For now, we just test !CvUNIQUE(cv), but
                  * ideally, we should detect my's declared within loops
@@ -1276,13 +1274,27 @@ S_pad_findlex(pTHX_ const char *namepv, 
     new_capturep = out_capture ? out_capture :
                 CvLATE(cv) ? NULL : &new_capture;
 
-    offset = pad_findlex(namepv, namelen,
-                flags | padadd_STALEOK*(new_capturep == &new_capture),
+    U32 recurse_flags = flags;
+    if(new_capturep == &new_capture)
+        recurse_flags |= padadd_STALEOK;
+    if(CvIsMETHOD(cv))
+        recurse_flags |= padfind_FIELD_OK;
+
+    offset = pad_findlex(namepv, namelen, recurse_flags,
                 CvOUTSIDE(cv), CvOUTSIDE_SEQ(cv), 1,
                 new_capturep, out_name, out_flags);
     if (offset == NOT_IN_PAD)
         return NOT_IN_PAD;
 
+    if (PadnameIsFIELD(*out_name)) {
+        HV *fieldstash = PadnameFIELDINFO(*out_name)->fieldstash;
+
+        /* fields are only visible to the class that declared them */
+        if(fieldstash != PL_curstash)
+            croak("Field %" SVf " of %" HvNAMEf_QUOTEDPREFIX " is not accessible in a method of %" HvNAMEf_QUOTEDPREFIX,
+                SVfARG(PadnameSV(*out_name)), HvNAMEfARG(fieldstash), HvNAMEfARG(PL_curstash));
+    }
+
     /* found in an outer CV. Add appropriate fake entry to this pad */
 
     /* don't add new fake entries (via eval) to CVs that we have already
@@ -1986,7 +1998,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, 
                 /* formats may have an inactive, or even undefined, parent;
                    but state vars are always available. */
                 if (!outpad || !(sv = outpad[PARENT_PAD_INDEX(namesv)])
-                 || (  SvPADSTALE(sv) && !SvPAD_STATE(namesv)
+                 || (  SvPADSTALE(sv) && !PadnameIsSTATE(namesv)
                     && (!outside || !CvDEPTH(outside)))  ) {
                     S_unavailable(aTHX_ namesv);
                     sv = NULL;
@@ -2004,7 +2016,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, 
                        ing over other state subs’ entries, so we have
                        to put a stub here and then clone into it on the
                        second pass. */
-                    if (SvPAD_STATE(namesv) && !CvCLONED(ppad[ix])) {
+                    if (PadnameIsSTATE(namesv) && !CvCLONED(ppad[ix])) {
                         assert(SvTYPE(ppad[ix]) == SVt_PVCV);
                         subclones ++;
                         if (CvOUTSIDE(ppad[ix]) != proto)
@@ -2037,7 +2049,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, 
                 else
                     sv = newSV_type(SVt_NULL);
                 /* reset the 'assign only once' flag on each state var */
-                if (sigil != '&' && SvPAD_STATE(namesv))
+                if (sigil != '&' && PadnameIsSTATE(namesv))
                     SvPADSTALE_on(sv);
             }
           }
@@ -2123,7 +2135,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, 
 
     if (CvCONST(cv)) {
         /* Constant sub () { $x } closing over $x:
-         * The prototype was marked as a candiate for const-ization,
+         * The prototype was marked as a candidate for const-ization,
          * so try to grab the current const value, and if successful,
          * turn into a const sub:
          */
@@ -2138,7 +2150,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, 
         /* the candidate should have 1 ref from this pad and 1 ref
          * from the parent */
         if (const_sv && SvREFCNT(const_sv) == 2) {
-            const bool was_method = cBOOL(CvMETHOD(cv));
+            const bool was_method = cBOOL(CvNOWARN_AMBIGUOUS(cv));
             if (outside) {
                 PADNAME * const pn =
                     PadlistNAMESARRAY(CvPADLIST(outside))
@@ -2184,7 +2196,7 @@ S_cv_clone_pad(pTHX_ CV *proto, CV *cv, 
             SvREFCNT_dec_NN(cv);
             cv = newCONSTSUB(CvSTASH(proto), NULL, const_sv);
             if (was_method)
-                CvMETHOD_on(cv);
+                CvNOWARN_AMBIGUOUS_on(cv);
         }
         else {
           constoff:
@@ -2221,6 +2233,8 @@ S_cv_clone(pTHX_ CV *proto, CV *cv, CV *
     if (UNLIKELY(CvISXSUB(proto))) {
         CvXSUB(cv)    = CvXSUB(proto);
         CvXSUBANY(cv) = CvXSUBANY(proto);
+        if (CvREFCOUNTED_ANYSV(cv))
+            SvREFCNT_inc(CvXSUBANY(cv).any_sv);
     }
     else {
         OP_REFCNT_LOCK;
@@ -2463,8 +2477,6 @@ Perl_pad_push(pTHX_ PADLIST *padlist, in
 
 #if defined(USE_ITHREADS)
 
-#  define av_dup_inc(s,t)	MUTABLE_AV(sv_dup_inc((const SV *)s,t))
-
 /*
 =for apidoc padlist_dup
 
@@ -2492,9 +2504,7 @@ Perl_padlist_dup(pTHX_ PADLIST *srcpad, 
     PadlistMAX(dstpad) = max;
     Newx(PadlistARRAY(dstpad), max + 1, PAD *);
 
-    PadlistARRAY(dstpad)[0] = (PAD *)
-            padnamelist_dup(PadlistNAMES(srcpad), param);
-    PadnamelistREFCNT(PadlistNAMES(dstpad))++;
+    PadlistARRAY(dstpad)[0] = (PAD *)padnamelist_dup_inc(PadlistNAMES(srcpad), param);
     if (cloneall) {
         PADOFFSET depth;
         for (depth = 1; depth <= max; ++depth)
@@ -2728,8 +2738,7 @@ Perl_padnamelist_dup(pTHX_ PADNAMELIST *
     for (; max >= 0; max--)
       if (PadnamelistARRAY(srcpad)[max]) {
         PadnamelistARRAY(dstpad)[max] =
-            padname_dup(PadnamelistARRAY(srcpad)[max], param);
-        PadnameREFCNT(PadnamelistARRAY(dstpad)[max])++;
+            padname_dup_inc(PadnamelistARRAY(srcpad)[max], param);
       }
 
     return dstpad;
@@ -2773,9 +2782,9 @@ Perl_newPADNAMEpvn(const char *s, STRLEN
 Constructs and returns a new pad name.  Only use this function for names
 that refer to outer lexicals.  (See also L</newPADNAMEpvn>.)  C<outer> is
 the outer pad name that this one mirrors.  The returned pad name has the
-C<PADNAMEt_OUTER> flag already set.
+C<PADNAMEf_OUTER> flag already set.
 
-=for apidoc Amnh||PADNAMEt_OUTER
+=for apidoc Amnh||PADNAMEf_OUTER
 
 =cut
 */
@@ -2790,8 +2799,13 @@ Perl_newPADNAMEouter(PADNAME *outer)
     PadnamePV(pn) = PadnamePV(outer);
     /* Not PadnameREFCNT(outer), because ‘outer’ may itself close over
        another entry.  The original pad name owns the buffer.  */
-    PadnameREFCNT(PADNAME_FROM_PV(PadnamePV(outer)))++;
-    PadnameFLAGS(pn) = PADNAMEt_OUTER;
+    PadnameREFCNT_inc(PADNAME_FROM_PV(PadnamePV(outer)));
+    PadnameFLAGS(pn) = PADNAMEf_OUTER;
+    if(PadnameIsFIELD(outer)) {
+        PadnameFIELDINFO(pn) = PadnameFIELDINFO(outer);
+        PadnameFIELDINFO(pn)->refcount++;
+        PadnameFLAGS(pn) |= PADNAMEf_FIELD;
+    }
     PadnameLEN(pn) = PadnameLEN(outer);
     return pn;
 }
@@ -2809,6 +2823,16 @@ Perl_padname_free(pTHX_ PADNAME *pn)
         SvREFCNT_dec(PadnameOURSTASH(pn));
         if (PadnameOUTER(pn))
             PadnameREFCNT_dec(PADNAME_FROM_PV(PadnamePV(pn)));
+        if (PadnameIsFIELD(pn)) {
+            struct padname_fieldinfo *info = PadnameFIELDINFO(pn);
+            if(!--info->refcount) {
+                SvREFCNT_dec(info->fieldstash);
+                /* todo: something about defop */
+                SvREFCNT_dec(info->paramname);
+
+                Safefree(info);
+            }
+        }
         Safefree(pn);
     }
 }
@@ -2851,6 +2875,18 @@ Perl_padname_dup(pTHX_ PADNAME *src, CLO
     PadnameTYPE   (dst) = (HV *)sv_dup_inc((SV *)PadnameTYPE(src), param);
     PadnameOURSTASH(dst) = (HV *)sv_dup_inc((SV *)PadnameOURSTASH(src),
                                             param);
+    if(PadnameIsFIELD(src) && !PadnameOUTER(src)) {
+        struct padname_fieldinfo *sinfo = PadnameFIELDINFO(src);
+        struct padname_fieldinfo *dinfo;
+        Newxz(dinfo, 1, struct padname_fieldinfo);
+
+        dinfo->refcount   = 1;
+        dinfo->fieldix    = sinfo->fieldix;
+        dinfo->fieldstash = hv_dup_inc(sinfo->fieldstash, param);
+        dinfo->paramname  = sv_dup_inc(sinfo->paramname, param);
+
+        PadnameFIELDINFO(dst) = dinfo;
+    }
     dst->xpadn_low  = src->xpadn_low;
     dst->xpadn_high = src->xpadn_high;
     dst->xpadn_gen  = src->xpadn_gen;
@@ -2858,6 +2894,91 @@ Perl_padname_dup(pTHX_ PADNAME *src, CLO
 }
 
 #endif /* USE_ITHREADS */
+
+/*
+=for apidoc_section $lexer
+=for apidoc suspend_compcv
+
+Implements part of the concept of a "suspended compilation CV", which can be
+used to pause the parser and compiler during parsing a CV in order to come
+back to it later on.
+
+This function saves the current state of the subroutine under compilation
+(C<PL_compcv>) into the supplied buffer.  This should be used initially to
+create the state in the buffer, as the final thing before a C<LEAVE> within a
+block.
+
+    ENTER;
+    start_subparse(0);
+    ...
+
+    suspend_compcv(&buffer);
+    LEAVE;
+
+Once suspended, the C<resume_compcv> or C<resume_compcv_and_save> function can
+later be used to continue the parsing from the point this stopped.
+
+=cut
+*/
+
+void
+Perl_suspend_compcv(pTHX_ struct suspended_compcv *buffer)
+{
+    PERL_ARGS_ASSERT_SUSPEND_COMPCV;
+
+    buffer->compcv = PL_compcv;
+
+    buffer->padix             = PL_padix;
+    buffer->constpadix        = PL_constpadix;
+
+    buffer->comppad_name_fill = PL_comppad_name_fill;
+    buffer->min_intro_pending = PL_min_intro_pending;
+    buffer->max_intro_pending = PL_max_intro_pending;
+
+    buffer->cv_has_eval       = PL_cv_has_eval;
+    buffer->pad_reset_pending = PL_pad_reset_pending;
+}
+
+/*
+=for apidoc resume_compcv_final
+
+Resumes the parser state previously saved using the C<suspend_compcv> function
+for a final time before being compiled into a full CV.  This should be used
+within an C<ENTER>/C<LEAVE> scoped pair.
+
+=for apidoc resume_compcv_and_save
+
+Resumes a buffer previously suspended by the C<suspend_compcv> function, in a
+way that will be re-suspended at the end of the scope so it can be used again
+later.  This should be used within an C<ENTER>/C<LEAVE> scoped pair.
+
+=cut
+*/
+
+void
+Perl_resume_compcv(pTHX_ struct suspended_compcv *buffer, bool save)
+{
+    PERL_ARGS_ASSERT_RESUME_COMPCV;
+
+    SAVESPTR(PL_compcv);
+    PL_compcv = buffer->compcv;
+    PAD_SET_CUR(CvPADLIST(PL_compcv), 1);
+
+    SAVESPTR(PL_comppad_name);
+    PL_comppad_name = PadlistNAMES(CvPADLIST(PL_compcv));
+
+    SAVESTRLEN(PL_padix);             PL_padix             = buffer->padix;
+    SAVESTRLEN(PL_constpadix);        PL_constpadix        = buffer->constpadix;
+    SAVESTRLEN(PL_comppad_name_fill); PL_comppad_name_fill = buffer->comppad_name_fill;
+    SAVESTRLEN(PL_min_intro_pending); PL_min_intro_pending = buffer->min_intro_pending;
+    SAVESTRLEN(PL_max_intro_pending); PL_max_intro_pending = buffer->max_intro_pending;
+
+    SAVEBOOL(PL_cv_has_eval);       PL_cv_has_eval       = buffer->cv_has_eval;
+    SAVEBOOL(PL_pad_reset_pending); PL_pad_reset_pending = buffer->pad_reset_pending;
+
+    if(save)
+        SAVEDESTRUCTOR_X(&Perl_suspend_compcv, buffer);
+}
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/pad.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pad.h,v
diff -u -p -a -u -p -r1.5 pad.h
--- gnu/usr.bin/perl/pad.h	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/pad.h	21 Feb 2024 15:47:02 -0000
@@ -23,8 +23,9 @@ typedef SSize_t PADOFFSET; /* signed so 
 struct padlist {
     SSize_t	xpadl_max;	/* max index for which array has space */
     union {
-        PAD **	xpadlarr_alloc; /* Pointer to beginning of array of AVs.
-                                   index 0 is a padnamelist *          */
+        PAD **  xpadlarr_alloc; /* Pointer to beginning of array of AVs.
+                                   Note that a 'padnamelist *' is stored
+                                   in the 0 index of the AV. */
         struct {
             PADNAMELIST * padnl;
             PAD * pad_1;        /* this slice of PAD * array always alloced */
@@ -54,6 +55,8 @@ struct padnamelist {
 #  define PERL_PADNAME_MINIMAL
 #endif
 
+struct padname_fieldinfo;
+
 #define _PADNAME_BASE \
     char *	xpadn_pv;		\
     HV *	xpadn_ourstash;		\
@@ -61,6 +64,7 @@ struct padnamelist {
         HV *	xpadn_typestash;	\
         CV *	xpadn_protocv;		\
     } xpadn_type_u;			\
+    struct padname_fieldinfo *xpadn_fieldinfo; \
     U32		xpadn_low;		\
     U32		xpadn_high;		\
     U32		xpadn_refcnt;		\
@@ -86,6 +90,19 @@ struct padname_with_str {
 #define PADNAME_FROM_PV(s) \
     ((PADNAME *)((s) - STRUCT_OFFSET(struct padname_with_str, xpadn_str)))
 
+/* Most padnames are not field names. Keep all the field-related info in its
+ * own substructure, stored in ->xpadn_fieldinfo.
+ */
+struct padname_fieldinfo {
+    U32        refcount;
+    PADOFFSET  fieldix;    /* index of this field within ObjectFIELDS() array */
+    HV        *fieldstash; /* original class package which added this field */
+    OP        *defop;      /* optree fragment for defaulting expression */
+    SV        *paramname;  /* name of the :param to look for in constructor */
+    int        def_if_undef : 1; /* default op uses //= */
+    int        def_if_false : 1; /* default op uses ||= */
+};
+
 
 /* a value that PL_cop_seqmax is guaranteed never to be,
  * flagging that a lexical is being introduced, or has not yet left scope
@@ -131,6 +148,8 @@ typedef enum {
 #define padadd_NO_DUP_CHECK	0x04	   /* skip warning on dups. */
 #define padadd_STALEOK		0x08	   /* allow stale lexical in active
                                             * sub, but only one level up */
+#define padadd_FIELD            0x10       /* set PADNAMEt_FIELD */
+#define padfind_FIELD_OK        0x20       /* pad_findlex is permitted to see fields */
 
 /* ASSERT_CURPAD_LEGAL and ASSERT_CURPAD_ACTIVE respectively determine
  * whether PL_comppad and PL_curpad are consistent and whether they have
@@ -160,8 +179,9 @@ typedef enum {
 
 /* Note: the following three macros are actually defined in scope.h, but
  * they are documented here for completeness, since they directly or
- * indirectly affect pads.
+ * indirectly affect pads. */
 
+/*
 =for apidoc m|void|SAVEPADSV	|PADOFFSET po
 Save a pad slot (used to restore after an iteration)
 
@@ -242,6 +262,10 @@ are often referred to as 'fake'.
 =for apidoc m|bool|PadnameIsSTATE|PADNAME * pn
 Whether this is a "state" variable.
 
+=for apidoc m|bool|PadnameIsFIELD|PADNAME * pn
+Whether this is a "field" variable.  PADNAMEs where this is true will
+have additional information available via C<PadnameFIELDINFO>.
+
 =for apidoc m|HV *|PadnameTYPE|PADNAME * pn
 The stash associated with a typed lexical.  This returns the C<%Foo::> hash
 for C<my Foo $bar>.
@@ -249,6 +273,9 @@ for C<my Foo $bar>.
 =for apidoc Amx|SSize_t|PadnameREFCNT|PADNAME * pn
 The reference count of the pad name.
 
+=for apidoc Amx|PADNAME *|PadnameREFCNT_inc|PADNAME * pn
+Increases the reference count of the pad name.  Returns the pad name itself.
+
 =for apidoc Amx|void|PadnameREFCNT_dec|PADNAME * pn
 Lowers the reference count of the pad name.
 
@@ -304,6 +331,7 @@ Restore the old pad saved into the local
 #define PadnamelistMAX(pnl)		(pnl)->xpadnl_fill
 #define PadnamelistMAXNAMED(pnl)	(pnl)->xpadnl_max_named
 #define PadnamelistREFCNT(pnl)		(pnl)->xpadnl_refcnt
+#define PadnamelistREFCNT_inc(pnl)      Perl_padnamelist_refcnt_inc(pnl)
 #define PadnamelistREFCNT_dec(pnl)	Perl_padnamelist_free(aTHX_ pnl)
 
 #define PadARRAY(pad)		AvARRAY(pad)
@@ -315,39 +343,56 @@ Restore the old pad saved into the local
 #define PadnameSV(pn) \
         newSVpvn_flags(PadnamePV(pn), PadnameLEN(pn), SVs_TEMP|SVf_UTF8)
 #define PadnameFLAGS(pn)	(pn)->xpadn_flags
-#define PadnameIsOUR(pn)	(!!(pn)->xpadn_ourstash)
+#define PadnameIsOUR(pn)	cBOOL((pn)->xpadn_ourstash)
 #define PadnameOURSTASH(pn)	(pn)->xpadn_ourstash
 #define PadnameTYPE(pn)		(pn)->xpadn_type_u.xpadn_typestash
+#define PadnameHasTYPE(pn)      cBOOL(PadnameTYPE(pn))
 #define PadnamePROTOCV(pn)	(pn)->xpadn_type_u.xpadn_protocv
 #define PadnameREFCNT(pn)	(pn)->xpadn_refcnt
+#define PadnameREFCNT_inc(pn)   Perl_padname_refcnt_inc(pn)
 #define PadnameREFCNT_dec(pn)	Perl_padname_free(aTHX_ pn)
 #define PadnameOURSTASH_set(pn,s) (PadnameOURSTASH(pn) = (s))
 #define PadnameTYPE_set(pn,s)	  (PadnameTYPE(pn) = (s))
-#define PadnameOUTER(pn)	(PadnameFLAGS(pn) & PADNAMEt_OUTER)
-#define PadnameIsSTATE(pn)	(PadnameFLAGS(pn) & PADNAMEt_STATE)
-#define PadnameLVALUE(pn)	(PadnameFLAGS(pn) & PADNAMEt_LVALUE)
-
-#define PadnameLVALUE_on(pn)	(PadnameFLAGS(pn) |= PADNAMEt_LVALUE)
-#define PadnameIsSTATE_on(pn)	(PadnameFLAGS(pn) |= PADNAMEt_STATE)
-
-#define PADNAMEt_OUTER	1	/* outer lexical var */
-#define PADNAMEt_STATE	2	/* state var */
-#define PADNAMEt_LVALUE	4	/* used as lvalue */
-#define PADNAMEt_TYPED	8	/* for B; unused by core */
-#define PADNAMEt_OUR	16	/* for B; unused by core */
+#define PadnameFIELDINFO(pn)    (pn)->xpadn_fieldinfo
+#define PadnameOUTER(pn)	(PadnameFLAGS(pn) & PADNAMEf_OUTER)
+#define PadnameIsSTATE(pn)	(PadnameFLAGS(pn) & PADNAMEf_STATE)
+#define PadnameLVALUE(pn)	(PadnameFLAGS(pn) & PADNAMEf_LVALUE)
+#define PadnameIsFIELD(pn)	(PadnameFLAGS(pn) & PADNAMEf_FIELD)
+
+#define PadnameLVALUE_on(pn)	(PadnameFLAGS(pn) |= PADNAMEf_LVALUE)
+#define PadnameIsSTATE_on(pn)	(PadnameFLAGS(pn) |= PADNAMEf_STATE)
+
+#define PADNAMEf_OUTER	0x01	/* outer lexical var */
+#define PADNAMEf_STATE	0x02	/* state var */
+#define PADNAMEf_LVALUE	0x04	/* used as lvalue */
+#define PADNAMEf_TYPED	0x08	/* for B; unused by core */
+#define PADNAMEf_OUR	0x10	/* for B; unused by core */
+#define PADNAMEf_FIELD  0x20    /* field var */
 
 /* backward compatibility */
-#define SvPAD_STATE		PadnameIsSTATE
-#define SvPAD_TYPED(pn)		(!!PadnameTYPE(pn))
-#define SvPAD_OUR(pn)		(!!PadnameOURSTASH(pn))
-#define SvPAD_STATE_on		PadnameIsSTATE_on
-#define SvPAD_TYPED_on(pn)	(PadnameFLAGS(pn) |= PADNAMEt_TYPED)
-#define SvPAD_OUR_on(pn)	(PadnameFLAGS(pn) |= PADNAMEt_OUR)
-#define SvOURSTASH		PadnameOURSTASH
-#define SvOURSTASH_set		PadnameOURSTASH_set
-#define SVpad_STATE		PADNAMEt_STATE
-#define SVpad_TYPED		PADNAMEt_TYPED
-#define SVpad_OUR		PADNAMEt_OUR
+#ifndef PERL_CORE
+#  define SvPAD_STATE           PadnameIsSTATE
+#  define SvPAD_TYPED           PadnameHasTYPE
+#  define SvPAD_OUR(pn)         cBOOL(PadnameOURSTASH(pn))
+#  define SvPAD_STATE_on        PadnameIsSTATE_on
+#  define SvPAD_TYPED_on(pn)    (PadnameFLAGS(pn) |= PADNAMEf_TYPED)
+#  define SvPAD_OUR_on(pn)      (PadnameFLAGS(pn) |= PADNAMEf_OUR)
+#  define SvOURSTASH            PadnameOURSTASH
+#  define SvOURSTASH_set        PadnameOURSTASH_set
+#  define SVpad_STATE           PADNAMEf_STATE
+#  define SVpad_TYPED           PADNAMEf_TYPED
+#  define SVpad_OUR             PADNAMEf_OUR
+#  define PADNAMEt_OUTER        PADNAMEf_OUTER
+#  define PADNAMEt_STATE        PADNAMEf_STATE
+#  define PADNAMEt_LVALUE       PADNAMEf_LVALUE
+#  define PADNAMEt_TYPED        PADNAMEf_TYPED
+#  define PADNAMEt_OUR          PADNAMEf_OUR
+#endif
+
+#ifdef USE_ITHREADS
+#  define padnamelist_dup_inc(pnl,param)  PadnamelistREFCNT_inc(padnamelist_dup(pnl,param))
+#  define padname_dup_inc(pn,param)       PadnameREFCNT_inc(padname_dup(pn,param))
+#endif
 
 #ifdef DEBUGGING
 #  define PAD_SV(po)	   pad_sv(po)
@@ -445,13 +490,12 @@ ling pad (lvalue) to C<gen>.
 #define PAD_COMPNAME(po)	PAD_COMPNAME_SV(po)
 #define PAD_COMPNAME_SV(po)	(PadnamelistARRAY(PL_comppad_name)[(po)])
 #define PAD_COMPNAME_FLAGS(po)	PadnameFLAGS(PAD_COMPNAME(po))
-#define PAD_COMPNAME_FLAGS_isOUR(po) SvPAD_OUR(PAD_COMPNAME_SV(po))
+#define PAD_COMPNAME_FLAGS_isOUR(po) PadnameIsOUR(PAD_COMPNAME_SV(po))
 #define PAD_COMPNAME_PV(po)	PadnamePV(PAD_COMPNAME(po))
 
 #define PAD_COMPNAME_TYPE(po)	PadnameTYPE(PAD_COMPNAME(po))
 
-#define PAD_COMPNAME_OURSTASH(po) \
-    (SvOURSTASH(PAD_COMPNAME_SV(po)))
+#define PAD_COMPNAME_OURSTASH(po)  (PadnameOURSTASH(PAD_COMPNAME_SV(po)))
 
 #define PAD_COMPNAME_GEN(po) \
     ((STRLEN)PadnamelistARRAY(PL_comppad_name)[po]->xpadn_gen)
@@ -512,6 +556,18 @@ instead of a string/length pair.
 
 #define pad_findmy_pvs(name,flags) \
     Perl_pad_findmy_pvn(aTHX_ STR_WITH_LEN(name), flags)
+
+struct suspended_compcv
+{
+    CV *compcv;
+    STRLEN padix, constpadix;
+    STRLEN comppad_name_fill;
+    STRLEN min_intro_pending, max_intro_pending;
+    bool cv_has_eval, pad_reset_pending;
+};
+
+#define resume_compcv_final(buffer)     Perl_resume_compcv(aTHX_ buffer, false)
+#define resume_compcv_and_save(buffer)  Perl_resume_compcv(aTHX_ buffer, true)
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/patchlevel.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/patchlevel.h,v
diff -u -p -a -u -p -r1.54 patchlevel.h
--- gnu/usr.bin/perl/patchlevel.h	23 Dec 2023 21:02:20 -0000	1.54
+++ gnu/usr.bin/perl/patchlevel.h	21 Feb 2024 15:47:02 -0000
@@ -38,8 +38,8 @@ Instead use one of the version compariso
  * exactly on the third column */
 
 #define PERL_REVISION	5		/* age */
-#define PERL_VERSION	36		/* epoch */
-#define PERL_SUBVERSION	3		/* generation */
+#define PERL_VERSION	38		/* epoch */
+#define PERL_SUBVERSION	2		/* generation */
 
 /* The following numbers describe the earliest compatible version of
    Perl ("compatibility" here being defined as sufficient binary/API
@@ -59,7 +59,7 @@ Instead use one of the version compariso
    changing them should not be necessary.
 */
 #define PERL_API_REVISION	5
-#define PERL_API_VERSION	36
+#define PERL_API_VERSION	38
 #define PERL_API_SUBVERSION	0
 /*
    XXX Note:  The selection of non-default Configure options, such
@@ -118,11 +118,12 @@ open PLIN, "<", "patchlevel.h" or die "C
 open PLOUT, ">", "patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
 my $seen=0;
 while (<PLIN>) {
-    if (/\t,NULL/ and $seen) {
+    if (/^(\s+),NULL/ and $seen) {
+       my $pre = $1;
        while (my $c = shift @ARGV){
             $c =~ s|\\|\\\\|g;
             $c =~ s|"|\\"|g;
-            print PLOUT qq{\t,"$c"\n};
+            print PLOUT qq{$pre,"$c"\n};
        }
     }
     $seen++ if /local_patches\[\]/;
@@ -153,7 +154,7 @@ hunk.
 #    define PERL_PATCHNUM "UNKNOWN-microperl"
 #    define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
 #  else
-#include "git_version.h"
+#    include "git_version.h"
 #  endif
 static const char * const local_patches[] = {
         NULL
@@ -167,7 +168,7 @@ static const char * const local_patches[
 
 
 /* Initial space prevents this variable from being inserted in config.sh  */
-#  define	LOCAL_PATCH_COUNT	\
+#  define LOCAL_PATCH_COUNT     \
         ((int)(C_ARRAY_LENGTH(local_patches)-2))
 
 /* the old terms of reference, add them only when explicitly included */
Index: gnu/usr.bin/perl/peep.c
===================================================================
RCS file: gnu/usr.bin/perl/peep.c
diff -N gnu/usr.bin/perl/peep.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/peep.c	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,4227 @@
+/*    peep.c
+ *
+ *    Copyright (C) 1991-2022 by Larry Wall and others
+ *
+ *    You may distribute under the terms of either the GNU General Public
+ *    License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/*
+ * Aragorn sped on up the hill. Every now and again he bent to the ground.
+ * Hobbits go light, and their footprints are not easy even for a Ranger to
+ * read, but not far from the top a spring crossed the path, and in the wet
+ * earth he saw what he was seeking.
+ * 'I read the signs aright,' he said to himself. 'Frodo ran to the hill-top.
+ * I wonder what he saw there? But he returned by the same way, and went down
+ * the hill again.'
+ */
+
+/* This file contains functions for optimizing and finalizing the OP
+ * structures that hold a compiled perl program
+ */
+
+#include "EXTERN.h"
+#define PERL_IN_PEEP_C
+#include "perl.h"
+
+
+#define CALL_RPEEP(o) PL_rpeepp(aTHX_ o)
+
+
+static void
+S_scalar_slice_warning(pTHX_ const OP *o)
+{
+    OP *kid;
+    const bool is_hash = o->op_type == OP_HSLICE
+                || (o->op_type == OP_NULL && o->op_targ == OP_HSLICE);
+    SV *name;
+
+    if (!(o->op_private & OPpSLICEWARNING))
+        return;
+    if (PL_parser && PL_parser->error_count)
+        /* This warning can be nonsensical when there is a syntax error. */
+        return;
+
+    kid = cLISTOPo->op_first;
+    kid = OpSIBLING(kid); /* get past pushmark */
+    /* weed out false positives: any ops that can return lists */
+    switch (kid->op_type) {
+    case OP_BACKTICK:
+    case OP_GLOB:
+    case OP_READLINE:
+    case OP_MATCH:
+    case OP_RV2AV:
+    case OP_EACH:
+    case OP_VALUES:
+    case OP_KEYS:
+    case OP_SPLIT:
+    case OP_LIST:
+    case OP_SORT:
+    case OP_REVERSE:
+    case OP_ENTERSUB:
+    case OP_CALLER:
+    case OP_LSTAT:
+    case OP_STAT:
+    case OP_READDIR:
+    case OP_SYSTEM:
+    case OP_TMS:
+    case OP_LOCALTIME:
+    case OP_GMTIME:
+    case OP_ENTEREVAL:
+        return;
+    }
+
+    /* Don't warn if we have a nulled list either. */
+    if (kid->op_type == OP_NULL && kid->op_targ == OP_LIST)
+        return;
+
+    assert(OpSIBLING(kid));
+    name = op_varname(OpSIBLING(kid));
+    if (!name) /* XS module fiddling with the op tree */
+        return;
+    warn_elem_scalar_context(kid, name, is_hash, true);
+}
+
+
+/* info returned by S_sprintf_is_multiconcatable() */
+
+struct sprintf_ismc_info {
+    SSize_t nargs;    /* num of args to sprintf (not including the format) */
+    char  *start;     /* start of raw format string */
+    char  *end;       /* bytes after end of raw format string */
+    STRLEN total_len; /* total length (in bytes) of format string, not
+                         including '%s' and  half of '%%' */
+    STRLEN variant;   /* number of bytes by which total_len_p would grow
+                         if upgraded to utf8 */
+    bool   utf8;      /* whether the format is utf8 */
+};
+
+/* is the OP_SPRINTF o suitable for converting into a multiconcat op?
+ * i.e. its format argument is a const string with only '%s' and '%%'
+ * formats, and the number of args is known, e.g.
+ *    sprintf "a=%s f=%s", $a[0], scalar(f());
+ * but not
+ *    sprintf "i=%d a=%s f=%s", $i, @a, f();
+ *
+ * If successful, the sprintf_ismc_info struct pointed to by info will be
+ * populated.
+ */
+
+STATIC bool
+S_sprintf_is_multiconcatable(pTHX_ OP *o,struct sprintf_ismc_info *info)
+{
+    OP    *pm, *constop, *kid;
+    SV    *sv;
+    char  *s, *e, *p;
+    SSize_t nargs, nformats;
+    STRLEN cur, total_len, variant;
+    bool   utf8;
+
+    /* if sprintf's behaviour changes, die here so that someone
+     * can decide whether to enhance this function or skip optimising
+     * under those new circumstances */
+    assert(!(o->op_flags & OPf_STACKED));
+    assert(!(PL_opargs[OP_SPRINTF] & OA_TARGLEX));
+    assert(!(o->op_private & ~OPpARG4_MASK));
+
+    pm = cUNOPo->op_first;
+    if (pm->op_type != OP_PUSHMARK) /* weird coreargs stuff */
+        return FALSE;
+    constop = OpSIBLING(pm);
+    if (!constop || constop->op_type != OP_CONST)
+        return FALSE;
+    sv = cSVOPx_sv(constop);
+    if (SvMAGICAL(sv) || !SvPOK(sv))
+        return FALSE;
+
+    s = SvPV(sv, cur);
+    e = s + cur;
+
+    /* Scan format for %% and %s and work out how many %s there are.
+     * Abandon if other format types are found.
+     */
+
+    nformats  = 0;
+    total_len = 0;
+    variant   = 0;
+
+    for (p = s; p < e; p++) {
+        if (*p != '%') {
+            total_len++;
+            if (!UTF8_IS_INVARIANT(*p))
+                variant++;
+            continue;
+        }
+        p++;
+        if (p >= e)
+            return FALSE; /* lone % at end gives "Invalid conversion" */
+        if (*p == '%')
+            total_len++;
+        else if (*p == 's')
+            nformats++;
+        else
+            return FALSE;
+    }
+
+    if (!nformats || nformats > PERL_MULTICONCAT_MAXARG)
+        return FALSE;
+
+    utf8 = cBOOL(SvUTF8(sv));
+    if (utf8)
+        variant = 0;
+
+    /* scan args; they must all be in scalar cxt */
+
+    nargs = 0;
+    kid = OpSIBLING(constop);
+
+    while (kid) {
+        if ((kid->op_flags & OPf_WANT) != OPf_WANT_SCALAR)
+            return FALSE;
+        nargs++;
+        kid = OpSIBLING(kid);
+    }
+
+    if (nargs != nformats)
+        return FALSE; /* e.g. sprintf("%s%s", $a); */
+
+
+    info->nargs      = nargs;
+    info->start      = s;
+    info->end        = e;
+    info->total_len  = total_len;
+    info->variant    = variant;
+    info->utf8       = utf8;
+
+    return TRUE;
+}
+
+/* S_maybe_multiconcat():
+ *
+ * given an OP_STRINGIFY, OP_SASSIGN, OP_CONCAT or OP_SPRINTF op, possibly
+ * convert it (and its children) into an OP_MULTICONCAT. See the code
+ * comments just before pp_multiconcat() for the full details of what
+ * OP_MULTICONCAT supports.
+ *
+ * Basically we're looking for an optree with a chain of OP_CONCATS down
+ * the LHS (or an OP_SPRINTF), with possibly an OP_SASSIGN, and/or
+ * OP_STRINGIFY, and/or OP_CONCAT acting as '.=' at its head, e.g.
+ *
+ *      $x = "$a$b-$c"
+ *
+ *  looks like
+ *
+ *      SASSIGN
+ *         |
+ *      STRINGIFY   -- PADSV[$x]
+ *         |
+ *         |
+ *      ex-PUSHMARK -- CONCAT/S
+ *                        |
+ *                     CONCAT/S  -- PADSV[$d]
+ *                        |
+ *                     CONCAT    -- CONST["-"]
+ *                        |
+ *                     PADSV[$a] -- PADSV[$b]
+ *
+ * Note that at this stage the OP_SASSIGN may have already been optimised
+ * away with OPpTARGET_MY set on the OP_STRINGIFY or OP_CONCAT.
+ */
+
+STATIC void
+S_maybe_multiconcat(pTHX_ OP *o)
+{
+    OP *lastkidop;   /* the right-most of any kids unshifted onto o */
+    OP *topop;       /* the top-most op in the concat tree (often equals o,
+                        unless there are assign/stringify ops above it */
+    OP *parentop;    /* the parent op of topop (or itself if no parent) */
+    OP *targmyop;    /* the op (if any) with the OPpTARGET_MY flag */
+    OP *targetop;    /* the op corresponding to target=... or target.=... */
+    OP *stringop;    /* the OP_STRINGIFY op, if any */
+    OP *nextop;      /* used for recreating the op_next chain without consts */
+    OP *kid;         /* general-purpose op pointer */
+    UNOP_AUX_item *aux;
+    UNOP_AUX_item *lenp;
+    char *const_str, *p;
+    struct sprintf_ismc_info sprintf_info;
+
+                     /* store info about each arg in args[];
+                      * toparg is the highest used slot; argp is a general
+                      * pointer to args[] slots */
+    struct {
+        void *p;      /* initially points to const sv (or null for op);
+                         later, set to SvPV(constsv), with ... */
+        STRLEN len;   /* ... len set to SvPV(..., len) */
+    } *argp, *toparg, args[PERL_MULTICONCAT_MAXARG*2 + 1];
+
+    SSize_t nargs  = 0;
+    SSize_t nconst = 0;
+    SSize_t nadjconst  = 0; /* adjacent consts - may be demoted to args */
+    STRLEN variant;
+    bool utf8 = FALSE;
+    bool kid_is_last = FALSE; /* most args will be the RHS kid of a concat op;
+                                 the last-processed arg will the LHS of one,
+                                 as args are processed in reverse order */
+    U8   stacked_last = 0;   /* whether the last seen concat op was STACKED */
+    STRLEN total_len  = 0;   /* sum of the lengths of the const segments */
+    U8 flags          = 0;   /* what will become the op_flags and ... */
+    U8 private_flags  = 0;   /* ... op_private of the multiconcat op */
+    bool is_sprintf = FALSE; /* we're optimising an sprintf */
+    bool is_targable  = FALSE; /* targetop is an OPpTARGET_MY candidate */
+    bool prev_was_const = FALSE; /* previous arg was a const */
+
+    /* -----------------------------------------------------------------
+     * Phase 1:
+     *
+     * Examine the optree non-destructively to determine whether it's
+     * suitable to be converted into an OP_MULTICONCAT. Accumulate
+     * information about the optree in args[].
+     */
+
+    argp     = args;
+    targmyop = NULL;
+    targetop = NULL;
+    stringop = NULL;
+    topop    = o;
+    parentop = o;
+
+    assert(   o->op_type == OP_SASSIGN
+           || o->op_type == OP_CONCAT
+           || o->op_type == OP_SPRINTF
+           || o->op_type == OP_STRINGIFY);
+
+    Zero(&sprintf_info, 1, struct sprintf_ismc_info);
+
+    /* first see if, at the top of the tree, there is an assign,
+     * append and/or stringify */
+
+    if (topop->op_type == OP_SASSIGN) {
+        /* expr = ..... */
+        if (o->op_ppaddr != PL_ppaddr[OP_SASSIGN])
+            return;
+        if (o->op_private & (OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV))
+            return;
+        assert(!(o->op_private & ~OPpARG2_MASK)); /* barf on unknown flags */
+
+        parentop = topop;
+        topop = cBINOPo->op_first;
+        targetop = OpSIBLING(topop);
+        if (!targetop) /* probably some sort of syntax error */
+            return;
+
+        /* don't optimise away assign in 'local $foo = ....' */
+        if (   (targetop->op_private & OPpLVAL_INTRO)
+            /* these are the common ops which do 'local', but
+             * not all */
+            && (   targetop->op_type == OP_GVSV
+                || targetop->op_type == OP_RV2SV
+                || targetop->op_type == OP_AELEM
+                || targetop->op_type == OP_HELEM
+                )
+        )
+            return;
+    }
+    else if (   topop->op_type == OP_CONCAT
+             && (topop->op_flags & OPf_STACKED)
+             && (!(topop->op_private & OPpCONCAT_NESTED))
+            )
+    {
+        /* expr .= ..... */
+
+        /* OPpTARGET_MY shouldn't be able to be set here. If it is,
+         * decide what to do about it */
+        assert(!(o->op_private & OPpTARGET_MY));
+
+        /* barf on unknown flags */
+        assert(!(o->op_private & ~(OPpARG2_MASK|OPpTARGET_MY)));
+        private_flags |= OPpMULTICONCAT_APPEND;
+        targetop = cBINOPo->op_first;
+        parentop = topop;
+        topop    = OpSIBLING(targetop);
+
+        /* $x .= <FOO> gets optimised to rcatline instead */
+        if (topop->op_type == OP_READLINE)
+            return;
+    }
+
+    if (targetop) {
+        /* Can targetop (the LHS) if it's a padsv, be optimised
+         * away and use OPpTARGET_MY instead?
+         */
+        if (    (targetop->op_type == OP_PADSV)
+            && !(targetop->op_private & OPpDEREF)
+            && !(targetop->op_private & OPpPAD_STATE)
+               /* we don't support 'my $x .= ...' */
+            && (   o->op_type == OP_SASSIGN
+                || !(targetop->op_private & OPpLVAL_INTRO))
+        )
+            is_targable = TRUE;
+    }
+
+    if (topop->op_type == OP_STRINGIFY) {
+        if (topop->op_ppaddr != PL_ppaddr[OP_STRINGIFY])
+            return;
+        stringop = topop;
+
+        /* barf on unknown flags */
+        assert(!(o->op_private & ~(OPpARG4_MASK|OPpTARGET_MY)));
+
+        if ((topop->op_private & OPpTARGET_MY)) {
+            if (o->op_type == OP_SASSIGN)
+                return; /* can't have two assigns */
+            targmyop = topop;
+        }
+
+        private_flags |= OPpMULTICONCAT_STRINGIFY;
+        parentop = topop;
+        topop = cBINOPx(topop)->op_first;
+        assert(OP_TYPE_IS_OR_WAS_NN(topop, OP_PUSHMARK));
+        topop = OpSIBLING(topop);
+    }
+
+    if (topop->op_type == OP_SPRINTF) {
+        if (topop->op_ppaddr != PL_ppaddr[OP_SPRINTF])
+            return;
+        if (S_sprintf_is_multiconcatable(aTHX_ topop, &sprintf_info)) {
+            nargs     = sprintf_info.nargs;
+            total_len = sprintf_info.total_len;
+            variant   = sprintf_info.variant;
+            utf8      = sprintf_info.utf8;
+            is_sprintf = TRUE;
+            private_flags |= OPpMULTICONCAT_FAKE;
+            toparg = argp;
+            /* we have an sprintf op rather than a concat optree.
+             * Skip most of the code below which is associated with
+             * processing that optree. We also skip phase 2, determining
+             * whether its cost effective to optimise, since for sprintf,
+             * multiconcat is *always* faster */
+            goto create_aux;
+        }
+        /* note that even if the sprintf itself isn't multiconcatable,
+         * the expression as a whole may be, e.g. in
+         *    $x .= sprintf("%d",...)
+         * the sprintf op will be left as-is, but the concat/S op may
+         * be upgraded to multiconcat
+         */
+    }
+    else if (topop->op_type == OP_CONCAT) {
+        if (topop->op_ppaddr != PL_ppaddr[OP_CONCAT])
+            return;
+
+        if ((topop->op_private & OPpTARGET_MY)) {
+            if (o->op_type == OP_SASSIGN || targmyop)
+                return; /* can't have two assigns */
+            targmyop = topop;
+        }
+    }
+
+    /* Is it safe to convert a sassign/stringify/concat op into
+     * a multiconcat? */
+    assert((PL_opargs[OP_SASSIGN]   & OA_CLASS_MASK) == OA_BINOP);
+    assert((PL_opargs[OP_CONCAT]    & OA_CLASS_MASK) == OA_BINOP);
+    assert((PL_opargs[OP_STRINGIFY] & OA_CLASS_MASK) == OA_LISTOP);
+    assert((PL_opargs[OP_SPRINTF]   & OA_CLASS_MASK) == OA_LISTOP);
+    STATIC_ASSERT_STMT(   STRUCT_OFFSET(BINOP,    op_last)
+                       == STRUCT_OFFSET(UNOP_AUX, op_aux));
+    STATIC_ASSERT_STMT(   STRUCT_OFFSET(LISTOP,   op_last)
+                       == STRUCT_OFFSET(UNOP_AUX, op_aux));
+
+    /* Now scan the down the tree looking for a series of
+     * CONCAT/OPf_STACKED ops on the LHS (with the last one not
+     * stacked). For example this tree:
+     *
+     *     |
+     *   CONCAT/STACKED
+     *     |
+     *   CONCAT/STACKED -- EXPR5
+     *     |
+     *   CONCAT/STACKED -- EXPR4
+     *     |
+     *   CONCAT -- EXPR3
+     *     |
+     *   EXPR1  -- EXPR2
+     *
+     * corresponds to an expression like
+     *
+     *   (EXPR1 . EXPR2 . EXPR3 . EXPR4 . EXPR5)
+     *
+     * Record info about each EXPR in args[]: in particular, whether it is
+     * a stringifiable OP_CONST and if so what the const sv is.
+     *
+     * The reason why the last concat can't be STACKED is the difference
+     * between
+     *
+     *    ((($a .= $a) .= $a) .= $a) .= $a
+     *
+     * and
+     *    $a . $a . $a . $a . $a
+     *
+     * The main difference between the optrees for those two constructs
+     * is the presence of the last STACKED. As well as modifying $a,
+     * the former sees the changed $a between each concat, so if $s is
+     * initially 'a', the first returns 'a' x 16, while the latter returns
+     * 'a' x 5. And pp_multiconcat can't handle that kind of thing.
+     */
+
+    kid = topop;
+
+    for (;;) {
+        OP *argop;
+        SV *sv;
+        bool last = FALSE;
+
+        if (    kid->op_type == OP_CONCAT
+            && !kid_is_last
+        ) {
+            OP *k1, *k2;
+            k1 = cUNOPx(kid)->op_first;
+            k2 = OpSIBLING(k1);
+            /* shouldn't happen except maybe after compile err? */
+            if (!k2)
+                return;
+
+            /* avoid turning (A . B . ($lex = C) ...)  into  (A . B . C ...) */
+            if (kid->op_private & OPpTARGET_MY)
+                kid_is_last = TRUE;
+
+            stacked_last = (kid->op_flags & OPf_STACKED);
+            if (!stacked_last)
+                kid_is_last = TRUE;
+
+            kid   = k1;
+            argop = k2;
+        }
+        else {
+            argop = kid;
+            last = TRUE;
+        }
+
+        if (   nargs + nadjconst  >  PERL_MULTICONCAT_MAXARG        - 2
+            || (argp - args + 1)  > (PERL_MULTICONCAT_MAXARG*2 + 1) - 2)
+        {
+            /* At least two spare slots are needed to decompose both
+             * concat args. If there are no slots left, continue to
+             * examine the rest of the optree, but don't push new values
+             * on args[]. If the optree as a whole is legal for conversion
+             * (in particular that the last concat isn't STACKED), then
+             * the first PERL_MULTICONCAT_MAXARG elements of the optree
+             * can be converted into an OP_MULTICONCAT now, with the first
+             * child of that op being the remainder of the optree -
+             * which may itself later be converted to a multiconcat op
+             * too.
+             */
+            if (last) {
+                /* the last arg is the rest of the optree */
+                argp++->p = NULL;
+                nargs++;
+            }
+        }
+        else if (   argop->op_type == OP_CONST
+            && ((sv = cSVOPx_sv(argop)))
+            /* defer stringification until runtime of 'constant'
+             * things that might stringify variantly, e.g. the radix
+             * point of NVs, or overloaded RVs */
+            && (SvPOK(sv) || SvIOK(sv))
+            && (!SvGMAGICAL(sv))
+        ) {
+            if (argop->op_private & OPpCONST_STRICT)
+                no_bareword_allowed(argop);
+            argp++->p = sv;
+            utf8   |= cBOOL(SvUTF8(sv));
+            nconst++;
+            if (prev_was_const)
+                /* this const may be demoted back to a plain arg later;
+                 * make sure we have enough arg slots left */
+                nadjconst++;
+            prev_was_const = !prev_was_const;
+        }
+        else {
+            argp++->p = NULL;
+            nargs++;
+            prev_was_const = FALSE;
+        }
+
+        if (last)
+            break;
+    }
+
+    toparg = argp - 1;
+
+    if (stacked_last)
+        return; /* we don't support ((A.=B).=C)...) */
+
+    /* look for two adjacent consts and don't fold them together:
+     *     $o . "a" . "b"
+     * should do
+     *     $o->concat("a")->concat("b")
+     * rather than
+     *     $o->concat("ab")
+     * (but $o .=  "a" . "b" should still fold)
+     */
+    {
+        bool seen_nonconst = FALSE;
+        for (argp = toparg; argp >= args; argp--) {
+            if (argp->p == NULL) {
+                seen_nonconst = TRUE;
+                continue;
+            }
+            if (!seen_nonconst)
+                continue;
+            if (argp[1].p) {
+                /* both previous and current arg were constants;
+                 * leave the current OP_CONST as-is */
+                argp->p = NULL;
+                nconst--;
+                nargs++;
+            }
+        }
+    }
+
+    /* -----------------------------------------------------------------
+     * Phase 2:
+     *
+     * At this point we have determined that the optree *can* be converted
+     * into a multiconcat. Having gathered all the evidence, we now decide
+     * whether it *should*.
+     */
+
+
+    /* we need at least one concat action, e.g.:
+     *
+     *  Y . Z
+     *  X = Y . Z
+     *  X .= Y
+     *
+     * otherwise we could be doing something like $x = "foo", which
+     * if treated as a concat, would fail to COW.
+     */
+    if (nargs + nconst + cBOOL(private_flags & OPpMULTICONCAT_APPEND) < 2)
+        return;
+
+    /* Benchmarking seems to indicate that we gain if:
+     * * we optimise at least two actions into a single multiconcat
+     *    (e.g concat+concat, sassign+concat);
+     * * or if we can eliminate at least 1 OP_CONST;
+     * * or if we can eliminate a padsv via OPpTARGET_MY
+     */
+
+    if (
+           /* eliminated at least one OP_CONST */
+           nconst >= 1
+           /* eliminated an OP_SASSIGN */
+        || o->op_type == OP_SASSIGN
+           /* eliminated an OP_PADSV */
+        || (!targmyop && is_targable)
+    )
+        /* definitely a net gain to optimise */
+        goto optimise;
+
+    /* ... if not, what else? */
+
+    /* special-case '$lex1 = expr . $lex1' (where expr isn't lex1):
+     * multiconcat is faster (due to not creating a temporary copy of
+     * $lex1), whereas for a general $lex1 = $lex2 . $lex3, concat is
+     * faster.
+     */
+    if (   nconst == 0
+         && nargs == 2
+         && targmyop
+         && topop->op_type == OP_CONCAT
+    ) {
+        PADOFFSET t = targmyop->op_targ;
+        OP *k1 = cBINOPx(topop)->op_first;
+        OP *k2 = cBINOPx(topop)->op_last;
+        if (   k2->op_type == OP_PADSV
+            && k2->op_targ == t
+            && (   k1->op_type != OP_PADSV
+                || k1->op_targ != t)
+        )
+            goto optimise;
+    }
+
+    /* need at least two concats */
+    if (nargs + nconst + cBOOL(private_flags & OPpMULTICONCAT_APPEND) < 3)
+        return;
+
+
+
+    /* -----------------------------------------------------------------
+     * Phase 3:
+     *
+     * At this point the optree has been verified as ok to be optimised
+     * into an OP_MULTICONCAT. Now start changing things.
+     */
+
+   optimise:
+
+    /* stringify all const args and determine utf8ness */
+
+    variant = 0;
+    for (argp = args; argp <= toparg; argp++) {
+        SV *sv = (SV*)argp->p;
+        if (!sv)
+            continue; /* not a const op */
+        if (utf8 && !SvUTF8(sv))
+            sv_utf8_upgrade_nomg(sv);
+        argp->p = SvPV_nomg(sv, argp->len);
+        total_len += argp->len;
+
+        /* see if any strings would grow if converted to utf8 */
+        if (!utf8) {
+            variant += variant_under_utf8_count((U8 *) argp->p,
+                                                (U8 *) argp->p + argp->len);
+        }
+    }
+
+    /* create and populate aux struct */
+
+  create_aux:
+
+    aux = (UNOP_AUX_item*)PerlMemShared_malloc(
+                    sizeof(UNOP_AUX_item)
+                    *  (
+                           PERL_MULTICONCAT_HEADER_SIZE
+                         + ((nargs + 1) * (variant ? 2 : 1))
+                        )
+                    );
+    const_str = (char *)PerlMemShared_malloc(total_len ? total_len : 1);
+
+    /* Extract all the non-const expressions from the concat tree then
+     * dispose of the old tree, e.g. convert the tree from this:
+     *
+     *  o => SASSIGN
+     *         |
+     *       STRINGIFY   -- TARGET
+     *         |
+     *       ex-PUSHMARK -- CONCAT
+     *                        |
+     *                      CONCAT -- EXPR5
+     *                        |
+     *                      CONCAT -- EXPR4
+     *                        |
+     *                      CONCAT -- EXPR3
+     *                        |
+     *                      EXPR1  -- EXPR2
+     *
+     *
+     * to:
+     *
+     *  o => MULTICONCAT
+     *         |
+     *       ex-PUSHMARK -- EXPR1 -- EXPR2 -- EXPR3 -- EXPR4 -- EXPR5 -- TARGET
+     *
+     * except that if EXPRi is an OP_CONST, it's discarded.
+     *
+     * During the conversion process, EXPR ops are stripped from the tree
+     * and unshifted onto o. Finally, any of o's remaining original
+     * children are discarded and o is converted into an OP_MULTICONCAT.
+     *
+     * In this middle of this, o may contain both: unshifted args on the
+     * left, and some remaining original args on the right. lastkidop
+     * is set to point to the right-most unshifted arg to delineate
+     * between the two sets.
+     */
+
+
+    if (is_sprintf) {
+        /* create a copy of the format with the %'s removed, and record
+         * the sizes of the const string segments in the aux struct */
+        char *q, *oldq;
+        lenp = aux + PERL_MULTICONCAT_IX_LENGTHS;
+
+        p    = sprintf_info.start;
+        q    = const_str;
+        oldq = q;
+        for (; p < sprintf_info.end; p++) {
+            if (*p == '%') {
+                p++;
+                if (*p != '%') {
+                    (lenp++)->ssize = q - oldq;
+                    oldq = q;
+                    continue;
+                }
+            }
+            *q++ = *p;
+        }
+        lenp->ssize = q - oldq;
+        assert((STRLEN)(q - const_str) == total_len);
+
+        /* Attach all the args (i.e. the kids of the sprintf) to o (which
+         * may or may not be topop) The pushmark and const ops need to be
+         * kept in case they're an op_next entry point.
+         */
+        lastkidop = cLISTOPx(topop)->op_last;
+        kid = cUNOPx(topop)->op_first; /* pushmark */
+        op_null(kid);
+        op_null(OpSIBLING(kid));       /* const */
+        if (o != topop) {
+            kid = op_sibling_splice(topop, NULL, -1, NULL); /* cut all args */
+            op_sibling_splice(o, NULL, 0, kid); /* and attach to o */
+            lastkidop->op_next = o;
+        }
+    }
+    else {
+        p = const_str;
+        lenp = aux + PERL_MULTICONCAT_IX_LENGTHS;
+
+        lenp->ssize = -1;
+
+        /* Concatenate all const strings into const_str.
+         * Note that args[] contains the RHS args in reverse order, so
+         * we scan args[] from top to bottom to get constant strings
+         * in L-R order
+         */
+        for (argp = toparg; argp >= args; argp--) {
+            if (!argp->p)
+                /* not a const op */
+                (++lenp)->ssize = -1;
+            else {
+                STRLEN l = argp->len;
+                Copy(argp->p, p, l, char);
+                p += l;
+                if (lenp->ssize == -1)
+                    lenp->ssize = l;
+                else
+                    lenp->ssize += l;
+            }
+        }
+
+        kid = topop;
+        nextop = o;
+        lastkidop = NULL;
+
+        for (argp = args; argp <= toparg; argp++) {
+            /* only keep non-const args, except keep the first-in-next-chain
+             * arg no matter what it is (but nulled if OP_CONST), because it
+             * may be the entry point to this subtree from the previous
+             * op_next.
+             */
+            bool last = (argp == toparg);
+            OP *prev;
+
+            /* set prev to the sibling *before* the arg to be cut out,
+             * e.g. when cutting EXPR:
+             *
+             *         |
+             * kid=  CONCAT
+             *         |
+             * prev= CONCAT -- EXPR
+             *         |
+             */
+            if (argp == args && kid->op_type != OP_CONCAT) {
+                /* in e.g. '$x .= f(1)' there's no RHS concat tree
+                 * so the expression to be cut isn't kid->op_last but
+                 * kid itself */
+                OP *o1, *o2;
+                /* find the op before kid */
+                o1 = NULL;
+                o2 = cUNOPx(parentop)->op_first;
+                while (o2 && o2 != kid) {
+                    o1 = o2;
+                    o2 = OpSIBLING(o2);
+                }
+                assert(o2 == kid);
+                prev = o1;
+                kid  = parentop;
+            }
+            else if (kid == o && lastkidop)
+                prev = last ? lastkidop : OpSIBLING(lastkidop);
+            else
+                prev = last ? NULL : cUNOPx(kid)->op_first;
+
+            if (!argp->p || last) {
+                /* cut RH op */
+                OP *aop = op_sibling_splice(kid, prev, 1, NULL);
+                /* and unshift to front of o */
+                op_sibling_splice(o, NULL, 0, aop);
+                /* record the right-most op added to o: later we will
+                 * free anything to the right of it */
+                if (!lastkidop)
+                    lastkidop = aop;
+                aop->op_next = nextop;
+                if (last) {
+                    if (argp->p)
+                        /* null the const at start of op_next chain */
+                        op_null(aop);
+                }
+                else if (prev)
+                    nextop = prev->op_next;
+            }
+
+            /* the last two arguments are both attached to the same concat op */
+            if (argp < toparg - 1)
+                kid = prev;
+        }
+    }
+
+    /* Populate the aux struct */
+
+    aux[PERL_MULTICONCAT_IX_NARGS].ssize     = nargs;
+    aux[PERL_MULTICONCAT_IX_PLAIN_PV].pv    = utf8 ? NULL : const_str;
+    aux[PERL_MULTICONCAT_IX_PLAIN_LEN].ssize = utf8 ?    0 : total_len;
+    aux[PERL_MULTICONCAT_IX_UTF8_PV].pv     = const_str;
+    aux[PERL_MULTICONCAT_IX_UTF8_LEN].ssize  = total_len;
+
+    /* if variant > 0, calculate a variant const string and lengths where
+     * the utf8 version of the string will take 'variant' more bytes than
+     * the plain one. */
+
+    if (variant) {
+        char              *p = const_str;
+        STRLEN          ulen = total_len + variant;
+        UNOP_AUX_item  *lens = aux + PERL_MULTICONCAT_IX_LENGTHS;
+        UNOP_AUX_item *ulens = lens + (nargs + 1);
+        char             *up = (char*)PerlMemShared_malloc(ulen);
+        SSize_t            n;
+
+        aux[PERL_MULTICONCAT_IX_UTF8_PV].pv    = up;
+        aux[PERL_MULTICONCAT_IX_UTF8_LEN].ssize = ulen;
+
+        for (n = 0; n < (nargs + 1); n++) {
+            SSize_t i;
+            char * orig_up = up;
+            for (i = (lens++)->ssize; i > 0; i--) {
+                U8 c = *p++;
+                append_utf8_from_native_byte(c, (U8**)&up);
+            }
+            (ulens++)->ssize = (i < 0) ? i : up - orig_up;
+        }
+    }
+
+    if (stringop) {
+        /* if there was a top(ish)-level OP_STRINGIFY, we need to keep
+         * that op's first child - an ex-PUSHMARK - because the op_next of
+         * the previous op may point to it (i.e. it's the entry point for
+         * the o optree)
+         */
+        OP *pmop =
+            (stringop == o)
+                ? op_sibling_splice(o, lastkidop, 1, NULL)
+                : op_sibling_splice(stringop, NULL, 1, NULL);
+        assert(OP_TYPE_IS_OR_WAS_NN(pmop, OP_PUSHMARK));
+        op_sibling_splice(o, NULL, 0, pmop);
+        if (!lastkidop)
+            lastkidop = pmop;
+    }
+
+    /* Optimise
+     *    target  = A.B.C...
+     *    target .= A.B.C...
+     */
+
+    if (targetop) {
+        assert(!targmyop);
+
+        if (o->op_type == OP_SASSIGN) {
+            /* Move the target subtree from being the last of o's children
+             * to being the last of o's preserved children.
+             * Note the difference between 'target = ...' and 'target .= ...':
+             * for the former, target is executed last; for the latter,
+             * first.
+             */
+            kid = OpSIBLING(lastkidop);
+            op_sibling_splice(o, kid, 1, NULL); /* cut target op */
+            op_sibling_splice(o, lastkidop, 0, targetop); /* and paste */
+            lastkidop->op_next = kid->op_next;
+            lastkidop = targetop;
+        }
+        else {
+            /* Move the target subtree from being the first of o's
+             * original children to being the first of *all* o's children.
+             */
+            if (lastkidop) {
+                op_sibling_splice(o, lastkidop, 1, NULL); /* cut target op */
+                op_sibling_splice(o, NULL, 0, targetop);  /* and paste*/
+            }
+            else {
+                /* if the RHS of .= doesn't contain a concat (e.g.
+                 * $x .= "foo"), it gets missed by the "strip ops from the
+                 * tree and add to o" loop earlier */
+                assert(topop->op_type != OP_CONCAT);
+                if (stringop) {
+                    /* in e.g. $x .= "$y", move the $y expression
+                     * from being a child of OP_STRINGIFY to being the
+                     * second child of the OP_CONCAT
+                     */
+                    assert(cUNOPx(stringop)->op_first == topop);
+                    op_sibling_splice(stringop, NULL, 1, NULL);
+                    op_sibling_splice(o, cUNOPo->op_first, 0, topop);
+                }
+                assert(topop == OpSIBLING(cBINOPo->op_first));
+                if (toparg->p)
+                    op_null(topop);
+                lastkidop = topop;
+            }
+        }
+
+        if (is_targable) {
+            /* optimise
+             *  my $lex  = A.B.C...
+             *     $lex  = A.B.C...
+             *     $lex .= A.B.C...
+             * The original padsv op is kept but nulled in case it's the
+             * entry point for the optree (which it will be for
+             * '$lex .=  ... '
+             */
+            private_flags |= OPpTARGET_MY;
+            private_flags |= (targetop->op_private & OPpLVAL_INTRO);
+            o->op_targ = targetop->op_targ;
+            targetop->op_targ = 0;
+            op_null(targetop);
+        }
+        else
+            flags |= OPf_STACKED;
+    }
+    else if (targmyop) {
+        private_flags |= OPpTARGET_MY;
+        if (o != targmyop) {
+            o->op_targ = targmyop->op_targ;
+            targmyop->op_targ = 0;
+        }
+    }
+
+    /* detach the emaciated husk of the sprintf/concat optree and free it */
+    for (;;) {
+        kid = op_sibling_splice(o, lastkidop, 1, NULL);
+        if (!kid)
+            break;
+        op_free(kid);
+    }
+
+    /* and convert o into a multiconcat */
+
+    o->op_flags        = (flags|OPf_KIDS|stacked_last
+                         |(o->op_flags & (OPf_WANT|OPf_PARENS)));
+    o->op_private      = private_flags;
+    o->op_type         = OP_MULTICONCAT;
+    o->op_ppaddr       = PL_ppaddr[OP_MULTICONCAT];
+    cUNOP_AUXo->op_aux = aux;
+}
+
+
+/*
+=for apidoc_section $optree_manipulation
+
+=for apidoc optimize_optree
+
+This function applies some optimisations to the optree in top-down order.
+It is called before the peephole optimizer, which processes ops in
+execution order. Note that finalize_optree() also does a top-down scan,
+but is called *after* the peephole optimizer.
+
+=cut
+*/
+
+void
+Perl_optimize_optree(pTHX_ OP* o)
+{
+    PERL_ARGS_ASSERT_OPTIMIZE_OPTREE;
+
+    ENTER;
+    SAVEVPTR(PL_curcop);
+
+    optimize_op(o);
+
+    LEAVE;
+}
+
+
+#define warn_implicit_snail_cvsig(o)  S_warn_implicit_snail_cvsig(aTHX_ o)
+static void
+S_warn_implicit_snail_cvsig(pTHX_ OP *o)
+{
+    CV *cv = PL_compcv;
+    while(cv && CvEVAL(cv))
+        cv = CvOUTSIDE(cv);
+
+    if(cv && CvSIGNATURE(cv))
+        Perl_ck_warner_d(aTHX_ packWARN(WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES),
+            "Implicit use of @_ in %s with signatured subroutine is experimental", OP_DESC(o));
+}
+
+
+#define OP_ZOOM(o)  (OP_TYPE_IS(o, OP_NULL) ? cUNOPx(o)->op_first : (o))
+
+/* helper for optimize_optree() which optimises one op then recurses
+ * to optimise any children.
+ */
+
+STATIC void
+S_optimize_op(pTHX_ OP* o)
+{
+    OP *top_op = o;
+
+    PERL_ARGS_ASSERT_OPTIMIZE_OP;
+
+    while (1) {
+        OP * next_kid = NULL;
+
+        assert(o->op_type != OP_FREED);
+
+        switch (o->op_type) {
+        case OP_NEXTSTATE:
+        case OP_DBSTATE:
+            PL_curcop = ((COP*)o);		/* for warnings */
+            break;
+
+
+        case OP_CONCAT:
+        case OP_SASSIGN:
+        case OP_STRINGIFY:
+        case OP_SPRINTF:
+            S_maybe_multiconcat(aTHX_ o);
+            break;
+
+        case OP_SUBST:
+            if (cPMOPo->op_pmreplrootu.op_pmreplroot) {
+                /* we can't assume that op_pmreplroot->op_sibparent == o
+                 * and that it is thus possible to walk back up the tree
+                 * past op_pmreplroot. So, although we try to avoid
+                 * recursing through op trees, do it here. After all,
+                 * there are unlikely to be many nested s///e's within
+                 * the replacement part of a s///e.
+                 */
+                optimize_op(cPMOPo->op_pmreplrootu.op_pmreplroot);
+            }
+            break;
+
+        case OP_RV2AV:
+        {
+            OP *first = (o->op_flags & OPf_KIDS) ? cUNOPo->op_first : NULL;
+            CV *cv = PL_compcv;
+            while(cv && CvEVAL(cv))
+                cv = CvOUTSIDE(cv);
+
+            if(cv && CvSIGNATURE(cv) &&
+                    OP_TYPE_IS(first, OP_GV) && cGVOPx_gv(first) == PL_defgv) {
+                OP *parent = op_parent(o);
+                while(OP_TYPE_IS(parent, OP_NULL))
+                    parent = op_parent(parent);
+
+                Perl_ck_warner_d(aTHX_ packWARN(WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES),
+                    "Use of @_ in %s with signatured subroutine is experimental", OP_DESC(parent));
+            }
+            break;
+        }
+
+        case OP_SHIFT:
+        case OP_POP:
+            if(!CvUNIQUE(PL_compcv) && !(o->op_flags & OPf_KIDS))
+                warn_implicit_snail_cvsig(o);
+            break;
+
+        case OP_ENTERSUB:
+            if(!(o->op_flags & OPf_STACKED))
+                warn_implicit_snail_cvsig(o);
+            break;
+
+        case OP_GOTO:
+        {
+            OP *first = (o->op_flags & OPf_KIDS) ? cUNOPo->op_first : NULL;
+            OP *ffirst;
+            if(OP_TYPE_IS(first, OP_SREFGEN) &&
+                    (ffirst = OP_ZOOM(cUNOPx(first)->op_first)) &&
+                    OP_TYPE_IS(ffirst, OP_RV2CV))
+                warn_implicit_snail_cvsig(o);
+            break;
+        }
+
+        default:
+            break;
+        }
+
+        if (o->op_flags & OPf_KIDS)
+            next_kid = cUNOPo->op_first;
+
+        /* if a kid hasn't been nominated to process, continue with the
+         * next sibling, or if no siblings left, go back to the parent's
+         * siblings and so on
+         */
+        while (!next_kid) {
+            if (o == top_op)
+                return; /* at top; no parents/siblings to try */
+            if (OpHAS_SIBLING(o))
+                next_kid = o->op_sibparent;
+            else
+                o = o->op_sibparent; /*try parent's next sibling */
+        }
+
+      /* this label not yet used. Goto here if any code above sets
+       * next-kid
+       get_next_op:
+       */
+        o = next_kid;
+    }
+}
+
+/*
+=for apidoc finalize_optree
+
+This function finalizes the optree.  Should be called directly after
+the complete optree is built.  It does some additional
+checking which can't be done in the normal C<ck_>xxx functions and makes
+the tree thread-safe.
+
+=cut
+*/
+
+void
+Perl_finalize_optree(pTHX_ OP* o)
+{
+    PERL_ARGS_ASSERT_FINALIZE_OPTREE;
+
+    ENTER;
+    SAVEVPTR(PL_curcop);
+
+    finalize_op(o);
+
+    LEAVE;
+}
+
+
+/*
+=for apidoc traverse_op_tree
+
+Return the next op in a depth-first traversal of the op tree,
+returning NULL when the traversal is complete.
+
+The initial call must supply the root of the tree as both top and o.
+
+For now it's static, but it may be exposed to the API in the future.
+
+=cut
+*/
+
+STATIC OP*
+S_traverse_op_tree(pTHX_ OP *top, OP *o) {
+    OP *sib;
+
+    PERL_ARGS_ASSERT_TRAVERSE_OP_TREE;
+
+    if ((o->op_flags & OPf_KIDS) && cUNOPo->op_first) {
+        return cUNOPo->op_first;
+    }
+    else if ((sib = OpSIBLING(o))) {
+        return sib;
+    }
+    else {
+        OP *parent = o->op_sibparent;
+        assert(!(o->op_moresib));
+        while (parent && parent != top) {
+            OP *sib = OpSIBLING(parent);
+            if (sib)
+                return sib;
+            parent = parent->op_sibparent;
+        }
+
+        return NULL;
+    }
+}
+
+STATIC void
+S_finalize_op(pTHX_ OP* o)
+{
+    OP * const top = o;
+    PERL_ARGS_ASSERT_FINALIZE_OP;
+
+    do {
+        assert(o->op_type != OP_FREED);
+
+        switch (o->op_type) {
+        case OP_NEXTSTATE:
+        case OP_DBSTATE:
+            PL_curcop = ((COP*)o);		/* for warnings */
+            break;
+        case OP_EXEC:
+            if (OpHAS_SIBLING(o)) {
+                OP *sib = OpSIBLING(o);
+                if ((  sib->op_type == OP_NEXTSTATE || sib->op_type == OP_DBSTATE)
+                    && ckWARN(WARN_EXEC)
+                    && OpHAS_SIBLING(sib))
+                {
+                    const OPCODE type = OpSIBLING(sib)->op_type;
+                    if (type != OP_EXIT && type != OP_WARN && type != OP_DIE) {
+                        const line_t oldline = CopLINE(PL_curcop);
+                        CopLINE_set(PL_curcop, CopLINE((COP*)sib));
+                        Perl_warner(aTHX_ packWARN(WARN_EXEC),
+                            "Statement unlikely to be reached");
+                        Perl_warner(aTHX_ packWARN(WARN_EXEC),
+                            "\t(Maybe you meant system() when you said exec()?)\n");
+                        CopLINE_set(PL_curcop, oldline);
+                    }
+                }
+            }
+            break;
+
+        case OP_GV:
+            if ((o->op_private & OPpEARLY_CV) && ckWARN(WARN_PROTOTYPE)) {
+                GV * const gv = cGVOPo_gv;
+                if (SvTYPE(gv) == SVt_PVGV && GvCV(gv) && SvPVX_const(GvCV(gv))) {
+                    /* XXX could check prototype here instead of just carping */
+                    SV * const sv = sv_newmortal();
+                    gv_efullname3(sv, gv, NULL);
+                    Perl_warner(aTHX_ packWARN(WARN_PROTOTYPE),
+                                "%" SVf "() called too early to check prototype",
+                                SVfARG(sv));
+                }
+            }
+            break;
+
+        case OP_CONST:
+            if (cSVOPo->op_private & OPpCONST_STRICT)
+                no_bareword_allowed(o);
+#ifdef USE_ITHREADS
+            /* FALLTHROUGH */
+        case OP_HINTSEVAL:
+            op_relocate_sv(&cSVOPo->op_sv, &o->op_targ);
+#endif
+            break;
+
+#ifdef USE_ITHREADS
+            /* Relocate all the METHOP's SVs to the pad for thread safety. */
+        case OP_METHOD_NAMED:
+        case OP_METHOD_SUPER:
+        case OP_METHOD_REDIR:
+        case OP_METHOD_REDIR_SUPER:
+            op_relocate_sv(&cMETHOPo->op_u.op_meth_sv, &o->op_targ);
+            break;
+#endif
+
+        case OP_HELEM: {
+            UNOP *rop;
+            SVOP *key_op;
+            OP *kid;
+
+            if ((key_op = cSVOPx(cBINOPo->op_last))->op_type != OP_CONST)
+                break;
+
+            rop = cUNOPx(cBINOPo->op_first);
+
+            goto check_keys;
+
+            case OP_HSLICE:
+                S_scalar_slice_warning(aTHX_ o);
+                /* FALLTHROUGH */
+
+            case OP_KVHSLICE:
+                kid = OpSIBLING(cLISTOPo->op_first);
+            if (/* I bet there's always a pushmark... */
+                OP_TYPE_ISNT_AND_WASNT_NN(kid, OP_LIST)
+                && OP_TYPE_ISNT_NN(kid, OP_CONST))
+            {
+                break;
+            }
+
+            key_op = cSVOPx(kid->op_type == OP_CONST
+                             ? kid
+                             : OpSIBLING(kLISTOP->op_first));
+
+            rop = cUNOPx(cLISTOPo->op_last);
+
+        check_keys:
+            if (o->op_private & OPpLVAL_INTRO || rop->op_type != OP_RV2HV)
+                rop = NULL;
+            check_hash_fields_and_hekify(rop, key_op, 1);
+            break;
+        }
+        case OP_NULL:
+            if (o->op_targ != OP_HSLICE && o->op_targ != OP_ASLICE)
+                break;
+            /* FALLTHROUGH */
+        case OP_ASLICE:
+            S_scalar_slice_warning(aTHX_ o);
+            break;
+
+        case OP_SUBST: {
+            if (cPMOPo->op_pmreplrootu.op_pmreplroot)
+                finalize_op(cPMOPo->op_pmreplrootu.op_pmreplroot);
+            break;
+        }
+        default:
+            break;
+        }
+
+#ifdef DEBUGGING
+        if (o->op_flags & OPf_KIDS) {
+            OP *kid;
+
+            /* check that op_last points to the last sibling, and that
+             * the last op_sibling/op_sibparent field points back to the
+             * parent, and that the only ops with KIDS are those which are
+             * entitled to them */
+            U32 type = o->op_type;
+            U32 family;
+            bool has_last;
+
+            if (type == OP_NULL) {
+                type = o->op_targ;
+                /* ck_glob creates a null UNOP with ex-type GLOB
+                 * (which is a list op. So pretend it wasn't a listop */
+                if (type == OP_GLOB)
+                    type = OP_NULL;
+            }
+            family = PL_opargs[type] & OA_CLASS_MASK;
+
+            has_last = (   family == OA_BINOP
+                        || family == OA_LISTOP
+                        || family == OA_PMOP
+                        || family == OA_LOOP
+                       );
+            assert(  has_last /* has op_first and op_last, or ...
+                  ... has (or may have) op_first: */
+                  || family == OA_UNOP
+                  || family == OA_UNOP_AUX
+                  || family == OA_LOGOP
+                  || family == OA_BASEOP_OR_UNOP
+                  || family == OA_FILESTATOP
+                  || family == OA_LOOPEXOP
+                  || family == OA_METHOP
+                  || type == OP_CUSTOM
+                  || type == OP_NULL /* new_logop does this */
+                  );
+
+            for (kid = cUNOPo->op_first; kid; kid = OpSIBLING(kid)) {
+                if (!OpHAS_SIBLING(kid)) {
+                    if (has_last)
+                        assert(kid == cLISTOPo->op_last);
+                    assert(kid->op_sibparent == o);
+                }
+            }
+        }
+#endif
+    } while (( o = traverse_op_tree(top, o)) != NULL);
+}
+
+
+/*
+   ---------------------------------------------------------
+
+   Common vars in list assignment
+
+   There now follows some enums and static functions for detecting
+   common variables in list assignments. Here is a little essay I wrote
+   for myself when trying to get my head around this. DAPM.
+
+   ----
+
+   First some random observations:
+
+   * If a lexical var is an alias of something else, e.g.
+       for my $x ($lex, $pkg, $a[0]) {...}
+     then the act of aliasing will increase the reference count of the SV
+
+   * If a package var is an alias of something else, it may still have a
+     reference count of 1, depending on how the alias was created, e.g.
+     in *a = *b, $a may have a refcount of 1 since the GP is shared
+     with a single GvSV pointer to the SV. So If it's an alias of another
+     package var, then RC may be 1; if it's an alias of another scalar, e.g.
+     a lexical var or an array element, then it will have RC > 1.
+
+   * There are many ways to create a package alias; ultimately, XS code
+     may quite legally do GvSV(gv) = SvREFCNT_inc(sv) for example, so
+     run-time tracing mechanisms are unlikely to be able to catch all cases.
+
+   * When the LHS is all my declarations, the same vars can't appear directly
+     on the RHS, but they can indirectly via closures, aliasing and lvalue
+     subs. But those techniques all involve an increase in the lexical
+     scalar's ref count.
+
+   * When the LHS is all lexical vars (but not necessarily my declarations),
+     it is possible for the same lexicals to appear directly on the RHS, and
+     without an increased ref count, since the stack isn't refcounted.
+     This case can be detected at compile time by scanning for common lex
+     vars with PL_generation.
+
+   * lvalue subs defeat common var detection, but they do at least
+     return vars with a temporary ref count increment. Also, you can't
+     tell at compile time whether a sub call is lvalue.
+
+
+   So...
+
+   A: There are a few circumstances where there definitely can't be any
+     commonality:
+
+       LHS empty:  () = (...);
+       RHS empty:  (....) = ();
+       RHS contains only constants or other 'can't possibly be shared'
+           elements (e.g. ops that return PADTMPs):  (...) = (1,2, length)
+           i.e. they only contain ops not marked as dangerous, whose children
+           are also not dangerous;
+       LHS ditto;
+       LHS contains a single scalar element: e.g. ($x) = (....); because
+           after $x has been modified, it won't be used again on the RHS;
+       RHS contains a single element with no aggregate on LHS: e.g.
+           ($a,$b,$c)  = ($x); again, once $a has been modified, its value
+           won't be used again.
+
+   B: If LHS are all 'my' lexical var declarations (or safe ops, which
+     we can ignore):
+
+       my ($a, $b, @c) = ...;
+
+       Due to closure and goto tricks, these vars may already have content.
+       For the same reason, an element on the RHS may be a lexical or package
+       alias of one of the vars on the left, or share common elements, for
+       example:
+
+           my ($x,$y) = f(); # $x and $y on both sides
+           sub f : lvalue { ($x,$y) = (1,2); $y, $x }
+
+       and
+
+           my $ra = f();
+           my @a = @$ra;  # elements of @a on both sides
+           sub f { @a = 1..4; \@a }
+
+
+       First, just consider scalar vars on LHS:
+
+           RHS is safe only if (A), or in addition,
+               * contains only lexical *scalar* vars, where neither side's
+                 lexicals have been flagged as aliases
+
+           If RHS is not safe, then it's always legal to check LHS vars for
+           RC==1, since the only RHS aliases will always be associated
+           with an RC bump.
+
+           Note that in particular, RHS is not safe if:
+
+               * it contains package scalar vars; e.g.:
+
+                   f();
+                   my ($x, $y) = (2, $x_alias);
+                   sub f { $x = 1; *x_alias = \$x; }
+
+               * It contains other general elements, such as flattened or
+               * spliced or single array or hash elements, e.g.
+
+                   f();
+                   my ($x,$y) = @a; # or $a[0] or @a{@b} etc
+
+                   sub f {
+                       ($x, $y) = (1,2);
+                       use feature 'refaliasing';
+                       \($a[0], $a[1]) = \($y,$x);
+                   }
+
+                 It doesn't matter if the array/hash is lexical or package.
+
+               * it contains a function call that happens to be an lvalue
+                 sub which returns one or more of the above, e.g.
+
+                   f();
+                   my ($x,$y) = f();
+
+                   sub f : lvalue {
+                       ($x, $y) = (1,2);
+                       *x1 = \$x;
+                       $y, $x1;
+                   }
+
+                   (so a sub call on the RHS should be treated the same
+                   as having a package var on the RHS).
+
+               * any other "dangerous" thing, such an op or built-in that
+                 returns one of the above, e.g. pp_preinc
+
+
+           If RHS is not safe, what we can do however is at compile time flag
+           that the LHS are all my declarations, and at run time check whether
+           all the LHS have RC == 1, and if so skip the full scan.
+
+       Now consider array and hash vars on LHS: e.g. my (...,@a) = ...;
+
+           Here the issue is whether there can be elements of @a on the RHS
+           which will get prematurely freed when @a is cleared prior to
+           assignment. This is only a problem if the aliasing mechanism
+           is one which doesn't increase the refcount - only if RC == 1
+           will the RHS element be prematurely freed.
+
+           Because the array/hash is being INTROed, it or its elements
+           can't directly appear on the RHS:
+
+               my (@a) = ($a[0], @a, etc) # NOT POSSIBLE
+
+           but can indirectly, e.g.:
+
+               my $r = f();
+               my (@a) = @$r;
+               sub f { @a = 1..3; \@a }
+
+           So if the RHS isn't safe as defined by (A), we must always
+           mortalise and bump the ref count of any remaining RHS elements
+           when assigning to a non-empty LHS aggregate.
+
+           Lexical scalars on the RHS aren't safe if they've been involved in
+           aliasing, e.g.
+
+               use feature 'refaliasing';
+
+               f();
+               \(my $lex) = \$pkg;
+               my @a = ($lex,3); # equivalent to ($a[0],3)
+
+               sub f {
+                   @a = (1,2);
+                   \$pkg = \$a[0];
+               }
+
+           Similarly with lexical arrays and hashes on the RHS:
+
+               f();
+               my @b;
+               my @a = (@b);
+
+               sub f {
+                   @a = (1,2);
+                   \$b[0] = \$a[1];
+                   \$b[1] = \$a[0];
+               }
+
+
+
+   C: As (B), but in addition the LHS may contain non-intro lexicals, e.g.
+       my $a; ($a, my $b) = (....);
+
+       The difference between (B) and (C) is that it is now physically
+       possible for the LHS vars to appear on the RHS too, where they
+       are not reference counted; but in this case, the compile-time
+       PL_generation sweep will detect such common vars.
+
+       So the rules for (C) differ from (B) in that if common vars are
+       detected, the runtime "test RC==1" optimisation can no longer be used,
+       and a full mark and sweep is required
+
+   D: As (C), but in addition the LHS may contain package vars.
+
+       Since package vars can be aliased without a corresponding refcount
+       increase, all bets are off. It's only safe if (A). E.g.
+
+           my ($x, $y) = (1,2);
+
+           for $x_alias ($x) {
+               ($x_alias, $y) = (3, $x); # whoops
+           }
+
+       Ditto for LHS aggregate package vars.
+
+   E: Any other dangerous ops on LHS, e.g.
+           (f(), $a[0], @$r) = (...);
+
+       this is similar to (E) in that all bets are off. In addition, it's
+       impossible to determine at compile time whether the LHS
+       contains a scalar or an aggregate, e.g.
+
+           sub f : lvalue { @a }
+           (f()) = 1..3;
+
+* ---------------------------------------------------------
+*/
+
+/* A set of bit flags returned by S_aassign_scan(). Each flag indicates
+ * that at least one of the things flagged was seen.
+ */
+
+enum {
+    AAS_MY_SCALAR       = 0x001, /* my $scalar */
+    AAS_MY_AGG          = 0x002, /* aggregate: my @array or my %hash */
+    AAS_LEX_SCALAR      = 0x004, /* $lexical */
+    AAS_LEX_AGG         = 0x008, /* @lexical or %lexical aggregate */
+    AAS_LEX_SCALAR_COMM = 0x010, /* $lexical seen on both sides */
+    AAS_PKG_SCALAR      = 0x020, /* $scalar (where $scalar is pkg var) */
+    AAS_PKG_AGG         = 0x040, /* package @array or %hash aggregate */
+    AAS_DANGEROUS       = 0x080, /* an op (other than the above)
+                                         that's flagged OA_DANGEROUS */
+    AAS_SAFE_SCALAR     = 0x100, /* produces at least one scalar SV that's
+                                        not in any of the categories above */
+    AAS_DEFAV           = 0x200  /* contains just a single '@_' on RHS */
+};
+
+/* helper function for S_aassign_scan().
+ * check a PAD-related op for commonality and/or set its generation number.
+ * Returns a boolean indicating whether its shared */
+
+static bool
+S_aassign_padcheck(pTHX_ OP* o, bool rhs)
+{
+    if (PAD_COMPNAME_GEN(o->op_targ) == PERL_INT_MAX)
+        /* lexical used in aliasing */
+        return TRUE;
+
+    if (rhs)
+        return cBOOL(PAD_COMPNAME_GEN(o->op_targ) == (STRLEN)PL_generation);
+    else
+        PAD_COMPNAME_GEN_set(o->op_targ, PL_generation);
+
+    return FALSE;
+}
+
+/*
+  Helper function for OPpASSIGN_COMMON* detection in rpeep().
+  It scans the left or right hand subtree of the aassign op, and returns a
+  set of flags indicating what sorts of things it found there.
+  'rhs' indicates whether we're scanning the LHS or RHS. If the former, we
+  set PL_generation on lexical vars; if the latter, we see if
+  PL_generation matches.
+  'scalars_p' is a pointer to a counter of the number of scalar SVs seen.
+  This fn will increment it by the number seen. It's not intended to
+  be an accurate count (especially as many ops can push a variable
+  number of SVs onto the stack); rather it's used as to test whether there
+  can be at most 1 SV pushed; so it's only meanings are "0, 1, many".
+*/
+
+static int
+S_aassign_scan(pTHX_ OP* o, bool rhs, int *scalars_p)
+{
+    OP *top_op           = o;
+    OP *effective_top_op = o;
+    int all_flags = 0;
+
+    while (1) {
+        bool top = o == effective_top_op;
+        int flags = 0;
+        OP* next_kid = NULL;
+
+        /* first, look for a solitary @_ on the RHS */
+        if (   rhs
+            && top
+            && (o->op_flags & OPf_KIDS)
+            && OP_TYPE_IS_OR_WAS(o, OP_LIST)
+        ) {
+            OP *kid = cUNOPo->op_first;
+            if (   (   kid->op_type == OP_PUSHMARK
+                    || kid->op_type == OP_PADRANGE) /* ex-pushmark */
+                && ((kid = OpSIBLING(kid)))
+                && !OpHAS_SIBLING(kid)
+                && kid->op_type == OP_RV2AV
+                && !(kid->op_flags & OPf_REF)
+                && !(kid->op_private & (OPpLVAL_INTRO|OPpMAYBE_LVSUB))
+                && ((kid->op_flags & OPf_WANT) == OPf_WANT_LIST)
+                && ((kid = cUNOPx(kid)->op_first))
+                && kid->op_type == OP_GV
+                && cGVOPx_gv(kid) == PL_defgv
+            )
+                flags = AAS_DEFAV;
+        }
+
+        switch (o->op_type) {
+        case OP_GVSV:
+            (*scalars_p)++;
+            all_flags |= AAS_PKG_SCALAR;
+            goto do_next;
+
+        case OP_PADAV:
+        case OP_PADHV:
+            (*scalars_p) += 2;
+            /* if !top, could be e.g. @a[0,1] */
+            all_flags |=  (top && (o->op_flags & OPf_REF))
+                            ? ((o->op_private & OPpLVAL_INTRO)
+                                ? AAS_MY_AGG : AAS_LEX_AGG)
+                            : AAS_DANGEROUS;
+            goto do_next;
+
+        case OP_PADSV:
+            {
+                int comm = S_aassign_padcheck(aTHX_ o, rhs)
+                            ?  AAS_LEX_SCALAR_COMM : 0;
+                (*scalars_p)++;
+                all_flags |= (o->op_private & OPpLVAL_INTRO)
+                    ? (AAS_MY_SCALAR|comm) : (AAS_LEX_SCALAR|comm);
+                goto do_next;
+
+            }
+
+        case OP_RV2AV:
+        case OP_RV2HV:
+            (*scalars_p) += 2;
+            if (cUNOPx(o)->op_first->op_type != OP_GV)
+                all_flags |= AAS_DANGEROUS; /* @{expr}, %{expr} */
+            /* @pkg, %pkg */
+            /* if !top, could be e.g. @a[0,1] */
+            else if (top && (o->op_flags & OPf_REF))
+                all_flags |= AAS_PKG_AGG;
+            else
+                all_flags |= AAS_DANGEROUS;
+            goto do_next;
+
+        case OP_RV2SV:
+            (*scalars_p)++;
+            if (cUNOPx(o)->op_first->op_type != OP_GV) {
+                (*scalars_p) += 2;
+                all_flags |= AAS_DANGEROUS; /* ${expr} */
+            }
+            else
+                all_flags |= AAS_PKG_SCALAR; /* $pkg */
+            goto do_next;
+
+        case OP_SPLIT:
+            if (o->op_private & OPpSPLIT_ASSIGN) {
+                /* the assign in @a = split() has been optimised away
+                 * and the @a attached directly to the split op
+                 * Treat the array as appearing on the RHS, i.e.
+                 *    ... = (@a = split)
+                 * is treated like
+                 *    ... = @a;
+                 */
+
+                if (o->op_flags & OPf_STACKED) {
+                    /* @{expr} = split() - the array expression is tacked
+                     * on as an extra child to split - process kid */
+                    next_kid = cLISTOPo->op_last;
+                    goto do_next;
+                }
+
+                /* ... else array is directly attached to split op */
+                (*scalars_p) += 2;
+                all_flags |= (PL_op->op_private & OPpSPLIT_LEX)
+                                ? ((o->op_private & OPpLVAL_INTRO)
+                                    ? AAS_MY_AGG : AAS_LEX_AGG)
+                                : AAS_PKG_AGG;
+                goto do_next;
+            }
+            (*scalars_p)++;
+            /* other args of split can't be returned */
+            all_flags |= AAS_SAFE_SCALAR;
+            goto do_next;
+
+        case OP_UNDEF:
+            /* undef on LHS following a var is significant, e.g.
+             *    my $x = 1;
+             *    @a = (($x, undef) = (2 => $x));
+             *    # @a shoul be (2,1) not (2,2)
+             *
+             * undef on RHS counts as a scalar:
+             *   ($x, $y)    = (undef, $x); # 2 scalars on RHS: unsafe
+             */
+            if ((!rhs && *scalars_p) || rhs)
+                (*scalars_p)++;
+            flags = AAS_SAFE_SCALAR;
+            break;
+
+        case OP_PUSHMARK:
+        case OP_STUB:
+            /* these are all no-ops; they don't push a potentially common SV
+             * onto the stack, so they are neither AAS_DANGEROUS nor
+             * AAS_SAFE_SCALAR */
+            goto do_next;
+
+        case OP_PADRANGE: /* Ignore padrange; checking its siblings is enough */
+            break;
+
+        case OP_NULL:
+        case OP_LIST:
+            /* these do nothing, but may have children */
+            break;
+
+        default:
+            if (PL_opargs[o->op_type] & OA_DANGEROUS) {
+                (*scalars_p) += 2;
+                flags = AAS_DANGEROUS;
+                break;
+            }
+
+            if (   (PL_opargs[o->op_type] & OA_TARGLEX)
+                && (o->op_private & OPpTARGET_MY))
+            {
+                (*scalars_p)++;
+                all_flags |= S_aassign_padcheck(aTHX_ o, rhs)
+                                ? AAS_LEX_SCALAR_COMM : AAS_LEX_SCALAR;
+                goto do_next;
+            }
+
+            /* if its an unrecognised, non-dangerous op, assume that it
+             * is the cause of at least one safe scalar */
+            (*scalars_p)++;
+            flags = AAS_SAFE_SCALAR;
+            break;
+        }
+
+        all_flags |= flags;
+
+        /* by default, process all kids next
+         * XXX this assumes that all other ops are "transparent" - i.e. that
+         * they can return some of their children. While this true for e.g.
+         * sort and grep, it's not true for e.g. map. We really need a
+         * 'transparent' flag added to regen/opcodes
+         */
+        if (o->op_flags & OPf_KIDS) {
+            next_kid = cUNOPo->op_first;
+            /* these ops do nothing but may have children; but their
+             * children should also be treated as top-level */
+            if (   o == effective_top_op
+                && (o->op_type == OP_NULL || o->op_type == OP_LIST)
+            )
+                effective_top_op = next_kid;
+        }
+
+
+        /* If next_kid is set, someone in the code above wanted us to process
+         * that kid and all its remaining siblings.  Otherwise, work our way
+         * back up the tree */
+      do_next:
+        while (!next_kid) {
+            if (o == top_op)
+                return all_flags; /* at top; no parents/siblings to try */
+            if (OpHAS_SIBLING(o)) {
+                next_kid = o->op_sibparent;
+                if (o == effective_top_op)
+                    effective_top_op = next_kid;
+            }
+            else if (o == effective_top_op)
+              effective_top_op = o->op_sibparent;
+            o = o->op_sibparent; /* try parent's next sibling */
+        }
+        o = next_kid;
+    } /* while */
+}
+
+/* S_maybe_multideref(): given an op_next chain of ops beginning at 'start'
+ * that potentially represent a series of one or more aggregate derefs
+ * (such as $a->[1]{$key}), examine the chain, and if appropriate, convert
+ * the whole chain to a single OP_MULTIDEREF op (maybe with a few
+ * additional ops left in too).
+ *
+ * The caller will have already verified that the first few ops in the
+ * chain following 'start' indicate a multideref candidate, and will have
+ * set 'orig_o' to the point further on in the chain where the first index
+ * expression (if any) begins.  'orig_action' specifies what type of
+ * beginning has already been determined by the ops between start..orig_o
+ * (e.g.  $lex_ary[], $pkg_ary->{}, expr->[], etc).
+ *
+ * 'hints' contains any hints flags that need adding (currently just
+ * OPpHINT_STRICT_REFS) as found in any rv2av/hv skipped by the caller.
+ */
+
+STATIC void
+S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV orig_action, U8 hints)
+{
+    int pass;
+    UNOP_AUX_item *arg_buf = NULL;
+    bool reset_start_targ  = FALSE; /* start->op_targ needs zeroing */
+    int index_skip         = -1;    /* don't output index arg on this action */
+
+    /* similar to regex compiling, do two passes; the first pass
+     * determines whether the op chain is convertible and calculates the
+     * buffer size; the second pass populates the buffer and makes any
+     * changes necessary to ops (such as moving consts to the pad on
+     * threaded builds).
+     *
+     * NB: for things like Coverity, note that both passes take the same
+     * path through the logic tree (except for 'if (pass)' bits), since
+     * both passes are following the same op_next chain; and in
+     * particular, if it would return early on the second pass, it would
+     * already have returned early on the first pass.
+     */
+    for (pass = 0; pass < 2; pass++) {
+        OP *o                = orig_o;
+        UV action            = orig_action;
+        OP *first_elem_op    = NULL;  /* first seen aelem/helem */
+        OP *top_op           = NULL;  /* highest [ah]elem/exists/del/rv2[ah]v */
+        int action_count     = 0;     /* number of actions seen so far */
+        int action_ix        = 0;     /* action_count % (actions per IV) */
+        bool next_is_hash    = FALSE; /* is the next lookup to be a hash? */
+        bool is_last         = FALSE; /* no more derefs to follow */
+        bool maybe_aelemfast = FALSE; /* we can replace with aelemfast? */
+        UV action_word       = 0;     /* all actions so far */
+        size_t argi          = 0;
+        UNOP_AUX_item *action_ptr = arg_buf;
+
+        argi++; /* reserve slot for first action word */
+
+        switch (action) {
+        case MDEREF_HV_gvsv_vivify_rv2hv_helem:
+        case MDEREF_HV_gvhv_helem:
+            next_is_hash = TRUE;
+            /* FALLTHROUGH */
+        case MDEREF_AV_gvsv_vivify_rv2av_aelem:
+        case MDEREF_AV_gvav_aelem:
+            if (pass) {
+#ifdef USE_ITHREADS
+                arg_buf[argi].pad_offset = cPADOPx(start)->op_padix;
+                /* stop it being swiped when nulled */
+                cPADOPx(start)->op_padix = 0;
+#else
+                arg_buf[argi].sv = cSVOPx(start)->op_sv;
+                cSVOPx(start)->op_sv = NULL;
+#endif
+            }
+            argi++;
+            break;
+
+        case MDEREF_HV_padhv_helem:
+        case MDEREF_HV_padsv_vivify_rv2hv_helem:
+            next_is_hash = TRUE;
+            /* FALLTHROUGH */
+        case MDEREF_AV_padav_aelem:
+        case MDEREF_AV_padsv_vivify_rv2av_aelem:
+            if (pass) {
+                arg_buf[argi].pad_offset = start->op_targ;
+                /* we skip setting op_targ = 0 for now, since the intact
+                 * OP_PADXV is needed by check_hash_fields_and_hekify */
+                reset_start_targ = TRUE;
+            }
+            argi++;
+            break;
+
+        case MDEREF_HV_pop_rv2hv_helem:
+            next_is_hash = TRUE;
+            /* FALLTHROUGH */
+        case MDEREF_AV_pop_rv2av_aelem:
+            break;
+
+        default:
+            NOT_REACHED; /* NOTREACHED */
+            return;
+        }
+
+        while (!is_last) {
+            /* look for another (rv2av/hv; get index;
+             * aelem/helem/exists/delele) sequence */
+
+            OP *kid;
+            bool is_deref;
+            bool ok;
+            UV index_type = MDEREF_INDEX_none;
+
+            if (action_count) {
+                /* if this is not the first lookup, consume the rv2av/hv  */
+
+                /* for N levels of aggregate lookup, we normally expect
+                 * that the first N-1 [ah]elem ops will be flagged as
+                 * /DEREF (so they autovivify if necessary), and the last
+                 * lookup op not to be.
+                 * For other things (like @{$h{k1}{k2}}) extra scope or
+                 * leave ops can appear, so abandon the effort in that
+                 * case */
+                if (o->op_type != OP_RV2AV && o->op_type != OP_RV2HV)
+                    return;
+
+                /* rv2av or rv2hv sKR/1 */
+
+                ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
+                                            |OPf_REF|OPf_MOD|OPf_SPECIAL)));
+                if (o->op_flags != (OPf_WANT_SCALAR|OPf_KIDS|OPf_REF))
+                    return;
+
+                /* at this point, we wouldn't expect any of these
+                 * possible private flags:
+                 * OPpMAYBE_LVSUB, OPpOUR_INTRO, OPpLVAL_INTRO
+                 * OPpTRUEBOOL, OPpMAYBE_TRUEBOOL (rv2hv only)
+                 */
+                ASSUME(!(o->op_private &
+                    ~(OPpHINT_STRICT_REFS|OPpARG1_MASK|OPpSLICEWARNING)));
+
+                hints = (o->op_private & OPpHINT_STRICT_REFS);
+
+                /* make sure the type of the previous /DEREF matches the
+                 * type of the next lookup */
+                ASSUME(o->op_type == (next_is_hash ? OP_RV2HV : OP_RV2AV));
+                top_op = o;
+
+                action = next_is_hash
+                            ? MDEREF_HV_vivify_rv2hv_helem
+                            : MDEREF_AV_vivify_rv2av_aelem;
+                o = o->op_next;
+            }
+
+            /* if this is the second pass, and we're at the depth where
+             * previously we encountered a non-simple index expression,
+             * stop processing the index at this point */
+            if (action_count != index_skip) {
+
+                /* look for one or more simple ops that return an array
+                 * index or hash key */
+
+                switch (o->op_type) {
+                case OP_PADSV:
+                    /* it may be a lexical var index */
+                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_PARENS
+                                            |OPf_REF|OPf_MOD|OPf_SPECIAL)));
+                    ASSUME(!(o->op_private &
+                            ~(OPpPAD_STATE|OPpDEREF|OPpLVAL_INTRO)));
+
+                    if (   OP_GIMME(o,0) == G_SCALAR
+                        && !(o->op_flags & (OPf_REF|OPf_MOD))
+                        && o->op_private == 0)
+                    {
+                        if (pass)
+                            arg_buf[argi].pad_offset = o->op_targ;
+                        argi++;
+                        index_type = MDEREF_INDEX_padsv;
+                        o = o->op_next;
+                    }
+                    break;
+
+                case OP_CONST:
+                    if (next_is_hash) {
+                        /* it's a constant hash index */
+                        if (!(SvFLAGS(cSVOPo_sv) & (SVf_IOK|SVf_NOK|SVf_POK)))
+                            /* "use constant foo => FOO; $h{+foo}" for
+                             * some weird FOO, can leave you with constants
+                             * that aren't simple strings. It's not worth
+                             * the extra hassle for those edge cases */
+                            break;
+
+                        {
+                            UNOP *rop = NULL;
+                            OP * helem_op = o->op_next;
+
+                            ASSUME(   helem_op->op_type == OP_HELEM
+                                   || helem_op->op_type == OP_NULL
+                                   || pass == 0);
+                            if (helem_op->op_type == OP_HELEM) {
+                                rop = cUNOPx(cBINOPx(helem_op)->op_first);
+                                if (   helem_op->op_private & OPpLVAL_INTRO
+                                    || rop->op_type != OP_RV2HV
+                                )
+                                    rop = NULL;
+                            }
+                            /* on first pass just check; on second pass
+                             * hekify */
+                            check_hash_fields_and_hekify(rop, cSVOPo, pass);
+                        }
+
+                        if (pass) {
+#ifdef USE_ITHREADS
+                            /* Relocate sv to the pad for thread safety */
+                            op_relocate_sv(&cSVOPo->op_sv, &o->op_targ);
+                            arg_buf[argi].pad_offset = o->op_targ;
+                            o->op_targ = 0;
+#else
+                            arg_buf[argi].sv = cSVOPx_sv(o);
+#endif
+                        }
+                    }
+                    else {
+                        /* it's a constant array index */
+                        IV iv;
+                        SV *ix_sv = cSVOPo->op_sv;
+                        if (!SvIOK(ix_sv))
+                            break;
+                        iv = SvIV(ix_sv);
+
+                        if (   action_count == 0
+                            && iv >= -128
+                            && iv <= 127
+                            && (   action == MDEREF_AV_padav_aelem
+                                || action == MDEREF_AV_gvav_aelem)
+                        )
+                            maybe_aelemfast = TRUE;
+
+                        if (pass) {
+                            arg_buf[argi].iv = iv;
+                            SvREFCNT_dec_NN(cSVOPo->op_sv);
+                        }
+                    }
+                    if (pass)
+                        /* we've taken ownership of the SV */
+                        cSVOPo->op_sv = NULL;
+                    argi++;
+                    index_type = MDEREF_INDEX_const;
+                    o = o->op_next;
+                    break;
+
+                case OP_GV:
+                    /* it may be a package var index */
+
+                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_PARENS|OPf_SPECIAL)));
+                    ASSUME(!(o->op_private & ~(OPpEARLY_CV)));
+                    if (  (o->op_flags & ~(OPf_PARENS|OPf_SPECIAL)) != OPf_WANT_SCALAR
+                        || o->op_private != 0
+                    )
+                        break;
+
+                    kid = o->op_next;
+                    if (kid->op_type != OP_RV2SV)
+                        break;
+
+                    ASSUME(!(kid->op_flags &
+                            ~(OPf_WANT|OPf_KIDS|OPf_MOD|OPf_REF
+                             |OPf_SPECIAL|OPf_PARENS)));
+                    ASSUME(!(kid->op_private &
+                                    ~(OPpARG1_MASK
+                                     |OPpHINT_STRICT_REFS|OPpOUR_INTRO
+                                     |OPpDEREF|OPpLVAL_INTRO)));
+                    if(   (kid->op_flags &~ OPf_PARENS)
+                            != (OPf_WANT_SCALAR|OPf_KIDS)
+                       || (kid->op_private & ~(OPpARG1_MASK|HINT_STRICT_REFS))
+                    )
+                        break;
+
+                    if (pass) {
+#ifdef USE_ITHREADS
+                        arg_buf[argi].pad_offset = cPADOPx(o)->op_padix;
+                        /* stop it being swiped when nulled */
+                        cPADOPx(o)->op_padix = 0;
+#else
+                        arg_buf[argi].sv = cSVOPx(o)->op_sv;
+                        cSVOPo->op_sv = NULL;
+#endif
+                    }
+                    argi++;
+                    index_type = MDEREF_INDEX_gvsv;
+                    o = kid->op_next;
+                    break;
+
+                } /* switch */
+            } /* action_count != index_skip */
+
+            action |= index_type;
+
+
+            /* at this point we have either:
+             *   * detected what looks like a simple index expression,
+             *     and expect the next op to be an [ah]elem, or
+             *     an nulled  [ah]elem followed by a delete or exists;
+             *  * found a more complex expression, so something other
+             *    than the above follows.
+             */
+
+            /* possibly an optimised away [ah]elem (where op_next is
+             * exists or delete) */
+            if (o->op_type == OP_NULL)
+                o = o->op_next;
+
+            /* at this point we're looking for an OP_AELEM, OP_HELEM,
+             * OP_EXISTS or OP_DELETE */
+
+            /* if a custom array/hash access checker is in scope,
+             * abandon optimisation attempt */
+            if (  (o->op_type == OP_AELEM || o->op_type == OP_HELEM)
+               && PL_check[o->op_type] != Perl_ck_null)
+                return;
+            /* similarly for customised exists and delete */
+            if (  (o->op_type == OP_EXISTS)
+               && PL_check[o->op_type] != Perl_ck_exists)
+                return;
+            if (  (o->op_type == OP_DELETE)
+               && PL_check[o->op_type] != Perl_ck_delete)
+                return;
+
+            if (   o->op_type != OP_AELEM
+                || (o->op_private &
+                      (OPpLVAL_INTRO|OPpLVAL_DEFER|OPpDEREF|OPpMAYBE_LVSUB))
+                )
+                maybe_aelemfast = FALSE;
+
+            /* look for aelem/helem/exists/delete. If it's not the last elem
+             * lookup, it *must* have OPpDEREF_AV/HV, but not many other
+             * flags; if it's the last, then it mustn't have
+             * OPpDEREF_AV/HV, but may have lots of other flags, like
+             * OPpLVAL_INTRO etc
+             */
+
+            if (   index_type == MDEREF_INDEX_none
+                || (   o->op_type != OP_AELEM  && o->op_type != OP_HELEM
+                    && o->op_type != OP_EXISTS && o->op_type != OP_DELETE)
+            )
+                ok = FALSE;
+            else {
+                /* we have aelem/helem/exists/delete with valid simple index */
+
+                is_deref =    (o->op_type == OP_AELEM || o->op_type == OP_HELEM)
+                           && (   (o->op_private & OPpDEREF) == OPpDEREF_AV
+                               || (o->op_private & OPpDEREF) == OPpDEREF_HV);
+
+                /* This doesn't make much sense but is legal:
+                 *    @{ local $x[0][0] } = 1
+                 * Since scope exit will undo the autovivification,
+                 * don't bother in the first place. The OP_LEAVE
+                 * assertion is in case there are other cases of both
+                 * OPpLVAL_INTRO and OPpDEREF which don't include a scope
+                 * exit that would undo the local - in which case this
+                 * block of code would need rethinking.
+                 */
+                if (is_deref && (o->op_private & OPpLVAL_INTRO)) {
+#ifdef DEBUGGING
+                    OP *n = o->op_next;
+                    while (n && (  n->op_type == OP_NULL
+                                || n->op_type == OP_LIST
+                                || n->op_type == OP_SCALAR))
+                        n = n->op_next;
+                    assert(n && n->op_type == OP_LEAVE);
+#endif
+                    o->op_private &= ~OPpDEREF;
+                    is_deref = FALSE;
+                }
+
+                if (is_deref) {
+                    ASSUME(!(o->op_flags &
+                                 ~(OPf_WANT|OPf_KIDS|OPf_MOD|OPf_PARENS)));
+                    ASSUME(!(o->op_private & ~(OPpARG2_MASK|OPpDEREF)));
+
+                    ok =    (o->op_flags &~ OPf_PARENS)
+                               == (OPf_WANT_SCALAR|OPf_KIDS|OPf_MOD)
+                         && !(o->op_private & ~(OPpDEREF|OPpARG2_MASK));
+                }
+                else if (o->op_type == OP_EXISTS) {
+                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
+                                |OPf_REF|OPf_MOD|OPf_SPECIAL)));
+                    ASSUME(!(o->op_private & ~(OPpARG1_MASK|OPpEXISTS_SUB)));
+                    ok =  !(o->op_private & ~OPpARG1_MASK);
+                }
+                else if (o->op_type == OP_DELETE) {
+                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
+                                |OPf_REF|OPf_MOD|OPf_SPECIAL)));
+                    ASSUME(!(o->op_private &
+                                    ~(OPpARG1_MASK|OPpSLICE|OPpLVAL_INTRO)));
+                    /* don't handle slices or 'local delete'; the latter
+                     * is fairly rare, and has a complex runtime */
+                    ok =  !(o->op_private & ~OPpARG1_MASK);
+                    if (OP_TYPE_IS_OR_WAS(cUNOPo->op_first, OP_AELEM))
+                        /* skip handling run-tome error */
+                        ok = (ok && cBOOL(o->op_flags & OPf_SPECIAL));
+                }
+                else {
+                    ASSUME(o->op_type == OP_AELEM || o->op_type == OP_HELEM);
+                    ASSUME(!(o->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_MOD
+                                            |OPf_PARENS|OPf_REF|OPf_SPECIAL)));
+                    ASSUME(!(o->op_private & ~(OPpARG2_MASK|OPpMAYBE_LVSUB
+                                    |OPpLVAL_DEFER|OPpDEREF|OPpLVAL_INTRO)));
+                    ok = (o->op_private & OPpDEREF) != OPpDEREF_SV;
+                }
+            }
+
+            if (ok) {
+                if (!first_elem_op)
+                    first_elem_op = o;
+                top_op = o;
+                if (is_deref) {
+                    next_is_hash = cBOOL((o->op_private & OPpDEREF) == OPpDEREF_HV);
+                    o = o->op_next;
+                }
+                else {
+                    is_last = TRUE;
+                    action |= MDEREF_FLAG_last;
+                }
+            }
+            else {
+                /* at this point we have something that started
+                 * promisingly enough (with rv2av or whatever), but failed
+                 * to find a simple index followed by an
+                 * aelem/helem/exists/delete. If this is the first action,
+                 * give up; but if we've already seen at least one
+                 * aelem/helem, then keep them and add a new action with
+                 * MDEREF_INDEX_none, which causes it to do the vivify
+                 * from the end of the previous lookup, and do the deref,
+                 * but stop at that point. So $a[0][expr] will do one
+                 * av_fetch, vivify and deref, then continue executing at
+                 * expr */
+                if (!action_count)
+                    return;
+                is_last = TRUE;
+                index_skip = action_count;
+                action |= MDEREF_FLAG_last;
+                if (index_type != MDEREF_INDEX_none)
+                    argi--;
+            }
+
+            action_word |= (action << (action_ix * MDEREF_SHIFT));
+            action_ix++;
+            action_count++;
+            /* if there's no space for the next action, reserve a new slot
+             * for it *before* we start adding args for that action */
+            if ((action_ix + 1) * MDEREF_SHIFT > UVSIZE*8) {
+                if (pass) {
+                    action_ptr->uv = action_word;
+                    action_ptr = arg_buf + argi;
+                }
+                action_word = 0;
+                argi++;
+                action_ix = 0;
+            }
+        } /* while !is_last */
+
+        /* success! */
+
+        if (!action_ix)
+            /* slot reserved for next action word not now needed */
+            argi--;
+        else if (pass)
+            action_ptr->uv = action_word;
+
+        if (pass) {
+            OP *mderef;
+            OP *p, *q;
+
+            mderef = newUNOP_AUX(OP_MULTIDEREF, 0, NULL, arg_buf);
+            if (index_skip == -1) {
+                mderef->op_flags = o->op_flags
+                        & (OPf_WANT|OPf_MOD|(next_is_hash ? OPf_SPECIAL : 0));
+                if (o->op_type == OP_EXISTS)
+                    mderef->op_private = OPpMULTIDEREF_EXISTS;
+                else if (o->op_type == OP_DELETE)
+                    mderef->op_private = OPpMULTIDEREF_DELETE;
+                else
+                    mderef->op_private = o->op_private
+                        & (OPpMAYBE_LVSUB|OPpLVAL_DEFER|OPpLVAL_INTRO);
+            }
+            /* accumulate strictness from every level (although I don't think
+             * they can actually vary) */
+            mderef->op_private |= hints;
+
+            /* integrate the new multideref op into the optree and the
+             * op_next chain.
+             *
+             * In general an op like aelem or helem has two child
+             * sub-trees: the aggregate expression (a_expr) and the
+             * index expression (i_expr):
+             *
+             *     aelem
+             *       |
+             *     a_expr - i_expr
+             *
+             * The a_expr returns an AV or HV, while the i-expr returns an
+             * index. In general a multideref replaces most or all of a
+             * multi-level tree, e.g.
+             *
+             *     exists
+             *       |
+             *     ex-aelem
+             *       |
+             *     rv2av  - i_expr1
+             *       |
+             *     helem
+             *       |
+             *     rv2hv  - i_expr2
+             *       |
+             *     aelem
+             *       |
+             *     a_expr - i_expr3
+             *
+             * With multideref, all the i_exprs will be simple vars or
+             * constants, except that i_expr1 may be arbitrary in the case
+             * of MDEREF_INDEX_none.
+             *
+             * The bottom-most a_expr will be either:
+             *   1) a simple var (so padXv or gv+rv2Xv);
+             *   2) a simple scalar var dereferenced (e.g. $r->[0]):
+             *      so a simple var with an extra rv2Xv;
+             *   3) or an arbitrary expression.
+             *
+             * 'start', the first op in the execution chain, will point to
+             *   1),2): the padXv or gv op;
+             *   3):    the rv2Xv which forms the last op in the a_expr
+             *          execution chain, and the top-most op in the a_expr
+             *          subtree.
+             *
+             * For all cases, the 'start' node is no longer required,
+             * but we can't free it since one or more external nodes
+             * may point to it. E.g. consider
+             *     $h{foo} = $a ? $b : $c
+             * Here, both the op_next and op_other branches of the
+             * cond_expr point to the gv[*h] of the hash expression, so
+             * we can't free the 'start' op.
+             *
+             * For expr->[...], we need to save the subtree containing the
+             * expression; for the other cases, we just need to save the
+             * start node.
+             * So in all cases, we null the start op and keep it around by
+             * making it the child of the multideref op; for the expr->
+             * case, the expr will be a subtree of the start node.
+             *
+             * So in the simple 1,2 case the  optree above changes to
+             *
+             *     ex-exists
+             *       |
+             *     multideref
+             *       |
+             *     ex-gv (or ex-padxv)
+             *
+             *  with the op_next chain being
+             *
+             *  -> ex-gv -> multideref -> op-following-ex-exists ->
+             *
+             *  In the 3 case, we have
+             *
+             *     ex-exists
+             *       |
+             *     multideref
+             *       |
+             *     ex-rv2xv
+             *       |
+             *    rest-of-a_expr
+             *      subtree
+             *
+             *  and
+             *
+             *  -> rest-of-a_expr subtree ->
+             *    ex-rv2xv -> multideref -> op-following-ex-exists ->
+             *
+             *
+             * Where the last i_expr is non-simple (i.e. MDEREF_INDEX_none,
+             * e.g. $a[0]{foo}[$x+1], the next rv2xv is nulled and the
+             * multideref attached as the child, e.g.
+             *
+             *     exists
+             *       |
+             *     ex-aelem
+             *       |
+             *     ex-rv2av  - i_expr1
+             *       |
+             *     multideref
+             *       |
+             *     ex-whatever
+             *
+             */
+
+            /* if we free this op, don't free the pad entry */
+            if (reset_start_targ)
+                start->op_targ = 0;
+
+
+            /* Cut the bit we need to save out of the tree and attach to
+             * the multideref op, then free the rest of the tree */
+
+            /* find parent of node to be detached (for use by splice) */
+            p = first_elem_op;
+            if (   orig_action == MDEREF_AV_pop_rv2av_aelem
+                || orig_action == MDEREF_HV_pop_rv2hv_helem)
+            {
+                /* there is an arbitrary expression preceding us, e.g.
+                 * expr->[..]? so we need to save the 'expr' subtree */
+                if (p->op_type == OP_EXISTS || p->op_type == OP_DELETE)
+                    p = cUNOPx(p)->op_first;
+                ASSUME(   start->op_type == OP_RV2AV
+                       || start->op_type == OP_RV2HV);
+            }
+            else {
+                /* either a padXv or rv2Xv+gv, maybe with an ex-Xelem
+                 * above for exists/delete. */
+                while (   (p->op_flags & OPf_KIDS)
+                       && cUNOPx(p)->op_first != start
+                )
+                    p = cUNOPx(p)->op_first;
+            }
+            ASSUME(cUNOPx(p)->op_first == start);
+
+            /* detach from main tree, and re-attach under the multideref */
+            op_sibling_splice(mderef, NULL, 0,
+                    op_sibling_splice(p, NULL, 1, NULL));
+            op_null(start);
+
+            start->op_next = mderef;
+
+            mderef->op_next = index_skip == -1 ? o->op_next : o;
+
+            /* excise and free the original tree, and replace with
+             * the multideref op */
+            p = op_sibling_splice(top_op, NULL, -1, mderef);
+            while (p) {
+                q = OpSIBLING(p);
+                op_free(p);
+                p = q;
+            }
+            op_null(top_op);
+        }
+        else {
+            Size_t size = argi;
+
+            if (maybe_aelemfast && action_count == 1)
+                return;
+
+            arg_buf = (UNOP_AUX_item*)PerlMemShared_malloc(
+                                sizeof(UNOP_AUX_item) * (size + 1));
+            /* for dumping etc: store the length in a hidden first slot;
+             * we set the op_aux pointer to the second slot */
+            arg_buf->uv = size;
+            arg_buf++;
+        }
+    } /* for (pass = ...) */
+}
+
+/* See if the ops following o are such that o will always be executed in
+ * boolean context: that is, the SV which o pushes onto the stack will
+ * only ever be consumed by later ops via SvTRUE(sv) or similar.
+ * If so, set a suitable private flag on o. Normally this will be
+ * bool_flag; but see below why maybe_flag is needed too.
+ *
+ * Typically the two flags you pass will be the generic OPpTRUEBOOL and
+ * OPpMAYBE_TRUEBOOL, buts it's possible that for some ops those bits may
+ * already be taken, so you'll have to give that op two different flags.
+ *
+ * More explanation of 'maybe_flag' and 'safe_and' parameters.
+ * The binary logical ops &&, ||, // (plus 'if' and 'unless' which use
+ * those underlying ops) short-circuit, which means that rather than
+ * necessarily returning a truth value, they may return the LH argument,
+ * which may not be boolean. For example in $x = (keys %h || -1), keys
+ * should return a key count rather than a boolean, even though its
+ * sort-of being used in boolean context.
+ *
+ * So we only consider such logical ops to provide boolean context to
+ * their LH argument if they themselves are in void or boolean context.
+ * However, sometimes the context isn't known until run-time. In this
+ * case the op is marked with the maybe_flag flag it.
+ *
+ * Consider the following.
+ *
+ *     sub f { ....;  if (%h) { .... } }
+ *
+ * This is actually compiled as
+ *
+ *     sub f { ....;  %h && do { .... } }
+ *
+ * Here we won't know until runtime whether the final statement (and hence
+ * the &&) is in void context and so is safe to return a boolean value.
+ * So mark o with maybe_flag rather than the bool_flag.
+ * Note that there is cost associated with determining context at runtime
+ * (e.g. a call to block_gimme()), so it may not be worth setting (at
+ * compile time) and testing (at runtime) maybe_flag if the scalar verses
+ * boolean costs savings are marginal.
+ *
+ * However, we can do slightly better with && (compared to || and //):
+ * this op only returns its LH argument when that argument is false. In
+ * this case, as long as the op promises to return a false value which is
+ * valid in both boolean and scalar contexts, we can mark an op consumed
+ * by && with bool_flag rather than maybe_flag.
+ * For example as long as pp_padhv and pp_rv2hv return &PL_sv_zero rather
+ * than &PL_sv_no for a false result in boolean context, then it's safe. An
+ * op which promises to handle this case is indicated by setting safe_and
+ * to true.
+ */
+
+static void
+S_check_for_bool_cxt(OP*o, bool safe_and, U8 bool_flag, U8 maybe_flag)
+{
+    OP *lop;
+    U8 flag = 0;
+
+    assert((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR);
+
+    /* OPpTARGET_MY and boolean context probably don't mix well.
+     * If someone finds a valid use case, maybe add an extra flag to this
+     * function which indicates its safe to do so for this op? */
+    assert(!(   (PL_opargs[o->op_type] & OA_TARGLEX)
+             && (o->op_private & OPpTARGET_MY)));
+
+    lop = o->op_next;
+
+    while (lop) {
+        switch (lop->op_type) {
+        case OP_NULL:
+        case OP_SCALAR:
+            break;
+
+        /* these two consume the stack argument in the scalar case,
+         * and treat it as a boolean in the non linenumber case */
+        case OP_FLIP:
+        case OP_FLOP:
+            if (   ((lop->op_flags & OPf_WANT) == OPf_WANT_LIST)
+                || (lop->op_private & OPpFLIP_LINENUM))
+            {
+                lop = NULL;
+                break;
+            }
+            /* FALLTHROUGH */
+        /* these never leave the original value on the stack */
+        case OP_NOT:
+        case OP_XOR:
+        case OP_COND_EXPR:
+        case OP_GREPWHILE:
+            flag = bool_flag;
+            lop = NULL;
+            break;
+
+        /* OR DOR and AND evaluate their arg as a boolean, but then may
+         * leave the original scalar value on the stack when following the
+         * op_next route. If not in void context, we need to ensure
+         * that whatever follows consumes the arg only in boolean context
+         * too.
+         */
+        case OP_AND:
+            if (safe_and) {
+                flag = bool_flag;
+                lop = NULL;
+                break;
+            }
+            /* FALLTHROUGH */
+        case OP_OR:
+        case OP_DOR:
+            if ((lop->op_flags & OPf_WANT) == OPf_WANT_VOID) {
+                flag = bool_flag;
+                lop = NULL;
+            }
+            else if (!(lop->op_flags & OPf_WANT)) {
+                /* unknown context - decide at runtime */
+                flag = maybe_flag;
+                lop = NULL;
+            }
+            break;
+
+        default:
+            lop = NULL;
+            break;
+        }
+
+        if (lop)
+            lop = lop->op_next;
+    }
+
+    o->op_private |= flag;
+}
+
+/* mechanism for deferring recursion in rpeep() */
+
+#define MAX_DEFERRED 4
+
+#define DEFER(o) \
+  STMT_START { \
+    if (defer_ix == (MAX_DEFERRED-1)) { \
+        OP **defer = defer_queue[defer_base]; \
+        CALL_RPEEP(*defer); \
+        op_prune_chain_head(defer); \
+        defer_base = (defer_base + 1) % MAX_DEFERRED; \
+        defer_ix--; \
+    } \
+    defer_queue[(defer_base + ++defer_ix) % MAX_DEFERRED] = &(o); \
+  } STMT_END
+
+#define IS_AND_OP(o)   (o->op_type == OP_AND)
+#define IS_OR_OP(o)    (o->op_type == OP_OR)
+
+/* A peephole optimizer.  We visit the ops in the order they're to execute.
+ * See the comments at the top of this file for more details about when
+ * peep() is called */
+
+void
+Perl_rpeep(pTHX_ OP *o)
+{
+    OP* oldop = NULL;
+    OP* oldoldop = NULL;
+    OP** defer_queue[MAX_DEFERRED] = { NULL }; /* small queue of deferred branches */
+    int defer_base = 0;
+    int defer_ix = -1;
+
+    if (!o || o->op_opt)
+        return;
+
+    assert(o->op_type != OP_FREED);
+
+    ENTER;
+    SAVEOP();
+    SAVEVPTR(PL_curcop);
+    for (;; o = o->op_next) {
+        if (o && o->op_opt)
+            o = NULL;
+        if (!o) {
+            while (defer_ix >= 0) {
+                OP **defer =
+                        defer_queue[(defer_base + defer_ix--) % MAX_DEFERRED];
+                CALL_RPEEP(*defer);
+                op_prune_chain_head(defer);
+            }
+            break;
+        }
+
+      redo:
+
+        /* oldoldop -> oldop -> o should be a chain of 3 adjacent ops */
+        assert(!oldoldop || oldoldop->op_next == oldop);
+        assert(!oldop    || oldop->op_next    == o);
+
+        /* By default, this op has now been optimised. A couple of cases below
+           clear this again.  */
+        o->op_opt = 1;
+        PL_op = o;
+
+        /* look for a series of 1 or more aggregate derefs, e.g.
+         *   $a[1]{foo}[$i]{$k}
+         * and replace with a single OP_MULTIDEREF op.
+         * Each index must be either a const, or a simple variable,
+         *
+         * First, look for likely combinations of starting ops,
+         * corresponding to (global and lexical variants of)
+         *     $a[...]   $h{...}
+         *     $r->[...] $r->{...}
+         *     (preceding expression)->[...]
+         *     (preceding expression)->{...}
+         * and if so, call maybe_multideref() to do a full inspection
+         * of the op chain and if appropriate, replace with an
+         * OP_MULTIDEREF
+         */
+        {
+            UV action;
+            OP *o2 = o;
+            U8 hints = 0;
+
+            switch (o2->op_type) {
+            case OP_GV:
+                /* $pkg[..]   :   gv[*pkg]
+                 * $pkg->[...]:   gv[*pkg]; rv2sv sKM/DREFAV */
+
+                /* Fail if there are new op flag combinations that we're
+                 * not aware of, rather than:
+                 *  * silently failing to optimise, or
+                 *  * silently optimising the flag away.
+                 * If this ASSUME starts failing, examine what new flag
+                 * has been added to the op, and decide whether the
+                 * optimisation should still occur with that flag, then
+                 * update the code accordingly. This applies to all the
+                 * other ASSUMEs in the block of code too.
+                 */
+                ASSUME(!(o2->op_flags &
+                            ~(OPf_WANT|OPf_MOD|OPf_PARENS|OPf_SPECIAL)));
+                ASSUME(!(o2->op_private & ~OPpEARLY_CV));
+
+                o2 = o2->op_next;
+
+                if (o2->op_type == OP_RV2AV) {
+                    action = MDEREF_AV_gvav_aelem;
+                    goto do_deref;
+                }
+
+                if (o2->op_type == OP_RV2HV) {
+                    action = MDEREF_HV_gvhv_helem;
+                    goto do_deref;
+                }
+
+                if (o2->op_type != OP_RV2SV)
+                    break;
+
+                /* at this point we've seen gv,rv2sv, so the only valid
+                 * construct left is $pkg->[] or $pkg->{} */
+
+                ASSUME(!(o2->op_flags & OPf_STACKED));
+                if ((o2->op_flags & (OPf_WANT|OPf_REF|OPf_MOD|OPf_SPECIAL))
+                            != (OPf_WANT_SCALAR|OPf_MOD))
+                    break;
+
+                ASSUME(!(o2->op_private & ~(OPpARG1_MASK|HINT_STRICT_REFS
+                                    |OPpOUR_INTRO|OPpDEREF|OPpLVAL_INTRO)));
+                if (o2->op_private & (OPpOUR_INTRO|OPpLVAL_INTRO))
+                    break;
+                if (   (o2->op_private & OPpDEREF) != OPpDEREF_AV
+                    && (o2->op_private & OPpDEREF) != OPpDEREF_HV)
+                    break;
+
+                o2 = o2->op_next;
+                if (o2->op_type == OP_RV2AV) {
+                    action = MDEREF_AV_gvsv_vivify_rv2av_aelem;
+                    goto do_deref;
+                }
+                if (o2->op_type == OP_RV2HV) {
+                    action = MDEREF_HV_gvsv_vivify_rv2hv_helem;
+                    goto do_deref;
+                }
+                break;
+
+            case OP_PADSV:
+                /* $lex->[...]: padsv[$lex] sM/DREFAV */
+
+                ASSUME(!(o2->op_flags &
+                    ~(OPf_WANT|OPf_PARENS|OPf_REF|OPf_MOD|OPf_SPECIAL)));
+                if ((o2->op_flags &
+                        (OPf_WANT|OPf_REF|OPf_MOD|OPf_SPECIAL))
+                     != (OPf_WANT_SCALAR|OPf_MOD))
+                    break;
+
+                ASSUME(!(o2->op_private &
+                                ~(OPpPAD_STATE|OPpDEREF|OPpLVAL_INTRO)));
+                /* skip if state or intro, or not a deref */
+                if (      o2->op_private != OPpDEREF_AV
+                       && o2->op_private != OPpDEREF_HV)
+                    break;
+
+                o2 = o2->op_next;
+                if (o2->op_type == OP_RV2AV) {
+                    action = MDEREF_AV_padsv_vivify_rv2av_aelem;
+                    goto do_deref;
+                }
+                if (o2->op_type == OP_RV2HV) {
+                    action = MDEREF_HV_padsv_vivify_rv2hv_helem;
+                    goto do_deref;
+                }
+                break;
+
+            case OP_PADAV:
+            case OP_PADHV:
+                /*    $lex[..]:  padav[@lex:1,2] sR *
+                 * or $lex{..}:  padhv[%lex:1,2] sR */
+                ASSUME(!(o2->op_flags & ~(OPf_WANT|OPf_MOD|OPf_PARENS|
+                                            OPf_REF|OPf_SPECIAL)));
+                if ((o2->op_flags &
+                        (OPf_WANT|OPf_REF|OPf_MOD|OPf_SPECIAL))
+                     != (OPf_WANT_SCALAR|OPf_REF))
+                    break;
+                if (o2->op_flags != (OPf_WANT_SCALAR|OPf_REF))
+                    break;
+                /* OPf_PARENS isn't currently used in this case;
+                 * if that changes, let us know! */
+                ASSUME(!(o2->op_flags & OPf_PARENS));
+
+                /* at this point, we wouldn't expect any of the remaining
+                 * possible private flags:
+                 * OPpPAD_STATE, OPpLVAL_INTRO, OPpTRUEBOOL,
+                 * OPpMAYBE_TRUEBOOL, OPpMAYBE_LVSUB
+                 *
+                 * OPpSLICEWARNING shouldn't affect runtime
+                 */
+                ASSUME(!(o2->op_private & ~(OPpSLICEWARNING)));
+
+                action = o2->op_type == OP_PADAV
+                            ? MDEREF_AV_padav_aelem
+                            : MDEREF_HV_padhv_helem;
+                o2 = o2->op_next;
+                S_maybe_multideref(aTHX_ o, o2, action, 0);
+                break;
+
+
+            case OP_RV2AV:
+            case OP_RV2HV:
+                action = o2->op_type == OP_RV2AV
+                            ? MDEREF_AV_pop_rv2av_aelem
+                            : MDEREF_HV_pop_rv2hv_helem;
+                /* FALLTHROUGH */
+            do_deref:
+                /* (expr)->[...]:  rv2av sKR/1;
+                 * (expr)->{...}:  rv2hv sKR/1; */
+
+                ASSUME(o2->op_type == OP_RV2AV || o2->op_type == OP_RV2HV);
+
+                ASSUME(!(o2->op_flags & ~(OPf_WANT|OPf_KIDS|OPf_PARENS
+                                |OPf_REF|OPf_MOD|OPf_STACKED|OPf_SPECIAL)));
+                if (o2->op_flags != (OPf_WANT_SCALAR|OPf_KIDS|OPf_REF))
+                    break;
+
+                /* at this point, we wouldn't expect any of these
+                 * possible private flags:
+                 * OPpMAYBE_LVSUB, OPpLVAL_INTRO
+                 * OPpTRUEBOOL, OPpMAYBE_TRUEBOOL, (rv2hv only)
+                 */
+                ASSUME(!(o2->op_private &
+                    ~(OPpHINT_STRICT_REFS|OPpARG1_MASK|OPpSLICEWARNING
+                     |OPpOUR_INTRO)));
+                hints |= (o2->op_private & OPpHINT_STRICT_REFS);
+
+                o2 = o2->op_next;
+
+                S_maybe_multideref(aTHX_ o, o2, action, hints);
+                break;
+
+            default:
+                break;
+            }
+        }
+
+
+        switch (o->op_type) {
+        case OP_DBSTATE:
+            PL_curcop = ((COP*)o);		/* for warnings */
+            break;
+        case OP_NEXTSTATE:
+            PL_curcop = ((COP*)o);		/* for warnings */
+
+            /* Optimise a "return ..." at the end of a sub to just be "...".
+             * This saves 2 ops. Before:
+             * 1  <;> nextstate(main 1 -e:1) v ->2
+             * 4  <@> return K ->5
+             * 2    <0> pushmark s ->3
+             * -    <1> ex-rv2sv sK/1 ->4
+             * 3      <#> gvsv[*cat] s ->4
+             *
+             * After:
+             * -  <@> return K ->-
+             * -    <0> pushmark s ->2
+             * -    <1> ex-rv2sv sK/1 ->-
+             * 2      <$> gvsv(*cat) s ->3
+             */
+            {
+                OP *next = o->op_next;
+                OP *sibling = OpSIBLING(o);
+                if (   OP_TYPE_IS(next, OP_PUSHMARK)
+                    && OP_TYPE_IS(sibling, OP_RETURN)
+                    && OP_TYPE_IS(sibling->op_next, OP_LINESEQ)
+                    && ( OP_TYPE_IS(sibling->op_next->op_next, OP_LEAVESUB)
+                       ||OP_TYPE_IS(sibling->op_next->op_next,
+                                    OP_LEAVESUBLV))
+                    && cUNOPx(sibling)->op_first == next
+                    && OpHAS_SIBLING(next) && OpSIBLING(next)->op_next
+                    && next->op_next
+                ) {
+                    /* Look through the PUSHMARK's siblings for one that
+                     * points to the RETURN */
+                    OP *top = OpSIBLING(next);
+                    while (top && top->op_next) {
+                        if (top->op_next == sibling) {
+                            top->op_next = sibling->op_next;
+                            o->op_next = next->op_next;
+                            break;
+                        }
+                        top = OpSIBLING(top);
+                    }
+                }
+            }
+
+            /* Optimise 'my $x; my $y;' into 'my ($x, $y);'
+             *
+             * This latter form is then suitable for conversion into padrange
+             * later on. Convert:
+             *
+             *   nextstate1 -> padop1 -> nextstate2 -> padop2 -> nextstate3
+             *
+             * into:
+             *
+             *   nextstate1 ->     listop     -> nextstate3
+             *                 /            \
+             *         pushmark -> padop1 -> padop2
+             */
+            if (o->op_next && (
+                    o->op_next->op_type == OP_PADSV
+                 || o->op_next->op_type == OP_PADAV
+                 || o->op_next->op_type == OP_PADHV
+                )
+                && !(o->op_next->op_private & ~OPpLVAL_INTRO)
+                && o->op_next->op_next && o->op_next->op_next->op_type == OP_NEXTSTATE
+                && o->op_next->op_next->op_next && (
+                    o->op_next->op_next->op_next->op_type == OP_PADSV
+                 || o->op_next->op_next->op_next->op_type == OP_PADAV
+                 || o->op_next->op_next->op_next->op_type == OP_PADHV
+                )
+                && !(o->op_next->op_next->op_next->op_private & ~OPpLVAL_INTRO)
+                && o->op_next->op_next->op_next->op_next && o->op_next->op_next->op_next->op_next->op_type == OP_NEXTSTATE
+                && (!CopLABEL((COP*)o)) /* Don't mess with labels */
+                && (!CopLABEL((COP*)o->op_next->op_next)) /* ... */
+            ) {
+                OP *pad1, *ns2, *pad2, *ns3, *newop, *newpm;
+
+                pad1 =    o->op_next;
+                ns2  = pad1->op_next;
+                pad2 =  ns2->op_next;
+                ns3  = pad2->op_next;
+
+                /* we assume here that the op_next chain is the same as
+                 * the op_sibling chain */
+                assert(OpSIBLING(o)    == pad1);
+                assert(OpSIBLING(pad1) == ns2);
+                assert(OpSIBLING(ns2)  == pad2);
+                assert(OpSIBLING(pad2) == ns3);
+
+                /* excise and delete ns2 */
+                op_sibling_splice(NULL, pad1, 1, NULL);
+                op_free(ns2);
+
+                /* excise pad1 and pad2 */
+                op_sibling_splice(NULL, o, 2, NULL);
+
+                /* create new listop, with children consisting of:
+                 * a new pushmark, pad1, pad2. */
+                newop = newLISTOP(OP_LIST, 0, pad1, pad2);
+                newop->op_flags |= OPf_PARENS;
+                newop->op_flags = (newop->op_flags & ~OPf_WANT) | OPf_WANT_VOID;
+
+                /* insert newop between o and ns3 */
+                op_sibling_splice(NULL, o, 0, newop);
+
+                /*fixup op_next chain */
+                newpm = cUNOPx(newop)->op_first; /* pushmark */
+                o    ->op_next = newpm;
+                newpm->op_next = pad1;
+                pad1 ->op_next = pad2;
+                pad2 ->op_next = newop; /* listop */
+                newop->op_next = ns3;
+
+                /* Ensure pushmark has this flag if padops do */
+                if (pad1->op_flags & OPf_MOD && pad2->op_flags & OPf_MOD) {
+                    newpm->op_flags |= OPf_MOD;
+                }
+
+                break;
+            }
+
+            /* Two NEXTSTATEs in a row serve no purpose. Except if they happen
+               to carry two labels. For now, take the easier option, and skip
+               this optimisation if the first NEXTSTATE has a label.
+               Yves asked what about if they have different hints or features?
+               Tony thinks that as we remove the first of the pair it should
+               be fine.
+            */
+            if (!CopLABEL((COP*)o) && !PERLDB_NOOPT) {
+                OP *nextop = o->op_next;
+                while (nextop) {
+                    switch (nextop->op_type) {
+                        case OP_NULL:
+                        case OP_SCALAR:
+                        case OP_LINESEQ:
+                        case OP_SCOPE:
+                            nextop = nextop->op_next;
+                            continue;
+                    }
+                    break;
+                }
+
+                if (nextop && (nextop->op_type == OP_NEXTSTATE)) {
+                    op_null(o);
+                    if (oldop)
+                        oldop->op_next = nextop;
+                    o = nextop;
+                    /* Skip (old)oldop assignment since the current oldop's
+                       op_next already points to the next op.  */
+                    goto redo;
+                }
+            }
+            break;
+
+        case OP_CONCAT:
+            if (o->op_next && o->op_next->op_type == OP_STRINGIFY) {
+                if (o->op_next->op_private & OPpTARGET_MY) {
+                    if (o->op_flags & OPf_STACKED) /* chained concats */
+                        break; /* ignore_optimization */
+                    else {
+                        /* assert(PL_opargs[o->op_type] & OA_TARGLEX); */
+                        o->op_targ = o->op_next->op_targ;
+                        o->op_next->op_targ = 0;
+                        o->op_private |= OPpTARGET_MY;
+                    }
+                }
+                op_null(o->op_next);
+            }
+            break;
+        case OP_STUB:
+            if ((o->op_flags & OPf_WANT) != OPf_WANT_LIST) {
+                break; /* Scalar stub must produce undef.  List stub is noop */
+            }
+            goto nothin;
+        case OP_NULL:
+            if (o->op_targ == OP_NEXTSTATE
+                || o->op_targ == OP_DBSTATE)
+            {
+                PL_curcop = ((COP*)o);
+            }
+            /* XXX: We avoid setting op_seq here to prevent later calls
+               to rpeep() from mistakenly concluding that optimisation
+               has already occurred. This doesn't fix the real problem,
+               though (See 20010220.007 (#5874)). AMS 20010719 */
+            /* op_seq functionality is now replaced by op_opt */
+            o->op_opt = 0;
+            /* FALLTHROUGH */
+        case OP_SCALAR:
+        case OP_LINESEQ:
+        case OP_SCOPE:
+        nothin:
+            if (oldop) {
+                oldop->op_next = o->op_next;
+                o->op_opt = 0;
+                continue;
+            }
+            break;
+
+        case OP_PUSHMARK:
+
+            /* Given
+                 5 repeat/DOLIST
+                 3   ex-list
+                 1     pushmark
+                 2     scalar or const
+                 4   const[0]
+               convert repeat into a stub with no kids.
+             */
+            if (o->op_next->op_type == OP_CONST
+             || (  o->op_next->op_type == OP_PADSV
+                && !(o->op_next->op_private & OPpLVAL_INTRO))
+             || (  o->op_next->op_type == OP_GV
+                && o->op_next->op_next->op_type == OP_RV2SV
+                && !(o->op_next->op_next->op_private
+                        & (OPpLVAL_INTRO|OPpOUR_INTRO))))
+            {
+                const OP *kid = o->op_next->op_next;
+                if (o->op_next->op_type == OP_GV)
+                   kid = kid->op_next;
+                /* kid is now the ex-list.  */
+                if (kid->op_type == OP_NULL
+                 && (kid = kid->op_next)->op_type == OP_CONST
+                    /* kid is now the repeat count.  */
+                 && kid->op_next->op_type == OP_REPEAT
+                 && kid->op_next->op_private & OPpREPEAT_DOLIST
+                 && (kid->op_next->op_flags & OPf_WANT) == OPf_WANT_LIST
+                 && SvIOK(kSVOP_sv) && SvIVX(kSVOP_sv) == 0
+                 && oldop)
+                {
+                    o = kid->op_next; /* repeat */
+                    oldop->op_next = o;
+                    op_free(cBINOPo->op_first);
+                    op_free(cBINOPo->op_last );
+                    o->op_flags &=~ OPf_KIDS;
+                    /* stub is a baseop; repeat is a binop */
+                    STATIC_ASSERT_STMT(sizeof(OP) <= sizeof(BINOP));
+                    OpTYPE_set(o, OP_STUB);
+                    o->op_private = 0;
+                    break;
+                }
+            }
+
+            /* If the pushmark is associated with an empty anonhash
+             * or anonlist, null out the pushmark and swap in a
+             * specialised op for the parent.
+             *     4        <@> anonhash sK* ->5
+             *     3           <0> pushmark s ->4
+             * becomes:
+             *     3        <@> emptyavhv sK* ->4
+             *     -           <0> pushmark s ->3
+             */
+            if (!OpHAS_SIBLING(o) && (o->op_next == o->op_sibparent) && (
+                (o->op_next->op_type == OP_ANONHASH) ||
+                (o->op_next->op_type == OP_ANONLIST) ) &&
+                (o->op_next->op_flags & OPf_SPECIAL) ) {
+
+                OP* anon = o->op_next;
+                /* These next two are _potentially_ a padsv and an sassign */
+                OP* padsv = anon->op_next;
+                OP* sassign = (padsv) ? padsv->op_next: NULL;
+
+                anon->op_private = (anon->op_type == OP_ANONLIST) ?
+                                                0 : OPpEMPTYAVHV_IS_HV;
+                OpTYPE_set(anon, OP_EMPTYAVHV);
+                op_null(o);
+                o = anon;
+                if (oldop) /* A previous optimization may have NULLED it */
+                    oldop->op_next = anon;
+
+                /* Further optimise scalar assignment of an empty anonhash
+                 * or anonlist by subsuming the padsv & sassign OPs. */
+                if ((padsv->op_type == OP_PADSV) &&
+                    !(padsv->op_private & OPpDEREF) &&
+                    sassign && (sassign->op_type == OP_SASSIGN) ){
+
+                    /* Take some public flags from the sassign */
+                    anon->op_flags = OPf_KIDS | OPf_SPECIAL |
+                        (anon->op_flags & OPf_PARENS) |
+                        (sassign->op_flags & (OPf_WANT|OPf_PARENS));
+
+                    /* Take some private flags from the padsv */
+                    anon->op_private |= OPpTARGET_MY |
+                        (padsv->op_private & (OPpLVAL_INTRO|OPpPAD_STATE));
+
+                    /* Take the targ slot from the padsv*/
+                    anon->op_targ = padsv->op_targ;
+                    padsv->op_targ = 0;
+
+                    /* Clean up */
+                    anon->op_next = sassign->op_next;
+                    op_null(padsv);
+                    op_null(sassign);
+                }
+                break;
+
+            }
+
+
+            /* Convert a series of PAD ops for my vars plus support into a
+             * single padrange op. Basically
+             *
+             *    pushmark -> pad[ahs]v -> pad[ahs]?v -> ... -> (list) -> rest
+             *
+             * becomes, depending on circumstances, one of
+             *
+             *    padrange  ----------------------------------> (list) -> rest
+             *    padrange  --------------------------------------------> rest
+             *
+             * where all the pad indexes are sequential and of the same type
+             * (INTRO or not).
+             * We convert the pushmark into a padrange op, then skip
+             * any other pad ops, and possibly some trailing ops.
+             * Note that we don't null() the skipped ops, to make it
+             * easier for Deparse to undo this optimisation (and none of
+             * the skipped ops are holding any resources). It also makes
+             * it easier for find_uninit_var(), as it can just ignore
+             * padrange, and examine the original pad ops.
+             */
+        {
+            OP *p;
+            OP *followop = NULL; /* the op that will follow the padrange op */
+            U8 count = 0;
+            U8 intro = 0;
+            PADOFFSET base = 0; /* init only to stop compiler whining */
+            bool gvoid = 0;     /* init only to stop compiler whining */
+            bool defav = 0;  /* seen (...) = @_ */
+            bool reuse = 0;  /* reuse an existing padrange op */
+
+            /* look for a pushmark -> gv[_] -> rv2av */
+
+            {
+                OP *rv2av, *q;
+                p = o->op_next;
+                if (   p->op_type == OP_GV
+                    && cGVOPx_gv(p) == PL_defgv
+                    && (rv2av = p->op_next)
+                    && rv2av->op_type == OP_RV2AV
+                    && !(rv2av->op_flags & OPf_REF)
+                    && !(rv2av->op_private & (OPpLVAL_INTRO|OPpMAYBE_LVSUB))
+                    && ((rv2av->op_flags & OPf_WANT) == OPf_WANT_LIST)
+                ) {
+                    q = rv2av->op_next;
+                    if (q->op_type == OP_NULL)
+                        q = q->op_next;
+                    if (q->op_type == OP_PUSHMARK) {
+                        defav = 1;
+                        p = q;
+                    }
+                }
+            }
+            if (!defav) {
+                p = o;
+            }
+
+            /* scan for PAD ops */
+
+            for (p = p->op_next; p; p = p->op_next) {
+                if (p->op_type == OP_NULL)
+                    continue;
+
+                if ((     p->op_type != OP_PADSV
+                       && p->op_type != OP_PADAV
+                       && p->op_type != OP_PADHV
+                    )
+                      /* any private flag other than INTRO? e.g. STATE */
+                   || (p->op_private & ~OPpLVAL_INTRO)
+                )
+                    break;
+
+                /* let $a[N] potentially be optimised into AELEMFAST_LEX
+                 * instead */
+                if (   p->op_type == OP_PADAV
+                    && p->op_next
+                    && p->op_next->op_type == OP_CONST
+                    && p->op_next->op_next
+                    && p->op_next->op_next->op_type == OP_AELEM
+                )
+                    break;
+
+                /* for 1st padop, note what type it is and the range
+                 * start; for the others, check that it's the same type
+                 * and that the targs are contiguous */
+                if (count == 0) {
+                    intro = (p->op_private & OPpLVAL_INTRO);
+                    base = p->op_targ;
+                    gvoid = OP_GIMME(p,0) == G_VOID;
+                }
+                else {
+                    if ((p->op_private & OPpLVAL_INTRO) != intro)
+                        break;
+                    /* Note that you'd normally  expect targs to be
+                     * contiguous in my($a,$b,$c), but that's not the case
+                     * when external modules start doing things, e.g.
+                     * Function::Parameters */
+                    if (p->op_targ != base + count)
+                        break;
+                    assert(p->op_targ == base + count);
+                    /* Either all the padops or none of the padops should
+                       be in void context.  Since we only do the optimisa-
+                       tion for av/hv when the aggregate itself is pushed
+                       on to the stack (one item), there is no need to dis-
+                       tinguish list from scalar context.  */
+                    if (gvoid != (OP_GIMME(p,0) == G_VOID))
+                        break;
+                }
+
+                /* for AV, HV, only when we're not flattening */
+                if (   p->op_type != OP_PADSV
+                    && !gvoid
+                    && !(p->op_flags & OPf_REF)
+                )
+                    break;
+
+                if (count >= OPpPADRANGE_COUNTMASK)
+                    break;
+
+                /* there's a biggest base we can fit into a
+                 * SAVEt_CLEARPADRANGE in pp_padrange.
+                 * (The sizeof() stuff will be constant-folded, and is
+                 * intended to avoid getting "comparison is always false"
+                 * compiler warnings. See the comments above
+                 * MEM_WRAP_CHECK for more explanation on why we do this
+                 * in a weird way to avoid compiler warnings.)
+                 */
+                if (   intro
+                    && (8*sizeof(base) >
+                        8*sizeof(UV)-OPpPADRANGE_COUNTSHIFT-SAVE_TIGHT_SHIFT
+                        ? (Size_t)base
+                        : (UV_MAX >> (OPpPADRANGE_COUNTSHIFT+SAVE_TIGHT_SHIFT))
+                        ) >
+                        (UV_MAX >> (OPpPADRANGE_COUNTSHIFT+SAVE_TIGHT_SHIFT))
+                )
+                    break;
+
+                /* Success! We've got another valid pad op to optimise away */
+                count++;
+                followop = p->op_next;
+            }
+
+            if (count < 1 || (count == 1 && !defav))
+                break;
+
+            /* pp_padrange in specifically compile-time void context
+             * skips pushing a mark and lexicals; in all other contexts
+             * (including unknown till runtime) it pushes a mark and the
+             * lexicals. We must be very careful then, that the ops we
+             * optimise away would have exactly the same effect as the
+             * padrange.
+             * In particular in void context, we can only optimise to
+             * a padrange if we see the complete sequence
+             *     pushmark, pad*v, ...., list
+             * which has the net effect of leaving the markstack as it
+             * was.  Not pushing onto the stack (whereas padsv does touch
+             * the stack) makes no difference in void context.
+             */
+            assert(followop);
+            if (gvoid) {
+                if (followop->op_type == OP_LIST
+                        && OP_GIMME(followop,0) == G_VOID
+                   )
+                {
+                    followop = followop->op_next; /* skip OP_LIST */
+
+                    /* consolidate two successive my(...);'s */
+
+                    if (   oldoldop
+                        && oldoldop->op_type == OP_PADRANGE
+                        && (oldoldop->op_flags & OPf_WANT) == OPf_WANT_VOID
+                        && (oldoldop->op_private & OPpLVAL_INTRO) == intro
+                        && !(oldoldop->op_flags & OPf_SPECIAL)
+                    ) {
+                        U8 old_count;
+                        assert(oldoldop->op_next == oldop);
+                        assert(   oldop->op_type == OP_NEXTSTATE
+                               || oldop->op_type == OP_DBSTATE);
+                        assert(oldop->op_next == o);
+
+                        old_count
+                            = (oldoldop->op_private & OPpPADRANGE_COUNTMASK);
+
+                       /* Do not assume pad offsets for $c and $d are con-
+                          tiguous in
+                            my ($a,$b,$c);
+                            my ($d,$e,$f);
+                        */
+                        if (  oldoldop->op_targ + old_count == base
+                           && old_count < OPpPADRANGE_COUNTMASK - count) {
+                            base = oldoldop->op_targ;
+                            count += old_count;
+                            reuse = 1;
+                        }
+                    }
+
+                    /* if there's any immediately following singleton
+                     * my var's; then swallow them and the associated
+                     * nextstates; i.e.
+                     *    my ($a,$b); my $c; my $d;
+                     * is treated as
+                     *    my ($a,$b,$c,$d);
+                     */
+
+                    while (    ((p = followop->op_next))
+                            && (  p->op_type == OP_PADSV
+                               || p->op_type == OP_PADAV
+                               || p->op_type == OP_PADHV)
+                            && (p->op_flags & OPf_WANT) == OPf_WANT_VOID
+                            && (p->op_private & OPpLVAL_INTRO) == intro
+                            && !(p->op_private & ~OPpLVAL_INTRO)
+                            && p->op_next
+                            && (   p->op_next->op_type == OP_NEXTSTATE
+                                || p->op_next->op_type == OP_DBSTATE)
+                            && count < OPpPADRANGE_COUNTMASK
+                            && base + count == p->op_targ
+                    ) {
+                        count++;
+                        followop = p->op_next;
+                    }
+                }
+                else
+                    break;
+            }
+
+            if (reuse) {
+                assert(oldoldop->op_type == OP_PADRANGE);
+                oldoldop->op_next = followop;
+                oldoldop->op_private = (intro | count);
+                o = oldoldop;
+                oldop = NULL;
+                oldoldop = NULL;
+            }
+            else {
+                /* Convert the pushmark into a padrange.
+                 * To make Deparse easier, we guarantee that a padrange was
+                 * *always* formerly a pushmark */
+                assert(o->op_type == OP_PUSHMARK);
+                o->op_next = followop;
+                OpTYPE_set(o, OP_PADRANGE);
+                o->op_targ = base;
+                /* bit 7: INTRO; bit 6..0: count */
+                o->op_private = (intro | count);
+                o->op_flags = ((o->op_flags & ~(OPf_WANT|OPf_SPECIAL))
+                              | gvoid * OPf_WANT_VOID
+                              | (defav ? OPf_SPECIAL : 0));
+            }
+            break;
+        }
+
+        case OP_RV2AV:
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
+            break;
+
+        case OP_RV2HV:
+        case OP_PADHV:
+            /*'keys %h' in void or scalar context: skip the OP_KEYS
+             * and perform the functionality directly in the RV2HV/PADHV
+             * op
+             */
+            if (o->op_flags & OPf_REF) {
+                OP *k = o->op_next;
+                U8 want = (k->op_flags & OPf_WANT);
+                if (   k
+                    && k->op_type == OP_KEYS
+                    && (   want == OPf_WANT_VOID
+                        || want == OPf_WANT_SCALAR)
+                    && !(k->op_private & OPpMAYBE_LVSUB)
+                    && !(k->op_flags & OPf_MOD)
+                ) {
+                    o->op_next     = k->op_next;
+                    o->op_flags   &= ~(OPf_REF|OPf_WANT);
+                    o->op_flags   |= want;
+                    o->op_private |= (o->op_type == OP_PADHV ?
+                                      OPpPADHV_ISKEYS : OPpRV2HV_ISKEYS);
+                    /* for keys(%lex), hold onto the OP_KEYS's targ
+                     * since padhv doesn't have its own targ to return
+                     * an int with */
+                    if (!(o->op_type ==OP_PADHV && want == OPf_WANT_SCALAR))
+                        op_null(k);
+                }
+            }
+
+            /* see if %h is used in boolean context */
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, OPpMAYBE_TRUEBOOL);
+
+
+            if (o->op_type != OP_PADHV)
+                break;
+            /* FALLTHROUGH */
+        case OP_PADAV:
+            if (   o->op_type == OP_PADAV
+                && (o->op_flags & OPf_WANT) == OPf_WANT_SCALAR
+            )
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
+            /* FALLTHROUGH */
+        case OP_PADSV:
+            /* Skip over state($x) in void context.  */
+            if (oldop && o->op_private == (OPpPAD_STATE|OPpLVAL_INTRO)
+             && (o->op_flags & OPf_WANT) == OPf_WANT_VOID)
+            {
+                oldop->op_next = o->op_next;
+                goto redo_nextstate;
+            }
+            if (o->op_type != OP_PADAV)
+                break;
+            /* FALLTHROUGH */
+        case OP_GV:
+            if (o->op_type == OP_PADAV || o->op_next->op_type == OP_RV2AV) {
+                OP* const pop = (o->op_type == OP_PADAV) ?
+                            o->op_next : o->op_next->op_next;
+                IV i;
+                if (pop && pop->op_type == OP_CONST &&
+                    ((PL_op = pop->op_next)) &&
+                    pop->op_next->op_type == OP_AELEM &&
+                    !(pop->op_next->op_private &
+                      (OPpLVAL_INTRO|OPpLVAL_DEFER|OPpDEREF|OPpMAYBE_LVSUB)) &&
+                    (i = SvIV(cSVOPx(pop)->op_sv)) >= -128 && i <= 127)
+                {
+                    GV *gv;
+                    if (cSVOPx(pop)->op_private & OPpCONST_STRICT)
+                        no_bareword_allowed(pop);
+                    if (o->op_type == OP_GV)
+                        op_null(o->op_next);
+                    op_null(pop->op_next);
+                    op_null(pop);
+                    o->op_flags |= pop->op_next->op_flags & OPf_MOD;
+                    o->op_next = pop->op_next->op_next;
+                    o->op_ppaddr = PL_ppaddr[OP_AELEMFAST];
+                    o->op_private = (U8)i;
+                    if (o->op_type == OP_GV) {
+                        gv = cGVOPo_gv;
+                        GvAVn(gv);
+                        o->op_type = OP_AELEMFAST;
+                    }
+                    else
+                        o->op_type = OP_AELEMFAST_LEX;
+                }
+                if (o->op_type != OP_GV)
+                    break;
+            }
+
+            /* Remove $foo from the op_next chain in void context.  */
+            if (oldop
+             && (  o->op_next->op_type == OP_RV2SV
+                || o->op_next->op_type == OP_RV2AV
+                || o->op_next->op_type == OP_RV2HV  )
+             && (o->op_next->op_flags & OPf_WANT) == OPf_WANT_VOID
+             && !(o->op_next->op_private & OPpLVAL_INTRO))
+            {
+                oldop->op_next = o->op_next->op_next;
+                /* Reprocess the previous op if it is a nextstate, to
+                   allow double-nextstate optimisation.  */
+              redo_nextstate:
+                if (oldop->op_type == OP_NEXTSTATE) {
+                    oldop->op_opt = 0;
+                    o = oldop;
+                    oldop = oldoldop;
+                    oldoldop = NULL;
+                    goto redo;
+                }
+                o = oldop->op_next;
+                goto redo;
+            }
+            else if (o->op_next->op_type == OP_RV2SV) {
+                if (!(o->op_next->op_private & OPpDEREF)) {
+                    op_null(o->op_next);
+                    o->op_private |= o->op_next->op_private & (OPpLVAL_INTRO
+                                                               | OPpOUR_INTRO);
+                    o->op_next = o->op_next->op_next;
+                    OpTYPE_set(o, OP_GVSV);
+                }
+            }
+            else if (o->op_next->op_type == OP_READLINE
+                    && o->op_next->op_next->op_type == OP_CONCAT
+                    && (o->op_next->op_next->op_flags & OPf_STACKED))
+            {
+                /* Turn "$a .= <FH>" into an OP_RCATLINE. AMS 20010917 */
+                OpTYPE_set(o, OP_RCATLINE);
+                o->op_flags |= OPf_STACKED;
+                op_null(o->op_next->op_next);
+                op_null(o->op_next);
+            }
+
+            break;
+
+        case OP_NOT:
+            break;
+
+        case OP_AND:
+        case OP_OR:
+        case OP_DOR:
+        case OP_CMPCHAIN_AND:
+        case OP_PUSHDEFER:
+            while (cLOGOP->op_other->op_type == OP_NULL)
+                cLOGOP->op_other = cLOGOP->op_other->op_next;
+            while (o->op_next && (   o->op_type == o->op_next->op_type
+                                  || o->op_next->op_type == OP_NULL))
+                o->op_next = o->op_next->op_next;
+
+            /* If we're an OR and our next is an AND in void context, we'll
+               follow its op_other on short circuit, same for reverse.
+               We can't do this with OP_DOR since if it's true, its return
+               value is the underlying value which must be evaluated
+               by the next op. */
+            if (o->op_next &&
+                (
+                    (IS_AND_OP(o) && IS_OR_OP(o->op_next))
+                 || (IS_OR_OP(o) && IS_AND_OP(o->op_next))
+                )
+                && (o->op_next->op_flags & OPf_WANT) == OPf_WANT_VOID
+            ) {
+                o->op_next = cLOGOPx(o->op_next)->op_other;
+            }
+            DEFER(cLOGOP->op_other);
+            o->op_opt = 1;
+            break;
+
+        case OP_GREPWHILE:
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
+            /* FALLTHROUGH */
+        case OP_COND_EXPR:
+        case OP_MAPWHILE:
+        case OP_ANDASSIGN:
+        case OP_ORASSIGN:
+        case OP_DORASSIGN:
+        case OP_RANGE:
+        case OP_ONCE:
+        case OP_ARGDEFELEM:
+            while (cLOGOP->op_other->op_type == OP_NULL)
+                cLOGOP->op_other = cLOGOP->op_other->op_next;
+            DEFER(cLOGOP->op_other);
+            break;
+
+        case OP_ENTERLOOP:
+        case OP_ENTERITER:
+            while (cLOOP->op_redoop->op_type == OP_NULL)
+                cLOOP->op_redoop = cLOOP->op_redoop->op_next;
+            while (cLOOP->op_nextop->op_type == OP_NULL)
+                cLOOP->op_nextop = cLOOP->op_nextop->op_next;
+            while (cLOOP->op_lastop->op_type == OP_NULL)
+                cLOOP->op_lastop = cLOOP->op_lastop->op_next;
+            /* a while(1) loop doesn't have an op_next that escapes the
+             * loop, so we have to explicitly follow the op_lastop to
+             * process the rest of the code */
+            DEFER(cLOOP->op_lastop);
+            break;
+
+        case OP_ENTERTRY:
+            assert(cLOGOPo->op_other->op_type == OP_LEAVETRY);
+            DEFER(cLOGOPo->op_other);
+            break;
+
+        case OP_ENTERTRYCATCH:
+            assert(cLOGOPo->op_other->op_type == OP_CATCH);
+            /* catch body is the ->op_other of the OP_CATCH */
+            DEFER(cLOGOPx(cLOGOPo->op_other)->op_other);
+            break;
+
+        case OP_SUBST:
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
+            assert(!(cPMOP->op_pmflags & PMf_ONCE));
+            while (cPMOP->op_pmstashstartu.op_pmreplstart &&
+                   cPMOP->op_pmstashstartu.op_pmreplstart->op_type == OP_NULL)
+                cPMOP->op_pmstashstartu.op_pmreplstart
+                    = cPMOP->op_pmstashstartu.op_pmreplstart->op_next;
+            DEFER(cPMOP->op_pmstashstartu.op_pmreplstart);
+            break;
+
+        case OP_SORT: {
+            OP *oright;
+
+            if (o->op_flags & OPf_SPECIAL) {
+                /* first arg is a code block */
+                OP * const nullop = OpSIBLING(cLISTOP->op_first);
+                OP * kid          = cUNOPx(nullop)->op_first;
+
+                assert(nullop->op_type == OP_NULL);
+                assert(kid->op_type == OP_SCOPE
+                 || (kid->op_type == OP_NULL && kid->op_targ == OP_LEAVE));
+                /* since OP_SORT doesn't have a handy op_other-style
+                 * field that can point directly to the start of the code
+                 * block, store it in the otherwise-unused op_next field
+                 * of the top-level OP_NULL. This will be quicker at
+                 * run-time, and it will also allow us to remove leading
+                 * OP_NULLs by just messing with op_nexts without
+                 * altering the basic op_first/op_sibling layout. */
+                kid = kLISTOP->op_first;
+                assert(
+                      (kid->op_type == OP_NULL
+                      && (  kid->op_targ == OP_NEXTSTATE
+                         || kid->op_targ == OP_DBSTATE  ))
+                    || kid->op_type == OP_STUB
+                    || kid->op_type == OP_ENTER
+                    || (PL_parser && PL_parser->error_count));
+                nullop->op_next = kid->op_next;
+                DEFER(nullop->op_next);
+            }
+
+            /* check that RHS of sort is a single plain array */
+            oright = cUNOPo->op_first;
+            if (!oright || oright->op_type != OP_PUSHMARK)
+                break;
+
+            if (o->op_private & OPpSORT_INPLACE)
+                break;
+
+            /* reverse sort ... can be optimised.  */
+            if (!OpHAS_SIBLING(cUNOPo)) {
+                /* Nothing follows us on the list. */
+                OP * const reverse = o->op_next;
+
+                if (reverse->op_type == OP_REVERSE &&
+                    (reverse->op_flags & OPf_WANT) == OPf_WANT_LIST) {
+                    OP * const pushmark = cUNOPx(reverse)->op_first;
+                    if (pushmark && (pushmark->op_type == OP_PUSHMARK)
+                        && (OpSIBLING(cUNOPx(pushmark)) == o)) {
+                        /* reverse -> pushmark -> sort */
+                        o->op_private |= OPpSORT_REVERSE;
+                        op_null(reverse);
+                        pushmark->op_next = oright->op_next;
+                        op_null(oright);
+                    }
+                }
+            }
+
+            break;
+        }
+
+        case OP_REVERSE: {
+            OP *ourmark, *theirmark, *ourlast, *iter, *expushmark, *rv2av;
+            OP *gvop = NULL;
+            LISTOP *enter, *exlist;
+
+            if (o->op_private & OPpSORT_INPLACE)
+                break;
+
+            enter = cLISTOPx(o->op_next);
+            if (!enter)
+                break;
+            if (enter->op_type == OP_NULL) {
+                enter = cLISTOPx(enter->op_next);
+                if (!enter)
+                    break;
+            }
+            /* for $a (...) will have OP_GV then OP_RV2GV here.
+               for (...) just has an OP_GV.  */
+            if (enter->op_type == OP_GV) {
+                gvop = (OP *) enter;
+                enter = cLISTOPx(enter->op_next);
+                if (!enter)
+                    break;
+                if (enter->op_type == OP_RV2GV) {
+                  enter = cLISTOPx(enter->op_next);
+                  if (!enter)
+                    break;
+                }
+            }
+
+            if (enter->op_type != OP_ENTERITER)
+                break;
+
+            iter = enter->op_next;
+            if (!iter || iter->op_type != OP_ITER)
+                break;
+
+            expushmark = enter->op_first;
+            if (!expushmark || expushmark->op_type != OP_NULL
+                || expushmark->op_targ != OP_PUSHMARK)
+                break;
+
+            exlist = cLISTOPx(OpSIBLING(expushmark));
+            if (!exlist || exlist->op_type != OP_NULL
+                || exlist->op_targ != OP_LIST)
+                break;
+
+            if (exlist->op_last != o) {
+                /* Mmm. Was expecting to point back to this op.  */
+                break;
+            }
+            theirmark = exlist->op_first;
+            if (!theirmark || theirmark->op_type != OP_PUSHMARK)
+                break;
+
+            if (OpSIBLING(theirmark) != o) {
+                /* There's something between the mark and the reverse, eg
+                   for (1, reverse (...))
+                   so no go.  */
+                break;
+            }
+
+            ourmark = cLISTOPo->op_first;
+            if (!ourmark || ourmark->op_type != OP_PUSHMARK)
+                break;
+
+            ourlast = cLISTOPo->op_last;
+            if (!ourlast || ourlast->op_next != o)
+                break;
+
+            rv2av = OpSIBLING(ourmark);
+            if (rv2av && rv2av->op_type == OP_RV2AV && !OpHAS_SIBLING(rv2av)
+                && rv2av->op_flags == (OPf_WANT_LIST | OPf_KIDS)) {
+                /* We're just reversing a single array.  */
+                rv2av->op_flags = OPf_WANT_SCALAR | OPf_KIDS | OPf_REF;
+                enter->op_flags |= OPf_STACKED;
+            }
+
+            /* We don't have control over who points to theirmark, so sacrifice
+               ours.  */
+            theirmark->op_next = ourmark->op_next;
+            theirmark->op_flags = ourmark->op_flags;
+            ourlast->op_next = gvop ? gvop : (OP *) enter;
+            op_null(ourmark);
+            op_null(o);
+            enter->op_private |= OPpITER_REVERSED;
+            iter->op_private |= OPpITER_REVERSED;
+
+            oldoldop = NULL;
+            oldop    = ourlast;
+            o        = oldop->op_next;
+            goto redo;
+            NOT_REACHED; /* NOTREACHED */
+            break;
+        }
+
+        case OP_UNDEF:
+            if ((o->op_flags & OPf_KIDS) &&
+                (cUNOPx(o)->op_first->op_type == OP_PADSV)) {
+
+                /* Convert:
+                 *     undef
+                 *       padsv[$x]
+                 * to:
+                 *     undef[$x]
+                 */
+
+                OP * padsv = cUNOPx(o)->op_first;
+                o->op_private = OPpTARGET_MY |
+                        (padsv->op_private & (OPpLVAL_INTRO|OPpPAD_STATE));
+                o->op_targ = padsv->op_targ; padsv->op_targ = 0;
+                op_null(padsv);
+                /* Optimizer does NOT seem to fix up the padsv op_next ptr */
+                if (oldoldop)
+                    oldoldop->op_next = o;
+                oldop = oldoldop;
+                oldoldop = NULL;
+
+            } else if (o->op_next->op_type == OP_PADSV) {
+                OP * padsv = o->op_next;
+                OP * sassign = (padsv->op_next &&
+                        padsv->op_next->op_type == OP_SASSIGN) ?
+                        padsv->op_next : NULL;
+                if (sassign && cBINOPx(sassign)->op_first == o) {
+                    /* Convert:
+                     *     sassign
+                     *       undef
+                     *       padsv[$x]
+                     * to:
+                     *     undef[$x]
+                     * NOTE: undef does not have the "T" flag set in
+                     *       regen/opcodes, as this would cause
+                     *       S_maybe_targlex to do the optimization.
+                     *       Seems easier to keep it all here, rather
+                     *       than have an undef-specific branch in
+                     *       S_maybe_targlex just to add the
+                     *       OPpUNDEF_KEEP_PV flag.
+                     */
+                     o->op_private = OPpTARGET_MY | OPpUNDEF_KEEP_PV |
+                         (padsv->op_private & (OPpLVAL_INTRO|OPpPAD_STATE));
+                     o->op_targ = padsv->op_targ; padsv->op_targ = 0;
+                     op_null(padsv);
+                     op_null(sassign);
+                     /* Optimizer DOES seems to fix up the op_next ptrs */
+                }
+            }
+            break;
+
+        case OP_QR:
+        case OP_MATCH:
+            if (!(cPMOP->op_pmflags & PMf_ONCE)) {
+                assert (!cPMOP->op_pmstashstartu.op_pmreplstart);
+            }
+            break;
+
+        case OP_RUNCV:
+            if (!(o->op_private & OPpOFFBYONE) && !CvCLONE(PL_compcv)
+             && (!CvANON(PL_compcv) || (!PL_cv_has_eval && !PL_perldb)))
+            {
+                SV *sv;
+                if (CvEVAL(PL_compcv)) sv = &PL_sv_undef;
+                else {
+                    sv = newRV((SV *)PL_compcv);
+                    sv_rvweaken(sv);
+                    SvREADONLY_on(sv);
+                }
+                OpTYPE_set(o, OP_CONST);
+                o->op_flags |= OPf_SPECIAL;
+                cSVOPo->op_sv = sv;
+            }
+            break;
+
+        case OP_SASSIGN: {
+            if (OP_GIMME(o,0) == G_VOID
+             || (  o->op_next->op_type == OP_LINESEQ
+                && (  o->op_next->op_next->op_type == OP_LEAVESUB
+                   || (  o->op_next->op_next->op_type == OP_RETURN
+                      && !CvLVALUE(PL_compcv)))))
+            {
+                OP *right = cBINOP->op_first;
+                if (right) {
+                    /*   sassign
+                    *      RIGHT
+                    *      substr
+                    *         pushmark
+                    *         arg1
+                    *         arg2
+                    *         ...
+                    * becomes
+                    *
+                    *  ex-sassign
+                    *     substr
+                    *        pushmark
+                    *        RIGHT
+                    *        arg1
+                    *        arg2
+                    *        ...
+                    */
+                    OP *left = OpSIBLING(right);
+                    if (left->op_type == OP_SUBSTR
+                         && (left->op_private & 7) < 4) {
+                        op_null(o);
+                        /* cut out right */
+                        op_sibling_splice(o, NULL, 1, NULL);
+                        /* and insert it as second child of OP_SUBSTR */
+                        op_sibling_splice(left, cBINOPx(left)->op_first, 0,
+                                    right);
+                        left->op_private |= OPpSUBSTR_REPL_FIRST;
+                        left->op_flags =
+                            (o->op_flags & ~OPf_WANT) | OPf_WANT_VOID;
+                    }
+                }
+            }
+            OP* rhs = cBINOPx(o)->op_first;
+            OP* lval = cBINOPx(o)->op_last;
+
+            /* Combine a simple SASSIGN OP with a PADSV lvalue child OP
+             * into a single OP. */
+
+            /* This optimization covers arbitrarily complicated RHS OP
+             * trees. Separate optimizations may exist for specific,
+             * single RHS OPs, such as:
+             * "my $foo = undef;" or "my $bar = $other_padsv;" */
+
+            if (!(o->op_private & (OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV))
+                 && lval && (lval->op_type == OP_PADSV) &&
+                !(lval->op_private & OPpDEREF)
+                 /* skip if padrange has already gazumped the padsv */
+                 && (lval == oldop)
+                 /* Memoize::Once produces a non-standard SASSIGN that
+                  * doesn't actually point to pp_sassign, has only one
+                  * child (PADSV), and gets to it via op_other rather
+                  * than op_next. Don't try to optimize this. */
+                 && (lval != rhs)
+               ) {
+                /* SASSIGN's bitfield flags, such as op_moresib and
+                 * op_slabbed, will be carried over unchanged. */
+                OpTYPE_set(o, OP_PADSV_STORE);
+
+                /* Explicitly craft the new OP's op_flags, carrying
+                 * some bits over from the SASSIGN */
+                o->op_flags = (
+                    OPf_KIDS | OPf_STACKED |
+                    (o->op_flags & (OPf_WANT|OPf_PARENS))
+                );
+
+                /* Reset op_private flags, taking relevant private flags
+                 * from the PADSV */
+                o->op_private = (lval->op_private &
+                                (OPpLVAL_INTRO|OPpPAD_STATE|OPpDEREF));
+
+                /* Steal the targ from the PADSV */
+                o->op_targ = lval->op_targ; lval->op_targ = 0;
+
+                /* Fixup op_next ptrs */
+                assert(oldop->op_type == OP_PADSV);
+                /* oldoldop can be arbitrarily deep in the RHS OP tree */
+                oldoldop->op_next = o;
+
+                /* Even when (rhs != oldoldop), rhs might still have a
+                 * relevant op_next ptr to lval. This is definitely true
+                 * when rhs is OP_NULL with a LOGOP kid (e.g. orassign).
+                 * There may be other cases. */
+                if (rhs->op_next == lval)
+                    rhs->op_next = o;
+
+                /* Now null-out the PADSV */
+                op_null(lval);
+
+                /* NULL the previous op ptrs, so rpeep can continue */
+                oldoldop = NULL; oldop = NULL;
+            }
+
+            /* Combine a simple SASSIGN OP with an AELEMFAST_LEX lvalue
+             * into a single OP. This optimization covers arbitrarily
+             * complicated RHS OP trees. */
+
+            if (!(o->op_private & (OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV))
+                && (lval->op_type == OP_NULL) && (lval->op_private == 2) &&
+                (cBINOPx(lval)->op_first->op_type == OP_AELEMFAST_LEX)
+            ) {
+                OP * lex = cBINOPx(lval)->op_first;
+                /* SASSIGN's bitfield flags, such as op_moresib and
+                 * op_slabbed, will be carried over unchanged. */
+                OpTYPE_set(o, OP_AELEMFASTLEX_STORE);
+
+                /* Explicitly craft the new OP's op_flags, carrying
+                 * some bits over from the SASSIGN */
+                o->op_flags = (
+                    OPf_KIDS | OPf_STACKED |
+                    (o->op_flags & (OPf_WANT|OPf_PARENS))
+                );
+
+                /* Copy the AELEMFAST_LEX op->private, which contains
+                 * the key index. */
+                o->op_private = lex->op_private;
+
+                /* Take the targ from the AELEMFAST_LEX */
+                o->op_targ = lex->op_targ; lex->op_targ = 0;
+
+                assert(oldop->op_type == OP_AELEMFAST_LEX);
+                /* oldoldop can be arbitrarily deep in the RHS OP tree */
+                oldoldop->op_next = o;
+
+                /* Even when (rhs != oldoldop), rhs might still have a
+                 * relevant op_next ptr to lex. (Updating it here can
+                 * also cause other ops in the RHS to get the desired
+                 * op_next pointer, presumably thanks to the finalizer.)
+                 * This is definitely truewhen rhs is OP_NULL with a
+                 * LOGOP kid (e.g. orassign). There may be other cases. */
+                if (rhs->op_next == lex)
+                    rhs->op_next = o;
+
+                /* Now null-out the AELEMFAST_LEX */
+                op_null(lex);
+
+                /* NULL the previous op ptrs, so rpeep can continue */
+                oldop = oldoldop; oldoldop = NULL;
+            }
+
+            break;
+        }
+
+        case OP_AASSIGN: {
+            int l, r, lr, lscalars, rscalars;
+
+            /* handle common vars detection, e.g. ($a,$b) = ($b,$a).
+               Note that we do this now rather than in newASSIGNOP(),
+               since only by now are aliased lexicals flagged as such
+
+               See the essay "Common vars in list assignment" above for
+               the full details of the rationale behind all the conditions
+               below.
+
+               PL_generation sorcery:
+               To detect whether there are common vars, the global var
+               PL_generation is incremented for each assign op we scan.
+               Then we run through all the lexical variables on the LHS,
+               of the assignment, setting a spare slot in each of them to
+               PL_generation.  Then we scan the RHS, and if any lexicals
+               already have that value, we know we've got commonality.
+               Also, if the generation number is already set to
+               PERL_INT_MAX, then the variable is involved in aliasing, so
+               we also have potential commonality in that case.
+             */
+
+            PL_generation++;
+            /* scan LHS */
+            lscalars = 0;
+            l = S_aassign_scan(aTHX_ cLISTOPo->op_last,  FALSE, &lscalars);
+            /* scan RHS */
+            rscalars = 0;
+            r = S_aassign_scan(aTHX_ cLISTOPo->op_first, TRUE, &rscalars);
+            lr = (l|r);
+
+
+            /* After looking for things which are *always* safe, this main
+             * if/else chain selects primarily based on the type of the
+             * LHS, gradually working its way down from the more dangerous
+             * to the more restrictive and thus safer cases */
+
+            if (   !l                      /* () = ....; */
+                || !r                      /* .... = (); */
+                || !(l & ~AAS_SAFE_SCALAR) /* (undef, pos()) = ...; */
+                || !(r & ~AAS_SAFE_SCALAR) /* ... = (1,2,length,undef); */
+                || (lscalars < 2)          /* (undef, $x) = ... */
+            ) {
+                NOOP; /* always safe */
+            }
+            else if (l & AAS_DANGEROUS) {
+                /* always dangerous */
+                o->op_private |= OPpASSIGN_COMMON_SCALAR;
+                o->op_private |= OPpASSIGN_COMMON_AGG;
+            }
+            else if (l & (AAS_PKG_SCALAR|AAS_PKG_AGG)) {
+                /* package vars are always dangerous - too many
+                 * aliasing possibilities */
+                if (l & AAS_PKG_SCALAR)
+                    o->op_private |= OPpASSIGN_COMMON_SCALAR;
+                if (l & AAS_PKG_AGG)
+                    o->op_private |= OPpASSIGN_COMMON_AGG;
+            }
+            else if (l & ( AAS_MY_SCALAR|AAS_MY_AGG
+                          |AAS_LEX_SCALAR|AAS_LEX_AGG))
+            {
+                /* LHS contains only lexicals and safe ops */
+
+                if (l & (AAS_MY_AGG|AAS_LEX_AGG))
+                    o->op_private |= OPpASSIGN_COMMON_AGG;
+
+                if (l & (AAS_MY_SCALAR|AAS_LEX_SCALAR)) {
+                    if (lr & AAS_LEX_SCALAR_COMM)
+                        o->op_private |= OPpASSIGN_COMMON_SCALAR;
+                    else if (   !(l & AAS_LEX_SCALAR)
+                             && (r & AAS_DEFAV))
+                    {
+                        /* falsely mark
+                         *    my (...) = @_
+                         * as scalar-safe for performance reasons.
+                         * (it will still have been marked _AGG if necessary */
+                        NOOP;
+                    }
+                    else if (r  & (AAS_PKG_SCALAR|AAS_PKG_AGG|AAS_DANGEROUS))
+                        /* if there are only lexicals on the LHS and no
+                         * common ones on the RHS, then we assume that the
+                         * only way those lexicals could also get
+                         * on the RHS is via some sort of dereffing or
+                         * closure, e.g.
+                         *    $r = \$lex;
+                         *    ($lex, $x) = (1, $$r)
+                         * and in this case we assume the var must have
+                         *  a bumped ref count. So if its ref count is 1,
+                         *  it must only be on the LHS.
+                         */
+                        o->op_private |= OPpASSIGN_COMMON_RC1;
+                }
+            }
+
+            /* ... = ($x)
+             * may have to handle aggregate on LHS, but we can't
+             * have common scalars. */
+            if (rscalars < 2)
+                o->op_private &=
+                        ~(OPpASSIGN_COMMON_SCALAR|OPpASSIGN_COMMON_RC1);
+
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpASSIGN_TRUEBOOL, 0);
+            break;
+        }
+
+        case OP_REF:
+        case OP_BLESSED:
+            /* if the op is used in boolean context, set the TRUEBOOL flag
+             * which enables an optimisation at runtime which avoids creating
+             * a stack temporary for known-true package names */
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, OPpMAYBE_TRUEBOOL);
+            break;
+
+        case OP_LENGTH:
+            /* see if the op is used in known boolean context,
+             * but not if OA_TARGLEX optimisation is enabled */
+            if (   (o->op_flags & OPf_WANT) == OPf_WANT_SCALAR
+                && !(o->op_private & OPpTARGET_MY)
+            )
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
+            break;
+
+        case OP_POS:
+            /* see if the op is used in known boolean context */
+            if ((o->op_flags & OPf_WANT) == OPf_WANT_SCALAR)
+                S_check_for_bool_cxt(o, 1, OPpTRUEBOOL, 0);
+            break;
+
+        case OP_CUSTOM: {
+            Perl_cpeep_t cpeep =
+                XopENTRYCUSTOM(o, xop_peep);
+            if (cpeep)
+                cpeep(aTHX_ o, oldop);
+            break;
+        }
+
+        }
+        /* did we just null the current op? If so, re-process it to handle
+         * eliding "empty" ops from the chain */
+        if (o->op_type == OP_NULL && oldop && oldop->op_next == o) {
+            o->op_opt = 0;
+            o = oldop;
+        }
+        else {
+            oldoldop = oldop;
+            oldop = o;
+        }
+    }
+    LEAVE;
+}
+
+void
+Perl_peep(pTHX_ OP *o)
+{
+    CALL_RPEEP(o);
+}
+
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
Index: gnu/usr.bin/perl/perl.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perl.c,v
diff -u -p -a -u -p -r1.45 perl.c
--- gnu/usr.bin/perl/perl.c	8 Jul 2023 14:18:35 -0000	1.45
+++ gnu/usr.bin/perl/perl.c	21 Feb 2024 15:47:02 -0000
@@ -67,12 +67,6 @@ static I32 read_e_script(pTHX_ int idx, 
 #  define validate_suid(rsfp) S_validate_suid(aTHX_ rsfp)
 #endif
 
-#define CALL_BODY_SUB(myop) \
-    if (PL_op == (myop)) \
-        PL_op = PL_ppaddr[OP_ENTERSUB](aTHX); \
-    if (PL_op) \
-        CALLRUNOPS(aTHX);
-
 #define CALL_LIST_BODY(cv) \
     PUSHMARK(PL_stack_sp); \
     call_sv(MUTABLE_SV((cv)), G_EVAL|G_DISCARD|G_VOID);
@@ -108,6 +102,34 @@ S_init_tls_and_interp(PerlInterpreter *m
 }
 
 
+#ifndef PLATFORM_SYS_INIT_
+#  define PLATFORM_SYS_INIT_  NOOP
+#endif
+
+#ifndef PLATFORM_SYS_TERM_
+#  define PLATFORM_SYS_TERM_  NOOP
+#endif
+
+#ifndef PERL_SYS_INIT_BODY
+#  define PERL_SYS_INIT_BODY(c,v)                               \
+        MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT;  \
+        MALLOC_INIT; PLATFORM_SYS_INIT_;
+#endif
+
+/* Generally add things last-in first-terminated.  IO and memory terminations
+ * need to be generally last
+ *
+ * BEWARE that using PerlIO in these will be using freed memory, so may appear
+ * to work, but must NOT be retained in production code. */
+#ifndef PERL_SYS_TERM_BODY
+#  define PERL_SYS_TERM_BODY()                                          \
+                    ENV_TERM; USER_PROP_MUTEX_TERM; LOCALE_TERM;        \
+                    HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM;       \
+                    OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM;                \
+                    PERLIO_TERM; MALLOC_TERM;                           \
+                    PLATFORM_SYS_TERM_;
+#endif
+
 /* these implement the PERL_SYS_INIT, PERL_SYS_INIT3, PERL_SYS_TERM macros */
 
 void
@@ -238,20 +260,43 @@ perl_construct(pTHXx)
 
     init_stacks();
 
-/* The PERL_INTERNAL_RAND_SEED set-up must be after init_stacks because it calls
+#if !defined(NO_PERL_RAND_SEED) || !defined(NO_PERL_INTERNAL_HASH_SEED)
+    bool sensitive_env_vars_allowed =
+            (PerlProc_getuid() == PerlProc_geteuid() &&
+             PerlProc_getgid() == PerlProc_getegid()) ? TRUE : FALSE;
+#endif
+
+/* The seed set-up must be after init_stacks because it calls
  * things that may put SVs on the stack.
  */
+#ifndef NO_PERL_RAND_SEED
+    if (sensitive_env_vars_allowed) {
+        UV seed= 0;
+        const char *env_pv;
+        if ((env_pv = PerlEnv_getenv("PERL_RAND_SEED")) &&
+            grok_number(env_pv, strlen(env_pv), &seed) == IS_NUMBER_IN_UV)
+        {
 
+            PL_srand_override_next = seed;
+            PERL_SRAND_OVERRIDE_NEXT_INIT();
+        }
+    }
+#endif
+
+    /* This is NOT the state used for C<rand()>, this is only
+     * used in internal functionality */
 #ifdef NO_PERL_INTERNAL_RAND_SEED
     Perl_drand48_init_r(&PL_internal_random_state, seed());
 #else
     {
         UV seed;
         const char *env_pv;
-        if (PerlProc_getuid() != PerlProc_geteuid() ||
-            PerlProc_getgid() != PerlProc_getegid() ||
+        if (
+            !sensitive_env_vars_allowed ||
             !(env_pv = PerlEnv_getenv("PERL_INTERNAL_RAND_SEED")) ||
-            grok_number(env_pv, strlen(env_pv), &seed) != IS_NUMBER_IN_UV) {
+            grok_number(env_pv, strlen(env_pv), &seed) != IS_NUMBER_IN_UV)
+        {
+            /* use a randomly generated seed */
             seed = seed();
         }
         Perl_drand48_init_r(&PL_internal_random_state, (U32)seed);
@@ -337,7 +382,7 @@ perl_construct(pTHXx)
             PERL_HASH_WITH_STATE(PL_hash_state,PL_hash_chars[256],str,0);
         }
 #endif
-        /* at this point we have initialezed the hash function, and we can start
+        /* at this point we have initialized the hash function, and we can start
          * constructing hashes */
         PL_hash_seed_set= TRUE;
     }
@@ -356,11 +401,17 @@ perl_construct(pTHXx)
         hv_ksplit(PL_strtab, 1 << 11);
     }
 
+#ifdef USE_ITHREADS
+    PL_compiling.cop_file = NULL;
+    PL_compiling.cop_warnings = NULL;
+#endif
+
     Zero(PL_sv_consts, SV_CONSTS_COUNT, SV*);
 
 #ifndef PERL_MICRO
 #   ifdef  USE_ENVIRON_ARRAY
-    PL_origenviron = environ;
+    if (!PL_origenviron)
+        PL_origenviron = environ;
 #   endif
 #endif
 
@@ -410,10 +461,6 @@ perl_construct(pTHXx)
     /* Start with 1 bucket, for DFS.  It's unlikely we'll need more.  */
     HvMAX(PL_registered_mros) = 0;
 
-#ifdef USE_POSIX_2008_LOCALE
-    PL_C_locale_obj = newlocale(LC_ALL_MASK, "C", NULL);
-#endif
-
     ENTER;
     init_i18nl10n(1);
 }
@@ -583,9 +630,6 @@ perl_destruct(pTHXx)
 
     assert(PL_scopestack_ix == 1);
 
-    /* wait for all pseudo-forked children to finish */
-    PERL_WAIT_FOR_CHILDREN;
-
     destruct_level = PL_perl_destruct_level;
     {
         const char * const s = PerlEnv_getenv("PERL_DESTRUCT_LEVEL");
@@ -624,6 +668,10 @@ perl_destruct(pTHXx)
     FREETMPS;
     assert(PL_scopestack_ix == 0);
 
+    /* wait for all pseudo-forked children to finish */
+    PERL_WAIT_FOR_CHILDREN;
+
+
     /* normally when we get here, PL_parser should be null due to having
      * its original (null) value restored by SAVEt_PARSER during leaving
      * scope (usually before run-time starts in fact).
@@ -884,6 +932,10 @@ perl_destruct(pTHXx)
     PL_warnhook = NULL;
     SvREFCNT_dec(PL_diehook);
     PL_diehook = NULL;
+    SvREFCNT_dec(PL_hook__require__before);
+    PL_hook__require__before = NULL;
+    SvREFCNT_dec(PL_hook__require__after);
+    PL_hook__require__after = NULL;
 
     /* call exit list functions */
     while (PL_exitlistlen-- > 0)
@@ -896,32 +948,6 @@ perl_destruct(pTHXx)
 
     SvREFCNT_dec(PL_registered_mros);
 
-    /* jettison our possibly duplicated environment */
-    /* if PERL_USE_SAFE_PUTENV is defined environ will not have been copied
-     * so we certainly shouldn't free it here
-     */
-#ifndef PERL_MICRO
-#if defined(USE_ENVIRON_ARRAY) && !defined(PERL_USE_SAFE_PUTENV)
-    if (environ != PL_origenviron && !PL_use_safe_putenv
-#ifdef USE_ITHREADS
-        /* only main thread can free environ[0] contents */
-        && PL_curinterp == aTHX
-#endif
-        )
-    {
-        I32 i;
-
-        for (i = 0; environ[i]; i++)
-            safesysfree(environ[i]);
-
-        /* Must use safesysfree() when working with environ. */
-        safesysfree(environ);
-
-        environ = PL_origenviron;
-    }
-#endif
-#endif /* !PERL_MICRO */
-
     if (destruct_level == 0) {
 
         DEBUG_P(debprofdump());
@@ -1096,29 +1122,44 @@ perl_destruct(pTHXx)
     Safefree(PL_collation_name);
     PL_collation_name = NULL;
 #endif
-#if   defined(USE_POSIX_2008_LOCALE)      \
- &&   defined(USE_THREAD_SAFE_LOCALE)     \
- && ! defined(HAS_QUERYLOCALE)
+#if defined(USE_PL_CURLOCALES)
     for (i = 0; i < (int) C_ARRAY_LENGTH(PL_curlocales); i++) {
         Safefree(PL_curlocales[i]);
         PL_curlocales[i] = NULL;
     }
 #endif
-#ifdef HAS_POSIX_2008_LOCALE
+#ifdef USE_POSIX_2008_LOCALE
     {
         /* This also makes sure we aren't using a locale object that gets freed
          * below */
-        const locale_t old_locale = uselocale(LC_GLOBAL_LOCALE);
-        if (   old_locale != LC_GLOBAL_LOCALE
-#  ifdef USE_POSIX_2008_LOCALE
-            && old_locale != PL_C_locale_obj
-#  endif
+        if (   PL_cur_locale_obj != NULL
+            && PL_cur_locale_obj != LC_GLOBAL_LOCALE
+            && PL_cur_locale_obj != PL_C_locale_obj
         ) {
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log,
-                     "%s:%d: Freeing %p\n", __FILE__, __LINE__, old_locale));
-            freelocale(old_locale);
+            locale_t cur_locale = uselocale((locale_t) 0);
+            if (cur_locale == PL_cur_locale_obj) {
+                uselocale(LC_GLOBAL_LOCALE);
+            }
+
+            freelocale(PL_cur_locale_obj);
+            PL_cur_locale_obj = NULL;
         }
     }
+
+#  ifdef USE_PL_CUR_LC_ALL
+
+    if (PL_cur_LC_ALL) {
+        DEBUG_L( PerlIO_printf(Perl_debug_log, "PL_cur_LC_ALL=%p\n", PL_cur_LC_ALL));
+        Safefree(PL_cur_LC_ALL);
+        PL_cur_LC_ALL = NULL;
+    }
+
+#  endif
+
+    if (PL_scratch_locale_obj) {
+        freelocale(PL_scratch_locale_obj);
+        PL_scratch_locale_obj = NULL;
+    }
 #  ifdef USE_LOCALE_NUMERIC
     if (PL_underlying_numeric_obj) {
         DEBUG_Lv(PerlIO_printf(Perl_debug_log,
@@ -1134,6 +1175,12 @@ perl_destruct(pTHXx)
     PL_numeric_name = NULL;
     SvREFCNT_dec(PL_numeric_radix_sv);
     PL_numeric_radix_sv = NULL;
+    SvREFCNT_dec(PL_underlying_radix_sv);
+    PL_underlying_radix_sv  = NULL;
+#endif
+#ifdef USE_LOCALE_CTYPE
+    Safefree(PL_ctype_name);
+    PL_ctype_name = NULL;
 #endif
 
     if (PL_setlocale_buf) {
@@ -1146,6 +1193,11 @@ perl_destruct(pTHXx)
         PL_langinfo_buf = NULL;
     }
 
+    if (PL_stdize_locale_buf) {
+        Safefree(PL_stdize_locale_buf);
+        PL_stdize_locale_buf = NULL;
+    }
+
 #ifdef USE_LOCALE_CTYPE
     SvREFCNT_dec(PL_warn_locale);
     PL_warn_locale       = NULL;
@@ -1216,7 +1268,7 @@ perl_destruct(pTHXx)
         SvREFCNT_dec(PL_XPosix_ptrs[i]);
         PL_XPosix_ptrs[i] = NULL;
 
-        if (i != _CC_CASED) {   /* A copy of Alpha */
+        if (i != CC_CASED_) {   /* A copy of Alpha */
             SvREFCNT_dec(PL_Posix_ptrs[i]);
             PL_Posix_ptrs[i] = NULL;
         }
@@ -1377,7 +1429,7 @@ perl_destruct(pTHXx)
         for (sva = PL_sv_arenaroot; sva; sva = MUTABLE_SV(SvANY(sva))) {
             svend = &sva[SvREFCNT(sva)];
             for (sv = sva + 1; sv < svend; ++sv) {
-                if (SvTYPE(sv) != (svtype)SVTYPEMASK) {
+                if (!SvIS_FREED(sv)) {
                     PerlIO_printf(Perl_debug_log, "leaked: sv=0x%p"
                         " flags=0x%" UVxf
                         " refcnt=%" UVuf pTHX__FORMAT "\n"
@@ -1608,6 +1660,48 @@ Perl_call_atexit(pTHX_ ATEXIT_t fn, void
     ++PL_exitlistlen;
 }
 
+#ifdef USE_ENVIRON_ARRAY
+static void
+dup_environ(pTHX)
+{
+#  ifdef USE_ITHREADS
+    if (aTHX != PL_curinterp)
+        return;
+#  endif
+    if (!environ)
+        return;
+
+    size_t n_entries = 0, vars_size = 0;
+
+    for (char **ep = environ; *ep; ++ep) {
+        ++n_entries;
+        vars_size += strlen(*ep) + 1;
+    }
+
+    /* To save memory, we store both the environ array and its values in a
+     * single memory block. */
+    char **new_environ = (char**)PerlMemShared_malloc(
+        (sizeof(char*) * (n_entries + 1)) + vars_size
+    );
+    char *vars = (char*)(new_environ + n_entries + 1);
+
+    for (size_t i = 0, copied = 0; n_entries > i; ++i) {
+        size_t len = strlen(environ[i]) + 1;
+        new_environ[i] = (char *) CopyD(environ[i], vars + copied, len, char);
+        copied += len;
+    }
+    new_environ[n_entries] = NULL;
+
+    environ = new_environ;
+    /* Store a pointer in a global variable to ensure it's always reachable so
+     * LeakSanitizer/Valgrind won't complain about it. We can't ever free it.
+     * Even if libc allocates a new environ, it's possible that some of its
+     * values will still be pointing to the old environ.
+     */
+    PL_my_environ = new_environ;
+}
+#endif
+
 /*
 =for apidoc perl_parse
 
@@ -1654,16 +1748,13 @@ For historical reasons, the non-zero ret
 be a suitable value to pass to the C library function C<exit> (or to
 return from C<main>), to serve as an exit code indicating the nature
 of the way initialisation terminated.  However, this isn't portable,
-due to differing exit code conventions.  A historical bug is preserved
-for the time being: if the Perl built-in C<exit> is called during this
-function's execution, with a type of exit entailing a zero exit code
-under the host operating system's conventions, then this function
-returns zero rather than a non-zero value.  This bug, [perl #2754],
-leads to C<perl_run> being called (and therefore C<INIT> blocks and the
-main program running) despite a call to C<exit>.  It has been preserved
-because a popular module-installing module has come to rely on it and
-needs time to be fixed.  This issue is [perl #132577], and the original
-bug is due to be fixed in Perl 5.30.
+due to differing exit code conventions.  An attempt is made to return
+an exit code of the type required by the host operating system, but
+because it is constrained to be non-zero, it is not necessarily possible
+to indicate every type of exit.  It is only reliable on Unix, where a
+zero exit code can be augmented with a set bit that will be ignored.
+In any case, this function is not the correct place to acquire an exit
+code: one should get that from L</perl_destruct>.
 
 =cut
 */
@@ -1753,9 +1844,9 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int a
               }
          }
 
-#ifndef PERL_USE_SAFE_PUTENV
+#ifdef USE_ENVIRON_ARRAY
          /* Can we grab env area too to be used as the area for $0? */
-         if (s && PL_origenviron && !PL_use_safe_putenv) {
+         if (s && PL_origenviron) {
               if ((PL_origenviron[0] == s + 1)
                   ||
                   (aligned &&
@@ -1769,8 +1860,11 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int a
                    s = PL_origenviron[0];
                    while (*s) s++;
 #endif
-                   my_setenv("NoNe  SuCh", NULL);
+
                    /* Force copy of environment. */
+                   if (PL_origenviron == environ)
+                       dup_environ(aTHX);
+
                    for (i = 1; PL_origenviron[i]; i++) {
                         if (PL_origenviron[i] == s + 1
                             ||
@@ -1788,7 +1882,7 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int a
                    }
               }
          }
-#endif /* !defined(PERL_USE_SAFE_PUTENV) */
+#endif /* USE_ENVIRON_ARRAY */
 
          PL_origalen = s ? s - PL_origargv[0] + 1 : 0;
     }
@@ -1853,12 +1947,11 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int a
         ret = STATUS_EXIT;
         if (ret == 0) {
             /*
-             * At this point we should do
-             *     ret = 0x100;
-             * to avoid [perl #2754], but that bugfix has been postponed
-             * because of the Module::Install breakage it causes
-             * [perl #132577].
+             * We do this here to avoid [perl #2754].
+             * Note this may cause trouble with Module::Install.
+             * See: [perl #132577].
              */
+            ret = 0x100;
         }
         break;
     case 3:
@@ -1875,6 +1968,7 @@ perl_parse(pTHXx_ XSINIT_t xsinit, int a
 
 /* What this returns is subject to change.  Use the public interface in Config.
  */
+
 static void
 S_Internals_V(pTHX_ CV *cv)
 {
@@ -1886,15 +1980,26 @@ S_Internals_V(pTHX_ CV *cv)
 #endif
     const int entries = 3 + local_patch_count;
     int i;
+    /* NOTE - This list must remain sorted. Do not put any settings here
+     * which affect binary compatibility */
     static const char non_bincompat_options[] =
 #  ifdef DEBUGGING
                              " DEBUGGING"
 #  endif
+#  ifdef HAS_LONG_DOUBLE
+                             " HAS_LONG_DOUBLE"
+#  endif
+#  ifdef HAS_STRTOLD
+                             " HAS_STRTOLD"
+#  endif
 #  ifdef NO_MATHOMS
                              " NO_MATHOMS"
 #  endif
-#  ifdef NO_HASH_SEED
-                             " NO_HASH_SEED"
+#  ifdef NO_PERL_INTERNAL_RAND_SEED
+                             " NO_PERL_INTERNAL_RAND_SEED"
+#  endif
+#  ifdef NO_PERL_RAND_SEED
+                             " NO_PERL_RAND_SEED"
 #  endif
 #  ifdef NO_TAINT_SUPPORT
                              " NO_TAINT_SUPPORT"
@@ -1911,30 +2016,6 @@ S_Internals_V(pTHX_ CV *cv)
 #  ifdef PERL_EXTERNAL_GLOB
                              " PERL_EXTERNAL_GLOB"
 #  endif
-#  ifdef PERL_HASH_FUNC_SIPHASH
-                             " PERL_HASH_FUNC_SIPHASH"
-#  endif
-#  ifdef PERL_HASH_FUNC_SDBM
-                             " PERL_HASH_FUNC_SDBM"
-#  endif
-#  ifdef PERL_HASH_FUNC_DJB2
-                             " PERL_HASH_FUNC_DJB2"
-#  endif
-#  ifdef PERL_HASH_FUNC_SUPERFAST
-                             " PERL_HASH_FUNC_SUPERFAST"
-#  endif
-#  ifdef PERL_HASH_FUNC_MURMUR3
-                             " PERL_HASH_FUNC_MURMUR3"
-#  endif
-#  ifdef PERL_HASH_FUNC_ONE_AT_A_TIME
-                             " PERL_HASH_FUNC_ONE_AT_A_TIME"
-#  endif
-#  ifdef PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
-                             " PERL_HASH_FUNC_ONE_AT_A_TIME_HARD"
-#  endif
-#  ifdef PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
-                             " PERL_HASH_FUNC_ONE_AT_A_TIME_OLD"
-#  endif
 #  ifdef PERL_IS_MINIPERL
                              " PERL_IS_MINIPERL"
 #  endif
@@ -1971,6 +2052,7 @@ S_Internals_V(pTHX_ CV *cv)
 #  ifdef PERL_USE_SAFE_PUTENV
                              " PERL_USE_SAFE_PUTENV"
 #  endif
+
 #  ifdef PERL_USE_UNSHARED_KEYS_IN_LARGE_HASHES
                              " PERL_USE_UNSHARED_KEYS_IN_LARGE_HASHES"
 #  endif
@@ -2004,7 +2086,8 @@ S_Internals_V(pTHX_ CV *cv)
 #  ifdef USE_THREAD_SAFE_LOCALE
                              " USE_THREAD_SAFE_LOCALE"
 #  endif
-        ;
+    ""; /* keep this on a line by itself, WITH the empty string */
+
     PERL_UNUSED_ARG(cv);
     PERL_UNUSED_VAR(items);
 
@@ -2536,7 +2619,7 @@ S_parse_body(pTHX_ char **env, XSINIT_t 
 
     SETERRNO(0,SS_NORMAL);
     if (yyparse(GRAMPROG) || PL_parser->error_count) {
-        abort_execution("", PL_origfilename);
+        abort_execution(NULL, PL_origfilename);
     }
     CopLINE_set(PL_curcop, 0);
     SET_CURSTASH(PL_defstash);
@@ -2712,6 +2795,14 @@ S_run_body(pTHX_ I32 oldscope)
     PERL_SET_PHASE(PERL_PHASE_RUN);
 
     if (PL_restartop) {
+#ifdef DEBUGGING
+        /* this complements the "EXECUTING..." debug we emit above.
+         * it will show up when an eval fails in the main program level
+         * and the code continues after the error.
+         */
+        if (!DEBUG_q_TEST)
+          PERL_DEBUG(PerlIO_printf(Perl_debug_log, "\nCONTINUING...\n\n"));
+#endif
         PL_restartjmpenv = NULL;
         PL_op = PL_restartop;
         PL_restartop = 0;
@@ -2761,7 +2852,8 @@ Returns the AV of the specified Perl glo
 name (so it won't work on lexical variables).  C<flags> are passed
 to C<gv_fetchpv>.  If C<GV_ADD> is set and the
 Perl variable does not exist then it will be created.  If C<flags> is zero
-and the variable does not exist then NULL is returned.
+(ignoring C<SVf_UTF8>) and the variable does not exist then C<NULL> is
+returned.
 
 Perl equivalent: C<@{"$name"}>.
 
@@ -2775,7 +2867,7 @@ Perl_get_av(pTHX_ const char *name, I32 
 
     PERL_ARGS_ASSERT_GET_AV;
 
-    if (flags)
+    if (flags & ~SVf_UTF8)
         return GvAVn(gv);
     if (gv)
         return GvAV(gv);
@@ -2790,7 +2882,8 @@ Perl_get_av(pTHX_ const char *name, I32 
 Returns the HV of the specified Perl hash.  C<flags> are passed to
 C<gv_fetchpv>.  If C<GV_ADD> is set and the
 Perl variable does not exist then it will be created.  If C<flags> is zero
-and the variable does not exist then C<NULL> is returned.
+(ignoring C<SVf_UTF8>) and the variable does not exist then C<NULL> is
+returned.
 
 =cut
 */
@@ -2802,7 +2895,7 @@ Perl_get_hv(pTHX_ const char *name, I32 
 
     PERL_ARGS_ASSERT_GET_HV;
 
-    if (flags)
+    if (flags & ~SVf_UTF8)
         return GvHVn(gv);
     if (gv)
         return GvHV(gv);
@@ -2812,9 +2905,9 @@ Perl_get_hv(pTHX_ const char *name, I32 
 /*
 =for apidoc_section $CV
 
-=for apidoc get_cv
+=for apidoc            get_cv
+=for apidoc_item       get_cvn_flags
 =for apidoc_item |CV *|get_cvs|"string"|I32 flags
-=for apidoc_item get_cvn_flags
 
 These return the CV of the specified Perl subroutine.  C<flags> are passed to
 C<gv_fetchpvn_flags>.  If C<GV_ADD> is set and the Perl subroutine does not
@@ -3001,6 +3094,8 @@ Perl_call_sv(pTHX_ SV *sv, volatile I32 
     if (!(flags & G_NOARGS))
         myop.op_flags |= OPf_STACKED;
     myop.op_flags |= OP_GIMME_REVERSE(flags);
+    myop.op_ppaddr = PL_ppaddr[OP_ENTERSUB];
+    myop.op_type = OP_ENTERSUB;
     SAVEOP();
     PL_op = (OP*)&myop;
 
@@ -3033,13 +3128,11 @@ Perl_call_sv(pTHX_ SV *sv, volatile I32 
             method_op.op_ppaddr = PL_ppaddr[OP_METHOD];
             method_op.op_type = OP_METHOD;
         }
-        myop.op_ppaddr = PL_ppaddr[OP_ENTERSUB];
-        myop.op_type = OP_ENTERSUB;
     }
 
     if (!(flags & G_EVAL)) {
         CATCH_SET(TRUE);
-        CALL_BODY_SUB((OP*)&myop);
+        CALLRUNOPS(aTHX);
         retval = PL_stack_sp - (PL_stack_base + oldmark);
         CATCH_SET(oldcatch);
     }
@@ -3056,7 +3149,7 @@ Perl_call_sv(pTHX_ SV *sv, volatile I32 
         switch (ret) {
         case 0:
  redo_body:
-            CALL_BODY_SUB((OP*)&myop);
+            CALLRUNOPS(aTHX);
             retval = PL_stack_sp - (PL_stack_base + oldmark);
             if (!(flags & G_KEEPERR)) {
                 CLEAR_ERRSV();
@@ -3146,6 +3239,9 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
     SAVEOP();
     PL_op = (OP*)&myop;
     Zero(&myop, 1, UNOP);
+    myop.op_ppaddr = PL_ppaddr[OP_ENTEREVAL];
+    myop.op_type = OP_ENTEREVAL;
+
     {
         dSP;
         oldmark = SP - PL_stack_base;
@@ -3161,8 +3257,9 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
     if (flags & G_KEEPERR)
         myop.op_flags |= OPf_SPECIAL;
 
+    myop.op_private = (OPpEVAL_EVALSV); /* tell pp_entereval we're the caller */
     if (flags & G_RE_REPARSING)
-        myop.op_private = (OPpEVAL_COPHH | OPpEVAL_RE_REPARSING);
+        myop.op_private |= (OPpEVAL_COPHH | OPpEVAL_RE_REPARSING);
 
     /* fail now; otherwise we could fail after the JMPENV_PUSH but
      * before a cx_pusheval(), which corrupts the stack after a croak */
@@ -3171,13 +3268,22 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
     JMPENV_PUSH(ret);
     switch (ret) {
     case 0:
- redo_body:
-        if (PL_op == (OP*)(&myop)) {
-            PL_op = PL_ppaddr[OP_ENTEREVAL](aTHX);
-            if (!PL_op)
-                goto fail; /* failed in compilation */
-        }
         CALLRUNOPS(aTHX);
+        if (!*PL_stack_sp) {
+            /* In the presence of the OPpEVAL_EVALSV flag,
+             * pp_entereval() pushes a NULL pointer onto the stack to
+             * indicate compilation failure. Otherwise, the top slot on
+             * the stack will be a non-NULL pointer to whatever scalar or
+             * list value(s) the eval returned. In void context it will
+             * be whatever our caller has at the top of stack at the time,
+             * or the &PL_sv_undef guard at PL_stack_base[0]. Note that
+             * NULLs are not pushed on the stack except in a few very
+             * specific circumstances (such as this) to flag something
+             * special. */
+            PL_stack_sp--;
+            goto fail;
+        }
+     redone_body:
         retval = PL_stack_sp - (PL_stack_base + oldmark);
         if (!(flags & G_KEEPERR)) {
             CLEAR_ERRSV();
@@ -3198,14 +3304,19 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
             PL_restartjmpenv = NULL;
             PL_op = PL_restartop;
             PL_restartop = 0;
-            goto redo_body;
+            CALLRUNOPS(aTHX);
+            goto redone_body;
         }
       fail:
         if (flags & G_RETHROW) {
             JMPENV_POP;
             croak_sv(ERRSV);
         }
-
+        /* Should be nothing left in stack frame apart from a possible
+         * scalar context undef. Assert it's safe to reset the stack */
+        assert(     PL_stack_sp == PL_stack_base + oldmark
+                || (PL_stack_sp == PL_stack_base + oldmark + 1
+                    && *PL_stack_sp == &PL_sv_undef));
         PL_stack_sp = PL_stack_base + oldmark;
         if ((flags & G_WANT) == G_LIST)
             retval = 0;
@@ -3306,6 +3417,7 @@ S_usage(pTHX)		/* XXX move this out into
 "  -E commandline        like -e, but enables all optional features\n"
 "  -f                    don't do $sitelib/sitecustomize.pl at startup\n"
 "  -F/pattern/           split() pattern for -a switch (//'s are optional)\n"
+"  -g                    read all input in one go (slurp), rather than line-by-line (alias for -0777)\n"
 "  -i[extension]         edit <> files in place (makes backup if extension supplied)\n"
 "  -Idirectory           specify @INC/#include directory (several -I's allowed)\n",
 "  -l[octnum]            enable line ending processing, specifies line terminator\n"
@@ -3390,7 +3502,7 @@ Perl_get_debug_opts(pTHX_ const char **s
          * If there is a free slot available marked with '?' feel
          * free to reuse it for something else.
          *
-         * Regardles remember to update DEBUG_MASK in perl.h, and
+         * Regardless remember to update DEBUG_MASK in perl.h, and
          * update the documentation above AND in pod/perlrun.pod.
          *
          * Note that the ? indicates an unused slot. As the code below
@@ -3464,8 +3576,8 @@ Perl_moreswitches(pTHX_ const char *s)
                    numlen = 0;
                    s--;
               }
-              PL_rs = newSVpvs("");
-              tmps = (U8*) SvGROW(PL_rs, (STRLEN)(UVCHR_SKIP(rschar) + 1));
+              PL_rs = newSV((STRLEN)(UVCHR_SKIP(rschar) + 1));
+              tmps = (U8*)SvPVCLEAR_FRESH(PL_rs);
               uvchr_to_utf8(tmps, rschar);
               SvCUR_set(PL_rs, UVCHR_SKIP(rschar));
               SvUTF8_on(PL_rs);
@@ -3495,9 +3607,12 @@ Perl_moreswitches(pTHX_ const char *s)
         PL_minus_a = TRUE;
         PL_minus_F = TRUE;
         PL_minus_n = TRUE;
-        PL_splitstr = ++s;
-        while (*s && !isSPACE(*s)) ++s;
-        PL_splitstr = savepvn(PL_splitstr, s - PL_splitstr);
+        {
+            const char *start = ++s;
+            while (*s && !isSPACE(*s)) ++s;
+            Safefree(PL_splitstr);
+            PL_splitstr = savepvn(start, s - start);
+        }
         return s;
     case 'a':
         PL_minus_a = TRUE;
@@ -3738,12 +3853,12 @@ Perl_moreswitches(pTHX_ const char *s)
         return s;
     case 'W':
         PL_dowarn = G_WARN_ALL_ON|G_WARN_ON;
-    free_and_set_cop_warnings(&PL_compiling, pWARN_ALL);
+        free_and_set_cop_warnings(&PL_compiling, pWARN_ALL);
         s++;
         return s;
     case 'X':
         PL_dowarn = G_WARN_ALL_OFF;
-    free_and_set_cop_warnings(&PL_compiling, pWARN_NONE);
+        free_and_set_cop_warnings(&PL_compiling, pWARN_NONE);
         s++;
         return s;
     case '*':
@@ -4572,7 +4687,7 @@ S_init_postdump_symbols(pTHX_ int argc, 
         hv = GvHVn(PL_envgv);
         hv_magic(hv, NULL, PERL_MAGIC_env);
 #ifndef PERL_MICRO
-#ifdef USE_ENVIRON_ARRAY
+#if defined(USE_ENVIRON_ARRAY) || defined(WIN32)
         /* Note that if the supplied env parameter is actually a copy
            of the global environ then it may now point to free'd memory
            if the environment has been modified since. To avoid this
@@ -4708,16 +4823,7 @@ S_init_perllib(pTHX)
     if (!TAINTING_get) {
 #ifndef VMS
         perl5lib = PerlEnv_getenv("PERL5LIB");
-/*
- * It isn't possible to delete an environment variable with
- * PERL_USE_SAFE_PUTENV set unless unsetenv() is also available, so in that
- * case we treat PERL5LIB as undefined if it has a zero-length value.
- */
-#if defined(PERL_USE_SAFE_PUTENV) && ! defined(HAS_UNSETENV)
         if (perl5lib && *perl5lib != '\0')
-#else
-        if (perl5lib)
-#endif
             incpush_use_sep(perl5lib, 0, INCPUSH_ADD_SUB_DIRS);
         else {
             s = PerlEnv_getenv("PERLLIB");
@@ -5217,6 +5323,19 @@ Perl_my_exit(pTHX_ U32 status)
     }
     my_exit_jump();
 }
+
+/*
+=for apidoc my_failure_exit
+
+Exit the running Perl process with an error.
+
+On non-VMS platforms, this is essentially equivalent to L</C<my_exit>>, using
+C<errno>, but forces an en error code of 255 if C<errno> is 0.
+
+On VMS, it takes care to set the appropriate severity bits in the exit status.
+
+=cut
+*/
 
 void
 Perl_my_failure_exit(pTHX)
Index: gnu/usr.bin/perl/perl.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perl.h,v
diff -u -p -a -u -p -r1.28 perl.h
--- gnu/usr.bin/perl/perl.h	15 Feb 2023 01:36:13 -0000	1.28
+++ gnu/usr.bin/perl/perl.h	21 Feb 2024 15:47:02 -0000
@@ -11,6 +11,22 @@
 #ifndef H_PERL
 #define H_PERL 1
 
+#if defined(__HP_cc) || defined(__HP_aCC)
+/* The HPUX compiler for Itanium is very picky and warns about
+ * things that gcc doesn't and that we would prefer it does not.
+ * So on that platform silence certain warnings unlaterally. */
+
+/* silence "relational operator ">" always evaluates to 'false'"
+ * warnings. We get a LOT of these from the memwrap checks. */
+#pragma diag_suppress 4276
+
+/* silence "may cause misaligned access" warnings from our "OO in C"
+ * type logic. we do this a lot and if it was broken we would fail tests
+ * all over the place */
+#pragma diag_suppress 4232
+
+#endif /* end HPUX warning disablement */
+
 #ifdef PERL_FOR_X2P
 /*
  * This file is being used for x2p stuff.
@@ -30,7 +46,7 @@
 
 /*
 =for apidoc_section $debugging
-=for apidoc CmnW ||_aDEPTH
+=for apidoc CmnW ||comma_aDEPTH
 Some functions when compiled under DEBUGGING take an extra final argument named
 C<depth>, indicating the C stack depth.  This argument is omitted otherwise.
 This macro expands to either S<C<, depth>> under DEBUGGING, or to nothing at
@@ -38,20 +54,32 @@ all when not under DEBUGGING, reducing t
 
 The program is responsible for maintaining the correct value for C<depth>.
 
-=for apidoc CyW ||_pDEPTH
-This is used in the prototype declarations for functions that take a L</C<_aDEPTH>>
+=for apidoc CyW ||comma_pDEPTH
+This is used in the prototype declarations for functions that take a L</C<comma_aDEPTH>>
 final parameter, much like L<C<pTHX_>|perlguts/Background and MULTIPLICITY>
 is used in functions that take a thread context initial parameter.
 
+=for apidoc CmnW ||debug_aDEPTH
+Same as L</C<comma_aDEPTH>> but with no leading argument. Intended for functions with
+no normal arguments, and used by L</C<comma_aDEPTH>> itself.
+
+=for apidoc CmnW ||debug_pDEPTH
+Same as L</C<comma_pDEPTH>> but with no leading argument. Intended for functions with
+no normal arguments, and used by L</C<comma_pDEPTH>> itself.
+
 =cut
  */
 
 #ifdef DEBUGGING
-#  define _pDEPTH ,U32 depth
-#  define _aDEPTH ,depth
-#else
-#  define _pDEPTH
-#  define _aDEPTH
+#  define debug_pDEPTH U32 depth
+#  define comma_pDEPTH ,debug_pDEPTH
+#  define debug_aDEPTH depth
+#  define comma_aDEPTH ,debug_aDEPTH
+#else
+#  define debug_aDEPTH
+#  define comma_aDEPTH
+#  define debug_pDEPTH
+#  define comma_pDEPTH
 #endif
 
 /* NOTE 1: that with gcc -std=c89 the __STDC_VERSION__ is *not* defined
@@ -79,14 +107,18 @@ is used in functions that take a thread 
 #endif
 
 /* PERL_IMPLICIT_CONTEXT is a legacy synonym for MULTIPLICITY */
-#ifdef MULTIPLICITY
-#  ifndef PERL_IMPLICIT_CONTEXT
-#    define PERL_IMPLICIT_CONTEXT
-#  endif
+#if defined(MULTIPLICITY)               \
+ && ! defined(PERL_CORE)                \
+ && ! defined(PERL_IMPLICIT_CONTEXT)
+#  define PERL_IMPLICIT_CONTEXT
 #endif
 #if defined(PERL_IMPLICIT_CONTEXT) && !defined(MULTIPLICITY)
 #  define MULTIPLICITY
 #endif
+#if defined(PERL_CORE) && defined(PERL_IMPLICIT_CONTEXT)
+#  pragma message("PERL_IMPLICIT_CONTEXT was removed from core perl. It does not do anything. Undeffing it for compilation")
+#  undef PERL_IMPLICIT_CONTEXT
+#endif
 
 /* undef WIN32 when building on Cygwin (for libwin32) - gph */
 #ifdef __CYGWIN__
@@ -364,6 +396,9 @@ Now a no-op.
 #    if PERL_GCC_VERSION_GE(4,7,0)
 #      define HASATTRIBUTE_ALWAYS_INLINE
 #    endif
+#    if PERL_GCC_VERSION_GE(3,3,0)
+#      define HASATTRIBUTE_VISIBILITY
+#    endif
 #  endif
 #endif /* #ifndef PERL_MICRO */
 
@@ -397,6 +432,14 @@ Now a no-op.
 #    define __attribute__always_inline__      __attribute__((always_inline))
 #  endif
 #endif
+#if defined(HASATTRIBUTE_VISIBILITY) && !defined(_WIN32) && !defined(__CYGWIN__)
+/* On Windows instead of this, we use __declspec(dllexport) and a .def file
+ * Cygwin works by exporting every global symbol, see the definition of ldflags
+ * near the end of hints/cygwin.sh and the visibility attribute doesn't appear
+ * to control that.
+ */
+#  define __attribute__visibility__(x) __attribute__((visibility(x)))
+#endif
 
 /* If we haven't defined the attributes yet, define them to blank. */
 #ifndef __attribute__deprecated__
@@ -426,6 +469,9 @@ Now a no-op.
 #ifndef __attribute__always_inline__
 #  define __attribute__always_inline__
 #endif
+#ifndef __attribute__visibility__
+#  define __attribute__visibility__(x)
+#endif
 
 /* Some OS warn on NULL format to printf */
 #ifdef PRINTF_FORMAT_NULL_OK
@@ -443,7 +489,9 @@ Now a no-op.
  * marking unused variables (they need e.g. a #pragma) and therefore
  * cpp macros like PERL_UNUSED_DECL cannot work for this purpose, even
  * if it were PERL_UNUSED_DECL(x), which it cannot be (see above).
+*/
 
+/*
 =for apidoc_section $directives
 =for apidoc AmnU||PERL_UNUSED_DECL
 Tells the compiler that the parameter in the function prototype just before it
@@ -462,7 +510,7 @@ Example usage:
 =back
 
 =cut
- */
+*/
 
 #ifndef PERL_UNUSED_DECL
 #  define PERL_UNUSED_DECL __attribute__unused__
@@ -472,25 +520,26 @@ Example usage:
  * for silencing unused variables that are actually used most of the time,
  * but we cannot quite get rid of, such as "ax" in PPCODE+noargs xsubs,
  * or variables/arguments that are used only in certain configurations.
-
-=for apidoc Ams||PERL_UNUSED_ARG|void x
+ */
+/*
+=for apidoc Am;||PERL_UNUSED_ARG|void x
 This is used to suppress compiler warnings that a parameter to a function is
 not used.  This situation can arise, for example, when a parameter is needed
 under some configuration conditions, but not others, so that C preprocessor
-conditional compilation causes it be used just some times.
+conditional compilation causes it be used just sometimes.
 
-=for apidoc Amns||PERL_UNUSED_CONTEXT
+=for apidoc Amn;||PERL_UNUSED_CONTEXT
 This is used to suppress compiler warnings that the thread context parameter to
 a function is not used.  This situation can arise, for example, when a
 C preprocessor conditional compilation causes it be used just some times.
 
-=for apidoc Ams||PERL_UNUSED_VAR|void x
+=for apidoc Am;||PERL_UNUSED_VAR|void x
 This is used to suppress compiler warnings that the variable I<x> is not used.
 This situation can arise, for example, when a C preprocessor conditional
 compilation causes it be used just some times.
 
 =cut
- */
+*/
 #ifndef PERL_UNUSED_ARG
 #  define PERL_UNUSED_ARG(x) ((void)sizeof(x))
 #endif
@@ -546,7 +595,7 @@ and use C<L</PERL_UNUSED_VAR>> on that.
 =cut
 
 The __typeof__() is used instead of typeof() since typeof() is not
-available under strict C89, and because of compilers masquerading
+available under strict ISO C, and because of compilers masquerading
 as gcc (clang and icc), we want exactly the gcc extension
 __typeof__ and nothing else.
 
@@ -625,18 +674,18 @@ __typeof__ and nothing else.
 #define MSVC_DIAG_RESTORE_STMT MSVC_DIAG_RESTORE NOOP
 
 /*
-=for apidoc Amns||NOOP
+=for apidoc Amn;||NOOP
 Do nothing; typically used as a placeholder to replace something that used to
 do something.
 
-=for apidoc Amns||dNOOP
+=for apidoc Amn;||dNOOP
 Declare nothing; typically used as a placeholder to replace something that used
 to declare something.  Works on compilers that require declarations before any
 code.
 
 =cut
 */
-#define NOOP /*EMPTY*/(void)0
+#define NOOP ((void)0)
 #define dNOOP struct Perl___notused_struct
 
 #ifndef pTHX
@@ -668,7 +717,7 @@ code.
 This is now a synonym for dNOOP: declare nothing
 
 =for apidoc_section $XS
-=for apidoc Amns||dMY_CXT_SV
+=for apidoc Amn;||dMY_CXT_SV
 Now a placeholder that declares nothing
 
 =cut
@@ -717,28 +766,60 @@ Now a placeholder that declares nothing
 
 /*
 =for apidoc_section $directives
-=for apidoc AmnUu|void|STMT_START
-=for apidoc_item ||STMT_END
+=for apidoc AmnUu|void|STMT_END
+=for apidoc_item |    |STMT_START
 
-This allows a series of statements in a macro to be used as a single statement,
+These allow a series of statements in a macro to be used as a single statement,
 as in
 
  if (x) STMT_START { ... } STMT_END else ...
 
-Note that you can't return a value out of them, which limits their utility.
-But see C<L</PERL_USE_GCC_BRACE_GROUPS>>.
+Note that you can't return a value out of this construct and cannot use it as
+an operand to the comma operator.  These limit its utility.  
+
+But, a value could be returned by constructing the API so that a pointer is
+passed and the macro dereferences this to set the return.  If the value can be
+any of various types, depending on context, you can handle that situation in
+some situations by adding the type of the return as an extra accompanying
+parameter:
+
+ #define foo(param, type)  STMT_START {
+                              type * param; *param = do_calc; ...
+                           } STMT_END
+
+This could be awkward, so consider instead using a C language C<static inline>
+function.
+
+If you do use this construct, it is easy to forget that it is a macro and not a
+function, and hence fall into traps that might not show up until someone
+someday writes code which contains names that clash with the ones you chose
+here, or calls it with a parameter which is an expression with side effects,
+the consequences of which you didn't think about.  See L<perlhacktips/Writing
+safer macros> for how to avoid these.
 
-=for apidoc AmnuU|bool|PERL_USE_GCC_BRACE_GROUPS
+=for apidoc_section $genconfig
+=for apidoc Amn#||PERL_USE_GCC_BRACE_GROUPS
 
 This C pre-processor value, if defined, indicates that it is permissible to use
-the GCC brace groups extension.  This extension, of the form
+the GCC brace groups extension.  However, use of this extension is DISCOURAGED.
+Use a C<static inline> function instead.
+
+The extension, of the form
 
  ({ statement ... })
 
-turns the block consisting of I<statements ...> into an expression with a
+turns the block consisting of I<statement ...> into an expression with a
 value, unlike plain C language blocks.  This can present optimization
-possibilities, B<BUT> you generally need to specify an alternative in case this
-ability doesn't exist or has otherwise been forbidden.
+possibilities, B<BUT>, unless you know for sure that this will never be
+compiled without this extension being available and not forbidden, you need to
+specify an alternative.  Thus two code paths have to be maintained, which can
+get out-of-sync.  All these issues are solved by using a C<static inline>
+function instead.
+
+Perl can be configured to not use this feature by passing the parameter
+C<-Accflags=-DPERL_GCC_BRACE_GROUPS_FORBIDDEN> to F<Configure>.
+
+=for apidoc Amnh#||PERL_GCC_BRACE_GROUPS_FORBIDDEN
 
 Example usage:
 
@@ -765,10 +846,19 @@ Example usage:
 #   define BYTEORDER 0x1234
 #endif
 
+/*
+=for apidoc_section $genconfig
+=for apidoc Amn#||ASCIIish
+
+A preprocessor symbol that is defined iff the system is an ASCII platform; this
+symbol would not be defined on C<L</EBCDIC>> platforms.
+
+=cut
+*/
 #if 'A' == 65 && 'I' == 73 && 'J' == 74 && 'Z' == 90
-#define ASCIIish
+#  define ASCIIish
 #else
-#undef  ASCIIish
+#  undef  ASCIIish
 #endif
 
 /*
@@ -961,6 +1051,13 @@ violations are fatal.
 #  endif
 #endif
 
+/* This define exists only for compatibility. It used to mean "my_setenv and
+ * friends should use setenv/putenv, instead of manipulating environ directly",
+ * which is now always the case. It's still defined to prevent XS modules from
+ * using the no longer existing PL_use_safe_putenv variable.
+ */
+#define PERL_USE_SAFE_PUTENV
+
 /* HP-UX 10.X CMA (Common Multithreaded Architecture) insists that
    pthread.h must be included before all other header files.
 */
@@ -1000,6 +1097,12 @@ violations are fatal.
 #   include <xlocale.h>
 #endif
 
+#include "perl_langinfo.h"    /* Needed for _NL_LOCALE_NAME */
+
+/* =========================================================================
+ * The defines from here to the following ===== line are unfortunately
+ * duplicated in makedef.pl, and changes here MUST also be made there */
+
 /* If not forbidden, we enable locale handling if either 1) the POSIX 2008
  * functions are available, or 2) just the setlocale() function.  This logic is
  * repeated in t/loc_tools.pl and makedef.pl;  The three should be kept in
@@ -1061,6 +1164,9 @@ violations are fatal.
 #   if !defined(NO_LOCALE_TELEPHONE) && defined(LC_TELEPHONE)
 #	define USE_LOCALE_TELEPHONE
 #   endif
+#   if !defined(NO_LOCALE_NAME) && defined(LC_NAME)
+#	define USE_LOCALE_NAME
+#   endif
 #   if !defined(NO_LOCALE_SYNTAX) && defined(LC_SYNTAX)
 #	define USE_LOCALE_SYNTAX
 #   endif
@@ -1068,38 +1174,205 @@ violations are fatal.
 #	define USE_LOCALE_TOD
 #   endif
 
-/* XXX The next few defines are unfortunately duplicated in makedef.pl, and
- * changes here MUST also be made there */
+/* Now create LC_foo_INDEX_ #defines for just those categories on this system */
+#  ifdef USE_LOCALE_CTYPE
+#    define LC_CTYPE_INDEX_             0
+#    define PERL_DUMMY_CTYPE_           LC_CTYPE_INDEX_
+#  else
+#    define PERL_DUMMY_CTYPE_           -1
+#  endif
+#  ifdef USE_LOCALE_NUMERIC
+#    define LC_NUMERIC_INDEX_           PERL_DUMMY_CTYPE_ + 1
+#    define PERL_DUMMY_NUMERIC_         LC_NUMERIC_INDEX_
+#  else
+#    define PERL_DUMMY_NUMERIC_         PERL_DUMMY_CTYPE_
+#  endif
+#  ifdef USE_LOCALE_COLLATE
+#    define LC_COLLATE_INDEX_           PERL_DUMMY_NUMERIC_ + 1
+#    define PERL_DUMMY_COLLATE_         LC_COLLATE_INDEX_
+#  else
+#    define PERL_DUMMY_COLLATE_         PERL_DUMMY_NUMERIC_
+#  endif
+#  ifdef USE_LOCALE_TIME
+#    define LC_TIME_INDEX_              PERL_DUMMY_COLLATE_ + 1
+#    define PERL_DUMMY_TIME_            LC_TIME_INDEX_
+#  else
+#    define PERL_DUMMY_TIME_            PERL_DUMMY_COLLATE_
+#  endif
+#  ifdef USE_LOCALE_MESSAGES
+#    define LC_MESSAGES_INDEX_          PERL_DUMMY_TIME_ + 1
+#    define PERL_DUMMY_MESSAGES_        LC_MESSAGES_INDEX_
+#  else
+#    define PERL_DUMMY_MESSAGES_        PERL_DUMMY_TIME_
+#  endif
+#  ifdef USE_LOCALE_MONETARY
+#    define LC_MONETARY_INDEX_          PERL_DUMMY_MESSAGES_ + 1
+#    define PERL_DUMMY_MONETARY_        LC_MONETARY_INDEX_
+#  else
+#    define PERL_DUMMY_MONETARY_        PERL_DUMMY_MESSAGES_
+#  endif
+#  ifdef USE_LOCALE_ADDRESS
+#    define LC_ADDRESS_INDEX_           PERL_DUMMY_MONETARY_ + 1
+#    define PERL_DUMMY_ADDRESS_         LC_ADDRESS_INDEX_
+#  else
+#    define PERL_DUMMY_ADDRESS_         PERL_DUMMY_MONETARY_
+#  endif
+#  ifdef USE_LOCALE_IDENTIFICATION
+#    define LC_IDENTIFICATION_INDEX_    PERL_DUMMY_ADDRESS_ + 1
+#    define PERL_DUMMY_IDENTIFICATION_  LC_IDENTIFICATION_INDEX_
+#  else
+#    define PERL_DUMMY_IDENTIFICATION_  PERL_DUMMY_ADDRESS_
+#  endif
+#  ifdef USE_LOCALE_MEASUREMENT
+#    define LC_MEASUREMENT_INDEX_       PERL_DUMMY_IDENTIFICATION_ + 1
+#    define PERL_DUMMY_MEASUREMENT_     LC_MEASUREMENT_INDEX_
+#  else
+#    define PERL_DUMMY_MEASUREMENT_    PERL_DUMMY_IDENTIFICATION_
+#  endif
+#  ifdef USE_LOCALE_PAPER
+#    define LC_PAPER_INDEX_             PERL_DUMMY_MEASUREMENT_ + 1
+#    define PERL_DUMMY_PAPER_           LC_PAPER_INDEX_
+#  else
+#    define PERL_DUMMY_PAPER_           PERL_DUMMY_MEASUREMENT_
+#  endif
+#  ifdef USE_LOCALE_TELEPHONE
+#    define LC_TELEPHONE_INDEX_         PERL_DUMMY_PAPER_ + 1
+#    define PERL_DUMMY_TELEPHONE_       LC_TELEPHONE_INDEX_
+#  else
+#    define PERL_DUMMY_TELEPHONE_       PERL_DUMMY_PAPER_
+#  endif
+#  ifdef USE_LOCALE_NAME
+#    define LC_NAME_INDEX_              PERL_DUMMY_TELEPHONE_ + 1
+#    define PERL_DUMMY_NAME_            LC_NAME_INDEX_
+#  else
+#    define PERL_DUMMY_NAME_            PERL_DUMMY_TELEPHONE_
+#  endif
+#  ifdef USE_LOCALE_SYNTAX
+#    define LC_SYNTAX_INDEX_            PERL_DUMMY_NAME + 1
+#    define PERL_DUMMY_SYNTAX_          LC_SYNTAX_INDEX_
+#  else
+#    define PERL_DUMMY_SYNTAX_          PERL_DUMMY_NAME_
+#  endif
+#  ifdef USE_LOCALE_TOD
+#    define LC_TOD_INDEX_               PERL_DUMMY_SYNTAX_ + 1
+#    define PERL_DUMMY_TOD_             LC_TOD_INDEX_
+#  else
+#    define PERL_DUMMY_TOD_             PERL_DUMMY_SYNTAX_
+#  endif
+#  ifdef LC_ALL
+#    define LC_ALL_INDEX_               PERL_DUMMY_TOD_ + 1
+#  endif
 
-#  if ! defined(HAS_SETLOCALE) && defined(HAS_POSIX_2008_LOCALE)
-#      define USE_POSIX_2008_LOCALE
-#      ifndef USE_THREAD_SAFE_LOCALE
-#        define USE_THREAD_SAFE_LOCALE
-#      endif
-                                   /* If compiled with
-                                    * -DUSE_THREAD_SAFE_LOCALE, will do so even
-                                    * on unthreaded builds */
-#  elif   (defined(USE_ITHREADS) || defined(USE_THREAD_SAFE_LOCALE))         \
-       && (    defined(HAS_POSIX_2008_LOCALE)                                \
-           || (defined(WIN32) && defined(_MSC_VER)))                         \
-       && ! defined(NO_THREAD_SAFE_LOCALE)
-#    ifndef USE_THREAD_SAFE_LOCALE
+
+#  if defined(USE_ITHREADS) && ! defined(NO_LOCALE_THREADS)
+#    define USE_LOCALE_THREADS
+#  endif
+
+   /* Use POSIX 2008 locales if available, and no alternative exists
+    * ('setlocale()' is the alternative); or is threaded and not forbidden to
+    * use them */
+#  if defined(HAS_POSIX_2008_LOCALE) && (  ! defined(HAS_SETLOCALE)            \
+                                         || (     defined(USE_LOCALE_THREADS)  \
+                                             && ! defined(NO_POSIX_2008_LOCALE)))
+#    define USE_POSIX_2008_LOCALE
+#  endif
+
+   /* On threaded builds, use thread-safe locales if they are available and not
+    * forbidden.  Availability is when we are using POSIX 2008 locales, or
+    * Windows for quite a few releases now. */
+#  if defined(USE_LOCALE_THREADS) && ! defined(NO_THREAD_SAFE_LOCALE)
+#    if defined(USE_POSIX_2008_LOCALE) || (defined(WIN32) && defined(_MSC_VER))
 #      define USE_THREAD_SAFE_LOCALE
 #    endif
-#    ifdef HAS_POSIX_2008_LOCALE
-#      define USE_POSIX_2008_LOCALE
+#  endif
+
+#  include "perl_langinfo.h"    /* Needed for _NL_LOCALE_NAME */
+
+#  ifdef USE_POSIX_2008_LOCALE
+#    if  defined(HAS_QUERYLOCALE)                                           \
+              /* Use querylocale if has it, or has the glibc internal       \
+               * undocumented equivalent. */                                \
+     || (     defined(_NL_LOCALE_NAME)                                      \
+              /* And asked for */                                           \
+         &&   defined(USE_NL_LOCALE_NAME)                                   \
+              /* nl_langinfo_l almost certainly will exist on systems that  \
+               * have _NL_LOCALE_NAME, so there is nothing lost by          \
+               * requiring it instead of also allowing plain nl_langinfo(). \
+               * And experience indicates that its glibc implementation is  \
+               * thread-safe, eliminating code complications */             \
+         &&   defined(HAS_NL_LANGINFO_L)                                    \
+               /* On systems that accept any locale name, the real          \
+                * underlying locale is often returned by this internal      \
+                * item, so we can't use it */                               \
+         && ! defined(SETLOCALE_ACCEPTS_ANY_LOCALE_NAME))
+#      define USE_QUERYLOCALE
 #    endif
 #  endif
+
+   /* POSIX 2008 has no means of finding out the current locale without a
+    * querylocale; so must keep track of it ourselves */
+#  if (defined(USE_POSIX_2008_LOCALE) && ! defined(USE_QUERYLOCALE))
+#    define USE_PL_CURLOCALES
+#    define USE_PL_CUR_LC_ALL
+#  endif
+
+#  if defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE)
+
+   /* We need to be able to map the current value of what the tTHX context
+    * thinks LC_ALL is so as to inform the Windows libc when switching
+    * contexts. */
+#    define USE_PL_CUR_LC_ALL
+
+   /* Microsoft documentation reads in the change log for VS 2015: "The
+    * localeconv function declared in locale.h now works correctly when
+    * per-thread locale is enabled. In previous versions of the library, this
+    * function would return the lconv data for the global locale, not the
+    * thread's locale." */
+#    if _MSC_VER < 1900
+#      define TS_W32_BROKEN_LOCALECONV
+#    endif
+#  endif
+
+   /* POSIX 2008 and Windows with thread-safe locales keep locale information
+    * in libc data.  Therefore we must inform their libc's when the context
+    * switches */
+#  if defined(MULTIPLICITY) && (   defined(USE_POSIX_2008_LOCALE)           \
+                                || (   defined(WIN32)                       \
+                                    && defined(USE_THREAD_SAFE_LOCALE)))
+#    define USE_PERL_SWITCH_LOCALE_CONTEXT
+#  endif
 #endif
 
-/*  Microsoft documentation reads in the change log for VS 2015:
- *     "The localeconv function declared in locale.h now works correctly when
- *     per-thread locale is enabled. In previous versions of the library, this
- *     function would return the lconv data for the global locale, not the
- *     thread's locale."
- */
-#if defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE) && _MSC_VER < 1900
-#  define TS_W32_BROKEN_LOCALECONV
+/* end of makedef.pl logic duplication
+ * ========================================================================= */
+
+#ifdef PERL_CORE
+
+/* Both typedefs are used in locale.c only, but defined here so that embed.fnc
+ * can generate the proper prototypes. */
+
+typedef enum {
+    DONT_RECALC_LC_ALL,
+    YES_RECALC_LC_ALL,
+
+    /* Used in tight loops through all sub-categories, where LC_ALL won't be
+     * fully known until all subcategories are handled. */
+    RECALCULATE_LC_ALL_ON_FINAL_INTERATION
+} recalc_lc_all_t;
+
+
+typedef enum {  /* Is the locale UTF8? */
+    LOCALE_NOT_UTF8,
+    LOCALE_IS_UTF8,
+    LOCALE_UTF8NESS_UNKNOWN
+} locale_utf8ness_t;
+
+typedef struct {
+    const char *name;
+    size_t offset;
+} lconv_offset_t;
+
+
 #endif
 
 #include <setjmp.h>
@@ -1158,7 +1431,9 @@ EXTERN_C int usleep(unsigned int);
 
 /* Macros for correct constant construction.  These are in C99 <stdint.h>
  * (so they will not be available in strict C89 mode), but they are nice, so
- * let's define them if necessary.
+ * let's define them if necessary. */
+
+/*
 =for apidoc_section $integer
 =for apidoc    Am|I16|INT16_C|number
 =for apidoc_item |I32|INT32_C|number
@@ -1372,6 +1647,32 @@ Use L</UV> to declare variables of the m
 
 #define MEM_SIZE Size_t
 
+/* av_extend and analogues enforce a minimum number of array elements.
+ * This has been 4 elements (so a minimum key size of 3) for a long
+ * time, but the rationale behind this seems to have been lost to the
+ * mists of time. */
+#ifndef PERL_ARRAY_NEW_MIN_KEY
+#define PERL_ARRAY_NEW_MIN_KEY 3
+#endif
+
+/* Functions like Perl_sv_grow mandate a minimum string size.
+ * This was 10 bytes for a long time, the rationale for which seems lost
+ * to the mists of time. However, this does not correlate to what modern
+ * malloc implementations will actually return, in particular the fact
+ * that chunks are almost certainly some multiple of pointer size. The
+ * default has therefore been revised to a more useful approximation.
+ * Notes: The following is specifically conservative for 64 bit, since
+ * most dlmalloc derivatives seem to serve a 3xPTRSIZE minimum chunk,
+ * so the below perhaps should be:
+ *     ((PTRSIZE == 4) ? 12 : 24)
+ * Configure probes for malloc_good_size, malloc_actual_size etc.
+ * could be revised to record the actual minimum chunk size, to which
+ * PERL_STRLEN_NEW_MIN could then be set.
+ */
+#ifndef PERL_STRLEN_NEW_MIN
+#define PERL_STRLEN_NEW_MIN ((PTRSIZE == 4) ? 12 : 16)
+#endif
+
 /* Round all values passed to malloc up, by default to a multiple of
    sizeof(size_t)
 */
@@ -1444,10 +1745,12 @@ Use L</UV> to declare variables of the m
                 if (newval) {					\
                   PERL_UNUSED_RESULT(panic_write2("panic: tainting with $ENV{PERL_MALLOC_OPT}\n"));\
                   exit(1); })
-#  define MALLOC_CHECK_TAINT(argc,argv,env)	STMT_START {	\
-        if (doing_taint(argc,argv,env)) {			\
-                MallocCfg_ptr[MallocCfg_skip_cfg_env] = 1;	\
-    }} STMT_END;
+#  define MALLOC_CHECK_TAINT(argc,argv,env)                     \
+    STMT_START {                                                \
+        if (doing_taint(argc,argv,env)) {                       \
+            MallocCfg_ptr[MallocCfg_skip_cfg_env] = 1;          \
+        }                                                       \
+    } STMT_END;
 #else  /* MYMALLOC */
 #  define safemalloc  safesysmalloc
 #  define safecalloc  safesyscalloc
@@ -2014,7 +2317,7 @@ my_snprintf()
 
 #define PERL_SNPRINTF_CHECK(len, max, api) STMT_START { if ((max) > 0 && (Size_t)len > (max)) Perl_croak_nocontext("panic: %s buffer overflow", STRINGIFY(api)); } STMT_END
 
-#ifdef USE_QUADMATH
+#if defined(USE_LOCALE_NUMERIC) || defined(USE_QUADMATH)
 #  define my_snprintf Perl_my_snprintf
 #  define PERL_MY_SNPRINTF_GUARDED
 #elif defined(HAS_SNPRINTF) && defined(HAS_C99_VARIADIC_MACROS) && !(defined(DEBUGGING) && !defined(PERL_USE_GCC_BRACE_GROUPS)) && !defined(PERL_GCC_PEDANTIC)
@@ -2031,9 +2334,16 @@ my_snprintf()
 
 /* There is no quadmath_vsnprintf, and therefore my_vsnprintf()
  * dies if called under USE_QUADMATH. */
-#if defined(HAS_VSNPRINTF) && defined(HAS_C99_VARIADIC_MACROS) && !(defined(DEBUGGING) && !defined(PERL_USE_GCC_BRACE_GROUPS)) && !defined(PERL_GCC_PEDANTIC)
+#if !  defined(USE_LOCALE_NUMERIC)                                  \
+ &&    defined(HAS_VSNPRINTF)                                       \
+ &&    defined(HAS_C99_VARIADIC_MACROS)                             \
+ && ! (defined(DEBUGGING) && ! defined(PERL_USE_GCC_BRACE_GROUPS))  \
+ && !  defined(PERL_GCC_PEDANTIC)
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#      define my_vsnprintf(buffer, max, ...) ({ int len = vsnprintf(buffer, max, __VA_ARGS__); PERL_SNPRINTF_CHECK(len, max, vsnprintf); len; })
+#      define my_vsnprintf(buffer, max, ...)                        \
+            ({ int len = vsnprintf(buffer, max, __VA_ARGS__);       \
+             PERL_SNPRINTF_CHECK(len, max, vsnprintf);              \
+             len; })
 #      define PERL_MY_VSNPRINTF_GUARDED
 #  else
 #    define my_vsnprintf(buffer, max, ...) vsnprintf(buffer, max, __VA_ARGS__)
@@ -2418,7 +2728,7 @@ extern long double Perl_my_frexpl(long d
 #   define Perl_ldexp(x, y) ldexpq(x,y)
 #   define Perl_isinf(x) isinfq(x)
 #   define Perl_isnan(x) isnanq(x)
-#   define Perl_isfinite(x) !(isnanq(x) || isinfq(x))
+#   define Perl_isfinite(x) (!(isnanq(x) || isinfq(x)))
 #   define Perl_fp_class(x) ((x) == 0.0Q ? 0 : isinfq(x) ? 3 : isnanq(x) ? 4 : PERL_ABS(x) < FLT128_MIN ? 2 : 1)
 #   define Perl_fp_class_inf(x)    (Perl_fp_class(x) == 3)
 #   define Perl_fp_class_nan(x)    (Perl_fp_class(x) == 4)
@@ -2745,7 +3055,7 @@ extern long double Perl_my_frexpl(long d
 
 #ifndef Perl_isinf
 #   if defined(Perl_isfinite) && defined(Perl_isnan)
-#       define Perl_isinf(x) !(Perl_isfinite(x)||Perl_isnan(x))
+#       define Perl_isinf(x) (!(Perl_isfinite(x)||Perl_isnan(x)))
 #   endif
 #endif
 
@@ -2762,15 +3072,20 @@ extern long double Perl_my_frexpl(long d
 #    elif defined(HAS_FINITEL)
 #        define Perl_isfinitel(x) finitel(x)
 #    elif defined(HAS_ISINFL) && defined(HAS_ISNANL)
-#        define Perl_isfinitel(x) !(isinfl(x)||isnanl(x))
+#        define Perl_isfinitel(x) (!(isinfl(x)||isnanl(x)))
 #    else
 #        define Perl_isfinitel(x) ((x) * 0 == 0)  /* See Perl_isfinite. */
 #    endif
 #endif
 
 /* The default is to use Perl's own atof() implementation (in numeric.c).
- * Usually that is the one to use but for some platforms (e.g. UNICOS)
- * it is however best to use the native implementation of atof.
+ * This knows about if 'use locale' is in effect or not, and handles the radix
+ * character accordingly.  On some platforms (e.g. UNICOS) it is however best
+ * to use the native implementation of atof, as long as you accept that the
+ * current underlying locale will affect the radix character.  Perl's version
+ * uses a dot for a radix, execpt within the lexical scope of a Perl C<use
+ * locale> statement.
+ *
  * You can experiment with using your native one by -DUSE_PERL_ATOF=0.
  * Some good tests to try out with either setting are t/base/num.t,
  * t/op/numconvert.t, and t/op/pack.t. Note that if using long doubles
@@ -2787,7 +3102,7 @@ extern long double Perl_my_frexpl(long d
 #endif
 
 #ifdef USE_PERL_ATOF
-#   define Perl_atof(s) Perl_my_atof(s)
+#   define Perl_atof(s) Perl_my_atof(aTHX_ s)
 #   define Perl_atof2(s, n) Perl_my_atof3(aTHX_ (s), &(n), 0)
 #else
 #   define Perl_atof(s) (NV)atof(s)
@@ -2796,6 +3111,17 @@ extern long double Perl_my_frexpl(long d
 #define my_atof2(a,b) my_atof3(a,b,0)
 
 /*
+=for apidoc AmTR|NV|Atof|NN const char * const s
+
+This is a synonym for L</C<my_atof>>.
+
+=cut
+
+*/
+
+#define Atof				my_atof
+
+/*
 =for apidoc_section $numeric
 =for apidoc   AmT|NV|Perl_acos|NV x
 =for apidoc_item |NV|Perl_asin|NV x
@@ -2828,6 +3154,7 @@ NV on this platform.  If no such functio
 the highest precision one available is used.
 
 =cut
+
 */
 
 /*
@@ -2870,24 +3197,24 @@ the highest precision one available is u
 /*
 =for apidoc_section $integer
 
-=for apidoc AmnU||PERL_INT_MAX
-=for apidoc_item ||PERL_INT_MIN
-=for apidoc_item ||PERL_LONG_MAX
-=for apidoc_item ||PERL_LONG_MIN
-=for apidoc_item ||PERL_SHORT_MAX
-=for apidoc_item ||PERL_SHORT_MIN
-=for apidoc_item ||PERL_UCHAR_MAX
-=for apidoc_item ||PERL_UCHAR_MIN
-=for apidoc_item ||PERL_UINT_MAX
-=for apidoc_item ||PERL_UINT_MIN
-=for apidoc_item ||PERL_ULONG_MAX
-=for apidoc_item ||PERL_ULONG_MIN
-=for apidoc_item ||PERL_USHORT_MAX
-=for apidoc_item ||PERL_USHORT_MIN
-=for apidoc_item ||PERL_QUAD_MAX
-=for apidoc_item ||PERL_QUAD_MIN
-=for apidoc_item ||PERL_UQUAD_MAX
-=for apidoc_item ||PERL_UQUAD_MIN
+=for apidoc Amn |int|PERL_INT_MAX
+=for apidoc_item |int|PERL_INT_MIN
+=for apidoc_item |long|PERL_LONG_MAX
+=for apidoc_item |long|PERL_LONG_MIN
+=for apidoc_item |IV|PERL_QUAD_MAX
+=for apidoc_item |IV|PERL_QUAD_MIN
+=for apidoc_item |short|PERL_SHORT_MAX
+=for apidoc_item |short|PERL_SHORT_MIN
+=for apidoc_item |U8|PERL_UCHAR_MAX
+=for apidoc_item |U8|PERL_UCHAR_MIN
+=for apidoc_item |unsigned int|PERL_UINT_MAX
+=for apidoc_item |unsigned int|PERL_UINT_MIN
+=for apidoc_item |unsigned long|PERL_ULONG_MAX
+=for apidoc_item |unsigned long|PERL_ULONG_MIN
+=for apidoc_item |UV|PERL_UQUAD_MAX
+=for apidoc_item |UV|PERL_UQUAD_MIN
+=for apidoc_item |unsigned short|PERL_USHORT_MAX
+=for apidoc_item |unsigned short|PERL_USHORT_MIN
 
 These give the largest and smallest number representable in the current
 platform in variables of the corresponding types.
@@ -2963,6 +3290,7 @@ typedef struct xpvcv XPVCV;
 typedef struct xpvbm XPVBM;
 typedef struct xpvfm XPVFM;
 typedef struct xpvio XPVIO;
+typedef struct xobject XPVOBJ;
 typedef struct mgvtbl MGVTBL;
 typedef union any ANY;
 typedef struct ptr_tbl_ent PTR_TBL_ENT_t;
@@ -3769,7 +4097,10 @@ out there, Solaris being the most promin
 
 /* the traditional thread-unsafe notion of "current interpreter". */
 #ifndef PERL_SET_INTERP
-#  define PERL_SET_INTERP(i)		(PL_curinterp = (PerlInterpreter*)(i))
+#  define PERL_SET_INTERP(i)                                            \
+            STMT_START { PL_curinterp = (PerlInterpreter*)(i);          \
+                         PERL_SET_NON_tTHX_CONTEXT(i);                  \
+            } STMT_END
 #endif
 
 #ifndef PERL_GET_INTERP
@@ -3811,30 +4142,63 @@ out there, Solaris being the most promin
 
 #define SVfARG(p) ((void*)(p))
 
+/* Render an SV as a quoted and escaped string suitable for an error message.
+ * Only shows the first PERL_QUOTEDPREFIX_LEN characters, and adds ellipses if the
+ * string is too long.
+ */
+#ifndef PERL_QUOTEDPREFIX_LEN
+# define PERL_QUOTEDPREFIX_LEN 256
+#endif
+#ifndef SVf_QUOTEDPREFIX
+#  define SVf_QUOTEDPREFIX "5p"
+#endif
+
+/* like %s but runs through the quoted prefix logic */
+#ifndef PVf_QUOTEDPREFIX
+#  define PVf_QUOTEDPREFIX "1p"
+#endif
+
 #ifndef HEKf
 #  define HEKf "2p"
 #endif
 
+#ifndef HEKf_QUOTEDPREFIX
+#  define HEKf_QUOTEDPREFIX "7p"
+#endif
+
 /* Not ideal, but we cannot easily include a number in an already-numeric
  * format sequence. */
 #ifndef HEKf256
 #  define HEKf256 "3p"
 #endif
 
+#ifndef HEKf256_QUOTEDPREFIX
+#  define HEKf256_QUOTEDPREFIX "8p"
+#endif
+
 #define HEKfARG(p) ((void*)(p))
 
 /* Documented in perlguts
  *
- * %4p is a custom format
+ * %4p and %9p are custom formats for handling UTF8 parameters.
+ * They only occur when prefixed by specific other formats.
  */
 #ifndef UTF8f
 #  define UTF8f "d%" UVuf "%4p"
 #endif
+#ifndef UTF8f_QUOTEDPREFIX
+#  define UTF8f_QUOTEDPREFIX "d%" UVuf "%9p"
+#endif
 #define UTF8fARG(u,l,p) (int)cBOOL(u), (UV)(l), (void*)(p)
 
 #define PNf UTF8f
 #define PNfARG(pn) (int)1, (UV)PadnameLEN(pn), (void *)PadnamePV(pn)
 
+#define HvNAMEf "6p"
+#define HvNAMEf_QUOTEDPREFIX "10p"
+
+#define HvNAMEfARG(hv) ((void*)(hv))
+
 #ifdef PERL_CORE
 /* not used; but needed for backward compatibility with XS code? - RMB
 =for apidoc_section $io_formats
@@ -3954,6 +4318,14 @@ intrinsic function, see its documents fo
 
 #ifdef DEBUGGING
 #  define ASSUME(x) assert(x)
+#elif __has_builtin(__builtin_assume)
+#  if defined(__clang__) || defined(__clang)
+#    define ASSUME(x)  CLANG_DIAG_IGNORE(-Wassume)      \
+                       __builtin_assume (x)             \
+                       CLANG_DIAG_RESTORE
+#  else
+#    define ASSUME(x)  __builtin_assume(x)
+#  endif
 #elif defined(_MSC_VER)
 #  define ASSUME(x) __assume(x)
 #elif defined(__ARMCC_VERSION) /* untested */
@@ -4025,7 +4397,7 @@ void init_os_extras(void);
 UNION_ANY_DEFINITION;
 #else
 union any {
-    void*	any_ptr;
+    void*       any_ptr;
     SV*         any_sv;
     SV**        any_svp;
     GV*         any_gv;
@@ -4034,14 +4406,17 @@ union any {
     OP*         any_op;
     char*       any_pv;
     char**      any_pvp;
-    I32		any_i32;
-    U32		any_u32;
-    IV		any_iv;
-    UV		any_uv;
-    long	any_long;
-    bool	any_bool;
-    void	(*any_dptr) (void*);
-    void	(*any_dxptr) (pTHX_ void*);
+    I32         any_i32;
+    U32         any_u32;
+    IV          any_iv;
+    UV          any_uv;
+    long        any_long;
+    bool        any_bool;
+    Size_t      any_size;
+    SSize_t     any_ssize;
+    STRLEN      any_strlen;
+    void        (*any_dptr) (void*);
+    void        (*any_dxptr) (pTHX_ void*);
 };
 #endif
 
@@ -4116,7 +4491,7 @@ typedef        struct crypt_data {     /
 #define FAKE_BIT_BUCKET
 #endif
 
-/* [perl #22371] Algorimic Complexity Attack on Perl 5.6.1, 5.8.0.
+/* [perl #22371] Algorithmic Complexity Attack on Perl 5.6.1, 5.8.0.
  * Note that the USE_HASH_SEED and similar defines are *NOT* defined by
  * Configure, despite their names being similar to other defines like
  * USE_ITHREADS.  Configure in fact knows nothing about the randomised
@@ -4182,8 +4557,7 @@ typedef        struct crypt_data {     /
 
 typedef struct magic_state MGS;	/* struct magic_state defined in mg.c */
 
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) \
- || defined(PERL_EXT_RE_BUILD)
+#if defined(PERL_IN_REGEX_ENGINE) || defined(PERL_EXT_RE_BUILD)
 
 /* These have to be predeclared, as they are used in proto.h which is #included
  * before their definitions in regcomp.h. */
@@ -4199,6 +4573,7 @@ typedef struct regnode_charclass_posixl 
 typedef struct regnode_ssc regnode_ssc;
 typedef struct RExC_state_t RExC_state_t;
 struct _reg_trie_data;
+typedef struct scan_data_t scan_data_t;
 
 #endif
 
@@ -4497,13 +4872,23 @@ Gid_t getegid (void);
 #  define DEBUG_q_TEST_ UNLIKELY(PL_debug & DEBUG_q_FLAG)
 #  define DEBUG_M_TEST_ UNLIKELY(PL_debug & DEBUG_M_FLAG)
 #  define DEBUG_B_TEST_ UNLIKELY(PL_debug & DEBUG_B_FLAG)
-#  define DEBUG_L_TEST_ UNLIKELY(PL_debug & DEBUG_L_FLAG)
+
+/* Locale initialization comes earlier than PL_debug gets set,
+ * DEBUG_LOCALE_INITIALIZATION_, if defined, will be set early enough */
+#  ifndef DEBUG_LOCALE_INITIALIZATION_
+#    define DEBUG_LOCALE_INITIALIZATION_ 0
+#  endif
+#  define DEBUG_L_TEST_                                                 \
+        (   UNLIKELY(DEBUG_LOCALE_INITIALIZATION_)                      \
+         || UNLIKELY(PL_debug & DEBUG_L_FLAG))
+#  define DEBUG_Lv_TEST_                                                \
+        (   UNLIKELY(DEBUG_LOCALE_INITIALIZATION_)                      \
+         || UNLIKELY(DEBUG_BOTH_FLAGS_TEST_(DEBUG_L_FLAG, DEBUG_v_FLAG)))
 #  define DEBUG_i_TEST_ UNLIKELY(PL_debug & DEBUG_i_FLAG)
 #  define DEBUG_y_TEST_ UNLIKELY(PL_debug & DEBUG_y_FLAG)
 #  define DEBUG_Xv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_X_FLAG, DEBUG_v_FLAG)
 #  define DEBUG_Uv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_U_FLAG, DEBUG_v_FLAG)
 #  define DEBUG_Pv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_P_FLAG, DEBUG_v_FLAG)
-#  define DEBUG_Lv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_L_FLAG, DEBUG_v_FLAG)
 #  define DEBUG_yv_TEST_ DEBUG_BOTH_FLAGS_TEST_(DEBUG_y_FLAG, DEBUG_v_FLAG)
 
 #ifdef DEBUGGING
@@ -4597,9 +4982,9 @@ Gid_t getegid (void);
 
 #  define DEBUG__(t, a)                                                 \
         STMT_START {                                                    \
-            if (t) STMT_START {                                         \
+            if (t) {                                                    \
                 DEBUG_PRE_STMTS a; DEBUG_POST_STMTS                     \
-            } STMT_END;                                                 \
+            }                                                           \
         } STMT_END
 
 #  define DEBUG_f(a) DEBUG__(DEBUG_f_TEST, a)
@@ -5061,9 +5446,9 @@ Indices outside the range 0..31 result i
 EXTCONST char PL_hexdigit[]
   INIT("0123456789abcdef0123456789ABCDEF");
 
-EXTCONST STRLEN PL_WARN_ALL
+EXT char PL_WARN_ALL
   INIT(0);
-EXTCONST STRLEN PL_WARN_NONE
+EXT char PL_WARN_NONE
   INIT(0);
 
 /* This is constant on most architectures, a global on OS/2 */
@@ -5167,41 +5552,6 @@ EXTCONST  unsigned char PL_fold[] = {
         248,	249,	250,	251,	252,	253,	254,	255
 };
 
-EXT unsigned char PL_fold_locale[] = { /* Unfortunately not EXTCONST. */
-        0,	1,	2,	3,	4,	5,	6,	7,
-        8,	9,	10,	11,	12,	13,	14,	15,
-        16,	17,	18,	19,	20,	21,	22,	23,
-        24,	25,	26,	27,	28,	29,	30,	31,
-        32,	33,	34,	35,	36,	37,	38,	39,
-        40,	41,	42,	43,	44,	45,	46,	47,
-        48,	49,	50,	51,	52,	53,	54,	55,
-        56,	57,	58,	59,	60,	61,	62,	63,
-        64,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
-        'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
-        'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
-        'x',	'y',	'z',	91,	92,	93,	94,	95,
-        96,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
-        'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
-        'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
-        'X',	'Y',	'Z',	123,	124,	125,	126,	127,
-        128,	129,	130,	131,	132,	133,	134,	135,
-        136,	137,	138,	139,	140,	141,	142,	143,
-        144,	145,	146,	147,	148,	149,	150,	151,
-        152,	153,	154,	155,	156,	157,	158,	159,
-        160,	161,	162,	163,	164,	165,	166,	167,
-        168,	169,	170,	171,	172,	173,	174,	175,
-        176,	177,	178,	179,	180,	181,	182,	183,
-        184,	185,	186,	187,	188,	189,	190,	191,
-        192,	193,	194,	195,	196,	197,	198,	199,
-        200,	201,	202,	203,	204,	205,	206,	207,
-        208,	209,	210,	211,	212,	213,	214,	215,
-        216,	217,	218,	219,	220,	221,	222,	223,
-        224,	225,	226,	227,	228,	229,	230,	231,
-        232,	233,	234,	235,	236,	237,	238,	239,
-        240,	241,	242,	243,	244,	245,	246,	247,
-        248,	249,	250,	251,	252,	253,	254,	255
-};
-
 EXTCONST  unsigned char PL_fold_latin1[] = {
     /* Full latin1 complement folding, except for three problematic code points:
      *	Micro sign (181 = 0xB5) and y with diearesis (255 = 0xFF) have their
@@ -5333,7 +5683,6 @@ EXTCONST unsigned char PL_fold[];
 EXTCONST unsigned char PL_fold_latin1[];
 EXTCONST unsigned char PL_mod_latin1_uc[];
 EXTCONST unsigned char PL_latin1_lc[];
-EXT      unsigned char PL_fold_locale[]; /* Unfortunately not EXTCONST. */
 #   endif
 #endif
 
@@ -5386,6 +5735,9 @@ EXTCONST char PL_bincompat_options[] =
 #  ifdef MYMALLOC
                              " MYMALLOC"
 #  endif
+#  ifdef NO_HASH_SEED
+                             " NO_HASH_SEED"
+#  endif
 #  ifdef PERLIO_LAYERS
                              " PERLIO_LAYERS"
 #  endif
@@ -5395,6 +5747,16 @@ EXTCONST char PL_bincompat_options[] =
 #  ifdef PERL_DEBUG_READONLY_OPS
                              " PERL_DEBUG_READONLY_OPS"
 #  endif
+#  ifdef PERL_HASH_FUNC_DEFINE
+/* note that this is different from the others, PERL_HASH_FUNC_DEFINE
+ * is a string which says which define was defined. */
+                             " " PERL_HASH_FUNC_DEFINE
+#  endif
+#  ifdef PERL_HASH_USE_SBOX32
+                             " PERL_HASH_USE_SBOX32"
+#  else
+                             " PERL_HASH_NO_SBOX32"
+#  endif
 #  ifdef PERL_IMPLICIT_SYS
                              " PERL_IMPLICIT_SYS"
 #  endif
@@ -5461,7 +5823,7 @@ EXTCONST char PL_bincompat_options[] =
 #  ifdef VMS_WE_ARE_CASE_SENSITIVE
                              " VMS_SYMBOL_CASE_AS_IS"
 #  endif
-  "";
+    ""; /* keep this on a line by itself, WITH the empty string */
 #else
 EXTCONST char PL_bincompat_options[];
 #endif
@@ -5682,7 +6044,7 @@ typedef char*   (*re_intuit_start_t) (pT
 typedef SV*	(*re_intuit_string_t) (pTHX_ regexp *prog);
 typedef void	(*regfree_t) (pTHX_ struct regexp* r);
 typedef regexp* (*regdupe_t) (pTHX_ const regexp* r, CLONE_PARAMS *param);
-typedef I32     (*re_fold_t)(const char *, char const *, I32);
+typedef I32     (*re_fold_t)(pTHX_ const char *, char const *, I32);
 
 typedef void (*DESTRUCTORFUNC_NOCONTEXT_t) (void*);
 typedef void (*DESTRUCTORFUNC_t) (pTHX_ void*);
@@ -5692,10 +6054,38 @@ typedef void (*XSINIT_t) (pTHX);
 typedef void (*ATEXIT_t) (pTHX_ void*);
 typedef void (*XSUBADDR_t) (pTHX_ CV *);
 
+enum Perl_custom_infix_precedence {
+    /* These numbers are spaced out to give room to insert new values as
+     * required. They form part of the ABI contract with XS::Parse::Infix so
+     * they should not be changed within a stable release cycle, but they can
+     * be freely altered during a development cycle because no ABI guarantees
+     * are made at that time */
+    INFIX_PREC_LOW             =  10, /* non-associative */
+    INFIX_PREC_LOGICAL_OR_LOW  =  30, /* left-associative, as `or` */
+    INFIX_PREC_LOGICAL_AND_LOW =  40, /* left-associative, as `and` */
+    INFIX_PREC_ASSIGN          =  50, /* right-associative, as `=` */
+    INFIX_PREC_LOGICAL_OR      =  70, /* left-associative, as `||` */
+    INFIX_PREC_LOGICAL_AND     =  80, /* left-associative, as `&&` */
+    INFIX_PREC_REL             =  90, /* non-associative, just below `==` */
+    INFIX_PREC_ADD             = 110, /* left-associative, as `+` */
+    INFIX_PREC_MUL             = 130, /* left-associative, as `*` */
+    INFIX_PREC_POW             = 150, /* right-associative, as `**` */
+    INFIX_PREC_HIGH            = 170, /* non-associative */
+    /* Try to keep within the range of a U8 in case we need to split the field
+     * and add flags */
+};
+struct Perl_custom_infix;
+struct Perl_custom_infix {
+    enum Perl_custom_infix_precedence prec;
+    void (*parse)(pTHX_ SV **opdata, struct Perl_custom_infix *);  /* optional */
+    OP *(*build_op)(pTHX_ SV **opdata, OP *lhs, OP *rhs, struct Perl_custom_infix *);
+};
+
 typedef OP* (*Perl_ppaddr_t)(pTHX);
 typedef OP* (*Perl_check_t) (pTHX_ OP*);
 typedef void(*Perl_ophook_t)(pTHX_ OP*);
 typedef int (*Perl_keyword_plugin_t)(pTHX_ char*, STRLEN, OP**);
+typedef STRLEN (*Perl_infix_plugin_t)(pTHX_ char*, STRLEN, struct Perl_custom_infix **);
 typedef void(*Perl_cpeep_t)(pTHX_ OP *, OP *);
 
 typedef void(*globhook_t)(pTHX);
@@ -5908,19 +6298,19 @@ EXTCONST U8 PL_magic_data[256];
 #endif
 
 #ifdef DOINIT
-                        /* NL IV NV PV INV PI PN MG RX GV LV AV HV CV FM IO */
+                        /* NL IV NV PV INV PI PN MG RX GV LV AV HV CV FM IO OBJ */
 EXTCONST bool
-PL_valid_types_IVX[]    = { 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 };
+PL_valid_types_IVX[]    = { 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 };
 EXTCONST bool
-PL_valid_types_NVX[]    = { 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 };
+PL_valid_types_NVX[]    = { 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 };
 EXTCONST bool
-PL_valid_types_PVX[]    = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 };
+PL_valid_types_PVX[]    = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 };
 EXTCONST bool
-PL_valid_types_RV[]     = { 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 };
+PL_valid_types_RV[]     = { 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0 };
 EXTCONST bool
-PL_valid_types_IV_set[] = { 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1 };
+PL_valid_types_IV_set[] = { 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0 };
 EXTCONST bool
-PL_valid_types_NV_set[] = { 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
+PL_valid_types_NV_set[] = { 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
 
 EXTCONST U8
 PL_deBruijn_bitpos_tab32[] = {
@@ -5972,6 +6362,24 @@ EXTCONST U8   PL_deBruijn_bitpos_tab64[]
 #  define PERL_SET_CONTEXT(i)		PERL_SET_INTERP(i)
 #endif
 
+#ifdef USE_PERL_SWITCH_LOCALE_CONTEXT
+#  define PERL_SET_LOCALE_CONTEXT(i)                                        \
+      STMT_START {                                                          \
+          if (UNLIKELY(PL_veto_switch_non_tTHX_context))                    \
+                Perl_switch_locale_context();                               \
+      } STMT_END
+#else
+#  define PERL_SET_LOCALE_CONTEXT(i)  NOOP
+#endif
+
+/* In some Configurations there may be per-thread information that is carried
+ * in a library instead of perl's tTHX structure.  This macro is to be used to
+ * handle those when tTHX is changed.  Only locale handling is currently known
+ * to be affected. */
+#define PERL_SET_NON_tTHX_CONTEXT(i)                                        \
+                        STMT_START { PERL_SET_LOCALE_CONTEXT(i); } STMT_END
+
+
 #ifndef PERL_GET_CONTEXT
 #  define PERL_GET_CONTEXT		PERL_GET_INTERP
 #endif
@@ -6609,14 +7017,14 @@ the plain locale pragma without a parame
       * instead it makes sense to minimize space used and do all the work in
       * the rarely called function */
 #    ifdef USE_LOCALE_CTYPE
-#      define _CHECK_AND_WARN_PROBLEMATIC_LOCALE                              \
+#      define CHECK_AND_WARN_PROBLEMATIC_LOCALE_                              \
                 STMT_START {                                                  \
                     if (UNLIKELY(PL_warn_locale)) {                           \
                         Perl__warn_problematic_locale();                      \
                     }                                                         \
                 }  STMT_END
 #    else
-#      define _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+#      define CHECK_AND_WARN_PROBLEMATIC_LOCALE_
 #    endif
 
 
@@ -6626,7 +7034,7 @@ the plain locale pragma without a parame
       * string, and an end position which it won't try to read past */
 #    define _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(cp)                        \
         STMT_START {                                                        \
-            if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) {         \
+            if (! IN_UTF8_CTYPE_LOCALE && ckWARN(WARN_LOCALE)) {            \
                 Perl_warner(aTHX_ packWARN(WARN_LOCALE),                    \
                                        "Wide character (U+%" UVXf ") in %s",\
                                        (UV) cp, OP_DESC(PL_op));            \
@@ -6635,7 +7043,7 @@ the plain locale pragma without a parame
 
 #    define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(s, send)                 \
         STMT_START { /* Check if to warn before doing the conversion work */\
-            if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) {         \
+            if (! IN_UTF8_CTYPE_LOCALE && ckWARN(WARN_LOCALE)) {            \
                 UV cp = utf8_to_uvchr_buf((U8 *) (s), (U8 *) (send), NULL); \
                 Perl_warner(aTHX_ packWARN(WARN_LOCALE),                    \
                     "Wide character (U+%" UVXf ") in %s",                   \
@@ -6661,207 +7069,99 @@ the plain locale pragma without a parame
 #  define IN_LC_COMPILETIME(category)      0
 #  define IN_LC_RUNTIME(category)          0
 #  define IN_LC(category)                  0
-#  define _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+#  define CHECK_AND_WARN_PROBLEMATIC_LOCALE_
 #  define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(s, send)
 #  define _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(c)
 #endif
 
+#define locale_panic_(m)  Perl_locale_panic((m), __FILE__, __LINE__, errno)
 
 /* Locale/thread synchronization macros. */
-#if ! (   defined(USE_LOCALE)                                               \
-       &&    defined(USE_ITHREADS)                                          \
-       && (  ! defined(USE_THREAD_SAFE_LOCALE)                              \
-           || (   defined(HAS_LOCALECONV)                                   \
-               && (  ! defined(HAS_LOCALECONV_L)                            \
-                   ||  defined(TS_W32_BROKEN_LOCALECONV)))                  \
-           || (   defined(HAS_NL_LANGINFO)                                  \
-               && ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L))                 \
-           || (defined(HAS_MBLEN)  && ! defined(HAS_MBRLEN))                \
-           || (defined(HAS_MBTOWC) && ! defined(HAS_MBRTOWC))               \
-           || (defined(HAS_WCTOMB) && ! defined(HAS_WCRTOMB))))
-
-/* The whole expression just above was complemented, so here we have no need
- * for thread synchronization, most likely it would be that this isn't a
- * threaded build. */
+#if ! defined(USE_LOCALE) || ! defined(USE_LOCALE_THREADS)
+#  define LOCALE_LOCK_(cond)  NOOP
+#  define LOCALE_UNLOCK_      NOOP
 #  define LOCALE_INIT
 #  define LOCALE_TERM
-#  define LC_NUMERIC_LOCK(cond)     NOOP
-#  define LC_NUMERIC_UNLOCK         NOOP
-#  define LOCALECONV_LOCK           NOOP
-#  define LOCALECONV_UNLOCK         NOOP
-#  define LOCALE_READ_LOCK          NOOP
-#  define LOCALE_READ_UNLOCK        NOOP
-#  define MBLEN_LOCK                NOOP
-#  define MBLEN_UNLOCK              NOOP
-#  define MBTOWC_LOCK               NOOP
-#  define MBTOWC_UNLOCK             NOOP
-#  define NL_LANGINFO_LOCK          NOOP
-#  define NL_LANGINFO_UNLOCK        NOOP
-#  define SETLOCALE_LOCK            NOOP
-#  define SETLOCALE_UNLOCK          NOOP
-#  define WCTOMB_LOCK               NOOP
-#  define WCTOMB_UNLOCK             NOOP
-#else
-
-   /* Here, we will need critical sections in locale handling, because one or
-    * more of the above conditions are true.  This could be because the
-    * platform doesn't have thread-safe locales, or that at least one of the
-    * locale-dependent functions in the core isn't thread-safe.  The latter
-    * case is generally because they return a pointer to a static buffer, which
-    * may be per-process instead of per-thread.  There are supposedly
-    * re-entrant, safe versions for all of them Perl currently uses (which the
-    * #if above checks for), but most platforms don't have all the needed ones
-    * available, and the Posix standard doesn't require nl_langinfo_l() to be
-    * fully thread-safe, so a Configure probe was written.  localeconv_l() is
-    * uncommon, and judging by bug reports on the web, some earlier library
-    * localeconv_l versions were broken, so perhaps a probe is in order for
-    * that, but it would be a pain to write.
-    *
-    * On non-thread-safe systems, some of the above functions are vulnerable to
-    * races should another thread get control and change the locale in the
-    * middle of their execution.
-    *
-    * We currently use a single mutex for all these cases.  This solves both
-    * the problem of another thread changing the locale, and the buffer being
-    * overwritten (the code copies the results to a safe place before releasing
-    * the mutex).  Ideally, for locale thread-safe platforms where the only
-    * issue is another thread clobbering the function's static buffer, there
-    * would be a separate mutex for each such buffer.  Otherwise, things get
-    * locked that don't need to.  But, it is not expected that any of these
-    * will be called frequently, and the locked interval should be short, and
-    * modern platforms will have reentrant versions (which don't lock) for
-    * almost all of them, so khw thinks a single mutex should suffice. */
-#  define LOCALE_LOCK_                                                      \
-        STMT_START {                                                        \
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log,                          \
-                    "%s: %d: locking locale\n", __FILE__, __LINE__));       \
-            MUTEX_LOCK(&PL_locale_mutex);                                   \
-        } STMT_END
-#  define LOCALE_UNLOCK_                                                    \
-        STMT_START {                                                        \
-            DEBUG_Lv(PerlIO_printf(Perl_debug_log,                          \
-                   "%s: %d: unlocking locale\n", __FILE__, __LINE__));      \
-            MUTEX_UNLOCK(&PL_locale_mutex);                                 \
-        } STMT_END
 
-   /* We do define a different macro for each case; then if we want to have
-    * separate mutexes for some of them, the only changes needed are here.
-    * Define just the necessary macros.  The compiler should then croak if the
-    * #ifdef's in the code are incorrect */
-#  if defined(HAS_LOCALECONV) && (  ! defined(HAS_POSIX_2008_LOCALE)        \
-                                 || ! defined(HAS_LOCALECONV_L)             \
-                                 ||   defined(TS_W32_BROKEN_LOCALECONV))
-#    define LOCALECONV_LOCK   LOCALE_LOCK_
-#    define LOCALECONV_UNLOCK LOCALE_UNLOCK_
-#  endif
-#  if defined(HAS_NL_LANGINFO) && (   ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L) \
-                                   || ! defined(HAS_POSIX_2008_LOCALE))
-#    define NL_LANGINFO_LOCK   LOCALE_LOCK_
-#    define NL_LANGINFO_UNLOCK LOCALE_UNLOCK_
-#  endif
-#  if defined(HAS_MBLEN) && ! defined(HAS_MBRLEN)
-#    define MBLEN_LOCK   LOCALE_LOCK_
-#    define MBLEN_UNLOCK LOCALE_UNLOCK_
-#  endif
-#  if defined(HAS_MBTOWC) && ! defined(HAS_MBRTOWC)
-#    define MBTOWC_LOCK   LOCALE_LOCK_
-#    define MBTOWC_UNLOCK LOCALE_UNLOCK_
-#  endif
-#  if defined(HAS_WCTOMB) && ! defined(HAS_WCRTOMB)
-#    define WCTOMB_LOCK   LOCALE_LOCK_
-#    define WCTOMB_UNLOCK LOCALE_UNLOCK_
-#  endif
-#  if defined(USE_THREAD_SAFE_LOCALE)
-     /* On locale thread-safe systems, we don't need these workarounds */
-#    define LOCALE_TERM_LC_NUMERIC_   NOOP
-#    define LOCALE_INIT_LC_NUMERIC_   NOOP
-#    define LC_NUMERIC_LOCK(cond)   NOOP
-#    define LC_NUMERIC_UNLOCK       NOOP
-#    define LOCALE_INIT_LC_NUMERIC_ NOOP
-#    define LOCALE_TERM_LC_NUMERIC_ NOOP
-
-     /* There may be instance core where we this is invoked yet should do
-      * nothing.  Rather than have #ifdef's around them, define it here */
-#    define SETLOCALE_LOCK    NOOP
-#    define SETLOCALE_UNLOCK  NOOP
-#  else
-#    define SETLOCALE_LOCK   LOCALE_LOCK_
-#    define SETLOCALE_UNLOCK LOCALE_UNLOCK_
+#else   /* Below: Threaded, and locales are supported */
 
-    /* On platforms without per-thread locales, when another thread can switch
-     * our locale, we need another mutex to create critical sections where we
-     * want the LC_NUMERIC locale to be locked into either the C (standard)
-     * locale, or the underlying locale, so that other threads interrupting
-     * this one don't change it to the wrong state before we've had a chance to
-     * complete our operation.  It can stay locked over an entire printf
-     * operation, for example.  And so is made distinct from the LOCALE_LOCK
-     * mutex.
+    /* A locale mutex is required on all such threaded builds.
      *
-     * This simulates kind of a general semaphore.  The current thread will
-     * lock the mutex if the per-thread variable is zero, and then increments
-     * that variable.  Each corresponding UNLOCK decrements the variable until
-     * it is 0, at which point it actually unlocks the mutex.  Since the
-     * variable is per-thread, there is no race with other threads.
+     * This mutex simulates a general (or recursive) semaphore.  The current
+     * thread will lock the mutex if the per-thread variable is zero, and then
+     * increments that variable.  Each corresponding UNLOCK decrements the
+     * variable until it is 0, at which point it actually unlocks the mutex.
+     * Since the variable is per-thread, initialized to 0, there is no race
+     * with other threads.
      *
-     * The single argument is a condition to test for, and if true, to panic,
-     * as this would be an attempt to complement the LC_NUMERIC state, and
-     * we're not supposed to because it's locked.
+     * The single argument is a condition to test for, and if true, to panic.
+     * Call it with the constant 0 to suppress the check.
      *
      * Clang improperly gives warnings for this, if not silenced:
      * https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#conditional-locks
-     *
-     * If LC_NUMERIC_LOCK is combined with one of the LOCKs above, calls to
-     * that and its corresponding unlock should be contained entirely within
-     * the locked portion of LC_NUMERIC.  Those mutexes should be used only in
-     * very short sections of code, while LC_NUMERIC_LOCK may span more
-     * operations.  By always following this convention, deadlock should be
-     * impossible.  But if necessary, the two mutexes could be combined. */
-#    define LC_NUMERIC_LOCK(cond_to_panic_if_already_locked)                \
-        CLANG_DIAG_IGNORE(-Wthread-safety)	     	                    \
+     */
+#  define LOCALE_LOCK_(cond_to_panic_if_already_locked)                     \
         STMT_START {                                                        \
-            if (PL_lc_numeric_mutex_depth <= 0) {                           \
-                MUTEX_LOCK(&PL_lc_numeric_mutex);                           \
-                PL_lc_numeric_mutex_depth = 1;                              \
+            CLANG_DIAG_IGNORE(-Wthread-safety)	     	                    \
+            if (LIKELY(PL_locale_mutex_depth <= 0)) {                       \
                 DEBUG_Lv(PerlIO_printf(Perl_debug_log,                      \
-                         "%s: %d: locking lc_numeric; depth=1\n",           \
+                         "%s: %d: locking locale; depth=1\n",               \
                          __FILE__, __LINE__));                              \
+                MUTEX_LOCK(&PL_locale_mutex);                               \
+                PL_locale_mutex_depth = 1;                                  \
             }                                                               \
             else {                                                          \
-                PL_lc_numeric_mutex_depth++;                                \
+                PL_locale_mutex_depth++;                                    \
                 DEBUG_Lv(PerlIO_printf(Perl_debug_log,                      \
-                        "%s: %d: avoided lc_numeric_lock; new depth=%d\n",  \
-                        __FILE__, __LINE__, PL_lc_numeric_mutex_depth));    \
+                        "%s: %d: avoided locking locale; new depth=%d\n",   \
+                        __FILE__, __LINE__, PL_locale_mutex_depth));        \
                 if (cond_to_panic_if_already_locked) {                      \
-                    Perl_croak_nocontext("panic: %s: %d: Trying to change"  \
-                                         " LC_NUMERIC incompatibly",        \
-                                         __FILE__, __LINE__);               \
+                    locale_panic_("Trying to lock locale incompatibly: "    \
+                         STRINGIFY(cond_to_panic_if_already_locked));       \
                 }                                                           \
             }                                                               \
+            CLANG_DIAG_RESTORE                                              \
         } STMT_END
 
-#    define LC_NUMERIC_UNLOCK                                               \
+#  define LOCALE_UNLOCK_                                                    \
         STMT_START {                                                        \
-            if (PL_lc_numeric_mutex_depth <= 1) {                           \
-                MUTEX_UNLOCK(&PL_lc_numeric_mutex);                         \
-                PL_lc_numeric_mutex_depth = 0;                              \
+            if (LIKELY(PL_locale_mutex_depth == 1)) {                       \
                 DEBUG_Lv(PerlIO_printf(Perl_debug_log,                      \
-                         "%s: %d: unlocking lc_numeric; depth=0\n",         \
+                         "%s: %d: unlocking locale; new depth=0\n",         \
                          __FILE__, __LINE__));                              \
+                PL_locale_mutex_depth = 0;                                  \
+                MUTEX_UNLOCK(&PL_locale_mutex);                             \
+            }                                                               \
+            else if (PL_locale_mutex_depth <= 0) {                          \
+                DEBUG_L(PerlIO_printf(Perl_debug_log,                       \
+                        "%s: %d: ignored attempt to unlock already"         \
+                        " unlocked locale; depth unchanged at %d\n",        \
+                       __FILE__, __LINE__, PL_locale_mutex_depth));         \
             }                                                               \
             else {                                                          \
-                PL_lc_numeric_mutex_depth--;                                \
+                PL_locale_mutex_depth--;                                    \
                 DEBUG_Lv(PerlIO_printf(Perl_debug_log,                      \
-                        "%s: %d: avoided lc_numeric_unlock; new depth=%d\n",\
-                        __FILE__, __LINE__, PL_lc_numeric_mutex_depth));    \
+                        "%s: %d: avoided unlocking locale; new depth=%d\n", \
+                        __FILE__, __LINE__, PL_locale_mutex_depth));        \
             }                                                               \
-        } STMT_END                                                          \
-        CLANG_DIAG_RESTORE
+        } STMT_END
 
-#    define LOCALE_INIT_LC_NUMERIC_   MUTEX_INIT(&PL_lc_numeric_mutex)
-#    define LOCALE_TERM_LC_NUMERIC_   MUTEX_DESTROY(&PL_lc_numeric_mutex)
+#  if defined(USE_THREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
+
+     /* By definition, a thread-unsafe locale means we need a critical
+      * section. */
+#    define SETLOCALE_LOCK   LOCALE_LOCK_(0)
+#    define SETLOCALE_UNLOCK LOCALE_UNLOCK_
+#    ifdef USE_LOCALE_NUMERIC
+#      define LC_NUMERIC_LOCK(cond_to_panic_if_already_locked)              \
+                 LOCALE_LOCK_(cond_to_panic_if_already_locked)
+#      define LC_NUMERIC_UNLOCK  LOCALE_UNLOCK_
+#    endif
 #  endif
 
-#  ifdef USE_POSIX_2008_LOCALE
+#  ifndef USE_POSIX_2008_LOCALE
+#    define LOCALE_TERM_POSIX_2008_  NOOP
+#  else
      /* We have a locale object holding the 'C' locale for Posix 2008 */
 #    define LOCALE_TERM_POSIX_2008_                                         \
                     STMT_START {                                            \
@@ -6873,22 +7173,131 @@ the plain locale pragma without a parame
                             PL_C_locale_obj = (locale_t) NULL;              \
                         }                                                   \
                     } STMT_END
-#  else
-#    define LOCALE_TERM_POSIX_2008_  NOOP
 #  endif
 
-#  define LOCALE_INIT           STMT_START {                                \
-                                    MUTEX_INIT(&PL_locale_mutex);           \
-                                    LOCALE_INIT_LC_NUMERIC_;                \
-                                } STMT_END
-
+#  define LOCALE_INIT           MUTEX_INIT(&PL_locale_mutex)
 #  define LOCALE_TERM           STMT_START {                                \
-                                    MUTEX_DESTROY(&PL_locale_mutex);        \
-                                    LOCALE_TERM_LC_NUMERIC_;                \
                                     LOCALE_TERM_POSIX_2008_;                \
+                                    MUTEX_DESTROY(&PL_locale_mutex);        \
                                 } STMT_END
 #endif
 
+/* There are some locale-related functions which may need locking only because
+ * they share some common memory across threads, and hence there is the
+ * potential for a race in accessing that space.  Most are because their return
+ * points to a global static buffer, but some just use some common space
+ * internally.  All functions accessing a given space need to have a critical
+ * section to prevent any other thread from accessing it at the same time.
+ * Ideally, there would be a separate mutex for each such space, so that
+ * another thread isn't unnecessarily blocked.  But, most of them need to be
+ * locked against the locale changing while accessing that space, and it is not
+ * expected that any will be called frequently, and the locked interval should
+ * be short, and modern platforms will have reentrant versions (which don't
+ * lock) for almost all of them, so khw thinks a single mutex should suffice.
+ * Having a single mutex facilitates that, avoiding potential deadlock
+ * situations.
+ *
+ * This will be a no-op iff the perl is unthreaded. 'gw' stands for 'global
+ * write', to indicate the caller wants to be able to access memory that isn't
+ * thread specific, either to write to itself, or to prevent anyone else from
+ * writing. */
+#define gwLOCALE_LOCK    LOCALE_LOCK_(0)
+#define gwLOCALE_UNLOCK  LOCALE_UNLOCK_
+
+/* setlocale() generally returns in a global static buffer, but not on Windows
+ * when operating in thread-safe mode */
+#if defined(WIN32) && defined(USE_THREAD_SAFE_LOCALE)
+#  define POSIX_SETLOCALE_LOCK                                              \
+            STMT_START {                                                    \
+                if (_configthreadlocale(0) == _DISABLE_PER_THREAD_LOCALE)   \
+                    gwLOCALE_LOCK;                                          \
+            } STMT_END
+#  define POSIX_SETLOCALE_UNLOCK                                            \
+            STMT_START {                                                    \
+                if (_configthreadlocale(0) == _DISABLE_PER_THREAD_LOCALE)   \
+                    gwLOCALE_UNLOCK;                                        \
+            } STMT_END
+#else
+#  define POSIX_SETLOCALE_LOCK      gwLOCALE_LOCK
+#  define POSIX_SETLOCALE_UNLOCK    gwLOCALE_UNLOCK
+#endif
+
+/* It handles _wsetlocale() as well */
+#define WSETLOCALE_LOCK      POSIX_SETLOCALE_LOCK
+#define WSETLOCALE_UNLOCK    POSIX_SETLOCALE_UNLOCK
+
+/* Similar to gwLOCALE_LOCK, there are functions that require both the locale
+ * and environment to be constant during their execution, and don't change
+ * either of those things, but do write to some sort of shared global space.
+ * They require some sort of exclusive lock against similar functions, and a
+ * read lock on both the locale and environment.  However, on systems which
+ * have per-thread locales, the locale is constant during the execution of
+ * these functions, and so no locale lock is necssary.  For such systems, an
+ * exclusive ENV lock is necessary and sufficient.  On systems where the locale
+ * could change out from under us, we use an exclusive LOCALE lock to prevent
+ * that, and a read ENV lock to prevent other threads that have nothing to do
+ * with locales here from changing the environment. */
+#ifdef SETLOCALE_LOCK
+#  define gwENVr_LOCALEr_LOCK                                               \
+                    STMT_START { SETLOCALE_LOCK; ENV_READ_LOCK; } STMT_END
+#  define gwENVr_LOCALEr_UNLOCK                                             \
+                STMT_START { ENV_READ_UNLOCK; SETLOCALE_UNLOCK; } STMT_END
+#else
+#  define gwENVr_LOCALEr_LOCK           ENV_LOCK
+#  define gwENVr_LOCALEr_UNLOCK         ENV_UNLOCK
+#endif
+
+/* Now that we have defined gwENVr_LOCALEr_LOCK, we can finish defining
+ * SETLOCALE_LOCK, which we kept undefined until here on a thread-safe system
+ * so that we could use that fact to calculate what gwENVr_LOCALEr_LOCK should
+ * be */
+#ifndef SETLOCALE_LOCK
+#  define SETLOCALE_LOCK                NOOP
+#  define SETLOCALE_UNLOCK              NOOP
+#endif
+
+
+      /* On systems that don't have per-thread locales, even though we don't
+       * think we are changing the locale ourselves, behind the scenes it does
+       * get changed to whatever the thread's should be, so it has to be an
+       * exclusive lock.  By defining it here with this name, we can, for the
+       * most part, hide this detail from the rest of the code */
+/* Currently, the read lock is an exclusive lock */
+#define LOCALE_READ_LOCK                SETLOCALE_LOCK
+#define LOCALE_READ_UNLOCK              SETLOCALE_UNLOCK
+
+
+#ifndef LC_NUMERIC_LOCK
+#  define LC_NUMERIC_LOCK(cond)   NOOP
+#  define LC_NUMERIC_UNLOCK       NOOP
+#endif
+
+   /* These non-reentrant versions use global space */
+#  define MBLEN_LOCK_                gwLOCALE_LOCK
+#  define MBLEN_UNLOCK_              gwLOCALE_UNLOCK
+
+#  define MBTOWC_LOCK_               gwLOCALE_LOCK
+#  define MBTOWC_UNLOCK_             gwLOCALE_UNLOCK
+
+#  define WCTOMB_LOCK_               gwLOCALE_LOCK
+#  define WCTOMB_UNLOCK_             gwLOCALE_UNLOCK
+
+   /* Whereas the reentrant versions don't (assuming they are called with a
+    * per-thread buffer; some have the capability of being called with a NULL
+    * parameter, which defeats the reentrancy) */
+#  define MBRLEN_LOCK_                  NOOP
+#  define MBRLEN_UNLOCK_                NOOP
+#  define MBRTOWC_LOCK_                 NOOP
+#  define MBRTOWC_UNLOCK_               NOOP
+#  define WCRTOMB_LOCK_                 NOOP
+#  define WCRTOMB_UNLOCK_               NOOP
+
+#  define LC_COLLATE_LOCK               SETLOCALE_LOCK
+#  define LC_COLLATE_UNLOCK             SETLOCALE_UNLOCK
+
+#  define STRFTIME_LOCK                 ENV_LOCK
+#  define STRFTIME_UNLOCK               ENV_UNLOCK
+
 #ifdef USE_LOCALE_NUMERIC
 
 /* These macros are for toggling between the underlying locale (UNDERLYING or
@@ -7045,12 +7454,12 @@ cannot have changed since the precalcula
  * khw believes the reason for the variables instead of the bits in a single
  * word is to avoid having to have masking instructions. */
 
-#  define _NOT_IN_NUMERIC_STANDARD (! PL_numeric_standard)
+#  define NOT_IN_NUMERIC_STANDARD_ (! PL_numeric_standard)
 
 /* We can lock the category to stay in the C locale, making requests to the
  * contrary be noops, in the dynamic scope by setting PL_numeric_standard to 2.
  * */
-#  define _NOT_IN_NUMERIC_UNDERLYING                                        \
+#  define NOT_IN_NUMERIC_UNDERLYING_                                        \
                     (! PL_numeric_underlying && PL_numeric_standard < 2)
 
 #  define DECLARATION_FOR_LC_NUMERIC_MANIPULATION                           \
@@ -7060,17 +7469,17 @@ cannot have changed since the precalcula
         STMT_START {                                                        \
             bool _in_lc_numeric = (in);                                     \
             LC_NUMERIC_LOCK(                                                \
-                    (   (  _in_lc_numeric && _NOT_IN_NUMERIC_UNDERLYING)    \
-                     || (! _in_lc_numeric && _NOT_IN_NUMERIC_STANDARD)));   \
+                    (   (  _in_lc_numeric && NOT_IN_NUMERIC_UNDERLYING_)    \
+                     || (! _in_lc_numeric && NOT_IN_NUMERIC_STANDARD_)));   \
             if (_in_lc_numeric) {                                           \
-                if (_NOT_IN_NUMERIC_UNDERLYING) {                           \
+                if (NOT_IN_NUMERIC_UNDERLYING_) {                           \
                     Perl_set_numeric_underlying(aTHX);                      \
                     _restore_LC_NUMERIC_function                            \
                                             = &Perl_set_numeric_standard;   \
                 }                                                           \
             }                                                               \
             else {                                                          \
-                if (_NOT_IN_NUMERIC_STANDARD) {                             \
+                if (NOT_IN_NUMERIC_STANDARD_) {                             \
                     Perl_set_numeric_standard(aTHX);                        \
                     _restore_LC_NUMERIC_function                            \
                                             = &Perl_set_numeric_underlying; \
@@ -7089,22 +7498,25 @@ cannot have changed since the precalcula
             LC_NUMERIC_UNLOCK;                                              \
         } STMT_END
 
-/* The next two macros set unconditionally.  These should be rarely used, and
- * only after being sure that this is what is needed */
+/* The next two macros should be rarely used, and only after being sure that
+ * this is what is needed */
 #  define SET_NUMERIC_STANDARD()                                            \
         STMT_START {                                                        \
             DEBUG_Lv(PerlIO_printf(Perl_debug_log,                          \
                                "%s: %d: lc_numeric standard=%d\n",          \
                                 __FILE__, __LINE__, PL_numeric_standard));  \
-            Perl_set_numeric_standard(aTHX);                                \
+            if (UNLIKELY(NOT_IN_NUMERIC_STANDARD_)) {                       \
+                Perl_set_numeric_standard(aTHX);                            \
+            }                                                               \
             DEBUG_Lv(PerlIO_printf(Perl_debug_log,                          \
                                  "%s: %d: lc_numeric standard=%d\n",        \
                                  __FILE__, __LINE__, PL_numeric_standard)); \
         } STMT_END
 
 #  define SET_NUMERIC_UNDERLYING()                                          \
-        STMT_START {                                                        \
-            if (_NOT_IN_NUMERIC_UNDERLYING) {                               \
+	STMT_START {                                                        \
+          /*assert(PL_locale_mutex_depth > 0);*/                            \
+            if (NOT_IN_NUMERIC_UNDERLYING_) {                               \
                 Perl_set_numeric_underlying(aTHX);                          \
             }                                                               \
         } STMT_END
@@ -7113,8 +7525,8 @@ cannot have changed since the precalcula
  * the RESTORE_foo ones called to switch back, but only if need be */
 #  define STORE_LC_NUMERIC_SET_STANDARD()                                   \
         STMT_START {                                                        \
-            LC_NUMERIC_LOCK(_NOT_IN_NUMERIC_STANDARD);                      \
-            if (_NOT_IN_NUMERIC_STANDARD) {                                 \
+            LC_NUMERIC_LOCK(NOT_IN_NUMERIC_STANDARD_);                      \
+            if (NOT_IN_NUMERIC_STANDARD_) {                                 \
                 _restore_LC_NUMERIC_function = &Perl_set_numeric_underlying;\
                 Perl_set_numeric_standard(aTHX);                            \
             }                                                               \
@@ -7123,9 +7535,9 @@ cannot have changed since the precalcula
 /* Rarely, we want to change to the underlying locale even outside of 'use
  * locale'.  This is principally in the POSIX:: functions */
 #  define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()                            \
-        STMT_START {                                                        \
-            LC_NUMERIC_LOCK(_NOT_IN_NUMERIC_UNDERLYING);                    \
-            if (_NOT_IN_NUMERIC_UNDERLYING) {                               \
+	STMT_START {                                                        \
+            LC_NUMERIC_LOCK(NOT_IN_NUMERIC_UNDERLYING_);                    \
+            if (NOT_IN_NUMERIC_UNDERLYING_) {                               \
                 Perl_set_numeric_underlying(aTHX);                          \
                 _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;  \
             }                                                               \
@@ -7191,7 +7603,7 @@ cannot have changed since the precalcula
 
 #endif /* !USE_LOCALE_NUMERIC */
 
-#ifdef USE_ITHREADS
+#ifdef USE_LOCALE_THREADS
 #  define ENV_LOCK            PERL_WRITE_LOCK(&PL_env_mutex)
 #  define ENV_UNLOCK          PERL_WRITE_UNLOCK(&PL_env_mutex)
 #  define ENV_READ_LOCK       PERL_READ_LOCK(&PL_env_mutex)
@@ -7224,6 +7636,162 @@ cannot have changed since the precalcula
 #  define GETENV_UNLOCK   NOOP
 #endif
 
+/* Some critical sections need to lock both the locale and the environment from
+ * changing, while allowing for any number of readers.  To avoid deadlock, this
+ * is always done in the same order.  These should always be invoked, like all
+ * locks really, at such a low level that its just a libc call that is wrapped,
+ * so as to prevent recursive calls which could deadlock. */
+#define ENVr_LOCALEr_LOCK                                               \
+            STMT_START { LOCALE_READ_LOCK; ENV_READ_LOCK; } STMT_END
+#define ENVr_LOCALEr_UNLOCK                                             \
+        STMT_START { ENV_READ_UNLOCK; LOCALE_READ_UNLOCK; } STMT_END
+
+/* These time-related functions all requre that the environment and locale
+ * don't change while they are executing (at least in glibc; this appears to be
+ * contrary to the POSIX standard).  tzset() writes global variables, so
+ * always needs to have write locking.  ctime, localtime, mktime, and strftime
+ * effectively call it, so they too need exclusive access.  The rest need to
+ * have exclusive locking as well so that they can copy the contents of the
+ * returned static buffer before releasing the lock.  That leaves asctime and
+ * gmtime.  There may be reentrant versions of these available on the platform
+ * which don't require write locking.
+ */
+#ifdef PERL_REENTR_USING_ASCTIME_R
+#  define ASCTIME_LOCK     ENVr_LOCALEr_LOCK
+#  define ASCTIME_UNLOCK   ENVr_LOCALEr_UNLOCK
+#else
+#  define ASCTIME_LOCK     gwENVr_LOCALEr_LOCK
+#  define ASCTIME_UNLOCK   gwENVr_LOCALEr_UNLOCK
+#endif
+
+#define CTIME_LOCK         gwENVr_LOCALEr_LOCK
+#define CTIME_UNLOCK       gwENVr_LOCALEr_UNLOCK
+
+#ifdef PERL_REENTR_USING_GMTIME_R
+#  define GMTIME_LOCK      ENVr_LOCALEr_LOCK
+#  define GMTIME_UNLOCK    ENVr_LOCALEr_UNLOCK
+#else
+#  define GMTIME_LOCK      gwENVr_LOCALEr_LOCK
+#  define GMTIME_UNLOCK    gwENVr_LOCALEr_UNLOCK
+#endif
+
+#define LOCALTIME_LOCK     gwENVr_LOCALEr_LOCK
+#define LOCALTIME_UNLOCK   gwENVr_LOCALEr_UNLOCK
+#define MKTIME_LOCK        gwENVr_LOCALEr_LOCK
+#define MKTIME_UNLOCK      gwENVr_LOCALEr_UNLOCK
+#define TZSET_LOCK         gwENVr_LOCALEr_LOCK
+#define TZSET_UNLOCK       gwENVr_LOCALEr_UNLOCK
+
+/* Similiarly, these functions need a constant environment and/or locale.  And
+ * some have a buffer that is shared with another thread executing the same or
+ * a related call.  A mutex could be created for each class, but for now, share
+ * the ENV mutex with everything, as none probably gets called so much that
+ * performance would suffer by a thread being locked out by another thread that
+ * could have used a different mutex.
+ *
+ * But, create a different macro name just to indicate the ones that don't
+ * actually depend on the environment, but are using its mutex for want of a
+ * better one */
+#define gwLOCALEr_LOCK              gwENVr_LOCALEr_LOCK
+#define gwLOCALEr_UNLOCK            gwENVr_LOCALEr_UNLOCK
+
+#ifdef PERL_REENTR_USING_GETHOSTBYADDR_R
+#  define GETHOSTBYADDR_LOCK        ENVr_LOCALEr_LOCK
+#  define GETHOSTBYADDR_UNLOCK      ENVr_LOCALEr_UNLOCK
+#else
+#  define GETHOSTBYADDR_LOCK        gwENVr_LOCALEr_LOCK
+#  define GETHOSTBYADDR_UNLOCK      gwENVr_LOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETHOSTBYNAME_R
+#  define GETHOSTBYNAME_LOCK        ENVr_LOCALEr_LOCK
+#  define GETHOSTBYNAME_UNLOCK      ENVr_LOCALEr_UNLOCK
+#else
+#  define GETHOSTBYNAME_LOCK        gwENVr_LOCALEr_LOCK
+#  define GETHOSTBYNAME_UNLOCK      gwENVr_LOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETNETBYADDR_R
+#  define GETNETBYADDR_LOCK         LOCALE_READ_LOCK
+#  define GETNETBYADDR_UNLOCK       LOCALE_READ_UNLOCK
+#else
+#  define GETNETBYADDR_LOCK         gwLOCALEr_LOCK
+#  define GETNETBYADDR_UNLOCK       gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETNETBYNAME_R
+#  define GETNETBYNAME_LOCK         LOCALE_READ_LOCK
+#  define GETNETBYNAME_UNLOCK       LOCALE_READ_UNLOCK
+#else
+#  define GETNETBYNAME_LOCK         gwLOCALEr_LOCK
+#  define GETNETBYNAME_UNLOCK       gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPROTOBYNAME_R
+#  define GETPROTOBYNAME_LOCK       LOCALE_READ_LOCK
+#  define GETPROTOBYNAME_UNLOCK     LOCALE_READ_UNLOCK
+#else
+#  define GETPROTOBYNAME_LOCK       gwLOCALEr_LOCK
+#  define GETPROTOBYNAME_UNLOCK     gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPROTOBYNUMBER_R
+#  define GETPROTOBYNUMBER_LOCK     LOCALE_READ_LOCK
+#  define GETPROTOBYNUMBER_UNLOCK   LOCALE_READ_UNLOCK
+#else
+#  define GETPROTOBYNUMBER_LOCK     gwLOCALEr_LOCK
+#  define GETPROTOBYNUMBER_UNLOCK   gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPROTOENT_R
+#  define GETPROTOENT_LOCK          LOCALE_READ_LOCK
+#  define GETPROTOENT_UNLOCK        LOCALE_READ_UNLOCK
+#else
+#  define GETPROTOENT_LOCK          gwLOCALEr_LOCK
+#  define GETPROTOENT_UNLOCK        gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPWNAM_R
+#  define GETPWNAM_LOCK             LOCALE_READ_LOCK
+#  define GETPWNAM_UNLOCK           LOCALE_READ_UNLOCK
+#else
+#  define GETPWNAM_LOCK             gwLOCALEr_LOCK
+#  define GETPWNAM_UNLOCK           gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETPWUID_R
+#  define GETPWUID_LOCK             LOCALE_READ_LOCK
+#  define GETPWUID_UNLOCK           LOCALE_READ_UNLOCK
+#else
+#  define GETPWUID_LOCK             gwLOCALEr_LOCK
+#  define GETPWUID_UNLOCK           gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSERVBYNAME_R
+#  define GETSERVBYNAME_LOCK        LOCALE_READ_LOCK
+#  define GETSERVBYNAME_UNLOCK      LOCALE_READ_UNLOCK
+#else
+#  define GETSERVBYNAME_LOCK        gwLOCALEr_LOCK
+#  define GETSERVBYNAME_UNLOCK      gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSERVBYPORT_R
+#  define GETSERVBYPORT_LOCK        LOCALE_READ_LOCK
+#  define GETSERVBYPORT_UNLOCK      LOCALE_READ_UNLOCK
+#else
+#  define GETSERVBYPORT_LOCK        gwLOCALEr_LOCK
+#  define GETSERVBYPORT_UNLOCK      gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSERVENT_R
+#  define GETSERVENT_LOCK           LOCALE_READ_LOCK
+#  define GETSERVENT_UNLOCK         LOCALE_READ_UNLOCK
+#else
+#  define GETSERVENT_LOCK           gwLOCALEr_LOCK
+#  define GETSERVENT_UNLOCK         gwLOCALEr_UNLOCK
+#endif
+#ifdef PERL_REENTR_USING_GETSPNAM_R
+#  define GETSPNAM_LOCK             LOCALE_READ_LOCK
+#  define GETSPNAM_UNLOCK           LOCALE_READ_UNLOCK
+#else
+#  define GETSPNAM_LOCK             gwLOCALEr_LOCK
+#  define GETSPNAM_UNLOCK           gwLOCALEr_UNLOCK
+#endif
+
+#define STRFMON_LOCK        LC_MONETARY_LOCK
+#define STRFMON_UNLOCK      LC_MONETARY_UNLOCK
+
+/* End of locale/env synchronization */
+
 #ifndef PERL_NO_INLINE_FUNCTIONS
 /* Static inline funcs that depend on includes and declarations above.
    Some of these reference functions in the perl object files, and some
@@ -7239,6 +7807,7 @@ cannot have changed since the precalcula
 
 START_EXTERN_C
 
+#  include "perlstatic.h"
 #  include "inline.h"
 #  include "sv_inline.h"
 
@@ -7246,23 +7815,6 @@ END_EXTERN_C
 
 #endif
 
-/* Some critical sections need to lock both the locale and the environment.
- * XXX khw intends to change this to lock both mutexes, but that brings up
- * issues of potential deadlock, so should be done at the beginning of a
- * development cycle.  So for now, it just locks the environment.  Note that
- * many modern platforms are locale-thread-safe anyway, so locking the locale
- * mutex is a no-op anyway */
-#define ENV_LOCALE_LOCK     ENV_LOCK
-#define ENV_LOCALE_UNLOCK   ENV_UNLOCK
-
-/* And some critical sections care only that no one else is writing either the
- * locale nor the environment.  XXX Again this is for the future.  This can be
- * simulated with using COND_WAIT in thread.h */
-#define ENV_LOCALE_READ_LOCK     ENV_LOCALE_LOCK
-#define ENV_LOCALE_READ_UNLOCK   ENV_LOCALE_UNLOCK
-
-#define Atof				my_atof
-
 /*
 
 =for apidoc_section $numeric
@@ -7359,12 +7911,12 @@ C<strtoul>.
 #endif
 
 #define grok_bin(s,lp,fp,rp)                                                \
-                    grok_bin_oct_hex(s, lp, fp, rp, 1, _CC_BINDIGIT, 'b')
+                    grok_bin_oct_hex(s, lp, fp, rp, 1, CC_BINDIGIT_, 'b')
 #define grok_oct(s,lp,fp,rp)                                                \
                     (*(fp) |= PERL_SCAN_DISALLOW_PREFIX,                    \
-                    grok_bin_oct_hex(s, lp, fp, rp, 3, _CC_OCTDIGIT, '\0'))
+                    grok_bin_oct_hex(s, lp, fp, rp, 3, CC_OCTDIGIT_, '\0'))
 #define grok_hex(s,lp,fp,rp)                                                \
-                    grok_bin_oct_hex(s, lp, fp, rp, 4, _CC_XDIGIT, 'x')
+                    grok_bin_oct_hex(s, lp, fp, rp, 4, CC_XDIGIT_, 'x')
 
 #ifndef PERL_SCRIPT_MODE
 #define PERL_SCRIPT_MODE "r"
@@ -7442,7 +7994,9 @@ C<strtoul>.
  *    "DynaLoader::_guts" XS_VERSION
  *    XXX in the current implementation, this string is ignored.
  * 2. Declare a typedef named my_cxt_t that is a structure that contains
- *    all the data that needs to be interpreter-local.
+ *    all the data that needs to be interpreter-local that perl controls.  This
+ *    doesn't include things that libc controls, such as the uselocale object
+ *    in Configurations that use it.
  * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
  * 4. Use the MY_CXT_INIT macro such that it is called exactly once
  *    (typically put in the BOOT: section).
@@ -7644,7 +8198,7 @@ extern void moncontrol(int);
 #endif
 
 /* ISO 6429 NEL - C1 control NExt Line */
-/* See https://www.unicode.org/reports/tr13/ */
+/* See https://www.unicode.org/unicode/reports/tr13/ */
 #define NEXT_LINE_CHAR	NEXT_LINE_NATIVE
 
 #ifndef PIPESOCK_MODE
@@ -7784,7 +8338,7 @@ Allows one ending \0
 #define PERL_PV_ESCAPE_NONASCII     0x000400
 #define PERL_PV_ESCAPE_FIRSTCHAR    0x000800
 
-#define PERL_PV_ESCAPE_ALL            0x001000
+#define PERL_PV_ESCAPE_ALL          0x001000
 #define PERL_PV_ESCAPE_NOBACKSLASH  0x002000
 #define PERL_PV_ESCAPE_NOCLEAR      0x004000
 #define PERL_PV_PRETTY_NOCLEAR      PERL_PV_ESCAPE_NOCLEAR
@@ -7796,6 +8350,18 @@ Allows one ending \0
 /* Escape PV with all hex, including NUL. */
 #define PERL_PV_ESCAPE_DWIM_ALL_HEX 0x020000
 
+/* Do not escape word characters, alters meaning of other flags */
+#define PERL_PV_ESCAPE_NON_WC       0x040000
+#define PERL_PV_ESCAPE_TRUNC_MIDDLE 0x080000
+
+#define PERL_PV_PRETTY_QUOTEDPREFIX (   \
+        PERL_PV_PRETTY_ELLIPSES |       \
+        PERL_PV_PRETTY_QUOTE    |       \
+        PERL_PV_ESCAPE_NONASCII |       \
+        PERL_PV_ESCAPE_NON_WC   |       \
+        PERL_PV_ESCAPE_TRUNC_MIDDLE |   \
+        0)
+
 
 /* used by pv_display in dump.c*/
 #define PERL_PV_PRETTY_DUMP  PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
@@ -8498,6 +9064,69 @@ END_EXTERN_C
 
 #endif /* DOUBLE_HAS_NAN */
 
+/* these are used to faciliate the env var PERL_RAND_SEED,
+ * which allows consistent behavior from code that calls
+ * srand() with no arguments, either explicitly or implicitly.
+ */
+#define PERL_SRAND_OVERRIDE_NEXT() PERL_XORSHIFT32_A(PL_srand_override_next);
+
+#define PERL_SRAND_OVERRIDE_NEXT_INIT() STMT_START {    \
+    PL_srand_override = PL_srand_override_next;         \
+    PERL_SRAND_OVERRIDE_NEXT();                         \
+} STMT_END
+
+#define PERL_SRAND_OVERRIDE_GET(into) STMT_START {      \
+    into= PL_srand_override;                            \
+    PERL_SRAND_OVERRIDE_NEXT_INIT();                    \
+} STMT_END
+
+#define PERL_SRAND_OVERRIDE_NEXT_CHILD() STMT_START {   \
+    PERL_XORSHIFT32_B(PL_srand_override_next);          \
+    PERL_SRAND_OVERRIDE_NEXT_INIT();                    \
+} STMT_END
+
+#define PERL_SRAND_OVERRIDE_NEXT_PARENT() \
+    PERL_SRAND_OVERRIDE_NEXT()
+
+/* in something like
+ *
+ * perl -le'sub f { eval "BEGIN{ f() }" }'
+ *
+ * Each iteration chews up 8 stacks frames, and we will eventually SEGV
+ * due to C stack overflow.
+ *
+ * This define provides a maximum limit to prevent the SEGV. Such code is
+ * unusual, so it unlikely we need a very large number here.
+ */
+#ifndef PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT
+#define PERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT 1000
+#endif
+/* ${^MAX_NESTED_EVAL_BEGIN_BLOCKS} */
+#define PERL_VAR_MAX_NESTED_EVAL_BEGIN_BLOCKS "\015AX_NESTED_EVAL_BEGIN_BLOCKS"
+
+/* Defines like this make it easier to do porting/diag.t. They are no-
+ * ops that return their argument which can be used to hint to diag.t
+ * that a string is actually an error message. By putting the category
+ * information into the macro name it considerably simplifies extended
+ * diag.t to support these cases. Feel free to add more.
+ *
+ * While it seems tempting to try to convert all of our diagnostics to
+ * this format, it would miss part of the point of diag.t in that it
+ * detects NEW diagnostics, which would not necessarily use these
+ * macros. The macros instead exist where we know we have an error
+ * message that isnt being picked up by diag.t because it is declared
+ * as a string independently of the function it is fed to, something
+ * diag.t can never handle right without help.
+ */
+#define PERL_DIAG_STR_(x)           ("" x "")
+#define PERL_DIAG_WARN_SYNTAX(x)    PERL_DIAG_STR_(x)
+#define PERL_DIAG_DIE_SYNTAX(x)     PERL_DIAG_STR_(x)
+
+#ifndef PERL_STOP_PARSING_AFTER_N_ERRORS
+#define PERL_STOP_PARSING_AFTER_N_ERRORS 10
+#endif
+
+#define PERL_PARSE_ERROR_COUNT(f)     (f)
 
 /*
 
Index: gnu/usr.bin/perl/perl_inc_macro.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perl_inc_macro.h,v
diff -u -p -a -u -p -r1.1.1.2 perl_inc_macro.h
--- gnu/usr.bin/perl/perl_inc_macro.h	15 Feb 2023 01:31:58 -0000	1.1.1.2
+++ gnu/usr.bin/perl/perl_inc_macro.h	21 Feb 2024 15:47:02 -0000
@@ -89,18 +89,9 @@
 
 /* submacros for INCPUSH_PERL5LIB */
 
-#if defined(PERL_USE_SAFE_PUTENV) && ! defined(HAS_UNSETENV)
-# 	define _INCPUSH_PERL5LIB_IF	if (perl5lib && *perl5lib != '\0')
-#else
-# 	define _INCPUSH_PERL5LIB_IF	if (perl5lib)
-#endif
+#define _INCPUSH_PERL5LIB_IF	if (perl5lib && *perl5lib != '\0')
 
 #ifndef VMS
-/*
- * It isn't possible to delete an environment variable with
- * PERL_USE_SAFE_PUTENV set unless unsetenv() is also available, so in that
- * case we treat PERL5LIB as undefined if it has a zero-length value.
- */
 # define _INCPUSH_PERL5LIB_ADD _INCPUSH_PERL5LIB_IF incpush_use_sep(perl5lib, 0, INCPUSH_ADD_OLD_VERS|INCPUSH_NOT_BASEDIR);
 #else
 /* VMS */
Index: gnu/usr.bin/perl/perlapi.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perlapi.h,v
diff -u -p -a -u -p -r1.7 perlapi.h
--- gnu/usr.bin/perl/perlapi.h	15 Feb 2023 01:36:13 -0000	1.7
+++ gnu/usr.bin/perl/perlapi.h	21 Feb 2024 15:47:02 -0000
@@ -13,7 +13,7 @@
 /*
  * This file used to declare accessor functions for Perl variables
  * when PERL_GLOBAL_STRUCT was enabled, but that no longer exists.
- * This file is kept for backwards compatiblity with XS code that
+ * This file is kept for backwards compatibility with XS code that
  * might include it.
  */
 #ifndef __perlapi_h__
Index: gnu/usr.bin/perl/perlio.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perlio.c,v
diff -u -p -a -u -p -r1.22 perlio.c
--- gnu/usr.bin/perl/perlio.c	15 Feb 2023 01:36:13 -0000	1.22
+++ gnu/usr.bin/perl/perlio.c	21 Feb 2024 15:47:02 -0000
@@ -53,7 +53,7 @@
 #  include <rms.h>
 #endif
 
-#define PerlIO_lockcnt(f) (((PerlIOl*)(f))->head->flags)
+#define PerlIO_lockcnt(f) (((PerlIOl*)(void*)(f))->head->flags)
 
 /* Call the callback or PerlIOBase, and return failure. */
 #define Perl_PerlIO_or_Base(f, callback, base, failure, args) 	\
@@ -294,7 +294,7 @@ PerlIO_openn(pTHX_ const char *layers, c
         }
     }
     else {
-        return PerlIO_fdopen(fd, (char *) mode);
+        return PerlIO_fdopen(fd, mode);
     }
     return NULL;
 }
@@ -362,14 +362,17 @@ PerlIO_debug(const char *fmt, ...)
         const char * const s = CopFILE(PL_curcop);
         /* Use fixed buffer as sv_catpvf etc. needs SVs */
         char buffer[1024];
-        const STRLEN len1 = my_snprintf(buffer, sizeof(buffer), "%.40s:%" IVdf " ", s ? s : "(none)", (IV) CopLINE(PL_curcop));
+        const STRLEN len1 = my_snprintf(buffer, sizeof(buffer), "%.40s:%" LINE_Tf " ", s ? s : "(none)", CopLINE(PL_curcop));
 #  ifdef USE_QUADMATH
 #    ifdef HAS_VSNPRINTF
         /* my_vsnprintf() isn't available with quadmath, but the native vsnprintf()
            should be, otherwise the system isn't likely to support quadmath.
            Nothing should be calling PerlIO_debug() with floating point anyway.
         */
+        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
+        STORE_LC_NUMERIC_SET_TO_NEEDED();
         const STRLEN len2 = vsnprintf(buffer + len1, sizeof(buffer) - len1, fmt, ap);
+        RESTORE_LC_NUMERIC();
 #    else
         STATIC_ASSERT_STMT(0);
 #    endif
@@ -380,8 +383,8 @@ PerlIO_debug(const char *fmt, ...)
 #else
         const char *s = CopFILE(PL_curcop);
         STRLEN len;
-        SV * const sv = Perl_newSVpvf(aTHX_ "%s:%" IVdf " ", s ? s : "(none)",
-                                      (IV) CopLINE(PL_curcop));
+        SV * const sv = Perl_newSVpvf(aTHX_ "%s:%" LINE_Tf " ",
+                                      s ? s : "(none)", CopLINE(PL_curcop));
         Perl_sv_vcatpvf(aTHX_ sv, fmt, &ap);
 
         s = SvPV_const(sv, len);
@@ -416,7 +419,7 @@ PerlIO_verify_head(pTHX_ PerlIO *f)
     assert(p);
     do {
         assert(p->head == head);
-        if (p == (PerlIOl*)f)
+        if (&p->next == f)
             seen = 1;
         p = p->next;
     } while (p);
@@ -446,14 +449,14 @@ PerlIO *
 PerlIO_allocate(pTHX)
 {
     /*
-     * Find a free slot in the table, allocating new table as necessary
+     * Find a free slot in the table, allocating new tables as necessary
      */
     PerlIOl **last;
     PerlIOl *f;
     last = &PL_perlio;
     while ((f = *last)) {
         int i;
-        last = (PerlIOl **) (f);
+        last = &f->next;
         for (i = 1; i < PERLIO_TABLE_SIZE; i++) {
             if (!((++f)->next)) {
                 goto good_exit;
@@ -464,13 +467,13 @@ PerlIO_allocate(pTHX)
     if (!f) {
         return NULL;
     }
-    *last = (PerlIOl*) f++;
+    *last = f++;
 
     good_exit:
     f->flags = 0; /* lockcnt */
     f->tab = NULL;
     f->head = f;
-    return (PerlIO*) f;
+    return &f->next;
 }
 
 #undef PerlIO_fdupopen
@@ -498,7 +501,7 @@ PerlIO_cleantable(pTHX_ PerlIOl **tablep
     PerlIOl * const table = *tablep;
     if (table) {
         int i;
-        PerlIO_cleantable(aTHX_(PerlIOl **) & (table[0]));
+        PerlIO_cleantable(aTHX_ &table[0].next);
         for (i = PERLIO_TABLE_SIZE - 1; i > 0; i--) {
             PerlIOl * const f = table + i;
             if (f->next) {
@@ -592,7 +595,8 @@ PerlIO_clone(pTHX_ PerlInterpreter *prot
     DEBUG_i( PerlIO_debug("Clone %p from %p\n",(void*)aTHX,(void*)proto) );
     while ((f = *table)) {
             int i;
-            table = (PerlIOl **) (f++);
+            table = &f->next;
+            f++;
             for (i = 1; i < PERLIO_TABLE_SIZE; i++) {
                 if (f->next) {
                     (void) fp_dup(&(f->next), 0, param);
@@ -617,7 +621,8 @@ PerlIO_destruct(pTHX)
 #endif
     while ((f = *table)) {
         int i;
-        table = (PerlIOl **) (f++);
+        table = &f->next;
+        f++;
         for (i = 1; i < PERLIO_TABLE_SIZE; i++) {
             PerlIO *x = &(f->next);
             const PerlIOl *l;
@@ -690,9 +695,9 @@ PerlIO_get_layers(pTHX_ PerlIO *f)
             newSVpv(l->tab->name, 0) : &PL_sv_undef;
             SV * const arg = l->tab && l->tab->Getarg ?
             (*l->tab->Getarg)(aTHX_ &l, 0, 0) : &PL_sv_undef;
-            av_push(av, name);
-            av_push(av, arg);
-            av_push(av, newSViv((IV)l->flags));
+            av_push_simple(av, name);
+            av_push_simple(av, arg);
+            av_push_simple(av, newSViv((IV)l->flags));
             l = l->next;
         }
     }
@@ -818,7 +823,7 @@ XS(XS_io_MODIFY_SCALAR_ATTRIBUTES)
         const char * const name = SvPV_const(ST(i), len);
         SV * const layer = PerlIO_find_layer(aTHX_ name, len, 1);
         if (layer) {
-            av_push(av, SvREFCNT_inc_simple_NN(layer));
+            av_push_simple(av, SvREFCNT_inc_simple_NN(layer));
         }
         else {
             ST(count) = ST(i);
@@ -1441,7 +1446,7 @@ PerlIO_resolve_layers(pTHX_ const char *
             }
             /*
              * Don't fail if handler cannot be found :via(...) etc. may do
-             * something sensible else we will just stringfy and open
+             * something sensible else we will just stringify and open
              * resulting string.
              */
         }
@@ -1628,7 +1633,8 @@ Perl_PerlIO_flush(pTHX_ PerlIO *f)
         int code = 0;
         while ((ff = *table)) {
             int i;
-            table = (PerlIOl **) (ff++);
+            table = &ff->next;
+            ff++;
             for (i = 1; i < PERLIO_TABLE_SIZE; i++) {
                 if (ff->next && PerlIO_flush(&(ff->next)) != 0)
                     code = -1;
@@ -1646,7 +1652,8 @@ PerlIOBase_flush_linebuf(pTHX)
     PerlIOl *f;
     while ((f = *table)) {
         int i;
-        table = (PerlIOl **) (f++);
+        table = &f->next;
+        f++;
         for (i = 1; i < PERLIO_TABLE_SIZE; i++) {
             if (f->next
                 && (PerlIOBase(&(f->next))->
@@ -4831,7 +4838,7 @@ Perl_PerlIO_stdin(pTHX)
     if (!PL_perlio) {
         PerlIO_stdstreams(aTHX);
     }
-    return (PerlIO*)&PL_perlio[1];
+    return &PL_perlio[1].next;
 }
 
 PerlIO *
@@ -4840,7 +4847,7 @@ Perl_PerlIO_stdout(pTHX)
     if (!PL_perlio) {
         PerlIO_stdstreams(aTHX);
     }
-    return (PerlIO*)&PL_perlio[2];
+    return &PL_perlio[2].next;
 }
 
 PerlIO *
@@ -4849,7 +4856,7 @@ Perl_PerlIO_stderr(pTHX)
     if (!PL_perlio) {
         PerlIO_stdstreams(aTHX);
     }
-    return (PerlIO*)&PL_perlio[3];
+    return &PL_perlio[3].next;
 }
 
 /*--------------------------------------------------------------------------------------*/
Index: gnu/usr.bin/perl/perlio.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perlio.h,v
diff -u -p -a -u -p -r1.15 perlio.h
--- gnu/usr.bin/perl/perlio.h	15 Feb 2023 01:36:13 -0000	1.15
+++ gnu/usr.bin/perl/perlio.h	21 Feb 2024 15:47:02 -0000
@@ -32,7 +32,7 @@
 #  error "stdio is no longer supported as the default base layer -- use perlio."
 #endif
 
-/* --------------------  End of Configure controls ---------------------------- */
+/*--------------------  End of Configure controls ---------------------------*/
 
 /*
  * Although we may not want stdio to be used including <stdio.h> here
Index: gnu/usr.bin/perl/perlstatic.h
===================================================================
RCS file: gnu/usr.bin/perl/perlstatic.h
diff -N gnu/usr.bin/perl/perlstatic.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/perlstatic.h	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,33 @@
+/*    perlstatic.h
+ *
+ *    'I don't know half of you half as well as I should like; and I like less
+ *    than half of you half as well as you deserve.'
+ *
+ *    Copyright (C) 2020 by Larry Wall and others
+ *
+ *    You may distribute under the terms of either the GNU General Public
+ *    License or the Artistic License, as specified in the README file.
+ *
+ * This file is a home for static functions that we don't consider suitable for
+ * inlining, but for which giving the compiler full knowledge of may be
+ * advantageous.  Functions that have potential tail call optimizations are a
+ * likely component.
+
+ */
+
+/* saves machine code for a common noreturn idiom typically used in Newx*() */
+GCC_DIAG_IGNORE_DECL(-Wunused-function);
+
+STATIC void
+Perl_croak_memory_wrap(void)
+{
+    Perl_croak_nocontext("%s",PL_memory_wrap);
+}
+
+GCC_DIAG_RESTORE_DECL;
+
+
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
+
Index: gnu/usr.bin/perl/perlvars.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perlvars.h,v
diff -u -p -a -u -p -r1.10 perlvars.h
--- gnu/usr.bin/perl/perlvars.h	15 Feb 2023 01:36:13 -0000	1.10
+++ gnu/usr.bin/perl/perlvars.h	21 Feb 2024 15:47:02 -0000
@@ -48,10 +48,6 @@ PERLVAR(G, thr_key,	perl_key)	/* key to 
 /* XXX does anyone even use this? */
 PERLVARI(G, do_undump,	bool,	FALSE)	/* -u or dump seen? */
 
-#ifndef PERL_USE_SAFE_PUTENV
-PERLVARI(G, use_safe_putenv, bool, TRUE)
-#endif
-
 #if defined(FAKE_PERSISTENT_SIGNAL_HANDLERS)||defined(FAKE_DEFAULT_SIGNAL_HANDLERS)
 PERLVARI(G, sig_handlers_initted, int, 0)
 #endif
@@ -106,13 +102,10 @@ PERLVARI(G, mmap_page_size, IV, 0)
 PERLVAR(G, hints_mutex, perl_mutex)    /* Mutex for refcounted he refcounting */
 PERLVAR(G, env_mutex, perl_RnW1_mutex_t)      /* Mutex for accessing ENV */
 PERLVAR(G, locale_mutex, perl_mutex)   /* Mutex related to locale handling */
-#  ifndef USE_THREAD_SAFE_LOCALE
-PERLVAR(G, lc_numeric_mutex, perl_mutex)   /* Mutex for switching LC_NUMERIC */
-#  endif
 #endif
 
 #ifdef USE_POSIX_2008_LOCALE
-PERLVAR(G, C_locale_obj, locale_t)
+PERLVARI(G, C_locale_obj, locale_t, NULL)
 #endif
 
 PERLVARI(G, watch_pvx,	char *, NULL)
@@ -176,6 +169,7 @@ PERLVAR(G, check_mutex,	perl_mutex)	/* M
 #ifdef MULTIPLICITY
 # ifdef USE_ITHREADS
 PERLVAR(G, my_ctx_mutex, perl_mutex)
+PERLVARI(G, veto_switch_non_tTHX_context, int, FALSE)
 # endif
 PERLVARI(G, my_cxt_index, int,	0)
 #endif
@@ -241,10 +235,107 @@ Instead, use the function L</wrap_keywor
 */
 
 #if defined(USE_ITHREADS)
-PERLVAR(G, keyword_plugin_mutex, perl_mutex)   /* Mutex for PL_keyword_plugin */
+PERLVAR(G, keyword_plugin_mutex, perl_mutex)   /* Mutex for PL_keyword_plugin and PL_infix_plugin */
 #endif
 PERLVARI(G, keyword_plugin, Perl_keyword_plugin_t, Perl_keyword_plugin_standard)
 
+/*
+=for apidoc AmnUx|Perl_infix_plugin_t|PL_infix_plugin
+
+B<NOTE:> This API exists entirely for the purpose of making the CPAN module
+C<XS::Parse::Infix> work. It is not expected that additional modules will make
+use of it; rather, that they should use C<XS::Parse::Infix> to provide parsing
+of new infix operators.
+
+Function pointer, pointing at a function used to handle extended infix
+operators. The function should be declared as
+
+        int infix_plugin_function(pTHX_
+                char *opname, STRLEN oplen,
+                struct Perl_custom_infix **infix_ptr)
+
+The function is called from the tokenizer whenever a possible infix operator
+is seen. C<opname> points to the operator name in the parser's input buffer,
+and C<oplen> gives the I<maximum> number of bytes of it that should be
+consumed; it is not null-terminated. The function is expected to examine the
+operator name and possibly other state such as L<%^H|perlvar/%^H>, to
+determine whether it wants to handle the operator name.
+
+As compared to the single stage of C<PL_keyword_plugin>, parsing of additional
+infix operators occurs in three separate stages. This is because of the more
+complex interactions it has with the parser, to ensure that operator
+precedence rules work correctly. These stages are co-ordinated by the use of
+an additional information structure.
+
+If the function wants to handle the infix operator, it must set the variable
+pointed to by C<infix_ptr> to the address of a structure that provides this
+additional information about the subsequent parsing stages. If it does not,
+it should make a call to the next function in the chain.
+
+This structure has the following definition:
+
+	struct Perl_custom_infix {
+	    enum Perl_custom_infix_precedence prec;
+	    void (*parse)(pTHX_ SV **opdata,
+		struct Perl_custom_infix *);
+	    OP *(*build_op)(pTHX_ SV **opdata, OP *lhs, OP *rhs,
+		struct Perl_custom_infix *);
+	};
+
+The function must then return an integer giving the number of bytes consumed
+by the name of this operator. In the case of an operator whose name is
+composed of identifier characters, this must be equal to C<oplen>. In the case
+of an operator named by non-identifier characters, this is permitted to be
+shorter than C<oplen>, and any additional characters after it will not be
+claimed by the infix operator but instead will be consumed by the tokenizer
+and parser as normal.
+
+If the optional C<parse> function is provided, it is called immediately by the
+parser to let the operator's definition consume any additional syntax from the
+source code. This should I<not> be used for normal operand parsing, but it may
+be useful when implementing things like parametric operators or meta-operators
+that consume more syntax themselves. This function may use the variable
+pointed to by C<opdata> to provide an SV containing additional data to be
+passed into the C<build_op> function later on.
+
+The information structure gives the operator precedence level in the C<prec>
+field. This is used to tell the parser how much of the surrounding syntax
+before and after should be considered as operands to the operator.
+
+The tokenizer and parser will then continue to operate as normal until enough
+additional input has been parsed to form both the left- and right-hand side
+operands to the operator, according to the precedence level. At this point the
+C<build_op> function is called, being passed the left- and right-hand operands
+as optree fragments. It is expected to combine them into the resulting optree
+fragment, which it should return.
+
+After the C<build_op> function has returned, if the variable pointed to by
+C<opdata> was set to a non-C<NULL> value, it will then be destroyed by calling
+C<SvREFCNT_dec()>.
+
+For thread safety, modules should not set this variable directly.
+Instead, use the function L</wrap_infix_plugin>.
+
+However, that all said, the introductory note above still applies. This
+variable is provided in core perl only for the benefit of the
+C<XS::Parse::Infix> module. That module acts as a central registry for infix
+operators, automatically handling things like deparse support and
+discovery/reflection, and these abilities only work because it knows all the
+registered operators. Other modules should not use this interpreter variable
+directly to implement them because then those central features would no longer
+work properly.
+
+Furthermore, it is likely that this (experimental) API will be replaced in a
+future Perl version by a more complete API that fully implements the central
+registry and other semantics currently provided by C<XS::Parse::Infix>, once
+the module has had sufficient experimental testing time. This current
+mechanism exists only as an interim measure to get to that stage.
+
+=cut
+*/
+
+PERLVARI(G, infix_plugin, Perl_infix_plugin_t, Perl_infix_plugin_standard)
+
 PERLVARI(G, op_sequence, HV *, NULL)	/* dump.c */
 PERLVARI(G, op_seq,	UV,	0)	/* dump.c */
 
@@ -264,12 +355,13 @@ PERLVAR(G, malloc_mutex, perl_mutex)	/* 
 #endif
 
 PERLVARI(G, hash_seed_set, bool, FALSE)	/* perl.c */
-PERLVARA(G, hash_seed_w, PERL_HASH_SEED_WORDS, __PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
+PERLVARA(G, hash_seed_w, PERL_HASH_SEED_WORDS, PVT__PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
 #if defined(PERL_HASH_STATE_BYTES)
-PERLVARA(G, hash_state_w, PERL_HASH_STATE_WORDS, __PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
+PERLVARA(G, hash_state_w, PERL_HASH_STATE_WORDS, PVT__PERL_HASH_WORD_TYPE) /* perl.c and hv.h */
 #endif
 #if defined(PERL_USE_SINGLE_CHAR_HASH_CACHE)
-PERLVARA(G, hash_chars, (1+256) * sizeof(U32), unsigned char) /* perl.c and hv.h */
+#define PERL_SINGLE_CHAR_HASH_CACHE_ELEMS ((1+256) * sizeof(U32))
+PERLVARA(G, hash_chars, PERL_SINGLE_CHAR_HASH_CACHE_ELEMS, unsigned char) /* perl.c and hv.h */
 #endif
 
 /* The path separator can vary depending on whether we're running under DCL or
@@ -305,3 +397,6 @@ PERLVARI(G, strategy_socket,     int, 0)
 PERLVARI(G, strategy_accept,     int, 0)	/* doio.c */
 PERLVARI(G, strategy_pipe,       int, 0)	/* doio.c */
 PERLVARI(G, strategy_socketpair, int, 0)	/* doio.c */
+
+PERLVARI(G, my_environ, char **, NULL)
+PERLVARI(G, origenviron, char **, NULL)
Index: gnu/usr.bin/perl/perly.act
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perly.act,v
diff -u -p -a -u -p -r1.6 perly.act
--- gnu/usr.bin/perl/perly.act	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/perly.act	21 Feb 2024 15:47:02 -0000
@@ -1,12 +1,12 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen_perly.pl from perly.y.
    Any changes made here will be lost!
  */
 
 case 2:
-#line 140 "perly.y"
-                        {
+#line 161 "perly.y"
+    {
 			  parser->expect = XSTATE;
                           (yyval.ival) = 0;
 			}
@@ -14,8 +14,8 @@ case 2:
     break;
 
   case 3:
-#line 145 "perly.y"
-                        {
+#line 166 "perly.y"
+    {
 			  newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval)));
 			  PL_compiling.cop_seq = 0;
 			  (yyval.ival) = 0;
@@ -24,8 +24,8 @@ case 2:
     break;
 
   case 4:
-#line 151 "perly.y"
-                        {
+#line 172 "perly.y"
+    {
 			  parser->expect = XTERM;
                           (yyval.ival) = 0;
 			}
@@ -33,8 +33,8 @@ case 2:
     break;
 
   case 5:
-#line 156 "perly.y"
-                        {
+#line 177 "perly.y"
+    {
 			  PL_eval_root = (ps[0].val.opval);
 			  (yyval.ival) = 0;
 			}
@@ -42,8 +42,8 @@ case 2:
     break;
 
   case 6:
-#line 161 "perly.y"
-                        {
+#line 182 "perly.y"
+    {
 			  parser->expect = XBLOCK;
                           (yyval.ival) = 0;
 			}
@@ -51,8 +51,8 @@ case 2:
     break;
 
   case 7:
-#line 166 "perly.y"
-                        {
+#line 187 "perly.y"
+    {
 			  PL_pad_reset_pending = TRUE;
 			  PL_eval_root = (ps[0].val.opval);
 			  (yyval.ival) = 0;
@@ -63,8 +63,8 @@ case 2:
     break;
 
   case 8:
-#line 174 "perly.y"
-                        {
+#line 195 "perly.y"
+    {
 			  parser->expect = XSTATE;
                           (yyval.ival) = 0;
 			}
@@ -72,8 +72,8 @@ case 2:
     break;
 
   case 9:
-#line 179 "perly.y"
-                        {
+#line 200 "perly.y"
+    {
 			  PL_pad_reset_pending = TRUE;
 			  PL_eval_root = (ps[0].val.opval);
 			  (yyval.ival) = 0;
@@ -84,8 +84,8 @@ case 2:
     break;
 
   case 10:
-#line 187 "perly.y"
-                        {
+#line 208 "perly.y"
+    {
 			  parser->expect = XSTATE;
                           (yyval.ival) = 0;
 			}
@@ -93,8 +93,8 @@ case 2:
     break;
 
   case 11:
-#line 192 "perly.y"
-                        {
+#line 213 "perly.y"
+    {
 			  PL_pad_reset_pending = TRUE;
 			  PL_eval_root = (ps[0].val.opval);
 			  (yyval.ival) = 0;
@@ -105,8 +105,8 @@ case 2:
     break;
 
   case 12:
-#line 200 "perly.y"
-                        {
+#line 221 "perly.y"
+    {
 			  parser->expect = XSTATE;
                           (yyval.ival) = 0;
 			}
@@ -114,8 +114,8 @@ case 2:
     break;
 
   case 13:
-#line 205 "perly.y"
-                        {
+#line 226 "perly.y"
+    {
 			  PL_eval_root = (ps[0].val.opval);
 			  (yyval.ival) = 0;
 			}
@@ -123,8 +123,8 @@ case 2:
     break;
 
   case 14:
-#line 210 "perly.y"
-                        {
+#line 231 "perly.y"
+    {
 			  parser->expect = XSTATE;
 			  (yyval.ival) = 0;
 			}
@@ -132,8 +132,8 @@ case 2:
     break;
 
   case 15:
-#line 215 "perly.y"
-                        {
+#line 236 "perly.y"
+    {
 			  PL_eval_root = (ps[0].val.opval);
 			  (yyval.ival) = 0;
 			}
@@ -141,55 +141,85 @@ case 2:
     break;
 
   case 16:
-#line 223 "perly.y"
-                        { if (parser->copline > (line_t)(ps[-3].val.ival))
+#line 245 "perly.y"
+    { (yyval.ival) = KW_SUB_named_sig; }
+
+    break;
+
+  case 17:
+#line 247 "perly.y"
+    { (yyval.ival) = KW_METHOD_named; }
+
+    break;
+
+  case 18:
+#line 252 "perly.y"
+    { if (parser->copline > (line_t)(ps[-3].val.ival))
 			      parser->copline = (line_t)(ps[-3].val.ival);
 			  (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
 			}
 
     break;
 
-  case 17:
-#line 230 "perly.y"
-                                { (yyval.opval) = NULL; }
+  case 19:
+#line 259 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 18:
-#line 235 "perly.y"
-                        { if (parser->copline > (line_t)(ps[-6].val.ival))
+  case 20:
+#line 264 "perly.y"
+    { if (parser->copline > (line_t)(ps[-6].val.ival))
 			      parser->copline = (line_t)(ps[-6].val.ival);
 			  (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval));
 			}
 
     break;
 
-  case 19:
-#line 242 "perly.y"
-                        { (yyval.ival) = block_start(TRUE);
+  case 21:
+#line 271 "perly.y"
+    { (yyval.ival) = block_start(TRUE);
 			  parser->parsed_sub = 0; }
 
     break;
 
-  case 20:
-#line 247 "perly.y"
-                        { if (parser->copline > (line_t)(ps[-3].val.ival))
+  case 22:
+#line 276 "perly.y"
+    { if (parser->copline > (line_t)(ps[-3].val.ival))
 			      parser->copline = (line_t)(ps[-3].val.ival);
 			  (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
 			}
 
     break;
 
-  case 21:
-#line 254 "perly.y"
-                        { (yyval.ival) = block_start(FALSE);
+  case 23:
+#line 283 "perly.y"
+    { (yyval.ival) = block_start(FALSE);
 			  parser->parsed_sub = 0; }
 
     break;
 
-  case 23:
-#line 262 "perly.y"
-                        {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
+  case 25:
+#line 292 "perly.y"
+    { parser->in_my = 1; }
+
+    break;
+
+  case 26:
+#line 294 "perly.y"
+    { parser->in_my = 0; intro_my(); }
+
+    break;
+
+  case 27:
+#line 296 "perly.y"
+    { (yyval.opval) = (ps[-2].val.opval); }
+
+    break;
+
+  case 29:
+#line 303 "perly.y"
+    {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
 			    PL_pad_reset_pending = TRUE;
 			    if ((ps[-1].val.opval) && (ps[0].val.opval))
 				PL_hints |= HINT_BLOCK_SCOPE;
@@ -197,9 +227,9 @@ case 2:
 
     break;
 
-  case 25:
-#line 273 "perly.y"
-                        {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
+  case 31:
+#line 314 "perly.y"
+    {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
 			    PL_pad_reset_pending = TRUE;
 			    if ((ps[-1].val.opval) && (ps[0].val.opval))
 				PL_hints |= HINT_BLOCK_SCOPE;
@@ -207,23 +237,23 @@ case 2:
 
     break;
 
-  case 26:
-#line 282 "perly.y"
-                        {
+  case 32:
+#line 323 "perly.y"
+    {
 			  (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL;
 			}
 
     break;
 
-  case 27:
-#line 286 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 33:
+#line 327 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 28:
-#line 290 "perly.y"
-                        {
+  case 34:
+#line 331 "perly.y"
+    {
                           SV *label = cSVOPx_sv((ps[-1].val.opval));
 			  (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8,
                                             savepv(SvPVX_const(label)), (ps[0].val.opval));
@@ -232,9 +262,9 @@ case 2:
 
     break;
 
-  case 29:
-#line 297 "perly.y"
-                        {
+  case 35:
+#line 338 "perly.y"
+    {
                           SV *label = cSVOPx_sv((ps[-1].val.opval));
 			  (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8,
                                             savepv(SvPVX_const(label)), (ps[0].val.opval));
@@ -243,15 +273,15 @@ case 2:
 
     break;
 
-  case 30:
-#line 307 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 36:
+#line 348 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 31:
-#line 309 "perly.y"
-                        {
+  case 37:
+#line 350 "perly.y"
+    {
 			  CV *fmtcv = PL_compcv;
 			  newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval));
 			  (yyval.opval) = NULL;
@@ -263,9 +293,9 @@ case 2:
 
     break;
 
-  case 32:
-#line 321 "perly.y"
-                        {
+  case 38:
+#line 362 "perly.y"
+    {
                           init_named_cv(PL_compcv, (ps[-1].val.opval));
 			  parser->in_my = 0;
 			  parser->in_my_stash = NULL;
@@ -273,9 +303,9 @@ case 2:
 
     break;
 
-  case 33:
-#line 327 "perly.y"
-                        {
+  case 39:
+#line 368 "perly.y"
+    {
 			  SvREFCNT_inc_simple_void(PL_compcv);
 			  (ps[-5].val.opval)->op_type == OP_CONST
 			      ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
@@ -288,23 +318,29 @@ case 2:
 
     break;
 
-  case 34:
-#line 342 "perly.y"
-                        {
+  case 40:
+#line 383 "perly.y"
+    {
                           init_named_cv(PL_compcv, (ps[-1].val.opval));
+			  if((ps[-2].val.ival) == KW_METHOD_named) {
+			      croak_kw_unless_class("method");
+			      class_prepare_method_parse(PL_compcv);
+			  }
 			  parser->in_my = 0;
 			  parser->in_my_stash = NULL;
 			}
 
     break;
 
-  case 35:
-#line 348 "perly.y"
-                        {
+  case 41:
+#line 393 "perly.y"
+    {
+			  OP *body = (ps[0].val.opval);
+
 			  SvREFCNT_inc_simple_void(PL_compcv);
 			  (ps[-4].val.opval)->op_type == OP_CONST
-			      ? newATTRSUB((ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), (ps[0].val.opval))
-			      : newMYSUB(  (ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), (ps[0].val.opval))
+			      ? newATTRSUB((ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), body)
+			      : newMYSUB(  (ps[-3].val.ival), (ps[-4].val.opval), NULL, (ps[-1].val.opval), body)
 			  ;
 			  (yyval.opval) = NULL;
 			  intro_my();
@@ -313,9 +349,43 @@ case 2:
 
     break;
 
-  case 36:
-#line 359 "perly.y"
-                        {
+  case 42:
+#line 406 "perly.y"
+    {
+			  switch((ps[-1].val.ival)) {
+			      case KEY_ADJUST:
+			         croak_kw_unless_class("ADJUST");
+			         class_prepare_method_parse(PL_compcv);
+			         break;
+			      default:
+			         NOT_REACHED;
+			  }
+			}
+
+    break;
+
+  case 43:
+#line 417 "perly.y"
+    {
+			  OP *body = (ps[0].val.opval);
+			  SvREFCNT_inc_simple_void(PL_compcv);
+
+			  CV *cv;
+
+			  switch((ps[-3].val.ival)) {
+			      case KEY_ADJUST:
+			          cv = newATTRSUB((ps[-2].val.ival), NULL, NULL, NULL, body);
+			          class_add_ADJUST(PL_curstash, cv);
+			          break;
+			  }
+			  (yyval.opval) = NULL;
+			}
+
+    break;
+
+  case 44:
+#line 436 "perly.y"
+    {
 			  package((ps[-1].val.opval));
 			  if ((ps[-2].val.opval))
 			      package_version((ps[-2].val.opval));
@@ -324,15 +394,30 @@ case 2:
 
     break;
 
-  case 37:
-#line 366 "perly.y"
-                        { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
+  case 45:
+#line 443 "perly.y"
+    {
+			  package((ps[-2].val.opval));
+			  if ((ps[-3].val.opval))
+			      package_version((ps[-3].val.opval));
+			  (yyval.opval) = NULL;
+			  class_setup_stash(PL_curstash);
+			  if ((ps[-1].val.opval)) {
+			      class_apply_attributes(PL_curstash, (ps[-1].val.opval));
+			  }
+			}
 
     break;
 
-  case 38:
-#line 368 "perly.y"
-                        {
+  case 46:
+#line 454 "perly.y"
+    { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
+
+    break;
+
+  case 47:
+#line 458 "perly.y"
+    {
 			  SvREFCNT_inc_simple_void(PL_compcv);
 			  utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval));
 			  parser->parsed_sub = 1;
@@ -341,9 +426,9 @@ case 2:
 
     break;
 
-  case 39:
-#line 375 "perly.y"
-                        {
+  case 48:
+#line 465 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-4].val.ival),
 			      newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval)));
 			  parser->copline = (line_t)(ps[-6].val.ival);
@@ -351,9 +436,9 @@ case 2:
 
     break;
 
-  case 40:
-#line 381 "perly.y"
-                        {
+  case 49:
+#line 471 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-4].val.ival),
                               newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval))));
 			  parser->copline = (line_t)(ps[-6].val.ival);
@@ -361,30 +446,30 @@ case 2:
 
     break;
 
-  case 41:
-#line 387 "perly.y"
-                        {
+  case 50:
+#line 477 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0));
 			  parser->copline = (line_t)(ps[-5].val.ival);
 			}
 
     break;
 
-  case 42:
-#line 392 "perly.y"
-                        { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); }
+  case 51:
+#line 482 "perly.y"
+    { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); }
 
     break;
 
-  case 43:
-#line 394 "perly.y"
-                        { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); }
+  case 52:
+#line 484 "perly.y"
+    { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); }
 
     break;
 
-  case 44:
-#line 396 "perly.y"
-                        {
+  case 53:
+#line 486 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-5].val.ival),
 				  newWHILEOP(0, 1, NULL,
 				      (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
@@ -393,9 +478,9 @@ case 2:
 
     break;
 
-  case 45:
-#line 403 "perly.y"
-                        {
+  case 54:
+#line 493 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-5].val.ival),
 				  newWHILEOP(0, 1, NULL,
 				      (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
@@ -404,21 +489,21 @@ case 2:
 
     break;
 
-  case 46:
-#line 410 "perly.y"
-                        { parser->expect = XTERM; }
+  case 55:
+#line 500 "perly.y"
+    { parser->expect = XTERM; }
 
     break;
 
-  case 47:
-#line 412 "perly.y"
-                        { parser->expect = XTERM; }
+  case 56:
+#line 502 "perly.y"
+    { parser->expect = XTERM; }
 
     break;
 
-  case 48:
-#line 415 "perly.y"
-                        {
+  case 57:
+#line 505 "perly.y"
+    {
 			  OP *initop = (ps[-9].val.opval);
 			  OP *forop = newWHILEOP(0, 1, NULL,
 				      scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival));
@@ -435,18 +520,18 @@ case 2:
 
     break;
 
-  case 49:
-#line 430 "perly.y"
-                        {
+  case 58:
+#line 520 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
 			  parser->copline = (line_t)(ps[-8].val.ival);
 			}
 
     break;
 
-  case 50:
-#line 435 "perly.y"
-                        {
+  case 59:
+#line 525 "perly.y"
+    {
                           if ((ps[-6].val.opval)->op_type == OP_PADSV)
                             /* degenerate case of 1 var: for my ($x) ....
                                Flag it so it can be special-cased in newFOROP */
@@ -457,9 +542,9 @@ case 2:
 
     break;
 
-  case 51:
-#line 444 "perly.y"
-                        {
+  case 60:
+#line 534 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0,
 				      op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
 			  parser->copline = (line_t)(ps[-7].val.ival);
@@ -467,15 +552,15 @@ case 2:
 
     break;
 
-  case 52:
-#line 450 "perly.y"
-                        { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
+  case 61:
+#line 540 "perly.y"
+    { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
 
     break;
 
-  case 53:
-#line 452 "perly.y"
-                        {
+  case 62:
+#line 542 "perly.y"
+    {
 			  (yyval.opval) = block_end(
 				(ps[-7].val.ival),
 				newFOROP(0,
@@ -490,9 +575,9 @@ case 2:
 
     break;
 
-  case 54:
-#line 465 "perly.y"
-                        {
+  case 63:
+#line 555 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(
 				0, op_lvalue(newUNOP(OP_REFGEN, 0,
 						     (ps[-6].val.opval)),
@@ -502,9 +587,9 @@ case 2:
 
     break;
 
-  case 55:
-#line 473 "perly.y"
-                        {
+  case 64:
+#line 563 "perly.y"
+    {
 			  (yyval.opval) = block_end((ps[-4].val.ival),
 				  newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
 			  parser->copline = (line_t)(ps[-6].val.ival);
@@ -512,33 +597,32 @@ case 2:
 
     break;
 
-  case 56:
-#line 479 "perly.y"
-                        { parser->in_my = 1; }
-
-    break;
-
-  case 57:
-#line 481 "perly.y"
-                        { parser->in_my = 0; intro_my(); }
+  case 65:
+#line 569 "perly.y"
+    {
+			  if(!(ps[0].val.opval)) {
+			      yyerror("catch block requires a (VAR)");
+			      YYERROR;
+			  }
+			}
 
     break;
 
-  case 58:
-#line 483 "perly.y"
-                        {
+  case 66:
+#line 576 "perly.y"
+    {
 			  (yyval.opval) = newTRYCATCHOP(0,
-				  (ps[-9].val.opval), (ps[-4].val.opval), block_end((ps[-5].val.ival), op_scope((ps[-1].val.opval))));
+				  (ps[-6].val.opval), (ps[-3].val.opval), block_end((ps[-4].val.ival), op_scope((ps[-1].val.opval))));
 			  if((ps[0].val.opval))
 			      (yyval.opval) = op_wrap_finally((yyval.opval), (ps[0].val.opval));
-			  parser->copline = (line_t)(ps[-10].val.ival);
+			  parser->copline = (line_t)(ps[-7].val.ival);
 			}
 
     break;
 
-  case 59:
-#line 491 "perly.y"
-                        {
+  case 67:
+#line 584 "perly.y"
+    {
 			  /* a block is a loop that happens once */
 			  (yyval.opval) = newWHILEOP(0, 1, NULL,
 				  NULL, (ps[-1].val.opval), (ps[0].val.opval), 0);
@@ -546,9 +630,9 @@ case 2:
 
     break;
 
-  case 60:
-#line 497 "perly.y"
-                        {
+  case 68:
+#line 590 "perly.y"
+    {
 			  package((ps[-2].val.opval));
 			  if ((ps[-3].val.opval)) {
 			      package_version((ps[-3].val.opval));
@@ -557,9 +641,9 @@ case 2:
 
     break;
 
-  case 61:
-#line 504 "perly.y"
-                        {
+  case 69:
+#line 597 "perly.y"
+    {
 			  /* a block is a loop that happens once */
 			  (yyval.opval) = newWHILEOP(0, 1, NULL,
 				  NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), NULL, 0);
@@ -569,43 +653,80 @@ case 2:
 
     break;
 
-  case 62:
-#line 512 "perly.y"
-                        {
+  case 70:
+#line 605 "perly.y"
+    {
+			  package((ps[-3].val.opval));
+
+			  if ((ps[-4].val.opval)) {
+			      package_version((ps[-4].val.opval));
+			  }
+			  class_setup_stash(PL_curstash);
+			  if ((ps[-2].val.opval)) {
+			      class_apply_attributes(PL_curstash, (ps[-2].val.opval));
+			  }
+			}
+
+    break;
+
+  case 71:
+#line 617 "perly.y"
+    {
+			  /* a block is a loop that happens once */
+			  (yyval.opval) = newWHILEOP(0, 1, NULL,
+				  NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), NULL, 0);
+			  if (parser->copline > (line_t)(ps[-4].val.ival))
+			      parser->copline = (line_t)(ps[-4].val.ival);
+			}
+
+    break;
+
+  case 72:
+#line 625 "perly.y"
+    {
 			  (yyval.opval) = (ps[-1].val.opval);
 			}
 
     break;
 
-  case 63:
-#line 516 "perly.y"
-                        {
+  case 73:
+#line 629 "perly.y"
+    {
+			  (yyval.opval) = (ps[-1].val.opval);
+			}
+
+    break;
+
+  case 74:
+#line 633 "perly.y"
+    {
 			  (yyval.opval) = newDEFEROP(0, op_scope((ps[0].val.opval)));
 			}
 
     break;
 
-  case 64:
-#line 520 "perly.y"
-                        {
+  case 75:
+#line 637 "perly.y"
+    {
+                          /* diag_listed_as: Unimplemented */
 			  (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
 				newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
 			}
 
     break;
 
-  case 65:
-#line 525 "perly.y"
-                        {
+  case 76:
+#line 643 "perly.y"
+    {
 			  (yyval.opval) = NULL;
 			  parser->copline = NOLINE;
 			}
 
     break;
 
-  case 66:
-#line 533 "perly.y"
-                        { OP *list;
+  case 77:
+#line 651 "perly.y"
+    { OP *list;
 			  if ((ps[0].val.opval)) {
 			      OP *term = (ps[0].val.opval);
 			      list = op_append_elem(OP_LIST, (ps[-1].val.opval), term);
@@ -622,73 +743,73 @@ case 2:
 
     break;
 
-  case 68:
-#line 552 "perly.y"
-                        { (yyval.opval) = op_unscope((ps[-1].val.opval)); }
+  case 79:
+#line 670 "perly.y"
+    { (yyval.opval) = op_unscope((ps[-1].val.opval)); }
 
     break;
 
-  case 70:
-#line 560 "perly.y"
-                        { (yyval.opval) = NULL; }
+  case 81:
+#line 678 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 71:
-#line 562 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 82:
+#line 680 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 72:
-#line 564 "perly.y"
-                        { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
+  case 83:
+#line 682 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
 
     break;
 
-  case 73:
-#line 566 "perly.y"
-                        { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
+  case 84:
+#line 684 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
 
     break;
 
-  case 74:
-#line 568 "perly.y"
-                        { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); }
+  case 85:
+#line 686 "perly.y"
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); }
 
     break;
 
-  case 75:
-#line 570 "perly.y"
-                        { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); }
+  case 86:
+#line 688 "perly.y"
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); }
 
     break;
 
-  case 76:
-#line 572 "perly.y"
-                        { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL);
+  case 87:
+#line 690 "perly.y"
+    { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL);
 			  parser->copline = (line_t)(ps[-1].val.ival); }
 
     break;
 
-  case 77:
-#line 575 "perly.y"
-                        { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); }
+  case 88:
+#line 693 "perly.y"
+    { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); }
 
     break;
 
-  case 79:
-#line 582 "perly.y"
-                        {
+  case 90:
+#line 700 "perly.y"
+    {
 			  ((ps[0].val.opval))->op_flags |= OPf_PARENS;
 			  (yyval.opval) = op_scope((ps[0].val.opval));
 			}
 
     break;
 
-  case 80:
-#line 587 "perly.y"
-                        { parser->copline = (line_t)(ps[-5].val.ival);
+  case 91:
+#line 705 "perly.y"
+    { parser->copline = (line_t)(ps[-5].val.ival);
 			    (yyval.opval) = newCONDOP(0,
 				newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)),
 				op_scope((ps[-1].val.opval)), (ps[0].val.opval));
@@ -697,145 +818,157 @@ case 2:
 
     break;
 
-  case 82:
-#line 599 "perly.y"
-                        { (yyval.opval) = op_scope((ps[0].val.opval)); }
+  case 93:
+#line 717 "perly.y"
+    { (yyval.opval) = op_scope((ps[0].val.opval)); }
 
     break;
 
-  case 83:
-#line 604 "perly.y"
-                        { (yyval.opval) = NULL; }
+  case 94:
+#line 722 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 84:
-#line 606 "perly.y"
-                        { (yyval.opval) = op_scope((ps[0].val.opval)); }
+  case 95:
+#line 724 "perly.y"
+    { (yyval.opval) = op_scope((ps[0].val.opval)); }
 
     break;
 
-  case 85:
-#line 611 "perly.y"
-                        { (yyval.ival) = (PL_min_intro_pending &&
+  case 96:
+#line 729 "perly.y"
+    { (yyval.ival) = (PL_min_intro_pending &&
 			    PL_max_intro_pending >=  PL_min_intro_pending);
 			  intro_my(); }
 
     break;
 
-  case 88:
-#line 623 "perly.y"
-                        { YYSTYPE tmplval;
+  case 99:
+#line 741 "perly.y"
+    { YYSTYPE tmplval;
 			  (void)scan_num("1", &tmplval);
 			  (yyval.opval) = tmplval.opval; }
 
     break;
 
-  case 90:
-#line 631 "perly.y"
-                        { (yyval.opval) = invert(scalar((ps[0].val.opval))); }
+  case 101:
+#line 749 "perly.y"
+    { (yyval.opval) = invert(scalar((ps[0].val.opval))); }
 
     break;
 
-  case 91:
-#line 636 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); intro_my(); }
+  case 102:
+#line 754 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); intro_my(); }
 
     break;
 
-  case 92:
-#line 640 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); intro_my(); }
+  case 103:
+#line 758 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); intro_my(); }
 
     break;
 
-  case 93:
-#line 643 "perly.y"
-                                { (yyval.opval) = (ps[0].val.opval); }
+  case 104:
+#line 761 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 95:
-#line 648 "perly.y"
-                        { (yyval.ival) = start_subparse(FALSE, 0);
+  case 106:
+#line 766 "perly.y"
+    { (yyval.ival) = start_subparse(FALSE, 0);
 			    SAVEFREESV(PL_compcv); }
 
     break;
 
-  case 96:
-#line 654 "perly.y"
-                        { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
+  case 107:
+#line 772 "perly.y"
+    { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
 			    SAVEFREESV(PL_compcv); }
 
     break;
 
-  case 97:
-#line 659 "perly.y"
-                        { (yyval.ival) = start_subparse(TRUE, 0);
+  case 108:
+#line 777 "perly.y"
+    { (yyval.ival) = start_subparse(FALSE, CVf_ANON|CVf_IsMETHOD);
 			    SAVEFREESV(PL_compcv); }
 
     break;
 
-  case 103:
-#line 678 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 109:
+#line 782 "perly.y"
+    { (yyval.ival) = start_subparse(TRUE, 0);
+			    SAVEFREESV(PL_compcv); }
 
     break;
 
-  case 104:
-#line 680 "perly.y"
-                        { (yyval.opval) = NULL; }
+  case 115:
+#line 801 "perly.y"
+    {
+			  OP *attrlist = (ps[0].val.opval);
+			  if(attrlist && !PL_parser->sig_seen)
+			      attrlist = apply_builtin_cv_attributes(PL_compcv, attrlist);
+			  (yyval.opval) = attrlist;
+			}
 
     break;
 
-  case 105:
-#line 685 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 116:
+#line 808 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 106:
-#line 687 "perly.y"
-                        { (yyval.opval) = NULL; }
+  case 117:
+#line 813 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 107:
-#line 698 "perly.y"
-                        { parser->in_my = 0; (yyval.opval) = NULL; }
+  case 118:
+#line 815 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 108:
-#line 700 "perly.y"
-                        { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
+  case 119:
+#line 826 "perly.y"
+    { parser->in_my = 0; (yyval.opval) = NULL; }
 
     break;
 
-  case 109:
-#line 705 "perly.y"
-                        { (yyval.ival) = '@'; }
+  case 120:
+#line 828 "perly.y"
+    { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 110:
-#line 707 "perly.y"
-                        { (yyval.ival) = '%'; }
+  case 121:
+#line 833 "perly.y"
+    { (yyval.ival) = '@'; }
 
     break;
 
-  case 111:
-#line 711 "perly.y"
-                        {
-                            I32 sigil   = (ps[-2].val.ival);
-                            OP *var     = (ps[-1].val.opval);
-                            OP *defexpr = (ps[0].val.opval);
+  case 122:
+#line 835 "perly.y"
+    { (yyval.ival) = '%'; }
 
-                            if (parser->sig_slurpy)
-                                yyerror("Multiple slurpy parameters not allowed");
-                            parser->sig_slurpy = (char)sigil;
+    break;
+
+  case 123:
+#line 839 "perly.y"
+    {
+                            I32 sigil = (ps[-2].val.ival);
+                            OP *var   = (ps[-1].val.opval);
+                            OP *defop = (ps[0].val.opval);
+
+                            if (parser->sig_slurpy)
+                                yyerror("Multiple slurpy parameters not allowed");
+                            parser->sig_slurpy = (char)sigil;
 
-                            if (defexpr)
+                            if (defop)
                                 yyerror("A slurpy parameter may not have "
                                         "a default value");
 
@@ -844,32 +977,41 @@ case 2:
 
     break;
 
-  case 113:
-#line 732 "perly.y"
-                        { (yyval.opval) = newOP(OP_NULL, 0); }
+  case 125:
+#line 860 "perly.y"
+    { (yyval.opval) = newARGDEFELEMOP(0, newOP(OP_NULL, 0), parser->sig_elems); }
 
     break;
 
-  case 114:
-#line 734 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 126:
+#line 862 "perly.y"
+    {
+                            I32 flags = 0;
+                            if ((ps[-1].val.ival) == OP_DORASSIGN)
+                                flags |= OPpARG_IF_UNDEF << 8;
+                            if ((ps[-1].val.ival) == OP_ORASSIGN)
+                                flags |= OPpARG_IF_FALSE << 8;
+                            (yyval.opval) = newARGDEFELEMOP(flags, (ps[0].val.opval), parser->sig_elems);
+                        }
 
     break;
 
-  case 115:
-#line 740 "perly.y"
-                        {
-                            OP *var     = (ps[-1].val.opval);
-                            OP *defexpr = (ps[0].val.opval);
+  case 127:
+#line 875 "perly.y"
+    {
+                            OP *var   = (ps[-1].val.opval);
+                            OP *defop = (ps[0].val.opval);
 
                             if (parser->sig_slurpy)
                                 yyerror("Slurpy parameter not last");
 
                             parser->sig_elems++;
 
-                            if (defexpr) {
+                            if (defop) {
                                 parser->sig_optelems++;
 
+                                OP *defexpr = cLOGOPx(defop)->op_first;
+
                                 if (   defexpr->op_type == OP_NULL
                                     && !(defexpr->op_flags & OPf_KIDS))
                                 {
@@ -877,17 +1019,10 @@ case 2:
                                     if (var)
                                         yyerror("Optional parameter "
                                                     "lacks default expression");
-                                    op_free(defexpr);
+                                    op_free(defop);
                                 }
                                 else { 
                                     /* a normal '=default' expression */ 
-                                    OP *defop = (OP*)alloc_LOGOP(OP_ARGDEFELEM,
-                                                        defexpr,
-                                                        LINKLIST(defexpr));
-                                    /* re-purpose op_targ to hold @_ index */
-                                    defop->op_targ =
-                                        (PADOFFSET)(parser->sig_elems - 1);
-
                                     if (var) {
                                         var->op_flags |= OPf_STACKED;
                                         (void)op_sibling_splice(var,
@@ -921,47 +1056,47 @@ case 2:
 
     break;
 
-  case 116:
-#line 805 "perly.y"
-                        { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
+  case 128:
+#line 935 "perly.y"
+    { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 117:
-#line 807 "perly.y"
-                        { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
+  case 129:
+#line 937 "perly.y"
+    { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 118:
-#line 813 "perly.y"
-                        { (yyval.opval) = (ps[-1].val.opval); }
+  case 130:
+#line 943 "perly.y"
+    { (yyval.opval) = (ps[-1].val.opval); }
 
     break;
 
-  case 119:
-#line 815 "perly.y"
-                        {
+  case 131:
+#line 945 "perly.y"
+    {
 			  (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval));
 			}
 
     break;
 
-  case 120:
-#line 819 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 132:
+#line 949 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 125:
-#line 836 "perly.y"
-                        { (yyval.opval) = (ps[-1].val.opval); }
+  case 137:
+#line 966 "perly.y"
+    { (yyval.opval) = (ps[-1].val.opval); }
 
     break;
 
-  case 126:
-#line 839 "perly.y"
-                        {
+  case 138:
+#line 969 "perly.y"
+    {
                             ENTER;
                             SAVEIV(parser->sig_elems);
                             SAVEIV(parser->sig_optelems);
@@ -974,14 +1109,14 @@ case 2:
 
     break;
 
-  case 127:
-#line 850 "perly.y"
-                        {
+  case 139:
+#line 980 "perly.y"
+    {
                             OP            *sigops = (ps[0].val.opval);
                             struct op_argcheck_aux *aux;
                             OP            *check;
 
-			    if (!FEATURE_SIGNATURES_IS_ENABLED)
+			    if (!FEATURE_SIGNATURES_IS_ENABLED && !CvIsMETHOD(PL_compcv))
 			        Perl_croak(aTHX_ "Experimental "
                                     "subroutine signatures not enabled");
 
@@ -1031,15 +1166,15 @@ case 2:
 
     break;
 
-  case 129:
-#line 907 "perly.y"
-                                { (yyval.opval) = NULL; }
+  case 141:
+#line 1037 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 130:
-#line 913 "perly.y"
-                        {
+  case 142:
+#line 1043 "perly.y"
+    {
 			  if (parser->copline > (line_t)(ps[-2].val.ival))
 			      parser->copline = (line_t)(ps[-2].val.ival);
 			  (yyval.opval) = block_end((ps[-3].val.ival), (ps[-1].val.opval));
@@ -1047,15 +1182,15 @@ case 2:
 
     break;
 
-  case 132:
-#line 925 "perly.y"
-                                   { (yyval.opval) = NULL; }
+  case 144:
+#line 1055 "perly.y"
+    { (yyval.opval) = NULL; }
 
     break;
 
-  case 133:
-#line 930 "perly.y"
-                        {
+  case 145:
+#line 1060 "perly.y"
+    {
 			  if (parser->copline > (line_t)(ps[-2].val.ival))
 			      parser->copline = (line_t)(ps[-2].val.ival);
 			  (yyval.opval) = block_end((ps[-4].val.ival),
@@ -1064,52 +1199,64 @@ case 2:
 
     break;
 
-  case 134:
-#line 941 "perly.y"
-                        { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 146:
+#line 1071 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 135:
-#line 943 "perly.y"
-                        { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 147:
+#line 1073 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 137:
-#line 949 "perly.y"
-                        { (yyval.opval) = (ps[-1].val.opval); }
+  case 148:
+#line 1075 "perly.y"
+    { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 138:
-#line 951 "perly.y"
-                        {
+  case 149:
+#line 1077 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
+
+    break;
+
+  case 151:
+#line 1083 "perly.y"
+    { (yyval.opval) = (ps[-1].val.opval); }
+
+    break;
+
+  case 152:
+#line 1085 "perly.y"
+    {
 			  OP* term = (ps[0].val.opval);
 			  (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
 			}
 
     break;
 
-  case 140:
-#line 960 "perly.y"
-                        { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
+  case 154:
+#line 1094 "perly.y"
+    { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
 				op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
 			}
 
     break;
 
-  case 141:
-#line 964 "perly.y"
-                        { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
+  case 155:
+#line 1098 "perly.y"
+    { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
 				op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
 			}
 
     break;
 
-  case 142:
-#line 968 "perly.y"
-                        { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
+  case 156:
+#line 1102 "perly.y"
+    { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST,
 				    op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
 				    newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
@@ -1117,18 +1264,18 @@ case 2:
 
     break;
 
-  case 143:
-#line 974 "perly.y"
-                        { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
+  case 157:
+#line 1108 "perly.y"
+    { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
 				    newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
 			}
 
     break;
 
-  case 144:
-#line 979 "perly.y"
-                        { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
+  case 158:
+#line 1113 "perly.y"
+    { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST,
 				    op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
 				    newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
@@ -1136,9 +1283,9 @@ case 2:
 
     break;
 
-  case 145:
-#line 985 "perly.y"
-                        { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
+  case 159:
+#line 1119 "perly.y"
+    { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST,
 				    op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
 				    newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
@@ -1146,97 +1293,97 @@ case 2:
 
     break;
 
-  case 146:
-#line 991 "perly.y"
-                        { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+  case 160:
+#line 1125 "perly.y"
+    { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
 
     break;
 
-  case 147:
-#line 993 "perly.y"
-                        { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
+  case 161:
+#line 1127 "perly.y"
+    { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
 
     break;
 
-  case 148:
-#line 995 "perly.y"
-                        { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
+  case 162:
+#line 1129 "perly.y"
+    { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
 
     break;
 
-  case 149:
-#line 997 "perly.y"
-                        { SvREFCNT_inc_simple_void(PL_compcv);
+  case 163:
+#line 1131 "perly.y"
+    { SvREFCNT_inc_simple_void(PL_compcv);
 			  (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); }
 
     break;
 
-  case 150:
-#line 1000 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 164:
+#line 1134 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 				 op_append_elem(OP_LIST,
 				   op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
 			}
 
     break;
 
-  case 153:
-#line 1015 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
+  case 167:
+#line 1149 "perly.y"
+    { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
 
     break;
 
-  case 154:
-#line 1017 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
+  case 168:
+#line 1151 "perly.y"
+    { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
 			}
 
     break;
 
-  case 155:
-#line 1020 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_AELEM, 0,
+  case 169:
+#line 1154 "perly.y"
+    { (yyval.opval) = newBINOP(OP_AELEM, 0,
 					ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
 					scalar((ps[-1].val.opval)));
 			}
 
     break;
 
-  case 156:
-#line 1025 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_AELEM, 0,
+  case 170:
+#line 1159 "perly.y"
+    { (yyval.opval) = newBINOP(OP_AELEM, 0,
 					ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
 					scalar((ps[-1].val.opval)));
 			}
 
     break;
 
-  case 157:
-#line 1030 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
+  case 171:
+#line 1164 "perly.y"
+    { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
 			}
 
     break;
 
-  case 158:
-#line 1033 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_HELEM, 0,
+  case 172:
+#line 1167 "perly.y"
+    { (yyval.opval) = newBINOP(OP_HELEM, 0,
 					ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
 					jmaybe((ps[-2].val.opval))); }
 
     break;
 
-  case 159:
-#line 1037 "perly.y"
-                        { (yyval.opval) = newBINOP(OP_HELEM, 0,
+  case 173:
+#line 1171 "perly.y"
+    { (yyval.opval) = newBINOP(OP_HELEM, 0,
 					ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
 					jmaybe((ps[-2].val.opval))); }
 
     break;
 
-  case 160:
-#line 1041 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 174:
+#line 1175 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 				   newCVREF(0, scalar((ps[-3].val.opval))));
 			  if (parser->expect == XBLOCK)
 			      parser->expect = XOPERATOR;
@@ -1244,9 +1391,9 @@ case 2:
 
     break;
 
-  case 161:
-#line 1047 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 175:
+#line 1181 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 				   op_append_elem(OP_LIST, (ps[-1].val.opval),
 				       newCVREF(0, scalar((ps[-4].val.opval)))));
 			  if (parser->expect == XBLOCK)
@@ -1255,9 +1402,9 @@ case 2:
 
     break;
 
-  case 162:
-#line 1055 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 176:
+#line 1189 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 				   op_append_elem(OP_LIST, (ps[-1].val.opval),
 					       newCVREF(0, scalar((ps[-3].val.opval)))));
 			  if (parser->expect == XBLOCK)
@@ -1266,9 +1413,9 @@ case 2:
 
     break;
 
-  case 163:
-#line 1062 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 177:
+#line 1196 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 				   newCVREF(0, scalar((ps[-2].val.opval))));
 			  if (parser->expect == XBLOCK)
 			      parser->expect = XOPERATOR;
@@ -1276,224 +1423,278 @@ case 2:
 
     break;
 
-  case 164:
-#line 1068 "perly.y"
-                        { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
+  case 178:
+#line 1202 "perly.y"
+    { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
+
+    break;
+
+  case 179:
+#line 1204 "perly.y"
+    { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
 
     break;
 
-  case 165:
-#line 1070 "perly.y"
-                        { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
+  case 180:
+#line 1206 "perly.y"
+    { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
 
     break;
 
-  case 166:
-#line 1072 "perly.y"
-                        { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); }
+  case 181:
+#line 1211 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 167:
-#line 1077 "perly.y"
-                        { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
+  case 182:
+#line 1213 "perly.y"
+    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
 
     break;
 
-  case 168:
-#line 1079 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 183:
+#line 1215 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 169:
-#line 1081 "perly.y"
-                        {   if ((ps[-1].val.ival) != OP_REPEAT)
+  case 184:
+#line 1217 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
+    break;
+
+  case 185:
+#line 1219 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
+
+    break;
+
+  case 186:
+#line 1221 "perly.y"
+    {   if ((ps[-1].val.ival) != OP_REPEAT)
 				scalar((ps[-2].val.opval));
 			    (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
 			}
 
     break;
 
-  case 170:
-#line 1086 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 187:
+#line 1226 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 171:
-#line 1088 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 188:
+#line 1228 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 172:
-#line 1090 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 189:
+#line 1230 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 173:
-#line 1092 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 190:
+#line 1232 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 174:
-#line 1094 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 191:
+#line 1234 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 175:
-#line 1096 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 192:
+#line 1236 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 176:
-#line 1098 "perly.y"
-                        { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 193:
+#line 1238 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 177:
-#line 1100 "perly.y"
-                        { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 194:
+#line 1240 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 178:
-#line 1102 "perly.y"
-                        { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 195:
+#line 1242 "perly.y"
+    { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 179:
-#line 1104 "perly.y"
-                        { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 196:
+#line 1244 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 180:
-#line 1106 "perly.y"
-                        { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 197:
+#line 1246 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 181:
-#line 1110 "perly.y"
-                        { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); }
+  case 198:
+#line 1248 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 182:
-#line 1112 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 199:
+#line 1250 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 183:
-#line 1114 "perly.y"
-                        { yyerror("syntax error"); YYERROR; }
+  case 200:
+#line 1252 "perly.y"
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 184:
-#line 1116 "perly.y"
-                        { yyerror("syntax error"); YYERROR; }
+  case 201:
+#line 1254 "perly.y"
+    { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 185:
-#line 1120 "perly.y"
-                        { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 202:
+#line 1256 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 186:
-#line 1122 "perly.y"
-                        { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 203:
+#line 1260 "perly.y"
+    { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); }
 
     break;
 
-  case 187:
-#line 1126 "perly.y"
-                        { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); }
+  case 204:
+#line 1262 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 188:
-#line 1128 "perly.y"
-                        { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+  case 205:
+#line 1264 "perly.y"
+    { yyerror("syntax error"); YYERROR; }
 
     break;
 
-  case 189:
-#line 1130 "perly.y"
-                        { yyerror("syntax error"); YYERROR; }
+  case 206:
+#line 1266 "perly.y"
+    { yyerror("syntax error"); YYERROR; }
 
     break;
 
-  case 190:
-#line 1132 "perly.y"
-                        { yyerror("syntax error"); YYERROR; }
+  case 207:
+#line 1268 "perly.y"
+    { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); }
 
     break;
 
-  case 191:
-#line 1136 "perly.y"
-                        { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 208:
+#line 1272 "perly.y"
+    { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 192:
-#line 1138 "perly.y"
-                        { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 209:
+#line 1274 "perly.y"
+    { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 193:
-#line 1143 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
+  case 210:
+#line 1278 "perly.y"
+    { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); }
 
     break;
 
-  case 194:
-#line 1145 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 211:
+#line 1280 "perly.y"
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
 
     break;
 
-  case 195:
-#line 1148 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+  case 212:
+#line 1282 "perly.y"
+    { yyerror("syntax error"); YYERROR; }
 
     break;
 
-  case 196:
-#line 1150 "perly.y"
-                        { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
+  case 213:
+#line 1284 "perly.y"
+    { yyerror("syntax error"); YYERROR; }
 
     break;
 
-  case 197:
-#line 1152 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_POSTINC, 0,
+  case 214:
+#line 1288 "perly.y"
+    { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+
+    break;
+
+  case 215:
+#line 1290 "perly.y"
+    { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+
+    break;
+
+  case 216:
+#line 1295 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
+
+    break;
+
+  case 217:
+#line 1297 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
+
+    break;
+
+  case 218:
+#line 1300 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+
+    break;
+
+  case 219:
+#line 1302 "perly.y"
+    { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
+
+    break;
+
+  case 220:
+#line 1304 "perly.y"
+    { (yyval.opval) = newUNOP(OP_POSTINC, 0,
 					op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
 
     break;
 
-  case 198:
-#line 1155 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
+  case 221:
+#line 1307 "perly.y"
+    { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
 					op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
 
     break;
 
-  case 199:
-#line 1158 "perly.y"
-                        { (yyval.opval) = op_convert_list(OP_JOIN, 0,
+  case 222:
+#line 1310 "perly.y"
+    { (yyval.opval) = op_convert_list(OP_JOIN, 0,
 				       op_append_elem(
 					OP_LIST,
 					newSVREF(scalar(
@@ -1506,139 +1707,148 @@ case 2:
 
     break;
 
-  case 200:
-#line 1169 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_PREINC, 0,
+  case 223:
+#line 1321 "perly.y"
+    { (yyval.opval) = newUNOP(OP_PREINC, 0,
 					op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
 
     break;
 
-  case 201:
-#line 1172 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_PREDEC, 0,
+  case 224:
+#line 1324 "perly.y"
+    { (yyval.opval) = newUNOP(OP_PREDEC, 0,
 					op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
 
     break;
 
-  case 202:
-#line 1180 "perly.y"
-                        { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
+  case 225:
+#line 1332 "perly.y"
+    { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
 
     break;
 
-  case 203:
-#line 1182 "perly.y"
-                        { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
+  case 226:
+#line 1334 "perly.y"
+    { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
 
     break;
 
-  case 204:
-#line 1184 "perly.y"
-                        { SvREFCNT_inc_simple_void(PL_compcv);
+  case 227:
+#line 1336 "perly.y"
+    { SvREFCNT_inc_simple_void(PL_compcv);
 			  (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 205:
-#line 1187 "perly.y"
-                        { SvREFCNT_inc_simple_void(PL_compcv);
+  case 228:
+#line 1339 "perly.y"
+    { SvREFCNT_inc_simple_void(PL_compcv);
 			  (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 206:
-#line 1193 "perly.y"
-                        { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
+  case 229:
+#line 1342 "perly.y"
+    {
+			  SvREFCNT_inc_simple_void(PL_compcv);
+			  (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval));
+			}
 
     break;
 
-  case 207:
-#line 1195 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
+  case 230:
+#line 1350 "perly.y"
+    { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
 
     break;
 
-  case 212:
-#line 1203 "perly.y"
-                        { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
+  case 231:
+#line 1352 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
 
     break;
 
-  case 213:
-#line 1205 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
+  case 236:
+#line 1360 "perly.y"
+    { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
 
     break;
 
-  case 214:
-#line 1207 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 237:
+#line 1362 "perly.y"
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
 
     break;
 
-  case 215:
-#line 1209 "perly.y"
-                        { (yyval.opval) = localize((ps[0].val.opval),0); }
+  case 238:
+#line 1364 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 216:
-#line 1211 "perly.y"
-                        { (yyval.opval) = sawparens((ps[-1].val.opval)); }
+  case 239:
+#line 1366 "perly.y"
+    { (yyval.opval) = localize((ps[0].val.opval),0); }
 
     break;
 
-  case 217:
-#line 1213 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 240:
+#line 1368 "perly.y"
+    { (yyval.opval) = sawparens((ps[-1].val.opval)); }
 
     break;
 
-  case 218:
-#line 1215 "perly.y"
-                        { (yyval.opval) = sawparens(newNULLLIST()); }
+  case 241:
+#line 1370 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 219:
-#line 1217 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 242:
+#line 1372 "perly.y"
+    { (yyval.opval) = sawparens(newNULLLIST()); }
 
     break;
 
-  case 220:
-#line 1219 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 243:
+#line 1374 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 221:
-#line 1221 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 244:
+#line 1376 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 222:
-#line 1223 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 245:
+#line 1378 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 223:
-#line 1225 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
+  case 246:
+#line 1380 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 224:
-#line 1227 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 247:
+#line 1382 "perly.y"
+    { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
 
     break;
 
-  case 225:
-#line 1229 "perly.y"
-                        { (yyval.opval) = op_prepend_elem(OP_ASLICE,
+  case 248:
+#line 1384 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
+
+    break;
+
+  case 249:
+#line 1386 "perly.y"
+    { (yyval.opval) = op_prepend_elem(OP_ASLICE,
 				newOP(OP_PUSHMARK, 0),
 				    newLISTOP(OP_ASLICE, 0,
 					list((ps[-1].val.opval)),
@@ -1650,9 +1860,9 @@ case 2:
 
     break;
 
-  case 226:
-#line 1239 "perly.y"
-                        { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
+  case 250:
+#line 1396 "perly.y"
+    { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
 				newOP(OP_PUSHMARK, 0),
 				    newLISTOP(OP_KVASLICE, 0,
 					list((ps[-1].val.opval)),
@@ -1664,9 +1874,9 @@ case 2:
 
     break;
 
-  case 227:
-#line 1249 "perly.y"
-                        { (yyval.opval) = op_prepend_elem(OP_HSLICE,
+  case 251:
+#line 1406 "perly.y"
+    { (yyval.opval) = op_prepend_elem(OP_HSLICE,
 				newOP(OP_PUSHMARK, 0),
 				    newLISTOP(OP_HSLICE, 0,
 					list((ps[-2].val.opval)),
@@ -1678,9 +1888,9 @@ case 2:
 
     break;
 
-  case 228:
-#line 1259 "perly.y"
-                        { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
+  case 252:
+#line 1416 "perly.y"
+    { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
 				newOP(OP_PUSHMARK, 0),
 				    newLISTOP(OP_KVHSLICE, 0,
 					list((ps[-2].val.opval)),
@@ -1692,182 +1902,182 @@ case 2:
 
     break;
 
-  case 229:
-#line 1269 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 253:
+#line 1426 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 230:
-#line 1271 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
+  case 254:
+#line 1428 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
 
     break;
 
-  case 231:
-#line 1273 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
+  case 255:
+#line 1430 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
 			}
 
     break;
 
-  case 232:
-#line 1276 "perly.y"
-                        {
+  case 256:
+#line 1433 "perly.y"
+    {
 			  (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
 			}
 
     break;
 
-  case 233:
-#line 1281 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 257:
+#line 1438 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 			    op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
 			}
 
     break;
 
-  case 234:
-#line 1285 "perly.y"
-                        { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
+  case 258:
+#line 1442 "perly.y"
+    { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
 
     break;
 
-  case 235:
-#line 1287 "perly.y"
-                        { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
+  case 259:
+#line 1444 "perly.y"
+    { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
 
     break;
 
-  case 236:
-#line 1289 "perly.y"
-                        { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
+  case 260:
+#line 1446 "perly.y"
+    { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
 
     break;
 
-  case 237:
-#line 1291 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
+  case 261:
+#line 1448 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
 				       scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
 
     break;
 
-  case 238:
-#line 1294 "perly.y"
-                        { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
+  case 262:
+#line 1451 "perly.y"
+    { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
 
     break;
 
-  case 239:
-#line 1296 "perly.y"
-                        { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
+  case 263:
+#line 1453 "perly.y"
+    { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
 			    PL_hints |= HINT_BLOCK_SCOPE; }
 
     break;
 
-  case 240:
-#line 1299 "perly.y"
-                        { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
+  case 264:
+#line 1456 "perly.y"
+    { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
 
     break;
 
-  case 241:
-#line 1301 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+  case 265:
+#line 1458 "perly.y"
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
 
     break;
 
-  case 242:
-#line 1303 "perly.y"
-                        { (yyval.opval) = newOP((ps[0].val.ival), 0); }
+  case 266:
+#line 1460 "perly.y"
+    { (yyval.opval) = newOP((ps[0].val.ival), 0); }
 
     break;
 
-  case 243:
-#line 1305 "perly.y"
-                        { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+  case 267:
+#line 1462 "perly.y"
+    { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
 
     break;
 
-  case 244:
-#line 1307 "perly.y"
-                        { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+  case 268:
+#line 1464 "perly.y"
+    { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
 
     break;
 
-  case 245:
-#line 1309 "perly.y"
-                        { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
+  case 269:
+#line 1466 "perly.y"
+    { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
 
     break;
 
-  case 246:
-#line 1311 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
+  case 270:
+#line 1468 "perly.y"
+    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
 
     break;
 
-  case 247:
-#line 1313 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
+  case 271:
+#line 1470 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
 
     break;
 
-  case 248:
-#line 1315 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
+  case 272:
+#line 1472 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
 			    op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
 
     break;
 
-  case 249:
-#line 1318 "perly.y"
-                        { (yyval.opval) = newOP((ps[0].val.ival), 0); }
+  case 273:
+#line 1475 "perly.y"
+    { (yyval.opval) = newOP((ps[0].val.ival), 0); }
 
     break;
 
-  case 250:
-#line 1320 "perly.y"
-                        { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
+  case 274:
+#line 1477 "perly.y"
+    { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
 
     break;
 
-  case 251:
-#line 1322 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 275:
+#line 1479 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 252:
-#line 1324 "perly.y"
-                        { (yyval.opval) = (ps[-2].val.opval); }
+  case 276:
+#line 1481 "perly.y"
+    { (yyval.opval) = (ps[-2].val.opval); }
 
     break;
 
-  case 253:
-#line 1326 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
+  case 277:
+#line 1483 "perly.y"
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
 
     break;
 
-  case 254:
-#line 1328 "perly.y"
-                        { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
+  case 278:
+#line 1485 "perly.y"
+    { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
                           ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
                           : newOP((ps[-2].val.ival), OPf_SPECIAL); }
 
     break;
 
-  case 255:
-#line 1332 "perly.y"
-                        { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
+  case 279:
+#line 1489 "perly.y"
+    { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
 
     break;
 
-  case 256:
-#line 1334 "perly.y"
-                        {
+  case 280:
+#line 1491 "perly.y"
+    {
 			    if (   (ps[0].val.opval)->op_type != OP_TRANS
 			        && (ps[0].val.opval)->op_type != OP_TRANSR
 				&& (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
@@ -1880,193 +2090,264 @@ case 2:
 
     break;
 
-  case 257:
-#line 1345 "perly.y"
-                        { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
+  case 281:
+#line 1502 "perly.y"
+    { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
 
     break;
 
-  case 261:
-#line 1354 "perly.y"
-                        { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
+  case 285:
+#line 1511 "perly.y"
+    { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
 
     break;
 
-  case 262:
-#line 1356 "perly.y"
-                        { (yyval.opval) = localize((ps[0].val.opval),1); }
+  case 286:
+#line 1513 "perly.y"
+    { (yyval.opval) = localize((ps[0].val.opval),1); }
 
     break;
 
-  case 263:
-#line 1358 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
+  case 287:
+#line 1515 "perly.y"
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
 
     break;
 
-  case 264:
-#line 1360 "perly.y"
-                        { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
+  case 288:
+#line 1517 "perly.y"
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
 
     break;
 
-  case 265:
-#line 1365 "perly.y"
-                        { (yyval.opval) = sawparens((ps[-1].val.opval)); }
+  case 289:
+#line 1522 "perly.y"
+    { (yyval.opval) = sawparens((ps[-1].val.opval)); }
 
     break;
 
-  case 266:
-#line 1367 "perly.y"
-                        { (yyval.opval) = sawparens(newNULLLIST()); }
+  case 290:
+#line 1524 "perly.y"
+    { (yyval.opval) = sawparens(newNULLLIST()); }
 
     break;
 
-  case 267:
-#line 1370 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 291:
+#line 1527 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 268:
-#line 1372 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 292:
+#line 1529 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 269:
-#line 1374 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 293:
+#line 1531 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 275:
-#line 1390 "perly.y"
-                                        { (yyval.opval) = (ps[0].val.opval); }
+  case 294:
+#line 1536 "perly.y"
+    {
+			  (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ];
+			  op_free((ps[0].val.opval));
+			}
 
     break;
 
-  case 276:
-#line 1396 "perly.y"
-                        { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
+  case 295:
+#line 1541 "perly.y"
+    {
+			  (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ];
+			  op_free((ps[0].val.opval));
+			}
 
     break;
 
-  case 277:
-#line 1401 "perly.y"
-                        { (yyval.opval) = (ps[-1].val.opval); }
+  case 296:
+#line 1546 "perly.y"
+    {
+			  (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ];
+			  op_free((ps[0].val.opval));
+			}
 
     break;
 
-  case 278:
-#line 1403 "perly.y"
-                        {
+  case 297:
+#line 1554 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
+
+    break;
+
+  case 298:
+#line 1556 "perly.y"
+    { (yyval.opval) = NULL; }
+
+    break;
+
+  case 300:
+#line 1562 "perly.y"
+    {
+			  parser->in_my = 0;
+			  if((ps[0].val.opval))
+			    class_apply_field_attributes((PADNAME *)(ps[-1].val.pval), (ps[0].val.opval));
+			  (yyval.opval) = newOP(OP_NULL, 0);
+			}
+
+    break;
+
+  case 301:
+#line 1569 "perly.y"
+    {
+			  parser->in_my = 0;
+			  if((ps[-1].val.opval))
+			    class_apply_field_attributes((PADNAME *)(ps[-2].val.pval), (ps[-1].val.opval));
+			  ENTER;
+			  class_prepare_initfield_parse();
+			}
+
+    break;
+
+  case 302:
+#line 1577 "perly.y"
+    {
+			  class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval));
+			  LEAVE;
+			  (yyval.opval) = newOP(OP_NULL, 0);
+			}
+
+    break;
+
+  case 308:
+#line 1597 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
+
+    break;
+
+  case 309:
+#line 1603 "perly.y"
+    { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
+
+    break;
+
+  case 310:
+#line 1608 "perly.y"
+    { (yyval.opval) = (ps[-1].val.opval); }
+
+    break;
+
+  case 311:
+#line 1610 "perly.y"
+    {
 			  (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval));
 			}
 
     break;
 
-  case 280:
-#line 1410 "perly.y"
-                        { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
+  case 313:
+#line 1617 "perly.y"
+    { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
-  case 288:
-#line 1427 "perly.y"
-                        { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
+  case 321:
+#line 1634 "perly.y"
+    { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
 
     break;
 
-  case 289:
-#line 1431 "perly.y"
-                        { (yyval.opval) = newSVREF((ps[0].val.opval)); }
+  case 322:
+#line 1638 "perly.y"
+    { (yyval.opval) = newSVREF((ps[0].val.opval)); }
 
     break;
 
-  case 290:
-#line 1435 "perly.y"
-                        { (yyval.opval) = newAVREF((ps[0].val.opval));
+  case 323:
+#line 1642 "perly.y"
+    { (yyval.opval) = newAVREF((ps[0].val.opval));
 			  if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
 			}
 
     break;
 
-  case 291:
-#line 1441 "perly.y"
-                        { (yyval.opval) = newHVREF((ps[0].val.opval));
+  case 324:
+#line 1648 "perly.y"
+    { (yyval.opval) = newHVREF((ps[0].val.opval));
 			  if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
 			}
 
     break;
 
-  case 292:
-#line 1447 "perly.y"
-                        { (yyval.opval) = newAVREF((ps[0].val.opval)); }
+  case 325:
+#line 1654 "perly.y"
+    { (yyval.opval) = newAVREF((ps[0].val.opval)); }
 
     break;
 
-  case 293:
-#line 1449 "perly.y"
-                        { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
+  case 326:
+#line 1656 "perly.y"
+    { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
 
     break;
 
-  case 294:
-#line 1453 "perly.y"
-                        { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
+  case 327:
+#line 1660 "perly.y"
+    { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
 
     break;
 
-  case 296:
-#line 1458 "perly.y"
-                        { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
+  case 329:
+#line 1665 "perly.y"
+    { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
 
     break;
 
-  case 298:
-#line 1463 "perly.y"
-                        { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
+  case 331:
+#line 1670 "perly.y"
+    { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
 
     break;
 
-  case 300:
-#line 1468 "perly.y"
-                        { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
+  case 333:
+#line 1675 "perly.y"
+    { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
 
     break;
 
-  case 301:
-#line 1473 "perly.y"
-                        { (yyval.opval) = scalar((ps[0].val.opval)); }
+  case 334:
+#line 1680 "perly.y"
+    { (yyval.opval) = scalar((ps[0].val.opval)); }
 
     break;
 
-  case 302:
-#line 1475 "perly.y"
-                        { (yyval.opval) = scalar((ps[0].val.opval)); }
+  case 335:
+#line 1682 "perly.y"
+    { (yyval.opval) = scalar((ps[0].val.opval)); }
 
     break;
 
-  case 303:
-#line 1477 "perly.y"
-                        { (yyval.opval) = op_scope((ps[0].val.opval)); }
+  case 336:
+#line 1684 "perly.y"
+    { (yyval.opval) = op_scope((ps[0].val.opval)); }
 
     break;
 
-  case 304:
-#line 1480 "perly.y"
-                        { (yyval.opval) = (ps[0].val.opval); }
+  case 337:
+#line 1687 "perly.y"
+    { (yyval.opval) = (ps[0].val.opval); }
 
     break;
 
 
 
-
       default: break;
     
 
 /* Generated from:
- * 0caf1eb1cc4750131dc71e3a22ead383ed9a123dec61ccd23408ff13441fafde perly.y
+ * 0a5fcd15cf0b7afb57ade6ceaf68037a38dd194acd9d60d3e4ad99c15233af75 perly.y
  * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/perly.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perly.c,v
diff -u -p -a -u -p -r1.19 perly.c
--- gnu/usr.bin/perl/perly.c	15 Feb 2023 01:36:13 -0000	1.19
+++ gnu/usr.bin/perl/perly.c	21 Feb 2024 15:47:02 -0000
@@ -488,7 +488,8 @@ Perl_yyparse (pTHX_ int gramtype)
       yyerrlab:
         /* If not already recovering from an error, report this error.  */
         if (!parser->yyerrstatus) {
-            yyerror ("syntax error");
+            yyerror("syntax error");
+            yyquit();
         }
 
 
Index: gnu/usr.bin/perl/perly.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perly.h,v
diff -u -p -a -u -p -r1.14 perly.h
--- gnu/usr.bin/perl/perly.h	15 Feb 2023 01:36:13 -0000	1.14
+++ gnu/usr.bin/perl/perly.h	21 Feb 2024 15:47:02 -0000
@@ -1,17 +1,17 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen_perly.pl from perly.y.
    Any changes made here will be lost!
  */
 
-#define PERL_BISON_VERSION  30006
+#define PERL_BISON_VERSION  30003
 
 #ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 3.6.4.  */
+/* A Bison parser, made by GNU Bison 3.3.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -40,9 +40,8 @@
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
-   especially those whose name start with YY_ or yy_.  They are
-   private implementation details that can be changed or removed.  */
+/* Undocumented macros, especially those whose name start with YY_,
+   are private implementation details.  Do not rely on them.  */
 
 /* Debug traces.  */
 #ifndef YYDEBUG
@@ -52,129 +51,140 @@
 extern int yydebug;
 #endif
 
-/* Token kinds.  */
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
   enum yytokentype
   {
-    YYEMPTY = -2,
-    YYEOF = 0,                     /* "end of file"  */
-    YYerror = 256,                 /* error  */
-    YYUNDEF = 257,                 /* "invalid token"  */
-    GRAMPROG = 258,                /* GRAMPROG  */
-    GRAMEXPR = 259,                /* GRAMEXPR  */
-    GRAMBLOCK = 260,               /* GRAMBLOCK  */
-    GRAMBARESTMT = 261,            /* GRAMBARESTMT  */
-    GRAMFULLSTMT = 262,            /* GRAMFULLSTMT  */
-    GRAMSTMTSEQ = 263,             /* GRAMSTMTSEQ  */
-    GRAMSUBSIGNATURE = 264,        /* GRAMSUBSIGNATURE  */
-    PERLY_AMPERSAND = 265,         /* PERLY_AMPERSAND  */
-    PERLY_BRACE_OPEN = 266,        /* PERLY_BRACE_OPEN  */
-    PERLY_BRACE_CLOSE = 267,       /* PERLY_BRACE_CLOSE  */
-    PERLY_BRACKET_OPEN = 268,      /* PERLY_BRACKET_OPEN  */
-    PERLY_BRACKET_CLOSE = 269,     /* PERLY_BRACKET_CLOSE  */
-    PERLY_COMMA = 270,             /* PERLY_COMMA  */
-    PERLY_DOLLAR = 271,            /* PERLY_DOLLAR  */
-    PERLY_DOT = 272,               /* PERLY_DOT  */
-    PERLY_EQUAL_SIGN = 273,        /* PERLY_EQUAL_SIGN  */
-    PERLY_MINUS = 274,             /* PERLY_MINUS  */
-    PERLY_PERCENT_SIGN = 275,      /* PERLY_PERCENT_SIGN  */
-    PERLY_PLUS = 276,              /* PERLY_PLUS  */
-    PERLY_SEMICOLON = 277,         /* PERLY_SEMICOLON  */
-    PERLY_SLASH = 278,             /* PERLY_SLASH  */
-    PERLY_SNAIL = 279,             /* PERLY_SNAIL  */
-    PERLY_STAR = 280,              /* PERLY_STAR  */
-    BAREWORD = 281,                /* BAREWORD  */
-    METHOD = 282,                  /* METHOD  */
-    FUNCMETH = 283,                /* FUNCMETH  */
-    THING = 284,                   /* THING  */
-    PMFUNC = 285,                  /* PMFUNC  */
-    PRIVATEREF = 286,              /* PRIVATEREF  */
-    QWLIST = 287,                  /* QWLIST  */
-    FUNC0OP = 288,                 /* FUNC0OP  */
-    FUNC0SUB = 289,                /* FUNC0SUB  */
-    UNIOPSUB = 290,                /* UNIOPSUB  */
-    LSTOPSUB = 291,                /* LSTOPSUB  */
-    PLUGEXPR = 292,                /* PLUGEXPR  */
-    PLUGSTMT = 293,                /* PLUGSTMT  */
-    LABEL = 294,                   /* LABEL  */
-    FORMAT = 295,                  /* FORMAT  */
-    SUB = 296,                     /* SUB  */
-    SIGSUB = 297,                  /* SIGSUB  */
-    ANONSUB = 298,                 /* ANONSUB  */
-    ANON_SIGSUB = 299,             /* ANON_SIGSUB  */
-    PACKAGE = 300,                 /* PACKAGE  */
-    USE = 301,                     /* USE  */
-    WHILE = 302,                   /* WHILE  */
-    UNTIL = 303,                   /* UNTIL  */
-    IF = 304,                      /* IF  */
-    UNLESS = 305,                  /* UNLESS  */
-    ELSE = 306,                    /* ELSE  */
-    ELSIF = 307,                   /* ELSIF  */
-    CONTINUE = 308,                /* CONTINUE  */
-    FOR = 309,                     /* FOR  */
-    GIVEN = 310,                   /* GIVEN  */
-    WHEN = 311,                    /* WHEN  */
-    DEFAULT = 312,                 /* DEFAULT  */
-    TRY = 313,                     /* TRY  */
-    CATCH = 314,                   /* CATCH  */
-    FINALLY = 315,                 /* FINALLY  */
-    LOOPEX = 316,                  /* LOOPEX  */
-    DOTDOT = 317,                  /* DOTDOT  */
-    YADAYADA = 318,                /* YADAYADA  */
-    FUNC0 = 319,                   /* FUNC0  */
-    FUNC1 = 320,                   /* FUNC1  */
-    FUNC = 321,                    /* FUNC  */
-    UNIOP = 322,                   /* UNIOP  */
-    LSTOP = 323,                   /* LSTOP  */
-    MULOP = 324,                   /* MULOP  */
-    ADDOP = 325,                   /* ADDOP  */
-    DOLSHARP = 326,                /* DOLSHARP  */
-    DO = 327,                      /* DO  */
-    HASHBRACK = 328,               /* HASHBRACK  */
-    NOAMP = 329,                   /* NOAMP  */
-    LOCAL = 330,                   /* LOCAL  */
-    MY = 331,                      /* MY  */
-    REQUIRE = 332,                 /* REQUIRE  */
-    COLONATTR = 333,               /* COLONATTR  */
-    FORMLBRACK = 334,              /* FORMLBRACK  */
-    FORMRBRACK = 335,              /* FORMRBRACK  */
-    SUBLEXSTART = 336,             /* SUBLEXSTART  */
-    SUBLEXEND = 337,               /* SUBLEXEND  */
-    DEFER = 338,                   /* DEFER  */
-    PREC_LOW = 339,                /* PREC_LOW  */
-    OROP = 340,                    /* OROP  */
-    ANDOP = 341,                   /* ANDOP  */
-    NOTOP = 342,                   /* NOTOP  */
-    ASSIGNOP = 343,                /* ASSIGNOP  */
-    PERLY_QUESTION_MARK = 344,     /* PERLY_QUESTION_MARK  */
-    PERLY_COLON = 345,             /* PERLY_COLON  */
-    OROR = 346,                    /* OROR  */
-    DORDOR = 347,                  /* DORDOR  */
-    ANDAND = 348,                  /* ANDAND  */
-    BITOROP = 349,                 /* BITOROP  */
-    BITANDOP = 350,                /* BITANDOP  */
-    CHEQOP = 351,                  /* CHEQOP  */
-    NCEQOP = 352,                  /* NCEQOP  */
-    CHRELOP = 353,                 /* CHRELOP  */
-    NCRELOP = 354,                 /* NCRELOP  */
-    SHIFTOP = 355,                 /* SHIFTOP  */
-    MATCHOP = 356,                 /* MATCHOP  */
-    PERLY_EXCLAMATION_MARK = 357,  /* PERLY_EXCLAMATION_MARK  */
-    PERLY_TILDE = 358,             /* PERLY_TILDE  */
-    UMINUS = 359,                  /* UMINUS  */
-    REFGEN = 360,                  /* REFGEN  */
-    POWOP = 361,                   /* POWOP  */
-    PREINC = 362,                  /* PREINC  */
-    PREDEC = 363,                  /* PREDEC  */
-    POSTINC = 364,                 /* POSTINC  */
-    POSTDEC = 365,                 /* POSTDEC  */
-    POSTJOIN = 366,                /* POSTJOIN  */
-    ARROW = 367,                   /* ARROW  */
-    PERLY_PAREN_CLOSE = 368,       /* PERLY_PAREN_CLOSE  */
-    PERLY_PAREN_OPEN = 369         /* PERLY_PAREN_OPEN  */
+    GRAMPROG = 258,
+    GRAMEXPR = 259,
+    GRAMBLOCK = 260,
+    GRAMBARESTMT = 261,
+    GRAMFULLSTMT = 262,
+    GRAMSTMTSEQ = 263,
+    GRAMSUBSIGNATURE = 264,
+    PERLY_AMPERSAND = 265,
+    PERLY_BRACE_OPEN = 266,
+    PERLY_BRACE_CLOSE = 267,
+    PERLY_BRACKET_OPEN = 268,
+    PERLY_BRACKET_CLOSE = 269,
+    PERLY_COMMA = 270,
+    PERLY_DOLLAR = 271,
+    PERLY_DOT = 272,
+    PERLY_EQUAL_SIGN = 273,
+    PERLY_MINUS = 274,
+    PERLY_PERCENT_SIGN = 275,
+    PERLY_PLUS = 276,
+    PERLY_SEMICOLON = 277,
+    PERLY_SLASH = 278,
+    PERLY_SNAIL = 279,
+    PERLY_STAR = 280,
+    KW_FORMAT = 281,
+    KW_PACKAGE = 282,
+    KW_CLASS = 283,
+    KW_LOCAL = 284,
+    KW_MY = 285,
+    KW_FIELD = 286,
+    KW_IF = 287,
+    KW_ELSE = 288,
+    KW_ELSIF = 289,
+    KW_UNLESS = 290,
+    KW_FOR = 291,
+    KW_UNTIL = 292,
+    KW_WHILE = 293,
+    KW_CONTINUE = 294,
+    KW_GIVEN = 295,
+    KW_WHEN = 296,
+    KW_DEFAULT = 297,
+    KW_TRY = 298,
+    KW_CATCH = 299,
+    KW_FINALLY = 300,
+    KW_DEFER = 301,
+    KW_REQUIRE = 302,
+    KW_DO = 303,
+    KW_USE_or_NO = 304,
+    KW_SUB_named = 305,
+    KW_SUB_named_sig = 306,
+    KW_SUB_anon = 307,
+    KW_SUB_anon_sig = 308,
+    KW_METHOD_named = 309,
+    KW_METHOD_anon = 310,
+    BAREWORD = 311,
+    METHCALL0 = 312,
+    METHCALL = 313,
+    THING = 314,
+    PMFUNC = 315,
+    PRIVATEREF = 316,
+    QWLIST = 317,
+    FUNC0OP = 318,
+    FUNC0SUB = 319,
+    UNIOPSUB = 320,
+    LSTOPSUB = 321,
+    PLUGEXPR = 322,
+    PLUGSTMT = 323,
+    LABEL = 324,
+    LOOPEX = 325,
+    DOTDOT = 326,
+    YADAYADA = 327,
+    FUNC0 = 328,
+    FUNC1 = 329,
+    FUNC = 330,
+    UNIOP = 331,
+    LSTOP = 332,
+    POWOP = 333,
+    MULOP = 334,
+    ADDOP = 335,
+    DOLSHARP = 336,
+    HASHBRACK = 337,
+    NOAMP = 338,
+    COLONATTR = 339,
+    FORMLBRACK = 340,
+    FORMRBRACK = 341,
+    SUBLEXSTART = 342,
+    SUBLEXEND = 343,
+    PHASER = 344,
+    PREC_LOW = 345,
+    PLUGIN_LOW_OP = 346,
+    OROP = 347,
+    PLUGIN_LOGICAL_OR_LOW_OP = 348,
+    ANDOP = 349,
+    PLUGIN_LOGICAL_AND_LOW_OP = 350,
+    NOTOP = 351,
+    ASSIGNOP = 352,
+    PLUGIN_ASSIGN_OP = 353,
+    PERLY_QUESTION_MARK = 354,
+    PERLY_COLON = 355,
+    OROR = 356,
+    DORDOR = 357,
+    PLUGIN_LOGICAL_OR_OP = 358,
+    ANDAND = 359,
+    PLUGIN_LOGICAL_AND_OP = 360,
+    BITOROP = 361,
+    BITANDOP = 362,
+    CHEQOP = 363,
+    NCEQOP = 364,
+    CHRELOP = 365,
+    NCRELOP = 366,
+    PLUGIN_REL_OP = 367,
+    SHIFTOP = 368,
+    PLUGIN_ADD_OP = 369,
+    PLUGIN_MUL_OP = 370,
+    MATCHOP = 371,
+    PERLY_EXCLAMATION_MARK = 372,
+    PERLY_TILDE = 373,
+    UMINUS = 374,
+    REFGEN = 375,
+    PLUGIN_POW_OP = 376,
+    PREINC = 377,
+    PREDEC = 378,
+    POSTINC = 379,
+    POSTDEC = 380,
+    POSTJOIN = 381,
+    PLUGIN_HIGH_OP = 382,
+    ARROW = 383,
+    PERLY_PAREN_CLOSE = 384,
+    PERLY_PAREN_OPEN = 385
   };
-  typedef enum yytokentype yytoken_kind_t;
 #endif
 
 /* Value type.  */
@@ -185,10 +195,10 @@ S_is_opval_token(int type) {
     case BAREWORD:
     case FUNC0OP:
     case FUNC0SUB:
-    case FUNCMETH:
     case LABEL:
     case LSTOPSUB:
-    case METHOD:
+    case METHCALL:
+    case METHCALL0:
     case PLUGEXPR:
     case PLUGSTMT:
     case PMFUNC:
@@ -203,17 +213,18 @@ S_is_opval_token(int type) {
 #endif /* PERL_IN_TOKE_C */
 #endif /* PERL_CORE */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+
 union YYSTYPE
 {
 
     I32	ival; /* __DEFAULT__ (marker for regen_perly.pl;
 				must always be 1st union member) */
-    char *pval;
+    void *pval;
     OP *opval;
     GV *gvval;
 
-
 };
+
 typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
@@ -225,6 +236,6 @@ int yyparse (void);
 
 
 /* Generated from:
- * 0caf1eb1cc4750131dc71e3a22ead383ed9a123dec61ccd23408ff13441fafde perly.y
+ * 0a5fcd15cf0b7afb57ade6ceaf68037a38dd194acd9d60d3e4ad99c15233af75 perly.y
  * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/perly.tab
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perly.tab,v
diff -u -p -a -u -p -r1.6 perly.tab
--- gnu/usr.bin/perl/perly.tab	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/perly.tab	21 Feb 2024 15:47:02 -0000
@@ -1,263 +1,33 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen_perly.pl from perly.y.
    Any changes made here will be lost!
  */
 
-/* Symbol kind.  */
-enum yysymbol_kind_t
-{
-  YYSYMBOL_YYEMPTY = -2,
-  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
-  YYSYMBOL_YYerror = 1,                    /* error  */
-  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
-  YYSYMBOL_GRAMPROG = 3,                   /* GRAMPROG  */
-  YYSYMBOL_GRAMEXPR = 4,                   /* GRAMEXPR  */
-  YYSYMBOL_GRAMBLOCK = 5,                  /* GRAMBLOCK  */
-  YYSYMBOL_GRAMBARESTMT = 6,               /* GRAMBARESTMT  */
-  YYSYMBOL_GRAMFULLSTMT = 7,               /* GRAMFULLSTMT  */
-  YYSYMBOL_GRAMSTMTSEQ = 8,                /* GRAMSTMTSEQ  */
-  YYSYMBOL_GRAMSUBSIGNATURE = 9,           /* GRAMSUBSIGNATURE  */
-  YYSYMBOL_PERLY_AMPERSAND = 10,           /* PERLY_AMPERSAND  */
-  YYSYMBOL_PERLY_BRACE_OPEN = 11,          /* PERLY_BRACE_OPEN  */
-  YYSYMBOL_PERLY_BRACE_CLOSE = 12,         /* PERLY_BRACE_CLOSE  */
-  YYSYMBOL_PERLY_BRACKET_OPEN = 13,        /* PERLY_BRACKET_OPEN  */
-  YYSYMBOL_PERLY_BRACKET_CLOSE = 14,       /* PERLY_BRACKET_CLOSE  */
-  YYSYMBOL_PERLY_COMMA = 15,               /* PERLY_COMMA  */
-  YYSYMBOL_PERLY_DOLLAR = 16,              /* PERLY_DOLLAR  */
-  YYSYMBOL_PERLY_DOT = 17,                 /* PERLY_DOT  */
-  YYSYMBOL_PERLY_EQUAL_SIGN = 18,          /* PERLY_EQUAL_SIGN  */
-  YYSYMBOL_PERLY_MINUS = 19,               /* PERLY_MINUS  */
-  YYSYMBOL_PERLY_PERCENT_SIGN = 20,        /* PERLY_PERCENT_SIGN  */
-  YYSYMBOL_PERLY_PLUS = 21,                /* PERLY_PLUS  */
-  YYSYMBOL_PERLY_SEMICOLON = 22,           /* PERLY_SEMICOLON  */
-  YYSYMBOL_PERLY_SLASH = 23,               /* PERLY_SLASH  */
-  YYSYMBOL_PERLY_SNAIL = 24,               /* PERLY_SNAIL  */
-  YYSYMBOL_PERLY_STAR = 25,                /* PERLY_STAR  */
-  YYSYMBOL_BAREWORD = 26,                  /* BAREWORD  */
-  YYSYMBOL_METHOD = 27,                    /* METHOD  */
-  YYSYMBOL_FUNCMETH = 28,                  /* FUNCMETH  */
-  YYSYMBOL_THING = 29,                     /* THING  */
-  YYSYMBOL_PMFUNC = 30,                    /* PMFUNC  */
-  YYSYMBOL_PRIVATEREF = 31,                /* PRIVATEREF  */
-  YYSYMBOL_QWLIST = 32,                    /* QWLIST  */
-  YYSYMBOL_FUNC0OP = 33,                   /* FUNC0OP  */
-  YYSYMBOL_FUNC0SUB = 34,                  /* FUNC0SUB  */
-  YYSYMBOL_UNIOPSUB = 35,                  /* UNIOPSUB  */
-  YYSYMBOL_LSTOPSUB = 36,                  /* LSTOPSUB  */
-  YYSYMBOL_PLUGEXPR = 37,                  /* PLUGEXPR  */
-  YYSYMBOL_PLUGSTMT = 38,                  /* PLUGSTMT  */
-  YYSYMBOL_LABEL = 39,                     /* LABEL  */
-  YYSYMBOL_FORMAT = 40,                    /* FORMAT  */
-  YYSYMBOL_SUB = 41,                       /* SUB  */
-  YYSYMBOL_SIGSUB = 42,                    /* SIGSUB  */
-  YYSYMBOL_ANONSUB = 43,                   /* ANONSUB  */
-  YYSYMBOL_ANON_SIGSUB = 44,               /* ANON_SIGSUB  */
-  YYSYMBOL_PACKAGE = 45,                   /* PACKAGE  */
-  YYSYMBOL_USE = 46,                       /* USE  */
-  YYSYMBOL_WHILE = 47,                     /* WHILE  */
-  YYSYMBOL_UNTIL = 48,                     /* UNTIL  */
-  YYSYMBOL_IF = 49,                        /* IF  */
-  YYSYMBOL_UNLESS = 50,                    /* UNLESS  */
-  YYSYMBOL_ELSE = 51,                      /* ELSE  */
-  YYSYMBOL_ELSIF = 52,                     /* ELSIF  */
-  YYSYMBOL_CONTINUE = 53,                  /* CONTINUE  */
-  YYSYMBOL_FOR = 54,                       /* FOR  */
-  YYSYMBOL_GIVEN = 55,                     /* GIVEN  */
-  YYSYMBOL_WHEN = 56,                      /* WHEN  */
-  YYSYMBOL_DEFAULT = 57,                   /* DEFAULT  */
-  YYSYMBOL_TRY = 58,                       /* TRY  */
-  YYSYMBOL_CATCH = 59,                     /* CATCH  */
-  YYSYMBOL_FINALLY = 60,                   /* FINALLY  */
-  YYSYMBOL_LOOPEX = 61,                    /* LOOPEX  */
-  YYSYMBOL_DOTDOT = 62,                    /* DOTDOT  */
-  YYSYMBOL_YADAYADA = 63,                  /* YADAYADA  */
-  YYSYMBOL_FUNC0 = 64,                     /* FUNC0  */
-  YYSYMBOL_FUNC1 = 65,                     /* FUNC1  */
-  YYSYMBOL_FUNC = 66,                      /* FUNC  */
-  YYSYMBOL_UNIOP = 67,                     /* UNIOP  */
-  YYSYMBOL_LSTOP = 68,                     /* LSTOP  */
-  YYSYMBOL_MULOP = 69,                     /* MULOP  */
-  YYSYMBOL_ADDOP = 70,                     /* ADDOP  */
-  YYSYMBOL_DOLSHARP = 71,                  /* DOLSHARP  */
-  YYSYMBOL_DO = 72,                        /* DO  */
-  YYSYMBOL_HASHBRACK = 73,                 /* HASHBRACK  */
-  YYSYMBOL_NOAMP = 74,                     /* NOAMP  */
-  YYSYMBOL_LOCAL = 75,                     /* LOCAL  */
-  YYSYMBOL_MY = 76,                        /* MY  */
-  YYSYMBOL_REQUIRE = 77,                   /* REQUIRE  */
-  YYSYMBOL_COLONATTR = 78,                 /* COLONATTR  */
-  YYSYMBOL_FORMLBRACK = 79,                /* FORMLBRACK  */
-  YYSYMBOL_FORMRBRACK = 80,                /* FORMRBRACK  */
-  YYSYMBOL_SUBLEXSTART = 81,               /* SUBLEXSTART  */
-  YYSYMBOL_SUBLEXEND = 82,                 /* SUBLEXEND  */
-  YYSYMBOL_DEFER = 83,                     /* DEFER  */
-  YYSYMBOL_PREC_LOW = 84,                  /* PREC_LOW  */
-  YYSYMBOL_OROP = 85,                      /* OROP  */
-  YYSYMBOL_ANDOP = 86,                     /* ANDOP  */
-  YYSYMBOL_NOTOP = 87,                     /* NOTOP  */
-  YYSYMBOL_ASSIGNOP = 88,                  /* ASSIGNOP  */
-  YYSYMBOL_PERLY_QUESTION_MARK = 89,       /* PERLY_QUESTION_MARK  */
-  YYSYMBOL_PERLY_COLON = 90,               /* PERLY_COLON  */
-  YYSYMBOL_OROR = 91,                      /* OROR  */
-  YYSYMBOL_DORDOR = 92,                    /* DORDOR  */
-  YYSYMBOL_ANDAND = 93,                    /* ANDAND  */
-  YYSYMBOL_BITOROP = 94,                   /* BITOROP  */
-  YYSYMBOL_BITANDOP = 95,                  /* BITANDOP  */
-  YYSYMBOL_CHEQOP = 96,                    /* CHEQOP  */
-  YYSYMBOL_NCEQOP = 97,                    /* NCEQOP  */
-  YYSYMBOL_CHRELOP = 98,                   /* CHRELOP  */
-  YYSYMBOL_NCRELOP = 99,                   /* NCRELOP  */
-  YYSYMBOL_SHIFTOP = 100,                  /* SHIFTOP  */
-  YYSYMBOL_MATCHOP = 101,                  /* MATCHOP  */
-  YYSYMBOL_PERLY_EXCLAMATION_MARK = 102,   /* PERLY_EXCLAMATION_MARK  */
-  YYSYMBOL_PERLY_TILDE = 103,              /* PERLY_TILDE  */
-  YYSYMBOL_UMINUS = 104,                   /* UMINUS  */
-  YYSYMBOL_REFGEN = 105,                   /* REFGEN  */
-  YYSYMBOL_POWOP = 106,                    /* POWOP  */
-  YYSYMBOL_PREINC = 107,                   /* PREINC  */
-  YYSYMBOL_PREDEC = 108,                   /* PREDEC  */
-  YYSYMBOL_POSTINC = 109,                  /* POSTINC  */
-  YYSYMBOL_POSTDEC = 110,                  /* POSTDEC  */
-  YYSYMBOL_POSTJOIN = 111,                 /* POSTJOIN  */
-  YYSYMBOL_ARROW = 112,                    /* ARROW  */
-  YYSYMBOL_PERLY_PAREN_CLOSE = 113,        /* PERLY_PAREN_CLOSE  */
-  YYSYMBOL_PERLY_PAREN_OPEN = 114,         /* PERLY_PAREN_OPEN  */
-  YYSYMBOL_YYACCEPT = 115,                 /* $accept  */
-  YYSYMBOL_grammar = 116,                  /* grammar  */
-  YYSYMBOL_117_1 = 117,                    /* @1  */
-  YYSYMBOL_118_2 = 118,                    /* @2  */
-  YYSYMBOL_119_3 = 119,                    /* @3  */
-  YYSYMBOL_120_4 = 120,                    /* @4  */
-  YYSYMBOL_121_5 = 121,                    /* @5  */
-  YYSYMBOL_122_6 = 122,                    /* @6  */
-  YYSYMBOL_123_7 = 123,                    /* @7  */
-  YYSYMBOL_block = 124,                    /* block  */
-  YYSYMBOL_empty = 125,                    /* empty  */
-  YYSYMBOL_formblock = 126,                /* formblock  */
-  YYSYMBOL_remember = 127,                 /* remember  */
-  YYSYMBOL_mblock = 128,                   /* mblock  */
-  YYSYMBOL_mremember = 129,                /* mremember  */
-  YYSYMBOL_stmtseq = 130,                  /* stmtseq  */
-  YYSYMBOL_formstmtseq = 131,              /* formstmtseq  */
-  YYSYMBOL_fullstmt = 132,                 /* fullstmt  */
-  YYSYMBOL_labfullstmt = 133,              /* labfullstmt  */
-  YYSYMBOL_barestmt = 134,                 /* barestmt  */
-  YYSYMBOL_135_8 = 135,                    /* $@8  */
-  YYSYMBOL_136_9 = 136,                    /* $@9  */
-  YYSYMBOL_137_10 = 137,                   /* $@10  */
-  YYSYMBOL_138_11 = 138,                   /* $@11  */
-  YYSYMBOL_139_12 = 139,                   /* $@12  */
-  YYSYMBOL_140_13 = 140,                   /* @13  */
-  YYSYMBOL_141_14 = 141,                   /* $@14  */
-  YYSYMBOL_142_15 = 142,                   /* $@15  */
-  YYSYMBOL_143_16 = 143,                   /* $@16  */
-  YYSYMBOL_formline = 144,                 /* formline  */
-  YYSYMBOL_formarg = 145,                  /* formarg  */
-  YYSYMBOL_condition = 146,                /* condition  */
-  YYSYMBOL_sideff = 147,                   /* sideff  */
-  YYSYMBOL_else = 148,                     /* else  */
-  YYSYMBOL_cont = 149,                     /* cont  */
-  YYSYMBOL_finally = 150,                  /* finally  */
-  YYSYMBOL_mintro = 151,                   /* mintro  */
-  YYSYMBOL_nexpr = 152,                    /* nexpr  */
-  YYSYMBOL_texpr = 153,                    /* texpr  */
-  YYSYMBOL_iexpr = 154,                    /* iexpr  */
-  YYSYMBOL_mexpr = 155,                    /* mexpr  */
-  YYSYMBOL_mnexpr = 156,                   /* mnexpr  */
-  YYSYMBOL_formname = 157,                 /* formname  */
-  YYSYMBOL_startsub = 158,                 /* startsub  */
-  YYSYMBOL_startanonsub = 159,             /* startanonsub  */
-  YYSYMBOL_startformsub = 160,             /* startformsub  */
-  YYSYMBOL_subname = 161,                  /* subname  */
-  YYSYMBOL_proto = 162,                    /* proto  */
-  YYSYMBOL_subattrlist = 163,              /* subattrlist  */
-  YYSYMBOL_myattrlist = 164,               /* myattrlist  */
-  YYSYMBOL_sigvarname = 165,               /* sigvarname  */
-  YYSYMBOL_sigslurpsigil = 166,            /* sigslurpsigil  */
-  YYSYMBOL_sigslurpelem = 167,             /* sigslurpelem  */
-  YYSYMBOL_sigdefault = 168,               /* sigdefault  */
-  YYSYMBOL_sigscalarelem = 169,            /* sigscalarelem  */
-  YYSYMBOL_sigelem = 170,                  /* sigelem  */
-  YYSYMBOL_siglist = 171,                  /* siglist  */
-  YYSYMBOL_optsiglist = 172,               /* optsiglist  */
-  YYSYMBOL_optsubsignature = 173,          /* optsubsignature  */
-  YYSYMBOL_subsignature = 174,             /* subsignature  */
-  YYSYMBOL_subsigguts = 175,               /* subsigguts  */
-  YYSYMBOL_176_17 = 176,                   /* $@17  */
-  YYSYMBOL_optsubbody = 177,               /* optsubbody  */
-  YYSYMBOL_subbody = 178,                  /* subbody  */
-  YYSYMBOL_optsigsubbody = 179,            /* optsigsubbody  */
-  YYSYMBOL_sigsubbody = 180,               /* sigsubbody  */
-  YYSYMBOL_expr = 181,                     /* expr  */
-  YYSYMBOL_listexpr = 182,                 /* listexpr  */
-  YYSYMBOL_listop = 183,                   /* listop  */
-  YYSYMBOL_184_18 = 184,                   /* @18  */
-  YYSYMBOL_method = 185,                   /* method  */
-  YYSYMBOL_subscripted = 186,              /* subscripted  */
-  YYSYMBOL_termbinop = 187,                /* termbinop  */
-  YYSYMBOL_termrelop = 188,                /* termrelop  */
-  YYSYMBOL_relopchain = 189,               /* relopchain  */
-  YYSYMBOL_termeqop = 190,                 /* termeqop  */
-  YYSYMBOL_eqopchain = 191,                /* eqopchain  */
-  YYSYMBOL_termunop = 192,                 /* termunop  */
-  YYSYMBOL_anonymous = 193,                /* anonymous  */
-  YYSYMBOL_termdo = 194,                   /* termdo  */
-  YYSYMBOL_term = 195,                     /* term  */
-  YYSYMBOL_196_19 = 196,                   /* @19  */
-  YYSYMBOL_myattrterm = 197,               /* myattrterm  */
-  YYSYMBOL_myterm = 198,                   /* myterm  */
-  YYSYMBOL_optlistexpr = 199,              /* optlistexpr  */
-  YYSYMBOL_optexpr = 200,                  /* optexpr  */
-  YYSYMBOL_optrepl = 201,                  /* optrepl  */
-  YYSYMBOL_my_scalar = 202,                /* my_scalar  */
-  YYSYMBOL_list_of_scalars = 203,          /* list_of_scalars  */
-  YYSYMBOL_my_list_of_scalars = 204,       /* my_list_of_scalars  */
-  YYSYMBOL_my_var = 205,                   /* my_var  */
-  YYSYMBOL_refgen_topic = 206,             /* refgen_topic  */
-  YYSYMBOL_my_refgen = 207,                /* my_refgen  */
-  YYSYMBOL_amper = 208,                    /* amper  */
-  YYSYMBOL_scalar = 209,                   /* scalar  */
-  YYSYMBOL_ary = 210,                      /* ary  */
-  YYSYMBOL_hsh = 211,                      /* hsh  */
-  YYSYMBOL_arylen = 212,                   /* arylen  */
-  YYSYMBOL_star = 213,                     /* star  */
-  YYSYMBOL_sliceme = 214,                  /* sliceme  */
-  YYSYMBOL_kvslice = 215,                  /* kvslice  */
-  YYSYMBOL_gelem = 216,                    /* gelem  */
-  YYSYMBOL_indirob = 217                   /* indirob  */
-};
-typedef enum yysymbol_kind_t yysymbol_kind_t;
-
-
-
-
 #define YYFINAL  16
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   3293
+#define YYLAST   3664
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  115
+#define YYNTOKENS  131
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  103
+#define YYNNTS  113
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  304
+#define YYNRULES  337
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  610
-
-#define YYMAXUTOK   369
+#define YYNSTATES  669
 
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   385
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
    as returned by yylex, with out-of-bounds checking.  */
-#define YYTRANSLATE(YYX)                                \
-  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
-   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
-   : YYSYMBOL_YYUNDEF)
+#define YYTRANSLATE(YYX)                                                \
+  ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
    as returned by yylex.  */
-static const yytype_int8 yytranslate[] =
+static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -295,110 +65,109 @@ static const yytype_int8 yytranslate[] =
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_int16 yyrline[] =
+static const yytype_uint16 yyrline[] =
 {
-       0,   140,   140,   139,   151,   150,   161,   160,   174,   173,
-     187,   186,   200,   199,   210,   209,   222,   230,   234,   241,
-     246,   253,   260,   261,   271,   272,   281,   285,   289,   296,
-     306,   308,   321,   318,   342,   337,   358,   366,   365,   374,
-     380,   386,   391,   393,   395,   402,   410,   412,   409,   429,
-     434,   443,   450,   449,   464,   472,   479,   481,   478,   490,
-     497,   496,   511,   515,   519,   524,   532,   550,   551,   555,
-     559,   561,   563,   565,   567,   569,   571,   574,   580,   581,
-     586,   597,   598,   603,   605,   610,   617,   618,   622,   626,
-     630,   635,   639,   643,   644,   647,   653,   658,   664,   665,
-     670,   671,   676,   677,   679,   684,   686,   697,   699,   704,
-     706,   710,   730,   731,   733,   739,   804,   806,   812,   814,
-     818,   824,   825,   830,   831,   835,   839,   839,   906,   907,
-     912,   924,   925,   929,   940,   942,   944,   948,   950,   955,
-     959,   963,   967,   973,   978,   984,   990,   992,   994,   997,
-     996,  1007,  1008,  1012,  1016,  1019,  1024,  1029,  1032,  1036,
-    1040,  1046,  1054,  1061,  1067,  1069,  1071,  1076,  1078,  1080,
-    1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,  1103,
-    1105,  1109,  1111,  1113,  1115,  1119,  1121,  1125,  1127,  1129,
-    1131,  1135,  1137,  1142,  1144,  1147,  1149,  1151,  1154,  1157,
-    1168,  1171,  1179,  1181,  1183,  1186,  1192,  1194,  1198,  1199,
-    1200,  1201,  1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,
-    1218,  1220,  1222,  1224,  1226,  1228,  1238,  1248,  1258,  1268,
-    1270,  1272,  1275,  1280,  1284,  1286,  1288,  1290,  1293,  1295,
-    1298,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,  1317,
-    1319,  1321,  1323,  1325,  1327,  1331,  1334,  1333,  1346,  1347,
-    1348,  1353,  1355,  1357,  1359,  1364,  1366,  1369,  1371,  1373,
-    1379,  1380,  1384,  1385,  1389,  1390,  1395,  1400,  1402,  1406,
-    1409,  1413,  1414,  1415,  1418,  1419,  1422,  1423,  1426,  1430,
-    1434,  1440,  1446,  1448,  1452,  1456,  1457,  1461,  1462,  1466,
-    1467,  1472,  1474,  1476,  1479
+       0,   161,   161,   160,   172,   171,   182,   181,   195,   194,
+     208,   207,   221,   220,   231,   230,   244,   246,   251,   259,
+     263,   270,   275,   282,   288,   292,   294,   291,   301,   302,
+     312,   313,   322,   326,   330,   337,   347,   349,   362,   359,
+     383,   378,   406,   405,   431,   442,   454,   453,   464,   470,
+     476,   481,   483,   485,   492,   500,   502,   499,   519,   524,
+     533,   540,   539,   554,   562,   569,   568,   583,   590,   589,
+     605,   604,   624,   628,   632,   636,   642,   650,   668,   669,
+     673,   677,   679,   681,   683,   685,   687,   689,   692,   698,
+     699,   704,   715,   716,   721,   723,   728,   735,   736,   740,
+     744,   748,   753,   757,   761,   762,   765,   771,   776,   781,
+     787,   788,   793,   794,   799,   800,   807,   812,   814,   825,
+     827,   832,   834,   838,   858,   859,   861,   874,   934,   936,
+     942,   944,   948,   954,   955,   960,   961,   965,   969,   969,
+    1036,  1037,  1042,  1054,  1055,  1059,  1070,  1072,  1074,  1076,
+    1078,  1082,  1084,  1089,  1093,  1097,  1101,  1107,  1112,  1118,
+    1124,  1126,  1128,  1131,  1130,  1141,  1142,  1146,  1150,  1153,
+    1158,  1163,  1166,  1170,  1174,  1180,  1188,  1195,  1201,  1203,
+    1205,  1210,  1212,  1214,  1216,  1218,  1220,  1225,  1227,  1229,
+    1231,  1233,  1235,  1237,  1239,  1241,  1243,  1245,  1247,  1249,
+    1251,  1253,  1255,  1259,  1261,  1263,  1265,  1267,  1271,  1273,
+    1277,  1279,  1281,  1283,  1287,  1289,  1294,  1296,  1299,  1301,
+    1303,  1306,  1309,  1320,  1323,  1331,  1333,  1335,  1338,  1341,
+    1349,  1351,  1355,  1356,  1357,  1358,  1359,  1361,  1363,  1365,
+    1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,  1383,  1385,
+    1395,  1405,  1415,  1425,  1427,  1429,  1432,  1437,  1441,  1443,
+    1445,  1447,  1450,  1452,  1455,  1457,  1459,  1461,  1463,  1465,
+    1467,  1469,  1471,  1474,  1476,  1478,  1480,  1482,  1484,  1488,
+    1491,  1490,  1503,  1504,  1505,  1510,  1512,  1514,  1516,  1521,
+    1523,  1526,  1528,  1530,  1535,  1540,  1545,  1553,  1555,  1557,
+    1561,  1569,  1568,  1586,  1587,  1591,  1592,  1596,  1597,  1602,
+    1607,  1609,  1613,  1616,  1620,  1621,  1622,  1625,  1626,  1629,
+    1630,  1633,  1637,  1641,  1647,  1653,  1655,  1659,  1663,  1664,
+    1668,  1669,  1673,  1674,  1679,  1681,  1683,  1686
 };
 #endif
 
-/** Accessing symbol of state STATE.  */
-#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
-
-#if YYDEBUG || 0
-/* The user-facing name of the symbol whose (internal) number is
-   YYSYMBOL.  No bounds checking.  */
-static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
-
+#if YYDEBUG || YYERROR_VERBOSE || 0
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "\"end of file\"", "error", "\"invalid token\"", "GRAMPROG", "GRAMEXPR",
-  "GRAMBLOCK", "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ",
-  "GRAMSUBSIGNATURE", "PERLY_AMPERSAND", "PERLY_BRACE_OPEN",
-  "PERLY_BRACE_CLOSE", "PERLY_BRACKET_OPEN", "PERLY_BRACKET_CLOSE",
-  "PERLY_COMMA", "PERLY_DOLLAR", "PERLY_DOT", "PERLY_EQUAL_SIGN",
-  "PERLY_MINUS", "PERLY_PERCENT_SIGN", "PERLY_PLUS", "PERLY_SEMICOLON",
-  "PERLY_SLASH", "PERLY_SNAIL", "PERLY_STAR", "BAREWORD", "METHOD",
-  "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP",
-  "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL",
-  "FORMAT", "SUB", "SIGSUB", "ANONSUB", "ANON_SIGSUB", "PACKAGE", "USE",
-  "WHILE", "UNTIL", "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR",
-  "GIVEN", "WHEN", "DEFAULT", "TRY", "CATCH", "FINALLY", "LOOPEX",
-  "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP",
-  "MULOP", "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY",
-  "REQUIRE", "COLONATTR", "FORMLBRACK", "FORMRBRACK", "SUBLEXSTART",
-  "SUBLEXEND", "DEFER", "PREC_LOW", "OROP", "ANDOP", "NOTOP", "ASSIGNOP",
-  "PERLY_QUESTION_MARK", "PERLY_COLON", "OROR", "DORDOR", "ANDAND",
-  "BITOROP", "BITANDOP", "CHEQOP", "NCEQOP", "CHRELOP", "NCRELOP",
-  "SHIFTOP", "MATCHOP", "PERLY_EXCLAMATION_MARK", "PERLY_TILDE", "UMINUS",
-  "REFGEN", "POWOP", "PREINC", "PREDEC", "POSTINC", "POSTDEC", "POSTJOIN",
-  "ARROW", "PERLY_PAREN_CLOSE", "PERLY_PAREN_OPEN", "$accept", "grammar",
-  "@1", "@2", "@3", "@4", "@5", "@6", "@7", "block", "empty", "formblock",
-  "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt",
-  "labfullstmt", "barestmt", "$@8", "$@9", "$@10", "$@11", "$@12", "@13",
-  "$@14", "$@15", "$@16", "formline", "formarg", "condition", "sideff",
-  "else", "cont", "finally", "mintro", "nexpr", "texpr", "iexpr", "mexpr",
-  "mnexpr", "formname", "startsub", "startanonsub", "startformsub",
-  "subname", "proto", "subattrlist", "myattrlist", "sigvarname",
-  "sigslurpsigil", "sigslurpelem", "sigdefault", "sigscalarelem",
-  "sigelem", "siglist", "optsiglist", "optsubsignature", "subsignature",
-  "subsigguts", "$@17", "optsubbody", "subbody", "optsigsubbody",
-  "sigsubbody", "expr", "listexpr", "listop", "@18", "method",
-  "subscripted", "termbinop", "termrelop", "relopchain", "termeqop",
-  "eqopchain", "termunop", "anonymous", "termdo", "term", "@19",
-  "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", "my_scalar",
-  "list_of_scalars", "my_list_of_scalars", "my_var", "refgen_topic",
-  "my_refgen", "amper", "scalar", "ary", "hsh", "arylen", "star",
-  "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR
+  "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK",
+  "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "GRAMSUBSIGNATURE",
+  "PERLY_AMPERSAND", "PERLY_BRACE_OPEN", "PERLY_BRACE_CLOSE",
+  "PERLY_BRACKET_OPEN", "PERLY_BRACKET_CLOSE", "PERLY_COMMA",
+  "PERLY_DOLLAR", "PERLY_DOT", "PERLY_EQUAL_SIGN", "PERLY_MINUS",
+  "PERLY_PERCENT_SIGN", "PERLY_PLUS", "PERLY_SEMICOLON", "PERLY_SLASH",
+  "PERLY_SNAIL", "PERLY_STAR", "KW_FORMAT", "KW_PACKAGE", "KW_CLASS",
+  "KW_LOCAL", "KW_MY", "KW_FIELD", "KW_IF", "KW_ELSE", "KW_ELSIF",
+  "KW_UNLESS", "KW_FOR", "KW_UNTIL", "KW_WHILE", "KW_CONTINUE", "KW_GIVEN",
+  "KW_WHEN", "KW_DEFAULT", "KW_TRY", "KW_CATCH", "KW_FINALLY", "KW_DEFER",
+  "KW_REQUIRE", "KW_DO", "KW_USE_or_NO", "KW_SUB_named",
+  "KW_SUB_named_sig", "KW_SUB_anon", "KW_SUB_anon_sig", "KW_METHOD_named",
+  "KW_METHOD_anon", "BAREWORD", "METHCALL0", "METHCALL", "THING", "PMFUNC",
+  "PRIVATEREF", "QWLIST", "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB",
+  "PLUGEXPR", "PLUGSTMT", "LABEL", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0",
+  "FUNC1", "FUNC", "UNIOP", "LSTOP", "POWOP", "MULOP", "ADDOP", "DOLSHARP",
+  "HASHBRACK", "NOAMP", "COLONATTR", "FORMLBRACK", "FORMRBRACK",
+  "SUBLEXSTART", "SUBLEXEND", "PHASER", "PREC_LOW", "PLUGIN_LOW_OP",
+  "OROP", "PLUGIN_LOGICAL_OR_LOW_OP", "ANDOP", "PLUGIN_LOGICAL_AND_LOW_OP",
+  "NOTOP", "ASSIGNOP", "PLUGIN_ASSIGN_OP", "PERLY_QUESTION_MARK",
+  "PERLY_COLON", "OROR", "DORDOR", "PLUGIN_LOGICAL_OR_OP", "ANDAND",
+  "PLUGIN_LOGICAL_AND_OP", "BITOROP", "BITANDOP", "CHEQOP", "NCEQOP",
+  "CHRELOP", "NCRELOP", "PLUGIN_REL_OP", "SHIFTOP", "PLUGIN_ADD_OP",
+  "PLUGIN_MUL_OP", "MATCHOP", "PERLY_EXCLAMATION_MARK", "PERLY_TILDE",
+  "UMINUS", "REFGEN", "PLUGIN_POW_OP", "PREINC", "PREDEC", "POSTINC",
+  "POSTDEC", "POSTJOIN", "PLUGIN_HIGH_OP", "ARROW", "PERLY_PAREN_CLOSE",
+  "PERLY_PAREN_OPEN", "$accept", "grammar", "@1", "@2", "@3", "@4", "@5",
+  "@6", "@7", "sigsub_or_method_named", "block", "empty", "formblock",
+  "remember", "mblock", "mremember", "catch_paren", "$@8", "$@9",
+  "stmtseq", "formstmtseq", "fullstmt", "labfullstmt", "barestmt", "$@10",
+  "$@11", "$@12", "$@13", "$@14", "$@15", "@16", "$@17", "$@18", "$@19",
+  "formline", "formarg", "condition", "sideff", "else", "cont", "finally",
+  "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "formname",
+  "startsub", "startanonsub", "startanonmethod", "startformsub", "subname",
+  "proto", "subattrlist", "myattrlist", "sigvarname", "sigslurpsigil",
+  "sigslurpelem", "sigdefault", "sigscalarelem", "sigelem", "siglist",
+  "optsiglist", "optsubsignature", "subsignature", "subsigguts", "$@20",
+  "optsubbody", "subbody", "optsigsubbody", "sigsubbody", "expr",
+  "listexpr", "listop", "@21", "methodname", "subscripted", "termbinop",
+  "termrelop", "relopchain", "termeqop", "eqopchain", "termunop",
+  "anonymous", "termdo", "term", "@22", "myattrterm", "myterm", "fieldvar",
+  "optfieldattrlist", "fielddecl", "$@23", "optlistexpr", "optexpr",
+  "optrepl", "my_scalar", "list_of_scalars", "my_list_of_scalars",
+  "my_var", "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh",
+  "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR
 };
-
-static const char *
-yysymbol_name (yysymbol_kind_t yysymbol)
-{
-  return yytname[yysymbol];
-}
 #endif
 
-#ifdef YYPRINT
+# ifdef YYPRINT
 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
    (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_int16 yytoknum[] =
+static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
@@ -411,185 +180,201 @@ static const yytype_int16 yytoknum[] =
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385
 };
-#endif
+# endif
 
-#define YYPACT_NINF (-498)
+#define YYPACT_NINF -551
 
-#define yypact_value_is_default(Yyn) \
-  ((Yyn) == YYPACT_NINF)
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-551)))
 
-#define YYTABLE_NINF (-300)
+#define YYTABLE_NINF -336
 
-#define yytable_value_is_error(Yyn) \
-  ((Yyn) == YYTABLE_NINF)
+#define yytable_value_is_error(Yytable_value) \
+  (!!((Yytable_value) == (-336)))
 
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     477,  -498,  -498,  -498,  -498,  -498,  -498,  -498,    37,  -498,
-    2923,    16,  1589,  1490,  -498,  -498,  -498,  -498,   214,  2923,
-     214,  2923,   214,  2923,   214,   214,  -498,   214,   214,  -498,
-    -498,    33,   -64,  -498,  2923,  -498,  -498,  -498,  -498,  2923,
-     -49,   -46,   -37,  2155,  2056,   214,  2155,  2923,   155,  2923,
-      50,  2923,  2923,  2923,  2923,  2923,  2923,  2923,  2251,  -498,
-       2,    57,  -498,    10,  -498,   120,   -14,   176,     1,  -498,
-    -498,  -498,  3091,  -498,  -498,    -5,   171,   189,   194,  -498,
-      94,   220,   224,   111,  -498,  -498,  -498,  -498,  -498,  -498,
-     155,   155,   125,  -498,    26,    69,    99,   112,     9,   133,
-     136,    16,   244,   165,   244,   208,  -498,   243,   512,  1490,
-    -498,  -498,  -498,  -498,   630,  -498,    35,   774,  -498,  -498,
-    -498,  -498,  -498,   260,  -498,   400,  -498,   400,  -498,  -498,
-    2923,   177,   229,  2923,   201,   223,    16,   292,   248,  3091,
-     230,  2347,  2923,  2056,  -498,   223,  1952,  -498,    57,  -498,
-    1850,  2923,  -498,  -498,   223,   323,  -498,  -498,  2923,   223,
-    3019,  2443,   268,  -498,  -498,  -498,   223,    57,   400,   400,
-     400,   253,   253,   354,    59,  2923,  2923,  2923,  2923,  2923,
-    2539,  -498,  -498,  2923,  -498,  -498,  2923,  2923,  2923,  2923,
-    2923,  2923,  2923,  2923,  2923,  2923,  2923,  2923,  2923,  2923,
-    2923,  2923,  2923,  2923,  -498,  -498,  -498,   149,  2635,  2923,
-    2923,  2923,  2923,  2923,  2923,  2923,  -498,   331,  -498,  -498,
-     348,  -498,  -498,  -498,  -498,  -498,   283,   188,  -498,  -498,
-     265,  -498,  -498,  -498,  -498,   333,  -498,  -498,    16,  -498,
-    -498,  -498,  2923,  2923,  2923,  2923,  2923,  2923,  -498,  -498,
-    -498,   359,  -498,  -498,  -498,   359,  -498,  -498,  -498,   378,
-    -498,  -498,  -498,  2923,  2923,    22,  -498,  -498,  -498,  -498,
-     248,   375,  -498,  -498,  -498,  -498,   156,   334,   314,  2923,
-      57,   393,  -498,  2731,   400,   268,    78,   117,   139,  -498,
-     181,   392,  -498,  2923,   415,   343,  -498,  3091,    72,    25,
-    -498,   185,   223,   361,  3181,   344,   238,  3091,  3046,  1884,
-    1884,  1669,   444,   301,   361,   361,   223,   223,   308,   400,
-     400,   407,  2923,  2923,   622,   408,   416,   418,  -498,   421,
-    2827,   337,  -498,  -498,   191,    82,    27,   124,    31,   153,
-      53,   158,   879,  -498,  -498,   429,  -498,  -498,    20,   426,
-    2923,  2923,  2923,  2923,  -498,   -12,  -498,  -498,   349,  -498,
-    -498,  -498,  -498,  1685,   356,  -498,  2923,  2923,  -498,   351,
-    -498,  -498,     2,  -498,     2,  -498,  -498,  -498,  -498,  -498,
-     369,   369,    35,   353,   114,  -498,  2923,  -498,  -498,   360,
-    -498,  -498,  -498,  -498,   242,  -498,    15,   256,  -498,  -498,
-    -498,    68,  2923,   464,  -498,  -498,  2923,  -498,   174,    85,
-    -498,  -498,  -498,  -498,  -498,  -498,   274,  2923,  -498,   465,
-    -498,   466,  -498,   475,  -498,   476,  -498,  -498,  -498,   292,
-     248,  -498,  -498,   463,   380,     2,   384,   386,     2,   387,
-     487,   391,  -498,  -498,  -498,  -498,  -498,   402,   495,   143,
-    -498,  2923,   406,   409,   995,  -498,  2923,  -498,  -498,  -498,
-    -498,  -498,  2923,  -498,   441,  -498,   514,  -498,  -498,  -498,
-     515,  -498,  -498,    49,  -498,    92,  -498,  3136,   517,  -498,
-    -498,   417,  -498,  -498,  -498,  -498,   524,   248,   526,  -498,
-    2923,  -498,  -498,   244,   244,   519,   423,  -498,  2923,  2923,
-     244,  -498,   435,   424,   244,   244,  -498,  -498,  3091,     2,
-    -498,  -498,   439,  -498,  -498,  -498,  -498,   478,   535,  -498,
-    -498,  -498,  -498,   541,   244,   244,   228,   228,   487,   450,
-     452,   454,   208,  2923,  2923,   244,  -498,  -498,   487,  1094,
-    -498,  1193,  -498,  -498,  -498,  -498,  1292,  -498,   208,   208,
-     244,   455,  -498,  -498,  -498,  -498,  2923,   244,   244,  -498,
-     548,   460,   208,  -498,  -498,  -498,  -498,    18,  -498,  -498,
-    -498,  -498,  2923,   461,   208,   208,  -498,   244,  -498,   462,
-     560,   499,  -498,   467,   244,  -498,  -498,  -498,   208,   244,
-    -498,  -498,  -498,  -498,   244,   208,  1781,  -498,   521,  1391,
-     228,  -498,   469,    16,  -498,  -498,  -498,   244,  -498,  -498
+     926,  -551,  -551,  -551,  -551,  -551,  -551,  -551,    34,  -551,
+    2909,    41,  1877,  1762,  -551,  -551,  -551,  -551,    46,  2909,
+      46,  2909,    46,  2909,    46,    46,  2909,    12,  2909,  2198,
+    -551,  -551,  -551,  -551,    46,    46,  -551,  -551,    42,   -66,
+    -551,  2909,  -551,  -551,  2909,   -41,   -38,   -64,  2198,  2119,
+      46,  2909,   -23,  2909,  2909,  2909,  2909,  2909,  2909,  2277,
+    -551,   680,   101,  -551,     4,  -551,   -42,    10,    63,    22,
+    -551,  -551,  -551,  3152,  -551,  -551,    18,   185,   200,   212,
+    -551,   151,   219,   229,   192,  -551,  -551,  -551,  -551,  -551,
+     160,   177,   129,    82,   111,    13,   127,   134,   175,   180,
+      41,   300,   300,  -551,   -23,  -551,  -551,  -551,   292,  -551,
+     -23,   276,  -551,   303,   432,   313,  1762,  -551,  -551,  -551,
+    -551,   660,  -551,   384,   832,  -551,  -551,  -551,  -551,  -551,
+     323,  -551,   329,  -551,   329,  -551,  -551,   317,  2988,  2356,
+     255,  -551,  -551,  -551,   317,  -551,   317,   281,   261,   261,
+    2909,   216,   266,  2909,   230,   317,    41,  3152,   232,  2435,
+    2909,  2119,  -551,   317,  3067,  -551,   101,  -551,  2514,  2909,
+    -551,   326,  -551,  -551,  2909,   101,   329,   329,   329,   642,
+     642,   350,   262,  2909,  2909,  2909,  2909,  2909,  2909,  2909,
+    2593,  -551,  -551,  2909,  -551,  -551,  2909,  2909,  2909,  2909,
+    2909,  2909,  2909,  2909,  2909,  2909,  2909,  2909,  2909,  2909,
+    2909,  2909,  2909,  2909,  2909,  2909,  2909,  2909,  2909,  2909,
+    2909,  2909,  -551,  -551,  -551,  2909,    84,  2672,  2909,  2909,
+    2909,  2909,  2909,  2909,  2909,  -551,   318,   324,   325,   289,
+    -551,  -551,  -551,  -551,  -551,   259,   741,  -551,  -551,   258,
+    -551,  -551,  -551,  -551,  -551,  -551,   341,  -551,  -551,  -551,
+    -551,  -551,  -551,    41,  -551,  -551,  -551,  2909,  2909,  2909,
+    2909,  2909,  2909,  -551,  -551,  -551,  -551,   332,  -551,  -551,
+    -551,   332,  -551,  -551,  -551,   372,  -551,  -551,  2751,   329,
+     255,    40,   250,   278,  -551,   273,   340,  -551,  -551,  -551,
+     261,   342,  -551,  -551,  -551,  -551,  2909,  2909,    96,  -551,
+    -551,  -551,  -551,   390,   315,   282,  2909,   101,   398,  -551,
+    2909,   399,   161,   161,  -551,  -551,  3254,    66,   100,  -551,
+     411,  3517,  3497,  3356,   329,   492,  3220,  3203,  3254,  3254,
+    3101,  3395,  3395,  3395,  3418,  3418,  3457,  3478,  3497,  3497,
+    3517,  3517,  3536,   459,  3220,   492,   329,   329,   146,   392,
+    2909,  2909,   322,   393,   400,   401,  -551,   410,  2830,   294,
+    -551,  -551,   417,    89,   115,   236,   142,   249,   159,   257,
+     947,  -551,  -551,   418,    54,   261,   380,  -551,   343,  2909,
+    2909,  -551,     6,  -551,  -551,   316,  -551,  -551,  -551,  -551,
+    1961,   129,  -551,  2909,  2909,  2909,  2909,  -551,  -551,   403,
+    -551,   426,  -551,  -551,  -551,   680,  -551,  -551,  -551,   680,
+    -551,  -551,  -551,   352,   352,   384,   -12,   449,  -551,  -551,
+    -551,  -551,  -551,   330,  -551,  -551,   334,   103,  -551,  2909,
+    -551,  -551,  -551,   500,  -551,   173,  2909,   453,  -551,  -551,
+    2909,  -551,   277,   214,  -551,  -551,  -551,  -551,  -551,  -551,
+     652,  2909,  -551,   454,  -551,   460,  -551,   462,  -551,   463,
+    -551,  -551,  -551,  -551,  -551,   156,  -551,  -551,   347,   680,
+     349,   455,   358,  -551,  -551,  -551,  -551,  -551,   351,   457,
+     183,  -551,  2909,   361,   363,   680,   365,   366,  1072,   367,
+     442,   281,  -551,   490,  -551,  -551,   261,  2909,  -551,  -551,
+    -551,  -551,    37,  -551,  -551,  -551,   491,  -551,  -551,  2909,
+    -551,   419,  -551,  -551,  -551,   224,  -551,  3305,   502,  -551,
+    -551,   386,  -551,  -551,  -551,  -551,   494,  -551,  -551,  -551,
+    2909,   300,   300,   503,   391,  -551,  2909,  2909,   300,  -551,
+     415,   404,  -551,  -551,   300,   300,  -551,  -551,  -551,  -551,
+    2909,   261,  -551,   506,  3152,   423,  -551,   680,  -551,  -551,
+    -551,  -551,   436,  -551,  -551,  3152,   247,   247,   455,   424,
+     428,   429,   276,  2909,  2909,   300,   300,   300,  -551,  -551,
+     455,   300,   507,   426,  1187,  -551,  -551,  -551,  -551,  1302,
+    -551,  1417,  -551,   300,   431,  -551,  -551,  -551,  -551,  2909,
+     300,   300,  -551,   525,   430,   276,   276,   276,  -551,   519,
+    -551,  -551,  -551,  -551,  -551,    20,  -551,  1532,  -551,  2909,
+     439,   276,   276,  -551,   300,  -551,  -551,  -551,   440,    41,
+    -551,   548,   486,  -551,  -551,   447,   300,  -551,  -551,  -551,
+     276,  -551,  -551,  -551,  -551,  -551,  -551,   300,   276,  2040,
+    -551,  1647,   247,  -551,   448,  -551,  -551,   300,  -551
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
      Performed when YYTABLE does not specify something else to do.  Zero
      means the default is an error.  */
-static const yytype_int16 yydefact[] =
+static const yytype_uint16 yydefact[] =
 {
-       0,     2,     4,     6,     8,    10,    12,    14,     0,    19,
-      17,     0,     0,     0,    17,   126,     1,    17,     0,    17,
-       0,     0,     0,     0,     0,     0,   258,     0,     0,   229,
-     256,   217,   251,   253,   247,    96,   260,    96,    96,   239,
-     249,     0,     0,   242,    17,     0,     0,    17,     0,     0,
-       0,   245,     0,     0,     0,     0,     0,     0,     0,   272,
-     273,   136,   259,   224,   208,   172,   181,   173,   187,   209,
-     210,   211,   139,   214,     5,   230,   219,   222,   221,   223,
-     220,     0,     0,     0,    19,     7,    70,    65,    30,    97,
-       0,     0,     0,    95,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    17,     9,     0,    71,     0,
-      11,    27,    26,    22,     0,    15,    17,     0,   301,   304,
-     303,   302,   288,     0,   289,   193,   291,   194,   290,   294,
-      17,     0,     0,     0,     0,   248,     0,    17,    17,   240,
-       0,     0,    17,    17,   243,   244,   301,   270,   271,   146,
-     302,     0,   292,   207,   206,     0,    98,    99,    17,   215,
-       0,     0,   262,   267,   269,   268,   246,   241,   195,   196,
-     213,   200,   201,   218,     0,     0,     0,   137,     0,     0,
-       0,   184,   183,     0,   190,   189,     0,     0,     0,     0,
+       0,     2,     4,     6,     8,    10,    12,    14,     0,    21,
+      19,     0,     0,     0,    19,   138,     1,    19,     0,    19,
+       0,     0,     0,     0,     0,     0,     0,     0,   269,     0,
+     107,   107,   108,   282,     0,     0,   253,   280,   241,   275,
+     277,   271,   107,   284,   263,   273,     0,     0,   266,    19,
+       0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+     305,   306,   150,   283,   248,   232,   191,   203,   192,   210,
+     233,   234,   235,   153,   238,     5,   254,   243,   246,   245,
+     247,   244,     0,     0,     0,    21,     7,    81,    76,   109,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   197,   198,   199,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    17,    17,    95,    95,
-       0,    37,    19,    19,    19,    19,    19,     0,    19,    19,
-       0,    19,    19,    43,    21,     0,    64,    63,     0,    81,
-      59,    62,     0,     0,     0,     0,     0,     0,    29,    28,
-      23,   107,   110,   109,   121,   107,   117,   116,   120,   122,
-     127,   202,   144,    17,     0,     0,   252,   149,   101,   100,
-      17,   104,   102,    19,   250,   254,     0,     0,     0,     0,
-     140,     0,   233,     0,   264,     0,   219,   222,   221,   266,
-       0,   106,   261,     0,   216,   135,   134,   138,     0,     0,
-     163,     0,   186,   192,   176,   169,   170,   167,     0,   178,
-     179,   177,   175,   174,   191,   188,   185,   182,   171,   180,
-     168,     0,     0,     0,     0,   298,   296,   300,   151,     0,
-       0,   143,   152,   231,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    93,    94,     0,    32,    34,     0,     0,
-      88,     0,     0,     0,   286,     0,   287,   284,     0,   285,
-     281,   282,   283,     0,     0,    19,     0,     0,    17,     0,
-      82,    74,    69,    75,    90,    72,    73,    76,    77,   108,
-      17,    17,   118,     0,    17,   165,    17,    19,   103,    17,
-     205,   255,   148,   147,     0,   203,   218,     0,   263,   265,
-     105,     0,     0,     0,   156,   162,     0,   237,     0,     0,
-     234,   236,   235,   238,   293,   160,     0,    17,   232,     0,
-     154,     0,   225,     0,   226,     0,    16,    19,    31,    17,
-      17,    19,    36,     0,     0,    89,     0,     0,    91,     0,
-       0,     0,   276,    19,    86,    87,    92,     0,     0,    71,
-      52,     0,     0,     0,     0,    56,   113,   112,   115,   111,
-     119,   145,     0,   274,     0,   150,     0,   204,   126,   123,
-       0,   124,   141,   216,   166,     0,   159,   212,     0,   155,
-     161,     0,   157,   227,   228,   153,     0,    17,    19,    60,
-      17,    85,    85,     0,     0,   280,     0,   279,     0,     0,
-       0,    46,     0,     0,     0,     0,    20,    19,   114,   275,
-     257,    17,     0,    17,   164,   158,   142,     0,    19,   132,
-      35,   131,    17,     0,     0,     0,    17,    17,   277,     0,
-       0,     0,    17,    88,     0,     0,    41,    42,     0,     0,
-     125,     0,    17,   129,    33,   128,     0,    38,    17,    17,
-       0,     0,    78,    39,    40,   278,     0,     0,     0,    55,
-       0,     0,    17,    57,   130,   133,    24,     0,    61,    44,
-      45,    79,     0,     0,    17,    17,    47,     0,    51,     0,
-       0,    17,    25,     0,     0,    49,    54,    85,    17,     0,
-      18,    17,    67,    66,     0,    17,     0,    53,    83,     0,
-      17,    50,     0,     0,    58,    68,    80,     0,    84,    48
+       0,     0,     0,   106,     0,    16,    17,    36,     0,   106,
+       0,    19,     9,     0,    82,     0,     0,    11,    33,    32,
+      28,     0,    15,    19,     0,   334,   337,   336,   335,   321,
+       0,   322,   216,   324,   217,   323,   327,   239,     0,     0,
+     286,   291,   293,   292,   270,   231,   230,    19,    19,    19,
+      19,     0,     0,     0,     0,   272,     0,   264,     0,     0,
+      19,    19,   267,   268,   282,   303,   304,   160,   243,     0,
+     325,     0,   110,   111,    19,   265,   218,   219,   237,   223,
+     224,   242,     0,     0,     0,     0,     0,   151,     0,     0,
+       0,   206,   205,     0,   213,   212,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   220,   221,   222,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    19,    19,     0,     0,    19,
+     294,   296,   295,    21,    21,    21,     0,    21,    21,     0,
+      21,    21,    21,    21,    52,    23,     0,    74,    46,   106,
+      75,    42,   106,     0,    92,    67,    73,     0,     0,     0,
+       0,     0,     0,    72,    35,    34,    29,   119,   122,   121,
+     133,   119,   129,   128,   132,   134,   139,   225,     0,   288,
+       0,   243,   246,   245,   290,     0,   118,   285,   113,   112,
+      19,   116,   114,    21,    21,   158,    19,     0,     0,   276,
+     163,   274,   278,     0,     0,     0,     0,   154,     0,   257,
+       0,   240,   148,   149,   146,   147,   152,     0,     0,   177,
+       0,   209,   215,   195,   184,   186,   188,   202,   182,   183,
+       0,   198,   200,   199,   196,   197,   194,   193,   214,   211,
+     208,   204,   207,   190,   189,   187,   201,   185,   181,     0,
+       0,     0,     0,   331,   329,   333,   165,     0,     0,   157,
+     166,   255,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   104,   105,     0,     0,    19,   298,   299,   300,     0,
+       0,   319,     0,   320,   317,     0,   318,   314,   315,   316,
+       0,     0,    21,     0,    99,     0,     0,    19,    21,     0,
+      38,    21,    40,    93,    83,    80,    84,    87,    86,   101,
+      85,    88,   120,    19,    19,   130,   242,     0,   287,   289,
+     117,    21,   115,    19,   228,   229,     0,    19,   179,    19,
+     279,   162,   161,     0,   226,     0,     0,     0,   170,   176,
+       0,   261,     0,     0,   258,   260,   259,   262,   326,   174,
+       0,    19,   256,     0,   168,     0,   249,     0,   250,     0,
+      18,    21,    37,    21,    44,     0,   297,   301,     0,   102,
+       0,     0,     0,   309,    21,    97,    98,   103,     0,     0,
+      82,    61,     0,     0,     0,   100,     0,     0,     0,    19,
+       0,    19,   141,     0,    43,   140,    19,   125,   124,   127,
+     123,   131,   240,   227,   138,   135,     0,   136,   159,     0,
+     307,     0,   164,   155,   180,     0,   173,   236,     0,   169,
+     175,     0,   171,   251,   252,   167,     0,    68,    21,    45,
+       0,     0,     0,   313,     0,   312,     0,     0,     0,    55,
+       0,     0,    96,    96,     0,     0,    22,    25,    24,    65,
+      19,    19,    19,    21,   126,     0,    19,   308,   281,   178,
+     172,   156,     0,    19,    70,   302,    19,    19,   310,     0,
+       0,     0,    19,    99,     0,     0,     0,     0,    50,    51,
+       0,     0,     0,    21,     0,   144,    41,   143,   137,     0,
+      19,     0,    19,     0,     0,    89,    48,    49,   311,     0,
+       0,     0,    64,     0,     0,    19,    19,    19,    26,    94,
+      47,    39,   142,   145,    30,     0,    69,     0,    90,     0,
+       0,    19,    19,    56,     0,    60,    54,    53,     0,     0,
+      66,     0,    19,    31,    71,     0,     0,    58,    63,    96,
+      19,    27,    95,    20,    19,    78,    77,     0,    19,     0,
+      62,     0,    19,    59,     0,    79,    91,     0,    57
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,   -11,
-       5,  -498,    77,   -56,  -498,   -15,  -498,   572,   474,     6,
-    -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,
-    -498,   137,  -360,  -497,  -237,  -498,  -487,  -498,    54,   237,
-    -310,    -6,  -498,    71,   259,  -498,   240,   170,  -264,   309,
-     345,  -498,  -498,   221,  -498,   226,  -498,  -498,  -498,  -498,
-     135,  -498,  -498,    93,  -498,   122,    73,   -32,  -498,  -498,
-    -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,  -498,
-     570,  -498,  -498,   457,  -129,    -9,  -498,  -498,  -498,  -498,
-     250,  -498,  -498,   385,    51,   -42,   -24,  -498,  -498,  -498,
-    -498,  -498,    36
+    -551,  -551,  -551,  -551,  -551,  -551,  -551,  -551,  -551,  -551,
+      -4,   -10,  -551,    50,   -55,  -551,  -551,  -551,  -551,   -13,
+    -551,   568,   466,    28,  -551,  -551,  -551,  -551,  -551,  -551,
+    -551,  -551,  -551,  -551,  -551,  -551,    52,  -390,  -550,  -533,
+    -551,  -534,  -551,    14,   193,  -220,   -61,  -551,   -96,   137,
+    -551,  -551,   -17,   102,  -146,   311,   328,  -551,  -551,   186,
+    -551,   179,  -551,  -551,  -551,  -551,    97,  -551,    30,   184,
+    -551,  -293,    16,   -47,  -551,  -551,  -551,  -551,  -551,  -551,
+    -551,  -551,  -551,  -551,  -551,  -551,   610,  -551,  -551,   489,
+    -551,  -551,  -551,  -551,  -126,   -14,  -551,  -551,  -551,  -551,
+     223,  -551,  -551,   382,    36,   -19,   -15,  -551,  -551,  -551,
+    -551,  -551,    56
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     8,     9,    10,    11,    12,    13,    14,    15,   105,
-     239,   428,   389,   235,   368,   114,   567,   250,   111,   112,
-     429,   430,   349,   533,   587,   502,   507,   579,   522,   582,
-     593,   371,   107,   553,   240,   604,   524,   446,   434,   373,
-     437,   448,   345,   221,   136,   217,   158,   270,   273,   292,
-     380,   255,   256,   458,   257,   258,   259,   260,   470,   471,
-     115,   116,   544,   467,   520,   390,   108,    61,    62,   386,
-     331,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,   132,    73,   162,   149,    74,   464,   441,   495,   496,
-     357,   358,   229,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,   124
+      -1,     8,     9,    10,    11,    12,    13,    14,    15,   110,
+     111,   120,   472,   433,   256,   407,   559,   590,   638,   121,
+     625,   276,   118,   119,   501,   506,   411,   409,   583,   649,
+     550,   591,   573,   602,   643,   656,   414,   113,   606,   265,
+     640,   586,   487,   494,   418,   478,   489,   383,   258,   147,
+     149,   236,   174,   300,   303,   297,   423,   281,   282,   509,
+     283,   284,   285,   286,   516,   517,   122,   123,   504,   505,
+     596,   434,   114,    62,    63,   439,   369,    64,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,   152,    74,   140,
+     239,   388,   115,   540,   167,    75,   521,   482,   543,   544,
+     394,   395,   248,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,   131
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -597,859 +382,952 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      85,   262,   117,   445,    20,   525,   387,   120,   164,   120,
-     123,   120,   148,   120,   120,    59,   120,   120,   106,   113,
-     167,   178,   113,   179,    59,    20,   165,    84,   293,   282,
-     554,   431,   144,   120,   120,   153,   385,    16,   155,   404,
-     580,   420,   432,   439,   142,   422,   133,   581,   237,   147,
-     134,   251,    59,   447,   122,   252,   452,   453,   126,   253,
-     128,   129,   402,   130,   131,   140,    20,   424,   141,   121,
-      22,   121,   177,   121,    24,   121,   121,   143,   121,   121,
-     151,   152,   474,    60,   183,   226,    17,   175,   176,   209,
-     233,   210,    60,  -266,   403,   150,   121,   186,   148,   479,
-     596,   163,   440,   606,   419,  -299,   514,   175,   176,   208,
-     175,   176,   175,   176,   227,   249,   175,   176,   287,   280,
-      60,   254,   215,   228,   180,   267,   148,  -265,  -295,   177,
-    -295,   174,   120,   277,   278,   147,   288,   462,   175,   176,
-     222,   503,   269,   272,   175,   176,   421,    59,    59,   230,
-    -297,   220,  -297,   175,   176,   160,  -267,   175,   176,   321,
-     322,   216,   323,   147,   161,   324,   488,   175,   176,   325,
-     175,   176,   294,   326,   327,   423,   328,   175,   176,   279,
-     425,   156,   209,   223,   210,   361,   157,   236,   530,   531,
-     242,   243,   244,   245,   150,  -269,   478,   246,    18,   247,
-    -295,   342,  -295,   362,    20,  -297,   265,  -297,    22,   175,
-     176,   286,    24,   224,   276,    60,    60,  -268,   181,   182,
-     329,   113,   344,   518,   561,    84,   225,   370,   175,   176,
-      20,   211,   384,   212,   290,   213,   445,   214,   175,   176,
-     118,   175,   176,   175,   176,   119,   573,   231,   295,   296,
-     232,   298,   299,   301,   383,   234,   -91,   465,   332,   175,
-     176,   238,   583,   330,   356,   241,   175,   176,    59,   391,
-     175,   176,   184,   185,   261,   272,   175,   176,   360,   550,
-     551,   334,   335,   336,   337,   338,   339,   340,   341,   346,
-     347,   263,   188,   189,   399,   559,   137,   138,   405,   350,
-     351,   352,   353,   355,   418,   363,   364,   188,   366,   367,
-     264,   569,   570,   120,   266,   372,   374,   372,   372,   372,
-     372,   268,   361,   201,   202,   578,   271,   175,   176,   203,
-     218,   219,   204,   205,   206,   207,    60,   585,   586,   202,
-     362,   175,   176,   274,   203,   281,   291,   204,   205,   206,
-     207,   597,   394,   454,   148,   472,   397,   343,   601,   175,
-     176,   523,  -300,  -300,  -300,   207,   401,   293,   444,   473,
-     188,   189,    20,   113,   348,   121,    22,   188,   189,   365,
-      24,   375,   376,   377,   378,   457,   457,   480,   354,   463,
-     379,   147,   369,   382,   469,   408,   409,   197,   198,   199,
-     200,   201,   202,   416,   388,   395,   442,   203,   481,   202,
-     204,   205,   206,   207,   203,   360,   392,   204,   205,   206,
-     207,   400,    59,   435,   374,   438,   438,   393,   402,   176,
-     188,   189,   407,   411,   269,   272,   449,   526,   527,   438,
-     438,   412,   451,   413,   532,   202,   414,   427,   536,   537,
-     203,   417,   433,   204,   205,   206,   207,   456,   148,   199,
-     200,   201,   202,   443,   466,   455,   461,   203,   548,   549,
-     204,   205,   206,   207,   468,   475,   476,   482,   483,   562,
-       1,     2,     3,     4,     5,     6,     7,   484,   485,   490,
-      60,   497,   272,   491,   571,   147,   539,   492,   541,   493,
-     494,   574,   575,    20,   486,   498,   203,   546,   489,   204,
-     205,   206,   207,   188,   189,   500,   113,   501,   113,   504,
-     499,   588,   505,   510,   438,   511,   513,   113,   595,   515,
-     516,   552,   552,   598,   528,   509,   529,   535,   600,   196,
-     197,   198,   199,   200,   201,   202,   517,   566,   519,   534,
-     203,   609,   540,   204,   205,   206,   207,   543,   542,   242,
-     243,   244,   245,   547,   556,   557,   246,   558,   247,   572,
-     576,   438,   438,   577,   584,   589,   599,   590,   591,   555,
-     594,   603,   607,   248,   538,   110,   592,   560,   436,   563,
-     602,   125,   608,   127,   398,   466,   113,   175,   176,   487,
-     381,   444,   459,   512,   135,   552,   435,   438,   460,   139,
-     521,   545,   359,   145,   450,     0,   154,   285,     0,   159,
-       0,   166,     0,   168,   169,   170,   171,   172,     0,   438,
-     -13,    86,     0,    84,     0,     0,     0,     0,    20,     0,
-      18,    84,     0,    19,     0,   438,    20,   410,   118,    21,
-      22,    23,    87,   119,    24,    25,    26,    27,    28,    29,
-      30,     0,    31,    32,    33,    34,    35,    36,    88,   109,
-      89,    90,    91,    37,    38,    92,    93,    94,    95,    96,
-      97,     0,     0,     0,    98,    99,   100,   101,   102,     0,
-       0,    39,     0,   103,    40,    41,    42,    43,    44,     0,
-       0,    45,    46,    47,    48,    49,    50,    51,     0,     0,
-       0,     0,     0,   104,     0,     0,     0,    52,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     284,     0,    53,    54,     0,    55,     0,    56,    57,     0,
-       0,     0,     0,     0,    58,     0,     0,   297,     0,     0,
-       0,     0,     0,   302,     0,     0,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,   319,   320,    -3,    86,     0,     0,     0,     0,
-       0,     0,     0,     0,    18,    84,     0,    19,     0,     0,
-      20,     0,     0,    21,    22,    23,    87,     0,    24,    25,
-      26,    27,    28,    29,    30,     0,    31,    32,    33,    34,
-      35,    36,    88,   109,    89,    90,    91,    37,    38,    92,
-      93,    94,    95,    96,    97,     0,     0,     0,    98,    99,
-     100,   101,   102,     0,     0,    39,     0,   103,    40,    41,
-      42,    43,    44,     0,     0,    45,    46,    47,    48,    49,
-      50,    51,     0,     0,     0,     0,     0,   104,     0,     0,
-       0,    52,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    53,    54,     0,    55,
-      86,    56,    57,     0,     0,     0,     0,     0,    58,    18,
-      84,   426,    19,     0,     0,    20,     0,     0,    21,    22,
-      23,    87,     0,    24,    25,    26,    27,    28,    29,    30,
-       0,    31,    32,    33,    34,    35,    36,    88,   109,    89,
-      90,    91,    37,    38,    92,    93,    94,    95,    96,    97,
-       0,     0,     0,    98,    99,   100,   101,   102,     0,     0,
-      39,     0,   103,    40,    41,    42,    43,    44,     0,     0,
-      45,    46,    47,    48,    49,    50,    51,     0,     0,     0,
-       0,     0,   104,     0,     0,     0,    52,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   477,     0,     0,     0,
-       0,    53,    54,     0,    55,     0,    56,    57,     0,     0,
-       0,     0,     0,    58,     0,     0,    86,     0,     0,     0,
-       0,     0,     0,     0,     0,    18,    84,   506,    19,     0,
-       0,    20,     0,     0,    21,    22,    23,    87,     0,    24,
-      25,    26,    27,    28,    29,    30,   508,    31,    32,    33,
-      34,    35,    36,    88,   109,    89,    90,    91,    37,    38,
-      92,    93,    94,    95,    96,    97,     0,     0,     0,    98,
-      99,   100,   101,   102,     0,     0,    39,     0,   103,    40,
-      41,    42,    43,    44,     0,     0,    45,    46,    47,    48,
-      49,    50,    51,     0,     0,     0,     0,     0,   104,     0,
-       0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    86,     0,    53,    54,     0,
-      55,     0,    56,    57,    18,    84,   564,    19,     0,    58,
-      20,     0,     0,    21,    22,    23,    87,     0,    24,    25,
-      26,    27,    28,    29,    30,     0,    31,    32,    33,    34,
-      35,    36,    88,   109,    89,    90,    91,    37,    38,    92,
-      93,    94,    95,    96,    97,     0,     0,     0,    98,    99,
-     100,   101,   102,     0,     0,    39,     0,   103,    40,    41,
-      42,    43,    44,     0,     0,    45,    46,    47,    48,    49,
-      50,    51,     0,     0,     0,     0,     0,   104,     0,     0,
-       0,    52,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    86,     0,    53,    54,     0,    55,
-       0,    56,    57,    18,    84,   565,    19,     0,    58,    20,
-       0,     0,    21,    22,    23,    87,     0,    24,    25,    26,
-      27,    28,    29,    30,     0,    31,    32,    33,    34,    35,
-      36,    88,   109,    89,    90,    91,    37,    38,    92,    93,
-      94,    95,    96,    97,     0,     0,     0,    98,    99,   100,
-     101,   102,     0,     0,    39,     0,   103,    40,    41,    42,
-      43,    44,     0,     0,    45,    46,    47,    48,    49,    50,
-      51,     0,     0,     0,     0,     0,   104,     0,     0,     0,
-      52,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    86,     0,    53,    54,     0,    55,     0,
-      56,    57,    18,    84,   568,    19,     0,    58,    20,     0,
-       0,    21,    22,    23,    87,     0,    24,    25,    26,    27,
-      28,    29,    30,     0,    31,    32,    33,    34,    35,    36,
-      88,   109,    89,    90,    91,    37,    38,    92,    93,    94,
-      95,    96,    97,     0,     0,     0,    98,    99,   100,   101,
-     102,     0,     0,    39,     0,   103,    40,    41,    42,    43,
-      44,     0,     0,    45,    46,    47,    48,    49,    50,    51,
-       0,     0,     0,     0,     0,   104,     0,     0,     0,    52,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    86,     0,    53,    54,     0,    55,     0,    56,
-      57,    18,    84,     0,    19,     0,    58,    20,     0,     0,
-      21,    22,    23,    87,     0,    24,    25,    26,    27,    28,
-      29,    30,     0,    31,    32,    33,    34,    35,    36,    88,
-     109,    89,    90,    91,    37,    38,    92,    93,    94,    95,
-      96,    97,     0,     0,     0,    98,    99,   100,   101,   102,
-       0,     0,    39,     0,   103,    40,    41,    42,    43,    44,
-       0,     0,    45,    46,    47,    48,    49,    50,    51,     0,
-       0,   605,     0,     0,   104,     0,     0,     0,    52,     0,
+      60,   320,   166,   304,   124,   130,   175,    86,   142,    60,
+     486,   435,   143,   261,   127,   188,   127,   189,   127,   587,
+     127,   127,    20,   160,   305,   145,    61,   607,    20,    20,
+     127,   127,    22,   172,    16,    61,    24,   171,   173,   165,
+     112,    60,   641,   245,   162,   127,   127,   257,   319,   612,
+     446,   228,    85,   229,   128,   153,   128,    85,   128,    17,
+     128,   128,    20,   141,   154,   473,   161,    61,   191,   192,
+     128,   128,  -290,   241,   129,   182,   474,   242,   133,   642,
+     135,   136,   635,   636,   637,   168,   128,   259,   447,   158,
+     150,   151,   159,   262,   359,   360,   254,   361,   647,   648,
+     362,   264,   125,   166,   363,   169,   170,   126,   364,   365,
+     438,   463,   666,   280,   448,   659,   187,   660,   187,   292,
+     193,  -289,   317,   293,  -291,   663,   519,   166,   240,   464,
+     196,   249,   138,   246,   190,   235,   481,   299,   302,   302,
+     165,   366,   139,   247,   275,    20,   314,   315,   227,    22,
+      60,    60,   310,    24,   431,   295,   466,   127,   183,   184,
+     185,   186,  -332,   410,   165,   367,   412,   538,   148,   308,
+     480,   194,   195,   468,   291,   313,    61,    61,   539,   156,
+     488,   183,   184,   185,   186,   496,   497,   524,   183,   184,
+     185,   186,   183,   184,   185,   186,   228,   168,   229,   322,
+     323,   324,   325,   234,   327,   328,   330,   183,   184,   185,
+     186,  -328,   243,  -328,   368,   267,   237,   316,   268,   269,
+     270,   271,   380,  -330,   272,  -330,   382,   398,   529,   387,
+     230,   399,   231,   238,   183,   184,   185,   186,   569,   475,
+     232,   244,   233,   372,   373,   374,   375,   376,   377,   378,
+     379,   183,   184,   185,   186,   185,   186,   250,   465,   413,
+     437,  -328,   370,  -328,   251,   183,   184,   185,   186,   486,
+     597,   467,   551,  -336,   226,   183,   184,   185,   186,   469,
+     603,   604,   397,   415,   415,   415,   419,   415,   415,  -330,
+     302,  -330,   436,   389,   390,   392,    60,   400,   401,   528,
+     403,   404,   405,   406,   427,   252,   183,   184,   185,   186,
+     253,   255,  -102,   522,   260,   263,   183,   184,   185,   186,
+     416,   417,    61,   420,   421,   266,   580,   581,   183,   184,
+     185,   186,   443,    85,  -293,   273,   445,   287,    20,   296,
+     298,   183,   184,   185,   186,   301,   306,   454,   318,   183,
+     184,   185,   186,   307,   183,   184,   185,   186,   127,   309,
+     563,   311,  -292,   320,   614,   183,   184,   185,   186,   183,
+     184,   185,   186,   386,   381,   302,   452,   453,   125,   391,
+     384,   385,   398,   126,   460,   408,   399,   425,   402,   630,
+     485,   321,   166,   422,   498,   198,   199,   200,   128,   430,
+     277,   432,   429,   441,   278,   479,   479,   198,   279,   645,
+     444,   442,   446,   508,   508,   593,   490,   451,   455,   419,
+     495,   479,   479,   515,   461,   456,   457,   520,   483,   165,
+     217,   218,   219,   220,   592,   458,   471,   397,   221,   476,
+     477,   222,   223,   224,   225,   226,   484,   531,   502,   507,
+     221,    60,   492,   222,   223,   224,   225,   226,   499,   500,
+     514,   503,   525,   518,   267,   526,   532,   268,   269,   270,
+     271,    20,   533,   272,   534,   535,   541,    61,   542,   549,
+     548,   503,   183,   184,   185,   186,   576,   577,   546,   558,
+     552,   299,   553,   582,   554,   555,   302,   557,   560,   588,
+     589,   562,   566,   183,   184,   185,   186,   568,   479,   183,
+     184,   185,   186,   166,   570,   571,   572,   545,   578,   440,
+     579,   536,   600,   537,   183,   184,   185,   186,   595,   620,
+     615,   616,   617,   585,   547,   567,   619,   198,   199,   200,
+     449,   183,   184,   185,   186,   584,   462,   633,   628,   594,
+     165,   302,   598,   599,   609,   631,   632,   610,   611,   634,
+     601,   629,   479,   479,   639,   653,   605,   605,   646,   651,
+     198,   654,   264,   218,   219,   220,   657,   667,   512,   650,
+     221,   117,   274,   222,   223,   224,   225,   226,   574,   627,
+     624,   658,   183,   184,   185,   186,   493,   613,   664,   495,
+     479,   428,   662,   561,   511,   264,   264,   264,   220,   424,
+     510,   565,   668,   221,   608,   513,   222,   223,   224,   225,
+     226,   264,   264,   621,   491,   479,   618,   290,   396,   523,
+       0,   132,   655,   134,     0,   652,   137,     0,   144,   146,
+     264,   661,     0,   503,     0,   479,     0,     0,   264,   485,
+       0,   155,   605,     0,   157,     0,     0,     0,   163,     0,
+     -13,    87,     0,     0,   176,   177,   178,   179,   180,     0,
+      18,    85,     0,    19,     0,     0,    20,     0,     0,    21,
+      22,    23,    88,     0,    24,    25,    89,    90,    91,    26,
+      27,    92,    93,     0,     0,    94,    95,    96,    97,     0,
+      98,    99,   100,   101,     0,     0,   102,    28,    29,   103,
+     104,   105,    30,    31,   106,    32,    33,    34,    35,    36,
+      37,     0,    38,    39,    40,    41,    42,    43,   107,   116,
+      44,     0,   108,    45,    46,    47,    48,    49,     0,     0,
+       0,    50,    51,    52,   183,   184,   185,   186,   289,   109,
+       0,    18,     0,     0,     0,     0,    53,    20,     0,     0,
+       0,    22,     0,     0,     0,    24,  -336,  -336,  -336,   225,
+     226,   393,   183,   184,   185,   186,     0,    54,    55,     0,
+      56,   530,    57,    58,     0,     0,     0,     0,     0,     0,
+      59,     0,     0,     0,     0,     0,     0,   326,     0,     0,
+       0,     0,     0,   331,     0,     0,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
+     346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
+     356,   357,    -3,    87,     0,   358,     0,     0,     0,     0,
+       0,     0,    18,    85,     0,    19,     0,     0,    20,     0,
+       0,    21,    22,    23,    88,     0,    24,    25,    89,    90,
+      91,    26,    27,    92,    93,     0,     0,    94,    95,    96,
+      97,     0,    98,    99,   100,   101,     0,     0,   102,    28,
+      29,   103,   104,   105,    30,    31,   106,    32,    33,    34,
+      35,    36,    37,     0,    38,    39,    40,    41,    42,    43,
+     107,   116,    44,     0,   108,    45,    46,    47,    48,    49,
+       0,     0,     0,    50,    51,    52,     0,     0,     0,     0,
+       0,   109,     0,     0,     0,     0,     0,     0,    53,     1,
+       2,     3,     4,     5,     6,     7,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    87,    54,
+      55,     0,    56,     0,    57,    58,     0,    18,    85,   470,
+      19,     0,    59,    20,     0,     0,    21,    22,    23,    88,
+       0,    24,    25,    89,    90,    91,    26,    27,    92,    93,
+       0,     0,    94,    95,    96,    97,     0,    98,    99,   100,
+     101,     0,     0,   102,    28,    29,   103,   104,   105,    30,
+      31,   106,    32,    33,    34,    35,    36,    37,     0,    38,
+      39,    40,    41,    42,    43,   107,   116,    44,     0,   108,
+      45,    46,    47,    48,    49,     0,     0,     0,    50,    51,
+      52,     0,     0,     0,     0,     0,   109,     0,     0,     0,
+       0,     0,     0,    53,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    86,     0,    53,    54,     0,    55,     0,    56,    57,
-      18,    84,     0,    19,     0,    58,    20,     0,     0,    21,
-      22,    23,    87,     0,    24,    25,    26,    27,    28,    29,
-      30,     0,    31,    32,    33,    34,    35,    36,    88,   109,
-      89,    90,    91,    37,    38,    92,    93,    94,    95,    96,
-      97,     0,     0,     0,    98,    99,   100,   101,   102,     0,
-       0,    39,     0,   103,    40,    41,    42,    43,    44,     0,
-       0,    45,    46,    47,    48,    49,    50,    51,     0,     0,
-       0,     0,     0,   104,     0,     0,     0,    52,     0,     0,
+     527,     0,     0,     0,    54,    55,     0,    56,     0,    57,
+      58,     0,     0,    87,     0,     0,     0,    59,     0,     0,
+       0,     0,    18,    85,   556,    19,     0,     0,    20,     0,
+       0,    21,    22,    23,    88,     0,    24,    25,    89,    90,
+      91,    26,    27,    92,    93,     0,     0,    94,    95,    96,
+      97,     0,    98,    99,   100,   101,     0,   564,   102,    28,
+      29,   103,   104,   105,    30,    31,   106,    32,    33,    34,
+      35,    36,    37,     0,    38,    39,    40,    41,    42,    43,
+     107,   116,    44,     0,   108,    45,    46,    47,    48,    49,
+     575,     0,     0,    50,    51,    52,     0,     0,     0,     0,
+       0,   109,     0,     0,     0,     0,     0,     0,    53,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      86,     0,    53,    54,     0,    55,     0,    56,    57,    18,
-      84,     0,    19,     0,    58,    20,     0,     0,    21,    22,
-      23,    87,     0,    24,    25,    26,    27,    28,    29,    30,
-       0,    31,    32,    33,    34,    35,    36,    88,     0,    89,
-      90,    91,    37,    38,    92,    93,    94,    95,    96,    97,
-       0,     0,     0,    98,    99,   100,   101,   102,     0,     0,
-      39,     0,   103,    40,    41,    42,    43,    44,     0,     0,
-      45,    46,    47,    48,    49,    50,    51,     0,     0,     0,
-       0,     0,   104,     0,     0,     0,    52,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    86,     0,     0,     0,
-       0,    53,    54,     0,    55,    18,    56,    57,    19,     0,
-       0,    20,     0,    58,    21,    22,    23,   -17,     0,    24,
-      25,    26,    27,    28,    29,    30,     0,    31,    32,    33,
-      34,    35,    36,     0,     0,     0,     0,     0,    37,    38,
-       0,     0,     0,     0,     0,     0,     0,     0,   188,   189,
-       0,     0,     0,     0,     0,     0,    39,     0,     0,    40,
-      41,    42,    43,    44,     0,     0,    45,    46,    47,    48,
-      49,    50,    51,   195,   196,   197,   198,   199,   200,   201,
-     202,     0,    52,     0,     0,   203,     0,     0,   204,   205,
-     206,   207,    86,     0,     0,     0,     0,    53,    54,     0,
-      55,    18,    56,    57,    19,     0,     0,    20,     0,    58,
-      21,    22,    23,     0,     0,    24,    25,    26,    27,    28,
-      29,    30,     0,    31,    32,    33,    34,    35,    36,     0,
-       0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    87,    54,
+      55,     0,    56,     0,    57,    58,     0,    18,    85,   622,
+      19,     0,    59,    20,     0,     0,    21,    22,    23,    88,
+       0,    24,    25,    89,    90,    91,    26,    27,    92,    93,
+       0,     0,    94,    95,    96,    97,     0,    98,    99,   100,
+     101,     0,     0,   102,    28,    29,   103,   104,   105,    30,
+      31,   106,    32,    33,    34,    35,    36,    37,     0,    38,
+      39,    40,    41,    42,    43,   107,   116,    44,     0,   108,
+      45,    46,    47,    48,    49,     0,     0,     0,    50,    51,
+      52,     0,     0,     0,     0,     0,   109,     0,     0,     0,
+       0,     0,     0,    53,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    39,     0,     0,    40,    41,    42,    43,    44,
-    -219,     0,    45,    46,    47,    48,    49,    50,    51,     0,
-       0,   209,     0,   210,  -219,  -219,     0,     0,    52,     0,
-       0,     0,  -219,  -219,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    53,    54,     0,    55,     0,    56,    57,
-       0,     0,     0,     0,   -17,    58,     0,  -219,  -219,  -219,
-    -219,     0,     0,     0,  -219,     0,  -219,     0,     0,     0,
-       0,     0,  -219,     0,     0,     0,     0,     0,     0,  -219,
-    -219,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  -219,     0,     0,  -219,  -219,     0,  -219,  -219,
-    -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,
-    -219,  -219,  -258,   188,   189,     0,  -219,     0,     0,  -219,
-    -219,  -219,  -219,  -219,     0,     0,  -258,  -258,     0,     0,
-       0,     0,     0,     0,  -258,  -258,     0,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,     0,     0,     0,     0,
-     203,     0,     0,   204,   205,   206,   207,     0,     0,  -258,
-    -258,  -258,  -258,     0,     0,     0,  -258,     0,  -258,     0,
-       0,     0,     0,     0,  -258,     0,     0,     0,     0,     0,
-       0,  -258,  -258,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  -258,     0,     0,  -258,  -258,     0,
-    -258,  -258,  -258,  -258,  -258,  -258,  -258,  -258,  -258,  -258,
-    -258,  -258,  -258,  -258,     0,     0,     0,     0,  -258,     0,
-       0,  -258,  -258,  -258,  -258,  -258,    18,    84,     0,    19,
-       0,     0,    20,     0,     0,    21,    22,    23,     0,     0,
-      24,    25,   146,    27,    28,    29,    30,   119,    31,    32,
-      33,    34,    35,    36,     0,     0,     0,     0,     0,    37,
-      38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
-      40,    41,    42,    43,    44,     0,     0,    45,    46,    47,
-      48,    49,    50,    51,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    52,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    53,    54,
-       0,    55,     0,    56,    57,    18,    84,     0,    19,     0,
-      58,    20,     0,     0,    21,    22,    23,     0,     0,    24,
-      25,    26,    27,    28,    29,    30,     0,    31,    32,    33,
-      34,    35,    36,     0,     0,     0,     0,     0,    37,    38,
+       0,     0,     0,    87,    54,    55,     0,    56,     0,    57,
+      58,     0,    18,    85,   623,    19,     0,    59,    20,     0,
+       0,    21,    22,    23,    88,     0,    24,    25,    89,    90,
+      91,    26,    27,    92,    93,     0,     0,    94,    95,    96,
+      97,     0,    98,    99,   100,   101,     0,     0,   102,    28,
+      29,   103,   104,   105,    30,    31,   106,    32,    33,    34,
+      35,    36,    37,     0,    38,    39,    40,    41,    42,    43,
+     107,   116,    44,     0,   108,    45,    46,    47,    48,    49,
+       0,     0,     0,    50,    51,    52,     0,     0,     0,     0,
+       0,   109,     0,     0,     0,     0,     0,     0,    53,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    39,     0,     0,    40,
-      41,    42,    43,    44,     0,     0,    45,    46,    47,    48,
-      49,    50,    51,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    53,    54,     0,
-      55,    18,    56,    57,    19,     0,     0,    20,     0,    58,
-      21,    22,    23,     0,     0,    24,    25,    26,    27,    28,
-      29,    30,     0,    31,    32,    33,    34,    35,    36,     0,
-       0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    87,    54,
+      55,     0,    56,     0,    57,    58,     0,    18,    85,   626,
+      19,     0,    59,    20,     0,     0,    21,    22,    23,    88,
+       0,    24,    25,    89,    90,    91,    26,    27,    92,    93,
+       0,     0,    94,    95,    96,    97,     0,    98,    99,   100,
+     101,     0,     0,   102,    28,    29,   103,   104,   105,    30,
+      31,   106,    32,    33,    34,    35,    36,    37,     0,    38,
+      39,    40,    41,    42,    43,   107,   116,    44,     0,   108,
+      45,    46,    47,    48,    49,     0,     0,     0,    50,    51,
+      52,     0,     0,     0,     0,     0,   109,     0,     0,     0,
+       0,     0,     0,    53,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    39,     0,     0,    40,    41,    42,    43,    44,
-       0,     0,    45,    46,    47,    48,    49,    50,    51,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    52,     0,
+       0,     0,     0,    87,    54,    55,     0,    56,     0,    57,
+      58,     0,    18,    85,   644,    19,     0,    59,    20,     0,
+       0,    21,    22,    23,    88,     0,    24,    25,    89,    90,
+      91,    26,    27,    92,    93,     0,     0,    94,    95,    96,
+      97,     0,    98,    99,   100,   101,     0,     0,   102,    28,
+      29,   103,   104,   105,    30,    31,   106,    32,    33,    34,
+      35,    36,    37,     0,    38,    39,    40,    41,    42,    43,
+     107,   116,    44,     0,   108,    45,    46,    47,    48,    49,
+       0,     0,     0,    50,    51,    52,     0,     0,     0,     0,
+       0,   109,     0,     0,     0,     0,     0,     0,    53,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    53,    54,     0,    55,    18,    56,    57,
-      19,     0,     0,    20,   173,    58,    21,    22,    23,     0,
-       0,    24,    25,    26,    27,    28,    29,    30,     0,    31,
-      32,    33,    34,    35,    36,     0,     0,     0,     0,     0,
-      37,    38,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
-       0,    40,    41,    42,    43,    44,     0,     0,    45,    46,
-      47,    48,    49,    50,    51,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    52,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    53,
-      54,     0,    55,    18,    56,    57,    19,     0,     0,    20,
-     275,    58,    21,    22,    23,     0,     0,    24,    25,    26,
-      27,    28,    29,    30,     0,    31,    32,    33,    34,    35,
-      36,     0,     0,     0,     0,     0,    37,    38,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    87,    54,
+      55,     0,    56,     0,    57,    58,     0,    18,    85,     0,
+      19,     0,    59,    20,     0,     0,    21,    22,    23,    88,
+       0,    24,    25,    89,    90,    91,    26,    27,    92,    93,
+       0,     0,    94,    95,    96,    97,     0,    98,    99,   100,
+     101,     0,     0,   102,    28,    29,   103,   104,   105,    30,
+      31,   106,    32,    33,    34,    35,    36,    37,     0,    38,
+      39,    40,    41,    42,    43,   107,   116,    44,     0,   108,
+      45,    46,    47,    48,    49,     0,     0,     0,    50,    51,
+      52,     0,     0,   665,     0,     0,   109,     0,     0,     0,
+       0,     0,     0,    53,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    39,     0,     0,    40,    41,    42,
-      43,    44,     0,     0,    45,    46,    47,    48,    49,    50,
-      51,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      52,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    53,    54,     0,    55,    18,
-      56,    57,    19,     0,     0,    20,   289,    58,    21,    22,
-      23,     0,     0,    24,    25,    26,    27,    28,    29,    30,
-       0,    31,    32,    33,    34,    35,    36,     0,     0,     0,
-       0,     0,    37,    38,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    87,    54,    55,     0,    56,     0,    57,
+      58,     0,    18,    85,     0,    19,     0,    59,    20,     0,
+       0,    21,    22,    23,    88,     0,    24,    25,    89,    90,
+      91,    26,    27,    92,    93,     0,     0,    94,    95,    96,
+      97,     0,    98,    99,   100,   101,     0,     0,   102,    28,
+      29,   103,   104,   105,    30,    31,   106,    32,    33,    34,
+      35,    36,    37,     0,    38,    39,    40,    41,    42,    43,
+     107,   116,    44,     0,   108,    45,    46,    47,    48,    49,
+       0,     0,     0,    50,    51,    52,     0,     0,     0,     0,
+       0,   109,     0,     0,     0,     0,     0,     0,    53,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      39,     0,     0,    40,    41,    42,    43,    44,     0,     0,
-      45,    46,    47,    48,    49,    50,    51,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    52,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    87,    54,
+      55,     0,    56,     0,    57,    58,     0,    18,    85,     0,
+      19,     0,    59,    20,     0,     0,    21,    22,    23,    88,
+       0,    24,    25,    89,    90,    91,    26,    27,    92,    93,
+       0,     0,    94,    95,    96,    97,     0,    98,    99,   100,
+     101,     0,     0,   102,    28,    29,   103,   104,   105,    30,
+      31,   106,    32,    33,    34,    35,    36,    37,     0,    38,
+      39,    40,    41,    42,    43,   107,     0,    44,     0,   108,
+      45,    46,    47,    48,    49,     0,     0,     0,    50,    51,
+      52,     0,    87,     0,     0,     0,   109,     0,     0,     0,
+       0,    18,     0,    53,    19,     0,     0,    20,     0,     0,
+      21,    22,    23,   -19,     0,    24,    25,     0,     0,     0,
+      26,    27,     0,     0,    54,    55,     0,    56,     0,    57,
+      58,     0,     0,     0,     0,     0,     0,    59,    28,    29,
+       0,     0,     0,    30,    31,     0,    32,    33,    34,    35,
+      36,    37,     0,    38,    39,    40,    41,    42,    43,     0,
+       0,    44,     0,     0,    45,    46,    47,    48,    49,     0,
+       0,    87,    50,    51,    52,     0,     0,     0,     0,     0,
+      18,     0,     0,    19,     0,     0,    20,    53,     0,    21,
+      22,    23,     0,     0,    24,    25,     0,     0,     0,    26,
+      27,     0,     0,     0,     0,     0,     0,     0,    54,    55,
+       0,    56,     0,    57,    58,     0,     0,    28,    29,     0,
+       0,    59,    30,    31,     0,    32,    33,    34,    35,    36,
+      37,     0,    38,    39,    40,    41,    42,    43,     0,     0,
+      44,     0,     0,    45,    46,    47,    48,    49,     0,     0,
+       0,    50,    51,    52,     0,     0,     0,     0,     0,    18,
+      85,     0,    19,     0,     0,    20,    53,     0,    21,    22,
+      23,     0,     0,    24,    25,     0,     0,     0,    26,    27,
+       0,     0,     0,     0,     0,     0,     0,    54,    55,     0,
+      56,     0,    57,    58,     0,     0,    28,    29,     0,   -19,
+      59,    30,    31,     0,    32,   164,    34,    35,    36,    37,
+     126,    38,    39,    40,    41,    42,    43,     0,     0,    44,
+       0,     0,    45,    46,    47,    48,    49,     0,     0,     0,
+      50,    51,    52,     0,     0,     0,     0,     0,    18,    85,
+       0,    19,     0,     0,    20,    53,     0,    21,    22,    23,
+       0,     0,    24,    25,     0,     0,     0,    26,    27,     0,
+       0,     0,     0,     0,     0,     0,    54,    55,     0,    56,
+       0,    57,    58,     0,     0,    28,    29,     0,     0,    59,
+      30,    31,     0,    32,    33,    34,    35,    36,    37,     0,
+      38,    39,    40,    41,    42,    43,     0,     0,    44,     0,
+       0,    45,    46,    47,    48,    49,     0,     0,     0,    50,
+      51,    52,     0,     0,     0,     0,     0,    18,     0,     0,
+      19,     0,     0,    20,    53,     0,    21,    22,    23,     0,
+       0,    24,    25,     0,     0,     0,    26,    27,     0,     0,
+       0,     0,     0,     0,     0,    54,    55,     0,    56,     0,
+      57,    58,     0,     0,    28,    29,     0,     0,    59,    30,
+      31,     0,    32,    33,    34,    35,    36,    37,     0,    38,
+      39,    40,    41,    42,    43,     0,     0,    44,     0,     0,
+      45,    46,    47,    48,    49,     0,     0,     0,    50,    51,
+      52,     0,     0,     0,     0,     0,    18,     0,     0,    19,
+       0,     0,    20,    53,     0,    21,    22,    23,     0,     0,
+      24,    25,     0,     0,     0,    26,    27,     0,     0,     0,
+       0,     0,     0,     0,    54,    55,     0,    56,     0,    57,
+      58,     0,     0,    28,    29,     0,   181,    59,    30,    31,
+       0,    32,    33,    34,    35,    36,    37,     0,    38,    39,
+      40,    41,    42,    43,     0,     0,    44,     0,     0,    45,
+      46,    47,    48,    49,     0,     0,     0,    50,    51,    52,
+       0,     0,     0,     0,     0,    18,     0,     0,    19,     0,
+       0,    20,    53,     0,    21,    22,    23,     0,     0,    24,
+      25,     0,     0,     0,    26,    27,     0,     0,     0,     0,
+       0,     0,     0,    54,    55,     0,    56,     0,    57,    58,
+       0,     0,    28,    29,     0,   294,    59,    30,    31,     0,
+      32,    33,    34,    35,    36,    37,     0,    38,    39,    40,
+      41,    42,    43,     0,     0,    44,     0,     0,    45,    46,
+      47,    48,    49,     0,     0,     0,    50,    51,    52,     0,
+       0,     0,     0,     0,  -335,   228,     0,   229,     0,     0,
+    -335,    53,     0,  -335,  -335,  -335,     0,     0,  -335,  -335,
+       0,     0,     0,  -335,  -335,     0,     0,     0,     0,     0,
+       0,     0,    54,    55,     0,    56,     0,    57,    58,     0,
+       0,  -335,  -335,     0,   312,    59,  -335,  -335,     0,  -335,
+    -335,  -335,  -335,  -335,  -335,     0,  -335,  -335,  -335,  -335,
+    -335,  -335,     0,     0,  -335,     0,     0,  -335,  -335,  -335,
+    -335,  -335,     0,     0,     0,  -335,  -335,  -335,     0,     0,
+       0,     0,     0,    18,     0,     0,    19,     0,     0,    20,
+    -335,     0,    21,    22,    23,     0,     0,    24,    25,     0,
+       0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
+       0,  -335,  -335,     0,  -335,     0,  -335,  -335,     0,     0,
+      28,    29,     0,     0,  -335,    30,    31,     0,    32,    33,
+      34,    35,    36,    37,     0,    38,    39,    40,    41,    42,
+      43,     0,     0,    44,     0,     0,    45,    46,    47,    48,
+      49,     0,     0,     0,    50,    51,    52,     0,     0,     0,
+       0,     0,    18,     0,     0,    19,     0,     0,    20,    53,
+       0,    21,    22,    23,     0,     0,    24,    25,     0,     0,
+       0,    26,    27,     0,     0,     0,     0,     0,     0,     0,
+      54,    55,     0,    56,     0,    57,    58,     0,     0,    28,
+      29,     0,   329,    59,    30,    31,     0,    32,    33,    34,
+      35,    36,    37,     0,    38,    39,    40,    41,    42,    43,
+       0,     0,    44,     0,     0,    45,    46,    47,    48,    49,
+       0,     0,     0,    50,    51,    52,     0,     0,     0,     0,
+       0,    18,     0,     0,    19,     0,     0,    20,    53,     0,
+      21,    22,    23,     0,     0,    24,    25,     0,     0,     0,
+      26,    27,     0,     0,     0,     0,     0,     0,     0,    54,
+      55,     0,    56,     0,    57,    58,     0,     0,    28,    29,
+       0,   371,    59,    30,    31,     0,    32,    33,    34,    35,
+      36,    37,     0,    38,    39,    40,    41,    42,    43,     0,
+       0,    44,     0,     0,    45,    46,    47,    48,    49,     0,
+       0,     0,    50,    51,    52,     0,     0,     0,     0,     0,
+      18,     0,     0,    19,     0,     0,    20,    53,     0,    21,
+      22,    23,     0,     0,    24,    25,     0,     0,     0,    26,
+      27,     0,     0,     0,     0,     0,     0,     0,    54,    55,
+       0,    56,     0,    57,    58,     0,     0,    28,    29,     0,
+     426,    59,    30,    31,     0,    32,    33,    34,    35,    36,
+      37,     0,    38,    39,    40,    41,    42,    43,     0,     0,
+      44,     0,     0,    45,    46,    47,    48,    49,     0,     0,
+       0,    50,    51,    52,     0,     0,     0,     0,     0,    18,
+       0,     0,    19,     0,     0,    20,    53,     0,    21,    22,
+      23,     0,     0,    24,    25,     0,     0,     0,    26,    27,
+       0,     0,     0,     0,     0,     0,     0,    54,    55,     0,
+      56,     0,    57,    58,     0,     0,    28,    29,     0,   459,
+      59,    30,    31,     0,    32,    33,    34,    35,    36,    37,
+       0,    38,    39,    40,    41,    42,    43,     0,     0,    44,
+       0,     0,    45,    46,    47,    48,    49,     0,     0,     0,
+      50,    51,    52,     0,     0,     0,     0,     0,    18,     0,
+       0,    19,     0,     0,    20,    53,     0,    21,    22,    23,
+       0,     0,    24,    25,     0,     0,     0,    26,    27,     0,
+       0,     0,     0,     0,     0,     0,    54,    55,     0,    56,
+       0,    57,    58,     0,     0,    28,    29,     0,     0,    59,
+      30,    31,     0,    32,    33,    34,    35,    36,    37,     0,
+      38,    39,    40,    41,    42,    43,     0,     0,    44,     0,
+       0,    45,    46,    47,    48,    49,     0,     0,     0,    50,
+      51,    52,     0,     0,     0,     0,     0,  -334,     0,     0,
+    -334,     0,     0,  -334,    53,     0,  -334,  -334,  -334,     0,
+       0,  -334,  -334,     0,     0,     0,  -334,  -334,     0,     0,
+       0,     0,     0,     0,     0,    54,    55,     0,    56,     0,
+      57,    58,     0,     0,  -334,  -334,     0,     0,   288,  -334,
+    -334,     0,  -334,  -334,  -334,  -334,  -334,  -334,     0,  -334,
+    -334,  -334,  -334,  -334,  -334,     0,     0,  -334,     0,     0,
+    -334,  -334,  -334,  -334,  -334,     0,     0,     0,  -334,  -334,
+    -334,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  -334,     0,     0,     0,     0,     0,     0,
+       0,     0,   197,     0,     0,     0,     0,     0,     0,   198,
+     199,   200,     0,     0,  -334,  -334,     0,  -334,     0,  -334,
+    -334,     0,   201,     0,     0,     0,     0,  -334,   202,   203,
+     204,   450,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,     0,     0,
+       0,     0,   221,   197,     0,   222,   223,   224,   225,   226,
+     198,   199,   200,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   201,     0,     0,     0,     0,     0,   202,
+     203,   204,     0,   205,   206,   207,   208,   209,   210,   211,
+     212,   213,   214,   215,   216,   217,   218,   219,   220,     0,
+       0,     0,     0,   221,   197,     0,   222,   223,   224,   225,
+     226,   198,   199,   200,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  -336,     0,     0,     0,   198,   199,
+     202,   203,   204,     0,   205,   206,   207,   208,   209,   210,
+     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
+       0,     0,     0,     0,   221,   197,     0,   222,   223,   224,
+     225,   226,   198,   199,   200,   219,   220,     0,     0,     0,
+       0,   221,     0,     0,   222,   223,   224,   225,   226,     0,
+       0,   202,   203,   204,     0,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,     0,     0,     0,     0,   221,   197,     0,   222,   223,
+     224,   225,   226,   198,   199,   200,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    53,    54,     0,    55,    18,    56,    57,    19,     0,
-       0,    20,   300,    58,    21,    22,    23,     0,     0,    24,
-      25,    26,    27,    28,    29,    30,     0,    31,    32,    33,
-      34,    35,    36,     0,     0,     0,     0,     0,    37,    38,
+       0,     0,     0,     0,   204,     0,   205,   206,   207,   208,
+     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
+     219,   220,     0,     0,     0,     0,   221,  -336,     0,   222,
+     223,   224,   225,   226,   198,   199,   200,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    39,     0,     0,    40,
-      41,    42,    43,    44,     0,     0,    45,    46,    47,    48,
-      49,    50,    51,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    53,    54,     0,
-      55,    18,    56,    57,    19,     0,     0,    20,   333,    58,
-      21,    22,    23,     0,     0,    24,    25,    26,    27,    28,
-      29,    30,     0,    31,    32,    33,    34,    35,    36,     0,
-       0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    39,     0,     0,    40,    41,    42,    43,    44,
-       0,     0,    45,    46,    47,    48,    49,    50,    51,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    52,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    53,    54,     0,    55,    18,    56,    57,
-      19,     0,     0,    20,   396,    58,    21,    22,    23,     0,
-       0,    24,    25,    26,    27,    28,    29,    30,     0,    31,
-      32,    33,    34,    35,    36,     0,     0,     0,     0,     0,
-      37,    38,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
-       0,    40,    41,    42,    43,    44,     0,     0,    45,    46,
-      47,    48,    49,    50,    51,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    52,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    53,
-      54,     0,    55,    18,    56,    57,    19,     0,     0,    20,
-     415,    58,    21,    22,    23,     0,     0,    24,    25,    26,
-      27,    28,    29,    30,     0,    31,    32,    33,    34,    35,
-      36,     0,     0,     0,     0,     0,    37,    38,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    39,     0,     0,    40,    41,    42,
-      43,    44,     0,     0,    45,    46,    47,    48,    49,    50,
-      51,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      52,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    53,    54,     0,    55,    18,
-      56,    57,    19,     0,     0,    20,     0,    58,    21,    22,
-      23,     0,     0,    24,    25,    26,    27,    28,    29,    30,
-       0,    31,    32,    33,    34,    35,    36,     0,     0,     0,
-       0,     0,    37,    38,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      39,     0,     0,    40,    41,    42,    43,    44,     0,     0,
-      45,    46,    47,    48,    49,    50,    51,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    52,     0,   187,     0,
-       0,     0,     0,     0,     0,   188,   189,     0,     0,     0,
-       0,    53,    54,     0,    55,     0,    56,    57,     0,     0,
-       0,     0,     0,   283,   190,   191,   406,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,     0,     0,
-       0,     0,   203,   187,     0,   204,   205,   206,   207,     0,
-     188,   189,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   190,
-     191,     0,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,     0,     0,     0,     0,   203,   187,     0,
-     204,   205,   206,   207,     0,   188,   189,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   191,     0,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,     0,     0,
-       0,     0,   203,  -300,     0,   204,   205,   206,   207,     0,
-     188,   189,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,     0,     0,     0,     0,   203,     0,     0,
-     204,   205,   206,   207
+       0,     0,     0,     0,     0,     0,     0,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   198,   199,   200,     0,   221,     0,     0,
+     222,   223,   224,   225,   226,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   198,   199,   200,   208,
+     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
+     219,   220,     0,     0,     0,     0,   221,     0,     0,   222,
+     223,   224,   225,   226,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   198,   199,   200,     0,   221,
+       0,     0,   222,   223,   224,   225,   226,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   198,   199,   200,     0,
+       0,     0,     0,     0,   211,   212,   213,   214,   215,   216,
+     217,   218,   219,   220,     0,   198,   199,   200,   221,     0,
+       0,   222,   223,   224,   225,   226,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   198,   199,   200,     0,   221,
+       0,     0,   222,   223,   224,   225,   226,   214,   215,   216,
+     217,   218,   219,   220,   198,   199,   200,     0,   221,     0,
+       0,   222,   223,   224,   225,   226,     0,     0,     0,   216,
+     217,   218,   219,   220,     0,     0,     0,     0,   221,     0,
+       0,   222,   223,   224,   225,   226,     0,     0,  -336,   217,
+     218,   219,   220,     0,     0,     0,     0,   221,     0,     0,
+     222,   223,   224,   225,   226
 };
 
 static const yytype_int16 yycheck[] =
 {
-      11,   130,    17,   363,    16,   492,   270,    18,    50,    20,
-      19,    22,    44,    24,    25,    10,    27,    28,    12,    14,
-      52,    11,    17,    13,    19,    16,    50,    11,    13,   158,
-     527,    11,    43,    44,    45,    46,    14,     0,    47,    14,
-      22,    14,    22,   353,    81,    14,    13,    29,   104,    44,
-     114,    16,    47,   363,    18,    20,   366,   367,    22,    24,
-      24,    25,    13,    27,    28,   114,    16,    14,   114,    18,
-      20,    20,    15,    22,    24,    24,    25,   114,    27,    28,
-      44,    45,    14,    10,    98,    76,     9,    85,    86,    11,
-     101,    13,    19,    78,    22,    44,    45,    96,   130,    14,
-     587,    50,   114,   600,    22,    11,    14,    85,    86,   114,
-      85,    86,    85,    86,   105,   109,    85,    86,   160,   151,
-      47,   116,    11,   114,   114,   136,   158,    78,    11,    15,
-      13,    58,   143,   142,   143,   130,   160,    23,    85,    86,
-     114,   451,   137,   138,    85,    86,    22,   142,   143,    98,
-      11,    26,    13,    85,    86,   105,    78,    85,    86,    10,
-      11,    84,    13,   158,   114,    16,   430,    85,    86,    20,
-      85,    86,   113,    24,    25,    22,    27,    85,    86,   143,
-      22,    26,    11,   114,    13,   227,    31,    22,   498,   499,
-      47,    48,    49,    50,   143,    78,    22,    54,    10,    56,
-      11,   216,    13,   227,    16,    11,   133,    13,    20,    85,
-      86,   160,    24,   114,   141,   142,   143,    78,    98,    99,
-      71,   216,   217,   487,   534,    11,   114,   238,    85,    86,
-      16,    11,   264,    13,   161,    11,   596,    13,    85,    86,
-      26,    85,    86,    85,    86,    31,   556,   114,   175,   176,
-     114,   178,   179,   180,   263,    11,   113,   386,   207,    85,
-      86,    53,   572,   114,    76,    22,    85,    86,   263,   113,
-      85,    86,    96,    97,    14,   270,    85,    86,   227,    51,
-      52,   208,   209,   210,   211,   212,   213,   214,   215,   218,
-     219,   114,    69,    70,   113,   532,    37,    38,   113,   222,
-     223,   224,   225,   226,   113,   228,   229,    69,   231,   232,
-      81,   548,   549,   324,   113,   242,   243,   244,   245,   246,
-     247,    29,   364,   100,   101,   562,    78,    85,    86,   106,
-      90,    91,   109,   110,   111,   112,   263,   574,   575,   101,
-     364,    85,    86,   113,   106,    22,    78,   109,   110,   111,
-     112,   588,   279,   368,   386,   113,   283,    26,   595,    85,
-      86,   490,   109,   110,   111,   112,   293,    13,   363,   113,
-      69,    70,    16,   368,    26,   324,    20,    69,    70,   114,
-      24,   244,   245,   246,   247,   380,   381,   113,   105,   384,
-      31,   386,    59,    15,   389,   322,   323,    96,    97,    98,
-      99,   100,   101,   330,    29,    12,   355,   106,   417,   101,
-     109,   110,   111,   112,   106,   364,    82,   109,   110,   111,
-     112,    29,   417,   350,   351,   352,   353,   113,    13,    86,
-      69,    70,    25,    25,   429,   430,   363,   493,   494,   366,
-     367,    25,   365,    25,   500,   101,    25,    18,   504,   505,
-     106,   114,    26,   109,   110,   111,   112,    88,   490,    98,
-      99,   100,   101,   114,   387,   114,   113,   106,   524,   525,
-     109,   110,   111,   112,   114,   402,    12,    12,    12,   535,
-       3,     4,     5,     6,     7,     8,     9,    12,    12,    26,
-     417,   440,   487,   113,   550,   490,   511,   113,   513,   113,
-     113,   557,   558,    16,   427,   114,   106,   522,   431,   109,
-     110,   111,   112,    69,    70,   113,   511,    22,   513,   113,
-     443,   577,   113,    82,   451,    11,    11,   522,   584,    12,
-     113,   526,   527,   589,    15,   462,   113,   113,   594,    95,
-      96,    97,    98,    99,   100,   101,    22,   542,    22,   114,
-     106,   607,   113,   109,   110,   111,   112,    22,    80,    47,
-      48,    49,    50,    22,   114,   113,    54,   113,    56,   114,
-      22,   498,   499,   113,   113,   113,   591,    17,    79,   528,
-     113,    60,   113,   109,   507,    13,   581,   533,   351,   538,
-     596,    21,   603,    23,   285,   518,   591,    85,    86,   429,
-     255,   596,   381,   468,    34,   600,   533,   534,   382,    39,
-     488,   518,   227,    43,   364,    -1,    46,   160,    -1,    49,
-      -1,    51,    -1,    53,    54,    55,    56,    57,    -1,   556,
-       0,     1,    -1,    11,    -1,    -1,    -1,    -1,    16,    -1,
-      10,    11,    -1,    13,    -1,   572,    16,    25,    26,    19,
-      20,    21,    22,    31,    24,    25,    26,    27,    28,    29,
-      30,    -1,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,
-      -1,    61,    -1,    63,    64,    65,    66,    67,    68,    -1,
-      -1,    71,    72,    73,    74,    75,    76,    77,    -1,    -1,
-      -1,    -1,    -1,    83,    -1,    -1,    -1,    87,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     160,    -1,   102,   103,    -1,   105,    -1,   107,   108,    -1,
-      -1,    -1,    -1,    -1,   114,    -1,    -1,   177,    -1,    -1,
-      -1,    -1,    -1,   183,    -1,    -1,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,     0,     1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    10,    11,    -1,    13,    -1,    -1,
-      16,    -1,    -1,    19,    20,    21,    22,    -1,    24,    25,
-      26,    27,    28,    29,    30,    -1,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-      56,    57,    58,    -1,    -1,    61,    -1,    63,    64,    65,
-      66,    67,    68,    -1,    -1,    71,    72,    73,    74,    75,
-      76,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
-      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,   105,
-       1,   107,   108,    -1,    -1,    -1,    -1,    -1,   114,    10,
-      11,    12,    13,    -1,    -1,    16,    -1,    -1,    19,    20,
-      21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
-      -1,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,    -1,
-      61,    -1,    63,    64,    65,    66,    67,    68,    -1,    -1,
-      71,    72,    73,    74,    75,    76,    77,    -1,    -1,    -1,
-      -1,    -1,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   406,    -1,    -1,    -1,
-      -1,   102,   103,    -1,   105,    -1,   107,   108,    -1,    -1,
-      -1,    -1,    -1,   114,    -1,    -1,     1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    -1,
-      -1,    16,    -1,    -1,    19,    20,    21,    22,    -1,    24,
-      25,    26,    27,    28,    29,    30,   456,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    54,
-      55,    56,    57,    58,    -1,    -1,    61,    -1,    63,    64,
-      65,    66,    67,    68,    -1,    -1,    71,    72,    73,    74,
-      75,    76,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,
-      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     1,    -1,   102,   103,    -1,
-     105,    -1,   107,   108,    10,    11,    12,    13,    -1,   114,
-      16,    -1,    -1,    19,    20,    21,    22,    -1,    24,    25,
-      26,    27,    28,    29,    30,    -1,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-      56,    57,    58,    -1,    -1,    61,    -1,    63,    64,    65,
-      66,    67,    68,    -1,    -1,    71,    72,    73,    74,    75,
-      76,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
-      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     1,    -1,   102,   103,    -1,   105,
-      -1,   107,   108,    10,    11,    12,    13,    -1,   114,    16,
-      -1,    -1,    19,    20,    21,    22,    -1,    24,    25,    26,
-      27,    28,    29,    30,    -1,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    -1,    -1,    -1,    54,    55,    56,
-      57,    58,    -1,    -1,    61,    -1,    63,    64,    65,    66,
-      67,    68,    -1,    -1,    71,    72,    73,    74,    75,    76,
-      77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,     1,    -1,   102,   103,    -1,   105,    -1,
-     107,   108,    10,    11,    12,    13,    -1,   114,    16,    -1,
-      -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
-      28,    29,    30,    -1,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    -1,    -1,    -1,    54,    55,    56,    57,
-      58,    -1,    -1,    61,    -1,    63,    64,    65,    66,    67,
-      68,    -1,    -1,    71,    72,    73,    74,    75,    76,    77,
-      -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    87,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     1,    -1,   102,   103,    -1,   105,    -1,   107,
-     108,    10,    11,    -1,    13,    -1,   114,    16,    -1,    -1,
-      19,    20,    21,    22,    -1,    24,    25,    26,    27,    28,
-      29,    30,    -1,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    -1,    -1,    -1,    54,    55,    56,    57,    58,
-      -1,    -1,    61,    -1,    63,    64,    65,    66,    67,    68,
-      -1,    -1,    71,    72,    73,    74,    75,    76,    77,    -1,
-      -1,    80,    -1,    -1,    83,    -1,    -1,    -1,    87,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,     1,    -1,   102,   103,    -1,   105,    -1,   107,   108,
-      10,    11,    -1,    13,    -1,   114,    16,    -1,    -1,    19,
+      10,    13,    49,   149,    17,    19,    53,    11,    27,    19,
+     400,   304,    27,   109,    18,    11,    20,    13,    22,   553,
+      24,    25,    16,    87,   150,    29,    10,   577,    16,    16,
+      34,    35,    20,    56,     0,    19,    24,    51,    61,    49,
+      12,    51,    22,    30,    48,    49,    50,   102,   174,   582,
+      13,    11,    11,    13,    18,    13,    20,    11,    22,     9,
+      24,    25,    16,    27,   130,    11,   130,    51,   110,   111,
+      34,    35,    84,    92,    18,    59,    22,    92,    22,    59,
+      24,    25,   615,   616,   617,    49,    50,   104,    22,   130,
+      34,    35,   130,   110,    10,    11,   100,    13,   631,   632,
+      16,   111,    56,   150,    20,    49,    50,    61,    24,    25,
+      14,    22,   662,   123,    14,   649,    15,   650,    15,   138,
+     110,    84,   169,   138,    84,   658,    23,   174,    92,    14,
+     108,    95,   120,   120,   130,    85,   130,   147,   148,   149,
+     150,    57,   130,   130,   116,    16,   160,   161,   130,    20,
+     160,   161,   156,    24,   300,   139,    14,   161,    92,    93,
+      94,    95,    11,   259,   174,    81,   262,    11,    31,   153,
+     390,   108,   109,    14,   138,   159,   160,   161,    22,    42,
+     400,    92,    93,    94,    95,   405,   406,    14,    92,    93,
+      94,    95,    92,    93,    94,    95,    11,   161,    13,   183,
+     184,   185,   186,    11,   188,   189,   190,    92,    93,    94,
+      95,    11,   130,    13,   130,    32,    56,   161,    35,    36,
+      37,    38,   235,    11,    41,    13,   236,   246,    14,   239,
+      11,   246,    13,    56,    92,    93,    94,    95,    14,   385,
+      11,   130,    13,   227,   228,   229,   230,   231,   232,   233,
+     234,    92,    93,    94,    95,    94,    95,   130,    22,   263,
+     307,    11,   226,    13,   130,    92,    93,    94,    95,   659,
+     563,    22,   492,   127,   128,    92,    93,    94,    95,    22,
+      33,    34,   246,   267,   268,   269,   270,   271,   272,    11,
+     300,    13,   306,   243,   244,   245,   306,   247,   248,    22,
+     250,   251,   252,   253,   288,   130,    92,    93,    94,    95,
+     130,    11,   129,   439,    22,    39,    92,    93,    94,    95,
+     268,   269,   306,   271,   272,    22,   546,   547,    92,    93,
+      94,    95,   316,    11,    84,    22,   320,    14,    16,    84,
+      59,    92,    93,    94,    95,    84,   130,    25,    22,    92,
+      93,    94,    95,    87,    92,    93,    94,    95,   362,   129,
+     506,   129,    84,    13,   584,    92,    93,    94,    95,    92,
+      93,    94,    95,    84,    56,   385,   360,   361,    56,   120,
+      56,    56,   401,    61,   368,    44,   401,    15,   130,   609,
+     400,   129,   439,    61,   407,    78,    79,    80,   362,    59,
+      16,    59,   129,    88,    20,   389,   390,    78,    24,   629,
+      12,   129,    13,   423,   424,   561,   400,    25,    25,   403,
+     404,   405,   406,   433,   130,    25,    25,   437,   392,   439,
+     113,   114,   115,   116,   560,    25,    18,   401,   121,    59,
+      97,   124,   125,   126,   127,   128,   130,   461,    22,    97,
+     121,   461,   402,   124,   125,   126,   127,   128,   408,    56,
+     130,   411,   446,   129,    32,    12,    12,    35,    36,    37,
+      38,    16,    12,    41,    12,    12,   129,   461,   129,    22,
+     129,   431,    92,    93,    94,    95,   541,   542,   130,   499,
+     129,   501,   129,   548,   129,   129,   506,   130,    56,   554,
+     555,    11,    11,    92,    93,    94,    95,    88,   492,    92,
+      93,    94,    95,   560,    12,   129,    22,   481,    15,   129,
+     129,   471,    86,   473,    92,    93,    94,    95,    22,    22,
+     585,   586,   587,   129,   484,   519,   591,    78,    79,    80,
+     129,    92,    93,    94,    95,   130,   129,    22,   603,   562,
+     560,   561,   129,   566,   130,   610,   611,   129,   129,   129,
+     573,   130,   546,   547,    45,    17,   576,   577,   129,   129,
+      78,    85,   582,   114,   115,   116,   129,   129,   129,   634,
+     121,    13,   116,   124,   125,   126,   127,   128,   538,   602,
+     600,   646,    92,    93,    94,    95,   403,   583,   659,   583,
+     584,   290,   657,   501,   425,   615,   616,   617,   116,   281,
+     424,   514,   667,   121,   578,   431,   124,   125,   126,   127,
+     128,   631,   632,   593,   401,   609,   590,   138,   246,   129,
+      -1,    21,   642,    23,    -1,   639,    26,    -1,    28,    29,
+     650,   654,    -1,   593,    -1,   629,    -1,    -1,   658,   659,
+      -1,    41,   662,    -1,    44,    -1,    -1,    -1,    48,    -1,
+       0,     1,    -1,    -1,    54,    55,    56,    57,    58,    -1,
+      10,    11,    -1,    13,    -1,    -1,    16,    -1,    -1,    19,
       20,    21,    22,    -1,    24,    25,    26,    27,    28,    29,
-      30,    -1,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,
-      -1,    61,    -1,    63,    64,    65,    66,    67,    68,    -1,
-      -1,    71,    72,    73,    74,    75,    76,    77,    -1,    -1,
-      -1,    -1,    -1,    83,    -1,    -1,    -1,    87,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       1,    -1,   102,   103,    -1,   105,    -1,   107,   108,    10,
-      11,    -1,    13,    -1,   114,    16,    -1,    -1,    19,    20,
-      21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
-      -1,    32,    33,    34,    35,    36,    37,    38,    -1,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      -1,    -1,    -1,    54,    55,    56,    57,    58,    -1,    -1,
-      61,    -1,    63,    64,    65,    66,    67,    68,    -1,    -1,
-      71,    72,    73,    74,    75,    76,    77,    -1,    -1,    -1,
-      -1,    -1,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,
-      -1,   102,   103,    -1,   105,    10,   107,   108,    13,    -1,
-      -1,    16,    -1,   114,    19,    20,    21,    22,    -1,    24,
-      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
-      35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    44,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
-      -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-      65,    66,    67,    68,    -1,    -1,    71,    72,    73,    74,
-      75,    76,    77,    94,    95,    96,    97,    98,    99,   100,
-     101,    -1,    87,    -1,    -1,   106,    -1,    -1,   109,   110,
-     111,   112,     1,    -1,    -1,    -1,    -1,   102,   103,    -1,
-     105,    10,   107,   108,    13,    -1,    -1,    16,    -1,   114,
-      19,    20,    21,    -1,    -1,    24,    25,    26,    27,    28,
-      29,    30,    -1,    32,    33,    34,    35,    36,    37,    -1,
-      -1,    -1,    -1,    -1,    43,    44,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    61,    -1,    -1,    64,    65,    66,    67,    68,
-       0,    -1,    71,    72,    73,    74,    75,    76,    77,    -1,
-      -1,    11,    -1,    13,    14,    15,    -1,    -1,    87,    -1,
-      -1,    -1,    22,    23,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   102,   103,    -1,   105,    -1,   107,   108,
-      -1,    -1,    -1,    -1,   113,   114,    -1,    47,    48,    49,
-      50,    -1,    -1,    -1,    54,    -1,    56,    -1,    -1,    -1,
-      -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,
-      70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    82,    -1,    -1,    85,    86,    -1,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,     0,    69,    70,    -1,   106,    -1,    -1,   109,
-     110,   111,   112,   113,    -1,    -1,    14,    15,    -1,    -1,
-      -1,    -1,    -1,    -1,    22,    23,    -1,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,
-     106,    -1,    -1,   109,   110,   111,   112,    -1,    -1,    47,
-      48,    49,    50,    -1,    -1,    -1,    54,    -1,    56,    -1,
-      -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
-      -1,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
-      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-      98,    99,   100,   101,    -1,    -1,    -1,    -1,   106,    -1,
-      -1,   109,   110,   111,   112,   113,    10,    11,    -1,    13,
-      -1,    -1,    16,    -1,    -1,    19,    20,    21,    -1,    -1,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
-      44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-      64,    65,    66,    67,    68,    -1,    -1,    71,    72,    73,
-      74,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,
-      -1,   105,    -1,   107,   108,    10,    11,    -1,    13,    -1,
-     114,    16,    -1,    -1,    19,    20,    21,    -1,    -1,    24,
-      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
-      35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    44,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-      65,    66,    67,    68,    -1,    -1,    71,    72,    73,    74,
-      75,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,
-     105,    10,   107,   108,    13,    -1,    -1,    16,    -1,   114,
-      19,    20,    21,    -1,    -1,    24,    25,    26,    27,    28,
-      29,    30,    -1,    32,    33,    34,    35,    36,    37,    -1,
-      -1,    -1,    -1,    -1,    43,    44,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    61,    -1,    -1,    64,    65,    66,    67,    68,
-      -1,    -1,    71,    72,    73,    74,    75,    76,    77,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   102,   103,    -1,   105,    10,   107,   108,
-      13,    -1,    -1,    16,   113,   114,    19,    20,    21,    -1,
-      -1,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
-      33,    34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,
-      43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-      -1,    64,    65,    66,    67,    68,    -1,    -1,    71,    72,
-      73,    74,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
-     103,    -1,   105,    10,   107,   108,    13,    -1,    -1,    16,
-     113,   114,    19,    20,    21,    -1,    -1,    24,    25,    26,
-      27,    28,    29,    30,    -1,    32,    33,    34,    35,    36,
-      37,    -1,    -1,    -1,    -1,    -1,    43,    44,    -1,    -1,
+      30,    31,    32,    -1,    -1,    35,    36,    37,    38,    -1,
+      40,    41,    42,    43,    -1,    -1,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    -1,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    74,    75,    76,    77,    -1,    -1,
+      -1,    81,    82,    83,    92,    93,    94,    95,   138,    89,
+      -1,    10,    -1,    -1,    -1,    -1,    96,    16,    -1,    -1,
+      -1,    20,    -1,    -1,    -1,    24,   124,   125,   126,   127,
+     128,    30,    92,    93,    94,    95,    -1,   117,   118,    -1,
+     120,   129,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
+     130,    -1,    -1,    -1,    -1,    -1,    -1,   187,    -1,    -1,
+      -1,    -1,    -1,   193,    -1,    -1,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,     0,     1,    -1,   225,    -1,    -1,    -1,    -1,
+      -1,    -1,    10,    11,    -1,    13,    -1,    -1,    16,    -1,
+      -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
+      38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
+      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,     3,
+       4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,   117,
+     118,    -1,   120,    -1,   122,   123,    -1,    10,    11,    12,
+      13,    -1,   130,    16,    -1,    -1,    19,    20,    21,    22,
+      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      -1,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
+      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
+      -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    65,    66,
-      67,    68,    -1,    -1,    71,    72,    73,    74,    75,    76,
-      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   102,   103,    -1,   105,    10,
-     107,   108,    13,    -1,    -1,    16,   113,   114,    19,    20,
-      21,    -1,    -1,    24,    25,    26,    27,    28,    29,    30,
-      -1,    32,    33,    34,    35,    36,    37,    -1,    -1,    -1,
-      -1,    -1,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,
+     450,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    -1,     1,    -1,    -1,    -1,   130,    -1,    -1,
+      -1,    -1,    10,    11,    12,    13,    -1,    -1,    16,    -1,
+      -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
+      38,    -1,    40,    41,    42,    43,    -1,   507,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+     540,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
+      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    -1,
-      71,    72,    73,    74,    75,    76,    77,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,   117,
+     118,    -1,   120,    -1,   122,   123,    -1,    10,    11,    12,
+      13,    -1,   130,    16,    -1,    -1,    19,    20,    21,    22,
+      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      -1,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
+      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
+      -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   102,   103,    -1,   105,    10,   107,   108,    13,    -1,
-      -1,    16,   113,   114,    19,    20,    21,    -1,    -1,    24,
-      25,    26,    27,    28,    29,    30,    -1,    32,    33,    34,
-      35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    44,
+      -1,    -1,    -1,     1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    10,    11,    12,    13,    -1,   130,    16,    -1,
+      -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
+      38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
+      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    64,
-      65,    66,    67,    68,    -1,    -1,    71,    72,    73,    74,
-      75,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,
-     105,    10,   107,   108,    13,    -1,    -1,    16,   113,   114,
-      19,    20,    21,    -1,    -1,    24,    25,    26,    27,    28,
-      29,    30,    -1,    32,    33,    34,    35,    36,    37,    -1,
-      -1,    -1,    -1,    -1,    43,    44,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,   117,
+     118,    -1,   120,    -1,   122,   123,    -1,    10,    11,    12,
+      13,    -1,   130,    16,    -1,    -1,    19,    20,    21,    22,
+      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      -1,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
+      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
+      -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    61,    -1,    -1,    64,    65,    66,    67,    68,
-      -1,    -1,    71,    72,    73,    74,    75,    76,    77,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
+      -1,    -1,    -1,     1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    10,    11,    12,    13,    -1,   130,    16,    -1,
+      -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
+      38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
+      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   102,   103,    -1,   105,    10,   107,   108,
-      13,    -1,    -1,    16,   113,   114,    19,    20,    21,    -1,
-      -1,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
-      33,    34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,
-      43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
-      -1,    64,    65,    66,    67,    68,    -1,    -1,    71,    72,
-      73,    74,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
-     103,    -1,   105,    10,   107,   108,    13,    -1,    -1,    16,
-     113,   114,    19,    20,    21,    -1,    -1,    24,    25,    26,
-      27,    28,    29,    30,    -1,    32,    33,    34,    35,    36,
-      37,    -1,    -1,    -1,    -1,    -1,    43,    44,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,   117,
+     118,    -1,   120,    -1,   122,   123,    -1,    10,    11,    -1,
+      13,    -1,   130,    16,    -1,    -1,    19,    20,    21,    22,
+      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      -1,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
+      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,
+      -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    61,    -1,    -1,    64,    65,    66,
-      67,    68,    -1,    -1,    71,    72,    73,    74,    75,    76,
-      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   102,   103,    -1,   105,    10,
-     107,   108,    13,    -1,    -1,    16,    -1,   114,    19,    20,
-      21,    -1,    -1,    24,    25,    26,    27,    28,    29,    30,
-      -1,    32,    33,    34,    35,    36,    37,    -1,    -1,    -1,
-      -1,    -1,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    10,    11,    -1,    13,    -1,   130,    16,    -1,
+      -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
+      38,    -1,    40,    41,    42,    43,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
+      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    -1,
-      71,    72,    73,    74,    75,    76,    77,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    62,    -1,
-      -1,    -1,    -1,    -1,    -1,    69,    70,    -1,    -1,    -1,
-      -1,   102,   103,    -1,   105,    -1,   107,   108,    -1,    -1,
-      -1,    -1,    -1,   114,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,    -1,    -1,
-      -1,    -1,   106,    62,    -1,   109,   110,   111,   112,    -1,
-      69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    -1,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,    -1,    -1,    -1,    -1,   106,    62,    -1,
-     109,   110,   111,   112,    -1,    69,    70,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,   117,
+     118,    -1,   120,    -1,   122,   123,    -1,    10,    11,    -1,
+      13,    -1,   130,    16,    -1,    -1,    19,    20,    21,    22,
+      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      -1,    -1,    35,    36,    37,    38,    -1,    40,    41,    42,
+      43,    -1,    -1,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    68,    -1,    70,    -1,    72,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,     1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
+      -1,    10,    -1,    96,    13,    -1,    -1,    16,    -1,    -1,
+      19,    20,    21,    22,    -1,    24,    25,    -1,    -1,    -1,
+      29,    30,    -1,    -1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    -1,    -1,    -1,    -1,    -1,   130,    47,    48,
+      -1,    -1,    -1,    52,    53,    -1,    55,    56,    57,    58,
+      59,    60,    -1,    62,    63,    64,    65,    66,    67,    -1,
+      -1,    70,    -1,    -1,    73,    74,    75,    76,    77,    -1,
+      -1,     1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
+      10,    -1,    -1,    13,    -1,    -1,    16,    96,    -1,    19,
+      20,    21,    -1,    -1,    24,    25,    -1,    -1,    -1,    29,
+      30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
+      -1,   120,    -1,   122,   123,    -1,    -1,    47,    48,    -1,
+      -1,   130,    52,    53,    -1,    55,    56,    57,    58,    59,
+      60,    -1,    62,    63,    64,    65,    66,    67,    -1,    -1,
+      70,    -1,    -1,    73,    74,    75,    76,    77,    -1,    -1,
+      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    10,
+      11,    -1,    13,    -1,    -1,    16,    96,    -1,    19,    20,
+      21,    -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,
+     120,    -1,   122,   123,    -1,    -1,    47,    48,    -1,   129,
+     130,    52,    53,    -1,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    -1,    -1,    70,
+      -1,    -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,
+      81,    82,    83,    -1,    -1,    -1,    -1,    -1,    10,    11,
+      -1,    13,    -1,    -1,    16,    96,    -1,    19,    20,    21,
+      -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,   120,
+      -1,   122,   123,    -1,    -1,    47,    48,    -1,    -1,   130,
+      52,    53,    -1,    55,    56,    57,    58,    59,    60,    -1,
+      62,    63,    64,    65,    66,    67,    -1,    -1,    70,    -1,
+      -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,    81,
+      82,    83,    -1,    -1,    -1,    -1,    -1,    10,    -1,    -1,
+      13,    -1,    -1,    16,    96,    -1,    19,    20,    21,    -1,
+      -1,    24,    25,    -1,    -1,    -1,    29,    30,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,
+     122,   123,    -1,    -1,    47,    48,    -1,    -1,   130,    52,
+      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    -1,    -1,    70,    -1,    -1,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,    -1,    -1,    -1,    -1,    10,    -1,    -1,    13,
+      -1,    -1,    16,    96,    -1,    19,    20,    21,    -1,    -1,
+      24,    25,    -1,    -1,    -1,    29,    30,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    -1,    47,    48,    -1,   129,   130,    52,    53,
+      -1,    55,    56,    57,    58,    59,    60,    -1,    62,    63,
+      64,    65,    66,    67,    -1,    -1,    70,    -1,    -1,    73,
+      74,    75,    76,    77,    -1,    -1,    -1,    81,    82,    83,
+      -1,    -1,    -1,    -1,    -1,    10,    -1,    -1,    13,    -1,
+      -1,    16,    96,    -1,    19,    20,    21,    -1,    -1,    24,
+      25,    -1,    -1,    -1,    29,    30,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   117,   118,    -1,   120,    -1,   122,   123,
+      -1,    -1,    47,    48,    -1,   129,   130,    52,    53,    -1,
+      55,    56,    57,    58,    59,    60,    -1,    62,    63,    64,
+      65,    66,    67,    -1,    -1,    70,    -1,    -1,    73,    74,
+      75,    76,    77,    -1,    -1,    -1,    81,    82,    83,    -1,
+      -1,    -1,    -1,    -1,    10,    11,    -1,    13,    -1,    -1,
+      16,    96,    -1,    19,    20,    21,    -1,    -1,    24,    25,
+      -1,    -1,    -1,    29,    30,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   117,   118,    -1,   120,    -1,   122,   123,    -1,
+      -1,    47,    48,    -1,   129,   130,    52,    53,    -1,    55,
+      56,    57,    58,    59,    60,    -1,    62,    63,    64,    65,
+      66,    67,    -1,    -1,    70,    -1,    -1,    73,    74,    75,
+      76,    77,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
+      -1,    -1,    -1,    10,    -1,    -1,    13,    -1,    -1,    16,
+      96,    -1,    19,    20,    21,    -1,    -1,    24,    25,    -1,
+      -1,    -1,    29,    30,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   117,   118,    -1,   120,    -1,   122,   123,    -1,    -1,
+      47,    48,    -1,    -1,   130,    52,    53,    -1,    55,    56,
+      57,    58,    59,    60,    -1,    62,    63,    64,    65,    66,
+      67,    -1,    -1,    70,    -1,    -1,    73,    74,    75,    76,
+      77,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,
+      -1,    -1,    10,    -1,    -1,    13,    -1,    -1,    16,    96,
+      -1,    19,    20,    21,    -1,    -1,    24,    25,    -1,    -1,
+      -1,    29,    30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     117,   118,    -1,   120,    -1,   122,   123,    -1,    -1,    47,
+      48,    -1,   129,   130,    52,    53,    -1,    55,    56,    57,
+      58,    59,    60,    -1,    62,    63,    64,    65,    66,    67,
+      -1,    -1,    70,    -1,    -1,    73,    74,    75,    76,    77,
+      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
+      -1,    10,    -1,    -1,    13,    -1,    -1,    16,    96,    -1,
+      19,    20,    21,    -1,    -1,    24,    25,    -1,    -1,    -1,
+      29,    30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
+     118,    -1,   120,    -1,   122,   123,    -1,    -1,    47,    48,
+      -1,   129,   130,    52,    53,    -1,    55,    56,    57,    58,
+      59,    60,    -1,    62,    63,    64,    65,    66,    67,    -1,
+      -1,    70,    -1,    -1,    73,    74,    75,    76,    77,    -1,
+      -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
+      10,    -1,    -1,    13,    -1,    -1,    16,    96,    -1,    19,
+      20,    21,    -1,    -1,    24,    25,    -1,    -1,    -1,    29,
+      30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
+      -1,   120,    -1,   122,   123,    -1,    -1,    47,    48,    -1,
+     129,   130,    52,    53,    -1,    55,    56,    57,    58,    59,
+      60,    -1,    62,    63,    64,    65,    66,    67,    -1,    -1,
+      70,    -1,    -1,    73,    74,    75,    76,    77,    -1,    -1,
+      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    10,
+      -1,    -1,    13,    -1,    -1,    16,    96,    -1,    19,    20,
+      21,    -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,
+     120,    -1,   122,   123,    -1,    -1,    47,    48,    -1,   129,
+     130,    52,    53,    -1,    55,    56,    57,    58,    59,    60,
+      -1,    62,    63,    64,    65,    66,    67,    -1,    -1,    70,
+      -1,    -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,
+      81,    82,    83,    -1,    -1,    -1,    -1,    -1,    10,    -1,
+      -1,    13,    -1,    -1,    16,    96,    -1,    19,    20,    21,
+      -1,    -1,    24,    25,    -1,    -1,    -1,    29,    30,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,   120,
+      -1,   122,   123,    -1,    -1,    47,    48,    -1,    -1,   130,
+      52,    53,    -1,    55,    56,    57,    58,    59,    60,    -1,
+      62,    63,    64,    65,    66,    67,    -1,    -1,    70,    -1,
+      -1,    73,    74,    75,    76,    77,    -1,    -1,    -1,    81,
+      82,    83,    -1,    -1,    -1,    -1,    -1,    10,    -1,    -1,
+      13,    -1,    -1,    16,    96,    -1,    19,    20,    21,    -1,
+      -1,    24,    25,    -1,    -1,    -1,    29,    30,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   117,   118,    -1,   120,    -1,
+     122,   123,    -1,    -1,    47,    48,    -1,    -1,   130,    52,
+      53,    -1,    55,    56,    57,    58,    59,    60,    -1,    62,
+      63,    64,    65,    66,    67,    -1,    -1,    70,    -1,    -1,
+      73,    74,    75,    76,    77,    -1,    -1,    -1,    81,    82,
+      83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      79,    80,    -1,    -1,   117,   118,    -1,   120,    -1,   122,
+     123,    -1,    91,    -1,    -1,    -1,    -1,   130,    97,    98,
+      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,   114,   115,   116,    -1,    -1,
+      -1,    -1,   121,    71,    -1,   124,   125,   126,   127,   128,
+      78,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    91,    -1,    -1,    -1,    -1,    -1,    97,
+      98,    99,    -1,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
+      -1,    -1,    -1,   121,    71,    -1,   124,   125,   126,   127,
+     128,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    91,    -1,    -1,    -1,    78,    79,
+      97,    98,    99,    -1,   101,   102,   103,   104,   105,   106,
+     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+      -1,    -1,    -1,    -1,   121,    71,    -1,   124,   125,   126,
+     127,   128,    78,    79,    80,   115,   116,    -1,    -1,    -1,
+      -1,   121,    -1,    -1,   124,   125,   126,   127,   128,    -1,
+      -1,    97,    98,    99,    -1,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,    -1,    -1,    -1,    -1,   121,    71,    -1,   124,   125,
+     126,   127,   128,    78,    79,    80,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    89,    -1,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,    -1,    -1,
-      -1,    -1,   106,    62,    -1,   109,   110,   111,   112,    -1,
-      69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    99,    -1,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,    -1,    -1,    -1,    -1,   121,    71,    -1,   124,
+     125,   126,   127,   128,    78,    79,    80,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,    -1,    -1,    -1,    -1,   106,    -1,    -1,
-     109,   110,   111,   112
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,   102,   103,
+     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+     114,   115,   116,    78,    79,    80,    -1,   121,    -1,    -1,
+     124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,    -1,    -1,    -1,    -1,   121,    -1,    -1,   124,
+     125,   126,   127,   128,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,    78,    79,    80,    -1,   121,
+      -1,    -1,   124,   125,   126,   127,   128,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
+      -1,    -1,    -1,    -1,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,    -1,    78,    79,    80,   121,    -1,
+      -1,   124,   125,   126,   127,   128,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,    78,    79,    80,    -1,   121,
+      -1,    -1,   124,   125,   126,   127,   128,   110,   111,   112,
+     113,   114,   115,   116,    78,    79,    80,    -1,   121,    -1,
+      -1,   124,   125,   126,   127,   128,    -1,    -1,    -1,   112,
+     113,   114,   115,   116,    -1,    -1,    -1,    -1,   121,    -1,
+      -1,   124,   125,   126,   127,   128,    -1,    -1,   112,   113,
+     114,   115,   116,    -1,    -1,    -1,    -1,   121,    -1,    -1,
+     124,   125,   126,   127,   128
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     3,     4,     5,     6,     7,     8,     9,   116,   117,
-     118,   119,   120,   121,   122,   123,     0,   127,    10,    13,
-      16,    19,    20,    21,    24,    25,    26,    27,    28,    29,
-      30,    32,    33,    34,    35,    36,    37,    43,    44,    61,
-      64,    65,    66,    67,    68,    71,    72,    73,    74,    75,
-      76,    77,    87,   102,   103,   105,   107,   108,   114,   125,
-     181,   182,   183,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   197,   200,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,    11,   124,     1,    22,    38,    40,
-      41,    42,    45,    46,    47,    48,    49,    50,    54,    55,
-      56,    57,    58,    63,    83,   124,   134,   147,   181,    39,
-     132,   133,   134,   125,   130,   175,   176,   130,    26,    31,
-     124,   209,   217,   200,   217,   195,   217,   195,   217,   217,
-     217,   217,   196,    13,   114,   195,   159,   159,   159,   195,
-     114,   114,    81,   114,   124,   195,    26,   125,   182,   199,
-     209,   217,   217,   124,   195,   200,    26,    31,   161,   195,
-     105,   114,   198,   209,   210,   211,   195,   182,   195,   195,
-     195,   195,   195,   113,   181,    85,    86,    15,    11,    13,
-     114,    98,    99,    98,    96,    97,    96,    62,    69,    70,
-      88,    89,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   106,   109,   110,   111,   112,   114,    11,
-      13,    11,    13,    11,    13,    11,   127,   160,   161,   161,
-      26,   158,   114,   114,   114,   114,    76,   105,   114,   207,
-     209,   114,   114,   124,    11,   128,    22,   128,    53,   125,
-     149,    22,    47,    48,    49,    50,    54,    56,   133,   134,
-     132,    16,    20,    24,   125,   166,   167,   169,   170,   171,
-     172,    14,   199,   114,    81,   181,   113,   124,    29,   125,
-     162,    78,   125,   163,   113,   113,   181,   200,   200,   217,
-     182,    22,   199,   114,   195,   198,   209,   210,   211,   113,
-     181,    78,   164,    13,   113,   181,   181,   195,   181,   181,
-     113,   181,   195,   195,   195,   195,   195,   195,   195,   195,
-     195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
-     195,    10,    11,    13,    16,    20,    24,    25,    27,    71,
-     114,   185,   209,   113,   181,   181,   181,   181,   181,   181,
-     181,   181,   130,    26,   125,   157,   158,   158,    26,   137,
-     127,   127,   127,   127,   105,   127,    76,   205,   206,   208,
-     209,   210,   211,   127,   127,   114,   127,   127,   129,    59,
-     124,   146,   181,   154,   181,   146,   146,   146,   146,    31,
-     165,   165,    15,   200,   182,    14,   184,   163,    29,   127,
-     180,   113,    82,   113,   181,    12,   113,   181,   164,   113,
-      29,   181,    13,    22,    14,   113,    90,    25,   181,   181,
-      25,    25,    25,    25,    25,   113,   181,   114,   113,    22,
-      14,    22,    14,    22,    14,    22,    12,    18,   126,   135,
-     136,    11,    22,    26,   153,   181,   154,   155,   181,   155,
-     114,   202,   209,   114,   125,   147,   152,   155,   156,   181,
-     205,   127,   155,   155,   130,   114,    88,   125,   168,   168,
-     170,   113,    23,   125,   201,   199,   127,   178,   114,   125,
-     173,   174,   113,   113,    14,   181,    12,   195,    22,    14,
-     113,   200,    12,    12,    12,    12,   127,   162,   163,   127,
-      26,   113,   113,   113,   113,   203,   204,   209,   114,   127,
-     113,    22,   140,   155,   113,   113,    12,   141,   195,   181,
-      82,    11,   175,    11,    14,    12,   113,    22,   163,    22,
-     179,   180,   143,   199,   151,   151,   128,   128,    15,   113,
-     155,   155,   128,   138,   114,   113,   128,   128,   127,   130,
-     113,   130,    80,    22,   177,   178,   130,    22,   128,   128,
-      51,    52,   125,   148,   148,   209,   114,   113,   113,   149,
-     153,   155,   128,   209,    12,    12,   125,   131,    12,   149,
-     149,   128,   114,   155,   128,   128,    22,   113,   149,   142,
-      22,    29,   144,   155,   113,   149,   149,   139,   128,   113,
-      17,    79,   125,   145,   113,   128,   151,   149,   128,   130,
-     128,   149,   156,    60,   150,    80,   148,   113,   124,   128
+       0,     3,     4,     5,     6,     7,     8,     9,   132,   133,
+     134,   135,   136,   137,   138,   139,     0,   144,    10,    13,
+      16,    19,    20,    21,    24,    25,    29,    30,    47,    48,
+      52,    53,    55,    56,    57,    58,    59,    60,    62,    63,
+      64,    65,    66,    67,    70,    73,    74,    75,    76,    77,
+      81,    82,    83,    96,   117,   118,   120,   122,   123,   130,
+     142,   203,   204,   205,   208,   209,   210,   211,   212,   213,
+     214,   215,   216,   217,   219,   226,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,    11,   141,     1,    22,    26,
+      27,    28,    31,    32,    35,    36,    37,    38,    40,    41,
+      42,    43,    46,    49,    50,    51,    54,    68,    72,    89,
+     140,   141,   154,   168,   203,   223,    69,   152,   153,   154,
+     142,   150,   197,   198,   150,    56,    61,   141,   235,   243,
+     226,   243,   217,   243,   217,   243,   243,   217,   120,   130,
+     220,   235,   236,   237,   217,   141,   217,   180,   180,   181,
+     243,   243,   218,    13,   130,   217,   180,   217,   130,   130,
+      87,   130,   141,   217,    56,   142,   204,   225,   235,   243,
+     243,   226,    56,    61,   183,   204,   217,   217,   217,   217,
+     217,   129,   203,    92,    93,    94,    95,    15,    11,    13,
+     130,   110,   111,   110,   108,   109,   108,    71,    78,    79,
+      80,    91,    97,    98,    99,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   121,   124,   125,   126,   127,   128,   130,    11,    13,
+      11,    13,    11,    13,    11,   144,   182,    56,    56,   221,
+     235,   236,   237,   130,   130,    30,   120,   130,   233,   235,
+     130,   130,   130,   130,   141,    11,   145,   145,   179,   183,
+      22,   179,   183,    39,   142,   170,    22,    32,    35,    36,
+      37,    38,    41,    22,   153,   154,   152,    16,    20,    24,
+     142,   188,   189,   191,   192,   193,   194,    14,   130,   217,
+     220,   235,   236,   237,   129,   203,    84,   186,    59,   142,
+     184,    84,   142,   185,   185,   225,   130,    87,   203,   129,
+     141,   129,   129,   203,   226,   226,   243,   204,    22,   225,
+      13,   129,   203,   203,   203,   203,   217,   203,   203,   129,
+     203,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,    10,
+      11,    13,    16,    20,    24,    25,    57,    81,   130,   207,
+     235,   129,   203,   203,   203,   203,   203,   203,   203,   203,
+     150,    56,   142,   178,    56,    56,    84,   142,   222,   144,
+     144,   120,   144,    30,   231,   232,   234,   235,   236,   237,
+     144,   144,   130,   144,   144,   144,   144,   146,    44,   158,
+     179,   157,   179,   141,   167,   203,   167,   167,   175,   203,
+     167,   167,    61,   187,   187,    15,   129,   203,   186,   129,
+      59,   185,    59,   144,   202,   202,   226,   204,    14,   206,
+     129,    88,   129,   203,    12,   203,    13,    22,    14,   129,
+     100,    25,   203,   203,    25,    25,    25,    25,    25,   129,
+     203,   130,   129,    22,    14,    22,    14,    22,    14,    22,
+      12,    18,   143,    11,    22,   185,    59,    97,   176,   203,
+     176,   130,   228,   235,   130,   142,   168,   173,   176,   177,
+     203,   231,   144,   175,   174,   203,   176,   176,   150,   144,
+      56,   155,    22,   144,   199,   200,   156,    97,   142,   190,
+     190,   192,   129,   200,   130,   142,   195,   196,   129,    23,
+     142,   227,   225,   129,    14,   203,    12,   217,    22,    14,
+     129,   226,    12,    12,    12,    12,   144,   144,    11,    22,
+     224,   129,   129,   229,   230,   235,   130,   144,   129,    22,
+     161,   176,   129,   129,   129,   129,    12,   130,   142,   147,
+      56,   184,    11,   185,   217,   197,    11,   203,    88,    14,
+      12,   129,    22,   163,   144,   217,   145,   145,    15,   129,
+     176,   176,   145,   159,   130,   129,   172,   172,   145,   145,
+     148,   162,   225,   185,   150,    22,   201,   202,   129,   150,
+      86,   150,   164,    33,    34,   142,   169,   169,   235,   130,
+     129,   129,   170,   174,   176,   145,   145,   145,   235,   145,
+      22,   199,    12,    12,   142,   151,    12,   150,   145,   130,
+     176,   145,   145,    22,   129,   170,   170,   170,   149,    45,
+     171,    22,    59,   165,    12,   176,   129,   170,   170,   160,
+     145,   129,   141,    17,    85,   142,   166,   129,   145,   172,
+     170,   150,   145,   170,   177,    86,   169,   129,   145
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,   115,   117,   116,   118,   116,   119,   116,   120,   116,
-     121,   116,   122,   116,   123,   116,   124,   125,   126,   127,
-     128,   129,   130,   130,   131,   131,   132,   132,   133,   133,
-     134,   134,   135,   134,   136,   134,   134,   137,   134,   134,
-     134,   134,   134,   134,   134,   134,   138,   139,   134,   134,
-     134,   134,   140,   134,   134,   134,   141,   142,   134,   134,
-     143,   134,   134,   134,   134,   134,   144,   145,   145,   146,
-     147,   147,   147,   147,   147,   147,   147,   147,   148,   148,
-     148,   149,   149,   150,   150,   151,   152,   152,   153,   153,
-     154,   155,   156,   157,   157,   158,   159,   160,   161,   161,
-     162,   162,   163,   163,   163,   164,   164,   165,   165,   166,
-     166,   167,   168,   168,   168,   169,   170,   170,   171,   171,
-     171,   172,   172,   173,   173,   174,   176,   175,   177,   177,
-     178,   179,   179,   180,   181,   181,   181,   182,   182,   182,
-     183,   183,   183,   183,   183,   183,   183,   183,   183,   184,
-     183,   185,   185,   186,   186,   186,   186,   186,   186,   186,
-     186,   186,   186,   186,   186,   186,   186,   187,   187,   187,
-     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
-     187,   188,   188,   188,   188,   189,   189,   190,   190,   190,
-     190,   191,   191,   192,   192,   192,   192,   192,   192,   192,
-     192,   192,   193,   193,   193,   193,   194,   194,   195,   195,
-     195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
-     195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
-     195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
-     195,   195,   195,   195,   195,   195,   195,   195,   195,   195,
-     195,   195,   195,   195,   195,   195,   196,   195,   195,   195,
-     195,   197,   197,   197,   197,   198,   198,   198,   198,   198,
-     199,   199,   200,   200,   201,   201,   202,   203,   203,   203,
-     204,   205,   205,   205,   206,   206,   207,   207,   208,   209,
-     210,   211,   212,   212,   213,   214,   214,   215,   215,   216,
-     216,   217,   217,   217,   217
+       0,   131,   133,   132,   134,   132,   135,   132,   136,   132,
+     137,   132,   138,   132,   139,   132,   140,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   147,   150,   150,
+     151,   151,   152,   152,   153,   153,   154,   154,   155,   154,
+     156,   154,   157,   154,   154,   154,   158,   154,   154,   154,
+     154,   154,   154,   154,   154,   159,   160,   154,   154,   154,
+     154,   161,   154,   154,   154,   162,   154,   154,   163,   154,
+     164,   154,   154,   154,   154,   154,   154,   165,   166,   166,
+     167,   168,   168,   168,   168,   168,   168,   168,   168,   169,
+     169,   169,   170,   170,   171,   171,   172,   173,   173,   174,
+     174,   175,   176,   177,   178,   178,   179,   180,   181,   182,
+     183,   183,   184,   184,   185,   185,   185,   186,   186,   187,
+     187,   188,   188,   189,   190,   190,   190,   191,   192,   192,
+     193,   193,   193,   194,   194,   195,   195,   196,   198,   197,
+     199,   199,   200,   201,   201,   202,   203,   203,   203,   203,
+     203,   204,   204,   204,   205,   205,   205,   205,   205,   205,
+     205,   205,   205,   206,   205,   207,   207,   208,   208,   208,
+     208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
+     208,   209,   209,   209,   209,   209,   209,   209,   209,   209,
+     209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
+     209,   209,   209,   210,   210,   210,   210,   210,   211,   211,
+     212,   212,   212,   212,   213,   213,   214,   214,   214,   214,
+     214,   214,   214,   214,   214,   215,   215,   215,   215,   215,
+     216,   216,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     218,   217,   217,   217,   217,   219,   219,   219,   219,   220,
+     220,   220,   220,   220,   221,   221,   221,   222,   222,   222,
+     223,   224,   223,   225,   225,   226,   226,   227,   227,   228,
+     229,   229,   229,   230,   231,   231,   231,   232,   232,   233,
+     233,   234,   235,   236,   237,   238,   238,   239,   240,   240,
+     241,   241,   242,   242,   243,   243,   243,   243
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_int8 yyr2[] =
+static const yytype_uint8 yyr2[] =
 {
        0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
-       0,     3,     0,     3,     0,     3,     4,     0,     7,     0,
-       4,     0,     1,     2,     1,     2,     1,     1,     2,     2,
-       1,     4,     0,     7,     0,     6,     4,     0,     7,     7,
-       7,     6,     6,     2,     8,     8,     0,     0,    13,     9,
-      11,     8,     0,    10,     9,     7,     0,     0,    11,     2,
-       0,     8,     2,     2,     2,     1,     2,     1,     3,     1,
-       1,     1,     3,     3,     3,     3,     3,     3,     1,     2,
-       6,     1,     2,     0,     2,     0,     1,     1,     0,     1,
-       1,     1,     1,     1,     1,     0,     0,     0,     1,     1,
-       1,     1,     1,     2,     1,     2,     1,     0,     1,     1,
-       1,     3,     1,     1,     2,     3,     1,     1,     2,     3,
-       1,     1,     1,     1,     1,     3,     0,     2,     1,     1,
-       4,     1,     1,     5,     3,     3,     1,     2,     3,     1,
-       3,     5,     6,     3,     3,     5,     2,     4,     4,     0,
-       5,     1,     1,     5,     4,     5,     4,     5,     6,     5,
-       4,     5,     4,     3,     6,     4,     5,     3,     3,     3,
-       3,     3,     1,     1,     3,     3,     3,     3,     3,     3,
-       3,     1,     3,     2,     2,     3,     3,     1,     3,     2,
-       2,     3,     3,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     3,     4,     5,     4,     2,     2,     1,     1,
-       1,     1,     5,     2,     1,     2,     3,     1,     2,     1,
-       1,     1,     1,     1,     1,     4,     4,     5,     5,     1,
-       1,     3,     4,     3,     4,     4,     4,     4,     4,     1,
-       2,     2,     1,     2,     2,     1,     2,     1,     2,     1,
-       3,     1,     3,     1,     3,     4,     0,     6,     1,     1,
-       1,     3,     2,     4,     3,     3,     2,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     1,     2,     3,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
-       2,     2,     2,     4,     2,     1,     3,     1,     3,     1,
-       3,     1,     1,     1,     1
+       0,     3,     0,     3,     0,     3,     1,     1,     4,     0,
+       7,     0,     4,     0,     1,     0,     0,     5,     1,     2,
+       1,     2,     1,     1,     2,     2,     1,     4,     0,     7,
+       0,     6,     0,     4,     4,     5,     0,     7,     7,     7,
+       6,     6,     2,     8,     8,     0,     0,    13,     9,    11,
+       8,     0,    10,     9,     7,     0,     8,     2,     0,     8,
+       0,     9,     2,     2,     2,     2,     1,     2,     1,     3,
+       1,     1,     1,     3,     3,     3,     3,     3,     3,     1,
+       2,     6,     1,     2,     0,     2,     0,     1,     1,     0,
+       1,     1,     1,     1,     1,     1,     0,     0,     0,     0,
+       1,     1,     1,     1,     1,     2,     1,     2,     1,     0,
+       1,     1,     1,     3,     1,     1,     2,     3,     1,     1,
+       2,     3,     1,     1,     1,     1,     1,     3,     0,     2,
+       1,     1,     4,     1,     1,     5,     3,     3,     3,     3,
+       1,     2,     3,     1,     3,     5,     6,     3,     3,     5,
+       2,     4,     4,     0,     5,     1,     1,     5,     4,     5,
+       4,     5,     6,     5,     4,     5,     4,     3,     6,     4,
+       5,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     1,     1,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     1,     3,     2,     2,     3,     3,     3,
+       1,     3,     2,     2,     3,     3,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     3,     4,     5,     4,     4,
+       2,     2,     1,     1,     1,     1,     5,     2,     1,     2,
+       3,     1,     2,     1,     1,     1,     1,     1,     1,     4,
+       4,     5,     5,     1,     1,     3,     4,     3,     4,     4,
+       4,     4,     4,     1,     2,     2,     1,     2,     2,     1,
+       2,     1,     2,     1,     3,     1,     3,     1,     3,     4,
+       0,     6,     1,     1,     1,     3,     2,     4,     3,     3,
+       2,     1,     1,     1,     1,     1,     1,     2,     1,     1,
+       3,     0,     6,     1,     1,     1,     1,     1,     2,     1,
+       2,     3,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     2,     2,     2,     4,     2,     1,     3,
+       1,     3,     1,     3,     1,     1,     1,     1
 };
 
 typedef enum {
-	toketype_ival, toketype_opval
+	toketype_ival, toketype_opval, toketype_pval
 } toketypes;
 
 /* type of each token/terminal */
 static const toketypes yy_type_tab[] =
 {
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
+  toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_ival, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval,
+  toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_pval,
+  toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval
+  toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval
 };
 
 /* Generated from:
- * 0caf1eb1cc4750131dc71e3a22ead383ed9a123dec61ccd23408ff13441fafde perly.y
+ * 0a5fcd15cf0b7afb57ade6ceaf68037a38dd194acd9d60d3e4ad99c15233af75 perly.y
  * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/perly.y
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/perly.y,v
diff -u -p -a -u -p -r1.21 perly.y
--- gnu/usr.bin/perl/perly.y	15 Feb 2023 01:36:13 -0000	1.21
+++ gnu/usr.bin/perl/perly.y	21 Feb 2024 15:47:02 -0000
@@ -38,13 +38,14 @@
 %union {
     I32	ival; /* __DEFAULT__ (marker for regen_perly.pl;
 				must always be 1st union member) */
-    char *pval;
+    void *pval;
     OP *opval;
     GV *gvval;
 }
 
 %token <ival> GRAMPROG GRAMEXPR GRAMBLOCK GRAMBARESTMT GRAMFULLSTMT GRAMSTMTSEQ GRAMSUBSIGNATURE
 
+/* Tokens emitted by toke.c for simple punctiation characters - &, {, }, etc... */
 %token <ival> PERLY_AMPERSAND
 %token <ival> PERLY_BRACE_OPEN
 %token <ival> PERLY_BRACE_CLOSE
@@ -62,38 +63,55 @@
 %token <ival> PERLY_SNAIL
 %token <ival> PERLY_STAR
 
-%token <opval> BAREWORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST
+/* Tokens emitted by toke.c on simple keywords */
+%token <ival> KW_FORMAT KW_PACKAGE KW_CLASS
+%token <ival> KW_LOCAL KW_MY KW_FIELD
+%token <ival> KW_IF KW_ELSE KW_ELSIF KW_UNLESS
+%token <ival> KW_FOR KW_UNTIL KW_WHILE KW_CONTINUE
+%token <ival> KW_GIVEN KW_WHEN KW_DEFAULT
+%token <ival> KW_TRY KW_CATCH KW_FINALLY KW_DEFER
+%token <ival> KW_REQUIRE KW_DO
+
+/* The 'use' and 'no' keywords both emit this */
+%token <ival> KW_USE_or_NO
+
+/* The 'sub' keyword is a bit special; four different tokens depending on
+ *   named-vs-anon, and whether signatures are in effect */
+%token <ival> KW_SUB_named KW_SUB_named_sig KW_SUB_anon KW_SUB_anon_sig
+%token <ival> KW_METHOD_named KW_METHOD_anon
+
+/* Tokens emitted in other situations */
+%token <opval> BAREWORD METHCALL0 METHCALL THING PMFUNC PRIVATEREF QWLIST
 %token <opval> FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB
 %token <opval> PLUGEXPR PLUGSTMT
 %token <opval> LABEL
-%token <ival> FORMAT SUB SIGSUB ANONSUB ANON_SIGSUB PACKAGE USE
-%token <ival> WHILE UNTIL IF UNLESS ELSE ELSIF CONTINUE FOR
-%token <ival> GIVEN WHEN DEFAULT
-%token <ival> TRY CATCH FINALLY
 %token <ival> LOOPEX DOTDOT YADAYADA
 %token <ival> FUNC0 FUNC1 FUNC UNIOP LSTOP
-%token <ival> MULOP ADDOP
-%token <ival> DOLSHARP DO HASHBRACK NOAMP
-%token <ival> LOCAL MY REQUIRE
+%token <ival> POWOP MULOP ADDOP
+%token <ival> DOLSHARP HASHBRACK NOAMP
 %token <ival> COLONATTR FORMLBRACK FORMRBRACK
 %token <ival> SUBLEXSTART SUBLEXEND
-%token <ival> DEFER
+%token <ival> PHASER
 
 %type <ival> grammar remember mremember
-%type <ival>  startsub startanonsub startformsub
+%type <ival>  startsub startanonsub startanonmethod startformsub
 
 %type <ival> mintro
 
+%type <ival>  sigsub_or_method_named
 %type <opval> stmtseq fullstmt labfullstmt barestmt block mblock else finally
 %type <opval> expr term subscripted scalar ary hsh arylen star amper sideff
 %type <opval> condition
+%type <opval> catch_paren
 %type <opval> empty
 %type <opval> sliceme kvslice gelem
 %type <opval> listexpr nexpr texpr iexpr mexpr mnexpr
-%type <opval> optlistexpr optexpr optrepl indirob listop method
+%type <opval> optlistexpr optexpr optrepl indirob listop methodname
 %type <opval> formname subname proto cont my_scalar my_var
 %type <opval> list_of_scalars my_list_of_scalars refgen_topic formblock
 %type <opval> subattrlist myattrlist myattrterm myterm
+%type <pval>  fieldvar /* pval is PADNAME */
+%type <opval> optfieldattrlist fielddecl
 %type <opval> termbinop termunop anonymous termdo
 %type <opval> termrelop relopchain termeqop eqopchain
 %type <ival>  sigslurpsigil
@@ -105,29 +123,32 @@
 %nonassoc <ival> PREC_LOW
 %nonassoc LOOPEX
 
-%left <ival> OROP
-%left <ival> ANDOP
+%nonassoc <pval> PLUGIN_LOW_OP
+%left <ival> OROP <pval> PLUGIN_LOGICAL_OR_LOW_OP
+%left <ival> ANDOP <pval> PLUGIN_LOGICAL_AND_LOW_OP
 %right <ival> NOTOP
 %nonassoc LSTOP LSTOPSUB
 %left PERLY_COMMA
-%right <ival> ASSIGNOP
+%right <ival> ASSIGNOP <pval> PLUGIN_ASSIGN_OP
 %right <ival> PERLY_QUESTION_MARK PERLY_COLON
 %nonassoc DOTDOT
-%left <ival> OROR DORDOR
-%left <ival> ANDAND
+%left <ival> OROR DORDOR <pval> PLUGIN_LOGICAL_OR_OP
+%left <ival> ANDAND <pval> PLUGIN_LOGICAL_AND_OP
 %left <ival> BITOROP
 %left <ival> BITANDOP
 %left <ival> CHEQOP NCEQOP
 %left <ival> CHRELOP NCRELOP
+%nonassoc <pval> PLUGIN_REL_OP
 %nonassoc UNIOP UNIOPSUB
-%nonassoc REQUIRE
+%nonassoc KW_REQUIRE
 %left <ival> SHIFTOP
-%left ADDOP
-%left MULOP
+%left ADDOP <pval> PLUGIN_ADD_OP
+%left MULOP <pval> PLUGIN_MUL_OP
 %left <ival> MATCHOP
 %right <ival> PERLY_EXCLAMATION_MARK PERLY_TILDE UMINUS REFGEN
-%right <ival> POWOP
+%right POWOP <pval> PLUGIN_POW_OP
 %nonassoc <ival> PREINC PREDEC POSTINC POSTDEC POSTJOIN
+%nonassoc <pval> PLUGIN_HIGH_OP
 %left <ival> ARROW
 %nonassoc <ival> PERLY_PAREN_CLOSE
 %left <ival> PERLY_PAREN_OPEN
@@ -218,6 +239,14 @@ grammar	:	GRAMPROG
 			}
 	;
 
+/* Either a signatured 'sub' or 'method' keyword */
+sigsub_or_method_named
+	:	KW_SUB_named_sig
+			{ $$ = KW_SUB_named_sig; }
+	|	KW_METHOD_named
+			{ $$ = KW_METHOD_named; }
+	;
+
 /* An ordinary block */
 block	:	PERLY_BRACE_OPEN remember stmtseq PERLY_BRACE_CLOSE
 			{ if (parser->copline > (line_t)$PERLY_BRACE_OPEN)
@@ -255,6 +284,18 @@ mremember:	%empty	/* start a partial lex
 			  parser->parsed_sub = 0; }
 	;
 
+/* The parenthesized variable of a catch block */
+catch_paren:	empty
+			/* not really valid grammar but we detect it in the
+			 * action block to throw a nicer error message */
+	|	PERLY_PAREN_OPEN
+			{ parser->in_my = 1; }
+		scalar
+			{ parser->in_my = 0; intro_my(); }
+		PERLY_PAREN_CLOSE
+			{ $$ = $scalar; }
+	;
+
 /* A sequence of statements in the program */
 stmtseq
 	:	empty
@@ -305,7 +346,7 @@ labfullstmt:	LABEL barestmt
 /* A bare statement, lacking label and other aspects of state op */
 barestmt:	PLUGSTMT
 			{ $$ = $PLUGSTMT; }
-	|	FORMAT startformsub formname formblock
+	|	KW_FORMAT startformsub formname formblock
 			{
 			  CV *fmtcv = PL_compcv;
 			  newFORM($startformsub, $formname, $formblock);
@@ -315,7 +356,7 @@ barestmt:	PLUGSTMT
 			  }
 			  parser->parsed_sub = 1;
 			}
-	|	SUB subname startsub
+	|	KW_SUB_named subname startsub
                     /* sub declaration or definition not within scope
                        of 'use feature "signatures"'*/
 			{
@@ -334,79 +375,128 @@ barestmt:	PLUGSTMT
 			  intro_my();
 			  parser->parsed_sub = 1;
 			}
-	|	SIGSUB subname startsub
+	|	sigsub_or_method_named subname startsub
                     /* sub declaration or definition under 'use feature
                      * "signatures"'. (Note that a signature isn't
                      * allowed in a declaration)
                      */
 			{
                           init_named_cv(PL_compcv, $subname);
+			  if($sigsub_or_method_named == KW_METHOD_named) {
+			      croak_kw_unless_class("method");
+			      class_prepare_method_parse(PL_compcv);
+			  }
 			  parser->in_my = 0;
 			  parser->in_my_stash = NULL;
 			}
                     subattrlist optsigsubbody
 			{
+			  OP *body = $optsigsubbody;
+
 			  SvREFCNT_inc_simple_void(PL_compcv);
 			  $subname->op_type == OP_CONST
-			      ? newATTRSUB($startsub, $subname, NULL, $subattrlist, $optsigsubbody)
-			      : newMYSUB(  $startsub, $subname, NULL, $subattrlist, $optsigsubbody)
+			      ? newATTRSUB($startsub, $subname, NULL, $subattrlist, body)
+			      : newMYSUB(  $startsub, $subname, NULL, $subattrlist, body)
 			  ;
 			  $$ = NULL;
 			  intro_my();
 			  parser->parsed_sub = 1;
 			}
-	|	PACKAGE BAREWORD[version] BAREWORD[package] PERLY_SEMICOLON
+	|	PHASER startsub
+			{
+			  switch($PHASER) {
+			      case KEY_ADJUST:
+			         croak_kw_unless_class("ADJUST");
+			         class_prepare_method_parse(PL_compcv);
+			         break;
+			      default:
+			         NOT_REACHED;
+			  }
+			}
+		    optsubbody
+			{
+			  OP *body = $optsubbody;
+			  SvREFCNT_inc_simple_void(PL_compcv);
+
+			  CV *cv;
+
+			  switch($PHASER) {
+			      case KEY_ADJUST:
+			          cv = newATTRSUB($startsub, NULL, NULL, NULL, body);
+			          class_add_ADJUST(PL_curstash, cv);
+			          break;
+			  }
+			  $$ = NULL;
+			}
+	|	KW_PACKAGE BAREWORD[version] BAREWORD[package] PERLY_SEMICOLON
+		    /* version and package appear in the reverse order to what may be
+		     * expected, because toke.c has already pushed both of them to a stack
+		     * by calling force_next() from within force_version().
+		     * When the parser pops them back out again they appear swapped */
+			{
+			  package($package);
+			  if ($version)
+			      package_version($version);
+			  $$ = NULL;
+			}
+	|	KW_CLASS BAREWORD[version] BAREWORD[package] subattrlist PERLY_SEMICOLON
 			{
 			  package($package);
 			  if ($version)
 			      package_version($version);
 			  $$ = NULL;
+			  class_setup_stash(PL_curstash);
+			  if ($subattrlist) {
+			      class_apply_attributes(PL_curstash, $subattrlist);
+			  }
 			}
-	|	USE startsub
+	|	KW_USE_or_NO startsub
 			{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
 		BAREWORD[version] BAREWORD[module] optlistexpr PERLY_SEMICOLON
+		    /* version and package appear in reverse order for the same reason as
+		     * KW_PACKAGE; see comment above */
 			{
 			  SvREFCNT_inc_simple_void(PL_compcv);
-			  utilize($USE, $startsub, $version, $module, $optlistexpr);
+			  utilize($KW_USE_or_NO, $startsub, $version, $module, $optlistexpr);
 			  parser->parsed_sub = 1;
 			  $$ = NULL;
 			}
-	|	IF PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else
+	|	KW_IF PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else
 			{
 			  $$ = block_end($remember,
 			      newCONDOP(0, $mexpr, op_scope($mblock), $else));
-			  parser->copline = (line_t)$IF;
+			  parser->copline = (line_t)$KW_IF;
 			}
-	|	UNLESS PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else
+	|	KW_UNLESS PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock else
 			{
 			  $$ = block_end($remember,
                               newCONDOP(0, $mexpr, $else, op_scope($mblock)));
-			  parser->copline = (line_t)$UNLESS;
+			  parser->copline = (line_t)$KW_UNLESS;
 			}
-	|	GIVEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock
+	|	KW_GIVEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock
 			{
 			  $$ = block_end($remember, newGIVENOP($mexpr, op_scope($mblock), 0));
-			  parser->copline = (line_t)$GIVEN;
+			  parser->copline = (line_t)$KW_GIVEN;
 			}
-	|	WHEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock
+	|	KW_WHEN PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock
 			{ $$ = block_end($remember, newWHENOP($mexpr, op_scope($mblock))); }
-	|	DEFAULT block
+	|	KW_DEFAULT block
 			{ $$ = newWHENOP(0, op_scope($block)); }
-	|	WHILE PERLY_PAREN_OPEN remember texpr PERLY_PAREN_CLOSE mintro mblock cont
+	|	KW_WHILE PERLY_PAREN_OPEN remember texpr PERLY_PAREN_CLOSE mintro mblock cont
 			{
 			  $$ = block_end($remember,
 				  newWHILEOP(0, 1, NULL,
 				      $texpr, $mblock, $cont, $mintro));
-			  parser->copline = (line_t)$WHILE;
+			  parser->copline = (line_t)$KW_WHILE;
 			}
-	|	UNTIL PERLY_PAREN_OPEN remember iexpr PERLY_PAREN_CLOSE mintro mblock cont
+	|	KW_UNTIL PERLY_PAREN_OPEN remember iexpr PERLY_PAREN_CLOSE mintro mblock cont
 			{
 			  $$ = block_end($remember,
 				  newWHILEOP(0, 1, NULL,
 				      $iexpr, $mblock, $cont, $mintro));
-			  parser->copline = (line_t)$UNTIL;
+			  parser->copline = (line_t)$KW_UNTIL;
 			}
-	|	FOR PERLY_PAREN_OPEN remember mnexpr[init_mnexpr] PERLY_SEMICOLON
+	|	KW_FOR PERLY_PAREN_OPEN remember mnexpr[init_mnexpr] PERLY_SEMICOLON
 			{ parser->expect = XTERM; }
 		texpr PERLY_SEMICOLON
 			{ parser->expect = XTERM; }
@@ -424,29 +514,29 @@ barestmt:	PLUGSTMT
 			  }
 			  PL_hints |= HINT_BLOCK_SCOPE;
 			  $$ = block_end($remember, forop);
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|	FOR MY remember my_scalar PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont
+	|	KW_FOR KW_MY remember my_scalar PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont
 			{
 			  $$ = block_end($remember, newFOROP(0, $my_scalar, $mexpr, $mblock, $cont));
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|	FOR MY remember PERLY_PAREN_OPEN my_list_of_scalars PERLY_PAREN_CLOSE PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont
+	|	KW_FOR KW_MY remember PERLY_PAREN_OPEN my_list_of_scalars PERLY_PAREN_CLOSE PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont
 			{
                           if ($my_list_of_scalars->op_type == OP_PADSV)
                             /* degenerate case of 1 var: for my ($x) ....
                                Flag it so it can be special-cased in newFOROP */
                                 $my_list_of_scalars->op_flags |= OPf_PARENS;
 			  $$ = block_end($remember, newFOROP(0, $my_list_of_scalars, $mexpr, $mblock, $cont));
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|	FOR scalar PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont
+	|	KW_FOR scalar PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont
 			{
 			  $$ = block_end($remember, newFOROP(0,
 				      op_lvalue($scalar, OP_ENTERLOOP), $mexpr, $mblock, $cont));
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|	FOR my_refgen remember my_var
+	|	KW_FOR my_refgen remember my_var
 			{ parser->in_my = 0; $<opval>$ = my($my_var); }[variable]
 		PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock cont
 			{
@@ -459,33 +549,36 @@ barestmt:	PLUGSTMT
 					    OP_ENTERLOOP),
 					 $mexpr, $mblock, $cont)
 			  );
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|	FOR REFGEN refgen_topic PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont
+	|	KW_FOR REFGEN refgen_topic PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont
 			{
 			  $$ = block_end($remember, newFOROP(
 				0, op_lvalue(newUNOP(OP_REFGEN, 0,
 						     $refgen_topic),
 					     OP_ENTERLOOP), $mexpr, $mblock, $cont));
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|	FOR PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont
+	|	KW_FOR PERLY_PAREN_OPEN remember mexpr PERLY_PAREN_CLOSE mblock cont
 			{
 			  $$ = block_end($remember,
 				  newFOROP(0, NULL, $mexpr, $mblock, $cont));
-			  parser->copline = (line_t)$FOR;
+			  parser->copline = (line_t)$KW_FOR;
 			}
-	|       TRY mblock[try] CATCH PERLY_PAREN_OPEN 
-			{ parser->in_my = 1; }
-	        remember scalar 
-			{ parser->in_my = 0; intro_my(); }
-		PERLY_PAREN_CLOSE mblock[catch] finally
+	|       KW_TRY mblock[try] KW_CATCH remember catch_paren[scalar]
+			{
+			  if(!$scalar) {
+			      yyerror("catch block requires a (VAR)");
+			      YYERROR;
+			  }
+			}
+		mblock[catch] finally
 			{
 			  $$ = newTRYCATCHOP(0,
 				  $try, $scalar, block_end($remember, op_scope($catch)));
 			  if($finally)
 			      $$ = op_wrap_finally($$, $finally);
-			  parser->copline = (line_t)$TRY;
+			  parser->copline = (line_t)$KW_TRY;
 			}
 	|	block cont
 			{
@@ -493,7 +586,7 @@ barestmt:	PLUGSTMT
 			  $$ = newWHILEOP(0, 1, NULL,
 				  NULL, $block, $cont, 0);
 			}
-	|	PACKAGE BAREWORD[version] BAREWORD[package] PERLY_BRACE_OPEN remember
+	|	KW_PACKAGE BAREWORD[version] BAREWORD[package] PERLY_BRACE_OPEN remember
 			{
 			  package($package);
 			  if ($version) {
@@ -508,16 +601,41 @@ barestmt:	PLUGSTMT
 			  if (parser->copline > (line_t)$PERLY_BRACE_OPEN)
 			      parser->copline = (line_t)$PERLY_BRACE_OPEN;
 			}
+	|	KW_CLASS BAREWORD[version] BAREWORD[package] subattrlist PERLY_BRACE_OPEN remember
+			{
+			  package($package);
+
+			  if ($version) {
+			      package_version($version);
+			  }
+			  class_setup_stash(PL_curstash);
+			  if ($subattrlist) {
+			      class_apply_attributes(PL_curstash, $subattrlist);
+			  }
+			}
+		stmtseq PERLY_BRACE_CLOSE
+			{
+			  /* a block is a loop that happens once */
+			  $$ = newWHILEOP(0, 1, NULL,
+				  NULL, block_end($remember, $stmtseq), NULL, 0);
+			  if (parser->copline > (line_t)$PERLY_BRACE_OPEN)
+			      parser->copline = (line_t)$PERLY_BRACE_OPEN;
+			}
+	|	fielddecl PERLY_SEMICOLON
+			{
+			  $$ = $fielddecl;
+			}
 	|	sideff PERLY_SEMICOLON
 			{
 			  $$ = $sideff;
 			}
-	|	DEFER mblock
+	|	KW_DEFER mblock
 			{
 			  $$ = newDEFEROP(0, op_scope($2));
 			}
 	|	YADAYADA PERLY_SEMICOLON
 			{
+                          /* diag_listed_as: Unimplemented */
 			  $$ = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
 				newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
 			}
@@ -560,31 +678,31 @@ sideff	:	error
 			{ $$ = NULL; }
 	|	expr[body]
 			{ $$ = $body; }
-	|	expr[body] IF condition
+	|	expr[body] KW_IF condition
 			{ $$ = newLOGOP(OP_AND, 0, $condition, $body); }
-	|	expr[body] UNLESS condition
+	|	expr[body] KW_UNLESS condition
 			{ $$ = newLOGOP(OP_OR, 0, $condition, $body); }
-	|	expr[body] WHILE condition
+	|	expr[body] KW_WHILE condition
 			{ $$ = newLOOPOP(OPf_PARENS, 1, scalar($condition), $body); }
-	|	expr[body] UNTIL iexpr
+	|	expr[body] KW_UNTIL iexpr
 			{ $$ = newLOOPOP(OPf_PARENS, 1, $iexpr, $body); }
-	|	expr[body] FOR condition
+	|	expr[body] KW_FOR condition
 			{ $$ = newFOROP(0, NULL, $condition, $body, NULL);
-			  parser->copline = (line_t)$FOR; }
-	|	expr[body] WHEN condition
+			  parser->copline = (line_t)$KW_FOR; }
+	|	expr[body] KW_WHEN condition
 			{ $$ = newWHENOP($condition, op_scope($body)); }
 	;
 
 /* else and elsif blocks */
 else
 	:	empty
-	|	ELSE mblock
+	|	KW_ELSE mblock
 			{
 			  ($mblock)->op_flags |= OPf_PARENS;
 			  $$ = op_scope($mblock);
 			}
-	|	ELSIF PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock else[else.recurse]
-			{ parser->copline = (line_t)$ELSIF;
+	|	KW_ELSIF PERLY_PAREN_OPEN mexpr PERLY_PAREN_CLOSE mblock else[else.recurse]
+			{ parser->copline = (line_t)$KW_ELSIF;
 			    $$ = newCONDOP(0,
 				newSTATEOP(OPf_SPECIAL,NULL,$mexpr),
 				op_scope($mblock), $[else.recurse]);
@@ -595,14 +713,14 @@ else
 /* Continue blocks */
 cont
 	:	empty
-	|	CONTINUE block
+	|	KW_CONTINUE block
 			{ $$ = op_scope($block); }
 	;
 
 /* Finally blocks */
 finally	:	%empty
 			{ $$ = NULL; }
-	|	FINALLY block
+	|	KW_FINALLY block
 			{ $$ = op_scope($block); }
 	;
 
@@ -655,6 +773,11 @@ startanonsub:	%empty	/* start an anonymo
 			    SAVEFREESV(PL_compcv); }
 	;
 
+startanonmethod:	%empty	/* start an anonymous method scope */
+			{ $$ = start_subparse(FALSE, CVf_ANON|CVf_IsMETHOD);
+			    SAVEFREESV(PL_compcv); }
+	;
+
 startformsub:	%empty	/* start a format subroutine scope */
 			{ $$ = start_subparse(TRUE, 0);
 			    SAVEFREESV(PL_compcv); }
@@ -675,7 +798,12 @@ proto
 subattrlist
 	:	empty
 	|	COLONATTR THING
-			{ $$ = $THING; }
+			{
+			  OP *attrlist = $THING;
+			  if(attrlist && !PL_parser->sig_seen)
+			      attrlist = apply_builtin_cv_attributes(PL_compcv, attrlist);
+			  $$ = attrlist;
+			}
 	|	COLONATTR
 			{ $$ = NULL; }
 	;
@@ -709,15 +837,15 @@ sigslurpsigil:
 /* @, %, @foo, %foo */
 sigslurpelem: sigslurpsigil sigvarname sigdefault/* def only to catch errors */ 
                         {
-                            I32 sigil   = $sigslurpsigil;
-                            OP *var     = $sigvarname;
-                            OP *defexpr = $sigdefault;
+                            I32 sigil = $sigslurpsigil;
+                            OP *var   = $sigvarname;
+                            OP *defop = $sigdefault;
 
                             if (parser->sig_slurpy)
                                 yyerror("Multiple slurpy parameters not allowed");
                             parser->sig_slurpy = (char)sigil;
 
-                            if (defexpr)
+                            if (defop)
                                 yyerror("A slurpy parameter may not have "
                                         "a default value");
 
@@ -729,26 +857,35 @@ sigslurpelem: sigslurpsigil sigvarname s
 sigdefault
 	:	empty
         |       ASSIGNOP
-                        { $$ = newOP(OP_NULL, 0); }
+                        { $$ = newARGDEFELEMOP(0, newOP(OP_NULL, 0), parser->sig_elems); }
         |       ASSIGNOP term
-                        { $$ = $term; }
+                        {
+                            I32 flags = 0;
+                            if ($ASSIGNOP == OP_DORASSIGN)
+                                flags |= OPpARG_IF_UNDEF << 8;
+                            if ($ASSIGNOP == OP_ORASSIGN)
+                                flags |= OPpARG_IF_FALSE << 8;
+                            $$ = newARGDEFELEMOP(flags, $term, parser->sig_elems);
+                        }
 
 
 /* subroutine signature scalar element: e.g. '$x', '$=', '$x = $default' */
 sigscalarelem:
                 PERLY_DOLLAR sigvarname sigdefault
                         {
-                            OP *var     = $sigvarname;
-                            OP *defexpr = $sigdefault;
+                            OP *var   = $sigvarname;
+                            OP *defop = $sigdefault;
 
                             if (parser->sig_slurpy)
                                 yyerror("Slurpy parameter not last");
 
                             parser->sig_elems++;
 
-                            if (defexpr) {
+                            if (defop) {
                                 parser->sig_optelems++;
 
+                                OP *defexpr = cLOGOPx(defop)->op_first;
+
                                 if (   defexpr->op_type == OP_NULL
                                     && !(defexpr->op_flags & OPf_KIDS))
                                 {
@@ -756,17 +893,10 @@ sigscalarelem:
                                     if (var)
                                         yyerror("Optional parameter "
                                                     "lacks default expression");
-                                    op_free(defexpr);
+                                    op_free(defop);
                                 }
                                 else { 
                                     /* a normal '=default' expression */ 
-                                    OP *defop = (OP*)alloc_LOGOP(OP_ARGDEFELEM,
-                                                        defexpr,
-                                                        LINKLIST(defexpr));
-                                    /* re-purpose op_targ to hold @_ index */
-                                    defop->op_targ =
-                                        (PADOFFSET)(parser->sig_elems - 1);
-
                                     if (var) {
                                         var->op_flags |= OPf_STACKED;
                                         (void)op_sibling_splice(var,
@@ -852,7 +982,7 @@ subsigguts:
                             struct op_argcheck_aux *aux;
                             OP            *check;
 
-			    if (!FEATURE_SIGNATURES_IS_ENABLED)
+			    if (!FEATURE_SIGNATURES_IS_ENABLED && !CvIsMETHOD(PL_compcv))
 			        Perl_croak(aTHX_ "Experimental "
                                     "subroutine signatures not enabled");
 
@@ -939,8 +1069,12 @@ sigsubbody:	remember optsubsignature PER
 /* Ordinary expressions; logical combinations */
 expr	:	expr[lhs] ANDOP expr[rhs]
 			{ $$ = newLOGOP(OP_AND, 0, $lhs, $rhs); }
+	|	expr[lhs] PLUGIN_LOGICAL_AND_LOW_OP[op] expr[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	expr[lhs] OROP[operator] expr[rhs]
 			{ $$ = newLOGOP($operator, 0, $lhs, $rhs); }
+	|	expr[lhs] PLUGIN_LOGICAL_OR_LOW_OP[op] expr[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	listexpr %prec PREC_LOW
 	;
 
@@ -964,28 +1098,28 @@ listop	:	LSTOP indirob listexpr /* map {
 			{ $$ = op_convert_list($FUNC, OPf_STACKED,
 				op_prepend_elem(OP_LIST, newGVREF($FUNC,$indirob), $expr) );
 			}
-	|	term ARROW method PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE /* $foo->bar(list) */
+	|	term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE /* $foo->bar(list) */
 			{ $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST,
 				    op_prepend_elem(OP_LIST, scalar($term), $optexpr),
-				    newMETHOP(OP_METHOD, 0, $method)));
+				    newMETHOP(OP_METHOD, 0, $methodname)));
 			}
-	|	term ARROW method                     /* $foo->bar */
+	|	term ARROW methodname                     /* $foo->bar */
 			{ $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST, scalar($term),
-				    newMETHOP(OP_METHOD, 0, $method)));
+				    newMETHOP(OP_METHOD, 0, $methodname)));
 			}
-	|	METHOD indirob optlistexpr           /* new Class @args */
+	|	METHCALL0 indirob optlistexpr           /* new Class @args */
 			{ $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST,
 				    op_prepend_elem(OP_LIST, $indirob, $optlistexpr),
-				    newMETHOP(OP_METHOD, 0, $METHOD)));
+				    newMETHOP(OP_METHOD, 0, $METHCALL0)));
 			}
-	|	FUNCMETH indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE    /* method $object (@args) */
+	|	METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE    /* method $object (@args) */
 			{ $$ = op_convert_list(OP_ENTERSUB, OPf_STACKED,
 				op_append_elem(OP_LIST,
 				    op_prepend_elem(OP_LIST, $indirob, $optexpr),
-				    newMETHOP(OP_METHOD, 0, $FUNCMETH)));
+				    newMETHOP(OP_METHOD, 0, $METHCALL)));
 			}
 	|	LSTOP optlistexpr                    /* print @args */
 			{ $$ = op_convert_list($LSTOP, 0, $optlistexpr); }
@@ -1004,7 +1138,7 @@ listop	:	LSTOP indirob listexpr /* map {
 	;
 
 /* Names of methods. May use $object->$methodname */
-method	:	METHOD
+methodname:	METHCALL0
 	|	scalar
 	;
 
@@ -1073,17 +1207,27 @@ subscripted:    gelem PERLY_BRACE_OPEN e
     ;
 
 /* Binary operators between terms */
-termbinop:	term[lhs] ASSIGNOP term[rhs]                     /* $x = $y, $x += $y */
+termbinop:	term[lhs] PLUGIN_HIGH_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
+	|	term[lhs] ASSIGNOP term[rhs]                     /* $x = $y, $x += $y */
 			{ $$ = newASSIGNOP(OPf_STACKED, $lhs, $ASSIGNOP, $rhs); }
+	|	term[lhs] PLUGIN_ASSIGN_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	term[lhs] POWOP term[rhs]                        /* $x ** $y */
 			{ $$ = newBINOP($POWOP, 0, scalar($lhs), scalar($rhs)); }
+	|	term[lhs] PLUGIN_POW_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	term[lhs] MULOP term[rhs]                        /* $x * $y, $x x $y */
 			{   if ($MULOP != OP_REPEAT)
 				scalar($lhs);
 			    $$ = newBINOP($MULOP, 0, $lhs, scalar($rhs));
 			}
+	|	term[lhs] PLUGIN_MUL_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	term[lhs] ADDOP term[rhs]                        /* $x + $y */
 			{ $$ = newBINOP($ADDOP, 0, scalar($lhs), scalar($rhs)); }
+	|	term[lhs] PLUGIN_ADD_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	term[lhs] SHIFTOP term[rhs]                      /* $x >> $y, $x << $y */
 			{ $$ = newBINOP($SHIFTOP, 0, scalar($lhs), scalar($rhs)); }
 	|	termrelop %prec PREC_LOW               /* $x > $y, etc. */
@@ -1098,12 +1242,18 @@ termbinop:	term[lhs] ASSIGNOP term[rhs] 
 			{ $$ = newRANGE($DOTDOT, scalar($lhs), scalar($rhs)); }
 	|	term[lhs] ANDAND term[rhs]                       /* $x && $y */
 			{ $$ = newLOGOP(OP_AND, 0, $lhs, $rhs); }
+	|	term[lhs] PLUGIN_LOGICAL_AND_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	term[lhs] OROR term[rhs]                         /* $x || $y */
 			{ $$ = newLOGOP(OP_OR, 0, $lhs, $rhs); }
+	|	term[lhs] PLUGIN_LOGICAL_OR_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	|	term[lhs] DORDOR term[rhs]                       /* $x // $y */
 			{ $$ = newLOGOP(OP_DOR, 0, $lhs, $rhs); }
 	|	term[lhs] MATCHOP term[rhs]                      /* $x =~ /$y/ */
 			{ $$ = bind_match($MATCHOP, $lhs, $rhs); }
+	|	term[lhs] PLUGIN_LOW_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
     ;
 
 termrelop:	relopchain %prec PREC_LOW
@@ -1114,6 +1264,8 @@ termrelop:	relopchain %prec PREC_LOW
 			{ yyerror("syntax error"); YYERROR; }
 	|	termrelop CHRELOP
 			{ yyerror("syntax error"); YYERROR; }
+	|	term[lhs] PLUGIN_REL_OP[op] term[rhs]
+			{ $$ = build_infix_plugin($lhs, $rhs, $op); }
 	;
 
 relopchain:	term[lhs] CHRELOP term[rhs]
@@ -1180,18 +1332,23 @@ anonymous
 			{ $$ = newANONLIST($optexpr); }
 	|	HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE	%prec PERLY_PAREN_OPEN /* { foo => "Bar" } */
 			{ $$ = newANONHASH($optexpr); }
-	|	ANONSUB     startanonsub proto subattrlist subbody    %prec PERLY_PAREN_OPEN
+	|	KW_SUB_anon     startanonsub proto subattrlist subbody    %prec PERLY_PAREN_OPEN
 			{ SvREFCNT_inc_simple_void(PL_compcv);
 			  $$ = newANONATTRSUB($startanonsub, $proto, $subattrlist, $subbody); }
-	|	ANON_SIGSUB startanonsub subattrlist sigsubbody %prec PERLY_PAREN_OPEN
+	|	KW_SUB_anon_sig startanonsub subattrlist sigsubbody %prec PERLY_PAREN_OPEN
 			{ SvREFCNT_inc_simple_void(PL_compcv);
 			  $$ = newANONATTRSUB($startanonsub, NULL, $subattrlist, $sigsubbody); }
+	|	KW_METHOD_anon startanonmethod subattrlist sigsubbody %prec PERLY_PAREN_OPEN
+			{
+			  SvREFCNT_inc_simple_void(PL_compcv);
+			  $$ = newANONATTRSUB($startanonmethod, NULL, $subattrlist, $sigsubbody);
+			}
     ;
 
 /* Things called with "do" */
-termdo	:       DO term	%prec UNIOP                     /* do $filename */
-			{ $$ = dofile($term, $DO);}
-	|	DO block	%prec PERLY_PAREN_OPEN               /* do { code */
+termdo	:       KW_DO term	%prec UNIOP                     /* do $filename */
+			{ $$ = dofile($term, $KW_DO);}
+	|	KW_DO block	%prec PERLY_PAREN_OPEN               /* do { code */
 			{ $$ = newUNOP(OP_NULL, OPf_SPECIAL, op_scope($block));}
         ;
 
@@ -1205,7 +1362,7 @@ term[product]	:	termbinop
 			{ $$ = newUNOP(OP_REFGEN, 0, $operand); }
 	|	myattrterm	%prec UNIOP
 			{ $$ = $myattrterm; }
-	|	LOCAL term[operand]	%prec UNIOP
+	|	KW_LOCAL term[operand]	%prec UNIOP
 			{ $$ = localize($operand,0); }
 	|	PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE
 			{ $$ = sawparens($expr); }
@@ -1305,10 +1462,10 @@ term[product]	:	termbinop
 			{ $$ = newUNOP($UNIOP, 0, $block); }
 	|	UNIOP term[operand]                           /* Unary op */
 			{ $$ = newUNOP($UNIOP, 0, $operand); }
-	|	REQUIRE                              /* require, $_ implied */
-			{ $$ = newOP(OP_REQUIRE, $REQUIRE ? OPf_SPECIAL : 0); }
-	|	REQUIRE term[operand]                         /* require Foo */
-			{ $$ = newUNOP(OP_REQUIRE, $REQUIRE ? OPf_SPECIAL : 0, $operand); }
+	|	KW_REQUIRE                              /* require, $_ implied */
+			{ $$ = newOP(OP_REQUIRE, $KW_REQUIRE ? OPf_SPECIAL : 0); }
+	|	KW_REQUIRE term[operand]                         /* require Foo */
+			{ $$ = newUNOP(OP_REQUIRE, $KW_REQUIRE ? OPf_SPECIAL : 0, $operand); }
 	|	UNIOPSUB
 			{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($UNIOPSUB)); }
 	|	UNIOPSUB term[operand]                        /* Sub treated as unop */
@@ -1350,13 +1507,13 @@ term[product]	:	termbinop
 
 /* "my" declarations, with optional attributes */
 myattrterm
-	:	MY myterm myattrlist
+	:	KW_MY myterm myattrlist
 			{ $$ = my_attrs($myterm,$myattrlist); }
-	|	MY myterm
+	|	KW_MY myterm
 			{ $$ = localize($myterm,1); }
-	|	MY REFGEN myterm myattrlist
+	|	KW_MY REFGEN myterm myattrlist
 			{ $$ = newUNOP(OP_REFGEN, 0, my_attrs($myterm,$myattrlist)); }
-	|	MY REFGEN term[operand]
+	|	KW_MY REFGEN term[operand]
 			{ $$ = newUNOP(OP_REFGEN, 0, localize($operand,1)); }
 	;
 
@@ -1374,6 +1531,56 @@ myterm	:	PERLY_PAREN_OPEN expr PERLY_PAR
 			{ $$ = $ary; }
 	;
 
+/* "field" declarations */
+fieldvar:	scalar	%prec PERLY_PAREN_OPEN
+			{
+			  $$ = PadnamelistARRAY(PL_comppad_name)[$scalar->op_targ];
+			  op_free($scalar);
+			}
+	|	hsh 	%prec PERLY_PAREN_OPEN
+			{
+			  $$ = PadnamelistARRAY(PL_comppad_name)[$hsh->op_targ];
+			  op_free($hsh);
+			}
+	|	ary 	%prec PERLY_PAREN_OPEN
+			{
+			  $$ = PadnamelistARRAY(PL_comppad_name)[$ary->op_targ];
+			  op_free($ary);
+			}
+	;
+
+optfieldattrlist:
+		COLONATTR THING
+			{ $$ = $THING; }
+	|	COLONATTR
+			{ $$ = NULL; }
+	|	empty
+	;
+
+fielddecl
+	:	KW_FIELD fieldvar optfieldattrlist
+			{
+			  parser->in_my = 0;
+			  if($optfieldattrlist)
+			    class_apply_field_attributes((PADNAME *)$fieldvar, $optfieldattrlist);
+			  $$ = newOP(OP_NULL, 0);
+			}
+	|	KW_FIELD fieldvar optfieldattrlist ASSIGNOP
+			{
+			  parser->in_my = 0;
+			  if($optfieldattrlist)
+			    class_apply_field_attributes((PADNAME *)$fieldvar, $optfieldattrlist);
+			  ENTER;
+			  class_prepare_initfield_parse();
+			}
+		term
+			{
+			  class_set_field_defop((PADNAME *)$fieldvar, $ASSIGNOP, $term);
+			  LEAVE;
+			  $$ = newOP(OP_NULL, 0);
+			}
+	;
+
 /* Basic list expressions */
 optlistexpr
 	:	empty                   %prec PREC_LOW
@@ -1419,8 +1626,8 @@ refgen_topic:	my_var
 	|	amper
 	;
 
-my_refgen:	MY REFGEN
-	|	REFGEN MY
+my_refgen:	KW_MY REFGEN
+	|	REFGEN KW_MY
 	;
 
 amper	:	PERLY_AMPERSAND indirob
Index: gnu/usr.bin/perl/pp.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp.c,v
diff -u -p -a -u -p -r1.37 pp.c
--- gnu/usr.bin/perl/pp.c	15 Feb 2023 01:38:21 -0000	1.37
+++ gnu/usr.bin/perl/pp.c	21 Feb 2024 15:47:03 -0000
@@ -405,7 +405,15 @@ PP(pp_anoncode)
     if (CvCLONE(cv))
         cv = MUTABLE_CV(sv_2mortal(MUTABLE_SV(cv_clone(cv))));
     EXTEND(SP,1);
-    PUSHs(MUTABLE_SV(cv));
+
+    SV* sv = MUTABLE_SV(cv);
+
+    if (LIKELY(PL_op->op_flags & OPf_REF)) {
+        sv = refto(sv);
+    }
+
+    PUSHs(sv);
+
     RETURN;
 }
 
@@ -730,7 +738,6 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, boo
     if (chomping) {
         if (s && len) {
             char *temp_buffer = NULL;
-            SV *svrecode = NULL;
             s += --len;
             if (RsPARA(PL_rs)) {
                 if (*s != '\n')
@@ -760,10 +767,10 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, boo
                         if (is_utf8) {
                             /* Cannot downgrade, therefore cannot possibly match.
                                At this point, temp_buffer is not alloced, and
-                               is the buffer inside PL_rs, so dont free it.
+                               is the buffer inside PL_rs, so don't free it.
                              */
                             assert (temp_buffer == rsptr);
-                            goto nope_free_sv;
+                            goto nope_free_nothing;
                         }
                         rsptr = temp_buffer;
                     }
@@ -796,8 +803,6 @@ S_do_chomp(pTHX_ SV *retval, SV *sv, boo
 
             nope_free_all:
             Safefree(temp_buffer);
-            nope_free_sv:
-            SvREFCNT_dec(svrecode);
             nope_free_nothing: ;
         }
     } else {
@@ -879,11 +884,21 @@ PP(pp_undef)
         RETPUSHUNDEF;
     }
 
-    sv = TOPs;
-    if (!sv)
-    {
-        SETs(&PL_sv_undef);
-        return NORMAL;
+    if (PL_op->op_private & OPpTARGET_MY) {
+        SV** const padentry = &PAD_SVl(PL_op->op_targ);
+        sv = *padentry;
+        EXTEND(SP,1);sp++;PUTBACK;
+        if ((PL_op->op_private & (OPpLVAL_INTRO|OPpPAD_STATE)) == OPpLVAL_INTRO) {
+            save_clearsv(padentry);
+        }
+    } else {
+        sv = TOPs;
+
+        if (!sv)
+        {
+            SETs(&PL_sv_undef);
+            return NORMAL;
+        }
     }
 
     if (SvTHINKFIRST(sv))
@@ -904,11 +919,11 @@ PP(pp_undef)
                           "Constant subroutine %" SVf " undefined",
                            SVfARG(CvANON((const CV *)sv)
                              ? newSVpvs_flags("(anonymous)", SVs_TEMP)
-                             : sv_2mortal(newSVhek(
+                             : newSVhek_mortal(
                                 CvNAMED(sv)
                                  ? CvNAME_HEK((CV *)sv)
                                  : GvENAME_HEK(CvGV((const CV *)sv))
-                               ))
+                               )
                            ));
         /* FALLTHROUGH */
     case SVt_PVFM:
@@ -925,7 +940,7 @@ PP(pp_undef)
             /* undef *Pkg::meth_name ... */
             bool method_changed
              =   GvCVu((const GV *)sv) && (stash = GvSTASH((const GV *)sv))
-              && HvENAME_get(stash);
+              && HvHasENAME(stash);
             /* undef *Foo:: */
             if((stash = GvHV((const GV *)sv))) {
                 if(HvENAME_get(stash))
@@ -950,7 +965,7 @@ PP(pp_undef)
             /* undef *Foo::ISA */
             if( strEQ(GvNAME((const GV *)sv), "ISA")
              && (stash = GvSTASH((const GV *)sv))
-             && (method_changed || HvENAME(stash)) )
+             && (method_changed || HvHasENAME(stash)) )
                 mro_isa_changed_in(stash);
             else if(method_changed)
                 mro_method_changed_in(
@@ -960,7 +975,9 @@ PP(pp_undef)
             break;
         }
     default:
-        if (SvTYPE(sv) >= SVt_PV && SvPVX_const(sv) && SvLEN(sv)) {
+        if (SvTYPE(sv) >= SVt_PV && SvPVX_const(sv) && SvLEN(sv)
+            && !(PL_op->op_private & OPpUNDEF_KEEP_PV)
+        ) {
             SvPV_free(sv);
             SvPV_set(sv, NULL);
             SvLEN_set(sv, 0);
@@ -969,7 +986,11 @@ PP(pp_undef)
         SvSETMAGIC(sv);
     }
 
-    SETs(&PL_sv_undef);
+
+    if (PL_op->op_private & OPpTARGET_MY)
+        SETs(sv);
+    else
+        SETs(&PL_sv_undef);
     return NORMAL;
 }
 
@@ -1206,6 +1227,20 @@ PP(pp_pow)
         } else {
             SETn( Perl_pow( left, right) );
         }
+#elif IVSIZE == 4 && defined(LONGDOUBLE_DOUBLEDOUBLE) && defined(USE_LONG_DOUBLE)
+    /*
+    Under these conditions, if a known libm bug exists, Perl_pow() could return
+    an incorrect value if the correct value is an integer in the range of around
+    25 or more bits. The error is always quite small, so we work around it by
+    rounding to the nearest integer value ... but only if is_int is true.
+    See https://github.com/Perl/perl5/issues/19625.
+    */
+
+        if (is_int) {
+            SETn( roundl( Perl_pow( left, right) ) );
+        }
+        else SETn( Perl_pow( left, right) );
+
 #else
         SETn( Perl_pow( left, right) );
 #endif  /* HAS_AIX_POWL_NEG_BASE_BUG */
@@ -2662,7 +2697,7 @@ PP(pp_i_multiply)
     tryAMAGICbin_MG(mult_amg, AMGf_assign);
     {
       dPOPTOPiirl_nomg;
-      SETi( left * right );
+      SETi( (IV)((UV)left * (UV)right) );
       RETURN;
     }
 }
@@ -2681,7 +2716,7 @@ PP(pp_i_divide)
 
       /* avoid FPE_INTOVF on some platforms when num is IV_MIN */
       if (value == -1)
-          value = - num;
+          value = (IV)-(UV)num;
       else
           value = num / value;
       SETi(value);
@@ -2712,7 +2747,7 @@ PP(pp_i_add)
     tryAMAGICbin_MG(add_amg, AMGf_assign);
     {
       dPOPTOPiirl_ul_nomg;
-      SETi( left + right );
+      SETi( (IV)((UV)left + (UV)right) );
       RETURN;
     }
 }
@@ -2723,7 +2758,7 @@ PP(pp_i_subtract)
     tryAMAGICbin_MG(subtr_amg, AMGf_assign);
     {
       dPOPTOPiirl_ul_nomg;
-      SETi( left - right );
+      SETi( (IV)((UV)left - (UV)right) );
       RETURN;
     }
 }
@@ -2821,7 +2856,7 @@ PP(pp_i_negate)
     {
         SV * const sv = TOPs;
         IV const i = SvIV_nomg(sv);
-        SETi(-i);
+        SETi((IV)-(UV)i);
         return NORMAL;
     }
 }
@@ -2873,10 +2908,16 @@ PP(pp_sin)
 #if defined(NAN_COMPARE_BROKEN) && defined(Perl_isnan)
               ! Perl_isnan(value) &&
 #endif
-              (op_type == OP_LOG ? (value <= 0.0) : (value < 0.0))) {
+              (op_type == OP_LOG ? (value <= 0.0) : (value < 0.0)))
+          {
+              char * mesg;
+              LC_NUMERIC_LOCK(0);
               SET_NUMERIC_STANDARD();
+              mesg = Perl_form(aTHX_ "Can't take %s of %" NVgf, neg_report, value);
+              LC_NUMERIC_UNLOCK;
+
               /* diag_listed_as: Can't take log of %g */
-              DIE(aTHX_ "Can't take %s of %" NVgf, neg_report, value);
+              DIE(aTHX_ "%s", mesg);
           }
       }
       switch (op_type) {
@@ -2906,7 +2947,18 @@ PP(pp_sin)
 PP(pp_rand)
 {
     if (!PL_srand_called) {
-        (void)seedDrand01((Rand_seed_t)seed());
+        Rand_seed_t s;
+        if (PL_srand_override) {
+            /* env var PERL_RAND_SEED has been set so the user wants
+             * consistent srand() initialization. */
+            PERL_SRAND_OVERRIDE_GET(s);
+            (void)srand48_deterministic((Rand_seed_t)s);
+        } else {
+            /* Pseudo random initialization from context state and possible
+             * random devices */
+            s= (Rand_seed_t)seed();
+            (void)seedDrand01(s);
+        }
         PL_srand_called = TRUE;
     }
     {
@@ -2966,8 +3018,15 @@ PP(pp_srand)
         (void)srand48_deterministic((Rand_seed_t)anum);
     }
     else {
-        anum = seed();
-        (void)seedDrand01((Rand_seed_t)anum);
+        if (PL_srand_override) {
+            /* env var PERL_RAND_SEED has been set so the user wants
+             * consistent srand() initialization. */
+            PERL_SRAND_OVERRIDE_GET(anum);
+            (void)srand48_deterministic((Rand_seed_t)anum);
+        } else {
+            anum = seed();
+            (void)seedDrand01((Rand_seed_t)anum);
+        }
     }
 
     PL_srand_called = TRUE;
@@ -3086,7 +3145,7 @@ PP(pp_oct)
          SV* const tsv = sv_2mortal(newSVsv(sv));
 
          SvUTF8_on(tsv);
-         sv_utf8_downgrade(tsv, FALSE);
+         (void)sv_utf8_downgrade(tsv, FALSE);
          tmps = SvPV_const(tsv, len);
     }
     if (PL_op->op_type == OP_HEX)
@@ -3184,7 +3243,7 @@ PP(pp_length)
             SvSETMAGIC(TARG);
         }
         else
-            /* TARG is on stack at this point and is overwriten by SETs.
+            /* TARG is on stack at this point and is overwritten by SETs.
              * This branch is the odd one out, so put TARG by default on
              * stack earlier to let local SP go out of liveness sooner */
             SETs(&PL_sv_undef);
@@ -3676,7 +3735,7 @@ PP(pp_crypt)
           * Yes, we made this up.  */
          SV* const tsv = newSVpvn_flags(tmps, len, SVf_UTF8|SVs_TEMP);
 
-         sv_utf8_downgrade(tsv, FALSE);
+         (void)sv_utf8_downgrade(tsv, FALSE);
          tmps = SvPV_const(tsv, len);
     }
 #  ifdef USE_ITHREADS
@@ -3749,7 +3808,7 @@ PP(pp_ucfirst)
 #ifdef USE_LOCALE_CTYPE
 
     if (IN_LC_RUNTIME(LC_CTYPE)) {
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
     }
 
 #endif
@@ -3787,7 +3846,7 @@ PP(pp_ucfirst)
              * call to lowercase above has handled this.  But SpecialCasing.txt
              * says we are supposed to remove the COMBINING DOT ABOVE.  We can
              * tell if we have this situation if I ==> i in a turkic locale. */
-            if (   UNLIKELY(PL_in_utf8_turkic_locale)
+            if (   UNLIKELY(IN_UTF8_TURKIC_LOCALE)
                 && IN_LC_RUNTIME(LC_CTYPE)
                 && (UNLIKELY(*s == 'I' && tmpbuf[0] == 'i')))
             {
@@ -3831,7 +3890,7 @@ PP(pp_ucfirst)
 #ifdef USE_LOCALE_CTYPE
 
         if (IN_LC_RUNTIME(LC_CTYPE)) {
-            if (    UNLIKELY(PL_in_utf8_turkic_locale)
+            if (    UNLIKELY(IN_UTF8_TURKIC_LOCALE)
                 && (   (op_type == OP_LCFIRST && UNLIKELY(*s == 'I'))
                     || (op_type == OP_UCFIRST && UNLIKELY(*s == 'i'))))
             {
@@ -4115,7 +4174,7 @@ PP(pp_uc)
 #ifdef USE_LOCALE_CTYPE
 
     if (IN_LC_RUNTIME(LC_CTYPE)) {
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
     }
 
 #endif
@@ -4233,7 +4292,7 @@ PP(pp_uc)
 
 #ifdef USE_LOCALE_CTYPE
 
-                        && (LIKELY(   ! PL_in_utf8_turkic_locale
+                        && (LIKELY(   ! IN_UTF8_TURKIC_LOCALE
                                    || ! IN_LC_RUNTIME(LC_CTYPE))
                                    || *s != 'i')
 #endif
@@ -4339,7 +4398,7 @@ PP(pp_uc)
                      * its own loop */
 
 #ifdef USE_LOCALE_CTYPE
-                    if (   UNLIKELY(PL_in_utf8_turkic_locale)
+                    if (   UNLIKELY(IN_UTF8_TURKIC_LOCALE)
                         && UNLIKELY(IN_LC_RUNTIME(LC_CTYPE)))
                     {
                         for (; s < send; s++) {
@@ -4405,7 +4464,7 @@ PP(pp_lc)
 #ifdef USE_LOCALE_CTYPE
 
         && (   LIKELY(! IN_LC_RUNTIME(LC_CTYPE))
-            || LIKELY(! PL_in_utf8_turkic_locale))
+            || LIKELY(! IN_UTF8_TURKIC_LOCALE))
 
 #endif
 
@@ -4437,11 +4496,11 @@ PP(pp_lc)
     if (IN_LC_RUNTIME(LC_CTYPE)) {
         const U8 * next_I;
 
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
 
         /* Lowercasing in a Turkic locale can cause non-UTF-8 to need to become
          * UTF-8 for the single case of the character 'I' */
-        if (     UNLIKELY(PL_in_utf8_turkic_locale)
+        if (     UNLIKELY(IN_UTF8_TURKIC_LOCALE)
             && ! DO_UTF8(source)
             &&   (next_I = (U8 *) memchr(s, 'I', len)))
         {
@@ -4498,7 +4557,7 @@ PP(pp_lc)
              * and if so, do it.  We know that there is a DOT because
              * _toLOWER_utf8_flags() wouldn't have returned 'i' unless there
              * was one in a proper position. */
-            if (   UNLIKELY(PL_in_utf8_turkic_locale)
+            if (   UNLIKELY(IN_UTF8_TURKIC_LOCALE)
                 && IN_LC_RUNTIME(LC_CTYPE))
             {
                 if (   UNLIKELY(remove_dot_above)
@@ -4736,7 +4795,7 @@ PP(pp_fc)
 #ifdef USE_LOCALE_CTYPE
 
     if ( IN_LC_RUNTIME(LC_CTYPE) ) { /* Under locale */
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
     }
 
 #endif
@@ -4790,7 +4849,7 @@ PP(pp_fc)
             for (; s < send; d++, s++) {
                 if (    UNLIKELY(*s == MICRO_SIGN)
 #ifdef USE_LOCALE_CTYPE
-                    || (   UNLIKELY(PL_in_utf8_turkic_locale)
+                    || (   UNLIKELY(IN_UTF8_TURKIC_LOCALE)
                         && UNLIKELY(IN_LC_RUNTIME(LC_CTYPE))
                         && UNLIKELY(*s == 'I'))
 #endif
@@ -5105,7 +5164,7 @@ S_do_delete_local(pTHX)
     const U8 gimme = GIMME_V;
     const MAGIC *mg;
     HV *stash;
-    const bool sliced = !!(PL_op->op_private & OPpSLICE);
+    const bool sliced = cBOOL(PL_op->op_private & OPpSLICE);
     SV **unsliced_keysv = sliced ? NULL : sp--;
     SV * const osv = POPs;
     SV **mark = sliced ? PL_stack_base + POPMARK : unsliced_keysv-1;
@@ -5321,6 +5380,78 @@ PP(pp_exists)
     RETPUSHNO;
 }
 
+/* OP_HELEMEXISTSOR is a LOGOP not currently available to pure Perl code, but
+ * is defined for use by the core for new features, optimisations, or XS
+ * modules.
+ *
+ * Constructing it consumes two optrees, the first of which must be an
+ * OP_HELEM.
+ *
+ *   OP *o = newLOGOP(OP_HELEMEXISTSOR, 0, helemop, otherop);
+ *
+ * If the hash element exists (by the same rules as OP_EXISTS would find
+ * true) the op pushes it to the stack in the same way as a regular OP_HELEM
+ * and invokes op_next. If the element does not exist, then op_other is
+ * invoked instead. This is roughly equivalent to the perl code
+ *
+ *   exists $hash{$key} ? $hash{$key} : OTHER
+ *
+ * Except that any expressions or side-effects involved in obtaining the HV
+ * or the key are only invoked once, and it is a little more efficient when
+ * run on regular (non-magical) HVs.
+ *
+ * Combined with the OPpHELEMEXISTSOR_DELETE flag in op_private, this
+ * additionally deletes the element if found.
+ *
+ * On a tied HV, the 'EXISTS' method will be run as expected. If the method
+ * returns true then either the 'FETCH' or 'DELETE' method will also be run
+ * as required.
+ */
+
+PP(pp_helemexistsor)
+{
+    dSP;
+    SV *keysv = POPs;
+    HV *hv = MUTABLE_HV(POPs);
+    bool is_delete = PL_op->op_private & OPpHELEMEXISTSOR_DELETE;
+
+    assert(SvTYPE(hv) == SVt_PVHV);
+
+    bool hv_is_magical = UNLIKELY(SvMAGICAL(hv));
+
+    SV *val = NULL;
+
+    /* For magical HVs we have to ensure we invoke the EXISTS method first.
+     * For regular HVs we can just skip this and use the "pointer or NULL"
+     * result of the real hv_* functions
+     */
+    if(hv_is_magical && !hv_exists_ent(hv, keysv, 0))
+        goto other;
+
+    if(is_delete) {
+        val = hv_delete_ent(hv, keysv, 0, 0);
+    }
+    else {
+        HE *he = hv_fetch_ent(hv, keysv, 0, 0);
+        val = he ? HeVAL(he) : NULL;
+
+        /* A magical HV hasn't yet actually invoked the FETCH method. We must
+         * ask it to do so now
+         */
+        if(hv_is_magical && val)
+            SvGETMAGIC(val);
+    }
+
+    if(!val) {
+other:
+        PUTBACK;
+        return cLOGOP->op_other;
+    }
+
+    PUSHs(val);
+    RETURN;
+}
+
 PP(pp_hslice)
 {
     dSP; dMARK; dORIGMARK;
@@ -5513,6 +5644,51 @@ PP(pp_anonlist)
     RETURN;
 }
 
+/* When an anonlist or anonhash will (1) be empty and (2) return an RV
+ * pointing to the new AV/HV, the peephole optimizer can swap in this
+ * simpler function and op_null the originally associated PUSHMARK. */
+PP(pp_emptyavhv)
+{
+    dSP;
+    OP * const op = PL_op;
+    SV * rv;
+    SV * const sv = MUTABLE_SV( newSV_type(
+                                (op->op_private & OPpEMPTYAVHV_IS_HV) ?
+                                    SVt_PVHV :
+                                    SVt_PVAV ) );
+
+    /* Is it an assignment, just a stack push, or both?*/
+    if (op->op_private & OPpTARGET_MY) {
+        SV** const padentry = &PAD_SVl(op->op_targ);
+        rv = *padentry;
+        /* Since the op_targ is very likely to be an undef SVt_IV from
+         * a previous iteration, converting it to a live RV can
+         * typically be special-cased.*/
+        if (SvTYPE(rv) == SVt_IV && !SvOK(rv)) {
+            SvFLAGS(rv) = (SVt_IV | SVf_ROK);
+            SvRV_set(rv, sv);
+        } else {
+           sv_setrv_noinc_mg(rv, sv);
+        }
+        if ((op->op_private & (OPpLVAL_INTRO|OPpPAD_STATE)) == OPpLVAL_INTRO) {
+            save_clearsv(padentry);
+        }
+        if (GIMME_V == G_VOID) {
+            RETURN; /* skip extending and pushing */
+        }
+    } else {
+        /* Inlined newRV_noinc */
+        SV * refsv = newSV_type_mortal(SVt_IV);
+        SvRV_set(refsv, sv);
+        SvROK_on(refsv);
+
+        rv = refsv;
+    }
+
+    XPUSHs(rv);
+    RETURN;
+}
+
 PP(pp_anonhash)
 {
     dSP; dMARK; dORIGMARK;
@@ -5783,7 +5959,7 @@ PP(pp_push)
         /* SPAGAIN; not needed: SP is assigned to immediately below */
     }
     else {
-        /* PL_delaymagic is restored by JUMPENV_POP on dieing, so we
+        /* PL_delaymagic is restored by JMPENV_POP on dieing, so we
          * only need to save locally, not on the save stack */
         U16 old_delaymagic = PL_delaymagic;
 
@@ -5839,17 +6015,38 @@ PP(pp_unshift)
         /* SPAGAIN; not needed: SP is assigned to immediately below */
     }
     else {
-        /* PL_delaymagic is restored by JUMPENV_POP on dieing, so we
+        /* PL_delaymagic is restored by JMPENV_POP on dieing, so we
          * only need to save locally, not on the save stack */
         U16 old_delaymagic = PL_delaymagic;
         SSize_t i = 0;
 
         av_unshift(ary, SP - MARK);
         PL_delaymagic = DM_DELAY;
-        while (MARK < SP) {
-            SV * const sv = newSVsv(*++MARK);
-            (void)av_store(ary, i++, sv);
+
+        if (!SvMAGICAL(ary)) {
+            /* The av_unshift above means that many of the checks inside
+             * av_store are unnecessary. If ary does not have magic attached
+             * then a simple direct assignment is possible here. */
+            while (MARK < SP) {
+                SV * const sv = newSVsv(*++MARK);
+                assert( !SvTIED_mg((const SV *)ary, PERL_MAGIC_tied) );
+                assert( i >= 0 );
+                assert( !SvREADONLY(ary) );
+                assert( AvREAL(ary) || !AvREIFY(ary) );
+                assert( i <= AvMAX(ary) );
+                assert( i <= AvFILLp(ary) );
+                if (AvREAL(ary))
+                    SvREFCNT_dec(AvARRAY(ary)[i]);
+                AvARRAY(ary)[i] = sv;
+                i++;
+            }
+        } else {
+            while (MARK < SP) {
+                SV * const sv = newSVsv(*++MARK);
+                (void)av_store(ary, i++, sv);
+            }
         }
+
         if (PL_delaymagic & DM_ARRAY_ISA)
             mg_set(MUTABLE_SV(ary));
         PL_delaymagic = old_delaymagic;
@@ -6009,7 +6206,7 @@ PP(pp_split)
     const bool do_utf8 = DO_UTF8(sv);
     const bool in_uni_8_bit = IN_UNI_8_BIT;
     const char *strend = s + len;
-    PMOP *pm = cPMOPx(PL_op);
+    PMOP *pm = cPMOP;
     REGEXP *rx;
     SV *dstr;
     const char *m;
@@ -6306,7 +6503,7 @@ PP(pp_split)
             /* we never pass the REXEC_COPY_STR flag, so it should
              * never get copied */
             assert(!RX_MATCH_COPIED(rx));
-            m = RX_OFFS(rx)[0].start + orig;
+            m = RX_OFFS_START(rx,0) + orig;
 
             if (gimme_scalar) {
                 iters++;
@@ -6321,8 +6518,8 @@ PP(pp_split)
             if (RX_NPARENS(rx)) {
                 I32 i;
                 for (i = 1; i <= (I32)RX_NPARENS(rx); i++) {
-                    s = RX_OFFS(rx)[i].start + orig;
-                    m = RX_OFFS(rx)[i].end + orig;
+                    s = orig + RX_OFFS_START(rx,i);
+                    m = orig + RX_OFFS_END(rx,i);
 
                     /* japhy (07/27/01) -- the (m && s) test doesn't catch
                        parens that didn't match -- they should be set to
@@ -6344,7 +6541,7 @@ PP(pp_split)
 
                 }
             }
-            s = RX_OFFS(rx)[0].end + orig;
+            s = RX_OFFS_END(rx,0) + orig;
         }
     }
 
@@ -6554,8 +6751,7 @@ PP(pp_coreargs)
        to come in between two things this function does (stack reset and
        arg pushing).  This seems the easiest way to do it. */
     if (pushmark) {
-        PUTBACK;
-        (void)Perl_pp_pushmark(aTHX);
+        PUSHMARK(SP);
     }
 
     EXTEND(SP, maxargs == I32_MAX ? numargs : maxargs);
@@ -6924,10 +7120,25 @@ PP(pp_anonconst)
 {
     dSP;
     dTOPss;
-    SETs(sv_2mortal((SV *)newCONSTSUB(SvTYPE(CopSTASH(PL_curcop))==SVt_PVHV
-                                        ? CopSTASH(PL_curcop)
-                                        : NULL,
-                                      NULL, SvREFCNT_inc_simple_NN(sv))));
+
+    CV* constsub = newCONSTSUB(
+        SvTYPE(CopSTASH(PL_curcop))==SVt_PVHV ? CopSTASH(PL_curcop) : NULL,
+        NULL,
+        SvREFCNT_inc_simple_NN(sv)
+    );
+
+    SV* ret_sv = sv_2mortal((SV *)constsub);
+
+    /* Prior to Perl 5.38 anonconst ops always fed into srefgen.
+       5.38 redefined anonconst to create the reference without srefgen.
+       OPf_REF was added to the op. In case some XS code out there creates
+       anonconst the old way, we accommodate OPf_REF's absence here.
+    */
+    if (LIKELY(PL_op->op_flags & OPf_REF)) {
+        ret_sv = refto(ret_sv);
+    }
+
+    SETs(ret_sv);
     RETURN;
 }
 
@@ -7104,14 +7315,20 @@ PP(pp_argdefelem)
     assert(ix <= SSize_t_MAX);
 #endif
 
-    if (AvFILL(defav) >= ix) {
-        dSP;
-        SV **svp = av_fetch(defav, ix, FALSE);
-        SV  *val = svp ? *svp : &PL_sv_undef;
-        XPUSHs(val);
-        RETURN;
-    }
-    return cLOGOPo->op_other;
+    if (AvFILL(defav) < ix)
+        return cLOGOPo->op_other;
+
+    SV **svp = av_fetch(defav, ix, FALSE);
+    SV  *val = svp ? *svp : &PL_sv_undef;
+
+    if ((PL_op->op_private & OPpARG_IF_UNDEF) && !SvOK(val))
+        return cLOGOPo->op_other;
+    if ((PL_op->op_private & OPpARG_IF_FALSE) && !SvTRUE(val))
+        return cLOGOPo->op_other;
+
+    dSP;
+    XPUSHs(val);
+    RETURN;
 }
 
 
@@ -7215,28 +7432,22 @@ PP(pp_cmpchain_dup)
 
 PP(pp_is_bool)
 {
-    dSP;
-    dTARGET;
-    SV *arg = POPs;
+    SV *arg = *PL_stack_sp;
 
     SvGETMAGIC(arg);
 
-    sv_setbool_mg(TARG, SvIsBOOL(arg));
-    PUSHs(TARG);
-    RETURN;
+    *PL_stack_sp = boolSV(SvIsBOOL(arg));
+    return NORMAL;
 }
 
 PP(pp_is_weak)
 {
-    dSP;
-    dTARGET;
-    SV *arg = POPs;
+    SV *arg = *PL_stack_sp;
 
     SvGETMAGIC(arg);
 
-    sv_setbool_mg(TARG, SvROK(arg) && SvWEAKREF(arg));
-    PUSHs(TARG);
-    RETURN;
+    *PL_stack_sp = boolSV(SvWEAKREF(arg));
+    return NORMAL;
 }
 
 PP(pp_weaken)
@@ -7341,6 +7552,16 @@ PP(pp_floor)
     dTARGET;
     PUSHn(Perl_floor(POPn));
     RETURN;
+}
+
+PP(pp_is_tainted)
+{
+    SV *arg = *PL_stack_sp;
+
+    SvGETMAGIC(arg);
+
+    *PL_stack_sp = boolSV(SvTAINTED(arg));
+    return NORMAL;
 }
 
 /*
Index: gnu/usr.bin/perl/pp.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp.h,v
diff -u -p -a -u -p -r1.20 pp.h
--- gnu/usr.bin/perl/pp.h	15 Feb 2023 01:36:13 -0000	1.20
+++ gnu/usr.bin/perl/pp.h	21 Feb 2024 15:47:03 -0000
@@ -24,28 +24,28 @@ Stack marker variable for the XSUB.  See
 Opening bracket for arguments on a callback.  See C<L</PUTBACK>> and
 L<perlcall>.
 
-=for apidoc Amns||dSP
+=for apidoc Amn;||dSP
 Declares a local copy of perl's stack pointer for the XSUB, available via
 the C<SP> macro.  See C<L</SP>>.
 
-=for apidoc ms||djSP
+=for apidoc m;||djSP
 
 Declare Just C<SP>.  This is actually identical to C<dSP>, and declares
 a local copy of perl's stack pointer, available via the C<SP> macro.
 See C<L<perlapi/SP>>.  (Available for backward source code compatibility with
 the old (Perl 5.005) thread model.)
 
-=for apidoc Amns||dMARK
+=for apidoc Amn;||dMARK
 Declare a stack marker variable, C<mark>, for the XSUB.  See C<L</MARK>> and
 C<L</dORIGMARK>>.
 
-=for apidoc Amns||dORIGMARK
+=for apidoc Amn;||dORIGMARK
 Saves the original stack mark for the XSUB.  See C<L</ORIGMARK>>.
 
 =for apidoc AmnU||ORIGMARK
 The original stack mark for the XSUB.  See C<L</dORIGMARK>>.
 
-=for apidoc Amns||SPAGAIN
+=for apidoc Amn;||SPAGAIN
 Refetch the stack pointer.  Used after a callback.  See L<perlcall>.
 
 =cut */
@@ -55,7 +55,7 @@ Refetch the stack pointer.  Used after a
 #define MARK mark
 
 /*
-=for apidoc Amns||TARG
+=for apidoc Amn;||TARG
 
 C<TARG> is short for "target".  It is an entry in the pad that an OPs
 C<op_targ> refers to.  It is scratchpad space, often used as a return
@@ -103,8 +103,8 @@ value for the OP, but some use it for ot
 #define GETTARGET targ = PAD_SV(PL_op->op_targ)
 
 /*
-=for apidoc Amns||dTARGET
-Declare that this function uses C<TARG>
+=for apidoc Amn;||dTARGET
+Declare that this function uses C<TARG>, and initializes it
 
 =cut
 */
@@ -119,7 +119,7 @@ Declare that this function uses C<TARG>
 #define DIE return Perl_die
 
 /*
-=for apidoc Amns||PUTBACK
+=for apidoc Amn;||PUTBACK
 Closing bracket for XSUB arguments.  This is usually handled by C<xsubpp>.
 See C<L</PUSHMARK>> and L<perlcall> for other uses.
 
@@ -201,6 +201,10 @@ C<TARG>, so C<dTARGET> or C<dXSTARG> sho
 call multiple C<TARG>-oriented macros to return lists from XSUB's - see
 C<L</mPUSHp>> instead.  See also C<L</XPUSHp>> and C<L</mXPUSHp>>.
 
+=for apidoc Am|void|PUSHpvs|"literal string"
+A variation on C<PUSHp> that takes a literal string and calculates its size
+directly.
+
 =for apidoc Am|void|PUSHn|NV nv
 Push a double onto the stack.  The stack must have room for this element.
 Handles 'set' magic.  Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be
@@ -234,6 +238,10 @@ C<dTARGET> or C<dXSTARG> should be calle
 multiple C<TARG>-oriented macros to return lists from XSUB's - see
 C<L</mXPUSHp>> instead.  See also C<L</PUSHp>> and C<L</mPUSHp>>.
 
+=for apidoc Am|void|XPUSHpvs|"literal string"
+A variation on C<XPUSHp> that takes a literal string and calculates its size
+directly.
+
 =for apidoc Am|void|XPUSHn|NV nv
 Push a double onto the stack, extending the stack if necessary.  Handles
 'set' magic.  Uses C<TARG>, so C<dTARGET> or C<dXSTARG> should be called to
@@ -270,6 +278,10 @@ Push a string onto the stack.  The stack
 The C<len> indicates the length of the string.  Does not use C<TARG>.
 See also C<L</PUSHp>>, C<L</mXPUSHp>> and C<L</XPUSHp>>.
 
+=for apidoc Am|void|mPUSHpvs|"literal string"
+A variation on C<mPUSHp> that takes a literal string and calculates its size
+directly.
+
 =for apidoc Am|void|mPUSHn|NV nv
 Push a double onto the stack.  The stack must have room for this element.
 Does not use C<TARG>.  See also C<L</PUSHn>>, C<L</mXPUSHn>> and C<L</XPUSHn>>.
@@ -297,6 +309,10 @@ Push a string onto the stack, extending 
 indicates the length of the string.  Does not use C<TARG>.  See also
 C<L</XPUSHp>>, C<mPUSHp> and C<PUSHp>.
 
+=for apidoc Am|void|mXPUSHpvs|"literal string"
+A variation on C<mXPUSHp> that takes a literal string and calculates its size
+directly.
+
 =for apidoc Am|void|mXPUSHn|NV nv
 Push a double onto the stack, extending the stack if necessary.
 Does not use C<TARG>.  See also C<L</XPUSHn>>, C<L</mPUSHn>> and C<L</PUSHn>>.
@@ -316,11 +332,11 @@ Does not use C<TARG>.  See also C<L</XPU
  * requested to be extended (which is likely to be less than PL_stack_max)
  */
 #if defined DEBUGGING && !defined DEBUGGING_RE_ONLY
-#  define EXTEND_HWM_SET(p, n)                      \
-        STMT_START {                                \
-            SSize_t ix = (p) - PL_stack_base + (n); \
-            if (ix > PL_curstackinfo->si_stack_hwm) \
-                PL_curstackinfo->si_stack_hwm = ix; \
+#  define EXTEND_HWM_SET(p, n)                                     \
+        STMT_START {                                               \
+            SSize_t extend_hwm_set_ix = (p) - PL_stack_base + (n); \
+            if (extend_hwm_set_ix > PL_curstackinfo->si_stack_hwm) \
+                PL_curstackinfo->si_stack_hwm = extend_hwm_set_ix; \
         } STMT_END
 #else
 #  define EXTEND_HWM_SET(p, n) NOOP
@@ -382,7 +398,7 @@ Does not use C<TARG>.  See also C<L</XPU
 #  define EXTEND_SKIP(p, n) STMT_START {                                \
                                 EXTEND_HWM_SET(p, n);                   \
                                 assert(!_EXTEND_NEEDS_GROW(p,n));       \
-                          } STMT_END
+                            } STMT_END
 
 
 #  define EXTEND(p,n)   STMT_START {                                    \
@@ -390,7 +406,8 @@ Does not use C<TARG>.  See also C<L</XPU
                          if (UNLIKELY(_EXTEND_NEEDS_GROW(p,n))) {       \
                            sp = stack_grow(sp,p,_EXTEND_SAFE_N(n));     \
                            PERL_UNUSED_VAR(sp);                         \
-                         } } STMT_END
+                         }                                              \
+                        } STMT_END
 /* Same thing, but update mark register too. */
 #  define MEXTEND(p,n)  STMT_START {                                    \
                          EXTEND_HWM_SET(p, n);                          \
@@ -399,7 +416,8 @@ Does not use C<TARG>.  See also C<L</XPU
                            sp = stack_grow(sp,p,_EXTEND_SAFE_N(n));     \
                            mark = PL_stack_base + markoff;              \
                            PERL_UNUSED_VAR(sp);                         \
-                         } } STMT_END
+                         }                                              \
+                        } STMT_END
 #endif
 
 
@@ -472,6 +490,7 @@ Does not use C<TARG>.  See also C<L</XPU
 #define PUSHs(s)	(*++sp = (s))
 #define PUSHTARG	STMT_START { SvSETMAGIC(TARG); PUSHs(TARG); } STMT_END
 #define PUSHp(p,l)	STMT_START { sv_setpvn(TARG, (p), (l)); PUSHTARG; } STMT_END
+#define PUSHpvs(s)      PUSHp("" s "", sizeof(s)-1)
 #define PUSHn(n)	STMT_START { TARGn(n,1); PUSHs(TARG); } STMT_END
 #define PUSHi(i)	STMT_START { TARGi(i,1); PUSHs(TARG); } STMT_END
 #define PUSHu(u)	STMT_START { TARGu(u,1); PUSHs(TARG); } STMT_END
@@ -479,6 +498,7 @@ Does not use C<TARG>.  See also C<L</XPU
 #define XPUSHs(s)	STMT_START { EXTEND(sp,1); *++sp = (s); } STMT_END
 #define XPUSHTARG	STMT_START { SvSETMAGIC(TARG); XPUSHs(TARG); } STMT_END
 #define XPUSHp(p,l)	STMT_START { sv_setpvn(TARG, (p), (l)); XPUSHTARG; } STMT_END
+#define XPUSHpvs(s)     XPUSHp("" s "", sizeof(s)-1)
 #define XPUSHn(n)	STMT_START { TARGn(n,1); XPUSHs(TARG); } STMT_END
 #define XPUSHi(i)	STMT_START { TARGi(i,1); XPUSHs(TARG); } STMT_END
 #define XPUSHu(u)	STMT_START { TARGu(u,1); XPUSHs(TARG); } STMT_END
@@ -487,6 +507,7 @@ Does not use C<TARG>.  See also C<L</XPU
 #define mPUSHs(s)	PUSHs(sv_2mortal(s))
 #define PUSHmortal	PUSHs(sv_newmortal())
 #define mPUSHp(p,l)	PUSHs(newSVpvn_flags((p), (l), SVs_TEMP))
+#define mPUSHpvs(s)     mPUSHp("" s "", sizeof(s)-1)
 #define mPUSHn(n)	sv_setnv(PUSHmortal, (NV)(n))
 #define mPUSHi(i)	sv_setiv(PUSHmortal, (IV)(i))
 #define mPUSHu(u)	sv_setuv(PUSHmortal, (UV)(u))
@@ -494,6 +515,7 @@ Does not use C<TARG>.  See also C<L</XPU
 #define mXPUSHs(s)	XPUSHs(sv_2mortal(s))
 #define XPUSHmortal	XPUSHs(sv_newmortal())
 #define mXPUSHp(p,l)	STMT_START { EXTEND(sp,1); mPUSHp((p), (l)); } STMT_END
+#define mXPUSHpvs(s)    mXPUSHp("" s "", sizeof(s)-1)
 #define mXPUSHn(n)	STMT_START { EXTEND(sp,1); mPUSHn(n); } STMT_END
 #define mXPUSHi(i)	STMT_START { EXTEND(sp,1); mPUSHi(i); } STMT_END
 #define mXPUSHu(u)	STMT_START { EXTEND(sp,1); mPUSHu(u); } STMT_END
@@ -682,7 +704,7 @@ True if this op will be the return value
 /* Used in various places that need to dereference a glob or globref */
 #  define MAYBE_DEREF_GV_flags(sv,phlags)                          \
     (                                                               \
-        (void)(phlags & SV_GMAGIC && (SvGETMAGIC(sv),0)),            \
+        (void)(((phlags) & SV_GMAGIC) && (SvGETMAGIC(sv),0)),        \
         isGV_with_GP(sv)                                              \
           ? (GV *)(sv)                                                \
           : SvROK(sv) && SvTYPE(SvRV(sv)) <= SVt_PVLV &&               \
Index: gnu/usr.bin/perl/pp_ctl.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp_ctl.c,v
diff -u -p -a -u -p -r1.25 pp_ctl.c
--- gnu/usr.bin/perl/pp_ctl.c	8 Jul 2023 14:18:35 -0000	1.25
+++ gnu/usr.bin/perl/pp_ctl.c	21 Feb 2024 15:47:03 -0000
@@ -35,9 +35,6 @@
 #include "perl.h"
 #include "feature.h"
 
-#define RUN_PP_CATCHABLY(thispp) \
-    STMT_START { if (CATCH_GET) return docatch(thispp); } STMT_END
-
 #define dopopto_cursub() \
     (PL_curstackinfo->si_cxsubix >= 0        \
         ? PL_curstackinfo->si_cxsubix        \
@@ -81,7 +78,7 @@ PP(pp_regcreset)
 PP(pp_regcomp)
 {
     dSP;
-    PMOP *pm = (PMOP*)cLOGOP->op_other;
+    PMOP *pm = cPMOPx(cLOGOP->op_other);
     SV **args;
     int nargs;
     REGEXP *re = NULL;
@@ -192,7 +189,7 @@ PP(pp_substcont)
 {
     dSP;
     PERL_CONTEXT *cx = CX_CUR();
-    PMOP * const pm = (PMOP*) cLOGOP->op_other;
+    PMOP * const pm = cPMOPx(cLOGOP->op_other);
     SV * const dstr = cx->sb_dstr;
     char *s = cx->sb_s;
     char *m = cx->sb_m;
@@ -323,14 +320,14 @@ PP(pp_substcont)
         s = orig + (m - s);
         cx->sb_strend = s + (cx->sb_strend - m);
     }
-    cx->sb_m = m = RX_OFFS(rx)[0].start + orig;
+    cx->sb_m = m = RX_OFFS_START(rx,0) + orig;
     if (m > s) {
         if (DO_UTF8(dstr) && !SvUTF8(cx->sb_targ))
             sv_catpvn_nomg_utf8_upgrade(dstr, s, m - s, nsv);
         else
             sv_catpvn_nomg(dstr, s, m-s);
     }
-    cx->sb_s = RX_OFFS(rx)[0].end + orig;
+    cx->sb_s = RX_OFFS_END(rx,0) + orig;
     { /* Update the pos() information. */
         SV * const sv
             = (pm->op_pmflags & PMf_NONDESTRUCT) ? cx->sb_dstr : cx->sb_targ;
@@ -382,6 +379,7 @@ Perl_rxres_save(pTHX_ void **rsp, REGEXP
     PERL_ARGS_ASSERT_RXRES_SAVE;
     PERL_UNUSED_CONTEXT;
 
+    /* deal with regexp_paren_pair items */
     if (!p || p[1] < RX_NPARENS(rx)) {
 #ifdef PERL_ANY_COW
         i = 7 + (RX_NPARENS(rx)+1) * 2;
@@ -410,8 +408,8 @@ Perl_rxres_save(pTHX_ void **rsp, REGEXP
     *p++ = (UV)RX_SUBOFFSET(rx);
     *p++ = (UV)RX_SUBCOFFSET(rx);
     for (i = 0; i <= RX_NPARENS(rx); ++i) {
-        *p++ = (UV)RX_OFFS(rx)[i].start;
-        *p++ = (UV)RX_OFFS(rx)[i].end;
+        *p++ = (UV)RX_OFFSp(rx)[i].start;
+        *p++ = (UV)RX_OFFSp(rx)[i].end;
     }
 }
 
@@ -441,8 +439,8 @@ S_rxres_restore(pTHX_ void **rsp, REGEXP
     RX_SUBOFFSET(rx) = (I32)*p++;
     RX_SUBCOFFSET(rx) = (I32)*p++;
     for (i = 0; i <= RX_NPARENS(rx); ++i) {
-        RX_OFFS(rx)[i].start = (I32)(*p++);
-        RX_OFFS(rx)[i].end = (I32)(*p++);
+        RX_OFFSp(rx)[i].start = (I32)(*p++);
+        RX_OFFSp(rx)[i].end = (I32)(*p++);
     }
 }
 
@@ -574,7 +572,9 @@ PP(pp_formline)
             source = (U8 *)f;
             f += to_copy;
             trans = '~';
-            item_is_utf8 = targ_is_utf8 ? !!DO_UTF8(formsv) : !!SvUTF8(formsv);
+            item_is_utf8 = (targ_is_utf8)
+                           ? cBOOL(DO_UTF8(formsv))
+                           : cBOOL(SvUTF8(formsv));
             goto append;
 
         case FF_SKIP: /* skip <arg> chars in format */
@@ -876,15 +876,16 @@ PP(pp_formline)
             {
                 Size_t max = SvLEN(PL_formtarget) - (t - SvPVX(PL_formtarget));
                 int len;
-                DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
-                STORE_LC_NUMERIC_SET_TO_NEEDED();
                 arg &= ~(FORM_NUM_POINT|FORM_NUM_BLANK);
 #ifdef USE_QUADMATH
                 {
                     int len;
                     if (!quadmath_format_valid(fmt))
                         Perl_croak_nocontext("panic: quadmath invalid format \"%s\"", fmt);
-                    len = quadmath_snprintf(t, max, fmt, (int) fieldsize, (int) arg, value);
+                    WITH_LC_NUMERIC_SET_TO_NEEDED(
+                        len = quadmath_snprintf(t, max, fmt, (int) fieldsize,
+                                               (int) arg, value);
+                    );
                     if (len == -1)
                         Perl_croak_nocontext("panic: quadmath_snprintf failed, format \"%s\"", fmt);
                 }
@@ -895,7 +896,6 @@ PP(pp_formline)
                 GCC_DIAG_RESTORE_STMT;
 #endif
                 PERL_MY_SNPRINTF_POST_GUARD(len, max);
-                RESTORE_LC_NUMERIC();
             }
             t += fieldsize;
             break;
@@ -969,6 +969,11 @@ PP(pp_formline)
 /* also used for: pp_mapstart() */
 PP(pp_grepstart)
 {
+    /* See the code comments at the start of pp_grepwhile() and
+     * pp_mapwhile() for an explanation of how the stack is used
+     * during a grep or map.
+     */
+
     dSP;
     SV *src;
 
@@ -979,8 +984,8 @@ PP(pp_grepstart)
         RETURNOP(PL_op->op_next->op_next);
     }
     PL_stack_sp = PL_stack_base + TOPMARK + 1;
-    Perl_pp_pushmark(aTHX);				/* push dst */
-    Perl_pp_pushmark(aTHX);				/* push src */
+    PUSHMARK(PL_stack_sp);				/* push dst */
+    PUSHMARK(PL_stack_sp);				/* push src */
     ENTER_with_name("grep");					/* enter outer scope */
 
     SAVETMPS;
@@ -998,14 +1003,70 @@ PP(pp_grepstart)
 
     PUTBACK;
     if (PL_op->op_type == OP_MAPSTART)
-        Perl_pp_pushmark(aTHX);			/* push top */
-    return ((LOGOP*)PL_op->op_next)->op_other;
+        PUSHMARK(PL_stack_sp);			/* push top */
+    return cLOGOPx(PL_op->op_next)->op_other;
 }
 
 /* pp_grepwhile() lives in pp_hot.c */
 
 PP(pp_mapwhile)
 {
+    /* Understanding the stack during a map.
+     *
+     * 'map expr, args' is implemented in the form of
+     *
+     *     grepstart; // which handles map too
+     *     do {
+     *          expr;
+     *          mapwhile;
+     *     } while (args);
+     *
+     * The stack examples below are in the form of 'perl -Ds' output,
+     * where any stack element indexed by PL_markstack_ptr[i] has a star
+     * just to the right of it.  In addition, the corresponding i value
+     * is displayed under the indexed stack element.
+     *
+     * On entry to mapwhile, the stack looks like this:
+     *
+     *      =>   *  A1..An  X1  *  X2..Xn  C  *  R1..Rn  *  E1..En
+     *      [-3]           [-2]          [-1]        [0]
+     *
+     * where:
+     *   A1..An   Accumulated results from all previous iterations of expr
+     *   X1..Xn   Random garbage
+     *   C        The current (just processed) arg, still aliased to $_.
+     *   R1..Rn   The args remaining to be processed.
+     *   E1..En   the (list) result of the just-executed map expression.
+     *
+     * Note that it is easiest to think of stack marks [-1] and [-2] as both
+     * being one too high, and so it would make more sense to have had the
+     * marks like this:
+     *
+     *      =>   *  A1..An  *  X1..Xn  *  C  R1..Rn  *  E1..En
+     *      [-3]       [-2]       [-1]           [0]
+     *
+     * where the stack is divided neatly into 4 groups:
+     *   - accumulated results
+     *   - discards and/or holes proactively created for later result storage
+     *   - being, or yet to be, processed,
+     *   - results of last expr
+     * But off-by-one is the way it is currently, and it works as long as
+     * we keep it consistent and bear it in mind.
+     *
+     * pp_mapwhile() does the following:
+     *
+     * - If there isn't enough space in the X1..Xn zone to insert the
+     *   expression results, grow the stack and shift up everything above C.
+     * - move E1..En to just above An
+     * - at the same time, manipulate the tmps stack so that temporaries
+     *   from executing expr can be freed without prematurely freeing
+     *   E1..En.
+     * - if on last iteration, pop all the marks, reset the stack pointer
+     *   and update the return args based on caller context.
+     * - else alias $_ to the next arg.
+     *
+     */
+
     dSP;
     const U8 gimme = GIMME_V;
     I32 items = (SP - PL_stack_base) - TOPMARK; /* how many new items */
@@ -1162,7 +1223,7 @@ PP(pp_flip)
     dSP;
 
     if (GIMME_V == G_LIST) {
-        RETURNOP(((LOGOP*)cUNOP->op_first)->op_other);
+        RETURNOP(cLOGOPx(cUNOP->op_first)->op_other);
     }
     else {
         dTOPss;
@@ -1191,7 +1252,7 @@ PP(pp_flip)
             else {
                 sv_setiv(targ, 0);
                 SP--;
-                RETURNOP(((LOGOP*)cUNOP->op_first)->op_other);
+                RETURNOP(cLOGOPx(cUNOP->op_first)->op_other);
             }
         }
         SvPVCLEAR(TARG);
@@ -1300,7 +1361,7 @@ PP(pp_flop)
         }
 
         if (flop) {
-            sv_setiv(PAD_SV(((UNOP*)cUNOP->op_first)->op_first->op_targ), 0);
+            sv_setiv(PAD_SV(cUNOPx(cUNOP->op_first)->op_first->op_targ), 0);
             sv_catpvs(targ, "E0");
         }
         SETs(targ);
@@ -1657,25 +1718,53 @@ void
 Perl_qerror(pTHX_ SV *err)
 {
     PERL_ARGS_ASSERT_QERROR;
+    if (err!=NULL) {
+        if (PL_in_eval) {
+            if (PL_in_eval & EVAL_KEEPERR) {
+                    Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %" SVf,
+                                                        SVfARG(err));
+            }
+            else {
+                sv_catsv(ERRSV, err);
+            }
+        }
+        else if (PL_errors)
+            sv_catsv(PL_errors, err);
+        else
+            Perl_warn(aTHX_ "%" SVf, SVfARG(err));
+
+        if (PL_parser) {
+            ++PL_parser->error_count;
+        }
+    }
+
+    if ( PL_parser && (err == NULL ||
+         PL_parser->error_count >= PERL_STOP_PARSING_AFTER_N_ERRORS)
+    ) {
+        const char * const name = OutCopFILE(PL_curcop);
+        SV * errsv = NULL;
+        U8 raw_error_count = PERL_PARSE_ERROR_COUNT(PL_parser->error_count);
+
+        if (PL_in_eval) {
+            errsv = ERRSV;
+        }
 
-    if (PL_in_eval) {
-        if (PL_in_eval & EVAL_KEEPERR) {
-                Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "\t(in cleanup) %" SVf,
-                                                    SVfARG(err));
+        if (err == NULL) {
+            abort_execution(errsv, name);
         }
         else
-            sv_catsv(ERRSV, err);
+        if (raw_error_count >= PERL_STOP_PARSING_AFTER_N_ERRORS) {
+            if (errsv) {
+                Perl_croak(aTHX_ "%" SVf "%s has too many errors.\n",
+                    SVfARG(errsv), name);
+            } else {
+                Perl_croak(aTHX_ "%s has too many errors.\n", name);
+            }
+        }
     }
-    else if (PL_errors)
-        sv_catsv(PL_errors, err);
-    else
-        Perl_warn(aTHX_ "%" SVf, SVfARG(err));
-    if (PL_parser)
-        ++PL_parser->error_count;
 }
 
 
-
 /* pop a CXt_EVAL context and in addition, if it was a require then
  * based on action:
  *     0: do nothing extra;
@@ -1954,7 +2043,7 @@ PP(pp_caller)
       else (void)POPs;
     }
 
-    cx = caller_cx(count + !!(PL_op->op_private & OPpOFFBYONE), &dbcx);
+    cx = caller_cx(count + cBOOL(PL_op->op_private & OPpOFFBYONE), &dbcx);
     if (!cx) {
         if (gimme != G_LIST) {
             EXTEND(SP, 1);
@@ -2067,7 +2156,7 @@ PP(pp_caller)
     mPUSHi(CopHINTS_get(cx->blk_oldcop));
     {
         SV * mask ;
-        STRLEN * const old_warnings = cx->blk_oldcop->cop_warnings ;
+        char *old_warnings = cx->blk_oldcop->cop_warnings;
 
         if  (old_warnings == pWARN_NONE)
             mask = newSVpvn(WARN_NONEstring, WARNsize) ;
@@ -2078,7 +2167,7 @@ PP(pp_caller)
             mask = newSVpvn(WARN_ALLstring, WARNsize) ;
         }
         else
-            mask = newSVpvn((char *) (old_warnings + 1), old_warnings[0]);
+            mask = newSVpvn(old_warnings, RCPV_LEN(old_warnings));
         mPUSHs(mask);
     }
 
@@ -2255,6 +2344,7 @@ PP(pp_enteriter)
         SV * const sv = POPs;
         itervarp = (void *)sv;
         if (LIKELY(isGV(sv))) {		/* symbol table variable */
+            SvREFCNT_inc_simple_void(sv);
             itersave = GvSV(sv);
             SvREFCNT_inc_simple_void(itersave);
             cxflags = CXp_FOR_GV;
@@ -2267,6 +2357,7 @@ PP(pp_enteriter)
             assert(SvMAGIC(sv)->mg_type == PERL_MAGIC_lvref);
             itersave = NULL;
             cxflags = CXp_FOR_LVREF;
+            SvREFCNT_inc_simple_void(sv);
         }
     }
     /* OPpITER_DEF (implicit $_) should only occur with a GV iter var */
@@ -2635,25 +2726,33 @@ S_unwind_loop(pTHX)
                 OP_NAME(PL_op));
     }
     else {
-        dSP;
         STRLEN label_len;
-        const char * const label =
-            PL_op->op_flags & OPf_STACKED
-                ? SvPV(TOPs,label_len)
-                : (label_len = strlen(cPVOP->op_pv), cPVOP->op_pv);
-        const U32 label_flags =
-            PL_op->op_flags & OPf_STACKED
-                ? SvUTF8(POPs)
-                : (cPVOP->op_private & OPpPV_IS_UTF8) ? SVf_UTF8 : 0;
-        PUTBACK;
+        const char * label;
+        U32 label_flags;
+        SV *sv;
+
+        if (PL_op->op_flags & OPf_STACKED) {
+            dSP;
+            sv = POPs;
+            PUTBACK;
+            label       = SvPV(sv, label_len);
+            label_flags = SvUTF8(sv);
+        }
+        else {
+            sv          = NULL; /* not needed, but shuts up compiler warn */
+            label       = cPVOP->op_pv;
+            label_len   = strlen(label);
+            label_flags = (cPVOP->op_private & OPpPV_IS_UTF8) ? SVf_UTF8 : 0;
+        }
+
         cxix = dopoptolabel(label, label_len, label_flags);
         if (cxix < 0)
             /* diag_listed_as: Label not found for "last %s" */
             Perl_croak(aTHX_ "Label not found for \"%s %" SVf "\"",
                                        OP_NAME(PL_op),
                                        SVfARG(PL_op->op_flags & OPf_STACKED
-                                              && !SvGMAGICAL(TOPp1s)
-                                              ? TOPp1s
+                                              && !SvGMAGICAL(sv)
+                                              ? sv
                                               : newSVpvn_flags(label,
                                                     label_len,
                                                     label_flags | SVs_TEMP)));
@@ -2878,6 +2977,7 @@ PP(pp_goto)
             PERL_CONTEXT *cx;
             CV *cv = MUTABLE_CV(SvRV(sv));
             AV *arg = GvAV(PL_defgv);
+            CV *old_cv = NULL;
 
             while (!CvROOT(cv) && !CvXSUB(cv)) {
                 const GV * const gv = CvGV(cv);
@@ -2981,7 +3081,13 @@ PP(pp_goto)
 
             if (CxTYPE(cx) == CXt_SUB) {
                 CvDEPTH(cx->blk_sub.cv) = cx->blk_sub.olddepth;
-                SvREFCNT_dec_NN(cx->blk_sub.cv);
+                /*on XS calls defer freeing the old CV as it could
+                 * prematurely set PL_op to NULL, which could cause
+                 * e..g XS subs using GIMME_V to SEGV */
+                if (CvISXSUB(cv))
+                    old_cv = cx->blk_sub.cv;
+                else
+                    SvREFCNT_dec_NN(cx->blk_sub.cv);
             }
 
             /* Now do some callish stuff. */
@@ -2989,10 +3095,13 @@ PP(pp_goto)
                 const SSize_t items = arg ? AvFILL(arg) + 1 : 0;
                 const bool m = arg ? cBOOL(SvRMAGICAL(arg)) : 0;
                 SV** mark;
+                UNOP fake_goto_op;
 
                 ENTER;
                 SAVETMPS;
                 SAVEFREESV(cv); /* later, undo the 'avoid premature free' hack */
+                if (old_cv)
+                    SAVEFREESV(old_cv); /* ditto, deferred freeing of old CV */
 
                 /* put GvAV(defgv) back onto stack */
                 if (items) {
@@ -3025,6 +3134,19 @@ PP(pp_goto)
                 PL_comppad = cx->blk_sub.prevcomppad;
                 PL_curpad = LIKELY(PL_comppad) ? AvARRAY(PL_comppad) : NULL;
 
+                /* Make a temporary a copy of the current GOTO op on the C
+                 * stack, but with a modified gimme (we can't modify the
+                 * real GOTO op as that's not thread-safe). This allows XS
+                 * users of GIMME_V to get the correct calling context,
+                 * even though there is no longer a CXt_SUB frame to
+                 * provide that information.
+                 */
+                Copy(PL_op, &fake_goto_op, 1, UNOP);
+                fake_goto_op.op_flags =
+                                  (fake_goto_op.op_flags & ~OPf_WANT)
+                                | (cx->blk_gimme & G_WANT);
+                PL_op = (OP*)&fake_goto_op;
+
                 /* XS subs don't have a CXt_SUB, so pop it;
                  * this is a cx_popblock(), less all the stuff we already did
                  * for cx_topblock() earlier */
@@ -3214,7 +3336,7 @@ PP(pp_goto)
                     ? 2
                     : 1;
             if (enterops[i])
-                deprecate("\"goto\" to jump into a construct");
+                deprecate(WARN_DEPRECATED__GOTO_CONSTRUCT, "Use of \"goto\" to jump into a construct");
         }
 
         /* pop unwanted frames */
@@ -3322,17 +3444,65 @@ S_save_lines(pTHX_ AV *array, SV *sv)
 /*
 =for apidoc docatch
 
-Check for the cases 0 or 3 of cur_env.je_ret, only used inside an eval context.
+Interpose, for the current op and RUNOPS loop,
+
+    - a new JMPENV stack catch frame, and
+    - an inner RUNOPS loop to run all the remaining ops following the
+      current PL_op.
+
+Then handle any exceptions raised while in that loop.
+For a caught eval at this level, re-enter the loop with the specified
+restart op (i.e. the op following the OP_LEAVETRY etc); otherwise re-throw
+the exception.
 
-0 is used as continue inside eval,
+docatch() is intended to be used like this:
 
-3 is used for a die caught by an inner eval - continue inner loop
+    PP(pp_entertry)
+    {
+        if (CATCH_GET)
+            return docatch(Perl_pp_entertry);
+
+        ... rest of function ...
+        return PL_op->op_next;
+    }
+
+If a new catch frame isn't needed, the op behaves normally. Otherwise it
+calls docatch(), which recursively calls pp_entertry(), this time with
+CATCH_GET() false, so the rest of the body of the entertry is run. Then
+docatch() calls CALLRUNOPS() which executes all the ops following the
+entertry. When the loop finally finishes, control returns to docatch(),
+which pops the JMPENV and returns to the parent pp_entertry(), which
+itself immediately returns. Note that *all* subsequent ops are run within
+the inner RUNOPS loop, not just the body of the eval. For example, in
+
+    sub TIEARRAY { eval {1}; my $x }
+    tie @a, "main";
+
+at the point the 'my' is executed, the C stack will look something like:
+
+    #10 main()
+    #9  perl_run()              # JMPENV_PUSH level 1 here
+    #8  S_run_body()
+    #7  Perl_runops_standard()  # main RUNOPS loop
+    #6  Perl_pp_tie()
+    #5  Perl_call_sv()
+    #4  Perl_runops_standard()  # unguarded RUNOPS loop: no new JMPENV
+    #3  Perl_pp_entertry()
+    #2  S_docatch()             # JMPENV_PUSH level 2 here
+    #1  Perl_runops_standard()  # docatch()'s RUNOPs loop
+    #0  Perl_pp_padsv()
+
+Basically, any section of the perl core which starts a RUNOPS loop may
+make a promise that it will catch any exceptions and restart the loop if
+necessary. If it's not prepared to do that (like call_sv() isn't), then
+it sets CATCH_GET() to true, so that any later eval-like code knows to
+set up a new handler and loop (via docatch()).
 
-See F<cop.h>: je_mustcatch, when set at any runlevel to TRUE, means eval ops must
-establish a local jmpenv to handle exception traps.
+See L<perlinterp/"Exception handing"> for further details.
 
 =cut
 */
+
 STATIC OP *
 S_docatch(pTHX_ Perl_ppaddr_t firstpp)
 {
@@ -3340,18 +3510,23 @@ S_docatch(pTHX_ Perl_ppaddr_t firstpp)
     OP * const oldop = PL_op;
     dJMPENV;
 
-    assert(CATCH_GET == TRUE);
-
+    assert(CATCH_GET);
     JMPENV_PUSH(ret);
+    assert(!CATCH_GET);
+
     switch (ret) {
-    case 0:
+    case 0: /* normal flow-of-control return from JMPENV_PUSH */
+
+        /* re-run the current op, this time executing the full body of the
+         * pp function */
         PL_op = firstpp(aTHX);
  redo_body:
         if (PL_op) {
             CALLRUNOPS(aTHX);
         }
         break;
-    case 3:
+
+    case 3: /* an exception raised within an eval */
         if (PL_restartjmpenv == PL_top_env) {
             /* die caught by an inner eval - continue inner loop */
 
@@ -3363,10 +3538,11 @@ S_docatch(pTHX_ Perl_ppaddr_t firstpp)
             goto redo_body;
         }
         /* FALLTHROUGH */
+
     default:
         JMPENV_POP;
         PL_op = oldop;
-        JMPENV_JUMP(ret);
+        JMPENV_JUMP(ret); /* re-throw the exception */
         NOT_REACHED; /* NOTREACHED */
     }
     JMPENV_POP;
@@ -3443,16 +3619,39 @@ Perl_find_runcv_where(pTHX_ U8 cond, IV 
 }
 
 
-/* Run yyparse() in a setjmp wrapper. Returns:
+/* S_try_yyparse():
+ *
+ * Run yyparse() in a setjmp wrapper. Returns:
  *   0: yyparse() successful
  *   1: yyparse() failed
  *   3: yyparse() died
+ *
+ * This is used to trap Perl_croak() calls that are executed
+ * during the compilation process and before the code has been
+ * completely compiled. It is expected to be called from
+ * doeval_compile() only. The parameter 'caller_op' is
+ * only used in DEBUGGING to validate the logic is working
+ * correctly.
+ *
+ * See also try_run_unitcheck().
+ *
  */
 STATIC int
-S_try_yyparse(pTHX_ int gramtype)
+S_try_yyparse(pTHX_ int gramtype, OP *caller_op)
 {
-    int ret;
+    /* if we die during compilation PL_restartop and PL_restartjmpenv
+     * will be set by Perl_die_unwind(). We need to restore their values
+     * if that happens as they are intended for the case where the code
+     * compiles and dies during execution, not where it dies during
+     * compilation. PL_restartop and caller_op->op_next should be the
+     * same anyway, and when compilation fails then caller_op->op_next is
+     * used as the next op after the compile.
+     */
+    JMPENV *restartjmpenv = PL_restartjmpenv;
+    OP *restartop = PL_restartop;
     dJMPENV;
+    int ret;
+    PERL_UNUSED_ARG(caller_op); /* only used in debugging builds */
 
     assert(CxTYPE(CX_CUR()) == CXt_EVAL);
     JMPENV_PUSH(ret);
@@ -3461,6 +3660,11 @@ S_try_yyparse(pTHX_ int gramtype)
         ret = yyparse(gramtype) ? 1 : 0;
         break;
     case 3:
+        /* yyparse() died and we trapped the error. We need to restore
+         * the old PL_restartjmpenv and PL_restartop values. */
+        assert(PL_restartop == caller_op->op_next); /* we expect these to match */
+        PL_restartjmpenv = restartjmpenv;
+        PL_restartop = restartop;
         break;
     default:
         JMPENV_POP;
@@ -3471,6 +3675,67 @@ S_try_yyparse(pTHX_ int gramtype)
     return ret;
 }
 
+/* S_try_run_unitcheck()
+ *
+ * Run PL_unitcheckav in a setjmp wrapper via call_list.
+ * Returns:
+ *   0: unitcheck blocks ran without error
+ *   3: a unitcheck block died
+ *
+ * This is used to trap Perl_croak() calls that are executed
+ * during UNITCHECK blocks executed after the compilation
+ * process has completed but before the code itself has been
+ * executed via the normal run loops. It is expected to be called
+ * from doeval_compile() only. The parameter 'caller_op' is
+ * only used in DEBUGGING to validate the logic is working
+ * correctly.
+ *
+ * See also try_yyparse().
+ */
+STATIC int
+S_try_run_unitcheck(pTHX_ OP* caller_op)
+{
+    /* if we die during compilation PL_restartop and PL_restartjmpenv
+     * will be set by Perl_die_unwind(). We need to restore their values
+     * if that happens as they are intended for the case where the code
+     * compiles and dies during execution, not where it dies during
+     * compilation. UNITCHECK runs after compilation completes, and
+     * if it dies we will execute the PL_restartop anyway via the
+     * failed compilation code path. PL_restartop and caller_op->op_next
+     * should be the same anyway, and when compilation fails then
+     * caller_op->op_next is  used as the next op after the compile.
+     */
+    JMPENV *restartjmpenv = PL_restartjmpenv;
+    OP *restartop = PL_restartop;
+    dJMPENV;
+    int ret;
+    PERL_UNUSED_ARG(caller_op); /* only used in debugging builds */
+
+    assert(CxTYPE(CX_CUR()) == CXt_EVAL);
+    JMPENV_PUSH(ret);
+    switch (ret) {
+    case 0:
+        call_list(PL_scopestack_ix, PL_unitcheckav);
+        break;
+    case 3:
+        /* call_list died */
+        /* call_list() died and we trapped the error. We should restore
+         * the old PL_restartjmpenv and PL_restartop values, as they are
+         * used only in the case where the code was actually run.
+         * The assert validates that we will still execute the PL_restartop.
+         */
+        assert(PL_restartop == caller_op->op_next); /* we expect these to match */
+        PL_restartjmpenv = restartjmpenv;
+        PL_restartop = restartop;
+        break;
+    default:
+        JMPENV_POP;
+        JMPENV_JUMP(ret);
+        NOT_REACHED; /* NOTREACHED */
+    }
+    JMPENV_POP;
+    return ret;
+}
 
 /* Compile a require/do or an eval ''.
  *
@@ -3610,22 +3875,30 @@ S_doeval_compile(pTHX_ U8 gimme, CV* out
 
     CALL_BLOCK_HOOKS(bhk_eval, saveop);
 
-    /* note that yyparse() may raise an exception, e.g. C<BEGIN{die}>,
-     * so honour CATCH_GET and trap it here if necessary */
+    /* we should never be CATCH_GET true here, as our immediate callers should
+     * always handle that case. */
+    assert(!CATCH_GET);
+    /* compile the code */
 
 
-    /* compile the code */
-    yystatus = (!in_require && CATCH_GET) ? S_try_yyparse(aTHX_ GRAMPROG) : yyparse(GRAMPROG);
+    yystatus = (!in_require)
+               ? S_try_yyparse(aTHX_ GRAMPROG, saveop)
+               : yyparse(GRAMPROG);
 
     if (yystatus || PL_parser->error_count || !PL_eval_root) {
         PERL_CONTEXT *cx;
         SV *errsv;
 
         PL_op = saveop;
-        /* note that if yystatus == 3, then the require/eval died during
-         * compilation, so the EVAL CX block has already been popped, and
-         * various vars restored */
         if (yystatus != 3) {
+            /* note that if yystatus == 3, then the require/eval died during
+             * compilation, so the EVAL CX block has already been popped, and
+             * various vars restored. This block applies similar steps after
+             * the other "failed to compile" cases in yyparse, eg, where
+             * yystatus=1, "failed, but did not die". */
+
+            if (!in_require)
+                invoke_exception_hook(ERRSV,FALSE);
             if (PL_eval_root) {
                 op_free(PL_eval_root);
                 PL_eval_root = NULL;
@@ -3633,6 +3906,10 @@ S_doeval_compile(pTHX_ U8 gimme, CV* out
             SP = PL_stack_base + POPMARK;	/* pop original mark */
             cx = CX_CUR();
             assert(CxTYPE(cx) == CXt_EVAL);
+            /* If we are in an eval we need to make sure that $SIG{__DIE__}
+             * handler is invoked so we simulate that part of the
+             * Perl_die_unwind() process. In a require we will croak
+             * so it will happen there. */
             /* pop the CXt_EVAL, and if was a require, croak */
             S_pop_eval_context_maybe_croak(aTHX_ cx, ERRSV, 2);
         }
@@ -3646,6 +3923,7 @@ S_doeval_compile(pTHX_ U8 gimme, CV* out
         if (!*(SvPV_nolen_const(errsv)))
             sv_setpvs(errsv, "Compilation error");
 
+
         if (gimme != G_LIST) PUSHs(&PL_sv_undef);
         PUTBACK;
         return FALSE;
@@ -3673,9 +3951,31 @@ S_doeval_compile(pTHX_ U8 gimme, CV* out
         }
     }
 
-    if (PL_unitcheckav) {
+    if (PL_unitcheckav && av_count(PL_unitcheckav)>0) {
         OP *es = PL_eval_start;
-        call_list(PL_scopestack_ix, PL_unitcheckav);
+        /* TODO: are we sure we shouldn't do S_try_run_unitcheck()
+        * when `in_require` is true? */
+        if (in_require) {
+            call_list(PL_scopestack_ix, PL_unitcheckav);
+        }
+        else if (S_try_run_unitcheck(aTHX_ saveop)) {
+            /* there was an error! */
+
+            /* Restore PL_OP */
+            PL_op = saveop;
+
+            SV *errsv = ERRSV;
+            if (!*(SvPV_nolen_const(errsv))) {
+                /* This happens when using:
+                 * eval qq# UNITCHECK { die "\x00"; } #;
+                 */
+                sv_setpvs(errsv, "Unit check error");
+            }
+
+            if (gimme != G_LIST) PUSHs(&PL_sv_undef);
+            PUTBACK;
+            return FALSE;
+        }
         PL_eval_start = es;
     }
 
@@ -3934,6 +4234,46 @@ S_require_file(pTHX_ SV *sv)
     if (!(name && len > 0 && *name))
         DIE(aTHX_ "Missing or undefined argument to %s", op_name);
 
+    if (
+        PL_hook__require__before
+        && SvROK(PL_hook__require__before)
+        && SvTYPE(SvRV(PL_hook__require__before)) == SVt_PVCV
+    ) {
+        SV* name_sv = sv_mortalcopy(sv);
+        SV *post_hook__require__before_sv = NULL;
+
+        ENTER_with_name("call_PRE_REQUIRE");
+        SAVETMPS;
+        EXTEND(SP, 1);
+        PUSHMARK(SP);
+        PUSHs(name_sv); /* always use the object for method calls */
+        PUTBACK;
+        int count = call_sv(PL_hook__require__before, G_SCALAR);
+        SPAGAIN;
+        if (count && SvOK(*SP) && SvROK(*SP) && SvTYPE(SvRV(*SP)) == SVt_PVCV)
+            post_hook__require__before_sv = SvREFCNT_inc_simple_NN(*SP);
+        if (!sv_streq(name_sv,sv)) {
+            /* they modified the name argument, so do some sleight of hand */
+            name = SvPV_nomg_const(name_sv, len);
+            if (!(name && len > 0 && *name))
+                DIE(aTHX_ "Missing or undefined argument to %s via %%{^HOOK}{require__before}",
+                        op_name);
+            sv = SvREFCNT_inc_simple_NN(name_sv);
+        }
+        FREETMPS;
+        LEAVE_with_name("call_PRE_REQUIRE");
+        if (post_hook__require__before_sv) {
+            MORTALDESTRUCTOR_SV(post_hook__require__before_sv, newSVsv(sv));
+        }
+    }
+    if (
+        PL_hook__require__after
+        && SvROK(PL_hook__require__after)
+        && SvTYPE(SvRV(PL_hook__require__after)) == SVt_PVCV
+    ) {
+        MORTALDESTRUCTOR_SV(PL_hook__require__after, newSVsv(sv));
+    }
+
 #ifndef VMS
         /* try to return earlier (save the SAFE_PATHNAME check) if INC already got the name */
         if (op_is_require) {
@@ -3996,7 +4336,7 @@ S_require_file(pTHX_ SV *sv)
 
         /*XXX OPf_KIDS should always be true? -dapm 4/2017 */
         if (PL_op->op_flags & OPf_KIDS) {
-            SVOP * const kid = (SVOP*)cUNOP->op_first;
+            SVOP * const kid = cSVOPx(cUNOP->op_first);
 
             if (kid->op_type == OP_CONST && (kid->op_private & OPpCONST_BARE)) {
                 /* Make sure that a bareword module name (e.g. ::Foo::Bar)
@@ -4059,58 +4399,145 @@ S_require_file(pTHX_ SV *sv)
      *
      * For searchable paths, just search @INC normally
      */
+    AV *inc_checked = (AV*)sv_2mortal((SV*)newAV());
     if (!tryrsfp && !(errno == EACCES && !path_searchable)) {
-        AV * const ar = GvAVn(PL_incgv);
-        SSize_t i;
+        SSize_t inc_idx;
 #ifdef VMS
         if (vms_unixname)
 #endif
         {
-            SV *nsv = sv;
+            AV *incdir_av = (AV*)sv_2mortal((SV*)newAV());
+            SV *nsv = sv; /* non const copy we can change if necessary */
             namesv = newSV_type(SVt_PV);
-            for (i = 0; i <= AvFILL(ar); i++) {
-                SV * const dirsv = *av_fetch(ar, i, TRUE);
+            AV *inc_ar = GvAVn(PL_incgv);
+            SSize_t incdir_continue_inc_idx = -1;
+
+            for (
+                inc_idx = 0;
+                (AvFILL(incdir_av)>=0 /* we have INCDIR items pending */
+                    || inc_idx <= AvFILL(inc_ar));  /* @INC entries remain */
+                inc_idx++
+            ) {
+                SV *dirsv;
+
+                /* do we have any pending INCDIR items? */
+                if (AvFILL(incdir_av)>=0) {
+                    /* yep, shift it out */
+                    dirsv = av_shift(incdir_av);
+                    if (AvFILL(incdir_av)<0) {
+                        /* incdir is now empty, continue from where
+                         * we left off after we process this entry  */
+                        inc_idx = incdir_continue_inc_idx;
+                    }
+                } else {
+                    dirsv = *av_fetch(inc_ar, inc_idx, TRUE);
+                }
+
+                if (SvGMAGICAL(dirsv)) {
+                    SvGETMAGIC(dirsv);
+                    dirsv = newSVsv_nomg(dirsv);
+                } else {
+                    /* on the other hand, since we aren't copying we do need
+                     * to increment */
+                    SvREFCNT_inc(dirsv);
+                }
+                if (!SvOK(dirsv))
+                    continue;
+
+                av_push(inc_checked, dirsv);
 
-                SvGETMAGIC(dirsv);
                 if (SvROK(dirsv)) {
                     int count;
                     SV **svp;
                     SV *loader = dirsv;
+                    UV diruv = PTR2UV(SvRV(dirsv));
 
                     if (SvTYPE(SvRV(loader)) == SVt_PVAV
                         && !SvOBJECT(SvRV(loader)))
                     {
                         loader = *av_fetch(MUTABLE_AV(SvRV(loader)), 0, TRUE);
-                        SvGETMAGIC(loader);
+                        if (SvGMAGICAL(loader)) {
+                            SvGETMAGIC(loader);
+                            SV *l = sv_newmortal();
+                            sv_setsv_nomg(l, loader);
+                            loader = l;
+                        }
                     }
 
-                    Perl_sv_setpvf(aTHX_ namesv, "/loader/0x%" UVxf "/%s",
-                                   PTR2UV(SvRV(dirsv)), name);
-                    tryname = SvPVX_const(namesv);
-                    tryrsfp = NULL;
-
                     if (SvPADTMP(nsv)) {
                         nsv = sv_newmortal();
                         SvSetSV_nosteal(nsv,sv);
                     }
 
-                    ENTER_with_name("call_INC");
-                    SAVETMPS;
-                    EXTEND(SP, 2);
+                    const char *method = NULL;
+                    bool is_incdir = FALSE;
+                    SV * inc_idx_sv = save_scalar(PL_incgv);
+                    sv_setiv(inc_idx_sv,inc_idx);
+                    if (sv_isobject(loader)) {
+                        /* if it is an object and it has an INC method, then
+                         * call the method.
+                         */
+                        HV *pkg = SvSTASH(SvRV(loader));
+                        GV * gv = gv_fetchmethod_pvn_flags(pkg, "INC", 3, GV_AUTOLOAD);
+                        if (gv && isGV(gv)) {
+                            method = "INC";
+                        } else {
+                            /* no point to autoload here, it would have been found above */
+                            gv = gv_fetchmethod_pvn_flags(pkg, "INCDIR", 6, 0);
+                            if (gv && isGV(gv)) {
+                                method = "INCDIR";
+                                is_incdir = TRUE;
+                            }
+                        }
+                        /* But if we have no method, check if this is a
+                         * coderef, if it is then we treat it as an
+                         * unblessed coderef would be treated: we
+                         * execute it. If it is some other and it is in
+                         * an array ref wrapper, then really we don't
+                         * know what to do with it, (why use the
+                         * wrapper?) and we throw an exception to help
+                         * debug. If it is not in a wrapper assume it
+                         * has an overload and treat it as a string.
+                         * Maybe in the future we can detect if it does
+                         * have overloading and throw an error if not.
+                         */
+                        if (!method) {
+                            if (SvTYPE(SvRV(loader)) != SVt_PVCV) {
+                                if (amagic_applies(loader,string_amg,AMGf_unary))
+                                    goto treat_as_string;
+                                else {
+                                    croak("Can't locate object method \"INC\", nor"
+                                          " \"INCDIR\" nor string overload via"
+                                          " package %" HvNAMEf_QUOTEDPREFIX " %s"
+                                          " in @INC", pkg,
+                                          dirsv == loader
+                                          ? "in object hook"
+                                          : "in object in ARRAY hook"
+                                    );
+                                }
+                            }
+                        }
+                    }
 
+                    Perl_sv_setpvf(aTHX_ namesv, "/loader/0x%" UVxf "/%s",
+                                   diruv, name);
+                    tryname = SvPVX_const(namesv);
+                    tryrsfp = NULL;
+
+                    ENTER_with_name("call_INC_hook");
+                    SAVETMPS;
+                    EXTEND(SP, 2 + ((method && (loader != dirsv)) ? 1 : 0));
                     PUSHMARK(SP);
-                    PUSHs(dirsv);
+                    PUSHs(method ? loader : dirsv); /* always use the object for method calls */
                     PUSHs(nsv);
+                    if (method && (loader != dirsv)) /* add the args array for method calls */
+                        PUSHs(dirsv);
                     PUTBACK;
-                    if (SvGMAGICAL(loader)) {
-                        SV *l = sv_newmortal();
-                        sv_setsv_nomg(l, loader);
-                        loader = l;
+                    if (method) {
+                        count = call_method(method, G_LIST|G_EVAL);
+                    } else {
+                        count = call_sv(loader, G_LIST|G_EVAL);
                     }
-                    if (sv_isobject(loader))
-                        count = call_method("INC", G_LIST);
-                    else
-                        count = call_sv(loader, G_LIST);
                     SPAGAIN;
 
                     if (count > 0) {
@@ -4118,6 +4545,48 @@ S_require_file(pTHX_ SV *sv)
                         SV *arg;
 
                         SP -= count - 1;
+
+                        if (is_incdir) {
+                            /* push the stringified returned items into the
+                             * incdir_av array for processing immediately
+                             * afterwards. we deliberately stringify or copy
+                             * "special" arguments, so that overload logic for
+                             * instance applies, but so that the end result is
+                             * stable. We speficially do *not* support returning
+                             * coderefs from an INCDIR call. */
+                            while (count-->0) {
+                                arg = SP[i++];
+                                SvGETMAGIC(arg);
+                                if (!SvOK(arg))
+                                    continue;
+                                if (SvROK(arg)) {
+                                    STRLEN l;
+                                    char *pv = SvPV(arg,l);
+                                    arg = newSVpvn(pv,l);
+                                }
+                                else if (SvGMAGICAL(arg)) {
+                                    arg = newSVsv_nomg(arg);
+                                }
+                                else {
+                                    SvREFCNT_inc(arg);
+                                }
+                                av_push(incdir_av, arg);
+                            }
+                            /* We copy $INC into incdir_continue_inc_idx
+                             * so that when we finish processing the items
+                             * we just inserted into incdir_av we can continue
+                             * as though we had just finished executing the INCDIR
+                             * hook. We honour $INC here just like we would for
+                             * an INC hook, the hook might have rewritten @INC
+                             * at the same time as returning something to us.
+                             */
+                            inc_idx_sv = GvSVn(PL_incgv);
+                            incdir_continue_inc_idx = SvOK(inc_idx_sv)
+                                                      ? SvIV(inc_idx_sv) : -1;
+
+                            goto done_hook;
+                        }
+
                         arg = SP[i++];
 
                         if (SvROK(arg) && (SvTYPE(SvRV(arg)) <= SVt_PVLV)
@@ -4166,15 +4635,62 @@ S_require_file(pTHX_ SV *sv)
                             tryrsfp = PerlIO_open(BIT_BUCKET,
                                                   PERL_SCRIPT_MODE);
                         }
+                        done_hook:
                         SP--;
+                    } else {
+                        SV *errsv= ERRSV;
+                        if (SvTRUE(errsv) && !SvROK(errsv)) {
+                            STRLEN l;
+                            char *pv= SvPV(errsv,l);
+                            /* Heuristic to tell if this error message
+                             * includes the standard line number info:
+                             * check if the line ends in digit dot newline.
+                             * If it does then we add some extra info so
+                             * its obvious this is coming from a hook.
+                             * If it is a user generated error we try to
+                             * leave it alone. l>12 is to ensure the
+                             * other checks are in string, but also
+                             * accounts for "at ... line 1.\n" to a
+                             * certain extent. Really we should check
+                             * further, but this is good enough for back
+                             * compat I think.
+                             */
+                            if (l>=12 && pv[l-1] == '\n' && pv[l-2] == '.' && isDIGIT(pv[l-3]))
+                                sv_catpvf(errsv, "%s %s hook died--halting @INC search",
+                                          method ? method : "INC",
+                                          method ? "method" : "sub");
+                            croak_sv(errsv);
+                        }
                     }
 
                     /* FREETMPS may free our filter_cache */
                     SvREFCNT_inc_simple_void(filter_cache);
 
+                    /*
+                     Let the hook override which @INC entry we visit
+                     next by setting $INC to a different value than it
+                     was before we called the hook. If they have
+                     completely rewritten the array they might want us
+                     to start traversing from the beginning, which is
+                     represented by -1. We use undef as an equivalent of
+                     -1. This can't be used as a way to call a hook
+                     twice, as we still dedupe.
+                     We have to do this before we LEAVE, as we localized
+                     $INC before we called the hook.
+                    */
+                    inc_idx_sv = GvSVn(PL_incgv);
+                    inc_idx = SvOK(inc_idx_sv) ? SvIV(inc_idx_sv) : -1;
+
                     PUTBACK;
                     FREETMPS;
-                    LEAVE_with_name("call_INC");
+                    LEAVE_with_name("call_INC_hook");
+
+                    /*
+                     It is possible that @INC has been replaced and that inc_ar
+                     now points at a freed AV. So we have to refresh it from
+                     the GV to be sure.
+                    */
+                    inc_ar = GvAVn(PL_incgv);
 
                     /* Now re-mortalize it. */
                     sv_2mortal(filter_cache);
@@ -4182,8 +4698,24 @@ S_require_file(pTHX_ SV *sv)
                     /* Adjust file name if the hook has set an %INC entry.
                        This needs to happen after the FREETMPS above.  */
                     svp = hv_fetch(GvHVn(PL_incgv), name, len, 0);
-                    if (svp)
-                        tryname = SvPV_nolen_const(*svp);
+                    /* we have to make sure that the value is not undef
+                     * or the empty string, if it is then we should not
+                     * set tryname to it as this will break error messages.
+                     *
+                     * This might happen if an @INC hook evals the module
+                     * which was required in the first place and which
+                     * triggered the @INC hook, and that eval dies.
+                     * See https://github.com/Perl/perl5/issues/20535
+                     */
+                    if (svp && SvOK(*svp)) {
+                        STRLEN len;
+                        const char *tmp_pv = SvPV_const(*svp,len);
+                        /* we also guard against the deliberate empty string.
+                         * We do not guard against '0', if people want to set their
+                         * file name to 0 that is up to them. */
+                        if (len)
+                            tryname = tmp_pv;
+                    }
 
                     if (tryrsfp) {
                         hook_sv = dirsv;
@@ -4201,12 +4733,13 @@ S_require_file(pTHX_ SV *sv)
                         filter_sub = NULL;
                     }
                 }
-                else if (path_searchable) {
+                else
+                    treat_as_string:
+                    if (path_searchable) {
                     /* match against a plain @INC element (non-searchable
                      * paths are only matched against refs in @INC) */
                     const char *dir;
                     STRLEN dirlen;
-
                     if (SvOK(dirsv)) {
                         dir = SvPV_nomg_const(dirsv, dirlen);
                     } else {
@@ -4286,14 +4819,15 @@ S_require_file(pTHX_ SV *sv)
                 DIE(aTHX_ "Can't locate %s:   %s: %s",
                     name, tryname, Strerror(saved_errno));
             } else {
-                if (path_searchable) {		/* did we lookup @INC? */
-                    AV * const ar = GvAVn(PL_incgv);
+                if (path_searchable) {          /* did we lookup @INC? */
                     SSize_t i;
                     SV *const msg = newSVpvs_flags("", SVs_TEMP);
                     SV *const inc = newSVpvs_flags("", SVs_TEMP);
-                    for (i = 0; i <= AvFILL(ar); i++) {
+                    for (i = 0; i <= AvFILL(inc_checked); i++) {
+                        SV **svp= av_fetch(inc_checked, i, TRUE);
+                        if (!svp || !*svp) continue;
                         sv_catpvs(inc, " ");
-                        sv_catsv(inc, *av_fetch(ar, i, TRUE));
+                        sv_catsv(inc, *svp);
                     }
                     if (memENDPs(name, len, ".pm")) {
                         const char *e = name + len - (sizeof(".pm") - 1);
@@ -4347,7 +4881,7 @@ S_require_file(pTHX_ SV *sv)
 
                     /* diag_listed_as: Can't locate %s */
                     DIE(aTHX_
-                        "Can't locate %s in @INC%" SVf " (@INC contains:%" SVf ")",
+                        "Can't locate %s in @INC%" SVf " (@INC entries checked:%" SVf ")",
                         name, msg, inc);
                 }
             }
@@ -4361,7 +4895,7 @@ S_require_file(pTHX_ SV *sv)
             /* the complication is to match the logic from doopen_pm() so
              * we don't treat do "sda1" as a previously successful "do".
             */
-            bool do_warn = namesv && ckWARN_d(WARN_DEPRECATED)
+            bool do_warn = namesv && ckWARN_d(WARN_DEPRECATED__DOT_IN_INC)
                 && PerlLIO_stat(name, &st) == 0 && !S_ISDIR(st.st_mode) && !S_ISBLK(st.st_mode)
                 && (io = PerlIO_openn(aTHX_ ":", PERL_SCRIPT_MODE, -1, 0, 0, NULL, 1, &sv)) != NULL;
             if (io)
@@ -4369,7 +4903,7 @@ S_require_file(pTHX_ SV *sv)
 
             RESTORE_ERRNO;
             if (do_warn) {
-                Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
+                Perl_warner(aTHX_ packWARN(WARN_DEPRECATED__DOT_IN_INC),
                 "do \"%s\" failed, '.' is no longer in @INC; "
                 "did you mean do \"./%s\"?",
                 name, name);
@@ -4389,10 +4923,13 @@ S_require_file(pTHX_ SV *sv)
         (void)hv_store(GvHVn(PL_incgv),
                        unixname, unixlen, newSVpv(tryname,0),0);
     } else {
+        /* store the hook in the sv, note we have to *copy* hook_sv,
+         * we don't want modifications to it to change @INC - see GH #20577
+         */
         SV** const svp = hv_fetch(GvHVn(PL_incgv), unixname, unixlen, 0);
         if (!svp)
             (void)hv_store(GvHVn(PL_incgv),
-                           unixname, unixlen, SvREFCNT_inc_simple(hook_sv), 0 );
+                           unixname, unixlen, newSVsv(hook_sv), 0 );
     }
 
     /* Now parse the file */
@@ -4441,7 +4978,15 @@ S_require_file(pTHX_ SV *sv)
 
 PP(pp_require)
 {
-    RUN_PP_CATCHABLY(Perl_pp_require);
+    /* If a suitable JMPENV catch frame isn't present, call docatch(),
+     * which will:
+     *   - add such a frame, and
+     *   - start a new RUNOPS loop, which will (as the first op to run),
+     *     recursively call this pp function again.
+     * The main body of this function is then executed by the inner call.
+     */
+    if (CATCH_GET)
+        return docatch(Perl_pp_require);
 
     {
         dSP;
@@ -4484,7 +5029,17 @@ PP(pp_entereval)
     bool bytes;
     I32 old_savestack_ix;
 
-    RUN_PP_CATCHABLY(Perl_pp_entereval);
+    /* If a suitable JMPENV catch frame isn't present, call docatch(),
+     * which will:
+     *   - add such a frame, and
+     *   - start a new RUNOPS loop, which will (as the first op to run),
+     *     recursively call this pp function again.
+     * The main body of this function is then executed by the inner call.
+     */
+    if (CATCH_GET)
+        return docatch(Perl_pp_entereval);
+
+    assert(!CATCH_GET);
 
     gimme = GIMME_V;
     was = PL_breakable_sub_gen;
@@ -4542,9 +5097,9 @@ PP(pp_entereval)
 
     if (PERLDB_NAMEEVAL && CopLINE(PL_curcop)) {
         SV * const temp_sv = sv_newmortal();
-        Perl_sv_setpvf(aTHX_ temp_sv, "_<(eval %lu)[%s:%" IVdf "]",
+        Perl_sv_setpvf(aTHX_ temp_sv, "_<(eval %lu)[%s:%" LINE_Tf "]",
                        (unsigned long)++PL_evalseq,
-                       CopFILE(PL_curcop), (IV)CopLINE(PL_curcop));
+                       CopFILE(PL_curcop), CopLINE(PL_curcop));
         tmpbuf = SvPVX(temp_sv);
         len = SvCUR(temp_sv);
     }
@@ -4602,6 +5157,9 @@ PP(pp_entereval)
         } else if (!saved_delete) {
             (void)hv_delete(PL_defstash, tmpbuf, len, G_DISCARD);
         }
+        if (PL_op->op_private & OPpEVAL_EVALSV)
+            /* signal compiletime failure to our eval_sv() caller */
+            *++PL_stack_sp = NULL;
         return PL_op->op_next;
     }
 }
@@ -4616,6 +5174,7 @@ PP(pp_leaveeval)
     PERL_CONTEXT *cx;
     OP *retop;
     int failed;
+    bool override_return = FALSE; /* is feature 'module_true' in effect? */
     CV *evalcv;
     bool keep;
 
@@ -4627,8 +5186,57 @@ PP(pp_leaveeval)
     oldsp = PL_stack_base + cx->blk_oldsp;
     gimme = cx->blk_gimme;
 
-    /* did require return a false value? */
-    failed =    CxOLD_OP_TYPE(cx) == OP_REQUIRE
+    bool is_require= CxOLD_OP_TYPE(cx) == OP_REQUIRE;
+    if (is_require) {
+        /* We are in an require. Check if use feature 'module_true' is enabled,
+         * and if so later on correct any returns from the require. */
+
+        /* we might be called for an OP_LEAVEEVAL or OP_RETURN opcode
+         * and the parse tree will look different for either case.
+         * so find the right op to check later */
+        if (OP_TYPE_IS_OR_WAS(PL_op, OP_RETURN)) {
+            if (PL_op->op_flags & OPf_SPECIAL)
+                override_return = true;
+        }
+        else if ((PL_op->op_flags & OPf_KIDS) && OP_TYPE_IS_OR_WAS(PL_op, OP_LEAVEEVAL)){
+            COP *old_pl_curcop = PL_curcop;
+            OP *check = cUNOPx(PL_op)->op_first;
+
+            /* ok, we found something to check, we need to scan through
+             * it and find the last OP_NEXTSTATE it contains and then read the
+             * feature state out of the COP data it contains.
+             */
+            if (check) {
+                if (!OP_TYPE_IS(check,OP_STUB)) {
+                    const OP *kid = cLISTOPx(check)->op_first;
+                    const OP *last_state = NULL;
+
+                    for (; kid; kid = OpSIBLING(kid)) {
+                        if (
+                               OP_TYPE_IS_OR_WAS(kid, OP_NEXTSTATE)
+                            || OP_TYPE_IS_OR_WAS(kid, OP_DBSTATE)
+                        ){
+                            last_state = kid;
+                        }
+                    }
+                    if (last_state) {
+                        PL_curcop = cCOPx(last_state);
+                        if (FEATURE_MODULE_TRUE_IS_ENABLED) {
+                            override_return = TRUE;
+                        }
+                    } else {
+                        NOT_REACHED; /* NOTREACHED */
+                    }
+                }
+            } else {
+                NOT_REACHED; /* NOTREACHED */
+            }
+            PL_curcop = old_pl_curcop;
+        }
+    }
+
+    /* we might override this later if 'module_true' is enabled */
+    failed =    is_require
              && !(gimme == G_SCALAR
                     ? SvTRUE_NN(*PL_stack_sp)
                     : PL_stack_sp > oldsp);
@@ -4658,6 +5266,19 @@ PP(pp_leaveeval)
 #endif
     CvDEPTH(evalcv) = 0;
 
+    if (override_return) {
+        /* make sure that we use a standard return when feature 'module_load'
+         * is enabled. Returns from require are problematic (consider what happens
+         * when it is called twice) */
+        if (gimme == G_SCALAR) {
+            /* this following is an optimization of POPs()/PUSHs().
+             * and does the same thing with less bookkeeping */
+            *PL_stack_sp = &PL_sv_yes;
+        }
+        assert(gimme == G_VOID || gimme == G_SCALAR);
+        failed = 0;
+    }
+
     /* pop the CXt_EVAL, and if a require failed, croak */
     S_pop_eval_context_maybe_croak(aTHX_ cx, NULL, failed);
 
@@ -4679,7 +5300,15 @@ PP(pp_entertrycatch)
     PERL_CONTEXT *cx;
     const U8 gimme = GIMME_V;
 
-    RUN_PP_CATCHABLY(Perl_pp_entertrycatch);
+    /* If a suitable JMPENV catch frame isn't present, call docatch(),
+     * which will:
+     *   - add such a frame, and
+     *   - start a new RUNOPS loop, which will (as the first op to run),
+     *     recursively call this pp function again.
+     * The main body of this function is then executed by the inner call.
+     */
+    if (CATCH_GET)
+        return docatch(Perl_pp_entertrycatch);
 
     assert(!CATCH_GET);
 
@@ -4760,7 +5389,15 @@ PP(pp_entertry)
 {
     OP *retop = cLOGOP->op_other->op_next;
 
-    RUN_PP_CATCHABLY(Perl_pp_entertry);
+    /* If a suitable JMPENV catch frame isn't present, call docatch(),
+     * which will:
+     *   - add such a frame, and
+     *   - start a new RUNOPS loop, which will (as the first op to run),
+     *     recursively call this pp function again.
+     * The main body of this function is then executed by the inner call.
+     */
+    if (CATCH_GET)
+        return docatch(Perl_pp_entertry);
 
     assert(!CATCH_GET);
 
@@ -4849,7 +5486,7 @@ PP(pp_leavegiven)
 STATIC PMOP *
 S_make_matcher(pTHX_ REGEXP *re)
 {
-    PMOP *matcher = (PMOP *) newPMOP(OP_MATCH, OPf_WANT_SCALAR | OPf_STACKED);
+    PMOP *matcher = cPMOPx(newPMOP(OP_MATCH, OPf_WANT_SCALAR | OPf_STACKED));
 
     PERL_ARGS_ASSERT_MAKE_MATCHER;
 
@@ -5587,9 +6224,9 @@ S_doparseform(pTHX_ SV *sv)
     if (mg) {
         /* still the same as previously-compiled string? */
         SV *old = mg->mg_obj;
-        if ( !(!!SvUTF8(old) ^ !!SvUTF8(sv))
-              && len == SvCUR(old)
-              && strnEQ(SvPVX(old), s, len)
+        if ( ! (cBOOL(SvUTF8(old)) ^ cBOOL(SvUTF8(sv)))
+            && len == SvCUR(old)
+            && strnEQ(SvPVX(old), s, len)
         ) {
             DEBUG_f(PerlIO_printf(Perl_debug_log,"Re-using compiled format\n"));
             return mg;
Index: gnu/usr.bin/perl/pp_hot.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp_hot.c,v
diff -u -p -a -u -p -r1.25 pp_hot.c
--- gnu/usr.bin/perl/pp_hot.c	8 Jul 2023 14:18:35 -0000	1.25
+++ gnu/usr.bin/perl/pp_hot.c	21 Feb 2024 15:47:03 -0000
@@ -58,6 +58,7 @@ PP(pp_nextstate)
 PP(pp_gvsv)
 {
     dSP;
+    assert(SvTYPE(cGVOP_gv) == SVt_PVGV);
     EXTEND(SP,1);
     if (UNLIKELY(PL_op->op_private & OPpLVAL_INTRO))
         PUSHs(save_scalar(cGVOP_gv));
@@ -96,6 +97,9 @@ PP(pp_stringify)
 PP(pp_gv)
 {
     dSP;
+    /* cGVOP_gv might be a real GV or might be an RV to a CV */
+    assert(SvTYPE(cGVOP_gv) == SVt_PVGV ||
+           (SvTYPE(cGVOP_gv) <= SVt_PVMG && SvROK(cGVOP_gv) && SvTYPE(SvRV(cGVOP_gv)) == SVt_PVCV));
     XPUSHs(MUTABLE_SV(cGVOP_gv));
     RETURN;
 }
@@ -123,6 +127,98 @@ PP(pp_and)
     }
 }
 
+/*
+ * Mashup of simple padsv + sassign OPs
+ * Doesn't support the following lengthy and unlikely sassign case:
+ *    (UNLIKELY(PL_op->op_private & OPpASSIGN_CV_TO_GV))
+ *  These cases have a separate optimization, so are not handled here:
+ *    (PL_op->op_private & OPpASSIGN_BACKWARDS) {or,and,dor}assign
+*/
+
+PP(pp_padsv_store)
+{
+    dSP;
+    OP * const op = PL_op;
+    SV** const padentry = &PAD_SVl(op->op_targ);
+    SV* targ = *padentry; /* lvalue to assign into */
+    SV* const val = TOPs; /* RHS value to assign */
+
+    /* !OPf_STACKED is not handled by this OP */
+    assert(op->op_flags & OPf_STACKED);
+
+    /* Inlined, simplified pp_padsv here */
+    if ((op->op_private & (OPpLVAL_INTRO|OPpPAD_STATE)) == OPpLVAL_INTRO) {
+        save_clearsv(padentry);
+    }
+
+    /* Inlined, simplified pp_sassign from here */
+    assert(TAINTING_get || !TAINT_get);
+    if (UNLIKELY(TAINT_get) && !SvTAINTED(val))
+        TAINT_NOT;
+
+    if (
+      UNLIKELY(SvTEMP(targ)) && !SvSMAGICAL(targ) && SvREFCNT(targ) == 1 &&
+      (!isGV_with_GP(targ) || SvFAKE(targ)) && ckWARN(WARN_MISC)
+    )
+        Perl_warner(aTHX_
+            packWARN(WARN_MISC), "Useless assignment to a temporary"
+        );
+    SvSetMagicSV(targ, val);
+
+    SETs(targ);
+    RETURN;
+}
+
+/* A mashup of simplified AELEMFAST_LEX + SASSIGN OPs */
+
+PP(pp_aelemfastlex_store)
+{
+    dSP;
+    OP * const op = PL_op;
+    SV* const val = TOPs; /* RHS value to assign */
+    AV * const av = MUTABLE_AV(PAD_SV(op->op_targ));
+    const I8 key   = (I8)PL_op->op_private;
+    SV * targ = NULL;
+
+    /* !OPf_STACKED is not handled by this OP */
+    assert(op->op_flags & OPf_STACKED);
+
+    /* Inlined, simplified pp_aelemfast here */
+    assert(SvTYPE(av) == SVt_PVAV);
+
+    /* inlined av_fetch() for simple cases ... */
+    if (!SvRMAGICAL(av) && key >=0 && key <= AvFILLp(av)) {
+        targ = AvARRAY(av)[key];
+    }
+    /* ... else do it the hard way */
+    if (!targ) {
+        SV **svp = av_fetch(av, key, 1);
+
+        if (svp)
+            targ = *svp;
+        else
+            DIE(aTHX_ PL_no_aelem, (int)key);
+    }
+
+    /* Inlined, simplified pp_sassign from here */
+    assert(TAINTING_get || !TAINT_get);
+    if (UNLIKELY(TAINT_get) && !SvTAINTED(val))
+        TAINT_NOT;
+
+    /* This assertion is a deviation from pp_sassign, which uses an if()
+     * condition to check for "Useless assignment to a temporary" and
+     * warns if the condition is true. Here, the condition should NEVER
+     * be true when the LHS is the result of an array fetch. The
+     * assertion is here as a final check that this remains the case.
+     */
+    assert(!(SvTEMP(targ) && SvREFCNT(targ) == 1 && !SvSMAGICAL(targ)));
+
+    SvSetMagicSV(targ, val);
+
+    SETs(targ);
+    RETURN;
+}
+
 PP(pp_sassign)
 {
     dSP;
@@ -1638,6 +1734,9 @@ PP(pp_aelemfast)
         if (sv) {
             PUSHs(sv);
             RETURN;
+        } else if (!lval) {
+            PUSHs(&PL_sv_undef);
+            RETURN;
         }
     }
 
@@ -1774,12 +1873,7 @@ PP(pp_print)
 PERL_STATIC_INLINE OP*
 S_padhv_rv2hv_common(pTHX_ HV *hv, U8 gimme, bool is_keys, bool has_targ)
 {
-    bool is_tied;
-    bool is_bool;
-    MAGIC *mg;
     dSP;
-    IV  i;
-    SV *sv;
 
     assert(PL_op->op_type == OP_PADHV || PL_op->op_type == OP_RV2HV);
 
@@ -1795,12 +1889,17 @@ S_padhv_rv2hv_common(pTHX_ HV *hv, U8 gi
     if (gimme == G_VOID)
         return NORMAL;
 
-    is_bool = (     PL_op->op_private & OPpTRUEBOOL
-              || (  PL_op->op_private & OPpMAYBE_TRUEBOOL
-                  && block_gimme() == G_VOID));
-    is_tied = SvRMAGICAL(hv) && (mg = mg_find(MUTABLE_SV(hv), PERL_MAGIC_tied));
-
-    if (UNLIKELY(is_tied)) {
+    bool is_bool = (     PL_op->op_private & OPpTRUEBOOL
+                   || (  PL_op->op_private & OPpMAYBE_TRUEBOOL
+                      && block_gimme() == G_VOID));
+
+    MAGIC *is_tied_mg = SvRMAGICAL(hv)
+                        ? mg_find(MUTABLE_SV(hv), PERL_MAGIC_tied)
+                        : NULL;
+
+    IV  i = 0;
+    SV *sv = NULL;
+    if (UNLIKELY(is_tied_mg)) {
         if (is_keys && !is_bool) {
             i = 0;
             while (hv_iternext(hv))
@@ -1808,7 +1907,7 @@ S_padhv_rv2hv_common(pTHX_ HV *hv, U8 gi
             goto push_i;
         }
         else {
-            sv = magic_scalarpack(hv, mg);
+            sv = magic_scalarpack(hv, is_tied_mg);
             goto push_sv;
         }
     }
@@ -2223,7 +2322,7 @@ PP(pp_aassign)
     SV **relem;
     SV **lelem;
     U8 gimme;
-    /* PL_delaymagic is restored by JUMPENV_POP on dieing, so we
+    /* PL_delaymagic is restored by JMPENV_POP on dieing, so we
      * only need to save locally, not on the save stack */
     U16 old_delaymagic = PL_delaymagic;
 #ifdef DEBUGGING
@@ -3091,7 +3190,7 @@ PP(pp_match)
     if (global && (gimme != G_LIST || (dynpm->op_pmflags & PMf_CONTINUE))) {
         if (!mg)
             mg = sv_magicext_mglob(TARG);
-        MgBYTEPOS_set(mg, TARG, truebase, RXp_OFFS(prog)[0].end);
+        MgBYTEPOS_set(mg, TARG, truebase, RXp_OFFS_END(prog,0));
         if (RXp_ZERO_LEN(prog))
             mg->mg_flags |= MGf_MINMATCH;
         else
@@ -3106,38 +3205,90 @@ PP(pp_match)
     /* push captures on stack */
 
     {
-        const I32 nparens = RXp_NPARENS(prog);
-        I32 i = (global && !nparens) ? 1 : 0;
+        const I32 logical_nparens = RXp_LOGICAL_NPARENS(prog);
+        /* This following statement is *devious* code. If we are in a global
+           match and the pattern has no parens in it we should return $&
+           (offset pair 0). So we set logical_paren to 1 when we should return
+           $&, otherwise we set it to 0.
+
+           This allows us to simply add logical_nparens to logical_paren to
+           compute the number of elements we are going to return.
+
+           In the loop intit we "not" it with: logical_paren = !logical_paren
+           which results in it being 0 inside the loop when we want to return
+           $&, and results in it being 1 when we want to return the parens.
+           Thus we either loop over 1..logical_nparens, or just over 0.
+
+           This is an elegant way to do this code wise, but is super devious
+           and potentially confusing. When I first saw this logic I thought
+           "WTF?". But it makes sense after you poke it a while.
+
+           Frankly I probably would have done it differently, but it works so
+           I am leaving it. - Yves */
+        I32 logical_paren = (global && !logical_nparens) ? 1 : 0;
+        I32 *l2p = RXp_LOGICAL_TO_PARNO(prog);
+        /* this is used to step through the physical parens associated
+         * with a given logical paren. */
+        I32 *p2l_next = RXp_PARNO_TO_LOGICAL_NEXT(prog);
 
         SPAGAIN;			/* EVAL blocks could move the stack. */
-        EXTEND(SP, nparens + i);
-        EXTEND_MORTAL(nparens + i);
-        for (i = !i; i <= nparens; i++) {
-            if (LIKELY((RXp_OFFS(prog)[i].start != -1)
-                     && RXp_OFFS(prog)[i].end   != -1 ))
-            {
-                const I32 len = RXp_OFFS(prog)[i].end - RXp_OFFS(prog)[i].start;
-                const char * const s = RXp_OFFS(prog)[i].start + truebase;
-                if (UNLIKELY(  RXp_OFFS(prog)[i].end   < 0
-                            || RXp_OFFS(prog)[i].start < 0
-                            || len < 0
-                            || len > strend - s)
-                )
-                    DIE(aTHX_ "panic: pp_match start/end pointers, i=%ld, "
-                        "start=%ld, end=%ld, s=%p, strend=%p, len=%" UVuf,
-                        (long) i, (long) RXp_OFFS(prog)[i].start,
-                        (long)RXp_OFFS(prog)[i].end, s, strend, (UV) len);
-                PUSHs(newSVpvn_flags(s, len,
-                    (DO_UTF8(TARG))
-                    ? SVf_UTF8|SVs_TEMP
-                    : SVs_TEMP)
-                );
-            } else {
-                PUSHs(sv_newmortal());
+        EXTEND(SP, logical_nparens + logical_paren);    /* devious code ... */
+        EXTEND_MORTAL(logical_nparens + logical_paren); /* ... see above */
+
+        /* loop over the logical parens in the pattern. This may not
+           correspond to the actual paren checked, as branch reset may
+           mean that there is more than one paren "behind" the logical
+           parens. Eg, in /(?|(a)|(b))/ there are two parens, but one
+           logical paren. */
+        for (logical_paren = !logical_paren;
+             logical_paren <= logical_nparens;
+             logical_paren++)
+        {
+            /* now convert the logical_paren to the physical parens which
+               are "behind" it. If branch reset was not used then
+               physical_paren and logical_paren are the same as each other
+               and we will only perform one iteration of the loop */
+            I32 phys_paren = l2p ? l2p[logical_paren] : logical_paren;
+            SSize_t offs_start, offs_end;
+            /* We check the loop invariants below and break out of the loop
+               explicitly if our checks fail, so we use while (1) here to
+               avoid double testing a conditional. */
+            while (1) {
+                /* Check end offset first, as the start might be >=0 even
+                   though the end is -1, so testing the end first helps
+                   use avoid the start check.  Really we should be able to
+                   get away with ONLY testing the end, but testing both
+                   doesn't hurt much and preserves sanity. */
+                if (((offs_end   = RXp_OFFS_END(prog, phys_paren))   != -1) &&
+                    ((offs_start = RXp_OFFS_START(prog, phys_paren)) != -1))
+                {
+                    const SSize_t len = offs_end - offs_start;
+                    const char * const s = offs_start + truebase;
+                    if ( UNLIKELY( len < 0 || len > strend - s) ) {
+                        DIE(aTHX_ "panic: pp_match start/end pointers, paren=%" I32df ", "
+                            "start=%zd, end=%zd, s=%p, strend=%p, len=%zd",
+                            phys_paren, offs_start, offs_end, s, strend, len);
+                    }
+                    PUSHs(newSVpvn_flags(s, len,
+                        (DO_UTF8(TARG))
+                        ? SVf_UTF8|SVs_TEMP
+                        : SVs_TEMP)
+                    );
+                    break;
+                } else if (!p2l_next || !(phys_paren = p2l_next[phys_paren])) {
+                    /* Either logical_paren and phys_paren are the same and
+                       we won't have a p2l_next, or they aren't the same (and
+                       we do have a p2l_next) but we have exhausted the list
+                       of physical parens associated with this logical paren.
+                       Either way we are done, and we can push undef and break
+                       out of the loop. */
+                    PUSHs(sv_newmortal());
+                    break;
+                }
             }
         }
         if (global) {
-            curpos = (UV)RXp_OFFS(prog)[0].end;
+            curpos = (UV)RXp_OFFS_END(prog,0);
             had_zerolen = RXp_ZERO_LEN(prog);
             PUTBACK;			/* EVAL blocks may use stack */
             r_flags |= REXEC_IGNOREPOS | REXEC_NOT_FIRST;
@@ -3286,14 +3437,19 @@ Perl_do_readline(pTHX)
                 || SNARF_EOF(gimme, PL_rs, io, sv)
                 || PerlIO_error(fp)))
         {
-            PerlIO_clearerr(fp);
             if (IoFLAGS(io) & IOf_ARGV) {
                 fp = nextargv(PL_last_in_gv, PL_op->op_flags & OPf_SPECIAL);
-                if (fp)
+                if (fp) {
                     continue;
+                }
                 (void)do_close(PL_last_in_gv, FALSE);
             }
             else if (type == OP_GLOB) {
+                /* clear any errors here so we only fail on the pclose()
+                   failing, which should only happen on the child
+                   failing
+                */
+                PerlIO_clearerr(fp);
                 if (!do_close(PL_last_in_gv, FALSE)) {
                     Perl_ck_warner(aTHX_ packWARN(WARN_GLOB),
                                    "glob failed (child exited with status %d%s)",
@@ -3390,10 +3546,9 @@ PP(pp_helem)
         MAGIC *mg;
         HV *stash;
 
-        /* If we can determine whether the element exists,
-         * Try to preserve the existenceness of a tied hash
+        /* Try to preserve the existence of a tied hash
          * element by using EXISTS and DELETE if possible.
-         * Fallback to FETCH and STORE otherwise. */
+         * Fall back to FETCH and STORE otherwise. */
         if (SvCANEXISTDELETE(hv))
             preeminent = hv_exists_ent(hv, keysv, 0);
     }
@@ -3476,7 +3631,7 @@ S_softref2xv_lite(pTHX_ SV *const sv, co
  * op_aux points to an array of unions of UV / IV / SV* / PADOFFSET.
  * Each of these either contains a set of actions, or an argument, such as
  * an IV to use as an array index, or a lexical var to retrieve.
- * Several actions re stored per UV; we keep shifting new actions off the
+ * Several actions are stored per UV; we keep shifting new actions off the
  * one UV, and only reload when it becomes zero.
  */
 
@@ -3491,7 +3646,7 @@ PP(pp_multideref)
     PL_multideref_pc = items;
 
     while (1) {
-        /* there are three main classes of action; the first retrieve
+        /* there are three main classes of action; the first retrieves
          * the initial AV or HV from a variable or the stack; the second
          * does the equivalent of an unrolled (/DREFAV, rv2av, aelem),
          * the third an unrolled (/DREFHV, rv2hv, helem).
@@ -3635,10 +3790,9 @@ PP(pp_multideref)
                         MAGIC *mg;
                         HV *stash;
 
-                        /* If we can determine whether the element exist,
-                         * Try to preserve the existenceness of a tied array
+                        /* Try to preserve the existence of a tied array
                          * element by using EXISTS and DELETE if possible.
-                         * Fallback to FETCH and STORE otherwise. */
+                         * Fall back to FETCH and STORE otherwise. */
                         if (SvCANEXISTDELETE(av))
                             preeminent = av_exists(av, elem);
                     }
@@ -3828,10 +3982,9 @@ PP(pp_multideref)
                         MAGIC *mg;
                         HV *stash;
 
-                        /* If we can determine whether the element exist,
-                         * Try to preserve the existenceness of a tied hash
+                        /* Try to preserve the existence of a tied hash
                          * element by using EXISTS and DELETE if possible.
-                         * Fallback to FETCH and STORE otherwise. */
+                         * Fall back to FETCH and STORE otherwise. */
                         if (SvCANEXISTDELETE(hv))
                             preeminent = hv_exists_ent(hv, keysv, 0);
                     }
@@ -3972,7 +4125,7 @@ PP(pp_iter)
                 if (UNLIKELY(pad_it)) {
                     /* We're "beyond the end" of the iterator here, filling the
                        extra lexicals with undef, so we mustn't do anything
-                       (further) to the the iterator itself at this point.
+                       (further) to the iterator itself at this point.
                        (Observe how the other two blocks modify the iterator's
                        value) */
                 }
@@ -4248,7 +4401,6 @@ PP(pp_subst)
     STRLEN len;
     int force_on_match = 0;
     const I32 oldsave = PL_savestack_ix;
-    STRLEN slen;
     bool doutf8 = FALSE; /* whether replacement is in utf8 */
 #ifdef PERL_ANY_COW
     bool was_cow;
@@ -4314,10 +4466,12 @@ PP(pp_subst)
         DIE(aTHX_ "panic: pp_subst, pm=%p, orig=%p", pm, orig);
 
     strend = orig + len;
-    slen = DO_UTF8(TARG) ? utf8_length((U8*)orig, (U8*)strend) : len;
-    maxiters = 2 * slen + 10;	/* We can match twice at each
-                                   position, once with zero-length,
-                                   second time with non-zero. */
+    /* We can match twice at each position, once with zero-length,
+     * second time with non-zero.
+     * Don't handle utf8 specially; we can use length-in-bytes as an
+     * upper bound on length-in-characters, and avoid the cpu-cost of
+     * computing a tighter bound. */
+    maxiters = 2 * len + 10;
 
     /* handle the empty pattern */
     if (!RX_PRELEN(rx) && PL_curpm && !prog->mother_re) {
@@ -4415,8 +4569,8 @@ PP(pp_subst)
             char *d, *m;
             if (RXp_MATCH_TAINTED(prog)) /* run time pattern taint, eg locale */
                 rxtainted |= SUBST_TAINT_PAT;
-            m = orig + RXp_OFFS(prog)[0].start;
-            d = orig + RXp_OFFS(prog)[0].end;
+            m = orig + RXp_OFFS_START(prog,0);
+            d = orig + RXp_OFFS_END(prog,0);
             s = orig;
             if (m - s > strend - d) {  /* faster to shorten from end */
                 I32 i;
@@ -4446,7 +4600,7 @@ PP(pp_subst)
         }
         else {
             char *d, *m;
-            d = s = RXp_OFFS(prog)[0].start + orig;
+            d = s = RXp_OFFS_START(prog,0) + orig;
             do {
                 I32 i;
                 if (UNLIKELY(iters++ > maxiters))
@@ -4454,7 +4608,7 @@ PP(pp_subst)
                 /* run time pattern taint, eg locale */
                 if (UNLIKELY(RXp_MATCH_TAINTED(prog)))
                     rxtainted |= SUBST_TAINT_PAT;
-                m = RXp_OFFS(prog)[0].start + orig;
+                m = RXp_OFFS_START(prog,0) + orig;
                 if ((i = m - s)) {
                     if (s != d)
                         Move(s, d, i, char);
@@ -4464,7 +4618,7 @@ PP(pp_subst)
                     Copy(c, d, clen, char);
                     d += clen;
                 }
-                s = RXp_OFFS(prog)[0].end + orig;
+                s = RXp_OFFS_END(prog,0) + orig;
             } while (CALLREGEXEC(rx, s, strend, orig,
                                  s == m, /* don't match same null twice */
                                  TARG, NULL,
@@ -4507,7 +4661,7 @@ PP(pp_subst)
         if (RXp_MATCH_TAINTED(prog)) /* run time pattern taint, eg locale */
             rxtainted |= SUBST_TAINT_PAT;
         repl = dstr;
-        s = RXp_OFFS(prog)[0].start + orig;
+        s = RXp_OFFS_START(prog,0) + orig;
         dstr = newSVpvn_flags(orig, s-orig,
                     SVs_TEMP | (DO_UTF8(TARG) ? SVf_UTF8 : 0));
         if (!c) {
@@ -4537,9 +4691,9 @@ PP(pp_subst)
                 s = orig + (old_s - old_orig);
                 strend = s + (strend - old_s);
             }
-            m = RXp_OFFS(prog)[0].start + orig;
+            m = RXp_OFFS_START(prog,0) + orig;
             sv_catpvn_nomg_maybeutf8(dstr, s, m - s, DO_UTF8(TARG));
-            s = RXp_OFFS(prog)[0].end + orig;
+            s = RXp_OFFS_END(prog,0) + orig;
             if (first) {
                 /* replacement already stringified */
               if (clen)
@@ -4625,6 +4779,57 @@ PP(pp_subst)
 
 PP(pp_grepwhile)
 {
+    /* Understanding the stack during a grep.
+     *
+     * 'grep expr, args' is implemented in the form of
+     *     grepstart;
+     *     do {
+     *          expr;
+     *          grepwhile;
+     *     } while (args);
+     *
+     * The stack examples below are in the form of 'perl -Ds' output,
+     * where any stack element indexed by PL_markstack_ptr[i] has a star
+     * just to the right of it.  In addition, the corresponding i value
+     * is displayed under the indexed stack element.
+     *
+     * On entry to grepwhile, the stack looks like this:
+     *
+     *      =>   *  M1..Mn  X1  *  X2..Xn  C  *  R1..Rn  BOOL
+     *       [-2]          [-1]           [0]
+     *
+     * where:
+     *   M1..Mn   Accumulated args which have been matched so far.
+     *   X1..Xn   Random discardable elements from previous iterations.
+     *   C        The current (just processed) arg, still aliased to $_.
+     *   R1..Rn   The args remaining to be processed.
+     *   BOOL     the result of the just-executed grep expression.
+     *
+     * Note that it is easiest to think of the top two stack marks as both
+     * being one too high, and so it would make more sense to have had the
+     * marks like this:
+     *
+     *      =>   *  M1..Mn  *  X1..Xn  *  C  R1..Rn  BOOL
+     *      [-2]       [-1]        [0]
+     *
+     * where the stack is divided neatly into 3 groups:
+     *   - matched,
+     *   - discarded,
+     *   - being, or yet to be, processed.
+     * But off-by-one is the way it is currently, and it works as long as
+     * we keep it consistent and bear it in mind.
+     *
+     * pp_grepwhile() does the following:
+     *
+     * - for a match, replace the X1 pointer with a pointer to C and bump
+     *     PL_markstack_ptr[-1]
+     * - if more args to process, bump PL_markstack_ptr[0] and update the
+     *     $_ alias, else
+     * - remove top 3 MARKs and return M1..Mn, or a scalar,
+     *     or void as appropriate.
+     *
+     */
+
     dSP;
     dPOPss;
 
@@ -4756,13 +4961,9 @@ Perl_leave_adjust_stacks(pTHX_ SV **from
             assert(from_sp == SP);
             EXTEND(SP, 1);
             *++SP = &PL_sv_undef;
-            to_sp = SP;
-            nargs   = 0;
-        }
-        else {
-            from_sp = SP;
-            nargs   = 1;
         }
+        from_sp = SP;
+        nargs   = 1;
     }
 
     /* common code for G_SCALAR and G_LIST */
@@ -5048,7 +5249,8 @@ Perl_clear_defarray(pTHX_ AV* av, bool a
     else {
         const SSize_t size = AvFILLp(av) + 1;
         /* The ternary gives consistency with av_extend() */
-        AV *newav = newAV_alloc_x(size < 4 ? 4 : size);
+        AV *newav = newAV_alloc_x(size < PERL_ARRAY_NEW_MIN_KEY ?
+                                         PERL_ARRAY_NEW_MIN_KEY : size);
         AvREIFY_only(newav);
         PAD_SVl(0) = MUTABLE_SV(newav);
         SvREFCNT_dec_NN(av);
@@ -5439,10 +5641,9 @@ PP(pp_aelem)
         MAGIC *mg;
         HV *stash;
 
-        /* If we can determine whether the element exist,
-         * Try to preserve the existenceness of a tied array
+        /* Try to preserve the existence of a tied array
          * element by using EXISTS and DELETE if possible.
-         * Fallback to FETCH and STORE otherwise. */
+         * Fall back to FETCH and STORE otherwise. */
         if (SvCANEXISTDELETE(av))
             preeminent = av_exists(av, elem);
     }
@@ -5658,7 +5859,7 @@ PP(pp_method_named)
 {
     dSP;
     GV* gv;
-    SV* const meth = cMETHOPx_meth(PL_op);
+    SV* const meth = cMETHOP_meth;
     HV* const stash = opmethod_stash(meth);
 
     if (LIKELY(SvTYPE(stash) == SVt_PVHV)) {
@@ -5677,7 +5878,7 @@ PP(pp_method_super)
     dSP;
     GV* gv;
     HV* cache;
-    SV* const meth = cMETHOPx_meth(PL_op);
+    SV* const meth = cMETHOP_meth;
     HV* const stash = CopSTASH(PL_curcop);
     /* Actually, SUPER doesn't need real object's (or class') stash at all,
      * as it uses CopSTASH. However, we must ensure that object(class) is
@@ -5699,12 +5900,12 @@ PP(pp_method_redir)
 {
     dSP;
     GV* gv;
-    SV* const meth = cMETHOPx_meth(PL_op);
-    HV* stash = gv_stashsv(cMETHOPx_rclass(PL_op), 0);
+    SV* const meth = cMETHOP_meth;
+    HV* stash = gv_stashsv(cMETHOP_rclass, 0);
     opmethod_stash(meth); /* not used but needed for error checks */
 
     if (stash) { METHOD_CHECK_CACHE(stash, stash, meth); }
-    else stash = MUTABLE_HV(cMETHOPx_rclass(PL_op));
+    else stash = MUTABLE_HV(cMETHOP_rclass);
 
     gv = gv_fetchmethod_sv_flags(stash, meth, GV_AUTOLOAD|GV_CROAK);
     assert(gv);
@@ -5718,11 +5919,11 @@ PP(pp_method_redir_super)
     dSP;
     GV* gv;
     HV* cache;
-    SV* const meth = cMETHOPx_meth(PL_op);
-    HV* stash = gv_stashsv(cMETHOPx_rclass(PL_op), 0);
+    SV* const meth = cMETHOP_meth;
+    HV* stash = gv_stashsv(cMETHOP_rclass, 0);
     opmethod_stash(meth); /* not used but needed for error checks */
 
-    if (UNLIKELY(!stash)) stash = MUTABLE_HV(cMETHOPx_rclass(PL_op));
+    if (UNLIKELY(!stash)) stash = MUTABLE_HV(cMETHOP_rclass);
     else if ((cache = HvMROMETA(stash)->super)) {
          METHOD_CHECK_CACHE(stash, cache, meth);
     }
Index: gnu/usr.bin/perl/pp_pack.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp_pack.c,v
diff -u -p -a -u -p -r1.8 pp_pack.c
--- gnu/usr.bin/perl/pp_pack.c	15 Feb 2023 01:36:13 -0000	1.8
+++ gnu/usr.bin/perl/pp_pack.c	21 Feb 2024 15:47:03 -0000
@@ -541,22 +541,24 @@ STATIC const char *
 S_group_end(pTHX_ const char *patptr, const char *patend, char ender)
 {
     PERL_ARGS_ASSERT_GROUP_END;
+    Size_t opened = 0;  /* number of pending opened brackets */
 
     while (patptr < patend) {
         const char c = *patptr++;
 
-        if (isSPACE(c))
-            continue;
-        else if (c == ender)
+        if (opened == 0 && c == ender)
             return patptr-1;
         else if (c == '#') {
             while (patptr < patend && *patptr != '\n')
                 patptr++;
             continue;
-        } else if (c == '(')
-            patptr = group_end(patptr, patend, ')') + 1;
-        else if (c == '[')
-            patptr = group_end(patptr, patend, ']') + 1;
+        } else if (c == '(' || c == '[')
+            ++opened;
+        else if (c == ')' || c == ']') {
+            if (opened == 0)
+                Perl_croak(aTHX_ "Mismatched brackets in template");
+            --opened;
+        }
     }
     Perl_croak(aTHX_ "No group ending character '%c' found in template",
                ender);
@@ -937,6 +939,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, co
             const U32 group_modifiers = TYPE_MODIFIERS(datumtype & ~symptr->flags);
             symptr->flags |= group_modifiers;
             symptr->patend = savsym.grpend;
+            /* cppcheck-suppress autoVariables */
             symptr->previous = &savsym;
             symptr->level++;
             PUTBACK;
@@ -2247,6 +2250,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* sym
             symptr->flags |= group_modifiers;
             symptr->patend = savsym.grpend;
             symptr->level++;
+            /* cppcheck-suppress autoVariables */
             symptr->previous = &lookahead;
             while (len--) {
                 U32 was_utf8;
Index: gnu/usr.bin/perl/pp_proto.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp_proto.h,v
diff -u -p -a -u -p -r1.5 pp_proto.h
--- gnu/usr.bin/perl/pp_proto.h	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/pp_proto.h	21 Feb 2024 15:47:03 -0000
@@ -1,317 +1,324 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by opcode.pl from its data.
    Any changes made here will be lost!
  */
 
-PERL_CALLCONV OP *Perl_do_kv(pTHX);
-PERL_CALLCONV OP *Perl_pp_aassign(pTHX);
-PERL_CALLCONV OP *Perl_pp_abs(pTHX);
-PERL_CALLCONV OP *Perl_pp_accept(pTHX);
-PERL_CALLCONV OP *Perl_pp_add(pTHX);
-PERL_CALLCONV OP *Perl_pp_aeach(pTHX);
-PERL_CALLCONV OP *Perl_pp_aelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_aelemfast(pTHX);
-PERL_CALLCONV OP *Perl_pp_akeys(pTHX);
-PERL_CALLCONV OP *Perl_pp_alarm(pTHX);
-PERL_CALLCONV OP *Perl_pp_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_anoncode(pTHX);
-PERL_CALLCONV OP *Perl_pp_anonconst(pTHX);
-PERL_CALLCONV OP *Perl_pp_anonhash(pTHX);
-PERL_CALLCONV OP *Perl_pp_anonlist(pTHX);
-PERL_CALLCONV OP *Perl_pp_argcheck(pTHX);
-PERL_CALLCONV OP *Perl_pp_argdefelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_argelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_aslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_atan2(pTHX);
-PERL_CALLCONV OP *Perl_pp_av2arylen(pTHX);
-PERL_CALLCONV OP *Perl_pp_avhvswitch(pTHX);
-PERL_CALLCONV OP *Perl_pp_backtick(pTHX);
-PERL_CALLCONV OP *Perl_pp_bind(pTHX);
-PERL_CALLCONV OP *Perl_pp_binmode(pTHX);
-PERL_CALLCONV OP *Perl_pp_bit_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_bit_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_bless(pTHX);
-PERL_CALLCONV OP *Perl_pp_blessed(pTHX);
-PERL_CALLCONV OP *Perl_pp_break(pTHX);
-PERL_CALLCONV OP *Perl_pp_caller(pTHX);
-PERL_CALLCONV OP *Perl_pp_catch(pTHX);
-PERL_CALLCONV OP *Perl_pp_ceil(pTHX);
-PERL_CALLCONV OP *Perl_pp_chdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_chop(pTHX);
-PERL_CALLCONV OP *Perl_pp_chown(pTHX);
-PERL_CALLCONV OP *Perl_pp_chr(pTHX);
-PERL_CALLCONV OP *Perl_pp_chroot(pTHX);
-PERL_CALLCONV OP *Perl_pp_clonecv(pTHX);
-PERL_CALLCONV OP *Perl_pp_close(pTHX);
-PERL_CALLCONV OP *Perl_pp_closedir(pTHX);
-PERL_CALLCONV OP *Perl_pp_cmpchain_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_cmpchain_dup(pTHX);
-PERL_CALLCONV OP *Perl_pp_complement(pTHX);
-PERL_CALLCONV OP *Perl_pp_concat(pTHX);
-PERL_CALLCONV OP *Perl_pp_cond_expr(pTHX);
-PERL_CALLCONV OP *Perl_pp_const(pTHX);
-PERL_CALLCONV OP *Perl_pp_continue(pTHX);
-PERL_CALLCONV OP *Perl_pp_coreargs(pTHX);
-PERL_CALLCONV OP *Perl_pp_crypt(pTHX);
-PERL_CALLCONV OP *Perl_pp_dbmopen(pTHX);
-PERL_CALLCONV OP *Perl_pp_dbstate(pTHX);
-PERL_CALLCONV OP *Perl_pp_defined(pTHX);
-PERL_CALLCONV OP *Perl_pp_delete(pTHX);
-PERL_CALLCONV OP *Perl_pp_die(pTHX);
-PERL_CALLCONV OP *Perl_pp_divide(pTHX);
-PERL_CALLCONV OP *Perl_pp_each(pTHX);
-PERL_CALLCONV OP *Perl_pp_ehostent(pTHX);
-PERL_CALLCONV OP *Perl_pp_enter(pTHX);
-PERL_CALLCONV OP *Perl_pp_entereval(pTHX);
-PERL_CALLCONV OP *Perl_pp_entergiven(pTHX);
-PERL_CALLCONV OP *Perl_pp_enteriter(pTHX);
-PERL_CALLCONV OP *Perl_pp_enterloop(pTHX);
-PERL_CALLCONV OP *Perl_pp_entersub(pTHX);
-PERL_CALLCONV OP *Perl_pp_entertry(pTHX);
-PERL_CALLCONV OP *Perl_pp_entertrycatch(pTHX);
-PERL_CALLCONV OP *Perl_pp_enterwhen(pTHX);
-PERL_CALLCONV OP *Perl_pp_enterwrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_eof(pTHX);
-PERL_CALLCONV OP *Perl_pp_eq(pTHX);
-PERL_CALLCONV OP *Perl_pp_exec(pTHX);
-PERL_CALLCONV OP *Perl_pp_exists(pTHX);
-PERL_CALLCONV OP *Perl_pp_exit(pTHX);
-PERL_CALLCONV OP *Perl_pp_fc(pTHX);
-PERL_CALLCONV OP *Perl_pp_fileno(pTHX);
-PERL_CALLCONV OP *Perl_pp_flip(pTHX);
-PERL_CALLCONV OP *Perl_pp_flock(pTHX);
-PERL_CALLCONV OP *Perl_pp_floor(pTHX);
-PERL_CALLCONV OP *Perl_pp_flop(pTHX);
-PERL_CALLCONV OP *Perl_pp_fork(pTHX);
-PERL_CALLCONV OP *Perl_pp_formline(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftis(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftlink(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftrowned(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftrread(pTHX);
-PERL_CALLCONV OP *Perl_pp_fttext(pTHX);
-PERL_CALLCONV OP *Perl_pp_fttty(pTHX);
-PERL_CALLCONV OP *Perl_pp_ge(pTHX);
-PERL_CALLCONV OP *Perl_pp_gelem(pTHX);
-PERL_CALLCONV OP *Perl_pp_getc(pTHX);
-PERL_CALLCONV OP *Perl_pp_getlogin(pTHX);
-PERL_CALLCONV OP *Perl_pp_getpeername(pTHX);
-PERL_CALLCONV OP *Perl_pp_getpgrp(pTHX);
-PERL_CALLCONV OP *Perl_pp_getppid(pTHX);
-PERL_CALLCONV OP *Perl_pp_getpriority(pTHX);
-PERL_CALLCONV OP *Perl_pp_ggrent(pTHX);
-PERL_CALLCONV OP *Perl_pp_ghostent(pTHX);
-PERL_CALLCONV OP *Perl_pp_glob(pTHX);
-PERL_CALLCONV OP *Perl_pp_gmtime(pTHX);
-PERL_CALLCONV OP *Perl_pp_gnetent(pTHX);
-PERL_CALLCONV OP *Perl_pp_goto(pTHX);
-PERL_CALLCONV OP *Perl_pp_gprotoent(pTHX);
-PERL_CALLCONV OP *Perl_pp_gpwent(pTHX);
-PERL_CALLCONV OP *Perl_pp_grepstart(pTHX);
-PERL_CALLCONV OP *Perl_pp_grepwhile(pTHX);
-PERL_CALLCONV OP *Perl_pp_gservent(pTHX);
-PERL_CALLCONV OP *Perl_pp_gt(pTHX);
-PERL_CALLCONV OP *Perl_pp_gv(pTHX);
-PERL_CALLCONV OP *Perl_pp_gvsv(pTHX);
-PERL_CALLCONV OP *Perl_pp_helem(pTHX);
-PERL_CALLCONV OP *Perl_pp_hintseval(pTHX);
-PERL_CALLCONV OP *Perl_pp_hslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_add(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_divide(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_eq(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_ge(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_gt(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_le(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_lt(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_modulo(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_multiply(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_ncmp(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_ne(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_negate(pTHX);
-PERL_CALLCONV OP *Perl_pp_i_subtract(pTHX);
-PERL_CALLCONV OP *Perl_pp_index(pTHX);
-PERL_CALLCONV OP *Perl_pp_int(pTHX);
-PERL_CALLCONV OP *Perl_pp_introcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_ioctl(pTHX);
-PERL_CALLCONV OP *Perl_pp_is_bool(pTHX);
-PERL_CALLCONV OP *Perl_pp_is_weak(pTHX);
-PERL_CALLCONV OP *Perl_pp_isa(pTHX);
-PERL_CALLCONV OP *Perl_pp_iter(pTHX);
-PERL_CALLCONV OP *Perl_pp_join(pTHX);
-PERL_CALLCONV OP *Perl_pp_kvaslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_kvhslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_last(pTHX);
-PERL_CALLCONV OP *Perl_pp_lc(pTHX);
-PERL_CALLCONV OP *Perl_pp_le(pTHX);
-PERL_CALLCONV OP *Perl_pp_leave(pTHX);
-PERL_CALLCONV OP *Perl_pp_leaveeval(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavegiven(pTHX);
-PERL_CALLCONV OP *Perl_pp_leaveloop(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavesub(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavesublv(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavetry(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavetrycatch(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavewhen(pTHX);
-PERL_CALLCONV OP *Perl_pp_leavewrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_left_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_length(pTHX);
-PERL_CALLCONV OP *Perl_pp_link(pTHX);
-PERL_CALLCONV OP *Perl_pp_list(pTHX);
-PERL_CALLCONV OP *Perl_pp_listen(pTHX);
-PERL_CALLCONV OP *Perl_pp_lock(pTHX);
-PERL_CALLCONV OP *Perl_pp_lslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_lt(pTHX);
-PERL_CALLCONV OP *Perl_pp_lvavref(pTHX);
-PERL_CALLCONV OP *Perl_pp_lvref(pTHX);
-PERL_CALLCONV OP *Perl_pp_lvrefslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_mapwhile(pTHX);
-PERL_CALLCONV OP *Perl_pp_match(pTHX);
-PERL_CALLCONV OP *Perl_pp_method(pTHX);
-PERL_CALLCONV OP *Perl_pp_method_named(pTHX);
-PERL_CALLCONV OP *Perl_pp_method_redir(pTHX);
-PERL_CALLCONV OP *Perl_pp_method_redir_super(pTHX);
-PERL_CALLCONV OP *Perl_pp_method_super(pTHX);
-PERL_CALLCONV OP *Perl_pp_mkdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_modulo(pTHX);
-PERL_CALLCONV OP *Perl_pp_multiconcat(pTHX);
-PERL_CALLCONV OP *Perl_pp_multideref(pTHX);
-PERL_CALLCONV OP *Perl_pp_multiply(pTHX);
-PERL_CALLCONV OP *Perl_pp_nbit_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_nbit_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_ncmp(pTHX);
-PERL_CALLCONV OP *Perl_pp_ncomplement(pTHX);
-PERL_CALLCONV OP *Perl_pp_ne(pTHX);
-PERL_CALLCONV OP *Perl_pp_negate(pTHX);
-PERL_CALLCONV OP *Perl_pp_next(pTHX);
-PERL_CALLCONV OP *Perl_pp_nextstate(pTHX);
-PERL_CALLCONV OP *Perl_pp_not(pTHX);
-PERL_CALLCONV OP *Perl_pp_null(pTHX);
-PERL_CALLCONV OP *Perl_pp_oct(pTHX);
-PERL_CALLCONV OP *Perl_pp_once(pTHX);
-PERL_CALLCONV OP *Perl_pp_open(pTHX);
-PERL_CALLCONV OP *Perl_pp_open_dir(pTHX);
-PERL_CALLCONV OP *Perl_pp_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_ord(pTHX);
-PERL_CALLCONV OP *Perl_pp_pack(pTHX);
-PERL_CALLCONV OP *Perl_pp_padav(pTHX);
-PERL_CALLCONV OP *Perl_pp_padcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_padhv(pTHX);
-PERL_CALLCONV OP *Perl_pp_padrange(pTHX);
-PERL_CALLCONV OP *Perl_pp_padsv(pTHX);
-PERL_CALLCONV OP *Perl_pp_pipe_op(pTHX);
-PERL_CALLCONV OP *Perl_pp_poptry(pTHX);
-PERL_CALLCONV OP *Perl_pp_pos(pTHX);
-PERL_CALLCONV OP *Perl_pp_postdec(pTHX);
-PERL_CALLCONV OP *Perl_pp_postinc(pTHX);
-PERL_CALLCONV OP *Perl_pp_pow(pTHX);
-PERL_CALLCONV OP *Perl_pp_predec(pTHX);
-PERL_CALLCONV OP *Perl_pp_preinc(pTHX);
-PERL_CALLCONV OP *Perl_pp_print(pTHX);
-PERL_CALLCONV OP *Perl_pp_prototype(pTHX);
-PERL_CALLCONV OP *Perl_pp_prtf(pTHX);
-PERL_CALLCONV OP *Perl_pp_push(pTHX);
-PERL_CALLCONV OP *Perl_pp_pushdefer(pTHX);
-PERL_CALLCONV OP *Perl_pp_pushmark(pTHX);
-PERL_CALLCONV OP *Perl_pp_qr(pTHX);
-PERL_CALLCONV OP *Perl_pp_quotemeta(pTHX);
-PERL_CALLCONV OP *Perl_pp_rand(pTHX);
-PERL_CALLCONV OP *Perl_pp_range(pTHX);
-PERL_CALLCONV OP *Perl_pp_rcatline(pTHX);
-PERL_CALLCONV OP *Perl_pp_readdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_readline(pTHX);
-PERL_CALLCONV OP *Perl_pp_readlink(pTHX);
-PERL_CALLCONV OP *Perl_pp_redo(pTHX);
-PERL_CALLCONV OP *Perl_pp_ref(pTHX);
-PERL_CALLCONV OP *Perl_pp_refaddr(pTHX);
-PERL_CALLCONV OP *Perl_pp_refassign(pTHX);
-PERL_CALLCONV OP *Perl_pp_refgen(pTHX);
-PERL_CALLCONV OP *Perl_pp_reftype(pTHX);
-PERL_CALLCONV OP *Perl_pp_regcomp(pTHX);
-PERL_CALLCONV OP *Perl_pp_regcreset(pTHX);
-PERL_CALLCONV OP *Perl_pp_rename(pTHX);
-PERL_CALLCONV OP *Perl_pp_repeat(pTHX);
-PERL_CALLCONV OP *Perl_pp_require(pTHX);
-PERL_CALLCONV OP *Perl_pp_reset(pTHX);
-PERL_CALLCONV OP *Perl_pp_return(pTHX);
-PERL_CALLCONV OP *Perl_pp_reverse(pTHX);
-PERL_CALLCONV OP *Perl_pp_rewinddir(pTHX);
-PERL_CALLCONV OP *Perl_pp_right_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_rmdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_runcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_rv2av(pTHX);
-PERL_CALLCONV OP *Perl_pp_rv2cv(pTHX);
-PERL_CALLCONV OP *Perl_pp_rv2gv(pTHX);
-PERL_CALLCONV OP *Perl_pp_rv2sv(pTHX);
-PERL_CALLCONV OP *Perl_pp_sassign(pTHX);
-PERL_CALLCONV OP *Perl_pp_sbit_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_sbit_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_schop(pTHX);
-PERL_CALLCONV OP *Perl_pp_scmp(pTHX);
-PERL_CALLCONV OP *Perl_pp_scomplement(pTHX);
-PERL_CALLCONV OP *Perl_pp_seekdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_select(pTHX);
-PERL_CALLCONV OP *Perl_pp_semctl(pTHX);
-PERL_CALLCONV OP *Perl_pp_semget(pTHX);
-PERL_CALLCONV OP *Perl_pp_seq(pTHX);
-PERL_CALLCONV OP *Perl_pp_setpgrp(pTHX);
-PERL_CALLCONV OP *Perl_pp_setpriority(pTHX);
-PERL_CALLCONV OP *Perl_pp_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_shmwrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_shostent(pTHX);
-PERL_CALLCONV OP *Perl_pp_shutdown(pTHX);
-PERL_CALLCONV OP *Perl_pp_sin(pTHX);
-PERL_CALLCONV OP *Perl_pp_sle(pTHX);
-PERL_CALLCONV OP *Perl_pp_sleep(pTHX);
-PERL_CALLCONV OP *Perl_pp_smartmatch(pTHX);
-PERL_CALLCONV OP *Perl_pp_sne(pTHX);
-PERL_CALLCONV OP *Perl_pp_socket(pTHX);
-PERL_CALLCONV OP *Perl_pp_sockpair(pTHX);
-PERL_CALLCONV OP *Perl_pp_sort(pTHX);
-PERL_CALLCONV OP *Perl_pp_splice(pTHX);
-PERL_CALLCONV OP *Perl_pp_split(pTHX);
-PERL_CALLCONV OP *Perl_pp_sprintf(pTHX);
-PERL_CALLCONV OP *Perl_pp_srand(pTHX);
-PERL_CALLCONV OP *Perl_pp_srefgen(pTHX);
-PERL_CALLCONV OP *Perl_pp_sselect(pTHX);
-PERL_CALLCONV OP *Perl_pp_ssockopt(pTHX);
-PERL_CALLCONV OP *Perl_pp_stat(pTHX);
-PERL_CALLCONV OP *Perl_pp_stringify(pTHX);
-PERL_CALLCONV OP *Perl_pp_stub(pTHX);
-PERL_CALLCONV OP *Perl_pp_study(pTHX);
-PERL_CALLCONV OP *Perl_pp_subst(pTHX);
-PERL_CALLCONV OP *Perl_pp_substcont(pTHX);
-PERL_CALLCONV OP *Perl_pp_substr(pTHX);
-PERL_CALLCONV OP *Perl_pp_subtract(pTHX);
-PERL_CALLCONV OP *Perl_pp_syscall(pTHX);
-PERL_CALLCONV OP *Perl_pp_sysopen(pTHX);
-PERL_CALLCONV OP *Perl_pp_sysread(pTHX);
-PERL_CALLCONV OP *Perl_pp_sysseek(pTHX);
-PERL_CALLCONV OP *Perl_pp_system(pTHX);
-PERL_CALLCONV OP *Perl_pp_syswrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_tell(pTHX);
-PERL_CALLCONV OP *Perl_pp_telldir(pTHX);
-PERL_CALLCONV OP *Perl_pp_tie(pTHX);
-PERL_CALLCONV OP *Perl_pp_tied(pTHX);
-PERL_CALLCONV OP *Perl_pp_time(pTHX);
-PERL_CALLCONV OP *Perl_pp_tms(pTHX);
-PERL_CALLCONV OP *Perl_pp_trans(pTHX);
-PERL_CALLCONV OP *Perl_pp_truncate(pTHX);
-PERL_CALLCONV OP *Perl_pp_uc(pTHX);
-PERL_CALLCONV OP *Perl_pp_ucfirst(pTHX);
-PERL_CALLCONV OP *Perl_pp_umask(pTHX);
-PERL_CALLCONV OP *Perl_pp_undef(pTHX);
-PERL_CALLCONV OP *Perl_pp_unpack(pTHX);
-PERL_CALLCONV OP *Perl_pp_unshift(pTHX);
-PERL_CALLCONV OP *Perl_pp_unstack(pTHX);
-PERL_CALLCONV OP *Perl_pp_untie(pTHX);
-PERL_CALLCONV OP *Perl_pp_unweaken(pTHX);
-PERL_CALLCONV OP *Perl_pp_vec(pTHX);
-PERL_CALLCONV OP *Perl_pp_wait(pTHX);
-PERL_CALLCONV OP *Perl_pp_waitpid(pTHX);
-PERL_CALLCONV OP *Perl_pp_wantarray(pTHX);
-PERL_CALLCONV OP *Perl_pp_warn(pTHX);
-PERL_CALLCONV OP *Perl_pp_weaken(pTHX);
-PERL_CALLCONV OP *Perl_pp_xor(pTHX);
-PERL_CALLCONV OP *Perl_unimplemented_op(pTHX);
+PERL_CALLCONV PP(do_kv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aassign) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_abs) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_accept) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_add) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aeach) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aelemfast) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aelemfastlex_store) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_akeys) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_alarm) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anoncode) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anonconst) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anonhash) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_anonlist) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_argcheck) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_argdefelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_argelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_aslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_atan2) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_av2arylen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_avhvswitch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_backtick) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bind) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_binmode) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bit_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bit_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_bless) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_blessed) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_break) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_caller) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_catch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ceil) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chown) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_chroot) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_clonecv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_close) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_closedir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_cmpchain_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_cmpchain_dup) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_complement) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_concat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_cond_expr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_const) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_continue) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_coreargs) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_crypt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_dbmopen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_dbstate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_defined) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_delete) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_die) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_divide) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_each) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ehostent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_emptyavhv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enter) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entereval) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entergiven) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enteriter) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enterloop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entersub) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entertry) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_entertrycatch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enterwhen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_enterwrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_eof) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_eq) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_exec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_exists) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_exit) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fileno) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_flip) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_flock) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_floor) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_flop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fork) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_formline) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftis) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftlink) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftrowned) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ftrread) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fttext) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_fttty) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ge) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gelem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getlogin) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getpeername) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getpgrp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getppid) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_getpriority) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ggrent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ghostent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_glob) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gmtime) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gnetent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_goto) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gprotoent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gpwent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_grepstart) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_grepwhile) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gservent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_gvsv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_helem) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_helemexistsor) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_hintseval) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_hslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_add) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_divide) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_eq) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_ge) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_gt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_le) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_lt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_modulo) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_multiply) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_ncmp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_ne) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_negate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_i_subtract) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_index) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_initfield) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_int) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_introcv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ioctl) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_is_bool) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_is_tainted) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_is_weak) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_isa) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_iter) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_join) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_kvaslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_kvhslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_last) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_le) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leave) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leaveeval) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavegiven) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leaveloop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavesub) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavesublv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavetry) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavetrycatch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavewhen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_leavewrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_left_shift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_length) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_link) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_list) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_listen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lock) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lvavref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lvref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_lvrefslice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_mapwhile) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_match) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_named) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_redir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_redir_super) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_method_super) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_methstart) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_mkdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_modulo) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_multiconcat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_multideref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_multiply) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_nbit_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_nbit_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ncmp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ncomplement) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ne) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_negate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_next) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_nextstate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_not) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_null) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_oct) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_once) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_open) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_open_dir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ord) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pack) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padav) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padcv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padhv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padrange) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padsv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_padsv_store) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pipe_op) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_poptry) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pos) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_postdec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_postinc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pow) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_predec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_preinc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_print) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_prototype) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_prtf) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_push) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pushdefer) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_pushmark) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_qr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_quotemeta) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rand) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_range) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rcatline) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_readdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_readline) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_readlink) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_redo) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ref) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_refaddr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_refassign) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_refgen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_reftype) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_regcomp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_regcreset) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rename) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_repeat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_require) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_reset) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_return) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_reverse) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rewinddir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_right_shift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rmdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_runcv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2av) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2cv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2gv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_rv2sv) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sassign) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sbit_and) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sbit_or) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_schop) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_scmp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_scomplement) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_seekdir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_select) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_semctl) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_semget) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_seq) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_setpgrp) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_setpriority) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shmwrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shostent) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_shutdown) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sin) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sle) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sleep) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_smartmatch) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sne) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_socket) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sockpair) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sort) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_splice) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_split) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sprintf) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_srand) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_srefgen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sselect) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ssockopt) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_stat) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_stringify) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_stub) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_study) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_subst) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_substcont) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_substr) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_subtract) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_syscall) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sysopen) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sysread) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_sysseek) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_system) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_syswrite) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tell) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_telldir) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tie) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tied) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_time) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_tms) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_trans) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_truncate) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_uc) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_ucfirst) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_umask) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_undef) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unpack) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unshift) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unstack) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_untie) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_unweaken) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_vec) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_wait) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_waitpid) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_wantarray) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_warn) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_weaken) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(pp_xor) __attribute__visibility__("hidden");
+PERL_CALLCONV PP(unimplemented_op) __attribute__visibility__("hidden");
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/pp_sort.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp_sort.c,v
diff -u -p -a -u -p -r1.5 pp_sort.c
--- gnu/usr.bin/perl/pp_sort.c	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/pp_sort.c	21 Feb 2024 15:47:03 -0000
@@ -716,6 +716,24 @@ PP(pp_sort)
 
     ENTER;
     SAVEVPTR(PL_sortcop);
+
+    /* Important flag meanings:
+     *
+     *  OPf_STACKED        sort <function_name> args
+     *
+     * (OPf_STACKED
+     * |OPf_SPECIAL)       sort { <block> } args
+     *
+     *  ----               standard block; e.g. sort { $a <=> $b } args
+     *
+     *
+     *  OPpSORT_NUMERIC    { $a <=> $b } (as opposed to $a cmp $b)
+     *  OPpSORT_INTEGER    ditto in scope of 'use integer'
+     *  OPpSORT_DESCEND    { $b <=> $a }
+     *  OPpSORT_REVERSE    @a= reverse sort ....;
+     *  OPpSORT_INPLACE    @a = sort @a;
+     */
+
     if (flags & OPf_STACKED) {
         if (flags & OPf_SPECIAL) {
             OP *nullop = OpSIBLING(cLISTOP->op_first);  /* pass pushmark */
@@ -888,10 +906,10 @@ PP(pp_sort)
 
                     if (hasargs) {
                         /* This is mostly copied from pp_entersub */
-                        AV * const av = MUTABLE_AV(PAD_SVl(0));
+                        AV * const av0 = MUTABLE_AV(PAD_SVl(0));
 
                         cx->blk_sub.savearray = GvAV(PL_defgv);
-                        GvAV(PL_defgv) = MUTABLE_AV(SvREFCNT_inc_simple(av));
+                        GvAV(PL_defgv) = MUTABLE_AV(SvREFCNT_inc_simple(av0));
                     }
 
                 }
Index: gnu/usr.bin/perl/pp_sys.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pp_sys.c,v
diff -u -p -a -u -p -r1.25 pp_sys.c
--- gnu/usr.bin/perl/pp_sys.c	3 Sep 2023 01:43:09 -0000	1.25
+++ gnu/usr.bin/perl/pp_sys.c	21 Feb 2024 15:47:03 -0000
@@ -60,6 +60,10 @@
 # endif
 #endif
 
+#ifdef I_SYS_SYSCALL
+# include <sys/syscall.h>
+#endif
+
 /* XXX Configure test needed.
    h_errno might not be a simple 'int', especially for multi-threaded
    applications, see "extern int errno in perl.h".  Creating such
@@ -934,7 +938,8 @@ PP(pp_tie)
        stash = gv_stashsv(*MARK, 0);
        if (!stash) {
            if (SvROK(*MARK))
-               DIE(aTHX_ "Can't locate object method \"%s\" via package \"%" SVf "\"",
+               DIE(aTHX_ "Can't locate object method %" PVf_QUOTEDPREFIX
+                         " via package %" SVf_QUOTEDPREFIX,
                    methname, SVfARG(*MARK));
            else if (isGV(*MARK)) {
                /* If the glob doesn't name an existing package, using
@@ -942,15 +947,17 @@ PP(pp_tie)
                 * generate the name for the error message explicitly. */
                SV *stashname = sv_newmortal();
                gv_fullname4(stashname, (GV *) *MARK, NULL, FALSE);
-               DIE(aTHX_ "Can't locate object method \"%s\" via package \"%" SVf "\"",
+               DIE(aTHX_ "Can't locate object method %" PVf_QUOTEDPREFIX
+                         " via package %" SVf_QUOTEDPREFIX,
                    methname, SVfARG(stashname));
            }
            else {
                SV *stashname = !SvPOK(*MARK) ? &PL_sv_no
                              : SvCUR(*MARK)  ? *MARK
                              :                 newSVpvs_flags("main", SVs_TEMP);
-               DIE(aTHX_ "Can't locate object method \"%s\" via package \"%" SVf "\""
-                   " (perhaps you forgot to load \"%" SVf "\"?)",
+               DIE(aTHX_ "Can't locate object method %" PVf_QUOTEDPREFIX
+                         " via package %" SVf_QUOTEDPREFIX
+                   " (perhaps you forgot to load %" SVf_QUOTEDPREFIX "?)",
                    methname, SVfARG(stashname), SVfARG(stashname));
            }
        }
@@ -959,7 +966,8 @@ PP(pp_tie)
             * been deleted from the symbol table, which this one can't
             * be, since we just looked it up by name.
             */
-           DIE(aTHX_ "Can't locate object method \"%s\" via package \"%" HEKf "\"",
+           DIE(aTHX_ "Can't locate object method %" PVf_QUOTEDPREFIX
+                     " via package %" HEKf_QUOTEDPREFIX ,
                methname, HvENAME_HEK_NN(stash));
        }
         ENTER_with_name("call_TIE");
@@ -1167,7 +1175,10 @@ PP(pp_sselect)
                 Perl_croak_no_modify();
         }
         else if (SvIsCOW(sv)) sv_force_normal_flags(sv, 0);
-        if (!SvPOK(sv)) {
+        if (SvPOK(sv)) {
+            if (SvUTF8(sv)) sv_utf8_downgrade(sv, FALSE);
+        }
+        else {
             if (!SvPOKp(sv))
                 Perl_ck_warner(aTHX_ packWARN(WARN_MISC),
                                     "Non-string passed as bitmask");
@@ -1313,6 +1324,10 @@ typeglob.  As C<PL_defoutgv> "owns" a re
 count of the passed in typeglob is increased by one, and the reference count
 of the typeglob that C<PL_defoutgv> points to is decreased by one.
 
+=for apidoc AmnU||PL_defoutgv
+
+See C<L</setdefout>>.
+
 =cut
 */
 
@@ -1339,7 +1354,7 @@ PP(pp_select)
     if (!egv)
         egv = PL_defoutgv;
     hv = isGV_with_GP(egv) ? GvSTASH(egv) : NULL;
-    gvp = hv && HvENAME(hv)
+    gvp = hv && HvHasENAME(hv)
                 ? (GV**)hv_fetch(hv, GvNAME(egv), HEK_UTF8(GvNAME_HEK(egv)) ? -GvNAMELEN(egv) : GvNAMELEN(egv), FALSE)
                 : NULL;
     if (gvp && *gvp == egv) {
@@ -1845,9 +1860,8 @@ PP(pp_sysread)
            reading to:  */
         SvCUR_set(bufsv, offset);
 
-        read_target = sv_newmortal();
-        SvUPGRADE(read_target, SVt_PV);
-        buffer = SvGROW(read_target, (STRLEN)(length + 1));
+        read_target = newSV_type_mortal(SVt_PV);
+        buffer = sv_grow_fresh(read_target, (STRLEN)(length + 1));
     }
 
     if (PL_op->op_type == OP_SYSREAD) {
@@ -2274,7 +2288,8 @@ PP(pp_truncate)
 
         if (PL_op->op_flags & OPf_SPECIAL
                        ? (tmpgv = gv_fetchsv(sv, 0, SVt_PVIO), 1)
-                       : !!(tmpgv = MAYBE_DEREF_GV(sv)) ) {
+                       : cBOOL(tmpgv = MAYBE_DEREF_GV(sv)) )
+        {
             io = GvIO(tmpgv);
             if (!io)
                 result = 0;
@@ -2676,6 +2691,9 @@ PP(pp_shutdown)
     RETPUSHUNDEF;
 }
 
+#ifndef PERL_GETSOCKOPT_SIZE
+#define PERL_GETSOCKOPT_SIZE 1024
+#endif
 
 /* also used for: pp_gsockopt() */
 
@@ -2683,7 +2701,7 @@ PP(pp_ssockopt)
 {
     dSP;
     const int optype = PL_op->op_type;
-    SV * const sv = (optype == OP_GSOCKOPT) ? sv_2mortal(newSV(257)) : POPs;
+    SV * const sv = (optype == OP_GSOCKOPT) ? sv_2mortal(newSV(PERL_GETSOCKOPT_SIZE+1)) : POPs;
     const unsigned int optname = (unsigned int) POPi;
     const unsigned int lvl = (unsigned int) POPi;
     GV * const gv = MUTABLE_GV(POPs);
@@ -2702,14 +2720,14 @@ PP(pp_ssockopt)
         /* Note: there used to be an explicit SvGROW(sv,257) here, but
          * this is redundant given the sv initialization ternary above */
         (void)SvPOK_only(sv);
-        SvCUR_set(sv,256);
+        SvCUR_set(sv, PERL_GETSOCKOPT_SIZE);
         *SvEND(sv) ='\0';
         len = SvCUR(sv);
         if (PerlSock_getsockopt(fd, lvl, optname, SvPVX(sv), &len) < 0)
             goto nuts2;
 #if defined(_AIX)
         /* XXX Configure test: does getsockopt set the length properly? */
-        if (len == 256)
+        if (len == PERL_GETSOCKOPT_SIZE)
             len = sizeof(int);
 #endif
         SvCUR_set(sv, len);
@@ -2720,7 +2738,7 @@ PP(pp_ssockopt)
             const char *buf;
             int aint;
             SvGETMAGIC(sv);
-            if (SvPOKp(sv)) {
+            if (SvPOK(sv) && !SvIsBOOL(sv)) { /* sv is originally a string */
                 STRLEN l;
                 buf = SvPVbyte_nomg(sv, l);
                 len = l;
@@ -2829,7 +2847,8 @@ PP(pp_stat)
     SV* sv;
 
     if (PL_op->op_flags & OPf_REF ? (gv = cGVOP_gv, 1)
-                                  : !!(sv=POPs, gv = MAYBE_DEREF_GV(sv))) {
+                                  : cBOOL((sv=POPs, gv = MAYBE_DEREF_GV(sv))))
+    {
         if (PL_op->op_type == OP_LSTAT) {
             if (gv != PL_defgv) {
             do_fstat_warning_check:
@@ -2837,7 +2856,7 @@ PP(pp_stat)
                                "lstat() on filehandle%s%" SVf,
                                 gv ? " " : "",
                                 SVfARG(gv
-                                        ? sv_2mortal(newSVhek(GvENAME_HEK(gv)))
+                                        ? newSVhek_mortal(GvENAME_HEK(gv))
                                         : &PL_sv_no));
             } else if (PL_laststype != OP_LSTAT)
                 /* diag_listed_as: The stat preceding %s wasn't an lstat */
@@ -2976,7 +2995,13 @@ PP(pp_stat)
             Stat_t s;
             CLANG_DIAG_IGNORE_STMT(-Wtautological-compare);
             GCC_DIAG_IGNORE_STMT(-Wtype-limits);
+#if defined(__HP_cc) || defined(__HP_aCC)
+#pragma diag_suppress 2186
+#endif
             neg = PL_statcache.st_ino < 0;
+#if defined(__HP_cc) || defined(__HP_aCC)
+#pragma diag_default 2186
+#endif
             GCC_DIAG_RESTORE_STMT;
             CLANG_DIAG_RESTORE_STMT;
             if (neg) {
@@ -3098,9 +3123,11 @@ S_ft_return_true(pTHX_ SV *ret) {
 #define FT_RETURNUNDEF	return S_ft_return_false(aTHX_ &PL_sv_undef)
 #define FT_RETURNYES	return S_ft_return_true(aTHX_ &PL_sv_yes)
 
+/* NB: OPf_REF implies '-X _' and thus no arg on the stack */
 #define tryAMAGICftest_MG(chr) STMT_START { \
-        if ( (SvFLAGS(*PL_stack_sp) & (SVf_ROK|SVs_GMG)) \
-                && PL_op->op_flags & OPf_KIDS) {     \
+        if (   !(PL_op->op_flags & OPf_REF)                   \
+            && (SvFLAGS(*PL_stack_sp) & (SVf_ROK|SVs_GMG)))   \
+        {                                                     \
             OP *next = S_try_amagic_ftest(aTHX_ chr);	\
             if (next) return next;			  \
         }						   \
@@ -4225,6 +4252,7 @@ PP(pp_fork)
     sigset_t oldmask, newmask;
 #endif
 
+
     EXTEND(SP, 1);
     PERL_FLUSHALL_FOR_CHILD;
 #ifdef HAS_SIGPROCMASK
@@ -4252,6 +4280,9 @@ PP(pp_fork)
 #ifdef PERL_USES_PL_PIDSTATUS
         hv_clear(PL_pidstatus);	/* no kids, so don't wait for 'em */
 #endif
+        PERL_SRAND_OVERRIDE_NEXT_CHILD();
+    } else {
+        PERL_SRAND_OVERRIDE_NEXT_PARENT();
     }
     PUSHi(childpid);
     RETURN;
@@ -4264,6 +4295,19 @@ PP(pp_fork)
     childpid = PerlProc_fork();
     if (childpid == -1)
         RETPUSHUNDEF;
+    else if (childpid) {
+        /* we are in the parent */
+        PERL_SRAND_OVERRIDE_NEXT_PARENT();
+    }
+    else {
+        /* This is part of the logic supporting the env var
+         * PERL_RAND_SEED which causes use of rand() without an
+         * explicit srand() to use a deterministic seed. This logic is
+         * intended to give most forked children of a process a
+         * deterministic but different srand seed.
+         */
+        PERL_SRAND_OVERRIDE_NEXT_CHILD();
+    }
     PUSHi(childpid);
     RETURN;
 #else
@@ -5494,20 +5538,28 @@ PP(pp_gpwent)
     case OP_GPWNAM:
       {
         const char* const name = POPpbytex;
+        GETPWNAM_LOCK;
         pwent  = getpwnam(name);
+        GETPWNAM_UNLOCK;
       }
       break;
     case OP_GPWUID:
       {
         Uid_t uid = POPi;
+        GETPWUID_LOCK;
         pwent = getpwuid(uid);
+        GETPWUID_UNLOCK;
       }
         break;
     case OP_GPWENT:
 #   ifdef HAS_GETPWENT
         pwent  = getpwent();
 #ifdef POSIX_BC   /* In some cases pw_passwd has invalid addresses */
-        if (pwent) pwent = getpwnam(pwent->pw_name);
+        if (pwent) {
+            GETPWNAM_LOCK;
+            pwent = getpwnam(pwent->pw_name);
+            GETPWNAM_UNLOCK;
+        }
 #endif
 #   else
         DIE(aTHX_ PL_no_func, "getpwent");
@@ -5552,8 +5604,10 @@ PP(pp_gpwent)
          * has a different API than the Solaris/IRIX one. */
 #   if defined(HAS_GETSPNAM) && !defined(_AIX)
         {
+            const struct spwd * spwent;
             dSAVE_ERRNO;
-            const struct spwd * const spwent = getspnam(pwent->pw_name);
+            GETSPNAM_LOCK;
+            spwent = getspnam(pwent->pw_name);
                           /* Save and restore errno so that
                            * underprivileged attempts seem
                            * to have never made the unsuccessful
@@ -5561,6 +5615,7 @@ PP(pp_gpwent)
             RESTORE_ERRNO;
             if (spwent && spwent->sp_pwdp)
                 sv_setpv(sv, spwent->sp_pwdp);
+            GETSPNAM_UNLOCK;
         }
 #   endif
 #   ifdef PWPASSWD
Index: gnu/usr.bin/perl/proto.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/proto.h,v
diff -u -p -a -u -p -r1.30 proto.h
--- gnu/usr.bin/perl/proto.h	8 Jul 2023 14:18:35 -0000	1.30
+++ gnu/usr.bin/perl/proto.h	21 Feb 2024 15:47:03 -0000
@@ -1,7059 +1,10554 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    proto.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- *    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
+ *    2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ *    2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022
+ *    by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
  *
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
- * This file is built by regen/embed.pl from data in embed.fnc,
- * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
+ * This file is built by regen/embed.pl from embed.fnc, intrpvar.h,
+ * perlvars.h, regen/opcodes, regen/embed.pl, regen/embed_lib.pl and
+ * regen/HeaderParser.pm.
  * Any changes made here will be lost!
  *
  * Edit those files and run 'make regen_headers' to effect changes.
  */
 
 START_EXTERN_C
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	ASCII_TO_NEED(const UV enc, const UV ch)
-			__attribute__deprecated__
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_ASCII_TO_NEED
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32 *	Perl_CvDEPTH(const CV * const sv);
-#define PERL_ARGS_ASSERT_CVDEPTH	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE GV *	Perl_CvGV(pTHX_ CV *sv);
-#define PERL_ARGS_ASSERT_CVGV	\
-	assert(sv)
-#endif
-PERL_CALLCONV int	Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing);
-#define PERL_ARGS_ASSERT_GV_AMUPDATE	\
-	assert(stash)
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	NATIVE_TO_NEED(const UV enc, const UV ch)
-			__attribute__deprecated__
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_NATIVE_TO_NEED
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	Perl_POPMARK(pTHX);
-#define PERL_ARGS_ASSERT_POPMARK
-#endif
-PERL_CALLCONV const char *	Perl_PerlIO_context_layers(pTHX_ const char *mode);
+PERL_CALLCONV int
+Perl_Gv_AMupdate(pTHX_ HV *stash, bool destructing);
+#define PERL_ARGS_ASSERT_GV_AMUPDATE            \
+        assert(stash)
+
+PERL_CALLCONV const char *
+Perl_PerlIO_context_layers(pTHX_ const char *mode);
 #define PERL_ARGS_ASSERT_PERLIO_CONTEXT_LAYERS
-PERL_CALLCONV int	Perl_PerlLIO_dup2_cloexec(pTHX_ int oldfd, int newfd);
+
+PERL_CALLCONV int
+Perl_PerlLIO_dup2_cloexec(pTHX_ int oldfd, int newfd)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PERLLIO_DUP2_CLOEXEC
-PERL_CALLCONV int	Perl_PerlLIO_dup_cloexec(pTHX_ int oldfd)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV int
+Perl_PerlLIO_dup_cloexec(pTHX_ int oldfd)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PERLLIO_DUP_CLOEXEC
 
-PERL_CALLCONV int	Perl_PerlLIO_open3_cloexec(pTHX_ const char *file, int flag, int perm)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLLIO_OPEN3_CLOEXEC	\
-	assert(file)
-
-PERL_CALLCONV int	Perl_PerlLIO_open_cloexec(pTHX_ const char *file, int flag)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLLIO_OPEN_CLOEXEC	\
-	assert(file)
-
-/* PERL_CALLCONV const XOP *	Perl_custom_op_xop(pTHX_ const OP *o); */
-#define PERL_ARGS_ASSERT_PERL_CUSTOM_OP_XOP
-PERL_CALLCONV const char*	Perl_setlocale(const int category, const char* locale);
+PERL_CALLCONV int
+Perl_PerlLIO_open3_cloexec(pTHX_ const char *file, int flag, int perm)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PERLLIO_OPEN3_CLOEXEC  \
+        assert(file)
+
+PERL_CALLCONV int
+Perl_PerlLIO_open_cloexec(pTHX_ const char *file, int flag)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PERLLIO_OPEN_CLOEXEC   \
+        assert(file)
+
+/* PERL_CALLCONV const XOP *
+Perl_custom_op_xop(pTHX_ const OP *o); */
+
+PERL_CALLCONV HV *
+Perl_localeconv(pTHX);
+#define PERL_ARGS_ASSERT_PERL_LOCALECONV
+
+PERL_CALLCONV const char *
+Perl_setlocale(const int category, const char *locale);
 #define PERL_ARGS_ASSERT_PERL_SETLOCALE
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE struct regexp *	Perl_ReANY(const REGEXP * const re);
-#define PERL_ARGS_ASSERT_REANY	\
-	assert(re)
-#endif
-PERL_CALLCONV void*	Perl_Slab_Alloc(pTHX_ size_t sz)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV void *
+Perl_Slab_Alloc(pTHX_ size_t sz)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SLAB_ALLOC
 
-PERL_CALLCONV void	Perl_Slab_Free(pTHX_ void *op);
-#define PERL_ARGS_ASSERT_SLAB_FREE	\
-	assert(op)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_SvAMAGIC_off(SV *sv);
-#define PERL_ARGS_ASSERT_SVAMAGIC_OFF	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_SvAMAGIC_on(SV *sv);
-#define PERL_ARGS_ASSERT_SVAMAGIC_ON	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_SvREFCNT_dec(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_DEC
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_SvREFCNT_dec_NN(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_DEC_NN	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV *	Perl_SvREFCNT_inc(SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_INC
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV *	Perl_SvREFCNT_inc_NN(SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_INC_NN	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_SvREFCNT_inc_void(SV *sv);
-#define PERL_ARGS_ASSERT_SVREFCNT_INC_VOID
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_SvTRUE(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVTRUE
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_SvTRUE_NN(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVTRUE_NN	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_SvTRUE_common(pTHX_ SV *sv, const bool sv_2bool_is_fallback);
-#define PERL_ARGS_ASSERT_SVTRUE_COMMON	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_SvTRUE_nomg(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SVTRUE_NOMG
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	Perl_TOPMARK(pTHX);
-#define PERL_ARGS_ASSERT_TOPMARK
-#endif
-PERL_CALLCONV char *	Perl__byte_dump_string(pTHX_ const U8 * const start, const STRLEN len, const bool format);
-#define PERL_ARGS_ASSERT__BYTE_DUMP_STRING	\
-	assert(start)
-PERL_CALLCONV void	Perl__force_out_malformed_utf8_message(pTHX_ const U8 *const p, const U8 * const e, const U32 flags, const bool die_here);
-#define PERL_ARGS_ASSERT__FORCE_OUT_MALFORMED_UTF8_MESSAGE	\
-	assert(p); assert(e)
-PERL_CALLCONV Size_t	Perl__inverse_folds(pTHX_ const UV cp, U32 * first_folds_to, const U32 ** remaining_folds_to)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVERSE_FOLDS	\
-	assert(first_folds_to); assert(remaining_folds_to)
+PERL_CALLCONV void
+Perl_Slab_Free(pTHX_ void *op);
+#define PERL_ARGS_ASSERT_SLAB_FREE              \
+        assert(op)
+
+/* PERL_CALLCONV void
+SvREFCNT_dec_set_NULL(pTHX_ SV *sv); */
+
+PERL_CALLCONV char *
+Perl__byte_dump_string(pTHX_ const U8 * const start, const STRLEN len, const bool format);
+#define PERL_ARGS_ASSERT__BYTE_DUMP_STRING      \
+        assert(start)
+
+PERL_CALLCONV void
+Perl__force_out_malformed_utf8_message(pTHX_ const U8 * const p, const U8 * const e, const U32 flags, const bool die_here);
+#define PERL_ARGS_ASSERT__FORCE_OUT_MALFORMED_UTF8_MESSAGE \
+        assert(p); assert(e)
+
+PERL_CALLCONV Size_t
+Perl__inverse_folds(pTHX_ const UV cp, U32 *first_folds_to, const U32 **remaining_folds_to)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__INVERSE_FOLDS         \
+        assert(first_folds_to); assert(remaining_folds_to)
 
-PERL_CALLCONV bool	Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
+PERL_CALLCONV bool
+Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
 #define PERL_ARGS_ASSERT__IS_IN_LOCALE_CATEGORY
-PERL_CALLCONV bool	Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV bool
+Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT__IS_UNI_FOO
 
-PERL_CALLCONV bool	Perl__is_uni_perl_idcont(pTHX_ UV c)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV bool
+Perl__is_uni_perl_idcont(pTHX_ UV c)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT__IS_UNI_PERL_IDCONT
 
-PERL_CALLCONV bool	Perl__is_uni_perl_idstart(pTHX_ UV c)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV bool
+Perl__is_uni_perl_idstart(pTHX_ UV c)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT__IS_UNI_PERL_IDSTART
 
-PERL_CALLCONV bool	Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p, const U8 * const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_FOO	\
-	assert(p); assert(e)
-
-PERL_CALLCONV bool	Perl__is_utf8_perl_idcont(pTHX_ const U8 *p, const U8 * const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT	\
-	assert(p); assert(e)
-
-PERL_CALLCONV bool	Perl__is_utf8_perl_idstart(pTHX_ const U8 *p, const U8 * const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART	\
-	assert(p); assert(e)
-
-PERL_CALLCONV UV	Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags);
-#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS	\
-	assert(p); assert(lenp)
-PERL_CALLCONV UV	Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, U8 flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS	\
-	assert(p); assert(ustrp)
-PERL_CALLCONV UV	Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS	\
-	assert(p); assert(ustrp)
-PERL_CALLCONV UV	Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS	\
-	assert(p); assert(ustrp)
-PERL_CALLCONV UV	Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, bool flags);
-#define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS	\
-	assert(p); assert(ustrp)
-PERL_CALLCONV UV	Perl__utf8n_to_uvchr_msgs_helper(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors, AV ** msgs);
-#define PERL_ARGS_ASSERT__UTF8N_TO_UVCHR_MSGS_HELPER	\
-	assert(s)
-PERL_CALLCONV void	Perl__warn_problematic_locale(void);
+PERL_CALLCONV bool
+Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p, const U8 * const e)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_FOO           \
+        assert(p); assert(e)
+
+PERL_CALLCONV bool
+Perl__is_utf8_perl_idcont(pTHX_ const U8 *p, const U8 * const e)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT   \
+        assert(p); assert(e)
+
+PERL_CALLCONV bool
+Perl__is_utf8_perl_idstart(pTHX_ const U8 *p, const U8 * const e)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART  \
+        assert(p); assert(e)
+
+PERL_CALLCONV UV
+Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags);
+#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS     \
+        assert(p); assert(lenp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, U8 flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS    \
+        assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS   \
+        assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS   \
+        assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8 *ustrp, STRLEN *lenp, bool flags);
+#define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS   \
+        assert(p); assert(ustrp)
+
+PERL_CALLCONV UV
+Perl__utf8n_to_uvchr_msgs_helper(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors, AV **msgs);
+#define PERL_ARGS_ASSERT__UTF8N_TO_UVCHR_MSGS_HELPER \
+        assert(s)
+
+PERL_CALLCONV void
+Perl__warn_problematic_locale(void);
 #define PERL_ARGS_ASSERT__WARN_PROBLEMATIC_LOCALE
-PERL_CALLCONV_NO_RET void	Perl_abort_execution(pTHX_ const char * const msg, const char * const name)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_ABORT_EXECUTION	\
-	assert(msg); assert(name)
 
-PERL_CALLCONV LOGOP*	Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP *other);
+PERL_CALLCONV_NO_RET void
+Perl_abort_execution(pTHX_ SV *msg_sv, const char * const name)
+        __attribute__noreturn__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_ABORT_EXECUTION        \
+        assert(name)
+
+PERL_CALLCONV LOGOP *
+Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP *other)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_ALLOC_LOGOP
-PERL_CALLCONV PADOFFSET	Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_ALLOCMY	\
-	assert(name)
-PERL_CALLCONV SV*	Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir);
-#define PERL_ARGS_ASSERT_AMAGIC_CALL	\
-	assert(left); assert(right)
-PERL_CALLCONV SV *	Perl_amagic_deref_call(pTHX_ SV *ref, int method);
-#define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL	\
-	assert(ref)
-PERL_CALLCONV bool	Perl_amagic_is_enabled(pTHX_ int method);
+
+PERL_CALLCONV PADOFFSET
+Perl_allocmy(pTHX_ const char * const name, const STRLEN len, const U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_ALLOCMY                \
+        assert(name)
+
+PERL_CALLCONV bool
+Perl_amagic_applies(pTHX_ SV *sv, int method, int flags);
+#define PERL_ARGS_ASSERT_AMAGIC_APPLIES         \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int dir);
+#define PERL_ARGS_ASSERT_AMAGIC_CALL            \
+        assert(left); assert(right)
+
+PERL_CALLCONV SV *
+Perl_amagic_deref_call(pTHX_ SV *ref, int method);
+#define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL      \
+        assert(ref)
+
+PERL_CALLCONV bool
+Perl_amagic_is_enabled(pTHX_ int method)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_AMAGIC_IS_ENABLED
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_append_utf8_from_native_byte(const U8 byte, U8** dest);
-#define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE	\
-	assert(dest)
-#endif
-PERL_CALLCONV I32	Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_APPLY	\
-	assert(mark); assert(sp)
-PERL_CALLCONV void	Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, const char *attrstr, STRLEN len);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS_STRING	\
-	assert(stashpv); assert(cv); assert(attrstr)
-PERL_CALLCONV void	Perl_atfork_lock(void);
+
+PERL_CALLCONV I32
+Perl_apply(pTHX_ I32 type, SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_APPLY                  \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV void
+Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, const char *attrstr, STRLEN len);
+#define PERL_ARGS_ASSERT_APPLY_ATTRS_STRING     \
+        assert(stashpv); assert(cv); assert(attrstr)
+
+PERL_CALLCONV OP *
+Perl_apply_builtin_cv_attributes(pTHX_ CV *cv, OP *attrlist);
+#define PERL_ARGS_ASSERT_APPLY_BUILTIN_CV_ATTRIBUTES \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_atfork_lock(void);
 #define PERL_ARGS_ASSERT_ATFORK_LOCK
-PERL_CALLCONV void	Perl_atfork_unlock(void);
+
+PERL_CALLCONV void
+Perl_atfork_unlock(void);
 #define PERL_ARGS_ASSERT_ATFORK_UNLOCK
-PERL_CALLCONV SV**	Perl_av_arylen_p(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_ARYLEN_P	\
-	assert(av)
-PERL_CALLCONV void	Perl_av_clear(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_CLEAR	\
-	assert(av)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	Perl_av_count(pTHX_ AV *av)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_COUNT	\
-	assert(av)
-#endif
-
-PERL_CALLCONV void	Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val);
-#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH	\
-	assert(avp); assert(val)
-PERL_CALLCONV SV**	Perl_av_create_and_unshift_one(pTHX_ AV **const avp, SV *const val);
-#define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE	\
-	assert(avp); assert(val)
-PERL_CALLCONV SV*	Perl_av_delete(pTHX_ AV *av, SSize_t key, I32 flags);
-#define PERL_ARGS_ASSERT_AV_DELETE	\
-	assert(av)
-PERL_CALLCONV bool	Perl_av_exists(pTHX_ AV *av, SSize_t key)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_EXISTS	\
-	assert(av)
-
-PERL_CALLCONV void	Perl_av_extend(pTHX_ AV *av, SSize_t key);
-#define PERL_ARGS_ASSERT_AV_EXTEND	\
-	assert(av)
-PERL_CALLCONV void	Perl_av_extend_guts(pTHX_ AV *av, SSize_t key, SSize_t *maxp, SV ***allocp, SV ***arrayp);
-#define PERL_ARGS_ASSERT_AV_EXTEND_GUTS	\
-	assert(maxp); assert(allocp); assert(arrayp)
-PERL_CALLCONV SV**	Perl_av_fetch(pTHX_ AV *av, SSize_t key, I32 lval)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_FETCH	\
-	assert(av)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV**	Perl_av_fetch_simple(pTHX_ AV *av, SSize_t key, I32 lval)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_FETCH_SIMPLE	\
-	assert(av)
-#endif
-
-PERL_CALLCONV void	Perl_av_fill(pTHX_ AV *av, SSize_t fill);
-#define PERL_ARGS_ASSERT_AV_FILL	\
-	assert(av)
-PERL_CALLCONV IV*	Perl_av_iter_p(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_ITER_P	\
-	assert(av)
-PERL_CALLCONV SSize_t	Perl_av_len(pTHX_ AV *av)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_LEN	\
-	assert(av)
-
-PERL_CALLCONV AV*	Perl_av_make(pTHX_ SSize_t size, SV **strp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_MAKE	\
-	assert(strp)
-
-PERL_CALLCONV AV*	Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_NEW_ALLOC
-
-PERL_CALLCONV SV*	Perl_av_nonelem(pTHX_ AV *av, SSize_t ix);
-#define PERL_ARGS_ASSERT_AV_NONELEM	\
-	assert(av)
-PERL_CALLCONV SV*	Perl_av_pop(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_POP	\
-	assert(av)
-PERL_CALLCONV void	Perl_av_push(pTHX_ AV *av, SV *val);
-#define PERL_ARGS_ASSERT_AV_PUSH	\
-	assert(av); assert(val)
-PERL_CALLCONV void	Perl_av_reify(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_REIFY	\
-	assert(av)
-PERL_CALLCONV SV*	Perl_av_shift(pTHX_ AV *av)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_SHIFT	\
-	assert(av)
-
-PERL_CALLCONV SV**	Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val);
-#define PERL_ARGS_ASSERT_AV_STORE	\
-	assert(av)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV**	Perl_av_store_simple(pTHX_ AV *av, SSize_t key, SV *val);
-#define PERL_ARGS_ASSERT_AV_STORE_SIMPLE	\
-	assert(av)
-#endif
-/* PERL_CALLCONV SSize_t	av_tindex(pTHX_ AV *av)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_AV_TINDEX
-
-/* PERL_CALLCONV SSize_t	av_top_index(pTHX_ AV *av)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_AV_TOP_INDEX
-
-PERL_CALLCONV void	Perl_av_undef(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_AV_UNDEF	\
-	assert(av)
-PERL_CALLCONV void	Perl_av_unshift(pTHX_ AV *av, SSize_t num);
-#define PERL_ARGS_ASSERT_AV_UNSHIFT	\
-	assert(av)
-PERL_CALLCONV OP*	Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BIND_MATCH	\
-	assert(left); assert(right)
 
-PERL_CALLCONV OP*	Perl_block_end(pTHX_ I32 floor, OP* seq)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV **
+Perl_av_arylen_p(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_ARYLEN_P            \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_clear(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_CLEAR               \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_create_and_push(pTHX_ AV ** const avp, SV * const val);
+#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH     \
+        assert(avp); assert(val)
+
+PERL_CALLCONV SV **
+Perl_av_create_and_unshift_one(pTHX_ AV ** const avp, SV * const val);
+#define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE \
+        assert(avp); assert(val)
+
+PERL_CALLCONV SV *
+Perl_av_delete(pTHX_ AV *av, SSize_t key, I32 flags);
+#define PERL_ARGS_ASSERT_AV_DELETE              \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_dump(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_DUMP
+
+PERL_CALLCONV bool
+Perl_av_exists(pTHX_ AV *av, SSize_t key)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_EXISTS              \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_extend(pTHX_ AV *av, SSize_t key);
+#define PERL_ARGS_ASSERT_AV_EXTEND              \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_extend_guts(pTHX_ AV *av, SSize_t key, SSize_t *maxp, SV ***allocp, SV ***arrayp)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_AV_EXTEND_GUTS         \
+        assert(maxp); assert(allocp); assert(arrayp)
+
+PERL_CALLCONV SV **
+Perl_av_fetch(pTHX_ AV *av, SSize_t key, I32 lval)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_FETCH               \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_fill(pTHX_ AV *av, SSize_t fill);
+#define PERL_ARGS_ASSERT_AV_FILL                \
+        assert(av)
+
+PERL_CALLCONV IV *
+Perl_av_iter_p(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_ITER_P              \
+        assert(av)
+
+PERL_CALLCONV SSize_t
+Perl_av_len(pTHX_ AV *av)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_LEN                 \
+        assert(av)
+
+PERL_CALLCONV AV *
+Perl_av_make(pTHX_ SSize_t size, SV **strp)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_MAKE                \
+        assert(strp)
+
+PERL_CALLCONV SV *
+Perl_av_nonelem(pTHX_ AV *av, SSize_t ix)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_AV_NONELEM             \
+        assert(av)
+
+PERL_CALLCONV SV *
+Perl_av_pop(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_POP                 \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_push(pTHX_ AV *av, SV *val);
+#define PERL_ARGS_ASSERT_AV_PUSH                \
+        assert(av); assert(val)
+
+PERL_CALLCONV void
+Perl_av_reify(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_REIFY               \
+        assert(av)
+
+PERL_CALLCONV SV *
+Perl_av_shift(pTHX_ AV *av)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_SHIFT               \
+        assert(av)
+
+PERL_CALLCONV SV **
+Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val);
+#define PERL_ARGS_ASSERT_AV_STORE               \
+        assert(av)
+
+/* PERL_CALLCONV SSize_t
+av_tindex(pTHX_ AV *av)
+        __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV SSize_t
+av_top_index(pTHX_ AV *av)
+        __attribute__warn_unused_result__; */
+
+PERL_CALLCONV void
+Perl_av_undef(pTHX_ AV *av);
+#define PERL_ARGS_ASSERT_AV_UNDEF               \
+        assert(av)
+
+PERL_CALLCONV void
+Perl_av_unshift(pTHX_ AV *av, SSize_t num);
+#define PERL_ARGS_ASSERT_AV_UNSHIFT             \
+        assert(av)
+
+PERL_CALLCONV OP *
+Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_BIND_MATCH             \
+        assert(left); assert(right)
+
+PERL_CALLCONV OP *
+Perl_block_end(pTHX_ I32 floor, OP *seq)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_BLOCK_END
 
-PERL_CALLCONV U8	Perl_block_gimme(pTHX)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV U8
+Perl_block_gimme(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_BLOCK_GIMME
 
-PERL_CALLCONV int	Perl_block_start(pTHX_ int full)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV int
+Perl_block_start(pTHX_ int full)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_BLOCK_START
 
-PERL_CALLCONV void	Perl_blockhook_register(pTHX_ BHK *hk);
-#define PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER	\
-	assert(hk)
-PERL_CALLCONV void	Perl_boot_core_PerlIO(pTHX);
+PERL_CALLCONV void
+Perl_blockhook_register(pTHX_ BHK *hk);
+#define PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER     \
+        assert(hk)
+
+PERL_CALLCONV void
+Perl_boot_core_PerlIO(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_BOOT_CORE_PERLIO
-PERL_CALLCONV void	Perl_boot_core_UNIVERSAL(pTHX);
+
+PERL_CALLCONV void
+Perl_boot_core_UNIVERSAL(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_BOOT_CORE_UNIVERSAL
-PERL_CALLCONV void	Perl_boot_core_builtin(pTHX);
+
+PERL_CALLCONV void
+Perl_boot_core_builtin(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_BOOT_CORE_BUILTIN
-PERL_CALLCONV void	Perl_boot_core_mro(pTHX);
+
+PERL_CALLCONV void
+Perl_boot_core_mro(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_BOOT_CORE_MRO
-PERL_CALLCONV int	Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen);
-#define PERL_ARGS_ASSERT_BYTES_CMP_UTF8	\
-	assert(b); assert(u)
-PERL_CALLCONV U8*	Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *lenp, bool *is_utf8p);
-#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8	\
-	assert(s); assert(lenp); assert(is_utf8p)
-PERL_CALLCONV U8*	Perl_bytes_from_utf8_loc(const U8 *s, STRLEN *lenp, bool *is_utf8p, const U8 ** first_unconverted);
-#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8_LOC	\
-	assert(s); assert(lenp); assert(is_utf8p)
-PERL_CALLCONV U8*	Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_BYTES_TO_UTF8	\
-	assert(s); assert(lenp)
-PERL_CALLCONV I32	Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv);
-#define PERL_ARGS_ASSERT_CALL_ARGV	\
-	assert(sub_name); assert(argv)
-PERL_CALLCONV void	Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
+
+PERL_CALLCONV OP *
+Perl_build_infix_plugin(pTHX_ OP *lhs, OP *rhs, void *tokendata)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_BUILD_INFIX_PLUGIN     \
+        assert(lhs); assert(rhs); assert(tokendata)
+
+PERL_CALLCONV int
+Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen);
+#define PERL_ARGS_ASSERT_BYTES_CMP_UTF8         \
+        assert(b); assert(u)
+
+PERL_CALLCONV U8 *
+Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *lenp, bool *is_utf8p);
+#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8        \
+        assert(s); assert(lenp); assert(is_utf8p)
+
+PERL_CALLCONV U8 *
+Perl_bytes_from_utf8_loc(const U8 *s, STRLEN *lenp, bool *is_utf8p, const U8 **first_unconverted);
+#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8_LOC    \
+        assert(s); assert(lenp); assert(is_utf8p)
+
+PERL_CALLCONV U8 *
+Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_BYTES_TO_UTF8          \
+        assert(s); assert(lenp)
+
+PERL_CALLCONV I32
+Perl_call_argv(pTHX_ const char *sub_name, I32 flags, char **argv);
+#define PERL_ARGS_ASSERT_CALL_ARGV              \
+        assert(sub_name); assert(argv)
+
+PERL_CALLCONV void
+Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
 #define PERL_ARGS_ASSERT_CALL_ATEXIT
-PERL_CALLCONV void	Perl_call_list(pTHX_ I32 oldscope, AV *paramList);
-#define PERL_ARGS_ASSERT_CALL_LIST	\
-	assert(paramList)
-PERL_CALLCONV I32	Perl_call_method(pTHX_ const char* methname, I32 flags);
-#define PERL_ARGS_ASSERT_CALL_METHOD	\
-	assert(methname)
-PERL_CALLCONV I32	Perl_call_pv(pTHX_ const char* sub_name, I32 flags);
-#define PERL_ARGS_ASSERT_CALL_PV	\
-	assert(sub_name)
-PERL_CALLCONV I32	Perl_call_sv(pTHX_ SV* sv, volatile I32 flags);
-#define PERL_ARGS_ASSERT_CALL_SV	\
-	assert(sv)
-PERL_CALLCONV const PERL_CONTEXT *	Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp);
+
+PERL_CALLCONV void
+Perl_call_list(pTHX_ I32 oldscope, AV *paramList);
+#define PERL_ARGS_ASSERT_CALL_LIST              \
+        assert(paramList)
+
+PERL_CALLCONV I32
+Perl_call_method(pTHX_ const char *methname, I32 flags);
+#define PERL_ARGS_ASSERT_CALL_METHOD            \
+        assert(methname)
+
+PERL_CALLCONV I32
+Perl_call_pv(pTHX_ const char *sub_name, I32 flags);
+#define PERL_ARGS_ASSERT_CALL_PV                \
+        assert(sub_name)
+
+PERL_CALLCONV I32
+Perl_call_sv(pTHX_ SV *sv, volatile I32 flags);
+#define PERL_ARGS_ASSERT_CALL_SV                \
+        assert(sv)
+
+PERL_CALLCONV const PERL_CONTEXT *
+Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp);
 #define PERL_ARGS_ASSERT_CALLER_CX
-PERL_CALLCONV Malloc_t	Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CALLOC
 
-PERL_CALLCONV bool	Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t* statbufp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CANDO	\
-	assert(statbufp)
+PERL_CALLCONV Malloc_t
+Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_CALLOC
 
-PERL_CALLCONV I32	Perl_cast_i32(NV f)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV bool
+Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t *statbufp)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CANDO                  \
+        assert(statbufp)
+
+PERL_CALLCONV I32
+Perl_cast_i32(NV f)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CAST_I32
 
-PERL_CALLCONV IV	Perl_cast_iv(NV f)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV IV
+Perl_cast_iv(NV f)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CAST_IV
 
-PERL_CALLCONV U32	Perl_cast_ulong(NV f)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV U32
+Perl_cast_ulong(NV f)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CAST_ULONG
 
-PERL_CALLCONV UV	Perl_cast_uv(NV f)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV UV
+Perl_cast_uv(NV f)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CAST_UV
 
-PERL_CALLCONV bool	Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len);
-#define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT	\
-	assert(s)
-PERL_CALLCONV OP *	Perl_ck_anoncode(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_ANONCODE	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_backtick(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_BACKTICK	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_bitop(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_BITOP	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_cmp(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_CMP	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_concat(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_CONCAT	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_defined(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_DEFINED	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_delete(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_DELETE	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_each(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EACH	\
-	assert(o)
-
-PERL_CALLCONV OP*	Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE	\
-	assert(entersubop); assert(namegv); assert(protosv)
-PERL_CALLCONV OP*	Perl_ck_entersub_args_list(pTHX_ OP *entersubop);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST	\
-	assert(entersubop)
-PERL_CALLCONV OP*	Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO	\
-	assert(entersubop); assert(namegv); assert(protosv)
-PERL_CALLCONV OP*	Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
-#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST	\
-	assert(entersubop); assert(namegv); assert(protosv)
-PERL_CALLCONV OP *	Perl_ck_eof(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EOF	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_eval(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EVAL	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_exec(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EXEC	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_exists(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_EXISTS	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_ftst(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_FTST	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_fun(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_FUN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_glob(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_GLOB	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_grep(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_GREP	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_index(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_INDEX	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_isa(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_ISA	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_join(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_JOIN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_length(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_LENGTH	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_lfun(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_LFUN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_listiob(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_LISTIOB	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_match(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_MATCH	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_method(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_METHOD	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_null(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_NULL	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_open(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_OPEN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_prototype(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_PROTOTYPE	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_readline(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_READLINE	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_refassign(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_REFASSIGN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_repeat(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_REPEAT	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_require(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_REQUIRE	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_return(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_RETURN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_rfun(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_RFUN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_rvconst(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_RVCONST	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_sassign(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SASSIGN	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_select(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SELECT	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_shift(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SHIFT	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_smartmatch(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SMARTMATCH	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_sort(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SORT	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_spair(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SPAIR	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_split(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SPLIT	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_stringify(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_STRINGIFY	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_subr(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SUBR	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_substr(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SUBSTR	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_svconst(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_SVCONST	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_tell(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_TELL	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_trunc(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_TRUNC	\
-	assert(o)
-
-PERL_CALLCONV OP *	Perl_ck_trycatch(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CK_TRYCATCH	\
-	assert(o)
-
-PERL_CALLCONV void	Perl_ck_warner(pTHX_ U32 err, const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_CK_WARNER	\
-	assert(pat)
-
-PERL_CALLCONV void	Perl_ck_warner_d(pTHX_ U32 err, const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_CK_WARNER_D	\
-	assert(pat)
-
-PERL_CALLCONV bool	Perl_ckwarn(pTHX_ U32 w)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV bool
+Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT       \
+        assert(s)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_core(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE  \
+        assert(entersubop); assert(namegv); assert(protosv)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_list(pTHX_ OP *entersubop);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST  \
+        assert(entersubop)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO \
+        assert(entersubop); assert(namegv); assert(protosv)
+
+PERL_CALLCONV OP *
+Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop, GV *namegv, SV *protosv);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST \
+        assert(entersubop); assert(namegv); assert(protosv)
+
+PERL_CALLCONV void
+Perl_ck_warner(pTHX_ U32 err, const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_CK_WARNER              \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_ck_warner_d(pTHX_ U32 err, const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_CK_WARNER_D            \
+        assert(pat)
+
+PERL_CALLCONV bool
+Perl_ckwarn(pTHX_ U32 w)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
 #define PERL_ARGS_ASSERT_CKWARN
 
-PERL_CALLCONV bool	Perl_ckwarn_d(pTHX_ U32 w)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV bool
+Perl_ckwarn_d(pTHX_ U32 w)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
 #define PERL_ARGS_ASSERT_CKWARN_D
 
-PERL_CALLCONV void	Perl_clear_defarray(pTHX_ AV* av, bool abandon);
-#define PERL_ARGS_ASSERT_CLEAR_DEFARRAY	\
-	assert(av)
-PERL_CALLCONV const COP*	Perl_closest_cop(pTHX_ const COP *cop, const OP *o, const OP *curop, bool opnext);
-#define PERL_ARGS_ASSERT_CLOSEST_COP	\
-	assert(cop)
-PERL_CALLCONV OP*	Perl_cmpchain_extend(pTHX_ I32 type, OP* ch, OP* right)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CMPCHAIN_EXTEND	\
-	assert(ch)
-
-PERL_CALLCONV OP*	Perl_cmpchain_finish(pTHX_ OP* ch)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CMPCHAIN_FINISH	\
-	assert(ch)
-
-PERL_CALLCONV OP*	Perl_cmpchain_start(pTHX_ I32 type, OP* left, OP* right)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_clear_defarray(pTHX_ AV *av, bool abandon);
+#define PERL_ARGS_ASSERT_CLEAR_DEFARRAY         \
+        assert(av)
+
+PERL_CALLCONV const COP *
+Perl_closest_cop(pTHX_ const COP *cop, const OP *o, const OP *curop, bool opnext)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CLOSEST_COP            \
+        assert(cop)
+
+PERL_CALLCONV OP *
+Perl_cmpchain_extend(pTHX_ I32 type, OP *ch, OP *right)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CMPCHAIN_EXTEND        \
+        assert(ch)
+
+PERL_CALLCONV OP *
+Perl_cmpchain_finish(pTHX_ OP *ch)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CMPCHAIN_FINISH        \
+        assert(ch)
+
+PERL_CALLCONV OP *
+Perl_cmpchain_start(pTHX_ I32 type, OP *left, OP *right)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_CMPCHAIN_START
 
-PERL_CALLCONV const char *	Perl_cntrl_to_mnemonic(const U8 c)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV const char *
+Perl_cntrl_to_mnemonic(const U8 c)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CNTRL_TO_MNEMONIC
 
-PERL_CALLCONV const char *	Perl_cop_fetch_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags);
-#define PERL_ARGS_ASSERT_COP_FETCH_LABEL	\
-	assert(cop)
-PERL_CALLCONV void	Perl_cop_store_label(pTHX_ COP *const cop, const char *label, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_COP_STORE_LABEL	\
-	assert(cop); assert(label)
-PERL_CALLCONV SV *	Perl_core_prototype(pTHX_ SV *sv, const char *name, const int code, int * const opnum);
-#define PERL_ARGS_ASSERT_CORE_PROTOTYPE	\
-	assert(name)
-PERL_CALLCONV OP *	Perl_coresub_op(pTHX_ SV *const coreargssv, const int code, const int opnum);
-#define PERL_ARGS_ASSERT_CORESUB_OP	\
-	assert(coreargssv)
-PERL_CALLCONV void	Perl_create_eval_scope(pTHX_ OP *retop, U32 flags);
+PERL_CALLCONV const char *
+Perl_cop_fetch_label(pTHX_ COP * const cop, STRLEN *len, U32 *flags);
+#define PERL_ARGS_ASSERT_COP_FETCH_LABEL        \
+        assert(cop)
+
+PERL_CALLCONV void
+Perl_cop_store_label(pTHX_ COP * const cop, const char *label, STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_COP_STORE_LABEL        \
+        assert(cop); assert(label)
+
+PERL_CALLCONV SV *
+Perl_core_prototype(pTHX_ SV *sv, const char *name, const int code, int * const opnum)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CORE_PROTOTYPE         \
+        assert(name)
+
+PERL_CALLCONV OP *
+Perl_coresub_op(pTHX_ SV * const coreargssv, const int code, const int opnum)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CORESUB_OP             \
+        assert(coreargssv)
+
+PERL_CALLCONV void
+Perl_create_eval_scope(pTHX_ OP *retop, U32 flags)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_CREATE_EVAL_SCOPE
-PERL_CALLCONV_NO_RET void	Perl_croak(pTHX_ const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+
+PERL_CALLCONV_NO_RET void
+Perl_croak(pTHX_ const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
 #define PERL_ARGS_ASSERT_CROAK
 
-PERL_CALLCONV_NO_RET void	Perl_croak_caller(const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__null_ok__(__printf__,1,2);
+PERL_CALLCONV_NO_RET void
+Perl_croak_caller(const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__visibility__("hidden")
+        __attribute__format__null_ok__(__printf__,1,2);
 #define PERL_ARGS_ASSERT_CROAK_CALLER
 
-PERL_CALLCONV_NO_RET void	Perl_croak_memory_wrap(void)
-			__attribute__noreturn__;
+PERL_STATIC_NO_RET void
+Perl_croak_memory_wrap(void)
+        __attribute__noreturn__;
 #define PERL_ARGS_ASSERT_CROAK_MEMORY_WRAP
 
-PERL_CALLCONV_NO_RET void	Perl_croak_no_mem(void)
-			__attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_croak_no_mem(void)
+        __attribute__noreturn__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_CROAK_NO_MEM
 
-PERL_CALLCONV_NO_RET void	Perl_croak_no_modify(void)
-			__attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_croak_no_modify(void)
+        __attribute__noreturn__;
 #define PERL_ARGS_ASSERT_CROAK_NO_MODIFY
 
-PERL_CALLCONV_NO_RET void	Perl_croak_popstack(void)
-			__attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_croak_popstack(void)
+        __attribute__noreturn__;
 #define PERL_ARGS_ASSERT_CROAK_POPSTACK
 
-PERL_CALLCONV_NO_RET void	Perl_croak_sv(pTHX_ SV *baseex)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_CROAK_SV	\
-	assert(baseex)
-
-PERL_CALLCONV_NO_RET void	Perl_croak_xs_usage(const CV *const cv, const char *const params)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_CROAK_XS_USAGE	\
-	assert(cv); assert(params)
+PERL_CALLCONV_NO_RET void
+Perl_croak_sv(pTHX_ SV *baseex)
+        __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_CROAK_SV               \
+        assert(baseex)
+
+PERL_CALLCONV_NO_RET void
+Perl_croak_xs_usage(const CV * const cv, const char * const params)
+        __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_CROAK_XS_USAGE         \
+        assert(cv); assert(params)
 
-PERL_CALLCONV Signal_t	Perl_csighandler1(int sig);
+PERL_CALLCONV Signal_t
+Perl_csighandler1(int sig);
 #define PERL_ARGS_ASSERT_CSIGHANDLER1
-PERL_CALLCONV Signal_t	Perl_csighandler3(int sig, Siginfo_t *info, void *uap);
+
+PERL_CALLCONV Signal_t
+Perl_csighandler3(int sig, Siginfo_t *info, void *uap);
 #define PERL_ARGS_ASSERT_CSIGHANDLER3
-PERL_CALLCONV regexp_engine const *	Perl_current_re_engine(pTHX);
+
+PERL_CALLCONV regexp_engine const *
+Perl_current_re_engine(pTHX);
 #define PERL_ARGS_ASSERT_CURRENT_RE_ENGINE
-#ifndef NO_MATHOMS
-PERL_CALLCONV const char *	Perl_custom_op_desc(pTHX_ const OP *o)
-			__attribute__deprecated__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CUSTOM_OP_DESC	\
-	assert(o)
-#endif
-
-PERL_CALLCONV XOPRETANY	Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD	\
-	assert(o)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV const char *	Perl_custom_op_name(pTHX_ const OP *o)
-			__attribute__deprecated__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CUSTOM_OP_NAME	\
-	assert(o)
-#endif
-
-PERL_CALLCONV void	Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop);
-#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER	\
-	assert(ppaddr); assert(xop)
-PERL_CALLCONV void	Perl_cv_ckproto_len_flags(pTHX_ const CV* cv, const GV* gv, const char* p, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS	\
-	assert(cv)
-PERL_CALLCONV CV*	Perl_cv_clone(pTHX_ CV* proto);
-#define PERL_ARGS_ASSERT_CV_CLONE	\
-	assert(proto)
-PERL_CALLCONV CV*	Perl_cv_clone_into(pTHX_ CV* proto, CV *target);
-#define PERL_ARGS_ASSERT_CV_CLONE_INTO	\
-	assert(proto); assert(target)
-PERL_CALLCONV SV*	Perl_cv_const_sv(const CV *const cv)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV XOPRETANY
+Perl_custom_op_get_field(pTHX_ const OP *o, const xop_flags_enum field)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD    \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop);
+#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER     \
+        assert(ppaddr); assert(xop)
+
+PERL_CALLCONV void
+Perl_cv_ckproto_len_flags(pTHX_ const CV *cv, const GV *gv, const char *p, const STRLEN len, const U32 flags);
+#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS   \
+        assert(cv)
+
+PERL_CALLCONV CV *
+Perl_cv_clone(pTHX_ CV *proto);
+#define PERL_ARGS_ASSERT_CV_CLONE               \
+        assert(proto)
+
+PERL_CALLCONV CV *
+Perl_cv_clone_into(pTHX_ CV *proto, CV *target)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CV_CLONE_INTO          \
+        assert(proto); assert(target)
+
+PERL_CALLCONV SV *
+Perl_cv_const_sv(const CV * const cv)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CV_CONST_SV
 
-PERL_CALLCONV SV*	Perl_cv_const_sv_or_av(const CV *const cv)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_cv_const_sv_or_av(const CV * const cv)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_CV_CONST_SV_OR_AV
 
-PERL_CALLCONV void	Perl_cv_forget_slab(pTHX_ CV *cv);
+PERL_CALLCONV void
+Perl_cv_forget_slab(pTHX_ CV *cv)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_CV_FORGET_SLAB
-PERL_CALLCONV void	Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p);
-#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER	\
-	assert(cv); assert(ckfun_p); assert(ckobj_p)
-PERL_CALLCONV void	Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags, Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p);
-#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS	\
-	assert(cv); assert(ckfun_p); assert(ckobj_p); assert(ckflags_p)
-PERL_CALLCONV SV *	Perl_cv_name(pTHX_ CV *cv, SV *sv, U32 flags);
-#define PERL_ARGS_ASSERT_CV_NAME	\
-	assert(cv)
-PERL_CALLCONV void	Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj);
-#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER	\
-	assert(cv); assert(ckfun); assert(ckobj)
-PERL_CALLCONV void	Perl_cv_set_call_checker_flags(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj, U32 ckflags);
-#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS	\
-	assert(cv); assert(ckfun); assert(ckobj)
-PERL_CALLCONV void	Perl_cv_undef(pTHX_ CV* cv);
-#define PERL_ARGS_ASSERT_CV_UNDEF	\
-	assert(cv)
-PERL_CALLCONV void	Perl_cv_undef_flags(pTHX_ CV* cv, U32 flags);
-#define PERL_ARGS_ASSERT_CV_UNDEF_FLAGS	\
-	assert(cv)
-PERL_CALLCONV GV *	Perl_cvgv_from_hek(pTHX_ CV* cv);
-#define PERL_ARGS_ASSERT_CVGV_FROM_HEK	\
-	assert(cv)
-PERL_CALLCONV void	Perl_cvgv_set(pTHX_ CV* cv, GV* gv);
-#define PERL_ARGS_ASSERT_CVGV_SET	\
-	assert(cv)
-PERL_CALLCONV void	Perl_cvstash_set(pTHX_ CV* cv, HV* stash);
-#define PERL_ARGS_ASSERT_CVSTASH_SET	\
-	assert(cv)
-PERL_CALLCONV void	Perl_cx_dump(pTHX_ PERL_CONTEXT* cx);
-#define PERL_ARGS_ASSERT_CX_DUMP	\
-	assert(cx)
-PERL_CALLCONV I32	Perl_cxinc(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CXINC
 
-PERL_CALLCONV void	Perl_deb(pTHX_ const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_DEB	\
-	assert(pat)
+PERL_CALLCONV void
+Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p);
+#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER    \
+        assert(cv); assert(ckfun_p); assert(ckobj_p)
+
+PERL_CALLCONV void
+Perl_cv_get_call_checker_flags(pTHX_ CV *cv, U32 gflags, Perl_call_checker *ckfun_p, SV **ckobj_p, U32 *ckflags_p);
+#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER_FLAGS \
+        assert(cv); assert(ckfun_p); assert(ckobj_p); assert(ckflags_p)
+
+PERL_CALLCONV SV *
+Perl_cv_name(pTHX_ CV *cv, SV *sv, U32 flags);
+#define PERL_ARGS_ASSERT_CV_NAME                \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj);
+#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER    \
+        assert(cv); assert(ckfun); assert(ckobj)
+
+PERL_CALLCONV void
+Perl_cv_set_call_checker_flags(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj, U32 ckflags);
+#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS \
+        assert(cv); assert(ckfun); assert(ckobj)
+
+PERL_CALLCONV void
+Perl_cv_undef(pTHX_ CV *cv);
+#define PERL_ARGS_ASSERT_CV_UNDEF               \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_cv_undef_flags(pTHX_ CV *cv, U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_CV_UNDEF_FLAGS         \
+        assert(cv)
+
+PERL_CALLCONV GV *
+Perl_cvgv_from_hek(pTHX_ CV *cv);
+#define PERL_ARGS_ASSERT_CVGV_FROM_HEK          \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_cvgv_set(pTHX_ CV *cv, GV *gv);
+#define PERL_ARGS_ASSERT_CVGV_SET               \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_cvstash_set(pTHX_ CV *cv, HV *stash);
+#define PERL_ARGS_ASSERT_CVSTASH_SET            \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_cx_dump(pTHX_ PERL_CONTEXT *cx);
+#define PERL_ARGS_ASSERT_CX_DUMP                \
+        assert(cx)
+
+PERL_CALLCONV I32
+Perl_cxinc(pTHX)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_CXINC
 
-PERL_CALLCONV void	Perl_deb_stack_all(pTHX);
+PERL_CALLCONV void
+Perl_deb(pTHX_ const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_DEB                    \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_deb_stack_all(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_DEB_STACK_ALL
-PERL_CALLCONV I32	Perl_debop(pTHX_ const OP* o);
-#define PERL_ARGS_ASSERT_DEBOP	\
-	assert(o)
-PERL_CALLCONV void	Perl_debprofdump(pTHX);
+
+PERL_CALLCONV I32
+Perl_debop(pTHX_ const OP *o);
+#define PERL_ARGS_ASSERT_DEBOP                  \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_debprofdump(pTHX);
 #define PERL_ARGS_ASSERT_DEBPROFDUMP
-PERL_CALLCONV I32	Perl_debstack(pTHX);
+
+PERL_CALLCONV I32
+Perl_debstack(pTHX);
 #define PERL_ARGS_ASSERT_DEBSTACK
-PERL_CALLCONV I32	Perl_debstackptrs(pTHX);
+
+PERL_CALLCONV I32
+Perl_debstackptrs(pTHX);
 #define PERL_ARGS_ASSERT_DEBSTACKPTRS
-PERL_CALLCONV void	Perl_debug_hash_seed(pTHX_ bool via_debug_h);
+
+PERL_CALLCONV void
+Perl_debug_hash_seed(pTHX_ bool via_debug_h)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_DEBUG_HASH_SEED
-PERL_CALLCONV SV *	Perl_defelem_target(pTHX_ SV *sv, MAGIC *mg)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DEFELEM_TARGET	\
-	assert(sv)
 
-PERL_CALLCONV void	Perl_delete_eval_scope(pTHX);
+PERL_CALLCONV SV *
+Perl_defelem_target(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DEFELEM_TARGET         \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_delete_eval_scope(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_DELETE_EVAL_SCOPE
-PERL_CALLCONV char*	Perl_delimcpy(char* to, const char* to_end, const char* from, const char* from_end, const int delim, I32* retlen);
-#define PERL_ARGS_ASSERT_DELIMCPY	\
-	assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
-PERL_CALLCONV char*	Perl_delimcpy_no_escape(char* to, const char* to_end, const char* from, const char* from_end, const int delim, I32* retlen);
-#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE	\
-	assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
-PERL_CALLCONV void	Perl_despatch_signals(pTHX);
+
+PERL_CALLCONV char *
+Perl_delimcpy(char *to, const char *to_end, const char *from, const char *from_end, const int delim, I32 *retlen);
+#define PERL_ARGS_ASSERT_DELIMCPY               \
+        assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
+
+PERL_CALLCONV char *
+Perl_delimcpy_no_escape(char *to, const char *to_end, const char *from, const char *from_end, const int delim, I32 *retlen);
+#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE     \
+        assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
+
+PERL_CALLCONV void
+Perl_despatch_signals(pTHX);
 #define PERL_ARGS_ASSERT_DESPATCH_SIGNALS
-PERL_CALLCONV_NO_RET OP*	Perl_die(pTHX_ const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+
+PERL_CALLCONV_NO_RET OP *
+Perl_die(pTHX_ const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
 #define PERL_ARGS_ASSERT_DIE
 
-PERL_CALLCONV_NO_RET OP*	Perl_die_sv(pTHX_ SV *baseex)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_DIE_SV	\
-	assert(baseex)
-
-PERL_CALLCONV_NO_RET void	Perl_die_unwind(pTHX_ SV* msv)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_DIE_UNWIND	\
-	assert(msv)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_AEXEC	\
-	assert(mark); assert(sp)
-#endif
-PERL_CALLCONV bool	Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int do_report);
-#define PERL_ARGS_ASSERT_DO_AEXEC5	\
-	assert(mark); assert(sp)
-#ifndef NO_MATHOMS
-PERL_CALLCONV int	Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_DO_BINMODE	\
-	assert(fp)
-#endif
+PERL_CALLCONV_NO_RET OP *
+Perl_die_sv(pTHX_ SV *baseex)
+        __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_DIE_SV                 \
+        assert(baseex)
+
+PERL_CALLCONV_NO_RET void
+Perl_die_unwind(pTHX_ SV *msv)
+        __attribute__noreturn__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DIE_UNWIND             \
+        assert(msv)
+
+PERL_CALLCONV bool
+Perl_do_aexec5(pTHX_ SV *really, SV **mark, SV **sp, int fd, int do_report)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_AEXEC5              \
+        assert(mark); assert(sp)
 
-PERL_CALLCONV bool	Perl_do_close(pTHX_ GV* gv, bool not_implicit);
+PERL_CALLCONV bool
+Perl_do_close(pTHX_ GV *gv, bool is_explicit);
 #define PERL_ARGS_ASSERT_DO_CLOSE
-PERL_CALLCONV void	Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full);
-#define PERL_ARGS_ASSERT_DO_DUMP_PAD	\
-	assert(file)
-PERL_CALLCONV bool	Perl_do_eof(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_DO_EOF	\
-	assert(gv)
-PERL_CALLCONV void	Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
-#define PERL_ARGS_ASSERT_DO_GV_DUMP	\
-	assert(file); assert(name)
-PERL_CALLCONV void	Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
-#define PERL_ARGS_ASSERT_DO_GVGV_DUMP	\
-	assert(file); assert(name)
-PERL_CALLCONV void	Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv);
-#define PERL_ARGS_ASSERT_DO_HV_DUMP	\
-	assert(file); assert(name)
-PERL_CALLCONV void	Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp);
-#define PERL_ARGS_ASSERT_DO_JOIN	\
-	assert(sv); assert(delim); assert(mark); assert(sp)
-PERL_CALLCONV void	Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP	\
-	assert(file)
-PERL_CALLCONV I32	Perl_do_ncmp(pTHX_ SV *const left, SV *const right)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_NCMP	\
-	assert(left); assert(right)
-
-PERL_CALLCONV void	Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o);
-#define PERL_ARGS_ASSERT_DO_OP_DUMP	\
-	assert(file)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_do_open(pTHX_ GV* gv, const char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
-#define PERL_ARGS_ASSERT_DO_OPEN	\
-	assert(gv); assert(name)
-#endif
-PERL_CALLCONV bool	Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len, PerlIO *supplied_fp, SV **svp, U32 num);
-#define PERL_ARGS_ASSERT_DO_OPEN6	\
-	assert(gv); assert(oname)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_do_open9(pTHX_ GV *gv, const char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_DO_OPEN9	\
-	assert(gv); assert(name); assert(svs)
-#endif
-
-PERL_CALLCONV bool	Perl_do_open_raw(pTHX_ GV *gv, const char *oname, STRLEN len, int rawmode, int rawperm, Stat_t *statbufp);
-#define PERL_ARGS_ASSERT_DO_OPEN_RAW	\
-	assert(gv); assert(oname)
-PERL_CALLCONV bool	Perl_do_openn(pTHX_ GV *gv, const char *oname, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num);
-#define PERL_ARGS_ASSERT_DO_OPENN	\
-	assert(gv); assert(oname)
-PERL_CALLCONV void	Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm);
-#define PERL_ARGS_ASSERT_DO_PMOP_DUMP	\
-	assert(file)
-PERL_CALLCONV bool	Perl_do_print(pTHX_ SV* sv, PerlIO* fp);
-#define PERL_ARGS_ASSERT_DO_PRINT	\
-	assert(fp)
-PERL_CALLCONV OP*	Perl_do_readline(pTHX)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV void
+Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_DUMP_PAD            \
+        assert(file)
+
+PERL_CALLCONV bool
+Perl_do_eof(pTHX_ GV *gv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_EOF                 \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
+#define PERL_ARGS_ASSERT_DO_GV_DUMP             \
+        assert(file); assert(name)
+
+PERL_CALLCONV void
+Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv);
+#define PERL_ARGS_ASSERT_DO_GVGV_DUMP           \
+        assert(file); assert(name)
+
+PERL_CALLCONV void
+Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv);
+#define PERL_ARGS_ASSERT_DO_HV_DUMP             \
+        assert(file); assert(name)
+
+PERL_CALLCONV void
+Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp);
+#define PERL_ARGS_ASSERT_DO_JOIN                \
+        assert(sv); assert(delim); assert(mark); assert(sp)
+
+PERL_CALLCONV void
+Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
+#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP          \
+        assert(file)
+
+PERL_CALLCONV I32
+Perl_do_ncmp(pTHX_ SV * const left, SV * const right)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_NCMP                \
+        assert(left); assert(right)
+
+PERL_CALLCONV void
+Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o);
+#define PERL_ARGS_ASSERT_DO_OP_DUMP             \
+        assert(file)
+
+PERL_CALLCONV bool
+Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len, PerlIO *supplied_fp, SV **svp, U32 num)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_OPEN6               \
+        assert(gv); assert(oname)
+
+PERL_CALLCONV bool
+Perl_do_open_raw(pTHX_ GV *gv, const char *oname, STRLEN len, int rawmode, int rawperm, Stat_t *statbufp)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_OPEN_RAW            \
+        assert(gv); assert(oname)
+
+PERL_CALLCONV bool
+Perl_do_openn(pTHX_ GV *gv, const char *oname, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num);
+#define PERL_ARGS_ASSERT_DO_OPENN               \
+        assert(gv); assert(oname)
+
+PERL_CALLCONV void
+Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm);
+#define PERL_ARGS_ASSERT_DO_PMOP_DUMP           \
+        assert(file)
+
+PERL_CALLCONV bool
+Perl_do_print(pTHX_ SV *sv, PerlIO *fp)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_PRINT               \
+        assert(fp)
+
+PERL_CALLCONV OP *
+Perl_do_readline(pTHX)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_DO_READLINE
 
-PERL_CALLCONV bool	Perl_do_seek(pTHX_ GV* gv, Off_t pos, int whence);
+PERL_CALLCONV bool
+Perl_do_seek(pTHX_ GV *gv, Off_t pos, int whence)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_DO_SEEK
-PERL_CALLCONV void	Perl_do_sprintf(pTHX_ SV* sv, SSize_t len, SV** sarg);
-#define PERL_ARGS_ASSERT_DO_SPRINTF	\
-	assert(sv); assert(sarg)
-PERL_CALLCONV void	Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-#define PERL_ARGS_ASSERT_DO_SV_DUMP	\
-	assert(file)
-PERL_CALLCONV Off_t	Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence);
-#define PERL_ARGS_ASSERT_DO_SYSSEEK	\
-	assert(gv)
-PERL_CALLCONV Off_t	Perl_do_tell(pTHX_ GV* gv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TELL	\
-	assert(gv)
-
-PERL_CALLCONV Size_t	Perl_do_trans(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_DO_TRANS	\
-	assert(sv)
-PERL_CALLCONV I16	Perl_do_uniprop_match(const char * const key, const U16 key_len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_UNIPROP_MATCH	\
-	assert(key)
-
-PERL_CALLCONV UV	Perl_do_vecget(pTHX_ SV* sv, STRLEN offset, int size);
-#define PERL_ARGS_ASSERT_DO_VECGET	\
-	assert(sv)
-PERL_CALLCONV void	Perl_do_vecset(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_DO_VECSET	\
-	assert(sv)
-PERL_CALLCONV void	Perl_do_vop(pTHX_ I32 optype, SV* sv, SV* left, SV* right);
-#define PERL_ARGS_ASSERT_DO_VOP	\
-	assert(sv); assert(left); assert(right)
-PERL_CALLCONV OP*	Perl_dofile(pTHX_ OP* term, I32 force_builtin);
-#define PERL_ARGS_ASSERT_DOFILE	\
-	assert(term)
-PERL_CALLCONV bool	Perl_doing_taint(int argc, char** argv, char** env)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV void
+Perl_do_sprintf(pTHX_ SV *sv, SSize_t len, SV **sarg);
+#define PERL_ARGS_ASSERT_DO_SPRINTF             \
+        assert(sv); assert(sarg)
+
+PERL_CALLCONV void
+Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
+#define PERL_ARGS_ASSERT_DO_SV_DUMP             \
+        assert(file)
+
+PERL_CALLCONV Off_t
+Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_SYSSEEK             \
+        assert(gv)
+
+PERL_CALLCONV Off_t
+Perl_do_tell(pTHX_ GV *gv)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_TELL                \
+        assert(gv)
+
+PERL_CALLCONV Size_t
+Perl_do_trans(pTHX_ SV *sv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_TRANS               \
+        assert(sv)
+
+PERL_CALLCONV I16
+Perl_do_uniprop_match(const char * const key, const U16 key_len)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_DO_UNIPROP_MATCH       \
+        assert(key)
+
+PERL_CALLCONV UV
+Perl_do_vecget(pTHX_ SV *sv, STRLEN offset, int size)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_VECGET              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_do_vecset(pTHX_ SV *sv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_VECSET              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DO_VOP                 \
+        assert(sv); assert(left); assert(right)
+
+PERL_CALLCONV OP *
+Perl_dofile(pTHX_ OP *term, I32 force_builtin)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DOFILE                 \
+        assert(term)
+
+PERL_CALLCONV bool
+Perl_doing_taint(int argc, char **argv, char **env)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_DOING_TAINT
 
-PERL_CALLCONV OP *	Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref);
-#define PERL_ARGS_ASSERT_DOREF	\
-	assert(o)
-PERL_CALLCONV void	Perl_dounwind(pTHX_ I32 cxix);
+PERL_CALLCONV OP *
+Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref);
+#define PERL_ARGS_ASSERT_DOREF                  \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_dounwind(pTHX_ I32 cxix);
 #define PERL_ARGS_ASSERT_DOUNWIND
-PERL_CALLCONV U8	Perl_dowantarray(pTHX)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV U8
+Perl_dowantarray(pTHX)
+        __attribute__deprecated__
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_DOWANTARRAY
 
-PERL_CALLCONV void	Perl_drand48_init_r(perl_drand48_t *random_state, U32 seed);
-#define PERL_ARGS_ASSERT_DRAND48_INIT_R	\
-	assert(random_state)
-PERL_CALLCONV double	Perl_drand48_r(perl_drand48_t *random_state);
-#define PERL_ARGS_ASSERT_DRAND48_R	\
-	assert(random_state)
-PERL_CALLCONV void	Perl_dump_all(pTHX);
+PERL_CALLCONV void
+Perl_drand48_init_r(perl_drand48_t *random_state, U32 seed);
+#define PERL_ARGS_ASSERT_DRAND48_INIT_R         \
+        assert(random_state)
+
+PERL_CALLCONV double
+Perl_drand48_r(perl_drand48_t *random_state);
+#define PERL_ARGS_ASSERT_DRAND48_R              \
+        assert(random_state)
+
+PERL_CALLCONV void
+Perl_dump_all(pTHX);
 #define PERL_ARGS_ASSERT_DUMP_ALL
-PERL_CALLCONV void	Perl_dump_all_perl(pTHX_ bool justperl);
+
+PERL_CALLCONV void
+Perl_dump_all_perl(pTHX_ bool justperl)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_DUMP_ALL_PERL
-PERL_CALLCONV void	Perl_dump_eval(pTHX);
+
+PERL_CALLCONV void
+Perl_dump_eval(pTHX);
 #define PERL_ARGS_ASSERT_DUMP_EVAL
-PERL_CALLCONV void	Perl_dump_form(pTHX_ const GV* gv);
-#define PERL_ARGS_ASSERT_DUMP_FORM	\
-	assert(gv)
-PERL_CALLCONV void	Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_3,pTHX_4);
-#define PERL_ARGS_ASSERT_DUMP_INDENT	\
-	assert(file); assert(pat)
-
-PERL_CALLCONV void	Perl_dump_packsubs(pTHX_ const HV* stash);
-#define PERL_ARGS_ASSERT_DUMP_PACKSUBS	\
-	assert(stash)
-PERL_CALLCONV void	Perl_dump_packsubs_perl(pTHX_ const HV* stash, bool justperl);
-#define PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL	\
-	assert(stash)
-PERL_CALLCONV void	Perl_dump_sub(pTHX_ const GV* gv);
-#define PERL_ARGS_ASSERT_DUMP_SUB	\
-	assert(gv)
-PERL_CALLCONV void	Perl_dump_sub_perl(pTHX_ const GV* gv, bool justperl);
-#define PERL_ARGS_ASSERT_DUMP_SUB_PERL	\
-	assert(gv)
-PERL_CALLCONV void	Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args);
-#define PERL_ARGS_ASSERT_DUMP_VINDENT	\
-	assert(file); assert(pat)
-PERL_CALLCONV STRLEN*	Perl_dup_warnings(pTHX_ STRLEN* warnings);
+
+PERL_CALLCONV void
+Perl_dump_form(pTHX_ const GV *gv);
+#define PERL_ARGS_ASSERT_DUMP_FORM              \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_3,pTHX_4);
+#define PERL_ARGS_ASSERT_DUMP_INDENT            \
+        assert(file); assert(pat)
+
+PERL_CALLCONV void
+Perl_dump_packsubs(pTHX_ const HV *stash);
+#define PERL_ARGS_ASSERT_DUMP_PACKSUBS          \
+        assert(stash)
+
+PERL_CALLCONV void
+Perl_dump_packsubs_perl(pTHX_ const HV *stash, bool justperl)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL     \
+        assert(stash)
+
+PERL_CALLCONV void
+Perl_dump_sub(pTHX_ const GV *gv);
+#define PERL_ARGS_ASSERT_DUMP_SUB               \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_dump_sub_perl(pTHX_ const GV *gv, bool justperl)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_DUMP_SUB_PERL          \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_DUMP_VINDENT           \
+        assert(file); assert(pat)
+
+PERL_CALLCONV char  *
+Perl_dup_warnings(pTHX_ char *warnings);
 #define PERL_ARGS_ASSERT_DUP_WARNINGS
-PERL_CALLCONV void	Perl_emulate_cop_io(pTHX_ const COP *const c, SV *const sv);
-#define PERL_ARGS_ASSERT_EMULATE_COP_IO	\
-	assert(c); assert(sv)
-PERL_CALLCONV SV*	Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error);
-#define PERL_ARGS_ASSERT_EVAL_PV	\
-	assert(p)
-PERL_CALLCONV I32	Perl_eval_sv(pTHX_ SV* sv, I32 flags);
-#define PERL_ARGS_ASSERT_EVAL_SV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_fbm_compile(pTHX_ SV* sv, U32 flags);
-#define PERL_ARGS_ASSERT_FBM_COMPILE	\
-	assert(sv)
-PERL_CALLCONV char*	Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlestr, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FBM_INSTR	\
-	assert(big); assert(bigend); assert(littlestr)
 
-PERL_CALLCONV SV*	Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
+PERL_CALLCONV void
+Perl_emulate_cop_io(pTHX_ const COP * const c, SV * const sv);
+#define PERL_ARGS_ASSERT_EMULATE_COP_IO         \
+        assert(c); assert(sv)
+
+PERL_CALLCONV SV *
+Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error);
+#define PERL_ARGS_ASSERT_EVAL_PV                \
+        assert(p)
+
+PERL_CALLCONV I32
+Perl_eval_sv(pTHX_ SV *sv, I32 flags);
+#define PERL_ARGS_ASSERT_EVAL_SV                \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_fbm_compile(pTHX_ SV *sv, U32 flags);
+#define PERL_ARGS_ASSERT_FBM_COMPILE            \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_fbm_instr(pTHX_ unsigned char *big, unsigned char *bigend, SV *littlestr, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_FBM_INSTR              \
+        assert(big); assert(bigend); assert(littlestr)
+
+PERL_CALLCONV SV *
+Perl_filter_add(pTHX_ filter_t funcp, SV *datasv);
 #define PERL_ARGS_ASSERT_FILTER_ADD
-PERL_CALLCONV void	Perl_filter_del(pTHX_ filter_t funcp);
-#define PERL_ARGS_ASSERT_FILTER_DEL	\
-	assert(funcp)
-PERL_CALLCONV I32	Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FILTER_READ	\
-	assert(buf_sv)
-
-PERL_CALLCONV void	Perl_finalize_optree(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_FINALIZE_OPTREE	\
-	assert(o)
-PERL_CALLCONV CV *	Perl_find_lexical_cv(pTHX_ PADOFFSET off);
+
+PERL_CALLCONV void
+Perl_filter_del(pTHX_ filter_t funcp);
+#define PERL_ARGS_ASSERT_FILTER_DEL             \
+        assert(funcp)
+
+PERL_CALLCONV I32
+Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_FILTER_READ            \
+        assert(buf_sv)
+
+PERL_CALLCONV CV *
+Perl_find_lexical_cv(pTHX_ PADOFFSET off)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_FIND_LEXICAL_CV
-PERL_CALLCONV CV*	Perl_find_runcv(pTHX_ U32 *db_seqp)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV CV *
+Perl_find_runcv(pTHX_ U32 *db_seqp)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_FIND_RUNCV
 
-PERL_CALLCONV CV*	Perl_find_runcv_where(pTHX_ U8 cond, IV arg, U32 *db_seqp)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV CV *
+Perl_find_runcv_where(pTHX_ U8 cond, IV arg, U32 *db_seqp)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_FIND_RUNCV_WHERE
 
-PERL_CALLCONV SV*	Perl_find_rundefsv(pTHX);
+PERL_CALLCONV SV *
+Perl_find_rundefsv(pTHX);
 #define PERL_ARGS_ASSERT_FIND_RUNDEFSV
-PERL_CALLCONV PADOFFSET	Perl_find_rundefsvoffset(pTHX)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_FIND_RUNDEFSVOFFSET
-
-PERL_CALLCONV char*	Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char *const *const search_ext, I32 flags);
-#define PERL_ARGS_ASSERT_FIND_SCRIPT	\
-	assert(scriptname)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	Perl_foldEQ(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	Perl_foldEQ_latin1(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	Perl_foldEQ_locale(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ_LOCALE	\
-	assert(a); assert(b)
-#endif
-/* PERL_CALLCONV I32	foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
-#define PERL_ARGS_ASSERT_FOLDEQ_UTF8
-PERL_CALLCONV I32	Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags);
-#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS	\
-	assert(s1); assert(s2)
-PERL_CALLCONV char*	Perl_form(pTHX_ const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_FORM	\
-	assert(pat)
 
-PERL_CALLCONV void	Perl_free_tied_hv_pool(pTHX);
+PERL_CALLCONV char *
+Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char * const * const search_ext, I32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_FIND_SCRIPT            \
+        assert(scriptname)
+
+/* PERL_CALLCONV I32
+foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
+
+PERL_CALLCONV I32
+Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags);
+#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS      \
+        assert(s1); assert(s2)
+
+PERL_CALLCONV void
+Perl_forbid_outofblock_ops(pTHX_ OP *o, const char *blockname);
+#define PERL_ARGS_ASSERT_FORBID_OUTOFBLOCK_OPS  \
+        assert(o); assert(blockname)
+
+PERL_CALLCONV void
+Perl_force_locale_unlock(void)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_FORCE_LOCALE_UNLOCK
+
+PERL_CALLCONV char *
+Perl_form(pTHX_ const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_FORM                   \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_free_tied_hv_pool(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_FREE_TIED_HV_POOL
-PERL_CALLCONV void	Perl_free_tmps(pTHX);
+
+PERL_CALLCONV void
+Perl_free_tmps(pTHX);
 #define PERL_ARGS_ASSERT_FREE_TMPS
-PERL_CALLCONV SV*	Perl_get_and_check_backslash_N_name(pTHX_ const char* s, const char* e, const bool is_utf8, const char** error_msg)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME	\
-	assert(s); assert(e); assert(error_msg)
-
-PERL_CALLCONV AV*	Perl_get_av(pTHX_ const char *name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_AV	\
-	assert(name)
-PERL_CALLCONV void*	Perl_get_context(void)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_CONTEXT
-
-PERL_CALLCONV CV*	Perl_get_cv(pTHX_ const char* name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_CV	\
-	assert(name)
-PERL_CALLCONV CV*	Perl_get_cvn_flags(pTHX_ const char* name, STRLEN len, I32 flags);
-#define PERL_ARGS_ASSERT_GET_CVN_FLAGS	\
-	assert(name)
-PERL_CALLCONV void	Perl_get_db_sub(pTHX_ SV **svp, CV *cv);
-#define PERL_ARGS_ASSERT_GET_DB_SUB	\
-	assert(cv)
-PERL_CALLCONV const char *	Perl_get_deprecated_property_msg(const Size_t warning_offset)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV SV *
+Perl_get_and_check_backslash_N_name(pTHX_ const char *s, const char *e, const bool is_utf8, const char **error_msg)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME \
+        assert(s); assert(e); assert(error_msg)
+
+PERL_CALLCONV AV *
+Perl_get_av(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_AV                 \
+        assert(name)
+
+PERL_CALLCONV CV *
+Perl_get_cv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_CV                 \
+        assert(name)
+
+PERL_CALLCONV CV *
+Perl_get_cvn_flags(pTHX_ const char *name, STRLEN len, I32 flags);
+#define PERL_ARGS_ASSERT_GET_CVN_FLAGS          \
+        assert(name)
+
+PERL_CALLCONV void
+Perl_get_db_sub(pTHX_ SV **svp, CV *cv);
+#define PERL_ARGS_ASSERT_GET_DB_SUB             \
+        assert(cv)
+
+PERL_CALLCONV const char *
+Perl_get_deprecated_property_msg(const Size_t warning_offset)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_GET_DEPRECATED_PROPERTY_MSG
 
-PERL_CALLCONV void	Perl_get_hash_seed(pTHX_ unsigned char * const seed_buffer);
-#define PERL_ARGS_ASSERT_GET_HASH_SEED	\
-	assert(seed_buffer)
-PERL_CALLCONV HV*	Perl_get_hv(pTHX_ const char *name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_HV	\
-	assert(name)
-PERL_CALLCONV const char*	Perl_get_no_modify(pTHX)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV int
+Perl_get_extended_os_errno(void)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_GET_EXTENDED_OS_ERRNO
+
+PERL_CALLCONV void
+Perl_get_hash_seed(pTHX_ unsigned char * const seed_buffer)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_GET_HASH_SEED          \
+        assert(seed_buffer)
+
+PERL_CALLCONV HV *
+Perl_get_hv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_HV                 \
+        assert(name)
+
+PERL_CALLCONV const char *
+Perl_get_no_modify(pTHX)
+        __attribute__deprecated__
+        __attribute__warn_unused_result__
+        __attribute__pure__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_GET_NO_MODIFY
 
-PERL_CALLCONV char**	Perl_get_op_descs(pTHX)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV char **
+Perl_get_op_descs(pTHX)
+        __attribute__deprecated__
+        __attribute__warn_unused_result__
+        __attribute__pure__;
 #define PERL_ARGS_ASSERT_GET_OP_DESCS
 
-PERL_CALLCONV char**	Perl_get_op_names(pTHX)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV char **
+Perl_get_op_names(pTHX)
+        __attribute__deprecated__
+        __attribute__warn_unused_result__
+        __attribute__pure__;
 #define PERL_ARGS_ASSERT_GET_OP_NAMES
 
-PERL_CALLCONV U32*	Perl_get_opargs(pTHX)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV U32 *
+Perl_get_opargs(pTHX)
+        __attribute__deprecated__
+        __attribute__warn_unused_result__
+        __attribute__pure__
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_GET_OPARGS
 
-PERL_CALLCONV PPADDR_t*	Perl_get_ppaddr(pTHX)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+PERL_CALLCONV PPADDR_t *
+Perl_get_ppaddr(pTHX)
+        __attribute__deprecated__
+        __attribute__warn_unused_result__
+        __attribute__pure__;
 #define PERL_ARGS_ASSERT_GET_PPADDR
 
-PERL_CALLCONV SV *	Perl_get_prop_definition(pTHX_ const int table_index)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_get_prop_definition(pTHX_ const int table_index)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_GET_PROP_DEFINITION
 
-PERL_CALLCONV const char * const *	Perl_get_prop_values(const int table_index)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV const char * const *
+Perl_get_prop_values(const int table_index)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_GET_PROP_VALUES
 
-PERL_CALLCONV REGEXP *	Perl_get_re_arg(pTHX_ SV *sv);
+PERL_CALLCONV REGEXP *
+Perl_get_re_arg(pTHX_ SV *sv);
 #define PERL_ARGS_ASSERT_GET_RE_ARG
-PERL_CALLCONV SV*	Perl_get_sv(pTHX_ const char *name, I32 flags);
-#define PERL_ARGS_ASSERT_GET_SV	\
-	assert(name)
-PERL_CALLCONV MGVTBL*	Perl_get_vtbl(pTHX_ int vtbl_id)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_VTBL
-
-PERL_CALLCONV int	Perl_getcwd_sv(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_GETCWD_SV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_gp_free(pTHX_ GV* gv);
+
+PERL_CALLCONV SV *
+Perl_get_sv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GET_SV                 \
+        assert(name)
+
+PERL_CALLCONV int
+Perl_getcwd_sv(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_GETCWD_SV              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_gp_free(pTHX_ GV *gv);
 #define PERL_ARGS_ASSERT_GP_FREE
-PERL_CALLCONV GP*	Perl_gp_ref(pTHX_ GP* gp);
+
+PERL_CALLCONV GP *
+Perl_gp_ref(pTHX_ GP *gp);
 #define PERL_ARGS_ASSERT_GP_REF
-PERL_CALLCONV bool	Perl_grok_atoUV(const char* pv, UV* valptr, const char** endptr);
-#define PERL_ARGS_ASSERT_GROK_ATOUV	\
-	assert(pv); assert(valptr)
-PERL_CALLCONV UV	Perl_grok_bin(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result);
-#define PERL_ARGS_ASSERT_GROK_BIN	\
-	assert(start); assert(len_p); assert(flags)
-PERL_CALLCONV UV	Perl_grok_bin_oct_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result, const unsigned shift, const U8 lookup_bit, const char prefix);
-#define PERL_ARGS_ASSERT_GROK_BIN_OCT_HEX	\
-	assert(start); assert(len_p); assert(flags)
-PERL_CALLCONV UV	Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result);
-#define PERL_ARGS_ASSERT_GROK_HEX	\
-	assert(start); assert(len_p); assert(flags)
-PERL_CALLCONV int	Perl_grok_infnan(pTHX_ const char** sp, const char *send);
-#define PERL_ARGS_ASSERT_GROK_INFNAN	\
-	assert(sp); assert(send)
-PERL_CALLCONV int	Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep);
-#define PERL_ARGS_ASSERT_GROK_NUMBER	\
-	assert(pv)
-PERL_CALLCONV int	Perl_grok_number_flags(pTHX_ const char *pv, STRLEN len, UV *valuep, U32 flags);
-#define PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS	\
-	assert(pv)
-PERL_CALLCONV bool	Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX	\
-	assert(sp); assert(send)
-
-PERL_CALLCONV UV	Perl_grok_oct(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result);
-#define PERL_ARGS_ASSERT_GROK_OCT	\
-	assert(start); assert(len_p); assert(flags)
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV*	Perl_gv_AVadd(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_AVADD
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV*	Perl_gv_HVadd(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_HVADD
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV*	Perl_gv_IOadd(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_GV_IOADD
-#endif
-PERL_CALLCONV GV*	Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
+
+PERL_CALLCONV bool
+Perl_grok_atoUV(const char *pv, UV *valptr, const char **endptr);
+#define PERL_ARGS_ASSERT_GROK_ATOUV             \
+        assert(pv); assert(valptr)
+
+PERL_CALLCONV UV
+Perl_grok_bin(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result);
+#define PERL_ARGS_ASSERT_GROK_BIN               \
+        assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV UV
+Perl_grok_bin_oct_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result, const unsigned shift, const U8 lookup_bit, const char prefix);
+#define PERL_ARGS_ASSERT_GROK_BIN_OCT_HEX       \
+        assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV UV
+Perl_grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result);
+#define PERL_ARGS_ASSERT_GROK_HEX               \
+        assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV int
+Perl_grok_infnan(pTHX_ const char **sp, const char *send);
+#define PERL_ARGS_ASSERT_GROK_INFNAN            \
+        assert(sp); assert(send)
+
+PERL_CALLCONV int
+Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep);
+#define PERL_ARGS_ASSERT_GROK_NUMBER            \
+        assert(pv)
+
+PERL_CALLCONV int
+Perl_grok_number_flags(pTHX_ const char *pv, STRLEN len, UV *valuep, U32 flags);
+#define PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS      \
+        assert(pv)
+
+PERL_CALLCONV bool
+Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX     \
+        assert(sp); assert(send)
+
+PERL_CALLCONV UV
+Perl_grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result);
+#define PERL_ARGS_ASSERT_GROK_OCT               \
+        assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV GV *
+Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
 #define PERL_ARGS_ASSERT_GV_ADD_BY_TYPE
-/* PERL_CALLCONV GV*	gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD4
-
-PERL_CALLCONV GV*	Perl_gv_autoload_pv(pTHX_ HV* stash, const char* namepv, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PV	\
-	assert(namepv)
-
-PERL_CALLCONV GV*	Perl_gv_autoload_pvn(pTHX_ HV* stash, const char* name, STRLEN len, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN	\
-	assert(name)
-
-PERL_CALLCONV GV*	Perl_gv_autoload_sv(pTHX_ HV* stash, SV* namesv, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD_SV	\
-	assert(namesv)
-
-PERL_CALLCONV void	Perl_gv_check(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_GV_CHECK	\
-	assert(stash)
-PERL_CALLCONV SV*	Perl_gv_const_sv(pTHX_ GV* gv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GV_CONST_SV	\
-	assert(gv)
 
-PERL_CALLCONV void	Perl_gv_dump(pTHX_ GV* gv);
+/* PERL_CALLCONV GV *
+gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
+        __attribute__warn_unused_result__; */
+
+PERL_CALLCONV GV *
+Perl_gv_autoload_pv(pTHX_ HV *stash, const char *namepv, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PV         \
+        assert(namepv)
+
+PERL_CALLCONV GV *
+Perl_gv_autoload_pvn(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN        \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_autoload_sv(pTHX_ HV *stash, SV *namesv, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_SV         \
+        assert(namesv)
+
+PERL_CALLCONV void
+Perl_gv_check(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_GV_CHECK               \
+        assert(stash)
+
+PERL_CALLCONV SV *
+Perl_gv_const_sv(pTHX_ GV *gv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_GV_CONST_SV            \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_gv_dump(pTHX_ GV *gv);
 #define PERL_ARGS_ASSERT_GV_DUMP
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_gv_efullname(pTHX_ SV* sv, const GV* gv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_GV_EFULLNAME	\
-	assert(sv); assert(gv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix);
-#define PERL_ARGS_ASSERT_GV_EFULLNAME3	\
-	assert(sv); assert(gv)
-#endif
-PERL_CALLCONV void	Perl_gv_efullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
-#define PERL_ARGS_ASSERT_GV_EFULLNAME4	\
-	assert(sv); assert(gv)
-PERL_CALLCONV GV*	Perl_gv_fetchfile(pTHX_ const char* name);
-#define PERL_ARGS_ASSERT_GV_FETCHFILE	\
-	assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchfile_flags(pTHX_ const char *const name, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS	\
-	assert(name)
-/* PERL_CALLCONV GV*	gv_fetchmeth(pTHX_ HV* stash, const char* name, STRLEN len, I32 level); */
-#define PERL_ARGS_ASSERT_GV_FETCHMETH
-/* PERL_CALLCONV GV*	gv_fetchmeth_autoload(pTHX_ HV* stash, const char* name, STRLEN len, I32 level); */
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_AUTOLOAD
-PERL_CALLCONV GV*	Perl_gv_fetchmeth_pv(pTHX_ HV* stash, const char* name, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV	\
-	assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmeth_pv_autoload(pTHX_ HV* stash, const char* name, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV_AUTOLOAD	\
-	assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmeth_pvn(pTHX_ HV* stash, const char* name, STRLEN len, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN	\
-	assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmeth_pvn_autoload(pTHX_ HV* stash, const char* name, STRLEN len, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN_AUTOLOAD	\
-	assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmeth_sv(pTHX_ HV* stash, SV* namesv, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV	\
-	assert(namesv)
-PERL_CALLCONV GV*	Perl_gv_fetchmeth_sv_autoload(pTHX_ HV* stash, SV* namesv, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD	\
-	assert(namesv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV*	Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD	\
-	assert(stash); assert(name)
-#endif
-PERL_CALLCONV GV*	Perl_gv_fetchmethod_autoload(pTHX_ HV* stash, const char* name, I32 autoload);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD	\
-	assert(stash); assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmethod_pv_flags(pTHX_ HV* stash, const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PV_FLAGS	\
-	assert(stash); assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmethod_pvn_flags(pTHX_ HV* stash, const char* name, const STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PVN_FLAGS	\
-	assert(stash); assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchmethod_sv_flags(pTHX_ HV* stash, SV* namesv, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS	\
-	assert(stash); assert(namesv)
-PERL_CALLCONV GV*	Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 flags, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_FETCHPV	\
-	assert(nambeg)
-PERL_CALLCONV GV*	Perl_gv_fetchpvn_flags(pTHX_ const char* name, STRLEN len, I32 flags, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS	\
-	assert(name)
-PERL_CALLCONV GV*	Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_FETCHSV	\
-	assert(name)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_gv_fullname(pTHX_ SV* sv, const GV* gv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_GV_FULLNAME	\
-	assert(sv); assert(gv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_gv_fullname3(pTHX_ SV* sv, const GV* gv, const char* prefix);
-#define PERL_ARGS_ASSERT_GV_FULLNAME3	\
-	assert(sv); assert(gv)
-#endif
-PERL_CALLCONV void	Perl_gv_fullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
-#define PERL_ARGS_ASSERT_GV_FULLNAME4	\
-	assert(sv); assert(gv)
-PERL_CALLCONV CV*	Perl_gv_handler(pTHX_ HV* stash, I32 id)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV void
+Perl_gv_efullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain);
+#define PERL_ARGS_ASSERT_GV_EFULLNAME4          \
+        assert(sv); assert(gv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchfile(pTHX_ const char *name);
+#define PERL_ARGS_ASSERT_GV_FETCHFILE           \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchfile_flags(pTHX_ const char * const name, const STRLEN len, const U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS     \
+        assert(name)
+
+/* PERL_CALLCONV GV *
+gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level); */
+
+/* PERL_CALLCONV GV *
+gv_fetchmeth_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level); */
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pv(pTHX_ HV *stash, const char *name, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV        \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pv_autoload(pTHX_ HV *stash, const char *name, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PV_AUTOLOAD \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pvn(pTHX_ HV *stash, const char *name, STRLEN len, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN       \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_pvn_autoload(pTHX_ HV *stash, const char *name, STRLEN len, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_PVN_AUTOLOAD \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_sv(pTHX_ HV *stash, SV *namesv, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV        \
+        assert(namesv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmeth_sv_autoload(pTHX_ HV *stash, SV *namesv, I32 level, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD \
+        assert(namesv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD \
+        assert(stash); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_pv_flags(pTHX_ HV *stash, const char *name, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PV_FLAGS \
+        assert(stash); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_PVN_FLAGS \
+        assert(stash); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod_sv_flags(pTHX_ HV *stash, SV *namesv, U32 flags);
+#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS \
+        assert(stash); assert(namesv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 flags, const svtype sv_type);
+#define PERL_ARGS_ASSERT_GV_FETCHPV             \
+        assert(nambeg)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchpvn_flags(pTHX_ const char *name, STRLEN len, I32 flags, const svtype sv_type);
+#define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS      \
+        assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type);
+#define PERL_ARGS_ASSERT_GV_FETCHSV             \
+        assert(name)
+
+PERL_CALLCONV void
+Perl_gv_fullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain);
+#define PERL_ARGS_ASSERT_GV_FULLNAME4           \
+        assert(sv); assert(gv)
+
+PERL_CALLCONV CV *
+Perl_gv_handler(pTHX_ HV *stash, I32 id)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_GV_HANDLER
 
-/* PERL_CALLCONV void	gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi); */
-#define PERL_ARGS_ASSERT_GV_INIT
-PERL_CALLCONV void	Perl_gv_init_pv(pTHX_ GV* gv, HV* stash, const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_GV_INIT_PV	\
-	assert(gv); assert(name)
-PERL_CALLCONV void	Perl_gv_init_pvn(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_GV_INIT_PVN	\
-	assert(gv); assert(name)
-PERL_CALLCONV void	Perl_gv_init_sv(pTHX_ GV* gv, HV* stash, SV* namesv, U32 flags);
-#define PERL_ARGS_ASSERT_GV_INIT_SV	\
-	assert(gv); assert(namesv)
-PERL_CALLCONV void	Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_GV_NAME_SET	\
-	assert(gv); assert(name)
-PERL_CALLCONV GV *	Perl_gv_override(pTHX_ const char * const name, const STRLEN len);
-#define PERL_ARGS_ASSERT_GV_OVERRIDE	\
-	assert(name)
-PERL_CALLCONV void	Perl_gv_setref(pTHX_ SV *const dsv, SV *const ssv);
-#define PERL_ARGS_ASSERT_GV_SETREF	\
-	assert(dsv); assert(ssv)
-PERL_CALLCONV HV*	Perl_gv_stashpv(pTHX_ const char* name, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHPV	\
-	assert(name)
-PERL_CALLCONV HV*	Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHPVN	\
-	assert(name)
-PERL_CALLCONV HV*	Perl_gv_stashsv(pTHX_ SV* sv, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHSV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_gv_try_downgrade(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE	\
-	assert(gv)
-PERL_CALLCONV struct xpvhv_aux*	Perl_hv_auxalloc(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_AUXALLOC	\
-	assert(hv)
-PERL_CALLCONV AV**	Perl_hv_backreferences_p(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P	\
-	assert(hv)
-PERL_CALLCONV SV*	Perl_hv_bucket_ratio(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_BUCKET_RATIO	\
-	assert(hv)
+/* PERL_CALLCONV void
+gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi); */
+
+PERL_CALLCONV void
+Perl_gv_init_pv(pTHX_ GV *gv, HV *stash, const char *name, U32 flags);
+#define PERL_ARGS_ASSERT_GV_INIT_PV             \
+        assert(gv); assert(name)
+
+PERL_CALLCONV void
+Perl_gv_init_pvn(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_GV_INIT_PVN            \
+        assert(gv); assert(name)
+
+PERL_CALLCONV void
+Perl_gv_init_sv(pTHX_ GV *gv, HV *stash, SV *namesv, U32 flags);
+#define PERL_ARGS_ASSERT_GV_INIT_SV             \
+        assert(gv); assert(namesv)
+
+PERL_CALLCONV void
+Perl_gv_name_set(pTHX_ GV *gv, const char *name, U32 len, U32 flags);
+#define PERL_ARGS_ASSERT_GV_NAME_SET            \
+        assert(gv); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_override(pTHX_ const char * const name, const STRLEN len);
+#define PERL_ARGS_ASSERT_GV_OVERRIDE            \
+        assert(name)
+
+PERL_CALLCONV void
+Perl_gv_setref(pTHX_ SV * const dsv, SV * const ssv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_GV_SETREF              \
+        assert(dsv); assert(ssv)
+
+PERL_CALLCONV HV *
+Perl_gv_stashpv(pTHX_ const char *name, I32 flags);
+#define PERL_ARGS_ASSERT_GV_STASHPV             \
+        assert(name)
+
+PERL_CALLCONV HV *
+Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 flags);
+#define PERL_ARGS_ASSERT_GV_STASHPVN            \
+        assert(name)
+
+PERL_CALLCONV HV *
+Perl_gv_stashsv(pTHX_ SV *sv, I32 flags);
+#define PERL_ARGS_ASSERT_GV_STASHSV             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_gv_try_downgrade(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE       \
+        assert(gv)
+
+PERL_CALLCONV struct xpvhv_aux *
+Perl_hv_auxalloc(pTHX_ HV *hv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_AUXALLOC            \
+        assert(hv)
+
+PERL_CALLCONV AV **
+Perl_hv_backreferences_p(pTHX_ HV *hv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P    \
+        assert(hv)
+
+PERL_CALLCONV SV *
+Perl_hv_bucket_ratio(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_BUCKET_RATIO        \
+        assert(hv)
 
-PERL_CALLCONV void	Perl_hv_clear(pTHX_ HV *hv);
+PERL_CALLCONV void
+Perl_hv_clear(pTHX_ HV *hv);
 #define PERL_ARGS_ASSERT_HV_CLEAR
-PERL_CALLCONV void	Perl_hv_clear_placeholders(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS	\
-	assert(hv)
-PERL_CALLCONV void*	Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char* key, STRLEN klen, int flags, int action, SV *val, U32 hash);
+
+PERL_CALLCONV void
+Perl_hv_clear_placeholders(pTHX_ HV *hv);
+#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS  \
+        assert(hv)
+
+PERL_CALLCONV void *
+Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int flags, int action, SV *val, U32 hash);
 #define PERL_ARGS_ASSERT_HV_COMMON
-PERL_CALLCONV void*	Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash);
-#define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN	\
-	assert(key)
-PERL_CALLCONV HV *	Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV void *
+Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash);
+#define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN      \
+        assert(key)
+
+PERL_CALLCONV HV *
+Perl_hv_copy_hints_hv(pTHX_ HV * const ohv)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_HV_COPY_HINTS_HV
 
-PERL_CALLCONV void	Perl_hv_delayfree_ent(pTHX_ HV *notused, HE *entry);
+PERL_CALLCONV void
+Perl_hv_delayfree_ent(pTHX_ HV *notused, HE *entry);
 #define PERL_ARGS_ASSERT_HV_DELAYFREE_ENT
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV*	Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags);
-#define PERL_ARGS_ASSERT_HV_DELETE	\
-	assert(key)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV*	Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash);
-#define PERL_ARGS_ASSERT_HV_DELETE_ENT	\
-	assert(keysv)
-#endif
-PERL_CALLCONV HE**	Perl_hv_eiter_p(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_EITER_P	\
-	assert(hv)
-
-PERL_CALLCONV void	Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter);
-#define PERL_ARGS_ASSERT_HV_EITER_SET	\
-	assert(hv)
-PERL_CALLCONV void	Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_HV_ENAME_ADD	\
-	assert(hv); assert(name)
-PERL_CALLCONV void	Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_HV_ENAME_DELETE	\
-	assert(hv); assert(name)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_EXISTS	\
-	assert(key)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_EXISTS_ENT	\
-	assert(keysv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV**	Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval);
-#define PERL_ARGS_ASSERT_HV_FETCH	\
-	assert(key)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV HE*	Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash);
-#define PERL_ARGS_ASSERT_HV_FETCH_ENT	\
-	assert(keysv)
-#endif
-PERL_CALLCONV STRLEN	Perl_hv_fill(pTHX_ HV *const hv);
-#define PERL_ARGS_ASSERT_HV_FILL	\
-	assert(hv)
-PERL_CALLCONV void	Perl_hv_free_ent(pTHX_ HV *notused, HE *entry);
+
+PERL_CALLCONV void
+Perl_hv_dump(pTHX_ HV *hv);
+#define PERL_ARGS_ASSERT_HV_DUMP
+
+PERL_CALLCONV HE **
+Perl_hv_eiter_p(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_EITER_P             \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter);
+#define PERL_ARGS_ASSERT_HV_EITER_SET           \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_ENAME_ADD           \
+        assert(hv); assert(name)
+
+PERL_CALLCONV void
+Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_ENAME_DELETE        \
+        assert(hv); assert(name)
+
+PERL_CALLCONV STRLEN
+Perl_hv_fill(pTHX_ HV * const hv);
+#define PERL_ARGS_ASSERT_HV_FILL                \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_free_ent(pTHX_ HV *notused, HE *entry);
 #define PERL_ARGS_ASSERT_HV_FREE_ENT
-PERL_CALLCONV I32	Perl_hv_iterinit(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_ITERINIT	\
-	assert(hv)
-PERL_CALLCONV char*	Perl_hv_iterkey(pTHX_ HE* entry, I32* retlen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERKEY	\
-	assert(entry); assert(retlen)
-
-PERL_CALLCONV SV*	Perl_hv_iterkeysv(pTHX_ HE* entry)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERKEYSV	\
-	assert(entry)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV HE*	Perl_hv_iternext(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERNEXT	\
-	assert(hv)
-#endif
-
-PERL_CALLCONV HE*	Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS	\
-	assert(hv)
-
-PERL_CALLCONV SV*	Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERNEXTSV	\
-	assert(hv); assert(key); assert(retlen)
-
-PERL_CALLCONV SV*	Perl_hv_iterval(pTHX_ HV *hv, HE *entry)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_ITERVAL	\
-	assert(hv); assert(entry)
-
-PERL_CALLCONV void	Perl_hv_ksplit(pTHX_ HV *hv, IV newmax);
-#define PERL_ARGS_ASSERT_HV_KSPLIT	\
-	assert(hv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how);
-#define PERL_ARGS_ASSERT_HV_MAGIC	\
-	assert(hv)
-#endif
-PERL_CALLCONV void	Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
-#define PERL_ARGS_ASSERT_HV_NAME_SET	\
-	assert(hv)
-PERL_CALLCONV I32	Perl_hv_placeholders_get(pTHX_ const HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET	\
-	assert(hv)
-
-PERL_CALLCONV SSize_t*	Perl_hv_placeholders_p(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P	\
-	assert(hv)
-
-PERL_CALLCONV void	Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph);
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET	\
-	assert(hv)
-PERL_CALLCONV void	Perl_hv_pushkv(pTHX_ HV *hv, U32 flags);
-#define PERL_ARGS_ASSERT_HV_PUSHKV	\
-	assert(hv)
-PERL_CALLCONV void	Perl_hv_rand_set(pTHX_ HV *hv, U32 new_xhv_rand);
-#define PERL_ARGS_ASSERT_HV_RAND_SET	\
-	assert(hv)
-PERL_CALLCONV I32*	Perl_hv_riter_p(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_RITER_P	\
-	assert(hv)
-
-PERL_CALLCONV void	Perl_hv_riter_set(pTHX_ HV *hv, I32 riter);
-#define PERL_ARGS_ASSERT_HV_RITER_SET	\
-	assert(hv)
-PERL_CALLCONV SV*	Perl_hv_scalar(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HV_SCALAR	\
-	assert(hv)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV**	Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash);
-#define PERL_ARGS_ASSERT_HV_STORE
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV HE*	Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash);
-#define PERL_ARGS_ASSERT_HV_STORE_ENT
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV**	Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags);
-#define PERL_ARGS_ASSERT_HV_STORE_FLAGS
-#endif
-/* PERL_CALLCONV void	hv_undef(pTHX_ HV *hv); */
-#define PERL_ARGS_ASSERT_HV_UNDEF
-PERL_CALLCONV void	Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags);
+
+PERL_CALLCONV I32
+Perl_hv_iterinit(pTHX_ HV *hv);
+#define PERL_ARGS_ASSERT_HV_ITERINIT            \
+        assert(hv)
+
+PERL_CALLCONV char *
+Perl_hv_iterkey(pTHX_ HE *entry, I32 *retlen)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERKEY             \
+        assert(entry); assert(retlen)
+
+PERL_CALLCONV SV *
+Perl_hv_iterkeysv(pTHX_ HE *entry)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERKEYSV           \
+        assert(entry)
+
+PERL_CALLCONV HE *
+Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS      \
+        assert(hv)
+
+PERL_CALLCONV SV *
+Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERNEXTSV          \
+        assert(hv); assert(key); assert(retlen)
+
+PERL_CALLCONV SV *
+Perl_hv_iterval(pTHX_ HV *hv, HE *entry)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_ITERVAL             \
+        assert(hv); assert(entry)
+
+PERL_CALLCONV void
+Perl_hv_ksplit(pTHX_ HV *hv, IV newmax);
+#define PERL_ARGS_ASSERT_HV_KSPLIT              \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
+#define PERL_ARGS_ASSERT_HV_NAME_SET            \
+        assert(hv)
+
+PERL_CALLCONV I32
+Perl_hv_placeholders_get(pTHX_ const HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET    \
+        assert(hv)
+
+PERL_CALLCONV SSize_t *
+Perl_hv_placeholders_p(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P      \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph);
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET    \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_pushkv(pTHX_ HV *hv, U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_HV_PUSHKV              \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_rand_set(pTHX_ HV *hv, U32 new_xhv_rand);
+#define PERL_ARGS_ASSERT_HV_RAND_SET            \
+        assert(hv)
+
+PERL_CALLCONV I32 *
+Perl_hv_riter_p(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_RITER_P             \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_riter_set(pTHX_ HV *hv, I32 riter);
+#define PERL_ARGS_ASSERT_HV_RITER_SET           \
+        assert(hv)
+
+PERL_CALLCONV SV *
+Perl_hv_scalar(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_SCALAR              \
+        assert(hv)
+
+/* PERL_CALLCONV SV **
+hv_stores(pTHX_ HV *hv, const char * const key, SV *val); */
+
+/* PERL_CALLCONV void
+hv_undef(pTHX_ HV *hv); */
+
+PERL_CALLCONV void
+Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags);
 #define PERL_ARGS_ASSERT_HV_UNDEF_FLAGS
-/* PERL_CALLCONV I32	ibcmp(pTHX_ const char* a, const char* b, I32 len)
-			__attribute__warn_unused_result__
-			__attribute__pure__; */
-#define PERL_ARGS_ASSERT_IBCMP
-
-/* PERL_CALLCONV I32	ibcmp_locale(pTHX_ const char* a, const char* b, I32 len)
-			__attribute__warn_unused_result__
-			__attribute__pure__; */
-#define PERL_ARGS_ASSERT_IBCMP_LOCALE
-
-/* PERL_CALLCONV I32	ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
-#define PERL_ARGS_ASSERT_IBCMP_UTF8
-PERL_CALLCONV void	Perl_init_argv_symbols(pTHX_ int argc, char **argv);
-#define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS	\
-	assert(argv)
-PERL_CALLCONV void	Perl_init_constants(pTHX);
+
+/* PERL_CALLCONV I32
+ibcmp(pTHX_ const char *a, const char *b, I32 len)
+        __attribute__warn_unused_result__
+        __attribute__pure__; */
+
+/* PERL_CALLCONV I32
+ibcmp_locale(pTHX_ const char *a, const char *b, I32 len)
+        __attribute__warn_unused_result__
+        __attribute__pure__; */
+
+/* PERL_CALLCONV I32
+ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
+
+PERL_CALLCONV STRLEN
+Perl_infix_plugin_standard(pTHX_ char *operator_ptr, STRLEN operator_len, struct Perl_custom_infix **def);
+#define PERL_ARGS_ASSERT_INFIX_PLUGIN_STANDARD  \
+        assert(operator_ptr); assert(def)
+
+PERL_CALLCONV void
+Perl_init_argv_symbols(pTHX_ int argc, char **argv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS      \
+        assert(argv)
+
+PERL_CALLCONV void
+Perl_init_constants(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_INIT_CONSTANTS
-PERL_CALLCONV void	Perl_init_dbargs(pTHX);
+
+PERL_CALLCONV void
+Perl_init_dbargs(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_INIT_DBARGS
-PERL_CALLCONV void	Perl_init_debugger(pTHX);
+
+PERL_CALLCONV void
+Perl_init_debugger(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_INIT_DEBUGGER
-PERL_CALLCONV int	Perl_init_i18nl10n(pTHX_ int printwarn);
+
+PERL_CALLCONV int
+Perl_init_i18nl10n(pTHX_ int printwarn);
 #define PERL_ARGS_ASSERT_INIT_I18NL10N
-#ifndef NO_MATHOMS
-PERL_CALLCONV int	Perl_init_i18nl14n(pTHX_ int printwarn)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_INIT_I18NL14N
-#endif
 
-PERL_CALLCONV void	Perl_init_named_cv(pTHX_ CV *cv, OP *nameop);
-#define PERL_ARGS_ASSERT_INIT_NAMED_CV	\
-	assert(cv); assert(nameop)
-PERL_CALLCONV void	Perl_init_stacks(pTHX);
+PERL_CALLCONV void
+Perl_init_named_cv(pTHX_ CV *cv, OP *nameop);
+#define PERL_ARGS_ASSERT_INIT_NAMED_CV          \
+        assert(cv); assert(nameop)
+
+PERL_CALLCONV void
+Perl_init_stacks(pTHX);
 #define PERL_ARGS_ASSERT_INIT_STACKS
-PERL_CALLCONV void	Perl_init_tm(pTHX_ struct tm *ptm);
-#define PERL_ARGS_ASSERT_INIT_TM	\
-	assert(ptm)
-PERL_CALLCONV void	Perl_init_uniprops(pTHX);
+
+PERL_CALLCONV void
+Perl_init_tm(pTHX_ struct tm *ptm);
+#define PERL_ARGS_ASSERT_INIT_TM                \
+        assert(ptm)
+
+PERL_CALLCONV void
+Perl_init_uniprops(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_INIT_UNIPROPS
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_instr(const char* big, const char* little)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_INSTR	\
-	assert(big); assert(little)
-#endif
 
-PERL_CALLCONV U32	Perl_intro_my(pTHX);
+PERL_CALLCONV U32
+Perl_intro_my(pTHX);
 #define PERL_ARGS_ASSERT_INTRO_MY
-PERL_CALLCONV OP*	Perl_invert(pTHX_ OP* cmd)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVERT
 
-PERL_CALLCONV void	Perl_invmap_dump(pTHX_ SV* invlist, UV * map);
-#define PERL_ARGS_ASSERT_INVMAP_DUMP	\
-	assert(invlist); assert(map)
-PERL_CALLCONV bool	Perl_io_close(pTHX_ IO* io, GV *gv, bool not_implicit, bool warn_on_fail);
-#define PERL_ARGS_ASSERT_IO_CLOSE	\
-	assert(io)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISC9_STRICT_UTF8_CHAR	\
-	assert(s0); assert(e)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISSTRICT_UTF8_CHAR	\
-	assert(s0); assert(e)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	Perl_isUTF8_CHAR(const U8 * const s0, const U8 * const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISUTF8_CHAR	\
-	assert(s0); assert(e)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	Perl_isUTF8_CHAR_flags(const U8 * const s0, const U8 * const e, const U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISUTF8_CHAR_FLAGS	\
-	assert(s0); assert(e)
-#endif
-
-/* PERL_CALLCONV bool	is_ascii_string(const U8* const s, STRLEN len)
-			__attribute__warn_unused_result__
-			__attribute__pure__; */
-#define PERL_ARGS_ASSERT_IS_ASCII_STRING
-
-/* PERL_CALLCONV bool	is_c9strict_utf8_string(const U8 *s, STRLEN len)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING
-
-/* PERL_CALLCONV bool	is_c9strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
-#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOC
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_c9strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
-#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN	\
-	assert(s)
-#endif
-/* PERL_CALLCONV bool	is_invariant_string(const U8* const s, STRLEN len)
-			__attribute__warn_unused_result__
-			__attribute__pure__; */
-#define PERL_ARGS_ASSERT_IS_INVARIANT_STRING
+PERL_CALLCONV OP *
+Perl_invert(pTHX_ OP *cmd)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INVERT
 
-PERL_CALLCONV I32	Perl_is_lvalue_sub(pTHX)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_invmap_dump(pTHX_ SV *invlist, UV *map)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_INVMAP_DUMP            \
+        assert(invlist); assert(map)
+
+PERL_CALLCONV bool
+Perl_io_close(pTHX_ IO *io, GV *gv, bool is_explicit, bool warn_on_fail)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_IO_CLOSE               \
+        assert(io)
+
+/* PERL_CALLCONV bool
+is_ascii_string(const U8 * const s, STRLEN len)
+        __attribute__warn_unused_result__
+        __attribute__pure__; */
+
+/* PERL_CALLCONV bool
+is_c9strict_utf8_string(const U8 *s, STRLEN len)
+        __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_c9strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
+
+/* PERL_CALLCONV bool
+is_invariant_string(const U8 * const s, STRLEN len)
+        __attribute__warn_unused_result__
+        __attribute__pure__; */
+
+PERL_CALLCONV I32
+Perl_is_lvalue_sub(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_IS_LVALUE_SUB
 
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL	\
-	assert(pv); assert(what); assert(op_name)
-#endif
-
-/* PERL_CALLCONV bool	is_strict_utf8_string(const U8 *s, STRLEN len)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING
-
-/* PERL_CALLCONV bool	is_strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
-#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOC
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
-#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN	\
-	assert(s)
-#endif
-PERL_CALLCONV Size_t	Perl_is_utf8_FF_helper_(const U8 * const s0, const U8 * const e, const bool require_partial)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_IS_UTF8_FF_HELPER_	\
-	assert(s0); assert(e)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV STRLEN	Perl_is_utf8_char(const U8 *s)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR	\
-	assert(s)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV STRLEN	Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end);
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF	\
-	assert(buf); assert(buf_end)
-#endif
-PERL_CALLCONV STRLEN	Perl_is_utf8_char_helper_(const U8 * const s, const U8 * e, const U32 flags)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_HELPER_	\
-	assert(s); assert(e)
-
-/* PERL_CALLCONV bool	is_utf8_fixed_width_buf_flags(const U8 * const s, STRLEN len, const U32 flags); */
-#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_FLAGS
-/* PERL_CALLCONV bool	is_utf8_fixed_width_buf_loc_flags(const U8 * const s, STRLEN len, const U8 **ep, const U32 flags); */
-#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOC_FLAGS
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
-#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS	\
-	assert(s)
-#endif
-/* PERL_CALLCONV bool	is_utf8_invariant_string(const U8* const s, STRLEN len)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_invariant_string_loc(const U8* const s, STRLEN len, const U8 ** ep)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING_LOC	\
-	assert(s)
-#endif
-
-/* PERL_CALLCONV bool	is_utf8_string(const U8 *s, STRLEN len)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_string_flags(const U8 *s, STRLEN len, const U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS	\
-	assert(s)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC	\
-	assert(s); assert(ep)
-#endif
-/* PERL_CALLCONV bool	is_utf8_string_loc_flags(const U8 *s, STRLEN len, const U8 **ep, const U32 flags); */
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC_FLAGS
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN	\
-	assert(s)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_string_loclen_flags(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS	\
-	assert(s)
-#endif
-/* PERL_CALLCONV bool	is_utf8_valid_partial_char(const U8 * const s0, const U8 * const e)
-			__attribute__warn_unused_result__
-			__attribute__pure__; */
-#define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_valid_partial_char_flags(const U8 * const s0, const U8 * const e, const U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS	\
-	assert(s0); assert(e)
-#endif
-
-PERL_CALLCONV bool	Perl_isinfnan(NV nv)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
+/* PERL_CALLCONV bool
+is_strict_utf8_string(const U8 *s, STRLEN len)
+        __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_strict_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
+
+PERL_CALLCONV Size_t
+Perl_is_utf8_FF_helper_(const U8 * const s0, const U8 * const e, const bool require_partial)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
+#define PERL_ARGS_ASSERT_IS_UTF8_FF_HELPER_     \
+        assert(s0); assert(e)
+
+PERL_CALLCONV STRLEN
+Perl_is_utf8_char_helper_(const U8 * const s, const U8 *e, const U32 flags)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
+#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_HELPER_   \
+        assert(s); assert(e)
+
+/* PERL_CALLCONV bool
+is_utf8_fixed_width_buf_flags(const U8 * const s, STRLEN len, const U32 flags); */
+
+/* PERL_CALLCONV bool
+is_utf8_fixed_width_buf_loc_flags(const U8 * const s, STRLEN len, const U8 **ep, const U32 flags); */
+
+/* PERL_CALLCONV bool
+is_utf8_invariant_string(const U8 * const s, STRLEN len)
+        __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_utf8_string(const U8 *s, STRLEN len)
+        __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV bool
+is_utf8_string_loc_flags(const U8 *s, STRLEN len, const U8 **ep, const U32 flags); */
+
+/* PERL_CALLCONV bool
+is_utf8_valid_partial_char(const U8 * const s0, const U8 * const e)
+        __attribute__warn_unused_result__
+        __attribute__pure__; */
+
+PERL_CALLCONV bool
+Perl_isinfnan(NV nv)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
 #define PERL_ARGS_ASSERT_ISINFNAN
 
-PERL_CALLCONV bool	Perl_isinfnansv(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_ISINFNANSV	\
-	assert(sv)
-PERL_CALLCONV OP*	Perl_jmaybe(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_JMAYBE	\
-	assert(o)
-PERL_CALLCONV I32	Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_KEYWORD	\
-	assert(name)
-
-PERL_CALLCONV int	Perl_keyword_plugin_standard(pTHX_ char* keyword_ptr, STRLEN keyword_len, OP** op_ptr);
-#define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD	\
-	assert(keyword_ptr); assert(op_ptr)
-PERL_CALLCONV void	Perl_leave_adjust_stacks(pTHX_ SV **from_sp, SV **to_sp, U8 gimme, int filter);
-#define PERL_ARGS_ASSERT_LEAVE_ADJUST_STACKS	\
-	assert(from_sp); assert(to_sp)
-PERL_CALLCONV void	Perl_leave_scope(pTHX_ I32 base);
+PERL_CALLCONV bool
+Perl_isinfnansv(pTHX_ SV *sv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_ISINFNANSV             \
+        assert(sv)
+
+PERL_CALLCONV OP *
+Perl_jmaybe(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_JMAYBE                 \
+        assert(o)
+
+PERL_CALLCONV I32
+Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords)
+        __attribute__warn_unused_result__
+        __attribute__pure__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_KEYWORD                \
+        assert(name)
+
+PERL_CALLCONV int
+Perl_keyword_plugin_standard(pTHX_ char *keyword_ptr, STRLEN keyword_len, OP **op_ptr);
+#define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD \
+        assert(keyword_ptr); assert(op_ptr)
+
+PERL_CALLCONV void
+Perl_leave_adjust_stacks(pTHX_ SV **from_sp, SV **to_sp, U8 gimme, int filter);
+#define PERL_ARGS_ASSERT_LEAVE_ADJUST_STACKS    \
+        assert(from_sp); assert(to_sp)
+
+PERL_CALLCONV void
+Perl_leave_scope(pTHX_ I32 base);
 #define PERL_ARGS_ASSERT_LEAVE_SCOPE
-PERL_CALLCONV bool	Perl_lex_bufutf8(pTHX);
+
+PERL_CALLCONV bool
+Perl_lex_bufutf8(pTHX);
 #define PERL_ARGS_ASSERT_LEX_BUFUTF8
-PERL_CALLCONV void	Perl_lex_discard_to(pTHX_ char* ptr);
-#define PERL_ARGS_ASSERT_LEX_DISCARD_TO	\
-	assert(ptr)
-PERL_CALLCONV char*	Perl_lex_grow_linestr(pTHX_ STRLEN len);
+
+PERL_CALLCONV void
+Perl_lex_discard_to(pTHX_ char *ptr);
+#define PERL_ARGS_ASSERT_LEX_DISCARD_TO         \
+        assert(ptr)
+
+PERL_CALLCONV char *
+Perl_lex_grow_linestr(pTHX_ STRLEN len);
 #define PERL_ARGS_ASSERT_LEX_GROW_LINESTR
-PERL_CALLCONV bool	Perl_lex_next_chunk(pTHX_ U32 flags);
+
+PERL_CALLCONV bool
+Perl_lex_next_chunk(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_LEX_NEXT_CHUNK
-PERL_CALLCONV I32	Perl_lex_peek_unichar(pTHX_ U32 flags);
+
+PERL_CALLCONV I32
+Perl_lex_peek_unichar(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_LEX_PEEK_UNICHAR
-PERL_CALLCONV void	Perl_lex_read_space(pTHX_ U32 flags);
+
+PERL_CALLCONV void
+Perl_lex_read_space(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_LEX_READ_SPACE
-PERL_CALLCONV void	Perl_lex_read_to(pTHX_ char* ptr);
-#define PERL_ARGS_ASSERT_LEX_READ_TO	\
-	assert(ptr)
-PERL_CALLCONV I32	Perl_lex_read_unichar(pTHX_ U32 flags);
+
+PERL_CALLCONV void
+Perl_lex_read_to(pTHX_ char *ptr);
+#define PERL_ARGS_ASSERT_LEX_READ_TO            \
+        assert(ptr)
+
+PERL_CALLCONV I32
+Perl_lex_read_unichar(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_LEX_READ_UNICHAR
-PERL_CALLCONV void	Perl_lex_start(pTHX_ SV* line, PerlIO *rsfp, U32 flags);
+
+PERL_CALLCONV void
+Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, U32 flags);
 #define PERL_ARGS_ASSERT_LEX_START
-PERL_CALLCONV void	Perl_lex_stuff_pv(pTHX_ const char* pv, U32 flags);
-#define PERL_ARGS_ASSERT_LEX_STUFF_PV	\
-	assert(pv)
-PERL_CALLCONV void	Perl_lex_stuff_pvn(pTHX_ const char* pv, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_LEX_STUFF_PVN	\
-	assert(pv)
-PERL_CALLCONV void	Perl_lex_stuff_sv(pTHX_ SV* sv, U32 flags);
-#define PERL_ARGS_ASSERT_LEX_STUFF_SV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_lex_unstuff(pTHX_ char* ptr);
-#define PERL_ARGS_ASSERT_LEX_UNSTUFF	\
-	assert(ptr)
-PERL_CALLCONV OP*	Perl_list(pTHX_ OP* o);
+
+PERL_CALLCONV void
+Perl_lex_stuff_pv(pTHX_ const char *pv, U32 flags);
+#define PERL_ARGS_ASSERT_LEX_STUFF_PV           \
+        assert(pv)
+
+PERL_CALLCONV void
+Perl_lex_stuff_pvn(pTHX_ const char *pv, STRLEN len, U32 flags);
+#define PERL_ARGS_ASSERT_LEX_STUFF_PVN          \
+        assert(pv)
+
+PERL_CALLCONV void
+Perl_lex_stuff_sv(pTHX_ SV *sv, U32 flags);
+#define PERL_ARGS_ASSERT_LEX_STUFF_SV           \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_lex_unstuff(pTHX_ char *ptr);
+#define PERL_ARGS_ASSERT_LEX_UNSTUFF            \
+        assert(ptr)
+
+PERL_CALLCONV OP *
+Perl_list(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_LIST
-PERL_CALLCONV HV*	Perl_load_charnames(pTHX_ SV * char_name, const char * context, const STRLEN context_len, const char ** error_msg)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LOAD_CHARNAMES	\
-	assert(char_name); assert(context); assert(error_msg)
-
-PERL_CALLCONV void	Perl_load_module(pTHX_ U32 flags, SV* name, SV* ver, ...);
-#define PERL_ARGS_ASSERT_LOAD_MODULE	\
-	assert(name)
-PERL_CALLCONV OP*	Perl_localize(pTHX_ OP *o, I32 lex);
-#define PERL_ARGS_ASSERT_LOCALIZE	\
-	assert(o)
-PERL_CALLCONV I32	Perl_looks_like_number(pTHX_ SV *const sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER	\
-	assert(sv)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned	Perl_lsbit_pos32(U32 word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LSBIT_POS32
-#endif
-
-PERL_CALLCONV int	Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_cleararylen_p(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARENV	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_clearhint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARHINT	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_clearhints(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARHINTS	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_clearisa(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARISA	\
-	assert(mg)
-PERL_CALLCONV int	Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARPACK	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_CLEARSIG	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_copycallchecker(pTHX_ SV* sv, MAGIC *mg, SV *nsv, const char *name, I32 namlen);
-#define PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER	\
-	assert(sv); assert(mg); assert(nsv)
-PERL_CALLCONV void	Perl_magic_dump(pTHX_ const MAGIC *mg);
+
+PERL_CALLCONV HV *
+Perl_load_charnames(pTHX_ SV *char_name, const char *context, const STRLEN context_len, const char **error_msg)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_LOAD_CHARNAMES         \
+        assert(char_name); assert(context); assert(error_msg)
+
+PERL_CALLCONV void
+Perl_load_module(pTHX_ U32 flags, SV *name, SV *ver, ...);
+#define PERL_ARGS_ASSERT_LOAD_MODULE            \
+        assert(name)
+
+PERL_CALLCONV_NO_RET void
+Perl_locale_panic(const char *msg, const char *file_name, const line_t line, const int errnum)
+        __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_LOCALE_PANIC           \
+        assert(msg); assert(file_name)
+
+PERL_CALLCONV OP *
+Perl_localize(pTHX_ OP *o, I32 lex)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_LOCALIZE               \
+        assert(o)
+
+PERL_CALLCONV I32
+Perl_looks_like_number(pTHX_ SV * const sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER      \
+        assert(sv)
+
+PERL_CALLCONV int
+Perl_magic_clear_all_env(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV    \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_cleararylen_p(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P    \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearenv(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARENV         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhint(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHINT        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhints(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHINTS       \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhook(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHOOK        \
+        assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearhookall(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARHOOKALL     \
+        assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearisa(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARISA         \
+        assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearpack(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARPACK        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_clearsig(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_CLEARSIG         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_copycallchecker(pTHX_ SV *sv, MAGIC *mg, SV *nsv, const char *name, I32 namlen)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER  \
+        assert(sv); assert(mg); assert(nsv)
+
+PERL_CALLCONV void
+Perl_magic_dump(pTHX_ const MAGIC *mg);
 #define PERL_ARGS_ASSERT_MAGIC_DUMP
-PERL_CALLCONV int	Perl_magic_existspack(pTHX_ SV* sv, const MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_EXISTSPACK	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_freearylen_p(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_freemglob(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEMGLOB	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_freeovrld(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEOVRLD	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_freeutf8(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREEUTF8	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_get(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GET	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getarylen(pTHX_ SV* sv, const MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETARYLEN	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getdebugvar(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getdefelem(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETDEFELEM	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getnkeys(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETNKEYS	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getpack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETPACK	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getpos(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETPOS	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getsig(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETSIG	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getsubstr(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETSUBSTR	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_gettaint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETTAINT	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getuvar(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETUVAR	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_getvec(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_GETVEC	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg);
-#define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS	\
-	assert(sv); assert(mg)
-PERL_CALLCONV SV*	Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, U32 argc, ...);
-#define PERL_ARGS_ASSERT_MAGIC_METHCALL	\
-	assert(sv); assert(mg); assert(meth)
-PERL_CALLCONV int	Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key);
-#define PERL_ARGS_ASSERT_MAGIC_NEXTPACK	\
-	assert(sv); assert(mg); assert(key)
-PERL_CALLCONV U32	Perl_magic_regdata_cnt(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_REGDATA_CNT	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_regdatum_get(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET	\
-	assert(sv); assert(mg)
-PERL_CALLCONV SV*	Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg);
-#define PERL_ARGS_ASSERT_MAGIC_SCALARPACK	\
-	assert(hv); assert(mg)
-PERL_CALLCONV int	Perl_magic_set(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SET	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETARYLEN	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETDBLINE	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setdebugvar(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setdefelem(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETDEFELEM	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setenv(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETENV	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_sethint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETHINT	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setisa(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETISA	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setlvref(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETLVREF	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETMGLOB	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setnkeys(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETNKEYS	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setnonelem(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETNONELEM	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setpack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETPACK	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setpos(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETPOS	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setregexp(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETREGEXP	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setsig(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETSIG	\
-	assert(mg)
-PERL_CALLCONV int	Perl_magic_setsigall(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETSIGALL	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setsubstr(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETSUBSTR	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETTAINT	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setutf8(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETUTF8	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETUVAR	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETVEC	\
-	assert(sv); assert(mg)
-PERL_CALLCONV U32	Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SIZEPACK	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_WIPEPACK	\
-	assert(sv); assert(mg)
-PERL_CALLCONV Malloc_t	Perl_malloc(MEM_SIZE nbytes)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV int
+Perl_magic_existspack(pTHX_ SV *sv, const MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_EXISTSPACK       \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freearylen_p(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P     \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freedestruct(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEDESTRUCT     \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freemglob(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEMGLOB        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freeovrld(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEOVRLD        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_freeutf8(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_FREEUTF8         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GET              \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getarylen(pTHX_ SV *sv, const MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETARYLEN        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getdebugvar(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR      \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getdefelem(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETDEFELEM       \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getnkeys(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETNKEYS         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getpack(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETPACK          \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getpos(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETPOS           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getsig(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETSIG           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getsubstr(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETSUBSTR        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_gettaint(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETTAINT         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getuvar(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETUVAR          \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_getvec(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_GETVEC           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS     \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV SV *
+Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, U32 argc, ...)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_METHCALL         \
+        assert(sv); assert(mg); assert(meth)
+
+PERL_CALLCONV int
+Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_NEXTPACK         \
+        assert(sv); assert(mg); assert(key)
+
+PERL_CALLCONV U32
+Perl_magic_regdata_cnt(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_REGDATA_CNT      \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET     \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV SV *
+Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SCALARPACK       \
+        assert(hv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SET              \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_set_all_env(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV      \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setarylen(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETARYLEN        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setdbline(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETDBLINE        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setdebugvar(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR      \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setdefelem(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETDEFELEM       \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETENV           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_sethint(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETHINT          \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_sethook(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETHOOK          \
+        assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_sethookall(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETHOOKALL       \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETISA           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setlvref(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETLVREF         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setmglob(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETMGLOB         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setnkeys(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETNKEYS         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setnonelem(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETNONELEM       \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setpack(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETPACK          \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETPOS           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setregexp(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETREGEXP        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETSIG           \
+        assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setsigall(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETSIGALL        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setsubstr(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETSUBSTR        \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_settaint(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETTAINT         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setutf8(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETUTF8          \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setuvar(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETUVAR          \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setvec(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SETVEC           \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV U32
+Perl_magic_sizepack(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_SIZEPACK         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_wipepack(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MAGIC_WIPEPACK         \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV Malloc_t
+Perl_malloc(MEM_SIZE nbytes)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_MALLOC
 
-PERL_CALLCONV I32 *	Perl_markstack_grow(pTHX);
+PERL_CALLCONV I32 *
+Perl_markstack_grow(pTHX);
 #define PERL_ARGS_ASSERT_MARKSTACK_GROW
-PERL_CALLCONV SV*	Perl_mess(pTHX_ const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_MESS	\
-	assert(pat)
-
-PERL_CALLCONV SV*	Perl_mess_sv(pTHX_ SV* basemsg, bool consume);
-#define PERL_ARGS_ASSERT_MESS_SV	\
-	assert(basemsg)
-PERL_CALLCONV Free_t	Perl_mfree(Malloc_t where);
+
+PERL_CALLCONV int
+Perl_mbtowc_(pTHX_ const wchar_t *pwc, const char *s, const Size_t len);
+#define PERL_ARGS_ASSERT_MBTOWC_
+
+PERL_CALLCONV SV *
+Perl_mess(pTHX_ const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_MESS                   \
+        assert(pat)
+
+PERL_CALLCONV SV *
+Perl_mess_sv(pTHX_ SV *basemsg, bool consume);
+#define PERL_ARGS_ASSERT_MESS_SV                \
+        assert(basemsg)
+
+PERL_CALLCONV Free_t
+Perl_mfree(Malloc_t where);
 #define PERL_ARGS_ASSERT_MFREE
-PERL_CALLCONV int	Perl_mg_clear(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_CLEAR	\
-	assert(sv)
-PERL_CALLCONV int	Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen);
-#define PERL_ARGS_ASSERT_MG_COPY	\
-	assert(sv); assert(nsv)
-PERL_CALLCONV MAGIC*	Perl_mg_find(const SV* sv, int type)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MG_FIND
 
-PERL_CALLCONV MAGIC*	Perl_mg_find_mglob(pTHX_ SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MG_FIND_MGLOB	\
-	assert(sv)
+PERL_CALLCONV int
+Perl_mg_clear(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_CLEAR               \
+        assert(sv)
+
+PERL_CALLCONV int
+Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen);
+#define PERL_ARGS_ASSERT_MG_COPY                \
+        assert(sv); assert(nsv)
+
+PERL_CALLCONV MAGIC *
+Perl_mg_find(const SV *sv, int type)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_MG_FIND
 
-PERL_CALLCONV MAGIC*	Perl_mg_findext(const SV* sv, int type, const MGVTBL *vtbl)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV MAGIC *
+Perl_mg_find_mglob(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_MG_FIND_MGLOB          \
+        assert(sv)
+
+PERL_CALLCONV MAGIC *
+Perl_mg_findext(const SV *sv, int type, const MGVTBL *vtbl)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_MG_FINDEXT
 
-PERL_CALLCONV int	Perl_mg_free(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_FREE	\
-	assert(sv)
-PERL_CALLCONV void	Perl_mg_free_type(pTHX_ SV* sv, int how);
-#define PERL_ARGS_ASSERT_MG_FREE_TYPE	\
-	assert(sv)
-PERL_CALLCONV void	Perl_mg_freeext(pTHX_ SV* sv, int how, const MGVTBL *vtbl);
-#define PERL_ARGS_ASSERT_MG_FREEEXT	\
-	assert(sv)
-PERL_CALLCONV int	Perl_mg_get(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_GET	\
-	assert(sv)
-PERL_CALLCONV U32	Perl_mg_length(pTHX_ SV* sv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_MG_LENGTH	\
-	assert(sv)
-
-PERL_CALLCONV void	Perl_mg_localize(pTHX_ SV* sv, SV* nsv, bool setmagic);
-#define PERL_ARGS_ASSERT_MG_LOCALIZE	\
-	assert(sv); assert(nsv)
-PERL_CALLCONV void	Perl_mg_magical(SV* sv);
-#define PERL_ARGS_ASSERT_MG_MAGICAL	\
-	assert(sv)
-PERL_CALLCONV int	Perl_mg_set(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_SET	\
-	assert(sv)
-PERL_CALLCONV I32	Perl_mg_size(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_MG_SIZE	\
-	assert(sv)
-PERL_CALLCONV void	Perl_mini_mktime(struct tm *ptm);
-#define PERL_ARGS_ASSERT_MINI_MKTIME	\
-	assert(ptm)
-PERL_CALLCONV int	Perl_mode_from_discipline(pTHX_ const char* s, STRLEN len);
+PERL_CALLCONV int
+Perl_mg_free(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_FREE                \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_mg_free_type(pTHX_ SV *sv, int how);
+#define PERL_ARGS_ASSERT_MG_FREE_TYPE           \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_mg_freeext(pTHX_ SV *sv, int how, const MGVTBL *vtbl);
+#define PERL_ARGS_ASSERT_MG_FREEEXT             \
+        assert(sv)
+
+PERL_CALLCONV int
+Perl_mg_get(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_GET                 \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_mg_localize(pTHX_ SV *sv, SV *nsv, bool setmagic)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MG_LOCALIZE            \
+        assert(sv); assert(nsv)
+
+PERL_CALLCONV void
+Perl_mg_magical(SV *sv);
+#define PERL_ARGS_ASSERT_MG_MAGICAL             \
+        assert(sv)
+
+PERL_CALLCONV int
+Perl_mg_set(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_SET                 \
+        assert(sv)
+
+PERL_CALLCONV I32
+Perl_mg_size(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_MG_SIZE                \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_mini_mktime(struct tm *ptm);
+#define PERL_ARGS_ASSERT_MINI_MKTIME            \
+        assert(ptm)
+
+PERL_CALLCONV int
+Perl_mode_from_discipline(pTHX_ const char *s, STRLEN len)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_MODE_FROM_DISCIPLINE
-PERL_CALLCONV void *	Perl_more_bodies(pTHX_ const svtype sv_type, const size_t body_size, const size_t arena_size);
+
+PERL_CALLCONV void *
+Perl_more_bodies(pTHX_ const svtype sv_type, const size_t body_size, const size_t arena_size);
 #define PERL_ARGS_ASSERT_MORE_BODIES
-PERL_CALLCONV const char*	Perl_moreswitches(pTHX_ const char* s);
-#define PERL_ARGS_ASSERT_MORESWITCHES	\
-	assert(s)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE char *	Perl_mortal_getenv(const char * str)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MORTAL_GETENV	\
-	assert(str)
-#endif
-
-PERL_CALLCONV const struct mro_alg *	Perl_mro_get_from_name(pTHX_ SV *name);
-#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME	\
-	assert(name)
-PERL_CALLCONV AV*	Perl_mro_get_linear_isa(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA	\
-	assert(stash)
-PERL_CALLCONV SV*	Perl_mro_get_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which);
-#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA	\
-	assert(smeta); assert(which)
-PERL_CALLCONV void	Perl_mro_isa_changed_in(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN	\
-	assert(stash)
-PERL_CALLCONV struct mro_meta*	Perl_mro_meta_init(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_META_INIT	\
-	assert(stash)
-PERL_CALLCONV void	Perl_mro_method_changed_in(pTHX_ HV* stash);
-#define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN	\
-	assert(stash)
-PERL_CALLCONV void	Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash, const GV * const gv, U32 flags);
-#define PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED	\
-	assert(gv)
-PERL_CALLCONV void	Perl_mro_register(pTHX_ const struct mro_alg *mro);
-#define PERL_ARGS_ASSERT_MRO_REGISTER	\
-	assert(mro)
-PERL_CALLCONV void	Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name);
-#define PERL_ARGS_ASSERT_MRO_SET_MRO	\
-	assert(meta); assert(name)
-PERL_CALLCONV SV*	Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which, SV *const data);
-#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA	\
-	assert(smeta); assert(which); assert(data)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned	Perl_msbit_pos32(U32 word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MSBIT_POS32
-#endif
-
-PERL_CALLCONV SV*	Perl_multiconcat_stringify(pTHX_ const OP* o);
-#define PERL_ARGS_ASSERT_MULTICONCAT_STRINGIFY	\
-	assert(o)
-PERL_CALLCONV SV*	Perl_multideref_stringify(pTHX_ const OP* o, CV *cv);
-#define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY	\
-	assert(o)
-PERL_CALLCONV NV	Perl_my_atof(pTHX_ const char *s);
-#define PERL_ARGS_ASSERT_MY_ATOF	\
-	assert(s)
-PERL_CALLCONV char*	Perl_my_atof2(pTHX_ const char *orig, NV* value);
-#define PERL_ARGS_ASSERT_MY_ATOF2	\
-	assert(orig); assert(value)
-PERL_CALLCONV char*	Perl_my_atof3(pTHX_ const char *orig, NV* value, const STRLEN len);
-#define PERL_ARGS_ASSERT_MY_ATOF3	\
-	assert(orig); assert(value)
-PERL_CALLCONV OP *	Perl_my_attrs(pTHX_ OP *o, OP *attrs);
-#define PERL_ARGS_ASSERT_MY_ATTRS	\
-	assert(o)
-PERL_CALLCONV void	Perl_my_clearenv(pTHX);
+
+PERL_CALLCONV const char *
+Perl_moreswitches(pTHX_ const char *s);
+#define PERL_ARGS_ASSERT_MORESWITCHES           \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_mortal_destructor_sv(pTHX_ SV *coderef, SV *args);
+#define PERL_ARGS_ASSERT_MORTAL_DESTRUCTOR_SV   \
+        assert(coderef)
+
+PERL_CALLCONV void
+Perl_mortal_svfunc_x(pTHX_ SVFUNC_t f, SV *p);
+#define PERL_ARGS_ASSERT_MORTAL_SVFUNC_X
+
+PERL_CALLCONV const struct mro_alg *
+Perl_mro_get_from_name(pTHX_ SV *name);
+#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME      \
+        assert(name)
+
+PERL_CALLCONV AV *
+Perl_mro_get_linear_isa(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA     \
+        assert(stash)
+
+PERL_CALLCONV SV *
+Perl_mro_get_private_data(pTHX_ struct mro_meta * const smeta, const struct mro_alg * const which);
+#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA   \
+        assert(smeta); assert(which)
+
+PERL_CALLCONV void
+Perl_mro_isa_changed_in(pTHX_ HV *stash)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN     \
+        assert(stash)
+
+PERL_CALLCONV struct mro_meta *
+Perl_mro_meta_init(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_MRO_META_INIT          \
+        assert(stash)
+
+PERL_CALLCONV void
+Perl_mro_method_changed_in(pTHX_ HV *stash);
+#define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN  \
+        assert(stash)
+
+PERL_CALLCONV void
+Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash, const GV * const gv, U32 flags);
+#define PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED      \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_mro_register(pTHX_ const struct mro_alg *mro);
+#define PERL_ARGS_ASSERT_MRO_REGISTER           \
+        assert(mro)
+
+PERL_CALLCONV void
+Perl_mro_set_mro(pTHX_ struct mro_meta * const meta, SV * const name);
+#define PERL_ARGS_ASSERT_MRO_SET_MRO            \
+        assert(meta); assert(name)
+
+PERL_CALLCONV SV *
+Perl_mro_set_private_data(pTHX_ struct mro_meta * const smeta, const struct mro_alg * const which, SV * const data);
+#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA   \
+        assert(smeta); assert(which); assert(data)
+
+PERL_CALLCONV SV *
+Perl_multiconcat_stringify(pTHX_ const OP *o);
+#define PERL_ARGS_ASSERT_MULTICONCAT_STRINGIFY  \
+        assert(o)
+
+PERL_CALLCONV SV *
+Perl_multideref_stringify(pTHX_ const OP *o, CV *cv);
+#define PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY   \
+        assert(o)
+
+PERL_CALLCONV NV
+Perl_my_atof(pTHX_ const char *s);
+#define PERL_ARGS_ASSERT_MY_ATOF                \
+        assert(s)
+
+PERL_CALLCONV char *
+Perl_my_atof2(pTHX_ const char *orig, NV *value);
+#define PERL_ARGS_ASSERT_MY_ATOF2               \
+        assert(orig); assert(value)
+
+PERL_CALLCONV char *
+Perl_my_atof3(pTHX_ const char *orig, NV *value, const STRLEN len);
+#define PERL_ARGS_ASSERT_MY_ATOF3               \
+        assert(orig); assert(value)
+
+PERL_CALLCONV OP *
+Perl_my_attrs(pTHX_ OP *o, OP *attrs)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_ATTRS               \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_my_clearenv(pTHX);
 #define PERL_ARGS_ASSERT_MY_CLEARENV
-PERL_CALLCONV int	Perl_my_dirfd(DIR* dir);
+
+PERL_CALLCONV int
+Perl_my_dirfd(DIR *dir);
 #define PERL_ARGS_ASSERT_MY_DIRFD
-PERL_CALLCONV_NO_RET void	Perl_my_exit(pTHX_ U32 status)
-			__attribute__noreturn__;
+
+PERL_CALLCONV_NO_RET void
+Perl_my_exit(pTHX_ U32 status)
+        __attribute__noreturn__;
 #define PERL_ARGS_ASSERT_MY_EXIT
 
-PERL_CALLCONV_NO_RET void	Perl_my_failure_exit(pTHX)
-			__attribute__noreturn__;
+PERL_CALLCONV_NO_RET void
+Perl_my_failure_exit(pTHX)
+        __attribute__noreturn__;
 #define PERL_ARGS_ASSERT_MY_FAILURE_EXIT
 
-PERL_CALLCONV I32	Perl_my_fflush_all(pTHX);
+PERL_CALLCONV I32
+Perl_my_fflush_all(pTHX);
 #define PERL_ARGS_ASSERT_MY_FFLUSH_ALL
-PERL_CALLCONV Pid_t	Perl_my_fork(void);
+
+PERL_CALLCONV Pid_t
+Perl_my_fork(void);
 #define PERL_ARGS_ASSERT_MY_FORK
-/* PERL_CALLCONV I32	my_lstat(pTHX); */
-#define PERL_ARGS_ASSERT_MY_LSTAT
-PERL_CALLCONV I32	Perl_my_lstat_flags(pTHX_ const U32 flags);
+
+/* PERL_CALLCONV I32
+my_lstat(pTHX); */
+
+PERL_CALLCONV I32
+Perl_my_lstat_flags(pTHX_ const U32 flags);
 #define PERL_ARGS_ASSERT_MY_LSTAT_FLAGS
-PERL_CALLCONV int	Perl_my_mkostemp_cloexec(char *templte, int flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC	\
-	assert(templte)
-
-PERL_CALLCONV int	Perl_my_mkstemp_cloexec(char *templte)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_MKSTEMP_CLOEXEC	\
-	assert(templte)
-
-PERL_CALLCONV PerlIO*	Perl_my_popen_list(pTHX_ const char* mode, int n, SV ** args);
-#define PERL_ARGS_ASSERT_MY_POPEN_LIST	\
-	assert(mode); assert(args)
-PERL_CALLCONV void	Perl_my_setenv(pTHX_ const char* nam, const char* val);
+
+PERL_CALLCONV int
+Perl_my_mkostemp_cloexec(char *templte, int flags)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_MKOSTEMP_CLOEXEC    \
+        assert(templte)
+
+PERL_CALLCONV int
+Perl_my_mkstemp_cloexec(char *templte)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_MKSTEMP_CLOEXEC     \
+        assert(templte)
+
+PERL_CALLCONV PerlIO *
+Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args);
+#define PERL_ARGS_ASSERT_MY_POPEN_LIST          \
+        assert(mode); assert(args)
+
+PERL_CALLCONV void
+Perl_my_setenv(pTHX_ const char *nam, const char *val);
 #define PERL_ARGS_ASSERT_MY_SETENV
-PERL_CALLCONV int	Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
-			__attribute__format__(__printf__,3,4);
-#define PERL_ARGS_ASSERT_MY_SNPRINTF	\
-	assert(buffer); assert(format)
 
-PERL_CALLCONV int	Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
+PERL_CALLCONV int
+Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
+        __attribute__format__(__printf__,3,4);
+#define PERL_ARGS_ASSERT_MY_SNPRINTF            \
+        assert(buffer); assert(format)
+
+PERL_CALLCONV int
+Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
 #define PERL_ARGS_ASSERT_MY_SOCKETPAIR
-/* PERL_CALLCONV I32	my_stat(pTHX); */
-#define PERL_ARGS_ASSERT_MY_STAT
-PERL_CALLCONV I32	Perl_my_stat_flags(pTHX_ const U32 flags);
+
+/* PERL_CALLCONV I32
+my_stat(pTHX); */
+
+PERL_CALLCONV I32
+Perl_my_stat_flags(pTHX_ const U32 flags);
 #define PERL_ARGS_ASSERT_MY_STAT_FLAGS
-PERL_CALLCONV char*	Perl_my_strerror(pTHX_ const int errnum);
-#define PERL_ARGS_ASSERT_MY_STRERROR
-PERL_CALLCONV char *	Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
-			__attribute__format__(__strftime__,pTHX_1,0);
-#define PERL_ARGS_ASSERT_MY_STRFTIME	\
-	assert(fmt)
-
-PERL_CALLCONV NV	Perl_my_strtod(const char * const s, char ** e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_STRTOD	\
-	assert(s)
 
-PERL_CALLCONV void	Perl_my_unexec(pTHX);
+PERL_CALLCONV const char *
+Perl_my_strerror(pTHX_ const int errnum, utf8ness_t *utf8ness)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_MY_STRERROR            \
+        assert(utf8ness)
+
+PERL_CALLCONV char *
+Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
+        __attribute__format__(__strftime__,pTHX_1,0);
+#define PERL_ARGS_ASSERT_MY_STRFTIME            \
+        assert(fmt)
+
+PERL_CALLCONV char *
+Perl_my_strftime8_temp(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst, utf8ness_t *utf8ness)
+        __attribute__format__(__strftime__,pTHX_1,0);
+#define PERL_ARGS_ASSERT_MY_STRFTIME8_TEMP      \
+        assert(fmt)
+
+PERL_CALLCONV NV
+Perl_my_strtod(const char * const s, char **e)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_MY_STRTOD              \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_my_unexec(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_MY_UNEXEC
-PERL_CALLCONV int	Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap);
-#define PERL_ARGS_ASSERT_MY_VSNPRINTF	\
-	assert(buffer); assert(format)
-PERL_CALLCONV OP*	Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
+
+PERL_CALLCONV int
+Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap);
+#define PERL_ARGS_ASSERT_MY_VSNPRINTF           \
+        assert(buffer); assert(format)
+
+PERL_CALLCONV OP *
+Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
 #define PERL_ARGS_ASSERT_NEWANONATTRSUB
-PERL_CALLCONV OP*	Perl_newANONHASH(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV OP *
+Perl_newANONHASH(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWANONHASH
 
-PERL_CALLCONV OP*	Perl_newANONLIST(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newANONLIST(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWANONLIST
 
-PERL_CALLCONV OP*	Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
+PERL_CALLCONV OP *
+Perl_newANONSUB(pTHX_ I32 floor, OP *proto, OP *block);
 #define PERL_ARGS_ASSERT_NEWANONSUB
-PERL_CALLCONV OP*	Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV OP *
+Perl_newARGDEFELEMOP(pTHX_ I32 flags, OP *expr, I32 argindex)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWARGDEFELEMOP        \
+        assert(expr)
+
+PERL_CALLCONV OP *
+Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWASSIGNOP
 
-/* PERL_CALLCONV CV*	newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); */
-#define PERL_ARGS_ASSERT_NEWATTRSUB
-PERL_CALLCONV CV*	Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block, bool o_is_gv);
+/* PERL_CALLCONV CV *
+newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); */
+
+PERL_CALLCONV CV *
+Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block, bool o_is_gv);
 #define PERL_ARGS_ASSERT_NEWATTRSUB_X
-#ifndef NO_MATHOMS
-PERL_CALLCONV AV*	Perl_newAV(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWAV
-#endif
-
-PERL_CALLCONV OP*	Perl_newAVREF(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWAVREF	\
-	assert(o)
-
-/* PERL_CALLCONV AV*	newAV_alloc_x(pTHX_ SSize_t size)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_NEWAV_ALLOC_X
-
-/* PERL_CALLCONV AV*	newAV_alloc_xz(pTHX_ SSize_t size)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_NEWAV_ALLOC_XZ
 
-PERL_CALLCONV OP*	Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newAVREF(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWAVREF               \
+        assert(o)
+
+/* PERL_CALLCONV AV *
+newAV_alloc_x(pTHX_ SSize_t size)
+        __attribute__warn_unused_result__; */
+
+/* PERL_CALLCONV AV *
+newAV_alloc_xz(pTHX_ SSize_t size)
+        __attribute__warn_unused_result__; */
+
+PERL_CALLCONV AV *
+Perl_newAVav(pTHX_ AV *oav)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWAVAV
+
+PERL_CALLCONV AV *
+Perl_newAVhv(pTHX_ HV *ohv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWAVHV
+
+PERL_CALLCONV OP *
+Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWBINOP
 
-PERL_CALLCONV OP*	Perl_newCONDOP(pTHX_ I32 flags, OP* first, OP* trueop, OP* falseop)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWCONDOP	\
-	assert(first)
+PERL_CALLCONV OP *
+Perl_newCONDOP(pTHX_ I32 flags, OP *first, OP *trueop, OP *falseop)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWCONDOP              \
+        assert(first)
 
-PERL_CALLCONV CV*	Perl_newCONSTSUB(pTHX_ HV* stash, const char* name, SV* sv);
+PERL_CALLCONV CV *
+Perl_newCONSTSUB(pTHX_ HV *stash, const char *name, SV *sv);
 #define PERL_ARGS_ASSERT_NEWCONSTSUB
-PERL_CALLCONV CV*	Perl_newCONSTSUB_flags(pTHX_ HV* stash, const char* name, STRLEN len, U32 flags, SV* sv);
+
+PERL_CALLCONV CV *
+Perl_newCONSTSUB_flags(pTHX_ HV *stash, const char *name, STRLEN len, U32 flags, SV *sv);
 #define PERL_ARGS_ASSERT_NEWCONSTSUB_FLAGS
-PERL_CALLCONV OP*	Perl_newCVREF(pTHX_ I32 flags, OP* o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWCVREF
 
-PERL_CALLCONV OP*	Perl_newDEFEROP(pTHX_ I32 flags, OP *block)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWDEFEROP	\
-	assert(block)
+PERL_CALLCONV OP *
+Perl_newCVREF(pTHX_ I32 flags, OP *o)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWCVREF
 
-PERL_CALLCONV OP*	Perl_newDEFSVOP(pTHX)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newDEFEROP(pTHX_ I32 flags, OP *block)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWDEFEROP             \
+        assert(block)
+
+PERL_CALLCONV OP *
+Perl_newDEFSVOP(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWDEFSVOP
 
-PERL_CALLCONV void	Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
+PERL_CALLCONV void
+Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block);
 #define PERL_ARGS_ASSERT_NEWFORM
-PERL_CALLCONV OP*	Perl_newFOROP(pTHX_ I32 flags, OP* sv, OP* expr, OP* block, OP* cont)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWFOROP	\
-	assert(expr)
-
-PERL_CALLCONV OP*	Perl_newGIVENOP(pTHX_ OP* cond, OP* block, PADOFFSET defsv_off)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWGIVENOP	\
-	assert(cond); assert(block)
-
-PERL_CALLCONV GP *	Perl_newGP(pTHX_ GV *const gv);
-#define PERL_ARGS_ASSERT_NEWGP	\
-	assert(gv)
-PERL_CALLCONV OP*	Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWGVOP	\
-	assert(gv)
 
-PERL_CALLCONV OP*	Perl_newGVREF(pTHX_ I32 type, OP* o)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWFOROP               \
+        assert(expr)
+
+PERL_CALLCONV OP *
+Perl_newGIVENOP(pTHX_ OP *cond, OP *block, PADOFFSET defsv_off)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGIVENOP             \
+        assert(cond); assert(block)
+
+PERL_CALLCONV GP *
+Perl_newGP(pTHX_ GV * const gv);
+#define PERL_ARGS_ASSERT_NEWGP                  \
+        assert(gv)
+
+PERL_CALLCONV OP *
+Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGVOP                \
+        assert(gv)
+
+PERL_CALLCONV OP *
+Perl_newGVREF(pTHX_ I32 type, OP *o)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWGVREF
 
-/* PERL_CALLCONV GV*	newGVgen(pTHX_ const char* pack); */
-#define PERL_ARGS_ASSERT_NEWGVGEN
-PERL_CALLCONV GV*	Perl_newGVgen_flags(pTHX_ const char* pack, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWGVGEN_FLAGS	\
-	assert(pack)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV HV*	Perl_newHV(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWHV
-#endif
-
-PERL_CALLCONV OP*	Perl_newHVREF(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWHVREF	\
-	assert(o)
+/* PERL_CALLCONV GV *
+newGVgen(pTHX_ const char *pack); */
 
-PERL_CALLCONV HV*	Perl_newHVhv(pTHX_ HV *hv)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV GV *
+Perl_newGVgen_flags(pTHX_ const char *pack, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGVGEN_FLAGS         \
+        assert(pack)
+
+PERL_CALLCONV OP *
+Perl_newHVREF(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWHVREF               \
+        assert(o)
+
+PERL_CALLCONV HV *
+Perl_newHVhv(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWHVHV
 
-#ifndef NO_MATHOMS
-PERL_CALLCONV IO*	Perl_newIO(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWIO
-#endif
-
-PERL_CALLCONV OP*	Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWLISTOP
 
-PERL_CALLCONV OP*	Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWLOGOP	\
-	assert(first); assert(other)
-
-PERL_CALLCONV OP*	Perl_newLOOPEX(pTHX_ I32 type, OP* label)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWLOOPEX	\
-	assert(label)
-
-PERL_CALLCONV OP*	Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWLOOPOP
-
-PERL_CALLCONV OP*	Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP* dynamic_meth)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWMETHOP	\
-	assert(dynamic_meth)
-
-PERL_CALLCONV OP*	Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV* const_meth)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWMETHOP_NAMED	\
-	assert(const_meth)
-
-PERL_CALLCONV CV *	Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
-#define PERL_ARGS_ASSERT_NEWMYSUB	\
-	assert(o)
-PERL_CALLCONV OP*	Perl_newNULLLIST(pTHX)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWLOGOP               \
+        assert(first); assert(other)
+
+PERL_CALLCONV OP *
+Perl_newLOOPEX(pTHX_ I32 type, OP *label)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWLOOPEX              \
+        assert(label)
+
+PERL_CALLCONV OP *
+Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP *expr, OP *block)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWLOOPOP              \
+        assert(expr)
+
+PERL_CALLCONV OP *
+Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP *dynamic_meth)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWMETHOP              \
+        assert(dynamic_meth)
+
+PERL_CALLCONV OP *
+Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV * const_meth)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWMETHOP_NAMED        \
+        assert(const_meth)
+
+PERL_CALLCONV CV *
+Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
+#define PERL_ARGS_ASSERT_NEWMYSUB               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_newNULLLIST(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWNULLLIST
 
-PERL_CALLCONV OP*	Perl_newOP(pTHX_ I32 optype, I32 flags)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newOP(pTHX_ I32 optype, I32 flags)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWOP
 
-PERL_CALLCONV PADNAMELIST *	Perl_newPADNAMELIST(size_t max)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV PADNAMELIST *
+Perl_newPADNAMELIST(size_t max)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWPADNAMELIST
 
-PERL_CALLCONV PADNAME *	Perl_newPADNAMEouter(PADNAME *outer)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPADNAMEOUTER	\
-	assert(outer)
-
-PERL_CALLCONV PADNAME *	Perl_newPADNAMEpvn(const char *s, STRLEN len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPADNAMEPVN	\
-	assert(s)
-
-PERL_CALLCONV OP*	Perl_newPMOP(pTHX_ I32 type, I32 flags)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV PADNAME *
+Perl_newPADNAMEouter(PADNAME *outer)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWPADNAMEOUTER        \
+        assert(outer)
+
+PERL_CALLCONV PADNAME *
+Perl_newPADNAMEpvn(const char *s, STRLEN len)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWPADNAMEPVN          \
+        assert(s)
+
+PERL_CALLCONV OP *
+Perl_newPMOP(pTHX_ I32 type, I32 flags)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWPMOP
 
-PERL_CALLCONV void	Perl_newPROG(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_NEWPROG	\
-	assert(o)
-PERL_CALLCONV OP*	Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_newPROG(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_NEWPROG                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWPVOP
 
-PERL_CALLCONV OP*	Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWRANGE	\
-	assert(left); assert(right)
-
-PERL_CALLCONV SV*	Perl_newRV(pTHX_ SV *const sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWRV	\
-	assert(sv)
-
-PERL_CALLCONV SV*	Perl_newRV_noinc(pTHX_ SV *const tmpRef)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWRV_NOINC	\
-	assert(tmpRef)
-
-PERL_CALLCONV OP*	Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newRANGE(pTHX_ I32 flags, OP *left, OP *right)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWRANGE               \
+        assert(left); assert(right)
+
+PERL_CALLCONV SV *
+Perl_newRV(pTHX_ SV * const sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWRV                  \
+        assert(sv)
+
+PERL_CALLCONV OP *
+Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listop)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSLICEOP
 
-PERL_CALLCONV OP*	Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSTATEOP
 
-PERL_CALLCONV CV*	Perl_newSTUB(pTHX_ GV *gv, bool fake);
-#define PERL_ARGS_ASSERT_NEWSTUB	\
-	assert(gv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV CV*	Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block);
-#define PERL_ARGS_ASSERT_NEWSUB
-#endif
-PERL_CALLCONV SV*	Perl_newSV(pTHX_ const STRLEN len)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV CV *
+Perl_newSTUB(pTHX_ GV *gv, bool fake)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEWSTUB                \
+        assert(gv)
+
+PERL_CALLCONV SV *
+Perl_newSV(pTHX_ const STRLEN len)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSV
 
-PERL_CALLCONV OP*	Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVOP	\
-	assert(sv)
-
-PERL_CALLCONV OP*	Perl_newSVREF(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVREF	\
-	assert(o)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV*	Perl_newSV_type(pTHX_ const svtype type)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSV_TYPE
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE SV*	Perl_newSV_type_mortal(pTHX_ const svtype type)
-			__attribute__warn_unused_result__
-			__attribute__always_inline__;
-#define PERL_ARGS_ASSERT_NEWSV_TYPE_MORTAL
-#endif
-
-PERL_CALLCONV SV*	Perl_newSVavdefelem(pTHX_ AV *av, SSize_t ix, bool extendible)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVAVDEFELEM	\
-	assert(av)
-
-PERL_CALLCONV SV*	Perl_newSVhek(pTHX_ const HEK *const hek)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVOP                \
+        assert(sv)
+
+PERL_CALLCONV OP *
+Perl_newSVREF(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVREF               \
+        assert(o)
+
+PERL_CALLCONV SV *
+Perl_newSV_false(pTHX)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSV_FALSE
+
+PERL_CALLCONV SV *
+Perl_newSV_true(pTHX)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSV_TRUE
+
+PERL_CALLCONV SV *
+Perl_newSVavdefelem(pTHX_ AV *av, SSize_t ix, bool extendible)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEWSVAVDEFELEM         \
+        assert(av)
+
+PERL_CALLCONV SV *
+Perl_newSVbool(pTHX_ const bool bool_val)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVBOOL
+
+PERL_CALLCONV SV *
+Perl_newSVhek(pTHX_ const HEK * const hek)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVHEK
 
-PERL_CALLCONV SV*	Perl_newSViv(pTHX_ const IV i)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVhek_mortal(pTHX_ const HEK * const hek)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWSVHEK_MORTAL
+
+PERL_CALLCONV SV *
+Perl_newSViv(pTHX_ const IV i)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVIV
 
-PERL_CALLCONV SV*	Perl_newSVnv(pTHX_ const NV n)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVnv(pTHX_ const NV n)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVNV
 
-PERL_CALLCONV SV*	Perl_newSVpv(pTHX_ const char *const s, const STRLEN len)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpv(pTHX_ const char * const s, const STRLEN len)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVPV
 
-PERL_CALLCONV SV*	Perl_newSVpv_share(pTHX_ const char* s, U32 hash)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpv_share(pTHX_ const char *s, U32 hash)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVPV_SHARE
 
-PERL_CALLCONV SV*	Perl_newSVpvf(pTHX_ const char *const pat, ...)
-			__attribute__warn_unused_result__
-			__attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_NEWSVPVF	\
-	assert(pat)
-
-PERL_CALLCONV SV*	Perl_newSVpvn(pTHX_ const char *const buffer, const STRLEN len)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpvf(pTHX_ const char * const pat, ...)
+        __attribute__warn_unused_result__
+        __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_NEWSVPVF               \
+        assert(pat)
+
+PERL_CALLCONV SV *
+Perl_newSVpvn(pTHX_ const char * const buffer, const STRLEN len)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVPVN
 
-PERL_CALLCONV SV*	Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpvn_flags(pTHX_ const char * const s, const STRLEN len, const U32 flags)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVPVN_FLAGS
 
-PERL_CALLCONV SV*	Perl_newSVpvn_share(pTHX_ const char* s, I32 len, U32 hash)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVpvn_share(pTHX_ const char *s, I32 len, U32 hash)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVPVN_SHARE
 
-PERL_CALLCONV SV*	Perl_newSVrv(pTHX_ SV *const rv, const char *const classname);
-#define PERL_ARGS_ASSERT_NEWSVRV	\
-	assert(rv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV*	Perl_newSVsv(pTHX_ SV *const old)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWSVSV
-#endif
-
-PERL_CALLCONV SV*	Perl_newSVsv_flags(pTHX_ SV *const old, I32 flags)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_newSVrv(pTHX_ SV * const rv, const char * const classname);
+#define PERL_ARGS_ASSERT_NEWSVRV                \
+        assert(rv)
+
+PERL_CALLCONV SV *
+Perl_newSVsv_flags(pTHX_ SV * const old, I32 flags)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVSV_FLAGS
 
-/* PERL_CALLCONV SV*	newSVsv_nomg(pTHX_ SV *const old)
-			__attribute__warn_unused_result__; */
-#define PERL_ARGS_ASSERT_NEWSVSV_NOMG
-
-PERL_CALLCONV SV*	Perl_newSVuv(pTHX_ const UV u)
-			__attribute__warn_unused_result__;
+/* PERL_CALLCONV SV *
+newSVsv_nomg(pTHX_ SV * const old)
+        __attribute__warn_unused_result__; */
+
+PERL_CALLCONV SV *
+Perl_newSVuv(pTHX_ const UV u)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWSVUV
 
-PERL_CALLCONV OP*	Perl_newTRYCATCHOP(pTHX_ I32 flags, OP* tryblock, OP *catchvar, OP* catchblock)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWTRYCATCHOP	\
-	assert(tryblock); assert(catchvar); assert(catchblock)
-
-PERL_CALLCONV OP*	Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newTRYCATCHOP(pTHX_ I32 flags, OP *tryblock, OP *catchvar, OP *catchblock)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWTRYCATCHOP          \
+        assert(tryblock); assert(catchvar); assert(catchblock)
+
+PERL_CALLCONV OP *
+Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWUNOP
 
-PERL_CALLCONV OP*	Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP* first, UNOP_AUX_item *aux)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP *first, UNOP_AUX_item *aux)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWUNOP_AUX
 
-PERL_CALLCONV OP*	Perl_newWHENOP(pTHX_ OP* cond, OP* block)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWWHENOP	\
-	assert(block)
-
-PERL_CALLCONV OP*	Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, OP* expr, OP* block, OP* cont, I32 has_my)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV OP *
+Perl_newWHENOP(pTHX_ OP *cond, OP *block)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWWHENOP              \
+        assert(block)
+
+PERL_CALLCONV OP *
+Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, OP *expr, OP *block, OP *cont, I32 has_my)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEWWHILEOP
 
-PERL_CALLCONV CV*	Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename);
-#define PERL_ARGS_ASSERT_NEWXS	\
-	assert(subaddr); assert(filename)
-PERL_CALLCONV CV *	Perl_newXS_deffile(pTHX_ const char *name, XSUBADDR_t subaddr);
-#define PERL_ARGS_ASSERT_NEWXS_DEFFILE	\
-	assert(name); assert(subaddr)
-PERL_CALLCONV CV *	Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags);
-#define PERL_ARGS_ASSERT_NEWXS_FLAGS	\
-	assert(subaddr); assert(filename)
-PERL_CALLCONV CV *	Perl_newXS_len_flags(pTHX_ const char *name, STRLEN len, XSUBADDR_t subaddr, const char *const filename, const char *const proto, SV **const_svp, U32 flags);
-#define PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS	\
-	assert(subaddr)
-PERL_CALLCONV PERL_SI*	Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV CV *
+Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename);
+#define PERL_ARGS_ASSERT_NEWXS                  \
+        assert(subaddr); assert(filename)
+
+PERL_CALLCONV CV *
+Perl_newXS_deffile(pTHX_ const char *name, XSUBADDR_t subaddr);
+#define PERL_ARGS_ASSERT_NEWXS_DEFFILE          \
+        assert(name); assert(subaddr)
+
+PERL_CALLCONV CV *
+Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr, const char * const filename, const char * const proto, U32 flags);
+#define PERL_ARGS_ASSERT_NEWXS_FLAGS            \
+        assert(subaddr); assert(filename)
+
+PERL_CALLCONV CV *
+Perl_newXS_len_flags(pTHX_ const char *name, STRLEN len, XSUBADDR_t subaddr, const char * const filename, const char * const proto, SV ** const_svp, U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS        \
+        assert(subaddr)
+
+PERL_CALLCONV PERL_SI *
+Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_NEW_STACKINFO
 
-PERL_CALLCONV SV*	Perl_new_version(pTHX_ SV *ver);
-#define PERL_ARGS_ASSERT_NEW_VERSION	\
-	assert(ver)
-PERL_CALLCONV STRLEN *	Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits, STRLEN size)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD	\
-	assert(bits)
-
-PERL_CALLCONV PerlIO*	Perl_nextargv(pTHX_ GV* gv, bool nomagicopen);
-#define PERL_ARGS_ASSERT_NEXTARGV	\
-	assert(gv)
-PERL_CALLCONV char*	Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_NINSTR	\
-	assert(big); assert(bigend); assert(little); assert(lend)
-
-PERL_CALLCONV void	Perl_no_bareword_filehandle(pTHX_ const char *fhname);
-#define PERL_ARGS_ASSERT_NO_BAREWORD_FILEHANDLE	\
-	assert(fhname)
-PERL_CALLCONV_NO_RET void	Perl_noperl_die(const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_NOPERL_DIE	\
-	assert(pat)
+PERL_CALLCONV SV *
+Perl_new_version(pTHX_ SV *ver);
+#define PERL_ARGS_ASSERT_NEW_VERSION            \
+        assert(ver)
+
+PERL_CALLCONV char *
+Perl_new_warnings_bitfield(pTHX_ char *buffer, const char * const bits, STRLEN size)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD  \
+        assert(bits)
+
+PERL_CALLCONV PerlIO *
+Perl_nextargv(pTHX_ GV *gv, bool nomagicopen)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NEXTARGV               \
+        assert(gv)
+
+PERL_CALLCONV char *
+Perl_ninstr(const char *big, const char *bigend, const char *little, const char *lend)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
+#define PERL_ARGS_ASSERT_NINSTR                 \
+        assert(big); assert(bigend); assert(little); assert(lend)
+
+PERL_CALLCONV void
+Perl_no_bareword_filehandle(pTHX_ const char *fhname)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_NO_BAREWORD_FILEHANDLE \
+        assert(fhname)
+
+PERL_CALLCONV_NO_RET void
+Perl_noperl_die(const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__format__(__printf__,1,2);
+#define PERL_ARGS_ASSERT_NOPERL_DIE             \
+        assert(pat)
 
-PERL_CALLCONV int	Perl_nothreadhook(pTHX);
+PERL_CALLCONV int
+Perl_nothreadhook(pTHX);
 #define PERL_ARGS_ASSERT_NOTHREADHOOK
-PERL_CALLCONV void	Perl_notify_parser_that_changed_to_utf8(pTHX);
+
+PERL_CALLCONV void
+Perl_notify_parser_that_changed_to_utf8(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_NOTIFY_PARSER_THAT_CHANGED_TO_UTF8
-PERL_CALLCONV OP*	Perl_oopsAV(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_OOPSAV	\
-	assert(o)
-
-PERL_CALLCONV OP*	Perl_oopsHV(pTHX_ OP* o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_OOPSHV	\
-	assert(o)
 
-PERL_CALLCONV OP*	Perl_op_append_elem(pTHX_ I32 optype, OP* first, OP* last);
+PERL_CALLCONV OP *
+Perl_oopsAV(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_OOPSAV                 \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_oopsHV(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_OOPSHV                 \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_append_elem(pTHX_ I32 optype, OP *first, OP *last);
 #define PERL_ARGS_ASSERT_OP_APPEND_ELEM
-PERL_CALLCONV OP*	Perl_op_append_list(pTHX_ I32 optype, OP* first, OP* last);
+
+PERL_CALLCONV OP *
+Perl_op_append_list(pTHX_ I32 optype, OP *first, OP *last);
 #define PERL_ARGS_ASSERT_OP_APPEND_LIST
-PERL_CALLCONV OPclass	Perl_op_class(pTHX_ const OP *o);
+
+PERL_CALLCONV OPclass
+Perl_op_class(pTHX_ const OP *o);
 #define PERL_ARGS_ASSERT_OP_CLASS
-PERL_CALLCONV void	Perl_op_clear(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OP_CLEAR	\
-	assert(o)
-PERL_CALLCONV OP*	Perl_op_contextualize(pTHX_ OP* o, I32 context);
-#define PERL_ARGS_ASSERT_OP_CONTEXTUALIZE	\
-	assert(o)
-PERL_CALLCONV OP*	Perl_op_convert_list(pTHX_ I32 optype, I32 flags, OP* o)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV void
+Perl_op_clear(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_CLEAR               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_contextualize(pTHX_ OP *o, I32 context);
+#define PERL_ARGS_ASSERT_OP_CONTEXTUALIZE       \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_convert_list(pTHX_ I32 optype, I32 flags, OP *o)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_OP_CONVERT_LIST
 
-PERL_CALLCONV void	Perl_op_dump(pTHX_ const OP *o);
-#define PERL_ARGS_ASSERT_OP_DUMP	\
-	assert(o)
-PERL_CALLCONV void	Perl_op_free(pTHX_ OP* arg);
+PERL_CALLCONV void
+Perl_op_dump(pTHX_ const OP *o);
+#define PERL_ARGS_ASSERT_OP_DUMP                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_force_list(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_FORCE_LIST
+
+PERL_CALLCONV void
+Perl_op_free(pTHX_ OP *arg);
 #define PERL_ARGS_ASSERT_OP_FREE
-PERL_CALLCONV OP*	Perl_op_linklist(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_LINKLIST	\
-	assert(o)
-/* PERL_CALLCONV OP*	op_lvalue(pTHX_ OP* o, I32 type); */
-#define PERL_ARGS_ASSERT_OP_LVALUE
-PERL_CALLCONV OP*	Perl_op_lvalue_flags(pTHX_ OP* o, I32 type, U32 flags);
+
+PERL_CALLCONV OP *
+Perl_op_linklist(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_LINKLIST            \
+        assert(o)
+
+/* PERL_CALLCONV OP *
+op_lvalue(pTHX_ OP *o, I32 type); */
+
+PERL_CALLCONV OP *
+Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags);
 #define PERL_ARGS_ASSERT_OP_LVALUE_FLAGS
-PERL_CALLCONV void	Perl_op_null(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OP_NULL	\
-	assert(o)
-PERL_CALLCONV OP*	Perl_op_parent(OP *o);
-#define PERL_ARGS_ASSERT_OP_PARENT	\
-	assert(o)
-PERL_CALLCONV OP*	Perl_op_prepend_elem(pTHX_ I32 optype, OP* first, OP* last);
+
+PERL_CALLCONV void
+Perl_op_null(pTHX_ OP *o);
+#define PERL_ARGS_ASSERT_OP_NULL                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_parent(OP *o);
+#define PERL_ARGS_ASSERT_OP_PARENT              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_prepend_elem(pTHX_ I32 optype, OP *first, OP *last);
 #define PERL_ARGS_ASSERT_OP_PREPEND_ELEM
-PERL_CALLCONV void	Perl_op_refcnt_lock(pTHX);
+
+PERL_CALLCONV void
+Perl_op_refcnt_lock(pTHX);
 #define PERL_ARGS_ASSERT_OP_REFCNT_LOCK
-PERL_CALLCONV void	Perl_op_refcnt_unlock(pTHX);
+
+PERL_CALLCONV void
+Perl_op_refcnt_unlock(pTHX);
 #define PERL_ARGS_ASSERT_OP_REFCNT_UNLOCK
-PERL_CALLCONV OP*	Perl_op_scope(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_op_scope(pTHX_ OP *o);
 #define PERL_ARGS_ASSERT_OP_SCOPE
-PERL_CALLCONV OP*	Perl_op_sibling_splice(OP *parent, OP *start, int del_count, OP* insert);
+
+PERL_CALLCONV OP *
+Perl_op_sibling_splice(OP *parent, OP *start, int del_count, OP *insert);
 #define PERL_ARGS_ASSERT_OP_SIBLING_SPLICE
-PERL_CALLCONV OP*	Perl_op_unscope(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_op_unscope(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_OP_UNSCOPE
-PERL_CALLCONV OP*	Perl_op_wrap_finally(pTHX_ OP *block, OP *finally)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_OP_WRAP_FINALLY	\
-	assert(block); assert(finally)
-
-PERL_CALLCONV void	Perl_optimize_optree(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OPTIMIZE_OPTREE	\
-	assert(o)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_PACK_CAT	\
-	assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist); assert(next_in_list)
-#endif
-
-PERL_CALLCONV void	Perl_package(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_PACKAGE	\
-	assert(o)
-PERL_CALLCONV void	Perl_package_version(pTHX_ OP* v);
-#define PERL_ARGS_ASSERT_PACKAGE_VERSION	\
-	assert(v)
-PERL_CALLCONV void	Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist);
-#define PERL_ARGS_ASSERT_PACKLIST	\
-	assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist)
-PERL_CALLCONV PADOFFSET	Perl_pad_add_anon(pTHX_ CV* func, I32 optype);
-#define PERL_ARGS_ASSERT_PAD_ADD_ANON	\
-	assert(func)
-PERL_CALLCONV PADOFFSET	Perl_pad_add_name_pv(pTHX_ const char *name, const U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PV	\
-	assert(name)
-PERL_CALLCONV PADOFFSET	Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN	\
-	assert(namepv)
-PERL_CALLCONV PADOFFSET	Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV	\
-	assert(name)
-PERL_CALLCONV void	Perl_pad_add_weakref(pTHX_ CV* func);
-#define PERL_ARGS_ASSERT_PAD_ADD_WEAKREF	\
-	assert(func)
-PERL_CALLCONV PADOFFSET	Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
+
+PERL_CALLCONV OP *
+Perl_op_wrap_finally(pTHX_ OP *block, OP *finally)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_OP_WRAP_FINALLY        \
+        assert(block); assert(finally)
+
+PERL_CALLCONV void
+Perl_package(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PACKAGE                \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_package_version(pTHX_ OP *v)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PACKAGE_VERSION        \
+        assert(v)
+
+PERL_CALLCONV void
+Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist);
+#define PERL_ARGS_ASSERT_PACKLIST               \
+        assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_anon(pTHX_ CV *func, I32 optype);
+#define PERL_ARGS_ASSERT_PAD_ADD_ANON           \
+        assert(func)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_name_pv(pTHX_ const char *name, const U32 flags, HV *typestash, HV *ourstash);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PV        \
+        assert(name)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags, HV *typestash, HV *ourstash);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN       \
+        assert(namepv)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_add_name_sv(pTHX_ SV *name, U32 flags, HV *typestash, HV *ourstash);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV        \
+        assert(name)
+
+PERL_CALLCONV void
+Perl_pad_add_weakref(pTHX_ CV *func)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PAD_ADD_WEAKREF        \
+        assert(func)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
 #define PERL_ARGS_ASSERT_PAD_ALLOC
-PERL_CALLCONV void	Perl_pad_block_start(pTHX_ int full);
+
+PERL_CALLCONV void
+Perl_pad_block_start(pTHX_ int full)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PAD_BLOCK_START
-#ifndef NO_MATHOMS
-PERL_CALLCONV HV*	Perl_pad_compname_type(pTHX_ const PADOFFSET po)
-			__attribute__deprecated__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PAD_COMPNAME_TYPE
-#endif
-
-PERL_CALLCONV PADOFFSET	Perl_pad_findmy_pv(pTHX_ const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_PAD_FINDMY_PV	\
-	assert(name)
-PERL_CALLCONV PADOFFSET	Perl_pad_findmy_pvn(pTHX_ const char* namepv, STRLEN namelen, U32 flags);
-#define PERL_ARGS_ASSERT_PAD_FINDMY_PVN	\
-	assert(namepv)
-PERL_CALLCONV PADOFFSET	Perl_pad_findmy_sv(pTHX_ SV* name, U32 flags);
-#define PERL_ARGS_ASSERT_PAD_FINDMY_SV	\
-	assert(name)
-PERL_CALLCONV void	Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv);
-#define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS	\
-	assert(padlist); assert(old_cv); assert(new_cv)
-PERL_CALLCONV void	Perl_pad_free(pTHX_ PADOFFSET po);
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_findmy_pv(pTHX_ const char *name, U32 flags);
+#define PERL_ARGS_ASSERT_PAD_FINDMY_PV          \
+        assert(name)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_findmy_pvn(pTHX_ const char *namepv, STRLEN namelen, U32 flags);
+#define PERL_ARGS_ASSERT_PAD_FINDMY_PVN         \
+        assert(namepv)
+
+PERL_CALLCONV PADOFFSET
+Perl_pad_findmy_sv(pTHX_ SV *name, U32 flags);
+#define PERL_ARGS_ASSERT_PAD_FINDMY_SV          \
+        assert(name)
+
+PERL_CALLCONV void
+Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS  \
+        assert(padlist); assert(old_cv); assert(new_cv)
+
+PERL_CALLCONV void
+Perl_pad_free(pTHX_ PADOFFSET po)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PAD_FREE
-PERL_CALLCONV OP *	Perl_pad_leavemy(pTHX);
+
+PERL_CALLCONV OP *
+Perl_pad_leavemy(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PAD_LEAVEMY
-PERL_CALLCONV PADLIST*	Perl_pad_new(pTHX_ int flags)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV PADLIST *
+Perl_pad_new(pTHX_ int flags)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_PAD_NEW
 
-PERL_CALLCONV void	Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
-#define PERL_ARGS_ASSERT_PAD_PUSH	\
-	assert(padlist)
-PERL_CALLCONV void	Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust);
+PERL_CALLCONV void
+Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
+#define PERL_ARGS_ASSERT_PAD_PUSH               \
+        assert(padlist)
+
+PERL_CALLCONV void
+Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PAD_SWIPE
-PERL_CALLCONV void	Perl_pad_tidy(pTHX_ padtidy_type type);
+
+PERL_CALLCONV void
+Perl_pad_tidy(pTHX_ padtidy_type type);
 #define PERL_ARGS_ASSERT_PAD_TIDY
-PERL_CALLCONV PAD **	Perl_padlist_store(pTHX_ PADLIST *padlist, I32 key, PAD *val);
-#define PERL_ARGS_ASSERT_PADLIST_STORE	\
-	assert(padlist)
-PERL_CALLCONV void	Perl_padname_free(pTHX_ PADNAME *pn);
-#define PERL_ARGS_ASSERT_PADNAME_FREE	\
-	assert(pn)
-PERL_CALLCONV PADNAME *	Perl_padnamelist_fetch(PADNAMELIST *pnl, SSize_t key)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PADNAMELIST_FETCH	\
-	assert(pnl)
-
-PERL_CALLCONV void	Perl_padnamelist_free(pTHX_ PADNAMELIST *pnl);
-#define PERL_ARGS_ASSERT_PADNAMELIST_FREE	\
-	assert(pnl)
-PERL_CALLCONV PADNAME **	Perl_padnamelist_store(pTHX_ PADNAMELIST *pnl, SSize_t key, PADNAME *val);
-#define PERL_ARGS_ASSERT_PADNAMELIST_STORE	\
-	assert(pnl)
-PERL_CALLCONV OP*	Perl_parse_arithexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV PAD **
+Perl_padlist_store(pTHX_ PADLIST *padlist, I32 key, PAD *val)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PADLIST_STORE          \
+        assert(padlist)
+
+PERL_CALLCONV void
+Perl_padname_free(pTHX_ PADNAME *pn);
+#define PERL_ARGS_ASSERT_PADNAME_FREE           \
+        assert(pn)
+
+PERL_CALLCONV PADNAME *
+Perl_padnamelist_fetch(PADNAMELIST *pnl, SSize_t key)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_PADNAMELIST_FETCH      \
+        assert(pnl)
+
+PERL_CALLCONV void
+Perl_padnamelist_free(pTHX_ PADNAMELIST *pnl);
+#define PERL_ARGS_ASSERT_PADNAMELIST_FREE       \
+        assert(pnl)
+
+PERL_CALLCONV PADNAME **
+Perl_padnamelist_store(pTHX_ PADNAMELIST *pnl, SSize_t key, PADNAME *val);
+#define PERL_ARGS_ASSERT_PADNAMELIST_STORE      \
+        assert(pnl)
+
+PERL_CALLCONV OP *
+Perl_parse_arithexpr(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_ARITHEXPR
-PERL_CALLCONV OP*	Perl_parse_barestmt(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_barestmt(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_BARESTMT
-PERL_CALLCONV OP*	Perl_parse_block(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_block(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_BLOCK
-PERL_CALLCONV OP*	Perl_parse_fullexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_fullexpr(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_FULLEXPR
-PERL_CALLCONV OP*	Perl_parse_fullstmt(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_fullstmt(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_FULLSTMT
-PERL_CALLCONV SV*	Perl_parse_label(pTHX_ U32 flags);
+
+PERL_CALLCONV SV *
+Perl_parse_label(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_LABEL
-PERL_CALLCONV OP*	Perl_parse_listexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_listexpr(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_LISTEXPR
-PERL_CALLCONV OP*	Perl_parse_stmtseq(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_stmtseq(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_STMTSEQ
-PERL_CALLCONV OP*	Perl_parse_subsignature(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_subsignature(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_SUBSIGNATURE
-PERL_CALLCONV OP*	Perl_parse_termexpr(pTHX_ U32 flags);
+
+PERL_CALLCONV OP *
+Perl_parse_termexpr(pTHX_ U32 flags);
 #define PERL_ARGS_ASSERT_PARSE_TERMEXPR
-PERL_CALLCONV U32	Perl_parse_unicode_opts(pTHX_ const char **popt);
-#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS	\
-	assert(popt)
-PERL_CALLCONV void	Perl_parser_free(pTHX_ const yy_parser *parser);
-#define PERL_ARGS_ASSERT_PARSER_FREE	\
-	assert(parser)
-PERL_CALLCONV void	Perl_peep(pTHX_ OP* o);
+
+PERL_CALLCONV U32
+Perl_parse_unicode_opts(pTHX_ const char **popt)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS     \
+        assert(popt)
+
+PERL_CALLCONV void
+Perl_parser_free(pTHX_ const yy_parser *parser)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PARSER_FREE            \
+        assert(parser)
+
+PERL_CALLCONV void
+Perl_peep(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_PEEP
-PERL_CALLCONV PerlInterpreter*	perl_alloc(void);
+
+PERL_CALLCONV PerlInterpreter *
+perl_alloc(void);
 #define PERL_ARGS_ASSERT_PERL_ALLOC
-PERL_CALLCONV void	perl_construct(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_CONSTRUCT	\
-	assert(my_perl)
-PERL_CALLCONV int	perl_destruct(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_DESTRUCT	\
-	assert(my_perl)
-PERL_CALLCONV void	perl_free(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_FREE	\
-	assert(my_perl)
-PERL_CALLCONV int	perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env);
-#define PERL_ARGS_ASSERT_PERL_PARSE	\
-	assert(my_perl)
-PERL_CALLCONV int	perl_run(PerlInterpreter *my_perl);
-#define PERL_ARGS_ASSERT_PERL_RUN	\
-	assert(my_perl)
-PERL_CALLCONV Signal_t	Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe);
+
+PERL_CALLCONV void
+perl_construct(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_CONSTRUCT         \
+        assert(my_perl)
+
+PERL_CALLCONV int
+perl_destruct(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_DESTRUCT          \
+        assert(my_perl)
+
+PERL_CALLCONV void
+perl_free(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_FREE              \
+        assert(my_perl)
+
+PERL_CALLCONV int
+perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char **argv, char **env);
+#define PERL_ARGS_ASSERT_PERL_PARSE             \
+        assert(my_perl)
+
+PERL_CALLCONV int
+perl_run(PerlInterpreter *my_perl);
+#define PERL_ARGS_ASSERT_PERL_RUN               \
+        assert(my_perl)
+
+PERL_CALLCONV Signal_t
+Perl_perly_sighandler(int sig, Siginfo_t *info, void *uap, bool safe);
 #define PERL_ARGS_ASSERT_PERLY_SIGHANDLER
-/* PERL_CALLCONV const char *const	phase_name(pTHX_ enum perl_phase); */
-#define PERL_ARGS_ASSERT_PHASE_NAME
-PERL_CALLCONV void	Perl_pmop_dump(pTHX_ PMOP* pm);
+
+/* PERL_CALLCONV const char * const
+phase_name(pTHX_ enum perl_phase); */
+
+PERL_CALLCONV void
+Perl_pmop_dump(pTHX_ PMOP *pm);
 #define PERL_ARGS_ASSERT_PMOP_DUMP
-PERL_CALLCONV OP*	Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor);
-#define PERL_ARGS_ASSERT_PMRUNTIME	\
-	assert(o); assert(expr)
-PERL_CALLCONV void	Perl_pop_scope(pTHX);
+
+PERL_CALLCONV OP *
+Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_PMRUNTIME              \
+        assert(o); assert(expr)
+
+PERL_CALLCONV void
+Perl_pop_scope(pTHX);
 #define PERL_ARGS_ASSERT_POP_SCOPE
-PERL_CALLCONV void	Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...);
-#define PERL_ARGS_ASSERT_POPULATE_ISA	\
-	assert(name)
-PERL_CALLCONV REGEXP*	Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags);
-#define PERL_ARGS_ASSERT_PREGCOMP	\
-	assert(pattern)
-PERL_CALLCONV I32	Perl_pregexec(pTHX_ REGEXP * const prog, char* stringarg, char* strend, char* strbeg, SSize_t minend, SV* screamer, U32 nosave);
-#define PERL_ARGS_ASSERT_PREGEXEC	\
-	assert(prog); assert(stringarg); assert(strend); assert(strbeg); assert(screamer)
-PERL_CALLCONV void	Perl_pregfree(pTHX_ REGEXP* r);
+
+PERL_CALLCONV void
+Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_POPULATE_ISA           \
+        assert(name)
+
+PERL_CALLCONV REGEXP *
+Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags);
+#define PERL_ARGS_ASSERT_PREGCOMP               \
+        assert(pattern)
+
+PERL_CALLCONV I32
+Perl_pregexec(pTHX_ REGEXP * const prog, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *screamer, U32 nosave);
+#define PERL_ARGS_ASSERT_PREGEXEC               \
+        assert(prog); assert(stringarg); assert(strend); assert(strbeg); \
+        assert(screamer)
+
+PERL_CALLCONV void
+Perl_pregfree(pTHX_ REGEXP *r);
 #define PERL_ARGS_ASSERT_PREGFREE
-PERL_CALLCONV void	Perl_pregfree2(pTHX_ REGEXP *rx);
-#define PERL_ARGS_ASSERT_PREGFREE2	\
-	assert(rx)
-PERL_CALLCONV const char*	Perl_prescan_version(pTHX_ const char *s, bool strict, const char** errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha);
-#define PERL_ARGS_ASSERT_PRESCAN_VERSION	\
-	assert(s)
-PERL_CALLCONV void*	Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *const tbl, const void *const sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PTR_TABLE_FETCH	\
-	assert(tbl)
 
-PERL_CALLCONV void	Perl_ptr_table_free(pTHX_ PTR_TBL_t *const tbl);
+PERL_CALLCONV void
+Perl_pregfree2(pTHX_ REGEXP *rx);
+#define PERL_ARGS_ASSERT_PREGFREE2              \
+        assert(rx)
+
+PERL_CALLCONV const char *
+Perl_prescan_version(pTHX_ const char *s, bool strict, const char **errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha);
+#define PERL_ARGS_ASSERT_PRESCAN_VERSION        \
+        assert(s)
+
+PERL_CALLCONV void *
+Perl_ptr_table_fetch(pTHX_ PTR_TBL_t * const tbl, const void * const sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_PTR_TABLE_FETCH        \
+        assert(tbl)
+
+PERL_CALLCONV void
+Perl_ptr_table_free(pTHX_ PTR_TBL_t * const tbl);
 #define PERL_ARGS_ASSERT_PTR_TABLE_FREE
-PERL_CALLCONV PTR_TBL_t*	Perl_ptr_table_new(pTHX)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV PTR_TBL_t *
+Perl_ptr_table_new(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_PTR_TABLE_NEW
 
-PERL_CALLCONV void	Perl_ptr_table_split(pTHX_ PTR_TBL_t *const tbl);
-#define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT	\
-	assert(tbl)
-PERL_CALLCONV void	Perl_ptr_table_store(pTHX_ PTR_TBL_t *const tbl, const void *const oldsv, void *const newsv);
-#define PERL_ARGS_ASSERT_PTR_TABLE_STORE	\
-	assert(tbl); assert(newsv)
-PERL_CALLCONV void	Perl_push_scope(pTHX);
+PERL_CALLCONV void
+Perl_ptr_table_split(pTHX_ PTR_TBL_t * const tbl);
+#define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT        \
+        assert(tbl)
+
+PERL_CALLCONV void
+Perl_ptr_table_store(pTHX_ PTR_TBL_t * const tbl, const void * const oldsv, void * const newsv);
+#define PERL_ARGS_ASSERT_PTR_TABLE_STORE        \
+        assert(tbl); assert(newsv)
+
+PERL_CALLCONV void
+Perl_push_scope(pTHX);
 #define PERL_ARGS_ASSERT_PUSH_SCOPE
-PERL_CALLCONV char*	Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
-#define PERL_ARGS_ASSERT_PV_DISPLAY	\
-	assert(dsv); assert(pv)
-PERL_CALLCONV char*	Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
-#define PERL_ARGS_ASSERT_PV_ESCAPE	\
-	assert(str)
-PERL_CALLCONV char*	Perl_pv_pretty(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
-#define PERL_ARGS_ASSERT_PV_PRETTY	\
-	assert(dsv); assert(str)
-PERL_CALLCONV char*	Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags);
-#define PERL_ARGS_ASSERT_PV_UNI_DISPLAY	\
-	assert(dsv); assert(spv)
-PERL_CALLCONV void	Perl_qerror(pTHX_ SV* err);
-#define PERL_ARGS_ASSERT_QERROR	\
-	assert(err)
-PERL_CALLCONV REGEXP*	Perl_re_compile(pTHX_ SV * const pattern, U32 orig_rx_flags);
-#define PERL_ARGS_ASSERT_RE_COMPILE	\
-	assert(pattern)
-PERL_CALLCONV char*	Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV* sv, const char* const strbeg, char* strpos, char* strend, const U32 flags, re_scream_pos_data *data);
-#define PERL_ARGS_ASSERT_RE_INTUIT_START	\
-	assert(rx); assert(strbeg); assert(strpos); assert(strend)
-PERL_CALLCONV SV*	Perl_re_intuit_string(pTHX_ REGEXP  *const r);
-#define PERL_ARGS_ASSERT_RE_INTUIT_STRING	\
-	assert(r)
-PERL_CALLCONV REGEXP*	Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, OP *expr, const regexp_engine* eng, REGEXP *old_re, bool *is_bare_re, const U32 rx_flags, const U32 pm_flags);
-#define PERL_ARGS_ASSERT_RE_OP_COMPILE	\
-	assert(eng)
-PERL_CALLCONV Malloc_t	Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV char *
+Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
+#define PERL_ARGS_ASSERT_PV_DISPLAY             \
+        assert(dsv); assert(pv)
+
+PERL_CALLCONV char *
+Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, STRLEN max, STRLEN * const escaped, U32 flags);
+#define PERL_ARGS_ASSERT_PV_ESCAPE              \
+        assert(str)
+
+PERL_CALLCONV char *
+Perl_pv_pretty(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
+#define PERL_ARGS_ASSERT_PV_PRETTY              \
+        assert(dsv); assert(str)
+
+PERL_CALLCONV char *
+Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags);
+#define PERL_ARGS_ASSERT_PV_UNI_DISPLAY         \
+        assert(dsv); assert(spv)
+
+PERL_CALLCONV void
+Perl_qerror(pTHX_ SV *err);
+#define PERL_ARGS_ASSERT_QERROR
+
+PERL_CALLCONV char *
+Perl_rcpv_copy(pTHX_ char * const pv);
+#define PERL_ARGS_ASSERT_RCPV_COPY
+
+PERL_CALLCONV char *
+Perl_rcpv_free(pTHX_ char * const pv);
+#define PERL_ARGS_ASSERT_RCPV_FREE
+
+PERL_CALLCONV char *
+Perl_rcpv_new(pTHX_ const char * const pv, STRLEN len, U32 flags)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_RCPV_NEW
+
+PERL_CALLCONV REGEXP *
+Perl_re_compile(pTHX_ SV * const pattern, U32 orig_rx_flags);
+#define PERL_ARGS_ASSERT_RE_COMPILE             \
+        assert(pattern)
+
+PERL_CALLCONV char *
+Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, const char * const strbeg, char *strpos, char *strend, const U32 flags, re_scream_pos_data *data);
+#define PERL_ARGS_ASSERT_RE_INTUIT_START        \
+        assert(rx); assert(strbeg); assert(strpos); assert(strend)
+
+PERL_CALLCONV SV *
+Perl_re_intuit_string(pTHX_ REGEXP  * const r);
+#define PERL_ARGS_ASSERT_RE_INTUIT_STRING       \
+        assert(r)
+
+PERL_CALLCONV REGEXP *
+Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, OP *expr, const regexp_engine *eng, REGEXP *old_re, bool *is_bare_re, const U32 rx_flags, const U32 pm_flags);
+#define PERL_ARGS_ASSERT_RE_OP_COMPILE          \
+        assert(eng)
+
+PERL_CALLCONV Malloc_t
+Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_REALLOC
 
-PERL_CALLCONV void	Perl_reentrant_free(pTHX);
+PERL_CALLCONV void
+Perl_reentrant_free(pTHX);
 #define PERL_ARGS_ASSERT_REENTRANT_FREE
-PERL_CALLCONV void	Perl_reentrant_init(pTHX);
+
+PERL_CALLCONV void
+Perl_reentrant_init(pTHX);
 #define PERL_ARGS_ASSERT_REENTRANT_INIT
-PERL_CALLCONV void*	Perl_reentrant_retry(const char *f, ...);
-#define PERL_ARGS_ASSERT_REENTRANT_RETRY	\
-	assert(f)
-PERL_CALLCONV void	Perl_reentrant_size(pTHX);
+
+PERL_CALLCONV void *
+Perl_reentrant_retry(const char *f, ...);
+#define PERL_ARGS_ASSERT_REENTRANT_RETRY        \
+        assert(f)
+
+PERL_CALLCONV void
+Perl_reentrant_size(pTHX);
 #define PERL_ARGS_ASSERT_REENTRANT_SIZE
-PERL_CALLCONV HV *	Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags);
+
+PERL_CALLCONV HV *
+Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags);
 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_CHAIN_2HV
-PERL_CALLCONV SV *	Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV	\
-	assert(key)
-PERL_CALLCONV SV *	Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain, const char *keypv, STRLEN keylen, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN	\
-	assert(keypv)
-PERL_CALLCONV SV *	Perl_refcounted_he_fetch_sv(pTHX_ const struct refcounted_he *chain, SV *key, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV	\
-	assert(key)
-PERL_CALLCONV void	Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
+
+PERL_CALLCONV SV *
+Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV \
+        assert(key)
+
+PERL_CALLCONV SV *
+Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain, const char *keypv, STRLEN keylen, U32 hash, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN \
+        assert(keypv)
+
+PERL_CALLCONV SV *
+Perl_refcounted_he_fetch_sv(pTHX_ const struct refcounted_he *chain, SV *key, U32 hash, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV \
+        assert(key)
+
+PERL_CALLCONV void
+Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_FREE
-PERL_CALLCONV struct refcounted_he *	Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he);
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he);
 #define PERL_ARGS_ASSERT_REFCOUNTED_HE_INC
-PERL_CALLCONV struct refcounted_he *	Perl_refcounted_he_new_pv(pTHX_ struct refcounted_he *parent, const char *key, U32 hash, SV *value, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV	\
-	assert(key)
-PERL_CALLCONV struct refcounted_he *	Perl_refcounted_he_new_pvn(pTHX_ struct refcounted_he *parent, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN	\
-	assert(keypv)
-PERL_CALLCONV struct refcounted_he *	Perl_refcounted_he_new_sv(pTHX_ struct refcounted_he *parent, SV *key, U32 hash, SV *value, U32 flags);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV	\
-	assert(key)
-PERL_CALLCONV SV*	Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF	\
-	assert(rx)
-PERL_CALLCONV SV*	Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL	\
-	assert(rx)
-PERL_CALLCONV bool	Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS	\
-	assert(rx); assert(key)
-PERL_CALLCONV SV*	Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH	\
-	assert(rx); assert(namesv)
-PERL_CALLCONV SV*	Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY	\
-	assert(rx)
-PERL_CALLCONV SV*	Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER	\
-	assert(rx)
-PERL_CALLCONV SV*	Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY	\
-	assert(rx)
-PERL_CALLCONV SV*	Perl_reg_named_buff_scalar(pTHX_ REGEXP * const rx, const U32 flags);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR	\
-	assert(rx)
-PERL_CALLCONV void	Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const rx, const I32 paren, SV * const sv);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH	\
-	assert(rx)
-PERL_CALLCONV I32	Perl_reg_numbered_buff_length(pTHX_ REGEXP * const rx, const SV * const sv, const I32 paren);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH	\
-	assert(rx); assert(sv)
-PERL_CALLCONV void	Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE	\
-	assert(rx)
-PERL_CALLCONV SV*	Perl_reg_qr_package(pTHX_ REGEXP * const rx);
-#define PERL_ARGS_ASSERT_REG_QR_PACKAGE	\
-	assert(rx)
-PERL_CALLCONV REGEXP*	Perl_reg_temp_copy(pTHX_ REGEXP* dsv, REGEXP* ssv);
-#define PERL_ARGS_ASSERT_REG_TEMP_COPY	\
-	assert(ssv)
-PERL_CALLCONV void	Perl_regdump(pTHX_ const regexp* r);
-#define PERL_ARGS_ASSERT_REGDUMP	\
-	assert(r)
-PERL_CALLCONV I32	Perl_regexec_flags(pTHX_ REGEXP *const rx, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *sv, void *data, U32 flags);
-#define PERL_ARGS_ASSERT_REGEXEC_FLAGS	\
-	assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv)
-PERL_CALLCONV void	Perl_regfree_internal(pTHX_ REGEXP *const rx);
-#define PERL_ARGS_ASSERT_REGFREE_INTERNAL	\
-	assert(rx)
-PERL_CALLCONV void	Perl_reginitcolors(pTHX);
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_new_pv(pTHX_ struct refcounted_he *parent, const char *key, U32 hash, SV *value, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV   \
+        assert(key)
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_new_pvn(pTHX_ struct refcounted_he *parent, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN  \
+        assert(keypv)
+
+PERL_CALLCONV struct refcounted_he *
+Perl_refcounted_he_new_sv(pTHX_ struct refcounted_he *parent, SV *key, U32 hash, SV *value, U32 flags);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV   \
+        assert(key)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF         \
+        assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL     \
+        assert(rx)
+
+PERL_CALLCONV bool
+Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS  \
+        assert(rx); assert(key)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH   \
+        assert(rx); assert(namesv)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY \
+        assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER    \
+        assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY \
+        assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_named_buff_scalar(pTHX_ REGEXP * const rx, const U32 flags);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR  \
+        assert(rx)
+
+PERL_CALLCONV void
+Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const re, const I32 paren, SV * const sv);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH \
+        assert(re)
+
+PERL_CALLCONV void
+Perl_reg_numbered_buff_fetch_flags(pTHX_ REGEXP * const re, const I32 paren, SV * const sv, U32 flags);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH_FLAGS \
+        assert(re)
+
+PERL_CALLCONV I32
+Perl_reg_numbered_buff_length(pTHX_ REGEXP * const rx, const SV * const sv, const I32 paren);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH \
+        assert(rx); assert(sv)
+
+PERL_CALLCONV void
+Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE \
+        assert(rx)
+
+PERL_CALLCONV SV *
+Perl_reg_qr_package(pTHX_ REGEXP * const rx);
+#define PERL_ARGS_ASSERT_REG_QR_PACKAGE         \
+        assert(rx)
+
+PERL_CALLCONV REGEXP *
+Perl_reg_temp_copy(pTHX_ REGEXP *dsv, REGEXP *ssv);
+#define PERL_ARGS_ASSERT_REG_TEMP_COPY          \
+        assert(ssv)
+
+PERL_CALLCONV void
+Perl_regdump(pTHX_ const regexp *r);
+#define PERL_ARGS_ASSERT_REGDUMP                \
+        assert(r)
+
+PERL_CALLCONV I32
+Perl_regexec_flags(pTHX_ REGEXP * const rx, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *sv, void *data, U32 flags);
+#define PERL_ARGS_ASSERT_REGEXEC_FLAGS          \
+        assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv)
+
+PERL_CALLCONV void
+Perl_regfree_internal(pTHX_ REGEXP * const rx);
+#define PERL_ARGS_ASSERT_REGFREE_INTERNAL       \
+        assert(rx)
+
+PERL_CALLCONV void
+Perl_reginitcolors(pTHX);
 #define PERL_ARGS_ASSERT_REGINITCOLORS
-PERL_CALLCONV regnode*	Perl_regnext(pTHX_ regnode* p)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGNEXT
-
-PERL_CALLCONV void	Perl_repeatcpy(char* to, const char* from, I32 len, IV count);
-#define PERL_ARGS_ASSERT_REPEATCPY	\
-	assert(to); assert(from)
-PERL_CALLCONV void	Perl_report_evil_fh(pTHX_ const GV *gv);
+
+PERL_CALLCONV void
+Perl_repeatcpy(char *to, const char *from, I32 len, IV count);
+#define PERL_ARGS_ASSERT_REPEATCPY              \
+        assert(to); assert(from)
+
+PERL_CALLCONV void
+Perl_report_evil_fh(pTHX_ const GV *gv)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_REPORT_EVIL_FH
-PERL_CALLCONV void	Perl_report_uninit(pTHX_ const SV *uninit_sv);
+
+PERL_CALLCONV void
+Perl_report_uninit(pTHX_ const SV *uninit_sv);
 #define PERL_ARGS_ASSERT_REPORT_UNINIT
-PERL_CALLCONV void	Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have);
+
+PERL_CALLCONV void
+Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_REPORT_WRONGWAY_FH
-PERL_CALLCONV void	Perl_require_pv(pTHX_ const char* pv);
-#define PERL_ARGS_ASSERT_REQUIRE_PV	\
-	assert(pv)
-PERL_CALLCONV char*	Perl_rninstr(const char* big, const char* bigend, const char* little, const char* lend)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_RNINSTR	\
-	assert(big); assert(bigend); assert(little); assert(lend)
 
-PERL_CALLCONV void	Perl_rpeep(pTHX_ OP* o);
+PERL_CALLCONV void
+Perl_require_pv(pTHX_ const char *pv);
+#define PERL_ARGS_ASSERT_REQUIRE_PV             \
+        assert(pv)
+
+PERL_CALLCONV void
+Perl_resume_compcv(pTHX_ struct suspended_compcv *buffer, bool save);
+#define PERL_ARGS_ASSERT_RESUME_COMPCV          \
+        assert(buffer)
+
+/* PERL_CALLCONV void
+resume_compcv_and_save(pTHX_ struct suspended_compcv *buffer); */
+
+/* PERL_CALLCONV void
+resume_compcv_final(pTHX_ struct suspended_compcv *buffer); */
+
+PERL_CALLCONV char *
+Perl_rninstr(const char *big, const char *bigend, const char *little, const char *lend)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
+#define PERL_ARGS_ASSERT_RNINSTR                \
+        assert(big); assert(bigend); assert(little); assert(lend)
+
+PERL_CALLCONV void
+Perl_rpeep(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_RPEEP
-PERL_CALLCONV Sighandler_t	Perl_rsignal(pTHX_ int i, Sighandler_t t);
+
+PERL_CALLCONV Sighandler_t
+Perl_rsignal(pTHX_ int i, Sighandler_t t);
 #define PERL_ARGS_ASSERT_RSIGNAL
-PERL_CALLCONV int	Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t);
+
+PERL_CALLCONV int
+Perl_rsignal_restore(pTHX_ int i, Sigsave_t *t)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_RSIGNAL_RESTORE
-PERL_CALLCONV int	Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* save);
-#define PERL_ARGS_ASSERT_RSIGNAL_SAVE	\
-	assert(save)
-PERL_CALLCONV Sighandler_t	Perl_rsignal_state(pTHX_ int i);
+
+PERL_CALLCONV int
+Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t *save)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_RSIGNAL_SAVE           \
+        assert(save)
+
+PERL_CALLCONV Sighandler_t
+Perl_rsignal_state(pTHX_ int i);
 #define PERL_ARGS_ASSERT_RSIGNAL_STATE
-PERL_CALLCONV int	Perl_runops_debug(pTHX);
+
+PERL_CALLCONV int
+Perl_runops_debug(pTHX);
 #define PERL_ARGS_ASSERT_RUNOPS_DEBUG
-PERL_CALLCONV int	Perl_runops_standard(pTHX);
+
+PERL_CALLCONV int
+Perl_runops_standard(pTHX);
 #define PERL_ARGS_ASSERT_RUNOPS_STANDARD
-PERL_CALLCONV CV*	Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags);
-#define PERL_ARGS_ASSERT_RV2CV_OP_CV	\
-	assert(cvop)
-PERL_CALLCONV void	Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx);
-#define PERL_ARGS_ASSERT_RXRES_SAVE	\
-	assert(rsp); assert(rx)
-PERL_CALLCONV Malloc_t	Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV CV *
+Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags);
+#define PERL_ARGS_ASSERT_RV2CV_OP_CV            \
+        assert(cvop)
+
+PERL_CALLCONV void
+Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_RXRES_SAVE             \
+        assert(rsp); assert(rx)
+
+PERL_CALLCONV Malloc_t
+Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SAFESYSCALLOC
 
-PERL_CALLCONV Free_t	Perl_safesysfree(Malloc_t where);
+PERL_CALLCONV Free_t
+Perl_safesysfree(Malloc_t where);
 #define PERL_ARGS_ASSERT_SAFESYSFREE
-PERL_CALLCONV Malloc_t	Perl_safesysmalloc(MEM_SIZE nbytes)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV Malloc_t
+Perl_safesysmalloc(MEM_SIZE nbytes)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SAFESYSMALLOC
 
-PERL_CALLCONV Malloc_t	Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV Malloc_t
+Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SAFESYSREALLOC
 
-PERL_CALLCONV void	Perl_save_I16(pTHX_ I16* intp);
-#define PERL_ARGS_ASSERT_SAVE_I16	\
-	assert(intp)
-PERL_CALLCONV void	Perl_save_I32(pTHX_ I32* intp);
-#define PERL_ARGS_ASSERT_SAVE_I32	\
-	assert(intp)
-PERL_CALLCONV void	Perl_save_I8(pTHX_ I8* bytep);
-#define PERL_ARGS_ASSERT_SAVE_I8	\
-	assert(bytep)
-PERL_CALLCONV void	Perl_save_adelete(pTHX_ AV *av, SSize_t key);
-#define PERL_ARGS_ASSERT_SAVE_ADELETE	\
-	assert(av)
-/* PERL_CALLCONV void	save_aelem(pTHX_ AV* av, SSize_t idx, SV **sptr); */
-#define PERL_ARGS_ASSERT_SAVE_AELEM
-PERL_CALLCONV void	Perl_save_aelem_flags(pTHX_ AV* av, SSize_t idx, SV **sptr, const U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS	\
-	assert(av); assert(sptr)
-PERL_CALLCONV I32	Perl_save_alloc(pTHX_ I32 size, I32 pad);
+PERL_CALLCONV void
+Perl_save_I16(pTHX_ I16 *intp);
+#define PERL_ARGS_ASSERT_SAVE_I16               \
+        assert(intp)
+
+PERL_CALLCONV void
+Perl_save_I32(pTHX_ I32 *intp);
+#define PERL_ARGS_ASSERT_SAVE_I32               \
+        assert(intp)
+
+PERL_CALLCONV void
+Perl_save_I8(pTHX_ I8 *bytep);
+#define PERL_ARGS_ASSERT_SAVE_I8                \
+        assert(bytep)
+
+PERL_CALLCONV void
+Perl_save_adelete(pTHX_ AV *av, SSize_t key);
+#define PERL_ARGS_ASSERT_SAVE_ADELETE           \
+        assert(av)
+
+/* PERL_CALLCONV void
+save_aelem(pTHX_ AV *av, SSize_t idx, SV **sptr); */
+
+PERL_CALLCONV void
+Perl_save_aelem_flags(pTHX_ AV *av, SSize_t idx, SV **sptr, const U32 flags);
+#define PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS       \
+        assert(av); assert(sptr)
+
+PERL_CALLCONV SSize_t
+Perl_save_alloc(pTHX_ SSize_t size, I32 pad);
 #define PERL_ARGS_ASSERT_SAVE_ALLOC
-PERL_CALLCONV void	Perl_save_aptr(pTHX_ AV** aptr);
-#define PERL_ARGS_ASSERT_SAVE_APTR	\
-	assert(aptr)
-PERL_CALLCONV AV*	Perl_save_ary(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SAVE_ARY	\
-	assert(gv)
-PERL_CALLCONV void	Perl_save_bool(pTHX_ bool* boolp);
-#define PERL_ARGS_ASSERT_SAVE_BOOL	\
-	assert(boolp)
-PERL_CALLCONV void	Perl_save_clearsv(pTHX_ SV** svp);
-#define PERL_ARGS_ASSERT_SAVE_CLEARSV	\
-	assert(svp)
-PERL_CALLCONV void	Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen);
-#define PERL_ARGS_ASSERT_SAVE_DELETE	\
-	assert(hv); assert(key)
-PERL_CALLCONV void	Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p);
-#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR	\
-	assert(p)
-PERL_CALLCONV void	Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
+
+PERL_CALLCONV void
+Perl_save_aptr(pTHX_ AV **aptr);
+#define PERL_ARGS_ASSERT_SAVE_APTR              \
+        assert(aptr)
+
+PERL_CALLCONV AV *
+Perl_save_ary(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SAVE_ARY               \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_save_bool(pTHX_ bool *boolp);
+#define PERL_ARGS_ASSERT_SAVE_BOOL              \
+        assert(boolp)
+
+PERL_CALLCONV void
+Perl_save_clearsv(pTHX_ SV **svp);
+#define PERL_ARGS_ASSERT_SAVE_CLEARSV           \
+        assert(svp)
+
+PERL_CALLCONV void
+Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen);
+#define PERL_ARGS_ASSERT_SAVE_DELETE            \
+        assert(hv); assert(key)
+
+PERL_CALLCONV void
+Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void *p);
+#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR        \
+        assert(p)
+
+PERL_CALLCONV void
+Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void *p);
 #define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR_X
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_freeop(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SAVE_FREEOP
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_freepv(pTHX_ char* pv);
-#define PERL_ARGS_ASSERT_SAVE_FREEPV
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_freesv(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SAVE_FREESV
-#endif
-PERL_CALLCONV void	Perl_save_generic_pvref(pTHX_ char** str);
-#define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF	\
-	assert(str)
-PERL_CALLCONV void	Perl_save_generic_svref(pTHX_ SV** sptr);
-#define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF	\
-	assert(sptr)
-PERL_CALLCONV void	Perl_save_gp(pTHX_ GV* gv, I32 empty);
-#define PERL_ARGS_ASSERT_SAVE_GP	\
-	assert(gv)
-PERL_CALLCONV HV*	Perl_save_hash(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SAVE_HASH	\
-	assert(gv)
-PERL_CALLCONV void	Perl_save_hdelete(pTHX_ HV *hv, SV *keysv);
-#define PERL_ARGS_ASSERT_SAVE_HDELETE	\
-	assert(hv); assert(keysv)
-/* PERL_CALLCONV void	save_helem(pTHX_ HV *hv, SV *key, SV **sptr); */
-#define PERL_ARGS_ASSERT_SAVE_HELEM
-PERL_CALLCONV void	Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS	\
-	assert(hv); assert(key); assert(sptr)
-PERL_CALLCONV void	Perl_save_hints(pTHX);
+
+PERL_CALLCONV void
+Perl_save_freercpv(pTHX_ char *rcpv);
+#define PERL_ARGS_ASSERT_SAVE_FREERCPV          \
+        assert(rcpv)
+
+PERL_CALLCONV void
+Perl_save_generic_pvref(pTHX_ char **str);
+#define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF     \
+        assert(str)
+
+PERL_CALLCONV void
+Perl_save_generic_svref(pTHX_ SV **sptr);
+#define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF     \
+        assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_gp(pTHX_ GV *gv, I32 empty);
+#define PERL_ARGS_ASSERT_SAVE_GP                \
+        assert(gv)
+
+PERL_CALLCONV HV *
+Perl_save_hash(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SAVE_HASH              \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_save_hdelete(pTHX_ HV *hv, SV *keysv);
+#define PERL_ARGS_ASSERT_SAVE_HDELETE           \
+        assert(hv); assert(keysv)
+
+/* PERL_CALLCONV void
+save_helem(pTHX_ HV *hv, SV *key, SV **sptr); */
+
+PERL_CALLCONV void
+Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const U32 flags);
+#define PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS       \
+        assert(hv); assert(key); assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_hints(pTHX);
 #define PERL_ARGS_ASSERT_SAVE_HINTS
-PERL_CALLCONV void	Perl_save_hptr(pTHX_ HV** hptr);
-#define PERL_ARGS_ASSERT_SAVE_HPTR	\
-	assert(hptr)
-PERL_CALLCONV void	Perl_save_int(pTHX_ int* intp);
-#define PERL_ARGS_ASSERT_SAVE_INT	\
-	assert(intp)
-PERL_CALLCONV void	Perl_save_item(pTHX_ SV* item);
-#define PERL_ARGS_ASSERT_SAVE_ITEM	\
-	assert(item)
-PERL_CALLCONV void	Perl_save_iv(pTHX_ IV *ivp);
-#define PERL_ARGS_ASSERT_SAVE_IV	\
-	assert(ivp)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_list(pTHX_ SV** sarg, I32 maxsarg)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SAVE_LIST	\
-	assert(sarg)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_long(pTHX_ long* longp)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SAVE_LONG	\
-	assert(longp)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_mortalizesv(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SAVE_MORTALIZESV	\
-	assert(sv)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_nogv(pTHX_ GV* gv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SAVE_NOGV	\
-	assert(gv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_save_op(pTHX);
-#define PERL_ARGS_ASSERT_SAVE_OP
-#endif
-PERL_CALLCONV void	Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
+
+PERL_CALLCONV void
+Perl_save_hptr(pTHX_ HV **hptr);
+#define PERL_ARGS_ASSERT_SAVE_HPTR              \
+        assert(hptr)
+
+PERL_CALLCONV void
+Perl_save_int(pTHX_ int *intp);
+#define PERL_ARGS_ASSERT_SAVE_INT               \
+        assert(intp)
+
+PERL_CALLCONV void
+Perl_save_item(pTHX_ SV *item);
+#define PERL_ARGS_ASSERT_SAVE_ITEM              \
+        assert(item)
+
+PERL_CALLCONV void
+Perl_save_iv(pTHX_ IV *ivp);
+#define PERL_ARGS_ASSERT_SAVE_IV                \
+        assert(ivp)
+
+PERL_CALLCONV void
+Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
 #define PERL_ARGS_ASSERT_SAVE_PADSV_AND_MORTALIZE
-PERL_CALLCONV void	Perl_save_pptr(pTHX_ char** pptr);
-#define PERL_ARGS_ASSERT_SAVE_PPTR	\
-	assert(pptr)
-PERL_CALLCONV void	Perl_save_pushi32ptr(pTHX_ const I32 i, void *const ptr, const int type);
+
+PERL_CALLCONV void
+Perl_save_pptr(pTHX_ char **pptr);
+#define PERL_ARGS_ASSERT_SAVE_PPTR              \
+        assert(pptr)
+
+PERL_CALLCONV void
+Perl_save_pushi32ptr(pTHX_ const I32 i, void * const ptr, const int type);
 #define PERL_ARGS_ASSERT_SAVE_PUSHI32PTR
-PERL_CALLCONV void	Perl_save_pushptr(pTHX_ void *const ptr, const int type);
+
+PERL_CALLCONV void
+Perl_save_pushptr(pTHX_ void * const ptr, const int type);
 #define PERL_ARGS_ASSERT_SAVE_PUSHPTR
-PERL_CALLCONV void	Perl_save_pushptrptr(pTHX_ void *const ptr1, void *const ptr2, const int type);
+
+PERL_CALLCONV void
+Perl_save_pushptrptr(pTHX_ void * const ptr1, void * const ptr2, const int type);
 #define PERL_ARGS_ASSERT_SAVE_PUSHPTRPTR
-PERL_CALLCONV void	Perl_save_re_context(pTHX);
+
+PERL_CALLCONV void
+Perl_save_rcpv(pTHX_ char **prcpv);
+#define PERL_ARGS_ASSERT_SAVE_RCPV              \
+        assert(prcpv)
+
+PERL_CALLCONV void
+Perl_save_re_context(pTHX);
 #define PERL_ARGS_ASSERT_SAVE_RE_CONTEXT
-PERL_CALLCONV SV*	Perl_save_scalar(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SAVE_SCALAR	\
-	assert(gv)
-PERL_CALLCONV void	Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val);
-#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS	\
-	assert(sv)
-PERL_CALLCONV void	Perl_save_shared_pvref(pTHX_ char** str);
-#define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF	\
-	assert(str)
-PERL_CALLCONV void	Perl_save_sptr(pTHX_ SV** sptr);
-#define PERL_ARGS_ASSERT_SAVE_SPTR	\
-	assert(sptr)
-PERL_CALLCONV void	Perl_save_strlen(pTHX_ STRLEN* ptr);
-#define PERL_ARGS_ASSERT_SAVE_STRLEN	\
-	assert(ptr)
-PERL_CALLCONV SV*	Perl_save_svref(pTHX_ SV** sptr);
-#define PERL_ARGS_ASSERT_SAVE_SVREF	\
-	assert(sptr)
-PERL_CALLCONV void	Perl_save_vptr(pTHX_ void *ptr);
-#define PERL_ARGS_ASSERT_SAVE_VPTR	\
-	assert(ptr)
-PERL_CALLCONV char*	Perl_savepv(pTHX_ const char* pv)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVEPV
-
-PERL_CALLCONV char*	Perl_savepvn(pTHX_ const char* pv, Size_t len)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVEPVN
-
-PERL_CALLCONV char*	Perl_savesharedpv(pTHX_ const char* pv)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
+
+PERL_CALLCONV SV *
+Perl_save_scalar(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SAVE_SCALAR            \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val);
+#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS       \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_save_shared_pvref(pTHX_ char **str);
+#define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF      \
+        assert(str)
+
+PERL_CALLCONV void
+Perl_save_sptr(pTHX_ SV **sptr);
+#define PERL_ARGS_ASSERT_SAVE_SPTR              \
+        assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_strlen(pTHX_ STRLEN *ptr);
+#define PERL_ARGS_ASSERT_SAVE_STRLEN            \
+        assert(ptr)
+
+PERL_CALLCONV SV *
+Perl_save_svref(pTHX_ SV **sptr);
+#define PERL_ARGS_ASSERT_SAVE_SVREF             \
+        assert(sptr)
+
+PERL_CALLCONV void
+Perl_save_vptr(pTHX_ void *ptr);
+#define PERL_ARGS_ASSERT_SAVE_VPTR              \
+        assert(ptr)
+
+PERL_CALLCONV char *
+Perl_savesharedpv(pTHX_ const char *pv)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SAVESHAREDPV
 
-PERL_CALLCONV char*	Perl_savesharedpvn(pTHX_ const char *const pv, const STRLEN len)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
+PERL_CALLCONV char *
+Perl_savesharedpvn(pTHX_ const char * const pv, const STRLEN len)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SAVESHAREDPVN
 
-PERL_CALLCONV char*	Perl_savesharedsvpv(pTHX_ SV *sv)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVESHAREDSVPV	\
-	assert(sv)
-
-PERL_CALLCONV void	Perl_savestack_grow(pTHX);
+PERL_CALLCONV void
+Perl_savestack_grow(pTHX);
 #define PERL_ARGS_ASSERT_SAVESTACK_GROW
-PERL_CALLCONV void	Perl_savestack_grow_cnt(pTHX_ I32 need);
+
+PERL_CALLCONV void
+Perl_savestack_grow_cnt(pTHX_ I32 need);
 #define PERL_ARGS_ASSERT_SAVESTACK_GROW_CNT
-PERL_CALLCONV char*	Perl_savesvpv(pTHX_ SV* sv)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVESVPV	\
-	assert(sv)
 
-PERL_CALLCONV void	Perl_savetmps(pTHX);
+PERL_CALLCONV void
+Perl_savetmps(pTHX);
 #define PERL_ARGS_ASSERT_SAVETMPS
-PERL_CALLCONV OP*	Perl_sawparens(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_sawparens(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SAWPARENS
-PERL_CALLCONV OP*	Perl_scalar(pTHX_ OP* o);
+
+PERL_CALLCONV OP *
+Perl_scalar(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SCALAR
-PERL_CALLCONV OP*	Perl_scalarvoid(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SCALARVOID	\
-	assert(o)
-PERL_CALLCONV NV	Perl_scan_bin(pTHX_ const char* start, STRLEN len, STRLEN* retlen);
-#define PERL_ARGS_ASSERT_SCAN_BIN	\
-	assert(start); assert(retlen)
-PERL_CALLCONV NV	Perl_scan_hex(pTHX_ const char* start, STRLEN len, STRLEN* retlen);
-#define PERL_ARGS_ASSERT_SCAN_HEX	\
-	assert(start); assert(retlen)
-PERL_CALLCONV char*	Perl_scan_num(pTHX_ const char* s, YYSTYPE *lvalp);
-#define PERL_ARGS_ASSERT_SCAN_NUM	\
-	assert(s); assert(lvalp)
-PERL_CALLCONV NV	Perl_scan_oct(pTHX_ const char* start, STRLEN len, STRLEN* retlen);
-#define PERL_ARGS_ASSERT_SCAN_OCT	\
-	assert(start); assert(retlen)
-PERL_CALLCONV char*	Perl_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_STR	\
-	assert(start)
-
-PERL_CALLCONV const char*	Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv);
-#define PERL_ARGS_ASSERT_SCAN_VERSION	\
-	assert(s); assert(rv)
-PERL_CALLCONV char*	Perl_scan_vstring(pTHX_ const char *s, const char *const e, SV *sv);
-#define PERL_ARGS_ASSERT_SCAN_VSTRING	\
-	assert(s); assert(e); assert(sv)
-PERL_CALLCONV char*	Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
-#define PERL_ARGS_ASSERT_SCAN_WORD	\
-	assert(s); assert(dest); assert(slp)
-PERL_CALLCONV U32	Perl_seed(pTHX);
+
+PERL_CALLCONV OP *
+Perl_scalarvoid(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_SCALARVOID             \
+        assert(o)
+
+PERL_CALLCONV NV
+Perl_scan_bin(pTHX_ const char *start, STRLEN len, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_SCAN_BIN               \
+        assert(start); assert(retlen)
+
+PERL_CALLCONV NV
+Perl_scan_hex(pTHX_ const char *start, STRLEN len, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_SCAN_HEX               \
+        assert(start); assert(retlen)
+
+PERL_CALLCONV char *
+Perl_scan_num(pTHX_ const char *s, YYSTYPE *lvalp);
+#define PERL_ARGS_ASSERT_SCAN_NUM               \
+        assert(s); assert(lvalp)
+
+PERL_CALLCONV NV
+Perl_scan_oct(pTHX_ const char *start, STRLEN len, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_SCAN_OCT               \
+        assert(start); assert(retlen)
+
+PERL_CALLCONV char *
+Perl_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims, int re_reparse, char **delimp)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SCAN_STR               \
+        assert(start)
+
+PERL_CALLCONV const char *
+Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv);
+#define PERL_ARGS_ASSERT_SCAN_VERSION           \
+        assert(s); assert(rv)
+
+PERL_CALLCONV char *
+Perl_scan_vstring(pTHX_ const char *s, const char * const e, SV *sv);
+#define PERL_ARGS_ASSERT_SCAN_VSTRING           \
+        assert(s); assert(e); assert(sv)
+
+PERL_CALLCONV char *
+Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
+#define PERL_ARGS_ASSERT_SCAN_WORD              \
+        assert(s); assert(dest); assert(slp)
+
+PERL_CALLCONV char *
+Perl_scan_word6(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp, bool warn_tick);
+#define PERL_ARGS_ASSERT_SCAN_WORD6             \
+        assert(s); assert(dest); assert(slp)
+
+PERL_CALLCONV U32
+Perl_seed(pTHX);
 #define PERL_ARGS_ASSERT_SEED
-PERL_CALLCONV void	Perl_set_caret_X(pTHX);
+
+PERL_CALLCONV void
+Perl_set_caret_X(pTHX);
 #define PERL_ARGS_ASSERT_SET_CARET_X
-PERL_CALLCONV void	Perl_set_context(void *t);
-#define PERL_ARGS_ASSERT_SET_CONTEXT	\
-	assert(t)
-PERL_CALLCONV void	Perl_set_numeric_standard(pTHX);
+
+PERL_CALLCONV void
+Perl_set_context(void *t);
+#define PERL_ARGS_ASSERT_SET_CONTEXT            \
+        assert(t)
+
+PERL_CALLCONV void
+Perl_set_numeric_standard(pTHX);
 #define PERL_ARGS_ASSERT_SET_NUMERIC_STANDARD
-PERL_CALLCONV void	Perl_set_numeric_underlying(pTHX);
+
+PERL_CALLCONV void
+Perl_set_numeric_underlying(pTHX);
 #define PERL_ARGS_ASSERT_SET_NUMERIC_UNDERLYING
-PERL_CALLCONV void	Perl_setdefout(pTHX_ GV* gv);
-#define PERL_ARGS_ASSERT_SETDEFOUT	\
-	assert(gv)
-PERL_CALLCONV void	Perl_setfd_cloexec(int fd);
+
+PERL_CALLCONV void
+Perl_setdefout(pTHX_ GV *gv);
+#define PERL_ARGS_ASSERT_SETDEFOUT              \
+        assert(gv)
+
+PERL_CALLCONV void
+Perl_setfd_cloexec(int fd)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SETFD_CLOEXEC
-PERL_CALLCONV void	Perl_setfd_cloexec_for_nonsysfd(pTHX_ int fd);
+
+PERL_CALLCONV void
+Perl_setfd_cloexec_for_nonsysfd(pTHX_ int fd)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SETFD_CLOEXEC_FOR_NONSYSFD
-PERL_CALLCONV void	Perl_setfd_cloexec_or_inhexec_by_sysfdness(pTHX_ int fd);
+
+PERL_CALLCONV void
+Perl_setfd_cloexec_or_inhexec_by_sysfdness(pTHX_ int fd)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SETFD_CLOEXEC_OR_INHEXEC_BY_SYSFDNESS
-PERL_CALLCONV void	Perl_setfd_inhexec(int fd);
+
+PERL_CALLCONV void
+Perl_setfd_inhexec(int fd)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SETFD_INHEXEC
-PERL_CALLCONV void	Perl_setfd_inhexec_for_sysfd(pTHX_ int fd);
+
+PERL_CALLCONV void
+Perl_setfd_inhexec_for_sysfd(pTHX_ int fd)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SETFD_INHEXEC_FOR_SYSFD
-PERL_CALLCONV HEK*	Perl_share_hek(pTHX_ const char* str, SSize_t len, U32 hash);
-#define PERL_ARGS_ASSERT_SHARE_HEK	\
-	assert(str)
-PERL_CALLCONV Signal_t	Perl_sighandler1(int sig);
+
+PERL_CALLCONV HEK *
+Perl_share_hek(pTHX_ const char *str, SSize_t len, U32 hash);
+#define PERL_ARGS_ASSERT_SHARE_HEK              \
+        assert(str)
+
+PERL_CALLCONV Signal_t
+Perl_sighandler1(int sig)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SIGHANDLER1
-PERL_CALLCONV Signal_t	Perl_sighandler3(int sig, Siginfo_t *info, void *uap);
+
+PERL_CALLCONV Signal_t
+Perl_sighandler3(int sig, Siginfo_t *info, void *uap)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SIGHANDLER3
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned	Perl_single_1bit_pos32(U32 word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SINGLE_1BIT_POS32
-#endif
-
-PERL_CALLCONV char*	Perl_skipspace_flags(pTHX_ char *s, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SKIPSPACE_FLAGS	\
-	assert(s)
-
-PERL_CALLCONV void	Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp);
-#define PERL_ARGS_ASSERT_SORTSV	\
-	assert(cmp)
-PERL_CALLCONV void	Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags);
-#define PERL_ARGS_ASSERT_SORTSV_FLAGS	\
-	assert(cmp)
-PERL_CALLCONV SV**	Perl_stack_grow(pTHX_ SV** sp, SV** p, SSize_t n);
-#define PERL_ARGS_ASSERT_STACK_GROW	\
-	assert(sp); assert(p)
-PERL_CALLCONV PerlIO*	Perl_start_glob(pTHX_ SV *tmpglob, IO *io);
-#define PERL_ARGS_ASSERT_START_GLOB	\
-	assert(tmpglob); assert(io)
-PERL_CALLCONV I32	Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
+
+PERL_CALLCONV char *
+Perl_skipspace_flags(pTHX_ char *s, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SKIPSPACE_FLAGS        \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_sortsv(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp);
+#define PERL_ARGS_ASSERT_SORTSV                 \
+        assert(cmp)
+
+PERL_CALLCONV void
+Perl_sortsv_flags(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp, U32 flags);
+#define PERL_ARGS_ASSERT_SORTSV_FLAGS           \
+        assert(cmp)
+
+PERL_CALLCONV SV **
+Perl_stack_grow(pTHX_ SV **sp, SV **p, SSize_t n);
+#define PERL_ARGS_ASSERT_STACK_GROW             \
+        assert(sp); assert(p)
+
+PERL_CALLCONV PerlIO *
+Perl_start_glob(pTHX_ SV *tmpglob, IO *io)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_START_GLOB             \
+        assert(tmpglob); assert(io)
+
+PERL_CALLCONV I32
+Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
 #define PERL_ARGS_ASSERT_START_SUBPARSE
-PERL_CALLCONV NV	Perl_str_to_version(pTHX_ SV *sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_STR_TO_VERSION	\
-	assert(sv)
-
-PERL_CALLCONV void	Perl_sub_crush_depth(pTHX_ CV* cv);
-#define PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH	\
-	assert(cv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_sv_2bool(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2BOOL	\
-	assert(sv)
-#endif
-PERL_CALLCONV bool	Perl_sv_2bool_flags(pTHX_ SV *sv, I32 flags);
-#define PERL_ARGS_ASSERT_SV_2BOOL_FLAGS	\
-	assert(sv)
-PERL_CALLCONV CV*	Perl_sv_2cv(pTHX_ SV* sv, HV **const st, GV **const gvp, const I32 lref);
-#define PERL_ARGS_ASSERT_SV_2CV	\
-	assert(st); assert(gvp)
-PERL_CALLCONV IO*	Perl_sv_2io(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2IO	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV IV	Perl_sv_2iv(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_2IV	\
-	assert(sv)
-#endif
-PERL_CALLCONV IV	Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_2IV_FLAGS	\
-	assert(sv)
-PERL_CALLCONV SV*	Perl_sv_2mortal(pTHX_ SV *const sv);
+
+PERL_CALLCONV NV
+Perl_str_to_version(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_STR_TO_VERSION         \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sub_crush_depth(pTHX_ CV *cv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH        \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_suspend_compcv(pTHX_ struct suspended_compcv *buffer);
+#define PERL_ARGS_ASSERT_SUSPEND_COMPCV         \
+        assert(buffer)
+
+PERL_CALLCONV bool
+Perl_sv_2bool_flags(pTHX_ SV *sv, I32 flags);
+#define PERL_ARGS_ASSERT_SV_2BOOL_FLAGS         \
+        assert(sv)
+
+PERL_CALLCONV CV *
+Perl_sv_2cv(pTHX_ SV *sv, HV ** const st, GV ** const gvp, const I32 lref);
+#define PERL_ARGS_ASSERT_SV_2CV                 \
+        assert(st); assert(gvp)
+
+PERL_CALLCONV IO *
+Perl_sv_2io(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_2IO                 \
+        assert(sv)
+
+PERL_CALLCONV IV
+Perl_sv_2iv_flags(pTHX_ SV * const sv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_2IV_FLAGS           \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_2mortal(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_2MORTAL
-PERL_CALLCONV SV*	Perl_sv_2num(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2NUM	\
-	assert(sv)
-PERL_CALLCONV NV	Perl_sv_2nv_flags(pTHX_ SV *const sv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_2NV_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp);
-#define PERL_ARGS_ASSERT_SV_2PV	\
-	assert(sv)
-#endif
-PERL_CALLCONV char*	Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_2PV_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_2pv_nolen(pTHX_ SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_2PV_NOLEN	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_2pvbyte(pTHX_ SV *sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_2PVBYTE	\
-	assert(sv)
-#endif
-PERL_CALLCONV char*	Perl_sv_2pvbyte_flags(pTHX_ SV *sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_2PVBYTE_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_2pvbyte_nolen(pTHX_ SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_2pvutf8(pTHX_ SV *sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_2PVUTF8	\
-	assert(sv)
-#endif
-PERL_CALLCONV char*	Perl_sv_2pvutf8_flags(pTHX_ SV *sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_2PVUTF8_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_2pvutf8_nolen(pTHX_ SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	Perl_sv_2uv(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_2UV	\
-	assert(sv)
-#endif
-PERL_CALLCONV UV	Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_2UV_FLAGS	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_backoff(SV *const sv);
-#define PERL_ARGS_ASSERT_SV_BACKOFF	\
-	assert(sv)
-PERL_CALLCONV SV*	Perl_sv_bless(pTHX_ SV *const sv, HV *const stash);
-#define PERL_ARGS_ASSERT_SV_BLESS	\
-	assert(sv); assert(stash)
-PERL_CALLCONV bool	Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen);
-#define PERL_ARGS_ASSERT_SV_CAT_DECODE	\
-	assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
-PERL_CALLCONV void	Perl_sv_catpv(pTHX_ SV *const dsv, const char* sstr);
-#define PERL_ARGS_ASSERT_SV_CATPV	\
-	assert(dsv)
-PERL_CALLCONV void	Perl_sv_catpv_flags(pTHX_ SV *dsv, const char *sstr, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_CATPV_FLAGS	\
-	assert(dsv); assert(sstr)
-PERL_CALLCONV void	Perl_sv_catpv_mg(pTHX_ SV *const dsv, const char *const sstr);
-#define PERL_ARGS_ASSERT_SV_CATPV_MG	\
-	assert(dsv)
-PERL_CALLCONV void	Perl_sv_catpvf(pTHX_ SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_CATPVF	\
-	assert(sv); assert(pat)
-
-PERL_CALLCONV void	Perl_sv_catpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_CATPVF_MG	\
-	assert(sv); assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_CATPVN	\
-	assert(dsv); assert(sstr)
-#endif
-PERL_CALLCONV void	Perl_sv_catpvn_flags(pTHX_ SV *const dsv, const char *sstr, const STRLEN len, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS	\
-	assert(dsv); assert(sstr)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_CATPVN_MG	\
-	assert(dsv); assert(sstr)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_catsv(pTHX_ SV *dsv, SV *sstr);
-#define PERL_ARGS_ASSERT_SV_CATSV	\
-	assert(dsv)
-#endif
-PERL_CALLCONV void	Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const sstr, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS	\
-	assert(dsv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr);
-#define PERL_ARGS_ASSERT_SV_CATSV_MG	\
-	assert(dsv)
-#endif
-PERL_CALLCONV void	Perl_sv_chop(pTHX_ SV *const sv, const char *const ptr);
-#define PERL_ARGS_ASSERT_SV_CHOP	\
-	assert(sv)
-PERL_CALLCONV I32	Perl_sv_clean_all(pTHX);
+
+PERL_CALLCONV SV *
+Perl_sv_2num(pTHX_ SV * const sv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_SV_2NUM                \
+        assert(sv)
+
+PERL_CALLCONV NV
+Perl_sv_2nv_flags(pTHX_ SV * const sv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_2NV_FLAGS           \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pv_flags(pTHX_ SV * const sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_2PV_FLAGS           \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvbyte_flags(pTHX_ SV *sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_2PVBYTE_FLAGS       \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvutf8_flags(pTHX_ SV *sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_2PVUTF8_FLAGS       \
+        assert(sv)
+
+PERL_CALLCONV UV
+Perl_sv_2uv_flags(pTHX_ SV * const sv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_2UV_FLAGS           \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_backoff(SV * const sv);
+#define PERL_ARGS_ASSERT_SV_BACKOFF             \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_bless(pTHX_ SV * const sv, HV * const stash);
+#define PERL_ARGS_ASSERT_SV_BLESS               \
+        assert(sv); assert(stash)
+
+PERL_CALLCONV bool
+Perl_sv_cat_decode(pTHX_ SV *dsv, SV *encoding, SV *ssv, int *offset, char *tstr, int tlen);
+#define PERL_ARGS_ASSERT_SV_CAT_DECODE          \
+        assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
+
+PERL_CALLCONV void
+Perl_sv_catpv(pTHX_ SV * const dsv, const char *sstr);
+#define PERL_ARGS_ASSERT_SV_CATPV               \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_catpv_flags(pTHX_ SV *dsv, const char *sstr, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_CATPV_FLAGS         \
+        assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catpv_mg(pTHX_ SV * const dsv, const char * const sstr);
+#define PERL_ARGS_ASSERT_SV_CATPV_MG            \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_catpvf(pTHX_ SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_CATPVF              \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvf_mg(pTHX_ SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_CATPVF_MG           \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvn_flags(pTHX_ SV * const dsv, const char *sstr, const STRLEN len, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS        \
+        assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catsv_flags(pTHX_ SV * const dsv, SV * const sstr, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS         \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_chop(pTHX_ SV * const sv, const char * const ptr);
+#define PERL_ARGS_ASSERT_SV_CHOP                \
+        assert(sv)
+
+PERL_CALLCONV I32
+Perl_sv_clean_all(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SV_CLEAN_ALL
-PERL_CALLCONV void	Perl_sv_clean_objs(pTHX);
+
+PERL_CALLCONV void
+Perl_sv_clean_objs(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SV_CLEAN_OBJS
-PERL_CALLCONV void	Perl_sv_clear(pTHX_ SV *const orig_sv);
-#define PERL_ARGS_ASSERT_SV_CLEAR	\
-	assert(orig_sv)
-PERL_CALLCONV I32	Perl_sv_cmp(pTHX_ SV *const sv1, SV *const sv2);
+
+PERL_CALLCONV void
+Perl_sv_clear(pTHX_ SV * const orig_sv);
+#define PERL_ARGS_ASSERT_SV_CLEAR               \
+        assert(orig_sv)
+
+PERL_CALLCONV I32
+Perl_sv_cmp(pTHX_ SV * const sv1, SV * const sv2);
 #define PERL_ARGS_ASSERT_SV_CMP
-PERL_CALLCONV I32	Perl_sv_cmp_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
+
+PERL_CALLCONV I32
+Perl_sv_cmp_flags(pTHX_ SV * const sv1, SV * const sv2, const U32 flags);
 #define PERL_ARGS_ASSERT_SV_CMP_FLAGS
-PERL_CALLCONV I32	Perl_sv_cmp_locale(pTHX_ SV *const sv1, SV *const sv2);
+
+PERL_CALLCONV I32
+Perl_sv_cmp_locale(pTHX_ SV * const sv1, SV * const sv2);
 #define PERL_ARGS_ASSERT_SV_CMP_LOCALE
-PERL_CALLCONV I32	Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
+
+PERL_CALLCONV I32
+Perl_sv_cmp_locale_flags(pTHX_ SV * const sv1, SV * const sv2, const U32 flags);
 #define PERL_ARGS_ASSERT_SV_CMP_LOCALE_FLAGS
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv);
-#define PERL_ARGS_ASSERT_SV_COPYPV	\
-	assert(dsv); assert(ssv)
-#endif
-PERL_CALLCONV void	Perl_sv_copypv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_COPYPV_FLAGS	\
-	assert(dsv); assert(ssv)
-/* PERL_CALLCONV void	sv_copypv_nomg(pTHX_ SV *const dsv, SV *const ssv); */
-#define PERL_ARGS_ASSERT_SV_COPYPV_NOMG
-PERL_CALLCONV void	Perl_sv_dec(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_copypv_flags(pTHX_ SV * const dsv, SV * const ssv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_COPYPV_FLAGS        \
+        assert(dsv); assert(ssv)
+
+/* PERL_CALLCONV void
+sv_copypv_nomg(pTHX_ SV * const dsv, SV * const ssv); */
+
+PERL_CALLCONV void
+Perl_sv_dec(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_DEC
-PERL_CALLCONV void	Perl_sv_dec_nomg(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_dec_nomg(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_DEC_NOMG
-PERL_CALLCONV void	Perl_sv_del_backref(pTHX_ SV *const tsv, SV *const sv);
-#define PERL_ARGS_ASSERT_SV_DEL_BACKREF	\
-	assert(tsv); assert(sv)
-PERL_CALLCONV bool	Perl_sv_derived_from(pTHX_ SV* sv, const char *const name)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM	\
-	assert(sv); assert(name)
-
-PERL_CALLCONV bool	Perl_sv_derived_from_pv(pTHX_ SV* sv, const char *const name, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV	\
-	assert(sv); assert(name)
-
-PERL_CALLCONV bool	Perl_sv_derived_from_pvn(pTHX_ SV* sv, const char *const name, const STRLEN len, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN	\
-	assert(sv); assert(name)
-
-PERL_CALLCONV bool	Perl_sv_derived_from_sv(pTHX_ SV* sv, SV *namesv, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV	\
-	assert(sv); assert(namesv)
 
-PERL_CALLCONV bool	Perl_sv_destroyable(pTHX_ SV *sv);
+PERL_CALLCONV void
+Perl_sv_del_backref(pTHX_ SV * const tsv, SV * const sv);
+#define PERL_ARGS_ASSERT_SV_DEL_BACKREF         \
+        assert(tsv); assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from(pTHX_ SV *sv, const char * const name)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM        \
+        assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_hv(pTHX_ SV *sv, HV *hv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_HV     \
+        assert(sv); assert(hv)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_pv(pTHX_ SV *sv, const char * const name, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV     \
+        assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_pvn(pTHX_ SV *sv, const char * const name, const STRLEN len, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN    \
+        assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_derived_from_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV     \
+        assert(sv); assert(namesv)
+
+PERL_CALLCONV bool
+Perl_sv_destroyable(pTHX_ SV *sv);
 #define PERL_ARGS_ASSERT_SV_DESTROYABLE
-PERL_CALLCONV bool	Perl_sv_does(pTHX_ SV* sv, const char *const name)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES	\
-	assert(sv); assert(name)
-
-PERL_CALLCONV bool	Perl_sv_does_pv(pTHX_ SV* sv, const char *const name, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES_PV	\
-	assert(sv); assert(name)
-
-PERL_CALLCONV bool	Perl_sv_does_pvn(pTHX_ SV* sv, const char *const name, const STRLEN len, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES_PVN	\
-	assert(sv); assert(name)
-
-PERL_CALLCONV bool	Perl_sv_does_sv(pTHX_ SV* sv, SV* namesv, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DOES_SV	\
-	assert(sv); assert(namesv)
 
-PERL_CALLCONV void	Perl_sv_dump(pTHX_ SV* sv);
+PERL_CALLCONV bool
+Perl_sv_does(pTHX_ SV *sv, const char * const name)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES                \
+        assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_does_pv(pTHX_ SV *sv, const char * const name, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES_PV             \
+        assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_does_pvn(pTHX_ SV *sv, const char * const name, const STRLEN len, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES_PVN            \
+        assert(sv); assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_does_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_DOES_SV             \
+        assert(sv); assert(namesv)
+
+PERL_CALLCONV void
+Perl_sv_dump(pTHX_ SV *sv);
 #define PERL_ARGS_ASSERT_SV_DUMP
-#ifndef NO_MATHOMS
-PERL_CALLCONV I32	Perl_sv_eq(pTHX_ SV* sv1, SV* sv2);
-#define PERL_ARGS_ASSERT_SV_EQ
-#endif
-PERL_CALLCONV I32	Perl_sv_eq_flags(pTHX_ SV* sv1, SV* sv2, const U32 flags);
+
+PERL_CALLCONV void
+Perl_sv_dump_depth(pTHX_ SV *sv, I32 depth);
+#define PERL_ARGS_ASSERT_SV_DUMP_DEPTH
+
+PERL_CALLCONV I32
+Perl_sv_eq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags);
 #define PERL_ARGS_ASSERT_SV_EQ_FLAGS
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_force_normal(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL	\
-	assert(sv)
-#endif
-PERL_CALLCONV void	Perl_sv_force_normal_flags(pTHX_ SV *const sv, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_free(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_force_normal_flags(pTHX_ SV * const sv, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS  \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_free(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_FREE
-PERL_CALLCONV void	Perl_sv_free2(pTHX_ SV *const sv, const U32 refcnt);
-#define PERL_ARGS_ASSERT_SV_FREE2	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_free_arenas(pTHX);
+
+PERL_CALLCONV void
+Perl_sv_free2(pTHX_ SV * const sv, const U32 refcnt);
+#define PERL_ARGS_ASSERT_SV_FREE2               \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_free_arenas(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SV_FREE_ARENAS
-PERL_CALLCONV SV*	Perl_sv_get_backrefs(SV *const sv);
-#define PERL_ARGS_ASSERT_SV_GET_BACKREFS	\
-	assert(sv)
-PERL_CALLCONV char*	Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append);
-#define PERL_ARGS_ASSERT_SV_GETS	\
-	assert(sv); assert(fp)
-PERL_CALLCONV char*	Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen);
-#define PERL_ARGS_ASSERT_SV_GROW	\
-	assert(sv)
-PERL_CALLCONV char*	Perl_sv_grow_fresh(pTHX_ SV *const sv, STRLEN newlen);
-#define PERL_ARGS_ASSERT_SV_GROW_FRESH	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_inc(pTHX_ SV *const sv);
+
+PERL_CALLCONV SV *
+Perl_sv_get_backrefs(SV * const sv);
+#define PERL_ARGS_ASSERT_SV_GET_BACKREFS        \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_gets(pTHX_ SV * const sv, PerlIO * const fp, I32 append);
+#define PERL_ARGS_ASSERT_SV_GETS                \
+        assert(sv); assert(fp)
+
+PERL_CALLCONV char *
+Perl_sv_grow(pTHX_ SV * const sv, STRLEN newlen);
+#define PERL_ARGS_ASSERT_SV_GROW                \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_grow_fresh(pTHX_ SV * const sv, STRLEN newlen);
+#define PERL_ARGS_ASSERT_SV_GROW_FRESH          \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_inc(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_INC
-PERL_CALLCONV void	Perl_sv_inc_nomg(pTHX_ SV *const sv);
+
+PERL_CALLCONV void
+Perl_sv_inc_nomg(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_INC_NOMG
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen);
-#define PERL_ARGS_ASSERT_SV_INSERT	\
-	assert(bigstr); assert(little)
-#endif
-PERL_CALLCONV void	Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_INSERT_FLAGS	\
-	assert(bigstr); assert(little)
-PERL_CALLCONV int	Perl_sv_isa(pTHX_ SV* sv, const char *const name);
-#define PERL_ARGS_ASSERT_SV_ISA	\
-	assert(name)
-PERL_CALLCONV bool	Perl_sv_isa_sv(pTHX_ SV* sv, SV* namesv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_ISA_SV	\
-	assert(sv); assert(namesv)
 
-PERL_CALLCONV int	Perl_sv_isobject(pTHX_ SV* sv);
+PERL_CALLCONV void
+Perl_sv_insert_flags(pTHX_ SV * const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_INSERT_FLAGS        \
+        assert(bigstr); assert(little)
+
+PERL_CALLCONV int
+Perl_sv_isa(pTHX_ SV *sv, const char * const name);
+#define PERL_ARGS_ASSERT_SV_ISA                 \
+        assert(name)
+
+PERL_CALLCONV bool
+Perl_sv_isa_sv(pTHX_ SV *sv, SV *namesv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_ISA_SV              \
+        assert(sv); assert(namesv)
+
+PERL_CALLCONV int
+Perl_sv_isobject(pTHX_ SV *sv);
 #define PERL_ARGS_ASSERT_SV_ISOBJECT
-#ifndef NO_MATHOMS
-PERL_CALLCONV IV	Perl_sv_iv(pTHX_ SV* sv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_IV	\
-	assert(sv)
-#endif
 
-PERL_CALLCONV STRLEN	Perl_sv_len(pTHX_ SV *const sv);
+PERL_CALLCONV STRLEN
+Perl_sv_len(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_LEN
-PERL_CALLCONV STRLEN	Perl_sv_len_utf8(pTHX_ SV *const sv);
+
+PERL_CALLCONV STRLEN
+Perl_sv_len_utf8(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_LEN_UTF8
-PERL_CALLCONV STRLEN	Perl_sv_len_utf8_nomg(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_magic(pTHX_ SV *const sv, SV *const obj, const int how, const char *const name, const I32 namlen);
-#define PERL_ARGS_ASSERT_SV_MAGIC	\
-	assert(sv)
-PERL_CALLCONV MAGIC *	Perl_sv_magicext(pTHX_ SV *const sv, SV *const obj, const int how, const MGVTBL *const vtbl, const char *const name, const I32 namlen);
-#define PERL_ARGS_ASSERT_SV_MAGICEXT	\
-	assert(sv)
-PERL_CALLCONV MAGIC *	Perl_sv_magicext_mglob(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV SV*	Perl_sv_mortalcopy(pTHX_ SV *const oldsv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_MORTALCOPY
-#endif
 
-PERL_CALLCONV SV*	Perl_sv_mortalcopy_flags(pTHX_ SV *const oldsv, U32 flags)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV STRLEN
+Perl_sv_len_utf8_nomg(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG       \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_magic(pTHX_ SV * const sv, SV * const obj, const int how, const char * const name, const I32 namlen);
+#define PERL_ARGS_ASSERT_SV_MAGIC               \
+        assert(sv)
+
+PERL_CALLCONV MAGIC *
+Perl_sv_magicext(pTHX_ SV * const sv, SV * const obj, const int how, const MGVTBL * const vtbl, const char * const name, const I32 namlen);
+#define PERL_ARGS_ASSERT_SV_MAGICEXT            \
+        assert(sv)
+
+PERL_CALLCONV MAGIC *
+Perl_sv_magicext_mglob(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB      \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_mortalcopy_flags(pTHX_ SV * const oldsv, U32 flags)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SV_MORTALCOPY_FLAGS
 
-PERL_CALLCONV SV*	Perl_sv_newmortal(pTHX)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV SV *
+Perl_sv_newmortal(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_SV_NEWMORTAL
 
-PERL_CALLCONV SV*	Perl_sv_newref(pTHX_ SV *const sv);
+PERL_CALLCONV SV *
+Perl_sv_newref(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_NEWREF
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_nolocking(pTHX_ SV *sv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_NOLOCKING
-#endif
 
-PERL_CALLCONV void	Perl_sv_nosharing(pTHX_ SV *sv);
+PERL_CALLCONV void
+Perl_sv_nosharing(pTHX_ SV *sv);
 #define PERL_ARGS_ASSERT_SV_NOSHARING
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_nounlocking(pTHX_ SV *sv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_NOUNLOCKING
-#endif
 
-/* PERL_CALLCONV bool	sv_numeq(pTHX_ SV* sv1, SV* sv2); */
-#define PERL_ARGS_ASSERT_SV_NUMEQ
-PERL_CALLCONV bool	Perl_sv_numeq_flags(pTHX_ SV* sv1, SV* sv2, const U32 flags);
+/* PERL_CALLCONV bool
+sv_numeq(pTHX_ SV *sv1, SV *sv2); */
+
+PERL_CALLCONV bool
+Perl_sv_numeq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags);
 #define PERL_ARGS_ASSERT_SV_NUMEQ_FLAGS
-#ifndef NO_MATHOMS
-PERL_CALLCONV NV	Perl_sv_nv(pTHX_ SV* sv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_NV	\
-	assert(sv)
-#endif
 
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_sv_only_taint_gmagic(SV *sv);
-#define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC	\
-	assert(sv)
-#endif
-PERL_CALLCONV char*	Perl_sv_peek(pTHX_ SV* sv);
+PERL_CALLCONV char *
+Perl_sv_peek(pTHX_ SV *sv);
 #define PERL_ARGS_ASSERT_SV_PEEK
-PERL_CALLCONV void	Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp);
-#define PERL_ARGS_ASSERT_SV_POS_B2U	\
-	assert(offsetp)
-PERL_CALLCONV STRLEN	Perl_sv_pos_b2u_flags(pTHX_ SV *const sv, STRLEN const offset, U32 flags);
-#define PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_pos_u2b(pTHX_ SV *const sv, I32 *const offsetp, I32 *const lenp);
-#define PERL_ARGS_ASSERT_SV_POS_U2B	\
-	assert(offsetp)
-PERL_CALLCONV STRLEN	Perl_sv_pos_u2b_flags(pTHX_ SV *const sv, STRLEN uoffset, STRLEN *const lenp, U32 flags);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pv(pTHX_ SV *sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_PV	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvbyte(pTHX_ SV *sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_PVBYTE	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVBYTEN	\
-	assert(sv); assert(lp)
-#endif
-
-PERL_CALLCONV char*	Perl_sv_pvbyten_force(pTHX_ SV *const sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVN	\
-	assert(sv); assert(lp)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp);
-#define PERL_ARGS_ASSERT_SV_PVN_FORCE	\
-	assert(sv)
-#endif
-PERL_CALLCONV char*	Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVN_NOMG	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvutf8(pTHX_ SV *sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_PVUTF8	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_PVUTF8N	\
-	assert(sv); assert(lp)
-#endif
-
-PERL_CALLCONV char*	Perl_sv_pvutf8n_force(pTHX_ SV *const sv, STRLEN *const lp);
-#define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE	\
-	assert(sv)
-PERL_CALLCONV char*	Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding);
-#define PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8	\
-	assert(sv); assert(encoding)
-PERL_CALLCONV SV*	Perl_sv_ref(pTHX_ SV *dst, const SV *const sv, const int ob);
-#define PERL_ARGS_ASSERT_SV_REF	\
-	assert(sv)
-PERL_CALLCONV const char*	Perl_sv_reftype(pTHX_ const SV *const sv, const int ob)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_REFTYPE	\
-	assert(sv)
-
-PERL_CALLCONV void	Perl_sv_replace(pTHX_ SV *const sv, SV *const nsv);
-#define PERL_ARGS_ASSERT_SV_REPLACE	\
-	assert(sv); assert(nsv)
-PERL_CALLCONV void	Perl_sv_report_used(pTHX);
+
+PERL_CALLCONV void
+Perl_sv_pos_b2u(pTHX_ SV * const sv, I32 * const offsetp);
+#define PERL_ARGS_ASSERT_SV_POS_B2U             \
+        assert(offsetp)
+
+PERL_CALLCONV STRLEN
+Perl_sv_pos_b2u_flags(pTHX_ SV * const sv, STRLEN const offset, U32 flags);
+#define PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS       \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_pos_u2b(pTHX_ SV * const sv, I32 * const offsetp, I32 * const lenp);
+#define PERL_ARGS_ASSERT_SV_POS_U2B             \
+        assert(offsetp)
+
+PERL_CALLCONV STRLEN
+Perl_sv_pos_u2b_flags(pTHX_ SV * const sv, STRLEN uoffset, STRLEN * const lenp, U32 flags);
+#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS       \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvbyten_force(pTHX_ SV * const sv, STRLEN * const lp);
+#define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE       \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvn_force_flags(pTHX_ SV * const sv, STRLEN * const lp, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS     \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvutf8n_force(pTHX_ SV * const sv, STRLEN * const lp);
+#define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE       \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_recode_to_utf8(pTHX_ SV *sv, SV *encoding);
+#define PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8      \
+        assert(sv); assert(encoding)
+
+PERL_CALLCONV SV *
+Perl_sv_ref(pTHX_ SV *dst, const SV * const sv, const int ob);
+#define PERL_ARGS_ASSERT_SV_REF                 \
+        assert(sv)
+
+PERL_CALLCONV const char *
+Perl_sv_reftype(pTHX_ const SV * const sv, const int ob)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_REFTYPE             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_replace(pTHX_ SV * const sv, SV * const nsv);
+#define PERL_ARGS_ASSERT_SV_REPLACE             \
+        assert(sv); assert(nsv)
+
+PERL_CALLCONV void
+Perl_sv_report_used(pTHX);
 #define PERL_ARGS_ASSERT_SV_REPORT_USED
-PERL_CALLCONV void	Perl_sv_reset(pTHX_ const char* s, HV *const stash);
-#define PERL_ARGS_ASSERT_SV_RESET	\
-	assert(s)
-PERL_CALLCONV void	Perl_sv_resetpvn(pTHX_ const char* s, STRLEN len, HV *const stash);
+
+PERL_CALLCONV void
+Perl_sv_reset(pTHX_ const char *s, HV * const stash);
+#define PERL_ARGS_ASSERT_SV_RESET               \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_sv_resetpvn(pTHX_ const char *s, STRLEN len, HV * const stash)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_SV_RESETPVN
-PERL_CALLCONV SV*	Perl_sv_rvunweaken(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_RVUNWEAKEN	\
-	assert(sv)
-PERL_CALLCONV SV*	Perl_sv_rvweaken(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_RVWEAKEN	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_set_undef(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_SET_UNDEF	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_sethek(pTHX_ SV *const sv, const HEK *const hek);
-#define PERL_ARGS_ASSERT_SV_SETHEK	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setiv(pTHX_ SV *const sv, const IV num);
-#define PERL_ARGS_ASSERT_SV_SETIV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setiv_mg(pTHX_ SV *const sv, const IV i);
-#define PERL_ARGS_ASSERT_SV_SETIV_MG	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setnv(pTHX_ SV *const sv, const NV num);
-#define PERL_ARGS_ASSERT_SV_SETNV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setnv_mg(pTHX_ SV *const sv, const NV num);
-#define PERL_ARGS_ASSERT_SV_SETNV_MG	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setpv(pTHX_ SV *const sv, const char *const ptr);
-#define PERL_ARGS_ASSERT_SV_SETPV	\
-	assert(sv)
-PERL_CALLCONV char  *	Perl_sv_setpv_bufsize(pTHX_ SV *const sv, const STRLEN cur, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPV_BUFSIZE	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setpv_mg(pTHX_ SV *const sv, const char *const ptr);
-#define PERL_ARGS_ASSERT_SV_SETPV_MG	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setpvf(pTHX_ SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_SETPVF	\
-	assert(sv); assert(pat)
-
-PERL_CALLCONV void	Perl_sv_setpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_SV_SETPVF_MG	\
-	assert(sv); assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_setpviv(pTHX_ SV *const sv, const IV num)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_SETPVIV	\
-	assert(sv)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_setpviv_mg(pTHX_ SV *const sv, const IV iv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_SETPVIV_MG	\
-	assert(sv)
-#endif
-
-PERL_CALLCONV void	Perl_sv_setpvn(pTHX_ SV *const sv, const char *const ptr, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPVN	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setpvn_fresh(pTHX_ SV *const sv, const char *const ptr, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPVN_FRESH	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setpvn_mg(pTHX_ SV *const sv, const char *const ptr, const STRLEN len);
-#define PERL_ARGS_ASSERT_SV_SETPVN_MG	\
-	assert(sv); assert(ptr)
-PERL_CALLCONV SV*	Perl_sv_setref_iv(pTHX_ SV *const rv, const char *const classname, const IV iv);
-#define PERL_ARGS_ASSERT_SV_SETREF_IV	\
-	assert(rv)
-PERL_CALLCONV SV*	Perl_sv_setref_nv(pTHX_ SV *const rv, const char *const classname, const NV nv);
-#define PERL_ARGS_ASSERT_SV_SETREF_NV	\
-	assert(rv)
-PERL_CALLCONV SV*	Perl_sv_setref_pv(pTHX_ SV *const rv, const char *const classname, void *const pv);
-#define PERL_ARGS_ASSERT_SV_SETREF_PV	\
-	assert(rv)
-PERL_CALLCONV SV*	Perl_sv_setref_pvn(pTHX_ SV *const rv, const char *const classname, const char *const pv, const STRLEN n);
-#define PERL_ARGS_ASSERT_SV_SETREF_PVN	\
-	assert(rv); assert(pv)
-PERL_CALLCONV SV*	Perl_sv_setref_uv(pTHX_ SV *const rv, const char *const classname, const UV uv);
-#define PERL_ARGS_ASSERT_SV_SETREF_UV	\
-	assert(rv)
-PERL_CALLCONV void	Perl_sv_setrv_inc(pTHX_ SV *const sv, SV *const ref);
-#define PERL_ARGS_ASSERT_SV_SETRV_INC	\
-	assert(sv); assert(ref)
-PERL_CALLCONV void	Perl_sv_setrv_inc_mg(pTHX_ SV *const sv, SV *const ref);
-#define PERL_ARGS_ASSERT_SV_SETRV_INC_MG	\
-	assert(sv); assert(ref)
-PERL_CALLCONV void	Perl_sv_setrv_noinc(pTHX_ SV *const sv, SV *const ref);
-#define PERL_ARGS_ASSERT_SV_SETRV_NOINC	\
-	assert(sv); assert(ref)
-PERL_CALLCONV void	Perl_sv_setrv_noinc_mg(pTHX_ SV *const sv, SV *const ref);
-#define PERL_ARGS_ASSERT_SV_SETRV_NOINC_MG	\
-	assert(sv); assert(ref)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_setsv(pTHX_ SV *dsv, SV *ssv);
-#define PERL_ARGS_ASSERT_SV_SETSV	\
-	assert(dsv)
-#endif
-PERL_CALLCONV void	Perl_sv_setsv_flags(pTHX_ SV *dsv, SV *ssv, const I32 flags);
-#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS	\
-	assert(dsv)
-PERL_CALLCONV void	Perl_sv_setsv_mg(pTHX_ SV *const dsv, SV *const ssv);
-#define PERL_ARGS_ASSERT_SV_SETSV_MG	\
-	assert(dsv)
-PERL_CALLCONV void	Perl_sv_setuv(pTHX_ SV *const sv, const UV num);
-#define PERL_ARGS_ASSERT_SV_SETUV	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_setuv_mg(pTHX_ SV *const sv, const UV u);
-#define PERL_ARGS_ASSERT_SV_SETUV_MG	\
-	assert(sv)
-/* PERL_CALLCONV bool	sv_streq(pTHX_ SV* sv1, SV* sv2); */
-#define PERL_ARGS_ASSERT_SV_STREQ
-PERL_CALLCONV bool	Perl_sv_streq_flags(pTHX_ SV* sv1, SV* sv2, const U32 flags);
+
+PERL_CALLCONV SV *
+Perl_sv_rvunweaken(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_RVUNWEAKEN          \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_sv_rvweaken(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_RVWEAKEN            \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_bool(pTHX_ SV *sv, const bool bool_val);
+#define PERL_ARGS_ASSERT_SV_SET_BOOL            \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_false(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_FALSE           \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_true(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_TRUE            \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_set_undef(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_UNDEF           \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_sethek(pTHX_ SV * const sv, const HEK * const hek);
+#define PERL_ARGS_ASSERT_SV_SETHEK              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setiv(pTHX_ SV * const sv, const IV num);
+#define PERL_ARGS_ASSERT_SV_SETIV               \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setiv_mg(pTHX_ SV * const sv, const IV i);
+#define PERL_ARGS_ASSERT_SV_SETIV_MG            \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setnv(pTHX_ SV * const sv, const NV num);
+#define PERL_ARGS_ASSERT_SV_SETNV               \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setnv_mg(pTHX_ SV * const sv, const NV num);
+#define PERL_ARGS_ASSERT_SV_SETNV_MG            \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpv(pTHX_ SV * const sv, const char * const ptr);
+#define PERL_ARGS_ASSERT_SV_SETPV               \
+        assert(sv)
+
+PERL_CALLCONV char  *
+Perl_sv_setpv_bufsize(pTHX_ SV * const sv, const STRLEN cur, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPV_BUFSIZE       \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpv_mg(pTHX_ SV * const sv, const char * const ptr);
+#define PERL_ARGS_ASSERT_SV_SETPV_MG            \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpvf(pTHX_ SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_SETPVF              \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvf_mg(pTHX_ SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_SV_SETPVF_MG           \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvn(pTHX_ SV * const sv, const char * const ptr, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPVN              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpvn_fresh(pTHX_ SV * const sv, const char * const ptr, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPVN_FRESH        \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setpvn_mg(pTHX_ SV * const sv, const char * const ptr, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPVN_MG           \
+        assert(sv); assert(ptr)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_iv(pTHX_ SV * const rv, const char * const classname, const IV iv);
+#define PERL_ARGS_ASSERT_SV_SETREF_IV           \
+        assert(rv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_nv(pTHX_ SV * const rv, const char * const classname, const NV nv);
+#define PERL_ARGS_ASSERT_SV_SETREF_NV           \
+        assert(rv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_pv(pTHX_ SV * const rv, const char * const classname, void * const pv);
+#define PERL_ARGS_ASSERT_SV_SETREF_PV           \
+        assert(rv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_pvn(pTHX_ SV * const rv, const char * const classname, const char * const pv, const STRLEN n);
+#define PERL_ARGS_ASSERT_SV_SETREF_PVN          \
+        assert(rv); assert(pv)
+
+PERL_CALLCONV SV *
+Perl_sv_setref_uv(pTHX_ SV * const rv, const char * const classname, const UV uv);
+#define PERL_ARGS_ASSERT_SV_SETREF_UV           \
+        assert(rv)
+
+PERL_CALLCONV void
+Perl_sv_setrv_inc(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_INC           \
+        assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setrv_inc_mg(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_INC_MG        \
+        assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setrv_noinc(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_NOINC         \
+        assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setrv_noinc_mg(pTHX_ SV * const sv, SV * const ref);
+#define PERL_ARGS_ASSERT_SV_SETRV_NOINC_MG      \
+        assert(sv); assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_setsv_flags(pTHX_ SV *dsv, SV *ssv, const I32 flags);
+#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS         \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_setsv_mg(pTHX_ SV * const dsv, SV * const ssv);
+#define PERL_ARGS_ASSERT_SV_SETSV_MG            \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_setuv(pTHX_ SV * const sv, const UV num);
+#define PERL_ARGS_ASSERT_SV_SETUV               \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setuv_mg(pTHX_ SV * const sv, const UV u);
+#define PERL_ARGS_ASSERT_SV_SETUV_MG            \
+        assert(sv)
+
+/* PERL_CALLCONV bool
+sv_streq(pTHX_ SV *sv1, SV *sv2); */
+
+PERL_CALLCONV bool
+Perl_sv_streq_flags(pTHX_ SV *sv1, SV *sv2, const U32 flags);
 #define PERL_ARGS_ASSERT_SV_STREQ_FLAGS
-PERL_CALLCONV SV*	Perl_sv_string_from_errnum(pTHX_ int errnum, SV* tgtsv);
+
+PERL_CALLCONV SV *
+Perl_sv_string_from_errnum(pTHX_ int errnum, SV *tgtsv);
 #define PERL_ARGS_ASSERT_SV_STRING_FROM_ERRNUM
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_taint(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SV_TAINT	\
-	assert(sv)
-#endif
-PERL_CALLCONV bool	Perl_sv_tainted(pTHX_ SV *const sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_TAINTED	\
-	assert(sv)
 
-PERL_CALLCONV I32	Perl_sv_true(pTHX_ SV *const sv);
+PERL_CALLCONV bool
+Perl_sv_tainted(pTHX_ SV * const sv)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_TAINTED             \
+        assert(sv)
+
+PERL_CALLCONV I32
+Perl_sv_true(pTHX_ SV * const sv);
 #define PERL_ARGS_ASSERT_SV_TRUE
-PERL_CALLCONV char*	Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_UNI_DISPLAY	\
-	assert(dsv); assert(ssv)
-
-PERL_CALLCONV int	Perl_sv_unmagic(pTHX_ SV *const sv, const int type);
-#define PERL_ARGS_ASSERT_SV_UNMAGIC	\
-	assert(sv)
-PERL_CALLCONV int	Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl);
-#define PERL_ARGS_ASSERT_SV_UNMAGICEXT	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_unref(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SV_UNREF	\
-	assert(sv)
-#endif
-PERL_CALLCONV void	Perl_sv_unref_flags(pTHX_ SV *const ref, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_UNREF_FLAGS	\
-	assert(ref)
-PERL_CALLCONV void	Perl_sv_untaint(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_UNTAINT	\
-	assert(sv)
-PERL_CALLCONV void	Perl_sv_upgrade(pTHX_ SV *const sv, svtype new_type);
-#define PERL_ARGS_ASSERT_SV_UPGRADE	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_USEPVN	\
-	assert(sv)
-#endif
-PERL_CALLCONV void	Perl_sv_usepvn_flags(pTHX_ SV *const sv, char* ptr, const STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV void	Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
-#define PERL_ARGS_ASSERT_SV_USEPVN_MG	\
-	assert(sv)
-#endif
-PERL_CALLCONV bool	Perl_sv_utf8_decode(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_UTF8_DECODE	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV bool	Perl_sv_utf8_downgrade(pTHX_ SV *const sv, const bool fail_ok);
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE	\
-	assert(sv)
-#endif
-PERL_CALLCONV bool	Perl_sv_utf8_downgrade_flags(pTHX_ SV *const sv, const bool fail_ok, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_FLAGS	\
-	assert(sv)
-/* PERL_CALLCONV bool	sv_utf8_downgrade_nomg(pTHX_ SV *const sv, const bool fail_ok); */
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_NOMG
-PERL_CALLCONV void	Perl_sv_utf8_encode(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE	\
-	assert(sv)
-#ifndef NO_MATHOMS
-PERL_CALLCONV STRLEN	Perl_sv_utf8_upgrade(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE	\
-	assert(sv)
-#endif
-/* PERL_CALLCONV STRLEN	sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags); */
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS
-PERL_CALLCONV STRLEN	Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extra);
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW	\
-	assert(sv)
-/* PERL_CALLCONV STRLEN	sv_utf8_upgrade_nomg(pTHX_ SV *sv); */
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_NOMG
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	Perl_sv_uv(pTHX_ SV* sv)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_SV_UV	\
-	assert(sv)
-#endif
-
-PERL_CALLCONV void	Perl_sv_vcatpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VCATPVF	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_sv_vcatpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VCATPVF_MG	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_sv_vcatpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted);
-#define PERL_ARGS_ASSERT_SV_VCATPVFN	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_sv_vsetpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VSETPVF	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_sv_vsetpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args);
-#define PERL_ARGS_ASSERT_SV_VSETPVF_MG	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_sv_vsetpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const Size_t sv_count, bool *const maybe_tainted);
-#define PERL_ARGS_ASSERT_SV_VSETPVFN	\
-	assert(sv); assert(pat)
-PERL_CALLCONV void	Perl_switch_to_global_locale(void);
+
+PERL_CALLCONV char *
+Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_SV_UNI_DISPLAY         \
+        assert(dsv); assert(ssv)
+
+PERL_CALLCONV int
+Perl_sv_unmagic(pTHX_ SV * const sv, const int type);
+#define PERL_ARGS_ASSERT_SV_UNMAGIC             \
+        assert(sv)
+
+PERL_CALLCONV int
+Perl_sv_unmagicext(pTHX_ SV * const sv, const int type, const MGVTBL *vtbl);
+#define PERL_ARGS_ASSERT_SV_UNMAGICEXT          \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_unref_flags(pTHX_ SV * const ref, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_UNREF_FLAGS         \
+        assert(ref)
+
+PERL_CALLCONV void
+Perl_sv_untaint(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_UNTAINT             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_upgrade(pTHX_ SV * const sv, svtype new_type);
+#define PERL_ARGS_ASSERT_SV_UPGRADE             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_usepvn_flags(pTHX_ SV * const sv, char *ptr, const STRLEN len, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS        \
+        assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_utf8_decode(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_UTF8_DECODE         \
+        assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_utf8_downgrade_flags(pTHX_ SV * const sv, const bool fail_ok, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE_FLAGS \
+        assert(sv)
+
+/* PERL_CALLCONV bool
+sv_utf8_downgrade_nomg(pTHX_ SV * const sv, const bool fail_ok); */
+
+PERL_CALLCONV void
+Perl_sv_utf8_encode(pTHX_ SV * const sv);
+#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE         \
+        assert(sv)
+
+/* PERL_CALLCONV STRLEN
+sv_utf8_upgrade_flags(pTHX_ SV * const sv, const I32 flags); */
+
+PERL_CALLCONV STRLEN
+Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV * const sv, const I32 flags, STRLEN extra);
+#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \
+        assert(sv)
+
+/* PERL_CALLCONV STRLEN
+sv_utf8_upgrade_nomg(pTHX_ SV *sv); */
+
+PERL_CALLCONV void
+Perl_sv_vcatpvf(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VCATPVF             \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vcatpvf_mg(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VCATPVF_MG          \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vcatpvfn(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted);
+#define PERL_ARGS_ASSERT_SV_VCATPVFN            \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vcatpvfn_flags(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted, const U32 flags);
+#define PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS      \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vsetpvf(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VSETPVF             \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vsetpvf_mg(pTHX_ SV * const sv, const char * const pat, va_list * const args);
+#define PERL_ARGS_ASSERT_SV_VSETPVF_MG          \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_vsetpvfn(pTHX_ SV * const sv, const char * const pat, const STRLEN patlen, va_list * const args, SV ** const svargs, const Size_t sv_count, bool * const maybe_tainted);
+#define PERL_ARGS_ASSERT_SV_VSETPVFN            \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_switch_to_global_locale(pTHX);
 #define PERL_ARGS_ASSERT_SWITCH_TO_GLOBAL_LOCALE
-PERL_CALLCONV bool	Perl_sync_locale(void);
+
+PERL_CALLCONV bool
+Perl_sync_locale(pTHX);
 #define PERL_ARGS_ASSERT_SYNC_LOCALE
-PERL_CALLCONV void	Perl_sys_init(int* argc, char*** argv);
-#define PERL_ARGS_ASSERT_SYS_INIT	\
-	assert(argc); assert(argv)
-PERL_CALLCONV void	Perl_sys_init3(int* argc, char*** argv, char*** env);
-#define PERL_ARGS_ASSERT_SYS_INIT3	\
-	assert(argc); assert(argv); assert(env)
-PERL_CALLCONV void	Perl_sys_term(void);
+
+PERL_CALLCONV void
+Perl_sys_init(int *argc, char ***argv);
+#define PERL_ARGS_ASSERT_SYS_INIT               \
+        assert(argc); assert(argv)
+
+PERL_CALLCONV void
+Perl_sys_init3(int *argc, char ***argv, char ***env);
+#define PERL_ARGS_ASSERT_SYS_INIT3              \
+        assert(argc); assert(argv); assert(env)
+
+PERL_CALLCONV void
+Perl_sys_term(void);
 #define PERL_ARGS_ASSERT_SYS_TERM
-PERL_CALLCONV void	Perl_taint_env(pTHX);
+
+PERL_CALLCONV void
+Perl_taint_env(pTHX);
 #define PERL_ARGS_ASSERT_TAINT_ENV
-PERL_CALLCONV void	Perl_taint_proper(pTHX_ const char* f, const char *const s);
-#define PERL_ARGS_ASSERT_TAINT_PROPER	\
-	assert(s)
-PERL_CALLCONV void	Perl_thread_locale_init(void);
+
+PERL_CALLCONV void
+Perl_taint_proper(pTHX_ const char *f, const char * const s);
+#define PERL_ARGS_ASSERT_TAINT_PROPER           \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_thread_locale_init(pTHX);
 #define PERL_ARGS_ASSERT_THREAD_LOCALE_INIT
-PERL_CALLCONV void	Perl_thread_locale_term(void);
+
+PERL_CALLCONV void
+Perl_thread_locale_term(pTHX);
 #define PERL_ARGS_ASSERT_THREAD_LOCALE_TERM
-PERL_CALLCONV OP *	Perl_tied_method(pTHX_ SV *methname, SV **sp, SV *const sv, const MAGIC *const mg, const U32 flags, U32 argc, ...);
-#define PERL_ARGS_ASSERT_TIED_METHOD	\
-	assert(methname); assert(sp); assert(sv); assert(mg)
-PERL_CALLCONV SSize_t	Perl_tmps_grow_p(pTHX_ SSize_t ix);
+
+PERL_CALLCONV OP *
+Perl_tied_method(pTHX_ SV *methname, SV **sp, SV * const sv, const MAGIC * const mg, const U32 flags, U32 argc, ...)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_TIED_METHOD            \
+        assert(methname); assert(sp); assert(sv); assert(mg)
+
+PERL_CALLCONV SSize_t
+Perl_tmps_grow_p(pTHX_ SSize_t ix);
 #define PERL_ARGS_ASSERT_TMPS_GROW_P
-/* PERL_CALLCONV UV	to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp); */
-#define PERL_ARGS_ASSERT_TO_UNI_FOLD
-PERL_CALLCONV UV	Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TO_UNI_LOWER	\
-	assert(p); assert(lenp)
-PERL_CALLCONV UV	Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TO_UNI_TITLE	\
-	assert(p); assert(lenp)
-PERL_CALLCONV UV	Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TO_UNI_UPPER	\
-	assert(p); assert(lenp)
-PERL_CALLCONV bool	Perl_try_amagic_bin(pTHX_ int method, int flags);
+
+/* PERL_CALLCONV UV
+to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp); */
+
+PERL_CALLCONV UV
+Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_TO_UNI_LOWER           \
+        assert(p); assert(lenp)
+
+PERL_CALLCONV UV
+Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_TO_UNI_TITLE           \
+        assert(p); assert(lenp)
+
+PERL_CALLCONV UV
+Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_TO_UNI_UPPER           \
+        assert(p); assert(lenp)
+
+PERL_CALLCONV bool
+Perl_try_amagic_bin(pTHX_ int method, int flags);
 #define PERL_ARGS_ASSERT_TRY_AMAGIC_BIN
-PERL_CALLCONV bool	Perl_try_amagic_un(pTHX_ int method, int flags);
+
+PERL_CALLCONV bool
+Perl_try_amagic_un(pTHX_ int method, int flags);
 #define PERL_ARGS_ASSERT_TRY_AMAGIC_UN
-#ifndef NO_MATHOMS
-PERL_CALLCONV SSize_t	Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UNPACK_STR	\
-	assert(pat); assert(patend); assert(s); assert(strend)
-#endif
 
-PERL_CALLCONV SSize_t	Perl_unpackstring(pTHX_ const char *pat, const char *patend, const char *s, const char *strend, U32 flags);
-#define PERL_ARGS_ASSERT_UNPACKSTRING	\
-	assert(pat); assert(patend); assert(s); assert(strend)
-PERL_CALLCONV void	Perl_unshare_hek(pTHX_ HEK* hek);
+PERL_CALLCONV SSize_t
+Perl_unpackstring(pTHX_ const char *pat, const char *patend, const char *s, const char *strend, U32 flags);
+#define PERL_ARGS_ASSERT_UNPACKSTRING           \
+        assert(pat); assert(patend); assert(s); assert(strend)
+
+PERL_CALLCONV void
+Perl_unshare_hek(pTHX_ HEK *hek);
 #define PERL_ARGS_ASSERT_UNSHARE_HEK
-PERL_CALLCONV void	Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
+
+PERL_CALLCONV void
+Perl_unsharepvn(pTHX_ const char *sv, I32 len, U32 hash);
 #define PERL_ARGS_ASSERT_UNSHAREPVN
-PERL_CALLCONV SV*	Perl_upg_version(pTHX_ SV *ver, bool qv);
-#define PERL_ARGS_ASSERT_UPG_VERSION	\
-	assert(ver)
-PERL_CALLCONV U8*	Perl_utf16_to_utf8(pTHX_ U8* p, U8 *d, Size_t bytelen, Size_t *newlen);
-#define PERL_ARGS_ASSERT_UTF16_TO_UTF8	\
-	assert(p); assert(d); assert(newlen)
-PERL_CALLCONV U8*	Perl_utf16_to_utf8_base(pTHX_ U8* p, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low);
-#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_BASE	\
-	assert(p); assert(d); assert(newlen)
-PERL_CALLCONV U8*	Perl_utf16_to_utf8_reversed(pTHX_ U8* p, U8 *d, Size_t bytelen, Size_t *newlen);
-#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED	\
-	assert(p); assert(d); assert(newlen)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE IV	Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_DISTANCE	\
-	assert(a); assert(b)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8*	Perl_utf8_hop(const U8 *s, SSize_t off)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP	\
-	assert(s)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8*	Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP_BACK	\
-	assert(s); assert(start)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8*	Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD	\
-	assert(s); assert(end)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8*	Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_HOP_SAFE	\
-	assert(s); assert(start); assert(end)
-#endif
-
-PERL_CALLCONV STRLEN	Perl_utf8_length(pTHX_ const U8* s, const U8 *e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UTF8_LENGTH	\
-	assert(s); assert(e)
-
-PERL_CALLCONV U8*	Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_UTF8_TO_BYTES	\
-	assert(s); assert(lenp)
-PERL_CALLCONV U8*	Perl_utf8_to_utf16_base(pTHX_ U8* s, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low);
-#define PERL_ARGS_ASSERT_UTF8_TO_UTF16_BASE	\
-	assert(s); assert(d); assert(newlen)
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR	\
-	assert(s)
-#endif
-
-PERL_CALLCONV UV	Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
-#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF	\
-	assert(s); assert(send)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	Perl_utf8_to_uvchr_buf_helper(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
-#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF_HELPER	\
-	assert(s); assert(send)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI	\
-	assert(s)
-#endif
-
-PERL_CALLCONV UV	Perl_utf8_to_uvuni_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF	\
-	assert(s); assert(send)
-
-PERL_CALLCONV UV	Perl_utf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR	\
-	assert(s)
-PERL_CALLCONV UV	Perl_utf8n_to_uvchr_error(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_ERROR	\
-	assert(s)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	Perl_utf8n_to_uvchr_msgs(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors, AV ** msgs);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_MSGS	\
-	assert(s)
-#endif
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI	\
-	assert(s)
-#endif
-
-PERL_CALLCONV void	Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg);
-#define PERL_ARGS_ASSERT_UTILIZE	\
-	assert(idop)
-/* PERL_CALLCONV U8*	uvchr_to_utf8(pTHX_ U8 *d, UV uv); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8
-/* PERL_CALLCONV U8*	uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS
-/* PERL_CALLCONV U8*	uvchr_to_utf8_flags_msgs(pTHX_ U8 *d, UV uv, UV flags, HV ** msgs); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS_MSGS
-PERL_CALLCONV U8*	Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
-#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS	\
-	assert(d)
-PERL_CALLCONV U8*	Perl_uvoffuni_to_utf8_flags_msgs(pTHX_ U8 *d, UV input_uv, const UV flags, HV** msgs);
-#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS_MSGS	\
-	assert(d)
-PERL_CALLCONV U8*	Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
-#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8	\
-	assert(d)
-#ifndef NO_MATHOMS
-PERL_CALLCONV U8*	Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS	\
-	assert(d)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR	\
-	assert(s)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV UV	Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI	\
-	assert(s)
-#endif
-
-PERL_CALLCONV bool	Perl_validate_proto(pTHX_ SV *name, SV *proto, bool warn, bool curstash);
-#define PERL_ARGS_ASSERT_VALIDATE_PROTO	\
-	assert(name)
-PERL_CALLCONV int	Perl_vcmp(pTHX_ SV *lhv, SV *rhv);
-#define PERL_ARGS_ASSERT_VCMP	\
-	assert(lhv); assert(rhv)
-PERL_CALLCONV_NO_RET void	Perl_vcroak(pTHX_ const char* pat, va_list* args)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_VCROAK
 
-PERL_CALLCONV void	Perl_vdeb(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VDEB	\
-	assert(pat)
-PERL_CALLCONV char*	Perl_vform(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VFORM	\
-	assert(pat)
-PERL_CALLCONV void	Perl_vivify_defelem(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_VIVIFY_DEFELEM	\
-	assert(sv)
-PERL_CALLCONV SV*	Perl_vivify_ref(pTHX_ SV* sv, U32 to_what)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VIVIFY_REF	\
-	assert(sv)
-
-PERL_CALLCONV void	Perl_vload_module(pTHX_ U32 flags, SV* name, SV* ver, va_list* args);
-#define PERL_ARGS_ASSERT_VLOAD_MODULE	\
-	assert(name)
-PERL_CALLCONV SV*	Perl_vmess(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VMESS	\
-	assert(pat)
-PERL_CALLCONV SV*	Perl_vnewSVpvf(pTHX_ const char *const pat, va_list *const args)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VNEWSVPVF	\
-	assert(pat)
-
-PERL_CALLCONV SV*	Perl_vnormal(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VNORMAL	\
-	assert(vs)
-PERL_CALLCONV SV*	Perl_vnumify(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VNUMIFY	\
-	assert(vs)
-PERL_CALLCONV SV*	Perl_vstringify(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VSTRINGIFY	\
-	assert(vs)
-PERL_CALLCONV SV*	Perl_vverify(pTHX_ SV *vs);
-#define PERL_ARGS_ASSERT_VVERIFY	\
-	assert(vs)
-PERL_CALLCONV void	Perl_vwarn(pTHX_ const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VWARN	\
-	assert(pat)
-PERL_CALLCONV void	Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args);
-#define PERL_ARGS_ASSERT_VWARNER	\
-	assert(pat)
-PERL_CALLCONV I32	Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags);
-#define PERL_ARGS_ASSERT_WAIT4PID	\
-	assert(statusp)
-PERL_CALLCONV void	Perl_warn(pTHX_ const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_WARN	\
-	assert(pat)
-
-PERL_CALLCONV void	Perl_warn_sv(pTHX_ SV *baseex);
-#define PERL_ARGS_ASSERT_WARN_SV	\
-	assert(baseex)
-PERL_CALLCONV void	Perl_warner(pTHX_ U32 err, const char* pat, ...)
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_WARNER	\
-	assert(pat)
+PERL_CALLCONV SV *
+Perl_upg_version(pTHX_ SV *ver, bool qv);
+#define PERL_ARGS_ASSERT_UPG_VERSION            \
+        assert(ver)
+
+PERL_CALLCONV U8 *
+Perl_utf16_to_utf8(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen);
+#define PERL_ARGS_ASSERT_UTF16_TO_UTF8          \
+        assert(p); assert(d); assert(newlen)
+
+PERL_CALLCONV U8 *
+Perl_utf16_to_utf8_base(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low);
+#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_BASE     \
+        assert(p); assert(d); assert(newlen)
+
+PERL_CALLCONV U8 *
+Perl_utf16_to_utf8_reversed(pTHX_ U8 *p, U8 *d, Size_t bytelen, Size_t *newlen);
+#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED \
+        assert(p); assert(d); assert(newlen)
+
+PERL_CALLCONV STRLEN
+Perl_utf8_length(pTHX_ const U8 *s0, const U8 *e)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_UTF8_LENGTH            \
+        assert(s0); assert(e)
+
+PERL_CALLCONV U8 *
+Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *lenp);
+#define PERL_ARGS_ASSERT_UTF8_TO_BYTES          \
+        assert(s); assert(lenp)
+
+PERL_CALLCONV U8 *
+Perl_utf8_to_utf16_base(pTHX_ U8 *s, U8 *d, Size_t bytelen, Size_t *newlen, const bool high, const bool low);
+#define PERL_ARGS_ASSERT_UTF8_TO_UTF16_BASE     \
+        assert(s); assert(d); assert(newlen)
+
+PERL_CALLCONV UV
+Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF      \
+        assert(s); assert(send)
+
+PERL_CALLCONV UV
+Perl_utf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags);
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR         \
+        assert(s)
+
+PERL_CALLCONV UV
+Perl_utf8n_to_uvchr_error(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors);
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_ERROR   \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_UTILIZE                \
+        assert(idop)
+
+/* PERL_CALLCONV U8 *
+uvchr_to_utf8(pTHX_ U8 *d, UV uv); */
+
+/* PERL_CALLCONV U8 *
+uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); */
+
+/* PERL_CALLCONV U8 *
+uvchr_to_utf8_flags_msgs(pTHX_ U8 *d, UV uv, UV flags, HV **msgs); */
+
+PERL_CALLCONV U8 *
+Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
+#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS \
+        assert(d)
+
+PERL_CALLCONV U8 *
+Perl_uvoffuni_to_utf8_flags_msgs(pTHX_ U8 *d, UV input_uv, const UV flags, HV **msgs);
+#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS_MSGS \
+        assert(d)
+
+PERL_CALLCONV U8 *
+Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
+#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8          \
+        assert(d)
+
+PERL_CALLCONV bool
+Perl_validate_proto(pTHX_ SV *name, SV *proto, bool warn, bool curstash);
+#define PERL_ARGS_ASSERT_VALIDATE_PROTO         \
+        assert(name)
+
+PERL_CALLCONV int
+Perl_vcmp(pTHX_ SV *lhv, SV *rhv);
+#define PERL_ARGS_ASSERT_VCMP                   \
+        assert(lhv); assert(rhv)
+
+PERL_CALLCONV_NO_RET void
+Perl_vcroak(pTHX_ const char *pat, va_list *args)
+        __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_VCROAK
 
-PERL_CALLCONV I32	Perl_was_lvalue_sub(pTHX)
-			__attribute__warn_unused_result__;
+PERL_CALLCONV void
+Perl_vdeb(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VDEB                   \
+        assert(pat)
+
+PERL_CALLCONV char *
+Perl_vform(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VFORM                  \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_vivify_defelem(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_VIVIFY_DEFELEM         \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_vivify_ref(pTHX_ SV *sv, U32 to_what)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_VIVIFY_REF             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args);
+#define PERL_ARGS_ASSERT_VLOAD_MODULE           \
+        assert(name)
+
+PERL_CALLCONV SV *
+Perl_vmess(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VMESS                  \
+        assert(pat)
+
+PERL_CALLCONV SV *
+Perl_vnewSVpvf(pTHX_ const char * const pat, va_list * const args)
+        __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_VNEWSVPVF              \
+        assert(pat)
+
+PERL_CALLCONV SV *
+Perl_vnormal(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VNORMAL                \
+        assert(vs)
+
+PERL_CALLCONV SV *
+Perl_vnumify(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VNUMIFY                \
+        assert(vs)
+
+PERL_CALLCONV SV *
+Perl_vstringify(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VSTRINGIFY             \
+        assert(vs)
+
+PERL_CALLCONV SV *
+Perl_vverify(pTHX_ SV *vs);
+#define PERL_ARGS_ASSERT_VVERIFY                \
+        assert(vs)
+
+PERL_CALLCONV void
+Perl_vwarn(pTHX_ const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VWARN                  \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_vwarner(pTHX_ U32 err, const char *pat, va_list *args);
+#define PERL_ARGS_ASSERT_VWARNER                \
+        assert(pat)
+
+PERL_CALLCONV I32
+Perl_wait4pid(pTHX_ Pid_t pid, int *statusp, int flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_WAIT4PID               \
+        assert(statusp)
+
+PERL_CALLCONV void
+Perl_warn(pTHX_ const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#define PERL_ARGS_ASSERT_WARN                   \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_warn_sv(pTHX_ SV *baseex);
+#define PERL_ARGS_ASSERT_WARN_SV                \
+        assert(baseex)
+
+PERL_CALLCONV void
+Perl_warner(pTHX_ U32 err, const char *pat, ...)
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+#define PERL_ARGS_ASSERT_WARNER                 \
+        assert(pat)
+
+PERL_CALLCONV I32
+Perl_was_lvalue_sub(pTHX)
+        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_WAS_LVALUE_SUB
 
-PERL_CALLCONV void	Perl_watch(pTHX_ char** addr);
-#define PERL_ARGS_ASSERT_WATCH	\
-	assert(addr)
-/* PERL_CALLCONV I32	whichsig(pTHX_ const char* sig); */
-#define PERL_ARGS_ASSERT_WHICHSIG
-PERL_CALLCONV I32	Perl_whichsig_pv(pTHX_ const char* sig);
-#define PERL_ARGS_ASSERT_WHICHSIG_PV	\
-	assert(sig)
-PERL_CALLCONV I32	Perl_whichsig_pvn(pTHX_ const char* sig, STRLEN len);
-#define PERL_ARGS_ASSERT_WHICHSIG_PVN	\
-	assert(sig)
-PERL_CALLCONV I32	Perl_whichsig_sv(pTHX_ SV* sigsv);
-#define PERL_ARGS_ASSERT_WHICHSIG_SV	\
-	assert(sigsv)
-PERL_CALLCONV void	Perl_wrap_keyword_plugin(pTHX_ Perl_keyword_plugin_t new_plugin, Perl_keyword_plugin_t *old_plugin_p);
-#define PERL_ARGS_ASSERT_WRAP_KEYWORD_PLUGIN	\
-	assert(new_plugin); assert(old_plugin_p)
-PERL_CALLCONV void	Perl_wrap_op_checker(pTHX_ Optype opcode, Perl_check_t new_checker, Perl_check_t *old_checker_p);
-#define PERL_ARGS_ASSERT_WRAP_OP_CHECKER	\
-	assert(new_checker); assert(old_checker_p)
-PERL_CALLCONV void	Perl_write_to_stderr(pTHX_ SV* msv);
-#define PERL_ARGS_ASSERT_WRITE_TO_STDERR	\
-	assert(msv)
-PERL_CALLCONV void	Perl_xs_boot_epilog(pTHX_ const I32 ax);
+PERL_CALLCONV void
+Perl_watch(pTHX_ char **addr)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_WATCH                  \
+        assert(addr)
+
+/* PERL_CALLCONV I32
+whichsig(pTHX_ const char *sig); */
+
+PERL_CALLCONV I32
+Perl_whichsig_pv(pTHX_ const char *sig);
+#define PERL_ARGS_ASSERT_WHICHSIG_PV            \
+        assert(sig)
+
+PERL_CALLCONV I32
+Perl_whichsig_pvn(pTHX_ const char *sig, STRLEN len);
+#define PERL_ARGS_ASSERT_WHICHSIG_PVN           \
+        assert(sig)
+
+PERL_CALLCONV I32
+Perl_whichsig_sv(pTHX_ SV *sigsv);
+#define PERL_ARGS_ASSERT_WHICHSIG_SV            \
+        assert(sigsv)
+
+PERL_CALLCONV void
+Perl_wrap_infix_plugin(pTHX_ Perl_infix_plugin_t new_plugin, Perl_infix_plugin_t *old_plugin_p);
+#define PERL_ARGS_ASSERT_WRAP_INFIX_PLUGIN      \
+        assert(new_plugin); assert(old_plugin_p)
+
+PERL_CALLCONV void
+Perl_wrap_keyword_plugin(pTHX_ Perl_keyword_plugin_t new_plugin, Perl_keyword_plugin_t *old_plugin_p);
+#define PERL_ARGS_ASSERT_WRAP_KEYWORD_PLUGIN    \
+        assert(new_plugin); assert(old_plugin_p)
+
+PERL_CALLCONV void
+Perl_wrap_op_checker(pTHX_ Optype opcode, Perl_check_t new_checker, Perl_check_t *old_checker_p);
+#define PERL_ARGS_ASSERT_WRAP_OP_CHECKER        \
+        assert(new_checker); assert(old_checker_p)
+
+PERL_CALLCONV void
+Perl_write_to_stderr(pTHX_ SV *msv)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_WRITE_TO_STDERR        \
+        assert(msv)
+
+PERL_CALLCONV void
+Perl_xs_boot_epilog(pTHX_ const I32 ax);
 #define PERL_ARGS_ASSERT_XS_BOOT_EPILOG
-PERL_CALLCONV I32	Perl_xs_handshake(const U32 key, void * v_my_perl, const char * file, ...);
-#define PERL_ARGS_ASSERT_XS_HANDSHAKE	\
-	assert(v_my_perl); assert(file)
-PERL_CALLCONV int	Perl_yyerror(pTHX_ const char *const s);
-#define PERL_ARGS_ASSERT_YYERROR	\
-	assert(s)
-PERL_CALLCONV int	Perl_yyerror_pv(pTHX_ const char *const s, U32 flags);
-#define PERL_ARGS_ASSERT_YYERROR_PV	\
-	assert(s)
-PERL_CALLCONV int	Perl_yyerror_pvn(pTHX_ const char *const s, STRLEN len, U32 flags);
+
+PERL_CALLCONV I32
+Perl_xs_handshake(const U32 key, void *v_my_perl, const char *file, ...);
+#define PERL_ARGS_ASSERT_XS_HANDSHAKE           \
+        assert(v_my_perl); assert(file)
+
+PERL_CALLCONV int
+Perl_yyerror(pTHX_ const char * const s)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_YYERROR                \
+        assert(s)
+
+PERL_CALLCONV int
+Perl_yyerror_pv(pTHX_ const char * const s, U32 flags)
+        __attribute__visibility__("hidden");
+#define PERL_ARGS_ASSERT_YYERROR_PV             \
+        assert(s)
+
+PERL_CALLCONV int
+Perl_yyerror_pvn(pTHX_ const char * const s, STRLEN len, U32 flags)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_YYERROR_PVN
-PERL_CALLCONV int	Perl_yylex(pTHX);
+
+PERL_CALLCONV int
+Perl_yylex(pTHX);
 #define PERL_ARGS_ASSERT_YYLEX
-PERL_CALLCONV int	Perl_yyparse(pTHX_ int gramtype);
+
+PERL_CALLCONV int
+Perl_yyparse(pTHX_ int gramtype)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_YYPARSE
-PERL_CALLCONV void	Perl_yyquit(pTHX);
+
+PERL_CALLCONV void
+Perl_yyquit(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_YYQUIT
-PERL_CALLCONV void	Perl_yyunlex(pTHX);
+
+PERL_CALLCONV void
+Perl_yyunlex(pTHX)
+        __attribute__visibility__("hidden");
 #define PERL_ARGS_ASSERT_YYUNLEX
-#if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void *	S_my_memrchr(const char * s, const char c, const STRLEN len);
-#define PERL_ARGS_ASSERT_MY_MEMRCHR	\
-	assert(s)
-#endif
-#endif
-#if !(!defined(PERL_EXT_RE_BUILD))
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV SV*	Perl_get_re_gclass_nonbitmap_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist);
-#define PERL_ARGS_ASSERT_GET_RE_GCLASS_NONBITMAP_DATA	\
-	assert(node)
-#  endif
-#endif
-#if !(defined(DEBUGGING))
-#  if !defined(NV_PRESERVES_UV)
-#    if defined(PERL_IN_SV_C)
-STATIC int	S_sv_2iuv_non_preserve(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE	\
-	assert(sv)
-#    endif
-#  endif
-#endif
-#if !(defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H))
-PERL_CALLCONV const char*	Perl_langinfo(const int item);
-#define PERL_ARGS_ASSERT_PERL_LANGINFO
-#endif
-#if !(defined(HAS_NL_LANGINFO))
-#  if defined(PERL_IN_LOCALE_C)
-STATIC const char*	S_my_nl_langinfo(const int item, bool toggle);
-#define PERL_ARGS_ASSERT_MY_NL_LANGINFO
-#  endif
-#endif
-#if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
-PERL_CALLCONV bool	Perl_do_exec(pTHX_ const char* cmd);
-#define PERL_ARGS_ASSERT_DO_EXEC	\
-	assert(cmd)
-#endif
-#if !(defined(PERL_USE_3ARG_SIGHANDLER))
-PERL_CALLCONV Signal_t	Perl_csighandler(int sig);
-#define PERL_ARGS_ASSERT_CSIGHANDLER
-PERL_CALLCONV Signal_t	Perl_sighandler(int sig);
-#define PERL_ARGS_ASSERT_SIGHANDLER
-#endif
-#if !(defined(_MSC_VER))
-PERL_CALLCONV_NO_RET int	Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET	\
-	assert(sv); assert(mg)
+
+#if defined(DEBUGGING)
+PERL_CALLCONV int
+Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_DEBUG_OPTS        \
+        assert(s)
+
+PERL_CALLCONV void
+Perl_hv_assert(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_HV_ASSERT             \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_pad_setsv(pTHX_ PADOFFSET po, SV *sv);
+# define PERL_ARGS_ASSERT_PAD_SETSV             \
+        assert(sv)
+
+PERL_CALLCONV SV *
+Perl_pad_sv(pTHX_ PADOFFSET po);
+# define PERL_ARGS_ASSERT_PAD_SV
+
+PERL_CALLCONV void
+Perl_set_padlist(CV *cv, PADLIST *padlist);
+# define PERL_ARGS_ASSERT_SET_PADLIST           \
+        assert(cv)
+
+#endif /* defined(DEBUGGING) */
+#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+PERL_CALLCONV void
+Perl_dump_sv_child(pTHX_ SV *sv)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DUMP_SV_CHILD         \
+        assert(sv)
 
 #endif
 #if !defined(EBCDIC)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned int	Perl_variant_byte_number(PERL_UINTMAX_T word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VARIANT_BYTE_NUMBER
-#endif
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE unsigned int
+Perl_variant_byte_number(PERL_UINTMAX_T word)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_VARIANT_BYTE_NUMBER
+
+# endif
+#endif
+#if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
+PERL_CALLCONV I32
+Perl_my_chsize(pTHX_ int fd, Off_t length)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MY_CHSIZE
 
 #endif
 #if !defined(HAS_GETENV_LEN)
-PERL_CALLCONV char*	Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len);
-#define PERL_ARGS_ASSERT_GETENV_LEN	\
-	assert(env_elem); assert(len)
-#endif
-#if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#  if defined(PERL_IN_PP_SYS_C)
-STATIC int	S_dooneliner(pTHX_ const char *cmd, const char *filename)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOONELINER	\
-	assert(cmd); assert(filename)
+PERL_CALLCONV char *
+Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GETENV_LEN            \
+        assert(env_elem); assert(len)
 
-#  endif
 #endif
 #if !defined(HAS_MKOSTEMP)
-PERL_CALLCONV int	Perl_my_mkostemp(char *templte, int flags);
-#define PERL_ARGS_ASSERT_MY_MKOSTEMP	\
-	assert(templte)
-#endif
-#if !defined(HAS_MKSTEMP)
-PERL_CALLCONV int	Perl_my_mkstemp(char *templte);
-#define PERL_ARGS_ASSERT_MY_MKSTEMP	\
-	assert(templte)
-#endif
-#if !defined(HAS_RENAME)
-PERL_CALLCONV I32	Perl_same_dirent(pTHX_ const char* a, const char* b);
-#define PERL_ARGS_ASSERT_SAME_DIRENT	\
-	assert(a); assert(b)
-#endif
-#if !defined(HAS_SIGNBIT)
-PERL_CALLCONV int	Perl_signbit(NV f)
-			__attribute__warn_unused_result__
-			__attribute__pure__;
-#define PERL_ARGS_ASSERT_PERL_SIGNBIT
+PERL_CALLCONV int
+Perl_my_mkostemp(char *templte, int flags)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MY_MKOSTEMP           \
+        assert(templte)
 
 #endif
-#if !defined(HAS_STRLCAT)
-PERL_CALLCONV Size_t	Perl_my_strlcat(char *dst, const char *src, Size_t size);
-#define PERL_ARGS_ASSERT_MY_STRLCAT
-#endif
-#if !defined(HAS_STRLCPY)
-PERL_CALLCONV Size_t	Perl_my_strlcpy(char *dst, const char *src, Size_t size);
-#define PERL_ARGS_ASSERT_MY_STRLCPY
-#endif
-#if !defined(HAS_STRNLEN)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	Perl_my_strnlen(const char *str, Size_t maxlen);
-#define PERL_ARGS_ASSERT_MY_STRNLEN	\
-	assert(str)
-#endif
-#endif
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-PERL_CALLCONV I32	Perl_my_chsize(pTHX_ int fd, Off_t length)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_CHSIZE
-
-#endif
-#if !defined(NV_PRESERVES_UV)
-#  if defined(DEBUGGING)
-#    if defined(PERL_IN_SV_C)
-STATIC int	S_sv_2iuv_non_preserve(pTHX_ SV *const sv, I32 numtype);
-#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE	\
-	assert(sv)
-#    endif
-#  endif
-#endif
-#if !defined(PERL_DISABLE_PMC)
-#  if defined(PERL_IN_PP_CTL_C)
-STATIC PerlIO *	S_doopen_pm(pTHX_ SV *name)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOOPEN_PM	\
-	assert(name)
-
-#  endif
-#endif
-#if !defined(PERL_EXT_RE_BUILD)
-#  if defined(PERL_IN_REGCOMP_C)
-STATIC void	S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end);
-#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST	\
-	assert(invlist)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV*	S__invlist_array_init(SV* const invlist, const bool will_have_0)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE IV*	S_get_invlist_previous_index_addr(SV* invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR	\
-	assert(invlist)
-#endif
-
-STATIC void	S_initialize_invlist_guts(pTHX_ SV* invlist, const Size_t initial_size);
-#define PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS	\
-	assert(invlist)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_clear(pTHX_ SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_CLEAR	\
-	assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	S_invlist_max(const SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_MAX	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE IV	S_invlist_previous_index(SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX	\
-	assert(invlist)
-#endif
-
-STATIC void	S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src);
-#define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC	\
-	assert(dest); assert(src)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_set_previous_index(SV* const invlist, const IV index);
-#define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX	\
-	assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_trim(SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_TRIM	\
-	assert(invlist)
-#endif
-#  endif
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV SV*	Perl_get_regclass_nonbitmap_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist);
-#define PERL_ARGS_ASSERT_GET_REGCLASS_NONBITMAP_DATA	\
-	assert(node)
-#  endif
-#endif
-#if !defined(PERL_IMPLICIT_SYS)
-PERL_CALLCONV I32	Perl_my_pclose(pTHX_ PerlIO* ptr);
-#define PERL_ARGS_ASSERT_MY_PCLOSE
-PERL_CALLCONV PerlIO*	Perl_my_popen(pTHX_ const char* cmd, const char* mode);
-#define PERL_ARGS_ASSERT_MY_POPEN	\
-	assert(cmd); assert(mode)
-#endif
-#if !defined(PERL_IS_MINIPERL)
-#  if defined(PERL_IN_PERL_C)
-STATIC SV *	S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem);
-#define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS	\
-	assert(av); assert(dir); assert(stem)
-#  endif
-#endif
-#if !defined(PERL_NO_INLINE_FUNCTIONS)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popblock(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPBLOCK	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popeval(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPEVAL	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popformat(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPFORMAT	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPGIVEN	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPLOOP	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popsub(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPSUB	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popsub_args(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPSUB_ARGS	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popsub_common(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPSUB_COMMON	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_popwhen(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_POPWHEN	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE PERL_CONTEXT *	Perl_cx_pushblock(pTHX_ U8 type, U8 gimme, SV** sp, I32 saveix);
-#define PERL_ARGS_ASSERT_CX_PUSHBLOCK	\
-	assert(sp)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv);
-#define PERL_ARGS_ASSERT_CX_PUSHEVAL	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv);
-#define PERL_ARGS_ASSERT_CX_PUSHFORMAT	\
-	assert(cx); assert(cv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv);
-#define PERL_ARGS_ASSERT_CX_PUSHGIVEN	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV *itersave);
-#define PERL_ARGS_ASSERT_CX_PUSHLOOP_FOR	\
-	assert(cx); assert(itervarp)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_PUSHLOOP_PLAIN	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs);
-#define PERL_ARGS_ASSERT_CX_PUSHSUB	\
-	assert(cx); assert(cv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushtry(pTHX_ PERL_CONTEXT *cx, OP *retop);
-#define PERL_ARGS_ASSERT_CX_PUSHTRY	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_pushwhen(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_PUSHWHEN	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	Perl_cx_topblock(pTHX_ PERL_CONTEXT *cx);
-#define PERL_ARGS_ASSERT_CX_TOPBLOCK	\
-	assert(cx)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE U8	Perl_gimme_V(pTHX);
-#define PERL_ARGS_ASSERT_GIMME_V
-#endif
-#endif
-#if !defined(PERL_NO_UTF16_FILTER)
-#  if defined(PERL_IN_TOKE_C)
-STATIC U8*	S_add_utf16_textfilter(pTHX_ U8 *const s, bool reversed);
-#define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER	\
-	assert(s)
-STATIC I32	S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
-#define PERL_ARGS_ASSERT_UTF16_TEXTFILTER	\
-	assert(sv)
-#  endif
-#endif
-#if !defined(PURIFY)
-#  if defined(PERL_IN_HV_C)
-STATIC HE*	S_new_he(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_HE
-
-#  endif
-#endif
-#if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
-#  if defined(PERL_IN_PERL_C)
-STATIC void	S_validate_suid(pTHX_ PerlIO *rsfp);
-#define PERL_ARGS_ASSERT_VALIDATE_SUID	\
-	assert(rsfp)
-#  endif
-#endif
-#if !defined(USE_ITHREADS)
-/* PERL_CALLCONV void	CopFILEGV_set(pTHX_ COP * c, GV * gv); */
-#define PERL_ARGS_ASSERT_COPFILEGV_SET
-#endif
-#if !defined(WIN32)
-PERL_CALLCONV bool	Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report);
-#define PERL_ARGS_ASSERT_DO_EXEC3	\
-	assert(incmd)
-#endif
-#if 0	/* Not currently used, but may be needed in the future */
-#  if defined(PERL_IN_UTF8_C)
-STATIC void	S_warn_on_first_deprecated_use(pTHX_ const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line);
-#define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE	\
-	assert(name); assert(alternative); assert(file)
-#  endif
-#endif
-#if defined (HAS_SOCKETPAIR) ||     (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && 	defined(AF_INET) && defined(PF_INET))
-PERL_CALLCONV int	Perl_PerlSock_socketpair_cloexec(pTHX_ int domain, int type, int protocol, int *pairfd)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLSOCK_SOCKETPAIR_CLOEXEC	\
-	assert(pairfd)
+#if !defined(HAS_MKSTEMP)
+PERL_CALLCONV int
+Perl_my_mkstemp(char *templte)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MY_MKSTEMP            \
+        assert(templte)
 
 #endif
-#if defined(DEBUGGING)
-PERL_CALLCONV int	Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_DEBUG_OPTS	\
-	assert(s)
-
-PERL_CALLCONV void	Perl_hv_assert(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_ASSERT	\
-	assert(hv)
-PERL_CALLCONV void	Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv);
-#define PERL_ARGS_ASSERT_PAD_SETSV	\
-	assert(sv)
-PERL_CALLCONV SV*	Perl_pad_sv(pTHX_ PADOFFSET po);
-#define PERL_ARGS_ASSERT_PAD_SV
-PERL_CALLCONV void	Perl_set_padlist(CV * cv, PADLIST * padlist);
-#define PERL_ARGS_ASSERT_SET_PADLIST	\
-	assert(cv)
-#  if defined(PERL_IN_LOCALE_C)
-#    if defined(USE_LOCALE)
-STATIC void	S_print_bytes_for_locale(pTHX_ const char * const s, const char * const e, const bool is_utf8);
-#define PERL_ARGS_ASSERT_PRINT_BYTES_FOR_LOCALE	\
-	assert(s); assert(e)
-STATIC void	S_print_collxfrm_input_and_return(pTHX_ const char * const s, const char * const e, const STRLEN * const xlen, const bool is_utf8);
-#define PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN	\
-	assert(s); assert(e)
-STATIC char *	S_setlocale_debug_string(const int category, const char* const locale, const char* const retval)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SETLOCALE_DEBUG_STRING
-
-#    endif
-#  endif
-#  if defined(PERL_IN_PAD_C)
-STATIC void	S_cv_dump(pTHX_ const CV *cv, const char *title);
-#define PERL_ARGS_ASSERT_CV_DUMP	\
-	assert(cv); assert(title)
-#  endif
-#  if defined(PERL_IN_REGCOMP_C)
-STATIC void	S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_TRIE	\
-	assert(trie); assert(revcharmap)
-STATIC void	S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST	\
-	assert(trie); assert(revcharmap)
-STATIC void	S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE	\
-	assert(trie); assert(revcharmap)
-STATIC const regnode*	S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV* sv, I32 indent, U32 depth);
-#define PERL_ARGS_ASSERT_DUMPUNTIL	\
-	assert(r); assert(start); assert(node); assert(sv)
-STATIC bool	S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV* nonbitmap_invlist, SV* only_utf8_locale_invlist, const regnode * const node, const U8 flags, const bool force_as_is_display);
-#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS	\
-	assert(sv)
-STATIC SV*	S_put_charclass_bitmap_innards_common(pTHX_ SV* invlist, SV* posixes, SV* only_utf8, SV* not_utf8, SV* only_utf8_locale, const bool invert);
-#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON	\
-	assert(invlist)
-STATIC void	S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV* invlist);
-#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST	\
-	assert(sv); assert(invlist)
-STATIC void	S_put_code_point(pTHX_ SV* sv, UV c);
-#define PERL_ARGS_ASSERT_PUT_CODE_POINT	\
-	assert(sv)
-STATIC void	S_put_range(pTHX_ SV* sv, UV start, const UV end, const bool allow_literals);
-#define PERL_ARGS_ASSERT_PUT_RANGE	\
-	assert(sv)
-PERL_CALLCONV int	Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...);
-#define PERL_ARGS_ASSERT_RE_INDENTF	\
-	assert(fmt)
-STATIC void	S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
-#define PERL_ARGS_ASSERT_REGDUMP_EXTFLAGS
-STATIC void	S_regdump_intflags(pTHX_ const char *lead, const U32 flags);
-#define PERL_ARGS_ASSERT_REGDUMP_INTFLAGS
-STATIC regnode_offset	S_regnode_guts_debug(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len);
-#define PERL_ARGS_ASSERT_REGNODE_GUTS_DEBUG	\
-	assert(pRExC_state)
-STATIC bool	S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGTAIL_STUDY	\
-	assert(pRExC_state); assert(p); assert(val)
-
-#  endif
-#  if defined(PERL_IN_REGEXEC_C)
-STATIC void	S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb);
-#define PERL_ARGS_ASSERT_DEBUG_START_MATCH	\
-	assert(prog); assert(start); assert(end); assert(blurb)
-STATIC void	S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8, const U32 depth);
-#define PERL_ARGS_ASSERT_DUMP_EXEC_POS	\
-	assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); assert(loc_reg_starttry)
-PERL_CALLCONV int	Perl_re_exec_indentf(pTHX_ const char *fmt, U32 depth, ...);
-#define PERL_ARGS_ASSERT_RE_EXEC_INDENTF	\
-	assert(fmt)
-#  endif
-#  if defined(PERL_IN_SV_C)
-STATIC void	S_del_sv(pTHX_ SV *p);
-#define PERL_ARGS_ASSERT_DEL_SV	\
-	assert(p)
-#  endif
-#  if defined(PERL_IN_TOKE_C)
-STATIC void	S_printbuf(pTHX_ const char *const fmt, const char *const s)
-			__attribute__format__(__printf__,pTHX_1,0);
-#define PERL_ARGS_ASSERT_PRINTBUF	\
-	assert(fmt); assert(s)
-
-STATIC int	S_tokereport(pTHX_ I32 rv, const YYSTYPE* lvalp);
-#define PERL_ARGS_ASSERT_TOKEREPORT	\
-	assert(lvalp)
-#  endif
-#endif
-#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
-#  if defined(PERL_IN_REGCOMP_C)
-STATIC void	S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV * stack, const IV fence, AV * fence_stack);
-#define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES	\
-	assert(pRExC_state); assert(stack); assert(fence_stack)
-#  endif
-#endif
-#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
-PERL_CALLCONV void	Perl_dump_sv_child(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_DUMP_SV_CHILD	\
-	assert(sv)
-#endif
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-PERL_CALLCONV I32	Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_IPCCTL	\
-	assert(mark); assert(sp)
-PERL_CALLCONV I32	Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_IPCGET	\
-	assert(mark); assert(sp)
-PERL_CALLCONV I32	Perl_do_msgrcv(pTHX_ SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_MSGRCV	\
-	assert(mark); assert(sp)
-PERL_CALLCONV I32	Perl_do_msgsnd(pTHX_ SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_MSGSND	\
-	assert(mark); assert(sp)
-PERL_CALLCONV I32	Perl_do_semop(pTHX_ SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_SEMOP	\
-	assert(mark); assert(sp)
-PERL_CALLCONV I32	Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_SHMIO	\
-	assert(mark); assert(sp)
-#endif
-#if defined(HAS_NL_LANGINFO)
-#  if defined(PERL_IN_LOCALE_C)
-STATIC const char*	S_my_nl_langinfo(const nl_item item, bool toggle);
-#define PERL_ARGS_ASSERT_MY_NL_LANGINFO
-#  endif
-#endif
+PERL_CALLCONV I32
+Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_IPCCTL             \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_ipcget(pTHX_ I32 optype, SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_IPCGET             \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_msgrcv(pTHX_ SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_MSGRCV             \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_msgsnd(pTHX_ SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_MSGSND             \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_semop(pTHX_ SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_SEMOP              \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV I32
+Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_SHMIO              \
+        assert(mark); assert(sp)
+
+#endif /* defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) */
 #if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H)
-PERL_CALLCONV const char*	Perl_langinfo(const nl_item item);
-#define PERL_ARGS_ASSERT_PERL_LANGINFO
+PERL_CALLCONV const char *
+Perl_langinfo(const nl_item item);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO
+
+PERL_CALLCONV const char *
+Perl_langinfo8(const nl_item item, utf8ness_t *utf8ness);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO8
+
+#else
+PERL_CALLCONV const char *
+Perl_langinfo(const int item);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO
+
+PERL_CALLCONV const char *
+Perl_langinfo8(const int item, utf8ness_t *utf8ness);
+# define PERL_ARGS_ASSERT_PERL_LANGINFO8
+
 #endif
 #if defined(HAS_PIPE)
-PERL_CALLCONV int	Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLPROC_PIPE_CLOEXEC	\
-	assert(pipefd)
+PERL_CALLCONV int
+Perl_PerlProc_pipe_cloexec(pTHX_ int *pipefd)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLPROC_PIPE_CLOEXEC \
+        assert(pipefd)
+
+#endif
+#if !defined(HAS_RENAME)
+PERL_CALLCONV I32
+Perl_same_dirent(pTHX_ const char *a, const char *b)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SAME_DIRENT           \
+        assert(a); assert(b)
+
+#endif
+#if !defined(HAS_SIGNBIT)
+PERL_CALLCONV int
+Perl_signbit(NV f)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
+# define PERL_ARGS_ASSERT_PERL_SIGNBIT
 
 #endif
 #if defined(HAS_SOCKET)
-PERL_CALLCONV int	Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLSOCK_ACCEPT_CLOEXEC
-
-PERL_CALLCONV int	Perl_PerlSock_socket_cloexec(pTHX_ int domain, int type, int protocol)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLSOCK_SOCKET_CLOEXEC
+PERL_CALLCONV int
+Perl_PerlSock_accept_cloexec(pTHX_ int listenfd, struct sockaddr *addr, Sock_size_t *addrlen)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLSOCK_ACCEPT_CLOEXEC
+
+PERL_CALLCONV int
+Perl_PerlSock_socket_cloexec(pTHX_ int domain, int type, int protocol)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLSOCK_SOCKET_CLOEXEC
+
+#endif /* defined(HAS_SOCKET) */
+#if   defined(HAS_SOCKETPAIR) ||                                     \
+    ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
+      defined(SOCK_DGRAM) )
+PERL_CALLCONV int
+Perl_PerlSock_socketpair_cloexec(pTHX_ int domain, int type, int protocol, int *pairfd)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PERLSOCK_SOCKETPAIR_CLOEXEC \
+        assert(pairfd)
+
+#endif
+#if !defined(HAS_STRLCPY)
+STATIC Size_t
+Perl_my_strlcpy(char *dst, const char *src, Size_t size);
+# define PERL_ARGS_ASSERT_MY_STRLCPY
 
 #endif
 #if defined(HAVE_INTERP_INTERN)
-PERL_CALLCONV void	Perl_sys_intern_clear(pTHX);
-#define PERL_ARGS_ASSERT_SYS_INTERN_CLEAR
-PERL_CALLCONV void	Perl_sys_intern_init(pTHX);
-#define PERL_ARGS_ASSERT_SYS_INTERN_INIT
-#  if defined(USE_ITHREADS)
-PERL_CALLCONV void	Perl_sys_intern_dup(pTHX_ struct interp_intern* src, struct interp_intern* dst);
-#define PERL_ARGS_ASSERT_SYS_INTERN_DUP	\
-	assert(src); assert(dst)
-#  endif
+PERL_CALLCONV void
+Perl_sys_intern_clear(pTHX);
+# define PERL_ARGS_ASSERT_SYS_INTERN_CLEAR
+
+PERL_CALLCONV void
+Perl_sys_intern_init(pTHX);
+# define PERL_ARGS_ASSERT_SYS_INTERN_INIT
+
+# if defined(USE_ITHREADS)
+PERL_CALLCONV void
+Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst);
+#   define PERL_ARGS_ASSERT_SYS_INTERN_DUP      \
+        assert(src); assert(dst)
+
+# endif
+#endif /* defined(HAVE_INTERP_INTERN) */
+#if defined(_MSC_VER)
+PERL_CALLCONV int
+Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET    \
+        assert(sv); assert(mg)
+
+#else
+PERL_CALLCONV_NO_RET int
+Perl_magic_regdatum_set(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__noreturn__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET    \
+        assert(sv); assert(mg)
+
 #endif
 #if defined(MULTIPLICITY)
-PERL_CALLCONV_NO_RET void	Perl_croak_nocontext(const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__null_ok__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_CROAK_NOCONTEXT
-
-PERL_CALLCONV void	Perl_deb_nocontext(const char* pat, ...)
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_DEB_NOCONTEXT	\
-	assert(pat)
-
-PERL_CALLCONV_NO_RET OP*	Perl_die_nocontext(const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__null_ok__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_DIE_NOCONTEXT
-
-PERL_CALLCONV char*	Perl_form_nocontext(const char* pat, ...)
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_FORM_NOCONTEXT	\
-	assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV int	Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
-			__attribute__deprecated__
-			__attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT	\
-	assert(stream); assert(format)
-#endif
-
-PERL_CALLCONV void	Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...);
-#define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT	\
-	assert(name)
-PERL_CALLCONV SV*	Perl_mess_nocontext(const char* pat, ...)
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_MESS_NOCONTEXT	\
-	assert(pat)
-
-PERL_CALLCONV void*	Perl_my_cxt_init(pTHX_ int *indexp, size_t size);
-#define PERL_ARGS_ASSERT_MY_CXT_INIT	\
-	assert(indexp)
-PERL_CALLCONV SV*	Perl_newSVpvf_nocontext(const char *const pat, ...)
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT	\
-	assert(pat)
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV int	Perl_printf_nocontext(const char *format, ...)
-			__attribute__deprecated__
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_PRINTF_NOCONTEXT	\
-	assert(format)
-#endif
-
-PERL_CALLCONV void	Perl_sv_catpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT	\
-	assert(sv); assert(pat)
-
-PERL_CALLCONV void	Perl_sv_catpvf_nocontext(SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT	\
-	assert(sv); assert(pat)
-
-PERL_CALLCONV void	Perl_sv_setpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT	\
-	assert(sv); assert(pat)
-
-PERL_CALLCONV void	Perl_sv_setpvf_nocontext(SV *const sv, const char *const pat, ...)
-			__attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT	\
-	assert(sv); assert(pat)
-
-PERL_CALLCONV void	Perl_warn_nocontext(const char* pat, ...)
-			__attribute__format__(__printf__,1,2);
-#define PERL_ARGS_ASSERT_WARN_NOCONTEXT	\
-	assert(pat)
-
-PERL_CALLCONV void	Perl_warner_nocontext(U32 err, const char* pat, ...)
-			__attribute__format__(__printf__,2,3);
-#define PERL_ARGS_ASSERT_WARNER_NOCONTEXT	\
-	assert(pat)
+PERL_CALLCONV_NO_RET void
+Perl_croak_nocontext(const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__format__null_ok__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_CROAK_NOCONTEXT
+
+PERL_CALLCONV void
+Perl_deb_nocontext(const char *pat, ...)
+        __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_DEB_NOCONTEXT         \
+        assert(pat)
+
+PERL_CALLCONV_NO_RET OP *
+Perl_die_nocontext(const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__format__null_ok__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_DIE_NOCONTEXT
+
+PERL_CALLCONV char *
+Perl_form_nocontext(const char *pat, ...)
+        __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_FORM_NOCONTEXT        \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_load_module_nocontext(U32 flags, SV *name, SV *ver, ...);
+# define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT \
+        assert(name)
+
+PERL_CALLCONV SV *
+Perl_mess_nocontext(const char *pat, ...)
+        __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_MESS_NOCONTEXT        \
+        assert(pat)
+
+PERL_CALLCONV void *
+Perl_my_cxt_init(pTHX_ int *indexp, size_t size);
+# define PERL_ARGS_ASSERT_MY_CXT_INIT           \
+        assert(indexp)
+
+PERL_CALLCONV SV *
+Perl_newSVpvf_nocontext(const char * const pat, ...)
+        __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT    \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvf_mg_nocontext(SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_catpvf_nocontext(SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT   \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvf_mg_nocontext(SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_sv_setpvf_nocontext(SV * const sv, const char * const pat, ...)
+        __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT   \
+        assert(sv); assert(pat)
+
+PERL_CALLCONV void
+Perl_warn_nocontext(const char *pat, ...)
+        __attribute__format__(__printf__,1,2);
+# define PERL_ARGS_ASSERT_WARN_NOCONTEXT        \
+        assert(pat)
+
+PERL_CALLCONV void
+Perl_warner_nocontext(U32 err, const char *pat, ...)
+        __attribute__format__(__printf__,2,3);
+# define PERL_ARGS_ASSERT_WARNER_NOCONTEXT      \
+        assert(pat)
 
-#endif
+#endif /* defined(MULTIPLICITY) */
 #if defined(MYMALLOC)
-PERL_CALLCONV void	Perl_dump_mstats(pTHX_ const char* s);
-#define PERL_ARGS_ASSERT_DUMP_MSTATS	\
-	assert(s)
-PERL_CALLCONV int	Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level);
-#define PERL_ARGS_ASSERT_GET_MSTATS	\
-	assert(buf)
-PERL_CALLCONV MEM_SIZE	Perl_malloc_good_size(size_t nbytes)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MALLOC_GOOD_SIZE
-
-PERL_CALLCONV MEM_SIZE	Perl_malloced_size(void *p)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MALLOCED_SIZE	\
-	assert(p)
+PERL_CALLCONV void
+Perl_dump_mstats(pTHX_ const char *s);
+# define PERL_ARGS_ASSERT_DUMP_MSTATS           \
+        assert(s)
+
+PERL_CALLCONV int
+Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level);
+# define PERL_ARGS_ASSERT_GET_MSTATS            \
+        assert(buf)
+
+PERL_CALLCONV MEM_SIZE
+Perl_malloc_good_size(size_t nbytes)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MALLOC_GOOD_SIZE
+
+PERL_CALLCONV MEM_SIZE
+Perl_malloced_size(void *p)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MALLOCED_SIZE         \
+        assert(p)
+
+#endif /* defined(MYMALLOC) */
+#if !defined(NO_MATHOMS)
+PERL_CALLCONV bool
+Perl_do_aexec(pTHX_ SV *really, SV **mark, SV **sp);
+# define PERL_ARGS_ASSERT_DO_AEXEC              \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV bool
+Perl_do_open(pTHX_ GV *gv, const char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp);
+# define PERL_ARGS_ASSERT_DO_OPEN               \
+        assert(gv); assert(name)
+
+PERL_CALLCONV GV *
+Perl_gv_AVadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_AVADD
+
+PERL_CALLCONV GV *
+Perl_gv_HVadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_HVADD
+
+PERL_CALLCONV GV *
+Perl_gv_IOadd(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_IOADD
+
+PERL_CALLCONV void
+Perl_gv_efullname3(pTHX_ SV *sv, const GV *gv, const char *prefix);
+# define PERL_ARGS_ASSERT_GV_EFULLNAME3         \
+        assert(sv); assert(gv)
+
+PERL_CALLCONV GV *
+Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name);
+# define PERL_ARGS_ASSERT_GV_FETCHMETHOD        \
+        assert(stash); assert(name)
+
+PERL_CALLCONV void
+Perl_gv_fullname3(pTHX_ SV *sv, const GV *gv, const char *prefix);
+# define PERL_ARGS_ASSERT_GV_FULLNAME3          \
+        assert(sv); assert(gv)
+
+PERL_CALLCONV SV *
+Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags);
+# define PERL_ARGS_ASSERT_HV_DELETE             \
+        assert(key)
+
+PERL_CALLCONV SV *
+Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash);
+# define PERL_ARGS_ASSERT_HV_DELETE_ENT         \
+        assert(keysv)
+
+PERL_CALLCONV bool
+Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HV_EXISTS             \
+        assert(key)
+
+PERL_CALLCONV bool
+Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HV_EXISTS_ENT         \
+        assert(keysv)
+
+PERL_CALLCONV SV **
+Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval);
+# define PERL_ARGS_ASSERT_HV_FETCH              \
+        assert(key)
+
+PERL_CALLCONV HE *
+Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash);
+# define PERL_ARGS_ASSERT_HV_FETCH_ENT          \
+        assert(keysv)
+
+PERL_CALLCONV HE *
+Perl_hv_iternext(pTHX_ HV *hv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HV_ITERNEXT           \
+        assert(hv)
+
+PERL_CALLCONV void
+Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how);
+# define PERL_ARGS_ASSERT_HV_MAGIC              \
+        assert(hv)
+
+PERL_CALLCONV SV **
+Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash);
+# define PERL_ARGS_ASSERT_HV_STORE
+
+PERL_CALLCONV HE *
+Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash);
+# define PERL_ARGS_ASSERT_HV_STORE_ENT
+
+PERL_CALLCONV SV **
+Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags);
+# define PERL_ARGS_ASSERT_HV_STORE_FLAGS
+
+PERL_CALLCONV char *
+Perl_instr(const char *big, const char *little)
+        __attribute__warn_unused_result__
+        __attribute__pure__;
+# define PERL_ARGS_ASSERT_INSTR                 \
+        assert(big); assert(little)
+
+PERL_CALLCONV STRLEN
+Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end);
+# define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF      \
+        assert(buf); assert(buf_end)
+
+PERL_CALLCONV bool
+Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep);
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC    \
+        assert(s); assert(ep)
+
+PERL_CALLCONV AV *
+Perl_newAV(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWAV
+
+PERL_CALLCONV HV *
+Perl_newHV(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWHV
+
+PERL_CALLCONV IO *
+Perl_newIO(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWIO
+
+PERL_CALLCONV CV *
+Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block);
+# define PERL_ARGS_ASSERT_NEWSUB
+
+PERL_CALLCONV SV *
+Perl_newSVsv(pTHX_ SV * const old)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWSVSV
+
+PERL_CALLCONV void
+Perl_save_freeop(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SAVE_FREEOP
+
+PERL_CALLCONV void
+Perl_save_freepv(pTHX_ char *pv);
+# define PERL_ARGS_ASSERT_SAVE_FREEPV
+
+PERL_CALLCONV void
+Perl_save_freesv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SAVE_FREESV
+
+PERL_CALLCONV void
+Perl_save_mortalizesv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SAVE_MORTALIZESV      \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_save_op(pTHX);
+# define PERL_ARGS_ASSERT_SAVE_OP
+
+PERL_CALLCONV bool
+Perl_sv_2bool(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_2BOOL              \
+        assert(sv)
+
+PERL_CALLCONV IV
+Perl_sv_2iv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_2IV                \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp);
+# define PERL_ARGS_ASSERT_SV_2PV                \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pv_nolen(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_2PV_NOLEN          \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvbyte(pTHX_ SV *sv, STRLEN * const lp);
+# define PERL_ARGS_ASSERT_SV_2PVBYTE            \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvbyte_nolen(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN      \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvutf8(pTHX_ SV *sv, STRLEN * const lp);
+# define PERL_ARGS_ASSERT_SV_2PVUTF8            \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_2pvutf8_nolen(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN      \
+        assert(sv)
+
+PERL_CALLCONV UV
+Perl_sv_2uv(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_2UV                \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_CATPVN             \
+        assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_CATPVN_MG          \
+        assert(dsv); assert(sstr)
+
+PERL_CALLCONV void
+Perl_sv_catsv(pTHX_ SV *dsv, SV *sstr);
+# define PERL_ARGS_ASSERT_SV_CATSV              \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr);
+# define PERL_ARGS_ASSERT_SV_CATSV_MG           \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_copypv(pTHX_ SV * const dsv, SV * const ssv);
+# define PERL_ARGS_ASSERT_SV_COPYPV             \
+        assert(dsv); assert(ssv)
+
+PERL_CALLCONV I32
+Perl_sv_eq(pTHX_ SV *sv1, SV *sv2);
+# define PERL_ARGS_ASSERT_SV_EQ
+
+PERL_CALLCONV void
+Perl_sv_force_normal(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_FORCE_NORMAL       \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_insert(pTHX_ SV * const bigstr, const STRLEN offset, const STRLEN len, const char * const little, const STRLEN littlelen);
+# define PERL_ARGS_ASSERT_SV_INSERT             \
+        assert(bigstr); assert(little)
+
+PERL_CALLCONV SV *
+Perl_sv_mortalcopy(pTHX_ SV * const oldsv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_MORTALCOPY
+
+PERL_CALLCONV void
+Perl_sv_nolocking(pTHX_ SV *sv)
+        __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_SV_NOLOCKING
+
+PERL_CALLCONV void
+Perl_sv_nounlocking(pTHX_ SV *sv)
+        __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_SV_NOUNLOCKING
+
+PERL_CALLCONV char *
+Perl_sv_pv(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_PV                 \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvbyte(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_PVBYTE             \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp);
+# define PERL_ARGS_ASSERT_SV_PVN_FORCE          \
+        assert(sv)
+
+PERL_CALLCONV char *
+Perl_sv_pvutf8(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_PVUTF8             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_setsv(pTHX_ SV *dsv, SV *ssv);
+# define PERL_ARGS_ASSERT_SV_SETSV              \
+        assert(dsv)
+
+PERL_CALLCONV void
+Perl_sv_taint(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_TAINT              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_unref(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_UNREF              \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_usepvn(pTHX_ SV *sv, char *ptr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_USEPVN             \
+        assert(sv)
+
+PERL_CALLCONV void
+Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
+# define PERL_ARGS_ASSERT_SV_USEPVN_MG          \
+        assert(sv)
+
+PERL_CALLCONV bool
+Perl_sv_utf8_downgrade(pTHX_ SV * const sv, const bool fail_ok);
+# define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE     \
+        assert(sv)
+
+PERL_CALLCONV STRLEN
+Perl_sv_utf8_upgrade(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE       \
+        assert(sv)
+
+PERL_CALLCONV UV
+Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
+        __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_UTF8_TO_UVCHR         \
+        assert(s)
+
+PERL_CALLCONV UV
+Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
+        __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_UTF8_TO_UVUNI         \
+        assert(s)
+
+PERL_CALLCONV UV
+Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
+        __attribute__deprecated__;
+# define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI        \
+        assert(s)
+
+# if defined(PERL_DONT_CREATE_GVSV)
+PERL_CALLCONV GV *
+Perl_gv_SVadd(pTHX_ GV *gv);
+#   define PERL_ARGS_ASSERT_GV_SVADD
+
+# endif
+# if defined(PERL_IN_MATHOMS_C) || defined(PERL_IN_OP_C) || \
+     defined(PERL_IN_PERLY_C)   || defined(PERL_IN_TOKE_C)
+PERL_CALLCONV OP *
+Perl_ref(pTHX_ OP *o, I32 type);
+#   define PERL_ARGS_ASSERT_REF
+
+# endif
+# if defined(USE_LOCALE_COLLATE)
+PERL_CALLCONV char *
+Perl_sv_collxfrm(pTHX_ SV * const sv, STRLEN * const nxp);
+#   define PERL_ARGS_ASSERT_SV_COLLXFRM         \
+        assert(sv); assert(nxp)
 
-#endif
+# endif
+#endif /* !defined(NO_MATHOMS) */
 #if defined(PERL_ANY_COW)
-PERL_CALLCONV SV*	Perl_sv_setsv_cow(pTHX_ SV* dsv, SV* ssv);
-#define PERL_ARGS_ASSERT_SV_SETSV_COW	\
-	assert(ssv)
+PERL_CALLCONV SV *
+Perl_sv_setsv_cow(pTHX_ SV *dsv, SV *ssv);
+# define PERL_ARGS_ASSERT_SV_SETSV_COW          \
+        assert(ssv)
+
 #endif
 #if defined(PERL_CORE)
-PERL_CALLCONV void	Perl_opslab_force_free(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE	\
-	assert(slab)
-PERL_CALLCONV void	Perl_opslab_free(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_OPSLAB_FREE	\
-	assert(slab)
-PERL_CALLCONV void	Perl_opslab_free_nopad(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD	\
-	assert(slab)
-PERL_CALLCONV void	Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB *slab);
-#define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS	\
-	assert(parser); assert(slab)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_should_warn_nl(const char *pv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SHOULD_WARN_NL	\
-	assert(pv)
-#endif
-
-#  if defined(PERL_DEBUG_READONLY_OPS)
-PERL_CALLCONV void	Perl_Slab_to_ro(pTHX_ OPSLAB *slab);
-#define PERL_ARGS_ASSERT_SLAB_TO_RO	\
-	assert(slab)
-PERL_CALLCONV void	Perl_Slab_to_rw(pTHX_ OPSLAB *const slab);
-#define PERL_ARGS_ASSERT_SLAB_TO_RW	\
-	assert(slab)
-#  endif
-#endif
-#if defined(PERL_CORE) || defined (PERL_EXT)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	Perl_is_utf8_non_invariant_string(const U8* const s, STRLEN len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_NON_INVARIANT_STRING	\
-	assert(s)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE STRLEN	S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B	\
-	assert(sv); assert(pv)
-#endif
-#endif
+PERL_CALLCONV void
+Perl_opslab_force_free(pTHX_ OPSLAB *slab)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE     \
+        assert(slab)
+
+PERL_CALLCONV void
+Perl_opslab_free(pTHX_ OPSLAB *slab)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OPSLAB_FREE           \
+        assert(slab)
+
+PERL_CALLCONV void
+Perl_opslab_free_nopad(pTHX_ OPSLAB *slab)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD     \
+        assert(slab)
+
+PERL_CALLCONV void
+Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB *slab)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS \
+        assert(parser); assert(slab)
+
+# if defined(PERL_DEBUG_READONLY_OPS)
+PERL_CALLCONV void
+Perl_Slab_to_ro(pTHX_ OPSLAB *slab);
+#   define PERL_ARGS_ASSERT_SLAB_TO_RO          \
+        assert(slab)
+
+PERL_CALLCONV void
+Perl_Slab_to_rw(pTHX_ OPSLAB * const slab);
+#   define PERL_ARGS_ASSERT_SLAB_TO_RW          \
+        assert(slab)
+
+# endif /* defined(PERL_DEBUG_READONLY_OPS) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE bool
+S_should_warn_nl(const char *pv)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_SHOULD_WARN_NL      \
+        assert(pv)
+
+# endif
+#endif /* defined(PERL_CORE) */
 #if defined(PERL_CORE) || defined(PERL_EXT)
-PERL_CALLCONV bool	Perl_isSCRIPT_RUN(pTHX_ const U8 *s, const U8 *send, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISSCRIPT_RUN	\
-	assert(s); assert(send)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	S_variant_under_utf8_count(const U8* const s, const U8* const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VARIANT_UNDER_UTF8_COUNT	\
-	assert(s); assert(e)
-#endif
+PERL_CALLCONV bool
+Perl_isSCRIPT_RUN(pTHX_ const U8 *s, const U8 *send, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISSCRIPT_RUN          \
+        assert(s); assert(send)
+
+#endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+#if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
+PERL_CALLCONV void
+Perl_finalize_optree(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_FINALIZE_OPTREE       \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_optimize_optree(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OPTIMIZE_OPTREE       \
+        assert(o)
 
-#endif
-#if defined(PERL_CR_FILTER)
-#  if defined(PERL_IN_TOKE_C)
-STATIC I32	S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
-#define PERL_ARGS_ASSERT_CR_TEXTFILTER
-STATIC void	S_strip_return(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_STRIP_RETURN	\
-	assert(sv)
-#  endif
-#endif
+#endif /* defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API) */
 #if defined(PERL_DEBUG_READONLY_COW)
-PERL_CALLCONV void	Perl_sv_buf_to_ro(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_BUF_TO_RO	\
-	assert(sv)
-#  if defined(PERL_IN_SV_C)
-STATIC void	S_sv_buf_to_rw(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_SV_BUF_TO_RW	\
-	assert(sv)
-#  endif
+PERL_CALLCONV void
+Perl_sv_buf_to_ro(pTHX_ SV *sv)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SV_BUF_TO_RO          \
+        assert(sv)
+
 #endif
 #if defined(PERL_DEBUG_READONLY_OPS)
-PERL_CALLCONV PADOFFSET	Perl_op_refcnt_dec(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_REFCNT_DEC	\
-	assert(o)
-PERL_CALLCONV OP *	Perl_op_refcnt_inc(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_REFCNT_INC
-#endif
+PERL_CALLCONV PADOFFSET
+Perl_op_refcnt_dec(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OP_REFCNT_DEC         \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_op_refcnt_inc(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OP_REFCNT_INC
+
+#endif /* defined(PERL_DEBUG_READONLY_OPS) */
 #if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
-PERL_CALLCONV bool	Perl_do_exec(pTHX_ const char* cmd);
-#define PERL_ARGS_ASSERT_DO_EXEC	\
-	assert(cmd)
-#endif
-#if defined(PERL_DONT_CREATE_GVSV)
-#ifndef NO_MATHOMS
-PERL_CALLCONV GV*	Perl_gv_SVadd(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_SVADD
-#endif
+PERL_CALLCONV bool
+Perl_do_exec(pTHX_ const char *cmd)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_EXEC               \
+        assert(cmd)
+
+#else
+PERL_CALLCONV bool
+Perl_do_exec(pTHX_ const char *cmd)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_EXEC               \
+        assert(cmd)
+
 #endif
 #if defined(PERL_IMPLICIT_SYS)
-PERL_CALLCONV PerlInterpreter*	perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP);
-#define PERL_ARGS_ASSERT_PERL_ALLOC_USING	\
-	assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-#  if defined(USE_ITHREADS)
-PERL_CALLCONV PerlInterpreter*	perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem* ipM, struct IPerlMem* ipMS, struct IPerlMem* ipMP, struct IPerlEnv* ipE, struct IPerlStdIO* ipStd, struct IPerlLIO* ipLIO, struct IPerlDir* ipD, struct IPerlSock* ipS, struct IPerlProc* ipP);
-#define PERL_ARGS_ASSERT_PERL_CLONE_USING	\
-	assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-#  endif
-#endif
+PERL_CALLCONV PerlInterpreter *
+perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP);
+# define PERL_ARGS_ASSERT_PERL_ALLOC_USING      \
+        assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); \
+        assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
+
+# if defined(USE_ITHREADS)
+PERL_CALLCONV PerlInterpreter *
+perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP);
+#   define PERL_ARGS_ASSERT_PERL_CLONE_USING    \
+        assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); \
+        assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
+
+# endif
+#else /* if !defined(PERL_IMPLICIT_SYS) */
+PERL_CALLCONV I32
+Perl_my_pclose(pTHX_ PerlIO *ptr);
+# define PERL_ARGS_ASSERT_MY_PCLOSE
+
+PERL_CALLCONV PerlIO *
+Perl_my_popen(pTHX_ const char *cmd, const char *mode);
+# define PERL_ARGS_ASSERT_MY_POPEN              \
+        assert(cmd); assert(mode)
+
+#endif /* !defined(PERL_IMPLICIT_SYS) */
 #if defined(PERL_IN_AV_C)
-STATIC MAGIC*	S_get_aux_mg(pTHX_ AV *av);
-#define PERL_ARGS_ASSERT_GET_AUX_MG	\
-	assert(av)
-#endif
+STATIC MAGIC *
+S_get_aux_mg(pTHX_ AV *av);
+# define PERL_ARGS_ASSERT_GET_AUX_MG            \
+        assert(av)
+
+#endif
+#if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    || \
+    defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) || \
+    defined(PERL_IN_TOKE_C)
+PERL_CALLCONV void
+Perl_class_add_ADJUST(pTHX_ HV *stash, CV *cv);
+# define PERL_ARGS_ASSERT_CLASS_ADD_ADJUST      \
+        assert(stash); assert(cv)
+
+PERL_CALLCONV void
+Perl_class_add_field(pTHX_ HV *stash, PADNAME *pn);
+# define PERL_ARGS_ASSERT_CLASS_ADD_FIELD       \
+        assert(stash); assert(pn)
+
+PERL_CALLCONV void
+Perl_class_apply_attributes(pTHX_ HV *stash, OP *attrlist);
+# define PERL_ARGS_ASSERT_CLASS_APPLY_ATTRIBUTES \
+        assert(stash)
+
+PERL_CALLCONV void
+Perl_class_apply_field_attributes(pTHX_ PADNAME *pn, OP *attrlist);
+# define PERL_ARGS_ASSERT_CLASS_APPLY_FIELD_ATTRIBUTES \
+        assert(pn)
+
+PERL_CALLCONV void
+Perl_class_prepare_initfield_parse(pTHX);
+# define PERL_ARGS_ASSERT_CLASS_PREPARE_INITFIELD_PARSE
+
+PERL_CALLCONV void
+Perl_class_prepare_method_parse(pTHX_ CV *cv);
+# define PERL_ARGS_ASSERT_CLASS_PREPARE_METHOD_PARSE \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_class_seal_stash(pTHX_ HV *stash);
+# define PERL_ARGS_ASSERT_CLASS_SEAL_STASH      \
+        assert(stash)
+
+PERL_CALLCONV void
+Perl_class_set_field_defop(pTHX_ PADNAME *pn, OPCODE defmode, OP *defop);
+# define PERL_ARGS_ASSERT_CLASS_SET_FIELD_DEFOP \
+        assert(pn); assert(defop)
+
+PERL_CALLCONV void
+Perl_class_setup_stash(pTHX_ HV *stash);
+# define PERL_ARGS_ASSERT_CLASS_SETUP_STASH     \
+        assert(stash)
+
+PERL_CALLCONV OP *
+Perl_class_wrap_method_body(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_CLASS_WRAP_METHOD_BODY
+
+PERL_CALLCONV void
+Perl_croak_kw_unless_class(pTHX_ const char *kw);
+# define PERL_ARGS_ASSERT_CROAK_KW_UNLESS_CLASS \
+        assert(kw)
+
+#endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    ||
+          defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) ||
+          defined(PERL_IN_TOKE_C) */
 #if defined(PERL_IN_DEB_C)
-STATIC void	S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max);
-#define PERL_ARGS_ASSERT_DEB_STACK_N	\
-	assert(stack_base)
+STATIC void
+S_deb_stack_n(pTHX_ SV **stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max);
+# define PERL_ARGS_ASSERT_DEB_STACK_N           \
+        assert(stack_base)
+
 #endif
 #if defined(PERL_IN_DOIO_C)
-STATIC bool	S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit);
-#define PERL_ARGS_ASSERT_ARGVOUT_FINAL	\
-	assert(mg); assert(io)
-STATIC void	S_exec_failed(pTHX_ const char *cmd, int fd, int do_report);
-#define PERL_ARGS_ASSERT_EXEC_FAILED	\
-	assert(cmd)
-STATIC bool	S_ingroup(pTHX_ Gid_t testgid, bool effective)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INGROUP
-
-STATIC bool	S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname, PerlIO *saveifp, PerlIO *saveofp, int savefd, char savetype, int writing, bool was_fdopen, const char *type, Stat_t *statbufp);
-#define PERL_ARGS_ASSERT_OPENN_CLEANUP	\
-	assert(gv); assert(io); assert(mode); assert(oname)
-STATIC IO *	S_openn_setup(pTHX_ GV *gv, char *mode, PerlIO **saveifp, PerlIO **saveofp, int *savefd, char *savetype);
-#define PERL_ARGS_ASSERT_OPENN_SETUP	\
-	assert(gv); assert(mode); assert(saveifp); assert(saveofp); assert(savefd); assert(savetype)
-#endif
+STATIC bool
+S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool is_explicit);
+# define PERL_ARGS_ASSERT_ARGVOUT_FINAL         \
+        assert(mg); assert(io)
+
+STATIC void
+S_exec_failed(pTHX_ const char *cmd, int fd, int do_report);
+# define PERL_ARGS_ASSERT_EXEC_FAILED           \
+        assert(cmd)
+
+STATIC bool
+S_ingroup(pTHX_ Gid_t testgid, bool effective)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_INGROUP
+
+STATIC bool
+S_openn_cleanup(pTHX_ GV *gv, IO *io, PerlIO *fp, char *mode, const char *oname, PerlIO *saveifp, PerlIO *saveofp, int savefd, char savetype, int writing, bool was_fdopen, const char *type, Stat_t *statbufp);
+# define PERL_ARGS_ASSERT_OPENN_CLEANUP         \
+        assert(gv); assert(io); assert(mode); assert(oname)
+
+STATIC IO *
+S_openn_setup(pTHX_ GV *gv, char *mode, PerlIO **saveifp, PerlIO **saveofp, int *savefd, char *savetype);
+# define PERL_ARGS_ASSERT_OPENN_SETUP           \
+        assert(gv); assert(mode); assert(saveifp); assert(saveofp); assert(savefd); \
+        assert(savetype)
+
+#endif /* defined(PERL_IN_DOIO_C) */
 #if defined(PERL_IN_DOOP_C)
-STATIC Size_t	S_do_trans_complex(pTHX_ SV * const sv, const OPtrans_map * const tbl)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX	\
-	assert(sv); assert(tbl)
-
-STATIC Size_t	S_do_trans_count(pTHX_ SV * const sv, const OPtrans_map * const tbl)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_COUNT	\
-	assert(sv); assert(tbl)
-
-STATIC Size_t	S_do_trans_count_invmap(pTHX_ SV * const sv, AV * const map)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP	\
-	assert(sv); assert(map)
-
-STATIC Size_t	S_do_trans_invmap(pTHX_ SV * const sv, AV * const map)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_INVMAP	\
-	assert(sv); assert(map)
-
-STATIC Size_t	S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE	\
-	assert(sv); assert(tbl)
+STATIC Size_t
+S_do_trans_complex(pTHX_ SV * const sv, const OPtrans_map * const tbl)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX      \
+        assert(sv); assert(tbl)
+
+STATIC Size_t
+S_do_trans_count(pTHX_ SV * const sv, const OPtrans_map * const tbl)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_COUNT        \
+        assert(sv); assert(tbl)
+
+STATIC Size_t
+S_do_trans_count_invmap(pTHX_ SV * const sv, AV * const map)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_COUNT_INVMAP \
+        assert(sv); assert(map)
+
+STATIC Size_t
+S_do_trans_invmap(pTHX_ SV * const sv, AV * const map)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_INVMAP       \
+        assert(sv); assert(map)
+
+STATIC Size_t
+S_do_trans_simple(pTHX_ SV * const sv, const OPtrans_map * const tbl)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE       \
+        assert(sv); assert(tbl)
+
+#endif /* defined(PERL_IN_DOOP_C) */
+#if defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
+    defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
+    defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
+    defined(PERL_IN_UTF8_C)
+
+PERL_CALLCONV SSize_t
+Perl__invlist_search(SV * const invlist, const UV cp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__INVLIST_SEARCH       \
+        assert(invlist)
+
+#endif /* defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        ||
+          defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) ||
+          defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      ||
+          defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_REGCOMP_ANY)
+
+#endif
+#if defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV SV *
+Perl__add_range_to_invlist(pTHX_ SV *invlist, UV start, UV end)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__ADD_RANGE_TO_INVLIST
+
+/* PERL_CALLCONV void
+_invlist_intersection(pTHX_ SV * const a, SV * const b, SV **i); */
+
+PERL_CALLCONV void
+Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **i);
+# define PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND \
+        assert(b); assert(i)
+
+PERL_CALLCONV void
+Perl__invlist_invert(pTHX_ SV * const invlist);
+# define PERL_ARGS_ASSERT__INVLIST_INVERT       \
+        assert(invlist)
+
+/* PERL_CALLCONV void
+_invlist_subtract(pTHX_ SV * const a, SV * const b, SV **result); */
+
+/* PERL_CALLCONV void
+_invlist_union(pTHX_ SV * const a, SV * const b, SV **output); */
+
+PERL_CALLCONV void
+Perl__invlist_union_maybe_complement_2nd(pTHX_ SV * const a, SV * const b, const bool complement_b, SV **output);
+# define PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND \
+        assert(b); assert(output)
+
+PERL_CALLCONV SV *
+Perl__new_invlist(pTHX_ IV initial_size)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__NEW_INVLIST
+
+PERL_CALLCONV SV *
+Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV **other_elements_ptr)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST \
+        assert(other_elements_ptr)
+
+#endif /* defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) ||
+          defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) */
+#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+    defined(PERL_IN_TOKE_C)
+PERL_CALLCONV const char *
+Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FORM_ALIEN_DIGIT_MSG  \
+        assert(first_bad); assert(send)
+
+PERL_CALLCONV bool
+Perl_grok_bslash_c(pTHX_ const char source, U8 *result, const char **message, U32 *packed_warn)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GROK_BSLASH_C         \
+        assert(result); assert(message)
+
+PERL_CALLCONV bool
+Perl_grok_bslash_o(pTHX_ char **s, const char * const send, UV *uv, const char **message, U32 *packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GROK_BSLASH_O         \
+        assert(s); assert(send); assert(uv); assert(message)
+
+PERL_CALLCONV bool
+Perl_grok_bslash_x(pTHX_ char **s, const char * const send, UV *uv, const char **message, U32 *packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GROK_BSLASH_X         \
+        assert(s); assert(send); assert(uv); assert(message)
+
+#endif /* defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) ||
+          defined(PERL_IN_TOKE_C) */
+#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
+    defined(PERL_IN_TOKE_C)   || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV const char *
+Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char *string, const Size_t len, const UV cp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FORM_CP_TOO_LARGE_MSG
 
 #endif
 #if defined(PERL_IN_DUMP_C)
-STATIC CV*	S_deb_curcv(pTHX_ I32 ix);
-#define PERL_ARGS_ASSERT_DEB_CURCV
-STATIC void	S_debprof(pTHX_ const OP *o);
-#define PERL_ARGS_ASSERT_DEBPROF	\
-	assert(o)
-STATIC SV*	S_pm_description(pTHX_ const PMOP *pm);
-#define PERL_ARGS_ASSERT_PM_DESCRIPTION	\
-	assert(pm)
-STATIC UV	S_sequence_num(pTHX_ const OP *o);
-#define PERL_ARGS_ASSERT_SEQUENCE_NUM
-#endif
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
-PERL_CALLCONV void	Perl_hv_kill_backrefs(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_KILL_BACKREFS	\
-	assert(hv)
-#endif
+STATIC CV *
+S_deb_curcv(pTHX_ I32 ix);
+# define PERL_ARGS_ASSERT_DEB_CURCV
+
+STATIC void
+S_debprof(pTHX_ const OP *o);
+# define PERL_ARGS_ASSERT_DEBPROF               \
+        assert(o)
+
+STATIC SV *
+S_pm_description(pTHX_ const PMOP *pm);
+# define PERL_ARGS_ASSERT_PM_DESCRIPTION        \
+        assert(pm)
+
+STATIC UV
+S_sequence_num(pTHX_ const OP *o);
+# define PERL_ARGS_ASSERT_SEQUENCE_NUM
+
+#endif /* defined(PERL_IN_DUMP_C) */
+#if defined(PERL_IN_DUMP_C)  || defined(PERL_IN_HV_C) || \
+    defined(PERL_IN_SCOPE_C) || defined(PERL_IN_SV_C)
+PERL_CALLCONV void
+Perl_hv_kill_backrefs(pTHX_ HV *hv)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_HV_KILL_BACKREFS      \
+        assert(hv)
+
+#endif
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_REGCOMP_ANY)
+PERL_CALLCONV void
+Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char * const indent, SV * const invlist);
+# define PERL_ARGS_ASSERT__INVLIST_DUMP         \
+        assert(file); assert(indent); assert(invlist)
+
+#endif
+#if defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_PEEP_C)
+PERL_CALLCONV OP *
+Perl_ck_anoncode(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_ANONCODE           \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_backtick(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_BACKTICK           \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_bitop(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_BITOP              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_cmp(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_CMP                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_concat(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_CONCAT             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_defined(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_DEFINED            \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_delete(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_DELETE             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_each(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EACH               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_eof(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EOF                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_eval(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EVAL               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_exec(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EXEC               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_exists(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_EXISTS             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_ftst(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_FTST               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_fun(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_FUN                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_glob(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_GLOB               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_grep(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_GREP               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_helemexistsor(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_HELEMEXISTSOR      \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_index(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_INDEX              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_isa(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_ISA                \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_join(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_JOIN               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_length(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_LENGTH             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_lfun(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_LFUN               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_listiob(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_LISTIOB            \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_match(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_MATCH              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_method(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_METHOD             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_null(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_NULL               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_open(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_OPEN               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_prototype(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_PROTOTYPE          \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_readline(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_READLINE           \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_refassign(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_REFASSIGN          \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_repeat(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_REPEAT             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_require(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_REQUIRE            \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_return(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_RETURN             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_rfun(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_RFUN               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_rvconst(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_RVCONST            \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_sassign(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SASSIGN            \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_select(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SELECT             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_shift(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SHIFT              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_smartmatch(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SMARTMATCH         \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_sort(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SORT               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_spair(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SPAIR              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_split(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SPLIT              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_stringify(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_STRINGIFY          \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_subr(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SUBR               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_substr(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SUBSTR             \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_svconst(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_SVCONST            \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_tell(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_TELL               \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_trunc(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_TRUNC              \
+        assert(o)
+
+PERL_CALLCONV OP *
+Perl_ck_trycatch(pTHX_ OP *o)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CK_TRYCATCH           \
+        assert(o)
+
+#endif /* defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) ||
+          defined(PERL_IN_PEEP_C) */
 #if defined(PERL_IN_GV_C)
-STATIC bool	S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, const svtype sv_type);
-#define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH	\
-	assert(stash); assert(name)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE GV*	S_gv_fetchmeth_internal(pTHX_ HV* stash, SV* meth, const char* name, STRLEN len, I32 level, U32 flags);
-#define PERL_ARGS_ASSERT_GV_FETCHMETH_INTERNAL
-#endif
-STATIC void	S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_INIT_SVTYPE	\
-	assert(gv)
-STATIC bool	S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf8);
-#define PERL_ARGS_ASSERT_GV_IS_IN_MAIN	\
-	assert(name)
-STATIC bool	S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, const svtype sv_type);
-#define PERL_ARGS_ASSERT_GV_MAGICALIZE	\
-	assert(gv); assert(stash); assert(name)
-STATIC void	S_gv_magicalize_isa(pTHX_ GV *gv);
-#define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA	\
-	assert(gv)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE HV*	S_gv_stashpvn_internal(pTHX_ const char* name, U32 namelen, I32 flags);
-#define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL	\
-	assert(name)
-#endif
-STATIC void	S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type);
-#define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV	\
-	assert(gv); assert(name)
-STATIC bool	S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, STRLEN *len, const char *nambeg, STRLEN full_len, const U32 is_utf8, const I32 add);
-#define PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME	\
-	assert(stash); assert(gv); assert(name); assert(len); assert(nambeg)
-STATIC void	S_require_tie_mod(pTHX_ GV *gv, const char varname, const char * name, STRLEN len, const U32 flags);
-#define PERL_ARGS_ASSERT_REQUIRE_TIE_MOD	\
-	assert(gv); assert(varname); assert(name)
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-PERL_CALLCONV void	Perl_sv_add_backref(pTHX_ SV *const tsv, SV *const sv);
-#define PERL_ARGS_ASSERT_SV_ADD_BACKREF	\
-	assert(tsv); assert(sv)
+STATIC bool
+S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, const svtype sv_type);
+# define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH    \
+        assert(stash); assert(name)
+
+STATIC void
+S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type);
+# define PERL_ARGS_ASSERT_GV_INIT_SVTYPE        \
+        assert(gv)
+
+STATIC bool
+S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf8);
+# define PERL_ARGS_ASSERT_GV_IS_IN_MAIN         \
+        assert(name)
+
+STATIC bool
+S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, const svtype sv_type);
+# define PERL_ARGS_ASSERT_GV_MAGICALIZE         \
+        assert(gv); assert(stash); assert(name)
+
+STATIC void
+S_gv_magicalize_isa(pTHX_ GV *gv);
+# define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA     \
+        assert(gv)
+
+STATIC void
+S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type);
+# define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV   \
+        assert(gv); assert(name)
+
+STATIC bool
+S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, STRLEN *len, const char *nambeg, STRLEN full_len, const U32 is_utf8, const I32 add);
+# define PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME   \
+        assert(stash); assert(gv); assert(name); assert(len); assert(nambeg)
+
+STATIC void
+S_require_tie_mod(pTHX_ GV *gv, const char varname, const char *name, STRLEN len, const U32 flags);
+# define PERL_ARGS_ASSERT_REQUIRE_TIE_MOD       \
+        assert(gv); assert(varname); assert(name)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE GV *
+S_gv_fetchmeth_internal(pTHX_ HV *stash, SV *meth, const char *name, STRLEN len, I32 level, U32 flags);
+#   define PERL_ARGS_ASSERT_GV_FETCHMETH_INTERNAL
+
+PERL_STATIC_INLINE HV *
+S_gv_stashpvn_internal(pTHX_ const char *name, U32 namelen, I32 flags);
+#   define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \
+        assert(name)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_GV_C) */
+#if defined(PERL_IN_GV_C)  || defined(PERL_IN_OP_C) || \
+    defined(PERL_IN_PAD_C) || defined(PERL_IN_SV_C)
+PERL_CALLCONV void
+Perl_sv_add_backref(pTHX_ SV * const tsv, SV * const sv)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SV_ADD_BACKREF        \
+        assert(tsv); assert(sv)
+
 #endif
 #if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
-PERL_CALLCONV HV*	Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char* name, U32 namelen, I32 flags);
+PERL_CALLCONV HV *
+Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, U32 namelen, I32 flags)
+        __attribute__visibility__("hidden");
+
 #endif
 #if defined(PERL_IN_HV_C)
-STATIC void	S_clear_placeholders(pTHX_ HV *hv, U32 items);
-#define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS	\
-	assert(hv)
-STATIC void	S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize);
-#define PERL_ARGS_ASSERT_HSPLIT	\
-	assert(hv)
-STATIC struct xpvhv_aux*	S_hv_auxinit(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_AUXINIT	\
-	assert(hv)
-STATIC SV*	S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
-#define PERL_ARGS_ASSERT_HV_DELETE_COMMON
-STATIC SV*	S_hv_free_ent_ret(pTHX_ HE *entry);
-#define PERL_ARGS_ASSERT_HV_FREE_ENT_RET	\
-	assert(entry)
-STATIC void	S_hv_free_entries(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_HV_FREE_ENTRIES	\
-	assert(hv)
-STATIC void	S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store);
-#define PERL_ARGS_ASSERT_HV_MAGIC_CHECK	\
-	assert(hv); assert(needs_copy); assert(needs_store)
-PERL_STATIC_NO_RET void	S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_HV_NOTALLOWED	\
-	assert(key); assert(msg)
-
-STATIC SV *	S_refcounted_he_value(pTHX_ const struct refcounted_he *he);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE	\
-	assert(he)
-STATIC HEK*	S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
-			__attribute__malloc__
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS	\
-	assert(str)
-
-STATIC HEK*	S_share_hek_flags(pTHX_ const char *str, STRLEN len, U32 hash, int flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS	\
-	assert(str)
+STATIC void
+S_clear_placeholders(pTHX_ HV *hv, U32 items);
+# define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS    \
+        assert(hv)
+
+STATIC void
+S_hsplit(pTHX_ HV *hv, STRLEN const oldsize, STRLEN newsize);
+# define PERL_ARGS_ASSERT_HSPLIT                \
+        assert(hv)
+
+STATIC struct xpvhv_aux *
+S_hv_auxinit(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_HV_AUXINIT            \
+        assert(hv)
+
+STATIC SV *
+S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
+# define PERL_ARGS_ASSERT_HV_DELETE_COMMON
+
+STATIC SV *
+S_hv_free_ent_ret(pTHX_ HE *entry);
+# define PERL_ARGS_ASSERT_HV_FREE_ENT_RET       \
+        assert(entry)
+
+STATIC void
+S_hv_free_entries(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_HV_FREE_ENTRIES       \
+        assert(hv)
+
+STATIC void
+S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store);
+# define PERL_ARGS_ASSERT_HV_MAGIC_CHECK        \
+        assert(hv); assert(needs_copy); assert(needs_store)
+
+PERL_STATIC_NO_RET void
+S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_HV_NOTALLOWED         \
+        assert(key); assert(msg)
+
+STATIC SV *
+S_refcounted_he_value(pTHX_ const struct refcounted_he *he);
+# define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE   \
+        assert(he)
+
+STATIC HEK *
+S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS        \
+        assert(str)
+
+STATIC HEK *
+S_share_hek_flags(pTHX_ const char *str, STRLEN len, U32 hash, int flags)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS       \
+        assert(str)
+
+STATIC void
+S_unshare_hek_or_pvn(pTHX_ const HEK *hek, const char *str, I32 len, U32 hash);
+# define PERL_ARGS_ASSERT_UNSHARE_HEK_OR_PVN
+
+# if !defined(PURIFY)
+STATIC HE *
+S_new_he(pTHX)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_NEW_HE
 
-STATIC void	S_unshare_hek_or_pvn(pTHX_ const HEK* hek, const char* str, I32 len, U32 hash);
-#define PERL_ARGS_ASSERT_UNSHARE_HEK_OR_PVN
-#endif
+# endif
+#endif /* defined(PERL_IN_HV_C) */
 #if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV void	Perl_sv_kill_backrefs(pTHX_ SV *const sv, AV *const av);
-#define PERL_ARGS_ASSERT_SV_KILL_BACKREFS	\
-	assert(sv)
+PERL_CALLCONV void
+Perl_sv_kill_backrefs(pTHX_ SV * const sv, AV * const av)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SV_KILL_BACKREFS      \
+        assert(sv)
+
 #endif
 #if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV SV*	Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp);
-#define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY	\
-	assert(hv); assert(indexp)
+PERL_CALLCONV SV *
+Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY      \
+        assert(hv); assert(indexp)
+
 #endif
 #if defined(PERL_IN_LOCALE_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE const char *	S_save_to_buffer(const char * string, char **buf, Size_t *buf_size, const Size_t offset)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SAVE_TO_BUFFER	\
-	assert(buf_size)
-#endif
-
-#  if defined(USE_LOCALE)
-STATIC const char*	S_category_name(const int category);
-#define PERL_ARGS_ASSERT_CATEGORY_NAME
-STATIC void	S_new_collate(pTHX_ const char* newcoll);
-#define PERL_ARGS_ASSERT_NEW_COLLATE
-STATIC void	S_new_ctype(pTHX_ const char* newctype);
-#define PERL_ARGS_ASSERT_NEW_CTYPE	\
-	assert(newctype)
-STATIC void	S_new_numeric(pTHX_ const char* newnum);
-#define PERL_ARGS_ASSERT_NEW_NUMERIC
-STATIC void	S_restore_switched_locale(pTHX_ const int category, const char * const original_locale);
-#define PERL_ARGS_ASSERT_RESTORE_SWITCHED_LOCALE
-STATIC void	S_set_numeric_radix(pTHX_ const bool use_locale);
-#define PERL_ARGS_ASSERT_SET_NUMERIC_RADIX
-STATIC char*	S_stdize_locale(pTHX_ char* locs);
-#define PERL_ARGS_ASSERT_STDIZE_LOCALE	\
-	assert(locs)
-STATIC const char*	S_switch_category_locale_to_template(pTHX_ const int switch_category, const int template_category, const char * template_locale);
-#define PERL_ARGS_ASSERT_SWITCH_CATEGORY_LOCALE_TO_TEMPLATE
-#    if defined(USE_POSIX_2008_LOCALE)
-STATIC const char*	S_emulate_setlocale(const int category, const char* locale, unsigned int index, const bool is_index_valid);
-#define PERL_ARGS_ASSERT_EMULATE_SETLOCALE
-#    endif
-#    if defined(WIN32)
-STATIC char*	S_win32_setlocale(pTHX_ int category, const char* locale);
-#define PERL_ARGS_ASSERT_WIN32_SETLOCALE
-#    endif
-#  endif
-#endif
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
-#  if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV char*	Perl__mem_collxfrm(pTHX_ const char* input_string, STRLEN len, STRLEN* xlen, bool utf8);
-#define PERL_ARGS_ASSERT__MEM_COLLXFRM	\
-	assert(input_string); assert(xlen)
-#  endif
-#endif
+STATIC utf8ness_t
+S_get_locale_string_utf8ness_i(pTHX_ const char *string, const locale_utf8ness_t known_utf8, const char *locale, const unsigned cat_index);
+# define PERL_ARGS_ASSERT_GET_LOCALE_STRING_UTF8NESS_I
+
+STATIC bool
+S_is_locale_utf8(pTHX_ const char *locale);
+# define PERL_ARGS_ASSERT_IS_LOCALE_UTF8        \
+        assert(locale)
+
+# if defined(HAS_LOCALECONV)
+STATIC HV *
+S_my_localeconv(pTHX_ const int item);
+#   define PERL_ARGS_ASSERT_MY_LOCALECONV
+
+STATIC void
+S_populate_hash_from_localeconv(pTHX_ HV *hv, const char *locale, const U32 which_mask, const lconv_offset_t *strings[2], const lconv_offset_t *integers);
+#   define PERL_ARGS_ASSERT_POPULATE_HASH_FROM_LOCALECONV \
+        assert(hv); assert(locale); assert(strings)
+
+# endif /* defined(HAS_LOCALECONV) */
+# if defined(USE_LOCALE)
+STATIC unsigned int
+S_get_category_index(const int category, const char *locale);
+#   define PERL_ARGS_ASSERT_GET_CATEGORY_INDEX
+
+STATIC int
+S_get_category_index_nowarn(const int category);
+#   define PERL_ARGS_ASSERT_GET_CATEGORY_INDEX_NOWARN
+
+STATIC void
+S_new_LC_ALL(pTHX_ const char *unused, bool force);
+#   define PERL_ARGS_ASSERT_NEW_LC_ALL
+
+STATIC void
+S_restore_toggled_locale_i(pTHX_ const unsigned cat_index, const char *original_locale, const line_t caller_line);
+#   define PERL_ARGS_ASSERT_RESTORE_TOGGLED_LOCALE_I
+
+STATIC const char *
+S_save_to_buffer(const char *string, const char **buf, Size_t *buf_size);
+#   define PERL_ARGS_ASSERT_SAVE_TO_BUFFER
+
+PERL_STATIC_NO_RET void
+S_setlocale_failure_panic_i(pTHX_ const unsigned int cat_index, const char *current, const char *failed, const line_t caller_0_line, const line_t caller_1_line)
+        __attribute__noreturn__;
+#   define PERL_ARGS_ASSERT_SETLOCALE_FAILURE_PANIC_I \
+        assert(failed)
+
+STATIC const char *
+S_stdize_locale(pTHX_ const int category, const char *input_locale, const char **buf, Size_t *buf_size, line_t caller_line);
+#   define PERL_ARGS_ASSERT_STDIZE_LOCALE
+
+STATIC const char *
+S_toggle_locale_i(pTHX_ const unsigned switch_cat_index, const char *new_locale, const line_t caller_line);
+#   define PERL_ARGS_ASSERT_TOGGLE_LOCALE_I     \
+        assert(new_locale)
+
+#   if defined(DEBUGGING)
+STATIC char *
+S_my_setlocale_debug_string_i(pTHX_ const unsigned cat_index, const char *locale, const char *retval, const line_t line)
+        __attribute__warn_unused_result__;
+#     define PERL_ARGS_ASSERT_MY_SETLOCALE_DEBUG_STRING_I
+
+#   endif
+#   if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L)
+STATIC const char *
+S_my_langinfo_i(pTHX_ const nl_item item, const unsigned int cat_index, const char *locale, const char **retbufp, Size_t *retbuf_sizep, utf8ness_t *utf8ness);
+#     define PERL_ARGS_ASSERT_MY_LANGINFO_I     \
+        assert(locale); assert(retbufp)
+
+#   else
+STATIC const char *
+S_my_langinfo_i(pTHX_ const int item, const unsigned int cat_index, const char *locale, const char **retbufp, Size_t *retbuf_sizep, utf8ness_t *utf8ness);
+#     define PERL_ARGS_ASSERT_MY_LANGINFO_I     \
+        assert(locale); assert(retbufp)
+
+#   endif
+#   if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE const char *
+S_mortalized_pv_copy(pTHX_ const char * const pv)
+        __attribute__warn_unused_result__;
+#     define PERL_ARGS_ASSERT_MORTALIZED_PV_COPY
+
+#   endif
+#   if defined(USE_LOCALE_COLLATE)
+STATIC void
+S_new_collate(pTHX_ const char *newcoll, bool force);
+#     define PERL_ARGS_ASSERT_NEW_COLLATE       \
+        assert(newcoll)
+
+#     if defined(DEBUGGING)
+STATIC void
+S_print_collxfrm_input_and_return(pTHX_ const char *s, const char *e, const char *xbuf, const STRLEN xlen, const bool is_utf8);
+#       define PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN \
+        assert(s); assert(e)
+
+#     endif
+#   endif /* defined(USE_LOCALE_COLLATE) */
+#   if defined(USE_LOCALE_CTYPE)
+STATIC bool
+S_is_codeset_name_UTF8(const char *name);
+#     define PERL_ARGS_ASSERT_IS_CODESET_NAME_UTF8 \
+        assert(name)
+
+STATIC void
+S_new_ctype(pTHX_ const char *newctype, bool force);
+#     define PERL_ARGS_ASSERT_NEW_CTYPE         \
+        assert(newctype)
+
+#   endif /* defined(USE_LOCALE_CTYPE) */
+#   if defined(USE_LOCALE_NUMERIC)
+STATIC void
+S_new_numeric(pTHX_ const char *newnum, bool force);
+#     define PERL_ARGS_ASSERT_NEW_NUMERIC       \
+        assert(newnum)
+
+#   endif
+#   if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
+STATIC const char *
+S_get_LC_ALL_display(pTHX);
+#     define PERL_ARGS_ASSERT_GET_LC_ALL_DISPLAY
+
+#   endif
+#   if defined(USE_POSIX_2008_LOCALE)
+STATIC const char *
+S_emulate_setlocale_i(pTHX_ const unsigned int index, const char *new_locale, const recalc_lc_all_t recalc_LC_ALL, const line_t line);
+#     define PERL_ARGS_ASSERT_EMULATE_SETLOCALE_I
+
+STATIC const char *
+S_my_querylocale_i(pTHX_ const unsigned int index);
+#     define PERL_ARGS_ASSERT_MY_QUERYLOCALE_I
+
+STATIC const char *
+S_setlocale_from_aggregate_LC_ALL(pTHX_ const char *locale, const line_t line);
+#     define PERL_ARGS_ASSERT_SETLOCALE_FROM_AGGREGATE_LC_ALL \
+        assert(locale)
+
+STATIC locale_t
+S_use_curlocale_scratch(pTHX);
+#     define PERL_ARGS_ASSERT_USE_CURLOCALE_SCRATCH
+
+#     if defined(USE_QUERYLOCALE)
+STATIC const char *
+S_calculate_LC_ALL(pTHX_ const locale_t cur_obj);
+#       define PERL_ARGS_ASSERT_CALCULATE_LC_ALL
+
+#     else
+STATIC const char *
+S_update_PL_curlocales_i(pTHX_ const unsigned int index, const char *new_locale, recalc_lc_all_t recalc_LC_ALL);
+#       define PERL_ARGS_ASSERT_UPDATE_PL_CURLOCALES_I \
+        assert(new_locale)
+
+#     endif
+#   elif  defined(USE_LOCALE_THREADS) &&                  \
+         !defined(USE_THREAD_SAFE_LOCALE) &&              \
+         !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* &&
+         !defined(USE_POSIX_2008_LOCALE) */
+STATIC const char *
+S_less_dicey_setlocale_r(pTHX_ const int category, const char *locale);
+#     define PERL_ARGS_ASSERT_LESS_DICEY_SETLOCALE_R
+
+STATIC void
+S_less_dicey_void_setlocale_i(pTHX_ const unsigned cat_index, const char *locale, const line_t line);
+#     define PERL_ARGS_ASSERT_LESS_DICEY_VOID_SETLOCALE_I \
+        assert(locale)
+
+#     if 0
+STATIC bool
+S_less_dicey_bool_setlocale_r(pTHX_ const int cat, const char *locale);
+#       define PERL_ARGS_ASSERT_LESS_DICEY_BOOL_SETLOCALE_R \
+        assert(locale)
+
+#     endif
+#   endif /*  defined(USE_LOCALE_THREADS) &&
+             !defined(USE_POSIX_2008_LOCALE) &&
+             !defined(USE_THREAD_SAFE_LOCALE) &&
+             !defined(USE_THREAD_SAFE_LOCALE_EMULATION) */
+#   if !(  defined(USE_POSIX_2008_LOCALE) && defined(USE_QUERYLOCALE) ) && \
+        ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) ||            \
+           defined(WIN32) )
+STATIC const char *
+S_calculate_LC_ALL(pTHX_ const char **individ_locales);
+#     define PERL_ARGS_ASSERT_CALCULATE_LC_ALL  \
+        assert(individ_locales)
+
+#   endif
+#   if defined(WIN32)
+STATIC wchar_t *
+S_Win_byte_string_to_wstring(const UINT code_page, const char *byte_string);
+#     define PERL_ARGS_ASSERT_WIN_BYTE_STRING_TO_WSTRING
+
+STATIC char *
+S_Win_wstring_to_byte_string(const UINT code_page, const wchar_t *wstring);
+#     define PERL_ARGS_ASSERT_WIN_WSTRING_TO_BYTE_STRING
+
+STATIC const char *
+S_win32_setlocale(pTHX_ int category, const char *locale);
+#     define PERL_ARGS_ASSERT_WIN32_SETLOCALE
+
+STATIC const char *
+S_wrap_wsetlocale(pTHX_ const int category, const char *locale);
+#     define PERL_ARGS_ASSERT_WRAP_WSETLOCALE
+
+#   endif /* defined(WIN32) */
+#   if   defined(WIN32) || \
+       ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
+STATIC const char *
+S_find_locale_from_environment(pTHX_ const unsigned int index);
+#     define PERL_ARGS_ASSERT_FIND_LOCALE_FROM_ENVIRONMENT
+
+#   endif
+# endif /* defined(USE_LOCALE) */
+# if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING)
+STATIC const char *
+S_get_displayable_string(pTHX_ const char * const s, const char * const e, const bool is_utf8);
+#   define PERL_ARGS_ASSERT_GET_DISPLAYABLE_STRING \
+        assert(s); assert(e)
+
+# endif
+#endif /* defined(PERL_IN_LOCALE_C) */
 #if defined(PERL_IN_MALLOC_C)
-STATIC int	S_adjust_size_and_find_bucket(size_t *nbytes_p);
-#define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET	\
-	assert(nbytes_p)
+STATIC int
+S_adjust_size_and_find_bucket(size_t *nbytes_p);
+# define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET \
+        assert(nbytes_p)
+
 #endif
 #if defined(PERL_IN_MG_C)
-STATIC void	S_fixup_errno_string(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING	\
-	assert(sv)
-STATIC SV*	S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, int n, SV *val);
-#define PERL_ARGS_ASSERT_MAGIC_METHCALL1	\
-	assert(sv); assert(mg); assert(meth)
-STATIC int	S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, SV *meth);
-#define PERL_ARGS_ASSERT_MAGIC_METHPACK	\
-	assert(sv); assert(mg); assert(meth)
-STATIC void	S_restore_magic(pTHX_ const void *p);
-#define PERL_ARGS_ASSERT_RESTORE_MAGIC
-STATIC void	S_save_magic_flags(pTHX_ I32 mgs_ix, SV *sv, U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS	\
-	assert(sv)
-STATIC void	S_unwind_handler_stack(pTHX_ const void *p);
-#define PERL_ARGS_ASSERT_UNWIND_HANDLER_STACK
-#endif
+STATIC void
+S_fixup_errno_string(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING    \
+        assert(sv)
+
+STATIC SV *
+S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, int n, SV *val);
+# define PERL_ARGS_ASSERT_MAGIC_METHCALL1       \
+        assert(sv); assert(mg); assert(meth)
+
+STATIC int
+S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, SV *meth);
+# define PERL_ARGS_ASSERT_MAGIC_METHPACK        \
+        assert(sv); assert(mg); assert(meth)
+
+STATIC void
+S_restore_magic(pTHX_ const void *p);
+# define PERL_ARGS_ASSERT_RESTORE_MAGIC
+
+STATIC void
+S_save_magic_flags(pTHX_ SSize_t mgs_ix, SV *sv, U32 flags);
+# define PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS      \
+        assert(sv)
+
+STATIC void
+S_unwind_handler_stack(pTHX_ const void *p);
+# define PERL_ARGS_ASSERT_UNWIND_HANDLER_STACK
+
+#endif /* defined(PERL_IN_MG_C) */
 #if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
-PERL_CALLCONV bool	Perl_translate_substr_offsets(STRLEN curlen, IV pos1_iv, bool pos1_is_uv, IV len_iv, bool len_is_uv, STRLEN *posp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS	\
-	assert(posp); assert(lenp)
+PERL_CALLCONV bool
+Perl_translate_substr_offsets(STRLEN curlen, IV pos1_iv, bool pos1_is_uv, IV len_iv, bool len_is_uv, STRLEN *posp, STRLEN *lenp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_TRANSLATE_SUBSTR_OFFSETS \
+        assert(posp); assert(lenp)
+
 #endif
 #if defined(PERL_IN_MRO_C)
-STATIC void	S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, const STRLEN len, HV * const exceptions, U32 hash, U32 flags);
-#define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV	\
-	assert(isa); assert(name)
-STATIC void	S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv);
-#define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME	\
-	assert(stashes); assert(seen_stashes); assert(namesv)
-STATIC AV*	S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS	\
-	assert(stash)
-#endif
+STATIC void
+S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, const STRLEN len, HV * const exceptions, U32 hash, U32 flags);
+# define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV      \
+        assert(isa); assert(name)
+
+STATIC void
+S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv);
+# define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME \
+        assert(stashes); assert(seen_stashes); assert(namesv)
+
+STATIC AV *
+S_mro_get_linear_isa_dfs(pTHX_ HV *stash, U32 level);
+# define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS \
+        assert(stash)
+
+#endif /* defined(PERL_IN_MRO_C) */
 #if defined(PERL_IN_NUMERIC_C)
-STATIC void	S_output_non_portable(pTHX_ const U8 shift);
-#define PERL_ARGS_ASSERT_OUTPUT_NON_PORTABLE
+STATIC void
+S_output_non_portable(pTHX_ const U8 shift);
+# define PERL_ARGS_ASSERT_OUTPUT_NON_PORTABLE
+
 #endif
 #if defined(PERL_IN_OP_C)
-STATIC void	S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS	\
-	assert(stash); assert(target)
-STATIC void	S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS_MY	\
-	assert(stash); assert(target); assert(imopsp)
-STATIC I32	S_assignment_type(pTHX_ const OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ASSIGNMENT_TYPE
-
-STATIC void	S_bad_type_gv(pTHX_ I32 n, GV *gv, const OP *kid, const char *t);
-#define PERL_ARGS_ASSERT_BAD_TYPE_GV	\
-	assert(gv); assert(kid); assert(t)
-STATIC void	S_bad_type_pv(pTHX_ I32 n, const char *t, const OP *o, const OP *kid);
-#define PERL_ARGS_ASSERT_BAD_TYPE_PV	\
-	assert(t); assert(o); assert(kid)
-STATIC void	S_clear_special_blocks(pTHX_ const char *const fullname, GV *const gv, CV *const cv);
-#define PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS	\
-	assert(fullname); assert(gv); assert(cv)
-STATIC void	S_cop_free(pTHX_ COP *cop);
-#define PERL_ARGS_ASSERT_COP_FREE	\
-	assert(cop)
-STATIC OP *	S_dup_attrlist(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_DUP_ATTRLIST	\
-	assert(o)
-STATIC void	S_finalize_op(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_FINALIZE_OP	\
-	assert(o)
-STATIC void	S_find_and_forget_pmops(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS	\
-	assert(o)
-STATIC OP*	S_fold_constants(pTHX_ OP * const o);
-#define PERL_ARGS_ASSERT_FOLD_CONSTANTS	\
-	assert(o)
-STATIC OP*	S_force_list(pTHX_ OP* arg, bool nullit);
-#define PERL_ARGS_ASSERT_FORCE_LIST
-STATIC void	S_forget_pmop(pTHX_ PMOP *const o);
-#define PERL_ARGS_ASSERT_FORGET_PMOP	\
-	assert(o)
-STATIC void	S_gen_constant_list(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_GEN_CONSTANT_LIST
-STATIC void	S_inplace_aassign(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_INPLACE_AASSIGN	\
-	assert(o)
-STATIC bool	S_is_handle_constructor(const OP *o, I32 numargs)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR	\
-	assert(o)
-
-STATIC OP*	S_listkids(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_LISTKIDS
-STATIC bool	S_looks_like_bool(pTHX_ const OP* o);
-#define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL	\
-	assert(o)
-STATIC OP*	S_modkids(pTHX_ OP *o, I32 type);
-#define PERL_ARGS_ASSERT_MODKIDS
-STATIC void	S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV *name, bool curstash);
-#define PERL_ARGS_ASSERT_MOVE_PROTO_ATTR	\
-	assert(proto); assert(attrs); assert(name)
-STATIC OP *	S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
-#define PERL_ARGS_ASSERT_MY_KID	\
-	assert(imopsp)
-STATIC OP*	S_newGIVWHENOP(pTHX_ OP* cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg);
-#define PERL_ARGS_ASSERT_NEWGIVWHENOP	\
-	assert(block)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE OP*	S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth);
-#define PERL_ARGS_ASSERT_NEWMETHOP_INTERNAL
-#endif
-STATIC OP*	S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_LOGOP	\
-	assert(firstp); assert(otherp)
-
-STATIC void	S_no_bareword_allowed(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED	\
-	assert(o)
-STATIC OP*	S_no_fh_allowed(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NO_FH_ALLOWED	\
-	assert(o)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE OP*	S_op_integerize(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_INTEGERIZE	\
-	assert(o)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE OP*	S_op_std_init(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_OP_STD_INIT	\
-	assert(o)
-#endif
-STATIC void	S_optimize_op(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_OPTIMIZE_OP	\
-	assert(o)
-STATIC OP*	S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl);
-#define PERL_ARGS_ASSERT_PMTRANS	\
-	assert(o); assert(expr); assert(repl)
-STATIC bool	S_process_special_blocks(pTHX_ I32 floor, const char *const fullname, GV *const gv, CV *const cv);
-#define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS	\
-	assert(fullname); assert(gv); assert(cv)
-STATIC OP*	S_ref_array_or_hash(pTHX_ OP* cond);
-#define PERL_ARGS_ASSERT_REF_ARRAY_OR_HASH
-STATIC OP*	S_refkids(pTHX_ OP* o, I32 type);
-#define PERL_ARGS_ASSERT_REFKIDS
-STATIC bool	S_scalar_mod_type(const OP *o, I32 type)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE
-
-STATIC OP*	S_scalarboolean(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_SCALARBOOLEAN	\
-	assert(o)
-STATIC OP*	S_scalarkids(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_SCALARKIDS
-STATIC OP*	S_search_const(pTHX_ OP *o)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SEARCH_CONST	\
-	assert(o)
-
-STATIC void	S_simplify_sort(pTHX_ OP *o);
-#define PERL_ARGS_ASSERT_SIMPLIFY_SORT	\
-	assert(o)
-STATIC OP*	S_too_few_arguments_pv(pTHX_ OP *o, const char* name, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV	\
-	assert(o); assert(name)
-
-STATIC OP*	S_too_many_arguments_pv(pTHX_ OP *o, const char* name, U32 flags);
-#define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV	\
-	assert(o); assert(name)
-STATIC OP*	S_traverse_op_tree(pTHX_ OP* top, OP* o);
-#define PERL_ARGS_ASSERT_TRAVERSE_OP_TREE	\
-	assert(top); assert(o)
-STATIC OP*	S_voidnonfinal(pTHX_ OP* o);
-#define PERL_ARGS_ASSERT_VOIDNONFINAL
-#  if defined(USE_ITHREADS)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_op_relocate_sv(pTHX_ SV** svp, PADOFFSET* targp);
-#define PERL_ARGS_ASSERT_OP_RELOCATE_SV	\
-	assert(svp); assert(targp)
-#endif
-#  endif
+STATIC void
+S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);
+# define PERL_ARGS_ASSERT_APPLY_ATTRS           \
+        assert(stash); assert(target)
+
+STATIC void
+S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp);
+# define PERL_ARGS_ASSERT_APPLY_ATTRS_MY        \
+        assert(stash); assert(target); assert(imopsp)
+
+STATIC I32
+S_assignment_type(pTHX_ const OP *o)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ASSIGNMENT_TYPE
+
+STATIC void
+S_bad_type_gv(pTHX_ I32 n, GV *gv, const OP *kid, const char *t);
+# define PERL_ARGS_ASSERT_BAD_TYPE_GV           \
+        assert(gv); assert(kid); assert(t)
+
+STATIC void
+S_bad_type_pv(pTHX_ I32 n, const char *t, const OP *o, const OP *kid);
+# define PERL_ARGS_ASSERT_BAD_TYPE_PV           \
+        assert(t); assert(o); assert(kid)
+
+STATIC void
+S_clear_special_blocks(pTHX_ const char * const fullname, GV * const gv, CV * const cv);
+# define PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS  \
+        assert(fullname); assert(gv); assert(cv)
+
+STATIC void
+S_cop_free(pTHX_ COP *cop);
+# define PERL_ARGS_ASSERT_COP_FREE              \
+        assert(cop)
+
+STATIC OP *
+S_dup_attrlist(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_DUP_ATTRLIST          \
+        assert(o)
+
+STATIC void
+S_find_and_forget_pmops(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \
+        assert(o)
+
+STATIC OP *
+S_fold_constants(pTHX_ OP * const o);
+# define PERL_ARGS_ASSERT_FOLD_CONSTANTS        \
+        assert(o)
+
+STATIC OP *
+S_force_list(pTHX_ OP *arg, bool nullit);
+# define PERL_ARGS_ASSERT_FORCE_LIST
+
+STATIC void
+S_forget_pmop(pTHX_ PMOP * const o);
+# define PERL_ARGS_ASSERT_FORGET_PMOP           \
+        assert(o)
+
+STATIC void
+S_gen_constant_list(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_GEN_CONSTANT_LIST
+
+STATIC void
+S_inplace_aassign(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_INPLACE_AASSIGN       \
+        assert(o)
+
+STATIC bool
+S_is_handle_constructor(const OP *o, I32 numargs)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \
+        assert(o)
+
+STATIC OP *
+S_listkids(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_LISTKIDS
+
+STATIC bool
+S_looks_like_bool(pTHX_ const OP *o);
+# define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL       \
+        assert(o)
+
+STATIC OP *
+S_modkids(pTHX_ OP *o, I32 type);
+# define PERL_ARGS_ASSERT_MODKIDS
+
+STATIC void
+S_move_proto_attr(pTHX_ OP **proto, OP **attrs, const GV *name, bool curstash);
+# define PERL_ARGS_ASSERT_MOVE_PROTO_ATTR       \
+        assert(proto); assert(attrs); assert(name)
+
+STATIC OP *
+S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
+# define PERL_ARGS_ASSERT_MY_KID                \
+        assert(imopsp)
+
+STATIC OP *
+S_newGIVWHENOP(pTHX_ OP *cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg);
+# define PERL_ARGS_ASSERT_NEWGIVWHENOP          \
+        assert(block)
+
+STATIC OP *
+S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEW_LOGOP             \
+        assert(firstp); assert(otherp)
+
+STATIC OP *
+S_no_fh_allowed(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NO_FH_ALLOWED         \
+        assert(o)
+
+STATIC OP *
+S_pmtrans(pTHX_ OP *o, OP *expr, OP *repl);
+# define PERL_ARGS_ASSERT_PMTRANS               \
+        assert(o); assert(expr); assert(repl)
+
+STATIC bool
+S_process_special_blocks(pTHX_ I32 floor, const char * const fullname, GV * const gv, CV * const cv);
+# define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS \
+        assert(fullname); assert(gv); assert(cv)
+
+STATIC OP *
+S_ref_array_or_hash(pTHX_ OP *cond);
+# define PERL_ARGS_ASSERT_REF_ARRAY_OR_HASH
+
+STATIC OP *
+S_refkids(pTHX_ OP *o, I32 type);
+# define PERL_ARGS_ASSERT_REFKIDS
+
+STATIC bool
+S_scalar_mod_type(const OP *o, I32 type)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE
+
+STATIC OP *
+S_scalarboolean(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SCALARBOOLEAN         \
+        assert(o)
+
+STATIC OP *
+S_scalarkids(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SCALARKIDS
+
+STATIC OP *
+S_search_const(pTHX_ OP *o)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SEARCH_CONST          \
+        assert(o)
+
+STATIC void
+S_simplify_sort(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_SIMPLIFY_SORT         \
+        assert(o)
+
+STATIC OP *
+S_too_few_arguments_pv(pTHX_ OP *o, const char *name, U32 flags)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV  \
+        assert(o); assert(name)
+
+STATIC OP *
+S_too_many_arguments_pv(pTHX_ OP *o, const char *name, U32 flags);
+# define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV \
+        assert(o); assert(name)
+
+STATIC OP *
+S_voidnonfinal(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_VOIDNONFINAL
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE OP *
+S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP *dynamic_meth, SV * const_meth);
+#   define PERL_ARGS_ASSERT_NEWMETHOP_INTERNAL
+
+PERL_STATIC_INLINE OP *
+S_op_integerize(pTHX_ OP *o);
+#   define PERL_ARGS_ASSERT_OP_INTEGERIZE       \
+        assert(o)
+
+PERL_STATIC_INLINE OP *
+S_op_std_init(pTHX_ OP *o);
+#   define PERL_ARGS_ASSERT_OP_STD_INIT         \
+        assert(o)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_OP_C) */
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+PERL_CALLCONV void
+Perl_check_hash_fields_and_hekify(pTHX_ UNOP *rop, SVOP *key_op, int real)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CHECK_HASH_FIELDS_AND_HEKIFY
+
+PERL_CALLCONV void
+Perl_no_bareword_allowed(pTHX_ OP *o)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED   \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_op_prune_chain_head(OP **op_p)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OP_PRUNE_CHAIN_HEAD   \
+        assert(op_p)
+
+PERL_CALLCONV SV *
+Perl_op_varname(pTHX_ const OP *o)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_OP_VARNAME            \
+        assert(o)
+
+PERL_CALLCONV void
+Perl_warn_elem_scalar_context(pTHX_ const OP *o, SV *name, bool is_hash, bool is_slice)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_WARN_ELEM_SCALAR_CONTEXT \
+        assert(o); assert(name)
+
+#endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C) */
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+
 #endif
 #if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV void	Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv, SV * const *new_const_svp);
-#define PERL_ARGS_ASSERT_REPORT_REDEFINED_CV	\
-	assert(name); assert(old_cv)
-#endif
+PERL_CALLCONV void
+Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv, SV * const *new_const_svp)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_REPORT_REDEFINED_CV   \
+        assert(name); assert(old_cv)
+
+PERL_CALLCONV SV *
+Perl_varname(pTHX_ const GV * const gv, const char gvtype, PADOFFSET targ, const SV * const keyname, SSize_t aindex, int subscript_type)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_VARNAME
+
+#endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) */
 #if defined(PERL_IN_PAD_C)
-STATIC PADOFFSET	S_pad_alloc_name(pTHX_ PADNAME *name, U32 flags, HV *typestash, HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_ALLOC_NAME	\
-	assert(name)
-STATIC void	S_pad_check_dup(pTHX_ PADNAME *name, U32 flags, const HV *ourstash);
-#define PERL_ARGS_ASSERT_PAD_CHECK_DUP	\
-	assert(name)
-STATIC PADOFFSET	S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV* cv, U32 seq, int warn, SV** out_capture, PADNAME** out_name, int *out_flags);
-#define PERL_ARGS_ASSERT_PAD_FINDLEX	\
-	assert(namepv); assert(cv); assert(out_name); assert(out_flags)
-STATIC void	S_pad_reset(pTHX);
-#define PERL_ARGS_ASSERT_PAD_RESET
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq);
-#define PERL_ARGS_ASSERT_PADNAMEIN_SCOPE	\
-	assert(pn)
-#endif
-#endif
-#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
-#ifndef NO_MATHOMS
-PERL_CALLCONV OP*	Perl_ref(pTHX_ OP* o, I32 type);
-#define PERL_ARGS_ASSERT_REF
-#endif
-#endif
+STATIC PADOFFSET
+S_pad_alloc_name(pTHX_ PADNAME *name, U32 flags, HV *typestash, HV *ourstash);
+# define PERL_ARGS_ASSERT_PAD_ALLOC_NAME        \
+        assert(name)
+
+STATIC void
+S_pad_check_dup(pTHX_ PADNAME *name, U32 flags, const HV *ourstash);
+# define PERL_ARGS_ASSERT_PAD_CHECK_DUP         \
+        assert(name)
+
+STATIC PADOFFSET
+S_pad_findlex(pTHX_ const char *namepv, STRLEN namelen, U32 flags, const CV *cv, U32 seq, int warn, SV **out_capture, PADNAME **out_name, int *out_flags);
+# define PERL_ARGS_ASSERT_PAD_FINDLEX           \
+        assert(namepv); assert(cv); assert(out_name); assert(out_flags)
+
+STATIC void
+S_pad_reset(pTHX);
+# define PERL_ARGS_ASSERT_PAD_RESET
+
+# if defined(DEBUGGING)
+STATIC void
+S_cv_dump(pTHX_ const CV *cv, const char *title);
+#   define PERL_ARGS_ASSERT_CV_DUMP             \
+        assert(cv); assert(title)
+
+# endif
+#endif /* defined(PERL_IN_PAD_C) */
+#if defined(PERL_IN_PEEP_C)
+STATIC void
+S_finalize_op(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_FINALIZE_OP           \
+        assert(o)
+
+STATIC void
+S_optimize_op(pTHX_ OP *o);
+# define PERL_ARGS_ASSERT_OPTIMIZE_OP           \
+        assert(o)
+
+STATIC OP *
+S_traverse_op_tree(pTHX_ OP *top, OP *o);
+# define PERL_ARGS_ASSERT_TRAVERSE_OP_TREE      \
+        assert(top); assert(o)
+
+#endif /* defined(PERL_IN_PEEP_C) */
 #if defined(PERL_IN_PERL_C)
-STATIC void	S_find_beginning(pTHX_ SV* linestr_sv, PerlIO *rsfp);
-#define PERL_ARGS_ASSERT_FIND_BEGINNING	\
-	assert(linestr_sv); assert(rsfp)
-STATIC void	S_forbid_setid(pTHX_ const char flag, const bool suidscript);
-#define PERL_ARGS_ASSERT_FORBID_SETID
-STATIC void	S_incpush(pTHX_ const char *const dir, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_INCPUSH	\
-	assert(dir)
-STATIC void	S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_INCPUSH_USE_SEP	\
-	assert(p)
-STATIC void	S_init_ids(pTHX);
-#define PERL_ARGS_ASSERT_INIT_IDS
-STATIC void	S_init_interp(pTHX);
-#define PERL_ARGS_ASSERT_INIT_INTERP
-STATIC void	S_init_main_stash(pTHX);
-#define PERL_ARGS_ASSERT_INIT_MAIN_STASH
-STATIC void	S_init_perllib(pTHX);
-#define PERL_ARGS_ASSERT_INIT_PERLLIB
-STATIC void	S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env);
-#define PERL_ARGS_ASSERT_INIT_POSTDUMP_SYMBOLS	\
-	assert(argv)
-STATIC void	S_init_predump_symbols(pTHX);
-#define PERL_ARGS_ASSERT_INIT_PREDUMP_SYMBOLS
-STATIC SV*	S_mayberelocate(pTHX_ const char *const dir, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_MAYBERELOCATE	\
-	assert(dir)
-PERL_STATIC_NO_RET void	S_minus_v(pTHX)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MINUS_V
-
-PERL_STATIC_NO_RET void	S_my_exit_jump(pTHX)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MY_EXIT_JUMP
-
-STATIC void	S_nuke_stacks(pTHX);
-#define PERL_ARGS_ASSERT_NUKE_STACKS
-STATIC PerlIO *	S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript);
-#define PERL_ARGS_ASSERT_OPEN_SCRIPT	\
-	assert(scriptname); assert(suidscript)
-STATIC void*	S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
-#define PERL_ARGS_ASSERT_PARSE_BODY
-PERL_STATIC_NO_RET void	S_run_body(pTHX_ I32 oldscope)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_RUN_BODY
-
-PERL_STATIC_NO_RET void	S_usage(pTHX)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_USAGE
+STATIC void
+S_find_beginning(pTHX_ SV *linestr_sv, PerlIO *rsfp);
+# define PERL_ARGS_ASSERT_FIND_BEGINNING        \
+        assert(linestr_sv); assert(rsfp)
+
+STATIC void
+S_forbid_setid(pTHX_ const char flag, const bool suidscript);
+# define PERL_ARGS_ASSERT_FORBID_SETID
+
+STATIC void
+S_incpush(pTHX_ const char * const dir, STRLEN len, U32 flags);
+# define PERL_ARGS_ASSERT_INCPUSH               \
+        assert(dir)
+
+STATIC void
+S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags);
+# define PERL_ARGS_ASSERT_INCPUSH_USE_SEP       \
+        assert(p)
+
+STATIC void
+S_init_ids(pTHX);
+# define PERL_ARGS_ASSERT_INIT_IDS
+
+STATIC void
+S_init_interp(pTHX);
+# define PERL_ARGS_ASSERT_INIT_INTERP
+
+STATIC void
+S_init_main_stash(pTHX);
+# define PERL_ARGS_ASSERT_INIT_MAIN_STASH
+
+STATIC void
+S_init_perllib(pTHX);
+# define PERL_ARGS_ASSERT_INIT_PERLLIB
+
+STATIC void
+S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env);
+# define PERL_ARGS_ASSERT_INIT_POSTDUMP_SYMBOLS \
+        assert(argv)
+
+STATIC void
+S_init_predump_symbols(pTHX);
+# define PERL_ARGS_ASSERT_INIT_PREDUMP_SYMBOLS
+
+STATIC SV *
+S_mayberelocate(pTHX_ const char * const dir, STRLEN len, U32 flags);
+# define PERL_ARGS_ASSERT_MAYBERELOCATE         \
+        assert(dir)
+
+PERL_STATIC_NO_RET void
+S_minus_v(pTHX)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_MINUS_V
+
+PERL_STATIC_NO_RET void
+S_my_exit_jump(pTHX)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_MY_EXIT_JUMP
+
+STATIC void
+S_nuke_stacks(pTHX);
+# define PERL_ARGS_ASSERT_NUKE_STACKS
+
+STATIC PerlIO *
+S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript);
+# define PERL_ARGS_ASSERT_OPEN_SCRIPT           \
+        assert(scriptname); assert(suidscript)
+
+STATIC void *
+S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
+# define PERL_ARGS_ASSERT_PARSE_BODY
+
+PERL_STATIC_NO_RET void
+S_run_body(pTHX_ I32 oldscope)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_RUN_BODY
+
+PERL_STATIC_NO_RET void
+S_usage(pTHX)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_USAGE
+
+# if !defined(PERL_IS_MINIPERL)
+STATIC SV *
+S_incpush_if_exists(pTHX_ AV * const av, SV *dir, SV * const stem);
+#   define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS   \
+        assert(av); assert(dir); assert(stem)
+
+# endif
+# if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
+STATIC void
+S_validate_suid(pTHX_ PerlIO *rsfp);
+#   define PERL_ARGS_ASSERT_VALIDATE_SUID       \
+        assert(rsfp)
+
+# endif
+#endif /* defined(PERL_IN_PERL_C) */
+#if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
+    defined(PERL_IN_UTF8_C)
+PERL_CALLCONV bool
+Perl__invlistEQ(pTHX_ SV * const a, SV * const b, const bool complement_b);
+# define PERL_ARGS_ASSERT__INVLISTEQ            \
+        assert(a); assert(b)
+
+PERL_CALLCONV SV *
+Perl__new_invlist_C_array(pTHX_ const UV * const list)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY  \
+        assert(list)
 
-#endif
+#endif /* defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) ||
+          defined(PERL_IN_UTF8_C) */
 #if defined(PERL_IN_PP_C)
-STATIC size_t	S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping);
-#define PERL_ARGS_ASSERT_DO_CHOMP	\
-	assert(retval); assert(sv)
-STATIC OP*	S_do_delete_local(pTHX);
-#define PERL_ARGS_ASSERT_DO_DELETE_LOCAL
-STATIC SV*	S_refto(pTHX_ SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REFTO	\
-	assert(sv)
+STATIC size_t
+S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping);
+# define PERL_ARGS_ASSERT_DO_CHOMP              \
+        assert(retval); assert(sv)
+
+STATIC OP *
+S_do_delete_local(pTHX);
+# define PERL_ARGS_ASSERT_DO_DELETE_LOCAL
+
+STATIC SV *
+S_refto(pTHX_ SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REFTO                 \
+        assert(sv)
 
-#endif
+#endif /* defined(PERL_IN_PP_C) */
 #if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_lossless_NV_to_IV(const NV nv, IV * ivp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV	\
-	assert(ivp)
-#endif
 
-PERL_CALLCONV GV*	Perl_softref2xv(pTHX_ SV *const sv, const char *const what, const svtype type, SV ***spp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SOFTREF2XV	\
-	assert(sv); assert(what); assert(spp)
+PERL_CALLCONV GV *
+Perl_softref2xv(pTHX_ SV * const sv, const char * const what, const svtype type, SV ***spp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SOFTREF2XV            \
+        assert(sv); assert(what); assert(spp)
+
+#endif
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV UV
+Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT__TO_UPPER_TITLE_LATIN1 \
+        assert(p); assert(lenp)
 
 #endif
 #if defined(PERL_IN_PP_CTL_C)
-STATIC PerlIO *	S_check_type_and_open(pTHX_ SV *name)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN	\
-	assert(name)
-
-STATIC void	S_destroy_matcher(pTHX_ PMOP* matcher);
-#define PERL_ARGS_ASSERT_DESTROY_MATCHER	\
-	assert(matcher)
-STATIC OP*	S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other, const bool copied);
-#define PERL_ARGS_ASSERT_DO_SMARTMATCH
-STATIC OP*	S_docatch(pTHX_ Perl_ppaddr_t firstpp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOCATCH
-
-STATIC bool	S_doeval_compile(pTHX_ U8 gimme, CV* outside, U32 seq, HV* hh);
-#define PERL_ARGS_ASSERT_DOEVAL_COMPILE
-STATIC OP*	S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, U32 flags, OP **opstack, OP **oplimit)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOFINDLABEL	\
-	assert(o); assert(label); assert(opstack); assert(oplimit)
-
-STATIC MAGIC *	S_doparseform(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_DOPARSEFORM	\
-	assert(sv)
-STATIC I32	S_dopoptoeval(pTHX_ I32 startingblock)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOEVAL
-
-STATIC I32	S_dopoptogivenfor(pTHX_ I32 startingblock)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOGIVENFOR
-
-STATIC I32	S_dopoptolabel(pTHX_ const char *label, STRLEN len, U32 flags)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOLABEL	\
-	assert(label)
-
-STATIC I32	S_dopoptoloop(pTHX_ I32 startingblock)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOLOOP
-
-STATIC I32	S_dopoptosub_at(pTHX_ const PERL_CONTEXT* cxstk, I32 startingblock)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOSUB_AT	\
-	assert(cxstk)
-
-STATIC I32	S_dopoptowhen(pTHX_ I32 startingblock)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOPOPTOWHEN
-
-STATIC PMOP*	S_make_matcher(pTHX_ REGEXP* re)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MAKE_MATCHER	\
-	assert(re)
-
-STATIC bool	S_matcher_matches_sv(pTHX_ PMOP* matcher, SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV	\
-	assert(matcher); assert(sv)
-
-STATIC bool	S_num_overflow(NV value, I32 fldsize, I32 frcsize)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NUM_OVERFLOW
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_path_is_searchable(const char *name)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE	\
-	assert(name)
-#endif
-
-STATIC I32	S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_RUN_USER_FILTER	\
-	assert(buf_sv)
-
-STATIC void	S_rxres_free(pTHX_ void** rsp);
-#define PERL_ARGS_ASSERT_RXRES_FREE	\
-	assert(rsp)
-STATIC void	S_rxres_restore(pTHX_ void **rsp, REGEXP *rx);
-#define PERL_ARGS_ASSERT_RXRES_RESTORE	\
-	assert(rsp); assert(rx)
-STATIC void	S_save_lines(pTHX_ AV *array, SV *sv);
-#define PERL_ARGS_ASSERT_SAVE_LINES	\
-	assert(sv)
+STATIC PerlIO *
+S_check_type_and_open(pTHX_ SV *name)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN   \
+        assert(name)
+
+STATIC void
+S_destroy_matcher(pTHX_ PMOP *matcher);
+# define PERL_ARGS_ASSERT_DESTROY_MATCHER       \
+        assert(matcher)
+
+STATIC OP *
+S_do_smartmatch(pTHX_ HV *seen_this, HV *seen_other, const bool copied);
+# define PERL_ARGS_ASSERT_DO_SMARTMATCH
+
+STATIC OP *
+S_docatch(pTHX_ Perl_ppaddr_t firstpp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOCATCH
+
+STATIC bool
+S_doeval_compile(pTHX_ U8 gimme, CV *outside, U32 seq, HV *hh);
+# define PERL_ARGS_ASSERT_DOEVAL_COMPILE
+
+STATIC OP *
+S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, U32 flags, OP **opstack, OP **oplimit)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOFINDLABEL           \
+        assert(o); assert(label); assert(opstack); assert(oplimit)
+
+STATIC MAGIC *
+S_doparseform(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_DOPARSEFORM           \
+        assert(sv)
+
+STATIC I32
+S_dopoptoeval(pTHX_ I32 startingblock)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOEVAL
+
+STATIC I32
+S_dopoptogivenfor(pTHX_ I32 startingblock)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOGIVENFOR
+
+STATIC I32
+S_dopoptolabel(pTHX_ const char *label, STRLEN len, U32 flags)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOLABEL          \
+        assert(label)
+
+STATIC I32
+S_dopoptoloop(pTHX_ I32 startingblock)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOLOOP
+
+STATIC I32
+S_dopoptosub_at(pTHX_ const PERL_CONTEXT *cxstk, I32 startingblock)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOSUB_AT         \
+        assert(cxstk)
+
+STATIC I32
+S_dopoptowhen(pTHX_ I32 startingblock)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DOPOPTOWHEN
+
+STATIC PMOP *
+S_make_matcher(pTHX_ REGEXP *re)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MAKE_MATCHER          \
+        assert(re)
+
+STATIC bool
+S_matcher_matches_sv(pTHX_ PMOP *matcher, SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV    \
+        assert(matcher); assert(sv)
+
+STATIC bool
+S_num_overflow(NV value, I32 fldsize, I32 frcsize)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NUM_OVERFLOW
+
+STATIC I32
+S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_RUN_USER_FILTER       \
+        assert(buf_sv)
+
+STATIC void
+S_rxres_free(pTHX_ void **rsp);
+# define PERL_ARGS_ASSERT_RXRES_FREE            \
+        assert(rsp)
+
+STATIC void
+S_rxres_restore(pTHX_ void **rsp, REGEXP *rx);
+# define PERL_ARGS_ASSERT_RXRES_RESTORE         \
+        assert(rsp); assert(rx)
+
+STATIC void
+S_save_lines(pTHX_ AV *array, SV *sv);
+# define PERL_ARGS_ASSERT_SAVE_LINES            \
+        assert(sv)
+
+# if !defined(PERL_DISABLE_PMC)
+STATIC PerlIO *
+S_doopen_pm(pTHX_ SV *name)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_DOOPEN_PM           \
+        assert(name)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE bool
+S_path_is_searchable(const char *name)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE  \
+        assert(name)
+
+# endif
+#endif /* defined(PERL_IN_PP_CTL_C) */
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
+PERL_CALLCONV bool
+Perl_invoke_exception_hook(pTHX_ SV *ex, bool warn)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_INVOKE_EXCEPTION_HOOK
+
 #endif
 #if defined(PERL_IN_PP_HOT_C)
-STATIC void	S_do_oddball(pTHX_ SV **oddkey, SV **firstkey);
-#define PERL_ARGS_ASSERT_DO_ODDBALL	\
-	assert(oddkey); assert(firstkey)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE HV*	S_opmethod_stash(pTHX_ SV* meth);
-#define PERL_ARGS_ASSERT_OPMETHOD_STASH	\
-	assert(meth)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE bool	S_should_we_output_Debug_r(pTHX_ regexp * prog)
-			__attribute__warn_unused_result__
-			__attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SHOULD_WE_OUTPUT_DEBUG_R	\
-	assert(prog)
-#endif
+STATIC void
+S_do_oddball(pTHX_ SV **oddkey, SV **firstkey);
+# define PERL_ARGS_ASSERT_DO_ODDBALL            \
+        assert(oddkey); assert(firstkey)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE HV *
+S_opmethod_stash(pTHX_ SV *meth);
+#   define PERL_ARGS_ASSERT_OPMETHOD_STASH      \
+        assert(meth)
+
+PERL_STATIC_FORCE_INLINE bool
+S_should_we_output_Debug_r(pTHX_ regexp *prog)
+        __attribute__warn_unused_result__
+        __attribute__always_inline__;
+#   define PERL_ARGS_ASSERT_SHOULD_WE_OUTPUT_DEBUG_R \
+        assert(prog)
 
-#endif
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_PP_HOT_C) */
 #if defined(PERL_IN_PP_PACK_C)
-STATIC int	S_div128(pTHX_ SV *pnum, bool *done);
-#define PERL_ARGS_ASSERT_DIV128	\
-	assert(pnum); assert(done)
-STATIC char	S_first_symbol(const char *pat, const char *patend);
-#define PERL_ARGS_ASSERT_FIRST_SYMBOL	\
-	assert(pat); assert(patend)
-STATIC const char *	S_get_num(pTHX_ const char *patptr, SSize_t *lenptr)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_NUM	\
-	assert(patptr); assert(lenptr)
-
-STATIC const char *	S_group_end(pTHX_ const char *patptr, const char *patend, char ender);
-#define PERL_ARGS_ASSERT_GROUP_END	\
-	assert(patptr); assert(patend)
-STATIC SV*	S_is_an_int(pTHX_ const char *s, STRLEN l)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_AN_INT	\
-	assert(s)
-
-STATIC SSize_t	S_measure_struct(pTHX_ struct tempsym* symptr);
-#define PERL_ARGS_ASSERT_MEASURE_STRUCT	\
-	assert(symptr)
-STATIC SV*	S_mul128(pTHX_ SV *sv, U8 m);
-#define PERL_ARGS_ASSERT_MUL128	\
-	assert(sv)
-STATIC char *	S_my_bytes_to_utf8(const U8 *start, STRLEN len, char *dest, const bool needs_swap)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8	\
-	assert(start); assert(dest)
-
-STATIC bool	S_need_utf8(const char *pat, const char *patend);
-#define PERL_ARGS_ASSERT_NEED_UTF8	\
-	assert(pat); assert(patend)
-STATIC bool	S_next_symbol(pTHX_ struct tempsym* symptr);
-#define PERL_ARGS_ASSERT_NEXT_SYMBOL	\
-	assert(symptr)
-STATIC SV **	S_pack_rec(pTHX_ SV *cat, struct tempsym* symptr, SV **beglist, SV **endlist);
-#define PERL_ARGS_ASSERT_PACK_REC	\
-	assert(cat); assert(symptr); assert(beglist); assert(endlist)
-STATIC char *	S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_EXP_GROW	\
-	assert(sv)
-
-STATIC SSize_t	S_unpack_rec(pTHX_ struct tempsym* symptr, const char *s, const char *strbeg, const char *strend, const char **new_s);
-#define PERL_ARGS_ASSERT_UNPACK_REC	\
-	assert(symptr); assert(s); assert(strbeg); assert(strend)
-#endif
+STATIC int
+S_div128(pTHX_ SV *pnum, bool *done);
+# define PERL_ARGS_ASSERT_DIV128                \
+        assert(pnum); assert(done)
+
+STATIC char
+S_first_symbol(const char *pat, const char *patend);
+# define PERL_ARGS_ASSERT_FIRST_SYMBOL          \
+        assert(pat); assert(patend)
+
+STATIC const char *
+S_get_num(pTHX_ const char *patptr, SSize_t *lenptr)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_NUM               \
+        assert(patptr); assert(lenptr)
+
+STATIC const char *
+S_group_end(pTHX_ const char *patptr, const char *patend, char ender);
+# define PERL_ARGS_ASSERT_GROUP_END             \
+        assert(patptr); assert(patend)
+
+STATIC SV *
+S_is_an_int(pTHX_ const char *s, STRLEN l)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_AN_INT             \
+        assert(s)
+
+STATIC SSize_t
+S_measure_struct(pTHX_ struct tempsym *symptr);
+# define PERL_ARGS_ASSERT_MEASURE_STRUCT        \
+        assert(symptr)
+
+STATIC SV *
+S_mul128(pTHX_ SV *sv, U8 m);
+# define PERL_ARGS_ASSERT_MUL128                \
+        assert(sv)
+
+STATIC char *
+S_my_bytes_to_utf8(const U8 *start, STRLEN len, char *dest, const bool needs_swap)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8      \
+        assert(start); assert(dest)
+
+STATIC bool
+S_need_utf8(const char *pat, const char *patend);
+# define PERL_ARGS_ASSERT_NEED_UTF8             \
+        assert(pat); assert(patend)
+
+STATIC bool
+S_next_symbol(pTHX_ struct tempsym *symptr);
+# define PERL_ARGS_ASSERT_NEXT_SYMBOL           \
+        assert(symptr)
+
+STATIC SV **
+S_pack_rec(pTHX_ SV *cat, struct tempsym *symptr, SV **beglist, SV **endlist);
+# define PERL_ARGS_ASSERT_PACK_REC              \
+        assert(cat); assert(symptr); assert(beglist); assert(endlist)
+
+STATIC char *
+S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_EXP_GROW           \
+        assert(sv)
+
+STATIC SSize_t
+S_unpack_rec(pTHX_ struct tempsym *symptr, const char *s, const char *strbeg, const char *strend, const char **new_s);
+# define PERL_ARGS_ASSERT_UNPACK_REC            \
+        assert(symptr); assert(s); assert(strbeg); assert(strend)
+
+#endif /* defined(PERL_IN_PP_PACK_C) */
 #if defined(PERL_IN_PP_SORT_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_cmp(pTHX_ SV *const str1, SV *const str2);
-#define PERL_ARGS_ASSERT_AMAGIC_CMP	\
-	assert(str1); assert(str2)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_cmp_desc(pTHX_ SV *const str1, SV *const str2);
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_DESC	\
-	assert(str1); assert(str2)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_AMAGIC_I_NCMP	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_i_ncmp_desc(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_AMAGIC_I_NCMP_DESC	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_ncmp(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_AMAGIC_NCMP	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_ncmp_desc(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_AMAGIC_NCMP_DESC	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_cmp_desc(pTHX_ SV *const str1, SV *const str2);
-#define PERL_ARGS_ASSERT_CMP_DESC	\
-	assert(str1); assert(str2)
-#endif
-STATIC I32	S_sortcv(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SORTCV	\
-	assert(a); assert(b)
-STATIC I32	S_sortcv_stacked(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SORTCV_STACKED	\
-	assert(a); assert(b)
-STATIC I32	S_sortcv_xsub(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SORTCV_XSUB	\
-	assert(a); assert(b)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_FORCE_INLINE void	S_sortsv_flags_impl(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
-			__attribute__always_inline__;
-#define PERL_ARGS_ASSERT_SORTSV_FLAGS_IMPL	\
-	assert(cmp)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_sv_i_ncmp(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SV_I_NCMP	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_sv_i_ncmp_desc(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SV_I_NCMP_DESC	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_sv_ncmp(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SV_NCMP	\
-	assert(a); assert(b)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_sv_ncmp_desc(pTHX_ SV *const a, SV *const b);
-#define PERL_ARGS_ASSERT_SV_NCMP_DESC	\
-	assert(a); assert(b)
-#endif
-#  if defined(USE_LOCALE_COLLATE)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2);
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE	\
-	assert(str1); assert(str2)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_amagic_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2);
-#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE_DESC	\
-	assert(str1); assert(str2)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2);
-#define PERL_ARGS_ASSERT_CMP_LOCALE_DESC	\
-	assert(str1); assert(str2)
-#endif
-#  endif
-#endif
+STATIC I32
+S_sortcv(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SORTCV                \
+        assert(a); assert(b)
+
+STATIC I32
+S_sortcv_stacked(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SORTCV_STACKED        \
+        assert(a); assert(b)
+
+STATIC I32
+S_sortcv_xsub(pTHX_ SV * const a, SV * const b);
+# define PERL_ARGS_ASSERT_SORTCV_XSUB           \
+        assert(a); assert(b)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE I32
+S_amagic_cmp(pTHX_ SV * const str1, SV * const str2);
+#   define PERL_ARGS_ASSERT_AMAGIC_CMP          \
+        assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_amagic_cmp_desc(pTHX_ SV * const str1, SV * const str2);
+#   define PERL_ARGS_ASSERT_AMAGIC_CMP_DESC     \
+        assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_amagic_i_ncmp(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_AMAGIC_I_NCMP       \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_amagic_i_ncmp_desc(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_AMAGIC_I_NCMP_DESC  \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_amagic_ncmp(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_AMAGIC_NCMP         \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_amagic_ncmp_desc(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_AMAGIC_NCMP_DESC    \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_cmp_desc(pTHX_ SV * const str1, SV * const str2);
+#   define PERL_ARGS_ASSERT_CMP_DESC            \
+        assert(str1); assert(str2)
+
+PERL_STATIC_FORCE_INLINE void
+S_sortsv_flags_impl(pTHX_ SV **array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
+        __attribute__always_inline__;
+#   define PERL_ARGS_ASSERT_SORTSV_FLAGS_IMPL   \
+        assert(cmp)
+
+PERL_STATIC_INLINE I32
+S_sv_i_ncmp(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_SV_I_NCMP           \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_sv_i_ncmp_desc(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_SV_I_NCMP_DESC      \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_sv_ncmp(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_SV_NCMP             \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+S_sv_ncmp_desc(pTHX_ SV * const a, SV * const b);
+#   define PERL_ARGS_ASSERT_SV_NCMP_DESC        \
+        assert(a); assert(b)
+
+#   if defined(USE_LOCALE_COLLATE)
+PERL_STATIC_INLINE I32
+S_amagic_cmp_locale(pTHX_ SV * const str1, SV * const str2);
+#     define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \
+        assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_amagic_cmp_locale_desc(pTHX_ SV * const str1, SV * const str2);
+#     define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE_DESC \
+        assert(str1); assert(str2)
+
+PERL_STATIC_INLINE I32
+S_cmp_locale_desc(pTHX_ SV * const str1, SV * const str2);
+#     define PERL_ARGS_ASSERT_CMP_LOCALE_DESC   \
+        assert(str1); assert(str2)
+
+#   endif /* defined(USE_LOCALE_COLLATE) */
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_PP_SORT_C) */
 #if defined(PERL_IN_PP_SYS_C)
-STATIC OP*	S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
-#define PERL_ARGS_ASSERT_DOFORM	\
-	assert(cv); assert(gv)
-STATIC SV *	S_space_join_names_mortal(pTHX_ char *const *array);
-#define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
+STATIC OP *
+S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
+# define PERL_ARGS_ASSERT_DOFORM                \
+        assert(cv); assert(gv)
+
+STATIC SV *
+S_space_join_names_mortal(pTHX_ char * const *array);
+# define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
+
+# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+STATIC int
+S_dooneliner(pTHX_ const char *cmd, const char *filename)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_DOONELINER          \
+        assert(cmd); assert(filename)
+
+# endif
+#endif /* defined(PERL_IN_PP_SYS_C) */
+#if defined(PERL_IN_REGCOMP_ANY)
+PERL_CALLCONV void
+Perl_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV **invlist)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \
+        assert(pRExC_state); assert(invlist)
+
+PERL_CALLCONV regnode *
+Perl_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \
+        assert(pRExC_state); assert(source)
+
+PERL_CALLCONV SV *
+Perl_get_ANYOFHbbm_contents(pTHX_ const regnode *n)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_ANYOFHBBM_CONTENTS \
+        assert(n)
+
+PERL_CALLCONV SV *
+Perl_get_ANYOFM_contents(pTHX_ const regnode *n)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS   \
+        assert(n)
+
+PERL_CALLCONV bool
+Perl_is_ssc_worth_it(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT       \
+        assert(pRExC_state); assert(ssc)
+
+PERL_CALLCONV U32
+Perl_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan, UV *min_subtract, bool *unfolded_multi_char, U32 flags, regnode *val, U32 depth)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_JOIN_EXACT            \
+        assert(pRExC_state); assert(scan); assert(min_subtract); assert(unfolded_multi_char)
+
+PERL_CALLCONV I32
+Perl_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAKE_TRIE             \
+        assert(pRExC_state); assert(startbranch); assert(first); assert(last); \
+        assert(tail)
+
+PERL_CALLCONV void
+Perl_populate_anyof_bitmap_from_invlist(pTHX_ regnode *node, SV **invlist_ptr)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_POPULATE_ANYOF_BITMAP_FROM_INVLIST \
+        assert(node); assert(invlist_ptr)
+
+PERL_CALLCONV U32
+Perl_reg_add_data(RExC_state_t * const pRExC_state, const char * const s, const U32 n)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_REG_ADD_DATA          \
+        assert(pRExC_state); assert(s)
+
+PERL_CALLCONV void
+Perl_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SCAN_COMMIT           \
+        assert(pRExC_state); assert(data); assert(minlenp)
+
+PERL_CALLCONV void
+Perl_set_ANYOF_arg(pTHX_ RExC_state_t * const pRExC_state, regnode * const node, SV * const cp_list, SV * const runtime_defns, SV * const only_utf8_locale_list)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SET_ANYOF_ARG         \
+        assert(pRExC_state); assert(node)
+
+PERL_CALLCONV void
+Perl_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SSC_FINALIZE          \
+        assert(pRExC_state); assert(ssc)
+
+PERL_CALLCONV void
+Perl_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SSC_INIT              \
+        assert(pRExC_state); assert(ssc)
+
+PERL_CALLCONV SSize_t
+Perl_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_STUDY_CHUNK           \
+        assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); \
+        assert(last)
+
+# if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING)
+STATIC void
+S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 depth);
+#   define PERL_ARGS_ASSERT_DUMP_TRIE           \
+        assert(trie); assert(revcharmap)
+
+STATIC void
+S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
+#   define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST \
+        assert(trie); assert(revcharmap)
+
+STATIC void
+S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap, AV *revcharmap, U32 next_alloc, U32 depth);
+#   define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE \
+        assert(trie); assert(revcharmap)
+
+# endif /* defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE SV *
+S_invlist_contents(pTHX_ SV * const invlist, const bool traditional_style)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_CONTENTS    \
+        assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_highest_range_start(SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_HIGHEST_RANGE_START \
+        assert(invlist)
+
+PERL_STATIC_INLINE bool
+S_invlist_is_iterating(const SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \
+        assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_lowest(SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_LOWEST      \
+        assert(invlist)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGCOMP_ANY) */
+#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
+PERL_CALLCONV SV *
+Perl_invlist_clone(pTHX_ SV * const invlist, SV *newlist);
+# define PERL_ARGS_ASSERT_INVLIST_CLONE         \
+        assert(invlist)
+
 #endif
 #if defined(PERL_IN_REGCOMP_C)
-STATIC void	S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist);
-#define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS	\
-	assert(pRExC_state); assert(invlist)
-STATIC U32	S_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADD_DATA	\
-	assert(pRExC_state); assert(s)
-
-STATIC AV*	S_add_multi_match(pTHX_ AV* multi_char_matches, SV* multi_string, const STRLEN cp_count);
-#define PERL_ARGS_ASSERT_ADD_MULTI_MATCH	\
-	assert(multi_string)
-STATIC void	S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size);
-#define PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE	\
-	assert(pRExC_state)
-STATIC REGEXP*	S_compile_wildcard(pTHX_ const char * subpattern, const STRLEN len, const bool ignore_case)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_COMPILE_WILDCARD	\
-	assert(subpattern)
-
-STATIC U8	S_compute_EXACTish(RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_COMPUTE_EXACTISH	\
-	assert(pRExC_state)
-STATIC regnode *	S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth);
-#define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE	\
-	assert(pRExC_state); assert(source)
-STATIC int	S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_EDIT_DISTANCE	\
-	assert(src); assert(tgt)
-
-STATIC I32	S_execute_wildcard(pTHX_ REGEXP * const prog, char* stringarg, char* strend, char* strbeg, SSize_t minend, SV* screamer, U32 nosave);
-#define PERL_ARGS_ASSERT_EXECUTE_WILDCARD	\
-	assert(prog); assert(stringarg); assert(strend); assert(strbeg); assert(screamer)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE Size_t	S_find_first_differing_byte_pos(const U8 * s1, const U8 * s2, const Size_t max);
-#define PERL_ARGS_ASSERT_FIND_FIRST_DIFFERING_BYTE_POS	\
-	assert(s1); assert(s2)
-#endif
-STATIC SV *	S_get_ANYOFM_contents(pTHX_ const regnode * n)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS	\
-	assert(n)
-
-STATIC SV*	S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass* const node);
-#define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC	\
-	assert(pRExC_state); assert(node)
-STATIC U32	S_get_quantifier_value(pTHX_ RExC_state_t *pRExC_state, const char * start, const char * end);
-#define PERL_ARGS_ASSERT_GET_QUANTIFIER_VALUE	\
-	assert(pRExC_state); assert(start); assert(end)
-STATIC bool	S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode_offset* nodep, UV *code_point_p, int* cp_count, I32 *flagp, const bool strict, const U32 depth);
-#define PERL_ARGS_ASSERT_GROK_BSLASH_N	\
-	assert(pRExC_state); assert(flagp)
-STATIC regnode_offset	S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, char * backref_parse_start, char ch);
-#define PERL_ARGS_ASSERT_HANDLE_NAMED_BACKREF	\
-	assert(pRExC_state); assert(flagp); assert(backref_parse_start)
-STATIC bool	S_handle_names_wildcard(pTHX_ const char * wname, const STRLEN wname_len, SV ** prop_definition, AV ** strings);
-#define PERL_ARGS_ASSERT_HANDLE_NAMES_WILDCARD	\
-	assert(wname); assert(prop_definition); assert(strings)
-STATIC int	S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, const char* const s, char ** updated_parse_ptr, AV** posix_warnings, const bool check_only);
-#define PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX	\
-	assert(pRExC_state); assert(s)
-STATIC regnode_offset	S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** return_invlist, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS	\
-	assert(pRExC_state); assert(flagp)
-STATIC SV *	S_handle_user_defined_property(pTHX_ const char * name, const STRLEN name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, SV* contents, bool *user_defined_ptr, SV * msg, const STRLEN level);
-#define PERL_ARGS_ASSERT_HANDLE_USER_DEFINED_PROPERTY	\
-	assert(name); assert(contents); assert(user_defined_ptr); assert(msg)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV*	S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_CONTENTS	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_invlist_is_iterating(const SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	S_invlist_lowest(SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_LOWEST	\
-	assert(invlist)
-#endif
-
-STATIC bool	S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc);
-#define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT	\
-	assert(pRExC_state); assert(ssc)
-STATIC U32	S_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan, UV *min_subtract, bool *unfolded_multi_char, U32 flags, regnode *val, U32 depth);
-#define PERL_ARGS_ASSERT_JOIN_EXACT	\
-	assert(pRExC_state); assert(scan); assert(min_subtract); assert(unfolded_multi_char)
-STATIC SV*	S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST	\
-	assert(pRExC_state); assert(node)
-
-STATIC I32	S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth);
-#define PERL_ARGS_ASSERT_MAKE_TRIE	\
-	assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail)
-STATIC void	S_nextchar(pTHX_ RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_NEXTCHAR	\
-	assert(pRExC_state)
-STATIC U8	S_optimize_regclass(pTHX_ RExC_state_t *pRExC_state, SV* cp_list, SV* only_utf8_locale_list, SV* upper_latin1_only_utf8_matches, const U32 has_runtime_dependency, const U32 posixl, U8 * anyof_flags, bool * invert, regnode_offset * ret, I32 *flagp);
-#define PERL_ARGS_ASSERT_OPTIMIZE_REGCLASS	\
-	assert(pRExC_state); assert(anyof_flags); assert(invert); assert(ret); assert(flagp)
-STATIC void	S_output_posix_warnings(pTHX_ RExC_state_t *pRExC_state, AV* posix_warnings);
-#define PERL_ARGS_ASSERT_OUTPUT_POSIX_WARNINGS	\
-	assert(pRExC_state); assert(posix_warnings)
-STATIC void	S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS	\
-	assert(pRExC_state)
-STATIC SV *	S_parse_uniprop_string(pTHX_ const char * const name, Size_t name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, AV ** strings, bool * user_defined_ptr, SV * msg, const STRLEN level);
-#define PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING	\
-	assert(name); assert(user_defined_ptr); assert(msg)
-STATIC void	S_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** invlist_ptr);
-#define PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST	\
-	assert(node); assert(invlist_ptr)
-STATIC void	S_rck_elide_nothing(pTHX_ regnode *node);
-#define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING	\
-	assert(node)
-PERL_STATIC_NO_RET void	S_re_croak(pTHX_ bool utf8, const char* pat, ...)
-			__attribute__noreturn__
-			__attribute__format__(__printf__,pTHX_2,pTHX_3);
-#define PERL_ARGS_ASSERT_RE_CROAK	\
-	assert(pat)
-
-STATIC regnode_offset	S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_REG	\
-	assert(pRExC_state); assert(flagp)
-STATIC regnode_offset	S_reg2Lanode(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2);
-#define PERL_ARGS_ASSERT_REG2LANODE	\
-	assert(pRExC_state)
-STATIC regnode_offset	S_reg_la_NOTHING(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type);
-#define PERL_ARGS_ASSERT_REG_LA_NOTHING	\
-	assert(pRExC_state); assert(type)
-STATIC regnode_offset	S_reg_la_OPFAIL(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type);
-#define PERL_ARGS_ASSERT_REG_LA_OPFAIL	\
-	assert(pRExC_state); assert(type)
-STATIC regnode_offset	S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op);
-#define PERL_ARGS_ASSERT_REG_NODE	\
-	assert(pRExC_state)
-STATIC SV *	S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags);
-#define PERL_ARGS_ASSERT_REG_SCAN_NAME	\
-	assert(pRExC_state)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE char *	S_reg_skipcomment(RExC_state_t *pRExC_state, char * p);
-#define PERL_ARGS_ASSERT_REG_SKIPCOMMENT	\
-	assert(pRExC_state); assert(p)
-#endif
-STATIC regnode_offset	S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg);
-#define PERL_ARGS_ASSERT_REGANODE	\
-	assert(pRExC_state)
-STATIC regnode_offset	S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_REGATOM	\
-	assert(pRExC_state); assert(flagp)
-STATIC regnode_offset	S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth);
-#define PERL_ARGS_ASSERT_REGBRANCH	\
-	assert(pRExC_state); assert(flagp)
-STATIC regnode_offset	S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, const bool stop_at_1, bool allow_multi_fold, const bool silence_non_portable, const bool strict, bool optimizable, SV** ret_invlist);
-#define PERL_ARGS_ASSERT_REGCLASS	\
-	assert(pRExC_state); assert(flagp)
-STATIC unsigned int	S_regex_set_precedence(const U8 my_operator)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGEX_SET_PRECEDENCE
-
-STATIC void	S_reginsert(pTHX_ RExC_state_t *pRExC_state, const U8 op, const regnode_offset operand, const U32 depth);
-#define PERL_ARGS_ASSERT_REGINSERT	\
-	assert(pRExC_state)
-STATIC regnode_offset	S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const STRLEN extra_len);
-#define PERL_ARGS_ASSERT_REGNODE_GUTS	\
-	assert(pRExC_state)
-STATIC regnode_offset	S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
-#define PERL_ARGS_ASSERT_REGPIECE	\
-	assert(pRExC_state); assert(flagp)
-STATIC regnode_offset	S_regpnode(pTHX_ RExC_state_t *pRExC_state, U8 op, SV * arg);
-#define PERL_ARGS_ASSERT_REGPNODE	\
-	assert(pRExC_state); assert(arg)
-STATIC bool	S_regtail(pTHX_ RExC_state_t * pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGTAIL	\
-	assert(pRExC_state); assert(p); assert(val)
-
-STATIC void	S_scan_commit(pTHX_ const RExC_state_t *pRExC_state, struct scan_data_t *data, SSize_t *minlenp, int is_inf);
-#define PERL_ARGS_ASSERT_SCAN_COMMIT	\
-	assert(pRExC_state); assert(data); assert(minlenp)
-STATIC void	S_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state, regnode* const node, SV* const cp_list, SV* const runtime_defns, SV* const only_utf8_locale_list);
-#define PERL_ARGS_ASSERT_SET_ANYOF_ARG	\
-	assert(pRExC_state); assert(node)
-STATIC void	S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx);
-#define PERL_ARGS_ASSERT_SET_REGEX_PV	\
-	assert(pRExC_state); assert(Rx)
-STATIC void	S_skip_to_be_ignored_text(pTHX_ RExC_state_t *pRExC_state, char ** p, const bool force_to_xmod);
-#define PERL_ARGS_ASSERT_SKIP_TO_BE_IGNORED_TEXT	\
-	assert(pRExC_state); assert(p)
-STATIC void	S_ssc_add_range(pTHX_ regnode_ssc *ssc, UV const start, UV const end);
-#define PERL_ARGS_ASSERT_SSC_ADD_RANGE	\
-	assert(ssc)
-STATIC void	S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *and_with);
-#define PERL_ARGS_ASSERT_SSC_AND	\
-	assert(pRExC_state); assert(ssc); assert(and_with)
-STATIC void	S_ssc_anything(pTHX_ regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_ANYTHING	\
-	assert(ssc)
-STATIC void	S_ssc_clear_locale(regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE	\
-	assert(ssc)
-STATIC void	S_ssc_cp_and(pTHX_ regnode_ssc *ssc, UV const cp);
-#define PERL_ARGS_ASSERT_SSC_CP_AND	\
-	assert(ssc)
-STATIC void	S_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_FINALIZE	\
-	assert(pRExC_state); assert(ssc)
-STATIC void	S_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc);
-#define PERL_ARGS_ASSERT_SSC_INIT	\
-	assert(pRExC_state); assert(ssc)
-STATIC void	S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
-#define PERL_ARGS_ASSERT_SSC_INTERSECTION	\
-	assert(ssc); assert(invlist)
-STATIC int	S_ssc_is_anything(const regnode_ssc *ssc)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SSC_IS_ANYTHING	\
-	assert(ssc)
-
-STATIC int	S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT	\
-	assert(pRExC_state); assert(ssc)
-
-STATIC void	S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *or_with);
-#define PERL_ARGS_ASSERT_SSC_OR	\
-	assert(pRExC_state); assert(ssc); assert(or_with)
-STATIC void	S_ssc_union(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
-#define PERL_ARGS_ASSERT_SSC_UNION	\
-	assert(ssc); assert(invlist)
-STATIC SSize_t	S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok);
-#define PERL_ARGS_ASSERT_STUDY_CHUNK	\
-	assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
-PERL_CALLCONV void	Perl__invlist_dump(pTHX_ PerlIO *file, I32 level, const char* const indent, SV* const invlist);
-#define PERL_ARGS_ASSERT__INVLIST_DUMP	\
-	assert(file); assert(indent); assert(invlist)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SV*	S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_extend(pTHX_ SV* const invlist, const UV len);
-#define PERL_ARGS_ASSERT_INVLIST_EXTEND	\
-	assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	S_invlist_highest(SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_HIGHEST	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset);
-#define PERL_ARGS_ASSERT_INVLIST_SET_LEN	\
-	assert(invlist)
-#endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV SV*	Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__ADD_RANGE_TO_INVLIST
-
-/* PERL_CALLCONV void	_invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i); */
-#define PERL_ARGS_ASSERT__INVLIST_INTERSECTION
-PERL_CALLCONV void	Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** i);
-#define PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND	\
-	assert(b); assert(i)
-PERL_CALLCONV void	Perl__invlist_invert(pTHX_ SV* const invlist);
-#define PERL_ARGS_ASSERT__INVLIST_INVERT	\
-	assert(invlist)
-/* PERL_CALLCONV void	_invlist_subtract(pTHX_ SV* const a, SV* const b, SV** result); */
-#define PERL_ARGS_ASSERT__INVLIST_SUBTRACT
-/* PERL_CALLCONV void	_invlist_union(pTHX_ SV* const a, SV* const b, SV** output); */
-#define PERL_ARGS_ASSERT__INVLIST_UNION
-PERL_CALLCONV void	Perl__invlist_union_maybe_complement_2nd(pTHX_ SV* const a, SV* const b, const bool complement_b, SV** output);
-#define PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND	\
-	assert(b); assert(output)
-PERL_CALLCONV SV*	Perl__new_invlist(pTHX_ IV initial_size)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__NEW_INVLIST
-
-PERL_CALLCONV SV*	Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0, UV** other_elements_ptr)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST	\
-	assert(other_elements_ptr)
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV const char *	Perl_form_alien_digit_msg(pTHX_ const U8 which, const STRLEN valids_len, const char * const first_bad, const char * const send, const bool UTF, const bool braced)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FORM_ALIEN_DIGIT_MSG	\
-	assert(first_bad); assert(send)
-
-PERL_CALLCONV bool	Perl_grok_bslash_c(pTHX_ const char source, U8 * result, const char** message, U32 * packed_warn)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_BSLASH_C	\
-	assert(result); assert(message)
-
-PERL_CALLCONV bool	Perl_grok_bslash_o(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_BSLASH_O	\
-	assert(s); assert(send); assert(uv); assert(message)
-
-PERL_CALLCONV bool	Perl_grok_bslash_x(pTHX_ char** s, const char* const send, UV* uv, const char** message, U32 * packed_warn, const bool strict, const bool allow_UV_MAX, const bool utf8)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GROK_BSLASH_X	\
-	assert(s); assert(send); assert(uv); assert(message)
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV const char *	Perl_form_cp_too_large_msg(pTHX_ const U8 which, const char * string, const Size_t len, const UV cp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FORM_CP_TOO_LARGE_MSG
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE STRLEN*	S_get_invlist_iter_addr(SV* invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_iterfinish(SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_ITERFINISH	\
-	assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_invlist_iterinit(SV* invlist);
-#define PERL_ARGS_ASSERT_INVLIST_ITERINIT	\
-	assert(invlist)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_invlist_iternext(SV* invlist, UV* start, UV* end)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT	\
-	assert(invlist); assert(start); assert(end)
-#endif
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV bool	Perl__invlistEQ(pTHX_ SV* const a, SV* const b, const bool complement_b);
-#define PERL_ARGS_ASSERT__INVLISTEQ	\
-	assert(a); assert(b)
-PERL_CALLCONV SV*	Perl__new_invlist_C_array(pTHX_ const UV* const list)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY	\
-	assert(list)
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE const char *	S_get_regex_charset_name(const U32 flags, STRLEN* const lenp);
-#define PERL_ARGS_ASSERT_GET_REGEX_CHARSET_NAME	\
-	assert(lenp)
-#endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-PERL_CALLCONV int	Perl_re_printf(pTHX_ const char *fmt, ...)
-			__attribute__format__(__printf__,pTHX_1,pTHX_2);
-#define PERL_ARGS_ASSERT_RE_PRINTF	\
-	assert(fmt)
-
-PERL_CALLCONV void	Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode* o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state);
-#define PERL_ARGS_ASSERT_REGPROP	\
-	assert(sv); assert(o)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)	 || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)		 || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)		 || defined(PERL_IN_DOOP_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S__invlist_contains_cp(SV* const invlist, const UV cp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV	S__invlist_len(SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_LEN	\
-	assert(invlist)
-#endif
-
-PERL_CALLCONV SSize_t	Perl__invlist_search(SV* const invlist, const UV cp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_SEARCH	\
-	assert(invlist)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool*	S_get_invlist_offset_addr(SV* invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE UV*	S_invlist_array(SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_ARRAY	\
-	assert(invlist)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_is_invlist(const SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_INVLIST
-#endif
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV bool	Perl_is_grapheme(pTHX_ const U8 * strbeg, const U8 * s, const U8 *strend, const UV cp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_GRAPHEME	\
-	assert(strbeg); assert(s); assert(strend)
-
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV UV	Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags);
-#define PERL_ARGS_ASSERT__TO_FOLD_LATIN1	\
-	assert(p); assert(lenp)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
-PERL_CALLCONV SV*	Perl_invlist_clone(pTHX_ SV* const invlist, SV* newlist);
-#define PERL_ARGS_ASSERT_INVLIST_CLONE	\
-	assert(invlist)
+STATIC AV *
+S_add_multi_match(pTHX_ AV *multi_char_matches, SV *multi_string, const STRLEN cp_count);
+# define PERL_ARGS_ASSERT_ADD_MULTI_MATCH       \
+        assert(multi_string)
+
+STATIC void
+S_change_engine_size(pTHX_ RExC_state_t *pRExC_state, const Ptrdiff_t size);
+# define PERL_ARGS_ASSERT_CHANGE_ENGINE_SIZE    \
+        assert(pRExC_state)
+
+STATIC REGEXP *
+S_compile_wildcard(pTHX_ const char *subpattern, const STRLEN len, const bool ignore_case)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_COMPILE_WILDCARD      \
+        assert(subpattern)
+
+STATIC U8
+S_compute_EXACTish(RExC_state_t *pRExC_state);
+# define PERL_ARGS_ASSERT_COMPUTE_EXACTISH      \
+        assert(pRExC_state)
+
+STATIC int
+S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_EDIT_DISTANCE         \
+        assert(src); assert(tgt)
+
+STATIC I32
+S_execute_wildcard(pTHX_ REGEXP * const prog, char *stringarg, char *strend, char *strbeg, SSize_t minend, SV *screamer, U32 nosave);
+# define PERL_ARGS_ASSERT_EXECUTE_WILDCARD      \
+        assert(prog); assert(stringarg); assert(strend); assert(strbeg); \
+        assert(screamer)
+
+STATIC U32
+S_get_quantifier_value(pTHX_ RExC_state_t *pRExC_state, const char *start, const char *end);
+# define PERL_ARGS_ASSERT_GET_QUANTIFIER_VALUE  \
+        assert(pRExC_state); assert(start); assert(end)
+
+STATIC bool
+S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode_offset *nodep, UV *code_point_p, int *cp_count, I32 *flagp, const bool strict, const U32 depth);
+# define PERL_ARGS_ASSERT_GROK_BSLASH_N         \
+        assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, char *backref_parse_start, char ch);
+# define PERL_ARGS_ASSERT_HANDLE_NAMED_BACKREF  \
+        assert(pRExC_state); assert(flagp); assert(backref_parse_start)
+
+STATIC bool
+S_handle_names_wildcard(pTHX_ const char *wname, const STRLEN wname_len, SV **prop_definition, AV **strings);
+# define PERL_ARGS_ASSERT_HANDLE_NAMES_WILDCARD \
+        assert(wname); assert(prop_definition); assert(strings)
+
+STATIC int
+S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, const char * const s, char **updated_parse_ptr, AV **posix_warnings, const bool check_only);
+# define PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX \
+        assert(pRExC_state); assert(s)
+
+STATIC regnode_offset
+S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV **return_invlist, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS     \
+        assert(pRExC_state); assert(flagp)
+
+STATIC SV *
+S_handle_user_defined_property(pTHX_ const char *name, const STRLEN name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, SV *contents, bool *user_defined_ptr, SV *msg, const STRLEN level);
+# define PERL_ARGS_ASSERT_HANDLE_USER_DEFINED_PROPERTY \
+        assert(name); assert(contents); assert(user_defined_ptr); assert(msg)
+
+STATIC void
+S_nextchar(pTHX_ RExC_state_t *pRExC_state);
+# define PERL_ARGS_ASSERT_NEXTCHAR              \
+        assert(pRExC_state)
+
+STATIC U8
+S_optimize_regclass(pTHX_ RExC_state_t *pRExC_state, SV *cp_list, SV *only_utf8_locale_list, SV *upper_latin1_only_utf8_matches, const U32 has_runtime_dependency, const U32 posixl, U8 *anyof_flags, bool *invert, regnode_offset *ret, I32 *flagp);
+# define PERL_ARGS_ASSERT_OPTIMIZE_REGCLASS     \
+        assert(pRExC_state); assert(anyof_flags); assert(invert); assert(ret); \
+        assert(flagp)
+
+STATIC void
+S_output_posix_warnings(pTHX_ RExC_state_t *pRExC_state, AV *posix_warnings);
+# define PERL_ARGS_ASSERT_OUTPUT_POSIX_WARNINGS \
+        assert(pRExC_state); assert(posix_warnings)
+
+STATIC void
+S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state);
+# define PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS \
+        assert(pRExC_state)
+
+STATIC SV *
+S_parse_uniprop_string(pTHX_ const char * const name, Size_t name_len, const bool is_utf8, const bool to_fold, const bool runtime, const bool deferrable, AV **strings, bool *user_defined_ptr, SV *msg, const STRLEN level);
+# define PERL_ARGS_ASSERT_PARSE_UNIPROP_STRING  \
+        assert(name); assert(user_defined_ptr); assert(msg)
+
+PERL_STATIC_NO_RET void
+S_re_croak(pTHX_ bool utf8, const char *pat, ...)
+        __attribute__noreturn__
+        __attribute__format__(__printf__,pTHX_2,pTHX_3);
+# define PERL_ARGS_ASSERT_RE_CROAK              \
+        assert(pat)
+
+STATIC regnode_offset
+S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_REG                   \
+        assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_reg1node(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg);
+# define PERL_ARGS_ASSERT_REG1NODE              \
+        assert(pRExC_state)
+
+STATIC regnode_offset
+S_reg2node(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2);
+# define PERL_ARGS_ASSERT_REG2NODE              \
+        assert(pRExC_state)
+
+STATIC regnode_offset
+S_reg_la_NOTHING(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type);
+# define PERL_ARGS_ASSERT_REG_LA_NOTHING        \
+        assert(pRExC_state); assert(type)
+
+STATIC regnode_offset
+S_reg_la_OPFAIL(pTHX_ RExC_state_t *pRExC_state, U32 flags, const char *type);
+# define PERL_ARGS_ASSERT_REG_LA_OPFAIL         \
+        assert(pRExC_state); assert(type)
+
+STATIC regnode_offset
+S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op);
+# define PERL_ARGS_ASSERT_REG_NODE              \
+        assert(pRExC_state)
+
+STATIC SV *
+S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags);
+# define PERL_ARGS_ASSERT_REG_SCAN_NAME         \
+        assert(pRExC_state)
+
+STATIC regnode_offset
+S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_REGATOM               \
+        assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth);
+# define PERL_ARGS_ASSERT_REGBRANCH             \
+        assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, const bool stop_at_1, bool allow_multi_fold, const bool silence_non_portable, const bool strict, bool optimizable, SV **ret_invlist);
+# define PERL_ARGS_ASSERT_REGCLASS              \
+        assert(pRExC_state); assert(flagp)
+
+STATIC unsigned int
+S_regex_set_precedence(const U8 my_operator)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGEX_SET_PRECEDENCE
+
+STATIC void
+S_reginsert(pTHX_ RExC_state_t *pRExC_state, const U8 op, const regnode_offset operand, const U32 depth);
+# define PERL_ARGS_ASSERT_REGINSERT             \
+        assert(pRExC_state)
+
+STATIC regnode_offset
+S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const STRLEN extra_len);
+# define PERL_ARGS_ASSERT_REGNODE_GUTS          \
+        assert(pRExC_state)
+
+STATIC regnode_offset
+S_regpiece(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth);
+# define PERL_ARGS_ASSERT_REGPIECE              \
+        assert(pRExC_state); assert(flagp)
+
+STATIC regnode_offset
+S_regpnode(pTHX_ RExC_state_t *pRExC_state, U8 op, SV *arg);
+# define PERL_ARGS_ASSERT_REGPNODE              \
+        assert(pRExC_state); assert(arg)
+
+STATIC bool
+S_regtail(pTHX_ RExC_state_t *pRExC_state, const regnode_offset p, const regnode_offset val, const U32 depth)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGTAIL               \
+        assert(pRExC_state); assert(p); assert(val)
+
+STATIC void
+S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx);
+# define PERL_ARGS_ASSERT_SET_REGEX_PV          \
+        assert(pRExC_state); assert(Rx)
+
+STATIC void
+S_skip_to_be_ignored_text(pTHX_ RExC_state_t *pRExC_state, char **p, const bool force_to_xmod);
+# define PERL_ARGS_ASSERT_SKIP_TO_BE_IGNORED_TEXT \
+        assert(pRExC_state); assert(p)
+
+# if defined(DEBUGGING)
+STATIC regnode_offset
+S_regnode_guts_debug(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len);
+#   define PERL_ARGS_ASSERT_REGNODE_GUTS_DEBUG  \
+        assert(pRExC_state)
+
+STATIC bool
+S_regtail_study(pTHX_ RExC_state_t *pRExC_state, regnode_offset p, const regnode_offset val, U32 depth)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_REGTAIL_STUDY       \
+        assert(pRExC_state); assert(p); assert(val)
+
+#   if defined(ENABLE_REGEX_SETS_DEBUGGING)
+STATIC void
+S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV *stack, const IV fence, AV *fence_stack);
+#     define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES \
+        assert(pRExC_state); assert(stack); assert(fence_stack)
+
+#   endif
+# endif /* defined(DEBUGGING) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE Size_t
+S_find_first_differing_byte_pos(const U8 *s1, const U8 *s2, const Size_t max);
+#   define PERL_ARGS_ASSERT_FIND_FIRST_DIFFERING_BYTE_POS \
+        assert(s1); assert(s2)
+
+PERL_STATIC_INLINE char *
+S_reg_skipcomment(RExC_state_t *pRExC_state, char *p);
+#   define PERL_ARGS_ASSERT_REG_SKIPCOMMENT     \
+        assert(pRExC_state); assert(p)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGCOMP_C) */
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
+PERL_CALLCONV void
+Perl_populate_bitmap_from_invlist(pTHX_ SV *invlist, const UV offset, const U8 *bitmap, const Size_t len)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_POPULATE_BITMAP_FROM_INVLIST \
+        assert(invlist); assert(bitmap)
+
+PERL_CALLCONV void
+Perl_populate_invlist_from_bitmap(pTHX_ const U8 *bitmap, const Size_t bitmap_len, SV **invlist, const UV offset)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_POPULATE_INVLIST_FROM_BITMAP \
+        assert(bitmap); assert(invlist)
+
+#endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C) */
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+    defined(PERL_IN_TOKE_C)
+PERL_CALLCONV bool
+Perl_is_grapheme(pTHX_ const U8 *strbeg, const U8 *s, const U8 *strend, const UV cp)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_IS_GRAPHEME           \
+        assert(strbeg); assert(s); assert(strend)
+
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
+    defined(PERL_IN_UTF8_C)
+PERL_CALLCONV UV
+Perl__to_fold_latin1(const U8 c, U8 *p, STRLEN *lenp, const unsigned int flags);
+# define PERL_ARGS_ASSERT__TO_FOLD_LATIN1       \
+        assert(p); assert(lenp)
+
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-PERL_CALLCONV bool	Perl_regcurly(const char *s, const char *e, const char * result[5])
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGCURLY	\
-	assert(s); assert(e)
+PERL_CALLCONV bool
+Perl_regcurly(const char *s, const char *e, const char *result[5])
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGCURLY              \
+        assert(s); assert(e)
+
+#endif
+#if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
+STATIC U8
+S_put_charclass_bitmap_innards(pTHX_ SV *sv, char *bitmap, SV *nonbitmap_invlist, SV *only_utf8_locale_invlist, const regnode * const node, const U8 flags, const bool force_as_is_display);
+# define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \
+        assert(sv)
+
+STATIC SV *
+S_put_charclass_bitmap_innards_common(pTHX_ SV *invlist, SV *posixes, SV *only_utf8, SV *not_utf8, SV *only_utf8_locale, const bool invert);
+# define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON \
+        assert(invlist)
+
+STATIC void
+S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV *invlist);
+# define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST \
+        assert(sv); assert(invlist)
+
+STATIC void
+S_put_code_point(pTHX_ SV *sv, UV c);
+# define PERL_ARGS_ASSERT_PUT_CODE_POINT        \
+        assert(sv)
+
+STATIC void
+S_put_range(pTHX_ SV *sv, UV start, const UV end, const bool allow_literals);
+# define PERL_ARGS_ASSERT_PUT_RANGE             \
+        assert(sv)
+
+STATIC void
+S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
+# define PERL_ARGS_ASSERT_REGDUMP_EXTFLAGS
+
+STATIC void
+S_regdump_intflags(pTHX_ const char *lead, const U32 flags);
+# define PERL_ARGS_ASSERT_REGDUMP_INTFLAGS
+
+#endif /* defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING) */
+#if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
+STATIC void
+S__append_range_to_invlist(pTHX_ SV * const invlist, const UV start, const UV end);
+# define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
+        assert(invlist)
+
+STATIC void
+S_initialize_invlist_guts(pTHX_ SV *invlist, const Size_t initial_size);
+# define PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS \
+        assert(invlist)
+
+STATIC void
+S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src);
+# define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC \
+        assert(dest); assert(src)
+
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE UV *
+S__invlist_array_init(SV * const invlist, const bool will_have_0)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \
+        assert(invlist)
+
+PERL_STATIC_INLINE IV *
+S_get_invlist_previous_index_addr(SV *invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \
+        assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_clear(pTHX_ SV *invlist);
+#   define PERL_ARGS_ASSERT_INVLIST_CLEAR       \
+        assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_max(const SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_MAX         \
+        assert(invlist)
+
+PERL_STATIC_INLINE IV
+S_invlist_previous_index(SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \
+        assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_set_previous_index(SV * const invlist, const IV index);
+#   define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \
+        assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_trim(SV *invlist);
+#   define PERL_ARGS_ASSERT_INVLIST_TRIM        \
+        assert(invlist)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD) */
+#if defined(PERL_IN_REGCOMP_STUDY_C)
+STATIC SV *
+S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass * const node);
+# define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \
+        assert(pRExC_state); assert(node)
+
+STATIC SV *
+S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST   \
+        assert(pRExC_state); assert(node)
+
+STATIC void
+S_rck_elide_nothing(pTHX_ regnode *node);
+# define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING     \
+        assert(node)
+
+STATIC void
+S_ssc_add_range(pTHX_ regnode_ssc *ssc, UV const start, UV const end);
+# define PERL_ARGS_ASSERT_SSC_ADD_RANGE         \
+        assert(ssc)
+
+STATIC void
+S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *and_with);
+# define PERL_ARGS_ASSERT_SSC_AND               \
+        assert(pRExC_state); assert(ssc); assert(and_with)
+
+STATIC void
+S_ssc_anything(pTHX_ regnode_ssc *ssc);
+# define PERL_ARGS_ASSERT_SSC_ANYTHING          \
+        assert(ssc)
+
+STATIC void
+S_ssc_clear_locale(regnode_ssc *ssc);
+# define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE      \
+        assert(ssc)
+
+STATIC void
+S_ssc_cp_and(pTHX_ regnode_ssc *ssc, UV const cp);
+# define PERL_ARGS_ASSERT_SSC_CP_AND            \
+        assert(ssc)
+
+STATIC void
+S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV * const invlist, const bool invert_2nd);
+# define PERL_ARGS_ASSERT_SSC_INTERSECTION      \
+        assert(ssc); assert(invlist)
+
+STATIC int
+S_ssc_is_anything(const regnode_ssc *ssc)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SSC_IS_ANYTHING       \
+        assert(ssc)
+
+STATIC int
+S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnode_ssc *ssc)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT \
+        assert(pRExC_state); assert(ssc)
+
+STATIC void
+S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *or_with);
+# define PERL_ARGS_ASSERT_SSC_OR                \
+        assert(pRExC_state); assert(ssc); assert(or_with)
+
+STATIC void
+S_ssc_union(pTHX_ regnode_ssc *ssc, SV * const invlist, const bool invert_2nd);
+# define PERL_ARGS_ASSERT_SSC_UNION             \
+        assert(ssc); assert(invlist)
+
+STATIC void
+S_unwind_scan_frames(pTHX_ const void *p);
+# define PERL_ARGS_ASSERT_UNWIND_SCAN_FRAMES    \
+        assert(p)
 
-#endif
+#endif /* defined(PERL_IN_REGCOMP_STUDY_C) */
 #if defined(PERL_IN_REGEXEC_C)
-STATIC LB_enum	S_advance_one_LB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADVANCE_ONE_LB	\
-	assert(curpos); assert(strend)
-
-STATIC SB_enum	S_advance_one_SB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADVANCE_ONE_SB	\
-	assert(curpos); assert(strend)
-
-STATIC WB_enum	S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, const bool utf8_target, const bool skip_Extend_Format)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ADVANCE_ONE_WB	\
-	assert(curpos); assert(strend)
-
-STATIC GCB_enum	S_backup_one_GCB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BACKUP_ONE_GCB	\
-	assert(strbeg); assert(curpos)
-
-STATIC LB_enum	S_backup_one_LB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BACKUP_ONE_LB	\
-	assert(strbeg); assert(curpos)
-
-STATIC SB_enum	S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BACKUP_ONE_SB	\
-	assert(strbeg); assert(curpos)
-
-STATIC WB_enum	S_backup_one_WB(pTHX_ WB_enum * previous, const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_BACKUP_ONE_WB	\
-	assert(previous); assert(strbeg); assert(curpos)
-
-STATIC char*	S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_BYCLASS	\
-	assert(prog); assert(c); assert(s); assert(strend)
-
-STATIC U8 *	S_find_next_masked(U8 * s, const U8 * send, const U8 byte, const U8 mask)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_NEXT_MASKED	\
-	assert(s); assert(send)
-
-STATIC U8 *	S_find_span_end(U8* s, const U8 * send, const U8 span_byte)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_SPAN_END	\
-	assert(s); assert(send)
-
-STATIC U8 *	S_find_span_end_mask(U8 * s, const U8 * send, const U8 span_byte, const U8 mask)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_SPAN_END_MASK	\
-	assert(s); assert(send)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE I32	S_foldEQ_latin1_s2_folded(const char* a, const char* b, I32 len);
-#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1_S2_FOLDED	\
-	assert(a); assert(b)
-#endif
-STATIC bool	S_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISFOO_LC
-
-STATIC bool	S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character, const U8* e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISFOO_UTF8_LC	\
-	assert(character); assert(e)
-
-STATIC bool	S_isGCB(pTHX_ const GCB_enum before, const GCB_enum after, const U8 * const strbeg, const U8 * const curpos, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISGCB	\
-	assert(strbeg); assert(curpos)
-
-STATIC bool	S_isLB(pTHX_ LB_enum before, LB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISLB	\
-	assert(strbeg); assert(curpos); assert(strend)
-
-STATIC bool	S_isSB(pTHX_ SB_enum before, SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISSB	\
-	assert(strbeg); assert(curpos); assert(strend)
-
-STATIC bool	S_isWB(pTHX_ WB_enum previous, WB_enum before, WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISWB	\
-	assert(strbeg); assert(curpos); assert(strend)
-
-STATIC I32	S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED	\
-	assert(rex); assert(scan)
-
-STATIC void	S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p _pDEPTH);
-#define PERL_ARGS_ASSERT_REGCP_RESTORE	\
-	assert(rex); assert(maxopenparen_p)
-STATIC void	S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p _pDEPTH);
-#define PERL_ARGS_ASSERT_REGCPPOP	\
-	assert(rex); assert(maxopenparen_p)
-STATIC CHECKPOINT	S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen _pDEPTH);
-#define PERL_ARGS_ASSERT_REGCPPUSH	\
-	assert(rex)
-STATIC U8*	S_reghop3(U8 *s, SSize_t off, const U8 *lim)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGHOP3	\
-	assert(s); assert(lim)
-
-STATIC U8*	S_reghop4(U8 *s, SSize_t off, const U8 *llim, const U8 *rlim)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGHOP4	\
-	assert(s); assert(llim); assert(rlim)
-
-STATIC U8*	S_reghopmaybe3(U8 *s, SSize_t off, const U8 * const lim)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGHOPMAYBE3	\
-	assert(s); assert(lim)
-
-STATIC bool	S_reginclass(pTHX_ regexp * const prog, const regnode * const n, const U8 * const p, const U8 * const p_end, bool const utf8_target)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGINCLASS	\
-	assert(n); assert(p); assert(p_end)
-
-STATIC SSize_t	S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGMATCH	\
-	assert(reginfo); assert(startpos); assert(prog)
-
-STATIC I32	S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, char *loceol, regmatch_info *const reginfo, I32 max _pDEPTH)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGREPEAT	\
-	assert(prog); assert(startposp); assert(p); assert(loceol); assert(reginfo)
-
-STATIC bool	S_regtry(pTHX_ regmatch_info *reginfo, char **startposp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_REGTRY	\
-	assert(reginfo); assert(startposp)
-
-STATIC bool	S_to_byte_substr(pTHX_ regexp * prog);
-#define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR	\
-	assert(prog)
-STATIC void	S_to_utf8_substr(pTHX_ regexp * prog);
-#define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR	\
-	assert(prog)
-#endif
+STATIC LB_enum
+S_advance_one_LB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ADVANCE_ONE_LB        \
+        assert(curpos); assert(strend)
+
+STATIC SB_enum
+S_advance_one_SB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ADVANCE_ONE_SB        \
+        assert(curpos); assert(strend)
+
+STATIC WB_enum
+S_advance_one_WB(pTHX_ U8 **curpos, const U8 * const strend, const bool utf8_target, const bool skip_Extend_Format)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ADVANCE_ONE_WB        \
+        assert(curpos); assert(strend)
+
+STATIC GCB_enum
+S_backup_one_GCB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_BACKUP_ONE_GCB        \
+        assert(strbeg); assert(curpos)
+
+STATIC LB_enum
+S_backup_one_LB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_BACKUP_ONE_LB         \
+        assert(strbeg); assert(curpos)
+
+STATIC SB_enum
+S_backup_one_SB(pTHX_ const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_BACKUP_ONE_SB         \
+        assert(strbeg); assert(curpos)
+
+STATIC WB_enum
+S_backup_one_WB(pTHX_ WB_enum *previous, const U8 * const strbeg, U8 **curpos, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_BACKUP_ONE_WB         \
+        assert(previous); assert(strbeg); assert(curpos)
+
+STATIC char *
+S_find_byclass(pTHX_ regexp *prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_BYCLASS          \
+        assert(prog); assert(c); assert(s); assert(strend)
+
+STATIC U8 *
+S_find_next_masked(U8 *s, const U8 *send, const U8 byte, const U8 mask)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_NEXT_MASKED      \
+        assert(s); assert(send)
+
+STATIC U8 *
+S_find_span_end(U8 *s, const U8 *send, const U8 span_byte)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_SPAN_END         \
+        assert(s); assert(send)
+
+STATIC U8 *
+S_find_span_end_mask(U8 *s, const U8 *send, const U8 span_byte, const U8 mask)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_SPAN_END_MASK    \
+        assert(s); assert(send)
+
+STATIC bool
+S_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISFOO_LC
+
+STATIC bool
+S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8 *character, const U8 *e)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISFOO_UTF8_LC         \
+        assert(character); assert(e)
+
+STATIC bool
+S_isGCB(pTHX_ const GCB_enum before, const GCB_enum after, const U8 * const strbeg, const U8 * const curpos, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISGCB                 \
+        assert(strbeg); assert(curpos)
+
+STATIC bool
+S_isLB(pTHX_ LB_enum before, LB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISLB                  \
+        assert(strbeg); assert(curpos); assert(strend)
+
+STATIC bool
+S_isSB(pTHX_ SB_enum before, SB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISSB                  \
+        assert(strbeg); assert(curpos); assert(strend)
+
+STATIC bool
+S_isWB(pTHX_ WB_enum previous, WB_enum before, WB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISWB                  \
+        assert(strbeg); assert(curpos); assert(strend)
+
+STATIC I32
+S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
+        assert(rex); assert(scan)
+
+STATIC void
+S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p comma_pDEPTH);
+# define PERL_ARGS_ASSERT_REGCP_RESTORE         \
+        assert(rex); assert(maxopenparen_p)
+
+STATIC void
+S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p comma_pDEPTH);
+# define PERL_ARGS_ASSERT_REGCPPOP              \
+        assert(rex); assert(maxopenparen_p)
+
+STATIC CHECKPOINT
+S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen comma_pDEPTH);
+# define PERL_ARGS_ASSERT_REGCPPUSH             \
+        assert(rex)
+
+STATIC U8 *
+S_reghop3(U8 *s, SSize_t off, const U8 *lim)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGHOP3               \
+        assert(s); assert(lim)
+
+STATIC U8 *
+S_reghop4(U8 *s, SSize_t off, const U8 *llim, const U8 *rlim)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGHOP4               \
+        assert(s); assert(llim); assert(rlim)
+
+STATIC U8 *
+S_reghopmaybe3(U8 *s, SSize_t off, const U8 * const lim)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGHOPMAYBE3          \
+        assert(s); assert(lim)
+
+STATIC bool
+S_reginclass(pTHX_ regexp * const prog, const regnode * const n, const U8 * const p, const U8 * const p_end, bool const utf8_target)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGINCLASS            \
+        assert(n); assert(p); assert(p_end)
+
+STATIC SSize_t
+S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode *prog)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGMATCH              \
+        assert(reginfo); assert(startpos); assert(prog)
+
+STATIC I32
+S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, char *loceol, regmatch_info * const reginfo, I32 max comma_pDEPTH)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGREPEAT             \
+        assert(prog); assert(startposp); assert(p); assert(loceol); assert(reginfo); \
+        assert(max)
+
+STATIC bool
+S_regtry(pTHX_ regmatch_info *reginfo, char **startposp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_REGTRY                \
+        assert(reginfo); assert(startposp)
+
+STATIC bool
+S_to_byte_substr(pTHX_ regexp *prog);
+# define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR        \
+        assert(prog)
+
+STATIC void
+S_to_utf8_substr(pTHX_ regexp *prog);
+# define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR        \
+        assert(prog)
+
+# if defined(DEBUGGING)
+STATIC void
+S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb);
+#   define PERL_ARGS_ASSERT_DEBUG_START_MATCH   \
+        assert(prog); assert(start); assert(end); assert(blurb)
+
+STATIC void
+S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8, const U32 depth);
+#   define PERL_ARGS_ASSERT_DUMP_EXEC_POS       \
+        assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); \
+        assert(loc_reg_starttry)
+
+PERL_CALLCONV int
+Perl_re_exec_indentf(pTHX_ const char *fmt, U32 depth, ...)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_RE_EXEC_INDENTF     \
+        assert(fmt)
+
+# endif /* defined(DEBUGGING) */
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE void
+S_capture_clear(pTHX_ regexp *rex, U16 from_ix, U16 to_ix, const char *str comma_pDEPTH);
+#   define PERL_ARGS_ASSERT_CAPTURE_CLEAR       \
+        assert(rex); assert(str)
+
+PERL_STATIC_INLINE I32
+S_foldEQ_latin1_s2_folded(pTHX_ const char *a, const char *b, I32 len);
+#   define PERL_ARGS_ASSERT_FOLDEQ_LATIN1_S2_FOLDED \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE void
+S_unwind_paren(pTHX_ regexp *rex, U32 lp, U32 lcp comma_pDEPTH);
+#   define PERL_ARGS_ASSERT_UNWIND_PAREN        \
+        assert(rex)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGEXEC_C) */
+#if defined(PERL_IN_REGEX_ENGINE)
+
+# if defined(DEBUGGING)
+PERL_CALLCONV void
+Perl_debug_peep(pTHX_ const char *str, const RExC_state_t *pRExC_state, regnode *scan, U32 depth, U32 flags)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_DEBUG_PEEP          \
+        assert(str); assert(pRExC_state)
+
+PERL_CALLCONV void
+Perl_debug_show_study_flags(pTHX_ U32 flags, const char *open_str, const char *close_str)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_DEBUG_SHOW_STUDY_FLAGS \
+        assert(open_str); assert(close_str)
+
+PERL_CALLCONV void
+Perl_debug_studydata(pTHX_ const char *where, scan_data_t *data, U32 depth, int is_inf, SSize_t min, SSize_t stopmin, SSize_t delta)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_DEBUG_STUDYDATA     \
+        assert(where)
+
+PERL_CALLCONV const regnode *
+Perl_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV *sv, I32 indent, U32 depth)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_DUMPUNTIL           \
+        assert(r); assert(start); assert(node); assert(sv)
+
+PERL_CALLCONV int
+Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_RE_INDENTF          \
+        assert(fmt)
+
+PERL_CALLCONV int
+Perl_re_printf(pTHX_ const char *fmt, ...)
+        __attribute__visibility__("hidden")
+        __attribute__format__(__printf__,pTHX_1,pTHX_2);
+#   define PERL_ARGS_ASSERT_RE_PRINTF           \
+        assert(fmt)
+
+PERL_CALLCONV void
+Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_REGPROP             \
+        assert(sv); assert(o)
+
+# endif /* defined(DEBUGGING) */
+# if defined(PERL_EXT_RE_BUILD)
+PERL_CALLCONV SV *
+Perl_get_re_gclass_aux_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_GET_RE_GCLASS_AUX_DATA \
+        assert(node)
+
+# else
+PERL_CALLCONV SV *
+Perl_get_regclass_aux_data(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **lonly_utf8_locale, SV **output_invlist)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_GET_REGCLASS_AUX_DATA \
+        assert(node)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE bool
+Perl_check_regnode_after(pTHX_ const regnode *p, const STRLEN extra)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_CHECK_REGNODE_AFTER
+
+PERL_STATIC_INLINE regnode *
+Perl_regnext(pTHX_ const regnode *p)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_REGNEXT
+
+PERL_STATIC_INLINE regnode *
+Perl_regnode_after(pTHX_ const regnode *p, bool varies)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_REGNODE_AFTER
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_REGEX_ENGINE) */
 #if defined(PERL_IN_SCOPE_C)
-STATIC void	S_save_pushptri32ptr(pTHX_ void *const ptr1, const I32 i, void *const ptr2, const int type);
-#define PERL_ARGS_ASSERT_SAVE_PUSHPTRI32PTR
-STATIC SV*	S_save_scalar_at(pTHX_ SV **sptr, const U32 flags);
-#define PERL_ARGS_ASSERT_SAVE_SCALAR_AT	\
-	assert(sptr)
-#endif
+STATIC void
+S_save_pushptri32ptr(pTHX_ void * const ptr1, const I32 i, void * const ptr2, const int type);
+# define PERL_ARGS_ASSERT_SAVE_PUSHPTRI32PTR
+
+STATIC SV *
+S_save_scalar_at(pTHX_ SV **sptr, const U32 flags);
+# define PERL_ARGS_ASSERT_SAVE_SCALAR_AT        \
+        assert(sptr)
+
+#endif /* defined(PERL_IN_SCOPE_C) */
 #if defined(PERL_IN_SV_C)
-STATIC char *	S_F0convert(NV nv, char *const endbuf, STRLEN *const len);
-#define PERL_ARGS_ASSERT_F0CONVERT	\
-	assert(endbuf); assert(len)
-STATIC void	S_anonymise_cv_maybe(pTHX_ GV *gv, CV *cv);
-#define PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE	\
-	assert(gv); assert(cv)
-STATIC void	S_assert_uft8_cache_coherent(pTHX_ const char *const func, STRLEN from_cache, STRLEN real, SV *const sv);
-#define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT	\
-	assert(func); assert(sv)
-STATIC bool	S_curse(pTHX_ SV * const sv, const bool check_refcnt);
-#define PERL_ARGS_ASSERT_CURSE	\
-	assert(sv)
-STATIC STRLEN	S_expect_number(pTHX_ const char **const pattern)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_EXPECT_NUMBER	\
-	assert(pattern)
-
-STATIC SSize_t	S_find_array_subscript(pTHX_ const AV *const av, const SV *const val);
-#define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT	\
-	assert(val)
-STATIC SV *	S_find_hash_subscript(pTHX_ const HV *const hv, const SV *const val);
-#define PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT	\
-	assert(val)
-STATIC SV*	S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv, bool match, const char **desc_p);
-#define PERL_ARGS_ASSERT_FIND_UNINIT_VAR	\
-	assert(desc_p)
-STATIC bool	S_glob_2number(pTHX_ GV* const gv);
-#define PERL_ARGS_ASSERT_GLOB_2NUMBER	\
-	assert(gv)
-STATIC void	S_glob_assign_glob(pTHX_ SV *const dsv, SV *const ssv, const int dtype);
-#define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB	\
-	assert(dsv); assert(ssv)
-PERL_CALLCONV SV *	Perl_more_sv(pTHX);
-#define PERL_ARGS_ASSERT_MORE_SV
-STATIC void	S_not_a_number(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_NOT_A_NUMBER	\
-	assert(sv)
-STATIC void	S_not_incrementable(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_NOT_INCREMENTABLE	\
-	assert(sv)
-STATIC PTR_TBL_ENT_t *	S_ptr_table_find(PTR_TBL_t *const tbl, const void *const sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PTR_TABLE_FIND	\
-	assert(tbl)
-
-STATIC bool	S_sv_2iuv_common(pTHX_ SV *const sv);
-#define PERL_ARGS_ASSERT_SV_2IUV_COMMON	\
-	assert(sv)
-STATIC void	S_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags);
-#define PERL_ARGS_ASSERT_SV_ADD_ARENA	\
-	assert(ptr)
-STATIC const char *	S_sv_display(pTHX_ SV *const sv, char *tmpbuf, STRLEN tmpbuf_size);
-#define PERL_ARGS_ASSERT_SV_DISPLAY	\
-	assert(sv); assert(tmpbuf)
-STATIC STRLEN	S_sv_pos_b2u_midway(pTHX_ const U8 *const s, const U8 *const target, const U8 *end, STRLEN endu);
-#define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY	\
-	assert(s); assert(target); assert(end)
-STATIC STRLEN	S_sv_pos_u2b_cached(pTHX_ SV *const sv, MAGIC **const mgp, const U8 *const start, const U8 *const send, STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED	\
-	assert(sv); assert(mgp); assert(start); assert(send)
-STATIC STRLEN	S_sv_pos_u2b_forwards(const U8 *const start, const U8 *const send, STRLEN *const uoffset, bool *const at_end, bool *canonical_position);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS	\
-	assert(start); assert(send); assert(uoffset); assert(at_end); assert(canonical_position)
-STATIC STRLEN	S_sv_pos_u2b_midway(const U8 *const start, const U8 *send, STRLEN uoffset, const STRLEN uend);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY	\
-	assert(start); assert(send)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE void	S_sv_unglob(pTHX_ SV *const sv, U32 flags);
-#define PERL_ARGS_ASSERT_SV_UNGLOB	\
-	assert(sv)
-#endif
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE char *	S_uiv_2buf(char *const buf, const IV iv, UV uv, const int is_uv, char **const peob)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UIV_2BUF	\
-	assert(buf); assert(peob)
-#endif
-
-STATIC void	S_utf8_mg_len_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, const STRLEN ulen);
-#define PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE	\
-	assert(sv); assert(mgp)
-STATIC void	S_utf8_mg_pos_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, const STRLEN byte, const STRLEN utf8, const STRLEN blen);
-#define PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE	\
-	assert(sv); assert(mgp)
-STATIC I32	S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask);
-#define PERL_ARGS_ASSERT_VISIT	\
-	assert(f)
-#  if defined(USE_ITHREADS)
-STATIC SV*	S_sv_dup_common(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DUP_COMMON	\
-	assert(ssv); assert(param)
-
-STATIC SV **	S_sv_dup_inc_multiple(pTHX_ SV *const *source, SV **dest, SSize_t items, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE	\
-	assert(source); assert(dest); assert(param)
-STATIC void	S_unreferenced_to_tmp_stack(pTHX_ AV *const unreferenced);
-#define PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK	\
-	assert(unreferenced)
-#  endif
-#endif
-#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-PERL_CALLCONV SV *	Perl_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, const SV *const keyname, SSize_t aindex, int subscript_type)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_VARNAME
+STATIC char *
+S_F0convert(NV nv, char * const endbuf, STRLEN * const len);
+# define PERL_ARGS_ASSERT_F0CONVERT             \
+        assert(endbuf); assert(len)
+
+STATIC void
+S_anonymise_cv_maybe(pTHX_ GV *gv, CV *cv);
+# define PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE    \
+        assert(gv); assert(cv)
+
+STATIC void
+S_assert_uft8_cache_coherent(pTHX_ const char * const func, STRLEN from_cache, STRLEN real, SV * const sv);
+# define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT \
+        assert(func); assert(sv)
+
+STATIC bool
+S_curse(pTHX_ SV * const sv, const bool check_refcnt);
+# define PERL_ARGS_ASSERT_CURSE                 \
+        assert(sv)
+
+STATIC STRLEN
+S_expect_number(pTHX_ const char ** const pattern)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_EXPECT_NUMBER         \
+        assert(pattern)
+
+STATIC SSize_t
+S_find_array_subscript(pTHX_ const AV * const av, const SV * const val);
+# define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT  \
+        assert(val)
+
+STATIC SV *
+S_find_hash_subscript(pTHX_ const HV * const hv, const SV * const val);
+# define PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT   \
+        assert(val)
+
+STATIC SV *
+S_find_uninit_var(pTHX_ const OP * const obase, const SV * const uninit_sv, bool match, const char **desc_p);
+# define PERL_ARGS_ASSERT_FIND_UNINIT_VAR       \
+        assert(desc_p)
+
+STATIC bool
+S_glob_2number(pTHX_ GV * const gv);
+# define PERL_ARGS_ASSERT_GLOB_2NUMBER          \
+        assert(gv)
+
+STATIC void
+S_glob_assign_glob(pTHX_ SV * const dsv, SV * const ssv, const int dtype);
+# define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB      \
+        assert(dsv); assert(ssv)
+
+PERL_CALLCONV SV *
+Perl_more_sv(pTHX);
+# define PERL_ARGS_ASSERT_MORE_SV
+
+STATIC void
+S_not_a_number(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_NOT_A_NUMBER          \
+        assert(sv)
+
+STATIC void
+S_not_incrementable(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_NOT_INCREMENTABLE     \
+        assert(sv)
+
+STATIC PTR_TBL_ENT_t *
+S_ptr_table_find(PTR_TBL_t * const tbl, const void * const sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PTR_TABLE_FIND        \
+        assert(tbl)
+
+STATIC bool
+S_sv_2iuv_common(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_2IUV_COMMON        \
+        assert(sv)
+
+STATIC void
+S_sv_add_arena(pTHX_ char * const ptr, const U32 size, const U32 flags);
+# define PERL_ARGS_ASSERT_SV_ADD_ARENA          \
+        assert(ptr)
+
+STATIC const char *
+S_sv_display(pTHX_ SV * const sv, char *tmpbuf, STRLEN tmpbuf_size);
+# define PERL_ARGS_ASSERT_SV_DISPLAY            \
+        assert(sv); assert(tmpbuf)
+
+STATIC STRLEN
+S_sv_pos_b2u_midway(pTHX_ const U8 * const s, const U8 * const target, const U8 *end, STRLEN endu);
+# define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY     \
+        assert(s); assert(target); assert(end)
+
+STATIC STRLEN
+S_sv_pos_u2b_cached(pTHX_ SV * const sv, MAGIC ** const mgp, const U8 * const start, const U8 * const send, STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0);
+# define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED     \
+        assert(sv); assert(mgp); assert(start); assert(send)
+
+STATIC STRLEN
+S_sv_pos_u2b_forwards(const U8 * const start, const U8 * const send, STRLEN * const uoffset, bool * const at_end, bool *canonical_position);
+# define PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS   \
+        assert(start); assert(send); assert(uoffset); assert(at_end); assert(canonical_position)
+
+STATIC STRLEN
+S_sv_pos_u2b_midway(const U8 * const start, const U8 *send, STRLEN uoffset, const STRLEN uend);
+# define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY     \
+        assert(start); assert(send)
+
+STATIC void
+S_utf8_mg_len_cache_update(pTHX_ SV * const sv, MAGIC ** const mgp, const STRLEN ulen);
+# define PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE \
+        assert(sv); assert(mgp)
+
+STATIC void
+S_utf8_mg_pos_cache_update(pTHX_ SV * const sv, MAGIC ** const mgp, const STRLEN byte, const STRLEN utf8, const STRLEN blen);
+# define PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE \
+        assert(sv); assert(mgp)
+
+STATIC I32
+S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask);
+# define PERL_ARGS_ASSERT_VISIT                 \
+        assert(f)
+
+# if defined(DEBUGGING)
+STATIC void
+S_del_sv(pTHX_ SV *p);
+#   define PERL_ARGS_ASSERT_DEL_SV              \
+        assert(p)
+
+# endif
+# if !defined(NV_PRESERVES_UV)
+#   if defined(DEBUGGING)
+STATIC int
+S_sv_2iuv_non_preserve(pTHX_ SV * const sv, I32 numtype);
+#     define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
+        assert(sv)
+
+#   else
+STATIC int
+S_sv_2iuv_non_preserve(pTHX_ SV * const sv);
+#     define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
+        assert(sv)
+
+#   endif
+# endif /* !defined(NV_PRESERVES_UV) */
+# if defined(PERL_DEBUG_READONLY_COW)
+STATIC void
+S_sv_buf_to_rw(pTHX_ SV *sv);
+#   define PERL_ARGS_ASSERT_SV_BUF_TO_RW        \
+        assert(sv)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE void
+S_sv_unglob(pTHX_ SV * const sv, U32 flags);
+#   define PERL_ARGS_ASSERT_SV_UNGLOB           \
+        assert(sv)
+
+PERL_STATIC_INLINE char *
+S_uiv_2buf(char * const buf, const IV iv, UV uv, const int is_uv, char ** const peob)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_UIV_2BUF            \
+        assert(buf); assert(peob)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+# if defined(USE_ITHREADS)
+STATIC SV *
+S_sv_dup_common(pTHX_ const SV * const ssv, CLONE_PARAMS * const param)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_SV_DUP_COMMON       \
+        assert(ssv); assert(param)
+
+STATIC void
+S_sv_dup_hvaux(pTHX_ const SV * const ssv, SV *dsv, CLONE_PARAMS * const param);
+#   define PERL_ARGS_ASSERT_SV_DUP_HVAUX        \
+        assert(ssv); assert(dsv); assert(param)
+
+STATIC SV **
+S_sv_dup_inc_multiple(pTHX_ SV * const *source, SV **dest, SSize_t items, CLONE_PARAMS * const param);
+#   define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \
+        assert(source); assert(dest); assert(param)
+
+STATIC void
+S_unreferenced_to_tmp_stack(pTHX_ AV * const unreferenced);
+#   define PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK \
+        assert(unreferenced)
 
-#endif
+# endif /* defined(USE_ITHREADS) */
+#endif /* defined(PERL_IN_SV_C) */
 #if defined(PERL_IN_TOKE_C)
-STATIC int	S_ao(pTHX_ int toketype);
-#define PERL_ARGS_ASSERT_AO
-STATIC void	S_check_uni(pTHX);
-#define PERL_ARGS_ASSERT_CHECK_UNI
-STATIC void	S_checkcomma(pTHX_ const char *s, const char *name, const char *what);
-#define PERL_ARGS_ASSERT_CHECKCOMMA	\
-	assert(s); assert(name); assert(what)
-STATIC char *	S_filter_gets(pTHX_ SV *sv, STRLEN append)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FILTER_GETS	\
-	assert(sv)
-
-STATIC HV *	S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_FIND_IN_MY_STASH	\
-	assert(pkgname)
-
-STATIC void	S_force_ident(pTHX_ const char *s, int kind);
-#define PERL_ARGS_ASSERT_FORCE_IDENT	\
-	assert(s)
-STATIC void	S_force_ident_maybe_lex(pTHX_ char pit);
-#define PERL_ARGS_ASSERT_FORCE_IDENT_MAYBE_LEX
-STATIC void	S_force_next(pTHX_ I32 type);
-#define PERL_ARGS_ASSERT_FORCE_NEXT
-STATIC char*	S_force_strict_version(pTHX_ char *s);
-#define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION	\
-	assert(s)
-STATIC char*	S_force_version(pTHX_ char *s, int guessing);
-#define PERL_ARGS_ASSERT_FORCE_VERSION	\
-	assert(s)
-STATIC char*	S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack);
-#define PERL_ARGS_ASSERT_FORCE_WORD	\
-	assert(start)
-STATIC SV*	S_get_and_check_backslash_N_name_wrapper(pTHX_ const char* s, const char* const e)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME_WRAPPER	\
-	assert(s); assert(e)
-
-STATIC void	S_incline(pTHX_ const char *s, const char *end);
-#define PERL_ARGS_ASSERT_INCLINE	\
-	assert(s); assert(end)
-STATIC int	S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv);
-#define PERL_ARGS_ASSERT_INTUIT_METHOD	\
-	assert(s)
-STATIC int	S_intuit_more(pTHX_ char *s, char *e);
-#define PERL_ARGS_ASSERT_INTUIT_MORE	\
-	assert(s); assert(e)
-STATIC I32	S_lop(pTHX_ I32 f, U8 x, char *s);
-#define PERL_ARGS_ASSERT_LOP	\
-	assert(s)
-PERL_STATIC_NO_RET void	S_missingterm(pTHX_ char *s, STRLEN len)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_MISSINGTERM
-
-STATIC SV*	S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen, const char ** error_msg);
-#define PERL_ARGS_ASSERT_NEW_CONSTANT	\
-	assert(key); assert(sv)
-STATIC void	S_no_op(pTHX_ const char *const what, char *s);
-#define PERL_ARGS_ASSERT_NO_OP	\
-	assert(what)
-STATIC void	S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8, bool check_dollar, bool tick_warn);
-#define PERL_ARGS_ASSERT_PARSE_IDENT	\
-	assert(s); assert(d); assert(e)
-STATIC int	S_pending_ident(pTHX);
-#define PERL_ARGS_ASSERT_PENDING_IDENT
-STATIC char*	S_scan_const(pTHX_ char *start)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_CONST	\
-	assert(start)
-
-STATIC char*	S_scan_formline(pTHX_ char *s)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_FORMLINE	\
-	assert(s)
-
-STATIC char*	S_scan_heredoc(pTHX_ char *s)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_HEREDOC	\
-	assert(s)
-
-STATIC char*	S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni);
-#define PERL_ARGS_ASSERT_SCAN_IDENT	\
-	assert(s); assert(dest)
-STATIC char*	S_scan_inputsymbol(pTHX_ char *start)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_INPUTSYMBOL	\
-	assert(start)
-
-STATIC char*	S_scan_pat(pTHX_ char *start, I32 type)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_PAT	\
-	assert(start)
-
-STATIC char*	S_scan_subst(pTHX_ char *start)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_SUBST	\
-	assert(start)
-
-STATIC char*	S_scan_trans(pTHX_ char *start)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SCAN_TRANS	\
-	assert(start)
-
-STATIC I32	S_sublex_done(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SUBLEX_DONE
-
-STATIC I32	S_sublex_push(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SUBLEX_PUSH
-
-STATIC I32	S_sublex_start(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SUBLEX_START
-
-STATIC char*	S_swallow_bom(pTHX_ U8 *s)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SWALLOW_BOM	\
-	assert(s)
-
-STATIC char *	S_tokenize_use(pTHX_ int is_use, char *s)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_TOKENIZE_USE	\
-	assert(s)
-
-STATIC SV*	S_tokeq(pTHX_ SV *sv);
-#define PERL_ARGS_ASSERT_TOKEQ	\
-	assert(sv)
-STATIC void	S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len);
-#define PERL_ARGS_ASSERT_UPDATE_DEBUGGER_INFO
-STATIC int	S_yywarn(pTHX_ const char *const s, U32 flags);
-#define PERL_ARGS_ASSERT_YYWARN	\
-	assert(s)
-#endif
+STATIC int
+S_ao(pTHX_ int toketype);
+# define PERL_ARGS_ASSERT_AO
+
+STATIC void
+S_check_uni(pTHX);
+# define PERL_ARGS_ASSERT_CHECK_UNI
+
+STATIC void
+S_checkcomma(pTHX_ const char *s, const char *name, const char *what);
+# define PERL_ARGS_ASSERT_CHECKCOMMA            \
+        assert(s); assert(name); assert(what)
+
+STATIC char *
+S_filter_gets(pTHX_ SV *sv, STRLEN append)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FILTER_GETS           \
+        assert(sv)
+
+STATIC HV *
+S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_FIND_IN_MY_STASH      \
+        assert(pkgname)
+
+STATIC void
+S_force_ident(pTHX_ const char *s, int kind);
+# define PERL_ARGS_ASSERT_FORCE_IDENT           \
+        assert(s)
+
+STATIC void
+S_force_ident_maybe_lex(pTHX_ char pit);
+# define PERL_ARGS_ASSERT_FORCE_IDENT_MAYBE_LEX
+
+STATIC void
+S_force_next(pTHX_ I32 type);
+# define PERL_ARGS_ASSERT_FORCE_NEXT
+
+STATIC char *
+S_force_strict_version(pTHX_ char *s);
+# define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION  \
+        assert(s)
+
+STATIC char *
+S_force_version(pTHX_ char *s, int guessing);
+# define PERL_ARGS_ASSERT_FORCE_VERSION         \
+        assert(s)
+
+STATIC char *
+S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack);
+# define PERL_ARGS_ASSERT_FORCE_WORD            \
+        assert(start)
+
+STATIC SV *
+S_get_and_check_backslash_N_name_wrapper(pTHX_ const char *s, const char * const e)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME_WRAPPER \
+        assert(s); assert(e)
+
+STATIC void
+S_incline(pTHX_ const char *s, const char *end);
+# define PERL_ARGS_ASSERT_INCLINE               \
+        assert(s); assert(end)
+
+STATIC int
+S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv);
+# define PERL_ARGS_ASSERT_INTUIT_METHOD         \
+        assert(s)
+
+STATIC int
+S_intuit_more(pTHX_ char *s, char *e);
+# define PERL_ARGS_ASSERT_INTUIT_MORE           \
+        assert(s); assert(e)
+
+STATIC I32
+S_lop(pTHX_ I32 f, U8 x, char *s);
+# define PERL_ARGS_ASSERT_LOP                   \
+        assert(s)
+
+PERL_STATIC_NO_RET void
+S_missingterm(pTHX_ char *s, STRLEN len)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_MISSINGTERM
+
+STATIC SV *
+S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen, const char **error_msg);
+# define PERL_ARGS_ASSERT_NEW_CONSTANT          \
+        assert(key); assert(sv)
+
+STATIC void
+S_no_op(pTHX_ const char * const what, char *s);
+# define PERL_ARGS_ASSERT_NO_OP                 \
+        assert(what)
+
+STATIC void
+S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8, bool check_dollar, bool tick_warn);
+# define PERL_ARGS_ASSERT_PARSE_IDENT           \
+        assert(s); assert(d); assert(e)
+
+STATIC int
+S_pending_ident(pTHX);
+# define PERL_ARGS_ASSERT_PENDING_IDENT
+
+STATIC char *
+S_scan_const(pTHX_ char *start)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_CONST            \
+        assert(start)
+
+STATIC char *
+S_scan_formline(pTHX_ char *s)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_FORMLINE         \
+        assert(s)
+
+STATIC char *
+S_scan_heredoc(pTHX_ char *s)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_HEREDOC          \
+        assert(s)
+
+STATIC char *
+S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni);
+# define PERL_ARGS_ASSERT_SCAN_IDENT            \
+        assert(s); assert(dest)
+
+STATIC char *
+S_scan_inputsymbol(pTHX_ char *start)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_INPUTSYMBOL      \
+        assert(start)
+
+STATIC char *
+S_scan_pat(pTHX_ char *start, I32 type)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_PAT              \
+        assert(start)
+
+STATIC char *
+S_scan_subst(pTHX_ char *start)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_SUBST            \
+        assert(start)
+
+STATIC char *
+S_scan_trans(pTHX_ char *start)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SCAN_TRANS            \
+        assert(start)
+
+STATIC I32
+S_sublex_done(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SUBLEX_DONE
+
+STATIC I32
+S_sublex_push(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SUBLEX_PUSH
+
+STATIC I32
+S_sublex_start(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SUBLEX_START
+
+STATIC char *
+S_swallow_bom(pTHX_ U8 *s)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SWALLOW_BOM           \
+        assert(s)
+
+STATIC char *
+S_tokenize_use(pTHX_ int is_use, char *s)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_TOKENIZE_USE          \
+        assert(s)
+
+STATIC SV *
+S_tokeq(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_TOKEQ                 \
+        assert(sv)
+
+STATIC void
+S_update_debugger_info(pTHX_ SV *orig_sv, const char * const buf, STRLEN len);
+# define PERL_ARGS_ASSERT_UPDATE_DEBUGGER_INFO
+
+STATIC int
+S_yywarn(pTHX_ const char * const s, U32 flags);
+# define PERL_ARGS_ASSERT_YYWARN                \
+        assert(s)
+
+# if defined(DEBUGGING)
+STATIC void
+S_printbuf(pTHX_ const char * const fmt, const char * const s)
+        __attribute__format__(__printf__,pTHX_1,0);
+#   define PERL_ARGS_ASSERT_PRINTBUF            \
+        assert(fmt); assert(s)
+
+STATIC int
+S_tokereport(pTHX_ I32 rv, const YYSTYPE *lvalp);
+#   define PERL_ARGS_ASSERT_TOKEREPORT          \
+        assert(lvalp)
+
+# endif /* defined(DEBUGGING) */
+# if defined(PERL_CR_FILTER)
+STATIC I32
+S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+#   define PERL_ARGS_ASSERT_CR_TEXTFILTER
+
+STATIC void
+S_strip_return(pTHX_ SV *sv);
+#   define PERL_ARGS_ASSERT_STRIP_RETURN        \
+        assert(sv)
+
+# endif /* defined(PERL_CR_FILTER) */
+# if !defined(PERL_NO_UTF16_FILTER)
+STATIC U8 *
+S_add_utf16_textfilter(pTHX_ U8 * const s, bool reversed);
+#   define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER \
+        assert(s)
+
+STATIC I32
+S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+#   define PERL_ARGS_ASSERT_UTF16_TEXTFILTER    \
+        assert(sv)
+
+# endif /* !defined(PERL_NO_UTF16_FILTER) */
+#endif /* defined(PERL_IN_TOKE_C) */
 #if defined(PERL_IN_UNIVERSAL_C)
-STATIC bool	S_isa_lookup(pTHX_ HV *stash, SV *namesv, const char * name, STRLEN len, U32 flags);
-STATIC bool	S_sv_derived_from_svpvn(pTHX_ SV *sv, SV *namesv, const char * name, const STRLEN len, U32 flags);
+STATIC bool
+S_isa_lookup(pTHX_ HV *stash, SV *namesv, const char *name, STRLEN len, U32 flags);
+
+STATIC bool
+S_sv_derived_from_svpvn(pTHX_ SV *sv, SV *namesv, const char *name, const STRLEN len, U32 flags);
+
 #endif
 #if defined(PERL_IN_UTF8_C)
-STATIC UV	S__to_utf8_case(pTHX_ const UV original, const U8 *p, U8* ustrp, STRLEN *lenp, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
-#define PERL_ARGS_ASSERT__TO_UTF8_CASE	\
-	assert(ustrp); assert(lenp); assert(invlist); assert(invmap); assert(normal)
-STATIC UV	S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV result, U8* const ustrp, STRLEN *lenp)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING	\
-	assert(p); assert(ustrp); assert(lenp)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE int	S_does_utf8_overflow(const U8 * const s, const U8 * e, const bool consider_overlongs)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW	\
-	assert(s); assert(e)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE int	S_isFF_overlong(const U8 * const s, const STRLEN len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ISFF_OVERLONG	\
-	assert(s)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool	S_is_utf8_common(pTHX_ const U8 *const p, const U8 *const e, SV* const invlist)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_COMMON	\
-	assert(p); assert(e)
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE int	S_is_utf8_overlong(const U8 * const s, const STRLEN len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_UTF8_OVERLONG	\
-	assert(s)
-#endif
-
-STATIC HV *	S_new_msg_hv(pTHX_ const char * const message, U32 categories, U32 flag)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEW_MSG_HV	\
-	assert(message)
-
-STATIC UV	S_to_case_cp_list(pTHX_ const UV original, const U32 ** const remaining_list, Size_t * remaining_count, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
-#define PERL_ARGS_ASSERT_TO_CASE_CP_LIST	\
-	assert(invlist); assert(invmap); assert(normal)
-STATIC U8	S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_TO_LOWER_LATIN1
-
-STATIC UV	S_turkic_fc(pTHX_ const U8 * const p, const U8 * const e, U8* ustrp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TURKIC_FC	\
-	assert(p); assert(e); assert(ustrp); assert(lenp)
-STATIC UV	S_turkic_lc(pTHX_ const U8 * const p0, const U8 * const e, U8* ustrp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TURKIC_LC	\
-	assert(p0); assert(e); assert(ustrp); assert(lenp)
-STATIC UV	S_turkic_uc(pTHX_ const U8 * const p, const U8 * const e, U8* ustrp, STRLEN *lenp);
-#define PERL_ARGS_ASSERT_TURKIC_UC	\
-	assert(p); assert(e); assert(ustrp); assert(lenp)
-STATIC char *	S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT	\
-	assert(s)
-
-#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
-PERL_CALLCONV UV	Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s);
-#define PERL_ARGS_ASSERT__TO_UPPER_TITLE_LATIN1	\
-	assert(p); assert(lenp)
-#endif
+STATIC UV
+S__to_utf8_case(pTHX_ const UV original, const U8 *p, U8 *ustrp, STRLEN *lenp, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
+# define PERL_ARGS_ASSERT__TO_UTF8_CASE         \
+        assert(ustrp); assert(lenp); assert(invlist); assert(invmap); assert(normal)
+
+STATIC UV
+S_check_locale_boundary_crossing(pTHX_ const U8 * const p, const UV result, U8 * const ustrp, STRLEN *lenp)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \
+        assert(p); assert(ustrp); assert(lenp)
+
+STATIC HV *
+S_new_msg_hv(pTHX_ const char * const message, U32 categories, U32 flag)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEW_MSG_HV            \
+        assert(message)
+
+STATIC UV
+S_to_case_cp_list(pTHX_ const UV original, const U32 ** const remaining_list, Size_t *remaining_count, SV *invlist, const I32 * const invmap, const U32 * const * const aux_tables, const U8 * const aux_table_lengths, const char * const normal);
+# define PERL_ARGS_ASSERT_TO_CASE_CP_LIST       \
+        assert(invlist); assert(invmap); assert(normal)
+
+STATIC U8
+S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_TO_LOWER_LATIN1
+
+STATIC UV
+S_turkic_fc(pTHX_ const U8 * const p, const U8 * const e, U8 *ustrp, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_TURKIC_FC             \
+        assert(p); assert(e); assert(ustrp); assert(lenp)
+
+STATIC UV
+S_turkic_lc(pTHX_ const U8 * const p0, const U8 * const e, U8 *ustrp, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_TURKIC_LC             \
+        assert(p0); assert(e); assert(ustrp); assert(lenp)
+
+STATIC UV
+S_turkic_uc(pTHX_ const U8 * const p, const U8 * const e, U8 *ustrp, STRLEN *lenp);
+# define PERL_ARGS_ASSERT_TURKIC_UC             \
+        assert(p); assert(e); assert(ustrp); assert(lenp)
+
+STATIC char *
+S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \
+        assert(s)
+
+# if 0
+STATIC void
+S_warn_on_first_deprecated_use(pTHX_ U32 category, const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line);
+#   define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \
+        assert(name); assert(alternative); assert(file)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE int
+S_does_utf8_overflow(const U8 * const s, const U8 *e, const bool consider_overlongs)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW  \
+        assert(s); assert(e)
+
+PERL_STATIC_INLINE int
+S_isFF_overlong(const U8 * const s, const STRLEN len)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_ISFF_OVERLONG       \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+S_is_utf8_common(pTHX_ const U8 * const p, const U8 * const e, SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_IS_UTF8_COMMON      \
+        assert(p); assert(e)
+
+PERL_STATIC_INLINE int
+S_is_utf8_overlong(const U8 * const s, const STRLEN len)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_IS_UTF8_OVERLONG    \
+        assert(s)
+
+# endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+#endif /* defined(PERL_IN_UTF8_C) */
 #if defined(PERL_IN_UTIL_C)
-STATIC bool	S_ckwarn_common(pTHX_ U32 w);
-#define PERL_ARGS_ASSERT_CKWARN_COMMON
-STATIC bool	S_invoke_exception_hook(pTHX_ SV *ex, bool warn);
-#define PERL_ARGS_ASSERT_INVOKE_EXCEPTION_HOOK
-STATIC SV*	S_mess_alloc(pTHX);
-#define PERL_ARGS_ASSERT_MESS_ALLOC
-STATIC SV *	S_with_queued_errors(pTHX_ SV *ex);
-#define PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS	\
-	assert(ex)
-STATIC void	S_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, STRLEN xs_len);
-#define PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK	\
-	assert(xs_p)
-#  if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-STATIC void	S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesize, const char *type_name, const SV *sv, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_COMMON	\
-	assert(type_name); assert(filename); assert(funcname)
-#  endif
-#endif
+STATIC bool
+S_ckwarn_common(pTHX_ U32 w);
+# define PERL_ARGS_ASSERT_CKWARN_COMMON
+
+STATIC SV *
+S_mess_alloc(pTHX);
+# define PERL_ARGS_ASSERT_MESS_ALLOC
+
+STATIC SV *
+S_with_queued_errors(pTHX_ SV *ex);
+# define PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS    \
+        assert(ex)
+
+STATIC void
+S_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, STRLEN xs_len);
+# define PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK  \
+        assert(xs_p)
+
+# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+STATIC void
+S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesize, const char *type_name, const SV *sv, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
+#   define PERL_ARGS_ASSERT_MEM_LOG_COMMON      \
+        assert(type_name); assert(filename); assert(funcname)
+
+# endif
+# if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE U32
+S_ptr_hash(PTRV u);
+#   define PERL_ARGS_ASSERT_PTR_HASH
+
+# endif
+# if defined(PERL_USES_PL_PIDSTATUS)
+STATIC void
+S_pidgone(pTHX_ Pid_t pid, int status);
+#   define PERL_ARGS_ASSERT_PIDGONE
+
+# endif
+#endif /* defined(PERL_IN_UTIL_C) */
 #if defined(PERL_MEM_LOG)
-PERL_CALLCONV Malloc_t	Perl_mem_log_alloc(const UV nconst, UV typesize, const char *type_name, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_ALLOC	\
-	assert(type_name); assert(filename); assert(funcname)
-PERL_CALLCONV void	Perl_mem_log_del_sv(const SV *sv, const char *filename, int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_DEL_SV	\
-	assert(sv); assert(filename); assert(funcname)
-PERL_CALLCONV Malloc_t	Perl_mem_log_free(Malloc_t oldalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_FREE	\
-	assert(filename); assert(funcname)
-PERL_CALLCONV void	Perl_mem_log_new_sv(const SV *sv, const char *filename, int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_NEW_SV	\
-	assert(sv); assert(filename); assert(funcname)
-PERL_CALLCONV Malloc_t	Perl_mem_log_realloc(const UV n, const UV typesize, const char *type_name, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
-#define PERL_ARGS_ASSERT_MEM_LOG_REALLOC	\
-	assert(type_name); assert(filename); assert(funcname)
-#endif
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-STATIC void	S_pidgone(pTHX_ Pid_t pid, int status);
-#define PERL_ARGS_ASSERT_PIDGONE
-#endif
+PERL_CALLCONV Malloc_t
+Perl_mem_log_alloc(const UV nconst, UV typesize, const char *type_name, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_ALLOC         \
+        assert(type_name); assert(filename); assert(funcname)
+
+PERL_CALLCONV void
+Perl_mem_log_del_sv(const SV *sv, const char *filename, int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_DEL_SV        \
+        assert(sv); assert(filename); assert(funcname)
+
+PERL_CALLCONV Malloc_t
+Perl_mem_log_free(Malloc_t oldalloc, const char *filename, const int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_FREE          \
+        assert(filename); assert(funcname)
+
+PERL_CALLCONV void
+Perl_mem_log_new_sv(const SV *sv, const char *filename, int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_NEW_SV        \
+        assert(sv); assert(filename); assert(funcname)
+
+PERL_CALLCONV Malloc_t
+Perl_mem_log_realloc(const UV n, const UV typesize, const char *type_name, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname);
+# define PERL_ARGS_ASSERT_MEM_LOG_REALLOC       \
+        assert(type_name); assert(filename); assert(funcname)
+
+#endif /* defined(PERL_MEM_LOG) */
+#if !defined(PERL_NO_INLINE_FUNCTIONS)
+PERL_STATIC_INLINE I32 *
+Perl_CvDEPTH(const CV * const sv);
+# define PERL_ARGS_ASSERT_CVDEPTH               \
+        assert(sv)
+
+PERL_STATIC_INLINE GV *
+Perl_CvGV(pTHX_ CV *sv);
+# define PERL_ARGS_ASSERT_CVGV                  \
+        assert(sv)
+
+PERL_STATIC_INLINE I32
+Perl_POPMARK(pTHX);
+# define PERL_ARGS_ASSERT_POPMARK
+
+PERL_STATIC_INLINE struct regexp *
+Perl_ReANY(const REGEXP * const re);
+# define PERL_ARGS_ASSERT_REANY                 \
+        assert(re)
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_off(SV *sv);
+# define PERL_ARGS_ASSERT_SVAMAGIC_OFF          \
+        assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_on(SV *sv);
+# define PERL_ARGS_ASSERT_SVAMAGIC_ON           \
+        assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvGETMAGIC(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVGETMAGIC            \
+        assert(sv)
+
+PERL_STATIC_INLINE IV
+Perl_SvIV(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVIV                  \
+        assert(sv)
+
+PERL_STATIC_INLINE IV
+Perl_SvIV_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVIV_NOMG             \
+        assert(sv)
+
+PERL_STATIC_INLINE NV
+Perl_SvNV(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVNV                  \
+        assert(sv)
+
+PERL_STATIC_INLINE NV
+Perl_SvNV_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVNV_NOMG             \
+        assert(sv)
+
+PERL_STATIC_FORCE_INLINE bool
+Perl_SvPVXtrue(pTHX_ SV *sv)
+        __attribute__always_inline__;
+# define PERL_ARGS_ASSERT_SVPVXTRUE             \
+        assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_DEC
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec_NN(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_DEC_NN       \
+        assert(sv)
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_dec_ret_NULL(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_DEC_RET_NULL
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc(SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_INC
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc_NN(SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_INC_NN       \
+        assert(sv)
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_inc_void(SV *sv);
+# define PERL_ARGS_ASSERT_SVREFCNT_INC_VOID
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVTRUE
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_NN(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVTRUE_NN             \
+        assert(sv)
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_common(pTHX_ SV *sv, const bool sv_2bool_is_fallback);
+# define PERL_ARGS_ASSERT_SVTRUE_COMMON         \
+        assert(sv)
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVTRUE_NOMG
+
+PERL_STATIC_INLINE UV
+Perl_SvUV(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVUV                  \
+        assert(sv)
+
+PERL_STATIC_INLINE UV
+Perl_SvUV_nomg(pTHX_ SV *sv);
+# define PERL_ARGS_ASSERT_SVUV_NOMG             \
+        assert(sv)
+
+PERL_STATIC_INLINE I32
+Perl_TOPMARK(pTHX);
+# define PERL_ARGS_ASSERT_TOPMARK
+
+PERL_STATIC_INLINE void
+Perl_append_utf8_from_native_byte(const U8 byte, U8 **dest);
+# define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE \
+        assert(dest)
+
+PERL_STATIC_INLINE Size_t
+Perl_av_count(pTHX_ AV *av)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_AV_COUNT              \
+        assert(av)
+
+PERL_STATIC_INLINE SV **
+Perl_av_fetch_simple(pTHX_ AV *av, SSize_t key, I32 lval)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_AV_FETCH_SIMPLE       \
+        assert(av)
+
+PERL_STATIC_INLINE AV *
+Perl_av_new_alloc(pTHX_ SSize_t size, bool zeroflag)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_AV_NEW_ALLOC
+
+PERL_STATIC_INLINE void
+Perl_av_push_simple(pTHX_ AV *av, SV *val);
+# define PERL_ARGS_ASSERT_AV_PUSH_SIMPLE        \
+        assert(av); assert(val)
+
+PERL_STATIC_INLINE SV **
+Perl_av_store_simple(pTHX_ AV *av, SSize_t key, SV *val);
+# define PERL_ARGS_ASSERT_AV_STORE_SIMPLE       \
+        assert(av)
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ                \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ_latin1(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ_LATIN1         \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ_locale(pTHX_ const char *a, const char *b, I32 len);
+# define PERL_ARGS_ASSERT_FOLDEQ_LOCALE         \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE MGVTBL *
+Perl_get_vtbl(pTHX_ int vtbl_id)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_VTBL
+
+PERL_STATIC_INLINE Size_t
+Perl_isC9_STRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISC9_STRICT_UTF8_CHAR \
+        assert(s0); assert(e)
+
+PERL_STATIC_INLINE Size_t
+Perl_isSTRICT_UTF8_CHAR(const U8 * const s0, const U8 * const e)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISSTRICT_UTF8_CHAR    \
+        assert(s0); assert(e)
+
+PERL_STATIC_INLINE Size_t
+Perl_isUTF8_CHAR(const U8 * const s0, const U8 * const e)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISUTF8_CHAR           \
+        assert(s0); assert(e)
+
+PERL_STATIC_INLINE Size_t
+Perl_isUTF8_CHAR_flags(const U8 * const s0, const U8 * const e, const U32 flags)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ISUTF8_CHAR_FLAGS     \
+        assert(s0); assert(e)
+
+PERL_STATIC_INLINE bool
+Perl_is_c9strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+# define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL       \
+        assert(pv); assert(what); assert(op_name)
+
+PERL_STATIC_INLINE bool
+Perl_is_strict_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+# define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
+# define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_invariant_string_loc(const U8 * const s, STRLEN len, const U8 **ep)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING_LOC \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_flags(const U8 *s, STRLEN len, const U32 flags)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS  \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_loclen_flags(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
+# define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS \
+        assert(s)
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_valid_partial_char_flags(const U8 * const s0, const U8 * const e, const U32 flags)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS \
+        assert(s0); assert(e)
+
+PERL_STATIC_INLINE unsigned
+Perl_lsbit_pos32(U32 word)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_LSBIT_POS32
+
+PERL_STATIC_INLINE char *
+Perl_mortal_getenv(const char *str)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MORTAL_GETENV         \
+        assert(str)
+
+PERL_STATIC_INLINE unsigned
+Perl_msbit_pos32(U32 word)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MSBIT_POS32
+
+PERL_STATIC_INLINE OP *
+Perl_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWPADXVOP
+
+PERL_STATIC_INLINE SV *
+Perl_newRV_noinc(pTHX_ SV * const tmpRef)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWRV_NOINC           \
+        assert(tmpRef)
+
+PERL_STATIC_INLINE SV *
+Perl_newSV_type(pTHX_ const svtype type)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWSV_TYPE
+
+PERL_STATIC_FORCE_INLINE SV *
+Perl_newSV_type_mortal(pTHX_ const svtype type)
+        __attribute__warn_unused_result__
+        __attribute__always_inline__;
+# define PERL_ARGS_ASSERT_NEWSV_TYPE_MORTAL
+
+PERL_STATIC_INLINE char *
+Perl_savepv(pTHX_ const char *pv)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVEPV
+
+PERL_STATIC_INLINE char *
+Perl_savepvn(pTHX_ const char *pv, Size_t len)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVEPVN
+
+PERL_STATIC_INLINE char *
+Perl_savesharedsvpv(pTHX_ SV *sv)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVESHAREDSVPV        \
+        assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_savesvpv(pTHX_ SV *sv)
+        __attribute__malloc__
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SAVESVPV              \
+        assert(sv)
+
+PERL_STATIC_INLINE unsigned
+Perl_single_1bit_pos32(U32 word)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SINGLE_1BIT_POS32
+
+PERL_STATIC_INLINE bool
+Perl_sv_only_taint_gmagic(SV *sv);
+# define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC  \
+        assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvbyten_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy);
+# define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE_WRAPPER \
+        assert(sv)
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvutf8n_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy);
+# define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE_WRAPPER \
+        assert(sv)
+
+PERL_STATIC_INLINE char  *
+Perl_sv_setpv_freshbuf(pTHX_ SV * const sv);
+# define PERL_ARGS_ASSERT_SV_SETPV_FRESHBUF     \
+        assert(sv)
+
+PERL_STATIC_INLINE IV
+Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_DISTANCE         \
+        assert(a); assert(b)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop(const U8 *s, SSize_t off)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP              \
+        assert(s)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP_BACK         \
+        assert(s); assert(start)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD      \
+        assert(s); assert(end)
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_UTF8_HOP_SAFE         \
+        assert(s); assert(start); assert(end)
+
+PERL_STATIC_INLINE UV
+Perl_utf8_to_uvchr_buf_helper(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
+# define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF_HELPER \
+        assert(s); assert(send)
+
+PERL_STATIC_INLINE UV
+Perl_utf8n_to_uvchr_msgs(const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 *errors, AV **msgs);
+# define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_MSGS   \
+        assert(s)
+
+PERL_STATIC_INLINE UV
+Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR   \
+        assert(s)
+
+PERL_STATIC_INLINE void
+Perl_cx_popblock(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPBLOCK           \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popeval(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPEVAL            \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popformat(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPFORMAT          \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPGIVEN           \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPLOOP            \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popsub(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPSUB             \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popsub_args(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPSUB_ARGS        \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popsub_common(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPSUB_COMMON      \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_popwhen(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_POPWHEN            \
+        assert(cx)
+
+PERL_STATIC_INLINE PERL_CONTEXT *
+Perl_cx_pushblock(pTHX_ U8 type, U8 gimme, SV **sp, I32 saveix);
+# define PERL_ARGS_ASSERT_CX_PUSHBLOCK          \
+        assert(sp)
+
+PERL_STATIC_INLINE void
+Perl_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv);
+# define PERL_ARGS_ASSERT_CX_PUSHEVAL           \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv);
+# define PERL_ARGS_ASSERT_CX_PUSHFORMAT         \
+        assert(cx); assert(cv)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv);
+# define PERL_ARGS_ASSERT_CX_PUSHGIVEN          \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV *itersave);
+# define PERL_ARGS_ASSERT_CX_PUSHLOOP_FOR       \
+        assert(cx); assert(itervarp)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_PUSHLOOP_PLAIN     \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs);
+# define PERL_ARGS_ASSERT_CX_PUSHSUB            \
+        assert(cx); assert(cv)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushtry(pTHX_ PERL_CONTEXT *cx, OP *retop);
+# define PERL_ARGS_ASSERT_CX_PUSHTRY            \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_pushwhen(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_PUSHWHEN           \
+        assert(cx)
+
+PERL_STATIC_INLINE void
+Perl_cx_topblock(pTHX_ PERL_CONTEXT *cx);
+# define PERL_ARGS_ASSERT_CX_TOPBLOCK           \
+        assert(cx)
+
+PERL_STATIC_INLINE U8
+Perl_gimme_V(pTHX);
+# define PERL_ARGS_ASSERT_GIMME_V
+
+# if !defined(HAS_STRLCAT)
+PERL_STATIC_INLINE Size_t
+Perl_my_strlcat(char *dst, const char *src, Size_t size);
+#   define PERL_ARGS_ASSERT_MY_STRLCAT
+
+# endif
+# if !defined(HAS_STRNLEN)
+PERL_STATIC_INLINE Size_t
+Perl_my_strnlen(const char *str, Size_t maxlen);
+#   define PERL_ARGS_ASSERT_MY_STRNLEN          \
+        assert(str)
+
+# endif
+# if defined(PERL_CORE) || defined(PERL_EXT)
+PERL_STATIC_INLINE bool
+Perl_is_utf8_non_invariant_string(const U8 * const s, STRLEN len)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_IS_UTF8_NON_INVARIANT_STRING \
+        assert(s)
+
+PERL_STATIC_INLINE STRLEN
+S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp);
+#   define PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B    \
+        assert(sv); assert(pv)
+
+PERL_STATIC_INLINE Size_t
+S_variant_under_utf8_count(const U8 * const s, const U8 * const e)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_VARIANT_UNDER_UTF8_COUNT \
+        assert(s); assert(e)
+
+#   if !defined(HAS_MEMRCHR)
+PERL_STATIC_INLINE void *
+S_my_memrchr(const char *s, const char c, const STRLEN len);
+#     define PERL_ARGS_ASSERT_MY_MEMRCHR        \
+        assert(s)
+
+#   endif
+# endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+# if defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
+     defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
+     defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
+     defined(PERL_IN_UTF8_C)
+PERL_STATIC_INLINE bool
+S__invlist_contains_cp(SV * const invlist, const UV cp)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP \
+        assert(invlist)
+
+PERL_STATIC_INLINE UV
+S__invlist_len(SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT__INVLIST_LEN        \
+        assert(invlist)
+
+PERL_STATIC_INLINE bool *
+S_get_invlist_offset_addr(SV *invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR \
+        assert(invlist)
+
+PERL_STATIC_INLINE UV *
+S_invlist_array(SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_ARRAY       \
+        assert(invlist)
+
+PERL_STATIC_INLINE bool
+S_is_invlist(const SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_IS_INVLIST
+
+# endif /* defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        ||
+           defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) ||
+           defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      ||
+           defined(PERL_IN_UTF8_C) */
+# if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
+     defined(PERL_IN_REGCOMP_ANY)
+PERL_STATIC_INLINE SV *
+S_add_cp_to_invlist(pTHX_ SV *invlist, const UV cp)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_ADD_CP_TO_INVLIST
+
+PERL_STATIC_INLINE void
+S_invlist_extend(pTHX_ SV * const invlist, const UV len);
+#   define PERL_ARGS_ASSERT_INVLIST_EXTEND      \
+        assert(invlist)
+
+PERL_STATIC_INLINE UV
+S_invlist_highest(SV * const invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_HIGHEST     \
+        assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_set_len(pTHX_ SV * const invlist, const UV len, const bool offset);
+#   define PERL_ARGS_ASSERT_INVLIST_SET_LEN     \
+        assert(invlist)
+
+# endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) ||
+           defined(PERL_IN_REGCOMP_ANY) */
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
+PERL_STATIC_INLINE bool
+S_PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq);
+#   define PERL_ARGS_ASSERT_PADNAMEIN_SCOPE     \
+        assert(pn)
+
+# endif
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
+PERL_STATIC_INLINE STRLEN *
+S_get_invlist_iter_addr(SV *invlist)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
+        assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_iterfinish(SV *invlist);
+#   define PERL_ARGS_ASSERT_INVLIST_ITERFINISH  \
+        assert(invlist)
+
+PERL_STATIC_INLINE void
+S_invlist_iterinit(SV *invlist);
+#   define PERL_ARGS_ASSERT_INVLIST_ITERINIT    \
+        assert(invlist)
+
+PERL_STATIC_INLINE bool
+S_invlist_iternext(SV *invlist, UV *start, UV *end)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_INVLIST_ITERNEXT    \
+        assert(invlist); assert(start); assert(end)
+
+# endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY) */
+# if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
+PERL_STATIC_INLINE bool
+S_lossless_NV_to_IV(const NV nv, IV *ivp)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_LOSSLESS_NV_TO_IV   \
+        assert(ivp)
+
+# endif
+# if defined(PERL_IN_PP_C)   || defined(PERL_IN_REGCOMP_ANY) || \
+     defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
+PERL_STATIC_INLINE const char *
+S_get_regex_charset_name(const U32 flags, STRLEN * const lenp);
+#   define PERL_ARGS_ASSERT_GET_REGEX_CHARSET_NAME \
+        assert(lenp)
+
+# endif
+# if defined(U64TYPE)
+PERL_STATIC_INLINE unsigned
+Perl_lsbit_pos64(U64 word)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_LSBIT_POS64
+
+PERL_STATIC_INLINE unsigned
+Perl_msbit_pos64(U64 word)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_MSBIT_POS64
+
+PERL_STATIC_INLINE unsigned
+Perl_single_1bit_pos64(U64 word)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_SINGLE_1BIT_POS64
+
+# endif /* defined(U64TYPE) */
+# if defined(USE_ITHREADS)
+PERL_STATIC_INLINE AV *
+Perl_cop_file_avn(pTHX_ const COP *cop);
+#   define PERL_ARGS_ASSERT_COP_FILE_AVN        \
+        assert(cop)
+
+#   if !defined(PERL_IMPLICIT_SYS)
+PERL_STATIC_INLINE bool
+S_PerlEnv_putenv(pTHX_ char *str);
+#     define PERL_ARGS_ASSERT_PERLENV_PUTENV    \
+        assert(str)
+
+#   endif
+# endif /* defined(USE_ITHREADS) */
+# if !defined(WIN32)
+PERL_STATIC_INLINE void *
+Perl_get_context(void)
+        __attribute__warn_unused_result__;
+#   define PERL_ARGS_ASSERT_GET_CONTEXT
+
+# endif
+#endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
 #if defined(PERL_USE_3ARG_SIGHANDLER)
-PERL_CALLCONV Signal_t	Perl_csighandler(int sig, Siginfo_t *info, void *uap);
-#define PERL_ARGS_ASSERT_CSIGHANDLER
-PERL_CALLCONV Signal_t	Perl_sighandler(int sig, Siginfo_t *info, void *uap);
-#define PERL_ARGS_ASSERT_SIGHANDLER
-#endif
-#if defined(U64TYPE)	/* HAS_QUAD undefined outside of core */
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned	Perl_lsbit_pos64(U64 word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_LSBIT_POS64
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned	Perl_msbit_pos64(U64 word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MSBIT_POS64
-#endif
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE unsigned	Perl_single_1bit_pos64(U64 word)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SINGLE_1BIT_POS64
-#endif
+PERL_CALLCONV Signal_t
+Perl_csighandler(int sig, Siginfo_t *info, void *uap);
+# define PERL_ARGS_ASSERT_CSIGHANDLER
+
+PERL_CALLCONV Signal_t
+Perl_sighandler(int sig, Siginfo_t *info, void *uap)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SIGHANDLER
+
+#else /* if !defined(PERL_USE_3ARG_SIGHANDLER) */
+PERL_CALLCONV Signal_t
+Perl_csighandler(int sig);
+# define PERL_ARGS_ASSERT_CSIGHANDLER
+
+PERL_CALLCONV Signal_t
+Perl_sighandler(int sig)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_SIGHANDLER
+
+#endif /* !defined(PERL_USE_3ARG_SIGHANDLER) */
+#if defined(U64TYPE)
 
 #endif
 #if defined(UNLINK_ALL_VERSIONS)
-PERL_CALLCONV I32	Perl_unlnk(pTHX_ const char* f);
-#define PERL_ARGS_ASSERT_UNLNK	\
-	assert(f)
+PERL_CALLCONV I32
+Perl_unlnk(pTHX_ const char *f);
+# define PERL_ARGS_ASSERT_UNLNK                 \
+        assert(f)
+
 #endif
 #if defined(USE_C_BACKTRACE)
-PERL_CALLCONV bool	Perl_dump_c_backtrace(pTHX_ PerlIO* fp, int max_depth, int skip);
-#define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE	\
-	assert(fp)
-/* PERL_CALLCONV void	free_c_backtrace(pTHX_ Perl_c_backtrace* bt); */
-#define PERL_ARGS_ASSERT_FREE_C_BACKTRACE
-PERL_CALLCONV Perl_c_backtrace*	Perl_get_c_backtrace(pTHX_ int max_depth, int skip);
-#define PERL_ARGS_ASSERT_GET_C_BACKTRACE
-PERL_CALLCONV SV*	Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip);
-#define PERL_ARGS_ASSERT_GET_C_BACKTRACE_DUMP
-#endif
+PERL_CALLCONV bool
+Perl_dump_c_backtrace(pTHX_ PerlIO *fp, int max_depth, int skip);
+# define PERL_ARGS_ASSERT_DUMP_C_BACKTRACE      \
+        assert(fp)
+
+/* PERL_CALLCONV void
+free_c_backtrace(pTHX_ Perl_c_backtrace *bt); */
+
+PERL_CALLCONV Perl_c_backtrace *
+Perl_get_c_backtrace(pTHX_ int max_depth, int skip)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_C_BACKTRACE
+
+PERL_CALLCONV SV *
+Perl_get_c_backtrace_dump(pTHX_ int max_depth, int skip);
+# define PERL_ARGS_ASSERT_GET_C_BACKTRACE_DUMP
+
+#endif /* defined(USE_C_BACKTRACE) */
 #if defined(USE_DTRACE)
-PERL_CALLCONV void	Perl_dtrace_probe_call(pTHX_ CV *cv, bool is_call);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_CALL	\
-	assert(cv)
-PERL_CALLCONV void	Perl_dtrace_probe_load(pTHX_ const char *name, bool is_loading);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_LOAD	\
-	assert(name)
-PERL_CALLCONV void	Perl_dtrace_probe_op(pTHX_ const OP *op);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_OP	\
-	assert(op)
-PERL_CALLCONV void	Perl_dtrace_probe_phase(pTHX_ enum perl_phase phase);
-#define PERL_ARGS_ASSERT_DTRACE_PROBE_PHASE
-#endif
+PERL_CALLCONV void
+Perl_dtrace_probe_call(pTHX_ CV *cv, bool is_call);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_CALL     \
+        assert(cv)
+
+PERL_CALLCONV void
+Perl_dtrace_probe_load(pTHX_ const char *name, bool is_loading);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_LOAD     \
+        assert(name)
+
+PERL_CALLCONV void
+Perl_dtrace_probe_op(pTHX_ const OP *op);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_OP       \
+        assert(op)
+
+PERL_CALLCONV void
+Perl_dtrace_probe_phase(pTHX_ enum perl_phase phase);
+# define PERL_ARGS_ASSERT_DTRACE_PROBE_PHASE
+
+#endif /* defined(USE_DTRACE) */
 #if defined(USE_ITHREADS)
-PERL_CALLCONV PADOFFSET	Perl_alloccopstash(pTHX_ HV *hv);
-#define PERL_ARGS_ASSERT_ALLOCCOPSTASH	\
-	assert(hv)
-PERL_CALLCONV void*	Perl_any_dup(pTHX_ void* v, const PerlInterpreter* proto_perl)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_ANY_DUP	\
-	assert(proto_perl)
-
-PERL_CALLCONV void	Perl_clone_params_del(CLONE_PARAMS *param);
-#define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL	\
-	assert(param)
-PERL_CALLCONV CLONE_PARAMS *	Perl_clone_params_new(PerlInterpreter *const from, PerlInterpreter *const to)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW	\
-	assert(from); assert(to)
-
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE AV*	Perl_cop_file_avn(pTHX_ const COP *cop);
-#define PERL_ARGS_ASSERT_COP_FILE_AVN	\
-	assert(cop)
-#endif
-PERL_CALLCONV PERL_CONTEXT*	Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_CX_DUP	\
-	assert(param)
-
-PERL_CALLCONV DIR*	Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_DIRP_DUP	\
-	assert(param)
-
-PERL_CALLCONV PerlIO*	Perl_fp_dup(pTHX_ PerlIO *const fp, const char type, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_FP_DUP	\
-	assert(param)
-PERL_CALLCONV GP*	Perl_gp_dup(pTHX_ GP *const gp, CLONE_PARAMS *const param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_GP_DUP	\
-	assert(param)
-
-PERL_CALLCONV HE*	Perl_he_dup(pTHX_ const HE* e, bool shared, CLONE_PARAMS* param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HE_DUP	\
-	assert(param)
-
-PERL_CALLCONV HEK*	Perl_hek_dup(pTHX_ HEK* e, CLONE_PARAMS* param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_HEK_DUP	\
-	assert(param)
-
-PERL_CALLCONV MAGIC*	Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *const param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_MG_DUP	\
-	assert(param)
-
-PERL_CALLCONV struct mro_meta*	Perl_mro_meta_dup(pTHX_ struct mro_meta* smeta, CLONE_PARAMS* param);
-#define PERL_ARGS_ASSERT_MRO_META_DUP	\
-	assert(smeta); assert(param)
-PERL_CALLCONV OP*	Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_NEWPADOP	\
-	assert(sv)
-
-PERL_CALLCONV PADLIST *	Perl_padlist_dup(pTHX_ PADLIST *srcpad, CLONE_PARAMS *param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PADLIST_DUP	\
-	assert(srcpad); assert(param)
-
-PERL_CALLCONV PADNAME *	Perl_padname_dup(pTHX_ PADNAME *src, CLONE_PARAMS *param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PADNAME_DUP	\
-	assert(src); assert(param)
-
-PERL_CALLCONV PADNAMELIST *	Perl_padnamelist_dup(pTHX_ PADNAMELIST *srcpad, CLONE_PARAMS *param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PADNAMELIST_DUP	\
-	assert(srcpad); assert(param)
-
-PERL_CALLCONV yy_parser*	Perl_parser_dup(pTHX_ const yy_parser *const proto, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_PARSER_DUP	\
-	assert(param)
-PERL_CALLCONV PerlInterpreter*	perl_clone(PerlInterpreter *proto_perl, UV flags);
-#define PERL_ARGS_ASSERT_PERL_CLONE	\
-	assert(proto_perl)
-PERL_CALLCONV void	Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS* param);
-#define PERL_ARGS_ASSERT_RE_DUP_GUTS	\
-	assert(sstr); assert(dstr); assert(param)
-PERL_CALLCONV void*	Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS* param);
-#define PERL_ARGS_ASSERT_REGDUPE_INTERNAL	\
-	assert(r); assert(param)
-PERL_CALLCONV void	Perl_rvpv_dup(pTHX_ SV *const dsv, const SV *const ssv, CLONE_PARAMS *const param);
-#define PERL_ARGS_ASSERT_RVPV_DUP	\
-	assert(dsv); assert(ssv); assert(param)
-PERL_CALLCONV PERL_SI*	Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SI_DUP	\
-	assert(param)
-
-PERL_CALLCONV ANY*	Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS* param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SS_DUP	\
-	assert(proto_perl); assert(param)
-
-PERL_CALLCONV SV*	Perl_sv_dup(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DUP	\
-	assert(param)
-
-PERL_CALLCONV SV*	Perl_sv_dup_inc(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_SV_DUP_INC	\
-	assert(param)
-
-#endif
-#if defined(USE_LOCALE)		    && (   defined(PERL_IN_LOCALE_C)	        || defined(PERL_IN_MG_C)		|| defined (PERL_EXT_POSIX)		|| defined (PERL_EXT_LANGINFO))
-PERL_CALLCONV bool	Perl__is_cur_LC_category_utf8(pTHX_ int category);
-#define PERL_ARGS_ASSERT__IS_CUR_LC_CATEGORY_UTF8
+PERL_CALLCONV PADOFFSET
+Perl_alloccopstash(pTHX_ HV *hv);
+# define PERL_ARGS_ASSERT_ALLOCCOPSTASH         \
+        assert(hv)
+
+PERL_CALLCONV void *
+Perl_any_dup(pTHX_ void *v, const PerlInterpreter *proto_perl)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_ANY_DUP               \
+        assert(proto_perl)
+
+PERL_CALLCONV void
+Perl_clone_params_del(CLONE_PARAMS *param);
+# define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL      \
+        assert(param)
+
+PERL_CALLCONV CLONE_PARAMS *
+Perl_clone_params_new(PerlInterpreter * const from, PerlInterpreter * const to)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW      \
+        assert(from); assert(to)
+
+PERL_CALLCONV PERL_CONTEXT *
+Perl_cx_dup(pTHX_ PERL_CONTEXT *cx, I32 ix, I32 max, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_CX_DUP                \
+        assert(param)
+
+PERL_CALLCONV DIR *
+Perl_dirp_dup(pTHX_ DIR * const dp, CLONE_PARAMS * const param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_DIRP_DUP              \
+        assert(param)
+
+PERL_CALLCONV PerlIO *
+Perl_fp_dup(pTHX_ PerlIO * const fp, const char type, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_FP_DUP                \
+        assert(param)
+
+PERL_CALLCONV GP *
+Perl_gp_dup(pTHX_ GP * const gp, CLONE_PARAMS * const param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GP_DUP                \
+        assert(param)
+
+PERL_CALLCONV HE *
+Perl_he_dup(pTHX_ const HE *e, bool shared, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HE_DUP                \
+        assert(param)
+
+PERL_CALLCONV HEK *
+Perl_hek_dup(pTHX_ HEK *e, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_HEK_DUP               \
+        assert(param)
+
+PERL_CALLCONV MAGIC *
+Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS * const param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_MG_DUP                \
+        assert(param)
+
+PERL_CALLCONV struct mro_meta *
+Perl_mro_meta_dup(pTHX_ struct mro_meta *smeta, CLONE_PARAMS *param)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MRO_META_DUP          \
+        assert(smeta); assert(param)
+
+PERL_CALLCONV OP *
+Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_NEWPADOP              \
+        assert(sv)
+
+PERL_CALLCONV PADLIST *
+Perl_padlist_dup(pTHX_ PADLIST *srcpad, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PADLIST_DUP           \
+        assert(srcpad); assert(param)
+
+PERL_CALLCONV PADNAME *
+Perl_padname_dup(pTHX_ PADNAME *src, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PADNAME_DUP           \
+        assert(src); assert(param)
+
+PERL_CALLCONV PADNAMELIST *
+Perl_padnamelist_dup(pTHX_ PADNAMELIST *srcpad, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_PADNAMELIST_DUP       \
+        assert(srcpad); assert(param)
+
+PERL_CALLCONV yy_parser *
+Perl_parser_dup(pTHX_ const yy_parser * const proto, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_PARSER_DUP            \
+        assert(param)
+
+PERL_CALLCONV PerlInterpreter *
+perl_clone(PerlInterpreter *proto_perl, UV flags);
+# define PERL_ARGS_ASSERT_PERL_CLONE            \
+        assert(proto_perl)
+
+PERL_CALLCONV void
+Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS *param);
+# define PERL_ARGS_ASSERT_RE_DUP_GUTS           \
+        assert(sstr); assert(dstr); assert(param)
+
+PERL_CALLCONV void *
+Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS *param);
+# define PERL_ARGS_ASSERT_REGDUPE_INTERNAL      \
+        assert(r); assert(param)
+
+PERL_CALLCONV void
+Perl_rvpv_dup(pTHX_ SV * const dsv, const SV * const ssv, CLONE_PARAMS * const param);
+# define PERL_ARGS_ASSERT_RVPV_DUP              \
+        assert(dsv); assert(ssv); assert(param)
+
+PERL_CALLCONV PERL_SI *
+Perl_si_dup(pTHX_ PERL_SI *si, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SI_DUP                \
+        assert(param)
+
+PERL_CALLCONV ANY *
+Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS *param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SS_DUP                \
+        assert(proto_perl); assert(param)
+
+PERL_CALLCONV SV *
+Perl_sv_dup(pTHX_ const SV * const ssv, CLONE_PARAMS * const param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_DUP                \
+        assert(param)
+
+PERL_CALLCONV SV *
+Perl_sv_dup_inc(pTHX_ const SV * const ssv, CLONE_PARAMS * const param)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_SV_DUP_INC            \
+        assert(param)
+
+# if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+PERL_CALLCONV void
+Perl_op_relocate_sv(pTHX_ SV **svp, PADOFFSET *targp)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_OP_RELOCATE_SV      \
+        assert(svp); assert(targp)
+
+# endif
+#else /* if !defined(USE_ITHREADS) */
+/* PERL_CALLCONV void
+CopFILEGV_set(pTHX_ COP *c, GV *gv); */
+
 #endif
 #if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV int	Perl_magic_freecollxfrm(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_FREECOLLXFRM	\
-	assert(sv); assert(mg)
-PERL_CALLCONV int	Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM	\
-	assert(sv); assert(mg)
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_mem_collxfrm(pTHX_ const char* input_string, STRLEN len, STRLEN* xlen)
-			__attribute__deprecated__;
-#define PERL_ARGS_ASSERT_MEM_COLLXFRM	\
-	assert(input_string); assert(xlen)
-#endif
-
-#ifndef NO_MATHOMS
-PERL_CALLCONV char*	Perl_sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp);
-#define PERL_ARGS_ASSERT_SV_COLLXFRM	\
-	assert(sv); assert(nxp)
-#endif
-PERL_CALLCONV char*	Perl_sv_collxfrm_flags(pTHX_ SV *const sv, STRLEN *const nxp, I32 const flags);
-#define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS	\
-	assert(sv); assert(nxp)
-#endif
+PERL_CALLCONV int
+Perl_magic_freecollxfrm(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_FREECOLLXFRM    \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV int
+Perl_magic_setcollxfrm(pTHX_ SV *sv, MAGIC *mg)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM     \
+        assert(sv); assert(mg)
+
+PERL_CALLCONV SV *
+Perl_strxfrm(pTHX_ SV *src);
+# define PERL_ARGS_ASSERT_STRXFRM               \
+        assert(src)
+
+PERL_CALLCONV char *
+Perl_sv_collxfrm_flags(pTHX_ SV * const sv, STRLEN * const nxp, I32 const flags);
+# define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS     \
+        assert(sv); assert(nxp)
+
+# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
+     defined(PERL_IN_SV_C)
+PERL_CALLCONV char *
+Perl_mem_collxfrm_(pTHX_ const char *input_string, STRLEN len, STRLEN *xlen, bool utf8)
+        __attribute__visibility__("hidden");
+#   define PERL_ARGS_ASSERT_MEM_COLLXFRM_       \
+        assert(input_string); assert(xlen)
+
+# endif
+#endif /* defined(USE_LOCALE_COLLATE) */
 #if defined(USE_PERLIO)
-PERL_CALLCONV void	Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_CLEARERR
-PERL_CALLCONV int	Perl_PerlIO_close(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_CLOSE
-PERL_CALLCONV int	Perl_PerlIO_eof(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_EOF
-PERL_CALLCONV int	Perl_PerlIO_error(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_ERROR
-PERL_CALLCONV int	Perl_PerlIO_fileno(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_FILENO
-PERL_CALLCONV int	Perl_PerlIO_fill(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_FILL
-PERL_CALLCONV int	Perl_PerlIO_flush(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_FLUSH
-PERL_CALLCONV STDCHAR *	Perl_PerlIO_get_base(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_GET_BASE
-PERL_CALLCONV SSize_t	Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_GET_BUFSIZ
-
-PERL_CALLCONV SSize_t	Perl_PerlIO_get_cnt(pTHX_ PerlIO *f)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_GET_CNT
-
-PERL_CALLCONV STDCHAR *	Perl_PerlIO_get_ptr(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_GET_PTR
-PERL_CALLCONV SSize_t	Perl_PerlIO_read(pTHX_ PerlIO *f, void *vbuf, Size_t count);
-#define PERL_ARGS_ASSERT_PERLIO_READ	\
-	assert(vbuf)
-PERL_CALLCONV void	Perl_PerlIO_restore_errno(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_RESTORE_ERRNO
-PERL_CALLCONV void	Perl_PerlIO_save_errno(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_SAVE_ERRNO
-PERL_CALLCONV int	Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
-#define PERL_ARGS_ASSERT_PERLIO_SEEK
-PERL_CALLCONV void	Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, SSize_t cnt);
-#define PERL_ARGS_ASSERT_PERLIO_SET_CNT
-PERL_CALLCONV void	Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, SSize_t cnt);
-#define PERL_ARGS_ASSERT_PERLIO_SET_PTRCNT
-PERL_CALLCONV void	Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_SETLINEBUF
-PERL_CALLCONV PerlIO *	Perl_PerlIO_stderr(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_STDERR
-
-PERL_CALLCONV PerlIO *	Perl_PerlIO_stdin(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_STDIN
-
-PERL_CALLCONV PerlIO *	Perl_PerlIO_stdout(pTHX)
-			__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_PERLIO_STDOUT
-
-PERL_CALLCONV Off_t	Perl_PerlIO_tell(pTHX_ PerlIO *f);
-#define PERL_ARGS_ASSERT_PERLIO_TELL
-PERL_CALLCONV SSize_t	Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
-#define PERL_ARGS_ASSERT_PERLIO_UNREAD	\
-	assert(vbuf)
-PERL_CALLCONV SSize_t	Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
-#define PERL_ARGS_ASSERT_PERLIO_WRITE	\
-	assert(vbuf)
+PERL_CALLCONV void
+Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_CLEARERR
+
+PERL_CALLCONV int
+Perl_PerlIO_close(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_CLOSE
+
+PERL_CALLCONV int
+Perl_PerlIO_eof(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_EOF
+
+PERL_CALLCONV int
+Perl_PerlIO_error(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_ERROR
+
+PERL_CALLCONV int
+Perl_PerlIO_fileno(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_FILENO
+
+PERL_CALLCONV int
+Perl_PerlIO_fill(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_FILL
+
+PERL_CALLCONV int
+Perl_PerlIO_flush(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_FLUSH
+
+PERL_CALLCONV STDCHAR *
+Perl_PerlIO_get_base(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_GET_BASE
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_GET_BUFSIZ
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_get_cnt(pTHX_ PerlIO *f)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_GET_CNT
+
+PERL_CALLCONV STDCHAR *
+Perl_PerlIO_get_ptr(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_GET_PTR
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_read(pTHX_ PerlIO *f, void *vbuf, Size_t count);
+# define PERL_ARGS_ASSERT_PERLIO_READ           \
+        assert(vbuf)
+
+PERL_CALLCONV void
+Perl_PerlIO_restore_errno(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_RESTORE_ERRNO
+
+PERL_CALLCONV void
+Perl_PerlIO_save_errno(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_SAVE_ERRNO
+
+PERL_CALLCONV int
+Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
+# define PERL_ARGS_ASSERT_PERLIO_SEEK
+
+PERL_CALLCONV void
+Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, SSize_t cnt);
+# define PERL_ARGS_ASSERT_PERLIO_SET_CNT
+
+PERL_CALLCONV void
+Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, SSize_t cnt);
+# define PERL_ARGS_ASSERT_PERLIO_SET_PTRCNT
+
+PERL_CALLCONV void
+Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_SETLINEBUF
+
+PERL_CALLCONV PerlIO *
+Perl_PerlIO_stderr(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_STDERR
+
+PERL_CALLCONV PerlIO *
+Perl_PerlIO_stdin(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_STDIN
+
+PERL_CALLCONV PerlIO *
+Perl_PerlIO_stdout(pTHX)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_PERLIO_STDOUT
+
+PERL_CALLCONV Off_t
+Perl_PerlIO_tell(pTHX_ PerlIO *f);
+# define PERL_ARGS_ASSERT_PERLIO_TELL
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
+# define PERL_ARGS_ASSERT_PERLIO_UNREAD         \
+        assert(vbuf)
+
+PERL_CALLCONV SSize_t
+Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
+# define PERL_ARGS_ASSERT_PERLIO_WRITE          \
+        assert(vbuf)
+
+#endif /* defined(USE_PERLIO) */
+#if defined(USE_PERL_SWITCH_LOCALE_CONTEXT)
+PERL_CALLCONV void
+Perl_switch_locale_context(void);
+# define PERL_ARGS_ASSERT_SWITCH_LOCALE_CONTEXT
+
 #endif
 #if defined(USE_QUADMATH)
-PERL_CALLCONV bool	Perl_quadmath_format_needed(const char* format);
-#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED	\
-	assert(format)
-PERL_CALLCONV bool	Perl_quadmath_format_valid(const char* format);
-#define PERL_ARGS_ASSERT_QUADMATH_FORMAT_VALID	\
-	assert(format)
-#endif
+PERL_CALLCONV bool
+Perl_quadmath_format_needed(const char *format)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED \
+        assert(format)
+
+PERL_CALLCONV bool
+Perl_quadmath_format_valid(const char *format)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_QUADMATH_FORMAT_VALID \
+        assert(format)
+
+#endif /* defined(USE_QUADMATH) */
+#if defined(VMS) || defined(WIN32)
+PERL_CALLCONV int
+Perl_do_aspawn(pTHX_ SV *really, SV **mark, SV **sp);
+# define PERL_ARGS_ASSERT_DO_ASPAWN             \
+        assert(mark); assert(sp)
+
+PERL_CALLCONV int
+Perl_do_spawn(pTHX_ char *cmd);
+# define PERL_ARGS_ASSERT_DO_SPAWN              \
+        assert(cmd)
+
+PERL_CALLCONV int
+Perl_do_spawn_nowait(pTHX_ char *cmd);
+# define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT       \
+        assert(cmd)
+
+#endif /* defined(VMS) || defined(WIN32) */
 #if defined(WIN32)
-PERL_CALLCONV_NO_RET void	win32_croak_not_implemented(const char * fname)
-			__attribute__noreturn__;
-#define PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED	\
-	assert(fname)
-
-#endif
-#if defined(WIN32) || defined(VMS)
-PERL_CALLCONV int	Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp);
-#define PERL_ARGS_ASSERT_DO_ASPAWN	\
-	assert(mark); assert(sp)
-PERL_CALLCONV int	Perl_do_spawn(pTHX_ char* cmd);
-#define PERL_ARGS_ASSERT_DO_SPAWN	\
-	assert(cmd)
-PERL_CALLCONV int	Perl_do_spawn_nowait(pTHX_ char* cmd);
-#define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT	\
-	assert(cmd)
-#endif
-#if defined(_MSC_VER)
-PERL_CALLCONV int	Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg);
-#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET	\
-	assert(sv); assert(mg)
+PERL_CALLCONV void *
+Perl_get_context(void)
+        __attribute__warn_unused_result__;
+# define PERL_ARGS_ASSERT_GET_CONTEXT
+
+PERL_CALLCONV bool
+Perl_get_win32_message_utf8ness(pTHX_ const char *string)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_GET_WIN32_MESSAGE_UTF8NESS
+
+PERL_CALLCONV_NO_RET void
+win32_croak_not_implemented(const char *fname)
+        __attribute__noreturn__;
+# define PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED \
+        assert(fname)
+
+#else /* if !defined(WIN32) */
+PERL_CALLCONV bool
+Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report)
+        __attribute__visibility__("hidden");
+# define PERL_ARGS_ASSERT_DO_EXEC3              \
+        assert(incmd)
+
 #endif
+
 #ifdef PERL_CORE
 #  include "pp_proto.h"
 #endif
 END_EXTERN_C
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/reentr.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/reentr.c,v
diff -u -p -a -u -p -r1.5 reentr.c
--- gnu/usr.bin/perl/reentr.c	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/reentr.c	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    reentr.c
  *
@@ -677,4 +677,4 @@ Perl_reentrant_retry(const char *f, ...)
     return retptr;
 }
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/reentr.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/reentr.h,v
diff -u -p -a -u -p -r1.1.1.12 reentr.h
--- gnu/usr.bin/perl/reentr.h	15 Feb 2023 01:32:01 -0000	1.1.1.12
+++ gnu/usr.bin/perl/reentr.h	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    reentr.h
  *
@@ -1697,4 +1697,4 @@ typedef struct {
 
 #endif
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/regcharclass.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regcharclass.h,v
diff -u -p -a -u -p -r1.6 regcharclass.h
--- gnu/usr.bin/perl/regcharclass.h	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/regcharclass.h	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    regcharclass.h
  *
@@ -3802,56 +3802,57 @@
 
 /* Generated from:
  * 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
- * c7698811e9adb6cc98fb996a7de4be2b6532f2ac67e76055cc8afdbf6ee18af3 lib/unicore/ArabicShaping.txt
- * 24a74555f918bbe99f5b3f1b83cf36fc0e205bb8a600a6a3aa539c710a3dcf27 lib/unicore/BidiBrackets.txt
- * 7a5c74cedc1616a9af0a9d22e108ae592d86fe93649c144ae6ba49f193a44122 lib/unicore/BidiMirroring.txt
- * 598870dddef7b34b5a972916528c456aff2765b79cd4f9647fb58ceb767e7f17 lib/unicore/Blocks.txt
- * a566cd48687b2cd897e02501118b2413c14ae86d318f9abbbba97feb84189f0f lib/unicore/CaseFolding.txt
- * 3360762fc3295cea54ab251c31df621d05ba4b94d46c60eaac29aa16d70ad1e0 lib/unicore/CompositionExclusions.txt
- * 7e058dec02147098bc9c28d86209f0f251bba0538f3b5a705ad02ea3bb709fe0 lib/unicore/DAge.txt
- * e3eddd7d469cd1b0feed7528defad1a1cc7c6a9ceb0ae4446a6d10921ed2e7bc lib/unicore/DCoreProperties.txt
- * b2c444c20730b097787fdf50bd7d6dd3fc5256ab8084f5b35b11c8776eca674c lib/unicore/DNormalizationProps.txt
- * f901ac011aa32a09224d6555da71e2532c59c1d3381322829de0e3b880507250 lib/unicore/EastAsianWidth.txt
- * 5995522f01633073911dad1edb74d13aa832f42862c0392a79627b85d52f2391 lib/unicore/EquivalentUnifiedIdeograph.txt
- * cd1c9367cba438afa965fcb5edc6ed3ec6e685fd5dd21c0cc20c026f04beb0e5 lib/unicore/HangulSyllableType.txt
- * 3f3f368fccdb37f350ecedc20b37fa71ab31c04e847884c77780d34283539f73 lib/unicore/IdStatus.txt
- * 45a150c23961b58d7784704af6c4daccd6517d97b6489e53d13bbdbf9e4f065f lib/unicore/IdType.txt
- * d8704c8725568813a947ff2ef38bcf1f05e2a6fbea6876ba384890f187a8bf61 lib/unicore/IndicPositionalCategory.txt
- * c7b969b653dc278fb66ab4136223d320e30ad19367eb791ae60dcc6d92071b16 lib/unicore/IndicSyllabicCategory.txt
- * 39ff89e0a329e1ccce6d54fad8cf82e90926901928c0ca9b9a2ad5681f330dd9 lib/unicore/Jamo.txt
- * 9e06e9f35c6959fb91dcc7993f90d58523c3079bc62c6b25f828b4cdebc5d70c lib/unicore/LineBreak.txt
- * 14b3b677d33f95c51423dce6eef4a6a28b4b160451ecedee4b91edb6745cf4a3 lib/unicore/NameAliases.txt
- * db5745688affcdc0c3927a1ee0667018a96a7b24513f866d5235e98fef6c2436 lib/unicore/NamedSequences.txt
- * 6bddfdb850417a5bee6deff19290fd1b138589909afb50f5a049f343bf2c6722 lib/unicore/PropList.txt
- * eb755757e20b72b330b2948df3cf2ff7adb0e31bb060140dc09dafb132ace2cd lib/unicore/PropValueAliases.txt
- * 859d7225f2d2a460b3ccb1d61a7945f8cc219acdf5aa53b66b7a1e4bf6ebfc87 lib/unicore/PropertyAliases.txt
- * d37eedf63ff9c48bac863d5f76862373d6cf5269fd21253d499e2430d638c01d lib/unicore/ScriptExtensions.txt
- * 52db475c4ec445e73b0b16915448c357614946ad7062843c563e00d7535c6510 lib/unicore/Scripts.txt
- * c667b45908fd269af25fd55d2fc5bbc157fb1b77675936e25c513ce32e080334 lib/unicore/SpecialCasing.txt
- * 36018e68657fdcb3485f636630ffe8c8532e01c977703d2803f5b89d6c5feafb lib/unicore/UnicodeData.txt
- * 869ff43dd012f924d03c89fc268c88f0e7eea72f0228b91ca30455afdb84f8fd lib/unicore/VerticalOrientation.txt
- * ddc7d4d1f3838573b94fc5d83ff7217e63c47b22ae1cd40c5fe1a54efc15589b lib/unicore/auxiliary/GCBTest.txt
- * 97e79f1f8d9cd76d120f2420381a01abc00a7c78a2aa583fa3f9627264a99742 lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * 488dbb6a7e1d0070d4aa7c175352c818ff6425172850d1b40c6177726658cb05 lib/unicore/auxiliary/LBTest.txt
- * 7e42dd749dbb94aa44b13faf9df6319d9a16ce2ea09a3a094fcfbb5962168040 lib/unicore/auxiliary/SBTest.txt
- * 7092ca4117cec891c25c7724132efc519e1dece01ae9fd6068035a9db04d526e lib/unicore/auxiliary/SentenceBreakProperty.txt
- * 8094b544ec1580c7e41ac0187805cc1aeb330a90301ec7505563e1a59318284e lib/unicore/auxiliary/WBTest.txt
- * 7716752aad296d4ab23ff4ed0a2746fc5328750ff84e9e7d6f3828ee9eaef742 lib/unicore/auxiliary/WordBreakProperty.txt
- * b597836124298b8f7fa076273802840cfc3271a25f5c397a082e120954b82c3c lib/unicore/emoji/emoji.txt
- * e5fe51acc74e3e83b4fb4c7b25f3c34491d6eb8095c9955d0712dafbca7b3c2b lib/unicore/extracted/DBidiClass.txt
- * cd0a14176d93bf440b77a582a0d678190fc0688b15442d4cfb250bf2e27956af lib/unicore/extracted/DBinaryProperties.txt
- * 12b0c3af9b600b49488d66545a3e7844ea980809627201bf9afeebe1c9f16f4e lib/unicore/extracted/DCombiningClass.txt
- * f76064b298cfbd715ba542e7894f7a507d32da2f011070d1d01df95cad9817d6 lib/unicore/extracted/DDecompositionType.txt
- * f9bef074cc916db57fece99d54a4505f8e7c7b17481619e3f0005211f7717d4b lib/unicore/extracted/DEastAsianWidth.txt
- * cde679c8461976ed40d7edf61ae98cbb947540831f06f5bc7da7decbf91a1420 lib/unicore/extracted/DGeneralCategory.txt
- * 9bb891831328713603a486a4a03df7f7987c3e1e8144a6d1ac71fd061ef3f732 lib/unicore/extracted/DJoinGroup.txt
- * e97c65bbea0a69d2fae6ec4182b09e519e13232e20bd804b3004edc0f36bb0d4 lib/unicore/extracted/DJoinType.txt
- * 43f6df50e4878f501b417e366b0ee097ae5ccb2d4ce942026bed3d62d78e7887 lib/unicore/extracted/DLineBreak.txt
- * a04502ebb36a45d83cbe48a7d8132ea8143edb7b3d34d0aa6afe4a9685049741 lib/unicore/extracted/DNumType.txt
- * 11075771b112e8e7ccf6ffa637c4c91eadc3ef3db0517b24e605df8fd3624239 lib/unicore/extracted/DNumValues.txt
- * 1e514199c3fa46f5df6148d272db7bddbfd5e89c9710e39773ef9d734f344a2f lib/unicore/mktables
- * c72bbdeda99714db1c8024d3311da4aef3c0db3b9b9f11455a7cfe10d5e9aba3 lib/unicore/version
+ * eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+ * 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+ * b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+ * 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+ * cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+ * 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+ * 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+ * d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+ * d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+ * 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+ * f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+ * 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+ * 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+ * 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+ * 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+ * ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+ * 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+ * 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+ * 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+ * 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+ * fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+ * e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+ * 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+ * e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+ * 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+ * cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+ * 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+ * 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+ * ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+ * 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+ * 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+ * f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+ * 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+ * 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+ * 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+ * f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+ * ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+ * db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+ * d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+ * fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+ * e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+ * c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+ * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+ * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+ * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+ * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
  * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
  * acc94e4afc339fe2cf2ae74d6e1cbcf2c396328d78e56236ad314eadbfc84125 regen/regcharclass.pl
  * b2f896452d2b30da3e04800f478c60c1fd0b03d6b668689b020f1e3cf1f1cdd9 regen/regcharclass_multi_char_folds.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/regcomp.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regcomp.c,v
diff -u -p -a -u -p -r1.34 regcomp.c
--- gnu/usr.bin/perl/regcomp.c	26 Nov 2023 16:52:12 -0000	1.34
+++ gnu/usr.bin/perl/regcomp.c	21 Feb 2024 15:47:03 -0000
@@ -31,10 +31,6 @@
  * with the POSIX routines of the same names.
 */
 
-#ifdef PERL_EXT_RE_BUILD
-#include "re_top.h"
-#endif
-
 /*
  * pregcomp and pregexec -- regsub and regerror are not used in perl
  *
@@ -95,7 +91,7 @@
  *          #ifndef PERL_IN_XSUB_RE
  *          ...
  *          #endif
- *      blocks, so there is only one defintion for them in the whole
+ *      blocks, so there is only one definition for them in the whole
  *      executable, the one in regcomp.c (or regexec.c).  The implication of
  *      that is any debugging info that comes from them is controlled only by
  *      -Dr.  Further, any static function they call will also be the version
@@ -127,11 +123,16 @@
  * access data that we don't want to duplicate.
  */
 
+#ifdef PERL_EXT_RE_BUILD
+#include "re_top.h"
+#endif
+
 #include "EXTERN.h"
+#define PERL_IN_REGEX_ENGINE
+#define PERL_IN_REGCOMP_ANY
 #define PERL_IN_REGCOMP_C
 #include "perl.h"
 
-#define REG_COMP_C
 #ifdef PERL_IN_XSUB_RE
 #  include "re_comp.h"
 EXTERN_C const struct regexp_engine my_reg_engine;
@@ -142,1296 +143,7 @@ EXTERN_C const struct regexp_engine wild
 
 #include "invlist_inline.h"
 #include "unicode_constants.h"
-
-#ifndef STATIC
-#define	STATIC	static
-#endif
-
-/* this is a chain of data about sub patterns we are processing that
-   need to be handled separately/specially in study_chunk. Its so
-   we can simulate recursion without losing state.  */
-struct scan_frame;
-typedef struct scan_frame {
-    regnode *last_regnode;      /* last node to process in this frame */
-    regnode *next_regnode;      /* next node to process when last is reached */
-    U32 prev_recursed_depth;
-    I32 stopparen;              /* what stopparen do we use */
-    bool in_gosub;              /* this or an outer frame is for GOSUB */
-
-    struct scan_frame *this_prev_frame; /* this previous frame */
-    struct scan_frame *prev_frame;      /* previous frame */
-    struct scan_frame *next_frame;      /* next frame */
-} scan_frame;
-
-/* Certain characters are output as a sequence with the first being a
- * backslash. */
-#define isBACKSLASHED_PUNCT(c)  memCHRs("-[]\\^", c)
-
-
-struct RExC_state_t {
-    U32		flags;			/* RXf_* are we folding, multilining? */
-    U32		pm_flags;		/* PMf_* stuff from the calling PMOP */
-    char	*precomp;		/* uncompiled string. */
-    char	*precomp_end;		/* pointer to end of uncompiled string. */
-    REGEXP	*rx_sv;			/* The SV that is the regexp. */
-    regexp	*rx;                    /* perl core regexp structure */
-    regexp_internal	*rxi;           /* internal data for regexp object
-                                           pprivate field */
-    char	*start;			/* Start of input for compile */
-    char	*end;			/* End of input for compile */
-    char	*parse;			/* Input-scan pointer. */
-    char        *copy_start;            /* start of copy of input within
-                                           constructed parse string */
-    char        *save_copy_start;       /* Provides one level of saving
-                                           and restoring 'copy_start' */
-    char        *copy_start_in_input;   /* Position in input string
-                                           corresponding to copy_start */
-    SSize_t	whilem_seen;		/* number of WHILEM in this expr */
-    regnode	*emit_start;		/* Start of emitted-code area */
-    regnode_offset emit;		/* Code-emit pointer */
-    I32		naughty;		/* How bad is this pattern? */
-    I32		sawback;		/* Did we see \1, ...? */
-    SSize_t	size;			/* Number of regnode equivalents in
-                                           pattern */
-    Size_t      sets_depth;              /* Counts recursion depth of already-
-                                           compiled regex set patterns */
-    U32		seen;
-
-    I32      parens_buf_size;           /* #slots malloced open/close_parens */
-    regnode_offset *open_parens;	/* offsets to open parens */
-    regnode_offset *close_parens;	/* offsets to close parens */
-    HV		*paren_names;		/* Paren names */
-
-    /* position beyond 'precomp' of the warning message furthest away from
-     * 'precomp'.  During the parse, no warnings are raised for any problems
-     * earlier in the parse than this position.  This works if warnings are
-     * raised the first time a given spot is parsed, and if only one
-     * independent warning is raised for any given spot */
-    Size_t	latest_warn_offset;
-
-    I32         npar;                   /* Capture buffer count so far in the
-                                           parse, (OPEN) plus one. ("par" 0 is
-                                           the whole pattern)*/
-    I32         total_par;              /* During initial parse, is either 0,
-                                           or -1; the latter indicating a
-                                           reparse is needed.  After that pass,
-                                           it is what 'npar' became after the
-                                           pass.  Hence, it being > 0 indicates
-                                           we are in a reparse situation */
-    I32		nestroot;		/* root parens we are in - used by
-                                           accept */
-    I32		seen_zerolen;
-    regnode     *end_op;                /* END node in program */
-    I32		utf8;		/* whether the pattern is utf8 or not */
-    I32		orig_utf8;	/* whether the pattern was originally in utf8 */
-                                /* XXX use this for future optimisation of case
-                                 * where pattern must be upgraded to utf8. */
-    I32		uni_semantics;	/* If a d charset modifier should use unicode
-                                   rules, even if the pattern is not in
-                                   utf8 */
-
-    I32         recurse_count;          /* Number of recurse regops we have generated */
-    regnode	**recurse;		/* Recurse regops */
-    U8          *study_chunk_recursed;  /* bitmap of which subs we have moved
-                                           through */
-    U32         study_chunk_recursed_bytes;  /* bytes in bitmap */
-    I32		in_lookaround;
-    I32		contains_locale;
-    I32		override_recoding;
-    I32         recode_x_to_native;
-    I32		in_multi_char_class;
-    int		code_index;		/* next code_blocks[] slot */
-    struct reg_code_blocks *code_blocks;/* positions of literal (?{})
-                                            within pattern */
-    SSize_t     maxlen;                        /* mininum possible number of chars in string to match */
-    scan_frame *frame_head;
-    scan_frame *frame_last;
-    U32         frame_count;
-    AV         *warn_text;
-    HV         *unlexed_names;
-    SV		*runtime_code_qr;	/* qr with the runtime code blocks */
-#ifdef DEBUGGING
-    const char  *lastparse;
-    I32         lastnum;
-    U32         study_chunk_recursed_count;
-    AV          *paren_name_list;       /* idx -> name */
-    SV          *mysv1;
-    SV          *mysv2;
-
-#define RExC_lastparse	(pRExC_state->lastparse)
-#define RExC_lastnum	(pRExC_state->lastnum)
-#define RExC_paren_name_list    (pRExC_state->paren_name_list)
-#define RExC_study_chunk_recursed_count    (pRExC_state->study_chunk_recursed_count)
-#define RExC_mysv	(pRExC_state->mysv1)
-#define RExC_mysv1	(pRExC_state->mysv1)
-#define RExC_mysv2	(pRExC_state->mysv2)
-
-#endif
-    bool        seen_d_op;
-    bool        strict;
-    bool        study_started;
-    bool        in_script_run;
-    bool        use_BRANCHJ;
-    bool        sWARN_EXPERIMENTAL__VLB;
-    bool        sWARN_EXPERIMENTAL__REGEX_SETS;
-};
-
-#define RExC_flags	(pRExC_state->flags)
-#define RExC_pm_flags	(pRExC_state->pm_flags)
-#define RExC_precomp	(pRExC_state->precomp)
-#define RExC_copy_start_in_input (pRExC_state->copy_start_in_input)
-#define RExC_copy_start_in_constructed  (pRExC_state->copy_start)
-#define RExC_save_copy_start_in_constructed  (pRExC_state->save_copy_start)
-#define RExC_precomp_end (pRExC_state->precomp_end)
-#define RExC_rx_sv	(pRExC_state->rx_sv)
-#define RExC_rx		(pRExC_state->rx)
-#define RExC_rxi	(pRExC_state->rxi)
-#define RExC_start	(pRExC_state->start)
-#define RExC_end	(pRExC_state->end)
-#define RExC_parse	(pRExC_state->parse)
-#define RExC_latest_warn_offset (pRExC_state->latest_warn_offset )
-#define RExC_whilem_seen	(pRExC_state->whilem_seen)
-#define RExC_seen_d_op (pRExC_state->seen_d_op) /* Seen something that differs
-                                                   under /d from /u ? */
-
-#define RExC_emit	(pRExC_state->emit)
-#define RExC_emit_start	(pRExC_state->emit_start)
-#define RExC_sawback	(pRExC_state->sawback)
-#define RExC_seen	(pRExC_state->seen)
-#define RExC_size	(pRExC_state->size)
-#define RExC_maxlen        (pRExC_state->maxlen)
-#define RExC_npar	(pRExC_state->npar)
-#define RExC_total_parens	(pRExC_state->total_par)
-#define RExC_parens_buf_size	(pRExC_state->parens_buf_size)
-#define RExC_nestroot   (pRExC_state->nestroot)
-#define RExC_seen_zerolen	(pRExC_state->seen_zerolen)
-#define RExC_utf8	(pRExC_state->utf8)
-#define RExC_uni_semantics	(pRExC_state->uni_semantics)
-#define RExC_orig_utf8	(pRExC_state->orig_utf8)
-#define RExC_open_parens	(pRExC_state->open_parens)
-#define RExC_close_parens	(pRExC_state->close_parens)
-#define RExC_end_op	(pRExC_state->end_op)
-#define RExC_paren_names	(pRExC_state->paren_names)
-#define RExC_recurse	(pRExC_state->recurse)
-#define RExC_recurse_count	(pRExC_state->recurse_count)
-#define RExC_sets_depth         (pRExC_state->sets_depth)
-#define RExC_study_chunk_recursed        (pRExC_state->study_chunk_recursed)
-#define RExC_study_chunk_recursed_bytes  \
-                                   (pRExC_state->study_chunk_recursed_bytes)
-#define RExC_in_lookaround	(pRExC_state->in_lookaround)
-#define RExC_contains_locale	(pRExC_state->contains_locale)
-#define RExC_recode_x_to_native (pRExC_state->recode_x_to_native)
-
-#ifdef EBCDIC
-#  define SET_recode_x_to_native(x)                                         \
-                    STMT_START { RExC_recode_x_to_native = (x); } STMT_END
-#else
-#  define SET_recode_x_to_native(x) NOOP
-#endif
-
-#define RExC_in_multi_char_class (pRExC_state->in_multi_char_class)
-#define RExC_frame_head (pRExC_state->frame_head)
-#define RExC_frame_last (pRExC_state->frame_last)
-#define RExC_frame_count (pRExC_state->frame_count)
-#define RExC_strict (pRExC_state->strict)
-#define RExC_study_started      (pRExC_state->study_started)
-#define RExC_warn_text (pRExC_state->warn_text)
-#define RExC_in_script_run      (pRExC_state->in_script_run)
-#define RExC_use_BRANCHJ        (pRExC_state->use_BRANCHJ)
-#define RExC_warned_WARN_EXPERIMENTAL__VLB (pRExC_state->sWARN_EXPERIMENTAL__VLB)
-#define RExC_warned_WARN_EXPERIMENTAL__REGEX_SETS (pRExC_state->sWARN_EXPERIMENTAL__REGEX_SETS)
-#define RExC_unlexed_names (pRExC_state->unlexed_names)
-
-
-/***********************************************************************/
-/* UTILITY MACROS FOR ADVANCING OR SETTING THE PARSE "CURSOR" RExC_parse
- *
- * All of these macros depend on the above RExC_ accessor macros, which
- * in turns depend on a variable pRExC_state being in scope where they
- * are used. This is the standard regexp parser context variable which is
- * passed into every non-trivial parse function in this file.
- *
- * Note that the UTF macro is itself a wrapper around RExC_utf8, so all
- * of the macros which do not take an argument will operate on the
- * pRExC_state structure *only*.
- *
- * Please do NOT modify RExC_parse without using these macros. In the
- * future these macros will be extended for enhanced debugging and trace
- * output during the parse process.
- */
-
-/* RExC_parse_incf(flag)
- *
- * Increment RExC_parse to point at the next codepoint, while doing
- * the right thing depending on whether we are parsing UTF-8 strings
- * or not. The 'flag' argument determines if content is UTF-8 or not,
- * intended for cases where this is NOT governed by the UTF macro.
- *
- * Use RExC_parse_inc() if UTF-8ness is controlled by the UTF macro.
- *
- * WARNING: Does NOT take into account RExC_end; it is the callers
- * responsibility to make sure there are enough octets left in
- * RExC_parse to ensure that when processing UTF-8 we would not read
- * past the end of the string.
- */
-#define RExC_parse_incf(flag) STMT_START {              \
-    RExC_parse += (flag) ? UTF8SKIP(RExC_parse) : 1;    \
-} STMT_END
-
-/* RExC_parse_inc_safef(flag)
- *
- * Safely increment RExC_parse to point at the next codepoint,
- * doing the right thing depending on whether we are parsing
- * UTF-8 strings or not and NOT reading past the end of the buffer.
- * The 'flag' argument determines if content is UTF-8 or not,
- * intended for cases where this is NOT governed by the UTF macro.
- *
- * Use RExC_parse_safe() if UTF-8ness is controlled by the UTF macro.
- *
- * NOTE: Will NOT read past RExC_end when content is UTF-8.
- */
-#define RExC_parse_inc_safef(flag) STMT_START {                     \
-    RExC_parse += (flag) ? UTF8_SAFE_SKIP(RExC_parse,RExC_end) : 1; \
-} STMT_END
-
-/* RExC_parse_inc()
- *
- * Increment RExC_parse to point at the next codepoint,
- * doing the right thing depending on whether we are parsing
- * UTF-8 strings or not.
- *
- * WARNING: Does NOT take into account RExC_end, it is the callers
- * responsibility to make sure there are enough octets left in
- * RExC_parse to ensure that when processing UTF-8 we would not read
- * past the end of the string.
- *
- * NOTE: whether we are parsing UTF-8 or not is determined by the
- * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
- * macro operates on the pRExC_state structure only.
- */
-#define RExC_parse_inc() RExC_parse_incf(UTF)
-
-/* RExC_parse_inc_safe()
- *
- * Safely increment RExC_parse to point at the next codepoint,
- * doing the right thing depending on whether we are parsing
- * UTF-8 strings or not and NOT reading past the end of the buffer.
- *
- * NOTE: whether we are parsing UTF-8 or not is determined by the
- * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
- * macro operates on the pRExC_state structure only.
- */
-#define RExC_parse_inc_safe() RExC_parse_inc_safef(UTF)
-
-/* RExC_parse_inc_utf8()
- *
- * Increment RExC_parse to point at the next utf8 codepoint,
- * assumes content is UTF-8.
- *
- * WARNING: Does NOT take into account RExC_end; it is the callers
- * responsibility to make sure there are enough octets left in RExC_parse
- * to ensure that when processing UTF-8 we would not read past the end
- * of the string.
- */
-#define RExC_parse_inc_utf8() STMT_START {  \
-    RExC_parse += UTF8SKIP(RExC_parse);     \
-} STMT_END
-
-/* RExC_parse_inc_if_char()
- *
- * Increment RExC_parse to point at the next codepoint, if and only
- * if the current parse point is NOT a NULL, while doing the right thing
- * depending on whether we are parsing UTF-8 strings or not.
- *
- * WARNING: Does NOT take into account RExC_end, it is the callers
- * responsibility to make sure there are enough octets left in RExC_parse
- * to ensure that when processing UTF-8 we would not read past the end
- * of the string.
- *
- * NOTE: whether we are parsing UTF-8 or not is determined by the
- * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
- * macro operates on the pRExC_state structure only.
- */
-#define RExC_parse_inc_if_char() STMT_START {         \
-    RExC_parse += SKIP_IF_CHAR(RExC_parse,RExC_end);  \
-} STMT_END
-
-/* RExC_parse_inc_by(n_octets)
- *
- * Increment the parse cursor by the number of octets specified by
- * the 'n_octets' argument.
- *
- * NOTE: Does NOT check ANY constraints. It is the callers responsibility
- * that this will not move past the end of the string, or leave the
- * pointer in the middle of a UTF-8 sequence.
- *
- * Typically used to advanced past previously analyzed content.
- */
-#define RExC_parse_inc_by(n_octets) STMT_START {  \
-    RExC_parse += (n_octets);                     \
-} STMT_END
-
-/* RExC_parse_set(to_ptr)
- *
- * Sets the RExC_parse pointer to the pointer specified by the 'to'
- * argument. No validation whatsoever is performed on the to pointer.
- */
-#define RExC_parse_set(to_ptr) STMT_START { \
-    RExC_parse = (to_ptr);                  \
-} STMT_END
-
-/**********************************************************************/
-
-/* Heuristic check on the complexity of the pattern: if TOO_NAUGHTY, we set
- * a flag to disable back-off on the fixed/floating substrings - if it's
- * a high complexity pattern we assume the benefit of avoiding a full match
- * is worth the cost of checking for the substrings even if they rarely help.
- */
-#define RExC_naughty	(pRExC_state->naughty)
-#define TOO_NAUGHTY (10)
-#define MARK_NAUGHTY(add) \
-    if (RExC_naughty < TOO_NAUGHTY) \
-        RExC_naughty += (add)
-#define MARK_NAUGHTY_EXP(exp, add) \
-    if (RExC_naughty < TOO_NAUGHTY) \
-        RExC_naughty += RExC_naughty / (exp) + (add)
-
-#define	isNON_BRACE_QUANTIFIER(c)   ((c) == '*' || (c) == '+' || (c) == '?')
-#define	isQUANTIFIER(s,e)  (   isNON_BRACE_QUANTIFIER(*s)                      \
-                            || ((*s) == '{' && regcurly(s, e, NULL)))
-
-/*
- * Flags to be passed up.
- */
-#define	HASWIDTH	0x01	/* Known to not match null strings, could match
-                                   non-null ones. */
-#define	SIMPLE		0x02    /* Exactly one character wide */
-                                /* (or LNBREAK as a special case) */
-#define POSTPONED	0x08    /* (?1),(?&name), (??{...}) or similar */
-#define TRYAGAIN	0x10	/* Weeded out a declaration. */
-#define RESTART_PARSE   0x20    /* Need to redo the parse */
-#define NEED_UTF8       0x40    /* In conjunction with RESTART_PARSE, need to
-                                   calcuate sizes as UTF-8 */
-
-#define REG_NODE_NUM(x) ((x) ? (int)((x)-RExC_emit_start) : -1)
-
-/* whether trie related optimizations are enabled */
-#if PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION
-#define TRIE_STUDY_OPT
-#define FULL_TRIE_STUDY
-#define TRIE_STCLASS
-#endif
-
-/* About the term "restudy" and the var "restudied" and the defines
- * "SCF_TRIE_RESTUDY" and "SCF_TRIE_DOING_RESTUDY": All of these relate to
- * doing multiple study_chunk() calls over the same set of opcodes for* the
- * purpose of enhanced TRIE optimizations.
- *
- * Specifically, when TRIE_STUDY_OPT is defined, and it is defined in normal
- * builds, (see above), during compilation SCF_TRIE_RESTUDY may be enabled
- * which then causes the Perl_re_op_compile() to then call the optimizer
- * S_study_chunk() a second time to perform additional optimizations,
- * including the aho_corasick startclass optimization.
- * This additional pass will only happen once, which is managed by the
- * 'restudied' variable in Perl_re_op_compile().
- *
- * When this second pass is under way the flags passed into study_chunk() will
- * include SCF_TRIE_DOING_RESTUDY and this flag is and must be cascaded down
- * to any recursive calls to S_study_chunk().
- *
- * IMPORTANT: Any logic in study_chunk() that emits warnings should check that
- * the SCF_TRIE_DOING_RESTUDY flag is NOT set in 'flags', or the warning may
- * be produced twice.
- *
- * See commit 07be1b83a6b2d24b492356181ddf70e1c7917ae3 and
- * 688e03912e3bff2d2419c457d8b0e1bab3eb7112 for more details.
- */
-
-
-#define PBYTE(u8str,paren) ((U8*)(u8str))[(paren) >> 3]
-#define PBITVAL(paren) (1 << ((paren) & 7))
-#define PAREN_OFFSET(depth) \
-    (RExC_study_chunk_recursed + (depth) * RExC_study_chunk_recursed_bytes)
-#define PAREN_TEST(depth, paren) \
-    (PBYTE(PAREN_OFFSET(depth), paren) & PBITVAL(paren))
-#define PAREN_SET(depth, paren) \
-    (PBYTE(PAREN_OFFSET(depth), paren) |= PBITVAL(paren))
-#define PAREN_UNSET(depth, paren) \
-    (PBYTE(PAREN_OFFSET(depth), paren) &= ~PBITVAL(paren))
-
-#define REQUIRE_UTF8(flagp) STMT_START {                                   \
-                                     if (!UTF) {                           \
-                                         *flagp = RESTART_PARSE|NEED_UTF8; \
-                                         return 0;                         \
-                                     }                                     \
-                             } STMT_END
-
-/* /u is to be chosen if we are supposed to use Unicode rules, or if the
- * pattern is in UTF-8.  This latter condition is in case the outermost rules
- * are locale.  See GH #17278 */
-#define toUSE_UNI_CHARSET_NOT_DEPENDS (RExC_uni_semantics || UTF)
-
-/* Change from /d into /u rules, and restart the parse.  RExC_uni_semantics is
- * a flag that indicates we need to override /d with /u as a result of
- * something in the pattern.  It should only be used in regards to calling
- * set_regex_charset() or get_regex_charset() */
-#define REQUIRE_UNI_RULES(flagp, restart_retval)                            \
-    STMT_START {                                                            \
-            if (DEPENDS_SEMANTICS) {                                        \
-                set_regex_charset(&RExC_flags, REGEX_UNICODE_CHARSET);      \
-                RExC_uni_semantics = 1;                                     \
-                if (RExC_seen_d_op && LIKELY(! IN_PARENS_PASS)) {           \
-                    /* No need to restart the parse if we haven't seen      \
-                     * anything that differs between /u and /d, and no need \
-                     * to restart immediately if we're going to reparse     \
-                     * anyway to count parens */                            \
-                    *flagp |= RESTART_PARSE;                                \
-                    return restart_retval;                                  \
-                }                                                           \
-            }                                                               \
-    } STMT_END
-
-#define REQUIRE_BRANCHJ(flagp, restart_retval)                              \
-    STMT_START {                                                            \
-                RExC_use_BRANCHJ = 1;                                       \
-                *flagp |= RESTART_PARSE;                                    \
-                return restart_retval;                                      \
-    } STMT_END
-
-/* Until we have completed the parse, we leave RExC_total_parens at 0 or
- * less.  After that, it must always be positive, because the whole re is
- * considered to be surrounded by virtual parens.  Setting it to negative
- * indicates there is some construct that needs to know the actual number of
- * parens to be properly handled.  And that means an extra pass will be
- * required after we've counted them all */
-#define ALL_PARENS_COUNTED (RExC_total_parens > 0)
-#define REQUIRE_PARENS_PASS                                                 \
-    STMT_START {  /* No-op if have completed a pass */                      \
-                    if (! ALL_PARENS_COUNTED) RExC_total_parens = -1;       \
-    } STMT_END
-#define IN_PARENS_PASS (RExC_total_parens < 0)
-
-
-/* This is used to return failure (zero) early from the calling function if
- * various flags in 'flags' are set.  Two flags always cause a return:
- * 'RESTART_PARSE' and 'NEED_UTF8'.   'extra' can be used to specify any
- * additional flags that should cause a return; 0 if none.  If the return will
- * be done, '*flagp' is first set to be all of the flags that caused the
- * return. */
-#define RETURN_FAIL_ON_RESTART_OR_FLAGS(flags,flagp,extra)                  \
-    STMT_START {                                                            \
-            if ((flags) & (RESTART_PARSE|NEED_UTF8|(extra))) {              \
-                *(flagp) = (flags) & (RESTART_PARSE|NEED_UTF8|(extra));     \
-                return 0;                                                   \
-            }                                                               \
-    } STMT_END
-
-#define MUST_RESTART(flags) ((flags) & (RESTART_PARSE))
-
-#define RETURN_FAIL_ON_RESTART(flags,flagp)                                 \
-                        RETURN_FAIL_ON_RESTART_OR_FLAGS( flags, flagp, 0)
-#define RETURN_FAIL_ON_RESTART_FLAGP(flagp)                                 \
-                                    if (MUST_RESTART(*(flagp))) return 0
-
-/* This converts the named class defined in regcomp.h to its equivalent class
- * number defined in handy.h. */
-#define namedclass_to_classnum(class)  ((int) ((class) / 2))
-#define classnum_to_namedclass(classnum)  ((classnum) * 2)
-
-#define _invlist_union_complement_2nd(a, b, output) \
-                        _invlist_union_maybe_complement_2nd(a, b, TRUE, output)
-#define _invlist_intersection_complement_2nd(a, b, output) \
-                 _invlist_intersection_maybe_complement_2nd(a, b, TRUE, output)
-
-/* We add a marker if we are deferring expansion of a property that is both
- * 1) potentiallly user-defined; and
- * 2) could also be an official Unicode property.
- *
- * Without this marker, any deferred expansion can only be for a user-defined
- * one.  This marker shouldn't conflict with any that could be in a legal name,
- * and is appended to its name to indicate this.  There is a string and
- * character form */
-#define DEFERRED_COULD_BE_OFFICIAL_MARKERs  "~"
-#define DEFERRED_COULD_BE_OFFICIAL_MARKERc  '~'
-
-/* What is infinity for optimization purposes */
-#define OPTIMIZE_INFTY  SSize_t_MAX
-
-/* About scan_data_t.
-
-  During optimisation we recurse through the regexp program performing
-  various inplace (keyhole style) optimisations. In addition study_chunk
-  and scan_commit populate this data structure with information about
-  what strings MUST appear in the pattern. We look for the longest
-  string that must appear at a fixed location, and we look for the
-  longest string that may appear at a floating location. So for instance
-  in the pattern:
-
-    /FOO[xX]A.*B[xX]BAR/
-
-  Both 'FOO' and 'A' are fixed strings. Both 'B' and 'BAR' are floating
-  strings (because they follow a .* construct). study_chunk will identify
-  both FOO and BAR as being the longest fixed and floating strings respectively.
-
-  The strings can be composites, for instance
-
-     /(f)(o)(o)/
-
-  will result in a composite fixed substring 'foo'.
-
-  For each string some basic information is maintained:
-
-  - min_offset
-    This is the position the string must appear at, or not before.
-    It also implicitly (when combined with minlenp) tells us how many
-    characters must match before the string we are searching for.
-    Likewise when combined with minlenp and the length of the string it
-    tells us how many characters must appear after the string we have
-    found.
-
-  - max_offset
-    Only used for floating strings. This is the rightmost point that
-    the string can appear at. If set to OPTIMIZE_INFTY it indicates that the
-    string can occur infinitely far to the right.
-    For fixed strings, it is equal to min_offset.
-
-  - minlenp
-    A pointer to the minimum number of characters of the pattern that the
-    string was found inside. This is important as in the case of positive
-    lookahead or positive lookbehind we can have multiple patterns
-    involved. Consider
-
-    /(?=FOO).*F/
-
-    The minimum length of the pattern overall is 3, the minimum length
-    of the lookahead part is 3, but the minimum length of the part that
-    will actually match is 1. So 'FOO's minimum length is 3, but the
-    minimum length for the F is 1. This is important as the minimum length
-    is used to determine offsets in front of and behind the string being
-    looked for.  Since strings can be composites this is the length of the
-    pattern at the time it was committed with a scan_commit. Note that
-    the length is calculated by study_chunk, so that the minimum lengths
-    are not known until the full pattern has been compiled, thus the
-    pointer to the value.
-
-  - lookbehind
-
-    In the case of lookbehind the string being searched for can be
-    offset past the start point of the final matching string.
-    If this value was just blithely removed from the min_offset it would
-    invalidate some of the calculations for how many chars must match
-    before or after (as they are derived from min_offset and minlen and
-    the length of the string being searched for).
-    When the final pattern is compiled and the data is moved from the
-    scan_data_t structure into the regexp structure the information
-    about lookbehind is factored in, with the information that would
-    have been lost precalculated in the end_shift field for the
-    associated string.
-
-  The fields pos_min and pos_delta are used to store the minimum offset
-  and the delta to the maximum offset at the current point in the pattern.
-
-*/
-
-struct scan_data_substrs {
-    SV      *str;       /* longest substring found in pattern */
-    SSize_t min_offset; /* earliest point in string it can appear */
-    SSize_t max_offset; /* latest point in string it can appear */
-    SSize_t *minlenp;   /* pointer to the minlen relevant to the string */
-    SSize_t lookbehind; /* is the pos of the string modified by LB */
-    I32 flags;          /* per substring SF_* and SCF_* flags */
-};
-
-typedef struct scan_data_t {
-    /*I32 len_min;      unused */
-    /*I32 len_delta;    unused */
-    SSize_t pos_min;
-    SSize_t pos_delta;
-    SV *last_found;
-    SSize_t last_end;	    /* min value, <0 unless valid. */
-    SSize_t last_start_min;
-    SSize_t last_start_max;
-    U8      cur_is_floating; /* whether the last_* values should be set as
-                              * the next fixed (0) or floating (1)
-                              * substring */
-
-    /* [0] is longest fixed substring so far, [1] is longest float so far */
-    struct scan_data_substrs  substrs[2];
-
-    I32 flags;             /* common SF_* and SCF_* flags */
-    I32 whilem_c;
-    SSize_t *last_closep;
-    regnode **last_close_opp; /* pointer to pointer to last CLOSE regop
-                                 seen. DO NOT DEREFERENCE the regnode
-                                 pointer - the op may have been optimized
-                                 away */
-    regnode_ssc *start_class;
-} scan_data_t;
-
-/*
- * Forward declarations for pregcomp()'s friends.
- */
-
-static const scan_data_t zero_scan_data = {
-    0, 0, NULL, 0, 0, 0, 0,
-    {
-        { NULL, 0, 0, 0, 0, 0 },
-        { NULL, 0, 0, 0, 0, 0 },
-    },
-    0, 0, NULL, NULL, NULL
-};
-
-/* study flags */
-
-#define SF_BEFORE_SEOL		0x0001
-#define SF_BEFORE_MEOL		0x0002
-#define SF_BEFORE_EOL		(SF_BEFORE_SEOL|SF_BEFORE_MEOL)
-
-#define SF_IS_INF		0x0040
-#define SF_HAS_PAR		0x0080
-#define SF_IN_PAR		0x0100
-#define SF_HAS_EVAL		0x0200
-
-
-/* SCF_DO_SUBSTR is the flag that tells the regexp analyzer to track the
- * longest substring in the pattern. When it is not set the optimiser keeps
- * track of position, but does not keep track of the actual strings seen,
- *
- * So for instance /foo/ will be parsed with SCF_DO_SUBSTR being true, but
- * /foo/i will not.
- *
- * Similarly, /foo.*(blah|erm|huh).*fnorble/ will have "foo" and "fnorble"
- * parsed with SCF_DO_SUBSTR on, but while processing the (...) it will be
- * turned off because of the alternation (BRANCH). */
-#define SCF_DO_SUBSTR		0x0400
-
-#define SCF_DO_STCLASS_AND	0x0800
-#define SCF_DO_STCLASS_OR	0x1000
-#define SCF_DO_STCLASS		(SCF_DO_STCLASS_AND|SCF_DO_STCLASS_OR)
-#define SCF_WHILEM_VISITED_POS	0x2000
-
-#define SCF_TRIE_RESTUDY        0x4000 /* Need to do restudy in study_chunk()?
-                                          Search for "restudy" in this file
-                                          to find a detailed explanation.*/
-#define SCF_SEEN_ACCEPT         0x8000
-#define SCF_TRIE_DOING_RESTUDY 0x10000 /* Are we in restudy right now?
-                                          Search for "restudy" in this file
-                                          to find a detailed explanation. */
-#define SCF_IN_DEFINE          0x20000
-
-
-
-#define UTF cBOOL(RExC_utf8)
-
-/* The enums for all these are ordered so things work out correctly */
-#define LOC (get_regex_charset(RExC_flags) == REGEX_LOCALE_CHARSET)
-#define DEPENDS_SEMANTICS (get_regex_charset(RExC_flags)                    \
-                                                     == REGEX_DEPENDS_CHARSET)
-#define UNI_SEMANTICS (get_regex_charset(RExC_flags) == REGEX_UNICODE_CHARSET)
-#define AT_LEAST_UNI_SEMANTICS (get_regex_charset(RExC_flags)                \
-                                                     >= REGEX_UNICODE_CHARSET)
-#define ASCII_RESTRICTED (get_regex_charset(RExC_flags)                      \
-                                            == REGEX_ASCII_RESTRICTED_CHARSET)
-#define AT_LEAST_ASCII_RESTRICTED (get_regex_charset(RExC_flags)             \
-                                            >= REGEX_ASCII_RESTRICTED_CHARSET)
-#define ASCII_FOLD_RESTRICTED (get_regex_charset(RExC_flags)                 \
-                                        == REGEX_ASCII_MORE_RESTRICTED_CHARSET)
-
-#define FOLD cBOOL(RExC_flags & RXf_PMf_FOLD)
-
-/* For programs that want to be strictly Unicode compatible by dying if any
- * attempt is made to match a non-Unicode code point against a Unicode
- * property.  */
-#define ALWAYS_WARN_SUPER  ckDEAD(packWARN(WARN_NON_UNICODE))
-
-#define OOB_NAMEDCLASS		-1
-
-/* There is no code point that is out-of-bounds, so this is problematic.  But
- * its only current use is to initialize a variable that is always set before
- * looked at. */
-#define OOB_UNICODE		0xDEADBEEF
-
-#define CHR_SVLEN(sv) (UTF ? sv_len_utf8(sv) : SvCUR(sv))
-
-
-/* length of regex to show in messages that don't mark a position within */
-#define RegexLengthToShowInErrorMessages 127
-
-/*
- * If MARKER[12] are adjusted, be sure to adjust the constants at the top
- * of t/op/regmesg.t, the tests in t/op/re_tests, and those in
- * op/pragma/warn/regcomp.
- */
-#define MARKER1 "<-- HERE"    /* marker as it appears in the description */
-#define MARKER2 " <-- HERE "  /* marker as it appears within the regex */
-
-#define REPORT_LOCATION " in regex; marked by " MARKER1    \
-                        " in m/%" UTF8f MARKER2 "%" UTF8f "/"
-
-/* The code in this file in places uses one level of recursion with parsing
- * rebased to an alternate string constructed by us in memory.  This can take
- * the form of something that is completely different from the input, or
- * something that uses the input as part of the alternate.  In the first case,
- * there should be no possibility of an error, as we are in complete control of
- * the alternate string.  But in the second case we don't completely control
- * the input portion, so there may be errors in that.  Here's an example:
- *      /[abc\x{DF}def]/ui
- * is handled specially because \x{df} folds to a sequence of more than one
- * character: 'ss'.  What is done is to create and parse an alternate string,
- * which looks like this:
- *      /(?:\x{DF}|[abc\x{DF}def])/ui
- * where it uses the input unchanged in the middle of something it constructs,
- * which is a branch for the DF outside the character class, and clustering
- * parens around the whole thing. (It knows enough to skip the DF inside the
- * class while in this substitute parse.) 'abc' and 'def' may have errors that
- * need to be reported.  The general situation looks like this:
- *
- *                                       |<------- identical ------>|
- *              sI                       tI               xI       eI
- * Input:       ---------------------------------------------------------------
- * Constructed:         ---------------------------------------------------
- *                      sC               tC               xC       eC     EC
- *                                       |<------- identical ------>|
- *
- * sI..eI   is the portion of the input pattern we are concerned with here.
- * sC..EC   is the constructed substitute parse string.
- *  sC..tC  is constructed by us
- *  tC..eC  is an exact duplicate of the portion of the input pattern tI..eI.
- *          In the diagram, these are vertically aligned.
- *  eC..EC  is also constructed by us.
- * xC       is the position in the substitute parse string where we found a
- *          problem.
- * xI       is the position in the original pattern corresponding to xC.
- *
- * We want to display a message showing the real input string.  Thus we need to
- * translate from xC to xI.  We know that xC >= tC, since the portion of the
- * string sC..tC has been constructed by us, and so shouldn't have errors.  We
- * get:
- *      xI = tI + (xC - tC)
- *
- * When the substitute parse is constructed, the code needs to set:
- *      RExC_start (sC)
- *      RExC_end (eC)
- *      RExC_copy_start_in_input  (tI)
- *      RExC_copy_start_in_constructed (tC)
- * and restore them when done.
- *
- * During normal processing of the input pattern, both
- * 'RExC_copy_start_in_input' and 'RExC_copy_start_in_constructed' are set to
- * sI, so that xC equals xI.
- */
-
-#define sI              RExC_precomp
-#define eI              RExC_precomp_end
-#define sC              RExC_start
-#define eC              RExC_end
-#define tI              RExC_copy_start_in_input
-#define tC              RExC_copy_start_in_constructed
-#define xI(xC)          (tI + (xC - tC))
-#define xI_offset(xC)   (xI(xC) - sI)
-
-#define REPORT_LOCATION_ARGS(xC)                                            \
-    UTF8fARG(UTF,                                                           \
-             (xI(xC) > eI) /* Don't run off end */                          \
-              ? eI - sI   /* Length before the <--HERE */                   \
-              : ((xI_offset(xC) >= 0)                                       \
-                 ? xI_offset(xC)                                            \
-                 : (Perl_croak(aTHX_ "panic: %s: %d: negative offset: %"    \
-                                    IVdf " trying to output message for "   \
-                                    " pattern %.*s",                        \
-                                    __FILE__, __LINE__, (IV) xI_offset(xC), \
-                                    ((int) (eC - sC)), sC), 0)),            \
-             sI),         /* The input pattern printed up to the <--HERE */ \
-    UTF8fARG(UTF,                                                           \
-             (xI(xC) > eI) ? 0 : eI - xI(xC), /* Length after <--HERE */    \
-             (xI(xC) > eI) ? eI : xI(xC))     /* pattern after <--HERE */
-
-/* Used to point after bad bytes for an error message, but avoid skipping
- * past a nul byte. */
-#define SKIP_IF_CHAR(s, e) (!*(s) ? 0 : UTF ? UTF8_SAFE_SKIP(s, e) : 1)
-
-/* Set up to clean up after our imminent demise */
-#define PREPARE_TO_DIE                                                      \
-    STMT_START {					                    \
-        if (RExC_rx_sv)                                                     \
-            SAVEFREESV(RExC_rx_sv);                                         \
-        if (RExC_open_parens)                                               \
-            SAVEFREEPV(RExC_open_parens);                                   \
-        if (RExC_close_parens)                                              \
-            SAVEFREEPV(RExC_close_parens);                                  \
-    } STMT_END
-
-/*
- * Calls SAVEDESTRUCTOR_X if needed, then calls Perl_croak with the given
- * arg. Show regex, up to a maximum length. If it's too long, chop and add
- * "...".
- */
-#define _FAIL(code) STMT_START {					\
-    const char *ellipses = "";						\
-    IV len = RExC_precomp_end - RExC_precomp;				\
-                                                                        \
-    PREPARE_TO_DIE;						        \
-    if (len > RegexLengthToShowInErrorMessages) {			\
-        /* chop 10 shorter than the max, to ensure meaning of "..." */	\
-        len = RegexLengthToShowInErrorMessages - 10;			\
-        ellipses = "...";						\
-    }									\
-    code;                                                               \
-} STMT_END
-
-#define	FAIL(msg) _FAIL(			    \
-    Perl_croak(aTHX_ "%s in regex m/%" UTF8f "%s/",	    \
-            msg, UTF8fARG(UTF, len, RExC_precomp), ellipses))
-
-#define	FAIL2(msg,arg) _FAIL(			    \
-    Perl_croak(aTHX_ msg " in regex m/%" UTF8f "%s/",	    \
-            arg, UTF8fARG(UTF, len, RExC_precomp), ellipses))
-
-#define	FAIL3(msg,arg1,arg2) _FAIL(			    \
-    Perl_croak(aTHX_ msg " in regex m/%" UTF8f "%s/",	    \
-     arg1, arg2, UTF8fARG(UTF, len, RExC_precomp), ellipses))
-
-/*
- * Simple_vFAIL -- like FAIL, but marks the current location in the scan
- */
-#define	Simple_vFAIL(m) STMT_START {					\
-    Perl_croak(aTHX_ "%s" REPORT_LOCATION,				\
-            m, REPORT_LOCATION_ARGS(RExC_parse));	                \
-} STMT_END
-
-/*
- * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL()
- */
-#define	vFAIL(m) STMT_START {				\
-    PREPARE_TO_DIE;                                     \
-    Simple_vFAIL(m);					\
-} STMT_END
-
-/*
- * Like Simple_vFAIL(), but accepts two arguments.
- */
-#define	Simple_vFAIL2(m,a1) STMT_START {			\
-    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1,		\
-                      REPORT_LOCATION_ARGS(RExC_parse));	\
-} STMT_END
-
-/*
- * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL2().
- */
-#define	vFAIL2(m,a1) STMT_START {			\
-    PREPARE_TO_DIE;                                     \
-    Simple_vFAIL2(m, a1);				\
-} STMT_END
-
-
-/*
- * Like Simple_vFAIL(), but accepts three arguments.
- */
-#define	Simple_vFAIL3(m, a1, a2) STMT_START {			\
-    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2,		\
-            REPORT_LOCATION_ARGS(RExC_parse));	                \
-} STMT_END
-
-/*
- * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL3().
- */
-#define	vFAIL3(m,a1,a2) STMT_START {			\
-    PREPARE_TO_DIE;                                     \
-    Simple_vFAIL3(m, a1, a2);				\
-} STMT_END
-
-/*
- * Like Simple_vFAIL(), but accepts four arguments.
- */
-#define	Simple_vFAIL4(m, a1, a2, a3) STMT_START {		\
-    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2, a3,	\
-            REPORT_LOCATION_ARGS(RExC_parse));	                \
-} STMT_END
-
-#define	vFAIL4(m,a1,a2,a3) STMT_START {			\
-    PREPARE_TO_DIE;                                     \
-    Simple_vFAIL4(m, a1, a2, a3);			\
-} STMT_END
-
-/* A specialized version of vFAIL2 that works with UTF8f */
-#define vFAIL2utf8f(m, a1) STMT_START {             \
-    PREPARE_TO_DIE;                                 \
-    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1,  \
-            REPORT_LOCATION_ARGS(RExC_parse));      \
-} STMT_END
-
-#define vFAIL3utf8f(m, a1, a2) STMT_START {             \
-    PREPARE_TO_DIE;                                     \
-    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2,  \
-            REPORT_LOCATION_ARGS(RExC_parse));          \
-} STMT_END
-
-/* Setting this to NULL is a signal to not output warnings */
-#define TURN_OFF_WARNINGS_IN_SUBSTITUTE_PARSE                               \
-    STMT_START {                                                            \
-      RExC_save_copy_start_in_constructed  = RExC_copy_start_in_constructed;\
-      RExC_copy_start_in_constructed = NULL;                                \
-    } STMT_END
-#define RESTORE_WARNINGS                                                    \
-    RExC_copy_start_in_constructed = RExC_save_copy_start_in_constructed
-
-/* Since a warning can be generated multiple times as the input is reparsed, we
- * output it the first time we come to that point in the parse, but suppress it
- * otherwise.  'RExC_copy_start_in_constructed' being NULL is a flag to not
- * generate any warnings */
-#define TO_OUTPUT_WARNINGS(loc)                                         \
-  (   RExC_copy_start_in_constructed                                    \
-   && ((xI(loc)) - RExC_precomp) > (Ptrdiff_t) RExC_latest_warn_offset)
-
-/* After we've emitted a warning, we save the position in the input so we don't
- * output it again */
-#define UPDATE_WARNINGS_LOC(loc)                                        \
-    STMT_START {                                                        \
-        if (TO_OUTPUT_WARNINGS(loc)) {                                  \
-            RExC_latest_warn_offset = MAX(sI, MIN(eI, xI(loc)))         \
-                                                       - RExC_precomp;  \
-        }                                                               \
-    } STMT_END
-
-/* 'warns' is the output of the packWARNx macro used in 'code' */
-#define _WARN_HELPER(loc, warns, code)                                  \
-    STMT_START {                                                        \
-        if (! RExC_copy_start_in_constructed) {                         \
-            Perl_croak( aTHX_ "panic! %s: %d: Tried to warn when none"  \
-                              " expected at '%s'",                      \
-                              __FILE__, __LINE__, loc);                 \
-        }                                                               \
-        if (TO_OUTPUT_WARNINGS(loc)) {                                  \
-            if (ckDEAD(warns))                                          \
-                PREPARE_TO_DIE;                                         \
-            code;                                                       \
-            UPDATE_WARNINGS_LOC(loc);                                   \
-        }                                                               \
-    } STMT_END
-
-/* m is not necessarily a "literal string", in this macro */
-#define warn_non_literal_string(loc, packed_warn, m)                    \
-    _WARN_HELPER(loc, packed_warn,                                      \
-                      Perl_warner(aTHX_ packed_warn,                    \
-                                       "%s" REPORT_LOCATION,            \
-                                  m, REPORT_LOCATION_ARGS(loc)))
-#define reg_warn_non_literal_string(loc, m)                             \
-                warn_non_literal_string(loc, packWARN(WARN_REGEXP), m)
-
-#define ckWARN2_non_literal_string(loc, packwarn, m, a1)                    \
-    STMT_START {                                                            \
-                char * format;                                              \
-                Size_t format_size = strlen(m) + strlen(REPORT_LOCATION)+ 1;\
-                Newx(format, format_size, char);                            \
-                my_strlcpy(format, m, format_size);                         \
-                my_strlcat(format, REPORT_LOCATION, format_size);           \
-                SAVEFREEPV(format);                                         \
-                _WARN_HELPER(loc, packwarn,                                 \
-                      Perl_ck_warner(aTHX_ packwarn,                        \
-                                        format,                             \
-                                        a1, REPORT_LOCATION_ARGS(loc)));    \
-    } STMT_END
-
-#define	ckWARNreg(loc,m) 					        \
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
-                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),       \
-                                          m REPORT_LOCATION,	        \
-                                          REPORT_LOCATION_ARGS(loc)))
-
-#define	vWARN(loc, m)           				        \
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
-                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),          \
-                                       m REPORT_LOCATION,               \
-                                       REPORT_LOCATION_ARGS(loc)))      \
-
-#define	vWARN_dep(loc, m)           				        \
-    _WARN_HELPER(loc, packWARN(WARN_DEPRECATED),                        \
-                      Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),      \
-                                       m REPORT_LOCATION,               \
-                                       REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARNdep(loc,m)            				        \
-    _WARN_HELPER(loc, packWARN(WARN_DEPRECATED),                        \
-                      Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
-                                            m REPORT_LOCATION,          \
-                                            REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARNregdep(loc,m)             				    \
-    _WARN_HELPER(loc, packWARN2(WARN_DEPRECATED, WARN_REGEXP),              \
-                      Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED,     \
-                                                      WARN_REGEXP),         \
-                                             m REPORT_LOCATION,             \
-                                             REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARN2reg_d(loc,m, a1)             				    \
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
-                      Perl_ck_warner_d(aTHX_ packWARN(WARN_REGEXP),         \
-                                            m REPORT_LOCATION,              \
-                                            a1, REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARN2reg(loc, m, a1)                                              \
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
-                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),           \
-                                          m REPORT_LOCATION,	            \
-                                          a1, REPORT_LOCATION_ARGS(loc)))
-
-#define	vWARN3(loc, m, a1, a2)          				    \
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
-                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),              \
-                                       m REPORT_LOCATION,                   \
-                                       a1, a2, REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARN3reg(loc, m, a1, a2)          				    \
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
-                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),           \
-                                          m REPORT_LOCATION,                \
-                                          a1, a2,                           \
-                                          REPORT_LOCATION_ARGS(loc)))
-
-#define	vWARN4(loc, m, a1, a2, a3)          				\
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
-                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),          \
-                                       m REPORT_LOCATION,               \
-                                       a1, a2, a3,                      \
-                                       REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARN4reg(loc, m, a1, a2, a3)          			\
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
-                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),       \
-                                          m REPORT_LOCATION,            \
-                                          a1, a2, a3,                   \
-                                          REPORT_LOCATION_ARGS(loc)))
-
-#define	vWARN5(loc, m, a1, a2, a3, a4)          			\
-    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
-                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),          \
-                                       m REPORT_LOCATION,		\
-                                       a1, a2, a3, a4,                  \
-                                       REPORT_LOCATION_ARGS(loc)))
-
-#define	ckWARNexperimental(loc, class, m)                               \
-    STMT_START {                                                        \
-        if (! RExC_warned_ ## class) { /* warn once per compilation */  \
-            RExC_warned_ ## class = 1;                                  \
-            _WARN_HELPER(loc, packWARN(class),                          \
-                      Perl_ck_warner_d(aTHX_ packWARN(class),           \
-                                            m REPORT_LOCATION,          \
-                                            REPORT_LOCATION_ARGS(loc)));\
-        }                                                               \
-    } STMT_END
-
-#define ckWARNexperimental_with_arg(loc, class, m, arg)                 \
-    STMT_START {                                                        \
-        if (! RExC_warned_ ## class) { /* warn once per compilation */  \
-            RExC_warned_ ## class = 1;                                  \
-            _WARN_HELPER(loc, packWARN(class),                          \
-                      Perl_ck_warner_d(aTHX_ packWARN(class),           \
-                                       m REPORT_LOCATION,               \
-                                       arg, REPORT_LOCATION_ARGS(loc)));\
-        }                                                               \
-    } STMT_END
-
-/* Convert between a pointer to a node and its offset from the beginning of the
- * program */
-#define REGNODE_p(offset)    (RExC_emit_start + (offset))
-#define REGNODE_OFFSET(node) ((node) - RExC_emit_start)
-
-#define ProgLen(ri) ri->proglen
-#define SetProgLen(ri,x) ri->proglen = x
-
-#if PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS
-#define EXPERIMENTAL_INPLACESCAN
-#endif /*PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS*/
-
-#ifdef DEBUGGING
-int
-Perl_re_printf(pTHX_ const char *fmt, ...)
-{
-    va_list ap;
-    int result;
-    PerlIO *f= Perl_debug_log;
-    PERL_ARGS_ASSERT_RE_PRINTF;
-    va_start(ap, fmt);
-    result = PerlIO_vprintf(f, fmt, ap);
-    va_end(ap);
-    return result;
-}
-
-int
-Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...)
-{
-    va_list ap;
-    int result;
-    PerlIO *f= Perl_debug_log;
-    PERL_ARGS_ASSERT_RE_INDENTF;
-    va_start(ap, depth);
-    PerlIO_printf(f, "%*s", ( (int)depth % 20 ) * 2, "");
-    result = PerlIO_vprintf(f, fmt, ap);
-    va_end(ap);
-    return result;
-}
-#endif /* DEBUGGING */
-
-#define DEBUG_RExC_seen()                                                   \
-        DEBUG_OPTIMISE_MORE_r({                                             \
-            Perl_re_printf( aTHX_ "RExC_seen: ");                           \
-                                                                            \
-            if (RExC_seen & REG_ZERO_LEN_SEEN)                              \
-                Perl_re_printf( aTHX_ "REG_ZERO_LEN_SEEN ");                \
-                                                                            \
-            if (RExC_seen & REG_LOOKBEHIND_SEEN)                            \
-                Perl_re_printf( aTHX_ "REG_LOOKBEHIND_SEEN ");              \
-                                                                            \
-            if (RExC_seen & REG_GPOS_SEEN)                                  \
-                Perl_re_printf( aTHX_ "REG_GPOS_SEEN ");                    \
-                                                                            \
-            if (RExC_seen & REG_RECURSE_SEEN)                               \
-                Perl_re_printf( aTHX_ "REG_RECURSE_SEEN ");                 \
-                                                                            \
-            if (RExC_seen & REG_TOP_LEVEL_BRANCHES_SEEN)                    \
-                Perl_re_printf( aTHX_ "REG_TOP_LEVEL_BRANCHES_SEEN ");      \
-                                                                            \
-            if (RExC_seen & REG_VERBARG_SEEN)                               \
-                Perl_re_printf( aTHX_ "REG_VERBARG_SEEN ");                 \
-                                                                            \
-            if (RExC_seen & REG_CUTGROUP_SEEN)                              \
-                Perl_re_printf( aTHX_ "REG_CUTGROUP_SEEN ");                \
-                                                                            \
-            if (RExC_seen & REG_RUN_ON_COMMENT_SEEN)                        \
-                Perl_re_printf( aTHX_ "REG_RUN_ON_COMMENT_SEEN ");          \
-                                                                            \
-            if (RExC_seen & REG_UNFOLDED_MULTI_SEEN)                        \
-                Perl_re_printf( aTHX_ "REG_UNFOLDED_MULTI_SEEN ");          \
-                                                                            \
-            if (RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN)                  \
-                Perl_re_printf( aTHX_ "REG_UNBOUNDED_QUANTIFIER_SEEN ");    \
-                                                                            \
-            Perl_re_printf( aTHX_ "\n");                                    \
-        });
-
-#define DEBUG_SHOW_STUDY_FLAG(flags,flag) \
-  if ((flags) & flag) Perl_re_printf( aTHX_  "%s ", #flag)
-
-
-#ifdef DEBUGGING
-static void
-S_debug_show_study_flags(pTHX_ U32 flags, const char *open_str,
-                                    const char *close_str)
-{
-    if (!flags)
-        return;
-
-    Perl_re_printf( aTHX_  "%s", open_str);
-    DEBUG_SHOW_STUDY_FLAG(flags, SF_BEFORE_SEOL);
-    DEBUG_SHOW_STUDY_FLAG(flags, SF_BEFORE_MEOL);
-    DEBUG_SHOW_STUDY_FLAG(flags, SF_IS_INF);
-    DEBUG_SHOW_STUDY_FLAG(flags, SF_HAS_PAR);
-    DEBUG_SHOW_STUDY_FLAG(flags, SF_IN_PAR);
-    DEBUG_SHOW_STUDY_FLAG(flags, SF_HAS_EVAL);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_SUBSTR);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_STCLASS_AND);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_STCLASS_OR);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_STCLASS);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_WHILEM_VISITED_POS);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_TRIE_RESTUDY);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_SEEN_ACCEPT);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_TRIE_DOING_RESTUDY);
-    DEBUG_SHOW_STUDY_FLAG(flags, SCF_IN_DEFINE);
-    Perl_re_printf( aTHX_  "%s", close_str);
-}
-
-
-static void
-S_debug_studydata(pTHX_ const char *where, scan_data_t *data,
-                    U32 depth, int is_inf,
-                    SSize_t min, SSize_t stopmin, SSize_t delta)
-{
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    DEBUG_OPTIMISE_MORE_r({
-        if (!data)
-            return;
-        Perl_re_indentf(aTHX_  "%s: M/S/D: %" IVdf "/%" IVdf "/%" IVdf " Pos:%" IVdf "/%" IVdf " Flags: 0x%" UVXf,
-            depth,
-            where,
-            min, stopmin, delta,
-            (IV)data->pos_min,
-            (IV)data->pos_delta,
-            (UV)data->flags
-        );
-
-        S_debug_show_study_flags(aTHX_ data->flags," [","]");
-
-        Perl_re_printf( aTHX_
-            " Whilem_c: %" IVdf " Lcp: %" IVdf " %s",
-            (IV)data->whilem_c,
-            (IV)(data->last_closep ? *((data)->last_closep) : -1),
-            is_inf ? "INF " : ""
-        );
-
-        if (data->last_found) {
-            int i;
-            Perl_re_printf(aTHX_
-                "Last:'%s' %" IVdf ":%" IVdf "/%" IVdf,
-                    SvPVX_const(data->last_found),
-                    (IV)data->last_end,
-                    (IV)data->last_start_min,
-                    (IV)data->last_start_max
-            );
-
-            for (i = 0; i < 2; i++) {
-                Perl_re_printf(aTHX_
-                    " %s%s: '%s' @ %" IVdf "/%" IVdf,
-                    data->cur_is_floating == i ? "*" : "",
-                    i ? "Float" : "Fixed",
-                    SvPVX_const(data->substrs[i].str),
-                    (IV)data->substrs[i].min_offset,
-                    (IV)data->substrs[i].max_offset
-                );
-                S_debug_show_study_flags(aTHX_ data->substrs[i].flags," [","]");
-            }
-        }
-
-        Perl_re_printf( aTHX_ "\n");
-    });
-}
-
-
-static void
-S_debug_peep(pTHX_ const char *str, const RExC_state_t *pRExC_state,
-                regnode *scan, U32 depth, U32 flags)
-{
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    DEBUG_OPTIMISE_r({
-        regnode *Next;
-
-        if (!scan)
-            return;
-        Next = regnext(scan);
-        regprop(RExC_rx, RExC_mysv, scan, NULL, pRExC_state);
-        Perl_re_indentf( aTHX_   "%s>%3d: %s (%d)",
-            depth,
-            str,
-            REG_NODE_NUM(scan), SvPV_nolen_const(RExC_mysv),
-            Next ? (REG_NODE_NUM(Next)) : 0 );
-        S_debug_show_study_flags(aTHX_ flags," [ ","]");
-        Perl_re_printf( aTHX_  "\n");
-   });
-}
-
-
-#  define DEBUG_STUDYDATA(where, data, depth, is_inf, min, stopmin, delta) \
-                    S_debug_studydata(aTHX_ where, data, depth, is_inf, min, stopmin, delta)
-
-#  define DEBUG_PEEP(str, scan, depth, flags)   \
-                    S_debug_peep(aTHX_ str, pRExC_state, scan, depth, flags)
-
-#else
-#  define DEBUG_STUDYDATA(where, data, depth, is_inf, min, stopmin, delta) NOOP
-#  define DEBUG_PEEP(str, scan, depth, flags)         NOOP
-#endif
-
+#include "regcomp_internal.h"
 
 /* =========================================================
  * BEGIN edit_distance stuff.
@@ -1526,7 +238,7 @@ S_edit_distance(const UV* src,
 
     PERL_ARGS_ASSERT_EDIT_DISTANCE;
 
-    /* intialize matrix start values */
+    /* initialize matrix start values */
     Newx(scores, ( (x + 2) * (y + 2)), UV);
     scores[0] = score_ceil;
     scores[1 * (y + 2) + 0] = score_ceil;
@@ -1578,9534 +290,2171 @@ S_edit_distance(const UV* src,
 /* END of edit_distance() stuff
  * ========================================================= */
 
-/* Mark that we cannot extend a found fixed substring at this point.
-   Update the longest found anchored substring or the longest found
-   floating substrings if needed. */
-
-STATIC void
-S_scan_commit(pTHX_ const RExC_state_t *pRExC_state, scan_data_t *data,
-                    SSize_t *minlenp, int is_inf)
+/* add a data member to the struct reg_data attached to this regex, it should
+ * always return a non-zero return. the 's' argument is the type of the items
+ * being added and the n is the number of items. The length of 's' should match
+ * the number of items. */
+U32
+Perl_reg_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n)
 {
-    const STRLEN l = CHR_SVLEN(data->last_found);
-    SV * const longest_sv = data->substrs[data->cur_is_floating].str;
-    const STRLEN old_l = CHR_SVLEN(longest_sv);
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_SCAN_COMMIT;
-
-    if ((l >= old_l) && ((l > old_l) || (data->flags & SF_BEFORE_EOL))) {
-        const U8 i = data->cur_is_floating;
-        SvSetMagicSV(longest_sv, data->last_found);
-        data->substrs[i].min_offset = l ? data->last_start_min : data->pos_min;
-
-        if (!i) /* fixed */
-            data->substrs[0].max_offset = data->substrs[0].min_offset;
-        else { /* float */
-            data->substrs[1].max_offset =
-                      (is_inf)
-                       ? OPTIMIZE_INFTY
-                       : (l
-                          ? data->last_start_max
-                          /* temporary underflow guard for 5.32 */
-                          : data->pos_delta < 0 ? OPTIMIZE_INFTY
-                          : (data->pos_delta > OPTIMIZE_INFTY - data->pos_min
-                                         ? OPTIMIZE_INFTY
-                                         : data->pos_min + data->pos_delta));
-        }
-
-        data->substrs[i].flags &= ~SF_BEFORE_EOL;
-        data->substrs[i].flags |= data->flags & SF_BEFORE_EOL;
-        data->substrs[i].minlenp = minlenp;
-        data->substrs[i].lookbehind = 0;
-    }
-
-    SvCUR_set(data->last_found, 0);
-    {
-        SV * const sv = data->last_found;
-        if (SvUTF8(sv) && SvMAGICAL(sv)) {
-            MAGIC * const mg = mg_find(sv, PERL_MAGIC_utf8);
-            if (mg)
-                mg->mg_len = 0;
-        }
-    }
-    data->last_end = -1;
-    data->flags &= ~SF_BEFORE_EOL;
-    DEBUG_STUDYDATA("commit", data, 0, is_inf, -1, -1, -1);
-}
+    U32 count = RExC_rxi->data ? RExC_rxi->data->count : 1;
 
-/* An SSC is just a regnode_charclass_posix with an extra field: the inversion
- * list that describes which code points it matches */
+    PERL_ARGS_ASSERT_REG_ADD_DATA;
 
-STATIC void
-S_ssc_anything(pTHX_ regnode_ssc *ssc)
-{
-    /* Set the SSC 'ssc' to match an empty string or any code point */
-
-    PERL_ARGS_ASSERT_SSC_ANYTHING;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    /* mortalize so won't leak */
-    ssc->invlist = sv_2mortal(_add_range_to_invlist(NULL, 0, UV_MAX));
-    ANYOF_FLAGS(ssc) |= SSC_MATCHES_EMPTY_STRING;  /* Plus matches empty */
+    /* in the below expression we have (count + n - 1), the minus one is there
+     * because the struct that we allocate already contains a slot for 1 data
+     * item, so we do not need to allocate it the first time. IOW, the
+     * sizeof(*RExC_rxi->data) already accounts for one of the elements we need
+     * to allocate. See struct reg_data in regcomp.h
+     */
+    Renewc(RExC_rxi->data,
+           sizeof(*RExC_rxi->data) + (sizeof(void*) * (count + n - 1)),
+           char, struct reg_data);
+    /* however in the data->what expression we use (count + n) and do not
+     * subtract one from the result because the data structure contains a
+     * pointer to an array, and does not allocate the first element as part of
+     * the data struct. */
+    if (count > 1)
+        Renew(RExC_rxi->data->what, (count + n), U8);
+    else {
+        /* when count == 1 it means we have not initialized anything.
+         * we always fill the 0 slot of the data array with a '%' entry, which
+         * means "zero" (all the other types are letters) which exists purely
+         * so the return from reg_add_data is ALWAYS true, so we can tell it apart
+         * from a "no value" idx=0 in places where we would return an index
+         * into reg_add_data.  This is particularly important with the new "single
+         * pass, usually, but not always" strategy that we use, where the code
+         * will use a 0 to represent "not able to compute this yet".
+         */
+        Newx(RExC_rxi->data->what, n+1, U8);
+        /* fill in the placeholder slot of 0 with a what of '%', we use
+         * this because it sorta looks like a zero (0/0) and it is not a letter
+         * like any of the other "whats", this type should never be created
+         * any other way but here. '%' happens to also not appear in this
+         * file for any other reason (at the time of writing this comment)*/
+        RExC_rxi->data->what[0]= '%';
+        RExC_rxi->data->data[0]= NULL;
+    }
+    RExC_rxi->data->count = count + n;
+    Copy(s, RExC_rxi->data->what + count, n, U8);
+    assert(count>0);
+    return count;
 }
 
-STATIC int
-S_ssc_is_anything(const regnode_ssc *ssc)
+/*XXX: todo make this not included in a non debugging perl, but appears to be
+ * used anyway there, in 'use re' */
+#ifndef PERL_IN_XSUB_RE
+void
+Perl_reginitcolors(pTHX)
 {
-    /* Returns TRUE if the SSC 'ssc' can match the empty string and any code
-     * point; FALSE otherwise.  Thus, this is used to see if using 'ssc' buys
-     * us anything: if the function returns TRUE, 'ssc' hasn't been restricted
-     * in any way, so there's no point in using it */
-
-    UV start, end;
-    bool ret;
-
-    PERL_ARGS_ASSERT_SSC_IS_ANYTHING;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    if (! (ANYOF_FLAGS(ssc) & SSC_MATCHES_EMPTY_STRING)) {
-        return FALSE;
-    }
-
-    /* See if the list consists solely of the range 0 - Infinity */
-    invlist_iterinit(ssc->invlist);
-    ret = invlist_iternext(ssc->invlist, &start, &end)
-          && start == 0
-          && end == UV_MAX;
-
-    invlist_iterfinish(ssc->invlist);
-
-    if (ret) {
-        return TRUE;
-    }
-
-    /* If e.g., both \w and \W are set, matches everything */
-    if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
-        int i;
-        for (i = 0; i < ANYOF_POSIXL_MAX; i += 2) {
-            if (ANYOF_POSIXL_TEST(ssc, i) && ANYOF_POSIXL_TEST(ssc, i+1)) {
-                return TRUE;
+    const char * const s = PerlEnv_getenv("PERL_RE_COLORS");
+    if (s) {
+        char *t = savepv(s);
+        int i = 0;
+        PL_colors[0] = t;
+        while (++i < 6) {
+            t = strchr(t, '\t');
+            if (t) {
+                *t = '\0';
+                PL_colors[i] = ++t;
             }
+            else
+                PL_colors[i] = t = (char *)"";
         }
+    } else {
+        int i = 0;
+        while (i < 6)
+            PL_colors[i++] = (char *)"";
     }
-
-    return FALSE;
-}
-
-STATIC void
-S_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc)
-{
-    /* Initializes the SSC 'ssc'.  This includes setting it to match an empty
-     * string, any code point, or any posix class under locale */
-
-    PERL_ARGS_ASSERT_SSC_INIT;
-
-    Zero(ssc, 1, regnode_ssc);
-    set_ANYOF_SYNTHETIC(ssc);
-    ARG_SET(ssc, ANYOF_ONLY_HAS_BITMAP);
-    ssc_anything(ssc);
-
-    /* If any portion of the regex is to operate under locale rules that aren't
-     * fully known at compile time, initialization includes it.  The reason
-     * this isn't done for all regexes is that the optimizer was written under
-     * the assumption that locale was all-or-nothing.  Given the complexity and
-     * lack of documentation in the optimizer, and that there are inadequate
-     * test cases for locale, many parts of it may not work properly, it is
-     * safest to avoid locale unless necessary. */
-    if (RExC_contains_locale) {
-        ANYOF_POSIXL_SETALL(ssc);
-    }
-    else {
-        ANYOF_POSIXL_ZERO(ssc);
-    }
+    PL_colorset = 1;
 }
+#endif
 
-STATIC int
-S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state,
-                        const regnode_ssc *ssc)
-{
-    /* Returns TRUE if the SSC 'ssc' is in its initial state with regard only
-     * to the list of code points matched, and locale posix classes; hence does
-     * not check its flags) */
 
-    UV start, end;
-    bool ret;
+#ifdef TRIE_STUDY_OPT
+/* search for "restudy" in this file for a detailed explanation */
+#define CHECK_RESTUDY_GOTO_butfirst(dOsomething)            \
+    STMT_START {                                            \
+        if (                                                \
+              (data.flags & SCF_TRIE_RESTUDY)               \
+              && ! restudied++                              \
+        ) {                                                 \
+            dOsomething;                                    \
+            goto reStudy;                                   \
+        }                                                   \
+    } STMT_END
+#else
+#define CHECK_RESTUDY_GOTO_butfirst
+#endif
 
-    PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT;
+/*
+ * pregcomp - compile a regular expression into internal code
+ *
+ * Decides which engine's compiler to call based on the hint currently in
+ * scope
+ */
 
-    assert(is_ANYOF_SYNTHETIC(ssc));
+#ifndef PERL_IN_XSUB_RE
 
-    invlist_iterinit(ssc->invlist);
-    ret = invlist_iternext(ssc->invlist, &start, &end)
-          && start == 0
-          && end == UV_MAX;
+/* return the currently in-scope regex engine (or the default if none)  */
 
-    invlist_iterfinish(ssc->invlist);
+regexp_engine const *
+Perl_current_re_engine(pTHX)
+{
+    if (IN_PERL_COMPILETIME) {
+        HV * const table = GvHV(PL_hintgv);
+        SV **ptr;
 
-    if (! ret) {
-        return FALSE;
+        if (!table || !(PL_hints & HINT_LOCALIZE_HH))
+            return &PL_core_reg_engine;
+        ptr = hv_fetchs(table, "regcomp", FALSE);
+        if ( !(ptr && SvIOK(*ptr) && SvIV(*ptr)))
+            return &PL_core_reg_engine;
+        return INT2PTR(regexp_engine*, SvIV(*ptr));
     }
-
-    if (RExC_contains_locale && ! ANYOF_POSIXL_SSC_TEST_ALL_SET(ssc)) {
-        return FALSE;
+    else {
+        SV *ptr;
+        if (!PL_curcop->cop_hints_hash)
+            return &PL_core_reg_engine;
+        ptr = cop_hints_fetch_pvs(PL_curcop, "regcomp", 0);
+        if ( !(ptr && SvIOK(ptr) && SvIV(ptr)))
+            return &PL_core_reg_engine;
+        return INT2PTR(regexp_engine*, SvIV(ptr));
     }
-
-    return TRUE;
 }
 
-#define INVLIST_INDEX 0
-#define ONLY_LOCALE_MATCHES_INDEX 1
-#define DEFERRED_USER_DEFINED_INDEX 2
 
-STATIC SV*
-S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state,
-                               const regnode_charclass* const node)
+REGEXP *
+Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags)
 {
-    /* Returns a mortal inversion list defining which code points are matched
-     * by 'node', which is of type ANYOF.  Handles complementing the result if
-     * appropriate.  If some code points aren't knowable at this time, the
-     * returned list must, and will, contain every code point that is a
-     * possibility. */
-
-    SV* invlist = NULL;
-    SV* only_utf8_locale_invlist = NULL;
-    unsigned int i;
-    const U32 n = ARG(node);
-    bool new_node_has_latin1 = FALSE;
-    const U8 flags = (inRANGE(OP(node), ANYOFH, ANYOFRb))
-                      ? 0
-                      : ANYOF_FLAGS(node);
+    regexp_engine const *eng = current_re_engine();
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
-    PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC;
+    PERL_ARGS_ASSERT_PREGCOMP;
 
-    /* Look at the data structure created by S_set_ANYOF_arg() */
-    if (n != ANYOF_ONLY_HAS_BITMAP) {
-        SV * const rv = MUTABLE_SV(RExC_rxi->data->data[n]);
-        AV * const av = MUTABLE_AV(SvRV(rv));
-        SV **const ary = AvARRAY(av);
-        assert(RExC_rxi->data->what[n] == 's');
+    /* Dispatch a request to compile a regexp to correct regexp engine. */
+    DEBUG_COMPILE_r({
+        Perl_re_printf( aTHX_  "Using engine %" UVxf "\n",
+                        PTR2UV(eng));
+    });
+    return CALLREGCOMP_ENG(eng, pattern, flags);
+}
+#endif
 
-        if (av_tindex_skip_len_mg(av) >= DEFERRED_USER_DEFINED_INDEX) {
+/*
+=for apidoc re_compile
 
-            /* Here there are things that won't be known until runtime -- we
-             * have to assume it could be anything */
-            invlist = sv_2mortal(_new_invlist(1));
-            return _add_range_to_invlist(invlist, 0, UV_MAX);
-        }
-        else if (ary[INVLIST_INDEX]) {
+Compile the regular expression pattern C<pattern>, returning a pointer to the
+compiled object for later matching with the internal regex engine.
 
-            /* Use the node's inversion list */
-            invlist = sv_2mortal(invlist_clone(ary[INVLIST_INDEX], NULL));
-        }
+This function is typically used by a custom regexp engine C<.comp()> function
+to hand off to the core regexp engine those patterns it doesn't want to handle
+itself (typically passing through the same flags it was called with).  In
+almost all other cases, a regexp should be compiled by calling L</C<pregcomp>>
+to compile using the currently active regexp engine.
 
-        /* Get the code points valid only under UTF-8 locales */
-        if (   (flags & ANYOFL_FOLD)
-            &&  av_tindex_skip_len_mg(av) >= ONLY_LOCALE_MATCHES_INDEX)
-        {
-            only_utf8_locale_invlist = ary[ONLY_LOCALE_MATCHES_INDEX];
-        }
-    }
+If C<pattern> is already a C<REGEXP>, this function does nothing but return a
+pointer to the input.  Otherwise the PV is extracted and treated like a string
+representing a pattern.  See L<perlre>.
 
-    if (! invlist) {
-        invlist = sv_2mortal(_new_invlist(0));
-    }
+The possible flags for C<rx_flags> are documented in L<perlreapi>.  Their names
+all begin with C<RXf_>.
 
-    /* An ANYOF node contains a bitmap for the first NUM_ANYOF_CODE_POINTS
-     * code points, and an inversion list for the others, but if there are code
-     * points that should match only conditionally on the target string being
-     * UTF-8, those are placed in the inversion list, and not the bitmap.
-     * Since there are circumstances under which they could match, they are
-     * included in the SSC.  But if the ANYOF node is to be inverted, we have
-     * to exclude them here, so that when we invert below, the end result
-     * actually does include them.  (Think about "\xe0" =~ /[^\xc0]/di;).  We
-     * have to do this here before we add the unconditionally matched code
-     * points */
-    if (flags & ANYOF_INVERT) {
-        _invlist_intersection_complement_2nd(invlist,
-                                             PL_UpperLatin1,
-                                             &invlist);
-    }
-
-    /* Add in the points from the bit map */
-    if (! inRANGE(OP(node), ANYOFH, ANYOFRb)) {
-        for (i = 0; i < NUM_ANYOF_CODE_POINTS; i++) {
-            if (ANYOF_BITMAP_TEST(node, i)) {
-                unsigned int start = i++;
+=cut
 
-                for (;    i < NUM_ANYOF_CODE_POINTS
-                       && ANYOF_BITMAP_TEST(node, i); ++i)
-                {
-                    /* empty */
-                }
-                invlist = _add_range_to_invlist(invlist, start, i-1);
-                new_node_has_latin1 = TRUE;
-            }
-        }
-    }
+ * public entry point for the perl core's own regex compiling code.
+ * It's actually a wrapper for Perl_re_op_compile that only takes an SV
+ * pattern rather than a list of OPs, and uses the internal engine rather
+ * than the current one */
 
-    /* If this can match all upper Latin1 code points, have to add them
-     * as well.  But don't add them if inverting, as when that gets done below,
-     * it would exclude all these characters, including the ones it shouldn't
-     * that were added just above */
-    if (! (flags & ANYOF_INVERT) && OP(node) == ANYOFD
-        && (flags & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER))
-    {
-        _invlist_union(invlist, PL_UpperLatin1, &invlist);
-    }
+REGEXP *
+Perl_re_compile(pTHX_ SV * const pattern, U32 rx_flags)
+{
+    SV *pat = pattern; /* defeat constness! */
 
-    /* Similarly for these */
-    if (flags & ANYOF_MATCHES_ALL_ABOVE_BITMAP) {
-        _invlist_union_complement_2nd(invlist, PL_InBitmap, &invlist);
-    }
+    PERL_ARGS_ASSERT_RE_COMPILE;
 
-    if (flags & ANYOF_INVERT) {
-        _invlist_invert(invlist);
-    }
-    else if (flags & ANYOFL_FOLD) {
-        if (new_node_has_latin1) {
+    return Perl_re_op_compile(aTHX_ &pat, 1, NULL,
+#ifdef PERL_IN_XSUB_RE
+                                &my_reg_engine,
+#else
+                                &PL_core_reg_engine,
+#endif
+                                NULL, NULL, rx_flags, 0);
+}
 
-            /* Under /li, any 0-255 could fold to any other 0-255, depending on
-             * the locale.  We can skip this if there are no 0-255 at all. */
-            _invlist_union(invlist, PL_Latin1, &invlist);
+static void
+S_free_codeblocks(pTHX_ struct reg_code_blocks *cbs)
+{
+    int n;
 
-            invlist = add_cp_to_invlist(invlist, LATIN_SMALL_LETTER_DOTLESS_I);
-            invlist = add_cp_to_invlist(invlist, LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE);
-        }
-        else {
-            if (_invlist_contains_cp(invlist, LATIN_SMALL_LETTER_DOTLESS_I)) {
-                invlist = add_cp_to_invlist(invlist, 'I');
-            }
-            if (_invlist_contains_cp(invlist,
-                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE))
-            {
-                invlist = add_cp_to_invlist(invlist, 'i');
-            }
+    if (--cbs->refcnt > 0)
+        return;
+    for (n = 0; n < cbs->count; n++) {
+        REGEXP *rx = cbs->cb[n].src_regex;
+        if (rx) {
+            cbs->cb[n].src_regex = NULL;
+            SvREFCNT_dec_NN(rx);
         }
     }
+    Safefree(cbs->cb);
+    Safefree(cbs);
+}
 
-    /* Similarly add the UTF-8 locale possible matches.  These have to be
-     * deferred until after the non-UTF-8 locale ones are taken care of just
-     * above, or it leads to wrong results under ANYOF_INVERT */
-    if (only_utf8_locale_invlist) {
-        _invlist_union_maybe_complement_2nd(invlist,
-                                            only_utf8_locale_invlist,
-                                            flags & ANYOF_INVERT,
-                                            &invlist);
-    }
 
-    return invlist;
+static struct reg_code_blocks *
+S_alloc_code_blocks(pTHX_  int ncode)
+{
+     struct reg_code_blocks *cbs;
+    Newx(cbs, 1, struct reg_code_blocks);
+    cbs->count = ncode;
+    cbs->refcnt = 1;
+    SAVEDESTRUCTOR_X(S_free_codeblocks, cbs);
+    if (ncode)
+        Newx(cbs->cb, ncode, struct reg_code_block);
+    else
+        cbs->cb = NULL;
+    return cbs;
 }
 
-/* These two functions currently do the exact same thing */
-#define ssc_init_zero		ssc_init
 
-#define ssc_add_cp(ssc, cp)   ssc_add_range((ssc), (cp), (cp))
-#define ssc_match_all_cp(ssc) ssc_add_range(ssc, 0, UV_MAX)
-
-/* 'AND' a given class with another one.  Can create false positives.  'ssc'
- * should not be inverted.  'and_with->flags & ANYOF_MATCHES_POSIXL' should be
- * 0 if 'and_with' is a regnode_charclass instead of a regnode_ssc. */
+/* upgrade pattern pat_p of length plen_p to UTF8, and if there are code
+ * blocks, recalculate the indices. Update pat_p and plen_p in-place to
+ * point to the realloced string and length.
+ *
+ * This is essentially a copy of Perl_bytes_to_utf8() with the code index
+ * stuff added */
 
-STATIC void
-S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc,
-                const regnode_charclass *and_with)
+static void
+S_pat_upgrade_to_utf8(pTHX_ RExC_state_t * const pRExC_state,
+                    char **pat_p, STRLEN *plen_p, int num_code_blocks)
 {
-    /* Accumulate into SSC 'ssc' its 'AND' with 'and_with', which is either
-     * another SSC or a regular ANYOF class.  Can create false positives. */
+    U8 *const src = (U8*)*pat_p;
+    U8 *dst, *d;
+    int n=0;
+    STRLEN s = 0;
+    bool do_end = 0;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
-    SV* anded_cp_list;
-    U8  and_with_flags = inRANGE(OP(and_with), ANYOFH, ANYOFRb)
-                          ? 0
-                          : ANYOF_FLAGS(and_with);
-    U8  anded_flags;
-
-    PERL_ARGS_ASSERT_SSC_AND;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    /* 'and_with' is used as-is if it too is an SSC; otherwise have to extract
-     * the code point inversion list and just the relevant flags */
-    if (is_ANYOF_SYNTHETIC(and_with)) {
-        anded_cp_list = ((regnode_ssc *)and_with)->invlist;
-        anded_flags = and_with_flags;
-
-        /* XXX This is a kludge around what appears to be deficiencies in the
-         * optimizer.  If we make S_ssc_anything() add in the WARN_SUPER flag,
-         * there are paths through the optimizer where it doesn't get weeded
-         * out when it should.  And if we don't make some extra provision for
-         * it like the code just below, it doesn't get added when it should.
-         * This solution is to add it only when AND'ing, which is here, and
-         * only when what is being AND'ed is the pristine, original node
-         * matching anything.  Thus it is like adding it to ssc_anything() but
-         * only when the result is to be AND'ed.  Probably the same solution
-         * could be adopted for the same problem we have with /l matching,
-         * which is solved differently in S_ssc_init(), and that would lead to
-         * fewer false positives than that solution has.  But if this solution
-         * creates bugs, the consequences are only that a warning isn't raised
-         * that should be; while the consequences for having /l bugs is
-         * incorrect matches */
-        if (ssc_is_anything((regnode_ssc *)and_with)) {
-            anded_flags |= ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER;
-        }
-    }
-    else {
-        anded_cp_list = get_ANYOF_cp_list_for_ssc(pRExC_state, and_with);
-        if (OP(and_with) == ANYOFD) {
-            anded_flags = and_with_flags & ANYOF_COMMON_FLAGS;
-        }
-        else {
-            anded_flags = and_with_flags
-            &( ANYOF_COMMON_FLAGS
-              |ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER
-              |ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP);
-            if (ANYOFL_UTF8_LOCALE_REQD(and_with_flags)) {
-                anded_flags &=
-                    ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD;
-            }
-        }
-    }
-
-    ANYOF_FLAGS(ssc) &= anded_flags;
-
-    /* Below, C1 is the list of code points in 'ssc'; P1, its posix classes.
-     * C2 is the list of code points in 'and-with'; P2, its posix classes.
-     * 'and_with' may be inverted.  When not inverted, we have the situation of
-     * computing:
-     *  (C1 | P1) & (C2 | P2)
-     *                     =  (C1 & (C2 | P2)) | (P1 & (C2 | P2))
-     *                     =  ((C1 & C2) | (C1 & P2)) | ((P1 & C2) | (P1 & P2))
-     *                    <=  ((C1 & C2) |       P2)) | ( P1       | (P1 & P2))
-     *                    <=  ((C1 & C2) | P1 | P2)
-     * Alternatively, the last few steps could be:
-     *                     =  ((C1 & C2) | (C1 & P2)) | ((P1 & C2) | (P1 & P2))
-     *                    <=  ((C1 & C2) |  C1      ) | (      C2  | (P1 & P2))
-     *                    <=  (C1 | C2 | (P1 & P2))
-     * We favor the second approach if either P1 or P2 is non-empty.  This is
-     * because these components are a barrier to doing optimizations, as what
-     * they match cannot be known until the moment of matching as they are
-     * dependent on the current locale, 'AND"ing them likely will reduce or
-     * eliminate them.
-     * But we can do better if we know that C1,P1 are in their initial state (a
-     * frequent occurrence), each matching everything:
-     *  (<everything>) & (C2 | P2) =  C2 | P2
-     * Similarly, if C2,P2 are in their initial state (again a frequent
-     * occurrence), the result is a no-op
-     *  (C1 | P1) & (<everything>) =  C1 | P1
-     *
-     * Inverted, we have
-     *  (C1 | P1) & ~(C2 | P2)  =  (C1 | P1) & (~C2 & ~P2)
-     *                          =  (C1 & (~C2 & ~P2)) | (P1 & (~C2 & ~P2))
-     *                         <=  (C1 & ~C2) | (P1 & ~P2)
-     * */
+    DEBUG_PARSE_r(Perl_re_printf( aTHX_
+        "UTF8 mismatch! Converting to utf8 for resizing and compile\n"));
 
-    if ((and_with_flags & ANYOF_INVERT)
-        && ! is_ANYOF_SYNTHETIC(and_with))
-    {
-        unsigned int i;
+    /* 1 for each byte + 1 for each byte that expands to two, + trailing NUL */
+    Newx(dst, *plen_p + variant_under_utf8_count(src, src + *plen_p) + 1, U8);
+    d = dst;
 
-        ssc_intersection(ssc,
-                         anded_cp_list,
-                         FALSE /* Has already been inverted */
-                         );
-
-        /* If either P1 or P2 is empty, the intersection will be also; can skip
-         * the loop */
-        if (! (and_with_flags & ANYOF_MATCHES_POSIXL)) {
-            ANYOF_POSIXL_ZERO(ssc);
-        }
-        else if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
-
-            /* Note that the Posix class component P from 'and_with' actually
-             * looks like:
-             *      P = Pa | Pb | ... | Pn
-             * where each component is one posix class, such as in [\w\s].
-             * Thus
-             *      ~P = ~(Pa | Pb | ... | Pn)
-             *         = ~Pa & ~Pb & ... & ~Pn
-             *        <= ~Pa | ~Pb | ... | ~Pn
-             * The last is something we can easily calculate, but unfortunately
-             * is likely to have many false positives.  We could do better
-             * in some (but certainly not all) instances if two classes in
-             * P have known relationships.  For example
-             *      :lower: <= :alpha: <= :alnum: <= \w <= :graph: <= :print:
-             * So
-             *      :lower: & :print: = :lower:
-             * And similarly for classes that must be disjoint.  For example,
-             * since \s and \w can have no elements in common based on rules in
-             * the POSIX standard,
-             *      \w & ^\S = nothing
-             * Unfortunately, some vendor locales do not meet the Posix
-             * standard, in particular almost everything by Microsoft.
-             * The loop below just changes e.g., \w into \W and vice versa */
-
-            regnode_charclass_posixl temp;
-            int add = 1;    /* To calculate the index of the complement */
-
-            Zero(&temp, 1, regnode_charclass_posixl);
-            ANYOF_POSIXL_ZERO(&temp);
-            for (i = 0; i < ANYOF_MAX; i++) {
-                assert(i % 2 != 0
-                       || ! ANYOF_POSIXL_TEST((regnode_charclass_posixl*) and_with, i)
-                       || ! ANYOF_POSIXL_TEST((regnode_charclass_posixl*) and_with, i + 1));
-
-                if (ANYOF_POSIXL_TEST((regnode_charclass_posixl*) and_with, i)) {
-                    ANYOF_POSIXL_SET(&temp, i + add);
-                }
-                add = 0 - add; /* 1 goes to -1; -1 goes to 1 */
-            }
-            ANYOF_POSIXL_AND(&temp, ssc);
-
-        } /* else ssc already has no posixes */
-    } /* else: Not inverted.  This routine is a no-op if 'and_with' is an SSC
-         in its initial state */
-    else if (! is_ANYOF_SYNTHETIC(and_with)
-             || ! ssc_is_cp_posixl_init(pRExC_state, (regnode_ssc *)and_with))
-    {
-        /* But if 'ssc' is in its initial state, the result is just 'and_with';
-         * copy it over 'ssc' */
-        if (ssc_is_cp_posixl_init(pRExC_state, ssc)) {
-            if (is_ANYOF_SYNTHETIC(and_with)) {
-                StructCopy(and_with, ssc, regnode_ssc);
-            }
-            else {
-                ssc->invlist = anded_cp_list;
-                ANYOF_POSIXL_ZERO(ssc);
-                if (and_with_flags & ANYOF_MATCHES_POSIXL) {
-                    ANYOF_POSIXL_OR((regnode_charclass_posixl*) and_with, ssc);
-                }
-            }
-        }
-        else if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)
-                 || (and_with_flags & ANYOF_MATCHES_POSIXL))
-        {
-            /* One or the other of P1, P2 is non-empty. */
-            if (and_with_flags & ANYOF_MATCHES_POSIXL) {
-                ANYOF_POSIXL_AND((regnode_charclass_posixl*) and_with, ssc);
-            }
-            ssc_union(ssc, anded_cp_list, FALSE);
-        }
-        else { /* P1 = P2 = empty */
-            ssc_intersection(ssc, anded_cp_list, FALSE);
-        }
-    }
-}
+    while (s < *plen_p) {
+        append_utf8_from_native_byte(src[s], &d);
 
-STATIC void
-S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc,
-               const regnode_charclass *or_with)
-{
-    /* Accumulate into SSC 'ssc' its 'OR' with 'or_with', which is either
-     * another SSC or a regular ANYOF class.  Can create false positives if
-     * 'or_with' is to be inverted. */
-
-    SV* ored_cp_list;
-    U8 ored_flags;
-    U8  or_with_flags = inRANGE(OP(or_with), ANYOFH, ANYOFRb)
-                         ? 0
-                         : ANYOF_FLAGS(or_with);
-
-    PERL_ARGS_ASSERT_SSC_OR;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    /* 'or_with' is used as-is if it too is an SSC; otherwise have to extract
-     * the code point inversion list and just the relevant flags */
-    if (is_ANYOF_SYNTHETIC(or_with)) {
-        ored_cp_list = ((regnode_ssc*) or_with)->invlist;
-        ored_flags = or_with_flags;
-    }
-    else {
-        ored_cp_list = get_ANYOF_cp_list_for_ssc(pRExC_state, or_with);
-        ored_flags = or_with_flags & ANYOF_COMMON_FLAGS;
-        if (OP(or_with) != ANYOFD) {
-            ored_flags
-            |= or_with_flags
-             & ( ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER
-                |ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP);
-            if (ANYOFL_UTF8_LOCALE_REQD(or_with_flags)) {
-                ored_flags |=
-                    ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD;
+        if (n < num_code_blocks) {
+            assert(pRExC_state->code_blocks);
+            if (!do_end && pRExC_state->code_blocks->cb[n].start == s) {
+                pRExC_state->code_blocks->cb[n].start = d - dst - 1;
+                assert(*(d - 1) == '(');
+                do_end = 1;
             }
-        }
-    }
-
-    ANYOF_FLAGS(ssc) |= ored_flags;
-
-    /* Below, C1 is the list of code points in 'ssc'; P1, its posix classes.
-     * C2 is the list of code points in 'or-with'; P2, its posix classes.
-     * 'or_with' may be inverted.  When not inverted, we have the simple
-     * situation of computing:
-     *  (C1 | P1) | (C2 | P2)  =  (C1 | C2) | (P1 | P2)
-     * If P1|P2 yields a situation with both a class and its complement are
-     * set, like having both \w and \W, this matches all code points, and we
-     * can delete these from the P component of the ssc going forward.  XXX We
-     * might be able to delete all the P components, but I (khw) am not certain
-     * about this, and it is better to be safe.
-     *
-     * Inverted, we have
-     *  (C1 | P1) | ~(C2 | P2)  =  (C1 | P1) | (~C2 & ~P2)
-     *                         <=  (C1 | P1) | ~C2
-     *                         <=  (C1 | ~C2) | P1
-     * (which results in actually simpler code than the non-inverted case)
-     * */
-
-    if ((or_with_flags & ANYOF_INVERT)
-        && ! is_ANYOF_SYNTHETIC(or_with))
-    {
-        /* We ignore P2, leaving P1 going forward */
-    }   /* else  Not inverted */
-    else if (or_with_flags & ANYOF_MATCHES_POSIXL) {
-        ANYOF_POSIXL_OR((regnode_charclass_posixl*)or_with, ssc);
-        if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
-            unsigned int i;
-            for (i = 0; i < ANYOF_MAX; i += 2) {
-                if (ANYOF_POSIXL_TEST(ssc, i) && ANYOF_POSIXL_TEST(ssc, i + 1))
-                {
-                    ssc_match_all_cp(ssc);
-                    ANYOF_POSIXL_CLEAR(ssc, i);
-                    ANYOF_POSIXL_CLEAR(ssc, i+1);
-                }
+            else if (do_end && pRExC_state->code_blocks->cb[n].end == s) {
+                pRExC_state->code_blocks->cb[n].end = d - dst - 1;
+                assert(*(d - 1) == ')');
+                do_end = 0;
+                n++;
             }
         }
+        s++;
     }
-
-    ssc_union(ssc,
-              ored_cp_list,
-              FALSE /* Already has been inverted */
-              );
-}
-
-STATIC void
-S_ssc_union(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert2nd)
-{
-    PERL_ARGS_ASSERT_SSC_UNION;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    _invlist_union_maybe_complement_2nd(ssc->invlist,
-                                        invlist,
-                                        invert2nd,
-                                        &ssc->invlist);
-}
-
-STATIC void
-S_ssc_intersection(pTHX_ regnode_ssc *ssc,
-                         SV* const invlist,
-                         const bool invert2nd)
-{
-    PERL_ARGS_ASSERT_SSC_INTERSECTION;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    _invlist_intersection_maybe_complement_2nd(ssc->invlist,
-                                               invlist,
-                                               invert2nd,
-                                               &ssc->invlist);
-}
-
-STATIC void
-S_ssc_add_range(pTHX_ regnode_ssc *ssc, const UV start, const UV end)
-{
-    PERL_ARGS_ASSERT_SSC_ADD_RANGE;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    ssc->invlist = _add_range_to_invlist(ssc->invlist, start, end);
-}
-
-STATIC void
-S_ssc_cp_and(pTHX_ regnode_ssc *ssc, const UV cp)
-{
-    /* AND just the single code point 'cp' into the SSC 'ssc' */
-
-    SV* cp_list = _new_invlist(2);
-
-    PERL_ARGS_ASSERT_SSC_CP_AND;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    cp_list = add_cp_to_invlist(cp_list, cp);
-    ssc_intersection(ssc, cp_list,
-                     FALSE /* Not inverted */
-                     );
-    SvREFCNT_dec_NN(cp_list);
-}
-
-STATIC void
-S_ssc_clear_locale(regnode_ssc *ssc)
-{
-    /* Set the SSC 'ssc' to not match any locale things */
-    PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    ANYOF_POSIXL_ZERO(ssc);
-    ANYOF_FLAGS(ssc) &= ~ANYOF_LOCALE_FLAGS;
+    *d = '\0';
+    *plen_p = d - dst;
+    *pat_p = (char*) dst;
+    SAVEFREEPV(*pat_p);
+    RExC_orig_utf8 = RExC_utf8 = 1;
 }
 
-STATIC bool
-S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc)
-{
-    /* The synthetic start class is used to hopefully quickly winnow down
-     * places where a pattern could start a match in the target string.  If it
-     * doesn't really narrow things down that much, there isn't much point to
-     * having the overhead of using it.  This function uses some very crude
-     * heuristics to decide if to use the ssc or not.
-     *
-     * It returns TRUE if 'ssc' rules out more than half what it considers to
-     * be the "likely" possible matches, but of course it doesn't know what the
-     * actual things being matched are going to be; these are only guesses
-     *
-     * For /l matches, it assumes that the only likely matches are going to be
-     *      in the 0-255 range, uniformly distributed, so half of that is 127
-     * For /a and /d matches, it assumes that the likely matches will be just
-     *      the ASCII range, so half of that is 63
-     * For /u and there isn't anything matching above the Latin1 range, it
-     *      assumes that that is the only range likely to be matched, and uses
-     *      half that as the cut-off: 127.  If anything matches above Latin1,
-     *      it assumes that all of Unicode could match (uniformly), except for
-     *      non-Unicode code points and things in the General Category "Other"
-     *      (unassigned, private use, surrogates, controls and formats).  This
-     *      is a much large number. */
-
-    U32 count = 0;      /* Running total of number of code points matched by
-                           'ssc' */
-    UV start, end;      /* Start and end points of current range in inversion
-                           XXX outdated.  UTF-8 locales are common, what about invert? list */
-    const U32 max_code_points = (LOC)
-                                ?  256
-                                : ((  ! UNI_SEMANTICS
-                                    ||  invlist_highest(ssc->invlist) < 256)
-                                  ? 128
-                                  : NON_OTHER_COUNT);
-    const U32 max_match = max_code_points / 2;
-
-    PERL_ARGS_ASSERT_IS_SSC_WORTH_IT;
-
-    invlist_iterinit(ssc->invlist);
-    while (invlist_iternext(ssc->invlist, &start, &end)) {
-        if (start >= max_code_points) {
-            break;
-        }
-        end = MIN(end, max_code_points - 1);
-        count += end - start + 1;
-        if (count >= max_match) {
-            invlist_iterfinish(ssc->invlist);
-            return FALSE;
-        }
-    }
 
-    return TRUE;
-}
 
+/* S_concat_pat(): concatenate a list of args to the pattern string pat,
+ * while recording any code block indices, and handling overloading,
+ * nested qr// objects etc.  If pat is null, it will allocate a new
+ * string, or just return the first arg, if there's only one.
+ *
+ * Returns the malloced/updated pat.
+ * patternp and pat_count is the array of SVs to be concatted;
+ * oplist is the optional list of ops that generated the SVs;
+ * recompile_p is a pointer to a boolean that will be set if
+ *   the regex will need to be recompiled.
+ * delim, if non-null is an SV that will be inserted between each element
+ */
 
-STATIC void
-S_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc)
+static SV*
+S_concat_pat(pTHX_ RExC_state_t * const pRExC_state,
+                SV *pat, SV ** const patternp, int pat_count,
+                OP *oplist, bool *recompile_p, SV *delim)
 {
-    /* The inversion list in the SSC is marked mortal; now we need a more
-     * permanent copy, which is stored the same way that is done in a regular
-     * ANYOF node, with the first NUM_ANYOF_CODE_POINTS code points in a bit
-     * map */
-
-    SV* invlist = invlist_clone(ssc->invlist, NULL);
-
-    PERL_ARGS_ASSERT_SSC_FINALIZE;
-
-    assert(is_ANYOF_SYNTHETIC(ssc));
-
-    /* The code in this file assumes that all but these flags aren't relevant
-     * to the SSC, except SSC_MATCHES_EMPTY_STRING, which should be cleared
-     * by the time we reach here */
-    assert(! (ANYOF_FLAGS(ssc)
-        & ~( ANYOF_COMMON_FLAGS
-            |ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER
-            |ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP)));
-
-    populate_ANYOF_from_invlist( (regnode *) ssc, &invlist);
-
-    set_ANYOF_arg(pRExC_state, (regnode *) ssc, invlist, NULL, NULL);
-    SvREFCNT_dec(invlist);
-
-    /* Make sure is clone-safe */
-    ssc->invlist = NULL;
+    SV **svp;
+    int n = 0;
+    bool use_delim = FALSE;
+    bool alloced = FALSE;
 
-    if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
-        ANYOF_FLAGS(ssc) |= ANYOF_MATCHES_POSIXL;
-        OP(ssc) = ANYOFPOSIXL;
-    }
-    else if (RExC_contains_locale) {
-        OP(ssc) = ANYOFL;
+    /* if we know we have at least two args, create an empty string,
+     * then concatenate args to that. For no args, return an empty string */
+    if (!pat && pat_count != 1) {
+        pat = newSVpvs("");
+        SAVEFREESV(pat);
+        alloced = TRUE;
     }
 
-    assert(! (ANYOF_FLAGS(ssc) & ANYOF_LOCALE_FLAGS) || RExC_contains_locale);
-}
-
-#define TRIE_LIST_ITEM(state,idx) (trie->states[state].trans.list)[ idx ]
-#define TRIE_LIST_CUR(state)  ( TRIE_LIST_ITEM( state, 0 ).forid )
-#define TRIE_LIST_LEN(state) ( TRIE_LIST_ITEM( state, 0 ).newstate )
-#define TRIE_LIST_USED(idx)  ( trie->states[state].trans.list         \
-                               ? (TRIE_LIST_CUR( idx ) - 1)           \
-                               : 0 )
-
-
-#ifdef DEBUGGING
-/*
-   dump_trie(trie,widecharmap,revcharmap)
-   dump_trie_interim_list(trie,widecharmap,revcharmap,next_alloc)
-   dump_trie_interim_table(trie,widecharmap,revcharmap,next_alloc)
-
-   These routines dump out a trie in a somewhat readable format.
-   The _interim_ variants are used for debugging the interim
-   tables that are used to generate the final compressed
-   representation which is what dump_trie expects.
-
-   Part of the reason for their existence is to provide a form
-   of documentation as to how the different representations function.
-
-*/
-
-/*
-  Dumps the final compressed table form of the trie to Perl_debug_log.
-  Used for debugging make_trie().
-*/
+    for (svp = patternp; svp < patternp + pat_count; svp++) {
+        SV *sv;
+        SV *rx  = NULL;
+        STRLEN orig_patlen = 0;
+        bool code = 0;
+        SV *msv = use_delim ? delim : *svp;
+        if (!msv) msv = &PL_sv_undef;
 
-STATIC void
-S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap,
-            AV *revcharmap, U32 depth)
-{
-    U32 state;
-    SV *sv=sv_newmortal();
-    int colwidth= widecharmap ? 6 : 4;
-    U16 word;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+        /* if we've got a delimiter, we go round the loop twice for each
+         * svp slot (except the last), using the delimiter the second
+         * time round */
+        if (use_delim) {
+            svp--;
+            use_delim = FALSE;
+        }
+        else if (delim)
+            use_delim = TRUE;
 
-    PERL_ARGS_ASSERT_DUMP_TRIE;
+        if (SvTYPE(msv) == SVt_PVAV) {
+            /* we've encountered an interpolated array within
+             * the pattern, e.g. /...@a..../. Expand the list of elements,
+             * then recursively append elements.
+             * The code in this block is based on S_pushav() */
 
-    Perl_re_indentf( aTHX_  "Char : %-6s%-6s%-4s ",
-        depth+1, "Match","Base","Ofs" );
+            AV *const av = (AV*)msv;
+            const SSize_t maxarg = AvFILL(av) + 1;
+            SV **array;
 
-    for( state = 0 ; state < trie->uniquecharcount ; state++ ) {
-        SV ** const tmp = av_fetch( revcharmap, state, 0);
-        if ( tmp ) {
-            Perl_re_printf( aTHX_  "%*s",
-                colwidth,
-                pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), colwidth,
-                            PL_colors[0], PL_colors[1],
-                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
-                            PERL_PV_ESCAPE_FIRSTCHAR
-                )
-            );
-        }
-    }
-    Perl_re_printf( aTHX_  "\n");
-    Perl_re_indentf( aTHX_ "State|-----------------------", depth+1);
+            if (oplist) {
+                assert(oplist->op_type == OP_PADAV
+                    || oplist->op_type == OP_RV2AV);
+                oplist = OpSIBLING(oplist);
+            }
 
-    for( state = 0 ; state < trie->uniquecharcount ; state++ )
-        Perl_re_printf( aTHX_  "%.*s", colwidth, "--------");
-    Perl_re_printf( aTHX_  "\n");
+            if (SvRMAGICAL(av)) {
+                SSize_t i;
 
-    for( state = 1 ; state < trie->statecount ; state++ ) {
-        const U32 base = trie->states[ state ].trans.base;
+                Newx(array, maxarg, SV*);
+                SAVEFREEPV(array);
+                for (i=0; i < maxarg; i++) {
+                    SV ** const svp = av_fetch(av, i, FALSE);
+                    array[i] = svp ? *svp : &PL_sv_undef;
+                }
+            }
+            else
+                array = AvARRAY(av);
 
-        Perl_re_indentf( aTHX_  "#%4" UVXf "|", depth+1, (UV)state);
+            if (maxarg > 0) {
+                pat = S_concat_pat(aTHX_ pRExC_state, pat,
+                                   array, maxarg, NULL, recompile_p,
+                                   /* $" */
+                                   GvSV((gv_fetchpvs("\"", GV_ADDMULTI, SVt_PV))));
+            }
+            else if (!pat) {
+                pat = newSVpvs_flags("", SVs_TEMP);
+            }
 
-        if ( trie->states[ state ].wordnum ) {
-            Perl_re_printf( aTHX_  " W%4X", trie->states[ state ].wordnum );
-        } else {
-            Perl_re_printf( aTHX_  "%6s", "" );
+            continue;
         }
 
-        Perl_re_printf( aTHX_  " @%4" UVXf " ", (UV)base );
 
-        if ( base ) {
-            U32 ofs = 0;
-
-            while( ( base + ofs  < trie->uniquecharcount ) ||
-                   ( base + ofs - trie->uniquecharcount < trie->lasttrans
-                     && trie->trans[ base + ofs - trie->uniquecharcount ].check
-                                                                    != state))
-                    ofs++;
-
-            Perl_re_printf( aTHX_  "+%2" UVXf "[ ", (UV)ofs);
+        /* we make the assumption here that each op in the list of
+         * op_siblings maps to one SV pushed onto the stack,
+         * except for code blocks, with have both an OP_NULL and
+         * an OP_CONST.
+         * This allows us to match up the list of SVs against the
+         * list of OPs to find the next code block.
+         *
+         * Note that       PUSHMARK PADSV PADSV ..
+         * is optimised to
+         *                 PADRANGE PADSV  PADSV  ..
+         * so the alignment still works. */
 
-            for ( ofs = 0 ; ofs < trie->uniquecharcount ; ofs++ ) {
-                if ( ( base + ofs >= trie->uniquecharcount )
-                        && ( base + ofs - trie->uniquecharcount
-                                                        < trie->lasttrans )
-                        && trie->trans[ base + ofs
-                                    - trie->uniquecharcount ].check == state )
-                {
-                   Perl_re_printf( aTHX_  "%*" UVXf, colwidth,
-                    (UV)trie->trans[ base + ofs - trie->uniquecharcount ].next
-                   );
-                } else {
-                    Perl_re_printf( aTHX_  "%*s", colwidth,"   ." );
-                }
+        if (oplist) {
+            if (oplist->op_type == OP_NULL
+                && (oplist->op_flags & OPf_SPECIAL))
+            {
+                assert(n < pRExC_state->code_blocks->count);
+                pRExC_state->code_blocks->cb[n].start = pat ? SvCUR(pat) : 0;
+                pRExC_state->code_blocks->cb[n].block = oplist;
+                pRExC_state->code_blocks->cb[n].src_regex = NULL;
+                n++;
+                code = 1;
+                oplist = OpSIBLING(oplist); /* skip CONST */
+                assert(oplist);
             }
-
-            Perl_re_printf( aTHX_  "]");
-
+            oplist = OpSIBLING(oplist);;
         }
-        Perl_re_printf( aTHX_  "\n" );
-    }
-    Perl_re_indentf( aTHX_  "word_info N:(prev,len)=",
-                                depth);
-    for (word=1; word <= trie->wordcount; word++) {
-        Perl_re_printf( aTHX_  " %d:(%d,%d)",
-            (int)word, (int)(trie->wordinfo[word].prev),
-            (int)(trie->wordinfo[word].len));
-    }
-    Perl_re_printf( aTHX_  "\n" );
-}
-/*
-  Dumps a fully constructed but uncompressed trie in list form.
-  List tries normally only are used for construction when the number of
-  possible chars (trie->uniquecharcount) is very high.
-  Used for debugging make_trie().
-*/
-STATIC void
-S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie,
-                         HV *widecharmap, AV *revcharmap, U32 next_alloc,
-                         U32 depth)
-{
-    U32 state;
-    SV *sv=sv_newmortal();
-    int colwidth= widecharmap ? 6 : 4;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
-    PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST;
+        /* apply magic and QR overloading to arg */
 
-    /* print out the table precompression.  */
-    Perl_re_indentf( aTHX_  "State :Word | Transition Data\n",
-            depth+1 );
-    Perl_re_indentf( aTHX_  "%s",
-            depth+1, "------:-----+-----------------\n" );
-
-    for( state=1 ; state < next_alloc ; state ++ ) {
-        U16 charid;
-
-        Perl_re_indentf( aTHX_  " %4" UVXf " :",
-            depth+1, (UV)state  );
-        if ( ! trie->states[ state ].wordnum ) {
-            Perl_re_printf( aTHX_  "%5s| ","");
-        } else {
-            Perl_re_printf( aTHX_  "W%4x| ",
-                trie->states[ state ].wordnum
-            );
-        }
-        for( charid = 1 ; charid <= TRIE_LIST_USED( state ) ; charid++ ) {
-            SV ** const tmp = av_fetch( revcharmap,
-                                        TRIE_LIST_ITEM(state, charid).forid, 0);
-            if ( tmp ) {
-                Perl_re_printf( aTHX_  "%*s:%3X=%4" UVXf " | ",
-                    colwidth,
-                    pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp),
-                              colwidth,
-                              PL_colors[0], PL_colors[1],
-                              (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0)
-                              | PERL_PV_ESCAPE_FIRSTCHAR
-                    ) ,
-                    TRIE_LIST_ITEM(state, charid).forid,
-                    (UV)TRIE_LIST_ITEM(state, charid).newstate
-                );
-                if (!(charid % 10))
-                    Perl_re_printf( aTHX_  "\n%*s| ",
-                        (int)((depth * 2) + 14), "");
+        SvGETMAGIC(msv);
+        if (SvROK(msv) && SvAMAGIC(msv)) {
+            SV *sv = AMG_CALLunary(msv, regexp_amg);
+            if (sv) {
+                if (SvROK(sv))
+                    sv = SvRV(sv);
+                if (SvTYPE(sv) != SVt_REGEXP)
+                    Perl_croak(aTHX_ "Overloaded qr did not return a REGEXP");
+                msv = sv;
             }
         }
-        Perl_re_printf( aTHX_  "\n");
-    }
-}
 
-/*
-  Dumps a fully constructed but uncompressed trie in table form.
-  This is the normal DFA style state transition table, with a few
-  twists to facilitate compression later.
-  Used for debugging make_trie().
-*/
-STATIC void
-S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie,
-                          HV *widecharmap, AV *revcharmap, U32 next_alloc,
-                          U32 depth)
-{
-    U32 state;
-    U16 charid;
-    SV *sv=sv_newmortal();
-    int colwidth= widecharmap ? 6 : 4;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE;
-
-    /*
-       print out the table precompression so that we can do a visual check
-       that they are identical.
-     */
-
-    Perl_re_indentf( aTHX_  "Char : ", depth+1 );
-
-    for( charid = 0 ; charid < trie->uniquecharcount ; charid++ ) {
-        SV ** const tmp = av_fetch( revcharmap, charid, 0);
-        if ( tmp ) {
-            Perl_re_printf( aTHX_  "%*s",
-                colwidth,
-                pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), colwidth,
-                            PL_colors[0], PL_colors[1],
-                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
-                            PERL_PV_ESCAPE_FIRSTCHAR
-                )
-            );
+        /* try concatenation overload ... */
+        if (pat && (SvAMAGIC(pat) || SvAMAGIC(msv)) &&
+                (sv = amagic_call(pat, msv, concat_amg, AMGf_assign)))
+        {
+            sv_setsv(pat, sv);
+            /* overloading involved: all bets are off over literal
+             * code. Pretend we haven't seen it */
+            if (n)
+                pRExC_state->code_blocks->count -= n;
+            n = 0;
         }
-    }
-
-    Perl_re_printf( aTHX_ "\n");
-    Perl_re_indentf( aTHX_  "State+-", depth+1 );
+        else {
+            /* ... or failing that, try "" overload */
+            while (SvAMAGIC(msv)
+                    && (sv = AMG_CALLunary(msv, string_amg))
+                    && sv != msv
+                    &&  !(   SvROK(msv)
+                          && SvROK(sv)
+                          && SvRV(msv) == SvRV(sv))
+            ) {
+                msv = sv;
+                SvGETMAGIC(msv);
+            }
+            if (SvROK(msv) && SvTYPE(SvRV(msv)) == SVt_REGEXP)
+                msv = SvRV(msv);
 
-    for( charid=0 ; charid < trie->uniquecharcount ; charid++ ) {
-        Perl_re_printf( aTHX_  "%.*s", colwidth,"--------");
-    }
+            if (pat) {
+                /* this is a partially unrolled
+                 *     sv_catsv_nomg(pat, msv);
+                 * that allows us to adjust code block indices if
+                 * needed */
+                STRLEN dlen;
+                char *dst = SvPV_force_nomg(pat, dlen);
+                orig_patlen = dlen;
+                if (SvUTF8(msv) && !SvUTF8(pat)) {
+                    S_pat_upgrade_to_utf8(aTHX_ pRExC_state, &dst, &dlen, n);
+                    sv_setpvn(pat, dst, dlen);
+                    SvUTF8_on(pat);
+                }
+                sv_catsv_nomg(pat, msv);
+                rx = msv;
+            }
+            else {
+                /* We have only one SV to process, but we need to verify
+                 * it is properly null terminated or we will fail asserts
+                 * later. In theory we probably shouldn't get such SV's,
+                 * but if we do we should handle it gracefully. */
+                if ( SvTYPE(msv) != SVt_PV || (SvLEN(msv) > SvCUR(msv) && *(SvEND(msv)) == 0) || SvIsCOW_shared_hash(msv) ) {
+                    /* not a string, or a string with a trailing null */
+                    pat = msv;
+                } else {
+                    /* a string with no trailing null, we need to copy it
+                     * so it has a trailing null */
+                    pat = sv_2mortal(newSVsv(msv));
+                }
+            }
 
-    Perl_re_printf( aTHX_  "\n" );
+            if (code)
+                pRExC_state->code_blocks->cb[n-1].end = SvCUR(pat)-1;
+        }
 
-    for( state=1 ; state < next_alloc ; state += trie->uniquecharcount ) {
+        /* extract any code blocks within any embedded qr//'s */
+        if (rx && SvTYPE(rx) == SVt_REGEXP
+            && RX_ENGINE((REGEXP*)rx)->op_comp)
+        {
 
-        Perl_re_indentf( aTHX_  "%4" UVXf " : ",
-            depth+1,
-            (UV)TRIE_NODENUM( state ) );
+            RXi_GET_DECL(ReANY((REGEXP *)rx), ri);
+            if (ri->code_blocks && ri->code_blocks->count) {
+                int i;
+                /* the presence of an embedded qr// with code means
+                 * we should always recompile: the text of the
+                 * qr// may not have changed, but it may be a
+                 * different closure than last time */
+                *recompile_p = 1;
+                if (pRExC_state->code_blocks) {
+                    int new_count = pRExC_state->code_blocks->count
+                            + ri->code_blocks->count;
+                    Renew(pRExC_state->code_blocks->cb,
+                            new_count, struct reg_code_block);
+                    pRExC_state->code_blocks->count = new_count;
+                }
+                else
+                    pRExC_state->code_blocks = S_alloc_code_blocks(aTHX_
+                                                    ri->code_blocks->count);
 
-        for( charid = 0 ; charid < trie->uniquecharcount ; charid++ ) {
-            UV v=(UV)SAFE_TRIE_NODENUM( trie->trans[ state + charid ].next );
-            if (v)
-                Perl_re_printf( aTHX_  "%*" UVXf, colwidth, v );
-            else
-                Perl_re_printf( aTHX_  "%*s", colwidth, "." );
-        }
-        if ( ! trie->states[ TRIE_NODENUM( state ) ].wordnum ) {
-            Perl_re_printf( aTHX_  " (%4" UVXf ")\n",
-                                            (UV)trie->trans[ state ].check );
-        } else {
-            Perl_re_printf( aTHX_  " (%4" UVXf ") W%4X\n",
-                                            (UV)trie->trans[ state ].check,
-            trie->states[ TRIE_NODENUM( state ) ].wordnum );
+                for (i=0; i < ri->code_blocks->count; i++) {
+                    struct reg_code_block *src, *dst;
+                    STRLEN offset =  orig_patlen
+                        + ReANY((REGEXP *)rx)->pre_prefix;
+                    assert(n < pRExC_state->code_blocks->count);
+                    src = &ri->code_blocks->cb[i];
+                    dst = &pRExC_state->code_blocks->cb[n];
+                    dst->start	    = src->start + offset;
+                    dst->end	    = src->end   + offset;
+                    dst->block	    = src->block;
+                    dst->src_regex  = (REGEXP*) SvREFCNT_inc( (SV*)
+                                            src->src_regex
+                                                ? src->src_regex
+                                                : (REGEXP*)rx);
+                    n++;
+                }
+            }
         }
     }
-}
-
-#endif
-
-
-/* make_trie(startbranch,first,last,tail,word_count,flags,depth)
-  startbranch: the first branch in the whole branch sequence
-  first      : start branch of sequence of branch-exact nodes.
-               May be the same as startbranch
-  last       : Thing following the last branch.
-               May be the same as tail.
-  tail       : item following the branch sequence
-  count      : words in the sequence
-  flags      : currently the OP() type we will be building one of /EXACT(|F|FA|FU|FU_SS|L|FLU8)/
-  depth      : indent depth
-
-Inplace optimizes a sequence of 2 or more Branch-Exact nodes into a TRIE node.
-
-A trie is an N'ary tree where the branches are determined by digital
-decomposition of the key. IE, at the root node you look up the 1st character and
-follow that branch repeat until you find the end of the branches. Nodes can be
-marked as "accepting" meaning they represent a complete word. Eg:
-
-  /he|she|his|hers/
-
-would convert into the following structure. Numbers represent states, letters
-following numbers represent valid transitions on the letter from that state, if
-the number is in square brackets it represents an accepting state, otherwise it
-will be in parenthesis.
-
-      +-h->+-e->[3]-+-r->(8)-+-s->[9]
-      |    |
-      |   (2)
-      |    |
-     (1)   +-i->(6)-+-s->[7]
-      |
-      +-s->(3)-+-h->(4)-+-e->[5]
-
-      Accept Word Mapping: 3=>1 (he),5=>2 (she), 7=>3 (his), 9=>4 (hers)
-
-This shows that when matching against the string 'hers' we will begin at state 1
-read 'h' and move to state 2, read 'e' and move to state 3 which is accepting,
-then read 'r' and go to state 8 followed by 's' which takes us to state 9 which
-is also accepting. Thus we know that we can match both 'he' and 'hers' with a
-single traverse. We store a mapping from accepting to state to which word was
-matched, and then when we have multiple possibilities we try to complete the
-rest of the regex in the order in which they occurred in the alternation.
-
-The only prior NFA like behaviour that would be changed by the TRIE support is
-the silent ignoring of duplicate alternations which are of the form:
-
- / (DUPE|DUPE) X? (?{ ... }) Y /x
-
-Thus EVAL blocks following a trie may be called a different number of times with
-and without the optimisation. With the optimisations dupes will be silently
-ignored. This inconsistent behaviour of EVAL type nodes is well established as
-the following demonstrates:
-
- 'words'=~/(word|word|word)(?{ print $1 })[xyz]/
-
-which prints out 'word' three times, but
-
- 'words'=~/(word|word|word)(?{ print $1 })S/
-
-which doesnt print it out at all. This is due to other optimisations kicking in.
-
-Example of what happens on a structural level:
-
-The regexp /(ac|ad|ab)+/ will produce the following debug output:
-
-   1: CURLYM[1] {1,32767}(18)
-   5:   BRANCH(8)
-   6:     EXACT <ac>(16)
-   8:   BRANCH(11)
-   9:     EXACT <ad>(16)
-  11:   BRANCH(14)
-  12:     EXACT <ab>(16)
-  16:   SUCCEED(0)
-  17:   NOTHING(18)
-  18: END(0)
-
-This would be optimizable with startbranch=5, first=5, last=16, tail=16
-and should turn into:
-
-   1: CURLYM[1] {1,32767}(18)
-   5:   TRIE(16)
-        [Words:3 Chars Stored:6 Unique Chars:4 States:5 NCP:1]
-          <ac>
-          <ad>
-          <ab>
-  16:   SUCCEED(0)
-  17:   NOTHING(18)
-  18: END(0)
-
-Cases where tail != last would be like /(?foo|bar)baz/:
-
-   1: BRANCH(4)
-   2:   EXACT <foo>(8)
-   4: BRANCH(7)
-   5:   EXACT <bar>(8)
-   7: TAIL(8)
-   8: EXACT <baz>(10)
-  10: END(0)
-
-which would be optimizable with startbranch=1, first=1, last=7, tail=8
-and would end up looking like:
-
-    1: TRIE(8)
-      [Words:2 Chars Stored:6 Unique Chars:5 States:7 NCP:1]
-        <foo>
-        <bar>
-   7: TAIL(8)
-   8: EXACT <baz>(10)
-  10: END(0)
+    /* avoid calling magic multiple times on a single element e.g. =~ $qr */
+    if (alloced)
+        SvSETMAGIC(pat);
 
-    d = uvchr_to_utf8_flags(d, uv, 0);
+    return pat;
+}
 
-is the recommended Unicode-aware way of saying
 
-    *(d++) = uv;
-*/
 
-#define TRIE_STORE_REVCHAR(val)                                            \
-    STMT_START {                                                           \
-        if (UTF) {							   \
-            SV *zlopp = newSV(UTF8_MAXBYTES);				   \
-            unsigned char *flrbbbbb = (unsigned char *) SvPVX(zlopp);	   \
-            unsigned char *const kapow = uvchr_to_utf8(flrbbbbb, val);     \
-            *kapow = '\0';                                                 \
-            SvCUR_set(zlopp, kapow - flrbbbbb);				   \
-            SvPOK_on(zlopp);						   \
-            SvUTF8_on(zlopp);						   \
-            av_push(revcharmap, zlopp);					   \
-        } else {							   \
-            char ooooff = (char)val;                                           \
-            av_push(revcharmap, newSVpvn(&ooooff, 1));			   \
-        }								   \
-        } STMT_END
-
-/* This gets the next character from the input, folding it if not already
- * folded. */
-#define TRIE_READ_CHAR STMT_START {                                           \
-    wordlen++;                                                                \
-    if ( UTF ) {                                                              \
-        /* if it is UTF then it is either already folded, or does not need    \
-         * folding */                                                         \
-        uvc = valid_utf8_to_uvchr( (const U8*) uc, &len);                     \
-    }                                                                         \
-    else if (folder == PL_fold_latin1) {                                      \
-        /* This folder implies Unicode rules, which in the range expressible  \
-         *  by not UTF is the lower case, with the two exceptions, one of     \
-         *  which should have been taken care of before calling this */       \
-        assert(*uc != LATIN_SMALL_LETTER_SHARP_S);                            \
-        uvc = toLOWER_L1(*uc);                                                \
-        if (UNLIKELY(uvc == MICRO_SIGN)) uvc = GREEK_SMALL_LETTER_MU;         \
-        len = 1;                                                              \
-    } else {                                                                  \
-        /* raw data, will be folded later if needed */                        \
-        uvc = (U32)*uc;                                                       \
-        len = 1;                                                              \
-    }                                                                         \
-} STMT_END
-
-
-
-#define TRIE_LIST_PUSH(state,fid,ns) STMT_START {               \
-    if ( TRIE_LIST_CUR( state ) >=TRIE_LIST_LEN( state ) ) {    \
-        U32 ging = TRIE_LIST_LEN( state ) * 2;                  \
-        Renew( trie->states[ state ].trans.list, ging, reg_trie_trans_le ); \
-        TRIE_LIST_LEN( state ) = ging;                          \
-    }                                                           \
-    TRIE_LIST_ITEM( state, TRIE_LIST_CUR( state ) ).forid = fid;     \
-    TRIE_LIST_ITEM( state, TRIE_LIST_CUR( state ) ).newstate = ns;   \
-    TRIE_LIST_CUR( state )++;                                   \
-} STMT_END
-
-#define TRIE_LIST_NEW(state) STMT_START {                       \
-    Newx( trie->states[ state ].trans.list,                     \
-        4, reg_trie_trans_le );                                 \
-     TRIE_LIST_CUR( state ) = 1;                                \
-     TRIE_LIST_LEN( state ) = 4;                                \
-} STMT_END
-
-#define TRIE_HANDLE_WORD(state) STMT_START {                    \
-    U16 dupe= trie->states[ state ].wordnum;                    \
-    regnode * const noper_next = regnext( noper );              \
-                                                                \
-    DEBUG_r({                                                   \
-        /* store the word for dumping */                        \
-        SV* tmp;                                                \
-        if (OP(noper) != NOTHING)                               \
-            tmp = newSVpvn_utf8(STRING(noper), STR_LEN(noper), UTF);	\
-        else                                                    \
-            tmp = newSVpvn_utf8( "", 0, UTF );			\
-        av_push( trie_words, tmp );                             \
-    });                                                         \
-                                                                \
-    curword++;                                                  \
-    trie->wordinfo[curword].prev   = 0;                         \
-    trie->wordinfo[curword].len    = wordlen;                   \
-    trie->wordinfo[curword].accept = state;                     \
-                                                                \
-    if ( noper_next < tail ) {                                  \
-        if (!trie->jump)                                        \
-            trie->jump = (U16 *) PerlMemShared_calloc( word_count + 1, \
-                                                 sizeof(U16) ); \
-        trie->jump[curword] = (U16)(noper_next - convert);      \
-        if (!jumper)                                            \
-            jumper = noper_next;                                \
-        if (!nextbranch)                                        \
-            nextbranch= regnext(cur);                           \
-    }                                                           \
-                                                                \
-    if ( dupe ) {                                               \
-        /* It's a dupe. Pre-insert into the wordinfo[].prev   */\
-        /* chain, so that when the bits of chain are later    */\
-        /* linked together, the dups appear in the chain      */\
-        trie->wordinfo[curword].prev = trie->wordinfo[dupe].prev; \
-        trie->wordinfo[dupe].prev = curword;                    \
-    } else {                                                    \
-        /* we haven't inserted this word yet.                */ \
-        trie->states[ state ].wordnum = curword;                \
-    }                                                           \
-} STMT_END
-
-
-#define TRIE_TRANS_STATE(state,base,ucharcount,charid,special)		\
-     ( ( base + charid >=  ucharcount					\
-         && base + charid < ubound					\
-         && state == trie->trans[ base - ucharcount + charid ].check	\
-         && trie->trans[ base - ucharcount + charid ].next )		\
-           ? trie->trans[ base - ucharcount + charid ].next		\
-           : ( state==1 ? special : 0 )					\
-      )
-
-#define TRIE_BITMAP_SET_FOLDED(trie, uvc, folder)           \
-STMT_START {                                                \
-    TRIE_BITMAP_SET(trie, uvc);                             \
-    /* store the folded codepoint */                        \
-    if ( folder )                                           \
-        TRIE_BITMAP_SET(trie, folder[(U8) uvc ]);           \
-                                                            \
-    if ( !UTF ) {                                           \
-        /* store first byte of utf8 representation of */    \
-        /* variant codepoints */                            \
-        if (! UVCHR_IS_INVARIANT(uvc)) {                    \
-            TRIE_BITMAP_SET(trie, UTF8_TWO_BYTE_HI(uvc));   \
-        }                                                   \
-    }                                                       \
-} STMT_END
-#define MADE_TRIE       1
-#define MADE_JUMP_TRIE  2
-#define MADE_EXACT_TRIE 4
+/* see if there are any run-time code blocks in the pattern.
+ * False positives are allowed */
 
-STATIC I32
-S_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch,
-                  regnode *first, regnode *last, regnode *tail,
-                  U32 word_count, U32 flags, U32 depth)
+static bool
+S_has_runtime_code(pTHX_ RExC_state_t * const pRExC_state,
+                    char *pat, STRLEN plen)
 {
-    /* first pass, loop through and scan words */
-    reg_trie_data *trie;
-    HV *widecharmap = NULL;
-    AV *revcharmap = newAV();
-    regnode *cur;
-    STRLEN len = 0;
-    UV uvc = 0;
-    U16 curword = 0;
-    U32 next_alloc = 0;
-    regnode *jumper = NULL;
-    regnode *nextbranch = NULL;
-    regnode *convert = NULL;
-    U32 *prev_states; /* temp array mapping each state to previous one */
-    /* we just use folder as a flag in utf8 */
-    const U8 * folder = NULL;
-
-    /* in the below add_data call we are storing either 'tu' or 'tuaa'
-     * which stands for one trie structure, one hash, optionally followed
-     * by two arrays */
-#ifdef DEBUGGING
-    const U32 data_slot = add_data( pRExC_state, STR_WITH_LEN("tuaa"));
-    AV *trie_words = NULL;
-    /* along with revcharmap, this only used during construction but both are
-     * useful during debugging so we store them in the struct when debugging.
-     */
-#else
-    const U32 data_slot = add_data( pRExC_state, STR_WITH_LEN("tu"));
-    STRLEN trie_charcount=0;
-#endif
-    SV *re_trie_maxbuff;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_MAKE_TRIE;
-#ifndef DEBUGGING
-    PERL_UNUSED_ARG(depth);
-#endif
-
-    switch (flags) {
-        case EXACT: case EXACT_REQ8: case EXACTL: break;
-        case EXACTFAA:
-        case EXACTFUP:
-        case EXACTFU:
-        case EXACTFLU8: folder = PL_fold_latin1; break;
-        case EXACTF:  folder = PL_fold; break;
-        default: Perl_croak( aTHX_ "panic! In trie construction, unknown node type %u %s", (unsigned) flags, PL_reg_name[flags] );
-    }
-
-    trie = (reg_trie_data *) PerlMemShared_calloc( 1, sizeof(reg_trie_data) );
-    trie->refcount = 1;
-    trie->startstate = 1;
-    trie->wordcount = word_count;
-    RExC_rxi->data->data[ data_slot ] = (void*)trie;
-    trie->charmap = (U16 *) PerlMemShared_calloc( 256, sizeof(U16) );
-    if (flags == EXACT || flags == EXACT_REQ8 || flags == EXACTL)
-        trie->bitmap = (char *) PerlMemShared_calloc( ANYOF_BITMAP_SIZE, 1 );
-    trie->wordinfo = (reg_trie_wordinfo *) PerlMemShared_calloc(
-                       trie->wordcount+1, sizeof(reg_trie_wordinfo));
-
-    DEBUG_r({
-        trie_words = newAV();
-    });
-
-    re_trie_maxbuff = get_sv(RE_TRIE_MAXBUF_NAME, GV_ADD);
-    assert(re_trie_maxbuff);
-    if (!SvIOK(re_trie_maxbuff)) {
-        sv_setiv(re_trie_maxbuff, RE_TRIE_MAXBUF_INIT);
-    }
-    DEBUG_TRIE_COMPILE_r({
-        Perl_re_indentf( aTHX_
-          "make_trie start==%d, first==%d, last==%d, tail==%d depth=%d\n",
-          depth+1,
-          REG_NODE_NUM(startbranch), REG_NODE_NUM(first),
-          REG_NODE_NUM(last), REG_NODE_NUM(tail), (int)depth);
-    });
-
-   /* Find the node we are going to overwrite */
-    if ( first == startbranch && OP( last ) != BRANCH ) {
-        /* whole branch chain */
-        convert = first;
-    } else {
-        /* branch sub-chain */
-        convert = NEXTOPER( first );
-    }
-
-    /*  -- First loop and Setup --
-
-       We first traverse the branches and scan each word to determine if it
-       contains widechars, and how many unique chars there are, this is
-       important as we have to build a table with at least as many columns as we
-       have unique chars.
-
-       We use an array of integers to represent the character codes 0..255
-       (trie->charmap) and we use a an HV* to store Unicode characters. We use
-       the native representation of the character value as the key and IV's for
-       the coded index.
-
-       *TODO* If we keep track of how many times each character is used we can
-       remap the columns so that the table compression later on is more
-       efficient in terms of memory by ensuring the most common value is in the
-       middle and the least common are on the outside.  IMO this would be better
-       than a most to least common mapping as theres a decent chance the most
-       common letter will share a node with the least common, meaning the node
-       will not be compressible. With a middle is most common approach the worst
-       case is when we have the least common nodes twice.
-
-     */
-
-    for ( cur = first ; cur < last ; cur = regnext( cur ) ) {
-        regnode *noper = NEXTOPER( cur );
-        const U8 *uc;
-        const U8 *e;
-        int foldlen = 0;
-        U32 wordlen      = 0;         /* required init */
-        STRLEN minchars = 0;
-        STRLEN maxchars = 0;
-        bool set_bit = trie->bitmap ? 1 : 0; /*store the first char in the
-                                               bitmap?*/
-
-        if (OP(noper) == NOTHING) {
-            /* skip past a NOTHING at the start of an alternation
-             * eg, /(?:)a|(?:b)/ should be the same as /a|b/
-             *
-             * If the next node is not something we are supposed to process
-             * we will just ignore it due to the condition guarding the
-             * next block.
-             */
+    int n = 0;
+    STRLEN s;
 
-            regnode *noper_next= regnext(noper);
-            if (noper_next < tail)
-                noper= noper_next;
-        }
+    PERL_UNUSED_CONTEXT;
 
-        if (    noper < tail
-            && (    OP(noper) == flags
-                || (flags == EXACT && OP(noper) == EXACT_REQ8)
-                || (flags == EXACTFU && (   OP(noper) == EXACTFU_REQ8
-                                         || OP(noper) == EXACTFUP))))
+    for (s = 0; s < plen; s++) {
+        if (   pRExC_state->code_blocks
+            && n < pRExC_state->code_blocks->count
+            && s == pRExC_state->code_blocks->cb[n].start)
         {
-            uc= (U8*)STRING(noper);
-            e= uc + STR_LEN(noper);
-        } else {
-            trie->minlen= 0;
+            s = pRExC_state->code_blocks->cb[n].end;
+            n++;
             continue;
         }
+        /* TODO ideally should handle [..], (#..), /#.../x to reduce false
+         * positives here */
+        if (pat[s] == '(' && s+2 <= plen && pat[s+1] == '?' &&
+            (pat[s+2] == '{'
+                || (s + 2 <= plen && pat[s+2] == '?' && pat[s+3] == '{'))
+        )
+            return 1;
+    }
+    return 0;
+}
 
+/* Handle run-time code blocks. We will already have compiled any direct
+ * or indirect literal code blocks. Now, take the pattern 'pat' and make a
+ * copy of it, but with any literal code blocks blanked out and
+ * appropriate chars escaped; then feed it into
+ *
+ *    eval "qr'modified_pattern'"
+ *
+ * For example,
+ *
+ *       a\bc(?{"this was literal"})def'ghi\\jkl(?{"this is runtime"})mno
+ *
+ * becomes
+ *
+ *    qr'a\\bc_______________________def\'ghi\\\\jkl(?{"this is runtime"})mno'
+ *
+ * After eval_sv()-ing that, grab any new code blocks from the returned qr
+ * and merge them with any code blocks of the original regexp.
+ *
+ * If the pat is non-UTF8, while the evalled qr is UTF8, don't merge;
+ * instead, just save the qr and return FALSE; this tells our caller that
+ * the original pattern needs upgrading to utf8.
+ */
 
-        if ( set_bit ) { /* bitmap only alloced when !(UTF&&Folding) */
-            TRIE_BITMAP_SET(trie,*uc); /* store the raw first byte
-                                          regardless of encoding */
-            if (OP( noper ) == EXACTFUP) {
-                /* false positives are ok, so just set this */
-                TRIE_BITMAP_SET(trie, LATIN_SMALL_LETTER_SHARP_S);
-            }
-        }
-
-        for ( ; uc < e ; uc += len ) {  /* Look at each char in the current
-                                           branch */
-            TRIE_CHARCOUNT(trie)++;
-            TRIE_READ_CHAR;
-
-            /* TRIE_READ_CHAR returns the current character, or its fold if /i
-             * is in effect.  Under /i, this character can match itself, or
-             * anything that folds to it.  If not under /i, it can match just
-             * itself.  Most folds are 1-1, for example k, K, and KELVIN SIGN
-             * all fold to k, and all are single characters.   But some folds
-             * expand to more than one character, so for example LATIN SMALL
-             * LIGATURE FFI folds to the three character sequence 'ffi'.  If
-             * the string beginning at 'uc' is 'ffi', it could be matched by
-             * three characters, or just by the one ligature character. (It
-             * could also be matched by two characters: LATIN SMALL LIGATURE FF
-             * followed by 'i', or by 'f' followed by LATIN SMALL LIGATURE FI).
-             * (Of course 'I' and/or 'F' instead of 'i' and 'f' can also
-             * match.)  The trie needs to know the minimum and maximum number
-             * of characters that could match so that it can use size alone to
-             * quickly reject many match attempts.  The max is simple: it is
-             * the number of folded characters in this branch (since a fold is
-             * never shorter than what folds to it. */
-
-            maxchars++;
-
-            /* And the min is equal to the max if not under /i (indicated by
-             * 'folder' being NULL), or there are no multi-character folds.  If
-             * there is a multi-character fold, the min is incremented just
-             * once, for the character that folds to the sequence.  Each
-             * character in the sequence needs to be added to the list below of
-             * characters in the trie, but we count only the first towards the
-             * min number of characters needed.  This is done through the
-             * variable 'foldlen', which is returned by the macros that look
-             * for these sequences as the number of bytes the sequence
-             * occupies.  Each time through the loop, we decrement 'foldlen' by
-             * how many bytes the current char occupies.  Only when it reaches
-             * 0 do we increment 'minchars' or look for another multi-character
-             * sequence. */
-            if (folder == NULL) {
-                minchars++;
-            }
-            else if (foldlen > 0) {
-                foldlen -= (UTF) ? UTF8SKIP(uc) : 1;
-            }
-            else {
-                minchars++;
-
-                /* See if *uc is the beginning of a multi-character fold.  If
-                 * so, we decrement the length remaining to look at, to account
-                 * for the current character this iteration.  (We can use 'uc'
-                 * instead of the fold returned by TRIE_READ_CHAR because the
-                 * macro is smart enough to account for any unfolded
-                 * characters. */
-                if (UTF) {
-                    if ((foldlen = is_MULTI_CHAR_FOLD_utf8_safe(uc, e))) {
-                        foldlen -= UTF8SKIP(uc);
-                    }
-                }
-                else if ((foldlen = is_MULTI_CHAR_FOLD_latin1_safe(uc, e))) {
-                    foldlen--;
-                }
-            }
-
-            /* The current character (and any potential folds) should be added
-             * to the possible matching characters for this position in this
-             * branch */
-            if ( uvc < 256 ) {
-                if ( folder ) {
-                    U8 folded= folder[ (U8) uvc ];
-                    if ( !trie->charmap[ folded ] ) {
-                        trie->charmap[ folded ]=( ++trie->uniquecharcount );
-                        TRIE_STORE_REVCHAR( folded );
-                    }
-                }
-                if ( !trie->charmap[ uvc ] ) {
-                    trie->charmap[ uvc ]=( ++trie->uniquecharcount );
-                    TRIE_STORE_REVCHAR( uvc );
-                }
-                if ( set_bit ) {
-                    /* store the codepoint in the bitmap, and its folded
-                     * equivalent. */
-                    TRIE_BITMAP_SET_FOLDED(trie, uvc, folder);
-                    set_bit = 0; /* We've done our bit :-) */
-                }
-            } else {
-
-                /* XXX We could come up with the list of code points that fold
-                 * to this using PL_utf8_foldclosures, except not for
-                 * multi-char folds, as there may be multiple combinations
-                 * there that could work, which needs to wait until runtime to
-                 * resolve (The comment about LIGATURE FFI above is such an
-                 * example */
-
-                SV** svpp;
-                if ( !widecharmap )
-                    widecharmap = newHV();
-
-                svpp = hv_fetch( widecharmap, (char*)&uvc, sizeof( UV ), 1 );
-
-                if ( !svpp )
-                    Perl_croak( aTHX_ "error creating/fetching widecharmap entry for 0x%" UVXf, uvc );
-
-                if ( !SvTRUE( *svpp ) ) {
-                    sv_setiv( *svpp, ++trie->uniquecharcount );
-                    TRIE_STORE_REVCHAR(uvc);
-                }
-            }
-        } /* end loop through characters in this branch of the trie */
-
-        /* We take the min and max for this branch and combine to find the min
-         * and max for all branches processed so far */
-        if( cur == first ) {
-            trie->minlen = minchars;
-            trie->maxlen = maxchars;
-        } else if (minchars < trie->minlen) {
-            trie->minlen = minchars;
-        } else if (maxchars > trie->maxlen) {
-            trie->maxlen = maxchars;
-        }
-    } /* end first pass */
-    DEBUG_TRIE_COMPILE_r(
-        Perl_re_indentf( aTHX_
-                "TRIE(%s): W:%d C:%d Uq:%d Min:%d Max:%d\n",
-                depth+1,
-                ( widecharmap ? "UTF8" : "NATIVE" ), (int)word_count,
-                (int)TRIE_CHARCOUNT(trie), trie->uniquecharcount,
-                (int)trie->minlen, (int)trie->maxlen )
-    );
-
-    /*
-        We now know what we are dealing with in terms of unique chars and
-        string sizes so we can calculate how much memory a naive
-        representation using a flat table  will take. If it's over a reasonable
-        limit (as specified by ${^RE_TRIE_MAXBUF}) we use a more memory
-        conservative but potentially much slower representation using an array
-        of lists.
-
-        At the end we convert both representations into the same compressed
-        form that will be used in regexec.c for matching with. The latter
-        is a form that cannot be used to construct with but has memory
-        properties similar to the list form and access properties similar
-        to the table form making it both suitable for fast searches and
-        small enough that its feasable to store for the duration of a program.
-
-        See the comment in the code where the compressed table is produced
-        inplace from the flat tabe representation for an explanation of how
-        the compression works.
+static bool
+S_compile_runtime_code(pTHX_ RExC_state_t * const pRExC_state,
+    char *pat, STRLEN plen)
+{
+    SV *qr;
 
-    */
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
+    if (pRExC_state->runtime_code_qr) {
+        /* this is the second time we've been called; this should
+         * only happen if the main pattern got upgraded to utf8
+         * during compilation; re-use the qr we compiled first time
+         * round (which should be utf8 too)
+         */
+        qr = pRExC_state->runtime_code_qr;
+        pRExC_state->runtime_code_qr = NULL;
+        assert(RExC_utf8 && SvUTF8(qr));
+    }
+    else {
+        int n = 0;
+        STRLEN s;
+        char *p, *newpat;
+        int newlen = plen + 7; /* allow for "qr''xx\0" extra chars */
+        SV *sv, *qr_ref;
+        dSP;
 
-    Newx(prev_states, TRIE_CHARCOUNT(trie) + 2, U32);
-    prev_states[1] = 0;
+        /* determine how many extra chars we need for ' and \ escaping */
+        for (s = 0; s < plen; s++) {
+            if (pat[s] == '\'' || pat[s] == '\\')
+                newlen++;
+        }
 
-    if ( (IV)( ( TRIE_CHARCOUNT(trie) + 1 ) * trie->uniquecharcount + 1)
-                                                    > SvIV(re_trie_maxbuff) )
-    {
-        /*
-            Second Pass -- Array Of Lists Representation
+        Newx(newpat, newlen, char);
+        p = newpat;
+        *p++ = 'q'; *p++ = 'r'; *p++ = '\'';
 
-            Each state will be represented by a list of charid:state records
-            (reg_trie_trans_le) the first such element holds the CUR and LEN
-            points of the allocated array. (See defines above).
-
-            We build the initial structure using the lists, and then convert
-            it into the compressed table form which allows faster lookups
-            (but cant be modified once converted).
-        */
-
-        STRLEN transcount = 1;
-
-        DEBUG_TRIE_COMPILE_MORE_r( Perl_re_indentf( aTHX_  "Compiling trie using list compiler\n",
-            depth+1));
-
-        trie->states = (reg_trie_state *)
-            PerlMemShared_calloc( TRIE_CHARCOUNT(trie) + 2,
-                                  sizeof(reg_trie_state) );
-        TRIE_LIST_NEW(1);
-        next_alloc = 2;
-
-        for ( cur = first ; cur < last ; cur = regnext( cur ) ) {
-
-            regnode *noper   = NEXTOPER( cur );
-            U32 state        = 1;         /* required init */
-            U16 charid       = 0;         /* sanity init */
-            U32 wordlen      = 0;         /* required init */
-
-            if (OP(noper) == NOTHING) {
-                regnode *noper_next= regnext(noper);
-                if (noper_next < tail)
-                    noper= noper_next;
-                /* we will undo this assignment if noper does not
-                 * point at a trieable type in the else clause of
-                 * the following statement. */
-            }
-
-            if (    noper < tail
-                && (    OP(noper) == flags
-                    || (flags == EXACT && OP(noper) == EXACT_REQ8)
-                    || (flags == EXACTFU && (   OP(noper) == EXACTFU_REQ8
-                                             || OP(noper) == EXACTFUP))))
+        for (s = 0; s < plen; s++) {
+            if (   pRExC_state->code_blocks
+                && n < pRExC_state->code_blocks->count
+                && s == pRExC_state->code_blocks->cb[n].start)
             {
-                const U8 *uc= (U8*)STRING(noper);
-                const U8 *e= uc + STR_LEN(noper);
-
-                for ( ; uc < e ; uc += len ) {
-
-                    TRIE_READ_CHAR;
-
-                    if ( uvc < 256 ) {
-                        charid = trie->charmap[ uvc ];
-                    } else {
-                        SV** const svpp = hv_fetch( widecharmap,
-                                                    (char*)&uvc,
-                                                    sizeof( UV ),
-                                                    0);
-                        if ( !svpp ) {
-                            charid = 0;
-                        } else {
-                            charid=(U16)SvIV( *svpp );
-                        }
-                    }
-                    /* charid is now 0 if we dont know the char read, or
-                     * nonzero if we do */
-                    if ( charid ) {
-
-                        U16 check;
-                        U32 newstate = 0;
-
-                        charid--;
-                        if ( !trie->states[ state ].trans.list ) {
-                            TRIE_LIST_NEW( state );
-                        }
-                        for ( check = 1;
-                              check <= TRIE_LIST_USED( state );
-                              check++ )
-                        {
-                            if ( TRIE_LIST_ITEM( state, check ).forid
-                                                                    == charid )
-                            {
-                                newstate = TRIE_LIST_ITEM( state, check ).newstate;
-                                break;
-                            }
-                        }
-                        if ( ! newstate ) {
-                            newstate = next_alloc++;
-                            prev_states[newstate] = state;
-                            TRIE_LIST_PUSH( state, charid, newstate );
-                            transcount++;
-                        }
-                        state = newstate;
-                    } else {
-                        Perl_croak( aTHX_ "panic! In trie construction, no char mapping for %" IVdf, uvc );
-                    }
-                }
-            } else {
-                /* If we end up here it is because we skipped past a NOTHING, but did not end up
-                 * on a trieable type. So we need to reset noper back to point at the first regop
-                 * in the branch before we call TRIE_HANDLE_WORD()
+                /* blank out literal code block so that they aren't
+                 * recompiled: eg change from/to:
+                 *     /(?{xyz})/
+                 *     /(?=====)/
+                 * and
+                 *     /(??{xyz})/
+                 *     /(?======)/
+                 * and
+                 *     /(?(?{xyz}))/
+                 *     /(?(?=====))/
                 */
-                noper= NEXTOPER(cur);
+                assert(pat[s]   == '(');
+                assert(pat[s+1] == '?');
+                *p++ = '(';
+                *p++ = '?';
+                s += 2;
+                while (s < pRExC_state->code_blocks->cb[n].end) {
+                    *p++ = '=';
+                    s++;
+                }
+                *p++ = ')';
+                n++;
+                continue;
             }
-            TRIE_HANDLE_WORD(state);
-
-        } /* end second pass */
-
-        /* next alloc is the NEXT state to be allocated */
-        trie->statecount = next_alloc;
-        trie->states = (reg_trie_state *)
-            PerlMemShared_realloc( trie->states,
-                                   next_alloc
-                                   * sizeof(reg_trie_state) );
-
-        /* and now dump it out before we compress it */
-        DEBUG_TRIE_COMPILE_MORE_r(dump_trie_interim_list(trie, widecharmap,
-                                                         revcharmap, next_alloc,
-                                                         depth+1)
-        );
-
-        trie->trans = (reg_trie_trans *)
-            PerlMemShared_calloc( transcount, sizeof(reg_trie_trans) );
-        {
-            U32 state;
-            U32 tp = 0;
-            U32 zp = 0;
-
-
-            for( state=1 ; state < next_alloc ; state ++ ) {
-                U32 base=0;
-
-                /*
-                DEBUG_TRIE_COMPILE_MORE_r(
-                    Perl_re_printf( aTHX_  "tp: %d zp: %d ",tp,zp)
-                );
-                */
-
-                if (trie->states[state].trans.list) {
-                    U16 minid=TRIE_LIST_ITEM( state, 1).forid;
-                    U16 maxid=minid;
-                    U16 idx;
-
-                    for( idx = 2 ; idx <= TRIE_LIST_USED( state ) ; idx++ ) {
-                        const U16 forid = TRIE_LIST_ITEM( state, idx).forid;
-                        if ( forid < minid ) {
-                            minid=forid;
-                        } else if ( forid > maxid ) {
-                            maxid=forid;
-                        }
-                    }
-                    if ( transcount < tp + maxid - minid + 1) {
-                        transcount *= 2;
-                        trie->trans = (reg_trie_trans *)
-                            PerlMemShared_realloc( trie->trans,
-                                                     transcount
-                                                     * sizeof(reg_trie_trans) );
-                        Zero( trie->trans + (transcount / 2),
-                              transcount / 2,
-                              reg_trie_trans );
-                    }
-                    base = trie->uniquecharcount + tp - minid;
-                    if ( maxid == minid ) {
-                        U32 set = 0;
-                        for ( ; zp < tp ; zp++ ) {
-                            if ( ! trie->trans[ zp ].next ) {
-                                base = trie->uniquecharcount + zp - minid;
-                                trie->trans[ zp ].next = TRIE_LIST_ITEM( state,
-                                                                   1).newstate;
-                                trie->trans[ zp ].check = state;
-                                set = 1;
-                                break;
-                            }
-                        }
-                        if ( !set ) {
-                            trie->trans[ tp ].next = TRIE_LIST_ITEM( state,
-                                                                   1).newstate;
-                            trie->trans[ tp ].check = state;
-                            tp++;
-                            zp = tp;
-                        }
-                    } else {
-                        for ( idx=1; idx <= TRIE_LIST_USED( state ) ; idx++ ) {
-                            const U32 tid = base
-                                           - trie->uniquecharcount
-                                           + TRIE_LIST_ITEM( state, idx ).forid;
-                            trie->trans[ tid ].next = TRIE_LIST_ITEM( state,
-                                                                idx ).newstate;
-                            trie->trans[ tid ].check = state;
-                        }
-                        tp += ( maxid - minid + 1 );
-                    }
-                    Safefree(trie->states[ state ].trans.list);
-                }
-                /*
-                DEBUG_TRIE_COMPILE_MORE_r(
-                    Perl_re_printf( aTHX_  " base: %d\n",base);
-                );
-                */
-                trie->states[ state ].trans.base=base;
+            if (pat[s] == '\'' || pat[s] == '\\')
+                *p++ = '\\';
+            *p++ = pat[s];
+        }
+        *p++ = '\'';
+        if (pRExC_state->pm_flags & RXf_PMf_EXTENDED) {
+            *p++ = 'x';
+            if (pRExC_state->pm_flags & RXf_PMf_EXTENDED_MORE) {
+                *p++ = 'x';
             }
-            trie->lasttrans = tp + 1;
         }
-    } else {
-        /*
-           Second Pass -- Flat Table Representation.
-
-           we dont use the 0 slot of either trans[] or states[] so we add 1 to
-           each.  We know that we will need Charcount+1 trans at most to store
-           the data (one row per char at worst case) So we preallocate both
-           structures assuming worst case.
-
-           We then construct the trie using only the .next slots of the entry
-           structs.
-
-           We use the .check field of the first entry of the node temporarily
-           to make compression both faster and easier by keeping track of how
-           many non zero fields are in the node.
-
-           Since trans are numbered from 1 any 0 pointer in the table is a FAIL
-           transition.
-
-           There are two terms at use here: state as a TRIE_NODEIDX() which is
-           a number representing the first entry of the node, and state as a
-           TRIE_NODENUM() which is the trans number. state 1 is TRIE_NODEIDX(1)
-           and TRIE_NODENUM(1), state 2 is TRIE_NODEIDX(2) and TRIE_NODENUM(3)
-           if there are 2 entrys per node. eg:
-
-             A B       A B
-          1. 2 4    1. 3 7
-          2. 0 3    3. 0 5
-          3. 0 0    5. 0 0
-          4. 0 0    7. 0 0
-
-           The table is internally in the right hand, idx form. However as we
-           also have to deal with the states array which is indexed by nodenum
-           we have to use TRIE_NODENUM() to convert.
-
-        */
-        DEBUG_TRIE_COMPILE_MORE_r( Perl_re_indentf( aTHX_  "Compiling trie using table compiler\n",
-            depth+1));
-
-        trie->trans = (reg_trie_trans *)
-            PerlMemShared_calloc( ( TRIE_CHARCOUNT(trie) + 1 )
-                                  * trie->uniquecharcount + 1,
-                                  sizeof(reg_trie_trans) );
-        trie->states = (reg_trie_state *)
-            PerlMemShared_calloc( TRIE_CHARCOUNT(trie) + 2,
-                                  sizeof(reg_trie_state) );
-        next_alloc = trie->uniquecharcount + 1;
-
-
-        for ( cur = first ; cur < last ; cur = regnext( cur ) ) {
-
-            regnode *noper   = NEXTOPER( cur );
-
-            U32 state        = 1;         /* required init */
-
-            U16 charid       = 0;         /* sanity init */
-            U32 accept_state = 0;         /* sanity init */
+        *p++ = '\0';
+        DEBUG_COMPILE_r({
+            Perl_re_printf( aTHX_
+                "%sre-parsing pattern for runtime code:%s %s\n",
+                PL_colors[4], PL_colors[5], newpat);
+        });
 
-            U32 wordlen      = 0;         /* required init */
+        sv = newSVpvn_flags(newpat, p-newpat-1, RExC_utf8 ? SVf_UTF8 : 0);
+        Safefree(newpat);
 
-            if (OP(noper) == NOTHING) {
-                regnode *noper_next= regnext(noper);
-                if (noper_next < tail)
-                    noper= noper_next;
-                /* we will undo this assignment if noper does not
-                 * point at a trieable type in the else clause of
-                 * the following statement. */
-            }
+        ENTER;
+        SAVETMPS;
+        save_re_context();
+        PUSHSTACKi(PERLSI_REQUIRE);
+        /* G_RE_REPARSING causes the toker to collapse \\ into \ when
+         * parsing qr''; normally only q'' does this. It also alters
+         * hints handling */
+        eval_sv(sv, G_SCALAR|G_RE_REPARSING);
+        SvREFCNT_dec_NN(sv);
+        SPAGAIN;
+        qr_ref = POPs;
+        PUTBACK;
+        {
+            SV * const errsv = ERRSV;
+            if (SvTRUE_NN(errsv))
+                /* use croak_sv ? */
+                Perl_croak_nocontext("%" SVf, SVfARG(errsv));
+        }
+        assert(SvROK(qr_ref));
+        qr = SvRV(qr_ref);
+        assert(SvTYPE(qr) == SVt_REGEXP && RX_ENGINE((REGEXP*)qr)->op_comp);
+        /* the leaving below frees the tmp qr_ref.
+         * Give qr a life of its own */
+        SvREFCNT_inc(qr);
+        POPSTACK;
+        FREETMPS;
+        LEAVE;
 
-            if (    noper < tail
-                && (    OP(noper) == flags
-                    || (flags == EXACT && OP(noper) == EXACT_REQ8)
-                    || (flags == EXACTFU && (   OP(noper) == EXACTFU_REQ8
-                                             || OP(noper) == EXACTFUP))))
-            {
-                const U8 *uc= (U8*)STRING(noper);
-                const U8 *e= uc + STR_LEN(noper);
+    }
 
-                for ( ; uc < e ; uc += len ) {
+    if (!RExC_utf8 && SvUTF8(qr)) {
+        /* first time through; the pattern got upgraded; save the
+         * qr for the next time through */
+        assert(!pRExC_state->runtime_code_qr);
+        pRExC_state->runtime_code_qr = qr;
+        return 0;
+    }
 
-                    TRIE_READ_CHAR;
 
-                    if ( uvc < 256 ) {
-                        charid = trie->charmap[ uvc ];
-                    } else {
-                        SV* const * const svpp = hv_fetch( widecharmap,
-                                                           (char*)&uvc,
-                                                           sizeof( UV ),
-                                                           0);
-                        charid = svpp ? (U16)SvIV(*svpp) : 0;
-                    }
-                    if ( charid ) {
-                        charid--;
-                        if ( !trie->trans[ state + charid ].next ) {
-                            trie->trans[ state + charid ].next = next_alloc;
-                            trie->trans[ state ].check++;
-                            prev_states[TRIE_NODENUM(next_alloc)]
-                                    = TRIE_NODENUM(state);
-                            next_alloc += trie->uniquecharcount;
-                        }
-                        state = trie->trans[ state + charid ].next;
-                    } else {
-                        Perl_croak( aTHX_ "panic! In trie construction, no char mapping for %" IVdf, uvc );
-                    }
-                    /* charid is now 0 if we dont know the char read, or
-                     * nonzero if we do */
-                }
-            } else {
-                /* If we end up here it is because we skipped past a NOTHING, but did not end up
-                 * on a trieable type. So we need to reset noper back to point at the first regop
-                 * in the branch before we call TRIE_HANDLE_WORD().
-                */
-                noper= NEXTOPER(cur);
-            }
-            accept_state = TRIE_NODENUM( state );
-            TRIE_HANDLE_WORD(accept_state);
+    /* extract any code blocks within the returned qr//  */
 
-        } /* end second pass */
 
-        /* and now dump it out before we compress it */
-        DEBUG_TRIE_COMPILE_MORE_r(dump_trie_interim_table(trie, widecharmap,
-                                                          revcharmap,
-                                                          next_alloc, depth+1));
+    /* merge the main (r1) and run-time (r2) code blocks into one */
+    {
+        RXi_GET_DECL(ReANY((REGEXP *)qr), r2);
+        struct reg_code_block *new_block, *dst;
+        RExC_state_t * const r1 = pRExC_state; /* convenient alias */
+        int i1 = 0, i2 = 0;
+        int r1c, r2c;
 
+        if (!r2->code_blocks || !r2->code_blocks->count) /* we guessed wrong */
         {
-        /*
-           * Inplace compress the table.*
-
-           For sparse data sets the table constructed by the trie algorithm will
-           be mostly 0/FAIL transitions or to put it another way mostly empty.
-           (Note that leaf nodes will not contain any transitions.)
-
-           This algorithm compresses the tables by eliminating most such
-           transitions, at the cost of a modest bit of extra work during lookup:
-
-           - Each states[] entry contains a .base field which indicates the
-           index in the state[] array wheres its transition data is stored.
-
-           - If .base is 0 there are no valid transitions from that node.
-
-           - If .base is nonzero then charid is added to it to find an entry in
-           the trans array.
-
-           -If trans[states[state].base+charid].check!=state then the
-           transition is taken to be a 0/Fail transition. Thus if there are fail
-           transitions at the front of the node then the .base offset will point
-           somewhere inside the previous nodes data (or maybe even into a node
-           even earlier), but the .check field determines if the transition is
-           valid.
-
-           XXX - wrong maybe?
-           The following process inplace converts the table to the compressed
-           table: We first do not compress the root node 1,and mark all its
-           .check pointers as 1 and set its .base pointer as 1 as well. This
-           allows us to do a DFA construction from the compressed table later,
-           and ensures that any .base pointers we calculate later are greater
-           than 0.
-
-           - We set 'pos' to indicate the first entry of the second node.
-
-           - We then iterate over the columns of the node, finding the first and
-           last used entry at l and m. We then copy l..m into pos..(pos+m-l),
-           and set the .check pointers accordingly, and advance pos
-           appropriately and repreat for the next node. Note that when we copy
-           the next pointers we have to convert them from the original
-           NODEIDX form to NODENUM form as the former is not valid post
-           compression.
-
-           - If a node has no transitions used we mark its base as 0 and do not
-           advance the pos pointer.
-
-           - If a node only has one transition we use a second pointer into the
-           structure to fill in allocated fail transitions from other states.
-           This pointer is independent of the main pointer and scans forward
-           looking for null transitions that are allocated to a state. When it
-           finds one it writes the single transition into the "hole".  If the
-           pointer doesnt find one the single transition is appended as normal.
-
-           - Once compressed we can Renew/realloc the structures to release the
-           excess space.
+            SvREFCNT_dec_NN(qr);
+            return 1;
+        }
 
-           See "Table-Compression Methods" in sec 3.9 of the Red Dragon,
-           specifically Fig 3.47 and the associated pseudocode.
+        if (!r1->code_blocks)
+            r1->code_blocks = S_alloc_code_blocks(aTHX_ 0);
 
-           demq
-        */
-        const U32 laststate = TRIE_NODENUM( next_alloc );
-        U32 state, charid;
-        U32 pos = 0, zp=0;
-        trie->statecount = laststate;
-
-        for ( state = 1 ; state < laststate ; state++ ) {
-            U8 flag = 0;
-            const U32 stateidx = TRIE_NODEIDX( state );
-            const U32 o_used = trie->trans[ stateidx ].check;
-            U32 used = trie->trans[ stateidx ].check;
-            trie->trans[ stateidx ].check = 0;
-
-            for ( charid = 0;
-                  used && charid < trie->uniquecharcount;
-                  charid++ )
-            {
-                if ( flag || trie->trans[ stateidx + charid ].next ) {
-                    if ( trie->trans[ stateidx + charid ].next ) {
-                        if (o_used == 1) {
-                            for ( ; zp < pos ; zp++ ) {
-                                if ( ! trie->trans[ zp ].next ) {
-                                    break;
-                                }
-                            }
-                            trie->states[ state ].trans.base
-                                                    = zp
-                                                      + trie->uniquecharcount
-                                                      - charid ;
-                            trie->trans[ zp ].next
-                                = SAFE_TRIE_NODENUM( trie->trans[ stateidx
-                                                             + charid ].next );
-                            trie->trans[ zp ].check = state;
-                            if ( ++zp > pos ) pos = zp;
-                            break;
-                        }
-                        used--;
-                    }
-                    if ( !flag ) {
-                        flag = 1;
-                        trie->states[ state ].trans.base
-                                       = pos + trie->uniquecharcount - charid ;
-                    }
-                    trie->trans[ pos ].next
-                        = SAFE_TRIE_NODENUM(
-                                       trie->trans[ stateidx + charid ].next );
-                    trie->trans[ pos ].check = state;
-                    pos++;
-                }
-            }
-        }
-        trie->lasttrans = pos + 1;
-        trie->states = (reg_trie_state *)
-            PerlMemShared_realloc( trie->states, laststate
-                                   * sizeof(reg_trie_state) );
-        DEBUG_TRIE_COMPILE_MORE_r(
-            Perl_re_indentf( aTHX_  "Alloc: %d Orig: %" IVdf " elements, Final:%" IVdf ". Savings of %%%5.2f\n",
-                depth+1,
-                (int)( ( TRIE_CHARCOUNT(trie) + 1 ) * trie->uniquecharcount
-                       + 1 ),
-                (IV)next_alloc,
-                (IV)pos,
-                ( ( next_alloc - pos ) * 100 ) / (double)next_alloc );
-            );
+        r1c = r1->code_blocks->count;
+        r2c = r2->code_blocks->count;
 
-        } /* end table compress */
-    }
-    DEBUG_TRIE_COMPILE_MORE_r(
-            Perl_re_indentf( aTHX_  "Statecount:%" UVxf " Lasttrans:%" UVxf "\n",
-                depth+1,
-                (UV)trie->statecount,
-                (UV)trie->lasttrans)
-    );
-    /* resize the trans array to remove unused space */
-    trie->trans = (reg_trie_trans *)
-        PerlMemShared_realloc( trie->trans, trie->lasttrans
-                               * sizeof(reg_trie_trans) );
-
-    {   /* Modify the program and insert the new TRIE node */
-        U8 nodetype =(U8) flags;
-        char *str=NULL;
+        Newx(new_block, r1c + r2c, struct reg_code_block);
 
-#ifdef DEBUGGING
-        regnode *optimize = NULL;
-#endif /* DEBUGGING */
-        /*
-           This means we convert either the first branch or the first Exact,
-           depending on whether the thing following (in 'last') is a branch
-           or not and whther first is the startbranch (ie is it a sub part of
-           the alternation or is it the whole thing.)
-           Assuming its a sub part we convert the EXACT otherwise we convert
-           the whole branch sequence, including the first.
-         */
-        /* Find the node we are going to overwrite */
-        if ( first != startbranch || OP( last ) == BRANCH ) {
-            /* branch sub-chain */
-            NEXT_OFF( first ) = (U16)(last - first);
-            /* whole branch chain */
-        }
-        /* But first we check to see if there is a common prefix we can
-           split out as an EXACT and put in front of the TRIE node.  */
-        trie->startstate= 1;
-        if ( trie->bitmap && !widecharmap && !trie->jump  ) {
-            /* we want to find the first state that has more than
-             * one transition, if that state is not the first state
-             * then we have a common prefix which we can remove.
-             */
-            U32 state;
-            for ( state = 1 ; state < trie->statecount-1 ; state++ ) {
-                U32 ofs = 0;
-                I32 first_ofs = -1; /* keeps track of the ofs of the first
-                                       transition, -1 means none */
-                U32 count = 0;
-                const U32 base = trie->states[ state ].trans.base;
+        dst = new_block;
 
-                /* does this state terminate an alternation? */
-                if ( trie->states[state].wordnum )
-                        count = 1;
+        while (i1 < r1c || i2 < r2c) {
+            struct reg_code_block *src;
+            bool is_qr = 0;
 
-                for ( ofs = 0 ; ofs < trie->uniquecharcount ; ofs++ ) {
-                    if ( ( base + ofs >= trie->uniquecharcount ) &&
-                         ( base + ofs - trie->uniquecharcount < trie->lasttrans ) &&
-                         trie->trans[ base + ofs - trie->uniquecharcount ].check == state )
-                    {
-                        if ( ++count > 1 ) {
-                            /* we have more than one transition */
-                            SV **tmp;
-                            U8 *ch;
-                            /* if this is the first state there is no common prefix
-                             * to extract, so we can exit */
-                            if ( state == 1 ) break;
-                            tmp = av_fetch( revcharmap, ofs, 0);
-                            ch = (U8*)SvPV_nolen_const( *tmp );
-
-                            /* if we are on count 2 then we need to initialize the
-                             * bitmap, and store the previous char if there was one
-                             * in it*/
-                            if ( count == 2 ) {
-                                /* clear the bitmap */
-                                Zero(trie->bitmap, ANYOF_BITMAP_SIZE, char);
-                                DEBUG_OPTIMISE_r(
-                                    Perl_re_indentf( aTHX_  "New Start State=%" UVuf " Class: [",
-                                        depth+1,
-                                        (UV)state));
-                                if (first_ofs >= 0) {
-                                    SV ** const tmp = av_fetch( revcharmap, first_ofs, 0);
-                                    const U8 * const ch = (U8*)SvPV_nolen_const( *tmp );
-
-                                    TRIE_BITMAP_SET_FOLDED(trie,*ch, folder);
-                                    DEBUG_OPTIMISE_r(
-                                        Perl_re_printf( aTHX_  "%s", (char*)ch)
-                                    );
-                                }
-                            }
-                            /* store the current firstchar in the bitmap */
-                            TRIE_BITMAP_SET_FOLDED(trie,*ch, folder);
-                            DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "%s", ch));
-                        }
-                        first_ofs = ofs;
-                    }
-                }
-                if ( count == 1 ) {
-                    /* This state has only one transition, its transition is part
-                     * of a common prefix - we need to concatenate the char it
-                     * represents to what we have so far. */
-                    SV **tmp = av_fetch( revcharmap, first_ofs, 0);
-                    STRLEN len;
-                    char *ch = SvPV( *tmp, len );
-                    DEBUG_OPTIMISE_r({
-                        SV *sv=sv_newmortal();
-                        Perl_re_indentf( aTHX_  "Prefix State: %" UVuf " Ofs:%" UVuf " Char='%s'\n",
-                            depth+1,
-                            (UV)state, (UV)first_ofs,
-                            pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), 6,
-                                PL_colors[0], PL_colors[1],
-                                (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
-                                PERL_PV_ESCAPE_FIRSTCHAR
-                            )
-                        );
-                    });
-                    if ( state==1 ) {
-                        OP( convert ) = nodetype;
-                        str=STRING(convert);
-                        setSTR_LEN(convert, 0);
-                    }
-                    assert( ( STR_LEN(convert) + len ) < 256 );
-                    setSTR_LEN(convert, (U8)(STR_LEN(convert) + len));
-                    while (len--)
-                        *str++ = *ch++;
-                } else {
-#ifdef DEBUGGING
-                    if (state>1)
-                        DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "]\n"));
-#endif
-                    break;
-                }
-            }
-            trie->prefixlen = (state-1);
-            if (str) {
-                regnode *n = convert+NODE_SZ_STR(convert);
-                assert( NODE_SZ_STR(convert) <= U16_MAX );
-                NEXT_OFF(convert) = (U16)(NODE_SZ_STR(convert));
-                trie->startstate = state;
-                trie->minlen -= (state - 1);
-                trie->maxlen -= (state - 1);
-#ifdef DEBUGGING
-               /* At least the UNICOS C compiler choked on this
-                * being argument to DEBUG_r(), so let's just have
-                * it right here. */
-               if (
-#ifdef PERL_EXT_RE_BUILD
-                   1
-#else
-                   DEBUG_r_TEST
-#endif
-                   ) {
-                   U32 word = trie->wordcount;
-                   while (word--) {
-                       SV ** const tmp = av_fetch( trie_words, word, 0 );
-                       if (tmp) {
-                           if ( STR_LEN(convert) <= SvCUR(*tmp) )
-                               sv_chop(*tmp, SvPV_nolen(*tmp) + STR_LEN(convert));
-                           else
-                               sv_chop(*tmp, SvPV_nolen(*tmp) + SvCUR(*tmp));
-                       }
-                   }
-               }
-#endif
-                if (trie->maxlen) {
-                    convert = n;
-                } else {
-                    NEXT_OFF(convert) = (U16)(tail - convert);
-                    DEBUG_r(optimize= n);
-                }
+            if (i1 == r1c) {
+                src = &r2->code_blocks->cb[i2++];
+                is_qr = 1;
             }
-        }
-        if (!jumper)
-            jumper = last;
-        if ( trie->maxlen ) {
-            NEXT_OFF( convert ) = (U16)(tail - convert);
-            ARG_SET( convert, data_slot );
-            /* Store the offset to the first unabsorbed branch in
-               jump[0], which is otherwise unused by the jump logic.
-               We use this when dumping a trie and during optimisation. */
-            if (trie->jump)
-                trie->jump[0] = (U16)(nextbranch - convert);
-
-            /* If the start state is not accepting (meaning there is no empty string/NOTHING)
-             *   and there is a bitmap
-             *   and the first "jump target" node we found leaves enough room
-             * then convert the TRIE node into a TRIEC node, with the bitmap
-             * embedded inline in the opcode - this is hypothetically faster.
-             */
-            if ( !trie->states[trie->startstate].wordnum
-                 && trie->bitmap
-                 && ( (char *)jumper - (char *)convert) >= (int)sizeof(struct regnode_charclass) )
+            else if (i2 == r2c)
+                src = &r1->code_blocks->cb[i1++];
+            else if (  r1->code_blocks->cb[i1].start
+                     < r2->code_blocks->cb[i2].start)
             {
-                OP( convert ) = TRIEC;
-                Copy(trie->bitmap, ((struct regnode_charclass *)convert)->bitmap, ANYOF_BITMAP_SIZE, char);
-                PerlMemShared_free(trie->bitmap);
-                trie->bitmap= NULL;
-            } else
-                OP( convert ) = TRIE;
-
-            /* store the type in the flags */
-            convert->flags = nodetype;
-            DEBUG_r({
-            optimize = convert
-                      + NODE_STEP_REGNODE
-                      + regarglen[ OP( convert ) ];
-            });
-            /* XXX We really should free up the resource in trie now,
-                   as we won't use them - (which resources?) dmq */
-        }
-        /* needed for dumping*/
-        DEBUG_r(if (optimize) {
-            /*
-                Try to clean up some of the debris left after the
-                optimisation.
-             */
-            while( optimize < jumper ) {
-                OP( optimize ) = OPTIMIZED;
-                optimize++;
+                src = &r1->code_blocks->cb[i1++];
+                assert(src->end < r2->code_blocks->cb[i2].start);
             }
-        });
-    } /* end node insert */
-
-    /*  Finish populating the prev field of the wordinfo array.  Walk back
-     *  from each accept state until we find another accept state, and if
-     *  so, point the first word's .prev field at the second word. If the
-     *  second already has a .prev field set, stop now. This will be the
-     *  case either if we've already processed that word's accept state,
-     *  or that state had multiple words, and the overspill words were
-     *  already linked up earlier.
-     */
-    {
-        U16 word;
-        U32 state;
-        U16 prev;
-
-        for (word=1; word <= trie->wordcount; word++) {
-            prev = 0;
-            if (trie->wordinfo[word].prev)
-                continue;
-            state = trie->wordinfo[word].accept;
-            while (state) {
-                state = prev_states[state];
-                if (!state)
-                    break;
-                prev = trie->states[state].wordnum;
-                if (prev)
-                    break;
+            else {
+                assert(  r1->code_blocks->cb[i1].start
+                       > r2->code_blocks->cb[i2].start);
+                src = &r2->code_blocks->cb[i2++];
+                is_qr = 1;
+                assert(src->end < r1->code_blocks->cb[i1].start);
             }
-            trie->wordinfo[word].prev = prev;
+
+            assert(pat[src->start] == '(');
+            assert(pat[src->end]   == ')');
+            dst->start	    = src->start;
+            dst->end	    = src->end;
+            dst->block	    = src->block;
+            dst->src_regex  = is_qr ? (REGEXP*) SvREFCNT_inc( (SV*) qr)
+                                    : src->src_regex;
+            dst++;
         }
-        Safefree(prev_states);
+        r1->code_blocks->count += r2c;
+        Safefree(r1->code_blocks->cb);
+        r1->code_blocks->cb = new_block;
     }
 
-
-    /* and now dump out the compressed format */
-    DEBUG_TRIE_COMPILE_r(dump_trie(trie, widecharmap, revcharmap, depth+1));
-
-    RExC_rxi->data->data[ data_slot + 1 ] = (void*)widecharmap;
-#ifdef DEBUGGING
-    RExC_rxi->data->data[ data_slot + TRIE_WORDS_OFFSET ] = (void*)trie_words;
-    RExC_rxi->data->data[ data_slot + 3 ] = (void*)revcharmap;
-#else
-    SvREFCNT_dec_NN(revcharmap);
-#endif
-    return trie->jump
-           ? MADE_JUMP_TRIE
-           : trie->startstate>1
-             ? MADE_EXACT_TRIE
-             : MADE_TRIE;
+    SvREFCNT_dec_NN(qr);
+    return 1;
 }
 
-STATIC regnode *
-S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
+
+STATIC bool
+S_setup_longest(pTHX_ RExC_state_t *pRExC_state,
+                      struct reg_substr_datum  *rsd,
+                      struct scan_data_substrs *sub,
+                      STRLEN longest_length)
 {
-/* The Trie is constructed and compressed now so we can build a fail array if
- * it's needed
+    /* This is the common code for setting up the floating and fixed length
+     * string data extracted from Perl_re_op_compile() below.  Returns a boolean
+     * as to whether succeeded or not */
 
-   This is basically the Aho-Corasick algorithm. Its from exercise 3.31 and
-   3.32 in the
-   "Red Dragon" -- Compilers, principles, techniques, and tools. Aho, Sethi,
-   Ullman 1985/88
-   ISBN 0-201-10088-6
-
-   We find the fail state for each state in the trie, this state is the longest
-   proper suffix of the current state's 'word' that is also a proper prefix of
-   another word in our trie. State 1 represents the word '' and is thus the
-   default fail state. This allows the DFA not to have to restart after its
-   tried and failed a word at a given point, it simply continues as though it
-   had been matching the other word in the first place.
-   Consider
-      'abcdgu'=~/abcdefg|cdgu/
-   When we get to 'd' we are still matching the first word, we would encounter
-   'g' which would fail, which would bring us to the state representing 'd' in
-   the second word where we would try 'g' and succeed, proceeding to match
-   'cdgu'.
- */
- /* add a fail transition */
-    const U32 trie_offset = ARG(source);
-    reg_trie_data *trie=(reg_trie_data *)RExC_rxi->data->data[trie_offset];
-    U32 *q;
-    const U32 ucharcount = trie->uniquecharcount;
-    const U32 numstates = trie->statecount;
-    const U32 ubound = trie->lasttrans + ucharcount;
-    U32 q_read = 0;
-    U32 q_write = 0;
-    U32 charid;
-    U32 base = trie->states[ 1 ].trans.base;
-    U32 *fail;
-    reg_ac_data *aho;
-    const U32 data_slot = add_data( pRExC_state, STR_WITH_LEN("T"));
-    regnode *stclass;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+    I32 t;
+    SSize_t ml;
+    bool eol  = cBOOL(sub->flags & SF_BEFORE_EOL);
+    bool meol = cBOOL(sub->flags & SF_BEFORE_MEOL);
 
-    PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE;
-    PERL_UNUSED_CONTEXT;
-#ifndef DEBUGGING
-    PERL_UNUSED_ARG(depth);
-#endif
-
-    if ( OP(source) == TRIE ) {
-        struct regnode_1 *op = (struct regnode_1 *)
-            PerlMemShared_calloc(1, sizeof(struct regnode_1));
-        StructCopy(source, op, struct regnode_1);
-        stclass = (regnode *)op;
-    } else {
-        struct regnode_charclass *op = (struct regnode_charclass *)
-            PerlMemShared_calloc(1, sizeof(struct regnode_charclass));
-        StructCopy(source, op, struct regnode_charclass);
-        stclass = (regnode *)op;
-    }
-    OP(stclass)+=2; /* convert the TRIE type to its AHO-CORASICK equivalent */
-
-    ARG_SET( stclass, data_slot );
-    aho = (reg_ac_data *) PerlMemShared_calloc( 1, sizeof(reg_ac_data) );
-    RExC_rxi->data->data[ data_slot ] = (void*)aho;
-    aho->trie=trie_offset;
-    aho->states=(reg_trie_state *)PerlMemShared_malloc( numstates * sizeof(reg_trie_state) );
-    Copy( trie->states, aho->states, numstates, reg_trie_state );
-    Newx( q, numstates, U32);
-    aho->fail = (U32 *) PerlMemShared_calloc( numstates, sizeof(U32) );
-    aho->refcount = 1;
-    fail = aho->fail;
-    /* initialize fail[0..1] to be 1 so that we always have
-       a valid final fail state */
-    fail[ 0 ] = fail[ 1 ] = 1;
-
-    for ( charid = 0; charid < ucharcount ; charid++ ) {
-        const U32 newstate = TRIE_TRANS_STATE( 1, base, ucharcount, charid, 0 );
-        if ( newstate ) {
-            q[ q_write ] = newstate;
-            /* set to point at the root */
-            fail[ q[ q_write++ ] ]=1;
-        }
-    }
-    while ( q_read < q_write) {
-        const U32 cur = q[ q_read++ % numstates ];
-        base = trie->states[ cur ].trans.base;
-
-        for ( charid = 0 ; charid < ucharcount ; charid++ ) {
-            const U32 ch_state = TRIE_TRANS_STATE( cur, base, ucharcount, charid, 1 );
-            if (ch_state) {
-                U32 fail_state = cur;
-                U32 fail_base;
-                do {
-                    fail_state = fail[ fail_state ];
-                    fail_base = aho->states[ fail_state ].trans.base;
-                } while ( !TRIE_TRANS_STATE( fail_state, fail_base, ucharcount, charid, 1 ) );
-
-                fail_state = TRIE_TRANS_STATE( fail_state, fail_base, ucharcount, charid, 1 );
-                fail[ ch_state ] = fail_state;
-                if ( !aho->states[ ch_state ].wordnum && aho->states[ fail_state ].wordnum )
-                {
-                        aho->states[ ch_state ].wordnum =  aho->states[ fail_state ].wordnum;
-                }
-                q[ q_write++ % numstates] = ch_state;
-            }
-        }
-    }
-    /* restore fail[0..1] to 0 so that we "fall out" of the AC loop
-       when we fail in state 1, this allows us to use the
-       charclass scan to find a valid start char. This is based on the principle
-       that theres a good chance the string being searched contains lots of stuff
-       that cant be a start char.
-     */
-    fail[ 0 ] = fail[ 1 ] = 0;
-    DEBUG_TRIE_COMPILE_r({
-        Perl_re_indentf( aTHX_  "Stclass Failtable (%" UVuf " states): 0",
-                      depth, (UV)numstates
-        );
-        for( q_read=1; q_read<numstates; q_read++ ) {
-            Perl_re_printf( aTHX_  ", %" UVuf, (UV)fail[q_read]);
-        }
-        Perl_re_printf( aTHX_  "\n");
-    });
-    Safefree(q);
-    /*RExC_seen |= REG_TRIEDFA_SEEN;*/
-    return stclass;
-}
-
-
-/* The below joins as many adjacent EXACTish nodes as possible into a single
- * one.  The regop may be changed if the node(s) contain certain sequences that
- * require special handling.  The joining is only done if:
- * 1) there is room in the current conglomerated node to entirely contain the
- *    next one.
- * 2) they are compatible node types
- *
- * The adjacent nodes actually may be separated by NOTHING-kind nodes, and
- * these get optimized out
- *
- * XXX khw thinks this should be enhanced to fill EXACT (at least) nodes as full
- * as possible, even if that means splitting an existing node so that its first
- * part is moved to the preceding node.  This would maximise the efficiency of
- * memEQ during matching.
- *
- * If a node is to match under /i (folded), the number of characters it matches
- * can be different than its character length if it contains a multi-character
- * fold.  *min_subtract is set to the total delta number of characters of the
- * input nodes.
- *
- * And *unfolded_multi_char is set to indicate whether or not the node contains
- * an unfolded multi-char fold.  This happens when it won't be known until
- * runtime whether the fold is valid or not; namely
- *  1) for EXACTF nodes that contain LATIN SMALL LETTER SHARP S, as only if the
- *      target string being matched against turns out to be UTF-8 is that fold
- *      valid; or
- *  2) for EXACTFL nodes whose folding rules depend on the locale in force at
- *      runtime.
- * (Multi-char folds whose components are all above the Latin1 range are not
- * run-time locale dependent, and have already been folded by the time this
- * function is called.)
- *
- * This is as good a place as any to discuss the design of handling these
- * multi-character fold sequences.  It's been wrong in Perl for a very long
- * time.  There are three code points in Unicode whose multi-character folds
- * were long ago discovered to mess things up.  The previous designs for
- * dealing with these involved assigning a special node for them.  This
- * approach doesn't always work, as evidenced by this example:
- *      "\xDFs" =~ /s\xDF/ui    # Used to fail before these patches
- * Both sides fold to "sss", but if the pattern is parsed to create a node that
- * would match just the \xDF, it won't be able to handle the case where a
- * successful match would have to cross the node's boundary.  The new approach
- * that hopefully generally solves the problem generates an EXACTFUP node
- * that is "sss" in this case.
- *
- * It turns out that there are problems with all multi-character folds, and not
- * just these three.  Now the code is general, for all such cases.  The
- * approach taken is:
- * 1)   This routine examines each EXACTFish node that could contain multi-
- *      character folded sequences.  Since a single character can fold into
- *      such a sequence, the minimum match length for this node is less than
- *      the number of characters in the node.  This routine returns in
- *      *min_subtract how many characters to subtract from the actual
- *      length of the string to get a real minimum match length; it is 0 if
- *      there are no multi-char foldeds.  This delta is used by the caller to
- *      adjust the min length of the match, and the delta between min and max,
- *      so that the optimizer doesn't reject these possibilities based on size
- *      constraints.
- *
- * 2)   For the sequence involving the LATIN SMALL LETTER SHARP S (U+00DF)
- *      under /u, we fold it to 'ss' in regatom(), and in this routine, after
- *      joining, we scan for occurrences of the sequence 'ss' in non-UTF-8
- *      EXACTFU nodes.  The node type of such nodes is then changed to
- *      EXACTFUP, indicating it is problematic, and needs careful handling.
- *      (The procedures in step 1) above are sufficient to handle this case in
- *      UTF-8 encoded nodes.)  The reason this is problematic is that this is
- *      the only case where there is a possible fold length change in non-UTF-8
- *      patterns.  By reserving a special node type for problematic cases, the
- *      far more common regular EXACTFU nodes can be processed faster.
- *      regexec.c takes advantage of this.
- *
- *      EXACTFUP has been created as a grab-bag for (hopefully uncommon)
- *      problematic cases.   These all only occur when the pattern is not
- *      UTF-8.  In addition to the 'ss' sequence where there is a possible fold
- *      length change, it handles the situation where the string cannot be
- *      entirely folded.  The strings in an EXACTFish node are folded as much
- *      as possible during compilation in regcomp.c.  This saves effort in
- *      regex matching.  By using an EXACTFUP node when it is not possible to
- *      fully fold at compile time, regexec.c can know that everything in an
- *      EXACTFU node is folded, so folding can be skipped at runtime.  The only
- *      case where folding in EXACTFU nodes can't be done at compile time is
- *      the presumably uncommon MICRO SIGN, when the pattern isn't UTF-8.  This
- *      is because its fold requires UTF-8 to represent.  Thus EXACTFUP nodes
- *      handle two very different cases.  Alternatively, there could have been
- *      a node type where there are length changes, one for unfolded, and one
- *      for both.  If yet another special case needed to be created, the number
- *      of required node types would have to go to 7.  khw figures that even
- *      though there are plenty of node types to spare, that the maintenance
- *      cost wasn't worth the small speedup of doing it that way, especially
- *      since he thinks the MICRO SIGN is rarely encountered in practice.
- *
- *      There are other cases where folding isn't done at compile time, but
- *      none of them are under /u, and hence not for EXACTFU nodes.  The folds
- *      in EXACTFL nodes aren't known until runtime, and vary as the locale
- *      changes.  Some folds in EXACTF depend on if the runtime target string
- *      is UTF-8 or not.  (regatom() will create an EXACTFU node even under /di
- *      when no fold in it depends on the UTF-8ness of the target string.)
- *
- * 3)   A problem remains for unfolded multi-char folds. (These occur when the
- *      validity of the fold won't be known until runtime, and so must remain
- *      unfolded for now.  This happens for the sharp s in EXACTF and EXACTFAA
- *      nodes when the pattern isn't in UTF-8.  (Note, BTW, that there cannot
- *      be an EXACTF node with a UTF-8 pattern.)  They also occur for various
- *      folds in EXACTFL nodes, regardless of the UTF-ness of the pattern.)
- *      The reason this is a problem is that the optimizer part of regexec.c
- *      (probably unwittingly, in Perl_regexec_flags()) makes an assumption
- *      that a character in the pattern corresponds to at most a single
- *      character in the target string.  (And I do mean character, and not byte
- *      here, unlike other parts of the documentation that have never been
- *      updated to account for multibyte Unicode.)  Sharp s in EXACTF and
- *      EXACTFL nodes can match the two character string 'ss'; in EXACTFAA
- *      nodes it can match "\x{17F}\x{17F}".  These, along with other ones in
- *      EXACTFL nodes, violate the assumption, and they are the only instances
- *      where it is violated.  I'm reluctant to try to change the assumption,
- *      as the code involved is impenetrable to me (khw), so instead the code
- *      here punts.  This routine examines EXACTFL nodes, and (when the pattern
- *      isn't UTF-8) EXACTF and EXACTFAA for such unfolded folds, and returns a
- *      boolean indicating whether or not the node contains such a fold.  When
- *      it is true, the caller sets a flag that later causes the optimizer in
- *      this file to not set values for the floating and fixed string lengths,
- *      and thus avoids the optimizer code in regexec.c that makes the invalid
- *      assumption.  Thus, there is no optimization based on string lengths for
- *      EXACTFL nodes that contain these few folds, nor for non-UTF8-pattern
- *      EXACTF and EXACTFAA nodes that contain the sharp s.  (The reason the
- *      assumption is wrong only in these cases is that all other non-UTF-8
- *      folds are 1-1; and, for UTF-8 patterns, we pre-fold all other folds to
- *      their expanded versions.  (Again, we can't prefold sharp s to 'ss' in
- *      EXACTF nodes because we don't know at compile time if it actually
- *      matches 'ss' or not.  For EXACTF nodes it will match iff the target
- *      string is in UTF-8.  This is in contrast to EXACTFU nodes, where it
- *      always matches; and EXACTFAA where it never does.  In an EXACTFAA node
- *      in a UTF-8 pattern, sharp s is folded to "\x{17F}\x{17F}, avoiding the
- *      problem; but in a non-UTF8 pattern, folding it to that above-Latin1
- *      string would require the pattern to be forced into UTF-8, the overhead
- *      of which we want to avoid.  Similarly the unfolded multi-char folds in
- *      EXACTFL nodes will match iff the locale at the time of match is a UTF-8
- *      locale.)
- *
- *      Similarly, the code that generates tries doesn't currently handle
- *      not-already-folded multi-char folds, and it looks like a pain to change
- *      that.  Therefore, trie generation of EXACTFAA nodes with the sharp s
- *      doesn't work.  Instead, such an EXACTFAA is turned into a new regnode,
- *      EXACTFAA_NO_TRIE, which the trie code knows not to handle.  Most people
- *      using /iaa matching will be doing so almost entirely with ASCII
- *      strings, so this should rarely be encountered in practice */
-
-STATIC U32
-S_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan,
-                   UV *min_subtract, bool *unfolded_multi_char,
-                   U32 flags, regnode *val, U32 depth)
-{
-    /* Merge several consecutive EXACTish nodes into one. */
-
-    regnode *n = regnext(scan);
-    U32 stringok = 1;
-    regnode *next = scan + NODE_SZ_STR(scan);
-    U32 merged = 0;
-    U32 stopnow = 0;
-#ifdef DEBUGGING
-    regnode *stop = scan;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-#else
-    PERL_UNUSED_ARG(depth);
-#endif
-
-    PERL_ARGS_ASSERT_JOIN_EXACT;
-#ifndef EXPERIMENTAL_INPLACESCAN
-    PERL_UNUSED_ARG(flags);
-    PERL_UNUSED_ARG(val);
-#endif
-    DEBUG_PEEP("join", scan, depth, 0);
-
-    assert(PL_regkind[OP(scan)] == EXACT);
-
-    /* Look through the subsequent nodes in the chain.  Skip NOTHING, merge
-     * EXACT ones that are mergeable to the current one. */
-    while (    n
-           && (    PL_regkind[OP(n)] == NOTHING
-               || (stringok && PL_regkind[OP(n)] == EXACT))
-           && NEXT_OFF(n)
-           && NEXT_OFF(scan) + NEXT_OFF(n) < I16_MAX)
+    if (! (longest_length
+           || (eol /* Can't have SEOL and MULTI */
+               && (! meol || (RExC_flags & RXf_PMf_MULTILINE)))
+          )
+            /* See comments for join_exact for why REG_UNFOLDED_MULTI_SEEN */
+        || (RExC_seen & REG_UNFOLDED_MULTI_SEEN))
     {
-
-        if (OP(n) == TAIL || n > next)
-            stringok = 0;
-        if (PL_regkind[OP(n)] == NOTHING) {
-            DEBUG_PEEP("skip:", n, depth, 0);
-            NEXT_OFF(scan) += NEXT_OFF(n);
-            next = n + NODE_STEP_REGNODE;
-#ifdef DEBUGGING
-            if (stringok)
-                stop = n;
-#endif
-            n = regnext(n);
-        }
-        else if (stringok) {
-            const unsigned int oldl = STR_LEN(scan);
-            regnode * const nnext = regnext(n);
-
-            /* XXX I (khw) kind of doubt that this works on platforms (should
-             * Perl ever run on one) where U8_MAX is above 255 because of lots
-             * of other assumptions */
-            /* Don't join if the sum can't fit into a single node */
-            if (oldl + STR_LEN(n) > U8_MAX)
-                break;
-
-            /* Joining something that requires UTF-8 with something that
-             * doesn't, means the result requires UTF-8. */
-            if (OP(scan) == EXACT && (OP(n) == EXACT_REQ8)) {
-                OP(scan) = EXACT_REQ8;
-            }
-            else if (OP(scan) == EXACT_REQ8 && (OP(n) == EXACT)) {
-                ;   /* join is compatible, no need to change OP */
-            }
-            else if ((OP(scan) == EXACTFU) && (OP(n) == EXACTFU_REQ8)) {
-                OP(scan) = EXACTFU_REQ8;
-            }
-            else if ((OP(scan) == EXACTFU_REQ8) && (OP(n) == EXACTFU)) {
-                ;   /* join is compatible, no need to change OP */
-            }
-            else if (OP(scan) == EXACTFU && OP(n) == EXACTFU) {
-                ;   /* join is compatible, no need to change OP */
-            }
-            else if (OP(scan) == EXACTFU && OP(n) == EXACTFU_S_EDGE) {
-
-                 /* Under /di, temporary EXACTFU_S_EDGE nodes are generated,
-                  * which can join with EXACTFU ones.  We check for this case
-                  * here.  These need to be resolved to either EXACTFU or
-                  * EXACTF at joining time.  They have nothing in them that
-                  * would forbid them from being the more desirable EXACTFU
-                  * nodes except that they begin and/or end with a single [Ss].
-                  * The reason this is problematic is because they could be
-                  * joined in this loop with an adjacent node that ends and/or
-                  * begins with [Ss] which would then form the sequence 'ss',
-                  * which matches differently under /di than /ui, in which case
-                  * EXACTFU can't be used.  If the 'ss' sequence doesn't get
-                  * formed, the nodes get absorbed into any adjacent EXACTFU
-                  * node.  And if the only adjacent node is EXACTF, they get
-                  * absorbed into that, under the theory that a longer node is
-                  * better than two shorter ones, even if one is EXACTFU.  Note
-                  * that EXACTFU_REQ8 is generated only for UTF-8 patterns,
-                  * and the EXACTFU_S_EDGE ones only for non-UTF-8.  */
-
-                if (STRING(n)[STR_LEN(n)-1] == 's') {
-
-                    /* Here the joined node would end with 's'.  If the node
-                     * following the combination is an EXACTF one, it's better to
-                     * join this trailing edge 's' node with that one, leaving the
-                     * current one in 'scan' be the more desirable EXACTFU */
-                    if (OP(nnext) == EXACTF) {
-                        break;
-                    }
-
-                    OP(scan) = EXACTFU_S_EDGE;
-
-                }   /* Otherwise, the beginning 's' of the 2nd node just
-                       becomes an interior 's' in 'scan' */
-            }
-            else if (OP(scan) == EXACTF && OP(n) == EXACTF) {
-                ;   /* join is compatible, no need to change OP */
-            }
-            else if (OP(scan) == EXACTF && OP(n) == EXACTFU_S_EDGE) {
-
-                /* EXACTF nodes are compatible for joining with EXACTFU_S_EDGE
-                 * nodes.  But the latter nodes can be also joined with EXACTFU
-                 * ones, and that is a better outcome, so if the node following
-                 * 'n' is EXACTFU, quit now so that those two can be joined
-                 * later */
-                if (OP(nnext) == EXACTFU) {
-                    break;
-                }
-
-                /* The join is compatible, and the combined node will be
-                 * EXACTF.  (These don't care if they begin or end with 's' */
-            }
-            else if (OP(scan) == EXACTFU_S_EDGE && OP(n) == EXACTFU_S_EDGE) {
-                if (   STRING(scan)[STR_LEN(scan)-1] == 's'
-                    && STRING(n)[0] == 's')
-                {
-                    /* When combined, we have the sequence 'ss', which means we
-                     * have to remain /di */
-                    OP(scan) = EXACTF;
-                }
-            }
-            else if (OP(scan) == EXACTFU_S_EDGE && OP(n) == EXACTFU) {
-                if (STRING(n)[0] == 's') {
-                    ;   /* Here the join is compatible and the combined node
-                           starts with 's', no need to change OP */
-                }
-                else {  /* Now the trailing 's' is in the interior */
-                    OP(scan) = EXACTFU;
-                }
-            }
-            else if (OP(scan) == EXACTFU_S_EDGE && OP(n) == EXACTF) {
-
-                /* The join is compatible, and the combined node will be
-                 * EXACTF.  (These don't care if they begin or end with 's' */
-                OP(scan) = EXACTF;
-            }
-            else if (OP(scan) != OP(n)) {
-
-                /* The only other compatible joinings are the same node type */
-                break;
-            }
-
-            DEBUG_PEEP("merg", n, depth, 0);
-            merged++;
-
-            NEXT_OFF(scan) += NEXT_OFF(n);
-            assert( ( STR_LEN(scan) + STR_LEN(n) ) < 256 );
-            setSTR_LEN(scan, (U8)(STR_LEN(scan) + STR_LEN(n)));
-            next = n + NODE_SZ_STR(n);
-            /* Now we can overwrite *n : */
-            Move(STRING(n), STRING(scan) + oldl, STR_LEN(n), char);
-#ifdef DEBUGGING
-            stop = next - 1;
-#endif
-            n = nnext;
-            if (stopnow) break;
-        }
-
-#ifdef EXPERIMENTAL_INPLACESCAN
-        if (flags && !NEXT_OFF(n)) {
-            DEBUG_PEEP("atch", val, depth, 0);
-            if (reg_off_by_arg[OP(n)]) {
-                ARG_SET(n, val - n);
-            }
-            else {
-                NEXT_OFF(n) = val - n;
-            }
-            stopnow = 1;
-        }
-#endif
-    }
-
-    /* This temporary node can now be turned into EXACTFU, and must, as
-     * regexec.c doesn't handle it */
-    if (OP(scan) == EXACTFU_S_EDGE) {
-        OP(scan) = EXACTFU;
-    }
-
-    *min_subtract = 0;
-    *unfolded_multi_char = FALSE;
-
-    /* Here, all the adjacent mergeable EXACTish nodes have been merged.  We
-     * can now analyze for sequences of problematic code points.  (Prior to
-     * this final joining, sequences could have been split over boundaries, and
-     * hence missed).  The sequences only happen in folding, hence for any
-     * non-EXACT EXACTish node */
-    if (OP(scan) != EXACT && OP(scan) != EXACT_REQ8 && OP(scan) != EXACTL) {
-        U8* s0 = (U8*) STRING(scan);
-        U8* s = s0;
-        U8* s_end = s0 + STR_LEN(scan);
-
-        int total_count_delta = 0;  /* Total delta number of characters that
-                                       multi-char folds expand to */
-
-        /* One pass is made over the node's string looking for all the
-         * possibilities.  To avoid some tests in the loop, there are two main
-         * cases, for UTF-8 patterns (which can't have EXACTF nodes) and
-         * non-UTF-8 */
-        if (UTF) {
-            U8* folded = NULL;
-
-            if (OP(scan) == EXACTFL) {
-                U8 *d;
-
-                /* An EXACTFL node would already have been changed to another
-                 * node type unless there is at least one character in it that
-                 * is problematic; likely a character whose fold definition
-                 * won't be known until runtime, and so has yet to be folded.
-                 * For all but the UTF-8 locale, folds are 1-1 in length, but
-                 * to handle the UTF-8 case, we need to create a temporary
-                 * folded copy using UTF-8 locale rules in order to analyze it.
-                 * This is because our macros that look to see if a sequence is
-                 * a multi-char fold assume everything is folded (otherwise the
-                 * tests in those macros would be too complicated and slow).
-                 * Note that here, the non-problematic folds will have already
-                 * been done, so we can just copy such characters.  We actually
-                 * don't completely fold the EXACTFL string.  We skip the
-                 * unfolded multi-char folds, as that would just create work
-                 * below to figure out the size they already are */
-
-                Newx(folded, UTF8_MAX_FOLD_CHAR_EXPAND * STR_LEN(scan) + 1, U8);
-                d = folded;
-                while (s < s_end) {
-                    STRLEN s_len = UTF8SKIP(s);
-                    if (! is_PROBLEMATIC_LOCALE_FOLD_utf8(s)) {
-                        Copy(s, d, s_len, U8);
-                        d += s_len;
-                    }
-                    else if (is_FOLDS_TO_MULTI_utf8(s)) {
-                        *unfolded_multi_char = TRUE;
-                        Copy(s, d, s_len, U8);
-                        d += s_len;
-                    }
-                    else if (isASCII(*s)) {
-                        *(d++) = toFOLD(*s);
-                    }
-                    else {
-                        STRLEN len;
-                        _toFOLD_utf8_flags(s, s_end, d, &len, FOLD_FLAGS_FULL);
-                        d += len;
-                    }
-                    s += s_len;
-                }
-
-                /* Point the remainder of the routine to look at our temporary
-                 * folded copy */
-                s = folded;
-                s_end = d;
-            } /* End of creating folded copy of EXACTFL string */
-
-            /* Examine the string for a multi-character fold sequence.  UTF-8
-             * patterns have all characters pre-folded by the time this code is
-             * executed */
-            while (s < s_end - 1) /* Can stop 1 before the end, as minimum
-                                     length sequence we are looking for is 2 */
-            {
-                int count = 0;  /* How many characters in a multi-char fold */
-                int len = is_MULTI_CHAR_FOLD_utf8_safe(s, s_end);
-                if (! len) {    /* Not a multi-char fold: get next char */
-                    s += UTF8SKIP(s);
-                    continue;
-                }
-
-                { /* Here is a generic multi-char fold. */
-                    U8* multi_end  = s + len;
-
-                    /* Count how many characters are in it.  In the case of
-                     * /aa, no folds which contain ASCII code points are
-                     * allowed, so check for those, and skip if found. */
-                    if (OP(scan) != EXACTFAA && OP(scan) != EXACTFAA_NO_TRIE) {
-                        count = utf8_length(s, multi_end);
-                        s = multi_end;
-                    }
-                    else {
-                        while (s < multi_end) {
-                            if (isASCII(*s)) {
-                                s++;
-                                goto next_iteration;
-                            }
-                            else {
-                                s += UTF8SKIP(s);
-                            }
-                            count++;
-                        }
-                    }
-                }
-
-                /* The delta is how long the sequence is minus 1 (1 is how long
-                 * the character that folds to the sequence is) */
-                total_count_delta += count - 1;
-              next_iteration: ;
-            }
-
-            /* We created a temporary folded copy of the string in EXACTFL
-             * nodes.  Therefore we need to be sure it doesn't go below zero,
-             * as the real string could be shorter */
-            if (OP(scan) == EXACTFL) {
-                int total_chars = utf8_length((U8*) STRING(scan),
-                                           (U8*) STRING(scan) + STR_LEN(scan));
-                if (total_count_delta > total_chars) {
-                    total_count_delta = total_chars;
-                }
-            }
-
-            *min_subtract += total_count_delta;
-            Safefree(folded);
-        }
-        else if (OP(scan) == EXACTFAA) {
-
-            /* Non-UTF-8 pattern, EXACTFAA node.  There can't be a multi-char
-             * fold to the ASCII range (and there are no existing ones in the
-             * upper latin1 range).  But, as outlined in the comments preceding
-             * this function, we need to flag any occurrences of the sharp s.
-             * This character forbids trie formation (because of added
-             * complexity) */
-#if    UNICODE_MAJOR_VERSION > 3 /* no multifolds in early Unicode */   \
-   || (UNICODE_MAJOR_VERSION == 3 && (   UNICODE_DOT_VERSION > 0)       \
-                                      || UNICODE_DOT_DOT_VERSION > 0)
-            while (s < s_end) {
-                if (*s == LATIN_SMALL_LETTER_SHARP_S) {
-                    OP(scan) = EXACTFAA_NO_TRIE;
-                    *unfolded_multi_char = TRUE;
-                    break;
-                }
-                s++;
-            }
-        }
-        else if (OP(scan) != EXACTFAA_NO_TRIE) {
-
-            /* Non-UTF-8 pattern, not EXACTFAA node.  Look for the multi-char
-             * folds that are all Latin1.  As explained in the comments
-             * preceding this function, we look also for the sharp s in EXACTF
-             * and EXACTFL nodes; it can be in the final position.  Otherwise
-             * we can stop looking 1 byte earlier because have to find at least
-             * two characters for a multi-fold */
-            const U8* upper = (OP(scan) == EXACTF || OP(scan) == EXACTFL)
-                              ? s_end
-                              : s_end -1;
-
-            while (s < upper) {
-                int len = is_MULTI_CHAR_FOLD_latin1_safe(s, s_end);
-                if (! len) {    /* Not a multi-char fold. */
-                    if (*s == LATIN_SMALL_LETTER_SHARP_S
-                        && (OP(scan) == EXACTF || OP(scan) == EXACTFL))
-                    {
-                        *unfolded_multi_char = TRUE;
-                    }
-                    s++;
-                    continue;
-                }
-
-                if (len == 2
-                    && isALPHA_FOLD_EQ(*s, 's')
-                    && isALPHA_FOLD_EQ(*(s+1), 's'))
-                {
-
-                    /* EXACTF nodes need to know that the minimum length
-                     * changed so that a sharp s in the string can match this
-                     * ss in the pattern, but they remain EXACTF nodes, as they
-                     * won't match this unless the target string is in UTF-8,
-                     * which we don't know until runtime.  EXACTFL nodes can't
-                     * transform into EXACTFU nodes */
-                    if (OP(scan) != EXACTF && OP(scan) != EXACTFL) {
-                        OP(scan) = EXACTFUP;
-                    }
-                }
-
-                *min_subtract += len - 1;
-                s += len;
-            }
-#endif
-        }
+        return FALSE;
     }
 
-#ifdef DEBUGGING
-    /* Allow dumping but overwriting the collection of skipped
-     * ops and/or strings with fake optimized ops */
-    n = scan + NODE_SZ_STR(scan);
-    while (n <= stop) {
-        OP(n) = OPTIMIZED;
-        FLAGS(n) = 0;
-        NEXT_OFF(n) = 0;
-        n++;
+    /* copy the information about the longest from the reg_scan_data
+        over to the program. */
+    if (SvUTF8(sub->str)) {
+        rsd->substr      = NULL;
+        rsd->utf8_substr = sub->str;
+    } else {
+        rsd->substr      = sub->str;
+        rsd->utf8_substr = NULL;
     }
-#endif
-    DEBUG_OPTIMISE_r(if (merged){DEBUG_PEEP("finl", scan, depth, 0);});
-    return stopnow;
-}
-
-/* REx optimizer.  Converts nodes into quicker variants "in place".
-   Finds fixed substrings.  */
-
-/* Stops at toplevel WHILEM as well as at "last". At end *scanp is set
-   to the position after last scanned or to NULL. */
-
-#define INIT_AND_WITHP \
-    assert(!and_withp); \
-    Newx(and_withp, 1, regnode_ssc); \
-    SAVEFREEPV(and_withp)
+    /* end_shift is how many chars that must be matched that
+        follow this item. We calculate it ahead of time as once the
+        lookbehind offset is added in we lose the ability to correctly
+        calculate it.*/
+    ml = sub->minlenp ? *(sub->minlenp) : (SSize_t)longest_length;
+    rsd->end_shift = ml - sub->min_offset
+        - longest_length
+            /* XXX SvTAIL is always false here - did you mean FBMcf_TAIL
+             * intead? - DAPM
+            + (SvTAIL(sub->str) != 0)
+            */
+        + sub->lookbehind;
 
+    t = (eol/* Can't have SEOL and MULTI */
+         && (! meol || (RExC_flags & RXf_PMf_MULTILINE)));
+    fbm_compile(sub->str, t ? FBMcf_TAIL : 0);
 
-static void
-S_unwind_scan_frames(pTHX_ const void *p)
-{
-    scan_frame *f= (scan_frame *)p;
-    do {
-        scan_frame *n= f->next_frame;
-        Safefree(f);
-        f= n;
-    } while (f);
+    return TRUE;
 }
 
-/* Follow the next-chain of the current node and optimize away
-   all the NOTHINGs from it.
- */
 STATIC void
-S_rck_elide_nothing(pTHX_ regnode *node)
+S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx)
 {
-    PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING;
+    /* Calculates and sets in the compiled pattern 'Rx' the string to compile,
+     * properly wrapped with the right modifiers */
 
-    if (OP(node) != CURLYX) {
-        const int max = (reg_off_by_arg[OP(node)]
-                        ? I32_MAX
-                          /* I32 may be smaller than U16 on CRAYs! */
-                        : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX));
-        int off = (reg_off_by_arg[OP(node)] ? ARG(node) : NEXT_OFF(node));
-        int noff;
-        regnode *n = node;
-
-        /* Skip NOTHING and LONGJMP. */
-        while (
-            (n = regnext(n))
-            && (
-                (PL_regkind[OP(n)] == NOTHING && (noff = NEXT_OFF(n)))
-                || ((OP(n) == LONGJMP) && (noff = ARG(n)))
-            )
-            && off + noff < max
-        ) {
-            off += noff;
-        }
-        if (reg_off_by_arg[OP(node)])
-            ARG(node) = off;
-        else
-            NEXT_OFF(node) = off;
-    }
-    return;
-}
+    bool has_p     = ((RExC_rx->extflags & RXf_PMf_KEEPCOPY) == RXf_PMf_KEEPCOPY);
+    bool has_charset = RExC_utf8 || (get_regex_charset(RExC_rx->extflags)
+                                                != REGEX_DEPENDS_CHARSET);
 
-/* the return from this sub is the minimum length that could possibly match */
-STATIC SSize_t
-S_study_chunk(pTHX_
-    RExC_state_t *pRExC_state,
-    regnode **scanp,        /* Start here (read-write). */
-    SSize_t *minlenp,       /* used for the minlen of substrings? */
-    SSize_t *deltap,        /* Write maxlen-minlen here. */
-    regnode *last,          /* Stop before this one. */
-    scan_data_t *data,      /* string data about the pattern */
-    I32 stopparen,          /* treat CLOSE-N as END, see GOSUB */
-    U32 recursed_depth,     /* how deep have we recursed via GOSUB */
-    regnode_ssc *and_withp, /* Valid if flags & SCF_DO_STCLASS_OR */
-    U32 flags,              /* flags controlling this call, see SCF_ flags */
-    U32 depth,              /* how deep have we recursed period */
-    bool was_mutate_ok      /* TRUE if in-place optimizations are allowed.
-                               FALSE only if the caller (recursively) was
-                               prohibited from modifying the regops, because
-                               a higher caller is holding a ptr to them. */
-)
-{
-    /* vars about the regnodes we are working with */
-    regnode *scan = *scanp; /* the current opcode we are inspecting */
-    regnode *next = NULL;   /* the next opcode beyond scan, tmp var */
-    regnode *first_non_open = scan; /* FIXME: should this init to NULL?
-                                       the first non open regop, if the init
-                                       val IS an OPEN then we will skip past
-                                       it just after the var decls section */
-    I32 code = 0;           /* temp var used to hold the optype of a regop */
-
-    /* vars about the min and max length of the pattern */
-    SSize_t min = 0;    /* min length of this part of the pattern */
-    SSize_t stopmin = OPTIMIZE_INFTY; /* min length accounting for ACCEPT
-                                         this is adjusted down if we find
-                                         an ACCEPT */
-    SSize_t delta = 0;  /* difference between min and max length
-                           (not accounting for stopmin) */
-
-    /* vars about capture buffers in the pattern */
-    I32 pars = 0;       /* count of OPEN opcodes */
-    I32 is_par = OP(scan) == OPEN ? ARG(scan) : 0; /* is this op an OPEN? */
-
-    /* vars about whether this pattern contains something that can match
-     * infinitely long strings, eg, X* or X+ */
-    int is_inf = (flags & SCF_DO_SUBSTR) && (data->flags & SF_IS_INF);
-    int is_inf_internal = 0;		/* The studied chunk is infinite */
-
-    /* scan_data_t (struct) is used to hold information about the substrings
-     * and start class we have extracted from the string */
-    scan_data_t data_fake; /* temp var used for recursing in some cases */
+    /* The caret is output if there are any defaults: if not all the STD
+        * flags are set, or if no character set specifier is needed */
+    bool has_default =
+                (((RExC_rx->extflags & RXf_PMf_STD_PMMOD) != RXf_PMf_STD_PMMOD)
+                || ! has_charset);
+    bool has_runon = ((RExC_seen & REG_RUN_ON_COMMENT_SEEN)
+                                                == REG_RUN_ON_COMMENT_SEEN);
+    U8 reganch = (U8)((RExC_rx->extflags & RXf_PMf_STD_PMMOD)
+                        >> RXf_PMf_STD_PMMOD_SHIFT);
+    const char *fptr = STD_PAT_MODS;        /*"msixxn"*/
+    char *p;
+    STRLEN pat_len = RExC_precomp_end - RExC_precomp;
 
-    SV *re_trie_maxbuff = NULL; /* temp var used to hold whether we can do
-                                   trie optimizations */
+    /* We output all the necessary flags; we never output a minus, as all
+        * those are defaults, so are
+        * covered by the caret */
+    const STRLEN wraplen = pat_len + has_p + has_runon
+        + has_default       /* If needs a caret */
+        + PL_bitcount[reganch] /* 1 char for each set standard flag */
 
-    scan_frame *frame = NULL;  /* used as part of fake recursion */
+            /* If needs a character set specifier */
+        + ((has_charset) ? MAX_CHARSET_NAME_LENGTH : 0)
+        + (sizeof("(?:)") - 1);
 
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+    PERL_ARGS_ASSERT_SET_REGEX_PV;
 
-    PERL_ARGS_ASSERT_STUDY_CHUNK;
-    RExC_study_started= 1;
+    /* make sure PL_bitcount bounds not exceeded */
+    STATIC_ASSERT_STMT(sizeof(STD_PAT_MODS) <= 8);
 
-    Zero(&data_fake, 1, scan_data_t);
+    p = sv_grow(MUTABLE_SV(Rx), wraplen + 1); /* +1 for the ending NUL */
+    SvPOK_on(Rx);
+    if (RExC_utf8)
+        SvFLAGS(Rx) |= SVf_UTF8;
+    *p++='('; *p++='?';
 
-    if ( depth == 0 ) {
-        while (first_non_open && OP(first_non_open) == OPEN)
-            first_non_open=regnext(first_non_open);
+    /* If a default, cover it using the caret */
+    if (has_default) {
+        *p++= DEFAULT_PAT_MOD;
     }
+    if (has_charset) {
+        STRLEN len;
+        const char* name;
 
-  fake_study_recurse:
-    DEBUG_r(
-        RExC_study_chunk_recursed_count++;
-    );
-    DEBUG_OPTIMISE_MORE_r(
-    {
-        Perl_re_indentf( aTHX_  "study_chunk stopparen=%ld recursed_count=%lu depth=%lu recursed_depth=%lu scan=%p last=%p",
-            depth, (long)stopparen,
-            (unsigned long)RExC_study_chunk_recursed_count,
-            (unsigned long)depth, (unsigned long)recursed_depth,
-            scan,
-            last);
-        if (recursed_depth) {
-            U32 i;
-            U32 j;
-            for ( j = 0 ; j < recursed_depth ; j++ ) {
-                for ( i = 0 ; i < (U32)RExC_total_parens ; i++ ) {
-                    if (PAREN_TEST(j, i) && (!j || !PAREN_TEST(j - 1, i))) {
-                        Perl_re_printf( aTHX_ " %d",(int)i);
-                        break;
-                    }
-                }
-                if ( j + 1 < recursed_depth ) {
-                    Perl_re_printf( aTHX_  ",");
-                }
-            }
+        name = get_regex_charset_name(RExC_rx->extflags, &len);
+        if (strEQ(name, DEPENDS_PAT_MODS)) {  /* /d under UTF-8 => /u */
+            assert(RExC_utf8);
+            name = UNICODE_PAT_MODS;
+            len = sizeof(UNICODE_PAT_MODS) - 1;
         }
-        Perl_re_printf( aTHX_ "\n");
+        Copy(name, p, len, char);
+        p += len;
     }
-    );
-    while ( scan && OP(scan) != END && scan < last ){
-        UV min_subtract = 0;    /* How mmany chars to subtract from the minimum
-                                   node length to get a real minimum (because
-                                   the folded version may be shorter) */
-        bool unfolded_multi_char = FALSE;
-        /* avoid mutating ops if we are anywhere within the recursed or
-         * enframed handling for a GOSUB: the outermost level will handle it.
-         */
-        bool mutate_ok = was_mutate_ok && !(frame && frame->in_gosub);
-        /* Peephole optimizer: */
-        DEBUG_STUDYDATA("Peep", data, depth, is_inf, min, stopmin, delta);
-        DEBUG_PEEP("Peep", scan, depth, flags);
-
-
-        /* The reason we do this here is that we need to deal with things like
-         * /(?:f)(?:o)(?:o)/ which cant be dealt with by the normal EXACT
-         * parsing code, as each (?:..) is handled by a different invocation of
-         * reg() -- Yves
-         */
-        if (PL_regkind[OP(scan)] == EXACT
-            && OP(scan) != LEXACT
-            && OP(scan) != LEXACT_REQ8
-            && mutate_ok
-        ) {
-            join_exact(pRExC_state, scan, &min_subtract, &unfolded_multi_char,
-                    0, NULL, depth + 1);
+    if (has_p)
+        *p++ = KEEPCOPY_PAT_MOD; /*'p'*/
+    {
+        char ch;
+        while((ch = *fptr++)) {
+            if(reganch & 1)
+                *p++ = ch;
+            reganch >>= 1;
         }
+    }
 
-        /* Follow the next-chain of the current node and optimize
-           away all the NOTHINGs from it.
-         */
-        rck_elide_nothing(scan);
+    *p++ = ':';
+    Copy(RExC_precomp, p, pat_len, char);
+    assert ((RX_WRAPPED(Rx) - p) < 16);
+    RExC_rx->pre_prefix = p - RX_WRAPPED(Rx);
+    p += pat_len;
 
-        /* The principal pseudo-switch.  Cannot be a switch, since we look into
-         * several different things.  */
-        if ( OP(scan) == DEFINEP ) {
-            SSize_t minlen = 0;
-            SSize_t deltanext = 0;
-            SSize_t fake_last_close = 0;
-            regnode *fake_last_close_op = NULL;
-            U32 f = SCF_IN_DEFINE | (flags & SCF_TRIE_DOING_RESTUDY);
-
-            StructCopy(&zero_scan_data, &data_fake, scan_data_t);
-            scan = regnext(scan);
-            assert( OP(scan) == IFTHEN );
-            DEBUG_PEEP("expect IFTHEN", scan, depth, flags);
-
-            data_fake.last_closep= &fake_last_close;
-            data_fake.last_close_opp= &fake_last_close_op;
-            minlen = *minlenp;
-            next = regnext(scan);
-            scan = NEXTOPER(NEXTOPER(scan));
-            DEBUG_PEEP("scan", scan, depth, flags);
-            DEBUG_PEEP("next", next, depth, flags);
-
-            /* we suppose the run is continuous, last=next...
-             * NOTE we dont use the return here! */
-            /* DEFINEP study_chunk() recursion */
-            (void)study_chunk(pRExC_state, &scan, &minlen,
-                              &deltanext, next, &data_fake, stopparen,
-                              recursed_depth, NULL, f, depth+1, mutate_ok);
-
-            scan = next;
-        } else
-        if (
-            OP(scan) == BRANCH  ||
-            OP(scan) == BRANCHJ ||
-            OP(scan) == IFTHEN
-        ) {
-            next = regnext(scan);
-            code = OP(scan);
-
-            /* The op(next)==code check below is to see if we
-             * have "BRANCH-BRANCH", "BRANCHJ-BRANCHJ", "IFTHEN-IFTHEN"
-             * IFTHEN is special as it might not appear in pairs.
-             * Not sure whether BRANCH-BRANCHJ is possible, regardless
-             * we dont handle it cleanly. */
-            if (OP(next) == code || code == IFTHEN) {
-                /* NOTE - There is similar code to this block below for
-                 * handling TRIE nodes on a re-study.  If you change stuff here
-                 * check there too. */
-                SSize_t max1 = 0, min1 = OPTIMIZE_INFTY, num = 0;
-                regnode_ssc accum;
-                regnode * const startbranch=scan;
-
-                if (flags & SCF_DO_SUBSTR) {
-                    /* Cannot merge strings after this. */
-                    scan_commit(pRExC_state, data, minlenp, is_inf);
-                }
-
-                if (flags & SCF_DO_STCLASS)
-                    ssc_init_zero(pRExC_state, &accum);
-
-                while (OP(scan) == code) {
-                    SSize_t deltanext, minnext, fake_last_close = 0;
-                    regnode *fake_last_close_op = NULL;
-                    U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
-                    regnode_ssc this_class;
-
-                    DEBUG_PEEP("Branch", scan, depth, flags);
-
-                    num++;
-                    StructCopy(&zero_scan_data, &data_fake, scan_data_t);
-                    if (data) {
-                        data_fake.whilem_c = data->whilem_c;
-                        data_fake.last_closep = data->last_closep;
-                        data_fake.last_close_opp = data->last_close_opp;
-                    }
-                    else {
-                        data_fake.last_closep = &fake_last_close;
-                        data_fake.last_close_opp = &fake_last_close_op;
-                    }
-
-                    data_fake.pos_delta = delta;
-                    next = regnext(scan);
-
-                    scan = NEXTOPER(scan); /* everything */
-                    if (code != BRANCH)    /* everything but BRANCH */
-                        scan = NEXTOPER(scan);
-
-                    if (flags & SCF_DO_STCLASS) {
-                        ssc_init(pRExC_state, &this_class);
-                        data_fake.start_class = &this_class;
-                        f |= SCF_DO_STCLASS_AND;
-                    }
-                    if (flags & SCF_WHILEM_VISITED_POS)
-                        f |= SCF_WHILEM_VISITED_POS;
-
-                    /* we suppose the run is continuous, last=next...*/
-                    /* recurse study_chunk() for each BRANCH in an alternation */
-                    minnext = study_chunk(pRExC_state, &scan, minlenp,
-                                      &deltanext, next, &data_fake, stopparen,
-                                      recursed_depth, NULL, f, depth+1,
-                                      mutate_ok);
-
-                    if (min1 > minnext)
-                        min1 = minnext;
-                    if (deltanext == OPTIMIZE_INFTY) {
-                        is_inf = is_inf_internal = 1;
-                        max1 = OPTIMIZE_INFTY;
-                    } else if (max1 < minnext + deltanext)
-                        max1 = minnext + deltanext;
-                    scan = next;
-                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
-                        pars++;
-                    if (data_fake.flags & SCF_SEEN_ACCEPT) {
-                        if ( stopmin > minnext)
-                            stopmin = min + min1;
-                        flags &= ~SCF_DO_SUBSTR;
-                        if (data)
-                            data->flags |= SCF_SEEN_ACCEPT;
-                    }
-                    if (data) {
-                        if (data_fake.flags & SF_HAS_EVAL)
-                            data->flags |= SF_HAS_EVAL;
-                        data->whilem_c = data_fake.whilem_c;
-                    }
-                    if (flags & SCF_DO_STCLASS)
-                        ssc_or(pRExC_state, &accum, (regnode_charclass*)&this_class);
-                    DEBUG_STUDYDATA("end BRANCH", data, depth, is_inf, min, stopmin, delta);
-                }
-                if (code == IFTHEN && num < 2) /* Empty ELSE branch */
-                    min1 = 0;
-                if (flags & SCF_DO_SUBSTR) {
-                    data->pos_min += min1;
-                    if (data->pos_delta >= OPTIMIZE_INFTY - (max1 - min1))
-                        data->pos_delta = OPTIMIZE_INFTY;
-                    else
-                        data->pos_delta += max1 - min1;
-                    if (max1 != min1 || is_inf)
-                        data->cur_is_floating = 1;
-                }
-                min += min1;
-                if (delta == OPTIMIZE_INFTY
-                 || OPTIMIZE_INFTY - delta - (max1 - min1) < 0)
-                    delta = OPTIMIZE_INFTY;
-                else
-                    delta += max1 - min1;
-                if (flags & SCF_DO_STCLASS_OR) {
-                    ssc_or(pRExC_state, data->start_class, (regnode_charclass*) &accum);
-                    if (min1) {
-                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-                        flags &= ~SCF_DO_STCLASS;
-                    }
-                }
-                else if (flags & SCF_DO_STCLASS_AND) {
-                    if (min1) {
-                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &accum);
-                        flags &= ~SCF_DO_STCLASS;
-                    }
-                    else {
-                        /* Switch to OR mode: cache the old value of
-                         * data->start_class */
-                        INIT_AND_WITHP;
-                        StructCopy(data->start_class, and_withp, regnode_ssc);
-                        flags &= ~SCF_DO_STCLASS_AND;
-                        StructCopy(&accum, data->start_class, regnode_ssc);
-                        flags |= SCF_DO_STCLASS_OR;
-                    }
-                }
-                DEBUG_STUDYDATA("pre TRIE", data, depth, is_inf, min, stopmin, delta);
-
-                if (PERL_ENABLE_TRIE_OPTIMISATION
-                    && OP(startbranch) == BRANCH
-                    && mutate_ok
-                ) {
-                /* demq.
-
-                   Assuming this was/is a branch we are dealing with: 'scan'
-                   now points at the item that follows the branch sequence,
-                   whatever it is. We now start at the beginning of the
-                   sequence and look for subsequences of
-
-                   BRANCH->EXACT=>x1
-                   BRANCH->EXACT=>x2
-                   tail
-
-                   which would be constructed from a pattern like
-                   /A|LIST|OF|WORDS/
-
-                   If we can find such a subsequence we need to turn the first
-                   element into a trie and then add the subsequent branch exact
-                   strings to the trie.
-
-                   We have two cases
-
-                     1. patterns where the whole set of branches can be
-                        converted.
-
-                     2. patterns where only a subset can be converted.
-
-                   In case 1 we can replace the whole set with a single regop
-                   for the trie. In case 2 we need to keep the start and end
-                   branches so
-
-                     'BRANCH EXACT; BRANCH EXACT; BRANCH X'
-                     becomes BRANCH TRIE; BRANCH X;
-
-                  There is an additional case, that being where there is a
-                  common prefix, which gets split out into an EXACT like node
-                  preceding the TRIE node.
-
-                  If x(1..n)==tail then we can do a simple trie, if not we make
-                  a "jump" trie, such that when we match the appropriate word
-                  we "jump" to the appropriate tail node. Essentially we turn
-                  a nested if into a case structure of sorts.
-
-                */
-
-                    int made=0;
-                    if (!re_trie_maxbuff) {
-                        re_trie_maxbuff = get_sv(RE_TRIE_MAXBUF_NAME, 1);
-                        if (!SvIOK(re_trie_maxbuff))
-                            sv_setiv(re_trie_maxbuff, RE_TRIE_MAXBUF_INIT);
-                    }
-                    if ( SvIV(re_trie_maxbuff)>=0  ) {
-                        regnode *cur;
-                        regnode *first = (regnode *)NULL;
-                        regnode *prev = (regnode *)NULL;
-                        regnode *tail = scan;
-                        U8 trietype = 0;
-                        U32 count=0;
-
-                        /* var tail is used because there may be a TAIL
-                           regop in the way. Ie, the exacts will point to the
-                           thing following the TAIL, but the last branch will
-                           point at the TAIL. So we advance tail. If we
-                           have nested (?:) we may have to move through several
-                           tails.
-                         */
-
-                        while ( OP( tail ) == TAIL ) {
-                            /* this is the TAIL generated by (?:) */
-                            tail = regnext( tail );
-                        }
-
-
-                        DEBUG_TRIE_COMPILE_r({
-                            regprop(RExC_rx, RExC_mysv, tail, NULL, pRExC_state);
-                            Perl_re_indentf( aTHX_  "%s %" UVuf ":%s\n",
-                              depth+1,
-                              "Looking for TRIE'able sequences. Tail node is ",
-                              (UV) REGNODE_OFFSET(tail),
-                              SvPV_nolen_const( RExC_mysv )
-                            );
-                        });
-
-                        /*
-
-                            Step through the branches
-                                cur represents each branch,
-                                noper is the first thing to be matched as part
-                                      of that branch
-                                noper_next is the regnext() of that node.
-
-                            We normally handle a case like this
-                            /FOO[xyz]|BAR[pqr]/ via a "jump trie" but we also
-                            support building with NOJUMPTRIE, which restricts
-                            the trie logic to structures like /FOO|BAR/.
-
-                            If noper is a trieable nodetype then the branch is
-                            a possible optimization target. If we are building
-                            under NOJUMPTRIE then we require that noper_next is
-                            the same as scan (our current position in the regex
-                            program).
-
-                            Once we have two or more consecutive such branches
-                            we can create a trie of the EXACT's contents and
-                            stitch it in place into the program.
-
-                            If the sequence represents all of the branches in
-                            the alternation we replace the entire thing with a
-                            single TRIE node.
-
-                            Otherwise when it is a subsequence we need to
-                            stitch it in place and replace only the relevant
-                            branches. This means the first branch has to remain
-                            as it is used by the alternation logic, and its
-                            next pointer, and needs to be repointed at the item
-                            on the branch chain following the last branch we
-                            have optimized away.
-
-                            This could be either a BRANCH, in which case the
-                            subsequence is internal, or it could be the item
-                            following the branch sequence in which case the
-                            subsequence is at the end (which does not
-                            necessarily mean the first node is the start of the
-                            alternation).
-
-                            TRIE_TYPE(X) is a define which maps the optype to a
-                            trietype.
-
-                                optype          |  trietype
-                                ----------------+-----------
-                                NOTHING         | NOTHING
-                                EXACT           | EXACT
-                                EXACT_REQ8     | EXACT
-                                EXACTFU         | EXACTFU
-                                EXACTFU_REQ8   | EXACTFU
-                                EXACTFUP        | EXACTFU
-                                EXACTFAA        | EXACTFAA
-                                EXACTL          | EXACTL
-                                EXACTFLU8       | EXACTFLU8
-
-
-                        */
-#define TRIE_TYPE(X) ( ( NOTHING == (X) )                                   \
-                       ? NOTHING                                            \
-                       : ( EXACT == (X) || EXACT_REQ8 == (X) )             \
-                         ? EXACT                                            \
-                         : (     EXACTFU == (X)                             \
-                              || EXACTFU_REQ8 == (X)                       \
-                              || EXACTFUP == (X) )                          \
-                           ? EXACTFU                                        \
-                           : ( EXACTFAA == (X) )                            \
-                             ? EXACTFAA                                     \
-                             : ( EXACTL == (X) )                            \
-                               ? EXACTL                                     \
-                               : ( EXACTFLU8 == (X) )                       \
-                                 ? EXACTFLU8                                \
-                                 : 0 )
-
-                        /* dont use tail as the end marker for this traverse */
-                        for ( cur = startbranch ; cur != scan ; cur = regnext( cur ) ) {
-                            regnode * const noper = NEXTOPER( cur );
-                            U8 noper_type = OP( noper );
-                            U8 noper_trietype = TRIE_TYPE( noper_type );
-#if defined(DEBUGGING) || defined(NOJUMPTRIE)
-                            regnode * const noper_next = regnext( noper );
-                            U8 noper_next_type = (noper_next && noper_next < tail) ? OP(noper_next) : 0;
-                            U8 noper_next_trietype = (noper_next && noper_next < tail) ? TRIE_TYPE( noper_next_type ) :0;
-#endif
-
-                            DEBUG_TRIE_COMPILE_r({
-                                regprop(RExC_rx, RExC_mysv, cur, NULL, pRExC_state);
-                                Perl_re_indentf( aTHX_  "- %d:%s (%d)",
-                                   depth+1,
-                                   REG_NODE_NUM(cur), SvPV_nolen_const( RExC_mysv ), REG_NODE_NUM(cur) );
-
-                                regprop(RExC_rx, RExC_mysv, noper, NULL, pRExC_state);
-                                Perl_re_printf( aTHX_  " -> %d:%s",
-                                    REG_NODE_NUM(noper), SvPV_nolen_const(RExC_mysv));
-
-                                if ( noper_next ) {
-                                  regprop(RExC_rx, RExC_mysv, noper_next, NULL, pRExC_state);
-                                  Perl_re_printf( aTHX_ "\t=> %d:%s\t",
-                                    REG_NODE_NUM(noper_next), SvPV_nolen_const(RExC_mysv));
-                                }
-                                Perl_re_printf( aTHX_  "(First==%d,Last==%d,Cur==%d,tt==%s,ntt==%s,nntt==%s)\n",
-                                   REG_NODE_NUM(first), REG_NODE_NUM(prev), REG_NODE_NUM(cur),
-                                   PL_reg_name[trietype], PL_reg_name[noper_trietype], PL_reg_name[noper_next_trietype]
-                                );
-                            });
-
-                            /* Is noper a trieable nodetype that can be merged
-                             * with the current trie (if there is one)? */
-                            if ( noper_trietype
-                                  &&
-                                  (
-                                        ( noper_trietype == NOTHING )
-                                        || ( trietype == NOTHING )
-                                        || ( trietype == noper_trietype )
-                                  )
-#ifdef NOJUMPTRIE
-                                  && noper_next >= tail
-#endif
-                                  && count < U16_MAX)
-                            {
-                                /* Handle mergable triable node Either we are
-                                 * the first node in a new trieable sequence,
-                                 * in which case we do some bookkeeping,
-                                 * otherwise we update the end pointer. */
-                                if ( !first ) {
-                                    first = cur;
-                                    if ( noper_trietype == NOTHING ) {
-#if !defined(DEBUGGING) && !defined(NOJUMPTRIE)
-                                        regnode * const noper_next = regnext( noper );
-                                        U8 noper_next_type = (noper_next && noper_next < tail) ? OP(noper_next) : 0;
-                                        U8 noper_next_trietype = noper_next_type ? TRIE_TYPE( noper_next_type ) :0;
-#endif
-
-                                        if ( noper_next_trietype ) {
-                                            trietype = noper_next_trietype;
-                                        } else if (noper_next_type)  {
-                                            /* a NOTHING regop is 1 regop wide.
-                                             * We need at least two for a trie
-                                             * so we can't merge this in */
-                                            first = NULL;
-                                        }
-                                    } else {
-                                        trietype = noper_trietype;
-                                    }
-                                } else {
-                                    if ( trietype == NOTHING )
-                                        trietype = noper_trietype;
-                                    prev = cur;
-                                }
-                                if (first)
-                                    count++;
-                            } /* end handle mergable triable node */
-                            else {
-                                /* handle unmergable node -
-                                 * noper may either be a triable node which can
-                                 * not be tried together with the current trie,
-                                 * or a non triable node */
-                                if ( prev ) {
-                                    /* If last is set and trietype is not
-                                     * NOTHING then we have found at least two
-                                     * triable branch sequences in a row of a
-                                     * similar trietype so we can turn them
-                                     * into a trie. If/when we allow NOTHING to
-                                     * start a trie sequence this condition
-                                     * will be required, and it isn't expensive
-                                     * so we leave it in for now. */
-                                    if ( trietype && trietype != NOTHING )
-                                        make_trie( pRExC_state,
-                                                startbranch, first, cur, tail,
-                                                count, trietype, depth+1 );
-                                    prev = NULL; /* note: we clear/update
-                                                    first, trietype etc below,
-                                                    so we dont do it here */
-                                }
-                                if ( noper_trietype
-#ifdef NOJUMPTRIE
-                                     && noper_next >= tail
-#endif
-                                ){
-                                    /* noper is triable, so we can start a new
-                                     * trie sequence */
-                                    count = 1;
-                                    first = cur;
-                                    trietype = noper_trietype;
-                                } else if (first) {
-                                    /* if we already saw a first but the
-                                     * current node is not triable then we have
-                                     * to reset the first information. */
-                                    count = 0;
-                                    first = NULL;
-                                    trietype = 0;
-                                }
-                            } /* end handle unmergable node */
-                        } /* loop over branches */
-                        DEBUG_TRIE_COMPILE_r({
-                            regprop(RExC_rx, RExC_mysv, cur, NULL, pRExC_state);
-                            Perl_re_indentf( aTHX_  "- %s (%d) <SCAN FINISHED> ",
-                              depth+1, SvPV_nolen_const( RExC_mysv ), REG_NODE_NUM(cur));
-                            Perl_re_printf( aTHX_  "(First==%d, Last==%d, Cur==%d, tt==%s)\n",
-                               REG_NODE_NUM(first), REG_NODE_NUM(prev), REG_NODE_NUM(cur),
-                               PL_reg_name[trietype]
-                            );
-
-                        });
-                        if ( prev && trietype ) {
-                            if ( trietype != NOTHING ) {
-                                /* the last branch of the sequence was part of
-                                 * a trie, so we have to construct it here
-                                 * outside of the loop */
-                                made= make_trie( pRExC_state, startbranch,
-                                                 first, scan, tail, count,
-                                                 trietype, depth+1 );
-#ifdef TRIE_STUDY_OPT
-                                if ( ((made == MADE_EXACT_TRIE &&
-                                     startbranch == first)
-                                     || ( first_non_open == first )) &&
-                                     depth==0 ) {
-                                    flags |= SCF_TRIE_RESTUDY;
-                                    if ( startbranch == first
-                                         && scan >= tail )
-                                    {
-                                        RExC_seen &=~REG_TOP_LEVEL_BRANCHES_SEEN;
-                                    }
-                                }
-#endif
-                            } else {
-                                /* at this point we know whatever we have is a
-                                 * NOTHING sequence/branch AND if 'startbranch'
-                                 * is 'first' then we can turn the whole thing
-                                 * into a NOTHING
-                                 */
-                                if ( startbranch == first ) {
-                                    regnode *opt;
-                                    /* the entire thing is a NOTHING sequence,
-                                     * something like this: (?:|) So we can
-                                     * turn it into a plain NOTHING op. */
-                                    DEBUG_TRIE_COMPILE_r({
-                                        regprop(RExC_rx, RExC_mysv, cur, NULL, pRExC_state);
-                                        Perl_re_indentf( aTHX_  "- %s (%d) <NOTHING BRANCH SEQUENCE>\n",
-                                          depth+1,
-                                          SvPV_nolen_const( RExC_mysv ), REG_NODE_NUM(cur));
-
-                                    });
-                                    OP(startbranch)= NOTHING;
-                                    NEXT_OFF(startbranch)= tail - startbranch;
-                                    for ( opt= startbranch + 1; opt < tail ; opt++ )
-                                        OP(opt)= OPTIMIZED;
-                                }
-                            }
-                        } /* end if ( prev) */
-                    } /* TRIE_MAXBUF is non zero */
-                } /* do trie */
-                DEBUG_STUDYDATA("after TRIE", data, depth, is_inf, min, stopmin, delta);
-            }
-            else if ( code == BRANCHJ ) {  /* single branch is optimized. */
-                scan = NEXTOPER(NEXTOPER(scan));
-            } else			/* single branch is optimized. */
-                scan = NEXTOPER(scan);
-            continue;
-        } else if (OP(scan) == SUSPEND || OP(scan) == GOSUB) {
-            I32 paren = 0;
-            regnode *start = NULL;
-            regnode *end = NULL;
-            U32 my_recursed_depth= recursed_depth;
-
-            if (OP(scan) != SUSPEND) { /* GOSUB */
-                /* Do setup, note this code has side effects beyond
-                 * the rest of this block. Specifically setting
-                 * RExC_recurse[] must happen at least once during
-                 * study_chunk(). */
-                paren = ARG(scan);
-                RExC_recurse[ARG2L(scan)] = scan;
-                start = REGNODE_p(RExC_open_parens[paren]);
-                end   = REGNODE_p(RExC_close_parens[paren]);
-
-                /* NOTE we MUST always execute the above code, even
-                 * if we do nothing with a GOSUB */
-                if (
-                    ( flags & SCF_IN_DEFINE )
-                    ||
-                    (
-                        (is_inf_internal || is_inf || (data && data->flags & SF_IS_INF))
-                        &&
-                        ( (flags & (SCF_DO_STCLASS | SCF_DO_SUBSTR)) == 0 )
-                    )
-                ) {
-                    /* no need to do anything here if we are in a define. */
-                    /* or we are after some kind of infinite construct
-                     * so we can skip recursing into this item.
-                     * Since it is infinite we will not change the maxlen
-                     * or delta, and if we miss something that might raise
-                     * the minlen it will merely pessimise a little.
-                     *
-                     * Iow /(?(DEFINE)(?<foo>foo|food))a+(?&foo)/
-                     * might result in a minlen of 1 and not of 4,
-                     * but this doesn't make us mismatch, just try a bit
-                     * harder than we should.
-                     *
-                     * However we must assume this GOSUB is infinite, to
-                     * avoid wrongly applying other optimizations in the
-                     * enclosing scope - see GH 18096, for example.
-                     */
-                    is_inf = is_inf_internal = 1;
-                    scan= regnext(scan);
-                    continue;
-                }
-
-                if (
-                    !recursed_depth
-                    || !PAREN_TEST(recursed_depth - 1, paren)
-                ) {
-                    /* it is quite possible that there are more efficient ways
-                     * to do this. We maintain a bitmap per level of recursion
-                     * of which patterns we have entered so we can detect if a
-                     * pattern creates a possible infinite loop. When we
-                     * recurse down a level we copy the previous levels bitmap
-                     * down. When we are at recursion level 0 we zero the top
-                     * level bitmap. It would be nice to implement a different
-                     * more efficient way of doing this. In particular the top
-                     * level bitmap may be unnecessary.
-                     */
-                    if (!recursed_depth) {
-                        Zero(RExC_study_chunk_recursed, RExC_study_chunk_recursed_bytes, U8);
-                    } else {
-                        Copy(PAREN_OFFSET(recursed_depth - 1),
-                             PAREN_OFFSET(recursed_depth),
-                             RExC_study_chunk_recursed_bytes, U8);
-                    }
-                    /* we havent recursed into this paren yet, so recurse into it */
-                    DEBUG_STUDYDATA("gosub-set", data, depth, is_inf, min, stopmin, delta);
-                    PAREN_SET(recursed_depth, paren);
-                    my_recursed_depth= recursed_depth + 1;
-                } else {
-                    DEBUG_STUDYDATA("gosub-inf", data, depth, is_inf, min, stopmin, delta);
-                    /* some form of infinite recursion, assume infinite length
-                     * */
-                    if (flags & SCF_DO_SUBSTR) {
-                        scan_commit(pRExC_state, data, minlenp, is_inf);
-                        data->cur_is_floating = 1;
-                    }
-                    is_inf = is_inf_internal = 1;
-                    if (flags & SCF_DO_STCLASS_OR) /* Allow everything */
-                        ssc_anything(data->start_class);
-                    flags &= ~SCF_DO_STCLASS;
-
-                    start= NULL; /* reset start so we dont recurse later on. */
-                }
-            } else {
-                paren = stopparen;
-                start = scan + 2;
-                end = regnext(scan);
-            }
-            if (start) {
-                scan_frame *newframe;
-                assert(end);
-                if (!RExC_frame_last) {
-                    Newxz(newframe, 1, scan_frame);
-                    SAVEDESTRUCTOR_X(S_unwind_scan_frames, newframe);
-                    RExC_frame_head= newframe;
-                    RExC_frame_count++;
-                } else if (!RExC_frame_last->next_frame) {
-                    Newxz(newframe, 1, scan_frame);
-                    RExC_frame_last->next_frame= newframe;
-                    newframe->prev_frame= RExC_frame_last;
-                    RExC_frame_count++;
-                } else {
-                    newframe= RExC_frame_last->next_frame;
-                }
-                RExC_frame_last= newframe;
-
-                newframe->next_regnode = regnext(scan);
-                newframe->last_regnode = last;
-                newframe->stopparen = stopparen;
-                newframe->prev_recursed_depth = recursed_depth;
-                newframe->this_prev_frame= frame;
-                newframe->in_gosub = (
-                    (frame && frame->in_gosub) || OP(scan) == GOSUB
-                );
-
-                DEBUG_STUDYDATA("frame-new", data, depth, is_inf, min, stopmin, delta);
-                DEBUG_PEEP("fnew", scan, depth, flags);
-
-                frame = newframe;
-                scan =  start;
-                stopparen = paren;
-                last = end;
-                depth = depth + 1;
-                recursed_depth= my_recursed_depth;
-
-                continue;
-            }
-        }
-        else if (PL_regkind[OP(scan)] == EXACT && ! isEXACTFish(OP(scan))) {
-            SSize_t bytelen = STR_LEN(scan), charlen;
-            UV uc;
-            assert(bytelen);
-            if (UTF) {
-                const U8 * const s = (U8*)STRING(scan);
-                uc = utf8_to_uvchr_buf(s, s + bytelen, NULL);
-                charlen = utf8_length(s, s + bytelen);
-            } else {
-                uc = *((U8*)STRING(scan));
-                charlen = bytelen;
-            }
-            min += charlen;
-            if (flags & SCF_DO_SUBSTR) { /* Update longest substr. */
-                /* The code below prefers earlier match for fixed
-                   offset, later match for variable offset.  */
-                if (data->last_end == -1) { /* Update the start info. */
-                    data->last_start_min = data->pos_min;
-                    data->last_start_max =
-                        is_inf ? OPTIMIZE_INFTY
-                        : (data->pos_delta > OPTIMIZE_INFTY - data->pos_min)
-                            ? OPTIMIZE_INFTY : data->pos_min + data->pos_delta;
-                }
-                sv_catpvn(data->last_found, STRING(scan), bytelen);
-                if (UTF)
-                    SvUTF8_on(data->last_found);
-                {
-                    SV * const sv = data->last_found;
-                    MAGIC * const mg = SvUTF8(sv) && SvMAGICAL(sv) ?
-                        mg_find(sv, PERL_MAGIC_utf8) : NULL;
-                    if (mg && mg->mg_len >= 0)
-                        mg->mg_len += charlen;
-                }
-                data->last_end = data->pos_min + charlen;
-                data->pos_min += charlen; /* As in the first entry. */
-                data->flags &= ~SF_BEFORE_EOL;
-            }
-
-            /* ANDing the code point leaves at most it, and not in locale, and
-             * can't match null string */
-            if (flags & SCF_DO_STCLASS_AND) {
-                ssc_cp_and(data->start_class, uc);
-                ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
-                ssc_clear_locale(data->start_class);
-            }
-            else if (flags & SCF_DO_STCLASS_OR) {
-                ssc_add_cp(data->start_class, uc);
-                ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-
-                /* See commit msg 749e076fceedeb708a624933726e7989f2302f6a */
-                ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
-            }
-            flags &= ~SCF_DO_STCLASS;
-            DEBUG_STUDYDATA("end EXACT", data, depth, is_inf, min, stopmin, delta);
-        }
-        else if (PL_regkind[OP(scan)] == EXACT) {
-            /* But OP != EXACT!, so is EXACTFish */
-            SSize_t bytelen = STR_LEN(scan), charlen;
-            const U8 * s = (U8*)STRING(scan);
-
-            /* Replace a length 1 ASCII fold pair node with an ANYOFM node,
-             * with the mask set to the complement of the bit that differs
-             * between upper and lower case, and the lowest code point of the
-             * pair (which the '&' forces) */
-            if (     bytelen == 1
-                &&   isALPHA_A(*s)
-                &&  (         OP(scan) == EXACTFAA
-                     || (     OP(scan) == EXACTFU
-                         && ! HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(*s)))
-                &&   mutate_ok
-            ) {
-                U8 mask = ~ ('A' ^ 'a'); /* These differ in just one bit */
-
-                OP(scan) = ANYOFM;
-                ARG_SET(scan, *s & mask);
-                FLAGS(scan) = mask;
-                /* We're not EXACTFish any more, so restudy.
-                 * Search for "restudy" in this file to find
-                 * a comment with details. */
-                continue;
-            }
-
-            /* Search for fixed substrings supports EXACT only. */
-            if (flags & SCF_DO_SUBSTR) {
-                assert(data);
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-            }
-            charlen = UTF ? (SSize_t) utf8_length(s, s + bytelen) : bytelen;
-            if (unfolded_multi_char) {
-                RExC_seen |= REG_UNFOLDED_MULTI_SEEN;
-            }
-            min += charlen - min_subtract;
-            assert (min >= 0);
-            if ((SSize_t)min_subtract < OPTIMIZE_INFTY
-                && delta < OPTIMIZE_INFTY - (SSize_t)min_subtract
-            ) {
-                delta += min_subtract;
-            } else {
-                delta = OPTIMIZE_INFTY;
-            }
-            if (flags & SCF_DO_SUBSTR) {
-                data->pos_min += charlen - min_subtract;
-                if (data->pos_min < 0) {
-                    data->pos_min = 0;
-                }
-                if ((SSize_t)min_subtract < OPTIMIZE_INFTY
-                    && data->pos_delta < OPTIMIZE_INFTY - (SSize_t)min_subtract
-                ) {
-                    data->pos_delta += min_subtract;
-                } else {
-                    data->pos_delta = OPTIMIZE_INFTY;
-                }
-                if (min_subtract) {
-                    data->cur_is_floating = 1; /* float */
-                }
-            }
-
-            if (flags & SCF_DO_STCLASS) {
-                SV* EXACTF_invlist = make_exactf_invlist(pRExC_state, scan);
-
-                assert(EXACTF_invlist);
-                if (flags & SCF_DO_STCLASS_AND) {
-                    if (OP(scan) != EXACTFL)
-                        ssc_clear_locale(data->start_class);
-                    ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
-                    ANYOF_POSIXL_ZERO(data->start_class);
-                    ssc_intersection(data->start_class, EXACTF_invlist, FALSE);
-                }
-                else {  /* SCF_DO_STCLASS_OR */
-                    ssc_union(data->start_class, EXACTF_invlist, FALSE);
-                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-
-                    /* See commit msg 749e076fceedeb708a624933726e7989f2302f6a */
-                    ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
-                }
-                flags &= ~SCF_DO_STCLASS;
-                SvREFCNT_dec(EXACTF_invlist);
-            }
-            DEBUG_STUDYDATA("end EXACTish", data, depth, is_inf, min, stopmin, delta);
-        }
-        else if (REGNODE_VARIES(OP(scan))) {
-            SSize_t mincount, maxcount, minnext, deltanext, pos_before = 0;
-            I32 fl = 0;
-            U32 f = flags;
-            regnode * const oscan = scan;
-            regnode_ssc this_class;
-            regnode_ssc *oclass = NULL;
-            I32 next_is_eval = 0;
-
-            switch (PL_regkind[OP(scan)]) {
-            case WHILEM:		/* End of (?:...)* . */
-                scan = NEXTOPER(scan);
-                goto finish;
-            case PLUS:
-                if (flags & (SCF_DO_SUBSTR | SCF_DO_STCLASS)) {
-                    next = NEXTOPER(scan);
-                    if (   (     PL_regkind[OP(next)] == EXACT
-                            && ! isEXACTFish(OP(next)))
-                        || (flags & SCF_DO_STCLASS))
-                    {
-                        mincount = 1;
-                        maxcount = REG_INFTY;
-                        next = regnext(scan);
-                        scan = NEXTOPER(scan);
-                        goto do_curly;
-                    }
-                }
-                if (flags & SCF_DO_SUBSTR)
-                    data->pos_min++;
-                /* This will bypass the formal 'min += minnext * mincount'
-                 * calculation in the do_curly path, so assumes min width
-                 * of the PLUS payload is exactly one. */
-                min++;
-                /* FALLTHROUGH */
-            case STAR:
-                next = NEXTOPER(scan);
-
-                /* This temporary node can now be turned into EXACTFU, and
-                 * must, as regexec.c doesn't handle it */
-                if (OP(next) == EXACTFU_S_EDGE && mutate_ok) {
-                    OP(next) = EXACTFU;
-                }
-
-                if (     STR_LEN(next) == 1
-                    &&   isALPHA_A(* STRING(next))
-                    && (         OP(next) == EXACTFAA
-                        || (     OP(next) == EXACTFU
-                            && ! HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(* STRING(next))))
-                    &&   mutate_ok
-                ) {
-                    /* These differ in just one bit */
-                    U8 mask = ~ ('A' ^ 'a');
-
-                    assert(isALPHA_A(* STRING(next)));
-
-                    /* Then replace it by an ANYOFM node, with
-                    * the mask set to the complement of the
-                    * bit that differs between upper and lower
-                    * case, and the lowest code point of the
-                    * pair (which the '&' forces) */
-                    OP(next) = ANYOFM;
-                    ARG_SET(next, *STRING(next) & mask);
-                    FLAGS(next) = mask;
-                }
-
-                if (flags & SCF_DO_STCLASS) {
-                    mincount = 0;
-                    maxcount = REG_INFTY;
-                    next = regnext(scan);
-                    scan = NEXTOPER(scan);
-                    goto do_curly;
-                }
-                if (flags & SCF_DO_SUBSTR) {
-                    scan_commit(pRExC_state, data, minlenp, is_inf);
-                    /* Cannot extend fixed substrings */
-                    data->cur_is_floating = 1; /* float */
-                }
-                is_inf = is_inf_internal = 1;
-                scan = regnext(scan);
-                goto optimize_curly_tail;
-            case CURLY:
-                if (stopparen>0 && (OP(scan)==CURLYN || OP(scan)==CURLYM)
-                    && (scan->flags == stopparen))
-                {
-                    mincount = 1;
-                    maxcount = 1;
-                } else {
-                    mincount = ARG1(scan);
-                    maxcount = ARG2(scan);
-                }
-                next = regnext(scan);
-                if (OP(scan) == CURLYX) {
-                    I32 lp = (data ? *(data->last_closep) : 0);
-                    scan->flags = ((lp <= (I32)U8_MAX) ? (U8)lp : U8_MAX);
-                }
-                scan = NEXTOPER(scan) + EXTRA_STEP_2ARGS;
-                next_is_eval = (OP(scan) == EVAL);
-              do_curly:
-                if (flags & SCF_DO_SUBSTR) {
-                    if (mincount == 0)
-                        scan_commit(pRExC_state, data, minlenp, is_inf);
-                    /* Cannot extend fixed substrings */
-                    pos_before = data->pos_min;
-                }
-                if (data) {
-                    fl = data->flags;
-                    data->flags &= ~(SF_HAS_PAR|SF_IN_PAR|SF_HAS_EVAL);
-                    if (is_inf)
-                        data->flags |= SF_IS_INF;
-                }
-                if (flags & SCF_DO_STCLASS) {
-                    ssc_init(pRExC_state, &this_class);
-                    oclass = data->start_class;
-                    data->start_class = &this_class;
-                    f |= SCF_DO_STCLASS_AND;
-                    f &= ~SCF_DO_STCLASS_OR;
-                }
-                /* Exclude from super-linear cache processing any {n,m}
-                   regops for which the combination of input pos and regex
-                   pos is not enough information to determine if a match
-                   will be possible.
-
-                   For example, in the regex /foo(bar\s*){4,8}baz/ with the
-                   regex pos at the \s*, the prospects for a match depend not
-                   only on the input position but also on how many (bar\s*)
-                   repeats into the {4,8} we are. */
-               if ((mincount > 1) || (maxcount > 1 && maxcount != REG_INFTY))
-                    f &= ~SCF_WHILEM_VISITED_POS;
-
-                /* This will finish on WHILEM, setting scan, or on NULL: */
-                /* recurse study_chunk() on loop bodies */
-                minnext = study_chunk(pRExC_state, &scan, minlenp, &deltanext,
-                                  last, data, stopparen, recursed_depth, NULL,
-                                  (mincount == 0
-                                   ? (f & ~SCF_DO_SUBSTR)
-                                   : f)
-                                  , depth+1, mutate_ok);
-
-                if (data && data->flags & SCF_SEEN_ACCEPT) {
-                    if (mincount > 1)
-                        mincount = 1;
-                }
-
-                if (flags & SCF_DO_STCLASS)
-                    data->start_class = oclass;
-                if (mincount == 0 || minnext == 0) {
-                    if (flags & SCF_DO_STCLASS_OR) {
-                        ssc_or(pRExC_state, data->start_class, (regnode_charclass *) &this_class);
-                    }
-                    else if (flags & SCF_DO_STCLASS_AND) {
-                        /* Switch to OR mode: cache the old value of
-                         * data->start_class */
-                        INIT_AND_WITHP;
-                        StructCopy(data->start_class, and_withp, regnode_ssc);
-                        flags &= ~SCF_DO_STCLASS_AND;
-                        StructCopy(&this_class, data->start_class, regnode_ssc);
-                        flags |= SCF_DO_STCLASS_OR;
-                        ANYOF_FLAGS(data->start_class)
-                                                |= SSC_MATCHES_EMPTY_STRING;
-                    }
-                } else {		/* Non-zero len */
-                    if (flags & SCF_DO_STCLASS_OR) {
-                        ssc_or(pRExC_state, data->start_class, (regnode_charclass *) &this_class);
-                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-                    }
-                    else if (flags & SCF_DO_STCLASS_AND)
-                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &this_class);
-                    flags &= ~SCF_DO_STCLASS;
-                }
-                if (!scan) 		/* It was not CURLYX, but CURLY. */
-                    scan = next;
-                if (((flags & (SCF_TRIE_DOING_RESTUDY|SCF_DO_SUBSTR))==SCF_DO_SUBSTR)
-                    /* ? quantifier ok, except for (?{ ... }) */
-                    && (next_is_eval || !(mincount == 0 && maxcount == 1))
-                    && (minnext == 0) && (deltanext == 0)
-                    && data && !(data->flags & (SF_HAS_PAR|SF_IN_PAR))
-                    && maxcount <= REG_INFTY/3) /* Complement check for big
-                                                   count */
-                {
-                    _WARN_HELPER(RExC_precomp_end, packWARN(WARN_REGEXP),
-                        Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),
-                            "Quantifier unexpected on zero-length expression "
-                            "in regex m/%" UTF8f "/",
-                             UTF8fARG(UTF, RExC_precomp_end - RExC_precomp,
-                                  RExC_precomp)));
-                }
-
-                if ( ( minnext > 0 && mincount >= SSize_t_MAX / minnext )
-                    || min >= SSize_t_MAX - minnext * mincount )
-                {
-                    FAIL("Regexp out of space");
-                }
-
-                min += minnext * mincount;
-                is_inf_internal |= deltanext == OPTIMIZE_INFTY
-                         || (maxcount == REG_INFTY && minnext + deltanext > 0);
-                is_inf |= is_inf_internal;
-                if (is_inf) {
-                    delta = OPTIMIZE_INFTY;
-                } else {
-                    delta += (minnext + deltanext) * maxcount
-                             - minnext * mincount;
-                }
-
-                if (data && data->flags & SCF_SEEN_ACCEPT) {
-                    if (flags & SCF_DO_SUBSTR) {
-                        scan_commit(pRExC_state, data, minlenp, is_inf);
-                        flags &= ~SCF_DO_SUBSTR;
-                    }
-                    if (stopmin > min)
-                        stopmin = min;
-                    DEBUG_STUDYDATA("after-whilem accept", data, depth, is_inf, min, stopmin, delta);
-                }
-                /* Try powerful optimization CURLYX => CURLYN. */
-                if (  OP(oscan) == CURLYX && data
-                      && data->flags & SF_IN_PAR
-                      && !(data->flags & SF_HAS_EVAL)
-                      && !deltanext && minnext == 1
-                      && mutate_ok
-                ) {
-                    /* Try to optimize to CURLYN.  */
-                    regnode *nxt = NEXTOPER(oscan) + EXTRA_STEP_2ARGS;
-                    regnode * const nxt1 = nxt;
-#ifdef DEBUGGING
-                    regnode *nxt2;
-#endif
-
-                    /* Skip open. */
-                    nxt = regnext(nxt);
-                    if (!REGNODE_SIMPLE(OP(nxt))
-                        && !(PL_regkind[OP(nxt)] == EXACT
-                             && STR_LEN(nxt) == 1))
-                        goto nogo;
-#ifdef DEBUGGING
-                    nxt2 = nxt;
-#endif
-                    nxt = regnext(nxt);
-                    if (OP(nxt) != CLOSE)
-                        goto nogo;
-                    if (RExC_open_parens) {
-
-                        /*open->CURLYM*/
-                        RExC_open_parens[ARG(nxt1)] = REGNODE_OFFSET(oscan);
-
-                        /*close->while*/
-                        RExC_close_parens[ARG(nxt1)] = REGNODE_OFFSET(nxt) + 2;
-                    }
-                    /* Now we know that nxt2 is the only contents: */
-                    oscan->flags = (U8)ARG(nxt);
-                    OP(oscan) = CURLYN;
-                    OP(nxt1) = NOTHING;	/* was OPEN. */
-
-#ifdef DEBUGGING
-                    OP(nxt1 + 1) = OPTIMIZED; /* was count. */
-                    NEXT_OFF(nxt1+ 1) = 0; /* just for consistency. */
-                    NEXT_OFF(nxt2) = 0;	/* just for consistency with CURLY. */
-                    OP(nxt) = OPTIMIZED;	/* was CLOSE. */
-                    OP(nxt + 1) = OPTIMIZED; /* was count. */
-                    NEXT_OFF(nxt+ 1) = 0; /* just for consistency. */
-#endif
-                }
-              nogo:
-
-                /* Try optimization CURLYX => CURLYM. */
-                if (  OP(oscan) == CURLYX && data
-                      && !(data->flags & SF_HAS_PAR)
-                      && !(data->flags & SF_HAS_EVAL)
-                      && !deltanext	/* atom is fixed width */
-                      && minnext != 0	/* CURLYM can't handle zero width */
-                         /* Nor characters whose fold at run-time may be
-                          * multi-character */
-                      && ! (RExC_seen & REG_UNFOLDED_MULTI_SEEN)
-                      && mutate_ok
-                ) {
-                    /* XXXX How to optimize if data == 0? */
-                    /* Optimize to a simpler form.  */
-                    regnode *nxt = NEXTOPER(oscan) + EXTRA_STEP_2ARGS; /* OPEN */
-                    regnode *nxt2;
-
-                    OP(oscan) = CURLYM;
-                    while ( (nxt2 = regnext(nxt)) /* skip over embedded stuff*/
-                            && (OP(nxt2) != WHILEM))
-                        nxt = nxt2;
-                    OP(nxt2)  = SUCCEED; /* Whas WHILEM */
-                    /* Need to optimize away parenths. */
-                    if ((data->flags & SF_IN_PAR) && OP(nxt) == CLOSE) {
-                        /* Set the parenth number.  */
-                        regnode *nxt1 = NEXTOPER(oscan) + EXTRA_STEP_2ARGS; /* OPEN*/
-
-                        oscan->flags = (U8)ARG(nxt);
-                        if (RExC_open_parens) {
-                             /*open->CURLYM*/
-                            RExC_open_parens[ARG(nxt1)] = REGNODE_OFFSET(oscan);
-
-                            /*close->NOTHING*/
-                            RExC_close_parens[ARG(nxt1)] = REGNODE_OFFSET(nxt2)
-                                                         + 1;
-                        }
-                        OP(nxt1) = OPTIMIZED;	/* was OPEN. */
-                        OP(nxt) = OPTIMIZED;	/* was CLOSE. */
-
-#ifdef DEBUGGING
-                        OP(nxt1 + 1) = OPTIMIZED; /* was count. */
-                        OP(nxt + 1) = OPTIMIZED; /* was count. */
-                        NEXT_OFF(nxt1 + 1) = 0; /* just for consistency. */
-                        NEXT_OFF(nxt + 1) = 0; /* just for consistency. */
-#endif
-#if 0
-                        while ( nxt1 && (OP(nxt1) != WHILEM)) {
-                            regnode *nnxt = regnext(nxt1);
-                            if (nnxt == nxt) {
-                                if (reg_off_by_arg[OP(nxt1)])
-                                    ARG_SET(nxt1, nxt2 - nxt1);
-                                else if (nxt2 - nxt1 < U16_MAX)
-                                    NEXT_OFF(nxt1) = nxt2 - nxt1;
-                                else
-                                    OP(nxt) = NOTHING;	/* Cannot beautify */
-                            }
-                            nxt1 = nnxt;
-                        }
-#endif
-                        /* Optimize again: */
-                        /* recurse study_chunk() on optimised CURLYX => CURLYM */
-                        study_chunk(pRExC_state, &nxt1, minlenp, &deltanext, nxt,
-                                    NULL, stopparen, recursed_depth, NULL, 0,
-                                    depth+1, mutate_ok);
-                    }
-                    else
-                        oscan->flags = 0;
-                }
-                else if ((OP(oscan) == CURLYX)
-                         && (flags & SCF_WHILEM_VISITED_POS)
-                         /* See the comment on a similar expression above.
-                            However, this time it's not a subexpression
-                            we care about, but the expression itself. */
-                         && (maxcount == REG_INFTY)
-                         && data) {
-                    /* This stays as CURLYX, we can put the count/of pair. */
-                    /* Find WHILEM (as in regexec.c) */
-                    regnode *nxt = oscan + NEXT_OFF(oscan);
-
-                    if (OP(PREVOPER(nxt)) == NOTHING) /* LONGJMP */
-                        nxt += ARG(nxt);
-                    nxt = PREVOPER(nxt);
-                    if (nxt->flags & 0xf) {
-                        /* we've already set whilem count on this node */
-                    } else if (++data->whilem_c < 16) {
-                        assert(data->whilem_c <= RExC_whilem_seen);
-                        nxt->flags = (U8)(data->whilem_c
-                            | (RExC_whilem_seen << 4)); /* On WHILEM */
-                    }
-                }
-                if (data && fl & (SF_HAS_PAR|SF_IN_PAR))
-                    pars++;
-                if (flags & SCF_DO_SUBSTR) {
-                    SV *last_str = NULL;
-                    STRLEN last_chrs = 0;
-                    int counted = mincount != 0;
-
-                    if (data->last_end > 0 && mincount != 0) { /* Ends with a
-                                                                  string. */
-                        SSize_t b = pos_before >= data->last_start_min
-                            ? pos_before : data->last_start_min;
-                        STRLEN l;
-                        const char * const s = SvPV_const(data->last_found, l);
-                        SSize_t old = b - data->last_start_min;
-                        assert(old >= 0);
-
-                        if (UTF)
-                            old = utf8_hop_forward((U8*)s, old,
-                                               (U8 *) SvEND(data->last_found))
-                                - (U8*)s;
-                        l -= old;
-                        /* Get the added string: */
-                        last_str = newSVpvn_utf8(s  + old, l, UTF);
-                        last_chrs = UTF ? utf8_length((U8*)(s + old),
-                                            (U8*)(s + old + l)) : l;
-                        if (deltanext == 0 && pos_before == b) {
-                            /* What was added is a constant string */
-                            if (mincount > 1) {
-
-                                SvGROW(last_str, (mincount * l) + 1);
-                                repeatcpy(SvPVX(last_str) + l,
-                                          SvPVX_const(last_str), l,
-                                          mincount - 1);
-                                SvCUR_set(last_str, SvCUR(last_str) * mincount);
-                                /* Add additional parts. */
-                                SvCUR_set(data->last_found,
-                                          SvCUR(data->last_found) - l);
-                                sv_catsv(data->last_found, last_str);
-                                {
-                                    SV * sv = data->last_found;
-                                    MAGIC *mg =
-                                        SvUTF8(sv) && SvMAGICAL(sv) ?
-                                        mg_find(sv, PERL_MAGIC_utf8) : NULL;
-                                    if (mg && mg->mg_len >= 0)
-                                        mg->mg_len += last_chrs * (mincount-1);
-                                }
-                                last_chrs *= mincount;
-                                data->last_end += l * (mincount - 1);
-                            }
-                        } else {
-                            /* start offset must point into the last copy */
-                            data->last_start_min += minnext * (mincount - 1);
-                            data->last_start_max =
-                              is_inf
-                               ? OPTIMIZE_INFTY
-                               : data->last_start_max +
-                                 (maxcount - 1) * (minnext + data->pos_delta);
-                        }
-                    }
-                    /* It is counted once already... */
-                    data->pos_min += minnext * (mincount - counted);
-#if 0
-    Perl_re_printf( aTHX_  "counted=%" UVuf " deltanext=%" UVuf
-                              " OPTIMIZE_INFTY=%" UVuf " minnext=%" UVuf
-                              " maxcount=%" UVuf " mincount=%" UVuf
-                              " data->pos_delta=%" UVuf "\n",
-        (UV)counted, (UV)deltanext, (UV)OPTIMIZE_INFTY, (UV)minnext,
-        (UV)maxcount, (UV)mincount, (UV)data->pos_delta);
-    if (deltanext != OPTIMIZE_INFTY)
-        Perl_re_printf( aTHX_  "LHS=%" UVuf " RHS=%" UVuf "\n",
-            (UV)(-counted * deltanext + (minnext + deltanext) * maxcount
-            - minnext * mincount), (UV)(OPTIMIZE_INFTY - data->pos_delta));
-#endif
-                    if (deltanext == OPTIMIZE_INFTY
-                        || data->pos_delta == OPTIMIZE_INFTY
-                        || -counted * deltanext + (minnext + deltanext) * maxcount - minnext * mincount >= OPTIMIZE_INFTY - data->pos_delta)
-                        data->pos_delta = OPTIMIZE_INFTY;
-                    else
-                        data->pos_delta += - counted * deltanext +
-                        (minnext + deltanext) * maxcount - minnext * mincount;
-                    if (mincount != maxcount) {
-                         /* Cannot extend fixed substrings found inside
-                            the group.  */
-                        scan_commit(pRExC_state, data, minlenp, is_inf);
-                        if (mincount && last_str) {
-                            SV * const sv = data->last_found;
-                            MAGIC * const mg = SvUTF8(sv) && SvMAGICAL(sv) ?
-                                mg_find(sv, PERL_MAGIC_utf8) : NULL;
-
-                            if (mg)
-                                mg->mg_len = -1;
-                            sv_setsv(sv, last_str);
-                            data->last_end = data->pos_min;
-                            data->last_start_min = data->pos_min - last_chrs;
-                            data->last_start_max = is_inf
-                                ? OPTIMIZE_INFTY
-                                : data->pos_min + data->pos_delta - last_chrs;
-                        }
-                        data->cur_is_floating = 1; /* float */
-                    }
-                    SvREFCNT_dec(last_str);
-                }
-                if (data && (fl & SF_HAS_EVAL))
-                    data->flags |= SF_HAS_EVAL;
-              optimize_curly_tail:
-                rck_elide_nothing(oscan);
-                continue;
-
-            default:
-                Perl_croak(aTHX_ "panic: unexpected varying REx opcode %d",
-                                                                    OP(scan));
-            case REF:
-            case CLUMP:
-                if (flags & SCF_DO_SUBSTR) {
-                    /* Cannot expect anything... */
-                    scan_commit(pRExC_state, data, minlenp, is_inf);
-                    data->cur_is_floating = 1; /* float */
-                }
-                is_inf = is_inf_internal = 1;
-                if (flags & SCF_DO_STCLASS_OR) {
-                    if (OP(scan) == CLUMP) {
-                        /* Actually is any start char, but very few code points
-                         * aren't start characters */
-                        ssc_match_all_cp(data->start_class);
-                    }
-                    else {
-                        ssc_anything(data->start_class);
-                    }
-                }
-                flags &= ~SCF_DO_STCLASS;
-                break;
-            }
-        }
-        else if (OP(scan) == LNBREAK) {
-            if (flags & SCF_DO_STCLASS) {
-                if (flags & SCF_DO_STCLASS_AND) {
-                    ssc_intersection(data->start_class,
-                                    PL_XPosix_ptrs[_CC_VERTSPACE], FALSE);
-                    ssc_clear_locale(data->start_class);
-                    ANYOF_FLAGS(data->start_class)
-                                                &= ~SSC_MATCHES_EMPTY_STRING;
-                }
-                else if (flags & SCF_DO_STCLASS_OR) {
-                    ssc_union(data->start_class,
-                              PL_XPosix_ptrs[_CC_VERTSPACE],
-                              FALSE);
-                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-
-                    /* See commit msg for
-                     * 749e076fceedeb708a624933726e7989f2302f6a */
-                    ANYOF_FLAGS(data->start_class)
-                                                &= ~SSC_MATCHES_EMPTY_STRING;
-                }
-                flags &= ~SCF_DO_STCLASS;
-            }
-            min++;
-            if (delta != OPTIMIZE_INFTY)
-                delta++;    /* Because of the 2 char string cr-lf */
-            if (flags & SCF_DO_SUBSTR) {
-                /* Cannot expect anything... */
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-                data->pos_min += 1;
-                if (data->pos_delta != OPTIMIZE_INFTY) {
-                    data->pos_delta += 1;
-                }
-                data->cur_is_floating = 1; /* float */
-            }
-        }
-        else if (REGNODE_SIMPLE(OP(scan))) {
-
-            if (flags & SCF_DO_SUBSTR) {
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-                data->pos_min++;
-            }
-            min++;
-            if (flags & SCF_DO_STCLASS) {
-                bool invert = 0;
-                SV* my_invlist = NULL;
-                U8 namedclass;
-
-                /* See commit msg 749e076fceedeb708a624933726e7989f2302f6a */
-                ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
-
-                /* Some of the logic below assumes that switching
-                   locale on will only add false positives. */
-                switch (OP(scan)) {
-
-                default:
-#ifdef DEBUGGING
-                   Perl_croak(aTHX_ "panic: unexpected simple REx opcode %d",
-                                                                     OP(scan));
-#endif
-                case SANY:
-                    if (flags & SCF_DO_STCLASS_OR) /* Allow everything */
-                        ssc_match_all_cp(data->start_class);
-                    break;
-
-                case REG_ANY:
-                    {
-                        SV* REG_ANY_invlist = _new_invlist(2);
-                        REG_ANY_invlist = add_cp_to_invlist(REG_ANY_invlist,
-                                                            '\n');
-                        if (flags & SCF_DO_STCLASS_OR) {
-                            ssc_union(data->start_class,
-                                      REG_ANY_invlist,
-                                      TRUE /* TRUE => invert, hence all but \n
-                                            */
-                                      );
-                        }
-                        else if (flags & SCF_DO_STCLASS_AND) {
-                            ssc_intersection(data->start_class,
-                                             REG_ANY_invlist,
-                                             TRUE  /* TRUE => invert */
-                                             );
-                            ssc_clear_locale(data->start_class);
-                        }
-                        SvREFCNT_dec_NN(REG_ANY_invlist);
-                    }
-                    break;
-
-                case ANYOFD:
-                case ANYOFL:
-                case ANYOFPOSIXL:
-                case ANYOFH:
-                case ANYOFHb:
-                case ANYOFHr:
-                case ANYOFHs:
-                case ANYOF:
-                    if (flags & SCF_DO_STCLASS_AND)
-                        ssc_and(pRExC_state, data->start_class,
-                                (regnode_charclass *) scan);
-                    else
-                        ssc_or(pRExC_state, data->start_class,
-                                                          (regnode_charclass *) scan);
-                    break;
-
-                case NANYOFM: /* NANYOFM already contains the inversion of the
-                                 input ANYOF data, so, unlike things like
-                                 NPOSIXA, don't change 'invert' to TRUE */
-                    /* FALLTHROUGH */
-                case ANYOFM:
-                  {
-                    SV* cp_list = get_ANYOFM_contents(scan);
-
-                    if (flags & SCF_DO_STCLASS_OR) {
-                        ssc_union(data->start_class, cp_list, invert);
-                    }
-                    else if (flags & SCF_DO_STCLASS_AND) {
-                        ssc_intersection(data->start_class, cp_list, invert);
-                    }
-
-                    SvREFCNT_dec_NN(cp_list);
-                    break;
-                  }
-
-                case ANYOFR:
-                case ANYOFRb:
-                  {
-                    SV* cp_list = NULL;
-
-                    cp_list = _add_range_to_invlist(cp_list,
-                                        ANYOFRbase(scan),
-                                        ANYOFRbase(scan) + ANYOFRdelta(scan));
-
-                    if (flags & SCF_DO_STCLASS_OR) {
-                        ssc_union(data->start_class, cp_list, invert);
-                    }
-                    else if (flags & SCF_DO_STCLASS_AND) {
-                        ssc_intersection(data->start_class, cp_list, invert);
-                    }
-
-                    SvREFCNT_dec_NN(cp_list);
-                    break;
-                  }
-
-                case NPOSIXL:
-                    invert = 1;
-                    /* FALLTHROUGH */
-
-                case POSIXL:
-                    namedclass = classnum_to_namedclass(FLAGS(scan)) + invert;
-                    if (flags & SCF_DO_STCLASS_AND) {
-                        bool was_there = cBOOL(
-                                          ANYOF_POSIXL_TEST(data->start_class,
-                                                                 namedclass));
-                        ANYOF_POSIXL_ZERO(data->start_class);
-                        if (was_there) {    /* Do an AND */
-                            ANYOF_POSIXL_SET(data->start_class, namedclass);
-                        }
-                        /* No individual code points can now match */
-                        data->start_class->invlist
-                                                = sv_2mortal(_new_invlist(0));
-                    }
-                    else {
-                        int complement = namedclass + ((invert) ? -1 : 1);
-
-                        assert(flags & SCF_DO_STCLASS_OR);
-
-                        /* If the complement of this class was already there,
-                         * the result is that they match all code points,
-                         * (\d + \D == everything).  Remove the classes from
-                         * future consideration.  Locale is not relevant in
-                         * this case */
-                        if (ANYOF_POSIXL_TEST(data->start_class, complement)) {
-                            ssc_match_all_cp(data->start_class);
-                            ANYOF_POSIXL_CLEAR(data->start_class, namedclass);
-                            ANYOF_POSIXL_CLEAR(data->start_class, complement);
-                        }
-                        else {  /* The usual case; just add this class to the
-                                   existing set */
-                            ANYOF_POSIXL_SET(data->start_class, namedclass);
-                        }
-                    }
-                    break;
-
-                case NPOSIXA:   /* For these, we always know the exact set of
-                                   what's matched */
-                    invert = 1;
-                    /* FALLTHROUGH */
-                case POSIXA:
-                    my_invlist = invlist_clone(PL_Posix_ptrs[FLAGS(scan)], NULL);
-                    goto join_posix_and_ascii;
-
-                case NPOSIXD:
-                case NPOSIXU:
-                    invert = 1;
-                    /* FALLTHROUGH */
-                case POSIXD:
-                case POSIXU:
-                    my_invlist = invlist_clone(PL_XPosix_ptrs[FLAGS(scan)], NULL);
-
-                    /* NPOSIXD matches all upper Latin1 code points unless the
-                     * target string being matched is UTF-8, which is
-                     * unknowable until match time.  Since we are going to
-                     * invert, we want to get rid of all of them so that the
-                     * inversion will match all */
-                    if (OP(scan) == NPOSIXD) {
-                        _invlist_subtract(my_invlist, PL_UpperLatin1,
-                                          &my_invlist);
-                    }
-
-                  join_posix_and_ascii:
-
-                    if (flags & SCF_DO_STCLASS_AND) {
-                        ssc_intersection(data->start_class, my_invlist, invert);
-                        ssc_clear_locale(data->start_class);
-                    }
-                    else {
-                        assert(flags & SCF_DO_STCLASS_OR);
-                        ssc_union(data->start_class, my_invlist, invert);
-                    }
-                    SvREFCNT_dec(my_invlist);
-                }
-                if (flags & SCF_DO_STCLASS_OR)
-                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-                flags &= ~SCF_DO_STCLASS;
-            }
-        }
-        else if (PL_regkind[OP(scan)] == EOL && flags & SCF_DO_SUBSTR) {
-            data->flags |= (OP(scan) == MEOL
-                            ? SF_BEFORE_MEOL
-                            : SF_BEFORE_SEOL);
-            scan_commit(pRExC_state, data, minlenp, is_inf);
-
-        }
-        else if (  PL_regkind[OP(scan)] == BRANCHJ
-                 /* Lookbehind, or need to calculate parens/evals/stclass: */
-                   && (scan->flags || data || (flags & SCF_DO_STCLASS))
-                   && (OP(scan) == IFMATCH || OP(scan) == UNLESSM))
-        {
-            if ( !PERL_ENABLE_POSITIVE_ASSERTION_STUDY
-                || OP(scan) == UNLESSM )
-            {
-                /* Negative Lookahead/lookbehind
-                   In this case we can't do fixed string optimisation.
-                */
-
-                bool is_positive = OP(scan) == IFMATCH ? 1 : 0;
-                SSize_t deltanext, minnext;
-                SSize_t fake_last_close = 0;
-                regnode *fake_last_close_op = NULL;
-                regnode *cur_last_close_op;
-                regnode *nscan;
-                regnode_ssc intrnl;
-                U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
-
-                StructCopy(&zero_scan_data, &data_fake, scan_data_t);
-                if (data) {
-                    data_fake.whilem_c = data->whilem_c;
-                    data_fake.last_closep = data->last_closep;
-                    data_fake.last_close_opp = data->last_close_opp;
-                }
-                else {
-                    data_fake.last_closep = &fake_last_close;
-                    data_fake.last_close_opp = &fake_last_close_op;
-                }
-
-                /* remember the last_close_op we saw so we can see if
-                 * we are dealing with variable length lookbehind that
-                 * contains capturing buffers, which are considered
-                 * experimental */
-                cur_last_close_op= *(data_fake.last_close_opp);
-
-                data_fake.pos_delta = delta;
-                if ( flags & SCF_DO_STCLASS && !scan->flags
-                     && OP(scan) == IFMATCH ) { /* Lookahead */
-                    ssc_init(pRExC_state, &intrnl);
-                    data_fake.start_class = &intrnl;
-                    f |= SCF_DO_STCLASS_AND;
-                }
-                if (flags & SCF_WHILEM_VISITED_POS)
-                    f |= SCF_WHILEM_VISITED_POS;
-                next = regnext(scan);
-                nscan = NEXTOPER(NEXTOPER(scan));
-
-                /* recurse study_chunk() for lookahead body */
-                minnext = study_chunk(pRExC_state, &nscan, minlenp, &deltanext,
-                                      last, &data_fake, stopparen,
-                                      recursed_depth, NULL, f, depth+1,
-                                      mutate_ok);
-
-                if (scan->flags) {
-                    if (   deltanext < 0
-                        || deltanext > (I32) U8_MAX
-                        || minnext > (I32)U8_MAX
-                        || minnext + deltanext > (I32)U8_MAX)
-                    {
-                        FAIL2("Lookbehind longer than %" UVuf " not implemented",
-                              (UV)U8_MAX);
-                    }
-
-                    /* The 'next_off' field has been repurposed to count the
-                     * additional starting positions to try beyond the initial
-                     * one.  (This leaves it at 0 for non-variable length
-                     * matches to avoid breakage for those not using this
-                     * extension) */
-                    if (deltanext)  {
-                        scan->next_off = deltanext;
-                        if (
-                            /* See a CLOSE op inside this lookbehind? */
-                            cur_last_close_op != *(data_fake.last_close_opp)
-                            /* and not doing restudy. see: restudied */
-                            && !(flags & SCF_TRIE_DOING_RESTUDY)
-                        ) {
-                            /* this is positive variable length lookbehind with
-                             * capture buffers inside of it */
-                            ckWARNexperimental_with_arg(RExC_parse,
-                                WARN_EXPERIMENTAL__VLB,
-                                "Variable length %s lookbehind with capturing is experimental",
-                                is_positive ? "positive" : "negative");
-                        }
-                    }
-                    scan->flags = (U8)minnext + deltanext;
-                }
-                if (data) {
-                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
-                        pars++;
-                    if (data_fake.flags & SF_HAS_EVAL)
-                        data->flags |= SF_HAS_EVAL;
-                    data->whilem_c = data_fake.whilem_c;
-                }
-                if (f & SCF_DO_STCLASS_AND) {
-                    if (flags & SCF_DO_STCLASS_OR) {
-                        /* OR before, AND after: ideally we would recurse with
-                         * data_fake to get the AND applied by study of the
-                         * remainder of the pattern, and then derecurse;
-                         * *** HACK *** for now just treat as "no information".
-                         * See [perl #56690].
-                         */
-                        ssc_init(pRExC_state, data->start_class);
-                    }  else {
-                        /* AND before and after: combine and continue.  These
-                         * assertions are zero-length, so can match an EMPTY
-                         * string */
-                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &intrnl);
-                        ANYOF_FLAGS(data->start_class)
-                                                   |= SSC_MATCHES_EMPTY_STRING;
-                    }
-                }
-                DEBUG_STUDYDATA("end LOOKAROUND", data, depth, is_inf, min, stopmin, delta);
-            }
-#if PERL_ENABLE_POSITIVE_ASSERTION_STUDY
-            else {
-                /* Positive Lookahead/lookbehind
-                   In this case we can do fixed string optimisation,
-                   but we must be careful about it. Note in the case of
-                   lookbehind the positions will be offset by the minimum
-                   length of the pattern, something we won't know about
-                   until after the recurse.
-                */
-                SSize_t deltanext, fake_last_close = 0;
-                regnode *last_close_op = NULL;
-                regnode *nscan;
-                regnode_ssc intrnl;
-                U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
-                /* We use SAVEFREEPV so that when the full compile
-                    is finished perl will clean up the allocated
-                    minlens when it's all done. This way we don't
-                    have to worry about freeing them when we know
-                    they wont be used, which would be a pain.
-                 */
-                SSize_t *minnextp;
-                Newx( minnextp, 1, SSize_t );
-                SAVEFREEPV(minnextp);
-
-                if (data) {
-                    StructCopy(data, &data_fake, scan_data_t);
-                    if ((flags & SCF_DO_SUBSTR) && data->last_found) {
-                        f |= SCF_DO_SUBSTR;
-                        if (scan->flags)
-                            scan_commit(pRExC_state, &data_fake, minlenp, is_inf);
-                        data_fake.last_found=newSVsv(data->last_found);
-                    }
-                }
-                else {
-                    data_fake.last_closep = &fake_last_close;
-                    data_fake.last_close_opp = &fake_last_close_opp;
-                }
-                data_fake.flags = 0;
-                data_fake.substrs[0].flags = 0;
-                data_fake.substrs[1].flags = 0;
-                data_fake.pos_delta = delta;
-                if (is_inf)
-                    data_fake.flags |= SF_IS_INF;
-                if ( flags & SCF_DO_STCLASS && !scan->flags
-                     && OP(scan) == IFMATCH ) { /* Lookahead */
-                    ssc_init(pRExC_state, &intrnl);
-                    data_fake.start_class = &intrnl;
-                    f |= SCF_DO_STCLASS_AND;
-                }
-                if (flags & SCF_WHILEM_VISITED_POS)
-                    f |= SCF_WHILEM_VISITED_POS;
-                next = regnext(scan);
-                nscan = NEXTOPER(NEXTOPER(scan));
-
-                /* positive lookahead study_chunk() recursion */
-                *minnextp = study_chunk(pRExC_state, &nscan, minnextp,
-                                        &deltanext, last, &data_fake,
-                                        stopparen, recursed_depth, NULL,
-                                        f, depth+1, mutate_ok);
-                if (scan->flags) {
-                    assert(0);  /* This code has never been tested since this
-                                   is normally not compiled */
-                    if (   deltanext < 0
-                        || deltanext > (I32) U8_MAX
-                        || *minnextp > (I32)U8_MAX
-                        || *minnextp + deltanext > (I32)U8_MAX)
-                    {
-                        FAIL2("Lookbehind longer than %" UVuf " not implemented",
-                              (UV)U8_MAX);
-                    }
-
-                    if (deltanext) {
-                        scan->next_off = deltanext;
-                    }
-                    scan->flags = (U8)*minnextp + deltanext;
-                }
-
-                *minnextp += min;
-
-                if (f & SCF_DO_STCLASS_AND) {
-                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &intrnl);
-                    ANYOF_FLAGS(data->start_class) |= SSC_MATCHES_EMPTY_STRING;
-                }
-                if (data) {
-                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
-                        pars++;
-                    if (data_fake.flags & SF_HAS_EVAL)
-                        data->flags |= SF_HAS_EVAL;
-                    data->whilem_c = data_fake.whilem_c;
-                    if ((flags & SCF_DO_SUBSTR) && data_fake.last_found) {
-                        int i;
-                        if (RExC_rx->minlen < *minnextp)
-                            RExC_rx->minlen = *minnextp;
-                        scan_commit(pRExC_state, &data_fake, minnextp, is_inf);
-                        SvREFCNT_dec_NN(data_fake.last_found);
-
-                        for (i = 0; i < 2; i++) {
-                            if (data_fake.substrs[i].minlenp != minlenp) {
-                                data->substrs[i].min_offset =
-                                            data_fake.substrs[i].min_offset;
-                                data->substrs[i].max_offset =
-                                            data_fake.substrs[i].max_offset;
-                                data->substrs[i].minlenp =
-                                            data_fake.substrs[i].minlenp;
-                                data->substrs[i].lookbehind += scan->flags;
-                            }
-                        }
-                    }
-                }
-            }
-#endif
-        }
-        else if (OP(scan) == OPEN) {
-            if (stopparen != (I32)ARG(scan))
-                pars++;
-        }
-        else if (OP(scan) == CLOSE) {
-            if (stopparen == (I32)ARG(scan)) {
-                break;
-            }
-            if ((I32)ARG(scan) == is_par) {
-                next = regnext(scan);
-
-                if ( next && (OP(next) != WHILEM) && next < last)
-                    is_par = 0;		/* Disable optimization */
-            }
-            if (data) {
-                *(data->last_closep) = ARG(scan);
-                *(data->last_close_opp) = scan;
-            }
-        }
-        else if (OP(scan) == EVAL) {
-            if (data)
-                data->flags |= SF_HAS_EVAL;
-        }
-        else if ( PL_regkind[OP(scan)] == ENDLIKE ) {
-            if (flags & SCF_DO_SUBSTR) {
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-                flags &= ~SCF_DO_SUBSTR;
-            }
-            if (OP(scan)==ACCEPT) {
-                /* m{(*ACCEPT)x} does not have to start with 'x' */
-                flags &= ~SCF_DO_STCLASS;
-                if (data)
-                    data->flags |= SCF_SEEN_ACCEPT;
-                if (stopmin > min)
-                    stopmin = min;
-            }
-        }
-        else if (OP(scan) == COMMIT) {
-            /* gh18770: m{abc(*COMMIT)xyz} must fail on "abc abcxyz", so we
-             * must not end up with "abcxyz" as a fixed substring else we'll
-             * skip straight to attempting to match at offset 4.
-             */
-            if (flags & SCF_DO_SUBSTR) {
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-                flags &= ~SCF_DO_SUBSTR;
-            }
-        }
-        else if (OP(scan) == LOGICAL && scan->flags == 2) /* Embedded follows */
-        {
-                if (flags & SCF_DO_SUBSTR) {
-                    scan_commit(pRExC_state, data, minlenp, is_inf);
-                    data->cur_is_floating = 1; /* float */
-                }
-                is_inf = is_inf_internal = 1;
-                if (flags & SCF_DO_STCLASS_OR) /* Allow everything */
-                    ssc_anything(data->start_class);
-                flags &= ~SCF_DO_STCLASS;
-        }
-        else if (OP(scan) == GPOS) {
-            if (!(RExC_rx->intflags & PREGf_GPOS_FLOAT) &&
-                !(delta || is_inf || (data && data->pos_delta)))
-            {
-                if (!(RExC_rx->intflags & PREGf_ANCH) && (flags & SCF_DO_SUBSTR))
-                    RExC_rx->intflags |= PREGf_ANCH_GPOS;
-                if (RExC_rx->gofs < (STRLEN)min)
-                    RExC_rx->gofs = min;
-            } else {
-                RExC_rx->intflags |= PREGf_GPOS_FLOAT;
-                RExC_rx->gofs = 0;
-            }
-        }
-#ifdef TRIE_STUDY_OPT
-#ifdef FULL_TRIE_STUDY
-        else if (PL_regkind[OP(scan)] == TRIE) {
-            /* NOTE - There is similar code to this block above for handling
-               BRANCH nodes on the initial study.  If you change stuff here
-               check there too. */
-            regnode *trie_node= scan;
-            regnode *tail= regnext(scan);
-            reg_trie_data *trie = (reg_trie_data*)RExC_rxi->data->data[ ARG(scan) ];
-            SSize_t max1 = 0, min1 = OPTIMIZE_INFTY;
-            regnode_ssc accum;
-
-            if (flags & SCF_DO_SUBSTR) { /* XXXX Add !SUSPEND? */
-                /* Cannot merge strings after this. */
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-            }
-            if (flags & SCF_DO_STCLASS)
-                ssc_init_zero(pRExC_state, &accum);
-
-            if (!trie->jump) {
-                min1= trie->minlen;
-                max1= trie->maxlen;
-            } else {
-                const regnode *nextbranch= NULL;
-                U32 word;
-
-                for ( word=1 ; word <= trie->wordcount ; word++)
-                {
-                    SSize_t deltanext = 0, minnext = 0;
-                    U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
-                    SSize_t fake_last_close = 0;
-                    regnode *fake_last_close_op = NULL;
-                    regnode_ssc this_class;
-
-                    StructCopy(&zero_scan_data, &data_fake, scan_data_t);
-                    if (data) {
-                        data_fake.whilem_c = data->whilem_c;
-                        data_fake.last_closep = data->last_closep;
-                        data_fake.last_close_opp = data->last_close_opp;
-                    }
-                    else {
-                        data_fake.last_closep = &fake_last_close;
-                        data_fake.last_close_opp = &fake_last_close_op;
-                    }
-                    data_fake.pos_delta = delta;
-                    if (flags & SCF_DO_STCLASS) {
-                        ssc_init(pRExC_state, &this_class);
-                        data_fake.start_class = &this_class;
-                        f |= SCF_DO_STCLASS_AND;
-                    }
-                    if (flags & SCF_WHILEM_VISITED_POS)
-                        f |= SCF_WHILEM_VISITED_POS;
-
-                    if (trie->jump[word]) {
-                        if (!nextbranch)
-                            nextbranch = trie_node + trie->jump[0];
-                        scan= trie_node + trie->jump[word];
-                        /* We go from the jump point to the branch that follows
-                           it. Note this means we need the vestigal unused
-                           branches even though they arent otherwise used. */
-                        /* optimise study_chunk() for TRIE */
-                        minnext = study_chunk(pRExC_state, &scan, minlenp,
-                            &deltanext, (regnode *)nextbranch, &data_fake,
-                            stopparen, recursed_depth, NULL, f, depth+1,
-                            mutate_ok);
-                    }
-                    if (nextbranch && PL_regkind[OP(nextbranch)]==BRANCH)
-                        nextbranch= regnext((regnode*)nextbranch);
-
-                    if (min1 > (SSize_t)(minnext + trie->minlen))
-                        min1 = minnext + trie->minlen;
-                    if (deltanext == OPTIMIZE_INFTY) {
-                        is_inf = is_inf_internal = 1;
-                        max1 = OPTIMIZE_INFTY;
-                    } else if (max1 < (SSize_t)(minnext + deltanext + trie->maxlen))
-                        max1 = minnext + deltanext + trie->maxlen;
-
-                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
-                        pars++;
-                    if (data_fake.flags & SCF_SEEN_ACCEPT) {
-                        if ( stopmin > min + min1)
-                            stopmin = min + min1;
-                        flags &= ~SCF_DO_SUBSTR;
-                        if (data)
-                            data->flags |= SCF_SEEN_ACCEPT;
-                    }
-                    if (data) {
-                        if (data_fake.flags & SF_HAS_EVAL)
-                            data->flags |= SF_HAS_EVAL;
-                        data->whilem_c = data_fake.whilem_c;
-                    }
-                    if (flags & SCF_DO_STCLASS)
-                        ssc_or(pRExC_state, &accum, (regnode_charclass *) &this_class);
-                }
-                DEBUG_STUDYDATA("after JUMPTRIE", data, depth, is_inf, min, stopmin, delta);
-            }
-            if (flags & SCF_DO_SUBSTR) {
-                data->pos_min += min1;
-                data->pos_delta += max1 - min1;
-                if (max1 != min1 || is_inf)
-                    data->cur_is_floating = 1; /* float */
-            }
-            min += min1;
-            if (delta != OPTIMIZE_INFTY) {
-                if (OPTIMIZE_INFTY - (max1 - min1) >= delta)
-                    delta += max1 - min1;
-                else
-                    delta = OPTIMIZE_INFTY;
-            }
-            if (flags & SCF_DO_STCLASS_OR) {
-                ssc_or(pRExC_state, data->start_class, (regnode_charclass *) &accum);
-                if (min1) {
-                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-                    flags &= ~SCF_DO_STCLASS;
-                }
-            }
-            else if (flags & SCF_DO_STCLASS_AND) {
-                if (min1) {
-                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &accum);
-                    flags &= ~SCF_DO_STCLASS;
-                }
-                else {
-                    /* Switch to OR mode: cache the old value of
-                     * data->start_class */
-                    INIT_AND_WITHP;
-                    StructCopy(data->start_class, and_withp, regnode_ssc);
-                    flags &= ~SCF_DO_STCLASS_AND;
-                    StructCopy(&accum, data->start_class, regnode_ssc);
-                    flags |= SCF_DO_STCLASS_OR;
-                }
-            }
-            scan= tail;
-            DEBUG_STUDYDATA("after TRIE study", data, depth, is_inf, min, stopmin, delta);
-            continue;
-        }
-#else
-        else if (PL_regkind[OP(scan)] == TRIE) {
-            reg_trie_data *trie = (reg_trie_data*)RExC_rxi->data->data[ ARG(scan) ];
-            U8*bang=NULL;
-
-            min += trie->minlen;
-            delta += (trie->maxlen - trie->minlen);
-            flags &= ~SCF_DO_STCLASS; /* xxx */
-            if (flags & SCF_DO_SUBSTR) {
-                /* Cannot expect anything... */
-                scan_commit(pRExC_state, data, minlenp, is_inf);
-                data->pos_min += trie->minlen;
-                data->pos_delta += (trie->maxlen - trie->minlen);
-                if (trie->maxlen != trie->minlen)
-                    data->cur_is_floating = 1; /* float */
-            }
-            if (trie->jump) /* no more substrings -- for now /grr*/
-               flags &= ~SCF_DO_SUBSTR;
-        }
-
-#endif /* old or new */
-#endif /* TRIE_STUDY_OPT */
-
-        else if (OP(scan) == REGEX_SET) {
-            Perl_croak(aTHX_ "panic: %s regnode should be resolved"
-                             " before optimization", PL_reg_name[REGEX_SET]);
-        }
-
-        /* Else: zero-length, ignore. */
-        scan = regnext(scan);
-    }
-
-  finish:
-    if (frame) {
-        /* we need to unwind recursion. */
-        depth = depth - 1;
-
-        DEBUG_STUDYDATA("frame-end", data, depth, is_inf, min, stopmin, delta);
-        DEBUG_PEEP("fend", scan, depth, flags);
-
-        /* restore previous context */
-        last = frame->last_regnode;
-        scan = frame->next_regnode;
-        stopparen = frame->stopparen;
-        recursed_depth = frame->prev_recursed_depth;
-
-        RExC_frame_last = frame->prev_frame;
-        frame = frame->this_prev_frame;
-        goto fake_study_recurse;
-    }
-
-    assert(!frame);
-    DEBUG_STUDYDATA("pre-fin", data, depth, is_inf, min, stopmin, delta);
-
-    /* is this pattern infinite? Eg, consider /(a|b+)/ */
-    if (is_inf_internal)
-        delta = OPTIMIZE_INFTY;
-
-    /* deal with (*ACCEPT), Eg, consider /(foo(*ACCEPT)|bop)bar/ */
-    if (min > stopmin) {
-        /*
-        At this point 'min' represents the minimum length string we can
-        match while *ignoring* the implication of ACCEPT, and 'delta'
-        represents the difference between the minimum length and maximum
-        length, and if the pattern matches an infinitely long string
-        (consider the + and * quantifiers) then we use the special delta
-        value of OPTIMIZE_INFTY to represent it. 'stopmin' is the
-        minimum length that can be matched *and* accepted.
-
-        A pattern is accepted when matching was successful *and*
-        complete, and thus there is no further matching needing to be
-        done, no backtracking to occur, etc. Prior to the introduction
-        of ACCEPT the only opcode that signaled acceptance was the END
-        opcode, which is always the very last opcode in a regex program.
-        ACCEPT is thus conceptually an early successful return out of
-        the matching process. stopmin starts out as OPTIMIZE_INFTY to
-        represent "the entire pattern", and is ratched down to the
-        "current min" if necessary when an ACCEPT opcode is encountered.
-
-        Thus stopmin might be smaller than min if we saw an (*ACCEPT),
-        and we now need to account for it in both min and delta.
-        Consider that in a pattern /AB/ normally the min length it can
-        match can be computed as min(A)+min(B). But (*ACCEPT) means
-        that it might be something else, not even neccesarily min(A) at
-        all. Consider
-
-             A  = /(foo(*ACCEPT)|x+)/
-             B  = /whop/
-             AB = /(foo(*ACCEPT)|x+)whop/
-
-        The min for A is 1 for "x" and the delta for A is OPTIMIZE_INFTY
-        for "xxxxx...", its stopmin is 3 for "foo". The min for B is 4 for
-        "whop", and the delta of 0 as the pattern is of fixed length, the
-        stopmin would be OPTIMIZE_INFTY as it does not contain an ACCEPT.
-        When handling AB we expect to see a min of 5 for "xwhop", and a
-        delta of OPTIMIZE_INFTY for "xxxxx...whop", and a stopmin of 3
-        for "foo". This should result in a final min of 3 for "foo", and
-        a final delta of OPTIMIZE_INFTY for "xxxxx...whop".
-
-        In something like /(dude(*ACCEPT)|irk)x{3,7}/ we would have a
-        min of 6 for "irkxxx" and a delta of 4 for "irkxxxxxxx", and the
-        stop min would be 4 for "dude". This should result in a final
-        min of 4 for "dude", and a final delta of 6, for "irkxxxxxxx".
-
-        When min is smaller than stopmin then we can ignore it. In the
-        fragment /(x{10,20}(*ACCEPT)|a)b+/, we would have a min of 2,
-        and a delta of OPTIMIZE_INFTY, and a stopmin of 10. Obviously
-        the ACCEPT doesn't reduce the minimum length of the string that
-        might be matched, nor affect the maximum length.
-
-        In something like /foo(*ACCEPT)ba?r/ we would have a min of 5
-        for "foobr", a delta of 1 for "foobar", and a stopmin of 3 for
-        "foo". We currently turn this into a min of 3 for "foo" and a
-        delta of 3 for "foobar" even though technically "foobar" isn't
-        possible. ACCEPT affects some aspects of the optimizer, like
-        length computations and mandatory substring optimizations, but
-        there are other optimzations this routine perfoms that are not
-        affected and this compromise simplifies implementation.
-
-        It might be helpful to consider that this C function is called
-        recursively on the pattern in a bottom up fashion, and that the
-        min returned by a nested call may be marked as coming from an
-        ACCEPT, causing its callers to treat the returned min as a
-        stopmin as the recursion unwinds. Thus a single ACCEPT can affect
-        multiple calls into this function in different ways.
-        */
-
-        if (OPTIMIZE_INFTY - delta >= min - stopmin)
-            delta += min - stopmin;
-        else
-            delta = OPTIMIZE_INFTY;
-        min = stopmin;
-    }
-
-    *scanp = scan;
-    *deltap = delta;
-
-    if (flags & SCF_DO_SUBSTR && is_inf)
-        data->pos_delta = OPTIMIZE_INFTY - data->pos_min;
-    if (is_par > (I32)U8_MAX)
-        is_par = 0;
-    if (is_par && pars==1 && data) {
-        data->flags |= SF_IN_PAR;
-        data->flags &= ~SF_HAS_PAR;
-    }
-    else if (pars && data) {
-        data->flags |= SF_HAS_PAR;
-        data->flags &= ~SF_IN_PAR;
-    }
-    if (flags & SCF_DO_STCLASS_OR)
-        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
-    if (flags & SCF_TRIE_RESTUDY)
-        data->flags |= 	SCF_TRIE_RESTUDY;
-
-
-    if (!(RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN)) {
-        if (min > OPTIMIZE_INFTY - delta)
-            RExC_maxlen = OPTIMIZE_INFTY;
-        else if (RExC_maxlen < min + delta)
-            RExC_maxlen = min + delta;
-    }
-    DEBUG_STUDYDATA("post-fin", data, depth, is_inf, min, stopmin, delta);
-    return min;
-}
-
-/* add a data member to the struct reg_data attached to this regex, it should
- * always return a non-zero return. the 's' argument is the type of the items
- * being added and the n is the number of items. The length of 's' should match
- * the number of items. */
-STATIC U32
-S_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n)
-{
-    U32 count = RExC_rxi->data ? RExC_rxi->data->count : 1;
-
-    PERL_ARGS_ASSERT_ADD_DATA;
-
-    /* in the below expression we have (count + n - 1), the minus one is there
-     * because the struct that we allocate already contains a slot for 1 data
-     * item, so we do not need to allocate it the first time. IOW, the
-     * sizeof(*RExC_rxi->data) already accounts for one of the elements we need
-     * to allocate. See struct reg_data in regcomp.h
-     */
-    Renewc(RExC_rxi->data,
-           sizeof(*RExC_rxi->data) + (sizeof(void*) * (count + n - 1)),
-           char, struct reg_data);
-    /* however in the data->what expression we use (count + n) and do not
-     * subtract one from the result because the data structure contains a
-     * pointer to an array, and does not allocate the first element as part of
-     * the data struct. */
-    if (count > 1)
-        Renew(RExC_rxi->data->what, (count + n), U8);
-    else {
-        /* when count == 1 it means we have not initialized anything.
-         * we always fill the 0 slot of the data array with a '%' entry, which
-         * means "zero" (all the other types are letters) which exists purely
-         * so the return from add_data is ALWAYS true, so we can tell it apart
-         * from a "no value" idx=0 in places where we would return an index
-         * into add_data.  This is particularly important with the new "single
-         * pass, usually, but not always" strategy that we use, where the code
-         * will use a 0 to represent "not able to compute this yet".
-         */
-        Newx(RExC_rxi->data->what, n+1, U8);
-        /* fill in the placeholder slot of 0 with a what of '%', we use
-         * this because it sorta looks like a zero (0/0) and it is not a letter
-         * like any of the other "whats", this type should never be created
-         * any other way but here. '%' happens to also not appear in this
-         * file for any other reason (at the time of writing this comment)*/
-        RExC_rxi->data->what[0]= '%';
-        RExC_rxi->data->data[0]= NULL;
-    }
-    RExC_rxi->data->count = count + n;
-    Copy(s, RExC_rxi->data->what + count, n, U8);
-    assert(count>0);
-    return count;
-}
-
-/*XXX: todo make this not included in a non debugging perl, but appears to be
- * used anyway there, in 'use re' */
-#ifndef PERL_IN_XSUB_RE
-void
-Perl_reginitcolors(pTHX)
-{
-    const char * const s = PerlEnv_getenv("PERL_RE_COLORS");
-    if (s) {
-        char *t = savepv(s);
-        int i = 0;
-        PL_colors[0] = t;
-        while (++i < 6) {
-            t = strchr(t, '\t');
-            if (t) {
-                *t = '\0';
-                PL_colors[i] = ++t;
-            }
-            else
-                PL_colors[i] = t = (char *)"";
-        }
-    } else {
-        int i = 0;
-        while (i < 6)
-            PL_colors[i++] = (char *)"";
-    }
-    PL_colorset = 1;
-}
-#endif
-
-
-#ifdef TRIE_STUDY_OPT
-/* search for "restudy" in this file for a detailed explanation */
-#define CHECK_RESTUDY_GOTO_butfirst(dOsomething)            \
-    STMT_START {                                            \
-        if (                                                \
-              (data.flags & SCF_TRIE_RESTUDY)               \
-              && ! restudied++                              \
-        ) {                                                 \
-            dOsomething;                                    \
-            goto reStudy;                                   \
-        }                                                   \
-    } STMT_END
-#else
-#define CHECK_RESTUDY_GOTO_butfirst
-#endif
-
-/*
- * pregcomp - compile a regular expression into internal code
- *
- * Decides which engine's compiler to call based on the hint currently in
- * scope
- */
-
-#ifndef PERL_IN_XSUB_RE
-
-/* return the currently in-scope regex engine (or the default if none)  */
-
-regexp_engine const *
-Perl_current_re_engine(pTHX)
-{
-    if (IN_PERL_COMPILETIME) {
-        HV * const table = GvHV(PL_hintgv);
-        SV **ptr;
-
-        if (!table || !(PL_hints & HINT_LOCALIZE_HH))
-            return &PL_core_reg_engine;
-        ptr = hv_fetchs(table, "regcomp", FALSE);
-        if ( !(ptr && SvIOK(*ptr) && SvIV(*ptr)))
-            return &PL_core_reg_engine;
-        return INT2PTR(regexp_engine*, SvIV(*ptr));
-    }
-    else {
-        SV *ptr;
-        if (!PL_curcop->cop_hints_hash)
-            return &PL_core_reg_engine;
-        ptr = cop_hints_fetch_pvs(PL_curcop, "regcomp", 0);
-        if ( !(ptr && SvIOK(ptr) && SvIV(ptr)))
-            return &PL_core_reg_engine;
-        return INT2PTR(regexp_engine*, SvIV(ptr));
-    }
-}
-
-
-REGEXP *
-Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags)
-{
-    regexp_engine const *eng = current_re_engine();
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_PREGCOMP;
-
-    /* Dispatch a request to compile a regexp to correct regexp engine. */
-    DEBUG_COMPILE_r({
-        Perl_re_printf( aTHX_  "Using engine %" UVxf "\n",
-                        PTR2UV(eng));
-    });
-    return CALLREGCOMP_ENG(eng, pattern, flags);
-}
-#endif
-
-/*
-=for apidoc re_compile
-
-Compile the regular expression pattern C<pattern>, returning a pointer to the
-compiled object for later matching with the internal regex engine.
-
-This function is typically used by a custom regexp engine C<.comp()> function
-to hand off to the core regexp engine those patterns it doesn't want to handle
-itself (typically passing through the same flags it was called with).  In
-almost all other cases, a regexp should be compiled by calling L</C<pregcomp>>
-to compile using the currently active regexp engine.
-
-If C<pattern> is already a C<REGEXP>, this function does nothing but return a
-pointer to the input.  Otherwise the PV is extracted and treated like a string
-representing a pattern.  See L<perlre>.
-
-The possible flags for C<rx_flags> are documented in L<perlreapi>.  Their names
-all begin with C<RXf_>.
-
-=cut
-
- * public entry point for the perl core's own regex compiling code.
- * It's actually a wrapper for Perl_re_op_compile that only takes an SV
- * pattern rather than a list of OPs, and uses the internal engine rather
- * than the current one */
-
-REGEXP *
-Perl_re_compile(pTHX_ SV * const pattern, U32 rx_flags)
-{
-    SV *pat = pattern; /* defeat constness! */
-
-    PERL_ARGS_ASSERT_RE_COMPILE;
-
-    return Perl_re_op_compile(aTHX_ &pat, 1, NULL,
-#ifdef PERL_IN_XSUB_RE
-                                &my_reg_engine,
-#else
-                                &PL_core_reg_engine,
-#endif
-                                NULL, NULL, rx_flags, 0);
-}
-
-static void
-S_free_codeblocks(pTHX_ struct reg_code_blocks *cbs)
-{
-    int n;
-
-    if (--cbs->refcnt > 0)
-        return;
-    for (n = 0; n < cbs->count; n++) {
-        REGEXP *rx = cbs->cb[n].src_regex;
-        if (rx) {
-            cbs->cb[n].src_regex = NULL;
-            SvREFCNT_dec_NN(rx);
-        }
-    }
-    Safefree(cbs->cb);
-    Safefree(cbs);
-}
-
-
-static struct reg_code_blocks *
-S_alloc_code_blocks(pTHX_  int ncode)
-{
-     struct reg_code_blocks *cbs;
-    Newx(cbs, 1, struct reg_code_blocks);
-    cbs->count = ncode;
-    cbs->refcnt = 1;
-    SAVEDESTRUCTOR_X(S_free_codeblocks, cbs);
-    if (ncode)
-        Newx(cbs->cb, ncode, struct reg_code_block);
-    else
-        cbs->cb = NULL;
-    return cbs;
-}
-
-
-/* upgrade pattern pat_p of length plen_p to UTF8, and if there are code
- * blocks, recalculate the indices. Update pat_p and plen_p in-place to
- * point to the realloced string and length.
- *
- * This is essentially a copy of Perl_bytes_to_utf8() with the code index
- * stuff added */
-
-static void
-S_pat_upgrade_to_utf8(pTHX_ RExC_state_t * const pRExC_state,
-                    char **pat_p, STRLEN *plen_p, int num_code_blocks)
-{
-    U8 *const src = (U8*)*pat_p;
-    U8 *dst, *d;
-    int n=0;
-    STRLEN s = 0;
-    bool do_end = 0;
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    DEBUG_PARSE_r(Perl_re_printf( aTHX_
-        "UTF8 mismatch! Converting to utf8 for resizing and compile\n"));
-
-    /* 1 for each byte + 1 for each byte that expands to two, + trailing NUL */
-    Newx(dst, *plen_p + variant_under_utf8_count(src, src + *plen_p) + 1, U8);
-    d = dst;
-
-    while (s < *plen_p) {
-        append_utf8_from_native_byte(src[s], &d);
-
-        if (n < num_code_blocks) {
-            assert(pRExC_state->code_blocks);
-            if (!do_end && pRExC_state->code_blocks->cb[n].start == s) {
-                pRExC_state->code_blocks->cb[n].start = d - dst - 1;
-                assert(*(d - 1) == '(');
-                do_end = 1;
-            }
-            else if (do_end && pRExC_state->code_blocks->cb[n].end == s) {
-                pRExC_state->code_blocks->cb[n].end = d - dst - 1;
-                assert(*(d - 1) == ')');
-                do_end = 0;
-                n++;
-            }
-        }
-        s++;
-    }
-    *d = '\0';
-    *plen_p = d - dst;
-    *pat_p = (char*) dst;
-    SAVEFREEPV(*pat_p);
-    RExC_orig_utf8 = RExC_utf8 = 1;
-}
-
-
-
-/* S_concat_pat(): concatenate a list of args to the pattern string pat,
- * while recording any code block indices, and handling overloading,
- * nested qr// objects etc.  If pat is null, it will allocate a new
- * string, or just return the first arg, if there's only one.
- *
- * Returns the malloced/updated pat.
- * patternp and pat_count is the array of SVs to be concatted;
- * oplist is the optional list of ops that generated the SVs;
- * recompile_p is a pointer to a boolean that will be set if
- *   the regex will need to be recompiled.
- * delim, if non-null is an SV that will be inserted between each element
- */
-
-static SV*
-S_concat_pat(pTHX_ RExC_state_t * const pRExC_state,
-                SV *pat, SV ** const patternp, int pat_count,
-                OP *oplist, bool *recompile_p, SV *delim)
-{
-    SV **svp;
-    int n = 0;
-    bool use_delim = FALSE;
-    bool alloced = FALSE;
-
-    /* if we know we have at least two args, create an empty string,
-     * then concatenate args to that. For no args, return an empty string */
-    if (!pat && pat_count != 1) {
-        pat = newSVpvs("");
-        SAVEFREESV(pat);
-        alloced = TRUE;
-    }
-
-    for (svp = patternp; svp < patternp + pat_count; svp++) {
-        SV *sv;
-        SV *rx  = NULL;
-        STRLEN orig_patlen = 0;
-        bool code = 0;
-        SV *msv = use_delim ? delim : *svp;
-        if (!msv) msv = &PL_sv_undef;
-
-        /* if we've got a delimiter, we go round the loop twice for each
-         * svp slot (except the last), using the delimiter the second
-         * time round */
-        if (use_delim) {
-            svp--;
-            use_delim = FALSE;
-        }
-        else if (delim)
-            use_delim = TRUE;
-
-        if (SvTYPE(msv) == SVt_PVAV) {
-            /* we've encountered an interpolated array within
-             * the pattern, e.g. /...@a..../. Expand the list of elements,
-             * then recursively append elements.
-             * The code in this block is based on S_pushav() */
-
-            AV *const av = (AV*)msv;
-            const SSize_t maxarg = AvFILL(av) + 1;
-            SV **array;
-
-            if (oplist) {
-                assert(oplist->op_type == OP_PADAV
-                    || oplist->op_type == OP_RV2AV);
-                oplist = OpSIBLING(oplist);
-            }
-
-            if (SvRMAGICAL(av)) {
-                SSize_t i;
-
-                Newx(array, maxarg, SV*);
-                SAVEFREEPV(array);
-                for (i=0; i < maxarg; i++) {
-                    SV ** const svp = av_fetch(av, i, FALSE);
-                    array[i] = svp ? *svp : &PL_sv_undef;
-                }
-            }
-            else
-                array = AvARRAY(av);
-
-            pat = S_concat_pat(aTHX_ pRExC_state, pat,
-                                array, maxarg, NULL, recompile_p,
-                                /* $" */
-                                GvSV((gv_fetchpvs("\"", GV_ADDMULTI, SVt_PV))));
-
-            continue;
-        }
-
-
-        /* we make the assumption here that each op in the list of
-         * op_siblings maps to one SV pushed onto the stack,
-         * except for code blocks, with have both an OP_NULL and
-         * an OP_CONST.
-         * This allows us to match up the list of SVs against the
-         * list of OPs to find the next code block.
-         *
-         * Note that       PUSHMARK PADSV PADSV ..
-         * is optimised to
-         *                 PADRANGE PADSV  PADSV  ..
-         * so the alignment still works. */
-
-        if (oplist) {
-            if (oplist->op_type == OP_NULL
-                && (oplist->op_flags & OPf_SPECIAL))
-            {
-                assert(n < pRExC_state->code_blocks->count);
-                pRExC_state->code_blocks->cb[n].start = pat ? SvCUR(pat) : 0;
-                pRExC_state->code_blocks->cb[n].block = oplist;
-                pRExC_state->code_blocks->cb[n].src_regex = NULL;
-                n++;
-                code = 1;
-                oplist = OpSIBLING(oplist); /* skip CONST */
-                assert(oplist);
-            }
-            oplist = OpSIBLING(oplist);;
-        }
-
-        /* apply magic and QR overloading to arg */
-
-        SvGETMAGIC(msv);
-        if (SvROK(msv) && SvAMAGIC(msv)) {
-            SV *sv = AMG_CALLunary(msv, regexp_amg);
-            if (sv) {
-                if (SvROK(sv))
-                    sv = SvRV(sv);
-                if (SvTYPE(sv) != SVt_REGEXP)
-                    Perl_croak(aTHX_ "Overloaded qr did not return a REGEXP");
-                msv = sv;
-            }
-        }
-
-        /* try concatenation overload ... */
-        if (pat && (SvAMAGIC(pat) || SvAMAGIC(msv)) &&
-                (sv = amagic_call(pat, msv, concat_amg, AMGf_assign)))
-        {
-            sv_setsv(pat, sv);
-            /* overloading involved: all bets are off over literal
-             * code. Pretend we haven't seen it */
-            if (n)
-                pRExC_state->code_blocks->count -= n;
-            n = 0;
-        }
-        else {
-            /* ... or failing that, try "" overload */
-            while (SvAMAGIC(msv)
-                    && (sv = AMG_CALLunary(msv, string_amg))
-                    && sv != msv
-                    &&  !(   SvROK(msv)
-                          && SvROK(sv)
-                          && SvRV(msv) == SvRV(sv))
-            ) {
-                msv = sv;
-                SvGETMAGIC(msv);
-            }
-            if (SvROK(msv) && SvTYPE(SvRV(msv)) == SVt_REGEXP)
-                msv = SvRV(msv);
-
-            if (pat) {
-                /* this is a partially unrolled
-                 *     sv_catsv_nomg(pat, msv);
-                 * that allows us to adjust code block indices if
-                 * needed */
-                STRLEN dlen;
-                char *dst = SvPV_force_nomg(pat, dlen);
-                orig_patlen = dlen;
-                if (SvUTF8(msv) && !SvUTF8(pat)) {
-                    S_pat_upgrade_to_utf8(aTHX_ pRExC_state, &dst, &dlen, n);
-                    sv_setpvn(pat, dst, dlen);
-                    SvUTF8_on(pat);
-                }
-                sv_catsv_nomg(pat, msv);
-                rx = msv;
-            }
-            else {
-                /* We have only one SV to process, but we need to verify
-                 * it is properly null terminated or we will fail asserts
-                 * later. In theory we probably shouldn't get such SV's,
-                 * but if we do we should handle it gracefully. */
-                if ( SvTYPE(msv) != SVt_PV || (SvLEN(msv) > SvCUR(msv) && *(SvEND(msv)) == 0) || SvIsCOW_shared_hash(msv) ) {
-                    /* not a string, or a string with a trailing null */
-                    pat = msv;
-                } else {
-                    /* a string with no trailing null, we need to copy it
-                     * so it has a trailing null */
-                    pat = sv_2mortal(newSVsv(msv));
-                }
-            }
-
-            if (code)
-                pRExC_state->code_blocks->cb[n-1].end = SvCUR(pat)-1;
-        }
-
-        /* extract any code blocks within any embedded qr//'s */
-        if (rx && SvTYPE(rx) == SVt_REGEXP
-            && RX_ENGINE((REGEXP*)rx)->op_comp)
-        {
-
-            RXi_GET_DECL(ReANY((REGEXP *)rx), ri);
-            if (ri->code_blocks && ri->code_blocks->count) {
-                int i;
-                /* the presence of an embedded qr// with code means
-                 * we should always recompile: the text of the
-                 * qr// may not have changed, but it may be a
-                 * different closure than last time */
-                *recompile_p = 1;
-                if (pRExC_state->code_blocks) {
-                    int new_count = pRExC_state->code_blocks->count
-                            + ri->code_blocks->count;
-                    Renew(pRExC_state->code_blocks->cb,
-                            new_count, struct reg_code_block);
-                    pRExC_state->code_blocks->count = new_count;
-                }
-                else
-                    pRExC_state->code_blocks = S_alloc_code_blocks(aTHX_
-                                                    ri->code_blocks->count);
-
-                for (i=0; i < ri->code_blocks->count; i++) {
-                    struct reg_code_block *src, *dst;
-                    STRLEN offset =  orig_patlen
-                        + ReANY((REGEXP *)rx)->pre_prefix;
-                    assert(n < pRExC_state->code_blocks->count);
-                    src = &ri->code_blocks->cb[i];
-                    dst = &pRExC_state->code_blocks->cb[n];
-                    dst->start	    = src->start + offset;
-                    dst->end	    = src->end   + offset;
-                    dst->block	    = src->block;
-                    dst->src_regex  = (REGEXP*) SvREFCNT_inc( (SV*)
-                                            src->src_regex
-                                                ? src->src_regex
-                                                : (REGEXP*)rx);
-                    n++;
-                }
-            }
-        }
-    }
-    /* avoid calling magic multiple times on a single element e.g. =~ $qr */
-    if (alloced)
-        SvSETMAGIC(pat);
-
-    return pat;
-}
-
-
-
-/* see if there are any run-time code blocks in the pattern.
- * False positives are allowed */
-
-static bool
-S_has_runtime_code(pTHX_ RExC_state_t * const pRExC_state,
-                    char *pat, STRLEN plen)
-{
-    int n = 0;
-    STRLEN s;
-
-    PERL_UNUSED_CONTEXT;
-
-    for (s = 0; s < plen; s++) {
-        if (   pRExC_state->code_blocks
-            && n < pRExC_state->code_blocks->count
-            && s == pRExC_state->code_blocks->cb[n].start)
-        {
-            s = pRExC_state->code_blocks->cb[n].end;
-            n++;
-            continue;
-        }
-        /* TODO ideally should handle [..], (#..), /#.../x to reduce false
-         * positives here */
-        if (pat[s] == '(' && s+2 <= plen && pat[s+1] == '?' &&
-            (pat[s+2] == '{'
-                || (s + 2 <= plen && pat[s+2] == '?' && pat[s+3] == '{'))
-        )
-            return 1;
-    }
-    return 0;
-}
-
-/* Handle run-time code blocks. We will already have compiled any direct
- * or indirect literal code blocks. Now, take the pattern 'pat' and make a
- * copy of it, but with any literal code blocks blanked out and
- * appropriate chars escaped; then feed it into
- *
- *    eval "qr'modified_pattern'"
- *
- * For example,
- *
- *       a\bc(?{"this was literal"})def'ghi\\jkl(?{"this is runtime"})mno
- *
- * becomes
- *
- *    qr'a\\bc_______________________def\'ghi\\\\jkl(?{"this is runtime"})mno'
- *
- * After eval_sv()-ing that, grab any new code blocks from the returned qr
- * and merge them with any code blocks of the original regexp.
- *
- * If the pat is non-UTF8, while the evalled qr is UTF8, don't merge;
- * instead, just save the qr and return FALSE; this tells our caller that
- * the original pattern needs upgrading to utf8.
- */
-
-static bool
-S_compile_runtime_code(pTHX_ RExC_state_t * const pRExC_state,
-    char *pat, STRLEN plen)
-{
-    SV *qr;
-
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    if (pRExC_state->runtime_code_qr) {
-        /* this is the second time we've been called; this should
-         * only happen if the main pattern got upgraded to utf8
-         * during compilation; re-use the qr we compiled first time
-         * round (which should be utf8 too)
-         */
-        qr = pRExC_state->runtime_code_qr;
-        pRExC_state->runtime_code_qr = NULL;
-        assert(RExC_utf8 && SvUTF8(qr));
-    }
-    else {
-        int n = 0;
-        STRLEN s;
-        char *p, *newpat;
-        int newlen = plen + 7; /* allow for "qr''xx\0" extra chars */
-        SV *sv, *qr_ref;
-        dSP;
-
-        /* determine how many extra chars we need for ' and \ escaping */
-        for (s = 0; s < plen; s++) {
-            if (pat[s] == '\'' || pat[s] == '\\')
-                newlen++;
-        }
-
-        Newx(newpat, newlen, char);
-        p = newpat;
-        *p++ = 'q'; *p++ = 'r'; *p++ = '\'';
-
-        for (s = 0; s < plen; s++) {
-            if (   pRExC_state->code_blocks
-                && n < pRExC_state->code_blocks->count
-                && s == pRExC_state->code_blocks->cb[n].start)
-            {
-                /* blank out literal code block so that they aren't
-                 * recompiled: eg change from/to:
-                 *     /(?{xyz})/
-                 *     /(?=====)/
-                 * and
-                 *     /(??{xyz})/
-                 *     /(?======)/
-                 * and
-                 *     /(?(?{xyz}))/
-                 *     /(?(?=====))/
-                */
-                assert(pat[s]   == '(');
-                assert(pat[s+1] == '?');
-                *p++ = '(';
-                *p++ = '?';
-                s += 2;
-                while (s < pRExC_state->code_blocks->cb[n].end) {
-                    *p++ = '=';
-                    s++;
-                }
-                *p++ = ')';
-                n++;
-                continue;
-            }
-            if (pat[s] == '\'' || pat[s] == '\\')
-                *p++ = '\\';
-            *p++ = pat[s];
-        }
-        *p++ = '\'';
-        if (pRExC_state->pm_flags & RXf_PMf_EXTENDED) {
-            *p++ = 'x';
-            if (pRExC_state->pm_flags & RXf_PMf_EXTENDED_MORE) {
-                *p++ = 'x';
-            }
-        }
-        *p++ = '\0';
-        DEBUG_COMPILE_r({
-            Perl_re_printf( aTHX_
-                "%sre-parsing pattern for runtime code:%s %s\n",
-                PL_colors[4], PL_colors[5], newpat);
-        });
-
-        sv = newSVpvn_flags(newpat, p-newpat-1, RExC_utf8 ? SVf_UTF8 : 0);
-        Safefree(newpat);
-
-        ENTER;
-        SAVETMPS;
-        save_re_context();
-        PUSHSTACKi(PERLSI_REQUIRE);
-        /* G_RE_REPARSING causes the toker to collapse \\ into \ when
-         * parsing qr''; normally only q'' does this. It also alters
-         * hints handling */
-        eval_sv(sv, G_SCALAR|G_RE_REPARSING);
-        SvREFCNT_dec_NN(sv);
-        SPAGAIN;
-        qr_ref = POPs;
-        PUTBACK;
-        {
-            SV * const errsv = ERRSV;
-            if (SvTRUE_NN(errsv))
-                /* use croak_sv ? */
-                Perl_croak_nocontext("%" SVf, SVfARG(errsv));
-        }
-        assert(SvROK(qr_ref));
-        qr = SvRV(qr_ref);
-        assert(SvTYPE(qr) == SVt_REGEXP && RX_ENGINE((REGEXP*)qr)->op_comp);
-        /* the leaving below frees the tmp qr_ref.
-         * Give qr a life of its own */
-        SvREFCNT_inc(qr);
-        POPSTACK;
-        FREETMPS;
-        LEAVE;
-
-    }
-
-    if (!RExC_utf8 && SvUTF8(qr)) {
-        /* first time through; the pattern got upgraded; save the
-         * qr for the next time through */
-        assert(!pRExC_state->runtime_code_qr);
-        pRExC_state->runtime_code_qr = qr;
-        return 0;
-    }
-
-
-    /* extract any code blocks within the returned qr//  */
-
-
-    /* merge the main (r1) and run-time (r2) code blocks into one */
-    {
-        RXi_GET_DECL(ReANY((REGEXP *)qr), r2);
-        struct reg_code_block *new_block, *dst;
-        RExC_state_t * const r1 = pRExC_state; /* convenient alias */
-        int i1 = 0, i2 = 0;
-        int r1c, r2c;
-
-        if (!r2->code_blocks || !r2->code_blocks->count) /* we guessed wrong */
-        {
-            SvREFCNT_dec_NN(qr);
-            return 1;
-        }
-
-        if (!r1->code_blocks)
-            r1->code_blocks = S_alloc_code_blocks(aTHX_ 0);
-
-        r1c = r1->code_blocks->count;
-        r2c = r2->code_blocks->count;
-
-        Newx(new_block, r1c + r2c, struct reg_code_block);
-
-        dst = new_block;
-
-        while (i1 < r1c || i2 < r2c) {
-            struct reg_code_block *src;
-            bool is_qr = 0;
-
-            if (i1 == r1c) {
-                src = &r2->code_blocks->cb[i2++];
-                is_qr = 1;
-            }
-            else if (i2 == r2c)
-                src = &r1->code_blocks->cb[i1++];
-            else if (  r1->code_blocks->cb[i1].start
-                     < r2->code_blocks->cb[i2].start)
-            {
-                src = &r1->code_blocks->cb[i1++];
-                assert(src->end < r2->code_blocks->cb[i2].start);
-            }
-            else {
-                assert(  r1->code_blocks->cb[i1].start
-                       > r2->code_blocks->cb[i2].start);
-                src = &r2->code_blocks->cb[i2++];
-                is_qr = 1;
-                assert(src->end < r1->code_blocks->cb[i1].start);
-            }
-
-            assert(pat[src->start] == '(');
-            assert(pat[src->end]   == ')');
-            dst->start	    = src->start;
-            dst->end	    = src->end;
-            dst->block	    = src->block;
-            dst->src_regex  = is_qr ? (REGEXP*) SvREFCNT_inc( (SV*) qr)
-                                    : src->src_regex;
-            dst++;
-        }
-        r1->code_blocks->count += r2c;
-        Safefree(r1->code_blocks->cb);
-        r1->code_blocks->cb = new_block;
-    }
-
-    SvREFCNT_dec_NN(qr);
-    return 1;
-}
-
-
-STATIC bool
-S_setup_longest(pTHX_ RExC_state_t *pRExC_state,
-                      struct reg_substr_datum  *rsd,
-                      struct scan_data_substrs *sub,
-                      STRLEN longest_length)
-{
-    /* This is the common code for setting up the floating and fixed length
-     * string data extracted from Perl_re_op_compile() below.  Returns a boolean
-     * as to whether succeeded or not */
-
-    I32 t;
-    SSize_t ml;
-    bool eol  = cBOOL(sub->flags & SF_BEFORE_EOL);
-    bool meol = cBOOL(sub->flags & SF_BEFORE_MEOL);
-
-    if (! (longest_length
-           || (eol /* Can't have SEOL and MULTI */
-               && (! meol || (RExC_flags & RXf_PMf_MULTILINE)))
-          )
-            /* See comments for join_exact for why REG_UNFOLDED_MULTI_SEEN */
-        || (RExC_seen & REG_UNFOLDED_MULTI_SEEN))
-    {
-        return FALSE;
-    }
-
-    /* copy the information about the longest from the reg_scan_data
-        over to the program. */
-    if (SvUTF8(sub->str)) {
-        rsd->substr      = NULL;
-        rsd->utf8_substr = sub->str;
-    } else {
-        rsd->substr      = sub->str;
-        rsd->utf8_substr = NULL;
-    }
-    /* end_shift is how many chars that must be matched that
-        follow this item. We calculate it ahead of time as once the
-        lookbehind offset is added in we lose the ability to correctly
-        calculate it.*/
-    ml = sub->minlenp ? *(sub->minlenp) : (SSize_t)longest_length;
-    rsd->end_shift = ml - sub->min_offset
-        - longest_length
-            /* XXX SvTAIL is always false here - did you mean FBMcf_TAIL
-             * intead? - DAPM
-            + (SvTAIL(sub->str) != 0)
-            */
-        + sub->lookbehind;
-
-    t = (eol/* Can't have SEOL and MULTI */
-         && (! meol || (RExC_flags & RXf_PMf_MULTILINE)));
-    fbm_compile(sub->str, t ? FBMcf_TAIL : 0);
-
-    return TRUE;
-}
-
-STATIC void
-S_set_regex_pv(pTHX_ RExC_state_t *pRExC_state, REGEXP *Rx)
-{
-    /* Calculates and sets in the compiled pattern 'Rx' the string to compile,
-     * properly wrapped with the right modifiers */
-
-    bool has_p     = ((RExC_rx->extflags & RXf_PMf_KEEPCOPY) == RXf_PMf_KEEPCOPY);
-    bool has_charset = RExC_utf8 || (get_regex_charset(RExC_rx->extflags)
-                                                != REGEX_DEPENDS_CHARSET);
-
-    /* The caret is output if there are any defaults: if not all the STD
-        * flags are set, or if no character set specifier is needed */
-    bool has_default =
-                (((RExC_rx->extflags & RXf_PMf_STD_PMMOD) != RXf_PMf_STD_PMMOD)
-                || ! has_charset);
-    bool has_runon = ((RExC_seen & REG_RUN_ON_COMMENT_SEEN)
-                                                == REG_RUN_ON_COMMENT_SEEN);
-    U8 reganch = (U8)((RExC_rx->extflags & RXf_PMf_STD_PMMOD)
-                        >> RXf_PMf_STD_PMMOD_SHIFT);
-    const char *fptr = STD_PAT_MODS;        /*"msixxn"*/
-    char *p;
-    STRLEN pat_len = RExC_precomp_end - RExC_precomp;
-
-    /* We output all the necessary flags; we never output a minus, as all
-        * those are defaults, so are
-        * covered by the caret */
-    const STRLEN wraplen = pat_len + has_p + has_runon
-        + has_default       /* If needs a caret */
-        + PL_bitcount[reganch] /* 1 char for each set standard flag */
-
-            /* If needs a character set specifier */
-        + ((has_charset) ? MAX_CHARSET_NAME_LENGTH : 0)
-        + (sizeof("(?:)") - 1);
-
-    PERL_ARGS_ASSERT_SET_REGEX_PV;
-
-    /* make sure PL_bitcount bounds not exceeded */
-    STATIC_ASSERT_STMT(sizeof(STD_PAT_MODS) <= 8);
-
-    p = sv_grow(MUTABLE_SV(Rx), wraplen + 1); /* +1 for the ending NUL */
-    SvPOK_on(Rx);
-    if (RExC_utf8)
-        SvFLAGS(Rx) |= SVf_UTF8;
-    *p++='('; *p++='?';
-
-    /* If a default, cover it using the caret */
-    if (has_default) {
-        *p++= DEFAULT_PAT_MOD;
-    }
-    if (has_charset) {
-        STRLEN len;
-        const char* name;
-
-        name = get_regex_charset_name(RExC_rx->extflags, &len);
-        if (strEQ(name, DEPENDS_PAT_MODS)) {  /* /d under UTF-8 => /u */
-            assert(RExC_utf8);
-            name = UNICODE_PAT_MODS;
-            len = sizeof(UNICODE_PAT_MODS) - 1;
-        }
-        Copy(name, p, len, char);
-        p += len;
-    }
-    if (has_p)
-        *p++ = KEEPCOPY_PAT_MOD; /*'p'*/
-    {
-        char ch;
-        while((ch = *fptr++)) {
-            if(reganch & 1)
-                *p++ = ch;
-            reganch >>= 1;
-        }
-    }
-
-    *p++ = ':';
-    Copy(RExC_precomp, p, pat_len, char);
-    assert ((RX_WRAPPED(Rx) - p) < 16);
-    RExC_rx->pre_prefix = p - RX_WRAPPED(Rx);
-    p += pat_len;
-
-    /* Adding a trailing \n causes this to compile properly:
-            my $R = qr / A B C # D E/x; /($R)/
-        Otherwise the parens are considered part of the comment */
-    if (has_runon)
-        *p++ = '\n';
-    *p++ = ')';
-    *p = 0;
-    SvCUR_set(Rx, p - RX_WRAPPED(Rx));
-}
-
-/*
- * Perl_re_op_compile - the perl internal RE engine's function to compile a
- * regular expression into internal code.
- * The pattern may be passed either as:
- *    a list of SVs (patternp plus pat_count)
- *    a list of OPs (expr)
- * If both are passed, the SV list is used, but the OP list indicates
- * which SVs are actually pre-compiled code blocks
- *
- * The SVs in the list have magic and qr overloading applied to them (and
- * the list may be modified in-place with replacement SVs in the latter
- * case).
- *
- * If the pattern hasn't changed from old_re, then old_re will be
- * returned.
- *
- * eng is the current engine. If that engine has an op_comp method, then
- * handle directly (i.e. we assume that op_comp was us); otherwise, just
- * do the initial concatenation of arguments and pass on to the external
- * engine.
- *
- * If is_bare_re is not null, set it to a boolean indicating whether the
- * arg list reduced (after overloading) to a single bare regex which has
- * been returned (i.e. /$qr/).
- *
- * orig_rx_flags contains RXf_* flags. See perlreapi.pod for more details.
- *
- * pm_flags contains the PMf_* flags, typically based on those from the
- * pm_flags field of the related PMOP. Currently we're only interested in
- * PMf_HAS_CV, PMf_IS_QR, PMf_USE_RE_EVAL, PMf_WILDCARD.
- *
- * For many years this code had an initial sizing pass that calculated
- * (sometimes incorrectly, leading to security holes) the size needed for the
- * compiled pattern.  That was changed by commit
- * 7c932d07cab18751bfc7515b4320436273a459e2 in 5.29, which reallocs the size, a
- * node at a time, as parsing goes along.  Patches welcome to fix any obsolete
- * references to this sizing pass.
- *
- * Now, an initial crude guess as to the size needed is made, based on the
- * length of the pattern.  Patches welcome to improve that guess.  That amount
- * of space is malloc'd and then immediately freed, and then clawed back node
- * by node.  This design is to minimze, to the extent possible, memory churn
- * when doing the reallocs.
- *
- * A separate parentheses counting pass may be needed in some cases.
- * (Previously the sizing pass did this.)  Patches welcome to reduce the number
- * of these cases.
- *
- * The existence of a sizing pass necessitated design decisions that are no
- * longer needed.  There are potential areas of simplification.
- *
- * Beware that the optimization-preparation code in here knows about some
- * of the structure of the compiled regexp.  [I'll say.]
- */
-
-REGEXP *
-Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
-                    OP *expr, const regexp_engine* eng, REGEXP *old_re,
-                     bool *is_bare_re, const U32 orig_rx_flags, const U32 pm_flags)
-{
-    REGEXP *Rx;         /* Capital 'R' means points to a REGEXP */
-    STRLEN plen;
-    char *exp;
-    regnode *scan;
-    I32 flags;
-    SSize_t minlen = 0;
-    U32 rx_flags;
-    SV *pat;
-    SV** new_patternp = patternp;
-
-    /* these are all flags - maybe they should be turned
-     * into a single int with different bit masks */
-    I32 sawlookahead = 0;
-    I32 sawplus = 0;
-    I32 sawopen = 0;
-    I32 sawminmod = 0;
-
-    regex_charset initial_charset = get_regex_charset(orig_rx_flags);
-    bool recompile = 0;
-    bool runtime_code = 0;
-    scan_data_t data;
-    RExC_state_t RExC_state;
-    RExC_state_t * const pRExC_state = &RExC_state;
-#ifdef TRIE_STUDY_OPT
-    /* search for "restudy" in this file for a detailed explanation */
-    int restudied = 0;
-    RExC_state_t copyRExC_state;
-#endif
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_RE_OP_COMPILE;
-
-    DEBUG_r(if (!PL_colorset) reginitcolors());
-
-
-    pRExC_state->warn_text = NULL;
-    pRExC_state->unlexed_names = NULL;
-    pRExC_state->code_blocks = NULL;
-
-    if (is_bare_re)
-        *is_bare_re = FALSE;
-
-    if (expr && (expr->op_type == OP_LIST ||
-                (expr->op_type == OP_NULL && expr->op_targ == OP_LIST))) {
-        /* allocate code_blocks if needed */
-        OP *o;
-        int ncode = 0;
-
-        for (o = cLISTOPx(expr)->op_first; o; o = OpSIBLING(o))
-            if (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL))
-                ncode++; /* count of DO blocks */
-
-        if (ncode)
-            pRExC_state->code_blocks = S_alloc_code_blocks(aTHX_ ncode);
-    }
-
-    if (!pat_count) {
-        /* compile-time pattern with just OP_CONSTs and DO blocks */
-
-        int n;
-        OP *o;
-
-        /* find how many CONSTs there are */
-        assert(expr);
-        n = 0;
-        if (expr->op_type == OP_CONST)
-            n = 1;
-        else
-            for (o = cLISTOPx(expr)->op_first; o; o = OpSIBLING(o)) {
-                if (o->op_type == OP_CONST)
-                    n++;
-            }
-
-        /* fake up an SV array */
-
-        assert(!new_patternp);
-        Newx(new_patternp, n, SV*);
-        SAVEFREEPV(new_patternp);
-        pat_count = n;
-
-        n = 0;
-        if (expr->op_type == OP_CONST)
-            new_patternp[n] = cSVOPx_sv(expr);
-        else
-            for (o = cLISTOPx(expr)->op_first; o; o = OpSIBLING(o)) {
-                if (o->op_type == OP_CONST)
-                    new_patternp[n++] = cSVOPo_sv;
-            }
-
-    }
-
-    DEBUG_PARSE_r(Perl_re_printf( aTHX_
-        "Assembling pattern from %d elements%s\n", pat_count,
-            orig_rx_flags & RXf_SPLIT ? " for split" : ""));
-
-    /* set expr to the first arg op */
-
-    if (pRExC_state->code_blocks && pRExC_state->code_blocks->count
-         && expr->op_type != OP_CONST)
-    {
-            expr = cLISTOPx(expr)->op_first;
-            assert(   expr->op_type == OP_PUSHMARK
-                   || (expr->op_type == OP_NULL && expr->op_targ == OP_PUSHMARK)
-                   || expr->op_type == OP_PADRANGE);
-            expr = OpSIBLING(expr);
-    }
-
-    pat = S_concat_pat(aTHX_ pRExC_state, NULL, new_patternp, pat_count,
-                        expr, &recompile, NULL);
-
-    /* handle bare (possibly after overloading) regex: foo =~ $re */
-    {
-        SV *re = pat;
-        if (SvROK(re))
-            re = SvRV(re);
-        if (SvTYPE(re) == SVt_REGEXP) {
-            if (is_bare_re)
-                *is_bare_re = TRUE;
-            SvREFCNT_inc(re);
-            DEBUG_PARSE_r(Perl_re_printf( aTHX_
-                "Precompiled pattern%s\n",
-                    orig_rx_flags & RXf_SPLIT ? " for split" : ""));
-
-            return (REGEXP*)re;
-        }
-    }
-
-    exp = SvPV_nomg(pat, plen);
-
-    if (!eng->op_comp) {
-        if ((SvUTF8(pat) && IN_BYTES)
-                || SvGMAGICAL(pat) || SvAMAGIC(pat))
-        {
-            /* make a temporary copy; either to convert to bytes,
-             * or to avoid repeating get-magic / overloaded stringify */
-            pat = newSVpvn_flags(exp, plen, SVs_TEMP |
-                                        (IN_BYTES ? 0 : SvUTF8(pat)));
-        }
-        return CALLREGCOMP_ENG(eng, pat, orig_rx_flags);
-    }
-
-    /* ignore the utf8ness if the pattern is 0 length */
-    RExC_utf8 = RExC_orig_utf8 = (plen == 0 || IN_BYTES) ? 0 : SvUTF8(pat);
-    RExC_uni_semantics = 0;
-    RExC_contains_locale = 0;
-    RExC_strict = cBOOL(pm_flags & RXf_PMf_STRICT);
-    RExC_in_script_run = 0;
-    RExC_study_started = 0;
-    pRExC_state->runtime_code_qr = NULL;
-    RExC_frame_head= NULL;
-    RExC_frame_last= NULL;
-    RExC_frame_count= 0;
-    RExC_latest_warn_offset = 0;
-    RExC_use_BRANCHJ = 0;
-    RExC_warned_WARN_EXPERIMENTAL__VLB = 0;
-    RExC_warned_WARN_EXPERIMENTAL__REGEX_SETS = 0;
-    RExC_total_parens = 0;
-    RExC_open_parens = NULL;
-    RExC_close_parens = NULL;
-    RExC_paren_names = NULL;
-    RExC_size = 0;
-    RExC_seen_d_op = FALSE;
-#ifdef DEBUGGING
-    RExC_paren_name_list = NULL;
-#endif
-
-    DEBUG_r({
-        RExC_mysv1= sv_newmortal();
-        RExC_mysv2= sv_newmortal();
-    });
-
-    DEBUG_COMPILE_r({
-            SV *dsv= sv_newmortal();
-            RE_PV_QUOTED_DECL(s, RExC_utf8, dsv, exp, plen, PL_dump_re_max_len);
-            Perl_re_printf( aTHX_  "%sCompiling REx%s %s\n",
-                          PL_colors[4], PL_colors[5], s);
-        });
-
-    /* we jump here if we have to recompile, e.g., from upgrading the pattern
-     * to utf8 */
-
-    if ((pm_flags & PMf_USE_RE_EVAL)
-                /* this second condition covers the non-regex literal case,
-                 * i.e.  $foo =~ '(?{})'. */
-                || (IN_PERL_COMPILETIME && (PL_hints & HINT_RE_EVAL))
-    )
-        runtime_code = S_has_runtime_code(aTHX_ pRExC_state, exp, plen);
-
-  redo_parse:
-    /* return old regex if pattern hasn't changed */
-    /* XXX: note in the below we have to check the flags as well as the
-     * pattern.
-     *
-     * Things get a touch tricky as we have to compare the utf8 flag
-     * independently from the compile flags.  */
-
-    if (   old_re
-        && !recompile
-        && !!RX_UTF8(old_re) == !!RExC_utf8
-        && ( RX_COMPFLAGS(old_re) == ( orig_rx_flags & RXf_PMf_FLAGCOPYMASK ) )
-        && RX_PRECOMP(old_re)
-        && RX_PRELEN(old_re) == plen
-        && memEQ(RX_PRECOMP(old_re), exp, plen)
-        && !runtime_code /* with runtime code, always recompile */ )
-    {
-        DEBUG_COMPILE_r({
-            SV *dsv= sv_newmortal();
-            RE_PV_QUOTED_DECL(s, RExC_utf8, dsv, exp, plen, PL_dump_re_max_len);
-            Perl_re_printf( aTHX_  "%sSkipping recompilation of unchanged REx%s %s\n",
-                          PL_colors[4], PL_colors[5], s);
-        });
-        return old_re;
-    }
-
-    /* Allocate the pattern's SV */
-    RExC_rx_sv = Rx = (REGEXP*) newSV_type(SVt_REGEXP);
-    RExC_rx = ReANY(Rx);
-    if ( RExC_rx == NULL )
-        FAIL("Regexp out of space");
-
-    rx_flags = orig_rx_flags;
-
-    if (   toUSE_UNI_CHARSET_NOT_DEPENDS
-        && initial_charset == REGEX_DEPENDS_CHARSET)
-    {
-
-        /* Set to use unicode semantics if the pattern is in utf8 and has the
-         * 'depends' charset specified, as it means unicode when utf8  */
-        set_regex_charset(&rx_flags, REGEX_UNICODE_CHARSET);
-        RExC_uni_semantics = 1;
-    }
-
-    RExC_pm_flags = pm_flags;
-
-    if (runtime_code) {
-        assert(TAINTING_get || !TAINT_get);
-        if (TAINT_get)
-            Perl_croak(aTHX_ "Eval-group in insecure regular expression");
-
-        if (!S_compile_runtime_code(aTHX_ pRExC_state, exp, plen)) {
-            /* whoops, we have a non-utf8 pattern, whilst run-time code
-             * got compiled as utf8. Try again with a utf8 pattern */
-            S_pat_upgrade_to_utf8(aTHX_ pRExC_state, &exp, &plen,
-                pRExC_state->code_blocks ? pRExC_state->code_blocks->count : 0);
-            goto redo_parse;
-        }
-    }
-    assert(!pRExC_state->runtime_code_qr);
-
-    RExC_sawback = 0;
-
-    RExC_seen = 0;
-    RExC_maxlen = 0;
-    RExC_in_lookaround = 0;
-    RExC_seen_zerolen = *exp == '^' ? -1 : 0;
-    RExC_recode_x_to_native = 0;
-    RExC_in_multi_char_class = 0;
-
-    RExC_start = RExC_copy_start_in_constructed = RExC_copy_start_in_input = RExC_precomp = exp;
-    RExC_precomp_end = RExC_end = exp + plen;
-    RExC_nestroot = 0;
-    RExC_whilem_seen = 0;
-    RExC_end_op = NULL;
-    RExC_recurse = NULL;
-    RExC_study_chunk_recursed = NULL;
-    RExC_study_chunk_recursed_bytes= 0;
-    RExC_recurse_count = 0;
-    RExC_sets_depth = 0;
-    pRExC_state->code_index = 0;
-
-    /* Initialize the string in the compiled pattern.  This is so that there is
-     * something to output if necessary */
-    set_regex_pv(pRExC_state, Rx);
-
-    DEBUG_PARSE_r({
-        Perl_re_printf( aTHX_
-            "Starting parse and generation\n");
-        RExC_lastnum=0;
-        RExC_lastparse=NULL;
-    });
-
-    /* Allocate space and zero-initialize. Note, the two step process
-       of zeroing when in debug mode, thus anything assigned has to
-       happen after that */
-    if (!  RExC_size) {
-
-        /* On the first pass of the parse, we guess how big this will be.  Then
-         * we grow in one operation to that amount and then give it back.  As
-         * we go along, we re-allocate what we need.
-         *
-         * XXX Currently the guess is essentially that the pattern will be an
-         * EXACT node with one byte input, one byte output.  This is crude, and
-         * better heuristics are welcome.
-         *
-         * On any subsequent passes, we guess what we actually computed in the
-         * latest earlier pass.  Such a pass probably didn't complete so is
-         * missing stuff.  We could improve those guesses by knowing where the
-         * parse stopped, and use the length so far plus apply the above
-         * assumption to what's left. */
-        RExC_size = STR_SZ(RExC_end - RExC_start);
-    }
-
-    Newxc(RExC_rxi, sizeof(regexp_internal) + RExC_size, char, regexp_internal);
-    if ( RExC_rxi == NULL )
-        FAIL("Regexp out of space");
-
-    Zero(RExC_rxi, sizeof(regexp_internal) + RExC_size, char);
-    RXi_SET( RExC_rx, RExC_rxi );
-
-    /* We start from 0 (over from 0 in the case this is a reparse.  The first
-     * node parsed will give back any excess memory we have allocated so far).
-     * */
-    RExC_size = 0;
-
-    /* non-zero initialization begins here */
-    RExC_rx->engine= eng;
-    RExC_rx->extflags = rx_flags;
-    RXp_COMPFLAGS(RExC_rx) = orig_rx_flags & RXf_PMf_FLAGCOPYMASK;
-
-    if (pm_flags & PMf_IS_QR) {
-        RExC_rxi->code_blocks = pRExC_state->code_blocks;
-        if (RExC_rxi->code_blocks) {
-            RExC_rxi->code_blocks->refcnt++;
-        }
-    }
-
-    RExC_rx->intflags = 0;
-
-    RExC_flags = rx_flags;	/* don't let top level (?i) bleed */
-    RExC_parse_set(exp);
-
-    /* This NUL is guaranteed because the pattern comes from an SV*, and the sv
-     * code makes sure the final byte is an uncounted NUL.  But should this
-     * ever not be the case, lots of things could read beyond the end of the
-     * buffer: loops like
-     *      while(isFOO(*RExC_parse)) RExC_parse_inc_by(1);
-     *      strchr(RExC_parse, "foo");
-     * etc.  So it is worth noting. */
-    assert(*RExC_end == '\0');
-
-    RExC_naughty = 0;
-    RExC_npar = 1;
-    RExC_parens_buf_size = 0;
-    RExC_emit_start = RExC_rxi->program;
-    pRExC_state->code_index = 0;
-
-    *((char*) RExC_emit_start) = (char) REG_MAGIC;
-    RExC_emit = 1;
-
-    /* Do the parse */
-    if (reg(pRExC_state, 0, &flags, 1)) {
-
-        /* Success!, But we may need to redo the parse knowing how many parens
-         * there actually are */
-        if (IN_PARENS_PASS) {
-            flags |= RESTART_PARSE;
-        }
-
-        /* We have that number in RExC_npar */
-        RExC_total_parens = RExC_npar;
-    }
-    else if (! MUST_RESTART(flags)) {
-        ReREFCNT_dec(Rx);
-        Perl_croak(aTHX_ "panic: reg returned failure to re_op_compile, flags=%#" UVxf, (UV) flags);
-    }
-
-    /* Here, we either have success, or we have to redo the parse for some reason */
-    if (MUST_RESTART(flags)) {
-
-        /* It's possible to write a regexp in ascii that represents Unicode
-        codepoints outside of the byte range, such as via \x{100}. If we
-        detect such a sequence we have to convert the entire pattern to utf8
-        and then recompile, as our sizing calculation will have been based
-        on 1 byte == 1 character, but we will need to use utf8 to encode
-        at least some part of the pattern, and therefore must convert the whole
-        thing.
-        -- dmq */
-        if (flags & NEED_UTF8) {
-
-            /* We have stored the offset of the final warning output so far.
-             * That must be adjusted.  Any variant characters between the start
-             * of the pattern and this warning count for 2 bytes in the final,
-             * so just add them again */
-            if (UNLIKELY(RExC_latest_warn_offset > 0)) {
-                RExC_latest_warn_offset +=
-                            variant_under_utf8_count((U8 *) exp, (U8 *) exp
-                                                + RExC_latest_warn_offset);
-            }
-            S_pat_upgrade_to_utf8(aTHX_ pRExC_state, &exp, &plen,
-            pRExC_state->code_blocks ? pRExC_state->code_blocks->count : 0);
-            DEBUG_PARSE_r(Perl_re_printf( aTHX_ "Need to redo parse after upgrade\n"));
-        }
-        else {
-            DEBUG_PARSE_r(Perl_re_printf( aTHX_ "Need to redo parse\n"));
-        }
-
-        if (ALL_PARENS_COUNTED) {
-            /* Make enough room for all the known parens, and zero it */
-            Renew(RExC_open_parens, RExC_total_parens, regnode_offset);
-            Zero(RExC_open_parens, RExC_total_parens, regnode_offset);
-            RExC_open_parens[0] = 1;    /* +1 for REG_MAGIC */
-
-            Renew(RExC_close_parens, RExC_total_parens, regnode_offset);
-            Zero(RExC_close_parens, RExC_total_parens, regnode_offset);
-        }
-        else { /* Parse did not complete.  Reinitialize the parentheses
-                  structures */
-            RExC_total_parens = 0;
-            if (RExC_open_parens) {
-                Safefree(RExC_open_parens);
-                RExC_open_parens = NULL;
-            }
-            if (RExC_close_parens) {
-                Safefree(RExC_close_parens);
-                RExC_close_parens = NULL;
-            }
-        }
-
-        /* Clean up what we did in this parse */
-        SvREFCNT_dec_NN(RExC_rx_sv);
-
-        goto redo_parse;
-    }
-
-    /* Here, we have successfully parsed and generated the pattern's program
-     * for the regex engine.  We are ready to finish things up and look for
-     * optimizations. */
-
-    /* Update the string to compile, with correct modifiers, etc */
-    set_regex_pv(pRExC_state, Rx);
-
-    RExC_rx->nparens = RExC_total_parens - 1;
-
-    /* Uses the upper 4 bits of the FLAGS field, so keep within that size */
-    if (RExC_whilem_seen > 15)
-        RExC_whilem_seen = 15;
-
-    DEBUG_PARSE_r({
-        Perl_re_printf( aTHX_
-            "Required size %" IVdf " nodes\n", (IV)RExC_size);
-        RExC_lastnum=0;
-        RExC_lastparse=NULL;
-    });
-
-    SetProgLen(RExC_rxi,RExC_size);
-
-    DEBUG_DUMP_PRE_OPTIMIZE_r({
-        SV * const sv = sv_newmortal();
-        RXi_GET_DECL(RExC_rx, ri);
-        DEBUG_RExC_seen();
-        Perl_re_printf( aTHX_ "Program before optimization:\n");
-
-        (void)dumpuntil(RExC_rx, ri->program, ri->program + 1, NULL, NULL,
-                        sv, 0, 0);
-    });
-
-    DEBUG_OPTIMISE_r(
-        Perl_re_printf( aTHX_  "Starting post parse optimization\n");
-    );
-
-    /* XXXX To minimize changes to RE engine we always allocate
-       3-units-long substrs field. */
-    Newx(RExC_rx->substrs, 1, struct reg_substr_data);
-    if (RExC_recurse_count) {
-        Newx(RExC_recurse, RExC_recurse_count, regnode *);
-        SAVEFREEPV(RExC_recurse);
-    }
-
-    if (RExC_seen & REG_RECURSE_SEEN) {
-        /* Note, RExC_total_parens is 1 + the number of parens in a pattern.
-         * So its 1 if there are no parens. */
-        RExC_study_chunk_recursed_bytes= (RExC_total_parens >> 3) +
-                                         ((RExC_total_parens & 0x07) != 0);
-        Newx(RExC_study_chunk_recursed,
-             RExC_study_chunk_recursed_bytes * RExC_total_parens, U8);
-        SAVEFREEPV(RExC_study_chunk_recursed);
-    }
-
-  reStudy:
-    RExC_rx->minlen = minlen = sawlookahead = sawplus = sawopen = sawminmod = 0;
-    DEBUG_r(
-        RExC_study_chunk_recursed_count= 0;
-    );
-    Zero(RExC_rx->substrs, 1, struct reg_substr_data);
-    if (RExC_study_chunk_recursed) {
-        Zero(RExC_study_chunk_recursed,
-             RExC_study_chunk_recursed_bytes * RExC_total_parens, U8);
-    }
-
-
-#ifdef TRIE_STUDY_OPT
-    /* search for "restudy" in this file for a detailed explanation */
-    if (!restudied) {
-        StructCopy(&zero_scan_data, &data, scan_data_t);
-        copyRExC_state = RExC_state;
-    } else {
-        U32 seen=RExC_seen;
-        DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "Restudying\n"));
-
-        RExC_state = copyRExC_state;
-        if (seen & REG_TOP_LEVEL_BRANCHES_SEEN)
-            RExC_seen |= REG_TOP_LEVEL_BRANCHES_SEEN;
-        else
-            RExC_seen &= ~REG_TOP_LEVEL_BRANCHES_SEEN;
-        StructCopy(&zero_scan_data, &data, scan_data_t);
-    }
-#else
-    StructCopy(&zero_scan_data, &data, scan_data_t);
-#endif
-
-    /* Dig out information for optimizations. */
-    RExC_rx->extflags = RExC_flags; /* was pm_op */
-    /*dmq: removed as part of de-PMOP: pm->op_pmflags = RExC_flags; */
-
-    if (UTF)
-        SvUTF8_on(Rx);	/* Unicode in it? */
-    RExC_rxi->regstclass = NULL;
-    if (RExC_naughty >= TOO_NAUGHTY)	/* Probably an expensive pattern. */
-        RExC_rx->intflags |= PREGf_NAUGHTY;
-    scan = RExC_rxi->program + 1;		/* First BRANCH. */
-
-    /* testing for BRANCH here tells us whether there is "must appear"
-       data in the pattern. If there is then we can use it for optimisations */
-    if (!(RExC_seen & REG_TOP_LEVEL_BRANCHES_SEEN)) { /*  Only one top-level choice.
-                                                  */
-        SSize_t fake_deltap;
-        STRLEN longest_length[2];
-        regnode_ssc ch_class; /* pointed to by data */
-        int stclass_flag;
-        SSize_t last_close = 0; /* pointed to by data */
-        regnode *first= scan;
-        regnode *first_next= regnext(first);
-        regnode *last_close_op= NULL;
-        int i;
-
-        /*
-         * Skip introductions and multiplicators >= 1
-         * so that we can extract the 'meat' of the pattern that must
-         * match in the large if() sequence following.
-         * NOTE that EXACT is NOT covered here, as it is normally
-         * picked up by the optimiser separately.
-         *
-         * This is unfortunate as the optimiser isnt handling lookahead
-         * properly currently.
-         *
-         */
-        while ((OP(first) == OPEN && (sawopen = 1)) ||
-               /* An OR of *one* alternative - should not happen now. */
-            (OP(first) == BRANCH && OP(first_next) != BRANCH) ||
-            /* for now we can't handle lookbehind IFMATCH*/
-            (OP(first) == IFMATCH && !first->flags && (sawlookahead = 1)) ||
-            (OP(first) == PLUS) ||
-            (OP(first) == MINMOD) ||
-               /* An {n,m} with n>0 */
-            (PL_regkind[OP(first)] == CURLY && ARG1(first) > 0) ||
-            (OP(first) == NOTHING && PL_regkind[OP(first_next)] != END ))
-        {
-                /*
-                 * the only op that could be a regnode is PLUS, all the rest
-                 * will be regnode_1 or regnode_2.
-                 *
-                 * (yves doesn't think this is true)
-                 */
-                if (OP(first) == PLUS)
-                    sawplus = 1;
-                else {
-                    if (OP(first) == MINMOD)
-                        sawminmod = 1;
-                    first += regarglen[OP(first)];
-                }
-                first = NEXTOPER(first);
-                first_next= regnext(first);
-        }
-
-        /* Starting-point info. */
-      again:
-        DEBUG_PEEP("first:", first, 0, 0);
-        /* Ignore EXACT as we deal with it later. */
-        if (PL_regkind[OP(first)] == EXACT) {
-            if (! isEXACTFish(OP(first))) {
-                NOOP;	/* Empty, get anchored substr later. */
-            }
-            else
-                RExC_rxi->regstclass = first;
-        }
-#ifdef TRIE_STCLASS
-        else if (PL_regkind[OP(first)] == TRIE &&
-                ((reg_trie_data *)RExC_rxi->data->data[ ARG(first) ])->minlen>0)
-        {
-            /* this can happen only on restudy
-             * Search for "restudy" in this file to find
-             * a comment with details. */
-            RExC_rxi->regstclass = construct_ahocorasick_from_trie(pRExC_state, (regnode *)first, 0);
-        }
-#endif
-        else if (REGNODE_SIMPLE(OP(first)))
-            RExC_rxi->regstclass = first;
-        else if (PL_regkind[OP(first)] == BOUND ||
-                 PL_regkind[OP(first)] == NBOUND)
-            RExC_rxi->regstclass = first;
-        else if (PL_regkind[OP(first)] == BOL) {
-            RExC_rx->intflags |= (OP(first) == MBOL
-                           ? PREGf_ANCH_MBOL
-                           : PREGf_ANCH_SBOL);
-            first = NEXTOPER(first);
-            goto again;
-        }
-        else if (OP(first) == GPOS) {
-            RExC_rx->intflags |= PREGf_ANCH_GPOS;
-            first = NEXTOPER(first);
-            goto again;
-        }
-        else if ((!sawopen || !RExC_sawback) &&
-            !sawlookahead &&
-            (OP(first) == STAR &&
-            PL_regkind[OP(NEXTOPER(first))] == REG_ANY) &&
-            !(RExC_rx->intflags & PREGf_ANCH) && !pRExC_state->code_blocks)
-        {
-            /* turn .* into ^.* with an implied $*=1 */
-            const int type =
-                (OP(NEXTOPER(first)) == REG_ANY)
-                    ? PREGf_ANCH_MBOL
-                    : PREGf_ANCH_SBOL;
-            RExC_rx->intflags |= (type | PREGf_IMPLICIT);
-            first = NEXTOPER(first);
-            goto again;
-        }
-        if (sawplus && !sawminmod && !sawlookahead
-            && (!sawopen || !RExC_sawback)
-            && !pRExC_state->code_blocks) /* May examine pos and $& */
-            /* x+ must match at the 1st pos of run of x's */
-            RExC_rx->intflags |= PREGf_SKIP;
-
-        /* Scan is after the zeroth branch, first is atomic matcher. */
-#ifdef TRIE_STUDY_OPT
-        /* search for "restudy" in this file for a detailed explanation */
-        DEBUG_PARSE_r(
-            if (!restudied)
-                Perl_re_printf( aTHX_  "first at %" IVdf "\n",
-                              (IV)(first - scan + 1))
-        );
-#else
-        DEBUG_PARSE_r(
-            Perl_re_printf( aTHX_  "first at %" IVdf "\n",
-                (IV)(first - scan + 1))
-        );
-#endif
-
-
-        /*
-        * If there's something expensive in the r.e., find the
-        * longest literal string that must appear and make it the
-        * regmust.  Resolve ties in favor of later strings, since
-        * the regstart check works with the beginning of the r.e.
-        * and avoiding duplication strengthens checking.  Not a
-        * strong reason, but sufficient in the absence of others.
-        * [Now we resolve ties in favor of the earlier string if
-        * it happens that c_offset_min has been invalidated, since the
-        * earlier string may buy us something the later one won't.]
-        */
-
-        data.substrs[0].str = newSVpvs("");
-        data.substrs[1].str = newSVpvs("");
-        data.last_found = newSVpvs("");
-        data.cur_is_floating = 0; /* initially any found substring is fixed */
-        ENTER_with_name("study_chunk");
-        SAVEFREESV(data.substrs[0].str);
-        SAVEFREESV(data.substrs[1].str);
-        SAVEFREESV(data.last_found);
-        first = scan;
-        if (!RExC_rxi->regstclass) {
-            ssc_init(pRExC_state, &ch_class);
-            data.start_class = &ch_class;
-            stclass_flag = SCF_DO_STCLASS_AND;
-        } else				/* XXXX Check for BOUND? */
-            stclass_flag = 0;
-        data.last_closep = &last_close;
-        data.last_close_opp = &last_close_op;
-
-        DEBUG_RExC_seen();
-        /*
-         * MAIN ENTRY FOR study_chunk() FOR m/PATTERN/
-         * (NO top level branches)
-         */
-        minlen = study_chunk(pRExC_state, &first, &minlen, &fake_deltap,
-                             scan + RExC_size, /* Up to end */
-            &data, -1, 0, NULL,
-            SCF_DO_SUBSTR | SCF_WHILEM_VISITED_POS | stclass_flag
-                          | (restudied ? SCF_TRIE_DOING_RESTUDY : 0),
-            0, TRUE);
-        /* search for "restudy" in this file for a detailed explanation
-         * of 'restudied' and SCF_TRIE_DOING_RESTUDY */
-
-
-        CHECK_RESTUDY_GOTO_butfirst(LEAVE_with_name("study_chunk"));
-
-
-        if ( RExC_total_parens == 1 && !data.cur_is_floating
-             && data.last_start_min == 0 && data.last_end > 0
-             && !RExC_seen_zerolen
-             && !(RExC_seen & REG_VERBARG_SEEN)
-             && !(RExC_seen & REG_GPOS_SEEN)
-        ){
-            RExC_rx->extflags |= RXf_CHECK_ALL;
-        }
-        scan_commit(pRExC_state, &data,&minlen, 0);
-
-
-        /* XXX this is done in reverse order because that's the way the
-         * code was before it was parameterised. Don't know whether it
-         * actually needs doing in reverse order. DAPM */
-        for (i = 1; i >= 0; i--) {
-            longest_length[i] = CHR_SVLEN(data.substrs[i].str);
-
-            if (   !(   i
-                     && SvCUR(data.substrs[0].str)  /* ok to leave SvCUR */
-                     &&    data.substrs[0].min_offset
-                        == data.substrs[1].min_offset
-                     &&    SvCUR(data.substrs[0].str)
-                        == SvCUR(data.substrs[1].str)
-                    )
-                && S_setup_longest (aTHX_ pRExC_state,
-                                        &(RExC_rx->substrs->data[i]),
-                                        &(data.substrs[i]),
-                                        longest_length[i]))
-            {
-                RExC_rx->substrs->data[i].min_offset =
-                        data.substrs[i].min_offset - data.substrs[i].lookbehind;
-
-                RExC_rx->substrs->data[i].max_offset = data.substrs[i].max_offset;
-                /* Don't offset infinity */
-                if (data.substrs[i].max_offset < OPTIMIZE_INFTY)
-                    RExC_rx->substrs->data[i].max_offset -= data.substrs[i].lookbehind;
-                SvREFCNT_inc_simple_void_NN(data.substrs[i].str);
-            }
-            else {
-                RExC_rx->substrs->data[i].substr      = NULL;
-                RExC_rx->substrs->data[i].utf8_substr = NULL;
-                longest_length[i] = 0;
-            }
-        }
-
-        LEAVE_with_name("study_chunk");
-
-        if (RExC_rxi->regstclass
-            && (OP(RExC_rxi->regstclass) == REG_ANY || OP(RExC_rxi->regstclass) == SANY))
-            RExC_rxi->regstclass = NULL;
-
-        if ((!(RExC_rx->substrs->data[0].substr || RExC_rx->substrs->data[0].utf8_substr)
-              || RExC_rx->substrs->data[0].min_offset)
-            && stclass_flag
-            && ! (ANYOF_FLAGS(data.start_class) & SSC_MATCHES_EMPTY_STRING)
-            && is_ssc_worth_it(pRExC_state, data.start_class))
-        {
-            const U32 n = add_data(pRExC_state, STR_WITH_LEN("f"));
-
-            ssc_finalize(pRExC_state, data.start_class);
-
-            Newx(RExC_rxi->data->data[n], 1, regnode_ssc);
-            StructCopy(data.start_class,
-                       (regnode_ssc*)RExC_rxi->data->data[n],
-                       regnode_ssc);
-            RExC_rxi->regstclass = (regnode*)RExC_rxi->data->data[n];
-            RExC_rx->intflags &= ~PREGf_SKIP;	/* Used in find_byclass(). */
-            DEBUG_COMPILE_r({ SV *sv = sv_newmortal();
-                      regprop(RExC_rx, sv, (regnode*)data.start_class, NULL, pRExC_state);
-                      Perl_re_printf( aTHX_
-                                    "synthetic stclass \"%s\".\n",
-                                    SvPVX_const(sv));});
-            data.start_class = NULL;
-        }
-
-        /* A temporary algorithm prefers floated substr to fixed one of
-         * same length to dig more info. */
-        i = (longest_length[0] <= longest_length[1]);
-        RExC_rx->substrs->check_ix = i;
-        RExC_rx->check_end_shift  = RExC_rx->substrs->data[i].end_shift;
-        RExC_rx->check_substr     = RExC_rx->substrs->data[i].substr;
-        RExC_rx->check_utf8       = RExC_rx->substrs->data[i].utf8_substr;
-        RExC_rx->check_offset_min = RExC_rx->substrs->data[i].min_offset;
-        RExC_rx->check_offset_max = RExC_rx->substrs->data[i].max_offset;
-        if (!i && (RExC_rx->intflags & (PREGf_ANCH_SBOL|PREGf_ANCH_GPOS)))
-            RExC_rx->intflags |= PREGf_NOSCAN;
-
-        if ((RExC_rx->check_substr || RExC_rx->check_utf8) ) {
-            RExC_rx->extflags |= RXf_USE_INTUIT;
-            if (SvTAIL(RExC_rx->check_substr ? RExC_rx->check_substr : RExC_rx->check_utf8))
-                RExC_rx->extflags |= RXf_INTUIT_TAIL;
-        }
-
-        /* XXX Unneeded? dmq (shouldn't as this is handled elsewhere)
-        if ( (STRLEN)minlen < longest_length[1] )
-            minlen= longest_length[1];
-        if ( (STRLEN)minlen < longest_length[0] )
-            minlen= longest_length[0];
-        */
-    }
-    else {
-        /* Several toplevels. Best we can is to set minlen. */
-        SSize_t fake_deltap;
-        regnode_ssc ch_class;
-        SSize_t last_close = 0;
-        regnode *last_close_op = NULL;
-
-        DEBUG_PARSE_r(Perl_re_printf( aTHX_  "\nMulti Top Level\n"));
-
-        scan = RExC_rxi->program + 1;
-        ssc_init(pRExC_state, &ch_class);
-        data.start_class = &ch_class;
-        data.last_closep = &last_close;
-        data.last_close_opp = &last_close_op;
-
-        DEBUG_RExC_seen();
-        /*
-         * MAIN ENTRY FOR study_chunk() FOR m/P1|P2|.../
-         * (patterns WITH top level branches)
-         */
-        minlen = study_chunk(pRExC_state,
-            &scan, &minlen, &fake_deltap, scan + RExC_size, &data, -1, 0, NULL,
-            SCF_DO_STCLASS_AND|SCF_WHILEM_VISITED_POS|(restudied
-                                                      ? SCF_TRIE_DOING_RESTUDY
-                                                      : 0),
-            0, TRUE);
-        /* search for "restudy" in this file for a detailed explanation
-         * of 'restudied' and SCF_TRIE_DOING_RESTUDY */
-
-        CHECK_RESTUDY_GOTO_butfirst(NOOP);
-
-        RExC_rx->check_substr = NULL;
-        RExC_rx->check_utf8 = NULL;
-        RExC_rx->substrs->data[0].substr      = NULL;
-        RExC_rx->substrs->data[0].utf8_substr = NULL;
-        RExC_rx->substrs->data[1].substr      = NULL;
-        RExC_rx->substrs->data[1].utf8_substr = NULL;
-
-        if (! (ANYOF_FLAGS(data.start_class) & SSC_MATCHES_EMPTY_STRING)
-            && is_ssc_worth_it(pRExC_state, data.start_class))
-        {
-            const U32 n = add_data(pRExC_state, STR_WITH_LEN("f"));
-
-            ssc_finalize(pRExC_state, data.start_class);
-
-            Newx(RExC_rxi->data->data[n], 1, regnode_ssc);
-            StructCopy(data.start_class,
-                       (regnode_ssc*)RExC_rxi->data->data[n],
-                       regnode_ssc);
-            RExC_rxi->regstclass = (regnode*)RExC_rxi->data->data[n];
-            RExC_rx->intflags &= ~PREGf_SKIP;	/* Used in find_byclass(). */
-            DEBUG_COMPILE_r({ SV* sv = sv_newmortal();
-                      regprop(RExC_rx, sv, (regnode*)data.start_class, NULL, pRExC_state);
-                      Perl_re_printf( aTHX_
-                                    "synthetic stclass \"%s\".\n",
-                                    SvPVX_const(sv));});
-            data.start_class = NULL;
-        }
-    }
-
-    if (RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN) {
-        RExC_rx->extflags |= RXf_UNBOUNDED_QUANTIFIER_SEEN;
-        RExC_rx->maxlen = REG_INFTY;
-    }
-    else {
-        RExC_rx->maxlen = RExC_maxlen;
-    }
-
-    /* Guard against an embedded (?=) or (?<=) with a longer minlen than
-       the "real" pattern. */
-    DEBUG_OPTIMISE_r({
-        Perl_re_printf( aTHX_ "minlen: %" IVdf " RExC_rx->minlen:%" IVdf " maxlen:%" IVdf "\n",
-                      (IV)minlen, (IV)RExC_rx->minlen, (IV)RExC_maxlen);
-    });
-    RExC_rx->minlenret = minlen;
-    if (RExC_rx->minlen < minlen)
-        RExC_rx->minlen = minlen;
-
-    if (RExC_seen & REG_RECURSE_SEEN ) {
-        RExC_rx->intflags |= PREGf_RECURSE_SEEN;
-        Newx(RExC_rx->recurse_locinput, RExC_rx->nparens + 1, char *);
-    }
-    if (RExC_seen & REG_GPOS_SEEN)
-        RExC_rx->intflags |= PREGf_GPOS_SEEN;
-    if (RExC_seen & REG_LOOKBEHIND_SEEN)
-        RExC_rx->extflags |= RXf_NO_INPLACE_SUBST; /* inplace might break the
-                                                lookbehind */
-    if (pRExC_state->code_blocks)
-        RExC_rx->extflags |= RXf_EVAL_SEEN;
-    if (RExC_seen & REG_VERBARG_SEEN)
-    {
-        RExC_rx->intflags |= PREGf_VERBARG_SEEN;
-        RExC_rx->extflags |= RXf_NO_INPLACE_SUBST; /* don't understand this! Yves */
-    }
-    if (RExC_seen & REG_CUTGROUP_SEEN)
-        RExC_rx->intflags |= PREGf_CUTGROUP_SEEN;
-    if (pm_flags & PMf_USE_RE_EVAL)
-        RExC_rx->intflags |= PREGf_USE_RE_EVAL;
-    if (RExC_paren_names)
-        RXp_PAREN_NAMES(RExC_rx) = MUTABLE_HV(SvREFCNT_inc(RExC_paren_names));
-    else
-        RXp_PAREN_NAMES(RExC_rx) = NULL;
-
-    /* If we have seen an anchor in our pattern then we set the extflag RXf_IS_ANCHORED
-     * so it can be used in pp.c */
-    if (RExC_rx->intflags & PREGf_ANCH)
-        RExC_rx->extflags |= RXf_IS_ANCHORED;
-
-
-    {
-        /* this is used to identify "special" patterns that might result
-         * in Perl NOT calling the regex engine and instead doing the match "itself",
-         * particularly special cases in split//. By having the regex compiler
-         * do this pattern matching at a regop level (instead of by inspecting the pattern)
-         * we avoid weird issues with equivalent patterns resulting in different behavior,
-         * AND we allow non Perl engines to get the same optimizations by the setting the
-         * flags appropriately - Yves */
-        regnode *first = RExC_rxi->program + 1;
-        U8 fop = OP(first);
-        regnode *next = NEXTOPER(first);
-        /* It's safe to read through *next only if OP(first) is a regop of
-         * the right type (not EXACT, for example).
-         */
-        U8 nop = (fop == NOTHING || fop == MBOL || fop == SBOL || fop == PLUS)
-                ? OP(next) : 0;
-
-        if (PL_regkind[fop] == NOTHING && nop == END)
-            RExC_rx->extflags |= RXf_NULL;
-        else if ((fop == MBOL || (fop == SBOL && !first->flags)) && nop == END)
-            /* when fop is SBOL first->flags will be true only when it was
-             * produced by parsing /\A/, and not when parsing /^/. This is
-             * very important for the split code as there we want to
-             * treat /^/ as /^/m, but we do not want to treat /\A/ as /^/m.
-             * See rt #122761 for more details. -- Yves */
-            RExC_rx->extflags |= RXf_START_ONLY;
-        else if (fop == PLUS
-                 && PL_regkind[nop] == POSIXD && FLAGS(next) == _CC_SPACE
-                 && OP(regnext(first)) == END)
-            RExC_rx->extflags |= RXf_WHITE;
-        else if ( RExC_rx->extflags & RXf_SPLIT
-                  && (PL_regkind[fop] == EXACT && ! isEXACTFish(fop))
-                  && STR_LEN(first) == 1
-                  && *(STRING(first)) == ' '
-                  && OP(regnext(first)) == END )
-            RExC_rx->extflags |= (RXf_SKIPWHITE|RXf_WHITE);
-
-    }
-
-    if (RExC_contains_locale) {
-        RXp_EXTFLAGS(RExC_rx) |= RXf_TAINTED;
-    }
-
-#ifdef DEBUGGING
-    if (RExC_paren_names) {
-        RExC_rxi->name_list_idx = add_data( pRExC_state, STR_WITH_LEN("a"));
-        RExC_rxi->data->data[RExC_rxi->name_list_idx]
-                                   = (void*)SvREFCNT_inc(RExC_paren_name_list);
-    } else
-#endif
-    RExC_rxi->name_list_idx = 0;
-
-    while ( RExC_recurse_count > 0 ) {
-        const regnode *scan = RExC_recurse[ --RExC_recurse_count ];
-        /*
-         * This data structure is set up in study_chunk() and is used
-         * to calculate the distance between a GOSUB regopcode and
-         * the OPEN/CURLYM (CURLYM's are special and can act like OPEN's)
-         * it refers to.
-         *
-         * If for some reason someone writes code that optimises
-         * away a GOSUB opcode then the assert should be changed to
-         * an if(scan) to guard the ARG2L_SET() - Yves
-         *
-         */
-        assert(scan && OP(scan) == GOSUB);
-        ARG2L_SET( scan, RExC_open_parens[ARG(scan)] - REGNODE_OFFSET(scan));
-    }
-
-    Newxz(RExC_rx->offs, RExC_total_parens, regexp_paren_pair);
-    /* assume we don't need to swap parens around before we match */
-    DEBUG_TEST_r({
-        Perl_re_printf( aTHX_ "study_chunk_recursed_count: %lu\n",
-            (unsigned long)RExC_study_chunk_recursed_count);
-    });
-    DEBUG_DUMP_r({
-        DEBUG_RExC_seen();
-        Perl_re_printf( aTHX_ "Final program:\n");
-        regdump(RExC_rx);
-    });
-
-    if (RExC_open_parens) {
-        Safefree(RExC_open_parens);
-        RExC_open_parens = NULL;
-    }
-    if (RExC_close_parens) {
-        Safefree(RExC_close_parens);
-        RExC_close_parens = NULL;
-    }
-
-#ifdef USE_ITHREADS
-    /* under ithreads the ?pat? PMf_USED flag on the pmop is simulated
-     * by setting the regexp SV to readonly-only instead. If the
-     * pattern's been recompiled, the USEDness should remain. */
-    if (old_re && SvREADONLY(old_re))
-        SvREADONLY_on(Rx);
-#endif
-    return Rx;
-}
-
-
-SV*
-Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value,
-                    const U32 flags)
-{
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF;
-
-    PERL_UNUSED_ARG(value);
-
-    if (flags & RXapif_FETCH) {
-        return reg_named_buff_fetch(rx, key, flags);
-    } else if (flags & (RXapif_STORE | RXapif_DELETE | RXapif_CLEAR)) {
-        Perl_croak_no_modify();
-        return NULL;
-    } else if (flags & RXapif_EXISTS) {
-        return reg_named_buff_exists(rx, key, flags)
-            ? &PL_sv_yes
-            : &PL_sv_no;
-    } else if (flags & RXapif_REGNAMES) {
-        return reg_named_buff_all(rx, flags);
-    } else if (flags & (RXapif_SCALAR | RXapif_REGNAMES_COUNT)) {
-        return reg_named_buff_scalar(rx, flags);
-    } else {
-        Perl_croak(aTHX_ "panic: Unknown flags %d in named_buff", (int)flags);
-        return NULL;
-    }
-}
-
-SV*
-Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey,
-                         const U32 flags)
-{
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER;
-    PERL_UNUSED_ARG(lastkey);
-
-    if (flags & RXapif_FIRSTKEY)
-        return reg_named_buff_firstkey(rx, flags);
-    else if (flags & RXapif_NEXTKEY)
-        return reg_named_buff_nextkey(rx, flags);
-    else {
-        Perl_croak(aTHX_ "panic: Unknown flags %d in named_buff_iter",
-                                            (int)flags);
-        return NULL;
-    }
-}
-
-SV*
-Perl_reg_named_buff_fetch(pTHX_ REGEXP * const r, SV * const namesv,
-                          const U32 flags)
-{
-    SV *ret;
-    struct regexp *const rx = ReANY(r);
-
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH;
-
-    if (rx && RXp_PAREN_NAMES(rx)) {
-        HE *he_str = hv_fetch_ent( RXp_PAREN_NAMES(rx), namesv, 0, 0 );
-        if (he_str) {
-            IV i;
-            SV* sv_dat=HeVAL(he_str);
-            I32 *nums=(I32*)SvPVX(sv_dat);
-            AV * const retarray = (flags & RXapif_ALL) ? newAV() : NULL;
-            for ( i=0; i<SvIVX(sv_dat); i++ ) {
-                if ((I32)(rx->nparens) >= nums[i]
-                    && rx->offs[nums[i]].start != -1
-                    && rx->offs[nums[i]].end != -1)
-                {
-                    ret = newSVpvs("");
-                    CALLREG_NUMBUF_FETCH(r, nums[i], ret);
-                    if (!retarray)
-                        return ret;
-                } else {
-                    if (retarray)
-                        ret = newSV_type(SVt_NULL);
-                }
-                if (retarray)
-                    av_push(retarray, ret);
-            }
-            if (retarray)
-                return newRV_noinc(MUTABLE_SV(retarray));
-        }
-    }
-    return NULL;
-}
-
-bool
-Perl_reg_named_buff_exists(pTHX_ REGEXP * const r, SV * const key,
-                           const U32 flags)
-{
-    struct regexp *const rx = ReANY(r);
-
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS;
-
-    if (rx && RXp_PAREN_NAMES(rx)) {
-        if (flags & RXapif_ALL) {
-            return hv_exists_ent(RXp_PAREN_NAMES(rx), key, 0);
-        } else {
-            SV *sv = CALLREG_NAMED_BUFF_FETCH(r, key, flags);
-            if (sv) {
-                SvREFCNT_dec_NN(sv);
-                return TRUE;
-            } else {
-                return FALSE;
-            }
-        }
-    } else {
-        return FALSE;
-    }
-}
-
-SV*
-Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const r, const U32 flags)
-{
-    struct regexp *const rx = ReANY(r);
-
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY;
-
-    if ( rx && RXp_PAREN_NAMES(rx) ) {
-        (void)hv_iterinit(RXp_PAREN_NAMES(rx));
-
-        return CALLREG_NAMED_BUFF_NEXTKEY(r, NULL, flags & ~RXapif_FIRSTKEY);
-    } else {
-        return FALSE;
-    }
-}
-
-SV*
-Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const r, const U32 flags)
-{
-    struct regexp *const rx = ReANY(r);
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY;
-
-    if (rx && RXp_PAREN_NAMES(rx)) {
-        HV *hv = RXp_PAREN_NAMES(rx);
-        HE *temphe;
-        while ( (temphe = hv_iternext_flags(hv, 0)) ) {
-            IV i;
-            IV parno = 0;
-            SV* sv_dat = HeVAL(temphe);
-            I32 *nums = (I32*)SvPVX(sv_dat);
-            for ( i = 0; i < SvIVX(sv_dat); i++ ) {
-                if ((I32)(rx->lastparen) >= nums[i] &&
-                    rx->offs[nums[i]].start != -1 &&
-                    rx->offs[nums[i]].end != -1)
-                {
-                    parno = nums[i];
-                    break;
-                }
-            }
-            if (parno || flags & RXapif_ALL) {
-                return newSVhek(HeKEY_hek(temphe));
-            }
-        }
-    }
-    return NULL;
-}
-
-SV*
-Perl_reg_named_buff_scalar(pTHX_ REGEXP * const r, const U32 flags)
-{
-    SV *ret;
-    AV *av;
-    SSize_t length;
-    struct regexp *const rx = ReANY(r);
-
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR;
-
-    if (rx && RXp_PAREN_NAMES(rx)) {
-        if (flags & (RXapif_ALL | RXapif_REGNAMES_COUNT)) {
-            return newSViv(HvTOTALKEYS(RXp_PAREN_NAMES(rx)));
-        } else if (flags & RXapif_ONE) {
-            ret = CALLREG_NAMED_BUFF_ALL(r, (flags | RXapif_REGNAMES));
-            av = MUTABLE_AV(SvRV(ret));
-            length = av_count(av);
-            SvREFCNT_dec_NN(ret);
-            return newSViv(length);
-        } else {
-            Perl_croak(aTHX_ "panic: Unknown flags %d in named_buff_scalar",
-                                                (int)flags);
-            return NULL;
-        }
-    }
-    return &PL_sv_undef;
-}
-
-SV*
-Perl_reg_named_buff_all(pTHX_ REGEXP * const r, const U32 flags)
-{
-    struct regexp *const rx = ReANY(r);
-    AV *av = newAV();
-
-    PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL;
-
-    if (rx && RXp_PAREN_NAMES(rx)) {
-        HV *hv= RXp_PAREN_NAMES(rx);
-        HE *temphe;
-        (void)hv_iterinit(hv);
-        while ( (temphe = hv_iternext_flags(hv, 0)) ) {
-            IV i;
-            IV parno = 0;
-            SV* sv_dat = HeVAL(temphe);
-            I32 *nums = (I32*)SvPVX(sv_dat);
-            for ( i = 0; i < SvIVX(sv_dat); i++ ) {
-                if ((I32)(rx->lastparen) >= nums[i] &&
-                    rx->offs[nums[i]].start != -1 &&
-                    rx->offs[nums[i]].end != -1)
-                {
-                    parno = nums[i];
-                    break;
-                }
-            }
-            if (parno || flags & RXapif_ALL) {
-                av_push(av, newSVhek(HeKEY_hek(temphe)));
-            }
-        }
-    }
-
-    return newRV_noinc(MUTABLE_SV(av));
-}
-
-void
-Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const r, const I32 paren,
-                             SV * const sv)
-{
-    struct regexp *const rx = ReANY(r);
-    char *s = NULL;
-    SSize_t i = 0;
-    SSize_t s1, t1;
-    I32 n = paren;
-
-    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH;
-
-    if (      n == RX_BUFF_IDX_CARET_PREMATCH
-           || n == RX_BUFF_IDX_CARET_FULLMATCH
-           || n == RX_BUFF_IDX_CARET_POSTMATCH
-       )
-    {
-        bool keepcopy = cBOOL(rx->extflags & RXf_PMf_KEEPCOPY);
-        if (!keepcopy) {
-            /* on something like
-             *    $r = qr/.../;
-             *    /$qr/p;
-             * the KEEPCOPY is set on the PMOP rather than the regex */
-            if (PL_curpm && r == PM_GETRE(PL_curpm))
-                 keepcopy = cBOOL(PL_curpm->op_pmflags & PMf_KEEPCOPY);
-        }
-        if (!keepcopy)
-            goto ret_undef;
-    }
-
-    if (!rx->subbeg)
-        goto ret_undef;
-
-    if (n == RX_BUFF_IDX_CARET_FULLMATCH)
-        /* no need to distinguish between them any more */
-        n = RX_BUFF_IDX_FULLMATCH;
-
-    if ((n == RX_BUFF_IDX_PREMATCH || n == RX_BUFF_IDX_CARET_PREMATCH)
-        && rx->offs[0].start != -1)
-    {
-        /* $`, ${^PREMATCH} */
-        i = rx->offs[0].start;
-        s = rx->subbeg;
-    }
-    else
-    if ((n == RX_BUFF_IDX_POSTMATCH || n == RX_BUFF_IDX_CARET_POSTMATCH)
-        && rx->offs[0].end != -1)
-    {
-        /* $', ${^POSTMATCH} */
-        s = rx->subbeg - rx->suboffset + rx->offs[0].end;
-        i = rx->sublen + rx->suboffset - rx->offs[0].end;
-    }
-    else
-    if (inRANGE(n, 0, (I32)rx->nparens) &&
-        (s1 = rx->offs[n].start) != -1  &&
-        (t1 = rx->offs[n].end) != -1)
-    {
-        /* $&, ${^MATCH},  $1 ... */
-        i = t1 - s1;
-        s = rx->subbeg + s1 - rx->suboffset;
-    } else {
-        goto ret_undef;
-    }
-
-    assert(s >= rx->subbeg);
-    assert((STRLEN)rx->sublen >= (STRLEN)((s - rx->subbeg) + i) );
-    if (i >= 0) {
-#ifdef NO_TAINT_SUPPORT
-        sv_setpvn(sv, s, i);
-#else
-        const int oldtainted = TAINT_get;
-        TAINT_NOT;
-        sv_setpvn(sv, s, i);
-        TAINT_set(oldtainted);
-#endif
-        if (RXp_MATCH_UTF8(rx))
-            SvUTF8_on(sv);
-        else
-            SvUTF8_off(sv);
-        if (TAINTING_get) {
-            if (RXp_MATCH_TAINTED(rx)) {
-                if (SvTYPE(sv) >= SVt_PVMG) {
-                    MAGIC* const mg = SvMAGIC(sv);
-                    MAGIC* mgt;
-                    TAINT;
-                    SvMAGIC_set(sv, mg->mg_moremagic);
-                    SvTAINT(sv);
-                    if ((mgt = SvMAGIC(sv))) {
-                        mg->mg_moremagic = mgt;
-                        SvMAGIC_set(sv, mg);
-                    }
-                } else {
-                    TAINT;
-                    SvTAINT(sv);
-                }
-            } else
-                SvTAINTED_off(sv);
-        }
-    } else {
-      ret_undef:
-        sv_set_undef(sv);
-        return;
-    }
-}
-
-void
-Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren,
-                                                         SV const * const value)
-{
-    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE;
-
-    PERL_UNUSED_ARG(rx);
-    PERL_UNUSED_ARG(paren);
-    PERL_UNUSED_ARG(value);
-
-    if (!PL_localizing)
-        Perl_croak_no_modify();
-}
-
-I32
-Perl_reg_numbered_buff_length(pTHX_ REGEXP * const r, const SV * const sv,
-                              const I32 paren)
-{
-    struct regexp *const rx = ReANY(r);
-    I32 i;
-    I32 s1, t1;
-
-    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH;
-
-    if (   paren == RX_BUFF_IDX_CARET_PREMATCH
-        || paren == RX_BUFF_IDX_CARET_FULLMATCH
-        || paren == RX_BUFF_IDX_CARET_POSTMATCH
-    )
-    {
-        bool keepcopy = cBOOL(rx->extflags & RXf_PMf_KEEPCOPY);
-        if (!keepcopy) {
-            /* on something like
-             *    $r = qr/.../;
-             *    /$qr/p;
-             * the KEEPCOPY is set on the PMOP rather than the regex */
-            if (PL_curpm && r == PM_GETRE(PL_curpm))
-                 keepcopy = cBOOL(PL_curpm->op_pmflags & PMf_KEEPCOPY);
-        }
-        if (!keepcopy)
-            goto warn_undef;
-    }
-
-    /* Some of this code was originally in C<Perl_magic_len> in F<mg.c> */
-    switch (paren) {
-      case RX_BUFF_IDX_CARET_PREMATCH: /* ${^PREMATCH} */
-      case RX_BUFF_IDX_PREMATCH:       /* $` */
-        if (rx->offs[0].start != -1) {
-                        i = rx->offs[0].start;
-                        if (i > 0) {
-                                s1 = 0;
-                                t1 = i;
-                                goto getlen;
-                        }
-            }
-        return 0;
-
-      case RX_BUFF_IDX_CARET_POSTMATCH: /* ${^POSTMATCH} */
-      case RX_BUFF_IDX_POSTMATCH:       /* $' */
-            if (rx->offs[0].end != -1) {
-                        i = rx->sublen - rx->offs[0].end;
-                        if (i > 0) {
-                                s1 = rx->offs[0].end;
-                                t1 = rx->sublen;
-                                goto getlen;
-                        }
-            }
-        return 0;
-
-      default: /* $& / ${^MATCH}, $1, $2, ... */
-            if (paren <= (I32)rx->nparens &&
-            (s1 = rx->offs[paren].start) != -1 &&
-            (t1 = rx->offs[paren].end) != -1)
-            {
-            i = t1 - s1;
-            goto getlen;
-        } else {
-          warn_undef:
-            if (ckWARN(WARN_UNINITIALIZED))
-                report_uninit((const SV *)sv);
-            return 0;
-        }
-    }
-  getlen:
-    if (i > 0 && RXp_MATCH_UTF8(rx)) {
-        const char * const s = rx->subbeg - rx->suboffset + s1;
-        const U8 *ep;
-        STRLEN el;
-
-        i = t1 - s1;
-        if (is_utf8_string_loclen((U8*)s, i, &ep, &el))
-            i = el;
-    }
-    return i;
-}
-
-SV*
-Perl_reg_qr_package(pTHX_ REGEXP * const rx)
-{
-    PERL_ARGS_ASSERT_REG_QR_PACKAGE;
-        PERL_UNUSED_ARG(rx);
-        if (0)
-            return NULL;
-        else
-            return newSVpvs("Regexp");
+    /* Adding a trailing \n causes this to compile properly:
+            my $R = qr / A B C # D E/x; /($R)/
+        Otherwise the parens are considered part of the comment */
+    if (has_runon)
+        *p++ = '\n';
+    *p++ = ')';
+    *p = 0;
+    SvCUR_set(Rx, p - RX_WRAPPED(Rx));
 }
 
-/* Scans the name of a named buffer from the pattern.
- * If flags is REG_RSN_RETURN_NULL returns null.
- * If flags is REG_RSN_RETURN_NAME returns an SV* containing the name
- * If flags is REG_RSN_RETURN_DATA returns the data SV* corresponding
- * to the parsed name as looked up in the RExC_paren_names hash.
- * If there is an error throws a vFAIL().. type exception.
+/*
+ * Perl_re_op_compile - the perl internal RE engine's function to compile a
+ * regular expression into internal code.
+ * The pattern may be passed either as:
+ *    a list of SVs (patternp plus pat_count)
+ *    a list of OPs (expr)
+ * If both are passed, the SV list is used, but the OP list indicates
+ * which SVs are actually pre-compiled code blocks
+ *
+ * The SVs in the list have magic and qr overloading applied to them (and
+ * the list may be modified in-place with replacement SVs in the latter
+ * case).
+ *
+ * If the pattern hasn't changed from old_re, then old_re will be
+ * returned.
+ *
+ * eng is the current engine. If that engine has an op_comp method, then
+ * handle directly (i.e. we assume that op_comp was us); otherwise, just
+ * do the initial concatenation of arguments and pass on to the external
+ * engine.
+ *
+ * If is_bare_re is not null, set it to a boolean indicating whether the
+ * arg list reduced (after overloading) to a single bare regex which has
+ * been returned (i.e. /$qr/).
+ *
+ * orig_rx_flags contains RXf_* flags. See perlreapi.pod for more details.
+ *
+ * pm_flags contains the PMf_* flags, typically based on those from the
+ * pm_flags field of the related PMOP. Currently we're only interested in
+ * PMf_HAS_CV, PMf_IS_QR, PMf_USE_RE_EVAL, PMf_WILDCARD.
+ *
+ * For many years this code had an initial sizing pass that calculated
+ * (sometimes incorrectly, leading to security holes) the size needed for the
+ * compiled pattern.  That was changed by commit
+ * 7c932d07cab18751bfc7515b4320436273a459e2 in 5.29, which reallocs the size, a
+ * node at a time, as parsing goes along.  Patches welcome to fix any obsolete
+ * references to this sizing pass.
+ *
+ * Now, an initial crude guess as to the size needed is made, based on the
+ * length of the pattern.  Patches welcome to improve that guess.  That amount
+ * of space is malloc'd and then immediately freed, and then clawed back node
+ * by node.  This design is to minimize, to the extent possible, memory churn
+ * when doing the reallocs.
+ *
+ * A separate parentheses counting pass may be needed in some cases.
+ * (Previously the sizing pass did this.)  Patches welcome to reduce the number
+ * of these cases.
+ *
+ * The existence of a sizing pass necessitated design decisions that are no
+ * longer needed.  There are potential areas of simplification.
+ *
+ * Beware that the optimization-preparation code in here knows about some
+ * of the structure of the compiled regexp.  [I'll say.]
  */
 
-#define REG_RSN_RETURN_NULL    0
-#define REG_RSN_RETURN_NAME    1
-#define REG_RSN_RETURN_DATA    2
-
-STATIC SV*
-S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags)
+REGEXP *
+Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
+                    OP *expr, const regexp_engine* eng, REGEXP *old_re,
+                     bool *is_bare_re, const U32 orig_rx_flags, const U32 pm_flags)
 {
-    char *name_start = RExC_parse;
-    SV* sv_name;
-
-    PERL_ARGS_ASSERT_REG_SCAN_NAME;
-
-    assert (RExC_parse <= RExC_end);
-    if (RExC_parse == RExC_end) NOOP;
-    else if (isIDFIRST_lazy_if_safe(RExC_parse, RExC_end, UTF)) {
-         /* Note that the code here assumes well-formed UTF-8.  Skip IDFIRST by
-          * using do...while */
-        if (UTF)
-            do {
-                RExC_parse_inc_utf8();
-            } while (   RExC_parse < RExC_end
-                     && isWORDCHAR_utf8_safe((U8*)RExC_parse, (U8*) RExC_end));
-        else
-            do {
-                RExC_parse_inc_by(1);
-            } while (RExC_parse < RExC_end && isWORDCHAR(*RExC_parse));
-    } else {
-        RExC_parse_inc_by(1); /* so the <- from the vFAIL is after the offending
-                         character */
-        vFAIL("Group name must start with a non-digit word character");
-    }
-    sv_name = newSVpvn_flags(name_start, (int)(RExC_parse - name_start),
-                             SVs_TEMP | (UTF ? SVf_UTF8 : 0));
-    if ( flags == REG_RSN_RETURN_NAME)
-        return sv_name;
-    else if (flags==REG_RSN_RETURN_DATA) {
-        HE *he_str = NULL;
-        SV *sv_dat = NULL;
-        if ( ! sv_name )      /* should not happen*/
-            Perl_croak(aTHX_ "panic: no svname in reg_scan_name");
-        if (RExC_paren_names)
-            he_str = hv_fetch_ent( RExC_paren_names, sv_name, 0, 0 );
-        if ( he_str )
-            sv_dat = HeVAL(he_str);
-        if ( ! sv_dat ) {   /* Didn't find group */
-
-            /* It might be a forward reference; we can't fail until we
-                * know, by completing the parse to get all the groups, and
-                * then reparsing */
-            if (ALL_PARENS_COUNTED)  {
-                vFAIL("Reference to nonexistent named group");
-            }
-            else {
-                REQUIRE_PARENS_PASS;
-            }
-        }
-        return sv_dat;
-    }
-
-    Perl_croak(aTHX_ "panic: bad flag %lx in reg_scan_name",
-                     (unsigned long) flags);
-}
-
-#define DEBUG_PARSE_MSG(funcname)     DEBUG_PARSE_r({           \
-    if (RExC_lastparse!=RExC_parse) {                           \
-        Perl_re_printf( aTHX_  "%s",                            \
-            Perl_pv_pretty(aTHX_ RExC_mysv1, RExC_parse,        \
-                RExC_end - RExC_parse, 16,                      \
-                "", "",                                         \
-                PERL_PV_ESCAPE_UNI_DETECT |                     \
-                PERL_PV_PRETTY_ELLIPSES   |                     \
-                PERL_PV_PRETTY_LTGT       |                     \
-                PERL_PV_ESCAPE_RE         |                     \
-                PERL_PV_PRETTY_EXACTSIZE                        \
-            )                                                   \
-        );                                                      \
-    } else                                                      \
-        Perl_re_printf( aTHX_ "%16s","");                       \
-                                                                \
-    if (RExC_lastnum!=RExC_emit)                                \
-       Perl_re_printf( aTHX_ "|%4zu", RExC_emit);                \
-    else                                                        \
-       Perl_re_printf( aTHX_ "|%4s","");                        \
-    Perl_re_printf( aTHX_ "|%*s%-4s",                           \
-        (int)((depth*2)), "",                                   \
-        (funcname)                                              \
-    );                                                          \
-    RExC_lastnum=RExC_emit;                                     \
-    RExC_lastparse=RExC_parse;                                  \
-})
+    REGEXP *Rx;         /* Capital 'R' means points to a REGEXP */
+    STRLEN plen;
+    char *exp;
+    regnode *scan;
+    I32 flags;
+    SSize_t minlen = 0;
+    U32 rx_flags;
+    SV *pat;
+    SV** new_patternp = patternp;
 
+    /* these are all flags - maybe they should be turned
+     * into a single int with different bit masks */
+    I32 sawlookahead = 0;
+    I32 sawplus = 0;
+    I32 sawopen = 0;
+    I32 sawminmod = 0;
 
+    regex_charset initial_charset = get_regex_charset(orig_rx_flags);
+    bool recompile = 0;
+    bool runtime_code = 0;
+    scan_data_t data;
+    RExC_state_t RExC_state;
+    RExC_state_t * const pRExC_state = &RExC_state;
+#ifdef TRIE_STUDY_OPT
+    /* search for "restudy" in this file for a detailed explanation */
+    int restudied = 0;
+    RExC_state_t copyRExC_state;
+#endif
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
-#define DEBUG_PARSE(funcname)     DEBUG_PARSE_r({           \
-    DEBUG_PARSE_MSG((funcname));                            \
-    Perl_re_printf( aTHX_ "%4s","\n");                                  \
-})
-#define DEBUG_PARSE_FMT(funcname,fmt,args)     DEBUG_PARSE_r({\
-    DEBUG_PARSE_MSG((funcname));                            \
-    Perl_re_printf( aTHX_ fmt "\n",args);                               \
-})
+    PERL_ARGS_ASSERT_RE_OP_COMPILE;
 
-/* This section of code defines the inversion list object and its methods.  The
- * interfaces are highly subject to change, so as much as possible is static to
- * this file.  An inversion list is here implemented as a malloc'd C UV array
- * as an SVt_INVLIST scalar.
- *
- * An inversion list for Unicode is an array of code points, sorted by ordinal
- * number.  Each element gives the code point that begins a range that extends
- * up-to but not including the code point given by the next element.  The final
- * element gives the first code point of a range that extends to the platform's
- * infinity.  The even-numbered elements (invlist[0], invlist[2], invlist[4],
- * ...) give ranges whose code points are all in the inversion list.  We say
- * that those ranges are in the set.  The odd-numbered elements give ranges
- * whose code points are not in the inversion list, and hence not in the set.
- * Thus, element [0] is the first code point in the list.  Element [1]
- * is the first code point beyond that not in the list; and element [2] is the
- * first code point beyond that that is in the list.  In other words, the first
- * range is invlist[0]..(invlist[1]-1), and all code points in that range are
- * in the inversion list.  The second range is invlist[1]..(invlist[2]-1), and
- * all code points in that range are not in the inversion list.  The third
- * range invlist[2]..(invlist[3]-1) gives code points that are in the inversion
- * list, and so forth.  Thus every element whose index is divisible by two
- * gives the beginning of a range that is in the list, and every element whose
- * index is not divisible by two gives the beginning of a range not in the
- * list.  If the final element's index is divisible by two, the inversion list
- * extends to the platform's infinity; otherwise the highest code point in the
- * inversion list is the contents of that element minus 1.
- *
- * A range that contains just a single code point N will look like
- *  invlist[i]   == N
- *  invlist[i+1] == N+1
- *
- * If N is UV_MAX (the highest representable code point on the machine), N+1 is
- * impossible to represent, so element [i+1] is omitted.  The single element
- * inversion list
- *  invlist[0] == UV_MAX
- * contains just UV_MAX, but is interpreted as matching to infinity.
- *
- * Taking the complement (inverting) an inversion list is quite simple, if the
- * first element is 0, remove it; otherwise add a 0 element at the beginning.
- * This implementation reserves an element at the beginning of each inversion
- * list to always contain 0; there is an additional flag in the header which
- * indicates if the list begins at the 0, or is offset to begin at the next
- * element.  This means that the inversion list can be inverted without any
- * copying; just flip the flag.
- *
- * More about inversion lists can be found in "Unicode Demystified"
- * Chapter 13 by Richard Gillam, published by Addison-Wesley.
- *
- * The inversion list data structure is currently implemented as an SV pointing
- * to an array of UVs that the SV thinks are bytes.  This allows us to have an
- * array of UV whose memory management is automatically handled by the existing
- * facilities for SV's.
- *
- * Some of the methods should always be private to the implementation, and some
- * should eventually be made public */
+    DEBUG_r(if (!PL_colorset) reginitcolors());
 
-/* The header definitions are in F<invlist_inline.h> */
 
-#ifndef PERL_IN_XSUB_RE
+    pRExC_state->warn_text = NULL;
+    pRExC_state->unlexed_names = NULL;
+    pRExC_state->code_blocks = NULL;
 
-PERL_STATIC_INLINE UV*
-S__invlist_array_init(SV* const invlist, const bool will_have_0)
-{
-    /* Returns a pointer to the first element in the inversion list's array.
-     * This is called upon initialization of an inversion list.  Where the
-     * array begins depends on whether the list has the code point U+0000 in it
-     * or not.  The other parameter tells it whether the code that follows this
-     * call is about to put a 0 in the inversion list or not.  The first
-     * element is either the element reserved for 0, if TRUE, or the element
-     * after it, if FALSE */
-
-    bool* offset = get_invlist_offset_addr(invlist);
-    UV* zero_addr = (UV *) SvPVX(invlist);
-
-    PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT;
-
-    /* Must be empty */
-    assert(! _invlist_len(invlist));
-
-    *zero_addr = 0;
-
-    /* 1^1 = 0; 1^0 = 1 */
-    *offset = 1 ^ will_have_0;
-    return zero_addr + *offset;
-}
+    if (is_bare_re)
+        *is_bare_re = FALSE;
 
-STATIC void
-S_invlist_replace_list_destroys_src(pTHX_ SV * dest, SV * src)
-{
-    /* Replaces the inversion list in 'dest' with the one from 'src'.  It
-     * steals the list from 'src', so 'src' is made to have a NULL list.  This
-     * is similar to what SvSetMagicSV() would do, if it were implemented on
-     * inversion lists, though this routine avoids a copy */
-
-    const UV src_len          = _invlist_len(src);
-    const bool src_offset     = *get_invlist_offset_addr(src);
-    const STRLEN src_byte_len = SvLEN(src);
-    char * array              = SvPVX(src);
+    if (expr && (expr->op_type == OP_LIST ||
+                (expr->op_type == OP_NULL && expr->op_targ == OP_LIST))) {
+        /* allocate code_blocks if needed */
+        OP *o;
+        int ncode = 0;
 
-#ifndef NO_TAINT_SUPPORT
-    const int oldtainted = TAINT_get;
-#endif
+        for (o = cLISTOPx(expr)->op_first; o; o = OpSIBLING(o))
+            if (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL))
+                ncode++; /* count of DO blocks */
 
-    PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC;
+        if (ncode)
+            pRExC_state->code_blocks = S_alloc_code_blocks(aTHX_ ncode);
+    }
 
-    assert(is_invlist(src));
-    assert(is_invlist(dest));
-    assert(! invlist_is_iterating(src));
-    assert(SvCUR(src) == 0 || SvCUR(src) < SvLEN(src));
-
-    /* Make sure it ends in the right place with a NUL, as our inversion list
-     * manipulations aren't careful to keep this true, but sv_usepvn_flags()
-     * asserts it */
-    array[src_byte_len - 1] = '\0';
-
-    TAINT_NOT;      /* Otherwise it breaks */
-    sv_usepvn_flags(dest,
-                    (char *) array,
-                    src_byte_len - 1,
-
-                    /* This flag is documented to cause a copy to be avoided */
-                    SV_HAS_TRAILING_NUL);
-    TAINT_set(oldtainted);
-    SvPV_set(src, 0);
-    SvLEN_set(src, 0);
-    SvCUR_set(src, 0);
-
-    /* Finish up copying over the other fields in an inversion list */
-    *get_invlist_offset_addr(dest) = src_offset;
-    invlist_set_len(dest, src_len, src_offset);
-    *get_invlist_previous_index_addr(dest) = 0;
-    invlist_iterfinish(dest);
-}
+    if (!pat_count) {
+        /* compile-time pattern with just OP_CONSTs and DO blocks */
 
-PERL_STATIC_INLINE IV*
-S_get_invlist_previous_index_addr(SV* invlist)
-{
-    /* Return the address of the IV that is reserved to hold the cached index
-     * */
-    PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR;
+        int n;
+        OP *o;
 
-    assert(is_invlist(invlist));
+        /* find how many CONSTs there are */
+        assert(expr);
+        n = 0;
+        if (expr->op_type == OP_CONST)
+            n = 1;
+        else
+            for (o = cLISTOPx(expr)->op_first; o; o = OpSIBLING(o)) {
+                if (o->op_type == OP_CONST)
+                    n++;
+            }
 
-    return &(((XINVLIST*) SvANY(invlist))->prev_index);
-}
+        /* fake up an SV array */
 
-PERL_STATIC_INLINE IV
-S_invlist_previous_index(SV* const invlist)
-{
-    /* Returns cached index of previous search */
+        assert(!new_patternp);
+        Newx(new_patternp, n, SV*);
+        SAVEFREEPV(new_patternp);
+        pat_count = n;
 
-    PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX;
+        n = 0;
+        if (expr->op_type == OP_CONST)
+            new_patternp[n] = cSVOPx_sv(expr);
+        else
+            for (o = cLISTOPx(expr)->op_first; o; o = OpSIBLING(o)) {
+                if (o->op_type == OP_CONST)
+                    new_patternp[n++] = cSVOPo_sv;
+            }
 
-    return *get_invlist_previous_index_addr(invlist);
-}
+    }
 
-PERL_STATIC_INLINE void
-S_invlist_set_previous_index(SV* const invlist, const IV index)
-{
-    /* Caches <index> for later retrieval */
+    DEBUG_PARSE_r(Perl_re_printf( aTHX_
+        "Assembling pattern from %d elements%s\n", pat_count,
+            orig_rx_flags & RXf_SPLIT ? " for split" : ""));
 
-    PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX;
+    /* set expr to the first arg op */
 
-    assert(index == 0 || index < (int) _invlist_len(invlist));
+    if (pRExC_state->code_blocks && pRExC_state->code_blocks->count
+         && expr->op_type != OP_CONST)
+    {
+            expr = cLISTOPx(expr)->op_first;
+            assert(   expr->op_type == OP_PUSHMARK
+                   || (expr->op_type == OP_NULL && expr->op_targ == OP_PUSHMARK)
+                   || expr->op_type == OP_PADRANGE);
+            expr = OpSIBLING(expr);
+    }
 
-    *get_invlist_previous_index_addr(invlist) = index;
-}
+    pat = S_concat_pat(aTHX_ pRExC_state, NULL, new_patternp, pat_count,
+                        expr, &recompile, NULL);
 
-PERL_STATIC_INLINE void
-S_invlist_trim(SV* invlist)
-{
-    /* Free the not currently-being-used space in an inversion list */
+    /* handle bare (possibly after overloading) regex: foo =~ $re */
+    {
+        SV *re = pat;
+        if (SvROK(re))
+            re = SvRV(re);
+        if (SvTYPE(re) == SVt_REGEXP) {
+            if (is_bare_re)
+                *is_bare_re = TRUE;
+            SvREFCNT_inc(re);
+            DEBUG_PARSE_r(Perl_re_printf( aTHX_
+                "Precompiled pattern%s\n",
+                    orig_rx_flags & RXf_SPLIT ? " for split" : ""));
 
-    /* But don't free up the space needed for the 0 UV that is always at the
-     * beginning of the list, nor the trailing NUL */
-    const UV min_size = TO_INTERNAL_SIZE(1) + 1;
+            return (REGEXP*)re;
+        }
+    }
 
-    PERL_ARGS_ASSERT_INVLIST_TRIM;
+    exp = SvPV_nomg(pat, plen);
 
-    assert(is_invlist(invlist));
+    if (!eng->op_comp) {
+        if ((SvUTF8(pat) && IN_BYTES)
+                || SvGMAGICAL(pat) || SvAMAGIC(pat))
+        {
+            /* make a temporary copy; either to convert to bytes,
+             * or to avoid repeating get-magic / overloaded stringify */
+            pat = newSVpvn_flags(exp, plen, SVs_TEMP |
+                                        (IN_BYTES ? 0 : SvUTF8(pat)));
+        }
+        return CALLREGCOMP_ENG(eng, pat, orig_rx_flags);
+    }
 
-    SvPV_renew(invlist, MAX(min_size, SvCUR(invlist) + 1));
-}
+    /* ignore the utf8ness if the pattern is 0 length */
+    RExC_utf8 = RExC_orig_utf8 = (plen == 0 || IN_BYTES) ? 0 : SvUTF8(pat);
+    RExC_uni_semantics = 0;
+    RExC_contains_locale = 0;
+    RExC_strict = cBOOL(pm_flags & RXf_PMf_STRICT);
+    RExC_in_script_run = 0;
+    RExC_study_started = 0;
+    pRExC_state->runtime_code_qr = NULL;
+    RExC_frame_head= NULL;
+    RExC_frame_last= NULL;
+    RExC_frame_count= 0;
+    RExC_latest_warn_offset = 0;
+    RExC_use_BRANCHJ = 0;
+    RExC_warned_WARN_EXPERIMENTAL__VLB = 0;
+    RExC_warned_WARN_EXPERIMENTAL__REGEX_SETS = 0;
+    RExC_logical_total_parens = 0;
+    RExC_total_parens = 0;
+    RExC_logical_to_parno = NULL;
+    RExC_parno_to_logical = NULL;
+    RExC_open_parens = NULL;
+    RExC_close_parens = NULL;
+    RExC_paren_names = NULL;
+    RExC_size = 0;
+    RExC_seen_d_op = FALSE;
+#ifdef DEBUGGING
+    RExC_paren_name_list = NULL;
+#endif
 
-PERL_STATIC_INLINE void
-S_invlist_clear(pTHX_ SV* invlist)    /* Empty the inversion list */
-{
-    PERL_ARGS_ASSERT_INVLIST_CLEAR;
+    DEBUG_r({
+        RExC_mysv1= sv_newmortal();
+        RExC_mysv2= sv_newmortal();
+    });
 
-    assert(is_invlist(invlist));
+    DEBUG_COMPILE_r({
+            SV *dsv= sv_newmortal();
+            RE_PV_QUOTED_DECL(s, RExC_utf8, dsv, exp, plen, PL_dump_re_max_len);
+            Perl_re_printf( aTHX_  "%sCompiling REx%s %s\n",
+                          PL_colors[4], PL_colors[5], s);
+        });
 
-    invlist_set_len(invlist, 0, 0);
-    invlist_trim(invlist);
-}
+    /* we jump here if we have to recompile, e.g., from upgrading the pattern
+     * to utf8 */
+
+    if ((pm_flags & PMf_USE_RE_EVAL)
+                /* this second condition covers the non-regex literal case,
+                 * i.e.  $foo =~ '(?{})'. */
+                || (IN_PERL_COMPILETIME && (PL_hints & HINT_RE_EVAL))
+    )
+        runtime_code = S_has_runtime_code(aTHX_ pRExC_state, exp, plen);
 
-#endif /* ifndef PERL_IN_XSUB_RE */
+  redo_parse:
+    /* return old regex if pattern hasn't changed */
+    /* XXX: note in the below we have to check the flags as well as the
+     * pattern.
+     *
+     * Things get a touch tricky as we have to compare the utf8 flag
+     * independently from the compile flags.  */
 
-PERL_STATIC_INLINE bool
-S_invlist_is_iterating(const SV* const invlist)
-{
-    PERL_ARGS_ASSERT_INVLIST_IS_ITERATING;
+    if (   old_re
+        && !recompile
+        && cBOOL(RX_UTF8(old_re)) == cBOOL(RExC_utf8)
+        && ( RX_COMPFLAGS(old_re) == ( orig_rx_flags & RXf_PMf_FLAGCOPYMASK ) )
+        && RX_PRELEN(old_re) == plen
+        && memEQ(RX_PRECOMP(old_re), exp, plen)
+        && !runtime_code /* with runtime code, always recompile */ )
+    {
+        DEBUG_COMPILE_r({
+            SV *dsv= sv_newmortal();
+            RE_PV_QUOTED_DECL(s, RExC_utf8, dsv, exp, plen, PL_dump_re_max_len);
+            Perl_re_printf( aTHX_  "%sSkipping recompilation of unchanged REx%s %s\n",
+                          PL_colors[4], PL_colors[5], s);
+        });
+        return old_re;
+    }
 
-    /* get_invlist_iter_addr()'s sv is non-const only because it returns a
-     * value that can be used to modify the invlist, it doesn't modify the
-     * invlist itself */
-    return *(get_invlist_iter_addr((SV*)invlist)) < (STRLEN) UV_MAX;
-}
+    /* Allocate the pattern's SV */
+    RExC_rx_sv = Rx = (REGEXP*) newSV_type(SVt_REGEXP);
+    RExC_rx = ReANY(Rx);
+    if ( RExC_rx == NULL )
+        FAIL("Regexp out of space");
 
-#ifndef PERL_IN_XSUB_RE
+    rx_flags = orig_rx_flags;
 
-PERL_STATIC_INLINE UV
-S_invlist_max(const SV* const invlist)
-{
-    /* Returns the maximum number of elements storable in the inversion list's
-     * array, without having to realloc() */
+    if (   toUSE_UNI_CHARSET_NOT_DEPENDS
+        && initial_charset == REGEX_DEPENDS_CHARSET)
+    {
 
-    PERL_ARGS_ASSERT_INVLIST_MAX;
+        /* Set to use unicode semantics if the pattern is in utf8 and has the
+         * 'depends' charset specified, as it means unicode when utf8  */
+        set_regex_charset(&rx_flags, REGEX_UNICODE_CHARSET);
+        RExC_uni_semantics = 1;
+    }
 
-    assert(is_invlist(invlist));
+    RExC_pm_flags = pm_flags;
 
-    /* Assumes worst case, in which the 0 element is not counted in the
-     * inversion list, so subtracts 1 for that */
-    return SvLEN(invlist) == 0  /* This happens under _new_invlist_C_array */
-           ? FROM_INTERNAL_SIZE(SvCUR(invlist)) - 1
-           : FROM_INTERNAL_SIZE(SvLEN(invlist)) - 1;
-}
+    if (runtime_code) {
+        assert(TAINTING_get || !TAINT_get);
+        if (TAINT_get)
+            Perl_croak(aTHX_ "Eval-group in insecure regular expression");
 
-STATIC void
-S_initialize_invlist_guts(pTHX_ SV* invlist, const Size_t initial_size)
-{
-    PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS;
+        if (!S_compile_runtime_code(aTHX_ pRExC_state, exp, plen)) {
+            /* whoops, we have a non-utf8 pattern, whilst run-time code
+             * got compiled as utf8. Try again with a utf8 pattern */
+            S_pat_upgrade_to_utf8(aTHX_ pRExC_state, &exp, &plen,
+                pRExC_state->code_blocks ? pRExC_state->code_blocks->count : 0);
+            goto redo_parse;
+        }
+    }
+    assert(!pRExC_state->runtime_code_qr);
 
-    /* First 1 is in case the zero element isn't in the list; second 1 is for
-     * trailing NUL */
-    SvGROW(invlist, TO_INTERNAL_SIZE(initial_size + 1) + 1);
-    invlist_set_len(invlist, 0, 0);
+    RExC_sawback = 0;
 
-    /* Force iterinit() to be used to get iteration to work */
-    invlist_iterfinish(invlist);
+    RExC_seen = 0;
+    RExC_maxlen = 0;
+    RExC_in_lookaround = 0;
+    RExC_seen_zerolen = *exp == '^' ? -1 : 0;
+    RExC_recode_x_to_native = 0;
+    RExC_in_multi_char_class = 0;
 
-    *get_invlist_previous_index_addr(invlist) = 0;
-    SvPOK_on(invlist);  /* This allows B to extract the PV */
-}
+    RExC_start = RExC_copy_start_in_constructed = RExC_copy_start_in_input = RExC_precomp = exp;
+    RExC_precomp_end = RExC_end = exp + plen;
+    RExC_nestroot = 0;
+    RExC_whilem_seen = 0;
+    RExC_end_op = NULL;
+    RExC_recurse = NULL;
+    RExC_study_chunk_recursed = NULL;
+    RExC_study_chunk_recursed_bytes= 0;
+    RExC_recurse_count = 0;
+    RExC_sets_depth = 0;
+    pRExC_state->code_index = 0;
 
-SV*
-Perl__new_invlist(pTHX_ IV initial_size)
-{
+    /* Initialize the string in the compiled pattern.  This is so that there is
+     * something to output if necessary */
+    set_regex_pv(pRExC_state, Rx);
 
-    /* Return a pointer to a newly constructed inversion list, with enough
-     * space to store 'initial_size' elements.  If that number is negative, a
-     * system default is used instead */
+    DEBUG_PARSE_r({
+        Perl_re_printf( aTHX_
+            "Starting parse and generation\n");
+        RExC_lastnum=0;
+        RExC_lastparse=NULL;
+    });
 
-    SV* new_list;
+    /* Allocate space and zero-initialize. Note, the two step process
+       of zeroing when in debug mode, thus anything assigned has to
+       happen after that */
+    if (!  RExC_size) {
 
-    if (initial_size < 0) {
-        initial_size = 10;
+        /* On the first pass of the parse, we guess how big this will be.  Then
+         * we grow in one operation to that amount and then give it back.  As
+         * we go along, we re-allocate what we need.
+         *
+         * XXX Currently the guess is essentially that the pattern will be an
+         * EXACT node with one byte input, one byte output.  This is crude, and
+         * better heuristics are welcome.
+         *
+         * On any subsequent passes, we guess what we actually computed in the
+         * latest earlier pass.  Such a pass probably didn't complete so is
+         * missing stuff.  We could improve those guesses by knowing where the
+         * parse stopped, and use the length so far plus apply the above
+         * assumption to what's left. */
+        RExC_size = STR_SZ(RExC_end - RExC_start);
     }
 
-    new_list = newSV_type(SVt_INVLIST);
-    initialize_invlist_guts(new_list, initial_size);
-
-    return new_list;
-}
+    Newxc(RExC_rxi, sizeof(regexp_internal) + RExC_size, char, regexp_internal);
+    if ( RExC_rxi == NULL )
+        FAIL("Regexp out of space");
 
-SV*
-Perl__new_invlist_C_array(pTHX_ const UV* const list)
-{
-    /* Return a pointer to a newly constructed inversion list, initialized to
-     * point to <list>, which has to be in the exact correct inversion list
-     * form, including internal fields.  Thus this is a dangerous routine that
-     * should not be used in the wrong hands.  The passed in 'list' contains
-     * several header fields at the beginning that are not part of the
-     * inversion list body proper */
-
-    const STRLEN length = (STRLEN) list[0];
-    const UV version_id =          list[1];
-    const bool offset   =    cBOOL(list[2]);
-#define HEADER_LENGTH 3
-    /* If any of the above changes in any way, you must change HEADER_LENGTH
-     * (if appropriate) and regenerate INVLIST_VERSION_ID by running
-     *      perl -E 'say int(rand 2**31-1)'
-     */
-#define INVLIST_VERSION_ID 148565664 /* This is a combination of a version and
-                                        data structure type, so that one being
-                                        passed in can be validated to be an
-                                        inversion list of the correct vintage.
-                                       */
+    Zero(RExC_rxi, sizeof(regexp_internal) + RExC_size, char);
+    RXi_SET( RExC_rx, RExC_rxi );
 
-    SV* invlist = newSV_type(SVt_INVLIST);
+    /* We start from 0 (over from 0 in the case this is a reparse.  The first
+     * node parsed will give back any excess memory we have allocated so far).
+     * */
+    RExC_size = 0;
 
-    PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY;
+    /* non-zero initialization begins here */
+    RExC_rx->engine= eng;
+    RExC_rx->extflags = rx_flags;
+    RXp_COMPFLAGS(RExC_rx) = orig_rx_flags & RXf_PMf_FLAGCOPYMASK;
 
-    if (version_id != INVLIST_VERSION_ID) {
-        Perl_croak(aTHX_ "panic: Incorrect version for previously generated inversion list");
+    if (pm_flags & PMf_IS_QR) {
+        RExC_rxi->code_blocks = pRExC_state->code_blocks;
+        if (RExC_rxi->code_blocks) {
+            RExC_rxi->code_blocks->refcnt++;
+        }
     }
 
-    /* The generated array passed in includes header elements that aren't part
-     * of the list proper, so start it just after them */
-    SvPV_set(invlist, (char *) (list + HEADER_LENGTH));
-
-    SvLEN_set(invlist, 0);  /* Means we own the contents, and the system
-                               shouldn't touch it */
-
-    *(get_invlist_offset_addr(invlist)) = offset;
-
-    /* The 'length' passed to us is the physical number of elements in the
-     * inversion list.  But if there is an offset the logical number is one
-     * less than that */
-    invlist_set_len(invlist, length  - offset, offset);
+    RExC_rx->intflags = 0;
 
-    invlist_set_previous_index(invlist, 0);
+    RExC_flags = rx_flags;	/* don't let top level (?i) bleed */
+    RExC_parse_set(exp);
 
-    /* Initialize the iteration pointer. */
-    invlist_iterfinish(invlist);
+    /* This NUL is guaranteed because the pattern comes from an SV*, and the sv
+     * code makes sure the final byte is an uncounted NUL.  But should this
+     * ever not be the case, lots of things could read beyond the end of the
+     * buffer: loops like
+     *      while(isFOO(*RExC_parse)) RExC_parse_inc_by(1);
+     *      strchr(RExC_parse, "foo");
+     * etc.  So it is worth noting. */
+    assert(*RExC_end == '\0');
 
-    SvREADONLY_on(invlist);
-    SvPOK_on(invlist);
+    RExC_naughty = 0;
+    RExC_npar = 1;
+    RExC_logical_npar = 1;
+    RExC_parens_buf_size = 0;
+    RExC_emit_start = RExC_rxi->program;
+    pRExC_state->code_index = 0;
 
-    return invlist;
-}
+    *((char*) RExC_emit_start) = (char) REG_MAGIC;
+    RExC_emit = NODE_STEP_REGNODE;
 
-STATIC void
-S__append_range_to_invlist(pTHX_ SV* const invlist,
-                                 const UV start, const UV end)
-{
-   /* Subject to change or removal.  Append the range from 'start' to 'end' at
-    * the end of the inversion list.  The range must be above any existing
-    * ones. */
-
-    UV* array;
-    UV max = invlist_max(invlist);
-    UV len = _invlist_len(invlist);
-    bool offset;
-
-    PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST;
-
-    if (len == 0) { /* Empty lists must be initialized */
-        offset = start != 0;
-        array = _invlist_array_init(invlist, ! offset);
-    }
-    else {
-        /* Here, the existing list is non-empty. The current max entry in the
-         * list is generally the first value not in the set, except when the
-         * set extends to the end of permissible values, in which case it is
-         * the first entry in that final set, and so this call is an attempt to
-         * append out-of-order */
-
-        UV final_element = len - 1;
-        array = invlist_array(invlist);
-        if (   array[final_element] > start
-            || ELEMENT_RANGE_MATCHES_INVLIST(final_element))
-        {
-            Perl_croak(aTHX_ "panic: attempting to append to an inversion list, but wasn't at the end of the list, final=%" UVuf ", start=%" UVuf ", match=%c",
-                     array[final_element], start,
-                     ELEMENT_RANGE_MATCHES_INVLIST(final_element) ? 't' : 'f');
-        }
+    /* Do the parse */
+    if (reg(pRExC_state, 0, &flags, 1)) {
 
-        /* Here, it is a legal append.  If the new range begins 1 above the end
-         * of the range below it, it is extending the range below it, so the
-         * new first value not in the set is one greater than the newly
-         * extended range.  */
-        offset = *get_invlist_offset_addr(invlist);
-        if (array[final_element] == start) {
-            if (end != UV_MAX) {
-                array[final_element] = end + 1;
-            }
-            else {
-                /* But if the end is the maximum representable on the machine,
-                 * assume that infinity was actually what was meant.  Just let
-                 * the range that this would extend to have no end */
-                invlist_set_len(invlist, len - 1, offset);
-            }
-            return;
+        /* Success!, But we may need to redo the parse knowing how many parens
+         * there actually are */
+        if (IN_PARENS_PASS) {
+            flags |= RESTART_PARSE;
         }
-    }
 
-    /* Here the new range doesn't extend any existing set.  Add it */
-
-    len += 2;	/* Includes an element each for the start and end of range */
-
-    /* If wll overflow the existing space, extend, which may cause the array to
-     * be moved */
-    if (max < len) {
-        invlist_extend(invlist, len);
-
-        /* Have to set len here to avoid assert failure in invlist_array() */
-        invlist_set_len(invlist, len, offset);
-
-        array = invlist_array(invlist);
+        /* We have that number in RExC_npar */
+        RExC_total_parens = RExC_npar;
+        RExC_logical_total_parens = RExC_logical_npar;
     }
-    else {
-        invlist_set_len(invlist, len, offset);
+    else if (! MUST_RESTART(flags)) {
+        ReREFCNT_dec(Rx);
+        Perl_croak(aTHX_ "panic: reg returned failure to re_op_compile, flags=%#" UVxf, (UV) flags);
     }
 
-    /* The next item on the list starts the range, the one after that is
-     * one past the new range.  */
-    array[len - 2] = start;
-    if (end != UV_MAX) {
-        array[len - 1] = end + 1;
-    }
-    else {
-        /* But if the end is the maximum representable on the machine, just let
-         * the range have no end */
-        invlist_set_len(invlist, len - 1, offset);
-    }
-}
+    /* Here, we either have success, or we have to redo the parse for some reason */
+    if (MUST_RESTART(flags)) {
 
-SSize_t
-Perl__invlist_search(SV* const invlist, const UV cp)
-{
-    /* Searches the inversion list for the entry that contains the input code
-     * point <cp>.  If <cp> is not in the list, -1 is returned.  Otherwise, the
-     * return value is the index into the list's array of the range that
-     * contains <cp>, that is, 'i' such that
-     *	array[i] <= cp < array[i+1]
-     */
+        /* It's possible to write a regexp in ascii that represents Unicode
+        codepoints outside of the byte range, such as via \x{100}. If we
+        detect such a sequence we have to convert the entire pattern to utf8
+        and then recompile, as our sizing calculation will have been based
+        on 1 byte == 1 character, but we will need to use utf8 to encode
+        at least some part of the pattern, and therefore must convert the whole
+        thing.
+        -- dmq */
+        if (flags & NEED_UTF8) {
 
-    IV low = 0;
-    IV mid;
-    IV high = _invlist_len(invlist);
-    const IV highest_element = high - 1;
-    const UV* array;
-
-    PERL_ARGS_ASSERT__INVLIST_SEARCH;
-
-    /* If list is empty, return failure. */
-    if (UNLIKELY(high == 0)) {
-        return -1;
-    }
-
-    /* (We can't get the array unless we know the list is non-empty) */
-    array = invlist_array(invlist);
-
-    mid = invlist_previous_index(invlist);
-    assert(mid >=0);
-    if (UNLIKELY(mid > highest_element)) {
-        mid = highest_element;
-    }
-
-    /* <mid> contains the cache of the result of the previous call to this
-     * function (0 the first time).  See if this call is for the same result,
-     * or if it is for mid-1.  This is under the theory that calls to this
-     * function will often be for related code points that are near each other.
-     * And benchmarks show that caching gives better results.  We also test
-     * here if the code point is within the bounds of the list.  These tests
-     * replace others that would have had to be made anyway to make sure that
-     * the array bounds were not exceeded, and these give us extra information
-     * at the same time */
-    if (cp >= array[mid]) {
-        if (cp >= array[highest_element]) {
-            return highest_element;
-        }
-
-        /* Here, array[mid] <= cp < array[highest_element].  This means that
-         * the final element is not the answer, so can exclude it; it also
-         * means that <mid> is not the final element, so can refer to 'mid + 1'
-         * safely */
-        if (cp < array[mid + 1]) {
-            return mid;
-        }
-        high--;
-        low = mid + 1;
-    }
-    else { /* cp < aray[mid] */
-        if (cp < array[0]) { /* Fail if outside the array */
-            return -1;
-        }
-        high = mid;
-        if (cp >= array[mid - 1]) {
-            goto found_entry;
-        }
-    }
-
-    /* Binary search.  What we are looking for is <i> such that
-     *	array[i] <= cp < array[i+1]
-     * The loop below converges on the i+1.  Note that there may not be an
-     * (i+1)th element in the array, and things work nonetheless */
-    while (low < high) {
-        mid = (low + high) / 2;
-        assert(mid <= highest_element);
-        if (array[mid] <= cp) { /* cp >= array[mid] */
-            low = mid + 1;
-
-            /* We could do this extra test to exit the loop early.
-            if (cp < array[low]) {
-                return mid;
+            /* We have stored the offset of the final warning output so far.
+             * That must be adjusted.  Any variant characters between the start
+             * of the pattern and this warning count for 2 bytes in the final,
+             * so just add them again */
+            if (UNLIKELY(RExC_latest_warn_offset > 0)) {
+                RExC_latest_warn_offset +=
+                            variant_under_utf8_count((U8 *) exp, (U8 *) exp
+                                                + RExC_latest_warn_offset);
             }
-            */
+            S_pat_upgrade_to_utf8(aTHX_ pRExC_state, &exp, &plen,
+            pRExC_state->code_blocks ? pRExC_state->code_blocks->count : 0);
+            DEBUG_PARSE_r(Perl_re_printf( aTHX_ "Need to redo parse after upgrade\n"));
         }
-        else { /* cp < array[mid] */
-            high = mid;
+        else {
+            DEBUG_PARSE_r(Perl_re_printf( aTHX_ "Need to redo parse\n"));
         }
-    }
-
-  found_entry:
-    high--;
-    invlist_set_previous_index(invlist, high);
-    return high;
-}
-
-void
-Perl__invlist_union_maybe_complement_2nd(pTHX_ SV* const a, SV* const b,
-                                         const bool complement_b, SV** output)
-{
-    /* Take the union of two inversion lists and point '*output' to it.  On
-     * input, '*output' MUST POINT TO NULL OR TO AN SV* INVERSION LIST (possibly
-     * even 'a' or 'b').  If to an inversion list, the contents of the original
-     * list will be replaced by the union.  The first list, 'a', may be
-     * NULL, in which case a copy of the second list is placed in '*output'.
-     * If 'complement_b' is TRUE, the union is taken of the complement
-     * (inversion) of 'b' instead of b itself.
-     *
-     * The basis for this comes from "Unicode Demystified" Chapter 13 by
-     * Richard Gillam, published by Addison-Wesley, and explained at some
-     * length there.  The preface says to incorporate its examples into your
-     * code at your own risk.
-     *
-     * The algorithm is like a merge sort. */
 
-    const UV* array_a;    /* a's array */
-    const UV* array_b;
-    UV len_a;	    /* length of a's array */
-    UV len_b;
-
-    SV* u;			/* the resulting union */
-    UV* array_u;
-    UV len_u = 0;
-
-    UV i_a = 0;		    /* current index into a's array */
-    UV i_b = 0;
-    UV i_u = 0;
-
-    /* running count, as explained in the algorithm source book; items are
-     * stopped accumulating and are output when the count changes to/from 0.
-     * The count is incremented when we start a range that's in an input's set,
-     * and decremented when we start a range that's not in a set.  So this
-     * variable can be 0, 1, or 2.  When it is 0 neither input is in their set,
-     * and hence nothing goes into the union; 1, just one of the inputs is in
-     * its set (and its current range gets added to the union); and 2 when both
-     * inputs are in their sets.  */
-    UV count = 0;
-
-    PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND;
-    assert(a != b);
-    assert(*output == NULL || is_invlist(*output));
-
-    len_b = _invlist_len(b);
-    if (len_b == 0) {
-
-        /* Here, 'b' is empty, hence it's complement is all possible code
-         * points.  So if the union includes the complement of 'b', it includes
-         * everything, and we need not even look at 'a'.  It's easiest to
-         * create a new inversion list that matches everything.  */
-        if (complement_b) {
-            SV* everything = _add_range_to_invlist(NULL, 0, UV_MAX);
-
-            if (*output == NULL) { /* If the output didn't exist, just point it
-                                      at the new list */
-                *output = everything;
-            }
-            else { /* Otherwise, replace its contents with the new list */
-                invlist_replace_list_destroys_src(*output, everything);
-                SvREFCNT_dec_NN(everything);
-            }
+        if (ALL_PARENS_COUNTED) {
+            /* Make enough room for all the known parens, and zero it */
+            Renew(RExC_open_parens, RExC_total_parens, regnode_offset);
+            Zero(RExC_open_parens, RExC_total_parens, regnode_offset);
+            RExC_open_parens[0] = 1;    /* +1 for REG_MAGIC */
 
-            return;
+            Renew(RExC_close_parens, RExC_total_parens, regnode_offset);
+            Zero(RExC_close_parens, RExC_total_parens, regnode_offset);
+            /* we do NOT reinitialize  RExC_logical_to_parno and
+             * RExC_parno_to_logical here. We need their data on the second
+             * pass */
         }
-
-        /* Here, we don't want the complement of 'b', and since 'b' is empty,
-         * the union will come entirely from 'a'.  If 'a' is NULL or empty, the
-         * output will be empty */
-
-        if (a == NULL || _invlist_len(a) == 0) {
-            if (*output == NULL) {
-                *output = _new_invlist(0);
+        else { /* Parse did not complete.  Reinitialize the parentheses
+                  structures */
+            RExC_total_parens = 0;
+            if (RExC_open_parens) {
+                Safefree(RExC_open_parens);
+                RExC_open_parens = NULL;
             }
-            else {
-                invlist_clear(*output);
+            if (RExC_close_parens) {
+                Safefree(RExC_close_parens);
+                RExC_close_parens = NULL;
+            }
+            if (RExC_logical_to_parno) {
+                Safefree(RExC_logical_to_parno);
+                RExC_logical_to_parno = NULL;
+            }
+            if (RExC_parno_to_logical) {
+                Safefree(RExC_parno_to_logical);
+                RExC_parno_to_logical = NULL;
             }
-            return;
-        }
-
-        /* Here, 'a' is not empty, but 'b' is, so 'a' entirely determines the
-         * union.  We can just return a copy of 'a' if '*output' doesn't point
-         * to an existing list */
-        if (*output == NULL) {
-            *output = invlist_clone(a, NULL);
-            return;
-        }
-
-        /* If the output is to overwrite 'a', we have a no-op, as it's
-         * already in 'a' */
-        if (*output == a) {
-            return;
         }
 
-        /* Here, '*output' is to be overwritten by 'a' */
-        u = invlist_clone(a, NULL);
-        invlist_replace_list_destroys_src(*output, u);
-        SvREFCNT_dec_NN(u);
+        /* Clean up what we did in this parse */
+        SvREFCNT_dec_NN(RExC_rx_sv);
 
-        return;
+        goto redo_parse;
     }
 
-    /* Here 'b' is not empty.  See about 'a' */
-
-    if (a == NULL || ((len_a = _invlist_len(a)) == 0)) {
-
-        /* Here, 'a' is empty (and b is not).  That means the union will come
-         * entirely from 'b'.  If '*output' is NULL, we can directly return a
-         * clone of 'b'.  Otherwise, we replace the contents of '*output' with
-         * the clone */
-
-        SV ** dest = (*output == NULL) ? output : &u;
-        *dest = invlist_clone(b, NULL);
-        if (complement_b) {
-            _invlist_invert(*dest);
-        }
+    /* Here, we have successfully parsed and generated the pattern's program
+     * for the regex engine.  We are ready to finish things up and look for
+     * optimizations. */
 
-        if (dest == &u) {
-            invlist_replace_list_destroys_src(*output, u);
-            SvREFCNT_dec_NN(u);
-        }
+    /* Update the string to compile, with correct modifiers, etc */
+    set_regex_pv(pRExC_state, Rx);
 
-        return;
-    }
+    RExC_rx->nparens = RExC_total_parens - 1;
+    RExC_rx->logical_nparens = RExC_logical_total_parens - 1;
 
-    /* Here both lists exist and are non-empty */
-    array_a = invlist_array(a);
-    array_b = invlist_array(b);
-
-    /* If are to take the union of 'a' with the complement of b, set it
-     * up so are looking at b's complement. */
-    if (complement_b) {
-
-        /* To complement, we invert: if the first element is 0, remove it.  To
-         * do this, we just pretend the array starts one later */
-        if (array_b[0] == 0) {
-            array_b++;
-            len_b--;
-        }
-        else {
+    /* Uses the upper 4 bits of the FLAGS field, so keep within that size */
+    if (RExC_whilem_seen > 15)
+        RExC_whilem_seen = 15;
 
-            /* But if the first element is not zero, we pretend the list starts
-             * at the 0 that is always stored immediately before the array. */
-            array_b--;
-            len_b++;
-        }
-    }
+    DEBUG_PARSE_r({
+        Perl_re_printf( aTHX_
+            "Required size %" IVdf " nodes\n", (IV)RExC_size);
+        RExC_lastnum=0;
+        RExC_lastparse=NULL;
+    });
 
-    /* Size the union for the worst case: that the sets are completely
-     * disjoint */
-    u = _new_invlist(len_a + len_b);
-
-    /* Will contain U+0000 if either component does */
-    array_u = _invlist_array_init(u, (    len_a > 0 && array_a[0] == 0)
-                                      || (len_b > 0 && array_b[0] == 0));
-
-    /* Go through each input list item by item, stopping when have exhausted
-     * one of them */
-    while (i_a < len_a && i_b < len_b) {
-        UV cp;	    /* The element to potentially add to the union's array */
-        bool cp_in_set;   /* is it in the input list's set or not */
-
-        /* We need to take one or the other of the two inputs for the union.
-         * Since we are merging two sorted lists, we take the smaller of the
-         * next items.  In case of a tie, we take first the one that is in its
-         * set.  If we first took the one not in its set, it would decrement
-         * the count, possibly to 0 which would cause it to be output as ending
-         * the range, and the next time through we would take the same number,
-         * and output it again as beginning the next range.  By doing it the
-         * opposite way, there is no possibility that the count will be
-         * momentarily decremented to 0, and thus the two adjoining ranges will
-         * be seamlessly merged.  (In a tie and both are in the set or both not
-         * in the set, it doesn't matter which we take first.) */
-        if (       array_a[i_a] < array_b[i_b]
-            || (   array_a[i_a] == array_b[i_b]
-                && ELEMENT_RANGE_MATCHES_INVLIST(i_a)))
-        {
-            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_a);
-            cp = array_a[i_a++];
-        }
-        else {
-            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_b);
-            cp = array_b[i_b++];
-        }
+    SetProgLen(RExC_rxi,RExC_size);
 
-        /* Here, have chosen which of the two inputs to look at.  Only output
-         * if the running count changes to/from 0, which marks the
-         * beginning/end of a range that's in the set */
-        if (cp_in_set) {
-            if (count == 0) {
-                array_u[i_u++] = cp;
-            }
-            count++;
-        }
-        else {
-            count--;
-            if (count == 0) {
-                array_u[i_u++] = cp;
-            }
-        }
-    }
+    DEBUG_DUMP_PRE_OPTIMIZE_r({
+        SV * const sv = sv_newmortal();
+        RXi_GET_DECL(RExC_rx, ri);
+        DEBUG_RExC_seen();
+        Perl_re_printf( aTHX_ "Program before optimization:\n");
 
+        (void)dumpuntil(RExC_rx, ri->program, ri->program + 1, NULL, NULL,
+                        sv, 0, 0);
+    });
 
-    /* The loop above increments the index into exactly one of the input lists
-     * each iteration, and ends when either index gets to its list end.  That
-     * means the other index is lower than its end, and so something is
-     * remaining in that one.  We decrement 'count', as explained below, if
-     * that list is in its set.  (i_a and i_b each currently index the element
-     * beyond the one we care about.) */
-    if (   (i_a != len_a && PREV_RANGE_MATCHES_INVLIST(i_a))
-        || (i_b != len_b && PREV_RANGE_MATCHES_INVLIST(i_b)))
-    {
-        count--;
-    }
+    DEBUG_OPTIMISE_r(
+        Perl_re_printf( aTHX_  "Starting post parse optimization\n");
+    );
 
-    /* Above we decremented 'count' if the list that had unexamined elements in
-     * it was in its set.  This has made it so that 'count' being non-zero
-     * means there isn't anything left to output; and 'count' equal to 0 means
-     * that what is left to output is precisely that which is left in the
-     * non-exhausted input list.
-     *
-     * To see why, note first that the exhausted input obviously has nothing
-     * left to add to the union.  If it was in its set at its end, that means
-     * the set extends from here to the platform's infinity, and hence so does
-     * the union and the non-exhausted set is irrelevant.  The exhausted set
-     * also contributed 1 to 'count'.  If 'count' was 2, it got decremented to
-     * 1, but if it was 1, the non-exhausted set wasn't in its set, and so
-     * 'count' remains at 1.  This is consistent with the decremented 'count'
-     * != 0 meaning there's nothing left to add to the union.
-     *
-     * But if the exhausted input wasn't in its set, it contributed 0 to
-     * 'count', and the rest of the union will be whatever the other input is.
-     * If 'count' was 0, neither list was in its set, and 'count' remains 0;
-     * otherwise it gets decremented to 0.  This is consistent with 'count'
-     * == 0 meaning the remainder of the union is whatever is left in the
-     * non-exhausted list. */
-    if (count != 0) {
-        len_u = i_u;
-    }
-    else {
-        IV copy_count = len_a - i_a;
-        if (copy_count > 0) {   /* The non-exhausted input is 'a' */
-            Copy(array_a + i_a, array_u + i_u, copy_count, UV);
-        }
-        else { /* The non-exhausted input is b */
-            copy_count = len_b - i_b;
-            Copy(array_b + i_b, array_u + i_u, copy_count, UV);
-        }
-        len_u = i_u + copy_count;
+    /* XXXX To minimize changes to RE engine we always allocate
+       3-units-long substrs field. */
+    Newx(RExC_rx->substrs, 1, struct reg_substr_data);
+    if (RExC_recurse_count) {
+        Newx(RExC_recurse, RExC_recurse_count, regnode *);
+        SAVEFREEPV(RExC_recurse);
     }
 
-    /* Set the result to the final length, which can change the pointer to
-     * array_u, so re-find it.  (Note that it is unlikely that this will
-     * change, as we are shrinking the space, not enlarging it) */
-    if (len_u != _invlist_len(u)) {
-        invlist_set_len(u, len_u, *get_invlist_offset_addr(u));
-        invlist_trim(u);
-        array_u = invlist_array(u);
+    if (RExC_seen & REG_RECURSE_SEEN) {
+        /* Note, RExC_total_parens is 1 + the number of parens in a pattern.
+         * So its 1 if there are no parens. */
+        RExC_study_chunk_recursed_bytes= (RExC_total_parens >> 3) +
+                                         ((RExC_total_parens & 0x07) != 0);
+        Newx(RExC_study_chunk_recursed,
+             RExC_study_chunk_recursed_bytes * RExC_total_parens, U8);
+        SAVEFREEPV(RExC_study_chunk_recursed);
     }
 
-    if (*output == NULL) {  /* Simply return the new inversion list */
-        *output = u;
-    }
-    else {
-        /* Otherwise, overwrite the inversion list that was in '*output'.  We
-         * could instead free '*output', and then set it to 'u', but experience
-         * has shown [perl #127392] that if the input is a mortal, we can get a
-         * huge build-up of these during regex compilation before they get
-         * freed. */
-        invlist_replace_list_destroys_src(*output, u);
-        SvREFCNT_dec_NN(u);
+  reStudy:
+    RExC_rx->minlen = minlen = sawlookahead = sawplus = sawopen = sawminmod = 0;
+    DEBUG_r(
+        RExC_study_chunk_recursed_count= 0;
+    );
+    Zero(RExC_rx->substrs, 1, struct reg_substr_data);
+    if (RExC_study_chunk_recursed) {
+        Zero(RExC_study_chunk_recursed,
+             RExC_study_chunk_recursed_bytes * RExC_total_parens, U8);
     }
 
-    return;
-}
-
-void
-Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV* const a, SV* const b,
-                                               const bool complement_b, SV** i)
-{
-    /* Take the intersection of two inversion lists and point '*i' to it.  On
-     * input, '*i' MUST POINT TO NULL OR TO AN SV* INVERSION LIST (possibly
-     * even 'a' or 'b').  If to an inversion list, the contents of the original
-     * list will be replaced by the intersection.  The first list, 'a', may be
-     * NULL, in which case '*i' will be an empty list.  If 'complement_b' is
-     * TRUE, the result will be the intersection of 'a' and the complement (or
-     * inversion) of 'b' instead of 'b' directly.
-     *
-     * The basis for this comes from "Unicode Demystified" Chapter 13 by
-     * Richard Gillam, published by Addison-Wesley, and explained at some
-     * length there.  The preface says to incorporate its examples into your
-     * code at your own risk.  In fact, it had bugs
-     *
-     * The algorithm is like a merge sort, and is essentially the same as the
-     * union above
-     */
 
-    const UV* array_a;		/* a's array */
-    const UV* array_b;
-    UV len_a;	/* length of a's array */
-    UV len_b;
-
-    SV* r;		     /* the resulting intersection */
-    UV* array_r;
-    UV len_r = 0;
-
-    UV i_a = 0;		    /* current index into a's array */
-    UV i_b = 0;
-    UV i_r = 0;
-
-    /* running count of how many of the two inputs are postitioned at ranges
-     * that are in their sets.  As explained in the algorithm source book,
-     * items are stopped accumulating and are output when the count changes
-     * to/from 2.  The count is incremented when we start a range that's in an
-     * input's set, and decremented when we start a range that's not in a set.
-     * Only when it is 2 are we in the intersection. */
-    UV count = 0;
-
-    PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND;
-    assert(a != b);
-    assert(*i == NULL || is_invlist(*i));
-
-    /* Special case if either one is empty */
-    len_a = (a == NULL) ? 0 : _invlist_len(a);
-    if ((len_a == 0) || ((len_b = _invlist_len(b)) == 0)) {
-        if (len_a != 0 && complement_b) {
-
-            /* Here, 'a' is not empty, therefore from the enclosing 'if', 'b'
-             * must be empty.  Here, also we are using 'b's complement, which
-             * hence must be every possible code point.  Thus the intersection
-             * is simply 'a'. */
+#ifdef TRIE_STUDY_OPT
+    /* search for "restudy" in this file for a detailed explanation */
+    if (!restudied) {
+        StructCopy(&zero_scan_data, &data, scan_data_t);
+        copyRExC_state = RExC_state;
+    } else {
+        U32 seen=RExC_seen;
+        DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "Restudying\n"));
 
-            if (*i == a) {  /* No-op */
-                return;
-            }
+        RExC_state = copyRExC_state;
+        if (seen & REG_TOP_LEVEL_BRANCHES_SEEN)
+            RExC_seen |= REG_TOP_LEVEL_BRANCHES_SEEN;
+        else
+            RExC_seen &= ~REG_TOP_LEVEL_BRANCHES_SEEN;
+        StructCopy(&zero_scan_data, &data, scan_data_t);
+    }
+#else
+    StructCopy(&zero_scan_data, &data, scan_data_t);
+#endif
 
-            if (*i == NULL) {
-                *i = invlist_clone(a, NULL);
-                return;
-            }
+    /* Dig out information for optimizations. */
+    RExC_rx->extflags = RExC_flags; /* was pm_op */
+    /*dmq: removed as part of de-PMOP: pm->op_pmflags = RExC_flags; */
 
-            r = invlist_clone(a, NULL);
-            invlist_replace_list_destroys_src(*i, r);
-            SvREFCNT_dec_NN(r);
-            return;
-        }
+    if (UTF)
+        SvUTF8_on(Rx);	/* Unicode in it? */
+    RExC_rxi->regstclass = NULL;
+    if (RExC_naughty >= TOO_NAUGHTY)	/* Probably an expensive pattern. */
+        RExC_rx->intflags |= PREGf_NAUGHTY;
+    scan = RExC_rxi->program + 1;		/* First BRANCH. */
 
-        /* Here, 'a' or 'b' is empty and not using the complement of 'b'.  The
-         * intersection must be empty */
-        if (*i == NULL) {
-            *i = _new_invlist(0);
-            return;
-        }
+    /* testing for BRANCH here tells us whether there is "must appear"
+       data in the pattern. If there is then we can use it for optimisations */
+    if (!(RExC_seen & REG_TOP_LEVEL_BRANCHES_SEEN)) { /*  Only one top-level choice.
+                                                  */
+        SSize_t fake_deltap;
+        STRLEN longest_length[2];
+        regnode_ssc ch_class; /* pointed to by data */
+        int stclass_flag;
+        SSize_t last_close = 0; /* pointed to by data */
+        regnode *first= scan;
+        regnode *first_next= regnext(first);
+        regnode *last_close_op= NULL;
+        int i;
 
-        invlist_clear(*i);
-        return;
-    }
+        /*
+         * Skip introductions and multiplicators >= 1
+         * so that we can extract the 'meat' of the pattern that must
+         * match in the large if() sequence following.
+         * NOTE that EXACT is NOT covered here, as it is normally
+         * picked up by the optimiser separately.
+         *
+         * This is unfortunate as the optimiser isnt handling lookahead
+         * properly currently.
+         *
+         */
+        while (1)
+        {
+            if (OP(first) == OPEN)
+                sawopen = 1;
+            else
+            if (OP(first) == IFMATCH && !FLAGS(first))
+                /* for now we can't handle lookbehind IFMATCH */
+                sawlookahead = 1;
+            else
+            if (OP(first) == PLUS)
+                sawplus = 1;
+            else
+            if (OP(first) == MINMOD)
+                sawminmod = 1;
+            else
+            if (!(
+                /* An OR of *one* alternative - should not happen now. */
+                (OP(first) == BRANCH && OP(first_next) != BRANCH) ||
+                /* An {n,m} with n>0 */
+                (REGNODE_TYPE(OP(first)) == CURLY && ARG1i(first) > 0) ||
+                (OP(first) == NOTHING && REGNODE_TYPE(OP(first_next)) != END)
+            )){
+                break;
+            }
 
-    /* Here both lists exist and are non-empty */
-    array_a = invlist_array(a);
-    array_b = invlist_array(b);
-
-    /* If are to take the intersection of 'a' with the complement of b, set it
-     * up so are looking at b's complement. */
-    if (complement_b) {
-
-        /* To complement, we invert: if the first element is 0, remove it.  To
-         * do this, we just pretend the array starts one later */
-        if (array_b[0] == 0) {
-            array_b++;
-            len_b--;
+            first = REGNODE_AFTER(first);
+            first_next= regnext(first);
         }
-        else {
 
-            /* But if the first element is not zero, we pretend the list starts
-             * at the 0 that is always stored immediately before the array. */
-            array_b--;
-            len_b++;
+        /* Starting-point info. */
+      again:
+        DEBUG_PEEP("first:", first, 0, 0);
+        /* Ignore EXACT as we deal with it later. */
+        if (REGNODE_TYPE(OP(first)) == EXACT) {
+            if (! isEXACTFish(OP(first))) {
+                NOOP;	/* Empty, get anchored substr later. */
+            }
+            else
+                RExC_rxi->regstclass = first;
         }
-    }
-
-    /* Size the intersection for the worst case: that the intersection ends up
-     * fragmenting everything to be completely disjoint */
-    r= _new_invlist(len_a + len_b);
-
-    /* Will contain U+0000 iff both components do */
-    array_r = _invlist_array_init(r,    len_a > 0 && array_a[0] == 0
-                                     && len_b > 0 && array_b[0] == 0);
-
-    /* Go through each list item by item, stopping when have exhausted one of
-     * them */
-    while (i_a < len_a && i_b < len_b) {
-        UV cp;	    /* The element to potentially add to the intersection's
-                       array */
-        bool cp_in_set;	/* Is it in the input list's set or not */
-
-        /* We need to take one or the other of the two inputs for the
-         * intersection.  Since we are merging two sorted lists, we take the
-         * smaller of the next items.  In case of a tie, we take first the one
-         * that is not in its set (a difference from the union algorithm).  If
-         * we first took the one in its set, it would increment the count,
-         * possibly to 2 which would cause it to be output as starting a range
-         * in the intersection, and the next time through we would take that
-         * same number, and output it again as ending the set.  By doing the
-         * opposite of this, there is no possibility that the count will be
-         * momentarily incremented to 2.  (In a tie and both are in the set or
-         * both not in the set, it doesn't matter which we take first.) */
-        if (       array_a[i_a] < array_b[i_b]
-            || (   array_a[i_a] == array_b[i_b]
-                && ! ELEMENT_RANGE_MATCHES_INVLIST(i_a)))
+#ifdef TRIE_STCLASS
+        else if (REGNODE_TYPE(OP(first)) == TRIE &&
+                ((reg_trie_data *)RExC_rxi->data->data[ ARG1u(first) ])->minlen>0)
         {
-            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_a);
-            cp = array_a[i_a++];
-        }
-        else {
-            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_b);
-            cp= array_b[i_b++];
-        }
-
-        /* Here, have chosen which of the two inputs to look at.  Only output
-         * if the running count changes to/from 2, which marks the
-         * beginning/end of a range that's in the intersection */
-        if (cp_in_set) {
-            count++;
-            if (count == 2) {
-                array_r[i_r++] = cp;
-            }
+            /* this can happen only on restudy
+             * Search for "restudy" in this file to find
+             * a comment with details. */
+            RExC_rxi->regstclass = construct_ahocorasick_from_trie(pRExC_state, (regnode *)first, 0);
         }
-        else {
-            if (count == 2) {
-                array_r[i_r++] = cp;
-            }
-            count--;
+#endif
+        else if (REGNODE_SIMPLE(OP(first)))
+            RExC_rxi->regstclass = first;
+        else if (REGNODE_TYPE(OP(first)) == BOUND ||
+                 REGNODE_TYPE(OP(first)) == NBOUND)
+            RExC_rxi->regstclass = first;
+        else if (REGNODE_TYPE(OP(first)) == BOL) {
+            RExC_rx->intflags |= (OP(first) == MBOL
+                           ? PREGf_ANCH_MBOL
+                           : PREGf_ANCH_SBOL);
+            first = REGNODE_AFTER(first);
+            goto again;
         }
-
-    }
-
-    /* The loop above increments the index into exactly one of the input lists
-     * each iteration, and ends when either index gets to its list end.  That
-     * means the other index is lower than its end, and so something is
-     * remaining in that one.  We increment 'count', as explained below, if the
-     * exhausted list was in its set.  (i_a and i_b each currently index the
-     * element beyond the one we care about.) */
-    if (   (i_a == len_a && PREV_RANGE_MATCHES_INVLIST(i_a))
-        || (i_b == len_b && PREV_RANGE_MATCHES_INVLIST(i_b)))
-    {
-        count++;
-    }
-
-    /* Above we incremented 'count' if the exhausted list was in its set.  This
-     * has made it so that 'count' being below 2 means there is nothing left to
-     * output; otheriwse what's left to add to the intersection is precisely
-     * that which is left in the non-exhausted input list.
-     *
-     * To see why, note first that the exhausted input obviously has nothing
-     * left to affect the intersection.  If it was in its set at its end, that
-     * means the set extends from here to the platform's infinity, and hence
-     * anything in the non-exhausted's list will be in the intersection, and
-     * anything not in it won't be.  Hence, the rest of the intersection is
-     * precisely what's in the non-exhausted list  The exhausted set also
-     * contributed 1 to 'count', meaning 'count' was at least 1.  Incrementing
-     * it means 'count' is now at least 2.  This is consistent with the
-     * incremented 'count' being >= 2 means to add the non-exhausted list to
-     * the intersection.
-     *
-     * But if the exhausted input wasn't in its set, it contributed 0 to
-     * 'count', and the intersection can't include anything further; the
-     * non-exhausted set is irrelevant.  'count' was at most 1, and doesn't get
-     * incremented.  This is consistent with 'count' being < 2 meaning nothing
-     * further to add to the intersection. */
-    if (count < 2) { /* Nothing left to put in the intersection. */
-        len_r = i_r;
-    }
-    else { /* copy the non-exhausted list, unchanged. */
-        IV copy_count = len_a - i_a;
-        if (copy_count > 0) {   /* a is the one with stuff left */
-            Copy(array_a + i_a, array_r + i_r, copy_count, UV);
-        }
-        else {  /* b is the one with stuff left */
-            copy_count = len_b - i_b;
-            Copy(array_b + i_b, array_r + i_r, copy_count, UV);
-        }
-        len_r = i_r + copy_count;
-    }
-
-    /* Set the result to the final length, which can change the pointer to
-     * array_r, so re-find it.  (Note that it is unlikely that this will
-     * change, as we are shrinking the space, not enlarging it) */
-    if (len_r != _invlist_len(r)) {
-        invlist_set_len(r, len_r, *get_invlist_offset_addr(r));
-        invlist_trim(r);
-        array_r = invlist_array(r);
-    }
-
-    if (*i == NULL) { /* Simply return the calculated intersection */
-        *i = r;
-    }
-    else { /* Otherwise, replace the existing inversion list in '*i'.  We could
-              instead free '*i', and then set it to 'r', but experience has
-              shown [perl #127392] that if the input is a mortal, we can get a
-              huge build-up of these during regex compilation before they get
-              freed. */
-        if (len_r) {
-            invlist_replace_list_destroys_src(*i, r);
+        else if (OP(first) == GPOS) {
+            RExC_rx->intflags |= PREGf_ANCH_GPOS;
+            first = REGNODE_AFTER_type(first,tregnode_GPOS);
+            goto again;
         }
-        else {
-            invlist_clear(*i);
+        else if ((!sawopen || !RExC_sawback) &&
+            !sawlookahead &&
+            (OP(first) == STAR &&
+            REGNODE_TYPE(OP(REGNODE_AFTER(first))) == REG_ANY) &&
+            !(RExC_rx->intflags & PREGf_ANCH) && !(RExC_seen & REG_PESSIMIZE_SEEN))
+        {
+            /* turn .* into ^.* with an implied $*=1 */
+            const int type =
+                (OP(REGNODE_AFTER(first)) == REG_ANY)
+                    ? PREGf_ANCH_MBOL
+                    : PREGf_ANCH_SBOL;
+            RExC_rx->intflags |= (type | PREGf_IMPLICIT);
+            first = REGNODE_AFTER(first);
+            goto again;
         }
-        SvREFCNT_dec_NN(r);
-    }
-
-    return;
-}
+        if (sawplus && !sawminmod && !sawlookahead
+            && (!sawopen || !RExC_sawback)
+            && !(RExC_seen & REG_PESSIMIZE_SEEN)) /* May examine pos and $& */
+            /* x+ must match at the 1st pos of run of x's */
+            RExC_rx->intflags |= PREGf_SKIP;
 
-SV*
-Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
-{
-    /* Add the range from 'start' to 'end' inclusive to the inversion list's
-     * set.  A pointer to the inversion list is returned.  This may actually be
-     * a new list, in which case the passed in one has been destroyed.  The
-     * passed-in inversion list can be NULL, in which case a new one is created
-     * with just the one range in it.  The new list is not necessarily
-     * NUL-terminated.  Space is not freed if the inversion list shrinks as a
-     * result of this function.  The gain would not be large, and in many
-     * cases, this is called multiple times on a single inversion list, so
-     * anything freed may almost immediately be needed again.
-     *
-     * This used to mostly call the 'union' routine, but that is much more
-     * heavyweight than really needed for a single range addition */
+        /* Scan is after the zeroth branch, first is atomic matcher. */
+#ifdef TRIE_STUDY_OPT
+        /* search for "restudy" in this file for a detailed explanation */
+        DEBUG_PARSE_r(
+            if (!restudied)
+                Perl_re_printf( aTHX_  "first at %" IVdf "\n",
+                              (IV)(first - scan + 1))
+        );
+#else
+        DEBUG_PARSE_r(
+            Perl_re_printf( aTHX_  "first at %" IVdf "\n",
+                (IV)(first - scan + 1))
+        );
+#endif
 
-    UV* array;              /* The array implementing the inversion list */
-    UV len;                 /* How many elements in 'array' */
-    SSize_t i_s;            /* index into the invlist array where 'start'
-                               should go */
-    SSize_t i_e = 0;        /* And the index where 'end' should go */
-    UV cur_highest;         /* The highest code point in the inversion list
-                               upon entry to this function */
-
-    /* This range becomes the whole inversion list if none already existed */
-    if (invlist == NULL) {
-        invlist = _new_invlist(2);
-        _append_range_to_invlist(invlist, start, end);
-        return invlist;
-    }
-
-    /* Likewise, if the inversion list is currently empty */
-    len = _invlist_len(invlist);
-    if (len == 0) {
-        _append_range_to_invlist(invlist, start, end);
-        return invlist;
-    }
-
-    /* Starting here, we have to know the internals of the list */
-    array = invlist_array(invlist);
-
-    /* If the new range ends higher than the current highest ... */
-    cur_highest = invlist_highest(invlist);
-    if (end > cur_highest) {
-
-        /* If the whole range is higher, we can just append it */
-        if (start > cur_highest) {
-            _append_range_to_invlist(invlist, start, end);
-            return invlist;
-        }
-
-        /* Otherwise, add the portion that is higher ... */
-        _append_range_to_invlist(invlist, cur_highest + 1, end);
-
-        /* ... and continue on below to handle the rest.  As a result of the
-         * above append, we know that the index of the end of the range is the
-         * final even numbered one of the array.  Recall that the final element
-         * always starts a range that extends to infinity.  If that range is in
-         * the set (meaning the set goes from here to infinity), it will be an
-         * even index, but if it isn't in the set, it's odd, and the final
-         * range in the set is one less, which is even. */
-        if (end == UV_MAX) {
-            i_e = len;
-        }
-        else {
-            i_e = len - 2;
-        }
-    }
 
-    /* We have dealt with appending, now see about prepending.  If the new
-     * range starts lower than the current lowest ... */
-    if (start < array[0]) {
+        /*
+        * If there's something expensive in the r.e., find the
+        * longest literal string that must appear and make it the
+        * regmust.  Resolve ties in favor of later strings, since
+        * the regstart check works with the beginning of the r.e.
+        * and avoiding duplication strengthens checking.  Not a
+        * strong reason, but sufficient in the absence of others.
+        * [Now we resolve ties in favor of the earlier string if
+        * it happens that c_offset_min has been invalidated, since the
+        * earlier string may buy us something the later one won't.]
+        */
 
-        /* Adding something which has 0 in it is somewhat tricky, and uncommon.
-         * Let the union code handle it, rather than having to know the
-         * trickiness in two code places.  */
-        if (UNLIKELY(start == 0)) {
-            SV* range_invlist;
+        data.substrs[0].str = newSVpvs("");
+        data.substrs[1].str = newSVpvs("");
+        data.last_found = newSVpvs("");
+        data.cur_is_floating = 0; /* initially any found substring is fixed */
+        ENTER_with_name("study_chunk");
+        SAVEFREESV(data.substrs[0].str);
+        SAVEFREESV(data.substrs[1].str);
+        SAVEFREESV(data.last_found);
+        first = scan;
+        if (!RExC_rxi->regstclass) {
+            ssc_init(pRExC_state, &ch_class);
+            data.start_class = &ch_class;
+            stclass_flag = SCF_DO_STCLASS_AND;
+        } else				/* XXXX Check for BOUND? */
+            stclass_flag = 0;
+        data.last_closep = &last_close;
+        data.last_close_opp = &last_close_op;
 
-            range_invlist = _new_invlist(2);
-            _append_range_to_invlist(range_invlist, start, end);
+        DEBUG_RExC_seen();
+        /*
+         * MAIN ENTRY FOR study_chunk() FOR m/PATTERN/
+         * (NO top level branches)
+         */
+        minlen = study_chunk(pRExC_state, &first, &minlen, &fake_deltap,
+                             scan + RExC_size, /* Up to end */
+            &data, -1, 0, NULL,
+            SCF_DO_SUBSTR | SCF_WHILEM_VISITED_POS | stclass_flag
+                          | (restudied ? SCF_TRIE_DOING_RESTUDY : 0),
+            0, TRUE);
+        /* search for "restudy" in this file for a detailed explanation
+         * of 'restudied' and SCF_TRIE_DOING_RESTUDY */
 
-            _invlist_union(invlist, range_invlist, &invlist);
 
-            SvREFCNT_dec_NN(range_invlist);
+        CHECK_RESTUDY_GOTO_butfirst(LEAVE_with_name("study_chunk"));
 
-            return invlist;
-        }
 
-        /* If the whole new range comes before the first entry, and doesn't
-         * extend it, we have to insert it as an additional range */
-        if (end < array[0] - 1) {
-            i_s = i_e = -1;
-            goto splice_in_new_range;
+        if ( RExC_total_parens == 1 && !data.cur_is_floating
+             && data.last_start_min == 0 && data.last_end > 0
+             && !RExC_seen_zerolen
+             && !(RExC_seen & REG_VERBARG_SEEN)
+             && !(RExC_seen & REG_GPOS_SEEN)
+        ){
+            RExC_rx->extflags |= RXf_CHECK_ALL;
         }
+        scan_commit(pRExC_state, &data,&minlen, 0);
 
-        /* Here the new range adjoins the existing first range, extending it
-         * downwards. */
-        array[0] = start;
-
-        /* And continue on below to handle the rest.  We know that the index of
-         * the beginning of the range is the first one of the array */
-        i_s = 0;
-    }
-    else { /* Not prepending any part of the new range to the existing list.
-            * Find where in the list it should go.  This finds i_s, such that:
-            *     invlist[i_s] <= start < array[i_s+1]
-            */
-        i_s = _invlist_search(invlist, start);
-    }
-
-    /* At this point, any extending before the beginning of the inversion list
-     * and/or after the end has been done.  This has made it so that, in the
-     * code below, each endpoint of the new range is either in a range that is
-     * in the set, or is in a gap between two ranges that are.  This means we
-     * don't have to worry about exceeding the array bounds.
-     *
-     * Find where in the list the new range ends (but we can skip this if we
-     * have already determined what it is, or if it will be the same as i_s,
-     * which we already have computed) */
-    if (i_e == 0) {
-        i_e = (start == end)
-              ? i_s
-              : _invlist_search(invlist, end);
-    }
-
-    /* Here generally invlist[i_e] <= end < array[i_e+1].  But if invlist[i_e]
-     * is a range that goes to infinity there is no element at invlist[i_e+1],
-     * so only the first relation holds. */
 
-    if ( ! ELEMENT_RANGE_MATCHES_INVLIST(i_s)) {
+        /* XXX this is done in reverse order because that's the way the
+         * code was before it was parameterised. Don't know whether it
+         * actually needs doing in reverse order. DAPM */
+        for (i = 1; i >= 0; i--) {
+            longest_length[i] = CHR_SVLEN(data.substrs[i].str);
 
-        /* Here, the ranges on either side of the beginning of the new range
-         * are in the set, and this range starts in the gap between them.
-         *
-         * The new range extends the range above it downwards if the new range
-         * ends at or above that range's start */
-        const bool extends_the_range_above = (   end == UV_MAX
-                                              || end + 1 >= array[i_s+1]);
-
-        /* The new range extends the range below it upwards if it begins just
-         * after where that range ends */
-        if (start == array[i_s]) {
-
-            /* If the new range fills the entire gap between the other ranges,
-             * they will get merged together.  Other ranges may also get
-             * merged, depending on how many of them the new range spans.  In
-             * the general case, we do the merge later, just once, after we
-             * figure out how many to merge.  But in the case where the new
-             * range exactly spans just this one gap (possibly extending into
-             * the one above), we do the merge here, and an early exit.  This
-             * is done here to avoid having to special case later. */
-            if (i_e - i_s <= 1) {
-
-                /* If i_e - i_s == 1, it means that the new range terminates
-                 * within the range above, and hence 'extends_the_range_above'
-                 * must be true.  (If the range above it extends to infinity,
-                 * 'i_s+2' will be above the array's limit, but 'len-i_s-2'
-                 * will be 0, so no harm done.) */
-                if (extends_the_range_above) {
-                    Move(array + i_s + 2, array + i_s, len - i_s - 2, UV);
-                    invlist_set_len(invlist,
-                                    len - 2,
-                                    *(get_invlist_offset_addr(invlist)));
-                    return invlist;
-                }
+            if (   !(   i
+                     && SvCUR(data.substrs[0].str)  /* ok to leave SvCUR */
+                     &&    data.substrs[0].min_offset
+                        == data.substrs[1].min_offset
+                     &&    SvCUR(data.substrs[0].str)
+                        == SvCUR(data.substrs[1].str)
+                    )
+                && S_setup_longest (aTHX_ pRExC_state,
+                                        &(RExC_rx->substrs->data[i]),
+                                        &(data.substrs[i]),
+                                        longest_length[i]))
+            {
+                RExC_rx->substrs->data[i].min_offset =
+                        data.substrs[i].min_offset - data.substrs[i].lookbehind;
 
-                /* Here, i_e must == i_s.  We keep them in sync, as they apply
-                 * to the same range, and below we are about to decrement i_s
-                 * */
-                i_e--;
+                RExC_rx->substrs->data[i].max_offset = data.substrs[i].max_offset;
+                /* Don't offset infinity */
+                if (data.substrs[i].max_offset < OPTIMIZE_INFTY)
+                    RExC_rx->substrs->data[i].max_offset -= data.substrs[i].lookbehind;
+                SvREFCNT_inc_simple_void_NN(data.substrs[i].str);
+            }
+            else {
+                RExC_rx->substrs->data[i].substr      = NULL;
+                RExC_rx->substrs->data[i].utf8_substr = NULL;
+                longest_length[i] = 0;
             }
-
-            /* Here, the new range is adjacent to the one below.  (It may also
-             * span beyond the range above, but that will get resolved later.)
-             * Extend the range below to include this one. */
-            array[i_s] = (end == UV_MAX) ? UV_MAX : end + 1;
-            i_s--;
-            start = array[i_s];
         }
-        else if (extends_the_range_above) {
 
-            /* Here the new range only extends the range above it, but not the
-             * one below.  It merges with the one above.  Again, we keep i_e
-             * and i_s in sync if they point to the same range */
-            if (i_e == i_s) {
-                i_e++;
-            }
-            i_s++;
-            array[i_s] = start;
-        }
-    }
+        LEAVE_with_name("study_chunk");
 
-    /* Here, we've dealt with the new range start extending any adjoining
-     * existing ranges.
-     *
-     * If the new range extends to infinity, it is now the final one,
-     * regardless of what was there before */
-    if (UNLIKELY(end == UV_MAX)) {
-        invlist_set_len(invlist, i_s + 1, *(get_invlist_offset_addr(invlist)));
-        return invlist;
-    }
+        if (RExC_rxi->regstclass
+            && (OP(RExC_rxi->regstclass) == REG_ANY || OP(RExC_rxi->regstclass) == SANY))
+            RExC_rxi->regstclass = NULL;
 
-    /* If i_e started as == i_s, it has also been dealt with,
-     * and been updated to the new i_s, which will fail the following if */
-    if (! ELEMENT_RANGE_MATCHES_INVLIST(i_e)) {
+        if ((!(RExC_rx->substrs->data[0].substr || RExC_rx->substrs->data[0].utf8_substr)
+              || RExC_rx->substrs->data[0].min_offset)
+            && stclass_flag
+            && ! (ANYOF_FLAGS(data.start_class) & SSC_MATCHES_EMPTY_STRING)
+            && is_ssc_worth_it(pRExC_state, data.start_class))
+        {
+            const U32 n = reg_add_data(pRExC_state, STR_WITH_LEN("f"));
 
-        /* Here, the ranges on either side of the end of the new range are in
-         * the set, and this range ends in the gap between them.
-         *
-         * If this range is adjacent to (hence extends) the range above it, it
-         * becomes part of that range; likewise if it extends the range below,
-         * it becomes part of that range */
-        if (end + 1 == array[i_e+1]) {
-            i_e++;
-            array[i_e] = start;
-        }
-        else if (start <= array[i_e]) {
-            array[i_e] = end + 1;
-            i_e--;
-        }
-    }
+            ssc_finalize(pRExC_state, data.start_class);
 
-    if (i_s == i_e) {
-
-        /* If the range fits entirely in an existing range (as possibly already
-         * extended above), it doesn't add anything new */
-        if (ELEMENT_RANGE_MATCHES_INVLIST(i_s)) {
-            return invlist;
-        }
-
-        /* Here, no part of the range is in the list.  Must add it.  It will
-         * occupy 2 more slots */
-      splice_in_new_range:
-
-        invlist_extend(invlist, len + 2);
-        array = invlist_array(invlist);
-        /* Move the rest of the array down two slots. Don't include any
-         * trailing NUL */
-        Move(array + i_e + 1, array + i_e + 3, len - i_e - 1, UV);
-
-        /* Do the actual splice */
-        array[i_e+1] = start;
-        array[i_e+2] = end + 1;
-        invlist_set_len(invlist, len + 2, *(get_invlist_offset_addr(invlist)));
-        return invlist;
-    }
-
-    /* Here the new range crossed the boundaries of a pre-existing range.  The
-     * code above has adjusted things so that both ends are in ranges that are
-     * in the set.  This means everything in between must also be in the set.
-     * Just squash things together */
-    Move(array + i_e + 1, array + i_s + 1, len - i_e - 1, UV);
-    invlist_set_len(invlist,
-                    len - i_e + i_s,
-                    *(get_invlist_offset_addr(invlist)));
+            Newx(RExC_rxi->data->data[n], 1, regnode_ssc);
+            StructCopy(data.start_class,
+                       (regnode_ssc*)RExC_rxi->data->data[n],
+                       regnode_ssc);
+            RExC_rxi->regstclass = (regnode*)RExC_rxi->data->data[n];
+            RExC_rx->intflags &= ~PREGf_SKIP;	/* Used in find_byclass(). */
+            DEBUG_COMPILE_r({ SV *sv = sv_newmortal();
+                      regprop(RExC_rx, sv, (regnode*)data.start_class, NULL, pRExC_state);
+                      Perl_re_printf( aTHX_
+                                    "synthetic stclass \"%s\".\n",
+                                    SvPVX_const(sv));});
+            data.start_class = NULL;
+        }
 
-    return invlist;
-}
+        /* A temporary algorithm prefers floated substr to fixed one of
+         * same length to dig more info. */
+        i = (longest_length[0] <= longest_length[1]);
+        RExC_rx->substrs->check_ix = i;
+        RExC_rx->check_end_shift  = RExC_rx->substrs->data[i].end_shift;
+        RExC_rx->check_substr     = RExC_rx->substrs->data[i].substr;
+        RExC_rx->check_utf8       = RExC_rx->substrs->data[i].utf8_substr;
+        RExC_rx->check_offset_min = RExC_rx->substrs->data[i].min_offset;
+        RExC_rx->check_offset_max = RExC_rx->substrs->data[i].max_offset;
+        if (!i && (RExC_rx->intflags & (PREGf_ANCH_SBOL|PREGf_ANCH_GPOS)))
+            RExC_rx->intflags |= PREGf_NOSCAN;
 
-SV*
-Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0,
-                                 UV** other_elements_ptr)
-{
-    /* Create and return an inversion list whose contents are to be populated
-     * by the caller.  The caller gives the number of elements (in 'size') and
-     * the very first element ('element0').  This function will set
-     * '*other_elements_ptr' to an array of UVs, where the remaining elements
-     * are to be placed.
-     *
-     * Obviously there is some trust involved that the caller will properly
-     * fill in the other elements of the array.
-     *
-     * (The first element needs to be passed in, as the underlying code does
-     * things differently depending on whether it is zero or non-zero) */
+        if ((RExC_rx->check_substr || RExC_rx->check_utf8) ) {
+            RExC_rx->extflags |= RXf_USE_INTUIT;
+            if (SvTAIL(RExC_rx->check_substr ? RExC_rx->check_substr : RExC_rx->check_utf8))
+                RExC_rx->extflags |= RXf_INTUIT_TAIL;
+        }
 
-    SV* invlist = _new_invlist(size);
-    bool offset;
+        /* XXX Unneeded? dmq (shouldn't as this is handled elsewhere)
+        if ( (STRLEN)minlen < longest_length[1] )
+            minlen= longest_length[1];
+        if ( (STRLEN)minlen < longest_length[0] )
+            minlen= longest_length[0];
+        */
+    }
+    else {
+        /* Several toplevels. Best we can is to set minlen. */
+        SSize_t fake_deltap;
+        regnode_ssc ch_class;
+        SSize_t last_close = 0;
+        regnode *last_close_op = NULL;
 
-    PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST;
+        DEBUG_PARSE_r(Perl_re_printf( aTHX_  "\nMulti Top Level\n"));
 
-    invlist = add_cp_to_invlist(invlist, element0);
-    offset = *get_invlist_offset_addr(invlist);
+        scan = RExC_rxi->program + 1;
+        ssc_init(pRExC_state, &ch_class);
+        data.start_class = &ch_class;
+        data.last_closep = &last_close;
+        data.last_close_opp = &last_close_op;
 
-    invlist_set_len(invlist, size, offset);
-    *other_elements_ptr = invlist_array(invlist) + 1;
-    return invlist;
-}
+        DEBUG_RExC_seen();
+        /*
+         * MAIN ENTRY FOR study_chunk() FOR m/P1|P2|.../
+         * (patterns WITH top level branches)
+         */
+        minlen = study_chunk(pRExC_state,
+            &scan, &minlen, &fake_deltap, scan + RExC_size, &data, -1, 0, NULL,
+            SCF_DO_STCLASS_AND|SCF_WHILEM_VISITED_POS|(restudied
+                                                      ? SCF_TRIE_DOING_RESTUDY
+                                                      : 0),
+            0, TRUE);
+        /* search for "restudy" in this file for a detailed explanation
+         * of 'restudied' and SCF_TRIE_DOING_RESTUDY */
 
-#endif
+        CHECK_RESTUDY_GOTO_butfirst(NOOP);
 
-#ifndef PERL_IN_XSUB_RE
-void
-Perl__invlist_invert(pTHX_ SV* const invlist)
-{
-    /* Complement the input inversion list.  This adds a 0 if the list didn't
-     * have a zero; removes it otherwise.  As described above, the data
-     * structure is set up so that this is very efficient */
+        RExC_rx->check_substr = NULL;
+        RExC_rx->check_utf8 = NULL;
+        RExC_rx->substrs->data[0].substr      = NULL;
+        RExC_rx->substrs->data[0].utf8_substr = NULL;
+        RExC_rx->substrs->data[1].substr      = NULL;
+        RExC_rx->substrs->data[1].utf8_substr = NULL;
 
-    PERL_ARGS_ASSERT__INVLIST_INVERT;
+        if (! (ANYOF_FLAGS(data.start_class) & SSC_MATCHES_EMPTY_STRING)
+            && is_ssc_worth_it(pRExC_state, data.start_class))
+        {
+            const U32 n = reg_add_data(pRExC_state, STR_WITH_LEN("f"));
 
-    assert(! invlist_is_iterating(invlist));
+            ssc_finalize(pRExC_state, data.start_class);
 
-    /* The inverse of matching nothing is matching everything */
-    if (_invlist_len(invlist) == 0) {
-        _append_range_to_invlist(invlist, 0, UV_MAX);
-        return;
+            Newx(RExC_rxi->data->data[n], 1, regnode_ssc);
+            StructCopy(data.start_class,
+                       (regnode_ssc*)RExC_rxi->data->data[n],
+                       regnode_ssc);
+            RExC_rxi->regstclass = (regnode*)RExC_rxi->data->data[n];
+            RExC_rx->intflags &= ~PREGf_SKIP;	/* Used in find_byclass(). */
+            DEBUG_COMPILE_r({ SV* sv = sv_newmortal();
+                      regprop(RExC_rx, sv, (regnode*)data.start_class, NULL, pRExC_state);
+                      Perl_re_printf( aTHX_
+                                    "synthetic stclass \"%s\".\n",
+                                    SvPVX_const(sv));});
+            data.start_class = NULL;
+        }
     }
 
-    *get_invlist_offset_addr(invlist) = ! *get_invlist_offset_addr(invlist);
-}
-
-SV*
-Perl_invlist_clone(pTHX_ SV* const invlist, SV* new_invlist)
-{
-    /* Return a new inversion list that is a copy of the input one, which is
-     * unchanged.  The new list will not be mortal even if the old one was. */
-
-    const STRLEN nominal_length = _invlist_len(invlist);
-    const STRLEN physical_length = SvCUR(invlist);
-    const bool offset = *(get_invlist_offset_addr(invlist));
-
-    PERL_ARGS_ASSERT_INVLIST_CLONE;
-
-    if (new_invlist == NULL) {
-        new_invlist = _new_invlist(nominal_length);
+    if (RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN) {
+        RExC_rx->extflags |= RXf_UNBOUNDED_QUANTIFIER_SEEN;
+        RExC_rx->maxlen = REG_INFTY;
     }
     else {
-        sv_upgrade(new_invlist, SVt_INVLIST);
-        initialize_invlist_guts(new_invlist, nominal_length);
+        RExC_rx->maxlen = RExC_maxlen;
     }
 
-    *(get_invlist_offset_addr(new_invlist)) = offset;
-    invlist_set_len(new_invlist, nominal_length, offset);
-    Copy(SvPVX(invlist), SvPVX(new_invlist), physical_length, char);
+    /* Guard against an embedded (?=) or (?<=) with a longer minlen than
+       the "real" pattern. */
+    DEBUG_OPTIMISE_r({
+        Perl_re_printf( aTHX_ "minlen: %" IVdf " RExC_rx->minlen:%" IVdf " maxlen:%" IVdf "\n",
+                      (IV)minlen, (IV)RExC_rx->minlen, (IV)RExC_maxlen);
+    });
+    RExC_rx->minlenret = minlen;
+    if (RExC_rx->minlen < minlen)
+        RExC_rx->minlen = minlen;
 
-    return new_invlist;
-}
+    if (RExC_seen & REG_RECURSE_SEEN ) {
+        RExC_rx->intflags |= PREGf_RECURSE_SEEN;
+        Newx(RExC_rx->recurse_locinput, RExC_rx->nparens + 1, char *);
+    }
+    if (RExC_seen & REG_GPOS_SEEN)
+        RExC_rx->intflags |= PREGf_GPOS_SEEN;
 
-#endif
+    if (RExC_seen & REG_PESSIMIZE_SEEN)
+        RExC_rx->intflags |= PREGf_PESSIMIZE_SEEN;
 
-PERL_STATIC_INLINE UV
-S_invlist_lowest(SV* const invlist)
-{
-    /* Returns the lowest code point that matches an inversion list.  This API
-     * has an ambiguity, as it returns 0 under either the lowest is actually
-     * 0, or if the list is empty.  If this distinction matters to you, check
-     * for emptiness before calling this function */
+    if (RExC_seen & REG_LOOKBEHIND_SEEN)
+        RExC_rx->extflags |= RXf_NO_INPLACE_SUBST; /* inplace might break the
+                                                lookbehind */
+    if (pRExC_state->code_blocks)
+        RExC_rx->extflags |= RXf_EVAL_SEEN;
 
-    UV len = _invlist_len(invlist);
-    UV *array;
+    if (RExC_seen & REG_VERBARG_SEEN) {
+        RExC_rx->intflags |= PREGf_VERBARG_SEEN;
+        RExC_rx->extflags |= RXf_NO_INPLACE_SUBST; /* don't understand this! Yves */
+    }
 
-    PERL_ARGS_ASSERT_INVLIST_LOWEST;
+    if (RExC_seen & REG_CUTGROUP_SEEN)
+        RExC_rx->intflags |= PREGf_CUTGROUP_SEEN;
 
-    if (len == 0) {
-        return 0;
-    }
+    if (pm_flags & PMf_USE_RE_EVAL)
+        RExC_rx->intflags |= PREGf_USE_RE_EVAL;
 
-    array = invlist_array(invlist);
+    if (RExC_paren_names)
+        RXp_PAREN_NAMES(RExC_rx) = MUTABLE_HV(SvREFCNT_inc(RExC_paren_names));
+    else
+        RXp_PAREN_NAMES(RExC_rx) = NULL;
 
-    return array[0];
-}
+    /* If we have seen an anchor in our pattern then we set the extflag RXf_IS_ANCHORED
+     * so it can be used in pp.c */
+    if (RExC_rx->intflags & PREGf_ANCH)
+        RExC_rx->extflags |= RXf_IS_ANCHORED;
 
-STATIC SV *
-S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style)
-{
-    /* Get the contents of an inversion list into a string SV so that they can
-     * be printed out.  If 'traditional_style' is TRUE, it uses the format
-     * traditionally done for debug tracing; otherwise it uses a format
-     * suitable for just copying to the output, with blanks between ranges and
-     * a dash between range components */
-
-    UV start, end;
-    SV* output;
-    const char intra_range_delimiter = (traditional_style ? '\t' : '-');
-    const char inter_range_delimiter = (traditional_style ? '\n' : ' ');
 
-    if (traditional_style) {
-        output = newSVpvs("\n");
-    }
-    else {
-        output = newSVpvs("");
+    {
+        /* this is used to identify "special" patterns that might result
+         * in Perl NOT calling the regex engine and instead doing the match "itself",
+         * particularly special cases in split//. By having the regex compiler
+         * do this pattern matching at a regop level (instead of by inspecting the pattern)
+         * we avoid weird issues with equivalent patterns resulting in different behavior,
+         * AND we allow non Perl engines to get the same optimizations by the setting the
+         * flags appropriately - Yves */
+        regnode *first = RExC_rxi->program + 1;
+        U8 fop = OP(first);
+        regnode *next = NULL;
+        U8 nop = 0;
+        if (fop == NOTHING || fop == MBOL || fop == SBOL || fop == PLUS) {
+            next = REGNODE_AFTER(first);
+            nop = OP(next);
+        }
+        /* It's safe to read through *next only if OP(first) is a regop of
+         * the right type (not EXACT, for example).
+         */
+        if (REGNODE_TYPE(fop) == NOTHING && nop == END)
+            RExC_rx->extflags |= RXf_NULL;
+        else if ((fop == MBOL || (fop == SBOL && !FLAGS(first))) && nop == END)
+            /* when fop is SBOL first->flags will be true only when it was
+             * produced by parsing /\A/, and not when parsing /^/. This is
+             * very important for the split code as there we want to
+             * treat /^/ as /^/m, but we do not want to treat /\A/ as /^/m.
+             * See rt #122761 for more details. -- Yves */
+            RExC_rx->extflags |= RXf_START_ONLY;
+        else if (fop == PLUS
+                 && REGNODE_TYPE(nop) == POSIXD && FLAGS(next) == CC_SPACE_
+                 && OP(regnext(first)) == END)
+            RExC_rx->extflags |= RXf_WHITE;
+        else if ( RExC_rx->extflags & RXf_SPLIT
+                  && (REGNODE_TYPE(fop) == EXACT && ! isEXACTFish(fop))
+                  && STR_LEN(first) == 1
+                  && *(STRING(first)) == ' '
+                  && OP(regnext(first)) == END )
+            RExC_rx->extflags |= (RXf_SKIPWHITE|RXf_WHITE);
+
     }
 
-    PERL_ARGS_ASSERT_INVLIST_CONTENTS;
+    if (RExC_contains_locale) {
+        RXp_EXTFLAGS(RExC_rx) |= RXf_TAINTED;
+    }
 
-    assert(! invlist_is_iterating(invlist));
+#ifdef DEBUGGING
+    if (RExC_paren_names) {
+        RExC_rxi->name_list_idx = reg_add_data( pRExC_state, STR_WITH_LEN("a"));
+        RExC_rxi->data->data[RExC_rxi->name_list_idx]
+                                   = (void*)SvREFCNT_inc(RExC_paren_name_list);
+    } else
+#endif
+    RExC_rxi->name_list_idx = 0;
 
-    invlist_iterinit(invlist);
-    while (invlist_iternext(invlist, &start, &end)) {
-        if (end == UV_MAX) {
-            Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%cINFTY%c",
-                                          start, intra_range_delimiter,
-                                                 inter_range_delimiter);
-        }
-        else if (end != start) {
-            Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%c%04" UVXf "%c",
-                                          start,
-                                                   intra_range_delimiter,
-                                                  end, inter_range_delimiter);
-        }
-        else {
-            Perl_sv_catpvf(aTHX_ output, "%04" UVXf "%c",
-                                          start, inter_range_delimiter);
-        }
+    while ( RExC_recurse_count > 0 ) {
+        const regnode *scan = RExC_recurse[ --RExC_recurse_count ];
+        /*
+         * This data structure is set up in study_chunk() and is used
+         * to calculate the distance between a GOSUB regopcode and
+         * the OPEN/CURLYM (CURLYM's are special and can act like OPEN's)
+         * it refers to.
+         *
+         * If for some reason someone writes code that optimises
+         * away a GOSUB opcode then the assert should be changed to
+         * an if(scan) to guard the ARG2i_SET() - Yves
+         *
+         */
+        assert(scan && OP(scan) == GOSUB);
+        ARG2i_SET( scan, RExC_open_parens[ARG1u(scan)] - REGNODE_OFFSET(scan));
     }
-
-    if (SvCUR(output) && ! traditional_style) {/* Get rid of trailing blank */
-        SvCUR_set(output, SvCUR(output) - 1);
+    if (RExC_logical_total_parens != RExC_total_parens) {
+        Newxz(RExC_parno_to_logical_next, RExC_total_parens, I32);
+        /* we rebuild this below */
+        Zero(RExC_logical_to_parno, RExC_total_parens, I32);
+        for( int parno = RExC_total_parens-1 ; parno > 0 ; parno-- ) {
+            int logical_parno= RExC_parno_to_logical[parno];
+            assert(logical_parno);
+            RExC_parno_to_logical_next[parno]= RExC_logical_to_parno[logical_parno];
+            RExC_logical_to_parno[logical_parno] = parno;
+        }
+        RExC_rx->logical_to_parno = RExC_logical_to_parno;
+        RExC_rx->parno_to_logical = RExC_parno_to_logical;
+        RExC_rx->parno_to_logical_next = RExC_parno_to_logical_next;
+        RExC_logical_to_parno = NULL;
+        RExC_parno_to_logical = NULL;
+        RExC_parno_to_logical_next = NULL;
+    } else {
+        RExC_rx->logical_to_parno = NULL;
+        RExC_rx->parno_to_logical = NULL;
+        RExC_rx->parno_to_logical_next = NULL;
     }
 
-    return output;
-}
+    Newxz(RXp_OFFSp(RExC_rx), RExC_total_parens, regexp_paren_pair);
+    /* assume we don't need to swap parens around before we match */
+    DEBUG_TEST_r({
+        Perl_re_printf( aTHX_ "study_chunk_recursed_count: %lu\n",
+            (unsigned long)RExC_study_chunk_recursed_count);
+    });
+    DEBUG_DUMP_r({
+        DEBUG_RExC_seen();
+        Perl_re_printf( aTHX_ "Final program:\n");
+        regdump(RExC_rx);
+    });
 
-#ifndef PERL_IN_XSUB_RE
-void
-Perl__invlist_dump(pTHX_ PerlIO *file, I32 level,
-                         const char * const indent, SV* const invlist)
-{
-    /* Designed to be called only by do_sv_dump().  Dumps out the ranges of the
-     * inversion list 'invlist' to 'file' at 'level'  Each line is prefixed by
-     * the string 'indent'.  The output looks like this:
-         [0] 0x000A .. 0x000D
-         [2] 0x0085
-         [4] 0x2028 .. 0x2029
-         [6] 0x3104 .. INFTY
-     * This means that the first range of code points matched by the list are
-     * 0xA through 0xD; the second range contains only the single code point
-     * 0x85, etc.  An inversion list is an array of UVs.  Two array elements
-     * are used to define each range (except if the final range extends to
-     * infinity, only a single element is needed).  The array index of the
-     * first element for the corresponding range is given in brackets. */
-
-    UV start, end;
-    STRLEN count = 0;
-
-    PERL_ARGS_ASSERT__INVLIST_DUMP;
-
-    if (invlist_is_iterating(invlist)) {
-        Perl_dump_indent(aTHX_ level, file,
-             "%sCan't dump inversion list because is in middle of iterating\n",
-             indent);
-        return;
+    if (RExC_open_parens) {
+        Safefree(RExC_open_parens);
+        RExC_open_parens = NULL;
+    }
+    if (RExC_close_parens) {
+        Safefree(RExC_close_parens);
+        RExC_close_parens = NULL;
     }
-
-    invlist_iterinit(invlist);
-    while (invlist_iternext(invlist, &start, &end)) {
-        if (end == UV_MAX) {
-            Perl_dump_indent(aTHX_ level, file,
-                                       "%s[%" UVuf "] 0x%04" UVXf " .. INFTY\n",
-                                   indent, (UV)count, start);
-        }
-        else if (end != start) {
-            Perl_dump_indent(aTHX_ level, file,
-                                    "%s[%" UVuf "] 0x%04" UVXf " .. 0x%04" UVXf "\n",
-                                indent, (UV)count, start,         end);
-        }
-        else {
-            Perl_dump_indent(aTHX_ level, file, "%s[%" UVuf "] 0x%04" UVXf "\n",
-                                            indent, (UV)count, start);
-        }
-        count += 2;
+    if (RExC_logical_to_parno) {
+        Safefree(RExC_logical_to_parno);
+        RExC_logical_to_parno = NULL;
+    }
+    if (RExC_parno_to_logical) {
+        Safefree(RExC_parno_to_logical);
+        RExC_parno_to_logical = NULL;
     }
-}
 
+#ifdef USE_ITHREADS
+    /* under ithreads the ?pat? PMf_USED flag on the pmop is simulated
+     * by setting the regexp SV to readonly-only instead. If the
+     * pattern's been recompiled, the USEDness should remain. */
+    if (old_re && SvREADONLY(old_re))
+        SvREADONLY_on(Rx);
 #endif
+    return Rx;
+}
 
-#if defined(PERL_ARGS_ASSERT__INVLISTEQ) && !defined(PERL_IN_XSUB_RE)
-bool
-Perl__invlistEQ(pTHX_ SV* const a, SV* const b, const bool complement_b)
-{
-    /* Return a boolean as to if the two passed in inversion lists are
-     * identical.  The final argument, if TRUE, says to take the complement of
-     * the second inversion list before doing the comparison */
-
-    const UV len_a = _invlist_len(a);
-    UV len_b = _invlist_len(b);
-
-    const UV* array_a = NULL;
-    const UV* array_b = NULL;
-
-    PERL_ARGS_ASSERT__INVLISTEQ;
-
-    /* This code avoids accessing the arrays unless it knows the length is
-     * non-zero */
 
-    if (len_a == 0) {
-        if (len_b == 0) {
-            return ! complement_b;
-        }
-    }
-    else {
-        array_a = invlist_array(a);
-    }
 
-    if (len_b != 0) {
-        array_b = invlist_array(b);
-    }
+SV*
+Perl_reg_qr_package(pTHX_ REGEXP * const rx)
+{
+    PERL_ARGS_ASSERT_REG_QR_PACKAGE;
+        PERL_UNUSED_ARG(rx);
+        if (0)
+            return NULL;
+        else
+            return newSVpvs("Regexp");
+}
 
-    /* If are to compare 'a' with the complement of b, set it
-     * up so are looking at b's complement. */
-    if (complement_b) {
+/* Scans the name of a named buffer from the pattern.
+ * If flags is REG_RSN_RETURN_NULL returns null.
+ * If flags is REG_RSN_RETURN_NAME returns an SV* containing the name
+ * If flags is REG_RSN_RETURN_DATA returns the data SV* corresponding
+ * to the parsed name as looked up in the RExC_paren_names hash.
+ * If there is an error throws a vFAIL().. type exception.
+ */
 
-        /* The complement of nothing is everything, so <a> would have to have
-         * just one element, starting at zero (ending at infinity) */
-        if (len_b == 0) {
-            return (len_a == 1 && array_a[0] == 0);
-        }
-        if (array_b[0] == 0) {
+#define REG_RSN_RETURN_NULL    0
+#define REG_RSN_RETURN_NAME    1
+#define REG_RSN_RETURN_DATA    2
 
-            /* Otherwise, to complement, we invert.  Here, the first element is
-             * 0, just remove it.  To do this, we just pretend the array starts
-             * one later */
+STATIC SV*
+S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags)
+{
+    char *name_start = RExC_parse;
+    SV* sv_name;
 
-            array_b++;
-            len_b--;
-        }
-        else {
+    PERL_ARGS_ASSERT_REG_SCAN_NAME;
 
-            /* But if the first element is not zero, we pretend the list starts
-             * at the 0 that is always stored immediately before the array. */
-            array_b--;
-            len_b++;
-        }
+    assert (RExC_parse <= RExC_end);
+    if (RExC_parse == RExC_end) NOOP;
+    else if (isIDFIRST_lazy_if_safe(RExC_parse, RExC_end, UTF)) {
+         /* Note that the code here assumes well-formed UTF-8.  Skip IDFIRST by
+          * using do...while */
+        if (UTF)
+            do {
+                RExC_parse_inc_utf8();
+            } while (   RExC_parse < RExC_end
+                     && isWORDCHAR_utf8_safe((U8*)RExC_parse, (U8*) RExC_end));
+        else
+            do {
+                RExC_parse_inc_by(1);
+            } while (RExC_parse < RExC_end && isWORDCHAR(*RExC_parse));
+    } else {
+        RExC_parse_inc_by(1); /* so the <- from the vFAIL is after the offending
+                         character */
+        vFAIL("Group name must start with a non-digit word character");
     }
+    sv_name = newSVpvn_flags(name_start, (int)(RExC_parse - name_start),
+                             SVs_TEMP | (UTF ? SVf_UTF8 : 0));
+    if ( flags == REG_RSN_RETURN_NAME)
+        return sv_name;
+    else if (flags==REG_RSN_RETURN_DATA) {
+        HE *he_str = NULL;
+        SV *sv_dat = NULL;
+        if ( ! sv_name )      /* should not happen*/
+            Perl_croak(aTHX_ "panic: no svname in reg_scan_name");
+        if (RExC_paren_names)
+            he_str = hv_fetch_ent( RExC_paren_names, sv_name, 0, 0 );
+        if ( he_str )
+            sv_dat = HeVAL(he_str);
+        if ( ! sv_dat ) {   /* Didn't find group */
 
-    return    len_a == len_b
-           && memEQ(array_a, array_b, len_a * sizeof(array_a[0]));
-
-}
-#endif
-
-/*
- * As best we can, determine the characters that can match the start of
- * the given EXACTF-ish node.  This is for use in creating ssc nodes, so there
- * can be false positive matches
- *
- * Returns the invlist as a new SV*; it is the caller's responsibility to
- * call SvREFCNT_dec() when done with it.
- */
-STATIC SV*
-S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
-{
-    const U8 * s = (U8*)STRING(node);
-    SSize_t bytelen = STR_LEN(node);
-    UV uc;
-    /* Start out big enough for 2 separate code points */
-    SV* invlist = _new_invlist(4);
-
-    PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST;
-
-    if (! UTF) {
-        uc = *s;
-
-        /* We punt and assume can match anything if the node begins
-         * with a multi-character fold.  Things are complicated.  For
-         * example, /ffi/i could match any of:
-         *  "\N{LATIN SMALL LIGATURE FFI}"
-         *  "\N{LATIN SMALL LIGATURE FF}I"
-         *  "F\N{LATIN SMALL LIGATURE FI}"
-         *  plus several other things; and making sure we have all the
-         *  possibilities is hard. */
-        if (is_MULTI_CHAR_FOLD_latin1_safe(s, s + bytelen)) {
-            invlist = _add_range_to_invlist(invlist, 0, UV_MAX);
-        }
-        else {
-            /* Any Latin1 range character can potentially match any
-             * other depending on the locale, and in Turkic locales, U+130 and
-             * U+131 */
-            if (OP(node) == EXACTFL) {
-                _invlist_union(invlist, PL_Latin1, &invlist);
-                invlist = add_cp_to_invlist(invlist,
-                                                LATIN_SMALL_LETTER_DOTLESS_I);
-                invlist = add_cp_to_invlist(invlist,
-                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE);
+            /* It might be a forward reference; we can't fail until we
+                * know, by completing the parse to get all the groups, and
+                * then reparsing */
+            if (ALL_PARENS_COUNTED)  {
+                vFAIL("Reference to nonexistent named group");
             }
             else {
-                /* But otherwise, it matches at least itself.  We can
-                 * quickly tell if it has a distinct fold, and if so,
-                 * it matches that as well */
-                invlist = add_cp_to_invlist(invlist, uc);
-                if (IS_IN_SOME_FOLD_L1(uc))
-                    invlist = add_cp_to_invlist(invlist, PL_fold_latin1[uc]);
-            }
-
-            /* Some characters match above-Latin1 ones under /i.  This
-             * is true of EXACTFL ones when the locale is UTF-8 */
-            if (HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(uc)
-                && (! isASCII(uc) || ! inRANGE(OP(node), EXACTFAA,
-                                                         EXACTFAA_NO_TRIE)))
-            {
-                add_above_Latin1_folds(pRExC_state, (U8) uc, &invlist);
+                REQUIRE_PARENS_PASS;
             }
         }
+        return sv_dat;
     }
-    else {  /* Pattern is UTF-8 */
-        U8 folded[UTF8_MAX_FOLD_CHAR_EXPAND * UTF8_MAXBYTES_CASE + 1] = { '\0' };
-        const U8* e = s + bytelen;
-        IV fc;
-
-        fc = uc = utf8_to_uvchr_buf(s, s + bytelen, NULL);
-
-        /* The only code points that aren't folded in a UTF EXACTFish
-         * node are the problematic ones in EXACTFL nodes */
-        if (OP(node) == EXACTFL && is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(uc)) {
-            /* We need to check for the possibility that this EXACTFL
-             * node begins with a multi-char fold.  Therefore we fold
-             * the first few characters of it so that we can make that
-             * check */
-            U8 *d = folded;
-            int i;
-
-            fc = -1;
-            for (i = 0; i < UTF8_MAX_FOLD_CHAR_EXPAND && s < e; i++) {
-                if (isASCII(*s)) {
-                    *(d++) = (U8) toFOLD(*s);
-                    if (fc < 0) {       /* Save the first fold */
-                        fc = *(d-1);
-                    }
-                    s++;
-                }
-                else {
-                    STRLEN len;
-                    UV fold = toFOLD_utf8_safe(s, e, d, &len);
-                    if (fc < 0) {       /* Save the first fold */
-                        fc = fold;
-                    }
-                    d += len;
-                    s += UTF8SKIP(s);
-                }
-            }
-
-            /* And set up so the code below that looks in this folded
-             * buffer instead of the node's string */
-            e = d;
-            s = folded;
-        }
-
-        /* When we reach here 's' points to the fold of the first
-         * character(s) of the node; and 'e' points to far enough along
-         * the folded string to be just past any possible multi-char
-         * fold.
-         *
-         * Like the non-UTF case above, we punt if the node begins with a
-         * multi-char fold  */
-
-        if (is_MULTI_CHAR_FOLD_utf8_safe(s, e)) {
-            invlist = _add_range_to_invlist(invlist, 0, UV_MAX);
-        }
-        else {  /* Single char fold */
-            unsigned int k;
-            U32 first_fold;
-            const U32 * remaining_folds;
-            Size_t folds_count;
-
-            /* It matches itself */
-            invlist = add_cp_to_invlist(invlist, fc);
-
-            /* ... plus all the things that fold to it, which are found in
-             * PL_utf8_foldclosures */
-            folds_count = _inverse_folds(fc, &first_fold,
-                                                &remaining_folds);
-            for (k = 0; k < folds_count; k++) {
-                UV c = (k == 0) ? first_fold : remaining_folds[k-1];
-
-                /* /aa doesn't allow folds between ASCII and non- */
-                if (   inRANGE(OP(node), EXACTFAA, EXACTFAA_NO_TRIE)
-                    && isASCII(c) != isASCII(fc))
-                {
-                    continue;
-                }
 
-                invlist = add_cp_to_invlist(invlist, c);
-            }
+    Perl_croak(aTHX_ "panic: bad flag %lx in reg_scan_name",
+                     (unsigned long) flags);
+}
 
-            if (OP(node) == EXACTFL) {
+#define DEBUG_PARSE_MSG(funcname)     DEBUG_PARSE_r({           \
+    if (RExC_lastparse!=RExC_parse) {                           \
+        Perl_re_printf( aTHX_  "%s",                            \
+            Perl_pv_pretty(aTHX_ RExC_mysv1, RExC_parse,        \
+                RExC_end - RExC_parse, 16,                      \
+                "", "",                                         \
+                PERL_PV_ESCAPE_UNI_DETECT |                     \
+                PERL_PV_PRETTY_ELLIPSES   |                     \
+                PERL_PV_PRETTY_LTGT       |                     \
+                PERL_PV_ESCAPE_RE         |                     \
+                PERL_PV_PRETTY_EXACTSIZE                        \
+            )                                                   \
+        );                                                      \
+    } else                                                      \
+        Perl_re_printf( aTHX_ "%16s","");                       \
+                                                                \
+    if (RExC_lastnum!=RExC_emit)                                \
+       Perl_re_printf( aTHX_ "|%4zu", RExC_emit);                \
+    else                                                        \
+       Perl_re_printf( aTHX_ "|%4s","");                        \
+    Perl_re_printf( aTHX_ "|%*s%-4s",                           \
+        (int)((depth*2)), "",                                   \
+        (funcname)                                              \
+    );                                                          \
+    RExC_lastnum=RExC_emit;                                     \
+    RExC_lastparse=RExC_parse;                                  \
+})
 
-                /* If either [iI] are present in an EXACTFL node the above code
-                 * should have added its normal case pair, but under a Turkish
-                 * locale they could match instead the case pairs from it.  Add
-                 * those as potential matches as well */
-                if (isALPHA_FOLD_EQ(fc, 'I')) {
-                    invlist = add_cp_to_invlist(invlist,
-                                                LATIN_SMALL_LETTER_DOTLESS_I);
-                    invlist = add_cp_to_invlist(invlist,
-                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE);
-                }
-                else if (fc == LATIN_SMALL_LETTER_DOTLESS_I) {
-                    invlist = add_cp_to_invlist(invlist, 'I');
-                }
-                else if (fc == LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) {
-                    invlist = add_cp_to_invlist(invlist, 'i');
-                }
-            }
-        }
-    }
 
-    return invlist;
-}
 
-#undef HEADER_LENGTH
-#undef TO_INTERNAL_SIZE
-#undef FROM_INTERNAL_SIZE
-#undef INVLIST_VERSION_ID
+#define DEBUG_PARSE(funcname)     DEBUG_PARSE_r({           \
+    DEBUG_PARSE_MSG((funcname));                            \
+    Perl_re_printf( aTHX_ "%4s","\n");                                  \
+})
+#define DEBUG_PARSE_FMT(funcname,fmt,args)     DEBUG_PARSE_r({\
+    DEBUG_PARSE_MSG((funcname));                            \
+    Perl_re_printf( aTHX_ fmt "\n",args);                               \
+})
 
-/* End of inversion list object */
 
 STATIC void
 S_parse_lparen_question_flags(pTHX_ RExC_state_t *pRExC_state)
@@ -11375,12 +2724,6 @@ S_parse_lparen_question_flags(pTHX_ RExC
  * is a trifle forced, but the need to tie the tails of the branches to what
  * follows makes it hard to avoid.
  */
-#define REGTAIL(x,y,z) regtail((x),(y),(z),depth+1)
-#ifdef DEBUGGING
-#define REGTAIL_STUDY(x,y,z) regtail_study((x),(y),(z),depth+1)
-#else
-#define REGTAIL_STUDY(x,y,z) regtail((x),(y),(z),depth+1)
-#endif
 
 STATIC regnode_offset
 S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state,
@@ -11408,12 +2751,12 @@ S_handle_named_backref(pTHX_ RExC_state_
     }
 
     if (sv_dat) {
-        num = add_data( pRExC_state, STR_WITH_LEN("S"));
+        num = reg_add_data( pRExC_state, STR_WITH_LEN("S"));
         RExC_rxi->data->data[num]=(void*)sv_dat;
         SvREFCNT_inc_simple_void_NN(sv_dat);
     }
     RExC_sawback = 1;
-    ret = reganode(pRExC_state,
+    ret = reg2node(pRExC_state,
                    ((! FOLD)
                      ? REFN
                      : (ASCII_FOLD_RESTRICTED)
@@ -11423,7 +2766,9 @@ S_handle_named_backref(pTHX_ RExC_state_
                          : (LOC)
                            ? REFFLN
                            : REFFN),
-                    num);
+                    num, RExC_nestroot);
+    if (RExC_nestroot && num >= (U32)RExC_nestroot)
+        FLAGS(REGNODE_p(ret)) = VOLATILE_REF;
     *flagp |= HASWIDTH;
 
     nextchar(pRExC_state);
@@ -11432,7 +2777,7 @@ S_handle_named_backref(pTHX_ RExC_state_
 
 /* reg_la_NOTHING()
  *
- * Maybe parse a parenthezised lookaround construct that is equivalent to a
+ * Maybe parse a parenthesized lookaround construct that is equivalent to a
  * NOTHING regop when the construct is empty.
  *
  * Calls skip_to_be_ignored_text() before checking if the construct is empty.
@@ -11482,7 +2827,7 @@ S_reg_la_NOTHING(pTHX_ RExC_state_t *pRE
 
 /* reg_la_OPFAIL()
  *
- * Maybe parse a parenthezised lookaround construct that is equivalent to a
+ * Maybe parse a parenthesized lookaround construct that is equivalent to a
  * OPFAIL regop when the construct is empty.
  *
  * Calls skip_to_be_ignored_text() before checking if the construct is empty.
@@ -11516,7 +2861,7 @@ S_reg_la_OPFAIL(pTHX_ RExC_state_t *pREx
         vFAIL2("Sequence (%s... not terminated", type);
 
     if (*RExC_parse == ')') {
-        regnode_offset ret= reganode(pRExC_state, OPFAIL, 0);
+        regnode_offset ret= reg1node(pRExC_state, OPFAIL, 0);
         nextchar(pRExC_state);
         return ret; /* return produced regop */
     }
@@ -11595,6 +2940,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
     regnode_offset br;
     regnode_offset lastbr;
     regnode_offset ender = 0;
+    I32 logical_parno = 0;
     I32 parno = 0;
     I32 flags;
     U32 oregflags = RExC_flags;
@@ -11605,6 +2951,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
     I32 num; /* numeric backreferences */
     SV * max_open;  /* Max number of unclosed parens */
     I32 was_in_lookaround = RExC_in_lookaround;
+    I32 fake_eval = 0; /* matches paren */
 
     /* The difference between the following variables can be seen with  *
      * the broken pattern /(?:foo/ where segment_parse_start will point *
@@ -11661,6 +3008,11 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
             goto parse_rest;
         }
         else if ( *RExC_parse == '*') { /* (*VERB:ARG), (*construct:...) */
+            if (RExC_parse[1] == '{') { /* (*{ ... }) optimistic EVAL */
+                fake_eval = '{';
+                goto handle_qmark;
+            }
+
             char *start_verb = RExC_parse + 1;
             STRLEN verb_len;
             char *start_arg = NULL;
@@ -11902,7 +3254,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                          * See also: S_reg_la_OPFAIL() */
 
                         /* Note: OPFAIL is *not* zerolen. */
-                        ret = reganode(pRExC_state, OPFAIL, 0);
+                        ret = reg1node(pRExC_state, OPFAIL, 0);
                         nextchar(pRExC_state);
                         return ret;
                     }
@@ -11951,27 +3303,29 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                     (int) verb_len, start_verb);
             }
             if (internal_argval == -1) {
-                ret = reganode(pRExC_state, op, 0);
+                ret = reg1node(pRExC_state, op, 0);
             } else {
-                ret = reg2Lanode(pRExC_state, op, 0, internal_argval);
+                ret = reg2node(pRExC_state, op, 0, internal_argval);
             }
             RExC_seen |= REG_VERBARG_SEEN;
             if (start_arg) {
                 SV *sv = newSVpvn( start_arg, RExC_parse - start_arg);
-                ARG(REGNODE_p(ret)) = add_data( pRExC_state,
+                ARG1u(REGNODE_p(ret)) = reg_add_data( pRExC_state,
                                         STR_WITH_LEN("S"));
-                RExC_rxi->data->data[ARG(REGNODE_p(ret))]=(void*)sv;
+                RExC_rxi->data->data[ARG1u(REGNODE_p(ret))]=(void*)sv;
                 FLAGS(REGNODE_p(ret)) = 1;
             } else {
                 FLAGS(REGNODE_p(ret)) = 0;
             }
             if ( internal_argval != -1 )
-                ARG2L_SET(REGNODE_p(ret), internal_argval);
+                ARG2i_SET(REGNODE_p(ret), internal_argval);
             nextchar(pRExC_state);
             return ret;
         }
         else if (*RExC_parse == '?') { /* (?...) */
-            bool is_logical = 0;
+          handle_qmark:
+            ; /* make sure the label has a statement associated with it*/
+            bool is_logical = 0, is_optimistic = 0;
             const char * const seqstart = RExC_parse;
             const char * endptr;
             const char non_existent_group_msg[]
@@ -11984,8 +3338,14 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
             }
 
             RExC_parse_inc_by(1);   /* past the '?' */
-            paren = *RExC_parse;    /* might be a trailing NUL, if not
-                                       well-formed */
+            if (!fake_eval) {
+                paren = *RExC_parse;    /* might be a trailing NUL, if not
+                                           well-formed */
+                is_optimistic = 0;
+            } else {
+                is_optimistic = 1;
+                paren = fake_eval;
+            }
             RExC_parse_inc();
             if (RExC_parse > RExC_end) {
                 paren = '\0';
@@ -12104,14 +3464,15 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                             SvIV_set(sv_dat, 1);
                         }
 #ifdef DEBUGGING
-                        /* Yes this does cause a memory leak in debugging Perls
-                         * */
+                        /* No, this does not cause a memory leak under
+                         * debugging. RExC_paren_name_list is freed later
+                         * on in the dump process. - Yves
+                         */
                         if (!av_store(RExC_paren_name_list,
                                       RExC_npar, SvREFCNT_inc_NN(svname)))
                             SvREFCNT_dec_NN(svname);
 #endif
 
-                        /*sv_dump(sv_dat);*/
                     }
                     nextchar(pRExC_state);
                     paren = 1;
@@ -12130,7 +3491,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                 /* branch reset, behave like a (?:...) except that
                    buffers in alternations share the same numbers */
                 paren = ':';
-                after_freeze = freeze_paren = RExC_npar;
+                after_freeze = freeze_paren = RExC_logical_npar;
 
                 /* XXX This construct currently requires an extra pass.
                  * Investigation would be required to see if that could be
@@ -12219,7 +3580,6 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                 if (*RExC_parse!=')')
                     vFAIL("Expecting close bracket");
 
-              gen_recurse_regop:
                 if (paren == '-' || paren == '+') {
 
                     /* Don't overflow */
@@ -12256,7 +3616,26 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                         vFAIL(non_existent_group_msg);
                     }
                 }
+                else
+                if (num && num < RExC_logical_npar) {
+                    num = RExC_logical_to_parno[num];
+                }
+                else
+                if (ALL_PARENS_COUNTED) {
+                    if (num < RExC_logical_total_parens) {
+                        num = RExC_logical_to_parno[num];
+                    }
+                    else {
+                        RExC_parse_inc_by(1);
+                        vFAIL(non_existent_group_msg);
+                    }
+                }
+                else {
+                    REQUIRE_PARENS_PASS;
+                }
 
+
+              gen_recurse_regop:
                 if (num >= RExC_npar) {
 
                     /* It might be a forward reference; we can't fail until we
@@ -12274,20 +3653,20 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                 }
 
                 /* We keep track how many GOSUB items we have produced.
-                   To start off the ARG2L() of the GOSUB holds its "id",
+                   To start off the ARG2i() of the GOSUB holds its "id",
                    which is used later in conjunction with RExC_recurse
                    to calculate the offset we need to jump for the GOSUB,
                    which it will store in the final representation.
                    We have to defer the actual calculation until much later
                    as the regop may move.
                  */
-                ret = reg2Lanode(pRExC_state, GOSUB, num, RExC_recurse_count);
+                ret = reg2node(pRExC_state, GOSUB, num, RExC_recurse_count);
                 RExC_recurse_count++;
                 DEBUG_OPTIMISE_MORE_r(Perl_re_printf( aTHX_
                     "%*s%*s Recurse #%" UVuf " to %" IVdf "\n",
                             22, "|    |", (int)(depth * 2 + 1), "",
-                            (UV)ARG(REGNODE_p(ret)),
-                            (IV)ARG2L(REGNODE_p(ret))));
+                            (UV)ARG1u(REGNODE_p(ret)),
+                            (IV)ARG2i(REGNODE_p(ret))));
                 RExC_seen |= REG_RECURSE_SEEN;
 
                 *flagp |= POSTPONED;
@@ -12335,37 +3714,42 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                 RExC_parse_set(RExC_start + cb->end);
                 o = cb->block;
                 if (cb->src_regex) {
-                    n = add_data(pRExC_state, STR_WITH_LEN("rl"));
+                    n = reg_add_data(pRExC_state, STR_WITH_LEN("rl"));
                     RExC_rxi->data->data[n] =
                         (void*)SvREFCNT_inc((SV*)cb->src_regex);
                     RExC_rxi->data->data[n+1] = (void*)o;
                 }
                 else {
-                    n = add_data(pRExC_state,
+                    n = reg_add_data(pRExC_state,
                             (RExC_pm_flags & PMf_HAS_CV) ? "L" : "l", 1);
                     RExC_rxi->data->data[n] = (void*)o;
                 }
                 pRExC_state->code_index++;
                 nextchar(pRExC_state);
+                if (!is_optimistic)
+                    RExC_seen |= REG_PESSIMIZE_SEEN;
 
                 if (is_logical) {
                     regnode_offset eval;
                     ret = reg_node(pRExC_state, LOGICAL);
+                    FLAGS(REGNODE_p(ret)) = 2;
 
-                    eval = reg2Lanode(pRExC_state, EVAL,
+                    eval = reg2node(pRExC_state, EVAL,
                                        n,
 
                                        /* for later propagation into (??{})
                                         * return value */
                                        RExC_flags & RXf_PMf_COMPILETIME
                                       );
-                    FLAGS(REGNODE_p(ret)) = 2;
+                    FLAGS(REGNODE_p(eval)) = is_optimistic * EVAL_OPTIMISTIC_FLAG;
                     if (! REGTAIL(pRExC_state, ret, eval)) {
                         REQUIRE_BRANCHJ(flagp, 0);
                     }
                     return ret;
                 }
-                ret = reg2Lanode(pRExC_state, EVAL, n, 0);
+                ret = reg2node(pRExC_state, EVAL, n, 0);
+                FLAGS(REGNODE_p(ret)) = is_optimistic * EVAL_OPTIMISTIC_FLAG;
+
                 return ret;
             }
             case '(':           /* (?(?{...})...) and (?(?=...)...) */
@@ -12379,7 +3763,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                                 || RExC_parse[1] == '<'
                                 || RExC_parse[1] == '{'))
                         || (       RExC_parse[0] == '*'        /* (?(*...)) */
-                            && (   memBEGINs(RExC_parse + 1,
+                            && (   RExC_parse[1] == '{'
+                            || (   memBEGINs(RExC_parse + 1,
                                          (Size_t) (RExC_end - (RExC_parse + 1)),
                                          "pla:")
                                 || memBEGINs(RExC_parse + 1,
@@ -12402,7 +3787,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                                          "negative_lookahead:")
                                 || memBEGINs(RExC_parse + 1,
                                          (Size_t) (RExC_end - (RExC_parse + 1)),
-                                         "negative_lookbehind:"))))
+                                         "negative_lookbehind:")))))
                 ) { /* Lookahead or eval. */
                     I32 flag;
                     regnode_offset tail;
@@ -12434,18 +3819,18 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                     }
                     RExC_parse_inc_by(1);
                     if (sv_dat) {
-                        num = add_data( pRExC_state, STR_WITH_LEN("S"));
+                        num = reg_add_data( pRExC_state, STR_WITH_LEN("S"));
                         RExC_rxi->data->data[num]=(void*)sv_dat;
                         SvREFCNT_inc_simple_void_NN(sv_dat);
                     }
-                    ret = reganode(pRExC_state, GROUPPN, num);
+                    ret = reg1node(pRExC_state, GROUPPN, num);
                     goto insert_if_check_paren;
                 }
                 else if (memBEGINs(RExC_parse,
                                    (STRLEN) (RExC_end - RExC_parse),
                                    "DEFINE"))
                 {
-                    ret = reganode(pRExC_state, DEFINEP, 0);
+                    ret = reg1node(pRExC_state, DEFINEP, 0);
                     RExC_parse_inc_by(DEFINE_len);
                     is_define = 1;
                     goto insert_if_check_paren;
@@ -12479,7 +3864,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                         if (sv_dat)
                             parno = 1 + *((I32 *)SvPVX(sv_dat));
                     }
-                    ret = reganode(pRExC_state, INSUBP, parno);
+                    ret = reg1node(pRExC_state, INSUBP, parno);
                     goto insert_if_check_paren;
                 }
                 else if (inRANGE(RExC_parse[0], '1', '9')) {
@@ -12496,7 +3881,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                     else {
                         vFAIL("panic: grok_atoUV returned FALSE");
                     }
-                    ret = reganode(pRExC_state, GROUPP, parno);
+                    ret = reg1node(pRExC_state, GROUPP, parno);
 
                  insert_if_check_paren:
                     if (UCHARAT(RExC_parse) != ')') {
@@ -12505,7 +3890,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                     }
                     nextchar(pRExC_state);
                   insert_if:
-                    if (! REGTAIL(pRExC_state, ret, reganode(pRExC_state,
+                    if (! REGTAIL(pRExC_state, ret, reg1node(pRExC_state,
                                                              IFTHEN, 0)))
                     {
                         REQUIRE_BRANCHJ(flagp, 0);
@@ -12516,7 +3901,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                         FAIL2("panic: regbranch returned failure, flags=%#" UVxf,
                               (UV) flags);
                     } else
-                    if (! REGTAIL(pRExC_state, br, reganode(pRExC_state,
+                    if (! REGTAIL(pRExC_state, br, reg1node(pRExC_state,
                                                              LONGJMP, 0)))
                     {
                         REQUIRE_BRANCHJ(flagp, 0);
@@ -12530,7 +3915,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                             vFAIL("(?(DEFINE)....) does not allow branches");
 
                         /* Fake one for optimizer.  */
-                        lastbr = reganode(pRExC_state, IFTHEN, 0);
+                        lastbr = reg1node(pRExC_state, IFTHEN, 0);
 
                         if (!regbranch(pRExC_state, &flags, 1, depth+1)) {
                             RETURN_FAIL_ON_RESTART(flags, flagp);
@@ -12563,8 +3948,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                         }
                         if (! REGTAIL(pRExC_state,
                                       REGNODE_OFFSET(
-                                                 NEXTOPER(
-                                                 NEXTOPER(REGNODE_p(lastbr)))),
+                                        REGNODE_AFTER(REGNODE_p(lastbr))),
                                       ender))
                         {
                             REQUIRE_BRANCHJ(flagp, 0);
@@ -12618,6 +4002,11 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
           capturing_parens:
             parno = RExC_npar;
             RExC_npar++;
+            if (RExC_npar >= U16_MAX)
+                FAIL2("Too many capture groups (limit is %" UVuf ")", (UV)RExC_npar);
+
+            logical_parno = RExC_logical_npar;
+            RExC_logical_npar++;
             if (! ALL_PARENS_COUNTED) {
                 /* If we are in our first pass through (and maybe only pass),
                  * we  need to allocate memory for the capturing parentheses
@@ -12641,9 +4030,12 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                      * */
                     Newxz(RExC_close_parens, RExC_parens_buf_size,
                             regnode_offset);
-                    /* we dont know where end op starts yet, so we dont need to
+                    /* we don't know where end op starts yet, so we don't need to
                      * set RExC_close_parens[0] like we do RExC_open_parens[0]
                      * above */
+
+                    Newxz(RExC_logical_to_parno, RExC_parens_buf_size, I32);
+                    Newxz(RExC_parno_to_logical, RExC_parens_buf_size, I32);
                 }
                 else if (RExC_npar > RExC_parens_buf_size) {
                     I32 old_size = RExC_parens_buf_size;
@@ -12659,10 +4051,18 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                             regnode_offset);
                     Zero(RExC_close_parens + old_size,
                             RExC_parens_buf_size - old_size, regnode_offset);
+
+                    Renew(RExC_logical_to_parno, RExC_parens_buf_size, I32);
+                    Zero(RExC_logical_to_parno + old_size,
+                         RExC_parens_buf_size - old_size, I32);
+
+                    Renew(RExC_parno_to_logical, RExC_parens_buf_size, I32);
+                    Zero(RExC_parno_to_logical + old_size,
+                         RExC_parens_buf_size - old_size, I32);
                 }
             }
 
-            ret = reganode(pRExC_state, OPEN, parno);
+            ret = reg1node(pRExC_state, OPEN, parno);
             if (!RExC_nestroot)
                 RExC_nestroot = parno;
             if (RExC_open_parens && !RExC_open_parens[parno])
@@ -12673,7 +4073,11 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                     (IV)parno, ret));
                 RExC_open_parens[parno]= ret;
             }
-
+            if (RExC_parno_to_logical) {
+                RExC_parno_to_logical[parno] = logical_parno;
+                if (RExC_logical_to_parno && !RExC_logical_to_parno[logical_parno])
+                    RExC_logical_to_parno[logical_parno] = parno;
+            }
             is_open = 1;
         } else {
             /* with RXf_PMf_NOCAPTURE treat (...) as (?:...) */
@@ -12687,6 +4091,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
    parse_rest:
     /* Pick up the branches, linking them together. */
     segment_parse_start = RExC_parse;
+    I32 npar_before_regbranch = RExC_npar - 1;
     br = regbranch(pRExC_state, &flags, 1, depth+1);
 
     /*     branch_len = (paren != 0); */
@@ -12698,9 +4103,13 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
     if (*RExC_parse == '|') {
         if (RExC_use_BRANCHJ) {
             reginsert(pRExC_state, BRANCHJ, br, depth+1);
+            ARG2a_SET(REGNODE_p(br), npar_before_regbranch);
+            ARG2b_SET(REGNODE_p(br), (U16)RExC_npar - 1);
         }
         else {
             reginsert(pRExC_state, BRANCH, br, depth+1);
+            ARG1a_SET(REGNODE_p(br), (U16)npar_before_regbranch);
+            ARG1b_SET(REGNODE_p(br), (U16)RExC_npar - 1);
         }
         have_branch = 1;
     }
@@ -12720,19 +4129,19 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
         if (RExC_use_BRANCHJ) {
             bool shut_gcc_up;
 
-            ender = reganode(pRExC_state, LONGJMP, 0);
+            ender = reg1node(pRExC_state, LONGJMP, 0);
 
             /* Append to the previous. */
             shut_gcc_up = REGTAIL(pRExC_state,
-                         REGNODE_OFFSET(NEXTOPER(NEXTOPER(REGNODE_p(lastbr)))),
+                         REGNODE_OFFSET(REGNODE_AFTER(REGNODE_p(lastbr))),
                          ender);
             PERL_UNUSED_VAR(shut_gcc_up);
         }
         nextchar(pRExC_state);
         if (freeze_paren) {
-            if (RExC_npar > after_freeze)
-                after_freeze = RExC_npar;
-            RExC_npar = freeze_paren;
+            if (RExC_logical_npar > after_freeze)
+                after_freeze = RExC_logical_npar;
+            RExC_logical_npar = freeze_paren;
         }
         br = regbranch(pRExC_state, &flags, 0, depth+1);
 
@@ -12743,6 +4152,22 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
         if (!  REGTAIL(pRExC_state, lastbr, br)) {  /* BRANCH -> BRANCH. */
             REQUIRE_BRANCHJ(flagp, 0);
         }
+        assert(OP(REGNODE_p(br)) == BRANCH || OP(REGNODE_p(br))==BRANCHJ);
+        assert(OP(REGNODE_p(lastbr)) == BRANCH || OP(REGNODE_p(lastbr))==BRANCHJ);
+        if (OP(REGNODE_p(br)) == BRANCH) {
+            if (OP(REGNODE_p(lastbr)) == BRANCH)
+                ARG1b_SET(REGNODE_p(lastbr),ARG1a(REGNODE_p(br)));
+            else
+                ARG2b_SET(REGNODE_p(lastbr),ARG1a(REGNODE_p(br)));
+        }
+        else
+        if (OP(REGNODE_p(br)) == BRANCHJ) {
+            if (OP(REGNODE_p(lastbr)) == BRANCH)
+                ARG1b_SET(REGNODE_p(lastbr),ARG2a(REGNODE_p(br)));
+            else
+                ARG2b_SET(REGNODE_p(lastbr),ARG2a(REGNODE_p(br)));
+        }
+
         lastbr = br;
         *flagp |= flags & (HASWIDTH | POSTPONED);
     }
@@ -12756,7 +4181,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
             ender = reg_node(pRExC_state, TAIL);
             break;
         case 1: case 2:
-            ender = reganode(pRExC_state, CLOSE, parno);
+            ender = reg1node(pRExC_state, CLOSE, parno);
             if ( RExC_close_parens ) {
                 DEBUG_OPTIMISE_MORE_r(Perl_re_printf( aTHX_
                         "%*s%*s Setting close paren #%" IVdf " to %zu\n",
@@ -12816,6 +4241,14 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                           (IV)(ender - lastbr)
             );
         });
+        if (OP(REGNODE_p(lastbr)) == BRANCH) {
+            ARG1b_SET(REGNODE_p(lastbr),(U16)RExC_npar-1);
+        }
+        else
+        if (OP(REGNODE_p(lastbr)) == BRANCHJ) {
+            ARG2b_SET(REGNODE_p(lastbr),(U16)RExC_npar-1);
+        }
+
         if (! REGTAIL(pRExC_state, lastbr, ender)) {
             REQUIRE_BRANCHJ(flagp, 0);
         }
@@ -12827,33 +4260,35 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
 
             /* Hook the tails of the branches to the closing node. */
             for (br = REGNODE_p(ret); br; br = regnext(br)) {
-                const U8 op = PL_regkind[OP(br)];
+                const U8 op = REGNODE_TYPE(OP(br));
+                regnode *nextoper = REGNODE_AFTER(br);
                 if (op == BRANCH) {
                     if (! REGTAIL_STUDY(pRExC_state,
-                                        REGNODE_OFFSET(NEXTOPER(br)),
+                                        REGNODE_OFFSET(nextoper),
                                         ender))
                     {
                         REQUIRE_BRANCHJ(flagp, 0);
                     }
-                    if ( OP(NEXTOPER(br)) != NOTHING
-                         || regnext(NEXTOPER(br)) != REGNODE_p(ender))
+                    if ( OP(nextoper) != NOTHING
+                         || regnext(nextoper) != REGNODE_p(ender))
                         is_nothing= 0;
                 }
                 else if (op == BRANCHJ) {
                     bool shut_gcc_up = REGTAIL_STUDY(pRExC_state,
-                                        REGNODE_OFFSET(NEXTOPER(NEXTOPER(br))),
+                                        REGNODE_OFFSET(nextoper),
                                         ender);
                     PERL_UNUSED_VAR(shut_gcc_up);
                     /* for now we always disable this optimisation * /
-                    if ( OP(NEXTOPER(NEXTOPER(br))) != NOTHING
-                         || regnext(NEXTOPER(NEXTOPER(br))) != REGNODE_p(ender))
+                    regnode *nopr= REGNODE_AFTER_type(br,tregnode_BRANCHJ);
+                    if ( OP(nopr) != NOTHING
+                         || regnext(nopr) != REGNODE_p(ender))
                     */
                         is_nothing= 0;
                 }
             }
             if (is_nothing) {
                 regnode * ret_as_regnode = REGNODE_p(ret);
-                br= PL_regkind[OP(ret_as_regnode)] != BRANCH
+                br= REGNODE_TYPE(OP(ret_as_regnode)) != BRANCH
                                ? regnext(ret_as_regnode)
                                : ret_as_regnode;
                 DEBUG_PARSE_r({
@@ -12873,7 +4308,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
                 OP(br)= NOTHING;
                 if (OP(REGNODE_p(ender)) == TAIL) {
                     NEXT_OFF(br)= 0;
-                    RExC_emit= REGNODE_OFFSET(br) + 1;
+                    RExC_emit= REGNODE_OFFSET(br) + NODE_STEP_REGNODE;
                 } else {
                     regnode *opt;
                     for ( opt= br + 1; opt < REGNODE_p(ender) ; opt++ )
@@ -12931,8 +4366,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
         NOT_REACHED; /* NOTREACHED */
     }
 
-    if (after_freeze > RExC_npar)
-        RExC_npar = after_freeze;
+    if (after_freeze > RExC_logical_npar)
+        RExC_logical_npar = after_freeze;
 
     RExC_in_lookaround = was_in_lookaround;
 
@@ -12957,6 +4392,7 @@ S_regbranch(pTHX_ RExC_state_t *pRExC_st
     regnode_offset ret;
     regnode_offset chain = 0;
     regnode_offset latest;
+    regnode *branch_node = NULL;
     I32 flags = 0, c = 0;
     DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
@@ -12967,10 +4403,14 @@ S_regbranch(pTHX_ RExC_state_t *pRExC_st
     if (first)
         ret = 0;
     else {
-        if (RExC_use_BRANCHJ)
-            ret = reganode(pRExC_state, BRANCHJ, 0);
-        else {
-            ret = reg_node(pRExC_state, BRANCH);
+        if (RExC_use_BRANCHJ) {
+            ret = reg2node(pRExC_state, BRANCHJ, 0, 0);
+            branch_node = REGNODE_p(ret);
+            ARG2a_SET(branch_node, (U16)RExC_npar-1);
+        } else {
+            ret = reg1node(pRExC_state, BRANCH, 0);
+            branch_node = REGNODE_p(ret);
+            ARG1a_SET(branch_node, (U16)RExC_npar-1);
         }
     }
 
@@ -13010,9 +4450,8 @@ S_regbranch(pTHX_ RExC_state_t *pRExC_st
             ret = chain;
     }
     if (c == 1) {
-        *flagp |= flags&SIMPLE;
+        *flagp |= flags & SIMPLE;
     }
-
     return ret;
 }
 
@@ -13205,6 +4644,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_sta
     const char * const origparse = RExC_parse;
     I32 min;
     I32 max = REG_INFTY;
+    I32 npar_before = RExC_npar-1;
 
     /* Save the original in case we change the emitted regop to a FAIL. */
     const regnode_offset orig_emit = RExC_emit;
@@ -13220,6 +4660,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_sta
         RETURN_FAIL_ON_RESTART_OR_FLAGS(flags, flagp, TRYAGAIN);
         FAIL2("panic: regatom returned failure, flags=%#" UVxf, (UV) flags);
     }
+    I32 npar_after = RExC_npar-1;
 
     op = *RExC_parse;
     switch (op) {
@@ -13275,7 +4716,7 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_sta
                 reginsert(pRExC_state, OPFAIL, orig_emit, depth+1);
                 ckWARNreg(RExC_parse, "Quantifier {n,m} with n > m can't match");
                 NEXT_OFF(REGNODE_p(orig_emit)) =
-                                    regarglen[OPFAIL] + NODE_STEP_REGNODE;
+                                    REGNODE_ARG_LEN(OPFAIL) + NODE_STEP_REGNODE;
                 return ret;
             }
             else if (min == max && *RExC_parse == '?') {
@@ -13301,22 +4742,12 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_sta
      * Check and possibly adjust a zero width operand */
     if (! (flags & (HASWIDTH|POSTPONED))) {
         if (max > REG_INFTY/3) {
-            if (origparse[0] == '\\' && origparse[1] == 'K') {
-                vFAIL2utf8f(
-                           "%" UTF8f " is forbidden - matches null string"
-                           " many times",
-                           UTF8fARG(UTF, (RExC_parse >= origparse
-                                         ? RExC_parse - origparse
-                                         : 0),
-                           origparse));
-            } else {
-                ckWARN2reg(RExC_parse,
-                           "%" UTF8f " matches null string many times",
-                           UTF8fARG(UTF, (RExC_parse >= origparse
-                                         ? RExC_parse - origparse
-                                         : 0),
-                           origparse));
-            }
+            ckWARN2reg(RExC_parse,
+                       "%" UTF8f " matches null string many times",
+                       UTF8fARG(UTF, (RExC_parse >= origparse
+                                     ? RExC_parse - origparse
+                                     : 0),
+                       origparse));
         }
 
         /* There's no point in trying to match something 0 length more than
@@ -13373,13 +4804,13 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_sta
         if (RExC_use_BRANCHJ) {
             reginsert(pRExC_state, LONGJMP, ret, depth+1);
             reginsert(pRExC_state, NOTHING, ret, depth+1);
-            NEXT_OFF(REGNODE_p(ret)) = 3;        /* Go over LONGJMP. */
+            REGNODE_STEP_OVER(ret,tregnode_NOTHING,tregnode_LONGJMP);
         }
         reginsert(pRExC_state, CURLYX, ret, depth+1);
-
         if (RExC_use_BRANCHJ)
-            NEXT_OFF(REGNODE_p(ret)) = 3;   /* Go over NOTHING to
-                                               LONGJMP. */
+            /* Go over NOTHING to LONGJMP. */
+            REGNODE_STEP_OVER(ret,tregnode_CURLYX,tregnode_NOTHING);
+
         if (! REGTAIL(pRExC_state, ret, reg_node(pRExC_state,
                                                   NOTHING)))
         {
@@ -13392,8 +4823,19 @@ S_regpiece(pTHX_ RExC_state_t *pRExC_sta
     /* Finish up the CURLY/CURLYX case */
     FLAGS(REGNODE_p(ret)) = 0;
 
-    ARG1_SET(REGNODE_p(ret), (U16)min);
-    ARG2_SET(REGNODE_p(ret), (U16)max);
+    ARG1i_SET(REGNODE_p(ret), min);
+    ARG2i_SET(REGNODE_p(ret), max);
+
+    /* if we had a npar_after then we need to increment npar_before,
+     * we want to track the range of parens we need to reset each iteration
+     */
+    if (npar_after!=npar_before) {
+        ARG3a_SET(REGNODE_p(ret), (U16)npar_before+1);
+        ARG3b_SET(REGNODE_p(ret), (U16)npar_after);
+    } else {
+        ARG3a_SET(REGNODE_p(ret), 0);
+        ARG3b_SET(REGNODE_p(ret), 0);
+    }
 
   done_main_op:
 
@@ -13936,14 +5378,6 @@ S_backref_value(char *p, char *e)
     return I32_MAX;
 }
 
-#ifdef DEBUGGING
-#define REGNODE_GUTS(state,op,extra_size) \
-    regnode_guts_debug(state,op,extra_size)
-#else
-#define REGNODE_GUTS(state,op,extra_size) \
-    regnode_guts(state,extra_size)
-#endif
-
 
 /*
  - regatom - the lowest level
@@ -13981,7 +5415,7 @@ S_backref_value(char *p, char *e)
                 cases for each unambiguous special:
                     handle this special;
                     break;
-                cases for each ambigous special/literal:
+                cases for each ambiguous special/literal:
                     disambiguate;
                     if (special)  handle here
                     else goto defchar;
@@ -14509,11 +5943,26 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                         else
                             vFAIL("Unterminated \\g... pattern");
                     }
-
-                    if (isrel) {
-                        num = RExC_npar - num;
-                        if (num < 1)
-                            vFAIL("Reference to nonexistent or unclosed group");
+
+                    if (isrel) {
+                        num = RExC_npar - num;
+                        if (num < 1)
+                            vFAIL("Reference to nonexistent or unclosed group");
+                    }
+                    else
+                    if (num < RExC_logical_npar) {
+                        num = RExC_logical_to_parno[num];
+                    }
+                    else
+                    if (ALL_PARENS_COUNTED)  {
+                        if (num < RExC_logical_total_parens)
+                            num = RExC_logical_to_parno[num];
+                        else {
+                            num = -1;
+                        }
+                    }
+                    else{
+                        REQUIRE_PARENS_PASS;
                     }
                 }
                 else {
@@ -14528,7 +5977,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                     if (    /* any numeric escape < 10 is always a backref */
                            num > 9
                             /* any numeric escape < RExC_npar is a backref */
-                        && num >= RExC_npar
+                        && num >= RExC_logical_npar
                             /* cannot be an octal escape if it starts with [89]
                              * */
                         && ! inRANGE(*RExC_parse, '8', '9')
@@ -14540,6 +5989,19 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                         RExC_parse_set(atom_parse_start);
                         goto defchar;
                     }
+                    if (num < RExC_logical_npar) {
+                        num = RExC_logical_to_parno[num];
+                    }
+                    else
+                    if (ALL_PARENS_COUNTED) {
+                        if (num < RExC_logical_total_parens) {
+                            num = RExC_logical_to_parno[num];
+                        } else {
+                            num = -1;
+                        }
+                    } else {
+                        REQUIRE_PARENS_PASS;
+                    }
                 }
 
                 /* At this point RExC_parse points at a numeric escape like
@@ -14556,9 +6018,10 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                 else while (isDIGIT(*RExC_parse)) {
                     RExC_parse_inc_by(1);
                 }
+                if (num < 0)
+                    vFAIL("Reference to nonexistent group");
 
                 if (num >= (I32)RExC_npar) {
-
                     /* It might be a forward reference; we can't fail until we
                      * know, by completing the parse to get all the groups, and
                      * then reparsing */
@@ -14572,7 +6035,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                     }
                 }
                 RExC_sawback = 1;
-                ret = reganode(pRExC_state,
+                ret = reg2node(pRExC_state,
                                ((! FOLD)
                                  ? REF
                                  : (ASCII_FOLD_RESTRICTED)
@@ -14582,7 +6045,9 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                                      : (LOC)
                                        ? REFFL
                                        : REFF),
-                                num);
+                                num, RExC_nestroot);
+                if (RExC_nestroot && num >= RExC_nestroot)
+                    FLAGS(REGNODE_p(ret)) = VOLATILE_REF;
                 if (OP(REGNODE_p(ret)) == REFF) {
                     RExC_seen_d_op = TRUE;
                 }
@@ -14702,7 +6167,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
              * change, it works */
             ret = REGNODE_GUTS(pRExC_state, node_type, current_string_nodes);
             FILL_NODE(ret, node_type);
-            RExC_emit++;
+            RExC_emit += NODE_STEP_REGNODE;
 
             s = STRING(REGNODE_p(ret));
 
@@ -15352,7 +6817,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
              * eventually we'll have to artificially chunk the pattern into
              * multiple nodes. */
             if (! LOC && (node_type == EXACT || node_type == LEXACT)) {
-                Size_t overhead = 1 + regarglen[OP(REGNODE_p(ret))];
+                Size_t overhead = 1 + REGNODE_ARG_LEN(OP(REGNODE_p(ret)));
                 Size_t overhead_expansion = 0;
                 char temp[256];
                 Size_t max_nodes_for_string;
@@ -15371,7 +6836,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
                  * to save the string in the EXACT case before growing, and
                  * then copy it afterwards to its new location */
                 if (node_type == EXACT) {
-                    overhead_expansion = regarglen[LEXACT] - regarglen[EXACT];
+                    overhead_expansion = REGNODE_ARG_LEN(LEXACT) - REGNODE_ARG_LEN(EXACT);
                     RExC_emit += overhead_expansion;
                     Copy(s0, temp, len, char);
                 }
@@ -15978,19 +7443,18 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
 }
 
 
-STATIC void
-S_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** invlist_ptr)
+void
+Perl_populate_anyof_bitmap_from_invlist(pTHX_ regnode *node, SV** invlist_ptr)
 {
     /* Uses the inversion list '*invlist_ptr' to populate the ANYOF 'node'.  It
      * sets up the bitmap and any flags, removing those code points from the
      * inversion list, setting it to NULL should it become completely empty */
 
 
-    PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST;
-    assert(PL_regkind[OP(node)] == ANYOF);
+    PERL_ARGS_ASSERT_POPULATE_ANYOF_BITMAP_FROM_INVLIST;
 
     /* There is no bitmap for this node type */
-    if (inRANGE(OP(node), ANYOFH, ANYOFRb)) {
+    if (REGNODE_TYPE(OP(node))  != ANYOF) {
         return;
     }
 
@@ -16008,10 +7472,6 @@ S_populate_ANYOF_from_invlist(pTHX_ regn
             UV high;
             int i;
 
-            if (end == UV_MAX && start <= NUM_ANYOF_CODE_POINTS) {
-                ANYOF_FLAGS(node) |= ANYOF_MATCHES_ALL_ABOVE_BITMAP;
-            }
-
             /* Quit if are above what we should change */
             if (start >= NUM_ANYOF_CODE_POINTS) {
                 break;
@@ -16030,14 +7490,10 @@ S_populate_ANYOF_from_invlist(pTHX_ regn
         invlist_iterfinish(*invlist_ptr);
 
         /* Done with loop; remove any code points that are in the bitmap from
-         * *invlist_ptr; similarly for code points above the bitmap if we have
-         * a flag to match all of them anyways */
+         * *invlist_ptr */
         if (change_invlist) {
             _invlist_subtract(*invlist_ptr, PL_InBitmap, invlist_ptr);
         }
-        if (ANYOF_FLAGS(node) & ANYOF_MATCHES_ALL_ABOVE_BITMAP) {
-            _invlist_intersection(*invlist_ptr, PL_InBitmap, invlist_ptr);
-        }
 
         /* If have completely emptied it, remove it completely */
         if (_invlist_len(*invlist_ptr) == 0) {
@@ -16070,7 +7526,7 @@ S_populate_ANYOF_from_invlist(pTHX_ regn
         if (posix_warnings) {                                               \
             if (! RExC_warn_text ) RExC_warn_text =                         \
                                          (AV *) sv_2mortal((SV *) newAV()); \
-            av_push(RExC_warn_text, Perl_newSVpvf(aTHX_                     \
+            av_push_simple(RExC_warn_text, Perl_newSVpvf(aTHX_                     \
                                              WARNING_PREFIX                 \
                                              text                           \
                                              REPORT_LOCATION,               \
@@ -16955,7 +8411,7 @@ S_handle_regex_sets(pTHX_ RExC_state_t *
      * with pronouncing it called it Reverse Polish instead, but now that YOU
      * know how to pronounce it you can use the correct term, thus giving due
      * credit to the person who invented it, and impressing your geek friends.
-     * Wikipedia says that the pronounciation of "Ł" has been changing so that
+     * Wikipedia says that the pronunciation of "Ł" has been changing so that
      * it is now more like an English initial W (as in wonk) than an L.)
      *
      * This means that, for example, 'a | b & c' is stored on the stack as
@@ -17087,7 +8543,7 @@ redo_curchar:
                             * which isn't legal */
                         || RExC_emit != orig_emit
                                       + NODE_STEP_REGNODE
-                                      + regarglen[REGEX_SET])
+                                      + REGNODE_ARG_LEN(REGEX_SET))
                     {
                         vFAIL("Expecting interpolated extended charclass");
                     }
@@ -17120,7 +8576,7 @@ redo_curchar:
                 }
 
                 /* Stack the position of this undealt-with left paren */
-                av_push(fence_stack, newSViv(fence));
+                av_push_simple(fence_stack, newSViv(fence));
                 fence = top_index + 1;
                 break;
 
@@ -17262,8 +8718,8 @@ redo_curchar:
                     /* Place the operator before the operand */
 
                     SV* lhs = av_pop(stack);
-                    av_push(stack, newSVuv(curchar));
-                    av_push(stack, lhs);
+                    av_push_simple(stack, newSVuv(curchar));
+                    av_push_simple(stack, lhs);
                     break;
                 }
 
@@ -17304,9 +8760,8 @@ redo_curchar:
                      * */
                     lhs = av_pop(stack);
                     assert(IS_OPERAND(lhs));
-
-                    av_push(stack, newSVuv(curchar));
-                    av_push(stack, lhs);
+                    av_push_simple(stack, newSVuv(curchar));
+                    av_push_simple(stack, lhs);
                     break;
                 }
 
@@ -17367,7 +8822,7 @@ redo_curchar:
                  * stacked operation */
                 only_to_avoid_leaks = av_pop(stack);
                 SvREFCNT_dec(only_to_avoid_leaks);
-                av_push(stack, rhs);
+                av_push_simple(stack, rhs);
                 goto redo_curchar;
 
             case '!':   /* Highest priority, right associative */
@@ -17382,7 +8837,7 @@ redo_curchar:
                 }
                 else { /* Otherwise, since it's right associative, just push
                           onto the stack */
-                    av_push(stack, newSVuv(curchar));
+                    av_push_simple(stack, newSVuv(curchar));
                 }
                 break;
 
@@ -17443,7 +8898,7 @@ redo_curchar:
 
             /* Here there was nothing on the stack or the top element was
              * another operand.  Just add this new one */
-            av_push(stack, current);
+            av_push_simple(stack, current);
 
         } /* End of switch on next parse token */
 
@@ -17571,8 +9026,7 @@ redo_curchar:
             assert(OP(REGNODE_p(node)) == ANYOF);
 
             OP(REGNODE_p(node)) = ANYOFL;
-            ANYOF_FLAGS(REGNODE_p(node))
-                    |= ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD;
+            ANYOF_FLAGS(REGNODE_p(node)) |= ANYOFL_UTF8_LOCALE_REQD;
         }
     }
 
@@ -17626,7 +9080,7 @@ S_dump_regex_sets_structures(pTHX_ RExC_
     else {
         PerlIO_printf(Perl_debug_log, "Fence_stack: \n");
         for (i = fence_stack_top; i >= 0; i--) {
-            SV ** element_ptr = av_fetch(fence_stack, i, FALSE);
+            SV ** element_ptr = av_fetch_simple(fence_stack, i, FALSE);
             if (! element_ptr) {
             }
 
@@ -17641,8 +9095,8 @@ S_dump_regex_sets_structures(pTHX_ RExC_
 #undef IS_OPERATOR
 #undef IS_OPERAND
 
-STATIC void
-S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist)
+void
+Perl_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist)
 {
     /* This adds the Latin1/above-Latin1 folding rules.
      *
@@ -17775,7 +9229,6 @@ S_find_first_differing_byte_pos(const U8
     return s1 - start;
 }
 
-
 STATIC AV *
 S_add_multi_match(pTHX_ AV* multi_char_matches, SV* multi_string, const STRLEN cp_count)
 {
@@ -17810,15 +9263,15 @@ S_add_multi_match(pTHX_ AV* multi_char_m
     }
 
     if (av_exists(multi_char_matches, cp_count)) {
-        this_array_ptr = (AV**) av_fetch(multi_char_matches, cp_count, FALSE);
+        this_array_ptr = (AV**) av_fetch_simple(multi_char_matches, cp_count, FALSE);
         this_array = *this_array_ptr;
     }
     else {
         this_array = newAV();
-        av_store(multi_char_matches, cp_count,
+        av_store_simple(multi_char_matches, cp_count,
                  (SV*) this_array);
     }
-    av_push(this_array, multi_string);
+    av_push_simple(this_array, multi_string);
 
     return multi_char_matches;
 }
@@ -17944,7 +9397,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
 
     /* In a range, if one of the endpoints is non-character-set portable,
      * meaning that it hard-codes a code point that may mean a different
-     * charactger in ASCII vs. EBCDIC, as opposed to, say, a literal 'A' or a
+     * character in ASCII vs. EBCDIC, as opposed to, say, a literal 'A' or a
      * mnemonic '\t' which each mean the same character no matter which
      * character set the platform is on. */
     unsigned int non_portable_endpoint = 0;
@@ -18142,7 +9595,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                         TRUE /* checking only */);
         }
         else if (  strict && ! skip_white
-                 && (   _generic_isCC(value, _CC_VERTSPACE)
+                 && (   generic_isCC_(value, CC_VERTSPACE_)
                      || is_VERTWS_cp_high(value)))
         {
             vFAIL("Literal vertical space in [] is illegal except under /x");
@@ -18387,8 +9840,8 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                                 * points. */
                                 AV * this_string = (AV *) av_shift( strings);
                                 STRLEN cp_count = av_count(this_string);
-                                SV * final = newSV(cp_count * 4);
-                                SvPVCLEAR(final);
+                                SV * final = newSV(cp_count ? cp_count * 4 : 1);
+                                SvPVCLEAR_FRESH(final);
 
                                 /* Create another string of sequences of \x{...} */
                                 while (av_count(this_string) > 0) {
@@ -18438,14 +9891,14 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
 
                         /* We don't know yet what this matches, so have to flag
                          * it */
-                        anyof_flags |= ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP;
+                        anyof_flags |= ANYOF_HAS_EXTRA_RUNTIME_MATCHES;
                     }
                     else {
                         assert (prop_definition && is_invlist(prop_definition));
 
                         /* Here we do have the complete property definition
                          *
-                         * Temporary workaround for [perl #133136].  For this
+                         * Temporary workaround for [GH #16520].  For this
                          * precise input that is in the .t that is failing,
                          * load utf8.pm, which is what the test wants, so that
                          * that .t passes */
@@ -18638,7 +10091,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
 
             if (LOC && namedclass < ANYOF_POSIXL_MAX
 #ifndef HAS_ISASCII
-                && classnum != _CC_ASCII
+                && classnum != CC_ASCII_
 #endif
             ) {
                 SV* scratch_list = NULL;
@@ -18708,13 +10161,13 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                         /* Here, should be \h, \H, \v, or \V.  None of /d, /i
                          * nor /l make a difference in what these match,
                          * therefore we just add what they match to cp_list. */
-                        if (classnum != _CC_VERTSPACE) {
+                        if (classnum != CC_VERTSPACE_) {
                             assert(   namedclass == ANYOF_HORIZWS
                                    || namedclass == ANYOF_NHORIZWS);
 
                             /* It turns out that \h is just a synonym for
                              * XPosixBlank */
-                            classnum = _CC_BLANK;
+                            classnum = CC_BLANK_;
                         }
 
                         _invlist_union_maybe_complement_2nd(
@@ -18727,9 +10180,9 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                     }
                 }
                 else if (   AT_LEAST_UNI_SEMANTICS
-                         || classnum == _CC_ASCII
-                         || (DEPENDS_SEMANTICS && (   classnum == _CC_DIGIT
-                                                   || classnum == _CC_XDIGIT)))
+                         || classnum == CC_ASCII_
+                         || (DEPENDS_SEMANTICS && (   classnum == CC_DIGIT_
+                                                   || classnum == CC_XDIGIT_)))
                 {
                     /* We usually have to worry about /d affecting what POSIX
                      * classes match, with special code needed because we won't
@@ -19007,7 +10460,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                              * are in the same series, which is the same range.
                              * */
                             index_start = _invlist_search(
-                                                    PL_XPosix_ptrs[_CC_DIGIT],
+                                                    PL_XPosix_ptrs[CC_DIGIT_],
                                                     prevvalue);
 
                             /* Warn if the range starts and ends with a digit,
@@ -19015,7 +10468,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                             if (   index_start >= 0
                                 && ELEMENT_RANGE_MATCHES_INVLIST(index_start)
                                 && (index_final =
-                                    _invlist_search(PL_XPosix_ptrs[_CC_DIGIT],
+                                    _invlist_search(PL_XPosix_ptrs[CC_DIGIT_],
                                                     value)) != index_start
                                 && index_final >= 0
                                 && ELEMENT_RANGE_MATCHES_INVLIST(index_final))
@@ -19143,7 +10596,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                 AV** this_array_ptr;
                 SV* this_sequence;
 
-                this_array_ptr = (AV**) av_fetch(multi_char_matches,
+                this_array_ptr = (AV**) av_fetch_simple(multi_char_matches,
                                                  cp_count, FALSE);
                 while ((this_sequence = av_pop(*this_array_ptr)) !=
                                                                 &PL_sv_undef)
@@ -19441,7 +10894,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
                 _invlist_subtract(only_non_utf8_list, cp_list,
                                   &only_non_utf8_list);
                 if (_invlist_len(only_non_utf8_list) != 0) {
-                    anyof_flags |= ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER;
+                    anyof_flags |= ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared;
                 }
                 SvREFCNT_dec_NN(only_non_utf8_list);
             }
@@ -19526,8 +10979,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
         }
 
         if (warn_super) {
-            anyof_flags
-             |= ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER;
+            anyof_flags |= ANYOF_WARN_SUPER__shared;
 
             /* Because an ANYOF node is the only one that warns, this node
              * can't be optimized into something else */
@@ -19563,24 +11015,34 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
             }
         }
         if (    only_utf8_locale_list
-            || (cp_list && (   _invlist_contains_cp(cp_list, LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE)
-                            || _invlist_contains_cp(cp_list, LATIN_SMALL_LETTER_DOTLESS_I))))
+            || (    cp_list
+                && (   _invlist_contains_cp(cp_list,
+                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE)
+                    || _invlist_contains_cp(cp_list,
+                                            LATIN_SMALL_LETTER_DOTLESS_I))))
         {
             has_runtime_dependency |= HAS_L_RUNTIME_DEPENDENCY;
-            anyof_flags
-                 |= ANYOFL_FOLD
-                 |  ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD;
+            anyof_flags |= ANYOFL_FOLD|ANYOF_HAS_EXTRA_RUNTIME_MATCHES;
         }
         else if (cp_list && invlist_lowest(cp_list) < 256) {
             /* If nothing is below 256, has no locale dependency; otherwise it
              * does */
             anyof_flags |= ANYOFL_FOLD;
             has_runtime_dependency |= HAS_L_RUNTIME_DEPENDENCY;
+
+            /* In a Turkish locale these could match, notify the run-time code
+             * to check for that */
+            if (   _invlist_contains_cp(cp_list, 'I')
+                || _invlist_contains_cp(cp_list, 'i'))
+            {
+                anyof_flags |= ANYOFL_FOLD|ANYOF_HAS_EXTRA_RUNTIME_MATCHES;
+            }
         }
     }
     else if (   DEPENDS_SEMANTICS
              && (    upper_latin1_only_utf8_matches
-                 || (anyof_flags & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER)))
+                 || (  anyof_flags
+                     & ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared)))
     {
         RExC_seen_d_op = TRUE;
         has_runtime_dependency |= HAS_D_RUNTIME_DEPENDENCY;
@@ -19655,9 +11117,9 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
         }
     }
 
-    ret = REGNODE_GUTS(pRExC_state, op, regarglen[op]);
+    ret = REGNODE_GUTS(pRExC_state, op, REGNODE_ARG_LEN(op));
     FILL_NODE(ret, op);        /* We set the argument later */
-    RExC_emit += 1 + regarglen[op];
+    RExC_emit += NODE_STEP_REGNODE + REGNODE_ARG_LEN(op);
     ANYOF_FLAGS(REGNODE_p(ret)) = anyof_flags;
 
     /* Here, <cp_list> contains all the code points we can determine at
@@ -19666,7 +11128,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
      * <cp_list>.  While we are at it, see if everything above 255 is in the
      * list, and if so, set a flag to speed up execution */
 
-    populate_ANYOF_from_invlist(REGNODE_p(ret), &cp_list);
+    populate_anyof_bitmap_from_invlist(REGNODE_p(ret), &cp_list);
 
     if (posixl) {
         ANYOF_POSIXL_SET_TO_BITMAP(REGNODE_p(ret), posixl);
@@ -19690,7 +11152,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
         else {
             cp_list = upper_latin1_only_utf8_matches;
         }
-        ANYOF_FLAGS(REGNODE_p(ret)) |= ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP;
+        ANYOF_FLAGS(REGNODE_p(ret)) |= ANYOF_HAS_EXTRA_RUNTIME_MATCHES;
     }
 
     set_ANYOF_arg(pRExC_state, REGNODE_p(ret), cp_list,
@@ -19787,10 +11249,7 @@ S_optimize_regclass(pTHX_
                 if (*invert) {
                     goto return_OPFAIL;
                 }
-                else {
-                    goto return_SANY;
-                }
-                return op;
+                goto return_SANY;
             }
         }
 
@@ -20009,7 +11468,7 @@ S_optimize_regclass(pTHX_
                     }
                     else {
 
-                        /* Here, the only possible fold lowest_cp particpates in
+                        /* Here, the only possible fold lowest_cp participates in
                          * is with start[1].  /i or not isn't relevant */
                         op = EXACTFU;
                     }
@@ -20194,7 +11653,7 @@ S_optimize_regclass(pTHX_
 
             *ret = REGNODE_GUTS(pRExC_state, op, len);
             FILL_NODE(*ret, op);
-            RExC_emit += 1 + STR_SZ(len);
+            RExC_emit += NODE_STEP_REGNODE + STR_SZ(len);
             setSTR_LEN(REGNODE_p(*ret), len);
             if (len == 1) {
                 *STRINGs(REGNODE_p(*ret)) = (U8) value;
@@ -20202,6 +11661,7 @@ S_optimize_regclass(pTHX_
             else {
                 uvchr_to_utf8((U8 *) STRINGs(REGNODE_p(*ret)), value);
             }
+
             return op;
         }
     }
@@ -20306,7 +11766,7 @@ S_optimize_regclass(pTHX_
                 ANYOFM_mask = ~ bits_differing; /* This goes into FLAGS */
 
                 /* The argument is the lowest code point */
-                *ret = reganode(pRExC_state, op, lowest_cp);
+                *ret = reg1node(pRExC_state, op, lowest_cp);
                 FLAGS(REGNODE_p(*ret)) = ANYOFM_mask;
             }
 
@@ -20348,7 +11808,7 @@ S_optimize_regclass(pTHX_
             }
 
             for (posix_class = 0;
-                 posix_class <= _HIGHEST_REGCOMP_DOT_H_SYNC;
+                 posix_class <= HIGHEST_REGCOMP_DOT_H_SYNC_;
                  posix_class++)
             {
                 SV** our_code_points = &cp_list;
@@ -20409,10 +11869,12 @@ S_optimize_regclass(pTHX_
                     }
                     else {  /* POSIXD, inverted.  If this doesn't have this
                                flag set, it isn't /d. */
-                        if (! (*anyof_flags & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER))
+                        if (! ( *anyof_flags
+                               & ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared))
                         {
                             continue;
                         }
+
                         our_code_points = &cp_list;
                     }
 
@@ -20427,7 +11889,19 @@ S_optimize_regclass(pTHX_
                     {
                         /* Here, they precisely match.  Optimize this ANYOF
                          * node into its equivalent POSIX one of the correct
-                         * type, possibly inverted */
+                         * type, possibly inverted.
+                         *
+                         * Some of these nodes match a single range of
+                         * characters (or [:alpha:] matches two parallel ranges
+                         * on ASCII platforms).  The array lookup at execution
+                         * time could be replaced by a range check for such
+                         * nodes.  But regnodes are a finite resource, and the
+                         * possible performance boost isn't large, so this
+                         * hasn't been done.  An attempt to use just one node
+                         * (and its inverse) to encompass all such cases was
+                         * made in d62feba66bf43f35d092bb026694f927e9f94d38.
+                         * But the shifting/masking it used ended up being
+                         * slower than the array look up, so it was reverted */
                         op = (try_inverted)
                             ? type + NPOSIXA - POSIXA
                             : type;
@@ -20455,7 +11929,7 @@ S_optimize_regclass(pTHX_
         &&   *anyof_flags == 0
         &&   start[0] < (1 << ANYOFR_BASE_BITS)
         &&   end[0] - start[0]
-                < ((1U << (sizeof(((struct regnode_1 *)NULL)->arg1)
+                < ((1U << (sizeof(ARG1u_LOC(NULL))
                                * CHARBITS - ANYOFR_BASE_BITS))))
 
     {
@@ -20463,7 +11937,7 @@ S_optimize_regclass(pTHX_
         U8 high_utf8[UTF8_MAXBYTES+1];
 
         op = ANYOFR;
-        *ret = reganode(pRExC_state, op,
+        *ret = reg1node(pRExC_state, op,
                         (start[0] | (end[0] - start[0]) << ANYOFR_BASE_BITS));
 
         /* Place the lowest UTF-8 start byte in the flags field, so as to allow
@@ -20489,7 +11963,7 @@ S_optimize_regclass(pTHX_
     }
 
     /* If didn't find an optimization and there is no need for a bitmap,
-     * optimize to indicate that */
+     * of the lowest code points, optimize to indicate that */
     if (     lowest_cp >= NUM_ANYOF_CODE_POINTS
         && ! LOC
         && ! upper_latin1_only_utf8_matches
@@ -20529,25 +12003,58 @@ S_optimize_regclass(pTHX_
                 Size_t len = find_first_differing_byte_pos(low_utf8,
                                                            high_utf8,
                                                    MIN(low_len, high_len));
-
                 if (len == 1) {
 
                     /* No need to convert to I8 for EBCDIC as this is an exact
                      * match */
                     *anyof_flags = low_utf8[0];
-                    op = ANYOFHb;
+
+                    if (high_len == 2) {
+                        /* If the elements matched all have a 2-byte UTF-8
+                         * representation, with the first byte being the same,
+                         * we can use a compact, fast regnode. capable of
+                         * matching any combination of continuation byte
+                         * patterns.
+                         *
+                         * (A similar regnode could be created for the Latin1
+                         * range; the complication being that it could match
+                         * non-UTF8 targets.  The internal bitmap would serve
+                         * both cases; with some extra code in regexec.c) */
+                        op = ANYOFHbbm;
+                        *ret = REGNODE_GUTS(pRExC_state, op, REGNODE_ARG_LEN(op));
+                        FILL_NODE(*ret, op);
+                        FIRST_BYTE((struct regnode_bbm *) REGNODE_p(*ret)) = low_utf8[0],
+
+                        /* The 64 bit (or 32 on EBCCDIC) map can be looked up
+                         * directly based on the continuation byte, without
+                         * needing to convert to code point */
+                        populate_bitmap_from_invlist(
+                            cp_list,
+
+                            /* The base code point is from the start byte */
+                            TWO_BYTE_UTF8_TO_NATIVE(low_utf8[0],
+                                                    UTF_CONTINUATION_MARK | 0),
+
+                            ((struct regnode_bbm *) REGNODE_p(*ret))->bitmap,
+                            REGNODE_BBM_BITMAP_LEN);
+                        RExC_emit += NODE_STEP_REGNODE + REGNODE_ARG_LEN(op);
+                        return op;
+                    }
+                    else {
+                        op = ANYOFHb;
+                    }
                 }
                 else {
                     op = ANYOFHs;
                     *ret = REGNODE_GUTS(pRExC_state, op,
-                                       regarglen[op] + STR_SZ(len));
+                                       REGNODE_ARG_LEN(op) + STR_SZ(len));
                     FILL_NODE(*ret, op);
-                    ((struct regnode_anyofhs *) REGNODE_p(*ret))->str_len
+                    STR_LEN_U8((struct regnode_anyofhs *) REGNODE_p(*ret))
                                                                     = len;
                     Copy(low_utf8,  /* Add the common bytes */
                     ((struct regnode_anyofhs *) REGNODE_p(*ret))->string,
                        len, U8);
-                    RExC_emit += NODE_SZ_STR(REGNODE_p(*ret));
+                    RExC_emit = REGNODE_OFFSET(REGNODE_AFTER_varies(REGNODE_p(*ret)));
                     set_ANYOF_arg(pRExC_state, REGNODE_p(*ret), cp_list,
                                               NULL, only_utf8_locale_list);
                     return op;
@@ -20586,7 +12093,7 @@ S_optimize_regclass(pTHX_
 
   return_OPFAIL:
     op = OPFAIL;
-    *ret = reganode(pRExC_state, op, 0);
+    *ret = reg1node(pRExC_state, op, 0);
     return op;
 
   return_SANY:
@@ -20598,19 +12105,21 @@ S_optimize_regclass(pTHX_
 
 #undef HAS_NONLOCALE_RUNTIME_PROPERTY_DEFINITION
 
-STATIC void
-S_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state,
+void
+Perl_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state,
                 regnode* const node,
                 SV* const cp_list,
                 SV* const runtime_defns,
                 SV* const only_utf8_locale_list)
 {
     /* Sets the arg field of an ANYOF-type node 'node', using information about
-     * the node passed-in.  If there is nothing outside the node's bitmap, the
-     * arg is set to ANYOF_ONLY_HAS_BITMAP.  Otherwise, it sets the argument to
-     * the count returned by add_data(), having allocated and stored an array,
-     * av, as follows:
+     * the node passed-in.  If only the bitmap is needed to determine what
+     * matches, the arg is set appropriately to either
+     *      1) ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE
+     *      2) ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE
      *
+     * Otherwise, it sets the argument to the count returned by reg_add_data(),
+     * having allocated and stored an array, av, as follows:
      *  av[0] stores the inversion list defining this class as far as known at
      *        this time, or PL_sv_undef if nothing definite is now known.
      *  av[1] stores the inversion list of code points that match only if the
@@ -20623,52 +12132,152 @@ S_set_ANYOF_arg(pTHX_ RExC_state_t* cons
 
     PERL_ARGS_ASSERT_SET_ANYOF_ARG;
 
-    if (! cp_list && ! runtime_defns && ! only_utf8_locale_list) {
-        assert(! (ANYOF_FLAGS(node)
-                & ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP));
-        ARG_SET(node, ANYOF_ONLY_HAS_BITMAP);
-    }
-    else {
-        AV * const av = newAV();
-        SV *rv;
+    /* If this is set, the final disposition won't be known until runtime, so
+     * we can't do any of the compile time optimizations */
+    if (! runtime_defns) {
+
+        /* On plain ANYOF nodes without the possibility of a runtime locale
+         * making a difference, maybe there's no information to be gleaned
+         * except for what's in the bitmap */
+        if (REGNODE_TYPE(OP(node)) == ANYOF && ! only_utf8_locale_list) {
 
-        if (cp_list) {
-            av_store(av, INVLIST_INDEX, SvREFCNT_inc_NN(cp_list));
-        }
+            /* There are two such cases:
+             *  1)  there is no list of code points matched outside the bitmap
+             */
+            if (! cp_list) {
+                ARG1u_SET(node, ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE);
+                return;
+            }
 
-        /* (Note that if any of this changes, the size calculations in
-         * S_optimize_regclass() might need to be updated.) */
+            /*  2)  the list indicates everything outside the bitmap matches */
+            if (   invlist_highest(cp_list) == UV_MAX
+                && invlist_highest_range_start(cp_list)
+                                                       <= NUM_ANYOF_CODE_POINTS)
+            {
+                ARG1u_SET(node, ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE);
+                return;
+            }
 
-        if (only_utf8_locale_list) {
-            av_store(av, ONLY_LOCALE_MATCHES_INDEX,
-                                     SvREFCNT_inc_NN(only_utf8_locale_list));
+            /* In all other cases there are things outside the bitmap that we
+             * may need to check at runtime. */
         }
 
-        if (runtime_defns) {
-            av_store(av, DEFERRED_USER_DEFINED_INDEX,
-                         SvREFCNT_inc_NN(runtime_defns));
-        }
+        /* Here, we have resolved all the possible run-time matches, and they
+         * are stored in one or both of two possible lists.  (While some match
+         * only under certain runtime circumstances, we know all the possible
+         * ones for each such circumstance.)
+         *
+         * It may very well be that the pattern being compiled contains an
+         * identical class, already encountered.  Reusing that class here saves
+         * space.  Look through all classes so far encountered. */
+        U32 existing_items = RExC_rxi->data ? RExC_rxi->data->count : 0;
+        for (unsigned int i = 0; i < existing_items; i++) {
+
+            /* Only look at auxiliary data of this type */
+            if (RExC_rxi->data->what[i] != 's') {
+                continue;
+            }
+
+            SV * const rv = MUTABLE_SV(RExC_rxi->data->data[i]);
+            AV * const av = MUTABLE_AV(SvRV(rv));
+
+            /* If the already encountered class has data that won't be known
+             * until runtime (stored in the final element of the array), we
+             * can't share */
+            if (av_top_index(av) > ONLY_LOCALE_MATCHES_INDEX) {
+                continue;
+            }
+
+            SV ** stored_cp_list_ptr = av_fetch(av, INVLIST_INDEX,
+                                                false /* no lvalue */);
 
-        rv = newRV_noinc(MUTABLE_SV(av));
-        n = add_data(pRExC_state, STR_WITH_LEN("s"));
-        RExC_rxi->data->data[n] = (void*)rv;
-        ARG_SET(node, n);
+            /* The new and the existing one both have to have or both not
+             * have this element, for this one to duplicate that one */
+            if (cBOOL(cp_list) != cBOOL(stored_cp_list_ptr)) {
+                continue;
+            }
+
+            /* If the inversion lists aren't equivalent, can't share */
+            if (cp_list && ! _invlistEQ(cp_list,
+                                        *stored_cp_list_ptr,
+                                        FALSE /* don't complement */))
+            {
+                continue;
+            }
+
+            /* Similarly for the other list */
+            SV ** stored_only_utf8_locale_list_ptr = av_fetch(
+                                                av,
+                                                ONLY_LOCALE_MATCHES_INDEX,
+                                                false /* no lvalue */);
+            if (   cBOOL(only_utf8_locale_list)
+                != cBOOL(stored_only_utf8_locale_list_ptr))
+            {
+                continue;
+            }
+
+            if (only_utf8_locale_list && ! _invlistEQ(
+                                         only_utf8_locale_list,
+                                         *stored_only_utf8_locale_list_ptr,
+                                         FALSE /* don't complement */))
+            {
+                continue;
+            }
+
+            /* Here, the existence and contents of both compile-time lists
+             * are identical between the new and existing data.  Re-use the
+             * existing one */
+            ARG1u_SET(node, i);
+            return;
+        } /* end of loop through existing classes */
     }
+
+    /* Here, we need to create a new auxiliary data element; either because
+     * this doesn't duplicate an existing one, or we can't tell at this time if
+     * it eventually will */
+
+    AV * const av = newAV();
+    SV *rv;
+
+    if (cp_list) {
+        av_store_simple(av, INVLIST_INDEX, SvREFCNT_inc_NN(cp_list));
+    }
+
+    /* (Note that if any of this changes, the size calculations in
+     * S_optimize_regclass() might need to be updated.) */
+
+    if (only_utf8_locale_list) {
+        av_store_simple(av, ONLY_LOCALE_MATCHES_INDEX,
+                                       SvREFCNT_inc_NN(only_utf8_locale_list));
+    }
+
+    if (runtime_defns) {
+        av_store_simple(av, DEFERRED_USER_DEFINED_INDEX,
+                     SvREFCNT_inc_NN(runtime_defns));
+    }
+
+    rv = newRV_noinc(MUTABLE_SV(av));
+    n = reg_add_data(pRExC_state, STR_WITH_LEN("s"));
+    RExC_rxi->data->data[n] = (void*)rv;
+    ARG1u_SET(node, n);
 }
 
 SV *
 
 #if !defined(PERL_IN_XSUB_RE) || defined(PLUGGABLE_RE_EXTENSION)
-Perl_get_regclass_nonbitmap_data(pTHX_ const regexp *prog, const regnode* node, bool doinit, SV** listsvp, SV** only_utf8_locale_ptr, SV** output_invlist)
+Perl_get_regclass_aux_data(pTHX_ const regexp *prog, const regnode* node, bool doinit, SV** listsvp, SV** only_utf8_locale_ptr, SV** output_invlist)
 #else
-Perl_get_re_gclass_nonbitmap_data(pTHX_ const regexp *prog, const regnode* node, bool doinit, SV** listsvp, SV** only_utf8_locale_ptr, SV** output_invlist)
+Perl_get_re_gclass_aux_data(pTHX_ const regexp *prog, const regnode* node, bool doinit, SV** listsvp, SV** only_utf8_locale_ptr, SV** output_invlist)
 #endif
 
 {
     /* For internal core use only.
      * Returns the inversion list for the input 'node' in the regex 'prog'.
      * If <doinit> is 'true', will attempt to create the inversion list if not
-     *    already done.
+     *    already done.  If it is created, it will add to the normal inversion
+     *    list any that comes from user-defined properties.  It croaks if this
+     *    is called before such a list is ready to be generated, that is when a
+     *    user-defined property has been declared, buyt still not yet defined.
      * If <listsvp> is non-null, will return the printable contents of the
      *    property definition.  This can be used to get debugging information
      *    even before the inversion list exists, by calling this function with
@@ -20695,18 +12304,18 @@ Perl_get_re_gclass_nonbitmap_data(pTHX_ 
     SV *si  = NULL;         /* Input initialization string */
     SV* invlist = NULL;
 
-    RXi_GET_DECL(prog, progi);
+    RXi_GET_DECL_NULL(prog, progi);
     const struct reg_data * const data = prog ? progi->data : NULL;
 
 #if !defined(PERL_IN_XSUB_RE) || defined(PLUGGABLE_RE_EXTENSION)
-    PERL_ARGS_ASSERT_GET_REGCLASS_NONBITMAP_DATA;
+    PERL_ARGS_ASSERT_GET_REGCLASS_AUX_DATA;
 #else
-    PERL_ARGS_ASSERT_GET_RE_GCLASS_NONBITMAP_DATA;
+    PERL_ARGS_ASSERT_GET_RE_GCLASS_AUX_DATA;
 #endif
     assert(! output_invlist || listsvp);
 
     if (data && data->count) {
-        const U32 n = ARG(node);
+        const U32 n = ARG1u(node);
 
         if (data->what[n] == 's') {
             SV * const rv = MUTABLE_SV(data->data[n]);
@@ -21072,7 +12681,7 @@ S_regnode_guts(pTHX_ RExC_state_t *pRExC
 STATIC regnode_offset
 S_regnode_guts_debug(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_size) {
     PERL_ARGS_ASSERT_REGNODE_GUTS_DEBUG;
-    assert(extra_size >= regarglen[op] || PL_regkind[op] == ANYOF);
+    assert(extra_size >= REGNODE_ARG_LEN(op) || REGNODE_TYPE(op) == ANYOF);
     return S_regnode_guts(aTHX_ pRExC_state, extra_size);
 }
 
@@ -21086,12 +12695,12 @@ S_regnode_guts_debug(pTHX_ RExC_state_t 
 STATIC regnode_offset /* Location. */
 S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op)
 {
-    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, regarglen[op]);
+    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, REGNODE_ARG_LEN(op));
     regnode_offset ptr = ret;
 
     PERL_ARGS_ASSERT_REG_NODE;
 
-    assert(regarglen[op] == 0);
+    assert(REGNODE_ARG_LEN(op) == 0);
 
     FILL_ADVANCE_NODE(ptr, op);
     RExC_emit = ptr;
@@ -21099,20 +12708,20 @@ S_reg_node(pTHX_ RExC_state_t *pRExC_sta
 }
 
 /*
-- reganode - emit a node with an argument
+- reg1node - emit a node with an argument
 */
 STATIC regnode_offset /* Location. */
-S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg)
+S_reg1node(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg)
 {
-    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, regarglen[op]);
+    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, REGNODE_ARG_LEN(op));
     regnode_offset ptr = ret;
 
-    PERL_ARGS_ASSERT_REGANODE;
+    PERL_ARGS_ASSERT_REG1NODE;
 
     /* ANYOF are special cased to allow non-length 1 args */
-    assert(regarglen[op] == 1);
+    assert(REGNODE_ARG_LEN(op) == 1);
 
-    FILL_ADVANCE_NODE_ARG(ptr, op, arg);
+    FILL_ADVANCE_NODE_ARG1u(ptr, op, arg);
     RExC_emit = ptr;
     return(ret);
 }
@@ -21123,7 +12732,7 @@ S_reganode(pTHX_ RExC_state_t *pRExC_sta
 STATIC regnode_offset /* Location. */
 S_regpnode(pTHX_ RExC_state_t *pRExC_state, U8 op, SV * arg)
 {
-    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, regarglen[op]);
+    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, REGNODE_ARG_LEN(op));
     regnode_offset ptr = ret;
 
     PERL_ARGS_ASSERT_REGPNODE;
@@ -21134,18 +12743,18 @@ S_regpnode(pTHX_ RExC_state_t *pRExC_sta
 }
 
 STATIC regnode_offset
-S_reg2Lanode(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2)
+S_reg2node(pTHX_ RExC_state_t *pRExC_state, const U8 op, const U32 arg1, const I32 arg2)
 {
     /* emit a node with U32 and I32 arguments */
 
-    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, regarglen[op]);
+    const regnode_offset ret = REGNODE_GUTS(pRExC_state, op, REGNODE_ARG_LEN(op));
     regnode_offset ptr = ret;
 
-    PERL_ARGS_ASSERT_REG2LANODE;
+    PERL_ARGS_ASSERT_REG2NODE;
 
-    assert(regarglen[op] == 2);
+    assert(REGNODE_ARG_LEN(op) == 2);
 
-    FILL_ADVANCE_NODE_2L_ARG(ptr, op, arg1, arg2);
+    FILL_ADVANCE_NODE_2ui_ARG(ptr, op, arg1, arg2);
     RExC_emit = ptr;
     return(ret);
 }
@@ -21160,7 +12769,7 @@ S_reg2Lanode(pTHX_ RExC_state_t *pRExC_s
 * set up NEXT_OFF() of the inserted node if needed. Something like this:
 *
 *   reginsert(pRExC, OPFAIL, orig_emit, depth+1);
-*   NEXT_OFF(orig_emit) = regarglen[OPFAIL] + NODE_STEP_REGNODE;
+*   NEXT_OFF(REGNODE_p(orig_emit)) = REGNODE_ARG_LEN(OPFAIL) + NODE_STEP_REGNODE;
 *
 * ALSO NOTE - FLAGS(newly-inserted-operator) will be set to 0 as well.
 */
@@ -21171,15 +12780,14 @@ S_reginsert(pTHX_ RExC_state_t *pRExC_st
     regnode *src;
     regnode *dst;
     regnode *place;
-    const int offset = regarglen[(U8)op];
+    const int offset = REGNODE_ARG_LEN((U8)op);
     const int size = NODE_STEP_REGNODE + offset;
     DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
     PERL_ARGS_ASSERT_REGINSERT;
     PERL_UNUSED_CONTEXT;
     PERL_UNUSED_ARG(depth);
-/* (PL_regkind[(U8)op] == CURLY ? EXTRA_STEP_2ARGS : 0); */
-    DEBUG_PARSE_FMT("inst"," - %s", PL_reg_name[op]);
+    DEBUG_PARSE_FMT("inst"," - %s", REGNODE_NAME(op));
     assert(!RExC_study_started); /* I believe we should never use reginsert once we have started
                                     studying. If this is wrong then we need to adjust RExC_recurse
                                     below like we do with RExC_open_parens/RExC_close_parens. */
@@ -21223,7 +12831,7 @@ S_reginsert(pTHX_ RExC_state_t *pRExC_st
     }
 
     place = REGNODE_p(operand);	/* Op node, where operand used to be. */
-    src = NEXTOPER(place);
+    src = place + 1; /* NOT REGNODE_AFTER! */
     FLAGS(place) = 0;
     FILL_NODE(operand, op);
 
@@ -21263,7 +12871,7 @@ S_regtail(pTHX_ RExC_state_t * pRExC_sta
             Perl_re_printf( aTHX_  "~ %s (%zu) %s %s\n",
                 SvPV_nolen_const(RExC_mysv), scan,
                     (temp == NULL ? "->" : ""),
-                    (temp == NULL ? PL_reg_name[OP(REGNODE_p(val))] : "")
+                    (temp == NULL ? REGNODE_NAME(OP(REGNODE_p(val))) : "")
             );
         });
         if (temp == NULL)
@@ -21273,9 +12881,9 @@ S_regtail(pTHX_ RExC_state_t * pRExC_sta
 
     /* Populate this node's next pointer */
     assert(val >= scan);
-    if (reg_off_by_arg[OP(REGNODE_p(scan))]) {
+    if (REGNODE_OFF_BY_ARG(OP(REGNODE_p(scan)))) {
         assert((UV) (val - scan) <= U32_MAX);
-        ARG_SET(REGNODE_p(scan), val - scan);
+        ARG1u_SET(REGNODE_p(scan), val - scan);
     }
     else {
         if (val - scan > U16_MAX) {
@@ -21332,7 +12940,7 @@ S_regtail_study(pTHX_ RExC_state_t *pREx
     for (;;) {
         regnode * const temp = regnext(REGNODE_p(scan));
 #ifdef EXPERIMENTAL_INPLACESCAN
-        if (PL_regkind[OP(REGNODE_p(scan))] == EXACT) {
+        if (REGNODE_TYPE(OP(REGNODE_p(scan))) == EXACT) {
             bool unfolded_multi_char;	/* Unexamined in this routine */
             if (join_exact(pRExC_state, scan, &min,
                            &unfolded_multi_char, 1, REGNODE_p(val), depth+1))
@@ -21340,7 +12948,7 @@ S_regtail_study(pTHX_ RExC_state_t *pREx
         }
 #endif
         if ( exact ) {
-            if (PL_regkind[OP(REGNODE_p(scan))] == EXACT) {
+            if (REGNODE_TYPE(OP(REGNODE_p(scan))) == EXACT) {
                 if (exact == PSEUDO )
                     exact= OP(REGNODE_p(scan));
                 else if (exact != OP(REGNODE_p(scan)) )
@@ -21356,7 +12964,7 @@ S_regtail_study(pTHX_ RExC_state_t *pREx
             Perl_re_printf( aTHX_  "~ %s (%zu) -> %s\n",
                 SvPV_nolen_const(RExC_mysv),
                 scan,
-                PL_reg_name[exact]);
+                REGNODE_NAME(exact));
         });
         if (temp == NULL)
             break;
@@ -21372,9 +12980,9 @@ S_regtail_study(pTHX_ RExC_state_t *pREx
                       (IV)(val - scan)
         );
     });
-    if (reg_off_by_arg[OP(REGNODE_p(scan))]) {
+    if (REGNODE_OFF_BY_ARG(OP(REGNODE_p(scan)))) {
         assert((UV) (val - scan) <= U32_MAX);
-        ARG_SET(REGNODE_p(scan), val - scan);
+        ARG1u_SET(REGNODE_p(scan), val - scan);
     }
     else {
         if (val - scan > U16_MAX) {
@@ -21391,710 +12999,53 @@ S_regtail_study(pTHX_ RExC_state_t *pREx
 }
 #endif
 
-STATIC SV*
-S_get_ANYOFM_contents(pTHX_ const regnode * n) {
+SV*
+Perl_get_ANYOFM_contents(pTHX_ const regnode * n) {
 
     /* Returns an inversion list of all the code points matched by the
      * ANYOFM/NANYOFM node 'n' */
 
     SV * cp_list = _new_invlist(-1);
-    const U8 lowest = (U8) ARG(n);
+    const U8 lowest = (U8) ARG1u(n);
     unsigned int i;
     U8 count = 0;
-    U8 needed = 1U << PL_bitcount[ (U8) ~ FLAGS(n)];
-
-    PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS;
-
-    /* Starting with the lowest code point, any code point that ANDed with the
-     * mask yields the lowest code point is in the set */
-    for (i = lowest; i <= 0xFF; i++) {
-        if ((i & FLAGS(n)) == ARG(n)) {
-            cp_list = add_cp_to_invlist(cp_list, i);
-            count++;
-
-            /* We know how many code points (a power of two) that are in the
-             * set.  No use looking once we've got that number */
-            if (count >= needed) break;
-        }
-    }
-
-    if (OP(n) == NANYOFM) {
-        _invlist_invert(cp_list);
-    }
-    return cp_list;
-}
-
-/*
- - regdump - dump a regexp onto Perl_debug_log in vaguely comprehensible form
- */
-#ifdef DEBUGGING
-
-static void
-S_regdump_intflags(pTHX_ const char *lead, const U32 flags)
-{
-    int bit;
-    int set=0;
-
-    ASSUME(REG_INTFLAGS_NAME_SIZE <= sizeof(flags)*8);
-
-    for (bit=0; bit<REG_INTFLAGS_NAME_SIZE; bit++) {
-        if (flags & (1<<bit)) {
-            if (!set++ && lead)
-                Perl_re_printf( aTHX_  "%s", lead);
-            Perl_re_printf( aTHX_  "%s ", PL_reg_intflags_name[bit]);
-        }
-    }
-    if (lead)  {
-        if (set)
-            Perl_re_printf( aTHX_  "\n");
-        else
-            Perl_re_printf( aTHX_  "%s[none-set]\n", lead);
-    }
-}
-
-static void
-S_regdump_extflags(pTHX_ const char *lead, const U32 flags)
-{
-    int bit;
-    int set=0;
-    regex_charset cs;
-
-    ASSUME(REG_EXTFLAGS_NAME_SIZE <= sizeof(flags)*8);
-
-    for (bit=0; bit<REG_EXTFLAGS_NAME_SIZE; bit++) {
-        if (flags & (1U<<bit)) {
-            if ((1U<<bit) & RXf_PMf_CHARSET) {	/* Output separately, below */
-                continue;
-            }
-            if (!set++ && lead)
-                Perl_re_printf( aTHX_  "%s", lead);
-            Perl_re_printf( aTHX_  "%s ", PL_reg_extflags_name[bit]);
-        }
-    }
-    if ((cs = get_regex_charset(flags)) != REGEX_DEPENDS_CHARSET) {
-            if (!set++ && lead) {
-                Perl_re_printf( aTHX_  "%s", lead);
-            }
-            switch (cs) {
-                case REGEX_UNICODE_CHARSET:
-                    Perl_re_printf( aTHX_  "UNICODE");
-                    break;
-                case REGEX_LOCALE_CHARSET:
-                    Perl_re_printf( aTHX_  "LOCALE");
-                    break;
-                case REGEX_ASCII_RESTRICTED_CHARSET:
-                    Perl_re_printf( aTHX_  "ASCII-RESTRICTED");
-                    break;
-                case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
-                    Perl_re_printf( aTHX_  "ASCII-MORE_RESTRICTED");
-                    break;
-                default:
-                    Perl_re_printf( aTHX_  "UNKNOWN CHARACTER SET");
-                    break;
-            }
-    }
-    if (lead)  {
-        if (set)
-            Perl_re_printf( aTHX_  "\n");
-        else
-            Perl_re_printf( aTHX_  "%s[none-set]\n", lead);
-    }
-}
-#endif
-
-void
-Perl_regdump(pTHX_ const regexp *r)
-{
-#ifdef DEBUGGING
-    int i;
-    SV * const sv = sv_newmortal();
-    SV *dsv= sv_newmortal();
-    RXi_GET_DECL(r, ri);
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_REGDUMP;
-
-    (void)dumpuntil(r, ri->program, ri->program + 1, NULL, NULL, sv, 0, 0);
-
-    /* Header fields of interest. */
-    for (i = 0; i < 2; i++) {
-        if (r->substrs->data[i].substr) {
-            RE_PV_QUOTED_DECL(s, 0, dsv,
-                            SvPVX_const(r->substrs->data[i].substr),
-                            RE_SV_DUMPLEN(r->substrs->data[i].substr),
-                            PL_dump_re_max_len);
-            Perl_re_printf( aTHX_
-                          "%s %s%s at %" IVdf "..%" UVuf " ",
-                          i ? "floating" : "anchored",
-                          s,
-                          RE_SV_TAIL(r->substrs->data[i].substr),
-                          (IV)r->substrs->data[i].min_offset,
-                          (UV)r->substrs->data[i].max_offset);
-        }
-        else if (r->substrs->data[i].utf8_substr) {
-            RE_PV_QUOTED_DECL(s, 1, dsv,
-                            SvPVX_const(r->substrs->data[i].utf8_substr),
-                            RE_SV_DUMPLEN(r->substrs->data[i].utf8_substr),
-                            30);
-            Perl_re_printf( aTHX_
-                          "%s utf8 %s%s at %" IVdf "..%" UVuf " ",
-                          i ? "floating" : "anchored",
-                          s,
-                          RE_SV_TAIL(r->substrs->data[i].utf8_substr),
-                          (IV)r->substrs->data[i].min_offset,
-                          (UV)r->substrs->data[i].max_offset);
-        }
-    }
-
-    if (r->check_substr || r->check_utf8)
-        Perl_re_printf( aTHX_
-                      (const char *)
-                      (   r->check_substr == r->substrs->data[1].substr
-                       && r->check_utf8   == r->substrs->data[1].utf8_substr
-                       ? "(checking floating" : "(checking anchored"));
-    if (r->intflags & PREGf_NOSCAN)
-        Perl_re_printf( aTHX_  " noscan");
-    if (r->extflags & RXf_CHECK_ALL)
-        Perl_re_printf( aTHX_  " isall");
-    if (r->check_substr || r->check_utf8)
-        Perl_re_printf( aTHX_  ") ");
-
-    if (ri->regstclass) {
-        regprop(r, sv, ri->regstclass, NULL, NULL);
-        Perl_re_printf( aTHX_  "stclass %s ", SvPVX_const(sv));
-    }
-    if (r->intflags & PREGf_ANCH) {
-        Perl_re_printf( aTHX_  "anchored");
-        if (r->intflags & PREGf_ANCH_MBOL)
-            Perl_re_printf( aTHX_  "(MBOL)");
-        if (r->intflags & PREGf_ANCH_SBOL)
-            Perl_re_printf( aTHX_  "(SBOL)");
-        if (r->intflags & PREGf_ANCH_GPOS)
-            Perl_re_printf( aTHX_  "(GPOS)");
-        Perl_re_printf( aTHX_ " ");
-    }
-    if (r->intflags & PREGf_GPOS_SEEN)
-        Perl_re_printf( aTHX_  "GPOS:%" UVuf " ", (UV)r->gofs);
-    if (r->intflags & PREGf_SKIP)
-        Perl_re_printf( aTHX_  "plus ");
-    if (r->intflags & PREGf_IMPLICIT)
-        Perl_re_printf( aTHX_  "implicit ");
-    Perl_re_printf( aTHX_  "minlen %" IVdf " ", (IV)r->minlen);
-    if (r->extflags & RXf_EVAL_SEEN)
-        Perl_re_printf( aTHX_  "with eval ");
-    Perl_re_printf( aTHX_  "\n");
-    DEBUG_FLAGS_r({
-        regdump_extflags("r->extflags: ", r->extflags);
-        regdump_intflags("r->intflags: ", r->intflags);
-    });
-#else
-    PERL_ARGS_ASSERT_REGDUMP;
-    PERL_UNUSED_CONTEXT;
-    PERL_UNUSED_ARG(r);
-#endif	/* DEBUGGING */
-}
-
-/* Should be synchronized with ANYOF_ #defines in regcomp.h */
-#ifdef DEBUGGING
-
-#  if   _CC_WORDCHAR != 0 || _CC_DIGIT != 1        || _CC_ALPHA != 2    \
-     || _CC_LOWER != 3    || _CC_UPPER != 4        || _CC_PUNCT != 5    \
-     || _CC_PRINT != 6    || _CC_ALPHANUMERIC != 7 || _CC_GRAPH != 8    \
-     || _CC_CASED != 9    || _CC_SPACE != 10       || _CC_BLANK != 11   \
-     || _CC_XDIGIT != 12  || _CC_CNTRL != 13       || _CC_ASCII != 14   \
-     || _CC_VERTSPACE != 15
-#   error Need to adjust order of anyofs[]
-#  endif
-static const char * const anyofs[] = {
-    "\\w",
-    "\\W",
-    "\\d",
-    "\\D",
-    "[:alpha:]",
-    "[:^alpha:]",
-    "[:lower:]",
-    "[:^lower:]",
-    "[:upper:]",
-    "[:^upper:]",
-    "[:punct:]",
-    "[:^punct:]",
-    "[:print:]",
-    "[:^print:]",
-    "[:alnum:]",
-    "[:^alnum:]",
-    "[:graph:]",
-    "[:^graph:]",
-    "[:cased:]",
-    "[:^cased:]",
-    "\\s",
-    "\\S",
-    "[:blank:]",
-    "[:^blank:]",
-    "[:xdigit:]",
-    "[:^xdigit:]",
-    "[:cntrl:]",
-    "[:^cntrl:]",
-    "[:ascii:]",
-    "[:^ascii:]",
-    "\\v",
-    "\\V"
-};
-#endif
-
-/*
-- regprop - printable representation of opcode, with run time support
-*/
-
-void
-Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state)
-{
-#ifdef DEBUGGING
-    int k;
-    RXi_GET_DECL(prog, progi);
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_REGPROP;
-
-    SvPVCLEAR(sv);
-
-    if (OP(o) > REGNODE_MAX) {          /* regnode.type is unsigned */
-        if (pRExC_state) {  /* This gives more info, if we have it */
-            FAIL3("panic: corrupted regexp opcode %d > %d",
-                  (int)OP(o), (int)REGNODE_MAX);
-        }
-        else {
-            Perl_croak(aTHX_ "panic: corrupted regexp opcode %d > %d",
-                             (int)OP(o), (int)REGNODE_MAX);
-        }
-    }
-    sv_catpv(sv, PL_reg_name[OP(o)]); /* Take off const! */
-
-    k = PL_regkind[OP(o)];
-
-    if (k == EXACT) {
-        sv_catpvs(sv, " ");
-        /* Using is_utf8_string() (via PERL_PV_UNI_DETECT)
-         * is a crude hack but it may be the best for now since
-         * we have no flag "this EXACTish node was UTF-8"
-         * --jhi */
-        pv_pretty(sv, STRING(o), STR_LEN(o), PL_dump_re_max_len,
-                  PL_colors[0], PL_colors[1],
-                  PERL_PV_ESCAPE_UNI_DETECT |
-                  PERL_PV_ESCAPE_NONASCII   |
-                  PERL_PV_PRETTY_ELLIPSES   |
-                  PERL_PV_PRETTY_LTGT       |
-                  PERL_PV_PRETTY_NOCLEAR
-                  );
-    } else if (k == TRIE) {
-        /* print the details of the trie in dumpuntil instead, as
-         * progi->data isn't available here */
-        const char op = OP(o);
-        const U32 n = ARG(o);
-        const reg_ac_data * const ac = IS_TRIE_AC(op) ?
-               (reg_ac_data *)progi->data->data[n] :
-               NULL;
-        const reg_trie_data * const trie
-            = (reg_trie_data*)progi->data->data[!IS_TRIE_AC(op) ? n : ac->trie];
-
-        Perl_sv_catpvf(aTHX_ sv, "-%s", PL_reg_name[o->flags]);
-        DEBUG_TRIE_COMPILE_r({
-          if (trie->jump)
-            sv_catpvs(sv, "(JUMP)");
-          Perl_sv_catpvf(aTHX_ sv,
-            "<S:%" UVuf "/%" IVdf " W:%" UVuf " L:%" UVuf "/%" UVuf " C:%" UVuf "/%" UVuf ">",
-            (UV)trie->startstate,
-            (IV)trie->statecount-1, /* -1 because of the unused 0 element */
-            (UV)trie->wordcount,
-            (UV)trie->minlen,
-            (UV)trie->maxlen,
-            (UV)TRIE_CHARCOUNT(trie),
-            (UV)trie->uniquecharcount
-          );
-        });
-        if ( IS_ANYOF_TRIE(op) || trie->bitmap ) {
-            sv_catpvs(sv, "[");
-            (void) put_charclass_bitmap_innards(sv,
-                                                ((IS_ANYOF_TRIE(op))
-                                                 ? ANYOF_BITMAP(o)
-                                                 : TRIE_BITMAP(trie)),
-                                                NULL,
-                                                NULL,
-                                                NULL,
-                                                0,
-                                                FALSE
-                                               );
-            sv_catpvs(sv, "]");
-        }
-    } else if (k == CURLY) {
-        U32 lo = ARG1(o), hi = ARG2(o);
-        if (OP(o) == CURLYM || OP(o) == CURLYN || OP(o) == CURLYX)
-            Perl_sv_catpvf(aTHX_ sv, "[%d]", o->flags); /* Parenth number */
-        Perl_sv_catpvf(aTHX_ sv, "{%u,", (unsigned) lo);
-        if (hi == REG_INFTY)
-            sv_catpvs(sv, "INFTY");
-        else
-            Perl_sv_catpvf(aTHX_ sv, "%u", (unsigned) hi);
-        sv_catpvs(sv, "}");
-    }
-    else if (k == WHILEM && o->flags)			/* Ordinal/of */
-        Perl_sv_catpvf(aTHX_ sv, "[%d/%d]", o->flags & 0xf, o->flags>>4);
-    else if (k == REF || k == OPEN || k == CLOSE
-             || k == GROUPP || OP(o)==ACCEPT)
-    {
-        AV *name_list= NULL;
-        U32 parno= OP(o) == ACCEPT ? (U32)ARG2L(o) : ARG(o);
-        Perl_sv_catpvf(aTHX_ sv, "%" UVuf, (UV)parno);        /* Parenth number */
-        if ( RXp_PAREN_NAMES(prog) ) {
-            name_list= MUTABLE_AV(progi->data->data[progi->name_list_idx]);
-        } else if ( pRExC_state ) {
-            name_list= RExC_paren_name_list;
-        }
-        if ( name_list ) {
-            if ( k != REF || (OP(o) < REFN)) {
-                SV **name= av_fetch(name_list, parno, 0 );
-                if (name)
-                    Perl_sv_catpvf(aTHX_ sv, " '%" SVf "'", SVfARG(*name));
-            }
-            else
-            if (parno > 0) {
-                /* parno must always be larger than 0 for this block
-                 * as it represents a slot into the data array, which
-                 * has the 0 slot reserved for a placeholder so any valid
-                 * index into it is always true, eg non-zero
-                 * see the '%' "what" type and the implementation of
-                 * S_add_data()
-                 */
-                SV *sv_dat= MUTABLE_SV(progi->data->data[ parno ]);
-                I32 *nums=(I32*)SvPVX(sv_dat);
-                SV **name= av_fetch(name_list, nums[0], 0 );
-                I32 n;
-                if (name) {
-                    for ( n=0; n<SvIVX(sv_dat); n++ ) {
-                        Perl_sv_catpvf(aTHX_ sv, "%s%" IVdf,
-                                    (n ? "," : ""), (IV)nums[n]);
-                    }
-                    Perl_sv_catpvf(aTHX_ sv, " '%" SVf "'", SVfARG(*name));
-                }
-            }
-        }
-        if ( k == REF && reginfo) {
-            U32 n = ARG(o);  /* which paren pair */
-            I32 ln = prog->offs[n].start;
-            if (prog->lastparen < n || ln == -1 || prog->offs[n].end == -1)
-                Perl_sv_catpvf(aTHX_ sv, ": FAIL");
-            else if (ln == prog->offs[n].end)
-                Perl_sv_catpvf(aTHX_ sv, ": ACCEPT - EMPTY STRING");
-            else {
-                const char *s = reginfo->strbeg + ln;
-                Perl_sv_catpvf(aTHX_ sv, ": ");
-                Perl_pv_pretty( aTHX_ sv, s, prog->offs[n].end - prog->offs[n].start, 32, 0, 0,
-                    PERL_PV_ESCAPE_UNI_DETECT|PERL_PV_PRETTY_NOCLEAR|PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE );
-            }
-        }
-    } else if (k == GOSUB) {
-        AV *name_list= NULL;
-        if ( RXp_PAREN_NAMES(prog) ) {
-            name_list= MUTABLE_AV(progi->data->data[progi->name_list_idx]);
-        } else if ( pRExC_state ) {
-            name_list= RExC_paren_name_list;
-        }
-
-        /* Paren and offset */
-        Perl_sv_catpvf(aTHX_ sv, "%d[%+d:%d]", (int)ARG(o),(int)ARG2L(o),
-                (int)((o + (int)ARG2L(o)) - progi->program) );
-        if (name_list) {
-            SV **name= av_fetch(name_list, ARG(o), 0 );
-            if (name)
-                Perl_sv_catpvf(aTHX_ sv, " '%" SVf "'", SVfARG(*name));
-        }
-    }
-    else if (k == LOGICAL)
-        /* 2: embedded, otherwise 1 */
-        Perl_sv_catpvf(aTHX_ sv, "[%d]", o->flags);
-    else if (k == ANYOF || k == ANYOFR) {
-        U8 flags;
-        char * bitmap;
-        U32 arg;
-        bool do_sep = FALSE;    /* Do we need to separate various components of
-                                   the output? */
-        /* Set if there is still an unresolved user-defined property */
-        SV *unresolved                = NULL;
-
-        /* Things that are ignored except when the runtime locale is UTF-8 */
-        SV *only_utf8_locale_invlist = NULL;
-
-        /* Code points that don't fit in the bitmap */
-        SV *nonbitmap_invlist = NULL;
-
-        /* And things that aren't in the bitmap, but are small enough to be */
-        SV* bitmap_range_not_in_bitmap = NULL;
-
-        bool inverted;
-
-        if (inRANGE(OP(o), ANYOFH, ANYOFRb)) {
-            flags = 0;
-            bitmap = NULL;
-            arg = 0;
-        }
-        else {
-            flags = ANYOF_FLAGS(o);
-            bitmap = ANYOF_BITMAP(o);
-            arg = ARG(o);
-        }
-
-        if (OP(o) == ANYOFL || OP(o) == ANYOFPOSIXL) {
-            if (ANYOFL_UTF8_LOCALE_REQD(flags)) {
-                sv_catpvs(sv, "{utf8-locale-reqd}");
-            }
-            if (flags & ANYOFL_FOLD) {
-                sv_catpvs(sv, "{i}");
-            }
-        }
-
-        inverted = flags & ANYOF_INVERT;
-
-        /* If there is stuff outside the bitmap, get it */
-        if (arg != ANYOF_ONLY_HAS_BITMAP) {
-            if (inRANGE(OP(o), ANYOFR, ANYOFRb)) {
-                nonbitmap_invlist = _add_range_to_invlist(nonbitmap_invlist,
-                                            ANYOFRbase(o),
-                                            ANYOFRbase(o) + ANYOFRdelta(o));
-            }
-            else {
-#if !defined(PERL_IN_XSUB_RE) || defined(PLUGGABLE_RE_EXTENSION)
-                (void) get_regclass_nonbitmap_data(prog, o, FALSE,
-                                                &unresolved,
-                                                &only_utf8_locale_invlist,
-                                                &nonbitmap_invlist);
-#else
-                (void) get_re_gclass_nonbitmap_data(prog, o, FALSE,
-                                                &unresolved,
-                                                &only_utf8_locale_invlist,
-                                                &nonbitmap_invlist);
-#endif
-            }
-
-            /* The non-bitmap data may contain stuff that could fit in the
-             * bitmap.  This could come from a user-defined property being
-             * finally resolved when this call was done; or much more likely
-             * because there are matches that require UTF-8 to be valid, and so
-             * aren't in the bitmap (or ANYOFR).  This is teased apart later */
-            _invlist_intersection(nonbitmap_invlist,
-                                  PL_InBitmap,
-                                  &bitmap_range_not_in_bitmap);
-            /* Leave just the things that don't fit into the bitmap */
-            _invlist_subtract(nonbitmap_invlist,
-                              PL_InBitmap,
-                              &nonbitmap_invlist);
-        }
-
-        /* Obey this flag to add all above-the-bitmap code points */
-        if (flags & ANYOF_MATCHES_ALL_ABOVE_BITMAP) {
-            nonbitmap_invlist = _add_range_to_invlist(nonbitmap_invlist,
-                                                      NUM_ANYOF_CODE_POINTS,
-                                                      UV_MAX);
-        }
-
-        /* Ready to start outputting.  First, the initial left bracket */
-        Perl_sv_catpvf(aTHX_ sv, "[%s", PL_colors[0]);
-
-        /* ANYOFH by definition doesn't have anything that will fit inside the
-         * bitmap;  ANYOFR may or may not. */
-        if (  ! inRANGE(OP(o), ANYOFH, ANYOFHr)
-            && (   ! inRANGE(OP(o), ANYOFR, ANYOFRb)
-                ||   ANYOFRbase(o) < NUM_ANYOF_CODE_POINTS))
-        {
-            /* Then all the things that could fit in the bitmap */
-            do_sep = put_charclass_bitmap_innards(sv,
-                                                  bitmap,
-                                                  bitmap_range_not_in_bitmap,
-                                                  only_utf8_locale_invlist,
-                                                  o,
-                                                  flags,
-
-                                                  /* Can't try inverting for a
-                                                   * better display if there
-                                                   * are things that haven't
-                                                   * been resolved */
-                                                  unresolved != NULL
-                                            || inRANGE(OP(o), ANYOFR, ANYOFRb));
-            SvREFCNT_dec(bitmap_range_not_in_bitmap);
-
-            /* If there are user-defined properties which haven't been defined
-             * yet, output them.  If the result is not to be inverted, it is
-             * clearest to output them in a separate [] from the bitmap range
-             * stuff.  If the result is to be complemented, we have to show
-             * everything in one [], as the inversion applies to the whole
-             * thing.  Use {braces} to separate them from anything in the
-             * bitmap and anything above the bitmap. */
-            if (unresolved) {
-                if (inverted) {
-                    if (! do_sep) { /* If didn't output anything in the bitmap
-                                     */
-                        sv_catpvs(sv, "^");
-                    }
-                    sv_catpvs(sv, "{");
-                }
-                else if (do_sep) {
-                    Perl_sv_catpvf(aTHX_ sv,"%s][%s", PL_colors[1],
-                                                      PL_colors[0]);
-                }
-                sv_catsv(sv, unresolved);
-                if (inverted) {
-                    sv_catpvs(sv, "}");
-                }
-                do_sep = ! inverted;
-            }
-        }
-
-        /* And, finally, add the above-the-bitmap stuff */
-        if (nonbitmap_invlist && _invlist_len(nonbitmap_invlist)) {
-            SV* contents;
-
-            /* See if truncation size is overridden */
-            const STRLEN dump_len = (PL_dump_re_max_len > 256)
-                                    ? PL_dump_re_max_len
-                                    : 256;
-
-            /* This is output in a separate [] */
-            if (do_sep) {
-                Perl_sv_catpvf(aTHX_ sv,"%s][%s", PL_colors[1], PL_colors[0]);
-            }
-
-            /* And, for easy of understanding, it is shown in the
-             * uncomplemented form if possible.  The one exception being if
-             * there are unresolved items, where the inversion has to be
-             * delayed until runtime */
-            if (inverted && ! unresolved) {
-                _invlist_invert(nonbitmap_invlist);
-                _invlist_subtract(nonbitmap_invlist, PL_InBitmap, &nonbitmap_invlist);
-            }
-
-            contents = invlist_contents(nonbitmap_invlist,
-                                        FALSE /* output suitable for catsv */
-                                       );
-
-            /* If the output is shorter than the permissible maximum, just do it. */
-            if (SvCUR(contents) <= dump_len) {
-                sv_catsv(sv, contents);
-            }
-            else {
-                const char * contents_string = SvPVX(contents);
-                STRLEN i = dump_len;
-
-                /* Otherwise, start at the permissible max and work back to the
-                 * first break possibility */
-                while (i > 0 && contents_string[i] != ' ') {
-                    i--;
-                }
-                if (i == 0) {       /* Fail-safe.  Use the max if we couldn't
-                                       find a legal break */
-                    i = dump_len;
-                }
-
-                sv_catpvn(sv, contents_string, i);
-                sv_catpvs(sv, "...");
-            }
-
-            SvREFCNT_dec_NN(contents);
-            SvREFCNT_dec_NN(nonbitmap_invlist);
-        }
-
-        /* And finally the matching, closing ']' */
-        Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
-
-        if (OP(o) == ANYOFHs) {
-            Perl_sv_catpvf(aTHX_ sv, " (Leading UTF-8 bytes=%s", _byte_dump_string((U8 *) ((struct regnode_anyofhs *) o)->string, FLAGS(o), 1));
-        }
-        else if (inRANGE(OP(o), ANYOFH, ANYOFRb)) {
-            U8 lowest = (OP(o) != ANYOFHr)
-                         ? FLAGS(o)
-                         : LOWEST_ANYOF_HRx_BYTE(FLAGS(o));
-            U8 highest = (OP(o) == ANYOFHr)
-                         ? HIGHEST_ANYOF_HRx_BYTE(FLAGS(o))
-                         : (OP(o) == ANYOFH || OP(o) == ANYOFR)
-                           ? 0xFF
-                           : lowest;
-#ifndef EBCDIC
-            if (OP(o) != ANYOFR || ! isASCII(ANYOFRbase(o) + ANYOFRdelta(o)))
-#endif
-            {
-                Perl_sv_catpvf(aTHX_ sv, " (First UTF-8 byte=%02X", lowest);
-                if (lowest != highest) {
-                    Perl_sv_catpvf(aTHX_ sv, "-%02X", highest);
-                }
-                Perl_sv_catpvf(aTHX_ sv, ")");
-            }
-        }
-
-        SvREFCNT_dec(unresolved);
-    }
-    else if (k == ANYOFM) {
-        SV * cp_list = get_ANYOFM_contents(o);
+    U8 needed = 1U << PL_bitcount[ (U8) ~ FLAGS(n)];
 
-        Perl_sv_catpvf(aTHX_ sv, "[%s", PL_colors[0]);
-        if (OP(o) == NANYOFM) {
-            _invlist_invert(cp_list);
-        }
+    PERL_ARGS_ASSERT_GET_ANYOFM_CONTENTS;
 
-        put_charclass_bitmap_innards(sv, NULL, cp_list, NULL, NULL, 0, TRUE);
-        Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
+    /* Starting with the lowest code point, any code point that ANDed with the
+     * mask yields the lowest code point is in the set */
+    for (i = lowest; i <= 0xFF; i++) {
+        if ((i & FLAGS(n)) == ARG1u(n)) {
+            cp_list = add_cp_to_invlist(cp_list, i);
+            count++;
 
-        SvREFCNT_dec(cp_list);
-    }
-    else if (k == POSIXD || k == NPOSIXD) {
-        U8 index = FLAGS(o) * 2;
-        if (index < C_ARRAY_LENGTH(anyofs)) {
-            if (*anyofs[index] != '[')  {
-                sv_catpvs(sv, "[");
-            }
-            sv_catpv(sv, anyofs[index]);
-            if (*anyofs[index] != '[')  {
-                sv_catpvs(sv, "]");
-            }
-        }
-        else {
-            Perl_sv_catpvf(aTHX_ sv, "[illegal type=%d])", index);
+            /* We know how many code points (a power of two) that are in the
+             * set.  No use looking once we've got that number */
+            if (count >= needed) break;
         }
     }
-    else if (k == BOUND || k == NBOUND) {
-        /* Must be synced with order of 'bound_type' in regcomp.h */
-        const char * const bounds[] = {
-            "",      /* Traditional */
-            "{gcb}",
-            "{lb}",
-            "{sb}",
-            "{wb}"
-        };
-        assert(FLAGS(o) < C_ARRAY_LENGTH(bounds));
-        sv_catpv(sv, bounds[FLAGS(o)]);
-    }
-    else if (k == BRANCHJ && (OP(o) == UNLESSM || OP(o) == IFMATCH)) {
-        Perl_sv_catpvf(aTHX_ sv, "[%d", -(o->flags));
-        if (o->next_off) {
-            Perl_sv_catpvf(aTHX_ sv, "..-%d", o->flags - o->next_off);
-        }
-        Perl_sv_catpvf(aTHX_ sv, "]");
-    }
-    else if (OP(o) == SBOL)
-        Perl_sv_catpvf(aTHX_ sv, " /%s/", o->flags ? "\\A" : "^");
-
-    /* add on the verb argument if there is one */
-    if ( ( k == VERB || OP(o) == ACCEPT || OP(o) == OPFAIL ) && o->flags) {
-        if ( ARG(o) )
-            Perl_sv_catpvf(aTHX_ sv, ":%" SVf,
-                       SVfARG((MUTABLE_SV(progi->data->data[ ARG( o ) ]))));
-        else
-            sv_catpvs(sv, ":NULL");
+
+    if (OP(n) == NANYOFM) {
+        _invlist_invert(cp_list);
     }
-#else
-    PERL_UNUSED_CONTEXT;
-    PERL_UNUSED_ARG(sv);
-    PERL_UNUSED_ARG(o);
-    PERL_UNUSED_ARG(prog);
-    PERL_UNUSED_ARG(reginfo);
-    PERL_UNUSED_ARG(pRExC_state);
-#endif	/* DEBUGGING */
+    return cp_list;
+}
+
+SV *
+Perl_get_ANYOFHbbm_contents(pTHX_ const regnode * n) {
+    PERL_ARGS_ASSERT_GET_ANYOFHBBM_CONTENTS;
+
+    SV * cp_list = NULL;
+    populate_invlist_from_bitmap(
+              ((struct regnode_bbm *) n)->bitmap,
+              REGNODE_BBM_BITMAP_LEN * CHARBITS,
+              &cp_list,
+
+              /* The base cp is from the start byte plus a zero continuation */
+              TWO_BYTE_UTF8_TO_NATIVE(FIRST_BYTE((struct regnode_bbm *) n),
+                                      UTF_CONTINUATION_MARK | 0));
+    return cp_list;
 }
 
 
@@ -22183,7 +13134,13 @@ Perl_pregfree2(pTHX_ REGEXP *rx)
 #ifdef PERL_ANY_COW
     SvREFCNT_dec(r->saved_copy);
 #endif
-    Safefree(r->offs);
+    Safefree(RXp_OFFSp(r));
+    if (r->logical_to_parno) {
+        Safefree(r->logical_to_parno);
+        Safefree(r->parno_to_logical);
+        Safefree(r->parno_to_logical_next);
+    }
+
     SvREFCNT_dec(r->qr_anoncv);
     if (r->recurse_locinput)
         Safefree(r->recurse_locinput);
@@ -22281,12 +13238,12 @@ Perl_reg_temp_copy(pTHX_ REGEXP *dsv, RE
      */
     memcpy(&(drx->xpv_cur), &(srx->xpv_cur),
            sizeof(regexp) - STRUCT_OFFSET(regexp, xpv_cur));
+
     if (!islv)
         SvLEN_set(dsv, 0);
-    if (srx->offs) {
+    if (RXp_OFFSp(srx)) {
         const I32 npar = srx->nparens+1;
-        Newx(drx->offs, npar, regexp_paren_pair);
-        Copy(srx->offs, drx->offs, npar, regexp_paren_pair);
+        NewCopy(RXp_OFFSp(srx), RXp_OFFSp(drx), npar, regexp_paren_pair);
     }
     if (srx->substrs) {
         int i;
@@ -22301,9 +13258,26 @@ Perl_reg_temp_copy(pTHX_ REGEXP *dsv, RE
         /* check_substr and check_utf8, if non-NULL, point to either their
            anchored or float namesakes, and don't hold a second reference.  */
     }
+    if (srx->logical_to_parno) {
+        NewCopy(srx->logical_to_parno,
+                drx->logical_to_parno,
+                srx->nparens+1, I32);
+        NewCopy(srx->parno_to_logical,
+                drx->parno_to_logical,
+                srx->nparens+1, I32);
+        NewCopy(srx->parno_to_logical_next,
+                drx->parno_to_logical_next,
+                srx->nparens+1, I32);
+    } else {
+        drx->logical_to_parno = NULL;
+        drx->parno_to_logical = NULL;
+        drx->parno_to_logical_next = NULL;
+    }
+    drx->logical_nparens = srx->logical_nparens;
+
     RX_MATCH_COPIED_off(dsv);
 #ifdef PERL_ANY_COW
-    drx->saved_copy = NULL;
+    RXp_SAVED_COPY(drx) = NULL;
 #endif
     drx->mother_re = ReREFCNT_inc(srx->mother_re ? srx->mother_re : ssv);
     SvREFCNT_inc_void(drx->qr_anoncv);
@@ -22416,6 +13390,10 @@ Perl_regfree_internal(pTHX_ REGEXP * con
                             PerlMemShared_free(trie->bitmap);
                         if (trie->jump)
                             PerlMemShared_free(trie->jump);
+                        if (trie->j_before_paren)
+                            PerlMemShared_free(trie->j_before_paren);
+                        if (trie->j_after_paren)
+                            PerlMemShared_free(trie->j_after_paren);
                         PerlMemShared_free(trie->wordinfo);
                         /* do this last!!!! */
                         PerlMemShared_free(ri->data->data[n]);
@@ -22423,7 +13401,7 @@ Perl_regfree_internal(pTHX_ REGEXP * con
                 }
                 break;
             case '%':
-                /* NO-OP a '%' data contains a null pointer, so that add_data
+                /* NO-OP a '%' data contains a null pointer, so that reg_add_data
                  * always returns non-zero, this should only ever happen in the
                  * 0 index */
                 assert(n==0);
@@ -22440,8 +13418,6 @@ Perl_regfree_internal(pTHX_ REGEXP * con
     Safefree(ri);
 }
 
-#define av_dup_inc(s, t)	MUTABLE_AV(sv_dup_inc((const SV *)s, t))
-#define hv_dup_inc(s, t)	MUTABLE_HV(sv_dup_inc((const SV *)s, t))
 #define SAVEPVN(p, n)	((p) ? savepvn(p, n) : NULL)
 
 /*
@@ -22472,8 +13448,7 @@ Perl_re_dup_guts(pTHX_ const REGEXP *sst
     PERL_ARGS_ASSERT_RE_DUP_GUTS;
 
     npar = r->nparens+1;
-    Newx(ret->offs, npar, regexp_paren_pair);
-    Copy(r->offs, ret->offs, npar, regexp_paren_pair);
+    NewCopy(RXp_OFFSp(r), RXp_OFFSp(ret), npar, regexp_paren_pair);
 
     if (ret->substrs) {
         /* Do it this way to avoid reading from *r after the StructCopy().
@@ -22527,13 +13502,26 @@ Perl_re_dup_guts(pTHX_ const REGEXP *sst
         RXi_SET(ret, CALLREGDUPE_PVT(dstr, param));
 
     if (RX_MATCH_COPIED(dstr))
-        ret->subbeg  = SAVEPVN(ret->subbeg, ret->sublen);
+        RXp_SUBBEG(ret)  = SAVEPVN(RXp_SUBBEG(ret), RXp_SUBLEN(ret));
     else
-        ret->subbeg = NULL;
+        RXp_SUBBEG(ret) = NULL;
 #ifdef PERL_ANY_COW
-    ret->saved_copy = NULL;
+    RXp_SAVED_COPY(ret) = NULL;
 #endif
 
+    if (r->logical_to_parno) {
+        /* we use total_parens for all three just for symmetry */
+        ret->logical_to_parno = (I32*)SAVEPVN((char*)(r->logical_to_parno), (1+r->nparens) * sizeof(I32));
+        ret->parno_to_logical = (I32*)SAVEPVN((char*)(r->parno_to_logical), (1+r->nparens) * sizeof(I32));
+        ret->parno_to_logical_next = (I32*)SAVEPVN((char*)(r->parno_to_logical_next), (1+r->nparens) * sizeof(I32));
+    } else {
+        ret->logical_to_parno = NULL;
+        ret->parno_to_logical = NULL;
+        ret->parno_to_logical_next = NULL;
+    }
+
+    ret->logical_nparens = r->logical_nparens;
+
     /* Whether mother_re be set or no, we need to copy the string.  We
        cannot refrain from copying it when the storage points directly to
        our mother regexp, because that's
@@ -22658,7 +13646,7 @@ Perl_regdupe_internal(pTHX_ REGEXP * con
                 break;
             case '%':
                 /* this is a placeholder type, it exists purely so that
-                 * add_data always returns a non-zero value, this type of
+                 * reg_add_data always returns a non-zero value, this type of
                  * entry should ONLY be present in the 0 slot of the array */
                 assert(i == 0);
                 d->data[i]= ri->data->data[i];
@@ -22674,6 +13662,15 @@ Perl_regdupe_internal(pTHX_ REGEXP * con
     else
         reti->data = NULL;
 
+    if (ri->regstclass && !reti->regstclass) {
+        /* Assume that the regstclass is a regnode which is inside of the
+         * program which we have to copy over */
+        regnode *node= ri->regstclass;
+        assert(node >= ri->program && (node - ri->program) < len);
+        reti->regstclass = reti->program + (node - ri->program);
+    }
+
+
     reti->name_list_idx = ri->name_list_idx;
 
     SetProgLen(reti, len);
@@ -22683,33 +13680,6 @@ Perl_regdupe_internal(pTHX_ REGEXP * con
 
 #endif    /* USE_ITHREADS */
 
-#ifndef PERL_IN_XSUB_RE
-
-/*
- - regnext - dig the "next" pointer out of a node
- */
-regnode *
-Perl_regnext(pTHX_ regnode *p)
-{
-    I32 offset;
-
-    if (!p)
-        return(NULL);
-
-    if (OP(p) > REGNODE_MAX) {		/* regnode.type is unsigned */
-        Perl_croak(aTHX_ "Corrupted regexp opcode %d > %d",
-                                                (int)OP(p), (int)REGNODE_MAX);
-    }
-
-    offset = (reg_off_by_arg[OP(p)] ? ARG(p) : NEXT_OFF(p));
-    if (offset == 0)
-        return(NULL);
-
-    return(p+offset);
-}
-
-#endif
-
 STATIC void
 S_re_croak(pTHX_ bool utf8, const char* pat,...)
 {
@@ -22778,776 +13748,6 @@ Perl_save_re_context(pTHX)
 }
 #endif
 
-#ifdef DEBUGGING
-
-STATIC void
-S_put_code_point(pTHX_ SV *sv, UV c)
-{
-    PERL_ARGS_ASSERT_PUT_CODE_POINT;
-
-    if (c > 255) {
-        Perl_sv_catpvf(aTHX_ sv, "\\x{%04" UVXf "}", c);
-    }
-    else if (isPRINT(c)) {
-        const char string = (char) c;
-
-        /* We use {phrase} as metanotation in the class, so also escape literal
-         * braces */
-        if (isBACKSLASHED_PUNCT(c) || c == '{' || c == '}')
-            sv_catpvs(sv, "\\");
-        sv_catpvn(sv, &string, 1);
-    }
-    else if (isMNEMONIC_CNTRL(c)) {
-        Perl_sv_catpvf(aTHX_ sv, "%s", cntrl_to_mnemonic((U8) c));
-    }
-    else {
-        Perl_sv_catpvf(aTHX_ sv, "\\x%02X", (U8) c);
-    }
-}
-
-STATIC void
-S_put_range(pTHX_ SV *sv, UV start, const UV end, const bool allow_literals)
-{
-    /* Appends to 'sv' a displayable version of the range of code points from
-     * 'start' to 'end'.  Mnemonics (like '\r') are used for the few controls
-     * that have them, when they occur at the beginning or end of the range.
-     * It uses hex to output the remaining code points, unless 'allow_literals'
-     * is true, in which case the printable ASCII ones are output as-is (though
-     * some of these will be escaped by put_code_point()).
-     *
-     * NOTE:  This is designed only for printing ranges of code points that fit
-     *        inside an ANYOF bitmap.  Higher code points are simply suppressed
-     */
-
-    const unsigned int min_range_count = 3;
-
-    assert(start <= end);
-
-    PERL_ARGS_ASSERT_PUT_RANGE;
-
-    while (start <= end) {
-        UV this_end;
-        const char * format;
-
-        if (    end - start < min_range_count
-            && (end - start <= 2 || (isPRINT_A(start) && isPRINT_A(end))))
-        {
-            /* Output a range of 1 or 2 chars individually, or longer ranges
-             * when printable */
-            for (; start <= end; start++) {
-                put_code_point(sv, start);
-            }
-            break;
-        }
-
-        /* If permitted by the input options, and there is a possibility that
-         * this range contains a printable literal, look to see if there is
-         * one. */
-        if (allow_literals && start <= MAX_PRINT_A) {
-
-            /* If the character at the beginning of the range isn't an ASCII
-             * printable, effectively split the range into two parts:
-             *  1) the portion before the first such printable,
-             *  2) the rest
-             * and output them separately. */
-            if (! isPRINT_A(start)) {
-                UV temp_end = start + 1;
-
-                /* There is no point looking beyond the final possible
-                 * printable, in MAX_PRINT_A */
-                UV max = MIN(end, MAX_PRINT_A);
-
-                while (temp_end <= max && ! isPRINT_A(temp_end)) {
-                    temp_end++;
-                }
-
-                /* Here, temp_end points to one beyond the first printable if
-                 * found, or to one beyond 'max' if not.  If none found, make
-                 * sure that we use the entire range */
-                if (temp_end > MAX_PRINT_A) {
-                    temp_end = end + 1;
-                }
-
-                /* Output the first part of the split range: the part that
-                 * doesn't have printables, with the parameter set to not look
-                 * for literals (otherwise we would infinitely recurse) */
-                put_range(sv, start, temp_end - 1, FALSE);
-
-                /* The 2nd part of the range (if any) starts here. */
-                start = temp_end;
-
-                /* We do a continue, instead of dropping down, because even if
-                 * the 2nd part is non-empty, it could be so short that we want
-                 * to output it as individual characters, as tested for at the
-                 * top of this loop.  */
-                continue;
-            }
-
-            /* Here, 'start' is a printable ASCII.  If it is an alphanumeric,
-             * output a sub-range of just the digits or letters, then process
-             * the remaining portion as usual. */
-            if (isALPHANUMERIC_A(start)) {
-                UV mask = (isDIGIT_A(start))
-                           ? _CC_DIGIT
-                             : isUPPER_A(start)
-                               ? _CC_UPPER
-                               : _CC_LOWER;
-                UV temp_end = start + 1;
-
-                /* Find the end of the sub-range that includes just the
-                 * characters in the same class as the first character in it */
-                while (temp_end <= end && _generic_isCC_A(temp_end, mask)) {
-                    temp_end++;
-                }
-                temp_end--;
-
-                /* For short ranges, don't duplicate the code above to output
-                 * them; just call recursively */
-                if (temp_end - start < min_range_count) {
-                    put_range(sv, start, temp_end, FALSE);
-                }
-                else {  /* Output as a range */
-                    put_code_point(sv, start);
-                    sv_catpvs(sv, "-");
-                    put_code_point(sv, temp_end);
-                }
-                start = temp_end + 1;
-                continue;
-            }
-
-            /* We output any other printables as individual characters */
-            if (isPUNCT_A(start) || isSPACE_A(start)) {
-                while (start <= end && (isPUNCT_A(start)
-                                        || isSPACE_A(start)))
-                {
-                    put_code_point(sv, start);
-                    start++;
-                }
-                continue;
-            }
-        } /* End of looking for literals */
-
-        /* Here is not to output as a literal.  Some control characters have
-         * mnemonic names.  Split off any of those at the beginning and end of
-         * the range to print mnemonically.  It isn't possible for many of
-         * these to be in a row, so this won't overwhelm with output */
-        if (   start <= end
-            && (isMNEMONIC_CNTRL(start) || isMNEMONIC_CNTRL(end)))
-        {
-            while (isMNEMONIC_CNTRL(start) && start <= end) {
-                put_code_point(sv, start);
-                start++;
-            }
-
-            /* If this didn't take care of the whole range ... */
-            if (start <= end) {
-
-                /* Look backwards from the end to find the final non-mnemonic
-                 * */
-                UV temp_end = end;
-                while (isMNEMONIC_CNTRL(temp_end)) {
-                    temp_end--;
-                }
-
-                /* And separately output the interior range that doesn't start
-                 * or end with mnemonics */
-                put_range(sv, start, temp_end, FALSE);
-
-                /* Then output the mnemonic trailing controls */
-                start = temp_end + 1;
-                while (start <= end) {
-                    put_code_point(sv, start);
-                    start++;
-                }
-                break;
-            }
-        }
-
-        /* As a final resort, output the range or subrange as hex. */
-
-        if (start >= NUM_ANYOF_CODE_POINTS) {
-            this_end = end;
-        }
-        else {  /* Have to split range at the bitmap boundary */
-            this_end = (end < NUM_ANYOF_CODE_POINTS)
-                        ? end
-                        : NUM_ANYOF_CODE_POINTS - 1;
-        }
-#if NUM_ANYOF_CODE_POINTS > 256
-        format = (this_end < 256)
-                 ? "\\x%02" UVXf "-\\x%02" UVXf
-                 : "\\x{%04" UVXf "}-\\x{%04" UVXf "}";
-#else
-        format = "\\x%02" UVXf "-\\x%02" UVXf;
-#endif
-        GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral);
-        Perl_sv_catpvf(aTHX_ sv, format, start, this_end);
-        GCC_DIAG_RESTORE_STMT;
-        break;
-    }
-}
-
-STATIC void
-S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV* invlist)
-{
-    /* Concatenate onto the PV in 'sv' a displayable form of the inversion list
-     * 'invlist' */
-
-    UV start, end;
-    bool allow_literals = TRUE;
-
-    PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST;
-
-    /* Generally, it is more readable if printable characters are output as
-     * literals, but if a range (nearly) spans all of them, it's best to output
-     * it as a single range.  This code will use a single range if all but 2
-     * ASCII printables are in it */
-    invlist_iterinit(invlist);
-    while (invlist_iternext(invlist, &start, &end)) {
-
-        /* If the range starts beyond the final printable, it doesn't have any
-         * in it */
-        if (start > MAX_PRINT_A) {
-            break;
-        }
-
-        /* In both ASCII and EBCDIC, a SPACE is the lowest printable.  To span
-         * all but two, the range must start and end no later than 2 from
-         * either end */
-        if (start < ' ' + 2 && end > MAX_PRINT_A - 2) {
-            if (end > MAX_PRINT_A) {
-                end = MAX_PRINT_A;
-            }
-            if (start < ' ') {
-                start = ' ';
-            }
-            if (end - start >= MAX_PRINT_A - ' ' - 2) {
-                allow_literals = FALSE;
-            }
-            break;
-        }
-    }
-    invlist_iterfinish(invlist);
-
-    /* Here we have figured things out.  Output each range */
-    invlist_iterinit(invlist);
-    while (invlist_iternext(invlist, &start, &end)) {
-        if (start >= NUM_ANYOF_CODE_POINTS) {
-            break;
-        }
-        put_range(sv, start, end, allow_literals);
-    }
-    invlist_iterfinish(invlist);
-
-    return;
-}
-
-STATIC SV*
-S_put_charclass_bitmap_innards_common(pTHX_
-        SV* invlist,            /* The bitmap */
-        SV* posixes,            /* Under /l, things like [:word:], \S */
-        SV* only_utf8,          /* Under /d, matches iff the target is UTF-8 */
-        SV* not_utf8,           /* /d, matches iff the target isn't UTF-8 */
-        SV* only_utf8_locale,   /* Under /l, matches if the locale is UTF-8 */
-        const bool invert       /* Is the result to be inverted? */
-)
-{
-    /* Create and return an SV containing a displayable version of the bitmap
-     * and associated information determined by the input parameters.  If the
-     * output would have been only the inversion indicator '^', NULL is instead
-     * returned. */
-
-    SV * output;
-
-    PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON;
-
-    if (invert) {
-        output = newSVpvs("^");
-    }
-    else {
-        output = newSVpvs("");
-    }
-
-    /* First, the code points in the bitmap that are unconditionally there */
-    put_charclass_bitmap_innards_invlist(output, invlist);
-
-    /* Traditionally, these have been placed after the main code points */
-    if (posixes) {
-        sv_catsv(output, posixes);
-    }
-
-    if (only_utf8 && _invlist_len(only_utf8)) {
-        Perl_sv_catpvf(aTHX_ output, "%s{utf8}%s", PL_colors[1], PL_colors[0]);
-        put_charclass_bitmap_innards_invlist(output, only_utf8);
-    }
-
-    if (not_utf8 && _invlist_len(not_utf8)) {
-        Perl_sv_catpvf(aTHX_ output, "%s{not utf8}%s", PL_colors[1], PL_colors[0]);
-        put_charclass_bitmap_innards_invlist(output, not_utf8);
-    }
-
-    if (only_utf8_locale && _invlist_len(only_utf8_locale)) {
-        Perl_sv_catpvf(aTHX_ output, "%s{utf8 locale}%s", PL_colors[1], PL_colors[0]);
-        put_charclass_bitmap_innards_invlist(output, only_utf8_locale);
-
-        /* This is the only list in this routine that can legally contain code
-         * points outside the bitmap range.  The call just above to
-         * 'put_charclass_bitmap_innards_invlist' will simply suppress them, so
-         * output them here.  There's about a half-dozen possible, and none in
-         * contiguous ranges longer than 2 */
-        if (invlist_highest(only_utf8_locale) >= NUM_ANYOF_CODE_POINTS) {
-            UV start, end;
-            SV* above_bitmap = NULL;
-
-            _invlist_subtract(only_utf8_locale, PL_InBitmap, &above_bitmap);
-
-            invlist_iterinit(above_bitmap);
-            while (invlist_iternext(above_bitmap, &start, &end)) {
-                UV i;
-
-                for (i = start; i <= end; i++) {
-                    put_code_point(output, i);
-                }
-            }
-            invlist_iterfinish(above_bitmap);
-            SvREFCNT_dec_NN(above_bitmap);
-        }
-    }
-
-    if (invert && SvCUR(output) == 1) {
-        return NULL;
-    }
-
-    return output;
-}
-
-STATIC bool
-S_put_charclass_bitmap_innards(pTHX_ SV *sv,
-                                     char *bitmap,
-                                     SV *nonbitmap_invlist,
-                                     SV *only_utf8_locale_invlist,
-                                     const regnode * const node,
-                                     const U8 flags,
-                                     const bool force_as_is_display)
-{
-    /* Appends to 'sv' a displayable version of the innards of the bracketed
-     * character class defined by the other arguments:
-     *  'bitmap' points to the bitmap, or NULL if to ignore that.
-     *  'nonbitmap_invlist' is an inversion list of the code points that are in
-     *      the bitmap range, but for some reason aren't in the bitmap; NULL if
-     *      none.  The reasons for this could be that they require some
-     *      condition such as the target string being or not being in UTF-8
-     *      (under /d), or because they came from a user-defined property that
-     *      was not resolved at the time of the regex compilation (under /u)
-     *  'only_utf8_locale_invlist' is an inversion list of the code points that
-     *      are valid only if the runtime locale is a UTF-8 one; NULL if none
-     *  'node' is the regex pattern ANYOF node.  It is needed only when the
-     *      above two parameters are not null, and is passed so that this
-     *      routine can tease apart the various reasons for them.
-     *  'flags' is the flags field of 'node'
-     *  'force_as_is_display' is TRUE if this routine should definitely NOT try
-     *      to invert things to see if that leads to a cleaner display.  If
-     *      FALSE, this routine is free to use its judgment about doing this.
-     *
-     * It returns TRUE if there was actually something output.  (It may be that
-     * the bitmap, etc is empty.)
-     *
-     * When called for outputting the bitmap of a non-ANYOF node, just pass the
-     * bitmap, with the succeeding parameters set to NULL, and the final one to
-     * FALSE.
-     */
-
-    /* In general, it tries to display the 'cleanest' representation of the
-     * innards, choosing whether to display them inverted or not, regardless of
-     * whether the class itself is to be inverted.  However,  there are some
-     * cases where it can't try inverting, as what actually matches isn't known
-     * until runtime, and hence the inversion isn't either. */
-
-    bool inverting_allowed = ! force_as_is_display;
-
-    int i;
-    STRLEN orig_sv_cur = SvCUR(sv);
-
-    SV* invlist;            /* Inversion list we accumulate of code points that
-                               are unconditionally matched */
-    SV* only_utf8 = NULL;   /* Under /d, list of matches iff the target is
-                               UTF-8 */
-    SV* not_utf8 =  NULL;   /* /d, list of matches iff the target isn't UTF-8
-                             */
-    SV* posixes = NULL;     /* Under /l, string of things like [:word:], \D */
-    SV* only_utf8_locale = NULL;    /* Under /l, list of matches if the locale
-                                       is UTF-8 */
-
-    SV* as_is_display;      /* The output string when we take the inputs
-                               literally */
-    SV* inverted_display;   /* The output string when we invert the inputs */
-
-    bool invert = cBOOL(flags & ANYOF_INVERT);  /* Is the input to be inverted
-                                                   to match? */
-    /* We are biased in favor of displaying things without them being inverted,
-     * as that is generally easier to understand */
-    const int bias = 5;
-
-    PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS;
-
-    /* Start off with whatever code points are passed in.  (We clone, so we
-     * don't change the caller's list) */
-    if (nonbitmap_invlist) {
-        assert(invlist_highest(nonbitmap_invlist) < NUM_ANYOF_CODE_POINTS);
-        invlist = invlist_clone(nonbitmap_invlist, NULL);
-    }
-    else {  /* Worst case size is every other code point is matched */
-        invlist = _new_invlist(NUM_ANYOF_CODE_POINTS / 2);
-    }
-
-    if (flags) {
-        if (OP(node) == ANYOFD) {
-
-            /* This flag indicates that the code points below 0x100 in the
-             * nonbitmap list are precisely the ones that match only when the
-             * target is UTF-8 (they should all be non-ASCII). */
-            if (flags & ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP)
-            {
-                _invlist_intersection(invlist, PL_UpperLatin1, &only_utf8);
-                _invlist_subtract(invlist, only_utf8, &invlist);
-            }
-
-            /* And this flag for matching all non-ASCII 0xFF and below */
-            if (flags & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER)
-            {
-                not_utf8 = invlist_clone(PL_UpperLatin1, NULL);
-            }
-        }
-        else if (OP(node) == ANYOFL || OP(node) == ANYOFPOSIXL) {
-
-            /* If either of these flags are set, what matches isn't
-             * determinable except during execution, so don't know enough here
-             * to invert */
-            if (flags & (ANYOFL_FOLD|ANYOF_MATCHES_POSIXL)) {
-                inverting_allowed = FALSE;
-            }
-
-            /* What the posix classes match also varies at runtime, so these
-             * will be output symbolically. */
-            if (ANYOF_POSIXL_TEST_ANY_SET(node)) {
-                int i;
-
-                posixes = newSVpvs("");
-                for (i = 0; i < ANYOF_POSIXL_MAX; i++) {
-                    if (ANYOF_POSIXL_TEST(node, i)) {
-                        sv_catpv(posixes, anyofs[i]);
-                    }
-                }
-            }
-        }
-    }
-
-    /* Accumulate the bit map into the unconditional match list */
-    if (bitmap) {
-        for (i = 0; i < NUM_ANYOF_CODE_POINTS; i++) {
-            if (BITMAP_TEST(bitmap, i)) {
-                int start = i++;
-                for (;
-                     i < NUM_ANYOF_CODE_POINTS && BITMAP_TEST(bitmap, i);
-                     i++)
-                { /* empty */ }
-                invlist = _add_range_to_invlist(invlist, start, i-1);
-            }
-        }
-    }
-
-    /* Make sure that the conditional match lists don't have anything in them
-     * that match unconditionally; otherwise the output is quite confusing.
-     * This could happen if the code that populates these misses some
-     * duplication. */
-    if (only_utf8) {
-        _invlist_subtract(only_utf8, invlist, &only_utf8);
-    }
-    if (not_utf8) {
-        _invlist_subtract(not_utf8, invlist, &not_utf8);
-    }
-
-    if (only_utf8_locale_invlist) {
-
-        /* Since this list is passed in, we have to make a copy before
-         * modifying it */
-        only_utf8_locale = invlist_clone(only_utf8_locale_invlist, NULL);
-
-        _invlist_subtract(only_utf8_locale, invlist, &only_utf8_locale);
-
-        /* And, it can get really weird for us to try outputting an inverted
-         * form of this list when it has things above the bitmap, so don't even
-         * try */
-        if (invlist_highest(only_utf8_locale) >= NUM_ANYOF_CODE_POINTS) {
-            inverting_allowed = FALSE;
-        }
-    }
-
-    /* Calculate what the output would be if we take the input as-is */
-    as_is_display = put_charclass_bitmap_innards_common(invlist,
-                                                    posixes,
-                                                    only_utf8,
-                                                    not_utf8,
-                                                    only_utf8_locale,
-                                                    invert);
-
-    /* If have to take the output as-is, just do that */
-    if (! inverting_allowed) {
-        if (as_is_display) {
-            sv_catsv(sv, as_is_display);
-            SvREFCNT_dec_NN(as_is_display);
-        }
-    }
-    else { /* But otherwise, create the output again on the inverted input, and
-              use whichever version is shorter */
-
-        int inverted_bias, as_is_bias;
-
-        /* We will apply our bias to whichever of the results doesn't have
-         * the '^' */
-        if (invert) {
-            invert = FALSE;
-            as_is_bias = bias;
-            inverted_bias = 0;
-        }
-        else {
-            invert = TRUE;
-            as_is_bias = 0;
-            inverted_bias = bias;
-        }
-
-        /* Now invert each of the lists that contribute to the output,
-         * excluding from the result things outside the possible range */
-
-        /* For the unconditional inversion list, we have to add in all the
-         * conditional code points, so that when inverted, they will be gone
-         * from it */
-        _invlist_union(only_utf8, invlist, &invlist);
-        _invlist_union(not_utf8, invlist, &invlist);
-        _invlist_union(only_utf8_locale, invlist, &invlist);
-        _invlist_invert(invlist);
-        _invlist_intersection(invlist, PL_InBitmap, &invlist);
-
-        if (only_utf8) {
-            _invlist_invert(only_utf8);
-            _invlist_intersection(only_utf8, PL_UpperLatin1, &only_utf8);
-        }
-        else if (not_utf8) {
-
-            /* If a code point matches iff the target string is not in UTF-8,
-             * then complementing the result has it not match iff not in UTF-8,
-             * which is the same thing as matching iff it is UTF-8. */
-            only_utf8 = not_utf8;
-            not_utf8 = NULL;
-        }
-
-        if (only_utf8_locale) {
-            _invlist_invert(only_utf8_locale);
-            _invlist_intersection(only_utf8_locale,
-                                  PL_InBitmap,
-                                  &only_utf8_locale);
-        }
-
-        inverted_display = put_charclass_bitmap_innards_common(
-                                            invlist,
-                                            posixes,
-                                            only_utf8,
-                                            not_utf8,
-                                            only_utf8_locale, invert);
-
-        /* Use the shortest representation, taking into account our bias
-         * against showing it inverted */
-        if (   inverted_display
-            && (   ! as_is_display
-                || (  SvCUR(inverted_display) + inverted_bias
-                    < SvCUR(as_is_display)    + as_is_bias)))
-        {
-            sv_catsv(sv, inverted_display);
-        }
-        else if (as_is_display) {
-            sv_catsv(sv, as_is_display);
-        }
-
-        SvREFCNT_dec(as_is_display);
-        SvREFCNT_dec(inverted_display);
-    }
-
-    SvREFCNT_dec_NN(invlist);
-    SvREFCNT_dec(only_utf8);
-    SvREFCNT_dec(not_utf8);
-    SvREFCNT_dec(posixes);
-    SvREFCNT_dec(only_utf8_locale);
-
-    return SvCUR(sv) > orig_sv_cur;
-}
-
-#define CLEAR_OPTSTART                                                       \
-    if (optstart) STMT_START {                                               \
-        DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_                                           \
-                              " (%" IVdf " nodes)\n", (IV)(node - optstart))); \
-        optstart=NULL;                                                       \
-    } STMT_END
-
-#define DUMPUNTIL(b,e)                                                       \
-                    CLEAR_OPTSTART;                                          \
-                    node=dumpuntil(r,start,(b),(e),last,sv,indent+1,depth+1);
-
-STATIC const regnode *
-S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node,
-            const regnode *last, const regnode *plast,
-            SV* sv, I32 indent, U32 depth)
-{
-    U8 op = PSEUDO;	/* Arbitrary non-END op. */
-    const regnode *next;
-    const regnode *optstart= NULL;
-
-    RXi_GET_DECL(r, ri);
-    DECLARE_AND_GET_RE_DEBUG_FLAGS;
-
-    PERL_ARGS_ASSERT_DUMPUNTIL;
-
-#ifdef DEBUG_DUMPUNTIL
-    Perl_re_printf( aTHX_  "--- %d : %d - %d - %d\n", indent, node-start,
-        last ? last-start : 0, plast ? plast-start : 0);
-#endif
-
-    if (plast && plast < last)
-        last= plast;
-
-    while (PL_regkind[op] != END && (!last || node < last)) {
-        assert(node);
-        /* While that wasn't END last time... */
-        NODE_ALIGN(node);
-        op = OP(node);
-        if (op == CLOSE || op == SRCLOSE || op == WHILEM)
-            indent--;
-        next = regnext((regnode *)node);
-
-        /* Where, what. */
-        if (OP(node) == OPTIMIZED) {
-            if (!optstart && RE_DEBUG_FLAG(RE_DEBUG_COMPILE_OPTIMISE))
-                optstart = node;
-            else
-                goto after_print;
-        } else
-            CLEAR_OPTSTART;
-
-        regprop(r, sv, node, NULL, NULL);
-        Perl_re_printf( aTHX_  "%4" IVdf ":%*s%s", (IV)(node - start),
-                      (int)(2*indent + 1), "", SvPVX_const(sv));
-
-        if (OP(node) != OPTIMIZED) {
-            if (next == NULL)		/* Next ptr. */
-                Perl_re_printf( aTHX_  " (0)");
-            else if (PL_regkind[(U8)op] == BRANCH
-                     && PL_regkind[OP(next)] != BRANCH )
-                Perl_re_printf( aTHX_  " (FAIL)");
-            else
-                Perl_re_printf( aTHX_  " (%" IVdf ")", (IV)(next - start));
-            Perl_re_printf( aTHX_ "\n");
-        }
-
-      after_print:
-        if (PL_regkind[(U8)op] == BRANCHJ) {
-            assert(next);
-            {
-                const regnode *nnode = (OP(next) == LONGJMP
-                                       ? regnext((regnode *)next)
-                                       : next);
-                if (last && nnode > last)
-                    nnode = last;
-                DUMPUNTIL(NEXTOPER(NEXTOPER(node)), nnode);
-            }
-        }
-        else if (PL_regkind[(U8)op] == BRANCH) {
-            assert(next);
-            DUMPUNTIL(NEXTOPER(node), next);
-        }
-        else if ( PL_regkind[(U8)op]  == TRIE ) {
-            const regnode *this_trie = node;
-            const char op = OP(node);
-            const U32 n = ARG(node);
-            const reg_ac_data * const ac = op>=AHOCORASICK ?
-               (reg_ac_data *)ri->data->data[n] :
-               NULL;
-            const reg_trie_data * const trie =
-                (reg_trie_data*)ri->data->data[op<AHOCORASICK ? n : ac->trie];
-#ifdef DEBUGGING
-            AV *const trie_words
-                           = MUTABLE_AV(ri->data->data[n + TRIE_WORDS_OFFSET]);
-#endif
-            const regnode *nextbranch= NULL;
-            I32 word_idx;
-            SvPVCLEAR(sv);
-            for (word_idx= 0; word_idx < (I32)trie->wordcount; word_idx++) {
-                SV ** const elem_ptr = av_fetch(trie_words, word_idx, 0);
-
-                Perl_re_indentf( aTHX_  "%s ",
-                    indent+3,
-                    elem_ptr
-                    ? pv_pretty(sv, SvPV_nolen_const(*elem_ptr),
-                                SvCUR(*elem_ptr), PL_dump_re_max_len,
-                                PL_colors[0], PL_colors[1],
-                                (SvUTF8(*elem_ptr)
-                                 ? PERL_PV_ESCAPE_UNI
-                                 : 0)
-                                | PERL_PV_PRETTY_ELLIPSES
-                                | PERL_PV_PRETTY_LTGT
-                            )
-                    : "???"
-                );
-                if (trie->jump) {
-                    U16 dist= trie->jump[word_idx+1];
-                    Perl_re_printf( aTHX_  "(%" UVuf ")\n",
-                               (UV)((dist ? this_trie + dist : next) - start));
-                    if (dist) {
-                        if (!nextbranch)
-                            nextbranch= this_trie + trie->jump[0];
-                        DUMPUNTIL(this_trie + dist, nextbranch);
-                    }
-                    if (nextbranch && PL_regkind[OP(nextbranch)]==BRANCH)
-                        nextbranch= regnext((regnode *)nextbranch);
-                } else {
-                    Perl_re_printf( aTHX_  "\n");
-                }
-            }
-            if (last && next > last)
-                node= last;
-            else
-                node= next;
-        }
-        else if ( op == CURLY ) {   /* "next" might be very big: optimizer */
-            DUMPUNTIL(NEXTOPER(node) + EXTRA_STEP_2ARGS,
-                    NEXTOPER(node) + EXTRA_STEP_2ARGS + 1);
-        }
-        else if (PL_regkind[(U8)op] == CURLY && op != CURLYX) {
-            assert(next);
-            DUMPUNTIL(NEXTOPER(node) + EXTRA_STEP_2ARGS, next);
-        }
-        else if ( op == PLUS || op == STAR) {
-            DUMPUNTIL(NEXTOPER(node), NEXTOPER(node) + 1);
-        }
-        else if (PL_regkind[(U8)op] == EXACT || op == ANYOFHs) {
-            /* Literal string, where present. */
-            node += NODE_SZ_STR(node) - 1;
-            node = NEXTOPER(node);
-        }
-        else {
-            node = NEXTOPER(node);
-            node += regarglen[(U8)op];
-        }
-        if (op == CURLYX || op == OPEN || op == SROPEN)
-            indent++;
-    }
-    CLEAR_OPTSTART;
-#ifdef DEBUG_DUMPUNTIL
-    Perl_re_printf( aTHX_  "--- %d\n", (int)indent);
-#endif
-    return node;
-}
-
-#endif	/* DEBUGGING */
-
 #ifndef PERL_IN_XSUB_RE
 
 #  include "uni_keywords.h"
@@ -23578,39 +13778,39 @@ Perl_init_uniprops(pTHX)
 
     /* Set up the inversion list interpreter-level variables */
 
-    PL_XPosix_ptrs[_CC_ASCII] = _new_invlist_C_array(uni_prop_ptrs[UNI_ASCII]);
-    PL_XPosix_ptrs[_CC_ALPHANUMERIC] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXALNUM]);
-    PL_XPosix_ptrs[_CC_ALPHA] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXALPHA]);
-    PL_XPosix_ptrs[_CC_BLANK] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXBLANK]);
-    PL_XPosix_ptrs[_CC_CASED] =  _new_invlist_C_array(uni_prop_ptrs[UNI_CASED]);
-    PL_XPosix_ptrs[_CC_CNTRL] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXCNTRL]);
-    PL_XPosix_ptrs[_CC_DIGIT] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXDIGIT]);
-    PL_XPosix_ptrs[_CC_GRAPH] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXGRAPH]);
-    PL_XPosix_ptrs[_CC_LOWER] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXLOWER]);
-    PL_XPosix_ptrs[_CC_PRINT] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXPRINT]);
-    PL_XPosix_ptrs[_CC_PUNCT] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXPUNCT]);
-    PL_XPosix_ptrs[_CC_SPACE] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXSPACE]);
-    PL_XPosix_ptrs[_CC_UPPER] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXUPPER]);
-    PL_XPosix_ptrs[_CC_VERTSPACE] = _new_invlist_C_array(uni_prop_ptrs[UNI_VERTSPACE]);
-    PL_XPosix_ptrs[_CC_WORDCHAR] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXWORD]);
-    PL_XPosix_ptrs[_CC_XDIGIT] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXXDIGIT]);
-
-    PL_Posix_ptrs[_CC_ASCII] = _new_invlist_C_array(uni_prop_ptrs[UNI_ASCII]);
-    PL_Posix_ptrs[_CC_ALPHANUMERIC] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXALNUM]);
-    PL_Posix_ptrs[_CC_ALPHA] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXALPHA]);
-    PL_Posix_ptrs[_CC_BLANK] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXBLANK]);
-    PL_Posix_ptrs[_CC_CASED] = PL_Posix_ptrs[_CC_ALPHA];
-    PL_Posix_ptrs[_CC_CNTRL] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXCNTRL]);
-    PL_Posix_ptrs[_CC_DIGIT] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXDIGIT]);
-    PL_Posix_ptrs[_CC_GRAPH] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXGRAPH]);
-    PL_Posix_ptrs[_CC_LOWER] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXLOWER]);
-    PL_Posix_ptrs[_CC_PRINT] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXPRINT]);
-    PL_Posix_ptrs[_CC_PUNCT] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXPUNCT]);
-    PL_Posix_ptrs[_CC_SPACE] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXSPACE]);
-    PL_Posix_ptrs[_CC_UPPER] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXUPPER]);
-    PL_Posix_ptrs[_CC_VERTSPACE] = NULL;
-    PL_Posix_ptrs[_CC_WORDCHAR] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXWORD]);
-    PL_Posix_ptrs[_CC_XDIGIT] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXXDIGIT]);
+    PL_XPosix_ptrs[CC_ASCII_] = _new_invlist_C_array(uni_prop_ptrs[UNI_ASCII]);
+    PL_XPosix_ptrs[CC_ALPHANUMERIC_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXALNUM]);
+    PL_XPosix_ptrs[CC_ALPHA_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXALPHA]);
+    PL_XPosix_ptrs[CC_BLANK_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXBLANK]);
+    PL_XPosix_ptrs[CC_CASED_] =  _new_invlist_C_array(uni_prop_ptrs[UNI_CASED]);
+    PL_XPosix_ptrs[CC_CNTRL_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXCNTRL]);
+    PL_XPosix_ptrs[CC_DIGIT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXDIGIT]);
+    PL_XPosix_ptrs[CC_GRAPH_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXGRAPH]);
+    PL_XPosix_ptrs[CC_LOWER_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXLOWER]);
+    PL_XPosix_ptrs[CC_PRINT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXPRINT]);
+    PL_XPosix_ptrs[CC_PUNCT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXPUNCT]);
+    PL_XPosix_ptrs[CC_SPACE_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXSPACE]);
+    PL_XPosix_ptrs[CC_UPPER_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXUPPER]);
+    PL_XPosix_ptrs[CC_VERTSPACE_] = _new_invlist_C_array(uni_prop_ptrs[UNI_VERTSPACE]);
+    PL_XPosix_ptrs[CC_WORDCHAR_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXWORD]);
+    PL_XPosix_ptrs[CC_XDIGIT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_XPOSIXXDIGIT]);
+
+    PL_Posix_ptrs[CC_ASCII_] = _new_invlist_C_array(uni_prop_ptrs[UNI_ASCII]);
+    PL_Posix_ptrs[CC_ALPHANUMERIC_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXALNUM]);
+    PL_Posix_ptrs[CC_ALPHA_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXALPHA]);
+    PL_Posix_ptrs[CC_BLANK_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXBLANK]);
+    PL_Posix_ptrs[CC_CASED_] = PL_Posix_ptrs[CC_ALPHA_];
+    PL_Posix_ptrs[CC_CNTRL_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXCNTRL]);
+    PL_Posix_ptrs[CC_DIGIT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXDIGIT]);
+    PL_Posix_ptrs[CC_GRAPH_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXGRAPH]);
+    PL_Posix_ptrs[CC_LOWER_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXLOWER]);
+    PL_Posix_ptrs[CC_PRINT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXPRINT]);
+    PL_Posix_ptrs[CC_PUNCT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXPUNCT]);
+    PL_Posix_ptrs[CC_SPACE_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXSPACE]);
+    PL_Posix_ptrs[CC_UPPER_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXUPPER]);
+    PL_Posix_ptrs[CC_VERTSPACE_] = NULL;
+    PL_Posix_ptrs[CC_WORDCHAR_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXWORD]);
+    PL_Posix_ptrs[CC_XDIGIT_] = _new_invlist_C_array(uni_prop_ptrs[UNI_POSIXXDIGIT]);
 
     PL_GCB_invlist = _new_invlist_C_array(_Perl_GCB_invlist);
     PL_SB_invlist = _new_invlist_C_array(_Perl_SB_invlist);
@@ -24377,8 +14577,6 @@ S_parse_uniprop_string(pTHX_
     } /* End of parsing through the lhs of the property name (or all of it if
          no rhs) */
 
-#  define STRLENs(s)  (sizeof("" s "") - 1)
-
     /* If there is a single package name 'utf8::', it is ambiguous.  It could
      * be for a user-defined property, or it could be a Unicode property, as
      * all of them are considered to be for that package.  For the purposes of
@@ -24415,7 +14613,7 @@ S_parse_uniprop_string(pTHX_
             &&  name[i] != '+'
             &&  name[i] != '_'
             &&  name[i] != '{'
-                /* A backslash means the real delimitter is the next character,
+                /* A backslash means the real delimiter is the next character,
                  * but it must be punctuation */
             && (name[i] != '\\' || (i < name_len && isPUNCT_A(name[i+1]))))
         {
@@ -24434,7 +14632,7 @@ S_parse_uniprop_string(pTHX_
                 const char * const * prop_values;
                 bool escaped = 0;
 
-                /* Backslash => delimitter is the character following.  We
+                /* Backslash => delimiter is the character following.  We
                  * already checked that it is punctuation */
                 if (open == '\\') {
                     open = name[i++];
@@ -24683,15 +14881,15 @@ S_parse_uniprop_string(pTHX_
                 }
 
                 this_string = newAV();
-                av_push(this_string, newSVuv(cp));
+                av_push_simple(this_string, newSVuv(cp));
 
                 do {
                     cp = valid_utf8_to_uvchr((U8 *) remaining, &character_len);
-                    av_push(this_string, newSVuv(cp));
+                    av_push_simple(this_string, newSVuv(cp));
                     remaining += character_len;
                 } while (remaining < SvEND(character));
 
-                av_push(*strings, (SV *) this_string);
+                av_push_simple(*strings, (SV *) this_string);
             }
 
             return prop_definition;
@@ -24900,7 +15098,7 @@ S_parse_uniprop_string(pTHX_
         &&  name[non_pkg_begin+0] == 'I'
         && (name[non_pkg_begin+1] == 'n' || name[non_pkg_begin+1] == 's'))
     {
-        /* Names that start with In have different characterstics than those
+        /* Names that start with In have different characteristics than those
          * that start with Is */
         if (name[non_pkg_begin+1] == 's') {
             starts_with_Is = TRUE;
@@ -25466,7 +15664,7 @@ S_parse_uniprop_string(pTHX_
     if (table_index > MAX_UNI_KEYWORD_INDEX) {
         Size_t warning_offset = table_index / MAX_UNI_KEYWORD_INDEX;
         table_index %= MAX_UNI_KEYWORD_INDEX;
-        Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
+        Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED__UNICODE_PROPERTY_NAME),
                 "Use of '%.*s' in \\p{} or \\P{} is deprecated because: %s",
                 (int) name_len, name,
                 get_deprecated_property_msg(warning_offset));
@@ -25751,9 +15949,9 @@ S_handle_names_wildcard(pTHX_ const char
              * so we could match anywhere in that string.  We have to rule out
              * matching a code point line */
             char * this_name_start = all_names_start
-                                                + RX_OFFS(subpattern_re)->start;
+                                                + RX_OFFS_START(subpattern_re,0);
             char * this_name_end   = all_names_start
-                                                + RX_OFFS(subpattern_re)->end;
+                                                + RX_OFFS_END(subpattern_re,0);
             char * cp_start;
             char * cp_end;
             UV cp = 0;      /* Silences some compilers */
@@ -25842,7 +16040,7 @@ S_handle_names_wildcard(pTHX_ const char
                     }
 
                     is_multi = TRUE;
-                    av_push(this_string, newSVuv(cp));
+                    av_push_simple(this_string, newSVuv(cp));
                 }
             }
 
@@ -25851,7 +16049,7 @@ S_handle_names_wildcard(pTHX_ const char
                     *strings = newAV();
                 }
 
-                av_push(*strings, (SV *) this_string);
+                av_push_simple(*strings, (SV *) this_string);
             }
             else {  /* Only a single code point */
                 *prop_definition = add_cp_to_invlist(*prop_definition, cp);
Index: gnu/usr.bin/perl/regcomp.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regcomp.h,v
diff -u -p -a -u -p -r1.20 regcomp.h
--- gnu/usr.bin/perl/regcomp.h	15 Feb 2023 01:38:21 -0000	1.20
+++ gnu/usr.bin/perl/regcomp.h	21 Feb 2024 15:47:03 -0000
@@ -10,8 +10,65 @@
 
 #if ! defined(PERL_REGCOMP_H_) && (   defined(PERL_CORE)            \
                                    || defined(PERL_EXT_RE_BUILD))
+
 #define PERL_REGCOMP_H_
 
+#ifndef RE_PESSIMISTIC_PARENS
+/* Define this to 1 if you want to enable a really aggressive and
+ * inefficient paren cleanup during backtracking which should ensure
+ * correctness. Doing so should fix any bugs related to backreferences,
+ * at the cost of saving and restoring paren state far more than we
+ * necessarily must.
+ *
+ * When it is set to 0 we try to optimize away unnecessary save/restore
+ * operations which could potentially introduce bugs. We should pass our
+ * test suite with this as 0, but setting it to 1 might fix cases we do
+ * not currently test for. If setting this to 1 does fix a bug, then
+ * review the code related to storing and restoring paren state.
+ *
+ * See comment for VOLATILE_REF below for more details of a
+ * related case.
+ */
+#define RE_PESSIMISTIC_PARENS 0
+#endif
+
+/* a VOLATILE_REF is a ref which is inside of a capturing group and it
+ * refers to the capturing group it is inside of or to a following capture
+ * group which might be affected by what this capture group matches, and
+ * thus the ref requires additional backtracking support. For example:
+ *
+ *  "xa=xaaa" =~ /^(xa|=?\1a){2}\z/
+ *
+ * should not match.  In older perls the matching process would go like this:
+ *
+ * Iter 1: "xa" matches in capture group.
+ * Iter 2: "xa" does not match, goes to next alternation.
+ *         "=" matches in =?
+ *         Bifurcates here (= might not match)
+ *         "xa" matches via \1 from previous iteration
+ *         "a" matches via "a" at end of second alternation
+ *         # at this point $1 is "=xaa"
+ *         \z  does not match -> backtracks.
+ * Backtracks to Iter 2 "=?" Bifurcation point where we have NOT matched "="
+ *         "=xaa" matches via \1 (as $1 has not been reset)
+ *         "a" matches via "a" at end of second alternation
+ *         "\z" does match. -> Pattern matches overall.
+ *
+ * What should happen and now does happen instead is:
+ *
+ * Backtracks to Iter 2 "=?" Bifurcation point where we have NOT matched "=",
+ *         \1 does not match as it is "xa" (as $1 was reset when backtracked)
+ *         and the current character in the string is an "="
+ *
+ * The fact that \1 in this case is marked as a VOLATILE_REF is what ensures
+ * that we reset the capture buffer properly.
+ *
+ * See 59db194299c94c6707095797c3df0e2f67ff82b2
+ * and 38508ce8fc3a1bd12a3bb65e9d4ceb9b396a18db
+ * for more details.
+ */
+#define VOLATILE_REF 1
+
 #include "regcharclass.h"
 
 /* Convert branch sequences to more efficient trie ops? */
@@ -81,6 +138,7 @@ typedef struct regexp_internal {
 #define RXi_SET(x,y) (x)->pprivate = (void*)(y)   
 #define RXi_GET(x)   ((regexp_internal *)((x)->pprivate))
 #define RXi_GET_DECL(r,ri) regexp_internal *ri = RXi_GET(r)
+#define RXi_GET_DECL_NULL(r,ri) regexp_internal *ri = (r) ? RXi_GET(r) : NULL
 /*
  * Flags stored in regexp->intflags
  * These are used only internally to the regexp engine
@@ -106,6 +164,7 @@ typedef struct regexp_internal {
 #define PREGf_ANCH_SBOL         0x00000800
 #define PREGf_ANCH_GPOS         0x00001000
 #define PREGf_RECURSE_SEEN      0x00002000
+#define PREGf_PESSIMIZE_SEEN    0x00004000
 
 #define PREGf_ANCH              \
     ( PREGf_ANCH_SBOL | PREGf_ANCH_GPOS | PREGf_ANCH_MBOL )
@@ -119,16 +178,36 @@ typedef struct regexp_internal {
  * change things without care. If you look at regexp.h you will see it
  * contains this:
  *
+ * union regnode_head {
+ *   struct {
+ *     union {
+ *       U8 flags;
+ *       U8 str_len_u8;
+ *       U8 first_byte;
+ *     } u_8;
+ *     U8  type;
+ *     U16 next_off;
+ *   } data;
+ *   U32 data_u32;
+ * };
+ *
  * struct regnode {
- *   U8  flags;
- *   U8  type;
- *   U16 next_off;
+ *   union regnode_head head;
  * };
  *
- * This structure is the base unit of elements in the regexp program. When
- * we increment our way through the program we increment by the size of this
- * structure, and in all cases where regnode sizing is considered it is in
- * units of this structure.
+ * Which really is a complicated and alignment friendly version of
+ *
+ *  struct {
+ *    U8  flags;
+ *    U8  type;
+ *    U16 next_off;
+ *  };
+ *
+ * This structure is the base unit of elements in the regexp program.
+ * When we increment our way through the program we increment by the
+ * size of this structure (32 bits), and in all cases where regnode
+ * sizing is considered it is in units of this structure. All regnodes
+ * have a union regnode_head as their first parameter.
  *
  * This implies that no regnode style structure should contain 64 bit
  * aligned members. Since the base regnode is 32 bits any member might
@@ -151,36 +230,40 @@ typedef struct regexp_internal {
  * we already have support for in the data array.
  */
 
+union regnode_arg {
+    I32 i32;
+    U32 u32;
+    struct {
+        U16 u16a;
+        U16 u16b;
+    } hi_lo;
+};
+
+
 struct regnode_string {
-    U8	str_len;
-    U8  type;
-    U16 next_off;
+    union regnode_head head;
     char string[1];
 };
 
 struct regnode_lstring { /* Constructed this way to keep the string aligned. */
-    U8	flags;
-    U8  type;
-    U16 next_off;
-    U32 str_len;    /* Only 18 bits allowed before would overflow 'next_off' */
+    union regnode_head head;
+    U32 str_len_u32;    /* Only 18 bits allowed before would overflow 'next_off' */
     char string[1];
 };
 
 struct regnode_anyofhs { /* Constructed this way to keep the string aligned. */
-    U8	str_len;
-    U8  type;
-    U16 next_off;
-    U32 arg1;                           /* set by set_ANYOF_arg() */
+    union regnode_head head;
+    union regnode_arg arg1;
     char string[1];
 };
 
-/* Argument bearing node - workhorse, 
-   arg1 is often for the data field */
+/* Argument bearing node - workhorse, ARG1u() is often used for the data field
+ * Can store either a signed 32 bit value via ARG1i() or unsigned 32 bit value
+ * via ARG1u(), or two unsigned 16 bit values via ARG1a() or ARG1b()
+ */
 struct regnode_1 {
-    U8	flags;
-    U8  type;
-    U16 next_off;
-    U32 arg1;
+    union regnode_head head;
+    union regnode_arg arg1;
 };
 
 /* Node whose argument is 'SV *'.  This needs to be used very carefully in
@@ -199,31 +282,48 @@ struct regnode_1 {
  * then use inline functions to copy the data in or out.
  * */
 struct regnode_p {
-    U8	flags;
-    U8  type;
-    U16 next_off;
+    union regnode_head head;
     char arg1_sv_ptr_bytes[sizeof(SV *)];
 };
 
-/* Similar to a regnode_1 but with an extra signed argument */
-struct regnode_2L {
-    U8	flags;
-    U8  type;
-    U16 next_off;
-    U32 arg1;
-    I32 arg2;
+/* "Two Node" - similar to a regnode_1 but with space for an extra 32
+ * bit value, or two 16 bit valus. The first fields must match regnode_1.
+ * Extra field can be accessed as (U32)ARG2u() (I32)ARG2i() or (U16)ARG2a()
+ * and (U16)ARG2b() */
+struct regnode_2 {
+    union regnode_head head;
+    union regnode_arg arg1;
+    union regnode_arg arg2;
 };
 
-/* 'Two field' -- Two 16 bit unsigned args */
-struct regnode_2 {
-    U8	flags;
-    U8  type;
-    U16 next_off;
-    U16 arg1;
-    U16 arg2;
+/* "Three Node" - similar to a regnode_2 but with space for an additional
+ * 32 bit value, or two 16 bit values. The first fields must match regnode_2.
+ * The extra field can be accessed as (U32)ARG3u() (I32)ARG3i() or (U16)ARG3a()
+ * and (U16)ARG3b().
+ * Currently used for the CURLY style regops used to represent quantifers,
+ * storing the min and of the quantifier via ARG1i() and ARG2i(), along with
+ * ARG3a() and ARG3b() which are used to store information about the number of
+ * parens before and inside the quantified expression. */
+struct regnode_3 {
+    union regnode_head head;
+    union regnode_arg arg1;
+    union regnode_arg arg2;
+    union regnode_arg arg3;
 };
 
-#define ANYOF_BITMAP_SIZE	(NUM_ANYOF_CODE_POINTS / 8)   /* 8 bits/Byte */
+#define REGNODE_BBM_BITMAP_LEN                                                  \
+                      /* 6 info bits requires 64 bits; 5 => 32 */               \
+                    ((1 << (UTF_CONTINUATION_BYTE_INFO_BITS)) / CHARBITS)
+
+/* Used for matching any two-byte UTF-8 character whose start byte is known.
+ * The array is a bitmap capable of representing any possible continuation
+ * byte. */
+struct regnode_bbm {
+    union regnode_head head;
+    U8 bitmap[REGNODE_BBM_BITMAP_LEN];
+};
+
+#define ANYOF_BITMAP_SIZE	(NUM_ANYOF_CODE_POINTS / CHARBITS)
 
 /* Note that these form structs which are supersets of the next smaller one, by
  * appending fields.  Alignment problems can occur if one of those optional
@@ -235,22 +335,18 @@ struct regnode_2 {
  * the code that inserts and deletes regnodes.  The basic single-argument
  * regnode has a U32, which is what reganode() allocates as a unit.  Therefore
  * no field can require stricter alignment than U32. */
-
+    
 /* also used by trie */
 struct regnode_charclass {
-    U8	flags;
-    U8  type;
-    U16 next_off;
-    U32 arg1;                           /* set by set_ANYOF_arg() */
+    union regnode_head head;
+    union regnode_arg arg1;
     char bitmap[ANYOF_BITMAP_SIZE];	/* only compile-time */
 };
 
 /* has runtime (locale) \d, \w, ..., [:posix:] classes */
 struct regnode_charclass_posixl {
-    U8	flags;                      /* ANYOF_MATCHES_POSIXL bit must go here */
-    U8  type;
-    U16 next_off;
-    U32 arg1;
+    union regnode_head head;
+    union regnode_arg arg1;
     char bitmap[ANYOF_BITMAP_SIZE];		/* both compile-time ... */
     U32 classflags;	                        /* and run-time */
 };
@@ -269,10 +365,8 @@ struct regnode_charclass_posixl {
  * never a next node.
  */
 struct regnode_ssc {
-    U8	flags;                      /* ANYOF_MATCHES_POSIXL bit must go here */
-    U8  type;
-    U16 next_off;
-    U32 arg1;
+    union regnode_head head;
+    union regnode_arg arg1;
     char bitmap[ANYOF_BITMAP_SIZE];	/* both compile-time ... */
     U32 classflags;	                /* ... and run-time */
 
@@ -289,31 +383,34 @@ struct regnode_ssc {
  *  to 12 regnode units on 32-bit systems, (hence the minimum this can be (if
  *  not 0) is 11 there.  Even if things get tightly packed on a 64-bit system,
  *  it still would be more than 1. */
-#define set_ANYOF_SYNTHETIC(n) STMT_START{ OP(n) = ANYOF;              \
-                                           NEXT_OFF(n) = 1;            \
-                               } STMT_END
-#define is_ANYOF_SYNTHETIC(n) (PL_regkind[OP(n)] == ANYOF && NEXT_OFF(n) == 1)
+#define set_ANYOF_SYNTHETIC(n)  \
+    STMT_START{                 \
+        OP(n) = ANYOF;          \
+        NEXT_OFF(n) = 1;        \
+    } STMT_END
+
+#define is_ANYOF_SYNTHETIC(n) (REGNODE_TYPE(OP(n)) == ANYOF && NEXT_OFF(n) == 1)
 
 /* XXX fix this description.
    Impose a limit of REG_INFTY on various pattern matching operations
    to limit stack growth and to avoid "infinite" recursions.
 */
-/* The default size for REG_INFTY is U16_MAX, which is the same as
-   USHORT_MAX (see perl.h).  Unfortunately U16 isn't necessarily 16 bits
-   (see handy.h).  On the Cray C90, sizeof(short)==4 and hence U16_MAX is
-   ((1<<32)-1), while on the Cray T90, sizeof(short)==8 and U16_MAX is
-   ((1<<64)-1).  To limit stack growth to reasonable sizes, supply a
+/* The default size for REG_INFTY is I32_MAX, which is the same as UINT_MAX
+   (see perl.h). Unfortunately I32 isn't necessarily 32 bits (see handy.h).
+   On the Cray C90, or Cray T90, I32_MAX is considerably larger than it
+   might be elsewhere. To limit stack growth to reasonable sizes, supply a
    smaller default.
         --Andy Dougherty  11 June 1998
+        --Amended by Yves Orton 15 Jan 2023
 */
-#if SHORTSIZE > 2
+#if INTSIZE > 4
 #  ifndef REG_INFTY
-#    define REG_INFTY  nBIT_UMAX(16)
+#    define REG_INFTY  nBIT_IMAX(32)
 #  endif
 #endif
 
 #ifndef REG_INFTY
-#  define REG_INFTY U16_MAX
+#  define REG_INFTY I32_MAX
 #endif
 
 #define ARG_VALUE(arg) (arg)
@@ -323,23 +420,48 @@ struct regnode_ssc {
 #undef ARG1
 #undef ARG2
 
-#define ARG(p) ARG_VALUE(ARG_LOC(p))
+/* convention: each arg is is 32 bits, with the "u" suffix
+ * being unsigned 32 bits, the "i" suffix being signed 32 bits,
+ * and the "a" and "b" suffixes being unsigned 16 bit fields.
+ *
+ * We provide all 4 macros for each case for consistency, even
+ * though they arent all used.
+ */
+
+#define ARG1u(p) ARG_VALUE(ARG1u_LOC(p))
+#define ARG1i(p) ARG_VALUE(ARG1i_LOC(p))
+#define ARG1a(p) ARG_VALUE(ARG1a_LOC(p))
+#define ARG1b(p) ARG_VALUE(ARG1b_LOC(p))
+
+#define ARG2u(p) ARG_VALUE(ARG2u_LOC(p))
+#define ARG2i(p) ARG_VALUE(ARG2i_LOC(p))
+#define ARG2a(p) ARG_VALUE(ARG2a_LOC(p))
+#define ARG2b(p) ARG_VALUE(ARG2b_LOC(p))
+
+#define ARG3u(p) ARG_VALUE(ARG3u_LOC(p))
+#define ARG3i(p) ARG_VALUE(ARG3i_LOC(p))
+#define ARG3a(p) ARG_VALUE(ARG3a_LOC(p))
+#define ARG3b(p) ARG_VALUE(ARG3b_LOC(p))
+
 #define ARGp(p) ARGp_VALUE_inline(p)
-#define ARG1(p) ARG_VALUE(ARG1_LOC(p))
-#define ARG2(p) ARG_VALUE(ARG2_LOC(p))
-#define ARG2L(p) ARG_VALUE(ARG2L_LOC(p))
-
-#define ARG_SET(p, val) ARG__SET(ARG_LOC(p), (val))
-#define ARG1_SET(p, val) ARG__SET(ARG1_LOC(p), (val))
-#define ARG2_SET(p, val) ARG__SET(ARG2_LOC(p), (val))
-#define ARG2L_SET(p, val) ARG__SET(ARG2L_LOC(p), (val))
-#define ARGp_SET(p, val) ARGp_SET_inline((p),(val))
 
-#undef NEXT_OFF
-#undef NODE_ALIGN
+#define ARG1u_SET(p, val) ARG__SET(ARG1u_LOC(p), (val))
+#define ARG1i_SET(p, val) ARG__SET(ARG1i_LOC(p), (val))
+#define ARG1a_SET(p, val) ARG__SET(ARG1a_LOC(p), (val))
+#define ARG1b_SET(p, val) ARG__SET(ARG1b_LOC(p), (val))
+
+#define ARG2u_SET(p, val) ARG__SET(ARG2u_LOC(p), (val))
+#define ARG2i_SET(p, val) ARG__SET(ARG2i_LOC(p), (val))
+#define ARG2a_SET(p, val) ARG__SET(ARG2a_LOC(p), (val))
+#define ARG2b_SET(p, val) ARG__SET(ARG2b_LOC(p), (val))
+
+#define ARG3u_SET(p, val) ARG__SET(ARG3u_LOC(p), (val))
+#define ARG3i_SET(p, val) ARG__SET(ARG3i_LOC(p), (val))
+#define ARG3a_SET(p, val) ARG__SET(ARG3a_LOC(p), (val))
+#define ARG3b_SET(p, val) ARG__SET(ARG3b_LOC(p), (val))
+
+#define ARGp_SET(p, val) ARGp_SET_inline((p),(val))
 
-#define NEXT_OFF(p) ((p)->next_off)
-#define NODE_ALIGN(node)
 /* the following define was set to 0xde in 075abff3
  * as part of some linting logic. I have set it to 0
  * as otherwise in every place where we /might/ set flags
@@ -349,23 +471,32 @@ struct regnode_ssc {
  * is changed from 0 then at the very least make sure
  * that SBOL for /^/ sets the flags to 0 explicitly.
  * -- Yves */
-#define NODE_ALIGN_FILL(node) ((node)->flags = 0)
 
+#define NODE_ALIGN(node)
 #define SIZE_ALIGN NODE_ALIGN
 
 #undef OP
 #undef OPERAND
 #undef STRING
+#undef NEXT_OFF
+#undef NODE_ALIGN
 
-#define	OP(p)		((p)->type)
-#define FLAGS(p)	((p)->flags)	/* Caution: Doesn't apply to all      \
+#define NEXT_OFF(p)     ((p)->head.data.next_off)
+#define OP(p)           ((p)->head.data.type)
+#define STR_LEN_U8(p)   ((p)->head.data.u_8.str_len_u8)
+#define FIRST_BYTE(p)   ((p)->head.data.u_8.first_byte)
+#define FLAGS(p)        ((p)->head.data.u_8.flags) /* Caution: Doesn't apply to all      \
                                            regnode types.  For some, it's the \
                                            character set of the regnode */
-#define	STR_LENs(p)	(__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8)  \
-                                    ((struct regnode_string *)p)->str_len)
-#define	STRINGs(p)	(__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8)  \
+#define STR_LENs(p)	(__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8)  \
+                                    STR_LEN_U8((struct regnode_string *)p))
+#define STRINGs(p)	(__ASSERT_(OP(p) != LEXACT && OP(p) != LEXACT_REQ8)  \
                                     ((struct regnode_string *)p)->string)
-#define	OPERANDs(p)	STRINGs(p)
+#define OPERANDs(p)	STRINGs(p)
+
+#define PARNO(p)        ARG1u(p)          /* APPLIES for OPEN and CLOSE only */
+
+#define NODE_ALIGN_FILL(node) (FLAGS(node) = 0)
 
 /* Long strings.  Currently limited to length 18 bits, which handles a 262000
  * byte string.  The limiting factor is the 16 bit 'next_off' field, which
@@ -379,55 +510,158 @@ struct regnode_ssc {
  * node to be an ARG2L, using the second 32 bit field for the length, and not
  * using the flags nor next_off fields at all.  One could have an llstring node
  * and even an lllstring type. */
-#define	STR_LENl(p)	(__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8)  \
-                                    (((struct regnode_lstring *)p)->str_len))
-#define	STRINGl(p)	(__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8)  \
+#define STR_LENl(p)	(__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8)  \
+                                    (((struct regnode_lstring *)p)->str_len_u32))
+#define STRINGl(p)	(__ASSERT_(OP(p) == LEXACT || OP(p) == LEXACT_REQ8)  \
                                     (((struct regnode_lstring *)p)->string))
-#define	OPERANDl(p)	STRINGl(p)
+#define OPERANDl(p)	STRINGl(p)
 
-#define	STR_LEN(p)	((OP(p) == LEXACT || OP(p) == LEXACT_REQ8)           \
+#define STR_LEN(p)	((OP(p) == LEXACT || OP(p) == LEXACT_REQ8)           \
                                                ? STR_LENl(p) : STR_LENs(p))
-#define	STRING(p)	((OP(p) == LEXACT || OP(p) == LEXACT_REQ8)           \
+#define STRING(p)	((OP(p) == LEXACT || OP(p) == LEXACT_REQ8)           \
                                                ? STRINGl(p)  : STRINGs(p))
-#define	OPERAND(p)	STRING(p)
+#define OPERAND(p)	STRING(p)
 
 /* The number of (smallest) regnode equivalents that a string of length l bytes
- * occupies */
+ * occupies - Used by the REGNODE_AFTER() macros and functions. */
 #define STR_SZ(l)	(((l) + sizeof(regnode) - 1) / sizeof(regnode))
 
-/* The number of (smallest) regnode equivalents that the EXACTISH node 'p'
- * occupies */
-#define NODE_SZ_STR(p)	(STR_SZ(STR_LEN(p)) + 1 + regarglen[(p)->type])
-
 #define setSTR_LEN(p,v)                                                     \
     STMT_START{                                                             \
         if (OP(p) == LEXACT || OP(p) == LEXACT_REQ8)                        \
-            ((struct regnode_lstring *)(p))->str_len = (v);                 \
+            ((struct regnode_lstring *)(p))->str_len_u32 = (v);             \
         else                                                                \
-            ((struct regnode_string *)(p))->str_len = (v);                  \
+            STR_LEN_U8((struct regnode_string *)(p)) = (v);                 \
     } STMT_END
 
 #define ANYOFR_BASE_BITS    20
-#define ANYOFRbase(p)   (ARG(p) & nBIT_MASK(ANYOFR_BASE_BITS))
-#define ANYOFRdelta(p)  (ARG(p) >> ANYOFR_BASE_BITS)
+#define ANYOFRbase(p)   (ARG1u(p) & nBIT_MASK(ANYOFR_BASE_BITS))
+#define ANYOFRdelta(p)  (ARG1u(p) >> ANYOFR_BASE_BITS)
 
 #undef NODE_ALIGN
 #undef ARG_LOC
-#undef NEXTOPER
-#undef PREVOPER
 
-#define	NODE_ALIGN(node)
-#define	ARG_LOC(p)	(((struct regnode_1 *)p)->arg1)
+#define NODE_ALIGN(node)
 #define ARGp_BYTES_LOC(p)  (((struct regnode_p *)p)->arg1_sv_ptr_bytes)
-#define	ARG1_LOC(p)	(((struct regnode_2 *)p)->arg1)
-#define	ARG2_LOC(p)	(((struct regnode_2 *)p)->arg2)
-#define ARG2L_LOC(p)	(((struct regnode_2L *)p)->arg2)
+#define ARG1u_LOC(p)    (((struct regnode_1 *)p)->arg1.u32)
+#define ARG1i_LOC(p)    (((struct regnode_1 *)p)->arg1.i32)
+#define ARG1a_LOC(p)    (((struct regnode_1 *)p)->arg1.hi_lo.u16a)
+#define ARG1b_LOC(p)    (((struct regnode_1 *)p)->arg1.hi_lo.u16b)
+#define ARG2u_LOC(p)    (((struct regnode_2 *)p)->arg2.u32)
+#define ARG2i_LOC(p)    (((struct regnode_2 *)p)->arg2.i32)
+#define ARG2a_LOC(p)    (((struct regnode_2 *)p)->arg2.hi_lo.u16a)
+#define ARG2b_LOC(p)    (((struct regnode_2 *)p)->arg2.hi_lo.u16b)
+#define ARG3u_LOC(p)    (((struct regnode_3 *)p)->arg3.u32)
+#define ARG3i_LOC(p)    (((struct regnode_3 *)p)->arg3.i32)
+#define ARG3a_LOC(p)    (((struct regnode_3 *)p)->arg3.hi_lo.u16a)
+#define ARG3b_LOC(p)    (((struct regnode_3 *)p)->arg3.hi_lo.u16b)
 
+/* These should no longer be used directly in most cases. Please use
+ * the REGNODE_AFTER() macros instead. */
 #define NODE_STEP_REGNODE	1	/* sizeof(regnode)/sizeof(regnode) */
-#define EXTRA_STEP_2ARGS	EXTRA_SIZE(struct regnode_2)
 
-#define	NEXTOPER(p)	((p) + NODE_STEP_REGNODE)
-#define	PREVOPER(p)	((p) - NODE_STEP_REGNODE)
+/* Core macros for computing "the regnode after this one". See also
+ * Perl_regnode_after() in reginline.h
+ *
+ * At the struct level regnodes are a linked list, with each node pointing
+ * at the next (via offsets), usually via the C<next_off> field in the
+ * structure. Where there is a need for a node to have two children the
+ * immediate physical successor of the node in the compiled program is used
+ * to represent one of them. A good example is the BRANCH construct,
+ * consider the pattern C</head(?:[ab]foo|[cd]bar)tail/>
+ *
+ *      1: EXACT <head> (3)
+ *      3: BRANCH (8)
+ *      4:   ANYOFR[ab] (6)
+ *      6:   EXACT <foo> (14)
+ *      8: BRANCH (FAIL)
+ *      9:   ANYOFR[cd] (11)
+ *     11:   EXACT <bar> (14)
+ *     13: TAIL (14)
+ *     14: EXACT <tail> (16)
+ *     16: END (0)
+ *
+ * The numbers in parens at the end of each line show the "next_off" value
+ * for that regnode in the program. We can see that the C<next_off> of
+ * the first BRANCH node (#3) is the second BRANCH node (#8), and indicates
+ * where execution should go if the regnodes *following* the BRANCH node fail
+ * to accept the input string. Thus to find the "next BRANCH" we would do
+ * C<Perl_regnext()> and follow the C<next_off> pointer, and to find
+ * the "BRANCHes contents" we would use C<REGNODE_AFTER()>.
+ *
+ * Be aware that C<REGNODE_AFTER()> is not guaranteed to give a *useful*
+ * result once the regex peephole optimizer has run (it will be correct
+ * however!). By the time code in regexec.c executes various regnodes
+ * may have been optimized out of the C<next_off> chain. An example
+ * can be seen above, node 13 will never be reached during execution
+ * flow as it has been stitched out of the C<next_off> chain. Both 6 and
+ * 11 would have pointed at it during compilation, but it exists only to
+ * facilitate the construction of the BRANCH structure and is effectively
+ * a NOOP, and thus the optimizer adjusts the links so it is skipped
+ * from execution time flow. In regexec.c it is only safe to use
+ * REGNODE_AFTER() on specific node types.
+ *
+ * Conversely during compilation C<Perl_regnext()> may not work properly
+ * as the C<next_off> may not be known until "later", (such as in the
+ * case of BRANCH nodes) and thus in regcomp.c the REGNODE_AFTER() macro
+ * is used very heavily instead.
+ *
+ * There are several variants of the REGNODE_AFTER_xxx() macros which
+ * are intended for use in different situations depending on how
+ * confident the code is about what type of node it is trying to find a
+ * successor for.
+ *
+ * So for instance if you know you are dealing with a known node type of
+ * constant size then you should use REGNODE_AFTER_type(n,TYPE).
+ *
+ * If you have a regnode pointer and you know you are dealing with a
+ * regnode type of constant size and you have already extracted its
+ * opcode use: REGNODE_AFTER_opcode(n,OPCODE).
+ *
+ * If you have a regnode and you know it is variable size then you
+ * you can produce optimized code by using REGNODE_AFTER_varies(n).
+ *
+ * If you have a regnode pointer and nothing else use: REGNODE_AFTER(n)
+ * This is the safest option and wraps C<Perl_regnode_after()>. It
+ * should produce the correct result regardless of its argument. The
+ * other options only produce correct results under specific
+ * constraints.
+ */
+#define        REGNODE_AFTER_PLUS(p,extra)    ((p) + NODE_STEP_REGNODE + (extra))
+/* under DEBUGGING we check that all REGNODE_AFTER optimized macros did the
+ * same thing that Perl_regnode_after() would have done. Note that when
+ * not compiled under DEBUGGING the assert_() macro is empty. Thus we
+ * don't have to implement different versions for DEBUGGING and not DEBUGGING,
+ * and explains why all the macros use REGNODE_AFTER_PLUS_DEBUG() under the
+ * hood. */
+#define REGNODE_AFTER_PLUS_DEBUG(p,extra) \
+    (assert_(check_regnode_after(p,extra))  REGNODE_AFTER_PLUS((p),(extra)))
+
+/* find the regnode after this p by using the opcode we previously extracted
+ * with OP(p) */
+#define REGNODE_AFTER_opcode(p,op)          REGNODE_AFTER_PLUS_DEBUG((p),REGNODE_ARG_LEN(op))
+
+/* find the regnode after this p by using the size of the struct associated with
+ * the opcode for p. use this when you *know* that p is pointer to a given type*/
+#define REGNODE_AFTER_type(p,t)             REGNODE_AFTER_PLUS_DEBUG((p),EXTRA_SIZE(t))
+
+/* find the regnode after this p by using OP(p) to find the regnode type of p */
+#define REGNODE_AFTER_varies(p)            regnode_after(p,TRUE)
+
+/* find the regnode after this p by using OP(p) to find the regnode type of p */
+#define REGNODE_AFTER(p)            regnode_after(p,FALSE)
+
+
+/* REGNODE_BEFORE() is trickier to deal with in terms of validation, execution.
+ * All the places that use it assume that p will be one struct regnode large.
+ * So to validate it we do the math to go backwards and then validate that the
+ * type of regnode we landed on is actually one regnode large. In theory if
+ * things go wrong the opcode should be illegal or say the item should be larger
+ * than it is, etc. */
+#define        REGNODE_BEFORE_BASE(p)        ((p) - NODE_STEP_REGNODE)
+#define        REGNODE_BEFORE_BASE_DEBUG(p)        \
+    (assert_(check_regnode_after(REGNODE_BEFORE_BASE(p),0))  REGNODE_BEFORE_BASE(p))
+#define REGNODE_BEFORE(p) REGNODE_BEFORE_BASE_DEBUG(p)
 
 #define FILL_NODE(offset, op)                                           \
     STMT_START {                                                        \
@@ -439,24 +673,24 @@ struct regnode_ssc {
                     FILL_NODE(offset, op);                              \
                     (offset)++;                                         \
     } STMT_END
-#define FILL_ADVANCE_NODE_ARG(offset, op, arg)                          \
+#define FILL_ADVANCE_NODE_ARG1u(offset, op, arg)                        \
     STMT_START {                                                        \
-                    ARG_SET(REGNODE_p(offset), arg);                    \
+                    ARG1u_SET(REGNODE_p(offset), arg);                  \
                     FILL_ADVANCE_NODE(offset, op);                      \
                     /* This is used generically for other operations    \
                      * that have a longer argument */                   \
-                    (offset) += regarglen[op];                          \
+                    (offset) += REGNODE_ARG_LEN(op);                    \
     } STMT_END
-#define FILL_ADVANCE_NODE_ARGp(offset, op, arg)                          \
+#define FILL_ADVANCE_NODE_ARGp(offset, op, arg)                         \
     STMT_START {                                                        \
-                    ARGp_SET(REGNODE_p(offset), arg);                    \
+                    ARGp_SET(REGNODE_p(offset), arg);                   \
                     FILL_ADVANCE_NODE(offset, op);                      \
-                    (offset) += regarglen[op];                          \
+                    (offset) += REGNODE_ARG_LEN(op);                    \
     } STMT_END
-#define FILL_ADVANCE_NODE_2L_ARG(offset, op, arg1, arg2)                \
+#define FILL_ADVANCE_NODE_2ui_ARG(offset, op, arg1, arg2)               \
     STMT_START {                                                        \
-                    ARG_SET(REGNODE_p(offset), arg1);                   \
-                    ARG2L_SET(REGNODE_p(offset), arg2);                 \
+                    ARG1u_SET(REGNODE_p(offset), arg1);                 \
+                    ARG2i_SET(REGNODE_p(offset), arg2);                 \
                     FILL_ADVANCE_NODE(offset, op);                      \
                     (offset) += 2;                                      \
     } STMT_END
@@ -479,104 +713,137 @@ ARGp_SET_inline(struct regnode *node, SV
 
 #define REG_MAGIC 0234
 
-/* An ANYOF node is basically a bitmap with the index being a code point.  If
- * the bit for that code point is 1, the code point matches;  if 0, it doesn't
- * match (complemented if inverted).  There is an additional mechanism to deal
- * with cases where the bitmap is insufficient in and of itself.  This #define
- * indicates if the bitmap does fully represent what this ANYOF node can match.
- * The ARG is set to this special value (since 0, 1, ... are legal, but will
- * never reach this high). */
-#define ANYOF_ONLY_HAS_BITMAP	((U32) -1)
-
-/* When the bitmap isn't completely sufficient for handling the ANYOF node,
- * flags (in node->flags of the ANYOF node) get set to indicate this.  These
- * are perennially in short supply.  Beyond several cases where warnings need
- * to be raised under certain circumstances, currently, there are six cases
- * where the bitmap alone isn't sufficient.  We could use six flags to
- * represent the 6 cases, but to save flags bits, we play some games.  The
- * cases are:
- *
- *  1)  The bitmap has a compiled-in very finite size.  So something else needs
- *      to be used to specify if a code point that is too large for the bitmap
- *      actually matches.  The mechanism currently is an inversion
- *      list.  ANYOF_ONLY_HAS_BITMAP, described above, being TRUE indicates
- *      there are no matches of too-large code points.  But if it is FALSE,
- *      then almost certainly there are matches too large for the bitmap.  (The
- *      other cases, described below, either imply this one or are extremely
- *      rare in practice.)  So we can just assume that a too-large code point
- *      will need something beyond the bitmap if ANYOF_ONLY_HAS_BITMAP is
- *      FALSE, instead of having a separate flag for this.
- *  2)  A subset of item 1) is if all possible code points outside the bitmap
- *      match.  This is a common occurrence when the class is complemented,
- *      like /[^ij]/.  Therefore a bit is reserved to indicate this,
- *      rather than having an inversion list created,
- *      ANYOF_MATCHES_ALL_ABOVE_BITMAP.
- *  3)  Under /d rules, it can happen that code points that are in the upper
+/* An ANYOF node matches a single code point based on specified criteria.  It
+ * now comes in several styles, but originally it was just a 256 element
+ * bitmap, indexed by the code point (which was always just a byte).  If the
+ * corresponding bit for a code point is 1, the code point matches; if 0, it
+ * doesn't match (complemented if inverted).  This worked fine before Unicode
+ * existed, but making a bit map long enough to accommodate a bit for every
+ * possible Unicode code point is prohibitively large.  Therefore it is made
+ * much much smaller, and an inversion list is created to handle code points
+ * not represented by the bitmap.  (It is now possible to compile the bitmap to
+ * a larger size to avoid the slower inversion list lookup for however big the
+ * bitmap is set to, but this is rarely done).  If the bitmap is sufficient to
+ * specify all possible matches (with nothing outside it matching), no
+ * inversion list is needed nor included, and the argument to the ANYOF node is
+ * set to the following: */
+
+#define ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE   U32_MAX
+#define ANYOF_MATCHES_ALL_OUTSIDE_BITMAP(node)                              \
+                    (ARG1u(node) == ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE)
+
+#define ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE                             \
+   /* Assumes ALL is odd */  (ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE - 1)
+#define ANYOF_MATCHES_NONE_OUTSIDE_BITMAP(node)                             \
+                    (ARG1u(node) == ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE)
+
+#define ANYOF_ONLY_HAS_BITMAP_MASK  ANYOF_MATCHES_NONE_OUTSIDE_BITMAP_VALUE
+#define ANYOF_ONLY_HAS_BITMAP(node)                                         \
+  ((ARG1u(node) & ANYOF_ONLY_HAS_BITMAP_MASK) == ANYOF_ONLY_HAS_BITMAP_MASK)
+
+#define ANYOF_HAS_AUX(node)  (! ANYOF_ONLY_HAS_BITMAP(node))
+
+/* There are also ANYOFM nodes, used when the bit patterns representing the
+ * matched code points happen to be such that they can be checked by ANDing
+ * with a mask.  The regex compiler looks for and silently optimizes to using
+ * this node type in the few cases where it works out.  The eight octal digits
+ * form such a group.  These nodes are simple and fast and no further
+ * discussion is needed here.
+ *
+ * And, there are ANYOFH-ish nodes which match only code points that aren't in
+ * the bitmap  (the H stands for High).  These are common for expressing
+ * Unicode properties concerning non-Latin scripts.  They dispense with the
+ * bitmap altogether and don't need any of the flags discussed below.
+ *
+ * And, there are ANYOFR-ish nodes which match within a single range.
+ *
+ * When there is a need to specify what matches outside the bitmap, it is done
+ * by allocating an AV as part of the pattern's compiled form, and the argument
+ * to the node instead of being ANYOF_ONLY_HAS_BITMAP, points to that AV.
+ *
+ * (Actually, that is an oversimplification.  The AV is placed into the
+ * pattern's struct reg_data, and what is stored in the node's argument field
+ * is its index into that struct.  And the inversion list is just one element,
+ * the zeroth, of the AV.)
+ *
+ * There are certain situations where a single inversion list can't handle all
+ * the complexity.  These are dealt with by having extra elements in the AV, by
+ * specifying flag bits in the ANYOF node, and/or special code.  As an example,
+ * there are instances where what the ANYOF node matches is not completely
+ * known until runtime.  In these cases, a flag is set, and the bitmap has a 1
+ * for the code points which are known at compile time to be 1, and a 0 for the
+ * ones that are known to be 0, or require runtime resolution.  Some missing
+ * information can be found by merely seeing if the pattern is UTF-8 or not;
+ * other cases require looking at the extra elements in the AV.
+ *
+ * There are 5 cases where the bitmap is insufficient.  These are specified by
+ * flags in the node's flags field.  We could use five bits to represent the 5
+ * cases, but to save flags bits (which are perennially in short supply), we
+ * play some games.  The cases are:
+ *
+ *  1)  As already mentioned, if some code points outside the bitmap match, and
+ *      some do not, an inversion list is specified to indicate which ones.
+ *
+ *  2)  Under /d rules, it can happen that code points that are in the upper
  *      latin1 range (\x80-\xFF or their equivalents on EBCDIC platforms) match
  *      only if the runtime target string being matched against is UTF-8.  For
- *      example /[\w[:punct:]]/d.  This happens only for posix classes (with a
- *      couple of exceptions, like \d where it doesn't happen), and all such
- *      ones also have above-bitmap matches.  Thus, 3) implies 1) as well.
+ *      example /[\w[:punct:]]/d.  This happens only for certain posix classes,
+ *      and all such ones also have above-bitmap matches.
+ *
  *      Note that /d rules are no longer encouraged; 'use 5.14' or higher
- *      deselects them.  But a flag is required so that they can be properly
- *      handled.  But it can be a shared flag: see 5) below.
- *  4)  Also under /d rules, something like /[\Wfoo]/ will match everything in
+ *      deselects them.  But they are still supported, and a flag is required
+ *      so that they can be properly handled.  But it can be a shared flag: see
+ *      4) below.
+ *
+ *  3)  Also under /d rules, something like /[\Wfoo]/ will match everything in
  *      the \x80-\xFF range, unless the string being matched against is UTF-8.
  *      An inversion list could be created for this case, but this is
  *      relatively common, and it turns out that it's all or nothing:  if any
  *      one of these code points matches, they all do.  Hence a single bit
  *      suffices.  We use a shared flag that doesn't take up space by itself:
- *      ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER.  This
- *      also implies 1), with one exception: [:^cntrl:].
- *  5)  A user-defined \p{} property may not have been defined by the time the
+ *      ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared.  This also means there
+ *      is an inversion list for the things that don't fit into the bitmap.
+ *
+ *  4)  A user-defined \p{} property may not have been defined by the time the
  *      regex is compiled.  In this case, we don't know until runtime what it
  *      will match, so we have to assume it could match anything, including
  *      code points that ordinarily would be in the bitmap.  A flag bit is
- *      necessary to indicate this, though it can be shared with the item 3)
- *      flag, as that only occurs under /d, and this only occurs under non-d.
- *      This case is quite uncommon in the field, and the /(?[ ...])/ construct
- *      is a better way to accomplish what this feature does.  This case also
- *      implies 1).
- *      ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP
- *      is the shared flag.
- *  6)  /[foo]/il may have folds that are only valid if the runtime locale is a
- *      UTF-8 one.  These are quite rare, so it would be good to avoid the
- *      expense of looking for them.  But /l matching is slow anyway, and we've
- *      traditionally not worried too much about its performance.  And this
- *      condition requires the ANYOFL_FOLD flag to be set, so testing for
- *      that flag would be sufficient to rule out most cases of this.  So it is
- *      unclear if this should have a flag or not.  But, this flag can be
- *      shared with another, so it doesn't occupy extra space.
- *
- * At the moment, there is one spare bit, but this could be increased by
+ *      necessary to indicate this, though we can use the
+ *      ANYOF_HAS_EXTRA_RUNTIME_MATCHES flag, along with the node not being
+ *      ANYOFD.  The information required to construct the property is stored
+ *      in the AV pointed to by the node's argument.  This case is quite
+ *      uncommon in the field, and the /(?[...])/ construct is a better way to
+ *      accomplish what this feature does.
+ *
+ *  5)  /[foo]/il may have folds that are only valid if the runtime locale is a
+ *      UTF-8 one.  The ANYOF_HAS_EXTRA_RUNTIME_MATCHES flag can also be used
+ *      for these.  The list is stored in a different element of the AV, so its
+ *      existence differentiates this case from that of 4), along with the node
+ *      being ANYOFL, with the ANYOFL_FOLD flag being set.  There are a few
+ *      additional folds valid only if the UTF-8 locale is a Turkic one which
+ *      is tested for explicitly.
+ *
+ * Note that the user-defined property flag and the /il flag can affect whether
+ * an ASCII character matches in the bitmap or not.
+ *
+ * And this still isn't the end of the story.  In some cases, warnings are
+ * supposed to be raised when matching certain categories of code points in the
+ * target string.  Flags are set to indicate this.  This adds up to a bunch of
+ * flags required, and we only have 8 available.  That is why we share some.
+ * At the moment, there are two spare flag bits, but this could be increased by
  * various tricks:
  *
- * If just one more bit is needed, as of this writing it seems to khw that the
- * best choice would be to make ANYOF_MATCHES_ALL_ABOVE_BITMAP not a flag, but
- * something like
- *
- *      #define ANYOF_MATCHES_ALL_ABOVE_BITMAP      ((U32) -2)
- *
- * and access it through the ARG like ANYOF_ONLY_HAS_BITMAP is.  This flag is
- * used by all ANYOF node types, and it could be used to avoid calling the
- * handler function, as the macro REGINCLASS in regexec.c does now for other
- * cases.
- *
- * Another possibility is based on the fact that ANYOF_MATCHES_POSIXL is
- * redundant with the node type ANYOFPOSIXL.  That flag could be removed, but
- * at the expense of extra code in regexec.c.  The flag has been retained
- * because it allows us to see if we need to call reginclass, or just use the
- * bitmap in one test.
+ * ANYOF_MATCHES_POSIXL is redundant with the node type ANYOFPOSIXL.  That flag
+ * could be removed, but at the expense of having to write extra code, which
+ * would take up space, and writing this turns out to be not hard, but not
+ * trivial.
  *
  * If this is done, an extension would be to make all ANYOFL nodes contain the
- * extra 32 bits that ANYOFPOSIXL ones do.  The posix flags only occupy 30
- * bits, so the ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD flags
- * and ANYOFL_FOLD could be moved to that extra space, but it would mean extra
- * instructions, as there are currently places in the code that assume those
- * two bits are zero.
- *
- * All told, 5 bits could be available for other uses if all of the above were
- * done.
+ * extra 32 bits that ANYOFPOSIXL ones do, doubling each instance's size.  The
+ * posix flags only occupy 30 bits, so the ANYOFL_FOLD  and
+ * ANYOFL_UTF8_LOCALE_REQD bits could be moved to that extra space, but it
+ * would also mean extra instructions, as there are currently places in the
+ * code that assume those two bits are zero.
  *
  * Some flags are not used in synthetic start class (SSC) nodes, so could be
  * shared should new flags be needed for SSCs, like SSC_MATCHES_EMPTY_STRING
@@ -602,48 +869,39 @@ ARGp_SET_inline(struct regnode *node, SV
  * then.  Only set under /l; never in an SSC  */
 #define ANYOFL_FOLD                             0x04
 
-/* Shared bit set only with ANYOFL and SSC nodes:
- *    If ANYOFL_FOLD is set, this flag indicates there are potential matches
- *      valid only if the locale is a UTF-8 one.
- *    If ANYOFL_FOLD is NOT set, this flag means to warn if the runtime locale
- *       isn't a UTF-8 one (and the generated node assumes a UTF-8 locale).
- *       None of INVERT, POSIXL,
- *       ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP
- *       can be set.  */
-#define ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD        0x08
-
-/* Convenience macros for teasing apart the meanings when reading the above bit
- * */
-#define ANYOFL_SOME_FOLDS_ONLY_IN_UTF8_LOCALE(flags)                        \
-    ((flags & ( ANYOFL_FOLD /* Both bits are set */                         \
-               |ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD))   \
-             == ( ANYOFL_FOLD                                               \
-                 |ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD))
-
-#define  ANYOFL_UTF8_LOCALE_REQD(flags)                                     \
-    ((flags & ( ANYOFL_FOLD /* Only REQD bit is set */                      \
-               |ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD))   \
-             == ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD)
+/* Warn if the runtime locale isn't a UTF-8 one (and the generated node assumes
+ * a UTF-8 locale. */
+#define ANYOFL_UTF8_LOCALE_REQD                 0x08
 
 /* Spare: Be sure to change ANYOF_FLAGS_ALL if this gets used  0x10 */
 
-/* If set, the node matches every code point NUM_ANYOF_CODE_POINTS and above.
- * Can be in an SSC */
-#define ANYOF_MATCHES_ALL_ABOVE_BITMAP          0x20
+/* Spare: Be sure to change ANYOF_FLAGS_ALL if this gets used  0x20 */
 
-/* Shared bit:
- *      Under /d it means the ANYOFD node matches more things if the target
- *          string is encoded in UTF-8; any such things will be non-ASCII,
- *          characters that are < 256, and can be accessed via the inversion
- *          list.
- *      When not under /d, it means the ANYOF node contains a user-defined
- *      property that wasn't yet defined at the time the regex was compiled,
- *      and so must be looked up at runtime, by creating an inversion list.
- * (These uses are mutually exclusive because a user-defined property is
- * specified by \p{}, and \p{} implies /u which deselects /d).  The long macro
- * name is to make sure that you are cautioned about its shared nature.  Only
- * the non-/d meaning can be in an SSC */
-#define ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP  0x40
+/* Shared bit that indicates that there are potential additional matches stored
+ * outside the bitmap, as pointed to by the AV given by the node's argument.
+ * The node type is used at runtime (in conjunction with this flag and other
+ * information available then) to decide if the flag should be acted upon.
+ * This extra information is needed because of at least one of the following
+ * three reasons.
+ *      Under /d and the matched string is in UTF-8, it means the ANYOFD node
+ *          matches more things than in the bitmap.  Those things will be any
+ *          code point too high for the bitmap, but crucially, any non-ASCII
+ *          characters that match iff when using Unicode rules.  These all are
+ *          < 256.
+ *
+ *      Under /l and ANYOFL_FOLD is set, this flag may indicate there are
+ *          potential matches valid only if the locale is a UTF-8 one.  If so,
+ *          a list of them is stored in the AV.
+ *
+ *      For any non-ANYOFD node, there may be a user-defined property that
+ *          wasn't yet defined at the time the regex was compiled, and so must
+ *          be looked up at runtime, The information required to do so will
+ *          also be in the AV.
+ *
+ *      Note that an ANYOFL node may contain both a user-defined property, and
+ *      folds not always valid.  The important thing is that there is an AV to
+ *      look at. */
+#define ANYOF_HAS_EXTRA_RUNTIME_MATCHES 0x40
 
 /* Shared bit:
  *      Under /d it means the ANYOFD node matches all non-ASCII Latin1
@@ -652,13 +910,16 @@ ARGp_SET_inline(struct regnode *node, SV
  *          matching against an above-Unicode code point.
  * (These uses are mutually exclusive because the warning requires a \p{}, and
  * \p{} implies /u which deselects /d).  An SSC node only has this bit set if
- * what is meant is the warning.  The long macro name is to make sure that you
- * are cautioned about its shared nature */
-#define ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER 0x80
-
-#define ANYOF_FLAGS_ALL		((U8) ~0x10)
-
-#define ANYOF_LOCALE_FLAGS (ANYOFL_FOLD | ANYOF_MATCHES_POSIXL)
+ * what is meant is the warning.  The names are to make sure that you are
+ * cautioned about its shared nature */
+#define ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared 0x80
+#define ANYOF_WARN_SUPER__shared                      0x80
+
+#define ANYOF_FLAGS_ALL		((U8) ~(0x10|0x20))
+
+#define ANYOF_LOCALE_FLAGS (  ANYOFL_FOLD               \
+                            | ANYOF_MATCHES_POSIXL      \
+                            | ANYOFL_UTF8_LOCALE_REQD)
 
 /* These are the flags that apply to both regular ANYOF nodes and synthetic
  * start class nodes during construction of the SSC.  During finalization of
@@ -669,48 +930,48 @@ ARGp_SET_inline(struct regnode *node, SV
 /* Should be synchronized with a table in regprop() */
 /* 2n should be the normal one, paired with its complement at 2n+1 */
 
-#define ANYOF_ALPHA    ((_CC_ALPHA) * 2)
+#define ANYOF_ALPHA    ((CC_ALPHA_) * 2)
 #define ANYOF_NALPHA   ((ANYOF_ALPHA) + 1)
-#define ANYOF_ALPHANUMERIC   ((_CC_ALPHANUMERIC) * 2)    /* [[:alnum:]] isalnum(3), utf8::IsAlnum */
+#define ANYOF_ALPHANUMERIC   ((CC_ALPHANUMERIC_) * 2)    /* [[:alnum:]] isalnum(3), utf8::IsAlnum */
 #define ANYOF_NALPHANUMERIC  ((ANYOF_ALPHANUMERIC) + 1)
-#define ANYOF_ASCII    ((_CC_ASCII) * 2)
+#define ANYOF_ASCII    ((CC_ASCII_) * 2)
 #define ANYOF_NASCII   ((ANYOF_ASCII) + 1)
-#define ANYOF_BLANK    ((_CC_BLANK) * 2)     /* GNU extension: space and tab: non-vertical space */
+#define ANYOF_BLANK    ((CC_BLANK_) * 2)     /* GNU extension: space and tab: non-vertical space */
 #define ANYOF_NBLANK   ((ANYOF_BLANK) + 1)
-#define ANYOF_CASED    ((_CC_CASED) * 2)    /* Pseudo class for [:lower:] or
+#define ANYOF_CASED    ((CC_CASED_) * 2)    /* Pseudo class for [:lower:] or
                                                [:upper:] under /i */
 #define ANYOF_NCASED   ((ANYOF_CASED) + 1)
-#define ANYOF_CNTRL    ((_CC_CNTRL) * 2)
+#define ANYOF_CNTRL    ((CC_CNTRL_) * 2)
 #define ANYOF_NCNTRL   ((ANYOF_CNTRL) + 1)
-#define ANYOF_DIGIT    ((_CC_DIGIT) * 2)     /* \d */
+#define ANYOF_DIGIT    ((CC_DIGIT_) * 2)     /* \d */
 #define ANYOF_NDIGIT   ((ANYOF_DIGIT) + 1)
-#define ANYOF_GRAPH    ((_CC_GRAPH) * 2)
+#define ANYOF_GRAPH    ((CC_GRAPH_) * 2)
 #define ANYOF_NGRAPH   ((ANYOF_GRAPH) + 1)
-#define ANYOF_LOWER    ((_CC_LOWER) * 2)
+#define ANYOF_LOWER    ((CC_LOWER_) * 2)
 #define ANYOF_NLOWER   ((ANYOF_LOWER) + 1)
-#define ANYOF_PRINT    ((_CC_PRINT) * 2)
+#define ANYOF_PRINT    ((CC_PRINT_) * 2)
 #define ANYOF_NPRINT   ((ANYOF_PRINT) + 1)
-#define ANYOF_PUNCT    ((_CC_PUNCT) * 2)
+#define ANYOF_PUNCT    ((CC_PUNCT_) * 2)
 #define ANYOF_NPUNCT   ((ANYOF_PUNCT) + 1)
-#define ANYOF_SPACE    ((_CC_SPACE) * 2)     /* \s */
+#define ANYOF_SPACE    ((CC_SPACE_) * 2)     /* \s */
 #define ANYOF_NSPACE   ((ANYOF_SPACE) + 1)
-#define ANYOF_UPPER    ((_CC_UPPER) * 2)
+#define ANYOF_UPPER    ((CC_UPPER_) * 2)
 #define ANYOF_NUPPER   ((ANYOF_UPPER) + 1)
-#define ANYOF_WORDCHAR ((_CC_WORDCHAR) * 2)  /* \w, PL_utf8_alnum, utf8::IsWord, ALNUM */
+#define ANYOF_WORDCHAR ((CC_WORDCHAR_) * 2)  /* \w, PL_utf8_alnum, utf8::IsWord, ALNUM */
 #define ANYOF_NWORDCHAR   ((ANYOF_WORDCHAR) + 1)
-#define ANYOF_XDIGIT   ((_CC_XDIGIT) * 2)
+#define ANYOF_XDIGIT   ((CC_XDIGIT_) * 2)
 #define ANYOF_NXDIGIT  ((ANYOF_XDIGIT) + 1)
 
 /* pseudo classes below this, not stored in the class bitmap, but used as flags
    during compilation of char classes */
 
-#define ANYOF_VERTWS    ((_CC_VERTSPACE) * 2)
+#define ANYOF_VERTWS    ((CC_VERTSPACE_) * 2)
 #define ANYOF_NVERTWS   ((ANYOF_VERTWS)+1)
 
 /* It is best if this is the last one, as all above it are stored as bits in a
  * bitmap, and it isn't part of that bitmap */
-#if _CC_VERTSPACE != _HIGHEST_REGCOMP_DOT_H_SYNC
-#   error Problem with handy.h _HIGHEST_REGCOMP_DOT_H_SYNC #define
+#if CC_VERTSPACE_ != HIGHEST_REGCOMP_DOT_H_SYNC_
+#   error Problem with handy.h HIGHEST_REGCOMP_DOT_H_SYNC_ #define
 #endif
 
 #define ANYOF_POSIXL_MAX (ANYOF_VERTWS) /* So upper loop limit is written:
@@ -720,7 +981,7 @@ ARGp_SET_inline(struct regnode *node, SV
 #define ANYOF_MAX      ANYOF_POSIXL_MAX
 
 #if (ANYOF_POSIXL_MAX > 32)   /* Must fit in 32-bit word */
-#   error Problem with handy.h _CC_foo #defines
+#   error Problem with handy.h CC_foo_ #defines
 #endif
 
 #define ANYOF_HORIZWS	((ANYOF_POSIXL_MAX)+2) /* = (ANYOF_NVERTWS + 1) */
@@ -740,9 +1001,13 @@ ARGp_SET_inline(struct regnode *node, SV
 
 /* Utility macros for the bitmap and classes of ANYOF */
 
-#define ANYOF_FLAGS(p)		((p)->flags)
+#define BITMAP_BYTE(p, c)	(( (U8*) (p)) [ ( ( (UV) (c)) >> 3) ] )
+#define BITMAP_BIT(c)	        (1U << ((c) & 7))
+#define BITMAP_TEST(p, c)	(BITMAP_BYTE(p, c) & BITMAP_BIT((U8)(c)))
+
+#define ANYOF_FLAGS(p)          (FLAGS(p))
 
-#define ANYOF_BIT(c)		(1U << ((c) & 7))
+#define ANYOF_BIT(c)		BITMAP_BIT(c)
 
 #define ANYOF_POSIXL_BITMAP(p)  (((regnode_charclass_posixl*) (p))->classflags)
 
@@ -794,7 +1059,7 @@ ARGp_SET_inline(struct regnode *node, SV
 #define ANYOF_BITMAP_BYTE(p, c)	BITMAP_BYTE(ANYOF_BITMAP(p), c)
 #define ANYOF_BITMAP_SET(p, c)	(ANYOF_BITMAP_BYTE(p, c) |=  ANYOF_BIT(c))
 #define ANYOF_BITMAP_CLEAR(p,c)	(ANYOF_BITMAP_BYTE(p, c) &= ~ANYOF_BIT(c))
-#define ANYOF_BITMAP_TEST(p, c)	cBOOL(ANYOF_BITMAP_BYTE(p, c) &   ANYOF_BIT(c))
+#define ANYOF_BITMAP_TEST(p, c)	cBOOL(ANYOF_BITMAP_BYTE(p, c) & ANYOF_BIT(c))
 
 #define ANYOF_BITMAP_SETALL(p)		\
         memset (ANYOF_BITMAP(p), 255, ANYOF_BITMAP_SIZE)
@@ -828,6 +1093,7 @@ ARGp_SET_inline(struct regnode *node, SV
 #define REG_UNFOLDED_MULTI_SEEN             0x00000400
 /* spare */
 #define REG_UNBOUNDED_QUANTIFIER_SEEN       0x00001000
+#define REG_PESSIMIZE_SEEN                  0x00002000
 
 
 START_EXTERN_C
@@ -976,6 +1242,11 @@ struct _reg_trie_data {
     char            *bitmap;         /* stclass bitmap */
     U16 	    *jump;           /* optional 1 indexed array of offsets before tail 
                                         for the node following a given word. */
+    U16             *j_before_paren; /* optional 1 indexed array of parno reset data
+                                        for the given jump. */
+    U16             *j_after_paren;  /* optional 1 indexed array of parno reset data
+                                        for the given jump. */
+
     reg_trie_wordinfo *wordinfo;     /* array of info per word */
     U16             uniquecharcount; /* unique chars in trie (width of trans table) */
     U32             startstate;      /* initial state - used for common prefix optimisation */
@@ -985,6 +1256,8 @@ struct _reg_trie_data {
     U32             statecount;      /* Build only - number of states in the states array 
                                         (including the unused zero state) */
     U32             wordcount;       /* Build only */
+    U16             before_paren;
+    U16             after_paren;
 #ifdef DEBUGGING
     STRLEN          charcount;       /* Build only */
 #endif
@@ -1026,10 +1299,6 @@ typedef struct _reg_ac_data reg_ac_data;
 #define IS_ANYOF_TRIE(op) ((op)==TRIEC || (op)==AHOCORASICKC)
 #define IS_TRIE_AC(op) ((op)>=AHOCORASICK)
 
-
-#define BITMAP_BYTE(p, c)	(( (U8*) p) [ ( ( (UV) (c)) >> 3) ] )
-#define BITMAP_TEST(p, c)	(BITMAP_BYTE(p, c) &   ANYOF_BIT((U8)c))
-
 /* these defines assume uniquecharcount is the correct variable, and state may be evaluated twice */
 #define TRIE_NODENUM(state) (((state)-1)/(trie->uniquecharcount)+1)
 #define SAFE_TRIE_NODENUM(state) ((state) ? (((state)-1)/(trie->uniquecharcount)+1) : (state))
@@ -1184,7 +1453,7 @@ re.pm, especially to the documentation.
                      /* get_sv() can return NULL during global destruction. */ \
         re_debug_flags_sv = PL_curcop ? get_sv(RE_DEBUG_FLAGS, GV_ADD) : NULL; \
         if (re_debug_flags_sv) {                                               \
-            if (!SvIOK(re_debug_flags_sv)) /* If doesnt exist set to default */\
+            if (!SvIOK(re_debug_flags_sv)) /* If doesn't exist set to default */\
                 sv_setuv(re_debug_flags_sv,                                    \
                         /* These defaults should be kept in sync with re.pm */ \
                             RE_DEBUG_COMPILE_DUMP | RE_DEBUG_EXECUTE_MASK );   \
@@ -1234,7 +1503,7 @@ re.pm, especially to the documentation.
 #define FIRST_NON_ASCII_DECIMAL_DIGIT 0x660  /* ARABIC_INDIC_DIGIT_ZERO */
 
 typedef enum {
-        TRADITIONAL_BOUND = _CC_WORDCHAR,
+        TRADITIONAL_BOUND = CC_WORDCHAR_,
         GCB_BOUND,
         LB_BOUND,
         SB_BOUND,
@@ -1265,6 +1534,27 @@ typedef enum {
 #define HIGHEST_ANYOF_HRx_BYTE(b)                                           \
                                   (LOWEST_ANYOF_HRx_BYTE(b)                 \
           + ((MAX_ANYOF_HRx_BYTE - LOWEST_ANYOF_HRx_BYTE(b)) >> ((b) & 3)))
+
+#if !defined(PERL_IN_XSUB_RE) || defined(PLUGGABLE_RE_EXTENSION)
+#  define GET_REGCLASS_AUX_DATA(a,b,c,d,e,f)  get_regclass_aux_data(a,b,c,d,e,f)
+#else
+#  define GET_REGCLASS_AUX_DATA(a,b,c,d,e,f)  get_re_gclass_aux_data(a,b,c,d,e,f)
+#endif
+
+#define REGNODE_TYPE(node)              (PL_regnode_info[(node)].type)
+#define REGNODE_OFF_BY_ARG(node)        (PL_regnode_info[(node)].off_by_arg)
+#define REGNODE_ARG_LEN(node)           (PL_regnode_info[(node)].arg_len)
+#define REGNODE_ARG_LEN_VARIES(node)    (PL_regnode_info[(node)].arg_len_varies)
+#define REGNODE_NAME(node)              (PL_regnode_name[(node)])
+
+#if defined(PERL_IN_REGEX_ENGINE)
+#include "reginline.h"
+#endif
+
+#define EVAL_OPTIMISTIC_FLAG    128
+#define EVAL_FLAGS_MASK         (EVAL_OPTIMISTIC_FLAG-1)
+
+
 
 #endif /* PERL_REGCOMP_H_ */
 
Index: gnu/usr.bin/perl/regcomp.sym
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regcomp.sym,v
diff -u -p -a -u -p -r1.6 regcomp.sym
--- gnu/usr.bin/perl/regcomp.sym	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/regcomp.sym	21 Feb 2024 15:47:03 -0000
@@ -89,13 +89,28 @@ ANYOFL      ANYOF,      sv charclass S  
 ANYOFPOSIXL ANYOF,      sv charclass_posixl S    ; Like ANYOFL, but matches [[:posix:]] classes
 
 # Must be sequential
-ANYOFH      ANYOF,      sv 1 S    ; Like ANYOF, but only has "High" matches, none in the bitmap; the flags field contains the lowest matchable UTF-8 start byte
-ANYOFHb     ANYOF,      sv 1 S    ; Like ANYOFH, but all matches share the same UTF-8 start byte, given in the flags field
-ANYOFHr     ANYOF,      sv 1 S    ; Like ANYOFH, but the flags field contains packed bounds for all matchable UTF-8 start bytes.
-ANYOFHs     ANYOF,      sv 1 S    ; Like ANYOFHb, but has a string field that gives the leading matchable UTF-8 bytes; flags field is len
+ANYOFH      ANYOFH,     sv 1 S    ; Like ANYOF, but only has "High" matches, none in the bitmap; the flags field contains the lowest matchable UTF-8 start byte
+ANYOFHb     ANYOFH,     sv 1 S    ; Like ANYOFH, but all matches share the same UTF-8 start byte, given in the flags field
+ANYOFHr     ANYOFH,     sv 1 S    ; Like ANYOFH, but the flags field contains packed bounds for all matchable UTF-8 start bytes.
+ANYOFHs     ANYOFH,     sv:str 1 S    ; Like ANYOFHb, but has a string field that gives the leading matchable UTF-8 bytes; flags field is len
 ANYOFR      ANYOFR,     packed 1  S  ; Matches any character in the range given by its packed args: upper 12 bits is the max delta from the base lower 20; the flags field contains the lowest matchable UTF-8 start byte
 ANYOFRb     ANYOFR,     packed 1  S ; Like ANYOFR, but all matches share the same UTF-8 start byte, given in the flags field
-# There is no ANYOFRr because khw doesn't think there are likely to be real-world cases where such a large range is used.
+# There is no ANYOFRr because khw doesn't think there are likely to be
+# real-world cases where such a large range is used.
+#
+# And khw doesn't believe an ANYOFRs (which would behave like ANYOFHs) is
+# actually worth it.  On two-byte UTF-8, the first byte alone is all we need,
+# and ANYOFR already does that.  And we don't consider non-Unicode code points
+# or EBCDIC for performance decisions.  If we had it, we would be comparing the
+# strings, and if they are equal convert to UV and then test to see if it is in
+# the range.  The fast DFA we now use to do the conversion is slower than
+# comparing the strings, but not by much, and negligible in 2 or 3 byte
+# operations.  (We don't have to compare the final byte as it has to be
+# different or else this wouldn't be a range.)  So we might as well displense
+# with the comparisons that ANYOFRs would do, and go directly to do the
+# conversion .
+
+ANYOFHbbm   ANYOFHbbm   none bbm S ; Like ANYOFHb, but only for 2-byte UTF-8 characters; uses a bitmap to match the continuation byte
 
 ANYOFM      ANYOFM,     byte 1 S  ; Like ANYOF, but matches an invariant byte as determined by the mask and arg
 NANYOFM     ANYOFM,     byte 1 S  ; complement of ANYOFM
@@ -125,7 +140,7 @@ CLUMP       CLUMP,      no 0 V    ; Matc
 #*               pointer of each individual branch points; each branch
 #*               starts with the operand node of a BRANCH node.
 #*
-BRANCH      BRANCH,     node 0 V  ; Match this alternative, or the next...
+BRANCH      BRANCH,     node 1 V  ; Match this alternative, or the next...
 
 #*Literals
 # NOTE: the relative ordering of these types is important do not change it
@@ -199,13 +214,13 @@ TAIL        NOTHING,    no        ; Matc
 #*               (one character per match) are implemented with STAR
 #*               and PLUS for speed and to minimize recursive plunges.
 #*
-STAR        STAR,       node 0 V  ; Match this (simple) thing 0 or more times.
-PLUS        PLUS,       node 0 V  ; Match this (simple) thing 1 or more times.
+STAR        STAR,       node 0 V  ; Match this (simple) thing 0 or more times: /A{0,}B/ where A is width 1 char
+PLUS        PLUS,       node 0 V  ; Match this (simple) thing 1 or more times: /A{1,}B/ where A is width 1 char
 
-CURLY       CURLY,      sv 2 V    ; Match this simple thing {n,m} times.
-CURLYN      CURLY,      no 2 V    ; Capture next-after-this simple thing 
-CURLYM      CURLY,      no 2 V    ; Capture this medium-complex thing {n,m} times. 
-CURLYX      CURLY,      sv 2 V    ; Match this complex thing {n,m} times.
+CURLY       CURLY,      sv 3 V    ; Match this (simple) thing {n,m} times: /A{m,n}B/ where A is width 1 char
+CURLYN      CURLY,      no 3 V    ; Capture next-after-this simple thing: /(A){m,n}B/ where A is width 1 char
+CURLYM      CURLY,      no 3 V    ; Capture this medium-complex thing {n,m} times: /(A){m,n}B/ where A is fixed-length
+CURLYX      CURLY,      sv 3 V    ; Match/Capture this complex thing {n,m} times.
 
 #*This terminator creates a loop structure for CURLYX
 WHILEM      WHILEM,     no 0 V    ; Do curly processing and see if rest matches.
@@ -218,26 +233,26 @@ CLOSE       CLOSE,      num 1     ; Clos
 SROPEN      SROPEN,     none      ; Same as OPEN, but for script run
 SRCLOSE     SRCLOSE,    none      ; Close preceding SROPEN
 
-REF         REF,        num 1 V   ; Match some already matched string
-REFF        REF,        num 1 V   ; Match already matched string, using /di rules.
-REFFL       REF,        num 1 V   ; Match already matched string, using /li rules.
+REF         REF,        num 2 V   ; Match some already matched string
+REFF        REF,        num 2 V   ; Match already matched string, using /di rules.
+REFFL       REF,        num 2 V   ; Match already matched string, using /li rules.
 # N?REFF[AU] could have been implemented using the FLAGS field of the
 # regnode, but by having a separate node type, we can use the existing switch
 # statement to avoid some tests
-REFFU       REF,        num 1 V   ; Match already matched string, usng /ui.
-REFFA       REF,        num 1 V   ; Match already matched string, using /aai rules.
+REFFU       REF,        num 2 V   ; Match already matched string, usng /ui.
+REFFA       REF,        num 2 V   ; Match already matched string, using /aai rules.
 
 #*Named references.  Code in regcomp.c assumes that these all are after
 #*the numbered references
-REFN        REF,        no-sv 1 V ; Match some already matched string
-REFFN       REF,        no-sv 1 V ; Match already matched string, using /di rules.
-REFFLN      REF,        no-sv 1 V ; Match already matched string, using /li rules.
-REFFUN      REF,        num   1 V ; Match already matched string, using /ui rules.
-REFFAN      REF,        num   1 V ; Match already matched string, using /aai rules.
+REFN        REF,        no-sv 2 V ; Match some already matched string
+REFFN       REF,        no-sv 2 V ; Match already matched string, using /di rules.
+REFFLN      REF,        no-sv 2 V ; Match already matched string, using /li rules.
+REFFUN      REF,        num   2 V ; Match already matched string, using /ui rules.
+REFFAN      REF,        num   2 V ; Match already matched string, using /aai rules.
 
 #*Support for long RE
 LONGJMP     LONGJMP,    off 1 . 1 ; Jump far away.
-BRANCHJ     BRANCHJ,    off 1 V 1 ; BRANCH with long offset.
+BRANCHJ     BRANCHJ,    off 2 V 1 ; BRANCH with long offset.
 
 #*Special Case Regops
 IFMATCH     BRANCHJ,    off 1 . 1 ; Succeeds if the following matches; non-zero flags "f", next_off "o" means lookbehind assertion starting "f..(f-o)" characters before current
@@ -248,7 +263,7 @@ GROUPP      GROUPP,     num 1     ; Whet
 
 #*The heavy worker
 
-EVAL        EVAL,       evl/flags 2L ; Execute some Perl code.
+EVAL        EVAL,       evl/flags 2 ; Execute some Perl code.
 
 #*Modifiers
 
@@ -259,7 +274,7 @@ LOGICAL     LOGICAL,    no        ; Next
 RENUM       BRANCHJ,    off 1 . 1 ; Group with independently numbered parens.
 
 #*Regex Subroutines
-GOSUB       GOSUB,      num/ofs 2L    ; recurse to paren arg1 at (signed) ofs arg2
+GOSUB       GOSUB,      num/ofs 2    ; recurse to paren arg1 at (signed) ofs arg2
 
 #*Special conditionals
 GROUPPN     GROUPPN,    no-sv 1   ; Whether the group matched.
@@ -269,7 +284,7 @@ DEFINEP     DEFINEP,    none 1    ; Neve
 #*Backtracking Verbs
 ENDLIKE     ENDLIKE,    none      ; Used only for the type field of verbs
 OPFAIL      ENDLIKE,    no-sv 1   ; Same as (?!), but with verb arg
-ACCEPT      ENDLIKE,    no-sv/num 2L   ; Accepts the current matched string, with verbar
+ACCEPT      ENDLIKE,    no-sv/num 2   ; Accepts the current matched string, with verbar
 
 #*Verbs With Arguments
 VERB        VERB,       no-sv 1   ; Used only for the type field of verbs
@@ -329,3 +344,4 @@ MARKPOINT       next:FAIL
 SKIP            next:FAIL
 CUTGROUP        next:FAIL
 KEEPS           next:FAIL
+REF             next:FAIL
Index: gnu/usr.bin/perl/regcomp_debug.c
===================================================================
RCS file: gnu/usr.bin/perl/regcomp_debug.c
diff -N gnu/usr.bin/perl/regcomp_debug.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regcomp_debug.c	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,1670 @@
+#ifdef PERL_EXT_RE_BUILD
+#include "re_top.h"
+#endif
+
+#include "EXTERN.h"
+#define PERL_IN_REGEX_ENGINE
+#define PERL_IN_REGCOMP_ANY
+#define PERL_IN_REGCOMP_DEBUG_C
+#include "perl.h"
+
+#ifdef PERL_IN_XSUB_RE
+#  include "re_comp.h"
+#else
+#  include "regcomp.h"
+#endif
+
+#include "invlist_inline.h"
+#include "unicode_constants.h"
+#include "regcomp_internal.h"
+
+#ifdef DEBUGGING
+
+int
+Perl_re_printf(pTHX_ const char *fmt, ...)
+{
+    va_list ap;
+    int result;
+    PerlIO *f= Perl_debug_log;
+    PERL_ARGS_ASSERT_RE_PRINTF;
+    va_start(ap, fmt);
+    result = PerlIO_vprintf(f, fmt, ap);
+    va_end(ap);
+    return result;
+}
+
+int
+Perl_re_indentf(pTHX_ const char *fmt, U32 depth, ...)
+{
+    va_list ap;
+    int result;
+    PerlIO *f= Perl_debug_log;
+    PERL_ARGS_ASSERT_RE_INDENTF;
+    va_start(ap, depth);
+    PerlIO_printf(f, "%*s", ( (int)depth % 20 ) * 2, "");
+    result = PerlIO_vprintf(f, fmt, ap);
+    va_end(ap);
+    return result;
+}
+
+void
+Perl_debug_show_study_flags(pTHX_ U32 flags, const char *open_str,
+                                    const char *close_str)
+{
+    PERL_ARGS_ASSERT_DEBUG_SHOW_STUDY_FLAGS;
+    if (!flags)
+        return;
+
+    Perl_re_printf( aTHX_  "%s", open_str);
+    DEBUG_SHOW_STUDY_FLAG(flags, SF_BEFORE_SEOL);
+    DEBUG_SHOW_STUDY_FLAG(flags, SF_BEFORE_MEOL);
+    DEBUG_SHOW_STUDY_FLAG(flags, SF_IS_INF);
+    DEBUG_SHOW_STUDY_FLAG(flags, SF_HAS_PAR);
+    DEBUG_SHOW_STUDY_FLAG(flags, SF_IN_PAR);
+    DEBUG_SHOW_STUDY_FLAG(flags, SF_HAS_EVAL);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_SUBSTR);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_STCLASS_AND);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_STCLASS_OR);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_DO_STCLASS);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_WHILEM_VISITED_POS);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_TRIE_RESTUDY);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_SEEN_ACCEPT);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_TRIE_DOING_RESTUDY);
+    DEBUG_SHOW_STUDY_FLAG(flags, SCF_IN_DEFINE);
+    Perl_re_printf( aTHX_  "%s", close_str);
+}
+
+void
+Perl_debug_studydata(pTHX_ const char *where, scan_data_t *data,
+                    U32 depth, int is_inf,
+                    SSize_t min, SSize_t stopmin, SSize_t delta)
+{
+    PERL_ARGS_ASSERT_DEBUG_STUDYDATA;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    DEBUG_OPTIMISE_MORE_r({
+        if (!data) {
+            Perl_re_indentf(aTHX_  "%s: NO DATA",
+                depth,
+                where);
+            return;
+        }
+        Perl_re_indentf(aTHX_  "%s: M/S/D: %" IVdf "/%" IVdf "/%" IVdf " Pos:%" IVdf "/%" IVdf " Flags: 0x%" UVXf,
+            depth,
+            where,
+            min, stopmin, delta,
+            (IV)data->pos_min,
+            (IV)data->pos_delta,
+            (UV)data->flags
+        );
+
+        Perl_debug_show_study_flags(aTHX_ data->flags," [","]");
+
+        Perl_re_printf( aTHX_
+            " Whilem_c: %" IVdf " Lcp: %" IVdf " %s",
+            (IV)data->whilem_c,
+            (IV)(data->last_closep ? *((data)->last_closep) : -1),
+            is_inf ? "INF " : ""
+        );
+
+        if (data->last_found) {
+            int i;
+            Perl_re_printf(aTHX_
+                "Last:'%s' %" IVdf ":%" IVdf "/%" IVdf,
+                    SvPVX_const(data->last_found),
+                    (IV)data->last_end,
+                    (IV)data->last_start_min,
+                    (IV)data->last_start_max
+            );
+
+            for (i = 0; i < 2; i++) {
+                Perl_re_printf(aTHX_
+                    " %s%s: '%s' @ %" IVdf "/%" IVdf,
+                    data->cur_is_floating == i ? "*" : "",
+                    i ? "Float" : "Fixed",
+                    SvPVX_const(data->substrs[i].str),
+                    (IV)data->substrs[i].min_offset,
+                    (IV)data->substrs[i].max_offset
+                );
+                Perl_debug_show_study_flags(aTHX_ data->substrs[i].flags," [","]");
+            }
+        }
+
+        Perl_re_printf( aTHX_ "\n");
+    });
+}
+
+
+void
+Perl_debug_peep(pTHX_ const char *str, const RExC_state_t *pRExC_state,
+                regnode *scan, U32 depth, U32 flags)
+{
+    PERL_ARGS_ASSERT_DEBUG_PEEP;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    DEBUG_OPTIMISE_r({
+        regnode *Next;
+
+        if (!scan)
+            return;
+        Next = regnext(scan);
+        regprop(RExC_rx, RExC_mysv, scan, NULL, pRExC_state);
+        Perl_re_indentf( aTHX_   "%s>%3d: %s (%d)",
+            depth,
+            str,
+            REG_NODE_NUM(scan), SvPV_nolen_const(RExC_mysv),
+            Next ? (REG_NODE_NUM(Next)) : 0 );
+        Perl_debug_show_study_flags(aTHX_ flags," [ ","]");
+        Perl_re_printf( aTHX_  "\n");
+   });
+}
+
+#endif /* DEBUGGING */
+
+/*
+ - regdump - dump a regexp onto Perl_debug_log in vaguely comprehensible form
+ */
+#ifdef DEBUGGING
+
+static void
+S_regdump_intflags(pTHX_ const char *lead, const U32 flags)
+{
+    int bit;
+    int set=0;
+
+    ASSUME(REG_INTFLAGS_NAME_SIZE <= sizeof(flags)*8);
+
+    for (bit=0; bit<=REG_INTFLAGS_NAME_SIZE; bit++) {
+        if (flags & (1<<bit)) {
+            if (!set++ && lead)
+                Perl_re_printf( aTHX_  "%s", lead);
+            Perl_re_printf( aTHX_  "%s ", PL_reg_intflags_name[bit]);
+        }
+    }
+    if (lead)  {
+        if (set)
+            Perl_re_printf( aTHX_  "\n");
+        else
+            Perl_re_printf( aTHX_  "%s[none-set]\n", lead);
+    }
+}
+
+static void
+S_regdump_extflags(pTHX_ const char *lead, const U32 flags)
+{
+    int bit;
+    int set=0;
+    regex_charset cs;
+
+    ASSUME(REG_EXTFLAGS_NAME_SIZE <= sizeof(flags)*8);
+
+    for (bit=0; bit<REG_EXTFLAGS_NAME_SIZE; bit++) {
+        if (flags & (1U<<bit)) {
+            if ((1U<<bit) & RXf_PMf_CHARSET) {  /* Output separately, below */
+                continue;
+            }
+            if (!set++ && lead)
+                Perl_re_printf( aTHX_  "%s", lead);
+            Perl_re_printf( aTHX_  "%s ", PL_reg_extflags_name[bit]);
+        }
+    }
+    if ((cs = get_regex_charset(flags)) != REGEX_DEPENDS_CHARSET) {
+            if (!set++ && lead) {
+                Perl_re_printf( aTHX_  "%s", lead);
+            }
+            switch (cs) {
+                case REGEX_UNICODE_CHARSET:
+                    Perl_re_printf( aTHX_  "UNICODE");
+                    break;
+                case REGEX_LOCALE_CHARSET:
+                    Perl_re_printf( aTHX_  "LOCALE");
+                    break;
+                case REGEX_ASCII_RESTRICTED_CHARSET:
+                    Perl_re_printf( aTHX_  "ASCII-RESTRICTED");
+                    break;
+                case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
+                    Perl_re_printf( aTHX_  "ASCII-MORE_RESTRICTED");
+                    break;
+                default:
+                    Perl_re_printf( aTHX_  "UNKNOWN CHARACTER SET");
+                    break;
+            }
+    }
+    if (lead)  {
+        if (set)
+            Perl_re_printf( aTHX_  "\n");
+        else
+            Perl_re_printf( aTHX_  "%s[none-set]\n", lead);
+    }
+}
+#endif
+
+void
+Perl_regdump(pTHX_ const regexp *r)
+{
+#ifdef DEBUGGING
+    int i;
+    SV * const sv = sv_newmortal();
+    SV *dsv= sv_newmortal();
+    RXi_GET_DECL(r, ri);
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_REGDUMP;
+
+    (void)dumpuntil(r, ri->program, ri->program + 1, NULL, NULL, sv, 0, 0);
+
+    /* Header fields of interest. */
+    for (i = 0; i < 2; i++) {
+        if (r->substrs->data[i].substr) {
+            RE_PV_QUOTED_DECL(s, 0, dsv,
+                            SvPVX_const(r->substrs->data[i].substr),
+                            RE_SV_DUMPLEN(r->substrs->data[i].substr),
+                            PL_dump_re_max_len);
+            Perl_re_printf( aTHX_
+                          "%s %s%s at %" IVdf "..%" UVuf " ",
+                          i ? "floating" : "anchored",
+                          s,
+                          RE_SV_TAIL(r->substrs->data[i].substr),
+                          (IV)r->substrs->data[i].min_offset,
+                          (UV)r->substrs->data[i].max_offset);
+        }
+        else if (r->substrs->data[i].utf8_substr) {
+            RE_PV_QUOTED_DECL(s, 1, dsv,
+                            SvPVX_const(r->substrs->data[i].utf8_substr),
+                            RE_SV_DUMPLEN(r->substrs->data[i].utf8_substr),
+                            30);
+            Perl_re_printf( aTHX_
+                          "%s utf8 %s%s at %" IVdf "..%" UVuf " ",
+                          i ? "floating" : "anchored",
+                          s,
+                          RE_SV_TAIL(r->substrs->data[i].utf8_substr),
+                          (IV)r->substrs->data[i].min_offset,
+                          (UV)r->substrs->data[i].max_offset);
+        }
+    }
+
+    if (r->check_substr || r->check_utf8)
+        Perl_re_printf( aTHX_
+                      (const char *)
+                      (   r->check_substr == r->substrs->data[1].substr
+                       && r->check_utf8   == r->substrs->data[1].utf8_substr
+                       ? "(checking floating" : "(checking anchored"));
+    if (r->intflags & PREGf_NOSCAN)
+        Perl_re_printf( aTHX_  " noscan");
+    if (r->extflags & RXf_CHECK_ALL)
+        Perl_re_printf( aTHX_  " isall");
+    if (r->check_substr || r->check_utf8)
+        Perl_re_printf( aTHX_  ") ");
+
+    if (ri->regstclass) {
+        regprop(r, sv, ri->regstclass, NULL, NULL);
+        Perl_re_printf( aTHX_  "stclass %s ", SvPVX_const(sv));
+    }
+    if (r->intflags & PREGf_ANCH) {
+        Perl_re_printf( aTHX_  "anchored");
+        if (r->intflags & PREGf_ANCH_MBOL)
+            Perl_re_printf( aTHX_  "(MBOL)");
+        if (r->intflags & PREGf_ANCH_SBOL)
+            Perl_re_printf( aTHX_  "(SBOL)");
+        if (r->intflags & PREGf_ANCH_GPOS)
+            Perl_re_printf( aTHX_  "(GPOS)");
+        Perl_re_printf( aTHX_ " ");
+    }
+    if (r->intflags & PREGf_GPOS_SEEN)
+        Perl_re_printf( aTHX_  "GPOS:%" UVuf " ", (UV)r->gofs);
+    if (r->intflags & PREGf_SKIP)
+        Perl_re_printf( aTHX_  "plus ");
+    if (r->intflags & PREGf_IMPLICIT)
+        Perl_re_printf( aTHX_  "implicit ");
+    Perl_re_printf( aTHX_  "minlen %" IVdf " ", (IV)r->minlen);
+    if (r->extflags & RXf_EVAL_SEEN)
+        Perl_re_printf( aTHX_  "with eval ");
+    Perl_re_printf( aTHX_  "\n");
+    DEBUG_FLAGS_r({
+        regdump_extflags("r->extflags: ", r->extflags);
+        regdump_intflags("r->intflags: ", r->intflags);
+    });
+#else
+    PERL_ARGS_ASSERT_REGDUMP;
+    PERL_UNUSED_CONTEXT;
+    PERL_UNUSED_ARG(r);
+#endif  /* DEBUGGING */
+}
+
+/* Should be synchronized with ANYOF_ #defines in regcomp.h */
+#ifdef DEBUGGING
+
+#  if   CC_WORDCHAR_ != 0 || CC_DIGIT_ != 1        || CC_ALPHA_ != 2    \
+     || CC_LOWER_ != 3    || CC_UPPER_ != 4        || CC_PUNCT_ != 5    \
+     || CC_PRINT_ != 6    || CC_ALPHANUMERIC_ != 7 || CC_GRAPH_ != 8    \
+     || CC_CASED_ != 9    || CC_SPACE_ != 10       || CC_BLANK_ != 11   \
+     || CC_XDIGIT_ != 12  || CC_CNTRL_ != 13       || CC_ASCII_ != 14   \
+     || CC_VERTSPACE_ != 15
+#   error Need to adjust order of anyofs[]
+#  endif
+static const char * const anyofs[] = {
+    "\\w",
+    "\\W",
+    "\\d",
+    "\\D",
+    "[:alpha:]",
+    "[:^alpha:]",
+    "[:lower:]",
+    "[:^lower:]",
+    "[:upper:]",
+    "[:^upper:]",
+    "[:punct:]",
+    "[:^punct:]",
+    "[:print:]",
+    "[:^print:]",
+    "[:alnum:]",
+    "[:^alnum:]",
+    "[:graph:]",
+    "[:^graph:]",
+    "[:cased:]",
+    "[:^cased:]",
+    "\\s",
+    "\\S",
+    "[:blank:]",
+    "[:^blank:]",
+    "[:xdigit:]",
+    "[:^xdigit:]",
+    "[:cntrl:]",
+    "[:^cntrl:]",
+    "[:ascii:]",
+    "[:^ascii:]",
+    "\\v",
+    "\\V"
+};
+#endif
+
+/*
+- regprop - printable representation of opcode, with run time support
+*/
+
+void
+Perl_regprop(pTHX_ const regexp *prog, SV *sv, const regnode *o, const regmatch_info *reginfo, const RExC_state_t *pRExC_state)
+{
+#ifdef DEBUGGING
+    U8 k;
+    const U8 op = OP(o);
+    RXi_GET_DECL(prog, progi);
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_REGPROP;
+
+    SvPVCLEAR(sv);
+
+    if (op > REGNODE_MAX) {          /* regnode.type is unsigned */
+        if (pRExC_state) {  /* This gives more info, if we have it */
+            FAIL3("panic: corrupted regexp opcode %d > %d",
+                  (int)op, (int)REGNODE_MAX);
+        }
+        else {
+            Perl_croak(aTHX_ "panic: corrupted regexp opcode %d > %d",
+                             (int)op, (int)REGNODE_MAX);
+        }
+    }
+    sv_catpv(sv, REGNODE_NAME(op)); /* Take off const! */
+
+    k = REGNODE_TYPE(op);
+    if (op == BRANCH) {
+        Perl_sv_catpvf(aTHX_ sv, " (buf:%" IVdf "/%" IVdf ")", (IV)ARG1a(o),(IV)ARG1b(o));
+    }
+    else if (op == BRANCHJ) {
+        Perl_sv_catpvf(aTHX_ sv, " (buf:%" IVdf "/%" IVdf ")", (IV)ARG2a(o),(IV)ARG2b(o));
+    }
+    else if (k == EXACT) {
+        sv_catpvs(sv, " ");
+        /* Using is_utf8_string() (via PERL_PV_UNI_DETECT)
+         * is a crude hack but it may be the best for now since
+         * we have no flag "this EXACTish node was UTF-8"
+         * --jhi */
+        pv_pretty(sv, STRING(o), STR_LEN(o), PL_dump_re_max_len,
+                  PL_colors[0], PL_colors[1],
+                  PERL_PV_ESCAPE_UNI_DETECT |
+                  PERL_PV_ESCAPE_NONASCII   |
+                  PERL_PV_PRETTY_ELLIPSES   |
+                  PERL_PV_PRETTY_LTGT       |
+                  PERL_PV_PRETTY_NOCLEAR
+                  );
+    } else if (k == TRIE) {
+        /* print the details of the trie in dumpuntil instead, as
+         * progi->data isn't available here */
+        const U32 n = ARG1u(o);
+        const reg_ac_data * const ac = IS_TRIE_AC(op) ?
+               (reg_ac_data *)progi->data->data[n] :
+               NULL;
+        const reg_trie_data * const trie
+            = (reg_trie_data*)progi->data->data[!IS_TRIE_AC(op) ? n : ac->trie];
+
+        Perl_sv_catpvf(aTHX_ sv, "-%s", REGNODE_NAME(FLAGS(o)));
+        DEBUG_TRIE_COMPILE_r({
+          if (trie->jump)
+            sv_catpvs(sv, "(JUMP)");
+          Perl_sv_catpvf(aTHX_ sv,
+            "<S:%" UVuf "/%" IVdf " W:%" UVuf " L:%" UVuf "/%" UVuf " C:%" UVuf "/%" UVuf ">",
+            (UV)trie->startstate,
+            (IV)trie->statecount-1, /* -1 because of the unused 0 element */
+            (UV)trie->wordcount,
+            (UV)trie->minlen,
+            (UV)trie->maxlen,
+            (UV)TRIE_CHARCOUNT(trie),
+            (UV)trie->uniquecharcount
+          );
+        });
+        if ( IS_ANYOF_TRIE(op) || trie->bitmap ) {
+            sv_catpvs(sv, "[");
+            (void) put_charclass_bitmap_innards(sv,
+                                                ((IS_ANYOF_TRIE(op))
+                                                 ? ANYOF_BITMAP(o)
+                                                 : TRIE_BITMAP(trie)),
+                                                NULL,
+                                                NULL,
+                                                NULL,
+                                                0,
+                                                FALSE
+                                               );
+            sv_catpvs(sv, "]");
+        }
+        if (trie->before_paren || trie->after_paren)
+            Perl_sv_catpvf(aTHX_ sv, " (buf:%" IVdf "/%" IVdf ")",
+                    (IV)trie->before_paren,(IV)trie->after_paren);
+    } else if (k == CURLY) {
+        U32 lo = ARG1i(o), hi = ARG2i(o);
+        if (ARG3u(o)) /* check both ARG3a and ARG3b at the same time */
+            Perl_sv_catpvf(aTHX_ sv, "<%d:%d>", ARG3a(o),ARG3b(o)); /* paren before, paren after */
+        if (op == CURLYM || op == CURLYN || op == CURLYX)
+            Perl_sv_catpvf(aTHX_ sv, "[%d]", FLAGS(o)); /* Parenth number */
+        Perl_sv_catpvf(aTHX_ sv, "{%u,", (unsigned) lo);
+        if (hi == REG_INFTY)
+            sv_catpvs(sv, "INFTY");
+        else
+            Perl_sv_catpvf(aTHX_ sv, "%u", (unsigned) hi);
+        sv_catpvs(sv, "}");
+    }
+    else if (k == WHILEM && FLAGS(o))                   /* Ordinal/of */
+        Perl_sv_catpvf(aTHX_ sv, "[%d/%d]", FLAGS(o) & 0xf, FLAGS(o)>>4);
+    else if (k == REF || k == OPEN || k == CLOSE
+             || k == GROUPP || op == ACCEPT)
+    {
+        AV *name_list= NULL;
+        U32 parno= (op == ACCEPT)              ? ARG2u(o) :
+                   (op == OPEN || op == CLOSE) ? PARNO(o) :
+                                                 ARG1u(o);
+        if ( RXp_PAREN_NAMES(prog) ) {
+            name_list= MUTABLE_AV(progi->data->data[progi->name_list_idx]);
+        } else if ( pRExC_state ) {
+            name_list= RExC_paren_name_list;
+        }
+        if ( name_list ) {
+            if ( k != REF || (op < REFN)) {
+                UV logical_parno = parno;
+                if (prog->parno_to_logical)
+                    logical_parno = prog->parno_to_logical[parno];
+
+                Perl_sv_catpvf(aTHX_ sv, "%" UVuf, (UV)logical_parno);     /* Parenth number */
+                if (parno != logical_parno)
+                    Perl_sv_catpvf(aTHX_ sv, "/%" UVuf, (UV)parno);        /* Parenth number */
+
+                SV **name= av_fetch_simple(name_list, parno, 0 );
+                if (name)
+                    Perl_sv_catpvf(aTHX_ sv, " '%" SVf "'", SVfARG(*name));
+            }
+            else
+            if (parno > 0) {
+                /* parno must always be larger than 0 for this block
+                 * as it represents a slot into the data array, which
+                 * has the 0 slot reserved for a placeholder so any valid
+                 * index into it is always true, eg non-zero
+                 * see the '%' "what" type and the implementation of
+                 * S_reg_add_data()
+                 */
+                SV *sv_dat= MUTABLE_SV(progi->data->data[ parno ]);
+                I32 *nums=(I32*)SvPVX(sv_dat);
+                SV **name= av_fetch_simple(name_list, nums[0], 0 );
+                I32 n;
+                if (name) {
+                    for ( n=0; n<SvIVX(sv_dat); n++ ) {
+                        Perl_sv_catpvf(aTHX_ sv, "%s%" IVdf,
+                                    (n ? "," : ""), (IV)nums[n]);
+                    }
+                    Perl_sv_catpvf(aTHX_ sv, " '%" SVf "'", SVfARG(*name));
+                }
+            }
+        } else if (parno>0) {
+            UV logical_parno = parno;
+            if (prog->parno_to_logical)
+                logical_parno = prog->parno_to_logical[parno];
+
+            Perl_sv_catpvf(aTHX_ sv, "%" UVuf, (UV)logical_parno);     /* Parenth number */
+            if (logical_parno != parno)
+                Perl_sv_catpvf(aTHX_ sv, "/%" UVuf, (UV)parno);     /* Parenth number */
+
+        }
+        if ( k == REF ) {
+            Perl_sv_catpvf(aTHX_ sv, " <%" IVdf ">", (IV)ARG2i(o));
+        }
+        if ( k == REF && reginfo) {
+            U32 n = ARG1u(o);  /* which paren pair */
+            I32 ln = RXp_OFFS_START(prog,n);
+            if (RXp_LASTPAREN(prog) < n || ln == -1 || RXp_OFFS_END(prog,n) == -1)
+                Perl_sv_catpvf(aTHX_ sv, ": FAIL");
+            else if (ln == RXp_OFFS_END(prog,n))
+                Perl_sv_catpvf(aTHX_ sv, ": ACCEPT - EMPTY STRING");
+            else {
+                const char *s = reginfo->strbeg + ln;
+                Perl_sv_catpvf(aTHX_ sv, ": ");
+                Perl_pv_pretty( aTHX_ sv, s, RXp_OFFS_END(prog,n) - RXp_OFFS_START(prog,n), 32, 0, 0,
+                    PERL_PV_ESCAPE_UNI_DETECT|PERL_PV_PRETTY_NOCLEAR|PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE );
+            }
+        }
+    } else if (k == GOSUB) {
+        AV *name_list= NULL;
+        IV parno = ARG1u(o);
+        IV logical_parno = (parno && prog->parno_to_logical)
+                         ? prog->parno_to_logical[parno]
+                         : parno;
+        if ( RXp_PAREN_NAMES(prog) ) {
+            name_list= MUTABLE_AV(progi->data->data[progi->name_list_idx]);
+        } else if ( pRExC_state ) {
+            name_list= RExC_paren_name_list;
+        }
+
+        /* Paren and offset */
+        Perl_sv_catpvf(aTHX_ sv, "%" IVdf, logical_parno);
+        if (logical_parno != parno)
+            Perl_sv_catpvf(aTHX_ sv, "/%" IVdf, parno);
+
+        Perl_sv_catpvf(aTHX_ sv, "[%+d:%d]", (int)ARG2i(o),
+                (int)((o + (int)ARG2i(o)) - progi->program) );
+        if (name_list) {
+            SV **name= av_fetch_simple(name_list, ARG1u(o), 0 );
+            if (name)
+                Perl_sv_catpvf(aTHX_ sv, " '%" SVf "'", SVfARG(*name));
+        }
+    }
+    else if (k == LOGICAL)
+        /* 2: embedded, otherwise 1 */
+        Perl_sv_catpvf(aTHX_ sv, "[%d]", FLAGS(o));
+    else if (k == ANYOF || k == ANYOFH || k == ANYOFR) {
+        U8 flags;
+        char * bitmap;
+        U8 do_sep = 0;    /* Do we need to separate various components of the
+                             output? */
+        /* Set if there is still an unresolved user-defined property */
+        SV *unresolved                = NULL;
+
+        /* Things that are ignored except when the runtime locale is UTF-8 */
+        SV *only_utf8_locale_invlist = NULL;
+
+        /* Code points that don't fit in the bitmap */
+        SV *nonbitmap_invlist = NULL;
+
+        /* And things that aren't in the bitmap, but are small enough to be */
+        SV* bitmap_range_not_in_bitmap = NULL;
+
+        bool inverted;
+
+        if (k != ANYOF) {
+            flags = 0;
+            bitmap = NULL;
+        }
+        else {
+            flags = ANYOF_FLAGS(o);
+            bitmap = ANYOF_BITMAP(o);
+        }
+
+        if (op == ANYOFL || op == ANYOFPOSIXL) {
+            if ((flags & ANYOFL_UTF8_LOCALE_REQD)) {
+                sv_catpvs(sv, "{utf8-locale-reqd}");
+            }
+            if (flags & ANYOFL_FOLD) {
+                sv_catpvs(sv, "{i}");
+            }
+        }
+
+        inverted = flags & ANYOF_INVERT;
+
+        /* If there is stuff outside the bitmap, get it */
+        if (k == ANYOFR) {
+
+            /* For a single range, split into the parts inside vs outside the
+             * bitmap. */
+            UV start = ANYOFRbase(o);
+            UV end   = ANYOFRbase(o) + ANYOFRdelta(o);
+
+            if (start < NUM_ANYOF_CODE_POINTS) {
+                if (end < NUM_ANYOF_CODE_POINTS) {
+                    bitmap_range_not_in_bitmap
+                          = _add_range_to_invlist(bitmap_range_not_in_bitmap,
+                                                  start, end);
+                }
+                else {
+                    bitmap_range_not_in_bitmap
+                          = _add_range_to_invlist(bitmap_range_not_in_bitmap,
+                                                  start, NUM_ANYOF_CODE_POINTS);
+                    start = NUM_ANYOF_CODE_POINTS;
+                }
+            }
+
+            if (start >= NUM_ANYOF_CODE_POINTS) {
+                nonbitmap_invlist = _add_range_to_invlist(nonbitmap_invlist,
+                                                ANYOFRbase(o),
+                                                ANYOFRbase(o) + ANYOFRdelta(o));
+            }
+        }
+        else if (ANYOF_MATCHES_ALL_OUTSIDE_BITMAP(o)) {
+            nonbitmap_invlist = _add_range_to_invlist(nonbitmap_invlist,
+                                                      NUM_ANYOF_CODE_POINTS,
+                                                      UV_MAX);
+        }
+        else if (ANYOF_HAS_AUX(o)) {
+                (void) GET_REGCLASS_AUX_DATA(prog, o, FALSE,
+                                                &unresolved,
+                                                &only_utf8_locale_invlist,
+                                                &nonbitmap_invlist);
+
+            /* The aux data may contain stuff that could fit in the bitmap.
+             * This could come from a user-defined property being finally
+             * resolved when this call was done; or much more likely because
+             * there are matches that require UTF-8 to be valid, and so aren't
+             * in the bitmap (or ANYOFR).  This is teased apart later */
+            _invlist_intersection(nonbitmap_invlist,
+                                  PL_InBitmap,
+                                  &bitmap_range_not_in_bitmap);
+            /* Leave just the things that don't fit into the bitmap */
+            _invlist_subtract(nonbitmap_invlist,
+                              PL_InBitmap,
+                              &nonbitmap_invlist);
+        }
+
+        /* Ready to start outputting.  First, the initial left bracket */
+        Perl_sv_catpvf(aTHX_ sv, "[%s", PL_colors[0]);
+
+        if (   bitmap
+            || bitmap_range_not_in_bitmap
+            || only_utf8_locale_invlist
+            || unresolved)
+        {
+            /* Then all the things that could fit in the bitmap */
+            do_sep = put_charclass_bitmap_innards(
+                                    sv,
+                                    bitmap,
+                                    bitmap_range_not_in_bitmap,
+                                    only_utf8_locale_invlist,
+                                    o,
+                                    flags,
+
+                                    /* Can't try inverting for a
+                                                   * better display if there
+                                                   * are things that haven't
+                                                   * been resolved */
+                                    (unresolved != NULL || k == ANYOFR));
+            SvREFCNT_dec(bitmap_range_not_in_bitmap);
+
+            /* If there are user-defined properties which haven't been defined
+             * yet, output them.  If the result is not to be inverted, it is
+             * clearest to output them in a separate [] from the bitmap range
+             * stuff.  If the result is to be complemented, we have to show
+             * everything in one [], as the inversion applies to the whole
+             * thing.  Use {braces} to separate them from anything in the
+             * bitmap and anything above the bitmap. */
+            if (unresolved) {
+                if (inverted) {
+                    if (! do_sep) { /* If didn't output anything in the bitmap
+                                     */
+                        sv_catpvs(sv, "^");
+                    }
+                    sv_catpvs(sv, "{");
+                }
+                else if (do_sep) {
+                    Perl_sv_catpvf(aTHX_ sv,"%s][%s", PL_colors[1],
+                                                      PL_colors[0]);
+                }
+                sv_catsv(sv, unresolved);
+                if (inverted) {
+                    sv_catpvs(sv, "}");
+                }
+                do_sep = ! inverted;
+            }
+            else if (     do_sep == 2
+                     && ! nonbitmap_invlist
+                     &&   ANYOF_MATCHES_NONE_OUTSIDE_BITMAP(o))
+            {
+                /* Here, the display shows the class as inverted, and
+                 * everything above the lower display should also match, but
+                 * there is no indication of that.  Add this range so the code
+                 * below will add it to the display */
+                _invlist_union_complement_2nd(nonbitmap_invlist,
+                                              PL_InBitmap,
+                                              &nonbitmap_invlist);
+            }
+        }
+
+        /* And, finally, add the above-the-bitmap stuff */
+        if (nonbitmap_invlist && _invlist_len(nonbitmap_invlist)) {
+            SV* contents;
+
+            /* See if truncation size is overridden */
+            const STRLEN dump_len = (PL_dump_re_max_len > 256)
+                                    ? PL_dump_re_max_len
+                                    : 256;
+
+            /* This is output in a separate [] */
+            if (do_sep) {
+                Perl_sv_catpvf(aTHX_ sv,"%s][%s", PL_colors[1], PL_colors[0]);
+            }
+
+            /* And, for easy of understanding, it is shown in the
+             * uncomplemented form if possible.  The one exception being if
+             * there are unresolved items, where the inversion has to be
+             * delayed until runtime */
+            if (inverted && ! unresolved) {
+                _invlist_invert(nonbitmap_invlist);
+                _invlist_subtract(nonbitmap_invlist, PL_InBitmap, &nonbitmap_invlist);
+            }
+
+            contents = invlist_contents(nonbitmap_invlist,
+                                        FALSE /* output suitable for catsv */
+                                       );
+
+            /* If the output is shorter than the permissible maximum, just do it. */
+            if (SvCUR(contents) <= dump_len) {
+                sv_catsv(sv, contents);
+            }
+            else {
+                const char * contents_string = SvPVX(contents);
+                STRLEN i = dump_len;
+
+                /* Otherwise, start at the permissible max and work back to the
+                 * first break possibility */
+                while (i > 0 && contents_string[i] != ' ') {
+                    i--;
+                }
+                if (i == 0) {       /* Fail-safe.  Use the max if we couldn't
+                                       find a legal break */
+                    i = dump_len;
+                }
+
+                sv_catpvn(sv, contents_string, i);
+                sv_catpvs(sv, "...");
+            }
+
+            SvREFCNT_dec_NN(contents);
+            SvREFCNT_dec_NN(nonbitmap_invlist);
+        }
+
+        /* And finally the matching, closing ']' */
+        Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
+
+        if (op == ANYOFHs) {
+            Perl_sv_catpvf(aTHX_ sv, " (Leading UTF-8 bytes=%s", _byte_dump_string((U8 *) ((struct regnode_anyofhs *) o)->string, FLAGS(o), 1));
+        }
+        else if (REGNODE_TYPE(op) != ANYOF) {
+            U8 lowest = (op != ANYOFHr)
+                         ? FLAGS(o)
+                         : LOWEST_ANYOF_HRx_BYTE(FLAGS(o));
+            U8 highest = (op == ANYOFHr)
+                         ? HIGHEST_ANYOF_HRx_BYTE(FLAGS(o))
+                         : (op == ANYOFH || op == ANYOFR)
+                           ? 0xFF
+                           : lowest;
+#ifndef EBCDIC
+            if (op != ANYOFR || ! isASCII(ANYOFRbase(o) + ANYOFRdelta(o)))
+#endif
+            {
+                Perl_sv_catpvf(aTHX_ sv, " (First UTF-8 byte=%02X", lowest);
+                if (lowest != highest) {
+                    Perl_sv_catpvf(aTHX_ sv, "-%02X", highest);
+                }
+                Perl_sv_catpvf(aTHX_ sv, ")");
+            }
+        }
+
+        SvREFCNT_dec(unresolved);
+    }
+    else if (k == ANYOFM) {
+        SV * cp_list = get_ANYOFM_contents(o);
+
+        Perl_sv_catpvf(aTHX_ sv, "[%s", PL_colors[0]);
+        if (op == NANYOFM) {
+            _invlist_invert(cp_list);
+        }
+
+        put_charclass_bitmap_innards(sv, NULL, cp_list, NULL, NULL, 0, TRUE);
+        Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
+
+        SvREFCNT_dec(cp_list);
+    }
+    else if (k == ANYOFHbbm) {
+        SV * cp_list = get_ANYOFHbbm_contents(o);
+        Perl_sv_catpvf(aTHX_ sv, "[%s", PL_colors[0]);
+
+        sv_catsv(sv, invlist_contents(cp_list,
+                                      FALSE /* output suitable for catsv */
+                                     ));
+        Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
+
+        SvREFCNT_dec(cp_list);
+    }
+    else if (k == POSIXD || k == NPOSIXD) {
+        U8 index = FLAGS(o) * 2;
+        if (index < C_ARRAY_LENGTH(anyofs)) {
+            if (*anyofs[index] != '[')  {
+                sv_catpvs(sv, "[");
+            }
+            sv_catpv(sv, anyofs[index]);
+            if (*anyofs[index] != '[')  {
+                sv_catpvs(sv, "]");
+            }
+        }
+        else {
+            Perl_sv_catpvf(aTHX_ sv, "[illegal type=%d])", index);
+        }
+    }
+    else if (k == BOUND || k == NBOUND) {
+        /* Must be synced with order of 'bound_type' in regcomp.h */
+        const char * const bounds[] = {
+            "",      /* Traditional */
+            "{gcb}",
+            "{lb}",
+            "{sb}",
+            "{wb}"
+        };
+        assert(FLAGS(o) < C_ARRAY_LENGTH(bounds));
+        sv_catpv(sv, bounds[FLAGS(o)]);
+    }
+    else if (k == BRANCHJ && (op == UNLESSM || op == IFMATCH)) {
+        Perl_sv_catpvf(aTHX_ sv, "[%d", -(FLAGS(o)));
+        if (NEXT_OFF(o)) {
+            Perl_sv_catpvf(aTHX_ sv, "..-%d", FLAGS(o) - NEXT_OFF(o));
+        }
+        Perl_sv_catpvf(aTHX_ sv, "]");
+    }
+    else if (op == SBOL)
+        Perl_sv_catpvf(aTHX_ sv, " /%s/", FLAGS(o) ? "\\A" : "^");
+    else if (op == EVAL) {
+        if (FLAGS(o) & EVAL_OPTIMISTIC_FLAG)
+            Perl_sv_catpvf(aTHX_ sv, " optimistic");
+    }
+
+    /* add on the verb argument if there is one */
+    if ( ( k == VERB || op == ACCEPT || op == OPFAIL ) && FLAGS(o)) {
+        if ( ARG1u(o) )
+            Perl_sv_catpvf(aTHX_ sv, ":%" SVf,
+                       SVfARG((MUTABLE_SV(progi->data->data[ ARG1u( o ) ]))));
+        else
+            sv_catpvs(sv, ":NULL");
+    }
+#else
+    PERL_UNUSED_CONTEXT;
+    PERL_UNUSED_ARG(sv);
+    PERL_UNUSED_ARG(o);
+    PERL_UNUSED_ARG(prog);
+    PERL_UNUSED_ARG(reginfo);
+    PERL_UNUSED_ARG(pRExC_state);
+#endif  /* DEBUGGING */
+}
+
+#ifdef DEBUGGING
+
+STATIC void
+S_put_code_point(pTHX_ SV *sv, UV c)
+{
+    PERL_ARGS_ASSERT_PUT_CODE_POINT;
+
+    if (c > 255) {
+        Perl_sv_catpvf(aTHX_ sv, "\\x{%04" UVXf "}", c);
+    }
+    else if (isPRINT(c)) {
+        const char string = (char) c;
+
+        /* We use {phrase} as metanotation in the class, so also escape literal
+         * braces */
+        if (isBACKSLASHED_PUNCT(c) || c == '{' || c == '}')
+            sv_catpvs(sv, "\\");
+        sv_catpvn(sv, &string, 1);
+    }
+    else if (isMNEMONIC_CNTRL(c)) {
+        Perl_sv_catpvf(aTHX_ sv, "%s", cntrl_to_mnemonic((U8) c));
+    }
+    else {
+        Perl_sv_catpvf(aTHX_ sv, "\\x%02X", (U8) c);
+    }
+}
+
+STATIC void
+S_put_range(pTHX_ SV *sv, UV start, const UV end, const bool allow_literals)
+{
+    /* Appends to 'sv' a displayable version of the range of code points from
+     * 'start' to 'end'.  Mnemonics (like '\r') are used for the few controls
+     * that have them, when they occur at the beginning or end of the range.
+     * It uses hex to output the remaining code points, unless 'allow_literals'
+     * is true, in which case the printable ASCII ones are output as-is (though
+     * some of these will be escaped by put_code_point()).
+     *
+     * NOTE:  This is designed only for printing ranges of code points that fit
+     *        inside an ANYOF bitmap.  Higher code points are simply suppressed
+     */
+
+    const unsigned int min_range_count = 3;
+
+    assert(start <= end);
+
+    PERL_ARGS_ASSERT_PUT_RANGE;
+
+    while (start <= end) {
+        UV this_end;
+        const char * format;
+
+        if (    end - start < min_range_count
+            && (end - start <= 2 || (isPRINT_A(start) && isPRINT_A(end))))
+        {
+            /* Output a range of 1 or 2 chars individually, or longer ranges
+             * when printable */
+            for (; start <= end; start++) {
+                put_code_point(sv, start);
+            }
+            break;
+        }
+
+        /* If permitted by the input options, and there is a possibility that
+         * this range contains a printable literal, look to see if there is
+         * one. */
+        if (allow_literals && start <= MAX_PRINT_A) {
+
+            /* If the character at the beginning of the range isn't an ASCII
+             * printable, effectively split the range into two parts:
+             *  1) the portion before the first such printable,
+             *  2) the rest
+             * and output them separately. */
+            if (! isPRINT_A(start)) {
+                UV temp_end = start + 1;
+
+                /* There is no point looking beyond the final possible
+                 * printable, in MAX_PRINT_A */
+                UV max = MIN(end, MAX_PRINT_A);
+
+                while (temp_end <= max && ! isPRINT_A(temp_end)) {
+                    temp_end++;
+                }
+
+                /* Here, temp_end points to one beyond the first printable if
+                 * found, or to one beyond 'max' if not.  If none found, make
+                 * sure that we use the entire range */
+                if (temp_end > MAX_PRINT_A) {
+                    temp_end = end + 1;
+                }
+
+                /* Output the first part of the split range: the part that
+                 * doesn't have printables, with the parameter set to not look
+                 * for literals (otherwise we would infinitely recurse) */
+                put_range(sv, start, temp_end - 1, FALSE);
+
+                /* The 2nd part of the range (if any) starts here. */
+                start = temp_end;
+
+                /* We do a continue, instead of dropping down, because even if
+                 * the 2nd part is non-empty, it could be so short that we want
+                 * to output it as individual characters, as tested for at the
+                 * top of this loop.  */
+                continue;
+            }
+
+            /* Here, 'start' is a printable ASCII.  If it is an alphanumeric,
+             * output a sub-range of just the digits or letters, then process
+             * the remaining portion as usual. */
+            if (isALPHANUMERIC_A(start)) {
+                UV mask = (isDIGIT_A(start))
+                           ? CC_DIGIT_
+                             : isUPPER_A(start)
+                               ? CC_UPPER_
+                               : CC_LOWER_;
+                UV temp_end = start + 1;
+
+                /* Find the end of the sub-range that includes just the
+                 * characters in the same class as the first character in it */
+                while (temp_end <= end && generic_isCC_A_(temp_end, mask)) {
+                    temp_end++;
+                }
+                temp_end--;
+
+                /* For short ranges, don't duplicate the code above to output
+                 * them; just call recursively */
+                if (temp_end - start < min_range_count) {
+                    put_range(sv, start, temp_end, FALSE);
+                }
+                else {  /* Output as a range */
+                    put_code_point(sv, start);
+                    sv_catpvs(sv, "-");
+                    put_code_point(sv, temp_end);
+                }
+                start = temp_end + 1;
+                continue;
+            }
+
+            /* We output any other printables as individual characters */
+            if (isPUNCT_A(start) || isSPACE_A(start)) {
+                while (start <= end && (isPUNCT_A(start)
+                                        || isSPACE_A(start)))
+                {
+                    put_code_point(sv, start);
+                    start++;
+                }
+                continue;
+            }
+        } /* End of looking for literals */
+
+        /* Here is not to output as a literal.  Some control characters have
+         * mnemonic names.  Split off any of those at the beginning and end of
+         * the range to print mnemonically.  It isn't possible for many of
+         * these to be in a row, so this won't overwhelm with output */
+        if (   start <= end
+            && (isMNEMONIC_CNTRL(start) || isMNEMONIC_CNTRL(end)))
+        {
+            while (isMNEMONIC_CNTRL(start) && start <= end) {
+                put_code_point(sv, start);
+                start++;
+            }
+
+            /* If this didn't take care of the whole range ... */
+            if (start <= end) {
+
+                /* Look backwards from the end to find the final non-mnemonic
+                 * */
+                UV temp_end = end;
+                while (isMNEMONIC_CNTRL(temp_end)) {
+                    temp_end--;
+                }
+
+                /* And separately output the interior range that doesn't start
+                 * or end with mnemonics */
+                put_range(sv, start, temp_end, FALSE);
+
+                /* Then output the mnemonic trailing controls */
+                start = temp_end + 1;
+                while (start <= end) {
+                    put_code_point(sv, start);
+                    start++;
+                }
+                break;
+            }
+        }
+
+        /* As a final resort, output the range or subrange as hex. */
+
+        if (start >= NUM_ANYOF_CODE_POINTS) {
+            this_end = end;
+        }
+        else {  /* Have to split range at the bitmap boundary */
+            this_end = (end < NUM_ANYOF_CODE_POINTS)
+                        ? end
+                        : NUM_ANYOF_CODE_POINTS - 1;
+        }
+#if NUM_ANYOF_CODE_POINTS > 256
+        format = (this_end < 256)
+                 ? "\\x%02" UVXf "-\\x%02" UVXf
+                 : "\\x{%04" UVXf "}-\\x{%04" UVXf "}";
+#else
+        format = "\\x%02" UVXf "-\\x%02" UVXf;
+#endif
+        GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral);
+        Perl_sv_catpvf(aTHX_ sv, format, start, this_end);
+        GCC_DIAG_RESTORE_STMT;
+        break;
+    }
+}
+
+STATIC void
+S_put_charclass_bitmap_innards_invlist(pTHX_ SV *sv, SV* invlist)
+{
+    /* Concatenate onto the PV in 'sv' a displayable form of the inversion list
+     * 'invlist' */
+
+    UV start, end;
+    bool allow_literals = TRUE;
+
+    PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_INVLIST;
+
+    /* Generally, it is more readable if printable characters are output as
+     * literals, but if a range (nearly) spans all of them, it's best to output
+     * it as a single range.  This code will use a single range if all but 2
+     * ASCII printables are in it */
+    invlist_iterinit(invlist);
+    while (invlist_iternext(invlist, &start, &end)) {
+
+        /* If the range starts beyond the final printable, it doesn't have any
+         * in it */
+        if (start > MAX_PRINT_A) {
+            break;
+        }
+
+        /* In both ASCII and EBCDIC, a SPACE is the lowest printable.  To span
+         * all but two, the range must start and end no later than 2 from
+         * either end */
+        if (start < ' ' + 2 && end > MAX_PRINT_A - 2) {
+            if (end > MAX_PRINT_A) {
+                end = MAX_PRINT_A;
+            }
+            if (start < ' ') {
+                start = ' ';
+            }
+            if (end - start >= MAX_PRINT_A - ' ' - 2) {
+                allow_literals = FALSE;
+            }
+            break;
+        }
+    }
+    invlist_iterfinish(invlist);
+
+    /* Here we have figured things out.  Output each range */
+    invlist_iterinit(invlist);
+    while (invlist_iternext(invlist, &start, &end)) {
+        if (start >= NUM_ANYOF_CODE_POINTS) {
+            break;
+        }
+        put_range(sv, start, end, allow_literals);
+    }
+    invlist_iterfinish(invlist);
+
+    return;
+}
+
+STATIC SV*
+S_put_charclass_bitmap_innards_common(pTHX_
+        SV* invlist,            /* The bitmap */
+        SV* posixes,            /* Under /l, things like [:word:], \S */
+        SV* only_utf8,          /* Under /d, matches iff the target is UTF-8 */
+        SV* not_utf8,           /* /d, matches iff the target isn't UTF-8 */
+        SV* only_utf8_locale,   /* Under /l, matches if the locale is UTF-8 */
+        const bool invert       /* Is the result to be inverted? */
+)
+{
+    /* Create and return an SV containing a displayable version of the bitmap
+     * and associated information determined by the input parameters.  If the
+     * output would have been only the inversion indicator '^', NULL is instead
+     * returned. */
+
+    SV * output;
+
+    PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS_COMMON;
+
+    if (invert) {
+        output = newSVpvs("^");
+    }
+    else {
+        output = newSVpvs("");
+    }
+
+    /* First, the code points in the bitmap that are unconditionally there */
+    put_charclass_bitmap_innards_invlist(output, invlist);
+
+    /* Traditionally, these have been placed after the main code points */
+    if (posixes) {
+        sv_catsv(output, posixes);
+    }
+
+    if (only_utf8 && _invlist_len(only_utf8)) {
+        Perl_sv_catpvf(aTHX_ output, "%s{utf8}%s", PL_colors[1], PL_colors[0]);
+        put_charclass_bitmap_innards_invlist(output, only_utf8);
+    }
+
+    if (not_utf8 && _invlist_len(not_utf8)) {
+        Perl_sv_catpvf(aTHX_ output, "%s{not utf8}%s", PL_colors[1], PL_colors[0]);
+        put_charclass_bitmap_innards_invlist(output, not_utf8);
+    }
+
+    if (only_utf8_locale && _invlist_len(only_utf8_locale)) {
+        Perl_sv_catpvf(aTHX_ output, "%s{utf8 locale}%s", PL_colors[1], PL_colors[0]);
+        put_charclass_bitmap_innards_invlist(output, only_utf8_locale);
+
+        /* This is the only list in this routine that can legally contain code
+         * points outside the bitmap range.  The call just above to
+         * 'put_charclass_bitmap_innards_invlist' will simply suppress them, so
+         * output them here.  There's about a half-dozen possible, and none in
+         * contiguous ranges longer than 2 */
+        if (invlist_highest(only_utf8_locale) >= NUM_ANYOF_CODE_POINTS) {
+            UV start, end;
+            SV* above_bitmap = NULL;
+
+            _invlist_subtract(only_utf8_locale, PL_InBitmap, &above_bitmap);
+
+            invlist_iterinit(above_bitmap);
+            while (invlist_iternext(above_bitmap, &start, &end)) {
+                UV i;
+
+                for (i = start; i <= end; i++) {
+                    put_code_point(output, i);
+                }
+            }
+            invlist_iterfinish(above_bitmap);
+            SvREFCNT_dec_NN(above_bitmap);
+        }
+    }
+
+    if (invert && SvCUR(output) == 1) {
+        return NULL;
+    }
+
+    return output;
+}
+
+STATIC U8
+S_put_charclass_bitmap_innards(pTHX_ SV *sv,
+                                     char *bitmap,
+                                     SV *nonbitmap_invlist,
+                                     SV *only_utf8_locale_invlist,
+                                     const regnode * const node,
+                                     const U8 flags,
+                                     const bool force_as_is_display)
+{
+    /* Appends to 'sv' a displayable version of the innards of the bracketed
+     * character class defined by the other arguments:
+     *  'bitmap' points to the bitmap, or NULL if to ignore that.
+     *  'nonbitmap_invlist' is an inversion list of the code points that are in
+     *      the bitmap range, but for some reason aren't in the bitmap; NULL if
+     *      none.  The reasons for this could be that they require some
+     *      condition such as the target string being or not being in UTF-8
+     *      (under /d), or because they came from a user-defined property that
+     *      was not resolved at the time of the regex compilation (under /u)
+     *  'only_utf8_locale_invlist' is an inversion list of the code points that
+     *      are valid only if the runtime locale is a UTF-8 one; NULL if none
+     *  'node' is the regex pattern ANYOF node.  It is needed only when the
+     *      above two parameters are not null, and is passed so that this
+     *      routine can tease apart the various reasons for them.
+     *  'flags' is the flags field of 'node'
+     *  'force_as_is_display' is TRUE if this routine should definitely NOT try
+     *      to invert things to see if that leads to a cleaner display.  If
+     *      FALSE, this routine is free to use its judgment about doing this.
+     *
+     * It returns 0 if nothing was actually output.  (It may be that
+     *              the bitmap, etc is empty.)
+     *            1 if the output wasn't inverted (didn't begin with a '^')
+     *            2 if the output was inverted (did begin with a '^')
+     *
+     * When called for outputting the bitmap of a non-ANYOF node, just pass the
+     * bitmap, with the succeeding parameters set to NULL, and the final one to
+     * FALSE.
+     */
+
+    /* In general, it tries to display the 'cleanest' representation of the
+     * innards, choosing whether to display them inverted or not, regardless of
+     * whether the class itself is to be inverted.  However,  there are some
+     * cases where it can't try inverting, as what actually matches isn't known
+     * until runtime, and hence the inversion isn't either. */
+
+    bool inverting_allowed = ! force_as_is_display;
+
+    int i;
+    STRLEN orig_sv_cur = SvCUR(sv);
+
+    SV* invlist;            /* Inversion list we accumulate of code points that
+                               are unconditionally matched */
+    SV* only_utf8 = NULL;   /* Under /d, list of matches iff the target is
+                               UTF-8 */
+    SV* not_utf8 =  NULL;   /* /d, list of matches iff the target isn't UTF-8
+                             */
+    SV* posixes = NULL;     /* Under /l, string of things like [:word:], \D */
+    SV* only_utf8_locale = NULL;    /* Under /l, list of matches if the locale
+                                       is UTF-8 */
+
+    SV* as_is_display;      /* The output string when we take the inputs
+                               literally */
+    SV* inverted_display;   /* The output string when we invert the inputs */
+
+    bool invert = cBOOL(flags & ANYOF_INVERT);  /* Is the input to be inverted
+                                                   to match? */
+    /* We are biased in favor of displaying things without them being inverted,
+     * as that is generally easier to understand */
+    const int bias = 5;
+
+    PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS;
+
+    /* Start off with whatever code points are passed in.  (We clone, so we
+     * don't change the caller's list) */
+    if (nonbitmap_invlist) {
+        assert(invlist_highest(nonbitmap_invlist) < NUM_ANYOF_CODE_POINTS);
+        invlist = invlist_clone(nonbitmap_invlist, NULL);
+    }
+    else {  /* Worst case size is every other code point is matched */
+        invlist = _new_invlist(NUM_ANYOF_CODE_POINTS / 2);
+    }
+
+    if (flags) {
+        if (OP(node) == ANYOFD) {
+
+            /* This flag indicates that the code points below 0x100 in the
+             * nonbitmap list are precisely the ones that match only when the
+             * target is UTF-8 (they should all be non-ASCII). */
+            if (flags & ANYOF_HAS_EXTRA_RUNTIME_MATCHES) {
+                _invlist_intersection(invlist, PL_UpperLatin1, &only_utf8);
+                _invlist_subtract(invlist, only_utf8, &invlist);
+            }
+
+            /* And this flag for matching all non-ASCII 0xFF and below */
+            if (flags & ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared) {
+                not_utf8 = invlist_clone(PL_UpperLatin1, NULL);
+            }
+        }
+        else if (OP(node) == ANYOFL || OP(node) == ANYOFPOSIXL) {
+
+            /* If either of these flags are set, what matches isn't
+             * determinable except during execution, so don't know enough here
+             * to invert */
+            if (flags & (ANYOFL_FOLD|ANYOF_MATCHES_POSIXL)) {
+                inverting_allowed = FALSE;
+            }
+
+            /* What the posix classes match also varies at runtime, so these
+             * will be output symbolically. */
+            if (ANYOF_POSIXL_TEST_ANY_SET(node)) {
+                int i;
+
+                posixes = newSVpvs("");
+                for (i = 0; i < ANYOF_POSIXL_MAX; i++) {
+                    if (ANYOF_POSIXL_TEST(node, i)) {
+                        sv_catpv(posixes, anyofs[i]);
+                    }
+                }
+            }
+        }
+    }
+
+    /* Accumulate the bit map into the unconditional match list */
+    if (bitmap) {
+        for (i = 0; i < NUM_ANYOF_CODE_POINTS; i++) {
+            if (BITMAP_TEST(bitmap, i)) {
+                int start = i++;
+                for (;
+                     i < NUM_ANYOF_CODE_POINTS && BITMAP_TEST(bitmap, i);
+                     i++)
+                { /* empty */ }
+                invlist = _add_range_to_invlist(invlist, start, i-1);
+            }
+        }
+    }
+
+    /* Make sure that the conditional match lists don't have anything in them
+     * that match unconditionally; otherwise the output is quite confusing.
+     * This could happen if the code that populates these misses some
+     * duplication. */
+    if (only_utf8) {
+        _invlist_subtract(only_utf8, invlist, &only_utf8);
+    }
+    if (not_utf8) {
+        _invlist_subtract(not_utf8, invlist, &not_utf8);
+    }
+
+    if (only_utf8_locale_invlist) {
+
+        /* Since this list is passed in, we have to make a copy before
+         * modifying it */
+        only_utf8_locale = invlist_clone(only_utf8_locale_invlist, NULL);
+
+        _invlist_subtract(only_utf8_locale, invlist, &only_utf8_locale);
+
+        /* And, it can get really weird for us to try outputting an inverted
+         * form of this list when it has things above the bitmap, so don't even
+         * try */
+        if (invlist_highest(only_utf8_locale) >= NUM_ANYOF_CODE_POINTS) {
+            inverting_allowed = FALSE;
+        }
+    }
+
+    /* Calculate what the output would be if we take the input as-is */
+    as_is_display = put_charclass_bitmap_innards_common(invlist,
+                                                    posixes,
+                                                    only_utf8,
+                                                    not_utf8,
+                                                    only_utf8_locale,
+                                                    invert);
+
+    /* If have to take the output as-is, just do that */
+    if (! inverting_allowed) {
+        if (as_is_display) {
+            sv_catsv(sv, as_is_display);
+            SvREFCNT_dec_NN(as_is_display);
+        }
+    }
+    else { /* But otherwise, create the output again on the inverted input, and
+              use whichever version is shorter */
+
+        int inverted_bias, as_is_bias;
+
+        /* We will apply our bias to whichever of the results doesn't have
+         * the '^' */
+        bool trial_invert;
+        if (invert) {
+            trial_invert = FALSE;
+            as_is_bias = bias;
+            inverted_bias = 0;
+        }
+        else {
+            trial_invert = TRUE;
+            as_is_bias = 0;
+            inverted_bias = bias;
+        }
+
+        /* Now invert each of the lists that contribute to the output,
+         * excluding from the result things outside the possible range */
+
+        /* For the unconditional inversion list, we have to add in all the
+         * conditional code points, so that when inverted, they will be gone
+         * from it */
+        _invlist_union(only_utf8, invlist, &invlist);
+        _invlist_union(not_utf8, invlist, &invlist);
+        _invlist_union(only_utf8_locale, invlist, &invlist);
+        _invlist_invert(invlist);
+        _invlist_intersection(invlist, PL_InBitmap, &invlist);
+
+        if (only_utf8) {
+            _invlist_invert(only_utf8);
+            _invlist_intersection(only_utf8, PL_UpperLatin1, &only_utf8);
+        }
+        else if (not_utf8) {
+
+            /* If a code point matches iff the target string is not in UTF-8,
+             * then complementing the result has it not match iff not in UTF-8,
+             * which is the same thing as matching iff it is UTF-8. */
+            only_utf8 = not_utf8;
+            not_utf8 = NULL;
+        }
+
+        if (only_utf8_locale) {
+            _invlist_invert(only_utf8_locale);
+            _invlist_intersection(only_utf8_locale,
+                                  PL_InBitmap,
+                                  &only_utf8_locale);
+        }
+
+        inverted_display = put_charclass_bitmap_innards_common(
+                                            invlist,
+                                            posixes,
+                                            only_utf8,
+                                            not_utf8,
+                                            only_utf8_locale, trial_invert);
+
+        /* Use the shortest representation, taking into account our bias
+         * against showing it inverted */
+        if (   inverted_display
+            && (   ! as_is_display
+                || (  SvCUR(inverted_display) + inverted_bias
+                    < SvCUR(as_is_display)    + as_is_bias)))
+        {
+            sv_catsv(sv, inverted_display);
+            invert = ! invert;
+        }
+        else if (as_is_display) {
+            sv_catsv(sv, as_is_display);
+        }
+
+        SvREFCNT_dec(as_is_display);
+        SvREFCNT_dec(inverted_display);
+    }
+
+    SvREFCNT_dec_NN(invlist);
+    SvREFCNT_dec(only_utf8);
+    SvREFCNT_dec(not_utf8);
+    SvREFCNT_dec(posixes);
+    SvREFCNT_dec(only_utf8_locale);
+
+    U8 did_output_something = (bool) (SvCUR(sv) > orig_sv_cur);
+    if (did_output_something) {
+        /* Distinguish between non and inverted cases */
+        did_output_something += invert;
+    }
+
+    return did_output_something;
+}
+
+
+const regnode *
+Perl_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node,
+            const regnode *last, const regnode *plast,
+            SV* sv, I32 indent, U32 depth)
+{
+    const regnode *next;
+    const regnode *optstart= NULL;
+
+    RXi_GET_DECL(r, ri);
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_DUMPUNTIL;
+
+#ifdef DEBUG_DUMPUNTIL
+    Perl_re_printf( aTHX_  "--- %d : %d - %d - %d\n", indent, node-start,
+        last ? last-start : 0, plast ? plast-start : 0);
+#endif
+
+    if (plast && plast < last)
+        last= plast;
+
+    while (node && (!last || node < last)) {
+        const U8 op = OP(node);
+
+        if (op == CLOSE || op == SRCLOSE || op == WHILEM)
+            indent--;
+        next = regnext((regnode *)node);
+        const regnode *after = regnode_after((regnode *)node,0);
+
+        /* Where, what. */
+        if (op == OPTIMIZED) {
+            if (!optstart && RE_DEBUG_FLAG(RE_DEBUG_COMPILE_OPTIMISE))
+                optstart = node;
+            else
+                goto after_print;
+        } else
+            CLEAR_OPTSTART;
+
+        regprop(r, sv, node, NULL, NULL);
+        Perl_re_printf( aTHX_  "%4" IVdf ":%*s%s", (IV)(node - start),
+                      (int)(2*indent + 1), "", SvPVX_const(sv));
+
+        if (op != OPTIMIZED) {
+            if (next == NULL)           /* Next ptr. */
+                Perl_re_printf( aTHX_  " (0)");
+            else if (REGNODE_TYPE(op) == BRANCH
+                     && REGNODE_TYPE(OP(next)) != BRANCH )
+                Perl_re_printf( aTHX_  " (FAIL)");
+            else
+                Perl_re_printf( aTHX_  " (%" IVdf ")", (IV)(next - start));
+            Perl_re_printf( aTHX_ "\n");
+        }
+
+      after_print:
+        if (REGNODE_TYPE(op) == BRANCHJ) {
+            assert(next);
+            const regnode *nnode = (OP(next) == LONGJMP
+                                   ? regnext((regnode *)next)
+                                   : next);
+            if (last && nnode > last)
+                nnode = last;
+            DUMPUNTIL(after, nnode);
+        }
+        else if (REGNODE_TYPE(op) == BRANCH) {
+            assert(next);
+            DUMPUNTIL(after, next);
+        }
+        else if ( REGNODE_TYPE(op)  == TRIE ) {
+            const regnode *this_trie = node;
+            const U32 n = ARG1u(node);
+            const reg_ac_data * const ac = op>=AHOCORASICK ?
+               (reg_ac_data *)ri->data->data[n] :
+               NULL;
+            const reg_trie_data * const trie =
+                (reg_trie_data*)ri->data->data[op<AHOCORASICK ? n : ac->trie];
+#ifdef DEBUGGING
+            AV *const trie_words
+                           = MUTABLE_AV(ri->data->data[n + TRIE_WORDS_OFFSET]);
+#endif
+            const regnode *nextbranch= NULL;
+            I32 word_idx;
+            SvPVCLEAR(sv);
+            for (word_idx= 0; word_idx < (I32)trie->wordcount; word_idx++) {
+                SV ** const elem_ptr = av_fetch_simple(trie_words, word_idx, 0);
+
+                Perl_re_indentf( aTHX_  "%s ",
+                    indent+3,
+                    elem_ptr
+                    ? pv_pretty(sv, SvPV_nolen_const(*elem_ptr),
+                                SvCUR(*elem_ptr), PL_dump_re_max_len,
+                                PL_colors[0], PL_colors[1],
+                                (SvUTF8(*elem_ptr)
+                                 ? PERL_PV_ESCAPE_UNI
+                                 : 0)
+                                | PERL_PV_PRETTY_ELLIPSES
+                                | PERL_PV_PRETTY_LTGT
+                            )
+                    : "???"
+                );
+                if (trie->jump) {
+                    U16 dist= trie->jump[word_idx+1];
+                    Perl_re_printf( aTHX_  "(%" UVuf ")\n",
+                               (UV)((dist ? this_trie + dist : next) - start));
+                    if (dist) {
+                        if (!nextbranch)
+                            nextbranch= this_trie + trie->jump[0];
+                        DUMPUNTIL(this_trie + dist, nextbranch);
+                    }
+                    if (nextbranch && REGNODE_TYPE(OP(nextbranch))==BRANCH)
+                        nextbranch= regnext((regnode *)nextbranch);
+                } else {
+                    Perl_re_printf( aTHX_  "\n");
+                }
+            }
+            if (last && next > last)
+                node= last;
+            else
+                node= next;
+        }
+        else if ( op == CURLY ) {   /* "next" might be very big: optimizer */
+            DUMPUNTIL(after, after + 1); /* +1 is NOT a REGNODE_AFTER */
+        }
+        else if (REGNODE_TYPE(op) == CURLY && op != CURLYX) {
+            assert(next);
+            DUMPUNTIL(after, next);
+        }
+        else if ( op == PLUS || op == STAR) {
+            DUMPUNTIL(after, after + 1); /* +1 NOT a REGNODE_AFTER */
+        }
+        else if (REGNODE_TYPE(op) == EXACT || op == ANYOFHs) {
+            /* Literal string, where present. */
+            node = (const regnode *)REGNODE_AFTER_varies(node);
+        }
+        else {
+            node = REGNODE_AFTER_opcode(node,op);
+        }
+        if (op == CURLYX || op == OPEN || op == SROPEN)
+            indent++;
+        if (REGNODE_TYPE(op) == END)
+            break;
+    }
+    CLEAR_OPTSTART;
+#ifdef DEBUG_DUMPUNTIL
+    Perl_re_printf( aTHX_  "--- %d\n", (int)indent);
+#endif
+    return node;
+}
+
+#endif  /* DEBUGGING */
Index: gnu/usr.bin/perl/regcomp_internal.h
===================================================================
RCS file: gnu/usr.bin/perl/regcomp_internal.h
diff -N gnu/usr.bin/perl/regcomp_internal.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regcomp_internal.h	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,1261 @@
+#ifndef REGCOMP_INTERNAL_H
+#define REGCOMP_INTERNAL_H
+#ifndef STATIC
+#define STATIC  static
+#endif
+#ifndef RE_OPTIMIZE_CURLYX_TO_CURLYM
+#define RE_OPTIMIZE_CURLYX_TO_CURLYM 1
+#endif
+#ifndef RE_OPTIMIZE_CURLYX_TO_CURLYN
+#define RE_OPTIMIZE_CURLYX_TO_CURLYN 1
+#endif
+
+/* this is a chain of data about sub patterns we are processing that
+   need to be handled separately/specially in study_chunk. Its so
+   we can simulate recursion without losing state.  */
+struct scan_frame;
+typedef struct scan_frame {
+    regnode *last_regnode;      /* last node to process in this frame */
+    regnode *next_regnode;      /* next node to process when last is reached */
+    U32 prev_recursed_depth;
+    I32 stopparen;              /* what stopparen do we use */
+    bool in_gosub;              /* this or an outer frame is for GOSUB */
+
+    struct scan_frame *this_prev_frame; /* this previous frame */
+    struct scan_frame *prev_frame;      /* previous frame */
+    struct scan_frame *next_frame;      /* next frame */
+} scan_frame;
+
+/* Certain characters are output as a sequence with the first being a
+ * backslash. */
+#define isBACKSLASHED_PUNCT(c)  memCHRs("-[]\\^", c)
+
+
+struct RExC_state_t {
+    U32         flags;                  /* RXf_* are we folding, multilining? */
+    U32         pm_flags;               /* PMf_* stuff from the calling PMOP */
+    char        *precomp;               /* uncompiled string. */
+    char        *precomp_end;           /* pointer to end of uncompiled string. */
+    REGEXP      *rx_sv;                 /* The SV that is the regexp. */
+    regexp      *rx;                    /* perl core regexp structure */
+    regexp_internal     *rxi;           /* internal data for regexp object
+                                           pprivate field */
+    char        *start;                 /* Start of input for compile */
+    char        *end;                   /* End of input for compile */
+    char        *parse;                 /* Input-scan pointer. */
+    char        *copy_start;            /* start of copy of input within
+                                           constructed parse string */
+    char        *save_copy_start;       /* Provides one level of saving
+                                           and restoring 'copy_start' */
+    char        *copy_start_in_input;   /* Position in input string
+                                           corresponding to copy_start */
+    SSize_t     whilem_seen;            /* number of WHILEM in this expr */
+    regnode     *emit_start;            /* Start of emitted-code area */
+    regnode_offset emit;                /* Code-emit pointer */
+    I32         naughty;                /* How bad is this pattern? */
+    I32         sawback;                /* Did we see \1, ...? */
+    SSize_t     size;                   /* Number of regnode equivalents in
+                                           pattern */
+    Size_t      sets_depth;              /* Counts recursion depth of already-
+                                           compiled regex set patterns */
+    U32         seen;
+
+    I32      parens_buf_size;           /* #slots malloced open/close_parens */
+    regnode_offset *open_parens;        /* offsets to open parens */
+    regnode_offset *close_parens;       /* offsets to close parens */
+    HV          *paren_names;           /* Paren names */
+
+    /* position beyond 'precomp' of the warning message furthest away from
+     * 'precomp'.  During the parse, no warnings are raised for any problems
+     * earlier in the parse than this position.  This works if warnings are
+     * raised the first time a given spot is parsed, and if only one
+     * independent warning is raised for any given spot */
+    Size_t      latest_warn_offset;
+
+    /* Branch reset /(?|...|...)/ gives us two concepts of capture buffer id.
+     * "Logical Parno" is the user visible view with branch reset taken into
+     * account. "Parno" (or physical parno) is the actual capture buffers in
+     * the pattern *NOT* taking into account branch reset. We also maintain
+     * a map of "next" pointers which allow us to skip to the next physical
+     * capture buffer with the same logical id, with 0 representing "none".
+     *
+     * As we compile we keep track of the two different counts using the
+     * 'logical_npar' and 'npar' members, and we keep track of the upper bound
+     * of both in 'total_par' and 'logical_total_par', we also populate
+     * the 'logical_to_parno' map, which gives us the first physical parno
+     * for a given logical parno, and the `parno_to_logical` array which gives
+     * us the logical id for each physical parno. When compilation is
+     * completed we construct the 'parno_to_logical_next' array from the
+     * 'parno_to_logical' array. (We do not bother constructing it during
+     * compilation as we do not need it, and we can construct it in O(N) time
+     * once we are done, but would need more complicated logic during the
+     * compile, because we want the next pointers to go from smallest to
+     * largest, eg, left to right.)
+     *
+     * Logical: $1      $2  $3  $4    $2  $3    $2    $5
+     * Physical: 1       2   3   4     5   6     7     8
+     * Next:     0       5   6   0     7   0     0     0
+     * Pattern /(a) (?| (b) (c) (d) | (e) (f) | (g) ) (h)/
+     *
+     * As much as possible the internals use and store the physical id of
+     * of capture buffers. We decode the physical to the logical only when
+     * we need to, for instance when someone use $2.
+     *
+     * Note that when branch reset is not used logical and physical are the
+     * same and the next data would be all zero. So when branch reset is not
+     * used we do not need to populate this data into the final regexp.
+     *
+     */
+    I32         *logical_to_parno;        /* logical_parno to parno */
+    I32         *parno_to_logical;        /* parno to logical_parno */
+    I32         *parno_to_logical_next;   /* parno to next (greater value)
+                                             parno with the same
+                                             logical_parno as parno.*/
+
+    I32         npar;                   /* Capture buffer count so far in the
+                                           parse, (OPEN) plus one. ("par" 0 is
+                                           the whole pattern)*/
+    I32         logical_npar;           /* Logical version of npar */
+    I32         total_par;              /* During initial parse, is either 0,
+                                           or -1; the latter indicating a
+                                           reparse is needed.  After that pass,
+                                           it is what 'npar' became after the
+                                           pass.  Hence, it being > 0 indicates
+                                           we are in a reparse situation */
+    I32         logical_total_par;      /* Logical version to total par */
+    I32         nestroot;               /* root parens we are in - used by
+                                           accept */
+    I32         seen_zerolen;
+    regnode     *end_op;                /* END node in program */
+    I32         utf8;           /* whether the pattern is utf8 or not */
+    I32         orig_utf8;      /* whether the pattern was originally in utf8 */
+                                /* XXX use this for future optimisation of case
+                                 * where pattern must be upgraded to utf8. */
+    I32         uni_semantics;  /* If a d charset modifier should use unicode
+                                   rules, even if the pattern is not in
+                                   utf8 */
+
+    I32         recurse_count;          /* Number of recurse regops we have generated */
+    regnode     **recurse;              /* Recurse regops */
+    U8          *study_chunk_recursed;  /* bitmap of which subs we have moved
+                                           through */
+    U32         study_chunk_recursed_bytes;  /* bytes in bitmap */
+    I32         in_lookaround;
+    I32         contains_locale;
+    I32         override_recoding;
+    I32         recode_x_to_native;
+    I32         in_multi_char_class;
+    int         code_index;             /* next code_blocks[] slot */
+    struct reg_code_blocks *code_blocks;/* positions of literal (?{})
+                                            within pattern */
+    SSize_t     maxlen;                        /* mininum possible number of chars in string to match */
+    scan_frame *frame_head;
+    scan_frame *frame_last;
+    U32         frame_count;
+    AV         *warn_text;
+    HV         *unlexed_names;
+    SV          *runtime_code_qr;       /* qr with the runtime code blocks */
+#ifdef DEBUGGING
+    const char  *lastparse;
+    I32         lastnum;
+    U32         study_chunk_recursed_count;
+    AV          *paren_name_list;       /* idx -> name */
+    SV          *mysv1;
+    SV          *mysv2;
+#endif
+    bool        seen_d_op;
+    bool        strict;
+    bool        study_started;
+    bool        in_script_run;
+    bool        use_BRANCHJ;
+    bool        sWARN_EXPERIMENTAL__VLB;
+    bool        sWARN_EXPERIMENTAL__REGEX_SETS;
+};
+
+#ifdef DEBUGGING
+#define RExC_lastparse  (pRExC_state->lastparse)
+#define RExC_lastnum    (pRExC_state->lastnum)
+#define RExC_paren_name_list    (pRExC_state->paren_name_list)
+#define RExC_study_chunk_recursed_count    (pRExC_state->study_chunk_recursed_count)
+#define RExC_mysv       (pRExC_state->mysv1)
+#define RExC_mysv1      (pRExC_state->mysv1)
+#define RExC_mysv2      (pRExC_state->mysv2)
+#endif
+
+#define RExC_flags      (pRExC_state->flags)
+#define RExC_pm_flags   (pRExC_state->pm_flags)
+#define RExC_precomp    (pRExC_state->precomp)
+#define RExC_copy_start_in_input (pRExC_state->copy_start_in_input)
+#define RExC_copy_start_in_constructed  (pRExC_state->copy_start)
+#define RExC_save_copy_start_in_constructed  (pRExC_state->save_copy_start)
+#define RExC_precomp_end (pRExC_state->precomp_end)
+#define RExC_rx_sv      (pRExC_state->rx_sv)
+#define RExC_rx         (pRExC_state->rx)
+#define RExC_rxi        (pRExC_state->rxi)
+#define RExC_start      (pRExC_state->start)
+#define RExC_end        (pRExC_state->end)
+#define RExC_parse      (pRExC_state->parse)
+#define RExC_latest_warn_offset (pRExC_state->latest_warn_offset )
+#define RExC_whilem_seen        (pRExC_state->whilem_seen)
+#define RExC_seen_d_op (pRExC_state->seen_d_op) /* Seen something that differs
+                                                   under /d from /u ? */
+
+#define RExC_emit       (pRExC_state->emit)
+#define RExC_emit_start (pRExC_state->emit_start)
+#define RExC_sawback    (pRExC_state->sawback)
+#define RExC_seen       (pRExC_state->seen)
+#define RExC_size       (pRExC_state->size)
+#define RExC_maxlen        (pRExC_state->maxlen)
+#define RExC_logical_npar           (pRExC_state->logical_npar)
+#define RExC_logical_total_parens   (pRExC_state->logical_total_par)
+#define RExC_logical_to_parno       (pRExC_state->logical_to_parno)
+#define RExC_parno_to_logical       (pRExC_state->parno_to_logical)
+#define RExC_parno_to_logical_next  (pRExC_state->parno_to_logical_next)
+#define RExC_npar       (pRExC_state->npar)
+#define RExC_total_parens       (pRExC_state->total_par)
+#define RExC_parens_buf_size    (pRExC_state->parens_buf_size)
+#define RExC_nestroot   (pRExC_state->nestroot)
+#define RExC_seen_zerolen       (pRExC_state->seen_zerolen)
+#define RExC_utf8       (pRExC_state->utf8)
+#define RExC_uni_semantics      (pRExC_state->uni_semantics)
+#define RExC_orig_utf8  (pRExC_state->orig_utf8)
+#define RExC_open_parens        (pRExC_state->open_parens)
+#define RExC_close_parens       (pRExC_state->close_parens)
+#define RExC_end_op     (pRExC_state->end_op)
+#define RExC_paren_names        (pRExC_state->paren_names)
+#define RExC_recurse    (pRExC_state->recurse)
+#define RExC_recurse_count      (pRExC_state->recurse_count)
+#define RExC_sets_depth         (pRExC_state->sets_depth)
+#define RExC_study_chunk_recursed        (pRExC_state->study_chunk_recursed)
+#define RExC_study_chunk_recursed_bytes  \
+                                   (pRExC_state->study_chunk_recursed_bytes)
+#define RExC_in_lookaround      (pRExC_state->in_lookaround)
+#define RExC_contains_locale    (pRExC_state->contains_locale)
+#define RExC_recode_x_to_native (pRExC_state->recode_x_to_native)
+
+#ifdef EBCDIC
+#  define SET_recode_x_to_native(x)                                         \
+                    STMT_START { RExC_recode_x_to_native = (x); } STMT_END
+#else
+#  define SET_recode_x_to_native(x) NOOP
+#endif
+
+#define RExC_in_multi_char_class (pRExC_state->in_multi_char_class)
+#define RExC_frame_head (pRExC_state->frame_head)
+#define RExC_frame_last (pRExC_state->frame_last)
+#define RExC_frame_count (pRExC_state->frame_count)
+#define RExC_strict (pRExC_state->strict)
+#define RExC_study_started      (pRExC_state->study_started)
+#define RExC_warn_text (pRExC_state->warn_text)
+#define RExC_in_script_run      (pRExC_state->in_script_run)
+#define RExC_use_BRANCHJ        (pRExC_state->use_BRANCHJ)
+#define RExC_warned_WARN_EXPERIMENTAL__VLB (pRExC_state->sWARN_EXPERIMENTAL__VLB)
+#define RExC_warned_WARN_EXPERIMENTAL__REGEX_SETS (pRExC_state->sWARN_EXPERIMENTAL__REGEX_SETS)
+#define RExC_unlexed_names (pRExC_state->unlexed_names)
+
+
+/***********************************************************************/
+/* UTILITY MACROS FOR ADVANCING OR SETTING THE PARSE "CURSOR" RExC_parse
+ *
+ * All of these macros depend on the above RExC_ accessor macros, which
+ * in turns depend on a variable pRExC_state being in scope where they
+ * are used. This is the standard regexp parser context variable which is
+ * passed into every non-trivial parse function in this file.
+ *
+ * Note that the UTF macro is itself a wrapper around RExC_utf8, so all
+ * of the macros which do not take an argument will operate on the
+ * pRExC_state structure *only*.
+ *
+ * Please do NOT modify RExC_parse without using these macros. In the
+ * future these macros will be extended for enhanced debugging and trace
+ * output during the parse process.
+ */
+
+/* RExC_parse_incf(flag)
+ *
+ * Increment RExC_parse to point at the next codepoint, while doing
+ * the right thing depending on whether we are parsing UTF-8 strings
+ * or not. The 'flag' argument determines if content is UTF-8 or not,
+ * intended for cases where this is NOT governed by the UTF macro.
+ *
+ * Use RExC_parse_inc() if UTF-8ness is controlled by the UTF macro.
+ *
+ * WARNING: Does NOT take into account RExC_end; it is the callers
+ * responsibility to make sure there are enough octets left in
+ * RExC_parse to ensure that when processing UTF-8 we would not read
+ * past the end of the string.
+ */
+#define RExC_parse_incf(flag) STMT_START {              \
+    RExC_parse += (flag) ? UTF8SKIP(RExC_parse) : 1;    \
+} STMT_END
+
+/* RExC_parse_inc_safef(flag)
+ *
+ * Safely increment RExC_parse to point at the next codepoint,
+ * doing the right thing depending on whether we are parsing
+ * UTF-8 strings or not and NOT reading past the end of the buffer.
+ * The 'flag' argument determines if content is UTF-8 or not,
+ * intended for cases where this is NOT governed by the UTF macro.
+ *
+ * Use RExC_parse_safe() if UTF-8ness is controlled by the UTF macro.
+ *
+ * NOTE: Will NOT read past RExC_end when content is UTF-8.
+ */
+#define RExC_parse_inc_safef(flag) STMT_START {                     \
+    RExC_parse += (flag) ? UTF8_SAFE_SKIP(RExC_parse,RExC_end) : 1; \
+} STMT_END
+
+/* RExC_parse_inc()
+ *
+ * Increment RExC_parse to point at the next codepoint,
+ * doing the right thing depending on whether we are parsing
+ * UTF-8 strings or not.
+ *
+ * WARNING: Does NOT take into account RExC_end, it is the callers
+ * responsibility to make sure there are enough octets left in
+ * RExC_parse to ensure that when processing UTF-8 we would not read
+ * past the end of the string.
+ *
+ * NOTE: whether we are parsing UTF-8 or not is determined by the
+ * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
+ * macro operates on the pRExC_state structure only.
+ */
+#define RExC_parse_inc() RExC_parse_incf(UTF)
+
+/* RExC_parse_inc_safe()
+ *
+ * Safely increment RExC_parse to point at the next codepoint,
+ * doing the right thing depending on whether we are parsing
+ * UTF-8 strings or not and NOT reading past the end of the buffer.
+ *
+ * NOTE: whether we are parsing UTF-8 or not is determined by the
+ * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
+ * macro operates on the pRExC_state structure only.
+ */
+#define RExC_parse_inc_safe() RExC_parse_inc_safef(UTF)
+
+/* RExC_parse_inc_utf8()
+ *
+ * Increment RExC_parse to point at the next utf8 codepoint,
+ * assumes content is UTF-8.
+ *
+ * WARNING: Does NOT take into account RExC_end; it is the callers
+ * responsibility to make sure there are enough octets left in RExC_parse
+ * to ensure that when processing UTF-8 we would not read past the end
+ * of the string.
+ */
+#define RExC_parse_inc_utf8() STMT_START {  \
+    RExC_parse += UTF8SKIP(RExC_parse);     \
+} STMT_END
+
+/* RExC_parse_inc_if_char()
+ *
+ * Increment RExC_parse to point at the next codepoint, if and only
+ * if the current parse point is NOT a NULL, while doing the right thing
+ * depending on whether we are parsing UTF-8 strings or not.
+ *
+ * WARNING: Does NOT take into account RExC_end, it is the callers
+ * responsibility to make sure there are enough octets left in RExC_parse
+ * to ensure that when processing UTF-8 we would not read past the end
+ * of the string.
+ *
+ * NOTE: whether we are parsing UTF-8 or not is determined by the
+ * UTF macro which is defined as cBOOL(RExC_parse_utf8), thus this
+ * macro operates on the pRExC_state structure only.
+ */
+#define RExC_parse_inc_if_char() STMT_START {         \
+    RExC_parse += SKIP_IF_CHAR(RExC_parse,RExC_end);  \
+} STMT_END
+
+/* RExC_parse_inc_by(n_octets)
+ *
+ * Increment the parse cursor by the number of octets specified by
+ * the 'n_octets' argument.
+ *
+ * NOTE: Does NOT check ANY constraints. It is the callers responsibility
+ * that this will not move past the end of the string, or leave the
+ * pointer in the middle of a UTF-8 sequence.
+ *
+ * Typically used to advanced past previously analyzed content.
+ */
+#define RExC_parse_inc_by(n_octets) STMT_START {  \
+    RExC_parse += (n_octets);                     \
+} STMT_END
+
+/* RExC_parse_set(to_ptr)
+ *
+ * Sets the RExC_parse pointer to the pointer specified by the 'to'
+ * argument. No validation whatsoever is performed on the to pointer.
+ */
+#define RExC_parse_set(to_ptr) STMT_START { \
+    RExC_parse = (to_ptr);                  \
+} STMT_END
+
+/**********************************************************************/
+
+/* Heuristic check on the complexity of the pattern: if TOO_NAUGHTY, we set
+ * a flag to disable back-off on the fixed/floating substrings - if it's
+ * a high complexity pattern we assume the benefit of avoiding a full match
+ * is worth the cost of checking for the substrings even if they rarely help.
+ */
+#define RExC_naughty    (pRExC_state->naughty)
+#define TOO_NAUGHTY (10)
+#define MARK_NAUGHTY(add) \
+    if (RExC_naughty < TOO_NAUGHTY) \
+        RExC_naughty += (add)
+#define MARK_NAUGHTY_EXP(exp, add) \
+    if (RExC_naughty < TOO_NAUGHTY) \
+        RExC_naughty += RExC_naughty / (exp) + (add)
+
+#define isNON_BRACE_QUANTIFIER(c)   ((c) == '*' || (c) == '+' || (c) == '?')
+#define isQUANTIFIER(s,e)  (   isNON_BRACE_QUANTIFIER(*s)                      \
+                            || ((*s) == '{' && regcurly(s, e, NULL)))
+
+/*
+ * Flags to be passed up.
+ */
+#define HASWIDTH        0x01    /* Known to not match null strings, could match
+                                   non-null ones. */
+#define SIMPLE          0x02    /* Exactly one character wide */
+                                /* (or LNBREAK as a special case) */
+#define POSTPONED       0x08    /* (?1),(?&name), (??{...}) or similar */
+#define TRYAGAIN        0x10    /* Weeded out a declaration. */
+#define RESTART_PARSE   0x20    /* Need to redo the parse */
+#define NEED_UTF8       0x40    /* In conjunction with RESTART_PARSE, need to
+                                   calcuate sizes as UTF-8 */
+
+#define REG_NODE_NUM(x) ((x) ? (int)((x)-RExC_emit_start) : -1)
+
+/* whether trie related optimizations are enabled */
+#if PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION
+#define TRIE_STUDY_OPT
+#define FULL_TRIE_STUDY
+#define TRIE_STCLASS
+#endif
+
+/* About the term "restudy" and the var "restudied" and the defines
+ * "SCF_TRIE_RESTUDY" and "SCF_TRIE_DOING_RESTUDY": All of these relate to
+ * doing multiple study_chunk() calls over the same set of opcodes for* the
+ * purpose of enhanced TRIE optimizations.
+ *
+ * Specifically, when TRIE_STUDY_OPT is defined, and it is defined in normal
+ * builds, (see above), during compilation SCF_TRIE_RESTUDY may be enabled
+ * which then causes the Perl_re_op_compile() to then call the optimizer
+ * S_study_chunk() a second time to perform additional optimizations,
+ * including the aho_corasick startclass optimization.
+ * This additional pass will only happen once, which is managed by the
+ * 'restudied' variable in Perl_re_op_compile().
+ *
+ * When this second pass is under way the flags passed into study_chunk() will
+ * include SCF_TRIE_DOING_RESTUDY and this flag is and must be cascaded down
+ * to any recursive calls to S_study_chunk().
+ *
+ * IMPORTANT: Any logic in study_chunk() that emits warnings should check that
+ * the SCF_TRIE_DOING_RESTUDY flag is NOT set in 'flags', or the warning may
+ * be produced twice.
+ *
+ * See commit 07be1b83a6b2d24b492356181ddf70e1c7917ae3 and
+ * 688e03912e3bff2d2419c457d8b0e1bab3eb7112 for more details.
+ */
+
+
+#define PBYTE(u8str,paren) ((U8*)(u8str))[(paren) >> 3]
+#define PBITVAL(paren) (1 << ((paren) & 7))
+#define PAREN_OFFSET(depth) \
+    (RExC_study_chunk_recursed + (depth) * RExC_study_chunk_recursed_bytes)
+#define PAREN_TEST(depth, paren) \
+    (PBYTE(PAREN_OFFSET(depth), paren) & PBITVAL(paren))
+#define PAREN_SET(depth, paren) \
+    (PBYTE(PAREN_OFFSET(depth), paren) |= PBITVAL(paren))
+#define PAREN_UNSET(depth, paren) \
+    (PBYTE(PAREN_OFFSET(depth), paren) &= ~PBITVAL(paren))
+
+#define REQUIRE_UTF8(flagp) STMT_START {                                   \
+                                     if (!UTF) {                           \
+                                         *flagp = RESTART_PARSE|NEED_UTF8; \
+                                         return 0;                         \
+                                     }                                     \
+                             } STMT_END
+
+/* /u is to be chosen if we are supposed to use Unicode rules, or if the
+ * pattern is in UTF-8.  This latter condition is in case the outermost rules
+ * are locale.  See GH #17278 */
+#define toUSE_UNI_CHARSET_NOT_DEPENDS (RExC_uni_semantics || UTF)
+
+/* Change from /d into /u rules, and restart the parse.  RExC_uni_semantics is
+ * a flag that indicates we need to override /d with /u as a result of
+ * something in the pattern.  It should only be used in regards to calling
+ * set_regex_charset() or get_regex_charset() */
+#define REQUIRE_UNI_RULES(flagp, restart_retval)                            \
+    STMT_START {                                                            \
+            if (DEPENDS_SEMANTICS) {                                        \
+                set_regex_charset(&RExC_flags, REGEX_UNICODE_CHARSET);      \
+                RExC_uni_semantics = 1;                                     \
+                if (RExC_seen_d_op && LIKELY(! IN_PARENS_PASS)) {           \
+                    /* No need to restart the parse if we haven't seen      \
+                     * anything that differs between /u and /d, and no need \
+                     * to restart immediately if we're going to reparse     \
+                     * anyway to count parens */                            \
+                    *flagp |= RESTART_PARSE;                                \
+                    return restart_retval;                                  \
+                }                                                           \
+            }                                                               \
+    } STMT_END
+
+#define REQUIRE_BRANCHJ(flagp, restart_retval)                              \
+    STMT_START {                                                            \
+                RExC_use_BRANCHJ = 1;                                       \
+                *flagp |= RESTART_PARSE;                                    \
+                return restart_retval;                                      \
+    } STMT_END
+
+/* Until we have completed the parse, we leave RExC_total_parens at 0 or
+ * less.  After that, it must always be positive, because the whole re is
+ * considered to be surrounded by virtual parens.  Setting it to negative
+ * indicates there is some construct that needs to know the actual number of
+ * parens to be properly handled.  And that means an extra pass will be
+ * required after we've counted them all */
+#define ALL_PARENS_COUNTED (RExC_total_parens > 0)
+#define REQUIRE_PARENS_PASS                                                 \
+    STMT_START {  /* No-op if have completed a pass */                      \
+                    if (! ALL_PARENS_COUNTED) RExC_total_parens = -1;       \
+    } STMT_END
+#define IN_PARENS_PASS (RExC_total_parens < 0)
+
+
+/* This is used to return failure (zero) early from the calling function if
+ * various flags in 'flags' are set.  Two flags always cause a return:
+ * 'RESTART_PARSE' and 'NEED_UTF8'.   'extra' can be used to specify any
+ * additional flags that should cause a return; 0 if none.  If the return will
+ * be done, '*flagp' is first set to be all of the flags that caused the
+ * return. */
+#define RETURN_FAIL_ON_RESTART_OR_FLAGS(flags,flagp,extra)                  \
+    STMT_START {                                                            \
+            if ((flags) & (RESTART_PARSE|NEED_UTF8|(extra))) {              \
+                *(flagp) = (flags) & (RESTART_PARSE|NEED_UTF8|(extra));     \
+                return 0;                                                   \
+            }                                                               \
+    } STMT_END
+
+#define MUST_RESTART(flags) ((flags) & (RESTART_PARSE))
+
+#define RETURN_FAIL_ON_RESTART(flags,flagp)                                 \
+                        RETURN_FAIL_ON_RESTART_OR_FLAGS( flags, flagp, 0)
+#define RETURN_FAIL_ON_RESTART_FLAGP(flagp)                                 \
+                                    if (MUST_RESTART(*(flagp))) return 0
+
+/* This converts the named class defined in regcomp.h to its equivalent class
+ * number defined in handy.h. */
+#define namedclass_to_classnum(class)  ((int) ((class) / 2))
+#define classnum_to_namedclass(classnum)  ((classnum) * 2)
+
+#define _invlist_union_complement_2nd(a, b, output) \
+                        _invlist_union_maybe_complement_2nd(a, b, TRUE, output)
+#define _invlist_intersection_complement_2nd(a, b, output) \
+                 _invlist_intersection_maybe_complement_2nd(a, b, TRUE, output)
+
+/* We add a marker if we are deferring expansion of a property that is both
+ * 1) potentiallly user-defined; and
+ * 2) could also be an official Unicode property.
+ *
+ * Without this marker, any deferred expansion can only be for a user-defined
+ * one.  This marker shouldn't conflict with any that could be in a legal name,
+ * and is appended to its name to indicate this.  There is a string and
+ * character form */
+#define DEFERRED_COULD_BE_OFFICIAL_MARKERs  "~"
+#define DEFERRED_COULD_BE_OFFICIAL_MARKERc  '~'
+
+/* What is infinity for optimization purposes */
+#define OPTIMIZE_INFTY  SSize_t_MAX
+
+/* About scan_data_t.
+
+  During optimisation we recurse through the regexp program performing
+  various inplace (keyhole style) optimisations. In addition study_chunk
+  and scan_commit populate this data structure with information about
+  what strings MUST appear in the pattern. We look for the longest
+  string that must appear at a fixed location, and we look for the
+  longest string that may appear at a floating location. So for instance
+  in the pattern:
+
+    /FOO[xX]A.*B[xX]BAR/
+
+  Both 'FOO' and 'A' are fixed strings. Both 'B' and 'BAR' are floating
+  strings (because they follow a .* construct). study_chunk will identify
+  both FOO and BAR as being the longest fixed and floating strings respectively.
+
+  The strings can be composites, for instance
+
+     /(f)(o)(o)/
+
+  will result in a composite fixed substring 'foo'.
+
+  For each string some basic information is maintained:
+
+  - min_offset
+    This is the position the string must appear at, or not before.
+    It also implicitly (when combined with minlenp) tells us how many
+    characters must match before the string we are searching for.
+    Likewise when combined with minlenp and the length of the string it
+    tells us how many characters must appear after the string we have
+    found.
+
+  - max_offset
+    Only used for floating strings. This is the rightmost point that
+    the string can appear at. If set to OPTIMIZE_INFTY it indicates that the
+    string can occur infinitely far to the right.
+    For fixed strings, it is equal to min_offset.
+
+  - minlenp
+    A pointer to the minimum number of characters of the pattern that the
+    string was found inside. This is important as in the case of positive
+    lookahead or positive lookbehind we can have multiple patterns
+    involved. Consider
+
+    /(?=FOO).*F/
+
+    The minimum length of the pattern overall is 3, the minimum length
+    of the lookahead part is 3, but the minimum length of the part that
+    will actually match is 1. So 'FOO's minimum length is 3, but the
+    minimum length for the F is 1. This is important as the minimum length
+    is used to determine offsets in front of and behind the string being
+    looked for.  Since strings can be composites this is the length of the
+    pattern at the time it was committed with a scan_commit. Note that
+    the length is calculated by study_chunk, so that the minimum lengths
+    are not known until the full pattern has been compiled, thus the
+    pointer to the value.
+
+  - lookbehind
+
+    In the case of lookbehind the string being searched for can be
+    offset past the start point of the final matching string.
+    If this value was just blithely removed from the min_offset it would
+    invalidate some of the calculations for how many chars must match
+    before or after (as they are derived from min_offset and minlen and
+    the length of the string being searched for).
+    When the final pattern is compiled and the data is moved from the
+    scan_data_t structure into the regexp structure the information
+    about lookbehind is factored in, with the information that would
+    have been lost precalculated in the end_shift field for the
+    associated string.
+
+  The fields pos_min and pos_delta are used to store the minimum offset
+  and the delta to the maximum offset at the current point in the pattern.
+
+*/
+
+struct scan_data_substrs {
+    SV      *str;       /* longest substring found in pattern */
+    SSize_t min_offset; /* earliest point in string it can appear */
+    SSize_t max_offset; /* latest point in string it can appear */
+    SSize_t *minlenp;   /* pointer to the minlen relevant to the string */
+    SSize_t lookbehind; /* is the pos of the string modified by LB */
+    I32 flags;          /* per substring SF_* and SCF_* flags */
+};
+
+/* this is typedef'ed in perl.h */
+struct scan_data_t {
+    /*I32 len_min;      unused */
+    /*I32 len_delta;    unused */
+    SSize_t pos_min;
+    SSize_t pos_delta;
+    SV *last_found;
+    SSize_t last_end;       /* min value, <0 unless valid. */
+    SSize_t last_start_min;
+    SSize_t last_start_max;
+    U8      cur_is_floating; /* whether the last_* values should be set as
+                              * the next fixed (0) or floating (1)
+                              * substring */
+
+    /* [0] is longest fixed substring so far, [1] is longest float so far */
+    struct scan_data_substrs  substrs[2];
+
+    I32 flags;             /* common SF_* and SCF_* flags */
+    I32 whilem_c;
+    SSize_t *last_closep;
+    regnode **last_close_opp; /* pointer to pointer to last CLOSE regop
+                                 seen. DO NOT DEREFERENCE the regnode
+                                 pointer - the op may have been optimized
+                                 away */
+    regnode_ssc *start_class;
+};
+
+/*
+ * Forward declarations for pregcomp()'s friends.
+ */
+
+static const scan_data_t zero_scan_data = {
+    0, 0, NULL, 0, 0, 0, 0,
+    {
+        { NULL, 0, 0, 0, 0, 0 },
+        { NULL, 0, 0, 0, 0, 0 },
+    },
+    0, 0, NULL, NULL, NULL
+};
+
+/* study flags */
+
+#define SF_BEFORE_SEOL          0x0001
+#define SF_BEFORE_MEOL          0x0002
+#define SF_BEFORE_EOL           (SF_BEFORE_SEOL|SF_BEFORE_MEOL)
+
+#define SF_IS_INF               0x0040
+#define SF_HAS_PAR              0x0080
+#define SF_IN_PAR               0x0100
+#define SF_HAS_EVAL             0x0200
+
+
+/* SCF_DO_SUBSTR is the flag that tells the regexp analyzer to track the
+ * longest substring in the pattern. When it is not set the optimiser keeps
+ * track of position, but does not keep track of the actual strings seen,
+ *
+ * So for instance /foo/ will be parsed with SCF_DO_SUBSTR being true, but
+ * /foo/i will not.
+ *
+ * Similarly, /foo.*(blah|erm|huh).*fnorble/ will have "foo" and "fnorble"
+ * parsed with SCF_DO_SUBSTR on, but while processing the (...) it will be
+ * turned off because of the alternation (BRANCH). */
+#define SCF_DO_SUBSTR           0x0400
+
+#define SCF_DO_STCLASS_AND      0x0800
+#define SCF_DO_STCLASS_OR       0x1000
+#define SCF_DO_STCLASS          (SCF_DO_STCLASS_AND|SCF_DO_STCLASS_OR)
+#define SCF_WHILEM_VISITED_POS  0x2000
+
+#define SCF_TRIE_RESTUDY        0x4000 /* Need to do restudy in study_chunk()?
+                                          Search for "restudy" in this file
+                                          to find a detailed explanation.*/
+#define SCF_SEEN_ACCEPT         0x8000
+#define SCF_TRIE_DOING_RESTUDY 0x10000 /* Are we in restudy right now?
+                                          Search for "restudy" in this file
+                                          to find a detailed explanation. */
+#define SCF_IN_DEFINE          0x20000
+
+
+
+#define UTF cBOOL(RExC_utf8)
+
+/* The enums for all these are ordered so things work out correctly */
+#define LOC (get_regex_charset(RExC_flags) == REGEX_LOCALE_CHARSET)
+#define DEPENDS_SEMANTICS (get_regex_charset(RExC_flags)                    \
+                                                     == REGEX_DEPENDS_CHARSET)
+#define UNI_SEMANTICS (get_regex_charset(RExC_flags) == REGEX_UNICODE_CHARSET)
+#define AT_LEAST_UNI_SEMANTICS (get_regex_charset(RExC_flags)                \
+                                                     >= REGEX_UNICODE_CHARSET)
+#define ASCII_RESTRICTED (get_regex_charset(RExC_flags)                      \
+                                            == REGEX_ASCII_RESTRICTED_CHARSET)
+#define AT_LEAST_ASCII_RESTRICTED (get_regex_charset(RExC_flags)             \
+                                            >= REGEX_ASCII_RESTRICTED_CHARSET)
+#define ASCII_FOLD_RESTRICTED (get_regex_charset(RExC_flags)                 \
+                                        == REGEX_ASCII_MORE_RESTRICTED_CHARSET)
+
+#define FOLD cBOOL(RExC_flags & RXf_PMf_FOLD)
+
+/* For programs that want to be strictly Unicode compatible by dying if any
+ * attempt is made to match a non-Unicode code point against a Unicode
+ * property.  */
+#define ALWAYS_WARN_SUPER  ckDEAD(packWARN(WARN_NON_UNICODE))
+
+#define OOB_NAMEDCLASS          -1
+
+/* There is no code point that is out-of-bounds, so this is problematic.  But
+ * its only current use is to initialize a variable that is always set before
+ * looked at. */
+#define OOB_UNICODE             0xDEADBEEF
+
+#define CHR_SVLEN(sv) (UTF ? sv_len_utf8(sv) : SvCUR(sv))
+
+
+/* length of regex to show in messages that don't mark a position within */
+#define RegexLengthToShowInErrorMessages 127
+
+/*
+ * If MARKER[12] are adjusted, be sure to adjust the constants at the top
+ * of t/op/regmesg.t, the tests in t/op/re_tests, and those in
+ * op/pragma/warn/regcomp.
+ */
+#define MARKER1 "<-- HERE"    /* marker as it appears in the description */
+#define MARKER2 " <-- HERE "  /* marker as it appears within the regex */
+
+#define REPORT_LOCATION " in regex; marked by " MARKER1    \
+                        " in m/%" UTF8f MARKER2 "%" UTF8f "/"
+
+/* The code in this file in places uses one level of recursion with parsing
+ * rebased to an alternate string constructed by us in memory.  This can take
+ * the form of something that is completely different from the input, or
+ * something that uses the input as part of the alternate.  In the first case,
+ * there should be no possibility of an error, as we are in complete control of
+ * the alternate string.  But in the second case we don't completely control
+ * the input portion, so there may be errors in that.  Here's an example:
+ *      /[abc\x{DF}def]/ui
+ * is handled specially because \x{df} folds to a sequence of more than one
+ * character: 'ss'.  What is done is to create and parse an alternate string,
+ * which looks like this:
+ *      /(?:\x{DF}|[abc\x{DF}def])/ui
+ * where it uses the input unchanged in the middle of something it constructs,
+ * which is a branch for the DF outside the character class, and clustering
+ * parens around the whole thing. (It knows enough to skip the DF inside the
+ * class while in this substitute parse.) 'abc' and 'def' may have errors that
+ * need to be reported.  The general situation looks like this:
+ *
+ *                                       |<------- identical ------>|
+ *              sI                       tI               xI       eI
+ * Input:       ---------------------------------------------------------------
+ * Constructed:         ---------------------------------------------------
+ *                      sC               tC               xC       eC     EC
+ *                                       |<------- identical ------>|
+ *
+ * sI..eI   is the portion of the input pattern we are concerned with here.
+ * sC..EC   is the constructed substitute parse string.
+ *  sC..tC  is constructed by us
+ *  tC..eC  is an exact duplicate of the portion of the input pattern tI..eI.
+ *          In the diagram, these are vertically aligned.
+ *  eC..EC  is also constructed by us.
+ * xC       is the position in the substitute parse string where we found a
+ *          problem.
+ * xI       is the position in the original pattern corresponding to xC.
+ *
+ * We want to display a message showing the real input string.  Thus we need to
+ * translate from xC to xI.  We know that xC >= tC, since the portion of the
+ * string sC..tC has been constructed by us, and so shouldn't have errors.  We
+ * get:
+ *      xI = tI + (xC - tC)
+ *
+ * When the substitute parse is constructed, the code needs to set:
+ *      RExC_start (sC)
+ *      RExC_end (eC)
+ *      RExC_copy_start_in_input  (tI)
+ *      RExC_copy_start_in_constructed (tC)
+ * and restore them when done.
+ *
+ * During normal processing of the input pattern, both
+ * 'RExC_copy_start_in_input' and 'RExC_copy_start_in_constructed' are set to
+ * sI, so that xC equals xI.
+ */
+
+#define sI              RExC_precomp
+#define eI              RExC_precomp_end
+#define sC              RExC_start
+#define eC              RExC_end
+#define tI              RExC_copy_start_in_input
+#define tC              RExC_copy_start_in_constructed
+#define xI(xC)          (tI + (xC - tC))
+#define xI_offset(xC)   (xI(xC) - sI)
+
+#define REPORT_LOCATION_ARGS(xC)                                            \
+    UTF8fARG(UTF,                                                           \
+             (xI(xC) > eI) /* Don't run off end */                          \
+              ? eI - sI   /* Length before the <--HERE */                   \
+              : ((xI_offset(xC) >= 0)                                       \
+                 ? xI_offset(xC)                                            \
+                 : (Perl_croak(aTHX_ "panic: %s: %d: negative offset: %"    \
+                                    IVdf " trying to output message for "   \
+                                    " pattern %.*s",                        \
+                                    __FILE__, __LINE__, (IV) xI_offset(xC), \
+                                    ((int) (eC - sC)), sC), 0)),            \
+             sI),         /* The input pattern printed up to the <--HERE */ \
+    UTF8fARG(UTF,                                                           \
+             (xI(xC) > eI) ? 0 : eI - xI(xC), /* Length after <--HERE */    \
+             (xI(xC) > eI) ? eI : xI(xC))     /* pattern after <--HERE */
+
+/* Used to point after bad bytes for an error message, but avoid skipping
+ * past a nul byte. */
+#define SKIP_IF_CHAR(s, e) (!*(s) ? 0 : UTF ? UTF8_SAFE_SKIP(s, e) : 1)
+
+/* Set up to clean up after our imminent demise */
+#define PREPARE_TO_DIE                                                      \
+    STMT_START {                                                            \
+        if (RExC_rx_sv)                                                     \
+            SAVEFREESV(RExC_rx_sv);                                         \
+        if (RExC_open_parens)                                               \
+            SAVEFREEPV(RExC_open_parens);                                   \
+        if (RExC_close_parens)                                              \
+            SAVEFREEPV(RExC_close_parens);                                  \
+        if (RExC_logical_to_parno)                                          \
+            SAVEFREEPV(RExC_logical_to_parno);                              \
+        if (RExC_parno_to_logical)                                          \
+            SAVEFREEPV(RExC_parno_to_logical);                              \
+    } STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then calls Perl_croak with the given
+ * arg. Show regex, up to a maximum length. If it's too long, chop and add
+ * "...".
+ */
+#define _FAIL(code) STMT_START {                                        \
+    const char *ellipses = "";                                          \
+    IV len = RExC_precomp_end - RExC_precomp;                           \
+                                                                        \
+    PREPARE_TO_DIE;                                                     \
+    if (len > RegexLengthToShowInErrorMessages) {                       \
+        /* chop 10 shorter than the max, to ensure meaning of "..." */  \
+        len = RegexLengthToShowInErrorMessages - 10;                    \
+        ellipses = "...";                                               \
+    }                                                                   \
+    code;                                                               \
+} STMT_END
+
+#define FAIL(msg) _FAIL(                            \
+    Perl_croak(aTHX_ "%s in regex m/%" UTF8f "%s/",         \
+            msg, UTF8fARG(UTF, len, RExC_precomp), ellipses))
+
+#define FAIL2(msg,arg) _FAIL(                       \
+    Perl_croak(aTHX_ msg " in regex m/%" UTF8f "%s/",       \
+            arg, UTF8fARG(UTF, len, RExC_precomp), ellipses))
+
+#define FAIL3(msg,arg1,arg2) _FAIL(                         \
+    Perl_croak(aTHX_ msg " in regex m/%" UTF8f "%s/",       \
+     arg1, arg2, UTF8fARG(UTF, len, RExC_precomp), ellipses))
+
+/*
+ * Simple_vFAIL -- like FAIL, but marks the current location in the scan
+ */
+#define Simple_vFAIL(m) STMT_START {                                    \
+    Perl_croak(aTHX_ "%s" REPORT_LOCATION,                              \
+            m, REPORT_LOCATION_ARGS(RExC_parse));                       \
+} STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL()
+ */
+#define vFAIL(m) STMT_START {                           \
+    PREPARE_TO_DIE;                                     \
+    Simple_vFAIL(m);                                    \
+} STMT_END
+
+/*
+ * Like Simple_vFAIL(), but accepts two arguments.
+ */
+#define Simple_vFAIL2(m,a1) STMT_START {                        \
+    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1,                \
+                      REPORT_LOCATION_ARGS(RExC_parse));        \
+} STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL2().
+ */
+#define vFAIL2(m,a1) STMT_START {                       \
+    PREPARE_TO_DIE;                                     \
+    Simple_vFAIL2(m, a1);                               \
+} STMT_END
+
+
+/*
+ * Like Simple_vFAIL(), but accepts three arguments.
+ */
+#define Simple_vFAIL3(m, a1, a2) STMT_START {                   \
+    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2,            \
+            REPORT_LOCATION_ARGS(RExC_parse));                  \
+} STMT_END
+
+/*
+ * Calls SAVEDESTRUCTOR_X if needed, then Simple_vFAIL3().
+ */
+#define vFAIL3(m,a1,a2) STMT_START {                    \
+    PREPARE_TO_DIE;                                     \
+    Simple_vFAIL3(m, a1, a2);                           \
+} STMT_END
+
+/*
+ * Like Simple_vFAIL(), but accepts four arguments.
+ */
+#define Simple_vFAIL4(m, a1, a2, a3) STMT_START {               \
+    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2, a3,        \
+            REPORT_LOCATION_ARGS(RExC_parse));                  \
+} STMT_END
+
+#define vFAIL4(m,a1,a2,a3) STMT_START {                 \
+    PREPARE_TO_DIE;                                     \
+    Simple_vFAIL4(m, a1, a2, a3);                       \
+} STMT_END
+
+/* A specialized version of vFAIL2 that works with UTF8f */
+#define vFAIL2utf8f(m, a1) STMT_START {             \
+    PREPARE_TO_DIE;                                 \
+    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1,  \
+            REPORT_LOCATION_ARGS(RExC_parse));      \
+} STMT_END
+
+#define vFAIL3utf8f(m, a1, a2) STMT_START {             \
+    PREPARE_TO_DIE;                                     \
+    S_re_croak(aTHX_ UTF, m REPORT_LOCATION, a1, a2,  \
+            REPORT_LOCATION_ARGS(RExC_parse));          \
+} STMT_END
+
+/* Setting this to NULL is a signal to not output warnings */
+#define TURN_OFF_WARNINGS_IN_SUBSTITUTE_PARSE                               \
+    STMT_START {                                                            \
+      RExC_save_copy_start_in_constructed  = RExC_copy_start_in_constructed;\
+      RExC_copy_start_in_constructed = NULL;                                \
+    } STMT_END
+#define RESTORE_WARNINGS                                                    \
+    RExC_copy_start_in_constructed = RExC_save_copy_start_in_constructed
+
+/* Since a warning can be generated multiple times as the input is reparsed, we
+ * output it the first time we come to that point in the parse, but suppress it
+ * otherwise.  'RExC_copy_start_in_constructed' being NULL is a flag to not
+ * generate any warnings */
+#define TO_OUTPUT_WARNINGS(loc)                                         \
+  (   RExC_copy_start_in_constructed                                    \
+   && ((xI(loc)) - RExC_precomp) > (Ptrdiff_t) RExC_latest_warn_offset)
+
+/* After we've emitted a warning, we save the position in the input so we don't
+ * output it again */
+#define UPDATE_WARNINGS_LOC(loc)                                        \
+    STMT_START {                                                        \
+        if (TO_OUTPUT_WARNINGS(loc)) {                                  \
+            RExC_latest_warn_offset = MAX(sI, MIN(eI, xI(loc)))         \
+                                                       - RExC_precomp;  \
+        }                                                               \
+    } STMT_END
+
+/* 'warns' is the output of the packWARNx macro used in 'code' */
+#define _WARN_HELPER(loc, warns, code)                                  \
+    STMT_START {                                                        \
+        if (! RExC_copy_start_in_constructed) {                         \
+            Perl_croak( aTHX_ "panic! %s: %d: Tried to warn when none"  \
+                              " expected at '%s'",                      \
+                              __FILE__, __LINE__, loc);                 \
+        }                                                               \
+        if (TO_OUTPUT_WARNINGS(loc)) {                                  \
+            if (ckDEAD(warns))                                          \
+                PREPARE_TO_DIE;                                         \
+            code;                                                       \
+            UPDATE_WARNINGS_LOC(loc);                                   \
+        }                                                               \
+    } STMT_END
+
+/* m is not necessarily a "literal string", in this macro */
+#define warn_non_literal_string(loc, packed_warn, m)                    \
+    _WARN_HELPER(loc, packed_warn,                                      \
+                      Perl_warner(aTHX_ packed_warn,                    \
+                                       "%s" REPORT_LOCATION,            \
+                                  m, REPORT_LOCATION_ARGS(loc)))
+#define reg_warn_non_literal_string(loc, m)                             \
+                warn_non_literal_string(loc, packWARN(WARN_REGEXP), m)
+
+#define ckWARN2_non_literal_string(loc, packwarn, m, a1)                    \
+    STMT_START {                                                            \
+                char * format;                                              \
+                Size_t format_size = strlen(m) + strlen(REPORT_LOCATION)+ 1;\
+                Newx(format, format_size, char);                            \
+                my_strlcpy(format, m, format_size);                         \
+                my_strlcat(format, REPORT_LOCATION, format_size);           \
+                SAVEFREEPV(format);                                         \
+                _WARN_HELPER(loc, packwarn,                                 \
+                      Perl_ck_warner(aTHX_ packwarn,                        \
+                                        format,                             \
+                                        a1, REPORT_LOCATION_ARGS(loc)));    \
+    } STMT_END
+
+#define ckWARNreg(loc,m)                                                \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
+                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),       \
+                                          m REPORT_LOCATION,            \
+                                          REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN(loc, m)                                                   \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
+                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),          \
+                                       m REPORT_LOCATION,               \
+                                       REPORT_LOCATION_ARGS(loc)))      \
+
+#define vWARN_dep(loc,category,m)                                           \
+    _WARN_HELPER(loc, packWARN(category),                                   \
+                      Perl_warner(aTHX_ packWARN(category),                 \
+                                       m REPORT_LOCATION,                   \
+                                       REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARNdep(loc,category,m)                                           \
+    _WARN_HELPER(loc, packWARN(category),                                   \
+                      Perl_ck_warner_d(aTHX_ packWARN(category),            \
+                                            m REPORT_LOCATION,              \
+                                            REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARNregdep(loc,category,m)                                        \
+    _WARN_HELPER(loc, packWARN2(category, WARN_REGEXP),                     \
+                      Perl_ck_warner_d(aTHX_ packWARN2(category,            \
+                                                      WARN_REGEXP),         \
+                                             m REPORT_LOCATION,             \
+                                             REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN2reg_d(loc,m, a1)                                             \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
+                      Perl_ck_warner_d(aTHX_ packWARN(WARN_REGEXP),         \
+                                            m REPORT_LOCATION,              \
+                                            a1, REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN2reg(loc, m, a1)                                              \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
+                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),           \
+                                          m REPORT_LOCATION,                \
+                                          a1, REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN3(loc, m, a1, a2)                                              \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
+                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),              \
+                                       m REPORT_LOCATION,                   \
+                                       a1, a2, REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN3reg(loc, m, a1, a2)                                          \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                                \
+                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),           \
+                                          m REPORT_LOCATION,                \
+                                          a1, a2,                           \
+                                          REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN4(loc, m, a1, a2, a3)                                      \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
+                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),          \
+                                       m REPORT_LOCATION,               \
+                                       a1, a2, a3,                      \
+                                       REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARN4reg(loc, m, a1, a2, a3)                                  \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
+                      Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),       \
+                                          m REPORT_LOCATION,            \
+                                          a1, a2, a3,                   \
+                                          REPORT_LOCATION_ARGS(loc)))
+
+#define vWARN5(loc, m, a1, a2, a3, a4)                                  \
+    _WARN_HELPER(loc, packWARN(WARN_REGEXP),                            \
+                      Perl_warner(aTHX_ packWARN(WARN_REGEXP),          \
+                                       m REPORT_LOCATION,               \
+                                       a1, a2, a3, a4,                  \
+                                       REPORT_LOCATION_ARGS(loc)))
+
+#define ckWARNexperimental(loc, class, m)                               \
+    STMT_START {                                                        \
+        if (! RExC_warned_ ## class) { /* warn once per compilation */  \
+            RExC_warned_ ## class = 1;                                  \
+            _WARN_HELPER(loc, packWARN(class),                          \
+                      Perl_ck_warner_d(aTHX_ packWARN(class),           \
+                                            m REPORT_LOCATION,          \
+                                            REPORT_LOCATION_ARGS(loc)));\
+        }                                                               \
+    } STMT_END
+
+#define ckWARNexperimental_with_arg(loc, class, m, arg)                 \
+    STMT_START {                                                        \
+        if (! RExC_warned_ ## class) { /* warn once per compilation */  \
+            RExC_warned_ ## class = 1;                                  \
+            _WARN_HELPER(loc, packWARN(class),                          \
+                      Perl_ck_warner_d(aTHX_ packWARN(class),           \
+                                       m REPORT_LOCATION,               \
+                                       arg, REPORT_LOCATION_ARGS(loc)));\
+        }                                                               \
+    } STMT_END
+
+/* Convert between a pointer to a node and its offset from the beginning of the
+ * program */
+#define REGNODE_p(offset)    (RExC_emit_start + (offset))
+#define REGNODE_OFFSET(node) (__ASSERT_((node) >= RExC_emit_start)      \
+                              (SSize_t) ((node) - RExC_emit_start))
+
+#define ProgLen(ri) ri->proglen
+#define SetProgLen(ri,x) ri->proglen = x
+
+#if PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS
+#define EXPERIMENTAL_INPLACESCAN
+#endif /*PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS*/
+
+#define DEBUG_RExC_seen()                                                   \
+        DEBUG_OPTIMISE_MORE_r({                                             \
+            Perl_re_printf( aTHX_ "RExC_seen: ");                           \
+                                                                            \
+            if (RExC_seen & REG_ZERO_LEN_SEEN)                              \
+                Perl_re_printf( aTHX_ "REG_ZERO_LEN_SEEN ");                \
+                                                                            \
+            if (RExC_seen & REG_LOOKBEHIND_SEEN)                            \
+                Perl_re_printf( aTHX_ "REG_LOOKBEHIND_SEEN ");              \
+                                                                            \
+            if (RExC_seen & REG_GPOS_SEEN)                                  \
+                Perl_re_printf( aTHX_ "REG_GPOS_SEEN ");                    \
+                                                                            \
+            if (RExC_seen & REG_RECURSE_SEEN)                               \
+                Perl_re_printf( aTHX_ "REG_RECURSE_SEEN ");                 \
+                                                                            \
+            if (RExC_seen & REG_TOP_LEVEL_BRANCHES_SEEN)                    \
+                Perl_re_printf( aTHX_ "REG_TOP_LEVEL_BRANCHES_SEEN ");      \
+                                                                            \
+            if (RExC_seen & REG_VERBARG_SEEN)                               \
+                Perl_re_printf( aTHX_ "REG_VERBARG_SEEN ");                 \
+                                                                            \
+            if (RExC_seen & REG_CUTGROUP_SEEN)                              \
+                Perl_re_printf( aTHX_ "REG_CUTGROUP_SEEN ");                \
+                                                                            \
+            if (RExC_seen & REG_RUN_ON_COMMENT_SEEN)                        \
+                Perl_re_printf( aTHX_ "REG_RUN_ON_COMMENT_SEEN ");          \
+                                                                            \
+            if (RExC_seen & REG_UNFOLDED_MULTI_SEEN)                        \
+                Perl_re_printf( aTHX_ "REG_UNFOLDED_MULTI_SEEN ");          \
+                                                                            \
+            if (RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN)                  \
+                Perl_re_printf( aTHX_ "REG_UNBOUNDED_QUANTIFIER_SEEN ");    \
+                                                                            \
+            if (RExC_seen & REG_PESSIMIZE_SEEN)                             \
+                Perl_re_printf( aTHX_ "REG_PESSIMIZE_SEEN ");               \
+                                                                            \
+            Perl_re_printf( aTHX_ "\n");                                    \
+        });
+
+#define DEBUG_SHOW_STUDY_FLAG(flags,flag) \
+  if ((flags) & flag) Perl_re_printf( aTHX_  "%s ", #flag)
+
+
+#ifdef DEBUGGING
+#  define DEBUG_STUDYDATA(where, data, depth, is_inf, min, stopmin, delta) \
+                    debug_studydata(where, data, depth, is_inf, min, stopmin, delta)
+
+#  define DEBUG_PEEP(str, scan, depth, flags)   \
+                    debug_peep(str, pRExC_state, scan, depth, flags)
+#else
+#  define DEBUG_STUDYDATA(where, data, depth, is_inf, min, stopmin, delta) NOOP
+#  define DEBUG_PEEP(str, scan, depth, flags)         NOOP
+#endif
+
+#define REGTAIL(x,y,z) regtail((x),(y),(z),depth+1)
+#ifdef DEBUGGING
+#define REGTAIL_STUDY(x,y,z) regtail_study((x),(y),(z),depth+1)
+#else
+#define REGTAIL_STUDY(x,y,z) regtail((x),(y),(z),depth+1)
+#endif
+
+#define MADE_TRIE       1
+#define MADE_JUMP_TRIE  2
+#define MADE_EXACT_TRIE 4
+
+#define INVLIST_INDEX                   0
+#define ONLY_LOCALE_MATCHES_INDEX       1
+#define DEFERRED_USER_DEFINED_INDEX     2
+
+/* These two functions currently do the exact same thing */
+#define ssc_init_zero           ssc_init
+
+#define ssc_add_cp(ssc, cp)   ssc_add_range((ssc), (cp), (cp))
+#define ssc_match_all_cp(ssc) ssc_add_range(ssc, 0, UV_MAX)
+
+#ifdef DEBUGGING
+#define REGNODE_GUTS(state,op,extra_size) \
+    regnode_guts_debug(state,op,extra_size)
+#else
+#define REGNODE_GUTS(state,op,extra_size) \
+    regnode_guts(state,extra_size)
+#endif
+
+#define CLEAR_OPTSTART                                                          \
+    if (optstart) STMT_START {                                                  \
+        DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_                                  \
+                              " (%" IVdf " nodes)\n", (IV)(node - optstart)));  \
+        optstart=NULL;                                                          \
+    } STMT_END
+
+#define DUMPUNTIL(b,e)                                          \
+    CLEAR_OPTSTART;                                             \
+    node = dumpuntil(r,start,(b),(e),last,sv,indent+1,depth+1);
+
+#define REGNODE_STEP_OVER(ret,t1,t2) \
+    NEXT_OFF(REGNODE_p(ret)) = ((sizeof(t1)+sizeof(t2))/sizeof(regnode))
+
+#endif /* REGCOMP_INTERNAL_H */
Index: gnu/usr.bin/perl/regcomp_invlist.c
===================================================================
RCS file: gnu/usr.bin/perl/regcomp_invlist.c
diff -N gnu/usr.bin/perl/regcomp_invlist.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regcomp_invlist.c	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,1540 @@
+#ifdef PERL_EXT_RE_BUILD
+#include "re_top.h"
+#endif
+
+#include "EXTERN.h"
+#define PERL_IN_REGEX_ENGINE
+#define PERL_IN_REGCOMP_ANY
+#define PERL_IN_REGCOMP_INVLIST_C
+#include "perl.h"
+
+#ifdef PERL_IN_XSUB_RE
+#  include "re_comp.h"
+#else
+#  include "regcomp.h"
+#endif
+
+#include "invlist_inline.h"
+#include "unicode_constants.h"
+#include "regcomp_internal.h"
+
+
+void
+Perl_populate_bitmap_from_invlist(pTHX_ SV * invlist, const UV offset, const U8 * bitmap, const Size_t len)
+{
+    PERL_ARGS_ASSERT_POPULATE_BITMAP_FROM_INVLIST;
+
+    /* As the name says.  The zeroth bit corresponds to the code point given by
+     * 'offset' */
+
+    UV start, end;
+
+    Zero(bitmap, len, U8);
+
+    invlist_iterinit(invlist);
+    while (invlist_iternext(invlist, &start, &end)) {
+        assert(start >= offset);
+
+        for (UV i = start; i <= end; i++) {
+            UV adjusted = i - offset;
+
+            BITMAP_BYTE(bitmap, adjusted) |= BITMAP_BIT(adjusted);
+        }
+    }
+    invlist_iterfinish(invlist);
+}
+
+void
+Perl_populate_invlist_from_bitmap(pTHX_ const U8 * bitmap, const Size_t bitmap_len, SV ** invlist, const UV offset)
+{
+    PERL_ARGS_ASSERT_POPULATE_INVLIST_FROM_BITMAP;
+
+    /* As the name says.  The zeroth bit corresponds to the code point given by
+     * 'offset' */
+
+    Size_t i;
+
+    for (i = 0; i < bitmap_len; i++) {
+        if (BITMAP_TEST(bitmap, i)) {
+            int start = i++;
+
+            /* Save a little work by adding a range all at once instead of bit
+             * by bit */
+            while (i < bitmap_len && BITMAP_TEST(bitmap, i)) {
+                i++;
+            }
+
+            *invlist = _add_range_to_invlist(*invlist,
+                                             start + offset,
+                                             i + offset - 1);
+        }
+    }
+}
+
+/* This section of code defines the inversion list object and its methods.  The
+ * interfaces are highly subject to change, so as much as possible is static to
+ * this file.  An inversion list is here implemented as a malloc'd C UV array
+ * as an SVt_INVLIST scalar.
+ *
+ * An inversion list for Unicode is an array of code points, sorted by ordinal
+ * number.  Each element gives the code point that begins a range that extends
+ * up-to but not including the code point given by the next element.  The final
+ * element gives the first code point of a range that extends to the platform's
+ * infinity.  The even-numbered elements (invlist[0], invlist[2], invlist[4],
+ * ...) give ranges whose code points are all in the inversion list.  We say
+ * that those ranges are in the set.  The odd-numbered elements give ranges
+ * whose code points are not in the inversion list, and hence not in the set.
+ * Thus, element [0] is the first code point in the list.  Element [1]
+ * is the first code point beyond that not in the list; and element [2] is the
+ * first code point beyond that that is in the list.  In other words, the first
+ * range is invlist[0]..(invlist[1]-1), and all code points in that range are
+ * in the inversion list.  The second range is invlist[1]..(invlist[2]-1), and
+ * all code points in that range are not in the inversion list.  The third
+ * range invlist[2]..(invlist[3]-1) gives code points that are in the inversion
+ * list, and so forth.  Thus every element whose index is divisible by two
+ * gives the beginning of a range that is in the list, and every element whose
+ * index is not divisible by two gives the beginning of a range not in the
+ * list.  If the final element's index is divisible by two, the inversion list
+ * extends to the platform's infinity; otherwise the highest code point in the
+ * inversion list is the contents of that element minus 1.
+ *
+ * A range that contains just a single code point N will look like
+ *  invlist[i]   == N
+ *  invlist[i+1] == N+1
+ *
+ * If N is UV_MAX (the highest representable code point on the machine), N+1 is
+ * impossible to represent, so element [i+1] is omitted.  The single element
+ * inversion list
+ *  invlist[0] == UV_MAX
+ * contains just UV_MAX, but is interpreted as matching to infinity.
+ *
+ * Taking the complement (inverting) an inversion list is quite simple, if the
+ * first element is 0, remove it; otherwise add a 0 element at the beginning.
+ * This implementation reserves an element at the beginning of each inversion
+ * list to always contain 0; there is an additional flag in the header which
+ * indicates if the list begins at the 0, or is offset to begin at the next
+ * element.  This means that the inversion list can be inverted without any
+ * copying; just flip the flag.
+ *
+ * More about inversion lists can be found in "Unicode Demystified"
+ * Chapter 13 by Richard Gillam, published by Addison-Wesley.
+ *
+ * The inversion list data structure is currently implemented as an SV pointing
+ * to an array of UVs that the SV thinks are bytes.  This allows us to have an
+ * array of UV whose memory management is automatically handled by the existing
+ * facilities for SV's.
+ *
+ * Some of the methods should always be private to the implementation, and some
+ * should eventually be made public */
+
+/* The header definitions are in F<invlist_inline.h> */
+
+#ifndef PERL_IN_XSUB_RE
+
+PERL_STATIC_INLINE UV*
+S__invlist_array_init(SV* const invlist, const bool will_have_0)
+{
+    /* Returns a pointer to the first element in the inversion list's array.
+     * This is called upon initialization of an inversion list.  Where the
+     * array begins depends on whether the list has the code point U+0000 in it
+     * or not.  The other parameter tells it whether the code that follows this
+     * call is about to put a 0 in the inversion list or not.  The first
+     * element is either the element reserved for 0, if TRUE, or the element
+     * after it, if FALSE */
+
+    bool* offset = get_invlist_offset_addr(invlist);
+    UV* zero_addr = (UV *) SvPVX(invlist);
+
+    PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT;
+
+    /* Must be empty */
+    assert(! _invlist_len(invlist));
+
+    *zero_addr = 0;
+
+    /* 1^1 = 0; 1^0 = 1 */
+    *offset = 1 ^ will_have_0;
+    return zero_addr + *offset;
+}
+
+STATIC void
+S_invlist_replace_list_destroys_src(pTHX_ SV * dest, SV * src)
+{
+    /* Replaces the inversion list in 'dest' with the one from 'src'.  It
+     * steals the list from 'src', so 'src' is made to have a NULL list.  This
+     * is similar to what SvSetMagicSV() would do, if it were implemented on
+     * inversion lists, though this routine avoids a copy */
+
+    const UV src_len          = _invlist_len(src);
+    const bool src_offset     = *get_invlist_offset_addr(src);
+    const STRLEN src_byte_len = SvLEN(src);
+    char * array              = SvPVX(src);
+
+#ifndef NO_TAINT_SUPPORT
+    const int oldtainted = TAINT_get;
+#endif
+
+    PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC;
+
+    assert(is_invlist(src));
+    assert(is_invlist(dest));
+    assert(! invlist_is_iterating(src));
+    assert(SvCUR(src) == 0 || SvCUR(src) < SvLEN(src));
+
+    /* Make sure it ends in the right place with a NUL, as our inversion list
+     * manipulations aren't careful to keep this true, but sv_usepvn_flags()
+     * asserts it */
+    array[src_byte_len - 1] = '\0';
+
+    TAINT_NOT;      /* Otherwise it breaks */
+    sv_usepvn_flags(dest,
+                    (char *) array,
+                    src_byte_len - 1,
+
+                    /* This flag is documented to cause a copy to be avoided */
+                    SV_HAS_TRAILING_NUL);
+    TAINT_set(oldtainted);
+    SvPV_set(src, 0);
+    SvLEN_set(src, 0);
+    SvCUR_set(src, 0);
+
+    /* Finish up copying over the other fields in an inversion list */
+    *get_invlist_offset_addr(dest) = src_offset;
+    invlist_set_len(dest, src_len, src_offset);
+    *get_invlist_previous_index_addr(dest) = 0;
+    invlist_iterfinish(dest);
+}
+
+PERL_STATIC_INLINE IV*
+S_get_invlist_previous_index_addr(SV* invlist)
+{
+    /* Return the address of the IV that is reserved to hold the cached index
+     * */
+    PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR;
+
+    assert(is_invlist(invlist));
+
+    return &(((XINVLIST*) SvANY(invlist))->prev_index);
+}
+
+PERL_STATIC_INLINE IV
+S_invlist_previous_index(SV* const invlist)
+{
+    /* Returns cached index of previous search */
+
+    PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX;
+
+    return *get_invlist_previous_index_addr(invlist);
+}
+
+PERL_STATIC_INLINE void
+S_invlist_set_previous_index(SV* const invlist, const IV index)
+{
+    /* Caches <index> for later retrieval */
+
+    PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX;
+
+    assert(index == 0 || index < (int) _invlist_len(invlist));
+
+    *get_invlist_previous_index_addr(invlist) = index;
+}
+
+PERL_STATIC_INLINE void
+S_invlist_trim(SV* invlist)
+{
+    /* Free the not currently-being-used space in an inversion list */
+
+    /* But don't free up the space needed for the 0 UV that is always at the
+     * beginning of the list, nor the trailing NUL */
+    const UV min_size = TO_INTERNAL_SIZE(1) + 1;
+
+    PERL_ARGS_ASSERT_INVLIST_TRIM;
+
+    assert(is_invlist(invlist));
+
+    SvPV_renew(invlist, MAX(min_size, SvCUR(invlist) + 1));
+}
+
+PERL_STATIC_INLINE void
+S_invlist_clear(pTHX_ SV* invlist)    /* Empty the inversion list */
+{
+    PERL_ARGS_ASSERT_INVLIST_CLEAR;
+
+    assert(is_invlist(invlist));
+
+    invlist_set_len(invlist, 0, 0);
+    invlist_trim(invlist);
+}
+
+PERL_STATIC_INLINE UV
+S_invlist_max(const SV* const invlist)
+{
+    /* Returns the maximum number of elements storable in the inversion list's
+     * array, without having to realloc() */
+
+    PERL_ARGS_ASSERT_INVLIST_MAX;
+
+    assert(is_invlist(invlist));
+
+    /* Assumes worst case, in which the 0 element is not counted in the
+     * inversion list, so subtracts 1 for that */
+    return SvLEN(invlist) == 0  /* This happens under _new_invlist_C_array */
+           ? FROM_INTERNAL_SIZE(SvCUR(invlist)) - 1
+           : FROM_INTERNAL_SIZE(SvLEN(invlist)) - 1;
+}
+
+STATIC void
+S_initialize_invlist_guts(pTHX_ SV* invlist, const Size_t initial_size)
+{
+    PERL_ARGS_ASSERT_INITIALIZE_INVLIST_GUTS;
+
+    /* First 1 is in case the zero element isn't in the list; second 1 is for
+     * trailing NUL */
+    SvGROW(invlist, TO_INTERNAL_SIZE(initial_size + 1) + 1);
+    invlist_set_len(invlist, 0, 0);
+
+    /* Force iterinit() to be used to get iteration to work */
+    invlist_iterfinish(invlist);
+
+    *get_invlist_previous_index_addr(invlist) = 0;
+    SvPOK_on(invlist);  /* This allows B to extract the PV */
+}
+
+SV*
+Perl__new_invlist(pTHX_ IV initial_size)
+{
+
+    /* Return a pointer to a newly constructed inversion list, with enough
+     * space to store 'initial_size' elements.  If that number is negative, a
+     * system default is used instead */
+
+    SV* new_list;
+
+    if (initial_size < 0) {
+        initial_size = 10;
+    }
+
+    new_list = newSV_type(SVt_INVLIST);
+    initialize_invlist_guts(new_list, initial_size);
+
+    return new_list;
+}
+
+SV*
+Perl__new_invlist_C_array(pTHX_ const UV* const list)
+{
+    /* Return a pointer to a newly constructed inversion list, initialized to
+     * point to <list>, which has to be in the exact correct inversion list
+     * form, including internal fields.  Thus this is a dangerous routine that
+     * should not be used in the wrong hands.  The passed in 'list' contains
+     * several header fields at the beginning that are not part of the
+     * inversion list body proper */
+
+    const STRLEN length = (STRLEN) list[0];
+    const UV version_id =          list[1];
+    const bool offset   =    cBOOL(list[2]);
+#define HEADER_LENGTH 3
+    /* If any of the above changes in any way, you must change HEADER_LENGTH
+     * (if appropriate) and regenerate INVLIST_VERSION_ID by running
+     *      perl -E 'say int(rand 2**31-1)'
+     */
+#define INVLIST_VERSION_ID 148565664 /* This is a combination of a version and
+                                        data structure type, so that one being
+                                        passed in can be validated to be an
+                                        inversion list of the correct vintage.
+                                       */
+
+    SV* invlist = newSV_type(SVt_INVLIST);
+
+    PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY;
+
+    if (version_id != INVLIST_VERSION_ID) {
+        Perl_croak(aTHX_ "panic: Incorrect version for previously generated inversion list");
+    }
+
+    /* The generated array passed in includes header elements that aren't part
+     * of the list proper, so start it just after them */
+    SvPV_set(invlist, (char *) (list + HEADER_LENGTH));
+
+    SvLEN_set(invlist, 0);  /* Means we own the contents, and the system
+                               shouldn't touch it */
+
+    *(get_invlist_offset_addr(invlist)) = offset;
+
+    /* The 'length' passed to us is the physical number of elements in the
+     * inversion list.  But if there is an offset the logical number is one
+     * less than that */
+    invlist_set_len(invlist, length  - offset, offset);
+
+    invlist_set_previous_index(invlist, 0);
+
+    /* Initialize the iteration pointer. */
+    invlist_iterfinish(invlist);
+
+    SvREADONLY_on(invlist);
+    SvPOK_on(invlist);
+
+    return invlist;
+}
+
+STATIC void
+S__append_range_to_invlist(pTHX_ SV* const invlist,
+                                 const UV start, const UV end)
+{
+   /* Subject to change or removal.  Append the range from 'start' to 'end' at
+    * the end of the inversion list.  The range must be above any existing
+    * ones. */
+
+    UV* array;
+    UV max = invlist_max(invlist);
+    UV len = _invlist_len(invlist);
+    bool offset;
+
+    PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST;
+
+    if (len == 0) { /* Empty lists must be initialized */
+        offset = start != 0;
+        array = _invlist_array_init(invlist, ! offset);
+    }
+    else {
+        /* Here, the existing list is non-empty. The current max entry in the
+         * list is generally the first value not in the set, except when the
+         * set extends to the end of permissible values, in which case it is
+         * the first entry in that final set, and so this call is an attempt to
+         * append out-of-order */
+
+        UV final_element = len - 1;
+        array = invlist_array(invlist);
+        if (   array[final_element] > start
+            || ELEMENT_RANGE_MATCHES_INVLIST(final_element))
+        {
+            Perl_croak(aTHX_ "panic: attempting to append to an inversion list, but wasn't at the end of the list, final=%" UVuf ", start=%" UVuf ", match=%c",
+                     array[final_element], start,
+                     ELEMENT_RANGE_MATCHES_INVLIST(final_element) ? 't' : 'f');
+        }
+
+        /* Here, it is a legal append.  If the new range begins 1 above the end
+         * of the range below it, it is extending the range below it, so the
+         * new first value not in the set is one greater than the newly
+         * extended range.  */
+        offset = *get_invlist_offset_addr(invlist);
+        if (array[final_element] == start) {
+            if (end != UV_MAX) {
+                array[final_element] = end + 1;
+            }
+            else {
+                /* But if the end is the maximum representable on the machine,
+                 * assume that infinity was actually what was meant.  Just let
+                 * the range that this would extend to have no end */
+                invlist_set_len(invlist, len - 1, offset);
+            }
+            return;
+        }
+    }
+
+    /* Here the new range doesn't extend any existing set.  Add it */
+
+    len += 2;   /* Includes an element each for the start and end of range */
+
+    /* If wll overflow the existing space, extend, which may cause the array to
+     * be moved */
+    if (max < len) {
+        invlist_extend(invlist, len);
+
+        /* Have to set len here to avoid assert failure in invlist_array() */
+        invlist_set_len(invlist, len, offset);
+
+        array = invlist_array(invlist);
+    }
+    else {
+        invlist_set_len(invlist, len, offset);
+    }
+
+    /* The next item on the list starts the range, the one after that is
+     * one past the new range.  */
+    array[len - 2] = start;
+    if (end != UV_MAX) {
+        array[len - 1] = end + 1;
+    }
+    else {
+        /* But if the end is the maximum representable on the machine, just let
+         * the range have no end */
+        invlist_set_len(invlist, len - 1, offset);
+    }
+}
+
+SSize_t
+Perl__invlist_search(SV* const invlist, const UV cp)
+{
+    /* Searches the inversion list for the entry that contains the input code
+     * point <cp>.  If <cp> is not in the list, -1 is returned.  Otherwise, the
+     * return value is the index into the list's array of the range that
+     * contains <cp>, that is, 'i' such that
+     *  array[i] <= cp < array[i+1]
+     */
+
+    IV low = 0;
+    IV mid;
+    IV high = _invlist_len(invlist);
+    const IV highest_element = high - 1;
+    const UV* array;
+
+    PERL_ARGS_ASSERT__INVLIST_SEARCH;
+
+    /* If list is empty, return failure. */
+    if (UNLIKELY(high == 0)) {
+        return -1;
+    }
+
+    /* (We can't get the array unless we know the list is non-empty) */
+    array = invlist_array(invlist);
+
+    mid = invlist_previous_index(invlist);
+    assert(mid >=0);
+    if (UNLIKELY(mid > highest_element)) {
+        mid = highest_element;
+    }
+
+    /* <mid> contains the cache of the result of the previous call to this
+     * function (0 the first time).  See if this call is for the same result,
+     * or if it is for mid-1.  This is under the theory that calls to this
+     * function will often be for related code points that are near each other.
+     * And benchmarks show that caching gives better results.  We also test
+     * here if the code point is within the bounds of the list.  These tests
+     * replace others that would have had to be made anyway to make sure that
+     * the array bounds were not exceeded, and these give us extra information
+     * at the same time */
+    if (cp >= array[mid]) {
+        if (cp >= array[highest_element]) {
+            return highest_element;
+        }
+
+        /* Here, array[mid] <= cp < array[highest_element].  This means that
+         * the final element is not the answer, so can exclude it; it also
+         * means that <mid> is not the final element, so can refer to 'mid + 1'
+         * safely */
+        if (cp < array[mid + 1]) {
+            return mid;
+        }
+        high--;
+        low = mid + 1;
+    }
+    else { /* cp < aray[mid] */
+        if (cp < array[0]) { /* Fail if outside the array */
+            return -1;
+        }
+        high = mid;
+        if (cp >= array[mid - 1]) {
+            goto found_entry;
+        }
+    }
+
+    /* Binary search.  What we are looking for is <i> such that
+     *  array[i] <= cp < array[i+1]
+     * The loop below converges on the i+1.  Note that there may not be an
+     * (i+1)th element in the array, and things work nonetheless */
+    while (low < high) {
+        mid = (low + high) / 2;
+        assert(mid <= highest_element);
+        if (array[mid] <= cp) { /* cp >= array[mid] */
+            low = mid + 1;
+
+            /* We could do this extra test to exit the loop early.
+            if (cp < array[low]) {
+                return mid;
+            }
+            */
+        }
+        else { /* cp < array[mid] */
+            high = mid;
+        }
+    }
+
+  found_entry:
+    high--;
+    invlist_set_previous_index(invlist, high);
+    return high;
+}
+
+void
+Perl__invlist_union_maybe_complement_2nd(pTHX_ SV* const a, SV* const b,
+                                         const bool complement_b, SV** output)
+{
+    /* Take the union of two inversion lists and point '*output' to it.  On
+     * input, '*output' MUST POINT TO NULL OR TO AN SV* INVERSION LIST (possibly
+     * even 'a' or 'b').  If to an inversion list, the contents of the original
+     * list will be replaced by the union.  The first list, 'a', may be
+     * NULL, in which case a copy of the second list is placed in '*output'.
+     * If 'complement_b' is TRUE, the union is taken of the complement
+     * (inversion) of 'b' instead of b itself.
+     *
+     * The basis for this comes from "Unicode Demystified" Chapter 13 by
+     * Richard Gillam, published by Addison-Wesley, and explained at some
+     * length there.  The preface says to incorporate its examples into your
+     * code at your own risk.
+     *
+     * The algorithm is like a merge sort. */
+
+    const UV* array_a;    /* a's array */
+    const UV* array_b;
+    UV len_a;       /* length of a's array */
+    UV len_b;
+
+    SV* u;                      /* the resulting union */
+    UV* array_u;
+    UV len_u = 0;
+
+    UV i_a = 0;             /* current index into a's array */
+    UV i_b = 0;
+    UV i_u = 0;
+
+    /* running count, as explained in the algorithm source book; items are
+     * stopped accumulating and are output when the count changes to/from 0.
+     * The count is incremented when we start a range that's in an input's set,
+     * and decremented when we start a range that's not in a set.  So this
+     * variable can be 0, 1, or 2.  When it is 0 neither input is in their set,
+     * and hence nothing goes into the union; 1, just one of the inputs is in
+     * its set (and its current range gets added to the union); and 2 when both
+     * inputs are in their sets.  */
+    UV count = 0;
+
+    PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND;
+    assert(a != b);
+    assert(*output == NULL || is_invlist(*output));
+
+    len_b = _invlist_len(b);
+    if (len_b == 0) {
+
+        /* Here, 'b' is empty, hence it's complement is all possible code
+         * points.  So if the union includes the complement of 'b', it includes
+         * everything, and we need not even look at 'a'.  It's easiest to
+         * create a new inversion list that matches everything.  */
+        if (complement_b) {
+            SV* everything = _add_range_to_invlist(NULL, 0, UV_MAX);
+
+            if (*output == NULL) { /* If the output didn't exist, just point it
+                                      at the new list */
+                *output = everything;
+            }
+            else { /* Otherwise, replace its contents with the new list */
+                invlist_replace_list_destroys_src(*output, everything);
+                SvREFCNT_dec_NN(everything);
+            }
+
+            return;
+        }
+
+        /* Here, we don't want the complement of 'b', and since 'b' is empty,
+         * the union will come entirely from 'a'.  If 'a' is NULL or empty, the
+         * output will be empty */
+
+        if (a == NULL || _invlist_len(a) == 0) {
+            if (*output == NULL) {
+                *output = _new_invlist(0);
+            }
+            else {
+                invlist_clear(*output);
+            }
+            return;
+        }
+
+        /* Here, 'a' is not empty, but 'b' is, so 'a' entirely determines the
+         * union.  We can just return a copy of 'a' if '*output' doesn't point
+         * to an existing list */
+        if (*output == NULL) {
+            *output = invlist_clone(a, NULL);
+            return;
+        }
+
+        /* If the output is to overwrite 'a', we have a no-op, as it's
+         * already in 'a' */
+        if (*output == a) {
+            return;
+        }
+
+        /* Here, '*output' is to be overwritten by 'a' */
+        u = invlist_clone(a, NULL);
+        invlist_replace_list_destroys_src(*output, u);
+        SvREFCNT_dec_NN(u);
+
+        return;
+    }
+
+    /* Here 'b' is not empty.  See about 'a' */
+
+    if (a == NULL || ((len_a = _invlist_len(a)) == 0)) {
+
+        /* Here, 'a' is empty (and b is not).  That means the union will come
+         * entirely from 'b'.  If '*output' is NULL, we can directly return a
+         * clone of 'b'.  Otherwise, we replace the contents of '*output' with
+         * the clone */
+
+        SV ** dest = (*output == NULL) ? output : &u;
+        *dest = invlist_clone(b, NULL);
+        if (complement_b) {
+            _invlist_invert(*dest);
+        }
+
+        if (dest == &u) {
+            invlist_replace_list_destroys_src(*output, u);
+            SvREFCNT_dec_NN(u);
+        }
+
+        return;
+    }
+
+    /* Here both lists exist and are non-empty */
+    array_a = invlist_array(a);
+    array_b = invlist_array(b);
+
+    /* If are to take the union of 'a' with the complement of b, set it
+     * up so are looking at b's complement. */
+    if (complement_b) {
+
+        /* To complement, we invert: if the first element is 0, remove it.  To
+         * do this, we just pretend the array starts one later */
+        if (array_b[0] == 0) {
+            array_b++;
+            len_b--;
+        }
+        else {
+
+            /* But if the first element is not zero, we pretend the list starts
+             * at the 0 that is always stored immediately before the array. */
+            array_b--;
+            len_b++;
+        }
+    }
+
+    /* Size the union for the worst case: that the sets are completely
+     * disjoint */
+    u = _new_invlist(len_a + len_b);
+
+    /* Will contain U+0000 if either component does */
+    array_u = _invlist_array_init(u, (    len_a > 0 && array_a[0] == 0)
+                                      || (len_b > 0 && array_b[0] == 0));
+
+    /* Go through each input list item by item, stopping when have exhausted
+     * one of them */
+    while (i_a < len_a && i_b < len_b) {
+        UV cp;      /* The element to potentially add to the union's array */
+        bool cp_in_set;   /* is it in the input list's set or not */
+
+        /* We need to take one or the other of the two inputs for the union.
+         * Since we are merging two sorted lists, we take the smaller of the
+         * next items.  In case of a tie, we take first the one that is in its
+         * set.  If we first took the one not in its set, it would decrement
+         * the count, possibly to 0 which would cause it to be output as ending
+         * the range, and the next time through we would take the same number,
+         * and output it again as beginning the next range.  By doing it the
+         * opposite way, there is no possibility that the count will be
+         * momentarily decremented to 0, and thus the two adjoining ranges will
+         * be seamlessly merged.  (In a tie and both are in the set or both not
+         * in the set, it doesn't matter which we take first.) */
+        if (       array_a[i_a] < array_b[i_b]
+            || (   array_a[i_a] == array_b[i_b]
+                && ELEMENT_RANGE_MATCHES_INVLIST(i_a)))
+        {
+            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_a);
+            cp = array_a[i_a++];
+        }
+        else {
+            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_b);
+            cp = array_b[i_b++];
+        }
+
+        /* Here, have chosen which of the two inputs to look at.  Only output
+         * if the running count changes to/from 0, which marks the
+         * beginning/end of a range that's in the set */
+        if (cp_in_set) {
+            if (count == 0) {
+                array_u[i_u++] = cp;
+            }
+            count++;
+        }
+        else {
+            count--;
+            if (count == 0) {
+                array_u[i_u++] = cp;
+            }
+        }
+    }
+
+
+    /* The loop above increments the index into exactly one of the input lists
+     * each iteration, and ends when either index gets to its list end.  That
+     * means the other index is lower than its end, and so something is
+     * remaining in that one.  We decrement 'count', as explained below, if
+     * that list is in its set.  (i_a and i_b each currently index the element
+     * beyond the one we care about.) */
+    if (   (i_a != len_a && PREV_RANGE_MATCHES_INVLIST(i_a))
+        || (i_b != len_b && PREV_RANGE_MATCHES_INVLIST(i_b)))
+    {
+        count--;
+    }
+
+    /* Above we decremented 'count' if the list that had unexamined elements in
+     * it was in its set.  This has made it so that 'count' being non-zero
+     * means there isn't anything left to output; and 'count' equal to 0 means
+     * that what is left to output is precisely that which is left in the
+     * non-exhausted input list.
+     *
+     * To see why, note first that the exhausted input obviously has nothing
+     * left to add to the union.  If it was in its set at its end, that means
+     * the set extends from here to the platform's infinity, and hence so does
+     * the union and the non-exhausted set is irrelevant.  The exhausted set
+     * also contributed 1 to 'count'.  If 'count' was 2, it got decremented to
+     * 1, but if it was 1, the non-exhausted set wasn't in its set, and so
+     * 'count' remains at 1.  This is consistent with the decremented 'count'
+     * != 0 meaning there's nothing left to add to the union.
+     *
+     * But if the exhausted input wasn't in its set, it contributed 0 to
+     * 'count', and the rest of the union will be whatever the other input is.
+     * If 'count' was 0, neither list was in its set, and 'count' remains 0;
+     * otherwise it gets decremented to 0.  This is consistent with 'count'
+     * == 0 meaning the remainder of the union is whatever is left in the
+     * non-exhausted list. */
+    if (count != 0) {
+        len_u = i_u;
+    }
+    else {
+        IV copy_count = len_a - i_a;
+        if (copy_count > 0) {   /* The non-exhausted input is 'a' */
+            Copy(array_a + i_a, array_u + i_u, copy_count, UV);
+        }
+        else { /* The non-exhausted input is b */
+            copy_count = len_b - i_b;
+            Copy(array_b + i_b, array_u + i_u, copy_count, UV);
+        }
+        len_u = i_u + copy_count;
+    }
+
+    /* Set the result to the final length, which can change the pointer to
+     * array_u, so re-find it.  (Note that it is unlikely that this will
+     * change, as we are shrinking the space, not enlarging it) */
+    if (len_u != _invlist_len(u)) {
+        invlist_set_len(u, len_u, *get_invlist_offset_addr(u));
+        invlist_trim(u);
+        array_u = invlist_array(u);
+    }
+
+    if (*output == NULL) {  /* Simply return the new inversion list */
+        *output = u;
+    }
+    else {
+        /* Otherwise, overwrite the inversion list that was in '*output'.  We
+         * could instead free '*output', and then set it to 'u', but experience
+         * has shown [perl #127392] that if the input is a mortal, we can get a
+         * huge build-up of these during regex compilation before they get
+         * freed. */
+        invlist_replace_list_destroys_src(*output, u);
+        SvREFCNT_dec_NN(u);
+    }
+
+    return;
+}
+
+void
+Perl__invlist_intersection_maybe_complement_2nd(pTHX_ SV* const a, SV* const b,
+                                               const bool complement_b, SV** i)
+{
+    /* Take the intersection of two inversion lists and point '*i' to it.  On
+     * input, '*i' MUST POINT TO NULL OR TO AN SV* INVERSION LIST (possibly
+     * even 'a' or 'b').  If to an inversion list, the contents of the original
+     * list will be replaced by the intersection.  The first list, 'a', may be
+     * NULL, in which case '*i' will be an empty list.  If 'complement_b' is
+     * TRUE, the result will be the intersection of 'a' and the complement (or
+     * inversion) of 'b' instead of 'b' directly.
+     *
+     * The basis for this comes from "Unicode Demystified" Chapter 13 by
+     * Richard Gillam, published by Addison-Wesley, and explained at some
+     * length there.  The preface says to incorporate its examples into your
+     * code at your own risk.  In fact, it had bugs
+     *
+     * The algorithm is like a merge sort, and is essentially the same as the
+     * union above
+     */
+
+    const UV* array_a;          /* a's array */
+    const UV* array_b;
+    UV len_a;   /* length of a's array */
+    UV len_b;
+
+    SV* r;                   /* the resulting intersection */
+    UV* array_r;
+    UV len_r = 0;
+
+    UV i_a = 0;             /* current index into a's array */
+    UV i_b = 0;
+    UV i_r = 0;
+
+    /* running count of how many of the two inputs are postitioned at ranges
+     * that are in their sets.  As explained in the algorithm source book,
+     * items are stopped accumulating and are output when the count changes
+     * to/from 2.  The count is incremented when we start a range that's in an
+     * input's set, and decremented when we start a range that's not in a set.
+     * Only when it is 2 are we in the intersection. */
+    UV count = 0;
+
+    PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND;
+    assert(a != b);
+    assert(*i == NULL || is_invlist(*i));
+
+    /* Special case if either one is empty */
+    len_a = (a == NULL) ? 0 : _invlist_len(a);
+    if ((len_a == 0) || ((len_b = _invlist_len(b)) == 0)) {
+        if (len_a != 0 && complement_b) {
+
+            /* Here, 'a' is not empty, therefore from the enclosing 'if', 'b'
+             * must be empty.  Here, also we are using 'b's complement, which
+             * hence must be every possible code point.  Thus the intersection
+             * is simply 'a'. */
+
+            if (*i == a) {  /* No-op */
+                return;
+            }
+
+            if (*i == NULL) {
+                *i = invlist_clone(a, NULL);
+                return;
+            }
+
+            r = invlist_clone(a, NULL);
+            invlist_replace_list_destroys_src(*i, r);
+            SvREFCNT_dec_NN(r);
+            return;
+        }
+
+        /* Here, 'a' or 'b' is empty and not using the complement of 'b'.  The
+         * intersection must be empty */
+        if (*i == NULL) {
+            *i = _new_invlist(0);
+            return;
+        }
+
+        invlist_clear(*i);
+        return;
+    }
+
+    /* Here both lists exist and are non-empty */
+    array_a = invlist_array(a);
+    array_b = invlist_array(b);
+
+    /* If are to take the intersection of 'a' with the complement of b, set it
+     * up so are looking at b's complement. */
+    if (complement_b) {
+
+        /* To complement, we invert: if the first element is 0, remove it.  To
+         * do this, we just pretend the array starts one later */
+        if (array_b[0] == 0) {
+            array_b++;
+            len_b--;
+        }
+        else {
+
+            /* But if the first element is not zero, we pretend the list starts
+             * at the 0 that is always stored immediately before the array. */
+            array_b--;
+            len_b++;
+        }
+    }
+
+    /* Size the intersection for the worst case: that the intersection ends up
+     * fragmenting everything to be completely disjoint */
+    r= _new_invlist(len_a + len_b);
+
+    /* Will contain U+0000 iff both components do */
+    array_r = _invlist_array_init(r,    len_a > 0 && array_a[0] == 0
+                                     && len_b > 0 && array_b[0] == 0);
+
+    /* Go through each list item by item, stopping when have exhausted one of
+     * them */
+    while (i_a < len_a && i_b < len_b) {
+        UV cp;      /* The element to potentially add to the intersection's
+                       array */
+        bool cp_in_set; /* Is it in the input list's set or not */
+
+        /* We need to take one or the other of the two inputs for the
+         * intersection.  Since we are merging two sorted lists, we take the
+         * smaller of the next items.  In case of a tie, we take first the one
+         * that is not in its set (a difference from the union algorithm).  If
+         * we first took the one in its set, it would increment the count,
+         * possibly to 2 which would cause it to be output as starting a range
+         * in the intersection, and the next time through we would take that
+         * same number, and output it again as ending the set.  By doing the
+         * opposite of this, there is no possibility that the count will be
+         * momentarily incremented to 2.  (In a tie and both are in the set or
+         * both not in the set, it doesn't matter which we take first.) */
+        if (       array_a[i_a] < array_b[i_b]
+            || (   array_a[i_a] == array_b[i_b]
+                && ! ELEMENT_RANGE_MATCHES_INVLIST(i_a)))
+        {
+            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_a);
+            cp = array_a[i_a++];
+        }
+        else {
+            cp_in_set = ELEMENT_RANGE_MATCHES_INVLIST(i_b);
+            cp= array_b[i_b++];
+        }
+
+        /* Here, have chosen which of the two inputs to look at.  Only output
+         * if the running count changes to/from 2, which marks the
+         * beginning/end of a range that's in the intersection */
+        if (cp_in_set) {
+            count++;
+            if (count == 2) {
+                array_r[i_r++] = cp;
+            }
+        }
+        else {
+            if (count == 2) {
+                array_r[i_r++] = cp;
+            }
+            count--;
+        }
+
+    }
+
+    /* The loop above increments the index into exactly one of the input lists
+     * each iteration, and ends when either index gets to its list end.  That
+     * means the other index is lower than its end, and so something is
+     * remaining in that one.  We increment 'count', as explained below, if the
+     * exhausted list was in its set.  (i_a and i_b each currently index the
+     * element beyond the one we care about.) */
+    if (   (i_a == len_a && PREV_RANGE_MATCHES_INVLIST(i_a))
+        || (i_b == len_b && PREV_RANGE_MATCHES_INVLIST(i_b)))
+    {
+        count++;
+    }
+
+    /* Above we incremented 'count' if the exhausted list was in its set.  This
+     * has made it so that 'count' being below 2 means there is nothing left to
+     * output; otheriwse what's left to add to the intersection is precisely
+     * that which is left in the non-exhausted input list.
+     *
+     * To see why, note first that the exhausted input obviously has nothing
+     * left to affect the intersection.  If it was in its set at its end, that
+     * means the set extends from here to the platform's infinity, and hence
+     * anything in the non-exhausted's list will be in the intersection, and
+     * anything not in it won't be.  Hence, the rest of the intersection is
+     * precisely what's in the non-exhausted list  The exhausted set also
+     * contributed 1 to 'count', meaning 'count' was at least 1.  Incrementing
+     * it means 'count' is now at least 2.  This is consistent with the
+     * incremented 'count' being >= 2 means to add the non-exhausted list to
+     * the intersection.
+     *
+     * But if the exhausted input wasn't in its set, it contributed 0 to
+     * 'count', and the intersection can't include anything further; the
+     * non-exhausted set is irrelevant.  'count' was at most 1, and doesn't get
+     * incremented.  This is consistent with 'count' being < 2 meaning nothing
+     * further to add to the intersection. */
+    if (count < 2) { /* Nothing left to put in the intersection. */
+        len_r = i_r;
+    }
+    else { /* copy the non-exhausted list, unchanged. */
+        IV copy_count = len_a - i_a;
+        if (copy_count > 0) {   /* a is the one with stuff left */
+            Copy(array_a + i_a, array_r + i_r, copy_count, UV);
+        }
+        else {  /* b is the one with stuff left */
+            copy_count = len_b - i_b;
+            Copy(array_b + i_b, array_r + i_r, copy_count, UV);
+        }
+        len_r = i_r + copy_count;
+    }
+
+    /* Set the result to the final length, which can change the pointer to
+     * array_r, so re-find it.  (Note that it is unlikely that this will
+     * change, as we are shrinking the space, not enlarging it) */
+    if (len_r != _invlist_len(r)) {
+        invlist_set_len(r, len_r, *get_invlist_offset_addr(r));
+        invlist_trim(r);
+        array_r = invlist_array(r);
+    }
+
+    if (*i == NULL) { /* Simply return the calculated intersection */
+        *i = r;
+    }
+    else { /* Otherwise, replace the existing inversion list in '*i'.  We could
+              instead free '*i', and then set it to 'r', but experience has
+              shown [perl #127392] that if the input is a mortal, we can get a
+              huge build-up of these during regex compilation before they get
+              freed. */
+        if (len_r) {
+            invlist_replace_list_destroys_src(*i, r);
+        }
+        else {
+            invlist_clear(*i);
+        }
+        SvREFCNT_dec_NN(r);
+    }
+
+    return;
+}
+
+SV*
+Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
+{
+    /* Add the range from 'start' to 'end' inclusive to the inversion list's
+     * set.  A pointer to the inversion list is returned.  This may actually be
+     * a new list, in which case the passed in one has been destroyed.  The
+     * passed-in inversion list can be NULL, in which case a new one is created
+     * with just the one range in it.  The new list is not necessarily
+     * NUL-terminated.  Space is not freed if the inversion list shrinks as a
+     * result of this function.  The gain would not be large, and in many
+     * cases, this is called multiple times on a single inversion list, so
+     * anything freed may almost immediately be needed again.
+     *
+     * This used to mostly call the 'union' routine, but that is much more
+     * heavyweight than really needed for a single range addition */
+
+    UV* array;              /* The array implementing the inversion list */
+    UV len;                 /* How many elements in 'array' */
+    SSize_t i_s;            /* index into the invlist array where 'start'
+                               should go */
+    SSize_t i_e = 0;        /* And the index where 'end' should go */
+    UV cur_highest;         /* The highest code point in the inversion list
+                               upon entry to this function */
+
+    /* This range becomes the whole inversion list if none already existed */
+    if (invlist == NULL) {
+        invlist = _new_invlist(2);
+        _append_range_to_invlist(invlist, start, end);
+        return invlist;
+    }
+
+    /* Likewise, if the inversion list is currently empty */
+    len = _invlist_len(invlist);
+    if (len == 0) {
+        _append_range_to_invlist(invlist, start, end);
+        return invlist;
+    }
+
+    /* Starting here, we have to know the internals of the list */
+    array = invlist_array(invlist);
+
+    /* If the new range ends higher than the current highest ... */
+    cur_highest = invlist_highest(invlist);
+    if (end > cur_highest) {
+
+        /* If the whole range is higher, we can just append it */
+        if (start > cur_highest) {
+            _append_range_to_invlist(invlist, start, end);
+            return invlist;
+        }
+
+        /* Otherwise, add the portion that is higher ... */
+        _append_range_to_invlist(invlist, cur_highest + 1, end);
+
+        /* ... and continue on below to handle the rest.  As a result of the
+         * above append, we know that the index of the end of the range is the
+         * final even numbered one of the array.  Recall that the final element
+         * always starts a range that extends to infinity.  If that range is in
+         * the set (meaning the set goes from here to infinity), it will be an
+         * even index, but if it isn't in the set, it's odd, and the final
+         * range in the set is one less, which is even. */
+        if (end == UV_MAX) {
+            i_e = len;
+        }
+        else {
+            i_e = len - 2;
+        }
+    }
+
+    /* We have dealt with appending, now see about prepending.  If the new
+     * range starts lower than the current lowest ... */
+    if (start < array[0]) {
+
+        /* Adding something which has 0 in it is somewhat tricky, and uncommon.
+         * Let the union code handle it, rather than having to know the
+         * trickiness in two code places.  */
+        if (UNLIKELY(start == 0)) {
+            SV* range_invlist;
+
+            range_invlist = _new_invlist(2);
+            _append_range_to_invlist(range_invlist, start, end);
+
+            _invlist_union(invlist, range_invlist, &invlist);
+
+            SvREFCNT_dec_NN(range_invlist);
+
+            return invlist;
+        }
+
+        /* If the whole new range comes before the first entry, and doesn't
+         * extend it, we have to insert it as an additional range */
+        if (end < array[0] - 1) {
+            i_s = i_e = -1;
+            goto splice_in_new_range;
+        }
+
+        /* Here the new range adjoins the existing first range, extending it
+         * downwards. */
+        array[0] = start;
+
+        /* And continue on below to handle the rest.  We know that the index of
+         * the beginning of the range is the first one of the array */
+        i_s = 0;
+    }
+    else { /* Not prepending any part of the new range to the existing list.
+            * Find where in the list it should go.  This finds i_s, such that:
+            *     invlist[i_s] <= start < array[i_s+1]
+            */
+        i_s = _invlist_search(invlist, start);
+    }
+
+    /* At this point, any extending before the beginning of the inversion list
+     * and/or after the end has been done.  This has made it so that, in the
+     * code below, each endpoint of the new range is either in a range that is
+     * in the set, or is in a gap between two ranges that are.  This means we
+     * don't have to worry about exceeding the array bounds.
+     *
+     * Find where in the list the new range ends (but we can skip this if we
+     * have already determined what it is, or if it will be the same as i_s,
+     * which we already have computed) */
+    if (i_e == 0) {
+        i_e = (start == end)
+              ? i_s
+              : _invlist_search(invlist, end);
+    }
+
+    /* Here generally invlist[i_e] <= end < array[i_e+1].  But if invlist[i_e]
+     * is a range that goes to infinity there is no element at invlist[i_e+1],
+     * so only the first relation holds. */
+
+    if ( ! ELEMENT_RANGE_MATCHES_INVLIST(i_s)) {
+
+        /* Here, the ranges on either side of the beginning of the new range
+         * are in the set, and this range starts in the gap between them.
+         *
+         * The new range extends the range above it downwards if the new range
+         * ends at or above that range's start */
+        const bool extends_the_range_above = (   end == UV_MAX
+                                              || end + 1 >= array[i_s+1]);
+
+        /* The new range extends the range below it upwards if it begins just
+         * after where that range ends */
+        if (start == array[i_s]) {
+
+            /* If the new range fills the entire gap between the other ranges,
+             * they will get merged together.  Other ranges may also get
+             * merged, depending on how many of them the new range spans.  In
+             * the general case, we do the merge later, just once, after we
+             * figure out how many to merge.  But in the case where the new
+             * range exactly spans just this one gap (possibly extending into
+             * the one above), we do the merge here, and an early exit.  This
+             * is done here to avoid having to special case later. */
+            if (i_e - i_s <= 1) {
+
+                /* If i_e - i_s == 1, it means that the new range terminates
+                 * within the range above, and hence 'extends_the_range_above'
+                 * must be true.  (If the range above it extends to infinity,
+                 * 'i_s+2' will be above the array's limit, but 'len-i_s-2'
+                 * will be 0, so no harm done.) */
+                if (extends_the_range_above) {
+                    Move(array + i_s + 2, array + i_s, len - i_s - 2, UV);
+                    invlist_set_len(invlist,
+                                    len - 2,
+                                    *(get_invlist_offset_addr(invlist)));
+                    return invlist;
+                }
+
+                /* Here, i_e must == i_s.  We keep them in sync, as they apply
+                 * to the same range, and below we are about to decrement i_s
+                 * */
+                i_e--;
+            }
+
+            /* Here, the new range is adjacent to the one below.  (It may also
+             * span beyond the range above, but that will get resolved later.)
+             * Extend the range below to include this one. */
+            array[i_s] = (end == UV_MAX) ? UV_MAX : end + 1;
+            i_s--;
+            start = array[i_s];
+        }
+        else if (extends_the_range_above) {
+
+            /* Here the new range only extends the range above it, but not the
+             * one below.  It merges with the one above.  Again, we keep i_e
+             * and i_s in sync if they point to the same range */
+            if (i_e == i_s) {
+                i_e++;
+            }
+            i_s++;
+            array[i_s] = start;
+        }
+    }
+
+    /* Here, we've dealt with the new range start extending any adjoining
+     * existing ranges.
+     *
+     * If the new range extends to infinity, it is now the final one,
+     * regardless of what was there before */
+    if (UNLIKELY(end == UV_MAX)) {
+        invlist_set_len(invlist, i_s + 1, *(get_invlist_offset_addr(invlist)));
+        return invlist;
+    }
+
+    /* If i_e started as == i_s, it has also been dealt with,
+     * and been updated to the new i_s, which will fail the following if */
+    if (! ELEMENT_RANGE_MATCHES_INVLIST(i_e)) {
+
+        /* Here, the ranges on either side of the end of the new range are in
+         * the set, and this range ends in the gap between them.
+         *
+         * If this range is adjacent to (hence extends) the range above it, it
+         * becomes part of that range; likewise if it extends the range below,
+         * it becomes part of that range */
+        if (end + 1 == array[i_e+1]) {
+            i_e++;
+            array[i_e] = start;
+        }
+        else if (start <= array[i_e]) {
+            array[i_e] = end + 1;
+            i_e--;
+        }
+    }
+
+    if (i_s == i_e) {
+
+        /* If the range fits entirely in an existing range (as possibly already
+         * extended above), it doesn't add anything new */
+        if (ELEMENT_RANGE_MATCHES_INVLIST(i_s)) {
+            return invlist;
+        }
+
+        /* Here, no part of the range is in the list.  Must add it.  It will
+         * occupy 2 more slots */
+      splice_in_new_range:
+
+        invlist_extend(invlist, len + 2);
+        array = invlist_array(invlist);
+        /* Move the rest of the array down two slots. Don't include any
+         * trailing NUL */
+        Move(array + i_e + 1, array + i_e + 3, len - i_e - 1, UV);
+
+        /* Do the actual splice */
+        array[i_e+1] = start;
+        array[i_e+2] = end + 1;
+        invlist_set_len(invlist, len + 2, *(get_invlist_offset_addr(invlist)));
+        return invlist;
+    }
+
+    /* Here the new range crossed the boundaries of a pre-existing range.  The
+     * code above has adjusted things so that both ends are in ranges that are
+     * in the set.  This means everything in between must also be in the set.
+     * Just squash things together */
+    Move(array + i_e + 1, array + i_s + 1, len - i_e - 1, UV);
+    invlist_set_len(invlist,
+                    len - i_e + i_s,
+                    *(get_invlist_offset_addr(invlist)));
+
+    return invlist;
+}
+
+SV*
+Perl__setup_canned_invlist(pTHX_ const STRLEN size, const UV element0,
+                                 UV** other_elements_ptr)
+{
+    /* Create and return an inversion list whose contents are to be populated
+     * by the caller.  The caller gives the number of elements (in 'size') and
+     * the very first element ('element0').  This function will set
+     * '*other_elements_ptr' to an array of UVs, where the remaining elements
+     * are to be placed.
+     *
+     * Obviously there is some trust involved that the caller will properly
+     * fill in the other elements of the array.
+     *
+     * (The first element needs to be passed in, as the underlying code does
+     * things differently depending on whether it is zero or non-zero) */
+
+    SV* invlist = _new_invlist(size);
+    bool offset;
+
+    PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST;
+
+    invlist = add_cp_to_invlist(invlist, element0);
+    offset = *get_invlist_offset_addr(invlist);
+
+    invlist_set_len(invlist, size, offset);
+    *other_elements_ptr = invlist_array(invlist) + 1;
+    return invlist;
+}
+
+#endif
+
+#ifndef PERL_IN_XSUB_RE
+void
+Perl__invlist_invert(pTHX_ SV* const invlist)
+{
+    /* Complement the input inversion list.  This adds a 0 if the list didn't
+     * have a zero; removes it otherwise.  As described above, the data
+     * structure is set up so that this is very efficient */
+
+    PERL_ARGS_ASSERT__INVLIST_INVERT;
+
+    assert(! invlist_is_iterating(invlist));
+
+    /* The inverse of matching nothing is matching everything */
+    if (_invlist_len(invlist) == 0) {
+        _append_range_to_invlist(invlist, 0, UV_MAX);
+        return;
+    }
+
+    *get_invlist_offset_addr(invlist) = ! *get_invlist_offset_addr(invlist);
+}
+
+SV*
+Perl_invlist_clone(pTHX_ SV* const invlist, SV* new_invlist)
+{
+    /* Return a new inversion list that is a copy of the input one, which is
+     * unchanged.  The new list will not be mortal even if the old one was. */
+
+    const STRLEN nominal_length = _invlist_len(invlist);
+    const STRLEN physical_length = SvCUR(invlist);
+    const bool offset = *(get_invlist_offset_addr(invlist));
+
+    PERL_ARGS_ASSERT_INVLIST_CLONE;
+
+    if (new_invlist == NULL) {
+        new_invlist = _new_invlist(nominal_length);
+    }
+    else {
+        sv_upgrade(new_invlist, SVt_INVLIST);
+        initialize_invlist_guts(new_invlist, nominal_length);
+    }
+
+    *(get_invlist_offset_addr(new_invlist)) = offset;
+    invlist_set_len(new_invlist, nominal_length, offset);
+    Copy(SvPVX(invlist), SvPVX(new_invlist), physical_length, char);
+
+    return new_invlist;
+}
+
+#endif
+
+
+#ifndef PERL_IN_XSUB_RE
+void
+Perl__invlist_dump(pTHX_ PerlIO *file, I32 level,
+                         const char * const indent, SV* const invlist)
+{
+    /* Designed to be called only by do_sv_dump().  Dumps out the ranges of the
+     * inversion list 'invlist' to 'file' at 'level'  Each line is prefixed by
+     * the string 'indent'.  The output looks like this:
+         [0] 0x000A .. 0x000D
+         [2] 0x0085
+         [4] 0x2028 .. 0x2029
+         [6] 0x3104 .. INFTY
+     * This means that the first range of code points matched by the list are
+     * 0xA through 0xD; the second range contains only the single code point
+     * 0x85, etc.  An inversion list is an array of UVs.  Two array elements
+     * are used to define each range (except if the final range extends to
+     * infinity, only a single element is needed).  The array index of the
+     * first element for the corresponding range is given in brackets. */
+
+    UV start, end;
+    STRLEN count = 0;
+
+    PERL_ARGS_ASSERT__INVLIST_DUMP;
+
+    if (invlist_is_iterating(invlist)) {
+        Perl_dump_indent(aTHX_ level, file,
+             "%sCan't dump inversion list because is in middle of iterating\n",
+             indent);
+        return;
+    }
+
+    invlist_iterinit(invlist);
+    while (invlist_iternext(invlist, &start, &end)) {
+        if (end == UV_MAX) {
+            Perl_dump_indent(aTHX_ level, file,
+                                       "%s[%" UVuf "] 0x%04" UVXf " .. INFTY\n",
+                                   indent, (UV)count, start);
+        }
+        else if (end != start) {
+            Perl_dump_indent(aTHX_ level, file,
+                                    "%s[%" UVuf "] 0x%04" UVXf " .. 0x%04" UVXf "\n",
+                                indent, (UV)count, start,         end);
+        }
+        else {
+            Perl_dump_indent(aTHX_ level, file, "%s[%" UVuf "] 0x%04" UVXf "\n",
+                                            indent, (UV)count, start);
+        }
+        count += 2;
+    }
+}
+
+#endif
+
+#if defined(PERL_ARGS_ASSERT__INVLISTEQ) && !defined(PERL_IN_XSUB_RE)
+bool
+Perl__invlistEQ(pTHX_ SV* const a, SV* const b, const bool complement_b)
+{
+    /* Return a boolean as to if the two passed in inversion lists are
+     * identical.  The final argument, if TRUE, says to take the complement of
+     * the second inversion list before doing the comparison */
+
+    const UV len_a = _invlist_len(a);
+    UV len_b = _invlist_len(b);
+
+    const UV* array_a = NULL;
+    const UV* array_b = NULL;
+
+    PERL_ARGS_ASSERT__INVLISTEQ;
+
+    /* This code avoids accessing the arrays unless it knows the length is
+     * non-zero */
+
+    if (len_a == 0) {
+        if (len_b == 0) {
+            return ! complement_b;
+        }
+    }
+    else {
+        array_a = invlist_array(a);
+    }
+
+    if (len_b != 0) {
+        array_b = invlist_array(b);
+    }
+
+    /* If are to compare 'a' with the complement of b, set it
+     * up so are looking at b's complement. */
+    if (complement_b) {
+
+        /* The complement of nothing is everything, so <a> would have to have
+         * just one element, starting at zero (ending at infinity) */
+        if (len_b == 0) {
+            return (len_a == 1 && array_a[0] == 0);
+        }
+        if (array_b[0] == 0) {
+
+            /* Otherwise, to complement, we invert.  Here, the first element is
+             * 0, just remove it.  To do this, we just pretend the array starts
+             * one later */
+
+            array_b++;
+            len_b--;
+        }
+        else {
+
+            /* But if the first element is not zero, we pretend the list starts
+             * at the 0 that is always stored immediately before the array. */
+            array_b--;
+            len_b++;
+        }
+    }
+
+    return    len_a == len_b
+           && memEQ(array_a, array_b, len_a * sizeof(array_a[0]));
+
+}
+#endif
+
+#undef HEADER_LENGTH
+#undef TO_INTERNAL_SIZE
+#undef FROM_INTERNAL_SIZE
+#undef INVLIST_VERSION_ID
+
+/* End of inversion list object */
Index: gnu/usr.bin/perl/regcomp_study.c
===================================================================
RCS file: gnu/usr.bin/perl/regcomp_study.c
diff -N gnu/usr.bin/perl/regcomp_study.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regcomp_study.c	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,3821 @@
+#ifdef PERL_EXT_RE_BUILD
+#include "re_top.h"
+#endif
+
+#include "EXTERN.h"
+#define PERL_IN_REGEX_ENGINE
+#define PERL_IN_REGCOMP_ANY
+#define PERL_IN_REGCOMP_STUDY_C
+#include "perl.h"
+
+#ifdef PERL_IN_XSUB_RE
+#  include "re_comp.h"
+#else
+#  include "regcomp.h"
+#endif
+
+#include "invlist_inline.h"
+#include "unicode_constants.h"
+#include "regcomp_internal.h"
+
+#define INIT_AND_WITHP \
+    assert(!and_withp); \
+    Newx(and_withp, 1, regnode_ssc); \
+    SAVEFREEPV(and_withp)
+
+
+STATIC void
+S_unwind_scan_frames(pTHX_ const void *p)
+{
+    PERL_ARGS_ASSERT_UNWIND_SCAN_FRAMES;
+    scan_frame *f= (scan_frame *)p;
+    do {
+        scan_frame *n= f->next_frame;
+        Safefree(f);
+        f= n;
+    } while (f);
+}
+
+/* Follow the next-chain of the current node and optimize away
+   all the NOTHINGs from it.
+ */
+STATIC void
+S_rck_elide_nothing(pTHX_ regnode *node)
+{
+    PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING;
+
+    if (OP(node) != CURLYX) {
+        const int max = (REGNODE_OFF_BY_ARG(OP(node))
+                        ? I32_MAX
+                          /* I32 may be smaller than U16 on CRAYs! */
+                        : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX));
+        int off = (REGNODE_OFF_BY_ARG(OP(node)) ? ARG1u(node) : NEXT_OFF(node));
+        int noff;
+        regnode *n = node;
+
+        /* Skip NOTHING and LONGJMP. */
+        while (
+            (n = regnext(n))
+            && (
+                (REGNODE_TYPE(OP(n)) == NOTHING && (noff = NEXT_OFF(n)))
+                || ((OP(n) == LONGJMP) && (noff = ARG1u(n)))
+            )
+            && off + noff < max
+        ) {
+            off += noff;
+        }
+        if (REGNODE_OFF_BY_ARG(OP(node)))
+            ARG1u(node) = off;
+        else
+            NEXT_OFF(node) = off;
+    }
+    return;
+}
+
+
+/*
+ * As best we can, determine the characters that can match the start of
+ * the given EXACTF-ish node.  This is for use in creating ssc nodes, so there
+ * can be false positive matches
+ *
+ * Returns the invlist as a new SV*; it is the caller's responsibility to
+ * call SvREFCNT_dec() when done with it.
+ */
+STATIC SV*
+S_make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
+{
+    const U8 * s = (U8*)STRING(node);
+    SSize_t bytelen = STR_LEN(node);
+    UV uc;
+    /* Start out big enough for 2 separate code points */
+    SV* invlist = _new_invlist(4);
+
+    PERL_ARGS_ASSERT_MAKE_EXACTF_INVLIST;
+
+    if (! UTF) {
+        uc = *s;
+
+        /* We punt and assume can match anything if the node begins
+         * with a multi-character fold.  Things are complicated.  For
+         * example, /ffi/i could match any of:
+         *  "\N{LATIN SMALL LIGATURE FFI}"
+         *  "\N{LATIN SMALL LIGATURE FF}I"
+         *  "F\N{LATIN SMALL LIGATURE FI}"
+         *  plus several other things; and making sure we have all the
+         *  possibilities is hard. */
+        if (is_MULTI_CHAR_FOLD_latin1_safe(s, s + bytelen)) {
+            invlist = _add_range_to_invlist(invlist, 0, UV_MAX);
+        }
+        else {
+            /* Any Latin1 range character can potentially match any
+             * other depending on the locale, and in Turkic locales, 'I' and
+             * 'i' can match U+130 and U+131 */
+            if (OP(node) == EXACTFL) {
+                _invlist_union(invlist, PL_Latin1, &invlist);
+                if (isALPHA_FOLD_EQ(uc, 'I')) {
+                    invlist = add_cp_to_invlist(invlist,
+                                                LATIN_SMALL_LETTER_DOTLESS_I);
+                    invlist = add_cp_to_invlist(invlist,
+                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE);
+                }
+            }
+            else {
+                /* But otherwise, it matches at least itself.  We can
+                 * quickly tell if it has a distinct fold, and if so,
+                 * it matches that as well */
+                invlist = add_cp_to_invlist(invlist, uc);
+                if (IS_IN_SOME_FOLD_L1(uc))
+                    invlist = add_cp_to_invlist(invlist, PL_fold_latin1[uc]);
+            }
+
+            /* Some characters match above-Latin1 ones under /i.  This
+             * is true of EXACTFL ones when the locale is UTF-8 */
+            if (HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(uc)
+                && (! isASCII(uc) || ! inRANGE(OP(node), EXACTFAA,
+                                                         EXACTFAA_NO_TRIE)))
+            {
+                add_above_Latin1_folds(pRExC_state, (U8) uc, &invlist);
+            }
+        }
+    }
+    else {  /* Pattern is UTF-8 */
+        U8 folded[UTF8_MAX_FOLD_CHAR_EXPAND * UTF8_MAXBYTES_CASE + 1] = { '\0' };
+        const U8* e = s + bytelen;
+        IV fc;
+
+        fc = uc = utf8_to_uvchr_buf(s, s + bytelen, NULL);
+
+        /* The only code points that aren't folded in a UTF EXACTFish
+         * node are the problematic ones in EXACTFL nodes */
+        if (OP(node) == EXACTFL && is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(uc)) {
+            /* We need to check for the possibility that this EXACTFL
+             * node begins with a multi-char fold.  Therefore we fold
+             * the first few characters of it so that we can make that
+             * check */
+            U8 *d = folded;
+            int i;
+
+            fc = -1;
+            for (i = 0; i < UTF8_MAX_FOLD_CHAR_EXPAND && s < e; i++) {
+                if (isASCII(*s)) {
+                    *(d++) = (U8) toFOLD(*s);
+                    if (fc < 0) {       /* Save the first fold */
+                        fc = *(d-1);
+                    }
+                    s++;
+                }
+                else {
+                    STRLEN len;
+                    UV fold = toFOLD_utf8_safe(s, e, d, &len);
+                    if (fc < 0) {       /* Save the first fold */
+                        fc = fold;
+                    }
+                    d += len;
+                    s += UTF8SKIP(s);
+                }
+            }
+
+            /* And set up so the code below that looks in this folded
+             * buffer instead of the node's string */
+            e = d;
+            s = folded;
+        }
+
+        /* When we reach here 's' points to the fold of the first
+         * character(s) of the node; and 'e' points to far enough along
+         * the folded string to be just past any possible multi-char
+         * fold.
+         *
+         * Like the non-UTF case above, we punt if the node begins with a
+         * multi-char fold  */
+
+        if (is_MULTI_CHAR_FOLD_utf8_safe(s, e)) {
+            invlist = _add_range_to_invlist(invlist, 0, UV_MAX);
+        }
+        else {  /* Single char fold */
+            unsigned int k;
+            U32 first_fold;
+            const U32 * remaining_folds;
+            Size_t folds_count;
+
+            /* It matches itself */
+            invlist = add_cp_to_invlist(invlist, fc);
+
+            /* ... plus all the things that fold to it, which are found in
+             * PL_utf8_foldclosures */
+            folds_count = _inverse_folds(fc, &first_fold,
+                                                &remaining_folds);
+            for (k = 0; k < folds_count; k++) {
+                UV c = (k == 0) ? first_fold : remaining_folds[k-1];
+
+                /* /aa doesn't allow folds between ASCII and non- */
+                if (   inRANGE(OP(node), EXACTFAA, EXACTFAA_NO_TRIE)
+                    && isASCII(c) != isASCII(fc))
+                {
+                    continue;
+                }
+
+                invlist = add_cp_to_invlist(invlist, c);
+            }
+
+            if (OP(node) == EXACTFL) {
+
+                /* If either [iI] are present in an EXACTFL node the above code
+                 * should have added its normal case pair, but under a Turkish
+                 * locale they could match instead the case pairs from it.  Add
+                 * those as potential matches as well */
+                if (isALPHA_FOLD_EQ(fc, 'I')) {
+                    invlist = add_cp_to_invlist(invlist,
+                                                LATIN_SMALL_LETTER_DOTLESS_I);
+                    invlist = add_cp_to_invlist(invlist,
+                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE);
+                }
+                else if (fc == LATIN_SMALL_LETTER_DOTLESS_I) {
+                    invlist = add_cp_to_invlist(invlist, 'I');
+                }
+                else if (fc == LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) {
+                    invlist = add_cp_to_invlist(invlist, 'i');
+                }
+            }
+        }
+    }
+
+    return invlist;
+}
+
+
+/* Mark that we cannot extend a found fixed substring at this point.
+   Update the longest found anchored substring or the longest found
+   floating substrings if needed. */
+
+void
+Perl_scan_commit(pTHX_ const RExC_state_t *pRExC_state, scan_data_t *data,
+                    SSize_t *minlenp, int is_inf)
+{
+    const STRLEN l = CHR_SVLEN(data->last_found);
+    SV * const longest_sv = data->substrs[data->cur_is_floating].str;
+    const STRLEN old_l = CHR_SVLEN(longest_sv);
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_SCAN_COMMIT;
+
+    if ((l >= old_l) && ((l > old_l) || (data->flags & SF_BEFORE_EOL))) {
+        const U8 i = data->cur_is_floating;
+        SvSetMagicSV(longest_sv, data->last_found);
+        data->substrs[i].min_offset = l ? data->last_start_min : data->pos_min;
+
+        if (!i) /* fixed */
+            data->substrs[0].max_offset = data->substrs[0].min_offset;
+        else { /* float */
+            data->substrs[1].max_offset =
+                      (is_inf)
+                       ? OPTIMIZE_INFTY
+                       : (l
+                          ? data->last_start_max
+                          : (data->pos_delta > OPTIMIZE_INFTY - data->pos_min
+                                         ? OPTIMIZE_INFTY
+                                         : data->pos_min + data->pos_delta));
+        }
+
+        data->substrs[i].flags &= ~SF_BEFORE_EOL;
+        data->substrs[i].flags |= data->flags & SF_BEFORE_EOL;
+        data->substrs[i].minlenp = minlenp;
+        data->substrs[i].lookbehind = 0;
+    }
+
+    SvCUR_set(data->last_found, 0);
+    {
+        SV * const sv = data->last_found;
+        if (SvUTF8(sv) && SvMAGICAL(sv)) {
+            MAGIC * const mg = mg_find(sv, PERL_MAGIC_utf8);
+            if (mg)
+                mg->mg_len = 0;
+        }
+    }
+    data->last_end = -1;
+    data->flags &= ~SF_BEFORE_EOL;
+    DEBUG_STUDYDATA("commit", data, 0, is_inf, -1, -1, -1);
+}
+
+/* An SSC is just a regnode_charclass_posix with an extra field: the inversion
+ * list that describes which code points it matches */
+
+STATIC void
+S_ssc_anything(pTHX_ regnode_ssc *ssc)
+{
+    /* Set the SSC 'ssc' to match an empty string or any code point */
+
+    PERL_ARGS_ASSERT_SSC_ANYTHING;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    /* mortalize so won't leak */
+    ssc->invlist = sv_2mortal(_add_range_to_invlist(NULL, 0, UV_MAX));
+    ANYOF_FLAGS(ssc) |= SSC_MATCHES_EMPTY_STRING;  /* Plus matches empty */
+}
+
+STATIC int
+S_ssc_is_anything(const regnode_ssc *ssc)
+{
+    /* Returns TRUE if the SSC 'ssc' can match the empty string and any code
+     * point; FALSE otherwise.  Thus, this is used to see if using 'ssc' buys
+     * us anything: if the function returns TRUE, 'ssc' hasn't been restricted
+     * in any way, so there's no point in using it */
+
+    UV start = 0, end = 0;  /* Initialize due to messages from dumb compiler */
+    bool ret;
+
+    PERL_ARGS_ASSERT_SSC_IS_ANYTHING;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    if (! (ANYOF_FLAGS(ssc) & SSC_MATCHES_EMPTY_STRING)) {
+        return FALSE;
+    }
+
+    /* See if the list consists solely of the range 0 - Infinity */
+    invlist_iterinit(ssc->invlist);
+    ret = invlist_iternext(ssc->invlist, &start, &end)
+          && start == 0
+          && end == UV_MAX;
+
+    invlist_iterfinish(ssc->invlist);
+
+    if (ret) {
+        return TRUE;
+    }
+
+    /* If e.g., both \w and \W are set, matches everything */
+    if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
+        int i;
+        for (i = 0; i < ANYOF_POSIXL_MAX; i += 2) {
+            if (ANYOF_POSIXL_TEST(ssc, i) && ANYOF_POSIXL_TEST(ssc, i+1)) {
+                return TRUE;
+            }
+        }
+    }
+
+    return FALSE;
+}
+
+void
+Perl_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc)
+{
+    /* Initializes the SSC 'ssc'.  This includes setting it to match an empty
+     * string, any code point, or any posix class under locale */
+
+    PERL_ARGS_ASSERT_SSC_INIT;
+
+    Zero(ssc, 1, regnode_ssc);
+    set_ANYOF_SYNTHETIC(ssc);
+    ARG1u_SET(ssc, ANYOF_MATCHES_ALL_OUTSIDE_BITMAP_VALUE);
+    ssc_anything(ssc);
+
+    /* If any portion of the regex is to operate under locale rules that aren't
+     * fully known at compile time, initialization includes it.  The reason
+     * this isn't done for all regexes is that the optimizer was written under
+     * the assumption that locale was all-or-nothing.  Given the complexity and
+     * lack of documentation in the optimizer, and that there are inadequate
+     * test cases for locale, many parts of it may not work properly, it is
+     * safest to avoid locale unless necessary. */
+    if (RExC_contains_locale) {
+        ANYOF_POSIXL_SETALL(ssc);
+    }
+    else {
+        ANYOF_POSIXL_ZERO(ssc);
+    }
+}
+
+STATIC int
+S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state,
+                        const regnode_ssc *ssc)
+{
+    /* Returns TRUE if the SSC 'ssc' is in its initial state with regard only
+     * to the list of code points matched, and locale posix classes; hence does
+     * not check its flags) */
+
+    UV start = 0, end = 0;  /* Initialize due to messages from dumb compiler */
+    bool ret;
+
+    PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    invlist_iterinit(ssc->invlist);
+    ret = invlist_iternext(ssc->invlist, &start, &end)
+          && start == 0
+          && end == UV_MAX;
+
+    invlist_iterfinish(ssc->invlist);
+
+    if (! ret) {
+        return FALSE;
+    }
+
+    if (RExC_contains_locale && ! ANYOF_POSIXL_SSC_TEST_ALL_SET(ssc)) {
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
+
+STATIC SV*
+S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state,
+                               const regnode_charclass* const node)
+{
+    /* Returns a mortal inversion list defining which code points are matched
+     * by 'node', which is of ANYOF-ish type .  Handles complementing the
+     * result if appropriate.  If some code points aren't knowable at this
+     * time, the returned list must, and will, contain every code point that is
+     * a possibility. */
+
+    SV* invlist = NULL;
+    SV* only_utf8_locale_invlist = NULL;
+    bool new_node_has_latin1 = FALSE;
+    const U8 flags = (REGNODE_TYPE(OP(node)) == ANYOF)
+                      ? ANYOF_FLAGS(node)
+                      : 0;
+
+    PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC;
+
+    /* Look at the data structure created by S_set_ANYOF_arg() */
+    if (ANYOF_MATCHES_ALL_OUTSIDE_BITMAP(node)) {
+        invlist = sv_2mortal(_new_invlist(1));
+        invlist = _add_range_to_invlist(invlist, NUM_ANYOF_CODE_POINTS, UV_MAX);
+    }
+    else if (ANYOF_HAS_AUX(node)) {
+        const U32 n = ARG1u(node);
+        SV * const rv = MUTABLE_SV(RExC_rxi->data->data[n]);
+        AV * const av = MUTABLE_AV(SvRV(rv));
+        SV **const ary = AvARRAY(av);
+
+        if (av_tindex_skip_len_mg(av) >= DEFERRED_USER_DEFINED_INDEX) {
+
+            /* Here there are things that won't be known until runtime -- we
+             * have to assume it could be anything */
+            invlist = sv_2mortal(_new_invlist(1));
+            return _add_range_to_invlist(invlist, 0, UV_MAX);
+        }
+        else if (ary[INVLIST_INDEX]) {
+
+            /* Use the node's inversion list */
+            invlist = sv_2mortal(invlist_clone(ary[INVLIST_INDEX], NULL));
+        }
+
+        /* Get the code points valid only under UTF-8 locales */
+        if (   (flags & ANYOFL_FOLD)
+            &&  av_tindex_skip_len_mg(av) >= ONLY_LOCALE_MATCHES_INDEX)
+        {
+            only_utf8_locale_invlist = ary[ONLY_LOCALE_MATCHES_INDEX];
+        }
+    }
+
+    if (! invlist) {
+        invlist = sv_2mortal(_new_invlist(0));
+    }
+
+    /* An ANYOF node contains a bitmap for the first NUM_ANYOF_CODE_POINTS
+     * code points, and an inversion list for the others, but if there are code
+     * points that should match only conditionally on the target string being
+     * UTF-8, those are placed in the inversion list, and not the bitmap.
+     * Since there are circumstances under which they could match, they are
+     * included in the SSC.  But if the ANYOF node is to be inverted, we have
+     * to exclude them here, so that when we invert below, the end result
+     * actually does include them.  (Think about "\xe0" =~ /[^\xc0]/di;).  We
+     * have to do this here before we add the unconditionally matched code
+     * points */
+    if (flags & ANYOF_INVERT) {
+        _invlist_intersection_complement_2nd(invlist,
+                                             PL_UpperLatin1,
+                                             &invlist);
+    }
+
+    /* Add in the points from the bit map */
+    if (REGNODE_TYPE(OP(node)) == ANYOF){
+        for (unsigned i = 0; i < NUM_ANYOF_CODE_POINTS; i++) {
+            if (ANYOF_BITMAP_TEST(node, i)) {
+                unsigned int start = i++;
+
+                for (;    i < NUM_ANYOF_CODE_POINTS
+                       && ANYOF_BITMAP_TEST(node, i); ++i)
+                {
+                    /* empty */
+                }
+                invlist = _add_range_to_invlist(invlist, start, i-1);
+                new_node_has_latin1 = TRUE;
+            }
+        }
+    }
+
+    /* If this can match all upper Latin1 code points, have to add them
+     * as well.  But don't add them if inverting, as when that gets done below,
+     * it would exclude all these characters, including the ones it shouldn't
+     * that were added just above */
+    if ( ! (flags & ANYOF_INVERT)
+        &&  OP(node) == ANYOFD
+        && (flags & ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared))
+    {
+        _invlist_union(invlist, PL_UpperLatin1, &invlist);
+    }
+
+    /* Similarly for these */
+    if (ANYOF_MATCHES_ALL_OUTSIDE_BITMAP(node)) {
+        _invlist_union_complement_2nd(invlist, PL_InBitmap, &invlist);
+    }
+
+    if (flags & ANYOF_INVERT) {
+        _invlist_invert(invlist);
+    }
+    else if (flags & ANYOFL_FOLD) {
+        if (new_node_has_latin1) {
+
+            /* These folds are potential in Turkic locales */
+            if (_invlist_contains_cp(invlist, 'i')) {
+                invlist = add_cp_to_invlist(invlist,
+                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE);
+            }
+            if (_invlist_contains_cp(invlist, 'I')) {
+                invlist = add_cp_to_invlist(invlist,
+                                                LATIN_SMALL_LETTER_DOTLESS_I);
+            }
+
+            /* Under /li, any 0-255 could fold to any other 0-255, depending on
+             * the locale.  We can skip this if there are no 0-255 at all. */
+            _invlist_union(invlist, PL_Latin1, &invlist);
+        }
+        else {
+            if (_invlist_contains_cp(invlist, LATIN_SMALL_LETTER_DOTLESS_I)) {
+                invlist = add_cp_to_invlist(invlist, 'I');
+            }
+            if (_invlist_contains_cp(invlist,
+                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE))
+            {
+                invlist = add_cp_to_invlist(invlist, 'i');
+            }
+        }
+    }
+
+    /* Similarly add the UTF-8 locale possible matches.  These have to be
+     * deferred until after the non-UTF-8 locale ones are taken care of just
+     * above, or it leads to wrong results under ANYOF_INVERT */
+    if (only_utf8_locale_invlist) {
+        _invlist_union_maybe_complement_2nd(invlist,
+                                            only_utf8_locale_invlist,
+                                            flags & ANYOF_INVERT,
+                                            &invlist);
+    }
+
+    return invlist;
+}
+
+/* 'AND' a given class with another one.  Can create false positives.  'ssc'
+ * should not be inverted. */
+
+STATIC void
+S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc,
+                const regnode_charclass *and_with)
+{
+    /* Accumulate into SSC 'ssc' its 'AND' with 'and_with', which is either
+     * another SSC or a regular ANYOF class.  Can create false positives. */
+
+    SV* anded_cp_list;
+    U8  and_with_flags = (REGNODE_TYPE(OP(and_with)) == ANYOF)
+                          ? ANYOF_FLAGS(and_with)
+                          : 0;
+    U8  anded_flags;
+
+    PERL_ARGS_ASSERT_SSC_AND;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    /* 'and_with' is used as-is if it too is an SSC; otherwise have to extract
+     * the code point inversion list and just the relevant flags */
+    if (is_ANYOF_SYNTHETIC(and_with)) {
+        anded_cp_list = ((regnode_ssc *)and_with)->invlist;
+        anded_flags = and_with_flags;
+
+        /* XXX This is a kludge around what appears to be deficiencies in the
+         * optimizer.  If we make S_ssc_anything() add in the WARN_SUPER flag,
+         * there are paths through the optimizer where it doesn't get weeded
+         * out when it should.  And if we don't make some extra provision for
+         * it like the code just below, it doesn't get added when it should.
+         * This solution is to add it only when AND'ing, which is here, and
+         * only when what is being AND'ed is the pristine, original node
+         * matching anything.  Thus it is like adding it to ssc_anything() but
+         * only when the result is to be AND'ed.  Probably the same solution
+         * could be adopted for the same problem we have with /l matching,
+         * which is solved differently in S_ssc_init(), and that would lead to
+         * fewer false positives than that solution has.  But if this solution
+         * creates bugs, the consequences are only that a warning isn't raised
+         * that should be; while the consequences for having /l bugs is
+         * incorrect matches */
+        if (ssc_is_anything((regnode_ssc *)and_with)) {
+            anded_flags |= ANYOF_WARN_SUPER__shared;
+        }
+    }
+    else {
+        anded_cp_list = get_ANYOF_cp_list_for_ssc(pRExC_state, and_with);
+        if (OP(and_with) == ANYOFD) {
+            anded_flags = and_with_flags & ANYOF_COMMON_FLAGS;
+        }
+        else {
+            anded_flags = and_with_flags
+                            & ( ANYOF_COMMON_FLAGS
+                               |ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared
+                               |ANYOF_HAS_EXTRA_RUNTIME_MATCHES);
+            if (and_with_flags & ANYOFL_UTF8_LOCALE_REQD) {
+                anded_flags &= ANYOF_HAS_EXTRA_RUNTIME_MATCHES;
+            }
+        }
+    }
+
+    ANYOF_FLAGS(ssc) &= anded_flags;
+
+    /* Below, C1 is the list of code points in 'ssc'; P1, its posix classes.
+     * C2 is the list of code points in 'and-with'; P2, its posix classes.
+     * 'and_with' may be inverted.  When not inverted, we have the situation of
+     * computing:
+     *  (C1 | P1) & (C2 | P2)
+     *                     =  (C1 & (C2 | P2)) | (P1 & (C2 | P2))
+     *                     =  ((C1 & C2) | (C1 & P2)) | ((P1 & C2) | (P1 & P2))
+     *                    <=  ((C1 & C2) |       P2)) | ( P1       | (P1 & P2))
+     *                    <=  ((C1 & C2) | P1 | P2)
+     * Alternatively, the last few steps could be:
+     *                     =  ((C1 & C2) | (C1 & P2)) | ((P1 & C2) | (P1 & P2))
+     *                    <=  ((C1 & C2) |  C1      ) | (      C2  | (P1 & P2))
+     *                    <=  (C1 | C2 | (P1 & P2))
+     * We favor the second approach if either P1 or P2 is non-empty.  This is
+     * because these components are a barrier to doing optimizations, as what
+     * they match cannot be known until the moment of matching as they are
+     * dependent on the current locale, 'AND"ing them likely will reduce or
+     * eliminate them.
+     * But we can do better if we know that C1,P1 are in their initial state (a
+     * frequent occurrence), each matching everything:
+     *  (<everything>) & (C2 | P2) =  C2 | P2
+     * Similarly, if C2,P2 are in their initial state (again a frequent
+     * occurrence), the result is a no-op
+     *  (C1 | P1) & (<everything>) =  C1 | P1
+     *
+     * Inverted, we have
+     *  (C1 | P1) & ~(C2 | P2)  =  (C1 | P1) & (~C2 & ~P2)
+     *                          =  (C1 & (~C2 & ~P2)) | (P1 & (~C2 & ~P2))
+     *                         <=  (C1 & ~C2) | (P1 & ~P2)
+     * */
+
+    if ((and_with_flags & ANYOF_INVERT)
+        && ! is_ANYOF_SYNTHETIC(and_with))
+    {
+        unsigned int i;
+
+        ssc_intersection(ssc,
+                         anded_cp_list,
+                         FALSE /* Has already been inverted */
+                         );
+
+        /* If either P1 or P2 is empty, the intersection will be also; can skip
+         * the loop */
+        if (! (and_with_flags & ANYOF_MATCHES_POSIXL)) {
+            ANYOF_POSIXL_ZERO(ssc);
+        }
+        else if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
+
+            /* Note that the Posix class component P from 'and_with' actually
+             * looks like:
+             *      P = Pa | Pb | ... | Pn
+             * where each component is one posix class, such as in [\w\s].
+             * Thus
+             *      ~P = ~(Pa | Pb | ... | Pn)
+             *         = ~Pa & ~Pb & ... & ~Pn
+             *        <= ~Pa | ~Pb | ... | ~Pn
+             * The last is something we can easily calculate, but unfortunately
+             * is likely to have many false positives.  We could do better
+             * in some (but certainly not all) instances if two classes in
+             * P have known relationships.  For example
+             *      :lower: <= :alpha: <= :alnum: <= \w <= :graph: <= :print:
+             * So
+             *      :lower: & :print: = :lower:
+             * And similarly for classes that must be disjoint.  For example,
+             * since \s and \w can have no elements in common based on rules in
+             * the POSIX standard,
+             *      \w & ^\S = nothing
+             * Unfortunately, some vendor locales do not meet the Posix
+             * standard, in particular almost everything by Microsoft.
+             * The loop below just changes e.g., \w into \W and vice versa */
+
+            regnode_charclass_posixl temp;
+            int add = 1;    /* To calculate the index of the complement */
+
+            Zero(&temp, 1, regnode_charclass_posixl);
+            ANYOF_POSIXL_ZERO(&temp);
+            for (i = 0; i < ANYOF_MAX; i++) {
+                assert(i % 2 != 0
+                       || ! ANYOF_POSIXL_TEST((regnode_charclass_posixl*) and_with, i)
+                       || ! ANYOF_POSIXL_TEST((regnode_charclass_posixl*) and_with, i + 1));
+
+                if (ANYOF_POSIXL_TEST((regnode_charclass_posixl*) and_with, i)) {
+                    ANYOF_POSIXL_SET(&temp, i + add);
+                }
+                add = 0 - add; /* 1 goes to -1; -1 goes to 1 */
+            }
+            ANYOF_POSIXL_AND(&temp, ssc);
+
+        } /* else ssc already has no posixes */
+    } /* else: Not inverted.  This routine is a no-op if 'and_with' is an SSC
+         in its initial state */
+    else if (! is_ANYOF_SYNTHETIC(and_with)
+             || ! ssc_is_cp_posixl_init(pRExC_state, (regnode_ssc *)and_with))
+    {
+        /* But if 'ssc' is in its initial state, the result is just 'and_with';
+         * copy it over 'ssc' */
+        if (ssc_is_cp_posixl_init(pRExC_state, ssc)) {
+            if (is_ANYOF_SYNTHETIC(and_with)) {
+                StructCopy(and_with, ssc, regnode_ssc);
+            }
+            else {
+                ssc->invlist = anded_cp_list;
+                ANYOF_POSIXL_ZERO(ssc);
+                if (and_with_flags & ANYOF_MATCHES_POSIXL) {
+                    ANYOF_POSIXL_OR((regnode_charclass_posixl*) and_with, ssc);
+                }
+            }
+        }
+        else if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)
+                 || (and_with_flags & ANYOF_MATCHES_POSIXL))
+        {
+            /* One or the other of P1, P2 is non-empty. */
+            if (and_with_flags & ANYOF_MATCHES_POSIXL) {
+                ANYOF_POSIXL_AND((regnode_charclass_posixl*) and_with, ssc);
+            }
+            ssc_union(ssc, anded_cp_list, FALSE);
+        }
+        else { /* P1 = P2 = empty */
+            ssc_intersection(ssc, anded_cp_list, FALSE);
+        }
+    }
+}
+
+STATIC void
+S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc,
+               const regnode_charclass *or_with)
+{
+    /* Accumulate into SSC 'ssc' its 'OR' with 'or_with', which is either
+     * another SSC or a regular ANYOF class.  Can create false positives if
+     * 'or_with' is to be inverted. */
+
+    SV* ored_cp_list;
+    U8 ored_flags;
+    U8  or_with_flags = (REGNODE_TYPE(OP(or_with)) == ANYOF)
+                         ? ANYOF_FLAGS(or_with)
+                         : 0;
+
+    PERL_ARGS_ASSERT_SSC_OR;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    /* 'or_with' is used as-is if it too is an SSC; otherwise have to extract
+     * the code point inversion list and just the relevant flags */
+    if (is_ANYOF_SYNTHETIC(or_with)) {
+        ored_cp_list = ((regnode_ssc*) or_with)->invlist;
+        ored_flags = or_with_flags;
+    }
+    else {
+        ored_cp_list = get_ANYOF_cp_list_for_ssc(pRExC_state, or_with);
+        ored_flags = or_with_flags & ANYOF_COMMON_FLAGS;
+        if (OP(or_with) != ANYOFD) {
+            ored_flags |=
+                or_with_flags & ( ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared
+                                 |ANYOF_HAS_EXTRA_RUNTIME_MATCHES);
+            if (or_with_flags & ANYOFL_UTF8_LOCALE_REQD) {
+                ored_flags |= ANYOF_HAS_EXTRA_RUNTIME_MATCHES;
+            }
+        }
+    }
+
+    ANYOF_FLAGS(ssc) |= ored_flags;
+
+    /* Below, C1 is the list of code points in 'ssc'; P1, its posix classes.
+     * C2 is the list of code points in 'or-with'; P2, its posix classes.
+     * 'or_with' may be inverted.  When not inverted, we have the simple
+     * situation of computing:
+     *  (C1 | P1) | (C2 | P2)  =  (C1 | C2) | (P1 | P2)
+     * If P1|P2 yields a situation with both a class and its complement are
+     * set, like having both \w and \W, this matches all code points, and we
+     * can delete these from the P component of the ssc going forward.  XXX We
+     * might be able to delete all the P components, but I (khw) am not certain
+     * about this, and it is better to be safe.
+     *
+     * Inverted, we have
+     *  (C1 | P1) | ~(C2 | P2)  =  (C1 | P1) | (~C2 & ~P2)
+     *                         <=  (C1 | P1) | ~C2
+     *                         <=  (C1 | ~C2) | P1
+     * (which results in actually simpler code than the non-inverted case)
+     * */
+
+    if ((or_with_flags & ANYOF_INVERT)
+        && ! is_ANYOF_SYNTHETIC(or_with))
+    {
+        /* We ignore P2, leaving P1 going forward */
+    }   /* else  Not inverted */
+    else if (or_with_flags & ANYOF_MATCHES_POSIXL) {
+        ANYOF_POSIXL_OR((regnode_charclass_posixl*)or_with, ssc);
+        if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
+            unsigned int i;
+            for (i = 0; i < ANYOF_MAX; i += 2) {
+                if (ANYOF_POSIXL_TEST(ssc, i) && ANYOF_POSIXL_TEST(ssc, i + 1))
+                {
+                    ssc_match_all_cp(ssc);
+                    ANYOF_POSIXL_CLEAR(ssc, i);
+                    ANYOF_POSIXL_CLEAR(ssc, i+1);
+                }
+            }
+        }
+    }
+
+    ssc_union(ssc,
+              ored_cp_list,
+              FALSE /* Already has been inverted */
+              );
+}
+
+STATIC void
+S_ssc_union(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert2nd)
+{
+    PERL_ARGS_ASSERT_SSC_UNION;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    _invlist_union_maybe_complement_2nd(ssc->invlist,
+                                        invlist,
+                                        invert2nd,
+                                        &ssc->invlist);
+}
+
+STATIC void
+S_ssc_intersection(pTHX_ regnode_ssc *ssc,
+                         SV* const invlist,
+                         const bool invert2nd)
+{
+    PERL_ARGS_ASSERT_SSC_INTERSECTION;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    _invlist_intersection_maybe_complement_2nd(ssc->invlist,
+                                               invlist,
+                                               invert2nd,
+                                               &ssc->invlist);
+}
+
+STATIC void
+S_ssc_add_range(pTHX_ regnode_ssc *ssc, const UV start, const UV end)
+{
+    PERL_ARGS_ASSERT_SSC_ADD_RANGE;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    ssc->invlist = _add_range_to_invlist(ssc->invlist, start, end);
+}
+
+STATIC void
+S_ssc_cp_and(pTHX_ regnode_ssc *ssc, const UV cp)
+{
+    /* AND just the single code point 'cp' into the SSC 'ssc' */
+
+    SV* cp_list = _new_invlist(2);
+
+    PERL_ARGS_ASSERT_SSC_CP_AND;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    cp_list = add_cp_to_invlist(cp_list, cp);
+    ssc_intersection(ssc, cp_list,
+                     FALSE /* Not inverted */
+                     );
+    SvREFCNT_dec_NN(cp_list);
+}
+
+STATIC void
+S_ssc_clear_locale(regnode_ssc *ssc)
+{
+    /* Set the SSC 'ssc' to not match any locale things */
+    PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    ANYOF_POSIXL_ZERO(ssc);
+    ANYOF_FLAGS(ssc) &= ~ANYOF_LOCALE_FLAGS;
+}
+
+bool
+Perl_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc)
+{
+    /* The synthetic start class is used to hopefully quickly winnow down
+     * places where a pattern could start a match in the target string.  If it
+     * doesn't really narrow things down that much, there isn't much point to
+     * having the overhead of using it.  This function uses some very crude
+     * heuristics to decide if to use the ssc or not.
+     *
+     * It returns TRUE if 'ssc' rules out more than half what it considers to
+     * be the "likely" possible matches, but of course it doesn't know what the
+     * actual things being matched are going to be; these are only guesses
+     *
+     * For /l matches, it assumes that the only likely matches are going to be
+     *      in the 0-255 range, uniformly distributed, so half of that is 127
+     * For /a and /d matches, it assumes that the likely matches will be just
+     *      the ASCII range, so half of that is 63
+     * For /u and there isn't anything matching above the Latin1 range, it
+     *      assumes that that is the only range likely to be matched, and uses
+     *      half that as the cut-off: 127.  If anything matches above Latin1,
+     *      it assumes that all of Unicode could match (uniformly), except for
+     *      non-Unicode code points and things in the General Category "Other"
+     *      (unassigned, private use, surrogates, controls and formats).  This
+     *      is a much large number. */
+
+    U32 count = 0;      /* Running total of number of code points matched by
+                           'ssc' */
+    UV start, end;      /* Start and end points of current range in inversion
+                           XXX outdated.  UTF-8 locales are common, what about invert? list */
+    const U32 max_code_points = (LOC)
+                                ?  256
+                                : ((  ! UNI_SEMANTICS
+                                    ||  invlist_highest(ssc->invlist) < 256)
+                                  ? 128
+                                  : NON_OTHER_COUNT);
+    const U32 max_match = max_code_points / 2;
+
+    PERL_ARGS_ASSERT_IS_SSC_WORTH_IT;
+
+    invlist_iterinit(ssc->invlist);
+    while (invlist_iternext(ssc->invlist, &start, &end)) {
+        if (start >= max_code_points) {
+            break;
+        }
+        end = MIN(end, max_code_points - 1);
+        count += end - start + 1;
+        if (count >= max_match) {
+            invlist_iterfinish(ssc->invlist);
+            return FALSE;
+        }
+    }
+
+    return TRUE;
+}
+
+
+void
+Perl_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc)
+{
+    /* The inversion list in the SSC is marked mortal; now we need a more
+     * permanent copy, which is stored the same way that is done in a regular
+     * ANYOF node, with the first NUM_ANYOF_CODE_POINTS code points in a bit
+     * map */
+
+    SV* invlist = invlist_clone(ssc->invlist, NULL);
+
+    PERL_ARGS_ASSERT_SSC_FINALIZE;
+
+    assert(is_ANYOF_SYNTHETIC(ssc));
+
+    /* The code in this file assumes that all but these flags aren't relevant
+     * to the SSC, except SSC_MATCHES_EMPTY_STRING, which should be cleared
+     * by the time we reach here */
+    assert(! (ANYOF_FLAGS(ssc)
+        & ~( ANYOF_COMMON_FLAGS
+            |ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared
+            |ANYOF_HAS_EXTRA_RUNTIME_MATCHES)));
+
+    populate_anyof_bitmap_from_invlist( (regnode *) ssc, &invlist);
+
+    set_ANYOF_arg(pRExC_state, (regnode *) ssc, invlist, NULL, NULL);
+    SvREFCNT_dec(invlist);
+
+    /* Make sure is clone-safe */
+    ssc->invlist = NULL;
+
+    if (ANYOF_POSIXL_SSC_TEST_ANY_SET(ssc)) {
+        ANYOF_FLAGS(ssc) |= ANYOF_MATCHES_POSIXL;
+        OP(ssc) = ANYOFPOSIXL;
+    }
+    else if (RExC_contains_locale) {
+        OP(ssc) = ANYOFL;
+    }
+
+    assert(! (ANYOF_FLAGS(ssc) & ANYOF_LOCALE_FLAGS) || RExC_contains_locale);
+}
+
+/* The below joins as many adjacent EXACTish nodes as possible into a single
+ * one.  The regop may be changed if the node(s) contain certain sequences that
+ * require special handling.  The joining is only done if:
+ * 1) there is room in the current conglomerated node to entirely contain the
+ *    next one.
+ * 2) they are compatible node types
+ *
+ * The adjacent nodes actually may be separated by NOTHING-kind nodes, and
+ * these get optimized out
+ *
+ * XXX khw thinks this should be enhanced to fill EXACT (at least) nodes as full
+ * as possible, even if that means splitting an existing node so that its first
+ * part is moved to the preceding node.  This would maximise the efficiency of
+ * memEQ during matching.
+ *
+ * If a node is to match under /i (folded), the number of characters it matches
+ * can be different than its character length if it contains a multi-character
+ * fold.  *min_subtract is set to the total delta number of characters of the
+ * input nodes.
+ *
+ * And *unfolded_multi_char is set to indicate whether or not the node contains
+ * an unfolded multi-char fold.  This happens when it won't be known until
+ * runtime whether the fold is valid or not; namely
+ *  1) for EXACTF nodes that contain LATIN SMALL LETTER SHARP S, as only if the
+ *      target string being matched against turns out to be UTF-8 is that fold
+ *      valid; or
+ *  2) for EXACTFL nodes whose folding rules depend on the locale in force at
+ *      runtime.
+ * (Multi-char folds whose components are all above the Latin1 range are not
+ * run-time locale dependent, and have already been folded by the time this
+ * function is called.)
+ *
+ * This is as good a place as any to discuss the design of handling these
+ * multi-character fold sequences.  It's been wrong in Perl for a very long
+ * time.  There are three code points in Unicode whose multi-character folds
+ * were long ago discovered to mess things up.  The previous designs for
+ * dealing with these involved assigning a special node for them.  This
+ * approach doesn't always work, as evidenced by this example:
+ *      "\xDFs" =~ /s\xDF/ui    # Used to fail before these patches
+ * Both sides fold to "sss", but if the pattern is parsed to create a node that
+ * would match just the \xDF, it won't be able to handle the case where a
+ * successful match would have to cross the node's boundary.  The new approach
+ * that hopefully generally solves the problem generates an EXACTFUP node
+ * that is "sss" in this case.
+ *
+ * It turns out that there are problems with all multi-character folds, and not
+ * just these three.  Now the code is general, for all such cases.  The
+ * approach taken is:
+ * 1)   This routine examines each EXACTFish node that could contain multi-
+ *      character folded sequences.  Since a single character can fold into
+ *      such a sequence, the minimum match length for this node is less than
+ *      the number of characters in the node.  This routine returns in
+ *      *min_subtract how many characters to subtract from the actual
+ *      length of the string to get a real minimum match length; it is 0 if
+ *      there are no multi-char foldeds.  This delta is used by the caller to
+ *      adjust the min length of the match, and the delta between min and max,
+ *      so that the optimizer doesn't reject these possibilities based on size
+ *      constraints.
+ *
+ * 2)   For the sequence involving the LATIN SMALL LETTER SHARP S (U+00DF)
+ *      under /u, we fold it to 'ss' in regatom(), and in this routine, after
+ *      joining, we scan for occurrences of the sequence 'ss' in non-UTF-8
+ *      EXACTFU nodes.  The node type of such nodes is then changed to
+ *      EXACTFUP, indicating it is problematic, and needs careful handling.
+ *      (The procedures in step 1) above are sufficient to handle this case in
+ *      UTF-8 encoded nodes.)  The reason this is problematic is that this is
+ *      the only case where there is a possible fold length change in non-UTF-8
+ *      patterns.  By reserving a special node type for problematic cases, the
+ *      far more common regular EXACTFU nodes can be processed faster.
+ *      regexec.c takes advantage of this.
+ *
+ *      EXACTFUP has been created as a grab-bag for (hopefully uncommon)
+ *      problematic cases.   These all only occur when the pattern is not
+ *      UTF-8.  In addition to the 'ss' sequence where there is a possible fold
+ *      length change, it handles the situation where the string cannot be
+ *      entirely folded.  The strings in an EXACTFish node are folded as much
+ *      as possible during compilation in regcomp.c.  This saves effort in
+ *      regex matching.  By using an EXACTFUP node when it is not possible to
+ *      fully fold at compile time, regexec.c can know that everything in an
+ *      EXACTFU node is folded, so folding can be skipped at runtime.  The only
+ *      case where folding in EXACTFU nodes can't be done at compile time is
+ *      the presumably uncommon MICRO SIGN, when the pattern isn't UTF-8.  This
+ *      is because its fold requires UTF-8 to represent.  Thus EXACTFUP nodes
+ *      handle two very different cases.  Alternatively, there could have been
+ *      a node type where there are length changes, one for unfolded, and one
+ *      for both.  If yet another special case needed to be created, the number
+ *      of required node types would have to go to 7.  khw figures that even
+ *      though there are plenty of node types to spare, that the maintenance
+ *      cost wasn't worth the small speedup of doing it that way, especially
+ *      since he thinks the MICRO SIGN is rarely encountered in practice.
+ *
+ *      There are other cases where folding isn't done at compile time, but
+ *      none of them are under /u, and hence not for EXACTFU nodes.  The folds
+ *      in EXACTFL nodes aren't known until runtime, and vary as the locale
+ *      changes.  Some folds in EXACTF depend on if the runtime target string
+ *      is UTF-8 or not.  (regatom() will create an EXACTFU node even under /di
+ *      when no fold in it depends on the UTF-8ness of the target string.)
+ *
+ * 3)   A problem remains for unfolded multi-char folds. (These occur when the
+ *      validity of the fold won't be known until runtime, and so must remain
+ *      unfolded for now.  This happens for the sharp s in EXACTF and EXACTFAA
+ *      nodes when the pattern isn't in UTF-8.  (Note, BTW, that there cannot
+ *      be an EXACTF node with a UTF-8 pattern.)  They also occur for various
+ *      folds in EXACTFL nodes, regardless of the UTF-ness of the pattern.)
+ *      The reason this is a problem is that the optimizer part of regexec.c
+ *      (probably unwittingly, in Perl_regexec_flags()) makes an assumption
+ *      that a character in the pattern corresponds to at most a single
+ *      character in the target string.  (And I do mean character, and not byte
+ *      here, unlike other parts of the documentation that have never been
+ *      updated to account for multibyte Unicode.)  Sharp s in EXACTF and
+ *      EXACTFL nodes can match the two character string 'ss'; in EXACTFAA
+ *      nodes it can match "\x{17F}\x{17F}".  These, along with other ones in
+ *      EXACTFL nodes, violate the assumption, and they are the only instances
+ *      where it is violated.  I'm reluctant to try to change the assumption,
+ *      as the code involved is impenetrable to me (khw), so instead the code
+ *      here punts.  This routine examines EXACTFL nodes, and (when the pattern
+ *      isn't UTF-8) EXACTF and EXACTFAA for such unfolded folds, and returns a
+ *      boolean indicating whether or not the node contains such a fold.  When
+ *      it is true, the caller sets a flag that later causes the optimizer in
+ *      this file to not set values for the floating and fixed string lengths,
+ *      and thus avoids the optimizer code in regexec.c that makes the invalid
+ *      assumption.  Thus, there is no optimization based on string lengths for
+ *      EXACTFL nodes that contain these few folds, nor for non-UTF8-pattern
+ *      EXACTF and EXACTFAA nodes that contain the sharp s.  (The reason the
+ *      assumption is wrong only in these cases is that all other non-UTF-8
+ *      folds are 1-1; and, for UTF-8 patterns, we pre-fold all other folds to
+ *      their expanded versions.  (Again, we can't prefold sharp s to 'ss' in
+ *      EXACTF nodes because we don't know at compile time if it actually
+ *      matches 'ss' or not.  For EXACTF nodes it will match iff the target
+ *      string is in UTF-8.  This is in contrast to EXACTFU nodes, where it
+ *      always matches; and EXACTFAA where it never does.  In an EXACTFAA node
+ *      in a UTF-8 pattern, sharp s is folded to "\x{17F}\x{17F}, avoiding the
+ *      problem; but in a non-UTF8 pattern, folding it to that above-Latin1
+ *      string would require the pattern to be forced into UTF-8, the overhead
+ *      of which we want to avoid.  Similarly the unfolded multi-char folds in
+ *      EXACTFL nodes will match iff the locale at the time of match is a UTF-8
+ *      locale.)
+ *
+ *      Similarly, the code that generates tries doesn't currently handle
+ *      not-already-folded multi-char folds, and it looks like a pain to change
+ *      that.  Therefore, trie generation of EXACTFAA nodes with the sharp s
+ *      doesn't work.  Instead, such an EXACTFAA is turned into a new regnode,
+ *      EXACTFAA_NO_TRIE, which the trie code knows not to handle.  Most people
+ *      using /iaa matching will be doing so almost entirely with ASCII
+ *      strings, so this should rarely be encountered in practice */
+
+U32
+Perl_join_exact(pTHX_ RExC_state_t *pRExC_state, regnode *scan,
+                   UV *min_subtract, bool *unfolded_multi_char,
+                   U32 flags, regnode *val, U32 depth)
+{
+    /* Merge several consecutive EXACTish nodes into one. */
+
+    regnode *n = regnext(scan);
+    U32 stringok = 1;
+    regnode *next = REGNODE_AFTER_varies(scan);
+    U32 merged = 0;
+    U32 stopnow = 0;
+#ifdef DEBUGGING
+    regnode *stop = scan;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+#else
+    PERL_UNUSED_ARG(depth);
+#endif
+
+    PERL_ARGS_ASSERT_JOIN_EXACT;
+#ifndef EXPERIMENTAL_INPLACESCAN
+    PERL_UNUSED_ARG(flags);
+    PERL_UNUSED_ARG(val);
+#endif
+    DEBUG_PEEP("join", scan, depth, 0);
+
+    assert(REGNODE_TYPE(OP(scan)) == EXACT);
+
+    /* Look through the subsequent nodes in the chain.  Skip NOTHING, merge
+     * EXACT ones that are mergeable to the current one. */
+    while (    n
+           && (    REGNODE_TYPE(OP(n)) == NOTHING
+               || (stringok && REGNODE_TYPE(OP(n)) == EXACT))
+           && NEXT_OFF(n)
+           && NEXT_OFF(scan) + NEXT_OFF(n) < I16_MAX)
+    {
+
+        if (OP(n) == TAIL || n > next)
+            stringok = 0;
+        if (REGNODE_TYPE(OP(n)) == NOTHING) {
+            DEBUG_PEEP("skip:", n, depth, 0);
+            NEXT_OFF(scan) += NEXT_OFF(n);
+            next = n + NODE_STEP_REGNODE;
+#ifdef DEBUGGING
+            if (stringok)
+                stop = n;
+#endif
+            n = regnext(n);
+        }
+        else if (stringok) {
+            const unsigned int oldl = STR_LEN(scan);
+            regnode * const nnext = regnext(n);
+
+            /* XXX I (khw) kind of doubt that this works on platforms (should
+             * Perl ever run on one) where U8_MAX is above 255 because of lots
+             * of other assumptions */
+            /* Don't join if the sum can't fit into a single node */
+            if (oldl + STR_LEN(n) > U8_MAX)
+                break;
+
+            /* Joining something that requires UTF-8 with something that
+             * doesn't, means the result requires UTF-8. */
+            if (OP(scan) == EXACT && (OP(n) == EXACT_REQ8)) {
+                OP(scan) = EXACT_REQ8;
+            }
+            else if (OP(scan) == EXACT_REQ8 && (OP(n) == EXACT)) {
+                ;   /* join is compatible, no need to change OP */
+            }
+            else if ((OP(scan) == EXACTFU) && (OP(n) == EXACTFU_REQ8)) {
+                OP(scan) = EXACTFU_REQ8;
+            }
+            else if ((OP(scan) == EXACTFU_REQ8) && (OP(n) == EXACTFU)) {
+                ;   /* join is compatible, no need to change OP */
+            }
+            else if (OP(scan) == EXACTFU && OP(n) == EXACTFU) {
+                ;   /* join is compatible, no need to change OP */
+            }
+            else if (OP(scan) == EXACTFU && OP(n) == EXACTFU_S_EDGE) {
+
+                 /* Under /di, temporary EXACTFU_S_EDGE nodes are generated,
+                  * which can join with EXACTFU ones.  We check for this case
+                  * here.  These need to be resolved to either EXACTFU or
+                  * EXACTF at joining time.  They have nothing in them that
+                  * would forbid them from being the more desirable EXACTFU
+                  * nodes except that they begin and/or end with a single [Ss].
+                  * The reason this is problematic is because they could be
+                  * joined in this loop with an adjacent node that ends and/or
+                  * begins with [Ss] which would then form the sequence 'ss',
+                  * which matches differently under /di than /ui, in which case
+                  * EXACTFU can't be used.  If the 'ss' sequence doesn't get
+                  * formed, the nodes get absorbed into any adjacent EXACTFU
+                  * node.  And if the only adjacent node is EXACTF, they get
+                  * absorbed into that, under the theory that a longer node is
+                  * better than two shorter ones, even if one is EXACTFU.  Note
+                  * that EXACTFU_REQ8 is generated only for UTF-8 patterns,
+                  * and the EXACTFU_S_EDGE ones only for non-UTF-8.  */
+
+                if (STRING(n)[STR_LEN(n)-1] == 's') {
+
+                    /* Here the joined node would end with 's'.  If the node
+                     * following the combination is an EXACTF one, it's better to
+                     * join this trailing edge 's' node with that one, leaving the
+                     * current one in 'scan' be the more desirable EXACTFU */
+                    if (OP(nnext) == EXACTF) {
+                        break;
+                    }
+
+                    OP(scan) = EXACTFU_S_EDGE;
+
+                }   /* Otherwise, the beginning 's' of the 2nd node just
+                       becomes an interior 's' in 'scan' */
+            }
+            else if (OP(scan) == EXACTF && OP(n) == EXACTF) {
+                ;   /* join is compatible, no need to change OP */
+            }
+            else if (OP(scan) == EXACTF && OP(n) == EXACTFU_S_EDGE) {
+
+                /* EXACTF nodes are compatible for joining with EXACTFU_S_EDGE
+                 * nodes.  But the latter nodes can be also joined with EXACTFU
+                 * ones, and that is a better outcome, so if the node following
+                 * 'n' is EXACTFU, quit now so that those two can be joined
+                 * later */
+                if (OP(nnext) == EXACTFU) {
+                    break;
+                }
+
+                /* The join is compatible, and the combined node will be
+                 * EXACTF.  (These don't care if they begin or end with 's' */
+            }
+            else if (OP(scan) == EXACTFU_S_EDGE && OP(n) == EXACTFU_S_EDGE) {
+                if (   STRING(scan)[STR_LEN(scan)-1] == 's'
+                    && STRING(n)[0] == 's')
+                {
+                    /* When combined, we have the sequence 'ss', which means we
+                     * have to remain /di */
+                    OP(scan) = EXACTF;
+                }
+            }
+            else if (OP(scan) == EXACTFU_S_EDGE && OP(n) == EXACTFU) {
+                if (STRING(n)[0] == 's') {
+                    ;   /* Here the join is compatible and the combined node
+                           starts with 's', no need to change OP */
+                }
+                else {  /* Now the trailing 's' is in the interior */
+                    OP(scan) = EXACTFU;
+                }
+            }
+            else if (OP(scan) == EXACTFU_S_EDGE && OP(n) == EXACTF) {
+
+                /* The join is compatible, and the combined node will be
+                 * EXACTF.  (These don't care if they begin or end with 's' */
+                OP(scan) = EXACTF;
+            }
+            else if (OP(scan) != OP(n)) {
+
+                /* The only other compatible joinings are the same node type */
+                break;
+            }
+
+            DEBUG_PEEP("merg", n, depth, 0);
+            merged++;
+
+            next = REGNODE_AFTER_varies(n);
+            NEXT_OFF(scan) += NEXT_OFF(n);
+            assert( ( STR_LEN(scan) + STR_LEN(n) ) < 256 );
+            setSTR_LEN(scan, (U8)(STR_LEN(scan) + STR_LEN(n)));
+            /* Now we can overwrite *n : */
+            Move(STRING(n), STRING(scan) + oldl, STR_LEN(n), char);
+#ifdef DEBUGGING
+            stop = next - 1;
+#endif
+            n = nnext;
+            if (stopnow) break;
+        }
+
+#ifdef EXPERIMENTAL_INPLACESCAN
+        if (flags && !NEXT_OFF(n)) {
+            DEBUG_PEEP("atch", val, depth, 0);
+            if (REGNODE_OFF_BY_ARG(OP(n))) {
+                ARG1u_SET(n, val - n);
+            }
+            else {
+                NEXT_OFF(n) = val - n;
+            }
+            stopnow = 1;
+        }
+#endif
+    }
+
+    /* This temporary node can now be turned into EXACTFU, and must, as
+     * regexec.c doesn't handle it */
+    if (OP(scan) == EXACTFU_S_EDGE) {
+        OP(scan) = EXACTFU;
+    }
+
+    *min_subtract = 0;
+    *unfolded_multi_char = FALSE;
+
+    /* Here, all the adjacent mergeable EXACTish nodes have been merged.  We
+     * can now analyze for sequences of problematic code points.  (Prior to
+     * this final joining, sequences could have been split over boundaries, and
+     * hence missed).  The sequences only happen in folding, hence for any
+     * non-EXACT EXACTish node */
+    if (OP(scan) != EXACT && OP(scan) != EXACT_REQ8 && OP(scan) != EXACTL) {
+        U8* s0 = (U8*) STRING(scan);
+        U8* s = s0;
+        U8* s_end = s0 + STR_LEN(scan);
+
+        int total_count_delta = 0;  /* Total delta number of characters that
+                                       multi-char folds expand to */
+
+        /* One pass is made over the node's string looking for all the
+         * possibilities.  To avoid some tests in the loop, there are two main
+         * cases, for UTF-8 patterns (which can't have EXACTF nodes) and
+         * non-UTF-8 */
+        if (UTF) {
+            U8* folded = NULL;
+
+            if (OP(scan) == EXACTFL) {
+                U8 *d;
+
+                /* An EXACTFL node would already have been changed to another
+                 * node type unless there is at least one character in it that
+                 * is problematic; likely a character whose fold definition
+                 * won't be known until runtime, and so has yet to be folded.
+                 * For all but the UTF-8 locale, folds are 1-1 in length, but
+                 * to handle the UTF-8 case, we need to create a temporary
+                 * folded copy using UTF-8 locale rules in order to analyze it.
+                 * This is because our macros that look to see if a sequence is
+                 * a multi-char fold assume everything is folded (otherwise the
+                 * tests in those macros would be too complicated and slow).
+                 * Note that here, the non-problematic folds will have already
+                 * been done, so we can just copy such characters.  We actually
+                 * don't completely fold the EXACTFL string.  We skip the
+                 * unfolded multi-char folds, as that would just create work
+                 * below to figure out the size they already are */
+
+                Newx(folded, UTF8_MAX_FOLD_CHAR_EXPAND * STR_LEN(scan) + 1, U8);
+                d = folded;
+                while (s < s_end) {
+                    STRLEN s_len = UTF8SKIP(s);
+                    if (! is_PROBLEMATIC_LOCALE_FOLD_utf8(s)) {
+                        Copy(s, d, s_len, U8);
+                        d += s_len;
+                    }
+                    else if (is_FOLDS_TO_MULTI_utf8(s)) {
+                        *unfolded_multi_char = TRUE;
+                        Copy(s, d, s_len, U8);
+                        d += s_len;
+                    }
+                    else if (isASCII(*s)) {
+                        *(d++) = toFOLD(*s);
+                    }
+                    else {
+                        STRLEN len;
+                        _toFOLD_utf8_flags(s, s_end, d, &len, FOLD_FLAGS_FULL);
+                        d += len;
+                    }
+                    s += s_len;
+                }
+
+                /* Point the remainder of the routine to look at our temporary
+                 * folded copy */
+                s = folded;
+                s_end = d;
+            } /* End of creating folded copy of EXACTFL string */
+
+            /* Examine the string for a multi-character fold sequence.  UTF-8
+             * patterns have all characters pre-folded by the time this code is
+             * executed */
+            while (s < s_end - 1) /* Can stop 1 before the end, as minimum
+                                     length sequence we are looking for is 2 */
+            {
+                int count = 0;  /* How many characters in a multi-char fold */
+                int len = is_MULTI_CHAR_FOLD_utf8_safe(s, s_end);
+                if (! len) {    /* Not a multi-char fold: get next char */
+                    s += UTF8SKIP(s);
+                    continue;
+                }
+
+                { /* Here is a generic multi-char fold. */
+                    U8* multi_end  = s + len;
+
+                    /* Count how many characters are in it.  In the case of
+                     * /aa, no folds which contain ASCII code points are
+                     * allowed, so check for those, and skip if found. */
+                    if (OP(scan) != EXACTFAA && OP(scan) != EXACTFAA_NO_TRIE) {
+                        count = utf8_length(s, multi_end);
+                        s = multi_end;
+                    }
+                    else {
+                        while (s < multi_end) {
+                            if (isASCII(*s)) {
+                                s++;
+                                goto next_iteration;
+                            }
+                            else {
+                                s += UTF8SKIP(s);
+                            }
+                            count++;
+                        }
+                    }
+                }
+
+                /* The delta is how long the sequence is minus 1 (1 is how long
+                 * the character that folds to the sequence is) */
+                total_count_delta += count - 1;
+              next_iteration: ;
+            }
+
+            /* We created a temporary folded copy of the string in EXACTFL
+             * nodes.  Therefore we need to be sure it doesn't go below zero,
+             * as the real string could be shorter */
+            if (OP(scan) == EXACTFL) {
+                int total_chars = utf8_length((U8*) STRING(scan),
+                                           (U8*) STRING(scan) + STR_LEN(scan));
+                if (total_count_delta > total_chars) {
+                    total_count_delta = total_chars;
+                }
+            }
+
+            *min_subtract += total_count_delta;
+            Safefree(folded);
+        }
+        else if (OP(scan) == EXACTFAA) {
+
+            /* Non-UTF-8 pattern, EXACTFAA node.  There can't be a multi-char
+             * fold to the ASCII range (and there are no existing ones in the
+             * upper latin1 range).  But, as outlined in the comments preceding
+             * this function, we need to flag any occurrences of the sharp s.
+             * This character forbids trie formation (because of added
+             * complexity) */
+#if    UNICODE_MAJOR_VERSION > 3 /* no multifolds in early Unicode */   \
+   || (UNICODE_MAJOR_VERSION == 3 && (   UNICODE_DOT_VERSION > 0)       \
+                                      || UNICODE_DOT_DOT_VERSION > 0)
+            while (s < s_end) {
+                if (*s == LATIN_SMALL_LETTER_SHARP_S) {
+                    OP(scan) = EXACTFAA_NO_TRIE;
+                    *unfolded_multi_char = TRUE;
+                    break;
+                }
+                s++;
+            }
+        }
+        else if (OP(scan) != EXACTFAA_NO_TRIE) {
+
+            /* Non-UTF-8 pattern, not EXACTFAA node.  Look for the multi-char
+             * folds that are all Latin1.  As explained in the comments
+             * preceding this function, we look also for the sharp s in EXACTF
+             * and EXACTFL nodes; it can be in the final position.  Otherwise
+             * we can stop looking 1 byte earlier because have to find at least
+             * two characters for a multi-fold */
+            const U8* upper = (OP(scan) == EXACTF || OP(scan) == EXACTFL)
+                              ? s_end
+                              : s_end -1;
+
+            while (s < upper) {
+                int len = is_MULTI_CHAR_FOLD_latin1_safe(s, s_end);
+                if (! len) {    /* Not a multi-char fold. */
+                    if (*s == LATIN_SMALL_LETTER_SHARP_S
+                        && (OP(scan) == EXACTF || OP(scan) == EXACTFL))
+                    {
+                        *unfolded_multi_char = TRUE;
+                    }
+                    s++;
+                    continue;
+                }
+
+                if (len == 2
+                    && isALPHA_FOLD_EQ(*s, 's')
+                    && isALPHA_FOLD_EQ(*(s+1), 's'))
+                {
+
+                    /* EXACTF nodes need to know that the minimum length
+                     * changed so that a sharp s in the string can match this
+                     * ss in the pattern, but they remain EXACTF nodes, as they
+                     * won't match this unless the target string is in UTF-8,
+                     * which we don't know until runtime.  EXACTFL nodes can't
+                     * transform into EXACTFU nodes */
+                    if (OP(scan) != EXACTF && OP(scan) != EXACTFL) {
+                        OP(scan) = EXACTFUP;
+                    }
+                }
+
+                *min_subtract += len - 1;
+                s += len;
+            }
+#endif
+        }
+    }
+
+#ifdef DEBUGGING
+    /* Allow dumping but overwriting the collection of skipped
+     * ops and/or strings with fake optimized ops */
+    n = REGNODE_AFTER_varies(scan);
+    while (n <= stop) {
+        OP(n) = OPTIMIZED;
+        FLAGS(n) = 0;
+        NEXT_OFF(n) = 0;
+        n++;
+    }
+#endif
+    DEBUG_OPTIMISE_r(if (merged){DEBUG_PEEP("finl", scan, depth, 0);});
+    return stopnow;
+}
+
+/* REx optimizer.  Converts nodes into quicker variants "in place".
+   Finds fixed substrings.  */
+
+
+/* Stops at toplevel WHILEM as well as at "last". At end *scanp is set
+   to the position after last scanned or to NULL. */
+
+/* the return from this sub is the minimum length that could possibly match */
+SSize_t
+Perl_study_chunk(pTHX_
+    RExC_state_t *pRExC_state,
+    regnode **scanp,        /* Start here (read-write). */
+    SSize_t *minlenp,       /* used for the minlen of substrings? */
+    SSize_t *deltap,        /* Write maxlen-minlen here. */
+    regnode *last,          /* Stop before this one. */
+    scan_data_t *data,      /* string data about the pattern */
+    I32 stopparen,          /* treat CLOSE-N as END, see GOSUB */
+    U32 recursed_depth,     /* how deep have we recursed via GOSUB */
+    regnode_ssc *and_withp, /* Valid if flags & SCF_DO_STCLASS_OR */
+    U32 flags,              /* flags controlling this call, see SCF_ flags */
+    U32 depth,              /* how deep have we recursed period */
+    bool was_mutate_ok      /* TRUE if in-place optimizations are allowed.
+                               FALSE only if the caller (recursively) was
+                               prohibited from modifying the regops, because
+                               a higher caller is holding a ptr to them. */
+)
+{
+    /* vars about the regnodes we are working with */
+    regnode *scan = *scanp; /* the current opcode we are inspecting */
+    regnode *next = NULL;   /* the next opcode beyond scan, tmp var */
+    regnode *first_non_open = scan; /* FIXME: should this init to NULL?
+                                       the first non open regop, if the init
+                                       val IS an OPEN then we will skip past
+                                       it just after the var decls section */
+    I32 code = 0;           /* temp var used to hold the optype of a regop */
+
+    /* vars about the min and max length of the pattern */
+    SSize_t min = 0;    /* min length of this part of the pattern */
+    SSize_t stopmin = OPTIMIZE_INFTY; /* min length accounting for ACCEPT
+                                         this is adjusted down if we find
+                                         an ACCEPT */
+    SSize_t delta = 0;  /* difference between min and max length
+                           (not accounting for stopmin) */
+
+    /* vars about capture buffers in the pattern */
+    I32 pars = 0;       /* count of OPEN opcodes */
+    I32 is_par = OP(scan) == OPEN ? PARNO(scan) : 0; /* is this op an OPEN? */
+
+    /* vars about whether this pattern contains something that can match
+     * infinitely long strings, eg, X* or X+ */
+    int is_inf = (flags & SCF_DO_SUBSTR) && (data->flags & SF_IS_INF);
+    int is_inf_internal = 0;            /* The studied chunk is infinite */
+
+    /* scan_data_t (struct) is used to hold information about the substrings
+     * and start class we have extracted from the string */
+    scan_data_t data_fake; /* temp var used for recursing in some cases */
+
+    SV *re_trie_maxbuff = NULL; /* temp var used to hold whether we can do
+                                   trie optimizations */
+
+    scan_frame *frame = NULL;  /* used as part of fake recursion */
+
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_STUDY_CHUNK;
+    RExC_study_started= 1;
+
+    Zero(&data_fake, 1, scan_data_t);
+
+    if ( depth == 0 ) {
+        while (first_non_open && OP(first_non_open) == OPEN)
+            first_non_open=regnext(first_non_open);
+    }
+
+  fake_study_recurse:
+    DEBUG_r(
+        RExC_study_chunk_recursed_count++;
+    );
+    DEBUG_OPTIMISE_MORE_r(
+    {
+        Perl_re_indentf( aTHX_  "study_chunk stopparen=%ld recursed_count=%lu depth=%lu recursed_depth=%lu scan=%p last=%p",
+            depth, (long)stopparen,
+            (unsigned long)RExC_study_chunk_recursed_count,
+            (unsigned long)depth, (unsigned long)recursed_depth,
+            scan,
+            last);
+        if (recursed_depth) {
+            U32 i;
+            U32 j;
+            for ( j = 0 ; j < recursed_depth ; j++ ) {
+                for ( i = 0 ; i < (U32)RExC_total_parens ; i++ ) {
+                    if (PAREN_TEST(j, i) && (!j || !PAREN_TEST(j - 1, i))) {
+                        Perl_re_printf( aTHX_ " %d",(int)i);
+                        break;
+                    }
+                }
+                if ( j + 1 < recursed_depth ) {
+                    Perl_re_printf( aTHX_  ",");
+                }
+            }
+        }
+        Perl_re_printf( aTHX_ "\n");
+    }
+    );
+    while ( scan && OP(scan) != END && scan < last ){
+        UV min_subtract = 0;    /* How mmany chars to subtract from the minimum
+                                   node length to get a real minimum (because
+                                   the folded version may be shorter) */
+        bool unfolded_multi_char = FALSE;
+        /* avoid mutating ops if we are anywhere within the recursed or
+         * enframed handling for a GOSUB: the outermost level will handle it.
+         */
+        bool mutate_ok = was_mutate_ok && !(frame && frame->in_gosub);
+        /* Peephole optimizer: */
+        DEBUG_STUDYDATA("Peep", data, depth, is_inf, min, stopmin, delta);
+        DEBUG_PEEP("Peep", scan, depth, flags);
+
+
+        /* The reason we do this here is that we need to deal with things like
+         * /(?:f)(?:o)(?:o)/ which cant be dealt with by the normal EXACT
+         * parsing code, as each (?:..) is handled by a different invocation of
+         * reg() -- Yves
+         */
+        if (REGNODE_TYPE(OP(scan)) == EXACT
+            && OP(scan) != LEXACT
+            && OP(scan) != LEXACT_REQ8
+            && mutate_ok
+        ) {
+            join_exact(pRExC_state, scan, &min_subtract, &unfolded_multi_char,
+                    0, NULL, depth + 1);
+        }
+
+        /* Follow the next-chain of the current node and optimize
+           away all the NOTHINGs from it.
+         */
+        rck_elide_nothing(scan);
+
+        /* The principal pseudo-switch.  Cannot be a switch, since we look into
+         * several different things.  */
+        if ( OP(scan) == DEFINEP ) {
+            SSize_t minlen = 0;
+            SSize_t deltanext = 0;
+            SSize_t fake_last_close = 0;
+            regnode *fake_last_close_op = NULL;
+            U32 f = SCF_IN_DEFINE | (flags & SCF_TRIE_DOING_RESTUDY);
+
+            StructCopy(&zero_scan_data, &data_fake, scan_data_t);
+            scan = regnext(scan);
+            assert( OP(scan) == IFTHEN );
+            DEBUG_PEEP("expect IFTHEN", scan, depth, flags);
+
+            data_fake.last_closep= &fake_last_close;
+            data_fake.last_close_opp= &fake_last_close_op;
+            minlen = *minlenp;
+            next = regnext(scan);
+            scan = REGNODE_AFTER_type(scan,tregnode_IFTHEN);
+            DEBUG_PEEP("scan", scan, depth, flags);
+            DEBUG_PEEP("next", next, depth, flags);
+
+            /* we suppose the run is continuous, last=next...
+             * NOTE we dont use the return here! */
+            /* DEFINEP study_chunk() recursion */
+            (void)study_chunk(pRExC_state, &scan, &minlen,
+                              &deltanext, next, &data_fake, stopparen,
+                              recursed_depth, NULL, f, depth+1, mutate_ok);
+
+            scan = next;
+        } else
+        if (
+            OP(scan) == BRANCH  ||
+            OP(scan) == BRANCHJ ||
+            OP(scan) == IFTHEN
+        ) {
+            next = regnext(scan);
+            code = OP(scan);
+
+            /* The op(next)==code check below is to see if we
+             * have "BRANCH-BRANCH", "BRANCHJ-BRANCHJ", "IFTHEN-IFTHEN"
+             * IFTHEN is special as it might not appear in pairs.
+             * Not sure whether BRANCH-BRANCHJ is possible, regardless
+             * we dont handle it cleanly. */
+            if (OP(next) == code || code == IFTHEN) {
+                /* NOTE - There is similar code to this block below for
+                 * handling TRIE nodes on a re-study.  If you change stuff here
+                 * check there too. */
+                SSize_t max1 = 0, min1 = OPTIMIZE_INFTY, num = 0;
+                regnode_ssc accum;
+                regnode * const startbranch=scan;
+
+                if (flags & SCF_DO_SUBSTR) {
+                    /* Cannot merge strings after this. */
+                    scan_commit(pRExC_state, data, minlenp, is_inf);
+                }
+
+                if (flags & SCF_DO_STCLASS)
+                    ssc_init_zero(pRExC_state, &accum);
+
+                while (OP(scan) == code) {
+                    SSize_t deltanext, minnext, fake_last_close = 0;
+                    regnode *fake_last_close_op = NULL;
+                    U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
+                    regnode_ssc this_class;
+
+                    DEBUG_PEEP("Branch", scan, depth, flags);
+
+                    num++;
+                    StructCopy(&zero_scan_data, &data_fake, scan_data_t);
+                    if (data) {
+                        data_fake.whilem_c = data->whilem_c;
+                        data_fake.last_closep = data->last_closep;
+                        data_fake.last_close_opp = data->last_close_opp;
+                    }
+                    else {
+                        data_fake.last_closep = &fake_last_close;
+                        data_fake.last_close_opp = &fake_last_close_op;
+                    }
+
+                    data_fake.pos_delta = delta;
+                    next = regnext(scan);
+
+                    scan = REGNODE_AFTER_opcode(scan, code);
+
+                    if (flags & SCF_DO_STCLASS) {
+                        ssc_init(pRExC_state, &this_class);
+                        data_fake.start_class = &this_class;
+                        f |= SCF_DO_STCLASS_AND;
+                    }
+                    if (flags & SCF_WHILEM_VISITED_POS)
+                        f |= SCF_WHILEM_VISITED_POS;
+
+                    /* we suppose the run is continuous, last=next...*/
+                    /* recurse study_chunk() for each BRANCH in an alternation */
+                    minnext = study_chunk(pRExC_state, &scan, minlenp,
+                                      &deltanext, next, &data_fake, stopparen,
+                                      recursed_depth, NULL, f, depth+1,
+                                      mutate_ok);
+
+                    if (min1 > minnext)
+                        min1 = minnext;
+                    if (deltanext == OPTIMIZE_INFTY) {
+                        is_inf = is_inf_internal = 1;
+                        max1 = OPTIMIZE_INFTY;
+                    } else if (max1 < minnext + deltanext)
+                        max1 = minnext + deltanext;
+                    scan = next;
+                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
+                        pars++;
+                    if (data_fake.flags & SCF_SEEN_ACCEPT) {
+                        if ( stopmin > minnext)
+                            stopmin = min + min1;
+                        flags &= ~SCF_DO_SUBSTR;
+                        if (data)
+                            data->flags |= SCF_SEEN_ACCEPT;
+                    }
+                    if (data) {
+                        if (data_fake.flags & SF_HAS_EVAL)
+                            data->flags |= SF_HAS_EVAL;
+                        data->whilem_c = data_fake.whilem_c;
+                    }
+                    if (flags & SCF_DO_STCLASS)
+                        ssc_or(pRExC_state, &accum, (regnode_charclass*)&this_class);
+                    DEBUG_STUDYDATA("end BRANCH", data, depth, is_inf, min, stopmin, delta);
+                }
+                if (code == IFTHEN && num < 2) /* Empty ELSE branch */
+                    min1 = 0;
+                if (flags & SCF_DO_SUBSTR) {
+                    data->pos_min += min1;
+                    if (data->pos_delta >= OPTIMIZE_INFTY - (max1 - min1))
+                        data->pos_delta = OPTIMIZE_INFTY;
+                    else
+                        data->pos_delta += max1 - min1;
+                    if (max1 != min1 || is_inf)
+                        data->cur_is_floating = 1;
+                }
+                min += min1;
+                if (delta == OPTIMIZE_INFTY
+                 || OPTIMIZE_INFTY - delta - (max1 - min1) < 0)
+                    delta = OPTIMIZE_INFTY;
+                else
+                    delta += max1 - min1;
+                if (flags & SCF_DO_STCLASS_OR) {
+                    ssc_or(pRExC_state, data->start_class, (regnode_charclass*) &accum);
+                    if (min1) {
+                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+                        flags &= ~SCF_DO_STCLASS;
+                    }
+                }
+                else if (flags & SCF_DO_STCLASS_AND) {
+                    if (min1) {
+                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &accum);
+                        flags &= ~SCF_DO_STCLASS;
+                    }
+                    else {
+                        /* Switch to OR mode: cache the old value of
+                         * data->start_class */
+                        INIT_AND_WITHP;
+                        StructCopy(data->start_class, and_withp, regnode_ssc);
+                        flags &= ~SCF_DO_STCLASS_AND;
+                        StructCopy(&accum, data->start_class, regnode_ssc);
+                        flags |= SCF_DO_STCLASS_OR;
+                    }
+                }
+                DEBUG_STUDYDATA("pre TRIE", data, depth, is_inf, min, stopmin, delta);
+
+                if (PERL_ENABLE_TRIE_OPTIMISATION
+                    && OP(startbranch) == BRANCH
+                    && mutate_ok
+                ) {
+                /* demq.
+
+                   Assuming this was/is a branch we are dealing with: 'scan'
+                   now points at the item that follows the branch sequence,
+                   whatever it is. We now start at the beginning of the
+                   sequence and look for subsequences of
+
+                   BRANCH->EXACT=>x1
+                   BRANCH->EXACT=>x2
+                   tail
+
+                   which would be constructed from a pattern like
+                   /A|LIST|OF|WORDS/
+
+                   If we can find such a subsequence we need to turn the first
+                   element into a trie and then add the subsequent branch exact
+                   strings to the trie.
+
+                   We have two cases
+
+                     1. patterns where the whole set of branches can be
+                        converted.
+
+                     2. patterns where only a subset can be converted.
+
+                   In case 1 we can replace the whole set with a single regop
+                   for the trie. In case 2 we need to keep the start and end
+                   branches so
+
+                     'BRANCH EXACT; BRANCH EXACT; BRANCH X'
+                     becomes BRANCH TRIE; BRANCH X;
+
+                  There is an additional case, that being where there is a
+                  common prefix, which gets split out into an EXACT like node
+                  preceding the TRIE node.
+
+                  If X(1..n)==tail then we can do a simple trie, if not we make
+                  a "jump" trie, such that when we match the appropriate word
+                  we "jump" to the appropriate tail node. Essentially we turn
+                  a nested if into a case structure of sorts.
+
+                */
+
+                    int made=0;
+                    if (!re_trie_maxbuff) {
+                        re_trie_maxbuff = get_sv(RE_TRIE_MAXBUF_NAME, 1);
+                        if (!SvIOK(re_trie_maxbuff))
+                            sv_setiv(re_trie_maxbuff, RE_TRIE_MAXBUF_INIT);
+                    }
+                    if ( SvIV(re_trie_maxbuff)>=0  ) {
+                        regnode *cur;
+                        regnode *first = (regnode *)NULL;
+                        regnode *prev = (regnode *)NULL;
+                        regnode *tail = scan;
+                        U8 trietype = 0;
+                        U32 count=0;
+
+                        /* var tail is used because there may be a TAIL
+                           regop in the way. Ie, the exacts will point to the
+                           thing following the TAIL, but the last branch will
+                           point at the TAIL. So we advance tail. If we
+                           have nested (?:) we may have to move through several
+                           tails.
+                         */
+
+                        while ( OP( tail ) == TAIL ) {
+                            /* this is the TAIL generated by (?:) */
+                            tail = regnext( tail );
+                        }
+
+
+                        DEBUG_TRIE_COMPILE_r({
+                            regprop(RExC_rx, RExC_mysv, tail, NULL, pRExC_state);
+                            Perl_re_indentf( aTHX_  "%s %" UVuf ":%s\n",
+                              depth+1,
+                              "Looking for TRIE'able sequences. Tail node is ",
+                              (UV) REGNODE_OFFSET(tail),
+                              SvPV_nolen_const( RExC_mysv )
+                            );
+                        });
+
+                        /*
+
+                            Step through the branches
+                                cur represents each branch,
+                                noper is the first thing to be matched as part
+                                      of that branch
+                                noper_next is the regnext() of that node.
+
+                            We normally handle a case like this
+                            /FOO[xyz]|BAR[pqr]/ via a "jump trie" but we also
+                            support building with NOJUMPTRIE, which restricts
+                            the trie logic to structures like /FOO|BAR/.
+
+                            If noper is a trieable nodetype then the branch is
+                            a possible optimization target. If we are building
+                            under NOJUMPTRIE then we require that noper_next is
+                            the same as scan (our current position in the regex
+                            program).
+
+                            Once we have two or more consecutive such branches
+                            we can create a trie of the EXACT's contents and
+                            stitch it in place into the program.
+
+                            If the sequence represents all of the branches in
+                            the alternation we replace the entire thing with a
+                            single TRIE node.
+
+                            Otherwise when it is a subsequence we need to
+                            stitch it in place and replace only the relevant
+                            branches. This means the first branch has to remain
+                            as it is used by the alternation logic, and its
+                            next pointer, and needs to be repointed at the item
+                            on the branch chain following the last branch we
+                            have optimized away.
+
+                            This could be either a BRANCH, in which case the
+                            subsequence is internal, or it could be the item
+                            following the branch sequence in which case the
+                            subsequence is at the end (which does not
+                            necessarily mean the first node is the start of the
+                            alternation).
+
+                            TRIE_TYPE(X) is a define which maps the optype to a
+                            trietype.
+
+                                optype          |  trietype
+                                ----------------+-----------
+                                NOTHING         | NOTHING
+                                EXACT           | EXACT
+                                EXACT_REQ8      | EXACT
+                                EXACTFU         | EXACTFU
+                                EXACTFU_REQ8    | EXACTFU
+                                EXACTFUP        | EXACTFU
+                                EXACTFAA        | EXACTFAA
+                                EXACTL          | EXACTL
+                                EXACTFLU8       | EXACTFLU8
+
+
+                        */
+#define TRIE_TYPE(X) ( ( NOTHING == (X) )                                   \
+                       ? NOTHING                                            \
+                       : ( EXACT == (X) || EXACT_REQ8 == (X) )             \
+                         ? EXACT                                            \
+                         : (     EXACTFU == (X)                             \
+                              || EXACTFU_REQ8 == (X)                       \
+                              || EXACTFUP == (X) )                          \
+                           ? EXACTFU                                        \
+                           : ( EXACTFAA == (X) )                            \
+                             ? EXACTFAA                                     \
+                             : ( EXACTL == (X) )                            \
+                               ? EXACTL                                     \
+                               : ( EXACTFLU8 == (X) )                       \
+                                 ? EXACTFLU8                                \
+                                 : 0 )
+
+                        /* dont use tail as the end marker for this traverse */
+                        for ( cur = startbranch ; cur != scan ; cur = regnext( cur ) ) {
+                            regnode * const noper = REGNODE_AFTER( cur );
+                            U8 noper_type = OP( noper );
+                            U8 noper_trietype = TRIE_TYPE( noper_type );
+#if defined(DEBUGGING) || defined(NOJUMPTRIE)
+                            regnode * const noper_next = regnext( noper );
+                            U8 noper_next_type = (noper_next && noper_next < tail) ? OP(noper_next) : 0;
+                            U8 noper_next_trietype = (noper_next && noper_next < tail) ? TRIE_TYPE( noper_next_type ) :0;
+#endif
+
+                            DEBUG_TRIE_COMPILE_r({
+                                regprop(RExC_rx, RExC_mysv, cur, NULL, pRExC_state);
+                                Perl_re_indentf( aTHX_  "- %d:%s (%d)",
+                                   depth+1,
+                                   REG_NODE_NUM(cur), SvPV_nolen_const( RExC_mysv ), REG_NODE_NUM(cur) );
+
+                                regprop(RExC_rx, RExC_mysv, noper, NULL, pRExC_state);
+                                Perl_re_printf( aTHX_  " -> %d:%s",
+                                    REG_NODE_NUM(noper), SvPV_nolen_const(RExC_mysv));
+
+                                if ( noper_next ) {
+                                  regprop(RExC_rx, RExC_mysv, noper_next, NULL, pRExC_state);
+                                  Perl_re_printf( aTHX_ "\t=> %d:%s\t",
+                                    REG_NODE_NUM(noper_next), SvPV_nolen_const(RExC_mysv));
+                                }
+                                Perl_re_printf( aTHX_  "(First==%d,Last==%d,Cur==%d,tt==%s,ntt==%s,nntt==%s)\n",
+                                   REG_NODE_NUM(first), REG_NODE_NUM(prev), REG_NODE_NUM(cur),
+                                   REGNODE_NAME(trietype), REGNODE_NAME(noper_trietype), REGNODE_NAME(noper_next_trietype)
+                                );
+                            });
+
+                            /* Is noper a trieable nodetype that can be merged
+                             * with the current trie (if there is one)? */
+                            if ( noper_trietype
+                                  &&
+                                  (
+                                        ( noper_trietype == NOTHING )
+                                        || ( trietype == NOTHING )
+                                        || ( trietype == noper_trietype )
+                                  )
+#ifdef NOJUMPTRIE
+                                  && noper_next >= tail
+#endif
+                                  && count < U16_MAX)
+                            {
+                                /* Handle mergable triable node Either we are
+                                 * the first node in a new trieable sequence,
+                                 * in which case we do some bookkeeping,
+                                 * otherwise we update the end pointer. */
+                                if ( !first ) {
+                                    first = cur;
+                                    if ( noper_trietype == NOTHING ) {
+#if !defined(DEBUGGING) && !defined(NOJUMPTRIE)
+                                        regnode * const noper_next = regnext( noper );
+                                        U8 noper_next_type = (noper_next && noper_next < tail) ? OP(noper_next) : 0;
+                                        U8 noper_next_trietype = noper_next_type ? TRIE_TYPE( noper_next_type ) :0;
+#endif
+
+                                        if ( noper_next_trietype ) {
+                                            trietype = noper_next_trietype;
+                                        } else if (noper_next_type)  {
+                                            /* a NOTHING regop is 1 regop wide.
+                                             * We need at least two for a trie
+                                             * so we can't merge this in */
+                                            first = NULL;
+                                        }
+                                    } else {
+                                        trietype = noper_trietype;
+                                    }
+                                } else {
+                                    if ( trietype == NOTHING )
+                                        trietype = noper_trietype;
+                                    prev = cur;
+                                }
+                                if (first)
+                                    count++;
+                            } /* end handle mergable triable node */
+                            else {
+                                /* handle unmergable node -
+                                 * noper may either be a triable node which can
+                                 * not be tried together with the current trie,
+                                 * or a non triable node */
+                                if ( prev ) {
+                                    /* If last is set and trietype is not
+                                     * NOTHING then we have found at least two
+                                     * triable branch sequences in a row of a
+                                     * similar trietype so we can turn them
+                                     * into a trie. If/when we allow NOTHING to
+                                     * start a trie sequence this condition
+                                     * will be required, and it isn't expensive
+                                     * so we leave it in for now. */
+                                    if ( trietype && trietype != NOTHING )
+                                        make_trie( pRExC_state,
+                                                startbranch, first, cur, tail,
+                                                count, trietype, depth+1 );
+                                    prev = NULL; /* note: we clear/update
+                                                    first, trietype etc below,
+                                                    so we dont do it here */
+                                }
+                                if ( noper_trietype
+#ifdef NOJUMPTRIE
+                                     && noper_next >= tail
+#endif
+                                ){
+                                    /* noper is triable, so we can start a new
+                                     * trie sequence */
+                                    count = 1;
+                                    first = cur;
+                                    trietype = noper_trietype;
+                                } else if (first) {
+                                    /* if we already saw a first but the
+                                     * current node is not triable then we have
+                                     * to reset the first information. */
+                                    count = 0;
+                                    first = NULL;
+                                    trietype = 0;
+                                }
+                            } /* end handle unmergable node */
+                        } /* loop over branches */
+                        DEBUG_TRIE_COMPILE_r({
+                            regprop(RExC_rx, RExC_mysv, cur, NULL, pRExC_state);
+                            Perl_re_indentf( aTHX_  "- %s (%d) <SCAN FINISHED> ",
+                              depth+1, SvPV_nolen_const( RExC_mysv ), REG_NODE_NUM(cur));
+                            Perl_re_printf( aTHX_  "(First==%d, Last==%d, Cur==%d, tt==%s)\n",
+                               REG_NODE_NUM(first), REG_NODE_NUM(prev), REG_NODE_NUM(cur),
+                               REGNODE_NAME(trietype)
+                            );
+
+                        });
+                        if ( prev && trietype ) {
+                            if ( trietype != NOTHING ) {
+                                /* the last branch of the sequence was part of
+                                 * a trie, so we have to construct it here
+                                 * outside of the loop */
+                                made= make_trie( pRExC_state, startbranch,
+                                                 first, scan, tail, count,
+                                                 trietype, depth+1 );
+#ifdef TRIE_STUDY_OPT
+                                if ( ((made == MADE_EXACT_TRIE &&
+                                     startbranch == first)
+                                     || ( first_non_open == first )) &&
+                                     depth==0 ) {
+                                    flags |= SCF_TRIE_RESTUDY;
+                                    if ( startbranch == first
+                                         && scan >= tail )
+                                    {
+                                        RExC_seen &=~REG_TOP_LEVEL_BRANCHES_SEEN;
+                                    }
+                                }
+#endif
+                            } else {
+                                /* at this point we know whatever we have is a
+                                 * NOTHING sequence/branch AND if 'startbranch'
+                                 * is 'first' then we can turn the whole thing
+                                 * into a NOTHING
+                                 */
+                                if ( startbranch == first ) {
+                                    regnode *opt;
+                                    /* the entire thing is a NOTHING sequence,
+                                     * something like this: (?:|) So we can
+                                     * turn it into a plain NOTHING op. */
+                                    DEBUG_TRIE_COMPILE_r({
+                                        regprop(RExC_rx, RExC_mysv, cur, NULL, pRExC_state);
+                                        Perl_re_indentf( aTHX_  "- %s (%d) <NOTHING BRANCH SEQUENCE>\n",
+                                          depth+1,
+                                          SvPV_nolen_const( RExC_mysv ), REG_NODE_NUM(cur));
+
+                                    });
+                                    OP(startbranch)= NOTHING;
+                                    NEXT_OFF(startbranch)= tail - startbranch;
+                                    for ( opt= startbranch + 1; opt < tail ; opt++ )
+                                        OP(opt)= OPTIMIZED;
+                                }
+                            }
+                        } /* end if ( prev) */
+                    } /* TRIE_MAXBUF is non zero */
+                } /* do trie */
+                DEBUG_STUDYDATA("after TRIE", data, depth, is_inf, min, stopmin, delta);
+            }
+            else
+                scan = REGNODE_AFTER_opcode(scan,code);
+            continue;
+        } else if (OP(scan) == SUSPEND || OP(scan) == GOSUB) {
+            I32 paren = 0;
+            regnode *start = NULL;
+            regnode *end = NULL;
+            U32 my_recursed_depth= recursed_depth;
+
+            if (OP(scan) != SUSPEND) { /* GOSUB */
+                /* Do setup, note this code has side effects beyond
+                 * the rest of this block. Specifically setting
+                 * RExC_recurse[] must happen at least once during
+                 * study_chunk(). */
+                paren = ARG1u(scan);
+                RExC_recurse[ARG2i(scan)] = scan;
+                start = REGNODE_p(RExC_open_parens[paren]);
+                end   = REGNODE_p(RExC_close_parens[paren]);
+
+                /* NOTE we MUST always execute the above code, even
+                 * if we do nothing with a GOSUB */
+                if (
+                    ( flags & SCF_IN_DEFINE )
+                    ||
+                    (
+                        (is_inf_internal || is_inf || (data && data->flags & SF_IS_INF))
+                        &&
+                        ( (flags & (SCF_DO_STCLASS | SCF_DO_SUBSTR)) == 0 )
+                    )
+                ) {
+                    /* no need to do anything here if we are in a define. */
+                    /* or we are after some kind of infinite construct
+                     * so we can skip recursing into this item.
+                     * Since it is infinite we will not change the maxlen
+                     * or delta, and if we miss something that might raise
+                     * the minlen it will merely pessimise a little.
+                     *
+                     * Iow /(?(DEFINE)(?<foo>foo|food))a+(?&foo)/
+                     * might result in a minlen of 1 and not of 4,
+                     * but this doesn't make us mismatch, just try a bit
+                     * harder than we should.
+                     *
+                     * However we must assume this GOSUB is infinite, to
+                     * avoid wrongly applying other optimizations in the
+                     * enclosing scope - see GH 18096, for example.
+                     */
+                    is_inf = is_inf_internal = 1;
+                    scan= regnext(scan);
+                    continue;
+                }
+
+                if (
+                    !recursed_depth
+                    || !PAREN_TEST(recursed_depth - 1, paren)
+                ) {
+                    /* it is quite possible that there are more efficient ways
+                     * to do this. We maintain a bitmap per level of recursion
+                     * of which patterns we have entered so we can detect if a
+                     * pattern creates a possible infinite loop. When we
+                     * recurse down a level we copy the previous levels bitmap
+                     * down. When we are at recursion level 0 we zero the top
+                     * level bitmap. It would be nice to implement a different
+                     * more efficient way of doing this. In particular the top
+                     * level bitmap may be unnecessary.
+                     */
+                    if (!recursed_depth) {
+                        Zero(RExC_study_chunk_recursed, RExC_study_chunk_recursed_bytes, U8);
+                    } else {
+                        Copy(PAREN_OFFSET(recursed_depth - 1),
+                             PAREN_OFFSET(recursed_depth),
+                             RExC_study_chunk_recursed_bytes, U8);
+                    }
+                    /* we havent recursed into this paren yet, so recurse into it */
+                    DEBUG_STUDYDATA("gosub-set", data, depth, is_inf, min, stopmin, delta);
+                    PAREN_SET(recursed_depth, paren);
+                    my_recursed_depth= recursed_depth + 1;
+                } else {
+                    DEBUG_STUDYDATA("gosub-inf", data, depth, is_inf, min, stopmin, delta);
+                    /* some form of infinite recursion, assume infinite length
+                     * */
+                    if (flags & SCF_DO_SUBSTR) {
+                        scan_commit(pRExC_state, data, minlenp, is_inf);
+                        data->cur_is_floating = 1;
+                    }
+                    is_inf = is_inf_internal = 1;
+                    if (flags & SCF_DO_STCLASS_OR) /* Allow everything */
+                        ssc_anything(data->start_class);
+                    flags &= ~SCF_DO_STCLASS;
+
+                    start= NULL; /* reset start so we dont recurse later on. */
+                }
+            } else {
+                paren = stopparen;
+                start = scan + 2;
+                end = regnext(scan);
+            }
+            if (start) {
+                scan_frame *newframe;
+                assert(end);
+                if (!RExC_frame_last) {
+                    Newxz(newframe, 1, scan_frame);
+                    SAVEDESTRUCTOR_X(S_unwind_scan_frames, newframe);
+                    RExC_frame_head= newframe;
+                    RExC_frame_count++;
+                } else if (!RExC_frame_last->next_frame) {
+                    Newxz(newframe, 1, scan_frame);
+                    RExC_frame_last->next_frame= newframe;
+                    newframe->prev_frame= RExC_frame_last;
+                    RExC_frame_count++;
+                } else {
+                    newframe= RExC_frame_last->next_frame;
+                }
+                RExC_frame_last= newframe;
+
+                newframe->next_regnode = regnext(scan);
+                newframe->last_regnode = last;
+                newframe->stopparen = stopparen;
+                newframe->prev_recursed_depth = recursed_depth;
+                newframe->this_prev_frame= frame;
+                newframe->in_gosub = (
+                    (frame && frame->in_gosub) || OP(scan) == GOSUB
+                );
+
+                DEBUG_STUDYDATA("frame-new", data, depth, is_inf, min, stopmin, delta);
+                DEBUG_PEEP("fnew", scan, depth, flags);
+
+                frame = newframe;
+                scan =  start;
+                stopparen = paren;
+                last = end;
+                depth = depth + 1;
+                recursed_depth= my_recursed_depth;
+
+                continue;
+            }
+        }
+        else if (REGNODE_TYPE(OP(scan)) == EXACT && ! isEXACTFish(OP(scan))) {
+            SSize_t bytelen = STR_LEN(scan), charlen;
+            UV uc;
+            assert(bytelen);
+            if (UTF) {
+                const U8 * const s = (U8*)STRING(scan);
+                uc = utf8_to_uvchr_buf(s, s + bytelen, NULL);
+                charlen = utf8_length(s, s + bytelen);
+            } else {
+                uc = *((U8*)STRING(scan));
+                charlen = bytelen;
+            }
+            min += charlen;
+            if (flags & SCF_DO_SUBSTR) { /* Update longest substr. */
+                /* The code below prefers earlier match for fixed
+                   offset, later match for variable offset.  */
+                if (data->last_end == -1) { /* Update the start info. */
+                    data->last_start_min = data->pos_min;
+                    data->last_start_max =
+                        is_inf ? OPTIMIZE_INFTY
+                        : (data->pos_delta > OPTIMIZE_INFTY - data->pos_min)
+                            ? OPTIMIZE_INFTY : data->pos_min + data->pos_delta;
+                }
+                sv_catpvn(data->last_found, STRING(scan), bytelen);
+                if (UTF)
+                    SvUTF8_on(data->last_found);
+                {
+                    SV * const sv = data->last_found;
+                    MAGIC * const mg = SvUTF8(sv) && SvMAGICAL(sv) ?
+                        mg_find(sv, PERL_MAGIC_utf8) : NULL;
+                    if (mg && mg->mg_len >= 0)
+                        mg->mg_len += charlen;
+                }
+                data->last_end = data->pos_min + charlen;
+                data->pos_min += charlen; /* As in the first entry. */
+                data->flags &= ~SF_BEFORE_EOL;
+            }
+
+            /* ANDing the code point leaves at most it, and not in locale, and
+             * can't match null string */
+            if (flags & SCF_DO_STCLASS_AND) {
+                ssc_cp_and(data->start_class, uc);
+                ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
+                ssc_clear_locale(data->start_class);
+            }
+            else if (flags & SCF_DO_STCLASS_OR) {
+                ssc_add_cp(data->start_class, uc);
+                ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+
+                /* See commit msg 749e076fceedeb708a624933726e7989f2302f6a */
+                ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
+            }
+            flags &= ~SCF_DO_STCLASS;
+            DEBUG_STUDYDATA("end EXACT", data, depth, is_inf, min, stopmin, delta);
+        }
+        else if (REGNODE_TYPE(OP(scan)) == EXACT) {
+            /* But OP != EXACT!, so is EXACTFish */
+            SSize_t bytelen = STR_LEN(scan), charlen;
+            const U8 * s = (U8*)STRING(scan);
+
+            /* Replace a length 1 ASCII fold pair node with an ANYOFM node,
+             * with the mask set to the complement of the bit that differs
+             * between upper and lower case, and the lowest code point of the
+             * pair (which the '&' forces) */
+            if (     bytelen == 1
+                &&   isALPHA_A(*s)
+                &&  (         OP(scan) == EXACTFAA
+                     || (     OP(scan) == EXACTFU
+                         && ! HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(*s)))
+                &&   mutate_ok
+            ) {
+                U8 mask = ~ ('A' ^ 'a'); /* These differ in just one bit */
+
+                OP(scan) = ANYOFM;
+                ARG1u_SET(scan, *s & mask);
+                FLAGS(scan) = mask;
+                /* We're not EXACTFish any more, so restudy.
+                 * Search for "restudy" in this file to find
+                 * a comment with details. */
+                continue;
+            }
+
+            /* Search for fixed substrings supports EXACT only. */
+            if (flags & SCF_DO_SUBSTR) {
+                assert(data);
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+            }
+            charlen = UTF ? (SSize_t) utf8_length(s, s + bytelen) : bytelen;
+            if (unfolded_multi_char) {
+                RExC_seen |= REG_UNFOLDED_MULTI_SEEN;
+            }
+            min += charlen - min_subtract;
+            assert (min >= 0);
+            if ((SSize_t)min_subtract < OPTIMIZE_INFTY
+                && delta < OPTIMIZE_INFTY - (SSize_t)min_subtract
+            ) {
+                delta += min_subtract;
+            } else {
+                delta = OPTIMIZE_INFTY;
+            }
+            if (flags & SCF_DO_SUBSTR) {
+                data->pos_min += charlen - min_subtract;
+                if (data->pos_min < 0) {
+                    data->pos_min = 0;
+                }
+                if ((SSize_t)min_subtract < OPTIMIZE_INFTY
+                    && data->pos_delta < OPTIMIZE_INFTY - (SSize_t)min_subtract
+                ) {
+                    data->pos_delta += min_subtract;
+                } else {
+                    data->pos_delta = OPTIMIZE_INFTY;
+                }
+                if (min_subtract) {
+                    data->cur_is_floating = 1; /* float */
+                }
+            }
+
+            if (flags & SCF_DO_STCLASS) {
+                SV* EXACTF_invlist = make_exactf_invlist(pRExC_state, scan);
+
+                assert(EXACTF_invlist);
+                if (flags & SCF_DO_STCLASS_AND) {
+                    if (OP(scan) != EXACTFL)
+                        ssc_clear_locale(data->start_class);
+                    ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
+                    ANYOF_POSIXL_ZERO(data->start_class);
+                    ssc_intersection(data->start_class, EXACTF_invlist, FALSE);
+                }
+                else {  /* SCF_DO_STCLASS_OR */
+                    ssc_union(data->start_class, EXACTF_invlist, FALSE);
+                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+
+                    /* See commit msg 749e076fceedeb708a624933726e7989f2302f6a */
+                    ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
+                }
+                flags &= ~SCF_DO_STCLASS;
+                SvREFCNT_dec(EXACTF_invlist);
+            }
+            DEBUG_STUDYDATA("end EXACTish", data, depth, is_inf, min, stopmin, delta);
+        }
+        else if (REGNODE_VARIES(OP(scan))) {
+            SSize_t mincount, maxcount, minnext, deltanext, pos_before = 0;
+            I32 fl = 0;
+            U32 f = flags;
+            regnode * const oscan = scan;
+            regnode_ssc this_class;
+            regnode_ssc *oclass = NULL;
+            I32 next_is_eval = 0;
+
+            switch (REGNODE_TYPE(OP(scan))) {
+            case WHILEM:                /* End of (?:...)* . */
+                scan = REGNODE_AFTER(scan);
+                goto finish;
+            case PLUS:
+                if (flags & (SCF_DO_SUBSTR | SCF_DO_STCLASS)) {
+                    next = REGNODE_AFTER(scan);
+                    if (   (     REGNODE_TYPE(OP(next)) == EXACT
+                            && ! isEXACTFish(OP(next)))
+                        || (flags & SCF_DO_STCLASS))
+                    {
+                        mincount = 1;
+                        maxcount = REG_INFTY;
+                        next = regnext(scan);
+                        scan = REGNODE_AFTER(scan);
+                        goto do_curly;
+                    }
+                }
+                if (flags & SCF_DO_SUBSTR)
+                    data->pos_min++;
+                /* This will bypass the formal 'min += minnext * mincount'
+                 * calculation in the do_curly path, so assumes min width
+                 * of the PLUS payload is exactly one. */
+                min++;
+                /* FALLTHROUGH */
+            case STAR:
+                next = REGNODE_AFTER(scan);
+
+                /* This temporary node can now be turned into EXACTFU, and
+                 * must, as regexec.c doesn't handle it */
+                if (OP(next) == EXACTFU_S_EDGE && mutate_ok) {
+                    OP(next) = EXACTFU;
+                }
+
+                if (     STR_LEN(next) == 1
+                    &&   isALPHA_A(* STRING(next))
+                    && (         OP(next) == EXACTFAA
+                        || (     OP(next) == EXACTFU
+                            && ! HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE(* STRING(next))))
+                    &&   mutate_ok
+                ) {
+                    /* These differ in just one bit */
+                    U8 mask = ~ ('A' ^ 'a');
+
+                    assert(isALPHA_A(* STRING(next)));
+
+                    /* Then replace it by an ANYOFM node, with
+                    * the mask set to the complement of the
+                    * bit that differs between upper and lower
+                    * case, and the lowest code point of the
+                    * pair (which the '&' forces) */
+                    OP(next) = ANYOFM;
+                    ARG1u_SET(next, *STRING(next) & mask);
+                    FLAGS(next) = mask;
+                }
+
+                if (flags & SCF_DO_STCLASS) {
+                    mincount = 0;
+                    maxcount = REG_INFTY;
+                    next = regnext(scan);
+                    scan = REGNODE_AFTER(scan);
+                    goto do_curly;
+                }
+                if (flags & SCF_DO_SUBSTR) {
+                    scan_commit(pRExC_state, data, minlenp, is_inf);
+                    /* Cannot extend fixed substrings */
+                    data->cur_is_floating = 1; /* float */
+                }
+                is_inf = is_inf_internal = 1;
+                scan = regnext(scan);
+                goto optimize_curly_tail;
+            case CURLY:
+                if (stopparen>0 && (OP(scan)==CURLYN || OP(scan)==CURLYM)
+                    && (FLAGS(scan) == stopparen))
+                {
+                    mincount = 1;
+                    maxcount = 1;
+                } else {
+                    mincount = ARG1i(scan);
+                    maxcount = ARG2i(scan);
+                }
+                next = regnext(scan);
+                if (OP(scan) == CURLYX) {
+                    I32 lp = (data ? *(data->last_closep) : 0);
+                    FLAGS(scan) = ((lp <= (I32)U8_MAX) ? (U8)lp : U8_MAX);
+                }
+                scan = REGNODE_AFTER(scan);
+                next_is_eval = (OP(scan) == EVAL);
+              do_curly:
+                if (flags & SCF_DO_SUBSTR) {
+                    if (mincount == 0)
+                        scan_commit(pRExC_state, data, minlenp, is_inf);
+                    /* Cannot extend fixed substrings */
+                    pos_before = data->pos_min;
+                }
+                if (data) {
+                    fl = data->flags;
+                    data->flags &= ~(SF_HAS_PAR|SF_IN_PAR|SF_HAS_EVAL);
+                    if (is_inf)
+                        data->flags |= SF_IS_INF;
+                }
+                if (flags & SCF_DO_STCLASS) {
+                    ssc_init(pRExC_state, &this_class);
+                    oclass = data->start_class;
+                    data->start_class = &this_class;
+                    f |= SCF_DO_STCLASS_AND;
+                    f &= ~SCF_DO_STCLASS_OR;
+                }
+                /* Exclude from super-linear cache processing any {n,m}
+                   regops for which the combination of input pos and regex
+                   pos is not enough information to determine if a match
+                   will be possible.
+
+                   For example, in the regex /foo(bar\s*){4,8}baz/ with the
+                   regex pos at the \s*, the prospects for a match depend not
+                   only on the input position but also on how many (bar\s*)
+                   repeats into the {4,8} we are. */
+               if ((mincount > 1) || (maxcount > 1 && maxcount != REG_INFTY))
+                    f &= ~SCF_WHILEM_VISITED_POS;
+
+                /* This will finish on WHILEM, setting scan, or on NULL: */
+                /* recurse study_chunk() on loop bodies */
+                minnext = study_chunk(pRExC_state, &scan, minlenp, &deltanext,
+                                  last, data, stopparen, recursed_depth, NULL,
+                                  (mincount == 0
+                                   ? (f & ~SCF_DO_SUBSTR)
+                                   : f)
+                                  , depth+1, mutate_ok);
+
+                if (data && data->flags & SCF_SEEN_ACCEPT) {
+                    if (mincount > 1)
+                        mincount = 1;
+                }
+
+                if (flags & SCF_DO_STCLASS)
+                    data->start_class = oclass;
+                if (mincount == 0 || minnext == 0) {
+                    if (flags & SCF_DO_STCLASS_OR) {
+                        ssc_or(pRExC_state, data->start_class, (regnode_charclass *) &this_class);
+                    }
+                    else if (flags & SCF_DO_STCLASS_AND) {
+                        /* Switch to OR mode: cache the old value of
+                         * data->start_class */
+                        INIT_AND_WITHP;
+                        StructCopy(data->start_class, and_withp, regnode_ssc);
+                        flags &= ~SCF_DO_STCLASS_AND;
+                        StructCopy(&this_class, data->start_class, regnode_ssc);
+                        flags |= SCF_DO_STCLASS_OR;
+                        ANYOF_FLAGS(data->start_class)
+                                                |= SSC_MATCHES_EMPTY_STRING;
+                    }
+                } else {                /* Non-zero len */
+                    if (flags & SCF_DO_STCLASS_OR) {
+                        ssc_or(pRExC_state, data->start_class, (regnode_charclass *) &this_class);
+                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+                    }
+                    else if (flags & SCF_DO_STCLASS_AND)
+                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &this_class);
+                    flags &= ~SCF_DO_STCLASS;
+                }
+                if (!scan)              /* It was not CURLYX, but CURLY. */
+                    scan = next;
+                if (((flags & (SCF_TRIE_DOING_RESTUDY|SCF_DO_SUBSTR))==SCF_DO_SUBSTR)
+                    /* ? quantifier ok, except for (?{ ... }) */
+                    && (next_is_eval || !(mincount == 0 && maxcount == 1))
+                    && (minnext == 0) && (deltanext == 0)
+                    && data && !(data->flags & (SF_HAS_PAR|SF_IN_PAR))
+                    && maxcount <= REG_INFTY/3) /* Complement check for big
+                                                   count */
+                {
+                    _WARN_HELPER(RExC_precomp_end, packWARN(WARN_REGEXP),
+                        Perl_ck_warner(aTHX_ packWARN(WARN_REGEXP),
+                            "Quantifier unexpected on zero-length expression "
+                            "in regex m/%" UTF8f "/",
+                             UTF8fARG(UTF, RExC_precomp_end - RExC_precomp,
+                                  RExC_precomp)));
+                }
+
+                if ( ( minnext > 0 && mincount >= SSize_t_MAX / minnext )
+                    || min >= SSize_t_MAX - minnext * mincount )
+                {
+                    FAIL("Regexp out of space");
+                }
+
+                min += minnext * mincount;
+                is_inf_internal |= deltanext == OPTIMIZE_INFTY
+                         || (maxcount == REG_INFTY && minnext + deltanext > 0);
+                is_inf |= is_inf_internal;
+                if (is_inf) {
+                    delta = OPTIMIZE_INFTY;
+                } else {
+                    delta += (minnext + deltanext) * maxcount
+                             - minnext * mincount;
+                }
+
+                if (data && data->flags & SCF_SEEN_ACCEPT) {
+                    if (flags & SCF_DO_SUBSTR) {
+                        scan_commit(pRExC_state, data, minlenp, is_inf);
+                        flags &= ~SCF_DO_SUBSTR;
+                    }
+                    if (stopmin > min)
+                        stopmin = min;
+                    DEBUG_STUDYDATA("after-whilem accept", data, depth, is_inf, min, stopmin, delta);
+                }
+                DEBUG_STUDYDATA("PRE CURLYX_TO_CURLYN", data, depth, is_inf, min, stopmin, delta);
+                /* Try powerful optimization CURLYX => CURLYN. */
+                if ( RE_OPTIMIZE_CURLYX_TO_CURLYN
+                     && OP(oscan) == CURLYX
+                     && data
+                     && !(RExC_seen & REG_PESSIMIZE_SEEN) /* XXX: for now disable whenever a
+                                                            non optimistic eval is seen
+                                                            anywhere.*/
+                     && ( data->flags & SF_IN_PAR ) /* has parens */
+                     && !deltanext
+                     && minnext == 1
+                     && mutate_ok
+                ) {
+                    DEBUG_STUDYDATA("CURLYX_TO_CURLYN", data, depth, is_inf, min, stopmin, delta);
+                    /* Try to optimize to CURLYN.  */
+                    regnode *nxt = REGNODE_AFTER_type(oscan, tregnode_CURLYX);
+                    regnode * const nxt1 = nxt;
+#ifdef DEBUGGING
+                    regnode *nxt2;
+#endif
+                    /* Skip open. */
+                    nxt = regnext(nxt);
+                    if (!REGNODE_SIMPLE(OP(nxt))
+                        && !(REGNODE_TYPE(OP(nxt)) == EXACT
+                             && STR_LEN(nxt) == 1))
+                        goto nogo;
+#ifdef DEBUGGING
+                    nxt2 = nxt;
+#endif
+                    nxt = regnext(nxt);
+                    if (OP(nxt) != CLOSE)
+                        goto nogo;
+                    if (RExC_open_parens) {
+
+                        /*open->CURLYM*/
+                        RExC_open_parens[PARNO(nxt1)] = REGNODE_OFFSET(oscan);
+
+                        /*close->while*/
+                        RExC_close_parens[PARNO(nxt1)] = REGNODE_OFFSET(nxt) + 2;
+                    }
+                    /* Now we know that nxt2 is the only contents: */
+                    FLAGS(oscan) = (U8)PARNO(nxt);
+                    OP(oscan) = CURLYN;
+                    OP(nxt1) = NOTHING; /* was OPEN. */
+
+#ifdef DEBUGGING
+                    OP(nxt1 + 1) = OPTIMIZED; /* was count. */
+                    NEXT_OFF(nxt1+ 1) = 0; /* just for consistency. */
+                    NEXT_OFF(nxt2) = 0; /* just for consistency with CURLY. */
+                    OP(nxt) = OPTIMIZED;        /* was CLOSE. */
+                    OP(nxt + 1) = OPTIMIZED; /* was count. */
+                    NEXT_OFF(nxt+ 1) = 0; /* just for consistency. */
+#endif
+                }
+              nogo:
+
+                DEBUG_STUDYDATA("PRE CURLYX_TO_CURLYM", data, depth, is_inf, min, stopmin, delta);
+
+                /* Try optimization CURLYX => CURLYM. */
+                if ( RE_OPTIMIZE_CURLYX_TO_CURLYM
+                     && OP(oscan) == CURLYX
+                     && data
+                     && !(RExC_seen & REG_PESSIMIZE_SEEN) /* XXX: for now disable whenever a
+                                                            non optimistic eval is seen
+                                                            anywhere.*/
+                     && !(data->flags & SF_HAS_PAR) /* no parens! */
+                     && !deltanext     /* atom is fixed width */
+                     && minnext != 0  /* CURLYM can't handle zero width */
+                         /* Nor characters whose fold at run-time may be
+                          * multi-character */
+                     && !(RExC_seen & REG_UNFOLDED_MULTI_SEEN)
+                     && mutate_ok
+                ) {
+                    DEBUG_STUDYDATA("CURLYX_TO_CURLYM", data, depth, is_inf, min, stopmin, delta);
+                    /* XXXX How to optimize if data == 0? */
+                    /* Optimize to a simpler form.  */
+                    regnode *nxt = REGNODE_AFTER_type(oscan, tregnode_CURLYX); /* OPEN */
+                    regnode *nxt2;
+
+                    OP(oscan) = CURLYM;
+                    while ( (nxt2 = regnext(nxt)) /* skip over embedded stuff*/
+                            && (OP(nxt2) != WHILEM))
+                        nxt = nxt2;
+                    OP(nxt2)  = SUCCEED; /* Whas WHILEM */
+                    /* Need to optimize away parenths. */
+                    if ((data->flags & SF_IN_PAR) && OP(nxt) == CLOSE) {
+                        /* Set the parenth number.  */
+                        /* note that we have changed the type of oscan to CURLYM here */
+                        regnode *nxt1 = REGNODE_AFTER_type(oscan, tregnode_CURLYM); /* OPEN*/
+
+                        FLAGS(oscan) = (U8)PARNO(nxt);
+                        if (RExC_open_parens) {
+                             /*open->CURLYM*/
+                            RExC_open_parens[PARNO(nxt1)] = REGNODE_OFFSET(oscan);
+
+                            /*close->NOTHING*/
+                            RExC_close_parens[PARNO(nxt1)] = REGNODE_OFFSET(nxt2)
+                                                         + 1;
+                        }
+                        OP(nxt1) = OPTIMIZED;   /* was OPEN. */
+                        OP(nxt) = OPTIMIZED;    /* was CLOSE. */
+
+#ifdef DEBUGGING
+                        OP(nxt1 + 1) = OPTIMIZED; /* was count. */
+                        OP(nxt + 1) = OPTIMIZED; /* was count. */
+                        NEXT_OFF(nxt1 + 1) = 0; /* just for consistency. */
+                        NEXT_OFF(nxt + 1) = 0; /* just for consistency. */
+#endif
+#if 0
+                        while ( nxt1 && (OP(nxt1) != WHILEM)) {
+                            regnode *nnxt = regnext(nxt1);
+                            if (nnxt == nxt) {
+                                if (REGNODE_OFF_BY_ARG(OP(nxt1)))
+                                    ARG1u_SET(nxt1, nxt2 - nxt1);
+                                else if (nxt2 - nxt1 < U16_MAX)
+                                    NEXT_OFF(nxt1) = nxt2 - nxt1;
+                                else
+                                    OP(nxt) = NOTHING;  /* Cannot beautify */
+                            }
+                            nxt1 = nnxt;
+                        }
+#endif
+                        /* Optimize again: */
+                        /* recurse study_chunk() on optimised CURLYX => CURLYM */
+                        study_chunk(pRExC_state, &nxt1, minlenp, &deltanext, nxt,
+                                    NULL, stopparen, recursed_depth, NULL, 0,
+                                    depth+1, mutate_ok);
+                    }
+                    else
+                        FLAGS(oscan) = 0;
+                }
+                else if ((OP(oscan) == CURLYX)
+                         && (flags & SCF_WHILEM_VISITED_POS)
+                         /* See the comment on a similar expression above.
+                            However, this time it's not a subexpression
+                            we care about, but the expression itself. */
+                         && (maxcount == REG_INFTY)
+                         && data) {
+                    /* This stays as CURLYX, we can put the count/of pair. */
+                    /* Find WHILEM (as in regexec.c) */
+                    regnode *nxt = oscan + NEXT_OFF(oscan);
+
+                    if (OP(REGNODE_BEFORE(nxt)) == NOTHING) /* LONGJMP */
+                        nxt += ARG1u(nxt);
+                    nxt = REGNODE_BEFORE(nxt);
+                    if (FLAGS(nxt) & 0xf) {
+                        /* we've already set whilem count on this node */
+                    } else if (++data->whilem_c < 16) {
+                        assert(data->whilem_c <= RExC_whilem_seen);
+                        FLAGS(nxt) = (U8)(data->whilem_c
+                            | (RExC_whilem_seen << 4)); /* On WHILEM */
+                    }
+                }
+                if (data && fl & (SF_HAS_PAR|SF_IN_PAR))
+                    pars++;
+                if (flags & SCF_DO_SUBSTR) {
+                    SV *last_str = NULL;
+                    STRLEN last_chrs = 0;
+                    int counted = mincount != 0;
+
+                    if (data->last_end > 0 && mincount != 0) { /* Ends with a
+                                                                  string. */
+                        SSize_t b = pos_before >= data->last_start_min
+                            ? pos_before : data->last_start_min;
+                        STRLEN l;
+                        const char * const s = SvPV_const(data->last_found, l);
+                        SSize_t old = b - data->last_start_min;
+                        assert(old >= 0);
+
+                        if (UTF)
+                            old = utf8_hop_forward((U8*)s, old,
+                                               (U8 *) SvEND(data->last_found))
+                                - (U8*)s;
+                        l -= old;
+                        /* Get the added string: */
+                        last_str = newSVpvn_utf8(s  + old, l, UTF);
+                        last_chrs = UTF ? utf8_length((U8*)(s + old),
+                                            (U8*)(s + old + l)) : l;
+                        if (deltanext == 0 && pos_before == b) {
+                            /* What was added is a constant string */
+                            if (mincount > 1) {
+
+                                SvGROW(last_str, (mincount * l) + 1);
+                                repeatcpy(SvPVX(last_str) + l,
+                                          SvPVX_const(last_str), l,
+                                          mincount - 1);
+                                SvCUR_set(last_str, SvCUR(last_str) * mincount);
+                                /* Add additional parts. */
+                                SvCUR_set(data->last_found,
+                                          SvCUR(data->last_found) - l);
+                                sv_catsv(data->last_found, last_str);
+                                {
+                                    SV * sv = data->last_found;
+                                    MAGIC *mg =
+                                        SvUTF8(sv) && SvMAGICAL(sv) ?
+                                        mg_find(sv, PERL_MAGIC_utf8) : NULL;
+                                    if (mg && mg->mg_len >= 0)
+                                        mg->mg_len += last_chrs * (mincount-1);
+                                }
+                                last_chrs *= mincount;
+                                data->last_end += l * (mincount - 1);
+                            }
+                        } else {
+                            /* start offset must point into the last copy */
+                            data->last_start_min += minnext * (mincount - 1);
+                            data->last_start_max =
+                              is_inf
+                               ? OPTIMIZE_INFTY
+                               : data->last_start_max +
+                                 (maxcount - 1) * (minnext + data->pos_delta);
+                        }
+                    }
+                    /* It is counted once already... */
+                    data->pos_min += minnext * (mincount - counted);
+#if 0
+    Perl_re_printf( aTHX_  "counted=%" UVuf " deltanext=%" UVuf
+                              " OPTIMIZE_INFTY=%" UVuf " minnext=%" UVuf
+                              " maxcount=%" UVuf " mincount=%" UVuf
+                              " data->pos_delta=%" UVuf "\n",
+        (UV)counted, (UV)deltanext, (UV)OPTIMIZE_INFTY, (UV)minnext,
+        (UV)maxcount, (UV)mincount, (UV)data->pos_delta);
+    if (deltanext != OPTIMIZE_INFTY)
+        Perl_re_printf( aTHX_  "LHS=%" UVuf " RHS=%" UVuf "\n",
+            (UV)(-counted * deltanext + (minnext + deltanext) * maxcount
+            - minnext * mincount), (UV)(OPTIMIZE_INFTY - data->pos_delta));
+#endif
+                    if (deltanext == OPTIMIZE_INFTY
+                        || data->pos_delta == OPTIMIZE_INFTY
+                        || -counted * deltanext + (minnext + deltanext) * maxcount - minnext * mincount >= OPTIMIZE_INFTY - data->pos_delta)
+                        data->pos_delta = OPTIMIZE_INFTY;
+                    else
+                        data->pos_delta += - counted * deltanext +
+                        (minnext + deltanext) * maxcount - minnext * mincount;
+                    if (mincount != maxcount) {
+                         /* Cannot extend fixed substrings found inside
+                            the group.  */
+                        scan_commit(pRExC_state, data, minlenp, is_inf);
+                        if (mincount && last_str) {
+                            SV * const sv = data->last_found;
+                            MAGIC * const mg = SvUTF8(sv) && SvMAGICAL(sv) ?
+                                mg_find(sv, PERL_MAGIC_utf8) : NULL;
+
+                            if (mg)
+                                mg->mg_len = -1;
+                            sv_setsv(sv, last_str);
+                            data->last_end = data->pos_min;
+                            data->last_start_min = data->pos_min - last_chrs;
+                            data->last_start_max = is_inf
+                                ? OPTIMIZE_INFTY
+                                : data->pos_min + data->pos_delta - last_chrs;
+                        }
+                        data->cur_is_floating = 1; /* float */
+                    }
+                    SvREFCNT_dec(last_str);
+                }
+                if (data && (fl & SF_HAS_EVAL))
+                    data->flags |= SF_HAS_EVAL;
+              optimize_curly_tail:
+                rck_elide_nothing(oscan);
+                continue;
+
+            default:
+                Perl_croak(aTHX_ "panic: unexpected varying REx opcode %d",
+                                                                    OP(scan));
+            case REF:
+            case CLUMP:
+                if (flags & SCF_DO_SUBSTR) {
+                    /* Cannot expect anything... */
+                    scan_commit(pRExC_state, data, minlenp, is_inf);
+                    data->cur_is_floating = 1; /* float */
+                }
+                is_inf = is_inf_internal = 1;
+                if (flags & SCF_DO_STCLASS_OR) {
+                    if (OP(scan) == CLUMP) {
+                        /* Actually is any start char, but very few code points
+                         * aren't start characters */
+                        ssc_match_all_cp(data->start_class);
+                    }
+                    else {
+                        ssc_anything(data->start_class);
+                    }
+                }
+                flags &= ~SCF_DO_STCLASS;
+                break;
+            }
+        }
+        else if (OP(scan) == LNBREAK) {
+            if (flags & SCF_DO_STCLASS) {
+                if (flags & SCF_DO_STCLASS_AND) {
+                    ssc_intersection(data->start_class,
+                                    PL_XPosix_ptrs[CC_VERTSPACE_], FALSE);
+                    ssc_clear_locale(data->start_class);
+                    ANYOF_FLAGS(data->start_class)
+                                                &= ~SSC_MATCHES_EMPTY_STRING;
+                }
+                else if (flags & SCF_DO_STCLASS_OR) {
+                    ssc_union(data->start_class,
+                              PL_XPosix_ptrs[CC_VERTSPACE_],
+                              FALSE);
+                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+
+                    /* See commit msg for
+                     * 749e076fceedeb708a624933726e7989f2302f6a */
+                    ANYOF_FLAGS(data->start_class)
+                                                &= ~SSC_MATCHES_EMPTY_STRING;
+                }
+                flags &= ~SCF_DO_STCLASS;
+            }
+            min++;
+            if (delta != OPTIMIZE_INFTY)
+                delta++;    /* Because of the 2 char string cr-lf */
+            if (flags & SCF_DO_SUBSTR) {
+                /* Cannot expect anything... */
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+                data->pos_min += 1;
+                if (data->pos_delta != OPTIMIZE_INFTY) {
+                    data->pos_delta += 1;
+                }
+                data->cur_is_floating = 1; /* float */
+            }
+        }
+        else if (REGNODE_SIMPLE(OP(scan))) {
+
+            if (flags & SCF_DO_SUBSTR) {
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+                data->pos_min++;
+            }
+            min++;
+            if (flags & SCF_DO_STCLASS) {
+                bool invert = 0;
+                SV* my_invlist = NULL;
+                U8 namedclass;
+
+                /* See commit msg 749e076fceedeb708a624933726e7989f2302f6a */
+                ANYOF_FLAGS(data->start_class) &= ~SSC_MATCHES_EMPTY_STRING;
+
+                /* Some of the logic below assumes that switching
+                   locale on will only add false positives. */
+                switch (OP(scan)) {
+
+                default:
+#ifdef DEBUGGING
+                   Perl_croak(aTHX_ "panic: unexpected simple REx opcode %d",
+                                                                     OP(scan));
+#endif
+                case SANY:
+                    if (flags & SCF_DO_STCLASS_OR) /* Allow everything */
+                        ssc_match_all_cp(data->start_class);
+                    break;
+
+                case REG_ANY:
+                    {
+                        SV* REG_ANY_invlist = _new_invlist(2);
+                        REG_ANY_invlist = add_cp_to_invlist(REG_ANY_invlist,
+                                                            '\n');
+                        if (flags & SCF_DO_STCLASS_OR) {
+                            ssc_union(data->start_class,
+                                      REG_ANY_invlist,
+                                      TRUE /* TRUE => invert, hence all but \n
+                                            */
+                                      );
+                        }
+                        else if (flags & SCF_DO_STCLASS_AND) {
+                            ssc_intersection(data->start_class,
+                                             REG_ANY_invlist,
+                                             TRUE  /* TRUE => invert */
+                                             );
+                            ssc_clear_locale(data->start_class);
+                        }
+                        SvREFCNT_dec_NN(REG_ANY_invlist);
+                    }
+                    break;
+
+                case ANYOFD:
+                case ANYOFL:
+                case ANYOFPOSIXL:
+                case ANYOFH:
+                case ANYOFHb:
+                case ANYOFHr:
+                case ANYOFHs:
+                case ANYOF:
+                    if (flags & SCF_DO_STCLASS_AND)
+                        ssc_and(pRExC_state, data->start_class,
+                                (regnode_charclass *) scan);
+                    else
+                        ssc_or(pRExC_state, data->start_class,
+                                                          (regnode_charclass *) scan);
+                    break;
+
+                case ANYOFHbbm:
+                  {
+                    SV* cp_list = get_ANYOFHbbm_contents(scan);
+
+                    if (flags & SCF_DO_STCLASS_OR) {
+                        ssc_union(data->start_class, cp_list, invert);
+                    }
+                    else if (flags & SCF_DO_STCLASS_AND) {
+                        ssc_intersection(data->start_class, cp_list, invert);
+                    }
+
+                    SvREFCNT_dec_NN(cp_list);
+                    break;
+                  }
+
+                case NANYOFM: /* NANYOFM already contains the inversion of the
+                                 input ANYOF data, so, unlike things like
+                                 NPOSIXA, don't change 'invert' to TRUE */
+                    /* FALLTHROUGH */
+                case ANYOFM:
+                  {
+                    SV* cp_list = get_ANYOFM_contents(scan);
+
+                    if (flags & SCF_DO_STCLASS_OR) {
+                        ssc_union(data->start_class, cp_list, invert);
+                    }
+                    else if (flags & SCF_DO_STCLASS_AND) {
+                        ssc_intersection(data->start_class, cp_list, invert);
+                    }
+
+                    SvREFCNT_dec_NN(cp_list);
+                    break;
+                  }
+
+                case ANYOFR:
+                case ANYOFRb:
+                  {
+                    SV* cp_list = NULL;
+
+                    cp_list = _add_range_to_invlist(cp_list,
+                                        ANYOFRbase(scan),
+                                        ANYOFRbase(scan) + ANYOFRdelta(scan));
+
+                    if (flags & SCF_DO_STCLASS_OR) {
+                        ssc_union(data->start_class, cp_list, invert);
+                    }
+                    else if (flags & SCF_DO_STCLASS_AND) {
+                        ssc_intersection(data->start_class, cp_list, invert);
+                    }
+
+                    SvREFCNT_dec_NN(cp_list);
+                    break;
+                  }
+
+                case NPOSIXL:
+                    invert = 1;
+                    /* FALLTHROUGH */
+
+                case POSIXL:
+                    namedclass = classnum_to_namedclass(FLAGS(scan)) + invert;
+                    if (flags & SCF_DO_STCLASS_AND) {
+                        bool was_there = cBOOL(
+                                          ANYOF_POSIXL_TEST(data->start_class,
+                                                                 namedclass));
+                        ANYOF_POSIXL_ZERO(data->start_class);
+                        if (was_there) {    /* Do an AND */
+                            ANYOF_POSIXL_SET(data->start_class, namedclass);
+                        }
+                        /* No individual code points can now match */
+                        data->start_class->invlist
+                                                = sv_2mortal(_new_invlist(0));
+                    }
+                    else {
+                        int complement = namedclass + ((invert) ? -1 : 1);
+
+                        assert(flags & SCF_DO_STCLASS_OR);
+
+                        /* If the complement of this class was already there,
+                         * the result is that they match all code points,
+                         * (\d + \D == everything).  Remove the classes from
+                         * future consideration.  Locale is not relevant in
+                         * this case */
+                        if (ANYOF_POSIXL_TEST(data->start_class, complement)) {
+                            ssc_match_all_cp(data->start_class);
+                            ANYOF_POSIXL_CLEAR(data->start_class, namedclass);
+                            ANYOF_POSIXL_CLEAR(data->start_class, complement);
+                        }
+                        else {  /* The usual case; just add this class to the
+                                   existing set */
+                            ANYOF_POSIXL_SET(data->start_class, namedclass);
+                        }
+                    }
+                    break;
+
+                case NPOSIXA:   /* For these, we always know the exact set of
+                                   what's matched */
+                    invert = 1;
+                    /* FALLTHROUGH */
+                case POSIXA:
+                    my_invlist = invlist_clone(PL_Posix_ptrs[FLAGS(scan)], NULL);
+                    goto join_posix_and_ascii;
+
+                case NPOSIXD:
+                case NPOSIXU:
+                    invert = 1;
+                    /* FALLTHROUGH */
+                case POSIXD:
+                case POSIXU:
+                    my_invlist = invlist_clone(PL_XPosix_ptrs[FLAGS(scan)], NULL);
+
+                    /* NPOSIXD matches all upper Latin1 code points unless the
+                     * target string being matched is UTF-8, which is
+                     * unknowable until match time.  Since we are going to
+                     * invert, we want to get rid of all of them so that the
+                     * inversion will match all */
+                    if (OP(scan) == NPOSIXD) {
+                        _invlist_subtract(my_invlist, PL_UpperLatin1,
+                                          &my_invlist);
+                    }
+
+                  join_posix_and_ascii:
+
+                    if (flags & SCF_DO_STCLASS_AND) {
+                        ssc_intersection(data->start_class, my_invlist, invert);
+                        ssc_clear_locale(data->start_class);
+                    }
+                    else {
+                        assert(flags & SCF_DO_STCLASS_OR);
+                        ssc_union(data->start_class, my_invlist, invert);
+                    }
+                    SvREFCNT_dec(my_invlist);
+                }
+                if (flags & SCF_DO_STCLASS_OR)
+                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+                flags &= ~SCF_DO_STCLASS;
+            }
+        }
+        else if (REGNODE_TYPE(OP(scan)) == EOL && flags & SCF_DO_SUBSTR) {
+            data->flags |= (OP(scan) == MEOL
+                            ? SF_BEFORE_MEOL
+                            : SF_BEFORE_SEOL);
+            scan_commit(pRExC_state, data, minlenp, is_inf);
+
+        }
+        else if (  REGNODE_TYPE(OP(scan)) == BRANCHJ
+                 /* Lookbehind, or need to calculate parens/evals/stclass: */
+                   && (FLAGS(scan) || data || (flags & SCF_DO_STCLASS))
+                   && (OP(scan) == IFMATCH || OP(scan) == UNLESSM))
+        {
+            if ( !PERL_ENABLE_POSITIVE_ASSERTION_STUDY
+                || OP(scan) == UNLESSM )
+            {
+                /* Negative Lookahead/lookbehind
+                   In this case we can't do fixed string optimisation.
+                */
+
+                bool is_positive = OP(scan) == IFMATCH ? 1 : 0;
+                SSize_t deltanext, minnext;
+                SSize_t fake_last_close = 0;
+                regnode *fake_last_close_op = NULL;
+                regnode *cur_last_close_op;
+                regnode *nscan;
+                regnode_ssc intrnl;
+                U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
+
+                StructCopy(&zero_scan_data, &data_fake, scan_data_t);
+                if (data) {
+                    data_fake.whilem_c = data->whilem_c;
+                    data_fake.last_closep = data->last_closep;
+                    data_fake.last_close_opp = data->last_close_opp;
+                }
+                else {
+                    data_fake.last_closep = &fake_last_close;
+                    data_fake.last_close_opp = &fake_last_close_op;
+                }
+
+                /* remember the last_close_op we saw so we can see if
+                 * we are dealing with variable length lookbehind that
+                 * contains capturing buffers, which are considered
+                 * experimental */
+                cur_last_close_op= *(data_fake.last_close_opp);
+
+                data_fake.pos_delta = delta;
+                if ( flags & SCF_DO_STCLASS && !FLAGS(scan)
+                     && OP(scan) == IFMATCH ) { /* Lookahead */
+                    ssc_init(pRExC_state, &intrnl);
+                    data_fake.start_class = &intrnl;
+                    f |= SCF_DO_STCLASS_AND;
+                }
+                if (flags & SCF_WHILEM_VISITED_POS)
+                    f |= SCF_WHILEM_VISITED_POS;
+                next = regnext(scan);
+                nscan = REGNODE_AFTER(scan);
+
+                /* recurse study_chunk() for lookahead body */
+                minnext = study_chunk(pRExC_state, &nscan, minlenp, &deltanext,
+                                      last, &data_fake, stopparen,
+                                      recursed_depth, NULL, f, depth+1,
+                                      mutate_ok);
+
+                if (FLAGS(scan)) {
+                    if (   deltanext < 0
+                        || deltanext > (I32) U8_MAX
+                        || minnext > (I32)U8_MAX
+                        || minnext + deltanext > (I32)U8_MAX)
+                    {
+                        FAIL2("Lookbehind longer than %" UVuf " not implemented",
+                              (UV)U8_MAX);
+                    }
+
+                    /* The 'next_off' field has been repurposed to count the
+                     * additional starting positions to try beyond the initial
+                     * one.  (This leaves it at 0 for non-variable length
+                     * matches to avoid breakage for those not using this
+                     * extension) */
+                    if (deltanext)  {
+                        NEXT_OFF(scan) = deltanext;
+                        if (
+                            /* See a CLOSE op inside this lookbehind? */
+                            cur_last_close_op != *(data_fake.last_close_opp)
+                            /* and not doing restudy. see: restudied */
+                            && !(flags & SCF_TRIE_DOING_RESTUDY)
+                        ) {
+                            /* this is positive variable length lookbehind with
+                             * capture buffers inside of it */
+                            ckWARNexperimental_with_arg(RExC_parse,
+                                WARN_EXPERIMENTAL__VLB,
+                                "Variable length %s lookbehind with capturing is experimental",
+                                is_positive ? "positive" : "negative");
+                        }
+                    }
+                    FLAGS(scan) = (U8)minnext + deltanext;
+                }
+                if (data) {
+                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
+                        pars++;
+                    if (data_fake.flags & SF_HAS_EVAL)
+                        data->flags |= SF_HAS_EVAL;
+                    data->whilem_c = data_fake.whilem_c;
+                }
+                if (f & SCF_DO_STCLASS_AND) {
+                    if (flags & SCF_DO_STCLASS_OR) {
+                        /* OR before, AND after: ideally we would recurse with
+                         * data_fake to get the AND applied by study of the
+                         * remainder of the pattern, and then derecurse;
+                         * *** HACK *** for now just treat as "no information".
+                         * See [perl #56690].
+                         */
+                        ssc_init(pRExC_state, data->start_class);
+                    }  else {
+                        /* AND before and after: combine and continue.  These
+                         * assertions are zero-length, so can match an EMPTY
+                         * string */
+                        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &intrnl);
+                        ANYOF_FLAGS(data->start_class)
+                                                   |= SSC_MATCHES_EMPTY_STRING;
+                    }
+                }
+                DEBUG_STUDYDATA("end LOOKAROUND", data, depth, is_inf, min, stopmin, delta);
+            }
+#if PERL_ENABLE_POSITIVE_ASSERTION_STUDY
+            else {
+                /* Positive Lookahead/lookbehind
+                   In this case we can do fixed string optimisation,
+                   but we must be careful about it. Note in the case of
+                   lookbehind the positions will be offset by the minimum
+                   length of the pattern, something we won't know about
+                   until after the recurse.
+                */
+                SSize_t deltanext, fake_last_close = 0;
+                regnode *last_close_op = NULL;
+                regnode *nscan;
+                regnode_ssc intrnl;
+                U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
+                /* We use SAVEFREEPV so that when the full compile
+                    is finished perl will clean up the allocated
+                    minlens when it's all done. This way we don't
+                    have to worry about freeing them when we know
+                    they wont be used, which would be a pain.
+                 */
+                SSize_t *minnextp;
+                Newx( minnextp, 1, SSize_t );
+                SAVEFREEPV(minnextp);
+
+                if (data) {
+                    StructCopy(data, &data_fake, scan_data_t);
+                    if ((flags & SCF_DO_SUBSTR) && data->last_found) {
+                        f |= SCF_DO_SUBSTR;
+                        if (FLAGS(scan))
+                            scan_commit(pRExC_state, &data_fake, minlenp, is_inf);
+                        data_fake.last_found=newSVsv(data->last_found);
+                    }
+                }
+                else {
+                    data_fake.last_closep = &fake_last_close;
+                    data_fake.last_close_opp = &fake_last_close_opp;
+                }
+                data_fake.flags = 0;
+                data_fake.substrs[0].flags = 0;
+                data_fake.substrs[1].flags = 0;
+                data_fake.pos_delta = delta;
+                if (is_inf)
+                    data_fake.flags |= SF_IS_INF;
+                if ( flags & SCF_DO_STCLASS && !FLAGS(scan)
+                     && OP(scan) == IFMATCH ) { /* Lookahead */
+                    ssc_init(pRExC_state, &intrnl);
+                    data_fake.start_class = &intrnl;
+                    f |= SCF_DO_STCLASS_AND;
+                }
+                if (flags & SCF_WHILEM_VISITED_POS)
+                    f |= SCF_WHILEM_VISITED_POS;
+                next = regnext(scan);
+                nscan = REGNODE_AFTER(scan);
+
+                /* positive lookahead study_chunk() recursion */
+                *minnextp = study_chunk(pRExC_state, &nscan, minnextp,
+                                        &deltanext, last, &data_fake,
+                                        stopparen, recursed_depth, NULL,
+                                        f, depth+1, mutate_ok);
+                if (FLAGS(scan)) {
+                    assert(0);  /* This code has never been tested since this
+                                   is normally not compiled */
+                    if (   deltanext < 0
+                        || deltanext > (I32) U8_MAX
+                        || *minnextp > (I32)U8_MAX
+                        || *minnextp + deltanext > (I32)U8_MAX)
+                    {
+                        FAIL2("Lookbehind longer than %" UVuf " not implemented",
+                              (UV)U8_MAX);
+                    }
+
+                    if (deltanext) {
+                        NEXT_OFF(scan) = deltanext;
+                    }
+                    FLAGS(scan) = (U8)*minnextp + deltanext;
+                }
+
+                *minnextp += min;
+
+                if (f & SCF_DO_STCLASS_AND) {
+                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &intrnl);
+                    ANYOF_FLAGS(data->start_class) |= SSC_MATCHES_EMPTY_STRING;
+                }
+                if (data) {
+                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
+                        pars++;
+                    if (data_fake.flags & SF_HAS_EVAL)
+                        data->flags |= SF_HAS_EVAL;
+                    data->whilem_c = data_fake.whilem_c;
+                    if ((flags & SCF_DO_SUBSTR) && data_fake.last_found) {
+                        int i;
+                        if (RExC_rx->minlen < *minnextp)
+                            RExC_rx->minlen = *minnextp;
+                        scan_commit(pRExC_state, &data_fake, minnextp, is_inf);
+                        SvREFCNT_dec_NN(data_fake.last_found);
+
+                        for (i = 0; i < 2; i++) {
+                            if (data_fake.substrs[i].minlenp != minlenp) {
+                                data->substrs[i].min_offset =
+                                            data_fake.substrs[i].min_offset;
+                                data->substrs[i].max_offset =
+                                            data_fake.substrs[i].max_offset;
+                                data->substrs[i].minlenp =
+                                            data_fake.substrs[i].minlenp;
+                                data->substrs[i].lookbehind += FLAGS(scan);
+                            }
+                        }
+                    }
+                }
+            }
+#endif
+        }
+        else if (OP(scan) == OPEN) {
+            if (stopparen != (I32)PARNO(scan))
+                pars++;
+        }
+        else if (OP(scan) == CLOSE) {
+            if (stopparen == (I32)PARNO(scan)) {
+                break;
+            }
+            if ((I32)PARNO(scan) == is_par) {
+                next = regnext(scan);
+
+                if ( next && (OP(next) != WHILEM) && next < last)
+                    is_par = 0;         /* Disable optimization */
+            }
+            if (data) {
+                *(data->last_closep) = PARNO(scan);
+                *(data->last_close_opp) = scan;
+            }
+        }
+        else if (OP(scan) == EVAL) {
+            if (data && !(FLAGS(scan) & EVAL_OPTIMISTIC_FLAG) )
+                data->flags |= SF_HAS_EVAL;
+        }
+        else if ( REGNODE_TYPE(OP(scan)) == ENDLIKE ) {
+            if (flags & SCF_DO_SUBSTR) {
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+                flags &= ~SCF_DO_SUBSTR;
+            }
+            if (OP(scan)==ACCEPT) {
+                /* m{(*ACCEPT)x} does not have to start with 'x' */
+                flags &= ~SCF_DO_STCLASS;
+                if (data)
+                    data->flags |= SCF_SEEN_ACCEPT;
+                if (stopmin > min)
+                    stopmin = min;
+            }
+        }
+        else if (OP(scan) == COMMIT) {
+            /* gh18770: m{abc(*COMMIT)xyz} must fail on "abc abcxyz", so we
+             * must not end up with "abcxyz" as a fixed substring else we'll
+             * skip straight to attempting to match at offset 4.
+             */
+            if (flags & SCF_DO_SUBSTR) {
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+                flags &= ~SCF_DO_SUBSTR;
+            }
+        }
+        else if (OP(scan) == LOGICAL && FLAGS(scan) == 2) /* Embedded follows */
+        {
+                if (flags & SCF_DO_SUBSTR) {
+                    scan_commit(pRExC_state, data, minlenp, is_inf);
+                    data->cur_is_floating = 1; /* float */
+                }
+                is_inf = is_inf_internal = 1;
+                if (flags & SCF_DO_STCLASS_OR) /* Allow everything */
+                    ssc_anything(data->start_class);
+                flags &= ~SCF_DO_STCLASS;
+        }
+        else if (OP(scan) == GPOS) {
+            if (!(RExC_rx->intflags & PREGf_GPOS_FLOAT) &&
+                !(delta || is_inf || (data && data->pos_delta)))
+            {
+                if (!(RExC_rx->intflags & PREGf_ANCH) && (flags & SCF_DO_SUBSTR))
+                    RExC_rx->intflags |= PREGf_ANCH_GPOS;
+                if (RExC_rx->gofs < (STRLEN)min)
+                    RExC_rx->gofs = min;
+            } else {
+                RExC_rx->intflags |= PREGf_GPOS_FLOAT;
+                RExC_rx->gofs = 0;
+            }
+        }
+#ifdef TRIE_STUDY_OPT
+#ifdef FULL_TRIE_STUDY
+        else if (REGNODE_TYPE(OP(scan)) == TRIE) {
+            /* NOTE - There is similar code to this block above for handling
+               BRANCH nodes on the initial study.  If you change stuff here
+               check there too. */
+            regnode *trie_node= scan;
+            regnode *tail= regnext(scan);
+            reg_trie_data *trie = (reg_trie_data*)RExC_rxi->data->data[ ARG1u(scan) ];
+            SSize_t max1 = 0, min1 = OPTIMIZE_INFTY;
+            regnode_ssc accum;
+
+            if (flags & SCF_DO_SUBSTR) { /* XXXX Add !SUSPEND? */
+                /* Cannot merge strings after this. */
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+            }
+            if (flags & SCF_DO_STCLASS)
+                ssc_init_zero(pRExC_state, &accum);
+
+            if (!trie->jump) {
+                min1= trie->minlen;
+                max1= trie->maxlen;
+            } else {
+                const regnode *nextbranch= NULL;
+                U32 word;
+
+                for ( word=1 ; word <= trie->wordcount ; word++)
+                {
+                    SSize_t deltanext = 0, minnext = 0;
+                    U32 f = (flags & SCF_TRIE_DOING_RESTUDY);
+                    SSize_t fake_last_close = 0;
+                    regnode *fake_last_close_op = NULL;
+                    regnode_ssc this_class;
+
+                    StructCopy(&zero_scan_data, &data_fake, scan_data_t);
+                    if (data) {
+                        data_fake.whilem_c = data->whilem_c;
+                        data_fake.last_closep = data->last_closep;
+                        data_fake.last_close_opp = data->last_close_opp;
+                    }
+                    else {
+                        data_fake.last_closep = &fake_last_close;
+                        data_fake.last_close_opp = &fake_last_close_op;
+                    }
+                    data_fake.pos_delta = delta;
+                    if (flags & SCF_DO_STCLASS) {
+                        ssc_init(pRExC_state, &this_class);
+                        data_fake.start_class = &this_class;
+                        f |= SCF_DO_STCLASS_AND;
+                    }
+                    if (flags & SCF_WHILEM_VISITED_POS)
+                        f |= SCF_WHILEM_VISITED_POS;
+
+                    if (trie->jump[word]) {
+                        if (!nextbranch)
+                            nextbranch = trie_node + trie->jump[0];
+                        scan= trie_node + trie->jump[word];
+                        /* We go from the jump point to the branch that follows
+                           it. Note this means we need the vestigal unused
+                           branches even though they arent otherwise used. */
+                        /* optimise study_chunk() for TRIE */
+                        minnext = study_chunk(pRExC_state, &scan, minlenp,
+                            &deltanext, (regnode *)nextbranch, &data_fake,
+                            stopparen, recursed_depth, NULL, f, depth+1,
+                            mutate_ok);
+                    }
+                    if (nextbranch && REGNODE_TYPE(OP(nextbranch))==BRANCH)
+                        nextbranch= regnext((regnode*)nextbranch);
+
+                    if (min1 > (SSize_t)(minnext + trie->minlen))
+                        min1 = minnext + trie->minlen;
+                    if (deltanext == OPTIMIZE_INFTY) {
+                        is_inf = is_inf_internal = 1;
+                        max1 = OPTIMIZE_INFTY;
+                    } else if (max1 < (SSize_t)(minnext + deltanext + trie->maxlen))
+                        max1 = minnext + deltanext + trie->maxlen;
+
+                    if (data_fake.flags & (SF_HAS_PAR|SF_IN_PAR))
+                        pars++;
+                    if (data_fake.flags & SCF_SEEN_ACCEPT) {
+                        if ( stopmin > min + min1)
+                            stopmin = min + min1;
+                        flags &= ~SCF_DO_SUBSTR;
+                        if (data)
+                            data->flags |= SCF_SEEN_ACCEPT;
+                    }
+                    if (data) {
+                        if (data_fake.flags & SF_HAS_EVAL)
+                            data->flags |= SF_HAS_EVAL;
+                        data->whilem_c = data_fake.whilem_c;
+                    }
+                    if (flags & SCF_DO_STCLASS)
+                        ssc_or(pRExC_state, &accum, (regnode_charclass *) &this_class);
+                }
+                DEBUG_STUDYDATA("after JUMPTRIE", data, depth, is_inf, min, stopmin, delta);
+            }
+            if (flags & SCF_DO_SUBSTR) {
+                data->pos_min += min1;
+                data->pos_delta += max1 - min1;
+                if (max1 != min1 || is_inf)
+                    data->cur_is_floating = 1; /* float */
+            }
+            min += min1;
+            if (delta != OPTIMIZE_INFTY) {
+                if (OPTIMIZE_INFTY - (max1 - min1) >= delta)
+                    delta += max1 - min1;
+                else
+                    delta = OPTIMIZE_INFTY;
+            }
+            if (flags & SCF_DO_STCLASS_OR) {
+                ssc_or(pRExC_state, data->start_class, (regnode_charclass *) &accum);
+                if (min1) {
+                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+                    flags &= ~SCF_DO_STCLASS;
+                }
+            }
+            else if (flags & SCF_DO_STCLASS_AND) {
+                if (min1) {
+                    ssc_and(pRExC_state, data->start_class, (regnode_charclass *) &accum);
+                    flags &= ~SCF_DO_STCLASS;
+                }
+                else {
+                    /* Switch to OR mode: cache the old value of
+                     * data->start_class */
+                    INIT_AND_WITHP;
+                    StructCopy(data->start_class, and_withp, regnode_ssc);
+                    flags &= ~SCF_DO_STCLASS_AND;
+                    StructCopy(&accum, data->start_class, regnode_ssc);
+                    flags |= SCF_DO_STCLASS_OR;
+                }
+            }
+            scan= tail;
+            DEBUG_STUDYDATA("after TRIE study", data, depth, is_inf, min, stopmin, delta);
+            continue;
+        }
+#else
+        else if (REGNODE_TYPE(OP(scan)) == TRIE) {
+            reg_trie_data *trie = (reg_trie_data*)RExC_rxi->data->data[ ARG1u(scan) ];
+            U8*bang=NULL;
+
+            min += trie->minlen;
+            delta += (trie->maxlen - trie->minlen);
+            flags &= ~SCF_DO_STCLASS; /* xxx */
+            if (flags & SCF_DO_SUBSTR) {
+                /* Cannot expect anything... */
+                scan_commit(pRExC_state, data, minlenp, is_inf);
+                data->pos_min += trie->minlen;
+                data->pos_delta += (trie->maxlen - trie->minlen);
+                if (trie->maxlen != trie->minlen)
+                    data->cur_is_floating = 1; /* float */
+            }
+            if (trie->jump) /* no more substrings -- for now /grr*/
+               flags &= ~SCF_DO_SUBSTR;
+        }
+
+#endif /* old or new */
+#endif /* TRIE_STUDY_OPT */
+
+        else if (OP(scan) == REGEX_SET) {
+            Perl_croak(aTHX_ "panic: %s regnode should be resolved"
+                             " before optimization", REGNODE_NAME(REGEX_SET));
+        }
+
+        /* Else: zero-length, ignore. */
+        scan = regnext(scan);
+    }
+
+  finish:
+    if (frame) {
+        /* we need to unwind recursion. */
+        depth = depth - 1;
+
+        DEBUG_STUDYDATA("frame-end", data, depth, is_inf, min, stopmin, delta);
+        DEBUG_PEEP("fend", scan, depth, flags);
+
+        /* restore previous context */
+        last = frame->last_regnode;
+        scan = frame->next_regnode;
+        stopparen = frame->stopparen;
+        recursed_depth = frame->prev_recursed_depth;
+
+        RExC_frame_last = frame->prev_frame;
+        frame = frame->this_prev_frame;
+        goto fake_study_recurse;
+    }
+
+    assert(!frame);
+    DEBUG_STUDYDATA("pre-fin", data, depth, is_inf, min, stopmin, delta);
+
+    /* is this pattern infinite? Eg, consider /(a|b+)/ */
+    if (is_inf_internal)
+        delta = OPTIMIZE_INFTY;
+
+    /* deal with (*ACCEPT), Eg, consider /(foo(*ACCEPT)|bop)bar/ */
+    if (min > stopmin) {
+        /*
+        At this point 'min' represents the minimum length string we can
+        match while *ignoring* the implication of ACCEPT, and 'delta'
+        represents the difference between the minimum length and maximum
+        length, and if the pattern matches an infinitely long string
+        (consider the + and * quantifiers) then we use the special delta
+        value of OPTIMIZE_INFTY to represent it. 'stopmin' is the
+        minimum length that can be matched *and* accepted.
+
+        A pattern is accepted when matching was successful *and*
+        complete, and thus there is no further matching needing to be
+        done, no backtracking to occur, etc. Prior to the introduction
+        of ACCEPT the only opcode that signaled acceptance was the END
+        opcode, which is always the very last opcode in a regex program.
+        ACCEPT is thus conceptually an early successful return out of
+        the matching process. stopmin starts out as OPTIMIZE_INFTY to
+        represent "the entire pattern", and is ratched down to the
+        "current min" if necessary when an ACCEPT opcode is encountered.
+
+        Thus stopmin might be smaller than min if we saw an (*ACCEPT),
+        and we now need to account for it in both min and delta.
+        Consider that in a pattern /AB/ normally the min length it can
+        match can be computed as min(A)+min(B). But (*ACCEPT) means
+        that it might be something else, not even neccesarily min(A) at
+        all. Consider
+
+             A  = /(foo(*ACCEPT)|x+)/
+             B  = /whop/
+             AB = /(foo(*ACCEPT)|x+)whop/
+
+        The min for A is 1 for "x" and the delta for A is OPTIMIZE_INFTY
+        for "xxxxx...", its stopmin is 3 for "foo". The min for B is 4 for
+        "whop", and the delta of 0 as the pattern is of fixed length, the
+        stopmin would be OPTIMIZE_INFTY as it does not contain an ACCEPT.
+        When handling AB we expect to see a min of 5 for "xwhop", and a
+        delta of OPTIMIZE_INFTY for "xxxxx...whop", and a stopmin of 3
+        for "foo". This should result in a final min of 3 for "foo", and
+        a final delta of OPTIMIZE_INFTY for "xxxxx...whop".
+
+        In something like /(dude(*ACCEPT)|irk)x{3,7}/ we would have a
+        min of 6 for "irkxxx" and a delta of 4 for "irkxxxxxxx", and the
+        stop min would be 4 for "dude". This should result in a final
+        min of 4 for "dude", and a final delta of 6, for "irkxxxxxxx".
+
+        When min is smaller than stopmin then we can ignore it. In the
+        fragment /(x{10,20}(*ACCEPT)|a)b+/, we would have a min of 2,
+        and a delta of OPTIMIZE_INFTY, and a stopmin of 10. Obviously
+        the ACCEPT doesn't reduce the minimum length of the string that
+        might be matched, nor affect the maximum length.
+
+        In something like /foo(*ACCEPT)ba?r/ we would have a min of 5
+        for "foobr", a delta of 1 for "foobar", and a stopmin of 3 for
+        "foo". We currently turn this into a min of 3 for "foo" and a
+        delta of 3 for "foobar" even though technically "foobar" isn't
+        possible. ACCEPT affects some aspects of the optimizer, like
+        length computations and mandatory substring optimizations, but
+        there are other optimzations this routine perfoms that are not
+        affected and this compromise simplifies implementation.
+
+        It might be helpful to consider that this C function is called
+        recursively on the pattern in a bottom up fashion, and that the
+        min returned by a nested call may be marked as coming from an
+        ACCEPT, causing its callers to treat the returned min as a
+        stopmin as the recursion unwinds. Thus a single ACCEPT can affect
+        multiple calls into this function in different ways.
+        */
+
+        if (OPTIMIZE_INFTY - delta >= min - stopmin)
+            delta += min - stopmin;
+        else
+            delta = OPTIMIZE_INFTY;
+        min = stopmin;
+    }
+
+    *scanp = scan;
+    *deltap = delta;
+
+    if (flags & SCF_DO_SUBSTR && is_inf)
+        data->pos_delta = OPTIMIZE_INFTY - data->pos_min;
+    if (is_par > (I32)U8_MAX)
+        is_par = 0;
+    if (is_par && pars==1 && data) {
+        data->flags |= SF_IN_PAR;
+        data->flags &= ~SF_HAS_PAR;
+    }
+    else if (pars && data) {
+        data->flags |= SF_HAS_PAR;
+        data->flags &= ~SF_IN_PAR;
+    }
+    if (flags & SCF_DO_STCLASS_OR)
+        ssc_and(pRExC_state, data->start_class, (regnode_charclass *) and_withp);
+    if (flags & SCF_TRIE_RESTUDY)
+        data->flags |=  SCF_TRIE_RESTUDY;
+
+
+    if (!(RExC_seen & REG_UNBOUNDED_QUANTIFIER_SEEN)) {
+        if (min > OPTIMIZE_INFTY - delta)
+            RExC_maxlen = OPTIMIZE_INFTY;
+        else if (RExC_maxlen < min + delta)
+            RExC_maxlen = min + delta;
+    }
+    DEBUG_STUDYDATA("post-fin", data, depth, is_inf, min, stopmin, delta);
+    return min;
+}
Index: gnu/usr.bin/perl/regcomp_trie.c
===================================================================
RCS file: gnu/usr.bin/perl/regcomp_trie.c
diff -N gnu/usr.bin/perl/regcomp_trie.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regcomp_trie.c	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,1717 @@
+#ifdef PERL_EXT_RE_BUILD
+#include "re_top.h"
+#endif
+
+#include "EXTERN.h"
+#define PERL_IN_REGEX_ENGINE
+#define PERL_IN_REGCOMP_ANY
+#define PERL_IN_REGCOMP_TRIE_C
+#include "perl.h"
+
+#ifdef PERL_IN_XSUB_RE
+#  include "re_comp.h"
+#else
+#  include "regcomp.h"
+#endif
+
+#include "invlist_inline.h"
+#include "unicode_constants.h"
+#include "regcomp_internal.h"
+
+#define TRIE_LIST_ITEM(state,idx) (trie->states[state].trans.list)[ idx ]
+#define TRIE_LIST_CUR(state)  ( TRIE_LIST_ITEM( state, 0 ).forid )
+#define TRIE_LIST_LEN(state) ( TRIE_LIST_ITEM( state, 0 ).newstate )
+#define TRIE_LIST_USED(idx)  ( trie->states[state].trans.list         \
+                               ? (TRIE_LIST_CUR( idx ) - 1)           \
+                               : 0 )
+
+
+#ifdef DEBUGGING
+/*
+   dump_trie(trie,widecharmap,revcharmap)
+   dump_trie_interim_list(trie,widecharmap,revcharmap,next_alloc)
+   dump_trie_interim_table(trie,widecharmap,revcharmap,next_alloc)
+
+   These routines dump out a trie in a somewhat readable format.
+   The _interim_ variants are used for debugging the interim
+   tables that are used to generate the final compressed
+   representation which is what dump_trie expects.
+
+   Part of the reason for their existence is to provide a form
+   of documentation as to how the different representations function.
+
+*/
+
+/*
+  Dumps the final compressed table form of the trie to Perl_debug_log.
+  Used for debugging make_trie().
+*/
+
+STATIC void
+S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV *widecharmap,
+            AV *revcharmap, U32 depth)
+{
+    U32 state;
+    SV *sv=sv_newmortal();
+    int colwidth= widecharmap ? 6 : 4;
+    U16 word;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_DUMP_TRIE;
+
+    Perl_re_indentf( aTHX_  "Char : %-6s%-6s%-4s ",
+        depth+1, "Match","Base","Ofs" );
+
+    for( state = 0 ; state < trie->uniquecharcount ; state++ ) {
+        SV ** const tmp = av_fetch_simple( revcharmap, state, 0);
+        if ( tmp ) {
+            Perl_re_printf( aTHX_  "%*s",
+                colwidth,
+                pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), colwidth,
+                            PL_colors[0], PL_colors[1],
+                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
+                            PERL_PV_ESCAPE_FIRSTCHAR
+                )
+            );
+        }
+    }
+    Perl_re_printf( aTHX_  "\n");
+    Perl_re_indentf( aTHX_ "State|-----------------------", depth+1);
+
+    for( state = 0 ; state < trie->uniquecharcount ; state++ )
+        Perl_re_printf( aTHX_  "%.*s", colwidth, "--------");
+    Perl_re_printf( aTHX_  "\n");
+
+    for( state = 1 ; state < trie->statecount ; state++ ) {
+        const U32 base = trie->states[ state ].trans.base;
+
+        Perl_re_indentf( aTHX_  "#%4" UVXf "|", depth+1, (UV)state);
+
+        if ( trie->states[ state ].wordnum ) {
+            Perl_re_printf( aTHX_  " W%4X", trie->states[ state ].wordnum );
+        } else {
+            Perl_re_printf( aTHX_  "%6s", "" );
+        }
+
+        Perl_re_printf( aTHX_  " @%4" UVXf " ", (UV)base );
+
+        if ( base ) {
+            U32 ofs = 0;
+
+            while( ( base + ofs  < trie->uniquecharcount ) ||
+                   ( base + ofs - trie->uniquecharcount < trie->lasttrans
+                     && trie->trans[ base + ofs - trie->uniquecharcount ].check
+                                                                    != state))
+                    ofs++;
+
+            Perl_re_printf( aTHX_  "+%2" UVXf "[ ", (UV)ofs);
+
+            for ( ofs = 0 ; ofs < trie->uniquecharcount ; ofs++ ) {
+                if ( ( base + ofs >= trie->uniquecharcount )
+                        && ( base + ofs - trie->uniquecharcount
+                                                        < trie->lasttrans )
+                        && trie->trans[ base + ofs
+                                    - trie->uniquecharcount ].check == state )
+                {
+                   Perl_re_printf( aTHX_  "%*" UVXf, colwidth,
+                    (UV)trie->trans[ base + ofs - trie->uniquecharcount ].next
+                   );
+                } else {
+                    Perl_re_printf( aTHX_  "%*s", colwidth,"   ." );
+                }
+            }
+
+            Perl_re_printf( aTHX_  "]");
+
+        }
+        Perl_re_printf( aTHX_  "\n" );
+    }
+    Perl_re_indentf( aTHX_  "word_info N:(prev,len)=",
+                                depth);
+    for (word=1; word <= trie->wordcount; word++) {
+        Perl_re_printf( aTHX_  " %d:(%d,%d)",
+            (int)word, (int)(trie->wordinfo[word].prev),
+            (int)(trie->wordinfo[word].len));
+    }
+    Perl_re_printf( aTHX_  "\n" );
+}
+/*
+  Dumps a fully constructed but uncompressed trie in list form.
+  List tries normally only are used for construction when the number of
+  possible chars (trie->uniquecharcount) is very high.
+  Used for debugging make_trie().
+*/
+STATIC void
+S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie,
+                         HV *widecharmap, AV *revcharmap, U32 next_alloc,
+                         U32 depth)
+{
+    U32 state;
+    SV *sv=sv_newmortal();
+    int colwidth= widecharmap ? 6 : 4;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST;
+
+    /* print out the table precompression.  */
+    Perl_re_indentf( aTHX_  "State :Word | Transition Data\n",
+            depth+1 );
+    Perl_re_indentf( aTHX_  "%s",
+            depth+1, "------:-----+-----------------\n" );
+
+    for( state=1 ; state < next_alloc ; state ++ ) {
+        U16 charid;
+
+        Perl_re_indentf( aTHX_  " %4" UVXf " :",
+            depth+1, (UV)state  );
+        if ( ! trie->states[ state ].wordnum ) {
+            Perl_re_printf( aTHX_  "%5s| ","");
+        } else {
+            Perl_re_printf( aTHX_  "W%4x| ",
+                trie->states[ state ].wordnum
+            );
+        }
+        for( charid = 1 ; charid <= TRIE_LIST_USED( state ) ; charid++ ) {
+            SV ** const tmp = av_fetch_simple( revcharmap,
+                                        TRIE_LIST_ITEM(state, charid).forid, 0);
+            if ( tmp ) {
+                Perl_re_printf( aTHX_  "%*s:%3X=%4" UVXf " | ",
+                    colwidth,
+                    pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp),
+                              colwidth,
+                              PL_colors[0], PL_colors[1],
+                              (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0)
+                              | PERL_PV_ESCAPE_FIRSTCHAR
+                    ) ,
+                    TRIE_LIST_ITEM(state, charid).forid,
+                    (UV)TRIE_LIST_ITEM(state, charid).newstate
+                );
+                if (!(charid % 10))
+                    Perl_re_printf( aTHX_  "\n%*s| ",
+                        (int)((depth * 2) + 14), "");
+            }
+        }
+        Perl_re_printf( aTHX_  "\n");
+    }
+}
+
+/*
+  Dumps a fully constructed but uncompressed trie in table form.
+  This is the normal DFA style state transition table, with a few
+  twists to facilitate compression later.
+  Used for debugging make_trie().
+*/
+STATIC void
+S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie,
+                          HV *widecharmap, AV *revcharmap, U32 next_alloc,
+                          U32 depth)
+{
+    U32 state;
+    U16 charid;
+    SV *sv=sv_newmortal();
+    int colwidth= widecharmap ? 6 : 4;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE;
+
+    /*
+       print out the table precompression so that we can do a visual check
+       that they are identical.
+     */
+
+    Perl_re_indentf( aTHX_  "Char : ", depth+1 );
+
+    for( charid = 0 ; charid < trie->uniquecharcount ; charid++ ) {
+        SV ** const tmp = av_fetch_simple( revcharmap, charid, 0);
+        if ( tmp ) {
+            Perl_re_printf( aTHX_  "%*s",
+                colwidth,
+                pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), colwidth,
+                            PL_colors[0], PL_colors[1],
+                            (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
+                            PERL_PV_ESCAPE_FIRSTCHAR
+                )
+            );
+        }
+    }
+
+    Perl_re_printf( aTHX_ "\n");
+    Perl_re_indentf( aTHX_  "State+-", depth+1 );
+
+    for( charid=0 ; charid < trie->uniquecharcount ; charid++ ) {
+        Perl_re_printf( aTHX_  "%.*s", colwidth,"--------");
+    }
+
+    Perl_re_printf( aTHX_  "\n" );
+
+    for( state=1 ; state < next_alloc ; state += trie->uniquecharcount ) {
+
+        Perl_re_indentf( aTHX_  "%4" UVXf " : ",
+            depth+1,
+            (UV)TRIE_NODENUM( state ) );
+
+        for( charid = 0 ; charid < trie->uniquecharcount ; charid++ ) {
+            UV v=(UV)SAFE_TRIE_NODENUM( trie->trans[ state + charid ].next );
+            if (v)
+                Perl_re_printf( aTHX_  "%*" UVXf, colwidth, v );
+            else
+                Perl_re_printf( aTHX_  "%*s", colwidth, "." );
+        }
+        if ( ! trie->states[ TRIE_NODENUM( state ) ].wordnum ) {
+            Perl_re_printf( aTHX_  " (%4" UVXf ")\n",
+                                            (UV)trie->trans[ state ].check );
+        } else {
+            Perl_re_printf( aTHX_  " (%4" UVXf ") W%4X\n",
+                                            (UV)trie->trans[ state ].check,
+            trie->states[ TRIE_NODENUM( state ) ].wordnum );
+        }
+    }
+}
+
+#endif
+
+
+/* make_trie(startbranch,first,last,tail,word_count,flags,depth)
+  startbranch: the first branch in the whole branch sequence
+  first      : start branch of sequence of branch-exact nodes.
+               May be the same as startbranch
+  last       : Thing following the last branch.
+               May be the same as tail.
+  tail       : item following the branch sequence
+  count      : words in the sequence
+  flags      : currently the OP() type we will be building one of /EXACT(|F|FA|FU|FU_SS|L|FLU8)/
+  depth      : indent depth
+
+Inplace optimizes a sequence of 2 or more Branch-Exact nodes into a TRIE node.
+
+A trie is an N'ary tree where the branches are determined by digital
+decomposition of the key. IE, at the root node you look up the 1st character and
+follow that branch repeat until you find the end of the branches. Nodes can be
+marked as "accepting" meaning they represent a complete word. Eg:
+
+  /he|she|his|hers/
+
+would convert into the following structure. Numbers represent states, letters
+following numbers represent valid transitions on the letter from that state, if
+the number is in square brackets it represents an accepting state, otherwise it
+will be in parenthesis.
+
+      +-h->+-e->[3]-+-r->(8)-+-s->[9]
+      |    |
+      |   (2)
+      |    |
+     (1)   +-i->(6)-+-s->[7]
+      |
+      +-s->(3)-+-h->(4)-+-e->[5]
+
+      Accept Word Mapping: 3=>1 (he),5=>2 (she), 7=>3 (his), 9=>4 (hers)
+
+This shows that when matching against the string 'hers' we will begin at state 1
+read 'h' and move to state 2, read 'e' and move to state 3 which is accepting,
+then read 'r' and go to state 8 followed by 's' which takes us to state 9 which
+is also accepting. Thus we know that we can match both 'he' and 'hers' with a
+single traverse. We store a mapping from accepting to state to which word was
+matched, and then when we have multiple possibilities we try to complete the
+rest of the regex in the order in which they occurred in the alternation.
+
+The only prior NFA like behaviour that would be changed by the TRIE support is
+the silent ignoring of duplicate alternations which are of the form:
+
+ / (DUPE|DUPE) X? (?{ ... }) Y /x
+
+Thus EVAL blocks following a trie may be called a different number of times with
+and without the optimisation. With the optimisations dupes will be silently
+ignored. This inconsistent behaviour of EVAL type nodes is well established as
+the following demonstrates:
+
+ 'words'=~/(word|word|word)(?{ print $1 })[xyz]/
+
+which prints out 'word' three times, but
+
+ 'words'=~/(word|word|word)(?{ print $1 })S/
+
+which doesnt print it out at all. This is due to other optimisations kicking in.
+
+Example of what happens on a structural level:
+
+The regexp /(ac|ad|ab)+/ will produce the following debug output:
+
+   1: CURLYM[1] {1,32767}(18)
+   5:   BRANCH(8)
+   6:     EXACT <ac>(16)
+   8:   BRANCH(11)
+   9:     EXACT <ad>(16)
+  11:   BRANCH(14)
+  12:     EXACT <ab>(16)
+  16:   SUCCEED(0)
+  17:   NOTHING(18)
+  18: END(0)
+
+This would be optimizable with startbranch=5, first=5, last=16, tail=16
+and should turn into:
+
+   1: CURLYM[1] {1,32767}(18)
+   5:   TRIE(16)
+        [Words:3 Chars Stored:6 Unique Chars:4 States:5 NCP:1]
+          <ac>
+          <ad>
+          <ab>
+  16:   SUCCEED(0)
+  17:   NOTHING(18)
+  18: END(0)
+
+Cases where tail != last would be like /(?foo|bar)baz/:
+
+   1: BRANCH(4)
+   2:   EXACT <foo>(8)
+   4: BRANCH(7)
+   5:   EXACT <bar>(8)
+   7: TAIL(8)
+   8: EXACT <baz>(10)
+  10: END(0)
+
+which would be optimizable with startbranch=1, first=1, last=7, tail=8
+and would end up looking like:
+
+    1: TRIE(8)
+      [Words:2 Chars Stored:6 Unique Chars:5 States:7 NCP:1]
+        <foo>
+        <bar>
+   7: TAIL(8)
+   8: EXACT <baz>(10)
+  10: END(0)
+
+    d = uvchr_to_utf8_flags(d, uv, 0);
+
+is the recommended Unicode-aware way of saying
+
+    *(d++) = uv;
+*/
+
+#define TRIE_STORE_REVCHAR(val)                                            \
+    STMT_START {                                                           \
+        if (UTF) {                                                         \
+            SV *zlopp = newSV(UTF8_MAXBYTES);                              \
+            unsigned char *flrbbbbb = (unsigned char *) SvPVX(zlopp);      \
+            unsigned char *const kapow = uvchr_to_utf8(flrbbbbb, val);     \
+            *kapow = '\0';                                                 \
+            SvCUR_set(zlopp, kapow - flrbbbbb);                            \
+            SvPOK_on(zlopp);                                               \
+            SvUTF8_on(zlopp);                                              \
+            av_push_simple(revcharmap, zlopp);                                     \
+        } else {                                                           \
+            char ooooff = (char)val;                                           \
+            av_push_simple(revcharmap, newSVpvn(&ooooff, 1));                      \
+        }                                                                  \
+        } STMT_END
+
+/* This gets the next character from the input, folding it if not already
+ * folded. */
+#define TRIE_READ_CHAR STMT_START {                                           \
+    wordlen++;                                                                \
+    if ( UTF ) {                                                              \
+        /* if it is UTF then it is either already folded, or does not need    \
+         * folding */                                                         \
+        uvc = valid_utf8_to_uvchr( (const U8*) uc, &len);                     \
+    }                                                                         \
+    else if (folder == PL_fold_latin1) {                                      \
+        /* This folder implies Unicode rules, which in the range expressible  \
+         *  by not UTF is the lower case, with the two exceptions, one of     \
+         *  which should have been taken care of before calling this */       \
+        assert(*uc != LATIN_SMALL_LETTER_SHARP_S);                            \
+        uvc = toLOWER_L1(*uc);                                                \
+        if (UNLIKELY(uvc == MICRO_SIGN)) uvc = GREEK_SMALL_LETTER_MU;         \
+        len = 1;                                                              \
+    } else {                                                                  \
+        /* raw data, will be folded later if needed */                        \
+        uvc = (U32)*uc;                                                       \
+        len = 1;                                                              \
+    }                                                                         \
+} STMT_END
+
+
+
+#define TRIE_LIST_PUSH(state,fid,ns) STMT_START {               \
+    if ( TRIE_LIST_CUR( state ) >=TRIE_LIST_LEN( state ) ) {    \
+        U32 ging = TRIE_LIST_LEN( state ) * 2;                  \
+        Renew( trie->states[ state ].trans.list, ging, reg_trie_trans_le ); \
+        TRIE_LIST_LEN( state ) = ging;                          \
+    }                                                           \
+    TRIE_LIST_ITEM( state, TRIE_LIST_CUR( state ) ).forid = fid;     \
+    TRIE_LIST_ITEM( state, TRIE_LIST_CUR( state ) ).newstate = ns;   \
+    TRIE_LIST_CUR( state )++;                                   \
+} STMT_END
+
+#define TRIE_LIST_NEW(state) STMT_START {                       \
+    Newx( trie->states[ state ].trans.list,                     \
+        4, reg_trie_trans_le );                                 \
+     TRIE_LIST_CUR( state ) = 1;                                \
+     TRIE_LIST_LEN( state ) = 4;                                \
+} STMT_END
+
+#define TRIE_HANDLE_WORD(state) STMT_START {                    \
+    U16 dupe= trie->states[ state ].wordnum;                    \
+    regnode * const noper_next = regnext( noper );              \
+                                                                \
+    DEBUG_r({                                                   \
+        /* store the word for dumping */                        \
+        SV* tmp;                                                \
+        if (OP(noper) != NOTHING)                               \
+            tmp = newSVpvn_utf8(STRING(noper), STR_LEN(noper), UTF);    \
+        else                                                    \
+            tmp = newSVpvn_utf8( "", 0, UTF );                  \
+        av_push_simple( trie_words, tmp );                             \
+    });                                                         \
+                                                                \
+    curword++;                                                  \
+    trie->wordinfo[curword].prev   = 0;                         \
+    trie->wordinfo[curword].len    = wordlen;                   \
+    trie->wordinfo[curword].accept = state;                     \
+                                                                \
+    if ( noper_next < tail ) {                                  \
+        if (!trie->jump) {                                      \
+            trie->jump = (U16 *) PerlMemShared_calloc( word_count + 1, \
+                                                 sizeof(U16) ); \
+            trie->j_before_paren = (U16 *) PerlMemShared_calloc( word_count + 1, \
+                                                 sizeof(U16) ); \
+            trie->j_after_paren = (U16 *) PerlMemShared_calloc( word_count + 1, \
+                                                 sizeof(U16) ); \
+        }                                                       \
+        trie->jump[curword] = (U16)(noper_next - convert);      \
+        U16 set_before_paren;                                   \
+        U16 set_after_paren;                                    \
+        if (OP(cur) == BRANCH) {                                \
+            set_before_paren = ARG1a(cur);                       \
+            set_after_paren = ARG1b(cur);                        \
+        } else {                                                \
+            set_before_paren = ARG2a(cur);                     \
+            set_after_paren = ARG2b(cur);                      \
+        }                                                       \
+        trie->j_before_paren[curword] = set_before_paren;       \
+        trie->j_after_paren[curword] = set_after_paren;         \
+        if (!jumper)                                            \
+            jumper = noper_next;                                \
+        if (!nextbranch)                                        \
+            nextbranch= regnext(cur);                           \
+    }                                                           \
+                                                                \
+    if ( dupe ) {                                               \
+        /* It's a dupe. Pre-insert into the wordinfo[].prev   */\
+        /* chain, so that when the bits of chain are later    */\
+        /* linked together, the dups appear in the chain      */\
+        trie->wordinfo[curword].prev = trie->wordinfo[dupe].prev; \
+        trie->wordinfo[dupe].prev = curword;                    \
+    } else {                                                    \
+        /* we haven't inserted this word yet.                */ \
+        trie->states[ state ].wordnum = curword;                \
+    }                                                           \
+} STMT_END
+
+
+#define TRIE_TRANS_STATE(state,base,ucharcount,charid,special)          \
+     ( ( base + charid >=  ucharcount                                   \
+         && base + charid < ubound                                      \
+         && state == trie->trans[ base - ucharcount + charid ].check    \
+         && trie->trans[ base - ucharcount + charid ].next )            \
+           ? trie->trans[ base - ucharcount + charid ].next             \
+           : ( state==1 ? special : 0 )                                 \
+      )
+
+#define TRIE_BITMAP_SET_FOLDED(trie, uvc, folder)           \
+STMT_START {                                                \
+    TRIE_BITMAP_SET(trie, uvc);                             \
+    /* store the folded codepoint */                        \
+    if ( folder )                                           \
+        TRIE_BITMAP_SET(trie, folder[(U8) uvc ]);           \
+                                                            \
+    if ( !UTF ) {                                           \
+        /* store first byte of utf8 representation of */    \
+        /* variant codepoints */                            \
+        if (! UVCHR_IS_INVARIANT(uvc)) {                    \
+            TRIE_BITMAP_SET(trie, UTF8_TWO_BYTE_HI(uvc));   \
+        }                                                   \
+    }                                                       \
+} STMT_END
+
+I32
+Perl_make_trie(pTHX_ RExC_state_t *pRExC_state, regnode *startbranch,
+                  regnode *first, regnode *last, regnode *tail,
+                  U32 word_count, U32 flags, U32 depth)
+{
+    /* first pass, loop through and scan words */
+    reg_trie_data *trie;
+    HV *widecharmap = NULL;
+    AV *revcharmap = newAV();
+    regnode *cur;
+    STRLEN len = 0;
+    UV uvc = 0;
+    U16 curword = 0;
+    U32 next_alloc = 0;
+    regnode *jumper = NULL;
+    regnode *nextbranch = NULL;
+    regnode *lastbranch = NULL;
+    regnode *convert = NULL;
+    U32 *prev_states; /* temp array mapping each state to previous one */
+    /* we just use folder as a flag in utf8 */
+    const U8 * folder = NULL;
+
+    /* in the below reg_add_data call we are storing either 'tu' or 'tuaa'
+     * which stands for one trie structure, one hash, optionally followed
+     * by two arrays */
+#ifdef DEBUGGING
+    const U32 data_slot = reg_add_data( pRExC_state, STR_WITH_LEN("tuaa"));
+    AV *trie_words = NULL;
+    /* along with revcharmap, this only used during construction but both are
+     * useful during debugging so we store them in the struct when debugging.
+     */
+#else
+    const U32 data_slot = reg_add_data( pRExC_state, STR_WITH_LEN("tu"));
+    STRLEN trie_charcount=0;
+#endif
+    SV *re_trie_maxbuff;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_MAKE_TRIE;
+#ifndef DEBUGGING
+    PERL_UNUSED_ARG(depth);
+#endif
+
+    switch (flags) {
+        case EXACT: case EXACT_REQ8: case EXACTL: break;
+        case EXACTFAA:
+        case EXACTFUP:
+        case EXACTFU:
+        case EXACTFLU8: folder = PL_fold_latin1; break;
+        case EXACTF:  folder = PL_fold; break;
+        default: Perl_croak( aTHX_ "panic! In trie construction, unknown node type %u %s", (unsigned) flags, REGNODE_NAME(flags) );
+    }
+
+    /* create the trie struct, all zeroed */
+    trie = (reg_trie_data *) PerlMemShared_calloc( 1, sizeof(reg_trie_data) );
+    trie->refcount = 1;
+    trie->startstate = 1;
+    trie->wordcount = word_count;
+    RExC_rxi->data->data[ data_slot ] = (void*)trie;
+    trie->charmap = (U16 *) PerlMemShared_calloc( 256, sizeof(U16) );
+    if (flags == EXACT || flags == EXACT_REQ8 || flags == EXACTL)
+        trie->bitmap = (char *) PerlMemShared_calloc( ANYOF_BITMAP_SIZE, 1 );
+    trie->wordinfo = (reg_trie_wordinfo *) PerlMemShared_calloc(
+                       trie->wordcount+1, sizeof(reg_trie_wordinfo));
+
+    DEBUG_r({
+        trie_words = newAV();
+    });
+
+    re_trie_maxbuff = get_sv(RE_TRIE_MAXBUF_NAME, GV_ADD);
+    assert(re_trie_maxbuff);
+    if (!SvIOK(re_trie_maxbuff)) {
+        sv_setiv(re_trie_maxbuff, RE_TRIE_MAXBUF_INIT);
+    }
+    DEBUG_TRIE_COMPILE_r({
+        Perl_re_indentf( aTHX_
+          "make_trie start==%d, first==%d, last==%d, tail==%d depth=%d\n",
+          depth+1,
+          REG_NODE_NUM(startbranch), REG_NODE_NUM(first),
+          REG_NODE_NUM(last), REG_NODE_NUM(tail), (int)depth);
+    });
+
+   /* Find the node we are going to overwrite */
+    if ( first == startbranch && OP( last ) != BRANCH ) {
+        /* whole branch chain */
+        convert = first;
+    } else {
+        /* branch sub-chain */
+        convert = REGNODE_AFTER( first );
+    }
+
+    /*  -- First loop and Setup --
+
+       We first traverse the branches and scan each word to determine if it
+       contains widechars, and how many unique chars there are, this is
+       important as we have to build a table with at least as many columns as we
+       have unique chars.
+
+       We use an array of integers to represent the character codes 0..255
+       (trie->charmap) and we use a an HV* to store Unicode characters. We use
+       the native representation of the character value as the key and IV's for
+       the coded index.
+
+       *TODO* If we keep track of how many times each character is used we can
+       remap the columns so that the table compression later on is more
+       efficient in terms of memory by ensuring the most common value is in the
+       middle and the least common are on the outside.  IMO this would be better
+       than a most to least common mapping as theres a decent chance the most
+       common letter will share a node with the least common, meaning the node
+       will not be compressible. With a middle is most common approach the worst
+       case is when we have the least common nodes twice.
+
+     */
+
+    for ( cur = first ; cur < last ; cur = regnext( cur ) ) {
+        regnode *noper = REGNODE_AFTER( cur );
+        const U8 *uc;
+        const U8 *e;
+        int foldlen = 0;
+        U32 wordlen      = 0;         /* required init */
+        STRLEN minchars = 0;
+        STRLEN maxchars = 0;
+        bool set_bit = trie->bitmap ? 1 : 0; /*store the first char in the
+                                               bitmap?*/
+        lastbranch = cur;
+
+        if (OP(noper) == NOTHING) {
+            /* skip past a NOTHING at the start of an alternation
+             * eg, /(?:)a|(?:b)/ should be the same as /a|b/
+             *
+             * If the next node is not something we are supposed to process
+             * we will just ignore it due to the condition guarding the
+             * next block.
+             */
+
+            regnode *noper_next= regnext(noper);
+            if (noper_next < tail)
+                noper= noper_next;
+        }
+
+        if (    noper < tail
+            && (    OP(noper) == flags
+                || (flags == EXACT && OP(noper) == EXACT_REQ8)
+                || (flags == EXACTFU && (   OP(noper) == EXACTFU_REQ8
+                                         || OP(noper) == EXACTFUP))))
+        {
+            uc= (U8*)STRING(noper);
+            e= uc + STR_LEN(noper);
+        } else {
+            trie->minlen= 0;
+            continue;
+        }
+
+
+        if ( set_bit ) { /* bitmap only alloced when !(UTF&&Folding) */
+            TRIE_BITMAP_SET(trie,*uc); /* store the raw first byte
+                                          regardless of encoding */
+            if (OP( noper ) == EXACTFUP) {
+                /* false positives are ok, so just set this */
+                TRIE_BITMAP_SET(trie, LATIN_SMALL_LETTER_SHARP_S);
+            }
+        }
+
+        for ( ; uc < e ; uc += len ) {  /* Look at each char in the current
+                                           branch */
+            TRIE_CHARCOUNT(trie)++;
+            TRIE_READ_CHAR;
+
+            /* TRIE_READ_CHAR returns the current character, or its fold if /i
+             * is in effect.  Under /i, this character can match itself, or
+             * anything that folds to it.  If not under /i, it can match just
+             * itself.  Most folds are 1-1, for example k, K, and KELVIN SIGN
+             * all fold to k, and all are single characters.   But some folds
+             * expand to more than one character, so for example LATIN SMALL
+             * LIGATURE FFI folds to the three character sequence 'ffi'.  If
+             * the string beginning at 'uc' is 'ffi', it could be matched by
+             * three characters, or just by the one ligature character. (It
+             * could also be matched by two characters: LATIN SMALL LIGATURE FF
+             * followed by 'i', or by 'f' followed by LATIN SMALL LIGATURE FI).
+             * (Of course 'I' and/or 'F' instead of 'i' and 'f' can also
+             * match.)  The trie needs to know the minimum and maximum number
+             * of characters that could match so that it can use size alone to
+             * quickly reject many match attempts.  The max is simple: it is
+             * the number of folded characters in this branch (since a fold is
+             * never shorter than what folds to it. */
+
+            maxchars++;
+
+            /* And the min is equal to the max if not under /i (indicated by
+             * 'folder' being NULL), or there are no multi-character folds.  If
+             * there is a multi-character fold, the min is incremented just
+             * once, for the character that folds to the sequence.  Each
+             * character in the sequence needs to be added to the list below of
+             * characters in the trie, but we count only the first towards the
+             * min number of characters needed.  This is done through the
+             * variable 'foldlen', which is returned by the macros that look
+             * for these sequences as the number of bytes the sequence
+             * occupies.  Each time through the loop, we decrement 'foldlen' by
+             * how many bytes the current char occupies.  Only when it reaches
+             * 0 do we increment 'minchars' or look for another multi-character
+             * sequence. */
+            if (folder == NULL) {
+                minchars++;
+            }
+            else if (foldlen > 0) {
+                foldlen -= (UTF) ? UTF8SKIP(uc) : 1;
+            }
+            else {
+                minchars++;
+
+                /* See if *uc is the beginning of a multi-character fold.  If
+                 * so, we decrement the length remaining to look at, to account
+                 * for the current character this iteration.  (We can use 'uc'
+                 * instead of the fold returned by TRIE_READ_CHAR because the
+                 * macro is smart enough to account for any unfolded
+                 * characters. */
+                if (UTF) {
+                    if ((foldlen = is_MULTI_CHAR_FOLD_utf8_safe(uc, e))) {
+                        foldlen -= UTF8SKIP(uc);
+                    }
+                }
+                else if ((foldlen = is_MULTI_CHAR_FOLD_latin1_safe(uc, e))) {
+                    foldlen--;
+                }
+            }
+
+            /* The current character (and any potential folds) should be added
+             * to the possible matching characters for this position in this
+             * branch */
+            if ( uvc < 256 ) {
+                if ( folder ) {
+                    U8 folded= folder[ (U8) uvc ];
+                    if ( !trie->charmap[ folded ] ) {
+                        trie->charmap[ folded ]=( ++trie->uniquecharcount );
+                        TRIE_STORE_REVCHAR( folded );
+                    }
+                }
+                if ( !trie->charmap[ uvc ] ) {
+                    trie->charmap[ uvc ]=( ++trie->uniquecharcount );
+                    TRIE_STORE_REVCHAR( uvc );
+                }
+                if ( set_bit ) {
+                    /* store the codepoint in the bitmap, and its folded
+                     * equivalent. */
+                    TRIE_BITMAP_SET_FOLDED(trie, uvc, folder);
+                    set_bit = 0; /* We've done our bit :-) */
+                }
+            } else {
+
+                /* XXX We could come up with the list of code points that fold
+                 * to this using PL_utf8_foldclosures, except not for
+                 * multi-char folds, as there may be multiple combinations
+                 * there that could work, which needs to wait until runtime to
+                 * resolve (The comment about LIGATURE FFI above is such an
+                 * example */
+
+                SV** svpp;
+                if ( !widecharmap )
+                    widecharmap = newHV();
+
+                svpp = hv_fetch( widecharmap, (char*)&uvc, sizeof( UV ), 1 );
+
+                if ( !svpp )
+                    Perl_croak( aTHX_ "error creating/fetching widecharmap entry for 0x%" UVXf, uvc );
+
+                if ( !SvTRUE( *svpp ) ) {
+                    sv_setiv( *svpp, ++trie->uniquecharcount );
+                    TRIE_STORE_REVCHAR(uvc);
+                }
+            }
+        } /* end loop through characters in this branch of the trie */
+
+        /* We take the min and max for this branch and combine to find the min
+         * and max for all branches processed so far */
+        if( cur == first ) {
+            trie->minlen = minchars;
+            trie->maxlen = maxchars;
+        } else if (minchars < trie->minlen) {
+            trie->minlen = minchars;
+        } else if (maxchars > trie->maxlen) {
+            trie->maxlen = maxchars;
+        }
+    } /* end first pass */
+    trie->before_paren = OP(first) == BRANCH
+                 ? ARG1a(first)
+                 : ARG2a(first); /* BRANCHJ */
+
+    trie->after_paren = OP(lastbranch) == BRANCH
+                 ? ARG1b(lastbranch)
+                 : ARG2b(lastbranch); /* BRANCHJ */
+    DEBUG_TRIE_COMPILE_r(
+        Perl_re_indentf( aTHX_
+                "TRIE(%s): W:%d C:%d Uq:%d Min:%d Max:%d\n",
+                depth+1,
+                ( widecharmap ? "UTF8" : "NATIVE" ), (int)word_count,
+                (int)TRIE_CHARCOUNT(trie), trie->uniquecharcount,
+                (int)trie->minlen, (int)trie->maxlen )
+    );
+
+    /*
+        We now know what we are dealing with in terms of unique chars and
+        string sizes so we can calculate how much memory a naive
+        representation using a flat table  will take. If it's over a reasonable
+        limit (as specified by ${^RE_TRIE_MAXBUF}) we use a more memory
+        conservative but potentially much slower representation using an array
+        of lists.
+
+        At the end we convert both representations into the same compressed
+        form that will be used in regexec.c for matching with. The latter
+        is a form that cannot be used to construct with but has memory
+        properties similar to the list form and access properties similar
+        to the table form making it both suitable for fast searches and
+        small enough that its feasable to store for the duration of a program.
+
+        See the comment in the code where the compressed table is produced
+        inplace from the flat tabe representation for an explanation of how
+        the compression works.
+
+    */
+
+
+    Newx(prev_states, TRIE_CHARCOUNT(trie) + 2, U32);
+    prev_states[1] = 0;
+
+    if ( (IV)( ( TRIE_CHARCOUNT(trie) + 1 ) * trie->uniquecharcount + 1)
+                                                    > SvIV(re_trie_maxbuff) )
+    {
+        /*
+            Second Pass -- Array Of Lists Representation
+
+            Each state will be represented by a list of charid:state records
+            (reg_trie_trans_le) the first such element holds the CUR and LEN
+            points of the allocated array. (See defines above).
+
+            We build the initial structure using the lists, and then convert
+            it into the compressed table form which allows faster lookups
+            (but cant be modified once converted).
+        */
+
+        STRLEN transcount = 1;
+
+        DEBUG_TRIE_COMPILE_MORE_r( Perl_re_indentf( aTHX_  "Compiling trie using list compiler\n",
+            depth+1));
+
+        trie->states = (reg_trie_state *)
+            PerlMemShared_calloc( TRIE_CHARCOUNT(trie) + 2,
+                                  sizeof(reg_trie_state) );
+        TRIE_LIST_NEW(1);
+        next_alloc = 2;
+
+        for ( cur = first ; cur < last ; cur = regnext( cur ) ) {
+
+            regnode *noper   = REGNODE_AFTER( cur );
+            U32 state        = 1;         /* required init */
+            U16 charid       = 0;         /* sanity init */
+            U32 wordlen      = 0;         /* required init */
+
+            if (OP(noper) == NOTHING) {
+                regnode *noper_next= regnext(noper);
+                if (noper_next < tail)
+                    noper= noper_next;
+                /* we will undo this assignment if noper does not
+                 * point at a trieable type in the else clause of
+                 * the following statement. */
+            }
+
+            if (    noper < tail
+                && (    OP(noper) == flags
+                    || (flags == EXACT && OP(noper) == EXACT_REQ8)
+                    || (flags == EXACTFU && (   OP(noper) == EXACTFU_REQ8
+                                             || OP(noper) == EXACTFUP))))
+            {
+                const U8 *uc= (U8*)STRING(noper);
+                const U8 *e= uc + STR_LEN(noper);
+
+                for ( ; uc < e ; uc += len ) {
+
+                    TRIE_READ_CHAR;
+
+                    if ( uvc < 256 ) {
+                        charid = trie->charmap[ uvc ];
+                    } else {
+                        SV** const svpp = hv_fetch( widecharmap,
+                                                    (char*)&uvc,
+                                                    sizeof( UV ),
+                                                    0);
+                        if ( !svpp ) {
+                            charid = 0;
+                        } else {
+                            charid=(U16)SvIV( *svpp );
+                        }
+                    }
+                    /* charid is now 0 if we dont know the char read, or
+                     * nonzero if we do */
+                    if ( charid ) {
+
+                        U16 check;
+                        U32 newstate = 0;
+
+                        charid--;
+                        if ( !trie->states[ state ].trans.list ) {
+                            TRIE_LIST_NEW( state );
+                        }
+                        for ( check = 1;
+                              check <= TRIE_LIST_USED( state );
+                              check++ )
+                        {
+                            if ( TRIE_LIST_ITEM( state, check ).forid
+                                                                    == charid )
+                            {
+                                newstate = TRIE_LIST_ITEM( state, check ).newstate;
+                                break;
+                            }
+                        }
+                        if ( ! newstate ) {
+                            newstate = next_alloc++;
+                            prev_states[newstate] = state;
+                            TRIE_LIST_PUSH( state, charid, newstate );
+                            transcount++;
+                        }
+                        state = newstate;
+                    } else {
+                        Perl_croak( aTHX_ "panic! In trie construction, no char mapping for %" IVdf, uvc );
+                    }
+                }
+            } else {
+                /* If we end up here it is because we skipped past a NOTHING, but did not end up
+                 * on a trieable type. So we need to reset noper back to point at the first regop
+                 * in the branch before we call TRIE_HANDLE_WORD()
+                */
+                noper= REGNODE_AFTER(cur);
+            }
+            TRIE_HANDLE_WORD(state);
+
+        } /* end second pass */
+
+        /* next alloc is the NEXT state to be allocated */
+        trie->statecount = next_alloc;
+        trie->states = (reg_trie_state *)
+            PerlMemShared_realloc( trie->states,
+                                   next_alloc
+                                   * sizeof(reg_trie_state) );
+
+        /* and now dump it out before we compress it */
+        DEBUG_TRIE_COMPILE_MORE_r(dump_trie_interim_list(trie, widecharmap,
+                                                         revcharmap, next_alloc,
+                                                         depth+1)
+        );
+
+        trie->trans = (reg_trie_trans *)
+            PerlMemShared_calloc( transcount, sizeof(reg_trie_trans) );
+        {
+            U32 state;
+            U32 tp = 0;
+            U32 zp = 0;
+
+
+            for( state=1 ; state < next_alloc ; state ++ ) {
+                U32 base=0;
+
+                /*
+                DEBUG_TRIE_COMPILE_MORE_r(
+                    Perl_re_printf( aTHX_  "tp: %d zp: %d ",tp,zp)
+                );
+                */
+
+                if (trie->states[state].trans.list) {
+                    U16 minid=TRIE_LIST_ITEM( state, 1).forid;
+                    U16 maxid=minid;
+                    U16 idx;
+
+                    for( idx = 2 ; idx <= TRIE_LIST_USED( state ) ; idx++ ) {
+                        const U16 forid = TRIE_LIST_ITEM( state, idx).forid;
+                        if ( forid < minid ) {
+                            minid=forid;
+                        } else if ( forid > maxid ) {
+                            maxid=forid;
+                        }
+                    }
+                    if ( transcount < tp + maxid - minid + 1) {
+                        transcount *= 2;
+                        trie->trans = (reg_trie_trans *)
+                            PerlMemShared_realloc( trie->trans,
+                                                     transcount
+                                                     * sizeof(reg_trie_trans) );
+                        Zero( trie->trans + (transcount / 2),
+                              transcount / 2,
+                              reg_trie_trans );
+                    }
+                    base = trie->uniquecharcount + tp - minid;
+                    if ( maxid == minid ) {
+                        U32 set = 0;
+                        for ( ; zp < tp ; zp++ ) {
+                            if ( ! trie->trans[ zp ].next ) {
+                                base = trie->uniquecharcount + zp - minid;
+                                trie->trans[ zp ].next = TRIE_LIST_ITEM( state,
+                                                                   1).newstate;
+                                trie->trans[ zp ].check = state;
+                                set = 1;
+                                break;
+                            }
+                        }
+                        if ( !set ) {
+                            trie->trans[ tp ].next = TRIE_LIST_ITEM( state,
+                                                                   1).newstate;
+                            trie->trans[ tp ].check = state;
+                            tp++;
+                            zp = tp;
+                        }
+                    } else {
+                        for ( idx=1; idx <= TRIE_LIST_USED( state ) ; idx++ ) {
+                            const U32 tid = base
+                                           - trie->uniquecharcount
+                                           + TRIE_LIST_ITEM( state, idx ).forid;
+                            trie->trans[ tid ].next = TRIE_LIST_ITEM( state,
+                                                                idx ).newstate;
+                            trie->trans[ tid ].check = state;
+                        }
+                        tp += ( maxid - minid + 1 );
+                    }
+                    Safefree(trie->states[ state ].trans.list);
+                }
+                /*
+                DEBUG_TRIE_COMPILE_MORE_r(
+                    Perl_re_printf( aTHX_  " base: %d\n",base);
+                );
+                */
+                trie->states[ state ].trans.base=base;
+            }
+            trie->lasttrans = tp + 1;
+        }
+    } else {
+        /*
+           Second Pass -- Flat Table Representation.
+
+           we dont use the 0 slot of either trans[] or states[] so we add 1 to
+           each.  We know that we will need Charcount+1 trans at most to store
+           the data (one row per char at worst case) So we preallocate both
+           structures assuming worst case.
+
+           We then construct the trie using only the .next slots of the entry
+           structs.
+
+           We use the .check field of the first entry of the node temporarily
+           to make compression both faster and easier by keeping track of how
+           many non zero fields are in the node.
+
+           Since trans are numbered from 1 any 0 pointer in the table is a FAIL
+           transition.
+
+           There are two terms at use here: state as a TRIE_NODEIDX() which is
+           a number representing the first entry of the node, and state as a
+           TRIE_NODENUM() which is the trans number. state 1 is TRIE_NODEIDX(1)
+           and TRIE_NODENUM(1), state 2 is TRIE_NODEIDX(2) and TRIE_NODENUM(3)
+           if there are 2 entrys per node. eg:
+
+             A B       A B
+          1. 2 4    1. 3 7
+          2. 0 3    3. 0 5
+          3. 0 0    5. 0 0
+          4. 0 0    7. 0 0
+
+           The table is internally in the right hand, idx form. However as we
+           also have to deal with the states array which is indexed by nodenum
+           we have to use TRIE_NODENUM() to convert.
+
+        */
+        DEBUG_TRIE_COMPILE_MORE_r( Perl_re_indentf( aTHX_  "Compiling trie using table compiler\n",
+            depth+1));
+
+        trie->trans = (reg_trie_trans *)
+            PerlMemShared_calloc( ( TRIE_CHARCOUNT(trie) + 1 )
+                                  * trie->uniquecharcount + 1,
+                                  sizeof(reg_trie_trans) );
+        trie->states = (reg_trie_state *)
+            PerlMemShared_calloc( TRIE_CHARCOUNT(trie) + 2,
+                                  sizeof(reg_trie_state) );
+        next_alloc = trie->uniquecharcount + 1;
+
+
+        for ( cur = first ; cur < last ; cur = regnext( cur ) ) {
+
+            regnode *noper   = REGNODE_AFTER( cur );
+
+            U32 state        = 1;         /* required init */
+
+            U16 charid       = 0;         /* sanity init */
+            U32 accept_state = 0;         /* sanity init */
+
+            U32 wordlen      = 0;         /* required init */
+
+            if (OP(noper) == NOTHING) {
+                regnode *noper_next= regnext(noper);
+                if (noper_next < tail)
+                    noper= noper_next;
+                /* we will undo this assignment if noper does not
+                 * point at a trieable type in the else clause of
+                 * the following statement. */
+            }
+
+            if (    noper < tail
+                && (    OP(noper) == flags
+                    || (flags == EXACT && OP(noper) == EXACT_REQ8)
+                    || (flags == EXACTFU && (   OP(noper) == EXACTFU_REQ8
+                                             || OP(noper) == EXACTFUP))))
+            {
+                const U8 *uc= (U8*)STRING(noper);
+                const U8 *e= uc + STR_LEN(noper);
+
+                for ( ; uc < e ; uc += len ) {
+
+                    TRIE_READ_CHAR;
+
+                    if ( uvc < 256 ) {
+                        charid = trie->charmap[ uvc ];
+                    } else {
+                        SV* const * const svpp = hv_fetch( widecharmap,
+                                                           (char*)&uvc,
+                                                           sizeof( UV ),
+                                                           0);
+                        charid = svpp ? (U16)SvIV(*svpp) : 0;
+                    }
+                    if ( charid ) {
+                        charid--;
+                        if ( !trie->trans[ state + charid ].next ) {
+                            trie->trans[ state + charid ].next = next_alloc;
+                            trie->trans[ state ].check++;
+                            prev_states[TRIE_NODENUM(next_alloc)]
+                                    = TRIE_NODENUM(state);
+                            next_alloc += trie->uniquecharcount;
+                        }
+                        state = trie->trans[ state + charid ].next;
+                    } else {
+                        Perl_croak( aTHX_ "panic! In trie construction, no char mapping for %" IVdf, uvc );
+                    }
+                    /* charid is now 0 if we dont know the char read, or
+                     * nonzero if we do */
+                }
+            } else {
+                /* If we end up here it is because we skipped past a NOTHING, but did not end up
+                 * on a trieable type. So we need to reset noper back to point at the first regop
+                 * in the branch before we call TRIE_HANDLE_WORD().
+                */
+                noper= REGNODE_AFTER(cur);
+            }
+            accept_state = TRIE_NODENUM( state );
+            TRIE_HANDLE_WORD(accept_state);
+
+        } /* end second pass */
+
+        /* and now dump it out before we compress it */
+        DEBUG_TRIE_COMPILE_MORE_r(dump_trie_interim_table(trie, widecharmap,
+                                                          revcharmap,
+                                                          next_alloc, depth+1));
+
+        {
+        /*
+           * Inplace compress the table.*
+
+           For sparse data sets the table constructed by the trie algorithm will
+           be mostly 0/FAIL transitions or to put it another way mostly empty.
+           (Note that leaf nodes will not contain any transitions.)
+
+           This algorithm compresses the tables by eliminating most such
+           transitions, at the cost of a modest bit of extra work during lookup:
+
+           - Each states[] entry contains a .base field which indicates the
+           index in the state[] array wheres its transition data is stored.
+
+           - If .base is 0 there are no valid transitions from that node.
+
+           - If .base is nonzero then charid is added to it to find an entry in
+           the trans array.
+
+           -If trans[states[state].base+charid].check!=state then the
+           transition is taken to be a 0/Fail transition. Thus if there are fail
+           transitions at the front of the node then the .base offset will point
+           somewhere inside the previous nodes data (or maybe even into a node
+           even earlier), but the .check field determines if the transition is
+           valid.
+
+           XXX - wrong maybe?
+           The following process inplace converts the table to the compressed
+           table: We first do not compress the root node 1,and mark all its
+           .check pointers as 1 and set its .base pointer as 1 as well. This
+           allows us to do a DFA construction from the compressed table later,
+           and ensures that any .base pointers we calculate later are greater
+           than 0.
+
+           - We set 'pos' to indicate the first entry of the second node.
+
+           - We then iterate over the columns of the node, finding the first and
+           last used entry at l and m. We then copy l..m into pos..(pos+m-l),
+           and set the .check pointers accordingly, and advance pos
+           appropriately and repreat for the next node. Note that when we copy
+           the next pointers we have to convert them from the original
+           NODEIDX form to NODENUM form as the former is not valid post
+           compression.
+
+           - If a node has no transitions used we mark its base as 0 and do not
+           advance the pos pointer.
+
+           - If a node only has one transition we use a second pointer into the
+           structure to fill in allocated fail transitions from other states.
+           This pointer is independent of the main pointer and scans forward
+           looking for null transitions that are allocated to a state. When it
+           finds one it writes the single transition into the "hole".  If the
+           pointer doesnt find one the single transition is appended as normal.
+
+           - Once compressed we can Renew/realloc the structures to release the
+           excess space.
+
+           See "Table-Compression Methods" in sec 3.9 of the Red Dragon,
+           specifically Fig 3.47 and the associated pseudocode.
+
+           demq
+        */
+        const U32 laststate = TRIE_NODENUM( next_alloc );
+        U32 state, charid;
+        U32 pos = 0, zp=0;
+        trie->statecount = laststate;
+
+        for ( state = 1 ; state < laststate ; state++ ) {
+            U8 flag = 0;
+            const U32 stateidx = TRIE_NODEIDX( state );
+            const U32 o_used = trie->trans[ stateidx ].check;
+            U32 used = trie->trans[ stateidx ].check;
+            trie->trans[ stateidx ].check = 0;
+
+            for ( charid = 0;
+                  used && charid < trie->uniquecharcount;
+                  charid++ )
+            {
+                if ( flag || trie->trans[ stateidx + charid ].next ) {
+                    if ( trie->trans[ stateidx + charid ].next ) {
+                        if (o_used == 1) {
+                            for ( ; zp < pos ; zp++ ) {
+                                if ( ! trie->trans[ zp ].next ) {
+                                    break;
+                                }
+                            }
+                            trie->states[ state ].trans.base
+                                                    = zp
+                                                      + trie->uniquecharcount
+                                                      - charid ;
+                            trie->trans[ zp ].next
+                                = SAFE_TRIE_NODENUM( trie->trans[ stateidx
+                                                             + charid ].next );
+                            trie->trans[ zp ].check = state;
+                            if ( ++zp > pos ) pos = zp;
+                            break;
+                        }
+                        used--;
+                    }
+                    if ( !flag ) {
+                        flag = 1;
+                        trie->states[ state ].trans.base
+                                       = pos + trie->uniquecharcount - charid ;
+                    }
+                    trie->trans[ pos ].next
+                        = SAFE_TRIE_NODENUM(
+                                       trie->trans[ stateidx + charid ].next );
+                    trie->trans[ pos ].check = state;
+                    pos++;
+                }
+            }
+        }
+        trie->lasttrans = pos + 1;
+        trie->states = (reg_trie_state *)
+            PerlMemShared_realloc( trie->states, laststate
+                                   * sizeof(reg_trie_state) );
+        DEBUG_TRIE_COMPILE_MORE_r(
+            Perl_re_indentf( aTHX_  "Alloc: %d Orig: %" IVdf " elements, Final:%" IVdf ". Savings of %%%5.2f\n",
+                depth+1,
+                (int)( ( TRIE_CHARCOUNT(trie) + 1 ) * trie->uniquecharcount
+                       + 1 ),
+                (IV)next_alloc,
+                (IV)pos,
+                ( ( next_alloc - pos ) * 100 ) / (double)next_alloc );
+            );
+
+        } /* end table compress */
+    }
+    DEBUG_TRIE_COMPILE_MORE_r(
+            Perl_re_indentf( aTHX_  "Statecount:%" UVxf " Lasttrans:%" UVxf "\n",
+                depth+1,
+                (UV)trie->statecount,
+                (UV)trie->lasttrans)
+    );
+    /* resize the trans array to remove unused space */
+    trie->trans = (reg_trie_trans *)
+        PerlMemShared_realloc( trie->trans, trie->lasttrans
+                               * sizeof(reg_trie_trans) );
+
+    {   /* Modify the program and insert the new TRIE node */
+        U8 nodetype =(U8) flags;
+        char *str=NULL;
+
+#ifdef DEBUGGING
+        regnode *optimize = NULL;
+#endif /* DEBUGGING */
+        /* make sure we have enough room to inject the TRIE op */
+        assert((!trie->jump) || !trie->jump[1] ||
+                (trie->jump[1] >= (sizeof(tregnode_TRIE)/sizeof(struct regnode))));
+        /*
+           This means we convert either the first branch or the first Exact,
+           depending on whether the thing following (in 'last') is a branch
+           or not and whther first is the startbranch (ie is it a sub part of
+           the alternation or is it the whole thing.)
+           Assuming its a sub part we convert the EXACT otherwise we convert
+           the whole branch sequence, including the first.
+         */
+        /* Find the node we are going to overwrite */
+        if ( first != startbranch || OP( last ) == BRANCH ) {
+            /* branch sub-chain */
+            NEXT_OFF( first ) = (U16)(last - first);
+            /* whole branch chain */
+        }
+        /* But first we check to see if there is a common prefix we can
+           split out as an EXACT and put in front of the TRIE node.  */
+        trie->startstate= 1;
+        if ( trie->bitmap && !widecharmap && !trie->jump  ) {
+            /* we want to find the first state that has more than
+             * one transition, if that state is not the first state
+             * then we have a common prefix which we can remove.
+             */
+            U32 state;
+            for ( state = 1 ; state < trie->statecount-1 ; state++ ) {
+                U32 ofs = 0;
+                I32 first_ofs = -1; /* keeps track of the ofs of the first
+                                       transition, -1 means none */
+                U32 count = 0;
+                const U32 base = trie->states[ state ].trans.base;
+
+                /* does this state terminate an alternation? */
+                if ( trie->states[state].wordnum )
+                        count = 1;
+
+                for ( ofs = 0 ; ofs < trie->uniquecharcount ; ofs++ ) {
+                    if ( ( base + ofs >= trie->uniquecharcount ) &&
+                         ( base + ofs - trie->uniquecharcount < trie->lasttrans ) &&
+                         trie->trans[ base + ofs - trie->uniquecharcount ].check == state )
+                    {
+                        if ( ++count > 1 ) {
+                            /* we have more than one transition */
+                            SV **tmp;
+                            U8 *ch;
+                            /* if this is the first state there is no common prefix
+                             * to extract, so we can exit */
+                            if ( state == 1 ) break;
+                            tmp = av_fetch_simple( revcharmap, ofs, 0);
+                            ch = (U8*)SvPV_nolen_const( *tmp );
+
+                            /* if we are on count 2 then we need to initialize the
+                             * bitmap, and store the previous char if there was one
+                             * in it*/
+                            if ( count == 2 ) {
+                                /* clear the bitmap */
+                                Zero(trie->bitmap, ANYOF_BITMAP_SIZE, char);
+                                DEBUG_OPTIMISE_r(
+                                    Perl_re_indentf( aTHX_  "New Start State=%" UVuf " Class: [",
+                                        depth+1,
+                                        (UV)state));
+                                if (first_ofs >= 0) {
+                                    SV ** const tmp = av_fetch_simple( revcharmap, first_ofs, 0);
+                                    const U8 * const ch = (U8*)SvPV_nolen_const( *tmp );
+
+                                    TRIE_BITMAP_SET_FOLDED(trie,*ch, folder);
+                                    DEBUG_OPTIMISE_r(
+                                        Perl_re_printf( aTHX_  "%s", (char*)ch)
+                                    );
+                                }
+                            }
+                            /* store the current firstchar in the bitmap */
+                            TRIE_BITMAP_SET_FOLDED(trie,*ch, folder);
+                            DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "%s", ch));
+                        }
+                        first_ofs = ofs;
+                    }
+                }
+                if ( count == 1 ) {
+                    /* This state has only one transition, its transition is part
+                     * of a common prefix - we need to concatenate the char it
+                     * represents to what we have so far. */
+                    SV **tmp = av_fetch_simple( revcharmap, first_ofs, 0);
+                    STRLEN len;
+                    char *ch = SvPV( *tmp, len );
+                    DEBUG_OPTIMISE_r({
+                        SV *sv=sv_newmortal();
+                        Perl_re_indentf( aTHX_  "Prefix State: %" UVuf " Ofs:%" UVuf " Char='%s'\n",
+                            depth+1,
+                            (UV)state, (UV)first_ofs,
+                            pv_pretty(sv, SvPV_nolen_const(*tmp), SvCUR(*tmp), 6,
+                                PL_colors[0], PL_colors[1],
+                                (SvUTF8(*tmp) ? PERL_PV_ESCAPE_UNI : 0) |
+                                PERL_PV_ESCAPE_FIRSTCHAR
+                            )
+                        );
+                    });
+                    if ( state==1 ) {
+                        OP( convert ) = nodetype;
+                        str=STRING(convert);
+                        setSTR_LEN(convert, 0);
+                    }
+                    assert( ( STR_LEN(convert) + len ) < 256 );
+                    setSTR_LEN(convert, (U8)(STR_LEN(convert) + len));
+                    while (len--)
+                        *str++ = *ch++;
+                } else {
+#ifdef DEBUGGING
+                    if (state>1)
+                        DEBUG_OPTIMISE_r(Perl_re_printf( aTHX_ "]\n"));
+#endif
+                    break;
+                }
+            }
+            trie->prefixlen = (state-1);
+            if (str) {
+                regnode *n = REGNODE_AFTER(convert);
+                assert( n - convert <= U16_MAX );
+                NEXT_OFF(convert) = n - convert;
+                trie->startstate = state;
+                trie->minlen -= (state - 1);
+                trie->maxlen -= (state - 1);
+#ifdef DEBUGGING
+               /* At least the UNICOS C compiler choked on this
+                * being argument to DEBUG_r(), so let's just have
+                * it right here. */
+               if (
+#ifdef PERL_EXT_RE_BUILD
+                   1
+#else
+                   DEBUG_r_TEST
+#endif
+                   ) {
+                   U32 word = trie->wordcount;
+                   while (word--) {
+                       SV ** const tmp = av_fetch_simple( trie_words, word, 0 );
+                       if (tmp) {
+                           if ( STR_LEN(convert) <= SvCUR(*tmp) )
+                               sv_chop(*tmp, SvPV_nolen(*tmp) + STR_LEN(convert));
+                           else
+                               sv_chop(*tmp, SvPV_nolen(*tmp) + SvCUR(*tmp));
+                       }
+                   }
+               }
+#endif
+                if (trie->maxlen) {
+                    convert = n;
+                } else {
+                    NEXT_OFF(convert) = (U16)(tail - convert);
+                    DEBUG_r(optimize= n);
+                }
+            }
+        }
+        if (!jumper)
+            jumper = last;
+        if ( trie->maxlen ) {
+            NEXT_OFF( convert ) = (U16)(tail - convert);
+            ARG1u_SET( convert, data_slot );
+            /* Store the offset to the first unabsorbed branch in
+               jump[0], which is otherwise unused by the jump logic.
+               We use this when dumping a trie and during optimisation. */
+            if (trie->jump)
+                trie->jump[0] = (U16)(nextbranch - convert);
+
+            /* If the start state is not accepting (meaning there is no empty string/NOTHING)
+             *   and there is a bitmap
+             *   and the first "jump target" node we found leaves enough room
+             * then convert the TRIE node into a TRIEC node, with the bitmap
+             * embedded inline in the opcode - this is hypothetically faster.
+             */
+            if ( !trie->states[trie->startstate].wordnum
+                 && trie->bitmap
+                 && ( (char *)jumper - (char *)convert) >= (int)sizeof(tregnode_TRIEC) )
+            {
+                OP( convert ) = TRIEC;
+                Copy(trie->bitmap, ((tregnode_TRIEC *)convert)->bitmap, ANYOF_BITMAP_SIZE, char);
+                PerlMemShared_free(trie->bitmap);
+                trie->bitmap= NULL;
+            } else
+                OP( convert ) = TRIE;
+
+            /* store the type in the flags */
+            FLAGS(convert) = nodetype;
+            DEBUG_r({
+            optimize = convert
+                      + NODE_STEP_REGNODE
+                      + REGNODE_ARG_LEN( OP( convert ) );
+            });
+            /* XXX We really should free up the resource in trie now,
+                   as we won't use them - (which resources?) dmq */
+        }
+        /* needed for dumping*/
+        DEBUG_r(if (optimize) {
+            /*
+                Try to clean up some of the debris left after the
+                optimisation.
+             */
+            while( optimize < jumper ) {
+                OP( optimize ) = OPTIMIZED;
+                optimize++;
+            }
+        });
+    } /* end node insert */
+
+    /*  Finish populating the prev field of the wordinfo array.  Walk back
+     *  from each accept state until we find another accept state, and if
+     *  so, point the first word's .prev field at the second word. If the
+     *  second already has a .prev field set, stop now. This will be the
+     *  case either if we've already processed that word's accept state,
+     *  or that state had multiple words, and the overspill words were
+     *  already linked up earlier.
+     */
+    {
+        U16 word;
+        U32 state;
+        U16 prev;
+
+        for (word=1; word <= trie->wordcount; word++) {
+            prev = 0;
+            if (trie->wordinfo[word].prev)
+                continue;
+            state = trie->wordinfo[word].accept;
+            while (state) {
+                state = prev_states[state];
+                if (!state)
+                    break;
+                prev = trie->states[state].wordnum;
+                if (prev)
+                    break;
+            }
+            trie->wordinfo[word].prev = prev;
+        }
+        Safefree(prev_states);
+    }
+
+
+    /* and now dump out the compressed format */
+    DEBUG_TRIE_COMPILE_r(dump_trie(trie, widecharmap, revcharmap, depth+1));
+
+    RExC_rxi->data->data[ data_slot + 1 ] = (void*)widecharmap;
+#ifdef DEBUGGING
+    RExC_rxi->data->data[ data_slot + TRIE_WORDS_OFFSET ] = (void*)trie_words;
+    RExC_rxi->data->data[ data_slot + 3 ] = (void*)revcharmap;
+#else
+    SvREFCNT_dec_NN(revcharmap);
+#endif
+    return trie->jump
+           ? MADE_JUMP_TRIE
+           : trie->startstate>1
+             ? MADE_EXACT_TRIE
+             : MADE_TRIE;
+}
+
+regnode *
+Perl_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth)
+{
+/* The Trie is constructed and compressed now so we can build a fail array if
+ * it's needed
+
+   This is basically the Aho-Corasick algorithm. Its from exercise 3.31 and
+   3.32 in the
+   "Red Dragon" -- Compilers, principles, techniques, and tools. Aho, Sethi,
+   Ullman 1985/88
+   ISBN 0-201-10088-6
+
+   We find the fail state for each state in the trie, this state is the longest
+   proper suffix of the current state's 'word' that is also a proper prefix of
+   another word in our trie. State 1 represents the word '' and is thus the
+   default fail state. This allows the DFA not to have to restart after its
+   tried and failed a word at a given point, it simply continues as though it
+   had been matching the other word in the first place.
+   Consider
+      'abcdgu'=~/abcdefg|cdgu/
+   When we get to 'd' we are still matching the first word, we would encounter
+   'g' which would fail, which would bring us to the state representing 'd' in
+   the second word where we would try 'g' and succeed, proceeding to match
+   'cdgu'.
+ */
+ /* add a fail transition */
+    const U32 trie_offset = ARG1u(source);
+    reg_trie_data *trie=(reg_trie_data *)RExC_rxi->data->data[trie_offset];
+    U32 *q;
+    const U32 ucharcount = trie->uniquecharcount;
+    const U32 numstates = trie->statecount;
+    const U32 ubound = trie->lasttrans + ucharcount;
+    U32 q_read = 0;
+    U32 q_write = 0;
+    U32 charid;
+    U32 base = trie->states[ 1 ].trans.base;
+    U32 *fail;
+    reg_ac_data *aho;
+    const U32 data_slot = reg_add_data( pRExC_state, STR_WITH_LEN("T"));
+    regnode *stclass;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE;
+    PERL_UNUSED_CONTEXT;
+#ifndef DEBUGGING
+    PERL_UNUSED_ARG(depth);
+#endif
+
+    if ( OP(source) == TRIE ) {
+        tregnode_TRIE *op = (tregnode_TRIE *)
+            PerlMemShared_calloc(1, sizeof(tregnode_TRIE));
+        StructCopy(source, op, tregnode_TRIE);
+        stclass = (regnode *)op;
+    } else {
+        tregnode_TRIEC *op = (tregnode_TRIEC *)
+            PerlMemShared_calloc(1, sizeof(tregnode_TRIEC));
+        StructCopy(source, op, tregnode_TRIEC);
+        stclass = (regnode *)op;
+    }
+    OP(stclass)+=2; /* convert the TRIE type to its AHO-CORASICK equivalent */
+
+    ARG1u_SET( stclass, data_slot );
+    aho = (reg_ac_data *) PerlMemShared_calloc( 1, sizeof(reg_ac_data) );
+    RExC_rxi->data->data[ data_slot ] = (void*)aho;
+    aho->trie=trie_offset;
+    aho->states=(reg_trie_state *)PerlMemShared_malloc( numstates * sizeof(reg_trie_state) );
+    Copy( trie->states, aho->states, numstates, reg_trie_state );
+    Newx( q, numstates, U32);
+    aho->fail = (U32 *) PerlMemShared_calloc( numstates, sizeof(U32) );
+    aho->refcount = 1;
+    fail = aho->fail;
+    /* initialize fail[0..1] to be 1 so that we always have
+       a valid final fail state */
+    fail[ 0 ] = fail[ 1 ] = 1;
+
+    for ( charid = 0; charid < ucharcount ; charid++ ) {
+        const U32 newstate = TRIE_TRANS_STATE( 1, base, ucharcount, charid, 0 );
+        if ( newstate ) {
+            q[ q_write ] = newstate;
+            /* set to point at the root */
+            fail[ q[ q_write++ ] ]=1;
+        }
+    }
+    while ( q_read < q_write) {
+        const U32 cur = q[ q_read++ % numstates ];
+        base = trie->states[ cur ].trans.base;
+
+        for ( charid = 0 ; charid < ucharcount ; charid++ ) {
+            const U32 ch_state = TRIE_TRANS_STATE( cur, base, ucharcount, charid, 1 );
+            if (ch_state) {
+                U32 fail_state = cur;
+                U32 fail_base;
+                do {
+                    fail_state = fail[ fail_state ];
+                    fail_base = aho->states[ fail_state ].trans.base;
+                } while ( !TRIE_TRANS_STATE( fail_state, fail_base, ucharcount, charid, 1 ) );
+
+                fail_state = TRIE_TRANS_STATE( fail_state, fail_base, ucharcount, charid, 1 );
+                fail[ ch_state ] = fail_state;
+                if ( !aho->states[ ch_state ].wordnum && aho->states[ fail_state ].wordnum )
+                {
+                        aho->states[ ch_state ].wordnum =  aho->states[ fail_state ].wordnum;
+                }
+                q[ q_write++ % numstates] = ch_state;
+            }
+        }
+    }
+    /* restore fail[0..1] to 0 so that we "fall out" of the AC loop
+       when we fail in state 1, this allows us to use the
+       charclass scan to find a valid start char. This is based on the principle
+       that theres a good chance the string being searched contains lots of stuff
+       that cant be a start char.
+     */
+    fail[ 0 ] = fail[ 1 ] = 0;
+    DEBUG_TRIE_COMPILE_r({
+        Perl_re_indentf( aTHX_  "Stclass Failtable (%" UVuf " states): 0",
+                      depth, (UV)numstates
+        );
+        for( q_read=1; q_read<numstates; q_read++ ) {
+            Perl_re_printf( aTHX_  ", %" UVuf, (UV)fail[q_read]);
+        }
+        Perl_re_printf( aTHX_  "\n");
+    });
+    Safefree(q);
+    /*RExC_seen |= REG_TRIEDFA_SEEN;*/
+    return stclass;
+}
Index: gnu/usr.bin/perl/regen.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen.pl,v
diff -u -p -a -u -p -r1.1.1.8 regen.pl
--- gnu/usr.bin/perl/regen.pl	13 Feb 2019 21:10:47 -0000	1.1.1.8
+++ gnu/usr.bin/perl/regen.pl	21 Feb 2024 15:47:03 -0000
@@ -22,11 +22,14 @@ foreach my $pl (map {chomp; "regen/$_"} 
 }
 
 __END__
+embed.pl
+feature.pl
 mg_vtable.pl
+miniperlmain.pl
 opcode.pl
 overload.pl
 reentr.pl
 regcomp.pl
+scope_types.pl
+tidy_embed.pl
 warnings.pl
-embed.pl
-feature.pl
Index: gnu/usr.bin/perl/regexec.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regexec.c,v
diff -u -p -a -u -p -r1.29 regexec.c
--- gnu/usr.bin/perl/regexec.c	15 Feb 2023 01:36:13 -0000	1.29
+++ gnu/usr.bin/perl/regexec.c	21 Feb 2024 15:47:03 -0000
@@ -71,6 +71,7 @@
  * regular-expression syntax might require a total rethink.
  */
 #include "EXTERN.h"
+#define PERL_IN_REGEX_ENGINE
 #define PERL_IN_REGEXEC_C
 #include "perl.h"
 
@@ -100,7 +101,7 @@ static const char sets_utf8_locale_requi
 
 #define CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(n)                     \
     STMT_START {                                                            \
-        if (! IN_UTF8_CTYPE_LOCALE && ANYOFL_UTF8_LOCALE_REQD(FLAGS(n))) {  \
+        if (! IN_UTF8_CTYPE_LOCALE && (FLAGS(n) & ANYOFL_UTF8_LOCALE_REQD)){\
           Perl_ck_warner(aTHX_ packWARN(WARN_LOCALE),                       \
                                              sets_utf8_locale_required);    \
         }                                                                   \
@@ -119,7 +120,7 @@ static const char non_utf8_target_but_ut
 } STMT_END
 
 #ifndef STATIC
-#define	STATIC	static
+#define STATIC  static
 #endif
 
 /*
@@ -177,36 +178,36 @@ static const char non_utf8_target_but_ut
  * VERBS must NOT be included. JUMPABLE is used to determine  if we can ignore a
  * node that is in between two EXACT like nodes when ascertaining what the required
  * "follow" character is. This should probably be moved to regex compile time
- * although it may be done at run time beause of the REF possibility - more
+ * although it may be done at run time because of the REF possibility - more
  * investigation required. -- demerphq
 */
 #define JUMPABLE(rn) (                                                             \
     OP(rn) == OPEN ||                                                              \
     (OP(rn) == CLOSE &&                                                            \
-     !EVAL_CLOSE_PAREN_IS(cur_eval,ARG(rn)) ) ||                                   \
+     !EVAL_CLOSE_PAREN_IS(cur_eval,PARNO(rn)) ) ||                                 \
     OP(rn) == EVAL ||                                                              \
     OP(rn) == SUSPEND || OP(rn) == IFMATCH ||                                      \
     OP(rn) == PLUS || OP(rn) == MINMOD ||                                          \
     OP(rn) == KEEPS ||                                                             \
-    (PL_regkind[OP(rn)] == CURLY && ARG1(rn) > 0)                                  \
+    (REGNODE_TYPE(OP(rn)) == CURLY && ARG1i(rn) > 0)                                  \
 )
-#define IS_EXACT(rn) (PL_regkind[OP(rn)] == EXACT)
+#define IS_EXACT(rn) (REGNODE_TYPE(OP(rn)) == EXACT)
 
-#define HAS_TEXT(rn) ( IS_EXACT(rn) || PL_regkind[OP(rn)] == REF )
+#define HAS_TEXT(rn) ( IS_EXACT(rn) || REGNODE_TYPE(OP(rn)) == REF )
 
 /*
   Search for mandatory following text node; for lookahead, the text must
-  follow but for lookbehind (rn->flags != 0) we skip to the next step.
+  follow but for lookbehind (FLAGS(rn) != 0) we skip to the next step.
 */
 #define FIND_NEXT_IMPT(rn) STMT_START {                                   \
     while (JUMPABLE(rn)) { \
         const OPCODE type = OP(rn); \
-        if (type == SUSPEND || PL_regkind[type] == CURLY) \
-            rn = NEXTOPER(NEXTOPER(rn)); \
+        if (type == SUSPEND || REGNODE_TYPE(type) == CURLY) \
+            rn = REGNODE_AFTER_opcode(rn,type); \
         else if (type == PLUS) \
-            rn = NEXTOPER(rn); \
+            rn = REGNODE_AFTER_type(rn,tregnode_PLUS); \
         else if (type == IFMATCH) \
-            rn = (rn->flags == 0) ? NEXTOPER(NEXTOPER(rn)) : rn + ARG(rn); \
+            rn = (FLAGS(rn) == 0) ? REGNODE_AFTER_type(rn,tregnode_IFMATCH) : rn + ARG1u(rn); \
         else rn += NEXT_OFF(rn); \
     } \
 } STMT_END
@@ -218,29 +219,31 @@ static void S_setup_eval_state(pTHX_ reg
 static void S_cleanup_regmatch_info_aux(pTHX_ void *arg);
 static regmatch_state * S_push_slab(pTHX);
 
-#define REGCP_PAREN_ELEMS 3
 #define REGCP_OTHER_ELEMS 3
 #define REGCP_FRAME_ELEMS 1
 /* REGCP_FRAME_ELEMS are not part of the REGCP_OTHER_ELEMS and
  * are needed for the regexp context stack bookkeeping. */
 
 STATIC CHECKPOINT
-S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen _pDEPTH)
+S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen comma_pDEPTH)
 {
     const int retval = PL_savestack_ix;
-    const int paren_elems_to_push =
-                (maxopenparen - parenfloor) * REGCP_PAREN_ELEMS;
+    /* Number of bytes about to be stored in the stack */
+    const SSize_t paren_bytes_to_push = sizeof(*RXp_OFFSp(rex)) * (maxopenparen - parenfloor);
+    /* Number of savestack[] entries to be filled by the paren data */
+    /* Rounding is performed in case we are few elements short */
+    const int paren_elems_to_push = (paren_bytes_to_push + sizeof(*PL_savestack) - 1) / sizeof(*PL_savestack);
     const UV total_elems = paren_elems_to_push + REGCP_OTHER_ELEMS;
     const UV elems_shifted = total_elems << SAVE_TIGHT_SHIFT;
-    I32 p;
+
     DECLARE_AND_GET_RE_DEBUG_FLAGS;
 
     PERL_ARGS_ASSERT_REGCPPUSH;
 
     if (paren_elems_to_push < 0)
-        Perl_croak(aTHX_ "panic: paren_elems_to_push, %i < 0, maxopenparen: %i parenfloor: %i REGCP_PAREN_ELEMS: %u",
+        Perl_croak(aTHX_ "panic: paren_elems_to_push, %i < 0, maxopenparen: %i parenfloor: %i",
                    (int)paren_elems_to_push, (int)maxopenparen,
-                   (int)parenfloor, (unsigned)REGCP_PAREN_ELEMS);
+                   (int)parenfloor);
 
     if ((elems_shifted >> SAVE_TIGHT_SHIFT) != total_elems)
         Perl_croak(aTHX_ "panic: paren_elems_to_push offset %" UVuf
@@ -249,37 +252,50 @@ S_regcppush(pTHX_ const regexp *rex, I32
                    (unsigned long)maxopenparen,
                    (long)parenfloor);
 
-    SSGROW(total_elems + REGCP_FRAME_ELEMS);
-
     DEBUG_BUFFERS_r(
         if ((int)maxopenparen > (int)parenfloor)
             Perl_re_exec_indentf( aTHX_
                 "rex=0x%" UVxf " offs=0x%" UVxf ": saving capture indices:\n",
                 depth,
                 PTR2UV(rex),
-                PTR2UV(rex->offs)
+                PTR2UV(RXp_OFFSp(rex))
             );
     );
-    for (p = parenfloor+1; p <= (I32)maxopenparen;  p++) {
-/* REGCP_PARENS_ELEMS are pushed per pairs of parentheses. */
-        SSPUSHIV(rex->offs[p].end);
-        SSPUSHIV(rex->offs[p].start);
-        SSPUSHINT(rex->offs[p].start_tmp);
-        DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_
-            "    \\%" UVuf ": %" IVdf "(%" IVdf ")..%" IVdf "\n",
-            depth,
-            (UV)p,
-            (IV)rex->offs[p].start,
-            (IV)rex->offs[p].start_tmp,
-            (IV)rex->offs[p].end
-        ));
-    }
+
+    SSGROW(total_elems + REGCP_FRAME_ELEMS);
+    assert((IV)PL_savestack_max > (IV)(total_elems + REGCP_FRAME_ELEMS));
+
+    /* memcpy the offs inside the stack - it's faster than for loop */
+    memcpy(&PL_savestack[PL_savestack_ix], RXp_OFFSp(rex) + parenfloor + 1, paren_bytes_to_push);
+    PL_savestack_ix += paren_elems_to_push;
+
+    DEBUG_BUFFERS_r({
+	I32 p;
+        for (p = parenfloor + 1; p <= (I32)maxopenparen; p++) {
+            Perl_re_exec_indentf(aTHX_
+                "    \\%" UVuf " %" IVdf " (%" IVdf ") .. %" IVdf " (regcppush)\n",
+                depth,
+                (UV)p,
+                (IV)RXp_OFFSp(rex)[p].start,
+                (IV)RXp_OFFSp(rex)[p].start_tmp,
+                (IV)RXp_OFFSp(rex)[p].end
+            );
+        }
+    });
+
 /* REGCP_OTHER_ELEMS are pushed in any case, parentheses or no. */
     SSPUSHINT(maxopenparen);
-    SSPUSHINT(rex->lastparen);
-    SSPUSHINT(rex->lastcloseparen);
+    SSPUSHINT(RXp_LASTPAREN(rex));
+    SSPUSHINT(RXp_LASTCLOSEPAREN(rex));
     SSPUSHUV(SAVEt_REGCONTEXT | elems_shifted); /* Magic cookie. */
 
+
+    DEBUG_BUFFERS_r({
+        Perl_re_exec_indentf(aTHX_
+                "finished regcppush returning %" IVdf " cur: %" IVdf "\n",
+                depth, retval, PL_savestack_ix);
+    });
+
     return retval;
 }
 
@@ -305,41 +321,83 @@ S_regcppush(pTHX_ const regexp *rex, I32
     regcpblow(cp)
 
 /* set the start and end positions of capture ix */
-#define CLOSE_CAPTURE(ix, s, e)                                            \
-    rex->offs[ix].start = s;                                               \
-    rex->offs[ix].end = e;                                                 \
-    if (ix > rex->lastparen)                                               \
-        rex->lastparen = ix;                                               \
-    rex->lastcloseparen = ix;                                              \
-    DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_                            \
-        "CLOSE: rex=0x%" UVxf " offs=0x%" UVxf ": \\%" UVuf ": set %" IVdf "..%" IVdf " max: %" UVuf "\n", \
-        depth,                                                             \
-        PTR2UV(rex),                                                       \
-        PTR2UV(rex->offs),                                                 \
-        (UV)ix,                                                            \
-        (IV)rex->offs[ix].start,                                           \
-        (IV)rex->offs[ix].end,                                             \
-        (UV)rex->lastparen                                                 \
+#define CLOSE_ANY_CAPTURE(rex, ix, s, e)                                    \
+    RXp_OFFSp(rex)[(ix)].start = (s);                                       \
+    RXp_OFFSp(rex)[(ix)].end = (e)
+
+#define CLOSE_CAPTURE(rex, ix, s, e)                                        \
+    CLOSE_ANY_CAPTURE(rex, ix, s, e);                                       \
+    if (ix > RXp_LASTPAREN(rex))                                            \
+        RXp_LASTPAREN(rex) = (ix);                                          \
+    RXp_LASTCLOSEPAREN(rex) = (ix);                                         \
+    DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_                             \
+        "CLOSE: rex=0x%" UVxf " offs=0x%" UVxf ": \\%" UVuf ": set %" IVdf " .. %" IVdf " max: %" UVuf "\n", \
+        depth,                                                              \
+        PTR2UV(rex),                                                        \
+        PTR2UV(RXp_OFFSp(rex)),                                             \
+        (UV)(ix),                                                           \
+        (IV)RXp_OFFSp(rex)[ix].start,                                       \
+        (IV)RXp_OFFSp(rex)[ix].end,                                         \
+        (UV)RXp_LASTPAREN(rex)                                              \
     ))
 
-#define UNWIND_PAREN(lp, lcp)               \
-    DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_  \
-        "UNWIND_PAREN: rex=0x%" UVxf " offs=0x%" UVxf ": invalidate (%" UVuf "..%" UVuf "] set lcp: %" UVuf "\n", \
-        depth,                              \
-        PTR2UV(rex),                        \
-        PTR2UV(rex->offs),                  \
-        (UV)(lp),                           \
-        (UV)(rex->lastparen),               \
-        (UV)(lcp)                           \
-    ));                                     \
-    for (n = rex->lastparen; n > lp; n--)   \
-        rex->offs[n].end = -1;              \
-    rex->lastparen = n;                     \
-    rex->lastcloseparen = lcp;
+/* the lp and lcp args match the relevant members of the
+ * regexp structure, but in practice they should all be U16
+ * instead as we have a hard limit of U16_MAX parens. See
+ * line 4003 or so of regcomp.c where we parse OPEN parens
+ * of various types. */
+PERL_STATIC_INLINE void
+S_unwind_paren(pTHX_ regexp *rex, U32 lp, U32 lcp comma_pDEPTH) {
+    PERL_ARGS_ASSERT_UNWIND_PAREN;
+    U32 n;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+    DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_
+        "UNWIND_PAREN: rex=0x%" UVxf " offs=0x%" UVxf
+        ": invalidate (%" UVuf " .. %" UVuf ") set lcp: %" UVuf "\n",
+        depth,
+        PTR2UV(rex),
+        PTR2UV(RXp_OFFSp(rex)),
+        (UV)(lp),
+        (UV)(RXp_LASTPAREN(rex)),
+        (UV)(lcp)
+    ));
+    for (n = RXp_LASTPAREN(rex); n > lp; n--) {
+        RXp_OFFSp(rex)[n].end = -1;
+    }
+    RXp_LASTPAREN(rex) = n;
+    RXp_LASTCLOSEPAREN(rex) = lcp;
+}
+#define UNWIND_PAREN(lp,lcp) unwind_paren(rex,lp,lcp)
+
+PERL_STATIC_INLINE void
+S_capture_clear(pTHX_ regexp *rex, U16 from_ix, U16 to_ix, const char *str comma_pDEPTH) {
+    PERL_ARGS_ASSERT_CAPTURE_CLEAR;
+    PERL_UNUSED_ARG(str); /* only used for debugging */
+    U16 my_ix;
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+    for ( my_ix = from_ix; my_ix <= to_ix; my_ix++ ) {
+        DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_
+                "CAPTURE_CLEAR %s \\%" IVdf ": "
+                "%" IVdf "(%" IVdf ") .. %" IVdf
+                " => "
+                "%" IVdf "(%" IVdf ") .. %" IVdf
+                "\n",
+            depth, str, (IV)my_ix,
+            (IV)RXp_OFFSp(rex)[my_ix].start,
+            (IV)RXp_OFFSp(rex)[my_ix].start_tmp,
+            (IV)RXp_OFFSp(rex)[my_ix].end,
+            (IV)-1, (IV)-1, (IV)-1));
+        RXp_OFFSp(rex)[my_ix].start = -1;
+        RXp_OFFSp(rex)[my_ix].start_tmp = -1;
+        RXp_OFFSp(rex)[my_ix].end = -1;
+    }
+}
 
+#define CAPTURE_CLEAR(from_ix, to_ix, str) \
+    if (from_ix) capture_clear(rex,from_ix, to_ix, str)
 
 STATIC void
-S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p _pDEPTH)
+S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p comma_pDEPTH)
 {
     UV i;
     U32 paren;
@@ -347,44 +405,62 @@ S_regcppop(pTHX_ regexp *rex, U32 *maxop
 
     PERL_ARGS_ASSERT_REGCPPOP;
 
+
+    DEBUG_BUFFERS_r({
+        Perl_re_exec_indentf(aTHX_
+                "starting regcppop at %" IVdf "\n",
+                depth, PL_savestack_ix);
+    });
+
     /* Pop REGCP_OTHER_ELEMS before the parentheses loop starts. */
     i = SSPOPUV;
     assert((i & SAVE_MASK) == SAVEt_REGCONTEXT); /* Check that the magic cookie is there. */
     i >>= SAVE_TIGHT_SHIFT; /* Parentheses elements to pop. */
-    rex->lastcloseparen = SSPOPINT;
-    rex->lastparen = SSPOPINT;
+    RXp_LASTCLOSEPAREN(rex) = SSPOPINT;
+    RXp_LASTPAREN(rex) = SSPOPINT;
     *maxopenparen_p = SSPOPINT;
 
     i -= REGCP_OTHER_ELEMS;
     /* Now restore the parentheses context. */
     DEBUG_BUFFERS_r(
-        if (i || rex->lastparen + 1 <= rex->nparens)
+        if (i || RXp_LASTPAREN(rex) + 1 <= rex->nparens)
             Perl_re_exec_indentf( aTHX_
                 "rex=0x%" UVxf " offs=0x%" UVxf ": restoring capture indices to:\n",
                 depth,
                 PTR2UV(rex),
-                PTR2UV(rex->offs)
+                PTR2UV(RXp_OFFSp(rex))
             );
     );
-    paren = *maxopenparen_p;
-    for ( ; i > 0; i -= REGCP_PAREN_ELEMS) {
-        SSize_t tmps;
-        rex->offs[paren].start_tmp = SSPOPINT;
-        rex->offs[paren].start = SSPOPIV;
-        tmps = SSPOPIV;
-        if (paren <= rex->lastparen)
-            rex->offs[paren].end = tmps;
-        DEBUG_BUFFERS_r( Perl_re_exec_indentf( aTHX_
-            "    \\%" UVuf ": %" IVdf "(%" IVdf ")..%" IVdf "%s\n",
-            depth,
-            (UV)paren,
-            (IV)rex->offs[paren].start,
-            (IV)rex->offs[paren].start_tmp,
-            (IV)rex->offs[paren].end,
-            (paren > rex->lastparen ? "(skipped)" : ""));
-        );
-        paren--;
-    }
+    /* substract remaining elements from the stack */
+    PL_savestack_ix -= i;
+
+    /* static assert that offs struc size is not less than stack elem size */
+    STATIC_ASSERT_STMT(sizeof(*RXp_OFFSp(rex)) >= sizeof(*PL_savestack));
+
+    /* calculate actual number of offs/capture groups stored */
+    /* by doing integer division (leaving potential alignment aside) */
+    i = (i * sizeof(*PL_savestack)) / sizeof(*RXp_OFFSp(rex));
+
+    /* calculate paren starting point */
+    /* i is our number of entries which we are subtracting from *maxopenparen_p */
+    /* and we are storing + 1 this to get the beginning */
+    paren = *maxopenparen_p - i + 1;
+
+    /* restore them */
+    memcpy(RXp_OFFSp(rex) + paren, &PL_savestack[PL_savestack_ix], i * sizeof(*RXp_OFFSp(rex)));
+
+    DEBUG_BUFFERS_r(
+        for (; paren <= *maxopenparen_p; ++paren) {
+            Perl_re_exec_indentf(aTHX_
+                "    \\%" UVuf " %" IVdf "(%" IVdf ") .. %" IVdf " %s (regcppop)\n",
+                depth,
+                (UV)paren,
+                (IV)RXp_OFFSp(rex)[paren].start,
+                (IV)RXp_OFFSp(rex)[paren].start_tmp,
+                (IV)RXp_OFFSp(rex)[paren].end,
+                (paren > RXp_LASTPAREN(rex) ? "(skipped)" : ""));
+        }
+    );
 #if 1
     /* It would seem that the similar code in regtry()
      * already takes care of this, and in fact it is in
@@ -395,25 +471,31 @@ S_regcppop(pTHX_ regexp *rex, U32 *maxop
      * this code seems to be necessary or otherwise
      * this erroneously leaves $1 defined: "1" =~ /^(?:(\d)x)?\d$/
      * --jhi updated by dapm */
-    for (i = rex->lastparen + 1; i <= rex->nparens; i++) {
-        if (i > *maxopenparen_p)
-            rex->offs[i].start = -1;
-        rex->offs[i].end = -1;
+    for (i = RXp_LASTPAREN(rex) + 1; i <= rex->nparens; i++) {
+        if (i > *maxopenparen_p) {
+            RXp_OFFSp(rex)[i].start = -1;
+        }
+        RXp_OFFSp(rex)[i].end = -1;
         DEBUG_BUFFERS_r( Perl_re_exec_indentf( aTHX_
-            "    \\%" UVuf ": %s   ..-1 undeffing\n",
+            "    \\%" UVuf ": %s   ..-1 undeffing (regcppop)\n",
             depth,
             (UV)i,
             (i > *maxopenparen_p) ? "-1" : "  "
         ));
     }
 #endif
+    DEBUG_BUFFERS_r({
+        Perl_re_exec_indentf(aTHX_
+                "finished regcppop at %" IVdf "\n",
+                depth, PL_savestack_ix);
+    });
 }
 
 /* restore the parens and associated vars at savestack position ix,
  * but without popping the stack */
 
 STATIC void
-S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p _pDEPTH)
+S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p comma_pDEPTH)
 {
     I32 tmpix = PL_savestack_ix;
     PERL_ARGS_ASSERT_REGCP_RESTORE;
@@ -430,7 +512,7 @@ S_isFOO_lc(pTHX_ const U8 classnum, cons
 {
     /* Returns a boolean as to whether or not 'character' is a member of the
      * Posix character class given by 'classnum' that should be equivalent to a
-     * value in the typedef '_char_class_number'.
+     * value in the typedef 'char_class_number_'.
      *
      * Ideally this could be replaced by a just an array of function pointers
      * to the C library functions that implement the macros this calls.
@@ -441,33 +523,40 @@ S_isFOO_lc(pTHX_ const U8 classnum, cons
      * optimizer strips it away).  But we don't particularly care about
      * performance with locales anyway. */
 
-    switch ((_char_class_number) classnum) {
-        case _CC_ENUM_ALPHANUMERIC: return isALPHANUMERIC_LC(character);
-        case _CC_ENUM_ALPHA:     return isALPHA_LC(character);
-        case _CC_ENUM_ASCII:     return isASCII_LC(character);
-        case _CC_ENUM_BLANK:     return isBLANK_LC(character);
-        case _CC_ENUM_CASED:     return    isLOWER_LC(character)
-                                        || isUPPER_LC(character);
-        case _CC_ENUM_CNTRL:     return isCNTRL_LC(character);
-        case _CC_ENUM_DIGIT:     return isDIGIT_LC(character);
-        case _CC_ENUM_GRAPH:     return isGRAPH_LC(character);
-        case _CC_ENUM_LOWER:     return isLOWER_LC(character);
-        case _CC_ENUM_PRINT:     return isPRINT_LC(character);
-        case _CC_ENUM_PUNCT:     return isPUNCT_LC(character);
-        case _CC_ENUM_SPACE:     return isSPACE_LC(character);
-        case _CC_ENUM_UPPER:     return isUPPER_LC(character);
-        case _CC_ENUM_WORDCHAR:  return isWORDCHAR_LC(character);
-        case _CC_ENUM_XDIGIT:    return isXDIGIT_LC(character);
+    if (IN_UTF8_CTYPE_LOCALE) {
+        return cBOOL(generic_isCC_(character, classnum));
+    }
+
+    switch ((char_class_number_) classnum) {
+        case CC_ENUM_ALPHANUMERIC_: return isU8_ALPHANUMERIC_LC(character);
+        case CC_ENUM_ALPHA_:        return    isU8_ALPHA_LC(character);
+        case CC_ENUM_ASCII_:        return    isU8_ASCII_LC(character);
+        case CC_ENUM_BLANK_:        return    isU8_BLANK_LC(character);
+        case CC_ENUM_CASED_:        return    isU8_CASED_LC(character);
+        case CC_ENUM_CNTRL_:        return    isU8_CNTRL_LC(character);
+        case CC_ENUM_DIGIT_:        return    isU8_DIGIT_LC(character);
+        case CC_ENUM_GRAPH_:        return    isU8_GRAPH_LC(character);
+        case CC_ENUM_LOWER_:        return    isU8_LOWER_LC(character);
+        case CC_ENUM_PRINT_:        return    isU8_PRINT_LC(character);
+        case CC_ENUM_PUNCT_:        return    isU8_PUNCT_LC(character);
+        case CC_ENUM_SPACE_:        return    isU8_SPACE_LC(character);
+        case CC_ENUM_UPPER_:        return    isU8_UPPER_LC(character);
+        case CC_ENUM_WORDCHAR_:     return isU8_WORDCHAR_LC(character);
+        case CC_ENUM_XDIGIT_:       return   isU8_XDIGIT_LC(character);
         default:    /* VERTSPACE should never occur in locales */
-            Perl_croak(aTHX_ "panic: isFOO_lc() has an unexpected character class '%d'", classnum);
+            break;
     }
 
+    Perl_croak(aTHX_
+               "panic: isFOO_lc() has an unexpected character class '%d'",
+               classnum);
+
     NOT_REACHED; /* NOTREACHED */
     return FALSE;
 }
 
 PERL_STATIC_INLINE I32
-S_foldEQ_latin1_s2_folded(const char *s1, const char *s2, I32 len)
+S_foldEQ_latin1_s2_folded(pTHX_ const char *s1, const char *s2, I32 len)
 {
     /* Compare non-UTF-8 using Unicode (Latin1) semantics.  s2 must already be
      * folded.  Works on all folds representable without UTF-8, except for
@@ -500,7 +589,7 @@ S_isFOO_utf8_lc(pTHX_ const U8 classnum,
     /* Returns a boolean as to whether or not the (well-formed) UTF-8-encoded
      * 'character' is a member of the Posix character class given by 'classnum'
      * that should be equivalent to a value in the typedef
-     * '_char_class_number'.
+     * 'char_class_number_'.
      *
      * This just calls isFOO_lc on the code point for the character if it is in
      * the range 0-255.  Outside that range, all characters use Unicode
@@ -520,17 +609,16 @@ S_isFOO_utf8_lc(pTHX_ const U8 classnum,
 
     _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(character, e);
 
-    switch ((_char_class_number) classnum) {
-        case _CC_ENUM_SPACE:     return is_XPERLSPACE_high(character);
-        case _CC_ENUM_BLANK:     return is_HORIZWS_high(character);
-        case _CC_ENUM_XDIGIT:    return is_XDIGIT_high(character);
-        case _CC_ENUM_VERTSPACE: return is_VERTWS_high(character);
+    switch ((char_class_number_) classnum) {
+        case CC_ENUM_SPACE_:     return is_XPERLSPACE_high(character);
+        case CC_ENUM_BLANK_:     return is_HORIZWS_high(character);
+        case CC_ENUM_XDIGIT_:    return is_XDIGIT_high(character);
+        case CC_ENUM_VERTSPACE_: return is_VERTWS_high(character);
         default:
             return _invlist_contains_cp(PL_XPosix_ptrs[classnum],
                                         utf8_to_uvchr_buf(character, e, NULL));
     }
-
-    return FALSE; /* Things like CNTRL are always below 256 */
+    NOT_REACHED; /* NOTREACHED */
 }
 
 STATIC U8 *
@@ -1111,7 +1199,7 @@ Perl_re_intuit_start(pTHX_
             && prog->intflags & PREGf_ANCH
             && prog->check_offset_max != SSize_t_MAX)
         {
-            SSize_t check_len = SvCUR(check) - !!SvTAIL(check);
+            SSize_t check_len = SvCUR(check) - cBOOL(SvTAIL(check));
             const char * const anchor =
                         (prog->intflags & PREGf_ANCH_GPOS ? strpos : strbeg);
             SSize_t targ_len = (char*)end_point - anchor;
@@ -1478,11 +1566,11 @@ Perl_re_intuit_start(pTHX_
      * (trie stclasses are too expensive to use here, we are better off to
      * leave it to regmatch itself) */
 
-    if (progi->regstclass && PL_regkind[OP(progi->regstclass)]!=TRIE) {
+    if (progi->regstclass && REGNODE_TYPE(OP(progi->regstclass))!=TRIE) {
         const U8* const str = (U8*)STRING(progi->regstclass);
 
         /* XXX this value could be pre-computed */
-        const SSize_t cl_l = (PL_regkind[OP(progi->regstclass)] == EXACT
+        const SSize_t cl_l = (REGNODE_TYPE(OP(progi->regstclass)) == EXACT
                     ?  (reginfo->is_utf8_pat
                         ? (SSize_t)utf8_distance(str + STR_LEN(progi->regstclass), str)
                         : (SSize_t)STR_LEN(progi->regstclass))
@@ -1693,15 +1781,15 @@ Perl_re_intuit_start(pTHX_
     const enum { trie_plain, trie_utf8, trie_utf8_fold, trie_latin_utf8_fold,       \
                  trie_utf8_exactfa_fold, trie_latin_utf8_exactfa_fold,              \
                  trie_utf8l, trie_flu8, trie_flu8_latin }                           \
-                    trie_type = ((scan->flags == EXACT)                             \
+                    trie_type = ((FLAGS(scan) == EXACT)                             \
                                  ? (utf8_target ? trie_utf8 : trie_plain)           \
-                                 : (scan->flags == EXACTL)                          \
+                                 : (FLAGS(scan) == EXACTL)                          \
                                     ? (utf8_target ? trie_utf8l : trie_plain)       \
-                                    : (scan->flags == EXACTFAA)                     \
+                                    : (FLAGS(scan) == EXACTFAA)                     \
                                       ? (utf8_target                                \
                                          ? trie_utf8_exactfa_fold                   \
                                          : trie_latin_utf8_exactfa_fold)            \
-                                      : (scan->flags == EXACTFLU8                   \
+                                      : (FLAGS(scan) == EXACTFLU8                   \
                                          ? (utf8_target                             \
                                            ? trie_flu8                              \
                                            : trie_flu8_latin)                       \
@@ -1717,7 +1805,7 @@ STMT_START {                            
     U8 flags = FOLD_FLAGS_FULL;                                                     \
     switch (trie_type) {                                                            \
     case trie_flu8:                                                                 \
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;                                         \
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;                                         \
         if (UTF8_IS_ABOVE_LATIN1(*uc)) {                                            \
             _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end);                     \
         }                                                                           \
@@ -1742,7 +1830,7 @@ STMT_START {                            
         }                                                                           \
         break;                                                                      \
     case trie_flu8_latin:                                                           \
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;                                         \
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;                                         \
         goto do_trie_latin_utf8_fold;                                               \
     case trie_latin_utf8_exactfa_fold:                                              \
         flags |= FOLD_FLAGS_NOMIX_ASCII;                                            \
@@ -1763,7 +1851,7 @@ STMT_START {                            
         }                                                                           \
         break;                                                                      \
     case trie_utf8l:                                                                \
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;                                         \
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;                                         \
         if (utf8_target && UTF8_IS_ABOVE_LATIN1(*uc)) {                             \
             _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(uc, uc_end);                     \
         }                                                                           \
@@ -1793,6 +1881,9 @@ STMT_START {                            
     dump_exec_pos(li,s,(reginfo->strend),(reginfo->strbeg), \
                 startpos, doutf8, depth)
 
+#define GET_ANYOFH_INVLIST(prog, n)                                         \
+                        GET_REGCLASS_AUX_DATA(prog, n, TRUE, 0, NULL, NULL)
+
 #define REXEC_FBC_UTF8_SCAN(CODE)                           \
     STMT_START {                                            \
         while (s < strend) {                                \
@@ -2183,7 +2274,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
     U8 c2;
     char *e = NULL;
 
-    /* In some cases we accept only the first occurence of 'x' in a sequence of
+    /* In some cases we accept only the first occurrence of 'x' in a sequence of
      * them.  This variable points to just beyond the end of the previous
      * occurrence of 'x', hence we can tell if we are in a sequence.  (Having
      * it point to beyond the 'x' allows us to work for UTF-8 without having to
@@ -2197,7 +2288,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
     bool to_complement = FALSE; /* Invert the result?  Taking the xor of this
                                    with a result inverts that result, as 0^1 =
                                    1 and 1^1 = 0 */
-    _char_class_number classnum;
+    char_class_number_ classnum;
 
     RXi_GET_DECL(prog,progi);
 
@@ -2208,12 +2299,13 @@ S_find_byclass(pTHX_ regexp * prog, cons
      * for it isn't; 'b' stands for byte), and the UTF8ness of the pattern
      * ('p8' and 'pb'. */
     switch (with_tp_UTF8ness(OP(c), utf8_target, is_utf8_pat)) {
+        SV * anyofh_list;
 
       case ANYOFPOSIXL_t8_pb:
       case ANYOFPOSIXL_t8_p8:
       case ANYOFL_t8_pb:
       case ANYOFL_t8_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(c);
 
         /* FALLTHROUGH */
@@ -2230,7 +2322,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case ANYOFPOSIXL_tb_p8:
       case ANYOFL_tb_pb:
       case ANYOFL_tb_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(c);
 
         /* FALLTHROUGH */
@@ -2239,22 +2331,22 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case ANYOFD_tb_p8:
       case ANYOF_tb_pb:
       case ANYOF_tb_p8:
-        if (ANYOF_FLAGS(c) & ~ ANYOF_MATCHES_ALL_ABOVE_BITMAP) {
+        if (! ANYOF_FLAGS(c) && ANYOF_MATCHES_NONE_OUTSIDE_BITMAP(c)) {
             /* We know that s is in the bitmap range since the target isn't
              * UTF-8, so what happens for out-of-range values is not relevant,
              * so exclude that from the flags */
-            REXEC_FBC_NON_UTF8_CLASS_SCAN(reginclass(prog,c, (U8*)s, (U8*)s+1,
-                                                     0));
+            REXEC_FBC_NON_UTF8_CLASS_SCAN(ANYOF_BITMAP_TEST(c, *((U8*)s)));
         }
         else {
-            REXEC_FBC_NON_UTF8_CLASS_SCAN(ANYOF_BITMAP_TEST(c, *((U8*)s)));
+            REXEC_FBC_NON_UTF8_CLASS_SCAN(reginclass(prog,c, (U8*)s, (U8*)s+1,
+                                                     0));
         }
         break;
 
-      case ANYOFM_tb_pb: /* ARG() is the base byte; FLAGS() the mask byte */
+      case ANYOFM_tb_pb: /* ARG1u() is the base byte; FLAGS() the mask byte */
       case ANYOFM_tb_p8:
         REXEC_FBC_NON_UTF8_FIND_NEXT_SCAN(
-             find_next_masked((U8 *) s, (U8 *) strend, (U8) ARG(c), FLAGS(c)));
+             find_next_masked((U8 *) s, (U8 *) strend, (U8) ARG1u(c), FLAGS(c)));
         break;
 
       case ANYOFM_t8_pb:
@@ -2263,13 +2355,13 @@ S_find_byclass(pTHX_ regexp * prog, cons
          * we do anyway for performance reasons, as otherwise we would have to
          * examine all the continuation characters */
         REXEC_FBC_UTF8_FIND_NEXT_SCAN(
-             find_next_masked((U8 *) s, (U8 *) strend, (U8) ARG(c), FLAGS(c)));
+             find_next_masked((U8 *) s, (U8 *) strend, (U8) ARG1u(c), FLAGS(c)));
         break;
 
       case NANYOFM_tb_pb:
       case NANYOFM_tb_p8:
         REXEC_FBC_NON_UTF8_FIND_NEXT_SCAN(
-           find_span_end_mask((U8 *) s, (U8 *) strend, (U8) ARG(c), FLAGS(c)));
+           find_span_end_mask((U8 *) s, (U8 *) strend, (U8) ARG1u(c), FLAGS(c)));
         break;
 
       case NANYOFM_t8_pb:
@@ -2277,7 +2369,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
                                   variants. */
         REXEC_FBC_UTF8_FIND_NEXT_SCAN(
                         (char *) find_span_end_mask((U8 *) s, (U8 *) strend,
-                                                    (U8) ARG(c), FLAGS(c)));
+                                                    (U8) ARG1u(c), FLAGS(c)));
         break;
 
       /* These nodes all require at least one code point to be in UTF-8 to
@@ -2286,6 +2378,8 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case ANYOFH_tb_p8:
       case ANYOFHb_tb_pb:
       case ANYOFHb_tb_p8:
+      case ANYOFHbbm_tb_pb:
+      case ANYOFHbbm_tb_p8:
       case ANYOFHr_tb_pb:
       case ANYOFHr_tb_p8:
       case ANYOFHs_tb_pb:
@@ -2298,9 +2392,13 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case ANYOFH_t8_pb:
       case ANYOFH_t8_p8:
+        anyofh_list = GET_ANYOFH_INVLIST(prog, c);
         REXEC_FBC_UTF8_CLASS_SCAN(
               (   (U8) NATIVE_UTF8_TO_I8(*s) >= ANYOF_FLAGS(c)
-               && reginclass(prog, c, (U8*)s, (U8*) strend, 1 /* is utf8 */)));
+               && _invlist_contains_cp(anyofh_list,
+                                       utf8_to_uvchr_buf((U8 *) s,
+                                                         (U8 *) strend,
+                                                         NULL))));
         break;
 
       case ANYOFHb_t8_pb:
@@ -2309,29 +2407,53 @@ S_find_byclass(pTHX_ regexp * prog, cons
             /* We know what the first byte of any matched string should be. */
             U8 first_byte = FLAGS(c);
 
+            anyofh_list = GET_ANYOFH_INVLIST(prog, c);
+            REXEC_FBC_FIND_NEXT_UTF8_BYTE_SCAN(first_byte,
+                   _invlist_contains_cp(anyofh_list,
+                                           utf8_to_uvchr_buf((U8 *) s,
+                                                              (U8 *) strend,
+                                                              NULL)));
+        }
+        break;
+
+      case ANYOFHbbm_t8_pb:
+      case ANYOFHbbm_t8_p8:
+        {
+            /* We know what the first byte of any matched string should be. */
+            U8 first_byte = FLAGS(c);
+
+            /* And a bitmap defines all the legal 2nd byte matches */
             REXEC_FBC_FIND_NEXT_UTF8_BYTE_SCAN(first_byte,
-                    reginclass(prog, c, (U8*)s, (U8*) strend, 1 /* is utf8 */));
+                               (    s < strend
+                                && BITMAP_TEST(((struct regnode_bbm *) c)->bitmap,
+                                            (U8) s[1] & UTF_CONTINUATION_MASK)));
         }
         break;
 
       case ANYOFHr_t8_pb:
       case ANYOFHr_t8_p8:
+        anyofh_list = GET_ANYOFH_INVLIST(prog, c);
         REXEC_FBC_UTF8_CLASS_SCAN(
                     (   inRANGE(NATIVE_UTF8_TO_I8(*s),
                                 LOWEST_ANYOF_HRx_BYTE(ANYOF_FLAGS(c)),
                                 HIGHEST_ANYOF_HRx_BYTE(ANYOF_FLAGS(c)))
-                    && reginclass(prog, c, (U8*)s, (U8*) strend,
-                                                           1 /* is utf8 */)));
+                   && _invlist_contains_cp(anyofh_list,
+                                           utf8_to_uvchr_buf((U8 *) s,
+                                                              (U8 *) strend,
+                                                              NULL))));
         break;
 
       case ANYOFHs_t8_pb:
       case ANYOFHs_t8_p8:
+        anyofh_list = GET_ANYOFH_INVLIST(prog, c);
         REXEC_FBC_FIND_NEXT_UTF8_STRING_SCAN(
                         ((struct regnode_anyofhs *) c)->string,
                         /* Note FLAGS is the string length in this regnode */
                         ((struct regnode_anyofhs *) c)->string + FLAGS(c),
-                        reginclass(prog, c, (U8*)s, (U8*) strend,
-                                   1 /* is utf8 */));
+                        _invlist_contains_cp(anyofh_list,
+                                             utf8_to_uvchr_buf((U8 *) s,
+                                                               (U8 *) strend,
+                                                               NULL)));
         break;
 
       case ANYOFR_tb_pb:
@@ -2374,16 +2496,16 @@ S_find_byclass(pTHX_ regexp * prog, cons
         /* Latin1 folds are not affected by /a, except it excludes the sharp s,
          * which these functions don't handle anyway */
         fold_array = PL_fold_latin1;
-        folder = foldEQ_latin1_s2_folded;
+        folder = S_foldEQ_latin1_s2_folded;
         goto do_exactf_non_utf8;
 
       case EXACTF_tb_pb:
         fold_array = PL_fold;
-        folder = foldEQ;
+        folder = Perl_foldEQ;
         goto do_exactf_non_utf8;
 
       case EXACTFL_tb_pb:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
 
         if (IN_UTF8_CTYPE_LOCALE) {
             utf8_fold_flags = FOLDEQ_LOCALE;
@@ -2391,7 +2513,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
         }
 
         fold_array = PL_fold_locale;
-        folder = foldEQ_locale;
+        folder = Perl_foldEQ_locale;
         goto do_exactf_non_utf8;
 
       case EXACTFU_tb_pb:
@@ -2399,7 +2521,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
          * don't have to worry here about this single special case in the
          * Latin1 range */
         fold_array = PL_fold_latin1;
-        folder = foldEQ_latin1_s2_folded;
+        folder = S_foldEQ_latin1_s2_folded;
 
         /* FALLTHROUGH */
 
@@ -2418,7 +2540,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
         /* We know that we have to match at least 'ln' bytes (which is the same
          * as characters, since not utf8).  If we have to match 3 characters,
-         * and there are only 2 availabe, we know without trying that it will
+         * and there are only 2 available, we know without trying that it will
          * fail; so don't start a match past the required minimum number from
          * the far end */
         e = HOP3c(strend, -((SSize_t)ln), s);
@@ -2435,7 +2557,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
                 }
 
                 /* Check that the rest of the node matches */
-                if (   (ln == 1 || folder(s + 1, pat_string + 1, ln - 1))
+                if (   (ln == 1 || folder(aTHX_ s + 1, pat_string + 1, ln - 1))
                     && (reginfo->intuit || regtry(reginfo, &s)) )
                 {
                     goto got_it;
@@ -2459,7 +2581,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
                         break;
                     }
 
-                    if (   (ln == 1 || folder(s + 1, pat_string + 1, ln - 1))
+                    if (   (ln == 1 || folder(aTHX_ s + 1, pat_string + 1, ln - 1))
                         && (reginfo->intuit || regtry(reginfo, &s)) )
                     {
                         goto got_it;
@@ -2471,7 +2593,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
                        should actually happen only in EXACTFL nodes */
                 while (s <= e) {
                     if (    (*(U8*)s == c1 || *(U8*)s == c2)
-                        && (ln == 1 || folder(s + 1, pat_string + 1, ln - 1))
+                        && (ln == 1 || folder(aTHX_ s + 1, pat_string + 1, ln - 1))
                         && (reginfo->intuit || regtry(reginfo, &s)) )
                     {
                         goto got_it;
@@ -2504,7 +2626,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case EXACTFL_tb_p8:
       case EXACTFL_t8_pb:
       case EXACTFL_t8_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         utf8_fold_flags = FOLDEQ_LOCALE;
         goto do_exactf_utf8;
 
@@ -2635,7 +2757,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case NBOUNDL_tb_pb:
       case NBOUNDL_tb_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         if (FLAGS(c) == TRADITIONAL_BOUND) {
             FBC_NBOUND_NON_UTF8(isWORDCHAR_LC);
             break;
@@ -2648,7 +2770,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case BOUNDL_tb_pb:
       case BOUNDL_tb_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         if (FLAGS(c) == TRADITIONAL_BOUND) {
             FBC_BOUND_NON_UTF8(isWORDCHAR_LC);
             break;
@@ -2779,7 +2901,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case BOUNDL_t8_pb:
       case BOUNDL_t8_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         if (FLAGS(c) == TRADITIONAL_BOUND) {
             FBC_BOUND_UTF8(isWORDCHAR_LC, isWORDCHAR_LC_uvchr,
                            isWORDCHAR_LC_utf8_safe);
@@ -2793,7 +2915,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case NBOUNDL_t8_pb:
       case NBOUNDL_t8_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         if (FLAGS(c) == TRADITIONAL_BOUND) {
             FBC_NBOUND_UTF8(isWORDCHAR_LC, isWORDCHAR_LC_uvchr,
                             isWORDCHAR_LC_utf8_safe);
@@ -2990,7 +3112,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
         break;
 
       /* The argument to all the POSIX node types is the class number to pass
-       * to _generic_isCC() to build a mask for searching in PL_charclass[] */
+       * to generic_isCC_() to build a mask for searching in PL_charclass[] */
 
       case NPOSIXL_t8_pb:
       case NPOSIXL_t8_p8:
@@ -2999,7 +3121,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case POSIXL_t8_pb:
       case POSIXL_t8_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         REXEC_FBC_UTF8_CLASS_SCAN(
             to_complement ^ cBOOL(isFOO_utf8_lc(FLAGS(c), (U8 *) s,
                                                           (U8 *) strend)));
@@ -3012,7 +3134,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
 
       case POSIXL_tb_pb:
       case POSIXL_tb_p8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         REXEC_FBC_NON_UTF8_CLASS_SCAN(
                                 to_complement ^ cBOOL(isFOO_lc(FLAGS(c), *s)));
         break;
@@ -3022,7 +3144,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
         /* The complement of something that matches only ASCII matches all
          * non-ASCII, plus everything in ASCII that isn't in the class. */
         REXEC_FBC_UTF8_CLASS_SCAN(   ! isASCII_utf8_safe(s, strend)
-                                  || ! _generic_isCC_A(*s, FLAGS(c)));
+                                  || ! generic_isCC_A_(*s, FLAGS(c)));
         break;
 
       case POSIXA_t8_pb:
@@ -3031,7 +3153,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
          * byte invariant character.  But we do anyway for performance reasons,
          * as otherwise we would have to examine all the continuation
          * characters */
-        REXEC_FBC_UTF8_CLASS_SCAN(_generic_isCC_A(*s, FLAGS(c)));
+        REXEC_FBC_UTF8_CLASS_SCAN(generic_isCC_A_(*s, FLAGS(c)));
         break;
 
       case NPOSIXD_tb_pb:
@@ -3046,7 +3168,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case POSIXA_tb_pb:
       case POSIXA_tb_p8:
         REXEC_FBC_NON_UTF8_CLASS_SCAN(
-                        to_complement ^ cBOOL(_generic_isCC_A(*s, FLAGS(c))));
+                        to_complement ^ cBOOL(generic_isCC_A_(*s, FLAGS(c))));
         break;
 
       case NPOSIXU_tb_pb:
@@ -3057,7 +3179,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case POSIXU_tb_pb:
       case POSIXU_tb_p8:
             REXEC_FBC_NON_UTF8_CLASS_SCAN(
-                                 to_complement ^ cBOOL(_generic_isCC(*s,
+                                 to_complement ^ cBOOL(generic_isCC_(*s,
                                                                     FLAGS(c))));
         break;
 
@@ -3072,7 +3194,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
       case POSIXD_t8_p8:
       case POSIXU_t8_pb:
       case POSIXU_t8_p8:
-        classnum = (_char_class_number) FLAGS(c);
+        classnum = (char_class_number_) FLAGS(c);
         switch (classnum) {
           default:
             REXEC_FBC_UTF8_CLASS_SCAN(
@@ -3083,27 +3205,27 @@ S_find_byclass(pTHX_ regexp * prog, cons
                                                                 NULL))));
             break;
 
-          case _CC_ENUM_SPACE:
+          case CC_ENUM_SPACE_:
             REXEC_FBC_UTF8_CLASS_SCAN(
                         to_complement ^ cBOOL(isSPACE_utf8_safe(s, strend)));
             break;
 
-          case _CC_ENUM_BLANK:
+          case CC_ENUM_BLANK_:
             REXEC_FBC_UTF8_CLASS_SCAN(
                         to_complement ^ cBOOL(isBLANK_utf8_safe(s, strend)));
             break;
 
-          case _CC_ENUM_XDIGIT:
+          case CC_ENUM_XDIGIT_:
             REXEC_FBC_UTF8_CLASS_SCAN(
                         to_complement ^ cBOOL(isXDIGIT_utf8_safe(s, strend)));
             break;
 
-          case _CC_ENUM_VERTSPACE:
+          case CC_ENUM_VERTSPACE_:
             REXEC_FBC_UTF8_CLASS_SCAN(
                         to_complement ^ cBOOL(isVERTWS_utf8_safe(s, strend)));
             break;
 
-          case _CC_ENUM_CNTRL:
+          case CC_ENUM_CNTRL_:
             REXEC_FBC_UTF8_CLASS_SCAN(
                         to_complement ^ cBOOL(isCNTRL_utf8_safe(s, strend)));
             break;
@@ -3121,7 +3243,7 @@ S_find_byclass(pTHX_ regexp * prog, cons
         {
             DECL_TRIE_TYPE(c);
             /* what trie are we using right now */
-            reg_ac_data *aho = (reg_ac_data*)progi->data->data[ ARG( c ) ];
+            reg_ac_data *aho = (reg_ac_data*)progi->data->data[ ARG1u( c ) ];
             reg_trie_data *trie = (reg_trie_data*)progi->data->data[aho->trie];
             HV *widecharmap = MUTABLE_HV(progi->data->data[ aho->trie + 1 ]);
 
@@ -3393,29 +3515,29 @@ S_reg_set_capture_string(pTHX_ REGEXP * 
             /* Create a new COW SV to share the match string and store
              * in saved_copy, unless the current COW SV in saved_copy
              * is valid and suitable for our purpose */
-            if ((   prog->saved_copy
-                 && SvIsCOW(prog->saved_copy)
-                 && SvPOKp(prog->saved_copy)
+            if ((   RXp_SAVED_COPY(prog)
+                 && SvIsCOW(RXp_SAVED_COPY(prog))
+                 && SvPOKp(RXp_SAVED_COPY(prog))
                  && SvIsCOW(sv)
                  && SvPOKp(sv)
-                 && SvPVX(sv) == SvPVX(prog->saved_copy)))
+                 && SvPVX(sv) == SvPVX(RXp_SAVED_COPY(prog))))
             {
                 /* just reuse saved_copy SV */
                 if (RXp_MATCH_COPIED(prog)) {
-                    Safefree(prog->subbeg);
+                    Safefree(RXp_SUBBEG(prog));
                     RXp_MATCH_COPIED_off(prog);
                 }
             }
             else {
                 /* create new COW SV to share string */
                 RXp_MATCH_COPY_FREE(prog);
-                prog->saved_copy = sv_setsv_cow(prog->saved_copy, sv);
+                RXp_SAVED_COPY(prog) = sv_setsv_cow(RXp_SAVED_COPY(prog), sv);
             }
-            prog->subbeg = (char *)SvPVX_const(prog->saved_copy);
-            assert (SvPOKp(prog->saved_copy));
-            prog->sublen  = strend - strbeg;
-            prog->suboffset = 0;
-            prog->subcoffset = 0;
+            RXp_SUBBEG(prog) = (char *)SvPVX_const(RXp_SAVED_COPY(prog));
+            assert (SvPOKp(RXp_SAVED_COPY(prog)));
+            RXp_SUBLEN(prog)  = strend - strbeg;
+            RXp_SUBOFFSET(prog) = 0;
+            RXp_SUBCOFFSET(prog) = 0;
         } else
 #endif
         {
@@ -3427,19 +3549,20 @@ S_reg_set_capture_string(pTHX_ REGEXP * 
                 && !(prog->extflags & RXf_PMf_KEEPCOPY) /* //p */
                 && !(PL_sawampersand & SAWAMPERSAND_RIGHT)
             ) { /* don't copy $' part of string */
+                SSize_t offs_end;
                 U32 n = 0;
                 max = -1;
                 /* calculate the right-most part of the string covered
                  * by a capture. Due to lookahead, this may be to
                  * the right of $&, so we have to scan all captures */
-                while (n <= prog->lastparen) {
-                    if (prog->offs[n].end > max)
-                        max = prog->offs[n].end;
+                while (n <= RXp_LASTPAREN(prog)) {
+                    if ((offs_end = RXp_OFFS_END(prog,n)) > max)
+                        max = offs_end;
                     n++;
                 }
                 if (max == -1)
                     max = (PL_sawampersand & SAWAMPERSAND_LEFT)
-                            ? prog->offs[0].start
+                            ? RXp_OFFS_START(prog,0)
                             : 0;
                 assert(max >= 0 && max <= strend - strbeg);
             }
@@ -3453,18 +3576,19 @@ S_reg_set_capture_string(pTHX_ REGEXP * 
                 /* calculate the left-most part of the string covered
                  * by a capture. Due to lookbehind, this may be to
                  * the left of $&, so we have to scan all captures */
-                while (min && n <= prog->lastparen) {
-                    if (   prog->offs[n].start != -1
-                        && prog->offs[n].start < min)
+                while (min && n <= RXp_LASTPAREN(prog)) {
+                    I32 start = RXp_OFFS_START(prog,n);
+                    if (   start != -1
+                        && start < min)
                     {
-                        min = prog->offs[n].start;
+                        min = start;
                     }
                     n++;
                 }
                 if ((PL_sawampersand & SAWAMPERSAND_RIGHT)
-                    && min >  prog->offs[0].end
+                    && min >  RXp_OFFS_END(prog,0)
                 )
-                    min = prog->offs[0].end;
+                    min = RXp_OFFS_END(prog,0);
 
             }
 
@@ -3472,20 +3596,20 @@ S_reg_set_capture_string(pTHX_ REGEXP * 
             sublen = max - min;
 
             if (RXp_MATCH_COPIED(prog)) {
-                if (sublen > prog->sublen)
-                    prog->subbeg =
-                            (char*)saferealloc(prog->subbeg, sublen+1);
+                if (sublen > RXp_SUBLEN(prog))
+                    RXp_SUBBEG(prog) =
+                            (char*)saferealloc(RXp_SUBBEG(prog), sublen+1);
             }
             else
-                prog->subbeg = (char*)safemalloc(sublen+1);
-            Copy(strbeg + min, prog->subbeg, sublen, char);
-            prog->subbeg[sublen] = '\0';
-            prog->suboffset = min;
-            prog->sublen = sublen;
+                RXp_SUBBEG(prog) = (char*)safemalloc(sublen+1);
+            Copy(strbeg + min, RXp_SUBBEG(prog), sublen, char);
+            RXp_SUBBEG(prog)[sublen] = '\0';
+            RXp_SUBOFFSET(prog) = min;
+            RXp_SUBLEN(prog) = sublen;
             RXp_MATCH_COPIED_on(prog);
         }
-        prog->subcoffset = prog->suboffset;
-        if (prog->suboffset && utf8_target) {
+        RXp_SUBCOFFSET(prog) = RXp_SUBOFFSET(prog);
+        if (RXp_SUBOFFSET(prog) && utf8_target) {
             /* Convert byte offset to chars.
              * XXX ideally should only compute this if @-/@+
              * has been seen, a la PL_sawampersand ??? */
@@ -3501,19 +3625,19 @@ S_reg_set_capture_string(pTHX_ REGEXP * 
              *   $x = "\x{100}" x 1E6; 1 while $x =~ /(.)/g;
              * from going quadratic */
             if (SvPOKp(sv) && SvPVX(sv) == strbeg)
-                prog->subcoffset = sv_pos_b2u_flags(sv, prog->subcoffset,
+                RXp_SUBCOFFSET(prog) = sv_pos_b2u_flags(sv, RXp_SUBCOFFSET(prog),
                                                 SV_GMAGIC|SV_CONST_RETURN);
             else
-                prog->subcoffset = utf8_length((U8*)strbeg,
-                                    (U8*)(strbeg+prog->suboffset));
+                RXp_SUBCOFFSET(prog) = utf8_length((U8*)strbeg,
+                                    (U8*)(strbeg+RXp_SUBOFFSET(prog)));
         }
     }
     else {
         RXp_MATCH_COPY_FREE(prog);
-        prog->subbeg = strbeg;
-        prog->suboffset = 0;
-        prog->subcoffset = 0;
-        prog->sublen = strend - strbeg;
+        RXp_SUBBEG(prog) = strbeg;
+        RXp_SUBOFFSET(prog) = 0;
+        RXp_SUBCOFFSET(prog) = 0;
+        RXp_SUBLEN(prog) = strend - strbeg;
     }
 }
 
@@ -3665,12 +3789,13 @@ Perl_regexec_flags(pTHX_ REGEXP * const 
 
             /* match via INTUIT shouldn't have any captures.
              * Let @-, @+, $^N know */
-            prog->lastparen = prog->lastcloseparen = 0;
+            RXp_LASTPAREN(prog) = RXp_LASTCLOSEPAREN(prog) = 0;
             RXp_MATCH_UTF8_set(prog, utf8_target);
-            prog->offs[0].start = s - strbeg;
-            prog->offs[0].end = utf8_target
+            SSize_t match_start = s - strbeg;
+            SSize_t match_end = utf8_target
                 ? (char*)utf8_hop_forward((U8*)s, prog->minlenret, (U8 *) strend) - strbeg
                 : s - strbeg + prog->minlenret;
+            CLOSE_ANY_CAPTURE(prog, 0, match_start, match_end);
             if ( !(flags & REXEC_NOT_FIRST) )
                 S_reg_set_capture_string(aTHX_ rx,
                                         strbeg, strend,
@@ -3775,16 +3900,16 @@ Perl_regexec_flags(pTHX_ REGEXP * const 
            to the re, and switch the buffer each match. If we fail,
            we switch it back; otherwise we leave it swapped.
         */
-        swap = prog->offs;
+        swap = RXp_OFFSp(prog);
         /* avoid leak if we die, or clean up anyway if match completes */
         SAVEFREEPV(swap);
-        Newxz(prog->offs, (prog->nparens + 1), regexp_paren_pair);
+        Newxz(RXp_OFFSp(prog), (prog->nparens + 1), regexp_paren_pair);
         DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_
             "rex=0x%" UVxf " saving  offs: orig=0x%" UVxf " new=0x%" UVxf "\n",
             0,
             PTR2UV(prog),
             PTR2UV(swap),
-            PTR2UV(prog->offs)
+            PTR2UV(RXp_OFFSp(prog))
         ));
     }
 
@@ -4009,7 +4134,7 @@ Perl_regexec_flags(pTHX_ REGEXP * const 
         if (minlen) {
             const OPCODE op = OP(progi->regstclass);
             /* don't bother with what can't match */
-            if (PL_regkind[op] != EXACT && PL_regkind[op] != TRIE)
+            if (REGNODE_TYPE(op) != EXACT && REGNODE_TYPE(op) != TRIE)
                 strend = HOPc(strend, -(minlen - 1));
         }
         DEBUG_EXECUTE_r({
@@ -4155,7 +4280,7 @@ Perl_regexec_flags(pTHX_ REGEXP * const 
     /* s/// doesn't like it if $& is earlier than where we asked it to
      * start searching (which can happen on something like /.\G/) */
     if (       (flags & REXEC_FAIL_ON_UNDERFLOW)
-            && (prog->offs[0].start < stringarg - strbeg))
+            && (RXp_OFFS_START(prog,0) < stringarg - strbeg))
     {
         /* this should only be possible under \G */
         assert(prog->intflags & PREGf_GPOS_SEEN);
@@ -4195,11 +4320,11 @@ Perl_regexec_flags(pTHX_ REGEXP * const 
             "rex=0x%" UVxf " rolling back offs: 0x%" UVxf " will be freed; restoring data to =0x%" UVxf "\n",
             0,
             PTR2UV(prog),
-            PTR2UV(prog->offs),
+            PTR2UV(RXp_OFFSp(prog)),
             PTR2UV(swap)
         ));
 
-        Copy(swap, prog->offs, prog->nparens + 1, regexp_paren_pair);
+        Copy(swap, RXp_OFFSp(prog), prog->nparens + 1, regexp_paren_pair);
     }
 
     /* clean up; this will trigger destructors that will free all slabs
@@ -4242,17 +4367,17 @@ S_regtry(pTHX_ regmatch_info *reginfo, c
 
     reginfo->cutpoint=NULL;
 
-    prog->offs[0].start = *startposp - reginfo->strbeg;
-    prog->lastparen = 0;
-    prog->lastcloseparen = 0;
+    RXp_OFFSp(prog)[0].start = *startposp - reginfo->strbeg;
+    RXp_LASTPAREN(prog) = 0;
+    RXp_LASTCLOSEPAREN(prog) = 0;
 
     /* XXXX What this code is doing here?!!!  There should be no need
-       to do this again and again, prog->lastparen should take care of
+       to do this again and again, RXp_LASTPAREN(prog) should take care of
        this!  --ilya*/
 
     /* Tests pat.t#187 and split.t#{13,14} seem to depend on this code.
      * Actually, the code in regcppop() (which Ilya may be meaning by
-     * prog->lastparen), is not needed at all by the test suite
+     * RXp_LASTPAREN(prog)), is not needed at all by the test suite
      * (op/regexp, op/pat, op/split), but that code is needed otherwise
      * this erroneously leaves $1 defined: "1" =~ /^(?:(\d)x)?\d$/
      * Meanwhile, this code *is* needed for the
@@ -4269,9 +4394,9 @@ S_regtry(pTHX_ regmatch_info *reginfo, c
      * places it is called, and related regcp() routines. - Yves */
 #if 1
     if (prog->nparens) {
-        regexp_paren_pair *pp = prog->offs;
+        regexp_paren_pair *pp = RXp_OFFSp(prog);
         I32 i;
-        for (i = prog->nparens; i > (I32)prog->lastparen; i--) {
+        for (i = prog->nparens; i > (I32)RXp_LASTPAREN(prog); i--) {
             ++pp;
             pp->start = -1;
             pp->end = -1;
@@ -4281,7 +4406,7 @@ S_regtry(pTHX_ regmatch_info *reginfo, c
     REGCP_SET(lastcp);
     result = regmatch(reginfo, *startposp, progi->program + 1);
     if (result != -1) {
-        prog->offs[0].end = result;
+        RXp_OFFSp(prog)[0].end = result;
         return 1;
     }
     if (reginfo->cutpoint)
@@ -4385,14 +4510,20 @@ S_dump_exec_pos(pTHX_ const char *locinp
 
     PERL_ARGS_ASSERT_DUMP_EXEC_POS;
 
-    while (utf8_target && UTF8_IS_CONTINUATION(*(U8*)(locinput - pref_len)))
-        pref_len++;
+    if (utf8_target) {
+        while (UTF8_IS_CONTINUATION(*(U8*)(locinput - pref_len))) {
+            pref_len++;
+        }
+    }
     pref0_len = pref_len  - (locinput - loc_reg_starttry);
     if (l + pref_len < (5 + taill) && l < loc_regeol - locinput)
         l = ( loc_regeol - locinput > (5 + taill) - pref_len
               ? (5 + taill) - pref_len : loc_regeol - locinput);
-    while (utf8_target && UTF8_IS_CONTINUATION(*(U8*)(locinput + l)))
-        l--;
+    if (utf8_target) {
+        while (UTF8_IS_CONTINUATION(*(U8*)(locinput + l))) {
+            l--;
+        }
+    }
     if (pref0_len < 0)
         pref0_len = 0;
     if (pref0_len > pref_len)
@@ -4429,7 +4560,7 @@ S_dump_exec_pos(pTHX_ const char *locinp
 /* reg_check_named_buff_matched()
  * Checks to see if a named buffer has matched. The data array of
  * buffer numbers corresponding to the buffer is expected to reside
- * in the regexp->data->data array in the slot stored in the ARG() of
+ * in the regexp->data->data array in the slot stored in the ARG1u() of
  * node involved. Note that this routine doesn't actually care about the
  * name, that information is not preserved from compilation to execution.
  * Returns the index of the leftmost defined buffer with the given name
@@ -4440,14 +4571,14 @@ S_reg_check_named_buff_matched(const reg
 {
     I32 n;
     RXi_GET_DECL(rex,rexi);
-    SV *sv_dat= MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
+    SV *sv_dat= MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ]);
     I32 *nums=(I32*)SvPVX(sv_dat);
 
     PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED;
 
     for ( n=0; n<SvIVX(sv_dat); n++ ) {
-        if ((I32)rex->lastparen >= nums[n] &&
-            rex->offs[nums[n]].end != -1)
+        if ((I32)RXp_LASTPAREN(rex) >= nums[n] &&
+            RXp_OFFS_END(rex,nums[n]) != -1)
         {
             return nums[n];
         }
@@ -4576,7 +4707,7 @@ S_setup_EXACTISH_ST(pTHX_ const regnode 
     if (   (op == EXACTF && utf8_target)
         || (op == EXACTFL && IN_UTF8_CTYPE_LOCALE))
     {
-        if (op == EXACTFL && PL_in_utf8_turkic_locale) {
+        if (op == EXACTFL && IN_UTF8_TURKIC_LOCALE) {
             op = TURKISH;
         }
         else {
@@ -4868,7 +4999,7 @@ S_setup_EXACTISH_ST(pTHX_ const regnode 
 
             /* Add this character to the list of possible matches */
             if (utf8_target) {
-                uvchr_to_utf8(matches[m->count], fold_from);
+                uvchr_to_utf8(matches[(U8) m->count], fold_from);
                 lengths[m->count] = UVCHR_SKIP(fold_from);
                 m->count++;
             }
@@ -5301,7 +5432,7 @@ S_isLB(pTHX_ LB_enum before,
 
             /* Here, we have the character preceding the span of spaces all set
              * up.  We follow LB18: "Break after spaces" unless the table shows
-             * that is overriden */
+             * that is overridden */
             return LB_table[prev][after] != LB_NOBREAK_EVEN_WITH_SP_BETWEEN;
 
         case LB_CM_ZWJ_foo:
@@ -5314,7 +5445,7 @@ S_isLB(pTHX_ LB_enum before,
             while (prev == LB_Combining_Mark || prev == LB_ZWJ);
 
             /* Here, 'prev' is that first earlier non-CM character.  If the CM
-             * attatches to it, then it inherits the behavior of 'prev'.  If it
+             * attaches to it, then it inherits the behavior of 'prev'.  If it
              * doesn't attach, it is to be treated as an AL */
             if (! LB_CM_ATTACHES_TO(prev)) {
                 prev = LB_Alphabetic;
@@ -5735,7 +5866,7 @@ S_backup_one_SB(pTHX_ const U8 * const s
         }
 
         /* Back up over Extend and Format.  curpos is always just to the right
-         * of the characater whose value we are getting */
+         * of the character whose value we are getting */
         do {
             U8 * prev_prev_char_pos;
             if ((prev_prev_char_pos = reghopmaybe3((U8 *) prev_char_pos, -1,
@@ -6035,7 +6166,7 @@ S_backup_one_WB(pTHX_ WB_enum * previous
         }
 
         /* Back up over Extend and Format.  curpos is always just to the right
-         * of the characater whose value we are getting */
+         * of the character whose value we are getting */
         do {
             U8 * prev_prev_char_pos;
             if ((prev_prev_char_pos = reghopmaybe3((U8 *) prev_char_pos,
@@ -6081,7 +6212,7 @@ S_backup_one_WB(pTHX_ WB_enum * previous
 #define sayNO goto no
 #define sayNO_SILENT goto no_silent
 
-/* we dont use STMT_START/END here because it leads to
+/* we don't use STMT_START/END here because it leads to
    "unreachable code" warnings, which are bogus, but distracting. */
 #define CACHEsayNO \
     if (ST.cache_mask) \
@@ -6136,7 +6267,7 @@ S_backup_one_WB(pTHX_ WB_enum * previous
         Perl_re_printf( aTHX_                               \
             "%*s" pp " %s%s%s%s%s\n",                       \
             INDENT_CHARS(depth), "",                        \
-            PL_reg_name[st->resume_state],                  \
+            REGNODE_NAME(st->resume_state),                  \
             ((st==yes_state||st==mark_state) ? "[" : ""),   \
             ((st==yes_state) ? "Y" : ""),                   \
             ((st==mark_state) ? "M" : ""),                  \
@@ -6358,13 +6489,15 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
     CV *last_pushed_cv = NULL;	/* most recently called (?{}) CV */
     U32 maxopenparen = 0;       /* max '(' index seen so far */
     int to_complement;  /* Invert the result? */
-    _char_class_number classnum;
+    char_class_number_ classnum;
     bool is_utf8_pat = reginfo->is_utf8_pat;
     bool match = FALSE;
     I32 orig_savestack_ix = PL_savestack_ix;
     U8 * script_run_begin = NULL;
     char *match_end= NULL; /* where a match MUST end to be considered successful */
     bool is_accepted = FALSE; /* have we hit an ACCEPT opcode? */
+    re_fold_t folder = NULL;  /* used by various EXACTish regops */
+    const U8 * fold_array = NULL; /* used by various EXACTish regops */
 
 /* Solaris Studio 12.3 messes up fetching PL_charclass['\n'] */
 #if (defined(__SUNPRO_C) && (__SUNPRO_C == 0x5120) && defined(__x86_64) && defined(USE_64_BIT_ALL))
@@ -6416,7 +6549,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                     INDENT_CHARS(depth), "",
                     (IV)(scan - rexi->program),
                     SvPVX_const(prop),
-                    (PL_regkind[OP(scan)] == END || !rnext) ?
+                    (REGNODE_TYPE(OP(scan)) == END || !rnext) ?
                         0 : (IV)(rnext - rexi->program));
             }
         );
@@ -6427,6 +6560,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
         assert(nextbyte < 256 && (nextbyte >= 0 || nextbyte == NEXTCHR_EOS));
 
         switch (state_num) {
+            SV * anyofh_list;
+
         case SBOL: /*  /^../ and /\A../  */
             if (locinput == reginfo->strbeg)
                 break;
@@ -6447,15 +6582,15 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case KEEPS: /*   \K  */
             /* update the startpoint */
-            st->u.keeper.val = rex->offs[0].start;
-            rex->offs[0].start = locinput - reginfo->strbeg;
+            st->u.keeper.val = RXp_OFFS_START(rex,0);
+            RXp_OFFSp(rex)[0].start = locinput - reginfo->strbeg;
             PUSH_STATE_GOTO(KEEPS_next, next, locinput, loceol,
                             script_run_begin);
             NOT_REACHED; /* NOTREACHED */
 
         case KEEPS_next_fail:
             /* rollback the start point change */
-            rex->offs[0].start = st->u.keeper.val;
+            RXp_OFFSp(rex)[0].start = st->u.keeper.val;
             sayNO_SILENT;
             NOT_REACHED; /* NOTREACHED */
 
@@ -6560,16 +6695,21 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
                 /* what trie are we using right now */
                 reg_trie_data * const trie
-                    = (reg_trie_data*)rexi->data->data[ ARG( scan ) ];
-                HV * widecharmap = MUTABLE_HV(rexi->data->data[ ARG( scan ) + 1 ]);
+                    = (reg_trie_data*)rexi->data->data[ ARG1u( scan ) ];
+                ST.before_paren = trie->before_paren;
+                ST.after_paren = trie->after_paren;
+                assert(ST.before_paren<=rex->nparens);
+                assert(ST.after_paren<=rex->nparens);
+
+                HV * widecharmap = MUTABLE_HV(rexi->data->data[ ARG1u( scan ) + 1 ]);
                 U32 state = trie->startstate;
 
-                if (scan->flags == EXACTL || scan->flags == EXACTFLU8) {
-                    _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+                if (FLAGS(scan) == EXACTL || FLAGS(scan) == EXACTFLU8) {
+                    CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
                     if (utf8_target
                         && ! NEXTCHR_IS_EOS
                         && UTF8_IS_ABOVE_LATIN1(nextbyte)
-                        && scan->flags == EXACTL)
+                        && FLAGS(scan) == EXACTL)
                     {
                         /* We only output for EXACTL, as we let the folder
                          * output this message for EXACTFLU8 to avoid
@@ -6610,6 +6750,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 U32 accepted = 0; /* have we seen any accepting states? */
 
                 ST.jump = trie->jump;
+                ST.j_before_paren = trie->j_before_paren;
+                ST.j_after_paren= trie->j_after_paren;
                 ST.me = scan;
                 ST.firstpos = NULL;
                 ST.longfold = FALSE; /* char longer if folded => it's harder */
@@ -6713,6 +6855,10 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
         case TRIE_next_fail: /* we failed - try next alternative */
         {
             U8 *uc;
+            if (RE_PESSIMISTIC_PARENS) {
+                REGCP_UNWIND(ST.lastcp);
+                regcppop(rex,&maxopenparen);
+            }
             if ( ST.jump ) {
                 /* undo any captures done in the tail part of a branch,
                  * e.g.
@@ -6721,6 +6867,10 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                  * rest of the branch */
                 REGCP_UNWIND(ST.cp);
                 UNWIND_PAREN(ST.lastparen, ST.lastcloseparen);
+                if (ST.after_paren) {
+                    assert(ST.before_paren<=rex->nparens && ST.after_paren<=rex->nparens);
+                    CAPTURE_CLEAR(ST.before_paren+1, ST.after_paren, "TRIE_next_fail");
+                }
             }
             if (!--ST.accepted) {
                 DEBUG_EXECUTE_r({
@@ -6738,7 +6888,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 U16 word;
                 U16 const nextword = ST.nextword;
                 reg_trie_wordinfo * const wordinfo
-                    = ((reg_trie_data*)rexi->data->data[ARG(ST.me)])->wordinfo;
+                    = ((reg_trie_data*)rexi->data->data[ARG1u(ST.me)])->wordinfo;
                 for (word=ST.topword; word; word=wordinfo[word].prev) {
                     if (word > nextword && (!min || word < min))
                         min = word;
@@ -6753,8 +6903,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
 
             if ( ST.jump ) {
-                ST.lastparen = rex->lastparen;
-                ST.lastcloseparen = rex->lastcloseparen;
+                ST.lastparen = RXp_LASTPAREN(rex);
+                ST.lastcloseparen = RXp_LASTCLOSEPAREN(rex);
                 REGCP_SET(ST.cp);
             }
 
@@ -6762,7 +6912,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             {
                 U32 chars; /* how many chars to skip */
                 reg_trie_data * const trie
-                    = (reg_trie_data*)rexi->data->data[ARG(ST.me)];
+                    = (reg_trie_data*)rexi->data->data[ARG1u(ST.me)];
 
                 assert((trie->wordinfo[ST.nextword].len - trie->prefixlen)
                             >=  ST.firstchars);
@@ -6810,10 +6960,16 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                         uc += chars;
                 }
             }
+            if (ST.jump && ST.jump[ST.nextword]) {
+                scan = ST.me + ST.jump[ST.nextword];
+                ST.before_paren = ST.j_before_paren[ST.nextword];
+                assert(ST.before_paren <= rex->nparens);
+                ST.after_paren = ST.j_after_paren[ST.nextword];
+                assert(ST.after_paren <= rex->nparens);
+            } else {
+                scan = ST.me + NEXT_OFF(ST.me);
+            }
 
-            scan = ST.me + ((ST.jump && ST.jump[ST.nextword])
-                            ? ST.jump[ST.nextword]
-                            : NEXT_OFF(ST.me));
 
             DEBUG_EXECUTE_r({
                 Perl_re_exec_indentf( aTHX_  "%sTRIE matched word #%d, continuing%s\n",
@@ -6825,6 +6981,10 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             });
 
             if ( ST.accepted > 1 || has_cutgroup || ST.jump ) {
+                if (RE_PESSIMISTIC_PARENS) {
+                    (void)regcppush(rex, 0, maxopenparen);
+                    REGCP_SET(ST.lastcp);
+                }
                 PUSH_STATE_GOTO(TRIE_next, scan, (char*)uc, loceol,
                                 script_run_begin);
                 NOT_REACHED; /* NOTREACHED */
@@ -6832,7 +6992,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             /* only one choice left - just continue */
             DEBUG_EXECUTE_r({
                 AV *const trie_words
-                    = MUTABLE_AV(rexi->data->data[ARG(ST.me)+TRIE_WORDS_OFFSET]);
+                    = MUTABLE_AV(rexi->data->data[ARG1u(ST.me)+TRIE_WORDS_OFFSET]);
                 SV ** const tmp = trie_words
                         ? av_fetch(trie_words, ST.nextword - 1, 0) : NULL;
                 SV *sv= tmp ? sv_newmortal() : NULL;
@@ -6869,11 +7029,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             goto join_short_long_exact;
 
         case EXACTL:             /*  /abc/l       */
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
 
             /* Complete checking would involve going through every character
              * matched by the string to see if any is above latin1.  But the
-             * comparision otherwise might very well be a fast assembly
+             * comparison otherwise might very well be a fast assembly
              * language routine, and I (khw) don't think slowing things down
              * just to check for this warning is worth it.  So this just checks
              * the first character */
@@ -6972,13 +7132,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case EXACTFL:            /*  /abc/il      */
           {
-            re_fold_t folder;
-            const U8 * fold_array;
             const char * s;
             U32 fold_utf8_flags;
 
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
-            folder = foldEQ_locale;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
+            folder = Perl_foldEQ_locale;
             fold_array = PL_fold_locale;
             fold_utf8_flags = FOLDEQ_LOCALE;
             goto do_exactf;
@@ -6991,7 +7149,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
             fold_utf8_flags =  FOLDEQ_LOCALE | FOLDEQ_S2_ALREADY_FOLDED
                                              | FOLDEQ_S2_FOLDS_SANE;
-            folder = foldEQ_latin1_s2_folded;
+            folder = S_foldEQ_latin1_s2_folded;
             fold_array = PL_fold_latin1;
             goto do_exactf;
 
@@ -7001,18 +7159,24 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
             assert(is_utf8_pat);
             fold_utf8_flags = FOLDEQ_S2_ALREADY_FOLDED;
+#ifdef DEBUGGING
+            /* this is only used in an assert check, so we restrict it to DEBUGGING mode.
+             * In theory neither of these variables should be used in this mode. */
+            folder = NULL;
+            fold_array = NULL;
+#endif
             goto do_exactf;
 
         case EXACTFUP:          /*  /foo/iu, and something is problematic in
                                     'foo' so can't take shortcuts. */
             assert(! is_utf8_pat);
-            folder = foldEQ_latin1;
+            folder = Perl_foldEQ_latin1;
             fold_array = PL_fold_latin1;
             fold_utf8_flags = 0;
             goto do_exactf;
 
         case EXACTFU:            /*  /abc/iu      */
-            folder = foldEQ_latin1_s2_folded;
+            folder = S_foldEQ_latin1_s2_folded;
             fold_array = PL_fold_latin1;
             fold_utf8_flags = FOLDEQ_S2_ALREADY_FOLDED;
             goto do_exactf;
@@ -7022,7 +7186,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             assert(! is_utf8_pat);
             /* FALLTHROUGH */
         case EXACTFAA:            /*  /abc/iaa     */
-            folder = foldEQ_latin1_s2_folded;
+            folder = S_foldEQ_latin1_s2_folded;
             fold_array = PL_fold_latin1;
             fold_utf8_flags = FOLDEQ_UTF8_NOMIX_ASCII;
             if (is_utf8_pat || ! utf8_target) {
@@ -7039,7 +7203,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
         case EXACTF:             /*  /abc/i    This node only generated for
                                                non-utf8 patterns */
             assert(! is_utf8_pat);
-            folder = foldEQ;
+            folder = Perl_foldEQ;
             fold_array = PL_fold;
             fold_utf8_flags = 0;
 
@@ -7067,6 +7231,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
 
             /* Neither the target nor the pattern are utf8 */
+            assert(fold_array);
             if (UCHARAT(s) != nextbyte
                 && !NEXTCHR_IS_EOS
                 && UCHARAT(s) != fold_array[nextbyte])
@@ -7075,7 +7240,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
             if (loceol - locinput < ln)
                 sayNO;
-            if (ln > 1 && ! folder(locinput, s, ln))
+            assert(folder);
+            if (ln > 1 && ! folder(aTHX_ locinput, s, ln))
                 sayNO;
             locinput += ln;
             break;
@@ -7088,7 +7254,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
         case BOUNDL:  /*  /\b/l  */
         {
             bool b1, b2;
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
 
             if (FLAGS(scan) != TRADITIONAL_BOUND) {
                 CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_BOUND;
@@ -7359,7 +7525,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case ANYOFPOSIXL:
         case ANYOFL:  /*  /[abc]/l      */
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
             CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(scan);
 
             /* FALLTHROUGH */
@@ -7368,7 +7534,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             if (NEXTCHR_IS_EOS || locinput >= loceol)
                 sayNO;
             if (  (! utf8_target || UTF8_IS_INVARIANT(*locinput))
-                && ! (ANYOF_FLAGS(scan) & ~ ANYOF_MATCHES_ALL_ABOVE_BITMAP))
+                && ! ANYOF_FLAGS(scan)
+                && ANYOF_MATCHES_NONE_OUTSIDE_BITMAP(scan))
             {
                 if (! ANYOF_BITMAP_TEST(scan, * (U8 *) (locinput))) {
                     sayNO;
@@ -7387,7 +7554,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case ANYOFM:
             if (   NEXTCHR_IS_EOS
-                || (UCHARAT(locinput) & FLAGS(scan)) != ARG(scan)
+                || (UCHARAT(locinput) & FLAGS(scan)) != ARG1u(scan)
                 || locinput >= loceol)
             {
                 sayNO;
@@ -7397,7 +7564,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case NANYOFM:
             if (   NEXTCHR_IS_EOS
-                || (UCHARAT(locinput) & FLAGS(scan)) == ARG(scan)
+                || (UCHARAT(locinput) & FLAGS(scan)) == ARG1u(scan)
                 || locinput >= loceol)
             {
                 sayNO;
@@ -7409,8 +7576,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             if (   ! utf8_target
                 ||   NEXTCHR_IS_EOS
                 ||   ANYOF_FLAGS(scan) > NATIVE_UTF8_TO_I8(*locinput)
-                || ! reginclass(rex, scan, (U8*)locinput, (U8*) loceol,
-                                                                   utf8_target))
+                || ! (anyofh_list = GET_ANYOFH_INVLIST(rex, scan))
+                || ! _invlist_contains_cp(anyofh_list,
+                                          utf8_to_uvchr_buf((U8 *) locinput,
+                                                            (U8 *) loceol,
+                                                            NULL)))
             {
                 sayNO;
             }
@@ -7421,8 +7591,24 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             if (   ! utf8_target
                 ||   NEXTCHR_IS_EOS
                 ||   ANYOF_FLAGS(scan) != (U8) *locinput
-                || ! reginclass(rex, scan, (U8*)locinput, (U8*) loceol,
-                                                                  utf8_target))
+                || ! (anyofh_list = GET_ANYOFH_INVLIST(rex, scan))
+                || ! _invlist_contains_cp(anyofh_list,
+                                          utf8_to_uvchr_buf((U8 *) locinput,
+                                                            (U8 *) loceol,
+                                                            NULL)))
+            {
+                sayNO;
+            }
+            goto increment_locinput;
+            break;
+
+        case ANYOFHbbm:
+            if (   ! utf8_target
+                ||   NEXTCHR_IS_EOS
+                ||   ANYOF_FLAGS(scan) != (U8) locinput[0]
+                ||   locinput >= reginfo->strend
+                || ! BITMAP_TEST(( (struct regnode_bbm *) scan)->bitmap,
+                                   (U8) locinput[1] & UTF_CONTINUATION_MASK))
             {
                 sayNO;
             }
@@ -7435,8 +7621,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 || ! inRANGE((U8) NATIVE_UTF8_TO_I8(*locinput),
                              LOWEST_ANYOF_HRx_BYTE(ANYOF_FLAGS(scan)),
                              HIGHEST_ANYOF_HRx_BYTE(ANYOF_FLAGS(scan)))
-                || ! reginclass(rex, scan, (U8*)locinput, (U8*) loceol,
-                                                                   utf8_target))
+                || ! (anyofh_list = GET_ANYOFH_INVLIST(rex, scan))
+                || ! _invlist_contains_cp(anyofh_list,
+                                          utf8_to_uvchr_buf((U8 *) locinput,
+                                                            (U8 *) loceol,
+                                                            NULL)))
             {
                 sayNO;
             }
@@ -7448,8 +7637,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 ||   NEXTCHR_IS_EOS
                 ||   loceol - locinput < FLAGS(scan)
                 ||   memNE(locinput, ((struct regnode_anyofhs *) scan)->string, FLAGS(scan))
-                || ! reginclass(rex, scan, (U8*)locinput, (U8*) loceol,
-                                                                   utf8_target))
+                || ! (anyofh_list = GET_ANYOFH_INVLIST(rex, scan))
+                || ! _invlist_contains_cp(anyofh_list,
+                                          utf8_to_uvchr_buf((U8 *) locinput,
+                                                            (U8 *) loceol,
+                                                            NULL)))
             {
                 sayNO;
             }
@@ -7514,7 +7706,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             /* FALLTHROUGH */
 
         case POSIXL:    /* \w or [:punct:] etc. under /l */
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
             if (NEXTCHR_IS_EOS || locinput >= loceol)
                 sayNO;
 
@@ -7585,7 +7777,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
           join_nposixa:
 
-            if (! (to_complement ^ cBOOL(_generic_isCC_A(nextbyte,
+            if (! (to_complement ^ cBOOL(generic_isCC_A_(nextbyte,
                                                                 FLAGS(scan)))))
             {
                 sayNO;
@@ -7606,11 +7798,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 sayNO;
             }
 
-            /* Use _generic_isCC() for characters within Latin1.  (Note that
+            /* Use generic_isCC_() for characters within Latin1.  (Note that
              * UTF8_IS_INVARIANT works even on non-UTF-8 strings, or else
              * wouldn't be invariant) */
             if (UTF8_IS_INVARIANT(nextbyte) || ! utf8_target) {
-                if (! (to_complement ^ cBOOL(_generic_isCC(nextbyte,
+                if (! (to_complement ^ cBOOL(generic_isCC_(nextbyte,
                                                            FLAGS(scan)))))
                 {
                     sayNO;
@@ -7619,7 +7811,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
             else if (UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(locinput, reginfo->strend)) {
                 if (! (to_complement
-                       ^ cBOOL(_generic_isCC(EIGHT_BIT_UTF8_TO_NATIVE(nextbyte,
+                       ^ cBOOL(generic_isCC_(EIGHT_BIT_UTF8_TO_NATIVE(nextbyte,
                                                                *(locinput + 1)),
                                              FLAGS(scan)))))
                 {
@@ -7629,7 +7821,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             }
             else {  /* Handle above Latin-1 code points */
               utf8_posix_above_latin1:
-                classnum = (_char_class_number) FLAGS(scan);
+                classnum = (char_class_number_) FLAGS(scan);
                 switch (classnum) {
                     default:
                         if (! (to_complement
@@ -7642,36 +7834,36 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                             sayNO;
                         }
                         break;
-                    case _CC_ENUM_SPACE:
+                    case CC_ENUM_SPACE_:
                         if (! (to_complement
                                     ^ cBOOL(is_XPERLSPACE_high(locinput))))
                         {
                             sayNO;
                         }
                         break;
-                    case _CC_ENUM_BLANK:
+                    case CC_ENUM_BLANK_:
                         if (! (to_complement
                                         ^ cBOOL(is_HORIZWS_high(locinput))))
                         {
                             sayNO;
                         }
                         break;
-                    case _CC_ENUM_XDIGIT:
+                    case CC_ENUM_XDIGIT_:
                         if (! (to_complement
                                         ^ cBOOL(is_XDIGIT_high(locinput))))
                         {
                             sayNO;
                         }
                         break;
-                    case _CC_ENUM_VERTSPACE:
+                    case CC_ENUM_VERTSPACE_:
                         if (! (to_complement
                                         ^ cBOOL(is_VERTWS_high(locinput))))
                         {
                             sayNO;
                         }
                         break;
-                    case _CC_ENUM_CNTRL:    /* These can't match above Latin1 */
-                    case _CC_ENUM_ASCII:
+                    case CC_ENUM_CNTRL_:    /* These can't match above Latin1 */
+                    case CC_ENUM_ASCII_:
                         if (! to_complement) {
                             sayNO;
                         }
@@ -7740,29 +7932,29 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             const U8 *fold_array;
             UV utf8_fold_flags;
 
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
-            folder = foldEQ_locale;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
+            folder = Perl_foldEQ_locale;
             fold_array = PL_fold_locale;
             type = REFFL;
             utf8_fold_flags = FOLDEQ_LOCALE;
             goto do_nref;
 
         case REFFAN:  /*  /\g{name}/iaa  */
-            folder = foldEQ_latin1;
+            folder = Perl_foldEQ_latin1;
             fold_array = PL_fold_latin1;
             type = REFFA;
             utf8_fold_flags = FOLDEQ_UTF8_NOMIX_ASCII;
             goto do_nref;
 
         case REFFUN:  /*  /\g{name}/iu  */
-            folder = foldEQ_latin1;
+            folder = Perl_foldEQ_latin1;
             fold_array = PL_fold_latin1;
             type = REFFU;
             utf8_fold_flags = 0;
             goto do_nref;
 
         case REFFN:  /*  /\g{name}/i  */
-            folder = foldEQ;
+            folder = Perl_foldEQ;
             fold_array = PL_fold;
             type = REFF;
             utf8_fold_flags = 0;
@@ -7785,30 +7977,32 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             goto do_nref_ref_common;
 
         case REFFL:  /*  /\1/il  */
-            _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
-            folder = foldEQ_locale;
+            CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
+            folder = Perl_foldEQ_locale;
             fold_array = PL_fold_locale;
             utf8_fold_flags = FOLDEQ_LOCALE;
             goto do_ref;
 
         case REFFA:  /*  /\1/iaa  */
-            folder = foldEQ_latin1;
+            folder = Perl_foldEQ_latin1;
             fold_array = PL_fold_latin1;
             utf8_fold_flags = FOLDEQ_UTF8_NOMIX_ASCII;
             goto do_ref;
 
         case REFFU:  /*  /\1/iu  */
-            folder = foldEQ_latin1;
+            folder = Perl_foldEQ_latin1;
             fold_array = PL_fold_latin1;
             utf8_fold_flags = 0;
             goto do_ref;
 
         case REFF:  /*  /\1/i  */
-            folder = foldEQ;
+            folder = Perl_foldEQ;
             fold_array = PL_fold;
             utf8_fold_flags = 0;
             goto do_ref;
 
+#undef  ST
+#define ST st->u.backref
         case REF:  /*  /\1/    */
             folder = NULL;
             fold_array = NULL;
@@ -7816,16 +8010,37 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
           do_ref:
             type = OP(scan);
-            n = ARG(scan);  /* which paren pair */
+            n = ARG1u(scan);  /* which paren pair */
+            if (rex->logical_to_parno) {
+                n = rex->logical_to_parno[n];
+                do {
+                    if ( RXp_LASTPAREN(rex) < n ||
+                         RXp_OFFS_START(rex,n) == -1 ||
+                         RXp_OFFS_END(rex,n) == -1
+                    ) {
+                        n = rex->parno_to_logical_next[n];
+                    }
+                    else {
+                        break;
+                    }
+                } while(n);
+                
+                if (!n) /* this means there is nothing that matched */
+                    sayNO;
+            }
 
           do_nref_ref_common:
-            ln = rex->offs[n].start;
-            endref = rex->offs[n].end;
             reginfo->poscache_iter = reginfo->poscache_maxiter; /* Void cache */
-            if (rex->lastparen < n || ln == -1 || endref == -1)
+            if (RXp_LASTPAREN(rex) < n)
+                sayNO;
+
+            ln = RXp_OFFSp(rex)[n].start;
+            endref = RXp_OFFSp(rex)[n].end;
+            if (ln == -1 || endref == -1)
                 sayNO;			/* Do not match unless seen CLOSEn. */
+
             if (ln == endref)
-                break;
+                goto ref_yes;
 
             s = reginfo->strbeg + ln;
             if (type != REF	/* REF can do byte comparison */
@@ -7844,7 +8059,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                     sayNO;
                 }
                 locinput = limit;
-                break;
+                goto ref_yes;
             }
 
             /* Not utf8:  Inline the first character, for speed. */
@@ -7861,11 +8076,29 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 sayNO;
             if (ln > 1 && (type == REF
                            ? memNE(s, locinput, ln)
-                           : ! folder(locinput, s, ln)))
+                           : ! folder(aTHX_ locinput, s, ln)))
                 sayNO;
             locinput += ln;
-            break;
         }
+        ref_yes:
+            if (FLAGS(scan)) { /* == VOLATILE_REF but only other value is 0 */
+                ST.cp = regcppush(rex, ARG2u(scan) - 1, maxopenparen);
+                REGCP_SET(ST.lastcp);
+                PUSH_STATE_GOTO(REF_next, next, locinput, loceol,
+                                script_run_begin);
+            }
+            break;
+            NOT_REACHED; /* NOTREACHED */
+
+        case REF_next:
+            sayYES;
+            break;
+
+        case REF_next_fail:
+            REGCP_UNWIND(ST.lastcp);
+            regcppop(rex, &maxopenparen);
+            sayNO;
+            break;
 
         case NOTHING: /* null op; e.g. the 'nothing' following
                        * the '*' in m{(a+|b)*}' */
@@ -7886,7 +8119,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             U32 arg;
 
         case GOSUB: /*    /(...(?1))/   /(...(?&foo))/   */
-            arg= (U32)ARG(scan);
+            arg = ARG1u(scan);
             if (cur_eval && cur_eval->locinput == locinput) {
                 if ( ++nochange_depth > max_nochange_depth )
                     Perl_croak(aTHX_
@@ -7898,7 +8131,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             re_sv = rex_sv;
             re = rex;
             rei = rexi;
-            startpoint = scan + ARG2L(scan);
+            startpoint = scan + ARG2i(scan);
             EVAL_CLOSE_PAREN_SET( st, arg );
             /* Detect infinite recursion
              *
@@ -7953,13 +8186,13 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 CV *newcv;
 
                 /* save *all* paren positions */
-                regcppush(rex, 0, maxopenparen);
+                ST.cp = regcppush(rex, 0, maxopenparen);
                 REGCP_SET(ST.lastcp);
 
                 if (!caller_cv)
                     caller_cv = find_runcv(NULL);
 
-                n = ARG(scan);
+                n = ARG1u(scan);
 
                 if (rexi->data->what[n] == 'r') { /* code from an external qr */
                     newcv = (ReANY(
@@ -8084,7 +8317,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 DEBUG_STATE_r( Perl_re_printf( aTHX_
                     "  re EVAL PL_op=0x%" UVxf "\n", PTR2UV(nop)) );
 
-                rex->offs[0].end = locinput - reginfo->strbeg;
+                RXp_OFFSp(rex)[0].end = locinput - reginfo->strbeg;
                 if (reginfo->info_aux_eval->pos_magic)
                     MgBYTEPOS_set(reginfo->info_aux_eval->pos_magic,
                                   reginfo->sv, reginfo->strbeg,
@@ -8118,7 +8351,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 PL_op = NULL;
 
                 re_sv = NULL;
-                if (logical == 0) {       /*   (?{})/   */
+                if (logical == 0) {       /* /(?{ ... })/ and /(*{ ... })/ */
                     SV *replsv = save_scalar(PL_replgv);
                     sv_setsv(replsv, ret); /* $^R */
                     SvSETMAGIC(replsv);
@@ -8127,7 +8360,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                     sw = cBOOL(SvTRUE_NN(ret));
                     logical = 0;
                 }
-                else {                   /*  /(??{})  */
+                else {                   /*  /(??{ ... })  */
                     /*  if its overloaded, let the regex compiler handle
                      *  it; otherwise extract regex, or stringify  */
                     if (SvGMAGICAL(ret))
@@ -8170,7 +8403,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 }
             }
 
-                /* only /(??{})/  from now on */
+                /* only /(??{ ... })/  from now on */
                 logical = 0;
                 {
                     /* extract RE object from returned value; compiling if
@@ -8195,11 +8428,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                         /* if we got here, it should be an engine which
                          * supports compiling code blocks and stuff */
                         assert(rex->engine && rex->engine->op_comp);
-                        assert(!(scan->flags & ~RXf_PMf_COMPILETIME));
+                        assert(!(FLAGS(scan) & ~RXf_PMf_COMPILETIME));
                         re_sv = rex->engine->op_comp(aTHX_ &ret, 1, NULL,
                                     rex->engine, NULL, NULL,
                                     /* copy /msixn etc to inner pattern */
-                                    ARG2L(scan),
+                                    ARG2i(scan),
                                     pm_flags);
 
                         if (!(SvFLAGS(ret)
@@ -8215,12 +8448,12 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                     re = ReANY(re_sv);
                 }
                 RXp_MATCH_COPIED_off(re);
-                re->subbeg = rex->subbeg;
-                re->sublen = rex->sublen;
-                re->suboffset = rex->suboffset;
-                re->subcoffset = rex->subcoffset;
-                re->lastparen = 0;
-                re->lastcloseparen = 0;
+                RXp_SUBBEG(re) = RXp_SUBBEG(rex);
+                RXp_SUBLEN(re) = RXp_SUBLEN(rex);
+                RXp_SUBOFFSET(re) = RXp_SUBOFFSET(rex);
+                RXp_SUBCOFFSET(re) = RXp_SUBCOFFSET(rex);
+                RXp_LASTPAREN(re) = 0;
+                RXp_LASTCLOSEPAREN(re) = 0;
                 rei = RXi_GET(re);
                 DEBUG_EXECUTE_r(
                     debug_start_match(re_sv, utf8_target, locinput,
@@ -8230,9 +8463,11 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
                 EVAL_CLOSE_PAREN_CLEAR(st); /* ST.close_paren = 0;
                                              * close_paren only for GOSUB */
                 ST.prev_recurse_locinput= NULL; /* only used for GOSUB */
-                /* Save all the seen positions so far. */
+
+                /* note we saved the paren state earlier:
                 ST.cp = regcppush(rex, 0, maxopenparen);
                 REGCP_SET(ST.lastcp);
+                */
                 /* and set maxopenparen to 0, since we are starting a "fresh" match */
                 maxopenparen = 0;
                 /* run the pattern returned from (??{...}) */
@@ -8322,6 +8557,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case EVAL_B_fail: /* unsuccessful B in (?{...})B */
             REGCP_UNWIND(ST.lastcp);
+            regcppop(rex, &maxopenparen);
             sayNO;
 
         case EVAL_postponed_AB_fail: /* unsuccessfully ran A or B in (??{A})B */
@@ -8354,17 +8590,17 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 #undef ST
 
         case OPEN: /*  (  */
-            n = ARG(scan);  /* which paren pair */
-            rex->offs[n].start_tmp = locinput - reginfo->strbeg;
+            n = PARNO(scan);  /* which paren pair */
+            RXp_OFFSp(rex)[n].start_tmp = locinput - reginfo->strbeg;
             if (n > maxopenparen)
                 maxopenparen = n;
             DEBUG_BUFFERS_r(Perl_re_exec_indentf( aTHX_
                 "OPEN: rex=0x%" UVxf " offs=0x%" UVxf ": \\%" UVuf ": set %" IVdf " tmp; maxopenparen=%" UVuf "\n",
                 depth,
                 PTR2UV(rex),
-                PTR2UV(rex->offs),
+                PTR2UV(RXp_OFFSp(rex)),
                 (UV)n,
-                (IV)rex->offs[n].start_tmp,
+                (IV)RXp_OFFSp(rex)[n].start_tmp,
                 (UV)maxopenparen
             ));
             lastopen = n;
@@ -8376,8 +8612,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
 
         case CLOSE:  /*  )  */
-            n = ARG(scan);  /* which paren pair */
-            CLOSE_CAPTURE(n, rex->offs[n].start_tmp,
+            n = PARNO(scan);  /* which paren pair */
+            CLOSE_CAPTURE(rex, n, RXp_OFFSp(rex)[n].start_tmp,
                              locinput - reginfo->strbeg);
             if ( EVAL_CLOSE_PAREN_IS( cur_eval, n ) )
                 goto fake_end;
@@ -8396,28 +8632,31 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
 
         case ACCEPT:  /*  (*ACCEPT)  */
             is_accepted = true;
-            if (scan->flags)
-                sv_yes_mark = MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
-            utmp = (U32)ARG2L(scan);
+            if (FLAGS(scan))
+                sv_yes_mark = MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ]);
+            utmp = ARG2u(scan);
 
             if ( utmp ) {
                 regnode *cursor;
                 for (
                     cursor = scan;
                     cursor && ( OP(cursor) != END );
-                    cursor = ( PL_regkind[ OP(cursor) ] == END )
-                             ? NEXTOPER(cursor)
+                    cursor = (
+                               REGNODE_TYPE( OP(cursor) ) == END
+                               || REGNODE_TYPE( OP(cursor) ) == WHILEM
+                             )
+                             ? REGNODE_AFTER(cursor)
                              : regnext(cursor)
                 ){
                     if ( OP(cursor) != CLOSE )
                         continue;
 
-                    n = ARG(cursor);
+                    n = PARNO(cursor);
 
                     if ( n > lastopen ) /* might be OPEN/CLOSE in the way */
                         continue;       /* so skip this one */
 
-                    CLOSE_CAPTURE(n, rex->offs[n].start_tmp,
+                    CLOSE_CAPTURE(rex, n, RXp_OFFSp(rex)[n].start_tmp,
                                      locinput - reginfo->strbeg);
 
                     if ( n == utmp || EVAL_CLOSE_PAREN_IS(cur_eval, n) )
@@ -8428,8 +8667,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             /* NOTREACHED */
 
         case GROUPP:  /*  (?(1))  */
-            n = ARG(scan);  /* which paren pair */
-            sw = cBOOL(rex->lastparen >= n && rex->offs[n].end != -1);
+            n = ARG1u(scan);  /* which paren pair */
+            sw = cBOOL(RXp_LASTPAREN(rex) >= n && RXp_OFFS_END(rex,n) != -1);
             break;
 
         case GROUPPN:  /*  (?(<name>))  */
@@ -8438,7 +8677,7 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
             break;
 
         case INSUBP:   /*  (?(R))  */
-            n = ARG(scan);
+            n = ARG1u(scan);
             /* this does not need to use EVAL_CLOSE_PAREN macros, as the arg
              * of SCAN is already set up as matches a eval.close_paren */
             sw = cur_eval && (n == 0 || CUR_EVAL.close_paren == n);
@@ -8451,16 +8690,16 @@ S_regmatch(pTHX_ regmatch_info *reginfo,
         case IFTHEN:   /*  (?(cond)A|B)  */
             reginfo->poscache_iter = reginfo->poscache_maxiter; /* Void cache */
             if (sw)
-                next = NEXTOPER(NEXTOPER(scan));
+                next = REGNODE_AFTER_type(scan,tregnode_IFTHEN);
             else {
-                next = scan + ARG(scan);
+                next = scan + ARG1u(scan);
                 if (OP(next) == IFTHEN) /* Fake one. */
-                    next = NEXTOPER(NEXTOPER(next));
+                    next = REGNODE_AFTER_type(next,tregnode_IFTHEN);
             }
             break;
 
         case LOGICAL:  /* modifier for EVAL and IFMATCH */
-            logical = scan->flags;
+            logical = FLAGS(scan) & EVAL_FLAGS_MASK; /* reserve a bit for optimistic eval */
             break;
 
 /*******************************************************************
@@ -8551,16 +8790,16 @@ NULL
         case CURLYX:    /* start of /A*B/  (for complex A) */
         {
             /* No need to save/restore up to this paren */
-            I32 parenfloor = scan->flags;
+            I32 parenfloor = FLAGS(scan);
 
             assert(next); /* keep Coverity happy */
-            if (OP(PREVOPER(next)) == NOTHING) /* LONGJMP */
-                next += ARG(next);
+            if (OP(REGNODE_BEFORE(next)) == NOTHING) /* LONGJMP */
+                next += ARG1u(next);
 
             /* XXXX Probably it is better to teach regpush to support
                parenfloor > maxopenparen ... */
-            if (parenfloor > (I32)rex->lastparen)
-                parenfloor = rex->lastparen; /* Pessimization... */
+            if (parenfloor > (I32)RXp_LASTPAREN(rex))
+                parenfloor = RXp_LASTPAREN(rex); /* Pessimization... */
 
             ST.prev_curlyx= cur_curlyx;
             cur_curlyx = st;
@@ -8576,7 +8815,7 @@ NULL
             ST.count = -1;	/* this will be updated by WHILEM */
             ST.lastloc = NULL;  /* this will be updated by WHILEM */
 
-            PUSH_YES_STATE_GOTO(CURLYX_end, PREVOPER(next), locinput, loceol,
+            PUSH_YES_STATE_GOTO(CURLYX_end, REGNODE_BEFORE(next), locinput, loceol,
                                 script_run_begin);
             NOT_REACHED; /* NOTREACHED */
         }
@@ -8601,25 +8840,26 @@ NULL
             /* see the discussion above about CURLYX/WHILEM */
             I32 n;
             int min, max;
+            /* U16 first_paren, last_paren; */
             regnode *A;
 
             assert(cur_curlyx); /* keep Coverity happy */
 
-            min = ARG1(cur_curlyx->u.curlyx.me);
-            max = ARG2(cur_curlyx->u.curlyx.me);
-            A = NEXTOPER(cur_curlyx->u.curlyx.me) + EXTRA_STEP_2ARGS;
+            min = ARG1i(cur_curlyx->u.curlyx.me);
+            max = ARG2i(cur_curlyx->u.curlyx.me);
+            /* first_paren = ARG3a(cur_curlyx->u.curlyx.me); */
+            /* last_paren = ARG3b(cur_curlyx->u.curlyx.me);  */
+            A = REGNODE_AFTER(cur_curlyx->u.curlyx.me);
             n = ++cur_curlyx->u.curlyx.count; /* how many A's matched */
             ST.save_lastloc = cur_curlyx->u.curlyx.lastloc;
             ST.cache_offset = 0;
             ST.cache_mask = 0;
 
-
             DEBUG_EXECUTE_r( Perl_re_exec_indentf( aTHX_  "WHILEM: matched %ld out of %d..%d\n",
                   depth, (long)n, min, max)
             );
 
             /* First just match a string of min A's. */
-
             if (n < min) {
                 ST.cp = regcppush(rex, cur_curlyx->u.curlyx.parenfloor, maxopenparen);
                 cur_curlyx->u.curlyx.lastloc = locinput;
@@ -8644,7 +8884,7 @@ NULL
              * The idea here is that for certain types of CURLYX/WHILEM -
              * principally those whose upper bound is infinity (and
              * excluding regexes that have things like \1 and other very
-             * non-regular expresssiony things), then if a pattern like
+             * non-regular expressiony things), then if a pattern like
              * /....A*.../ fails and we backtrack to the WHILEM, then we
              * make a note that this particular WHILEM op was at string
              * position 47 (say) when the rest of pattern failed. Then, if
@@ -8665,20 +8905,20 @@ NULL
              * op (string-length x #WHILEMs) times do we allocate the
              * cache.
              *
-             * The top 4 bits of scan->flags byte say how many different
+             * The top 4 bits of FLAGS(scan) byte say how many different
              * relevant CURLLYX/WHILEM op pairs there are, while the
              * bottom 4-bits is the identifying index number of this
              * WHILEM.
              */
 
-            if (scan->flags) {
+            if (FLAGS(scan)) {
 
                 if (!reginfo->poscache_maxiter) {
                     /* start the countdown: Postpone detection until we
                      * know the match is not *that* much linear. */
                     reginfo->poscache_maxiter
                         =    (reginfo->strend - reginfo->strbeg + 1)
-                           * (scan->flags>>4);
+                           * (FLAGS(scan)>>4);
                     /* possible overflow for long strings and many CURLYX's */
                     if (reginfo->poscache_maxiter < 0)
                         reginfo->poscache_maxiter = I32_MAX;
@@ -8711,9 +8951,9 @@ NULL
                     SSize_t offset, mask;
 
                     reginfo->poscache_iter = -1; /* stop eventual underflow */
-                    offset  = (scan->flags & 0xf) - 1
+                    offset  = (FLAGS(scan) & 0xf) - 1
                                 +   (locinput - reginfo->strbeg)
-                                  * (scan->flags>>4);
+                                  * (FLAGS(scan)>>4);
                     mask    = 1 << (offset % 8);
                     offset /= 8;
                     if (reginfo->info_aux->poscache[offset] & mask) {
@@ -8782,18 +9022,8 @@ NULL
             DEBUG_EXECUTE_r(Perl_re_exec_indentf( aTHX_  "WHILEM: failed, trying continuation...\n",
                 depth)
             );
-          do_whilem_B_max:
-            if (cur_curlyx->u.curlyx.count >= REG_INFTY
-                && ckWARN(WARN_REGEXP)
-                && !reginfo->warned)
-            {
-                reginfo->warned	= TRUE;
-                Perl_warner(aTHX_ packWARN(WARN_REGEXP),
-                     "Complex regular subexpression recursion limit (%d) "
-                     "exceeded",
-                     REG_INFTY - 1);
-            }
 
+          do_whilem_B_max:
             /* now try B */
             ST.save_curlyx = cur_curlyx;
             cur_curlyx = cur_curlyx->u.curlyx.prev_curlyx;
@@ -8804,18 +9034,8 @@ NULL
         case WHILEM_B_min_fail: /* just failed to match B in a minimal match */
             cur_curlyx = ST.save_curlyx;
 
-            if (cur_curlyx->u.curlyx.count >= /*max*/ARG2(cur_curlyx->u.curlyx.me)) {
+            if (cur_curlyx->u.curlyx.count >= /*max*/ARG2i(cur_curlyx->u.curlyx.me)) {
                 /* Maximum greed exceeded */
-                if (cur_curlyx->u.curlyx.count >= REG_INFTY
-                    && ckWARN(WARN_REGEXP)
-                    && !reginfo->warned)
-                {
-                    reginfo->warned	= TRUE;
-                    Perl_warner(aTHX_ packWARN(WARN_REGEXP),
-                        "Complex regular subexpression recursion "
-                        "limit (%d) exceeded",
-                        REG_INFTY - 1);
-                }
                 cur_curlyx->u.curlyx.count--;
                 CACHEsayNO;
             }
@@ -8824,11 +9044,10 @@ NULL
             );
             /* Try grabbing another A and see if it helps. */
             cur_curlyx->u.curlyx.lastloc = locinput;
-            ST.cp = regcppush(rex, cur_curlyx->u.curlyx.parenfloor,
-                            maxopenparen);
+            ST.cp = regcppush(rex, cur_curlyx->u.curlyx.parenfloor, maxopenparen);
             REGCP_SET(ST.lastcp);
             PUSH_STATE_GOTO(WHILEM_A_min,
-                /*A*/ NEXTOPER(ST.save_curlyx->u.curlyx.me) + EXTRA_STEP_2ARGS,
+                /*A*/ REGNODE_AFTER(ST.save_curlyx->u.curlyx.me),
                 locinput, loceol, script_run_begin);
             NOT_REACHED; /* NOTREACHED */
 
@@ -8836,18 +9055,28 @@ NULL
 #define ST st->u.branch
 
         case BRANCHJ:	    /*  /(...|A|...)/ with long next pointer */
-            next = scan + ARG(scan);
+            next = scan + ARG1u(scan);
             if (next == scan)
                 next = NULL;
-            scan = NEXTOPER(scan);
-            /* FALLTHROUGH */
+            ST.before_paren = ARG2a(scan);
+            ST.after_paren = ARG2b(scan);
+            goto branch_logic;
+            NOT_REACHED; /* NOTREACHED */
 
         case BRANCH:	    /*  /(...|A|...)/ */
-            scan = NEXTOPER(scan); /* scan now points to inner node */
-            ST.lastparen = rex->lastparen;
-            ST.lastcloseparen = rex->lastcloseparen;
+            ST.before_paren = ARG1a(scan);
+            ST.after_paren = ARG1b(scan);
+          branch_logic:
+            scan = REGNODE_AFTER_opcode(scan,state_num); /* scan now points to inner node */
+            assert(scan);
+            ST.lastparen = RXp_LASTPAREN(rex);
+            ST.lastcloseparen = RXp_LASTCLOSEPAREN(rex);
             ST.next_branch = next;
             REGCP_SET(ST.cp);
+            if (RE_PESSIMISTIC_PARENS) {
+                regcppush(rex, 0, maxopenparen);
+                REGCP_SET(ST.lastcp);
+            }
 
             /* Now go into the branch */
             if (has_cutgroup) {
@@ -8860,8 +9089,8 @@ NULL
             NOT_REACHED; /* NOTREACHED */
 
         case CUTGROUP:  /*  /(*THEN)/  */
-            sv_yes_mark = st->u.mark.mark_name = scan->flags
-                ? MUTABLE_SV(rexi->data->data[ ARG( scan ) ])
+            sv_yes_mark = st->u.mark.mark_name = FLAGS(scan)
+                ? MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ])
                 : NULL;
             PUSH_STATE_GOTO(CUTGROUP_next, next, locinput, loceol,
                             script_run_begin);
@@ -8884,8 +9113,13 @@ NULL
                 do_cutgroup = 0;
                 no_final = 0;
             }
+            if (RE_PESSIMISTIC_PARENS) {
+                REGCP_UNWIND(ST.lastcp);
+                regcppop(rex,&maxopenparen);
+            }
             REGCP_UNWIND(ST.cp);
             UNWIND_PAREN(ST.lastparen, ST.lastcloseparen);
+            CAPTURE_CLEAR(ST.before_paren+1, ST.after_paren, "BRANCH_next_fail");
             scan = ST.next_branch;
             /* no more branches? */
             if (!scan || (OP(scan) != BRANCH && OP(scan) != BRANCHJ)) {
@@ -8916,14 +9150,14 @@ NULL
              */
 
             ST.me = scan;
-            scan = NEXTOPER(scan) + NODE_STEP_REGNODE;
+            scan = REGNODE_AFTER_type(scan, tregnode_CURLYM);
 
-            ST.lastparen      = rex->lastparen;
-            ST.lastcloseparen = rex->lastcloseparen;
+            ST.lastparen      = RXp_LASTPAREN(rex);
+            ST.lastcloseparen = RXp_LASTCLOSEPAREN(rex);
 
             /* if paren positive, emulate an OPEN/CLOSE around A */
-            if (ST.me->flags) {
-                U32 paren = ST.me->flags;
+            if (FLAGS(ST.me)) {
+                U32 paren = FLAGS(ST.me);
                 lastopen = paren;
                 if (paren > maxopenparen)
                     maxopenparen = paren;
@@ -8938,7 +9172,7 @@ NULL
             ST.Binfo.count = -1;
             REGCP_SET(ST.cp);
 
-            if (!(ST.minmod ? ARG1(ST.me) : ARG2(ST.me))) /* min/max */
+            if (!(ST.minmod ? ARG1i(ST.me) : ARG2i(ST.me))) /* min/max */
                 goto curlym_do_B;
 
           curlym_do_A: /* execute the A in /A{m,n}B/  */
@@ -8961,19 +9195,27 @@ NULL
                     ST.alen = locinput - st->locinput;
                 }
                 if (ST.alen == 0)
-                    ST.count = ST.minmod ? ARG1(ST.me) : ARG2(ST.me);
+                    ST.count = ST.minmod ? ARG1i(ST.me) : ARG2i(ST.me);
             }
             DEBUG_EXECUTE_r(
                 Perl_re_exec_indentf( aTHX_  "CURLYM now matched %" IVdf " times, len=%" IVdf "...\n",
                           depth, (IV) ST.count, (IV)ST.alen)
             );
 
-            if (EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)ST.me->flags))
+            if (FLAGS(ST.me)) {
+                /* emulate CLOSE: mark current A as captured */
+                U32 paren = (U32)FLAGS(ST.me);
+                CLOSE_CAPTURE(rex, paren,
+                    HOPc(locinput, -ST.alen) - reginfo->strbeg,
+                    locinput - reginfo->strbeg);
+            }
+
+            if (EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)FLAGS(ST.me)))
                 goto fake_end;
 
 
             if (!is_accepted) {
-                I32 max = (ST.minmod ? ARG1(ST.me) : ARG2(ST.me));
+                I32 max = (ST.minmod ? ARG1i(ST.me) : ARG2i(ST.me));
                 if ( max == REG_INFTY || ST.count < max )
                     goto curlym_do_A; /* try to match another A */
             }
@@ -8983,8 +9225,8 @@ NULL
             REGCP_UNWIND(ST.cp);
 
 
-            if (ST.minmod || ST.count < ARG1(ST.me) /* min*/
-                || EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)ST.me->flags))
+            if (ST.minmod || ST.count < ARG1i(ST.me) /* min*/
+                || EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)FLAGS(ST.me)))
                 sayNO;
 
           curlym_do_B: /* execute the B in /A{m,n}B/  */
@@ -8998,7 +9240,7 @@ NULL
                     regnode *text_node = ST.B;
                     if (! HAS_TEXT(text_node))
                         FIND_NEXT_IMPT(text_node);
-                    if (PL_regkind[OP(text_node)] == EXACT) {
+                    if (REGNODE_TYPE(OP(text_node)) == EXACT) {
                         if (! S_setup_EXACTISH_ST(aTHX_ text_node,
                                                         &ST.Binfo, reginfo))
                         {
@@ -9033,17 +9275,18 @@ NULL
             }
 
           curlym_close_B:
-            if (ST.me->flags) {
+            if (FLAGS(ST.me)) {
                 /* emulate CLOSE: mark current A as captured */
-                U32 paren = (U32)ST.me->flags;
+                U32 paren = (U32)FLAGS(ST.me);
                 if (ST.count || is_accepted) {
-                    CLOSE_CAPTURE(paren,
+                    CLOSE_CAPTURE(rex, paren,
                         HOPc(locinput, -ST.alen) - reginfo->strbeg,
                         locinput - reginfo->strbeg);
                 }
                 else
-                    rex->offs[paren].end = -1;
-                if (EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)ST.me->flags))
+                    RXp_OFFSp(rex)[paren].end = -1;
+
+                if (EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)FLAGS(ST.me)))
                 {
                     if (ST.count || is_accepted)
                         goto fake_end;
@@ -9063,13 +9306,13 @@ NULL
             REGCP_UNWIND(ST.cp);
             UNWIND_PAREN(ST.lastparen, ST.lastcloseparen);
             if (ST.minmod) {
-                I32 max = ARG2(ST.me);
+                I32 max = ARG2i(ST.me);
                 if (max != REG_INFTY && ST.count == max)
                     sayNO;
                 goto curlym_do_A; /* try to match a further A */
             }
             /* backtrack one A */
-            if (ST.count == ARG1(ST.me) /* min */)
+            if (ST.count == ARG1i(ST.me) /* min */)
                 sayNO;
             ST.count--;
             SET_locinput(HOPc(locinput, -ST.alen));
@@ -9078,42 +9321,42 @@ NULL
 #undef ST
 #define ST st->u.curly
 
-#define CURLY_SETPAREN(paren, success) \
-    if (paren) { \
-        if (success) { \
-            CLOSE_CAPTURE(paren, HOPc(locinput, -1) - reginfo->strbeg, \
-                                 locinput - reginfo->strbeg); \
-        } \
-        else { \
-            rex->offs[paren].end = -1; \
-            rex->lastparen      = ST.lastparen; \
-            rex->lastcloseparen = ST.lastcloseparen; \
-        } \
+#define CURLY_SETPAREN(paren, success)                                      \
+    if (paren) {                                                            \
+        if (success) {                                                      \
+            CLOSE_CAPTURE(rex, paren, HOPc(locinput, -1) - reginfo->strbeg, \
+                                 locinput - reginfo->strbeg);               \
+        }                                                                   \
+        else {                                                              \
+            RXp_OFFSp(rex)[paren].end = -1;                                 \
+            RXp_LASTPAREN(rex)  = ST.lastparen;                             \
+            RXp_LASTCLOSEPAREN(rex) = ST.lastcloseparen;                    \
+        }                                                                   \
     }
 
         case STAR:		/*  /A*B/ where A is width 1 char */
             ST.paren = 0;
             ST.min = 0;
             ST.max = REG_INFTY;
-            scan = NEXTOPER(scan);
+            scan = REGNODE_AFTER_type(scan,tregnode_STAR);
             goto repeat;
 
         case PLUS:		/*  /A+B/ where A is width 1 char */
             ST.paren = 0;
             ST.min = 1;
             ST.max = REG_INFTY;
-            scan = NEXTOPER(scan);
+            scan = REGNODE_AFTER_type(scan,tregnode_PLUS);
             goto repeat;
 
         case CURLYN:		/*  /(A){m,n}B/ where A is width 1 char */
-            ST.paren = scan->flags;	/* Which paren to set */
-            ST.lastparen      = rex->lastparen;
-            ST.lastcloseparen = rex->lastcloseparen;
+            ST.paren = FLAGS(scan);     /* Which paren to set */
+            ST.lastparen      = RXp_LASTPAREN(rex);
+            ST.lastcloseparen = RXp_LASTCLOSEPAREN(rex);
             if (ST.paren > maxopenparen)
                 maxopenparen = ST.paren;
-            ST.min = ARG1(scan);  /* min to match */
-            ST.max = ARG2(scan);  /* max to match */
-            scan = regnext(NEXTOPER(scan) + NODE_STEP_REGNODE);
+            ST.min = ARG1i(scan);  /* min to match */
+            ST.max = ARG2i(scan);  /* max to match */
+            scan = regnext(REGNODE_AFTER_type(scan, tregnode_CURLYN));
 
             /* handle the single-char capture called as a GOSUB etc */
             if (EVAL_CLOSE_PAREN_IS_TRUE(cur_eval,(U32)ST.paren))
@@ -9129,9 +9372,9 @@ NULL
 
         case CURLY:		/*  /A{m,n}B/ where A is width 1 char */
             ST.paren = 0;
-            ST.min = ARG1(scan);  /* min to match */
-            ST.max = ARG2(scan);  /* max to match */
-            scan = NEXTOPER(scan) + NODE_STEP_REGNODE;
+            ST.min = ARG1i(scan);  /* min to match */
+            ST.max = ARG2i(scan);  /* max to match */
+            scan = REGNODE_AFTER_type(scan, tregnode_CURLY);
           repeat:
             /*
             * Lookahead to avoid useless match attempts
@@ -9155,7 +9398,7 @@ NULL
                 if (! HAS_TEXT(text_node))
                     ST.Binfo.count = 0;
                 else {
-                    if ( PL_regkind[OP(text_node)] != EXACT ) {
+                    if ( REGNODE_TYPE(OP(text_node)) != EXACT ) {
                         ST.Binfo.count = 0;
                     }
                     else {
@@ -9213,12 +9456,15 @@ NULL
                 /* avoid taking address of locinput, so it can remain
                  * a register var */
                 char *li = locinput;
-                ST.count = regrepeat(rex, &li, ST.A, loceol, reginfo, ST.max);
+                if (ST.max)
+                    ST.count = regrepeat(rex, &li, ST.A, loceol, reginfo, ST.max);
+                else
+                    ST.count = 0;
                 if (ST.count < ST.min)
                     sayNO;
                 SET_locinput(li);
                 if ((ST.count > ST.min)
-                    && (PL_regkind[OP(ST.B)] == EOL) && (OP(ST.B) != MEOL))
+                    && (REGNODE_TYPE(OP(ST.B)) == EOL) && (OP(ST.B) != MEOL))
                 {
                     /* A{m,n} must come at the end of the string, there's
                      * no point in backing off ... */
@@ -9236,7 +9482,10 @@ NULL
 
         case CURLY_B_min_fail:
             /* failed to find B in a non-greedy match. */
-
+            if (RE_PESSIMISTIC_PARENS) {
+                REGCP_UNWIND(ST.lastcp);
+                regcppop(rex, &maxopenparen); /* Restore some previous $<digit>s? */
+            }
             REGCP_UNWIND(ST.cp);
             if (ST.paren) {
                 UNWIND_PAREN(ST.lastparen, ST.lastcloseparen);
@@ -9349,6 +9598,10 @@ NULL
             }
 
           curly_try_B_min:
+            if (RE_PESSIMISTIC_PARENS) {
+                (void)regcppush(rex, 0, maxopenparen);
+                REGCP_SET(ST.lastcp);
+            }
             CURLY_SETPAREN(ST.paren, ST.count);
             PUSH_STATE_GOTO(CURLY_B_min, ST.B, locinput, loceol,
                             script_run_begin);
@@ -9362,16 +9615,26 @@ NULL
                     &&  locinput + ST.Binfo.min_length <= loceol
                     &&  S_test_EXACTISH_ST(locinput, ST.Binfo)))
             {
+                if (RE_PESSIMISTIC_PARENS) {
+                    (void)regcppush(rex, 0, maxopenparen);
+                    REGCP_SET(ST.lastcp);
+                }
                 CURLY_SETPAREN(ST.paren, ST.count);
                 PUSH_STATE_GOTO(CURLY_B_max, ST.B, locinput, loceol,
                                 script_run_begin);
                 NOT_REACHED; /* NOTREACHED */
             }
-            /* FALLTHROUGH */
+            goto CURLY_B_all_failed;
+            NOT_REACHED; /* NOTREACHED */
 
         case CURLY_B_max_fail:
             /* failed to find B in a greedy match */
 
+            if (RE_PESSIMISTIC_PARENS) {
+                REGCP_UNWIND(ST.lastcp);
+                regcppop(rex, &maxopenparen); /* Restore some previous $<digit>s? */
+            }
+          CURLY_B_all_failed:
             REGCP_UNWIND(ST.cp);
             if (ST.paren) {
                 UNWIND_PAREN(ST.lastparen, ST.lastcloseparen);
@@ -9475,10 +9738,10 @@ NULL
             ST.wanted = 1;
           ifmatch_trivial_fail_test:
             ST.prev_match_end= match_end;
-            ST.count = scan->next_off + 1; /* next_off repurposed to be
+            ST.count = NEXT_OFF(scan) + 1; /* next_off repurposed to be
                                               lookbehind count, requires
                                               non-zero flags */
-            if (! scan->flags) {    /* 'flags' zero means lookahed */
+            if (! FLAGS(scan)) {    /* 'flags' zero means lookahed */
 
                 /* Lookahead starts here and ends at the normal place */
                 ST.start = locinput;
@@ -9486,7 +9749,7 @@ NULL
                 match_end = NULL;
             }
             else {
-                PERL_UINT_FAST8_T back_count = scan->flags;
+                PERL_UINT_FAST8_T back_count = FLAGS(scan);
                 char * s;
                 match_end = locinput;
 
@@ -9514,7 +9777,7 @@ NULL
                     sayNO;
 
                 /* Here, we didn't want it to match, so is actually success */
-                next = scan + ARG(scan);
+                next = scan + ARG1u(scan);
                 if (next == scan)
                     next = NULL;
                 break;
@@ -9526,7 +9789,7 @@ NULL
             logical = 0; /* XXX: reset state of logical once it has been saved into ST */
 
             /* execute body of (?...A) */
-            PUSH_YES_STATE_GOTO(IFMATCH_A, NEXTOPER(NEXTOPER(scan)), ST.start,
+            PUSH_YES_STATE_GOTO(IFMATCH_A, REGNODE_AFTER(scan), ST.start,
                                 ST.end, script_run_begin);
             NOT_REACHED; /* NOTREACHED */
 
@@ -9564,7 +9827,7 @@ NULL
                 loceol = st->loceol;
                 script_run_begin = st->sr0;
             }
-            scan = ST.me + ARG(ST.me);
+            scan = ST.me + ARG1u(ST.me);
             if (scan == ST.me)
                 scan = NULL;
             continue; /* execute B */
@@ -9574,7 +9837,7 @@ NULL
 
         case LONGJMP: /*  alternative with many branches compiles to
                        * (BRANCHJ; EXACT ...; LONGJMP ) x N */
-            next = scan + ARG(scan);
+            next = scan + ARG1u(scan);
             if (next == scan)
                 next = NULL;
             break;
@@ -9584,8 +9847,8 @@ NULL
             /* FALLTHROUGH */
 
         case PRUNE:   /*  (*PRUNE)   */
-            if (scan->flags)
-                sv_yes_mark = sv_commit = MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
+            if (FLAGS(scan))
+                sv_yes_mark = sv_commit = MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ]);
             PUSH_STATE_GOTO(COMMIT_next, next, locinput, loceol,
                             script_run_begin);
             NOT_REACHED; /* NOTREACHED */
@@ -9597,8 +9860,8 @@ NULL
             NOT_REACHED; /* NOTREACHED */
 
         case OPFAIL:   /* (*FAIL)  */
-            if (scan->flags)
-                sv_commit = MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
+            if (FLAGS(scan))
+                sv_commit = MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ]);
             if (logical) {
                 /* deal with (?(?!)X|Y) properly,
                  * make sure we trigger the no branch
@@ -9614,7 +9877,7 @@ NULL
         case MARKPOINT: /*  (*MARK:foo)  */
             ST.prev_mark = mark_state;
             ST.mark_name = sv_commit = sv_yes_mark
-                = MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
+                = MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ]);
             mark_state = st;
             ST.mark_loc = locinput;
             PUSH_YES_STATE_GOTO(MARKPOINT_next, next, locinput, loceol,
@@ -9647,7 +9910,7 @@ NULL
             NOT_REACHED; /* NOTREACHED */
 
         case SKIP:  /*  (*SKIP)  */
-            if (!scan->flags) {
+            if (!FLAGS(scan)) {
                 /* (*SKIP) : if we fail we cut here*/
                 ST.mark_name = NULL;
                 ST.mark_loc = locinput;
@@ -9658,7 +9921,7 @@ NULL
                    otherwise do nothing.  Meaning we need to scan
                  */
                 regmatch_state *cur = mark_state;
-                SV *find = MUTABLE_SV(rexi->data->data[ ARG( scan ) ]);
+                SV *find = MUTABLE_SV(rexi->data->data[ ARG1u( scan ) ]);
 
                 while (cur) {
                     if ( sv_eq( cur->u.mark.mark_name,
@@ -9753,7 +10016,7 @@ NULL
                     Perl_re_exec_indentf( aTHX_ "%4s #%-3d %-10s %s\n",
                         depth,
                         i ? "    " : "push",
-                        depth - i, PL_reg_name[cur->resume_state],
+                        depth - i, REGNODE_NAME(cur->resume_state),
                         (curyes == cur) ? "yes" : ""
                     );
                     if (curyes == cur)
@@ -9844,7 +10107,7 @@ NULL
          * When popping the save stack, all these locals would be undone;
          * bypass this by setting the outermost saved $^R to the latest
          * value */
-        /* I dont know if this is needed or works properly now.
+        /* I don't know if this is needed or works properly now.
          * see code related to PL_replgv elsewhere in this file.
          * Yves
          */
@@ -9945,7 +10208,7 @@ NULL
  */
 STATIC I32
 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p,
-            char * loceol, regmatch_info *const reginfo, I32 max _pDEPTH)
+            char * loceol, regmatch_info *const reginfo, I32 max comma_pDEPTH)
 {
     char *scan;     /* Pointer to current position in target string */
     I32 c;
@@ -9953,7 +10216,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
     I32 hardcount = 0;  /* How many matches so far */
     bool utf8_target = reginfo->is_utf8_target;
     unsigned int to_complement = 0;  /* Invert the result? */
-    _char_class_number classnum;
+    char_class_number_ classnum;
 
     PERL_ARGS_ASSERT_REGREPEAT;
 
@@ -9993,6 +10256,8 @@ S_regrepeat(pTHX_ regexp *prog, char **s
      * count doesn't exceed the maximum permissible */
 
     switch (with_t_UTF8ness(OP(p), utf8_target)) {
+        SV * anyofh_list;
+
       case REG_ANY_t8:
         while (scan < this_eol && hardcount < max && *scan != '\n') {
             scan += UTF8SKIP(scan);
@@ -10034,7 +10299,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
       case EXACTFL_tb:
       case EXACTFLU8_t8:
       case EXACTFLU8_tb:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         /* FALLTHROUGH */
 
       case EXACT_REQ8_t8:
@@ -10137,7 +10402,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
              * and the rest matched as well, but could have false positives */
 
             do {
-                PERL_INT_FAST8_T i;
+                int i;
                 U8 * matches = Binfo.matches;
 
                 /* The first bytes were definitive.  Look at the remaining */
@@ -10175,7 +10440,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
          * there were no initial bytes that could rule out anything
          * definitively. Use brute force to examine all the possibilities */
         while (scan < this_eol && hardcount < max) {
-            PERL_INT_FAST8_T i;
+            int i;
             U8 * matches = Binfo.matches;
 
             for (i = 0; i < Binfo.count; i++) {
@@ -10198,8 +10463,8 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case ANYOFPOSIXL_t8:
       case ANYOFL_t8:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
-         CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(p);
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
+        CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(p);
 
         /* FALLTHROUGH */
       case ANYOFD_t8:
@@ -10215,13 +10480,13 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case ANYOFPOSIXL_tb:
       case ANYOFL_tb:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
-         CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(p);
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
+        CHECK_AND_WARN_NON_UTF8_CTYPE_LOCALE_IN_SETS(p);
         /* FALLTHROUGH */
 
       case ANYOFD_tb:
       case ANYOF_tb:
-        if (ANYOF_FLAGS(p) & ~ ANYOF_MATCHES_ALL_ABOVE_BITMAP) {
+        if (ANYOF_FLAGS(p) || ANYOF_HAS_AUX(p)) {
             while (   scan < this_eol
                    && reginclass(prog, p, (U8*)scan, (U8*)scan+1, 0))
                 scan++;
@@ -10244,13 +10509,13 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case ANYOFM_tb:
         scan = (char *) find_span_end_mask((U8 *) scan, (U8 *) this_eol,
-                                           (U8) ARG(p), FLAGS(p));
+                                           (U8) ARG1u(p), FLAGS(p));
         break;
 
       case NANYOFM_t8:
         while (     hardcount < max
                &&   scan < this_eol
-               &&  (*scan & FLAGS(p)) != ARG(p))
+               &&  (*scan & FLAGS(p)) != ARG1u(p))
         {
             scan += UTF8SKIP(scan);
             hardcount++;
@@ -10259,20 +10524,25 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case NANYOFM_tb:
         scan = (char *) find_next_masked((U8 *) scan, (U8 *) this_eol,
-                                         (U8) ARG(p), FLAGS(p));
+                                         (U8) ARG1u(p), FLAGS(p));
         break;
 
       case ANYOFH_tb: /* ANYOFH only can match UTF-8 targets */
       case ANYOFHb_tb:
+      case ANYOFHbbm_tb:
       case ANYOFHr_tb:
       case ANYOFHs_tb:
         break;
 
       case ANYOFH_t8:
+        anyofh_list = GET_ANYOFH_INVLIST(prog, p);
         while (  hardcount < max
                && scan < this_eol
                && NATIVE_UTF8_TO_I8(*scan) >= ANYOF_FLAGS(p)
-               && reginclass(prog, p, (U8*)scan, (U8*) this_eol, TRUE))
+               && _invlist_contains_cp(anyofh_list,
+                                             utf8_to_uvchr_buf((U8 *) scan,
+                                                               (U8 *) this_eol,
+                                                               NULL)))
         {
             scan += UTF8SKIP(scan);
             hardcount++;
@@ -10281,24 +10551,44 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case ANYOFHb_t8:
         /* we know the first byte must be the FLAGS field */
+        anyofh_list = GET_ANYOFH_INVLIST(prog, p);
         while (   hardcount < max
                && scan < this_eol
                && (U8) *scan == ANYOF_FLAGS(p)
-               && reginclass(prog, p, (U8*)scan, (U8*) this_eol, TRUE))
+               && _invlist_contains_cp(anyofh_list,
+                                             utf8_to_uvchr_buf((U8 *) scan,
+                                                               (U8 *) this_eol,
+                                                               NULL)))
         {
             scan += UTF8SKIP(scan);
             hardcount++;
         }
         break;
 
+      case ANYOFHbbm_t8:
+        while (   hardcount < max
+               && scan + 1 < this_eol
+               && (U8) *scan == ANYOF_FLAGS(p)
+               && BITMAP_TEST(( (struct regnode_bbm *) p)->bitmap,
+                                (U8) scan[1] & UTF_CONTINUATION_MASK))
+        {
+            scan += 2;  /* This node only matces 2-byte UTF-8 */
+            hardcount++;
+        }
+        break;
+
       case ANYOFHr_t8:
+        anyofh_list = GET_ANYOFH_INVLIST(prog, p);
         while (  hardcount < max
                && scan < this_eol
                && inRANGE(NATIVE_UTF8_TO_I8(*scan),
                           LOWEST_ANYOF_HRx_BYTE(ANYOF_FLAGS(p)),
                           HIGHEST_ANYOF_HRx_BYTE(ANYOF_FLAGS(p)))
                && NATIVE_UTF8_TO_I8(*scan) >= ANYOF_FLAGS(p)
-               && reginclass(prog, p, (U8*)scan, (U8*) this_eol, TRUE))
+               && _invlist_contains_cp(anyofh_list,
+                                             utf8_to_uvchr_buf((U8 *) scan,
+                                                               (U8 *) this_eol,
+                                                               NULL)))
         {
             scan += UTF8SKIP(scan);
             hardcount++;
@@ -10306,10 +10596,14 @@ S_regrepeat(pTHX_ regexp *prog, char **s
         break;
 
       case ANYOFHs_t8:
+        anyofh_list = GET_ANYOFH_INVLIST(prog, p);
         while (   hardcount < max
                && scan + FLAGS(p) < this_eol
                && memEQ(scan, ((struct regnode_anyofhs *) p)->string, FLAGS(p))
-               && reginclass(prog, p, (U8*)scan, (U8*) this_eol, TRUE))
+               && _invlist_contains_cp(anyofh_list,
+                                             utf8_to_uvchr_buf((U8 *) scan,
+                                                               (U8 *) this_eol,
+                                                               NULL)))
         {
             scan += UTF8SKIP(scan);
             hardcount++;
@@ -10371,7 +10665,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
         /* FALLTHROUGH */
 
       case POSIXL_tb:
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
         while (   scan < this_eol
                && to_complement ^ cBOOL(isFOO_lc(FLAGS(p), *scan)))
         {
@@ -10408,7 +10702,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
         /* FALLTHROUGH */
 
       case POSIXA_tb:
-        while (scan < this_eol && _generic_isCC_A((U8) *scan, FLAGS(p))) {
+        while (scan < this_eol && generic_isCC_A_((U8) *scan, FLAGS(p))) {
             scan++;
         }
         break;
@@ -10417,7 +10711,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
         /* FALLTHROUGH */
 
       case NPOSIXA_tb:
-        while (scan < this_eol && ! _generic_isCC_A((U8) *scan, FLAGS(p))) {
+        while (scan < this_eol && ! generic_isCC_A_((U8) *scan, FLAGS(p))) {
             scan++;
         }
         break;
@@ -10428,7 +10722,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
          * non-ASCII, plus everything in ASCII that isn't in the class. */
         while (   hardcount < max && scan < this_eol
                && (   ! isASCII_utf8_safe(scan, loceol)
-                   || ! _generic_isCC_A((U8) *scan, FLAGS(p))))
+                   || ! generic_isCC_A_((U8) *scan, FLAGS(p))))
             {
                 scan += UTF8SKIP(scan);
                 hardcount++;
@@ -10441,7 +10735,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case POSIXU_tb:
         while (   scan < this_eol
-               && to_complement ^ cBOOL(_generic_isCC((U8) *scan, FLAGS(p))))
+               && to_complement ^ cBOOL(generic_isCC_((U8) *scan, FLAGS(p))))
         {
             scan++;
         }
@@ -10454,7 +10748,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
       case POSIXD_t8:
       case POSIXU_t8:
-        classnum = (_char_class_number) FLAGS(p);
+        classnum = (char_class_number_) FLAGS(p);
         switch (classnum) {
           default:
             while (   hardcount < max && scan < this_eol
@@ -10472,7 +10766,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
              * for making the loops as tight as possible.  It could be
              * refactored to save space instead. */
 
-          case _CC_ENUM_SPACE:
+          case CC_ENUM_SPACE_:
             while (   hardcount < max
                    && scan < this_eol
                    && (to_complement
@@ -10482,7 +10776,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
                 hardcount++;
             }
             break;
-          case _CC_ENUM_BLANK:
+          case CC_ENUM_BLANK_:
             while (   hardcount < max
                    && scan < this_eol
                    && (to_complement
@@ -10492,7 +10786,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
                 hardcount++;
             }
             break;
-          case _CC_ENUM_XDIGIT:
+          case CC_ENUM_XDIGIT_:
             while (   hardcount < max
                    && scan < this_eol
                    && (to_complement
@@ -10502,7 +10796,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
                 hardcount++;
             }
             break;
-          case _CC_ENUM_VERTSPACE:
+          case CC_ENUM_VERTSPACE_:
             while (   hardcount < max
                    && scan < this_eol
                    && (to_complement
@@ -10512,7 +10806,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
                 hardcount++;
             }
             break;
-          case _CC_ENUM_CNTRL:
+          case CC_ENUM_CNTRL_:
             while (   hardcount < max
                    && scan < this_eol
                    && (to_complement
@@ -10549,7 +10843,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s
 
     default:
         Perl_croak(aTHX_ "panic: regrepeat() called with unrecognized"
-                         " node type %d='%s'", OP(p), PL_reg_name[OP(p)]);
+                         " node type %d='%s'", OP(p), REGNODE_NAME(OP(p)));
         NOT_REACHED; /* NOTREACHED */
 
     }
@@ -10615,7 +10909,7 @@ S_reginclass(pTHX_ regexp * const prog, 
         }
         if (     c > 255
             &&  (OP(n) == ANYOFL || OP(n) == ANYOFPOSIXL)
-            && ! ANYOFL_UTF8_LOCALE_REQD(flags))
+            && ! (flags & ANYOFL_UTF8_LOCALE_REQD))
         {
             _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(c);
         }
@@ -10625,11 +10919,10 @@ S_reginclass(pTHX_ regexp * const prog, 
     if (c < NUM_ANYOF_CODE_POINTS && ! inRANGE(OP(n), ANYOFH, ANYOFHb)) {
         if (ANYOF_BITMAP_TEST(n, c))
             match = TRUE;
-        else if ((flags
-                & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER)
-                  && OP(n) == ANYOFD
-                  && ! utf8_target
-                  && ! isASCII(c))
+        else if (  (flags & ANYOFD_NON_UTF8_MATCHES_ALL_NON_ASCII__shared)
+                 && OP(n) == ANYOFD
+                 && ! utf8_target
+                 && ! isASCII(c))
         {
             match = TRUE;
         }
@@ -10678,108 +10971,124 @@ S_reginclass(pTHX_ regexp * const prog, 
         }
     }
 
-
     /* If the bitmap didn't (or couldn't) match, and something outside the
      * bitmap could match, try that. */
     if (!match) {
-        if (c >= NUM_ANYOF_CODE_POINTS
-            && (flags & ANYOF_MATCHES_ALL_ABOVE_BITMAP))
-        {
-            match = TRUE;	/* Everything above the bitmap matches */
+        if (      c >= NUM_ANYOF_CODE_POINTS
+            &&    ANYOF_ONLY_HAS_BITMAP(n)
+            && ! (flags & ANYOF_HAS_EXTRA_RUNTIME_MATCHES))
+        {
+            /* In this case, the ARG is set up so that the final bit indicates
+             * whether it matches or not */
+            match = ARG1u(n) & 1;
         }
-            /* Here doesn't match everything above the bitmap.  If there is
-             * some information available beyond the bitmap, we may find a
-             * match in it.  If so, this is most likely because the code point
-             * is outside the bitmap range.  But rarely, it could be because of
-             * some other reason.  If so, various flags are set to indicate
-             * this possibility.  On ANYOFD nodes, there may be matches that
-             * happen only when the target string is UTF-8; or for other node
-             * types, because runtime lookup is needed, regardless of the
-             * UTF-8ness of the target string.  Finally, under /il, there may
-             * be some matches only possible if the locale is a UTF-8 one. */
-        else if (    ARG(n) != ANYOF_ONLY_HAS_BITMAP
-                 && (   c >= NUM_ANYOF_CODE_POINTS
-                     || (   (flags & ANYOF_SHARED_d_UPPER_LATIN1_UTF8_STRING_MATCHES_non_d_RUNTIME_USER_PROP)
-                         && (   UNLIKELY(OP(n) != ANYOFD)
-                             || (utf8_target && ! isASCII_uni(c)
+        else
+            /* Here, the main way it could match is if the code point is
+             * outside the bitmap and an inversion list exists to handle such
+             * things.  The other ways all occur when a flag is set to indicate
+             * we need special handling.  That handling doesn't come in to
+             * effect for ANYOFD nodes unless the target string is UTF-8 and
+             * that matters to code point being matched. */
+             if (    c >= NUM_ANYOF_CODE_POINTS
+                 || (   (flags & ANYOF_HAS_EXTRA_RUNTIME_MATCHES)
+                     && (   UNLIKELY(OP(n) != ANYOFD)
+                         || (utf8_target && ! isASCII_uvchr(c)
 #                               if NUM_ANYOF_CODE_POINTS > 256
-                                                                 && c < 256
+                                                               && c < 256
 #                               endif
-                                )))
-                     || (   ANYOFL_SOME_FOLDS_ONLY_IN_UTF8_LOCALE(flags)
-                         && IN_UTF8_CTYPE_LOCALE)))
-        {
-            SV* only_utf8_locale = NULL;
-            SV * const definition =
-#if !defined(PERL_IN_XSUB_RE) || defined(PLUGGABLE_RE_EXTENSION)
-                get_regclass_nonbitmap_data(prog, n, TRUE, 0,
-                                            &only_utf8_locale, NULL);
-#else
-                get_re_gclass_nonbitmap_data(prog, n, TRUE, 0,
-                                             &only_utf8_locale, NULL);
-#endif
-            if (definition) {
-                U8 utf8_buffer[2];
-                U8 * utf8_p;
-                if (utf8_target) {
-                    utf8_p = (U8 *) p;
-                } else { /* Convert to utf8 */
-                    utf8_p = utf8_buffer;
-                    append_utf8_from_native_byte(*p, &utf8_p);
-                    utf8_p = utf8_buffer;
+                                                                         ))))
+        {
+            /* Here, we have an inversion list for outside-the-bitmap code
+             * points and/or the flag is set indicating special handling is
+             * needed.  The flag is set when there is auxiliary data beyond the
+             * normal inversion list, or if there is the possibility of a
+             * special Turkic locale match, even without auxiliary data.
+             *
+             * First check if there is an inversion list and/or auxiliary data.
+             * */
+            if (ANYOF_HAS_AUX(n)) {
+                SV* only_utf8_locale = NULL;
+
+                /* This call will return in 'definition' the union of the base
+                 * non-bitmap inversion list, if any, plus the deferred
+                 * definitions of user-defined properties, if any.  It croaks
+                 * if there is such a property but which still has no definition
+                 * available */
+                SV * const definition = GET_REGCLASS_AUX_DATA(prog, n, TRUE, 0,
+                                                      &only_utf8_locale, NULL);
+                if (definition) {
+                    /* Most likely is the outside-the-bitmap inversion list. */
+                    if (_invlist_contains_cp(definition, c)) {
+                        match = TRUE;
+                    }
+                    else /* Failing that, hardcode the two tests for a Turkic
+                            locale */
+                         if (   UNLIKELY(IN_UTF8_TURKIC_LOCALE)
+                             && isALPHA_FOLD_EQ(*p, 'i'))
+                    {
+                        /* Turkish locales have these hard-coded rules
+                         * overriding normal ones */
+                        if (*p == 'i') {
+                            if (_invlist_contains_cp(definition,
+                                         LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE))
+                            {
+                                match = TRUE;
+                            }
+                        }
+                        else if (_invlist_contains_cp(definition,
+                                                 LATIN_SMALL_LETTER_DOTLESS_I))
+                        {
+                            match = TRUE;
+                        }
+                    }
                 }
 
-                /* Turkish locales have these hard-coded rules overriding
-                 * normal ones */
-                if (   UNLIKELY(PL_in_utf8_turkic_locale)
-                    && isALPHA_FOLD_EQ(*p, 'i'))
+                if (   UNLIKELY(only_utf8_locale)
+                    && UNLIKELY(IN_UTF8_CTYPE_LOCALE)
+                    && ! match)
                 {
-                    if (*p == 'i') {
-                        if (_invlist_contains_cp(definition,
-                                       LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE))
-                        {
+                    match = _invlist_contains_cp(only_utf8_locale, c);
+                }
+            }
+
+            /* In a Turkic locale under folding, hard-code the I i case pair
+             * matches; these wouldn't have the ANYOF_HAS_EXTRA_RUNTIME_MATCHES
+             * flag set unless [Ii] were match possibilities */
+            if (UNLIKELY(IN_UTF8_TURKIC_LOCALE) && ! match) {
+                if (utf8_target) {
+                    if (c == LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) {
+                        if (ANYOF_BITMAP_TEST(n, 'i')) {
                             match = TRUE;
                         }
                     }
-                    else if (*p == 'I') {
-                        if (_invlist_contains_cp(definition,
-                                                LATIN_SMALL_LETTER_DOTLESS_I))
-                        {
+                    else if (c == LATIN_SMALL_LETTER_DOTLESS_I) {
+                        if (ANYOF_BITMAP_TEST(n, 'I')) {
                             match = TRUE;
                         }
                     }
                 }
-                else if (_invlist_contains_cp(definition, c)) {
-                    match = TRUE;
-                }
-            }
-            if (! match && only_utf8_locale && IN_UTF8_CTYPE_LOCALE) {
-                match = _invlist_contains_cp(only_utf8_locale, c);
-            }
-        }
 
-        /* In a Turkic locale under folding, hard-code the I i case pair
-         * matches */
-        if (     UNLIKELY(PL_in_utf8_turkic_locale)
-            && ! match
-            &&   (flags & ANYOFL_FOLD)
-            &&   utf8_target)
-        {
-            if (c == LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) {
-                if (ANYOF_BITMAP_TEST(n, 'i')) {
-                    match = TRUE;
+#if NUM_ANYOF_CODE_POINTS > 256
+                /* Larger bitmap means these special cases aren't handled
+                 * outside the bitmap above. */
+                if (*p == 'i') {
+                    if (ANYOF_BITMAP_TEST(n,
+                                        LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE))
+                    {
+                        match = TRUE;
+                    }
                 }
-            }
-            else if (c == LATIN_SMALL_LETTER_DOTLESS_I) {
-                if (ANYOF_BITMAP_TEST(n, 'I')) {
-                    match = TRUE;
+                else if (*p == 'I') {
+                    if (ANYOF_BITMAP_TEST(n, LATIN_SMALL_LETTER_DOTLESS_I)) {
+                        match = TRUE;
+                    }
                 }
+#endif
             }
         }
 
-        if (UNICODE_IS_SUPER(c)
-            && (flags
-               & ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER)
+        if (   UNICODE_IS_SUPER(c)
+            && (flags & ANYOF_WARN_SUPER__shared)
             && OP(n) != ANYOFD
             && ckWARN_d(WARN_NON_UNICODE))
         {
@@ -10965,21 +11274,21 @@ S_setup_eval_state(pTHX_ regmatch_info *
         /*  Here is a serious problem: we cannot rewrite subbeg,
             since it may be needed if this match fails.  Thus
             $` inside (?{}) could fail... */
-        eval_state->subbeg     = rex->subbeg;
-        eval_state->sublen     = rex->sublen;
-        eval_state->suboffset  = rex->suboffset;
-        eval_state->subcoffset = rex->subcoffset;
+        eval_state->subbeg     = RXp_SUBBEG(rex);
+        eval_state->sublen     = RXp_SUBLEN(rex);
+        eval_state->suboffset  = RXp_SUBOFFSET(rex);
+        eval_state->subcoffset = RXp_SUBCOFFSET(rex);
 #ifdef PERL_ANY_COW
-        eval_state->saved_copy = rex->saved_copy;
+        eval_state->saved_copy = RXp_SAVED_COPY(rex);
 #endif
         RXp_MATCH_COPIED_off(rex);
     }
     else
         eval_state->subbeg = NULL;
-    rex->subbeg = (char *)reginfo->strbeg;
-    rex->suboffset = 0;
-    rex->subcoffset = 0;
-    rex->sublen = reginfo->strend - reginfo->strbeg;
+    RXp_SUBBEG(rex) = (char *)reginfo->strbeg;
+    RXp_SUBOFFSET(rex) = 0;
+    RXp_SUBCOFFSET(rex) = 0;
+    RXp_SUBLEN(rex) = reginfo->strend - reginfo->strbeg;
 }
 
 
@@ -11000,12 +11309,12 @@ S_cleanup_regmatch_info_aux(pTHX_ void *
 
         if (eval_state->subbeg) {
             regexp * const rex = eval_state->rex;
-            rex->subbeg     = eval_state->subbeg;
-            rex->sublen     = eval_state->sublen;
-            rex->suboffset  = eval_state->suboffset;
-            rex->subcoffset = eval_state->subcoffset;
+            RXp_SUBBEG(rex) = eval_state->subbeg;
+            RXp_SUBLEN(rex)     = eval_state->sublen;
+            RXp_SUBOFFSET(rex)  = eval_state->suboffset;
+            RXp_SUBCOFFSET(rex) = eval_state->subcoffset;
 #ifdef PERL_ANY_COW
-            rex->saved_copy = eval_state->saved_copy;
+            RXp_SAVED_COPY(rex) = eval_state->saved_copy;
 #endif
             RXp_MATCH_COPIED_on(rex);
         }
@@ -11247,7 +11556,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, co
 
 
     /* Things that match /\d/u */
-    SV * decimals_invlist = PL_XPosix_ptrs[_CC_DIGIT];
+    SV * decimals_invlist = PL_XPosix_ptrs[CC_DIGIT_];
     UV * decimals_array = invlist_array(decimals_invlist);
 
     /* What code point is the digit '0' of the script run? (0 meaning FALSE if
@@ -11424,7 +11733,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, co
          *
          * Negative script numbers signify that the value may be any of several
          * scripts, and we need to look at auxiliary information to make our
-         * deterimination.  But if both are non-negative, we can fail now */
+         * determination.  But if both are non-negative, we can fail now */
         if (LIKELY(script_of_char >= 0)) {
             const SCX_enum * search_in;
             PERL_UINT_FAST8_T search_in_len;
@@ -11612,8 +11921,461 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, co
 
     return retval;
 }
-
 #endif /* ifndef PERL_IN_XSUB_RE */
+
+/* Buffer logic. */
+SV*
+Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value,
+                    const U32 flags)
+{
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF;
+
+    PERL_UNUSED_ARG(value);
+
+    if (flags & RXapif_FETCH) {
+        return reg_named_buff_fetch(rx, key, flags);
+    } else if (flags & (RXapif_STORE | RXapif_DELETE | RXapif_CLEAR)) {
+        Perl_croak_no_modify();
+        return NULL;
+    } else if (flags & RXapif_EXISTS) {
+        return reg_named_buff_exists(rx, key, flags)
+            ? &PL_sv_yes
+            : &PL_sv_no;
+    } else if (flags & RXapif_REGNAMES) {
+        return reg_named_buff_all(rx, flags);
+    } else if (flags & (RXapif_SCALAR | RXapif_REGNAMES_COUNT)) {
+        return reg_named_buff_scalar(rx, flags);
+    } else {
+        Perl_croak(aTHX_ "panic: Unknown flags %d in named_buff", (int)flags);
+        return NULL;
+    }
+}
+
+SV*
+Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey,
+                         const U32 flags)
+{
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER;
+    PERL_UNUSED_ARG(lastkey);
+
+    if (flags & RXapif_FIRSTKEY)
+        return reg_named_buff_firstkey(rx, flags);
+    else if (flags & RXapif_NEXTKEY)
+        return reg_named_buff_nextkey(rx, flags);
+    else {
+        Perl_croak(aTHX_ "panic: Unknown flags %d in named_buff_iter",
+                                            (int)flags);
+        return NULL;
+    }
+}
+
+SV*
+Perl_reg_named_buff_fetch(pTHX_ REGEXP * const r, SV * const namesv,
+                          const U32 flags)
+{
+    SV *ret;
+    struct regexp *const rx = ReANY(r);
+
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH;
+
+    if (rx && RXp_PAREN_NAMES(rx)) {
+        HE *he_str = hv_fetch_ent( RXp_PAREN_NAMES(rx), namesv, 0, 0 );
+        if (he_str) {
+            IV i;
+            SV* sv_dat=HeVAL(he_str);
+            I32 *nums=(I32*)SvPVX(sv_dat);
+            AV * const retarray = (flags & RXapif_ALL) ? newAV_alloc_x(SvIVX(sv_dat)) : NULL;
+            for ( i=0; i<SvIVX(sv_dat); i++ ) {
+                if ((I32)(rx->nparens) >= nums[i]
+                    && RXp_OFFS_VALID(rx,nums[i]))
+                {
+                    ret = newSVpvs("");
+                    Perl_reg_numbered_buff_fetch_flags(aTHX_ r, nums[i], ret, REG_FETCH_ABSOLUTE);
+                    if (!retarray)
+                        return ret;
+                } else {
+                    if (retarray)
+                        ret = newSV_type(SVt_NULL);
+                }
+                if (retarray)
+                    av_push_simple(retarray, ret);
+            }
+            if (retarray)
+                return newRV_noinc(MUTABLE_SV(retarray));
+        }
+    }
+    return NULL;
+}
+
+bool
+Perl_reg_named_buff_exists(pTHX_ REGEXP * const r, SV * const key,
+                           const U32 flags)
+{
+    struct regexp *const rx = ReANY(r);
+
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS;
+
+    if (rx && RXp_PAREN_NAMES(rx)) {
+        if (flags & RXapif_ALL) {
+            return hv_exists_ent(RXp_PAREN_NAMES(rx), key, 0);
+        } else {
+            SV *sv = CALLREG_NAMED_BUFF_FETCH(r, key, flags);
+            if (sv) {
+                SvREFCNT_dec_NN(sv);
+                return TRUE;
+            } else {
+                return FALSE;
+            }
+        }
+    } else {
+        return FALSE;
+    }
+}
+
+SV*
+Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const r, const U32 flags)
+{
+    struct regexp *const rx = ReANY(r);
+
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY;
+
+    if ( rx && RXp_PAREN_NAMES(rx) ) {
+        (void)hv_iterinit(RXp_PAREN_NAMES(rx));
+
+        return CALLREG_NAMED_BUFF_NEXTKEY(r, NULL, flags & ~RXapif_FIRSTKEY);
+    } else {
+        return FALSE;
+    }
+}
+
+SV*
+Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const r, const U32 flags)
+{
+    struct regexp *const rx = ReANY(r);
+    DECLARE_AND_GET_RE_DEBUG_FLAGS;
+
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY;
+
+    if (rx && RXp_PAREN_NAMES(rx)) {
+        HV *hv = RXp_PAREN_NAMES(rx);
+        HE *temphe;
+        while ( (temphe = hv_iternext_flags(hv, 0)) ) {
+            IV i;
+            IV parno = 0;
+            SV* sv_dat = HeVAL(temphe);
+            I32 *nums = (I32*)SvPVX(sv_dat);
+            for ( i = 0; i < SvIVX(sv_dat); i++ ) {
+                if ((I32)(RXp_LASTPAREN(rx)) >= nums[i] &&
+                    RXp_OFFS_VALID(rx,nums[i]))
+                {
+                    parno = nums[i];
+                    break;
+                }
+            }
+            if (parno || flags & RXapif_ALL) {
+                return newSVhek(HeKEY_hek(temphe));
+            }
+        }
+    }
+    return NULL;
+}
+
+SV*
+Perl_reg_named_buff_scalar(pTHX_ REGEXP * const r, const U32 flags)
+{
+    SV *ret;
+    AV *av;
+    SSize_t length;
+    struct regexp *const rx = ReANY(r);
+
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR;
+
+    if (rx && RXp_PAREN_NAMES(rx)) {
+        if (flags & (RXapif_ALL | RXapif_REGNAMES_COUNT)) {
+            return newSViv(HvTOTALKEYS(RXp_PAREN_NAMES(rx)));
+        } else if (flags & RXapif_ONE) {
+            ret = CALLREG_NAMED_BUFF_ALL(r, (flags | RXapif_REGNAMES));
+            av = MUTABLE_AV(SvRV(ret));
+            length = av_count(av);
+            SvREFCNT_dec_NN(ret);
+            return newSViv(length);
+        } else {
+            Perl_croak(aTHX_ "panic: Unknown flags %d in named_buff_scalar",
+                                                (int)flags);
+            return NULL;
+        }
+    }
+    return &PL_sv_undef;
+}
+
+SV*
+Perl_reg_named_buff_all(pTHX_ REGEXP * const r, const U32 flags)
+{
+    struct regexp *const rx = ReANY(r);
+    AV *av = newAV();
+
+    PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL;
+
+    if (rx && RXp_PAREN_NAMES(rx)) {
+        HV *hv= RXp_PAREN_NAMES(rx);
+        HE *temphe;
+        (void)hv_iterinit(hv);
+        while ( (temphe = hv_iternext_flags(hv, 0)) ) {
+            IV i;
+            IV parno = 0;
+            SV* sv_dat = HeVAL(temphe);
+            I32 *nums = (I32*)SvPVX(sv_dat);
+            for ( i = 0; i < SvIVX(sv_dat); i++ ) {
+                if ((I32)(RXp_LASTPAREN(rx)) >= nums[i] &&
+                    RXp_OFFS_VALID(rx,nums[i]))
+                {
+                    parno = nums[i];
+                    break;
+                }
+            }
+            if (parno || flags & RXapif_ALL) {
+                av_push_simple(av, newSVhek(HeKEY_hek(temphe)));
+            }
+        }
+    }
+
+    return newRV_noinc(MUTABLE_SV(av));
+}
+
+void
+Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const re, const I32 paren,
+                             SV * const sv)
+{
+    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH;
+    Perl_reg_numbered_buff_fetch_flags(aTHX_ re, paren, sv, 0);
+}
+
+#ifndef PERL_IN_XSUB_RE
+
+void
+Perl_reg_numbered_buff_fetch_flags(pTHX_ REGEXP * const re, const I32 paren,
+                                   SV * const sv, U32 flags)
+{
+    struct regexp *const rx = ReANY(re);
+    char *s = NULL;
+    SSize_t i,t = 0;
+    SSize_t s1, t1;
+    I32 n = paren;
+    I32 logical_nparens = rx->logical_nparens ? rx->logical_nparens : rx->nparens;
+
+    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH_FLAGS;
+
+    if (      n == RX_BUFF_IDX_CARET_PREMATCH
+           || n == RX_BUFF_IDX_CARET_FULLMATCH
+           || n == RX_BUFF_IDX_CARET_POSTMATCH
+       )
+    {
+        bool keepcopy = cBOOL(rx->extflags & RXf_PMf_KEEPCOPY);
+        if (!keepcopy) {
+            /* on something like
+             *    $r = qr/.../;
+             *    /$qr/p;
+             * the KEEPCOPY is set on the PMOP rather than the regex */
+            if (PL_curpm && re == PM_GETRE(PL_curpm))
+                 keepcopy = cBOOL(PL_curpm->op_pmflags & PMf_KEEPCOPY);
+        }
+        if (!keepcopy)
+            goto ret_undef;
+    }
+
+    if (!RXp_SUBBEG(rx))
+        goto ret_undef;
+
+    if (n == RX_BUFF_IDX_CARET_FULLMATCH)
+        /* no need to distinguish between them any more */
+        n = RX_BUFF_IDX_FULLMATCH;
+
+    if ((n == RX_BUFF_IDX_PREMATCH || n == RX_BUFF_IDX_CARET_PREMATCH)
+        && (i = RXp_OFFS_START(rx,0)) != -1)
+    {
+        /* $`, ${^PREMATCH} */
+        s = RXp_SUBBEG(rx);
+    }
+    else
+    if ((n == RX_BUFF_IDX_POSTMATCH || n == RX_BUFF_IDX_CARET_POSTMATCH)
+        && (t = RXp_OFFS_END(rx,0)) != -1)
+    {
+        /* $', ${^POSTMATCH} */
+        s = RXp_SUBBEG(rx) - RXp_SUBOFFSET(rx) + t;
+        i = RXp_SUBLEN(rx) + RXp_SUBOFFSET(rx) - t;
+    }
+    else /* when flags is true we do an absolute lookup, and compare against rx->nparens */
+    if (inRANGE(n, 0, flags ? (I32)rx->nparens : logical_nparens)) {
+        I32 *map = (!flags && n) ? rx->logical_to_parno : NULL;
+        I32 true_parno = map ? map[n] : n;
+        do {
+            if (((s1 = RXp_OFFS_START(rx,true_parno)) != -1)  &&
+                ((t1 = RXp_OFFS_END(rx,true_parno)) != -1))
+            {
+                /* $&, ${^MATCH}, $1 ... */
+                i = t1 - s1;
+                s = RXp_SUBBEG(rx) + s1 - RXp_SUBOFFSET(rx);
+                goto found_it;
+            }
+            else if (map) {
+                true_parno = rx->parno_to_logical_next[true_parno];
+            }
+            else {
+                break;
+            }
+        } while (true_parno);
+        goto ret_undef;
+    } else {
+        goto ret_undef;
+    }
+
+  found_it:
+    assert(s >= RXp_SUBBEG(rx));
+    assert((STRLEN)RXp_SUBLEN(rx) >= (STRLEN)((s - RXp_SUBBEG(rx)) + i) );
+    if (i >= 0) {
+#ifdef NO_TAINT_SUPPORT
+        sv_setpvn(sv, s, i);
+#else
+        const int oldtainted = TAINT_get;
+        TAINT_NOT;
+        sv_setpvn(sv, s, i);
+        TAINT_set(oldtainted);
+#endif
+        if (RXp_MATCH_UTF8(rx))
+            SvUTF8_on(sv);
+        else
+            SvUTF8_off(sv);
+        if (TAINTING_get) {
+            if (RXp_MATCH_TAINTED(rx)) {
+                if (SvTYPE(sv) >= SVt_PVMG) {
+                    MAGIC* const mg = SvMAGIC(sv);
+                    MAGIC* mgt;
+                    TAINT;
+                    SvMAGIC_set(sv, mg->mg_moremagic);
+                    SvTAINT(sv);
+                    if ((mgt = SvMAGIC(sv))) {
+                        mg->mg_moremagic = mgt;
+                        SvMAGIC_set(sv, mg);
+                    }
+                } else {
+                    TAINT;
+                    SvTAINT(sv);
+                }
+            } else
+                SvTAINTED_off(sv);
+        }
+    } else {
+      ret_undef:
+        sv_set_undef(sv);
+        return;
+    }
+}
+
+#endif
+
+void
+Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren,
+                                                         SV const * const value)
+{
+    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE;
+
+    PERL_UNUSED_ARG(rx);
+    PERL_UNUSED_ARG(paren);
+    PERL_UNUSED_ARG(value);
+
+    if (!PL_localizing)
+        Perl_croak_no_modify();
+}
+
+I32
+Perl_reg_numbered_buff_length(pTHX_ REGEXP * const r, const SV * const sv,
+                              const I32 paren)
+{
+    struct regexp *const rx = ReANY(r);
+    I32 i,j;
+    I32 s1, t1;
+    I32 logical_nparens = rx->logical_nparens ? rx->logical_nparens : rx->nparens;
+
+    PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH;
+
+    if (   paren == RX_BUFF_IDX_CARET_PREMATCH
+        || paren == RX_BUFF_IDX_CARET_FULLMATCH
+        || paren == RX_BUFF_IDX_CARET_POSTMATCH
+    )
+    {
+        bool keepcopy = cBOOL(rx->extflags & RXf_PMf_KEEPCOPY);
+        if (!keepcopy) {
+            /* on something like
+             *    $r = qr/.../;
+             *    /$qr/p;
+             * the KEEPCOPY is set on the PMOP rather than the regex */
+            if (PL_curpm && r == PM_GETRE(PL_curpm))
+                 keepcopy = cBOOL(PL_curpm->op_pmflags & PMf_KEEPCOPY);
+        }
+        if (!keepcopy)
+            goto warn_undef;
+    }
+
+    /* Some of this code was originally in C<Perl_magic_len> in F<mg.c> */
+    switch (paren) {
+      case RX_BUFF_IDX_CARET_PREMATCH: /* ${^PREMATCH} */
+      case RX_BUFF_IDX_PREMATCH:       /* $` */
+        if ( (i = RXp_OFFS_START(rx,0)) != -1) {
+            if (i > 0) {
+                s1 = 0;
+                t1 = i;
+                goto getlen;
+            }
+        }
+        return 0;
+
+      case RX_BUFF_IDX_CARET_POSTMATCH: /* ${^POSTMATCH} */
+      case RX_BUFF_IDX_POSTMATCH:       /* $' */
+        if ( (j = RXp_OFFS_END(rx,0)) != -1 ) {
+            i = RXp_SUBLEN(rx) - j;
+            if (i > 0) {
+                s1 = j;
+                t1 = RXp_SUBLEN(rx);
+                goto getlen;
+            }
+        }
+        return 0;
+
+      default: /* $& / ${^MATCH}, $1, $2, ... */
+        if (paren <= logical_nparens) {
+            I32 true_paren = rx->logical_to_parno
+                             ? rx->logical_to_parno[paren]
+                             : paren;
+            do {
+                if (((s1 = RXp_OFFS_START(rx,true_paren)) != -1) &&
+                    ((t1 = RXp_OFFS_END(rx,true_paren)) != -1))
+                {
+                    i = t1 - s1;
+                    goto getlen;
+                } else if (rx->parno_to_logical_next) {
+                    true_paren = rx->parno_to_logical_next[true_paren];
+                } else {
+                    break;
+                }
+            } while(true_paren);
+        }
+      warn_undef:
+        if (ckWARN(WARN_UNINITIALIZED))
+            report_uninit((const SV *)sv);
+        return 0;
+    }
+  getlen:
+    if (i > 0 && RXp_MATCH_UTF8(rx)) {
+        const char * const s = RXp_SUBBEG(rx) - RXp_SUBOFFSET(rx) + s1;
+        const U8 *ep;
+        STRLEN el;
+
+        i = t1 - s1;
+        if (is_utf8_string_loclen((U8*)s, i, &ep, &el))
+            i = el;
+    }
+    return i;
+}
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/regexp.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regexp.h,v
diff -u -p -a -u -p -r1.18 regexp.h
--- gnu/usr.bin/perl/regexp.h	15 Feb 2023 01:36:13 -0000	1.18
+++ gnu/usr.bin/perl/regexp.h	21 Feb 2024 15:47:03 -0000
@@ -22,10 +22,30 @@
 
 typedef SSize_t regnode_offset;
 
+struct regnode_meta {
+    U8 type;
+    U8 arg_len;
+    U8 arg_len_varies;
+    U8 off_by_arg;
+};
+
+/* this ensures that on alignment sensitive platforms
+ * this struct is aligned on 32 bit boundaries */
+union regnode_head {
+    struct {
+        union {
+            U8 flags;
+            U8 str_len_u8;
+            U8 first_byte;
+        } u_8;
+        U8  type;
+        U16 next_off;
+    } data;
+    U32 data_u32;
+};
+
 struct regnode {
-    U8	flags;
-    U8  type;
-    U16 next_off;
+    union regnode_head head;
 };
 
 typedef struct regnode regnode;
@@ -39,7 +59,7 @@ struct regexp;
 
 struct reg_substr_datum {
     SSize_t min_offset; /* min pos (in chars) that substr must appear */
-    SSize_t max_offset  /* max pos (in chars) that substr must appear */;
+    SSize_t max_offset; /* max pos (in chars) that substr must appear */
     SV *substr;		/* non-utf8 variant */
     SV *utf8_substr;	/* utf8 variant */
     SSize_t end_shift;  /* how many fixed chars must end the string */
@@ -55,11 +75,13 @@ struct reg_substr_data {
 #    define SV_SAVED_COPY
 #  endif
 
-/* offsets within a string of a particular /(.)/ capture */
-
+/* offsets within a string of a particular /(.)/ capture
+ * if you change this by adding new non-temporary fields
+ * then be sure to update Perl_rxres_save() in pp_ctl.c */
 typedef struct regexp_paren_pair {
     SSize_t start;
     SSize_t end;
+
     /* 'start_tmp' records a new opening position before the matching end
      * has been found, so that the old start and end values are still
      * valid, e.g.
@@ -69,7 +91,7 @@ typedef struct regexp_paren_pair {
     SSize_t start_tmp;
 } regexp_paren_pair;
 
-#  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+#  if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
 #    define _invlist_union(a, b, output) _invlist_union_maybe_complement_2nd(a, b, FALSE, output)
 #    define _invlist_intersection(a, b, output) _invlist_intersection_maybe_complement_2nd(a, b, FALSE, output)
 
@@ -118,13 +140,23 @@ typedef struct regexp {
      * Information about the match that the perl core uses to manage things
      */
 
+    /* see comment in regcomp_internal.h about branch reset to understand
+       the distinction between physical and logical capture buffers */
+    U32 nparens;                    /* physical number of capture buffers */
+    U32 logical_nparens;            /* logical_number of capture buffers */
+    I32 *logical_to_parno;          /* map logical parno to first physcial */
+    I32 *parno_to_logical;          /* map every physical parno to logical */
+    I32 *parno_to_logical_next;     /* map every physical parno to the next
+                                       physical with the same logical id */
+
     U32 extflags;      /* Flags used both externally and internally */
-    U32 nparens;       /* number of capture buffers */
+    SSize_t maxlen;    /* maximum possible number of chars in string to match */
     SSize_t minlen;    /* minimum possible number of chars in string to match */
-    SSize_t minlenret; /* mininum possible number of chars in $& */
+    SSize_t minlenret; /* minimum possible number of chars in $& */
     STRLEN gofs;       /* chars left of pos that we search from */
                        /* substring data about strings that must appear in
                         * the final match, used for optimisations */
+
     struct reg_substr_data *substrs;
 
     /* private engine specific data */
@@ -142,6 +174,7 @@ typedef struct regexp {
     char **recurse_locinput; /* used to detect infinite recursion, XXX: move to internal */
     U32 lastcloseparen;      /* last close paren matched ($^N) */
 
+
     /*---------------------------------------------------------------------- */
 
     /* offset from wrapped to the start of precomp */
@@ -158,7 +191,6 @@ typedef struct regexp {
     SSize_t sublen;     /* Length of string pointed by subbeg */
     SSize_t suboffset;  /* byte offset of subbeg from logical start of str */
     SSize_t subcoffset; /* suboffset equiv, but in chars (for @-/@+) */
-    SSize_t maxlen;  /* minimum possible number of chars in string to match */
 
     /*---------------------------------------------------------------------- */
 
@@ -167,7 +199,20 @@ typedef struct regexp {
 } regexp;
 
 
-#  define RXp_PAREN_NAMES(rx)	((rx)->paren_names)
+#define RXp_PAREN_NAMES(rx) ((rx)->paren_names)
+
+#define RXp_OFFS_START(rx,n) \
+     RXp_OFFSp(rx)[(n)].start 
+
+#define RXp_OFFS_END(rx,n) \
+     RXp_OFFSp(rx)[(n)].end 
+
+#define RXp_OFFS_VALID(rx,n) \
+     (RXp_OFFSp(rx)[(n)].end != -1 && RXp_OFFSp(rx)[(n)].start != -1 )
+
+#define RX_OFFS_START(rx_sv,n)  RXp_OFFS_START(ReANY(rx_sv),n)
+#define RX_OFFS_END(rx_sv,n)    RXp_OFFS_END(ReANY(rx_sv),n)
+#define RX_OFFS_VALID(rx_sv,n)  RXp_OFFS_VALID(ReANY(rx_sv),n)
 
 /* used for high speed searches */
 typedef struct re_scream_pos_data_s
@@ -526,30 +571,53 @@ and check for NULL.
 #  define RX_COMPFLAGS(rx_sv)             RXp_COMPFLAGS(ReANY(rx_sv))
 #  define RXp_ENGINE(prog)                ((prog)->engine)
 #  define RX_ENGINE(rx_sv)                (RXp_ENGINE(ReANY(rx_sv)))
-#  define RXp_SUBBEG(prog)                (prog->subbeg)
+#  define RXp_SUBBEG(prog)                ((prog)->subbeg)
 #  define RX_SUBBEG(rx_sv)                (RXp_SUBBEG(ReANY(rx_sv)))
-#  define RXp_SUBOFFSET(prog)             (prog->suboffset)
+#  define RXp_SUBOFFSET(prog)             ((prog)->suboffset)
 #  define RX_SUBOFFSET(rx_sv)             (RXp_SUBOFFSET(ReANY(rx_sv)))
-#  define RX_SUBCOFFSET(rx_sv)            (ReANY(rx_sv)->subcoffset)
-#  define RXp_OFFS(prog)                  (prog->offs)
-#  define RX_OFFS(rx_sv)                  (RXp_OFFS(ReANY(rx_sv)))
-#  define RXp_NPARENS(prog)               (prog->nparens)
+#  define RXp_SUBCOFFSET(prog)            ((prog)->subcoffset)
+#  define RX_SUBCOFFSET(rx_sv)            (RXp_SUBCOFFSET(ReANY(rx_sv)))
+#  define RXp_OFFSp(prog)                 ((prog)->offs)
+#  define RX_OFFSp(rx_sv)                 (RXp_OFFSp(ReANY(rx_sv)))
+#  define RXp_LOGICAL_NPARENS(prog)       ((prog)->logical_nparens)
+#  define RX_LOGICAL_NPARENS(rx_sv)       (RXp_LOGICAL_NPARENS(ReANY(rx_sv)))
+#  define RXp_LOGICAL_TO_PARNO(prog)      ((prog)->logical_to_parno)
+#  define RX_LOGICAL_TO_PARNO(rx_sv)      (RXp_LOGICAL_TO_PARNO(ReANY(rx_sv)))
+#  define RXp_PARNO_TO_LOGICAL(prog)      ((prog)->parno_to_logical)
+#  define RX_PARNO_TO_LOGICAL(rx_sv)      (RXp_PARNO_TO_LOGICAL(ReANY(rx_sv)))
+#  define RXp_PARNO_TO_LOGICAL_NEXT(prog) ((prog)->parno_to_logical_next)
+#  define RX_PARNO_TO_LOGICAL_NEXT(rx_sv) (RXp_PARNO_TO_LOGICAL_NEXT(ReANY(rx_sv)))
+#  define RXp_NPARENS(prog)               ((prog)->nparens)
 #  define RX_NPARENS(rx_sv)               (RXp_NPARENS(ReANY(rx_sv)))
-#  define RX_SUBLEN(rx_sv)                (ReANY(rx_sv)->sublen)
-#  define RXp_MINLEN(prog)                (prog->minlen)
+#  define RXp_SUBLEN(prog)                ((prog)->sublen)
+#  define RX_SUBLEN(rx_sv)                (RXp_SUBLEN(ReANY(rx_sv)))
+#  define RXp_MINLEN(prog)                ((prog)->minlen)
 #  define RX_MINLEN(rx_sv)                (RXp_MINLEN(ReANY(rx_sv)))
-#  define RXp_MINLENRET(prog)             (prog->minlenret)
+#  define RXp_MINLENRET(prog)             ((prog)->minlenret)
 #  define RX_MINLENRET(rx_sv)             (RXp_MINLENRET(ReANY(rx_sv)))
-#  define RXp_GOFS(prog)                  (prog->gofs)
+#  define RXp_GOFS(prog)                  ((prog)->gofs)
 #  define RX_GOFS(rx_sv)                  (RXp_GOFS(ReANY(rx_sv)))
-#  define RX_LASTPAREN(rx_sv)             (ReANY(rx_sv)->lastparen)
-#  define RX_LASTCLOSEPAREN(rx_sv)        (ReANY(rx_sv)->lastcloseparen)
-#  define RXp_SAVED_COPY(prog)            (prog->saved_copy)
+#  define RXp_LASTPAREN(prog)             ((prog)->lastparen)
+#  define RX_LASTPAREN(rx_sv)             (RXp_LASTPAREN(ReANY(rx_sv)))
+#  define RXp_LASTCLOSEPAREN(prog)        ((prog)->lastcloseparen)
+#  define RX_LASTCLOSEPAREN(rx_sv)        (RXp_LASTCLOSEPAREN(ReANY(rx_sv)))
+#  define RXp_SAVED_COPY(prog)            ((prog)->saved_copy)
 #  define RX_SAVED_COPY(rx_sv)            (RXp_SAVED_COPY(ReANY(rx_sv)))
+#  define RXp_SUBSTRS(prog)               ((prog)->substrs)
+#  define RX_SUBSTRS(rx_sv)               (RXp_SUBSTRS(ReANY(rx_sv)))
+#  define RXp_PPRIVATE(prog)              ((prog)->pprivate)
+#  define RX_PPRIVATE(rx_sv)              (RXp_PPRIVATE(ReANY(rx_sv)))
+#  define RXp_QR_ANONCV(prog)             ((prog)->qr_anoncv)
+#  define RX_QR_ANONCV(rx_sv)             (RXp_QR_ANONCV(ReANY(rx_sv)))
+#  define RXp_MOTHER_RE(prog)             ((prog)->mother_re)
+#  define RX_MOTHER_RE(rx_sv)             (RXp_MOTHER_RE(ReANY(rx_sv)))
+#  define RXp_PRE_PREFIX(prog)            ((prog)->pre_prefix)
+#  define RX_PRE_PREFIX(rx_sv)            (RXp_PRE_PREFIX(ReANY(rx_sv)))
+
 /* last match was zero-length */
 #  define RXp_ZERO_LEN(prog) \
-        (RXp_OFFS(prog)[0].start + (SSize_t)RXp_GOFS(prog) \
-          == RXp_OFFS(prog)[0].end)
+        (RXp_OFFS_START(prog,0) + (SSize_t)RXp_GOFS(prog) \
+          == RXp_OFFS_END(prog,0))
 #  define RX_ZERO_LEN(rx_sv)              (RXp_ZERO_LEN(ReANY(rx_sv)))
 
 #endif /* PLUGGABLE_RE_EXTENSION */
@@ -557,20 +625,24 @@ and check for NULL.
 /* Stuff that needs to be included in the pluggable extension goes below here */
 
 #ifdef PERL_ANY_COW
-#  define RXp_MATCH_COPY_FREE(prog) \
-        STMT_START {if (RXp_SAVED_COPY(prog)) { \
-            SV_CHECK_THINKFIRST_COW_DROP(RXp_SAVED_COPY(prog)); \
-        } \
-        if (RXp_MATCH_COPIED(prog)) { \
-            Safefree(RXp_SUBBEG(prog)); \
-            RXp_MATCH_COPIED_off(prog); \
-        }} STMT_END
+#  define RXp_MATCH_COPY_FREE(prog)                                 \
+    STMT_START {                                                    \
+        if (RXp_SAVED_COPY(prog)) {                                 \
+            SV_CHECK_THINKFIRST_COW_DROP(RXp_SAVED_COPY(prog));     \
+        }                                                           \
+        if (RXp_MATCH_COPIED(prog)) {                               \
+            Safefree(RXp_SUBBEG(prog));                             \
+            RXp_MATCH_COPIED_off(prog);                             \
+        }                                                           \
+    } STMT_END
 #else
-#  define RXp_MATCH_COPY_FREE(prog) \
-        STMT_START {if (RXp_MATCH_COPIED(prog)) { \
-            Safefree(RXp_SUBBEG(prog)); \
-            RXp_MATCH_COPIED_off(prog); \
-        }} STMT_END
+#  define RXp_MATCH_COPY_FREE(prog)                     \
+    STMT_START {                                        \
+        if (RXp_MATCH_COPIED(prog)) {                   \
+            Safefree(RXp_SUBBEG(prog));                 \
+            RXp_MATCH_COPIED_off(prog);                 \
+        }                                               \
+    } STMT_END
 #endif
 #define RX_MATCH_COPY_FREE(rx_sv)       RXp_MATCH_COPY_FREE(ReANY(rx_sv))
 
@@ -779,43 +851,71 @@ typedef struct regmatch_state {
             struct regmatch_state *prev_yes_state;
         } yes;
 
+
+        /* NOTE: Regarding 'cp' and 'lastcp' in the following structs...
+         *
+         * In the majority of cases we use 'cp' for the "normal"
+         * checkpoint for paren saves, and 'lastcp' for the addtional
+         * paren saves that are done only under RE_PESSIMISTIC_PARENS.
+         *
+         * There may be a few cases where both are used always.
+         * Regardless they tend be used something like this:
+         *
+         *   ST.cp = regcppush(rex, 0, maxopenparen);
+         *   REGCP_SET(ST.lastcp);
+         *
+         * thus ST.cp holds the checkpoint from before we push parens,
+         * and ST.lastcp holds the checkpoint from afterwards.
+         */
+
         /* branchlike members */
         /* this is a fake union member that matches the first elements
          * of each member that needs to behave like a branch */
         struct {
             /* this first element must match u.yes */
             struct regmatch_state *prev_yes_state;
-            U32 lastparen;
-            U32 lastcloseparen;
-            CHECKPOINT cp;
+            U32         lastparen;
+            U32         lastcloseparen;
+            CHECKPOINT  cp;         /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;     /* see note above "struct branchlike" */
+            U16         before_paren;
+            U16         after_paren;
 
         } branchlike;
 
         struct {
             /* the first elements must match u.branchlike */
             struct regmatch_state *prev_yes_state;
-            U32 lastparen;
-            U32 lastcloseparen;
-            CHECKPOINT cp;
+            U32         lastparen;
+            U32         lastcloseparen;
+            CHECKPOINT  cp;         /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;     /* see note above "struct branchlike" */
+            U16         before_paren;
+            U16         after_paren;
 
-            regnode *next_branch; /* next branch node */
+            regnode *next_branch;   /* next branch node */
         } branch;
 
         struct {
             /* the first elements must match u.branchlike */
             struct regmatch_state *prev_yes_state;
-            U32 lastparen;
-            U32 lastcloseparen;
-            CHECKPOINT cp;
-
-            U32		accepted; /* how many accepting states left */
-            bool	longfold;/* saw a fold with a 1->n char mapping */
-            U16         *jump;  /* positive offsets from me */
-            regnode	*me;	/* Which node am I - needed for jump tries*/
-            U8		*firstpos;/* pos in string of first trie match */
-            U32		firstchars;/* len in chars of firstpos from start */
-            U16		nextword;/* next word to try */
-            U16		topword; /* longest accepted word */
+            U32         lastparen;
+            U32         lastcloseparen;
+            CHECKPOINT  cp;         /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;     /* see note above "struct branchlike" */
+            U16         before_paren;
+            U16         after_paren;
+
+            U32         accepted;   /* how many accepting states left */
+            bool        longfold;   /* saw a fold with a 1->n char mapping */
+            U16         *jump;      /* positive offsets from me */
+            U16         *j_before_paren;
+            U16         *j_after_paren;
+            regnode     *me;        /* Which node am I - needed for jump tries*/
+            U8          *firstpos;  /* pos in string of first trie match */
+            U32         firstchars; /* len in chars of firstpos from start */
+            U16         nextword;   /* next word to try */
+            U16         topword;    /* longest accepted word */
         } trie;
 
         /* special types - these members are used to store state for special
@@ -826,31 +926,31 @@ typedef struct regmatch_state {
             struct regmatch_state *prev_curlyx;
             struct regmatch_state *prev_eval;
             REGEXP	*prev_rex;
-            CHECKPOINT	cp;	/* remember current savestack indexes */
-            CHECKPOINT	lastcp;
-            U32         close_paren; /* which close bracket is our end (+1) */
-            regnode	*B;	/* the node following us  */
+            CHECKPOINT  cp;             /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;         /* see note above "struct branchlike" */
+            U32         close_paren;    /* which close bracket is our end (+1) */
+            regnode     *B;             /* the node following us  */
             char        *prev_recurse_locinput;
         } eval;
 
         struct {
             /* this first element must match u.yes */
             struct regmatch_state *prev_yes_state;
-            I32 wanted;
-            I32 logical;	/* saved copy of 'logical' var */
-            U8  count;          /* number of beginning positions */
-            char *start;
-            char *end;
-            regnode  *me; /* the IFMATCH/SUSPEND/UNLESSM node  */
-            char *prev_match_end;
-        } ifmatch; /* and SUSPEND/UNLESSM */
+            I32     wanted;
+            I32     logical;    /* saved copy of 'logical' var */
+            U8      count;      /* number of beginning positions */
+            char    *start;
+            char    *end;
+            regnode *me;        /* the IFMATCH/SUSPEND/UNLESSM node  */
+            char    *prev_match_end;
+        } ifmatch;              /* and SUSPEND/UNLESSM */
 
         struct {
             /* this first element must match u.yes */
             struct regmatch_state *prev_yes_state;
             struct regmatch_state *prev_mark;
-            SV* mark_name;
-            char *mark_loc;
+            SV      *mark_name;
+            char    *mark_loc;
         } mark;
 
         struct {
@@ -863,24 +963,25 @@ typedef struct regmatch_state {
             /* this first element must match u.yes */
             struct regmatch_state *prev_yes_state;
             struct regmatch_state *prev_curlyx; /* previous cur_curlyx */
-            regnode	*me;	/* the CURLYX node  */
-            regnode	*B;	/* the B node in /A*B/  */
-            CHECKPOINT	cp;	/* remember current savestack index */
+            regnode     *me;        /* the CURLYX node  */
+            regnode     *B;         /* the B node in /A*B/  */
+            CHECKPOINT  cp;         /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;     /* see note above "struct branchlike" */
             bool	minmod;
-            int		parenfloor;/* how far back to strip paren data */
+            int         parenfloor; /* how far back to strip paren data */
 
             /* these two are modified by WHILEM */
-            int		count;	/* how many instances of A we've matched */
-            char	*lastloc;/* where previous A matched (0-len detect) */
+            int         count;      /* how many instances of A we've matched */
+            char        *lastloc;   /* where previous A matched (0-len detect) */
         } curlyx;
 
         struct {
             /* this first element must match u.yes */
             struct regmatch_state *prev_yes_state;
             struct regmatch_state *save_curlyx;
-            CHECKPOINT	cp;	/* remember current savestack indexes */
-            CHECKPOINT	lastcp;
-            char	*save_lastloc;	/* previous curlyx.lastloc */
+            CHECKPOINT  cp;             /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;         /* see note above "struct branchlike" */
+            char        *save_lastloc;  /* previous curlyx.lastloc */
             I32		cache_offset;
             I32		cache_mask;
         } whilem;
@@ -888,30 +989,36 @@ typedef struct regmatch_state {
         struct {
             /* this first element must match u.yes */
             struct regmatch_state *prev_yes_state;
-            CHECKPOINT cp;
-            U32 lastparen;
-            U32 lastcloseparen;
-            I32 alen;		/* length of first-matched A string */
-            I32 count;
-            bool minmod;
-            regnode *A, *B;	/* the nodes corresponding to /A*B/  */
-            regnode *me;	/* the curlym node */
+            U32         lastparen;
+            U32         lastcloseparen;
+            CHECKPOINT  cp;         /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;     /* see note above "struct branchlike" */
+            I32         alen;       /* length of first-matched A string */
+            I32         count;
+            bool        minmod;
+            regnode     *A, *B;     /* the nodes corresponding to /A*B/  */
+            regnode     *me;        /* the curlym node */
             struct next_matchable_info Binfo;
         } curlym;
 
         struct {
-            U32 paren;
-            CHECKPOINT cp;
-            U32 lastparen;
-            U32 lastcloseparen;
-            char *maxpos;	/* highest possible point in string to match */
-            char *oldloc;	/* the previous locinput */
-            int count;
-            int min, max;	/* {m,n} */
-            regnode *A, *B;	/* the nodes corresponding to /A*B/  */
+            U32         paren;
+            U32         lastparen;
+            U32         lastcloseparen;
+            CHECKPOINT  cp;         /* see note above "struct branchlike" */
+            CHECKPOINT  lastcp;     /* see note above "struct branchlike" */
+            char        *maxpos;    /* highest possible point in string to match */
+            char        *oldloc;    /* the previous locinput */
+            int         count;
+            int         min, max;   /* {m,n} */
+            regnode     *A, *B;     /* the nodes corresponding to /A*B/  */
             struct next_matchable_info Binfo;
         } curly; /* and CURLYN/PLUS/STAR */
 
+        struct {
+            CHECKPOINT  cp;
+            CHECKPOINT  lastcp;
+        } backref; /* REF and friends */
     } u;
 } regmatch_state;
 
@@ -930,6 +1037,7 @@ typedef struct regmatch_slab {
 } regmatch_slab;
 
 
+#define REG_FETCH_ABSOLUTE 1
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/reginline.h
===================================================================
RCS file: gnu/usr.bin/perl/reginline.h
diff -N gnu/usr.bin/perl/reginline.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/reginline.h	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,64 @@
+
+#ifndef PERL_REGINLINE_H
+
+/*
+ - regnext - dig the "next" pointer out of a node
+ */
+PERL_STATIC_INLINE
+regnode *
+Perl_regnext(pTHX_ const regnode *p)
+{
+    I32 offset;
+
+    if (!p)
+        return(NULL);
+
+    if (OP(p) > REGNODE_MAX) {                /* regnode.type is unsigned */
+        Perl_croak(aTHX_ "Corrupted regexp opcode %d > %d",
+                                                (int)OP(p), (int)REGNODE_MAX);
+    }
+
+    offset = (REGNODE_OFF_BY_ARG(OP(p)) ? ARG1u(p) : NEXT_OFF(p));
+    if (offset == 0)
+        return(NULL);
+
+    return(regnode *)(p+offset);
+}
+
+/*
+ - regnode_after - find the node physically following p in memory,
+   taking into account the size of p as determined by OP(p), our
+   sizing data, and possibly the STR_SZ() macro.
+ */
+PERL_STATIC_INLINE
+regnode *
+Perl_regnode_after(pTHX_ const regnode *p, const bool varies)
+{
+    assert(p);
+    const U8 op = OP(p);
+    assert(op < REGNODE_MAX);
+    const regnode *ret = p + NODE_STEP_REGNODE + REGNODE_ARG_LEN(op);
+    if (varies || REGNODE_ARG_LEN_VARIES(op))
+        ret += STR_SZ(STR_LEN(p));
+    return (regnode *)ret;
+}
+
+/* validate that the passed in node and extra length would match that
+ * returned by regnode_after() */
+PERL_STATIC_INLINE
+bool
+Perl_check_regnode_after(pTHX_ const regnode *p, const STRLEN extra)
+{
+    const regnode *nextoper = regnode_after((regnode *)p,FALSE);
+    const regnode *other = REGNODE_AFTER_PLUS(p, extra);
+    if (nextoper != other) {
+        return FALSE;
+    }
+    return TRUE;
+}
+
+#define PERL_REGINLINE_H
+#endif
+/*
+ * ex: set ts=8 sts=4 sw=4 et:
+ */
Index: gnu/usr.bin/perl/regnodes.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regnodes.h,v
diff -u -p -a -u -p -r1.6 regnodes.h
--- gnu/usr.bin/perl/regnodes.h	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/regnodes.h	21 Feb 2024 15:47:03 -0000
@@ -1,15 +1,134 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
-   This file is built by regen/regcomp.pl from regcomp.sym.
+   This file is built by regen/regcomp.pl from regcomp.sym, op_reg_common.h
+   and regexp.h.
    Any changes made here will be lost!
  */
 
 #if defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD)
 
+
+/* typedefs for regex nodes - one typedef per node type */
+
+typedef struct regnode_2                         tregnode_ACCEPT;
+typedef struct regnode_1                         tregnode_AHOCORASICK;
+typedef struct regnode_charclass                 tregnode_AHOCORASICKC;
+typedef struct regnode_charclass                 tregnode_ANYOF;
+typedef struct regnode_charclass                 tregnode_ANYOFD;
+typedef struct regnode_1                         tregnode_ANYOFH;
+typedef struct regnode_1                         tregnode_ANYOFHb;
+typedef struct regnode_bbm                       tregnode_ANYOFHbbm;
+typedef struct regnode_1                         tregnode_ANYOFHr;
+typedef struct regnode_1                         tregnode_ANYOFHs;
+typedef struct regnode_charclass                 tregnode_ANYOFL;
+typedef struct regnode_1                         tregnode_ANYOFM;
+typedef struct regnode_charclass_posixl          tregnode_ANYOFPOSIXL;
+typedef struct regnode_1                         tregnode_ANYOFR;
+typedef struct regnode_1                         tregnode_ANYOFRb;
+typedef struct regnode                           tregnode_BOUND;
+typedef struct regnode                           tregnode_BOUNDA;
+typedef struct regnode                           tregnode_BOUNDL;
+typedef struct regnode                           tregnode_BOUNDU;
+typedef struct regnode_1                         tregnode_BRANCH;
+typedef struct regnode_2                         tregnode_BRANCHJ;
+typedef struct regnode_1                         tregnode_CLOSE;
+typedef struct regnode                           tregnode_CLUMP;
+typedef struct regnode_1                         tregnode_COMMIT;
+typedef struct regnode_3                         tregnode_CURLY;
+typedef struct regnode_3                         tregnode_CURLYM;
+typedef struct regnode_3                         tregnode_CURLYN;
+typedef struct regnode_3                         tregnode_CURLYX;
+typedef struct regnode_1                         tregnode_CUTGROUP;
+typedef struct regnode_1                         tregnode_DEFINEP;
+typedef struct regnode                           tregnode_END;
+typedef struct regnode                           tregnode_ENDLIKE;
+typedef struct regnode                           tregnode_EOS;
+typedef struct regnode_2                         tregnode_EVAL;
+typedef struct regnode                           tregnode_EXACT;
+typedef struct regnode                           tregnode_EXACTF;
+typedef struct regnode                           tregnode_EXACTFAA;
+typedef struct regnode                           tregnode_EXACTFAA_NO_TRIE;
+typedef struct regnode                           tregnode_EXACTFL;
+typedef struct regnode                           tregnode_EXACTFLU8;
+typedef struct regnode                           tregnode_EXACTFU;
+typedef struct regnode                           tregnode_EXACTFUP;
+typedef struct regnode                           tregnode_EXACTFU_REQ8;
+typedef struct regnode                           tregnode_EXACTFU_S_EDGE;
+typedef struct regnode                           tregnode_EXACTL;
+typedef struct regnode                           tregnode_EXACT_REQ8;
+typedef struct regnode_2                         tregnode_GOSUB;
+typedef struct regnode                           tregnode_GPOS;
+typedef struct regnode_1                         tregnode_GROUPP;
+typedef struct regnode_1                         tregnode_GROUPPN;
+typedef struct regnode_1                         tregnode_IFMATCH;
+typedef struct regnode_1                         tregnode_IFTHEN;
+typedef struct regnode_1                         tregnode_INSUBP;
+typedef struct regnode                           tregnode_KEEPS;
+typedef struct regnode_1                         tregnode_LEXACT;
+typedef struct regnode_1                         tregnode_LEXACT_REQ8;
+typedef struct regnode                           tregnode_LNBREAK;
+typedef struct regnode                           tregnode_LOGICAL;
+typedef struct regnode_1                         tregnode_LONGJMP;
+typedef struct regnode                           tregnode_LOOKBEHIND_END;
+typedef struct regnode_1                         tregnode_MARKPOINT;
+typedef struct regnode                           tregnode_MBOL;
+typedef struct regnode                           tregnode_MEOL;
+typedef struct regnode                           tregnode_MINMOD;
+typedef struct regnode_1                         tregnode_NANYOFM;
+typedef struct regnode                           tregnode_NBOUND;
+typedef struct regnode                           tregnode_NBOUNDA;
+typedef struct regnode                           tregnode_NBOUNDL;
+typedef struct regnode                           tregnode_NBOUNDU;
+typedef struct regnode                           tregnode_NOTHING;
+typedef struct regnode                           tregnode_NPOSIXA;
+typedef struct regnode                           tregnode_NPOSIXD;
+typedef struct regnode                           tregnode_NPOSIXL;
+typedef struct regnode                           tregnode_NPOSIXU;
+typedef struct regnode_1                         tregnode_OPEN;
+typedef struct regnode_1                         tregnode_OPFAIL;
+typedef struct regnode                           tregnode_OPTIMIZED;
+typedef struct regnode                           tregnode_PLUS;
+typedef struct regnode                           tregnode_POSIXA;
+typedef struct regnode                           tregnode_POSIXD;
+typedef struct regnode                           tregnode_POSIXL;
+typedef struct regnode                           tregnode_POSIXU;
+typedef struct regnode_1                         tregnode_PRUNE;
+typedef struct regnode                           tregnode_PSEUDO;
+typedef struct regnode_2                         tregnode_REF;
+typedef struct regnode_2                         tregnode_REFF;
+typedef struct regnode_2                         tregnode_REFFA;
+typedef struct regnode_2                         tregnode_REFFAN;
+typedef struct regnode_2                         tregnode_REFFL;
+typedef struct regnode_2                         tregnode_REFFLN;
+typedef struct regnode_2                         tregnode_REFFN;
+typedef struct regnode_2                         tregnode_REFFU;
+typedef struct regnode_2                         tregnode_REFFUN;
+typedef struct regnode_2                         tregnode_REFN;
+typedef struct regnode_p                         tregnode_REGEX_SET;
+typedef struct regnode                           tregnode_REG_ANY;
+typedef struct regnode_1                         tregnode_RENUM;
+typedef struct regnode                           tregnode_SANY;
+typedef struct regnode                           tregnode_SBOL;
+typedef struct regnode                           tregnode_SEOL;
+typedef struct regnode_1                         tregnode_SKIP;
+typedef struct regnode                           tregnode_SRCLOSE;
+typedef struct regnode                           tregnode_SROPEN;
+typedef struct regnode                           tregnode_STAR;
+typedef struct regnode                           tregnode_SUCCEED;
+typedef struct regnode_1                         tregnode_SUSPEND;
+typedef struct regnode                           tregnode_TAIL;
+typedef struct regnode_1                         tregnode_TRIE;
+typedef struct regnode_charclass                 tregnode_TRIEC;
+typedef struct regnode_1                         tregnode_UNLESSM;
+typedef struct regnode_1                         tregnode_VERB;
+typedef struct regnode                           tregnode_WHILEM;
+
+/* end typedefs */
+
 /* Regops and State definitions */
 
-#define REGNODE_MAX           	110
-#define REGMATCH_STATE_MAX    	150
+#define REGNODE_MAX           	111
+#define REGMATCH_STATE_MAX    	153
 
 /* -- For regexec.c to switch on target being utf8 (t8) or not (tb, b='byte'); */
 #define with_t_UTF8ness(op, t_utf8) (((op) << 1) + (cBOOL(t_utf8)))
@@ -317,1529 +436,1166 @@
 #define ANYOFRb_t8_pb                     110  /*      0x06e */
 #define ANYOFRb_t8_p8                     111  /*      0x06f */
 
-#define ANYOFM                       28        /* 0x1c Like ANYOF, but matches
+#define ANYOFHbbm                    28        /* 0x1c Like ANYOFHb, but only
+                                                  for 2-byte UTF-8 characters;
+                                                  uses a bitmap to match the
+                                                  continuation byte */
+#define ANYOFHbbm_tb                    56     /*      0x038 */
+#define ANYOFHbbm_t8                    57     /*      0x039 */
+#define ANYOFHbbm_tb_pb                   112  /*      0x070 */
+#define ANYOFHbbm_tb_p8                   113  /*      0x071 */
+#define ANYOFHbbm_t8_pb                   114  /*      0x072 */
+#define ANYOFHbbm_t8_p8                   115  /*      0x073 */
+
+#define ANYOFM                       29        /* 0x1d Like ANYOF, but matches
                                                   an invariant byte as
                                                   determined by the mask and
                                                   arg */
-#define ANYOFM_tb                       56     /*      0x038 */
-#define ANYOFM_t8                       57     /*      0x039 */
-#define ANYOFM_tb_pb                      112  /*      0x070 */
-#define ANYOFM_tb_p8                      113  /*      0x071 */
-#define ANYOFM_t8_pb                      114  /*      0x072 */
-#define ANYOFM_t8_p8                      115  /*      0x073 */
-
-#define NANYOFM                      29        /* 0x1d complement of ANYOFM */
-#define NANYOFM_tb                      58     /*      0x03a */
-#define NANYOFM_t8                      59     /*      0x03b */
-#define NANYOFM_tb_pb                     116  /*      0x074 */
-#define NANYOFM_tb_p8                     117  /*      0x075 */
-#define NANYOFM_t8_pb                     118  /*      0x076 */
-#define NANYOFM_t8_p8                     119  /*      0x077 */
+#define ANYOFM_tb                       58     /*      0x03a */
+#define ANYOFM_t8                       59     /*      0x03b */
+#define ANYOFM_tb_pb                      116  /*      0x074 */
+#define ANYOFM_tb_p8                      117  /*      0x075 */
+#define ANYOFM_t8_pb                      118  /*      0x076 */
+#define ANYOFM_t8_p8                      119  /*      0x077 */
+
+#define NANYOFM                      30        /* 0x1e complement of ANYOFM */
+#define NANYOFM_tb                      60     /*      0x03c */
+#define NANYOFM_t8                      61     /*      0x03d */
+#define NANYOFM_tb_pb                     120  /*      0x078 */
+#define NANYOFM_tb_p8                     121  /*      0x079 */
+#define NANYOFM_t8_pb                     122  /*      0x07a */
+#define NANYOFM_t8_p8                     123  /*      0x07b */
 
-#define POSIXD                       30        /* 0x1e Some [[:class:]] under
+#define POSIXD                       31        /* 0x1f Some [[:class:]] under
                                                   /d; the FLAGS field gives
                                                   which one */
-#define POSIXD_tb                       60     /*      0x03c */
-#define POSIXD_t8                       61     /*      0x03d */
-#define POSIXD_tb_pb                      120  /*      0x078 */
-#define POSIXD_tb_p8                      121  /*      0x079 */
-#define POSIXD_t8_pb                      122  /*      0x07a */
-#define POSIXD_t8_p8                      123  /*      0x07b */
+#define POSIXD_tb                       62     /*      0x03e */
+#define POSIXD_t8                       63     /*      0x03f */
+#define POSIXD_tb_pb                      124  /*      0x07c */
+#define POSIXD_tb_p8                      125  /*      0x07d */
+#define POSIXD_t8_pb                      126  /*      0x07e */
+#define POSIXD_t8_p8                      127  /*      0x07f */
 
-#define POSIXL                       31        /* 0x1f Some [[:class:]] under
+#define POSIXL                       32        /* 0x20 Some [[:class:]] under
                                                   /l; the FLAGS field gives
                                                   which one */
-#define POSIXL_tb                       62     /*      0x03e */
-#define POSIXL_t8                       63     /*      0x03f */
-#define POSIXL_tb_pb                      124  /*      0x07c */
-#define POSIXL_tb_p8                      125  /*      0x07d */
-#define POSIXL_t8_pb                      126  /*      0x07e */
-#define POSIXL_t8_p8                      127  /*      0x07f */
+#define POSIXL_tb                       64     /*      0x040 */
+#define POSIXL_t8                       65     /*      0x041 */
+#define POSIXL_tb_pb                      128  /*      0x080 */
+#define POSIXL_tb_p8                      129  /*      0x081 */
+#define POSIXL_t8_pb                      130  /*      0x082 */
+#define POSIXL_t8_p8                      131  /*      0x083 */
 
-#define POSIXU                       32        /* 0x20 Some [[:class:]] under
+#define POSIXU                       33        /* 0x21 Some [[:class:]] under
                                                   /u; the FLAGS field gives
                                                   which one */
-#define POSIXU_tb                       64     /*      0x040 */
-#define POSIXU_t8                       65     /*      0x041 */
-#define POSIXU_tb_pb                      128  /*      0x080 */
-#define POSIXU_tb_p8                      129  /*      0x081 */
-#define POSIXU_t8_pb                      130  /*      0x082 */
-#define POSIXU_t8_p8                      131  /*      0x083 */
+#define POSIXU_tb                       66     /*      0x042 */
+#define POSIXU_t8                       67     /*      0x043 */
+#define POSIXU_tb_pb                      132  /*      0x084 */
+#define POSIXU_tb_p8                      133  /*      0x085 */
+#define POSIXU_t8_pb                      134  /*      0x086 */
+#define POSIXU_t8_p8                      135  /*      0x087 */
 
-#define POSIXA                       33        /* 0x21 Some [[:class:]] under
+#define POSIXA                       34        /* 0x22 Some [[:class:]] under
                                                   /a; the FLAGS field gives
                                                   which one */
-#define POSIXA_tb                       66     /*      0x042 */
-#define POSIXA_t8                       67     /*      0x043 */
-#define POSIXA_tb_pb                      132  /*      0x084 */
-#define POSIXA_tb_p8                      133  /*      0x085 */
-#define POSIXA_t8_pb                      134  /*      0x086 */
-#define POSIXA_t8_p8                      135  /*      0x087 */
+#define POSIXA_tb                       68     /*      0x044 */
+#define POSIXA_t8                       69     /*      0x045 */
+#define POSIXA_tb_pb                      136  /*      0x088 */
+#define POSIXA_tb_p8                      137  /*      0x089 */
+#define POSIXA_t8_pb                      138  /*      0x08a */
+#define POSIXA_t8_p8                      139  /*      0x08b */
 
-#define NPOSIXD                      34        /* 0x22 complement of POSIXD,
+#define NPOSIXD                      35        /* 0x23 complement of POSIXD,
                                                   [[:^class:]] */
-#define NPOSIXD_tb                      68     /*      0x044 */
-#define NPOSIXD_t8                      69     /*      0x045 */
-#define NPOSIXD_tb_pb                     136  /*      0x088 */
-#define NPOSIXD_tb_p8                     137  /*      0x089 */
-#define NPOSIXD_t8_pb                     138  /*      0x08a */
-#define NPOSIXD_t8_p8                     139  /*      0x08b */
+#define NPOSIXD_tb                      70     /*      0x046 */
+#define NPOSIXD_t8                      71     /*      0x047 */
+#define NPOSIXD_tb_pb                     140  /*      0x08c */
+#define NPOSIXD_tb_p8                     141  /*      0x08d */
+#define NPOSIXD_t8_pb                     142  /*      0x08e */
+#define NPOSIXD_t8_p8                     143  /*      0x08f */
 
-#define NPOSIXL                      35        /* 0x23 complement of POSIXL,
+#define NPOSIXL                      36        /* 0x24 complement of POSIXL,
                                                   [[:^class:]] */
-#define NPOSIXL_tb                      70     /*      0x046 */
-#define NPOSIXL_t8                      71     /*      0x047 */
-#define NPOSIXL_tb_pb                     140  /*      0x08c */
-#define NPOSIXL_tb_p8                     141  /*      0x08d */
-#define NPOSIXL_t8_pb                     142  /*      0x08e */
-#define NPOSIXL_t8_p8                     143  /*      0x08f */
+#define NPOSIXL_tb                      72     /*      0x048 */
+#define NPOSIXL_t8                      73     /*      0x049 */
+#define NPOSIXL_tb_pb                     144  /*      0x090 */
+#define NPOSIXL_tb_p8                     145  /*      0x091 */
+#define NPOSIXL_t8_pb                     146  /*      0x092 */
+#define NPOSIXL_t8_p8                     147  /*      0x093 */
 
-#define NPOSIXU                      36        /* 0x24 complement of POSIXU,
+#define NPOSIXU                      37        /* 0x25 complement of POSIXU,
                                                   [[:^class:]] */
-#define NPOSIXU_tb                      72     /*      0x048 */
-#define NPOSIXU_t8                      73     /*      0x049 */
-#define NPOSIXU_tb_pb                     144  /*      0x090 */
-#define NPOSIXU_tb_p8                     145  /*      0x091 */
-#define NPOSIXU_t8_pb                     146  /*      0x092 */
-#define NPOSIXU_t8_p8                     147  /*      0x093 */
+#define NPOSIXU_tb                      74     /*      0x04a */
+#define NPOSIXU_t8                      75     /*      0x04b */
+#define NPOSIXU_tb_pb                     148  /*      0x094 */
+#define NPOSIXU_tb_p8                     149  /*      0x095 */
+#define NPOSIXU_t8_pb                     150  /*      0x096 */
+#define NPOSIXU_t8_p8                     151  /*      0x097 */
 
-#define NPOSIXA                      37        /* 0x25 complement of POSIXA,
+#define NPOSIXA                      38        /* 0x26 complement of POSIXA,
                                                   [[:^class:]] */
-#define NPOSIXA_tb                      74     /*      0x04a */
-#define NPOSIXA_t8                      75     /*      0x04b */
-#define NPOSIXA_tb_pb                     148  /*      0x094 */
-#define NPOSIXA_tb_p8                     149  /*      0x095 */
-#define NPOSIXA_t8_pb                     150  /*      0x096 */
-#define NPOSIXA_t8_p8                     151  /*      0x097 */
+#define NPOSIXA_tb                      76     /*      0x04c */
+#define NPOSIXA_t8                      77     /*      0x04d */
+#define NPOSIXA_tb_pb                     152  /*      0x098 */
+#define NPOSIXA_tb_p8                     153  /*      0x099 */
+#define NPOSIXA_t8_pb                     154  /*      0x09a */
+#define NPOSIXA_t8_p8                     155  /*      0x09b */
 
-#define CLUMP                        38        /* 0x26 Match any extended
+#define CLUMP                        39        /* 0x27 Match any extended
                                                   grapheme cluster sequence */
-#define CLUMP_tb                        76     /*      0x04c */
-#define CLUMP_t8                        77     /*      0x04d */
-#define CLUMP_tb_pb                       152  /*      0x098 */
-#define CLUMP_tb_p8                       153  /*      0x099 */
-#define CLUMP_t8_pb                       154  /*      0x09a */
-#define CLUMP_t8_p8                       155  /*      0x09b */
+#define CLUMP_tb                        78     /*      0x04e */
+#define CLUMP_t8                        79     /*      0x04f */
+#define CLUMP_tb_pb                       156  /*      0x09c */
+#define CLUMP_tb_p8                       157  /*      0x09d */
+#define CLUMP_t8_pb                       158  /*      0x09e */
+#define CLUMP_t8_p8                       159  /*      0x09f */
 
-#define BRANCH                       39        /* 0x27 Match this alternative,
+#define BRANCH                       40        /* 0x28 Match this alternative,
                                                   or the next... */
-#define BRANCH_tb                       78     /*      0x04e */
-#define BRANCH_t8                       79     /*      0x04f */
-#define BRANCH_tb_pb                      156  /*      0x09c */
-#define BRANCH_tb_p8                      157  /*      0x09d */
-#define BRANCH_t8_pb                      158  /*      0x09e */
-#define BRANCH_t8_p8                      159  /*      0x09f */
+#define BRANCH_tb                       80     /*      0x050 */
+#define BRANCH_t8                       81     /*      0x051 */
+#define BRANCH_tb_pb                      160  /*      0x0a0 */
+#define BRANCH_tb_p8                      161  /*      0x0a1 */
+#define BRANCH_t8_pb                      162  /*      0x0a2 */
+#define BRANCH_t8_p8                      163  /*      0x0a3 */
 
-#define EXACT                        40        /* 0x28 Match this string
+#define EXACT                        41        /* 0x29 Match this string
                                                   (flags field is the length).
                                                */
-#define EXACT_tb                        80     /*      0x050 */
-#define EXACT_t8                        81     /*      0x051 */
-#define EXACT_tb_pb                       160  /*      0x0a0 */
-#define EXACT_tb_p8                       161  /*      0x0a1 */
-#define EXACT_t8_pb                       162  /*      0x0a2 */
-#define EXACT_t8_p8                       163  /*      0x0a3 */
+#define EXACT_tb                        82     /*      0x052 */
+#define EXACT_t8                        83     /*      0x053 */
+#define EXACT_tb_pb                       164  /*      0x0a4 */
+#define EXACT_tb_p8                       165  /*      0x0a5 */
+#define EXACT_t8_pb                       166  /*      0x0a6 */
+#define EXACT_t8_p8                       167  /*      0x0a7 */
 
-#define LEXACT                       41        /* 0x29 Match this long string
+#define LEXACT                       42        /* 0x2a Match this long string
                                                   (preceded by length; flags
                                                   unused). */
-#define LEXACT_tb                       82     /*      0x052 */
-#define LEXACT_t8                       83     /*      0x053 */
-#define LEXACT_tb_pb                      164  /*      0x0a4 */
-#define LEXACT_tb_p8                      165  /*      0x0a5 */
-#define LEXACT_t8_pb                      166  /*      0x0a6 */
-#define LEXACT_t8_p8                      167  /*      0x0a7 */
+#define LEXACT_tb                       84     /*      0x054 */
+#define LEXACT_t8                       85     /*      0x055 */
+#define LEXACT_tb_pb                      168  /*      0x0a8 */
+#define LEXACT_tb_p8                      169  /*      0x0a9 */
+#define LEXACT_t8_pb                      170  /*      0x0aa */
+#define LEXACT_t8_p8                      171  /*      0x0ab */
 
-#define EXACTL                       42        /* 0x2a Like EXACT, but /l is
+#define EXACTL                       43        /* 0x2b Like EXACT, but /l is
                                                   in effect (used so
                                                   locale-related warnings can
                                                   be checked for) */
-#define EXACTL_tb                       84     /*      0x054 */
-#define EXACTL_t8                       85     /*      0x055 */
-#define EXACTL_tb_pb                      168  /*      0x0a8 */
-#define EXACTL_tb_p8                      169  /*      0x0a9 */
-#define EXACTL_t8_pb                      170  /*      0x0aa */
-#define EXACTL_t8_p8                      171  /*      0x0ab */
+#define EXACTL_tb                       86     /*      0x056 */
+#define EXACTL_t8                       87     /*      0x057 */
+#define EXACTL_tb_pb                      172  /*      0x0ac */
+#define EXACTL_tb_p8                      173  /*      0x0ad */
+#define EXACTL_t8_pb                      174  /*      0x0ae */
+#define EXACTL_t8_p8                      175  /*      0x0af */
 
-#define EXACTF                       43        /* 0x2b Like EXACT, but match
+#define EXACTF                       44        /* 0x2c Like EXACT, but match
                                                   using /id rules; (string not
                                                   UTF-8, ASCII folded;
                                                   non-ASCII not) */
-#define EXACTF_tb                       86     /*      0x056 */
-#define EXACTF_t8                       87     /*      0x057 */
-#define EXACTF_tb_pb                      172  /*      0x0ac */
-#define EXACTF_tb_p8                      173  /*      0x0ad */
-#define EXACTF_t8_pb                      174  /*      0x0ae */
-#define EXACTF_t8_p8                      175  /*      0x0af */
+#define EXACTF_tb                       88     /*      0x058 */
+#define EXACTF_t8                       89     /*      0x059 */
+#define EXACTF_tb_pb                      176  /*      0x0b0 */
+#define EXACTF_tb_p8                      177  /*      0x0b1 */
+#define EXACTF_t8_pb                      178  /*      0x0b2 */
+#define EXACTF_t8_p8                      179  /*      0x0b3 */
 
-#define EXACTFL                      44        /* 0x2c Like EXACT, but match
+#define EXACTFL                      45        /* 0x2d Like EXACT, but match
                                                   using /il rules; (string not
                                                   likely to be folded) */
-#define EXACTFL_tb                      88     /*      0x058 */
-#define EXACTFL_t8                      89     /*      0x059 */
-#define EXACTFL_tb_pb                     176  /*      0x0b0 */
-#define EXACTFL_tb_p8                     177  /*      0x0b1 */
-#define EXACTFL_t8_pb                     178  /*      0x0b2 */
-#define EXACTFL_t8_p8                     179  /*      0x0b3 */
+#define EXACTFL_tb                      90     /*      0x05a */
+#define EXACTFL_t8                      91     /*      0x05b */
+#define EXACTFL_tb_pb                     180  /*      0x0b4 */
+#define EXACTFL_tb_p8                     181  /*      0x0b5 */
+#define EXACTFL_t8_pb                     182  /*      0x0b6 */
+#define EXACTFL_t8_p8                     183  /*      0x0b7 */
 
-#define EXACTFU                      45        /* 0x2d Like EXACT, but match
+#define EXACTFU                      46        /* 0x2e Like EXACT, but match
                                                   using /iu rules; (string
                                                   folded) */
-#define EXACTFU_tb                      90     /*      0x05a */
-#define EXACTFU_t8                      91     /*      0x05b */
-#define EXACTFU_tb_pb                     180  /*      0x0b4 */
-#define EXACTFU_tb_p8                     181  /*      0x0b5 */
-#define EXACTFU_t8_pb                     182  /*      0x0b6 */
-#define EXACTFU_t8_p8                     183  /*      0x0b7 */
+#define EXACTFU_tb                      92     /*      0x05c */
+#define EXACTFU_t8                      93     /*      0x05d */
+#define EXACTFU_tb_pb                     184  /*      0x0b8 */
+#define EXACTFU_tb_p8                     185  /*      0x0b9 */
+#define EXACTFU_t8_pb                     186  /*      0x0ba */
+#define EXACTFU_t8_p8                     187  /*      0x0bb */
 
-#define EXACTFAA                     46        /* 0x2e Like EXACT, but match
+#define EXACTFAA                     47        /* 0x2f Like EXACT, but match
                                                   using /iaa rules; (string
                                                   folded except MICRO in
                                                   non-UTF8 patterns; doesn't
                                                   contain SHARP S unless
                                                   UTF-8; folded length <=
                                                   unfolded) */
-#define EXACTFAA_tb                     92     /*      0x05c */
-#define EXACTFAA_t8                     93     /*      0x05d */
-#define EXACTFAA_tb_pb                    184  /*      0x0b8 */
-#define EXACTFAA_tb_p8                    185  /*      0x0b9 */
-#define EXACTFAA_t8_pb                    186  /*      0x0ba */
-#define EXACTFAA_t8_p8                    187  /*      0x0bb */
+#define EXACTFAA_tb                     94     /*      0x05e */
+#define EXACTFAA_t8                     95     /*      0x05f */
+#define EXACTFAA_tb_pb                    188  /*      0x0bc */
+#define EXACTFAA_tb_p8                    189  /*      0x0bd */
+#define EXACTFAA_t8_pb                    190  /*      0x0be */
+#define EXACTFAA_t8_p8                    191  /*      0x0bf */
 
-#define EXACTFAA_NO_TRIE             47        /* 0x2f Like EXACTFAA, (string
+#define EXACTFAA_NO_TRIE             48        /* 0x30 Like EXACTFAA, (string
                                                   not UTF-8, folded except:
                                                   MICRO, SHARP S; folded
                                                   length <= unfolded, not
                                                   currently trie-able) */
-#define EXACTFAA_NO_TRIE_tb             94     /*      0x05e */
-#define EXACTFAA_NO_TRIE_t8             95     /*      0x05f */
-#define EXACTFAA_NO_TRIE_tb_pb            188  /*      0x0bc */
-#define EXACTFAA_NO_TRIE_tb_p8            189  /*      0x0bd */
-#define EXACTFAA_NO_TRIE_t8_pb            190  /*      0x0be */
-#define EXACTFAA_NO_TRIE_t8_p8            191  /*      0x0bf */
+#define EXACTFAA_NO_TRIE_tb             96     /*      0x060 */
+#define EXACTFAA_NO_TRIE_t8             97     /*      0x061 */
+#define EXACTFAA_NO_TRIE_tb_pb            192  /*      0x0c0 */
+#define EXACTFAA_NO_TRIE_tb_p8            193  /*      0x0c1 */
+#define EXACTFAA_NO_TRIE_t8_pb            194  /*      0x0c2 */
+#define EXACTFAA_NO_TRIE_t8_p8            195  /*      0x0c3 */
 
-#define EXACTFUP                     48        /* 0x30 Like EXACT, but match
+#define EXACTFUP                     49        /* 0x31 Like EXACT, but match
                                                   using /iu rules; (string not
                                                   UTF-8, folded except MICRO:
                                                   hence Problematic) */
-#define EXACTFUP_tb                     96     /*      0x060 */
-#define EXACTFUP_t8                     97     /*      0x061 */
-#define EXACTFUP_tb_pb                    192  /*      0x0c0 */
-#define EXACTFUP_tb_p8                    193  /*      0x0c1 */
-#define EXACTFUP_t8_pb                    194  /*      0x0c2 */
-#define EXACTFUP_t8_p8                    195  /*      0x0c3 */
+#define EXACTFUP_tb                     98     /*      0x062 */
+#define EXACTFUP_t8                     99     /*      0x063 */
+#define EXACTFUP_tb_pb                    196  /*      0x0c4 */
+#define EXACTFUP_tb_p8                    197  /*      0x0c5 */
+#define EXACTFUP_t8_pb                    198  /*      0x0c6 */
+#define EXACTFUP_t8_p8                    199  /*      0x0c7 */
 
-#define EXACTFLU8                    49        /* 0x31 Like EXACTFU, but use
+#define EXACTFLU8                    50        /* 0x32 Like EXACTFU, but use
                                                   /il, UTF-8, (string is
                                                   folded, and everything in it
                                                   is above 255 */
-#define EXACTFLU8_tb                    98     /*      0x062 */
-#define EXACTFLU8_t8                    99     /*      0x063 */
-#define EXACTFLU8_tb_pb                   196  /*      0x0c4 */
-#define EXACTFLU8_tb_p8                   197  /*      0x0c5 */
-#define EXACTFLU8_t8_pb                   198  /*      0x0c6 */
-#define EXACTFLU8_t8_p8                   199  /*      0x0c7 */
+#define EXACTFLU8_tb                   100     /*      0x064 */
+#define EXACTFLU8_t8                   101     /*      0x065 */
+#define EXACTFLU8_tb_pb                   200  /*      0x0c8 */
+#define EXACTFLU8_tb_p8                   201  /*      0x0c9 */
+#define EXACTFLU8_t8_pb                   202  /*      0x0ca */
+#define EXACTFLU8_t8_p8                   203  /*      0x0cb */
 
-#define EXACT_REQ8                   50        /* 0x32 Like EXACT, but only
+#define EXACT_REQ8                   51        /* 0x33 Like EXACT, but only
                                                   UTF-8 encoded targets can
                                                   match */
-#define EXACT_REQ8_tb                  100     /*      0x064 */
-#define EXACT_REQ8_t8                  101     /*      0x065 */
-#define EXACT_REQ8_tb_pb                  200  /*      0x0c8 */
-#define EXACT_REQ8_tb_p8                  201  /*      0x0c9 */
-#define EXACT_REQ8_t8_pb                  202  /*      0x0ca */
-#define EXACT_REQ8_t8_p8                  203  /*      0x0cb */
+#define EXACT_REQ8_tb                  102     /*      0x066 */
+#define EXACT_REQ8_t8                  103     /*      0x067 */
+#define EXACT_REQ8_tb_pb                  204  /*      0x0cc */
+#define EXACT_REQ8_tb_p8                  205  /*      0x0cd */
+#define EXACT_REQ8_t8_pb                  206  /*      0x0ce */
+#define EXACT_REQ8_t8_p8                  207  /*      0x0cf */
 
-#define LEXACT_REQ8                  51        /* 0x33 Like LEXACT, but only
+#define LEXACT_REQ8                  52        /* 0x34 Like LEXACT, but only
                                                   UTF-8 encoded targets can
                                                   match */
-#define LEXACT_REQ8_tb                 102     /*      0x066 */
-#define LEXACT_REQ8_t8                 103     /*      0x067 */
-#define LEXACT_REQ8_tb_pb                 204  /*      0x0cc */
-#define LEXACT_REQ8_tb_p8                 205  /*      0x0cd */
-#define LEXACT_REQ8_t8_pb                 206  /*      0x0ce */
-#define LEXACT_REQ8_t8_p8                 207  /*      0x0cf */
+#define LEXACT_REQ8_tb                 104     /*      0x068 */
+#define LEXACT_REQ8_t8                 105     /*      0x069 */
+#define LEXACT_REQ8_tb_pb                 208  /*      0x0d0 */
+#define LEXACT_REQ8_tb_p8                 209  /*      0x0d1 */
+#define LEXACT_REQ8_t8_pb                 210  /*      0x0d2 */
+#define LEXACT_REQ8_t8_p8                 211  /*      0x0d3 */
 
-#define EXACTFU_REQ8                 52        /* 0x34 Like EXACTFU, but only
+#define EXACTFU_REQ8                 53        /* 0x35 Like EXACTFU, but only
                                                   UTF-8 encoded targets can
                                                   match */
-#define EXACTFU_REQ8_tb                104     /*      0x068 */
-#define EXACTFU_REQ8_t8                105     /*      0x069 */
-#define EXACTFU_REQ8_tb_pb                208  /*      0x0d0 */
-#define EXACTFU_REQ8_tb_p8                209  /*      0x0d1 */
-#define EXACTFU_REQ8_t8_pb                210  /*      0x0d2 */
-#define EXACTFU_REQ8_t8_p8                211  /*      0x0d3 */
+#define EXACTFU_REQ8_tb                106     /*      0x06a */
+#define EXACTFU_REQ8_t8                107     /*      0x06b */
+#define EXACTFU_REQ8_tb_pb                212  /*      0x0d4 */
+#define EXACTFU_REQ8_tb_p8                213  /*      0x0d5 */
+#define EXACTFU_REQ8_t8_pb                214  /*      0x0d6 */
+#define EXACTFU_REQ8_t8_p8                215  /*      0x0d7 */
 
-#define EXACTFU_S_EDGE               53        /* 0x35 /di rules, but nothing
+#define EXACTFU_S_EDGE               54        /* 0x36 /di rules, but nothing
                                                   in it precludes /ui, except
                                                   begins and/or ends with
                                                   [Ss]; (string not UTF-8;
                                                   compile-time only) */
-#define EXACTFU_S_EDGE_tb              106     /*      0x06a */
-#define EXACTFU_S_EDGE_t8              107     /*      0x06b */
-#define EXACTFU_S_EDGE_tb_pb              212  /*      0x0d4 */
-#define EXACTFU_S_EDGE_tb_p8              213  /*      0x0d5 */
-#define EXACTFU_S_EDGE_t8_pb              214  /*      0x0d6 */
-#define EXACTFU_S_EDGE_t8_p8              215  /*      0x0d7 */
+#define EXACTFU_S_EDGE_tb              108     /*      0x06c */
+#define EXACTFU_S_EDGE_t8              109     /*      0x06d */
+#define EXACTFU_S_EDGE_tb_pb              216  /*      0x0d8 */
+#define EXACTFU_S_EDGE_tb_p8              217  /*      0x0d9 */
+#define EXACTFU_S_EDGE_t8_pb              218  /*      0x0da */
+#define EXACTFU_S_EDGE_t8_p8              219  /*      0x0db */
 
-#define LNBREAK                      54        /* 0x36 generic newline pattern
+#define LNBREAK                      55        /* 0x37 generic newline pattern
                                                */
-#define LNBREAK_tb                     108     /*      0x06c */
-#define LNBREAK_t8                     109     /*      0x06d */
-#define LNBREAK_tb_pb                     216  /*      0x0d8 */
-#define LNBREAK_tb_p8                     217  /*      0x0d9 */
-#define LNBREAK_t8_pb                     218  /*      0x0da */
-#define LNBREAK_t8_p8                     219  /*      0x0db */
+#define LNBREAK_tb                     110     /*      0x06e */
+#define LNBREAK_t8                     111     /*      0x06f */
+#define LNBREAK_tb_pb                     220  /*      0x0dc */
+#define LNBREAK_tb_p8                     221  /*      0x0dd */
+#define LNBREAK_t8_pb                     222  /*      0x0de */
+#define LNBREAK_t8_p8                     223  /*      0x0df */
 
-#define TRIE                         55        /* 0x37 Match many
+#define TRIE                         56        /* 0x38 Match many
                                                   EXACT(F[ALU]?)? at once.
                                                   flags==type */
-#define TRIE_tb                        110     /*      0x06e */
-#define TRIE_t8                        111     /*      0x06f */
-#define TRIE_tb_pb                        220  /*      0x0dc */
-#define TRIE_tb_p8                        221  /*      0x0dd */
-#define TRIE_t8_pb                        222  /*      0x0de */
-#define TRIE_t8_p8                        223  /*      0x0df */
+#define TRIE_tb                        112     /*      0x070 */
+#define TRIE_t8                        113     /*      0x071 */
+#define TRIE_tb_pb                        224  /*      0x0e0 */
+#define TRIE_tb_p8                        225  /*      0x0e1 */
+#define TRIE_t8_pb                        226  /*      0x0e2 */
+#define TRIE_t8_p8                        227  /*      0x0e3 */
 
-#define TRIEC                        56        /* 0x38 Same as TRIE, but with
+#define TRIEC                        57        /* 0x39 Same as TRIE, but with
                                                   embedded charclass data */
-#define TRIEC_tb                       112     /*      0x070 */
-#define TRIEC_t8                       113     /*      0x071 */
-#define TRIEC_tb_pb                       224  /*      0x0e0 */
-#define TRIEC_tb_p8                       225  /*      0x0e1 */
-#define TRIEC_t8_pb                       226  /*      0x0e2 */
-#define TRIEC_t8_p8                       227  /*      0x0e3 */
+#define TRIEC_tb                       114     /*      0x072 */
+#define TRIEC_t8                       115     /*      0x073 */
+#define TRIEC_tb_pb                       228  /*      0x0e4 */
+#define TRIEC_tb_p8                       229  /*      0x0e5 */
+#define TRIEC_t8_pb                       230  /*      0x0e6 */
+#define TRIEC_t8_p8                       231  /*      0x0e7 */
 
-#define AHOCORASICK                  57        /* 0x39 Aho Corasick stclass.
+#define AHOCORASICK                  58        /* 0x3a Aho Corasick stclass.
                                                   flags==type */
-#define AHOCORASICK_tb                 114     /*      0x072 */
-#define AHOCORASICK_t8                 115     /*      0x073 */
-#define AHOCORASICK_tb_pb                 228  /*      0x0e4 */
-#define AHOCORASICK_tb_p8                 229  /*      0x0e5 */
-#define AHOCORASICK_t8_pb                 230  /*      0x0e6 */
-#define AHOCORASICK_t8_p8                 231  /*      0x0e7 */
+#define AHOCORASICK_tb                 116     /*      0x074 */
+#define AHOCORASICK_t8                 117     /*      0x075 */
+#define AHOCORASICK_tb_pb                 232  /*      0x0e8 */
+#define AHOCORASICK_tb_p8                 233  /*      0x0e9 */
+#define AHOCORASICK_t8_pb                 234  /*      0x0ea */
+#define AHOCORASICK_t8_p8                 235  /*      0x0eb */
 
-#define AHOCORASICKC                 58        /* 0x3a Same as AHOCORASICK,
+#define AHOCORASICKC                 59        /* 0x3b Same as AHOCORASICK,
                                                   but with embedded charclass
                                                   data */
-#define AHOCORASICKC_tb                116     /*      0x074 */
-#define AHOCORASICKC_t8                117     /*      0x075 */
-#define AHOCORASICKC_tb_pb                232  /*      0x0e8 */
-#define AHOCORASICKC_tb_p8                233  /*      0x0e9 */
-#define AHOCORASICKC_t8_pb                234  /*      0x0ea */
-#define AHOCORASICKC_t8_p8                235  /*      0x0eb */
-
-#define NOTHING                      59        /* 0x3b Match empty string. */
-#define NOTHING_tb                     118     /*      0x076 */
-#define NOTHING_t8                     119     /*      0x077 */
-#define NOTHING_tb_pb                     236  /*      0x0ec */
-#define NOTHING_tb_p8                     237  /*      0x0ed */
-#define NOTHING_t8_pb                     238  /*      0x0ee */
-#define NOTHING_t8_p8                     239  /*      0x0ef */
+#define AHOCORASICKC_tb                118     /*      0x076 */
+#define AHOCORASICKC_t8                119     /*      0x077 */
+#define AHOCORASICKC_tb_pb                236  /*      0x0ec */
+#define AHOCORASICKC_tb_p8                237  /*      0x0ed */
+#define AHOCORASICKC_t8_pb                238  /*      0x0ee */
+#define AHOCORASICKC_t8_p8                239  /*      0x0ef */
+
+#define NOTHING                      60        /* 0x3c Match empty string. */
+#define NOTHING_tb                     120     /*      0x078 */
+#define NOTHING_t8                     121     /*      0x079 */
+#define NOTHING_tb_pb                     240  /*      0x0f0 */
+#define NOTHING_tb_p8                     241  /*      0x0f1 */
+#define NOTHING_t8_pb                     242  /*      0x0f2 */
+#define NOTHING_t8_p8                     243  /*      0x0f3 */
 
-#define TAIL                         60        /* 0x3c Match empty string. Can
+#define TAIL                         61        /* 0x3d Match empty string. Can
                                                   jump here from outside. */
-#define TAIL_tb                        120     /*      0x078 */
-#define TAIL_t8                        121     /*      0x079 */
-#define TAIL_tb_pb                        240  /*      0x0f0 */
-#define TAIL_tb_p8                        241  /*      0x0f1 */
-#define TAIL_t8_pb                        242  /*      0x0f2 */
-#define TAIL_t8_p8                        243  /*      0x0f3 */
-
-#define STAR                         61        /* 0x3d Match this (simple)
-                                                  thing 0 or more times. */
-#define STAR_tb                        122     /*      0x07a */
-#define STAR_t8                        123     /*      0x07b */
-#define STAR_tb_pb                        244  /*      0x0f4 */
-#define STAR_tb_p8                        245  /*      0x0f5 */
-#define STAR_t8_pb                        246  /*      0x0f6 */
-#define STAR_t8_p8                        247  /*      0x0f7 */
-
-#define PLUS                         62        /* 0x3e Match this (simple)
-                                                  thing 1 or more times. */
-#define PLUS_tb                        124     /*      0x07c */
-#define PLUS_t8                        125     /*      0x07d */
-#define PLUS_tb_pb                        248  /*      0x0f8 */
-#define PLUS_tb_p8                        249  /*      0x0f9 */
-#define PLUS_t8_pb                        250  /*      0x0fa */
-#define PLUS_t8_p8                        251  /*      0x0fb */
-
-#define CURLY                        63        /* 0x3f Match this simple thing
-                                                  {n,m} times. */
-#define CURLY_tb                       126     /*      0x07e */
-#define CURLY_t8                       127     /*      0x07f */
-#define CURLY_tb_pb                       252  /*      0x0fc */
-#define CURLY_tb_p8                       253  /*      0x0fd */
-#define CURLY_t8_pb                       254  /*      0x0fe */
-#define CURLY_t8_p8                       255  /*      0x0ff */
-
-#define CURLYN                       64        /* 0x40 Capture next-after-this
-                                                  simple thing */
-#define CURLYN_tb                      128     /*      0x080 */
-#define CURLYN_t8                      129     /*      0x081 */
-#define CURLYN_tb_pb                      256  /*      0x100 */
-#define CURLYN_tb_p8                      257  /*      0x101 */
-#define CURLYN_t8_pb                      258  /*      0x102 */
-#define CURLYN_t8_p8                      259  /*      0x103 */
+#define TAIL_tb                        122     /*      0x07a */
+#define TAIL_t8                        123     /*      0x07b */
+#define TAIL_tb_pb                        244  /*      0x0f4 */
+#define TAIL_tb_p8                        245  /*      0x0f5 */
+#define TAIL_t8_pb                        246  /*      0x0f6 */
+#define TAIL_t8_p8                        247  /*      0x0f7 */
+
+#define STAR                         62        /* 0x3e Match this (simple)
+                                                  thing 0 or more times:
+                                                  /A{0,}B/ where A is width 1
+                                                  char */
+#define STAR_tb                        124     /*      0x07c */
+#define STAR_t8                        125     /*      0x07d */
+#define STAR_tb_pb                        248  /*      0x0f8 */
+#define STAR_tb_p8                        249  /*      0x0f9 */
+#define STAR_t8_pb                        250  /*      0x0fa */
+#define STAR_t8_p8                        251  /*      0x0fb */
+
+#define PLUS                         63        /* 0x3f Match this (simple)
+                                                  thing 1 or more times:
+                                                  /A{1,}B/ where A is width 1
+                                                  char */
+#define PLUS_tb                        126     /*      0x07e */
+#define PLUS_t8                        127     /*      0x07f */
+#define PLUS_tb_pb                        252  /*      0x0fc */
+#define PLUS_tb_p8                        253  /*      0x0fd */
+#define PLUS_t8_pb                        254  /*      0x0fe */
+#define PLUS_t8_p8                        255  /*      0x0ff */
+
+#define CURLY                        64        /* 0x40 Match this (simple)
+                                                  thing {n,m} times: /A{m,n}B/
+                                                  where A is width 1 char */
+#define CURLY_tb                       128     /*      0x080 */
+#define CURLY_t8                       129     /*      0x081 */
+#define CURLY_tb_pb                       256  /*      0x100 */
+#define CURLY_tb_p8                       257  /*      0x101 */
+#define CURLY_t8_pb                       258  /*      0x102 */
+#define CURLY_t8_p8                       259  /*      0x103 */
+
+#define CURLYN                       65        /* 0x41 Capture next-after-this
+                                                  simple thing: /(A){m,n}B/
+                                                  where A is width 1 char */
+#define CURLYN_tb                      130     /*      0x082 */
+#define CURLYN_t8                      131     /*      0x083 */
+#define CURLYN_tb_pb                      260  /*      0x104 */
+#define CURLYN_tb_p8                      261  /*      0x105 */
+#define CURLYN_t8_pb                      262  /*      0x106 */
+#define CURLYN_t8_p8                      263  /*      0x107 */
 
-#define CURLYM                       65        /* 0x41 Capture this
+#define CURLYM                       66        /* 0x42 Capture this
                                                   medium-complex thing {n,m}
-                                                  times. */
-#define CURLYM_tb                      130     /*      0x082 */
-#define CURLYM_t8                      131     /*      0x083 */
-#define CURLYM_tb_pb                      260  /*      0x104 */
-#define CURLYM_tb_p8                      261  /*      0x105 */
-#define CURLYM_t8_pb                      262  /*      0x106 */
-#define CURLYM_t8_p8                      263  /*      0x107 */
-
-#define CURLYX                       66        /* 0x42 Match this complex
-                                                  thing {n,m} times. */
-#define CURLYX_tb                      132     /*      0x084 */
-#define CURLYX_t8                      133     /*      0x085 */
-#define CURLYX_tb_pb                      264  /*      0x108 */
-#define CURLYX_tb_p8                      265  /*      0x109 */
-#define CURLYX_t8_pb                      266  /*      0x10a */
-#define CURLYX_t8_p8                      267  /*      0x10b */
+                                                  times: /(A){m,n}B/ where A
+                                                  is fixed-length */
+#define CURLYM_tb                      132     /*      0x084 */
+#define CURLYM_t8                      133     /*      0x085 */
+#define CURLYM_tb_pb                      264  /*      0x108 */
+#define CURLYM_tb_p8                      265  /*      0x109 */
+#define CURLYM_t8_pb                      266  /*      0x10a */
+#define CURLYM_t8_p8                      267  /*      0x10b */
+
+#define CURLYX                       67        /* 0x43 Match/Capture this
+                                                  complex thing {n,m} times.
+                                               */
+#define CURLYX_tb                      134     /*      0x086 */
+#define CURLYX_t8                      135     /*      0x087 */
+#define CURLYX_tb_pb                      268  /*      0x10c */
+#define CURLYX_tb_p8                      269  /*      0x10d */
+#define CURLYX_t8_pb                      270  /*      0x10e */
+#define CURLYX_t8_p8                      271  /*      0x10f */
 
-#define WHILEM                       67        /* 0x43 Do curly processing and
+#define WHILEM                       68        /* 0x44 Do curly processing and
                                                   see if rest matches. */
-#define WHILEM_tb                      134     /*      0x086 */
-#define WHILEM_t8                      135     /*      0x087 */
-#define WHILEM_tb_pb                      268  /*      0x10c */
-#define WHILEM_tb_p8                      269  /*      0x10d */
-#define WHILEM_t8_pb                      270  /*      0x10e */
-#define WHILEM_t8_p8                      271  /*      0x10f */
+#define WHILEM_tb                      136     /*      0x088 */
+#define WHILEM_t8                      137     /*      0x089 */
+#define WHILEM_tb_pb                      272  /*      0x110 */
+#define WHILEM_tb_p8                      273  /*      0x111 */
+#define WHILEM_t8_pb                      274  /*      0x112 */
+#define WHILEM_t8_p8                      275  /*      0x113 */
 
-#define OPEN                         68        /* 0x44 Mark this point in
+#define OPEN                         69        /* 0x45 Mark this point in
                                                   input as start of #n. */
-#define OPEN_tb                        136     /*      0x088 */
-#define OPEN_t8                        137     /*      0x089 */
-#define OPEN_tb_pb                        272  /*      0x110 */
-#define OPEN_tb_p8                        273  /*      0x111 */
-#define OPEN_t8_pb                        274  /*      0x112 */
-#define OPEN_t8_p8                        275  /*      0x113 */
+#define OPEN_tb                        138     /*      0x08a */
+#define OPEN_t8                        139     /*      0x08b */
+#define OPEN_tb_pb                        276  /*      0x114 */
+#define OPEN_tb_p8                        277  /*      0x115 */
+#define OPEN_t8_pb                        278  /*      0x116 */
+#define OPEN_t8_p8                        279  /*      0x117 */
 
-#define CLOSE                        69        /* 0x45 Close corresponding
+#define CLOSE                        70        /* 0x46 Close corresponding
                                                   OPEN of #n. */
-#define CLOSE_tb                       138     /*      0x08a */
-#define CLOSE_t8                       139     /*      0x08b */
-#define CLOSE_tb_pb                       276  /*      0x114 */
-#define CLOSE_tb_p8                       277  /*      0x115 */
-#define CLOSE_t8_pb                       278  /*      0x116 */
-#define CLOSE_t8_p8                       279  /*      0x117 */
+#define CLOSE_tb                       140     /*      0x08c */
+#define CLOSE_t8                       141     /*      0x08d */
+#define CLOSE_tb_pb                       280  /*      0x118 */
+#define CLOSE_tb_p8                       281  /*      0x119 */
+#define CLOSE_t8_pb                       282  /*      0x11a */
+#define CLOSE_t8_p8                       283  /*      0x11b */
 
-#define SROPEN                       70        /* 0x46 Same as OPEN, but for
+#define SROPEN                       71        /* 0x47 Same as OPEN, but for
                                                   script run */
-#define SROPEN_tb                      140     /*      0x08c */
-#define SROPEN_t8                      141     /*      0x08d */
-#define SROPEN_tb_pb                      280  /*      0x118 */
-#define SROPEN_tb_p8                      281  /*      0x119 */
-#define SROPEN_t8_pb                      282  /*      0x11a */
-#define SROPEN_t8_p8                      283  /*      0x11b */
+#define SROPEN_tb                      142     /*      0x08e */
+#define SROPEN_t8                      143     /*      0x08f */
+#define SROPEN_tb_pb                      284  /*      0x11c */
+#define SROPEN_tb_p8                      285  /*      0x11d */
+#define SROPEN_t8_pb                      286  /*      0x11e */
+#define SROPEN_t8_p8                      287  /*      0x11f */
 
-#define SRCLOSE                      71        /* 0x47 Close preceding SROPEN
+#define SRCLOSE                      72        /* 0x48 Close preceding SROPEN
                                                */
-#define SRCLOSE_tb                     142     /*      0x08e */
-#define SRCLOSE_t8                     143     /*      0x08f */
-#define SRCLOSE_tb_pb                     284  /*      0x11c */
-#define SRCLOSE_tb_p8                     285  /*      0x11d */
-#define SRCLOSE_t8_pb                     286  /*      0x11e */
-#define SRCLOSE_t8_p8                     287  /*      0x11f */
+#define SRCLOSE_tb                     144     /*      0x090 */
+#define SRCLOSE_t8                     145     /*      0x091 */
+#define SRCLOSE_tb_pb                     288  /*      0x120 */
+#define SRCLOSE_tb_p8                     289  /*      0x121 */
+#define SRCLOSE_t8_pb                     290  /*      0x122 */
+#define SRCLOSE_t8_p8                     291  /*      0x123 */
 
-#define REF                          72        /* 0x48 Match some already
+#define REF                          73        /* 0x49 Match some already
                                                   matched string */
-#define REF_tb                         144     /*      0x090 */
-#define REF_t8                         145     /*      0x091 */
-#define REF_tb_pb                         288  /*      0x120 */
-#define REF_tb_p8                         289  /*      0x121 */
-#define REF_t8_pb                         290  /*      0x122 */
-#define REF_t8_p8                         291  /*      0x123 */
+#define REF_tb                         146     /*      0x092 */
+#define REF_t8                         147     /*      0x093 */
+#define REF_tb_pb                         292  /*      0x124 */
+#define REF_tb_p8                         293  /*      0x125 */
+#define REF_t8_pb                         294  /*      0x126 */
+#define REF_t8_p8                         295  /*      0x127 */
 
-#define REFF                         73        /* 0x49 Match already matched
+#define REFF                         74        /* 0x4a Match already matched
                                                   string, using /di rules. */
-#define REFF_tb                        146     /*      0x092 */
-#define REFF_t8                        147     /*      0x093 */
-#define REFF_tb_pb                        292  /*      0x124 */
-#define REFF_tb_p8                        293  /*      0x125 */
-#define REFF_t8_pb                        294  /*      0x126 */
-#define REFF_t8_p8                        295  /*      0x127 */
+#define REFF_tb                        148     /*      0x094 */
+#define REFF_t8                        149     /*      0x095 */
+#define REFF_tb_pb                        296  /*      0x128 */
+#define REFF_tb_p8                        297  /*      0x129 */
+#define REFF_t8_pb                        298  /*      0x12a */
+#define REFF_t8_p8                        299  /*      0x12b */
 
-#define REFFL                        74        /* 0x4a Match already matched
+#define REFFL                        75        /* 0x4b Match already matched
                                                   string, using /li rules. */
-#define REFFL_tb                       148     /*      0x094 */
-#define REFFL_t8                       149     /*      0x095 */
-#define REFFL_tb_pb                       296  /*      0x128 */
-#define REFFL_tb_p8                       297  /*      0x129 */
-#define REFFL_t8_pb                       298  /*      0x12a */
-#define REFFL_t8_p8                       299  /*      0x12b */
+#define REFFL_tb                       150     /*      0x096 */
+#define REFFL_t8                       151     /*      0x097 */
+#define REFFL_tb_pb                       300  /*      0x12c */
+#define REFFL_tb_p8                       301  /*      0x12d */
+#define REFFL_t8_pb                       302  /*      0x12e */
+#define REFFL_t8_p8                       303  /*      0x12f */
 
-#define REFFU                        75        /* 0x4b Match already matched
+#define REFFU                        76        /* 0x4c Match already matched
                                                   string, usng /ui. */
-#define REFFU_tb                       150     /*      0x096 */
-#define REFFU_t8                       151     /*      0x097 */
-#define REFFU_tb_pb                       300  /*      0x12c */
-#define REFFU_tb_p8                       301  /*      0x12d */
-#define REFFU_t8_pb                       302  /*      0x12e */
-#define REFFU_t8_p8                       303  /*      0x12f */
+#define REFFU_tb                       152     /*      0x098 */
+#define REFFU_t8                       153     /*      0x099 */
+#define REFFU_tb_pb                       304  /*      0x130 */
+#define REFFU_tb_p8                       305  /*      0x131 */
+#define REFFU_t8_pb                       306  /*      0x132 */
+#define REFFU_t8_p8                       307  /*      0x133 */
 
-#define REFFA                        76        /* 0x4c Match already matched
+#define REFFA                        77        /* 0x4d Match already matched
                                                   string, using /aai rules. */
-#define REFFA_tb                       152     /*      0x098 */
-#define REFFA_t8                       153     /*      0x099 */
-#define REFFA_tb_pb                       304  /*      0x130 */
-#define REFFA_tb_p8                       305  /*      0x131 */
-#define REFFA_t8_pb                       306  /*      0x132 */
-#define REFFA_t8_p8                       307  /*      0x133 */
+#define REFFA_tb                       154     /*      0x09a */
+#define REFFA_t8                       155     /*      0x09b */
+#define REFFA_tb_pb                       308  /*      0x134 */
+#define REFFA_tb_p8                       309  /*      0x135 */
+#define REFFA_t8_pb                       310  /*      0x136 */
+#define REFFA_t8_p8                       311  /*      0x137 */
 
-#define REFN                         77        /* 0x4d Match some already
+#define REFN                         78        /* 0x4e Match some already
                                                   matched string */
-#define REFN_tb                        154     /*      0x09a */
-#define REFN_t8                        155     /*      0x09b */
-#define REFN_tb_pb                        308  /*      0x134 */
-#define REFN_tb_p8                        309  /*      0x135 */
-#define REFN_t8_pb                        310  /*      0x136 */
-#define REFN_t8_p8                        311  /*      0x137 */
+#define REFN_tb                        156     /*      0x09c */
+#define REFN_t8                        157     /*      0x09d */
+#define REFN_tb_pb                        312  /*      0x138 */
+#define REFN_tb_p8                        313  /*      0x139 */
+#define REFN_t8_pb                        314  /*      0x13a */
+#define REFN_t8_p8                        315  /*      0x13b */
 
-#define REFFN                        78        /* 0x4e Match already matched
+#define REFFN                        79        /* 0x4f Match already matched
                                                   string, using /di rules. */
-#define REFFN_tb                       156     /*      0x09c */
-#define REFFN_t8                       157     /*      0x09d */
-#define REFFN_tb_pb                       312  /*      0x138 */
-#define REFFN_tb_p8                       313  /*      0x139 */
-#define REFFN_t8_pb                       314  /*      0x13a */
-#define REFFN_t8_p8                       315  /*      0x13b */
+#define REFFN_tb                       158     /*      0x09e */
+#define REFFN_t8                       159     /*      0x09f */
+#define REFFN_tb_pb                       316  /*      0x13c */
+#define REFFN_tb_p8                       317  /*      0x13d */
+#define REFFN_t8_pb                       318  /*      0x13e */
+#define REFFN_t8_p8                       319  /*      0x13f */
 
-#define REFFLN                       79        /* 0x4f Match already matched
+#define REFFLN                       80        /* 0x50 Match already matched
                                                   string, using /li rules. */
-#define REFFLN_tb                      158     /*      0x09e */
-#define REFFLN_t8                      159     /*      0x09f */
-#define REFFLN_tb_pb                      316  /*      0x13c */
-#define REFFLN_tb_p8                      317  /*      0x13d */
-#define REFFLN_t8_pb                      318  /*      0x13e */
-#define REFFLN_t8_p8                      319  /*      0x13f */
+#define REFFLN_tb                      160     /*      0x0a0 */
+#define REFFLN_t8                      161     /*      0x0a1 */
+#define REFFLN_tb_pb                      320  /*      0x140 */
+#define REFFLN_tb_p8                      321  /*      0x141 */
+#define REFFLN_t8_pb                      322  /*      0x142 */
+#define REFFLN_t8_p8                      323  /*      0x143 */
 
-#define REFFUN                       80        /* 0x50 Match already matched
+#define REFFUN                       81        /* 0x51 Match already matched
                                                   string, using /ui rules. */
-#define REFFUN_tb                      160     /*      0x0a0 */
-#define REFFUN_t8                      161     /*      0x0a1 */
-#define REFFUN_tb_pb                      320  /*      0x140 */
-#define REFFUN_tb_p8                      321  /*      0x141 */
-#define REFFUN_t8_pb                      322  /*      0x142 */
-#define REFFUN_t8_p8                      323  /*      0x143 */
+#define REFFUN_tb                      162     /*      0x0a2 */
+#define REFFUN_t8                      163     /*      0x0a3 */
+#define REFFUN_tb_pb                      324  /*      0x144 */
+#define REFFUN_tb_p8                      325  /*      0x145 */
+#define REFFUN_t8_pb                      326  /*      0x146 */
+#define REFFUN_t8_p8                      327  /*      0x147 */
 
-#define REFFAN                       81        /* 0x51 Match already matched
+#define REFFAN                       82        /* 0x52 Match already matched
                                                   string, using /aai rules. */
-#define REFFAN_tb                      162     /*      0x0a2 */
-#define REFFAN_t8                      163     /*      0x0a3 */
-#define REFFAN_tb_pb                      324  /*      0x144 */
-#define REFFAN_tb_p8                      325  /*      0x145 */
-#define REFFAN_t8_pb                      326  /*      0x146 */
-#define REFFAN_t8_p8                      327  /*      0x147 */
-
-#define LONGJMP                      82        /* 0x52 Jump far away. */
-#define LONGJMP_tb                     164     /*      0x0a4 */
-#define LONGJMP_t8                     165     /*      0x0a5 */
-#define LONGJMP_tb_pb                     328  /*      0x148 */
-#define LONGJMP_tb_p8                     329  /*      0x149 */
-#define LONGJMP_t8_pb                     330  /*      0x14a */
-#define LONGJMP_t8_p8                     331  /*      0x14b */
+#define REFFAN_tb                      164     /*      0x0a4 */
+#define REFFAN_t8                      165     /*      0x0a5 */
+#define REFFAN_tb_pb                      328  /*      0x148 */
+#define REFFAN_tb_p8                      329  /*      0x149 */
+#define REFFAN_t8_pb                      330  /*      0x14a */
+#define REFFAN_t8_p8                      331  /*      0x14b */
+
+#define LONGJMP                      83        /* 0x53 Jump far away. */
+#define LONGJMP_tb                     166     /*      0x0a6 */
+#define LONGJMP_t8                     167     /*      0x0a7 */
+#define LONGJMP_tb_pb                     332  /*      0x14c */
+#define LONGJMP_tb_p8                     333  /*      0x14d */
+#define LONGJMP_t8_pb                     334  /*      0x14e */
+#define LONGJMP_t8_p8                     335  /*      0x14f */
 
-#define BRANCHJ                      83        /* 0x53 BRANCH with long
+#define BRANCHJ                      84        /* 0x54 BRANCH with long
                                                   offset. */
-#define BRANCHJ_tb                     166     /*      0x0a6 */
-#define BRANCHJ_t8                     167     /*      0x0a7 */
-#define BRANCHJ_tb_pb                     332  /*      0x14c */
-#define BRANCHJ_tb_p8                     333  /*      0x14d */
-#define BRANCHJ_t8_pb                     334  /*      0x14e */
-#define BRANCHJ_t8_p8                     335  /*      0x14f */
+#define BRANCHJ_tb                     168     /*      0x0a8 */
+#define BRANCHJ_t8                     169     /*      0x0a9 */
+#define BRANCHJ_tb_pb                     336  /*      0x150 */
+#define BRANCHJ_tb_p8                     337  /*      0x151 */
+#define BRANCHJ_t8_pb                     338  /*      0x152 */
+#define BRANCHJ_t8_p8                     339  /*      0x153 */
 
-#define IFMATCH                      84        /* 0x54 Succeeds if the
+#define IFMATCH                      85        /* 0x55 Succeeds if the
                                                   following matches; non-zero
                                                   flags "f", next_off "o"
                                                   means lookbehind assertion
                                                   starting "f..(f-o)"
                                                   characters before current */
-#define IFMATCH_tb                     168     /*      0x0a8 */
-#define IFMATCH_t8                     169     /*      0x0a9 */
-#define IFMATCH_tb_pb                     336  /*      0x150 */
-#define IFMATCH_tb_p8                     337  /*      0x151 */
-#define IFMATCH_t8_pb                     338  /*      0x152 */
-#define IFMATCH_t8_p8                     339  /*      0x153 */
+#define IFMATCH_tb                     170     /*      0x0aa */
+#define IFMATCH_t8                     171     /*      0x0ab */
+#define IFMATCH_tb_pb                     340  /*      0x154 */
+#define IFMATCH_tb_p8                     341  /*      0x155 */
+#define IFMATCH_t8_pb                     342  /*      0x156 */
+#define IFMATCH_t8_p8                     343  /*      0x157 */
 
-#define UNLESSM                      85        /* 0x55 Fails if the following
+#define UNLESSM                      86        /* 0x56 Fails if the following
                                                   matches; non-zero flags "f",
                                                   next_off "o" means
                                                   lookbehind assertion
                                                   starting "f..(f-o)"
                                                   characters before current */
-#define UNLESSM_tb                     170     /*      0x0aa */
-#define UNLESSM_t8                     171     /*      0x0ab */
-#define UNLESSM_tb_pb                     340  /*      0x154 */
-#define UNLESSM_tb_p8                     341  /*      0x155 */
-#define UNLESSM_t8_pb                     342  /*      0x156 */
-#define UNLESSM_t8_p8                     343  /*      0x157 */
+#define UNLESSM_tb                     172     /*      0x0ac */
+#define UNLESSM_t8                     173     /*      0x0ad */
+#define UNLESSM_tb_pb                     344  /*      0x158 */
+#define UNLESSM_tb_p8                     345  /*      0x159 */
+#define UNLESSM_t8_pb                     346  /*      0x15a */
+#define UNLESSM_t8_p8                     347  /*      0x15b */
 
-#define SUSPEND                      86        /* 0x56 "Independent" sub-RE.
+#define SUSPEND                      87        /* 0x57 "Independent" sub-RE.
                                                */
-#define SUSPEND_tb                     172     /*      0x0ac */
-#define SUSPEND_t8                     173     /*      0x0ad */
-#define SUSPEND_tb_pb                     344  /*      0x158 */
-#define SUSPEND_tb_p8                     345  /*      0x159 */
-#define SUSPEND_t8_pb                     346  /*      0x15a */
-#define SUSPEND_t8_p8                     347  /*      0x15b */
+#define SUSPEND_tb                     174     /*      0x0ae */
+#define SUSPEND_t8                     175     /*      0x0af */
+#define SUSPEND_tb_pb                     348  /*      0x15c */
+#define SUSPEND_tb_p8                     349  /*      0x15d */
+#define SUSPEND_t8_pb                     350  /*      0x15e */
+#define SUSPEND_t8_p8                     351  /*      0x15f */
 
-#define IFTHEN                       87        /* 0x57 Switch, should be
+#define IFTHEN                       88        /* 0x58 Switch, should be
                                                   preceded by switcher. */
-#define IFTHEN_tb                      174     /*      0x0ae */
-#define IFTHEN_t8                      175     /*      0x0af */
-#define IFTHEN_tb_pb                      348  /*      0x15c */
-#define IFTHEN_tb_p8                      349  /*      0x15d */
-#define IFTHEN_t8_pb                      350  /*      0x15e */
-#define IFTHEN_t8_p8                      351  /*      0x15f */
+#define IFTHEN_tb                      176     /*      0x0b0 */
+#define IFTHEN_t8                      177     /*      0x0b1 */
+#define IFTHEN_tb_pb                      352  /*      0x160 */
+#define IFTHEN_tb_p8                      353  /*      0x161 */
+#define IFTHEN_t8_pb                      354  /*      0x162 */
+#define IFTHEN_t8_p8                      355  /*      0x163 */
 
-#define GROUPP                       88        /* 0x58 Whether the group
+#define GROUPP                       89        /* 0x59 Whether the group
                                                   matched. */
-#define GROUPP_tb                      176     /*      0x0b0 */
-#define GROUPP_t8                      177     /*      0x0b1 */
-#define GROUPP_tb_pb                      352  /*      0x160 */
-#define GROUPP_tb_p8                      353  /*      0x161 */
-#define GROUPP_t8_pb                      354  /*      0x162 */
-#define GROUPP_t8_p8                      355  /*      0x163 */
+#define GROUPP_tb                      178     /*      0x0b2 */
+#define GROUPP_t8                      179     /*      0x0b3 */
+#define GROUPP_tb_pb                      356  /*      0x164 */
+#define GROUPP_tb_p8                      357  /*      0x165 */
+#define GROUPP_t8_pb                      358  /*      0x166 */
+#define GROUPP_t8_p8                      359  /*      0x167 */
 
-#define EVAL                         89        /* 0x59 Execute some Perl code.
+#define EVAL                         90        /* 0x5a Execute some Perl code.
                                                */
-#define EVAL_tb                        178     /*      0x0b2 */
-#define EVAL_t8                        179     /*      0x0b3 */
-#define EVAL_tb_pb                        356  /*      0x164 */
-#define EVAL_tb_p8                        357  /*      0x165 */
-#define EVAL_t8_pb                        358  /*      0x166 */
-#define EVAL_t8_p8                        359  /*      0x167 */
+#define EVAL_tb                        180     /*      0x0b4 */
+#define EVAL_t8                        181     /*      0x0b5 */
+#define EVAL_tb_pb                        360  /*      0x168 */
+#define EVAL_tb_p8                        361  /*      0x169 */
+#define EVAL_t8_pb                        362  /*      0x16a */
+#define EVAL_t8_p8                        363  /*      0x16b */
 
-#define MINMOD                       90        /* 0x5a Next operator is not
+#define MINMOD                       91        /* 0x5b Next operator is not
                                                   greedy. */
-#define MINMOD_tb                      180     /*      0x0b4 */
-#define MINMOD_t8                      181     /*      0x0b5 */
-#define MINMOD_tb_pb                      360  /*      0x168 */
-#define MINMOD_tb_p8                      361  /*      0x169 */
-#define MINMOD_t8_pb                      362  /*      0x16a */
-#define MINMOD_t8_p8                      363  /*      0x16b */
+#define MINMOD_tb                      182     /*      0x0b6 */
+#define MINMOD_t8                      183     /*      0x0b7 */
+#define MINMOD_tb_pb                      364  /*      0x16c */
+#define MINMOD_tb_p8                      365  /*      0x16d */
+#define MINMOD_t8_pb                      366  /*      0x16e */
+#define MINMOD_t8_p8                      367  /*      0x16f */
 
-#define LOGICAL                      91        /* 0x5b Next opcode should set
+#define LOGICAL                      92        /* 0x5c Next opcode should set
                                                   the flag only. */
-#define LOGICAL_tb                     182     /*      0x0b6 */
-#define LOGICAL_t8                     183     /*      0x0b7 */
-#define LOGICAL_tb_pb                     364  /*      0x16c */
-#define LOGICAL_tb_p8                     365  /*      0x16d */
-#define LOGICAL_t8_pb                     366  /*      0x16e */
-#define LOGICAL_t8_p8                     367  /*      0x16f */
+#define LOGICAL_tb                     184     /*      0x0b8 */
+#define LOGICAL_t8                     185     /*      0x0b9 */
+#define LOGICAL_tb_pb                     368  /*      0x170 */
+#define LOGICAL_tb_p8                     369  /*      0x171 */
+#define LOGICAL_t8_pb                     370  /*      0x172 */
+#define LOGICAL_t8_p8                     371  /*      0x173 */
 
-#define RENUM                        92        /* 0x5c Group with
+#define RENUM                        93        /* 0x5d Group with
                                                   independently numbered
                                                   parens. */
-#define RENUM_tb                       184     /*      0x0b8 */
-#define RENUM_t8                       185     /*      0x0b9 */
-#define RENUM_tb_pb                       368  /*      0x170 */
-#define RENUM_tb_p8                       369  /*      0x171 */
-#define RENUM_t8_pb                       370  /*      0x172 */
-#define RENUM_t8_p8                       371  /*      0x173 */
+#define RENUM_tb                       186     /*      0x0ba */
+#define RENUM_t8                       187     /*      0x0bb */
+#define RENUM_tb_pb                       372  /*      0x174 */
+#define RENUM_tb_p8                       373  /*      0x175 */
+#define RENUM_t8_pb                       374  /*      0x176 */
+#define RENUM_t8_p8                       375  /*      0x177 */
 
-#define GOSUB                        93        /* 0x5d recurse to paren arg1
+#define GOSUB                        94        /* 0x5e recurse to paren arg1
                                                   at (signed) ofs arg2 */
-#define GOSUB_tb                       186     /*      0x0ba */
-#define GOSUB_t8                       187     /*      0x0bb */
-#define GOSUB_tb_pb                       372  /*      0x174 */
-#define GOSUB_tb_p8                       373  /*      0x175 */
-#define GOSUB_t8_pb                       374  /*      0x176 */
-#define GOSUB_t8_p8                       375  /*      0x177 */
+#define GOSUB_tb                       188     /*      0x0bc */
+#define GOSUB_t8                       189     /*      0x0bd */
+#define GOSUB_tb_pb                       376  /*      0x178 */
+#define GOSUB_tb_p8                       377  /*      0x179 */
+#define GOSUB_t8_pb                       378  /*      0x17a */
+#define GOSUB_t8_p8                       379  /*      0x17b */
 
-#define GROUPPN                      94        /* 0x5e Whether the group
+#define GROUPPN                      95        /* 0x5f Whether the group
                                                   matched. */
-#define GROUPPN_tb                     188     /*      0x0bc */
-#define GROUPPN_t8                     189     /*      0x0bd */
-#define GROUPPN_tb_pb                     376  /*      0x178 */
-#define GROUPPN_tb_p8                     377  /*      0x179 */
-#define GROUPPN_t8_pb                     378  /*      0x17a */
-#define GROUPPN_t8_p8                     379  /*      0x17b */
+#define GROUPPN_tb                     190     /*      0x0be */
+#define GROUPPN_t8                     191     /*      0x0bf */
+#define GROUPPN_tb_pb                     380  /*      0x17c */
+#define GROUPPN_tb_p8                     381  /*      0x17d */
+#define GROUPPN_t8_pb                     382  /*      0x17e */
+#define GROUPPN_t8_p8                     383  /*      0x17f */
 
-#define INSUBP                       95        /* 0x5f Whether we are in a
+#define INSUBP                       96        /* 0x60 Whether we are in a
                                                   specific recurse. */
-#define INSUBP_tb                      190     /*      0x0be */
-#define INSUBP_t8                      191     /*      0x0bf */
-#define INSUBP_tb_pb                      380  /*      0x17c */
-#define INSUBP_tb_p8                      381  /*      0x17d */
-#define INSUBP_t8_pb                      382  /*      0x17e */
-#define INSUBP_t8_p8                      383  /*      0x17f */
+#define INSUBP_tb                      192     /*      0x0c0 */
+#define INSUBP_t8                      193     /*      0x0c1 */
+#define INSUBP_tb_pb                      384  /*      0x180 */
+#define INSUBP_tb_p8                      385  /*      0x181 */
+#define INSUBP_t8_pb                      386  /*      0x182 */
+#define INSUBP_t8_p8                      387  /*      0x183 */
 
-#define DEFINEP                      96        /* 0x60 Never execute directly.
+#define DEFINEP                      97        /* 0x61 Never execute directly.
                                                */
-#define DEFINEP_tb                     192     /*      0x0c0 */
-#define DEFINEP_t8                     193     /*      0x0c1 */
-#define DEFINEP_tb_pb                     384  /*      0x180 */
-#define DEFINEP_tb_p8                     385  /*      0x181 */
-#define DEFINEP_t8_pb                     386  /*      0x182 */
-#define DEFINEP_t8_p8                     387  /*      0x183 */
+#define DEFINEP_tb                     194     /*      0x0c2 */
+#define DEFINEP_t8                     195     /*      0x0c3 */
+#define DEFINEP_tb_pb                     388  /*      0x184 */
+#define DEFINEP_tb_p8                     389  /*      0x185 */
+#define DEFINEP_t8_pb                     390  /*      0x186 */
+#define DEFINEP_t8_p8                     391  /*      0x187 */
 
-#define ENDLIKE                      97        /* 0x61 Used only for the type
+#define ENDLIKE                      98        /* 0x62 Used only for the type
                                                   field of verbs */
-#define ENDLIKE_tb                     194     /*      0x0c2 */
-#define ENDLIKE_t8                     195     /*      0x0c3 */
-#define ENDLIKE_tb_pb                     388  /*      0x184 */
-#define ENDLIKE_tb_p8                     389  /*      0x185 */
-#define ENDLIKE_t8_pb                     390  /*      0x186 */
-#define ENDLIKE_t8_p8                     391  /*      0x187 */
+#define ENDLIKE_tb                     196     /*      0x0c4 */
+#define ENDLIKE_t8                     197     /*      0x0c5 */
+#define ENDLIKE_tb_pb                     392  /*      0x188 */
+#define ENDLIKE_tb_p8                     393  /*      0x189 */
+#define ENDLIKE_t8_pb                     394  /*      0x18a */
+#define ENDLIKE_t8_p8                     395  /*      0x18b */
 
-#define OPFAIL                       98        /* 0x62 Same as (?!), but with
+#define OPFAIL                       99        /* 0x63 Same as (?!), but with
                                                   verb arg */
-#define OPFAIL_tb                      196     /*      0x0c4 */
-#define OPFAIL_t8                      197     /*      0x0c5 */
-#define OPFAIL_tb_pb                      392  /*      0x188 */
-#define OPFAIL_tb_p8                      393  /*      0x189 */
-#define OPFAIL_t8_pb                      394  /*      0x18a */
-#define OPFAIL_t8_p8                      395  /*      0x18b */
+#define OPFAIL_tb                      198     /*      0x0c6 */
+#define OPFAIL_t8                      199     /*      0x0c7 */
+#define OPFAIL_tb_pb                      396  /*      0x18c */
+#define OPFAIL_tb_p8                      397  /*      0x18d */
+#define OPFAIL_t8_pb                      398  /*      0x18e */
+#define OPFAIL_t8_p8                      399  /*      0x18f */
 
-#define ACCEPT                       99        /* 0x63 Accepts the current
+#define ACCEPT                      100        /* 0x64 Accepts the current
                                                   matched string, with verbar
                                                */
-#define ACCEPT_tb                      198     /*      0x0c6 */
-#define ACCEPT_t8                      199     /*      0x0c7 */
-#define ACCEPT_tb_pb                      396  /*      0x18c */
-#define ACCEPT_tb_p8                      397  /*      0x18d */
-#define ACCEPT_t8_pb                      398  /*      0x18e */
-#define ACCEPT_t8_p8                      399  /*      0x18f */
+#define ACCEPT_tb                      200     /*      0x0c8 */
+#define ACCEPT_t8                      201     /*      0x0c9 */
+#define ACCEPT_tb_pb                      400  /*      0x190 */
+#define ACCEPT_tb_p8                      401  /*      0x191 */
+#define ACCEPT_t8_pb                      402  /*      0x192 */
+#define ACCEPT_t8_p8                      403  /*      0x193 */
 
-#define VERB                        100        /* 0x64 Used only for the type
+#define VERB                        101        /* 0x65 Used only for the type
                                                   field of verbs */
-#define VERB_tb                        200     /*      0x0c8 */
-#define VERB_t8                        201     /*      0x0c9 */
-#define VERB_tb_pb                        400  /*      0x190 */
-#define VERB_tb_p8                        401  /*      0x191 */
-#define VERB_t8_pb                        402  /*      0x192 */
-#define VERB_t8_p8                        403  /*      0x193 */
+#define VERB_tb                        202     /*      0x0ca */
+#define VERB_t8                        203     /*      0x0cb */
+#define VERB_tb_pb                        404  /*      0x194 */
+#define VERB_tb_p8                        405  /*      0x195 */
+#define VERB_t8_pb                        406  /*      0x196 */
+#define VERB_t8_p8                        407  /*      0x197 */
 
-#define PRUNE                       101        /* 0x65 Pattern fails at this
+#define PRUNE                       102        /* 0x66 Pattern fails at this
                                                   startpoint if
                                                   no-backtracking through this
                                                */
-#define PRUNE_tb                       202     /*      0x0ca */
-#define PRUNE_t8                       203     /*      0x0cb */
-#define PRUNE_tb_pb                       404  /*      0x194 */
-#define PRUNE_tb_p8                       405  /*      0x195 */
-#define PRUNE_t8_pb                       406  /*      0x196 */
-#define PRUNE_t8_p8                       407  /*      0x197 */
+#define PRUNE_tb                       204     /*      0x0cc */
+#define PRUNE_t8                       205     /*      0x0cd */
+#define PRUNE_tb_pb                       408  /*      0x198 */
+#define PRUNE_tb_p8                       409  /*      0x199 */
+#define PRUNE_t8_pb                       410  /*      0x19a */
+#define PRUNE_t8_p8                       411  /*      0x19b */
 
-#define MARKPOINT                   102        /* 0x66 Push the current
+#define MARKPOINT                   103        /* 0x67 Push the current
                                                   location for rollback by
                                                   cut. */
-#define MARKPOINT_tb                   204     /*      0x0cc */
-#define MARKPOINT_t8                   205     /*      0x0cd */
-#define MARKPOINT_tb_pb                   408  /*      0x198 */
-#define MARKPOINT_tb_p8                   409  /*      0x199 */
-#define MARKPOINT_t8_pb                   410  /*      0x19a */
-#define MARKPOINT_t8_p8                   411  /*      0x19b */
+#define MARKPOINT_tb                   206     /*      0x0ce */
+#define MARKPOINT_t8                   207     /*      0x0cf */
+#define MARKPOINT_tb_pb                   412  /*      0x19c */
+#define MARKPOINT_tb_p8                   413  /*      0x19d */
+#define MARKPOINT_t8_pb                   414  /*      0x19e */
+#define MARKPOINT_t8_p8                   415  /*      0x19f */
 
-#define SKIP                        103        /* 0x67 On failure skip forward
+#define SKIP                        104        /* 0x68 On failure skip forward
                                                   (to the mark) before
                                                   retrying */
-#define SKIP_tb                        206     /*      0x0ce */
-#define SKIP_t8                        207     /*      0x0cf */
-#define SKIP_tb_pb                        412  /*      0x19c */
-#define SKIP_tb_p8                        413  /*      0x19d */
-#define SKIP_t8_pb                        414  /*      0x19e */
-#define SKIP_t8_p8                        415  /*      0x19f */
+#define SKIP_tb                        208     /*      0x0d0 */
+#define SKIP_t8                        209     /*      0x0d1 */
+#define SKIP_tb_pb                        416  /*      0x1a0 */
+#define SKIP_tb_p8                        417  /*      0x1a1 */
+#define SKIP_t8_pb                        418  /*      0x1a2 */
+#define SKIP_t8_p8                        419  /*      0x1a3 */
 
-#define COMMIT                      104        /* 0x68 Pattern fails outright
+#define COMMIT                      105        /* 0x69 Pattern fails outright
                                                   if backtracking through this
                                                */
-#define COMMIT_tb                      208     /*      0x0d0 */
-#define COMMIT_t8                      209     /*      0x0d1 */
-#define COMMIT_tb_pb                      416  /*      0x1a0 */
-#define COMMIT_tb_p8                      417  /*      0x1a1 */
-#define COMMIT_t8_pb                      418  /*      0x1a2 */
-#define COMMIT_t8_p8                      419  /*      0x1a3 */
+#define COMMIT_tb                      210     /*      0x0d2 */
+#define COMMIT_t8                      211     /*      0x0d3 */
+#define COMMIT_tb_pb                      420  /*      0x1a4 */
+#define COMMIT_tb_p8                      421  /*      0x1a5 */
+#define COMMIT_t8_pb                      422  /*      0x1a6 */
+#define COMMIT_t8_p8                      423  /*      0x1a7 */
 
-#define CUTGROUP                    105        /* 0x69 On failure go to the
+#define CUTGROUP                    106        /* 0x6a On failure go to the
                                                   next alternation in the
                                                   group */
-#define CUTGROUP_tb                    210     /*      0x0d2 */
-#define CUTGROUP_t8                    211     /*      0x0d3 */
-#define CUTGROUP_tb_pb                    420  /*      0x1a4 */
-#define CUTGROUP_tb_p8                    421  /*      0x1a5 */
-#define CUTGROUP_t8_pb                    422  /*      0x1a6 */
-#define CUTGROUP_t8_p8                    423  /*      0x1a7 */
-
-#define KEEPS                       106        /* 0x6a $& begins here. */
-#define KEEPS_tb                       212     /*      0x0d4 */
-#define KEEPS_t8                       213     /*      0x0d5 */
-#define KEEPS_tb_pb                       424  /*      0x1a8 */
-#define KEEPS_tb_p8                       425  /*      0x1a9 */
-#define KEEPS_t8_pb                       426  /*      0x1aa */
-#define KEEPS_t8_p8                       427  /*      0x1ab */
+#define CUTGROUP_tb                    212     /*      0x0d4 */
+#define CUTGROUP_t8                    213     /*      0x0d5 */
+#define CUTGROUP_tb_pb                    424  /*      0x1a8 */
+#define CUTGROUP_tb_p8                    425  /*      0x1a9 */
+#define CUTGROUP_t8_pb                    426  /*      0x1aa */
+#define CUTGROUP_t8_p8                    427  /*      0x1ab */
+
+#define KEEPS                       107        /* 0x6b $& begins here. */
+#define KEEPS_tb                       214     /*      0x0d6 */
+#define KEEPS_t8                       215     /*      0x0d7 */
+#define KEEPS_tb_pb                       428  /*      0x1ac */
+#define KEEPS_tb_p8                       429  /*      0x1ad */
+#define KEEPS_t8_pb                       430  /*      0x1ae */
+#define KEEPS_t8_p8                       431  /*      0x1af */
 
-#define LOOKBEHIND_END              107        /* 0x6b Return from lookbehind
+#define LOOKBEHIND_END              108        /* 0x6c Return from lookbehind
                                                   (IFMATCH/UNLESSM) and
                                                   validate position */
-#define LOOKBEHIND_END_tb              214     /*      0x0d6 */
-#define LOOKBEHIND_END_t8              215     /*      0x0d7 */
-#define LOOKBEHIND_END_tb_pb              428  /*      0x1ac */
-#define LOOKBEHIND_END_tb_p8              429  /*      0x1ad */
-#define LOOKBEHIND_END_t8_pb              430  /*      0x1ae */
-#define LOOKBEHIND_END_t8_p8              431  /*      0x1af */
+#define LOOKBEHIND_END_tb              216     /*      0x0d8 */
+#define LOOKBEHIND_END_t8              217     /*      0x0d9 */
+#define LOOKBEHIND_END_tb_pb              432  /*      0x1b0 */
+#define LOOKBEHIND_END_tb_p8              433  /*      0x1b1 */
+#define LOOKBEHIND_END_t8_pb              434  /*      0x1b2 */
+#define LOOKBEHIND_END_t8_p8              435  /*      0x1b3 */
 
-#define OPTIMIZED                   108        /* 0x6c Placeholder for dump.
+#define OPTIMIZED                   109        /* 0x6d Placeholder for dump.
                                                */
-#define OPTIMIZED_tb                   216     /*      0x0d8 */
-#define OPTIMIZED_t8                   217     /*      0x0d9 */
-#define OPTIMIZED_tb_pb                   432  /*      0x1b0 */
-#define OPTIMIZED_tb_p8                   433  /*      0x1b1 */
-#define OPTIMIZED_t8_pb                   434  /*      0x1b2 */
-#define OPTIMIZED_t8_p8                   435  /*      0x1b3 */
+#define OPTIMIZED_tb                   218     /*      0x0da */
+#define OPTIMIZED_t8                   219     /*      0x0db */
+#define OPTIMIZED_tb_pb                   436  /*      0x1b4 */
+#define OPTIMIZED_tb_p8                   437  /*      0x1b5 */
+#define OPTIMIZED_t8_pb                   438  /*      0x1b6 */
+#define OPTIMIZED_t8_p8                   439  /*      0x1b7 */
 
-#define PSEUDO                      109        /* 0x6d Pseudo opcode for
+#define PSEUDO                      110        /* 0x6e Pseudo opcode for
                                                   internal use. */
-#define PSEUDO_tb                      218     /*      0x0da */
-#define PSEUDO_t8                      219     /*      0x0db */
-#define PSEUDO_tb_pb                      436  /*      0x1b4 */
-#define PSEUDO_tb_p8                      437  /*      0x1b5 */
-#define PSEUDO_t8_pb                      438  /*      0x1b6 */
-#define PSEUDO_t8_p8                      439  /*      0x1b7 */
+#define PSEUDO_tb                      220     /*      0x0dc */
+#define PSEUDO_t8                      221     /*      0x0dd */
+#define PSEUDO_tb_pb                      440  /*      0x1b8 */
+#define PSEUDO_tb_p8                      441  /*      0x1b9 */
+#define PSEUDO_t8_pb                      442  /*      0x1ba */
+#define PSEUDO_t8_p8                      443  /*      0x1bb */
 
-#define REGEX_SET                   110        /* 0x6e Regex set, temporary
+#define REGEX_SET                   111        /* 0x6f Regex set, temporary
                                                   node used in
                                                   pre-optimization compilation
                                                */
-#define REGEX_SET_tb                   220     /*      0x0dc */
-#define REGEX_SET_t8                   221     /*      0x0dd */
-#define REGEX_SET_tb_pb                   440  /*      0x1b8 */
-#define REGEX_SET_tb_p8                   441  /*      0x1b9 */
-#define REGEX_SET_t8_pb                   442  /*      0x1ba */
-#define REGEX_SET_t8_p8                   443  /*      0x1bb */
+#define REGEX_SET_tb                   222     /*      0x0de */
+#define REGEX_SET_t8                   223     /*      0x0df */
+#define REGEX_SET_tb_pb                   444  /*      0x1bc */
+#define REGEX_SET_tb_p8                   445  /*      0x1bd */
+#define REGEX_SET_t8_pb                   446  /*      0x1be */
+#define REGEX_SET_t8_p8                   447  /*      0x1bf */
 
 	/* ------------ States ------------- */
-#define TRIE_next                   111        /* 0x6f state for TRIE */
-#define TRIE_next_tb                   222     /*      0x0de */
-#define TRIE_next_t8                   223     /*      0x0df */
-#define TRIE_next_tb_pb                   444  /*      0x1bc */
-#define TRIE_next_tb_p8                   445  /*      0x1bd */
-#define TRIE_next_t8_pb                   446  /*      0x1be */
-#define TRIE_next_t8_p8                   447  /*      0x1bf */
-
-#define TRIE_next_fail              112        /* 0x70 state for TRIE */
-#define TRIE_next_fail_tb              224     /*      0x0e0 */
-#define TRIE_next_fail_t8              225     /*      0x0e1 */
-#define TRIE_next_fail_tb_pb              448  /*      0x1c0 */
-#define TRIE_next_fail_tb_p8              449  /*      0x1c1 */
-#define TRIE_next_fail_t8_pb              450  /*      0x1c2 */
-#define TRIE_next_fail_t8_p8              451  /*      0x1c3 */
-
-#define EVAL_B                      113        /* 0x71 state for EVAL */
-#define EVAL_B_tb                      226     /*      0x0e2 */
-#define EVAL_B_t8                      227     /*      0x0e3 */
-#define EVAL_B_tb_pb                      452  /*      0x1c4 */
-#define EVAL_B_tb_p8                      453  /*      0x1c5 */
-#define EVAL_B_t8_pb                      454  /*      0x1c6 */
-#define EVAL_B_t8_p8                      455  /*      0x1c7 */
-
-#define EVAL_B_fail                 114        /* 0x72 state for EVAL */
-#define EVAL_B_fail_tb                 228     /*      0x0e4 */
-#define EVAL_B_fail_t8                 229     /*      0x0e5 */
-#define EVAL_B_fail_tb_pb                 456  /*      0x1c8 */
-#define EVAL_B_fail_tb_p8                 457  /*      0x1c9 */
-#define EVAL_B_fail_t8_pb                 458  /*      0x1ca */
-#define EVAL_B_fail_t8_p8                 459  /*      0x1cb */
-
-#define EVAL_postponed_AB           115        /* 0x73 state for EVAL */
-#define EVAL_postponed_AB_tb           230     /*      0x0e6 */
-#define EVAL_postponed_AB_t8           231     /*      0x0e7 */
-#define EVAL_postponed_AB_tb_pb           460  /*      0x1cc */
-#define EVAL_postponed_AB_tb_p8           461  /*      0x1cd */
-#define EVAL_postponed_AB_t8_pb           462  /*      0x1ce */
-#define EVAL_postponed_AB_t8_p8           463  /*      0x1cf */
-
-#define EVAL_postponed_AB_fail      116        /* 0x74 state for EVAL */
-#define EVAL_postponed_AB_fail_tb      232     /*      0x0e8 */
-#define EVAL_postponed_AB_fail_t8      233     /*      0x0e9 */
-#define EVAL_postponed_AB_fail_tb_pb      464  /*      0x1d0 */
-#define EVAL_postponed_AB_fail_tb_p8      465  /*      0x1d1 */
-#define EVAL_postponed_AB_fail_t8_pb      466  /*      0x1d2 */
-#define EVAL_postponed_AB_fail_t8_p8      467  /*      0x1d3 */
-
-#define CURLYX_end                  117        /* 0x75 state for CURLYX */
-#define CURLYX_end_tb                  234     /*      0x0ea */
-#define CURLYX_end_t8                  235     /*      0x0eb */
-#define CURLYX_end_tb_pb                  468  /*      0x1d4 */
-#define CURLYX_end_tb_p8                  469  /*      0x1d5 */
-#define CURLYX_end_t8_pb                  470  /*      0x1d6 */
-#define CURLYX_end_t8_p8                  471  /*      0x1d7 */
-
-#define CURLYX_end_fail             118        /* 0x76 state for CURLYX */
-#define CURLYX_end_fail_tb             236     /*      0x0ec */
-#define CURLYX_end_fail_t8             237     /*      0x0ed */
-#define CURLYX_end_fail_tb_pb             472  /*      0x1d8 */
-#define CURLYX_end_fail_tb_p8             473  /*      0x1d9 */
-#define CURLYX_end_fail_t8_pb             474  /*      0x1da */
-#define CURLYX_end_fail_t8_p8             475  /*      0x1db */
-
-#define WHILEM_A_pre                119        /* 0x77 state for WHILEM */
-#define WHILEM_A_pre_tb                238     /*      0x0ee */
-#define WHILEM_A_pre_t8                239     /*      0x0ef */
-#define WHILEM_A_pre_tb_pb                476  /*      0x1dc */
-#define WHILEM_A_pre_tb_p8                477  /*      0x1dd */
-#define WHILEM_A_pre_t8_pb                478  /*      0x1de */
-#define WHILEM_A_pre_t8_p8                479  /*      0x1df */
-
-#define WHILEM_A_pre_fail           120        /* 0x78 state for WHILEM */
-#define WHILEM_A_pre_fail_tb           240     /*      0x0f0 */
-#define WHILEM_A_pre_fail_t8           241     /*      0x0f1 */
-#define WHILEM_A_pre_fail_tb_pb           480  /*      0x1e0 */
-#define WHILEM_A_pre_fail_tb_p8           481  /*      0x1e1 */
-#define WHILEM_A_pre_fail_t8_pb           482  /*      0x1e2 */
-#define WHILEM_A_pre_fail_t8_p8           483  /*      0x1e3 */
-
-#define WHILEM_A_min                121        /* 0x79 state for WHILEM */
-#define WHILEM_A_min_tb                242     /*      0x0f2 */
-#define WHILEM_A_min_t8                243     /*      0x0f3 */
-#define WHILEM_A_min_tb_pb                484  /*      0x1e4 */
-#define WHILEM_A_min_tb_p8                485  /*      0x1e5 */
-#define WHILEM_A_min_t8_pb                486  /*      0x1e6 */
-#define WHILEM_A_min_t8_p8                487  /*      0x1e7 */
-
-#define WHILEM_A_min_fail           122        /* 0x7a state for WHILEM */
-#define WHILEM_A_min_fail_tb           244     /*      0x0f4 */
-#define WHILEM_A_min_fail_t8           245     /*      0x0f5 */
-#define WHILEM_A_min_fail_tb_pb           488  /*      0x1e8 */
-#define WHILEM_A_min_fail_tb_p8           489  /*      0x1e9 */
-#define WHILEM_A_min_fail_t8_pb           490  /*      0x1ea */
-#define WHILEM_A_min_fail_t8_p8           491  /*      0x1eb */
-
-#define WHILEM_A_max                123        /* 0x7b state for WHILEM */
-#define WHILEM_A_max_tb                246     /*      0x0f6 */
-#define WHILEM_A_max_t8                247     /*      0x0f7 */
-#define WHILEM_A_max_tb_pb                492  /*      0x1ec */
-#define WHILEM_A_max_tb_p8                493  /*      0x1ed */
-#define WHILEM_A_max_t8_pb                494  /*      0x1ee */
-#define WHILEM_A_max_t8_p8                495  /*      0x1ef */
-
-#define WHILEM_A_max_fail           124        /* 0x7c state for WHILEM */
-#define WHILEM_A_max_fail_tb           248     /*      0x0f8 */
-#define WHILEM_A_max_fail_t8           249     /*      0x0f9 */
-#define WHILEM_A_max_fail_tb_pb           496  /*      0x1f0 */
-#define WHILEM_A_max_fail_tb_p8           497  /*      0x1f1 */
-#define WHILEM_A_max_fail_t8_pb           498  /*      0x1f2 */
-#define WHILEM_A_max_fail_t8_p8           499  /*      0x1f3 */
-
-#define WHILEM_B_min                125        /* 0x7d state for WHILEM */
-#define WHILEM_B_min_tb                250     /*      0x0fa */
-#define WHILEM_B_min_t8                251     /*      0x0fb */
-#define WHILEM_B_min_tb_pb                500  /*      0x1f4 */
-#define WHILEM_B_min_tb_p8                501  /*      0x1f5 */
-#define WHILEM_B_min_t8_pb                502  /*      0x1f6 */
-#define WHILEM_B_min_t8_p8                503  /*      0x1f7 */
-
-#define WHILEM_B_min_fail           126        /* 0x7e state for WHILEM */
-#define WHILEM_B_min_fail_tb           252     /*      0x0fc */
-#define WHILEM_B_min_fail_t8           253     /*      0x0fd */
-#define WHILEM_B_min_fail_tb_pb           504  /*      0x1f8 */
-#define WHILEM_B_min_fail_tb_p8           505  /*      0x1f9 */
-#define WHILEM_B_min_fail_t8_pb           506  /*      0x1fa */
-#define WHILEM_B_min_fail_t8_p8           507  /*      0x1fb */
-
-#define WHILEM_B_max                127        /* 0x7f state for WHILEM */
-#define WHILEM_B_max_tb                254     /*      0x0fe */
-#define WHILEM_B_max_t8                255     /*      0x0ff */
-#define WHILEM_B_max_tb_pb                508  /*      0x1fc */
-#define WHILEM_B_max_tb_p8                509  /*      0x1fd */
-#define WHILEM_B_max_t8_pb                510  /*      0x1fe */
-#define WHILEM_B_max_t8_p8                511  /*      0x1ff */
-
-#define WHILEM_B_max_fail           128        /* 0x80 state for WHILEM */
-#define WHILEM_B_max_fail_tb           256     /*      0x100 */
-#define WHILEM_B_max_fail_t8           257     /*      0x101 */
-#define WHILEM_B_max_fail_tb_pb           512  /*      0x200 */
-#define WHILEM_B_max_fail_tb_p8           513  /*      0x201 */
-#define WHILEM_B_max_fail_t8_pb           514  /*      0x202 */
-#define WHILEM_B_max_fail_t8_p8           515  /*      0x203 */
-
-#define BRANCH_next                 129        /* 0x81 state for BRANCH */
-#define BRANCH_next_tb                 258     /*      0x102 */
-#define BRANCH_next_t8                 259     /*      0x103 */
-#define BRANCH_next_tb_pb                 516  /*      0x204 */
-#define BRANCH_next_tb_p8                 517  /*      0x205 */
-#define BRANCH_next_t8_pb                 518  /*      0x206 */
-#define BRANCH_next_t8_p8                 519  /*      0x207 */
-
-#define BRANCH_next_fail            130        /* 0x82 state for BRANCH */
-#define BRANCH_next_fail_tb            260     /*      0x104 */
-#define BRANCH_next_fail_t8            261     /*      0x105 */
-#define BRANCH_next_fail_tb_pb            520  /*      0x208 */
-#define BRANCH_next_fail_tb_p8            521  /*      0x209 */
-#define BRANCH_next_fail_t8_pb            522  /*      0x20a */
-#define BRANCH_next_fail_t8_p8            523  /*      0x20b */
-
-#define CURLYM_A                    131        /* 0x83 state for CURLYM */
-#define CURLYM_A_tb                    262     /*      0x106 */
-#define CURLYM_A_t8                    263     /*      0x107 */
-#define CURLYM_A_tb_pb                    524  /*      0x20c */
-#define CURLYM_A_tb_p8                    525  /*      0x20d */
-#define CURLYM_A_t8_pb                    526  /*      0x20e */
-#define CURLYM_A_t8_p8                    527  /*      0x20f */
-
-#define CURLYM_A_fail               132        /* 0x84 state for CURLYM */
-#define CURLYM_A_fail_tb               264     /*      0x108 */
-#define CURLYM_A_fail_t8               265     /*      0x109 */
-#define CURLYM_A_fail_tb_pb               528  /*      0x210 */
-#define CURLYM_A_fail_tb_p8               529  /*      0x211 */
-#define CURLYM_A_fail_t8_pb               530  /*      0x212 */
-#define CURLYM_A_fail_t8_p8               531  /*      0x213 */
-
-#define CURLYM_B                    133        /* 0x85 state for CURLYM */
-#define CURLYM_B_tb                    266     /*      0x10a */
-#define CURLYM_B_t8                    267     /*      0x10b */
-#define CURLYM_B_tb_pb                    532  /*      0x214 */
-#define CURLYM_B_tb_p8                    533  /*      0x215 */
-#define CURLYM_B_t8_pb                    534  /*      0x216 */
-#define CURLYM_B_t8_p8                    535  /*      0x217 */
-
-#define CURLYM_B_fail               134        /* 0x86 state for CURLYM */
-#define CURLYM_B_fail_tb               268     /*      0x10c */
-#define CURLYM_B_fail_t8               269     /*      0x10d */
-#define CURLYM_B_fail_tb_pb               536  /*      0x218 */
-#define CURLYM_B_fail_tb_p8               537  /*      0x219 */
-#define CURLYM_B_fail_t8_pb               538  /*      0x21a */
-#define CURLYM_B_fail_t8_p8               539  /*      0x21b */
-
-#define IFMATCH_A                   135        /* 0x87 state for IFMATCH */
-#define IFMATCH_A_tb                   270     /*      0x10e */
-#define IFMATCH_A_t8                   271     /*      0x10f */
-#define IFMATCH_A_tb_pb                   540  /*      0x21c */
-#define IFMATCH_A_tb_p8                   541  /*      0x21d */
-#define IFMATCH_A_t8_pb                   542  /*      0x21e */
-#define IFMATCH_A_t8_p8                   543  /*      0x21f */
-
-#define IFMATCH_A_fail              136        /* 0x88 state for IFMATCH */
-#define IFMATCH_A_fail_tb              272     /*      0x110 */
-#define IFMATCH_A_fail_t8              273     /*      0x111 */
-#define IFMATCH_A_fail_tb_pb              544  /*      0x220 */
-#define IFMATCH_A_fail_tb_p8              545  /*      0x221 */
-#define IFMATCH_A_fail_t8_pb              546  /*      0x222 */
-#define IFMATCH_A_fail_t8_p8              547  /*      0x223 */
-
-#define CURLY_B_min                 137        /* 0x89 state for CURLY */
-#define CURLY_B_min_tb                 274     /*      0x112 */
-#define CURLY_B_min_t8                 275     /*      0x113 */
-#define CURLY_B_min_tb_pb                 548  /*      0x224 */
-#define CURLY_B_min_tb_p8                 549  /*      0x225 */
-#define CURLY_B_min_t8_pb                 550  /*      0x226 */
-#define CURLY_B_min_t8_p8                 551  /*      0x227 */
-
-#define CURLY_B_min_fail            138        /* 0x8a state for CURLY */
-#define CURLY_B_min_fail_tb            276     /*      0x114 */
-#define CURLY_B_min_fail_t8            277     /*      0x115 */
-#define CURLY_B_min_fail_tb_pb            552  /*      0x228 */
-#define CURLY_B_min_fail_tb_p8            553  /*      0x229 */
-#define CURLY_B_min_fail_t8_pb            554  /*      0x22a */
-#define CURLY_B_min_fail_t8_p8            555  /*      0x22b */
-
-#define CURLY_B_max                 139        /* 0x8b state for CURLY */
-#define CURLY_B_max_tb                 278     /*      0x116 */
-#define CURLY_B_max_t8                 279     /*      0x117 */
-#define CURLY_B_max_tb_pb                 556  /*      0x22c */
-#define CURLY_B_max_tb_p8                 557  /*      0x22d */
-#define CURLY_B_max_t8_pb                 558  /*      0x22e */
-#define CURLY_B_max_t8_p8                 559  /*      0x22f */
-
-#define CURLY_B_max_fail            140        /* 0x8c state for CURLY */
-#define CURLY_B_max_fail_tb            280     /*      0x118 */
-#define CURLY_B_max_fail_t8            281     /*      0x119 */
-#define CURLY_B_max_fail_tb_pb            560  /*      0x230 */
-#define CURLY_B_max_fail_tb_p8            561  /*      0x231 */
-#define CURLY_B_max_fail_t8_pb            562  /*      0x232 */
-#define CURLY_B_max_fail_t8_p8            563  /*      0x233 */
-
-#define COMMIT_next                 141        /* 0x8d state for COMMIT */
-#define COMMIT_next_tb                 282     /*      0x11a */
-#define COMMIT_next_t8                 283     /*      0x11b */
-#define COMMIT_next_tb_pb                 564  /*      0x234 */
-#define COMMIT_next_tb_p8                 565  /*      0x235 */
-#define COMMIT_next_t8_pb                 566  /*      0x236 */
-#define COMMIT_next_t8_p8                 567  /*      0x237 */
-
-#define COMMIT_next_fail            142        /* 0x8e state for COMMIT */
-#define COMMIT_next_fail_tb            284     /*      0x11c */
-#define COMMIT_next_fail_t8            285     /*      0x11d */
-#define COMMIT_next_fail_tb_pb            568  /*      0x238 */
-#define COMMIT_next_fail_tb_p8            569  /*      0x239 */
-#define COMMIT_next_fail_t8_pb            570  /*      0x23a */
-#define COMMIT_next_fail_t8_p8            571  /*      0x23b */
-
-#define MARKPOINT_next              143        /* 0x8f state for MARKPOINT */
-#define MARKPOINT_next_tb              286     /*      0x11e */
-#define MARKPOINT_next_t8              287     /*      0x11f */
-#define MARKPOINT_next_tb_pb              572  /*      0x23c */
-#define MARKPOINT_next_tb_p8              573  /*      0x23d */
-#define MARKPOINT_next_t8_pb              574  /*      0x23e */
-#define MARKPOINT_next_t8_p8              575  /*      0x23f */
-
-#define MARKPOINT_next_fail         144        /* 0x90 state for MARKPOINT */
-#define MARKPOINT_next_fail_tb         288     /*      0x120 */
-#define MARKPOINT_next_fail_t8         289     /*      0x121 */
-#define MARKPOINT_next_fail_tb_pb         576  /*      0x240 */
-#define MARKPOINT_next_fail_tb_p8         577  /*      0x241 */
-#define MARKPOINT_next_fail_t8_pb         578  /*      0x242 */
-#define MARKPOINT_next_fail_t8_p8         579  /*      0x243 */
-
-#define SKIP_next                   145        /* 0x91 state for SKIP */
-#define SKIP_next_tb                   290     /*      0x122 */
-#define SKIP_next_t8                   291     /*      0x123 */
-#define SKIP_next_tb_pb                   580  /*      0x244 */
-#define SKIP_next_tb_p8                   581  /*      0x245 */
-#define SKIP_next_t8_pb                   582  /*      0x246 */
-#define SKIP_next_t8_p8                   583  /*      0x247 */
-
-#define SKIP_next_fail              146        /* 0x92 state for SKIP */
-#define SKIP_next_fail_tb              292     /*      0x124 */
-#define SKIP_next_fail_t8              293     /*      0x125 */
-#define SKIP_next_fail_tb_pb              584  /*      0x248 */
-#define SKIP_next_fail_tb_p8              585  /*      0x249 */
-#define SKIP_next_fail_t8_pb              586  /*      0x24a */
-#define SKIP_next_fail_t8_p8              587  /*      0x24b */
-
-#define CUTGROUP_next               147        /* 0x93 state for CUTGROUP */
-#define CUTGROUP_next_tb               294     /*      0x126 */
-#define CUTGROUP_next_t8               295     /*      0x127 */
-#define CUTGROUP_next_tb_pb               588  /*      0x24c */
-#define CUTGROUP_next_tb_p8               589  /*      0x24d */
-#define CUTGROUP_next_t8_pb               590  /*      0x24e */
-#define CUTGROUP_next_t8_p8               591  /*      0x24f */
-
-#define CUTGROUP_next_fail          148        /* 0x94 state for CUTGROUP */
-#define CUTGROUP_next_fail_tb          296     /*      0x128 */
-#define CUTGROUP_next_fail_t8          297     /*      0x129 */
-#define CUTGROUP_next_fail_tb_pb          592  /*      0x250 */
-#define CUTGROUP_next_fail_tb_p8          593  /*      0x251 */
-#define CUTGROUP_next_fail_t8_pb          594  /*      0x252 */
-#define CUTGROUP_next_fail_t8_p8          595  /*      0x253 */
-
-#define KEEPS_next                  149        /* 0x95 state for KEEPS */
-#define KEEPS_next_tb                  298     /*      0x12a */
-#define KEEPS_next_t8                  299     /*      0x12b */
-#define KEEPS_next_tb_pb                  596  /*      0x254 */
-#define KEEPS_next_tb_p8                  597  /*      0x255 */
-#define KEEPS_next_t8_pb                  598  /*      0x256 */
-#define KEEPS_next_t8_p8                  599  /*      0x257 */
-
-#define KEEPS_next_fail             150        /* 0x96 state for KEEPS */
-#define KEEPS_next_fail_tb             300     /*      0x12c */
-#define KEEPS_next_fail_t8             301     /*      0x12d */
-#define KEEPS_next_fail_tb_pb             600  /*      0x258 */
-#define KEEPS_next_fail_tb_p8             601  /*      0x259 */
-#define KEEPS_next_fail_t8_pb             602  /*      0x25a */
-#define KEEPS_next_fail_t8_p8             603  /*      0x25b */
-
-
-/* PL_regkind[] What type of regop or state is this. */
-
-#ifndef DOINIT
-EXTCONST U8 PL_regkind[];
-#else
-EXTCONST U8 PL_regkind[] = {
-	END,      	/* END                    */
-	END,      	/* SUCCEED                */
-	BOL,      	/* SBOL                   */
-	BOL,      	/* MBOL                   */
-	EOL,      	/* SEOL                   */
-	EOL,      	/* MEOL                   */
-	EOL,      	/* EOS                    */
-	GPOS,     	/* GPOS                   */
-	BOUND,    	/* BOUND                  */
-	BOUND,    	/* BOUNDL                 */
-	BOUND,    	/* BOUNDU                 */
-	BOUND,    	/* BOUNDA                 */
-	NBOUND,   	/* NBOUND                 */
-	NBOUND,   	/* NBOUNDL                */
-	NBOUND,   	/* NBOUNDU                */
-	NBOUND,   	/* NBOUNDA                */
-	REG_ANY,  	/* REG_ANY                */
-	REG_ANY,  	/* SANY                   */
-	ANYOF,    	/* ANYOF                  */
-	ANYOF,    	/* ANYOFD                 */
-	ANYOF,    	/* ANYOFL                 */
-	ANYOF,    	/* ANYOFPOSIXL            */
-	ANYOF,    	/* ANYOFH                 */
-	ANYOF,    	/* ANYOFHb                */
-	ANYOF,    	/* ANYOFHr                */
-	ANYOF,    	/* ANYOFHs                */
-	ANYOFR,   	/* ANYOFR                 */
-	ANYOFR,   	/* ANYOFRb                */
-	ANYOFM,   	/* ANYOFM                 */
-	ANYOFM,   	/* NANYOFM                */
-	POSIXD,   	/* POSIXD                 */
-	POSIXD,   	/* POSIXL                 */
-	POSIXD,   	/* POSIXU                 */
-	POSIXD,   	/* POSIXA                 */
-	NPOSIXD,  	/* NPOSIXD                */
-	NPOSIXD,  	/* NPOSIXL                */
-	NPOSIXD,  	/* NPOSIXU                */
-	NPOSIXD,  	/* NPOSIXA                */
-	CLUMP,    	/* CLUMP                  */
-	BRANCH,   	/* BRANCH                 */
-	EXACT,    	/* EXACT                  */
-	EXACT,    	/* LEXACT                 */
-	EXACT,    	/* EXACTL                 */
-	EXACT,    	/* EXACTF                 */
-	EXACT,    	/* EXACTFL                */
-	EXACT,    	/* EXACTFU                */
-	EXACT,    	/* EXACTFAA               */
-	EXACT,    	/* EXACTFAA_NO_TRIE       */
-	EXACT,    	/* EXACTFUP               */
-	EXACT,    	/* EXACTFLU8              */
-	EXACT,    	/* EXACT_REQ8             */
-	EXACT,    	/* LEXACT_REQ8            */
-	EXACT,    	/* EXACTFU_REQ8           */
-	EXACT,    	/* EXACTFU_S_EDGE         */
-	LNBREAK,  	/* LNBREAK                */
-	TRIE,     	/* TRIE                   */
-	TRIE,     	/* TRIEC                  */
-	TRIE,     	/* AHOCORASICK            */
-	TRIE,     	/* AHOCORASICKC           */
-	NOTHING,  	/* NOTHING                */
-	NOTHING,  	/* TAIL                   */
-	STAR,     	/* STAR                   */
-	PLUS,     	/* PLUS                   */
-	CURLY,    	/* CURLY                  */
-	CURLY,    	/* CURLYN                 */
-	CURLY,    	/* CURLYM                 */
-	CURLY,    	/* CURLYX                 */
-	WHILEM,   	/* WHILEM                 */
-	OPEN,     	/* OPEN                   */
-	CLOSE,    	/* CLOSE                  */
-	SROPEN,   	/* SROPEN                 */
-	SRCLOSE,  	/* SRCLOSE                */
-	REF,      	/* REF                    */
-	REF,      	/* REFF                   */
-	REF,      	/* REFFL                  */
-	REF,      	/* REFFU                  */
-	REF,      	/* REFFA                  */
-	REF,      	/* REFN                   */
-	REF,      	/* REFFN                  */
-	REF,      	/* REFFLN                 */
-	REF,      	/* REFFUN                 */
-	REF,      	/* REFFAN                 */
-	LONGJMP,  	/* LONGJMP                */
-	BRANCHJ,  	/* BRANCHJ                */
-	BRANCHJ,  	/* IFMATCH                */
-	BRANCHJ,  	/* UNLESSM                */
-	BRANCHJ,  	/* SUSPEND                */
-	BRANCHJ,  	/* IFTHEN                 */
-	GROUPP,   	/* GROUPP                 */
-	EVAL,     	/* EVAL                   */
-	MINMOD,   	/* MINMOD                 */
-	LOGICAL,  	/* LOGICAL                */
-	BRANCHJ,  	/* RENUM                  */
-	GOSUB,    	/* GOSUB                  */
-	GROUPPN,  	/* GROUPPN                */
-	INSUBP,   	/* INSUBP                 */
-	DEFINEP,  	/* DEFINEP                */
-	ENDLIKE,  	/* ENDLIKE                */
-	ENDLIKE,  	/* OPFAIL                 */
-	ENDLIKE,  	/* ACCEPT                 */
-	VERB,     	/* VERB                   */
-	VERB,     	/* PRUNE                  */
-	VERB,     	/* MARKPOINT              */
-	VERB,     	/* SKIP                   */
-	VERB,     	/* COMMIT                 */
-	VERB,     	/* CUTGROUP               */
-	KEEPS,    	/* KEEPS                  */
-	END,      	/* LOOKBEHIND_END         */
-	NOTHING,  	/* OPTIMIZED              */
-	PSEUDO,   	/* PSEUDO                 */
-	REGEX_SET,	/* REGEX_SET              */
-	/* ------------ States ------------- */
-	TRIE,     	/* TRIE_next              */
-	TRIE,     	/* TRIE_next_fail         */
-	EVAL,     	/* EVAL_B                 */
-	EVAL,     	/* EVAL_B_fail            */
-	EVAL,     	/* EVAL_postponed_AB      */
-	EVAL,     	/* EVAL_postponed_AB_fail */
-	CURLYX,   	/* CURLYX_end             */
-	CURLYX,   	/* CURLYX_end_fail        */
-	WHILEM,   	/* WHILEM_A_pre           */
-	WHILEM,   	/* WHILEM_A_pre_fail      */
-	WHILEM,   	/* WHILEM_A_min           */
-	WHILEM,   	/* WHILEM_A_min_fail      */
-	WHILEM,   	/* WHILEM_A_max           */
-	WHILEM,   	/* WHILEM_A_max_fail      */
-	WHILEM,   	/* WHILEM_B_min           */
-	WHILEM,   	/* WHILEM_B_min_fail      */
-	WHILEM,   	/* WHILEM_B_max           */
-	WHILEM,   	/* WHILEM_B_max_fail      */
-	BRANCH,   	/* BRANCH_next            */
-	BRANCH,   	/* BRANCH_next_fail       */
-	CURLYM,   	/* CURLYM_A               */
-	CURLYM,   	/* CURLYM_A_fail          */
-	CURLYM,   	/* CURLYM_B               */
-	CURLYM,   	/* CURLYM_B_fail          */
-	IFMATCH,  	/* IFMATCH_A              */
-	IFMATCH,  	/* IFMATCH_A_fail         */
-	CURLY,    	/* CURLY_B_min            */
-	CURLY,    	/* CURLY_B_min_fail       */
-	CURLY,    	/* CURLY_B_max            */
-	CURLY,    	/* CURLY_B_max_fail       */
-	COMMIT,   	/* COMMIT_next            */
-	COMMIT,   	/* COMMIT_next_fail       */
-	MARKPOINT,	/* MARKPOINT_next         */
-	MARKPOINT,	/* MARKPOINT_next_fail    */
-	SKIP,     	/* SKIP_next              */
-	SKIP,     	/* SKIP_next_fail         */
-	CUTGROUP, 	/* CUTGROUP_next          */
-	CUTGROUP, 	/* CUTGROUP_next_fail     */
-	KEEPS,    	/* KEEPS_next             */
-	KEEPS,    	/* KEEPS_next_fail        */
-};
-#endif
+#define TRIE_next                   112        /* 0x70 state for TRIE */
+#define TRIE_next_tb                   224     /*      0x0e0 */
+#define TRIE_next_t8                   225     /*      0x0e1 */
+#define TRIE_next_tb_pb                   448  /*      0x1c0 */
+#define TRIE_next_tb_p8                   449  /*      0x1c1 */
+#define TRIE_next_t8_pb                   450  /*      0x1c2 */
+#define TRIE_next_t8_p8                   451  /*      0x1c3 */
+
+#define TRIE_next_fail              113        /* 0x71 state for TRIE */
+#define TRIE_next_fail_tb              226     /*      0x0e2 */
+#define TRIE_next_fail_t8              227     /*      0x0e3 */
+#define TRIE_next_fail_tb_pb              452  /*      0x1c4 */
+#define TRIE_next_fail_tb_p8              453  /*      0x1c5 */
+#define TRIE_next_fail_t8_pb              454  /*      0x1c6 */
+#define TRIE_next_fail_t8_p8              455  /*      0x1c7 */
+
+#define EVAL_B                      114        /* 0x72 state for EVAL */
+#define EVAL_B_tb                      228     /*      0x0e4 */
+#define EVAL_B_t8                      229     /*      0x0e5 */
+#define EVAL_B_tb_pb                      456  /*      0x1c8 */
+#define EVAL_B_tb_p8                      457  /*      0x1c9 */
+#define EVAL_B_t8_pb                      458  /*      0x1ca */
+#define EVAL_B_t8_p8                      459  /*      0x1cb */
+
+#define EVAL_B_fail                 115        /* 0x73 state for EVAL */
+#define EVAL_B_fail_tb                 230     /*      0x0e6 */
+#define EVAL_B_fail_t8                 231     /*      0x0e7 */
+#define EVAL_B_fail_tb_pb                 460  /*      0x1cc */
+#define EVAL_B_fail_tb_p8                 461  /*      0x1cd */
+#define EVAL_B_fail_t8_pb                 462  /*      0x1ce */
+#define EVAL_B_fail_t8_p8                 463  /*      0x1cf */
+
+#define EVAL_postponed_AB           116        /* 0x74 state for EVAL */
+#define EVAL_postponed_AB_tb           232     /*      0x0e8 */
+#define EVAL_postponed_AB_t8           233     /*      0x0e9 */
+#define EVAL_postponed_AB_tb_pb           464  /*      0x1d0 */
+#define EVAL_postponed_AB_tb_p8           465  /*      0x1d1 */
+#define EVAL_postponed_AB_t8_pb           466  /*      0x1d2 */
+#define EVAL_postponed_AB_t8_p8           467  /*      0x1d3 */
+
+#define EVAL_postponed_AB_fail      117        /* 0x75 state for EVAL */
+#define EVAL_postponed_AB_fail_tb      234     /*      0x0ea */
+#define EVAL_postponed_AB_fail_t8      235     /*      0x0eb */
+#define EVAL_postponed_AB_fail_tb_pb      468  /*      0x1d4 */
+#define EVAL_postponed_AB_fail_tb_p8      469  /*      0x1d5 */
+#define EVAL_postponed_AB_fail_t8_pb      470  /*      0x1d6 */
+#define EVAL_postponed_AB_fail_t8_p8      471  /*      0x1d7 */
+
+#define CURLYX_end                  118        /* 0x76 state for CURLYX */
+#define CURLYX_end_tb                  236     /*      0x0ec */
+#define CURLYX_end_t8                  237     /*      0x0ed */
+#define CURLYX_end_tb_pb                  472  /*      0x1d8 */
+#define CURLYX_end_tb_p8                  473  /*      0x1d9 */
+#define CURLYX_end_t8_pb                  474  /*      0x1da */
+#define CURLYX_end_t8_p8                  475  /*      0x1db */
+
+#define CURLYX_end_fail             119        /* 0x77 state for CURLYX */
+#define CURLYX_end_fail_tb             238     /*      0x0ee */
+#define CURLYX_end_fail_t8             239     /*      0x0ef */
+#define CURLYX_end_fail_tb_pb             476  /*      0x1dc */
+#define CURLYX_end_fail_tb_p8             477  /*      0x1dd */
+#define CURLYX_end_fail_t8_pb             478  /*      0x1de */
+#define CURLYX_end_fail_t8_p8             479  /*      0x1df */
+
+#define WHILEM_A_pre                120        /* 0x78 state for WHILEM */
+#define WHILEM_A_pre_tb                240     /*      0x0f0 */
+#define WHILEM_A_pre_t8                241     /*      0x0f1 */
+#define WHILEM_A_pre_tb_pb                480  /*      0x1e0 */
+#define WHILEM_A_pre_tb_p8                481  /*      0x1e1 */
+#define WHILEM_A_pre_t8_pb                482  /*      0x1e2 */
+#define WHILEM_A_pre_t8_p8                483  /*      0x1e3 */
+
+#define WHILEM_A_pre_fail           121        /* 0x79 state for WHILEM */
+#define WHILEM_A_pre_fail_tb           242     /*      0x0f2 */
+#define WHILEM_A_pre_fail_t8           243     /*      0x0f3 */
+#define WHILEM_A_pre_fail_tb_pb           484  /*      0x1e4 */
+#define WHILEM_A_pre_fail_tb_p8           485  /*      0x1e5 */
+#define WHILEM_A_pre_fail_t8_pb           486  /*      0x1e6 */
+#define WHILEM_A_pre_fail_t8_p8           487  /*      0x1e7 */
+
+#define WHILEM_A_min                122        /* 0x7a state for WHILEM */
+#define WHILEM_A_min_tb                244     /*      0x0f4 */
+#define WHILEM_A_min_t8                245     /*      0x0f5 */
+#define WHILEM_A_min_tb_pb                488  /*      0x1e8 */
+#define WHILEM_A_min_tb_p8                489  /*      0x1e9 */
+#define WHILEM_A_min_t8_pb                490  /*      0x1ea */
+#define WHILEM_A_min_t8_p8                491  /*      0x1eb */
+
+#define WHILEM_A_min_fail           123        /* 0x7b state for WHILEM */
+#define WHILEM_A_min_fail_tb           246     /*      0x0f6 */
+#define WHILEM_A_min_fail_t8           247     /*      0x0f7 */
+#define WHILEM_A_min_fail_tb_pb           492  /*      0x1ec */
+#define WHILEM_A_min_fail_tb_p8           493  /*      0x1ed */
+#define WHILEM_A_min_fail_t8_pb           494  /*      0x1ee */
+#define WHILEM_A_min_fail_t8_p8           495  /*      0x1ef */
+
+#define WHILEM_A_max                124        /* 0x7c state for WHILEM */
+#define WHILEM_A_max_tb                248     /*      0x0f8 */
+#define WHILEM_A_max_t8                249     /*      0x0f9 */
+#define WHILEM_A_max_tb_pb                496  /*      0x1f0 */
+#define WHILEM_A_max_tb_p8                497  /*      0x1f1 */
+#define WHILEM_A_max_t8_pb                498  /*      0x1f2 */
+#define WHILEM_A_max_t8_p8                499  /*      0x1f3 */
+
+#define WHILEM_A_max_fail           125        /* 0x7d state for WHILEM */
+#define WHILEM_A_max_fail_tb           250     /*      0x0fa */
+#define WHILEM_A_max_fail_t8           251     /*      0x0fb */
+#define WHILEM_A_max_fail_tb_pb           500  /*      0x1f4 */
+#define WHILEM_A_max_fail_tb_p8           501  /*      0x1f5 */
+#define WHILEM_A_max_fail_t8_pb           502  /*      0x1f6 */
+#define WHILEM_A_max_fail_t8_p8           503  /*      0x1f7 */
+
+#define WHILEM_B_min                126        /* 0x7e state for WHILEM */
+#define WHILEM_B_min_tb                252     /*      0x0fc */
+#define WHILEM_B_min_t8                253     /*      0x0fd */
+#define WHILEM_B_min_tb_pb                504  /*      0x1f8 */
+#define WHILEM_B_min_tb_p8                505  /*      0x1f9 */
+#define WHILEM_B_min_t8_pb                506  /*      0x1fa */
+#define WHILEM_B_min_t8_p8                507  /*      0x1fb */
+
+#define WHILEM_B_min_fail           127        /* 0x7f state for WHILEM */
+#define WHILEM_B_min_fail_tb           254     /*      0x0fe */
+#define WHILEM_B_min_fail_t8           255     /*      0x0ff */
+#define WHILEM_B_min_fail_tb_pb           508  /*      0x1fc */
+#define WHILEM_B_min_fail_tb_p8           509  /*      0x1fd */
+#define WHILEM_B_min_fail_t8_pb           510  /*      0x1fe */
+#define WHILEM_B_min_fail_t8_p8           511  /*      0x1ff */
+
+#define WHILEM_B_max                128        /* 0x80 state for WHILEM */
+#define WHILEM_B_max_tb                256     /*      0x100 */
+#define WHILEM_B_max_t8                257     /*      0x101 */
+#define WHILEM_B_max_tb_pb                512  /*      0x200 */
+#define WHILEM_B_max_tb_p8                513  /*      0x201 */
+#define WHILEM_B_max_t8_pb                514  /*      0x202 */
+#define WHILEM_B_max_t8_p8                515  /*      0x203 */
+
+#define WHILEM_B_max_fail           129        /* 0x81 state for WHILEM */
+#define WHILEM_B_max_fail_tb           258     /*      0x102 */
+#define WHILEM_B_max_fail_t8           259     /*      0x103 */
+#define WHILEM_B_max_fail_tb_pb           516  /*      0x204 */
+#define WHILEM_B_max_fail_tb_p8           517  /*      0x205 */
+#define WHILEM_B_max_fail_t8_pb           518  /*      0x206 */
+#define WHILEM_B_max_fail_t8_p8           519  /*      0x207 */
+
+#define BRANCH_next                 130        /* 0x82 state for BRANCH */
+#define BRANCH_next_tb                 260     /*      0x104 */
+#define BRANCH_next_t8                 261     /*      0x105 */
+#define BRANCH_next_tb_pb                 520  /*      0x208 */
+#define BRANCH_next_tb_p8                 521  /*      0x209 */
+#define BRANCH_next_t8_pb                 522  /*      0x20a */
+#define BRANCH_next_t8_p8                 523  /*      0x20b */
+
+#define BRANCH_next_fail            131        /* 0x83 state for BRANCH */
+#define BRANCH_next_fail_tb            262     /*      0x106 */
+#define BRANCH_next_fail_t8            263     /*      0x107 */
+#define BRANCH_next_fail_tb_pb            524  /*      0x20c */
+#define BRANCH_next_fail_tb_p8            525  /*      0x20d */
+#define BRANCH_next_fail_t8_pb            526  /*      0x20e */
+#define BRANCH_next_fail_t8_p8            527  /*      0x20f */
+
+#define CURLYM_A                    132        /* 0x84 state for CURLYM */
+#define CURLYM_A_tb                    264     /*      0x108 */
+#define CURLYM_A_t8                    265     /*      0x109 */
+#define CURLYM_A_tb_pb                    528  /*      0x210 */
+#define CURLYM_A_tb_p8                    529  /*      0x211 */
+#define CURLYM_A_t8_pb                    530  /*      0x212 */
+#define CURLYM_A_t8_p8                    531  /*      0x213 */
+
+#define CURLYM_A_fail               133        /* 0x85 state for CURLYM */
+#define CURLYM_A_fail_tb               266     /*      0x10a */
+#define CURLYM_A_fail_t8               267     /*      0x10b */
+#define CURLYM_A_fail_tb_pb               532  /*      0x214 */
+#define CURLYM_A_fail_tb_p8               533  /*      0x215 */
+#define CURLYM_A_fail_t8_pb               534  /*      0x216 */
+#define CURLYM_A_fail_t8_p8               535  /*      0x217 */
+
+#define CURLYM_B                    134        /* 0x86 state for CURLYM */
+#define CURLYM_B_tb                    268     /*      0x10c */
+#define CURLYM_B_t8                    269     /*      0x10d */
+#define CURLYM_B_tb_pb                    536  /*      0x218 */
+#define CURLYM_B_tb_p8                    537  /*      0x219 */
+#define CURLYM_B_t8_pb                    538  /*      0x21a */
+#define CURLYM_B_t8_p8                    539  /*      0x21b */
+
+#define CURLYM_B_fail               135        /* 0x87 state for CURLYM */
+#define CURLYM_B_fail_tb               270     /*      0x10e */
+#define CURLYM_B_fail_t8               271     /*      0x10f */
+#define CURLYM_B_fail_tb_pb               540  /*      0x21c */
+#define CURLYM_B_fail_tb_p8               541  /*      0x21d */
+#define CURLYM_B_fail_t8_pb               542  /*      0x21e */
+#define CURLYM_B_fail_t8_p8               543  /*      0x21f */
+
+#define IFMATCH_A                   136        /* 0x88 state for IFMATCH */
+#define IFMATCH_A_tb                   272     /*      0x110 */
+#define IFMATCH_A_t8                   273     /*      0x111 */
+#define IFMATCH_A_tb_pb                   544  /*      0x220 */
+#define IFMATCH_A_tb_p8                   545  /*      0x221 */
+#define IFMATCH_A_t8_pb                   546  /*      0x222 */
+#define IFMATCH_A_t8_p8                   547  /*      0x223 */
+
+#define IFMATCH_A_fail              137        /* 0x89 state for IFMATCH */
+#define IFMATCH_A_fail_tb              274     /*      0x112 */
+#define IFMATCH_A_fail_t8              275     /*      0x113 */
+#define IFMATCH_A_fail_tb_pb              548  /*      0x224 */
+#define IFMATCH_A_fail_tb_p8              549  /*      0x225 */
+#define IFMATCH_A_fail_t8_pb              550  /*      0x226 */
+#define IFMATCH_A_fail_t8_p8              551  /*      0x227 */
+
+#define CURLY_B_min                 138        /* 0x8a state for CURLY */
+#define CURLY_B_min_tb                 276     /*      0x114 */
+#define CURLY_B_min_t8                 277     /*      0x115 */
+#define CURLY_B_min_tb_pb                 552  /*      0x228 */
+#define CURLY_B_min_tb_p8                 553  /*      0x229 */
+#define CURLY_B_min_t8_pb                 554  /*      0x22a */
+#define CURLY_B_min_t8_p8                 555  /*      0x22b */
+
+#define CURLY_B_min_fail            139        /* 0x8b state for CURLY */
+#define CURLY_B_min_fail_tb            278     /*      0x116 */
+#define CURLY_B_min_fail_t8            279     /*      0x117 */
+#define CURLY_B_min_fail_tb_pb            556  /*      0x22c */
+#define CURLY_B_min_fail_tb_p8            557  /*      0x22d */
+#define CURLY_B_min_fail_t8_pb            558  /*      0x22e */
+#define CURLY_B_min_fail_t8_p8            559  /*      0x22f */
+
+#define CURLY_B_max                 140        /* 0x8c state for CURLY */
+#define CURLY_B_max_tb                 280     /*      0x118 */
+#define CURLY_B_max_t8                 281     /*      0x119 */
+#define CURLY_B_max_tb_pb                 560  /*      0x230 */
+#define CURLY_B_max_tb_p8                 561  /*      0x231 */
+#define CURLY_B_max_t8_pb                 562  /*      0x232 */
+#define CURLY_B_max_t8_p8                 563  /*      0x233 */
+
+#define CURLY_B_max_fail            141        /* 0x8d state for CURLY */
+#define CURLY_B_max_fail_tb            282     /*      0x11a */
+#define CURLY_B_max_fail_t8            283     /*      0x11b */
+#define CURLY_B_max_fail_tb_pb            564  /*      0x234 */
+#define CURLY_B_max_fail_tb_p8            565  /*      0x235 */
+#define CURLY_B_max_fail_t8_pb            566  /*      0x236 */
+#define CURLY_B_max_fail_t8_p8            567  /*      0x237 */
+
+#define COMMIT_next                 142        /* 0x8e state for COMMIT */
+#define COMMIT_next_tb                 284     /*      0x11c */
+#define COMMIT_next_t8                 285     /*      0x11d */
+#define COMMIT_next_tb_pb                 568  /*      0x238 */
+#define COMMIT_next_tb_p8                 569  /*      0x239 */
+#define COMMIT_next_t8_pb                 570  /*      0x23a */
+#define COMMIT_next_t8_p8                 571  /*      0x23b */
+
+#define COMMIT_next_fail            143        /* 0x8f state for COMMIT */
+#define COMMIT_next_fail_tb            286     /*      0x11e */
+#define COMMIT_next_fail_t8            287     /*      0x11f */
+#define COMMIT_next_fail_tb_pb            572  /*      0x23c */
+#define COMMIT_next_fail_tb_p8            573  /*      0x23d */
+#define COMMIT_next_fail_t8_pb            574  /*      0x23e */
+#define COMMIT_next_fail_t8_p8            575  /*      0x23f */
+
+#define MARKPOINT_next              144        /* 0x90 state for MARKPOINT */
+#define MARKPOINT_next_tb              288     /*      0x120 */
+#define MARKPOINT_next_t8              289     /*      0x121 */
+#define MARKPOINT_next_tb_pb              576  /*      0x240 */
+#define MARKPOINT_next_tb_p8              577  /*      0x241 */
+#define MARKPOINT_next_t8_pb              578  /*      0x242 */
+#define MARKPOINT_next_t8_p8              579  /*      0x243 */
+
+#define MARKPOINT_next_fail         145        /* 0x91 state for MARKPOINT */
+#define MARKPOINT_next_fail_tb         290     /*      0x122 */
+#define MARKPOINT_next_fail_t8         291     /*      0x123 */
+#define MARKPOINT_next_fail_tb_pb         580  /*      0x244 */
+#define MARKPOINT_next_fail_tb_p8         581  /*      0x245 */
+#define MARKPOINT_next_fail_t8_pb         582  /*      0x246 */
+#define MARKPOINT_next_fail_t8_p8         583  /*      0x247 */
+
+#define SKIP_next                   146        /* 0x92 state for SKIP */
+#define SKIP_next_tb                   292     /*      0x124 */
+#define SKIP_next_t8                   293     /*      0x125 */
+#define SKIP_next_tb_pb                   584  /*      0x248 */
+#define SKIP_next_tb_p8                   585  /*      0x249 */
+#define SKIP_next_t8_pb                   586  /*      0x24a */
+#define SKIP_next_t8_p8                   587  /*      0x24b */
+
+#define SKIP_next_fail              147        /* 0x93 state for SKIP */
+#define SKIP_next_fail_tb              294     /*      0x126 */
+#define SKIP_next_fail_t8              295     /*      0x127 */
+#define SKIP_next_fail_tb_pb              588  /*      0x24c */
+#define SKIP_next_fail_tb_p8              589  /*      0x24d */
+#define SKIP_next_fail_t8_pb              590  /*      0x24e */
+#define SKIP_next_fail_t8_p8              591  /*      0x24f */
+
+#define CUTGROUP_next               148        /* 0x94 state for CUTGROUP */
+#define CUTGROUP_next_tb               296     /*      0x128 */
+#define CUTGROUP_next_t8               297     /*      0x129 */
+#define CUTGROUP_next_tb_pb               592  /*      0x250 */
+#define CUTGROUP_next_tb_p8               593  /*      0x251 */
+#define CUTGROUP_next_t8_pb               594  /*      0x252 */
+#define CUTGROUP_next_t8_p8               595  /*      0x253 */
+
+#define CUTGROUP_next_fail          149        /* 0x95 state for CUTGROUP */
+#define CUTGROUP_next_fail_tb          298     /*      0x12a */
+#define CUTGROUP_next_fail_t8          299     /*      0x12b */
+#define CUTGROUP_next_fail_tb_pb          596  /*      0x254 */
+#define CUTGROUP_next_fail_tb_p8          597  /*      0x255 */
+#define CUTGROUP_next_fail_t8_pb          598  /*      0x256 */
+#define CUTGROUP_next_fail_t8_p8          599  /*      0x257 */
+
+#define KEEPS_next                  150        /* 0x96 state for KEEPS */
+#define KEEPS_next_tb                  300     /*      0x12c */
+#define KEEPS_next_t8                  301     /*      0x12d */
+#define KEEPS_next_tb_pb                  600  /*      0x258 */
+#define KEEPS_next_tb_p8                  601  /*      0x259 */
+#define KEEPS_next_t8_pb                  602  /*      0x25a */
+#define KEEPS_next_t8_p8                  603  /*      0x25b */
+
+#define KEEPS_next_fail             151        /* 0x97 state for KEEPS */
+#define KEEPS_next_fail_tb             302     /*      0x12e */
+#define KEEPS_next_fail_t8             303     /*      0x12f */
+#define KEEPS_next_fail_tb_pb             604  /*      0x25c */
+#define KEEPS_next_fail_tb_p8             605  /*      0x25d */
+#define KEEPS_next_fail_t8_pb             606  /*      0x25e */
+#define KEEPS_next_fail_t8_p8             607  /*      0x25f */
+
+#define REF_next                    152        /* 0x98 state for REF */
+#define REF_next_tb                    304     /*      0x130 */
+#define REF_next_t8                    305     /*      0x131 */
+#define REF_next_tb_pb                    608  /*      0x260 */
+#define REF_next_tb_p8                    609  /*      0x261 */
+#define REF_next_t8_pb                    610  /*      0x262 */
+#define REF_next_t8_p8                    611  /*      0x263 */
+
+#define REF_next_fail               153        /* 0x99 state for REF */
+#define REF_next_fail_tb               306     /*      0x132 */
+#define REF_next_fail_t8               307     /*      0x133 */
+#define REF_next_fail_tb_pb               612  /*      0x264 */
+#define REF_next_fail_tb_p8               613  /*      0x265 */
+#define REF_next_fail_t8_pb               614  /*      0x266 */
+#define REF_next_fail_t8_p8               615  /*      0x267 */
 
-#ifdef REG_COMP_C
 
-/* regarglen[] - How large is the argument part of the node (in regnodes) */
-
-static const U8 regarglen[] = {
-	0,                                   	/* END          */
-	0,                                   	/* SUCCEED      */
-	0,                                   	/* SBOL         */
-	0,                                   	/* MBOL         */
-	0,                                   	/* SEOL         */
-	0,                                   	/* MEOL         */
-	0,                                   	/* EOS          */
-	0,                                   	/* GPOS         */
-	0,                                   	/* BOUND        */
-	0,                                   	/* BOUNDL       */
-	0,                                   	/* BOUNDU       */
-	0,                                   	/* BOUNDA       */
-	0,                                   	/* NBOUND       */
-	0,                                   	/* NBOUNDL      */
-	0,                                   	/* NBOUNDU      */
-	0,                                   	/* NBOUNDA      */
-	0,                                   	/* REG_ANY      */
-	0,                                   	/* SANY         */
-	EXTRA_SIZE(struct regnode_charclass),	/* ANYOF        */
-	EXTRA_SIZE(struct regnode_charclass),	/* ANYOFD       */
-	EXTRA_SIZE(struct regnode_charclass),	/* ANYOFL       */
-	EXTRA_SIZE(struct regnode_charclass_posixl),	/* ANYOFPOSIXL  */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFH       */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFHb      */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFHr      */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFHs      */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFR       */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFRb      */
-	EXTRA_SIZE(struct regnode_1),        	/* ANYOFM       */
-	EXTRA_SIZE(struct regnode_1),        	/* NANYOFM      */
-	0,                                   	/* POSIXD       */
-	0,                                   	/* POSIXL       */
-	0,                                   	/* POSIXU       */
-	0,                                   	/* POSIXA       */
-	0,                                   	/* NPOSIXD      */
-	0,                                   	/* NPOSIXL      */
-	0,                                   	/* NPOSIXU      */
-	0,                                   	/* NPOSIXA      */
-	0,                                   	/* CLUMP        */
-	0,                                   	/* BRANCH       */
-	0,                                   	/* EXACT        */
-	EXTRA_SIZE(struct regnode_1),        	/* LEXACT       */
-	0,                                   	/* EXACTL       */
-	0,                                   	/* EXACTF       */
-	0,                                   	/* EXACTFL      */
-	0,                                   	/* EXACTFU      */
-	0,                                   	/* EXACTFAA     */
-	0,                                   	/* EXACTFAA_NO_TRIE */
-	0,                                   	/* EXACTFUP     */
-	0,                                   	/* EXACTFLU8    */
-	0,                                   	/* EXACT_REQ8   */
-	EXTRA_SIZE(struct regnode_1),        	/* LEXACT_REQ8  */
-	0,                                   	/* EXACTFU_REQ8 */
-	0,                                   	/* EXACTFU_S_EDGE */
-	0,                                   	/* LNBREAK      */
-	EXTRA_SIZE(struct regnode_1),        	/* TRIE         */
-	EXTRA_SIZE(struct regnode_charclass),	/* TRIEC        */
-	EXTRA_SIZE(struct regnode_1),        	/* AHOCORASICK  */
-	EXTRA_SIZE(struct regnode_charclass),	/* AHOCORASICKC */
-	0,                                   	/* NOTHING      */
-	0,                                   	/* TAIL         */
-	0,                                   	/* STAR         */
-	0,                                   	/* PLUS         */
-	EXTRA_SIZE(struct regnode_2),        	/* CURLY        */
-	EXTRA_SIZE(struct regnode_2),        	/* CURLYN       */
-	EXTRA_SIZE(struct regnode_2),        	/* CURLYM       */
-	EXTRA_SIZE(struct regnode_2),        	/* CURLYX       */
-	0,                                   	/* WHILEM       */
-	EXTRA_SIZE(struct regnode_1),        	/* OPEN         */
-	EXTRA_SIZE(struct regnode_1),        	/* CLOSE        */
-	0,                                   	/* SROPEN       */
-	0,                                   	/* SRCLOSE      */
-	EXTRA_SIZE(struct regnode_1),        	/* REF          */
-	EXTRA_SIZE(struct regnode_1),        	/* REFF         */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFL        */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFU        */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFA        */
-	EXTRA_SIZE(struct regnode_1),        	/* REFN         */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFN        */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFLN       */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFUN       */
-	EXTRA_SIZE(struct regnode_1),        	/* REFFAN       */
-	EXTRA_SIZE(struct regnode_1),        	/* LONGJMP      */
-	EXTRA_SIZE(struct regnode_1),        	/* BRANCHJ      */
-	EXTRA_SIZE(struct regnode_1),        	/* IFMATCH      */
-	EXTRA_SIZE(struct regnode_1),        	/* UNLESSM      */
-	EXTRA_SIZE(struct regnode_1),        	/* SUSPEND      */
-	EXTRA_SIZE(struct regnode_1),        	/* IFTHEN       */
-	EXTRA_SIZE(struct regnode_1),        	/* GROUPP       */
-	EXTRA_SIZE(struct regnode_2L),       	/* EVAL         */
-	0,                                   	/* MINMOD       */
-	0,                                   	/* LOGICAL      */
-	EXTRA_SIZE(struct regnode_1),        	/* RENUM        */
-	EXTRA_SIZE(struct regnode_2L),       	/* GOSUB        */
-	EXTRA_SIZE(struct regnode_1),        	/* GROUPPN      */
-	EXTRA_SIZE(struct regnode_1),        	/* INSUBP       */
-	EXTRA_SIZE(struct regnode_1),        	/* DEFINEP      */
-	0,                                   	/* ENDLIKE      */
-	EXTRA_SIZE(struct regnode_1),        	/* OPFAIL       */
-	EXTRA_SIZE(struct regnode_2L),       	/* ACCEPT       */
-	EXTRA_SIZE(struct regnode_1),        	/* VERB         */
-	EXTRA_SIZE(struct regnode_1),        	/* PRUNE        */
-	EXTRA_SIZE(struct regnode_1),        	/* MARKPOINT    */
-	EXTRA_SIZE(struct regnode_1),        	/* SKIP         */
-	EXTRA_SIZE(struct regnode_1),        	/* COMMIT       */
-	EXTRA_SIZE(struct regnode_1),        	/* CUTGROUP     */
-	0,                                   	/* KEEPS        */
-	0,                                   	/* LOOKBEHIND_END */
-	0,                                   	/* OPTIMIZED    */
-	0,                                   	/* PSEUDO       */
-	EXTRA_SIZE(struct regnode_p),        	/* REGEX_SET    */
-};
-
-/* reg_off_by_arg[] - Which argument holds the offset to the next node */
-
-static const char reg_off_by_arg[] = {
-	0,	/* END          */
-	0,	/* SUCCEED      */
-	0,	/* SBOL         */
-	0,	/* MBOL         */
-	0,	/* SEOL         */
-	0,	/* MEOL         */
-	0,	/* EOS          */
-	0,	/* GPOS         */
-	0,	/* BOUND        */
-	0,	/* BOUNDL       */
-	0,	/* BOUNDU       */
-	0,	/* BOUNDA       */
-	0,	/* NBOUND       */
-	0,	/* NBOUNDL      */
-	0,	/* NBOUNDU      */
-	0,	/* NBOUNDA      */
-	0,	/* REG_ANY      */
-	0,	/* SANY         */
-	0,	/* ANYOF        */
-	0,	/* ANYOFD       */
-	0,	/* ANYOFL       */
-	0,	/* ANYOFPOSIXL  */
-	0,	/* ANYOFH       */
-	0,	/* ANYOFHb      */
-	0,	/* ANYOFHr      */
-	0,	/* ANYOFHs      */
-	0,	/* ANYOFR       */
-	0,	/* ANYOFRb      */
-	0,	/* ANYOFM       */
-	0,	/* NANYOFM      */
-	0,	/* POSIXD       */
-	0,	/* POSIXL       */
-	0,	/* POSIXU       */
-	0,	/* POSIXA       */
-	0,	/* NPOSIXD      */
-	0,	/* NPOSIXL      */
-	0,	/* NPOSIXU      */
-	0,	/* NPOSIXA      */
-	0,	/* CLUMP        */
-	0,	/* BRANCH       */
-	0,	/* EXACT        */
-	0,	/* LEXACT       */
-	0,	/* EXACTL       */
-	0,	/* EXACTF       */
-	0,	/* EXACTFL      */
-	0,	/* EXACTFU      */
-	0,	/* EXACTFAA     */
-	0,	/* EXACTFAA_NO_TRIE */
-	0,	/* EXACTFUP     */
-	0,	/* EXACTFLU8    */
-	0,	/* EXACT_REQ8   */
-	0,	/* LEXACT_REQ8  */
-	0,	/* EXACTFU_REQ8 */
-	0,	/* EXACTFU_S_EDGE */
-	0,	/* LNBREAK      */
-	0,	/* TRIE         */
-	0,	/* TRIEC        */
-	0,	/* AHOCORASICK  */
-	0,	/* AHOCORASICKC */
-	0,	/* NOTHING      */
-	0,	/* TAIL         */
-	0,	/* STAR         */
-	0,	/* PLUS         */
-	0,	/* CURLY        */
-	0,	/* CURLYN       */
-	0,	/* CURLYM       */
-	0,	/* CURLYX       */
-	0,	/* WHILEM       */
-	0,	/* OPEN         */
-	0,	/* CLOSE        */
-	0,	/* SROPEN       */
-	0,	/* SRCLOSE      */
-	0,	/* REF          */
-	0,	/* REFF         */
-	0,	/* REFFL        */
-	0,	/* REFFU        */
-	0,	/* REFFA        */
-	0,	/* REFN         */
-	0,	/* REFFN        */
-	0,	/* REFFLN       */
-	0,	/* REFFUN       */
-	0,	/* REFFAN       */
-	1,	/* LONGJMP      */
-	1,	/* BRANCHJ      */
-	1,	/* IFMATCH      */
-	1,	/* UNLESSM      */
-	1,	/* SUSPEND      */
-	1,	/* IFTHEN       */
-	0,	/* GROUPP       */
-	0,	/* EVAL         */
-	0,	/* MINMOD       */
-	0,	/* LOGICAL      */
-	1,	/* RENUM        */
-	0,	/* GOSUB        */
-	0,	/* GROUPPN      */
-	0,	/* INSUBP       */
-	0,	/* DEFINEP      */
-	0,	/* ENDLIKE      */
-	0,	/* OPFAIL       */
-	0,	/* ACCEPT       */
-	0,	/* VERB         */
-	0,	/* PRUNE        */
-	0,	/* MARKPOINT    */
-	0,	/* SKIP         */
-	0,	/* COMMIT       */
-	0,	/* CUTGROUP     */
-	0,	/* KEEPS        */
-	0,	/* LOOKBEHIND_END */
-	0,	/* OPTIMIZED    */
-	0,	/* PSEUDO       */
-	0,	/* REGEX_SET    */
-};
-
-#endif /* REG_COMP_C */
-
-
-/* reg_name[] - Opcode/state names in string form, for debugging */
+/* PL_regnode_name[] - Opcode/state names in string form, for debugging */
 
 #ifndef DOINIT
-EXTCONST char * PL_reg_name[];
+EXTCONST char * PL_regnode_name[];
 #else
-EXTCONST char * const PL_reg_name[] = {
+EXTCONST char * const PL_regnode_name[] = {
 	"END",                   	/* 0000 */
 	"SUCCEED",               	/* 0x01 */
 	"SBOL",                  	/* 0x02 */
@@ -1868,89 +1624,90 @@ EXTCONST char * const PL_reg_name[] = {
 	"ANYOFHs",               	/* 0x19 */
 	"ANYOFR",                	/* 0x1a */
 	"ANYOFRb",               	/* 0x1b */
-	"ANYOFM",                	/* 0x1c */
-	"NANYOFM",               	/* 0x1d */
-	"POSIXD",                	/* 0x1e */
-	"POSIXL",                	/* 0x1f */
-	"POSIXU",                	/* 0x20 */
-	"POSIXA",                	/* 0x21 */
-	"NPOSIXD",               	/* 0x22 */
-	"NPOSIXL",               	/* 0x23 */
-	"NPOSIXU",               	/* 0x24 */
-	"NPOSIXA",               	/* 0x25 */
-	"CLUMP",                 	/* 0x26 */
-	"BRANCH",                	/* 0x27 */
-	"EXACT",                 	/* 0x28 */
-	"LEXACT",                	/* 0x29 */
-	"EXACTL",                	/* 0x2a */
-	"EXACTF",                	/* 0x2b */
-	"EXACTFL",               	/* 0x2c */
-	"EXACTFU",               	/* 0x2d */
-	"EXACTFAA",              	/* 0x2e */
-	"EXACTFAA_NO_TRIE",      	/* 0x2f */
-	"EXACTFUP",              	/* 0x30 */
-	"EXACTFLU8",             	/* 0x31 */
-	"EXACT_REQ8",            	/* 0x32 */
-	"LEXACT_REQ8",           	/* 0x33 */
-	"EXACTFU_REQ8",          	/* 0x34 */
-	"EXACTFU_S_EDGE",        	/* 0x35 */
-	"LNBREAK",               	/* 0x36 */
-	"TRIE",                  	/* 0x37 */
-	"TRIEC",                 	/* 0x38 */
-	"AHOCORASICK",           	/* 0x39 */
-	"AHOCORASICKC",          	/* 0x3a */
-	"NOTHING",               	/* 0x3b */
-	"TAIL",                  	/* 0x3c */
-	"STAR",                  	/* 0x3d */
-	"PLUS",                  	/* 0x3e */
-	"CURLY",                 	/* 0x3f */
-	"CURLYN",                	/* 0x40 */
-	"CURLYM",                	/* 0x41 */
-	"CURLYX",                	/* 0x42 */
-	"WHILEM",                	/* 0x43 */
-	"OPEN",                  	/* 0x44 */
-	"CLOSE",                 	/* 0x45 */
-	"SROPEN",                	/* 0x46 */
-	"SRCLOSE",               	/* 0x47 */
-	"REF",                   	/* 0x48 */
-	"REFF",                  	/* 0x49 */
-	"REFFL",                 	/* 0x4a */
-	"REFFU",                 	/* 0x4b */
-	"REFFA",                 	/* 0x4c */
-	"REFN",                  	/* 0x4d */
-	"REFFN",                 	/* 0x4e */
-	"REFFLN",                	/* 0x4f */
-	"REFFUN",                	/* 0x50 */
-	"REFFAN",                	/* 0x51 */
-	"LONGJMP",               	/* 0x52 */
-	"BRANCHJ",               	/* 0x53 */
-	"IFMATCH",               	/* 0x54 */
-	"UNLESSM",               	/* 0x55 */
-	"SUSPEND",               	/* 0x56 */
-	"IFTHEN",                	/* 0x57 */
-	"GROUPP",                	/* 0x58 */
-	"EVAL",                  	/* 0x59 */
-	"MINMOD",                	/* 0x5a */
-	"LOGICAL",               	/* 0x5b */
-	"RENUM",                 	/* 0x5c */
-	"GOSUB",                 	/* 0x5d */
-	"GROUPPN",               	/* 0x5e */
-	"INSUBP",                	/* 0x5f */
-	"DEFINEP",               	/* 0x60 */
-	"ENDLIKE",               	/* 0x61 */
-	"OPFAIL",                	/* 0x62 */
-	"ACCEPT",                	/* 0x63 */
-	"VERB",                  	/* 0x64 */
-	"PRUNE",                 	/* 0x65 */
-	"MARKPOINT",             	/* 0x66 */
-	"SKIP",                  	/* 0x67 */
-	"COMMIT",                	/* 0x68 */
-	"CUTGROUP",              	/* 0x69 */
-	"KEEPS",                 	/* 0x6a */
-	"LOOKBEHIND_END",        	/* 0x6b */
-	"OPTIMIZED",             	/* 0x6c */
-	"PSEUDO",                	/* 0x6d */
-	"REGEX_SET",             	/* 0x6e */
+	"ANYOFHbbm",             	/* 0x1c */
+	"ANYOFM",                	/* 0x1d */
+	"NANYOFM",               	/* 0x1e */
+	"POSIXD",                	/* 0x1f */
+	"POSIXL",                	/* 0x20 */
+	"POSIXU",                	/* 0x21 */
+	"POSIXA",                	/* 0x22 */
+	"NPOSIXD",               	/* 0x23 */
+	"NPOSIXL",               	/* 0x24 */
+	"NPOSIXU",               	/* 0x25 */
+	"NPOSIXA",               	/* 0x26 */
+	"CLUMP",                 	/* 0x27 */
+	"BRANCH",                	/* 0x28 */
+	"EXACT",                 	/* 0x29 */
+	"LEXACT",                	/* 0x2a */
+	"EXACTL",                	/* 0x2b */
+	"EXACTF",                	/* 0x2c */
+	"EXACTFL",               	/* 0x2d */
+	"EXACTFU",               	/* 0x2e */
+	"EXACTFAA",              	/* 0x2f */
+	"EXACTFAA_NO_TRIE",      	/* 0x30 */
+	"EXACTFUP",              	/* 0x31 */
+	"EXACTFLU8",             	/* 0x32 */
+	"EXACT_REQ8",            	/* 0x33 */
+	"LEXACT_REQ8",           	/* 0x34 */
+	"EXACTFU_REQ8",          	/* 0x35 */
+	"EXACTFU_S_EDGE",        	/* 0x36 */
+	"LNBREAK",               	/* 0x37 */
+	"TRIE",                  	/* 0x38 */
+	"TRIEC",                 	/* 0x39 */
+	"AHOCORASICK",           	/* 0x3a */
+	"AHOCORASICKC",          	/* 0x3b */
+	"NOTHING",               	/* 0x3c */
+	"TAIL",                  	/* 0x3d */
+	"STAR",                  	/* 0x3e */
+	"PLUS",                  	/* 0x3f */
+	"CURLY",                 	/* 0x40 */
+	"CURLYN",                	/* 0x41 */
+	"CURLYM",                	/* 0x42 */
+	"CURLYX",                	/* 0x43 */
+	"WHILEM",                	/* 0x44 */
+	"OPEN",                  	/* 0x45 */
+	"CLOSE",                 	/* 0x46 */
+	"SROPEN",                	/* 0x47 */
+	"SRCLOSE",               	/* 0x48 */
+	"REF",                   	/* 0x49 */
+	"REFF",                  	/* 0x4a */
+	"REFFL",                 	/* 0x4b */
+	"REFFU",                 	/* 0x4c */
+	"REFFA",                 	/* 0x4d */
+	"REFN",                  	/* 0x4e */
+	"REFFN",                 	/* 0x4f */
+	"REFFLN",                	/* 0x50 */
+	"REFFUN",                	/* 0x51 */
+	"REFFAN",                	/* 0x52 */
+	"LONGJMP",               	/* 0x53 */
+	"BRANCHJ",               	/* 0x54 */
+	"IFMATCH",               	/* 0x55 */
+	"UNLESSM",               	/* 0x56 */
+	"SUSPEND",               	/* 0x57 */
+	"IFTHEN",                	/* 0x58 */
+	"GROUPP",                	/* 0x59 */
+	"EVAL",                  	/* 0x5a */
+	"MINMOD",                	/* 0x5b */
+	"LOGICAL",               	/* 0x5c */
+	"RENUM",                 	/* 0x5d */
+	"GOSUB",                 	/* 0x5e */
+	"GROUPPN",               	/* 0x5f */
+	"INSUBP",                	/* 0x60 */
+	"DEFINEP",               	/* 0x61 */
+	"ENDLIKE",               	/* 0x62 */
+	"OPFAIL",                	/* 0x63 */
+	"ACCEPT",                	/* 0x64 */
+	"VERB",                  	/* 0x65 */
+	"PRUNE",                 	/* 0x66 */
+	"MARKPOINT",             	/* 0x67 */
+	"SKIP",                  	/* 0x68 */
+	"COMMIT",                	/* 0x69 */
+	"CUTGROUP",              	/* 0x6a */
+	"KEEPS",                 	/* 0x6b */
+	"LOOKBEHIND_END",        	/* 0x6c */
+	"OPTIMIZED",             	/* 0x6d */
+	"PSEUDO",                	/* 0x6e */
+	"REGEX_SET",             	/* 0x6f */
 	/* ------------ States ------------- */
 	"TRIE_next",             	/* REGNODE_MAX +0x01 */
 	"TRIE_next_fail",        	/* REGNODE_MAX +0x02 */
@@ -1992,6 +1749,1096 @@ EXTCONST char * const PL_reg_name[] = {
 	"CUTGROUP_next_fail",    	/* REGNODE_MAX +0x26 */
 	"KEEPS_next",            	/* REGNODE_MAX +0x27 */
 	"KEEPS_next_fail",       	/* REGNODE_MAX +0x28 */
+	"REF_next",              	/* REGNODE_MAX +0x29 */
+	"REF_next_fail",         	/* REGNODE_MAX +0x2a */
+};
+#endif /* DOINIT */
+
+
+/* PL_regnode_info[] - Opcode/state names in string form, for debugging */
+
+#ifndef DOINIT
+EXTCONST struct regnode_meta PL_regnode_info[];
+#else
+EXTCONST struct regnode_meta PL_regnode_info[] = {
+    {
+        /* #0 op END */
+        .type = END,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #1 op SUCCEED */
+        .type = END,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #2 op SBOL */
+        .type = BOL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #3 op MBOL */
+        .type = BOL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #4 op SEOL */
+        .type = EOL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #5 op MEOL */
+        .type = EOL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #6 op EOS */
+        .type = EOL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #7 op GPOS */
+        .type = GPOS,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #8 op BOUND */
+        .type = BOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #9 op BOUNDL */
+        .type = BOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #10 op BOUNDU */
+        .type = BOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #11 op BOUNDA */
+        .type = BOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #12 op NBOUND */
+        .type = NBOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #13 op NBOUNDL */
+        .type = NBOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #14 op NBOUNDU */
+        .type = NBOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #15 op NBOUNDA */
+        .type = NBOUND,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #16 op REG_ANY */
+        .type = REG_ANY,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #17 op SANY */
+        .type = REG_ANY,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #18 op ANYOF */
+        .type = ANYOF,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOF),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #19 op ANYOFD */
+        .type = ANYOF,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFD),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #20 op ANYOFL */
+        .type = ANYOF,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFL),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #21 op ANYOFPOSIXL */
+        .type = ANYOF,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFPOSIXL),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #22 op ANYOFH */
+        .type = ANYOFH,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFH),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #23 op ANYOFHb */
+        .type = ANYOFH,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFHb),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #24 op ANYOFHr */
+        .type = ANYOFH,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFHr),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #25 op ANYOFHs */
+        .type = ANYOFH,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFHs),
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #26 op ANYOFR */
+        .type = ANYOFR,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFR),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #27 op ANYOFRb */
+        .type = ANYOFR,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFRb),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #28 op ANYOFHbbm */
+        .type = ANYOFHbbm,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFHbbm),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #29 op ANYOFM */
+        .type = ANYOFM,
+        .arg_len = EXTRA_SIZE(tregnode_ANYOFM),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #30 op NANYOFM */
+        .type = ANYOFM,
+        .arg_len = EXTRA_SIZE(tregnode_NANYOFM),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #31 op POSIXD */
+        .type = POSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #32 op POSIXL */
+        .type = POSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #33 op POSIXU */
+        .type = POSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #34 op POSIXA */
+        .type = POSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #35 op NPOSIXD */
+        .type = NPOSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #36 op NPOSIXL */
+        .type = NPOSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #37 op NPOSIXU */
+        .type = NPOSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #38 op NPOSIXA */
+        .type = NPOSIXD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #39 op CLUMP */
+        .type = CLUMP,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #40 op BRANCH */
+        .type = BRANCH,
+        .arg_len = EXTRA_SIZE(tregnode_BRANCH),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #41 op EXACT */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #42 op LEXACT */
+        .type = EXACT,
+        .arg_len = EXTRA_SIZE(tregnode_LEXACT),
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #43 op EXACTL */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #44 op EXACTF */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #45 op EXACTFL */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #46 op EXACTFU */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #47 op EXACTFAA */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #48 op EXACTFAA_NO_TRIE */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #49 op EXACTFUP */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #50 op EXACTFLU8 */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #51 op EXACT_REQ8 */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #52 op LEXACT_REQ8 */
+        .type = EXACT,
+        .arg_len = EXTRA_SIZE(tregnode_LEXACT_REQ8),
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #53 op EXACTFU_REQ8 */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #54 op EXACTFU_S_EDGE */
+        .type = EXACT,
+        .arg_len = 0,
+        .arg_len_varies = 1,
+        .off_by_arg = 0
+    },
+    {
+        /* #55 op LNBREAK */
+        .type = LNBREAK,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #56 op TRIE */
+        .type = TRIE,
+        .arg_len = EXTRA_SIZE(tregnode_TRIE),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #57 op TRIEC */
+        .type = TRIE,
+        .arg_len = EXTRA_SIZE(tregnode_TRIEC),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #58 op AHOCORASICK */
+        .type = TRIE,
+        .arg_len = EXTRA_SIZE(tregnode_AHOCORASICK),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #59 op AHOCORASICKC */
+        .type = TRIE,
+        .arg_len = EXTRA_SIZE(tregnode_AHOCORASICKC),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #60 op NOTHING */
+        .type = NOTHING,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #61 op TAIL */
+        .type = NOTHING,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #62 op STAR */
+        .type = STAR,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #63 op PLUS */
+        .type = PLUS,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #64 op CURLY */
+        .type = CURLY,
+        .arg_len = EXTRA_SIZE(tregnode_CURLY),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #65 op CURLYN */
+        .type = CURLY,
+        .arg_len = EXTRA_SIZE(tregnode_CURLYN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #66 op CURLYM */
+        .type = CURLY,
+        .arg_len = EXTRA_SIZE(tregnode_CURLYM),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #67 op CURLYX */
+        .type = CURLY,
+        .arg_len = EXTRA_SIZE(tregnode_CURLYX),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #68 op WHILEM */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #69 op OPEN */
+        .type = OPEN,
+        .arg_len = EXTRA_SIZE(tregnode_OPEN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #70 op CLOSE */
+        .type = CLOSE,
+        .arg_len = EXTRA_SIZE(tregnode_CLOSE),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #71 op SROPEN */
+        .type = SROPEN,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #72 op SRCLOSE */
+        .type = SRCLOSE,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #73 op REF */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REF),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #74 op REFF */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFF),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #75 op REFFL */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFL),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #76 op REFFU */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFU),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #77 op REFFA */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFA),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #78 op REFN */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #79 op REFFN */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #80 op REFFLN */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFLN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #81 op REFFUN */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFUN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #82 op REFFAN */
+        .type = REF,
+        .arg_len = EXTRA_SIZE(tregnode_REFFAN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #83 op LONGJMP */
+        .type = LONGJMP,
+        .arg_len = EXTRA_SIZE(tregnode_LONGJMP),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #84 op BRANCHJ */
+        .type = BRANCHJ,
+        .arg_len = EXTRA_SIZE(tregnode_BRANCHJ),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #85 op IFMATCH */
+        .type = BRANCHJ,
+        .arg_len = EXTRA_SIZE(tregnode_IFMATCH),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #86 op UNLESSM */
+        .type = BRANCHJ,
+        .arg_len = EXTRA_SIZE(tregnode_UNLESSM),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #87 op SUSPEND */
+        .type = BRANCHJ,
+        .arg_len = EXTRA_SIZE(tregnode_SUSPEND),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #88 op IFTHEN */
+        .type = BRANCHJ,
+        .arg_len = EXTRA_SIZE(tregnode_IFTHEN),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #89 op GROUPP */
+        .type = GROUPP,
+        .arg_len = EXTRA_SIZE(tregnode_GROUPP),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #90 op EVAL */
+        .type = EVAL,
+        .arg_len = EXTRA_SIZE(tregnode_EVAL),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #91 op MINMOD */
+        .type = MINMOD,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #92 op LOGICAL */
+        .type = LOGICAL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #93 op RENUM */
+        .type = BRANCHJ,
+        .arg_len = EXTRA_SIZE(tregnode_RENUM),
+        .arg_len_varies = 0,
+        .off_by_arg = 1
+    },
+    {
+        /* #94 op GOSUB */
+        .type = GOSUB,
+        .arg_len = EXTRA_SIZE(tregnode_GOSUB),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #95 op GROUPPN */
+        .type = GROUPPN,
+        .arg_len = EXTRA_SIZE(tregnode_GROUPPN),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #96 op INSUBP */
+        .type = INSUBP,
+        .arg_len = EXTRA_SIZE(tregnode_INSUBP),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #97 op DEFINEP */
+        .type = DEFINEP,
+        .arg_len = EXTRA_SIZE(tregnode_DEFINEP),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #98 op ENDLIKE */
+        .type = ENDLIKE,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #99 op OPFAIL */
+        .type = ENDLIKE,
+        .arg_len = EXTRA_SIZE(tregnode_OPFAIL),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #100 op ACCEPT */
+        .type = ENDLIKE,
+        .arg_len = EXTRA_SIZE(tregnode_ACCEPT),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #101 op VERB */
+        .type = VERB,
+        .arg_len = EXTRA_SIZE(tregnode_VERB),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #102 op PRUNE */
+        .type = VERB,
+        .arg_len = EXTRA_SIZE(tregnode_PRUNE),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #103 op MARKPOINT */
+        .type = VERB,
+        .arg_len = EXTRA_SIZE(tregnode_MARKPOINT),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #104 op SKIP */
+        .type = VERB,
+        .arg_len = EXTRA_SIZE(tregnode_SKIP),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #105 op COMMIT */
+        .type = VERB,
+        .arg_len = EXTRA_SIZE(tregnode_COMMIT),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #106 op CUTGROUP */
+        .type = VERB,
+        .arg_len = EXTRA_SIZE(tregnode_CUTGROUP),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #107 op KEEPS */
+        .type = KEEPS,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #108 op LOOKBEHIND_END */
+        .type = END,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #109 op OPTIMIZED */
+        .type = NOTHING,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #110 op PSEUDO */
+        .type = PSEUDO,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #111 op REGEX_SET */
+        .type = REGEX_SET,
+        .arg_len = EXTRA_SIZE(tregnode_REGEX_SET),
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #112 state TRIE_next */
+        .type = TRIE,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #113 state TRIE_next_fail */
+        .type = TRIE,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #114 state EVAL_B */
+        .type = EVAL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #115 state EVAL_B_fail */
+        .type = EVAL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #116 state EVAL_postponed_AB */
+        .type = EVAL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #117 state EVAL_postponed_AB_fail */
+        .type = EVAL,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #118 state CURLYX_end */
+        .type = CURLYX,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #119 state CURLYX_end_fail */
+        .type = CURLYX,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #120 state WHILEM_A_pre */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #121 state WHILEM_A_pre_fail */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #122 state WHILEM_A_min */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #123 state WHILEM_A_min_fail */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #124 state WHILEM_A_max */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #125 state WHILEM_A_max_fail */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #126 state WHILEM_B_min */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #127 state WHILEM_B_min_fail */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #128 state WHILEM_B_max */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #129 state WHILEM_B_max_fail */
+        .type = WHILEM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #130 state BRANCH_next */
+        .type = BRANCH,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #131 state BRANCH_next_fail */
+        .type = BRANCH,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #132 state CURLYM_A */
+        .type = CURLYM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #133 state CURLYM_A_fail */
+        .type = CURLYM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #134 state CURLYM_B */
+        .type = CURLYM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #135 state CURLYM_B_fail */
+        .type = CURLYM,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #136 state IFMATCH_A */
+        .type = IFMATCH,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #137 state IFMATCH_A_fail */
+        .type = IFMATCH,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #138 state CURLY_B_min */
+        .type = CURLY,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #139 state CURLY_B_min_fail */
+        .type = CURLY,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #140 state CURLY_B_max */
+        .type = CURLY,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #141 state CURLY_B_max_fail */
+        .type = CURLY,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #142 state COMMIT_next */
+        .type = COMMIT,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #143 state COMMIT_next_fail */
+        .type = COMMIT,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #144 state MARKPOINT_next */
+        .type = MARKPOINT,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #145 state MARKPOINT_next_fail */
+        .type = MARKPOINT,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #146 state SKIP_next */
+        .type = SKIP,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #147 state SKIP_next_fail */
+        .type = SKIP,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #148 state CUTGROUP_next */
+        .type = CUTGROUP,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #149 state CUTGROUP_next_fail */
+        .type = CUTGROUP,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #150 state KEEPS_next */
+        .type = KEEPS,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #151 state KEEPS_next_fail */
+        .type = KEEPS,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #152 state REF_next */
+        .type = REF,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    },
+    {
+        /* #153 state REF_next_fail */
+        .type = REF,
+        .arg_len = 0,
+        .arg_len_varies = 0,
+        .off_by_arg = 0
+    }
 };
 #endif /* DOINIT */
 
@@ -2047,24 +2894,26 @@ EXTCONST char * const PL_reg_extflags_na
 EXTCONST char * PL_reg_intflags_name[];
 #else
 EXTCONST char * const PL_reg_intflags_name[] = {
-	"SKIP",                       /* 0x00000001 - PREGf_SKIP */
-	"IMPLICIT",                   /* 0x00000002 - PREGf_IMPLICIT -  Converted .* to ^.*  */
-	"NAUGHTY",                    /* 0x00000004 - PREGf_NAUGHTY -  how exponential is this pattern?  */
-	"VERBARG_SEEN",               /* 0x00000008 - PREGf_VERBARG_SEEN */
-	"CUTGROUP_SEEN",              /* 0x00000010 - PREGf_CUTGROUP_SEEN */
-	"USE_RE_EVAL",                /* 0x00000020 - PREGf_USE_RE_EVAL -  compiled with "use re 'eval'"  */
-	"NOSCAN",                     /* 0x00000040 - PREGf_NOSCAN */
-	"GPOS_SEEN",                  /* 0x00000100 - PREGf_GPOS_SEEN */
-	"GPOS_FLOAT",                 /* 0x00000200 - PREGf_GPOS_FLOAT */
-	"ANCH_MBOL",                  /* 0x00000400 - PREGf_ANCH_MBOL */
-	"ANCH_SBOL",                  /* 0x00000800 - PREGf_ANCH_SBOL */
-	"ANCH_GPOS",                  /* 0x00001000 - PREGf_ANCH_GPOS */
-	"RECURSE_SEEN",               /* 0x00002000 - PREGf_RECURSE_SEEN */
+	"SKIP",                       /* (1<< 0) - 0x00000001 - PREGf_SKIP */
+	"IMPLICIT",                   /* (1<< 1) - 0x00000002 - PREGf_IMPLICIT -  Converted .* to ^.*  */
+	"NAUGHTY",                    /* (1<< 2) - 0x00000004 - PREGf_NAUGHTY -  how exponential is this pattern?  */
+	"VERBARG_SEEN",               /* (1<< 3) - 0x00000008 - PREGf_VERBARG_SEEN */
+	"CUTGROUP_SEEN",              /* (1<< 4) - 0x00000010 - PREGf_CUTGROUP_SEEN */
+	"USE_RE_EVAL",                /* (1<< 5) - 0x00000020 - PREGf_USE_RE_EVAL -  compiled with "use re 'eval'"  */
+	"NOSCAN",                     /* (1<< 6) - 0x00000040 - PREGf_NOSCAN */
+	"",                           /* (1<< 7) - 0x00000080 - *UNUSED* */
+	"GPOS_SEEN",                  /* (1<< 8) - 0x00000100 - PREGf_GPOS_SEEN */
+	"GPOS_FLOAT",                 /* (1<< 9) - 0x00000200 - PREGf_GPOS_FLOAT */
+	"ANCH_MBOL",                  /* (1<<10) - 0x00000400 - PREGf_ANCH_MBOL */
+	"ANCH_SBOL",                  /* (1<<11) - 0x00000800 - PREGf_ANCH_SBOL */
+	"ANCH_GPOS",                  /* (1<<12) - 0x00001000 - PREGf_ANCH_GPOS */
+	"RECURSE_SEEN",               /* (1<<13) - 0x00002000 - PREGf_RECURSE_SEEN */
+	"PESSIMIZE_SEEN",             /* (1<<14) - 0x00004000 - PREGf_PESSIMIZE_SEEN */
 };
 #endif /* DOINIT */
 
 #ifdef DEBUGGING
-#  define REG_INTFLAGS_NAME_SIZE 13
+#  define REG_INTFLAGS_NAME_SIZE 15
 #endif
 
 /* The following have no fixed length. U8 so we can do strchr() on it. */
@@ -2085,7 +2934,7 @@ EXTCONST U8 PL_varies[] __attribute__dep
 EXTCONST U8 PL_varies_bitmask[];
 #else
 EXTCONST U8 PL_varies_bitmask[] = {
-    0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xE0, 0x0F, 0xFF, 0xCB, 0x00, 0x00, 0x00
+    0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x1F, 0xFE, 0x97, 0x01, 0x00, 0x00
 };
 #endif /* DOINIT */
 
@@ -2098,8 +2947,8 @@ EXTCONST U8 PL_simple[] __attribute__dep
 #else
 EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
     REG_ANY, SANY, ANYOF, ANYOFD, ANYOFL, ANYOFPOSIXL, ANYOFH, ANYOFHb,
-    ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFM, NANYOFM, POSIXD, POSIXL,
-    POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET,
+    ANYOFHr, ANYOFHs, ANYOFR, ANYOFRb, ANYOFHbbm, ANYOFM, NANYOFM, POSIXD,
+    POSIXL, POSIXU, POSIXA, NPOSIXD, NPOSIXL, NPOSIXU, NPOSIXA, REGEX_SET,
     0
 };
 #endif /* DOINIT */
@@ -2108,15 +2957,15 @@ EXTCONST U8 PL_simple[] __attribute__dep
 EXTCONST U8 PL_simple_bitmask[];
 #else
 EXTCONST U8 PL_simple_bitmask[] = {
-    0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40
+    0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80
 };
 #endif /* DOINIT */
 
 /* Is 'op', known to be of type EXACT, folding? */
-#define isEXACTFish(op) (__ASSERT_(PL_regkind[op] == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
+#define isEXACTFish(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
 
 /* Do only UTF-8 target strings match 'op', known to be of type EXACT? */
-#define isEXACT_REQ8(op) (__ASSERT_(PL_regkind[op] == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
+#define isEXACT_REQ8(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
 
 #ifndef DOINIT
 EXTCONST U32 PL_EXACTFish_bitmask;
@@ -2128,4 +2977,4 @@ EXTCONST U32 PL_EXACT_REQ8_bitmask = 0x1
 
 #endif /* defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD) */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/sbox32_hash.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/sbox32_hash.h,v
diff -u -p -a -u -p -r1.1.1.2 sbox32_hash.h
--- gnu/usr.bin/perl/sbox32_hash.h	15 Feb 2023 01:31:54 -0000	1.1.1.2
+++ gnu/usr.bin/perl/sbox32_hash.h	21 Feb 2024 15:47:03 -0000
@@ -1409,7 +1409,7 @@ SBOX32_STATIC_INLINE void sbox32_seed_st
     const U8 *seed_ch,
     U8 *state_ch
 ) {
-    U32 *seed= (U32 *)seed_ch;
+    const U32 *seed= (const U32 *)seed_ch;
     U32 *state= (U32 *)state_ch;
     U32 *state_cursor = state + 1;
     U32 *sbox32_end = state + 1 + (256 * SBOX32_MAX_LEN);
@@ -1458,7 +1458,7 @@ SBOX32_STATIC_INLINE U32 sbox32_hash_wit
     const U8 *key,
     const STRLEN key_len
 ) {
-    U32 *state= (U32 *)state_ch;
+    const U32 *state= (const U32 *)state_ch;
     U32 hash = *state;
     switch (key_len) {
         default: return zaphod32_hash_with_state(state_ch, key, key_len);
Index: gnu/usr.bin/perl/scope.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/scope.c,v
diff -u -p -a -u -p -r1.21 scope.c
--- gnu/usr.bin/perl/scope.c	15 Feb 2023 01:36:13 -0000	1.21
+++ gnu/usr.bin/perl/scope.c	21 Feb 2024 15:47:03 -0000
@@ -63,10 +63,10 @@ Perl_stack_grow(pTHX_ SV **sp, SV **p, S
     return PL_stack_sp;
 }
 
-#ifndef STRESS_REALLOC
-#define GROW(old) ((old) * 3 / 2)
-#else
+#ifdef STRESS_REALLOC
 #define GROW(old) ((old) + 1)
+#else
+#define GROW(old) ((old) * 3 / 2)
 #endif
 
 PERL_SI *
@@ -166,25 +166,44 @@ Perl_markstack_grow(pTHX)
 void
 Perl_savestack_grow(pTHX)
 {
-    IV new_max;
-#ifdef STRESS_REALLOC
-    new_max = PL_savestack_max + SS_MAXPUSH;
-#else
-    new_max = GROW(PL_savestack_max);
-#endif
-    /* Note that we allocate SS_MAXPUSH slots higher than ss_max
-     * so that SS_ADD_END(), SSGROW() etc can do a simper check */
-    Renew(PL_savestack, new_max + SS_MAXPUSH, ANY);
-    PL_savestack_max = new_max;
+    const I32 by = PL_savestack_max - PL_savestack_ix;
+    Perl_savestack_grow_cnt(aTHX_ by);
 }
 
 void
 Perl_savestack_grow_cnt(pTHX_ I32 need)
 {
-    const IV new_max = PL_savestack_ix + need;
-    /* Note that we allocate SS_MAXPUSH slots higher than ss_max
-     * so that SS_ADD_END(), SSGROW() etc can do a simper check */
-    Renew(PL_savestack, new_max + SS_MAXPUSH, ANY);
+    /* NOTE: PL_savestack_max and PL_savestack_ix are I32.
+     *
+     * This makes sense when you consider that having I32_MAX items on
+     * the stack would be quite large.
+     *
+     * However, we use IV here so that we can detect if the new requested
+     * amount is larger than I32_MAX.
+     */
+    const IV new_floor = PL_savestack_max + need; /* what we need */
+    /* the GROW() macro normally does scales by 1.5 but under
+     * STRESS_REALLOC it simply adds 1 */
+    IV new_max         = GROW(new_floor); /* and some extra */
+
+    /* the new_max < PL_savestack_max is for cases where IV is I32
+     * and we have rolled over from I32_MAX to a small value */
+    if (new_max > I32_MAX || new_max < PL_savestack_max) {
+        if (new_floor > I32_MAX || new_floor < PL_savestack_max) {
+            Perl_croak(aTHX_ "panic: savestack overflows I32_MAX");
+        }
+        new_max = new_floor;
+    }
+
+    /* Note that we add an additional SS_MAXPUSH slots on top of
+     * PL_savestack_max so that SS_ADD_END(), SSGROW() etc can do
+     * a simper check and if necessary realloc *after* apparently
+     * overwriting the current PL_savestack_max. See scope.h.
+     *
+     * The +1 is because new_max/PL_savestack_max is the highest
+     * index, by Renew needs the number of items, which is one
+     * larger than the highest index. */
+    Renew(PL_savestack, new_max + SS_MAXPUSH + 1, ANY);
     PL_savestack_max = new_max;
 }
 
@@ -238,6 +257,27 @@ Perl_free_tmps(pTHX)
     }
 }
 
+/*
+=for apidoc save_scalar_at
+
+A helper function for localizing the SV referenced by C<*sptr>.
+
+If C<SAVEf_KEEPOLDELEM> is set in in C<flags>, the function returns the input
+scalar untouched.
+
+Otherwise it replaces C<*sptr> with a new C<undef> scalar, and returns that.
+The new scalar will have the old one's magic (if any) copied to it.
+If there is such magic, and C<SAVEf_SETMAGIC> is set in in C<flags>, 'set'
+magic will be processed on the new scalar.  If unset, 'set' magic will be
+skipped.  The latter typically means that assignment will soon follow (I<e.g.>,
+S<C<'local $x = $y'>>), and that will handle the magic.
+
+=for apidoc Amnh ||SAVEf_KEEPOLDELEM
+=for apidoc Amnh ||SAVEf_SETMAGIC
+
+=cut
+*/
+
 STATIC SV *
 S_save_scalar_at(pTHX_ SV **sptr, const U32 flags)
 {
@@ -303,6 +343,43 @@ Perl_save_generic_svref(pTHX_ SV **sptr)
     save_pushptrptr(sptr, SvREFCNT_inc(*sptr), SAVEt_GENERIC_SVREF);
 }
 
+
+/*
+=for apidoc save_rcpv
+
+Implements C<SAVERCPV>.
+
+Saves and restores a refcounted string, similar to what
+save_generic_svref would do for a SV*. Can be used to restore
+a refcounted string to its previous state. Performs the 
+appropriate refcount counting so that nothing should leak
+or be prematurely freed.
+
+=cut
+ */
+void
+Perl_save_rcpv(pTHX_ char **prcpv) {
+    PERL_ARGS_ASSERT_SAVE_RCPV;
+    save_pushptrptr(prcpv, rcpv_copy(*prcpv), SAVEt_RCPV);
+}
+
+/*
+=for apidoc save_freercpv
+
+Implements C<SAVEFREERCPV>.
+
+Saves and frees a refcounted string. Calls rcpv_free()
+on the argument when the current pseudo block is finished.
+
+=cut
+ */
+void
+Perl_save_freercpv(pTHX_ char *rcpv) {
+    PERL_ARGS_ASSERT_SAVE_FREERCPV;
+    save_pushptr(rcpv, SAVEt_FREERCPV);
+}
+
+
 /*
 =for apidoc_section $callback
 =for apidoc save_generic_pvref
@@ -410,7 +487,7 @@ Perl_save_gp(pTHX_ GV *gv, I32 empty)
         HV * const stash = GvSTASH(gv);
         bool isa_changed = 0;
 
-        if (stash && HvENAME(stash)) {
+        if (stash && HvHasENAME(stash)) {
             if (memEQs(GvNAME(gv), GvNAMELEN(gv), "ISA"))
                 isa_changed = TRUE;
             else if (GvCVu(gv))
@@ -592,7 +669,7 @@ Perl_save_iv(pTHX_ IV *ivp)
 {
     PERL_ARGS_ASSERT_SAVE_IV;
 
-    SSCHECK(3);
+    SSGROW(3);
     SSPUSHIV(*ivp);
     SSPUSHPTR(ivp);
     SSPUSHUV(SAVEt_IV);
@@ -672,6 +749,20 @@ Perl_save_aptr(pTHX_ AV **aptr)
     save_pushptrptr(*aptr, aptr, SAVEt_APTR);
 }
 
+/*
+=for apidoc_section $callback
+=for apidoc save_pushptr
+
+The refcnt of object C<ptr> will be decremented at the end of the current
+I<pseudo-block>.  C<type> gives the type of C<ptr>, expressed as one of the
+constants in F<scope.h> whose name begins with C<SAVEt_>.
+
+This is the underlying implementation of several macros, like
+C<SAVEFREESV>.
+
+=cut
+*/
+
 void
 Perl_save_pushptr(pTHX_ void *const ptr, const int type)
 {
@@ -690,6 +781,7 @@ Perl_save_clearsv(pTHX_ SV **svp)
     PERL_ARGS_ASSERT_SAVE_CLEARSV;
 
     ASSERT_CURPAD_ACTIVE("save_clearsv");
+    assert(*svp);
     SvPADSTALE_off(*svp); /* mark lexical as active */
     if (UNLIKELY((offset_shifted >> SAVE_TIGHT_SHIFT) != offset)) {
         Perl_croak(aTHX_ "panic: pad offset %" UVuf " out of range (%p-%p)",
@@ -824,6 +916,28 @@ S_save_pushptri32ptr(pTHX_ void *const p
     SS_ADD_END(4);
 }
 
+/*
+=for apidoc_section $callback
+=for apidoc      save_aelem
+=for apidoc_item save_aelem_flags
+
+These each arrange for the value of the array element C<av[idx]> to be restored
+at the end of the enclosing I<pseudo-block>.
+
+In C<save_aelem>, the SV at C**sptr> will be replaced by a new C<undef>
+scalar.  That scalar will inherit any magic from the original C<**sptr>,
+and any 'set' magic will be processed.
+
+In C<save_aelem_flags>, C<SAVEf_KEEPOLDELEM> being set in C<flags> causes
+the function to forgo all that:  the scalar at C<**sptr> is untouched.
+If C<SAVEf_KEEPOLDELEM> is not set, the SV at C**sptr> will be replaced by a
+new C<undef> scalar.  That scalar will inherit any magic from the original
+C<**sptr>.  Any 'set' magic will be processed if and only if C<SAVEf_SETMAGIC>
+is set in in C<flags>.
+
+=cut
+*/
+
 void
 Perl_save_aelem_flags(pTHX_ AV *av, SSize_t idx, SV **sptr,
                             const U32 flags)
@@ -855,6 +969,28 @@ Perl_save_aelem_flags(pTHX_ AV *av, SSiz
         sv_2mortal(sv);
 }
 
+/*
+=for apidoc_section $callback
+=for apidoc      save_helem
+=for apidoc_item save_helem_flags
+
+These each arrange for the value of the hash element (in Perlish terms)
+C<$hv{key}]> to be restored at the end of the enclosing I<pseudo-block>.
+
+In C<save_helem>, the SV at C**sptr> will be replaced by a new C<undef>
+scalar.  That scalar will inherit any magic from the original C<**sptr>,
+and any 'set' magic will be processed.
+
+In C<save_helem_flags>, C<SAVEf_KEEPOLDELEM> being set in C<flags> causes
+the function to forgo all that:  the scalar at C<**sptr> is untouched.
+If C<SAVEf_KEEPOLDELEM> is not set, the SV at C**sptr> will be replaced by a
+new C<undef> scalar.  That scalar will inherit any magic from the original
+C<**sptr>.  Any 'set' magic will be processed if and only if C<SAVEf_SETMAGIC>
+is set in in C<flags>.
+
+=cut
+*/
+
 void
 Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const U32 flags)
 {
@@ -914,10 +1050,10 @@ function.
 =cut
 */
 
-I32
-Perl_save_alloc(pTHX_ I32 size, I32 pad)
+SSize_t
+Perl_save_alloc(pTHX_ SSize_t size, I32 pad)
 {
-    const I32 start = pad + ((char*)&PL_savestack[PL_savestack_ix]
+    const SSize_t start = pad + ((char*)&PL_savestack[PL_savestack_ix]
                           - (char*)PL_savestack);
     const UV elems = 1 + ((size + pad - 1) / sizeof(*PL_savestack));
     const UV elems_shifted = elems << SAVE_TIGHT_SHIFT;
@@ -935,65 +1071,6 @@ Perl_save_alloc(pTHX_ I32 size, I32 pad)
 }
 
 
-static const U8 arg_counts[] = {
-    0, /* SAVEt_ALLOC              */
-    0, /* SAVEt_CLEARPADRANGE      */
-    0, /* SAVEt_CLEARSV            */
-    0, /* SAVEt_REGCONTEXT         */
-    1, /* SAVEt_TMPSFLOOR          */
-    1, /* SAVEt_BOOL               */
-    1, /* SAVEt_COMPILE_WARNINGS   */
-    1, /* SAVEt_COMPPAD            */
-    1, /* SAVEt_FREECOPHH          */
-    1, /* SAVEt_FREEOP             */
-    1, /* SAVEt_FREEPV             */
-    1, /* SAVEt_FREESV             */
-    1, /* SAVEt_I16                */
-    1, /* SAVEt_I32_SMALL          */
-    1, /* SAVEt_I8                 */
-    1, /* SAVEt_INT_SMALL          */
-    1, /* SAVEt_MORTALIZESV        */
-    1, /* SAVEt_NSTAB              */
-    1, /* SAVEt_OP                 */
-    1, /* SAVEt_PARSER             */
-    1, /* SAVEt_STACK_POS          */
-    1, /* SAVEt_READONLY_OFF       */
-    1, /* SAVEt_FREEPADNAME        */
-    1, /* SAVEt_STRLEN_SMALL       */
-    2, /* SAVEt_AV                 */
-    2, /* SAVEt_DESTRUCTOR         */
-    2, /* SAVEt_DESTRUCTOR_X       */
-    2, /* SAVEt_GENERIC_PVREF      */
-    2, /* SAVEt_GENERIC_SVREF      */
-    2, /* SAVEt_GP                 */
-    2, /* SAVEt_GVSV               */
-    2, /* SAVEt_HINTS              */
-    2, /* SAVEt_HPTR               */
-    2, /* SAVEt_HV                 */
-    2, /* SAVEt_I32                */
-    2, /* SAVEt_INT                */
-    2, /* SAVEt_ITEM               */
-    2, /* SAVEt_IV                 */
-    2, /* SAVEt_LONG               */
-    2, /* SAVEt_PPTR               */
-    2, /* SAVEt_SAVESWITCHSTACK    */
-    2, /* SAVEt_SHARED_PVREF       */
-    2, /* SAVEt_SPTR               */
-    2, /* SAVEt_STRLEN             */
-    2, /* SAVEt_SV                 */
-    2, /* SAVEt_SVREF              */
-    2, /* SAVEt_VPTR               */
-    2, /* SAVEt_ADELETE            */
-    2, /* SAVEt_APTR               */
-    3, /* SAVEt_HELEM              */
-    3, /* SAVEt_PADSV_AND_MORTALIZE*/
-    3, /* SAVEt_SET_SVFLAGS        */
-    3, /* SAVEt_GVSLOT             */
-    3, /* SAVEt_AELEM              */
-    3, /* SAVEt_DELETE             */
-    3  /* SAVEt_HINTS_HH           */
-};
-
 
 /*
 =for apidoc_section $callback
@@ -1029,7 +1106,7 @@ Perl_leave_scope(pTHX_ I32 base)
             ap = &PL_savestack[ix];
             uv = ap->any_uv;
             type = (U8)uv & SAVE_MASK;
-            argcount = arg_counts[type];
+            argcount = leave_scope_arg_counts[type];
             PL_savestack_ix = ix - argcount;
             ap -= argcount;
         }
@@ -1102,6 +1179,7 @@ Perl_leave_scope(pTHX_ I32 base)
             a0.any_svp = &GvSV(a0.any_gv);
             goto restore_svp;
 
+
         case SAVEt_GENERIC_SVREF:		/* generic sv */
             a0 = ap[0]; a1 = ap[1];
         restore_svp:
@@ -1114,12 +1192,30 @@ Perl_leave_scope(pTHX_ I32 base)
             break;
         }
 
+        case SAVEt_RCPV:           /* like generic sv, but for struct rcpv */
+        {
+            a0 = ap[0]; a1 = ap[1];
+            char *old = *a0.any_pvp;
+            *a0.any_pvp = a1.any_pv;
+            (void)rcpv_free(old);
+            (void)rcpv_free(a1.any_pv);
+            break;
+        }
+
+        case SAVEt_FREERCPV:           /* like SAVEt_FREEPV but for a RCPV */
+        {
+            a0 = ap[0];
+            char *rcpv = a0.any_pv;
+            (void)rcpv_free(rcpv);
+            break;
+        }
+
         case SAVEt_GVSLOT:			/* any slot in GV */
         {
             HV * hv;
             a0 = ap[0]; a1 = ap[1]; a2 = ap[2];
             hv = GvSTASH(a0.any_gv);
-            if (hv && HvENAME(hv) && (
+            if (hv && HvHasENAME(hv) && (
                     (a2.any_sv && SvTYPE(a2.any_sv) == SVt_PVCV)
                  || (*a1.any_svp && SvTYPE(*a1.any_svp) == SVt_PVCV)
                ))
@@ -1231,10 +1327,10 @@ Perl_leave_scope(pTHX_ I32 base)
 
             a0 = ap[0]; a1 = ap[1];
             /* possibly taking a method out of circulation */	
-            had_method = !!GvCVu(a0.any_gv);
+            had_method = cBOOL(GvCVu(a0.any_gv));
             gp_free(a0.any_gv);
             GvGP_set(a0.any_gv, (GP*)a1.any_ptr);
-            if ((hv=GvSTASH(a0.any_gv)) && HvENAME_get(hv)) {
+            if ((hv=GvSTASH(a0.any_gv)) && HvHasENAME(hv)) {
                 if (memEQs(GvNAME(a0.any_gv), GvNAMELEN(a0.any_gv), "ISA"))
                     mro_isa_changed_in(hv);
                 else if (had_method || GvCVu(a0.any_gv))
@@ -1317,12 +1413,10 @@ Perl_leave_scope(pTHX_ I32 base)
                         if (SvREADONLY(sv))
                             SvREADONLY_off(sv);
 
-                        if (SvOOK(sv)) { /* OOK or HvAUX */
-                            if (SvTYPE(sv) == SVt_PVHV)
-                                Perl_hv_kill_backrefs(aTHX_ MUTABLE_HV(sv));
-                            else
-                                sv_backoff(sv);
-                        }
+                        if (SvTYPE(sv) == SVt_PVHV && HvHasAUX(sv))
+                            Perl_hv_kill_backrefs(aTHX_ MUTABLE_HV(sv));
+                        else if(SvOOK(sv))
+                            sv_backoff(sv);
 
                         if (SvMAGICAL(sv)) {
                             /* note that backrefs (either in HvAUX or magic)
@@ -1589,8 +1683,19 @@ Perl_leave_scope(pTHX_ I32 base)
             break;
 
         case SAVEt_COMPILE_WARNINGS:
+            /* NOTE: we can't put &PL_compiling or PL_curcop on the save
+             *       stack directly, as we currently cannot translate
+             *       them to the correct addresses after a thread start
+             *       or win32 fork start. - Yves
+             */
             a0 = ap[0];
-        free_and_set_cop_warnings(&PL_compiling, (STRLEN*) a0.any_ptr);
+            free_and_set_cop_warnings(&PL_compiling, a0.any_pv);
+            break;
+
+        case SAVEt_CURCOP_WARNINGS:
+            /* NOTE: see comment above about SAVEt_COMPILE_WARNINGS */
+            a0 = ap[0];
+            free_and_set_cop_warnings(PL_curcop, a0.any_pv);
             break;
 
         case SAVEt_PARSER:
@@ -1740,6 +1845,145 @@ Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
     PERL_UNUSED_ARG(cx);
 #endif	/* DEBUGGING */
 }
+
+/*
+=for apidoc_section $callback
+=for apidoc mortal_destructor_sv
+
+This function arranges for either a Perl code reference, or a C function
+reference to be called at the B<end of the current statement>.
+
+The C<coderef> argument determines the type of function that will be
+called. If it is C<SvROK()> it is assumed to be a reference to a CV and
+will arrange for the coderef to be called. If it is not SvROK() then it
+is assumed to be a C<SvIV()> which is C<SvIOK()> whose value is a pointer
+to a C function of type C<DESTRUCTORFUNC_t> created using C<PTR2INT()>.
+Either way the C<args> parameter will be provided to the callback as a
+parameter, although the rules for doing so differ between the Perl and
+C mode. Normally this function is only used directly for the Perl case
+and the wrapper C<mortal_destructor_x()> is used for the C function case.
+
+When operating in Perl callback mode the C<args> parameter may be NULL
+in which case the code reference is called with no arguments, otherwise
+if it is an AV (SvTYPE(args) == SVt_PVAV) then the contents of the AV
+will be used as the arguments to the code reference, and if it is any
+other type then the C<args> SV will be provided as a single argument to
+the code reference.
+
+When operating in a C callback mode the C<args> parameter will be passed
+directly to the C function as a C<void *> pointer. No additional
+processing of the argument will be peformed, and it is the callers
+responsibility to free the C<args> parameter if necessary.
+
+Be aware that there is a signficant difference in timing between the
+I<end of the current statement> and the I<end of the current pseudo
+block>. If you are looking for a mechanism to trigger a function at the
+end of the B<current pseudo block> you should look at
+C<SAVEDESTRUCTORX()> instead of this function.
+
+=for apidoc mortal_svfunc_x
+
+This function arranges for a C function reference to be called at the
+B<end of the current statement> with the arguments provided. It is a
+wrapper around C<mortal_destructor_sv()> which ensures that the latter
+function is called appropriately.
+
+Be aware that there is a signficant difference in timing between the
+I<end of the current statement> and the I<end of the current pseudo
+block>. If you are looking for a mechanism to trigger a function at the
+end of the B<current pseudo block> you should look at
+C<SAVEDESTRUCTORX()> instead of this function.
+
+=for apidoc magic_freedestruct
+
+This function is called via magic to implement the
+C<mortal_destructor_sv()> and C<mortal_destructor_x()> functions. It
+should not be called directly and has no user servicable parts.
+
+=cut
+*/
+
+void
+Perl_mortal_destructor_sv(pTHX_ SV *coderef, SV *args) {
+    PERL_ARGS_ASSERT_MORTAL_DESTRUCTOR_SV;
+    assert(
+        (SvROK(coderef) && SvTYPE(SvRV(coderef)) == SVt_PVCV) /* perl coderef */
+         ||
+        (SvIOK(coderef) && !SvROK(coderef))                  /* C function ref */
+    );
+    SV *variable = newSV_type_mortal(SVt_IV);
+    (void)sv_magicext(variable, coderef, PERL_MAGIC_destruct,
+                      &PL_vtbl_destruct, (char *)args, args ? HEf_SVKEY : 0);
+}
+
+
+void
+Perl_mortal_svfunc_x(pTHX_ SVFUNC_t f, SV *sv) {
+    PERL_ARGS_ASSERT_MORTAL_SVFUNC_X;
+    SV *sviv = newSViv(PTR2IV(f));
+    mortal_destructor_sv(sviv,sv);
+}
+
+
+int
+Perl_magic_freedestruct(pTHX_ SV* sv, MAGIC* mg) {
+    PERL_ARGS_ASSERT_MAGIC_FREEDESTRUCT;
+    dSP;
+    union {
+        SV   *sv;
+        AV   *av;
+        char *pv;
+    } args_any;
+    SV *coderef;
+
+    IV nargs = 0;
+    if (PL_phase == PERL_PHASE_DESTRUCT) {
+        Perl_warn(aTHX_ "Can't call destructor for 0x%p in global destruction\n", sv);
+        return 1;
+    }
+
+    args_any.pv = mg->mg_ptr;
+    coderef = mg->mg_obj;
+
+    /* Deal with C function destructor */
+    if (SvTYPE(coderef) == SVt_IV && !SvROK(coderef)) {
+        SVFUNC_t f = INT2PTR(SVFUNC_t, SvIV(coderef));
+        (f)(aTHX_ args_any.sv);
+        return 0;
+    }
+
+    if (args_any.sv) {
+        if (SvTYPE(args_any.sv) == SVt_PVAV) {
+            nargs = av_len(args_any.av) + 1;
+        } else {
+            nargs = 1;
+        }
+    }
+    PUSHSTACKi(PERLSI_MAGIC);
+    ENTER_with_name("call_freedestruct");
+    SAVETMPS;
+    EXTEND(SP, nargs);
+    PUSHMARK(SP);
+    if (args_any.sv) {
+        if (SvTYPE(args_any.sv) == SVt_PVAV) {
+            IV n;
+            for (n = 0 ; n < nargs ; n++ ) {
+                SV **argp = av_fetch(args_any.av, n, 0);
+                if (argp && *argp)
+                    PUSHs(*argp);
+            }
+        } else {
+            PUSHs(args_any.sv);
+        }
+    }
+    PUTBACK;
+    (void)call_sv(coderef, G_VOID | G_EVAL | G_KEEPERR);
+    FREETMPS;
+    LEAVE_with_name("call_freedestruct");
+    POPSTACK;
+    return 0;
+}
+
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/scope.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/scope.h,v
diff -u -p -a -u -p -r1.20 scope.h
--- gnu/usr.bin/perl/scope.h	15 Feb 2023 01:36:13 -0000	1.20
+++ gnu/usr.bin/perl/scope.h	21 Feb 2024 15:47:03 -0000
@@ -8,76 +8,7 @@
  *
  */
 
-/* *** Update arg_counts[] in scope.c if you modify these */
-
-/* zero args */
-
-#define SAVEt_ALLOC		0
-#define SAVEt_CLEARPADRANGE	1
-#define SAVEt_CLEARSV		2
-#define SAVEt_REGCONTEXT	3
-
-/* one arg */
-
-#define SAVEt_TMPSFLOOR		4
-#define SAVEt_BOOL		5
-#define SAVEt_COMPILE_WARNINGS	6
-#define SAVEt_COMPPAD		7
-#define SAVEt_FREECOPHH		8
-#define SAVEt_FREEOP		9
-#define SAVEt_FREEPV		10
-#define SAVEt_FREESV		11
-#define SAVEt_I16		12
-#define SAVEt_I32_SMALL		13
-#define SAVEt_I8		14
-#define SAVEt_INT_SMALL		15
-#define SAVEt_MORTALIZESV	16
-#define SAVEt_NSTAB		17
-#define SAVEt_OP		18
-#define SAVEt_PARSER		19
-#define SAVEt_STACK_POS		20
-#define SAVEt_READONLY_OFF	21
-#define SAVEt_FREEPADNAME	22
-#define SAVEt_STRLEN_SMALL      23
-
-/* two args */
-
-#define SAVEt_AV		24
-#define SAVEt_DESTRUCTOR	25
-#define SAVEt_DESTRUCTOR_X	26
-#define SAVEt_GENERIC_PVREF	27
-#define SAVEt_GENERIC_SVREF	28
-#define SAVEt_GP		29
-#define SAVEt_GVSV		30
-#define SAVEt_HINTS		31
-#define SAVEt_HPTR		32
-#define SAVEt_HV		33
-#define SAVEt_I32		34
-#define SAVEt_INT		35
-#define SAVEt_ITEM		36
-#define SAVEt_IV		37
-#define SAVEt_LONG		38
-#define SAVEt_PPTR		39
-#define SAVEt_SAVESWITCHSTACK	40
-#define SAVEt_SHARED_PVREF	41
-#define SAVEt_SPTR		42
-#define SAVEt_STRLEN		43
-#define SAVEt_SV		44
-#define SAVEt_SVREF		45
-#define SAVEt_VPTR		46
-#define SAVEt_ADELETE		47
-#define SAVEt_APTR		48
-
-/* three args */
-
-#define SAVEt_HELEM		49
-#define SAVEt_PADSV_AND_MORTALIZE 50
-#define SAVEt_SET_SVFLAGS	51
-#define SAVEt_GVSLOT		52
-#define SAVEt_AELEM		53
-#define SAVEt_DELETE		54
-#define SAVEt_HINTS_HH		55
-
+#include "scope_types.h"
 
 #define SAVEf_SETMAGIC		1
 #define SAVEf_KEEPOLDELEM	2
@@ -96,8 +27,8 @@
  * macros */
 #define SS_MAXPUSH 4
 
-#define SSCHECK(need) if (UNLIKELY(PL_savestack_ix + (I32)(need) > PL_savestack_max)) savestack_grow()
 #define SSGROW(need) if (UNLIKELY(PL_savestack_ix + (I32)(need) > PL_savestack_max)) savestack_grow_cnt(need)
+#define SSCHECK(need) SSGROW(need) /* legacy */
 #define SSPUSHINT(i) (PL_savestack[PL_savestack_ix++].any_i32 = (I32)(i))
 #define SSPUSHLONG(i) (PL_savestack[PL_savestack_ix++].any_long = (long)(i))
 #define SSPUSHBOOL(p) (PL_savestack[PL_savestack_ix++].any_bool = (p))
@@ -116,7 +47,7 @@
  * like save_pushptrptr() to half its former size.
  * Of course, doing the size check *after* pushing means we must always
  * ensure there are SS_MAXPUSH free slots on the savestack. This is ensured by
- * savestack_grow() and savestack_grow_cnt always allocating SS_MAXPUSH slots
+ * savestack_grow_cnt always allocating SS_MAXPUSH slots
  * more than asked for, or that it sets PL_savestack_max to
  *
  * These are for internal core use only and are subject to change */
@@ -130,7 +61,7 @@
     ix += (need);                                               \
     PL_savestack_ix = ix;                                       \
     assert(ix <= PL_savestack_max + SS_MAXPUSH);                \
-    if (UNLIKELY(ix > PL_savestack_max)) savestack_grow();      \
+    if (UNLIKELY(ix > PL_savestack_max)) savestack_grow_cnt(ix - PL_savestack_max);      \
     assert(PL_savestack_ix <= PL_savestack_max);
 
 #define SS_ADD_INT(i)   ((ssp++)->any_i32 = (I32)(i))
@@ -155,26 +86,26 @@
 /*
 =for apidoc_section $callback
 
-=for apidoc Amns||SAVETMPS
+=for apidoc Amn;||SAVETMPS
 Opening bracket for temporaries on a callback.  See C<L</FREETMPS>> and
 L<perlcall>.
 
-=for apidoc Amns||FREETMPS
+=for apidoc Amn;||FREETMPS
 Closing bracket for temporaries on a callback.  See C<L</SAVETMPS>> and
 L<perlcall>.
 
-=for apidoc Amns||ENTER
+=for apidoc Amn;||ENTER
 Opening bracket on a callback.  See C<L</LEAVE>> and L<perlcall>.
 
-=for apidoc Amns||LEAVE
+=for apidoc Amn;||LEAVE
 Closing bracket on a callback.  See C<L</ENTER>> and L<perlcall>.
 
-=for apidoc Ams||ENTER_with_name|"name"
+=for apidoc Am;||ENTER_with_name|"name"
 
 Same as C<L</ENTER>>, but when debugging is enabled it also associates the
 given literal string with the new scope.
 
-=for apidoc Ams||LEAVE_with_name|"name"
+=for apidoc Am;||LEAVE_with_name|"name"
 
 Same as C<L</LEAVE>>, but when debugging is enabled it first checks that the
 scope has the given name. C<name> must be a literal string.
@@ -246,6 +177,8 @@ scope has the given name. C<name> must b
 #define SAVECLEARSV(sv)             save_clearsv((SV**)&(sv))
 #define SAVEGENERICSV(s)            save_generic_svref((SV**)&(s))
 #define SAVEGENERICPV(s)            save_generic_pvref((char**)&(s))
+#define SAVERCPV(s)                 save_rcpv((char**)&(s))
+#define SAVEFREERCPV(s)             save_freercpv(s)
 #define SAVESHAREDPV(s)             save_shared_pvref((char**)&(s))
 #define SAVESETSVFLAGS(sv,mask,val) save_set_svflags(sv,mask,val)
 #define SAVEFREECOPHH(h)            save_pushptr((void *)(h), SAVEt_FREECOPHH)
@@ -262,6 +195,12 @@ scope has the given name. C<name> must b
 #define SAVEDESTRUCTOR_X(f,p) \
           save_destructor_x((DESTRUCTORFUNC_t)(f), (void*)(p))
 
+#define MORTALSVFUNC_X(f,sv) \
+          mortal_svfunc_x((SVFUNC_t)(f), sv)
+
+#define MORTALDESTRUCTOR_SV(coderef,args) \
+          mortal_destructor_sv(coderef,args)
+
 #define SAVESTACK_POS() \
     STMT_START {				   \
         dSS_ADD;                                   \
@@ -283,19 +222,28 @@ scope has the given name. C<name> must b
         PL_curstackinfo->si_stack = (t);		\
     } STMT_END
 
-/* Need to do the cop warnings like this, rather than a "SAVEFREESHAREDPV",
-   because realloc() means that the value can actually change. Possibly
-   could have done savefreesharedpvREF, but this way actually seems cleaner,
-   as it simplifies the code that does the saves, and reduces the load on the
-   save stack.  */
+/* Note these are special, we can't just use a save_pushptrptr() on them
+ * as the target might change after a fork or thread start. */
 #define SAVECOMPILEWARNINGS() save_pushptr(PL_compiling.cop_warnings, SAVEt_COMPILE_WARNINGS)
+#define SAVECURCOPWARNINGS()  save_pushptr(PL_curcop->cop_warnings, SAVEt_CURCOP_WARNINGS)
+
 
 #define SAVEPARSER(p) save_pushptr((p), SAVEt_PARSER)
 
 #ifdef USE_ITHREADS
 #  define SAVECOPSTASH_FREE(c)	SAVEIV((c)->cop_stashoff)
-#  define SAVECOPFILE(c)	SAVEPPTR(CopFILE(c))
-#  define SAVECOPFILE_FREE(c)	SAVESHAREDPV(CopFILE(c))
+#  define SAVECOPFILE_x(c)      SAVEPPTR((c)->cop_file)
+#  define SAVECOPFILE(c)                \
+    STMT_START {                        \
+        SAVECOPFILE_x(c);               \
+        CopFILE_debug((c),"SAVECOPFILE",0);   \
+    } STMT_END
+#  define SAVECOPFILE_FREE_x(c) SAVERCPV((c)->cop_file)
+#  define SAVECOPFILE_FREE(c)           \
+    STMT_START {                        \
+        SAVECOPFILE_FREE_x(c);          \
+        CopFILE_debug((c),"SAVECOPFILE_FREE",0);   \
+    } STMT_END
 #else
 #  /* XXX not refcounted */
 #  define SAVECOPSTASH_FREE(c)	SAVESPTR(CopSTASH(c))
@@ -307,12 +255,12 @@ scope has the given name. C<name> must b
 
 /*
 =for apidoc_section $stack
-=for apidoc    Am|I32|SSNEW  |Size_t size
-=for apidoc_item |   |SSNEWa |Size_t_size|Size_t align
-=for apidoc_item |   |SSNEWt |Size_t size|type
-=for apidoc_item |   |SSNEWat|Size_t_size|type|Size_t align
+=for apidoc    Am|SSize_t|SSNEW  |Size_t size
+=for apidoc_item |       |SSNEWa |Size_t_size|Size_t align
+=for apidoc_item |       |SSNEWat|Size_t_size|type|Size_t align
+=for apidoc_item |       |SSNEWt |Size_t size|type
 
-These temporarily allocates data on the savestack, returning an I32 index into
+These temporarily allocates data on the savestack, returning an SSize_t index into
 the savestack, because a pointer would get broken if the savestack is moved on
 reallocation.  Use L</C<SSPTR>> to convert the returned index into a pointer.
 
@@ -325,8 +273,8 @@ L</C<MEM_ALIGNBYTES>>.  The alignment wi
 reallocation B<only> if realloc returns data aligned to a size divisible by
 "align"!
 
-=for apidoc   Am|type  |SSPTR |I32 index|type
-=for apidoc_item|type *|SSPTRt|I32 index|type
+=for apidoc   Am|type  |SSPTR |SSize_t index|type
+=for apidoc_item|type *|SSPTRt|SSize_t index|type
 
 These convert the C<index> returned by L/<C<SSNEW>> and kin into actual pointers.
 
@@ -342,8 +290,8 @@ casts it to a pointer of that C<type>.
     (I32)(align - ((size_t)((caddr_t)&PL_savestack[PL_savestack_ix]) % align)) % align)
 #define SSNEWat(n,t,align)	SSNEWa((n)*sizeof(t), align)
 
-#define SSPTR(off,type)         ((type)  ((char*)PL_savestack + off))
-#define SSPTRt(off,type)        ((type*) ((char*)PL_savestack + off))
+#define SSPTR(off,type)         (assert(sizeof(off) >= sizeof(SSize_t)), (type)  ((char*)PL_savestack + off))
+#define SSPTRt(off,type)        (assert(sizeof(off) >= sizeof(SSize_t)), (type*) ((char*)PL_savestack + off))
 
 #define save_freesv(op)		save_pushptr((void *)(op), SAVEt_FREESV)
 #define save_mortalizesv(op)	save_pushptr((void *)(op), SAVEt_MORTALIZESV)
Index: gnu/usr.bin/perl/scope_types.h
===================================================================
RCS file: gnu/usr.bin/perl/scope_types.h
diff -N gnu/usr.bin/perl/scope_types.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/scope_types.h	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,151 @@
+/* -*- mode: C; buffer-read-only: t -*-
+
+      Copyright (C) 2022 by Larry Wall and others
+
+      You may distribute under the terms of either the GNU General Public
+      License or the Artistic License, as specified in the README file.
+
+   !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+   This file is built by regen/scope_types.pl.
+   Any changes made here will be lost!
+   The defines and contents of the leave_scope_arg_counts[] array
+   must match. To add a new type modify the __DATA__ section in
+   regen/scope_types.pl and run `make regen` to rebuild the file.
+ */
+
+/* zero args */
+
+#define SAVEt_ALLOC                0
+#define SAVEt_CLEARPADRANGE        1
+#define SAVEt_CLEARSV              2
+#define SAVEt_REGCONTEXT           3
+
+/* one arg */
+
+#define SAVEt_TMPSFLOOR            4
+#define SAVEt_BOOL                 5
+#define SAVEt_COMPILE_WARNINGS     6
+#define SAVEt_CURCOP_WARNINGS      7
+#define SAVEt_COMPPAD              8
+#define SAVEt_FREECOPHH            9
+#define SAVEt_FREEOP              10
+#define SAVEt_FREEPV              11
+#define SAVEt_FREESV              12
+#define SAVEt_I16                 13
+#define SAVEt_I32_SMALL           14
+#define SAVEt_I8                  15
+#define SAVEt_INT_SMALL           16
+#define SAVEt_MORTALIZESV         17
+#define SAVEt_NSTAB               18
+#define SAVEt_OP                  19
+#define SAVEt_PARSER              20
+#define SAVEt_STACK_POS           21
+#define SAVEt_READONLY_OFF        22
+#define SAVEt_FREEPADNAME         23
+#define SAVEt_STRLEN_SMALL        24
+#define SAVEt_FREERCPV            25
+
+/* two args */
+
+#define SAVEt_AV                  26
+#define SAVEt_DESTRUCTOR          27
+#define SAVEt_DESTRUCTOR_X        28
+#define SAVEt_GENERIC_PVREF       29
+#define SAVEt_GENERIC_SVREF       30
+#define SAVEt_GP                  31
+#define SAVEt_GVSV                32
+#define SAVEt_HINTS               33
+#define SAVEt_HPTR                34
+#define SAVEt_HV                  35
+#define SAVEt_I32                 36
+#define SAVEt_INT                 37
+#define SAVEt_ITEM                38
+#define SAVEt_IV                  39
+#define SAVEt_LONG                40
+#define SAVEt_PPTR                41
+#define SAVEt_SAVESWITCHSTACK     42
+#define SAVEt_SHARED_PVREF        43
+#define SAVEt_SPTR                44
+#define SAVEt_STRLEN              45
+#define SAVEt_SV                  46
+#define SAVEt_SVREF               47
+#define SAVEt_VPTR                48
+#define SAVEt_ADELETE             49
+#define SAVEt_APTR                50
+#define SAVEt_RCPV                51
+
+/* three args */
+
+#define SAVEt_HELEM               52
+#define SAVEt_PADSV_AND_MORTALIZE 53
+#define SAVEt_SET_SVFLAGS         54
+#define SAVEt_GVSLOT              55
+#define SAVEt_AELEM               56
+#define SAVEt_DELETE              57
+#define SAVEt_HINTS_HH            58
+
+static const U8 leave_scope_arg_counts[] = {
+    0, /* SAVEt_ALLOC               */
+    0, /* SAVEt_CLEARPADRANGE       */
+    0, /* SAVEt_CLEARSV             */
+    0, /* SAVEt_REGCONTEXT          */
+    1, /* SAVEt_TMPSFLOOR           */
+    1, /* SAVEt_BOOL                */
+    1, /* SAVEt_COMPILE_WARNINGS    */
+    1, /* SAVEt_CURCOP_WARNINGS     */
+    1, /* SAVEt_COMPPAD             */
+    1, /* SAVEt_FREECOPHH           */
+    1, /* SAVEt_FREEOP              */
+    1, /* SAVEt_FREEPV              */
+    1, /* SAVEt_FREESV              */
+    1, /* SAVEt_I16                 */
+    1, /* SAVEt_I32_SMALL           */
+    1, /* SAVEt_I8                  */
+    1, /* SAVEt_INT_SMALL           */
+    1, /* SAVEt_MORTALIZESV         */
+    1, /* SAVEt_NSTAB               */
+    1, /* SAVEt_OP                  */
+    1, /* SAVEt_PARSER              */
+    1, /* SAVEt_STACK_POS           */
+    1, /* SAVEt_READONLY_OFF        */
+    1, /* SAVEt_FREEPADNAME         */
+    1, /* SAVEt_STRLEN_SMALL        */
+    1, /* SAVEt_FREERCPV            */
+    2, /* SAVEt_AV                  */
+    2, /* SAVEt_DESTRUCTOR          */
+    2, /* SAVEt_DESTRUCTOR_X        */
+    2, /* SAVEt_GENERIC_PVREF       */
+    2, /* SAVEt_GENERIC_SVREF       */
+    2, /* SAVEt_GP                  */
+    2, /* SAVEt_GVSV                */
+    2, /* SAVEt_HINTS               */
+    2, /* SAVEt_HPTR                */
+    2, /* SAVEt_HV                  */
+    2, /* SAVEt_I32                 */
+    2, /* SAVEt_INT                 */
+    2, /* SAVEt_ITEM                */
+    2, /* SAVEt_IV                  */
+    2, /* SAVEt_LONG                */
+    2, /* SAVEt_PPTR                */
+    2, /* SAVEt_SAVESWITCHSTACK     */
+    2, /* SAVEt_SHARED_PVREF        */
+    2, /* SAVEt_SPTR                */
+    2, /* SAVEt_STRLEN              */
+    2, /* SAVEt_SV                  */
+    2, /* SAVEt_SVREF               */
+    2, /* SAVEt_VPTR                */
+    2, /* SAVEt_ADELETE             */
+    2, /* SAVEt_APTR                */
+    2, /* SAVEt_RCPV                */
+    3, /* SAVEt_HELEM               */
+    3, /* SAVEt_PADSV_AND_MORTALIZE */
+    3, /* SAVEt_SET_SVFLAGS         */
+    3, /* SAVEt_GVSLOT              */
+    3, /* SAVEt_AELEM               */
+    3, /* SAVEt_DELETE              */
+    3  /* SAVEt_HINTS_HH            */
+};
+
+#define MAX_SAVEt 58
+
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/shlib_version
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/shlib_version,v
diff -u -p -a -u -p -r1.26 shlib_version
--- gnu/usr.bin/perl/shlib_version	15 Feb 2023 01:38:21 -0000	1.26
+++ gnu/usr.bin/perl/shlib_version	21 Feb 2024 15:47:03 -0000
@@ -1,2 +1,2 @@
-major=23
+major=24
 minor=0
Index: gnu/usr.bin/perl/sv.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/sv.c,v
diff -u -p -a -u -p -r1.32 sv.c
--- gnu/usr.bin/perl/sv.c	8 Jul 2023 14:18:35 -0000	1.32
+++ gnu/usr.bin/perl/sv.c	21 Feb 2024 15:47:03 -0000
@@ -231,7 +231,10 @@ Public API:
 
 #ifdef DEBUG_LEAKING_SCALARS
 #  define FREE_SV_DEBUG_FILE(sv) STMT_START { \
-        if ((sv)->sv_debug_file) PerlMemShared_free((sv)->sv_debug_file); \
+        if ((sv)->sv_debug_file) {                   \
+            PerlMemShared_free((sv)->sv_debug_file); \
+            sv->sv_debug_file = NULL;                \
+        }                                            \
     } STMT_END
 #  define DEBUG_SV_SERIAL(sv)						    \
     DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%" UVxf ": (%05ld) del_SV\n",    \
@@ -384,7 +387,7 @@ S_visit(pTHX_ SVFUNC_t f, const U32 flag
         const SV * const svend = &sva[SvREFCNT(sva)];
         SV* sv;
         for (sv = sva + 1; sv < svend; ++sv) {
-            if (SvTYPE(sv) != (svtype)SVTYPEMASK
+            if (!SvIS_FREED(sv)
                     && (sv->sv_flags & mask) == flags
                     && SvREFCNT(sv))
             {
@@ -403,7 +406,7 @@ S_visit(pTHX_ SVFUNC_t f, const U32 flag
 static void
 do_report_used(pTHX_ SV *const sv)
 {
-    if (SvTYPE(sv) != (svtype)SVTYPEMASK) {
+    if (!SvIS_FREED(sv)) {
         PerlIO_printf(Perl_debug_log, "****\n");
         sv_dump(sv);
     }
@@ -685,7 +688,7 @@ Perl_sv_free_arenas(pTHX)
 /*
   Historically, here were mid-level routines that manage the
   allocation of bodies out of the various arenas. Some of these
-  routines and related definitions remain here, but otherse were
+  routines and related definitions remain here, but others were
   moved into sv_inline.h to facilitate inlining of newSV_type().
 
   There are 4 kinds of arenas:
@@ -698,7 +701,7 @@ Perl_sv_free_arenas(pTHX)
   Arena types 2 & 3 are chained by body-type off an array of
   arena-root pointers, which is indexed by svtype.  Some of the
   larger/less used body types are malloced singly, since a large
-  unused block of them is wasteful.  Also, several svtypes dont have
+  unused block of them is wasteful.  Also, several svtypes don't have
   bodies; the data fits into the sv-head itself.  The arena-root
   pointer thus has a few unused root-pointers (which may be hijacked
   later for arena type 4)
@@ -1041,6 +1044,7 @@ Perl_sv_upgrade(pTHX_ SV *const sv, svty
         return;
     case SVt_PVHV:
     case SVt_PVAV:
+    case SVt_PVOBJ:
         assert(new_type_details->body_size);
 
 #ifndef PURIFY
@@ -1056,26 +1060,50 @@ Perl_sv_upgrade(pTHX_ SV *const sv, svty
         new_body = new_NOARENAZ(new_type_details);
 #endif
         SvANY(sv) = new_body;
-        if (new_type == SVt_PVAV) {
-            *((XPVAV*) SvANY(sv)) = (XPVAV) {
-                .xmg_stash = NULL, .xmg_u = {.xmg_magic = NULL},
-                .xav_fill = -1, .xav_max = -1, .xav_alloc = 0
+        switch(new_type) {
+        case SVt_PVAV:
+            {
+                XPVAV pvav = {
+                    .xmg_stash = NULL,
+                    .xmg_u = {.xmg_magic = NULL},
+                    .xav_fill = -1, .xav_max = -1, .xav_alloc = 0
                 };
+                *((XPVAV*) SvANY(sv)) = pvav;
+            }
 
             AvREAL_only(sv);
-        } else {
-            *((XPVHV*) SvANY(sv)) = (XPVHV) {
-                .xmg_stash = NULL, .xmg_u = {.xmg_magic = NULL},
-                .xhv_keys = 0,
-                /* start with PERL_HASH_DEFAULT_HvMAX+1 buckets: */
-                .xhv_max = PERL_HASH_DEFAULT_HvMAX
+            break;
+        case SVt_PVHV:
+            {
+                XPVHV pvhv = {
+                    .xmg_stash = NULL,
+                    .xmg_u = {.xmg_magic = NULL},
+                    .xhv_keys = 0,
+                    /* start with PERL_HASH_DEFAULT_HvMAX+1 buckets: */
+                    .xhv_max = PERL_HASH_DEFAULT_HvMAX
                 };
+                *((XPVHV*) SvANY(sv)) = pvhv;
+            }
 
             assert(!SvOK(sv));
             SvOK_off(sv);
 #ifndef NODEFAULT_SHAREKEYS
             HvSHAREKEYS_on(sv);         /* key-sharing on by default */
 #endif
+            break;
+        case SVt_PVOBJ:
+            {
+                XPVOBJ pvo = {
+                    .xmg_stash = NULL, .xmg_u = {.xmg_magic = NULL},
+                    .xobject_maxfield = -1,
+                    .xobject_iter_sv_at = 0,
+                    .xobject_fields = NULL,
+                };
+                *((XPVOBJ*) SvANY(sv)) = pvo;
+            }
+            break;
+        default:
+            NOT_REACHED;
         }
 
         /* SVt_NULL isn't the only thing upgraded to AV or HV.
@@ -1206,7 +1234,7 @@ Perl_hv_auxalloc(pTHX_ HV *hv) {
 
     PERL_ARGS_ASSERT_HV_AUXALLOC;
     assert(SvTYPE(hv) == SVt_PVHV);
-    assert(!SvOOK(hv));
+    assert(!HvHasAUX(hv));
 
 #ifdef PURIFY
     new_body = new_NOARENAZ(&fake_hv_with_aux);
@@ -1230,7 +1258,7 @@ Perl_hv_auxalloc(pTHX_ HV *hv) {
 #endif
 
     SvANY(hv) = (XPVHV *) new_body;
-    SvOOK_on(hv);
+    SvFLAGS(hv) |= SVphv_HasAUX;
     return HvAUX(hv);
 }
 
@@ -1328,7 +1356,7 @@ Perl_sv_grow(pTHX_ SV *const sv, STRLEN 
 
     if (newlen > SvLEN(sv)) {		/* need more room? */
         STRLEN minlen = SvCUR(sv);
-        minlen += (minlen >> PERL_STRLEN_EXPAND_SHIFT) + 10;
+        minlen += (minlen >> PERL_STRLEN_EXPAND_SHIFT) + PERL_STRLEN_NEW_MIN;
         if (newlen < minlen)
             newlen = minlen;
 #ifndef PERL_UNWARANTED_CHUMMINESS_WITH_MALLOC
@@ -1402,10 +1430,8 @@ Perl_sv_grow_fresh(pTHX_ SV *const sv, S
         newlen++;
 #endif
 
-    /* 10 is a longstanding, hardcoded minimum length in sv_grow. */
-    /* Just doing the same here for consistency. */
-    if (newlen < 10)
-        newlen = 10;
+    if (newlen < PERL_STRLEN_NEW_MIN)
+        newlen = PERL_STRLEN_NEW_MIN;
 
     s = (char*)safemalloc(newlen);
     SvPV_set(sv, s);
@@ -1435,10 +1461,23 @@ Perl_sv_setiv(pTHX_ SV *const sv, const 
 
     SV_CHECK_THINKFIRST_COW_DROP(sv);
     switch (SvTYPE(sv)) {
+#if NVSIZE <= IVSIZE
+    case SVt_NULL:
+    case SVt_NV:
+        SET_SVANY_FOR_BODYLESS_IV(sv);
+        SvFLAGS(sv) &= ~SVTYPEMASK;
+        SvFLAGS(sv) |= SVt_IV;
+        break;
+#else
     case SVt_NULL:
+        SET_SVANY_FOR_BODYLESS_IV(sv);
+        SvFLAGS(sv) &= ~SVTYPEMASK;
+        SvFLAGS(sv) |= SVt_IV;
+        break;
     case SVt_NV:
         sv_upgrade(sv, SVt_IV);
         break;
+#endif
     case SVt_PV:
         sv_upgrade(sv, SVt_PVIV);
         break;
@@ -1541,8 +1580,15 @@ Perl_sv_setnv(pTHX_ SV *const sv, const 
     switch (SvTYPE(sv)) {
     case SVt_NULL:
     case SVt_IV:
+#if NVSIZE <= IVSIZE
+        SET_SVANY_FOR_BODYLESS_NV(sv);
+        SvFLAGS(sv) &= ~SVTYPEMASK;
+        SvFLAGS(sv) |= SVt_NV;
+        break;
+#else
         sv_upgrade(sv, SVt_NV);
         break;
+#endif
     case SVt_PV:
     case SVt_PVIV:
         sv_upgrade(sv, SVt_PVNV);
@@ -2180,19 +2226,19 @@ S_sv_2iuv_common(pTHX_ SV *const sv)
                 assert (SvIOKp(sv));
             } else {
                 if (((UV)1 << NV_PRESERVES_UV_BITS) >
-                    U_V(SvNVX(sv) > 0 ? SvNVX(sv) : -SvNVX(sv))) {
+                    U_V(Perl_fabs(SvNVX(sv)))) {
                     /* Small enough to preserve all bits. */
                     (void)SvIOKp_on(sv);
                     SvNOK_on(sv);
                     SvIV_set(sv, I_V(SvNVX(sv)));
                     if ((NV)(SvIVX(sv)) == SvNVX(sv))
                         SvIOK_on(sv);
-                    /* Assumption: first non-preserved integer is < IV_MAX,
-                       this NV is in the preserved range, therefore: */
-                    if (!(U_V(SvNVX(sv) > 0 ? SvNVX(sv) : -SvNVX(sv))
-                          < (UV)IV_MAX)) {
-                        Perl_croak(aTHX_ "sv_2iv assumed (U_V(fabs((double)SvNVX(sv))) < (UV)IV_MAX) but SvNVX(sv)=%" NVgf " U_V is 0x%" UVxf ", IV_MAX is 0x%" UVxf "\n", SvNVX(sv), U_V(SvNVX(sv)), (UV)IV_MAX);
-                    }
+                    /* There had been runtime checking for
+                       "U_V(Perl_fabs(SvNVX(sv))) < (UV)IV_MAX" here to ensure
+                       that this NV is in the preserved range, but this should
+                       be always true if the following assertion is true: */
+                    STATIC_ASSERT_STMT(((UV)1 << NV_PRESERVES_UV_BITS) <=
+                                       (UV)IV_MAX);
                 } else {
                     /* IN_UV NOT_INT
                          0      0	already failed to read UV.
@@ -2542,8 +2588,7 @@ Perl_sv_2nv_flags(pTHX_ SV *const sv, co
         /* if that shift count is out of range then Configure's test is
            wonky. We shouldn't be in here with NV_PRESERVES_UV_BITS ==
            UV_BITS */
-        if (((UV)1 << NV_PRESERVES_UV_BITS) >
-            U_V(SvNVX(sv) > 0 ? SvNVX(sv) : -SvNVX(sv))) {
+        if (((UV)1 << NV_PRESERVES_UV_BITS) > U_V(Perl_fabs(SvNVX(sv)))) {
             SvNOK_on(sv); /* Definitely small enough to preserve all bits */
         } else if (!(numtype & IS_NUMBER_IN_UV)) {
             /* Can't use strtol etc to convert this string, so don't try.
@@ -2813,21 +2858,28 @@ char *
 Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags)
 {
     char *s;
+    bool done_gmagic = FALSE;
 
     PERL_ARGS_ASSERT_SV_2PV_FLAGS;
 
     assert (SvTYPE(sv) != SVt_PVAV && SvTYPE(sv) != SVt_PVHV
          && SvTYPE(sv) != SVt_PVFM);
-    if (SvGMAGICAL(sv) && (flags & SV_GMAGIC))
+    if (SvGMAGICAL(sv) && (flags & SV_GMAGIC)) {
         mg_get(sv);
+        done_gmagic = TRUE;
+    }
+
     if (SvROK(sv)) {
         if (SvAMAGIC(sv)) {
             SV *tmpstr;
+            SV *nsv= (SV *)sv;
             if (flags & SV_SKIP_OVERLOAD)
                 return NULL;
-            tmpstr = AMG_CALLunary(sv, string_amg);
+            if (done_gmagic)
+                nsv = sv_mortalcopy_flags(sv,0);
+            tmpstr = AMG_CALLunary(nsv, string_amg);
             TAINT_IF(tmpstr && SvTAINTED(tmpstr));
-            if (tmpstr && (!SvROK(tmpstr) || (SvRV(tmpstr) != SvRV(sv)))) {
+            if (tmpstr && (!SvROK(tmpstr) || (SvRV(tmpstr) != SvRV(nsv)))) {
                 /* Unwrap this:  */
                 /* char *pv = lp ? SvPV(tmpstr, *lp) : SvPV_nolen(tmpstr);
                  */
@@ -3039,7 +3091,7 @@ Perl_sv_2pv_flags(pTHX_ SV *const sv, ST
                     DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
                     STORE_LC_NUMERIC_SET_TO_NEEDED();
 
-                    local_radix = _NOT_IN_NUMERIC_STANDARD;
+                    local_radix = NOT_IN_NUMERIC_STANDARD_;
                     if (local_radix && SvCUR(PL_numeric_radix_sv) > 1) {
                         size += SvCUR(PL_numeric_radix_sv) - 1;
                         s = SvGROW_mutable(sv, size);
@@ -3114,8 +3166,8 @@ Perl_sv_2pv_flags(pTHX_ SV *const sv, ST
 
 /*
 =for apidoc sv_copypv
-=for apidoc_item sv_copypv_nomg
 =for apidoc_item sv_copypv_flags
+=for apidoc_item sv_copypv_nomg
 
 These copy a stringified representation of the source SV into the
 destination SV.  They automatically perform coercion of numeric values into
@@ -3292,9 +3344,9 @@ Perl_sv_2bool_flags(pTHX_ SV *sv, I32 fl
 
 /*
 =for apidoc sv_utf8_upgrade
-=for apidoc_item sv_utf8_upgrade_nomg
 =for apidoc_item sv_utf8_upgrade_flags
 =for apidoc_item sv_utf8_upgrade_flags_grow
+=for apidoc_item sv_utf8_upgrade_nomg
 
 These convert the PV of an SV to its UTF-8-encoded form.
 The SV is forced to string form if it is not already.
@@ -3709,7 +3761,7 @@ S_glob_assign_glob(pTHX_ SV *const dsv, 
         /* If source has a real method, then a method is
            going to change */
         else if(
-         GvCV((const GV *)ssv) && GvSTASH(dsv) && HvENAME(GvSTASH(dsv))
+         GvCV((const GV *)ssv) && GvSTASH(dsv) && HvHasENAME(GvSTASH(dsv))
         ) {
             mro_changes = 1;
         }
@@ -3718,7 +3770,7 @@ S_glob_assign_glob(pTHX_ SV *const dsv, 
     /* If dest already had a real method, that's a change as well */
     if(
         !mro_changes && GvGP(MUTABLE_GV(dsv)) && GvCVu((const GV *)dsv)
-     && GvSTASH(dsv) && HvENAME(GvSTASH(dsv))
+     && GvSTASH(dsv) && HvHasENAME(GvSTASH(dsv))
     ) {
         mro_changes = 1;
     }
@@ -3731,7 +3783,7 @@ S_glob_assign_glob(pTHX_ SV *const dsv, 
         if(memEQs(name, len, "ISA")
          /* The stash may have been detached from the symbol table, so
             check its name. */
-         && GvSTASH(dsv) && HvENAME(GvSTASH(dsv))
+         && GvSTASH(dsv) && HvHasENAME(GvSTASH(dsv))
         )
             mro_changes = 2;
         else {
@@ -3775,11 +3827,13 @@ S_glob_assign_glob(pTHX_ SV *const dsv, 
         SV * const sref = (SV *)GvAV((const GV *)dsv);
         if (SvSMAGICAL(sref) && (mg = mg_find(sref, PERL_MAGIC_isa))) {
             if (SvTYPE(mg->mg_obj) != SVt_PVAV) {
-                AV * const ary = newAV();
-                av_push(ary, mg->mg_obj); /* takes the refcount */
+                AV * const ary = newAV_alloc_x(2);
+                av_push_simple(ary, mg->mg_obj); /* takes the refcount */
+                av_push_simple(ary, SvREFCNT_inc_simple_NN(dsv));
                 mg->mg_obj = (SV *)ary;
+            } else {
+                av_push((AV *)mg->mg_obj, SvREFCNT_inc_simple_NN(dsv));
             }
-            av_push((AV *)mg->mg_obj, SvREFCNT_inc_simple_NN(dsv));
         }
         else sv_magic(sref, dsv, PERL_MAGIC_isa, NULL, 0);
       }
@@ -3787,7 +3841,7 @@ S_glob_assign_glob(pTHX_ SV *const dsv, 
     }
     else if(mro_changes == 3) {
         HV * const stash = GvHV(dsv);
-        if(old_stash ? (HV *)HvENAME_get(old_stash) : stash)
+        if(old_stash ? HvHasENAME(old_stash) : cBOOL(stash))
             mro_package_moved(
                 stash, old_stash,
                 (GV *)dsv, 0
@@ -3887,7 +3941,7 @@ Perl_gv_setref(pTHX_ SV *const dsv, SV *
                     {
                         SV * const new_const_sv =
                             CvCONST((const CV *)sref)
-                                 ? cv_const_sv((const CV *)sref)
+                                 ? cv_const_sv_or_av((const CV *)sref)
                                  : NULL;
                         HV * const stash = GvSTASH((const GV *)dsv);
                         report_redefined_cv(
@@ -3937,7 +3991,7 @@ Perl_gv_setref(pTHX_ SV *const dsv, SV *
                    (len > 1 && name[len-2] == ':' && name[len-1] == ':')
                 || (len == 1 && name[0] == ':')
                 )
-             && (!dref || HvENAME_get(dref))
+             && (!dref || HvHasENAME(dref))
             ) {
                 mro_package_moved(
                     (HV *)sref, (HV *)dref,
@@ -3950,7 +4004,7 @@ Perl_gv_setref(pTHX_ SV *const dsv, SV *
          && memEQs(GvNAME((GV*)dsv), GvNAMELEN((GV*)dsv), "ISA")
          /* The stash may have been detached from the symbol table, so
             check its name before doing anything. */
-         && GvSTASH(dsv) && HvENAME(GvSTASH(dsv))
+         && GvSTASH(dsv) && HvHasENAME(GvSTASH(dsv))
         ) {
             MAGIC *mg;
             MAGIC * const omg = dref && SvSMAGICAL(dref)
@@ -3958,8 +4012,8 @@ Perl_gv_setref(pTHX_ SV *const dsv, SV *
                                  : NULL;
             if (SvSMAGICAL(sref) && (mg = mg_find(sref, PERL_MAGIC_isa))) {
                 if (SvTYPE(mg->mg_obj) != SVt_PVAV) {
-                    AV * const ary = newAV();
-                    av_push(ary, mg->mg_obj); /* takes the refcount */
+                    AV * const ary = newAV_alloc_xz(4);
+                    av_push_simple(ary, mg->mg_obj); /* takes the refcount */
                     mg->mg_obj = (SV *)ary;
                 }
                 if (omg) {
@@ -4089,9 +4143,14 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
      * freed) just by testing the or'ed types */
     STATIC_ASSERT_STMT(SVt_NULL == 0);
     STATIC_ASSERT_STMT(SVt_IV   == 1);
+    STATIC_ASSERT_STMT(SVt_NV   == 2);
+#if NVSIZE <= IVSIZE
+    if (both_type <= 2) {
+#else
     if (both_type <= 1) {
-        /* both src and dst are UNDEF/IV/RV, so we can do a lot of
-         * special-casing */
+#endif
+        /* both src and dst are UNDEF/IV/RV - maybe NV depending on config,
+         * so we can do a lot of special-casing */
         U32 sflags;
         U32 new_dflags;
         SV *old_rv = NULL;
@@ -4104,6 +4163,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
                 sv_unref_flags(dsv, 0);
             else
                 old_rv = SvRV(dsv);
+            SvROK_off(dsv);
         }
 
         assert(!SvGMAGICAL(ssv));
@@ -4130,12 +4190,33 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
                 new_dflags |= (SVf_IOK|SVp_IOK|(sflags & SVf_IVisUV));
             }
         }
+#if NVSIZE <= IVSIZE
+        else if (sflags & SVf_NOK) {
+            SET_SVANY_FOR_BODYLESS_NV(dsv);
+            new_dflags = (SVt_NV|SVf_NOK|SVp_NOK);
+
+            /* both src and dst are <= SVt_MV, so sv_any points to the
+             * head; so access the head directly
+             */
+            assert(    &(ssv->sv_u.svu_nv)
+                    == &(((XPVNV*) SvANY(ssv))->xnv_u.xnv_nv));
+            assert(    &(dsv->sv_u.svu_nv)
+                    == &(((XPVNV*) SvANY(dsv))->xnv_u.xnv_nv));
+            dsv->sv_u.svu_nv = ssv->sv_u.svu_nv;
+        }
+#endif
         else {
             new_dflags = dtype; /* turn off everything except the type */
         }
-        SvFLAGS(dsv) = new_dflags;
-        SvREFCNT_dec(old_rv);
+        /* Should preserve some dsv flags - at least SVs_TEMP, */
+        /* so cannot just set SvFLAGS(dsv) = new_dflags        */
+        /* First clear the flags that we do want to clobber    */
+        (void)SvOK_off(dsv);
+        SvFLAGS(dsv) &= ~SVTYPEMASK;
+        /* Now set the new flags */
+        SvFLAGS(dsv) |= new_dflags;
 
+        SvREFCNT_dec(old_rv);
         return;
     }
 
@@ -4155,7 +4236,9 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
     SV_CHECK_THINKFIRST_COW_DROP(dsv);
     dtype = SvTYPE(dsv); /* THINKFIRST may have changed type */
 
-    /* There's a lot of redundancy below but we're going for speed here */
+    /* There's a lot of redundancy below but we're going for speed here
+     * Note: some of the cases below do return; rather than break; so the
+     * if-elseif-else logic below this switch does not see all cases. */
 
     switch (stype) {
     case SVt_NULL:
@@ -4243,7 +4326,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
 
     case SVt_INVLIST:
         invlist_clone(ssv, dsv);
-        break;
+        return;
     default:
         {
         const char * const type = sv_reftype(ssv,0);
@@ -4382,7 +4465,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
                 if (reset_isa) {
                     HV * const stash = GvHV(dsv);
                     if(
-                        old_stash ? (HV *)HvENAME_get(old_stash) : stash
+                        old_stash ? HvHasENAME(old_stash) : cBOOL(stash)
                     )
                         mro_package_moved(
                          stash, old_stash,
@@ -4429,11 +4512,11 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* s
          * be allocated it is still not worth swiping PADTMPs for short
          * strings, as the savings here are small.
          *
-         * If swiping is not an option, then we see whether it is
-         * worth using copy-on-write.  If the lhs already has a buf-
-         * fer big enough and the string is short, we skip it and fall back
-         * to method 3, since memcpy is faster for short strings than the
-         * later bookkeeping overhead that copy-on-write entails.
+         * If swiping is not an option, then we see whether it is worth using
+         * copy-on-write.  If the lhs already has a buffer big enough and the
+         * string is short, we skip it and fall back to method 3, since memcpy
+         * is faster for short strings than the later bookkeeping overhead that
+         * copy-on-write entails.
 
          * If the rhs is not a copy-on-write string yet, then we also
          * consider whether the buffer is too large relative to the string
@@ -4682,6 +4765,67 @@ Perl_sv_set_undef(pTHX_ SV *sv)
         SvOK_off(sv);
 }
 
+/*
+=for apidoc sv_set_true
+
+Equivalent to C<sv_setsv(sv, &PL_sv_yes)>, but may be made more
+efficient in the future. Doesn't handle set magic.
+
+The perl equivalent is C<$sv = !0;>.
+
+Introduced in perl 5.35.11.
+
+=cut
+*/
+
+void
+Perl_sv_set_true(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SV_SET_TRUE;
+    sv_setsv(sv, &PL_sv_yes);
+}
+
+/*
+=for apidoc sv_set_false
+
+Equivalent to C<sv_setsv(sv, &PL_sv_no)>, but may be made more
+efficient in the future. Doesn't handle set magic.
+
+The perl equivalent is C<$sv = !1;>.
+
+Introduced in perl 5.35.11.
+
+=cut
+*/
+
+void
+Perl_sv_set_false(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SV_SET_FALSE;
+    sv_setsv(sv, &PL_sv_no);
+}
+
+/*
+=for apidoc sv_set_bool
+
+Equivalent to C<sv_setsv(sv, bool_val ? &Pl_sv_yes : &PL_sv_no)>, but
+may be made more efficient in the future. Doesn't handle set magic.
+
+The perl equivalent is C<$sv = !!$expr;>.
+
+Introduced in perl 5.35.11.
+
+=cut
+*/
+
+void
+Perl_sv_set_bool(pTHX_ SV *sv, const bool bool_val)
+{
+    PERL_ARGS_ASSERT_SV_SET_BOOL;
+    sv_setsv(sv, bool_val ? &PL_sv_yes : &PL_sv_no);
+}
+
+
 void
 Perl_sv_setsv_mg(pTHX_ SV *const dsv, SV *const ssv)
 {
@@ -4719,10 +4863,10 @@ Perl_sv_setsv_cow(pTHX_ SV *dsv, SV *ssv
             sv_force_normal_flags(dsv, SV_COW_DROP_PV);
         else if (SvPVX_const(dsv))
             Safefree(SvPVX_mutable(dsv));
+        SvUPGRADE(dsv, SVt_COW);
     }
     else
-        new_SV(dsv);
-    SvUPGRADE(dsv, SVt_COW);
+        dsv = newSV_type(SVt_COW);
 
     assert (SvPOK(ssv));
     assert (SvPOKp(ssv));
@@ -4803,11 +4947,11 @@ Perl_sv_setpv_bufsize(pTHX_ SV *const sv
 }
 
 /*
-=for apidoc sv_setpv
-=for apidoc_item sv_setpv_mg
-=for apidoc_item sv_setpvn
-=for apidoc_item sv_setpvn_fresh
-=for apidoc_item sv_setpvn_mg
+=for apidoc            sv_setpv
+=for apidoc_item       sv_setpv_mg
+=for apidoc_item       sv_setpvn
+=for apidoc_item       sv_setpvn_fresh
+=for apidoc_item       sv_setpvn_mg
 =for apidoc_item |void|sv_setpvs|SV* sv|"literal string"
 =for apidoc_item |void|sv_setpvs_mg|SV* sv|"literal string"
 
@@ -4822,7 +4966,7 @@ embedded C<NUL> characters.
 
 In the plain C<pv> forms, C<ptr> points to a NUL-terminated C string.  That is,
 it points to the first byte of the string, and the copy proceeds up through the
-first enountered C<NUL> byte.
+first encountered C<NUL> byte.
 
 In the forms that take a C<ptr> argument, if it is NULL, the SV will become
 undefined.
@@ -4985,8 +5129,8 @@ Perl_sv_sethek(pTHX_ SV *const sv, const
 
 /*
 =for apidoc      sv_usepvn
-=for apidoc_item sv_usepvn_mg
 =for apidoc_item sv_usepvn_flags
+=for apidoc_item sv_usepvn_mg
 
 These tell an SV to use C<ptr> for its string value.  Normally SVs have
 their string stored inside the SV, but these tell the SV to use an
@@ -5677,7 +5821,7 @@ Perl_sv_magicext(pTHX_ SV *const sv, SV 
             mg->mg_ptr = savepvn(name, namlen);
         else if (namlen == HEf_SVKEY) {
             /* Yes, this is casting away const. This is only for the case of
-               HEf_SVKEY. I think we need to document this aberation of the
+               HEf_SVKEY. I think we need to document this aberration of the
                constness of the API, rather than making name non-const, as
                that change propagating outwards a long way.  */
             mg->mg_ptr = (char*)SvREFCNT_inc_simple_NN((SV *)name);
@@ -5779,7 +5923,7 @@ Perl_sv_magic(pTHX_ SV *const sv, SV *co
 }
 
 static int
-S_sv_unmagicext_flags(pTHX_ SV *const sv, const int type, MGVTBL *vtbl, const U32 flags)
+S_sv_unmagicext_flags(pTHX_ SV *const sv, const int type, const MGVTBL *vtbl, const U32 flags)
 {
     MAGIC* mg;
     MAGIC** mgp;
@@ -5844,7 +5988,7 @@ Removes all magic of type C<type> with t
 */
 
 int
-Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
+Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, const MGVTBL *vtbl)
 {
     PERL_ARGS_ASSERT_SV_UNMAGICEXT;
     return S_sv_unmagicext_flags(aTHX_ sv, type, vtbl, 1);
@@ -5949,7 +6093,7 @@ Perl_sv_get_backrefs(SV *const sv)
     /* find slot to store array or singleton backref */
 
     if (SvTYPE(sv) == SVt_PVHV) {
-        if (SvOOK(sv)) {
+        if (HvHasAUX(sv)) {
             struct xpvhv_aux * const iter = HvAUX((HV *)sv);
             backrefs = (SV *)iter->xhv_backreferences;
         }
@@ -6056,11 +6200,11 @@ Perl_sv_del_backref(pTHX_ SV *const tsv,
     PERL_ARGS_ASSERT_SV_DEL_BACKREF;
 
     if (SvTYPE(tsv) == SVt_PVHV) {
-        if (SvOOK(tsv))
+        if (HvHasAUX(tsv))
             svp = (SV**)Perl_hv_backreferences_p(aTHX_ MUTABLE_HV(tsv));
     }
     else if (SvIS_FREED(tsv) && PL_phase == PERL_PHASE_DESTRUCT) {
-        /* It's possible for the the last (strong) reference to tsv to have
+        /* It's possible for the last (strong) reference to tsv to have
            become freed *before* the last thing holding a weak reference.
            If both survive longer than the backreferences array, then when
            the referent's reference count drops to 0 and it is freed, it's
@@ -6447,7 +6591,7 @@ S_anonymise_cv_maybe(pTHX_ GV *gv, CV* c
     }
 
     /* if not, anonymise: */
-    gvname = (GvSTASH(gv) && HvNAME(GvSTASH(gv)) && HvENAME(GvSTASH(gv)))
+    gvname = (GvSTASH(gv) && HvHasNAME(GvSTASH(gv)) && HvHasENAME(GvSTASH(gv)))
                     ? newSVhek(HvENAME_HEK(GvSTASH(gv)))
                     : newSVpvn_flags( "__ANON__", 8, 0 );
     sv_catpvs(gvname, "::__ANON__");
@@ -6468,8 +6612,7 @@ and free the body itself.  The SV's head
 its type is set to all 1's so that it won't inadvertently be assumed
 to be live during global destruction etc.
 This function should only be called when C<REFCNT> is zero.  Most of the time
-you'll want to call C<sv_free()> (or its macro wrapper C<SvREFCNT_dec>)
-instead.
+you'll want to call C<SvREFCNT_dec> instead.
 
 =cut
 */
@@ -6494,9 +6637,12 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
         HV *stash;
 
         assert(SvREFCNT(sv) == 0);
-        assert(SvTYPE(sv) != (svtype)SVTYPEMASK);
-
+        assert(!SvIS_FREED(sv));
+#if NVSIZE <= IVSIZE
+        if (type <= SVt_NV) {
+#else
         if (type <= SVt_IV) {
+#endif
             /* Historically this check on type was needed so that the code to
              * free bodies wasn't reached for these types, because the arena
              * slots were re-used for HEs and pointer table entries. The
@@ -6518,6 +6664,9 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
              * path, as SvPVX() doesn't point to valid memory.
              *
              * Hence this code is still the most efficient way to handle this.
+             *
+             * Additionally, for bodyless NVs, riding this branch is more
+             * efficient than stepping through the general logic.
              */
 
             if (SvROK(sv))
@@ -6642,6 +6791,17 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
             }
 
             break;
+        case SVt_PVOBJ:
+            if(ObjectMAXFIELD(sv) > -1) {
+                next_sv = ObjectFIELDS(sv)[ObjectMAXFIELD(sv)--];
+                /* save old iter_sv in top-most field, and pray that it
+                 * doesn't get wiped in the meantime */
+                ObjectFIELDS(sv)[(ObjectITERSVAT(sv) = ObjectMAXFIELD(sv) + 1)] = iter_sv;
+                iter_sv = sv;
+                goto get_next_sv;
+            }
+            Safefree(ObjectFIELDS(sv));
+            break;
         case SVt_PVLV:
             if (LvTYPE(sv) == 'T') { /* for tie: return HE to pool */
                 SvREFCNT_dec(HeKEY_sv((HE*)LvTARG(sv)));
@@ -6682,7 +6842,7 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
         case SVt_PVGV:
             if (isGV_with_GP(sv)) {
                 if(GvCVu((const GV *)sv) && (stash = GvSTASH(MUTABLE_GV(sv)))
-                   && HvENAME_get(stash))
+                   && HvHasENAME(stash))
                     mro_method_changed_in(stash);
                 gp_free(MUTABLE_GV(sv));
                 if (GvNAME_HEK(sv))
@@ -6779,7 +6939,7 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
             U32 arena_index;
             const struct body_details *sv_type_details;
 
-            if (type == SVt_PVHV && SvOOK(sv)) {
+            if (type == SVt_PVHV && HvHasAUX(sv)) {
                 arena_index = HVAUX_ARENA_ROOT_IX;
                 sv_type_details = &fake_hv_with_aux;
             }
@@ -6828,6 +6988,17 @@ Perl_sv_clear(pTHX_ SV *const orig_sv)
                     Safefree(AvALLOC(av));
                     goto free_body;
                 }
+            } else if (SvTYPE(iter_sv) == SVt_PVOBJ) {
+                if (ObjectMAXFIELD(iter_sv) > -1) {
+                    sv = ObjectFIELDS(iter_sv)[ObjectMAXFIELD(iter_sv)--];
+                }
+                else { /* no more fields in the current SV to free */
+                    sv = iter_sv;
+                    type = SvTYPE(sv);
+                    iter_sv = ObjectFIELDS(sv)[ObjectITERSVAT(sv)];
+                    Safefree(ObjectFIELDS(sv));
+                    goto free_body;
+                }
             } else if (SvTYPE(iter_sv) == SVt_PVHV) {
                 sv = Perl_hfree_next_entry(aTHX_ (HV*)iter_sv, &hash_index);
                 if (!sv && !HvTOTALKEYS((HV *)iter_sv)) {
@@ -6901,7 +7072,7 @@ S_curse(pTHX_ SV * const sv, const bool 
             CV* destructor = NULL;
             struct mro_meta *meta;
 
-            assert (SvOOK(stash));
+            assert (HvHasAUX(stash));
 
             DEBUG_o( Perl_deb(aTHX_ "Looking for DESTROY method for %s\n",
                          HvNAME(stash)) );
@@ -8358,7 +8529,7 @@ Perl_sv_collxfrm_flags(pTHX_ SV *const s
             Safefree(mg->mg_ptr);
 
         s = SvPV_flags_const(sv, len, flags);
-        if ((xf = _mem_collxfrm(s, len, &xlen, cBOOL(SvUTF8(sv))))) {
+        if ((xf = mem_collxfrm_(s, len, &xlen, cBOOL(SvUTF8(sv))))) {
             if (! mg) {
                 mg = sv_magicext(sv, 0, PERL_MAGIC_collxfrm, &PL_vtbl_collxfrm,
                                  0, 0);
@@ -8566,7 +8737,7 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO 
     SvPOK_only(sv);
     if (!append) {
         /* not appending - "clear" the string by setting SvCUR to 0,
-         * the pv is still avaiable. */
+         * the pv is still available. */
         SvCUR_set(sv,0);
     }
     if (PerlIO_isutf8(fp))
@@ -8813,7 +8984,7 @@ Perl_sv_gets(pTHX_ SV *const sv, PerlIO 
         }
 
         if (shortbuffered) {		/* oh well, must extend */
-            /* we didnt have enough room to fit the line into the target buffer
+            /* we didn't have enough room to fit the line into the target buffer
              * so we must extend the target buffer and keep going */
             cnt = shortbuffered;
             shortbuffered = 0;
@@ -9404,7 +9575,7 @@ Perl_newSVpvn_flags(pTHX_ const char *co
      * sv_2mortal() and do what it does ourselves here.  Since we have asserted
      * that flags can only have the SVf_UTF8 and/or SVs_TEMP flags set above we
      * can use it to enable the sv flags directly (bypassing SvTEMP_on), which
-     * in turn means we dont need to mask out the SVf_UTF8 flag below, which
+     * in turn means we don't need to mask out the SVf_UTF8 flag below, which
      * means that we eliminate quite a few steps than it looks - Yves
      * (explaining patch by gfx) */
 
@@ -9492,6 +9663,30 @@ Perl_newSVpvn(pTHX_ const char *const bu
 }
 
 /*
+=for apidoc newSVhek_mortal
+
+Creates a new mortal SV from the hash key structure.  It will generate
+scalars that point to the shared string table where possible.  Returns
+a new (undefined) SV if C<hek> is NULL.
+
+This is more efficient than using sv_2mortal(newSVhek( ... ))
+
+=cut
+*/
+
+SV *
+Perl_newSVhek_mortal(pTHX_ const HEK *const hek)
+{
+    SV * const sv = newSVhek(hek);
+    assert(sv);
+    assert(!SvIMMORTAL(sv));
+
+    PUSH_EXTEND_MORTAL__SV_C(sv);
+    SvTEMP_on(sv);
+    return sv;
+}
+
+/*
 =for apidoc newSVhek
 
 Creates a new SV from the hash key structure.  It will generate scalars that
@@ -9536,7 +9731,7 @@ Perl_newSVhek(pTHX_ const HEK *const hek
                 SvUTF8_on (sv);
             return sv;
         }
-        /* This will be overwhelminly the most common case.  */
+        /* This will be overwhelmingly the most common case.  */
         {
             /* Inline most of newSVpvn_share(), because share_hek_hek() is far
                more efficient than sharepvn().  */
@@ -9679,8 +9874,9 @@ Perl_vnewSVpvf(pTHX_ const char *const p
 
     PERL_ARGS_ASSERT_VNEWSVPVF;
 
-    new_SV(sv);
-    sv_vsetpvfn(sv, pat, strlen(pat), args, NULL, 0, NULL);
+    sv = newSV(1);
+    SvPVCLEAR_FRESH(sv);
+    sv_vcatpvfn_flags(sv, pat, strlen(pat), args, NULL, 0, NULL, 0);
     return sv;
 }
 
@@ -9767,34 +9963,51 @@ Perl_newSVuv(pTHX_ const UV u)
 }
 
 /*
-=for apidoc newRV_noinc
+=for apidoc newSVbool
 
-Creates an RV wrapper for an SV.  The reference count for the original
-SV is B<not> incremented.
+Creates a new SV boolean.
 
 =cut
 */
 
 SV *
-Perl_newRV_noinc(pTHX_ SV *const tmpRef)
+Perl_newSVbool(pTHX_ bool bool_val)
 {
-    SV *sv;
+    PERL_ARGS_ASSERT_NEWSVBOOL;
+    SV *sv = newSVsv(bool_val ? &PL_sv_yes : &PL_sv_no);
 
-    PERL_ARGS_ASSERT_NEWRV_NOINC;
+    return sv;
+}
 
-    new_SV(sv);
+/*
+=for apidoc newSV_true
 
-    /* We're starting from SVt_FIRST, so provided that's
-     * actual 0, we don't have to unset any SV type flags
-     * to promote to SVt_IV. */
-    STATIC_ASSERT_STMT(SVt_FIRST == 0);
+Creates a new SV that is a boolean true.
 
-    SET_SVANY_FOR_BODYLESS_IV(sv);
-    SvFLAGS(sv) |= SVt_IV;
+=cut
+*/
+SV *
+Perl_newSV_true(pTHX)
+{
+    PERL_ARGS_ASSERT_NEWSV_TRUE;
+    SV *sv = newSVsv(&PL_sv_yes);
 
-    SvTEMP_off(tmpRef);
+    return sv;
+}
 
-    sv_setrv_noinc(sv, tmpRef);
+/*
+=for apidoc newSV_false
+
+Creates a new SV that is a boolean false.
+
+=cut
+*/
+
+SV *
+Perl_newSV_false(pTHX)
+{
+    PERL_ARGS_ASSERT_NEWSV_FALSE;
+    SV *sv = newSVsv(&PL_sv_no);
 
     return sv;
 }
@@ -9813,8 +10026,8 @@ Perl_newRV(pTHX_ SV *const sv)
 
 /*
 =for apidoc newSVsv
-=for apidoc_item newSVsv_nomg
 =for apidoc_item newSVsv_flags
+=for apidoc_item newSVsv_nomg
 
 These create a new SV which is an exact duplicate of the original SV
 (using C<sv_setsv>.)
@@ -9833,7 +10046,7 @@ Perl_newSVsv_flags(pTHX_ SV *const old, 
 
     if (!old)
         return NULL;
-    if (SvTYPE(old) == (svtype)SVTYPEMASK) {
+    if (SvIS_FREED(old)) {
         Perl_ck_warner_d(aTHX_ packWARN(WARN_INTERNAL), "semi-panic: attempt to dup freed string");
         return NULL;
     }
@@ -9873,7 +10086,7 @@ Perl_sv_resetpvn(pTHX_ const char *s, ST
 
     if (!s) {		/* reset ?? searches */
         MAGIC * const mg = mg_find((const SV *)stash, PERL_MAGIC_symtab);
-        if (mg) {
+        if (mg && mg->mg_len) {
             const U32 count = mg->mg_len / sizeof(PMOP**);
             PMOP **pmp = (PMOP**) mg->mg_ptr;
             PMOP *const *const end = pmp + count;
@@ -9929,7 +10142,7 @@ Perl_sv_resetpvn(pTHX_ const char *s, ST
                 if (GvAV(gv)) {
                     av_clear(GvAV(gv));
                 }
-                if (GvHV(gv) && !HvNAME_get(GvHV(gv))) {
+                if (GvHV(gv) && !HvHasNAME(GvHV(gv))) {
                     hv_clear(GvHV(gv));
                 }
             }
@@ -10196,7 +10409,7 @@ Perl_sv_pvbyten_force(pTHX_ SV *const sv
     PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE;
 
     sv_pvn_force(sv,lp);
-    sv_utf8_downgrade(sv,0);
+    (void)sv_utf8_downgrade(sv,0);
     *lp = SvCUR(sv);
     return SvPVX(sv);
 }
@@ -10277,6 +10490,7 @@ Perl_sv_reftype(pTHX_ const SV *const sv
         case SVt_PVIO:		return "IO";
         case SVt_INVLIST:	return "INVLIST";
         case SVt_REGEXP:	return "REGEXP";
+        case SVt_PVOBJ:         return "OBJECT";
         default:		return "UNKNOWN";
         }
     }
@@ -10305,9 +10519,10 @@ Perl_sv_ref(pTHX_ SV *dst, const SV *con
         dst = sv_newmortal();
 
     if (ob && SvOBJECT(sv)) {
-        HvNAME_get(SvSTASH(sv))
-                    ? sv_sethek(dst, HvNAME_HEK(SvSTASH(sv)))
-                    : sv_setpvs(dst, "__ANON__");
+        if (HvHasNAME(SvSTASH(sv)))
+            sv_sethek(dst, HvNAME_HEK(SvSTASH(sv)));
+        else
+            sv_setpvs(dst, "__ANON__");
     }
     else {
         const char * reftype = sv_reftype(sv, 0);
@@ -10578,10 +10793,15 @@ Perl_sv_bless(pTHX_ SV *const sv, HV *co
     SvGETMAGIC(sv);
     if (!SvROK(sv))
         Perl_croak(aTHX_ "Can't bless non-reference value");
+    if (HvSTASH_IS_CLASS(stash))
+        Perl_croak(aTHX_ "Attempt to bless into a class");
+
     tmpRef = SvRV(sv);
     if (SvFLAGS(tmpRef) & (SVs_OBJECT|SVf_READONLY|SVf_PROTECT)) {
         if (SvREADONLY(tmpRef))
             Perl_croak_no_modify();
+        if (SvTYPE(tmpRef) == SVt_PVOBJ)
+            Perl_croak(aTHX_ "Can't bless an object reference");
         if (SvOBJECT(tmpRef)) {
             oldstash = SvSTASH(tmpRef);
         }
@@ -10621,7 +10841,7 @@ S_sv_unglob(pTHX_ SV *const sv, U32 flag
     SvREFCNT_inc_simple_void_NN(sv_2mortal(sv));
     if (GvGP(sv)) {
         if(GvCVu((const GV *)sv) && (stash = GvSTASH(MUTABLE_GV(sv)))
-           && HvNAME_get(stash))
+           && HvHasNAME(stash))
             mro_method_changed_in(stash);
         gp_free(MUTABLE_GV(sv));
     }
@@ -10739,54 +10959,6 @@ Perl_sv_tainted(pTHX_ SV *const sv)
     return FALSE;
 }
 
-#ifndef NO_MATHOMS  /* Can't move these to mathoms.c because call uiv_2buf(),
-                       private to this file */
-
-/*
-=for apidoc sv_setpviv
-=for apidoc_item sv_setpviv_mg
-
-These copy an integer into the given SV, also updating its string value.
-
-They differ only in that C<sv_setpviv_mg> performs 'set' magic; C<sv_setpviv>
-skips any magic.
-
-=cut
-*/
-
-void
-Perl_sv_setpviv(pTHX_ SV *const sv, const IV iv)
-{
-    /* The purpose of this union is to ensure that arr is aligned on
-       a 2 byte boundary, because that is what uiv_2buf() requires */
-    union {
-        char arr[TYPE_CHARS(UV)];
-        U16 dummy;
-    } buf;
-    char *ebuf;
-    char * const ptr = uiv_2buf(buf.arr, iv, 0, 0, &ebuf);
-
-    PERL_ARGS_ASSERT_SV_SETPVIV;
-
-    sv_setpvn(sv, ptr, ebuf - ptr);
-}
-
-void
-Perl_sv_setpviv_mg(pTHX_ SV *const sv, const IV iv)
-{
-    PERL_ARGS_ASSERT_SV_SETPVIV_MG;
-
-    GCC_DIAG_IGNORE_STMT(-Wdeprecated-declarations);
-
-    sv_setpviv(sv, iv);
-
-    GCC_DIAG_RESTORE_STMT;
-
-    SvSETMAGIC(sv);
-}
-
-#endif  /* NO_MATHOMS */
-
 #if defined(MULTIPLICITY)
 
 /* pTHX_ magic can't cope with varargs, so this is a no-context
@@ -10827,10 +10999,10 @@ Perl_sv_setpvf_mg_nocontext(SV *const sv
 #endif
 
 /*
-=for apidoc sv_setpvf
-=for apidoc_item sv_setpvf_nocontext
+=for apidoc      sv_setpvf
 =for apidoc_item sv_setpvf_mg
 =for apidoc_item sv_setpvf_mg_nocontext
+=for apidoc_item sv_setpvf_nocontext
 
 These work like C<L</sv_catpvf>> but copy the text into the SV instead of
 appending it.
@@ -10946,9 +11118,9 @@ Perl_sv_catpvf_mg_nocontext(SV *const sv
 
 /*
 =for apidoc sv_catpvf
-=for apidoc_item sv_catpvf_nocontext
 =for apidoc_item sv_catpvf_mg
 =for apidoc_item sv_catpvf_mg_nocontext
+=for apidoc_item sv_catpvf_nocontext
 
 These process their arguments like C<sprintf>, and append the formatted
 output to an SV.  As with C<sv_vcatpvfn>, argument reordering is not supporte
@@ -11972,6 +12144,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
 #endif
     /* we never change this unless USE_LOCALE_NUMERIC */
     bool in_lc_numeric = FALSE;
+    SV *tmp_sv = NULL;
 
     PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS;
     PERL_UNUSED_ARG(maybe_tainted);
@@ -12077,6 +12250,8 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
 
         char c;                       /* the actual format ('d', s' etc) */
 
+        bool escape_it   = FALSE;     /* if this is a string should we quote and escape it? */
+
 
         /* echo everything up to the next format specification */
         for (q = fmtstart; q < patend && *q != '%'; ++q)
@@ -12450,6 +12625,21 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
             }
 
         string:
+            if (escape_it) {
+                U32 flags = PERL_PV_PRETTY_QUOTEDPREFIX;
+                if (is_utf8)
+                    flags |= PERL_PV_ESCAPE_UNI;
+
+                if (!tmp_sv) {
+                    /* "blah"... where blah might be made up
+                     * of characters like \x{1234} */
+                    tmp_sv = newSV(1 + (PERL_QUOTEDPREFIX_LEN * 8) + 1 + 3);
+                    sv_2mortal(tmp_sv);
+                }
+                pv_pretty(tmp_sv, eptr, elen, PERL_QUOTEDPREFIX_LEN,
+                            NULL, NULL, flags);
+                eptr = SvPV_const(tmp_sv, elen);
+            }
             if (has_precis && precis < elen)
                 elen = precis;
             break;
@@ -12458,7 +12648,34 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
 
         case 'p':
 
-            /* %p extensions:
+            /* BEGIN NOTE
+             *
+             * We want to extend the C level sprintf format API with
+             * custom formats for specific types (eg SV*) and behavior.
+             * However some C compilers are "sprintf aware" and will
+             * throw compile time exceptions when an illegal sprintf is
+             * encountered, so we can't just add new format letters.
+             *
+             * However it turns out the length argument to the %p format
+             * is more or less useless (the size of a pointer does not
+             * change over time) and is not really used in the C level
+             * code. Accordingly we can map our special behavior to
+             * specific "length" options to the %p format. We hide these
+             * mappings behind defines anyway, so nobody needs to know
+             * that HEKf is actually %2p. This keeps the C compiler
+             * happy while allowing us to add new formats.
+             *
+             * Note the existing logic for which number is used for what
+             * is torturous. All negative values are used for SVf, and
+             * non-negative values have arbitrary meanings with no
+             * structure to them. This may change in the future.
+             *
+             * NEVER use the raw %p values directly. Always use the define
+             * as the underlying mapping may change in the future.
+             *
+             * END NOTE
+             *
+             * %p extensions:
              *
              * "%...p" is normally treated like "%...x", except that the
              * number to print is the SV's address (or a pointer address
@@ -12468,23 +12685,44 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
              * extensions. These are currently:
              *
              * %-p       (SVf)  Like %s, but gets the string from an SV*
-             *                  arg rather than a char* arg.
+             *                  arg rather than a char* arg. Use C<SVfARG()>
+             *                  to set up the argument properly.
              *                  (This was previously %_).
              *
-             * %-<num>p         Ditto but like %.<num>s (i.e. num is max width)
+             * %-<num>p         Ditto but like %.<num>s (i.e. num is max
+             *                  width), there is no escaped and quoted version
+             *                  of this.
+             *
+             * %1p       (PVf_QUOTEDPREFIX). Like raw %s, but it is escaped
+             *                  and quoted.
+             *
+             * %5p       (SVf_QUOTEDPREFIX) Like SVf, but length restricted,
+             *                  escaped and quoted with pv_pretty. Intended
+             *                  for error messages.
              *
              * %2p       (HEKf) Like %s, but using the key string in a HEK
+             * %7p       (HEKf_QUOTEDPREFIX) ... but escaped and quoted.
              *
              * %3p       (HEKf256) Ditto but like %.256s
+             * %8p       (HEKf256_QUOTEDPREFIX) ... but escaped and quoted
              *
              * %d%lu%4p  (UTF8f) A utf8 string. Consumes 3 args:
              *                       (cBOOL(utf8), len, string_buf).
              *                   It's handled by the "case 'd'" branch
              *                   rather than here.
+             * %d%lu%9p  (UTF8f_QUOTEDPREFIX) .. but escaped and quoted.
+             *
+             * %6p       (HvNAMEf) Like %s, but using the HvNAME() and HvNAMELEN()
+             * %10p      (HvNAMEf_QUOTEDPREFIX) ... but escaped and quoted
              *
-             * %<num>p   where num is 1 or > 4: reserved for future
+             * %<num>p   where num is > 9: reserved for future
              *           extensions. Warns, but then is treated as a
              *           general %p (print hex address) format.
+             *
+             * NOTE: If you add a new magic %p value you will
+             * need to update F<t/porting/diag.t> to be aware of it
+             * on top of adding the various defines and etc. Do not
+             * forget to add it to F<pod/perlguts.pod> as well.
              */
 
             if (   args
@@ -12496,10 +12734,12 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
                 && q[-2] != '*'
                 && q[-2] != '$'
             ) {
-                if (left) {			/* %-p (SVf), %-NNNp */
-                    if (width) {
+                if (left || width == 5) {                /* %-p (SVf), %-NNNp, %5p */
+                    if (left && width) {
                         precis = width;
                         has_precis = TRUE;
+                    } else if (width == 5) {
+                        escape_it = TRUE;
                     }
                     argsv = MUTABLE_SV(va_arg(*args, void*));
                     eptr = SvPV_const(argsv, elen);
@@ -12508,7 +12748,9 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
                     width = 0;
                     goto string;
                 }
-                else if (width == 2 || width == 3) {	/* HEKf, HEKf256 */
+                else if (width == 2 || width == 3 ||
+                         width == 7 || width == 8)
+                {        /* HEKf, HEKf256, HEKf_QUOTEDPREFIX, HEKf256_QUOTEDPREFIX */
                     HEK * const hek = va_arg(*args, HEK *);
                     eptr = HEK_KEY(hek);
                     elen = HEK_LEN(hek);
@@ -12518,10 +12760,31 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
                         precis = 256;
                         has_precis = TRUE;
                     }
+                    if (width > 5)
+                        escape_it = TRUE;
+                    width = 0;
+                    goto string;
+                }
+                else if (width == 1) {
+                    eptr = va_arg(*args,char *);
+                    elen = strlen(eptr);
+                    escape_it = TRUE;
+                    width = 0;
+                    goto string;
+                }
+                else if (width == 6 || width == 10) {
+                    HV *hv = va_arg(*args, HV *);
+                    eptr = HvNAME(hv);
+                    elen = HvNAMELEN(hv);
+                    if (HvNAMEUTF8(hv))
+                        is_utf8 = TRUE;
+                    if (width == 10)
+                        escape_it = TRUE;
                     width = 0;
                     goto string;
                 }
                 else if (width) {
+                    /* note width=4 or width=9 is handled under %d */
                     Perl_ck_warner_d(aTHX_ packWARN(WARN_INTERNAL),
                          "internal %%<num>p might conflict with future printf extensions");
                 }
@@ -12562,7 +12825,8 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
         case 'd':
             /* probably just a plain %d, but it might be the start of the
              * special UTF8f format, which usually looks something like
-             * "%d%lu%4p" (the lu may vary by platform)
+             * "%d%lu%4p" (the lu may vary by platform) or
+             * "%d%lu%9p" for an escaped version.
              */
             assert((UTF8f)[0] == 'd');
             assert((UTF8f)[1] == '%');
@@ -12571,10 +12835,15 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s
                  && q == fmtstart + 1 /* plain %d, not %....d */
                  && patend >= fmtstart + sizeof(UTF8f) - 1 /* long enough */
                  && *q == '%'
-                 && strnEQ(q + 1, (UTF8f) + 2, sizeof(UTF8f) - 3))
+                 && strnEQ(q + 1, (UTF8f) + 2, sizeof(UTF8f) - 5)
+                 && q[sizeof(UTF8f)-3] == 'p'
+                 && (q[sizeof(UTF8f)-4] == '4' ||
+                     q[sizeof(UTF8f)-4] == '9'))
             {
                 /* The argument has already gone through cBOOL, so the cast
                    is safe. */
+                if (q[sizeof(UTF8f)-4] == '9')
+                    escape_it = TRUE;
                 is_utf8 = (bool)va_arg(*args, int);
                 elen = va_arg(*args, UV);
                 /* if utf8 length is larger than 0x7ffff..., then it might
@@ -13527,21 +13796,6 @@ ptr_table_* functions.
 #endif
 
 
-/* Certain cases in Perl_ss_dup have been merged, by relying on the fact
-   that currently av_dup, gv_dup and hv_dup are the same as sv_dup.
-   If this changes, please unmerge ss_dup.
-   Likewise, sv_dup_inc_multiple() relies on this fact.  */
-#define sv_dup_inc_NN(s,t)	SvREFCNT_inc_NN(sv_dup_inc(s,t))
-#define av_dup(s,t)	MUTABLE_AV(sv_dup((const SV *)s,t))
-#define av_dup_inc(s,t)	MUTABLE_AV(sv_dup_inc((const SV *)s,t))
-#define hv_dup(s,t)	MUTABLE_HV(sv_dup((const SV *)s,t))
-#define hv_dup_inc(s,t)	MUTABLE_HV(sv_dup_inc((const SV *)s,t))
-#define cv_dup(s,t)	MUTABLE_CV(sv_dup((const SV *)s,t))
-#define cv_dup_inc(s,t)	MUTABLE_CV(sv_dup_inc((const SV *)s,t))
-#define io_dup(s,t)	MUTABLE_IO(sv_dup((const SV *)s,t))
-#define io_dup_inc(s,t)	MUTABLE_IO(sv_dup_inc((const SV *)s,t))
-#define gv_dup(s,t)	MUTABLE_GV(sv_dup((const SV *)s,t))
-#define gv_dup_inc(s,t)	MUTABLE_GV(sv_dup_inc((const SV *)s,t))
 #define SAVEPV(p)	((p) ? savepv(p) : NULL)
 #define SAVEPVN(p,n)	((p) ? savepvn(p,n) : NULL)
 
@@ -13931,6 +14185,7 @@ struct ptr_tbl_arena {
 };
 
 /*
+=for apidoc_section $embedding
 =for apidoc ptr_table_new
 
 Create a new pointer-mapping table
@@ -14183,6 +14438,86 @@ S_sv_dup_inc_multiple(pTHX_ SV *const *s
     return dest;
 }
 
+/* duplicate the HvAUX of an HV */
+static void
+S_sv_dup_hvaux(pTHX_ const SV *const ssv, SV *dsv, CLONE_PARAMS *const param)
+{
+    PERL_ARGS_ASSERT_SV_DUP_HVAUX;
+
+    const struct xpvhv_aux * const saux = HvAUX(ssv);
+    struct xpvhv_aux * const daux = HvAUX(dsv);
+    /* This flag isn't copied.  */
+    SvFLAGS(dsv) |= SVphv_HasAUX;
+
+    if (saux->xhv_name_count) {
+        HEK ** const sname = saux->xhv_name_u.xhvnameu_names;
+        const I32 count = saux->xhv_name_count < 0
+            ? -saux->xhv_name_count
+            :  saux->xhv_name_count;
+        HEK **shekp = sname + count;
+        HEK **dhekp;
+        Newx(daux->xhv_name_u.xhvnameu_names, count, HEK *);
+        dhekp = daux->xhv_name_u.xhvnameu_names + count;
+        while (shekp-- > sname) {
+            dhekp--;
+            *dhekp = hek_dup(*shekp, param);
+        }
+    }
+    else {
+        daux->xhv_name_u.xhvnameu_name = hek_dup(saux->xhv_name_u.xhvnameu_name, param);
+    }
+    daux->xhv_name_count = saux->xhv_name_count;
+
+    daux->xhv_aux_flags = saux->xhv_aux_flags;
+#ifdef PERL_HASH_RANDOMIZE_KEYS
+    daux->xhv_rand = saux->xhv_rand;
+    daux->xhv_last_rand = saux->xhv_last_rand;
+#endif
+    daux->xhv_riter = saux->xhv_riter;
+    daux->xhv_eiter = saux->xhv_eiter ? he_dup(saux->xhv_eiter, FALSE, param) : 0;
+    /* backref array needs refcnt=2; see sv_add_backref */
+    daux->xhv_backreferences =
+        (param->flags & CLONEf_JOIN_IN)
+            /* when joining, we let the individual GVs and
+             * CVs add themselves to backref as
+             * needed. This avoids pulling in stuff
+             * that isn't required, and simplifies the
+             * case where stashes aren't cloned back
+             * if they already exist in the parent
+             * thread */
+        ? NULL
+        : saux->xhv_backreferences
+            ? (SvTYPE(saux->xhv_backreferences) == SVt_PVAV)
+                ? MUTABLE_AV(SvREFCNT_inc(
+                      sv_dup_inc((const SV *)
+                        saux->xhv_backreferences, param)))
+                : MUTABLE_AV(sv_dup((const SV *)
+                        saux->xhv_backreferences, param))
+            : 0;
+
+    daux->xhv_mro_meta = saux->xhv_mro_meta
+        ? mro_meta_dup(saux->xhv_mro_meta, param)
+        : 0;
+
+    /* Record stashes for possible cloning in Perl_clone(). */
+    if (HvNAME(ssv))
+        av_push(param->stashes, dsv);
+
+    if (HvSTASH_IS_CLASS(ssv)) {
+        daux->xhv_class_superclass    = hv_dup_inc(saux->xhv_class_superclass,    param);
+        daux->xhv_class_initfields_cv = cv_dup_inc(saux->xhv_class_initfields_cv, param);
+        daux->xhv_class_adjust_blocks = av_dup_inc(saux->xhv_class_adjust_blocks, param);
+        daux->xhv_class_fields        = padnamelist_dup_inc(saux->xhv_class_fields, param);
+        daux->xhv_class_next_fieldix  = saux->xhv_class_next_fieldix;
+        daux->xhv_class_param_map     = hv_dup_inc(saux->xhv_class_param_map,     param);
+
+        /* TODO: This does mean that we can't compile more `field` expressions
+         * in the cloned thread, but surely we're done with compiletime now..?
+         */
+        daux->xhv_class_suspended_initfields_compcv = NULL;
+    }
+}
+
 /* duplicate an SV of any type (including AV, HV etc) */
 
 static SV *
@@ -14192,7 +14527,7 @@ S_sv_dup_common(pTHX_ const SV *const ss
 
     PERL_ARGS_ASSERT_SV_DUP_COMMON;
 
-    if (SvTYPE(ssv) == (svtype)SVTYPEMASK) {
+    if (SvIS_FREED(ssv)) {
 #ifdef DEBUG_LEAKING_SCALARS_ABORT
         abort();
 #endif
@@ -14302,12 +14637,12 @@ S_sv_dup_common(pTHX_ const SV *const ss
 
             switch (sv_type) {
             default:
-                Perl_croak(aTHX_ "Bizarre SvTYPE [%" IVdf "]", (IV)SvTYPE(ssv));
+                Perl_croak(param->proto_perl, "Bizarre SvTYPE [%" IVdf "]", (IV)SvTYPE(ssv));
                 NOT_REACHED; /* NOTREACHED */
                 break;
 
             case SVt_PVHV:
-                if (SvOOK(ssv)) {
+                if (HvHasAUX(ssv)) {
                     sv_type_details = &fake_hv_with_aux;
 #ifdef PURIFY
                     new_body = new_NOARENA(sv_type_details);
@@ -14317,6 +14652,7 @@ S_sv_dup_common(pTHX_ const SV *const ss
                     goto have_body;
                 }
                 /* FALLTHROUGH */
+            case SVt_PVOBJ:
             case SVt_PVGV:
             case SVt_PVIO:
             case SVt_PVFM:
@@ -14355,7 +14691,7 @@ S_sv_dup_common(pTHX_ const SV *const ss
                  sv_type_details->body_size + sv_type_details->offset, char);
 #endif
 
-            if (sv_type != SVt_PVAV && sv_type != SVt_PVHV
+            if (sv_type != SVt_PVAV && sv_type != SVt_PVHV && sv_type != SVt_PVOBJ
                 && !isGV_with_GP(dsv)
                 && !isREGEXP(dsv)
                 && !(sv_type == SVt_PVIO && !(IoFLAGS(dsv) & IOf_FAKE_DIRP)))
@@ -14491,70 +14827,8 @@ S_sv_dup_common(pTHX_ const SV *const ss
                             ? he_dup(source, FALSE, param) : 0;
                         ++i;
                     }
-                    if (SvOOK(ssv)) {
-                        const struct xpvhv_aux * const saux = HvAUX(ssv);
-                        struct xpvhv_aux * const daux = HvAUX(dsv);
-                        /* This flag isn't copied.  */
-                        SvOOK_on(dsv);
-
-                        if (saux->xhv_name_count) {
-                            HEK ** const sname = saux->xhv_name_u.xhvnameu_names;
-                            const I32 count
-                             = saux->xhv_name_count < 0
-                                ? -saux->xhv_name_count
-                                :  saux->xhv_name_count;
-                            HEK **shekp = sname + count;
-                            HEK **dhekp;
-                            Newx(daux->xhv_name_u.xhvnameu_names, count, HEK *);
-                            dhekp = daux->xhv_name_u.xhvnameu_names + count;
-                            while (shekp-- > sname) {
-                                dhekp--;
-                                *dhekp = hek_dup(*shekp, param);
-                            }
-                        }
-                        else {
-                            daux->xhv_name_u.xhvnameu_name
-                                = hek_dup(saux->xhv_name_u.xhvnameu_name,
-                                          param);
-                        }
-                        daux->xhv_name_count = saux->xhv_name_count;
-
-                        daux->xhv_aux_flags = saux->xhv_aux_flags;
-#ifdef PERL_HASH_RANDOMIZE_KEYS
-                        daux->xhv_rand = saux->xhv_rand;
-                        daux->xhv_last_rand = saux->xhv_last_rand;
-#endif
-                        daux->xhv_riter = saux->xhv_riter;
-                        daux->xhv_eiter = saux->xhv_eiter
-                            ? he_dup(saux->xhv_eiter, FALSE, param) : 0;
-                        /* backref array needs refcnt=2; see sv_add_backref */
-                        daux->xhv_backreferences =
-                            (param->flags & CLONEf_JOIN_IN)
-                                /* when joining, we let the individual GVs and
-                                 * CVs add themselves to backref as
-                                 * needed. This avoids pulling in stuff
-                                 * that isn't required, and simplifies the
-                                 * case where stashes aren't cloned back
-                                 * if they already exist in the parent
-                                 * thread */
-                            ? NULL
-                            : saux->xhv_backreferences
-                                ? (SvTYPE(saux->xhv_backreferences) == SVt_PVAV)
-                                    ? MUTABLE_AV(SvREFCNT_inc(
-                                          sv_dup_inc((const SV *)
-                                            saux->xhv_backreferences, param)))
-                                    : MUTABLE_AV(sv_dup((const SV *)
-                                            saux->xhv_backreferences, param))
-                                : 0;
-
-                        daux->xhv_mro_meta = saux->xhv_mro_meta
-                            ? mro_meta_dup(saux->xhv_mro_meta, param)
-                            : 0;
-
-                        /* Record stashes for possible cloning in Perl_clone(). */
-                        if (HvNAME(ssv))
-                            av_push(param->stashes, dsv);
-                    }
+                    if (HvHasAUX(ssv))
+                        sv_dup_hvaux(ssv, dsv, param);
                 }
                 else
                     HvARRAY(MUTABLE_HV(dsv)) = NULL;
@@ -14578,6 +14852,9 @@ S_sv_dup_common(pTHX_ const SV *const ss
                 } else if (CvCONST(dsv)) {
                     CvXSUBANY(dsv).any_ptr =
                         sv_dup_inc((const SV *)CvXSUBANY(dsv).any_ptr, param);
+                } else if (CvREFCOUNTED_ANYSV(dsv)) {
+                    CvXSUBANY(dsv).any_sv =
+                        sv_dup_inc((const SV *)CvXSUBANY(dsv).any_sv, param);
                 }
                 assert(!CvSLABBED(dsv));
                 if (CvDYNFILE(dsv)) CvFILE(dsv) = SAVEPV(CvFILE(dsv));
@@ -14600,7 +14877,7 @@ S_sv_dup_common(pTHX_ const SV *const ss
                         padlist = padlist_dup(padlist, param);
                     CvPADLIST_set(dsv, padlist);
                 } else
-/* unthreaded perl can't sv_dup so we dont support unthreaded's CvHSCXT */
+/* unthreaded perl can't sv_dup so we don't support unthreaded's CvHSCXT */
                     PoisonPADLIST(dsv);
 
                 CvOUTSIDE(dsv)	=
@@ -14608,6 +14885,16 @@ S_sv_dup_common(pTHX_ const SV *const ss
                     ? cv_dup(    CvOUTSIDE(dsv), param)
                     : cv_dup_inc(CvOUTSIDE(dsv), param);
                 break;
+            case SVt_PVOBJ:
+                {
+                    Size_t fieldcount = ObjectMAXFIELD(ssv) + 1;
+
+                    Newx(ObjectFIELDS(dsv), fieldcount, SV *);
+                    ObjectMAXFIELD(dsv) = fieldcount - 1;
+
+                    sv_dup_inc_multiple(ObjectFIELDS(ssv), ObjectFIELDS(dsv), fieldcount, param);
+                }
+                break;
             }
         }
     }
@@ -14829,7 +15116,7 @@ Perl_si_dup(pTHX_ PERL_SI *si, CLONE_PAR
 #define pv_dup(p)	SAVEPV(p)
 #define svp_dup_inc(p,pp)	any_dup(p,pp)
 
-/* map any object to the new equivent - either something in the
+/* map any object to the new equivalent - either something in the
  * ptr table, or something in the interpreter structure
  */
 
@@ -14877,6 +15164,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto
     const GV *gv;
     const AV *av;
     const HV *hv;
+    char *pv; /* no const deliberately */
     void* ptr;
     int intval;
     long longval;
@@ -14937,6 +15225,18 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto
                 SvREFCNT_inc_simple_void((SV *)TOPPTR(nss,ix));
             ptr = POPPTR(ss,ix);
             TOPPTR(nss,ix) = svp_dup_inc((SV**)ptr, proto_perl);/* XXXXX */
+            /* this feels very strange, we have a **SV from one thread,
+             * we copy the SV, but dont change the **SV. But in this thread
+             * the target of the **SV could be something from the *other* thread.
+             * So how can this possibly work correctly? */
+            break;
+        case SAVEt_RCPV:
+            pv = (char *)POPPTR(ss,ix);
+            TOPPTR(nss,ix) = rcpv_copy(pv);
+            ptr = POPPTR(ss,ix);
+            (void)rcpv_copy(*((char **)ptr));
+            TOPPTR(nss,ix) = ptr;
+            /* XXXXX: see comment above. */
             break;
         case SAVEt_GVSLOT:		/* any slot in GV */
             sv = (const SV *)POPPTR(ss,ix);
@@ -15066,6 +15366,10 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto
             c = (char*)POPPTR(ss,ix);
             TOPPTR(nss,ix) = pv_dup_inc(c);
             break;
+        case SAVEt_FREERCPV:
+            c = (char *)POPPTR(ss,ix);
+            TOPPTR(nss,ix) = rcpv_copy(c);
+            break;
         case SAVEt_STACK_POS:		/* Position on Perl stack */
             i = POPINT(ss,ix);
             TOPINT(nss,ix) = i;
@@ -15129,9 +15433,11 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto
             sv = (const SV *)POPPTR(ss,ix);
             TOPPTR(nss,ix) = sv_dup(sv, param);
             break;
+        case SAVEt_CURCOP_WARNINGS:
+            /* FALLTHROUGH */
         case SAVEt_COMPILE_WARNINGS:
             ptr = POPPTR(ss,ix);
-            TOPPTR(nss,ix) = DUP_WARNINGS((STRLEN*)ptr);
+            TOPPTR(nss,ix) = DUP_WARNINGS((char*)ptr);
             break;
         case SAVEt_PARSER:
             ptr = POPPTR(ss,ix);
@@ -15278,6 +15584,7 @@ perl_clone_using(PerlInterpreter *proto_
 
     /* for each stash, determine whether its objects should be cloned */
     S_visit(proto_perl, do_mark_cloneable_stash, SVt_PVHV, SVTYPEMASK);
+    my_perl->Iphase = PERL_PHASE_CONSTRUCT;
     PERL_SET_THX(my_perl);
 
 #ifdef DEBUGGING
@@ -15293,6 +15600,7 @@ perl_clone_using(PerlInterpreter *proto_
     PL_savestack_max = -1;
     PL_sig_pending = 0;
     PL_parser = NULL;
+    PL_eval_begin_nest_depth = proto_perl->Ieval_begin_nest_depth;
     Zero(&PL_debug_pad, 1, struct perl_debug_pad);
     Zero(&PL_padname_undef, 1, PADNAME);
     Zero(&PL_padname_const, 1, PADNAME);
@@ -15362,7 +15670,7 @@ perl_clone_using(PerlInterpreter *proto_
     PL_minus_c		= proto_perl->Iminus_c;
 
     PL_localpatches	= proto_perl->Ilocalpatches;
-    PL_splitstr		= proto_perl->Isplitstr;
+    PL_splitstr		= SAVEPV(proto_perl->Isplitstr);
     PL_minus_n		= proto_perl->Iminus_n;
     PL_minus_p		= proto_perl->Iminus_p;
     PL_minus_l		= proto_perl->Iminus_l;
@@ -15427,7 +15735,6 @@ perl_clone_using(PerlInterpreter *proto_
     PL_nomemok		= proto_perl->Inomemok;
     PL_an		= proto_perl->Ian;
     PL_evalseq		= proto_perl->Ievalseq;
-    PL_origenviron	= proto_perl->Iorigenviron;	/* XXX not quite right */
     PL_origalen		= proto_perl->Iorigalen;
 
     PL_sighandlerp	= proto_perl->Isighandlerp;
@@ -15439,29 +15746,6 @@ perl_clone_using(PerlInterpreter *proto_
     PL_subline		= proto_perl->Isubline;
 
     PL_cv_has_eval	= proto_perl->Icv_has_eval;
-
-#ifdef USE_LOCALE_COLLATE
-    PL_collation_ix	= proto_perl->Icollation_ix;
-    PL_collation_standard = proto_perl->Icollation_standard;
-    PL_collxfrm_base	= proto_perl->Icollxfrm_base;
-    PL_collxfrm_mult	= proto_perl->Icollxfrm_mult;
-    PL_strxfrm_max_cp   = proto_perl->Istrxfrm_max_cp;
-#endif /* USE_LOCALE_COLLATE */
-
-#ifdef USE_LOCALE_NUMERIC
-    PL_numeric_standard	= proto_perl->Inumeric_standard;
-    PL_numeric_underlying	= proto_perl->Inumeric_underlying;
-    PL_numeric_underlying_is_standard	= proto_perl->Inumeric_underlying_is_standard;
-#endif /* !USE_LOCALE_NUMERIC */
-
-    /* Did the locale setup indicate UTF-8? */
-    PL_utf8locale	= proto_perl->Iutf8locale;
-    PL_in_utf8_CTYPE_locale = proto_perl->Iin_utf8_CTYPE_locale;
-    PL_in_utf8_COLLATE_locale = proto_perl->Iin_utf8_COLLATE_locale;
-    my_strlcpy(PL_locale_utf8ness, proto_perl->Ilocale_utf8ness, sizeof(PL_locale_utf8ness));
-#if defined(USE_ITHREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
-    PL_lc_numeric_mutex_depth = 0;
-#endif
     /* Unicode features (see perlrun/-C) */
     PL_unicode		= proto_perl->Iunicode;
 
@@ -15490,6 +15774,8 @@ perl_clone_using(PerlInterpreter *proto_
 
     PL_srand_called	= proto_perl->Isrand_called;
     Copy(&(proto_perl->Irandom_state), &PL_random_state, 1, PL_RANDOM_STATE_TYPE);
+    PL_srand_override   = proto_perl->Isrand_override;
+    PL_srand_override_next = proto_perl->Isrand_override_next;
 
     if (flags & CLONEf_COPY_STACKS) {
         /* next allocation will be PL_tmps_stack[PL_tmps_ix+1] */
@@ -15586,9 +15872,7 @@ perl_clone_using(PerlInterpreter *proto_
 
     Zero(PL_sv_consts, SV_CONSTS_COUNT, SV*);
 
-    /* This PV will be free'd special way so must set it same way op.c does */
-    PL_compiling.cop_file    = savesharedpv(PL_compiling.cop_file);
-    ptr_table_store(PL_ptr_table, proto_perl->Icompiling.cop_file, PL_compiling.cop_file);
+    PL_compiling.cop_file    = rcpv_copy(proto_perl->Icompiling.cop_file);
 
     ptr_table_store(PL_ptr_table, &proto_perl->Icompiling, &PL_compiling);
     PL_compiling.cop_warnings = DUP_WARNINGS(PL_compiling.cop_warnings);
@@ -15621,6 +15905,9 @@ perl_clone_using(PerlInterpreter *proto_
     PL_diehook		= sv_dup_inc(proto_perl->Idiehook, param);
     PL_warnhook		= sv_dup_inc(proto_perl->Iwarnhook, param);
 
+    PL_hook__require__before = sv_dup_inc(proto_perl->Ihook__require__before, param);
+    PL_hook__require__after  = sv_dup_inc(proto_perl->Ihook__require__after, param);
+
     /* switches */
     PL_patchlevel	= sv_dup_inc(proto_perl->Ipatchlevel, param);
     PL_inplace		= SAVEPV(proto_perl->Iinplace);
@@ -15762,30 +16049,60 @@ perl_clone_using(PerlInterpreter *proto_
 
     PL_subname		= sv_dup_inc(proto_perl->Isubname, param);
 
-#if   defined(USE_POSIX_2008_LOCALE)      \
- &&   defined(USE_THREAD_SAFE_LOCALE)     \
- && ! defined(HAS_QUERYLOCALE)
+#ifdef USE_PL_CURLOCALES
     for (i = 0; i < (int) C_ARRAY_LENGTH(PL_curlocales); i++) {
-        PL_curlocales[i] = savepv("."); /* An illegal value */
+        PL_curlocales[i] = SAVEPV("C");
     }
 #endif
+#ifdef USE_PL_CUR_LC_ALL
+    PL_cur_LC_ALL = SAVEPV("C");
+#endif
 #ifdef USE_LOCALE_CTYPE
+    Copy(PL_fold, PL_fold_locale, 256, U8);
+
     /* Should we warn if uses locale? */
+    PL_ctype_name	= SAVEPV("C");
     PL_warn_locale      = sv_dup_inc(proto_perl->Iwarn_locale, param);
+    PL_in_utf8_CTYPE_locale   = false;
+    PL_in_utf8_turkic_locale  = false;
 #endif
 
+    /* Did the locale setup indicate UTF-8? */
+    PL_utf8locale	= false;
+
 #ifdef USE_LOCALE_COLLATE
-    PL_collation_name	= SAVEPV(proto_perl->Icollation_name);
+    PL_in_utf8_COLLATE_locale = false;
+    PL_collation_name	= SAVEPV("C");
+    PL_collation_ix	= proto_perl->Icollation_ix;
+    PL_collation_standard = true;
+    PL_collxfrm_base	= 0;
+    PL_collxfrm_mult	= 0;
+    PL_strxfrm_max_cp   = 0;
+    PL_strxfrm_is_behaved = proto_perl->Istrxfrm_is_behaved;
+    PL_strxfrm_NUL_replacement = '\0';
 #endif /* USE_LOCALE_COLLATE */
 
+#ifdef USE_LOCALE_THREADS
+    assert(PL_locale_mutex_depth <= 0);
+    PL_locale_mutex_depth = 0;
+#endif
+
 #ifdef USE_LOCALE_NUMERIC
-    PL_numeric_name	= SAVEPV(proto_perl->Inumeric_name);
-    PL_numeric_radix_sv	= sv_dup_inc(proto_perl->Inumeric_radix_sv, param);
+    PL_numeric_name	= SAVEPV("C");
+    PL_numeric_radix_sv	= newSVpvs(".");
+    PL_underlying_radix_sv = newSVpvs(".");
+    PL_numeric_standard	= true;
+    PL_numeric_underlying = true;
+    PL_numeric_underlying_is_standard = true;
 
-#  if defined(HAS_POSIX_2008_LOCALE)
+#  if defined(USE_POSIX_2008_LOCALE)
     PL_underlying_numeric_obj = NULL;
 #  endif
 #endif /* !USE_LOCALE_NUMERIC */
+#if defined(USE_POSIX_2008_LOCALE)
+    PL_scratch_locale_obj = NULL;
+    PL_cur_locale_obj = PL_C_locale_obj;
+#endif
 
 #ifdef HAS_MBRLEN
     PL_mbrlen_ps = proto_perl->Imbrlen_ps;
@@ -15803,6 +16120,9 @@ perl_clone_using(PerlInterpreter *proto_
     PL_setlocale_buf = NULL;
     PL_setlocale_bufsize = 0;
 
+    PL_stdize_locale_buf = NULL;
+    PL_stdize_locale_bufsize = 0;
+
     /* Unicode inversion lists */
 
     PL_AboveLatin1            = sv_dup_inc(proto_perl->IAboveLatin1, param);
@@ -15826,12 +16146,12 @@ perl_clone_using(PerlInterpreter *proto_
     PL_WB_invlist             = sv_dup_inc(proto_perl->IWB_invlist, param);
     for (i = 0; i < POSIX_CC_COUNT; i++) {
         PL_XPosix_ptrs[i]     = sv_dup_inc(proto_perl->IXPosix_ptrs[i], param);
-        if (i != _CC_CASED && i != _CC_VERTSPACE) {
+        if (i != CC_CASED_ && i != CC_VERTSPACE_) {
             PL_Posix_ptrs[i]  = sv_dup_inc(proto_perl->IPosix_ptrs[i], param);
         }
     }
-    PL_Posix_ptrs[_CC_CASED]  = PL_Posix_ptrs[_CC_ALPHA];
-    PL_Posix_ptrs[_CC_VERTSPACE] = NULL;
+    PL_Posix_ptrs[CC_CASED_]  = PL_Posix_ptrs[CC_ALPHA_];
+    PL_Posix_ptrs[CC_VERTSPACE_] = NULL;
 
     PL_utf8_toupper           = sv_dup_inc(proto_perl->Iutf8_toupper, param);
     PL_utf8_totitle           = sv_dup_inc(proto_perl->Iutf8_totitle, param);
@@ -16322,7 +16642,7 @@ S_find_hash_subscript(pTHX_ const HV *co
         HE *entry;
         for (entry = array[i]; entry; entry = HeNEXT(entry)) {
             if (HeVAL(entry) == val)
-                return sv_2mortal(newSVhek(HeKEY_hek(entry)));
+                return newSVhek_mortal(HeKEY_hek(entry));
         }
     }
     return NULL;
@@ -16463,8 +16783,19 @@ S_find_uninit_var(pTHX_ const OP *const 
     switch (obase->op_type) {
 
     case OP_UNDEF:
-        /* undef should care if its args are undef - any warnings
+        /* the optimizer rewrites '$x = undef' to 'undef $x' for lexical
+         * variables, which can occur as the source of warnings:
+         *   ($x = undef) =~ s/a/b/;
+         * The OPpUNDEF_KEEP_PV flag indicates that this used to be an
+         * assignment op.
+         * Otherwise undef should not care if its args are undef - any warnings
          * will be from tied/magic vars */
+        if (
+            (obase->op_private & (OPpTARGET_MY | OPpUNDEF_KEEP_PV)) == (OPpTARGET_MY | OPpUNDEF_KEEP_PV)
+            && (!match || PAD_SVl(obase->op_targ) == uninit_sv)
+        ) {
+            return varname(NULL, '$', obase->op_targ, NULL, 0, FUV_SUBSCRIPT_NONE);
+        }
         break;
 
     case OP_RV2AV:
@@ -16543,6 +16874,12 @@ S_find_uninit_var(pTHX_ const OP *const 
         return varname(NULL, '$', obase->op_targ,
                                     NULL, 0, FUV_SUBSCRIPT_NONE);
 
+    case OP_PADSV_STORE:
+        if (match && PAD_SVl(obase->op_targ) != uninit_sv)
+            goto do_op;
+        return varname(NULL, '$', obase->op_targ,
+                                    NULL, 0, FUV_SUBSCRIPT_NONE);
+
     case OP_GVSV:
         gv = cGVOPx_gv(obase);
         if (!gv || (match && GvSV(gv) != uninit_sv) || !GvSTASH(gv))
@@ -16561,6 +16898,20 @@ S_find_uninit_var(pTHX_ const OP *const 
         }
         return varname(NULL, '$', obase->op_targ,
                        NULL, (I8)obase->op_private, FUV_SUBSCRIPT_ARRAY);
+
+    case OP_AELEMFASTLEX_STORE:
+        if (match) {
+            SV **svp;
+            AV *av = MUTABLE_AV(PAD_SV(obase->op_targ));
+            if (!av || SvRMAGICAL(av))
+                goto do_op;
+            svp = av_fetch(av, (I8)obase->op_private, FALSE);
+            if (!svp || *svp != uninit_sv)
+                goto do_op;
+        }
+        return varname(NULL, '$', obase->op_targ,
+                       NULL, (I8)obase->op_private, FUV_SUBSCRIPT_ARRAY);
+
     case OP_AELEMFAST:
         {
             gv = cGVOPx_gv(obase);
@@ -17142,6 +17493,7 @@ S_find_uninit_var(pTHX_ const OP *const 
 
 
 /*
+=for apidoc_section $warning
 =for apidoc report_uninit
 
 Print appropriate "Use of uninitialized variable" warning.
Index: gnu/usr.bin/perl/sv.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/sv.h,v
diff -u -p -a -u -p -r1.24 sv.h
--- gnu/usr.bin/perl/sv.h	15 Feb 2023 01:36:13 -0000	1.24
+++ gnu/usr.bin/perl/sv.h	21 Feb 2024 15:47:03 -0000
@@ -38,9 +38,11 @@ The types are:
     SVt_PVCV
     SVt_PVFM
     SVt_PVIO
+    SVt_PVOBJ
 
 These are most easily explained from the bottom up.
 
+C<SVt_PVOBJ> is for object instances of the new `use feature 'class'` kind.
 C<SVt_PVIO> is for I/O objects, C<SVt_PVFM> for formats, C<SVt_PVCV> for
 subroutines, C<SVt_PVHV> for hashes and C<SVt_PVAV> for arrays.
 
@@ -67,10 +69,13 @@ PVMG, we save memory by allocating small
 other types are just simpler forms of C<SVt_PVMG>, with fewer internal fields.
 C<SVt_NULL> can only hold undef.  C<SVt_IV> can hold undef, an integer, or a
 reference.  (C<SVt_RV> is an alias for C<SVt_IV>, which exists for backward
-compatibility.)  C<SVt_NV> can hold any of those or a double.  C<SVt_PV> can only
-hold C<undef> or a string.  C<SVt_PVIV> is a superset of C<SVt_PV> and C<SVt_IV>.
-C<SVt_PVNV> is similar.  C<SVt_PVMG> can hold anything C<SVt_PVNV> can hold, but it
-can, but does not have to, be blessed or magical.
+compatibility.)  C<SVt_NV> can hold undef or a double. (In builds that support
+headless NVs, these could also hold a reference via a suitable offset, in the
+same way that SVt_IV does, but this is not currently supported and seems to
+be a rare use case.) C<SVt_PV> can hold C<undef>, a string, or a reference.
+C<SVt_PVIV> is a superset of C<SVt_PV> and C<SVt_IV>. C<SVt_PVNV> is a
+superset of C<SVt_PV> and C<SVt_NV>. C<SVt_PVMG> can hold anything C<SVt_PVNV>
+can hold, but it may also be blessed or magical.
 
 =for apidoc AmnU||SVt_NULL
 Type flag for scalars.  See L</svtype>.
@@ -120,6 +125,9 @@ Type flag for formats.  See L</svtype>.
 =for apidoc AmnU||SVt_PVIO
 Type flag for I/O objects.  See L</svtype>.
 
+=for apidoc AmnUx||SVt_PVOBJ
+Type flag for object instances.  See L</svtype>.
+
 =cut
 
   These are ordered so that the simpler types have a lower value; SvUPGRADE
@@ -149,7 +157,8 @@ typedef enum {
         SVt_PVCV,	/* 13 */
         SVt_PVFM,	/* 14 */
         SVt_PVIO,	/* 15 */
-                        /* 16-31: Unused, though one should be reserved for a
+        SVt_PVOBJ,      /* 16 */
+                        /* 17-31: Unused, though one should be reserved for a
                          * freed sv, if the other 3 bits below the flags ones
                          * get allocated */
         SVt_LAST	/* keep last in enum. used to size arrays */
@@ -158,7 +167,7 @@ typedef enum {
 /* *** any alterations to the SV types above need to be reflected in
  * SVt_MASK and the various PL_valid_types_* tables.  As of this writing those
  * tables are in perl.h.  There are also two affected names tables in dump.c,
- * one in B.xs, and 'bodies_by_type[]' in sv.c.
+ * one in B.xs, and 'bodies_by_type[]' in sv_inline.h.
  *
  * The bits that match 0xe0 are CURRENTLY UNUSED
  * The bits above that are for flags, like SVf_IOK */
@@ -273,6 +282,11 @@ struct invlist {
     _SV_HEAD_UNION;
 };
 
+struct object {
+    _SV_HEAD(XPVOBJ*);          /* pointer to xobject body */
+    _SV_HEAD_UNION;
+};
+
 #undef _SV_HEAD
 #undef _SV_HEAD_UNION		/* ensure no pollution */
 
@@ -283,14 +297,14 @@ struct invlist {
 Returns the value of the object's reference count. Exposed
 to perl code via Internals::SvREFCNT().
 
-=for apidoc SvREFCNT_inc
-=for apidoc_item SvREFCNT_inc_NN
-=for apidoc_item SvREFCNT_inc_void
-=for apidoc_item |void|SvREFCNT_inc_void_NN|SV* sv
-=for apidoc_item |SV*|SvREFCNT_inc_simple|SV* sv
-=for apidoc_item |SV*|SvREFCNT_inc_simple_NN|SV* sv
+=for apidoc            SvREFCNT_inc
+=for apidoc_item       SvREFCNT_inc_NN
+=for apidoc_item |SV* |SvREFCNT_inc_simple|SV* sv
+=for apidoc_item |SV* |SvREFCNT_inc_simple_NN|SV* sv
 =for apidoc_item |void|SvREFCNT_inc_simple_void|SV* sv
 =for apidoc_item |void|SvREFCNT_inc_simple_void_NN|SV* sv
+=for apidoc_item       SvREFCNT_inc_void
+=for apidoc_item |void|SvREFCNT_inc_void_NN|SV* sv
 
 These all increment the reference count of the given SV.
 The ones without C<void> in their names return the SV.
@@ -322,13 +336,30 @@ effects and you don't need the return va
 C<SvREFCNT_inc_simple_void_NN> can only be used with expressions without side
 effects, you don't need the return value, and you know C<sv> is not C<NULL>.
 
-=for apidoc SvREFCNT_dec
+=for apidoc      SvREFCNT_dec
+=for apidoc_item SvREFCNT_dec_set_NULL
+=for apidoc_item SvREFCNT_dec_ret_NULL
 =for apidoc_item SvREFCNT_dec_NN
 
 These decrement the reference count of the given SV.
 
 C<SvREFCNT_dec_NN> may only be used when C<sv> is known to not be C<NULL>.
 
+The function C<SvREFCNT_dec_ret_NULL()> is identical to the
+C<SvREFCNT_dec()> except it returns a NULL C<SV *>.  It is used by
+C<SvREFCNT_dec_set_NULL()> which is a macro which will, when passed a
+non-NULL argument, decrement the reference count of its argument and
+then set it to NULL. You can replace code of the following form:
+
+    if (sv) {
+       SvREFCNT_dec_NN(sv);
+       sv = NULL;
+    }
+
+with
+
+    SvREFCNT_dec_set_NULL(sv);
+
 =for apidoc Am|svtype|SvTYPE|SV* sv
 Returns the type of the SV.  See C<L</svtype>>.
 
@@ -349,12 +380,22 @@ perform the upgrade if necessary.  See C
 #define SvREFCNT_inc_void(sv)		Perl_SvREFCNT_inc_void(MUTABLE_SV(sv))
 
 /* These guys don't need the curly blocks */
-#define SvREFCNT_inc_simple_void(sv)	STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
+#define SvREFCNT_inc_simple_void(sv)	                                \
+        STMT_START {                                                    \
+            SV * sv_ = MUTABLE_SV(sv);                                  \
+            if (sv_)                                                    \
+                SvREFCNT(sv_)++;                                        \
+        } STMT_END
+
 #define SvREFCNT_inc_simple_NN(sv)	(++(SvREFCNT(sv)),MUTABLE_SV(sv))
 #define SvREFCNT_inc_void_NN(sv)	(void)(++SvREFCNT(MUTABLE_SV(sv)))
 #define SvREFCNT_inc_simple_void_NN(sv)	(void)(++SvREFCNT(MUTABLE_SV(sv)))
 
 #define SvREFCNT_dec(sv)	Perl_SvREFCNT_dec(aTHX_ MUTABLE_SV(sv))
+#define SvREFCNT_dec_set_NULL(sv)                               \
+    STMT_START {                                                \
+        sv = Perl_SvREFCNT_dec_ret_NULL(aTHX_ MUTABLE_SV(sv));  \
+    } STMT_END
 #define SvREFCNT_dec_NN(sv)	Perl_SvREFCNT_dec_NN(aTHX_ MUTABLE_SV(sv))
 
 #define SVTYPEMASK	0xff
@@ -416,9 +457,8 @@ perform the upgrade if necessary.  See C
                                            including PVLV-as-regex. See
                                            isREGEXP().
                                        */
-#define SVf_OOK		0x02000000  /* has valid offset value. For a PVHV this
-                                       means that a hv_aux struct is present
-                                       after the main array */
+#define SVf_OOK		0x02000000  /* has valid offset value */
+#define SVphv_HasAUX    SVf_OOK     /* PVHV has an additional hv_aux struct */
 #define SVf_BREAK	0x04000000  /* refcnt is artificially low - used by
                                        SVs in final arena cleanup.
                                        Set in S_regtry on PL_reg_curpm, so that
@@ -662,6 +702,18 @@ struct xpvio {
 #define IOf_FAKE_DIRP	64	/* xio_dirp is fake (source filters kludge)
                                    Also, when this is set, SvPVX() is valid */
 
+struct xobject {
+    HV*         xmg_stash;
+    union _xmgu xmg_u;
+    SSize_t     xobject_maxfield;
+    SSize_t     xobject_iter_sv_at; /* this is only used by Perl_sv_clear() */
+    SV**        xobject_fields;
+};
+
+#define ObjectMAXFIELD(inst)  ((XPVOBJ *)SvANY(inst))->xobject_maxfield
+#define ObjectITERSVAT(inst)  ((XPVOBJ *)SvANY(inst))->xobject_iter_sv_at
+#define ObjectFIELDS(inst)    ((XPVOBJ *)SvANY(inst))->xobject_fields
+
 /* The following macros define implementation-independent predicates on SVs. */
 
 /*
@@ -746,6 +798,55 @@ Unsets the PV status of an SV.
 Tells an SV that it is a string and disables all other C<OK> bits.
 Will also turn off the UTF-8 status.
 
+=for apidoc Am|U32|SvBoolFlagsOK|SV* sv
+Returns a bool indicating whether the SV has the right flags set such
+that it is safe to call C<BOOL_INTERNALS_sv_isbool()> or
+C<BOOL_INTERNALS_sv_isbool_true()> or
+C<BOOL_INTERNALS_sv_isbool_false()>. Currently equivalent to
+C<SvIandPOK(sv)> or C<SvIOK(sv) && SvPOK(sv)>. Serialization may want to
+unroll this check. If so you are strongly recommended to add code like
+C<assert(SvBoolFlagsOK(sv));> B<before> calling using any of the
+BOOL_INTERNALS macros.
+
+=for apidoc Am|U32|SvIandPOK|SV* sv
+Returns a bool indicating whether the SV is both C<SvPOK()> and
+C<SvIOK()> at the same time. Equivalent to C<SvIOK(sv) && SvPOK(sv)> but
+more efficient.
+
+=for apidoc Am|void|SvIandPOK_on|SV* sv
+Tells an SV that is a string and a number in one operation. Equivalent
+to C<SvIOK_on(sv); SvPOK_on(sv);> but more efficient.
+
+=for apidoc Am|void|SvIandPOK_off|SV* sv
+Unsets the PV and IV status of an SV in one operation. Equivalent to
+C<SvIOK_off(sv); SvPK_off(v);> but more efficient.
+
+=for apidoc Am|bool|BOOL_INTERNALS_sv_isbool|SV* sv
+Checks if a C<SvBoolFlagsOK()> sv is a bool. B<Note> that it is the
+caller's responsibility to ensure that the sv is C<SvBoolFlagsOK()> before
+calling this. This is only useful in specialized logic like
+serialization code where performance is critical and the flags have
+already been checked to be correct. Almost always you should be using
+C<sv_isbool(sv)> instead.
+
+=for apidoc Am|bool|BOOL_INTERNALS_sv_isbool_true|SV* sv
+Checks if a C<SvBoolFlagsOK()> sv is a true bool. B<Note> that it is
+the caller's responsibility to ensure that the sv is C<SvBoolFlagsOK()>
+before calling this. This is only useful in specialized logic like
+serialization code where performance is critical and the flags have
+already been checked to be correct. This is B<NOT> what you should use
+to check if an SV is "true", for that you should be using
+C<SvTRUE(sv)> instead.
+
+=for apidoc Am|bool|BOOL_INTERNALS_sv_isbool_false|SV* sv
+Checks if a C<SvBoolFlagsOK()> sv is a false bool. B<Note> that it is
+the caller's responsibility to ensure that the sv is C<SvBoolFlagsOK()>
+before calling this. This is only useful in specialized logic like
+serialization code where performance is critical and the flags have
+already been checked to be correct. This is B<NOT> what you should use
+to check if an SV is "false", for that you should be using
+C<!SvTRUE(sv)> instead.
+
 =for apidoc Am|bool|SvVOK|SV* sv
 Returns a boolean indicating whether the SV contains a v-string.
 
@@ -784,10 +885,10 @@ This is an unnecessary synonym for L</Sv
 Returns the raw value in the SV's NV slot, without checks or conversions.
 Only use when you are sure C<SvNOK> is true.  See also C<L</SvNV>>.
 
-=for apidoc Am|char*|SvPVX|SV* sv
-=for apidoc_item |char*|SvPVXx|SV* sv
+=for apidoc Am   |char*      |SvPVX|SV* sv
 =for apidoc_item |const char*|SvPVX_const|SV* sv
-=for apidoc_item |char*|SvPVX_mutable|SV* sv
+=for apidoc_item |char*      |SvPVX_mutable|SV* sv
+=for apidoc_item |char*      |SvPVXx|SV* sv
 
 These return a pointer to the physical string in the SV.  The SV must contain a
 string.  Prior to 5.9.3 it is not safe to execute these unless the SV's
@@ -914,6 +1015,20 @@ Set the size of the string buffer for th
 #define SvIOK_notUV(sv)		((SvFLAGS(sv) & (SVf_IOK|SVf_IVisUV))	\
                                  == SVf_IOK)
 
+#define SvIandPOK(sv)              ((SvFLAGS(sv) & (SVf_IOK|SVf_POK)) == (SVf_IOK|SVf_POK))
+#define SvIandPOK_on(sv)           (assert_not_glob(sv) \
+                                    (SvFLAGS(sv) |= (SVf_IOK|SVp_IOK|SVf_POK|SVp_POK)))
+#define SvIandPOK_off(sv)          (SvFLAGS(sv) &= ~(SVf_IOK|SVp_IOK|SVf_IVisUV|SVf_POK|SVp_POK))
+
+#define SvBoolFlagsOK(sv)           SvIandPOK(sv)
+
+#define BOOL_INTERNALS_sv_isbool(sv)      (SvIsCOW_static(sv) && \
+        (SvPVX_const(sv) == PL_Yes || SvPVX_const(sv) == PL_No))
+#define BOOL_INTERNALS_sv_isbool_true(sv)      (SvIsCOW_static(sv) && \
+        (SvPVX_const(sv) == PL_Yes))
+#define BOOL_INTERNALS_sv_isbool_false(sv)      (SvIsCOW_static(sv) && \
+        (SvPVX_const(sv) == PL_No))
+
 #define SvIsUV(sv)		(SvFLAGS(sv) & SVf_IVisUV)
 #define SvIsUV_on(sv)		(SvFLAGS(sv) |= SVf_IVisUV)
 #define SvIsUV_off(sv)		(SvFLAGS(sv) &= ~SVf_IVisUV)
@@ -1132,7 +1247,7 @@ C<sv_force_normal> does nothing.
 #define SvTHINKFIRST(sv)	(SvFLAGS(sv) & SVf_THINKFIRST)
 
 #define SVs_PADMY		0
-#define SvPADMY(sv)		!(SvFLAGS(sv) & SVs_PADTMP)
+#define SvPADMY(sv)		(!(SvFLAGS(sv) & SVs_PADTMP))
 #ifndef PERL_CORE
 # define SvPADMY_on(sv)		SvPADTMP_off(sv)
 #endif
@@ -1330,8 +1445,8 @@ object type. Exposed to perl code via In
 #ifndef PERL_POISON
 /* Given that these two are new, there can't be any existing code using them
  *  as LVALUEs, so prevent that from happening  */
-#  define SvPVX_mutable(sv)	(0 + (sv)->sv_u.svu_pv)
-#  define SvPVX_const(sv)	((const char*)(0 + (sv)->sv_u.svu_pv))
+#  define SvPVX_mutable(sv)	((char *)((sv)->sv_u.svu_pv))
+#  define SvPVX_const(sv)	((const char*)((sv)->sv_u.svu_pv))
 #else
 /* Except for the poison code, which uses & to scribble over the pointer after
    free() is called.  */
@@ -1351,41 +1466,59 @@ object type. Exposed to perl code via In
    Not guaranteed to stay returning void */
 /* Macro won't actually call sv_2iv if already IOK */
 #define SvIV_please(sv) \
-        STMT_START {if (!SvIOKp(sv) && (SvFLAGS(sv) & (SVf_NOK|SVf_POK))) \
-                (void) SvIV(sv); } STMT_END
+        STMT_START {                                                        \
+            SV * sv_ = MUTABLE_SV(sv);                                      \
+            if (!SvIOKp(sv_) && (SvFLAGS(sv_) & (SVf_NOK|SVf_POK)))         \
+                (void) SvIV(sv_);                                           \
+        } STMT_END
 #define SvIV_please_nomg(sv) \
         (!(SvFLAGS(sv) & (SVf_IOK|SVp_IOK)) && (SvFLAGS(sv) & (SVf_NOK|SVf_POK)) \
             ? (sv_2iv_flags(sv, 0), SvIOK(sv))	  \
             : SvIOK(sv))
+
 #define SvIV_set(sv, val) \
         STMT_START { \
-                assert(PL_valid_types_IV_set[SvTYPE(sv) & SVt_MASK]);	\
-                assert(!isGV_with_GP(sv));		\
-                (((XPVIV*)  SvANY(sv))->xiv_iv = (val)); } STMT_END
+                SV * sv_ = MUTABLE_SV(sv);                                  \
+                assert(PL_valid_types_IV_set[SvTYPE(sv_) & SVt_MASK]);      \
+                assert(!isGV_with_GP(sv_));                                 \
+                (((XPVIV*)  SvANY(sv_))->xiv_iv = (val));                   \
+        } STMT_END
+
 #define SvNV_set(sv, val) \
         STMT_START { \
-                assert(PL_valid_types_NV_set[SvTYPE(sv) & SVt_MASK]);	\
-                assert(!isGV_with_GP(sv));		\
-                (((XPVNV*)SvANY(sv))->xnv_u.xnv_nv = (val)); } STMT_END
+                SV * sv_ = MUTABLE_SV(sv);                                  \
+                assert(PL_valid_types_NV_set[SvTYPE(sv_) & SVt_MASK]);      \
+                assert(!isGV_with_GP(sv_));                                 \
+                (((XPVNV*)SvANY(sv_))->xnv_u.xnv_nv = (val));               \
+        } STMT_END
+
 #define SvPV_set(sv, val) \
         STMT_START { \
-                assert(PL_valid_types_PVX[SvTYPE(sv) & SVt_MASK]);	\
-                assert(!isGV_with_GP(sv));		\
-                assert(!(SvTYPE(sv) == SVt_PVIO		\
-                     && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
-                ((sv)->sv_u.svu_pv = (val)); } STMT_END
+                SV * sv_ = MUTABLE_SV(sv);                                  \
+                assert(PL_valid_types_PVX[SvTYPE(sv_) & SVt_MASK]);         \
+                assert(!isGV_with_GP(sv_));		                    \
+                assert(!(SvTYPE(sv_) == SVt_PVIO		            \
+                     && !(IoFLAGS(sv_) & IOf_FAKE_DIRP)));                  \
+                ((sv_)->sv_u.svu_pv = (val));                               \
+        } STMT_END
+
 #define SvUV_set(sv, val) \
         STMT_START { \
-                assert(PL_valid_types_IV_set[SvTYPE(sv) & SVt_MASK]);	\
-                assert(!isGV_with_GP(sv));		\
-                (((XPVUV*)SvANY(sv))->xuv_uv = (val)); } STMT_END
+                SV * sv_ = MUTABLE_SV(sv);                                  \
+                assert(PL_valid_types_IV_set[SvTYPE(sv_) & SVt_MASK]);	    \
+                assert(!isGV_with_GP(sv_));		                    \
+                (((XPVUV*)SvANY(sv_))->xuv_uv = (val));                     \
+        } STMT_END
+
 #define SvRV_set(sv, val) \
         STMT_START { \
-                assert(PL_valid_types_RV[SvTYPE(sv) & SVt_MASK]);	\
-                assert(!isGV_with_GP(sv));		\
-                assert(!(SvTYPE(sv) == SVt_PVIO		\
-                     && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
-                ((sv)->sv_u.svu_rv = (val)); } STMT_END
+                SV * sv_ = MUTABLE_SV(sv);                                  \
+                assert(PL_valid_types_RV[SvTYPE(sv_) & SVt_MASK]);	    \
+                assert(!isGV_with_GP(sv_));		                    \
+                assert(!(SvTYPE(sv_) == SVt_PVIO		            \
+                     && !(IoFLAGS(sv_) & IOf_FAKE_DIRP)));                  \
+                ((sv_)->sv_u.svu_rv = (val));                               \
+        } STMT_END
 #define SvMAGIC_set(sv, val) \
         STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
                 (((XPVMG*)SvANY(sv))->xmg_u.xmg_magic = (val)); } STMT_END
@@ -1414,7 +1547,7 @@ object type. Exposed to perl code via In
 =for apidoc Am|void|SvPV_renew|SV* sv|STRLEN len
 Low level micro optimization of C<L</SvGROW>>.  It is generally better to use
 C<SvGROW> instead.  This is because C<SvPV_renew> ignores potential issues that
-C<SvGROW> handles.  C<sv> needs to have a real C<PV> that is unencombered by
+C<SvGROW> handles.  C<sv> needs to have a real C<PV> that is unencumbered by
 things like COW.  Using C<SV_CHECK_THINKFIRST> or
 C<SV_CHECK_THINKFIRST_COW_DROP> before calling this should clean it up, but
 why not just use C<SvGROW> if you're not sure about the provenance?
@@ -1427,6 +1560,19 @@ why not just use C<SvGROW> if you're not
                                 (char*)saferealloc((Malloc_t)SvPVX(sv), \
                                                    (MEM_SIZE)((n)))));  \
                  } STMT_END
+/*
+=for apidoc Am|void|SvPV_shrink_to_cur|SV* sv
+
+Trim any trailing unused memory in the PV of C<sv>, which needs to have a real
+C<PV> that is unencumbered by things like COW.  Think first before using this
+functionality.  Is the space saving really worth giving up COW?  Will the
+needed size of C<sv> stay the same?
+
+If the answers are both yes, then use L</C<SV_CHECK_THINKFIRST>> or
+L</C<SV_CHECK_THINKFIRST_COW_DROP>> before calling this.
+
+=cut
+*/
 
 #define SvPV_shrink_to_cur(sv) STMT_START { \
                    const STRLEN _lEnGtH = SvCUR(sv) + 1; \
@@ -1581,19 +1727,19 @@ attention to precisely which outputs are
 
 /*
 =for apidoc_section $SV
-=for apidoc Am|char*|SvPV_force|SV* sv|STRLEN len
-=for apidoc_item ||SvPV_force_nolen|SV* sv
-=for apidoc_item ||SvPVx_force|SV* sv|STRLEN len
-=for apidoc_item ||SvPV_force_nomg|SV* sv|STRLEN len
-=for apidoc_item ||SvPV_force_nomg_nolen|SV * sv
-=for apidoc_item ||SvPV_force_mutable|SV * sv|STRLEN len
-=for apidoc_item ||SvPV_force_flags|SV * sv|STRLEN len|U32 flags
-=for apidoc_item ||SvPV_force_flags_nolen|SV * sv|U32 flags
-=for apidoc_item ||SvPV_force_flags_mutable|SV * sv|STRLEN len|U32 flags
-=for apidoc_item ||SvPVbyte_force
-=for apidoc_item ||SvPVbytex_force
-=for apidoc_item ||SvPVutf8_force
-=for apidoc_item ||SvPVutf8x_force
+=for apidoc Am|char*|SvPV_force              |SV* sv|STRLEN len
+=for apidoc_item   ||SvPV_force_flags        |SV * sv|STRLEN len|U32 flags
+=for apidoc_item   ||SvPV_force_flags_mutable|SV * sv|STRLEN len|U32 flags
+=for apidoc_item   ||SvPV_force_flags_nolen  |SV * sv           |U32 flags
+=for apidoc_item   ||SvPV_force_mutable      |SV * sv|STRLEN len
+=for apidoc_item   ||SvPV_force_nolen        |SV* sv
+=for apidoc_item   ||SvPV_force_nomg         |SV* sv|STRLEN len
+=for apidoc_item   ||SvPV_force_nomg_nolen   |SV * sv
+=for apidoc_item   ||SvPVbyte_force          |SV * sv|STRLEN len
+=for apidoc_item   ||SvPVbytex_force         |SV * sv|STRLEN len
+=for apidoc_item   ||SvPVutf8_force          |SV * sv|STRLEN len
+=for apidoc_item   ||SvPVutf8x_force         |SV * sv|STRLEN len
+=for apidoc_item   ||SvPVx_force             |SV* sv|STRLEN len
 
 These are like C<L</SvPV>>, returning the string in the SV, but will force the
 SV into containing a string (C<L</SvPOK>>), and only a string
@@ -1638,37 +1784,37 @@ downgraded from UTF-8, this croaks.
 C<SvPVbytex_force> is like C<SvPVbyte_force>, but guarantees to evaluate C<sv>
 only once; use the more efficient C<SvPVbyte_force> otherwise.
 
-=for apidoc Am|char*|SvPV|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVx|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPV_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPV_nolen|SV* sv
-=for apidoc_item |char*|SvPVx_nolen|SV* sv
-=for apidoc_item |char*|SvPV_nomg_nolen|SV* sv
-=for apidoc_item |char*|SvPV_mutable|SV* sv|STRLEN len
-=for apidoc_item |const char*|SvPV_const|SV* sv|STRLEN len
-=for apidoc_item |const char*|SvPVx_const|SV* sv|STRLEN len
-=for apidoc_item |const char*|SvPV_nolen_const|SV* sv
-=for apidoc_item |const char*|SvPVx_nolen_const|SV* sv
-=for apidoc_item |const char*|SvPV_nomg_const|SV* sv|STRLEN len
+=for apidoc Am   |      char*|SvPV                 |SV* sv|STRLEN len
+=for apidoc_item |const char*|SvPV_const           |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPV_flags           |SV* sv|STRLEN len|U32 flags
+=for apidoc_item |const char*|SvPV_flags_const     |SV* sv|STRLEN len|U32 flags
+=for apidoc_item |      char*|SvPV_flags_mutable   |SV* sv|STRLEN len|U32 flags
+=for apidoc_item |      char*|SvPV_mutable         |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPV_nolen           |SV* sv
+=for apidoc_item |const char*|SvPV_nolen_const     |SV* sv
+=for apidoc_item |      char*|SvPV_nomg            |SV* sv|STRLEN len
+=for apidoc_item |const char*|SvPV_nomg_const      |SV* sv|STRLEN len
 =for apidoc_item |const char*|SvPV_nomg_const_nolen|SV* sv
-=for apidoc_item |char *|SvPV_flags|SV * sv|STRLEN len|U32 flags
-=for apidoc_item |const char *|SvPV_flags_const|SV * sv|STRLEN len|U32 flags
-=for apidoc_item |char *|SvPV_flags_mutable|SV * sv|STRLEN len|U32 flags
-=for apidoc_item |char*|SvPVbyte|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_nolen|SV* sv
-=for apidoc_item |char*|SvPVbytex_nolen|SV* sv
-=for apidoc_item |char*|SvPVbytex|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_or_null|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVbyte_or_null_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8x|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8_nomg|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8_nolen|SV* sv
-=for apidoc_item |char*|SvPVutf8_or_null|SV* sv|STRLEN len
-=for apidoc_item |char*|SvPVutf8_or_null_nomg|SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPV_nomg_nolen      |SV* sv
+=for apidoc_item |      char*|SvPVbyte             |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVbyte_nolen       |SV* sv
+=for apidoc_item |      char*|SvPVbyte_nomg        |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVbyte_or_null     |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVbyte_or_null_nomg|SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVbytex            |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVbytex_nolen      |SV* sv
+=for apidoc_item |      char*|SvPVutf8             |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVutf8_nolen       |SV* sv
+=for apidoc_item |      char*|SvPVutf8_nomg        |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVutf8_or_null     |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVutf8_or_null_nomg|SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVutf8x            |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVx                |SV* sv|STRLEN len
+=for apidoc_item |const char*|SvPVx_const          |SV* sv|STRLEN len
+=for apidoc_item |      char*|SvPVx_nolen          |SV* sv
+=for apidoc_item |const char*|SvPVx_nolen_const    |SV* sv
 
-All these return a pointer to the string in C<sv>, or a stringified form of
+These each return a pointer to the string in C<sv>, or a stringified form of
 C<sv> if it does not contain a string.  The SV may cache the stringified
 version becoming C<SvPOK>.
 
@@ -1714,13 +1860,11 @@ the string (unless you cast away const y
 The other forms return a mutable pointer so that the string is modifiable by
 the caller; this is emphasized for the ones with C<mutable> in their names.
 
-The forms whose name ends in C<x> are the same as the corresponding form
-without the C<x>, but the C<x> form is guaranteed to evaluate C<sv> exactly
-once, with a slight loss of efficiency.  Use this if C<sv> is an expression
-with side effects.
+As of 5.38, all forms are guaranteed to evaluate C<sv> exactly once.  For
+earlier Perls, use a form whose name ends with C<x> for single evaluation.
 
 C<SvPVutf8> is like C<SvPV>, but converts C<sv> to UTF-8 first if not already
-UTF-8.  Similiarly, the other forms with C<utf8> in their names correspond to
+UTF-8.  Similarly, the other forms with C<utf8> in their names correspond to
 their respective forms without.
 
 C<SvPVutf8_or_null> and C<SvPVutf8_or_null_nomg> don't have corresponding
@@ -1729,62 +1873,17 @@ undef, they return C<NULL>.
 
 C<SvPVbyte> is like C<SvPV>, but converts C<sv> to byte representation first if
 currently encoded as UTF-8.  If C<sv> cannot be downgraded from UTF-8, it
-croaks.  Similiarly, the other forms with C<byte> in their names correspond to
+croaks.  Similarly, the other forms with C<byte> in their names correspond to
 their respective forms without.
 
 C<SvPVbyte_or_null> doesn't have a corresponding non-C<byte> form.  Instead it
 is like C<SvPVbyte>, but when C<sv> is undef, it returns C<NULL>.
 
-=for apidoc Am|IV|SvIV|SV* sv
-=for apidoc_item SvIVx
-=for apidoc_item SvIV_nomg
-
-These coerce the given SV to IV and return it.  The returned value in many
-circumstances will get stored in C<sv>'s IV slot, but not in all cases.  (Use
-C<L</sv_setiv>> to make sure it does).
-
-C<SvIVx> is different from the others in that it is guaranteed to evaluate
-C<sv> exactly once; the others may evaluate it multiple times.  Only use this
-form if C<sv> is an expression with side effects, otherwise use the more
-efficient C<SvIV>.
-
-C<SvIV_nomg> is the same as C<SvIV>, but does not perform 'get' magic.
-
-=for apidoc Am|NV|SvNV|SV* sv
-=for apidoc_item SvNVx
-=for apidoc_item SvNV_nomg
-
-These coerce the given SV to NV and return it.  The returned value in many
-circumstances will get stored in C<sv>'s NV slot, but not in all cases.  (Use
-C<L</sv_setnv>> to make sure it does).
-
-C<SvNVx> is different from the others in that it is guaranteed to evaluate
-C<sv> exactly once; the others may evaluate it multiple times.  Only use this
-form if C<sv> is an expression with side effects, otherwise use the more
-efficient C<SvNV>.
-
-C<SvNV_nomg> is the same as C<SvNV>, but does not perform 'get' magic.
-
-=for apidoc Am|UV|SvUV|SV* sv
-=for apidoc_item SvUVx
-=for apidoc_item SvUV_nomg
-
-These coerce the given SV to UV and return it.  The returned value in many
-circumstances will get stored in C<sv>'s UV slot, but not in all cases.  (Use
-C<L</sv_setuv>> to make sure it does).
-
-C<SvUVx> is different from the others in that it is guaranteed to evaluate
-C<sv> exactly once; the others may evaluate it multiple times.  Only use this
-form if C<sv> is an expression with side effects, otherwise use the more
-efficient C<SvUV>.
-
-C<SvUV_nomg> is the same as C<SvUV>, but does not perform 'get' magic.
-
-=for apidoc SvTRUE
-=for apidoc_item SvTRUEx
-=for apidoc_item SvTRUE_nomg
+=for apidoc      SvTRUE
 =for apidoc_item SvTRUE_NN
+=for apidoc_item SvTRUE_nomg
 =for apidoc_item SvTRUE_nomg_NN
+=for apidoc_item SvTRUEx
 
 These return a boolean indicating whether Perl would evaluate the SV as true or
 false.  See C<L</SvOK>> for a defined/undefined test.
@@ -1817,20 +1916,26 @@ scalar.
 =cut
 */
 
-/* Let us hope that bitmaps for UV and IV are the same */
-#define SvIV(sv) (SvIOK_nog(sv) ? SvIVX(sv) : sv_2iv(sv))
-#define SvUV(sv) (SvUOK_nog(sv) ? SvUVX(sv) : sv_2uv(sv))
-#define SvNV(sv) (SvNOK_nog(sv) ? SvNVX(sv) : sv_2nv(sv))
-
-#define SvIV_nomg(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv_flags(sv, 0))
-#define SvUV_nomg(sv) (SvUOK(sv) ? SvUVX(sv) : sv_2uv_flags(sv, 0))
-#define SvNV_nomg(sv) (SvNOK(sv) ? SvNVX(sv) : sv_2nv_flags(sv, 0))
-
-/* ----*/
-
-#define SvPV(sv, len)         SvPV_flags(sv, len, SV_GMAGIC)
-#define SvPV_const(sv, len)   SvPV_flags_const(sv, len, SV_GMAGIC)
-#define SvPV_mutable(sv, len) SvPV_flags_mutable(sv, len, SV_GMAGIC)
+/* To pass the action to the functions called by the following macros */
+typedef enum {
+    SvPVutf8_type_,
+    SvPVbyte_type_,
+    SvPVnormal_type_,
+    SvPVforce_type_,
+    SvPVutf8_pure_type_,
+    SvPVbyte_pure_type_
+} PL_SvPVtype;
+
+START_EXTERN_C
+
+/* When this code was written, embed.fnc could not handle function pointer
+ * parameters; perhaps it still can't */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE char*
+Perl_SvPV_helper(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags, const PL_SvPVtype type, char * (*non_trivial)(pTHX_ SV *, STRLEN * const, const U32), const bool or_null, const U32 return_flags);
+#endif
+
+END_EXTERN_C
 
 /* This test is "is there a cached PV that we can use directly?"
  * We can if
@@ -1843,120 +1948,98 @@ scalar.
 #define SvPOK_or_cached_IV(sv) \
     (((SvFLAGS(sv) & (SVf_POK|SVs_GMG)) == SVf_POK) || ((SvFLAGS(sv) & (SVf_IOK|SVp_POK|SVs_GMG)) == (SVf_IOK|SVp_POK)))
 
-#define SvPV_flags(sv, len, flags) \
-    (SvPOK_or_cached_IV(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &len, flags))
-#define SvPV_flags_const(sv, len, flags) \
-    (SvPOK_or_cached_IV(sv) \
-     ? ((len = SvCUR(sv)), SvPVX_const(sv)) : \
-     (const char*) sv_2pv_flags(sv, &len, (flags|SV_CONST_RETURN)))
-#define SvPV_flags_const_nolen(sv, flags) \
-    (SvPOK_or_cached_IV(sv) \
-     ? SvPVX_const(sv) : \
-     (const char*) sv_2pv_flags(sv, 0, (flags|SV_CONST_RETURN)))
-#define SvPV_flags_mutable(sv, len, flags) \
-    (SvPOK_or_cached_IV(sv) \
-     ? ((len = SvCUR(sv)), SvPVX_mutable(sv)) : \
-     sv_2pv_flags(sv, &len, (flags|SV_MUTABLE_RETURN)))
+#define SvPV_flags(sv, len, flags)                                          \
+   Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_,                \
+                    Perl_sv_2pv_flags, FALSE, 0)
+#define SvPV_flags_const(sv, len, flags)                                    \
+   ((const char*) Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_, \
+                                   Perl_sv_2pv_flags, FALSE,                \
+                                   SV_CONST_RETURN))
+#define SvPV_flags_const_nolen(sv, flags)                                   \
+   ((const char*) Perl_SvPV_helper(aTHX_ sv, NULL, flags, SvPVnormal_type_, \
+                                   Perl_sv_2pv_flags, FALSE,                \
+                                   SV_CONST_RETURN))
+#define SvPV_flags_mutable(sv, len, flags)                                  \
+    Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVnormal_type_,               \
+                     Perl_sv_2pv_flags, FALSE, SV_MUTABLE_RETURN)
+
+#define SvPV_nolen(sv)                                                      \
+    Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVnormal_type_,           \
+                     Perl_sv_2pv_flags, FALSE, 0)
+
+#define SvPV_nolen_const(sv)  SvPV_flags_const_nolen(sv, SV_GMAGIC)
+
+#define SvPV(sv, len)               SvPV_flags(sv, len, SV_GMAGIC)
+#define SvPV_const(sv, len)         SvPV_flags_const(sv, len, SV_GMAGIC)
+#define SvPV_mutable(sv, len)       SvPV_flags_mutable(sv, len, SV_GMAGIC)
+
+#define SvPV_nomg_nolen(sv)                                                 \
+    Perl_SvPV_helper(aTHX_ sv, NULL, 0, SvPVnormal_type_,Perl_sv_2pv_flags, \
+                     FALSE, 0)
+#define SvPV_nomg(sv, len)          SvPV_flags(sv, len, 0)
+#define SvPV_nomg_const(sv, len)    SvPV_flags_const(sv, len, 0)
+#define SvPV_nomg_const_nolen(sv)   SvPV_flags_const_nolen(sv, 0)
+
+#define SvPV_force_flags(sv, len, flags)                                    \
+    Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVforce_type_,                \
+                     Perl_sv_pvn_force_flags, FALSE, 0)
+#define SvPV_force_flags_nolen(sv, flags)                                   \
+    Perl_SvPV_helper(aTHX_ sv, NULL, flags, SvPVforce_type_,                \
+                     Perl_sv_pvn_force_flags, FALSE, 0)
+#define SvPV_force_flags_mutable(sv, len, flags)                            \
+    Perl_SvPV_helper(aTHX_ sv, &len, flags, SvPVforce_type_,                \
+                     Perl_sv_pvn_force_flags, FALSE, SV_MUTABLE_RETURN)
 
-#define SvPV_force(sv, len) SvPV_force_flags(sv, len, SV_GMAGIC)
-#define SvPV_force_nolen(sv) SvPV_force_flags_nolen(sv, SV_GMAGIC)
+#define SvPV_force(sv, len)         SvPV_force_flags(sv, len, SV_GMAGIC)
+#define SvPV_force_nolen(sv)        SvPV_force_flags_nolen(sv, SV_GMAGIC)
 #define SvPV_force_mutable(sv, len) SvPV_force_flags_mutable(sv, len, SV_GMAGIC)
 
-#define SvPV_force_nomg(sv, len) SvPV_force_flags(sv, len, 0)
-#define SvPV_force_nomg_nolen(sv) SvPV_force_flags_nolen(sv, 0)
+/* "_nomg" in these defines means no mg_get() */
+#define SvPV_force_nomg(sv, len)    SvPV_force_flags(sv, len, 0)
+#define SvPV_force_nomg_nolen(sv)   SvPV_force_flags_nolen(sv, 0)
 
-#define SvPV_force_flags(sv, len, flags) \
-    (SvPOK_pure_nogthink(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &len, flags))
-
-#define SvPV_force_flags_nolen(sv, flags) \
-    (SvPOK_pure_nogthink(sv) \
-     ? SvPVX(sv) : sv_pvn_force_flags(sv, 0, flags))
-
-#define SvPV_force_flags_mutable(sv, len, flags) \
-    (SvPOK_pure_nogthink(sv) \
-     ? ((len = SvCUR(sv)), SvPVX_mutable(sv)) \
-     : sv_pvn_force_flags(sv, &len, flags|SV_MUTABLE_RETURN))
-
-#define SvPV_nolen(sv) \
-    (SvPOK_or_cached_IV(sv) \
-     ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC))
+#define SvPVutf8(sv, len)                                                   \
+    Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVutf8_type_,             \
+                     Perl_sv_2pvutf8_flags, FALSE, 0)
+#define SvPVutf8_nomg(sv, len)                                              \
+    Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_type_,                     \
+                     Perl_sv_2pvutf8_flags, FALSE, 0)
+#define SvPVutf8_nolen(sv)                                                  \
+    Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVutf8_type_,             \
+                     Perl_sv_2pvutf8_flags, FALSE, 0)
+#define SvPVutf8_or_null(sv, len)                                           \
+    Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVutf8_type_,             \
+                     Perl_sv_2pvutf8_flags, TRUE, 0)
+#define SvPVutf8_or_null_nomg(sv, len)                                      \
+    Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_type_,                     \
+                     Perl_sv_2pvutf8_flags, TRUE, 0)
+
+#define SvPVbyte(sv, len)                                                   \
+    Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVbyte_type_,             \
+                     Perl_sv_2pvbyte_flags, FALSE, 0)
+#define SvPVbyte_nomg(sv, len)                                              \
+    Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_type_,                     \
+                     Perl_sv_2pvbyte_flags, FALSE, 0)
+#define SvPVbyte_nolen(sv)                                                  \
+    Perl_SvPV_helper(aTHX_ sv, NULL, SV_GMAGIC, SvPVbyte_type_,             \
+                     Perl_sv_2pvbyte_flags, FALSE, 0)
+#define SvPVbyte_or_null(sv, len)                                           \
+    Perl_SvPV_helper(aTHX_ sv, &len, SV_GMAGIC, SvPVbyte_type_,             \
+                     Perl_sv_2pvbyte_flags, TRUE, 0)
+#define SvPVbyte_or_null_nomg(sv, len)                                      \
+    Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_type_,                     \
+                     Perl_sv_2pvbyte_flags, TRUE, 0)
+
+#define SvPVutf8_force(sv, len)                                             \
+    Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVutf8_pure_type_,                \
+                     Perl_sv_pvutf8n_force_wrapper, FALSE, 0)
+
+#define SvPVbyte_force(sv, len)                                             \
+    Perl_SvPV_helper(aTHX_ sv, &len, 0, SvPVbyte_pure_type_,                \
+                     Perl_sv_pvbyten_force_wrapper, FALSE, 0)
 
-/* "_nomg" in these defines means no mg_get() */
-#define SvPV_nomg_nolen(sv) \
-    (SvPOK_or_cached_IV(sv) \
-     ? SvPVX(sv) : sv_2pv_flags(sv, 0, 0))
-
-#define SvPV_nolen_const(sv) \
-    (SvPOK_or_cached_IV(sv) \
-     ? SvPVX_const(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC|SV_CONST_RETURN))
-
-#define SvPV_nomg(sv, len) SvPV_flags(sv, len, 0)
-#define SvPV_nomg_const(sv, len) SvPV_flags_const(sv, len, 0)
-#define SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
-
-/* ----*/
-
-#define SvPVutf8(sv, len) \
-    (SvPOK_utf8_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvutf8(sv, &len))
-
-#define SvPVutf8_or_null(sv, len) \
-    (SvPOK_utf8_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : (SvGETMAGIC(sv), SvOK(sv)) \
-     ? sv_2pvutf8_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVutf8_nomg(sv, len) \
-    (SvPOK_utf8_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvutf8_flags(sv, &len, 0))
-
-#define SvPVutf8_or_null_nomg(sv, len) \
-    (SvPOK_utf8_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : SvOK(sv) \
-     ? sv_2pvutf8_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVutf8_force(sv, len) \
-    (SvPOK_utf8_pure_nogthink(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_pvutf8n_force(sv, &len))
-
-#define SvPVutf8_nolen(sv) \
-    (SvPOK_utf8_nog(sv) \
-     ? SvPVX(sv) : sv_2pvutf8(sv, 0))
-
-/* ----*/
-
-#define SvPVbyte(sv, len) \
-    (SvPOK_byte_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &len))
-
-#define SvPVbyte_or_null(sv, len) \
-    (SvPOK_byte_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : (SvGETMAGIC(sv), SvOK(sv)) \
-     ? sv_2pvbyte_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVbyte_nomg(sv, len) \
-    (SvPOK_byte_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte_flags(sv, &len, 0))
-
-#define SvPVbyte_or_null_nomg(sv, len) \
-    (SvPOK_utf8_nog(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : SvOK(sv) \
-     ? sv_2pvbyte_flags(sv, &len, 0) : ((len = 0), NULL))
-
-#define SvPVbyte_force(sv, len) \
-    (SvPOK_byte_pure_nogthink(sv) \
-     ? ((len = SvCUR(sv)), SvPVX(sv)) : sv_pvbyten_force(sv, &len))
-
-#define SvPVbyte_nolen(sv) \
-    (SvPOK_byte_nog(sv) \
-     ? SvPVX(sv) : sv_2pvbyte(sv, 0))
-
-
-/* define FOOx(): idempotent versions of FOO(). If possible, use a local
- * var to evaluate the arg once; failing that, use a global if possible;
- * failing that, call a function to do the work
- */
+/* define FOOx(): Before FOO(x) was inlined, these were idempotent versions of
+ * FOO(). */
 
 #define SvPVx_force(sv, len) sv_pvn_force(sv, &len)
 #define SvPVutf8x_force(sv, len) sv_pvutf8n_force(sv, &len)
@@ -1966,11 +2049,12 @@ scalar.
 #define SvTRUEx_nomg(sv)   SvTRUE_nomg(sv)
 #define SvTRUE_nomg_NN(sv) SvTRUE_common(sv, TRUE)
 
+#  define SvIVx(sv) SvIV(sv)
+#  define SvUVx(sv) SvUV(sv)
+#  define SvNVx(sv) SvNV(sv)
+
 #if defined(PERL_USE_GCC_BRACE_GROUPS)
 
-#  define SvIVx(sv) ({SV *_sv = MUTABLE_SV(sv); SvIV(_sv); })
-#  define SvUVx(sv) ({SV *_sv = MUTABLE_SV(sv); SvUV(_sv); })
-#  define SvNVx(sv) ({SV *_sv = MUTABLE_SV(sv); SvNV(_sv); })
 #  define SvPVx(sv, len) ({SV *_sv = (sv); SvPV(_sv, len); })
 #  define SvPVx_const(sv, len) ({SV *_sv = (sv); SvPV_const(_sv, len); })
 #  define SvPVx_nolen(sv) ({SV *_sv = (sv); SvPV_nolen(_sv); })
@@ -1984,9 +2068,6 @@ scalar.
 /* These inlined macros use globals, which will require a thread
  * declaration in user code, so we avoid them under threads */
 
-#  define SvIVx(sv) ((PL_Sv = (sv)), SvIV(PL_Sv))
-#  define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv))
-#  define SvNVx(sv) ((PL_Sv = (sv)), SvNV(PL_Sv))
 #  define SvPVx(sv, len) ((PL_Sv = (sv)), SvPV(PL_Sv, len))
 #  define SvPVx_const(sv, len) ((PL_Sv = (sv)), SvPV_const(PL_Sv, len))
 #  define SvPVx_nolen(sv) ((PL_Sv = (sv)), SvPV_nolen(PL_Sv))
@@ -1996,30 +2077,6 @@ scalar.
 #  define SvPVbytex_nolen(sv) ((PL_Sv = (sv)), SvPVbyte_nolen(PL_Sv))
 #endif /* __GNU__ */
 
-/*
-=for apidoc Am|bool|SvPVXtrue|SV * sv
-
-Note: This macro may evaluate C<sv> more than once.
-
-Returns a boolean as to whether or not C<sv> contains a PV that is considered
-TRUE.  FALSE is returned if C<sv> doesn't contain a PV, or if the PV it does
-contain is zero length, or consists of just the single character '0'.  Every
-other PV value is considered TRUE.
-
-=cut
-*/
-
-#define SvPVXtrue(sv)	(					\
-    ((XPV*)SvANY((sv))) 					\
-     && (							\
-        ((XPV*)SvANY((sv)))->xpv_cur > 1			\
-        || (							\
-            ((XPV*)SvANY((sv)))->xpv_cur			\
-            && *(sv)->sv_u.svu_pv != '0'                        \
-        )							\
-    )								\
-)
-
 #define SvIsCOW(sv)              (SvFLAGS(sv) & SVf_IsCOW)
 #define SvIsCOW_on(sv)           (SvFLAGS(sv) |= SVf_IsCOW)
 #define SvIsCOW_off(sv)          (SvFLAGS(sv) &= ~(SVf_IsCOW|SVppv_STATIC))
@@ -2045,31 +2102,33 @@ Returns the hash for C<sv> created by C<
 =cut
 */
 
-#define SV_IMMEDIATE_UNREF	1
-#define SV_GMAGIC		2
-#define SV_COW_DROP_PV		4
-#define SV_NOSTEAL		16
-#define SV_CONST_RETURN		32
-#define SV_MUTABLE_RETURN	64
-#define SV_SMAGIC		128
-#define SV_HAS_TRAILING_NUL	256
-#define SV_COW_SHARED_HASH_KEYS	512
+/* Flags used as `U32 flags` arguments to various functions */
+#define SV_IMMEDIATE_UNREF      (1 <<  0) /* 0x0001 -     1 */
+#define SV_GMAGIC               (1 <<  1) /* 0x0002 -     2 */
+#define SV_COW_DROP_PV          (1 <<  2) /* 0x0004 -     4 */
+/* SV_NOT_USED                  (1 <<  3)    0x0008 -     8 */
+#define SV_NOSTEAL              (1 <<  4) /* 0x0010 -    16 */
+#define SV_CONST_RETURN         (1 <<  5) /* 0x0020 -    32 */
+#define SV_MUTABLE_RETURN       (1 <<  6) /* 0x0040 -    64 */
+#define SV_SMAGIC               (1 <<  7) /* 0x0080 -   128 */
+#define SV_HAS_TRAILING_NUL     (1 <<  8) /* 0x0100 -   256 */
+#define SV_COW_SHARED_HASH_KEYS (1 <<  9) /* 0x0200 -   512 */
 /* This one is only enabled for PERL_OLD_COPY_ON_WRITE */
 /* XXX This flag actually enabled for any COW.  But it appears not to do
        anything.  Can we just remove it?  Or will it serve some future
        purpose.  */
-#define SV_COW_OTHER_PVS	1024
+#define SV_COW_OTHER_PVS        (1 << 10) /* 0x0400 -  1024 */
 /* Make sv_2pv_flags return NULL if something is undefined.  */
-#define SV_UNDEF_RETURNS_NULL	2048
+#define SV_UNDEF_RETURNS_NULL   (1 << 11) /* 0x0800 -  2048 */
 /* Tell sv_utf8_upgrade() to not check to see if an upgrade is really needed.
  * This is used when the caller has already determined it is, and avoids
  * redundant work */
-#define SV_FORCE_UTF8_UPGRADE	4096
+#define SV_FORCE_UTF8_UPGRADE   (1 << 12) /* 0x1000 -  4096 */
 /* if (after resolving magic etc), the SV is found to be overloaded,
  * don't call the overload magic, just return as-is */
-#define SV_SKIP_OVERLOAD	8192
-#define SV_CATBYTES		16384
-#define SV_CATUTF8		32768
+#define SV_SKIP_OVERLOAD        (1 << 13) /* 0x2000 -  8192 */
+#define SV_CATBYTES             (1 << 14) /* 0x4000 - 16384 */
+#define SV_CATUTF8              (1 << 15) /* 0x8000 - 32768 */
 
 /* The core is safe for this COW optimisation. XS code on CPAN may not be.
    So only default to doing the COW setup if we're in the core.
@@ -2090,11 +2149,17 @@ Returns the hash for C<sv> created by C<
 #define sv_usepvn(sv, p, l)	sv_usepvn_flags(sv, p, l, 0)
 #define sv_usepvn_mg(sv, p, l)	sv_usepvn_flags(sv, p, l, SV_SMAGIC)
 
-/* We are about to replace the SV's current value. So if it's copy on write
-   we need to normalise it. Use the SV_COW_DROP_PV flag hint to say that
-   the value is about to get thrown away, so drop the PV rather than go to
-   the effort of making a read-write copy only for it to get immediately
-   discarded.  */
+/*
+=for apidoc Am|void|SV_CHECK_THINKFIRST_COW_DROP|SV * sv
+
+Call this when you are about to replace the PV value in C<sv>, which is
+potentially copy-on-write.  It stops any sharing with other SVs, so that no
+Copy on Write (COW) actually happens.  This COW would be useless, as it would
+immediately get changed to something else.  This function also removes any
+other encumbrances that would be problematic when changing C<sv>.
+
+=cut
+*/
 
 #define SV_CHECK_THINKFIRST_COW_DROP(sv) if (SvTHINKFIRST(sv)) \
                                     sv_force_normal_flags(sv, SV_COW_DROP_PV)
@@ -2114,6 +2179,19 @@ Returns the hash for C<sv> created by C<
 
 #define CAN_COW_FLAGS	(SVp_POK|SVf_POK)
 
+/*
+=for apidoc Am|void|SV_CHECK_THINKFIRST|SV * sv
+
+Remove any encumbrances from C<sv>, that need to be taken care of before it
+is modifiable.  For example if it is Copy on Write (COW), now is the time to
+make that copy.
+
+If you know that you are about to change the PV value of C<sv>, instead use
+L</C<SV_CHECK_THINKFIRST_COW_DROP>> to avoid the write that would be
+immediately written again.
+
+=cut
+*/
 #define SV_CHECK_THINKFIRST(sv) if (SvTHINKFIRST(sv)) \
                                     sv_force_normal_flags(sv, 0)
 
@@ -2184,8 +2262,8 @@ Returns the hash for C<sv> created by C<
             sv_utf8_upgrade(nsv);			\
             sv_catsv_nomg(dsv, nsv);			\
         } STMT_END
-#define sv_catpvn_nomg_maybeutf8(dsv, sstr, slen, is_utf8) \
-        sv_catpvn_flags(dsv, sstr, slen, (is_utf8)?SV_CATUTF8:SV_CATBYTES)
+#define sv_catpvn_nomg_maybeutf8(dsv, sstr, len, is_utf8) \
+        sv_catpvn_flags(dsv, sstr, len, (is_utf8)?SV_CATUTF8:SV_CATBYTES)
 
 #if defined(PERL_CORE) || defined(PERL_EXT)
 # define sv_or_pv_len_utf8(sv, pv, bytelen)	      \
@@ -2211,21 +2289,16 @@ for the original SV is incremented.
 /*
 =for apidoc_section $SV
 
-=for apidoc Am|void|SvGETMAGIC|SV* sv
-Invokes C<L</mg_get>> on an SV if it has 'get' magic.  For example, this
-will call C<FETCH> on a tied variable.  This macro evaluates its
-argument more than once.
-
 =for apidoc Am|void|SvSETMAGIC|SV* sv
 Invokes C<L</mg_set>> on an SV if it has 'set' magic.  This is necessary
 after modifying a scalar, in case it is a magical variable like C<$|>
 or a tied variable (it calls C<STORE>).  This macro evaluates its
 argument more than once.
 
-=for apidoc Am|void|SvSetSV|SV* dsv|SV* ssv
-=for apidoc_item SvSetMagicSV
-=for apidoc_item SvSetSV_nosteal
-=for apidoc_item SvSetMagicSV_nosteal
+=for apidoc Am|void|SvSetMagicSV|SV* dsv|SV* ssv
+=for apidoc_item    SvSetMagicSV_nosteal
+=for apidoc_item    SvSetSV
+=for apidoc_item    SvSetSV_nosteal
 
 if C<dsv> is the same as C<ssv>, these do nothing.  Otherwise they all call
 some form of C<L</sv_setsv>>.  They may evaluate their arguments more than
@@ -2268,29 +2341,42 @@ existing size, but instead it is the tot
 Ensures that sv is a SVt_PV and that its SvCUR is 0, and that it is
 properly null terminated. Equivalent to sv_setpvs(""), but more efficient.
 
+=for apidoc Am|char *|SvPVCLEAR_FRESH|SV* sv
+
+Like SvPVCLEAR, but optimized for newly-minted SVt_PV/PVIV/PVNV/PVMG
+that already have a PV buffer allocated, but no SvTHINKFIRST.
+
 =cut
 */
 
 #define SvPVCLEAR(sv) sv_setpv_bufsize(sv,0,0)
+#define SvPVCLEAR_FRESH(sv) sv_setpv_freshbuf(sv)
 #define SvSHARE(sv) PL_sharehook(aTHX_ sv)
 #define SvLOCK(sv) PL_lockhook(aTHX_ sv)
 #define SvUNLOCK(sv) PL_unlockhook(aTHX_ sv)
 #define SvDESTROYABLE(sv) PL_destroyhook(aTHX_ sv)
 
-#define SvGETMAGIC(x) ((void)(UNLIKELY(SvGMAGICAL(x)) && mg_get(x)))
 #define SvSETMAGIC(x) STMT_START { if (UNLIKELY(SvSMAGICAL(x))) mg_set(x); } STMT_END
 
 #define SvSetSV_and(dst,src,finally) \
         STMT_START {					\
-            if (LIKELY((dst) != (src))) {		\
-                sv_setsv(dst, src);			\
+            SV * src_ = src;                            \
+            SV * dst_ = dst;                            \
+            if (LIKELY((dst_) != (src_))) {             \
+                sv_setsv(dst_, src_);                   \
                 finally;				\
             }						\
         } STMT_END
+
 #define SvSetSV_nosteal_and(dst,src,finally) \
         STMT_START {					\
-            if (LIKELY((dst) != (src))) {			\
-                sv_setsv_flags(dst, src, SV_GMAGIC | SV_NOSTEAL | SV_DO_COW_SVSETSV);	\
+            SV * src_ = src;                            \
+            SV * dst_ = dst;                            \
+            if (LIKELY((dst_) != (src_))) {             \
+                sv_setsv_flags(dst_, src_,              \
+                        SV_GMAGIC                       \
+                      | SV_NOSTEAL                      \
+                      | SV_DO_COW_SVSETSV);             \
                 finally;				\
             }						\
         } STMT_END
@@ -2374,18 +2460,25 @@ Returns a boolean as to whether or not C
 #define isGV_with_GP(pwadak) \
         (((SvFLAGS(pwadak) & (SVp_POK|SVpgv_GP)) == SVpgv_GP)	\
         && (SvTYPE(pwadak) == SVt_PVGV || SvTYPE(pwadak) == SVt_PVLV))
-#define isGV_with_GP_on(sv)	STMT_START {			       \
-        assert (SvTYPE(sv) == SVt_PVGV || SvTYPE(sv) == SVt_PVLV); \
-        assert (!SvPOKp(sv));					       \
-        assert (!SvIOKp(sv));					       \
-        (SvFLAGS(sv) |= SVpgv_GP);				       \
+
+#define isGV_with_GP_on(sv)                                            \
+    STMT_START {			                               \
+        SV * sv_ = MUTABLE_SV(sv);                                     \
+        assert (SvTYPE(sv_) == SVt_PVGV || SvTYPE(sv_) == SVt_PVLV);   \
+        assert (!SvPOKp(sv_));					       \
+        assert (!SvIOKp(sv_));					       \
+        (SvFLAGS(sv_) |= SVpgv_GP);				       \
     } STMT_END
-#define isGV_with_GP_off(sv)	STMT_START {			       \
-        assert (SvTYPE(sv) == SVt_PVGV || SvTYPE(sv) == SVt_PVLV); \
-        assert (!SvPOKp(sv));					       \
-        assert (!SvIOKp(sv));					       \
-        (SvFLAGS(sv) &= ~SVpgv_GP);				       \
+
+#define isGV_with_GP_off(sv)                                           \
+    STMT_START {                                                       \
+        SV * sv_ = MUTABLE_SV(sv);                                     \
+        assert (SvTYPE(sv_) == SVt_PVGV || SvTYPE(sv_) == SVt_PVLV);   \
+        assert (!SvPOKp(sv_));                                         \
+        assert (!SvIOKp(sv_));					       \
+        (SvFLAGS(sv_) &= ~SVpgv_GP);				       \
     } STMT_END
+
 #ifdef PERL_CORE
 # define isGV_or_RVCV(kadawp) \
     (isGV(kadawp) || (SvROK(kadawp) && SvTYPE(SvRV(kadawp)) == SVt_PVCV))
@@ -2587,12 +2680,36 @@ Create a new IO, setting the reference c
  * trick and store them in SvANY for SvIV() (and friends) to use. */
 
 #  define SET_SVANY_FOR_BODYLESS_IV(sv) \
-        SvANY(sv) =   (XPVIV*)((char*)&(sv->sv_u.svu_iv) \
-                    - STRUCT_OFFSET(XPVIV, xiv_iv))
+    STMT_START {                                            \
+        SV * sv_ = MUTABLE_SV(sv);                          \
+        SvANY(sv_) =   (XPVIV*)((char*)&(sv_->sv_u.svu_iv)  \
+                    - STRUCT_OFFSET(XPVIV, xiv_iv));        \
+    } STMT_END
 
 #  define SET_SVANY_FOR_BODYLESS_NV(sv) \
-        SvANY(sv) =   (XPVNV*)((char*)&(sv->sv_u.svu_nv) \
-                    - STRUCT_OFFSET(XPVNV, xnv_u.xnv_nv))
+    STMT_START {                                            \
+        SV * sv_ = MUTABLE_SV(sv);                          \
+        SvANY(sv_) =   (XPVNV*)((char*)&(sv_->sv_u.svu_nv)  \
+                    - STRUCT_OFFSET(XPVNV, xnv_u.xnv_nv));  \
+    } STMT_END
+
+#if defined(PERL_CORE) && defined(USE_ITHREADS)
+/* Certain cases in Perl_ss_dup have been merged, by relying on the fact
+   that currently av_dup, gv_dup and hv_dup are the same as sv_dup.
+   If this changes, please unmerge ss_dup.
+   Likewise, sv_dup_inc_multiple() relies on this fact.  */
+#  define sv_dup_inc_NN(s,t)	SvREFCNT_inc_NN(sv_dup_inc(s,t))
+#  define av_dup(s,t)	MUTABLE_AV(sv_dup((const SV *)s,t))
+#  define av_dup_inc(s,t)	MUTABLE_AV(sv_dup_inc((const SV *)s,t))
+#  define hv_dup(s,t)	MUTABLE_HV(sv_dup((const SV *)s,t))
+#  define hv_dup_inc(s,t)	MUTABLE_HV(sv_dup_inc((const SV *)s,t))
+#  define cv_dup(s,t)	MUTABLE_CV(sv_dup((const SV *)s,t))
+#  define cv_dup_inc(s,t)	MUTABLE_CV(sv_dup_inc((const SV *)s,t))
+#  define io_dup(s,t)	MUTABLE_IO(sv_dup((const SV *)s,t))
+#  define io_dup_inc(s,t)	MUTABLE_IO(sv_dup_inc((const SV *)s,t))
+#  define gv_dup(s,t)	MUTABLE_GV(sv_dup((const SV *)s,t))
+#  define gv_dup_inc(s,t)	MUTABLE_GV(sv_dup_inc((const SV *)s,t))
+#endif
 
 /*
  * ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/sv_inline.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/sv_inline.h,v
diff -u -p -a -u -p -r1.1.1.1 sv_inline.h
--- gnu/usr.bin/perl/sv_inline.h	15 Feb 2023 01:31:59 -0000	1.1.1.1
+++ gnu/usr.bin/perl/sv_inline.h	21 Feb 2024 15:47:03 -0000
@@ -125,7 +125,7 @@ struct body_details {
     U8 body_size;      /* Size to allocate  */
     U8 copy;           /* Size of structure to copy (may be shorter)  */
     U8 offset;         /* Size of unalloced ghost fields to first alloced field*/
-    PERL_BITFIELD8 type : 4;        /* We have space for a sanity check. */
+    PERL_BITFIELD8 type : 5;        /* We have space for a sanity check. */
     PERL_BITFIELD8 cant_upgrade : 1;/* Cannot upgrade this type */
     PERL_BITFIELD8 zero_nv : 1;     /* zero the NV when upgrading from this */
     PERL_BITFIELD8 arena : 1;       /* Allocated from an arena */
@@ -149,6 +149,7 @@ ALIGNED_TYPE(XPVHV_WITH_AUX);
 ALIGNED_TYPE(XPVCV);
 ALIGNED_TYPE(XPVFM);
 ALIGNED_TYPE(XPVIO);
+ALIGNED_TYPE(XPVOBJ);
 
 #define HADNV FALSE
 #define NONV TRUE
@@ -280,6 +281,12 @@ static const struct body_details bodies_
       0,
       SVt_PVIO, TRUE, NONV, HASARENA,
       FIT_ARENA(24, sizeof(ALIGNED_TYPE_NAME(XPVIO))) },
+
+    { sizeof(ALIGNED_TYPE_NAME(XPVOBJ)),
+      copy_length(XPVOBJ, xobject_fields),
+      0,
+      SVt_PVOBJ, TRUE, NONV, HASARENA,
+      FIT_ARENA(0, sizeof(ALIGNED_TYPE_NAME(XPVOBJ))) },
 };
 
 #define new_body_allocated(sv_type)            \
@@ -390,6 +397,7 @@ Perl_newSV_type(pTHX_ const svtype type)
         break;
     case SVt_PVHV:
     case SVt_PVAV:
+    case SVt_PVOBJ:
         assert(type_details->body_size);
 
 #ifndef PURIFY
@@ -409,13 +417,15 @@ Perl_newSV_type(pTHX_ const svtype type)
         SvSTASH_set(sv, NULL);
         SvMAGIC_set(sv, NULL);
 
-        if (type == SVt_PVAV) {
+        switch(type) {
+        case SVt_PVAV:
             AvFILLp(sv) = -1;
             AvMAX(sv) = -1;
             AvALLOC(sv) = NULL;
 
             AvREAL_only(sv);
-        } else {
+            break;
+        case SVt_PVHV:
             HvTOTALKEYS(sv) = 0;
             /* start with PERL_HASH_DEFAULT_HvMAX+1 buckets: */
             HvMAX(sv) = PERL_HASH_DEFAULT_HvMAX;
@@ -427,6 +437,13 @@ Perl_newSV_type(pTHX_ const svtype type)
 #endif
             /* start with PERL_HASH_DEFAULT_HvMAX+1 buckets: */
             HvMAX(sv) = PERL_HASH_DEFAULT_HvMAX;
+            break;
+        case SVt_PVOBJ:
+            ObjectMAXFIELD(sv) = -1;
+            ObjectFIELDS(sv) = NULL;
+            break;
+        default:
+            NOT_REACHED;
         }
 
         sv->sv_u.svu_array = NULL; /* or svu_hash  */
@@ -525,6 +542,459 @@ Perl_newSV_type_mortal(pTHX_ const svtyp
     PL_tmps_stack[ix] = (sv);
     SvTEMP_on(sv);
     return sv;
+}
+
+/* The following functions started out in sv.h and then moved to inline.h. They
+ * moved again into this file during the 5.37.x development cycle. */
+
+/*
+=for apidoc_section $SV
+=for apidoc SvPVXtrue
+
+Returns a boolean as to whether or not C<sv> contains a PV that is considered
+TRUE.  FALSE is returned if C<sv> doesn't contain a PV, or if the PV it does
+contain is zero length, or consists of just the single character '0'.  Every
+other PV value is considered TRUE.
+
+As of Perl v5.37.1, C<sv> is evaluated exactly once; in earlier releases, it
+could be evaluated more than once.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+Perl_SvPVXtrue(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SVPVXTRUE;
+
+    if (! (XPV *) SvANY(sv)) {
+        return false;
+    }
+
+    if ( ((XPV *) SvANY(sv))->xpv_cur > 1) { /* length > 1 */
+        return true;
+    }
+
+    if (( (XPV *) SvANY(sv))->xpv_cur == 0) {
+        return false;
+    }
+
+    return *sv->sv_u.svu_pv != '0';
+}
+
+/*
+=for apidoc SvGETMAGIC
+Invokes C<L</mg_get>> on an SV if it has 'get' magic.  For example, this
+will call C<FETCH> on a tied variable.  As of 5.37.1, this function is
+guaranteed to evaluate its argument exactly once.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_SvGETMAGIC(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SVGETMAGIC;
+
+    if (UNLIKELY(SvGMAGICAL(sv))) {
+        mg_get(sv);
+    }
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SVTRUE;
+
+    if (UNLIKELY(sv == NULL))
+        return FALSE;
+    SvGETMAGIC(sv);
+    return SvTRUE_nomg_NN(sv);
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_nomg(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SVTRUE_NOMG;
+
+    if (UNLIKELY(sv == NULL))
+        return FALSE;
+    return SvTRUE_nomg_NN(sv);
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_NN(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SVTRUE_NN;
+
+    SvGETMAGIC(sv);
+    return SvTRUE_nomg_NN(sv);
+}
+
+PERL_STATIC_INLINE bool
+Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
+{
+    PERL_ARGS_ASSERT_SVTRUE_COMMON;
+
+    if (UNLIKELY(SvIMMORTAL_INTERP(sv)))
+        return SvIMMORTAL_TRUE(sv);
+
+    if (! SvOK(sv))
+        return FALSE;
+
+    if (SvPOK(sv))
+        return SvPVXtrue(sv);
+
+    if (SvIOK(sv))
+        return SvIVX(sv) != 0; /* casts to bool */
+
+    if (SvROK(sv) && !(SvOBJECT(SvRV(sv)) && HvAMAGIC(SvSTASH(SvRV(sv)))))
+        return TRUE;
+
+    if (sv_2bool_is_fallback)
+        return sv_2bool_nomg(sv);
+
+    return isGV_with_GP(sv);
+}
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc(SV *sv)
+{
+    if (LIKELY(sv != NULL))
+        SvREFCNT(sv)++;
+    return sv;
+}
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_inc_NN(SV *sv)
+{
+    PERL_ARGS_ASSERT_SVREFCNT_INC_NN;
+
+    SvREFCNT(sv)++;
+    return sv;
+}
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_inc_void(SV *sv)
+{
+    if (LIKELY(sv != NULL))
+        SvREFCNT(sv)++;
+}
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec(pTHX_ SV *sv)
+{
+    if (LIKELY(sv != NULL)) {
+        U32 rc = SvREFCNT(sv);
+        if (LIKELY(rc > 1))
+            SvREFCNT(sv) = rc - 1;
+        else
+            Perl_sv_free2(aTHX_ sv, rc);
+    }
+}
+
+PERL_STATIC_INLINE SV *
+Perl_SvREFCNT_dec_ret_NULL(pTHX_ SV *sv)
+{
+    PERL_ARGS_ASSERT_SVREFCNT_DEC_RET_NULL;
+    Perl_SvREFCNT_dec(aTHX_ sv);
+    return NULL;
+}
+
+
+PERL_STATIC_INLINE void
+Perl_SvREFCNT_dec_NN(pTHX_ SV *sv)
+{
+    U32 rc = SvREFCNT(sv);
+
+    PERL_ARGS_ASSERT_SVREFCNT_DEC_NN;
+
+    if (LIKELY(rc > 1))
+        SvREFCNT(sv) = rc - 1;
+    else
+        Perl_sv_free2(aTHX_ sv, rc);
+}
+
+/*
+=for apidoc SvAMAGIC_on
+
+Indicate that C<sv> has overloading (active magic) enabled.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_on(SV *sv)
+{
+    PERL_ARGS_ASSERT_SVAMAGIC_ON;
+    assert(SvROK(sv));
+
+    if (SvOBJECT(SvRV(sv))) HvAMAGIC_on(SvSTASH(SvRV(sv)));
+}
+
+/*
+=for apidoc SvAMAGIC_off
+
+Indicate that C<sv> has overloading (active magic) disabled.
+
+=cut
+*/
+
+PERL_STATIC_INLINE void
+Perl_SvAMAGIC_off(SV *sv)
+{
+    PERL_ARGS_ASSERT_SVAMAGIC_OFF;
+
+    if (SvROK(sv) && SvOBJECT(SvRV(sv)))
+        HvAMAGIC_off(SvSTASH(SvRV(sv)));
+}
+
+PERL_STATIC_INLINE U32
+Perl_SvPADSTALE_on(SV *sv)
+{
+    assert(!(SvFLAGS(sv) & SVs_PADTMP));
+    return SvFLAGS(sv) |= SVs_PADSTALE;
+}
+PERL_STATIC_INLINE U32
+Perl_SvPADSTALE_off(SV *sv)
+{
+    assert(!(SvFLAGS(sv) & SVs_PADTMP));
+    return SvFLAGS(sv) &= ~SVs_PADSTALE;
+}
+
+/*
+=for apidoc_section $SV
+=for apidoc      SvIV
+=for apidoc_item SvIV_nomg
+=for apidoc_item SvIVx
+
+These each coerce the given SV to IV and return it.  The returned value in many
+circumstances will get stored in C<sv>'s IV slot, but not in all cases.  (Use
+C<L</sv_setiv>> to make sure it does).
+
+As of 5.37.1, all are guaranteed to evaluate C<sv> only once.
+
+C<SvIVx> is now identical to C<SvIV>, but prior to 5.37.1, it was the only form
+guaranteed to evaluate C<sv> only once.
+
+C<SvIV_nomg> is the same as C<SvIV>, but does not perform 'get' magic.
+
+=for apidoc      SvNV
+=for apidoc_item SvNV_nomg
+=for apidoc_item SvNVx
+
+These each coerce the given SV to NV and return it.  The returned value in many
+circumstances will get stored in C<sv>'s NV slot, but not in all cases.  (Use
+C<L</sv_setnv>> to make sure it does).
+
+As of 5.37.1, all are guaranteed to evaluate C<sv> only once.
+
+C<SvNVx> is now identical to C<SvNV>, but prior to 5.37.1, it was the only form
+guaranteed to evaluate C<sv> only once.
+
+C<SvNV_nomg> is the same as C<SvNV>, but does not perform 'get' magic.
+
+=for apidoc      SvUV
+=for apidoc_item SvUV_nomg
+=for apidoc_item SvUVx
+
+These each coerce the given SV to UV and return it.  The returned value in many
+circumstances will get stored in C<sv>'s UV slot, but not in all cases.  (Use
+C<L</sv_setuv>> to make sure it does).
+
+As of 5.37.1, all are guaranteed to evaluate C<sv> only once.
+
+C<SvUVx> is now identical to C<SvUV>, but prior to 5.37.1, it was the only form
+guaranteed to evaluate C<sv> only once.
+
+=cut
+*/
+
+PERL_STATIC_INLINE IV
+Perl_SvIV(pTHX_ SV *sv) {
+    PERL_ARGS_ASSERT_SVIV;
+
+    if (SvIOK_nog(sv))
+        return SvIVX(sv);
+    return sv_2iv(sv);
+}
+
+PERL_STATIC_INLINE UV
+Perl_SvUV(pTHX_ SV *sv) {
+    PERL_ARGS_ASSERT_SVUV;
+
+    if (SvUOK_nog(sv))
+        return SvUVX(sv);
+    return sv_2uv(sv);
+}
+
+PERL_STATIC_INLINE NV
+Perl_SvNV(pTHX_ SV *sv) {
+    PERL_ARGS_ASSERT_SVNV;
+
+    if (SvNOK_nog(sv))
+        return SvNVX(sv);
+    return sv_2nv(sv);
+}
+
+PERL_STATIC_INLINE IV
+Perl_SvIV_nomg(pTHX_ SV *sv) {
+    PERL_ARGS_ASSERT_SVIV_NOMG;
+
+    if (SvIOK(sv))
+        return SvIVX(sv);
+    return sv_2iv_flags(sv, 0);
+}
+
+PERL_STATIC_INLINE UV
+Perl_SvUV_nomg(pTHX_ SV *sv) {
+    PERL_ARGS_ASSERT_SVUV_NOMG;
+
+    if (SvIOK_nog(sv))
+        return SvUVX(sv);
+    return sv_2uv_flags(sv, 0);
+}
+
+PERL_STATIC_INLINE NV
+Perl_SvNV_nomg(pTHX_ SV *sv) {
+    PERL_ARGS_ASSERT_SVNV_NOMG;
+
+    if (SvNOK_nog(sv))
+        return SvNVX(sv);
+    return sv_2nv_flags(sv, 0);
+}
+
+#if defined(PERL_CORE) || defined (PERL_EXT)
+PERL_STATIC_INLINE STRLEN
+S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp)
+{
+    PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B;
+    if (SvGAMAGIC(sv)) {
+        U8 *hopped = utf8_hop((U8 *)pv, pos);
+        if (lenp) *lenp = (STRLEN)(utf8_hop(hopped, *lenp) - hopped);
+        return (STRLEN)(hopped - (U8 *)pv);
+    }
+    return sv_pos_u2b_flags(sv,pos,lenp,SV_CONST_RETURN);
+}
+#endif
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvutf8n_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy)
+{
+    /* This is just so can be passed to Perl_SvPV_helper() as a function
+     * pointer with the same signature as all the other such pointers, and
+     * having hence an unused parameter */
+    PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE_WRAPPER;
+    PERL_UNUSED_ARG(dummy);
+
+    return sv_pvutf8n_force(sv, lp);
+}
+
+PERL_STATIC_INLINE char *
+Perl_sv_pvbyten_force_wrapper(pTHX_ SV * const sv, STRLEN * const lp, const U32 dummy)
+{
+    /* This is just so can be passed to Perl_SvPV_helper() as a function
+     * pointer with the same signature as all the other such pointers, and
+     * having hence an unused parameter */
+    PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE_WRAPPER;
+    PERL_UNUSED_ARG(dummy);
+
+    return sv_pvbyten_force(sv, lp);
+}
+
+PERL_STATIC_INLINE char *
+Perl_SvPV_helper(pTHX_
+                 SV * const sv,
+                 STRLEN * const lp,
+                 const U32 flags,
+                 const PL_SvPVtype type,
+                 char * (*non_trivial)(pTHX_ SV *, STRLEN * const, const U32),
+                 const bool or_null,
+                 const U32 return_flags
+                )
+{
+    /* 'type' should be known at compile time, so this is reduced to a single
+     * conditional at runtime */
+    if (   (type == SvPVbyte_type_      && SvPOK_byte_nog(sv))
+        || (type == SvPVforce_type_     && SvPOK_pure_nogthink(sv))
+        || (type == SvPVutf8_type_      && SvPOK_utf8_nog(sv))
+        || (type == SvPVnormal_type_    && SvPOK_nog(sv))
+        || (type == SvPVutf8_pure_type_ && SvPOK_utf8_pure_nogthink(sv))
+        || (type == SvPVbyte_pure_type_ && SvPOK_byte_pure_nogthink(sv))
+   ) {
+        if (lp) {
+            *lp = SvCUR(sv);
+        }
+
+        /* Similarly 'return_flags is known at compile time, so this becomes
+         * branchless */
+        if (return_flags & SV_MUTABLE_RETURN) {
+            return SvPVX_mutable(sv);
+        }
+        else if(return_flags & SV_CONST_RETURN) {
+            return (char *) SvPVX_const(sv);
+        }
+        else {
+            return SvPVX(sv);
+        }
+    }
+
+    if (or_null) {  /* This is also known at compile time */
+        if (flags & SV_GMAGIC) {    /* As is this */
+            SvGETMAGIC(sv);
+        }
+
+        if (! SvOK(sv)) {
+            if (lp) {   /* As is this */
+                *lp = 0;
+            }
+
+            return NULL;
+        }
+    }
+
+    /* Can't trivially handle this, call the function */
+    return non_trivial(aTHX_ sv, lp, (flags|return_flags));
+}
+
+/*
+=for apidoc newRV_noinc
+
+Creates an RV wrapper for an SV.  The reference count for the original
+SV is B<not> incremented.
+
+=cut
+*/
+
+PERL_STATIC_INLINE SV *
+Perl_newRV_noinc(pTHX_ SV *const tmpRef)
+{
+    SV *sv = newSV_type(SVt_IV);
+
+    PERL_ARGS_ASSERT_NEWRV_NOINC;
+
+    SvTEMP_off(tmpRef);
+
+    /* inlined, simplified sv_setrv_noinc(sv, tmpRef); */
+    SvRV_set(sv, tmpRef);
+    SvROK_on(sv);
+
+    return sv;
+}
+
+PERL_STATIC_INLINE char *
+Perl_sv_setpv_freshbuf(pTHX_ SV *const sv)
+{
+    PERL_ARGS_ASSERT_SV_SETPV_FRESHBUF;
+    assert(SvTYPE(sv) >= SVt_PV);
+    assert(SvTYPE(sv) <= SVt_PVMG);
+    assert(!SvTHINKFIRST(sv));
+    assert(SvPVX(sv));
+    SvCUR_set(sv, 0);
+    *(SvEND(sv))= '\0';
+    (void)SvPOK_only_UTF8(sv);
+    SvTAINT(sv);
+    return SvPVX(sv);
 }
 
 /*
Index: gnu/usr.bin/perl/syscall_emulator.c
===================================================================
RCS file: gnu/usr.bin/perl/syscall_emulator.c
diff -N gnu/usr.bin/perl/syscall_emulator.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/syscall_emulator.c	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,1420 @@
+/*
+ * Generated from gen_syscall_emulator.pl
+ */
+#include <sys/syscall.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <sys/socket.h>
+#include <sys/event.h>
+#include <sys/futex.h>
+#include <sys/ioctl.h>
+#include <sys/ktrace.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/msg.h>
+#include <sys/poll.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/sem.h>
+#include <sys/shm.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <sys/wait.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <sched.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <syslog.h>
+#include <tib.h>
+#include <time.h>
+#include <unistd.h>
+#include "syscall_emulator.h"
+
+long
+syscall_emulator(int syscall, ...)
+{
+	long ret = 0;
+	va_list args;
+	va_start(args, syscall);
+
+	switch(syscall) {
+	/* Indirect syscalls not supported
+	 *case SYS_syscall:
+	 *	ret = syscall(int, ...);
+	 *	break;
+	 */
+	case SYS_exit:
+		exit(va_arg(args, int)); // rval
+		break;
+	case SYS_fork:
+		ret = fork();
+		break;
+	case SYS_read: {
+		int fd = (int)va_arg(args, long);
+		void * buf = (void *)va_arg(args, long);
+		size_t nbyte = (size_t)va_arg(args, long);
+		ret = read(fd, buf, nbyte);
+		break;
+	}
+	case SYS_write: {
+		int fd = (int)va_arg(args, long);
+		const void * buf = (const void *)va_arg(args, long);
+		size_t nbyte = (size_t)va_arg(args, long);
+		ret = write(fd, buf, nbyte);
+		break;
+	}
+	case SYS_open: {
+		const char * path = (const char *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = open(path, flags, mode);
+		break;
+	}
+	case SYS_close:
+		ret = close(va_arg(args, int)); // fd
+		break;
+	case SYS_getentropy: {
+		void * buf = (void *)va_arg(args, long);
+		size_t nbyte = (size_t)va_arg(args, long);
+		ret = getentropy(buf, nbyte);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS___tfork: {
+	 *	const struct __tfork * param = (const struct __tfork *)va_arg(args, long);
+	 *	size_t psize = (size_t)va_arg(args, long);
+	 *	ret = __tfork(param, psize);
+	 *	break;
+	 *}
+	 */
+	case SYS_link: {
+		const char * path = (const char *)va_arg(args, long);
+		const char * _link = (const char *)va_arg(args, long);
+		ret = link(path, _link);
+		break;
+	}
+	case SYS_unlink:
+		ret = unlink(va_arg(args, const char *)); // path
+		break;
+	case SYS_wait4: {
+		pid_t pid = (pid_t)va_arg(args, long);
+		int * status = (int *)va_arg(args, long);
+		int options = (int)va_arg(args, long);
+		struct rusage * rusage = (struct rusage *)va_arg(args, long);
+		ret = wait4(pid, status, options, rusage);
+		break;
+	}
+	case SYS_chdir:
+		ret = chdir(va_arg(args, const char *)); // path
+		break;
+	case SYS_fchdir:
+		ret = fchdir(va_arg(args, int)); // fd
+		break;
+	case SYS_mknod: {
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		dev_t dev = (dev_t)va_arg(args, long);
+		ret = mknod(path, mode, dev);
+		break;
+	}
+	case SYS_chmod: {
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = chmod(path, mode);
+		break;
+	}
+	case SYS_chown: {
+		const char * path = (const char *)va_arg(args, long);
+		uid_t uid = (uid_t)va_arg(args, long);
+		gid_t gid = (gid_t)va_arg(args, long);
+		ret = chown(path, uid, gid);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS_break:
+	 *	ret = break(char *);
+	 *	break;
+	 */
+	case SYS_getdtablecount:
+		ret = getdtablecount();
+		break;
+	case SYS_getrusage: {
+		int who = (int)va_arg(args, long);
+		struct rusage * rusage = (struct rusage *)va_arg(args, long);
+		ret = getrusage(who, rusage);
+		break;
+	}
+	case SYS_getpid:
+		ret = getpid();
+		break;
+	case SYS_mount: {
+		const char * type = (const char *)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		void * data = (void *)va_arg(args, long);
+		ret = mount(type, path, flags, data);
+		break;
+	}
+	case SYS_unmount: {
+		const char * path = (const char *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = unmount(path, flags);
+		break;
+	}
+	case SYS_setuid:
+		ret = setuid(va_arg(args, uid_t)); // uid
+		break;
+	case SYS_getuid:
+		ret = getuid();
+		break;
+	case SYS_geteuid:
+		ret = geteuid();
+		break;
+	case SYS_ptrace: {
+		int req = (int)va_arg(args, long);
+		pid_t pid = (pid_t)va_arg(args, long);
+		caddr_t addr = (caddr_t)va_arg(args, long);
+		int data = (int)va_arg(args, long);
+		ret = ptrace(req, pid, addr, data);
+		break;
+	}
+	case SYS_recvmsg: {
+		int s = (int)va_arg(args, long);
+		struct msghdr * msg = (struct msghdr *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = recvmsg(s, msg, flags);
+		break;
+	}
+	case SYS_sendmsg: {
+		int s = (int)va_arg(args, long);
+		const struct msghdr * msg = (const struct msghdr *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = sendmsg(s, msg, flags);
+		break;
+	}
+	case SYS_recvfrom: {
+		int s = (int)va_arg(args, long);
+		void * buf = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		struct sockaddr * from = (struct sockaddr *)va_arg(args, long);
+		socklen_t * fromlenaddr = (socklen_t *)va_arg(args, long);
+		ret = recvfrom(s, buf, len, flags, from, fromlenaddr);
+		break;
+	}
+	case SYS_accept: {
+		int s = (int)va_arg(args, long);
+		struct sockaddr * name = (struct sockaddr *)va_arg(args, long);
+		socklen_t * anamelen = (socklen_t *)va_arg(args, long);
+		ret = accept(s, name, anamelen);
+		break;
+	}
+	case SYS_getpeername: {
+		int fdes = (int)va_arg(args, long);
+		struct sockaddr * asa = (struct sockaddr *)va_arg(args, long);
+		socklen_t * alen = (socklen_t *)va_arg(args, long);
+		ret = getpeername(fdes, asa, alen);
+		break;
+	}
+	case SYS_getsockname: {
+		int fdes = (int)va_arg(args, long);
+		struct sockaddr * asa = (struct sockaddr *)va_arg(args, long);
+		socklen_t * alen = (socklen_t *)va_arg(args, long);
+		ret = getsockname(fdes, asa, alen);
+		break;
+	}
+	case SYS_access: {
+		const char * path = (const char *)va_arg(args, long);
+		int amode = (int)va_arg(args, long);
+		ret = access(path, amode);
+		break;
+	}
+	case SYS_chflags: {
+		const char * path = (const char *)va_arg(args, long);
+		u_int flags = (u_int)va_arg(args, long);
+		ret = chflags(path, flags);
+		break;
+	}
+	case SYS_fchflags: {
+		int fd = (int)va_arg(args, long);
+		u_int flags = (u_int)va_arg(args, long);
+		ret = fchflags(fd, flags);
+		break;
+	}
+	case SYS_sync:
+		sync();
+		break;
+	/* No signature found in headers
+	 *case SYS_msyscall: {
+	 *	void * addr = (void *)va_arg(args, long);
+	 *	size_t len = (size_t)va_arg(args, long);
+	 *	ret = msyscall(addr, len);
+	 *	break;
+	 *}
+	 */
+	case SYS_stat: {
+		const char * path = (const char *)va_arg(args, long);
+		struct stat * ub = (struct stat *)va_arg(args, long);
+		ret = stat(path, ub);
+		break;
+	}
+	case SYS_getppid:
+		ret = getppid();
+		break;
+	case SYS_lstat: {
+		const char * path = (const char *)va_arg(args, long);
+		struct stat * ub = (struct stat *)va_arg(args, long);
+		ret = lstat(path, ub);
+		break;
+	}
+	case SYS_dup:
+		ret = dup(va_arg(args, int)); // fd
+		break;
+	case SYS_fstatat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		struct stat * buf = (struct stat *)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = fstatat(fd, path, buf, flag);
+		break;
+	}
+	case SYS_getegid:
+		ret = getegid();
+		break;
+	case SYS_profil: {
+		caddr_t samples = (caddr_t)va_arg(args, long);
+		size_t size = (size_t)va_arg(args, long);
+		u_long offset = (u_long)va_arg(args, long);
+		u_int scale = (u_int)va_arg(args, long);
+		ret = profil(samples, size, offset, scale);
+		break;
+	}
+	case SYS_ktrace: {
+		const char * fname = (const char *)va_arg(args, long);
+		int ops = (int)va_arg(args, long);
+		int facs = (int)va_arg(args, long);
+		pid_t pid = (pid_t)va_arg(args, long);
+		ret = ktrace(fname, ops, facs, pid);
+		break;
+	}
+	case SYS_sigaction: {
+		int signum = (int)va_arg(args, long);
+		const struct sigaction * nsa = (const struct sigaction *)va_arg(args, long);
+		struct sigaction * osa = (struct sigaction *)va_arg(args, long);
+		ret = sigaction(signum, nsa, osa);
+		break;
+	}
+	case SYS_getgid:
+		ret = getgid();
+		break;
+	/* Mismatched func: int sigprocmask(int, const sigset_t *, sigset_t *); <signal.h>
+	 *                  int sigprocmask(int, sigset_t); <sys/syscall.h>
+	 *case SYS_sigprocmask: {
+	 *	int how = (int)va_arg(args, long);
+	 *	sigset_t mask = (sigset_t)va_arg(args, long);
+	 *	ret = sigprocmask(how, mask);
+	 *	break;
+	 *}
+	 */
+	case SYS_mmap: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int prot = (int)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		int fd = (int)va_arg(args, long);
+		off_t pos = (off_t)va_arg(args, long);
+		ret = (long)mmap(addr, len, prot, flags, fd, pos);
+		break;
+	}
+	case SYS_setlogin:
+		ret = setlogin(va_arg(args, const char *)); // namebuf
+		break;
+	case SYS_acct:
+		ret = acct(va_arg(args, const char *)); // path
+		break;
+	/* Mismatched func: int sigpending(sigset_t *); <signal.h>
+	 *                  int sigpending(void); <sys/syscall.h>
+	 *case SYS_sigpending:
+	 *	ret = sigpending();
+	 *	break;
+	 */
+	case SYS_fstat: {
+		int fd = (int)va_arg(args, long);
+		struct stat * sb = (struct stat *)va_arg(args, long);
+		ret = fstat(fd, sb);
+		break;
+	}
+	case SYS_ioctl: {
+		int fd = (int)va_arg(args, long);
+		u_long com = (u_long)va_arg(args, long);
+		void * data = (void *)va_arg(args, long);
+		ret = ioctl(fd, com, data);
+		break;
+	}
+	case SYS_reboot:
+		ret = reboot(va_arg(args, int)); // opt
+		break;
+	case SYS_revoke:
+		ret = revoke(va_arg(args, const char *)); // path
+		break;
+	case SYS_symlink: {
+		const char * path = (const char *)va_arg(args, long);
+		const char * link = (const char *)va_arg(args, long);
+		ret = symlink(path, link);
+		break;
+	}
+	case SYS_readlink: {
+		const char * path = (const char *)va_arg(args, long);
+		char * buf = (char *)va_arg(args, long);
+		size_t count = (size_t)va_arg(args, long);
+		ret = readlink(path, buf, count);
+		break;
+	}
+	case SYS_execve: {
+		const char * path = (const char *)va_arg(args, long);
+		char *const * argp = (char *const *)va_arg(args, long);
+		char *const * envp = (char *const *)va_arg(args, long);
+		ret = execve(path, argp, envp);
+		break;
+	}
+	case SYS_umask:
+		ret = umask(va_arg(args, mode_t)); // newmask
+		break;
+	case SYS_chroot:
+		ret = chroot(va_arg(args, const char *)); // path
+		break;
+	case SYS_getfsstat: {
+		struct statfs * buf = (struct statfs *)va_arg(args, long);
+		size_t bufsize = (size_t)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = getfsstat(buf, bufsize, flags);
+		break;
+	}
+	case SYS_statfs: {
+		const char * path = (const char *)va_arg(args, long);
+		struct statfs * buf = (struct statfs *)va_arg(args, long);
+		ret = statfs(path, buf);
+		break;
+	}
+	case SYS_fstatfs: {
+		int fd = (int)va_arg(args, long);
+		struct statfs * buf = (struct statfs *)va_arg(args, long);
+		ret = fstatfs(fd, buf);
+		break;
+	}
+	case SYS_fhstatfs: {
+		const fhandle_t * fhp = (const fhandle_t *)va_arg(args, long);
+		struct statfs * buf = (struct statfs *)va_arg(args, long);
+		ret = fhstatfs(fhp, buf);
+		break;
+	}
+	case SYS_vfork:
+		ret = vfork();
+		break;
+	case SYS_gettimeofday: {
+		struct timeval * tp = (struct timeval *)va_arg(args, long);
+		struct timezone * tzp = (struct timezone *)va_arg(args, long);
+		ret = gettimeofday(tp, tzp);
+		break;
+	}
+	case SYS_settimeofday: {
+		const struct timeval * tv = (const struct timeval *)va_arg(args, long);
+		const struct timezone * tzp = (const struct timezone *)va_arg(args, long);
+		ret = settimeofday(tv, tzp);
+		break;
+	}
+	case SYS_setitimer: {
+		int which = (int)va_arg(args, long);
+		const struct itimerval * itv = (const struct itimerval *)va_arg(args, long);
+		struct itimerval * oitv = (struct itimerval *)va_arg(args, long);
+		ret = setitimer(which, itv, oitv);
+		break;
+	}
+	case SYS_getitimer: {
+		int which = (int)va_arg(args, long);
+		struct itimerval * itv = (struct itimerval *)va_arg(args, long);
+		ret = getitimer(which, itv);
+		break;
+	}
+	case SYS_select: {
+		int nd = (int)va_arg(args, long);
+		fd_set * in = (fd_set *)va_arg(args, long);
+		fd_set * ou = (fd_set *)va_arg(args, long);
+		fd_set * ex = (fd_set *)va_arg(args, long);
+		struct timeval * tv = (struct timeval *)va_arg(args, long);
+		ret = select(nd, in, ou, ex, tv);
+		break;
+	}
+	case SYS_kevent: {
+		int fd = (int)va_arg(args, long);
+		const struct kevent * changelist = (const struct kevent *)va_arg(args, long);
+		int nchanges = (int)va_arg(args, long);
+		struct kevent * eventlist = (struct kevent *)va_arg(args, long);
+		int nevents = (int)va_arg(args, long);
+		const struct timespec * timeout = (const struct timespec *)va_arg(args, long);
+		ret = kevent(fd, changelist, nchanges, eventlist, nevents, timeout);
+		break;
+	}
+	case SYS_munmap: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		ret = munmap(addr, len);
+		break;
+	}
+	case SYS_mprotect: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int prot = (int)va_arg(args, long);
+		ret = mprotect(addr, len, prot);
+		break;
+	}
+	case SYS_madvise: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int behav = (int)va_arg(args, long);
+		ret = madvise(addr, len, behav);
+		break;
+	}
+	case SYS_utimes: {
+		const char * path = (const char *)va_arg(args, long);
+		const struct timeval * tptr = (const struct timeval *)va_arg(args, long);
+		ret = utimes(path, tptr);
+		break;
+	}
+	case SYS_futimes: {
+		int fd = (int)va_arg(args, long);
+		const struct timeval * tptr = (const struct timeval *)va_arg(args, long);
+		ret = futimes(fd, tptr);
+		break;
+	}
+	case SYS_mquery: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int prot = (int)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		int fd = (int)va_arg(args, long);
+		off_t pos = (off_t)va_arg(args, long);
+		ret = (long)mquery(addr, len, prot, flags, fd, pos);
+		break;
+	}
+	case SYS_getgroups: {
+		int gidsetsize = (int)va_arg(args, long);
+		gid_t * gidset = (gid_t *)va_arg(args, long);
+		ret = getgroups(gidsetsize, gidset);
+		break;
+	}
+	case SYS_setgroups: {
+		int gidsetsize = (int)va_arg(args, long);
+		const gid_t * gidset = (const gid_t *)va_arg(args, long);
+		ret = setgroups(gidsetsize, gidset);
+		break;
+	}
+	case SYS_getpgrp:
+		ret = getpgrp();
+		break;
+	case SYS_setpgid: {
+		pid_t pid = (pid_t)va_arg(args, long);
+		pid_t pgid = (pid_t)va_arg(args, long);
+		ret = setpgid(pid, pgid);
+		break;
+	}
+	case SYS_futex: {
+		uint32_t * f = (uint32_t *)va_arg(args, long);
+		int op = (int)va_arg(args, long);
+		int val = (int)va_arg(args, long);
+		const struct timespec * timeout = (const struct timespec *)va_arg(args, long);
+		uint32_t * g = (uint32_t *)va_arg(args, long);
+		ret = futex(f, op, val, timeout, g);
+		break;
+	}
+	case SYS_utimensat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		const struct timespec * times = (const struct timespec *)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = utimensat(fd, path, times, flag);
+		break;
+	}
+	case SYS_futimens: {
+		int fd = (int)va_arg(args, long);
+		const struct timespec * times = (const struct timespec *)va_arg(args, long);
+		ret = futimens(fd, times);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS_kbind: {
+	 *	const struct __kbind * param = (const struct __kbind *)va_arg(args, long);
+	 *	size_t psize = (size_t)va_arg(args, long);
+	 *	int64_t proc_cookie = (int64_t)va_arg(args, long);
+	 *	ret = kbind(param, psize, proc_cookie);
+	 *	break;
+	 *}
+	 */
+	case SYS_clock_gettime: {
+		clockid_t clock_id = (clockid_t)va_arg(args, long);
+		struct timespec * tp = (struct timespec *)va_arg(args, long);
+		ret = clock_gettime(clock_id, tp);
+		break;
+	}
+	case SYS_clock_settime: {
+		clockid_t clock_id = (clockid_t)va_arg(args, long);
+		const struct timespec * tp = (const struct timespec *)va_arg(args, long);
+		ret = clock_settime(clock_id, tp);
+		break;
+	}
+	case SYS_clock_getres: {
+		clockid_t clock_id = (clockid_t)va_arg(args, long);
+		struct timespec * tp = (struct timespec *)va_arg(args, long);
+		ret = clock_getres(clock_id, tp);
+		break;
+	}
+	case SYS_dup2: {
+		int from = (int)va_arg(args, long);
+		int to = (int)va_arg(args, long);
+		ret = dup2(from, to);
+		break;
+	}
+	case SYS_nanosleep: {
+		const struct timespec * rqtp = (const struct timespec *)va_arg(args, long);
+		struct timespec * rmtp = (struct timespec *)va_arg(args, long);
+		ret = nanosleep(rqtp, rmtp);
+		break;
+	}
+	case SYS_fcntl: {
+		int fd = (int)va_arg(args, long);
+		int cmd = (int)va_arg(args, long);
+		void * arg = (void *)va_arg(args, long);
+		ret = fcntl(fd, cmd, arg);
+		break;
+	}
+	case SYS_accept4: {
+		int s = (int)va_arg(args, long);
+		struct sockaddr * name = (struct sockaddr *)va_arg(args, long);
+		socklen_t * anamelen = (socklen_t *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = accept4(s, name, anamelen, flags);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS___thrsleep: {
+	 *	const volatile void * ident = (const volatile void *)va_arg(args, long);
+	 *	clockid_t clock_id = (clockid_t)va_arg(args, long);
+	 *	const struct timespec * tp = (const struct timespec *)va_arg(args, long);
+	 *	void * lock = (void *)va_arg(args, long);
+	 *	const int * abort = (const int *)va_arg(args, long);
+	 *	ret = __thrsleep(ident, clock_id, tp, lock, abort);
+	 *	break;
+	 *}
+	 */
+	case SYS_fsync:
+		ret = fsync(va_arg(args, int)); // fd
+		break;
+	case SYS_setpriority: {
+		int which = (int)va_arg(args, long);
+		id_t who = (id_t)va_arg(args, long);
+		int prio = (int)va_arg(args, long);
+		ret = setpriority(which, who, prio);
+		break;
+	}
+	case SYS_socket: {
+		int domain = (int)va_arg(args, long);
+		int type = (int)va_arg(args, long);
+		int protocol = (int)va_arg(args, long);
+		ret = socket(domain, type, protocol);
+		break;
+	}
+	case SYS_connect: {
+		int s = (int)va_arg(args, long);
+		const struct sockaddr * name = (const struct sockaddr *)va_arg(args, long);
+		socklen_t namelen = (socklen_t)va_arg(args, long);
+		ret = connect(s, name, namelen);
+		break;
+	}
+	case SYS_getdents: {
+		int fd = (int)va_arg(args, long);
+		void * buf = (void *)va_arg(args, long);
+		size_t buflen = (size_t)va_arg(args, long);
+		ret = getdents(fd, buf, buflen);
+		break;
+	}
+	case SYS_getpriority: {
+		int which = (int)va_arg(args, long);
+		id_t who = (id_t)va_arg(args, long);
+		ret = getpriority(which, who);
+		break;
+	}
+	case SYS_pipe2: {
+		int * fdp = (int *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = pipe2(fdp, flags);
+		break;
+	}
+	case SYS_dup3: {
+		int from = (int)va_arg(args, long);
+		int to = (int)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = dup3(from, to, flags);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS_sigreturn:
+	 *	ret = sigreturn(va_arg(args, struct sigcontext *)); // sigcntxp
+	 *	break;
+	 */
+	case SYS_bind: {
+		int s = (int)va_arg(args, long);
+		const struct sockaddr * name = (const struct sockaddr *)va_arg(args, long);
+		socklen_t namelen = (socklen_t)va_arg(args, long);
+		ret = bind(s, name, namelen);
+		break;
+	}
+	case SYS_setsockopt: {
+		int s = (int)va_arg(args, long);
+		int level = (int)va_arg(args, long);
+		int name = (int)va_arg(args, long);
+		const void * val = (const void *)va_arg(args, long);
+		socklen_t valsize = (socklen_t)va_arg(args, long);
+		ret = setsockopt(s, level, name, val, valsize);
+		break;
+	}
+	case SYS_listen: {
+		int s = (int)va_arg(args, long);
+		int backlog = (int)va_arg(args, long);
+		ret = listen(s, backlog);
+		break;
+	}
+	case SYS_chflagsat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		u_int flags = (u_int)va_arg(args, long);
+		int atflags = (int)va_arg(args, long);
+		ret = chflagsat(fd, path, flags, atflags);
+		break;
+	}
+	case SYS_pledge: {
+		const char * promises = (const char *)va_arg(args, long);
+		const char * execpromises = (const char *)va_arg(args, long);
+		ret = pledge(promises, execpromises);
+		break;
+	}
+	case SYS_ppoll: {
+		struct pollfd * fds = (struct pollfd *)va_arg(args, long);
+		u_int nfds = (u_int)va_arg(args, long);
+		const struct timespec * ts = (const struct timespec *)va_arg(args, long);
+		const sigset_t * mask = (const sigset_t *)va_arg(args, long);
+		ret = ppoll(fds, nfds, ts, mask);
+		break;
+	}
+	case SYS_pselect: {
+		int nd = (int)va_arg(args, long);
+		fd_set * in = (fd_set *)va_arg(args, long);
+		fd_set * ou = (fd_set *)va_arg(args, long);
+		fd_set * ex = (fd_set *)va_arg(args, long);
+		const struct timespec * ts = (const struct timespec *)va_arg(args, long);
+		const sigset_t * mask = (const sigset_t *)va_arg(args, long);
+		ret = pselect(nd, in, ou, ex, ts, mask);
+		break;
+	}
+	/* Mismatched func: int sigsuspend(const sigset_t *); <signal.h>
+	 *                  int sigsuspend(int); <sys/syscall.h>
+	 *case SYS_sigsuspend:
+	 *	ret = sigsuspend(va_arg(args, int)); // mask
+	 *	break;
+	 */
+	case SYS_sendsyslog: {
+		const char * buf = (const char *)va_arg(args, long);
+		size_t nbyte = (size_t)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = sendsyslog(buf, nbyte, flags);
+		break;
+	}
+	case SYS_unveil: {
+		const char * path = (const char *)va_arg(args, long);
+		const char * permissions = (const char *)va_arg(args, long);
+		ret = unveil(path, permissions);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS___realpath: {
+	 *	const char * pathname = (const char *)va_arg(args, long);
+	 *	char * resolved = (char *)va_arg(args, long);
+	 *	ret = __realpath(pathname, resolved);
+	 *	break;
+	 *}
+	 */
+	case SYS_recvmmsg: {
+		int s = (int)va_arg(args, long);
+		struct mmsghdr * mmsg = (struct mmsghdr *)va_arg(args, long);
+		unsigned int vlen = (unsigned int)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		struct timespec * timeout = (struct timespec *)va_arg(args, long);
+		ret = recvmmsg(s, mmsg, vlen, flags, timeout);
+		break;
+	}
+	case SYS_sendmmsg: {
+		int s = (int)va_arg(args, long);
+		struct mmsghdr * mmsg = (struct mmsghdr *)va_arg(args, long);
+		unsigned int vlen = (unsigned int)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = sendmmsg(s, mmsg, vlen, flags);
+		break;
+	}
+	case SYS_getsockopt: {
+		int s = (int)va_arg(args, long);
+		int level = (int)va_arg(args, long);
+		int name = (int)va_arg(args, long);
+		void * val = (void *)va_arg(args, long);
+		socklen_t * avalsize = (socklen_t *)va_arg(args, long);
+		ret = getsockopt(s, level, name, val, avalsize);
+		break;
+	}
+	case SYS_thrkill: {
+		pid_t tid = (pid_t)va_arg(args, long);
+		int signum = (int)va_arg(args, long);
+		void * tcb = (void *)va_arg(args, long);
+		ret = thrkill(tid, signum, tcb);
+		break;
+	}
+	case SYS_readv: {
+		int fd = (int)va_arg(args, long);
+		const struct iovec * iovp = (const struct iovec *)va_arg(args, long);
+		int iovcnt = (int)va_arg(args, long);
+		ret = readv(fd, iovp, iovcnt);
+		break;
+	}
+	case SYS_writev: {
+		int fd = (int)va_arg(args, long);
+		const struct iovec * iovp = (const struct iovec *)va_arg(args, long);
+		int iovcnt = (int)va_arg(args, long);
+		ret = writev(fd, iovp, iovcnt);
+		break;
+	}
+	case SYS_kill: {
+		int pid = (int)va_arg(args, long);
+		int signum = (int)va_arg(args, long);
+		ret = kill(pid, signum);
+		break;
+	}
+	case SYS_fchown: {
+		int fd = (int)va_arg(args, long);
+		uid_t uid = (uid_t)va_arg(args, long);
+		gid_t gid = (gid_t)va_arg(args, long);
+		ret = fchown(fd, uid, gid);
+		break;
+	}
+	case SYS_fchmod: {
+		int fd = (int)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = fchmod(fd, mode);
+		break;
+	}
+	case SYS_setreuid: {
+		uid_t ruid = (uid_t)va_arg(args, long);
+		uid_t euid = (uid_t)va_arg(args, long);
+		ret = setreuid(ruid, euid);
+		break;
+	}
+	case SYS_setregid: {
+		gid_t rgid = (gid_t)va_arg(args, long);
+		gid_t egid = (gid_t)va_arg(args, long);
+		ret = setregid(rgid, egid);
+		break;
+	}
+	case SYS_rename: {
+		const char * from = (const char *)va_arg(args, long);
+		const char * to = (const char *)va_arg(args, long);
+		ret = rename(from, to);
+		break;
+	}
+	case SYS_flock: {
+		int fd = (int)va_arg(args, long);
+		int how = (int)va_arg(args, long);
+		ret = flock(fd, how);
+		break;
+	}
+	case SYS_mkfifo: {
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = mkfifo(path, mode);
+		break;
+	}
+	case SYS_sendto: {
+		int s = (int)va_arg(args, long);
+		const void * buf = (const void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		const struct sockaddr * to = (const struct sockaddr *)va_arg(args, long);
+		socklen_t tolen = (socklen_t)va_arg(args, long);
+		ret = sendto(s, buf, len, flags, to, tolen);
+		break;
+	}
+	case SYS_shutdown: {
+		int s = (int)va_arg(args, long);
+		int how = (int)va_arg(args, long);
+		ret = shutdown(s, how);
+		break;
+	}
+	case SYS_socketpair: {
+		int domain = (int)va_arg(args, long);
+		int type = (int)va_arg(args, long);
+		int protocol = (int)va_arg(args, long);
+		int * rsv = (int *)va_arg(args, long);
+		ret = socketpair(domain, type, protocol, rsv);
+		break;
+	}
+	case SYS_mkdir: {
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = mkdir(path, mode);
+		break;
+	}
+	case SYS_rmdir:
+		ret = rmdir(va_arg(args, const char *)); // path
+		break;
+	case SYS_adjtime: {
+		const struct timeval * delta = (const struct timeval *)va_arg(args, long);
+		struct timeval * olddelta = (struct timeval *)va_arg(args, long);
+		ret = adjtime(delta, olddelta);
+		break;
+	}
+	/* Mismatched func: int getlogin_r(char *, size_t); <unistd.h>
+	 *                  int getlogin_r(char *, u_int); <sys/syscall.h>
+	 *case SYS_getlogin_r: {
+	 *	char * namebuf = (char *)va_arg(args, long);
+	 *	u_int namelen = (u_int)va_arg(args, long);
+	 *	ret = getlogin_r(namebuf, namelen);
+	 *	break;
+	 *}
+	 */
+	case SYS_getthrname: {
+		pid_t tid = (pid_t)va_arg(args, long);
+		char * name = (char *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		ret = getthrname(tid, name, len);
+		break;
+	}
+	case SYS_setthrname: {
+		pid_t tid = (pid_t)va_arg(args, long);
+		const char * name = (const char *)va_arg(args, long);
+		ret = setthrname(tid, name);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS_pinsyscall: {
+	 *	int syscall = (int)va_arg(args, long);
+	 *	void * addr = (void *)va_arg(args, long);
+	 *	size_t len = (size_t)va_arg(args, long);
+	 *	ret = pinsyscall(syscall, addr, len);
+	 *	break;
+	 *}
+	 */
+	case SYS_setsid:
+		ret = setsid();
+		break;
+	case SYS_quotactl: {
+		const char * path = (const char *)va_arg(args, long);
+		int cmd = (int)va_arg(args, long);
+		int uid = (int)va_arg(args, long);
+		char * arg = (char *)va_arg(args, long);
+		ret = quotactl(path, cmd, uid, arg);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS_ypconnect:
+	 *	ret = ypconnect(va_arg(args, int)); // type
+	 *	break;
+	 */
+	case SYS_nfssvc: {
+		int flag = (int)va_arg(args, long);
+		void * argp = (void *)va_arg(args, long);
+		ret = nfssvc(flag, argp);
+		break;
+	}
+	case SYS_mimmutable: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		ret = mimmutable(addr, len);
+		break;
+	}
+	case SYS_waitid: {
+		int idtype = (int)va_arg(args, long);
+		id_t id = (id_t)va_arg(args, long);
+		siginfo_t * info = (siginfo_t *)va_arg(args, long);
+		int options = (int)va_arg(args, long);
+		ret = waitid(idtype, id, info, options);
+		break;
+	}
+	case SYS_getfh: {
+		const char * fname = (const char *)va_arg(args, long);
+		fhandle_t * fhp = (fhandle_t *)va_arg(args, long);
+		ret = getfh(fname, fhp);
+		break;
+	}
+	/* No signature found in headers
+	 *case SYS___tmpfd:
+	 *	ret = __tmpfd(va_arg(args, int)); // flags
+	 *	break;
+	 */
+	/* No signature found in headers
+	 *case SYS_sysarch: {
+	 *	int op = (int)va_arg(args, long);
+	 *	void * parms = (void *)va_arg(args, long);
+	 *	ret = sysarch(op, parms);
+	 *	break;
+	 *}
+	 */
+	case SYS_lseek: {
+		int fd = (int)va_arg(args, long);
+		off_t offset = (off_t)va_arg(args, long);
+		int whence = (int)va_arg(args, long);
+		ret = lseek(fd, offset, whence);
+		break;
+	}
+	case SYS_truncate: {
+		const char * path = (const char *)va_arg(args, long);
+		off_t length = (off_t)va_arg(args, long);
+		ret = truncate(path, length);
+		break;
+	}
+	case SYS_ftruncate: {
+		int fd = (int)va_arg(args, long);
+		off_t length = (off_t)va_arg(args, long);
+		ret = ftruncate(fd, length);
+		break;
+	}
+	case SYS_pread: {
+		int fd = (int)va_arg(args, long);
+		void * buf = (void *)va_arg(args, long);
+		size_t nbyte = (size_t)va_arg(args, long);
+		off_t offset = (off_t)va_arg(args, long);
+		ret = pread(fd, buf, nbyte, offset);
+		break;
+	}
+	case SYS_pwrite: {
+		int fd = (int)va_arg(args, long);
+		const void * buf = (const void *)va_arg(args, long);
+		size_t nbyte = (size_t)va_arg(args, long);
+		off_t offset = (off_t)va_arg(args, long);
+		ret = pwrite(fd, buf, nbyte, offset);
+		break;
+	}
+	case SYS_preadv: {
+		int fd = (int)va_arg(args, long);
+		const struct iovec * iovp = (const struct iovec *)va_arg(args, long);
+		int iovcnt = (int)va_arg(args, long);
+		off_t offset = (off_t)va_arg(args, long);
+		ret = preadv(fd, iovp, iovcnt, offset);
+		break;
+	}
+	case SYS_pwritev: {
+		int fd = (int)va_arg(args, long);
+		const struct iovec * iovp = (const struct iovec *)va_arg(args, long);
+		int iovcnt = (int)va_arg(args, long);
+		off_t offset = (off_t)va_arg(args, long);
+		ret = pwritev(fd, iovp, iovcnt, offset);
+		break;
+	}
+	case SYS_setgid:
+		ret = setgid(va_arg(args, gid_t)); // gid
+		break;
+	case SYS_setegid:
+		ret = setegid(va_arg(args, gid_t)); // egid
+		break;
+	case SYS_seteuid:
+		ret = seteuid(va_arg(args, uid_t)); // euid
+		break;
+	case SYS_pathconf: {
+		const char * path = (const char *)va_arg(args, long);
+		int name = (int)va_arg(args, long);
+		ret = pathconf(path, name);
+		break;
+	}
+	case SYS_fpathconf: {
+		int fd = (int)va_arg(args, long);
+		int name = (int)va_arg(args, long);
+		ret = fpathconf(fd, name);
+		break;
+	}
+	case SYS_swapctl: {
+		int cmd = (int)va_arg(args, long);
+		const void * arg = (const void *)va_arg(args, long);
+		int misc = (int)va_arg(args, long);
+		ret = swapctl(cmd, arg, misc);
+		break;
+	}
+	case SYS_getrlimit: {
+		int which = (int)va_arg(args, long);
+		struct rlimit * rlp = (struct rlimit *)va_arg(args, long);
+		ret = getrlimit(which, rlp);
+		break;
+	}
+	case SYS_setrlimit: {
+		int which = (int)va_arg(args, long);
+		const struct rlimit * rlp = (const struct rlimit *)va_arg(args, long);
+		ret = setrlimit(which, rlp);
+		break;
+	}
+	case SYS_sysctl: {
+		const int * name = (const int *)va_arg(args, long);
+		u_int namelen = (u_int)va_arg(args, long);
+		void * old = (void *)va_arg(args, long);
+		size_t * oldlenp = (size_t *)va_arg(args, long);
+		void * new = (void *)va_arg(args, long);
+		size_t newlen = (size_t)va_arg(args, long);
+		ret = sysctl(name, namelen, old, oldlenp, new, newlen);
+		break;
+	}
+	case SYS_mlock: {
+		const void * addr = (const void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		ret = mlock(addr, len);
+		break;
+	}
+	case SYS_munlock: {
+		const void * addr = (const void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		ret = munlock(addr, len);
+		break;
+	}
+	case SYS_getpgid:
+		ret = getpgid(va_arg(args, pid_t)); // pid
+		break;
+	case SYS_utrace: {
+		const char * label = (const char *)va_arg(args, long);
+		const void * addr = (const void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		ret = utrace(label, addr, len);
+		break;
+	}
+	case SYS_semget: {
+		key_t key = (key_t)va_arg(args, long);
+		int nsems = (int)va_arg(args, long);
+		int semflg = (int)va_arg(args, long);
+		ret = semget(key, nsems, semflg);
+		break;
+	}
+	case SYS_msgget: {
+		key_t key = (key_t)va_arg(args, long);
+		int msgflg = (int)va_arg(args, long);
+		ret = msgget(key, msgflg);
+		break;
+	}
+	case SYS_msgsnd: {
+		int msqid = (int)va_arg(args, long);
+		const void * msgp = (const void *)va_arg(args, long);
+		size_t msgsz = (size_t)va_arg(args, long);
+		int msgflg = (int)va_arg(args, long);
+		ret = msgsnd(msqid, msgp, msgsz, msgflg);
+		break;
+	}
+	case SYS_msgrcv: {
+		int msqid = (int)va_arg(args, long);
+		void * msgp = (void *)va_arg(args, long);
+		size_t msgsz = (size_t)va_arg(args, long);
+		long msgtyp = (long)va_arg(args, long);
+		int msgflg = (int)va_arg(args, long);
+		ret = msgrcv(msqid, msgp, msgsz, msgtyp, msgflg);
+		break;
+	}
+	case SYS_shmat: {
+		int shmid = (int)va_arg(args, long);
+		const void * shmaddr = (const void *)va_arg(args, long);
+		int shmflg = (int)va_arg(args, long);
+		ret = (long)shmat(shmid, shmaddr, shmflg);
+		break;
+	}
+	case SYS_shmdt:
+		ret = shmdt(va_arg(args, const void *)); // shmaddr
+		break;
+	case SYS_minherit: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int inherit = (int)va_arg(args, long);
+		ret = minherit(addr, len, inherit);
+		break;
+	}
+	case SYS_poll: {
+		struct pollfd * fds = (struct pollfd *)va_arg(args, long);
+		u_int nfds = (u_int)va_arg(args, long);
+		int timeout = (int)va_arg(args, long);
+		ret = poll(fds, nfds, timeout);
+		break;
+	}
+	case SYS_issetugid:
+		ret = issetugid();
+		break;
+	case SYS_lchown: {
+		const char * path = (const char *)va_arg(args, long);
+		uid_t uid = (uid_t)va_arg(args, long);
+		gid_t gid = (gid_t)va_arg(args, long);
+		ret = lchown(path, uid, gid);
+		break;
+	}
+	case SYS_getsid:
+		ret = getsid(va_arg(args, pid_t)); // pid
+		break;
+	case SYS_msync: {
+		void * addr = (void *)va_arg(args, long);
+		size_t len = (size_t)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = msync(addr, len, flags);
+		break;
+	}
+	case SYS_pipe:
+		ret = pipe(va_arg(args, int *)); // fdp
+		break;
+	case SYS_fhopen: {
+		const fhandle_t * fhp = (const fhandle_t *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		ret = fhopen(fhp, flags);
+		break;
+	}
+	case SYS_kqueue:
+		ret = kqueue();
+		break;
+	case SYS_mlockall:
+		ret = mlockall(va_arg(args, int)); // flags
+		break;
+	case SYS_munlockall:
+		ret = munlockall();
+		break;
+	case SYS_getresuid: {
+		uid_t * ruid = (uid_t *)va_arg(args, long);
+		uid_t * euid = (uid_t *)va_arg(args, long);
+		uid_t * suid = (uid_t *)va_arg(args, long);
+		ret = getresuid(ruid, euid, suid);
+		break;
+	}
+	case SYS_setresuid: {
+		uid_t ruid = (uid_t)va_arg(args, long);
+		uid_t euid = (uid_t)va_arg(args, long);
+		uid_t suid = (uid_t)va_arg(args, long);
+		ret = setresuid(ruid, euid, suid);
+		break;
+	}
+	case SYS_getresgid: {
+		gid_t * rgid = (gid_t *)va_arg(args, long);
+		gid_t * egid = (gid_t *)va_arg(args, long);
+		gid_t * sgid = (gid_t *)va_arg(args, long);
+		ret = getresgid(rgid, egid, sgid);
+		break;
+	}
+	case SYS_setresgid: {
+		gid_t rgid = (gid_t)va_arg(args, long);
+		gid_t egid = (gid_t)va_arg(args, long);
+		gid_t sgid = (gid_t)va_arg(args, long);
+		ret = setresgid(rgid, egid, sgid);
+		break;
+	}
+	case SYS_closefrom:
+		ret = closefrom(va_arg(args, int)); // fd
+		break;
+	case SYS_sigaltstack: {
+		const struct sigaltstack * nss = (const struct sigaltstack *)va_arg(args, long);
+		struct sigaltstack * oss = (struct sigaltstack *)va_arg(args, long);
+		ret = sigaltstack(nss, oss);
+		break;
+	}
+	case SYS_shmget: {
+		key_t key = (key_t)va_arg(args, long);
+		size_t size = (size_t)va_arg(args, long);
+		int shmflg = (int)va_arg(args, long);
+		ret = shmget(key, size, shmflg);
+		break;
+	}
+	case SYS_semop: {
+		int semid = (int)va_arg(args, long);
+		struct sembuf * sops = (struct sembuf *)va_arg(args, long);
+		size_t nsops = (size_t)va_arg(args, long);
+		ret = semop(semid, sops, nsops);
+		break;
+	}
+	case SYS_fhstat: {
+		const fhandle_t * fhp = (const fhandle_t *)va_arg(args, long);
+		struct stat * sb = (struct stat *)va_arg(args, long);
+		ret = fhstat(fhp, sb);
+		break;
+	}
+	case SYS___semctl: {
+		int semid = (int)va_arg(args, long);
+		int semnum = (int)va_arg(args, long);
+		int cmd = (int)va_arg(args, long);
+		union semun * arg = (union semun *)va_arg(args, long);
+		ret = __semctl(semid, semnum, cmd, arg);
+		break;
+	}
+	case SYS_shmctl: {
+		int shmid = (int)va_arg(args, long);
+		int cmd = (int)va_arg(args, long);
+		struct shmid_ds * buf = (struct shmid_ds *)va_arg(args, long);
+		ret = shmctl(shmid, cmd, buf);
+		break;
+	}
+	case SYS_msgctl: {
+		int msqid = (int)va_arg(args, long);
+		int cmd = (int)va_arg(args, long);
+		struct msqid_ds * buf = (struct msqid_ds *)va_arg(args, long);
+		ret = msgctl(msqid, cmd, buf);
+		break;
+	}
+	case SYS_sched_yield:
+		ret = sched_yield();
+		break;
+	case SYS_getthrid:
+		ret = getthrid();
+		break;
+	/* No signature found in headers
+	 *case SYS___thrwakeup: {
+	 *	const volatile void * ident = (const volatile void *)va_arg(args, long);
+	 *	int n = (int)va_arg(args, long);
+	 *	ret = __thrwakeup(ident, n);
+	 *	break;
+	 *}
+	 */
+	/* No signature found in headers
+	 *case SYS___threxit:
+	 *	__threxit(va_arg(args, pid_t *)); // notdead
+	 *	break;
+	 */
+	/* No signature found in headers
+	 *case SYS___thrsigdivert: {
+	 *	sigset_t sigmask = (sigset_t)va_arg(args, long);
+	 *	siginfo_t * info = (siginfo_t *)va_arg(args, long);
+	 *	const struct timespec * timeout = (const struct timespec *)va_arg(args, long);
+	 *	ret = __thrsigdivert(sigmask, info, timeout);
+	 *	break;
+	 *}
+	 */
+	/* No signature found in headers
+	 *case SYS___getcwd: {
+	 *	char * buf = (char *)va_arg(args, long);
+	 *	size_t len = (size_t)va_arg(args, long);
+	 *	ret = __getcwd(buf, len);
+	 *	break;
+	 *}
+	 */
+	case SYS_adjfreq: {
+		const int64_t * freq = (const int64_t *)va_arg(args, long);
+		int64_t * oldfreq = (int64_t *)va_arg(args, long);
+		ret = adjfreq(freq, oldfreq);
+		break;
+	}
+	case SYS_setrtable:
+		ret = setrtable(va_arg(args, int)); // rtableid
+		break;
+	case SYS_getrtable:
+		ret = getrtable();
+		break;
+	case SYS_faccessat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		int amode = (int)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = faccessat(fd, path, amode, flag);
+		break;
+	}
+	case SYS_fchmodat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = fchmodat(fd, path, mode, flag);
+		break;
+	}
+	case SYS_fchownat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		uid_t uid = (uid_t)va_arg(args, long);
+		gid_t gid = (gid_t)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = fchownat(fd, path, uid, gid, flag);
+		break;
+	}
+	case SYS_linkat: {
+		int fd1 = (int)va_arg(args, long);
+		const char * path1 = (const char *)va_arg(args, long);
+		int fd2 = (int)va_arg(args, long);
+		const char * path2 = (const char *)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = linkat(fd1, path1, fd2, path2, flag);
+		break;
+	}
+	case SYS_mkdirat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = mkdirat(fd, path, mode);
+		break;
+	}
+	case SYS_mkfifoat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = mkfifoat(fd, path, mode);
+		break;
+	}
+	case SYS_mknodat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		dev_t dev = (dev_t)va_arg(args, long);
+		ret = mknodat(fd, path, mode, dev);
+		break;
+	}
+	case SYS_openat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		int flags = (int)va_arg(args, long);
+		mode_t mode = (mode_t)va_arg(args, long);
+		ret = openat(fd, path, flags, mode);
+		break;
+	}
+	case SYS_readlinkat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		char * buf = (char *)va_arg(args, long);
+		size_t count = (size_t)va_arg(args, long);
+		ret = readlinkat(fd, path, buf, count);
+		break;
+	}
+	case SYS_renameat: {
+		int fromfd = (int)va_arg(args, long);
+		const char * from = (const char *)va_arg(args, long);
+		int tofd = (int)va_arg(args, long);
+		const char * to = (const char *)va_arg(args, long);
+		ret = renameat(fromfd, from, tofd, to);
+		break;
+	}
+	case SYS_symlinkat: {
+		const char * path = (const char *)va_arg(args, long);
+		int fd = (int)va_arg(args, long);
+		const char * link = (const char *)va_arg(args, long);
+		ret = symlinkat(path, fd, link);
+		break;
+	}
+	case SYS_unlinkat: {
+		int fd = (int)va_arg(args, long);
+		const char * path = (const char *)va_arg(args, long);
+		int flag = (int)va_arg(args, long);
+		ret = unlinkat(fd, path, flag);
+		break;
+	}
+	case SYS___set_tcb:
+		__set_tcb(va_arg(args, void *)); // tcb
+		break;
+	case SYS___get_tcb:
+		ret = (long)__get_tcb();
+		break;
+	default:
+		ret = -1;
+		errno = ENOSYS;
+	}
+	va_end(args);
+
+	return ret;
+}
Index: gnu/usr.bin/perl/taint.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/taint.c,v
diff -u -p -a -u -p -r1.20 taint.c
--- gnu/usr.bin/perl/taint.c	15 Feb 2023 01:36:13 -0000	1.20
+++ gnu/usr.bin/perl/taint.c	21 Feb 2024 15:47:03 -0000
@@ -34,7 +34,9 @@ Implements the L</TAINT_PROPER> macro, w
 void
 Perl_taint_proper(pTHX_ const char *f, const char *const s)
 {
-    /* Output a tainting violation, croaking unless we're just to warn.
+    /* Don't use directly; instead use TAINT_PROPER
+     *
+     * Output a tainting violation, croaking unless we're just to warn.
      * '_proper' is just to throw you off the scent */
 
 #if defined(HAS_SETEUID) && defined(DEBUGGING)
@@ -95,6 +97,8 @@ Implements the L</TAINT_ENV> macro, whic
 void
 Perl_taint_env(pTHX)
 {
+    /* Don't use directly; instead use TAINT_ENV */
+
     SV** svp;
     const char* const *e;
     static const char* const misc_env[] = {
Index: gnu/usr.bin/perl/thread.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/thread.h,v
diff -u -p -a -u -p -r1.4 thread.h
--- gnu/usr.bin/perl/thread.h	15 Feb 2023 01:36:13 -0000	1.4
+++ gnu/usr.bin/perl/thread.h	21 Feb 2024 15:47:03 -0000
@@ -174,20 +174,20 @@
 #  ifdef MUTEX_INIT_NEEDS_MUTEX_ZEROED
     /* Temporary workaround, true bug is deeper. --jhi 1999-02-25 */
 #    define MUTEX_INIT(m) \
-    STMT_START {						\
-        int _eC_;						\
-        Zero((m), 1, perl_mutex);                               \
-        if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default)))	\
-            Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]",	\
-                                 _eC_, __FILE__, __LINE__);	\
+    STMT_START {                                                    \
+        int _eC_;                                                   \
+        Zero((m), 1, perl_mutex);                                   \
+        if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default)))\
+            Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]",  \
+                                 _eC_, __FILE__, __LINE__);         \
     } STMT_END
 #  else
 #    define MUTEX_INIT(m) \
     STMT_START {						\
         int _eC_;						\
-        if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default)))	\
-            Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]",	\
-                                 _eC_, __FILE__, __LINE__);	\
+        if ((_eC_ = pthread_mutex_init((m), pthread_mutexattr_default))) \
+            Perl_croak_nocontext("panic: MUTEX_INIT (%d) [%s:%d]", \
+                                 _eC_, __FILE__, __LINE__);     \
     } STMT_END
 #  endif
 
@@ -199,28 +199,38 @@
 #    define perl_pthread_mutex_unlock(m) pthread_mutex_unlock(m)
 #  endif
 
-#  define MUTEX_LOCK(m) \
+#  define MUTEX_LOCK(m)                                         \
     STMT_START {						\
+        dSAVE_ERRNO;                                            \
         int _eC_;						\
-        if ((_eC_ = perl_pthread_mutex_lock((m))))			\
-            Perl_croak_nocontext("panic: MUTEX_LOCK (%d) [%s:%d]",	\
+        if ((_eC_ = perl_pthread_mutex_lock((m))))		\
+            Perl_croak_nocontext("panic: MUTEX_LOCK (%d) [%s:%d]",\
                                  _eC_, __FILE__, __LINE__);	\
+        RESTORE_ERRNO;                                          \
     } STMT_END
 
-#  define MUTEX_UNLOCK(m) \
+#  define MUTEX_UNLOCK(m)                                       \
     STMT_START {						\
+        dSAVE_ERRNO; /* Shouldn't be necessary as panics if fails */\
         int _eC_;						\
-        if ((_eC_ = perl_pthread_mutex_unlock((m))))			\
-            Perl_croak_nocontext("panic: MUTEX_UNLOCK (%d) [%s:%d]",	\
+        if ((_eC_ = perl_pthread_mutex_unlock((m)))) {          \
+            Perl_croak_nocontext(                               \
+                            "panic: MUTEX_UNLOCK (%d) [%s:%d]", \
                                  _eC_, __FILE__, __LINE__);	\
+        }                                                       \
+        RESTORE_ERRNO;                                          \
     } STMT_END
 
-#  define MUTEX_DESTROY(m) \
-    STMT_START {						\
-        int _eC_;						\
-        if ((_eC_ = pthread_mutex_destroy((m))))		\
-            Perl_croak_nocontext("panic: MUTEX_DESTROY (%d) [%s:%d]",	\
-                                 _eC_, __FILE__, __LINE__);	\
+#  define MUTEX_DESTROY(m)                                                  \
+    STMT_START {						            \
+        int _eC_;						            \
+        if ((_eC_ = pthread_mutex_destroy((m)))) {                          \
+            dTHX;                                                           \
+            if (PL_phase != PERL_PHASE_DESTRUCT) {                          \
+                Perl_croak_nocontext("panic: MUTEX_DESTROY (%d) [%s:%d]",   \
+                                    _eC_, __FILE__, __LINE__);	            \
+            }                                                               \
+        }                                                                   \
     } STMT_END
 #endif /* MUTEX_INIT */
 
@@ -258,11 +268,15 @@
     } STMT_END
 
 #  define COND_DESTROY(c) \
-    STMT_START {						\
-        int _eC_;						\
-        if ((_eC_ = pthread_cond_destroy((c))))			\
-            Perl_croak_nocontext("panic: COND_DESTROY (%d) [%s:%d]",	\
-                                 _eC_, __FILE__, __LINE__);	\
+    STMT_START {						            \
+        int _eC_;						            \
+        if ((_eC_ = pthread_cond_destroy((c)))) {                           \
+            dTHX;                                                           \
+            if (PL_phase != PERL_PHASE_DESTRUCT) {                          \
+                Perl_croak_nocontext("panic: COND_DESTROY (%d) [%s:%d]",    \
+                                    _eC_, __FILE__, __LINE__);	            \
+            }                                                               \
+        }                                                                   \
     } STMT_END
 #endif /* COND_INIT */
 
@@ -390,12 +404,14 @@ extern PERL_THREAD_LOCAL void *PL_curren
 /* We must also call pthread_setspecific() always, as C++ code has to read it
  * with pthreads (the #else side just below) */
 
-#  define PERL_SET_CONTEXT(t)                                           \
-    STMT_START {                                                        \
-        int _eC_;                                                       \
-        if ((_eC_ = pthread_setspecific(PL_thr_key, PL_current_context = (void *)(t)))) \
+#  define PERL_SET_CONTEXT(t)                                               \
+    STMT_START {                                                            \
+        int _eC_;                                                           \
+        if ((_eC_ = pthread_setspecific(PL_thr_key,                         \
+                                        PL_current_context = (void *)(t)))) \
             Perl_croak_nocontext("panic: pthread_setspecific (%d) [%s:%d]", \
-                                 _eC_, __FILE__, __LINE__);             \
+                                 _eC_, __FILE__, __LINE__);                 \
+        PERL_SET_NON_tTHX_CONTEXT(t);                                       \
     } STMT_END
 
 #else
Index: gnu/usr.bin/perl/time64.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/time64.c,v
diff -u -p -a -u -p -r1.5 time64.c
--- gnu/usr.bin/perl/time64.c	15 Feb 2023 01:36:13 -0000	1.5
+++ gnu/usr.bin/perl/time64.c	21 Feb 2024 15:47:03 -0000
@@ -26,6 +26,33 @@ THE SOFTWARE.
 
 */
 
+
+/*
+ *   This thing all things devours:
+ *   Birds, beasts, trees, flowers;
+ *   Gnaws iron, bites steel;
+ *   Grinds hard stones to meal;
+ *   Slays king, ruins town,
+ *   And beats high mountain down."
+ *
+ * Poor Bilbo sat in the dark thinking of all the horrible names of all the
+ * giants and ogres he had ever heard told of in tales, but not one of them had
+ * done all these things. He had a feeling that the answer was quite different
+ * and that he ought to know it, but he could not think of it. He began to get
+ * frightened, and that is bad for thinking. Gollum began to get out of his
+ * boat. He flapped into the water and paddled to the bank; Bilbo could see his
+ * eyes coming towards him. His tongue seemed to stick in his mouth; he wanted
+ * to shout out: "Give me more time! Give me time!" But all that came out with
+ * a sudden squeal was:
+ *
+ * "Time! Time!"
+ *
+ * Bilbo was saved by pure luck. For that of course was the answer.
+ *
+ *     [p.84 of _The Hobbit_: "Riddles in the Dark"]
+ *
+*/
+
 /*
 
 Programmers who have available to them 64-bit time values as a 'long
@@ -113,40 +140,6 @@ static const short safe_years[SOLAR_CYCL
 #    define TIME64_TRACE1(format, var1) ((void)0)
 #    define TIME64_TRACE2(format, var1, var2) ((void)0)
 #    define TIME64_TRACE3(format, var1, var2, var3) ((void)0)
-#endif
-
-/* Set up the mutexes for this file.  There are no races possible on
- * non-threaded perls, nor platforms that naturally don't have them.
- * Otherwise, we need to have mutexes.  If we have reentrant versions of the
- * functions below, they automatically will be substituted for the
- * non-reentrant ones.  That solves the problem of the buffers being trashed by
- * another thread, but not of the environment or locale changing during their
- * execution.  To do that, we only need a read lock (which prevents writing by
- * others).  However, if we don't have re-entrant functions, we can gain some
- * measure of thread-safety by using an exclusive lock during their execution.
- * That will protect against any other use of the functions that use the
- * mutexes, which all of core should be using. */
-#ifdef USE_REENTRANT_API  /* This indicates a platform where we need reentrant
-                             versions if have them */
-#  ifdef PERL_REENTR_USING_LOCALTIME_R
-#    define LOCALTIME_LOCK    ENV_LOCALE_READ_LOCK
-#    define LOCALTIME_UNLOCK  ENV_LOCALE_READ_UNLOCK
-#  else
-#    define LOCALTIME_LOCK    ENV_LOCALE_LOCK
-#    define LOCALTIME_UNLOCK  ENV_LOCALE_UNLOCK
-#  endif
-#  ifdef PERL_REENTR_USING_GMTIME_R
-#    define GMTIME_LOCK    ENV_LOCALE_READ_LOCK
-#    define GMTIME_UNLOCK  ENV_LOCALE_READ_UNLOCK
-#  else
-#    define GMTIME_LOCK    ENV_LOCALE_LOCK
-#    define GMTIME_UNLOCK  ENV_LOCALE_UNLOCK
-#  endif
-#else   /* Reentrant not needed, so races not possible */
-#  define LOCALTIME_LOCK    NOOP
-#  define LOCALTIME_UNLOCK  NOOP
-#  define GMTIME_LOCK       NOOP
-#  define GMTIME_UNLOCK     NOOP
 #endif
 
 static int S_is_exception_century(Year year)
Index: gnu/usr.bin/perl/toke.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/toke.c,v
diff -u -p -a -u -p -r1.27 toke.c
--- gnu/usr.bin/perl/toke.c	15 Feb 2023 01:36:13 -0000	1.27
+++ gnu/usr.bin/perl/toke.c	21 Feb 2024 15:47:03 -0000
@@ -115,6 +115,15 @@ static const char ident_var_zero_multi_d
  * 1999-02-27 mjd-perl-patch@plover.com */
 #define isCONTROLVAR(x) (isUPPER(x) || memCHRs("[\\]^_?", (x)))
 
+/* Non-identifier plugin infix operators are allowed any printing character
+ * except spaces, digits, or identifier chars
+ */
+#define isPLUGINFIX(c) (c && !isSPACE(c) && !isDIGIT(c) && !isALPHA(c))
+/* Plugin infix operators may not begin with a quote symbol */
+#define isPLUGINFIX_FIRST(c) (isPLUGINFIX(c) && c != '"' && c != '\'')
+
+#define PLUGINFIX_IS_ENABLED  UNLIKELY(PL_infix_plugin != &Perl_infix_plugin_standard)
+
 #define SPACE_OR_TAB(c) isBLANK_A(c)
 
 #define HEXFP_PEEK(s)     \
@@ -226,6 +235,7 @@ static const char* const lex_state_names
 #define PRETERMBLOCK(retval) return (PL_expect = XTERMBLOCK,PL_bufptr = s, REPORT(retval))
 #define PREREF(retval) return (PL_expect = XREF,PL_bufptr = s, REPORT(retval))
 #define TERM(retval) return (CLINE, PL_expect = XOPERATOR, PL_bufptr = s, REPORT(retval))
+#define PHASERBLOCK(f) return (pl_yylval.ival=f, PL_expect = XBLOCK, PL_bufptr = s, REPORT((int)PHASER))
 #define POSTDEREF(f) return (PL_bufptr = s, S_postderef(aTHX_ REPORT(f),s[1]))
 #define LOOPX(f) return (PL_bufptr = force_word(s,BAREWORD,TRUE,FALSE), \
                          pl_yylval.ival=f, \
@@ -410,106 +420,121 @@ static struct debug_tokens {
     const char *name;
 } const debug_tokens[] =
 {
-    { ADDOP,		TOKENTYPE_OPNUM,	"ADDOP" },
-    { ANDAND,		TOKENTYPE_NONE,		"ANDAND" },
-    { ANDOP,		TOKENTYPE_NONE,		"ANDOP" },
-    { ANONSUB,		TOKENTYPE_IVAL,		"ANONSUB" },
-    { ANON_SIGSUB,	TOKENTYPE_IVAL,		"ANON_SIGSUB" },
-    { ARROW,		TOKENTYPE_NONE,		"ARROW" },
-    { ASSIGNOP,		TOKENTYPE_OPNUM,	"ASSIGNOP" },
-    { BITANDOP,		TOKENTYPE_OPNUM,	"BITANDOP" },
-    { BITOROP,		TOKENTYPE_OPNUM,	"BITOROP" },
-    { CATCH,		TOKENTYPE_IVAL,		"CATCH" },
-    { CHEQOP,		TOKENTYPE_OPNUM,	"CHEQOP" },
-    { CHRELOP,		TOKENTYPE_OPNUM,	"CHRELOP" },
-    { COLONATTR,	TOKENTYPE_NONE,		"COLONATTR" },
-    { CONTINUE,		TOKENTYPE_NONE,		"CONTINUE" },
-    { DEFAULT,		TOKENTYPE_NONE,		"DEFAULT" },
-    { DO,		TOKENTYPE_NONE,		"DO" },
-    { DOLSHARP,		TOKENTYPE_NONE,		"DOLSHARP" },
-    { DORDOR,		TOKENTYPE_NONE,		"DORDOR" },
-    { DOTDOT,		TOKENTYPE_IVAL,		"DOTDOT" },
-    { ELSE,		TOKENTYPE_NONE,		"ELSE" },
-    { ELSIF,		TOKENTYPE_IVAL,		"ELSIF" },
-    { FOR,		TOKENTYPE_IVAL,		"FOR" },
-    { FORMAT,		TOKENTYPE_NONE,		"FORMAT" },
-    { FORMLBRACK,	TOKENTYPE_NONE,		"FORMLBRACK" },
-    { FORMRBRACK,	TOKENTYPE_NONE,		"FORMRBRACK" },
-    { FUNC,		TOKENTYPE_OPNUM,	"FUNC" },
-    { FUNC0,		TOKENTYPE_OPNUM,	"FUNC0" },
-    { FUNC0OP,		TOKENTYPE_OPVAL,	"FUNC0OP" },
-    { FUNC0SUB,		TOKENTYPE_OPVAL,	"FUNC0SUB" },
-    { FUNC1,		TOKENTYPE_OPNUM,	"FUNC1" },
-    { FUNCMETH,		TOKENTYPE_OPVAL,	"FUNCMETH" },
-    { GIVEN,		TOKENTYPE_IVAL,		"GIVEN" },
-    { HASHBRACK,	TOKENTYPE_NONE,		"HASHBRACK" },
-    { IF,		TOKENTYPE_IVAL,		"IF" },
-    { LABEL,		TOKENTYPE_OPVAL,	"LABEL" },
-    { LOCAL,		TOKENTYPE_IVAL,		"LOCAL" },
-    { LOOPEX,		TOKENTYPE_OPNUM,	"LOOPEX" },
-    { LSTOP,		TOKENTYPE_OPNUM,	"LSTOP" },
-    { LSTOPSUB,		TOKENTYPE_OPVAL,	"LSTOPSUB" },
-    { MATCHOP,		TOKENTYPE_OPNUM,	"MATCHOP" },
-    { METHOD,		TOKENTYPE_OPVAL,	"METHOD" },
-    { MULOP,		TOKENTYPE_OPNUM,	"MULOP" },
-    { MY,		TOKENTYPE_IVAL,		"MY" },
-    { NCEQOP,		TOKENTYPE_OPNUM,	"NCEQOP" },
-    { NCRELOP,		TOKENTYPE_OPNUM,	"NCRELOP" },
-    { NOAMP,		TOKENTYPE_NONE,		"NOAMP" },
-    { NOTOP,		TOKENTYPE_NONE,		"NOTOP" },
-    { OROP,		TOKENTYPE_IVAL,		"OROP" },
-    { OROR,		TOKENTYPE_NONE,		"OROR" },
-    { PACKAGE,		TOKENTYPE_NONE,		"PACKAGE" },
-    DEBUG_TOKEN (IVAL, PERLY_AMPERSAND),
-    DEBUG_TOKEN (IVAL, PERLY_BRACE_CLOSE),
-    DEBUG_TOKEN (IVAL, PERLY_BRACE_OPEN),
-    DEBUG_TOKEN (IVAL, PERLY_BRACKET_CLOSE),
-    DEBUG_TOKEN (IVAL, PERLY_BRACKET_OPEN),
-    DEBUG_TOKEN (IVAL, PERLY_COLON),
-    DEBUG_TOKEN (IVAL, PERLY_COMMA),
-    DEBUG_TOKEN (IVAL, PERLY_DOT),
-    DEBUG_TOKEN (IVAL, PERLY_EQUAL_SIGN),
-    DEBUG_TOKEN (IVAL, PERLY_EXCLAMATION_MARK),
-    DEBUG_TOKEN (IVAL, PERLY_MINUS),
-    DEBUG_TOKEN (IVAL, PERLY_PAREN_OPEN),
-    DEBUG_TOKEN (IVAL, PERLY_PERCENT_SIGN),
-    DEBUG_TOKEN (IVAL, PERLY_PLUS),
-    DEBUG_TOKEN (IVAL, PERLY_QUESTION_MARK),
-    DEBUG_TOKEN (IVAL, PERLY_SEMICOLON),
-    DEBUG_TOKEN (IVAL, PERLY_SLASH),
-    DEBUG_TOKEN (IVAL, PERLY_SNAIL),
-    DEBUG_TOKEN (IVAL, PERLY_STAR),
-    DEBUG_TOKEN (IVAL, PERLY_TILDE),
-    { PLUGEXPR,		TOKENTYPE_OPVAL,	"PLUGEXPR" },
-    { PLUGSTMT,		TOKENTYPE_OPVAL,	"PLUGSTMT" },
-    { PMFUNC,		TOKENTYPE_OPVAL,	"PMFUNC" },
-    { POSTJOIN,		TOKENTYPE_NONE,		"POSTJOIN" },
-    { POSTDEC,		TOKENTYPE_NONE,		"POSTDEC" },
-    { POSTINC,		TOKENTYPE_NONE,		"POSTINC" },
-    { POWOP,		TOKENTYPE_OPNUM,	"POWOP" },
-    { PREDEC,		TOKENTYPE_NONE,		"PREDEC" },
-    { PREINC,		TOKENTYPE_NONE,		"PREINC" },
-    { PRIVATEREF,	TOKENTYPE_OPVAL,	"PRIVATEREF" },
-    { QWLIST,		TOKENTYPE_OPVAL,	"QWLIST" },
-    { REFGEN,		TOKENTYPE_NONE,		"REFGEN" },
-    { REQUIRE,		TOKENTYPE_NONE,		"REQUIRE" },
-    { SHIFTOP,		TOKENTYPE_OPNUM,	"SHIFTOP" },
-    { SIGSUB,		TOKENTYPE_NONE,		"SIGSUB" },
-    { SUB,		TOKENTYPE_NONE,		"SUB" },
-    { SUBLEXEND,	TOKENTYPE_NONE,		"SUBLEXEND" },
-    { SUBLEXSTART,	TOKENTYPE_NONE,		"SUBLEXSTART" },
-    { THING,		TOKENTYPE_OPVAL,	"THING" },
-    { TRY,		TOKENTYPE_IVAL,		"TRY" },
-    { UMINUS,		TOKENTYPE_NONE,		"UMINUS" },
-    { UNIOP,		TOKENTYPE_OPNUM,	"UNIOP" },
-    { UNIOPSUB,		TOKENTYPE_OPVAL,	"UNIOPSUB" },
-    { UNLESS,		TOKENTYPE_IVAL,		"UNLESS" },
-    { UNTIL,		TOKENTYPE_IVAL,		"UNTIL" },
-    { USE,		TOKENTYPE_IVAL,		"USE" },
-    { WHEN,		TOKENTYPE_IVAL,		"WHEN" },
-    { WHILE,		TOKENTYPE_IVAL,		"WHILE" },
-    { BAREWORD,		TOKENTYPE_OPVAL,	"BAREWORD" },
-    { YADAYADA,		TOKENTYPE_IVAL,		"YADAYADA" },
+    DEBUG_TOKEN (OPNUM, ADDOP),
+    DEBUG_TOKEN (NONE,  ANDAND),
+    DEBUG_TOKEN (NONE,  ANDOP),
+    DEBUG_TOKEN (NONE,  ARROW),
+    DEBUG_TOKEN (OPNUM, ASSIGNOP),
+    DEBUG_TOKEN (OPNUM, BITANDOP),
+    DEBUG_TOKEN (OPNUM, BITOROP),
+    DEBUG_TOKEN (OPNUM, CHEQOP),
+    DEBUG_TOKEN (OPNUM, CHRELOP),
+    DEBUG_TOKEN (NONE,  COLONATTR),
+    DEBUG_TOKEN (NONE,  DOLSHARP),
+    DEBUG_TOKEN (NONE,  DORDOR),
+    DEBUG_TOKEN (IVAL,  DOTDOT),
+    DEBUG_TOKEN (NONE,  FORMLBRACK),
+    DEBUG_TOKEN (NONE,  FORMRBRACK),
+    DEBUG_TOKEN (OPNUM, FUNC),
+    DEBUG_TOKEN (OPNUM, FUNC0),
+    DEBUG_TOKEN (OPVAL, FUNC0OP),
+    DEBUG_TOKEN (OPVAL, FUNC0SUB),
+    DEBUG_TOKEN (OPNUM, FUNC1),
+    DEBUG_TOKEN (NONE,  HASHBRACK),
+    DEBUG_TOKEN (IVAL,  KW_CATCH),
+    DEBUG_TOKEN (IVAL,  KW_CLASS),
+    DEBUG_TOKEN (IVAL,  KW_CONTINUE),
+    DEBUG_TOKEN (IVAL,  KW_DEFAULT),
+    DEBUG_TOKEN (IVAL,  KW_DO),
+    DEBUG_TOKEN (IVAL,  KW_ELSE),
+    DEBUG_TOKEN (IVAL,  KW_ELSIF),
+    DEBUG_TOKEN (IVAL,  KW_FIELD),
+    DEBUG_TOKEN (IVAL,  KW_GIVEN),
+    DEBUG_TOKEN (IVAL,  KW_FOR),
+    DEBUG_TOKEN (IVAL,  KW_FORMAT),
+    DEBUG_TOKEN (IVAL,  KW_IF),
+    DEBUG_TOKEN (IVAL,  KW_LOCAL),
+    DEBUG_TOKEN (IVAL,  KW_METHOD_anon),
+    DEBUG_TOKEN (IVAL,  KW_METHOD_named),
+    DEBUG_TOKEN (IVAL,  KW_MY),
+    DEBUG_TOKEN (IVAL,  KW_PACKAGE),
+    DEBUG_TOKEN (IVAL,  KW_REQUIRE),
+    DEBUG_TOKEN (IVAL,  KW_SUB_anon),
+    DEBUG_TOKEN (IVAL,  KW_SUB_anon_sig),
+    DEBUG_TOKEN (IVAL,  KW_SUB_named),
+    DEBUG_TOKEN (IVAL,  KW_SUB_named_sig),
+    DEBUG_TOKEN (IVAL,  KW_TRY),
+    DEBUG_TOKEN (IVAL,  KW_USE_or_NO),
+    DEBUG_TOKEN (IVAL,  KW_UNLESS),
+    DEBUG_TOKEN (IVAL,  KW_UNTIL),
+    DEBUG_TOKEN (IVAL,  KW_WHEN),
+    DEBUG_TOKEN (IVAL,  KW_WHILE),
+    DEBUG_TOKEN (OPVAL, LABEL),
+    DEBUG_TOKEN (OPNUM, LOOPEX),
+    DEBUG_TOKEN (OPNUM, LSTOP),
+    DEBUG_TOKEN (OPVAL, LSTOPSUB),
+    DEBUG_TOKEN (OPNUM, MATCHOP),
+    DEBUG_TOKEN (OPVAL, METHCALL),
+    DEBUG_TOKEN (OPVAL, METHCALL0),
+    DEBUG_TOKEN (OPNUM, MULOP),
+    DEBUG_TOKEN (OPNUM, NCEQOP),
+    DEBUG_TOKEN (OPNUM, NCRELOP),
+    DEBUG_TOKEN (NONE,  NOAMP),
+    DEBUG_TOKEN (NONE,  NOTOP),
+    DEBUG_TOKEN (IVAL,  OROP),
+    DEBUG_TOKEN (NONE,  OROR),
+    DEBUG_TOKEN (IVAL,  PERLY_AMPERSAND),
+    DEBUG_TOKEN (IVAL,  PERLY_BRACE_CLOSE),
+    DEBUG_TOKEN (IVAL,  PERLY_BRACE_OPEN),
+    DEBUG_TOKEN (IVAL,  PERLY_BRACKET_CLOSE),
+    DEBUG_TOKEN (IVAL,  PERLY_BRACKET_OPEN),
+    DEBUG_TOKEN (IVAL,  PERLY_COLON),
+    DEBUG_TOKEN (IVAL,  PERLY_COMMA),
+    DEBUG_TOKEN (IVAL,  PERLY_DOT),
+    DEBUG_TOKEN (IVAL,  PERLY_EQUAL_SIGN),
+    DEBUG_TOKEN (IVAL,  PERLY_EXCLAMATION_MARK),
+    DEBUG_TOKEN (IVAL,  PERLY_MINUS),
+    DEBUG_TOKEN (IVAL,  PERLY_PAREN_OPEN),
+    DEBUG_TOKEN (IVAL,  PERLY_PERCENT_SIGN),
+    DEBUG_TOKEN (IVAL,  PERLY_PLUS),
+    DEBUG_TOKEN (IVAL,  PERLY_QUESTION_MARK),
+    DEBUG_TOKEN (IVAL,  PERLY_SEMICOLON),
+    DEBUG_TOKEN (IVAL,  PERLY_SLASH),
+    DEBUG_TOKEN (IVAL,  PERLY_SNAIL),
+    DEBUG_TOKEN (IVAL,  PERLY_STAR),
+    DEBUG_TOKEN (IVAL,  PERLY_TILDE),
+    DEBUG_TOKEN (OPVAL, PLUGEXPR),
+    DEBUG_TOKEN (OPVAL, PLUGSTMT),
+    DEBUG_TOKEN (PVAL,  PLUGIN_ADD_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_ASSIGN_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_HIGH_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_LOGICAL_AND_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_LOGICAL_OR_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_LOGICAL_AND_LOW_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_LOGICAL_OR_LOW_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_LOW_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_MUL_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_POW_OP),
+    DEBUG_TOKEN (PVAL,  PLUGIN_REL_OP),
+    DEBUG_TOKEN (OPVAL, PMFUNC),
+    DEBUG_TOKEN (NONE,  POSTJOIN),
+    DEBUG_TOKEN (NONE,  POSTDEC),
+    DEBUG_TOKEN (NONE,  POSTINC),
+    DEBUG_TOKEN (OPNUM, POWOP),
+    DEBUG_TOKEN (NONE,  PREDEC),
+    DEBUG_TOKEN (NONE,  PREINC),
+    DEBUG_TOKEN (OPVAL, PRIVATEREF),
+    DEBUG_TOKEN (OPVAL, QWLIST),
+    DEBUG_TOKEN (NONE,  REFGEN),
+    DEBUG_TOKEN (OPNUM, SHIFTOP),
+    DEBUG_TOKEN (NONE,  SUBLEXEND),
+    DEBUG_TOKEN (NONE,  SUBLEXSTART),
+    DEBUG_TOKEN (OPVAL, THING),
+    DEBUG_TOKEN (NONE,  UMINUS),
+    DEBUG_TOKEN (OPNUM, UNIOP),
+    DEBUG_TOKEN (OPVAL, UNIOPSUB),
+    DEBUG_TOKEN (OPVAL, BAREWORD),
+    DEBUG_TOKEN (IVAL,  YADAYADA),
     { 0,		TOKENTYPE_NONE,		NULL }
 };
 
@@ -558,7 +583,7 @@ S_tokereport(pTHX_ I32 rv, const YYSTYPE
                                     PL_op_name[lvalp->ival]);
             break;
         case TOKENTYPE_PVAL:
-            Perl_sv_catpvf(aTHX_ report, "(pval=\"%s\")", lvalp->pval);
+            Perl_sv_catpvf(aTHX_ report, "(pval=%p)", lvalp->pval);
             break;
         case TOKENTYPE_OPVAL:
             if (lvalp->opval) {
@@ -642,6 +667,10 @@ S_no_op(pTHX_ const char *const what, ch
 {
     char * const oldbp = PL_bufptr;
     const bool is_first = (PL_oldbufptr == PL_linestart);
+    SV *message = sv_2mortal( newSVpvf(
+                   PERL_DIAG_WARN_SYNTAX("%s found where operator expected"),
+                   what
+                  ) );
 
     PERL_ARGS_ASSERT_NO_OP;
 
@@ -649,34 +678,54 @@ S_no_op(pTHX_ const char *const what, ch
         s = oldbp;
     else
         PL_bufptr = s;
-    yywarn(Perl_form(aTHX_ "%s found where operator expected", what), UTF ? SVf_UTF8 : 0);
+
     if (ckWARN_d(WARN_SYNTAX)) {
-        if (is_first)
-            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                    "\t(Missing semicolon on previous line?)\n");
-        else if (PL_oldoldbufptr && isIDFIRST_lazy_if_safe(PL_oldoldbufptr,
-                                                           PL_bufend,
-                                                           UTF))
-        {
+        bool has_more = FALSE;
+        if (is_first) {
+            has_more = TRUE;
+            sv_catpvs(message,
+                    " (Missing semicolon on previous line?)");
+        }
+        else if (PL_oldoldbufptr) {
+            /* yyerror (via yywarn) would do this itself, so we should too */
             const char *t;
             for (t = PL_oldoldbufptr;
-                 (isWORDCHAR_lazy_if_safe(t, PL_bufend, UTF) || *t == ':');
+                 t < PL_bufptr && isSPACE(*t);
                  t += UTF ? UTF8SKIP(t) : 1)
             {
                 NOOP;
             }
-            if (t < PL_bufptr && isSPACE(*t))
-                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                        "\t(Do you need to predeclare %" UTF8f "?)\n",
-                      UTF8fARG(UTF, t - PL_oldoldbufptr, PL_oldoldbufptr));
+            /* see if we can identify the cause of the warning */
+            if (isIDFIRST_lazy_if_safe(t,PL_bufend,UTF))
+            {
+                const char *t_start= t;
+                for ( ;
+                     (isWORDCHAR_lazy_if_safe(t, PL_bufend, UTF) || *t == ':');
+                     t += UTF ? UTF8SKIP(t) : 1)
+                {
+                    NOOP;
+                }
+                if (t < PL_bufptr && isSPACE(*t)) {
+                    has_more = TRUE;
+                    sv_catpvf( message,
+                            " (Do you need to predeclare \"%" UTF8f "\"?)",
+                          UTF8fARG(UTF, t - t_start, t_start));
+                }
+            }
         }
-        else {
+        if (!has_more) {
+            const char *t= oldbp;
             assert(s >= oldbp);
-            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                    "\t(Missing operator before %" UTF8f "?)\n",
-                     UTF8fARG(UTF, s - oldbp, oldbp));
+            while (t < s && isSPACE(*t)) {
+                t += UTF ? UTF8SKIP(t) : 1;
+            }
+
+            sv_catpvf(message,
+                    " (Missing operator before \"%" UTF8f "\"?)",
+                     UTF8fARG(UTF, s - t, t));
         }
     }
+    yywarn(SvPV_nolen(message), UTF ? SVf_UTF8 : 0);
     PL_bufptr = oldbp;
 }
 
@@ -852,7 +901,7 @@ Perl_lex_start(pTHX_ SV *line, PerlIO *r
     Newxz(parser->lex_shared, 1, LEXSHARED);
 
     if (line) {
-        STRLEN len;
+        Size_t len;
         const U8* first_bad_char_loc;
 
         s = SvPV_const(line, len);
@@ -2194,7 +2243,7 @@ S_newSV_maybe_utf8(pTHX_ const char *con
  * Arguments:
  *   char *start : buffer position (must be within PL_linestr)
  *   int token   : PL_next* will be this type of bare word
- *                 (e.g., METHOD,BAREWORD)
+ *                 (e.g., METHCALL0,BAREWORD)
  *   int check_keyword : if true, Perl checks to make sure the word isn't
  *       a keyword (do this if the word is a label, e.g. goto FOO)
  *   int allow_pack : if true, : characters will also be allowed (require,
@@ -2214,7 +2263,7 @@ S_force_word(pTHX_ char *start, int toke
     if (   isIDFIRST_lazy_if_safe(s, PL_bufend, UTF)
         || (allow_pack && *s == ':' && s[1] == ':') )
     {
-        s = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, allow_pack, &len);
+        s = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, allow_pack, &len, allow_pack);
         if (check_keyword) {
           char *s2 = PL_tokenbuf;
           STRLEN len2 = len;
@@ -2225,7 +2274,7 @@ S_force_word(pTHX_ char *start, int toke
           if (keyword(s2, len2, 0))
             return start;
         }
-        if (token == METHOD) {
+        if (token == METHCALL0) {
             s = skipspace(s);
             if (*s == '(')
                 PL_expect = XTERM;
@@ -2382,8 +2431,8 @@ S_force_strict_version(pTHX_ char *s)
         s = (char *)scan_version(s, ver, 0);
         version = newSVOP(OP_CONST, 0, ver);
     }
-    else if ((*s != ';' && *s != '{' && *s != '}' )
-             && (s = skipspace(s), (*s != ';' && *s != '{' && *s != '}' )))
+    else if ((*s != ';' && *s != ':' && *s != '{' && *s != '}' )
+             && (s = skipspace(s), (*s != ';' && *s != ':' && *s != '{' && *s != '}' )))
     {
         PL_bufptr = s;
         if (errstr)
@@ -3032,7 +3081,7 @@ Perl_get_and_check_backslash_N_name(pTHX
     stops on:
         @ and $ where it appears to be a var, but not for $ as tail anchor
         \l \L \u \U \Q \E
-        (?{  or  (??{
+        (?{  or  (??{ or (*{
 
   In transliterations:
     characters are VERY literal, except for - not at the start or end
@@ -3069,7 +3118,7 @@ Perl_get_and_check_backslash_N_name(pTHX
   The structure of the code is
       while (there's a character to process) {
           handle transliteration ranges
-          skip regexp comments /(?#comment)/ and codes /(?{code})/
+          skip regexp comments /(?#comment)/ and codes /(?{code})/ ((*{code})/
           skip #-initiated comments in //x patterns
           check for embedded arrays
           check for embedded scalars
@@ -3592,9 +3641,9 @@ S_scan_const(pTHX_ char *start)
         }
             /* skip for regexp comments /(?#comment)/, except for the last
              * char, which will be done separately.  Stop on (?{..}) and
-             * friends */
-        else if (*s == '(' && PL_lex_inpat && s[1] == '?' && !in_charclass) {
-            if (s[2] == '#') {
+             * friends (??{ ... }) or (*{ ... }) */
+        else if (*s == '(' && PL_lex_inpat && (s[1] == '?' || s[1] == '*') && !in_charclass) {
+            if (s[1] == '?' && s[2] == '#') {
                 if (s_is_utf8) {
                     PERL_UINT_FAST8_T  len = UTF8SKIP(s);
 
@@ -3609,10 +3658,13 @@ S_scan_const(pTHX_ char *start)
                     *d++ = *s++;
                 }
             }
-            else if (!PL_lex_casemods
-                     && (    s[2] == '{' /* This should match regcomp.c */
-                         || (s[2] == '?' && s[3] == '{')))
-            {
+            else
+            if (!PL_lex_casemods &&
+                /* The following should match regcomp.c */
+                ((s[1] == '?' && (s[2] == '{'                        /* (?{ ... })  */
+                              || (s[2] == '?' && s[3] == '{'))) ||   /* (??{ ... }) */
+                 (s[1] == '*' && (s[2] == '{' )))                    /* (*{ ... })  */
+            ){
                 break;
             }
         }
@@ -4564,7 +4616,7 @@ S_intuit_more(pTHX_ char *s, char *e)
  * Does all the checking to disambiguate
  *   foo bar
  * between foo(bar) and bar->foo.  Returns 0 if not a method, otherwise
- * FUNCMETH (bar->foo(args)) or METHOD (bar->foo args).
+ * METHCALL (bar->foo(args)) or METHCALL0 (bar->foo args).
  *
  * First argument is the stuff after the first token, e.g. "bar".
  *
@@ -4620,10 +4672,10 @@ S_intuit_method(pTHX_ char *start, SV *i
             s = skipspace(s);
         PL_bufptr = SvPVX(PL_linestr) + start_off;
         PL_expect = XREF;
-        return *s == '(' ? FUNCMETH : METHOD;
+        return *s == '(' ? METHCALL : METHCALL0;
     }
 
-    s = scan_word(s, tmpbuf, sizeof tmpbuf, TRUE, &len);
+    s = scan_word6(s, tmpbuf, sizeof tmpbuf, TRUE, &len, FALSE);
     /* start is the beginning of the possible filehandle/object,
      * and s is the end of it
      * tmpbuf is a copy of it (but with single quotes as double colons)
@@ -4653,7 +4705,7 @@ S_intuit_method(pTHX_ char *start, SV *i
             PL_expect = XTERM;
             force_next(BAREWORD);
             PL_bufptr = s;
-            return *s == '(' ? FUNCMETH : METHOD;
+            return *s == '(' ? METHCALL : METHCALL0;
         }
     }
     return 0;
@@ -4767,7 +4819,7 @@ Perl_filter_del(pTHX_ filter_t funcp)
     /* if filter is on top of stack (usual case) just pop it off */
     datasv = FILTER_DATA(AvFILLp(PL_rsfp_filters));
     if (IoANY(datasv) == FPTR2DPTR(void *, funcp)) {
-        sv_free(av_pop(PL_rsfp_filters));
+        SvREFCNT_dec(av_pop(PL_rsfp_filters));
 
         return;
     }
@@ -5066,7 +5118,23 @@ yyl_sigvar(pTHX_ char *s)
             PL_oldbufptr = s;
 
             ++s;
-            NEXTVAL_NEXTTOKE.ival = 0;
+            NEXTVAL_NEXTTOKE.ival = OP_SASSIGN;
+            force_next(ASSIGNOP);
+            PL_expect = XTERM;
+        }
+        else if(*s == '/' && s[1] == '/' && s[2] == '=') {
+            PL_oldbufptr = s;
+
+            s += 3;
+            NEXTVAL_NEXTTOKE.ival = OP_DORASSIGN;
+            force_next(ASSIGNOP);
+            PL_expect = XTERM;
+        }
+        else if(*s == '|' && s[1] == '|' && s[2] == '=') {
+            PL_oldbufptr = s;
+
+            s += 3;
+            NEXTVAL_NEXTTOKE.ival = OP_ORASSIGN;
             force_next(ASSIGNOP);
             PL_expect = XTERM;
         }
@@ -5235,8 +5303,8 @@ yyl_dollar(pTHX_ char *s)
                     } while (isSPACE(*t));
                     if (isIDFIRST_lazy_if_safe(t, PL_bufend, UTF)) {
                         STRLEN len;
-                        t = scan_word(t, tmpbuf, sizeof tmpbuf, TRUE,
-                                        &len);
+                        t = scan_word6(t, tmpbuf, sizeof tmpbuf, TRUE,
+                                      &len, TRUE);
                         while (isSPACE(*t))
                             t++;
                         if (  *t == ';'
@@ -5269,7 +5337,7 @@ yyl_dollar(pTHX_ char *s)
                 char tmpbuf[sizeof PL_tokenbuf];
                 int t2;
                 STRLEN len;
-                scan_word(s, tmpbuf, sizeof tmpbuf, TRUE, &len);
+                scan_word6(s, tmpbuf, sizeof tmpbuf, TRUE, &len, FALSE);
                 if ((t2 = keyword(tmpbuf, len, 0))) {
                     /* binary operators exclude handle interpretations */
                     switch (t2) {
@@ -5319,7 +5387,10 @@ yyl_sub(pTHX_ char *s, const int key)
     bool have_name, have_proto;
     STRLEN len;
     SV *format_name = NULL;
-    bool is_sigsub = FEATURE_SIGNATURES_IS_ENABLED;
+    bool is_method = (key == KEY_method);
+
+    /* method always implies signatures */
+    bool is_sigsub = is_method || FEATURE_SIGNATURES_IS_ENABLED;
 
     SSize_t off = s-SvPVX(PL_linestr);
     char *d;
@@ -5337,8 +5408,8 @@ yyl_sub(pTHX_ char *s, const int key)
     {
 
         PL_expect = XATTRBLOCK;
-        d = scan_word(s, tmpbuf, sizeof PL_tokenbuf - 1, TRUE,
-                      &len);
+        d = scan_word6(s, tmpbuf, sizeof PL_tokenbuf - 1, TRUE,
+                      &len, TRUE);
         if (key == KEY_format)
             format_name = S_newSV_maybe_utf8(aTHX_ s, d - s);
         *PL_tokenbuf = '&';
@@ -5377,7 +5448,7 @@ yyl_sub(pTHX_ char *s, const int key)
             NEXTVAL_NEXTTOKE.opval->op_private |= OPpCONST_BARE;
             force_next(BAREWORD);
         }
-        PREBLOCK(FORMAT);
+        PREBLOCK(KW_FORMAT);
     }
 
     /* Look for a prototype */
@@ -5398,9 +5469,9 @@ yyl_sub(pTHX_ char *s, const int key)
     if (  !(*s == ':' && s[1] != ':')
         && (*s != '{' && *s != '(') && key != KEY_format)
     {
-        assert(key == KEY_sub || key == KEY_AUTOLOAD ||
-               key == KEY_DESTROY || key == KEY_BEGIN ||
-               key == KEY_UNITCHECK || key == KEY_CHECK ||
+        assert(key == KEY_sub || key == KEY_method ||
+               key == KEY_AUTOLOAD || key == KEY_DESTROY ||
+               key == KEY_BEGIN || key == KEY_UNITCHECK || key == KEY_CHECK ||
                key == KEY_INIT || key == KEY_END ||
                key == KEY_my || key == KEY_state ||
                key == KEY_our);
@@ -5416,21 +5487,26 @@ yyl_sub(pTHX_ char *s, const int key)
         PL_lex_stuff = NULL;
         force_next(THING);
     }
+
     if (!have_name) {
         if (PL_curstash)
             sv_setpvs(PL_subname, "__ANON__");
         else
             sv_setpvs(PL_subname, "__ANON__::__ANON__");
-        if (is_sigsub)
-            TOKEN(ANON_SIGSUB);
+        if (is_method)
+            TOKEN(KW_METHOD_anon);
+        else if (is_sigsub)
+            TOKEN(KW_SUB_anon_sig);
         else
-            TOKEN(ANONSUB);
+            TOKEN(KW_SUB_anon);
     }
     force_ident_maybe_lex('&');
-    if (is_sigsub)
-        TOKEN(SIGSUB);
+    if (is_method)
+        TOKEN(KW_METHOD_named);
+    else if (is_sigsub)
+        TOKEN(KW_SUB_named_sig);
     else
-        TOKEN(SUB);
+        TOKEN(KW_SUB_named);
 }
 
 static int
@@ -5547,7 +5623,7 @@ yyl_secondclass_keyword(pTHX_ char *s, S
         {
             if (GvIMPORTED_CV(gv))
                 ogv = gv;
-            else if (! CvMETHOD(cv))
+            else if (! CvNOWARN_AMBIGUOUS(cv))
                 hgv = gv;
         }
         if (!ogv
@@ -5742,7 +5818,7 @@ yyl_hyphen(pTHX_ char *s)
                 TOKEN(ARROW);
             }
             if (isIDFIRST_lazy_if_safe(s, PL_bufend, UTF)) {
-                s = force_word(s,METHOD,FALSE,TRUE);
+                s = force_word(s,METHCALL0,FALSE,TRUE);
                 TOKEN(ARROW);
             }
             else if (*s == '$')
@@ -5914,11 +5990,10 @@ yyl_colon(pTHX_ char *s)
         s = skipspace(s);
         attrs = NULL;
         while (isIDFIRST_lazy_if_safe(s, PL_bufend, UTF)) {
-            bool sig = PL_parser->sig_seen;
             I32 tmp;
             SV *sv;
             STRLEN len;
-            char *d = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len);
+            char *d = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len, FALSE);
             if (isLOWER(*s) && (tmp = keyword(PL_tokenbuf, len, 0))) {
                 if (tmp < 0) tmp = -tmp;
                 switch (tmp) {
@@ -5941,7 +6016,8 @@ yyl_colon(pTHX_ char *s)
                 if (!d) {
                     if (attrs)
                         op_free(attrs);
-                    sv_free(sv);
+                    ASSUME(sv && SvREFCNT(sv) == 1);
+                    SvREFCNT_dec(sv);
                     Perl_croak(aTHX_ "Unterminated attribute parameter in attribute list");
                 }
                 COPLINE_SET_FROM_MULTI_END;
@@ -5954,45 +6030,8 @@ yyl_colon(pTHX_ char *s)
                 PL_lex_stuff = NULL;
             }
             else {
-                /* NOTE: any CV attrs applied here need to be part of
-                   the CVf_BUILTIN_ATTRS define in cv.h! */
-                if (!PL_in_my && memEQs(SvPVX(sv), len, "lvalue")) {
-                    sv_free(sv);
-                    if (!sig)
-                        CvLVALUE_on(PL_compcv);
-                }
-                else if (!PL_in_my && memEQs(SvPVX(sv), len, "method")) {
-                    sv_free(sv);
-                    if (!sig)
-                        CvMETHOD_on(PL_compcv);
-                }
-                else if (!PL_in_my && memEQs(SvPVX(sv), len, "const")) {
-                    sv_free(sv);
-                    if (!sig) {
-                        Perl_ck_warner_d(aTHX_
-                            packWARN(WARN_EXPERIMENTAL__CONST_ATTR),
-                           ":const is experimental"
-                        );
-                        CvANONCONST_on(PL_compcv);
-                        if (!CvANON(PL_compcv))
-                            yyerror(":const is not permitted on named "
-                                    "subroutines");
-                    }
-                }
-                /* After we've set the flags, it could be argued that
-                   we don't need to do the attributes.pm-based setting
-                   process, and shouldn't bother appending recognized
-                   flags.  To experiment with that, uncomment the
-                   following "else".  (Note that's already been
-                   uncommented.  That keeps the above-applied built-in
-                   attributes from being intercepted (and possibly
-                   rejected) by a package's attribute routines, but is
-                   justified by the performance win for the common case
-                   of applying only built-in attributes.) */
-                else
-                    attrs = op_append_elem(OP_LIST, attrs,
-                                        newSVOP(OP_CONST, 0,
-                                                sv));
+                attrs = op_append_elem(OP_LIST, attrs,
+                                    newSVOP(OP_CONST, 0, sv));
             }
             s = skipspace(d);
             if (*s == ':' && s[1] != ':')
@@ -6005,8 +6044,9 @@ yyl_colon(pTHX_ char *s)
         if (*s != ';'
             && *s != '}'
             && !(PL_expect == XOPERATOR
-                 ? (*s == '=' ||  *s == ')')
-                 : (*s == '{' ||  *s == '(')))
+                   /* if an operator is expected, permit =, //= and ||= or ) to end */
+                 ? (*s == '=' || *s == ')' || *s == '/' || *s == '|')
+                 : (*s == '{' || *s == '(')))
         {
             const char q = ((*s == '\'') ? '"' : '\'');
             /* If here for an expression, and parsed no attrs, back off. */
@@ -6135,8 +6175,8 @@ yyl_leftcurly(pTHX_ char *s, const U8 fo
         }
         if (d < PL_bufend && isIDFIRST_lazy_if_safe(d, PL_bufend, UTF)) {
             STRLEN len;
-            d = scan_word(d, PL_tokenbuf + 1, sizeof PL_tokenbuf - 1,
-                          FALSE, &len);
+            d = scan_word6(d, PL_tokenbuf + 1, sizeof PL_tokenbuf - 1,
+                          FALSE, &len, FALSE);
             while (d < PL_bufend && SPACE_OR_TAB(*d))
                 d++;
             if (*d == '}') {
@@ -6178,6 +6218,7 @@ yyl_leftcurly(pTHX_ char *s, const U8 fo
                     /* This hack is to get the ${} in the message. */
                     PL_bufptr = s+1;
                     yyerror("syntax error");
+                    yyquit();
                     break;
                 }
                 OPERATOR(HASHBRACK);
@@ -6597,8 +6638,8 @@ yyl_tilde(pTHX_ char *s)
             TOKEN(0);
         s += 2;
         Perl_ck_warner_d(aTHX_
-            packWARN(WARN_EXPERIMENTAL__SMARTMATCH),
-            "Smartmatch is experimental");
+            packWARN(WARN_DEPRECATED__SMARTMATCH),
+            "Smartmatch is deprecated");
         NCEop(OP_SMARTMATCH);
     }
     s++;
@@ -6921,7 +6962,7 @@ yyl_require(pTHX_ char *s, I32 orig_keyw
     PL_last_uni = PL_oldbufptr;
     PL_last_lop_op = OP_REQUIRE;
     s = skipspace(s);
-    return REPORT( (int)REQUIRE );
+    return REPORT( (int)KW_REQUIRE );
 }
 
 static int
@@ -6981,7 +7022,7 @@ yyl_foreach(pTHX_ char *s)
             /* skip optional package name, as in "for my abc $x (..)" */
             if (UNLIKELY(isIDFIRST_lazy_if_safe(p, PL_bufend, UTF))) {
                 STRLEN len;
-                p = scan_word(p, PL_tokenbuf, sizeof PL_tokenbuf, TRUE, &len);
+                p = scan_word6(p, PL_tokenbuf, sizeof PL_tokenbuf, TRUE, &len, TRUE);
                 p = skipspace(p);
                 paren_is_valid = FALSE;
             }
@@ -6999,7 +7040,7 @@ yyl_foreach(pTHX_ char *s)
         /* The buffer may have been reallocated, update s */
         s = SvPVX(PL_linestr) + s_off;
     }
-    OPERATOR(FOR);
+    OPERATOR(KW_FOR);
 }
 
 static int
@@ -7007,13 +7048,13 @@ yyl_do(pTHX_ char *s, I32 orig_keyword)
 {
     s = skipspace(s);
     if (*s == '{')
-        PRETERMBLOCK(DO);
+        PRETERMBLOCK(KW_DO);
     if (*s != '\'') {
         char *d;
         STRLEN len;
         *PL_tokenbuf = '&';
-        d = scan_word(s, PL_tokenbuf + 1, sizeof PL_tokenbuf - 1,
-                      1, &len);
+        d = scan_word6(s, PL_tokenbuf + 1, sizeof PL_tokenbuf - 1,
+                      1, &len, TRUE);
         if (len && memNEs(PL_tokenbuf+1, len, "CORE")
          && !keyword(PL_tokenbuf + 1, len, 0)) {
             SSize_t off = s-SvPVX(PL_linestr);
@@ -7029,7 +7070,7 @@ yyl_do(pTHX_ char *s, I32 orig_keyword)
         pl_yylval.ival = 1;
     else
         pl_yylval.ival = 0;
-    OPERATOR(DO);
+    OPERATOR(KW_DO);
 }
 
 static int
@@ -7048,7 +7089,7 @@ yyl_my(pTHX_ char *s, I32 my)
     s = skipspace(s);
     if (isIDFIRST_lazy_if_safe(s, PL_bufend, UTF)) {
         STRLEN len;
-        s = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, TRUE, &len);
+        s = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, TRUE, &len, TRUE);
         if (memEQs(PL_tokenbuf, len, "sub"))
             return yyl_sub(aTHX_ s, my);
         PL_in_my_stash = find_in_my_stash(PL_tokenbuf, len);
@@ -7069,7 +7110,7 @@ yyl_my(pTHX_ char *s, I32 my)
              packWARN(WARN_EXPERIMENTAL__DECLARED_REFS),
             "Declaring references is experimental");
     }
-    OPERATOR(MY);
+    OPERATOR(KW_MY);
 }
 
 static int yyl_try(pTHX_ char*);
@@ -7520,8 +7561,8 @@ yyl_just_a_word(pTHX_ char *s, STRLEN le
 
     if (*s == '\'' || (*s == ':' && s[1] == ':')) {
         STRLEN morelen;
-        s = scan_word(s, PL_tokenbuf + len, sizeof PL_tokenbuf - len,
-                      TRUE, &morelen);
+        s = scan_word6(s, PL_tokenbuf + len, sizeof PL_tokenbuf - len,
+                      TRUE, &morelen, TRUE);
         if (no_op_error) {
             no_op("Bareword",s);
             no_op_error = FALSE;
@@ -7622,12 +7663,6 @@ yyl_just_a_word(pTHX_ char *s, STRLEN le
         }
         s = SvPVX(PL_linestr) + s_off;
 
-        if (((PL_opargs[PL_last_lop_op] >> OASHIFT) & 7) == OA_FILEREF
-            && !immediate_paren && !c.cv
-            && !FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED) {
-            no_bareword_filehandle(PL_tokenbuf);
-        }
-
         /* If not a declared subroutine, it's an indirect object. */
         /* (But it's an indir obj regardless for sort.) */
         /* Also, if "_" follows a filetest operator, it's a bareword */
@@ -7699,7 +7734,7 @@ yyl_just_a_word(pTHX_ char *s, STRLEN le
             PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC;
         PL_expect = XBLOCKTERM;
         PL_bufptr = s;
-        return REPORT(METHOD);
+        return REPORT(METHCALL0);
     }
 
     /* If followed by a bareword, see if it looks like indir obj. */
@@ -7720,7 +7755,7 @@ yyl_just_a_word(pTHX_ char *s, STRLEN le
             else SvUTF8_off(c.sv);
         }
         op_free(c.rv2cv_op);
-        if (key == METHOD && !PL_lex_allbrackets
+        if (key == METHCALL0 && !PL_lex_allbrackets
             && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC)
         {
             PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC;
@@ -7761,7 +7796,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
     case KEY___LINE__:
         FUN0OP(
             newSVOP(OP_CONST, 0,
-                Perl_newSVpvf(aTHX_ "%" IVdf, (IV)CopLINE(PL_curcop)))
+                Perl_newSVpvf(aTHX_ "%" LINE_Tf, CopLINE(PL_curcop)))
         );
 
     case KEY___PACKAGE__:
@@ -7778,9 +7813,12 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         return yyl_fake_eof(aTHX_ LEX_FAKE_EOF, FALSE, s);
 
     case KEY___SUB__:
+        /* If !CvCLONE(PL_compcv) then rpeep will probably turn this into an
+         * OP_CONST. We need to make it big enough to allow room for that if
+         * so */
         FUN0OP(CvCLONE(PL_compcv)
                     ? newOP(OP_RUNCV, 0)
-                    : newPVOP(OP_RUNCV,0,NULL));
+                    : newSVOP(OP_RUNCV, 0, &PL_sv_undef));
 
     case KEY_AUTOLOAD:
     case KEY_DESTROY:
@@ -7793,6 +7831,16 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
             return yyl_sub(aTHX_ PL_bufptr, key);
         return yyl_just_a_word(aTHX_ s, len, orig_keyword, c);
 
+    case KEY_ADJUST:
+        Perl_ck_warner_d(aTHX_
+            packWARN(WARN_EXPERIMENTAL__CLASS), "ADJUST is experimental");
+
+        /* The way that KEY_CHECK et.al. are handled currently are nothing
+         * short of crazy. We won't copy that model for new phasers, but use
+         * this as an experiment to test if this will work
+         */
+        PHASERBLOCK(KEY_ADJUST);
+
     case KEY_abs:
         UNI(OP_ABS);
 
@@ -7825,11 +7873,21 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
     case KEY_catch:
         Perl_ck_warner_d(aTHX_
             packWARN(WARN_EXPERIMENTAL__TRY), "try/catch is experimental");
-        PREBLOCK(CATCH);
+        PREBLOCK(KW_CATCH);
 
     case KEY_chop:
         UNI(OP_CHOP);
 
+    case KEY_class:
+        Perl_ck_warner_d(aTHX_
+            packWARN(WARN_EXPERIMENTAL__CLASS), "class is experimental");
+
+        s = force_word(s,BAREWORD,FALSE,TRUE);
+        s = skipspace(s);
+        s = force_strict_version(s);
+        PL_expect = XATTRBLOCK;
+        TOKEN(KW_CLASS);
+
     case KEY_continue:
         /* We have to disambiguate the two senses of
           "continue". If the next token is a '{' then
@@ -7838,7 +7896,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
          */
         s = skipspace(s);
         if (*s == '{')
-            PREBLOCK(CONTINUE);
+            PREBLOCK(KW_CONTINUE);
         else
             FUN0(OP_CONTINUE);
 
@@ -7884,12 +7942,12 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         UNI(OP_CHROOT);
 
     case KEY_default:
-        PREBLOCK(DEFAULT);
+        PREBLOCK(KW_DEFAULT);
 
     case KEY_defer:
         Perl_ck_warner_d(aTHX_
             packWARN(WARN_EXPERIMENTAL__DEFER), "defer is experimental");
-        PREBLOCK(DEFER);
+        PREBLOCK(KW_DEFER);
 
     case KEY_do:
         return yyl_do(aTHX_ s, orig_keyword);
@@ -7921,11 +7979,11 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         LOOPX(OP_DUMP);
 
     case KEY_else:
-        PREBLOCK(ELSE);
+        PREBLOCK(KW_ELSE);
 
     case KEY_elsif:
         pl_yylval.ival = CopLINE(PL_curcop);
-        OPERATOR(ELSIF);
+        OPERATOR(KW_ELSIF);
 
     case KEY_eq:
         if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_COMPARE)
@@ -7983,10 +8041,22 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
     case KEY_endgrent:
         FUN0(OP_EGRENT);
 
+    case KEY_field:
+        /* TODO: maybe this should use the same parser/grammar structures as
+         * `my`, but it's also rather messy because of the `our` conflation
+         */
+        Perl_ck_warner_d(aTHX_
+            packWARN(WARN_EXPERIMENTAL__CLASS), "field is experimental");
+
+        croak_kw_unless_class("field");
+
+        PL_parser->in_my = KEY_field;
+        OPERATOR(KW_FIELD);
+
     case KEY_finally:
         Perl_ck_warner_d(aTHX_
             packWARN(WARN_EXPERIMENTAL__TRY), "try/catch/finally is experimental");
-        PREBLOCK(FINALLY);
+        PREBLOCK(KW_FINALLY);
 
     case KEY_for:
     case KEY_foreach:
@@ -8109,9 +8179,9 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
 
     case KEY_given:
         pl_yylval.ival = CopLINE(PL_curcop);
-        Perl_ck_warner_d(aTHX_ packWARN(WARN_EXPERIMENTAL__SMARTMATCH),
-                         "given is experimental");
-        OPERATOR(GIVEN);
+        Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED__SMARTMATCH),
+                         "given is deprecated");
+        OPERATOR(KW_GIVEN);
 
     case KEY_glob:
         LOP( orig_keyword==KEY_glob ? -OP_GLOB : OP_GLOB, XTERM );
@@ -8123,7 +8193,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_NONEXPR)
             return REPORT(0);
         pl_yylval.ival = CopLINE(PL_curcop);
-        OPERATOR(IF);
+        OPERATOR(KW_IF);
 
     case KEY_index:
         LOP(OP_INDEX,XTERM);
@@ -8156,7 +8226,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         UNI(OP_LCFIRST);
 
     case KEY_local:
-        OPERATOR(LOCAL);
+        OPERATOR(KW_LOCAL);
 
     case KEY_length:
         UNI(OP_LENGTH);
@@ -8226,7 +8296,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
 
     case KEY_no:
         s = tokenize_use(0, s);
-        TOKEN(USE);
+        TOKEN(KW_USE_or_NO);
 
     case KEY_not:
         if (*s == '(' || (s = skipspace(s), *s == '('))
@@ -8241,7 +8311,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         s = skipspace(s);
         if (isIDFIRST_lazy_if_safe(s, PL_bufend, UTF)) {
             const char *t;
-            char *d = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len);
+            char *d = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len, FALSE);
             for (t=d; isSPACE(*t);)
                 t++;
             if ( *t && memCHRs("|&*+-=!?:.", *t) && ckWARN_d(WARN_PRECEDENCE)
@@ -8299,7 +8369,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         s = force_word(s,BAREWORD,FALSE,TRUE);
         s = skipspace(s);
         s = force_strict_version(s);
-        PREBLOCK(PACKAGE);
+        PREBLOCK(KW_PACKAGE);
 
     case KEY_pipe:
         LOP(OP_PIPE_OP,XTERM);
@@ -8515,6 +8585,12 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
     case KEY_substr:
         LOP(OP_SUBSTR,XTERM);
 
+    case KEY_method:
+        /* For now we just treat 'method' identical to 'sub' plus a warning */
+        Perl_ck_warner_d(aTHX_
+            packWARN(WARN_EXPERIMENTAL__CLASS), "method is experimental");
+        return yyl_sub(aTHX_ s, KEY_method);
+
     case KEY_format:
     case KEY_sub:
         return yyl_sub(aTHX_ s, key);
@@ -8570,7 +8646,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         pl_yylval.ival = CopLINE(PL_curcop);
         Perl_ck_warner_d(aTHX_
             packWARN(WARN_EXPERIMENTAL__TRY), "try/catch is experimental");
-        PREBLOCK(TRY);
+        PREBLOCK(KW_TRY);
 
     case KEY_uc:
         UNI(OP_UC);
@@ -8585,13 +8661,13 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
         if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_NONEXPR)
             return REPORT(0);
         pl_yylval.ival = CopLINE(PL_curcop);
-        OPERATOR(UNTIL);
+        OPERATOR(KW_UNTIL);
 
     case KEY_unless:
         if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_NONEXPR)
             return REPORT(0);
         pl_yylval.ival = CopLINE(PL_curcop);
-        OPERATOR(UNLESS);
+        OPERATOR(KW_UNLESS);
 
     case KEY_unlink:
         LOP(OP_UNLINK,XTERM);
@@ -8613,7 +8689,7 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
 
     case KEY_use:
         s = tokenize_use(1, s);
-        TOKEN(USE);
+        TOKEN(KW_USE_or_NO);
 
     case KEY_values:
         UNI(OP_VALUES);
@@ -8626,15 +8702,15 @@ yyl_word_or_keyword(pTHX_ char *s, STRLE
             return REPORT(0);
         pl_yylval.ival = CopLINE(PL_curcop);
         Perl_ck_warner_d(aTHX_
-            packWARN(WARN_EXPERIMENTAL__SMARTMATCH),
-            "when is experimental");
-        OPERATOR(WHEN);
+            packWARN(WARN_DEPRECATED__SMARTMATCH),
+            "when is deprecated");
+        OPERATOR(KW_WHEN);
 
     case KEY_while:
         if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_NONEXPR)
             return REPORT(0);
         pl_yylval.ival = CopLINE(PL_curcop);
-        OPERATOR(WHILE);
+        OPERATOR(KW_WHILE);
 
     case KEY_warn:
         PL_hints |= HINT_BLOCK_SCOPE;
@@ -8683,7 +8759,7 @@ yyl_key_core(pTHX_ char *s, STRLEN len, 
     STRLEN olen = len;
     char *d = s;
     s += 2;
-    s = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len);
+    s = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len, FALSE);
     if ((*s == ':' && s[1] == ':')
         || (!(key = keyword(PL_tokenbuf, len, 1)) && *s == '\''))
     {
@@ -8704,6 +8780,51 @@ yyl_key_core(pTHX_ char *s, STRLEN len, 
     return yyl_word_or_keyword(aTHX_ s, len, key, orig_keyword, c);
 }
 
+struct Perl_custom_infix_result {
+    struct Perl_custom_infix *def;
+    SV                       *parsedata;
+};
+
+static enum yytokentype tokentype_for_plugop(struct Perl_custom_infix *def)
+{
+    enum Perl_custom_infix_precedence prec = def->prec;
+    if(prec <= INFIX_PREC_LOW)
+        return PLUGIN_LOW_OP;
+    if(prec <= INFIX_PREC_LOGICAL_OR_LOW)
+        return PLUGIN_LOGICAL_OR_LOW_OP;
+    if(prec <= INFIX_PREC_LOGICAL_AND_LOW)
+        return PLUGIN_LOGICAL_AND_LOW_OP;
+    if(prec <= INFIX_PREC_ASSIGN)
+        return PLUGIN_ASSIGN_OP;
+    if(prec <= INFIX_PREC_LOGICAL_OR)
+        return PLUGIN_LOGICAL_OR_OP;
+    if(prec <= INFIX_PREC_LOGICAL_AND)
+        return PLUGIN_LOGICAL_AND_OP;
+    if(prec <= INFIX_PREC_REL)
+        return PLUGIN_REL_OP;
+    if(prec <= INFIX_PREC_ADD)
+        return PLUGIN_ADD_OP;
+    if(prec <= INFIX_PREC_MUL)
+        return PLUGIN_MUL_OP;
+    if(prec <= INFIX_PREC_POW)
+        return PLUGIN_POW_OP;
+    return PLUGIN_HIGH_OP;
+}
+
+OP *
+Perl_build_infix_plugin(pTHX_ OP *lhs, OP *rhs, void *tokendata)
+{
+    PERL_ARGS_ASSERT_BUILD_INFIX_PLUGIN;
+
+    struct Perl_custom_infix_result *result = (struct Perl_custom_infix_result *)tokendata;
+    SAVEFREEPV(result);
+    if(result->parsedata)
+        SAVEFREESV(result->parsedata);
+
+    return (*result->def->build_op)(aTHX_
+        &result->parsedata, lhs, rhs, result->def);
+}
+
 static int
 yyl_keylookup(pTHX_ char *s, GV *gv)
 {
@@ -8717,7 +8838,7 @@ yyl_keylookup(pTHX_ char *s, GV *gv)
     c.gv = gv;
 
     PL_bufptr = s;
-    s = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len);
+    s = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len, FALSE);
 
     /* Some keywords can be followed by any delimiter, including ':' */
     anydelim = word_takes_any_delimiter(PL_tokenbuf, len);
@@ -8764,6 +8885,30 @@ yyl_keylookup(pTHX_ char *s, GV *gv)
         }
     }
 
+    /* Check for plugged-in named operator */
+    if(PLUGINFIX_IS_ENABLED) {
+        struct Perl_custom_infix *def;
+        STRLEN result;
+        result = PL_infix_plugin(aTHX_ PL_tokenbuf, len, &def);
+        if(result) {
+            if(result != len)
+                Perl_croak(aTHX_ "Bad infix plugin result (%zd) - did not consume entire identifier <%s>\n",
+                    result, PL_tokenbuf);
+            PL_bufptr = s = d;
+            struct Perl_custom_infix_result *result;
+            Newx(result, 1, struct Perl_custom_infix_result);
+            result->def = def;
+            result->parsedata = NULL;
+            if(def->parse) {
+                (*def->parse)(aTHX_ &result->parsedata, def);
+                s = PL_bufptr; /* restore local s variable */
+            }
+            pl_yylval.pval = result;
+            CLINE;
+            OPERATOR(tokentype_for_plugop(def));
+        }
+    }
+
     /* Is this a label? */
     if (!anydelim && PL_expect == XSTATE
           && d < PL_bufend && *d == ':' && *(d + 1) != ':') {
@@ -8794,7 +8939,8 @@ yyl_keylookup(pTHX_ char *s, GV *gv)
                                   SVt_PVCV);
                 c.off = 0;
                 if (!c.gv) {
-                    sv_free(c.sv);
+                    ASSUME(c.sv && SvREFCNT(c.sv) == 1);
+                    SvREFCNT_dec(c.sv);
                     c.sv = NULL;
                     return yyl_just_a_word(aTHX_ s, len, 0, c);
                 }
@@ -8842,6 +8988,34 @@ yyl_try(pTHX_ char *s)
     int tok;
 
   retry:
+    /* Check for plugged-in symbolic operator */
+    if(PLUGINFIX_IS_ENABLED && isPLUGINFIX_FIRST(*s)) {
+        struct Perl_custom_infix *def;
+        char *s_end = s, *d = PL_tokenbuf;
+        STRLEN len;
+
+        /* Copy the longest sequence of isPLUGINFIX() chars into PL_tokenbuf */
+        while(s_end < PL_bufend && d < PL_tokenbuf+sizeof(PL_tokenbuf)-1 && isPLUGINFIX(*s_end))
+            *d++ = *s_end++;
+        *d = '\0';
+
+        if((len = (*PL_infix_plugin)(aTHX_ PL_tokenbuf, s_end - s, &def))) {
+            s += len;
+            struct Perl_custom_infix_result *result;
+            Newx(result, 1, struct Perl_custom_infix_result);
+            result->def = def;
+            result->parsedata = NULL;
+            if(def->parse) {
+                PL_bufptr = s;
+                (*def->parse)(aTHX_ &result->parsedata, def);
+                s = PL_bufptr; /* restore local s variable */
+            }
+            pl_yylval.pval = result;
+            CLINE;
+            OPERATOR(tokentype_for_plugop(def));
+        }
+    }
+
     switch (*s) {
     default:
         if (UTF ? isIDFIRST_utf8_safe(s, PL_bufend) : isALNUMC(*s)) {
@@ -8909,7 +9083,7 @@ yyl_try(pTHX_ char *s)
                     ++svp;
                     sv_catpvs(PL_linestr, ";");
                 }
-                sv_free(MUTABLE_SV(PL_preambleav));
+                SvREFCNT_dec(MUTABLE_SV(PL_preambleav));
                 PL_preambleav = NULL;
             }
             if (PL_minus_E)
@@ -8927,7 +9101,7 @@ yyl_try(pTHX_ char *s)
                             && strchr(PL_splitstr + 1, *PL_splitstr))
                         {
                             /* strchr is ok, because -F pattern can't contain
-                             * embeddded NULs */
+                             * embedded NULs */
                             Perl_sv_catpvf(aTHX_ PL_linestr, "our @F=split(%s);", PL_splitstr);
                         }
                         else {
@@ -9388,8 +9562,8 @@ Perl_yylex(pTHX)
     }
     DEBUG_T( {
         SV* tmp = newSVpvs("");
-        PerlIO_printf(Perl_debug_log, "### %" IVdf ":LEX_%s/X%s %s\n",
-            (IV)CopLINE(PL_curcop),
+        PerlIO_printf(Perl_debug_log, "### %" LINE_Tf ":LEX_%s/X%s %s\n",
+            CopLINE(PL_curcop),
             lex_state_names[PL_lex_state],
             exp_name[PL_expect],
             pv_display(tmp, s, strlen(s), 0, 60));
@@ -9459,14 +9633,14 @@ Perl_yylex(pTHX)
             NEXTVAL_NEXTTOKE.ival = OP_JOIN;	/* emulate join($", ...) */
             force_next(FUNC);
         }
-        /* Convert (?{...}) and friends to 'do {...}' */
+        /* Convert (?{...}) or (*{...}) and friends to 'do {...}' */
         if (PL_lex_inpat && *PL_bufptr == '(') {
             PL_parser->lex_shared->re_eval_start = PL_bufptr;
             PL_bufptr += 2;
             if (*PL_bufptr != '{')
                 PL_bufptr++;
             PL_expect = XTERMBLOCK;
-            force_next(DO);
+            force_next(KW_DO);
         }
 
         if (PL_lex_starts++) {
@@ -9697,7 +9871,8 @@ S_pending_ident(pTHX)
                 /* PL_no_myglob is constant */
                 GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral);
                 yyerror_pv(Perl_form(aTHX_ PL_no_myglob,
-                            PL_in_my == KEY_my ? "my" : "state",
+                            PL_in_my == KEY_my ? "my" :
+                            PL_in_my == KEY_field ? "field" : "state",
                             *PL_tokenbuf == '&' ? "subroutine" : "variable",
                             PL_tokenbuf),
                             UTF ? SVf_UTF8 : 0);
@@ -10037,70 +10212,73 @@ S_parse_ident(pTHX_ char **s, char **d, 
         else
             break;
     }
-    if (UNLIKELY(tick_warn && saw_tick && PL_lex_state == LEX_INTERPNORMAL
-              && !PL_lex_brackets && ckWARN(WARN_SYNTAX))) {
-        char *this_d;
-        char *d2;
-        Newx(this_d, *s - olds + saw_tick + 2, char); /* +2 for $# */
-        d2 = this_d;
-        SAVEFREEPV(this_d);
-        Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                         "Old package separator used in string");
-        if (olds[-1] == '#')
-            *d2++ = olds[-2];
-        *d2++ = olds[-1];
-        while (olds < *s) {
-            if (*olds == '\'') {
-                *d2++ = '\\';
-                *d2++ = *olds++;
+    if (UNLIKELY(saw_tick && tick_warn && ckWARN2_d(WARN_SYNTAX, WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR))) {
+        if (PL_lex_state == LEX_INTERPNORMAL && !PL_lex_brackets) {
+            char *this_d;
+            char *d2;
+            Newx(this_d, *s - olds + saw_tick + 2, char); /* +2 for $# */
+            d2 = this_d;
+            SAVEFREEPV(this_d);
+
+            Perl_warner(aTHX_ packWARN2(WARN_SYNTAX, WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR),
+                        "Old package separator used in string");
+            if (olds[-1] == '#')
+                *d2++ = olds[-2];
+            *d2++ = olds[-1];
+            while (olds < *s) {
+                if (*olds == '\'') {
+                    *d2++ = '\\';
+                    *d2++ = *olds++;
+                }
+                else
+                    *d2++ = *olds++;
             }
-            else
-                *d2++ = *olds++;
+            Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+                        "\t(Did you mean \"%" UTF8f "\" instead?)\n",
+                        UTF8fARG(is_utf8, d2-this_d, this_d));
+        }
+        else {
+            Perl_warner(aTHX_ packWARN2(WARN_SYNTAX, WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR),
+                        "Old package separator \"'\" deprecated");
         }
-        Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
-                         "\t(Did you mean \"%" UTF8f "\" instead?)\n",
-                          UTF8fARG(is_utf8, d2-this_d, this_d));
     }
     return;
 }
 
 /* Returns a NUL terminated string, with the length of the string written to
    *slp
+
+   scan_word6() may be removed once ' in names is removed.
    */
 char *
-Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp)
+Perl_scan_word6(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp, bool warn_tick)
 {
     char *d = dest;
     char * const e = d + destlen - 3;  /* two-character token, ending NUL */
     bool is_utf8 = cBOOL(UTF);
 
-    PERL_ARGS_ASSERT_SCAN_WORD;
+    PERL_ARGS_ASSERT_SCAN_WORD6;
 
-    parse_ident(&s, &d, e, allow_package, is_utf8, TRUE, FALSE);
+    parse_ident(&s, &d, e, allow_package, is_utf8, TRUE, warn_tick);
     *d = '\0';
     *slp = d - dest;
     return s;
 }
 
-/* Is the byte 'd' a legal single character identifier name?  'u' is true
- * iff Unicode semantics are to be used.  The legal ones are any of:
- *  a) all ASCII characters except:
- *          1) control and space-type ones, like NUL, SOH, \t, and SPACE;
- *          2) '{'
- *     The final case currently doesn't get this far in the program, so we
- *     don't test for it.  If that were to change, it would be ok to allow it.
- *  b) When not under Unicode rules, any upper Latin1 character
- *  c) Otherwise, when unicode rules are used, all XIDS characters.
- *
- *      Because all ASCII characters have the same representation whether
- *      encoded in UTF-8 or not, we can use the foo_A macros below and '\0' and
- *      '{' without knowing if is UTF-8 or not. */
-#define VALID_LEN_ONE_IDENT(s, e, is_utf8)                                  \
-    (isGRAPH_A(*(s)) || ((is_utf8)                                          \
-                         ? isIDFIRST_utf8_safe(s, e)                        \
-                         : (isGRAPH_L1(*s)                                  \
-                            && LIKELY((U8) *(s) != LATIN1_TO_NATIVE(0xAD)))))
+char *
+Perl_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp)
+{
+    PERL_ARGS_ASSERT_SCAN_WORD;
+    return scan_word6(s, dest, destlen, allow_package, slp, FALSE);
+}
 
+/* scan s and extract an identifier ($var) from it if possible
+ * into dest.
+ * XXX: This function has subtle implications on parsing, and
+ * changing how it behaves can cause a variable to change from
+ * being a run time rv2sv call or a compile time binding to a
+ * specific variable name.
+ */
 STATIC char *
 S_scan_ident(pTHX_ char *s, char *dest, STRLEN destlen, I32 ck_uni)
 {
@@ -10110,7 +10288,7 @@ S_scan_ident(pTHX_ char *s, char *dest, 
     char *d = dest;
     char * const e = d + destlen - 3;    /* two-character token, ending NUL */
     bool is_utf8 = cBOOL(UTF);
-    I32 orig_copline = 0, tmp_copline = 0;
+    line_t orig_copline = 0, tmp_copline = 0;
 
     PERL_ARGS_ASSERT_SCAN_IDENT;
 
@@ -10164,11 +10342,41 @@ S_scan_ident(pTHX_ char *s, char *dest, 
             s = skipspace(s);
         }
     }
+
+
+    /* Extract the first character of the variable name from 's' and
+     * copy it, null terminated into 'd'. Note that this does not
+     * involve checking for just IDFIRST characters, as it allows the
+     * '^' for ${^FOO} type variable names, and it allows all the
+     * characters that are legal in a single character variable name.
+     *
+     * The legal ones are any of:
+     *  a) all ASCII characters except:
+     *          1) control and space-type ones, like NUL, SOH, \t, and SPACE;
+     *          2) '{'
+     *     The final case currently doesn't get this far in the program, so we
+     *     don't test for it.  If that were to change, it would be ok to allow it.
+     *  b) When not under Unicode rules, any upper Latin1 character
+     *  c) Otherwise, when unicode rules are used, all XIDS characters.
+     *
+     *      Because all ASCII characters have the same representation whether
+     *      encoded in UTF-8 or not, we can use the foo_A macros below and '\0' and
+     *      '{' without knowing if is UTF-8 or not. */
+
     if ((s <= PL_bufend - ((is_utf8)
                           ? UTF8SKIP(s)
                           : 1))
-        && VALID_LEN_ONE_IDENT(s, PL_bufend, is_utf8))
-    {
+        && (
+            isGRAPH_A(*s)
+            ||
+            ( is_utf8
+              ? isIDFIRST_utf8_safe(s, PL_bufend)
+              : (isGRAPH_L1(*s)
+                 && LIKELY((U8) *s != LATIN1_TO_NATIVE(0xAD))
+                )
+            )
+        )
+    ){
         if (is_utf8) {
             const STRLEN skip = UTF8SKIP(s);
             STRLEN i;
@@ -10178,24 +10386,27 @@ S_scan_ident(pTHX_ char *s, char *dest, 
         }
         else {
             *d = *s++;
-            /* special case to handle ${10}, ${11} the same way we handle ${1} etc */
-            if (isDIGIT(*d)) {
-                bool is_zero= *d == '0' ? TRUE : FALSE;
-                char *digit_start= d;
-                while (s < PL_bufend && isDIGIT(*s)) {
-                    d++;
-                    if (d >= e)
-                        Perl_croak(aTHX_ "%s", ident_too_long);
-                    *d= *s++;
-                }
-                if (is_zero && d - digit_start > 1)
-                    Perl_croak(aTHX_ ident_var_zero_multi_digit);
-            }
             d[1] = '\0';
         }
     }
+
+    /* special case to handle ${10}, ${11} the same way we handle ${1} etc */
+    if (isDIGIT(*d)) {
+        bool is_zero= *d == '0' ? TRUE : FALSE;
+        char *digit_start= d;
+        while (s < PL_bufend && isDIGIT(*s)) {
+            d++;
+            if (d >= e)
+                Perl_croak(aTHX_ "%s", ident_too_long);
+            *d= *s++;
+        }
+        if (is_zero && d - digit_start >= 1) /* d points at the last digit */
+            Perl_croak(aTHX_ ident_var_zero_multi_digit);
+        d[1] = '\0';
+    }
+
     /* Convert $^F, ${^F} and the ^F of ${^FOO} to control characters */
-    if (*d == '^' && *s && isCONTROLVAR(*s)) {
+    else if (*d == '^' && *s && isCONTROLVAR(*s)) {
         *d = toCTRL(*s);
         s++;
     }
@@ -10204,6 +10415,7 @@ S_scan_ident(pTHX_ char *s, char *dest, 
        about when not to warn.  */
     else if (ck_uni && bracket == -1)
         check_uni();
+
     if (bracket != -1) {
         bool skip;
         char *s2;
@@ -10462,9 +10674,12 @@ S_scan_pat(pTHX_ char *start, I32 type)
         char *e, *p = SvPV(PL_lex_stuff, len);
         e = p + len;
         for (; p < e; p++) {
-            if (p[0] == '(' && p[1] == '?'
-                && (p[2] == '{' || (p[2] == '?' && p[3] == '{')))
-            {
+            if (p[0] == '(' && (
+                (p[1] == '?' && (p[2] == '{' ||
+                                (p[2] == '?' && p[3] == '{'))) ||
+                (p[1] == '*' && (p[2] == '{' ||
+                                (p[2] == '*' && p[3] == '{')))
+            )){
                 pm->op_pmflags |= PMf_HAS_CV;
                 break;
             }
@@ -10757,7 +10972,6 @@ S_scan_heredoc(pTHX_ char *s)
 #endif
 
     tmpstr = newSV_type(SVt_PVIV);
-    SvGROW(tmpstr, 80);
     if (term == '\'') {
         op_type = OP_CONST;
         SvIV_set(tmpstr, -1);
@@ -10868,7 +11082,7 @@ S_scan_heredoc(pTHX_ char *s)
             goto interminable;
         }
 
-        sv_setpvn(tmpstr,d+1,s-d);
+        sv_setpvn_fresh(tmpstr,d+1,s-d);
         s += len - 1;
         /* the preceding stmt passes a newline */
         PL_parser->herelines++;
@@ -10915,7 +11129,8 @@ S_scan_heredoc(pTHX_ char *s)
         char *oldbufptr_save;
         char *oldoldbufptr_save;
       streaming:
-        SvPVCLEAR(tmpstr);   /* avoid "uninitialized" warning */
+        sv_grow_fresh(tmpstr, 80);
+        SvPVCLEAR_FRESH(tmpstr);   /* avoid "uninitialized" warning */
         term = PL_tokenbuf[1];
         len--;
         linestr_save = PL_linestr; /* must restore this afterwards */
@@ -11073,7 +11288,7 @@ S_scan_heredoc(pTHX_ char *s)
             }
         } /* while */
 
-        /* avoid sv_setsv() as we dont wan't to COW here */
+        /* avoid sv_setsv() as we don't want to COW here */
         sv_setpvn(tmpstr,SvPVX(newstr),SvCUR(newstr));
         Safefree(indent);
         SvREFCNT_dec_NN(newstr);
@@ -11182,7 +11397,7 @@ S_scan_inputsymbol(pTHX_ char *start)
         return s;
     }
     else {
-        bool readline_overriden = FALSE;
+        bool readline_overridden = FALSE;
         GV *gv_readline;
         /* we're in a filehandle read situation */
         d = PL_tokenbuf;
@@ -11191,9 +11406,9 @@ S_scan_inputsymbol(pTHX_ char *start)
         if (!len)
             Copy("ARGV",d,5,char);
 
-        /* Check whether readline() is overriden */
+        /* Check whether readline() is overridden */
         if ((gv_readline = gv_override("readline",8)))
-            readline_overriden = TRUE;
+            readline_overridden = TRUE;
 
         /* if <$fh>, create the ops to turn the variable into a
            filehandle
@@ -11207,16 +11422,15 @@ S_scan_inputsymbol(pTHX_ char *start)
                 if (PAD_COMPNAME_FLAGS_isOUR(tmp)) {
                     HV * const stash = PAD_COMPNAME_OURSTASH(tmp);
                     HEK * const stashname = HvNAME_HEK(stash);
-                    SV * const sym = sv_2mortal(newSVhek(stashname));
+                    SV * const sym = newSVhek_mortal(stashname);
                     sv_catpvs(sym, "::");
                     sv_catpv(sym, d+1);
                     d = SvPVX(sym);
                     goto intro_sym;
                 }
                 else {
-                    OP * const o = newOP(OP_PADSV, 0);
-                    o->op_targ = tmp;
-                    PL_lex_op = readline_overriden
+                    OP * const o = newPADxVOP(OP_PADSV, 0, tmp);
+                    PL_lex_op = readline_overridden
                         ? newUNOP(OP_ENTERSUB, OPf_STACKED,
                                 op_append_elem(OP_LIST, o,
                                     newCVREF(0, newGVOP(OP_GV,0,gv_readline))))
@@ -11230,7 +11444,7 @@ S_scan_inputsymbol(pTHX_ char *start)
                 gv = gv_fetchpv(d,
                                 GV_ADDMULTI | ( UTF ? SVf_UTF8 : 0 ),
                                 SVt_PV);
-                PL_lex_op = readline_overriden
+                PL_lex_op = readline_overridden
                     ? newUNOP(OP_ENTERSUB, OPf_STACKED,
                             op_append_elem(OP_LIST,
                                 newUNOP(OP_RV2SV, 0, newGVOP(OP_GV, 0, gv)),
@@ -11247,7 +11461,7 @@ S_scan_inputsymbol(pTHX_ char *start)
            (<Foo::BAR> or <FOO>) so build a simple readline OP */
         else {
             GV * const gv = gv_fetchpv(d, GV_ADD | ( UTF ? SVf_UTF8 : 0 ), SVt_PVIO);
-            PL_lex_op = readline_overriden
+            PL_lex_op = readline_overridden
                 ? newUNOP(OP_ENTERSUB, OPf_STACKED,
                         op_append_elem(OP_LIST,
                             newGVOP(OP_GV, 0, gv),
@@ -11441,19 +11655,19 @@ Perl_scan_str(pTHX_ char *start, int kee
                            : * (U8 *) close_delim_str;
     }
     else {  /* Here, the delimiter isn't paired, hence the close is the same as
-               the open; and has aready been set up.  But make sure it isn't
+               the open; and has already been set up.  But make sure it isn't
                deprecated to use this particular delimiter, as we plan
                eventually to make it paired. */
         if (ninstr(deprecated_opening_delims, deprecated_delims_end,
                    open_delim_str, open_delim_str + delim_byte_len))
         {
-            Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED),
+            Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED),
                              "Use of '%" UTF8f "' is deprecated as a string delimiter",
                              UTF8fARG(UTF, delim_byte_len, open_delim_str));
         }
 
         /* Note that a NUL may be used as a delimiter, and this happens when
-         * delimitting an empty string, and no special handling for it is
+         * delimiting an empty string, and no special handling for it is
          * needed, as ninstr() calls are used */
     }
 
@@ -11466,7 +11680,7 @@ Perl_scan_str(pTHX_ char *start, int kee
     /* create a new SV to hold the contents.  79 is the SV's initial length.
        What a random number. */
     sv = newSV_type(SVt_PVIV);
-    SvGROW(sv, 79);
+    sv_grow_fresh(sv, 79);
     SvIV_set(sv, close_delim_code);
     (void)SvPOK_only(sv);		/* validate pointer */
 
@@ -11589,7 +11803,8 @@ Perl_scan_str(pTHX_ char *start, int kee
         COPLINE_INC_WITH_HERELINES;
         PL_bufptr = PL_bufend;
         if (!lex_next_chunk(0)) {
-            sv_free(sv);
+            ASSUME(sv);
+            SvREFCNT_dec(sv);
             CopLINE_set(PL_curcop, (line_t)PL_multi_start);
             return NULL;
         }
@@ -11895,7 +12110,7 @@ Perl_scan_num(pTHX_ const char *start, Y
                     NV nv_mult = 1.0;
 #endif
                     bool accumulate = TRUE;
-                    U8 b;
+                    U8 b = 0; /* silence compiler warning */
                     int lim = 1 << shift;
                     for (h++; ((isXDIGIT(*h) && (b = XDIGIT_VALUE(*h)) < lim) ||
                                *h == '_'); h++) {
@@ -12341,8 +12556,12 @@ S_scan_formline(pTHX_ char *s)
             }
         }
         eol = (char *) memchr(s,'\n',PL_bufend-s);
-        if (!eol++)
-                eol = PL_bufend;
+        if (! eol) {
+            eol = PL_bufend;
+        }
+        else {
+            eol++;
+        }
         if (*s != '#') {
             char *t;
             for (t = s; t < eol; t++) {
@@ -12393,7 +12612,7 @@ S_scan_formline(pTHX_ char *s)
             if (*s2 == '{') {
                 PL_expect = XTERMBLOCK;
                 NEXTVAL_NEXTTOKE.ival = 0;
-                force_next(DO);
+                force_next(KW_DO);
             }
             NEXTVAL_NEXTTOKE.ival = 0;
             force_next(FORMLBRACK);
@@ -12413,11 +12632,33 @@ S_scan_formline(pTHX_ char *s)
     return s;
 }
 
+/*
+=for apidoc start_subparse
+
+Set things up for parsing a subroutine.
+
+If C<is_format> is non-zero, the input is to be considered a format sub
+(a specialised sub used to implement perl's C<format> feature); else a
+normal C<sub>.
+
+C<flags> are added to the flags for C<PL_compcv>.  C<flags> may include the
+C<CVf_IsMETHOD> bit, which causes the new subroutine to be a method.
+
+This returns the value of C<PL_savestack_ix> that was in effect upon entry to
+the function;
+
+=cut
+*/
+
 I32
 Perl_start_subparse(pTHX_ I32 is_format, U32 flags)
 {
     const I32 oldsavestack_ix = PL_savestack_ix;
     CV* const outsidecv = PL_compcv;
+    bool is_method = flags & CVf_IsMETHOD;
+
+    if (is_method)
+        croak_kw_unless_class("method");
 
     SAVEI32(PL_subline);
     save_item(PL_subname);
@@ -12432,10 +12673,98 @@ Perl_start_subparse(pTHX_ I32 is_format,
     CvOUTSIDE_SEQ(PL_compcv) = PL_cop_seqmax;
     if (outsidecv && CvPADLIST(outsidecv))
         CvPADLIST(PL_compcv)->xpadl_outid = CvPADLIST(outsidecv)->xpadl_id;
+    if (is_method)
+        class_prepare_method_parse(PL_compcv);
 
     return oldsavestack_ix;
 }
 
+/* If o represents a builtin attribute, apply it to cv and returns true.
+ * Otherwise does nothing and returns false
+ */
+
+STATIC bool
+S_apply_builtin_cv_attribute(pTHX_ CV *cv, OP *o)
+{
+    assert(o->op_type == OP_CONST);
+    SV *sv = cSVOPo_sv;
+    STRLEN len = SvCUR(sv);
+
+    /* NOTE: any CV attrs applied here need to be part of
+       the CVf_BUILTIN_ATTRS define in cv.h! */
+
+    if(memEQs(SvPVX(sv), len, "lvalue"))
+        CvLVALUE_on(cv);
+    else if(memEQs(SvPVX(sv), len, "method"))
+        CvNOWARN_AMBIGUOUS_on(cv);
+    else if(memEQs(SvPVX(sv), len, "const")) {
+        Perl_ck_warner_d(aTHX_
+            packWARN(WARN_EXPERIMENTAL__CONST_ATTR),
+           ":const is experimental"
+        );
+        CvANONCONST_on(cv);
+        if (!CvANON(cv))
+            yyerror(":const is not permitted on named subroutines");
+    }
+    else
+        return false;
+
+    return true;
+}
+
+/*
+=for apidoc apply_builtin_cv_attributes
+
+Given an OP_LIST containing attribute definitions, filter it for known builtin
+attributes to apply to the cv, returning a possibly-smaller list containing
+just the remaining ones.
+
+=cut
+*/
+
+OP *
+Perl_apply_builtin_cv_attributes(pTHX_ CV *cv, OP *attrlist)
+{
+    PERL_ARGS_ASSERT_APPLY_BUILTIN_CV_ATTRIBUTES;
+
+    if(!attrlist)
+        return attrlist;
+
+    if(attrlist->op_type != OP_LIST) {
+        /* Not in fact a list but just a single attribute */
+        if(S_apply_builtin_cv_attribute(aTHX_ cv, attrlist)) {
+            op_free(attrlist);
+            return NULL;
+        }
+
+        return attrlist;
+    }
+
+    OP *prev = cLISTOPx(attrlist)->op_first;
+    assert(prev->op_type == OP_PUSHMARK);
+    OP *o = OpSIBLING(prev);
+
+    OP *next;
+    for(; o; o = next) {
+        next = OpSIBLING(o);
+
+        if(S_apply_builtin_cv_attribute(aTHX_ cv, o)) {
+            op_sibling_splice(attrlist, prev, 1, NULL);
+            op_free(o);
+        }
+        else {
+            prev = o;
+        }
+    }
+
+    if(OpHAS_SIBLING(cLISTOPx(attrlist)->op_first))
+        return attrlist;
+
+    /* The list is now entirely empty, we might as well discard it */
+    op_free(attrlist);
+    return NULL;
+}
+
 
 /* Do extra initialisation of a CV (typically one just created by
  * start_subparse()) if that CV is for a named sub
@@ -12480,16 +12809,26 @@ S_yywarn(pTHX_ const char *const s, U32 
 }
 
 void
-Perl_abort_execution(pTHX_ const char * const msg, const char * const name)
+Perl_abort_execution(pTHX_ SV* msg_sv, const char * const name)
 {
     PERL_ARGS_ASSERT_ABORT_EXECUTION;
 
-    if (PL_minus_c)
-        Perl_croak(aTHX_ "%s%s had compilation errors.\n", msg, name);
-    else {
-        Perl_croak(aTHX_
-                "%sExecution of %s aborted due to compilation errors.\n", msg, name);
+    if (msg_sv) {
+        if (PL_minus_c)
+            Perl_croak(aTHX_ "%" SVf "%s had compilation errors.\n", SVfARG(msg_sv), name);
+        else {
+            Perl_croak(aTHX_
+                    "%" SVf "Execution of %s aborted due to compilation errors.\n", SVfARG(msg_sv), name);
+        }
+    } else {
+        if (PL_minus_c)
+            Perl_croak(aTHX_ "%s had compilation errors.\n", name);
+        else {
+            Perl_croak(aTHX_
+                    "Execution of %s aborted due to compilation errors.\n", name);
+        }
     }
+
     NOT_REACHED; /* NOTREACHED */
 }
 
@@ -12506,14 +12845,16 @@ int
 Perl_yyerror(pTHX_ const char *const s)
 {
     PERL_ARGS_ASSERT_YYERROR;
-    return yyerror_pvn(s, strlen(s), 0);
+    int r = yyerror_pvn(s, strlen(s), 0);
+    return r;
 }
 
 int
 Perl_yyerror_pv(pTHX_ const char *const s, U32 flags)
 {
     PERL_ARGS_ASSERT_YYERROR_PV;
-    return yyerror_pvn(s, strlen(s), flags);
+    int r = yyerror_pvn(s, strlen(s), flags);
+    return r;
 }
 
 int
@@ -12576,9 +12917,9 @@ Perl_yyerror_pvn(pTHX_ const char *const
                 Perl_sv_catpvf(aTHX_ where_sv, "\\%03o", yychar & 255);
         }
         msg = newSVpvn_flags(s, len, (flags & SVf_UTF8) | SVs_TEMP);
-        Perl_sv_catpvf(aTHX_ msg, " at %s line %" IVdf ", ",
+        Perl_sv_catpvf(aTHX_ msg, " at %s line %" LINE_Tf ", ",
             OutCopFILE(PL_curcop),
-            (IV)(PL_parser->preambling == NOLINE
+            (PL_parser->preambling == NOLINE
                    ? CopLINE(PL_curcop)
                    : PL_parser->preambling));
         if (context)
@@ -12591,8 +12932,8 @@ Perl_yyerror_pvn(pTHX_ const char *const
         {
             Perl_sv_catpvf(aTHX_ msg,
             "  (Might be a runaway multi-line %c%c string starting on"
-            " line %" IVdf ")\n",
-                    (int)PL_multi_open,(int)PL_multi_close,(IV)PL_multi_start);
+            " line %" LINE_Tf ")\n",
+                    (int)PL_multi_open,(int)PL_multi_close,(line_t)PL_multi_start);
             PL_multi_end = 0;
         }
         if (PL_in_eval & EVAL_WARNONLY) {
@@ -12603,24 +12944,11 @@ Perl_yyerror_pvn(pTHX_ const char *const
             qerror(msg);
         }
     }
-    if (s == NULL || PL_error_count >= 10) {
-        const char * msg = "";
-        const char * const name = OutCopFILE(PL_curcop);
-
-        if (PL_in_eval) {
-            SV * errsv = ERRSV;
-            if (SvCUR(errsv)) {
-                msg = Perl_form(aTHX_ "%" SVf, SVfARG(errsv));
-            }
-        }
+    /* if there was no message then this is a yyquit(), which is actualy handled
+     * by qerror() with a NULL argument */
+    if (s == NULL)
+        qerror(NULL);
 
-        if (s == NULL) {
-            abort_execution(msg, name);
-        }
-        else {
-            Perl_croak(aTHX_ "%s%s has too many errors.\n", msg, name);
-        }
-    }
     PL_in_my = 0;
     PL_in_my_stash = NULL;
     return 0;
@@ -12983,6 +13311,18 @@ Perl_keyword_plugin_standard(pTHX_
     return KEYWORD_PLUGIN_DECLINE;
 }
 
+STRLEN
+Perl_infix_plugin_standard(pTHX_
+        char *operator_ptr, STRLEN operator_len, struct Perl_custom_infix **def)
+{
+    PERL_ARGS_ASSERT_INFIX_PLUGIN_STANDARD;
+    PERL_UNUSED_CONTEXT;
+    PERL_UNUSED_ARG(operator_ptr);
+    PERL_UNUSED_ARG(operator_len);
+    PERL_UNUSED_ARG(def);
+    return 0;
+}
+
 /*
 =for apidoc_section $lexer
 =for apidoc wrap_keyword_plugin
@@ -13056,6 +13396,45 @@ Perl_wrap_keyword_plugin(pTHX_
     KEYWORD_PLUGIN_MUTEX_UNLOCK;
 }
 
+/*
+=for apidoc wrap_infix_plugin
+
+B<NOTE:> This API exists entirely for the purpose of making the CPAN module
+C<XS::Parse::Infix> work. It is not expected that additional modules will make
+use of it; rather, that they should use C<XS::Parse::Infix> to provide parsing
+of new infix operators.
+
+Puts a C function into the chain of infix plugins.  This is the preferred
+way to manipulate the L</PL_infix_plugin> variable.  C<new_plugin> is a
+pointer to the C function that is to be added to the infix plugin chain, and
+C<old_plugin_p> points to a storage location where a pointer to the next
+function in the chain will be stored.  The value of C<new_plugin> is written
+into the L</PL_infix_plugin> variable, while the value previously stored there
+is written to C<*old_plugin_p>.
+
+Direct access to L</PL_infix_plugin> should be avoided.
+
+=cut
+*/
+
+void
+Perl_wrap_infix_plugin(pTHX_
+    Perl_infix_plugin_t new_plugin, Perl_infix_plugin_t *old_plugin_p)
+{
+
+    PERL_UNUSED_CONTEXT;
+    PERL_ARGS_ASSERT_WRAP_INFIX_PLUGIN;
+    if (*old_plugin_p) return;
+    /* We use the same mutex as for PL_keyword_plugin as it's so rare either
+     * of them is actually updated; no need for a dedicated one each */
+    KEYWORD_PLUGIN_MUTEX_LOCK;
+    if (!*old_plugin_p) {
+        *old_plugin_p = PL_infix_plugin;
+        PL_infix_plugin = new_plugin;
+    }
+    KEYWORD_PLUGIN_MUTEX_UNLOCK;
+}
+
 #define parse_recdescent(g,p) S_parse_recdescent(aTHX_ g,p)
 static void
 S_parse_recdescent(pTHX_ int gramtype, I32 fakeeof)
@@ -13352,7 +13731,7 @@ Perl_parse_label(pTHX_ U32 flags)
         t = s = PL_bufptr;
         if (!isIDFIRST_lazy_if_safe(s, PL_bufend, UTF))
             goto no_label;
-        t = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &wlen);
+        t = scan_word6(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &wlen, FALSE);
         if (word_takes_any_delimiter(s, wlen))
             goto no_label;
         bufptr_pos = s - SvPVX(PL_linestr);
Index: gnu/usr.bin/perl/uconfig.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/uconfig.h,v
diff -u -p -a -u -p -r1.12 uconfig.h
--- gnu/usr.bin/perl/uconfig.h	15 Feb 2023 01:36:13 -0000	1.12
+++ gnu/usr.bin/perl/uconfig.h	21 Feb 2024 15:47:03 -0000
@@ -50,7 +50,7 @@
  *	This symbol, if defined, indicates that the chsize routine is available
  *	to truncate files.  You might need a -lx to get this routine.
  */
-/*#define	HAS_CHSIZE		/ **/
+/*#define HAS_CHSIZE		/ **/
 
 /* HAS_CRYPT:
  *	This symbol, if defined, indicates that the crypt routine is available
@@ -228,7 +228,7 @@
  *	This symbol, if defined, indicates that the mbstowcs routine is
  *	available to convert a multibyte string into a wide character string.
  */
-/*#define	HAS_MBSTOWCS		/ **/
+/*#define HAS_MBSTOWCS		/ **/
 
 /* HAS_MBTOWC:
  *	This symbol, if defined, indicates that the mbtowc routine is available
@@ -596,7 +596,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-/*#define	I_ARPA_INET		/ **/
+/*#define I_ARPA_INET		/ **/
 
 /* I_DBM:
  *	This symbol, if defined, indicates that <dbm.h> exists and should
@@ -630,7 +630,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <locale.h>.
  */
-/*#define	I_LOCALE		/ **/
+/*#define I_LOCALE		/ **/
 
 /* I_NETINET_IN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -658,7 +658,7 @@
  *	This symbol, if defined, indicates the <sys/sockio.h> should be included
  *	to get socket ioctl options, like SIOCATMARK.
  */
-/*#define	I_SYS_IOCTL		/ **/
+/*#define I_SYS_IOCTL		/ **/
 /*#define I_SYS_SOCKIO	/ **/
 
 /* I_SYS_NDIR:
@@ -696,19 +696,19 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/stat.h>.
  */
-#define	I_SYS_STAT		/**/
+#define I_SYS_STAT		/**/
 
 /* I_SYS_TIMES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/times.h>.
  */
-/*#define	I_SYS_TIMES		/ **/
+/*#define I_SYS_TIMES		/ **/
 
 /* I_SYS_TYPES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/types.h>.
  */
-/*#define	I_SYS_TYPES		/ **/
+/*#define I_SYS_TYPES		/ **/
 
 /* I_SYS_UN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -862,7 +862,7 @@
  *	This symbol is defined if the C compiler can cast negative
  *	or large floating point numbers to 32-bit ints.
  */
-/*#define	CASTI32		/ **/
+/*#define CASTI32		/ **/
 
 /* CASTNEGFLOAT:
  *	This symbol is defined if the C compiler can cast negative
@@ -876,7 +876,7 @@
  *		2 = couldn't cast >= 0x80000000
  *		4 = couldn't cast in argument expression list
  */
-/*#define	CASTNEGFLOAT		/ **/
+/*#define CASTNEGFLOAT		/ **/
 #define CASTFLAGS 0		/**/
 
 /* VOID_CLOSEDIR:
@@ -978,13 +978,13 @@
  *	This symbol, if defined, indicates that siginfo_t has the
  *	si_value member
  */
-/*#define	HAS_SIGINFO_SI_ERRNO	/ **/
-/*#define	HAS_SIGINFO_SI_PID	/ **/
-/*#define	HAS_SIGINFO_SI_UID	/ **/
-/*#define	HAS_SIGINFO_SI_ADDR	/ **/
-/*#define	HAS_SIGINFO_SI_STATUS	/ **/
-/*#define	HAS_SIGINFO_SI_BAND	/ **/
-/*#define	HAS_SIGINFO_SI_VALUE	/ **/
+/*#define HAS_SIGINFO_SI_ERRNO	/ **/
+/*#define HAS_SIGINFO_SI_PID	/ **/
+/*#define HAS_SIGINFO_SI_UID	/ **/
+/*#define HAS_SIGINFO_SI_ADDR	/ **/
+/*#define HAS_SIGINFO_SI_STATUS	/ **/
+/*#define HAS_SIGINFO_SI_BAND	/ **/
+/*#define HAS_SIGINFO_SI_VALUE	/ **/
 
 /* HAS_SIGSETJMP:
  *	This variable indicates to the C program that the sigsetjmp()
@@ -1214,7 +1214,7 @@
  *	This symbol, if defined, indicates that this system uses
  *	EBCDIC encoding.
  */
-/*#define	EBCDIC		/ **/
+/*#define EBCDIC		/ **/
 
 /* ARCHLIB:
  *	This variable, if defined, holds the name of the directory in
@@ -1229,8 +1229,8 @@
  *	This symbol contains the ~name expanded version of ARCHLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-/*#define ARCHLIB "/usr/local/lib/perl5/5.36/unknown"		/ **/
-/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.36/unknown"		/ **/
+/*#define ARCHLIB "/usr/local/lib/perl5/5.38/unknown"		/ **/
+/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.38/unknown"		/ **/
 
 /* BIN:
  *	This symbol holds the path of the bin directory where the package will
@@ -1283,8 +1283,8 @@
  *	This symbol contains the ~name expanded version of PRIVLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/usr/local/lib/perl5/5.36"		/**/
-#define PRIVLIB_EXP "/usr/local/lib/perl5/5.36"		/**/
+#define PRIVLIB "/usr/local/lib/perl5/5.38"		/**/
+#define PRIVLIB_EXP "/usr/local/lib/perl5/5.38"		/**/
 
 /* SITEARCH:
  *	This symbol contains the name of the private library for this package.
@@ -1301,8 +1301,8 @@
  *	This symbol contains the ~name expanded version of SITEARCH, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-/*#define SITEARCH "/usr/local/lib/perl5/5.36/unknown"		/ **/
-/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.36/unknown"		/ **/
+/*#define SITEARCH "/usr/local/lib/perl5/5.38/unknown"		/ **/
+/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.38/unknown"		/ **/
 
 /* SITELIB:
  *	This symbol contains the name of the private library for this package.
@@ -1324,8 +1324,8 @@
  *	removed.  The elements in inc_version_list (inc_version_list.U) can
  *	be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/usr/local/lib/perl5/5.36"		/**/
-#define SITELIB_EXP "/usr/local/lib/perl5/5.36"		/**/
+#define SITELIB "/usr/local/lib/perl5/5.38"		/**/
+#define SITELIB_EXP "/usr/local/lib/perl5/5.38"		/**/
 #define SITELIB_STEM "/usr/local/lib/perl5"		/**/
 
 /* PERL_VENDORARCH:
@@ -1460,6 +1460,10 @@
  *	Can we handle GCC attribute for functions that should always be
  *	inlined.
  */
+/* HASATTRIBUTE_VISIBILITY:
+ *	Can we handle GCC attribute for functions that should have a
+ *	different visibility.
+ */
 /*#define HASATTRIBUTE_DEPRECATED	/ **/
 /*#define HASATTRIBUTE_FORMAT	/ **/
 /*#define PRINTF_FORMAT_NULL_OK	/ **/
@@ -1470,6 +1474,7 @@
 /*#define HASATTRIBUTE_UNUSED	/ **/
 /*#define HASATTRIBUTE_WARN_UNUSED_RESULT	/ **/
 /*#define HASATTRIBUTE_ALWAYS_INLINE	/ **/
+/*#define HASATTRIBUTE_VISIBILITY	/ **/
 
 /* HAS_BACKTRACE:
  *	This symbol, if defined, indicates that the backtrace() routine is
@@ -1556,7 +1561,7 @@
  *	This symbol, if defined, indicates that the system supports filenames
  *	longer than 14 characters.
  */
-/*#define	FLEXFILENAMES		/ **/
+/*#define FLEXFILENAMES		/ **/
 
 /* HAS_GETGRENT:
  *	This symbol, if defined, indicates that the getgrent routine is
@@ -1935,16 +1940,16 @@
  *	This symbol, if defined, indicates the availability of
  *	struct ipv6_mreq_source;
  */
-/*#define	HAS_SOCKET		/ **/
-/*#define	HAS_SOCKETPAIR	/ **/
-/*#define	HAS_SOCKADDR_SA_LEN	/ **/
-/*#define	HAS_SOCKADDR_IN6	/ **/
-/*#define	HAS_SOCKADDR_STORAGE	/ **/
-/*#define	HAS_SIN6_SCOPE_ID	/ **/
-/*#define	HAS_IP_MREQ	/ **/
-/*#define	HAS_IP_MREQ_SOURCE	/ **/
-/*#define	HAS_IPV6_MREQ	/ **/
-/*#define	HAS_IPV6_MREQ_SOURCE	/ **/
+/*#define HAS_SOCKET		/ **/
+/*#define HAS_SOCKETPAIR	/ **/
+/*#define HAS_SOCKADDR_SA_LEN	/ **/
+/*#define HAS_SOCKADDR_IN6	/ **/
+/*#define HAS_SOCKADDR_STORAGE	/ **/
+/*#define HAS_SIN6_SCOPE_ID	/ **/
+/*#define HAS_IP_MREQ	/ **/
+/*#define HAS_IP_MREQ_SOURCE	/ **/
+/*#define HAS_IPV6_MREQ	/ **/
+/*#define HAS_IPV6_MREQ_SOURCE	/ **/
 
 /* USE_STAT_BLOCKS:
  *	This symbol is defined if this system has a stat structure declaring
@@ -2146,7 +2151,7 @@
  *	This symbol, if defined, indicates that <sys/uio.h> exists and
  *	should be included.
  */
-/*#define	I_SYSUIO		/ **/
+/*#define I_SYSUIO		/ **/
 
 /* I_TERMIO:
  *	This symbol, if defined, indicates that the program should include
@@ -2245,8 +2250,8 @@
  *	Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define	USE_CROSS_COMPILE	/ **/
-#define	PERL_TARGETARCH	""	/**/
+/*#define USE_CROSS_COMPILE	/ **/
+#define PERL_TARGETARCH	""	/**/
 #endif
 
 /* PERL_USE_DEVEL:
@@ -2254,7 +2259,7 @@
  *	-Dusedevel, to enable development features.  This should not be
  *	done for production builds.
  */
-/*#define	PERL_USE_DEVEL		/ **/
+/*#define PERL_USE_DEVEL		/ **/
 
 /* HAS_ATOLF:
  *	This symbol, if defined, indicates that the atolf routine is
@@ -2340,7 +2345,7 @@
 /* HAS_C99_VARIADIC_MACROS:
  *	If defined, the compiler supports C99 variadic macros.
  */
-/*#define	HAS_C99_VARIADIC_MACROS	/ **/
+/*#define HAS_C99_VARIADIC_MACROS	/ **/
 
 /* HAS_CLASS:
  *	This symbol, if defined, indicates that the class routine is
@@ -2396,10 +2401,10 @@
  *	to the program to supply one.  A good guess is
  *		extern int dbminit(char *);
  */
-/*#define	HAS_DBMINIT_PROTO	/ **/
+/*#define HAS_DBMINIT_PROTO	/ **/
 
 /* HAS_DIR_DD_FD:
- *	This symbol, if defined, indicates that the the DIR* dirstream
+ *	This symbol, if defined, indicates that the DIR* dirstream
  *	structure contains a member variable named dd_fd.
  */
 /*#define HAS_DIR_DD_FD		/ **/
@@ -2416,7 +2421,7 @@
  *	makes sense if you *have* dlsym, which we will presume is the
  *	case if you're using dl_dlopen.xs.
  */
-/*#define	DLSYM_NEEDS_UNDERSCORE	/ **/
+/*#define DLSYM_NEEDS_UNDERSCORE	/ **/
 
 /* HAS_DUP3:
  *	This symbol, if defined, indicates that the dup3 routine is
@@ -2519,7 +2524,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int flock(int, int);
  */
-/*#define	HAS_FLOCK_PROTO	/ **/
+/*#define HAS_FLOCK_PROTO	/ **/
 
 /* HAS_FMA:
  *	This symbol, if defined, indicates that the fma routine is
@@ -2605,8 +2610,8 @@
  *	  FP_NAN        NaN
  *
  */
-/*#define	HAS_FPCLASSIFY		/ **/
-/*#define	HAS_FP_CLASSIFY		/ **/
+/*#define HAS_FPCLASSIFY		/ **/
+/*#define HAS_FP_CLASSIFY		/ **/
 
 /* HAS_FPCLASSL:
  *	This symbol, if defined, indicates that the fpclassl routine is
@@ -2635,7 +2640,7 @@
 /* HAS_FPOS64_T:
  *	This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define	HAS_FPOS64_T	/ **/
+/*#define HAS_FPOS64_T	/ **/
 
 /* HAS_FREXPL:
  *	This symbol, if defined, indicates that the frexpl routine is
@@ -2665,11 +2670,11 @@
 /* HAS_UNLINKAT:
  *	This symbol is defined if the unlinkat() routine is available.
  */
-/*#define	HAS_FCHMODAT	/ **/
-/*#define	HAS_LINKAT	/ **/
-/*#define	HAS_OPENAT	/ **/
-/*#define	HAS_RENAMEAT	/ **/
-/*#define	HAS_UNLINKAT	/ **/
+/*#define HAS_FCHMODAT	/ **/
+/*#define HAS_LINKAT	/ **/
+/*#define HAS_OPENAT	/ **/
+/*#define HAS_RENAMEAT	/ **/
+/*#define HAS_UNLINKAT	/ **/
 
 /* HAS_FSEEKO:
  *	This symbol, if defined, indicates that the fseeko routine is
@@ -2877,8 +2882,8 @@
  *	j0l() function is available for Bessel functions of the first
  *	kind of the order zero, for long doubles.
  */
-/*#define	HAS_J0		/ **/
-/*#define	HAS_J0L		/ **/
+/*#define HAS_J0		/ **/
+/*#define HAS_J0L		/ **/
 
 /* HAS_LC_MONETARY_2008:
  *	This symbol, if defined, indicates that the localeconv routine is
@@ -3114,13 +3119,13 @@
  *	This symbol, if defined, indicates that the C program should
  *	include <xlocale.h> to get newlocale() and its friends.
  */
-/*#define	HAS_NEWLOCALE	/ **/
-/*#define	HAS_FREELOCALE	/ **/
-/*#define	HAS_USELOCALE	/ **/
-/*#define	HAS_DUPLOCALE	/ **/
-/*#define	HAS_QUERYLOCALE	/ **/
-/*#define	NEED_XLOCALE_H	/ **/
-/*#define	I_XLOCALE               / **/
+/*#define HAS_NEWLOCALE	/ **/
+/*#define HAS_FREELOCALE	/ **/
+/*#define HAS_USELOCALE	/ **/
+/*#define HAS_DUPLOCALE	/ **/
+/*#define HAS_QUERYLOCALE	/ **/
+/*#define NEED_XLOCALE_H	/ **/
+/*#define I_XLOCALE               / **/
 
 /* HAS_NEXTAFTER:
  *	This symbol, if defined, indicates that the nextafter routine is
@@ -3146,7 +3151,7 @@
 /* HAS_OFF64_T:
  *	This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define	HAS_OFF64_T		/ **/
+/*#define HAS_OFF64_T		/ **/
 
 /* HAS_PIPE2:
  *	This symbol, if defined, indicates that the pipe2 routine is
@@ -3191,7 +3196,7 @@
 /* HAS_PTRDIFF_T:
  *	This symbol will be defined if the C compiler supports ptrdiff_t.
  */
-#define	HAS_PTRDIFF_T		/**/
+#define HAS_PTRDIFF_T		/**/
 
 /* HAS_READV:
  *	This symbol, if defined, indicates that the readv routine is
@@ -3238,7 +3243,7 @@
  *		extern void* sbrk(int);
  *		extern void* sbrk(size_t);
  */
-/*#define	HAS_SBRK_PROTO	/ **/
+/*#define HAS_SBRK_PROTO	/ **/
 
 /* HAS_SCALBN:
  *	This symbol, if defined, indicates that the scalbn routine is
@@ -3259,6 +3264,12 @@
  */
 /*#define HAS_SENDMSG		/ **/
 
+/* HAS_SETENV:
+ *	This symbol, if defined, indicates that the setenv routine is
+ *	available for use.
+ */
+/*#define HAS_SETENV		/ **/
+
 /* HAS_SETITIMER:
  *	This symbol, if defined, indicates that the setitimer routine is
  *	available to set interval timers.
@@ -3304,7 +3315,7 @@
  *	be used.
  */
 #ifndef USE_SITECUSTOMIZE
-/*#define	USE_SITECUSTOMIZE		/ **/
+/*#define USE_SITECUSTOMIZE		/ **/
 #endif
 
 /* HAS_SNPRINTF:
@@ -3330,7 +3341,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int sockatmark(int);
  */
-/*#define	HAS_SOCKATMARK_PROTO	/ **/
+/*#define HAS_SOCKATMARK_PROTO	/ **/
 
 /* HAS_SOCKS5_INIT:
  *	This symbol, if defined, indicates that the socks5_init routine is
@@ -3350,7 +3361,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESGID_PROTO	/ **/
+/*#define HAS_SETRESGID_PROTO	/ **/
 
 /* HAS_SETRESUID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3358,7 +3369,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESUID_PROTO	/ **/
+/*#define HAS_SETRESUID_PROTO	/ **/
 
 /* HAS_STRUCT_STATFS_F_FLAGS:
  *	This symbol, if defined, indicates that the struct statfs
@@ -3457,7 +3468,7 @@
  *		extern int syscall(int,  ...);
  *		extern int syscall(long, ...);
  */
-/*#define	HAS_SYSCALL_PROTO	/ **/
+/*#define HAS_SYSCALL_PROTO	/ **/
 
 /* HAS_TELLDIR_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3465,7 +3476,7 @@
  *	to the program to supply one.  A good guess is
  *		extern long telldir(DIR*);
  */
-/*#define	HAS_TELLDIR_PROTO	/ **/
+/*#define HAS_TELLDIR_PROTO	/ **/
 
 /* HAS_TGAMMA:
  *	This symbol, if defined, indicates that the tgamma routine is
@@ -3497,12 +3508,12 @@
  *	This symbol, if defined, indicates that the asctime64 () routine is
  *	available to do the 64bit variant of asctime ()
  */
-/*#define	HAS_CTIME64		/ **/
-/*#define	HAS_LOCALTIME64		/ **/
-/*#define	HAS_GMTIME64		/ **/
-/*#define	HAS_MKTIME64		/ **/
-/*#define	HAS_DIFFTIME64		/ **/
-/*#define	HAS_ASCTIME64		/ **/
+/*#define HAS_CTIME64		/ **/
+/*#define HAS_LOCALTIME64		/ **/
+/*#define HAS_GMTIME64		/ **/
+/*#define HAS_MKTIME64		/ **/
+/*#define HAS_DIFFTIME64		/ **/
+/*#define HAS_ASCTIME64		/ **/
 
 /* HAS_TIMEGM:
  *	This symbol, if defined, indicates that the timegm routine is
@@ -3567,7 +3578,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int usleep(useconds_t);
  */
-/*#define	HAS_USLEEP_PROTO	/ **/
+/*#define HAS_USLEEP_PROTO	/ **/
 
 /* HAS_USTAT:
  *	This symbol, if defined, indicates that the ustat system call is
@@ -3583,7 +3594,7 @@
 
 /* HAS_WCSXFRM:
  *	This symbol, if defined, indicates that the wcsxfrm routine is
- *	available to tranform a wide character string for wcscmp().
+ *	available to transform a wide character string for wcscmp().
  */
 /*#define HAS_WCSXFRM	/ **/
 
@@ -3618,20 +3629,20 @@
  *	Note that if fflushNULL is defined, fflushall will not
  *	even be probed for and will be left undefined.
  */
-/*#define	FFLUSH_NULL		/ **/
-/*#define	FFLUSH_ALL		/ **/
+/*#define FFLUSH_NULL		/ **/
+/*#define FFLUSH_ALL		/ **/
 
 /* I_BFD:
  *	This symbol, if defined, indicates that <bfd.h> exists and
  *	can be included.
  */
-/*#define	I_BFD		/ **/
+/*#define I_BFD		/ **/
 
 /* I_CRYPT:
  *	This symbol, if defined, indicates that <crypt.h> exists and
  *	should be included.
  */
-/*#define	I_CRYPT		/ **/
+/*#define I_CRYPT		/ **/
 
 /* DB_Prefix_t:
  *	This symbol contains the type of the prefix structure element
@@ -3673,19 +3684,19 @@
  *	This symbol, if defined, indicates that <fp.h> exists and
  *	should be included.
  */
-/*#define	I_FP		/ **/
+/*#define I_FP		/ **/
 
 /* I_FP_CLASS:
  *	This symbol, if defined, indicates that <fp_class.h> exists and
  *	should be included.
  */
-/*#define	I_FP_CLASS		/ **/
+/*#define I_FP_CLASS		/ **/
 
 /* I_IEEEFP:
  *	This symbol, if defined, indicates that <ieeefp.h> exists and
  *	should be included.
  */
-/*#define	I_IEEEFP		/ **/
+/*#define I_IEEEFP		/ **/
 
 /* I_INTTYPES:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3697,13 +3708,13 @@
  *	This symbol, if defined, indicates that <langinfo.h> exists and
  *	should be included.
  */
-/*#define	I_LANGINFO		/ **/
+/*#define I_LANGINFO		/ **/
 
 /* I_LIBUTIL:
  *	This symbol, if defined, indicates that <libutil.h> exists and
  *	should be included.
  */
-/*#define	I_LIBUTIL		/ **/
+/*#define I_LIBUTIL		/ **/
 
 /* I_MALLOCMALLOC:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3715,7 +3726,7 @@
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.
  */
-/*#define	I_MNTENT		/ **/
+/*#define I_MNTENT		/ **/
 
 /* I_NETINET_TCP:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3727,37 +3738,37 @@
  *	This symbol, if defined, indicates that <poll.h> exists and
  *	should be included. (see also HAS_POLL)
  */
-/*#define	I_POLL		/ **/
+/*#define I_POLL		/ **/
 
 /* I_PROT:
  *	This symbol, if defined, indicates that <prot.h> exists and
  *	should be included.
  */
-/*#define	I_PROT		/ **/
+/*#define I_PROT		/ **/
 
 /* I_QUADMATH:
  *	This symbol, if defined, indicates that <quadmath.h> exists and
  *	should be included.
  */
-/*#define	I_QUADMATH		/ **/
+/*#define I_QUADMATH		/ **/
 
 /* I_SHADOW:
  *	This symbol, if defined, indicates that <shadow.h> exists and
  *	should be included.
  */
-/*#define	I_SHADOW		/ **/
+/*#define I_SHADOW		/ **/
 
 /* I_SOCKS:
  *	This symbol, if defined, indicates that <socks.h> exists and
  *	should be included.
  */
-/*#define	I_SOCKS		/ **/
+/*#define I_SOCKS		/ **/
 
 /* I_STDBOOL:
  *	This symbol, if defined, indicates that <stdbool.h> exists and
  *	can be included.
  */
-/*#define	I_STDBOOL		/ **/
+/*#define I_STDBOOL		/ **/
 
 /* I_STDINT:
  *	This symbol, if defined, indicates that <stdint.h> exists and
@@ -3769,54 +3780,59 @@
  *	This symbol, if defined, indicates that <sunmath.h> exists and
  *	should be included.
  */
-/*#define	I_SUNMATH		/ **/
+/*#define I_SUNMATH		/ **/
 
 /* I_SYSLOG:
  *	This symbol, if defined, indicates that <syslog.h> exists and
  *	should be included.
  */
-/*#define	I_SYSLOG		/ **/
+/*#define I_SYSLOG		/ **/
 
 /* I_SYSMODE:
  *	This symbol, if defined, indicates that <sys/mode.h> exists and
  *	should be included.
  */
-/*#define	I_SYSMODE		/ **/
+/*#define I_SYSMODE		/ **/
 
 /* I_SYS_MOUNT:
  *	This symbol, if defined, indicates that <sys/mount.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_MOUNT		/ **/
+/*#define I_SYS_MOUNT		/ **/
 
 /* I_SYS_STATFS:
  *	This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-/*#define	I_SYS_STATFS		/ **/
+/*#define I_SYS_STATFS		/ **/
 
 /* I_SYS_STATVFS:
  *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_STATVFS		/ **/
+/*#define I_SYS_STATVFS		/ **/
+
+/* I_SYS_SYSCALL:
+ *	This symbol, if defined, indicates that <sys/syscall.h> exists.
+ */
+/*#define I_SYS_SYSCALL		/ **/
 
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
  */
-/*#define	I_SYSUTSNAME		/ **/
+/*#define I_SYSUTSNAME		/ **/
 
 /* I_SYS_VFS:
  *	This symbol, if defined, indicates that <sys/vfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_VFS		/ **/
+/*#define I_SYS_VFS		/ **/
 
 /* I_USTAT:
  *	This symbol, if defined, indicates that <ustat.h> exists and
  *	should be included.
  */
-/*#define	I_USTAT		/ **/
+/*#define I_USTAT		/ **/
 
 /* I_WCHAR:
  *	This symbol, if defined, indicates to the C program that <wchar.h>
@@ -3827,7 +3843,7 @@
 /* I_WCTYPE:
  *	This symbol, if defined, indicates that <wctype.h> exists.
  */
-/*#define	I_WCTYPE		/ **/
+/*#define I_WCTYPE		/ **/
 
 /* DOUBLEINFBYTES:
  *	This symbol, if defined, is a comma-separated list of
@@ -3978,7 +3994,33 @@
  *	of copying mechanisms, handy.h defines a platform-
  *	independent macro, Perl_va_copy(src, dst), to do the job.
  */
-#define	NEED_VA_COPY		/**/
+#define NEED_VA_COPY		/**/
+
+/* I32df:
+ *	This symbol defines the format string used for printing a Perl I32
+ *	as a signed decimal integer.
+ */
+/* U32uf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned decimal integer.
+ */
+/* U32of:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned octal integer.
+ */
+/* U32xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define I32df		"ld"		/**/
+#define U32of		"lo"		/**/
+#define U32uf		"lu"		/**/
+#define U32xf		"lx"		/**/
+#define U32Xf		"lX"		/**/
 
 /* IVTYPE:
  *	This symbol defines the C type used for Perl's IV.
@@ -4069,35 +4111,35 @@
  *	This symbol, if defined, indicates that a variable of type NVTYPE
  *	stores 0.0 in memory as all bits zero.
  */
-#define	IVTYPE		long		/**/
-#define	UVTYPE		unsigned long		/**/
-#define	I8TYPE		signed char		/**/
-#define	U8TYPE		unsigned char		/**/
-#define	I16TYPE		short	/**/
-#define	U16TYPE		unsigned short	/**/
-#define	I32TYPE		long	/**/
-#define	U32TYPE		unsigned long	/**/
+#define IVTYPE		long		/**/
+#define UVTYPE		unsigned long		/**/
+#define I8TYPE		signed char		/**/
+#define U8TYPE		unsigned char		/**/
+#define I16TYPE		short	/**/
+#define U16TYPE		unsigned short	/**/
+#define I32TYPE		long	/**/
+#define U32TYPE		unsigned long	/**/
 #ifdef HAS_QUAD
-#define	I64TYPE		int64_t	/**/
-#define	U64TYPE		uint64_t	/**/
+#define I64TYPE		int64_t	/**/
+#define U64TYPE		uint64_t	/**/
 #endif
-#define	NVTYPE		double		/**/
-#define	IVSIZE		4		/**/
-#define	UVSIZE		4		/**/
-#define	I8SIZE		1		/**/
-#define	U8SIZE		1		/**/
-#define	I16SIZE		2	/**/
-#define	U16SIZE		2	/**/
-#define	I32SIZE		4	/**/
-#define	U32SIZE		4	/**/
+#define NVTYPE		double		/**/
+#define IVSIZE		4		/**/
+#define UVSIZE		4		/**/
+#define I8SIZE		1		/**/
+#define U8SIZE		1		/**/
+#define I16SIZE		2	/**/
+#define U16SIZE		2	/**/
+#define I32SIZE		4	/**/
+#define U32SIZE		4	/**/
 #ifdef HAS_QUAD
-#define	I64SIZE		8	/**/
-#define	U64SIZE		8	/**/
+#define I64SIZE		8	/**/
+#define U64SIZE		8	/**/
 #endif
-#define	NVSIZE		8		/**/
+#define NVSIZE		8		/**/
 #undef	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	0
-#define	NV_OVERFLOWS_INTEGERS_AT	(256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
+#define NV_PRESERVES_UV_BITS	0
+#define NV_OVERFLOWS_INTEGERS_AT	(256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
 #undef	NV_ZERO_IS_ALLBITS_ZERO
 #if UVSIZE == 8
 #   ifdef BYTEORDER
@@ -4145,14 +4187,14 @@
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		"ld"		/**/
-#define	UVuf		"lu"		/**/
-#define	UVof		"lo"		/**/
-#define	UVxf		"lx"		/**/
-#define	UVXf		"lX"		/**/
-#define	NVef		"e"		/**/
-#define	NVff		"f"		/**/
-#define	NVgf		"g"		/**/
+#define IVdf		"ld"		/**/
+#define UVuf		"lu"		/**/
+#define UVof		"lo"		/**/
+#define UVxf		"lx"		/**/
+#define UVXf		"lX"		/**/
+#define NVef		"e"		/**/
+#define NVff		"f"		/**/
+#define NVgf		"g"		/**/
 
 /* SELECT_MIN_BITS:
  *	This symbol holds the minimum number of bits operated by select.
@@ -4198,7 +4240,7 @@
  *	This symbol tells the name of the array holding the stdio streams.
  *	Usual values include _iob, __iob, and __sF.
  */
-/*#define	HAS_STDIO_STREAM_ARRAY	/ **/
+/*#define HAS_STDIO_STREAM_ARRAY	/ **/
 #ifdef HAS_STDIO_STREAM_ARRAY
 #define STDIO_STREAM_ARRAY	
 #endif
@@ -4243,10 +4285,10 @@
  *	you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-/*#define	USE_64_BIT_INT		/ **/
+/*#define USE_64_BIT_INT		/ **/
 #endif
 #ifndef USE_64_BIT_ALL
-/*#define	USE_64_BIT_ALL		/ **/
+/*#define USE_64_BIT_ALL		/ **/
 #endif
 
 /* USE_C_BACKTRACE:
@@ -4273,7 +4315,7 @@
  *	Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define	USE_FAST_STDIO		/ **/
+/*#define USE_FAST_STDIO		/ **/
 #endif
 
 /* USE_KERN_PROC_PATHNAME:
@@ -4288,7 +4330,7 @@
  *	should be used when available.
  */
 #ifndef USE_LARGE_FILES
-/*#define	USE_LARGE_FILES		/ **/
+/*#define USE_LARGE_FILES		/ **/
 #endif
 
 /* USE_LONG_DOUBLE:
@@ -4296,7 +4338,7 @@
  *	be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define	USE_LONG_DOUBLE		/ **/
+/*#define USE_LONG_DOUBLE		/ **/
 #endif
 
 /* USE_MORE_BITS:
@@ -4304,7 +4346,7 @@
  *	long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define	USE_MORE_BITS		/ **/
+/*#define USE_MORE_BITS		/ **/
 #endif
 
 /* MULTIPLICITY:
@@ -4312,7 +4354,7 @@
  *	be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define	MULTIPLICITY		/ **/
+/*#define MULTIPLICITY		/ **/
 #endif
 
 /* USE_NSGETEXECUTABLEPATH:
@@ -4328,7 +4370,7 @@
  *	used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-/*#define	USE_PERLIO		/ **/
+/*#define USE_PERLIO		/ **/
 #endif
 
 /* USE_QUADMATH:
@@ -4336,7 +4378,7 @@
  *	be used when available.
  */
 #ifndef USE_QUADMATH
-/*#define	USE_QUADMATH		/ **/
+/*#define USE_QUADMATH		/ **/
 #endif
 
 /* USE_SOCKS:
@@ -4344,7 +4386,7 @@
  *	be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define	USE_SOCKS		/ **/
+/*#define USE_SOCKS		/ **/
 #endif
 
 /* HAS_DRAND48_PROTO:
@@ -4353,7 +4395,7 @@
  *	to the program to supply one.  A good guess is
  *		extern double drand48(void);
  */
-/*#define	HAS_DRAND48_PROTO	/ **/
+/*#define HAS_DRAND48_PROTO	/ **/
 
 /* HAS_GETHOST_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4361,7 +4403,7 @@
  *	gethostbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETHOST_PROTOS	/ **/
+/*#define HAS_GETHOST_PROTOS	/ **/
 
 /* HAS_GETNET_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4369,7 +4411,7 @@
  *	getnetbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETNET_PROTOS	/ **/
+/*#define HAS_GETNET_PROTOS	/ **/
 
 /* HAS_GETPROTO_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4377,7 +4419,7 @@
  *	getprotobyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETPROTO_PROTOS	/ **/
+/*#define HAS_GETPROTO_PROTOS	/ **/
 
 /* HAS_GETSERV_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4385,7 +4427,7 @@
  *	getservbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETSERV_PROTOS	/ **/
+/*#define HAS_GETSERV_PROTOS	/ **/
 
 /* HAS_LSEEK_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -4393,7 +4435,7 @@
  *	to the program to supply one.  A good guess is
  *		extern off_t lseek(int, off_t, int);
  */
-/*#define	HAS_LSEEK_PROTO	/ **/
+/*#define HAS_LSEEK_PROTO	/ **/
 
 /* Netdb_host_t:
  *	This symbol holds the type used for the 1st argument
@@ -5216,10 +5258,10 @@
  *	try to use the various _r versions of library functions.
  *	This is extremely experimental.
  */
-/*#define	USE_ITHREADS		/ **/
-/*#define		USE_THREADS		/ **/
-/*#define	OLD_PTHREADS_API		/ **/
-/*#define	USE_REENTRANT_API	/ **/
+/*#define USE_ITHREADS		/ **/
+/*#define 	USE_THREADS		/ **/
+/*#define OLD_PTHREADS_API		/ **/
+/*#define USE_REENTRANT_API	/ **/
 
 /* HAS_TIME:
  *	This symbol, if defined, indicates that the time() routine exists.
@@ -5249,7 +5291,7 @@
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		"lu"		/**/
+#define Gid_t_f		"lu"		/**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedness of a Gid_t.
@@ -5317,7 +5359,7 @@
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		"lu"		/**/
+#define Uid_t_f		"lu"		/**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedness of a Uid_t.
@@ -5340,6 +5382,6 @@
 #endif
 
 /* Generated from:
- * 87e5998978daf803d19866c43bca24d7c01dc74119650db16f8d18d83f355da9 config_h.SH
- * 1a5fe19cbcfd68ba70230580fd344189b5c78c11b2285efd5976366e51b3257e uconfig.sh
- * ex: set ro: */
+ * e17a83ff6ae98071d846d4a001f6ce1a669df08c357fe153c2370adc4910135e config_h.SH
+ * 8d785207fec43bbad5118a8125e625d1cc654455994f09a76c1625b2ae2ae2d0 uconfig.sh
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/uconfig.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/uconfig.sh,v
diff -u -p -a -u -p -r1.12 uconfig.sh
--- gnu/usr.bin/perl/uconfig.sh	15 Feb 2023 01:36:13 -0000	1.12
+++ gnu/usr.bin/perl/uconfig.sh	21 Feb 2024 15:47:03 -0000
@@ -6,8 +6,8 @@ afs='false'
 afsroot='/afs'
 alignbytes='4'
 aphostname='/bin/hostname'
-archlib='/usr/local/lib/perl5/5.36/unknown'
-archlibexp='/usr/local/lib/perl5/5.36/unknown'
+archlib='/usr/local/lib/perl5/5.38/unknown'
+archlibexp='/usr/local/lib/perl5/5.38/unknown'
 archname='unknown'
 asctime_r_proto='0'
 bin='/usr/local/bin'
@@ -63,6 +63,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='undef'
@@ -429,6 +430,7 @@ d_semget='undef'
 d_semop='undef'
 d_sendmsg='undef'
 d_setegid='undef'
+d_setenv='undef'
 d_seteuid='undef'
 d_setgrent='undef'
 d_setgrent_r='undef'
@@ -645,6 +647,7 @@ h_fcntl='false'
 h_sysfile='true'
 i16size='2'
 i16type='short'
+i32dformat='"ld"'
 i32size='4'
 i32type='long'
 i64size='8'
@@ -715,6 +718,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='undef'
 i_sysstatvfs='undef'
+i_syssyscall='undef'
 i_systime='undef'
 i_systimek='undef'
 i_systimes='undef'
@@ -789,8 +793,8 @@ perl_static_inline='static'
 perl_thread_local=''
 phostname='hostname'
 pidtype=int
-privlib='/usr/local/lib/perl5/5.36'
-privlibexp='/usr/local/lib/perl5/5.36'
+privlib='/usr/local/lib/perl5/5.38'
+privlibexp='/usr/local/lib/perl5/5.38'
 procselfexe=''
 prototype='undef'
 ptrsize='4'
@@ -840,11 +844,11 @@ sig_name_init='0'
 sig_num_init='0'
 sig_size='1'
 signal_t=int
-sitearch='/usr/local/lib/perl5/5.36/unknown'
-sitearchexp='/usr/local/lib/perl5/5.36/unknown'
-sitelib='/usr/local/lib/perl5/5.36'
+sitearch='/usr/local/lib/perl5/5.38/unknown'
+sitearchexp='/usr/local/lib/perl5/5.38/unknown'
+sitelib='/usr/local/lib/perl5/5.38'
 sitelib_stem='/usr/local/lib/perl5'
-sitelibexp='/usr/local/lib/perl5/5.36'
+sitelibexp='/usr/local/lib/perl5/5.38'
 sizesize=4
 sizetype='size_t'
 socksizetype='int'
@@ -873,8 +877,12 @@ touch='touch'
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
 u32size='4'
 u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
 u64size='8'
 u64type='uint64_t'
 u8size='1'
Index: gnu/usr.bin/perl/uconfig64.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/uconfig64.sh,v
diff -u -p -a -u -p -r1.12 uconfig64.sh
--- gnu/usr.bin/perl/uconfig64.sh	15 Feb 2023 01:36:13 -0000	1.12
+++ gnu/usr.bin/perl/uconfig64.sh	21 Feb 2024 15:47:03 -0000
@@ -6,8 +6,8 @@ afs='false'
 afsroot='/afs'
 alignbytes='8'
 aphostname='/bin/hostname'
-archlib='/usr/local/lib/perl5/5.36/unknown'
-archlibexp='/usr/local/lib/perl5/5.36/unknown'
+archlib='/usr/local/lib/perl5/5.38/unknown'
+archlibexp='/usr/local/lib/perl5/5.38/unknown'
 archname='unknown64'
 asctime_r_proto='0'
 bin='/usr/local/bin'
@@ -63,6 +63,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='undef'
@@ -429,6 +430,7 @@ d_semget='undef'
 d_semop='undef'
 d_sendmsg='undef'
 d_setegid='undef'
+d_setenv='undef'
 d_seteuid='undef'
 d_setgrent='undef'
 d_setgrent_r='undef'
@@ -645,6 +647,7 @@ h_fcntl='false'
 h_sysfile='true'
 i16size='2'
 i16type='short'
+i32dformat='"d"'
 i32size='4'
 i32type='int'
 i64size='8'
@@ -715,6 +718,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='undef'
 i_sysstatvfs='undef'
+i_syssyscall='undef'
 i_systime='undef'
 i_systimek='undef'
 i_systimes='undef'
@@ -789,8 +793,8 @@ perl_static_inline='static'
 perl_thread_local=''
 phostname='hostname'
 pidtype=int
-privlib='/usr/local/lib/perl5/5.36'
-privlibexp='/usr/local/lib/perl5/5.36'
+privlib='/usr/local/lib/perl5/5.38'
+privlibexp='/usr/local/lib/perl5/5.38'
 procselfexe=''
 prototype='undef'
 ptrsize='8'
@@ -840,11 +844,11 @@ sig_name_init='0'
 sig_num_init='0'
 sig_size='1'
 signal_t=int
-sitearch='/usr/local/lib/perl5/5.36/unknown'
-sitearchexp='/usr/local/lib/perl5/5.36/unknown'
-sitelib='/usr/local/lib/perl5/5.36'
+sitearch='/usr/local/lib/perl5/5.38/unknown'
+sitearchexp='/usr/local/lib/perl5/5.38/unknown'
+sitelib='/usr/local/lib/perl5/5.38'
 sitelib_stem='/usr/local/lib/perl5'
-sitelibexp='/usr/local/lib/perl5/5.36'
+sitelibexp='/usr/local/lib/perl5/5.38'
 sizesize=4
 sizetype='size_t'
 socksizetype='int'
@@ -873,8 +877,12 @@ touch='touch'
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"X"'
+u32oformat='"o"'
 u32size='4'
 u32type='unsigned int'
+u32uformat='"u"'
+u32xformat='"x"'
 u64size='8'
 u64type='unsigned long'
 u8size='1'
Index: gnu/usr.bin/perl/uni_keywords.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/uni_keywords.h,v
diff -u -p -a -u -p -r1.1.1.4 uni_keywords.h
--- gnu/usr.bin/perl/uni_keywords.h	15 Feb 2023 01:31:52 -0000	1.1.1.4
+++ gnu/usr.bin/perl/uni_keywords.h	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  * This file is built by regen/mk_invlists.pl from mph.pl.
  * Any changes made here will be lost!
@@ -10,152 +10,153 @@
 #define MPH_VALt I16
 
 /*
-generator script: regen/mk_invlists.pl
+generator script: ./regen/mk_invlists.pl
 split strategy: squeeze
 srand: 1785235451
-rows: 7420
-seed: 1348825710
-full length of keys: 104237
-blob length: 8635
-ref length: 59360
-data size: 67995 (%65.23)
+rows: 7498
+seed: 1348825711
+full length of keys: 105417
+blob length: 8703
+ref length: 59984
+data size: 68687 (%65.16)
 */
 
 STATIC const unsigned char mph_blob[] =
-    "l&cwlextgocrpcmadlmaghbahexahomarmiavstbatkbhksbuhdcakmcanschamch"
-    "rscpmncprtcwucyrldsrtgonggrekgujrguruhluwhmngzlkitskndalaoolatnme"
-    "dfmteimymrnarbnewaoryaosgeougrphlpphnxqaacrjngrohgrunrsamrsgnwsha"
-    "wtagstamltavttfngtglgtibttotowchoxpeoxsuxyiiizanbzyyyzzzzcntrlcwc"
-    "fcwcmcwkcfcwtzpgcb=b2h2jlxxnushu3040nv=90oriyapatwsprintqmarktail"
-    "evssupfsipdfcarianccc=118491vre=yeschakmasmlsqrgothicgrexthyphen3"
-    ".26.3415161miaoarmndiakgonmhanokhmrlinamroonkooogamolckorkhphlipl"
-    "rdprtiqaaishrdsogotnsavaiibehgafhahrehbunkhojkilydiannfdqcnv=3//5"
-    "nv=7patsynrejangsb=stangsaebg3.04.0age=56.07.08.09.052avestanccc="
-    "22e=truedeseretdt=nonewideelbasanelymaicextpictgrbashanunoohst=lv"
-    "tadlambuhiddogralimbuoghamosagerunictakribatakisotheeemnoonseensh"
-    "inzainkannadakayahlilinearamandaicmarchennfkcqc-1/2/645/217/2olch"
-    "ikiosmanyahmnpkalilananbatsarbsyrczinhsharadashavianstermuaatagal"
+    "l&cwlocrpcmadlmaghbahexahomarmiavstbatkbhksbuhdcakmcanschamchrscp"
+    "mncprtcwucyrldsrtgonggrekgujrguruhluwhmngzlkawikitskndalaoolatnme"
+    "dfmteimymrnarbnewaoryaosgeougrphlpphnxqaacrjngrohgrunrsamrsgnwtag"
+    "stamltavttfngtglgtibttotowchoxpeoxsuxyiiizanbzyyyzzzzcntrlcwcfcwc"
+    "mcwkcfcwtzpgcb=b2h2jlxxnushu3040nv=90oriyapatwsprintqmarktailevss"
+    "upfsipdfcarianccc=1218491vre=yeschakmasmlsqrgothicgrexthyphen3.26"
+    ".3415161miaoarmndiakgonmhanokhmrlinamroonkooogamolckorkhphliplrdp"
+    "rtiqaaishawsogotnsavaiibehgafhahrehbunkhojkilydiannfdqcnv=3//5nv="
+    "7patsynrejangsb=stangsaebg3.04.0age=56.07.08.09.052avestanccc=22e"
+    "=truedeseretdt=nonewideelbasanelymaicextpictgrbashanunoohst=lvtad"
+    "lambuhiddogralimbuoghamosagerunictakribatakisotheeemnoonseenshinz"
+    "ainkannadakayahlilinearamandaicmarchennfkcqc-1/2/645/27/2olchikio"
+    "smanyahmnpkalilananbatsarbshrdsyrczinhsharadashavianstermuaatagal"
     "ogtaithamtaiviettibetantirhutauideounknownage=10.0age=v1armenianb"
     "alinesebassavahbpt=opene=falsecompexsuperduployanextendergujarati"
     "gurmukhihiraganahatrankaithilepchalycianteluguwanchoyezidijamoext"
     "bgamalkhaphmahajaninfkdqcnv=1/31/12nv=2erlwordkthilinbmercnshuscx"
     "=talupecialstagbanwatifinaghvithkuqipfabhaiksuki2435nuktacircleme"
-    "dialea=narrowmoticonsbengaligranthainheritedinkanamakasarmultanin"
-    "oblockphagspasiddhamsoyombouablamadhkhudawadinabataeannewtailue16"
-    "00032000olditalicoldpermicoldturkicolduyghurpalmyrenepaucinhausam"
-    "aritanthaanawb=mixidstartbasiclatinboxdrawingccc=ccc1viramachoras"
-    "mianstrokesdeprecateddivesakuruorizspacebugineseingeorgiajamoexta"
-    "javanesebinduugariticiskanathinyehkharoshthiiscarrowsnt=oldpersia"
-    "nphoeniciansaurashtraolettermallformssoftdotteduprightwarangcitia"
-    "letternewlineerlspaceextdoverlaycyprominoandominotilesfractioniso"
-    "latedpfbextfisarabicisspaceisvertfarsiyehswashkaflinefeednextline"
-    "medefaidrinnfcqc=maybenv=10000pahawhhmongscript=mlymsorasompenger"
-    "andsubsylotinagriebasegazyisyllablesbidicontrolbidimirroredblk=ka"
-    "naucasextahesssymbolsambiguousgraphemebasegunjalagondiompatjamool"
-    "dsogdianvisargayiradicalsisposixsyriacwawjoiningtype=breakbothbkh"
-    "3jvmasaramgondiathalphanummendekikakui1.0.111e-01.250e-01.429e-01"
-    ".500e+00.562e-02.563e-02.667e-01.875e-01.500e-013.125e-02.333e-01"
-    ".750e-01nv=4.167e-01.688e-02.000e-02nv=5.833e-01nv=6.250e-02nv=8."
-    "333e-02oldhungarianphaistosdiscplayingcardspresentin=14wsegspacex"
-    "idcontinueegeannumbersblockelementscaseignorablunassignedreekexte"
-    "ndedvoweljamoincyrillicinethiopictakanaextiscsymbolsinmyanmarnand"
-    "inagariavagrahatonemarkipaextensionsiscasedletterisgeorgiajoincon"
-    "trolismyanmarisxposixblankjg=africanfehdalathrishknottedhehrevers"
-    "edpenonjoiningbreakafternonstarterwordjoinerowsurrogatesayannumer"
-    "alsisctechnical-5.000e-01patternsyntaxpresentin=56.1verticalforms"
-    "ncientsymbolsbc=righttoleftblk=arabichanreadingemojicomponentgc=o"
-    "thereekandcoptichighsurrogateslphabeticpfkhmersymbolsnonjoinerisc"
-    "yrillicisethiopicmahjongtilesrohingyayehstraightwawyehwithtaildua"
-    "ljoiningjoincausingleftjoiningjt=transparentbreakbeforeexclamatio"
-    "ninseparableinseperablenfcquickchecknumerictype=epresentin=v1psal"
-    "terpahlaviquotationmarkdoublequotesinglequoteany_foldsquotemetaas"
-    "ciihexdigitarabicletterotherneutralblk=georgiadoubleabovekanavoic"
-    "ingontrolpictureseastasianwidth=letternumbergraphemeextendeadingj"
-    "amoimperialaramaicoverstruckpurekillerdecimalnumberenclosingmarkf"
-    "inalsemkathverticaltailrightjoininghebrewletterinfixnumericmeroit"
-    "iccursiveiscpictographsnfdquickchecknumericvalue=236numericvalue="
-    "4oldnortharabianoldsoutharabianextendnumletglueafterzwjzanabazars"
-    "quareblk=cyrillicblk=ethiopicblock=arabicnotreorderedcypriotsylla"
-    "barylineseparatorhalfandfullformshighpusurrogatestrailingjamocomp"
-    "atformsgxiradicalsinlatinextendedphoneticextsupislatinextendedlis"
-    "usupplementnonspacingmarklllajg=malayalamnnnamemtawprefixnumerici"
-    "nearbideogramsiscmathsymbolsanfkcquickchecknumericvalue=1/numeric"
-    "value=5/8numericvalue=70numericvalue=80numericvalue=9sentenceterm"
-    "inaltangutcomponentseuropeannumberanadiansyllabicscaucasianalbani"
-    "aniotasubscriptemojipresentationgmodifiersymbolspaceseparatornota"
-    "pplicableidsbinaryoperatorbraillepatternscurrencysymbolsindicsiya"
-    "qnumbersleftandrightnumberjoinervedicextensionsdashpunctuationdia"
-    "criticalsexthangulsyllableslowercaseletteropenpunctuationhamzaonh"
-    "ehgoalbethfivehethkaphqophreshyodhqaphtethkhitansmallscriptcarria"
-    "gereturncomplexcontextmandatorybreakpostfixnumericetterlikesymbol"
-    "slinebreak=zwspacenfkdquickchecknumericvalue=3/2regionalindicator"
-    "scriptextensions=mallformvariantsttonsignwritingboundaryneutralco"
-    "mmonseparatorblk=latinextendedblock=cyrillicextcopticepactnumbers"
-    "titlecaseletteruppercaseletteridstrinaryoperatorinitialpunctuatio"
-    "nlinearbsyllabaryiscmathsymbolsbbopomofoextendedclosepunctuationf"
-    "inalpunctuation1supplementyriacsupplementtangutsupplementalephgim"
-    "elsadhezayinlaphzhainadditionalcontingentbreaknumericvalue=6ornam"
-    "entaldingbatsparagraphseparatorpatternwhitespaceruminumeralsymbol"
-    "ssegmentseparatorbamumsupplementdiacriticalssuptamilsupplementblo"
-    "ck=kanaegyptianhieroglyphsemojimodifierbaselchemicalsymbolsgemina"
-    "tionmarkvoweldependenthanifirohingyapadalethlamedhsamekhjg=manich"
-    "aeantwentyyudhhe=closeparenthesisodifiertonelettersottomansiyaqnu"
-    "mbersatermarrowsawordbreak=mi_perl_charname_beanatolianhieroglyph"
-    "sblk=myanmarblock=latinextendedconnectorpunctuationextendedpictog"
-    "raphicombininghalfmarksneralpunctuationvisualorderleftmodifyingle"
-    "tterregistershifterinscriptionalpahlavitaixuanjingsymbolscherokee"
-    "supplementdevanagariextendedmallkanaextensiondhamedhhundrednyiake"
-    "ngpuachuehmongterminalpunctuationeuropeanterminatorfirststrongiso"
-    "lateattachedbelowleftchangeswhencasefoldedchangeswhencasemappedch"
-    "angeswhenlowercasedchangeswhentitlecasedchangeswhenuppercasedgrap"
-    "hemeclusterbreak=identifiertype=notncientgreeknumbersountingrodnu"
-    "meralsmeroitichieroglyphsantillationmarkinvisiblestackersyllablem"
-    "odifierinscriptionalparthianinsupplementalarrowsbnclosedalphanums"
-    "uphanguljamoextendedamongoliansupplementsundanesesupplementissupp"
-    "lementalarrowsclogicalorderexceptionnoncharactercodepointsinhalaa"
-    "rchaicnumbersvo=transformedrotatedyijinghexagramsymbolsoverridear"
-    "abicnumberbidipairedbrackettypeblock=ethiopicblock=georgianblock="
-    "myanmarmathoperatorsfontdiacriticalsforsymbolsarlydynasticcuneifo"
-    "rminsc=consonantprefixedglagoliticsupplementburushaskiyehbarreebr"
-    "eaksymbolsnumericvalue=100000000.500e-02.125e-03.750e-02.250e-03b"
-    "c=lefttorightembeddingpopdirectionalformatblhanguljamoextendedbha"
-    "ngulcompatibilityjamoobsoletecompatibilityformsradicalssupplement"
-    "subjoinedjoininggroup=africanqafsentencebreak=shorthandformatcont"
-    "rolsznamennymusicalnotationhighprivateusesurrogatesstatus=allowed"
-    "inclusioncompatideographssupommonindicnumberformsiscellaneoustech"
-    "nicalinpc=topandbottomandleftbrahmijoiningnumberheadletterpacingm"
-    "odifierletterstransportandmapsymbolshanifirohingyakinnayajoiningg"
-    "roup=malayalamfolds_to_multi_charmeeteimayekextensionschangeswhen"
-    "nfkccasefoldeddefaultignorablecodepointfullcompositionexclusionli"
-    "mitedusebyzantinemusicalsymbolsplaceholderwithstackermetricshapes"
-    "extendederscriptsandsubscriptsymbolsforlegacycomputingcanonicalco"
-    "mbiningclass=27halfwidthandfullwidthformsrecommendeduncommonusein"
-    "arabicpresentationformsbcombiningmarksforsymbolsprependedconcaten"
-    "ationmarkis_in_multi_char_foldeuropeanseparatorblk=supplementalca"
-    "nonicalcombiningclass=128nclosedcjklettersandmonthsgeneralcategor"
-    "y=othestatus=restrictedymbolsandpictographsextanojoininggrouptehm"
-    "arbutagoalopticalcharacterrecognitionbidiclass=lefttorightbidicla"
-    "ss=righttoleftatarprecedingrephakatakanaphoneticextensionssupplem"
-    "entaryprivateuseareaacanonicalcombiningclass=ccc1succeedingrephal"
-    "phabeticpresentationformsancientgreekmusicalnotationlb=conditiona"
-    "ljapanesestarteriscellaneoussymbolsandarrowsdecompositiontype=non"
-    "hangulsyllabletype=lvtinitialpostfixedryprivateuseareabvariations"
-    "electorssupplementjoininggroup=manichaeantpopdirectionalisolatenc"
-    "losedideographicsupplementathematicalalphanumericsymbolsideograph"
-    "icdescriptioncharactersincjkunifiedideographsextensnclosedalphanu"
-    "mericsupplementiscjkunifiedideographsextensuneiformnumbersandpunc"
-    "tuationymbolsandpictographsextendedaaboveleftiscellaneousmathemat"
-    "icalsymbolsablk=cjkunifiedideographsextensbelowrightgyptianhierog"
-    "lyphformatcontrolsideographicsymbolsandpunctuationmathematicalalp"
-    "habeticsymbolsdoublebelowombiningdiacriticalmarksextendedindicpos"
-    "itionalcategory=topandiscellaneousmathematicalsymbolsbblock=cjkun"
-    "ifiedideographsextensindicsyllabiccategory=consonantiscellaneouss"
-    "ymbolsandpictographsombiningdiacriticalmarksforsymbols_perl_probl"
-    "ematic_locale_foldeds_compatibilityideographssupplementbottomandr"
-    "ightvowelindependentverticalorientation=transformombiningdiacriti"
-    "calmarkssupplementblock=supplementalmathematicaloperatorsattached"
-    "aboverightisunifiedcanadianaboriginalsyllabicsextendeda";
-/* mph_blob length: 8635 */
+    "dialea=narrowmoticonsbengaliincjkexgranthainheritedinkanamakasarm"
+    "ultaninoblockphagspasiddhamsoyombouabiscjkexlamadhkhudawadinabata"
+    "eannewtailue1600032000olditalicoldpermicoldturkicolduyghurpalmyre"
+    "nepaucinhausamaritanthaanawb=mixidstartbasiclatinboxdrawingccc=cc"
+    "c1viramachorasmianstrokesdeprecateddivesakuruorizspacebugineseing"
+    "eorgiajamoextajavanesebinduugariticiskanathinyehkharoshthiiscarro"
+    "wsnagmundarioldpersianphoeniciansaurashtraolettermallformssoftdot"
+    "teduprightwarangcitialetternewlineerlspaceblk=cjkextdoverlaycypro"
+    "minoandominotilesfractionisolatedpfbisarabicisspaceisvertfarsiyeh"
+    "swashkaflinefeednextlinemedefaidrinnfcqc=maybenv=10000000pahawhhm"
+    "ongscript=mlymsorasompengerandsubsylotinagriebasegazyisyllablesbi"
+    "dicontrolbidimirroredblk=kanaucasextahesssymbolsambiguousgrapheme"
+    "basegunjalagondiompatjamooldsogdianvisargayiradicalsisposixsyriac"
+    "wawjoiningtype=breakbothbkh3jvmasaramgondiathalphanummendekikakui"
+    "1.0.111e-01.250e-01.429e-01.500e+00.562e-02.563e-02.667e-01.875e-"
+    "01.500e-013.125e-02.333e-01.750e-01nv=4.167e-01.688e-02.000e-02nv"
+    "=5.833e-01nv=6.250e-02nv=8.333e-02oldhungarianphaistosdiscplaying"
+    "cardspresentin=14wsegspacexidcontinueegeannumbersblock=cjkexblock"
+    "elementscaseignorablunassignedreekextendedvoweljamoincyrillicinet"
+    "hiopickatakanaextiscsymbolsinmyanmarnandinagariavagrahatonemarkip"
+    "aextensionsiscasedletterisgeorgiajoincontrolismyanmarisxposixblan"
+    "kjg=africanfehdalathrishknottedhehreversedpenonjoiningbreakaftern"
+    "onstarterwordjoinerowsurrogatesayannumeralsisctechnical-5.000e-01"
+    "patternsyntaxpresentin=56.1verticalformsncientsymbolsbc=righttole"
+    "ftblk=arabichanreadingemojicomponentgc=othereekandcoptichighsurro"
+    "gateslphabeticpfkhmersymbolsnonjoineriscyrillicisethiopicmahjongt"
+    "ilesrohingyayehstraightwawyehwithtaildualjoiningjoincausingleftjo"
+    "iningjt=transparentbreakbeforeexclamationinseparableinseperablenf"
+    "cquickchecknumerictype=epresentin=v1psalterpahlaviquotationmarkdo"
+    "ublequotesinglequoteany_foldsquotemetaasciihexdigitarabicletterot"
+    "herneutralblk=georgiadoubleabovekanavoicingontrolpictureseastasia"
+    "nwidth=letternumbergraphemeextendeadingjamoimperialaramaicoverstr"
+    "uckpurekillerdecimalnumberenclosingmarkfinalsemkathverticaltailri"
+    "ghtjoininghebrewletterinfixnumericmeroiticcursiveiscpictographsnf"
+    "dquickchecknumericvalue=236numericvalue=4oldnortharabianoldsoutha"
+    "rabianextendnumletglueafterzwjzanabazarsquareblk=cyrillicblk=ethi"
+    "opicblock=arabicnotreorderedcypriotsyllabarylineseparatorhalfandf"
+    "ullformshighpusurrogatestrailingjamocompatformsgxiradicalsinlatin"
+    "extendeddphoneticextsupdevanagariextaislatinextendedlisusupplemen"
+    "tnonspacingmarklllajg=malayalamnnnamemtawktoviknumeralsprefixnume"
+    "ricinearbideogramsiscmathsymbolsanfkcquickchecknumericvalue=1/num"
+    "ericvalue=5/8numericvalue=70numericvalue=80numericvalue=9sentence"
+    "terminaltangutcomponentseuropeannumberanadiansyllabicscaucasianal"
+    "banianiotasubscriptemojipresentationgmodifiersymbolspaceseparator"
+    "notapplicableidsbinaryoperatorbraillepatternscurrencysymbolsindic"
+    "siyaqnumbersleftandrightnumberjoinervedicextensionsdashpunctuatio"
+    "ndiacriticalsexthangulsyllableslowercaseletteropenpunctuationhamz"
+    "aonhehgoalbethfivehethkaphqophreshyodhqaphtethkhitansmallscriptca"
+    "rriagereturncomplexcontextmandatorybreakpostfixnumericetterlikesy"
+    "mbolslinebreak=zwspacenfkdquickchecknumericvalue=3/2regionalindic"
+    "atorscriptextensions=mallformvariantsttonsignwritingboundaryneutr"
+    "alcommonseparatorblk=latinextendedblock=cyrillicextcopticepactnum"
+    "berstitlecaseletteruppercaseletteridstrinaryoperatorinitialpunctu"
+    "ationlinearbsyllabaryiscmathsymbolsbbopomofoextendedclosepunctuat"
+    "ionfinalpunctuation1supplementyriacsupplementtangutsupplementalep"
+    "hgimelsadhezayinlaphzhainadditionalcontingentbreaknumericvalue=6o"
+    "rnamentaldingbatsparagraphseparatorpatternwhitespaceruminumeralsy"
+    "mbolssegmentseparatorbamumsupplementdiacriticalssuptamilsupplemen"
+    "tblock=kanaegyptianhieroglyphsemojimodifierbaselchemicalsymbolsge"
+    "minationmarkvoweldependenthanifirohingyapadalethlamedhsamekhjg=ma"
+    "nichaeantwentyyudhhe=closeparenthesisodifiertonelettersottomansiy"
+    "aqnumbersatermarrowsawordbreak=mi_perl_charname_beanatolianhierog"
+    "lyphsblk=myanmarblock=latinextendedconnectorpunctuationextendedpi"
+    "ctographicombininghalfmarksneralpunctuationvisualorderleftmodifyi"
+    "ngletterregistershifterinscriptionalpahlavitaixuanjingsymbolscher"
+    "okeesupplementmallkanaextensiondhamedhhundrednyiakengpuachuehmong"
+    "terminalpunctuationeuropeanterminatorfirststrongisolateattachedbe"
+    "lowleftchangeswhencasefoldedchangeswhencasemappedchangeswhenlower"
+    "casedchangeswhentitlecasedchangeswhenuppercasedgraphemeclusterbre"
+    "ak=identifiertype=notncientgreeknumbersountingrodnumeralsmeroitic"
+    "hieroglyphsantillationmarkinvisiblestackersyllablemodifierinscrip"
+    "tionalparthianinsupplementalarrowsbnclosedalphanumsuphanguljamoex"
+    "tendedamongoliansupplementsundanesesupplementissupplementalarrows"
+    "clogicalorderexceptionnoncharactercodepointsinhalaarchaicnumbersv"
+    "o=transformedrotatedyijinghexagramsymbolsoverridearabicnumberbidi"
+    "pairedbrackettypeblock=ethiopicblock=georgianblock=myanmarmathope"
+    "ratorsfontdiacriticalsforsymbolsarlydynasticcuneiforminsc=consona"
+    "ntprefixedglagoliticsupplementburushaskiyehbarreebreaksymbolsnume"
+    "ricvalue=100000.500e-02.125e-03.750e-02.250e-03bc=lefttorightembe"
+    "ddingpopdirectionalformatblhanguljamoextendedbhangulcompatibility"
+    "jamoobsoletecompatibilityformsradicalssupplementsubjoinedjoiningg"
+    "roup=africanqafsentencebreak=shorthandformatcontrolsznamennymusic"
+    "alnotationhighprivateusesurrogatesstatus=allowedinclusioncompatid"
+    "eographssupommonindicnumberformsiscellaneoustechnicalinpc=topandb"
+    "ottomandleftbrahmijoiningnumberheadletterpacingmodifierletterstra"
+    "nsportandmapsymbolshanifirohingyakinnayajoininggroup=malayalamfol"
+    "ds_to_multi_charmeeteimayekextensionsdevanagariextendedachangeswh"
+    "ennfkccasefoldeddefaultignorablecodepointfullcompositionexclusion"
+    "limitedusebyzantinemusicalsymbolsplaceholderwithstackermetricshap"
+    "esextendederscriptsandsubscriptsymbolsforlegacycomputingcanonical"
+    "combiningclass=2halfwidthandfullwidthformsrecommendeduncommonusei"
+    "narabicpresentationformsbcombiningmarksforsymbolsprependedconcate"
+    "nationmarkis_in_multi_char_foldeuropeanseparatorblk=supplementalc"
+    "anonicalcombiningclass=128nclosedcjklettersandmonthsgeneralcatego"
+    "ry=othestatus=restrictedymbolsandpictographsextanojoininggroupteh"
+    "marbutagoalopticalcharacterrecognitionbidiclass=lefttorightbidicl"
+    "ass=righttoleftatarprecedingrephatakanaphoneticextensionssuppleme"
+    "ntaryprivateuseareaacanonicalcombiningclass=ccc1succeedingrephalp"
+    "habeticpresentationformsancientgreekmusicalnotationlb=conditional"
+    "japanesestarteriscellaneoussymbolsandarrowsdecompositiontype=nonh"
+    "angulsyllabletype=lvtinitialpostfixedryprivateuseareabvariationse"
+    "lectorssupplementjoininggroup=manichaeantpopdirectionalisolatencl"
+    "osedideographicsupplementathematicalalphanumericsymbolsideographi"
+    "cdescriptioncharactersincjkunifiedideographsextensnclosedalphanum"
+    "ericsupplementiscjkunifiedideographsextensuneiformnumbersandpunct"
+    "uationymbolsandpictographsextendedaaboveleftiscellaneousmathemati"
+    "calsymbolsablk=cjkunifiedideographsextensbelowrightgyptianhierogl"
+    "yphformatcontrolsideographicsymbolsandpunctuationmathematicalalph"
+    "abeticsymbolsdoublebelowombiningdiacriticalmarksextendedindicposi"
+    "tionalcategory=topandinmiscellaneousmathematicalsymbolsbblock=cjk"
+    "unifiedideographsextensindicsyllabiccategory=consonantiscellaneou"
+    "ssymbolsandpictographsombiningdiacriticalmarksforsymbols_perl_pro"
+    "blematic_locale_foldeds_compatibilityideographssupplement=bottoma"
+    "ndrightvowelindependentverticalorientation=transformombiningdiacr"
+    "iticalmarkssupplementblock=supplementalmathematicaloperatorsattac"
+    "hedaboverightisunifiedcanadianaboriginalsyllabicsextendeda";
+/* mph_blob length: 8703 */
 
 struct mph_struct {
     U16 seed2;
@@ -167,7433 +168,7511 @@ struct mph_struct {
 };
 
 #define MPH_RSHIFT 8
-#define MPH_BUCKETS 7420
+#define MPH_BUCKETS 7498
 
-STATIC const U32 MPH_SEED1 = 0x5065726e;
+STATIC const U32 MPH_SEED1 = 0x5065726f;
 STATIC const U32 MPH_FNV32_PRIME = 0x01000193;
 
 /* The comments give the input key for the row it is in */
 STATIC const struct mph_struct mph_table[MPH_BUCKETS] = {
-  {     0,  6025,  6878,   9,  12, UNI_GEOMETRICSHAPES }   /* block=geometricshapes */,
-  {     0,  1702,  6142,   6,   5, UNI_ARABICSUP }   /* isarabicsup */,
-  {     0,  2726,  3061,   3,   5, UNI_XPOSIXDIGIT }   /* gc=digit */,
-  {     1,  7688,  4687,  23,   5, UNI_JG__MANICHAEANZAYIN }   /* joininggroup=manichaeanzayin */,
-  {     0,  3974,   602,  17,   3, -UNI_IDSB }   /* idsbinaryoperator=no */,
-  {     1,     2,  8150,   1,  24, UNI_DIACRITICALS }   /* combiningdiacriticalmarks */,
-  {     3,  3622,   129,  13,   3, UNI_LATINEXTF }   /* islatinextendedf */,
-  {     0,   464,   625,   2,   7, UNI_EXTPICT }   /* isextpict */,
-  {     0,   441,   779,   3,   4, UNI_OLCK }   /* olchiki */,
-  {     8,  1516,     0,   6,   0, UNI_KANA }   /* iskana */,
-  {     0,  6944,  2695,  23,   3, UNI_CCC__AR }   /* canonicalcombiningclass=ar */,
-  {     0,  6114,   457,   3,   4, UNI_PRTI }   /* sc=prti */,
-  {     1,   875,   934,   5,   6, -UNI_UIDEO }   /* uideo=false */,
-  {     1,  1383,   934,   4,   6, -UNI_IDST }   /* idst=false */,
-  {     0,  1879,  4827,   4,   5, UNI_INBAMUM }   /* blk=bamum */,
-  {     4,  6114,   686,   3,   4, UNI_SC__TAKR }   /* sc=takr */,
-  {     0,   275,  2728,   3,   6, UNI_GCB__XX }   /* gcb=other */,
-  {     1,  4122,   278,   5,   1, UNI_lower_values_index }   /* lower= */,
-  {     0,  5409,   588,  19,   5, UNI_TERM }   /* terminalpunctuation=true */,
-  {     1,  7208,     0,   9,   2, UNI_CASEDLETTER }   /* category=l& */,
-  {     1,  2496,  4174,   3,   4, UNI_JG__HETH }   /* jg=heth */,
-  {     0,  7201,  4598,  16,  16, UNI_PE }   /* generalcategory=closepunctuation */,
-  {     5,  1710,  1426,   3,   3, UNI_SORA }   /* issora */,
-  {     3,    46,  5021,   2,   6, UNI_SB__CL }   /* sb=close */,
-  {     0,   464,  1508,   2,   4, UNI_UGAR }   /* isugar */,
-  {     1,  6112,  2783,   5,   9, UNI_INSC__NONJOINER }   /* insc=nonjoiner */,
-  {     0,   464,  3396,   2,  15, UNI_SARB }   /* isoldsoutharabian */,
-  {     1,  2926,  4372,   3,  16, UNI_SMALLFORMS }   /* insmallformvariants */,
-  {    10,  6114,  3285,   3,   4, UNI_HEBR }   /* sc=hebr */,
-  {     1,  6112,  2412,   5,   8, UNI_INSC__AVAGRAHA }   /* insc=avagraha */,
-  {     0,   917,     0,   8,   0, UNI_BASS }   /* bassavah */,
-  {     0,  3474,  4857,   6,   8, UNI_TAMILSUP }   /* block=tamilsup */,
-  {     6,    54,     0,   2,   0, UNI_MC }   /* mc */,
-  {     0,   343,     0,   6,   0, UNI_CCC__11 }   /* ccc=11 */,
-  {     1,  1915,   355,  11,   3, UNI_GRBASE }   /* graphemebase=y */,
-  {     1,  1102,   681,   4,   5, UNI_RUNR }   /* scx=runic */,
-  {     3,  1796,   901,   7,   8, UNI_ARMN }   /* script=armenian */,
-  {     5,  3053,   601,  12,   2, UNI_ahex_values_index }   /* asciihexdigit= */,
-  {     1,  5481,   356,  21,   4, UNI_CWCF }   /* changeswhencasefolded=yes */,
-  {     9,  6011,  4442,  14,   9, UNI_ETHIOPICEXTB }   /* block=ethiopicextendedb */,
-  {     1,     2,     0,   1,   0, UNI_C }   /* c */,
-  {     2,  2726,  3514,   3,  13, UNI_ZL }   /* gc=lineseparator */,
-  {     2,   326,     0,   5,   0, UNI_VSSUP }   /* vssup */,
-  {     0,   464,  5397,   2,   3, UNI_PUA }   /* ispua */,
-  {     1,  5147,  2579,   7,  12, UNI_LOWSURROGATES }   /* block=lowsurrogates */,
-  {     0,   313,  4582,   2,   8, UNI_INBOPOMOFO }   /* inbopomofo */,
-  {     0,  7584,  1679,  18,   8, UNI_DT__FRA }   /* decompositiontype=fraction */,
-  {     2,  7208,  4137,   9,  15, UNI_PS }   /* category=openpunctuation */,
-  {     1,   555,  2195,   3,   4, UNI_AGE__6_DOT_2 }   /* age=6.2 */,
-  {     0,  2726,  3947,   3,  14, UNI_ZS }   /* gc=spaceseparator */,
-  {     1,   464,   256,   2,   2, UNI_CASEDLETTER }   /* islc */,
-  {     1,  6803,   588,  20,   2, UNI_CE }   /* compositionexclusion=t */,
-  {     0,   343,  6280,   4,   3, UNI_CCC__202 }   /* ccc=atb */,
-  {    11,  4450,  6104,   7,   8, UNI_INCUNEIFORM }   /* block=cuneiform */,
-  {     7,  4355,   120,  17,   4, UNI_LAO }   /* scriptextensions=laoo */,
-  {     2,  6944,  2138,  25,   2, UNI_CCC__DB }   /* canonicalcombiningclass=233 */,
-  {     0,   644,  3178,   5,  10, UNI_GCB__L }   /* hst=leadingjamo */,
-  {     1,  8182,  3203,  24,  10, UNI_INPC__OVERSTRUCK }   /* indicpositionalcategory=overstruck */,
-  {     1,  7740,   602,  11,   2, -UNI_IDEO }   /* ideographic=n */,
-  {     4,  7732,  7857,   7,  23, UNI_ENCLOSEDALPHANUMSUP }   /* enclosedalphanumericsupplement */,
-  {     0,    34,   867,   1,   8, UNI_INTIRHUTA }   /* intirhuta */,
-  {     0,  7020,     0,  24,   0, UNI_ARABICPFB }   /* arabicpresentationformsb */,
-  {     1,  3474,  3527,   6,  16, UNI_HALFANDFULLFORMS }   /* block=halfandfullforms */,
-  {     0,  3974,   588,   4,   5, UNI_IDSB }   /* idsb=true */,
-  {     1,  1440,   934,   2,   6, -UNI_SD }   /* sd=false */,
-  {     0,   823,   602,   4,   2, -UNI_DASH }   /* dash=n */,
-  {     1,  4999,     0,  10,   0, UNI_MANI }   /* manichaean */,
-  {     2,   464,  1027,   2,   6, UNI_YEZI }   /* isyezidi */,
-  {     3,  1867,   356,   5,   2, UNI_BIDIM }   /* bidim=y */,
-  {     1,  1796,  8599,   7,  18, UNI_CANS }   /* script=canadianaboriginal */,
-  {     3,  7208,  3654,   9,  11, UNI_MC }   /* category=spacingmark */,
-  {     6,  1102,   236,   4,   2, UNI_YI }   /* scx=yi */,
-  {     0,   311,     0,   5,   0, UNI_XPOSIXPRINT }   /* print */,
-  {     0,   959,   356,   8,   4, UNI_EXT }   /* extender=yes */,
-  {     1,  2496,  5015,   3,   4, UNI_JG__YUDH }   /* jg=yudh */,
-  {     0,   464,  5888,   2,   5, UNI__PERL_NCHAR }   /* isnchar */,
-  {     3,   296,  6199,   4,   5, UNI_NV__900000 }   /* nv=900000 */,
-  {     0,  1879,  4467,   4,  18, UNI_COPTICEPACTNUMBERS }   /* blk=copticepactnumbers */,
-  {     0,  2353,  5643,   3,  10, UNI_COUNTINGROD }   /* incountingrod */,
-  {    12,   302,   588,   2,   2, UNI_RI }   /* ri=t */,
-  {     0,   464,  4077,   2,  15, UNI_PD }   /* isdashpunctuation */,
-  {     2,  8533,  1262,  10,   3, UNI_SUPPUAB }   /* block=suppuab */,
-  {     1,  1796,  4551,   7,   7, UNI_SC__LINB }   /* script=linearb */,
-  {     1,  6114,   120,   3,   3, UNI_LAO }   /* sc=lao */,
-  {     5,  6114,   530,   3,   6, UNI_RJNG }   /* sc=rejang */,
-  {     1,  5748,  1262,   6,   3, UNI_SUPPUAB }   /* insuppuab */,
-  {     0,  1102,   337,   4,   4, UNI_CARI }   /* scx=cari */,
-  {     0,   895,   294,   5,   2, UNI_AGE__4 }   /* age=v40 */,
-  {     2,   426,  2285,   3,  12, UNI_AEGEANNUMBERS }   /* inaegeannumbers */,
-  {     2,  4901,   588,  13,   2, UNI_EMOD }   /* emojimodifier=t */,
-  {     8,   464,  3285,   2,   4, UNI_HEBR }   /* ishebr */,
-  {     2,  1879,  4062,   4,   8, UNI_VEDICEXT }   /* blk=vedicext */,
-  {     0,   464,  2290,   2,   6, UNI_N }   /* isnumber */,
-  {     1,  6379,  3261,  13,  12, UNI_JG__VERTICALTAIL }   /* joininggroup=verticaltail */,
-  {     3,  6114,  4962,   3,   4, UNI_SC__HAN }   /* sc=hani */,
-  {     0,    12,  1638,   1,   8, UNI_POSIXSPACE }   /* perlspace */,
-  {     1,  2454,   957,   8,   5, UNI_GEORGIANEXT }   /* isgeorgianext */,
-  {     0,  4533,     0,  18,   0, UNI_PI }   /* initialpunctuation */,
-  {     0,  1879,   997,   4,   6, UNI_INKAITHI }   /* blk=kaithi */,
-  {     3,  6039,   402,   7,   3, UNI_INMIAO }   /* block=miao */,
-  {     2,  1764,  1290,   3,   8, UNI_INNEWTAILUE }   /* innewtailue */,
-  {     1,  7132,  4081,  16,  11, UNI_SUPPUNCTUATION }   /* blk=supplementalpunctuation */,
-  {     1,   464,   224,   2,   4, UNI_WCHO }   /* iswcho */,
-  {     1,  1065,  1303,   5,   3, UNI_NV__1_SLASH_320 }   /* nv=1/320 */,
-  {    12,   313,  1965,   2,  10, UNI_YIRADICALS }   /* inyiradicals */,
-  {     0,  1102,  1280,   4,   9, UNI_NBAT }   /* scx=nabataean */,
-  {     1,  1879,  1248,   4,   7, UNI_INSIDDHAM }   /* blk=siddham */,
-  {     1,   188,     0,   4,   0, UNI_SGNW }   /* sgnw */,
-  {    17,   464,  1033,   2,   4, UNI_JAMO }   /* isjamo */,
-  {     2,   464,   593,   2,   7, UNI_DSRT }   /* isdeseret */,
-  {     0,  6114,  2220,   3,   4, UNI_HUNG }   /* sc=hung */,
-  {     3,  1991,    16,  12,   1, UNI_JT__D }   /* joiningtype=d */,
-  {     1,  4291,  2890,  10,   2, UNI_GCB__T }   /* linebreak=jt */,
-  {     2,   666,     0,   4,   0, UNI_LIMB }   /* limb */,
-  {     1,  2382,     0,   4,   0, UNI__PERL_SURROGATE }   /* iscs */,
-  {     1,  3474,  1326,   6,   9, UNI_INOLDTURKIC }   /* block=oldturkic */,
-  {     0,  6039,  8212,   7,  32, UNI_MISCMATHSYMBOLSB }   /* block=miscellaneousmathematicalsymbolsb */,
-  {     2,  7431,  1070,  27,   2, UNI_CCC__31 }   /* canonicalcombiningclass=ccc31 */,
-  {     0,  4996,  5376,  14,   6, UNI_JG__MANICHAEANTHAMEDH }   /* jg=manichaeanthamedh */,
-  {     3,  3164,   356,  14,   2, UNI_GREXT }   /* graphemeextend=y */,
-  {     2,  1796,   429,   7,   4, UNI_MRO }   /* script=mroo */,
-  {     2,  4901,   602,  13,   2, -UNI_EMOD }   /* emojimodifier=n */,
-  {     3,  5865,   602,  21,   2, -UNI_LOE }   /* logicalorderexception=n */,
-  {     1,  3351,  2127,  13,   2, UNI_NV__13 }   /* numericvalue=13 */,
-  {     1,   464,  2322,   2,  10, UNI_CN }   /* isunassigned */,
-  {     1,   313,  2652,   2,  13, UNI_VERTICALFORMS }   /* inverticalforms */,
-  {     4,  4500,   933,   8,   7, -UNI_XPOSIXUPPER }   /* uppercase=false */,
-  {    11,  1856,   602,   5,   2, -UNI_BIDIC }   /* bidic=n */,
-  {     1,    27,     0,   4,   0, UNI_AHOM }   /* ahom */,
-  {     1,   832,   356,   5,   2, UNI_STERM }   /* sterm=y */,
-  {     3,  3622,    74,   9,   2, UNI_LATINEXTC }   /* islatinextc */,
-  {     2,  2153,  2617,   4,   8, UNI_NV__2_SLASH_5 }   /* nv=4.000e-01 */,
-  {     0,  6114,  4107,   3,   6, UNI_SC__HANG }   /* sc=hangul */,
-  {     0,  1102,  1311,   4,   4, UNI_ITAL }   /* scx=ital */,
-  {     0,    34,  7790,   1,  12, UNI_IDEO }   /* isideographic */,
-  {     2,  7201,  4485,  16,  15, UNI_TITLE }   /* generalcategory=titlecaseletter */,
-  {     2,  2890,  2257,  11,   3, UNI_JT__T }   /* jt=transparent */,
-  {     1,   313,  1470,   2,   8, UNI_INBUGINESE }   /* inbuginese */,
-  {     0,  7473,   602,  10,   2, -UNI_XPOSIXALPHA }   /* alphabetic=n */,
-  {     0,  1704,  3721,   5,   5, UNI_ARABICMATH }   /* arabicmath */,
-  {     1,  1796,   909,   7,   4, UNI_BALI }   /* script=bali */,
-  {     0,   916,   355,   4,   3, UNI_EBASE }   /* ebase=y */,
-  {     4,  6570,  5239,   5,  15, UNI_LOE }   /* inpc=visualorderleft */,
-  {     0,  7208,   259,   9,   2, UNI_CF }   /* category=cf */,
-  {     0,  3809,     0,  14,   0, UNI_NV__9 }   /* numericvalue=9 */,
-  {     4,  6114,   360,   3,   6, UNI_SC__CAKM }   /* sc=chakma */,
-  {     6,  2802,  5769,   3,  18, UNI_ENCLOSEDALPHANUMSUP }   /* isenclosedalphanumsup */,
-  {     1,  4500,     0,   9,   0, UNI_XPOSIXUPPER }   /* uppercase */,
-  {     4,  1796,   749,   7,   4, UNI_MARC }   /* script=marc */,
-  {     0,    12,  1345,   1,   3, UNI_PALM }   /* palm */,
-  {     2,   508,   602,   5,   2, UNI_DT__CAN }   /* nfdqc=n */,
-  {     0,   696,  6635,   5,   8, UNI_LO }   /* isotherletter */,
-  {     2,  7208,  1582,   9,   6, UNI_L }   /* category=letter */,
-  {     2,  1702,  3721,   7,   5, UNI_ARABICMATH }   /* isarabicmath */,
-  {     1,  2678,    87,   3,   2, UNI_BC__ON }   /* bc=on */,
-  {     1,   508,   356,   5,   4, UNI_NFDQC__Y }   /* nfdqc=yes */,
-  {     0,     5,  7175,   1,  10, UNI_ENCLOSEDCJK }   /* enclosedcjk */,
-  {     2,  4355,  4857,  17,   5, UNI_TAML }   /* scriptextensions=tamil */,
-  {     6,  3474,  3396,   6,  15, UNI_SARB }   /* block=oldsoutharabian */,
-  {     2,   313,  1529,   2,  10, UNI_INKHAROSHTHI }   /* inkharoshthi */,
-  {     0,  2973,   602,   5,   2, -UNI_EPRES }   /* epres=n */,
-  {     1,  5087,  2729,  10,   5, UNI_WB__XX }   /* wordbreak=other */,
-  {     3,   343,  1302,   5,   2, UNI_CCC__103 }   /* ccc=103 */,
-  {     2,  1856,   588,  11,   2, UNI_BIDIC }   /* bidicontrol=t */,
-  {     6,  5949,     0,   6,   0, UNI_YIJING }   /* yijing */,
-  {     0,  2365,  4442,   8,   9, UNI_ETHIOPICEXTB }   /* ethiopicextendedb */,
-  {     1,  2474,  3324,   3,  14, UNI_MISCPICTOGRAPHS }   /* ismiscpictographs */,
-  {     1,  1508,     0,   4,   0, UNI_UGAR }   /* ugar */,
-  {     5,   464,  7290,   2,  27, UNI_OCR }   /* isopticalcharacterrecognition */,
-  {     1,  4872,  3582,   9,  11, UNI_KANGXI }   /* block=kangxiradicals */,
-  {     0,  6114,   208,   3,   4, UNI_TFNG }   /* sc=tfng */,
-  {     2,   464,  3594,   2,   2, UNI_NL }   /* isnl */,
-  {     0,  4793,     0,  18,   0, UNI_RUMI }   /* ruminumeralsymbols */,
-  {     1,   464,  3236,   2,  13, UNI_ME }   /* isenclosingmark */,
-  {     0,  7828,   588,  16,   2, UNI_UIDEO }   /* unifiedideograph=t */,
-  {     2,  1102,   502,   4,   4, UNI_LYDI }   /* scx=lydi */,
-  {     4,  4291,  4581,  10,   2, UNI_LB__BB }   /* linebreak=bb */,
-  {     2,  8244,  6509,   9,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* block=cjkcompatideographs */,
-  {     1,  3061,     0,   5,   0, UNI_XPOSIXDIGIT }   /* digit */,
-  {     1,   940,  5644,   2,   9, UNI_COUNTINGROD }   /* countingrod */,
-  {     1,  1796,  1807,   7,   4, UNI_SORA }   /* script=sora */,
-  {     4,  3351,  6199,  14,   5, UNI_NV__200000 }   /* numericvalue=200000 */,
-  {     1,  2926,  6623,   3,  21, UNI_MODIFIERLETTERS }   /* inspacingmodifierletters */,
-  {     2,  6379,  2846,  13,  11, UNI_JG__YEHWITHTAIL }   /* joininggroup=yehwithtail */,
-  {     0,  2181,  6199,   4,   5, UNI_NV__500000 }   /* nv=500000 */,
-  {     0,  1879,  7020,   4,  24, UNI_ARABICPFB }   /* blk=arabicpresentationformsb */,
-  {     0,   302,   934,   2,   2, -UNI_RI }   /* ri=f */,
-  {     6,  4355,   449,  17,   4, UNI_PHLI }   /* scriptextensions=phli */,
-  {     1,  1766,   602,   5,   3, UNI_COMPEX }   /* nfcqc=no */,
-  {     0,  2712,   588,   5,   2, UNI_EMOJI }   /* emoji=t */,
-  {     0,   112,     0,   4,   0, UNI_KITS }   /* kits */,
-  {     1,  4355,  1657,  17,  11, UNI_CPMN }   /* scriptextensions=cyprominoan */,
-  {     0,  1597,   934,  10,   6, -UNI_SD }   /* softdotted=false */,
-  {     3,  4355,  1117,  17,   4, UNI_TAGB }   /* scriptextensions=tagb */,
-  {     1,  6379,  2835,  13,  11, UNI_JG__STRAIGHTWAW }   /* joininggroup=straightwaw */,
-  {     1,  2973,   588,   5,   2, UNI_EPRES }   /* epres=t */,
-  {     1,  1102,   991,   4,   4, UNI_HATR }   /* scx=hatr */,
-  {     0,   464,  6416,   2,  23, UNI_SHORTHANDFORMATCONTROLS }   /* isshorthandformatcontrols */,
-  {     1,  2153,   523,   4,   1, UNI_NV__47 }   /* nv=47 */,
-  {     3,   612,  2680,   2,   3, UNI_RI }   /* lb=ri */,
-  {     3,  5523,   278,  21,   1, UNI_cwl_values_index }   /* changeswhenlowercased= */,
-  {     2,  1879,  5806,   4,  19, UNI_MONGOLIANSUP }   /* blk=mongoliansupplement */,
-  {     0,  2961,  2961,  12,   7, UNI_NT__NU }   /* numerictype=numeric */,
-  {     3,  1796,    39,   7,   4, UNI_BATK }   /* script=batk */,
-  {     0,  1879,  1015,   4,   6, UNI_INTELUGU }   /* blk=telugu */,
-  {    11,  5136,  7761,   5,  30, UNI_MATHALPHANUM }   /* blk=mathematicalalphanumericsymbols */,
-  {     4,    14,  3719,   1,  15, UNI_MISCMATHSYMBOLSA }   /* miscmathsymbolsa */,
-  {     0,    34,  1898,   1,   7, UNI_S }   /* issymbol */,
-  {     4,  1879,  2297,   4,  13, UNI_BLOCKELEMENTS }   /* blk=blockelements */,
-  {     0,   464,  4582,   2,   8, UNI_BOPO }   /* isbopomofo */,
-  {     0,  7431,   347,  27,   2, UNI_CCC__11 }   /* canonicalcombiningclass=ccc11 */,
-  {     1,  1102,  3991,   4,   7, UNI_BRAI }   /* scx=braille */,
-  {     0,  1702,  2285,   3,  12, UNI_AEGEANNUMBERS }   /* isaegeannumbers */,
-  {     0,   600,  3571,   3,   6, UNI_DT__COM }   /* dt=compat */,
-  {     1,  3722,   588,   4,   5, UNI_MATH }   /* math=true */,
-  {     0,  6103,     0,   9,   0, UNI_XSUX }   /* cuneiform */,
-  {     3,  6114,   868,   3,   7, UNI_SC__TIRH }   /* sc=tirhuta */,
-  {     0,  8276,  4050,  22,  12, UNI_INSC__NUMBERJOINER }   /* indicsyllabiccategory=numberjoiner */,
-  {     3,  1021,     0,   6,   0, UNI_WCHO }   /* wancho */,
-  {     1,  6379,  5015,  13,   6, UNI_JG__YUDHHE }   /* joininggroup=yudhhe */,
-  {     1,  3474,   637,   6,   7, UNI_INHANUNOO }   /* block=hanunoo */,
-  {     1,   464,  7377,   2,   8, UNI_KANA }   /* iskatakana */,
-  {     1,  1390,     0,  10,   0, UNI_ASCII }   /* basiclatin */,
-  {     5,  1796,  1792,   7,   4, UNI_SC__MONG }   /* script=mong */,
-  {     2,  4322,   766,  14,   3, UNI_NV__3_SLASH_64 }   /* numericvalue=3/64 */,
-  {     1,   464,  2986,   2,   2, UNI_PS }   /* isps */,
-  {     2,  6114,  1807,   3,   4, UNI_SORA }   /* sc=sora */,
-  {     4,  2726,   469,   3,   2, UNI_SO }   /* gc=so */,
-  {     0,  7018,  8110,   8,  29, UNI_ARABICMATH }   /* inarabicmathematicalalphabeticsymbols */,
-  {     0,  1102,   574,   4,   7, UNI_AVST }   /* scx=avestan */,
-  {     0,  6833,     0,  14,   0, UNI_BYZANTINEMUSIC }   /* byzantinemusic */,
-  {     1,  2496,   481,   3,   3, UNI_JG__BEH }   /* jg=beh */,
-  {     1,  3474,   120,   6,   3, UNI_INLAO }   /* block=lao */,
-  {     4,    24,   934,   3,   6, -UNI_XPOSIXXDIGIT }   /* hex=false */,
-  {     0,  4355,    47,  17,   4, UNI_BUHD }   /* scriptextensions=buhd */,
-  {     1,  5806,     0,  19,   0, UNI_MONGOLIANSUP }   /* mongoliansupplement */,
-  {     0,   742,     0,   4,   0, UNI_MAND }   /* mand */,
-  {     1,  3351,  1070,  13,   2, UNI_NV__31 }   /* numericvalue=31 */,
-  {     1,  1383,   356,   4,   2, UNI_IDST }   /* idst=y */,
-  {     2,  5607,  6814,  15,   9, UNI_IDENTIFIERTYPE__EXCLUSION }   /* identifiertype=exclusion */,
-  {     2,   464,  4467,   2,  18, UNI_COPTICEPACTNUMBERS }   /* iscopticepactnumbers */,
-  {     3,  5949,     0,  21,   0, UNI_YIJING }   /* yijinghexagramsymbols */,
-  {     0,  5523,   356,  21,   2, UNI_CWL }   /* changeswhenlowercased=y */,
-  {     4,   313,  1845,   2,  11, UNI_YISYLLABLES }   /* inyisyllables */,
-  {     1,   313,   847,   2,   7, UNI_INTAITHAM }   /* intaitham */,
-  {     1,  1879,  3637,   4,   4, UNI_INLISU }   /* blk=lisu */,
-  {     2,  1597,   934,  10,   2, -UNI_SD }   /* softdotted=f */,
-  {     7,   464,   140,   2,   4, UNI_NARB }   /* isnarb */,
-  {     1,  4726,  2080,  14,   8, UNI_NV__13_SLASH_2 }   /* numericvalue=6.500e+00 */,
-  {     5,  7431,   351,  27,   2, UNI_CCC__91 }   /* canonicalcombiningclass=ccc91 */,
-  {     0,   378,   934,   5,   6, -UNI_GREXT }   /* grext=false */,
-  {     1,  4322,   523,  14,   1, UNI_NV__37 }   /* numericvalue=37 */,
-  {     0,  4776,   933,  16,   3, -UNI__PERL_PATWS }   /* patternwhitespace=f */,
-  {     0,   464,  1241,   2,   7, UNI_PHAG }   /* isphagspa */,
-  {     4,  1967,   602,   7,   3, -UNI_RADICAL }   /* radical=no */,
-  {     1,  7132,  5358,   5,  11, UNI_SMALLKANAEXT }   /* blk=smallkanaext */,
-  {     1,  4418,     0,   6,   0, UNI_ZYYY }   /* common */,
-  {     0,  3474,  3637,   6,  14, UNI_LISUSUP }   /* block=lisusupplement */,
-  {     0,   524,   602,   6,   3, -UNI_PATSYN }   /* patsyn=no */,
-  {     4,  6114,  2217,   3,  12, UNI_HUNG }   /* sc=oldhungarian */,
-  {     0,   520,  2080,   4,   8, UNI_NV__15_SLASH_2 }   /* nv=7.500e+00 */,
-  {     7,   313,  5661,   2,  19, UNI_MERO }   /* inmeroitichieroglyphs */,
-  {     2,  2974,  2098,  11,   2, UNI_IN__6_DOT_3 }   /* presentin=v63 */,
-  {     0,  1879,  2428,   4,  13, UNI_IPAEXT }   /* blk=ipaextensions */,
-  {     1,  4291,  4137,  10,  15, UNI_LB__OP }   /* linebreak=openpunctuation */,
-  {     1,  4355,  4882,  17,   4, UNI_EGYP }   /* scriptextensions=egyp */,
-  {     0,  2232,  1145,   3,   3, UNI_THAI }   /* isthai */,
-  {     0,  1102,   469,   4,   4, UNI_SOGO }   /* scx=sogo */,
-  {     0,    15,    36,   1,   3, UNI_AVST }   /* avst */,
-  {     0,  7880,  1491,   5,   4, UNI_CJKEXTA }   /* iscjkexta */,
-  {     0,  3058,   588,   8,   2, UNI_XPOSIXXDIGIT }   /* hexdigit=t */,
-  {     0,  2712,   356,  14,   4, UNI_ECOMP }   /* emojicomponent=yes */,
-  {     1,  4081,     0,   5,   0, UNI_P }   /* punct */,
-  {     3,  1317,     0,   9,   0, UNI_PERM }   /* oldpermic */,
-  {     0,  3474,  1887,   6,   7, UNI_UCASEXT }   /* block=ucasext */,
-  {     1,  6379,  4152,  13,  14, UNI_JG__HAMZAONHEHGOAL }   /* joininggroup=hamzaonhehgoal */,
-  {     0,  5147,  4629,  10,  12, UNI_LATIN1 }   /* block=latin1supplement */,
-  {     0,   464,  4656,   2,   9, UNI_TANGUTSUP }   /* istangutsup */,
-  {     0,  5099,   306,   6,   5, UNI__PERL_PATWS }   /* _perl_patws */,
-  {     3,  1102,   457,   4,   4, UNI_PRTI }   /* scx=prti */,
-  {    12,  7527,   703,   3,   2, UNI_EMOD }   /* lb=em */,
-  {     2,  3474,  2428,   6,   6, UNI_IPAEXT }   /* block=ipaext */,
-  {     8,  1102,  1508,   4,   8, UNI_UGAR }   /* scx=ugaritic */,
-  {     4,  1382,   356,   4,   2, UNI_XIDS }   /* xids=y */,
-  {     5,  1548,   409,   3,   2, UNI_NT__DI }   /* nt=di */,
-  {     0,  1395,     0,   5,   0, UNI_LATN }   /* latin */,
-  {     1,  7688,  4198,  23,   4, UNI_JG__MANICHAEANTETH }   /* joininggroup=manichaeanteth */,
-  {    16,  2181,  1072,   4,   3, UNI_NV__5_SLASH_12 }   /* nv=5/12 */,
-  {     0,  1796,  1614,   7,   4, UNI_WARA }   /* script=wara */,
-  {     1,  6379,  4194,  13,   4, UNI_JG__QAPH }   /* joininggroup=qaph */,
-  {     0,  2712,   934,   5,   2, -UNI_EMOJI }   /* emoji=f */,
-  {     6,    78,  3500,   2,  14, UNI_CYPRIOTSYLLABARY }   /* cypriotsyllabary */,
-  {     3,  1382,  6573,   3,   3, UNI_XIDC }   /* xidc=t */,
-  {     9,  1102,  3885,   4,  17, UNI_AGHB }   /* scx=caucasianalbanian */,
-  {     0,  4872,  2373,   8,   9, UNI_KATAKANAEXT }   /* block=katakanaext */,
-  {     0,  6039,  3324,   7,  14, UNI_MISCPICTOGRAPHS }   /* block=miscpictographs */,
-  {     8,  3474,  6833,   6,  23, UNI_BYZANTINEMUSIC }   /* block=byzantinemusicalsymbols */,
-  {     0,   464,  2740,   2,   4, UNI_COPT }   /* iscopt */,
-  {     0,  2496,  4962,   3,  16, UNI_JG__HANIFIROHINGYAPA }   /* jg=hanifirohingyapa */,
-  {     0,   940,  1104,   5,   2, UNI_compex_values_index }   /* compex= */,
-  {     4,  1879,   735,   4,   7, UNI_INLINEARA }   /* blk=lineara */,
-  {     0,   612,  8010,   2,   3, UNI_LB__CJ }   /* lb=cj */,
-  {     2,  6011,  7175,   7,  10, UNI_ENCLOSEDCJK }   /* block=enclosedcjk */,
-  {     1,  5888,   602,   5,   2, -UNI__PERL_NCHAR }   /* nchar=n */,
-  {     8,     2,   587,   1,   6, UNI_CE }   /* ce=true */,
-  {     1,  7208,  2322,   9,  10, UNI_CN }   /* category=unassigned */,
-  {     1,  7201,  4006,  16,  14, UNI_SC }   /* generalcategory=currencysymbol */,
-  {     2,  4092,  6573,   8,   3, UNI_DIA }   /* diacritic=t */,
-  {     0,  1440,   588,   2,   2, UNI_SD }   /* sd=t */,
-  {     0,  2463,   602,  11,   2, -UNI_JOINC }   /* joincontrol=n */,
-  {     2,  1796,   473,   7,   4, UNI_TNSA }   /* script=tnsa */,
-  {     0,  1796,   991,   7,   4, UNI_HATR }   /* script=hatr */,
-  {     0,   469,     8,   2,   2, UNI_SOGO }   /* sogo */,
-  {     1,  4355,  4998,  16,  11, UNI_MANI }   /* scriptextensions=manichaean */,
-  {     3,   464,   252,   2,   5, UNI_XPOSIXCNTRL }   /* iscntrl */,
-  {     2,  1102,   671,   4,   5, UNI_OGAM }   /* scx=ogham */,
-  {     2,  1059,   602,   6,   2, UNI_NFKDQC__N }   /* nfkdqc=n */,
-  {     8,  1102,  1807,   4,   4, UNI_SORA }   /* scx=sora */,
-  {     0,  4355,   983,  17,   4, UNI_HIRA }   /* scriptextensions=hira */,
-  {     0,  1410,   351,   7,   2, UNI_CCC__91 }   /* ccc=ccc91 */,
-  {     1,   296,  1304,   3,   2, UNI_NV__20 }   /* nv=20 */,
-  {     0,  7688,  5382,  23,   7, UNI_JG__MANICHAEANHUNDRED }   /* joininggroup=manichaeanhundred */,
-  {     0,  5136,  4442,  11,   9, UNI_MYANMAREXTB }   /* blk=myanmarextendedb */,
-  {     1,  1879,  4882,   4,  19, UNI_INEGYPTIANHIEROGLYPHS }   /* blk=egyptianhieroglyphs */,
-  {     1,  2253,   523,  10,   1, UNI_IN__7 }   /* presentin=7 */,
-  {     0,   895,  2090,   5,   2, UNI_AGE__6_DOT_2 }   /* age=v62 */,
+  {    12,  2732,  4987,   5,   9, UNI_ALCHEMICAL }   /* blk=alchemical */,
+  {     1,     2,  8214,   1,  32, UNI_DIACRITICALSEXT }   /* combiningdiacriticalmarksextended */,
+  {     2,   517,  1072,   4,   3, UNI_NV__7_SLASH_12 }   /* nv=7/12 */,
+  {     0,  1823,  1385,   7,   6, UNI_SC__THAA }   /* script=thaana */,
+  {     5,   895,   569,   5,   2, UNI_AGE__5_DOT_2 }   /* age=v52 */,
+  {     0,  1823,   137,   8,   3, UNI_SC__MYMR }   /* script=mymr */,
+  {     1,   292,  2655,   3,  10, UNI_NV___MINUS_1_SLASH_2 }   /* nv=-5.000e-01 */,
+  {     0,  5658,  5940,  18,   9, UNI_IDENTIFIERTYPE__NOTCHARACTER }   /* identifiertype=notcharacter */,
+  {     0,  2324,   991,   6,   6, UNI_INHATRAN }   /* block=hatran */,
+  {     3,   339,   582,   5,   2, UNI_CCC__122 }   /* ccc=122 */,
+  {     1,  1397,   585,   4,   5, UNI_IDST }   /* idst=true */,
+  {     0,  5937,   585,  21,   5, UNI__PERL_NCHAR }   /* noncharactercodepoint=true */,
+  {     3,   461,   208,   2,   4, UNI_TGLG }   /* istglg */,
+  {     0,  3633,  5635,  13,   3, UNI_LATINEXTG }   /* inlatinextendedg */,
+  {     5,  1396,  6621,   3,   3, UNI_XIDC }   /* xidc=t */,
+  {     0,  2766,  2483,   3,  11, UNI_CASEDLETTER }   /* gc=casedletter */,
+  {     5,  4002,     0,  14,   0, UNI_SK }   /* modifiersymbol */,
+  {     1,  4043,   599,   4,   2, -UNI_IDSB }   /* idsb=n */,
+  {     0,  6165,  2009,   3,   6, UNI_SC__SYRC }   /* sc=syriac */,
+  {     2,  4970,   933,  16,   7, -UNI_EBASE }   /* emojimodifierbase=false */,
+  {     3,  1492,  6945,   5,  12, UNI_GEOMETRICSHAPES }   /* ingeometricshapes */,
+  {     0,  2324,  1376,   6,   9, UNI_INSAMARITAN }   /* block=samaritan */,
+  {     1,   339,  2735,   3,   3, UNI_CCC__AR }   /* ccc=ar */,
+  {     3,  8601,  4441,   7,  16, UNI_SMALLFORMS }   /* block=smallformvariants */,
+  {     1,  7274,  3554,   9,  13, UNI_ZL }   /* category=lineseparator */,
+  {     0,   339,   288,   5,   2, UNI_CCC__130 }   /* ccc=130 */,
+  {     0,   461,   248,   2,   5, UNI_XPOSIXCNTRL }   /* iscntrl */,
+  {     0,  1823,   369,   7,   6, UNI_GOTH }   /* script=gothic */,
+  {     0,    10,  2631,   1,  12, UNI_MAYANNUMERALS }   /* mayannumerals */,
+  {     6,   309,  3954,   2,  17, UNI_INCAUCASIANALBANIAN }   /* incaucasianalbanian */,
+  {     0,  1396,   934,   8,   6, -UNI_XIDS }   /* xidstart=false */,
+  {     6,  1396,   341,   3,   2, UNI_xidc_values_index }   /* xidc= */,
+  {     0,  1102,   430,   4,   4, UNI_NKO }   /* scx=nkoo */,
+  {     5,   339,   295,   4,   1, UNI_CCC__9 }   /* ccc=9 */,
+  {     0,  1671,     0,   7,   0, UNI_CJKEXTD }   /* cjkextd */,
+  {     0,   735,  2538,   2,   2, UNI_EA__A }   /* ea=a */,
+  {     0,   461,  3026,   2,   2, UNI_PS }   /* isps */,
+  {     1,  2324,  5958,   6,  21, UNI_SINHALAARCHAICNUMBERS }   /* block=sinhalaarchaicnumbers */,
+  {     2,  1823,   790,   7,   4, UNI_SC__KALI }   /* script=kali */,
+  {     0,  7495,   388,  27,   2, UNI_CCC__26 }   /* canonicalcombiningclass=ccc26 */,
+  {    10,  3633,  4659,   7,   9, UNI_LATINEXTC }   /* inlatinextendedc */,
+  {     1,  4896,     0,   8,   0, UNI_BAMUMSUP }   /* bamumsup */,
+  {     4,   172,     0,   4,   0, UNI_RJNG }   /* rjng */,
+  {     1,  1397,   934,   7,   2, -UNI_IDS }   /* idstart=f */,
+  {     1,    11,  2312,   1,  12, UNI_AEGEANNUMBERS }   /* aegeannumbers */,
+  {     1,  6163,  6661,  14,  10, UNI_INSC__CONSONANTHEADLETTER }   /* insc=consonantheadletter */,
+  {     1,   406,   599,   2,   3, -UNI_DI }   /* di=no */,
+  {     0,   257,   934,   4,   6, -UNI_CWCM }   /* cwcm=false */,
+  {     8,   292,  2090,   3,   9, UNI_NV__1_SLASH_8 }   /* nv=1.250e-01 */,
+  {     1,  1409,  4698,   4,  12, UNI_LATIN1 }   /* latin1supplement */,
+  {     0,  4360,  1479,  10,   5, UNI_LB__SP }   /* linebreak=space */,
+  {     0,  1223,     0,   4,   0, UNI_KANA }   /* kana */,
+  {     1,  4360,  2043,  10,   2, UNI_GCB__V }   /* linebreak=jv */,
+  {     2,   216,   216,   2,   2, UNI_TOTO }   /* toto */,
+  {     0,  1494,  5863,   5,   6, UNI_GEORGIANSUP }   /* georgiansup */,
+  {     1,    16,  2773,   1,  13, UNI_INGREEK }   /* greekandcoptic */,
+  {     3,  1667,  1914,   4,   4, UNI_UCAS }   /* blk=ucas */,
+  {     1,  1667,  5778,   4,  21, UNI_ININSCRIPTIONALPARTHIAN }   /* blk=inscriptionalparthian */,
+  {     0,  2256,     0,  12,   0, UNI_PHAISTOS }   /* phaistosdisc */,
+  {     0,  1102,  4271,   4,  17, UNI_KITS }   /* scx=khitansmallscript */,
+  {     0,  6165,  1322,   3,   9, UNI_ITAL }   /* sc=olditalic */,
+  {     0,   940,   934,   6,   6, -UNI_COMPEX }   /* compex=false */,
+  {     0,  6450,   306,  14,   2, UNI_SB__SP }   /* sentencebreak=sp */,
+  {     0,  1906,  1037,   8,   4, UNI_KANAEXTB }   /* blk=kanaextb */,
+  {     2,  1667,  5712,   4,  19, UNI_MERO }   /* blk=meroitichieroglyphs */,
+  {     0,  7274,  5235,   9,  20, UNI_PC }   /* category=connectorpunctuation */,
+  {     0,  1404,  1409,   5,   5, UNI_ASCII }   /* basiclatin */,
+  {     3,  2232,  1314,   4,   3, UNI_NV__8000 }   /* nv=8000 */,
+  {     2,  5939,   599,   5,   2, -UNI__PERL_NCHAR }   /* nchar=n */,
+  {     0,  7495,   346,  27,   2, UNI_CCC__84 }   /* canonicalcombiningclass=ccc84 */,
+  {     0,  4424,  1978,  17,   4, UNI_SOGD }   /* scriptextensions=sogd */,
+  {     1,  1667,   967,   4,   8, UNI_INGUJARATI }   /* blk=gujarati */,
+  {     0,  4424,   406,  17,   4, UNI_DIAK }   /* scriptextensions=diak */,
+  {     0,   461,  4845,   2,  17, UNI__PERL_PATWS }   /* ispatternwhitespace */,
+  {     0,  4424,  1331,  17,   9, UNI_PERM }   /* scriptextensions=oldpermic */,
+  {     0,   309,   499,   2,   6, UNI_INLYDIAN }   /* inlydian */,
+  {     1,  2503,   599,   5,   2, -UNI_JOINC }   /* joinc=n */,
+  {     1,  2324,  7086,   6,  24, UNI_ARABICPFB }   /* block=arabicpresentationformsb */,
+  {     0,  2324,   746,   6,   7, UNI_INMARCHEN }   /* block=marchen */,
+  {     0,  4191,   585,   5,   2, UNI_XPOSIXLOWER }   /* lower=t */,
+  {     3,  2208,     0,  12,   0, UNI_NV__7_SLASH_12 }   /* nv=5.833e-01 */,
+  {     0,   309,  6487,   2,  23, UNI_ZNAMENNYMUSIC }   /* inznamennymusicalnotation */,
+  {     2,  6165,   779,   3,   7, UNI_OSMA }   /* sc=osmanya */,
+  {     4,  1391,  3191,   2,   3, UNI_WB__LE }   /* wb=le */,
+  {     0,  1667,  4725,   4,  16, UNI_TANGUTSUP }   /* blk=tangutsupplement */,
+  {     0,   832,   353,   5,   2, UNI_STERM }   /* sterm=y */,
+  {     5,  1102,  1829,   3,   5, UNI_MLYM }   /* scx=mlym */,
+  {     3,  1667,  3421,   4,  15, UNI_NARB }   /* blk=oldnortharabian */,
+  {     1,  1726,  6193,   6,  12, UNI_ARABICSUP }   /* isarabicsupplement */,
+  {     0,  1667,   430,   4,   3, UNI_INNKO }   /* blk=nko */,
+  {     1,  3984,   353,  17,   4, UNI_EPRES }   /* emojipresentation=yes */,
+  {    19,  6163,  1985,   5,   7, UNI_INSC__VISARGA }   /* insc=visarga */,
+  {     1,   309,  8660,   2,  42, UNI_UCASEXT }   /* inunifiedcanadianaboriginalsyllabicsextended */,
+  {     2,   521,  8556,   5,   3, UNI_PATSYN }   /* patsyn=t */,
+  {     0,   461,   168,   2,   4, UNI_COPT }   /* isqaac */,
+  {     1,  1582,     0,  10,   0, UNI_PHNX }   /* phoenician */,
+  {     6,  2432,  4511,   9,   9, UNI_MYANMAREXTB }   /* inmyanmarextendedb */,
+  {     3,  4424,   216,  17,   4, UNI_TOTO }   /* scriptextensions=toto */,
+  {     2,  2324,   861,   6,   7, UNI_INTIBETAN }   /* block=tibetan */,
+  {     2,     8,     0,   3,   0, UNI_PCM }   /* pcm */,
+  {     4,  7134,  1669,  25,   2, UNI_pcm_values_index }   /* prependedconcatenationmark= */,
+  {     0,  1823,  4620,   7,   7, UNI_SC__LINB }   /* script=linearb */,
+  {     0,  1272,  1037,   5,   4, UNI_CJKEXTB }   /* iscjkextb */,
+  {     2,  4424,   493,  17,   4, UNI_KHOJ }   /* scriptextensions=khoj */,
+  {     1,  5205,  1553,   5,   9, UNI_MISCARROWS }   /* blk=miscarrows */,
+  {     1,  2324,  6228,   8,   8, UNI_CJKSYMBOLS }   /* block=cjksymbols */,
+  {     1,  3677,   589,  13,   3, UNI_LATINEXTE }   /* islatinextendede */,
+  {     1,  7537,   934,  10,   6, -UNI_XPOSIXALPHA }   /* alphabetic=false */,
+  {     3,   380,     0,   6,   0, UNI_HYPHEN }   /* hyphen */,
+  {     2,   375,   585,   5,   5, UNI_GREXT }   /* grext=true */,
+  {     2,   461,  4620,   2,   7, UNI_LINB }   /* islinearb */,
+  {     0,  4360,   209,  10,   2, UNI_LB__GL }   /* linebreak=gl */,
+  {     1,   232,     0,   2,   0, UNI_YI }   /* yi */,
+  {     1,  5595,   934,  21,   6, -UNI_CWT }   /* changeswhentitlecased=false */,
+  {     2,  3502,  7241,   5,  26, UNI_ENCLOSEDCJK }   /* blk=enclosedcjklettersandmonths */,
+  {     9,  7274,     8,   9,   1, UNI_P }   /* category=p */,
+  {     0,   298,   599,   2,   2, -UNI_RI }   /* ri=n */,
+  {     0,  1994,     0,   7,   0, UNI_RADICAL }   /* radical */,
+  {     0,  2324,   847,   6,   7, UNI_INTAITHAM }   /* block=taitham */,
+  {     0,  4941,   324,  10,   3, UNI_KANASUP }   /* block=kanasup */,
+  {     1,  6165,   658,   3,   4, UNI_SC__DOGR }   /* sc=dogr */,
+  {     9,  2324,  1834,   6,  11, UNI_INSORASOMPENG }   /* block=sorasompeng */,
+  {     4,    21,  2931,   2,   3, UNI_EXT }   /* ext=t */,
+  {     2,  4845,   352,  16,   3, UNI__PERL_PATWS }   /* patternwhitespace=y */,
+  {     0,  7267,   535,  15,   2, UNI_S }   /* generalcategory=s */,
+  {     0,  4360,  2955,  10,  11, UNI_LB__EX }   /* linebreak=exclamation */,
+  {     0,  2718,  6312,   3,   3, UNI_BC__PDI }   /* bc=pdi */,
+  {     0,    30,  4209,   1,  12, UNI_INPUNCTUATION }   /* inpunctuation */,
+  {     4,  1667,   683,   4,   5, UNI_INTAKRI }   /* blk=takri */,
+  {     0,  1823,   615,   7,   4, UNI_ELYM }   /* script=elym */,
+  {     0,    16,  1426,   1,   4, UNI_XPOSIXCNTRL }   /* gc=cc */,
+  {     3,  2514,  2046,   3,  11, UNI_GONM }   /* ismasaramgondi */,
+  {     2,  4424,   499,  17,   4, UNI_LYDI }   /* scriptextensions=lydi */,
+  {     5,  1823,  1572,   7,  10, UNI_XPEO }   /* script=oldpersian */,
+  {     9,   423,  2800,   3,  11, UNI_ALPHABETICPF }   /* inalphabeticpf */,
+  {     0,  2842,  5848,  10,   9, UNI_ETHIOPICEXTA }   /* isethiopicextendeda */,
+  {     2,   309,   668,   2,   5, UNI_INOGHAM }   /* inogham */,
+  {     4,  1509,     0,   4,   0, UNI_JAVA }   /* java */,
+  {     7,  6165,  1484,   3,   4, UNI_SC__BUGI }   /* sc=bugi */,
+  {    16,  6427,  6447,  13,   3, UNI_JG__QAF }   /* joininggroup=qaf */,
+  {     0,    59,     0,   4,   0, UNI_CHRS }   /* chrs */,
+  {     2,  7591,   283,   3,   2, UNI_LB__NU }   /* lb=nu */,
+  {     2,  2324,  3692,   6,   7, UNI_LISUSUP }   /* block=lisusup */,
+  {     0,  7274,  4206,   9,  15, UNI_PS }   /* category=openpunctuation */,
+  {     2,   461,  6642,   2,   6, UNI_BRAH }   /* isbrahmi */,
+  {     1,  5216,  1505,  11,   4, UNI_LATINEXTA }   /* block=latinexta */,
+  {     3,  1776,  1184,   4,   7, UNI_EMOTICONS }   /* inemoticons */,
+  {     2,   292,  2084,   3,   2, UNI_NV__11 }   /* nv=11 */,
+  {     1,  2536,  6447,   3,   3, UNI_JG__QAF }   /* jg=qaf */,
+  {     2,  2324,  1914,   6,   4, UNI_UCAS }   /* block=ucas */,
+  {     0,  6076,  2773,   7,  13, UNI_INGREEK }   /* block=greekandcoptic */,
+  {     0,    11,  2705,   1,  13, UNI_ANCIENTSYMBOLS }   /* ancientsymbols */,
+  {     1,   339,   288,   4,   2, UNI_CCC__30 }   /* ccc=30 */,
+  {     2,  3391,  1070,  13,   2, UNI_NV__31 }   /* numericvalue=31 */,
+  {     0,  3502,  1037,  12,   4, UNI_ETHIOPICEXTB }   /* blk=ethiopicextb */,
+  {     0,  1391,   281,   3,   2, UNI_WB__XX }   /* wb=xx */,
+  {     2,  7591,  1864,   3,   5, UNI_EBASE }   /* lb=ebase */,
+  {     8,  6165,  1205,   3,   7, UNI_SC__GRAN }   /* sc=grantha */,
+  {     3,  2536,   702,  10,   4, UNI_JG__AFRICANNOON }   /* jg=africannoon */,
+  {     5,  2842,  2374,  10,   8, UNI_ETHIOPICEXT }   /* isethiopicextended */,
+  {     2,  1198,  6557,   5,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* incjkcompatideographssup */,
+  {     0,  6165,   608,   3,   4, UNI_ELBA }   /* sc=elba */,
+  {     0,    30,  6486,   1,  14, UNI_ZNAMENNYMUSIC }   /* isznamennymusic */,
+  {     1,  1823,  1834,   7,  11, UNI_SORA }   /* script=sorasompeng */,
+  {     1,  6816,   585,  25,   5, UNI_CWKCF }   /* changeswhennfkccasefolded=true */,
+  {     3,  2324,   967,   6,   8, UNI_INGUJARATI }   /* block=gujarati */,
+  {     0,  7274,  2814,  12,   8, UNI_SO }   /* category=othersymbol */,
+  {     9,  2302,   933,   9,   7, -UNI_IDC }   /* idcontinue=false */,
+  {     1,   461,  6692,   2,  15, UNI_TRANSPORTANDMAP }   /* istransportandmap */,
+  {     1,   578,     0,   6,   0, UNI_CCC__22 }   /* ccc=22 */,
+  {     2,  7134,   353,  26,   4, UNI_PCM }   /* prependedconcatenationmark=yes */,
+  {     2,  1790,     0,  11,   0, UNI_NFCQC__M }   /* nfcqc=maybe */,
+  {     1,  2324,  4951,   6,  19, UNI_INEGYPTIANHIEROGLYPHS }   /* block=egyptianhieroglyphs */,
+  {     0,  1479,   584,   4,   6, UNI_XPOSIXSPACE }   /* space=true */,
+  {     0,  5168,  5939,   6,   5, UNI__PERL_NCHAR }   /* _perl_nchar */,
+  {    12,   461,  1975,   2,  10, UNI_SOGO }   /* isoldsogdian */,
+  {     0,  4502,    70,  11,   2, UNI_LATINEXTC }   /* blk=latinextc */,
+  {     0,  1823,   991,   7,   4, UNI_HATR }   /* script=hatr */,
+  {     2,    30,  1454,   1,  11, UNI_DEP }   /* isdeprecated */,
+  {     1,  1728,  7545,   4,  20, UNI_ARABICPFA }   /* arabicpresentationformsa */,
+  {     1,  1102,  1909,   3,   5, UNI_KANA }   /* scx=kana */,
+  {     0,     2,  7972,   1,  15, UNI_CUNEIFORMNUMBERS }   /* cuneiformnumbers */,
+  {     3,  4424,  1205,  17,   7, UNI_GRAN }   /* scriptextensions=grantha */,
+  {     1,  7011,  2538,  23,   2, UNI_CCC__A }   /* canonicalcombiningclass=a */,
+  {     0,    11,     0,   4,   0, UNI_ADLM }   /* adlm */,
+  {     2,  6165,  1248,   3,   4, UNI_SC__PHAG }   /* sc=phag */,
+  {     0,  7214,   345,  25,   2, UNI_CCC__118 }   /* canonicalcombiningclass=118 */,
+  {     1,   461,    54,   2,   2, UNI_SC }   /* issc */,
+  {     9,  2324,   739,   6,   7, UNI_INMANDAIC }   /* block=mandaic */,
+  {     2,  4506,     0,  14,   0, UNI_LATINEXTB }   /* latinextendedb */,
+  {     1,  4896,     0,   4,   0, UNI_BAMU }   /* bamu */,
+  {     1,  1667,  8660,   4,  43, UNI_UCASEXTA }   /* blk=unifiedcanadianaboriginalsyllabicsextendeda */,
+  {    12,  1823,   232,   7,   4, UNI_SC__YI }   /* script=yiii */,
+  {     0,   461,  1015,   2,   6, UNI_TELU }   /* istelugu */,
+  {     0,     0,   273,   1,   4, UNI_LB__B2 }   /* lb=b2 */,
+  {     3,     2,  5694,   1,  10, UNI_COUNTINGROD }   /* countingrod */,
+  {     0,  7752,  2270,  23,   4, UNI_JG__MANICHAEANAYIN }   /* joininggroup=manichaeanayin */,
+  {     0,   991,     0,   6,   0, UNI_HATR }   /* hatran */,
+  {     0,  1015,     0,   4,   0, UNI_TELU }   /* telu */,
+  {     0,   271,  2768,   3,   6, UNI_GCB__XX }   /* gcb=other */,
+  {     0,  5769,   599,   4,   2, -UNI_EMOD }   /* emod=n */,
+  {     0,  3391,  2107,  14,   8, UNI_NV__5_SLASH_2 }   /* numericvalue=2.500e+00 */,
+  {     0,  7011,  1678,  24,   2, UNI_CCC__1 }   /* canonicalcombiningclass=ov */,
+  {    17,  2324,  6120,   6,  22, UNI_DIACRITICALSFORSYMBOLS }   /* block=diacriticalsforsymbols */,
+  {     1,  1823,   156,   7,   4, UNI_SC__OUGR }   /* script=ougr */,
+  {     7,  5916,   934,  21,   6, -UNI_LOE }   /* logicalorderexception=false */,
+  {     0,    30,  1941,   1,  13, UNI_GRBASE }   /* isgraphemebase */,
+  {     0,  2434,  1037,   7,   4, UNI_MYANMAREXTB }   /* myanmarextb */,
+  {     0,  1830,     0,   4,   0, UNI_MLYM }   /* mlym */,
+  {     1,  4191,  5671,   8,   3, -UNI_XPOSIXLOWER }   /* lowercase=n */,
+  {     1,    32,   353,   2,   4, UNI_VS }   /* vs=yes */,
+  {    11,  1823,  3436,   7,  15, UNI_SARB }   /* script=oldsoutharabian */,
+  {     2,  6427,  4761,  14,   4, UNI_JG__ALAPH }   /* joininggroup=alaph */,
+  {     0,  2220,  2107,   4,   8, UNI_NV__13_SLASH_2 }   /* nv=6.500e+00 */,
+  {     7,  5574,   599,  21,   3, -UNI_CWL }   /* changeswhenlowercased=no */,
+  {     3,   533,   959,   3,   6, UNI_SB__EX }   /* sb=extend */,
+  {     0,   461,   176,   2,   4, UNI_ROHG }   /* isrohg */,
+  {     0,  2324,   297,   6,   5, UNI_INORIYA }   /* block=oriya */,
+  {     4,  4360,  4206,  10,  15, UNI_LB__OP }   /* linebreak=openpunctuation */,
+  {     0,   309,  3228,   2,  15, UNI_INIMPERIALARAMAIC }   /* inimperialaramaic */,
+  {     2,   271,   585,   3,   2, UNI_GCB__T }   /* gcb=t */,
+  {     1,  2324,  3349,   6,  15, UNI_INMEROITICCURSIVE }   /* block=meroiticcursive */,
+  {    17,  1479,   933,   4,   3, -UNI_XPOSIXSPACE }   /* space=f */,
+  {     0,    34,  4726,   1,   8, UNI_TANGUTSUP }   /* tangutsup */,
+  {     1,  2324,  1914,   6,   7, UNI_UCASEXT }   /* block=ucasext */,
+  {     4,  6165,  4089,   3,   4, UNI_SC__SIND }   /* sc=sind */,
+  {     3,  3014,   343,  11,   3, UNI_IN__12_DOT_1 }   /* presentin=v121 */,
+  {     1,   461,  1241,   2,   7, UNI_NB }   /* isnoblock */,
+  {     0,  2302,   352,   9,   3, UNI_IDC }   /* idcontinue=y */,
+  {     1,  1455,   274,  10,   1, UNI_dep_values_index }   /* deprecated= */,
+  {     1,   309,   917,   2,   8, UNI_INBASSAVAH }   /* inbassavah */,
+  {    13,   380,   934,   6,   2, -UNI_HYPHEN }   /* hyphen=f */,
+  {     2,   997,     0,   6,   0, UNI_KTHI }   /* kaithi */,
+  {     1,     2,  7972,   1,  29, UNI_CUNEIFORMNUMBERS }   /* cuneiformnumbersandpunctuation */,
+  {     1,  2536,    20,   3,   2, UNI_JG__HE }   /* jg=he */,
+  {     2,  7011,   391,  24,   2, UNI_CCC__34 }   /* canonicalcombiningclass=34 */,
+  {     4,  4424,   571,  17,   7, UNI_AVST }   /* scriptextensions=avestan */,
+  {     2,  6165,  1978,   3,   7, UNI_SC__SOGD }   /* sc=sogdian */,
+  {     4,  1456,  4439,   4,   2, UNI_epres_values_index }   /* epres= */,
   {     2,  1102,   951,   4,   4, UNI_DUPL }   /* scx=dupl */,
-  {     0,  1102,   417,   4,   4, UNI_HANO }   /* scx=hano */,
-  {     6,   316,   588,   5,   5, UNI_QMARK }   /* qmark=true */,
-  {     3,  1879,   144,   4,   4, UNI_INNEWA }   /* blk=newa */,
-  {     2,  3474,  1141,  12,   3, UNI_ARABICPFA }   /* block=arabicpfa */,
-  {     1,  1796,  1371,   7,   6, UNI_SC__THAA }   /* script=thaana */,
-  {     1,  1991,    11,  12,   1, UNI_JT__R }   /* joiningtype=r */,
-  {     1,  3474,  7044,   6,  24, UNI_DIACRITICALSFORSYMBOLS }   /* block=combiningmarksforsymbols */,
-  {     4,  7500,     0,  17,   0, UNI_ANCIENTGREEKMUSIC }   /* ancientgreekmusic */,
-  {     1,  3748,   766,  14,   3, UNI_NV__1_SLASH_64 }   /* numericvalue=1/64 */,
-  {     0,  6114,  1614,   3,   4, UNI_WARA }   /* sc=wara */,
-  {     4,  1796,  1090,   7,   4, UNI_SC__LINB }   /* script=linb */,
-  {     1,  2033,   934,   5,   2, -UNI_XPOSIXALPHA }   /* alpha=f */,
-  {     2,  7527,    67,   3,   2, UNI_LB__CP }   /* lb=cp */,
-  {     0,  3794,  1781,  14,   4, UNI_NV__80000 }   /* numericvalue=80000 */,
-  {     3,  1796,  1326,   7,   9, UNI_ORKH }   /* script=oldturkic */,
-  {     4,  4355,  1982,  17,   6, UNI_SYRC }   /* scriptextensions=syriac */,
-  {     0,  2581,     0,   9,   0, UNI__PERL_SURROGATE }   /* surrogate */,
-  {     7,   204,     0,   4,   0, UNI_TAVT }   /* tavt */,
-  {     5,  2181,  2080,   4,   8, UNI_NV__11_SLASH_2 }   /* nv=5.500e+00 */,
-  {     4,  1796,  5322,   7,   8, UNI_CHER }   /* script=cherokee */,
-  {     6,  8276,  1503,  22,   5, UNI_INSC__BINDU }   /* indicsyllabiccategory=bindu */,
-  {     2,   464,  1003,   2,   6, UNI_LEPC }   /* islepcha */,
-  {     2,  1597,   588,  10,   2, UNI_SD }   /* softdotted=t */,
-  {     2,  1480,  5812,   5,   6, UNI_GEORGIANSUP }   /* georgiansup */,
-  {     2,  4355,  4418,  17,   6, UNI_ZYYY }   /* scriptextensions=common */,
-  {     0,   464,  7660,   2,  18, UNI_INVS }   /* isvariationselectors */,
-  {     0,  5087,  3024,  10,  11, UNI_WB__SQ }   /* wordbreak=singlequote */,
-  {     1,  1410,   347,   7,   2, UNI_CCC__11 }   /* ccc=ccc11 */,
-  {     1,  2253,   549,  10,   3, UNI_IN__3 }   /* presentin=3.0 */,
-  {     0,  4726,  6231,  14,   8, UNI_NV__1_SLASH_160 }   /* numericvalue=6.250e-03 */,
-  {     1,  1548,   593,   3,   2, UNI_XPOSIXDIGIT }   /* nt=de */,
-  {     2,  1879,   917,   4,   8, UNI_INBASSAVAH }   /* blk=bassavah */,
-  {     0,  1548,  2961,   3,   7, UNI_NT__NU }   /* nt=numeric */,
-  {     2,  1796,  4882,   7,  19, UNI_EGYP }   /* script=egyptianhieroglyphs */,
-  {     0,  2392,  1037,   9,   4, UNI_MYANMAREXTB }   /* inmyanmarextb */,
-  {     9,  2253,   298,   9,   2, UNI_IN__9 }   /* presentin=9 */,
-  {     0,  1102,   473,   4,   4, UNI_TNSA }   /* scx=tnsa */,
-  {     5,  4776,   587,  16,   3, UNI__PERL_PATWS }   /* patternwhitespace=t */,
-  {     1,  2394,  1037,   7,   4, UNI_MYANMAREXTB }   /* myanmarextb */,
-  {     8,  1102,   116,   4,   4, UNI_KNDA }   /* scx=knda */,
-  {     8,  1539,  1939,   3,   9, UNI_COMPATJAMO }   /* iscompatjamo */,
-  {     2,  6114,  1241,   3,   7, UNI_SC__PHAG }   /* sc=phagspa */,
-  {     0,  2253,  2172,  10,   3, UNI_IN__2 }   /* presentin=2.0 */,
-  {     1,  1516,   328,   6,   3, UNI_KANASUP }   /* iskanasup */,
-  {     0,  4291,  3285,  10,  12, UNI_LB__HL }   /* linebreak=hebrewletter */,
-  {     2,  6039,  6549,   7,  21, UNI_MISCTECHNICAL }   /* block=miscellaneoustechnical */,
-  {     3,   343,  1155,   4,   2, UNI_CCC__35 }   /* ccc=35 */,
-  {     3,  2033,   588,   5,   2, UNI_XPOSIXALPHA }   /* alpha=t */,
-  {     1,   236,     0,   2,   0, UNI_YI }   /* yi */,
-  {     1,  6114,  1785,   3,  11, UNI_HMNG }   /* sc=pahawhhmong */,
-  {     5,   600,   940,   3,   3, UNI_DT__COM }   /* dt=com */,
-  {     0,   464,  3061,   2,   5, UNI_XPOSIXDIGIT }   /* isdigit */,
-  {    11,  4355,  3465,  16,   5, UNI_ETHI }   /* scriptextensions=ethi */,
-  {     1,  7688,   639,  23,   3, UNI_JG__MANICHAEANNUN }   /* joininggroup=manichaeannun */,
-  {     0,  2981,  2090,   4,   2, UNI_IN__6_DOT_2 }   /* in=v62 */,
-  {     0,  8007,  4089,  30,   4, UNI_CJKEXTD }   /* blk=cjkunifiedideographsextensiond */,
-  {     0,  2274,   602,   4,   2, -UNI_XIDC }   /* xidc=n */,
-  {     4,  4355,  1792,  17,   4, UNI_MONG }   /* scriptextensions=mong */,
-  {     1,  4355,  1882,  16,   5, UNI_KANA }   /* scriptextensions=kana */,
-  {     3,  7201,  1413,  15,   2, UNI_C }   /* generalcategory=c */,
-  {     4,  1796,     0,  11,   0, UNI_SC__MLYM }   /* script=mlym */,
-  {     1,  2491,     0,   5,   0, UNI_XPOSIXBLANK }   /* blank */,
-  {     0,  2033,  2762,   3,   9, UNI_ALPHABETICPF }   /* alphabeticpf */,
-  {     4,  1879,  1495,   4,   8, UNI_INJAVANESE }   /* blk=javanese */,
-  {     1,   464,  4614,   2,  16, UNI_PF }   /* isfinalpunctuation */,
-  {     6,  7208,  4533,   9,  18, UNI_PI }   /* category=initialpunctuation */,
-  {     0,  6379,  2529,  13,  10, UNI_JG__REVERSEDPE }   /* joininggroup=reversedpe */,
-  {     1,  3474,  1289,   6,   9, UNI_INNEWTAILUE }   /* block=newtailue */,
-  {     0,   555,   552,   4,   3, UNI_AGE__4 }   /* age=4.0 */,
-  {     1,  1102,  2217,   4,  12, UNI_HUNG }   /* scx=oldhungarian */,
-  {     5,  4783,   587,   9,   6, UNI_XPOSIXSPACE }   /* whitespace=true */,
-  {     1,   464,   252,   2,   2, UNI_CN }   /* iscn */,
-  {     0,  4355,   951,  17,   8, UNI_DUPL }   /* scriptextensions=duployan */,
-  {     0,  8533,  8319,  18,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* block=supplementalsymbolsandpictographs */,
-  {     4,  7132,  5858,   7,   7, UNI_SUPARROWSC }   /* blk=suparrowsc */,
-  {     2,   464,   248,   2,   4, UNI_ZZZZ }   /* iszzzz */,
-  {     0,  4901,   355,  16,   3, UNI_EBASE }   /* emojimodifierbase=y */,
-  {     1,  4322,  1300,  14,   2, UNI_NV__300 }   /* numericvalue=300 */,
-  {     0,  1065,  2096,   4,   8, UNI_NV__1_SLASH_64 }   /* nv=1.563e-02 */,
-  {     6,  1308,     0,   9,   0, UNI_ITAL }   /* olditalic */,
-  {     0,  1879,  6728,   4,  14, UNI_MEETEIMAYEKEXT }   /* blk=meeteimayekext */,
-  {     0,  3474,  7481,  10,  20, UNI_ARABICPFA }   /* block=arabicpresentationformsa */,
-  {    10,   555,  2616,   4,   3, UNI_AGE__5 }   /* age=5.0 */,
-  {     1,  7880,  6505,  27,   5, UNI_CJKEXTC }   /* iscjkunifiedideographsextensionc */,
-  {     0,  6114,   749,   3,   7, UNI_MARC }   /* sc=marchen */,
-  {     0,  8276,  2290,  22,   6, UNI_INSC__NUMBER }   /* indicsyllabiccategory=number */,
-  {     0,  1796,  1098,   7,   4, UNI_NSHU }   /* script=nshu */,
-  {     2,  4355,  3839,  17,   6, UNI_TANG }   /* scriptextensions=tangut */,
-  {     3,  7201,  1379,  15,   2, UNI_M }   /* generalcategory=m */,
-  {     9,  4355,  1003,  17,   6, UNI_LEPC }   /* scriptextensions=lepcha */,
-  {     0,  3915,   588,  17,   2, UNI_EPRES }   /* emojipresentation=t */,
-  {     1,     2,  1939,   1,   9, UNI_COMPATJAMO }   /* compatjamo */,
-  {     0,  6114,   164,   3,   4, UNI_PHNX }   /* sc=phnx */,
-  {     0,  1065,   523,   5,   1, UNI_NV__1_SLASH_7 }   /* nv=1/7 */,
-  {     2,  4433,  6771,  14,   4, UNI_LATINEXTD }   /* blk=latinextendedd */,
-  {     2,  8590,  5898,   5,   4, UNI_ANY }   /* isunicode */,
-  {    16,  6114,    71,   3,   4, UNI_SC__CPRT }   /* sc=cprt */,
-  {     1,  2496,  4682,   3,   3, UNI_JG__SAD }   /* jg=sad */,
-  {     1,  1410,  1070,   7,   2, UNI_CCC__31 }   /* ccc=ccc31 */,
-  {     4,   959,   602,   8,   3, -UNI_EXT }   /* extender=no */,
-  {     7,    58,  5139,   2,   8, UNI_SC__MYMR }   /* sc=myanmar */,
-  {     0,  1796,  1353,   7,   4, UNI_PAUC }   /* script=pauc */,
-  {     0,  1465,   933,   4,   7, -UNI_XPOSIXSPACE }   /* space=false */,
-  {     3,  4827,     0,   4,   0, UNI_BAMU }   /* bamu */,
-  {     1,   940,  1104,   5,   3, UNI_COMPEX }   /* compex=t */,
-  {     0,  3367,   292,  14,   1, UNI_NV__43 }   /* numericvalue=43 */,
-  {    19,  7182,  1434,   3,   7, UNI_CJKSTROKES }   /* cjkstrokes */,
-  {     0,  4355,   868,  17,   4, UNI_TIRH }   /* scriptextensions=tirh */,
-  {     1,  1796,  5322,   7,   4, UNI_CHER }   /* script=cher */,
-  {     2,   296,  1781,   4,   4, UNI_NV__90000 }   /* nv=90000 */,
-  {     0,  2802,     0,  10,   0, UNI_ETHI }   /* isethiopic */,
-  {     6,  2153,  2060,   8,   4, UNI_NV__5_SLASH_12 }   /* nv=4.167e-01 */,
-  {     4,  1879,  3991,   4,   7, UNI_BRAI }   /* blk=braille */,
-  {     0,   524,   602,   6,   2, -UNI_PATSYN }   /* patsyn=n */,
-  {     4,  3722,     0,  10,   0, UNI_SM }   /* mathsymbol */,
-  {     1,  6402,  5075,  14,   5, UNI_SB__AT }   /* sentencebreak=aterm */,
-  {     0,    24,   356,   3,   2, UNI_XPOSIXXDIGIT }   /* hex=y */,
-  {     5,  5607,  6500,  15,   9, UNI_IDENTIFIERTYPE__INCLUSION }   /* identifiertype=inclusion */,
-  {     2,  7201,  4614,  16,  16, UNI_PF }   /* generalcategory=finalpunctuation */,
-  {     0,  6114,   236,   3,   4, UNI_SC__YI }   /* sc=yiii */,
-  {     1,  6114,   909,   3,   4, UNI_BALI }   /* sc=bali */,
-  {    11,  3915,   934,  17,   2, -UNI_EPRES }   /* emojipresentation=f */,
-  {     1,   464,   110,   2,   2, UNI_ZL }   /* iszl */,
-  {     0,  4355,   951,  17,   4, UNI_DUPL }   /* scriptextensions=dupl */,
-  {     1,   321,     0,   5,   0, UNI_TALE }   /* taile */,
-  {     0,   464,  3974,   2,   4, UNI_IDSB }   /* isidsb */,
-  {     1,  2260,  2616,   3,   3, UNI_IN__5 }   /* in=5.0 */,
-  {     3,  4433,     0,  18,   0, UNI_LATINEXTB }   /* blk=latinextendedb */,
-  {     2,  1879,  7377,   4,  26, UNI_KATAKANAEXT }   /* blk=katakanaphoneticextensions */,
-  {     0,  4092,   588,   9,   5, UNI_DIA }   /* diacritic=true */,
-  {     1,  6379,   639,  13,   3, UNI_JG__NUN }   /* joininggroup=nun */,
-  {     2,  1879,  1027,   4,   6, UNI_INYEZIDI }   /* blk=yezidi */,
-  {     0,   939,   934,   5,   6, -UNI_ECOMP }   /* ecomp=false */,
-  {     1,  4355,   409,  17,   4, UNI_DIAK }   /* scriptextensions=diak */,
-  {     0,  6774,   934,  25,   6, -UNI_DI }   /* defaultignorablecodepoint=false */,
-  {     0,  2678,   387,   3,   2, UNI_BC__EN }   /* bc=en */,
-  {     1,  6114,  4882,   3,   4, UNI_EGYP }   /* sc=egyp */,
-  {     2,  2454,  6878,   5,  20, UNI_GEOMETRICSHAPESEXT }   /* isgeometricshapesextended */,
-  {     0,   409,   356,   3,   2, UNI_DIA }   /* dia=y */,
-  {     1,  1796,    82,   7,   4, UNI_DSRT }   /* script=dsrt */,
-  {     0,     2,   355,   1,   3, UNI_CE }   /* ce=y */,
-  {     0,  3474,  3933,   6,   4, UNI_INMODI }   /* block=modi */,
-  {     1,  7527,  1990,   3,   2, UNI_LB__WJ }   /* lb=wj */,
-  {     0,  6944,   294,  25,   2, UNI_CCC__IS }   /* canonicalcombiningclass=240 */,
-  {     8,   464,  5846,   2,  19, UNI_SUPARROWSC }   /* issupplementalarrowsc */,
-  {     5,  2485,  1915,   6,   5, UNI_XPOSIXGRAPH }   /* xposixgraph */,
-  {     1,  1975,  3060,   7,   6, UNI_POSIXXDIGIT }   /* isposixxdigit */,
-  {     0,  1106,     0,   4,   0, UNI_TALU }   /* talu */,
-  {     4,  6114,   818,   3,   7, UNI_SC__SHRD }   /* sc=sharada */,
-  {     0,    34,   539,   1,   7, UNI_TNSA }   /* istangsa */,
-  {     0,  7208,    54,   9,   2, UNI_MC }   /* category=mc */,
-  {     0,  7201,  3651,  16,  14, UNI_MN }   /* generalcategory=nonspacingmark */,
-  {     0,  2974,   292,  12,   2, UNI_IN__13 }   /* presentin=v130 */,
-  {     0,   378,   601,   4,   4, -UNI_GREXT }   /* grext=no */,
-  {     0,  2260,  6214,   3,   3, UNI_IN__2_DOT_1 }   /* in=2.1 */,
-  {     0,   132,     0,   4,   0, UNI_MTEI }   /* mtei */,
-  {     5,  6114,   321,   3,   5, UNI_SC__TALE }   /* sc=taile */,
-  {     2,  2260,   292,   4,   1, UNI_IN__13 }   /* in=13 */,
-  {     0,  2392,     0,   9,   0, UNI_INMYANMAR }   /* inmyanmar */,
-  {     0,  6039,  5038,   7,  18, UNI_MODIFIERTONELETTERS }   /* block=modifiertoneletters */,
-  {     0,  2253,   569,  10,   3, UNI_IN__9 }   /* presentin=9.0 */,
-  {     1,    34,  7499,   1,  18, UNI_ANCIENTGREEKMUSIC }   /* isancientgreekmusic */,
-  {     0,   296,  2081,   3,   3, UNI_NV__500 }   /* nv=500 */,
-  {     1,   721,   730,   2,   5, UNI_KALI }   /* kayahli */,
-  {     4,  5990,   928,  21,   2, UNI_BPT__O }   /* bidipairedbrackettype=o */,
-  {     0,  2974,  1304,  11,   2, UNI_IN__2 }   /* presentin=v20 */,
-  {     1,  1065,  2197,   4,   8, UNI_NV__1_SLASH_80 }   /* nv=1.250e-02 */,
-  {     1,  4308,   356,  14,   4, UNI_DT__NONE }   /* nfkdquickcheck=yes */,
-  {     5,  1102,  1227,   4,   7, UNI_MULT }   /* scx=multani */,
-  {    15,   313,   967,   2,   8, UNI_INGUJARATI }   /* ingujarati */,
-  {     0,  2496,   717,   3,   4, UNI_JG__ZAIN }   /* jg=zain */,
-  {     4,  3474,  4918,   7,   9, UNI_ALCHEMICAL }   /* block=alchemical */,
-  {     7,  1102,  6134,   4,  10, UNI_GLAG }   /* scx=glagolitic */,
-  {     0,  1102,  1051,   4,   8, UNI_MAHJ }   /* scx=mahajani */,
-  {     1,   296,  3365,   3,   2, UNI_NV__36 }   /* nv=36 */,
-  {     1,  1879,   909,   4,   8, UNI_INBALINESE }   /* blk=balinese */,
-  {     1,  7740,   356,  11,   4, UNI_IDEO }   /* ideographic=yes */,
-  {     0,  4355,  1125,  17,   8, UNI_TFNG }   /* scriptextensions=tifinagh */,
-  {     5,  7208,   128,   9,   2, UNI_ME }   /* category=me */,
-  {     3,  1102,  5907,   4,   7, UNI_SINH }   /* scx=sinhala */,
-  {     1,   887,  2053,   5,   3, UNI_AGE__11 }   /* age=11.0 */,
-  {     0,  3474,  4551,   6,  16, UNI_LINEARBSYLLABARY }   /* block=linearbsyllabary */,
-  {     0,  1410,   292,   8,   2, UNI_CCC__130 }   /* ccc=ccc130 */,
-  {     0,  1102,  1826,   4,  11, UNI_SYLO }   /* scx=sylotinagri */,
-  {     2,  5888,   278,   5,   1, UNI_nchar_values_index }   /* nchar= */,
-  {     5,  7605,   897,  17,   3, UNI_GCB__V }   /* hangulsyllabletype=v */,
-  {     3,  3351,  2079,  13,   9, UNI_NV__3_SLASH_2 }   /* numericvalue=1.500e+00 */,
-  {     0,  4783,  5620,   9,   3, -UNI_XPOSIXSPACE }   /* whitespace=n */,
-  {     6,  2678,   278,   2,   2, UNI_BC__B }   /* bc=b */,
-  {     0,  2792,  4590,  10,   9, UNI_CYRILLICEXTC }   /* iscyrillicextendedc */,
-  {     0,  2392,  5807,   3,  11, UNI_MONGOLIANSUP }   /* inmongoliansup */,
-  {     1,   464,  3435,   2,  15, UNI_ZANB }   /* iszanabazarsquare */,
-  {     2,  6114,  1508,   3,   8, UNI_UGAR }   /* sc=ugaritic */,
-  {     5,  8276,  1157,  22,   5, UNI_INSC__NUKTA }   /* indicsyllabiccategory=nukta */,
-  {     3,  4308,  3477,  12,   3, UNI_nfkdqc_values_index }   /* nfkdquickcheck= */,
-  {     0,   313,  1227,   2,   7, UNI_INMULTANI }   /* inmultani */,
-  {     2,  6402,   287,  14,   2, UNI_SB__NU }   /* sentencebreak=nu */,
-  {     7,  3474,  5806,   6,  19, UNI_MONGOLIANSUP }   /* block=mongoliansupplement */,
-  {     4,    34,  5660,   1,   5, UNI_MERO }   /* ismero */,
-  {     3,   464,   496,   2,   4, UNI_KHOJ }   /* iskhoj */,
-  {     2,   876,   934,   4,   2, -UNI_IDEO }   /* ideo=f */,
-  {     2,  1539,    52,   3,   3, UNI_CAKM }   /* iscakm */,
-  {     1,  3622,  3638,   3,  13, UNI_LISUSUP }   /* islisusupplement */,
-  {     7,  2260,  2053,   4,   3, UNI_IN__11 }   /* in=11.0 */,
-  {     1,  8276,  1958,  22,   7, UNI_INSC__VISARGA }   /* indicsyllabiccategory=visarga */,
-  {     3,  2974,   771,  12,   2, UNI_IN__12_DOT_1 }   /* presentin=v121 */,
-  {     1,   875,   356,   5,   2, UNI_UIDEO }   /* uideo=y */,
-  {     3,  3474,   728,   6,   7, UNI_KALI }   /* block=kayahli */,
-  {     5,   296,  6197,   2,  10, UNI_NV__100000000 }   /* nv=100000000 */,
-  {     0,   275,   588,   3,   2, UNI_GCB__T }   /* gcb=t */,
-  {     8,  6687,  1849,  22,   3, UNI_JG__MALAYALAMLLA }   /* joininggroup=malayalamlla */,
-  {     1,   313,  5846,   2,  19, UNI_SUPARROWSC }   /* insupplementalarrowsc */,
-  {    16,  1710,  7937,   3,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* issymbolsandpictographsextendeda */,
-  {     0,  3367,  1781,  14,   4, UNI_NV__40000 }   /* numericvalue=40000 */,
-  {     0,   464,  5502,   2,  21, UNI_CWCM }   /* ischangeswhencasemapped */,
-  {     0,  6239,     0,   4,   0, UNI_BC__L }   /* bc=l */,
-  {     2,  3474,   735,   6,   7, UNI_INLINEARA }   /* block=lineara */,
-  {    10,  3474,  1561,   6,  10, UNI_INPHOENICIAN }   /* block=phoenician */,
-  {     0,   464,  2771,   2,   5, UNI_KHMR }   /* iskhmer */,
-  {     8,  4355,  1353,  17,   4, UNI_PAUC }   /* scriptextensions=pauc */,
-  {     4,  7182,  1037,   3,   4, UNI_CJKEXTB }   /* cjkextb */,
-  {     8,  3474,  1390,   6,  10, UNI_ASCII }   /* block=basiclatin */,
-  {     0,     8,  6115,   1,   4, UNI_CO }   /* gc=co */,
-  {     0,  1102,  4582,   4,   8, UNI_BOPO }   /* scx=bopomofo */,
-  {     2,  8276,  6370,  31,   9, UNI_INSC__CONSONANTSUBJOINED }   /* indicsyllabiccategory=consonantsubjoined */,
-  {     7,  5087,  4338,  10,  17, UNI_RI }   /* wordbreak=regionalindicator */,
-  {     3,  5565,   278,  21,   1, UNI_cwu_values_index }   /* changeswhenuppercased= */,
-  {     0,  4450,  1491,  14,   4, UNI_CYRILLICEXTA }   /* block=cyrillicexta */,
-  {     0,  7132,  7238,   5,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* blk=symbolsandpictographsexta */,
-  {     0,  1065,  1303,   5,   2, UNI_NV__1_SLASH_32 }   /* nv=1/32 */,
-  {     4,   464,    43,   2,   4, UNI_BHKS }   /* isbhks */,
-  {     4,   925,   601,   2,   3, UNI_BPT__N }   /* bpt=n */,
-  {     2,  7317,     0,  21,   0, UNI_BC__L }   /* bidiclass=lefttoright */,
-  {     1,  8244,  3571,   9,   6, UNI_CJKCOMPAT }   /* block=cjkcompat */,
-  {     1,   464,   721,   2,   7, UNI_KNDA }   /* iskannada */,
-  {     0,  6114,   172,   3,   4, UNI_RJNG }   /* sc=rjng */,
-  {     2,  4783,   587,   9,   3, UNI_XPOSIXSPACE }   /* whitespace=t */,
-  {     0,   433,   122,   2,   2, UNI_NKO }   /* nkoo */,
-  {     2,  1796,   681,   7,   5, UNI_RUNR }   /* script=runic */,
-  {     2,  7148,  1303,  25,   2, UNI_CCC__132 }   /* canonicalcombiningclass=132 */,
-  {     0,  1796,  1133,   7,   4, UNI_VITH }   /* script=vith */,
-  {     4,  7823,  3571,   5,  11, UNI_CJKCOMPATFORMS }   /* incjkcompatforms */,
-  {     1,  2981,   771,   4,   2, UNI_IN__2_DOT_1 }   /* in=v21 */,
-  {     2,  1879,  4582,   4,  16, UNI_BOPOMOFOEXT }   /* blk=bopomofoextended */,
-  {     0,  1796,  4107,   7,   4, UNI_SC__HANG }   /* script=hang */,
-  {     3,  1255,     0,   4,   0, UNI_SOYO }   /* soyo */,
-  {     1,  6114,  1003,   3,   4, UNI_LEPC }   /* sc=lepc */,
-  {     4,   313,  4107,   2,  15, UNI_INHANGUL }   /* inhangulsyllables */,
-  {     6,    14,  5038,   1,  18, UNI_MODIFIERTONELETTERS }   /* modifiertoneletters */,
-  {     0,  2890,  3273,   3,  12, UNI_JT__R }   /* jt=rightjoining */,
-  {     4,  3474,  5825,   6,   9, UNI_INSUNDANESE }   /* block=sundanese */,
-  {     4,  1102,  1451,   4,  10, UNI_DIAK }   /* scx=divesakuru */,
-  {     0,  2443,     0,  11,   0, UNI_CASEDLETTER }   /* casedletter */,
-  {     7,  8182,  5239,  24,  15, UNI_LOE }   /* indicpositionalcategory=visualorderleft */,
-  {     0,  7527,   213,   3,   2, UNI_LB__GL }   /* lb=gl */,
-  {     1,   555,  2262,   3,   3, UNI_AGE__14 }   /* age=14 */,
-  {     0,  3450,  3869,   5,  16, UNI_UCAS }   /* blk=canadiansyllabics */,
-  {     5,   815,  2747,   3,  13, UNI_HIGHSURROGATES }   /* inhighsurrogates */,
-  {     1,  1975,  1915,   7,   5, UNI_POSIXGRAPH }   /* isposixgraph */,
-  {     0,   661,     0,   4,   0, UNI_DOGR }   /* dogr */,
-  {     0,  4355,  3188,  17,  15, UNI_ARMI }   /* scriptextensions=imperialaramaic */,
-  {     3,  4872,  1037,  10,   4, UNI_KANAEXTB }   /* block=kanaextb */,
-  {     2,  6114,  3435,   3,  15, UNI_ZANB }   /* sc=zanabazarsquare */,
-  {     0,   464,  1755,   2,  11, UNI_MEDF }   /* ismedefaidrin */,
-  {     0,  6011,  1491,  14,   4, UNI_ETHIOPICEXTA }   /* block=ethiopicexta */,
-  {     3,  3974,   356,   4,   2, UNI_IDSB }   /* idsb=y */,
-  {     0,    34,  1570,   1,  11, UNI_INSAURASHTRA }   /* insaurashtra */,
-  {    16,  1133,     0,   4,   0, UNI_VITH }   /* vith */,
-  {     0,   464,  4107,   2,   6, UNI_HANG }   /* ishangul */,
-  {     0,  6570,     0,  24,   0, UNI_INPC__TOPANDBOTTOMANDLEFT }   /* inpc=topandbottomandleft */,
-  {     0,  1796,   983,   7,   8, UNI_SC__HIRA }   /* script=hiragana */,
-  {     2,   464,   951,   2,   8, UNI_DUPL }   /* isduployan */,
-  {     1,   600,   696,   3,   3, UNI_DT__ISO }   /* dt=iso */,
-  {     6,  8007,  3571,   7,  11, UNI_CJKCOMPATFORMS }   /* blk=cjkcompatforms */,
-  {     1,   783,     0,   4,   0, UNI_OSMA }   /* osma */,
+  {     1,  6165,  3421,   3,  15, UNI_NARB }   /* sc=oldnortharabian */,
+  {     3,  1728,  1037,   6,   4, UNI_ARABICEXTB }   /* arabicextb */,
+  {     0,  1200,  3611,   3,   6, UNI_CJKCOMPAT }   /* cjkcompat */,
+  {     0,   991,     0,   4,   0, UNI_HATR }   /* hatr */,
+  {     0,  4424,  1133,  17,   8, UNI_VITH }   /* scriptextensions=vithkuqi */,
+  {     3,  1823,  3228,   7,  15, UNI_ARMI }   /* script=imperialaramaic */,
+  {     2,  4424,  6185,  17,  10, UNI_GLAG }   /* scriptextensions=glagolitic */,
+  {     1,  2432,  8039,   3,  32, UNI_MISCMATHSYMBOLSA }   /* inmiscellaneousmathematicalsymbolsa */,
+  {     0,    30,  6796,   1,  19, UNI_DEVANAGARIEXT }   /* isdevanagariextended */,
+  {    15,  7267,  4667,  16,  16, UNI_PE }   /* generalcategory=closepunctuation */,
+  {     0,  4424,   951,  17,   4, UNI_DUPL }   /* scriptextensions=dupl */,
+  { 35658,  6165,  3436,   3,  15, UNI_SARB }   /* sc=oldsoutharabian */,
+  {     2,  2324,  8660,   6,  34, UNI_UCAS }   /* block=unifiedcanadianaboriginalsyllabics */,
+  {     0,  7011,  1243,  24,   2, UNI_CCC__BL }   /* canonicalcombiningclass=bl */,
+  {     1,  2966,  2767,   3,   7, UNI_INSC__OTHER }   /* insc=other */,
+  {     0,  1102,  1294,   4,   9, UNI_NBAT }   /* scx=nabataean */,
+  {     7,  2766,   269,   3,   2, UNI_ZP }   /* gc=zp */,
+  {     1,  1823,   160,   7,   4, UNI_SC__PHLP }   /* script=phlp */,
+  {     0,   309,   854,   2,   7, UNI_INTAIVIET }   /* intaiviet */,
+  {     9,   959,   599,   8,   2, -UNI_EXT }   /* extender=n */,
+  {     0,   461,  3892,   2,  16, UNI_STERM }   /* issentenceterminal */,
+  {     1,  6427,  1046,  13,   5, UNI_JG__KHAPH }   /* joininggroup=khaph */,
+  {     1,  8658,  5949,   5,   4, UNI_ANY }   /* isunicode */,
+  {     4,  7669,     0,  19,   0, UNI_hst_values_index }   /* hangulsyllabletype= */,
+  {     0,  1409,  1674,   5,   4, UNI_LATINEXTD }   /* latinextd */,
+  {     2,   461,  1543,   2,   4, UNI_KHAR }   /* iskhar */,
+  {     1,  2324,  1033,   6,   4, UNI_JAMO }   /* block=jamo */,
+  {     5,    54,  5067,   2,  11, UNI_SC__MANI }   /* sc=manichaean */,
+  {     3,  6165,    82,   3,   4, UNI_SC__GONG }   /* sc=gong */,
+  {     0,  6163,     0,  14,   0, UNI_INSC__CONSONANT }   /* insc=consonant */,
+  {     0,  1479,  5671,   4,   4, -UNI_XPOSIXSPACE }   /* space=no */,
+  {     1,  1102,   180,   4,   4, UNI_RUNR }   /* scx=runr */,
+  {     4,  6427,  2875,  13,  11, UNI_JG__STRAIGHTWAW }   /* joininggroup=straightwaw */,
+  {     0,   271,  7134,   4,   7, UNI_GCB__PP }   /* gcb=prepend */,
+  {     2,  1823,  2244,   7,  12, UNI_HUNG }   /* script=oldhungarian */,
+  {     0,   406,     0,   4,   0, UNI_DIAK }   /* diak */,
+  {     5,  1102,  1027,   4,   6, UNI_YEZI }   /* scx=yezidi */,
+  {     3,  8343,  7692,  32,  15, UNI_INSC__CONSONANTINITIALPOSTFIXED }   /* indicsyllabiccategory=consonantinitialpostfixed */,
+  {     0,   309,  1572,   2,  10, UNI_INOLDPERSIAN }   /* inoldpersian */,
+  {     0,   461,  1144,   2,   9, UNI_BHKS }   /* isbhaiksuki */,
+  {     0,  2832,  6193,   8,  12, UNI_CYRILLICSUP }   /* iscyrillicsupplement */,
+  {     1,  4502,   590,  16,   2, UNI_LATINEXTE }   /* blk=latinextendede */,
+  {     0,  2514,  2643,   3,  12, UNI_MISCTECHNICAL }   /* ismisctechnical */,
+  {     0,  1883,   934,  11,   2, -UNI_BIDIC }   /* bidicontrol=f */,
+  {     2,  4845,   352,  16,   2, UNI_patws_values_index }   /* patternwhitespace= */,
+  {     6,  2324,  7796,   6,  22, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* block=enclosedideographicsup */,
+  {    17,  4424,  4176,  17,   4, UNI_HANG }   /* scriptextensions=hang */,
+  {     3,   622,   934,   7,   6, -UNI_EXTPICT }   /* extpict=false */,
+  {     1,  2324,  1349,   6,   9, UNI_INOLDUYGHUR }   /* block=olduyghur */,
+  {     0,  6165,  1819,   3,   4, UNI_SC__MONG }   /* sc=mong */,
+  {     1,  3817,  2123,  14,   8, UNI_NV__1_SLASH_64 }   /* numericvalue=1.563e-02 */,
+  {     0,  6450,   281,  14,   2, UNI_SB__XX }   /* sentencebreak=xx */,
+  {     0,  4970,   584,  16,   3, UNI_EBASE }   /* emojimodifierbase=t */,
+  {     7,  3391,  1805,  14,   4, UNI_NV__20000 }   /* numericvalue=20000 */,
+  {     2,  5637,  4407,  21,  17, UNI_RI }   /* graphemeclusterbreak=regionalindicator */,
+  {     0,  2324,  1117,   6,   8, UNI_INTAGBANWA }   /* block=tagbanwa */,
+  {     3,   597,  1743,   3,   4, UNI_DT__VERT }   /* dt=vert */,
+  {     2,  6041,   599,  21,   2, UNI_BPT__N }   /* bidipairedbrackettype=n */,
+  {    16,  6165,  5857,   3,   9, UNI_SC__MONG }   /* sc=mongolian */,
+  {     0,  5532,   934,  21,   2, -UNI_CWCF }   /* changeswhencasefolded=f */,
+  {     1,  2766,    50,   3,   2, UNI_MC }   /* gc=mc */,
+  {     1,   718,   490,   3,   3, UNI_KANBUN }   /* kanbun */,
+  {     0,   257,     0,   4,   0, UNI_CWCM }   /* cwcm */,
+  {     0,  3130,  5863,   9,   6, UNI_GEORGIANSUP }   /* blk=georgiansup */,
+  {     0,  1823,   450,   7,   4, UNI_MIAO }   /* script=plrd */,
+  {     2,   552,   557,   4,   3, UNI_AGE__6 }   /* age=6.0 */,
+  {     0,  1102,  6185,   4,  10, UNI_GLAG }   /* scx=glagolitic */,
+  {     1,  6062,  1183,   7,   8, UNI_EMOTICONS }   /* block=emoticons */,
+  { 57317,  1075,     0,   4,   0, UNI_NV__2 }   /* nv=2 */,
+  {     0,  1174,  1933,   3,   9, UNI_EA__A }   /* ea=ambiguous */,
+  {     0,    30,  4553,   1,  10, UNI_TITLE }   /* istitlecase */,
+  {     0,  4043,     0,   4,   0, UNI_IDSB }   /* idsb */,
+  {     3,   466,    82,   2,   2, UNI_SOGO }   /* sogo */,
+  {     1,  1667,  3475,   4,  15, UNI_INZANABAZARSQUARE }   /* blk=zanabazarsquare */,
+  {     0,  7011,  1905,  24,   2, UNI_CCC__DB }   /* canonicalcombiningclass=db */,
+  {     0,   461,  1894,   2,  12, UNI_BIDIM }   /* isbidimirrored */,
+  {     0,   309,  1779,   2,  11, UNI_INMEDEFAIDRIN }   /* inmedefaidrin */,
+  {     0,  5637,     6,  21,   2, UNI_LB__CR }   /* graphemeclusterbreak=cr */,
+  {     2,   725,     0,   7,   0, UNI_KALI }   /* kayahli */,
+  {     5,  1200,   377,   3,   4, UNI_CJKEXTH }   /* cjkexth */,
+  {     8,  4043,   934,  17,   2, -UNI_IDSB }   /* idsbinaryoperator=f */,
+  {     0,  2324,  8214,   7,  32, UNI_DIACRITICALSEXT }   /* block=combiningdiacriticalmarksextended */,
+  {     1,  6165,   236,   3,   4, UNI_ZANB }   /* sc=zanb */,
+  {     3,  2832,  1037,  10,   4, UNI_CYRILLICEXTB }   /* iscyrillicextb */,
+  {     2,  4424,   137,  18,   3, UNI_MYMR }   /* scriptextensions=mymr */,
+  {     4,  4360,  7804,  10,  11, UNI_LB__ID }   /* linebreak=ideographic */,
+  {     5,  2401,     0,  10,   0, UNI_INETHIOPIC }   /* inethiopic */,
+  {     0,   461,  1872,   2,  11, UNI_YISYLLABLES }   /* isyisyllables */,
+  {     2,  3502,  4511,  12,   9, UNI_ETHIOPICEXTB }   /* blk=ethiopicextendedb */,
+  {     3,  7495,   345,  27,   2, UNI_CCC__18 }   /* canonicalcombiningclass=ccc18 */,
+  {     5,  4651,     0,  16,   0, UNI_BOPOMOFOEXT }   /* bopomofoextended */,
+  {     0,  1667,  5373,   4,  11, UNI_TAIXUANJING }   /* blk=taixuanjing */,
+  {     0,  4206,     0,  15,   0, UNI_PS }   /* openpunctuation */,
+  {     0,  1667,  7449,   4,  28, UNI_PHONETICEXTSUP }   /* blk=phoneticextensionssupplement */,
+  {     3,  1102,   790,   4,   4, UNI_KALI }   /* scx=kali */,
+  {     1,  7383,  6310,  10,  20, UNI_BC__PDF }   /* bidiclass=popdirectionalformat */,
+  {     1,  1272,  8474,   5,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* iscjkcompatibilityideographs */,
+  {     1,  1102,    39,   4,   4, UNI_BHKS }   /* scx=bhks */,
+  {     1,  6185,     0,   4,   0, UNI_GLAG }   /* glag */,
+  {     2,  5353,     0,  20,   0, UNI_PHLI }   /* inscriptionalpahlavi */,
+  {     0,  2766,  3709,   3,  11, UNI_MC }   /* gc=spacingmark */,
+  {     0,  4360,  4667,  10,  16, UNI_LB__CL }   /* linebreak=closepunctuation */,
+  {     2,    30,  1925,   1,   7, UNI_S }   /* issymbol */,
+  {     0,  3391,   759,  13,   4, UNI_NV___MINUS_1_SLASH_2 }   /* numericvalue=-1/2 */,
+  {     2,  1942,   584,  11,   3, UNI_GRBASE }   /* graphemebase=t */,
+  {     1,  3093,   585,  13,   5, UNI_POSIXXDIGIT }   /* asciihexdigit=true */,
+  {     3,  1102,  1209,   4,   4, UNI_THAI }   /* scx=thai */,
+  {     3,  3013,   585,   5,   2, UNI_EPRES }   /* epres=t */,
+  {     0,  7274,  3191,   8,  13, UNI_NL }   /* category=letternumber */,
+  {     0,  3817,   769,  14,   3, UNI_NV__17_SLASH_2 }   /* numericvalue=17/2 */,
+  {     4,  1667,  5897,   4,  19, UNI_SUPARROWSC }   /* blk=supplementalarrowsc */,
+  {     0,   461,   283,   2,   5, UNI_NSHU }   /* isnushu */,
+  {     1,  2018,   584,  10,   3, UNI_JT__T }   /* joiningtype=t */,
+  {     1,   309,  1367,   2,   9, UNI_INPAUCINHAU }   /* inpaucinhau */,
+  {     0,   597,   693,   3,   3, UNI_DT__ISO }   /* dt=iso */,
+  {     0,  7383,  6291,  11,  19, UNI_BC__LRE }   /* bidiclass=lefttorightembedding */,
+  {     2,  5156,  5769,  10,   9, UNI_WB__EB }   /* wordbreak=emodifier */,
+  {     0,  5156,  3064,  10,  11, UNI_WB__SQ }   /* wordbreak=singlequote */,
+  {     5,  2391,  7467,  10,  13, UNI_CYRILLICSUP }   /* incyrillicsupplementary */,
+  {     7,  3633,  4698,   6,   5, UNI_LATIN1 }   /* inlatin1sup */,
+  {     1,  6165,  6642,   3,   6, UNI_BRAH }   /* sc=brahmi */,
+  {     3,  1102,  1465,   4,  10, UNI_DIAK }   /* scx=divesakuru */,
+  {     1,  1102,   402,   4,   4, UNI_ARMN }   /* scx=armn */,
+  {     2,  2766,   225,   3,   2, UNI_PE }   /* gc=pe */,
+  {     1,  6735,   661,  22,   2, UNI_JG__MALAYALAMRA }   /* joininggroup=malayalamra */,
+  {     3,   461,  6776,   2,  21, UNI_MEETEIMAYEKEXT }   /* ismeeteimayekextensions */,
+  {     4,  5216,     0,  15,   0, UNI_LATINEXTE }   /* block=latinexte */,
+  {     0,  1391,  1645,   3,   7, UNI_WB__LE }   /* wb=aletter */,
+  {     2,   461,  1696,   2,  11, UNI_DOMINO }   /* isdominotiles */,
+  {     1,   461,   951,   2,   4, UNI_DUPL }   /* isdupl */,
+  {     7,  4424,   673,  17,   5, UNI_OSGE }   /* scriptextensions=osage */,
+  {     2,  4519,  4511,  14,   9, UNI_CYRILLICEXTB }   /* block=cyrillicextendedb */,
+  {    10,  7648,  3276,  18,   3, UNI_DT__ENC }   /* decompositiontype=enc */,
+  {     2,  4424,   668,  17,   5, UNI_OGAM }   /* scriptextensions=ogham */,
+  {     3,  2301,   933,  10,   7, -UNI_XIDC }   /* xidcontinue=false */,
+  {     0,  6735,   783,  22,   3, UNI_JG__MALAYALAMNYA }   /* joininggroup=malayalamnya */,
+  {    12,  1102,   909,   4,   8, UNI_BALI }   /* scx=balinese */,
+  {     0,  2665,   599,  13,   3, -UNI_PATSYN }   /* patternsyntax=no */,
+  {     1,   271,  3191,   2,   7, UNI_L }   /* gc=letter */,
+  {     0,   461,   663,   2,   5, UNI_LIMB }   /* islimbu */,
+  {     0,   461,  6103,   2,  13, UNI_MATHOPERATORS }   /* ismathoperators */,
+  {     0,  2536,  4235,   3,   4, UNI_JG__BETH }   /* jg=beth */,
+  {     0,   753,  1792,   3,   5, UNI_NFCQC__M }   /* nfkcqc=m */,
+  {     5,  2966,  5409,   3,  17, UNI_SMALLKANAEXT }   /* insmallkanaextension */,
+  {    10,  7011,  2290,  25,   2, UNI_CCC__214 }   /* canonicalcombiningclass=214 */,
+  {     2,  7274,  3709,   9,  11, UNI_MC }   /* category=spacingmark */,
+  {     1,  7274,   199,   9,   2, UNI_TITLE }   /* category=lt */,
+  {     0,  7404,  1715,  21,   7, UNI_BC__RLI }   /* bidiclass=righttoleftisolate */,
+  {     0,  3391,  1803,  12,   9, UNI_NV__10000000 }   /* numericvalue=10000000 */,
+  {     4,  1102,  1438,   4,  10, UNI_CHRS }   /* scx=chorasmian */,
+  {    16,  6450,   325,  14,   2, UNI_SB__UP }   /* sentencebreak=up */,
+  {     3,  2732,  1037,  10,   4, UNI_ARABICEXTB }   /* blk=arabicextb */,
+  {     1,  3817,   389,  14,   1, UNI_NV__16 }   /* numericvalue=16 */,
+  {     1,  4845,  5671,  16,   3, -UNI__PERL_PATWS }   /* patternwhitespace=n */,
+  {     1,     2,  3938,   1,  16, UNI_UCAS }   /* canadiansyllabics */,
+  {     2,  1823,  1205,   7,   4, UNI_SC__GRAN }   /* script=gran */,
+  {     0,  2536,  2566,   3,   3, UNI_JG__HEH }   /* jg=heh */,
+  {     0,   410,     0,   4,   0, UNI_GONM }   /* gonm */,
+  {     5,  2514,  2057,   3,  11, UNI_MATHALPHANUM }   /* ismathalphanum */,
+  {     0,  1198,  8214,   3,  32, UNI_DIACRITICALSEXT }   /* incombiningdiacriticalmarksextended */,
+  {     2,   309,  6693,   3,  21, UNI_TRANSPORTANDMAP }   /* intransportandmapsymbols */,
+  {     0,  7591,  3001,   3,   7, UNI_LB__NU }   /* lb=numeric */,
+  {     2,  6427,  7328,  13,  14, UNI_JG__NOJOININGGROUP }   /* joininggroup=nojoininggroup */,
+  {     2,    65,     0,   2,   0, UNI_MN }   /* mn */,
+  {     0,  1823,   333,   7,   4, UNI_CARI }   /* script=cari */,
+  {     1,    33,   463,   1,   3, UNI_SHAW }   /* shaw */,
+  {     0,  1906,  3622,   7,   3, UNI_KANGXI }   /* blk=kangxi */,
+  {     0,  6427,  7342,  13,  14, UNI_JG__HAMZAONHEHGOAL }   /* joininggroup=tehmarbutagoal */,
+  {     0,  5937,  2931,  20,   3, UNI__PERL_NCHAR }   /* noncharactercodepoint=t */,
+  {     1,   461,  4620,   2,  16, UNI_LINEARBSYLLABARY }   /* islinearbsyllabary */,
+  {     4,   461,  3984,   2,  17, UNI_EPRES }   /* isemojipresentation */,
+  {    10,  2766,  3706,   3,  14, UNI_MN }   /* gc=nonspacingmark */,
+  {     1,  2536,  6205,   3,  19, UNI_JG__BURUSHASKIYEHBARREE }   /* jg=burushaskiyehbarree */,
+  {     2,  1823,  1223,   7,   4, UNI_SC__KANA }   /* script=kana */,
+  {     0,  6165,  5440,   3,  20, UNI_HMNP }   /* sc=nyiakengpuachuehmong */,
+  {     4,  1272,  1214,   3,   3, UNI_CHER }   /* ischer */,
+  {     1,  1715,   440,   4,   2, UNI_OLCK }   /* isolck */,
+  {     0,   292,  1318,   3,   3, UNI_NV__200 }   /* nv=200 */,
+  {     0,   461,  1397,   2,   4, UNI_IDST }   /* isidst */,
+  {     1,   461,  5068,   2,   4, UNI_MANI }   /* ismani */,
+  {     0,  2280,  2656,  10,   3, UNI_IN__5 }   /* presentin=5.0 */,
+  {     0,  1059,   599,   6,   2, UNI_NFKDQC__N }   /* nfkdqc=n */,
+  {     0,   552,   386,   4,   3, UNI_AGE__3_DOT_2 }   /* age=3.2 */,
+  {     1,  6185,     0,  20,   0, UNI_GLAGOLITICSUP }   /* glagoliticsupplement */,
+  {     0,  1667,   825,   4,   7, UNI_SHAW }   /* blk=shavian */,
+  {     1,   916,   584,   4,   3, UNI_EBASE }   /* ebase=t */,
+  {     0,  6165,  1144,   3,   9, UNI_BHKS }   /* sc=bhaiksuki */,
+  {     0,  1396,   353,   8,   2, UNI_XIDS }   /* xidstart=y */,
+  {     1,  1102,   120,   4,   4, UNI_LAO }   /* scx=laoo */,
+  {     4,  1667,   746,   4,   7, UNI_INMARCHEN }   /* blk=marchen */,
+  {     1,    30,  1591,   1,  11, UNI_INSAURASHTRA }   /* insaurashtra */,
+  {     2,  3349,     0,  15,   0, UNI_MERC }   /* meroiticcursive */,
+  {     6,   339,  8030,   4,   9, UNI_CCC__AL }   /* ccc=aboveleft */,
+  {    16,  1424,  2290,   7,   2, UNI_CCC__14 }   /* ccc=ccc14 */,
+  {     1,   461,  1212,   2,   9, UNI_QAAI }   /* isinherited */,
+  {     1,  6450,  5090,  13,   6, UNI_SB__CL }   /* sentencebreak=close */,
+  {     3,  1011,   599,   2,   2, -UNI_CI }   /* ci=n */,
+  {     0,  4424,  3692,  17,   4, UNI_LISU }   /* scriptextensions=lisu */,
+  {     0,   257,   934,   4,   2, -UNI_CWCM }   /* cwcm=f */,
+  {     0,  1102,  1572,   4,  10, UNI_XPEO }   /* scx=oldpersian */,
+  {     2,   292,   393,   3,   2, UNI_NV__15 }   /* nv=15 */,
+  {     2,  7669,    32,  20,   1, UNI_LB__H2 }   /* hangulsyllabletype=lv */,
+  {     1,   261,   353,   5,   4, UNI_CWKCF }   /* cwkcf=yes */,
+  {     3,  6165,   732,   3,   7, UNI_SC__LINA }   /* sc=lineara */,
+  {     2,  7648,   363,  18,   3, UNI_DT__SML }   /* decompositiontype=sml */,
+  {     0,   339,   388,   4,   2, UNI_CCC__26 }   /* ccc=26 */,
+  {     3,   309,  8619,   2,  21, UNI_MATHOPERATORS }   /* inmathematicaloperators */,
+  {     8,  3514,  2705,   7,  13, UNI_ANCIENTSYMBOLS }   /* block=ancientsymbols */,
+  {     0,  8343,  2613,  22,   6, UNI_LB__ZWJ }   /* indicsyllabiccategory=joiner */,
+  {     2,   609,   928,   2,   3, UNI_LB__OP }   /* lb=op */,
+  {     0,  2483,   585,   5,   2, UNI_CASED }   /* cased=t */,
+  {     3,  5460,   934,  19,   6, -UNI_TERM }   /* terminalpunctuation=false */,
+  {     0,    21,  7241,   1,  10, UNI_ENCLOSEDCJK }   /* enclosedcjk */,
+  {     8,  3021,   295,   4,   2, UNI_IN__9 }   /* in=v90 */,
+  {    16,  7591,  2944,   3,  11, UNI_LB__BB }   /* lb=breakbefore */,
+  {     1,  4360,    63,  10,   2, UNI_LB__CP }   /* linebreak=cp */,
+  {     3,  4941,  1037,  10,   4, UNI_KANAEXTB }   /* block=kanaextb */,
+  {     0,  6165,  1465,   3,  10, UNI_DIAK }   /* sc=divesakuru */,
+  {     0,  3013,   934,   5,   6, -UNI_EPRES }   /* epres=false */,
+  {     0,  1667,  3093,   4,   5, UNI_ASCII }   /* blk=ascii */,
+  {     0,  1191,     0,   4,   0, UNI_BENG }   /* beng */,
+  {     4,  1397,   598,   3,   3, -UNI_IDST }   /* idst=n */,
+  {     2,   309,  2222,   2,   2, UNI_IN__6 }   /* in=6 */,
+  {     0,  4360,     9,  10,   2, UNI_LB__CM }   /* linebreak=cm */,
+  {     7,   461,  2468,   2,  13, UNI_IPAEXT }   /* isipaextensions */,
+  {     1,  3490,  1037,  12,   4, UNI_CYRILLICEXTB }   /* blk=cyrillicextb */,
+  {     1,  4424,   430,  17,   4, UNI_NKO }   /* scriptextensions=nkoo */,
+  {     0,  1667,  4176,   4,  15, UNI_INHANGUL }   /* blk=hangulsyllables */,
+  {     0,  2766,  6677,   3,  14, UNI_LM }   /* gc=modifierletter */,
+  {     1,    19,   599,   4,   2, -UNI_POSIXXDIGIT }   /* ahex=n */,
+  {     7,  6427,   484,  13,   3, UNI_JG__HAH }   /* joininggroup=hah */,
+  {     5,  6165,   527,   3,   6, UNI_RJNG }   /* sc=rejang */,
+  {     4,  1086,     0,   4,   0, UNI_KTHI }   /* kthi */,
+  {     4,  7011,  6289,  23,   5, UNI_CCC__L }   /* canonicalcombiningclass=left */,
+  {     4,  7752,   225,  23,   2, UNI_JG__MANICHAEANPE }   /* joininggroup=manichaeanpe */,
+  {     0,  6165,   369,   3,   6, UNI_GOTH }   /* sc=gothic */,
+  {     2,  1667,  5185,   4,  20, UNI_INANATOLIANHIEROGLYPHS }   /* blk=anatolianhieroglyphs */,
+  {     2,  1391,  1652,   3,   7, UNI_WB__NL }   /* wb=newline */,
+  {     2,  1065,  2083,   4,   8, UNI_NV__1_SLASH_9 }   /* nv=1.111e-01 */,
+  {     0,  5156,  1645,  10,   7, UNI_WB__LE }   /* wordbreak=aletter */,
+  {     0,  2232,  2119,   8,   4, UNI_NV__1_SLASH_12 }   /* nv=8.333e-02 */,
+  {     0,   292,  2106,   3,   9, UNI_NV__3_SLASH_2 }   /* nv=1.500e+00 */,
+  {     4,  6870,   353,  20,   2, UNI_CE }   /* compositionexclusion=y */,
+  {     4,  3817,  3876,  15,   2, UNI_NV__1_SLASH_80 }   /* numericvalue=1/80 */,
+  {     0,  4424,  5876,  17,   9, UNI_SUND }   /* scriptextensions=sundanese */,
+  {     2,  7537,   353,  10,   2, UNI_XPOSIXALPHA }   /* alphabetic=y */,
+  {     0,  1272,  7972,   3,  29, UNI_CUNEIFORMNUMBERS }   /* iscuneiformnumbersandpunctuation */,
+  {     8,  1455,   934,   3,   2, -UNI_DEP }   /* dep=f */,
+  {     1,  1823,  5958,   7,   7, UNI_SC__SINH }   /* script=sinhala */,
+  {     0,  5065,  4255,  13,   4, UNI_JG__MANICHAEANRESH }   /* jg=manichaeanresh */,
+  {     0,  7274,  4602,   9,  18, UNI_PI }   /* category=initialpunctuation */,
+  {     2,  1102,   369,   4,   4, UNI_GOTH }   /* scx=goth */,
+  {     5,  2348,  5671,  12,   4, -UNI_CI }   /* caseignorable=no */,
+  {     1,  2718,   327,   3,   3, UNI_BC__FSI }   /* bc=fsi */,
+  {     1,  3021,  3861,   4,   2, UNI_IN__7 }   /* in=v70 */,
+  {     4,  6165,   414,   3,   3, UNI_SC__HAN }   /* sc=han */,
+  {     1,  4043,   353,   4,   4, UNI_IDSB }   /* idsb=yes */,
+  {     2,  2002,  1479,   7,   5, UNI_POSIXSPACE }   /* isposixspace */,
+  {     4,  8246,  5308,  24,  15, UNI_LOE }   /* indicpositionalcategory=visualorderleft */,
+  {     2,  4424,   462,  17,   4, UNI_SHAW }   /* scriptextensions=shaw */,
+  {     4,  2220,     0,  12,   0, UNI_NV__1_SLASH_16 }   /* nv=6.250e-02 */,
+  {     4,  1455,   353,   3,   2, UNI_DEP }   /* dep=y */,
+  {     0,  3791,   585,   4,   5, UNI_MATH }   /* math=true */,
+  {     0,  2280,  2080,  11,   3, UNI_IN__11 }   /* presentin=11.0 */,
+  {     1,   622,   934,   7,   2, -UNI_EXTPICT }   /* extpict=f */,
+  {     2,  2068,     0,   4,   0, UNI_MEND }   /* mend */,
+  {     0,  6427,  6205,  13,  19, UNI_JG__BURUSHASKIYEHBARREE }   /* joininggroup=burushaskiyehbarree */,
+  {     0,   461,  3101,   2,   5, UNI_XPOSIXDIGIT }   /* isdigit */,
+  {     2,  3817,   891,  15,   2, UNI_NV__1_SLASH_10 }   /* numericvalue=1/10 */,
+  {     0,  2324,  3228,   6,  15, UNI_INIMPERIALARAMAIC }   /* block=imperialaramaic */,
+  {     0,     2,  1966,   1,   9, UNI_COMPATJAMO }   /* compatjamo */,
+  {     0,    30,  5124,   1,  20, UNI_OTTOMANSIYAQNUMBERS }   /* isottomansiyaqnumbers */,
+  {     3,  6062,  5848,  14,   9, UNI_ETHIOPICEXTA }   /* block=ethiopicextendeda */,
+  {     7,  4407,   274,  17,   1, UNI_ri_values_index }   /* regionalindicator= */,
+  {     0,  7011,  2735,  23,   3, UNI_CCC__AR }   /* canonicalcombiningclass=ar */,
+  {     1,    30,  2263,   1,   3, UNI_DI }   /* isdi */,
+  {     0,  7011,   288,  24,   2, UNI_CCC__30 }   /* canonicalcombiningclass=30 */,
+  {     1,  6866,   353,  24,   4, UNI_COMPEX }   /* fullcompositionexclusion=yes */,
+  {     0,  7537,   353,  10,   4, UNI_XPOSIXALPHA }   /* alphabetic=yes */,
+  {     0,  1667,   499,   4,   6, UNI_INLYDIAN }   /* blk=lydian */,
+  {     1,   597,  1127,   3,   3, UNI_DT__FIN }   /* dt=fin */,
+  {     0,   298,   274,   2,   1, UNI_ri_values_index }   /* ri= */,
+  {     0,  1223,  5848,   4,   9, UNI_KANAEXTA }   /* kanaextendeda */,
+  {     2,  1823,  1975,   7,  10, UNI_SOGO }   /* script=oldsogdian */,
+  {     1,   271,   363,   4,   2, UNI_GCB__SM }   /* gcb=sm */,
+  {     1,  3848,     0,  14,   0, UNI_NV__7 }   /* numericvalue=7 */,
+  {     0,   309,  3663,   2,  10, UNI_INDEVANAGARI }   /* indevanagari */,
+  {     2,   622,   598,   6,   2, UNI_extpict_values_index }   /* extpict= */,
+  {     0,  2324,  4176,   6,   6, UNI_INHANGUL }   /* block=hangul */,
+  {     0,  1065,  2131,   4,   8, UNI_NV__1_SLASH_6 }   /* nv=1.667e-01 */,
+  {     0,   461,   236,   2,   4, UNI_ZANB }   /* iszanb */,
+  {     0,  2018,  2908,  12,  11, UNI_JT__C }   /* joiningtype=joincausing */,
+  {     0,   461,    13,   2,   2, UNI_LM }   /* islm */,
+  {     1,  3130,  5292,   6,  16, UNI_INPUNCTUATION }   /* blk=generalpunctuation */,
+  {     0,   461,  3098,   2,   8, UNI_XPOSIXXDIGIT }   /* ishexdigit */,
+  {     1,  1823,   414,   7,   3, UNI_SC__HAN }   /* script=han */,
+  {     0,  4360,  2599,  10,  10, UNI_LB__NS }   /* linebreak=nonstarter */,
+  {     1,  6120,     0,  22,   0, UNI_DIACRITICALSFORSYMBOLS }   /* diacriticalsforsymbols */,
+  {     0,  7383,  4827,  10,  18, UNI_BC__B }   /* bidiclass=paragraphseparator */,
+  {     1,  7591,  4667,   3,  16, UNI_LB__CL }   /* lb=closepunctuation */,
+  {     0,  1243,  8073,   4,  22, UNI_CJK }   /* block=cjkunifiedideographs */,
+  {     1,  5658,  6374,  15,   8, UNI_IDENTIFIERTYPE__OBSOLETE }   /* identifiertype=obsolete */,
+  {     1,   887,   546,   5,   3, UNI_AGE__13 }   /* age=13.0 */,
+  {     1,  1801,     0,   8,   0, UNI_NV__10000 }   /* nv=10000 */,
+  {     0,  2324,  2068,   6,  12, UNI_INMENDEKIKAKUI }   /* block=mendekikakui */,
+  {     0,  1102,   658,   4,   5, UNI_DOGR }   /* scx=dogra */,
+  {     0,  5916,   353,  21,   2, UNI_LOE }   /* logicalorderexception=y */,
+  {     2,  1823,  5067,   6,   5, UNI_SC__MANI }   /* script=mani */,
+  {     2,  8601,   837,  10,   3, UNI_SUPPUAA }   /* block=suppuaa */,
+  {     2,   253,   353,   4,   4, UNI_CWCF }   /* cwcf=yes */,
+  {    16,  1823,   673,   7,   5, UNI_OSGE }   /* script=osage */,
+  {     0,    30,  4089,   1,  18, UNI_INDICSIYAQNUMBERS }   /* isindicsiyaqnumbers */,
+  {     1,   152,     0,   4,   0, UNI_OSGE }   /* osge */,
+  {     0,   641,   644,   3,   4, UNI_LB__H3 }   /* hst=lvt */,
+  {     2,  2287,  2199,   4,   3, UNI_IN__12 }   /* in=12.0 */,
+  {     3,  5156,  1829,   9,   3, UNI_WB__ML }   /* wordbreak=ml */,
+  {     2,   461,  3093,   2,  13, UNI_POSIXXDIGIT }   /* isasciihexdigit */,
+  {     4,  3391,  2155,  13,   9, UNI_NV__1_SLASH_32 }   /* numericvalue=3.125e-02 */,
+  {     0,  1102,   446,   4,   4, UNI_PHLI }   /* scx=phli */,
+  {    10,  2324,  4896,   6,   8, UNI_BAMUMSUP }   /* block=bamumsup */,
+  {     0,   309,  8142,   2,  32, UNI_IDEOGRAPHICSYMBOLS }   /* inideographicsymbolsandpunctuation */,
+  {     1,  1272,  6228,   4,   8, UNI_CJKSYMBOLS }   /* iscjksymbols */,
+  {     0,   461,   967,   2,   8, UNI_GUJR }   /* isgujarati */,
+  {     0,  3724,   919,  12,   3, UNI_JG__MALAYALAMSSA }   /* jg=malayalamssa */,
+  {     0,   461,  5769,   2,   4, UNI_EMOD }   /* isemod */,
+  {     4,  4502,  5848,   9,   9, UNI_LATINEXTA }   /* blk=latinextendeda */,
+  {     1,  2766,  1611,   3,   2, UNI_LOWERCASELETTER }   /* gc=ll */,
+  {     2,  7495,   582,  28,   2, UNI_CCC__122 }   /* canonicalcombiningclass=ccc122 */,
+  {     1,  4043,   934,   4,   6, -UNI_IDSB }   /* idsb=false */,
+  {     5,  6165,   840,   3,   7, UNI_SC__TGLG }   /* sc=tagalog */,
+  {     3,   461,  1610,   2,   3, UNI_ALL }   /* isall */,
+  {     0,  2842,  6142,   3,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* isearlydynasticcuneiform */,
+  {     0,   461,   454,   2,   4, UNI_PRTI }   /* isprti */,
+  {     0,  2766,  3263,   3,  13, UNI_XPOSIXDIGIT }   /* gc=decimalnumber */,
+  {     0,  3817,  2091,  14,   8, UNI_NV__1_SLASH_8 }   /* numericvalue=1.250e-01 */,
+  {     3,  1424,   288,   8,   2, UNI_CCC__130 }   /* ccc=ccc130 */,
+  {     0,   309,    32,   2,   2, UNI_INVS }   /* invs */,
+  {     0,   499,     0,   4,   0, UNI_LYDI }   /* lydi */,
+  {     2,  5065,  3740,  13,   3, UNI_JG__MANICHAEANMEM }   /* jg=manichaeanmem */,
+  {     4,   597,   604,   3,   4, UNI_EA__F }   /* dt=wide */,
+  {     0,  6103,     0,  13,   0, UNI_MATHOPERATORS }   /* mathoperators */,
+  {     1,  2403,  4511,   8,   9, UNI_ETHIOPICEXTB }   /* ethiopicextendedb */,
+  {     0,   309,  1562,   2,  10, UNI_INNAGMUNDARI }   /* innagmundari */,
+  {     0,    32,   353,   2,   2, UNI_VS }   /* vs=y */,
+  {     3,  7274,   117,   9,   2, UNI_XPOSIXDIGIT }   /* category=nd */,
+  {     8,  7804,   599,  11,   2, -UNI_IDEO }   /* ideographic=n */,
+  {     1,  7084,  4659,   8,   9, UNI_ARABICEXTC }   /* inarabicextendedc */,
+  {     2,  1823,  1358,   7,   4, UNI_PALM }   /* script=palm */,
+  { 29636,   309,  3663,   2,  13, UNI_DEVANAGARIEXT }   /* indevanagariext */,
+  {     0,  3391,     0,  13,   0, UNI_nv_values_index }   /* numericvalue= */,
+  {     8,   461,  5876,   2,   4, UNI_SUND }   /* issund */,
+  {     2,  2718,  5497,   3,  18, UNI_BC__FSI }   /* bc=firststrongisolate */,
+  {     0,  7752,   636,  23,   3, UNI_JG__MANICHAEANNUN }   /* joininggroup=manichaeannun */,
+  {     3,   461,   537,   2,   6, UNI_TNSA }   /* istangsa */,
+  {     0,  6510,     0,  24,   0, UNI_HIGHPUSURROGATES }   /* highprivateusesurrogates */,
+  {     0,  1102,  1125,   4,   8, UNI_TFNG }   /* scx=tifinagh */,
+  {     2,  2220,     0,   4,   0, UNI_NV__6 }   /* nv=6 */,
+  {     0,  7480,     0,  14,   0, UNI_PUA }   /* privateusearea */,
+  {     0,  1823,  3538,   7,   7, UNI_SC__CPRT }   /* script=cypriot */,
+  {     2,  1530,  1505,   6,   4, UNI_KANAEXTA }   /* iskanaexta */,
+  {     0,   461,  2301,   2,  11, UNI_XIDC }   /* isxidcontinue */,
+  {     6,  1667,  3649,   4,  11, UNI_PHONETICEXT }   /* blk=phoneticext */,
+  {     6,  3803,   599,  14,   3, UNI_NFKCQC__N }   /* nfkcquickcheck=no */,
+  {     2,  7669,  3218,  20,  10, UNI_GCB__L }   /* hangulsyllabletype=leadingjamo */,
+  {     0,   461,   132,   2,   4, UNI_MTEI }   /* ismtei */,
+  {     2,  3490,  5848,  12,   9, UNI_CYRILLICEXTA }   /* blk=cyrillicextendeda */,
+  {     0,  6076,  5292,   8,  16, UNI_INPUNCTUATION }   /* block=generalpunctuation */,
+  {     4,  4424,  2780,  17,   6, UNI_COPT }   /* scriptextensions=coptic */,
+  {     0,   309,  2009,   2,   6, UNI_INSYRIAC }   /* insyriac */,
+  {     0,   461,  2301,   2,   4, UNI_XIDC }   /* isxidc */,
+  {     2,  1823,  1582,   7,  10, UNI_PHNX }   /* script=phoenician */,
+  {     0,  1102,  1107,   5,   3, UNI_TALU }   /* scx=talu */,
+  {    14,  5958,     0,   4,   0, UNI_SINH }   /* sinh */,
+  {     0,  3724,   699,   4,   3, UNI_JG__MEEM }   /* jg=meem */,
+  {     0,   309,  5876,   2,  12, UNI_SUNDANESESUP }   /* insundanesesup */,
+  {     8,  2324,  2335,   6,  13, UNI_BLOCKELEMENTS }   /* block=blockelements */,
+  {     0,  1994,   585,   7,   5, UNI_RADICAL }   /* radical=true */,
+  {     4,  3677,  4770,  15,  10, UNI_LATINEXTADDITIONAL }   /* islatinextendedadditional */,
+  {     0,  6165,  1592,   3,  10, UNI_SAUR }   /* sc=saurashtra */,
+  {     3,   253,   274,   4,   1, UNI_cwcf_values_index }   /* cwcf= */,
+  {     0,  6163,  4119,   5,  12, UNI_INSC__NUMBERJOINER }   /* insc=numberjoiner */,
+  {     0,  2018,  5089,  10,   3, UNI_JT__C }   /* joiningtype=c */,
+  {     0,   732,  5652,   4,   8, UNI_LB__ID }   /* linebreak=id */,
+  {     0,  2514,   129,   3,   3, UNI_MEDF }   /* ismedf */,
+  {     0,   406,     0,   3,   0, UNI_DIA }   /* dia */,
+  {     0,  3633,  1674,   7,   4, UNI_LATINEXTD }   /* inlatinextd */,
+  {     0,  1102,  4896,   4,   5, UNI_BAMU }   /* scx=bamum */,
+  {     1,  7198,  4457,   6,  15, UNI_SUTTONSIGNWRITING }   /* blk=suttonsignwriting */,
+  {     1,  4941,  4511,  10,   9, UNI_KANAEXTB }   /* block=kanaextendedb */,
+  {     0,   461,    32,   2,   2, UNI_VS }   /* isvs */,
+  {     0,  2324,  5876,   6,  19, UNI_SUNDANESESUP }   /* block=sundanesesupplement */,
+  {     2,  6165,  1262,   3,   7, UNI_SOYO }   /* sc=soyombo */,
+  {     0,  1396,     0,   4,   0, UNI_XIDS }   /* xids */,
+  {     0,  1823,   653,   7,   5, UNI_SC__BUHD }   /* script=buhid */,
+  {     2,   533,    54,   3,   2, UNI_SB__SC }   /* sb=sc */,
+  {     4,  4424,  3436,  17,  15, UNI_SARB }   /* scriptextensions=oldsoutharabian */,
+  {     2,  5799,   837,   6,   3, UNI_SUPPUAA }   /* insuppuaa */,
+  {     1,  4970,   352,  16,   2, UNI_ebase_values_index }   /* emojimodifierbase= */,
+  {     5,  1667,  2852,   4,   7, UNI_MAHJONG }   /* blk=mahjong */,
+  {     0,  2391,  4659,  10,   9, UNI_CYRILLICEXTC }   /* incyrillicextendedc */,
+  {     1,  2766,   625,   3,   2, UNI_PI }   /* gc=pi */,
+  {     0,  2930,  2919,   3,  11, UNI_JT__L }   /* jt=leftjoining */,
+  {     4,   309,  3349,   2,  15, UNI_INMEROITICCURSIVE }   /* inmeroiticcursive */,
+  {     0,  7084,     0,  26,   0, UNI_ARABICPFB }   /* inarabicpresentationformsb */,
+  {     0,  7011,  3526,  24,  12, UNI_CCC__0 }   /* canonicalcombiningclass=notreordered */,
+  {     1,  5939,   934,   5,   2, -UNI__PERL_NCHAR }   /* nchar=f */,
+  {     2,  1823,   909,   7,   4, UNI_BALI }   /* script=bali */,
+  {     0,  1200,  6557,   3,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* cjkcompatideographssup */,
+  {     2,  2494,  3639,   9,   9, UNI_GEORGIANEXT }   /* isgeorgianextended */,
+  {     0,  2324,  6900,   6,  14, UNI_BYZANTINEMUSIC }   /* block=byzantinemusic */,
+  {     1,  6816,   599,  25,   2, -UNI_CWKCF }   /* changeswhennfkccasefolded=n */,
+  {     0,  5065,  2015,  13,   3, UNI_JG__MANICHAEANWAW }   /* jg=manichaeanwaw */,
+  {     4,  5205,  1505,  11,   4, UNI_MYANMAREXTA }   /* blk=myanmarexta */,
+  {     0,  3677,   204,   9,   2, UNI_LATINEXTF }   /* islatinextf */,
+  {     0,   292,   295,   3,   2, UNI_NV__90 }   /* nv=90 */,
+  {     0,  4360,  2609,  10,  10, UNI_LB__WJ }   /* linebreak=wordjoiner */,
+  {     3,  5595,   585,  21,   2, UNI_CWT }   /* changeswhentitlecased=t */,
+  {     3,  7011,   344,  24,   3, UNI_CCC__BL }   /* canonicalcombiningclass=218 */,
+  {     0,  6165,   499,   3,   6, UNI_LYDI }   /* sc=lydian */,
+  {     0,   461,  7537,   2,  27, UNI_ALPHABETICPF }   /* isalphabeticpresentationforms */,
+  {     1,  4407,   353,  17,   4, UNI_RI }   /* regionalindicator=yes */,
+  {     1,   461,  6332,   2,  19, UNI_JAMOEXTB }   /* ishanguljamoextendedb */,
+  {     4,   309,   283,   2,   5, UNI_INNUSHU }   /* innushu */,
+  {     0,  5274,  8575,   9,  26, UNI_DIACRITICALSSUP }   /* combiningdiacriticalmarkssupplement */,
+  {     3,  2536,  1536,   3,   7, UNI_JG__THINYEH }   /* jg=thinyeh */,
+  {     3,  8276,  4639,   6,  12, UNI_MISCMATHSYMBOLSB }   /* inmiscmathsymbolsb */,
+  {     0,  1102,    67,   4,   4, UNI_CPRT }   /* scx=cprt */,
+  {     0,  4424,  1191,  17,   4, UNI_BENG }   /* scriptextensions=beng */,
+  {     1,  4424,  4951,  17,   4, UNI_EGYP }   /* scriptextensions=egyp */,
+  {     1,    15,  4806,   2,   3, UNI_AGE__6 }   /* age=6 */,
+  {     0,  1243,  1669,   4,   9, UNI_CJKEXTD }   /* block=cjkextd */,
+  {     0,   510,   395,   5,   2, UNI_NV__3_SLASH_16 }   /* nv=3/16 */,
+  {     1,  2732,  2705,   5,  13, UNI_ANCIENTSYMBOLS }   /* blk=ancientsymbols */,
+  {     0,  1667,  6576,   5,  21, UNI_INDICNUMBERFORMS }   /* blk=commonindicnumberforms */,
+  {     3,  6165,  4176,   3,   6, UNI_SC__HANG }   /* sc=hangul */,
+  {     4,  1212,     0,   9,   0, UNI_QAAI }   /* inherited */,
+  {     1,  3391,   342,  12,   3, UNI_NV__12 }   /* numericvalue=12 */,
+  {     0,  1414,     0,  10,   0, UNI_BOXDRAWING }   /* boxdrawing */,
+  {     1,  8246,   140,  24,   2, UNI_INPC__NA }   /* indicpositionalcategory=na */,
+  {     0,     2,  6576,   1,  21, UNI_INDICNUMBERFORMS }   /* commonindicnumberforms */,
+  {     1,  2503,   353,  11,   2, UNI_JOINC }   /* joincontrol=y */,
+  {     1,  7404,     0,  11,   0, UNI_BC__R }   /* bidiclass=r */,
+  {     8,  4424,  1098,  17,   4, UNI_NSHU }   /* scriptextensions=nshu */,
+  {     1,  1667,  3026,   4,  14, UNI_INPSALTERPAHLAVI }   /* blk=psalterpahlavi */,
+  {    15,   461,  1484,   2,   4, UNI_BUGI }   /* isbugi */,
+  {     8,   298,   934,   2,   2, -UNI_RI }   /* ri=f */,
+  {     1,  5065,  4741,  13,   5, UNI_JG__MANICHAEANALEPH }   /* jg=manichaeanaleph */,
+  {     4,  1331,     0,   9,   0, UNI_PERM }   /* oldpermic */,
+  {     3,  2766,  4150,   3,   5, UNI_P }   /* gc=punct */,
+  {     4,  6618,  6629,   5,  13, UNI_INPC__BOTTOMANDLEFT }   /* inpc=bottomandleft */,
+  {     5,  5216,  4770,  14,  10, UNI_LATINEXTADDITIONAL }   /* block=latinextadditional */,
+  {     5,  1102,   454,   4,   4, UNI_PRTI }   /* scx=prti */,
+  {     1,   271,   644,   2,   2, UNI_L }   /* gc=l */,
+  {     2,  2503,   599,  11,   3, -UNI_JOINC }   /* joincontrol=no */,
+  {     0,  1334,     0,   4,   0, UNI_PERM }   /* perm */,
+  {     2,  7752,  4235,  23,   4, UNI_JG__MANICHAEANBETH }   /* joininggroup=manichaeanbeth */,
+  {     1,   292,  3860,   2,   3, UNI_NV__70 }   /* nv=70 */,
+  {     1,   461,  4176,   2,  15, UNI_INHANGUL }   /* ishangulsyllables */,
+  {     3,  2324,  8142,   6,  32, UNI_IDEOGRAPHICSYMBOLS }   /* block=ideographicsymbolsandpunctuation */,
+  {    12,  6427,  3743,  13,   3, UNI_JG__TAW }   /* joininggroup=taw */,
+  {     0,  7198,  4150,   7,  11, UNI_SUPPUNCTUATION }   /* blk=suppunctuation */,
+  {     0,   461,   673,   2,   5, UNI_OSGE }   /* isosage */,
+  {     2,  3502,     0,  12,   0, UNI_INETHIOPIC }   /* blk=ethiopic */,
+  {     1,  1823,   802,   7,   4, UNI_SARB }   /* script=sarb */,
+  {    11,  3863,  1805,  14,   5, UNI_NV__800000 }   /* numericvalue=800000 */,
+  {     0,  1272,  3611,   5,   6, UNI_CJKCOMPAT }   /* iscjkcompat */,
+  {     0,  8601,  5909,   9,   7, UNI_SUPARROWSC }   /* block=suparrowsc */,
+  {     0,  4360,  7110,  10,  13, UNI_LB__CM }   /* linebreak=combiningmark */,
+  {     4,   339,   350,   4,   2, UNI_CCC__9 }   /* ccc=vr */,
+  {     1,    13,     0,   2,   0, UNI_LM }   /* lm */,
+  {     5,  8607,     0,  33,   0, UNI_SUPMATHOPERATORS }   /* supplementalmathematicaloperators */,
+  {     2,     2,  8214,   1,  24, UNI_DIACRITICALS }   /* combiningdiacriticalmarks */,
+  {     2,  4371,   933,   5,   7, -UNI_XPOSIXSPACE }   /* wspace=false */,
+  {     0,   339,   430,   4,   2, UNI_CCC__7 }   /* ccc=nk */,
+  {     0,  1424,   891,   7,   2, UNI_CCC__10 }   /* ccc=ccc10 */,
+  {     2,    30,  6486,   1,  24, UNI_ZNAMENNYMUSIC }   /* isznamennymusicalnotation */,
+  {     2,  6165,    63,   3,   4, UNI_SC__CPMN }   /* sc=cpmn */,
+  {     0,  7648,  7011,  21,   5, UNI_DT__NONCANON }   /* decompositiontype=noncanon */,
+  {     0,  6165,  1133,   3,   8, UNI_VITH }   /* sc=vithkuqi */,
+  {     1,  6165,  1358,   3,   9, UNI_PALM }   /* sc=palmyrene */,
+  {     2,   461,  7889,   2,  20, UNI_CJK }   /* iscjkunifiedideographs */,
+  {     1,  5460,   599,  19,   2, -UNI_TERM }   /* terminalpunctuation=n */,
+  {     0,  2324,  3908,   6,  16, UNI_TANGUTCOMPONENTS }   /* block=tangutcomponents */,
+  {     0,   461,  2441,   2,   4, UNI_NAND }   /* isnand */,
+  {     1,  7449,  3696,  18,  10, UNI_PHONETICEXTSUP }   /* phoneticextensionssupplement */,
+  {     0,  6062,  6193,  12,   5, UNI_ETHIOPICSUP }   /* block=ethiopicsup */,
+  {     2,  1102,  1191,   4,   4, UNI_BENG }   /* scx=beng */,
+  {     2,  5205,     0,  11,   0, UNI_INMYANMAR }   /* blk=myanmar */,
+  {     1,   461,  5448,   2,   3, UNI_PUA }   /* ispua */,
+  {     3,   309,  4819,   2,   8, UNI_DINGBATS }   /* indingbats */,
+  {     2,   461,  4896,   2,   4, UNI_BAMU }   /* isbamu */,
+  {     0,   339,   348,   4,   2, UNI_CCC__91 }   /* ccc=91 */,
+  {     0,  2766,  4002,   3,  14, UNI_SK }   /* gc=modifiersymbol */,
+  {     0,  6165,  4951,   3,  19, UNI_EGYP }   /* sc=egyptianhieroglyphs */,
+  {     0,  7537,   341,   9,   2, UNI_alpha_values_index }   /* alphabetic= */,
+  {     4,  7669,  2382,  19,   9, UNI_GCB__V }   /* hangulsyllabletype=voweljamo */,
+  {     1,  3514,  4511,  12,   9, UNI_ARABICEXTB }   /* block=arabicextendedb */,
+  {     4,   339,   345,   4,   2, UNI_CCC__18 }   /* ccc=18 */,
+  {     0,  5616,   585,  21,   5, UNI_CWU }   /* changeswhenuppercased=true */,
+  {     0,  8601,  8386,   9,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* block=supsymbolsandpictographs */,
+  {     8,  7011,  3152,  24,  11, UNI_CCC__8 }   /* canonicalcombiningclass=kanavoicing */,
+  {     0,   461,  2811,   2,  12, UNI_KHMERSYMBOLS }   /* iskhmersymbols */,
+  {     0,  1823,  1322,   7,   9, UNI_ITAL }   /* script=olditalic */,
+  {     0,  2280,  6262,  10,   3, UNI_IN__2_DOT_1 }   /* presentin=2.1 */,
+  {     1,  6163,  6923,  14,  11, UNI_INSC__CONSONANTPLACEHOLDER }   /* insc=consonantplaceholder */,
+  {     0,  3014,   290,  12,   2, UNI_IN__14 }   /* presentin=v140 */,
+  {     1,  1823,  1015,   7,   4, UNI_SC__TELU }   /* script=telu */,
+  {     0,  2718,  4472,   3,  15, UNI_BC__BN }   /* bc=boundaryneutral */,
+  {     2,  1102,  3505,   3,   9, UNI_ETHI }   /* scx=ethiopic */,
+  {     0,  4360,  5090,   9,  17, UNI_LB__CP }   /* linebreak=closeparenthesis */,
+  {     1,  1272,     0,   5,   0, UNI_CJK }   /* iscjk */,
+  {     6,  1011,     0,   2,   0, UNI_CI }   /* ci */,
+  {     8,   517,   761,   4,   2, UNI_NV__7_SLASH_2 }   /* nv=7/2 */,
+  {     1,   309,   581,   2,   2, UNI_IN__2 }   /* in=2 */,
+  {     0,   461,    20,   2,   3, UNI_XPOSIXXDIGIT }   /* ishex */,
+  {     0,  2811,     0,   5,   0, UNI_KHMR }   /* khmer */,
+  {     3,  6165,  1562,   3,   4, UNI_NAGM }   /* sc=nagm */,
+  {     1,  1102,   232,   4,   2, UNI_YI }   /* scx=yi */,
+  {     2,  1102,  1358,   4,   4, UNI_PALM }   /* scx=palm */,
+  {     0,  2732,  2312,   5,  12, UNI_AEGEANNUMBERS }   /* blk=aegeannumbers */,
+  {     3,   461,  1285,   2,   9, UNI_SIND }   /* iskhudawadi */,
+  {     1,  1396,   585,   8,   5, UNI_XIDS }   /* xidstart=true */,
+  {    25,  3848,  1805,  14,   5, UNI_NV__700000 }   /* numericvalue=700000 */,
+  {     0,   875,   934,   5,   2, -UNI_UIDEO }   /* uideo=f */,
+  {     1,  2503,     0,   5,   0, UNI_JOINC }   /* joinc */,
+  {     0,  6450,  1612,  14,   2, UNI_LB__LF }   /* sentencebreak=lf */,
+  {     0,  1391,  3451,   3,  12, UNI_WB__EX }   /* wb=extendnumlet */,
+  {     0,  2732,  1723,  10,   3, UNI_ARABICPFB }   /* blk=arabicpfb */,
+  {     3,   634,     0,   7,   0, UNI_HANO }   /* hanunoo */,
+  {     0,  2004,  3100,   5,   6, UNI_POSIXXDIGIT }   /* posixxdigit */,
+  {     2,  6841,   598,  24,   4, -UNI_DI }   /* defaultignorablecodepoint=no */,
+  {     0,   887,  2080,   5,   3, UNI_AGE__11 }   /* age=11.0 */,
+  {     1,  7591,  2043,   3,   2, UNI_GCB__V }   /* lb=jv */,
+  {     0,  6090,  2643,   7,  12, UNI_MISCTECHNICAL }   /* block=misctechnical */,
+  {     5,  1823,  2780,   7,   6, UNI_SC__COPT }   /* script=coptic */,
+  {     1,  1726,     0,   6,   0, UNI_ARAB }   /* isarab */,
+  {     2,  4424,  6642,  17,   6, UNI_BRAH }   /* scriptextensions=brahmi */,
+  {     0,    30,  8141,   1,  33, UNI_IDEOGRAPHICSYMBOLS }   /* isideographicsymbolsandpunctuation */,
+  {     8,   461,   200,   2,   4, UNI_TAVT }   /* istavt */,
+  {    10,   461,  5172,   2,   2, UNI_CASEDLETTER }   /* isl_ */,
+  {     3,  3984,   599,  17,   3, -UNI_EPRES }   /* emojipresentation=no */,
+  {     6,  7011,  8101,  24,  10, UNI_CCC__BR }   /* canonicalcombiningclass=belowright */,
+  {     4,  5065,  4235,  13,   4, UNI_JG__MANICHAEANBETH }   /* jg=manichaeanbeth */,
+  {     5,   895,   392,   5,   2, UNI_AGE__4_DOT_1 }   /* age=v41 */,
+  {     3,   461,  1582,   2,  10, UNI_PHNX }   /* isphoenician */,
+  {     0,  6062,  5820,   7,  18, UNI_ENCLOSEDALPHANUMSUP }   /* block=enclosedalphanumsup */,
+  {     0,  3633,  4698,   6,  12, UNI_LATIN1 }   /* inlatin1supplement */,
+  {     1,   430,     0,   4,   0, UNI_NKO }   /* nkoo */,
+  {     0,   461,   152,   2,   4, UNI_OSGE }   /* isosge */,
+  {     0,   461,  4150,   2,  11, UNI_P }   /* ispunctuation */,
+  {     4,   552,  2656,   4,   3, UNI_AGE__5 }   /* age=5.0 */,
+  {    14,  1823,  5682,   7,   5, UNI_SC__GREK }   /* script=greek */,
+  {     1,  3040,   934,  13,   6, -UNI_QMARK }   /* quotationmark=false */,
+  {     0,  2302,   934,   3,   2, -UNI_IDC }   /* idc=f */,
+  {     2,  1396,   934,   4,   6, -UNI_XIDS }   /* xids=false */,
+  {     7,   590,  6438,   2,   2, UNI_dep_values_index }   /* dep= */,
+  {     1,  7591,     6,   3,   2, UNI_LB__CR }   /* lb=cr */,
+  {     2,     5,     0,   3,   0, UNI_OCR }   /* ocr */,
+  {     1,   461,   148,   2,   4, UNI_ORYA }   /* isorya */,
+  {     1,  6427,  6714,  13,  21, UNI_JG__HANIFIROHINGYAKINNAYA }   /* joininggroup=hanifirohingyakinnaya */,
+  {     3,  3021,  2117,   4,   2, UNI_IN__6_DOT_2 }   /* in=v62 */,
+  {     1,   461,  1117,   2,   8, UNI_TAGB }   /* istagbanwa */,
+  {     0,  4391,     0,  14,   0, UNI_NV__3 }   /* numericvalue=3 */,
+  {     4,  1059,  1793,   4,   3, UNI_nfkdqc_values_index }   /* nfkdqc= */,
+  {     1,  1385,     0,   4,   0, UNI_THAA }   /* thaa */,
+  {     1,  1667,  1992,   4,  10, UNI_YIRADICALS }   /* blk=yiradicals */,
+  {     0,  3677,  2619,   3,  12, UNI_LOWSURROGATES }   /* islowsurrogates */,
+  {     1,  1102,   132,   4,   4, UNI_MTEI }   /* scx=mtei */,
+  {     0,  1790,   353,   5,   2, UNI_NFCQC__Y }   /* nfcqc=y */,
+  {     5,  4731,  8386,  12,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* supplementalsymbolsandpictographs */,
+  {     6,  3832,  1314,  14,   3, UNI_NV__5000 }   /* numericvalue=5000 */,
+  {     3,   302,   934,   5,   2, -UNI__PERL_PATWS }   /* patws=f */,
+  {     1,  1065,     0,   6,   0, UNI_NV__1_SLASH_3 }   /* nv=1/3 */,
+  {     2,   461,   608,   2,   7, UNI_ELBA }   /* iselbasan */,
+  {     0,  2766,   313,   3,   4, UNI_M }   /* gc=mark */,
+  {     1,   461,   339,   2,   2, UNI_XPOSIXCNTRL }   /* iscc */,
+  {     1,   406,   353,   2,   4, UNI_DI }   /* di=yes */,
+  {     1,  3021,  2093,   4,   2, UNI_IN__5 }   /* in=v50 */,
+  {     3,  8505,   590,   3,   2, UNI_XPOSIXDIGIT }   /* nt=de */,
+  {     0,   461,  4016,   2,  14, UNI_ZS }   /* isspaceseparator */,
+  {     0,  2766,  2424,   3,   2, UNI__PERL_SURROGATE }   /* gc=cs */,
+  {     1,  2259,   216,   4,   2, UNI_TOTO }   /* istoto */,
+  {     1,   461,  6586,   2,  11, UNI_NUMBERFORMS }   /* isnumberforms */,
+  {     9,  1065,   760,   4,   3, UNI_NV__11_SLASH_2 }   /* nv=11/2 */,
+  {     4,  6163,  7523,  14,  15, UNI_INSC__CONSONANTSUCCEEDINGREPHA }   /* insc=consonantsucceedingrepha */,
+  {     3,   461,  3100,   2,   6, UNI_XPOSIXXDIGIT }   /* isxdigit */,
+  {     1,  1667,  8153,   7,  21, UNI_CJKSYMBOLS }   /* blk=cjksymbolsandpunctuation */,
+  {     2,  4424,   772,  17,   7, UNI_OLCK }   /* scriptextensions=olchiki */,
+  {     4,  5895,  5149,   5,   7, UNI_SUPARROWSA }   /* issuparrowsa */,
+  {     1,  6165,  3026,   3,  14, UNI_SC__PHLP }   /* sc=psalterpahlavi */,
+  {     0,  1667,  7564,   4,  27, UNI_ANCIENTGREEKMUSIC }   /* blk=ancientgreekmusicalnotation */,
+  {     2,    17,   415,   1,   3, UNI_HANO }   /* hano */,
+  {     6,  1667,  1303,   4,   9, UNI_INNEWTAILUE }   /* blk=newtailue */,
+  {     3,   461,   140,   2,   4, UNI_NARB }   /* isnarb */,
+  {    12,  2324,   825,   6,   7, UNI_SHAW }   /* block=shavian */,
+  {     0,  3514,  5676,   7,  18, UNI_ANCIENTGREEKNUMBERS }   /* block=ancientgreeknumbers */,
+  {     0,  1823,  5391,   7,   4, UNI_CHER }   /* script=cher */,
+  {     2,  6165,   951,   3,   4, UNI_SC__DUPL }   /* sc=dupl */,
+  {     6,   461,  6776,   2,  14, UNI_MEETEIMAYEKEXT }   /* ismeeteimayekext */,
+  {     0,  1102,  4951,   4,   4, UNI_EGYP }   /* scx=egyp */,
+  {     0,  1726,   903,   4,   6, UNI_ARMN }   /* isarmenian */,
+  {     3,  1667,   493,   4,   6, UNI_INKHOJKI }   /* blk=khojki */,
+  {     3,   461,  2256,   2,   8, UNI_PHAISTOS }   /* isphaistos */,
+  {     0,   309,  2411,   2,  11, UNI_KATAKANAEXT }   /* inkatakanaext */,
+  {     0,   597,  1168,   3,   6, UNI_DT__MED }   /* dt=medial */,
+  {     6,  1667,  6776,   4,  11, UNI_INMEETEIMAYEK }   /* blk=meeteimayek */,
+  {     0,  4424,   414,  17,   4, UNI_HANO }   /* scriptextensions=hano */,
+  {     0,  4584,   353,  18,   2, UNI_IDST }   /* idstrinaryoperator=y */,
+  {     3,  1102,  2735,   3,   5, UNI_ARAB }   /* scx=arab */,
+  {     0,    10,  7825,   1,  30, UNI_MATHALPHANUM }   /* mathematicalalphanumericsymbols */,
+  {     1,  5979,  1626,  12,   9, UNI_VO__TU }   /* vo=transformedupright */,
+  {     4,   312,   585,   5,   2, UNI_QMARK }   /* qmark=t */,
+  {     1,  7591,  3760,   3,  13, UNI_LB__PR }   /* lb=prefixnumeric */,
+  {     0,  4424,   725,  17,   7, UNI_KALI }   /* scriptextensions=kayahli */,
+  {     0,  3677,  1037,   7,   4, UNI_LATINEXTB }   /* islatinextb */,
+  {     1,  1667,   216,   4,   4, UNI_INTOTO }   /* blk=toto */,
+  {     9,  1883,   599,  11,   2, -UNI_BIDIC }   /* bidicontrol=n */,
+  {     5,   461,  1086,   2,   4, UNI_KTHI }   /* iskthi */,
+  {     0,  1065,  4404,   4,   3, UNI_NV__13_SLASH_2 }   /* nv=13/2 */,
+  {     0,  1823,  1117,   7,   4, UNI_SC__TAGB }   /* script=tagb */,
+  {     5,  4391,  1805,  14,   5, UNI_NV__300000 }   /* numericvalue=300000 */,
+  {     0,  4424,  2247,  17,   4, UNI_HUNG }   /* scriptextensions=hung */,
+  {     1,  6076,     0,  14,   0, UNI_INGEORGIAN }   /* block=georgian */,
+  {     0,  7669,   585,  18,   2, UNI_GCB__T }   /* hangulsyllabletype=t */,
+  {     8,  5205,  2057,   5,  11, UNI_MATHALPHANUM }   /* blk=mathalphanum */,
+  {     2,    10,  4636,   1,  15, UNI_MISCMATHSYMBOLSB }   /* miscmathsymbolsb */,
+  {     4,  4043,   599,  17,   2, -UNI_IDSB }   /* idsbinaryoperator=n */,
+  {    14,  6450,   592,  14,   2, UNI_SB__SE }   /* sentencebreak=se */,
+  {     1,  3706,  3282,   7,   7, UNI_MN }   /* nonspacingmark */,
+  {     5,  1391,  3053,   3,  11, UNI_WB__DQ }   /* wb=doublequote */,
+  {     0,  1823,  4002,   7,   4, UNI_SC__MODI }   /* script=modi */,
+  {     2,   461,  8667,   2,  18, UNI_CANS }   /* iscanadianaboriginal */,
+  {     0,  2324,   673,   6,   5, UNI_INOSAGE }   /* block=osage */,
+  {     2,  3263,     0,  13,   0, UNI_XPOSIXDIGIT }   /* decimalnumber */,
+  {     1,  5799,  6965,   5,  22, UNI_SUPERANDSUB }   /* insuperscriptsandsubscripts */,
+  {     0,  3892,   274,  16,   1, UNI_sterm_values_index }   /* sentenceterminal= */,
+  {     0,   461,  2503,   2,   5, UNI_JOINC }   /* isjoinc */,
+  {     1,  1391,  3456,   5,   7, UNI_WB__MB }   /* wb=midnumlet */,
+  {     1,  2483,   585,   5,   5, UNI_CASED }   /* cased=true */,
+  {     0,  5255,   341,  19,   2, UNI_extpict_values_index }   /* extendedpictographic= */,
+  {     0,  1823,  2247,   7,   4, UNI_HUNG }   /* script=hung */,
+  {     1,    53,   598,   1,   2, UNI_nt_values_index }   /* nt= */,
   {     1,   814,     0,   4,   0, UNI_QAAI }   /* zinh */,
-  {     0,  6944,  1155,  24,   2, UNI_CCC__35 }   /* canonicalcombiningclass=35 */,
-  {     1,   313,  6069,   2,  22, UNI_DIACRITICALSFORSYMBOLS }   /* indiacriticalsforsymbols */,
-  {     0,  1796,  1755,   7,  11, UNI_MEDF }   /* script=medefaidrin */,
-  {     1,  3450,     0,  12,   0, UNI_INCYRILLIC }   /* blk=cyrillic */,
-  {     1,  4355,   405,  17,   4, UNI_ARMN }   /* scriptextensions=armn */,
-  {     0,   967,   972,   5,   3, UNI_GUJR }   /* gujarati */,
-  {     0,  5607,  6486,  10,   7, UNI_identifierstatus_values_index }   /* identifierstatus= */,
-  {     2,  1102,   360,   4,   6, UNI_CAKM }   /* scx=chakma */,
-  {     1,    75,   602,   3,   3, -UNI_CWU }   /* cwu=no */,
-  {     0,   374,   322,   2,   2, UNI_THAI }   /* thai */,
-  {     3,   313,  5787,   2,  19, UNI_JAMOEXTA }   /* inhanguljamoextendeda */,
-  {     2,   296,  6197,   2,   7, UNI_NV__100000 }   /* nv=100000 */,
-  {     1,  2961,     0,  12,   0, UNI_nt_values_index }   /* numerictype= */,
-  {     1,  3474,  1965,   6,  10, UNI_YIRADICALS }   /* block=yiradicals */,
-  {     4,   464,  1951,   2,   4, UNI_SOGD }   /* issogd */,
-  {     0,   520,  3777,   4,   2, UNI_NV__7_SLASH_8 }   /* nv=7/8 */,
-  {     1,  8276,  5711,  22,  16, UNI_INSC__SYLLABLEMODIFIER }   /* indicsyllabiccategory=syllablemodifier */,
-  {     0,  1977,  1082,   5,   4, UNI_POSIXWORD }   /* posixword */,
-  {     2,   313,   728,   2,   7, UNI_KALI }   /* inkayahli */,
-  {     0,  4355,  1255,  17,   4, UNI_SOYO }   /* scriptextensions=soyo */,
-  {    16,  7527,  4247,   3,  14, UNI_LB__BK }   /* lb=mandatorybreak */,
-  {     2,   895,  2066,   5,   2, UNI_AGE__5 }   /* age=v50 */,
-  {     0,  6112,  5695,   5,  16, UNI_INSC__INVISIBLESTACKER }   /* insc=invisiblestacker */,
-  {     9,  1796,  1470,   7,   8, UNI_SC__BUGI }   /* script=buginese */,
-  {     4,  1102,   240,   4,   4, UNI_ZANB }   /* scx=zanb */,
-  {     1,    14,  1052,   1,   7, UNI_MAHJ }   /* mahajani */,
-  {     2,  2310,   933,  12,   3, -UNI_CI }   /* caseignorable=f */,
-  {     0,  2253,   140,  10,   2, UNI_IN__NA }   /* presentin=na */,
-  {     0,   524,   588,   6,   5, UNI_PATSYN }   /* patsyn=true */,
-  {     0,  3474,  2771,   6,   5, UNI_INKHMER }   /* block=khmer */,
-  {     3,  3543,     0,  16,   0, UNI_HIGHPUSURROGATES }   /* highpusurrogates */,
-  {    12,   696,  4138,   3,  14, UNI_PS }   /* isopenpunctuation */,
-  {     5,  5718,   356,   4,   4, UNI_EMOD }   /* emod=yes */,
-  {     0,   581,  1300,   5,   2, UNI_WB__EB }   /* ccc=200 */,
-  {     2,   464,  7660,   2,  28, UNI_VSSUP }   /* isvariationselectorssupplement */,
-  {     2,  6944,  2138,  24,   2, UNI_CCC__33 }   /* canonicalcombiningclass=33 */,
-  {     0,   719,   493,   5,   3, UNI_KANBUN }   /* inkanbun */,
-  {     2,  3450,  8150,   5,  24, UNI_DIACRITICALS }   /* blk=combiningdiacriticalmarks */,
-  {    10,  1015,     0,   6,   0, UNI_TELU }   /* telugu */,
-  {     0,   313,  1144,   2,   9, UNI_INBHAIKSUKI }   /* inbhaiksuki */,
-  {     1,  6114,  5806,   3,   9, UNI_SC__MONG }   /* sc=mongolian */,
-  {     2,  2310,   933,  12,   7, -UNI_CI }   /* caseignorable=false */,
-  {     4,   464,   691,   2,   5, UNI_BATK }   /* isbatak */,
-  {     5,  3474,  1826,   6,  11, UNI_INSYLOTINAGRI }   /* block=sylotinagri */,
-  {     0,  5990,  5020,  20,   3, UNI_BPT__C }   /* bidipairedbrackettype=c */,
-  {     1,  1102,  3188,   4,  15, UNI_ARMI }   /* scx=imperialaramaic */,
-  {     0,  4291,    10,  10,   2, UNI_LB__CR }   /* linebreak=cr */,
-  {     0,  1529,     0,  10,   0, UNI_KHAR }   /* kharoshthi */,
-  {     3,  2890,  1413,   2,   2, UNI_JT__C }   /* jt=c */,
-  {     2,  1796,  1826,   7,   4, UNI_SC__SYLO }   /* script=sylo */,
-  {     1,  7201,  4081,  16,   5, UNI_P }   /* generalcategory=punct */,
-  {     1,   313,   197,   3,   3, UNI_TAGS }   /* intags */,
-  {     0,   464,  6134,   2,  20, UNI_GLAGOLITICSUP }   /* isglagoliticsupplement */,
-  {     2,  8533,  5858,   9,   7, UNI_SUPARROWSC }   /* block=suparrowsc */,
-  {     0,  5565,   356,  21,   2, UNI_CWU }   /* changeswhenuppercased=y */,
-  {     0,  7208,  6629,   9,  14, UNI_LM }   /* category=modifierletter */,
-  {     2,  1879,  2018,   4,  12, UNI_INMASARAMGONDI }   /* blk=masaramgondi */,
-  {     0,  1702,  8110,   8,  29, UNI_ARABICMATH }   /* isarabicmathematicalalphabeticsymbols */,
-  {     0,  7201,  5174,  20,  12, UNI_PO }   /* generalcategory=otherpunctuation */,
-  {     0,  2241,     0,  12,   0, UNI_PLAYINGCARDS }   /* playingcards */,
-  {     7,  2496,  6666,   3,  21, UNI_JG__HANIFIROHINGYAKINNAYA }   /* jg=hanifirohingyakinnaya */,
-  {     0,    58,  3093,   2,   5, UNI_SC__GEOR }   /* sc=geor */,
-  {     3,  4355,  3381,  17,  15, UNI_NARB }   /* scriptextensions=oldnortharabian */,
-  {     2,   343,   349,   4,   2, UNI_CCC__84 }   /* ccc=84 */,
-  {     0,  3474,  1400,   6,  10, UNI_BOXDRAWING }   /* block=boxdrawing */,
-  {     1,  3608,     0,  11,   0, UNI_PHONETICEXT }   /* phoneticext */,
-  {     0,   296,   346,   2,   3, UNI_NV__11 }   /* nv=11 */,
-  {     0,  1879,  1668,   4,   6, UNI_DOMINO }   /* blk=domino */,
-  {     0,   464,  2401,   2,   4, UNI_NAND }   /* isnand */,
-  {     4,  7431,  1153,  27,   2, UNI_CCC__24 }   /* canonicalcombiningclass=ccc24 */,
-  {     2,   275,   647,   3,   2, UNI_GCB__L }   /* gcb=l */,
-  {     0,  4355,   228,  17,   4, UNI_XPEO }   /* scriptextensions=xpeo */,
-  {     0,  1796,  1125,   7,   8, UNI_TFNG }   /* script=tifinagh */,
-  {     1,  7317,  4811,  10,  16, UNI_BC__S }   /* bidiclass=segmentseparator */,
-  {     3,  6114,  1021,   3,   6, UNI_WCHO }   /* sc=wancho */,
-  {     2,  6379,   481,  13,   3, UNI_JG__BEH }   /* joininggroup=beh */,
-  {     0,  4355,  5389,  17,  20, UNI_HMNP }   /* scriptextensions=nyiakengpuachuehmong */,
-  {     0,  6114,   728,   3,   7, UNI_SC__KALI }   /* sc=kayahli */,
-  {     4,  1478,  5812,   7,  13, UNI_GEORGIANSUP }   /* ingeorgiansupplement */,
-  {     2,  8250,  5887,  27,   3, UNI_CJKEXTC }   /* cjkunifiedideographsextensionc */,
-  {     2,  3351,   350,  13,   2, UNI_NV__49 }   /* numericvalue=49 */,
-  {     4,   296,  2157,   4,   8, UNI_NV__11_SLASH_12 }   /* nv=9.167e-01 */,
-  {     0,  6112,  1168,  14,   6, UNI_INSC__CONSONANTMEDIAL }   /* insc=consonantmedial */,
-  {     1,  6039,  1539,   7,   9, UNI_MISCARROWS }   /* block=miscarrows */,
-  {     0,    34,  1596,   1,  11, UNI_SD }   /* issoftdotted */,
-  {     0,  7825,  5183,  26,   4, UNI_CJKEXTE }   /* cjkunifiedideographsextensione */,
-  {     0,  2392,  8307,   3,  33, UNI_MISCPICTOGRAPHS }   /* inmiscellaneoussymbolsandpictographs */,
-  {     3,  2802,  5769,   3,  15, UNI_ENCLOSEDALPHANUM }   /* isenclosedalphanum */,
-  {     0,  2692,  5625,   5,  18, UNI_ANCIENTGREEKNUMBERS }   /* blk=ancientgreeknumbers */,
-  {     6,  6011,  5769,   7,  18, UNI_ENCLOSEDALPHANUMSUP }   /* block=enclosedalphanumsup */,
-  {     0,   313,  2195,   2,   4, UNI_IN__6_DOT_2 }   /* in=6.2 */,
-  {     1,  1102,   152,   4,   4, UNI_OSGE }   /* scx=osge */,
-  {     5,   425,     0,   4,   0, UNI_LINA }   /* lina */,
-  {     8,   464,  7068,   2,  26, UNI_PCM }   /* isprependedconcatenationmark */,
-  {     0,  7688,  5376,  24,   6, UNI_JG__MANICHAEANTHAMEDH }   /* joininggroup=manichaeanthamedh */,
-  {     4,  6039,  3719,   7,  15, UNI_MISCMATHSYMBOLSA }   /* block=miscmathsymbolsa */,
-  {     0,  7527,  2951,   3,   2, UNI_LB__QU }   /* lb=qu */,
-  {     0,  7201,   602,  15,   3, UNI_NO }   /* generalcategory=no */,
-  {     1,   719,     0,   9,   0, UNI_INKANNADA }   /* inkannada */,
-  {     1,  1614,     0,   4,   0, UNI_WARA }   /* wara */,
-  {     2,  1102,    63,   4,   4, UNI_CHRS }   /* scx=chrs */,
-  {     1,   832,   588,   5,   5, UNI_STERM }   /* sterm=true */,
-  {     0,  1879,   651,   4,   5, UNI_INADLAM }   /* blk=adlam */,
-  {     0,  7132,  5762,  16,   7, UNI_SUPARROWSB }   /* blk=supplementalarrowsb */,
-  {     1,   581,  1304,   5,   2, UNI_CCC__B }   /* ccc=220 */,
-  {     0,  2692,  7501,   5,  16, UNI_ANCIENTGREEKMUSIC }   /* blk=ancientgreekmusic */,
-  {     1,  3474,  4656,   6,  16, UNI_TANGUTSUP }   /* block=tangutsupplement */,
-  {     0,   464,   530,   2,   6, UNI_RJNG }   /* isrejang */,
-  {    15,  4355,    63,  17,   4, UNI_CHRS }   /* scriptextensions=chrs */,
-  {     0,   313,  2365,   2,   8, UNI_INETHIOPIC }   /* inethiopic */,
-  {     2,  2726,    12,   3,   1, UNI_P }   /* gc=p */,
-  {     0,  3060,     0,   6,   0, UNI_XPOSIXXDIGIT }   /* xdigit */,
-  {     0,  7527,  2937,   3,  11, UNI_LB__IN }   /* lb=inseperable */,
-  {     1,   313,  4793,   2,   4, UNI_RUMI }   /* inrumi */,
-  {     0,  7823,  3929,  28,   4, UNI_CJKEXTG }   /* incjkunifiedideographsextensiong */,
-  {     1,  7201,  2581,  16,   9, UNI__PERL_SURROGATE }   /* generalcategory=surrogate */,
-  {     0,  4355,  1614,  17,   4, UNI_WARA }   /* scriptextensions=wara */,
-  {     6,    24,   588,   3,   5, UNI_XPOSIXXDIGIT }   /* hex=true */,
-  {     0,  2353,  1939,   3,   9, UNI_COMPATJAMO }   /* incompatjamo */,
-  {     3,  3351,     0,  14,   0, UNI_NV__2 }   /* numericvalue=2 */,
-  {     0,  7208,   117,   9,   2, UNI_XPOSIXDIGIT }   /* category=nd */,
-  {     0,  1879,   951,   4,   8, UNI_INDUPLOYAN }   /* blk=duployan */,
-  {     0,   464,  1470,   2,   8, UNI_BUGI }   /* isbuginese */,
-  {     1,  2981,   294,   4,   2, UNI_IN__4 }   /* in=v40 */,
-  {     0,  4355,   721,  17,   7, UNI_KNDA }   /* scriptextensions=kannada */,
-  {     1,    59,     0,   4,   0, UNI_CHAM }   /* cham */,
-  {     0,   464,  5340,   2,  18, UNI_DEVANAGARIEXT }   /* isdevanagariextended */,
-  {     6,  1441,   588,   3,   5, UNI_DEP }   /* dep=true */,
-  {     2,  3450,  5643,   5,  10, UNI_COUNTINGROD }   /* blk=countingrod */,
-  {     6,   464,   477,   2,   4, UNI_VAI }   /* isvaii */,
-  {     3,   676,     0,   5,   0, UNI_OSGE }   /* osage */,
-  {     4,  6379,   484,  13,   3, UNI_JG__GAF }   /* joininggroup=gaf */,
-  {    19,  2678,  7712,   3,  21, UNI_BC__PDI }   /* bc=popdirectionalisolate */,
-  {     1,  4355,  1098,  17,   4, UNI_NSHU }   /* scriptextensions=nshu */,
-  {     2,    34,  6438,   1,  14, UNI_ZNAMENNYMUSIC }   /* isznamennymusic */,
-  {     3,  1516,  3582,   5,   3, UNI_KANGXI }   /* iskangxi */,
-  {     0,  2496,  1522,   3,   7, UNI_JG__THINYEH }   /* jg=thinyeh */,
-  {     0,   261,   356,   4,   2, UNI_CWCM }   /* cwcm=y */,
-  {     0,   313,  4021,   2,  17, UNI_INDICSIYAQNUMBERS }   /* inindicsiyaqnumbers */,
-  {     0,  1440,     0,   2,   0, UNI_SD }   /* sd */,
-  {     3,  3351,   768,  13,   2, UNI_NV__45 }   /* numericvalue=45 */,
-  {     0,  3474,   691,   6,   5, UNI_INBATAK }   /* block=batak */,
-  {     0,   464,  3223,   2,  13, UNI_XPOSIXDIGIT }   /* isdecimalnumber */,
-  {     4,  6114,  3285,   3,   6, UNI_HEBR }   /* sc=hebrew */,
-  {     3,   844,   587,   2,   6, UNI_LOE }   /* loe=true */,
-  {     5,  6799,   356,  24,   2, UNI_COMPEX }   /* fullcompositionexclusion=y */,
-  {     0,  2353,  5797,  10,   9, UNI_CYRILLICEXTA }   /* incyrillicextendeda */,
-  {     3,  3514,     0,  13,   0, UNI_ZL }   /* lineseparator */,
-  {    17,   916,   355,   4,   2, UNI_ebase_values_index }   /* ebase= */,
-  {     0,   464,  2401,   2,  11, UNI_NAND }   /* isnandinagari */,
-  {     3,  3137,   934,  14,   2, UNI_EA__F }   /* eastasianwidth=f */,
-  {     0,  2726,  5166,   3,  20, UNI_PC }   /* gc=connectorpunctuation */,
-  {     1,  6114,   742,   3,   4, UNI_SC__MAND }   /* sc=mand */,
-  {     0,   464,  3651,   2,  14, UNI_MN }   /* isnonspacingmark */,
-  {     0,  1075,  6207,   4,   8, UNI_NV__1_SLASH_40 }   /* nv=2.500e-02 */,
-  {     1,  2802,  5797,  10,   9, UNI_ETHIOPICEXTA }   /* isethiopicextendeda */,
-  {     4,   343,  6280,   4,   4, UNI_WB__EB }   /* ccc=atbl */,
-  {     4,  3474,   868,   6,   7, UNI_INTIRHUTA }   /* block=tirhuta */,
-  {     1,  2253,  2056,  11,   2, UNI_IN__1_DOT_1 }   /* presentin=1.1 */,
-  {     0,  1796,  3396,   7,  15, UNI_SARB }   /* script=oldsoutharabian */,
-  {     6,  2726,  4533,   3,  18, UNI_PI }   /* gc=initialpunctuation */,
-  {     4,  1065,   398,   5,   2, UNI_NV__1_SLASH_16 }   /* nv=1/16 */,
-  {     3,   464,   160,   2,   4, UNI_PHLP }   /* isphlp */,
-  {     0,  7201,  3236,  16,  13, UNI_ME }   /* generalcategory=enclosingmark */,
-  {     7,  1879,  1125,   4,   8, UNI_INTIFINAGH }   /* blk=tifinagh */,
-  {     0,  6402,   310,  14,   2, UNI_SB__SP }   /* sentencebreak=sp */,
-  {     0,  6114,   814,   3,   4, UNI_SC__QAAI }   /* sc=zinh */,
-  {     4,  4092,   356,   9,   4, UNI_DIA }   /* diacritic=yes */,
-  {     0,  1887,     0,   8,   0, UNI_UCASEXTA }   /* ucasexta */,
-  {     9,  5186,  6573,  19,   3, UNI_EXTPICT }   /* extendedpictographic=t */,
-  {     0,  3593,   129,  13,   3, UNI_LATINEXTF }   /* inlatinextendedf */,
-  {     0,  4291,   928,   9,   3, UNI_LB__OP }   /* linebreak=op */,
-  {     0,  1796,  1117,   7,   8, UNI_SC__TAGB }   /* script=tagbanwa */,
-  {     6,  1480,  3599,   7,   9, UNI_GEORGIANEXT }   /* georgianextended */,
-  {     1,  6114,  1027,   3,   4, UNI_SC__YEZI }   /* sc=yezi */,
-  {     1,   313,   854,   2,   7, UNI_INTAIVIET }   /* intaiviet */,
-  {     0,  2275,   587,   9,   6, UNI_IDC }   /* idcontinue=true */,
-  {     4,  3474,  1668,   6,  11, UNI_DOMINO }   /* block=dominotiles */,
-  {     0,  6114,  5322,   3,   4, UNI_CHER }   /* sc=cher */,
-  {     0,  4355,  4998,  16,   5, UNI_MANI }   /* scriptextensions=mani */,
-  {     6,   520,  1300,   4,   3, UNI_NV__7000 }   /* nv=7000 */,
-  {     0,  6570,  8440,   5,  14, UNI_INPC__BOTTOMANDRIGHT }   /* inpc=bottomandright */,
-  {     4,  7823,  1037,   5,   4, UNI_CJKEXTB }   /* incjkextb */,
-  {    20,  1382,   356,   8,   2, UNI_XIDS }   /* xidstart=y */,
-  {     0,  1796,  5116,   7,  20, UNI_HLUW }   /* script=anatolianhieroglyphs */,
-  {     4,  2355,     0,   8,   0, UNI_CYRL }   /* cyrillic */,
-  {     0,  1102,  1216,   4,   4, UNI_KANA }   /* scx=kana */,
-  {     0,  1102,   742,   4,   4, UNI_MAND }   /* scx=mand */,
-  {     1,  7732,     0,  22,   0, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* enclosedideographicsup */,
-  {     1,  6114,   983,   3,   4, UNI_SC__HIRA }   /* sc=hira */,
-  {     0,  4996,  4672,  13,   5, UNI_JG__MANICHAEANALEPH }   /* jg=manichaeanaleph */,
-  {     0,  3474,  2018,   6,  12, UNI_INMASARAMGONDI }   /* block=masaramgondi */,
-  {     0,  2496,     0,   3,   0, UNI_jg_values_index }   /* jg= */,
-  {     1,   909,     0,   8,   0, UNI_BALI }   /* balinese */,
-  {     0,  6944,   398,  24,   2, UNI_CCC__16 }   /* canonicalcombiningclass=16 */,
-  {    35,  5990,  5021,  21,   6, UNI_BPT__C }   /* bidipairedbrackettype=close */,
-  {     2,  2454,  2332,   3,  12, UNI_GREEKEXT }   /* isgreekextended */,
-  {     8,  5136,  2591,   5,  12, UNI_MAYANNUMERALS }   /* blk=mayannumerals */,
-  {    11,  1102,  6728,   4,  11, UNI_MTEI }   /* scx=meeteimayek */,
-  {     5,  1065,   891,   5,   2, UNI_NV__1_SLASH_10 }   /* nv=1/10 */,
-  {     0,   464,  4793,   2,   4, UNI_RUMI }   /* isrumi */,
-  {     1,  8244,     5,   9,   4, UNI_CJKEXTG }   /* block=cjkextg */,
-  {    22,  1796,  2220,   7,   4, UNI_HUNG }   /* script=hung */,
-  {     1,   464,  1320,   2,   4, UNI_PERM }   /* isperm */,
-  {     0,   844,  5620,   2,   3, -UNI_LOE }   /* loe=n */,
-  {     1,  3622,  4629,   6,   2, UNI_LATIN1 }   /* islatin1 */,
-  {     6,  4322,  2080,  14,   8, UNI_NV__7_SLASH_2 }   /* numericvalue=3.500e+00 */,
-  {    13,   464,   473,   2,   4, UNI_TNSA }   /* istnsa */,
-  {     0,     5,  5769,   1,  15, UNI_ENCLOSEDALPHANUM }   /* enclosedalphanum */,
-  {     2,   257,   356,   4,   4, UNI_CWCF }   /* cwcf=yes */,
-  {     7,     0,  4123,   1,  14, UNI_LOWERCASELETTER }   /* lowercaseletter */,
-  {     1,  2310,   587,  12,   6, UNI_CI }   /* caseignorable=true */,
-  {     1,  6114,  1015,   3,   6, UNI_SC__TELU }   /* sc=telugu */,
-  {     2,  7823,  1646,   5,   4, UNI_CJKEXTD }   /* incjkextd */,
-  {     1,  3748,  1303,  15,   2, UNI_NV__1_SLASH_32 }   /* numericvalue=1/32 */,
-  {     0,   464,  2041,   2,   4, UNI_MEND }   /* ismend */,
-  {    16,   464,  7020,   2,  24, UNI_ARABICPFB }   /* isarabicpresentationformsb */,
-  {     1,  5565,   588,  21,   5, UNI_CWU }   /* changeswhenuppercased=true */,
-  {     0,   756,  1768,   3,   9, UNI_NFCQC__M }   /* nfkcqc=maybe */,
-  {     0,   464,  5949,   2,   6, UNI_YIJING }   /* isyijing */,
-  {     1,  3641,  1262,   4,   3, UNI_SUPPUAB }   /* suppuab */,
-  {     0,  1102,  1344,   4,   4, UNI_PALM }   /* scx=palm */,
-  {     2,  6114,  2018,   3,  12, UNI_SC__GONM }   /* sc=masaramgondi */,
-  {    12,  1965,     0,  10,   0, UNI_YIRADICALS }   /* yiradicals */,
-  {     1,  1441,   602,  10,   3, -UNI_DEP }   /* deprecated=no */,
-  {     2,  2726,  2290,   3,   6, UNI_N }   /* gc=number */,
-  {    11,   383,   588,   6,   5, UNI_HYPHEN }   /* hyphen=true */,
-  {     0,  3462,   623,  10,   5, UNI_ETHIOPICEXT }   /* blk=ethiopicext */,
-  {     0,  6114,   102,   3,   4, UNI_HLUW }   /* sc=hluw */,
-  {     3,  1879,  3641,   8,  10, UNI_KANASUP }   /* blk=kanasupplement */,
-  {    16,  7208,  2986,   9,   2, UNI_PS }   /* category=ps */,
-  {    12,  3309,     0,   4,   0, UNI_MERO }   /* mero */,
-  {     0,  6379,   229,  13,   2, UNI_JG__PE }   /* joininggroup=pe */,
-  {     5,  6185,     0,  22,   0, UNI_NV__100000000 }   /* numericvalue=100000000 */,
-  {     0,  2483,  4081,   8,   5, UNI_XPOSIXPUNCT }   /* isxposixpunct */,
-  {     5,  2726,  5174,   7,  12, UNI_PO }   /* gc=otherpunctuation */,
-  {     1,  1879,   721,   4,   7, UNI_INKANNADA }   /* blk=kannada */,
-  {     1,   464,   686,   2,   4, UNI_TAKR }   /* istakr */,
-  {     1,  1879,  5631,   4,   5, UNI_INGREEK }   /* blk=greek */,
-  {     1,  3474,   901,   6,   8, UNI_INARMENIAN }   /* block=armenian */,
-  {     0,  1710,  1110,   3,   7, UNI_SPECIALS }   /* isspecials */,
-  {     4,  3748,  1303,  15,   3, UNI_NV__1_SLASH_320 }   /* numericvalue=1/320 */,
-  {     1,  4515,   934,  18,   6, -UNI_IDST }   /* idstrinaryoperator=false */,
-  {     1,  1796,  3381,   7,  15, UNI_NARB }   /* script=oldnortharabian */,
-  {     1,  7208,   844,   9,   2, UNI_LO }   /* category=lo */,
-  {     0,  1702,  2760,   3,  11, UNI_ALPHABETICPF }   /* isalphabeticpf */,
-  {     1,  6379,   713,  13,   4, UNI_JG__SHIN }   /* joininggroup=shin */,
-  {     0,   644,   140,   4,   2, UNI_HST__NA }   /* hst=na */,
-  {     0,   625,   601,   6,   3, -UNI_EXTPICT }   /* extpict=n */,
-  {     3,  3474,  1927,   6,  12, UNI_INGUNJALAGONDI }   /* block=gunjalagondi */,
-  {     0,  1539,  6528,   3,  21, UNI_INDICNUMBERFORMS }   /* iscommonindicnumberforms */,
-  {     0,  1796,   128,   7,   4, UNI_MEDF }   /* script=medf */,
-  {     9,  1065,  2080,   4,   8, UNI_NV__3_SLASH_2 }   /* nv=1.500e+00 */,
-  {     6,  4433,  3704,   5,  15, UNI_LINEARBIDEOGRAMS }   /* blk=linearbideograms */,
-  {     0,  6114,  1015,   3,   4, UNI_SC__TELU }   /* sc=telu */,
-  {     1,  3462,  4442,  12,   9, UNI_ETHIOPICEXTB }   /* blk=ethiopicextendedb */,
-  {     2,   313,  1033,   2,   4, UNI_JAMO }   /* injamo */,
-  {     2,  6114,    94,   3,   4, UNI_SC__GUJR }   /* sc=gujr */,
-  {     0,   756,   602,   6,   2, UNI_NFKCQC__N }   /* nfkcqc=n */,
-  {     0,   313,  6728,   2,  11, UNI_INMEETEIMAYEK }   /* inmeeteimayek */,
-  {     3,  1102,  4202,   4,  17, UNI_KITS }   /* scx=khitansmallscript */,
-  {     0,  2355,  6142,   6,   5, UNI_CYRILLICSUP }   /* cyrillicsup */,
-  {     8,  7208,   628,   9,   2, UNI_PI }   /* category=pi */,
-  {     2,  4355,   496,  17,   4, UNI_KHOJ }   /* scriptextensions=khoj */,
-  {    18,  7317,  5970,  21,   8, UNI_BC__LRO }   /* bidiclass=lefttorightoverride */,
-  {     8,  1796,  3453,   6,   9, UNI_SC__CYRL }   /* script=cyrillic */,
-  {     7,  5586,   703,  21,   2, UNI_WB__EB }   /* graphemeclusterbreak=em */,
-  {     4,  6570,  3203,   5,  10, UNI_INPC__OVERSTRUCK }   /* inpc=overstruck */,
-  {     5,   464,  4827,   2,   8, UNI_BAMUMSUP }   /* isbamumsup */,
-  {     1,  6114,  1353,   3,   4, UNI_PAUC }   /* sc=pauc */,
-  {     1,  1879,  6439,   4,  23, UNI_ZNAMENNYMUSIC }   /* blk=znamennymusicalnotation */,
-  {     1,  5586,   285,  21,   2, UNI_GCB__XX }   /* graphemeclusterbreak=xx */,
-  {     8,  1236,  1550,   5,  11, UNI_INOLDPERSIAN }   /* block=oldpersian */,
-  {     0,  4291,  4338,  10,  17, UNI_RI }   /* linebreak=regionalindicator */,
-  {     0,  1796,  1105,   6,   5, UNI_TALU }   /* script=talu */,
-  {     6,  5186,   934,  20,   2, -UNI_EXTPICT }   /* extendedpictographic=f */,
-  {     1,   464,   840,   2,   7, UNI_TGLG }   /* istagalog */,
-  {     2,   959,   588,   8,   5, UNI_EXT }   /* extender=true */,
-  {    57,  2678,   358,   3,   2, UNI_BC__ES }   /* bc=es */,
-  {     5,  2802,  1037,  10,   4, UNI_ETHIOPICEXTB }   /* isethiopicextb */,
-  {     0,    14,  1095,   1,   3, UNI_MERC }   /* merc */,
-  {     0,  6114,   401,   3,   4, UNI_MIAO }   /* sc=miao */,
-  {     0,  4322,  1300,  14,   3, UNI_NV__3000 }   /* numericvalue=3000 */,
-  {     0,  1796,  3309,   7,   4, UNI_MERO }   /* script=mero */,
-  {     3,   555,  2322,   4,  10, UNI_IN__NA }   /* age=unassigned */,
-  {     3,  7201,  6466,  16,  10, UNI_CO }   /* generalcategory=privateuse */,
-  {     1,  6114,  4827,   3,   4, UNI_BAMU }   /* sc=bamu */,
-  {     0,  2712,   602,   5,   3, -UNI_EMOJI }   /* emoji=no */,
-  {     7,  2193,  2067,   7,   5, UNI_NV__5_SLASH_8 }   /* nv=6.250e-01 */,
-  {     0,   464,  4750,   2,   8, UNI_DINGBATS }   /* isdingbats */,
-  {     0,  1796,   825,   7,   7, UNI_SHAW }   /* script=shavian */,
-  {     0,  2232,   862,   3,   6, UNI_TIBT }   /* istibetan */,
-  {     0,  7431,  1302,  28,   2, UNI_CCC__103 }   /* canonicalcombiningclass=ccc103 */,
-  {    10,  1441,   602,   3,   3, -UNI_DEP }   /* dep=no */,
-  {     1,    58,  3465,   2,   9, UNI_ETHI }   /* sc=ethiopic */,
-  {     4,  3474,  5304,   6,  11, UNI_TAIXUANJING }   /* block=taixuanjing */,
-  {     0,  1702,     0,   6,   0, UNI_ARAB }   /* isarab */,
-  {     1,   296,  2066,   3,   2, UNI_NV__50 }   /* nv=50 */,
-  {     1,  4122,   356,   5,   2, UNI_XPOSIXLOWER }   /* lower=y */,
-  {     1,  1704,  4442,   6,   9, UNI_ARABICEXTB }   /* arabicextendedb */,
-  {     1,  7201,  3722,  16,  10, UNI_SM }   /* generalcategory=mathsymbol */,
-  {     0,   513,  6199,   4,   5, UNI_NV__300000 }   /* nv=300000 */,
-  {     8,  1102,  1198,   4,   4, UNI_GRAN }   /* scx=gran */,
-  {     2,  1102,   847,   4,   7, UNI_LANA }   /* scx=taitham */,
-  {     0,  1879,   611,   4,   7, UNI_INELBASAN }   /* blk=elbasan */,
-  {     2,  1879,   671,   4,   5, UNI_INOGHAM }   /* blk=ogham */,
-  {     0,   555,     0,   4,   0, UNI_age_values_index }   /* age= */,
-  {     2,  5409,   356,  19,   4, UNI_TERM }   /* terminalpunctuation=yes */,
-  {     3,  8276,  5680,  23,  15, UNI_INSC__CANTILLATIONMARK }   /* indicsyllabiccategory=cantillationmark */,
-  {     7,  8276,  5695,  22,  16, UNI_INSC__INVISIBLESTACKER }   /* indicsyllabiccategory=invisiblestacker */,
-  {     7,     5,   601,   2,   2, UNI_ext_values_index }   /* ext= */,
-  {     0,  2365,  1037,   8,   4, UNI_ETHIOPICEXTB }   /* ethiopicextb */,
-  {     2,  1410,   347,   7,   3, UNI_CCC__118 }   /* ccc=ccc118 */,
-  {     2,  1144,     0,   9,   0, UNI_BHKS }   /* bhaiksuki */,
-  {     0,   929,  4081,   4,  11, UNI_PS }   /* openpunctuation */,
-  {     1,  1879,  4998,   3,  11, UNI_INMANICHAEAN }   /* blk=manichaean */,
-  {     6,  7201,  1413,  15,   3, UNI_XPOSIXCNTRL }   /* generalcategory=cc */,
-  {     0,  2193,  2617,   4,   8, UNI_NV__3_SLASH_5 }   /* nv=6.000e-01 */,
-  {     0,  4355,  1289,  17,   9, UNI_TALU }   /* scriptextensions=newtailue */,
-  {     0,  7688,  4682,  23,   5, UNI_JG__MANICHAEANSADHE }   /* joininggroup=manichaeansadhe */,
-  {     0,  1879,  8078,   4,  32, UNI_IDEOGRAPHICSYMBOLS }   /* blk=ideographicsymbolsandpunctuation */,
-  {     0,  7431,   349,  27,   2, UNI_CCC__84 }   /* canonicalcombiningclass=ccc84 */,
-  {     0,  7201,  7044,  16,  13, UNI_M }   /* generalcategory=combiningmark */,
-  {     1,  1879,  1308,   4,   9, UNI_INOLDITALIC }   /* blk=olditalic */,
-  {     8,   313,   120,   2,   3, UNI_INLAO }   /* inlao */,
-  {     5,  2253,  2155,   9,   4, UNI_IN__4_DOT_1 }   /* presentin=4.1 */,
-  {     0,  1102,   180,   4,   4, UNI_RUNR }   /* scx=runr */,
-  {     0,  5787,     0,  10,   0, UNI_JAMO }   /* hanguljamo */,
-  {     4,  1796,   861,   7,   7, UNI_TIBT }   /* script=tibetan */,
-  {     1,  8244,  4611,  32,   4, UNI_CJKEXTF }   /* block=cjkunifiedideographsextensionf */,
-  {     0,   296,     0,   5,   0, UNI_NV__90 }   /* nv=90 */,
-  {     1,  4355,    27,  17,   4, UNI_AHOM }   /* scriptextensions=ahom */,
-  {     9,   464,  4081,   2,   5, UNI_P }   /* ispunct */,
-  {     1,  1888,  6781,   4,   9, UNI_CI }   /* caseignorable */,
-  {     0,   464,   409,   2,   4, UNI_DIAK }   /* isdiak */,
-  {     1,  4500,   602,   9,   3, -UNI_XPOSIXUPPER }   /* uppercase=no */,
-  {  5469,   261,   588,   4,   5, UNI_CWCM }   /* cwcm=true */,
-  {     0,  5748,  8550,  13,  22, UNI_SUPMATHOPERATORS }   /* insupplementalmathematicaloperators */,
-  {     0,  1867,   588,  12,   2, UNI_BIDIM }   /* bidimirrored=t */,
-  {     0,  1102,  1248,   4,   7, UNI_SIDD }   /* scx=siddham */,
-  {     1,  1480,     0,   4,   0, UNI_GEOR }   /* geor */,
-  {     0,  7208,  6276,   9,   6, UNI_CF }   /* category=format */,
-  {     1,   464,  2220,   2,   4, UNI_HUNG }   /* ishung */,
-  {    20,  1248,     0,   4,   0, UNI_SIDD }   /* sidd */,
-  {     2,  3915,   602,  17,   3, -UNI_EPRES }   /* emojipresentation=no */,
-  {    15,  1174,     3,   3,   1, UNI_EA__W }   /* ea=w */,
-  {     0,  4355,  1133,  17,   8, UNI_VITH }   /* scriptextensions=vithkuqi */,
-  {     9,  1102,  4827,   4,   4, UNI_BAMU }   /* scx=bamu */,
-  {     0,  8533,  6052,   9,  13, UNI_SUPMATHOPERATORS }   /* block=supmathoperators */,
-  {     4,  7132,  8319,   7,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* blk=supsymbolsandpictographs */,
-  {     0,  1539,  7908,   3,  29, UNI_CUNEIFORMNUMBERS }   /* iscuneiformnumbersandpunctuation */,
-  {     0,  2692,  1141,  10,   3, UNI_ARABICPFA }   /* blk=arabicpfa */,
-  {    12,  6239,     0,  14,   0, UNI_BC__L }   /* bc=lefttoright */,
-  {     1,  4901,   934,  13,   6, -UNI_EMOD }   /* emojimodifier=false */,
-  {     2,  3351,  2065,  13,   2, UNI_NV__25 }   /* numericvalue=25 */,
-  {     2,  4355,  1105,  16,   5, UNI_TALU }   /* scriptextensions=talu */,
-  {     0,  8276,  2344,  22,   5, UNI_INSC__VOWEL }   /* indicsyllabiccategory=vowel */,
-  {     1,  7208,  3518,   9,   9, UNI_Z }   /* category=separator */,
-  {     1,     2,  8499,   1,  34, UNI_DIACRITICALSSUP }   /* combiningdiacriticalmarkssupplement */,
-  {     2,   464,  1133,   2,   4, UNI_VITH }   /* isvith */,
-  {     1,  1796,   917,   7,   4, UNI_BASS }   /* script=bass */,
-  {     2,   343,  2679,   2,   3, UNI_CCC__R }   /* ccc=r */,
-  {     0,  8470,   588,  19,   3, UNI_VO__TR }   /* verticalorientation=tr */,
-  {     3,  4355,  2217,  17,  12, UNI_HUNG }   /* scriptextensions=oldhungarian */,
-  {     1,   343,   182,   4,   2, UNI_CCC__0 }   /* ccc=nr */,
-  {     1,   513,  2137,   4,   8, UNI_NV__1_SLASH_3 }   /* nv=3.333e-01 */,
-  {     1,  2443,     0,   5,   0, UNI_CASED }   /* cased */,
-  {     1,   644,  1847,   7,   8, UNI_LB__H3 }   /* hst=lvtsyllable */,
-  {     8,  1710,  3518,   7,   9, UNI_ZS }   /* isspaceseparator */,
-  {     1,  5147,  5584,  17,   3, UNI_LATINEXTG }   /* block=latinextendedg */,
-  {     1,   270,   356,   3,   2, UNI_CWT }   /* cwt=y */,
-  {     2,  1102,  7377,   4,   8, UNI_KANA }   /* scx=katakana */,
-  {     1,  8533,     0,  39,   0, UNI_SUPMATHOPERATORS }   /* block=supplementalmathematicaloperators */,
-  {     8,   313,  6728,   2,  14, UNI_MEETEIMAYEKEXT }   /* inmeeteimayekext */,
-  {     0,  1102,   425,   4,   4, UNI_LINA }   /* scx=lina */,
-  {     1,  3000,   934,  13,   2, -UNI_QMARK }   /* quotationmark=f */,
-  {     1,  1102,   880,   4,   7, UNI_ZZZZ }   /* scx=unknown */,
-  {     5,    34,  1116,   1,   5, UNI_TAGB }   /* istagb */,
-  {     0,  7527,   281,   3,   2, UNI_LB__H2 }   /* lb=h2 */,
-  {     3,   536,  2729,   3,   5, UNI_SB__XX }   /* sb=other */,
-  {     1,    34,  3884,   1,  18, UNI_AGHB }   /* iscaucasianalbanian */,
-  {     8,     0,  4275,   1,  16, UNI_LETTERLIKESYMBOLS }   /* letterlikesymbols */,
-  {     5,  5087,   655,  10,   2, UNI_WB__MB }   /* wordbreak=mb */,
-  {     0,  1075,     0,   4,   0, UNI_NV__2 }   /* nv=2 */,
-  {     3,  4355,  1371,  17,   4, UNI_THAA }   /* scriptextensions=thaa */,
-  {     0,  8276,  4948,  22,  14, UNI_INSC__VOWELDEPENDENT }   /* indicsyllabiccategory=voweldependent */,
-  {     0,  1102,    15,   4,   4, UNI_ADLM }   /* scx=adlm */,
-  {     0,  2392,  2591,   3,  12, UNI_MAYANNUMERALS }   /* inmayannumerals */,
-  {     0,  4355,  1308,  17,   9, UNI_ITAL }   /* scriptextensions=olditalic */,
-  {     4,  5631,     0,   5,   0, UNI_GREK }   /* greek */,
-  {     0,  6112,     0,   5,   0, UNI_insc_values_index }   /* insc= */,
-  {     1,  5565,   602,  21,   3, -UNI_CWU }   /* changeswhenuppercased=no */,
-  {     4,   464,  2297,   2,  13, UNI_BLOCKELEMENTS }   /* isblockelements */,
-  {     2,  2275,  3361,   8,   3, UNI_idc_values_index }   /* idcontinue= */,
-  {     0,   464,  1382,   2,   8, UNI_XIDS }   /* isxidstart */,
-  {     3,  3748,  1071,  14,   4, UNI_NV__11_SLASH_12 }   /* numericvalue=11/12 */,
-  {     5,  5147,  1491,  11,   4, UNI_LATINEXTA }   /* block=latinexta */,
-  {     1,  2392,  1539,   3,   9, UNI_MISCARROWS }   /* inmiscarrows */,
-  {     0,  1796,   975,   7,   8, UNI_SC__GURU }   /* script=gurmukhi */,
-  {     0,  1410,  2065,   7,   2, UNI_CCC__25 }   /* ccc=ccc25 */,
-  {     1,  2726,  3651,   3,  14, UNI_MN }   /* gc=nonspacingmark */,
-  {     0,   464,   502,   2,   4, UNI_LYDI }   /* islydi */,
-  {     2,  5136,  3324,   5,  14, UNI_MISCPICTOGRAPHS }   /* blk=miscpictographs */,
-  {    10,  4450,  5797,  14,   9, UNI_CYRILLICEXTA }   /* block=cyrillicextendeda */,
-  {     0,   555,   549,   4,   3, UNI_AGE__3 }   /* age=3.0 */,
-  {     3,  6114,  1371,   3,   4, UNI_SC__THAA }   /* sc=thaa */,
-  {    16,   464,  5166,   2,  20, UNI_PC }   /* isconnectorpunctuation */,
-  {     0,  4355,  3453,  16,   9, UNI_CYRL }   /* scriptextensions=cyrillic */,
-  {     1,  4355,  2695,  16,   5, UNI_ARAB }   /* scriptextensions=arab */,
-  {     0,  3474,   575,   7,   6, UNI_INAVESTAN }   /* block=avestan */,
-  {     0,  4962,     0,  14,   0, UNI_ROHG }   /* hanifirohingya */,
-  {     0,   625,   934,   7,   6, -UNI_EXTPICT }   /* extpict=false */,
-  {     6,  2812,     0,   7,   0, UNI_MAHJONG }   /* mahjong */,
-  {     3,  1777,  6199,   8,   8, UNI_NV__1000000000000 }   /* nv=1000000000000 */,
-  {     4,  1710,  4641,   3,   8, UNI_SYRIACSUP }   /* issyriacsup */,
-  {     2,   248,     0,   4,   0, UNI_ZZZZ }   /* zzzz */,
-  {     2,    34,   636,   1,   4, UNI_HAN }   /* ishan */,
-  {     1,  2153,     0,   4,   0, UNI_NV__4 }   /* nv=4 */,
-  {     4,   464,  4107,   2,   4, UNI_HANG }   /* ishang */,
-  {     2,  1383,   934,   3,   6, -UNI_IDS }   /* ids=false */,
-  {     3,  7605,     0,  19,   0, UNI_hst_values_index }   /* hangulsyllabletype= */,
-  {     5,  1548,  3223,   3,   7, UNI_XPOSIXDIGIT }   /* nt=decimal */,
-  {     0,  2260,   552,   3,   3, UNI_IN__4 }   /* in=4.0 */,
-  {     2,  4355,   847,  17,   7, UNI_LANA }   /* scriptextensions=taitham */,
-  {     4,    34,  7402,   1,  29, UNI_SUPPUAA }   /* issupplementaryprivateuseareaa */,
-  { 64182,  6944,   522,  23,   2, UNI_CCC__7 }   /* canonicalcombiningclass=7 */,
-  {     3,   464,  1951,   2,   7, UNI_SOGD }   /* issogdian */,
-  {     2,   313,  1198,   2,   7, UNI_INGRANTHA }   /* ingrantha */,
-  {     6,  7338,  1687,  21,   7, UNI_BC__RLI }   /* bidiclass=righttoleftisolate */,
-  {     0,  5147,     5,  11,   4, UNI_LATINEXTG }   /* block=latinextg */,
-  {     0,  5748,  7643,  13,  17, UNI_SUPPUAB }   /* insupplementaryprivateuseareab */,
-  {     2,   581,   349,   5,   1, UNI_CCC__28 }   /* ccc=28 */,
-  {     1,  2974,  2066,  11,   2, UNI_IN__5 }   /* presentin=v50 */,
-  {    18,  2153,  2166,   5,   7, UNI_NV__3_SLASH_64 }   /* nv=4.688e-02 */,
-  {     0,  8470,  1605,  29,   9, UNI_VO__TU }   /* verticalorientation=transformedupright */,
-  {     4,  1102,  1098,   4,   4, UNI_NSHU }   /* scx=nshu */,
-  {     0,  6402,  5021,  13,   3, UNI_SB__CL }   /* sentencebreak=cl */,
-  {     1,  4291,   285,  10,   2, UNI_LB__XX }   /* linebreak=xx */,
-  {    19,  1102,  4998,   3,  11, UNI_MANI }   /* scx=manichaean */,
-  {     0,  2205,  6199,   4,   5, UNI_NV__800000 }   /* nv=800000 */,
-  {     0,   313,  5340,   2,  18, UNI_DEVANAGARIEXT }   /* indevanagariextended */,
-  {     0,  6185,     0,  19,   0, UNI_NV__100000 }   /* numericvalue=100000 */,
-  {     0,  3474,  8078,   6,  18, UNI_IDEOGRAPHICSYMBOLS }   /* block=ideographicsymbols */,
-  {     3,  1879,  4740,   4,  18, UNI_ORNAMENTALDINGBATS }   /* blk=ornamentaldingbats */,
-  {     5,  2496,  2509,   3,  10, UNI_JG__DALATHRISH }   /* jg=dalathrish */,
-  {     8,  3450,  6142,  10,   5, UNI_CYRILLICSUP }   /* blk=cyrillicsup */,
-  {     0,  4355,  1003,  17,   4, UNI_LEPC }   /* scriptextensions=lepc */,
-  {     5,  8289,  4007,  10,  13, UNI_SC }   /* category=currencysymbol */,
-  { 46464,   296,   762,   3,   4, UNI_NV___MINUS_1_SLASH_2 }   /* nv=-1/2 */,
-  {     5,  1377,  1592,   3,   2, UNI_WB__FO }   /* wb=fo */,
-  {     3,  5886,   601,  20,   3, -UNI__PERL_NCHAR }   /* noncharactercodepoint=n */,
-  {     0,   296,  1304,   3,   3, UNI_NV__200 }   /* nv=200 */,
-  {     2,  6114,   224,   3,   4, UNI_WCHO }   /* sc=wcho */,
-  {     0,  6944,  1157,  24,   5, UNI_CCC__7 }   /* canonicalcombiningclass=nukta */,
-  {     1,  6402,  2928,  14,   3, UNI_SB__SE }   /* sentencebreak=sep */,
-  {     0,  6114,   128,   3,   4, UNI_MEDF }   /* sc=medf */,
-  {     1,   313,  1353,   2,   9, UNI_INPAUCINHAU }   /* inpaucinhau */,
-  {     0,   313,  2207,   2,   2, UNI_IN__8 }   /* in=8 */,
-  {     9,  3474,  3839,   6,   6, UNI_INTANGUT }   /* block=tangut */,
-  {     0,  6114,   136,   3,   4, UNI_SC__MYMR }   /* sc=mymr */,
-  {    11,   464,   409,   2,   3, UNI_DIA }   /* isdia */,
-  {     1,  1102,   461,   4,   4, UNI_QAAI }   /* scx=qaai */,
-  {     1,  1102,    35,   4,   4, UNI_AVST }   /* scx=avst */,
+  {     1,  2280,  2083,  11,   2, UNI_IN__1_DOT_1 }   /* presentin=1.1 */,
+  {     0,   605,  4439,   2,   2, UNI_ids_values_index }   /* ids= */,
+  {     2,  2752,   274,   5,   1, UNI_emoji_values_index }   /* emoji= */,
+  {     2,  7274,  4667,   9,  16, UNI_PE }   /* category=closepunctuation */,
+  {     1,  1667,   120,   4,   3, UNI_INLAO }   /* blk=lao */,
+  {     1,   309,   725,   2,   7, UNI_KALI }   /* inkayahli */,
+  {     5,  5065,  5059,  13,   6, UNI_JG__MANICHAEANSAMEKH }   /* jg=manichaeansamekh */,
+  {     0,   132,     0,   4,   0, UNI_MTEI }   /* mtei */,
+  {     0,  1823,   590,   7,   7, UNI_DSRT }   /* script=deseret */,
+  {     8,  2324,   901,   6,   8, UNI_INARMENIAN }   /* block=armenian */,
+  {     0,  2324,  6185,   6,  13, UNI_GLAGOLITICSUP }   /* block=glagoliticsup */,
+  {    16,  6090,     0,  13,   0, UNI_INMYANMAR }   /* block=myanmar */,
+  {     0,  2324,   493,   6,   6, UNI_INKHOJKI }   /* block=khojki */,
+  {     1,   461,   521,   2,   6, UNI_PATSYN }   /* ispatsyn */,
+  {     3,   461,  8278,   2,  33, UNI_MISCMATHSYMBOLSB }   /* ismiscellaneousmathematicalsymbolsb */,
+  {     3,  1823,  3349,   7,   4, UNI_MERO }   /* script=mero */,
+  {     0,  7011,  5515,  24,  13, UNI_CCC__202 }   /* canonicalcombiningclass=attachedbelow */,
+  {     2,   292,     0,   3,   0, UNI_nv_values_index }   /* nv= */,
+  {     1,    30,  1302,   1,  10, UNI_INNEWTAILUE }   /* innewtailue */,
+  {     3,  4424,   357,  17,   6, UNI_CAKM }   /* scriptextensions=chakma */,
+  {     3,  2391,  1037,  10,   4, UNI_CYRILLICEXTB }   /* incyrillicextb */,
+  {     3,   461,   369,   2,   6, UNI_GOTH }   /* isgothic */,
+  {     8,  6427,   487,  13,   3, UNI_JG__REH }   /* joininggroup=reh */,
+  {     0,    30,  7466,   1,  29, UNI_SUPPUAA }   /* issupplementaryprivateuseareaa */,
+  {     0,  1102,  6776,   4,  11, UNI_MTEI }   /* scx=meeteimayek */,
+  {     0,  2324,  5712,   6,  19, UNI_MERO }   /* block=meroitichieroglyphs */,
+  {     1,  6165,  1385,   3,   4, UNI_SC__THAA }   /* sc=thaa */,
+  {    17,   309,  5391,   2,  18, UNI_CHEROKEESUP }   /* incherokeesupplement */,
+  {     1,  4941,   490,   9,   3, UNI_KANBUN }   /* block=kanbun */,
+  {     0,   461,   917,   2,   8, UNI_BASS }   /* isbassavah */,
+  {     1,  7495,   288,  27,   2, UNI_CCC__30 }   /* canonicalcombiningclass=ccc30 */,
+  {     1,  7383,  6312,  10,   3, UNI_BC__PDI }   /* bidiclass=pdi */,
+  {     2,  8142,     0,  32,   0, UNI_IDEOGRAPHICSYMBOLS }   /* ideographicsymbolsandpunctuation */,
+  {     1,  4191,   934,   5,   6, -UNI_XPOSIXLOWER }   /* lower=false */,
+  {     0,  2766,  3196,   6,   8, UNI_NO }   /* gc=othernumber */,
+  {     0,  2324,  4651,   6,  16, UNI_BOPOMOFOEXT }   /* block=bopomofoextended */,
+  {     8,   461,  1367,   2,   9, UNI_PAUC }   /* ispaucinhau */,
+  {     0,  1102,  3692,   4,   4, UNI_LISU }   /* scx=lisu */,
+  {     6,  1241,     0,   7,   0, UNI_NB }   /* noblock */,
+  {     3,  3040,   585,  13,   2, UNI_QMARK }   /* quotationmark=t */,
+  {     3,  6165,  1975,   3,  10, UNI_SOGO }   /* sc=oldsogdian */,
+  {     6,  2494,  6945,   5,  12, UNI_GEOMETRICSHAPES }   /* isgeometricshapes */,
+  {     2,  1734,  7304,   3,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* issymbolsandpictographsexta */,
+  {     3,  4569,     0,   9,   0, UNI_XPOSIXUPPER }   /* uppercase */,
+  {     2,  6165,  2068,   3,  12, UNI_MEND }   /* sc=mendekikakui */,
+  {     0,     8,     0,   2,   0, UNI_PC }   /* pc */,
+  {     1,  6165,  4740,   3,   4, UNI_SC__TALE }   /* sc=tale */,
+  {     0,  2766,  6683,   6,   8, UNI_LO }   /* gc=otherletter */,
+  {     1,   309,  5185,   2,  20, UNI_INANATOLIANHIEROGLYPHS }   /* inanatolianhieroglyphs */,
+  {     1,  1823,   493,   7,   6, UNI_SC__KHOJ }   /* script=khojki */,
+  {    13,  2483,   934,   5,   6, -UNI_CASED }   /* cased=false */,
+  {     0,  6165,  1125,   3,   8, UNI_TFNG }   /* sc=tifinagh */,
+  {     2,  1618,   599,  10,   2, -UNI_SD }   /* softdotted=n */,
+  {    11,  6062,  6142,   7,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* block=earlydynasticcuneiform */,
+  {     8,  8278,  7632,  13,  16, UNI_MISCARROWS }   /* miscellaneoussymbolsandarrows */,
+  {     3,  5553,   353,  21,   4, UNI_CWCM }   /* changeswhencasemapped=yes */,
+  {     0,    15,  3402,   2,   3, UNI_AGE__2 }   /* age=2 */,
+  {     7,  1667,  1812,   4,  11, UNI_INPAHAWHHMONG }   /* blk=pahawhhmong */,
+  {     2,     2,   352,   1,   2, UNI_ce_values_index }   /* ce= */,
+  {     7,  4043,   599,   4,   3, -UNI_IDSB }   /* idsb=no */,
+  {     2,  4360,   880,  10,   7, UNI_LB__XX }   /* linebreak=unknown */,
+  {     0,  6165,  1212,   3,   9, UNI_SC__QAAI }   /* sc=inherited */,
+  {     3,  7274,  1611,   9,   2, UNI_LOWERCASELETTER }   /* category=ll */,
+  {     2,  2009,     0,   6,   0, UNI_SYRC }   /* syriac */,
+  {     5,   597,  3276,   3,   3, UNI_DT__ENC }   /* dt=enc */,
+  {     0,  1667,  4161,   4,  12, UNI_DIACRITICALS }   /* blk=diacriticals */,
+  {     0,  2536,  7342,   3,  14, UNI_JG__HAMZAONHEHGOAL }   /* jg=tehmarbutagoal */,
+  {     1,  1726,  2800,   3,  11, UNI_ALPHABETICPF }   /* isalphabeticpf */,
+  {     2,  1424,  3405,   7,   2, UNI_CCC__36 }   /* ccc=ccc36 */,
+  {     6,  1823,  3421,   7,  15, UNI_NARB }   /* script=oldnortharabian */,
+  {     3,  1823,  3908,   7,   6, UNI_TANG }   /* script=tangut */,
+  {     1,   309,  1027,   2,   6, UNI_INYEZIDI }   /* inyezidi */,
+  {     3,   309,  5958,   2,  21, UNI_SINHALAARCHAICNUMBERS }   /* insinhalaarchaicnumbers */,
+  {     4,  7267,   330,  16,   2, UNI_PD }   /* generalcategory=pd */,
+  {    12,   406,   274,   2,   1, UNI_di_values_index }   /* di= */,
+  {     9,  1102,   634,   4,   7, UNI_HANO }   /* scx=hanunoo */,
+  {     5,  7591,    21,   3,   2, UNI_LB__EX }   /* lb=ex */,
+  {     6,  7944,  6554,  28,   4, UNI_CJKEXTC }   /* iscjkunifiedideographsextensionc */,
+  {     1,  2852,     0,   7,   0, UNI_MAHJONG }   /* mahjong */,
+  {     1,   693,  6683,   5,   8, UNI_LO }   /* isotherletter */,
+  {     2,  1102,  5391,   4,   4, UNI_CHER }   /* scx=cher */,
+  {     1,   818,     0,   7,   0, UNI_SHRD }   /* sharada */,
+  {     6,  1823,    23,   7,   4, UNI_AHOM }   /* script=ahom */,
+  {     1,  1396,   599,   4,   3, -UNI_XIDS }   /* xids=no */,
+  {     0,  2842,  5820,   3,  18, UNI_ENCLOSEDALPHANUMSUP }   /* isenclosedalphanumsup */,
+  {     0,  6427,  2566,  13,   3, UNI_JG__HEH }   /* joininggroup=heh */,
+  {     0,  1823,    74,   7,   4, UNI_SC__CYRL }   /* script=cyrl */,
+  {     0,   309,  7449,   2,  18, UNI_PHONETICEXT }   /* inphoneticextensions */,
+  {     0,  3391,  1313,  13,   2, UNI_NV__60 }   /* numericvalue=60 */,
+  {     0,  7011,  7239,  25,   2, UNI_CCC__AL }   /* canonicalcombiningclass=228 */,
+  {     1,   292,   759,   3,   4, UNI_NV___MINUS_1_SLASH_2 }   /* nv=-1/2 */,
+  {     0,  1734,  8001,   3,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* issymbolsandpictographsextendeda */,
+  {     0,  6165,  1227,   3,   4, UNI_MAKA }   /* sc=maka */,
+  {     2,   292,   761,   4,   2, UNI_NV__9_SLASH_2 }   /* nv=9/2 */,
+  {     0,    71,   934,   3,   2, -UNI_CWU }   /* cwu=f */,
+  {     5,  1667,  6986,   4,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* blk=symbolsforlegacycomputing */,
+  {     5,  6165,  1592,   3,   4, UNI_SAUR }   /* sc=saur */,
+  {     3,  1894,   274,   5,   1, UNI_bidim_values_index }   /* bidim= */,
+  {     4,  1102,   814,   4,   4, UNI_QAAI }   /* scx=zinh */,
+  {     2,  1102,   917,   4,   4, UNI_BASS }   /* scx=bass */,
+  {     0,  1102,  1227,   4,   4, UNI_MAKA }   /* scx=maka */,
+  {     1,  4731,  5149,  12,   7, UNI_SUPARROWSA }   /* supplementalarrowsa */,
+  {     4,  1667,  4862,   4,   4, UNI_RUMI }   /* blk=rumi */,
+  {     1,  1667,   653,   4,   5, UNI_INBUHID }   /* blk=buhid */,
+  {     0,  5156,  3634,  10,   2, UNI_WB__NL }   /* wordbreak=nl */,
+  {     9,  5769,   274,   4,   1, UNI_emod_values_index }   /* emod= */,
+  {     4,   461,   120,   2,   3, UNI_LAO }   /* islao */,
+  {     6,  6165,  1385,   3,   6, UNI_SC__THAA }   /* sc=thaana */,
+  {     5,  5065,  4239,  13,   4, UNI_JG__MANICHAEANFIVE }   /* jg=manichaeanfive */,
+  {     2,  6062,     0,  14,   0, UNI_INETHIOPIC }   /* block=ethiopic */,
+  {     4,   292,  2100,   3,   2, UNI_NV__42 }   /* nv=42 */,
+  {     0,  7889,  5252,  26,   4, UNI_CJKEXTE }   /* cjkunifiedideographsextensione */,
+  {     0,   461,   312,   2,   5, UNI_QMARK }   /* isqmark */,
+  {     0,  4941,  3696,  10,  10, UNI_KANASUP }   /* block=kanasupplement */,
+  {     5,  7591,  4316,   3,  14, UNI_LB__BK }   /* lb=mandatorybreak */,
+  {     3,   909,     0,   8,   0, UNI_BALI }   /* balinese */,
+  {     0,   461,  1522,   2,   8, UNI_UGAR }   /* isugaritic */,
+  {     0,   257,   599,   4,   2, -UNI_CWCM }   /* cwcm=n */,
+  {     6,   552,  6262,   4,   3, UNI_AGE__2_DOT_1 }   /* age=2.1 */,
+  {     0,  2324,  4176,   6,  15, UNI_INHANGUL }   /* block=hangulsyllables */,
+  {     2,  1391,  1864,   3,   5, UNI_WB__EB }   /* wb=ebase */,
+  {     0,  8343,  8522,  22,  16, UNI_INSC__VOWELINDEPENDENT }   /* indicsyllabiccategory=vowelindependent */,
+  {     0,   292,   581,   2,   3, UNI_NV__22 }   /* nv=22 */,
+  {     0,  5876,     0,  12,   0, UNI_SUNDANESESUP }   /* sundanesesup */,
+  {     3,  1726,  1505,   8,   4, UNI_ARABICEXTA }   /* isarabicexta */,
+  {     1,   461,  1978,   2,   7, UNI_SOGD }   /* issogdian */,
+  {     1,  6163,  5746,   5,  16, UNI_INSC__INVISIBLESTACKER }   /* insc=invisiblestacker */,
+  {     0,    21,  7915,   1,  20, UNI_ENCLOSEDALPHANUM }   /* enclosedalphanumerics */,
+  {     3,  1424,   582,   7,   2, UNI_CCC__22 }   /* ccc=ccc22 */,
+  {     2,  4502,     0,  13,   0, UNI_LATINEXTE }   /* blk=latinexte */,
+  {     0,  1726,   649,   3,   4, UNI_ADLM }   /* isadlam */,
+  {     0,     0,  4344,   1,  16, UNI_LETTERLIKESYMBOLS }   /* letterlikesymbols */,
+  {     3,  1667,  1414,   4,  10, UNI_BOXDRAWING }   /* blk=boxdrawing */,
+  {     2,  1823,   983,   7,   4, UNI_SC__HIRA }   /* script=hira */,
+  {     3,  5156,   281,  10,   2, UNI_WB__XX }   /* wordbreak=xx */,
+  {     0,  2393,  6193,   6,   5, UNI_CYRILLICSUP }   /* cyrillicsup */,
+  {     0,  4424,  1117,  17,   8, UNI_TAGB }   /* scriptextensions=tagbanwa */,
+  {     0,  4424,   283,  17,   5, UNI_NSHU }   /* scriptextensions=nushu */,
+  {     0,  7591,  3337,   3,  12, UNI_LB__IS }   /* lb=infixnumeric */,
+  {     0,  2842,  1037,  10,   4, UNI_ETHIOPICEXTB }   /* isethiopicextb */,
+  {     8,  3021,   392,   4,   2, UNI_IN__4_DOT_1 }   /* in=v41 */,
+  {     1,  5637,   585,  20,   2, UNI_GCB__T }   /* graphemeclusterbreak=t */,
+  {     0,   292,  2093,   3,   2, UNI_NV__50 }   /* nv=50 */,
+  {     0,  4424,   212,  17,   4, UNI_TIBT }   /* scriptextensions=tibt */,
+  {     1,  2752,   585,   5,   2, UNI_EMOJI }   /* emoji=t */,
+  {     0,  1198,  1922,   3,  11, UNI_CHESSSYMBOLS }   /* inchesssymbols */,
+  {     4,  1102,  5031,   4,  14, UNI_ROHG }   /* scx=hanifirohingya */,
+  {     6,  1906,   324,   8,   3, UNI_KANASUP }   /* blk=kanasup */,
+  {     0,  8658,     0,  36,   0, UNI_UCAS }   /* isunifiedcanadianaboriginalsyllabics */,
+  {     0,   461,  2852,   2,   4, UNI_MAHJ }   /* ismahj */,
+  {     0,   823,     0,   4,   0, UNI_DASH }   /* dash */,
+  {     1,   461,  4926,   2,  15, UNI_TAMILSUP }   /* istamilsupplement */,
+  {     3,  4424,    27,  17,   4, UNI_ARMI }   /* scriptextensions=armi */,
+  {     6,  3021,  1070,   4,   2, UNI_IN__3_DOT_1 }   /* in=v31 */,
+  {     0,   461,  6154,   2,   9, UNI_XSUX }   /* iscuneiform */,
+  {     1,  1102,   967,   4,   8, UNI_GUJR }   /* scx=gujarati */,
+  {     2,   309,  2468,   2,  13, UNI_IPAEXT }   /* inipaextensions */,
+  {     0,  8311,  3998,  32,   4, UNI_CJKEXTG }   /* block=cjkunifiedideographsextensiong */,
+  {     2,  1102,  4651,   4,   8, UNI_BOPO }   /* scx=bopomofo */,
+  {     0,  1455,   599,   3,   2, -UNI_DEP }   /* dep=n */,
+  {     0,  1102,  2441,   4,  11, UNI_NAND }   /* scx=nandinagari */,
+  {     0,  8538,  2720,  19,   2, UNI_VO__R }   /* verticalorientation=r */,
+  {     0,  2324,  6400,   9,  18, UNI_CJKRADICALSSUP }   /* block=cjkradicalssupplement */,
+  {     0,   461,  7796,   2,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* isenclosedideographicsupplement */,
+  {    10,   240,     0,   4,   0, UNI_ZYYY }   /* zyyy */,
+  {     0,  6165,  6185,   3,  10, UNI_SC__GLAG }   /* sc=glagolitic */,
+  {     3,  6165,   571,   3,   7, UNI_AVST }   /* sc=avestan */,
+  {     3,  7274,  4146,   9,  15, UNI_PD }   /* category=dashpunctuation */,
+  {     2,   317,  5376,   3,   8, UNI_TAIXUANJING }   /* taixuanjing */,
+  {     0,   461,   302,   2,   5, UNI__PERL_PATWS }   /* ispatws */,
+  {     1,   940,   353,   6,   2, UNI_COMPEX }   /* compex=y */,
+  {     0,  4502,  4698,   8,   5, UNI_LATIN1 }   /* blk=latin1sup */,
+  {     4,  4360,   184,  10,   2, UNI_LB__SA }   /* linebreak=sa */,
+  {     8,  1102,   200,   4,   4, UNI_TAVT }   /* scx=tavt */,
+  {     0,  1065,   520,   5,   1, UNI_NV__1_SLASH_7 }   /* nv=1/7 */,
+  {    10,   309,   297,   2,   5, UNI_INORIYA }   /* inoriya */,
+  {     3,   510,  1318,   5,   2, UNI_NV__3_SLASH_20 }   /* nv=3/20 */,
+  {     2,  1198,  8474,   5,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* incjkcompatibilityideographs */,
+  {     0,   461,  3436,   2,  15, UNI_SARB }   /* isoldsoutharabian */,
+  {     2,  1894,     0,   5,   0, UNI_BIDIM }   /* bidim */,
+  {     3,  2324,   499,   6,   6, UNI_INLYDIAN }   /* block=lydian */,
+  {     1,  2287,  2155,   3,   3, UNI_IN__3_DOT_1 }   /* in=3.1 */,
+  {    15,  1728,  6193,   4,   5, UNI_ARABICSUP }   /* arabicsup */,
+  {     1,  5156,   700,  10,   2, UNI_WB__EB }   /* wordbreak=em */,
+  {     1,  4424,   333,  17,   6, UNI_CARI }   /* scriptextensions=carian */,
+  {     0,   461,  7356,   2,  27, UNI_OCR }   /* isopticalcharacterrecognition */,
+  {     1,  1102,  5958,   4,   7, UNI_SINH }   /* scx=sinhala */,
+  {     0,   461,   746,   2,   4, UNI_MARC }   /* ismarc */,
+  {     2,  5553,     0,  21,   0, UNI_CWCM }   /* changeswhencasemapped */,
+  {     0,  6487,     0,  13,   0, UNI_ZNAMENNYMUSIC }   /* znamennymusic */,
+  {     0,  6427,   702,  13,   4, UNI_JG__NOON }   /* joininggroup=noon */,
+  {     5,  1823,   184,   7,   4, UNI_SAMR }   /* script=samr */,
+  {     0,  1894,   585,  12,   2, UNI_BIDIM }   /* bidimirrored=t */,
+  {     3,   533,  2968,   3,   3, UNI_SB__SE }   /* sb=sep */,
+  {    16,  1823,  6642,   7,   4, UNI_BRAH }   /* script=brah */,
+  {     1,  4424,   653,  17,   5, UNI_BUHD }   /* scriptextensions=buhid */,
+  {     0,   446,     0,   4,   0, UNI_PHLI }   /* phli */,
+  {     0,   461,    50,   2,   2, UNI_MC }   /* ismc */,
+  {     0,   292,  1313,   3,   4, UNI_NV__6000 }   /* nv=6000 */,
+  {     0,  1667,  2256,   4,  12, UNI_PHAISTOS }   /* blk=phaistosdisc */,
+  {     3,  7267,  4207,  17,  14, UNI_PS }   /* generalcategory=openpunctuation */,
+  {     2,  7011,   393,  24,   2, UNI_CCC__15 }   /* canonicalcombiningclass=15 */,
+  {     0,  4845,   584,  16,   6, UNI__PERL_PATWS }   /* patternwhitespace=true */,
+  {     0,  6427,  3294,  13,   7, UNI_JG__SEMKATH }   /* joininggroup=semkath */,
+  {     0,   461,   615,   2,   7, UNI_ELYM }   /* iselymaic */,
+  {     5,  4424,   112,  17,   4, UNI_KITS }   /* scriptextensions=kits */,
+  {     3,  2287,  2689,   3,   3, UNI_IN__6_DOT_1 }   /* in=6.1 */,
+  {    13,  2842,  1183,   3,   8, UNI_EMOTICONS }   /* isemoticons */,
+  {     1,  6163,  1168,  14,   6, UNI_INSC__CONSONANTMEDIAL }   /* insc=consonantmedial */,
+  {     0,   895,   396,   5,   2, UNI_AGE__6_DOT_1 }   /* age=v61 */,
+  {     1,  4191,  4196,   5,  10, UNI_LOWERCASELETTER }   /* lowercaseletter */,
+  {     2,  3848,  2107,  14,   8, UNI_NV__15_SLASH_2 }   /* numericvalue=7.500e+00 */,
+  {     2,  5156,     0,  10,   0, UNI_wb_values_index }   /* wordbreak= */,
+  {    11,  5637,  1869,  21,   3, UNI_WB__EB }   /* graphemeclusterbreak=gaz */,
+  {    24,  2259,   848,   3,   6, UNI_LANA }   /* istaitham */,
+  {     4,  4424,    51,  17,   4, UNI_CANS }   /* scriptextensions=cans */,
+  {     0,  2302,  3401,   8,   3, UNI_idc_values_index }   /* idcontinue= */,
+  {     0,   309,  7855,   2,  32, UNI_INIDC }   /* inideographicdescriptioncharacters */,
+  {     2,   461,   991,   2,   4, UNI_HATR }   /* ishatr */,
+  {     1,    20,   353,   3,   2, UNI_XPOSIXXDIGIT }   /* hex=y */,
+  {     7,  1667,  6400,   7,  18, UNI_CJKRADICALSSUP }   /* blk=cjkradicalssupplement */,
+  {     1,   895,   343,   6,   1, UNI_IN__1_DOT_1 }   /* age=v11 */,
+  {     0,  2434,  4511,   7,   9, UNI_MYANMAREXTB }   /* myanmarextendedb */,
+  {     6,  5553,   585,  21,   2, UNI_CWCM }   /* changeswhencasemapped=t */,
+  {     2,  8071,  3998,  30,   4, UNI_CJKEXTG }   /* blk=cjkunifiedideographsextensiong */,
+  {     0,   339,  1432,   4,   6, UNI_CCC__9 }   /* ccc=virama */,
+  {     0,  6165,  1376,   3,   9, UNI_SAMR }   /* sc=samaritan */,
+  {     2,  1823,   772,   7,   7, UNI_OLCK }   /* script=olchiki */,
+  {     4,  4424,   951,  17,   8, UNI_DUPL }   /* scriptextensions=duployan */,
+  {     0,  5156,  6324,  10,   6, UNI_WB__FO }   /* wordbreak=format */,
+  {     3,  6062,  7915,   7,  29, UNI_ENCLOSEDALPHANUMSUP }   /* block=enclosedalphanumericsupplement */,
+  {     1,  4424,  5876,  17,   4, UNI_SUND }   /* scriptextensions=sund */,
+  {     0,   339,  2101,   5,   2, UNI_CCC__129 }   /* ccc=129 */,
+  {     0,  2324,  1241,   6,   7, UNI_NB }   /* block=noblock */,
+  {     2,  2514,  1037,   9,   4, UNI_MYANMAREXTB }   /* ismyanmarextb */,
+  {     6,  1801,  1805,   9,   7, UNI_NV__1000000000000 }   /* nv=1000000000000 */,
+  {     5,   309,  3093,   2,   5, UNI_ASCII }   /* inascii */,
+  {     0,  8343,  1432,  22,   6, UNI_INSC__VIRAMA }   /* indicsyllabiccategory=virama */,
+  {     2,  4424,   683,  17,   4, UNI_TAKR }   /* scriptextensions=takr */,
+  {     0,  1102,   466,   4,   4, UNI_SOGO }   /* scx=sogo */,
+  {     0,  2324,   537,   6,   6, UNI_INTANGSA }   /* block=tangsa */,
+  {     4,  4407,     0,  17,   0, UNI_RI }   /* regionalindicator */,
+  {     1,  4424,  2046,  18,  11, UNI_GONM }   /* scriptextensions=masaramgondi */,
+  {     3,  6427,   783,  13,   3, UNI_JG__NYA }   /* joininggroup=nya */,
+  {     1,  4424,  3133,  16,   5, UNI_GEOR }   /* scriptextensions=geor */,
+  {     0,  4424,   317,  17,   5, UNI_TALE }   /* scriptextensions=taile */,
+  {     2,  1667,   868,   4,   7, UNI_INTIRHUTA }   /* blk=tirhuta */,
+  {     0,  5156,  3456,  12,   7, UNI_WB__MB }   /* wordbreak=midnumlet */,
+  {     0,  4424,  1954,  17,  12, UNI_GONG }   /* scriptextensions=gunjalagondi */,
+  {     0,  7648,  1850,  18,   3, UNI_DT__SUB }   /* decompositiontype=sub */,
+  {     0,  1667,   238,   4,   2, UNI_NB }   /* blk=nb */,
+  {     1,  6450,  4569,  14,   5, UNI_SB__UP }   /* sentencebreak=upper */,
+  {     0,  5574,   274,  21,   1, UNI_cwl_values_index }   /* changeswhenlowercased= */,
+  {     0,  2208,  1072,   4,   3, UNI_NV__5_SLASH_12 }   /* nv=5/12 */,
+  {     0,    30,  4826,   1,  19, UNI_ZP }   /* isparagraphseparator */,
+  {     0,    32,   934,   2,   2, -UNI_VS }   /* vs=f */,
+  {     1,  7214,  1317,  25,   2, UNI_CCC__132 }   /* canonicalcombiningclass=132 */,
+  {     0,   695,  5243,   4,  12, UNI_PO }   /* otherpunctuation */,
+  {     2,  1011,   353,   2,   4, UNI_CI }   /* ci=yes */,
+  {     5,  1667,  3611,   7,   6, UNI_CJKCOMPAT }   /* blk=cjkcompat */,
+  {     5,   688,     0,   5,   0, UNI_BATK }   /* batak */,
+  {     0,  4043,   353,   4,   2, UNI_IDSB }   /* idsb=y */,
+  {     6,  3177,  7036,  15,   9, UNI_EA__H }   /* eastasianwidth=halfwidth */,
+  {     0,  4360,     0,  17,   0, UNI_LB__ZW }   /* linebreak=zwspace */,
+  {     1,  1223,  1037,   4,   4, UNI_KANAEXTB }   /* kanaextb */,
+  {     6,  1667,   739,   4,   7, UNI_INMANDAIC }   /* blk=mandaic */,
+  {     0,  7804,   934,  11,   2, -UNI_IDEO }   /* ideographic=f */,
+  {     1,  3514,  2800,   7,  11, UNI_ALPHABETICPF }   /* block=alphabeticpf */,
+  {     1,  6870,   353,  20,   4, UNI_CE }   /* compositionexclusion=yes */,
+  {     4,  7274,  3634,   9,   2, UNI_NL }   /* category=nl */,
+  {     0,  2324,  4161,   6,  12, UNI_DIACRITICALS }   /* block=diacriticals */,
+  {     2,  6165,  1349,   3,   9, UNI_SC__OUGR }   /* sc=olduyghur */,
+  {     1,   461,  5031,   2,   4, UNI_HAN }   /* ishani */,
+  {     0,  4371,   599,   6,   3, -UNI_XPOSIXSPACE }   /* wspace=no */,
+  {     4,  4424,  5391,  17,   8, UNI_CHER }   /* scriptextensions=cherokee */,
+  {     1,  6062,  6193,  12,  12, UNI_ETHIOPICSUP }   /* block=ethiopicsupplement */,
+  {     0,  4569,     0,  15,   0, UNI_UPPERCASELETTER }   /* uppercaseletter */,
+  {     0,  1667,  6357,   7,  13, UNI_CJKCOMPAT }   /* blk=cjkcompatibility */,
+  {     1,  1478,     0,   2,   0, UNI_ZS }   /* zs */,
+  {     8,  7267,   269,  16,   2, UNI_ZP }   /* generalcategory=zp */,
+  {     2,  4161,   353,   9,   2, UNI_DIA }   /* diacritic=y */,
+  {     1,     2,   274,   3,   1, UNI_cwl_values_index }   /* cwl= */,
+  {    14,  1696,  1704,   8,   3, UNI_DOMINO }   /* dominotiles */,
+  {     0,  6082,     0,   8,   0, UNI_GEOR }   /* georgian */,
+  {     0,  6642,     0,   4,   0, UNI_BRAH }   /* brah */,
+  {     2,  4424,   790,  17,   4, UNI_KALI }   /* scriptextensions=kali */,
+  {     0,   461,   590,   2,   7, UNI_DSRT }   /* isdeseret */,
+  {     2,  2324,  4725,   6,   9, UNI_TANGUTSUP }   /* block=tangutsup */,
+  {     1,  2301,   599,   4,   3, -UNI_XIDC }   /* xidc=no */,
+  {     1,   309,   144,   2,   4, UNI_INNEWA }   /* innewa */,
+  {     3,  5916,  8553,  17,   5, UNI_loe_values_index }   /* logicalorderexception= */,
+  {     0,    33,  5409,   1,  17, UNI_SMALLKANAEXT }   /* smallkanaextension */,
+  {     1,  1174,   604,   3,   4, UNI_EA__W }   /* ea=wide */,
+  {     1,  4424,    67,  17,   4, UNI_CPRT }   /* scriptextensions=cprt */,
+  {     6,  8246,  4107,  30,  12, UNI_INPC__TOPANDLEFTANDRIGHT }   /* indicpositionalcategory=topandleftandright */,
+  {     1,  1102,  1009,   4,   6, UNI_LYCI }   /* scx=lycian */,
+  {     0,   875,   585,   5,   5, UNI_UIDEO }   /* uideo=true */,
+  {     2,   271,  1864,   4,   5, UNI_WB__EB }   /* gcb=ebase */,
+  {     0,  7267,   106,  16,   2, UNI_ZL }   /* generalcategory=zl */,
+  {     0,  4424,   683,  17,   5, UNI_TAKR }   /* scriptextensions=takri */,
+  {     0,  3724,   135,   4,   2, UNI_JG__MIM }   /* jg=mim */,
+  {     8,  1065,  1071,   4,   4, UNI_NV__11_SLASH_12 }   /* nv=11/12 */,
+  {     0,  1102,   172,   4,   4, UNI_RJNG }   /* scx=rjng */,
+  {     4,  1454,   585,   2,   5, UNI_SD }   /* sd=true */,
+  {    11,   521,   353,   6,   2, UNI_PATSYN }   /* patsyn=y */,
+  {     0,  1397,   934,   3,   2, -UNI_IDS }   /* ids=f */,
+  {     1,  1102,   136,   4,   4, UNI_MYMR }   /* scx=mymr */,
+  {     7,  2752,     0,   5,   0, UNI_EMOJI }   /* emoji */,
+  { 32394,  1102,  4089,   4,   4, UNI_SIND }   /* scx=sind */,
+  {     1,  6427,  5031,  13,  16, UNI_JG__HANIFIROHINGYAPA }   /* joininggroup=hanifirohingyapa */,
+  {     2,  2324,  5801,   6,  19, UNI_SUPARROWSB }   /* block=supplementalarrowsb */,
+  {     3,  5637,  5769,  21,   9, UNI_WB__EB }   /* graphemeclusterbreak=emodifier */,
+  {     1,   847,     0,   7,   0, UNI_LANA }   /* taitham */,
+  {     2,  1391,  3634,   3,   2, UNI_WB__NL }   /* wb=nl */,
+  {     3,  2523,  3100,   8,   6, UNI_XPOSIXXDIGIT }   /* isxposixxdigit */,
+  {     1,   939,   585,   5,   2, UNI_ECOMP }   /* ecomp=t */,
+  {     8,   533,     6,   3,   2, UNI_LB__CR }   /* sb=cr */,
+  {     3,  1618,   353,  10,   2, UNI_SD }   /* softdotted=y */,
+  {     4,    54,  6081,   2,   9, UNI_SC__GEOR }   /* sc=georgian */,
+  {     0,  6816,   934,  25,   2, -UNI_CWKCF }   /* changeswhennfkccasefolded=f */,
+  {     2,   461,  4150,   2,   5, UNI_P }   /* ispunct */,
+  {     2,  4424,   983,  17,   8, UNI_HIRA }   /* scriptextensions=hiragana */,
+  {     2,  7267,  3192,  16,  12, UNI_NL }   /* generalcategory=letternumber */,
+  {     5,  1221,  1505,   6,   4, UNI_KANAEXTA }   /* inkanaexta */,
+  {     7,  1994,   599,   7,   2, -UNI_RADICAL }   /* radical=n */,
+  {     0,  6618,  2728,  20,   4, UNI_INPC__TOPANDBOTTOMANDLEFT }   /* inpc=topandbottomandleft */,
+  {     3,  3848,  3846,  14,   2, UNI_NV__7_SLASH_8 }   /* numericvalue=7/8 */,
+  {     1,  7495,   520,  28,   1, UNI_CCC__17 }   /* canonicalcombiningclass=ccc17 */,
+  {     0,  2324,  6000,   6,   6, UNI_YIJING }   /* block=yijing */,
+  {     6,  3633,  3773,   3,  15, UNI_LINEARBIDEOGRAMS }   /* inlinearbideograms */,
+  {     0,   461,  4569,   2,  15, UNI_UPPERCASELETTER }   /* isuppercaseletter */,
+  {    14,   196,     0,   4,   0, UNI_TAML }   /* taml */,
+  {     0,  1823,   840,   7,   7, UNI_SC__TGLG }   /* script=tagalog */,
+  {     3,  1823,   232,   7,   2, UNI_SC__YI }   /* script=yi */,
+  {     0,  1102,  1325,   4,   4, UNI_ITAL }   /* scx=ital */,
+  {     1,  3848,  1314,  14,   3, UNI_NV__7000 }   /* numericvalue=7000 */,
+  {     1,  5065,  4746,  13,   5, UNI_JG__MANICHAEANGIMEL }   /* jg=manichaeangimel */,
+  {     9,  6165,   220,   3,   4, UNI_WCHO }   /* sc=wcho */,
+  {    19,  7495,  3405,  27,   2, UNI_CCC__36 }   /* canonicalcombiningclass=ccc36 */,
+  {     1,   309,  6464,   2,  23, UNI_SHORTHANDFORMATCONTROLS }   /* inshorthandformatcontrols */,
   {     0,     0,  1036,   1,   2, UNI_LOE }   /* loe */,
-  {     8,  4355,    98,  17,   4, UNI_GURU }   /* scriptextensions=guru */,
-  {    18,  2474,  4442,   9,   9, UNI_MYANMAREXTB }   /* ismyanmarextendedb */,
-  {     3,  1033,     0,   8,   0, UNI_JAMOEXTB }   /* jamoextb */,
-  {     1,  7431,   292,  28,   2, UNI_CCC__130 }   /* canonicalcombiningclass=ccc130 */,
-  {     1,  6114,  1133,   3,   8, UNI_VITH }   /* sc=vithkuqi */,
-  {     8,   625,   601,   6,   2, UNI_extpict_values_index }   /* extpict= */,
-  {     1,  1395,  6890,   5,   9, UNI_LATINEXTE }   /* latinextendede */,
-  {     1,   426,  4918,   3,   9, UNI_ALCHEMICAL }   /* inalchemical */,
-  {     6,  1241,     0,   7,   0, UNI_PHAG }   /* phagspa */,
-  {     0,   555,  2172,   4,   3, UNI_AGE__2 }   /* age=2.0 */,
-  {     0,   313,  5825,   2,   9, UNI_INSUNDANESE }   /* insundanese */,
-  {     1,   343,  8139,   4,  11, UNI_CCC__DB }   /* ccc=doublebelow */,
-  {     0,  6025,     0,  14,   0, UNI_INGEORGIAN }   /* block=georgian */,
-  {     5,   328,  8319,   3,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* supsymbolsandpictographs */,
-  {     3,  1856,   602,  11,   3, -UNI_BIDIC }   /* bidicontrol=no */,
-  {     3,  2454,  2332,   3,   7, UNI_GREEKEXT }   /* isgreekext */,
-  {     0,  6112,  6594,   5,  19, UNI_INSC__BRAHMIJOININGNUMBER }   /* insc=brahmijoiningnumber */,
-  {     2,  6799,     0,  24,   0, UNI_COMPEX }   /* fullcompositionexclusion */,
-  {     8,  5322,  5329,   7,   4, UNI_CHEROKEESUP }   /* cherokeesup */,
-  {    16,   513,  3807,   5,   2, UNI_NV__3_SLASH_80 }   /* nv=3/80 */,
-  {     0,   925,  5021,   3,   6, UNI_BPT__C }   /* bpt=close */,
-  {     2,  4291,  4233,  10,  14, UNI_LB__SA }   /* linebreak=complexcontext */,
-  {    12,  7182,  8089,   3,  21, UNI_CJKSYMBOLS }   /* cjksymbolsandpunctuation */,
-  {     4,  5340,     0,  13,   0, UNI_DEVANAGARIEXT }   /* devanagariext */,
-  {     1,  3474,  8592,   6,  42, UNI_UCASEXT }   /* block=unifiedcanadianaboriginalsyllabicsextended */,
-  {     0,  6114,   983,   3,   8, UNI_SC__HIRA }   /* sc=hiragana */,
-  {     1,   275,  3423,   4,  12, UNI_WB__EB }   /* gcb=glueafterzwj */,
-  {     0,   343,  1153,   4,   2, UNI_CCC__24 }   /* ccc=24 */,
-  {     3,  3351,  7171,  12,   3, UNI_NV__12 }   /* numericvalue=12 */,
-  {     0,  6944,   298,  23,   2, UNI_CCC__9 }   /* canonicalcombiningclass=9 */,
-  {     2,   313,   584,   2,   2, UNI_IN__2 }   /* in=2 */,
-  {     4,  3991,     0,   7,   0, UNI_BRAI }   /* braille */,
-  {     0,  1383,     0,   3,   0, UNI_IDS }   /* ids */,
-  {    10,  1991,  2879,  12,  11, UNI_JT__L }   /* joiningtype=leftjoining */,
-  {    11,   313,  4827,   2,   5, UNI_INBAMUM }   /* inbamum */,
-  {     1,  4355,  1220,  17,   7, UNI_MAKA }   /* scriptextensions=makasar */,
-  {     2,  6114,   413,   3,   4, UNI_SC__GONM }   /* sc=gonm */,
-  {     3,  2181,  1781,   4,   4, UNI_NV__50000 }   /* nv=50000 */,
-  {     9,  5748,  4388,   4,  15, UNI_SUTTONSIGNWRITING }   /* insuttonsignwriting */,
-  {     1,  4515,   356,  18,   2, UNI_IDST }   /* idstrinaryoperator=y */,
-  {     0,  6114,   661,   3,   5, UNI_SC__DOGR }   /* sc=dogra */,
-  {     0,  8592,     0,  43,   0, UNI_UCASEXTA }   /* unifiedcanadianaboriginalsyllabicsextendeda */,
-  {     8,  2496,   118,   3,   3, UNI_JG__DAL }   /* jg=dal */,
-  {     0,   464,   405,   2,   4, UNI_ARMN }   /* isarmn */,
-  {     2,   464,  1317,   2,   9, UNI_PERM }   /* isoldpermic */,
-  {     0,  6114,  1220,   3,   7, UNI_MAKA }   /* sc=makasar */,
-  {     0,  2678,   143,   3,   2, UNI_BC__BN }   /* bc=bn */,
-  {     1,  5544,   602,  21,   2, -UNI_CWT }   /* changeswhentitlecased=n */,
-  {     5,  6687,   135,  14,   2, UNI_JG__MIM }   /* joininggroup=mim */,
-  {     3,  2496,  1046,   3,   5, UNI_JG__KHAPH }   /* jg=khaph */,
-  {     7,  4783,     0,  10,   0, UNI_XPOSIXSPACE }   /* whitespace */,
-  {     1,   833,   934,   4,   2, -UNI_TERM }   /* term=f */,
-  {     1,  6114,    90,   3,   4, UNI_SC__GREK }   /* sc=grek */,
-  {     0,  1796,   637,   7,   7, UNI_SC__HANO }   /* script=hanunoo */,
-  {     1,  6944,  4947,  24,   2, UNI_CCC__8 }   /* canonicalcombiningclass=kv */,
-  {     1,  8007,  6352,   7,  11, UNI_CJKRADICALSSUP }   /* blk=cjkradicalssup */,
-  {     0,  7317,  4418,  10,  15, UNI_BC__CS }   /* bidiclass=commonseparator */,
-  {     1,  2474,  1052,   3,   7, UNI_MAHJ }   /* ismahajani */,
-  {     1,  3474,  5806,   6,   9, UNI_INMONGOLIAN }   /* block=mongolian */,
-  {     1,  6114,   473,   3,   4, UNI_TNSA }   /* sc=tnsa */,
-  {     1,  3748,   769,  14,   3, UNI_NV__15_SLASH_2 }   /* numericvalue=15/2 */,
-  {     0,   409,   602,   2,   3, -UNI_DI }   /* di=no */,
-  {     0,   313,  2155,   2,   2, UNI_IN__4 }   /* in=4 */,
-  {     3,  1236,  4998,   5,  11, UNI_INMANICHAEAN }   /* block=manichaean */,
-  {     2,  6728,     0,  14,   0, UNI_MEETEIMAYEKEXT }   /* meeteimayekext */,
-  {     0,   313,  1021,   2,   6, UNI_INWANCHO }   /* inwancho */,
-  {     0,  1441,   278,  10,   1, UNI_dep_values_index }   /* deprecated= */,
-  {    20,  6944,  3101,  24,  11, UNI_CCC__DA }   /* canonicalcombiningclass=doubleabove */,
-  {     0,  1879,  5949,   4,   6, UNI_YIJING }   /* blk=yijing */,
-  {     0,  4291,  3432,  10,   3, UNI_LB__ZWJ }   /* linebreak=zwj */,
-  {     2,  7660,   602,  17,   3, -UNI_VS }   /* variationselector=no */,
-  {     0,  1879,  1033,   4,   4, UNI_JAMO }   /* blk=jamo */,
-  {     2,  1710,  6623,   3,  21, UNI_MODIFIERLETTERS }   /* isspacingmodifierletters */,
-  {     0,   409,   602,   2,   2, -UNI_DI }   /* di=n */,
-  {     0,  4291,  2569,  10,  10, UNI_LB__WJ }   /* linebreak=wordjoiner */,
-  {     0,  1915,  5620,  11,   3, -UNI_GRBASE }   /* graphemebase=n */,
-  {     1,  1856,   345,   4,   2, UNI_bidic_values_index }   /* bidic= */,
-  {     0,   464,    24,   2,   3, UNI_XPOSIXXDIGIT }   /* ishex */,
-  {     5,  7527,  1837,   3,   5, UNI_EBASE }   /* lb=ebase */,
-  {     3,  3474,  1255,   6,   7, UNI_INSOYOMBO }   /* block=soyombo */,
-  {     0,   378,   356,   5,   4, UNI_GREXT }   /* grext=yes */,
-  {     0,  3137,  1906,  15,   9, UNI_EA__A }   /* eastasianwidth=ambiguous */,
-  {     0,  6114,  4202,   3,  17, UNI_KITS }   /* sc=khitansmallscript */,
-  {     0,  4355,  1191,  17,   7, UNI_BENG }   /* scriptextensions=bengali */,
-  {     3,   296,  2071,   3,   9, UNI_NV__1_SLASH_7 }   /* nv=1.429e-01 */,
-  {     1,  6114,    86,   3,   4, UNI_SC__GONG }   /* sc=gong */,
-  {     1,  7880,  8089,   5,  21, UNI_CJKSYMBOLS }   /* iscjksymbolsandpunctuation */,
-  {     9,   313,  3637,   2,  14, UNI_LISUSUP }   /* inlisusupplement */,
-  {     1,  1796,  1308,   7,   9, UNI_ITAL }   /* script=olditalic */,
-  {     3,   600,   607,   3,   4, UNI_EA__F }   /* dt=wide */,
-  {     2,   313,  7044,   2,  24, UNI_DIACRITICALSFORSYMBOLS }   /* incombiningmarksforsymbols */,
-  {     0,  1033,     0,   4,   0, UNI_JAMO }   /* jamo */,
-  {     3,  6379,  4682,  13,   3, UNI_JG__SAD }   /* joininggroup=sad */,
-  {     4,   313,  4999,   2,  10, UNI_INMANICHAEAN }   /* inmanichaean */,
-  {     1,  1377,   285,   3,   2, UNI_WB__XX }   /* wb=xx */,
-  {     1,   313,  6919,   2,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* insymbolsforlegacycomputing */,
-  {     2,   895,  1304,   5,   2, UNI_AGE__2 }   /* age=v20 */,
-  {     4,  5409,   934,  19,   6, -UNI_TERM }   /* terminalpunctuation=false */,
-  {     0,  7385,     0,  18,   0, UNI_PHONETICEXT }   /* phoneticextensions */,
-  {     0,  7584,  3571,  18,   6, UNI_DT__COM }   /* decompositiontype=compat */,
-  {     1,   464,  2275,   2,  10, UNI_IDC }   /* isidcontinue */,
-  {    20,     2,   934,   3,   2, -UNI_CWL }   /* cwl=f */,
-  {     4,  7208,  5103,   9,   2, UNI_CASEDLETTER }   /* category=l_ */,
-  {     0,  6114,   200,   3,   4, UNI_SC__TAML }   /* sc=taml */,
-  {     1,  2253,   563,  10,   3, UNI_IN__7 }   /* presentin=7.0 */,
-  {     0,  7208,  3151,   8,  13, UNI_NL }   /* category=letternumber */,
-  {     0,  1382,   602,   4,   3, -UNI_XIDS }   /* xids=no */,
-  {     0,  3779,  1781,  14,   4, UNI_NV__70000 }   /* numericvalue=70000 */,
-  {     0,  5409,     0,  19,   0, UNI_TERM }   /* terminalpunctuation */,
-  {     5,  3462,  6142,  10,  12, UNI_ETHIOPICSUP }   /* blk=ethiopicsupplement */,
-  {     1,  2678,  3066,   3,  12, UNI_BC__AL }   /* bc=arabicletter */,
-  {     2,  1102,   502,   4,   6, UNI_LYDI }   /* scx=lydian */,
-  {     0,  8533,  7643,  17,  17, UNI_SUPPUAB }   /* block=supplementaryprivateuseareab */,
-  {     0,    12,     0,   1,   0, UNI_P }   /* p */,
-  {     3,  8007,  1037,   7,   4, UNI_CJKEXTB }   /* blk=cjkextb */,
-  {     0,   940,   588,   6,   5, UNI_COMPEX }   /* compex=true */,
-  {     0,  1879,  5205,   4,  18, UNI_HALFMARKS }   /* blk=combininghalfmarks */,
-  {     2,  6944,   771,  24,   2, UNI_CCC__21 }   /* canonicalcombiningclass=21 */,
-  {     2,  7527,  4235,   5,  12, UNI_LB__SA }   /* lb=complexcontext */,
-  {     0,  1441,   356,   3,   2, UNI_DEP }   /* dep=y */,
-  {     3,  4338,   602,  17,   2, -UNI_RI }   /* regionalindicator=n */,
-  {     0,  1879,  7473,   4,  27, UNI_ALPHABETICPF }   /* blk=alphabeticpresentationforms */,
-  {     2,  2726,  3518,   3,   9, UNI_Z }   /* gc=separator */,
-  {    15,  1102,   666,   4,   5, UNI_LIMB }   /* scx=limbu */,
-  {     4,  6114,   132,   3,   4, UNI_MTEI }   /* sc=mtei */,
-  {     1,  4996,  1988,  13,   3, UNI_JG__MANICHAEANWAW }   /* jg=manichaeanwaw */,
-  {     0,  1383,   602,   3,   3, -UNI_IDS }   /* ids=no */,
-  {     9,  4355,  5116,  17,  20, UNI_HLUW }   /* scriptextensions=anatolianhieroglyphs */,
-  {     0,   313,  7385,   2,  18, UNI_PHONETICEXT }   /* inphoneticextensions */,
-  {     1,  1102,  1982,   4,   6, UNI_SYRC }   /* scx=syriac */,
-  {     2,  1796,  3498,   7,   7, UNI_SC__CPRT }   /* script=cypriot */,
-  {     1,  3823,   588,  16,   5, UNI_STERM }   /* sentenceterminal=true */,
-  {     0,    75,   602,   3,   2, -UNI_CWU }   /* cwu=n */,
-  {     6,  5607,  1441,  15,  10, UNI_DEP }   /* identifiertype=deprecated */,
-  {     2,   464,  1668,   2,   6, UNI_DOMINO }   /* isdomino */,
-  {     1,  2726,  2581,   3,   9, UNI__PERL_SURROGATE }   /* gc=surrogate */,
-  {     0,  2253,  2195,   9,   4, UNI_IN__6_DOT_2 }   /* presentin=6.2 */,
-  {     5,   464,  3527,   2,  16, UNI_HALFANDFULLFORMS }   /* ishalfandfullforms */,
-  {     1,  1879,  7044,   4,  24, UNI_DIACRITICALSFORSYMBOLS }   /* blk=combiningmarksforsymbols */,
-  {     0,  6379,  7276,  13,  10, UNI_JG__TEHMARBUTA }   /* joininggroup=tehmarbuta */,
-  {     2,  7208,   273,   9,   2, UNI_ZP }   /* category=zp */,
-  {     2,  1571,     0,   4,   0, UNI_SAUR }   /* saur */,
-  {     4,   464,  1125,   2,   8, UNI_TFNG }   /* istifinagh */,
-  {     3,  1102,   433,   4,   3, UNI_NKO }   /* scx=nko */,
-  {     0,  1214,  1491,   6,   4, UNI_KANAEXTA }   /* inkanaexta */,
-  {     0,  1879,  1965,   4,  10, UNI_YIRADICALS }   /* blk=yiradicals */,
-  {     4,  8244,  6352,   9,  11, UNI_CJKRADICALSSUP }   /* block=cjkradicalssup */,
-  {     2,  1867,   934,   5,   2, -UNI_BIDIM }   /* bidim=f */,
-  {    13,  2678,  6262,   3,  20, UNI_BC__PDF }   /* bc=popdirectionalformat */,
-  {     4,   736,  7851,   3,  29, UNI_ENCLOSEDALPHANUMSUP }   /* inenclosedalphanumericsupplement */,
-  {     3,  7740,   356,  11,   2, UNI_IDEO }   /* ideographic=y */,
-  {     0,  3518,     0,   9,   0, UNI_Z }   /* separator */,
-  {     9,  6114,  1289,   3,   9, UNI_TALU }   /* sc=newtailue */,
-  {     0,  3763,  6199,  14,   5, UNI_NV__500000 }   /* numericvalue=500000 */,
-  {     1,    33,  2383,   2,   9, UNI_MISCSYMBOLS }   /* miscsymbols */,
-  {     8,  7605,  1847,  21,   8, UNI_LB__H2 }   /* hangulsyllabletype=lvsyllable */,
-  {     0,  6803,   356,  20,   2, UNI_CE }   /* compositionexclusion=y */,
-  {     1,  3474,  3435,   6,  15, UNI_INZANABAZARSQUARE }   /* block=zanabazarsquare */,
-  {     1,  2678,  5446,   3,  18, UNI_BC__FSI }   /* bc=firststrongisolate */,
-  {     5,  4291,     0,  12,   0, UNI_LB__ZW }   /* linebreak=zw */,
-  {     9,  1529,     0,   4,   0, UNI_KHAR }   /* khar */,
-  {     4,    19,  3790,   2,   3, UNI_AGE__7 }   /* age=7 */,
-  {     0,  3462,  7733,   5,  28, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* blk=enclosedideographicsupplement */,
-  {     7,  2496,  4178,   3,   4, UNI_JG__KAPH }   /* jg=kaph */,
-  {     5,  1465,   933,   4,   3, -UNI_XPOSIXSPACE }   /* space=f */,
-  {     3,   313,  6538,   2,  11, UNI_NUMBERFORMS }   /* innumberforms */,
-  {     0,   618,     0,   4,   0, UNI_ELYM }   /* elym */,
-  {     0,  1879,  5907,   4,  21, UNI_SINHALAARCHAICNUMBERS }   /* blk=sinhalaarchaicnumbers */,
-  {     1,  7208,   366,   9,   2, UNI_SM }   /* category=sm */,
-  {     0,  1915,   355,  11,   2, UNI_grbase_values_index }   /* graphemebase= */,
-  {     0,   275,     5,   4,   2, UNI_GCB__EX }   /* gcb=ex */,
-  {     8,  6944,  6280,  24,   4, UNI_WB__EB }   /* canonicalcombiningclass=atbl */,
-  {     1,  1879,  1887,   4,   7, UNI_UCASEXT }   /* blk=ucasext */,
-  {     0,  2496,  1731,   3,   8, UNI_JG__SWASHKAF }   /* jg=swashkaf */,
-  {     0,  6114,   618,   3,   4, UNI_ELYM }   /* sc=elym */,
-  {     0,  4500,  5620,   8,   3, -UNI_XPOSIXUPPER }   /* uppercase=n */,
-  {     5,  6944,   394,  25,   2, UNI_CCC__DA }   /* canonicalcombiningclass=234 */,
-  {     0,  1236,  6414,   4,  25, UNI_SHORTHANDFORMATCONTROLS }   /* block=shorthandformatcontrols */,
-  {     1,   343,  2262,   3,   3, UNI_CCC__14 }   /* ccc=14 */,
-  {     2,  3474,  5284,   6,  20, UNI_ININSCRIPTIONALPAHLAVI }   /* block=inscriptionalpahlavi */,
-  {     0,  1516,  4442,   6,   9, UNI_KANAEXTB }   /* iskanaextendedb */,
-  {     0,  3622,  5584,  13,   3, UNI_LATINEXTG }   /* islatinextendedg */,
-  {    56,  3474,  7385,   6,  18, UNI_PHONETICEXT }   /* block=phoneticextensions */,
-  {     1,  1796,   413,   7,   4, UNI_SC__GONM }   /* script=gonm */,
-  {     7,  1879,  1561,   4,  10, UNI_INPHOENICIAN }   /* blk=phoenician */,
-  {     6,  3474,   967,   6,   8, UNI_INGUJARATI }   /* block=gujarati */,
-  {     3,   854,     0,   7,   0, UNI_TAVT }   /* taiviet */,
-  {     5,   313,   735,   2,   7, UNI_INLINEARA }   /* inlineara */,
-  {     1,   464,  5340,   2,   4, UNI_DEVA }   /* isdeva */,
-  {     9,  1465,  5620,   4,   4, -UNI_XPOSIXSPACE }   /* space=no */,
-  {     2,  5502,   356,  21,   2, UNI_CWCM }   /* changeswhencasemapped=y */,
-  {     8,  1102,  1255,   4,   4, UNI_SOYO }   /* scx=soyo */,
-  {     0,  3164,   602,  14,   2, -UNI_GREXT }   /* graphemeextend=n */,
-  {     5,  1796,  3188,   7,  15, UNI_ARMI }   /* script=imperialaramaic */,
-  {    12,  1236,  2302,   5,   8, UNI_BLOCKELEMENTS }   /* blockelements */,
-  {    40,  6114,  1003,   3,   6, UNI_LEPC }   /* sc=lepcha */,
-  {     0,  3669,   919,  12,   3, UNI_JG__MALAYALAMSSA }   /* jg=malayalamssa */,
-  {     1,   313,  2428,   2,   6, UNI_IPAEXT }   /* inipaext */,
-  {    17,  2981,  2066,   4,   2, UNI_IN__5 }   /* in=v50 */,
-  {     1,  2802,  1491,  10,   4, UNI_ETHIOPICEXTA }   /* isethiopicexta */,
-  {     1,  1879,  1191,   4,   7, UNI_INBENGALI }   /* blk=bengali */,
-  {     0,   581,   292,   5,   2, UNI_CCC__A }   /* ccc=230 */,
-  {     3,  2726,  2322,   3,  10, UNI_CN }   /* gc=unassigned */,
-  {     0,  2355,  1491,   8,   4, UNI_CYRILLICEXTA }   /* cyrillicexta */,
-  {     0,   464,  4827,   2,   5, UNI_BAMU }   /* isbamum */,
-  {     3,  1796,  5389,   7,  20, UNI_HMNP }   /* script=nyiakengpuachuehmong */,
-  {     3,  4962,     0,   4,   0, UNI_HAN }   /* hani */,
-  {     0,   464,  3839,   2,  16, UNI_TANGUTCOMPONENTS }   /* istangutcomponents */,
-  {     1,  6944,  5472,  24,   5, UNI_CCC__B }   /* canonicalcombiningclass=below */,
-  {     3,  1371,     0,   6,   0, UNI_THAA }   /* thaana */,
-  {     8,  3474,  1280,   6,   9, UNI_INNABATAEAN }   /* block=nabataean */,
-  {    11,  6114,   783,   3,   7, UNI_OSMA }   /* sc=osmanya */,
-  {     0,  6114,  1982,   3,   6, UNI_SC__SYRC }   /* sc=syriac */,
-  {     1,   343,     0,   2,   0, UNI_XPOSIXCNTRL }   /* cc */,
-  {     0,    34,  8077,   1,  33, UNI_IDEOGRAPHICSYMBOLS }   /* isideographicsymbolsandpunctuation */,
-  {     0,  7208,    58,   9,   2, UNI_SC }   /* category=sc */,
-  {    12,   343,  7171,   3,   3, UNI_CCC__12 }   /* ccc=12 */,
-  {     1,   343,  2702,   4,   4, UNI_CCC__6 }   /* ccc=hanr */,
-  {     3,  3474,   818,   6,   7, UNI_SC__SHRD }   /* block=sharada */,
-  {     2,  8276,  6856,  31,  11, UNI_INSC__CONSONANTPLACEHOLDER }   /* indicsyllabiccategory=consonantplaceholder */,
-  {     0,  1796,    86,   7,   4, UNI_SC__GONG }   /* script=gong */,
-  {     0,  3164,   588,  14,   2, UNI_GREXT }   /* graphemeextend=t */,
-  {     3,  3058,   601,   7,   4, -UNI_XPOSIXXDIGIT }   /* hexdigit=no */,
-  {     0,   296,  2119,   3,   9, UNI_NV__3_SLASH_20 }   /* nv=1.500e-01 */,
-  {     2,   464,  5825,   2,  19, UNI_SUNDANESESUP }   /* issundanesesupplement */,
-  {     0,  1879,  4021,   4,  17, UNI_INDICSIYAQNUMBERS }   /* blk=indicsiyaqnumbers */,
-  {     1,  6944,   647,  23,   2, UNI_CCC__L }   /* canonicalcombiningclass=l */,
-  {     0,   555,  2649,   4,   3, UNI_AGE__6_DOT_1 }   /* age=6.1 */,
-  {     0,  2443,   588,   5,   5, UNI_CASED }   /* cased=true */,
-  {     1,  2363,  6142,   8,  12, UNI_ETHIOPICSUP }   /* inethiopicsupplement */,
-  {     1,  1879,  6284,   4,  19, UNI_JAMOEXTB }   /* blk=hanguljamoextendedb */,
-  {     4,  6944,  1303,  25,   2, UNI_CCC__AR }   /* canonicalcombiningclass=232 */,
-  {     6,  1383,   601,   6,   4, -UNI_IDS }   /* idstart=no */,
-  {     0,  4433,  1491,   9,   4, UNI_LATINEXTA }   /* blk=latinexta */,
-  {     1,  6749,   602,  25,   2, -UNI_CWKCF }   /* changeswhennfkccasefolded=n */,
-  {     1,  1102,  1371,   4,   6, UNI_THAA }   /* scx=thaana */,
-  {     9,  1796,   868,   7,   4, UNI_SC__TIRH }   /* script=tirh */,
-  {     0,  3779,  2080,  14,   8, UNI_NV__15_SLASH_2 }   /* numericvalue=7.500e+00 */,
-  {     0,  2678,    56,   3,   2, UNI_BC__AN }   /* bc=an */,
-  {     7,  6011,  6142,  12,   5, UNI_ETHIOPICSUP }   /* block=ethiopicsup */,
-  {     1,   612,  5606,   2,   3, UNI_LB__ID }   /* lb=id */,
-  {     1,  7688,  4677,  23,   5, UNI_JG__MANICHAEANGIMEL }   /* joininggroup=manichaeangimel */,
-  {     0,   991,     0,   4,   0, UNI_HATR }   /* hatr */,
-  {     0,  7823,  3571,   5,   6, UNI_CJKCOMPAT }   /* incjkcompat */,
-  {     0,  7740,     0,  11,   0, UNI_IDEO }   /* ideographic */,
-  {     2,  1236,  3671,   5,  10, UNI_INMALAYALAM }   /* block=malayalam */,
-  {     0,   916,   933,   4,   3, -UNI_EBASE }   /* ebase=f */,
-  {     4,   464,   776,   2,   7, UNI_OLCK }   /* isolchiki */,
-  {     1,  1766,   602,   5,   2, UNI_COMPEX }   /* nfcqc=n */,
-  {     2,   313,  1308,   2,   9, UNI_INOLDITALIC }   /* inolditalic */,
-  {     0,  1879,   967,   4,   8, UNI_INGUJARATI }   /* blk=gujarati */,
-  {     4,   313,   593,   2,   7, UNI_DSRT }   /* indeseret */,
-  {     1,  8007,  5183,  30,   4, UNI_CJKEXTE }   /* blk=cjkunifiedideographsextensione */,
-  {     4,  5544,   356,  21,   4, UNI_CWT }   /* changeswhentitlecased=yes */,
-  {     4,  6114,  1424,   3,  10, UNI_CHRS }   /* sc=chorasmian */,
-  {     1,     0,     0,   2,   0, UNI_CASEDLETTER }   /* l& */,
-  {     3,  1102,  6134,   4,   4, UNI_GLAG }   /* scx=glag */,
-  {     5,   756,   356,   6,   4, UNI_NFKCQC__Y }   /* nfkcqc=yes */,
-  {     1,   275,   647,   3,   3, UNI_LB__H2 }   /* gcb=lv */,
-  {     0,  8533,   837,  10,   3, UNI_SUPPUAA }   /* block=suppuaa */,
-  {     0,  4500,   355,   8,   2, UNI_upper_values_index }   /* uppercase= */,
-  {     2,   464,  4882,   2,  19, UNI_EGYP }   /* isegyptianhieroglyphs */,
-  {     8,   302,   356,   2,   4, UNI_RI }   /* ri=yes */,
-  {     0,  1975,  1345,   3,   3, UNI_PALM }   /* ispalm */,
-  {     1,  6379,  4166,  13,   4, UNI_JG__BETH }   /* joininggroup=beth */,
-  {     9,  4996,  4166,  13,   4, UNI_JG__MANICHAEANBETH }   /* jg=manichaeanbeth */,
-  {     1,  6114,  1280,   3,   9, UNI_NBAT }   /* sc=nabataean */,
-  {     3,  6114,  1051,   3,   8, UNI_SC__MAHJ }   /* sc=mahajani */,
-  {     0,  1377,  2447,   5,   7, UNI_WB__ML }   /* wb=midletter */,
-  {     5,  6114,   453,   3,   4, UNI_MIAO }   /* sc=plrd */,
-  {     7,  1704,  1491,   6,   4, UNI_ARABICEXTA }   /* arabicexta */,
-  {     6,  7880,  6177,   4,   8, UNI_CJKSYMBOLS }   /* iscjksymbols */,
-  {     4,  7208,  1413,   8,   3, UNI_XPOSIXCNTRL }   /* category=cc */,
-  {     0,    67,    69,   2,   2, UNI_CPMN }   /* cpmn */,
-  {     0,  4355,   540,  17,   4, UNI_TANG }   /* scriptextensions=tang */,
-  {     1,  6011,  7851,   7,  29, UNI_ENCLOSEDALPHANUMSUP }   /* block=enclosedalphanumericsupplement */,
-  {     0,    37,  5358,   1,  11, UNI_SMALLKANAEXT }   /* smallkanaext */,
-  {     3,  3450,  4007,   5,  14, UNI_CURRENCYSYMBOLS }   /* blk=currencysymbols */,
-  {     3,   464,  3152,   2,  12, UNI_NL }   /* isletternumber */,
-  {     1,  3474,  4827,   6,   5, UNI_INBAMUM }   /* block=bamum */,
-  {     1,  1289,     0,   9,   0, UNI_TALU }   /* newtailue */,
-  {     1,  8276,  3213,  22,  10, UNI_INSC__PUREKILLER }   /* indicsyllabiccategory=purekiller */,
-  {     2,  1687,  1950,   4,   8, UNI_SOGO }   /* isoldsogdian */,
-  {     0,  1796,  4582,   7,   8, UNI_SC__BOPO }   /* script=bopomofo */,
-  {     0,  3593,  4701,  10,  10, UNI_LATINEXTADDITIONAL }   /* inlatinextadditional */,
-  {     7,  4355,   248,  17,   4, UNI_ZZZZ }   /* scriptextensions=zzzz */,
-  {     0,   313,   661,   2,   5, UNI_INDOGRA }   /* indogra */,
-  {     0,  1796,  5825,   7,   9, UNI_SUND }   /* script=sundanese */,
-  {    24,    57,     0,   1,   0, UNI_N }   /* n */,
-  {     0,  8533,  5358,   7,  11, UNI_SMALLKANAEXT }   /* block=smallkanaext */,
-  {     1,   343,  3112,   4,  11, UNI_CCC__8 }   /* ccc=kanavoicing */,
-  {     6,  4355,  5340,  17,   4, UNI_DEVA }   /* scriptextensions=deva */,
-  {     0,  1702,    36,   3,   3, UNI_AVST }   /* isavst */,
-  {     1,   261,   602,   4,   3, -UNI_CWCM }   /* cwcm=no */,
-  {     1,  7208,  4081,   9,  11, UNI_P }   /* category=punctuation */,
-  {     0,  1879,  2812,   4,   7, UNI_MAHJONG }   /* blk=mahjong */,
-  {     4,  7018,     0,   8,   0, UNI_INARABIC }   /* inarabic */,
-  {     1,  1796,  5806,   7,   9, UNI_SC__MONG }   /* script=mongolian */,
-  {     8,  7431,   394,  27,   2, UNI_CCC__34 }   /* canonicalcombiningclass=ccc34 */,
-  {     0,     2,  3123,   1,  14, UNI_CONTROLPICTURES }   /* controlpictures */,
-  {     0,  3474,  2275,   6,   3, UNI_INIDC }   /* block=idc */,
-  {     5,   313,  1191,   2,   7, UNI_INBENGALI }   /* inbengali */,
-  {     8,  3622,  1646,   7,   4, UNI_LATINEXTD }   /* islatinextd */,
-  {     1,  7605,  3559,  19,  12, UNI_GCB__T }   /* hangulsyllabletype=trailingjamo */,
-  {     0,   313,  4750,   2,   8, UNI_DINGBATS }   /* indingbats */,
-  {     2,  2428,     0,  13,   0, UNI_IPAEXT }   /* ipaextensions */,
-  {     4,   464,  2712,   2,  14, UNI_ECOMP }   /* isemojicomponent */,
-  {     9,   296,  1299,   3,   2, UNI_NV__60 }   /* nv=60 */,
-  {     0,  7132,  6898,   7,  22, UNI_SUPERANDSUB }   /* blk=superscriptsandsubscripts */,
-  {     4,   600,  6065,   3,   4, UNI_DT__FONT }   /* dt=font */,
-  {     0,   464,   991,   2,   4, UNI_HATR }   /* ishatr */,
-  {     2,   464,  1495,   2,   4, UNI_JAVA }   /* isjava */,
-  {     3,  1205,  1211,   6,   3, UNI_QAAI }   /* inherited */,
-  {     1,   721,  3582,   3,  11, UNI_KANGXI }   /* kangxiradicals */,
-  {     1,  5586,  4435,  19,   3, UNI_GCB__L }   /* graphemeclusterbreak=l */,
-  {     1,   313,  4857,   2,   8, UNI_TAMILSUP }   /* intamilsup */,
-  {     1,  7403,     0,  28,   0, UNI_SUPPUAA }   /* supplementaryprivateuseareaa */,
-  {     0,  1191,     0,   7,   0, UNI_BENG }   /* bengali */,
-  {     0,  7584,  6065,  18,   4, UNI_DT__FONT }   /* decompositiontype=font */,
-  {     8,  3474,   854,   6,   7, UNI_INTAIVIET }   /* block=taiviet */,
-  {     1,  7828,   356,  16,   2, UNI_UIDEO }   /* unifiedideograph=y */,
-  {     3,   409,     0,   3,   0, UNI_DIA }   /* dia */,
-  {     6,  3474,  4740,   6,  18, UNI_ORNAMENTALDINGBATS }   /* block=ornamentaldingbats */,
-  {     2,  1796,   405,   7,   4, UNI_ARMN }   /* script=armn */,
-  {     3,  6112,  7364,  15,  13, UNI_INSC__CONSONANTPRECEDINGREPHA }   /* insc=consonantprecedingrepha */,
-  {     9,  1796,   132,   7,   4, UNI_MTEI }   /* script=mtei */,
-  {     0,  1442,  4370,   4,   2, UNI_epres_values_index }   /* epres= */,
-  {     1,  1102,   405,   4,   4, UNI_ARMN }   /* scx=armn */,
-  {     2,   154,  6878,   3,  15, UNI_GEOMETRICSHAPESEXT }   /* geometricshapesext */,
-  {     0,    34,   617,   1,   8, UNI_INELYMAIC }   /* inelymaic */,
-  {     1,  7317,   331,  10,   3, UNI_BC__FSI }   /* bidiclass=fsi */,
-  {     4,  6114,    43,   3,   4, UNI_BHKS }   /* sc=bhks */,
-  {     0,  2353,  7908,   3,  15, UNI_CUNEIFORMNUMBERS }   /* incuneiformnumbers */,
-  {     3,  4355,  1255,  17,   7, UNI_SOYO }   /* scriptextensions=soyombo */,
-  {     3,   464,   330,   2,   2, UNI_PF }   /* ispf */,
-  {     0,  4355,  1807,  17,   4, UNI_SORA }   /* scriptextensions=sora */,
-  {    10,   536,   287,   3,   2, UNI_SB__NU }   /* sb=nu */,
-  {     0,  3462,  7175,   5,  10, UNI_ENCLOSEDCJK }   /* blk=enclosedcjk */,
-  {    15,  2441,     0,   7,   0, UNI_CASED }   /* iscased */,
-  {     5,  1899,     0,   6,   0, UNI_S }   /* symbol */,
-  {    17,  1377,  3285,   3,  12, UNI_LB__HL }   /* wb=hebrewletter */,
-  {     8,  1796,  1495,   7,   4, UNI_SC__JAVA }   /* script=java */,
-  {     4,  2926,  7238,   3,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* insymbolsandpictographsexta */,
-  {     1,  6644,  1899,  15,   7, UNI_TRANSPORTANDMAP }   /* transportandmapsymbols */,
-  {     3,  3351,  2066,  13,   2, UNI_NV__50 }   /* numericvalue=50 */,
-  {     2,  1353,     0,   9,   0, UNI_PAUC }   /* paucinhau */,
-  {     4,  1879,  1033,   4,   8, UNI_JAMOEXTB }   /* blk=jamoextb */,
-  {     1,  6379,  2972,  12,   2, UNI_JG__E }   /* joininggroup=e */,
-  {     2,  6728,     0,  11,   0, UNI_MTEI }   /* meeteimayek */,
-  {     0,  5523,   934,  21,   2, -UNI_CWL }   /* changeswhenlowercased=f */,
-  {     5,  1383,   934,   4,   2, -UNI_IDST }   /* idst=f */,
-  {     2,   600,  1178,   4,   5, UNI_DT__NAR }   /* dt=narrow */,
-  {     0,  2948,  1771,  13,   6, UNI_NFCQC__M }   /* nfcquickcheck=maybe */,
-  {     0,  4291,    22,  10,   2, UNI_LB__BA }   /* linebreak=ba */,
-  {    13,  2253,  2127,  10,   2, UNI_IN__13 }   /* presentin=13 */,
-  {     0,  7431,   294,  28,   1, UNI_CCC__14 }   /* canonicalcombiningclass=ccc14 */,
-  {     0,  6402,  3151,  13,   3, UNI_SB__LE }   /* sentencebreak=le */,
-  {    11,  4291,  7529,   9,  27, UNI_LB__CJ }   /* linebreak=conditionaljapanesestarter */,
-  {     9,  1796,    55,   7,   4, UNI_CANS }   /* script=cans */,
-  {     0,  6944,   118,  24,   2, UNI_CCC__DA }   /* canonicalcombiningclass=da */,
-  {     5,  1879,  1887,   4,   4, UNI_UCAS }   /* blk=ucas */,
-  {     0,  1102,    67,   4,   4, UNI_CPMN }   /* scx=cpmn */,
-  {     0,  4355,   176,  17,   4, UNI_ROHG }   /* scriptextensions=rohg */,
-  {     8,   959,   934,   8,   2, -UNI_EXT }   /* extender=f */,
-  {     0,  1102,   465,   4,   4, UNI_SHRD }   /* scx=shrd */,
-  {     0,  7880,  6352,   5,  11, UNI_CJKRADICALSSUP }   /* iscjkradicalssup */,
-  {     3,  7018,   935,   9,   2, UNI_ARABICPFA }   /* inarabicpfa */,
-  {     0,  1589,     0,   3,   0, UNI_ALL }   /* all */,
-  {     7,  3669,  1193,  12,   3, UNI_JG__MALAYALAMNGA }   /* jg=malayalamnga */,
-  {     7,  2974,   347,  11,   2, UNI_IN__1_DOT_1 }   /* presentin=v11 */,
-  {     5,  2463,   356,  11,   2, UNI_JOINC }   /* joincontrol=y */,
-  {     8,  3058,   356,   8,   2, UNI_XPOSIXXDIGIT }   /* hexdigit=y */,
-  {     4,  4999,     0,   4,   0, UNI_MANI }   /* mani */,
-  {     8,  1470,     0,   8,   0, UNI_BUGI }   /* buginese */,
-  {     8,  4827,     0,  15,   0, UNI_BAMUMSUP }   /* bamumsupplement */,
-  {     0,   313,  3933,   2,   4, UNI_INMODI }   /* inmodi */,
-  {     2,    51,     0,   4,   0, UNI_CAKM }   /* cakm */,
-  {     0,  1377,  2728,   2,   6, UNI_WB__XX }   /* wb=other */,
-  {     1,   296,   294,   3,   2, UNI_NV__40 }   /* nv=40 */,
-  {     1,  1102,   776,   4,   7, UNI_OLCK }   /* scx=olchiki */,
-  {     1,  5136,  7556,   5,  28, UNI_MISCARROWS }   /* blk=miscellaneoussymbolsandarrows */,
-  {     7,  1879,  3608,   4,  14, UNI_PHONETICEXTSUP }   /* blk=phoneticextsup */,
-  {     0,  2726,   128,   3,   2, UNI_ME }   /* gc=me */,
-  {     5,  6439,     0,  23,   0, UNI_ZNAMENNYMUSIC }   /* znamennymusicalnotation */,
-  {     0,  4291,  7740,  10,  11, UNI_LB__ID }   /* linebreak=ideographic */,
-  {    12,  7431,  1073,  27,   2, UNI_CCC__12 }   /* canonicalcombiningclass=ccc12 */,
-  {     0,  1796,  1826,   7,  11, UNI_SC__SYLO }   /* script=sylotinagri */,
-  {     0,  3474,  8592,   6,  43, UNI_UCASEXTA }   /* block=unifiedcanadianaboriginalsyllabicsextendeda */,
-  {    21,  6185,  6199,  16,   8, UNI_NV__10000000000 }   /* numericvalue=10000000000 */,
-  {     8,  3474,  1033,   6,   4, UNI_JAMO }   /* block=jamo */,
-  {     0,  4291,  2012,  10,   2, UNI_LB__BK }   /* linebreak=bk */,
-  {     0,  1377,  1837,   3,   5, UNI_WB__EB }   /* wb=ebase */,
-  {     1,  2678,   538,   2,   2, UNI_BC__S }   /* bc=s */,
-  {     0,  1879,  2812,   4,  12, UNI_MAHJONG }   /* blk=mahjongtiles */,
-  {     3,  2926,  5358,   3,  17, UNI_SMALLKANAEXT }   /* insmallkanaextension */,
-  {     1,  3474,  4062,   6,   8, UNI_VEDICEXT }   /* block=vedicext */,
-  {     8,   876,     0,   4,   0, UNI_IDEO }   /* ideo */,
-  {     0,   464,  3498,   2,   7, UNI_CPRT }   /* iscypriot */,
-  {     1,  1102,  1927,   4,  12, UNI_GONG }   /* scx=gunjalagondi */,
-  {    14,  1879,   496,   4,   6, UNI_INKHOJKI }   /* blk=khojki */,
-  {     2,  5322,     0,   4,   0, UNI_CHER }   /* cher */,
-  {     1,  2746,  2581,   4,  10, UNI_HIGHSURROGATES }   /* highsurrogates */,
-  {     2,   644,  2344,   4,   9, UNI_GCB__V }   /* hst=voweljamo */,
-  {     1,   464,  2018,   2,  12, UNI_GONM }   /* ismasaramgondi */,
-  {     3,  7880,  1646,   5,   4, UNI_CJKEXTD }   /* iscjkextd */,
-  {     0,  1796,   880,   7,   7, UNI_ZZZZ }   /* script=unknown */,
-  {     0,  5865,   356,  21,   2, UNI_LOE }   /* logicalorderexception=y */,
-  {     2,   464,  2581,   2,   9, UNI__PERL_SURROGATE }   /* issurrogate */,
-  {     0,   832,   934,   5,   2, -UNI_STERM }   /* sterm=f */,
-  {     0,  3474,  2771,   6,  12, UNI_KHMERSYMBOLS }   /* block=khmersymbols */,
-  {    10,  3351,   292,  13,   2, UNI_NV__30 }   /* numericvalue=30 */,
-  {     2,  2193,  2080,   4,   8, UNI_NV__13_SLASH_2 }   /* nv=6.500e+00 */,
-  {     2,  7201,  4500,  16,  15, UNI_UPPERCASELETTER }   /* generalcategory=uppercaseletter */,
-  {     4,   612,  6492,   2,   3, UNI_LB__AL }   /* lb=al */,
-  {     1,  4092,   356,   9,   2, UNI_DIA }   /* diacritic=y */,
-  {    20,  1102,     0,   4,   0, UNI_scx_values_index }   /* scx= */,
-  {     0,  5502,   602,  21,   3, -UNI_CWCM }   /* changeswhencasemapped=no */,
-  {    11,  6114,   337,   3,   6, UNI_CARI }   /* sc=carian */,
-  {    22,  3474,  6728,   6,  11, UNI_INMEETEIMAYEK }   /* block=meeteimayek */,
-  {     7,   464,  1371,   2,   6, UNI_THAA }   /* isthaana */,
-  {     3,  7201,  6276,  16,   6, UNI_CF }   /* generalcategory=format */,
-  {     2,  7431,   348,  27,   2, UNI_CCC__18 }   /* canonicalcombiningclass=ccc18 */,
-  {     5,  2033,     0,   5,   0, UNI_XPOSIXALPHA }   /* alpha */,
-  { 41851,   540,   184,   4,   2, UNI_TNSA }   /* tangsa */,
-  {     0,  6944,  1300,  25,   2, UNI_WB__EB }   /* canonicalcombiningclass=200 */,
-  {     3,  4355,   967,  17,   8, UNI_GUJR }   /* scriptextensions=gujarati */,
-  {     0,  4291,  2014,  10,   2, UNI_LB__H3 }   /* linebreak=h3 */,
-  {     0,  7338,   844,  11,   2, UNI_BC__RLO }   /* bidiclass=rlo */,
-  {     0,   464,  2274,   2,  11, UNI_XIDC }   /* isxidcontinue */,
-  {     8,   464,   940,   2,   2, UNI_CO }   /* isco */,
-  {     4,  7317,   424,  10,   3, UNI_BC__RLI }   /* bidiclass=rli */,
-  {    41,   536,  1592,   3,   2, UNI_SB__FO }   /* sb=fo */,
-  {     0,  1796,   661,   7,   4, UNI_SC__DOGR }   /* script=dogr */,
-  {     0,   823,   588,   4,   5, UNI_DASH }   /* dash=true */,
-  {     0,  1879,  1826,   4,  11, UNI_INSYLOTINAGRI }   /* blk=sylotinagri */,
-  {     0,  7880,  1037,   5,   4, UNI_CJKEXTB }   /* iscjkextb */,
-  {     0,   464,   656,   2,   5, UNI_BUHD }   /* isbuhid */,
-  {    17,  1102,   666,   4,   4, UNI_LIMB }   /* scx=limb */,
-  {     4,  4355,   802,  17,   4, UNI_NBAT }   /* scriptextensions=nbat */,
-  {     9,  1879,  5949,   4,  21, UNI_YIJING }   /* blk=yijinghexagramsymbols */,
-  {     0,  4355,  1027,  17,   4, UNI_YEZI }   /* scriptextensions=yezi */,
-  {     4,   343,  1650,   4,   2, UNI_CCC__1 }   /* ccc=ov */,
-  {     0,     5,   588,   3,   5, UNI_EXT }   /* ext=true */,
-  {     7,   464,  2463,   2,  11, UNI_JOINC }   /* isjoincontrol */,
-  {     0,  2974,  1299,  11,   2, UNI_IN__6 }   /* presentin=v60 */,
-  {     3,  3351,  3365,  13,   2, UNI_NV__36 }   /* numericvalue=36 */,
-  {     0,  1796,   224,   7,   4, UNI_WCHO }   /* script=wcho */,
-  {     0,  4355,  1470,  17,   8, UNI_BUGI }   /* scriptextensions=buginese */,
-  {     3,   917,     0,   4,   0, UNI_BASS }   /* bass */,
-  {     0,    58,  3465,   2,   5, UNI_ETHI }   /* sc=ethi */,
-  {     5,   464,  4901,   2,  13, UNI_EMOD }   /* isemojimodifier */,
-  {     1,   374,   169,   2,   2, UNI_THAA }   /* thaa */,
-  {     2,  1879,  4842,   4,  15, UNI_DIACRITICALSSUP }   /* blk=diacriticalssup */,
-  {     3,  5586,   588,  20,   2, UNI_GCB__T }   /* graphemeclusterbreak=t */,
-  {    10,  1879,  3582,   7,   3, UNI_KANGXI }   /* blk=kangxi */,
-  {     0,   464,  1657,   2,  11, UNI_CPMN }   /* iscyprominoan */,
-  {     1,  3593,  3704,   3,  15, UNI_LINEARBIDEOGRAMS }   /* inlinearbideograms */,
-  {     1,  2181,  1300,   4,   3, UNI_NV__5000 }   /* nv=5000 */,
-  {    16,  7828,   588,  16,   5, UNI_UIDEO }   /* unifiedideograph=true */,
-  {     1,  1465,  5100,   5,   4, UNI_XPOSIXSPACE }   /* spaceperl */,
-  {    37,   939,   356,   5,   2, UNI_ECOMP }   /* ecomp=y */,
-  {     5,   464,  1133,   2,   8, UNI_VITH }   /* isvithkuqi */,
-  {     5,   464,   749,   2,   4, UNI_MARC }   /* ismarc */,
-  {     0,  2253,   584,   9,   2, UNI_IN__2 }   /* presentin=2 */,
-  {     0,  6114,  1951,   3,   4, UNI_SC__SOGD }   /* sc=sogd */,
-  {    10,  6549,     0,   4,   0, UNI_CE }   /* isce */,
-  {     0,  8276,  6116,  21,  18, UNI_INSC__CONSONANTPREFIXED }   /* indicsyllabiccategory=consonantprefixed */,
-  {     0,   464,  1529,   2,   4, UNI_KHAR }   /* iskhar */,
-  {     0,  2355,  6142,   6,  12, UNI_CYRILLICSUP }   /* cyrillicsupplement */,
-  {     0,  2726,  1899,   3,   6, UNI_S }   /* gc=symbol */,
-  {     0,  1441,   934,  10,   6, -UNI_DEP }   /* deprecated=false */,
-  {    22,   832,   602,   5,   3, -UNI_STERM }   /* sterm=no */,
-  {    17,     5,   934,   3,   2, -UNI_EXT }   /* ext=f */,
-  { 56593,  3474,  1353,   6,   9, UNI_INPAUCINHAU }   /* block=paucinhau */,
-  {     9,   409,   934,   3,   6, -UNI_DIA }   /* dia=false */,
-  {     0,    34,  7986,   1,   5, UNI_MATH }   /* ismath */,
-  {     0,  1879,  6644,   4,  15, UNI_TRANSPORTANDMAP }   /* blk=transportandmap */,
-  {     6,  2726,  6466,   3,  10, UNI_CO }   /* gc=privateuse */,
-  {     9,   216,     0,   4,   0, UNI_TIBT }   /* tibt */,
-  {     9,  4433,  4629,   8,   5, UNI_LATIN1 }   /* blk=latin1sup */,
-  {     4,  1003,     0,   6,   0, UNI_LEPC }   /* lepcha */,
-  {     2,  1102,   120,   4,   4, UNI_LAO }   /* scx=laoo */,
-  {    16,  8244,  1434,   9,   7, UNI_CJKSTROKES }   /* block=cjkstrokes */,
-  {     1,  1879,  1845,   4,  11, UNI_YISYLLABLES }   /* blk=yisyllables */,
-  {     4,  5544,     0,  21,   0, UNI_CWT }   /* changeswhentitlecased */,
-  {     0,   464,  1198,   2,   7, UNI_GRAN }   /* isgrantha */,
-  {     1,  7880,  5366,  22,  10, UNI_CJKEXTD }   /* iscjkunifiedideographsextensiond */,
-  {     8,   464,  1464,   2,   2, UNI_ZS }   /* iszs */,
-  {     5,  3474,  4793,   6,   4, UNI_RUMI }   /* block=rumi */,
-  {     1,  2726,  6629,   3,  14, UNI_LM }   /* gc=modifierletter */,
-  {     3,  1597,   588,  10,   5, UNI_SD }   /* softdotted=true */,
-  {     0,  1465,  5620,   4,   3, -UNI_XPOSIXSPACE }   /* space=n */,
-  {     2,  3000,   934,  13,   6, -UNI_QMARK }   /* quotationmark=false */,
-  {    16,  8078,     0,  18,   0, UNI_IDEOGRAPHICSYMBOLS }   /* ideographicsymbols */,
-  {    11,  3053,   601,  12,   3, -UNI_POSIXXDIGIT }   /* asciihexdigit=n */,
-  {     1,  1214,  4442,   6,   9, UNI_KANAEXTB }   /* inkanaextendedb */,
-  {     0,  4355,    67,  17,   4, UNI_CPMN }   /* scriptextensions=cpmn */,
-  {     0,  2253,  2155,   9,   2, UNI_IN__4 }   /* presentin=4 */,
-  {     5,   296,   771,   3,   2, UNI_NV__21 }   /* nv=21 */,
-  {     1,   464,   343,   2,   2, UNI_XPOSIXCNTRL }   /* iscc */,
-  {     0,  3351,  2617,  14,   8, UNI_NV__1_SLASH_5 }   /* numericvalue=2.000e-01 */,
-  {     0,   895,   399,   5,   2, UNI_AGE__6_DOT_1 }   /* age=v61 */,
-  {     0,  6379,  6154,  13,  19, UNI_JG__BURUSHASKIYEHBARREE }   /* joininggroup=burushaskiyehbarree */,
-  {     0,   464,    19,   2,   4, UNI_AGHB }   /* isaghb */,
-  {     8,     2,  5620,   1,   3, -UNI_CE }   /* ce=n */,
-  {     1,  7688,  4170,  23,   4, UNI_JG__MANICHAEANFIVE }   /* joininggroup=manichaeanfive */,
-  {     0,  2974,  3792,  11,   2, UNI_IN__7 }   /* presentin=v70 */,
-  {     0,  1086,     0,   4,   0, UNI_KTHI }   /* kthi */,
-  {     0,  2974,   294,  11,   2, UNI_IN__4 }   /* presentin=v40 */,
-  {    11,    24,     0,   3,   0, UNI_XPOSIXXDIGIT }   /* hex */,
-  {     6,  2465,  6529,   4,  20, UNI_INDICNUMBERFORMS }   /* incommonindicnumberforms */,
-  {     2,   313,  5322,   2,  11, UNI_CHEROKEESUP }   /* incherokeesup */,
-  {     0,  4062,     0,   8,   0, UNI_VEDICEXT }   /* vedicext */,
-  {     1,    24,   934,   3,   2, -UNI_XPOSIXXDIGIT }   /* hex=f */,
-  {     1,    34,  1116,   1,   9, UNI_TAGB }   /* istagbanwa */,
-  {     0,  3474,  5907,   6,  21, UNI_SINHALAARCHAICNUMBERS }   /* block=sinhalaarchaicnumbers */,
-  {     0,  3090,  6878,   7,  15, UNI_GEOMETRICSHAPESEXT }   /* blk=geometricshapesext */,
-  {     7,   464,  1845,   2,  11, UNI_YISYLLABLES }   /* isyisyllables */,
-  {     0,  5631,  2737,   5,   9, UNI_INGREEK }   /* greekandcoptic */,
-  {     0,  4450,  5643,   7,  10, UNI_COUNTINGROD }   /* block=countingrod */,
-  {    31,  4901,   933,  16,   3, -UNI_EBASE }   /* emojimodifierbase=f */,
-  {     2,  1102,  6103,   4,   9, UNI_XSUX }   /* scx=cuneiform */,
-  {     0,  1383,   356,   3,   4, UNI_IDS }   /* ids=yes */,
-  {     0,  4355,    43,  17,   4, UNI_BHKS }   /* scriptextensions=bhks */,
-  {     2,  3351,  2195,  12,  10, UNI_NV__1_SLASH_16 }   /* numericvalue=6.250e-02 */,
-  {     2,  4355,    59,  17,   4, UNI_CHAM }   /* scriptextensions=cham */,
-  {     6,  1796,   611,   7,   7, UNI_ELBA }   /* script=elbasan */,
-  {     1,  3622,   503,   3,   5, UNI_LYDI }   /* islydian */,
-  {     2,  1766,   356,   5,   4, UNI_NFCQC__Y }   /* nfcqc=yes */,
-  {     8,  1410,   891,   7,   2, UNI_CCC__10 }   /* ccc=ccc10 */,
-  {     0,   296,  4334,   2,   4, UNI_NV__3_SLASH_2 }   /* nv=3/2 */,
-  {     0,  1879,  1807,   4,  11, UNI_INSORASOMPENG }   /* blk=sorasompeng */,
-  {     2,  1796,  3093,   6,   5, UNI_SC__GEOR }   /* script=geor */,
-  {     0,  2274,   356,   4,   2, UNI_XIDC }   /* xidc=y */,
-  {     8,   441,     0,   4,   0, UNI_OLCK }   /* olck */,
-  {     8,   343,  1303,   4,   2, UNI_CCC__32 }   /* ccc=32 */,
-  {     2,    34,  1855,   1,   6, UNI_BIDIC }   /* isbidic */,
-  {     0,  6112,  4934,   5,  14, UNI_INSC__GEMINATIONMARK }   /* insc=geminationmark */,
-  {     0,  6114,  4418,   3,   6, UNI_SC__ZYYY }   /* sc=common */,
-  {     6,  2890,  2868,   3,  11, UNI_JT__C }   /* jt=joincausing */,
-  {     8,  6774,   601,  24,   3, -UNI_DI }   /* defaultignorablecodepoint=n */,
-  {     0,  1382,   602,   4,   2, -UNI_XIDS }   /* xids=n */,
-  {     2,   940,   356,   6,   2, UNI_COMPEX }   /* compex=y */,
-  {    17,  6379,  6164,  13,   9, UNI_JG__YEHBARREE }   /* joininggroup=yehbarree */,
-  {     2,  4857,  3641,   5,  10, UNI_TAMILSUP }   /* tamilsupplement */,
-  {     0,  2253,  6214,  10,   3, UNI_IN__2_DOT_1 }   /* presentin=2.1 */,
-  {     2,  1879,  2229,   4,  12, UNI_PHAISTOS }   /* blk=phaistosdisc */,
-  {     1,  3474,  5846,   6,  19, UNI_SUPARROWSC }   /* block=supplementalarrowsc */,
-  {     1,   464,   240,   2,   4, UNI_ZANB }   /* iszanb */,
-  {    20,  3474,  1202,   6,   4, UNI_INTHAI }   /* block=thai */,
-  {     1,  2394,  1491,   7,   4, UNI_MYANMAREXTA }   /* myanmarexta */,
-  {     5,  1597,     0,  10,   0, UNI_SD }   /* softdotted */,
-  {     1,   464,  1826,   2,   4, UNI_SYLO }   /* issylo */,
-  {     2,  6803,   356,  20,   4, UNI_CE }   /* compositionexclusion=yes */,
-  {     0,  2483,  3060,   8,   6, UNI_XPOSIXXDIGIT }   /* isxposixxdigit */,
-  {    33,   600,  1168,   3,   6, UNI_DT__MED }   /* dt=medial */,
-  {     2,   208,     0,   4,   0, UNI_TFNG }   /* tfng */,
-  {    14,  7201,  4122,  16,  15, UNI_LOWERCASELETTER }   /* generalcategory=lowercaseletter */,
-  {     0,  3608,     0,  14,   0, UNI_PHONETICEXTSUP }   /* phoneticextsup */,
-  {     0,  2973,   934,   5,   6, -UNI_EPRES }   /* epres=false */,
-  {     0,  2474,  2591,   3,  12, UNI_MAYANNUMERALS }   /* ismayannumerals */,
-  {     0,   939,     0,   5,   0, UNI_ECOMP }   /* ecomp */,
-  {     0,  6944,  2002,  23,   3, UNI_CCC__BR }   /* canonicalcombiningclass=br */,
-  {     3,   409,   934,   3,   2, -UNI_DIA }   /* dia=f */,
-  {     8,  2981,   399,   4,   2, UNI_IN__6_DOT_1 }   /* in=v61 */,
-  {     1,   513,  3777,   4,   2, UNI_NV__3_SLASH_8 }   /* nv=3/8 */,
-  {     0,  5136,  8307,   5,  33, UNI_MISCPICTOGRAPHS }   /* blk=miscellaneoussymbolsandpictographs */,
-  {     4,  5888,   356,   5,   2, UNI__PERL_NCHAR }   /* nchar=y */,
-  {     2,  5523,   588,  21,   5, UNI_CWL }   /* changeswhenlowercased=true */,
-  {     0,  6379,  2526,  13,   3, UNI_JG__HEH }   /* joininggroup=heh */,
-  {     2,  7132,  5762,   7,   7, UNI_SUPARROWSB }   /* blk=suparrowsb */,
-  {     2,  1102,  1571,   4,   4, UNI_SAUR }   /* scx=saur */,
-  {     6,  4662,  5080,  12,   7, UNI_SUPARROWSA }   /* supplementalarrowsa */,
-  {    21,   275,   163,   4,   2, UNI_GCB__PP }   /* gcb=pp */,
-  {     1,  2275,   602,   3,   3, -UNI_IDC }   /* idc=no */,
-  {     1,  1879,  1241,   4,   7, UNI_INPHAGSPA }   /* blk=phagspa */,
-  {     2,    34,  5321,   1,   9, UNI_CHER }   /* ischerokee */,
-  {     0,  2260,   549,   3,   3, UNI_IN__3 }   /* in=3.0 */,
-  {     1,  3474,  6644,   6,  22, UNI_TRANSPORTANDMAP }   /* block=transportandmapsymbols */,
-  {     6,  3474,     9,   6,   3, UNI_OCR }   /* block=ocr */,
-  {     0,   464,  2274,   2,   4, UNI_XIDC }   /* isxidc */,
-  {     1,  2890,     0,   3,   0, UNI_jt_values_index }   /* jt= */,
-  {     0,  7208,  2290,   9,   6, UNI_N }   /* category=number */,
-  {     0,  1059,   602,   6,   3, UNI_NFKDQC__N }   /* nfkdqc=no */,
-  {     4,   895,  3807,   5,   2, UNI_AGE__8 }   /* age=v80 */,
-  {     3,  1011,   602,   2,   3, -UNI_CI }   /* ci=no */,
-  {     1,   555,  2056,   5,   2, UNI_AGE__5_DOT_1 }   /* age=5.1 */,
-  {    12,  1377,   287,   3,   2, UNI_WB__NU }   /* wb=nu */,
-  {    10,   313,  1335,   2,   9, UNI_INOLDUYGHUR }   /* inolduyghur */,
-  {     5,  1796,   192,   7,   4, UNI_SHAW }   /* script=shaw */,
-  {     0,   296,  1304,   3,   4, UNI_NV__2000 }   /* nv=2000 */,
-  {    21,  4302,     0,   6,   0, UNI_XPOSIXSPACE }   /* wspace */,
-  {     8,  7584,   140,  18,   3, UNI_DT__NAR }   /* decompositiontype=nar */,
-  {     5,  4433,  6890,   9,   9, UNI_LATINEXTE }   /* blk=latinextendede */,
-  {     0,  3474,  6069,   6,  22, UNI_DIACRITICALSFORSYMBOLS }   /* block=diacriticalsforsymbols */,
-  {     5,  1102,  4020,   4,   4, UNI_SIND }   /* scx=sind */,
-  {     4,  1597,   356,  10,   2, UNI_SD }   /* softdotted=y */,
-  {     0,  4355,  5907,  17,   7, UNI_SINH }   /* scriptextensions=sinhala */,
-  {     2,  1065,   294,   5,   1, UNI_NV__1_SLASH_4 }   /* nv=1/4 */,
-  {     0,  3164,   602,  14,   3, -UNI_GREXT }   /* graphemeextend=no */,
-  {     0,  3593,     5,   7,   4, UNI_LATINEXTG }   /* inlatinextg */,
-  {     4,   464,  6538,   2,  11, UNI_NUMBERFORMS }   /* isnumberforms */,
-  {     0,  1410,   292,   7,   2, UNI_CCC__30 }   /* ccc=ccc30 */,
-  {     0,   464,  1383,   2,   7, UNI_IDS }   /* isidstart */,
-  {     0,  3351,  1299,  13,   3, UNI_NV__600 }   /* numericvalue=600 */,
-  {     1,  4291,     0,  17,   0, UNI_LB__ZW }   /* linebreak=zwspace */,
-  {     9,  5565,     0,  21,   0, UNI_CWU }   /* changeswhenuppercased */,
-  {     0,  6114,    59,   3,   4, UNI_CHAM }   /* sc=cham */,
-  {     2,  1102,  1424,   4,  10, UNI_CHRS }   /* scx=chorasmian */,
-  {     0,  1796,  1549,   5,  12, UNI_XPEO }   /* script=oldpersian */,
-  {     1,   464,   265,   2,   5, UNI_CWKCF }   /* iscwkcf */,
-  {     1,  1879,  4062,   4,  15, UNI_VEDICEXT }   /* blk=vedicextensions */,
-  {     1,  1879,  5825,   4,   9, UNI_INSUNDANESE }   /* blk=sundanese */,
-  {     0,     2,  3869,   1,  16, UNI_UCAS }   /* canadiansyllabics */,
-  {    74,  4355,   200,  17,   4, UNI_TAML }   /* scriptextensions=taml */,
-  {    16,  1377,   959,   3,   6, UNI_WB__EXTEND }   /* wb=extend */,
-  {    13,    34,   996,   1,   7, UNI_INKAITHI }   /* inkaithi */,
-  {     7,  6112,  7627,  14,  16, UNI_INSC__CONSONANTINITIALPOSTFIXED }   /* insc=consonantinitialpostfixed */,
-  {     1,  1879,  6842,   4,  14, UNI_MUSIC }   /* blk=musicalsymbols */,
-  {     1,  1582,     0,   6,   0, UNI_L }   /* letter */,
-  {     2,  6114,  8599,   3,  18, UNI_CANS }   /* sc=canadianaboriginal */,
-  {     1,  6114,  1451,   3,  10, UNI_DIAK }   /* sc=divesakuru */,
-  {     1,   464,    86,   2,   4, UNI_GONG }   /* isgong */,
-  {     4,  2496,  3254,   3,   7, UNI_JG__SEMKATH }   /* jg=semkath */,
-  {     0,   464,    69,   2,   2, UNI_MN }   /* ismn */,
-  {     0,  6114,  1317,   3,   9, UNI_SC__PERM }   /* sc=oldpermic */,
-  {     8,  2981,  3807,   4,   2, UNI_IN__8 }   /* in=v80 */,
-  {    25,  7584,   369,  18,   3, UNI_DT__SQR }   /* decompositiontype=sqr */,
-  {     1,  1796,  1052,   8,   7, UNI_SC__MAHJ }   /* script=mahajani */,
-  {     6,  2645,  2056,   4,   2, UNI_IN__5_DOT_1 }   /* in=5.1 */,
-  {     0,  2638,   390,  11,   2, UNI_IN__5_DOT_2 }   /* presentin=5.2 */,
-  {     3,   313,  3309,   2,  15, UNI_INMEROITICCURSIVE }   /* inmeroiticcursive */,
-  {     4,  4433,  4590,   9,   9, UNI_LATINEXTC }   /* blk=latinextendedc */,
-  {     0,  1879,     0,   4,   0, UNI_blk_values_index }   /* blk= */,
-  {     9,   600,  4533,   3,   4, UNI_DT__INIT }   /* dt=init */,
-  {     0,   343,  1878,   4,   2, UNI_CCC__DB }   /* ccc=db */,
-  {     0,   419,  1236,   2,   5, UNI_NB }   /* noblock */,
-  {     6,   895,   292,   5,   2, UNI_AGE__3 }   /* age=v30 */,
-  {     0,  2260,  2172,   3,   3, UNI_IN__2 }   /* in=2.0 */,
-  {    10,   313,   242,   2,   2, UNI_NB }   /* innb */,
-  {     0,  3809,  1781,  14,   4, UNI_NV__90000 }   /* numericvalue=90000 */,
-  {     0,  1542,     0,   6,   0, UNI_ARROWS }   /* arrows */,
-  {     4,  6803,  8486,  17,   4, UNI_ce_values_index }   /* compositionexclusion= */,
-  {     3,  6114,  2401,   3,   4, UNI_SC__NAND }   /* sc=nand */,
-  {     5,  1796,  1241,   7,   7, UNI_SC__PHAG }   /* script=phagspa */,
-  {     4,   786,     0,   3,   0, UNI_ANY }   /* any */,
-  {    17,   343,  8572,   4,  13, UNI_CCC__214 }   /* ccc=attachedabove */,
-  {     1,  6570,  2679,   3,   7, UNI_INPC__RIGHT }   /* inpc=right */,
-  {    14,  5844,  5762,  14,   7, UNI_SUPARROWSB }   /* issupplementalarrowsb */,
-  {    17,  3839,     0,   6,   0, UNI_TANG }   /* tangut */,
-  {     1,   895,  1780,   5,   3, UNI_AGE__10 }   /* age=v100 */,
-  {     0,   464,  1614,   2,   4, UNI_WARA }   /* iswara */,
-  {     7,  6114,    27,   3,   4, UNI_AHOM }   /* sc=ahom */,
-  {     0,    36,   588,   2,   5, UNI_VS }   /* vs=true */,
-  {     4,  4776,   355,  16,   5, UNI__PERL_PATWS }   /* patternwhitespace=yes */,
-  {     1,  5661,     0,  19,   0, UNI_MERO }   /* meroitichieroglyphs */,
-  {     0,  6379,  3671,  12,  14, UNI_JG__MALAYALAMNNNA }   /* joininggroup=malayalamnnna */,
-  {     0,   313,  4793,   2,  18, UNI_RUMI }   /* inruminumeralsymbols */,
-  {     0,   313,  5340,   2,  13, UNI_DEVANAGARIEXT }   /* indevanagariext */,
-  {     0,  2153,  1303,   4,   5, UNI_NV__432000 }   /* nv=432000 */,
-  {     4,   464,  1571,   2,   4, UNI_SAUR }   /* issaur */,
-  {    14,   313,  5322,   2,  18, UNI_CHEROKEESUP }   /* incherokeesupplement */,
-  {     0,  6114,   124,   3,   4, UNI_SC__LATN }   /* sc=latn */,
-  {     0,  2260,   294,   4,   1, UNI_IN__14 }   /* in=14 */,
-  {     8,  2726,  4758,   3,  18, UNI_ZP }   /* gc=paragraphseparator */,
-  {     0,   296,  2615,   3,  10, UNI_NV___MINUS_1_SLASH_2 }   /* nv=-5.000e-01 */,
-  {     0,  1441,   602,   3,   2, -UNI_DEP }   /* dep=n */,
-  {    10,  6114,  1826,   3,  11, UNI_SC__SYLO }   /* sc=sylotinagri */,
-  {     8,   756,   602,   6,   3, UNI_NFKCQC__N }   /* nfkcqc=no */,
-  {     8,   925,  1413,   3,   2, UNI_BPT__C }   /* bpt=c */,
-  {     0,   464,   413,   2,   4, UNI_GONM }   /* isgonm */,
-  {    16,  4355,  5284,  17,  20, UNI_PHLI }   /* scriptextensions=inscriptionalpahlavi */,
-  {     0,  3474,  3608,   6,  11, UNI_PHONETICEXT }   /* block=phoneticext */,
-  {     0,  7208,   110,   9,   1, UNI_Z }   /* category=z */,
-  {     2,  2974,   771,  11,   2, UNI_IN__2_DOT_1 }   /* presentin=v21 */,
-  {     1,   464,  5907,   2,  21, UNI_SINHALAARCHAICNUMBERS }   /* issinhalaarchaicnumbers */,
-  {     0,  1879,  4962,   4,  14, UNI_INHANIFIROHINGYA }   /* blk=hanifirohingya */,
-  {     3,  4500,   602,   5,   3, -UNI_XPOSIXUPPER }   /* upper=no */,
-  {     1,  2726,   252,   3,   2, UNI_CN }   /* gc=cn */,
-  {     3,  4355,  6030,  16,   9, UNI_GEOR }   /* scriptextensions=georgian */,
-  {     3,  1879,  4857,   4,   5, UNI_INTAMIL }   /* blk=tamil */,
-  {     1,  3839,     0,  16,   0, UNI_TANGUTCOMPONENTS }   /* tangutcomponents */,
-  {     3,  3474,  2285,   7,  12, UNI_AEGEANNUMBERS }   /* block=aegeannumbers */,
-  {     0,  2981,  1780,   4,   3, UNI_IN__10 }   /* in=v100 */,
-  {     0,   296,  1070,   3,   2, UNI_NV__31 }   /* nv=31 */,
-  {     9,  2792,  4442,  10,   9, UNI_CYRILLICEXTB }   /* iscyrillicextendedb */,
-  {    33,  1796,   457,   7,   4, UNI_PRTI }   /* script=prti */,
-  {     3,  4901,   588,  13,   5, UNI_EMOD }   /* emojimodifier=true */,
-  {     8,  1803,     0,   4,   0, UNI_MLYM }   /* mlym */,
-  {     4,   464,   184,   2,   4, UNI_SAMR }   /* issamr */,
-  {    12,  2443,   934,   5,   6, -UNI_CASED }   /* cased=false */,
-  {     6,  4355,  1451,  17,  10, UNI_DIAK }   /* scriptextensions=divesakuru */,
-  {     1,  7208,  3651,   9,  14, UNI_MN }   /* category=nonspacingmark */,
-  {     4,  7208,  2774,  12,   8, UNI_SO }   /* category=othersymbol */,
-  {     1,  3474,  5214,   6,   9, UNI_HALFMARKS }   /* block=halfmarks */,
-  {     0,  1220,     0,   4,   0, UNI_MAKA }   /* maka */,
-  {     1,  1796,   618,   7,   4, UNI_ELYM }   /* script=elym */,
-  {     3,   464,   847,   2,   7, UNI_LANA }   /* istaitham */,
-  {     0,  3474,  1335,   6,   9, UNI_INOLDUYGHUR }   /* block=olduyghur */,
-  {     2,  2474,     0,   9,   0, UNI_MYMR }   /* ismyanmar */,
-  {     0,  3823,   934,  16,   6, -UNI_STERM }   /* sentenceterminal=false */,
-  {     4,  4355,  1198,  17,   4, UNI_GRAN }   /* scriptextensions=gran */,
-  {     4,  3223,     0,  13,   0, UNI_XPOSIXDIGIT }   /* decimalnumber */,
-  {    12,  1796,  1561,   7,  10, UNI_PHNX }   /* script=phoenician */,
-  {     4,    37,  4641,   1,   8, UNI_SYRIACSUP }   /* syriacsup */,
-  {     4,  1785,  1791,   6,   5, UNI_HMNG }   /* pahawhhmong */,
-  {     4,    34,  1370,   1,   7, UNI_INTHAANA }   /* inthaana */,
-  {     2,  1102,   686,   4,   5, UNI_TAKR }   /* scx=takri */,
-  {     0,  4355,  2771,  17,   5, UNI_KHMR }   /* scriptextensions=khmer */,
-  {     2,  2974,  1304,  12,   2, UNI_IN__12 }   /* presentin=v120 */,
-  {     0,  2310,   355,  12,   3, UNI_CI }   /* caseignorable=y */,
-  {     2,  1796,  3933,   7,   4, UNI_SC__MODI }   /* script=modi */,
-  {     5,  7527,  1465,   3,   5, UNI_LB__SP }   /* lb=space */,
-  {     1,  1796,   184,   7,   4, UNI_SAMR }   /* script=samr */,
-  {     0,  2443,   278,   5,   1, UNI_cased_values_index }   /* cased= */,
-  {    26,  3974,   934,  17,   6, -UNI_IDSB }   /* idsbinaryoperator=false */,
-  {     1,  1539,  8150,   3,  32, UNI_DIACRITICALSEXT }   /* iscombiningdiacriticalmarksextended */,
-  {     5,  4355,   413,  17,   4, UNI_GONM }   /* scriptextensions=gonm */,
-  {     0,  3748,   766,  14,   2, UNI_NV__1_SLASH_6 }   /* numericvalue=1/6 */,
-  {     1,   464,  6629,   2,  15, UNI_MODIFIERLETTERS }   /* ismodifierletters */,
-  {     4,   464,  1234,   2,   7, UNI_NB }   /* isnoblock */,
-  {     8,     5,   356,   3,   4, UNI_EXT }   /* ext=yes */,
-  {     0,  7182,  4464,   3,   4, UNI_CJKEXTC }   /* cjkextc */,
-  {     4,  1214,   328,   6,   3, UNI_KANASUP }   /* inkanasup */,
-  {     0,  2274,   602,  11,   3, -UNI_XIDC }   /* xidcontinue=no */,
-  {     0,   530,     0,   6,   0, UNI_RJNG }   /* rejang */,
-  {     1,   343,   298,   3,   2, UNI_CCC__9 }   /* ccc=9 */,
-  {     0,  6114,   144,   3,   4, UNI_NEWA }   /* sc=newa */,
-  {     1,   844,  5620,   2,   4, -UNI_LOE }   /* loe=no */,
-  {     2,   925,     0,   5,   0, UNI_BPT__O }   /* bpt=o */,
-  {     1,   464,  1015,   2,   4, UNI_TELU }   /* istelu */,
-  {     1,  6011,   623,  12,   5, UNI_ETHIOPICEXT }   /* block=ethiopicext */,
-  {     2,  3474,  5949,   6,  21, UNI_YIJING }   /* block=yijinghexagramsymbols */,
-  {     0,  6944,  1236,  24,   2, UNI_CCC__BL }   /* canonicalcombiningclass=bl */,
-  {     2,   536,  2961,   3,   7, UNI_SB__NU }   /* sb=numeric */,
-  {     0,   275,  1860,   4,   7, UNI_GCB__CN }   /* gcb=control */,
-  {     0,  7208,   602,   8,   2, UNI_N }   /* category=n */,
-  {     8,  7148,  2138,  25,   2, UNI_WB__EB }   /* canonicalcombiningclass=133 */,
-  {     0,   464,  4515,   2,  18, UNI_IDST }   /* isidstrinaryoperator */,
-  {     0,  2726,   273,   3,   2, UNI_ZP }   /* gc=zp */,
-  {     0,  7201,  4137,  16,  15, UNI_PS }   /* generalcategory=openpunctuation */,
-  {     2,  6114,   676,   3,   5, UNI_OSGE }   /* sc=osage */,
-  {     0,  2890,  2680,   2,   2, UNI_JT__R }   /* jt=r */,
-  {     0,  5888,   602,   5,   3, -UNI__PERL_NCHAR }   /* nchar=no */,
-  {    18,  5586,   252,  21,   2, UNI_GCB__CN }   /* graphemeclusterbreak=cn */,
-  {     2,  2981,  1304,   4,   2, UNI_IN__2 }   /* in=v20 */,
-  {     0,  4500,   588,   5,   5, UNI_XPOSIXUPPER }   /* upper=true */,
-  {     1,  3474,  5787,   6,  10, UNI_JAMO }   /* block=hanguljamo */,
-  {     1,  6944,  1418,  24,   6, UNI_CCC__9 }   /* canonicalcombiningclass=virama */,
-  {     0,   265,   356,   5,   4, UNI_CWKCF }   /* cwkcf=yes */,
-  {     1,  6944,   391,  25,   2, UNI_CCC__R }   /* canonicalcombiningclass=226 */,
-  {     0,   313,   651,   2,   5, UNI_INADLAM }   /* inadlam */,
-  {     3,  5502,   934,  21,   6, -UNI_CWCM }   /* changeswhencasemapped=false */,
-  {     0,  6114,  5284,   3,  20, UNI_PHLI }   /* sc=inscriptionalpahlavi */,
-  {     0,    12,   934,   3,   2, -UNI_PCM }   /* pcm=f */,
-  {    11,  8182,  6581,  24,  13, UNI_INPC__BOTTOMANDLEFT }   /* indicpositionalcategory=bottomandleft */,
-  {    17,  1796,  1571,   7,   4, UNI_SAUR }   /* script=saur */,
-  {    15,  3000,   317,   9,   4, UNI_QMARK }   /* quotationmark */,
-  {    20,  6944,  2688,  24,   4, UNI_CCC__L }   /* canonicalcombiningclass=left */,
-  {     1,  2802,  8047,   3,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* isegyptianhieroglyphformatcontrols */,
-  {     6,  1102,   951,   4,   8, UNI_DUPL }   /* scx=duployan */,
-  {     1,  5748,  8319,  14,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* insupplementalsymbolsandpictographs */,
-  {     1,  3474,  5397,   6,   3, UNI_PUA }   /* block=pua */,
-  {     5,  2792,  1491,  10,   4, UNI_CYRILLICEXTA }   /* iscyrillicexta */,
-  {     1,  1011,   588,   2,   5, UNI_CI }   /* ci=true */,
-  {     0,  1867,   588,  12,   5, UNI_BIDIM }   /* bidimirrored=true */,
-  {     3,  5565,   588,  21,   2, UNI_CWU }   /* changeswhenuppercased=t */,
-  {     0,  1796,   437,   7,   4, UNI_OGAM }   /* script=ogam */,
-  {     0,  6114,   671,   3,   5, UNI_OGAM }   /* sc=ogham */,
-  {     1,  1879,   287,   4,   5, UNI_INNUSHU }   /* blk=nushu */,
-  {     3,  4081,     0,  11,   0, UNI_P }   /* punctuation */,
-  {     4,   302,   588,   2,   5, UNI_RI }   /* ri=true */,
-  {     0,  2463,   934,   5,   2, -UNI_JOINC }   /* joinc=f */,
-  {     1,  6687,  1193,  22,   3, UNI_JG__MALAYALAMNGA }   /* joininggroup=malayalamnga */,
-  {     4,  6944,   394,  24,   2, UNI_CCC__34 }   /* canonicalcombiningclass=34 */,
-  {     0,  6239,     0,  23,   0, UNI_BC__LRE }   /* bc=lefttorightembedding */,
-  {     4,  2324,     0,   8,   0, UNI_ASSIGNED }   /* assigned */,
-  {     8,   313,  1785,   2,  11, UNI_INPAHAWHHMONG }   /* inpahawhhmong */,
-  {     0,  1102,   204,   4,   4, UNI_TAVT }   /* scx=tavt */,
-  {    22,   736,  7733,   3,  21, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* inenclosedideographicsup */,
-  {     4,  1102,   224,   4,   4, UNI_WCHO }   /* scx=wcho */,
-  {     0,  5990,  5617,  17,   6, UNI_BPT__N }   /* bidipairedbrackettype=n */,
-  {     2,    36,   934,   2,   6, -UNI_VS }   /* vs=false */,
-  {     0,  1879,   901,   4,   8, UNI_INARMENIAN }   /* blk=armenian */,
-  {     0,  1879,   540,   4,   6, UNI_INTANGSA }   /* blk=tangsa */,
-  {     0,  3351,  1300,  14,   2, UNI_NV__200 }   /* numericvalue=200 */,
-  {    15,  1233,  4741,   3,  17, UNI_ORNAMENTALDINGBATS }   /* inornamentaldingbats */,
-  {     0,  1102,  3285,   4,   4, UNI_HEBR }   /* scx=hebr */,
-  {     2,  3474,  5825,   6,  19, UNI_SUNDANESESUP }   /* block=sundanesesupplement */,
-  {     3,   313,  4437,   2,  14, UNI_LATINEXTB }   /* inlatinextendedb */,
-  {     1,   313,  4827,   2,  15, UNI_BAMUMSUP }   /* inbamumsupplement */,
+  {     0,   461,  4569,   2,   9, UNI_XPOSIXUPPER }   /* isuppercase */,
+  {     9,  1801,     0,  10,   0, UNI_NV__1000000 }   /* nv=1000000 */,
+  {     0,   461,   402,   2,   4, UNI_ARMN }   /* isarmn */,
+  {     0,  7944,  3998,  28,   4, UNI_CJKEXTG }   /* iscjkunifiedideographsextensiong */,
+  {     1,   302,   599,   5,   2, -UNI__PERL_PATWS }   /* patws=n */,
+  {     0,  4819,     0,   8,   0, UNI_DINGBATS }   /* dingbats */,
+  {     2,  5916,   599,  21,   3, -UNI_LOE }   /* logicalorderexception=no */,
+  {     0,  1424,  1317,   7,   2, UNI_CCC__32 }   /* ccc=ccc32 */,
+  {     5,  1667,  4075,   4,  15, UNI_CURRENCYSYMBOLS }   /* blk=currencysymbols */,
+  {     5,  3130,  3639,  11,   9, UNI_GEORGIANEXT }   /* blk=georgianextended */,
+  {     0,   461,  3554,   2,  13, UNI_ZL }   /* islineseparator */,
+  {     1,  1823,   438,   7,   4, UNI_OLCK }   /* script=olck */,
+  {     8,   641,   644,   3,   3, UNI_LB__H2 }   /* hst=lv */,
+  {     5,  6581,     0,  16,   0, UNI_INDICNUMBERFORMS }   /* indicnumberforms */,
+  {     9,  1894,   585,   5,   2, UNI_BIDIM }   /* bidim=t */,
+  {     0,  1667,  5694,   5,  18, UNI_COUNTINGROD }   /* blk=countingrodnumerals */,
+  {     2,  2280,   512,   9,   2, UNI_IN__3 }   /* presentin=3 */,
+  {     0,  1667,   398,   4,   4, UNI_INMIAO }   /* blk=miao */,
+  {    17,  1075,  6255,   4,   8, UNI_NV__1_SLASH_40 }   /* nv=2.500e-02 */,
+  {     3,  2324,  1015,   6,   6, UNI_INTELUGU }   /* block=telugu */,
+  {     0,   339,  1678,   4,   2, UNI_CCC__1 }   /* ccc=ov */,
+  {     2,  5979,  1628,   3,   7, UNI_VO__U }   /* vo=upright */,
+  {     4,  4424,  1009,  17,   6, UNI_LYCI }   /* scriptextensions=lycian */,
+  {     2,  8343,  6642,  22,  19, UNI_INSC__BRAHMIJOININGNUMBER }   /* indicsyllabiccategory=brahmijoiningnumber */,
+  {     0,  3391,   346,  14,   1, UNI_NV__28 }   /* numericvalue=28 */,
+  {     0,  1667,  1635,   4,  10, UNI_INWARANGCITI }   /* blk=warangciti */,
+  {     0,  8601,  1845,   9,   8, UNI_SUPERANDSUB }   /* block=superandsub */,
+  {     2,  4075,     0,  15,   0, UNI_CURRENCYSYMBOLS }   /* currencysymbols */,
+  {     2,  8343,  6661,  31,  10, UNI_INSC__CONSONANTHEADLETTER }   /* indicsyllabiccategory=consonantheadletter */,
+  {    12,  7274,   330,   9,   2, UNI_PD }   /* category=pd */,
+  {     9,  5156,   283,  10,   2, UNI_WB__NU }   /* wordbreak=nu */,
+  {     2,  1102,  1205,   4,   7, UNI_GRAN }   /* scx=grantha */,
+  {     1,  6427,  2015,  13,   3, UNI_JG__WAW }   /* joininggroup=waw */,
+  {     8,   533,  2304,   4,   8, UNI_SB__SC }   /* sb=scontinue */,
+  {     0,  4360,  2029,   9,  10, UNI_LB__B2 }   /* linebreak=breakboth */,
+  {     0,  6076,   976,   7,   7, UNI_INGURMUKHI }   /* block=gurmukhi */,
+  {     7,  5460,   353,  19,   2, UNI_TERM }   /* terminalpunctuation=y */,
+  {     3,  1102,  5440,   4,  20, UNI_HMNP }   /* scx=nyiakengpuachuehmong */,
+  {     8,  1530,  7443,   4,  24, UNI_KATAKANAEXT }   /* iskatakanaphoneticextensions */,
+  {     0,  5460,   934,  19,   2, -UNI_TERM }   /* terminalpunctuation=f */,
+  {     0,  1102,  1234,   4,   7, UNI_MULT }   /* scx=multani */,
+  {     1,  2766,  2317,   3,   6, UNI_N }   /* gc=number */,
+  {     1,    30,  4160,   1,  16, UNI_DIACRITICALSEXT }   /* indiacriticalsext */,
+  {     6,  2324,  1914,   6,   8, UNI_UCASEXTA }   /* block=ucasexta */,
+  {    20,   641,  2931,   2,   3, UNI_GCB__T }   /* hst=t */,
+  {     0,  4424,    59,  17,   4, UNI_CHRS }   /* scriptextensions=chrs */,
+  {     0,   309,  6000,   2,  21, UNI_YIJING }   /* inyijinghexagramsymbols */,
+  {     0,  1102,  1562,   4,  10, UNI_NAGM }   /* scx=nagmundari */,
+  {     2,  2411,     0,  11,   0, UNI_KATAKANAEXT }   /* katakanaext */,
+  {     1,    99,     0,   2,   0, UNI_UPPERCASELETTER }   /* lu */,
+  {     4,  2180,   389,   4,   1, UNI_NV__46 }   /* nv=46 */,
+  {     0,  2766,   117,   3,   2, UNI_XPOSIXDIGIT }   /* gc=nd */,
+  {     2,   510,  1805,   4,   5, UNI_NV__300000 }   /* nv=300000 */,
+  {     2,  1424,   345,   7,   2, UNI_CCC__18 }   /* ccc=ccc18 */,
+  {     2,   309,  1954,   2,  12, UNI_INGUNJALAGONDI }   /* ingunjalagondi */,
+  {     2,  7889,  4410,  26,   4, UNI_CJKEXTA }   /* cjkunifiedideographsextensiona */,
+  {     0,   309,  4060,   2,  15, UNI_BRAI }   /* inbraillepatterns */,
+  {     0,   309,  7724,   2,  18, UNI_INVS }   /* invariationselectors */,
+  {     0,   461,  7449,   2,  18, UNI_PHONETICEXT }   /* isphoneticextensions */,
+  {     1,  1125,     0,   8,   0, UNI_TFNG }   /* tifinagh */,
+  {     0,  6618,  6288,   3,   6, UNI_INPC__LEFT }   /* inpc=left */,
+  {     0,  2004,  4569,   5,   5, UNI_POSIXUPPER }   /* posixupper */,
+  {     0,   292,  1071,   3,   4, UNI_NV__1_SLASH_12 }   /* nv=1/12 */,
+  {     1,   406,   934,   2,   6, -UNI_DI }   /* di=false */,
+  {     0,  1667,  7356,   4,  27, UNI_OCR }   /* blk=opticalcharacterrecognition */,
+  {     1,  1102,  4060,   4,   4, UNI_BRAI }   /* scx=brai */,
+  {     4,  7591,   281,   3,   2, UNI_LB__XX }   /* lb=xx */,
+  {     1,  2302,   353,   3,   4, UNI_IDC }   /* idc=yes */,
+  {     0,  1424,   388,   7,   2, UNI_CCC__26 }   /* ccc=ccc26 */,
+  {     2,   461,  1021,   2,   6, UNI_WCHO }   /* iswancho */,
+  {    16,  2525,  3100,   5,   6, UNI_XPOSIXDIGIT }   /* xposixdigit */,
+  {     1,    19,   353,   4,   2, UNI_POSIXXDIGIT }   /* ahex=y */,
+  {     0,  3908,     0,  16,   0, UNI_TANGUTCOMPONENTS }   /* tangutcomponents */,
+  {     6,   339,   890,   3,   3, UNI_CCC__10 }   /* ccc=10 */,
+  {     2,   909,     0,   4,   0, UNI_BALI }   /* bali */,
+  {     0,   309,  1262,   2,   7, UNI_INSOYOMBO }   /* insoyombo */,
+  {     0,   339,  2719,   2,   7, UNI_CCC__R }   /* ccc=right */,
+  {    16,   309,  4896,   2,  15, UNI_BAMUMSUP }   /* inbamumsupplement */,
+  {     9,   253,   353,   4,   2, UNI_CWCF }   /* cwcf=y */,
+  {     2,  8311,  6554,  32,   4, UNI_CJKEXTC }   /* block=cjkunifiedideographsextensionc */,
+  {     1,  3677,  4698,   6,   5, UNI_LATIN1 }   /* islatin1sup */,
+  {     1,  5156,  1864,  10,   5, UNI_WB__EB }   /* wordbreak=ebase */,
+  {    17,     4,   933,   2,   7, -UNI_LOE }   /* loe=false */,
+  {     5,  6165,   798,   3,   4, UNI_NBAT }   /* sc=nbat */,
+  {     0,  2988,   599,  13,   3, UNI_COMPEX }   /* nfcquickcheck=no */,
+  {     0,   521,   934,   6,   6, -UNI_PATSYN }   /* patsyn=false */,
+  {     1,   461,    74,   2,   4, UNI_CYRL }   /* iscyrl */,
+  {     0,  7648,  4602,  18,   4, UNI_DT__INIT }   /* decompositiontype=init */,
+  {     3,   823,   599,   4,   3, -UNI_DASH }   /* dash=no */,
+  {     1,   552,   342,   3,   3, UNI_AGE__12 }   /* age=12 */,
+  {     0,   292,   388,   3,   2, UNI_NV__26 }   /* nv=26 */,
+  {     0,  7267,  1611,  16,   2, UNI_LOWERCASELETTER }   /* generalcategory=ll */,
+  {     0,  6165,   868,   3,   4, UNI_SC__TIRH }   /* sc=tirh */,
+  {     1,  7855,     0,  32,   0, UNI_INIDC }   /* ideographicdescriptioncharacters */,
+  {     2,  1853,     0,   4,   0, UNI_SYLO }   /* sylo */,
+  {     1,  2287,  2084,   3,   2, UNI_IN__11 }   /* in=11 */,
+  {     4,  1823,   658,   7,   5, UNI_SC__DOGR }   /* script=dogra */,
+  {     8,   271,  1864,   4,   8, UNI_WB__EB }   /* gcb=ebasegaz */,
+  {     6,  1667,  4533,   7,   4, UNI_CJKEXTC }   /* blk=cjkextc */,
+  {    11,   271,   959,   4,   6, UNI_GCB__EX }   /* gcb=extend */,
+  {     4,  5205,  6597,   5,  21, UNI_MISCTECHNICAL }   /* blk=miscellaneoustechnical */,
+  {     1,  1102,   493,   4,   6, UNI_KHOJ }   /* scx=khojki */,
+  {     0,  4424,   438,  17,   4, UNI_OLCK }   /* scriptextensions=olck */,
+  {     1,   116,     0,   4,   0, UNI_KNDA }   /* knda */,
+  {     0,   875,   599,   5,   2, -UNI_UIDEO }   /* uideo=n */,
+  {     0,  5205,  5107,   5,  18, UNI_MODIFIERTONELETTERS }   /* blk=modifiertoneletters */,
+  {    14,  3021,   344,   4,   2, UNI_IN__2_DOT_1 }   /* in=v21 */,
+  {     2,  7648,  1743,  18,   4, UNI_DT__VERT }   /* decompositiontype=vert */,
+  {     0,   461,   238,   2,   2, UNI_NB }   /* isnb */,
+  {     0,  7887,  4218,  28,   4, UNI_CJKEXTH }   /* incjkunifiedideographsextensionh */,
+  {     1,  2002,  1942,   7,   5, UNI_POSIXGRAPH }   /* isposixgraph */,
+  {     3,  6618,  5308,   5,  15, UNI_LOE }   /* inpc=visualorderleft */,
+  {     6,  4424,   997,  17,   6, UNI_KTHI }   /* scriptextensions=kaithi */,
+  {     0,   406,  1175,   2,   2, UNI_dia_values_index }   /* dia= */,
+  {     0,  1667,  3611,   7,  11, UNI_CJKCOMPATFORMS }   /* blk=cjkcompatforms */,
+  {     4,  6163,  2460,   5,   8, UNI_INSC__TONEMARK }   /* insc=tonemark */,
+  {     4,  4360,  3337,  10,  12, UNI_LB__IS }   /* linebreak=infixnumeric */,
+  {     0,  4424,   224,  17,   4, UNI_XPEO }   /* scriptextensions=xpeo */,
+  {     0,  4424,  6081,  16,   9, UNI_GEOR }   /* scriptextensions=georgian */,
+  {    10,    30,  7563,   1,  28, UNI_ANCIENTGREEKMUSIC }   /* isancientgreekmusicalnotation */,
+  {     2,  3407,  1314,  14,   3, UNI_NV__4000 }   /* numericvalue=4000 */,
+  {     0,  3677,     0,   7,   0, UNI_LATN }   /* islatin */,
+  {     0,  2324,  6557,   9,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* block=cjkcompatideographs */,
+  {     2,  4424,    31,  17,   4, UNI_AVST }   /* scriptextensions=avst */,
+  {     5,  6866,     0,  24,   0, UNI_COMPEX }   /* fullcompositionexclusion */,
+  {     1,  2930,    44,   3,   1, UNI_JT__U }   /* jt=u */,
+  {     1,   533,  1602,   3,   7, UNI_SB__LE }   /* sb=oletter */,
+  {     1,  1424,  2101,   8,   2, UNI_CCC__129 }   /* ccc=ccc129 */,
+  {     0,   461,  1834,   2,  11, UNI_SORA }   /* issorasompeng */,
+  {     5,  1790,   599,   5,   2, UNI_COMPEX }   /* nfcqc=n */,
+  {     0,  1667,   673,   4,   5, UNI_INOSAGE }   /* blk=osage */,
+  {     6,  2302,   599,   3,   2, -UNI_IDC }   /* idc=n */,
+  {     0,  4424,    39,  17,   4, UNI_BHKS }   /* scriptextensions=bhks */,
+  {     0,  1834,     0,  11,   0, UNI_SORA }   /* sorasompeng */,
+  {     4,  1209,     0,   4,   0, UNI_THAI }   /* thai */,
+  {     0,   339,  7425,   4,   4, UNI_CCC__216 }   /* ccc=atar */,
+  {     0,  7011,  2084,  24,   2, UNI_CCC__11 }   /* canonicalcombiningclass=11 */,
+  {     0,   461,  1294,   2,   9, UNI_NBAT }   /* isnabataean */,
+  {     1,   292,  4403,   2,   4, UNI_NV__3_SLASH_2 }   /* nv=3/2 */,
+  {    13,  1894,   353,  12,   4, UNI_BIDIM }   /* bidimirrored=yes */,
+  {     0,  1198,  5694,   3,  10, UNI_COUNTINGROD }   /* incountingrod */,
+  {     0,   298,   585,   2,   5, UNI_RI }   /* ri=true */,
+  {     0,    11,   649,   1,   4, UNI_ADLM }   /* adlam */,
+  {     1,  4569,   353,   5,   2, UNI_XPOSIXUPPER }   /* upper=y */,
+  {     3,  5799,  6103,   5,  13, UNI_SUPMATHOPERATORS }   /* insupmathoperators */,
+  {     0,  7267,  6324,  16,   6, UNI_CF }   /* generalcategory=format */,
+  {     1,  1102,   825,   4,   7, UNI_SHAW }   /* scx=shavian */,
+  {     8,   292,  2184,   4,   8, UNI_NV__11_SLASH_12 }   /* nv=9.167e-01 */,
+  {     1,     4,  5671,   2,   4, -UNI_LOE }   /* loe=no */,
+  {     0,   461,   718,   2,   7, UNI_KNDA }   /* iskannada */,
+  {     2,  1102,  1522,   4,   8, UNI_UGAR }   /* scx=ugaritic */,
+  {     2,  1198,    81,   7,   2, UNI_CJKEXTG }   /* incjkextg */,
+  {     0,  7011,   344,  24,   2, UNI_CCC__21 }   /* canonicalcombiningclass=21 */,
+  {     2,  2665,  1104,  12,   2, UNI_patsyn_values_index }   /* patternsyntax= */,
+  {     3,   309,  3421,   2,  15, UNI_NARB }   /* inoldnortharabian */,
+  {     1,   887,  2656,   5,   3, UNI_AGE__15 }   /* age=15.0 */,
+  {     2,  5553,   274,  21,   1, UNI_cwcm_values_index }   /* changeswhencasemapped= */,
+  {     4,  5637,   959,  21,   6, UNI_GCB__EX }   /* graphemeclusterbreak=extend */,
+  {     5,   271,   700,   4,   2, UNI_WB__EB }   /* gcb=em */,
+  {    25,    30,  5390,   1,   9, UNI_CHER }   /* ischerokee */,
+  {     1,  2494,  5292,   4,  16, UNI_INPUNCTUATION }   /* isgeneralpunctuation */,
+  {     2,  6165,  1509,   3,   8, UNI_SC__JAVA }   /* sc=javanese */,
+  {    12,  4424,   244,  17,   4, UNI_ZZZZ }   /* scriptextensions=zzzz */,
+  {     2,  8071,  6554,  30,   4, UNI_CJKEXTC }   /* blk=cjkunifiedideographsextensionc */,
+  {     0,  2324,  4651,   6,   8, UNI_INBOPOMOFO }   /* block=bopomofo */,
+  {     0,  2324,  5876,   6,   9, UNI_INSUNDANESE }   /* block=sundanese */,
+  {     0,   753,   599,   6,   3, UNI_NFKCQC__N }   /* nfkcqc=no */,
+  {     0,  3892,   585,  16,   5, UNI_STERM }   /* sentenceterminal=true */,
+  {     9,  1021,     0,   6,   0, UNI_WCHO }   /* wancho */,
+  {     0,  1667,  2411,   4,   8, UNI_INKATAKANA }   /* blk=katakana */,
+  {     0,  5895,  1269,   6,   3, UNI_SUPPUAB }   /* issuppuab */,
+  {     2,  1494,  3639,   7,   9, UNI_GEORGIANEXT }   /* georgianextended */,
+  {     5,   641,  1874,   6,   8, UNI_LB__H2 }   /* hst=lvsyllable */,
+  {     8,    30,  1882,   1,  12, UNI_BIDIC }   /* isbidicontrol */,
+  {     0,  4176,     0,   4,   0, UNI_HANG }   /* hang */,
+  {     3,  1243,  6462,   4,  25, UNI_SHORTHANDFORMATCONTROLS }   /* block=shorthandformatcontrols */,
+  {     3,     2,   585,   3,   5, UNI_CWL }   /* cwl=true */,
+  {    16,  2494,  2370,   3,  12, UNI_GREEKEXT }   /* isgreekextended */,
+  {     0,  6041,  5089,  20,   3, UNI_BPT__C }   /* bidipairedbrackettype=c */,
+  {     3,  7495,   345,  28,   2, UNI_CCC__118 }   /* canonicalcombiningclass=ccc118 */,
+  {     5,   461,  1556,   2,   6, UNI_ARROWS }   /* isarrows */,
+  {    10,  4519,  1505,  14,   4, UNI_CYRILLICEXTA }   /* block=cyrillicexta */,
+  {     4,  1823,   446,   7,   4, UNI_PHLI }   /* script=phli */,
+  {     0,   461,  1033,   2,   8, UNI_JAMOEXTB }   /* isjamoextb */,
+  {     0,   261,   585,   5,   5, UNI_CWKCF }   /* cwkcf=true */,
+  {     0,  3391,   290,  14,   1, UNI_NV__24 }   /* numericvalue=24 */,
+  {     5,  5216,  2619,   7,  12, UNI_LOWSURROGATES }   /* block=lowsurrogates */,
+  {     2,  1102,    51,   4,   4, UNI_CANS }   /* scx=cans */,
+  {     3,   292,   295,   3,   1, UNI_NV__9 }   /* nv=9 */,
+  {     1,   298,   353,   2,   4, UNI_RI }   /* ri=yes */,
+  {     0,  1667,  6776,   4,  14, UNI_MEETEIMAYEKEXT }   /* blk=meeteimayekext */,
+  {     0,  1198,  8474,   5,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* incjkcompatibilityideographssupplement */,
+  {     0,  4941,  4272,   7,  16, UNI_INKHITANSMALLSCRIPT }   /* block=khitansmallscript */,
+  {     6,  1823,   430,   7,   3, UNI_SC__NKO }   /* script=nko */,
+  {     0,  3040,   353,  13,   4, UNI_QMARK }   /* quotationmark=yes */,
+  {     4,   339,  2222,   3,   2, UNI_CCC__6 }   /* ccc=6 */,
+  {     1,  1726,  3790,   7,   5, UNI_ARABICMATH }   /* isarabicmath */,
+  {     2,  1667,  6351,   4,  23, UNI_COMPATJAMO }   /* blk=hangulcompatibilityjamo */,
+  {     1,  2324,  6557,   9,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* block=cjkcompatideographssup */,
+  {     8,  2324,  6900,   6,  23, UNI_BYZANTINEMUSIC }   /* block=byzantinemusicalsymbols */,
+  {     2,  4461,     0,  11,   0, UNI_SGNW }   /* signwriting */,
+  {     4,  3407,  1805,  14,   5, UNI_NV__400000 }   /* numericvalue=400000 */,
+  {     8,  1174,    17,   3,   1, UNI_EA__H }   /* ea=h */,
+  {     2,  8660,     0,  34,   0, UNI_UCAS }   /* unifiedcanadianaboriginalsyllabics */,
+  {    30,  3633,     0,  16,   0, UNI_LATINEXTD }   /* inlatinextendedd */,
+  {     8,  5799,  4150,   5,  11, UNI_SUPPUNCTUATION }   /* insuppunctuation */,
+  {     0,  6816,   934,  25,   6, -UNI_CWKCF }   /* changeswhennfkccasefolded=false */,
+  {     0,  5391,     0,  18,   0, UNI_CHEROKEESUP }   /* cherokeesupplement */,
+  {     0,  3817,  3846,  14,   2, UNI_NV__1_SLASH_8 }   /* numericvalue=1/8 */,
+  {     1,  1667,  2786,   4,  14, UNI_HIGHSURROGATES }   /* blk=highsurrogates */,
+  {     2,  1823,  5876,   7,   9, UNI_SUND }   /* script=sundanese */,
+  {     2,   461,   779,   2,   4, UNI_OSMA }   /* isosma */,
+  {     8,  1102,   108,   4,   4, UNI_KAWI }   /* scx=kawi */,
+  {     8,  6618,  4107,   5,  12, UNI_INPC__LEFTANDRIGHT }   /* inpc=leftandright */,
+  {     0,  7011,  8640,  24,  13, UNI_CCC__214 }   /* canonicalcombiningclass=attachedabove */,
+  {     0,  2692,     0,  13,   0, UNI_VERTICALFORMS }   /* verticalforms */,
+  {     0,  4424,    90,  17,   4, UNI_GUJR }   /* scriptextensions=gujr */,
+  {     0,  3863,  1314,  14,   2, UNI_NV__800 }   /* numericvalue=800 */,
+  {     2,  5205,  8374,   5,  33, UNI_MISCPICTOGRAPHS }   /* blk=miscellaneoussymbolsandpictographs */,
+  {     1,  7011,   290,  25,   2, UNI_CCC__IS }   /* canonicalcombiningclass=240 */,
+  {     4,  4360,   119,  10,   2, UNI_LB__AL }   /* linebreak=al */,
+  {     2,  7495,   348,  27,   2, UNI_CCC__91 }   /* canonicalcombiningclass=ccc91 */,
+  {     0,  2766,  4191,   3,  15, UNI_LOWERCASELETTER }   /* gc=lowercaseletter */,
+  {     2,  6165,  2244,   3,  12, UNI_HUNG }   /* sc=oldhungarian */,
+  {     4,  5979,  5993,   3,   7, UNI_VO__R }   /* vo=rotated */,
+  {     1,  7892,   599,  16,   3, -UNI_UIDEO }   /* unifiedideograph=no */,
+  {     2,     8,   934,   3,   2, -UNI_PCM }   /* pcm=f */,
+  {     0,  2718,   384,   3,   2, UNI_BC__EN }   /* bc=en */,
+  {     0,  2832,  3640,  10,   9, UNI_CYRILLICEXTD }   /* iscyrillicextendedd */,
+  {     0,   578,  2165,   5,   2, UNI_CCC__DB }   /* ccc=233 */,
+  {     8,  5637,   543,  21,   2, UNI_WB__EB }   /* graphemeclusterbreak=eb */,
+  {     2,   461,  3584,   3,  15, UNI_HIGHPUSURROGATES }   /* ishighpusurrogates */,
+  {     3,   461,  1853,   2,  11, UNI_SYLO }   /* issylotinagri */,
+  {     0,  6165,  5185,   3,  20, UNI_HLUW }   /* sc=anatolianhieroglyphs */,
+  {     0,  1667,  5694,   5,  10, UNI_COUNTINGROD }   /* blk=countingrod */,
+  {     1,  2536,  2728,   4,   3, UNI_JG__ALEF }   /* jg=alef */,
+  {     0,  2401,  6193,   8,   5, UNI_ETHIOPICSUP }   /* inethiopicsup */,
+  {     0,  4424,   880,  17,   7, UNI_ZZZZ }   /* scriptextensions=unknown */,
+  {     4,  6165,  1209,   3,   4, UNI_THAI }   /* sc=thai */,
+  {     1,  7267,  2317,  16,   6, UNI_N }   /* generalcategory=number */,
+  {     9,   716,  3746,   4,  14, UNI_KAKTOVIKNUMERALS }   /* inkaktoviknumerals */,
+  {     0,  1255,     0,   4,   0, UNI_SIDD }   /* sidd */,
+  {     1,  3177,  2538,  14,   2, UNI_EA__A }   /* eastasianwidth=a */,
+  {     6,  5216,  5635,  17,   3, UNI_LATINEXTG }   /* block=latinextendedg */,
+  {     0,   309,   683,   2,   5, UNI_INTAKRI }   /* intakri */,
+  {     2,  4424,  1543,  17,   4, UNI_KHAR }   /* scriptextensions=khar */,
+  {     2,   461,   678,   2,   5, UNI_RUNR }   /* isrunic */,
+  {     1,  6076,  2370,   7,   7, UNI_GREEKEXT }   /* block=greekext */,
+  {     2,  2514,  3788,   3,  15, UNI_MISCMATHSYMBOLSA }   /* ismiscmathsymbolsa */,
+  {     0,  4391,   289,  16,   1, UNI_NV__3_SLASH_20 }   /* numericvalue=3/20 */,
+  {     1,  1102,  5958,   4,   4, UNI_SINH }   /* scx=sinh */,
+  {     1,  2002,  3268,   7,   5, UNI_POSIXALNUM }   /* isposixalnum */,
+  {    12,  6165,   917,   3,   8, UNI_BASS }   /* sc=bassavah */,
+  {     9,  5532,   353,  21,   4, UNI_CWCF }   /* changeswhencasefolded=yes */,
+  {     0,  6165,    11,   3,   4, UNI_SC__ADLM }   /* sc=adlm */,
+  {     4,  2301,   352,  10,   3, UNI_XIDC }   /* xidcontinue=y */,
+  {     9,  6797,     0,  18,   0, UNI_DEVANAGARIEXT }   /* devanagariextended */,
+  {     2,  3407,   389,  14,   1, UNI_NV__46 }   /* numericvalue=46 */,
+  {     8,  7274,   128,   9,   2, UNI_ME }   /* category=me */,
+  { 41562,  5916,   585,  21,   5, UNI_LOE }   /* logicalorderexception=true */,
+  {     1,  1272,  2373,   4,   5, UNI_CJKEXTE }   /* iscjkexte */,
+  {     1,  1174,     0,   3,   0, UNI_ea_values_index }   /* ea= */,
+  {     3,  2401,   620,   8,   5, UNI_ETHIOPICEXT }   /* inethiopicext */,
+  {    16,   461,  4002,   2,  14, UNI_SK }   /* ismodifiersymbol */,
+  {     1,  6165,   997,   3,   6, UNI_SC__KTHI }   /* sc=kaithi */,
+  {     1,  1102,    82,   4,   4, UNI_GONG }   /* scx=gong */,
+  {     6,  1102,    47,   4,   4, UNI_CAKM }   /* scx=cakm */,
+  {     2,  6427,  3301,  13,  12, UNI_JG__VERTICALTAIL }   /* joininggroup=verticaltail */,
+  {     1,   779,     0,   4,   0, UNI_OSMA }   /* osma */,
+  {     1,  7011,  1153,  25,   2, UNI_CCC__L }   /* canonicalcombiningclass=224 */,
+  {    10,  6165,    60,   4,   3, UNI_CHRS }   /* sc=chrs */,
+  {     6,  4424,  1543,  17,  10, UNI_KHAR }   /* scriptextensions=kharoshthi */,
+  {     0,  7752,  5427,  24,   6, UNI_JG__MANICHAEANTHAMEDH }   /* joininggroup=manichaeanthamedh */,
+  {     1,  2180,  2193,   5,   7, UNI_NV__3_SLASH_64 }   /* nv=4.688e-02 */,
+  {     0,  6076,  5863,  11,  13, UNI_GEORGIANSUP }   /* block=georgiansupplement */,
+  {     3,  1618,   934,  10,   2, -UNI_SD }   /* softdotted=f */,
+  {     4,  1667,  1872,   4,  11, UNI_YISYLLABLES }   /* blk=yisyllables */,
+  {     1,  2208,  1805,   4,   4, UNI_NV__50000 }   /* nv=50000 */,
+  {     8,  4424,   369,  17,   4, UNI_GOTH }   /* scriptextensions=goth */,
+  {     1,  4845,   352,  16,   5, UNI__PERL_PATWS }   /* patternwhitespace=yes */,
+  {     1,  7648,  4602,  18,   7, UNI_DT__INIT }   /* decompositiontype=initial */,
+  {     0,  2280,   343,  11,   1, UNI_IN__11 }   /* presentin=11 */,
+  {     0,   292,  2165,   3,   2, UNI_NV__33 }   /* nv=33 */,
+  {     6,  5156,  2768,   9,   6, UNI_WB__XX }   /* wordbreak=other */,
+  {     5,     0,     0,   1,   0, UNI_L }   /* l */,
+  {     0,  1391,   283,   3,   2, UNI_WB__NU }   /* wb=nu */,
+  {     4,   461,  2483,   2,   5, UNI_CASED }   /* iscased */,
+  {    21,  2752,  8504,  11,   4, UNI_ecomp_values_index }   /* emojicomponent= */,
+  {     0,  3130,  2370,   5,   7, UNI_GREEKEXT }   /* blk=greekext */,
+  {     0,  7198,  5409,   5,  17, UNI_SMALLKANAEXT }   /* blk=smallkanaextension */,
+  {     3,   461,     8,   2,   3, UNI_PCM }   /* ispcm */,
+  {     2,  5616,     0,  21,   0, UNI_CWU }   /* changeswhenuppercased */,
+  {    11,  2324,  8660,   6,  43, UNI_UCASEXTA }   /* block=unifiedcanadianaboriginalsyllabicsextendeda */,
+  {     1,  4360,  3634,  10,   2, UNI_LB__NL }   /* linebreak=nl */,
+  {     2,  2280,   519,   9,   2, UNI_IN__7 }   /* presentin=7 */,
+  {     2,  2324,  1484,   6,   8, UNI_INBUGINESE }   /* block=buginese */,
+  {     8,  6165,   663,   3,   5, UNI_SC__LIMB }   /* sc=limbu */,
+  {     1,  5255,   599,  20,   3, -UNI_EXTPICT }   /* extendedpictographic=no */,
+  {     2,   510,  2164,   4,   8, UNI_NV__1_SLASH_3 }   /* nv=3.333e-01 */,
+  {     8,  6165,   806,   3,   4, UNI_SC__SHRD }   /* sc=shrd */,
+  {    12,  1102,   493,   4,   4, UNI_KHOJ }   /* scx=khoj */,
+  {     0,  3633,  4770,  15,  10, UNI_LATINEXTADDITIONAL }   /* inlatinextendedadditional */,
+  {     0,  4620,     0,  16,   0, UNI_LINEARBSYLLABARY }   /* linearbsyllabary */,
+  {     0,  2287,  2656,   4,   3, UNI_IN__15 }   /* in=15.0 */,
+  {     0,  1102,  2735,   3,   7, UNI_ARAB }   /* scx=arabic */,
+  {     0,  2718,  3106,   3,  12, UNI_BC__AL }   /* bc=arabicletter */,
+  {     3,   939,   599,   5,   3, -UNI_ECOMP }   /* ecomp=no */,
+  {     0,  1102,  1285,   4,   9, UNI_SIND }   /* scx=khudawadi */,
+  {    17,  6287,     0,  14,   0, UNI_BC__L }   /* bc=lefttoright */,
+  {    19,   461,  1914,   2,   7, UNI_UCASEXT }   /* isucasext */,
+  {     0,  4651,     0,  11,   0, UNI_BOPOMOFOEXT }   /* bopomofoext */,
+  {     0,  7011,  1318,  25,   2, UNI_CCC__B }   /* canonicalcombiningclass=220 */,
+  {     0,  2324,  4926,   6,   8, UNI_TAMILSUP }   /* block=tamilsup */,
+  {    14,  1102,  2068,   4,  12, UNI_MEND }   /* scx=mendekikakui */,
+  {     1,  7724,   599,  17,   3, -UNI_VS }   /* variationselector=no */,
+  {     8,    71,   599,   3,   2, -UNI_CWU }   /* cwu=n */,
+  {     4,  4554,     0,   5,   0, UNI_TITLE }   /* title */,
+  {     2,    33,  4441,   1,  16, UNI_SMALLFORMS }   /* smallformvariants */,
+  {    11,  1823,  1027,   7,   4, UNI_SC__YEZI }   /* script=yezi */,
+  {     0,  7591,  2041,   3,   2, UNI_LB__H3 }   /* lb=h3 */,
+  {     0,  5065,  5047,  13,   6, UNI_JG__MANICHAEANDALETH }   /* jg=manichaeandaleth */,
+  {     0,  4360,  3325,  10,  12, UNI_LB__HL }   /* linebreak=hebrewletter */,
+  {     2,  3407,  1314,  14,   2, UNI_NV__400 }   /* numericvalue=400 */,
+  {     1,  1102,    86,   4,   4, UNI_GREK }   /* scx=grek */,
+  {     2,  1667,  1227,   4,   7, UNI_INMAKASAR }   /* blk=makasar */,
+  {     0,  2514,  1095,   3,   3, UNI_MERC }   /* ismerc */,
+  {     3,  1102,    35,   4,   4, UNI_BATK }   /* scx=batk */,
+  {     3,   261,   934,   5,   6, -UNI_CWKCF }   /* cwkcf=false */,
+  {     0,  1823,    51,   7,   4, UNI_CANS }   /* script=cans */,
+  {     0,  6618,  4111,   8,   8, UNI_INPC__TOPANDRIGHT }   /* inpc=topandright */,
+  {     0,  1823,  1262,   7,   7, UNI_SOYO }   /* script=soyombo */,
+  {     1,  1102,   571,   4,   7, UNI_AVST }   /* scx=avestan */,
+  {     0,  7267,  3709,  16,  11, UNI_MC }   /* generalcategory=spacingmark */,
+  {     1,   461,  5274,   2,  18, UNI_HALFMARKS }   /* iscombininghalfmarks */,
+  {     1,  4424,   236,  17,   4, UNI_ZANB }   /* scriptextensions=zanb */,
+  {     0,  1823,   176,   7,   4, UNI_SC__ROHG }   /* script=rohg */,
+  {     0,  1409,  6957,   5,   9, UNI_LATINEXTE }   /* latinextendede */,
+  {     4,    33,  1609,   1,   9, UNI_SMALLFORMS }   /* smallforms */,
+  {     6,  3014,   891,  12,   2, UNI_IN__11 }   /* presentin=v110 */,
+  {     0,  3633,  4770,  10,  10, UNI_LATINEXTADDITIONAL }   /* inlatinextadditional */,
+  {     2,  1322,     0,   9,   0, UNI_ITAL }   /* olditalic */,
+  {     1,  1667,  1522,   4,   8, UNI_INUGARITIC }   /* blk=ugaritic */,
+  {     0,  1883,   585,  11,   5, UNI_BIDIC }   /* bidicontrol=true */,
+  {     2,  7274,  2483,   9,  11, UNI_CASEDLETTER }   /* category=casedletter */,
+  {     0,  7274,  2621,   9,   9, UNI__PERL_SURROGATE }   /* category=surrogate */,
+  {     3,  1667,    81,   9,   2, UNI_CJKEXTG }   /* blk=cjkextg */,
+  {     3,  2503,   353,   5,   4, UNI_JOINC }   /* joinc=yes */,
+  {    11,  1065,   395,   5,   2, UNI_NV__1_SLASH_16 }   /* nv=1/16 */,
+  {     3,   438,     0,   4,   0, UNI_OLCK }   /* olck */,
+  {     1,   339,  2289,   3,   3, UNI_CCC__14 }   /* ccc=14 */,
+  {     0,  2536,  3294,   3,   7, UNI_JG__SEMKATH }   /* jg=semkath */,
+  {     0,  2324,     0,   9,   0, UNI_CJK }   /* block=cjk */,
+  {     2,  5068,     0,   4,   0, UNI_MANI }   /* mani */,
+  {     1,  2302,   352,   9,   5, UNI_IDC }   /* idcontinue=yes */,
+  {     2,  1102,   144,   4,   4, UNI_NEWA }   /* scx=newa */,
+  {     0,  3014,   295,  11,   2, UNI_IN__9 }   /* presentin=v90 */,
+  {     0,  1667,  1562,   4,  10, UNI_INNAGMUNDARI }   /* blk=nagmundari */,
+  {     3,  4970,   585,  13,   2, UNI_EMOD }   /* emojimodifier=t */,
+  {     5,   461,  5857,   2,   9, UNI_MONG }   /* ismongolian */,
+  {     0,  3014,  2117,  11,   2, UNI_IN__6_DOT_2 }   /* presentin=v62 */,
+  {     1,  6866,   599,  24,   3, -UNI_COMPEX }   /* fullcompositionexclusion=no */,
+  {     0,  1726,  4531,   6,   6, UNI_ARABICEXTC }   /* isarabicextc */,
+  {     4,   461,  4371,   2,   6, UNI_XPOSIXSPACE }   /* iswspace */,
+  {     2,  2324,  1294,   6,   9, UNI_INNABATAEAN }   /* block=nabataean */,
+  {     1,  5156,   543,  10,   2, UNI_WB__EB }   /* wordbreak=eb */,
+  {    16,   461,   786,   2,   4, UNI_HMNP }   /* ishmnp */,
+  {     2,  3803,   353,  14,   2, UNI_NFKCQC__Y }   /* nfkcquickcheck=y */,
+  {     1,  5065,  4751,  13,   5, UNI_JG__MANICHAEANSADHE }   /* jg=manichaeansadhe */,
+  {     4,  1102,   148,   4,   4, UNI_ORYA }   /* scx=orya */,
+  {     3,  5658,  1455,  15,  10, UNI_DEP }   /* identifiertype=deprecated */,
+  {     0,  3391,  1805,  14,   7, UNI_NV__20000000 }   /* numericvalue=20000000 */,
+  {     0,  2324,  6382,   9,  18, UNI_CJKCOMPATFORMS }   /* block=cjkcompatibilityforms */,
+  {     4,  1391,   543,   3,   3, UNI_WB__EB }   /* wb=ebg */,
+  {     0,  1790,   353,   5,   4, UNI_NFCQC__Y }   /* nfcqc=yes */,
+  {     1,   461,   917,   2,   4, UNI_BASS }   /* isbass */,
+  {     0,   621,     0,   2,   0, UNI_CE }   /* ce */,
+  {     1,   292,   796,   3,   3, UNI_NV__NAN }   /* nv=nan */,
+  {     0,   309,   322,   2,   5, UNI_VSSUP }   /* invssup */,
+  {     0,  2287,   393,   3,   2, UNI_IN__15 }   /* in=15 */,
+  {     2,  1424,   346,   7,   2, UNI_CCC__84 }   /* ccc=ccc84 */,
+  {     0,  2180,  1805,   4,   4, UNI_NV__40000 }   /* nv=40000 */,
+  {     0,    74,  1687,   2,   9, UNI_CPMN }   /* cyprominoan */,
+  {     2,  2324,   653,   6,   5, UNI_INBUHID }   /* block=buhid */,
+  {     6,  1823,  1484,   7,   8, UNI_SC__BUGI }   /* script=buginese */,
+  {     1,  2718,     0,   3,   0, UNI_bc_values_index }   /* bc= */,
+  {     1,  1102,  1248,   4,   7, UNI_PHAG }   /* scx=phagspa */,
+  {     5,  4424,  1592,  17,   4, UNI_SAUR }   /* scriptextensions=saur */,
+  {     0,  6165,   648,   3,   5, UNI_SC__ADLM }   /* sc=adlam */,
+  {     0,  4424,  5440,  17,  20, UNI_HMNP }   /* scriptextensions=nyiakengpuachuehmong */,
+  {     0,  7887,  4158,  28,   4, UNI_CJKEXTD }   /* incjkunifiedideographsextensiond */,
+  {     0,   461,    90,   2,   4, UNI_GUJR }   /* isgujr */,
+  {     2,  1894,   599,  12,   3, -UNI_BIDIM }   /* bidimirrored=no */,
+  {     1,  5255,  6621,  19,   3, UNI_EXTPICT }   /* extendedpictographic=t */,
+  {     0,   292,  2155,   3,   9, UNI_NV__1_SLASH_32 }   /* nv=3.125e-02 */,
+  {     0,  8246,  6622,  23,  20, UNI_INPC__TOPANDBOTTOMANDLEFT }   /* indicpositionalcategory=topandbottomandleft */,
+  {     1,  6165,   779,   3,   4, UNI_OSMA }   /* sc=osma */,
+  {     0,  8246,  6629,  24,  13, UNI_INPC__BOTTOMANDLEFT }   /* indicpositionalcategory=bottomandleft */,
+  {     1,  5799,  5813,   5,   7, UNI_SUPARROWSB }   /* insuparrowsb */,
+  {     0,   309,  5897,   2,  19, UNI_SUPARROWSC }   /* insupplementalarrowsc */,
+  {     1,  7591,   153,   3,   2, UNI_LB__SG }   /* lb=sg */,
+  {     1,  8343,  1168,  31,   6, UNI_INSC__CONSONANTMEDIAL }   /* indicsyllabiccategory=consonantmedial */,
+  {     0,   533,     0,   3,   0, UNI_sb_values_index }   /* sb= */,
+  {     3,  2324,  5353,   6,  20, UNI_ININSCRIPTIONALPAHLAVI }   /* block=inscriptionalpahlavi */,
+  {     4,  2432,  5848,   9,   9, UNI_MYANMAREXTA }   /* inmyanmarextendeda */,
+  {     1,   832,   599,   5,   3, -UNI_STERM }   /* sterm=no */,
+  {     2,  2280,   546,  10,   3, UNI_IN__3 }   /* presentin=3.0 */,
+  {     0,  1667,  6909,   4,  14, UNI_MUSIC }   /* blk=musicalsymbols */,
+  {     0,   461,   313,   2,   4, UNI_M }   /* ismark */,
+  {    24,  1200,  8474,   3,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* cjkcompatibilityideographssupplement */,
+  {     5,  1823,   168,   7,   4, UNI_SC__COPT }   /* script=qaac */,
+  {     2,  1667,  1009,   4,   6, UNI_INLYCIAN }   /* blk=lycian */,
+  {     8,   461,  7086,   2,  24, UNI_ARABICPFB }   /* isarabicpresentationformsb */,
+  {     0,  6163,  3217,  14,   4, UNI_INSC__CONSONANTDEAD }   /* insc=consonantdead */,
+  {     0,  2348,   933,  12,   7, -UNI_CI }   /* caseignorable=false */,
+  {     0,  1667,  5857,   4,   9, UNI_INMONGOLIAN }   /* blk=mongolian */,
+  {     3,  4424,   458,  17,   4, UNI_QAAI }   /* scriptextensions=qaai */,
+  {     3,  5156,   507,  10,   2, UNI_WB__DQ }   /* wordbreak=dq */,
+  {     2,  5799,  4607,  12,  13, UNI_SUPPUNCTUATION }   /* insupplementalpunctuation */,
+  {     0,  2766,   106,   3,   2, UNI_ZL }   /* gc=zl */,
+  {     3,  4060,     0,   7,   0, UNI_BRAI }   /* braille */,
+  {     0,  2752,   353,   5,   4, UNI_EMOJI }   /* emoji=yes */,
+  {     8,  2280,   557,  10,   3, UNI_IN__6 }   /* presentin=6.0 */,
+  {     0,  8278,  1926,  13,   7, UNI_MISCSYMBOLS }   /* miscellaneoussymbols */,
+  {     0,  2752,   934,  14,   2, -UNI_ECOMP }   /* emojicomponent=f */,
+  {    16,  5637,   363,  21,   2, UNI_GCB__SM }   /* graphemeclusterbreak=sm */,
+  {     3,  7267,  4075,  16,  14, UNI_SC }   /* generalcategory=currencysymbol */,
+  {     0,  2324,  3567,   6,  16, UNI_HALFANDFULLFORMS }   /* block=halfandfullforms */,
+  {     1,  5205,  3788,   5,  15, UNI_MISCMATHSYMBOLSA }   /* blk=miscmathsymbolsa */,
+  {     1,  1883,     0,  11,   0, UNI_BIDIC }   /* bidicontrol */,
+  {     0,  6450,  1602,  14,   7, UNI_SB__LE }   /* sentencebreak=oletter */,
+  {     0,  1823,  1285,   7,   9, UNI_SC__SIND }   /* script=khudawadi */,
+  {     0,  6618,  6635,   8,   7, UNI_INPC__TOPANDLEFT }   /* inpc=topandleft */,
+  {     0,  1198,  4533,   5,   4, UNI_CJKEXTC }   /* incjkextc */,
+  {     2,  2324,   192,   6,   4, UNI_TAGS }   /* block=tags */,
+  {     0,  5799,  8386,  14,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* insupplementalsymbolsandpictographs */,
+  {     0,  1102,  1015,   4,   6, UNI_TELU }   /* scx=telugu */,
+  {     0,   309,  6677,   2,  15, UNI_MODIFIERLETTERS }   /* inmodifierletters */,
+  {     3,   461,   668,   2,   5, UNI_OGAM }   /* isogham */,
+  {     3,  7011,  2092,  24,   2, UNI_CCC__25 }   /* canonicalcombiningclass=25 */,
+  {     1,  4424,  3325,  17,   4, UNI_HEBR }   /* scriptextensions=hebr */,
+  {     1,  1102,   418,   4,   4, UNI_KHMR }   /* scx=khmr */,
+  {     0,  6165,   462,   3,   4, UNI_SHAW }   /* sc=shaw */,
+  {     1,   461,   164,   2,   4, UNI_PHNX }   /* isphnx */,
+  {     0,  6165,   772,   3,   7, UNI_OLCK }   /* sc=olchiki */,
+  {     0,  7011,   348,  24,   2, UNI_CCC__91 }   /* canonicalcombiningclass=91 */,
+  {     2,   292,  2098,   3,   9, UNI_NV__1_SLASH_7 }   /* nv=1.429e-01 */,
+  {     2,  2324,  5694,   7,  18, UNI_COUNTINGROD }   /* block=countingrodnumerals */,
+  {     1,   339,  1678,   4,   7, UNI_CCC__1 }   /* ccc=overlay */,
+  {     6,  4569,   352,   8,   5, UNI_XPOSIXUPPER }   /* uppercase=yes */,
+  {     0,  4150,     0,  11,   0, UNI_P }   /* punctuation */,
+  {     0,  1823,  5857,   7,   9, UNI_SC__MONG }   /* script=mongolian */,
+  {     0,  7267,  1393,  15,   2, UNI_M }   /* generalcategory=m */,
+  {     0,  1734,   189,   3,   3, UNI_SGNW }   /* issgnw */,
+  {     0,   461,   991,   2,   6, UNI_HATR }   /* ishatran */,
+  {     6,  1667,  6557,   7,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* blk=cjkcompatideographs */,
+  {     1,   461,  1834,   2,   4, UNI_SORA }   /* issora */,
+  {     0,  7804,     0,  11,   0, UNI_IDEO }   /* ideographic */,
+  {     4,  2362,     0,   8,   0, UNI_ASSIGNED }   /* assigned */,
+  {     1,    32,   585,   2,   5, UNI_VS }   /* vs=true */,
+  {     1,  2324,  4896,   6,   5, UNI_INBAMUM }   /* block=bamum */,
+  {     0,  7274,  3263,   9,  13, UNI_XPOSIXDIGIT }   /* category=decimalnumber */,
+  {     8,  6495,     0,   5,   0, UNI_MUSIC }   /* music */,
+  {     1,  1823,  1248,   7,   7, UNI_SC__PHAG }   /* script=phagspa */,
+  {     2,  6165,    43,   3,   4, UNI_SC__BUHD }   /* sc=buhd */,
+  {     1,  7648,   940,  18,   3, UNI_DT__COM }   /* decompositiontype=com */,
+  {     5,   309,  1176,   2,   3, UNI_IN__NA }   /* in=na */,
+  {     2,  4926,     0,   5,   0, UNI_TAML }   /* tamil */,
+  {    16,   510,  2172,   4,   8, UNI_NV__3_SLASH_8 }   /* nv=3.750e-01 */,
+  {     1,   309,  3727,   2,   9, UNI_INMALAYALAM }   /* inmalayalam */,
+  {     0,  3892,     0,  16,   0, UNI_STERM }   /* sentenceterminal */,
+  {     1,   578,   290,   5,   2, UNI_CCC__IS }   /* ccc=240 */,
+  {     0,  7267,  3791,  16,  10, UNI_SM }   /* generalcategory=mathsymbol */,
+  {     4,  7495,  3404,  27,   2, UNI_CCC__23 }   /* canonicalcombiningclass=ccc23 */,
+  {     6,  4043,     0,  17,   0, UNI_IDSB }   /* idsbinaryoperator */,
+  {     4,  7267,   363,  16,   2, UNI_SM }   /* generalcategory=sm */,
+  {    10,   363,     0,   2,   0, UNI_SM }   /* sm */,
+  {     2,  6450,  2768,  13,   6, UNI_SB__XX }   /* sentencebreak=other */,
+  {     0,  1200,    70,   5,   2, UNI_CJKEXTC }   /* cjkextc */,
+  {    14,  7383,  3505,   9,   3, UNI_BC__ET }   /* bidiclass=et */,
+  {    11,    32,   599,   2,   2, -UNI_VS }   /* vs=n */,
+  {     3,  1823,  1635,   7,   4, UNI_WARA }   /* script=wara */,
+  {     1,   521,   585,   6,   5, UNI_PATSYN }   /* patsyn=true */,
+  {     4,     2,  3539,   1,   6, UNI_CPRT }   /* cypriot */,
+  {     5,  1667,   357,   4,   6, UNI_INCHAKMA }   /* blk=chakma */,
+  {     2,  1823,  5440,   7,  20, UNI_HMNP }   /* script=nyiakengpuachuehmong */,
+  {     1,  1823,  5208,   6,   8, UNI_SC__MYMR }   /* script=myanmar */,
+  {     0,  6618,  1630,  20,   5, UNI_INPC__TOPANDBOTTOMANDRIGHT }   /* inpc=topandbottomandright */,
+  {     0,  1823,   991,   7,   6, UNI_HATR }   /* script=hatran */,
+  {     0,  6165,  1086,   3,   4, UNI_SC__KTHI }   /* sc=kthi */,
+  {     4,  6165,   156,   3,   4, UNI_SC__OUGR }   /* sc=ougr */,
+  {     3,  3817,   290,  15,   1, UNI_NV__1_SLASH_4 }   /* numericvalue=1/4 */,
+  {     4,  1479,  5169,   5,   4, UNI_XPOSIXSPACE }   /* spaceperl */,
+  {     5,  4424,   806,  17,   4, UNI_SHRD }   /* scriptextensions=shrd */,
+  {     2,   461,  5939,   2,   5, UNI__PERL_NCHAR }   /* isnchar */,
+  {     5,  6165,  5391,   3,   8, UNI_CHER }   /* sc=cherokee */,
+  {     0,   615,     0,   4,   0, UNI_ELYM }   /* elym */,
+  {     0,  2301,   353,   4,   4, UNI_XIDC }   /* xidc=yes */,
+  {     0,  1102,  3325,   4,   6, UNI_HEBR }   /* scx=hebrew */,
+  {     1,    20,   934,   3,   6, -UNI_XPOSIXXDIGIT }   /* hex=false */,
+  {     1,  1823,  1685,   7,  11, UNI_SC__CPMN }   /* script=cyprominoan */,
+  {     0,   339,  6288,   2,   3, UNI_CCC__L }   /* ccc=l */,
+  {     1,  7495,  2154,  27,   2, UNI_CCC__13 }   /* canonicalcombiningclass=ccc13 */,
+  {     0,   309,  2302,   2,   3, UNI_INIDC }   /* inidc */,
+  {     8,   733,  6142,   3,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* inearlydynasticcuneiform */,
+  {    36,  2432,     0,   9,   0, UNI_INMYANMAR }   /* inmyanmar */,
+  {     4,  4424,  1484,  17,   4, UNI_BUGI }   /* scriptextensions=bugi */,
+  {     0,  4360,   461,  10,   2, UNI_LB__IS }   /* linebreak=is */,
+  {     5,   309,  2393,   2,   8, UNI_INCYRILLIC }   /* incyrillic */,
+  {     2,  2514,     0,   3,   0, UNI_M }   /* ism */,
+  {     0,  1823,   140,   7,   4, UNI_NARB }   /* script=narb */,
+  {     5,  4360,  7537,  10,  10, UNI_LB__AL }   /* linebreak=alphabetic */,
+  {     0,   148,     0,   4,   0, UNI_ORYA }   /* orya */,
+  {     3,  4424,  1234,  17,   4, UNI_MULT }   /* scriptextensions=mult */,
+  {     5,  1823,  1095,   8,   3, UNI_MERC }   /* script=merc */,
+  {     1,  2718,  4880,   3,  16, UNI_BC__S }   /* bc=segmentseparator */,
+  {    13,  2685,   387,   4,   2, UNI_IN__5_DOT_2 }   /* in=5.2 */,
+  {     4,  4424,  1582,  17,  10, UNI_PHNX }   /* scriptextensions=phoenician */,
+  {     0,  3514,  7545,  10,  20, UNI_ARABICPFA }   /* block=arabicpresentationformsa */,
+  {     5,  1994,   599,   7,   3, -UNI_RADICAL }   /* radical=no */,
+  {     0,  4424,    82,  17,   4, UNI_GONG }   /* scriptextensions=gong */,
+  {     1,  5216,  4659,  11,   9, UNI_LATINEXTC }   /* block=latinextendedc */,
+  {     1,  1823,   732,   7,   7, UNI_SC__LINA }   /* script=lineara */,
+  {     5,  1397,   934,   4,   6, -UNI_IDST }   /* idst=false */,
+  {     8,  7267,   128,  16,   2, UNI_ME }   /* generalcategory=me */,
+  {     0,  2514,  2631,   3,  12, UNI_MAYANNUMERALS }   /* ismayannumerals */,
+  {     3,    30,  6486,   1,   2, UNI_Z }   /* isz */,
+  {     2,  1455,   353,   3,   4, UNI_DEP }   /* dep=yes */,
+  {     0,  2930,  2938,   8,   6, UNI_JT__T }   /* jt=transparent */,
+  {     3,   309,   608,   2,   7, UNI_INELBASAN }   /* inelbasan */,
+  {     5,  1726,     0,   8,   0, UNI_ARAB }   /* isarabic */,
+  {     1,  3391,  2100,  13,   2, UNI_NV__42 }   /* numericvalue=42 */,
+  {    13,  1397,   599,   3,   2, -UNI_IDS }   /* ids=n */,
+  {    11,  2966,  5409,   3,  11, UNI_SMALLKANAEXT }   /* insmallkanaext */,
+  {     2,  2432,  7825,   3,  30, UNI_MATHALPHANUM }   /* inmathematicalalphanumericsymbols */,
+  {     0,  1667,  1003,   4,   6, UNI_INLEPCHA }   /* blk=lepcha */,
+  {     3,    74,     0,   4,   0, UNI_CYRL }   /* cyrl */,
+  {     4,  1823,  1191,   7,   7, UNI_SC__BENG }   /* script=bengali */,
+  {     0,  5595,   353,  21,   2, UNI_CWT }   /* changeswhentitlecased=y */,
+  {     0,  1102,    11,   4,   4, UNI_ADLM }   /* scx=adlm */,
+  {     3,   461,    39,   2,   4, UNI_BHKS }   /* isbhks */,
+  {     3,  1102,    90,   4,   4, UNI_GUJR }   /* scx=gujr */,
+  {     0,  1272,  1505,   5,   4, UNI_CJKEXTA }   /* iscjkexta */,
+  {     0,  7267,  4607,   5,  13, UNI_INPUNCTUATION }   /* generalpunctuation */,
+  {     1,  6165,  1027,   3,   6, UNI_SC__YEZI }   /* sc=yezidi */,
+  {     5,   461,   940,   2,   6, UNI_COMPEX }   /* iscompex */,
+  {     2,   461,   732,   2,   7, UNI_LINA }   /* islineara */,
+  {     1,  2004,  2060,   5,   5, UNI_POSIXALPHA }   /* posixalpha */,
+  {     0,  7383,  3118,  10,  12, UNI_BC__ON }   /* bidiclass=otherneutral */,
+  {     3,  1667,  6487,   4,  13, UNI_ZNAMENNYMUSIC }   /* blk=znamennymusic */,
+  {     0,   309,  5712,   2,  19, UNI_MERO }   /* inmeroitichieroglyphs */,
+  {     1,  1994,   934,   7,   2, -UNI_RADICAL }   /* radical=f */,
+  {     1,  5156,  3325,  10,  12, UNI_LB__HL }   /* wordbreak=hebrewletter */,
+  {     8,   825,     0,   7,   0, UNI_SHAW }   /* shavian */,
+  {     3,  4360,   283,  10,   2, UNI_LB__NU }   /* linebreak=nu */,
+  {     9,   309,  6909,   2,  14, UNI_MUSIC }   /* inmusicalsymbols */,
+  {     4,  7383,  6021,  21,   8, UNI_BC__LRO }   /* bidiclass=lefttorightoverride */,
+  {     4,  2324,  6510,   6,  24, UNI_HIGHPUSURROGATES }   /* block=highprivateusesurrogates */,
+  {     0,  6165,  4926,   3,   5, UNI_SC__TAML }   /* sc=tamil */,
+  {     0,   510,   520,   4,   1, UNI_NV__37 }   /* nv=37 */,
+  {     2,  2280,  2182,   9,   4, UNI_IN__4_DOT_1 }   /* presentin=4.1 */,
+  {     9,  1667,  3692,   4,  14, UNI_LISUSUP }   /* blk=lisusupplement */,
+  {     1,  4620,     0,   7,   0, UNI_LINB }   /* linearb */,
+  {     1,  1530,  3696,   6,  10, UNI_KANASUP }   /* iskanasupplement */,
+  {     2,  4424,  1027,  17,   4, UNI_YEZI }   /* scriptextensions=yezi */,
+  {     0,  2324,  4620,   6,  16, UNI_LINEARBSYLLABARY }   /* block=linearbsyllabary */,
+  {     0,  2718,   143,   3,   2, UNI_BC__BN }   /* bc=bn */,
+  {     2,  1823,  4896,   7,   4, UNI_BAMU }   /* script=bamu */,
+  {     8,  6165,  1334,   3,   4, UNI_SC__PERM }   /* sc=perm */,
+  {     0,  3325,     0,   6,   0, UNI_HEBR }   /* hebrew */,
+  {     2,  4424,    11,  17,   4, UNI_ADLM }   /* scriptextensions=adlm */,
+  {     4,  1272,  5617,   3,  20, UNI_CWU }   /* ischangeswhenuppercased */,
+  {     0,   533,    21,   3,   2, UNI_SB__EX }   /* sb=ex */,
+  {     2,   461,   192,   2,   4, UNI_TAGS }   /* istags */,
+  {     1,  1391,  2411,   3,   8, UNI_WB__KA }   /* wb=katakana */,
+  {     1,  1223,   324,   4,   3, UNI_KANASUP }   /* kanasup */,
+  {     4,  1102,  8667,   4,  18, UNI_CANS }   /* scx=canadianaboriginal */,
+  {     5,  3391,  1318,  13,   2, UNI_NV__20 }   /* numericvalue=20 */,
+  {     0,  1667,   725,   4,   7, UNI_KALI }   /* blk=kayahli */,
+  {     3,  6165,   991,   3,   4, UNI_HATR }   /* sc=hatr */,
+  {     1,   309,  5838,   2,  10, UNI_JAMO }   /* inhanguljamo */,
+  {     4,  2004,     0,   2,   0, UNI_PO }   /* po */,
+  {     7,  3177,  1933,  15,   9, UNI_EA__A }   /* eastasianwidth=ambiguous */,
+  {     0,  1667,  4150,   4,  11, UNI_INPUNCTUATION }   /* blk=punctuation */,
+  {     0,   537,     0,   4,   0, UNI_TANG }   /* tang */,
+  {     0,   309,  8660,   2,  34, UNI_UCAS }   /* inunifiedcanadianaboriginalsyllabics */,
+  {     0,  4424,   102,  17,   4, UNI_HMNG }   /* scriptextensions=hmng */,
+  {     0,  7383,    18,  10,   1, UNI_BC__B }   /* bidiclass=b */,
+  {     1,   521,   353,   6,   4, UNI_PATSYN }   /* patsyn=yes */,
+  {     0,  2324,  3692,   6,  14, UNI_LISUSUP }   /* block=lisusupplement */,
+  {     1,   597,  7011,   6,   5, UNI_DT__NONCANON }   /* dt=noncanon */,
+  {     9,  1823,   975,   7,   8, UNI_SC__GURU }   /* script=gurmukhi */,
+  {     4,  4424,  5682,  17,   5, UNI_GREK }   /* scriptextensions=greek */,
+  {     1,  6165,   678,   3,   5, UNI_RUNR }   /* sc=runic */,
+  {     1,  3391,  3405,  13,   2, UNI_NV__36 }   /* numericvalue=36 */,
+  {     0,   108,  3746,   2,  14, UNI_KAKTOVIKNUMERALS }   /* kaktoviknumerals */,
+  {     1,  7011,  1317,  25,   2, UNI_CCC__AR }   /* canonicalcombiningclass=232 */,
+  {     0,  1823,    90,   7,   4, UNI_SC__GUJR }   /* script=gujr */,
+  {     1,  1823,  1635,   7,  10, UNI_WARA }   /* script=warangciti */,
+  {    11,  5937,   598,  20,   2, UNI_nchar_values_index }   /* noncharactercodepoint= */,
+  {    14,  6165,  1248,   3,   7, UNI_SC__PHAG }   /* sc=phagspa */,
+  {     0,    30,  1917,   1,   4, UNI_EXT }   /* isext */,
+  {     9,   461,   232,   2,   4, UNI_YI }   /* isyiii */,
+  {     1,  1883,   934,   5,   2, -UNI_BIDIC }   /* bidic=f */,
+  {     1,  2324,   772,   6,   7, UNI_OLCK }   /* block=olchiki */,
+  {     0,  7267,  4002,  16,  14, UNI_SK }   /* generalcategory=modifiersymbol */,
+  {     7,   292,   342,   2,   3, UNI_NV__12 }   /* nv=12 */,
+  {     2,  7274,    54,   9,   2, UNI_SC }   /* category=sc */,
+  {     0,  4502,  4344,   5,  16, UNI_LETTERLIKESYMBOLS }   /* blk=letterlikesymbols */,
+  {     0,  8441,  1399,  33,   5, UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START }   /* _perl_problematic_locale_foldeds_start */,
+  {     6,   309,  1853,   2,  11, UNI_INSYLOTINAGRI }   /* insylotinagri */,
+  {     0,  4371,   352,   5,   3, UNI_XPOSIXSPACE }   /* wspace=y */,
+  {     4,  6427,   225,  13,   2, UNI_JG__PE }   /* joininggroup=pe */,
+  {     0,   271,   281,   4,   2, UNI_GCB__XX }   /* gcb=xx */,
+  {     2,  6163,  2382,   5,   5, UNI_INSC__VOWEL }   /* insc=vowel */,
+  {     4,  1726,  2705,   3,  13, UNI_ANCIENTSYMBOLS }   /* isancientsymbols */,
+  {    17,  2514,   747,   3,   6, UNI_MARC }   /* ismarchen */,
+  {     4,  1823,  1015,   7,   6, UNI_SC__TELU }   /* script=telugu */,
+  {     2,  7011,  1318,  24,   3, UNI_WB__EB }   /* canonicalcombiningclass=200 */,
+  {     0,  7267,  5172,  16,   2, UNI_CASEDLETTER }   /* generalcategory=l_ */,
+  {     0,  4424,     0,  17,   0, UNI_scx_values_index }   /* scriptextensions= */,
+  {     5,  2766,  3634,   3,   2, UNI_NL }   /* gc=nl */,
+  {     0,  2842,     0,   6,   0, UNI_ETHI }   /* isethi */,
+  {     0,    42,  3191,   2,   3, UNI_SB__LE }   /* sb=le */,
+  {     0,   597,  3289,   3,   5, UNI_DT__FIN }   /* dt=final */,
+  {     3,  6866,  8554,  21,   4, UNI_compex_values_index }   /* fullcompositionexclusion= */,
+  {     0,  7591,   380,   3,   2, UNI_LB__HY }   /* lb=hy */,
+  {     1,  6062,  8111,   7,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* block=egyptianhieroglyphformatcontrols */,
+  {     2,    30,  1014,   1,   7, UNI_INTELUGU }   /* intelugu */,
+  {     1,  7274,  6683,  12,   8, UNI_LO }   /* category=otherletter */,
+  {    13,  1667,  1922,   5,  11, UNI_CHESSSYMBOLS }   /* blk=chesssymbols */,
+  {     0,  6165,   232,   3,   2, UNI_SC__YI }   /* sc=yi */,
+  {     3,  1102,  1635,   4,  10, UNI_WARA }   /* scx=warangciti */,
+  {     1,  1667,  2411,   4,  11, UNI_KATAKANAEXT }   /* blk=katakanaext */,
+  {     2,  1667,  5391,   4,   8, UNI_INCHEROKEE }   /* blk=cherokee */,
+  {     1,  6165,   430,   3,   3, UNI_SC__NKO }   /* sc=nko */,
+  {     0,  2432,  3364,   3,  14, UNI_MISCPICTOGRAPHS }   /* inmiscpictographs */,
+  {    17,  1409,  5848,   5,   9, UNI_LATINEXTA }   /* latinextendeda */,
+  {     2,  7591,  2991,   3,   2, UNI_LB__QU }   /* lb=qu */,
+  {    64,  1823,    55,   7,   4, UNI_CHAM }   /* script=cham */,
+  {     1,  7198,  6965,   7,  22, UNI_SUPERANDSUB }   /* blk=superscriptsandsubscripts */,
+  {     0,   309,   537,   2,   6, UNI_INTANGSA }   /* intangsa */,
+  {     1,   875,     0,   5,   0, UNI_UIDEO }   /* uideo */,
+  {     1,  7648,  1176,  17,   7, UNI_DT__NAR }   /* decompositiontype=narrow */,
+  {     1,  1823,  6081,   6,   9, UNI_SC__GEOR }   /* script=georgian */,
+  {     0,  3325,     0,   4,   0, UNI_HEBR }   /* hebr */,
+  {     0,   605,  5980,   3,   2, UNI_ideo_values_index }   /* ideo= */,
+  {     6,  1726,  8174,   8,  29, UNI_ARABICMATH }   /* isarabicmathematicalalphabeticsymbols */,
+  {     0,   309,   663,   2,   5, UNI_INLIMBU }   /* inlimbu */,
+  {     0,  7267,   199,  16,   2, UNI_TITLE }   /* generalcategory=lt */,
+  {     2,  3391,  2093,  13,   2, UNI_NV__50 }   /* numericvalue=50 */,
+  {     2,   461,  5235,   2,  20, UNI_PC }   /* isconnectorpunctuation */,
+  {     0,  2324,  1812,   6,  11, UNI_INPAHAWHHMONG }   /* block=pahawhhmong */,
+  {     0,   292,  1805,   4,   5, UNI_NV__900000 }   /* nv=900000 */,
+  {     5,  8505,  3001,   3,   7, UNI_NT__NU }   /* nt=numeric */,
+  {     0,  7591,  4206,   3,  15, UNI_LB__OP }   /* lb=openpunctuation */,
+  {     1,  2393,  5848,   8,   9, UNI_CYRILLICEXTA }   /* cyrillicextendeda */,
+  {     0,  3663,     0,   4,   0, UNI_DEVA }   /* deva */,
+  {     0,  6163,  2317,   5,   6, UNI_INSC__NUMBER }   /* insc=number */,
+  {    16,  2324,  3663,   6,  14, UNI_DEVANAGARIEXTA }   /* block=devanagariexta */,
+  {     7,  7383,  6289,   9,  12, UNI_BC__L }   /* bidiclass=lefttoright */,
+  {     0,  1667,  1509,   4,   8, UNI_INJAVANESE }   /* blk=javanese */,
+  {    16,  6165,   128,   3,   4, UNI_MEDF }   /* sc=medf */,
+  {    17,   461,  6776,   2,  11, UNI_MTEI }   /* ismeeteimayek */,
+  {     0,  2324,  5391,   6,   8, UNI_INCHEROKEE }   /* block=cherokee */,
+  {     0,  1221,  4511,   6,   9, UNI_KANAEXTB }   /* inkanaextendedb */,
+  {     1,  1667,  2302,   4,   3, UNI_INIDC }   /* blk=idc */,
+  {     1,  2988,  1795,  13,   6, UNI_NFCQC__M }   /* nfcquickcheck=maybe */,
+  {     2,  4424,  1133,  17,   4, UNI_VITH }   /* scriptextensions=vith */,
+  {     1,  8601,  4710,   7,  15, UNI_SYRIACSUP }   /* block=syriacsupplement */,
+  {     2,   461,   798,   2,   4, UNI_NBAT }   /* isnbat */,
+  {     1,  3014,  3861,  11,   2, UNI_IN__7 }   /* presentin=v70 */,
+  {     1,  1823,   112,   7,   4, UNI_KITS }   /* script=kits */,
+  {     0,  6841,   353,  25,   2, UNI_DI }   /* defaultignorablecodepoint=y */,
+  {     3,   244,     0,   4,   0, UNI_ZZZZ }   /* zzzz */,
+  {    10,  3040,  1669,  12,   2, UNI_qmark_values_index }   /* quotationmark= */,
+  {     4,   461,  1033,   2,   4, UNI_JAMO }   /* isjamo */,
+  {     1,  1667,   688,   4,   5, UNI_INBATAK }   /* blk=batak */,
+  {     0,  4424,  1385,  17,   4, UNI_THAA }   /* scriptextensions=thaa */,
+  {     0,   271,   644,   3,   2, UNI_GCB__L }   /* gcb=l */,
+  {     0,  8343,  3253,  22,  10, UNI_INSC__PUREKILLER }   /* indicsyllabiccategory=purekiller */,
+  {     0,  5216,  4698,  10,   2, UNI_LATIN1 }   /* block=latin1 */,
+  {     7,  1728,  1505,   6,   4, UNI_ARABICEXTA }   /* arabicexta */,
+  {     5,  1823,   144,   7,   4, UNI_NEWA }   /* script=newa */,
+  {     0,  1102,  1117,   4,   4, UNI_TAGB }   /* scx=tagb */,
+  {     0,  3021,   290,   5,   2, UNI_IN__14 }   /* in=v140 */,
+  {     0,  4424,  5712,  17,  19, UNI_MERO }   /* scriptextensions=meroitichieroglyphs */,
+  {     1,  6165,   333,   3,   4, UNI_CARI }   /* sc=cari */,
+  {    14,  6165,  1509,   3,   4, UNI_SC__JAVA }   /* sc=java */,
+  {     1,  1455,   599,   3,   3, -UNI_DEP }   /* dep=no */,
+  {     8,  2988,   599,  13,   2, UNI_COMPEX }   /* nfcquickcheck=n */,
+  {     6,  2324,  5682,   6,   5, UNI_INGREEK }   /* block=greek */,
+  {     3,  2324,  1556,   6,   6, UNI_ARROWS }   /* block=arrows */,
+  {     6,    19,  1104,   3,   2, UNI_ahex_values_index }   /* ahex= */,
+  {     4,  4970,   599,  13,   3, -UNI_EMOD }   /* emojimodifier=no */,
+  {     2,  1391,  5769,   3,   9, UNI_WB__EB }   /* wb=emodifier */,
+  {     0,  8276,     0,  35,   0, UNI_MISCMATHSYMBOLSB }   /* inmiscellaneousmathematicalsymbolsb */,
+  {     0,  1894,   585,   5,   5, UNI_BIDIM }   /* bidim=true */,
+  {     0,  6427,  1755,  13,   8, UNI_JG__SWASHKAF }   /* joininggroup=swashkaf */,
+  {     0,  7214,   295,  25,   1, UNI_CCC__19 }   /* canonicalcombiningclass=19 */,
+  {     1,   461,   248,   2,   2, UNI_CN }   /* iscn */,
+  {    12,  4424,  1227,  17,   4, UNI_MAKA }   /* scriptextensions=maka */,
+  {     0,   461,  6514,   2,  10, UNI_CO }   /* isprivateuse */,
+  {    10,  1409,  4533,   5,   4, UNI_LATINEXTC }   /* latinextc */,
+  {     0,   309,  1125,   2,   8, UNI_INTIFINAGH }   /* intifinagh */,
+  {     1,   461,  5532,   2,  21, UNI_CWCF }   /* ischangeswhencasefolded */,
+  {     3,   309,  1248,   2,   7, UNI_INPHAGSPA }   /* inphagspa */,
+  {     0,     8,   599,   3,   2, -UNI_PCM }   /* pcm=n */,
+  {     3,  7537,     0,  10,   0, UNI_XPOSIXALPHA }   /* alphabetic */,
+  {     0,  6427,   715,  13,   3, UNI_JG__AIN }   /* joininggroup=ain */,
+  {     3,  1102,  1543,   4,  10, UNI_KHAR }   /* scx=kharoshthi */,
+  {     0,  2422,     0,   4,   0, UNI__PERL_SURROGATE }   /* iscs */,
+  {     1,  2208,  2200,   4,   8, UNI_NV__1_SLASH_20 }   /* nv=5.000e-02 */,
+  {     2,   895,   394,   5,   2, UNI_AGE__5_DOT_1 }   /* age=v51 */,
+  {     9,  1667,  2009,   4,   6, UNI_INSYRIAC }   /* blk=syriac */,
+  {     1,  7591,  1763,   3,   8, UNI_LB__LF }   /* lb=linefeed */,
+  {     9,  7011,  2101,  24,   2, UNI_CCC__29 }   /* canonicalcombiningclass=29 */,
+  {     6,  4519,  1687,   8,   9, UNI_INCYPROMINOAN }   /* block=cyprominoan */,
+  {     1,   461,   298,   2,   2, UNI_RI }   /* isri */,
+  {     9,  3817,  1318,  15,   2, UNI_NV__1_SLASH_20 }   /* numericvalue=1/20 */,
+  {     1,  8538,  1628,  20,   7, UNI_VO__U }   /* verticalorientation=upright */,
+  {     0,  1823,  1385,   7,   4, UNI_SC__THAA }   /* script=thaa */,
+  {     1,   370,  3196,   3,   8, UNI_NO }   /* othernumber */,
+  {     0,   916,   933,   4,   7, -UNI_EBASE }   /* ebase=false */,
+  {     9,  3204,   934,  14,   6, -UNI_GREXT }   /* graphemeextend=false */,
+  {     0,   940,   353,   6,   4, UNI_COMPEX }   /* compex=yes */,
+  {     0,   533,  3001,   3,   7, UNI_SB__NU }   /* sb=numeric */,
+  {     5,  1823,    63,   7,   4, UNI_SC__CPMN }   /* script=cpmn */,
+  {     1,  2324,  6154,   6,   9, UNI_INCUNEIFORM }   /* block=cuneiform */,
+  {     0,  6165,   204,   3,   4, UNI_TFNG }   /* sc=tfng */,
+  {     1,   959,   599,   8,   3, -UNI_EXT }   /* extender=no */,
+  {     1,  2766,   252,   3,   2, UNI_CASEDLETTER }   /* gc=lc */,
+  {     2,  7267,  2768,  15,   6, UNI_C }   /* generalcategory=other */,
+  {     3,  4424,  1834,  17,  11, UNI_SORA }   /* scriptextensions=sorasompeng */,
+  {     0,  1667,  7972,   5,  15, UNI_CUNEIFORMNUMBERS }   /* blk=cuneiformnumbers */,
+  {     0,   895,   288,   6,   2, UNI_AGE__13 }   /* age=v130 */,
+  {     4,  4970,   934,  13,   6, -UNI_EMOD }   /* emojimodifier=false */,
+  {     2,  1823,   410,   7,   4, UNI_SC__GONM }   /* script=gonm */,
+  {     0,   609,  4369,   2,   8, UNI_LB__ZW }   /* lb=zwspace */,
+  {     0,  7198,  1110,   5,   7, UNI_SPECIALS }   /* blk=specials */,
+  {     0,  6165,  1853,   3,   4, UNI_SC__SYLO }   /* sc=sylo */,
+  {     5,   461,  5031,   2,  14, UNI_ROHG }   /* ishanifirohingya */,
+  {     2,  1823,   124,   7,   4, UNI_SC__LATN }   /* script=latn */,
+  {     0,  5574,     0,  21,   0, UNI_CWL }   /* changeswhenlowercased */,
+  {     0,  4602,  4150,   7,  11, UNI_PI }   /* initialpunctuation */,
+  {     5,  4360,   524,  10,   2, UNI_LB__SY }   /* linebreak=sy */,
+  {     2,  7383,  4276,  10,   3, UNI_BC__NSM }   /* bidiclass=nsm */,
+  {    11,  7591,  2017,   3,   2, UNI_LB__WJ }   /* lb=wj */,
+  {     5,  2324,  4862,   6,  18, UNI_RUMI }   /* block=ruminumeralsymbols */,
+  {     0,   461,  3276,   2,  13, UNI_ME }   /* isenclosingmark */,
+  {     2,  6450,    36,  14,   2, UNI_SB__AT }   /* sentencebreak=at */,
+  {     0,  1667,  3938,   5,  16, UNI_UCAS }   /* blk=canadiansyllabics */,
+  {     4,   309,  2692,   2,  13, UNI_VERTICALFORMS }   /* inverticalforms */,
+  {     0,   461,  3325,   2,   6, UNI_HEBR }   /* ishebrew */,
+  {     0,  7669,  4030,  19,  13, UNI_HST__NA }   /* hangulsyllabletype=notapplicable */,
+  {    18,  4360,   279,  10,   2, UNI_GCB__L }   /* linebreak=jl */,
+  {     1,  7495,   768,  27,   2, UNI_CCC__27 }   /* canonicalcombiningclass=ccc27 */,
+  {     5,  7404,     4,  11,   2, UNI_BC__RLO }   /* bidiclass=rlo */,
+  {     0,  1200,    81,   5,   2, UNI_CJKEXTG }   /* cjkextg */,
+  {     0,  1065,     0,   4,   0, UNI_NV__1 }   /* nv=1 */,
+  {     6,   895,   290,   6,   2, UNI_AGE__14 }   /* age=v140 */,
+  {     0,  7669,   202,  20,   2, UNI_LB__H3 }   /* hangulsyllabletype=lvt */,
+  {     2,  7267,  6683,  19,   8, UNI_LO }   /* generalcategory=otherletter */,
+  {     0,  1102,  1509,   4,   8, UNI_JAVA }   /* scx=javanese */,
+  {    72,  2403,     0,   8,   0, UNI_ETHI }   /* ethiopic */,
+  {     0,  2324,  8567,   7,  34, UNI_DIACRITICALSSUP }   /* block=combiningdiacriticalmarkssupplement */,
+  {     1,  5205,  2643,   5,  12, UNI_MISCTECHNICAL }   /* blk=misctechnical */,
+  {     0,   309,  8607,   2,  33, UNI_SUPMATHOPERATORS }   /* insupplementalmathematicaloperators */,
+  {     0,  7724,   353,  17,   2, UNI_VS }   /* variationselector=y */,
+  {     0,  8343,  1157,  22,   5, UNI_INSC__NUKTA }   /* indicsyllabiccategory=nukta */,
+  {     0,   309,   357,   2,   6, UNI_INCHAKMA }   /* inchakma */,
+  {     0,  6427,  1536,  13,   7, UNI_JG__THINYEH }   /* joininggroup=thinyeh */,
+  {     2,  4667,     0,  16,   0, UNI_PE }   /* closepunctuation */,
+  {     0,    71,   599,   3,   3, -UNI_CWU }   /* cwu=no */,
+  {     2,  1102,   653,   4,   5, UNI_BUHD }   /* scx=buhid */,
+  {     8,  3791,   599,   4,   3, -UNI_MATH }   /* math=no */,
+  {     1,   925,  1427,   3,   2, UNI_BPT__C }   /* bpt=c */,
+  {     1,  1819,     0,   4,   0, UNI_MONG }   /* mong */,
+  {     4,  6090,  2631,   7,  12, UNI_MAYANNUMERALS }   /* block=mayannumerals */,
+  {     0,  6165,    67,   3,   4, UNI_SC__CPRT }   /* sc=cprt */,
+  {     3,  1102,   683,   4,   4, UNI_TAKR }   /* scx=takr */,
+  {     0,  1102,  5712,   4,  19, UNI_MERO }   /* scx=meroitichieroglyphs */,
+  {     0,  6165,  1015,   3,   6, UNI_SC__TELU }   /* sc=telugu */,
+  {     3,   461,   975,   2,   8, UNI_GURU }   /* isgurmukhi */,
+  {     3,   292,  3844,   2,   4, UNI_NV__5_SLASH_8 }   /* nv=5/8 */,
+  {     0,  1618,   585,  10,   5, UNI_SD }   /* softdotted=true */,
+  {     0,  1667,  1262,   4,   7, UNI_INSOYOMBO }   /* blk=soyombo */,
+  {     9,  3013,   353,   5,   2, UNI_EPRES }   /* epres=y */,
+  {    12,  3192,     0,  12,   0, UNI_NL }   /* letternumber */,
+  {    18,  4941,  3746,   8,  14, UNI_KAKTOVIKNUMERALS }   /* block=kaktoviknumerals */,
+  {     3,  7134,     0,  26,   0, UNI_PCM }   /* prependedconcatenationmark */,
+  {     7,  1726,  5848,   8,   9, UNI_ARABICEXTA }   /* isarabicextendeda */,
+  {     0,  6427,  4228,  13,   7, UNI_JG__HEHGOAL }   /* joininggroup=hehgoal */,
+  {     0,  4191,   599,   5,   3, -UNI_XPOSIXLOWER }   /* lower=no */,
+  {     0,  7267,  4369,  15,   2, UNI_Z }   /* generalcategory=z */,
+  {     9,  7198,  8001,   5,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* blk=symbolsandpictographsextendeda */,
+  {     5,  4502,  4698,   8,  12, UNI_LATIN1 }   /* blk=latin1supplement */,
+  {     2,  3724,   783,  12,   3, UNI_JG__MALAYALAMNYA }   /* jg=malayalamnya */,
+  {     1,  6165,  1522,   3,   8, UNI_UGAR }   /* sc=ugaritic */,
+  {    17,  3502,  7915,   5,  20, UNI_ENCLOSEDALPHANUM }   /* blk=enclosedalphanumerics */,
+  {     1,   461,   806,   2,   4, UNI_SHRD }   /* isshrd */,
+  {     0,   461,  1027,   2,   4, UNI_YEZI }   /* isyezi */,
+  {     0,  1391,  1612,   3,   2, UNI_LB__LF }   /* wb=lf */,
+  {     1,   832,   934,   5,   2, -UNI_STERM }   /* sterm=f */,
+  {     0,  1102,  4002,   4,   4, UNI_MODI }   /* scx=modi */,
+  {     0,   461,   959,   2,   8, UNI_EXT }   /* isextender */,
+  {     4,  7267,   117,  16,   2, UNI_XPOSIXDIGIT }   /* generalcategory=nd */,
+  {     1,   309,  6986,   2,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* insymbolsforlegacycomputing */,
+  {     0,  4424,   442,  17,   4, UNI_ORKH }   /* scriptextensions=orkh */,
+  {     2,  3663,     0,  14,   0, UNI_DEVANAGARIEXTA }   /* devanagariexta */,
+  {     3,  6165,  4620,   3,   7, UNI_SC__LINB }   /* sc=linearb */,
+  {     0,   312,   585,   5,   5, UNI_QMARK }   /* qmark=true */,
+  {     6,  7648,   128,  18,   3, UNI_DT__MED }   /* decompositiontype=med */,
+  {    12,  6163,  5114,   5,  10, UNI_INSC__TONELETTER }   /* insc=toneletter */,
+  {     1,  1823,  2009,   7,   6, UNI_SC__SYRC }   /* script=syriac */,
+  {     3,  1906,  7443,   6,  24, UNI_KATAKANAEXT }   /* blk=katakanaphoneticextensions */,
+  {     0,  4424,   128,  17,   4, UNI_MEDF }   /* scriptextensions=medf */,
+  {     0,  1198,  6400,   5,  18, UNI_CJKRADICALSSUP }   /* incjkradicalssupplement */,
+  {     0,  6165,  1133,   3,   4, UNI_VITH }   /* sc=vith */,
+  {     0,  1823,     0,   7,   0, UNI_sc_values_index }   /* script= */,
+  {     0,  2280,   393,  10,   2, UNI_IN__15 }   /* presentin=15 */,
+  {    17,   461,  1978,   2,   4, UNI_SOGD }   /* issogd */,
+  {     0,   461,  4896,   2,   8, UNI_BAMUMSUP }   /* isbamumsup */,
+  {     2,   641,  3218,   5,  10, UNI_GCB__L }   /* hst=leadingjamo */,
+  {     0,  6487,     0,  23,   0, UNI_ZNAMENNYMUSIC }   /* znamennymusicalnotation */,
+  {     1,  5156,   959,  10,   6, UNI_WB__EXTEND }   /* wordbreak=extend */,
+  {     0,  4424,   418,  17,   4, UNI_KHMR }   /* scriptextensions=khmr */,
+  {     0,   461,  3635,   2,  14, UNI_LATINEXTD }   /* islatinextendedd */,
+  {     2,  3001,   599,  11,   5, UNI_NV__NAN }   /* numerictype=none */,
+  {     0,  2766,  1926,   3,   6, UNI_S }   /* gc=symbol */,
+  {     1,  1272,  8407,   3,  34, UNI_DIACRITICALSFORSYMBOLS }   /* iscombiningdiacriticalmarksforsymbols */,
+  {     1,  3663,   334,   7,   3, UNI_DEVA }   /* devanagari */,
+  {     0,  5156,  3191,   9,   3, UNI_WB__LE }   /* wordbreak=le */,
+  {    12,  8246,  6289,  23,   5, UNI_INPC__LEFT }   /* indicpositionalcategory=left */,
+  {     0,  7274,   535,   8,   2, UNI_S }   /* category=s */,
+  {     2,   679,  5949,   3,   4, UNI_ANY }   /* unicode */,
+  {     8,   939,     0,   5,   0, UNI_ECOMP }   /* ecomp */,
+  {     3,   461,  4926,   2,   8, UNI_TAMILSUP }   /* istamilsup */,
+  {     0,  8343,  2317,  22,   6, UNI_INSC__NUMBER }   /* indicsyllabiccategory=number */,
+  {     2,  1102,  2780,   4,   6, UNI_COPT }   /* scx=coptic */,
+  {     3,  3677,  4770,  10,  10, UNI_LATINEXTADDITIONAL }   /* islatinextadditional */,
+  {     0,  6165,   810,   3,   4, UNI_SC__SYRC }   /* sc=syrc */,
+  {    10,  2732,  4659,  10,   9, UNI_ARABICEXTC }   /* blk=arabicextendedc */,
+  {     0,  1102,   739,   4,   7, UNI_MAND }   /* scx=mandaic */,
+  {     0,  1994,   274,   7,   1, UNI_radical_values_index }   /* radical= */,
+  {     0,  4569,   352,   8,   3, UNI_XPOSIXUPPER }   /* uppercase=y */,
+  {    16,   917,     0,   8,   0, UNI_BASS }   /* bassavah */,
+  {     0,  2180,     0,  12,   0, UNI_NV__5_SLASH_12 }   /* nv=4.167e-01 */,
+  {    13,  5937,   353,  21,   2, UNI__PERL_NCHAR }   /* noncharactercodepoint=y */,
+  {     6,    53,    18,   1,   1, UNI_NB }   /* nb */,
+  {     0,  1455,   934,  10,   6, -UNI_DEP }   /* deprecated=false */,
+  {     2,  4424,  4461,  17,  11, UNI_SGNW }   /* scriptextensions=signwriting */,
+  {     0,  1075,   515,   4,   2, UNI_NV__2_SLASH_5 }   /* nv=2/5 */,
+  {     1,   461,  5916,   2,  21, UNI_LOE }   /* islogicalorderexception */,
+  {     1,  4424,  2244,  17,  12, UNI_HUNG }   /* scriptextensions=oldhungarian */,
+  {     2,  1272,  8214,   3,  24, UNI_DIACRITICALS }   /* iscombiningdiacriticalmarks */,
+  {     0,   309,   688,   2,   5, UNI_INBATAK }   /* inbatak */,
+  {     1,  4569,   934,   5,   6, -UNI_XPOSIXUPPER }   /* upper=false */,
+  {     2,   312,   353,   5,   4, UNI_QMARK }   /* qmark=yes */,
+  {     0,  1667,   333,   4,   6, UNI_INCARIAN }   /* blk=carian */,
+  {     0,  2842,  4511,  10,   9, UNI_ETHIOPICEXTB }   /* isethiopicextendedb */,
+  {     0,  4424,   470,  17,   4, UNI_TNSA }   /* scriptextensions=tnsa */,
+  {     3,  1823,   806,   7,   4, UNI_SC__SHRD }   /* script=shrd */,
+  {    11,  4176,     0,  15,   0, UNI_INHANGUL }   /* hangulsyllables */,
+  {     0,  7214,     0,  25,   0, UNI_CCC__1 }   /* canonicalcombiningclass=1 */,
+  {     3,  7274,   269,   9,   2, UNI_ZP }   /* category=zp */,
+  {     1,  1479,  3282,   4,   7, UNI_MC }   /* spacingmark */,
+  {     0,  2766,     8,   3,   1, UNI_P }   /* gc=p */,
+  {     1,   510,   764,   5,   2, UNI_NV__3_SLASH_64 }   /* nv=3/64 */,
+  {     1,  6427,  4765,  13,   5, UNI_JG__ZHAIN }   /* joininggroup=zhain */,
+  {    16,  2324,   732,   6,   7, UNI_INLINEARA }   /* block=lineara */,
+  {     6,  4424,  1212,  17,   9, UNI_QAAI }   /* scriptextensions=inherited */,
+  {    22,  2393,  1674,   8,   4, UNI_CYRILLICEXTD }   /* cyrillicextd */,
+  {     3,   339,  2165,   4,   2, UNI_CCC__33 }   /* ccc=33 */,
+  {     2,   309,   474,   2,   3, UNI_INVAI }   /* invai */,
+  {     2,  1667,   658,   4,   5, UNI_INDOGRA }   /* blk=dogra */,
+  {     0,   461,  1509,   2,   8, UNI_JAVA }   /* isjavanese */,
+  {     2,  5799,  4457,   4,  15, UNI_SUTTONSIGNWRITING }   /* insuttonsignwriting */,
+  {     1,  6076,  6945,   9,  12, UNI_GEOMETRICSHAPES }   /* block=geometricshapes */,
+  {    12,  1823,  1349,   7,   9, UNI_SC__OUGR }   /* script=olduyghur */,
+  {     5,  1494,  5863,   5,  13, UNI_GEORGIANSUP }   /* georgiansupplement */,
+  {     1,   370,  2814,   3,   8, UNI_SO }   /* othersymbol */,
+  {     2,  4424,   825,  17,   7, UNI_SHAW }   /* scriptextensions=shavian */,
+  {     0,   461,  4584,   2,  18, UNI_IDST }   /* isidstrinaryoperator */,
+  {     0,  1396,   934,   4,   2, -UNI_XIDS }   /* xids=f */,
+  {     0,  7274,   466,   9,   2, UNI_SO }   /* category=so */,
+  {     0,  3098,   598,   7,   3, -UNI_XPOSIXXDIGIT }   /* hexdigit=n */,
+  {     0,   292,   395,   3,   2, UNI_NV__16 }   /* nv=16 */,
+  {     5,   461,   406,   2,   4, UNI_DIAK }   /* isdiak */,
+  {     0,  2966,  4441,   3,  16, UNI_SMALLFORMS }   /* insmallformvariants */,
+  {     9,   339,  3403,   3,   3, UNI_CCC__23 }   /* ccc=23 */,
+  {     1,  4391,   276,  14,   1, UNI_NV__32 }   /* numericvalue=32 */,
+  {     2,  3130,  6945,   7,  20, UNI_GEOMETRICSHAPESEXT }   /* blk=geometricshapesextended */,
+  {     0,  6427,  2546,  13,   3, UNI_JG__FEH }   /* joininggroup=feh */,
+  {     0,  6870,   585,  20,   2, UNI_CE }   /* compositionexclusion=t */,
+  {     0,  1667,  1051,   4,   8, UNI_INMAHAJANI }   /* blk=mahajani */,
+  {     4,  1823,  4089,   7,   4, UNI_SC__SIND }   /* script=sind */,
+  {     4,  2324,    32,   6,   2, UNI_INVS }   /* block=vs */,
+  {     7,  1883,   353,   5,   2, UNI_BIDIC }   /* bidic=y */,
+  {     2,  6163,     0,   5,   0, UNI_insc_values_index }   /* insc= */,
+  {     3,   939,   585,   5,   5, UNI_ECOMP }   /* ecomp=true */,
+  {    35,   833,     0,   4,   0, UNI_TERM }   /* term */,
+  {     1,  6163,  5003,   5,  14, UNI_INSC__GEMINATIONMARK }   /* insc=geminationmark */,
+  {     2,  5156,    98,  10,   2, UNI_LB__HL }   /* wordbreak=hl */,
+  {     0,  2766,  1478,   3,   2, UNI_ZS }   /* gc=zs */,
+  {     1,  2287,  2080,   4,   3, UNI_IN__11 }   /* in=11.0 */,
+  {     0,  1667,  1358,   4,   9, UNI_PALM }   /* blk=palmyrene */,
+  {     1,     4,   933,   2,   3, -UNI_LOE }   /* loe=f */,
+  {     0,  2842,  5820,   3,  15, UNI_ENCLOSEDALPHANUM }   /* isenclosedalphanum */,
+  {     8,  3514,  8174,  12,  29, UNI_ARABICMATH }   /* block=arabicmathematicalalphabeticsymbols */,
+  {     1,  3021,  2084,   4,   2, UNI_IN__1_DOT_1 }   /* in=v11 */,
+  {     1,  2324,  6692,   6,  15, UNI_TRANSPORTANDMAP }   /* block=transportandmap */,
+  {     1,  7134,   934,  26,   6, -UNI_PCM }   /* prependedconcatenationmark=false */,
+  {     1,  2301,   934,   4,   6, -UNI_XIDC }   /* xidc=false */,
+  {     1,  7274,  1887,   9,   7, UNI_XPOSIXCNTRL }   /* category=control */,
+  {     2,  2523,  1479,   8,   5, UNI_XPOSIXSPACE }   /* isxposixspace */,
+  {     0,  3832,     0,  16,   0, UNI_NV__5_SLASH_8 }   /* numericvalue=5/8 */,
+  {     2,  5637,  2720,  20,   3, UNI_RI }   /* graphemeclusterbreak=ri */,
+  {     1,  4377,   353,  14,   4, UNI_DT__NONE }   /* nfkdquickcheck=yes */,
+  {     0,  1823,   499,   7,   6, UNI_LYDI }   /* script=lydian */,
+  {     2,  1667,  5838,   4,  10, UNI_JAMO }   /* blk=hanguljamo */,
+  {     0,  5574,   353,  21,   4, UNI_CWL }   /* changeswhenlowercased=yes */,
+  {     0,  1102,   590,   4,   7, UNI_DSRT }   /* scx=deseret */,
+  {     0,  1102,  3663,   4,  10, UNI_DEVA }   /* scx=devanagari */,
+  {     3,   375,     0,   5,   0, UNI_GREXT }   /* grext */,
+  {     0,   108,     0,   4,   0, UNI_KAWI }   /* kawi */,
+  {     0,   609,  5657,   2,   3, UNI_LB__ID }   /* lb=id */,
+  {     5,  6165,  1117,   3,   4, UNI_SC__TAGB }   /* sc=tagb */,
+  {    19,  7404,  6021,  21,   8, UNI_BC__RLO }   /* bidiclass=righttoleftoverride */,
+  {     8,   609,  2720,   2,   3, UNI_RI }   /* lb=ri */,
+  {     2,  1102,    74,   4,   4, UNI_CYRL }   /* scx=cyrl */,
+  {     4,     2,   599,   3,   2, -UNI_CWL }   /* cwl=n */,
+  {     1,  1198,  3611,   5,   6, UNI_CJKCOMPAT }   /* incjkcompat */,
+  {     1,  2287,   566,   3,   3, UNI_IN__9 }   /* in=9.0 */,
+  {     0,   377,   353,   3,   4, UNI_EXT }   /* ext=yes */,
+  {     0,  5637,   248,  21,   2, UNI_GCB__CN }   /* graphemeclusterbreak=cn */,
+  {     0,  5574,   585,  21,   2, UNI_CWL }   /* changeswhenlowercased=t */,
+  {     4,   292,   347,   3,   2, UNI_NV__49 }   /* nv=49 */,
+  {    19,   369,     0,   4,   0, UNI_GOTH }   /* goth */,
+  {     4,  7724,   274,  17,   1, UNI_vs_values_index }   /* variationselector= */,
+  {    46,  1102,  1592,   4,  10, UNI_SAUR }   /* scx=saurashtra */,
+  {     0,   461,  3692,   2,   7, UNI_LISUSUP }   /* islisusup */,
+  {     0,  1102,  6154,   4,   9, UNI_XSUX }   /* scx=cuneiform */,
+  {     0,  1823,   240,   7,   4, UNI_SC__ZYYY }   /* script=zyyy */,
+  {     3,   959,   585,   8,   2, UNI_EXT }   /* extender=t */,
+  {     0,  5979,    44,   3,   1, UNI_VO__U }   /* vo=u */,
+  {     0,  2324,  3421,   6,  15, UNI_NARB }   /* block=oldnortharabian */,
+  {     0,   823,   934,   4,   6, -UNI_DASH }   /* dash=false */,
+  {     6,  1823,   132,   7,   4, UNI_MTEI }   /* script=mtei */,
+  {     9,  7591,   306,   3,   2, UNI_LB__SP }   /* lb=sp */,
+  {     3,   597,  4277,   3,   5, UNI_DT__SML }   /* dt=small */,
+  {     0,   461,  1248,   2,   7, UNI_PHAG }   /* isphagspa */,
+  {     6,  4360,  2039,  10,   2, UNI_LB__BK }   /* linebreak=bk */,
+  {     0,   292,  2108,   3,   3, UNI_NV__500 }   /* nv=500 */,
+  {     0,  7669,  3599,  19,  12, UNI_GCB__T }   /* hangulsyllabletype=trailingjamo */,
+  {     0,  1823,   779,   7,   7, UNI_OSMA }   /* script=osmanya */,
+  {     1,   629,   933,   5,   7, -UNI_GRBASE }   /* grbase=false */,
+  {     0,  2525,  2060,   6,   5, UNI_XPOSIXALPHA }   /* xposixalpha */,
+  {     9,  7011,  1155,  24,   2, UNI_CCC__35 }   /* canonicalcombiningclass=35 */,
+  {     0,  2302,   353,   3,   2, UNI_IDC }   /* idc=y */,
+  {     0,  2301,   352,  10,   5, UNI_XIDC }   /* xidcontinue=yes */,
+  {     6,  5895,  6103,   5,  13, UNI_SUPMATHOPERATORS }   /* issupmathoperators */,
+  {     0,  1823,   854,   7,   7, UNI_TAVT }   /* script=taiviet */,
+  {     5,  7648,  4277,  18,   5, UNI_DT__SML }   /* decompositiontype=small */,
+  {     0,   597,  1707,   3,   3, UNI_DT__FRA }   /* dt=fra */,
+  {    10,  2665,   353,  13,   4, UNI_PATSYN }   /* patternsyntax=yes */,
+  {     0,   749,  1924,   3,   9, UNI_CHESSSYMBOLS }   /* chesssymbols */,
+  {     2,   461,  4131,   2,  15, UNI_VEDICEXT }   /* isvedicextensions */,
+  {     1,  2752,   598,  13,   3, -UNI_ECOMP }   /* emojicomponent=n */,
+  {     1,  1102,  1635,   4,   4, UNI_WARA }   /* scx=wara */,
+  {     0,  4424,   144,  17,   4, UNI_NEWA }   /* scriptextensions=newa */,
+  {     0,  6165,   673,   3,   5, UNI_OSGE }   /* sc=osage */,
+  {     0,  2002,   307,   7,   5, UNI_POSIXPRINT }   /* isposixprint */,
+  {     1,  1424,  2165,   8,   2, UNI_WB__EB }   /* ccc=ccc133 */,
+  {     0,   461,  1385,   2,   6, UNI_THAA }   /* isthaana */,
+  {     0,   461,  2360,   2,  10, UNI_CN }   /* isunassigned */,
+  {     0,  7267,  5235,  16,  20, UNI_PC }   /* generalcategory=connectorpunctuation */,
+  {     2,  1667,  1340,   4,   9, UNI_INOLDTURKIC }   /* blk=oldturkic */,
+  {     0,   271,  1612,   4,   2, UNI_LB__LF }   /* gcb=lf */,
+  {     0,   590,  6843,   2,  23, UNI_DI }   /* defaultignorablecodepoint */,
+  {     2,  8601,  1269,  10,   3, UNI_SUPPUAB }   /* block=suppuab */,
+  {     0,    19,   585,   4,   5, UNI_POSIXXDIGIT }   /* ahex=true */,
+  {     5,  3635,    81,   7,   2, UNI_LATINEXTG }   /* latinextg */,
+  {     2,  6735,   720,  22,   3, UNI_JG__MALAYALAMNNA }   /* joininggroup=malayalamnna */,
+  {     8,   552,   563,   4,   3, UNI_AGE__8 }   /* age=8.0 */,
+  {     0,  5937,   353,  21,   4, UNI__PERL_NCHAR }   /* noncharactercodepoint=yes */,
+  {     1,  1667,  4060,   4,  15, UNI_BRAI }   /* blk=braillepatterns */,
+  {     4,  1272,    60,   3,   3, UNI_CHRS }   /* ischrs */,
+  {     9,  1667,   322,   4,   5, UNI_VSSUP }   /* blk=vssup */,
+  {    10,  3130,  2773,   5,  13, UNI_INGREEK }   /* blk=greekandcoptic */,
+  {     7,   339,  6328,   4,   4, UNI_WB__EB }   /* ccc=atbl */,
+  {     3,    21,   598,   2,   2, UNI_ext_values_index }   /* ext= */,
+  {     8,  1494,   957,   6,   5, UNI_GEORGIANEXT }   /* georgianext */,
+  {     0,   693,  2814,   5,   8, UNI_SO }   /* isothersymbol */,
+  {     0,  1009,     0,   6,   0, UNI_LYCI }   /* lycian */,
+  {     0,  3791,  1926,   4,   6, UNI_SM }   /* mathsymbol */,
+  {     2,   309,  1051,   2,   8, UNI_INMAHAJANI }   /* inmahajani */,
+  {    17,   333,     0,   4,   0, UNI_CARI }   /* cari */,
+  {     6,  3817,  1317,  15,   2, UNI_NV__1_SLASH_32 }   /* numericvalue=1/32 */,
+  {     0,  4584,   934,  18,   6, -UNI_IDST }   /* idstrinaryoperator=false */,
+  {     1,  1667,  3635,   4,  14, UNI_LATINEXTD }   /* blk=latinextendedd */,
+  {     1,   461,  2692,   2,  13, UNI_VERTICALFORMS }   /* isverticalforms */,
+  {     4,   375,  2931,   4,   3, UNI_GREXT }   /* grext=t */,
+  {     4,  1492,   958,   9,   4, UNI_GEORGIANEXT }   /* ingeorgianext */,
+  {     3,  2526,     0,  10,   0, UNI_POSIXBLANK }   /* posixblank */,
+  {     0,    30,  6580,   1,  17, UNI_INDICNUMBERFORMS }   /* inindicnumberforms */,
+  {     0,  1667,  7086,   4,  24, UNI_ARABICPFB }   /* blk=arabicpresentationformsb */,
+  {     2,  1942,   584,  11,   6, UNI_GRBASE }   /* graphemebase=true */,
+  {     4,  2536,  1920,   3,   3, UNI_JG__TAH }   /* jg=tah */,
+  {     1,   461,   688,   2,   5, UNI_BATK }   /* isbatak */,
+  {     1,  4191,   352,   8,   5, UNI_XPOSIXLOWER }   /* lowercase=yes */,
+  {    12,  2766,     4,   3,   2, UNI_LO }   /* gc=lo */,
+  {     1,  2832,     0,  10,   0, UNI_CYRL }   /* iscyrillic */,
+  {     0,  3177,  3123,  15,   7, UNI_EA__N }   /* eastasianwidth=neutral */,
+  {     4,  2468,     0,   6,   0, UNI_IPAEXT }   /* ipaext */,
+  {     3,  6041,   928,  21,   2, UNI_BPT__O }   /* bidipairedbrackettype=o */,
+  {     0,   302,  4439,   4,   2, UNI_patws_values_index }   /* patws= */,
+  {     0,  2324,   779,   6,   7, UNI_INOSMANYA }   /* block=osmanya */,
+  {     8,  4424,  4896,  17,   4, UNI_BAMU }   /* scriptextensions=bamu */,
+  {     0,  3021,   288,   5,   2, UNI_IN__13 }   /* in=v130 */,
+  {     1,  6165,  1205,   3,   4, UNI_SC__GRAN }   /* sc=gran */,
+  {     2,  2514,  5107,   3,  18, UNI_MODIFIERTONELETTERS }   /* ismodifiertoneletters */,
+  {     1,   461,  1779,   2,  11, UNI_MEDF }   /* ismedefaidrin */,
+  {     1,  1667,  3649,   4,  14, UNI_PHONETICEXTSUP }   /* blk=phoneticextsup */,
+  {     0,   375,   353,   5,   4, UNI_GREXT }   /* grext=yes */,
+  {     0,   309,  7537,   2,  27, UNI_ALPHABETICPF }   /* inalphabeticpresentationforms */,
+  {    14,  3204,   585,  14,   2, UNI_GREXT }   /* graphemeextend=t */,
+  {     0,  1667,  4896,   4,  15, UNI_BAMUMSUP }   /* blk=bamumsupplement */,
+  {     2,  6427,  1540,  13,   3, UNI_JG__YEH }   /* joininggroup=yeh */,
+  {     0,  1667,  4926,   4,  15, UNI_TAMILSUP }   /* blk=tamilsupplement */,
+  {     1,   552,  2689,   4,   3, UNI_AGE__6_DOT_1 }   /* age=6.1 */,
+  {     0,  1102,   648,   4,   5, UNI_ADLM }   /* scx=adlam */,
+  {     0,  7011,   118,  24,   2, UNI_CCC__DA }   /* canonicalcombiningclass=da */,
+  {     1,  4043,   585,   4,   2, UNI_IDSB }   /* idsb=t */,
+  {     0,    54,  3726,   2,  10, UNI_SC__MLYM }   /* sc=malayalam */,
+  {     0,  2208,     0,   4,   0, UNI_NV__5 }   /* nv=5 */,
+  {     4,  3093,     0,  13,   0, UNI_POSIXXDIGIT }   /* asciihexdigit */,
+  {     1,  6165,  1117,   3,   8, UNI_SC__TAGB }   /* sc=tagbanwa */,
+  {     1,  4424,  1009,  17,   4, UNI_LYCI }   /* scriptextensions=lyci */,
+  {     1,  1454,   585,   2,   2, UNI_SD }   /* sd=t */,
+  {     0,  1102,  3954,   4,  17, UNI_AGHB }   /* scx=caucasianalbanian */,
+  {     6,  3633,  4344,   3,  16, UNI_LETTERLIKESYMBOLS }   /* inletterlikesymbols */,
+  {     0,   678,     0,   5,   0, UNI_RUNR }   /* runic */,
+  {     2,  1102,  1009,   4,   4, UNI_LYCI }   /* scx=lyci */,
+  {     3,  1198,     0,   5,   0, UNI_CJK }   /* incjk */,
+  {     3,  3490,  4511,  12,   9, UNI_CYRILLICEXTB }   /* blk=cyrillicextendedb */,
+  {     0,   261,   353,   5,   2, UNI_CWKCF }   /* cwkcf=y */,
+  {     3,   951,     0,   4,   0, UNI_DUPL }   /* dupl */,
+  {     3,   461,  4525,   2,  12, UNI_CYRILLICEXTC }   /* iscyrillicextc */,
+  {     3,  1914,     0,   7,   0, UNI_UCASEXT }   /* ucasext */,
+  {     0,  1823,   527,   7,   6, UNI_RJNG }   /* script=rejang */,
+  {     0,   406,   934,   2,   2, -UNI_DI }   /* di=f */,
+  {     0,  1198,  1966,   3,   9, UNI_COMPATJAMO }   /* incompatjamo */,
+  {     2,  2852,     0,  12,   0, UNI_MAHJONG }   /* mahjongtiles */,
+  {     2,  1530,  1037,   6,   4, UNI_KANAEXTB }   /* iskanaextb */,
+  {     0,   461,  4131,   2,   8, UNI_VEDICEXT }   /* isvedicext */,
+  {    10,  7724,   934,  17,   6, -UNI_VS }   /* variationselector=false */,
+  {     2,  5769,     0,   4,   0, UNI_EMOD }   /* emod */,
+  {    11,   925,     0,   5,   0, UNI_BPT__O }   /* bpt=o */,
+  {    13,  4424,   333,  17,   4, UNI_CARI }   /* scriptextensions=cari */,
+  {     2,  7198,  4710,   5,  15, UNI_SYRIACSUP }   /* blk=syriacsupplement */,
+  {    10,   967,     0,   8,   0, UNI_GUJR }   /* gujarati */,
+  {     9,  3633,  1505,   7,   4, UNI_LATINEXTA }   /* inlatinexta */,
+  {     3,  4424,   466,  17,   4, UNI_SOGO }   /* scriptextensions=sogo */,
+  {    10,   309,  5373,   2,  18, UNI_TAIXUANJING }   /* intaixuanjingsymbols */,
+  {    32,  1823,  1117,   7,   8, UNI_SC__TAGB }   /* script=tagbanwa */,
+  {     1,  4424,   132,  17,   4, UNI_MTEI }   /* scriptextensions=mtei */,
+  {     2,  5216,  4698,  10,   5, UNI_LATIN1 }   /* block=latin1sup */,
+  {     3,   339,  1157,   4,   5, UNI_CCC__7 }   /* ccc=nukta */,
+  {     0,   324,  4150,   3,  11, UNI_SUPPUNCTUATION }   /* suppunctuation */,
+  {     0,  3984,   934,  17,   2, -UNI_EPRES }   /* emojipresentation=f */,
+  {     1,  4424,   537,  17,   4, UNI_TANG }   /* scriptextensions=tang */,
+  {     0,   461,  3649,   2,  11, UNI_PHONETICEXT }   /* isphoneticext */,
+  {     6,  4502,  1037,   9,   4, UNI_LATINEXTB }   /* blk=latinextb */,
+  {     1,   309,  3663,   2,  14, UNI_DEVANAGARIEXTA }   /* indevanagariexta */,
+  {     0,   339,  3147,   4,   5, UNI_CCC__A }   /* ccc=above */,
+  {     8,  2324,  5392,   7,  17, UNI_CHEROKEESUP }   /* block=cherokeesupplement */,
+  {     1,  2232,  1805,   4,   5, UNI_NV__800000 }   /* nv=800000 */,
+  {     0,  2494,  5800,   9,  11, UNI_GEORGIANSUP }   /* isgeorgiansupplement */,
+  {    28,  6090,  1553,   7,   9, UNI_MISCARROWS }   /* block=miscarrows */,
+  {    16,   461,  2362,   2,   8, UNI_ASSIGNED }   /* isassigned */,
+  {     2,  2766,   330,   3,   2, UNI_PD }   /* gc=pd */,
+  {     0,   309,  4536,   2,  18, UNI_COPTICEPACTNUMBERS }   /* incopticepactnumbers */,
+  {     1,  5216,  1674,  11,   4, UNI_LATINEXTD }   /* block=latinextd */,
+  {     2,  7752,  5047,  23,   6, UNI_JG__MANICHAEANDALETH }   /* joininggroup=manichaeandaleth */,
+  {     3,  1667,   818,   4,   7, UNI_SC__SHRD }   /* blk=sharada */,
+  {    10,  5065,  4247,  13,   4, UNI_JG__MANICHAEANKAPH }   /* jg=manichaeankaph */,
+  {    32,  3514,  6193,  10,   5, UNI_ARABICSUP }   /* block=arabicsup */,
+  {     3,  1883,   599,   5,   3, -UNI_BIDIC }   /* bidic=no */,
+  {     0,   309,   678,   2,   5, UNI_INRUNIC }   /* inrunic */,
+  {     0,  2718,     4,   4,   2, UNI_BC__RLO }   /* bc=rlo */,
+  {    13,  1667,  5876,   4,  12, UNI_SUNDANESESUP }   /* blk=sundanesesup */,
+  {     7,  4519,  4659,  14,   9, UNI_CYRILLICEXTC }   /* block=cyrillicextendedc */,
+  {     9,  2766,  3554,   3,  13, UNI_ZL }   /* gc=lineseparator */,
+  {     1,  2324,  4533,   9,   4, UNI_CJKEXTC }   /* block=cjkextc */,
+  {     0,  3677,     0,  11,   0, UNI_LATINEXTE }   /* islatinexte */,
+  {     2,  1823,  1090,   7,   4, UNI_SC__LINB }   /* script=linb */,
+  {     0,  1667,   377,   7,   4, UNI_CJKEXTH }   /* blk=cjkexth */,
+  {     0,   454,     0,   4,   0, UNI_PRTI }   /* prti */,
+  {    18,  1823,  4896,   7,   5, UNI_BAMU }   /* script=bamum */,
+  {     9,   309,  6120,   2,  22, UNI_DIACRITICALSFORSYMBOLS }   /* indiacriticalsforsymbols */,
+  {     2,   461,  5838,   2,  19, UNI_JAMOEXTA }   /* ishanguljamoextendeda */,
+  {     3,  1438,     0,  10,   0, UNI_CHRS }   /* chorasmian */,
+  {     3,  2514,  1553,   3,   9, UNI_MISCARROWS }   /* ismiscarrows */,
+  {     0,  3663,     0,  13,   0, UNI_DEVANAGARIEXT }   /* devanagariext */,
+  {    11,    19,  1104,   3,   3, UNI_POSIXXDIGIT }   /* ahex=t */,
+  {     5,  1942,     0,  12,   0, UNI_GRBASE }   /* graphemebase */,
+  {     1,  6165,   168,   3,   4, UNI_SC__COPT }   /* sc=qaac */,
+  {    35,   461,  1248,   2,   4, UNI_PHAG }   /* isphag */,
+  {     1,  6165,   317,   3,   5, UNI_SC__TALE }   /* sc=taile */,
+  {     0,  1667,   991,   4,   6, UNI_INHATRAN }   /* blk=hatran */,
+  {     0,  6165,  1635,   3,   4, UNI_WARA }   /* sc=wara */,
+  {     0,   629,   933,   5,   3, -UNI_GRBASE }   /* grbase=f */,
+  {     1,  3817,   520,  14,   1, UNI_NV__17 }   /* numericvalue=17 */,
+  {     0,  2732,  1505,  10,   4, UNI_ARABICEXTA }   /* blk=arabicexta */,
+  {     1,  6165,    55,   3,   4, UNI_CHAM }   /* sc=cham */,
+  {     0,  7267,     8,  16,   2, UNI_PC }   /* generalcategory=pc */,
+  {     0,   461,  4487,   2,   6, UNI_ZYYY }   /* iscommon */,
+  {    17,  5205,  2046,   5,  11, UNI_INMASARAMGONDI }   /* blk=masaramgondi */,
+  {     0,  7198,  5149,   7,   7, UNI_SUPARROWSA }   /* blk=suparrowsa */,
+  {     0,  4161,   585,   9,   5, UNI_DIA }   /* diacritic=true */,
+  {     0,   461,  1133,   2,   4, UNI_VITH }   /* isvith */,
+  {     0,  6165,   880,   3,   7, UNI_ZZZZ }   /* sc=unknown */,
+  {    30,   461,  1349,   2,   9, UNI_OUGR }   /* isolduyghur */,
+  {     0,  7383,   305,  10,   2, UNI_BC__WS }   /* bidiclass=ws */,
+  {     0,  2280,   890,   9,   5, UNI_IN__10 }   /* presentin=10.0 */,
+  {     2,  7892,   585,  16,   2, UNI_UIDEO }   /* unifiedideograph=t */,
+  {     5,  2718,  7776,   3,  21, UNI_BC__PDI }   /* bc=popdirectionalisolate */,
+  {     1,  1823,  4740,   7,   4, UNI_SC__TALE }   /* script=tale */,
+  {     0,  1522,     0,   8,   0, UNI_UGAR }   /* ugaritic */,
+  {     6,  5658,  6890,  15,  10, UNI_IDENTIFIERTYPE__LIMITEDUSE }   /* identifiertype=limiteduse */,
+  {     6,   590,     0,   7,   0, UNI_DSRT }   /* deseret */,
+  {     0,  1102,   244,   4,   4, UNI_ZZZZ }   /* scx=zzzz */,
+  {     0,  1198,  6400,   5,  11, UNI_CJKRADICALSSUP }   /* incjkradicalssup */,
+  {     1,  1065,   769,   4,   3, UNI_NV__17_SLASH_2 }   /* nv=17/2 */,
+  {     1,  4407,   599,  17,   3, -UNI_RI }   /* regionalindicator=no */,
+  {     1,  1823,   220,   7,   4, UNI_WCHO }   /* script=wcho */,
+  {     0,  4407,   599,  17,   2, -UNI_RI }   /* regionalindicator=n */,
+  {    16,  1391,   366,   3,   2, UNI_WB__SQ }   /* wb=sq */,
+  {     1,  7752,  5053,  23,   6, UNI_JG__MANICHAEANLAMEDH }   /* joininggroup=manichaeanlamedh */,
+  {     3,  2678,  2083,  11,   2, UNI_IN__5_DOT_1 }   /* presentin=5.1 */,
+  {     4,   552,  2155,   4,   3, UNI_AGE__3_DOT_1 }   /* age=3.1 */,
+  {     0,  1823,  2780,   7,   4, UNI_SC__COPT }   /* script=copt */,
+  {     0,  6090,  5107,   7,  18, UNI_MODIFIERTONELETTERS }   /* block=modifiertoneletters */,
+  {    19,  4970,   585,  13,   5, UNI_EMOD }   /* emojimodifier=true */,
+  {     6,  4424,   983,  17,   4, UNI_HIRA }   /* scriptextensions=hira */,
+  {     9,  2244,     0,  12,   0, UNI_HUNG }   /* oldhungarian */,
+  {     2,   461,   369,   2,   4, UNI_GOTH }   /* isgoth */,
+  {     1,  5637,  3463,  21,  12, UNI_WB__EB }   /* graphemeclusterbreak=glueafterzwj */,
+  {     0,   309,  5391,   2,   8, UNI_INCHEROKEE }   /* incherokee */,
+  {     2,  2060,   934,   5,   6, -UNI_XPOSIXALPHA }   /* alpha=false */,
+  {     0,   369,     0,   6,   0, UNI_GOTH }   /* gothic */,
+  {     1,   380,  2288,   5,   2, UNI_hyphen_values_index }   /* hyphen= */,
+  {     0,  1102,  2811,   4,   5, UNI_KHMR }   /* scx=khmer */,
+  {     0,  1667,  1975,   4,  10, UNI_INOLDSOGDIAN }   /* blk=oldsogdian */,
+  {     0,   876,     0,   4,   0, UNI_IDEO }   /* ideo */,
+  {     4,  2280,   549,  11,   3, UNI_IN__14 }   /* presentin=14.0 */,
+  {     7,   292,  1313,   3,   3, UNI_NV__600 }   /* nv=600 */,
+  {     1,  1424,   393,   7,   2, UNI_CCC__15 }   /* ccc=ccc15 */,
+  {     0,  6586,     0,  11,   0, UNI_NUMBERFORMS }   /* numberforms */,
+  {     0,  1667,  3163,   5,  14, UNI_CONTROLPICTURES }   /* blk=controlpictures */,
+  {     7,  3514,  4531,  10,   6, UNI_ARABICEXTC }   /* block=arabicextc */,
+  {     0,  4424,  1021,  17,   6, UNI_WCHO }   /* scriptextensions=wancho */,
+  {     6,   668,     0,   5,   0, UNI_OGAM }   /* ogham */,
+  {    10,  8246,  6635,  27,   7, UNI_INPC__TOPANDLEFT }   /* indicpositionalcategory=topandleft */,
+  {     8,  1914,     0,   8,   0, UNI_UCASEXTA }   /* ucasexta */,
+  {     0,  7752,  4243,  23,   4, UNI_JG__MANICHAEANHETH }   /* joininggroup=manichaeanheth */,
+  {     2,  1883,   599,   5,   2, -UNI_BIDIC }   /* bidic=n */,
+  {     1,  7274,   115,   9,   2, UNI_SK }   /* category=sk */,
+  {    13,    30,  5711,   1,   5, UNI_MERO }   /* ismero */,
+  {     3,  6427,  2864,  13,  11, UNI_JG__ROHINGYAYEH }   /* joininggroup=rohingyayeh */,
+  {     4,  5616,   585,  21,   2, UNI_CWU }   /* changeswhenuppercased=t */,
+  {     0,  3391,  1803,  12,   6, UNI_NV__10000 }   /* numericvalue=10000 */,
+  {     1,   339,   768,   4,   2, UNI_CCC__27 }   /* ccc=27 */,
+  {     0,    98,     0,   4,   0, UNI_HLUW }   /* hluw */,
+  {     3,   309,  4911,   2,  15, UNI_DIACRITICALSSUP }   /* indiacriticalssup */,
+  {    35,  6427,  3012,  12,   2, UNI_JG__E }   /* joininggroup=e */,
+  {     0,  4407,   934,  17,   6, -UNI_RI }   /* regionalindicator=false */,
+  {    16,  3514,  5848,  12,   9, UNI_ARABICEXTA }   /* block=arabicextendeda */,
+  {     1,  3001,   590,  12,   2, UNI_XPOSIXDIGIT }   /* numerictype=de */,
+  {     2,   716,  4272,   3,  16, UNI_INKHITANSMALLSCRIPT }   /* inkhitansmallscript */,
+  {     0,  4360,  5090,   9,   3, UNI_LB__CL }   /* linebreak=cl */,
+  {     6,  4424,  3663,  17,  10, UNI_DEVA }   /* scriptextensions=devanagari */,
+  {     1,   154,  6945,   3,  12, UNI_GEOMETRICSHAPES }   /* geometricshapes */,
+  {    19,  7011,  7387,  18,   7, UNI_CCC__L }   /* canonicalcombiningclass=l */,
+  {     0,   461,  1819,   2,   4, UNI_MONG }   /* ismong */,
+  {     1,  5769,   585,   4,   2, UNI_EMOD }   /* emod=t */,
+  {     4,  4424,  1015,  17,   6, UNI_TELU }   /* scriptextensions=telugu */,
+  {     0,   461,  2852,   2,  12, UNI_MAHJONG }   /* ismahjongtiles */,
+  {     2,  1243,  4523,   2,  14, UNI_CYRILLICEXTC }   /* blk=cyrillicextc */,
+  {     0,  1823,  1367,   7,   9, UNI_PAUC }   /* script=paucinhau */,
+  {     0,   461,  6324,   2,   6, UNI_CF }   /* isformat */,
+  {     0,  7267,  2360,  16,  10, UNI_CN }   /* generalcategory=unassigned */,
+  {     0,   309,   519,   2,   2, UNI_IN__7 }   /* in=7 */,
+  {     1,  7648,    51,  18,   3, UNI_DT__CAN }   /* decompositiontype=can */,
+  {     0,  1667,  1027,   4,   6, UNI_INYEZIDI }   /* blk=yezidi */,
+  {    14,  1065,  1318,   5,   2, UNI_NV__1_SLASH_20 }   /* nv=1/20 */,
+  {     0,     2,   353,   3,   2, UNI_CWL }   /* cwl=y */,
+  {     0,  5769,   585,   4,   5, UNI_EMOD }   /* emod=true */,
+  {     0,  7274,   106,   9,   2, UNI_ZL }   /* category=zl */,
+  {     0,  7537,   599,  10,   3, -UNI_XPOSIXALPHA }   /* alphabetic=no */,
+  {    21,  7724,     0,  17,   0, UNI_VS }   /* variationselector */,
+  {     3,  6163,  3257,  14,   6, UNI_INSC__CONSONANTKILLER }   /* insc=consonantkiller */,
+  {    38,  5373,     0,  18,   0, UNI_TAIXUANJING }   /* taixuanjingsymbols */,
+  {     0,  4391,  6263,  14,   8, UNI_NV__1_SLASH_320 }   /* numericvalue=3.125e-03 */,
+  {     6,  2536,  2549,   3,  10, UNI_JG__DALATHRISH }   /* jg=dalathrish */,
+  {    18,   380,   353,   6,   4, UNI_HYPHEN }   /* hyphen=yes */,
+  {     0,  1102,  3349,   4,   4, UNI_MERO }   /* scx=mero */,
+  {    13,  6870,     0,  20,   0, UNI_CE }   /* compositionexclusion */,
+  {     4,  1102,   725,   4,   7, UNI_KALI }   /* scx=kayahli */,
+  {     3,  1734,  4441,   3,  16, UNI_SMALLFORMS }   /* issmallformvariants */,
+  {     2,  6450,     0,  14,   0, UNI_sb_values_index }   /* sentencebreak= */,
+  {     4,  1823,   474,   7,   4, UNI_VAI }   /* script=vaii */,
+  {     0,   309,  6586,   2,  11, UNI_NUMBERFORMS }   /* innumberforms */,
+  {     1,  2324,  1853,   6,  11, UNI_INSYLOTINAGRI }   /* block=sylotinagri */,
+  {     0,   257,   599,   4,   3, -UNI_CWCM }   /* cwcm=no */,
+  {     7,  1479,  3558,   5,   9, UNI_ZS }   /* spaceseparator */,
+  {     0,  2483,   353,   5,   4, UNI_CASED }   /* cased=yes */,
+  {     5,  2302,   584,   9,   3, UNI_IDC }   /* idcontinue=t */,
+  {     0,  6841,   934,  25,   2, -UNI_DI }   /* defaultignorablecodepoint=f */,
+  {     2,   309,  4651,   2,  16, UNI_BOPOMOFOEXT }   /* inbopomofoextended */,
+  {     0,  7267,  4554,  16,  15, UNI_TITLE }   /* generalcategory=titlecaseletter */,
+  {     1,   406,   934,   3,   6, -UNI_DIA }   /* dia=false */,
+  {     1,  1391,     0,   3,   0, UNI_wb_values_index }   /* wb= */,
+  {     0,  6165,   991,   3,   6, UNI_HATR }   /* sc=hatran */,
+  {     0,  1102,  1978,   4,   4, UNI_SOGD }   /* scx=sogd */,
+  {     1,  6163,  5762,   5,  16, UNI_INSC__SYLLABLEMODIFIER }   /* insc=syllablemodifier */,
+  {     1,  1667,  6185,   4,  20, UNI_GLAGOLITICSUP }   /* blk=glagoliticsupplement */,
+  {     0,  1075,  1805,   4,   5, UNI_NV__200000 }   /* nv=200000 */,
+  {     3,  1823,  1592,   7,   4, UNI_SAUR }   /* script=saur */,
+  {     2,  6618,  4107,  11,  12, UNI_INPC__TOPANDLEFTANDRIGHT }   /* inpc=topandleftandright */,
+  {     2,  6062,  4511,  14,   9, UNI_ETHIOPICEXTB }   /* block=ethiopicextendedb */,
+  {    17,  1102,  5778,   4,  21, UNI_PRTI }   /* scx=inscriptionalparthian */,
+  {     0,  7724,   585,  17,   5, UNI_VS }   /* variationselector=true */,
+  {     2,    16,  2370,   1,  12, UNI_GREEKEXT }   /* greekextended */,
+  {     2,  6236,  1805,  17,   7, UNI_NV__10000000000 }   /* numericvalue=10000000000 */,
+  {     0,  7011,  1070,  24,   2, UNI_CCC__31 }   /* canonicalcombiningclass=31 */,
+  {     2,  7011,  1432,  24,   6, UNI_CCC__9 }   /* canonicalcombiningclass=virama */,
+  {     1,  2220,  6279,   4,   8, UNI_NV__1_SLASH_160 }   /* nv=6.250e-03 */,
+  {     0,  5799,  7707,  13,  17, UNI_SUPPUAB }   /* insupplementaryprivateuseareab */,
+  {     4,  1942,   933,  11,   7, -UNI_GRBASE }   /* graphemebase=false */,
+  {     0,  1223,  4511,   4,   9, UNI_KANAEXTB }   /* kanaextendedb */,
+  {     0,  1823,  1227,   7,   7, UNI_MAKA }   /* script=makasar */,
+  {     3,  2401,  4511,  10,   9, UNI_ETHIOPICEXTB }   /* inethiopicextendedb */,
+  {     1,  2766,  4667,   3,  16, UNI_PE }   /* gc=closepunctuation */,
+  {     7,  4424,  1209,  17,   4, UNI_THAI }   /* scriptextensions=thai */,
+  {     0,  7724,     0,  18,   0, UNI_INVS }   /* variationselectors */,
+  {     0,  4795,     0,  14,   0, UNI_NV__6 }   /* numericvalue=6 */,
+  {     2,   339,  3971,   4,  13, UNI_CCC__IS }   /* ccc=iotasubscript */,
+  {     3,  4424,  1367,  17,   4, UNI_PAUC }   /* scriptextensions=pauc */,
+  {     0,   461,   255,   2,   2, UNI_CF }   /* iscf */,
+  {     0,  2280,   560,  10,   3, UNI_IN__7 }   /* presentin=7.0 */,
+  {     0,  7383,    52,  10,   2, UNI_BC__AN }   /* bidiclass=an */,
+  {     1,   461,  3192,   2,  12, UNI_NL }   /* isletternumber */,
+  {     1,  2324,   144,   6,   4, UNI_INNEWA }   /* block=newa */,
+  {     0,  4424,  2735,  16,   5, UNI_ARAB }   /* scriptextensions=arab */,
+  {     4,  5205,  7620,   5,  19, UNI_MISCSYMBOLS }   /* blk=miscellaneoussymbols */,
+  {     0,  5553,   599,  21,   3, -UNI_CWCM }   /* changeswhencasemapped=no */,
+  {     1,  6165,     0,   3,   0, UNI_sc_values_index }   /* sc= */,
+  {     1,   461,  3263,   2,  13, UNI_XPOSIXDIGIT }   /* isdecimalnumber */,
+  {     0,  2018,  2579,  12,  10, UNI_JT__U }   /* joiningtype=nonjoining */,
+  {     1,  3817,  1317,  15,   3, UNI_NV__1_SLASH_320 }   /* numericvalue=1/320 */,
+  {     5,  2324,   909,   6,   8, UNI_INBALINESE }   /* block=balinese */,
+  {     2,  2966,  6671,   3,  21, UNI_MODIFIERLETTERS }   /* inspacingmodifierletters */,
+  {     0,  2324,  6581,   6,  16, UNI_INDICNUMBERFORMS }   /* block=indicnumberforms */,
+  {     0,  6163,  1157,   5,   5, UNI_INSC__NUKTA }   /* insc=nukta */,
+  {     3,  6165,   136,   3,   4, UNI_SC__MYMR }   /* sc=mymr */,
+  {     1,   597,  6116,   3,   4, UNI_DT__FONT }   /* dt=font */,
+  {     1,   461,  5373,   2,  11, UNI_TAIXUANJING }   /* istaixuanjing */,
+  {     4,  6165,   184,   3,   4, UNI_SAMR }   /* sc=samr */,
+  {     0,  8601,  6965,   9,  22, UNI_SUPERANDSUB }   /* block=superscriptsandsubscripts */,
+  {     0,  3724,   720,  13,   3, UNI_JG__MALAYALAMNNNA }   /* jg=malayalamnnna */,
+  {     9,  3791,   585,   4,   2, UNI_MATH }   /* math=t */,
+  {     7,  2002,   308,   3,   4, UNI_XPOSIXPRINT }   /* isprint */,
+  {     8,  1667,  5125,   4,  19, UNI_OTTOMANSIYAQNUMBERS }   /* blk=ottomansiyaqnumbers */,
+  {    22,  2324,  7972,   7,  15, UNI_CUNEIFORMNUMBERS }   /* block=cuneiformnumbers */,
+  {     0,  1667,   474,   4,   3, UNI_INVAI }   /* blk=vai */,
+  {     0,  4424,  1812,  17,  11, UNI_HMNG }   /* scriptextensions=pahawhhmong */,
+  {     7,  7648,  6116,  18,   4, UNI_DT__FONT }   /* decompositiontype=font */,
+  {     0,  8343,  1985,  22,   7, UNI_INSC__VISARGA }   /* indicsyllabiccategory=visarga */,
+  {     1,  6165,  1015,   3,   4, UNI_SC__TELU }   /* sc=telu */,
+  {     9,  2301,   934,   4,   2, -UNI_XIDC }   /* xidc=f */,
+  {     9,  1421,  2370,   3,  12, UNI_GREEKEXT }   /* ingreekextended */,
+  {     1,  4424,   204,  17,   4, UNI_TFNG }   /* scriptextensions=tfng */,
+  {     0,  4970,  5671,  16,   3, -UNI_EBASE }   /* emojimodifierbase=n */,
+  {     8,  2718,  3924,   3,  14, UNI_BC__EN }   /* bc=europeannumber */,
+  {     4,  1007,  3570,   3,  13, UNI_HALFANDFULLFORMS }   /* halfandfullforms */,
+  {     0,  6165,   430,   3,   4, UNI_SC__NKO }   /* sc=nkoo */,
+  {    11,  4131,     0,   8,   0, UNI_VEDICEXT }   /* vedicext */,
+  {     1,  1397,   598,   3,   4, -UNI_IDST }   /* idst=no */,
+  {    21,  1391,  3472,   3,   3, UNI_LB__ZWJ }   /* wb=zwj */,
+  {     0,   533,   832,   3,   5, UNI_SB__ST }   /* sb=sterm */,
+  {     0,   716,     0,   9,   0, UNI_INKANNADA }   /* inkannada */,
+  {     3,  6165,   608,   3,   7, UNI_ELBA }   /* sc=elbasan */,
+  {     0,  8343,     0,  31,   0, UNI_INSC__CONSONANT }   /* indicsyllabiccategory=consonant */,
+  {     2,  3391,  2106,  13,   9, UNI_NV__3_SLASH_2 }   /* numericvalue=1.500e+00 */,
+  {     5,   339,   119,   4,   2, UNI_CCC__AL }   /* ccc=al */,
+  {     0,  7804,   599,  11,   3, -UNI_IDEO }   /* ideographic=no */,
+  {    14,  1397,     0,   4,   0, UNI_IDST }   /* idst */,
+  {     0,  2324,  6797,   6,  19, UNI_DEVANAGARIEXTA }   /* block=devanagariextendeda */,
+  {     3,  1823,  1051,   7,   8, UNI_SC__MAHJ }   /* script=mahajani */,
+  {     0,  1667,     5,   4,   3, UNI_OCR }   /* blk=ocr */,
+  {     0,  1455,   585,  10,   2, UNI_DEP }   /* deprecated=t */,
+  {     8,  1200,     0,   3,   0, UNI_CJK }   /* cjk */,
+  {     4,  3502,  4952,   5,  18, UNI_INEGYPTIANHIEROGLYPHS }   /* blk=egyptianhieroglyphs */,
+  {     0,   461,   225,   2,   2, UNI_PE }   /* ispe */,
+  {     3,  1198,  1448,   5,   7, UNI_CJKSTROKES }   /* incjkstrokes */,
+  {     0,  1234,     0,   4,   0, UNI_MULT }   /* mult */,
+  {     0,   622,   598,   6,   4, -UNI_EXTPICT }   /* extpict=no */,
+  {     0,  2523,   229,   3,   3, UNI_XSUX }   /* isxsux */,
+  {     5,  7591,  7537,   3,  10, UNI_LB__AL }   /* lb=alphabetic */,
+  {     1,  2068,     0,  12,   0, UNI_MEND }   /* mendekikakui */,
+  {     0,  2302,   599,  10,   3, -UNI_IDC }   /* idcontinue=no */,
+  {    18,  2002,   161,   3,   3, UNI_PHLP }   /* isphlp */,
+  {     0,  1823,  3475,   7,  15, UNI_ZANB }   /* script=zanabazarsquare */,
+  {     0,  4424,  3493,  16,   9, UNI_CYRL }   /* scriptextensions=cyrillic */,
+  {     3,   309,  6185,   2,  10, UNI_INGLAGOLITIC }   /* inglagolitic */,
+  {     3,  1272,  1966,   3,   9, UNI_COMPATJAMO }   /* iscompatjamo */,
+  {     9,   309,  1914,   2,   7, UNI_UCASEXT }   /* inucasext */,
+  {     5,  1530,  3622,   5,   3, UNI_KANGXI }   /* iskangxi */,
+  {    18,  2018,  2897,  12,  11, UNI_JT__D }   /* joiningtype=dualjoining */,
+  {     0,   461,   380,   2,   6, UNI_HYPHEN }   /* ishyphen */,
+  {     2,  2481,  6848,   6,   9, UNI_CI }   /* iscaseignorable */,
+  {    44,  6427,  4263,  13,   4, UNI_JG__QAPH }   /* joininggroup=qaph */,
+  {     3,  3391,  1803,  12,   5, UNI_NV__1000 }   /* numericvalue=1000 */,
+  {    18,    30,    78,   1,   2, UNI_IDS }   /* ids */,
+  {     9,    10,  3788,   1,  15, UNI_MISCMATHSYMBOLSA }   /* miscmathsymbolsa */,
+  {     0,   959,   585,   8,   5, UNI_EXT }   /* extender=true */,
+  {     0,  1102,  3505,   3,   5, UNI_ETHI }   /* scx=ethi */,
+  {     0,  2732,  4987,   5,  16, UNI_ALCHEMICAL }   /* blk=alchemicalsymbols */,
+  {    16,  7267,  3101,  16,   5, UNI_XPOSIXDIGIT }   /* generalcategory=digit */,
+  {     0,  7267,  3634,  16,   2, UNI_NL }   /* generalcategory=nl */,
+  {    44,  6165,  4271,   3,  17, UNI_KITS }   /* sc=khitansmallscript */,
+  {     0,  2324,  6400,   9,  11, UNI_CJKRADICALSSUP }   /* block=cjkradicalssup */,
+  {     6,  2208,  2107,   4,   8, UNI_NV__11_SLASH_2 }   /* nv=5.500e+00 */,
+  {     3,  1823,   951,   7,   4, UNI_SC__DUPL }   /* script=dupl */,
+  {     1,  1102,    27,   4,   4, UNI_ARMI }   /* scx=armi */,
+  {     0,  3724,  1144,  12,   3, UNI_JG__MALAYALAMBHA }   /* jg=malayalambha */,
+  {     8,   571,     0,   7,   0, UNI_AVST }   /* avestan */,
+  {     1,  2536,  4247,   3,   4, UNI_JG__KAPH }   /* jg=kaph */,
+  {     1,  2514,  8039,   3,  32, UNI_MISCMATHSYMBOLSA }   /* ismiscellaneousmathematicalsymbolsa */,
+  {     0,  2324,   317,   6,   5, UNI_INTAILE }   /* block=taile */,
+  {     0,  1102,  4060,   4,   7, UNI_BRAI }   /* scx=braille */,
+  {     0,    30,  4190,   1,   6, UNI_XPOSIXLOWER }   /* islower */,
+  {    18,   461,  1954,   2,  12, UNI_GONG }   /* isgunjalagondi */,
+  {     0,  3633,     0,  11,   0, UNI_LATINEXTE }   /* inlatinexte */,
+  {     2,  6427,  1041,  13,   5, UNI_JG__GAMAL }   /* joininggroup=gamal */,
+  {     0,  3378,  2327,  11,   3, UNI_nfdqc_values_index }   /* nfdquickcheck= */,
+  {     1,  2393,  7467,   8,  13, UNI_CYRILLICSUP }   /* cyrillicsupplementary */,
+  {     6,  5958,     0,   7,   0, UNI_SINH }   /* sinhala */,
+  {     1,  2766,  3026,   3,   2, UNI_PS }   /* gc=ps */,
+  {     2,  1102,   236,   4,   4, UNI_ZANB }   /* scx=zanb */,
+  {     5,  1102,  5208,   3,   8, UNI_MYMR }   /* scx=myanmar */,
+  {     0,  2536,   702,   3,   4, UNI_JG__NOON }   /* jg=noon */,
+  {     1,  5895,  7707,  13,  17, UNI_SUPPUAB }   /* issupplementaryprivateuseareab */,
+  {     1,  3514,  1141,  12,   3, UNI_ARABICPFA }   /* block=arabicpfa */,
+  {     8,  1198,  6557,   5,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* incjkcompatideographs */,
+  {     3,  3803,   353,  14,   4, UNI_NFKCQC__Y }   /* nfkcquickcheck=yes */,
+  {     0,  6165,   909,   3,   8, UNI_BALI }   /* sc=balinese */,
+  {     0,  2766,  4554,   3,  15, UNI_TITLE }   /* gc=titlecaseletter */,
+  {     0,  2391,  4511,  10,   9, UNI_CYRILLICEXTB }   /* incyrillicextendedb */,
+  {     0,   339,  1243,   4,   2, UNI_CCC__BL }   /* ccc=bl */,
+  {     1,  5637,    21,  21,   2, UNI_GCB__EX }   /* graphemeclusterbreak=ex */,
+  {     0,  2525,  4569,   6,   5, UNI_XPOSIXUPPER }   /* xposixupper */,
+  {     5,  6041,  2025,  17,   5, UNI_bpt_values_index }   /* bidipairedbrackettype= */,
+  {     0,   823,   353,   4,   2, UNI_DASH }   /* dash=y */,
+  {     0,    19,   934,   4,   6, -UNI_POSIXXDIGIT }   /* ahex=false */,
+  {     3,  7274,    65,   9,   2, UNI_MN }   /* category=mn */,
+  {     2,  7752,  5059,  23,   6, UNI_JG__MANICHAEANSAMEKH }   /* joininggroup=manichaeansamekh */,
+  {     1,    94,     0,   4,   0, UNI_GURU }   /* guru */,
+  {     1,  4424,  1303,  17,   9, UNI_TALU }   /* scriptextensions=newtailue */,
+  {     4,   832,   599,   5,   2, -UNI_STERM }   /* sterm=n */,
+  {     3,  1102,  1322,   4,   9, UNI_ITAL }   /* scx=olditalic */,
+  {     0,  1823,  5876,   7,   4, UNI_SUND }   /* script=sund */,
+  {     8,  1667,   678,   4,   5, UNI_INRUNIC }   /* blk=runic */,
+  {     0,  5205,  1037,  11,   4, UNI_MYANMAREXTB }   /* blk=myanmarextb */,
+  {     3,    33,  1110,   1,   7, UNI_SPECIALS }   /* specials */,
+  {     1,  2536,   484,   3,   3, UNI_JG__HAH }   /* jg=hah */,
+  {     0,  2324,  8474,   9,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* block=cjkcompatibilityideographs */,
+  {     0,    15,  3859,   2,   3, UNI_AGE__7 }   /* age=7 */,
+  {     2,  2324,    81,  11,   2, UNI_CJKEXTG }   /* block=cjkextg */,
+  {     2,  3391,  2098,  13,   9, UNI_NV__1_SLASH_7 }   /* numericvalue=1.429e-01 */,
+  {     1,  6165,  2441,   3,   4, UNI_SC__NAND }   /* sc=nand */,
+  {     0,   333,     0,   6,   0, UNI_CARI }   /* carian */,
+  {     0,  7267,   313,  16,   4, UNI_M }   /* generalcategory=mark */,
+  {     0,   309,  7564,   2,  17, UNI_ANCIENTGREEKMUSIC }   /* inancientgreekmusic */,
+  {     0,  7011,  1157,  24,   5, UNI_CCC__7 }   /* canonicalcombiningclass=nukta */,
+  {     0,  2514,  1235,   3,   6, UNI_MULT }   /* ismultani */,
+  {     3,  3817,   288,  14,   1, UNI_NV__13 }   /* numericvalue=13 */,
+  {     3,  1667,  1834,   4,  11, UNI_INSORASOMPENG }   /* blk=sorasompeng */,
+  {     1,   377,   934,   3,   2, -UNI_EXT }   /* ext=f */,
+  {     0,  4002,  5111,   5,  14, UNI_MODIFIERTONELETTERS }   /* modifiertoneletters */,
+  { 45719,  7011,  8030,  24,   9, UNI_CCC__AL }   /* canonicalcombiningclass=aboveleft */,
+  {     1,  7383,  3106,  10,  12, UNI_BC__AL }   /* bidiclass=arabicletter */,
+  {     0,  3677,  1505,   7,   4, UNI_LATINEXTA }   /* islatinexta */,
+  {     1,  6165,   208,   3,   4, UNI_SC__TGLG }   /* sc=tglg */,
+  {     2,  4795,  6279,  14,   8, UNI_NV__1_SLASH_160 }   /* numericvalue=6.250e-03 */,
+  {     9,     2,   584,   1,   3, UNI_CE }   /* ce=t */,
+  {     4,   461,   330,   2,   2, UNI_PD }   /* ispd */,
+  {     3,   597,  4602,   3,   7, UNI_DT__INIT }   /* dt=initial */,
+  {     0,  3984,  8549,   9,   9, UNI_epres_values_index }   /* emojipresentation= */,
+  {     3,   461,    19,   2,   4, UNI_POSIXXDIGIT }   /* isahex */,
+  {     1,   292,   392,   3,   2, UNI_NV__41 }   /* nv=41 */,
+  {     8,  4407,   353,  17,   2, UNI_RI }   /* regionalindicator=y */,
+  {     0,  4424,   615,  17,   7, UNI_ELYM }   /* scriptextensions=elymaic */,
+  {     5,  7591,  4330,   3,  14, UNI_LB__PO }   /* lb=postfixnumeric */,
+  {     2,   975,     0,   8,   0, UNI_GURU }   /* gurmukhi */,
+  {     9,   461,  2268,   2,  12, UNI_PLAYINGCARDS }   /* isplayingcards */,
+  {     0,   940,     0,   6,   0, UNI_COMPEX }   /* compex */,
+  {     0,  1530,   662,   3,   3, UNI_KALI }   /* iskali */,
+  {    22,   461,   868,   2,   4, UNI_TIRH }   /* istirh */,
+  {     0,   959,   274,   8,   1, UNI_ext_values_index }   /* extender= */,
+  {    12,   309,  1340,   2,   9, UNI_INOLDTURKIC }   /* inoldturkic */,
+  {     0,  7591,   880,   3,   7, UNI_LB__XX }   /* lb=unknown */,
+  {    16,  6090,  1505,  13,   4, UNI_MYANMAREXTA }   /* block=myanmarexta */,
+  {     8,  6076,  3448,  11,   6, UNI_GEORGIANEXT }   /* block=georgianext */,
+  {     0,  1887,     0,   7,   0, UNI_XPOSIXCNTRL }   /* control */,
+  {     2,  6041,  5090,  21,   6, UNI_BPT__C }   /* bidipairedbrackettype=close */,
+  {     1,    16,  1426,   1,   3, UNI_C }   /* gc=c */,
+  {     0,  4424,  1562,  17,  10, UNI_NAGM }   /* scriptextensions=nagmundari */,
+  {     2,  7752,   600,  22,   4, UNI_JG__MANICHAEANONE }   /* joininggroup=manichaeanone */,
+  {     0,  6165,   132,   3,   4, UNI_MTEI }   /* sc=mtei */,
+  {     0,  7011,  8203,  24,  11, UNI_CCC__DB }   /* canonicalcombiningclass=doublebelow */,
+  {     5,  1391,  2292,   3,   9, UNI_WB__WSEGSPACE }   /* wb=wsegspace */,
+  {     0,  7011,   294,  23,   2, UNI_CCC__9 }   /* canonicalcombiningclass=9 */,
+  {    23,  3803,  6093,  12,   4, UNI_NFCQC__M }   /* nfkcquickcheck=m */,
+  {     0,  6450,  5144,  14,   5, UNI_SB__AT }   /* sentencebreak=aterm */,
+  {    10,  1823,  3663,   7,  10, UNI_SC__DEVA }   /* script=devanagari */,
+  {     0,  8505,  3101,   3,   5, UNI_NT__DI }   /* nt=digit */,
+  {     0,  1391,  4407,   3,  17, UNI_RI }   /* wb=regionalindicator */,
+  {     0,  3407,   515,  14,   2, UNI_NV__4_SLASH_5 }   /* numericvalue=4/5 */,
+  {    10,   461,  3093,   2,   5, UNI_ASCII }   /* isascii */,
+  {     0,  2324,  1227,   6,   7, UNI_INMAKASAR }   /* block=makasar */,
+  {     0,  2718,    18,   3,   1, UNI_BC__B }   /* bc=b */,
+  {     0,  7892,  3190,  15,   2, UNI_uideo_values_index }   /* unifiedideograph= */,
+  {     0,  3378,   353,  13,   4, UNI_NFDQC__Y }   /* nfdquickcheck=yes */,
+  {    18,  5205,  3364,   5,  14, UNI_MISCPICTOGRAPHS }   /* blk=miscpictographs */,
+  {     1,   128,     0,   2,   0, UNI_ME }   /* me */,
+  {     2,  7274,  3791,   9,  10, UNI_SM }   /* category=mathsymbol */,
+  {     2,  5939,   274,   5,   1, UNI_nchar_values_index }   /* nchar= */,
+  {    16,  1424,  2084,   7,   2, UNI_CCC__11 }   /* ccc=ccc11 */,
+  {     0,   168,     0,   4,   0, UNI_COPT }   /* qaac */,
+  {     0,  3098,   934,   8,   2, -UNI_XPOSIXXDIGIT }   /* hexdigit=f */,
+  {     4,  1618,   274,  10,   1, UNI_sd_values_index }   /* softdotted= */,
+  {     0,  2536,  3012,   2,   2, UNI_JG__E }   /* jg=e */,
+  {    39,  6165,   402,   3,   4, UNI_ARMN }   /* sc=armn */,
+  {     0,  1349,     0,   9,   0, UNI_OUGR }   /* olduyghur */,
+  {     2,  6464,     0,  23,   0, UNI_SHORTHANDFORMATCONTROLS }   /* shorthandformatcontrols */,
+  {     0,  2324,   238,   6,   2, UNI_NB }   /* block=nb */,
+  {     0,  6427,  1767,  13,   2, UNI_JG__FE }   /* joininggroup=fe */,
+  {     1,  7591,  2966,   3,  11, UNI_LB__IN }   /* lb=inseparable */,
+  {     2,  1424,   344,   7,   2, UNI_CCC__21 }   /* ccc=ccc21 */,
+  {    12,   461,    82,   2,   4, UNI_GONG }   /* isgong */,
+  {     1,  2348,   584,  12,   3, UNI_CI }   /* caseignorable=t */,
+  {     7,  1396,   599,   4,   2, -UNI_XIDS }   /* xids=n */,
+  {     0,  3098,   598,   7,   2, UNI_hex_values_index }   /* hexdigit= */,
+  {     0,  1823,  4505,   6,   6, UNI_SC__LATN }   /* script=latin */,
+  {     7,  7011,   350,  24,   2, UNI_CCC__9 }   /* canonicalcombiningclass=vr */,
+  {     0,  6165,  5712,   3,  19, UNI_MERO }   /* sc=meroitichieroglyphs */,
+  {     0,  1102,  3663,   4,   4, UNI_DEVA }   /* scx=deva */,
+  {     0,   309,  2068,   2,  12, UNI_INMENDEKIKAKUI }   /* inmendekikakui */,
+  {     1,  7404,     0,  21,   0, UNI_BC__R }   /* bidiclass=righttoleft */,
+  {     0,  2280,  2199,  10,   3, UNI_IN__2 }   /* presentin=2.0 */,
+  {     0,  2324,  2302,   6,   3, UNI_INIDC }   /* block=idc */,
+  {     8,    35,     0,   4,   0, UNI_BATK }   /* batk */,
+  {     4,  1823,   297,   7,   5, UNI_SC__ORYA }   /* script=oriya */,
+  {     0,  6165,   466,   3,   4, UNI_SOGO }   /* sc=sogo */,
+  {     9,   271,  5769,   4,   9, UNI_WB__EB }   /* gcb=emodifier */,
+  {     8,  1102,  2780,   4,   4, UNI_COPT }   /* scx=copt */,
+  {     1,  3391,  2182,  12,  10, UNI_NV__5_SLASH_12 }   /* numericvalue=4.167e-01 */,
+  {     2,  8246,  1630,  30,   5, UNI_INPC__TOPANDRIGHT }   /* indicpositionalcategory=topandright */,
+  {     0,   663,     0,   4,   0, UNI_LIMB }   /* limb */,
+  {     1,   461,  4852,   2,  10, UNI_XPOSIXSPACE }   /* iswhitespace */,
+  {     0,  7267,   248,  16,   2, UNI_CN }   /* generalcategory=cn */,
+  {     0,  1823,  1133,   7,   8, UNI_VITH }   /* script=vithkuqi */,
+  {     2,    54,  5208,   2,   8, UNI_SC__MYMR }   /* sc=myanmar */,
+  {     2,   309,   512,   2,   2, UNI_IN__3 }   /* in=3 */,
+  {    11,  7591,  5769,   3,   9, UNI_EMOD }   /* lb=emodifier */,
+  {     2,  7267,   252,  16,   2, UNI_CASEDLETTER }   /* generalcategory=lc */,
+  {     0,  7495,  2165,  27,   2, UNI_CCC__33 }   /* canonicalcombiningclass=ccc33 */,
+  {     0,  1823,  1212,   7,   9, UNI_SC__QAAI }   /* script=inherited */,
+  {     6,   128,   130,   2,   2, UNI_MEDF }   /* medf */,
+  {     0,  1667,  8619,   4,  21, UNI_MATHOPERATORS }   /* blk=mathematicaloperators */,
+  {     2,  5637,  4504,  19,   3, UNI_GCB__L }   /* graphemeclusterbreak=l */,
+  {     5,  1492,  6945,   5,  15, UNI_GEOMETRICSHAPESEXT }   /* ingeometricshapesext */,
+  {    11,  4951,     0,   4,   0, UNI_EGYP }   /* egyp */,
+  {     0,  1065,  1317,   5,   2, UNI_NV__1_SLASH_32 }   /* nv=1/32 */,
+  {     4,   380,   599,   6,   3, -UNI_HYPHEN }   /* hyphen=no */,
+  {     0,  8538,    44,  20,   1, UNI_VO__U }   /* verticalorientation=u */,
+  {     1,  8601,  5409,   7,  17, UNI_SMALLKANAEXT }   /* block=smallkanaextension */,
+  {     5,  1144,  1147,   3,   6, UNI_BHKS }   /* bhaiksuki */,
+  {     0,  2432,  7620,   3,  19, UNI_MISCSYMBOLS }   /* inmiscellaneoussymbols */,
+  {    14,  4191,   585,   5,   5, UNI_XPOSIXLOWER }   /* lower=true */,
+  {     1,  2018,     0,  12,   0, UNI_jt_values_index }   /* joiningtype= */,
+  {     0,  1102,    94,   4,   4, UNI_GURU }   /* scx=guru */,
+  {     5,  5658,  7287,  10,  17, UNI_IDENTIFIERSTATUS__RESTRICTED }   /* identifierstatus=restricted */,
+  {     5,     2,   934,   3,   2, -UNI_CWL }   /* cwl=f */,
+  {     3,  8343,  6934,  31,  11, UNI_INSC__CONSONANTWITHSTACKER }   /* indicsyllabiccategory=consonantwithstacker */,
+  {    32,  6450,  3191,  13,   3, UNI_SB__LE }   /* sentencebreak=le */,
+  {     2,  4424,   172,  17,   4, UNI_RJNG }   /* scriptextensions=rjng */,
+  {     2,  7274,   248,   9,   5, UNI_XPOSIXCNTRL }   /* category=cntrl */,
+  {     3,  1424,   582,   8,   2, UNI_CCC__122 }   /* ccc=ccc122 */,
+  {     4,  1102,   196,   4,   4, UNI_TAML }   /* scx=taml */,
+  {     2,   292,   760,   3,   3, UNI_NV__1_SLASH_2 }   /* nv=1/2 */,
+  {     0,   380,   585,   6,   2, UNI_HYPHEN }   /* hyphen=t */,
+  {     5,    71,   274,   3,   1, UNI_cwu_values_index }   /* cwu= */,
+  {     0,    21,  6142,   1,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* earlydynasticcuneiform */,
+  {     0,  4424,   108,  17,   4, UNI_KAWI }   /* scriptextensions=kawi */,
+  {     0,  1479,   352,   4,   3, UNI_XPOSIXSPACE }   /* space=y */,
+  {     8,  1667,   108,   4,   4, UNI_INKAWI }   /* blk=kawi */,
+  {     9,  2301,   933,  10,   3, -UNI_XIDC }   /* xidcontinue=f */,
+  {     8,  8278,     0,  33,   0, UNI_MISCMATHSYMBOLSB }   /* miscellaneousmathematicalsymbolsb */,
+  {     1,  5065,  4251,  13,   4, UNI_JG__MANICHAEANQOPH }   /* jg=manichaeanqoph */,
+  {     0,  2766,     0,   8,   0, UNI_C }   /* gc=other */,
+  {     3,  1883,   341,   4,   2, UNI_bidic_values_index }   /* bidic= */,
+  {     5,  3696,  1269,   4,   3, UNI_SUPPUAB }   /* suppuab */,
+  {     1,  6165,   398,   3,   4, UNI_MIAO }   /* sc=miao */,
+  {     0,  6165,  3954,   3,  17, UNI_AGHB }   /* sc=caucasianalbanian */,
+  {     1,   895,  3861,   5,   2, UNI_AGE__7 }   /* age=v70 */,
+  {     2,  1726,  6193,   6,   5, UNI_ARABICSUP }   /* isarabicsup */,
+  {     0,   307,     0,   5,   0, UNI_XPOSIXPRINT }   /* print */,
+  {     2,  3021,  2125,   4,   2, UNI_IN__6_DOT_3 }   /* in=v63 */,
+  {     0,  1667,  2852,   4,  12, UNI_MAHJONG }   /* blk=mahjongtiles */,
+  {     0,   461,  3475,   2,  15, UNI_ZANB }   /* iszanabazarsquare */,
+  {     0,  4424,   779,  17,   7, UNI_OSMA }   /* scriptextensions=osmanya */,
+  {     1,   406,   585,   3,   5, UNI_DIA }   /* dia=true */,
+  {     5,    42,  2768,   2,   6, UNI_SB__XX }   /* sb=other */,
+  {     1,  6332,     0,  19,   0, UNI_JAMOEXTB }   /* hanguljamoextendedb */,
+  {     0,   461,  4667,   2,  16, UNI_PE }   /* isclosepunctuation */,
+  {    18,  1102,  1303,   4,   9, UNI_TALU }   /* scx=newtailue */,
+  {     0,  3391,     0,  14,   0, UNI_NV__2 }   /* numericvalue=2 */,
+  {     0,   895,  2117,   5,   2, UNI_AGE__6_DOT_2 }   /* age=v62 */,
+  {     0,  1174,  7036,   3,   9, UNI_EA__H }   /* ea=halfwidth */,
+  {     2,   733,  7241,   3,  10, UNI_ENCLOSEDCJK }   /* inenclosedcjk */,
+  {     0,  1102,  1685,   4,  11, UNI_CPMN }   /* scx=cyprominoan */,
+  {     9,  2766,  4569,   3,  15, UNI_UPPERCASELETTER }   /* gc=uppercaseletter */,
+  {     0,   461,  4161,   2,   9, UNI_DIA }   /* isdiacritic */,
+  {     0,   257,   585,   4,   2, UNI_CWCM }   /* cwcm=t */,
+  {     0,   271,   644,   3,   3, UNI_LB__H2 }   /* gcb=lv */,
+  {     8,  1667,  1255,   4,   7, UNI_INSIDDHAM }   /* blk=siddham */,
+  {     3,  1198,  6576,   3,  21, UNI_INDICNUMBERFORMS }   /* incommonindicnumberforms */,
+  {     5,  7084,     0,   8,   0, UNI_INARABIC }   /* inarabic */,
+  {     0,  1823,   196,   7,   4, UNI_SC__TAML }   /* script=taml */,
+  {     2,  2324,  4896,   6,  15, UNI_BAMUMSUP }   /* block=bamumsupplement */,
+  {     1,  2766,  4146,   3,  15, UNI_PD }   /* gc=dashpunctuation */,
+  {     1,  4554,     0,   9,   0, UNI_TITLE }   /* titlecase */,
+  {     0,  3803,  2327,  12,   3, UNI_nfkcqc_values_index }   /* nfkcquickcheck= */,
+  {     2,   461,   474,   2,   4, UNI_VAI }   /* isvaii */,
+  {    11,  6165,  1834,   3,  11, UNI_SORA }   /* sc=sorasompeng */,
+  {     2,   597,  1850,   3,   3, UNI_DT__SUB }   /* dt=sub */,
+  {    19,  6165,   124,   3,   4, UNI_SC__LATN }   /* sc=latn */,
+  {     0,  6735,  4724,  22,   3, UNI_JG__MALAYALAMTTA }   /* joininggroup=malayalamtta */,
+  {     1,  2324,   615,   6,   7, UNI_INELYMAIC }   /* block=elymaic */,
+  {     2,   683,     0,   4,   0, UNI_TAKR }   /* takr */,
+  {     0,  6165,  3325,   3,   6, UNI_HEBR }   /* sc=hebrew */,
+  {     6,  6165,  1009,   3,   6, UNI_LYCI }   /* sc=lycian */,
+  {     2,  5895,  5813,   5,   7, UNI_SUPARROWSB }   /* issuparrowsb */,
+  {     0,  6427,  2559,  13,  10, UNI_JG__KNOTTEDHEH }   /* joininggroup=knottedheh */,
+  {     2,   461,  1003,   2,   6, UNI_LEPC }   /* islepcha */,
+  {     1,  1883,   353,  11,   4, UNI_BIDIC }   /* bidicontrol=yes */,
+  {     0,   309,  6642,   2,   6, UNI_INBRAHMI }   /* inbrahmi */,
+  {     0,  1667,  6797,   4,  18, UNI_DEVANAGARIEXT }   /* blk=devanagariextended */,
+  {     0,  2324,  1696,   6,   6, UNI_DOMINO }   /* block=domino */,
+  {     0,  1667,  1978,   4,   7, UNI_INSOGDIAN }   /* blk=sogdian */,
+  {     6,  6287,   176,   4,   2, UNI_BC__LRO }   /* bc=lro */,
+  {     1,  1075,  2657,   4,   8, UNI_NV__1_SLASH_5 }   /* nv=2.000e-01 */,
+  {    11,  1667,  3908,   4,   6, UNI_INTANGUT }   /* blk=tangut */,
+  {     1,  4271,     0,  17,   0, UNI_KITS }   /* khitansmallscript */,
+  {     0,  1102,  3133,   3,   5, UNI_GEOR }   /* scx=geor */,
+  {     1,  1102,  5067,   3,  11, UNI_MANI }   /* scx=manichaean */,
+  {     0,   309,  3692,   2,   7, UNI_LISUSUP }   /* inlisusup */,
+  {     5,   461,  1812,   2,  11, UNI_HMNG }   /* ispahawhhmong */,
+  {     0,   309,  4161,   2,  12, UNI_DIACRITICALS }   /* indiacriticals */,
+  {    25,  6165,  1562,   3,  10, UNI_NAGM }   /* sc=nagmundari */,
+  {     0,  1823,  1209,   7,   4, UNI_THAI }   /* script=thai */,
+  {     0,  3001,  3101,  12,   5, UNI_NT__DI }   /* numerictype=digit */,
+  {     4,   461,  1696,   2,   6, UNI_DOMINO }   /* isdomino */,
+  {    11,   309,  3583,   2,  16, UNI_HIGHPUSURROGATES }   /* inhighpusurrogates */,
+  {    14,  7495,  7239,  27,   2, UNI_CCC__28 }   /* canonicalcombiningclass=ccc28 */,
+  {     2,  3502,  5820,   5,  15, UNI_ENCLOSEDALPHANUM }   /* blk=enclosedalphanum */,
+  {     3,  2280,   295,  10,   1, UNI_IN__9 }   /* presentin=9 */,
+  {     2,  2732,  3790,   9,   5, UNI_ARABICMATH }   /* blk=arabicmath */,
+  {     0,  2301,   585,   4,   5, UNI_XIDC }   /* xidc=true */,
+  {     1,   266,   353,   3,   4, UNI_CWT }   /* cwt=yes */,
+  {     0,  7274,   599,   8,   3, UNI_NO }   /* category=no */,
+  {     0,  1397,  2931,   6,   3, UNI_IDS }   /* idstart=t */,
+  {     0,  4424,  5958,  17,   7, UNI_SINH }   /* scriptextensions=sinhala */,
+  {     0,  1391,  1864,   3,   8, UNI_WB__EB }   /* wb=ebasegaz */,
+  {     3,  1102,   909,   4,   4, UNI_BALI }   /* scx=bali */,
+  {     0,    86,  2372,   3,   5, UNI_GREEKEXT }   /* greekext */,
+  {     0,  1102,   112,   4,   4, UNI_KITS }   /* scx=kits */,
+  {    13,   357,     0,   6,   0, UNI_CAKM }   /* chakma */,
+  {     0,  5156,  3451,  10,  12, UNI_WB__EX }   /* wordbreak=extendnumlet */,
+  {     0,   461,   406,   2,   3, UNI_DIA }   /* isdia */,
+  {     0,  1272,  8567,   3,  34, UNI_DIACRITICALSSUP }   /* iscombiningdiacriticalmarkssupplement */,
+  {     4,  1102,   537,   4,   6, UNI_TNSA }   /* scx=tangsa */,
+  {     0,  4360,  3040,  10,   9, UNI_LB__QU }   /* linebreak=quotation */,
+  {     0,   309,  6082,   2,   8, UNI_INGEORGIAN }   /* ingeorgian */,
+  {    65,  2324,  5876,   6,  12, UNI_SUNDANESESUP }   /* block=sundanesesup */,
+  {     2,   716,   490,   5,   3, UNI_KANBUN }   /* inkanbun */,
+  {     0,  1823,   798,   7,   4, UNI_NBAT }   /* script=nbat */,
+  {     1,  4161,  6621,   8,   3, UNI_DIA }   /* diacritic=t */,
+  {     2,    54,  5067,   2,   5, UNI_SC__MANI }   /* sc=mani */,
+  {     4,   269,     0,   2,   0, UNI_ZP }   /* zp */,
+  {     3,   552,   560,   4,   3, UNI_AGE__7 }   /* age=7.0 */,
+  {     1,  2324,  3163,   7,  14, UNI_CONTROLPICTURES }   /* block=controlpictures */,
+  {     0,   339,  2538,   3,   2, UNI_CCC__A }   /* ccc=a */,
+  {     0,   292,  1314,   4,   2, UNI_NV__900 }   /* nv=900 */,
+  {     3,  4424,   160,  17,   4, UNI_PHLP }   /* scriptextensions=phlp */,
+  {     0,    38,  7442,   1,  25, UNI_KATAKANAEXT }   /* katakanaphoneticextensions */,
+  {    17,  1734,  5409,   3,  17, UNI_SMALLKANAEXT }   /* issmallkanaextension */,
+  {    41,  2536,  3289,   3,  12, UNI_JG__FINALSEMKATH }   /* jg=finalsemkath */,
+  {     0,  6165,   422,   3,   4, UNI_SC__LINA }   /* sc=lina */,
+  {     1,  1033,     0,   8,   0, UNI_JAMOEXTB }   /* jamoextb */,
+  {     2,   309,   369,   2,   6, UNI_INGOTHIC }   /* ingothic */,
+  {     8,  1667,  6776,   4,  21, UNI_MEETEIMAYEKEXT }   /* blk=meeteimayekextensions */,
+  {     0,   461,  8619,   2,  21, UNI_MATHOPERATORS }   /* ismathematicaloperators */,
+  {     0,  1272,  6557,   5,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* iscjkcompatideographs */,
+  {     0,   406,   599,   2,   2, -UNI_DI }   /* di=n */,
+  {    22,  7134,   934,  26,   2, -UNI_PCM }   /* prependedconcatenationmark=f */,
+  {    17,   140,     0,   4,   0, UNI_NARB }   /* narb */,
+  {     0,  1102,  1367,   4,   4, UNI_PAUC }   /* scx=pauc */,
+  {     4,  7274,  5172,   9,   2, UNI_CASEDLETTER }   /* category=l_ */,
+  {     9,  6165,  4896,   3,   4, UNI_BAMU }   /* sc=bamu */,
+  {     0,   461,  1914,   2,   4, UNI_UCAS }   /* isucas */,
+  {    14,  4620,  3779,   7,   9, UNI_LINEARBIDEOGRAMS }   /* linearbideograms */,
+  {     0,    30,   195,   1,   5, UNI_TAML }   /* istaml */,
+  {     0,  2391,  1505,  10,   4, UNI_CYRILLICEXTA }   /* incyrillicexta */,
+  {     4,  4191,   934,   5,   2, -UNI_XPOSIXLOWER }   /* lower=f */,
+  {     0,   461,  2503,   2,  11, UNI_JOINC }   /* isjoincontrol */,
+  {     2,  3984,   599,  17,   2, -UNI_EPRES }   /* emojipresentation=n */,
+  {     8,  4424,   615,  17,   4, UNI_ELYM }   /* scriptextensions=elym */,
+  {     1,  7669,   140,  19,   2, UNI_HST__NA }   /* hangulsyllabletype=na */,
+  {    12,  4424,  1144,  17,   9, UNI_BHKS }   /* scriptextensions=bhaiksuki */,
+  {     0,  6062,  2374,  14,   8, UNI_ETHIOPICEXT }   /* block=ethiopicextended */,
+  {     1,  6163,   129,  20,   2, UNI_INSC__CONSONANTPREFIXED }   /* insc=consonantprefixed */,
+  {     0,  2180,  1314,   4,   2, UNI_NV__400 }   /* nv=400 */,
+  {     1,  4191,   353,   5,   2, UNI_XPOSIXLOWER }   /* lower=y */,
+  {     0,  3177,   599,  14,   2, UNI_EA__N }   /* eastasianwidth=n */,
+  {     0,  6165,    35,   3,   4, UNI_BATK }   /* sc=batk */,
+  {     1,  3378,   353,  13,   2, UNI_NFDQC__Y }   /* nfdquickcheck=y */,
+  {     0,   324,  8386,   3,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* supsymbolsandpictographs */,
+  {     1,  1667,  6400,   7,  11, UNI_CJKRADICALSSUP }   /* blk=cjkradicalssup */,
+  {     0,  2324,   357,   6,   6, UNI_INCHAKMA }   /* block=chakma */,
+  {     4,  3391,   347,  13,   2, UNI_NV__49 }   /* numericvalue=49 */,
+  {     0,  2324,  6909,   6,  14, UNI_MUSIC }   /* block=musicalsymbols */,
+  {     0,  1667,  8407,   5,  34, UNI_DIACRITICALSFORSYMBOLS }   /* blk=combiningdiacriticalmarksforsymbols */,
+  {     1,  1667,  1685,   4,  11, UNI_INCYPROMINOAN }   /* blk=cyprominoan */,
+  {     0,  5125,     0,  19,   0, UNI_OTTOMANSIYAQNUMBERS }   /* ottomansiyaqnumbers */,
+  {     0,   339,   342,   3,   2, UNI_CCC__1 }   /* ccc=1 */,
+  {     0,   461,  3663,   2,  14, UNI_DEVANAGARIEXTA }   /* isdevanagariexta */,
+  {     0,  7198,  1845,   7,   8, UNI_SUPERANDSUB }   /* blk=superandsub */,
+  {     0,  2324,  7480,   6,  14, UNI_PUA }   /* block=privateusearea */,
+  {     0,  2718,  2424,   3,   2, UNI_BC__CS }   /* bc=cs */,
+  {     0,  2220,  1805,   4,   4, UNI_NV__60000 }   /* nv=60000 */,
+  {     5,  3098,   353,   8,   4, UNI_XPOSIXXDIGIT }   /* hexdigit=yes */,
+  {     8,  1823,  1294,   7,   9, UNI_NBAT }   /* script=nabataean */,
+  {     0,  6165,  1954,   3,  12, UNI_SC__GONG }   /* sc=gunjalagondi */,
+  {     0,  1240,     6,   3,   2, UNI_OCR }   /* inocr */,
+  {    12,  1823,  4951,   7,   4, UNI_EGYP }   /* script=egyp */,
+  {     0,    50,     0,   2,   0, UNI_MC }   /* mc */,
+  {    10,  1397,   934,   7,   6, -UNI_IDS }   /* idstart=false */,
+  {     4,    15,  4402,   2,   3, UNI_AGE__3 }   /* age=3 */,
+  {     1,  4424,  1978,  17,   7, UNI_SOGD }   /* scriptextensions=sogdian */,
+  {     0,  1455,     0,  10,   0, UNI_DEP }   /* deprecated */,
+  {     0,  2324,  2256,   6,   8, UNI_PHAISTOS }   /* block=phaistos */,
+  {     0,  7274,     4,   9,   2, UNI_LO }   /* category=lo */,
+  {     0,  5065,  2270,  13,   4, UNI_JG__MANICHAEANAYIN }   /* jg=manichaeanayin */,
+  {     0,   144,  1306,   3,   6, UNI_TALU }   /* newtailue */,
+  {     4,  1823,  2045,   7,  12, UNI_SC__GONM }   /* script=masaramgondi */,
+  {     7,  1823,  2811,   7,   5, UNI_KHMR }   /* script=khmer */,
+  {     0,   461,  1367,   2,   4, UNI_PAUC }   /* ispauc */,
+  {     0,   629,  5671,   5,   3, -UNI_GRBASE }   /* grbase=n */,
+  {     0,  2324,  6351,   6,  23, UNI_COMPATJAMO }   /* block=hangulcompatibilityjamo */,
+  {     0,  4795,  2091,  14,   8, UNI_NV__5_SLASH_8 }   /* numericvalue=6.250e-01 */,
+  {     0,  7944,  7380,  28,   4, UNI_CJKEXTB }   /* iscjkunifiedideographsextensionb */,
+  {     2,  5658,  2646,  15,   9, UNI_IDENTIFIERTYPE__TECHNICAL }   /* identifiertype=technical */,
+  {     0,  4161,   341,   8,   2, UNI_dia_values_index }   /* diacritic= */,
+  {     3,  1823,   120,   7,   3, UNI_LAO }   /* script=lao */,
+  {     0,  3391,   515,  14,   2, UNI_NV__2_SLASH_5 }   /* numericvalue=2/5 */,
+  {     0,  1102,   861,   4,   7, UNI_TIBT }   /* scx=tibetan */,
+  {     6,  6165,   454,   3,   4, UNI_PRTI }   /* sc=prti */,
+  {    16,  5205,  2422,   5,  10, UNI_MISCSYMBOLS }   /* blk=miscsymbols */,
+  {     0,  1823,  5958,   7,   4, UNI_SC__SINH }   /* script=sinh */,
+  {     0,  4424,  1349,  17,   9, UNI_OUGR }   /* scriptextensions=olduyghur */,
+  {     0,   461,  4043,   2,   4, UNI_IDSB }   /* isidsb */,
+  {     1,  1894,   353,   5,   2, UNI_BIDIM }   /* bidim=y */,
+  {     0,  4391,     0,  16,   0, UNI_NV__3_SLASH_2 }   /* numericvalue=3/2 */,
+  {     1,  2732,  6193,   8,   5, UNI_ARABICSUP }   /* blk=arabicsup */,
+  {     0,  2718,   330,   3,   3, UNI_BC__PDF }   /* bc=pdf */,
+  {     0,  4424,   917,  17,   4, UNI_BASS }   /* scriptextensions=bass */,
+  {     0,  7274,     8,   9,   2, UNI_PC }   /* category=pc */,
+  {     1,    33,  4710,   1,   8, UNI_SYRIACSUP }   /* syriacsup */,
+  {     2,  2324,  2780,   6,   6, UNI_INCOPTIC }   /* block=coptic */,
+  {     0,  2324,  3538,   6,  16, UNI_CYPRIOTSYLLABARY }   /* block=cypriotsyllabary */,
+  {     0,  1272,  1448,   5,   7, UNI_CJKSTROKES }   /* iscjkstrokes */,
+  {     1,  7383,  6029,  10,  12, UNI_BC__AN }   /* bidiclass=arabicnumber */,
+  {     1,   641,  2382,   4,   9, UNI_GCB__V }   /* hst=voweljamo */,
+  {    12,   868,     0,   7,   0, UNI_TIRH }   /* tirhuta */,
+  {     0,  4424,  1322,  17,   9, UNI_ITAL }   /* scriptextensions=olditalic */,
+  {     7,     8,   585,   3,   5, UNI_PCM }   /* pcm=true */,
+  {     8,  4407,   934,  17,   2, -UNI_RI }   /* regionalindicator=f */,
+  {     3,    19,   599,   4,   3, -UNI_POSIXXDIGIT }   /* ahex=no */,
+  {     0,  1823,   917,   7,   4, UNI_BASS }   /* script=bass */,
+  {     3,  5801,     0,  19,   0, UNI_SUPARROWSB }   /* supplementalarrowsb */,
+  {     0,  7110,     0,  13,   0, UNI_M }   /* combiningmark */,
+  {     9,   309,   238,   2,   2, UNI_NB }   /* innb */,
+  {     5,  1667,  1209,   4,   4, UNI_INTHAI }   /* blk=thai */,
+  {    29,   461,  2468,   2,   6, UNI_IPAEXT }   /* isipaext */,
+  {     0,   192,   319,   2,   3, UNI_TALE }   /* taile */,
+  {    10,  7198,  6671,   5,  21, UNI_MODIFIERLETTERS }   /* blk=spacingmodifierletters */,
+  {    16,  5168,  7160,   6,  21, UNI__PERL_IS_IN_MULTI_CHAR_FOLD }   /* _perl_is_in_multi_char_fold */,
+  {     0,  1102,  1834,   4,  11, UNI_SORA }   /* scx=sorasompeng */,
+  {     6,   505,   599,   5,   3, UNI_DT__CAN }   /* nfdqc=no */,
+  {     0,  1198,  8153,   5,  21, UNI_CJKSYMBOLS }   /* incjksymbolsandpunctuation */,
+  {     1,   292,   765,   3,   2, UNI_NV__45 }   /* nv=45 */,
+  {     1,  5031,   150,  12,   2, UNI_ROHG }   /* hanifirohingya */,
+  {     1,     2,   599,   3,   3, -UNI_CWL }   /* cwl=no */,
+  {     1,  7889,  5417,  20,  10, UNI_CJKEXTD }   /* cjkunifiedideographsextensiond */,
+  {     0,  4502,   733,   5,   6, UNI_INLINEARA }   /* blk=lineara */,
+  {     2,  1011,   353,   2,   2, UNI_CI }   /* ci=y */,
+  {     7,  6163,  1432,   5,   6, UNI_INSC__VIRAMA }   /* insc=virama */,
+  {     1,  4391,  1314,  14,   3, UNI_NV__3000 }   /* numericvalue=3000 */,
+  {     4,   641,   644,   3,   2, UNI_GCB__L }   /* hst=l */,
+  {     1,   339,  8640,   4,  13, UNI_CCC__214 }   /* ccc=attachedabove */,
+  {     4,  8601,  4710,   7,   8, UNI_SYRIACSUP }   /* block=syriacsup */,
+  {     1,  2280,   890,   9,   3, UNI_IN__10 }   /* presentin=10 */,
+  {     0,    54,  4505,   2,   6, UNI_SC__LATN }   /* sc=latin */,
+  {    18,   629,  5671,   5,   4, -UNI_GRBASE }   /* grbase=no */,
+  {     5,  4424,   402,  17,   4, UNI_ARMN }   /* scriptextensions=armn */,
+  {     0,  1823,   212,   7,   4, UNI_TIBT }   /* script=tibt */,
+  {     1,  4502,  1674,   9,   4, UNI_LATINEXTD }   /* blk=latinextd */,
+  {     0,  7591,    98,   3,   2, UNI_LB__HL }   /* lb=hl */,
+  {    11,  6427,  1747,  13,   8, UNI_JG__FARSIYEH }   /* joininggroup=farsiyeh */,
+  {    16,  4191,   933,   8,   3, -UNI_XPOSIXLOWER }   /* lowercase=f */,
+  {    20,   228,     0,   4,   0, UNI_XSUX }   /* xsux */,
+  {     0,  6735,   529,  22,   2, UNI_JG__MALAYALAMJA }   /* joininggroup=malayalamja */,
+  {     0,  1424,  2092,   7,   2, UNI_CCC__25 }   /* ccc=ccc25 */,
+  {     3,   339,  2154,   4,   2, UNI_CCC__13 }   /* ccc=13 */,
+  {     3,  6165,   152,   3,   4, UNI_OSGE }   /* sc=osge */,
+  {     0,   309,  1438,   2,  10, UNI_INCHORASMIAN }   /* inchorasmian */,
+  {     0,  8311,  4680,  32,   4, UNI_CJKEXTF }   /* block=cjkunifiedideographsextensionf */,
+  {     0,  2536,  2546,   3,   3, UNI_JG__FEH }   /* jg=feh */,
+  {     0,  5895,  4150,   5,  11, UNI_SUPPUNCTUATION }   /* issuppunctuation */,
+  {     0,   292,   344,   3,   2, UNI_NV__21 }   /* nv=21 */,
+  {     4,  7752,  4259,  23,   4, UNI_JG__MANICHAEANYODH }   /* joininggroup=manichaeanyodh */,
+  {     1,   309,  2268,   2,  12, UNI_PLAYINGCARDS }   /* inplayingcards */,
+  {     1,  2505,  5276,   4,  16, UNI_HALFMARKS }   /* incombininghalfmarks */,
+  {     0,  2441,     0,  11,   0, UNI_NAND }   /* nandinagari */,
+  {     0,  1667,   590,   4,   7, UNI_DSRT }   /* blk=deseret */,
+  {    17,  2324,  1191,   6,   7, UNI_INBENGALI }   /* block=bengali */,
+  {     0,  1102,  1376,   4,   9, UNI_SAMR }   /* scx=samaritan */,
+  {     5,  1667,  6495,   4,   5, UNI_MUSIC }   /* blk=music */,
+  {     4,   461,   120,   2,   4, UNI_LAO }   /* islaoo */,
+  {     1,   552,   393,   4,   2, UNI_AGE__15 }   /* age=15 */,
+  {    23,  1667,  3955,   5,  16, UNI_INCAUCASIANALBANIAN }   /* blk=caucasianalbanian */,
+  {     8,  3014,  2093,  11,   2, UNI_IN__5 }   /* presentin=v50 */,
+  {     1,  3391,  2655,  13,  10, UNI_NV___MINUS_1_SLASH_2 }   /* numericvalue=-5.000e-01 */,
+  {    27,  7267,     4,  16,   2, UNI_LO }   /* generalcategory=lo */,
+  {     0,  1102,  1133,   4,   8, UNI_VITH }   /* scx=vithkuqi */,
+  {     2,  2525,  4191,   6,   5, UNI_XPOSIXLOWER }   /* xposixlower */,
+  {     0,  1667,   615,   4,   7, UNI_INELYMAIC }   /* blk=elymaic */,
+  {     0,  1667,  4131,   4,   8, UNI_VEDICEXT }   /* blk=vedicext */,
+  {     1,   461,  1562,   2,   4, UNI_NAGM }   /* isnagm */,
+  {     1,  3021,   288,   4,   2, UNI_IN__3 }   /* in=v30 */,
+  {     9,  1455,   585,   3,   5, UNI_DEP }   /* dep=true */,
+  {     2,   461,   416,   2,   2, UNI_NO }   /* isno */,
+  {    37,  5156,  3472,  10,   3, UNI_LB__ZWJ }   /* wordbreak=zwj */,
+  {     2,  8246,     0,  27,   0, UNI_INPC__TOP }   /* indicpositionalcategory=top */,
+  {     0,  4424,  1358,  17,   4, UNI_PALM }   /* scriptextensions=palm */,
+  {     1,  1102,   802,   4,   4, UNI_SARB }   /* scx=sarb */,
+  {     0,   309,   634,   2,   7, UNI_INHANUNOO }   /* inhanunoo */,
+  {     2,  1728,     0,   4,   0, UNI_ARAB }   /* arab */,
+  {     3,  4519,     0,  14,   0, UNI_INCYRILLIC }   /* block=cyrillic */,
+  {     0,  7011,  1678,  24,   7, UNI_CCC__1 }   /* canonicalcombiningclass=overlay */,
+  {     3,  2718,  4852,   3,  10, UNI_BC__WS }   /* bc=whitespace */,
+  {    17,  2002,  3100,   7,   6, UNI_POSIXXDIGIT }   /* isposixxdigit */,
+  {     2,  4424,  1227,  17,   7, UNI_MAKA }   /* scriptextensions=makasar */,
+  {    11,  2324,  1562,   6,  10, UNI_INNAGMUNDARI }   /* block=nagmundari */,
+  {     1,   461,  1003,   2,   4, UNI_LEPC }   /* islepc */,
+  {     0,  1065,   389,   5,   1, UNI_NV__1_SLASH_6 }   /* nv=1/6 */,
+  {     0,  1823,   458,   7,   4, UNI_SC__QAAI }   /* script=qaai */,
+  {     0,  8356,     0,  10,   0, UNI_C }   /* category=c */,
+  {     0,  2324,  7036,   6,  26, UNI_HALFANDFULLFORMS }   /* block=halfwidthandfullwidthforms */,
+  {     4,  1823,   658,   7,   4, UNI_SC__DOGR }   /* script=dogr */,
+  {    10,  3021,  3876,   4,   2, UNI_IN__8 }   /* in=v80 */,
+  {     2,  7274,  3558,   9,   9, UNI_Z }   /* category=separator */,
+  {    21,  6841,   599,  25,   2, -UNI_DI }   /* defaultignorablecodepoint=n */,
+  {    20,  1065,  2123,   4,   8, UNI_NV__1_SLASH_64 }   /* nv=1.563e-02 */,
+  {     1,  7404,  6300,  20,  10, UNI_BC__RLE }   /* bidiclass=righttoleftembedding */,
+  {     5,  2348,   584,  12,   6, UNI_CI }   /* caseignorable=true */,
+  {     0,  7267,     0,  16,   0, UNI_gc_values_index }   /* generalcategory= */,
+  {     1,   144,     0,   4,   0, UNI_NEWA }   /* newa */,
+  {     3,  1391,  1869,   3,   3, UNI_WB__EB }   /* wb=gaz */,
+  {     5,   916,   352,   4,   2, UNI_ebase_values_index }   /* ebase= */,
+  {     0,  1667,   297,   4,   5, UNI_INORIYA }   /* blk=oriya */,
+  {     0,  5895,  5149,  14,   7, UNI_SUPARROWSA }   /* issupplementalarrowsa */,
+  {     1,   552,   549,   4,   3, UNI_AGE__4 }   /* age=4.0 */,
+  {     0,  1102,  4505,   3,   6, UNI_LATN }   /* scx=latin */,
+  {     1,   510,   515,   4,   2, UNI_NV__3_SLASH_5 }   /* nv=3/5 */,
+  {    11,  4424,  2068,  17,  12, UNI_MEND }   /* scriptextensions=mendekikakui */,
+  {     0,  1198,  6228,   4,   8, UNI_CJKSYMBOLS }   /* incjksymbols */,
+  {     4,  6090,  5848,  13,   9, UNI_MYANMAREXTA }   /* block=myanmarextendeda */,
+  {     1,     2,   598,   2,   2, UNI_cwt_values_index }   /* cwt= */,
+  {     5,    30,  1208,   1,   5, UNI_INTHAI }   /* inthai */,
+  {     9,  4569,   585,   5,   2, UNI_XPOSIXUPPER }   /* upper=t */,
+  {     9,  1102,  1853,   4,  11, UNI_SYLO }   /* scx=sylotinagri */,
+  {     0,  7892,     0,  16,   0, UNI_UIDEO }   /* unifiedideograph */,
+  {     0,  7011,   395,  24,   2, UNI_CCC__16 }   /* canonicalcombiningclass=16 */,
+  {     1,  1102,   160,   4,   4, UNI_PHLP }   /* scx=phlp */,
+  {     0,  2287,  2223,   3,   3, UNI_IN__6_DOT_2 }   /* in=6.2 */,
+  {     0,   461,   854,   2,   7, UNI_TAVT }   /* istaiviet */,
+  {     0,  6165,   244,   3,   4, UNI_ZZZZ }   /* sc=zzzz */,
+  {     2,  2324,  3663,   6,  10, UNI_INDEVANAGARI }   /* block=devanagari */,
+  {     3,  2324,  6776,   6,  14, UNI_MEETEIMAYEKEXT }   /* block=meeteimayekext */,
+  {     1,  2324,  3649,   6,  14, UNI_PHONETICEXTSUP }   /* block=phoneticextsup */,
+  {     0,  2536,  2569,   3,  10, UNI_JG__REVERSEDPE }   /* jg=reversedpe */,
+  {     0,     8,   353,   3,   2, UNI_PCM }   /* pcm=y */,
+  {     0,  2301,   599,   4,   2, -UNI_XIDC }   /* xidc=n */,
+  {     4,  2503,   934,  11,   6, -UNI_JOINC }   /* joincontrol=false */,
+  {     1,   461,  3663,   2,  13, UNI_DEVANAGARIEXT }   /* isdevanagariext */,
+  {     0,   271,   543,   4,   2, UNI_WB__EB }   /* gcb=eb */,
+  {     5,  8071,  4680,  30,   4, UNI_CJKEXTF }   /* blk=cjkunifiedideographsextensionf */,
+  {     2,   461,  5838,   2,  10, UNI_JAMO }   /* ishanguljamo */,
+  {     1,  2766,   363,   3,   2, UNI_SM }   /* gc=sm */,
+  {     0,  6165,  1853,   3,  11, UNI_SC__SYLO }   /* sc=sylotinagri */,
+  {     0,  5658,  6548,  15,   9, UNI_IDENTIFIERTYPE__INCLUSION }   /* identifiertype=inclusion */,
+  {     4,  5205,  5848,  11,   9, UNI_MYANMAREXTA }   /* blk=myanmarextendeda */,
+  {     0,  1883,   585,  11,   2, UNI_BIDIC }   /* bidicontrol=t */,
+  {     0,   461,  1009,   2,   6, UNI_LYCI }   /* islycian */,
+  {    10,  4970,   274,  13,   1, UNI_emod_values_index }   /* emojimodifier= */,
+  {     1,  2494,  4982,   3,   5, UNI_GRBASE }   /* isgrbase */,
+  {     0,  1102,   798,   4,   4, UNI_NBAT }   /* scx=nbat */,
+  {     1,    30,   633,   1,   4, UNI_HAN }   /* ishan */,
+  {     1,   309,  1975,   2,  10, UNI_INOLDSOGDIAN }   /* inoldsogdian */,
+  {     0,  1102,   450,   4,   4, UNI_MIAO }   /* scx=plrd */,
+  {     0,   461,    47,   2,   4, UNI_CAKM }   /* iscakm */,
+  {     0,  2536,  3743,   3,   3, UNI_JG__TAW }   /* jg=taw */,
+  {     1,    21,  7915,   1,  29, UNI_ENCLOSEDALPHANUMSUP }   /* enclosedalphanumericsupplement */,
+  {     5,  1906,  3746,   6,  14, UNI_KAKTOVIKNUMERALS }   /* blk=kaktoviknumerals */,
+  {     6,  6165,   120,   3,   3, UNI_LAO }   /* sc=lao */,
+  {     3,   461,  6510,   2,  24, UNI_HIGHPUSURROGATES }   /* ishighprivateusesurrogates */,
+  {     0,  2432,  2422,   3,  10, UNI_MISCSYMBOLS }   /* inmiscsymbols */,
+  {     2,  1823,  3325,   7,   6, UNI_HEBR }   /* script=hebrew */,
+  {     2,  4970,   933,  16,   3, -UNI_EBASE }   /* emojimodifierbase=f */,
+  {    38,    30,  4969,   1,  14, UNI_EMOD }   /* isemojimodifier */,
+  {    12,  2766,  3791,   3,  10, UNI_SM }   /* gc=mathsymbol */,
+  {     0,  4043,   585,  17,   2, UNI_IDSB }   /* idsbinaryoperator=t */,
+  {     0,  5532,   585,  21,   2, UNI_CWCF }   /* changeswhencasefolded=t */,
+  {     0,  4519,  1037,  14,   4, UNI_CYRILLICEXTB }   /* block=cyrillicextb */,
+  {    20,  2536,  1279,   3,   6, UNI_JG__LAMADH }   /* jg=lamadh */,
+  {    16,  7495,  2101,  28,   2, UNI_CCC__129 }   /* canonicalcombiningclass=ccc129 */,
+  {    16,  6735,  1876,  22,   3, UNI_JG__MALAYALAMLLA }   /* joininggroup=malayalamlla */,
+  {    16,   309,  5125,   2,  19, UNI_OTTOMANSIYAQNUMBERS }   /* inottomansiyaqnumbers */,
+  {     1,  7267,  1478,  16,   2, UNI_ZS }   /* generalcategory=zs */,
+  {     1,  2514,  5848,   9,   9, UNI_MYANMAREXTA }   /* ismyanmarextendeda */,
+  {     0,  7591,  2955,   3,  11, UNI_LB__EX }   /* lb=exclamation */,
+  {     9,  7804,   585,  11,   5, UNI_IDEO }   /* ideographic=true */,
+  {     0,  6450,   959,  14,   6, UNI_SB__EX }   /* sentencebreak=extend */,
+  {     0,  8505,   283,   3,   2, UNI_NT__NU }   /* nt=nu */,
+  {     9,  6165,   108,   3,   4, UNI_KAWI }   /* sc=kawi */,
+  {     0,  7011,  8640,  24,  18, UNI_CCC__216 }   /* canonicalcombiningclass=attachedaboveright */,
+  {     0,   578,   395,   5,   2, UNI_CCC__216 }   /* ccc=216 */,
+  {     1,  4424,   208,  17,   4, UNI_TGLG }   /* scriptextensions=tglg */,
+  {     5,  1102,  1812,   4,  11, UNI_HMNG }   /* scx=pahawhhmong */,
+  {     5,   339,  1905,   4,   2, UNI_CCC__DB }   /* ccc=db */,
+  {     0,   450,     0,   4,   0, UNI_MIAO }   /* plrd */,
+  {     0,   423,  4987,   3,   9, UNI_ALCHEMICAL }   /* inalchemical */,
+  {     1,  2766,  7110,   3,  13, UNI_M }   /* gc=combiningmark */,
+  {     0,  3391,   796,  13,   3, UNI_NV__NAN }   /* numericvalue=nan */,
+  {     0,  8601,  4457,   8,  15, UNI_SUTTONSIGNWRITING }   /* block=suttonsignwriting */,
+  {     3,   493,     0,   4,   0, UNI_KHOJ }   /* khoj */,
+  {    40,  5876,     0,   4,   0, UNI_SUND }   /* sund */,
+  {    26,  1667,  6797,   4,  19, UNI_DEVANAGARIEXTA }   /* blk=devanagariextendeda */,
+  {     8,  4926,     0,   8,   0, UNI_TAMILSUP }   /* tamilsup */,
+  {     3,  7383,  3312,  10,   3, UNI_BC__LRI }   /* bidiclass=lri */,
+  {     4,  2301,   584,  10,   6, UNI_XIDC }   /* xidcontinue=true */,
+  {     0,  2536,  5031,   3,  16, UNI_JG__HANIFIROHINGYAPA }   /* jg=hanifirohingyapa */,
+  {     1,  1102,   779,   4,   4, UNI_OSMA }   /* scx=osma */,
+  {     1,   474,     0,   3,   0, UNI_VAI }   /* vai */,
+  {     0,   578,  1314,   5,   2, UNI_WB__EB }   /* ccc=200 */,
+  {     0,   257,   353,   4,   4, UNI_CWCM }   /* cwcm=yes */,
+  {     1,  6076,  6945,   9,  15, UNI_GEOMETRICSHAPESEXT }   /* block=geometricshapesext */,
+  {    16,  2004,  1082,   5,   4, UNI_POSIXWORD }   /* posixword */,
+  {     3,  1823,  1105,   6,   5, UNI_TALU }   /* script=talu */,
+  {     4,  1618,   599,  10,   3, -UNI_SD }   /* softdotted=no */,
+  {     0,    67,     0,   4,   0, UNI_CPRT }   /* cprt */,
+  {     0,  5216,  4698,  10,  12, UNI_LATIN1 }   /* block=latin1supplement */,
+  {     1,   925,     0,   4,   0, UNI_bpt_values_index }   /* bpt= */,
+  {     1,  2324,  7972,   7,  29, UNI_CUNEIFORMNUMBERS }   /* block=cuneiformnumbersandpunctuation */,
+  {     1,  1667,  8142,   4,  18, UNI_IDEOGRAPHICSYMBOLS }   /* blk=ideographicsymbols */,
+  {    16,  1198,  3611,   5,  11, UNI_CJKCOMPATFORMS }   /* incjkcompatforms */,
+  {     0,  1823,  5185,   7,  20, UNI_HLUW }   /* script=anatolianhieroglyphs */,
+  {     2,  2832,  5848,  10,   9, UNI_CYRILLICEXTA }   /* iscyrillicextendeda */,
+  {    16,  7892,   585,  16,   5, UNI_UIDEO }   /* unifiedideograph=true */,
+  {     8,   339,  3526,   4,  12, UNI_CCC__0 }   /* ccc=notreordered */,
+  {     5,  5168,  2621,   6,   9, UNI__PERL_SURROGATE }   /* _perl_surrogate */,
+  {     0,  6165,   537,   3,   6, UNI_TNSA }   /* sc=tangsa */,
+  {     1,  5156,  3456,  12,   4, UNI_WB__MN }   /* wordbreak=midnum */,
+  {    13,  2536,   481,   3,   3, UNI_JG__GAF }   /* jg=gaf */,
+  {     1,  6165,  1009,   3,   4, UNI_LYCI }   /* sc=lyci */,
+  {     0,  6427,   650,  13,   3, UNI_JG__LAM }   /* joininggroup=lam */,
+  {     1,   461,  1887,   2,   7, UNI_XPOSIXCNTRL }   /* iscontrol */,
+  {     2,  3502,  7915,   5,  29, UNI_ENCLOSEDALPHANUMSUP }   /* blk=enclosedalphanumericsupplement */,
+  {     5,   309,   772,   2,   7, UNI_OLCK }   /* inolchiki */,
+  {     0,  4377,   599,  14,   2, UNI_NFKDQC__N }   /* nfkdquickcheck=n */,
+  {     1,   309,  5373,   2,  11, UNI_TAIXUANJING }   /* intaixuanjing */,
+  {     9,  7274,   599,   8,   2, UNI_N }   /* category=n */,
+  {     2,  2324,  1009,   6,   6, UNI_INLYCIAN }   /* block=lycian */,
+  {     5,  1102,  2852,   4,   4, UNI_MAHJ }   /* scx=mahj */,
+  {     0,   154,  6945,   3,  15, UNI_GEOMETRICSHAPESEXT }   /* geometricshapesext */,
+  {     3,  5712,     0,  19,   0, UNI_MERO }   /* meroitichieroglyphs */,
+  {    10,  4424,   608,  17,   7, UNI_ELBA }   /* scriptextensions=elbasan */,
+  {     1,  1823,    59,   7,   4, UNI_CHRS }   /* script=chrs */,
+  {     8,  1102,   688,   4,   5, UNI_BATK }   /* scx=batak */,
+  {     0,  6165,   725,   3,   7, UNI_SC__KALI }   /* sc=kayahli */,
+  {     0,  3407,  2107,  14,   8, UNI_NV__9_SLASH_2 }   /* numericvalue=4.500e+00 */,
+  {    10,  4377,  2327,  12,   3, UNI_nfkdqc_values_index }   /* nfkdquickcheck= */,
+  {     9,  4845,   933,  16,   7, -UNI__PERL_PATWS }   /* patternwhitespace=false */,
+  {     0,  2536,  6714,   3,  21, UNI_JG__HANIFIROHINGYAKINNAYA }   /* jg=hanifirohingyakinnaya */,
+  {     0,  2842,  7241,   3,  26, UNI_ENCLOSEDCJK }   /* isenclosedcjklettersandmonths */,
+  {     0,  2324,  5897,   6,  19, UNI_SUPARROWSC }   /* block=supplementalarrowsc */,
+  {    18,  5939,   353,   5,   2, UNI__PERL_NCHAR }   /* nchar=y */,
+  {     0,  3040,   353,  13,   2, UNI_QMARK }   /* quotationmark=y */,
+  {     0,  2483,     0,  11,   0, UNI_CASEDLETTER }   /* casedletter */,
+  {     0,  1272,   377,   5,   4, UNI_CJKEXTH }   /* iscjkexth */,
+  {     0,   510,  1314,   4,   3, UNI_NV__3000 }   /* nv=3000 */,
+  {     2,  2536,   650,   3,   3, UNI_JG__LAM }   /* jg=lam */,
+  {     0,  3391,   765,  13,   2, UNI_NV__45 }   /* numericvalue=45 */,
+  {     9,  1272,     0,   3,   0, UNI_C }   /* isc */,
+  {     0,  5937,   598,  20,   4, -UNI__PERL_NCHAR }   /* noncharactercodepoint=no */,
+  {     4,  6165,  1331,   3,   9, UNI_SC__PERM }   /* sc=oldpermic */,
+  {     1,   330,     0,   2,   0, UNI_PD }   /* pd */,
+  {    32,  2324,  3093,   6,   5, UNI_ASCII }   /* block=ascii */,
+  {     0,   461,   252,   2,   2, UNI_CASEDLETTER }   /* islc */,
+  {    20,  7198,  6103,   7,  13, UNI_SUPMATHOPERATORS }   /* blk=supmathoperators */,
+  {     1,  4391,  2107,  14,   8, UNI_NV__7_SLASH_2 }   /* numericvalue=3.500e+00 */,
+  {     3,  7198,  1609,   5,   9, UNI_SMALLFORMS }   /* blk=smallforms */,
+  {     0,  2280,   581,   9,   2, UNI_IN__2 }   /* presentin=2 */,
+  {     0,  1667,  4002,   4,   4, UNI_INMODI }   /* blk=modi */,
+  {     1,  3177,     3,  15,   1, UNI_EA__W }   /* eastasianwidth=w */,
+  {     1,   461,   499,   2,   4, UNI_LYDI }   /* islydi */,
+  {     0,  5460,   599,  19,   3, -UNI_TERM }   /* terminalpunctuation=no */,
+  {     4,  1102,  1227,   4,   7, UNI_MAKA }   /* scx=makasar */,
+  {     0,  3391,  1313,  13,   3, UNI_NV__600 }   /* numericvalue=600 */,
+  {     1,  1667,  2268,   4,  12, UNI_PLAYINGCARDS }   /* blk=playingcards */,
+  {     0,  1102,   124,   4,   4, UNI_LATN }   /* scx=latn */,
+  {     6,  6062,  7241,   7,  10, UNI_ENCLOSEDCJK }   /* block=enclosedcjk */,
+  {     2,  1424,  2165,   7,   2, UNI_CCC__33 }   /* ccc=ccc33 */,
+  {     1,  4360,  3001,  10,   7, UNI_LB__NU }   /* linebreak=numeric */,
+  {     0,  1396,  4439,   3,   2, UNI_xids_values_index }   /* xids= */,
+  {     2,   416,     0,   2,   0, UNI_NO }   /* no */,
+  {    12,    21,   598,   2,   3, -UNI_EXT }   /* ext=n */,
+  {     0,  6165,   406,   3,   4, UNI_DIAK }   /* sc=diak */,
+  {     1,   292,   288,   3,   2, UNI_NV__30 }   /* nv=30 */,
+  {     0,   461,  5682,   2,   5, UNI_GREK }   /* isgreek */,
+  {     4,  3204,   353,  14,   4, UNI_GREXT }   /* graphemeextend=yes */,
+  {     0,   156,     0,   4,   0, UNI_OUGR }   /* ougr */,
+  {     2,  1667,  4896,   4,   8, UNI_BAMUMSUP }   /* blk=bamumsup */,
+  {     0,  3391,   294,  12,   3, UNI_NV__90 }   /* numericvalue=90 */,
+  {     1,  7944,  4680,  28,   4, UNI_CJKEXTF }   /* iscjkunifiedideographsextensionf */,
+  {     1,  7267,  2004,  16,   2, UNI_PO }   /* generalcategory=po */,
+  {    19,  6427,    20,  13,   2, UNI_JG__HE }   /* joininggroup=he */,
+  {    13,  1823,  4271,   7,  17, UNI_KITS }   /* script=khitansmallscript */,
+  {     0,  3391,   768,  13,   2, UNI_NV__27 }   /* numericvalue=27 */,
+  {     4,  1102,  1212,   4,   9, UNI_QAAI }   /* scx=inherited */,
+  {     0,  1667,  8474,   7,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* blk=cjkcompatibilityideographssupplement */,
+  {     0,  1391,  1613,   3,   2, UNI_WB__FO }   /* wb=fo */,
+  {     4,  6165,  2247,   3,   4, UNI_HUNG }   /* sc=hung */,
+  {     1,  2060,   353,   5,   4, UNI_XPOSIXALPHA }   /* alpha=yes */,
+  {     0,  1667,   668,   4,   5, UNI_INOGHAM }   /* blk=ogham */,
+  {    17,  7267,     0,  16,   2, UNI_CASEDLETTER }   /* generalcategory=l& */,
+  {     1,  1667,  1404,   4,  10, UNI_ASCII }   /* blk=basiclatin */,
+  {     1,  7648,  7011,  21,   9, UNI_DT__NONCANON }   /* decompositiontype=noncanonical */,
+  {     1,  1667,  1376,   4,   9, UNI_INSAMARITAN }   /* blk=samaritan */,
+  {     7,   324,  5149,   3,   7, UNI_SUPARROWSA }   /* suparrowsa */,
+  {     1,  4424,   232,  17,   2, UNI_YI }   /* scriptextensions=yi */,
+  {     8,    30,  2255,   1,  13, UNI_PHAISTOS }   /* inphaistosdisc */,
+  {    16,  1823,  2852,   7,   4, UNI_SC__MAHJ }   /* script=mahj */,
+  {     0,   309,   890,   2,   5, UNI_IN__10 }   /* in=10.0 */,
+  {     1,  1397,   598,   6,   2, UNI_ids_values_index }   /* idstart= */,
+  {     0,  2536,  1760,   3,   3, UNI_JG__KAF }   /* jg=kaf */,
+  {    18,  2324,  1635,   6,  10, UNI_INWARANGCITI }   /* block=warangciti */,
+  {     4,  6165,   493,   3,   4, UNI_SC__KHOJ }   /* sc=khoj */,
+  {     2,  5172,     0,   2,   0, UNI_CASEDLETTER }   /* l_ */,
+  {     0,  1396,   598,   7,   3, -UNI_XIDS }   /* xidstart=n */,
+  {     1,   461,  4176,   2,   6, UNI_HANG }   /* ishangul */,
+  {     0,  6324,     0,   6,   0, UNI_CF }   /* format */,
+  {     0,  5895,  8386,   5,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* issupsymbolsandpictographs */,
+  {     0,  3098,   353,   8,   2, UNI_XPOSIXXDIGIT }   /* hexdigit=y */,
+  {     4,   309,  2468,   2,   6, UNI_IPAEXT }   /* inipaext */,
+  {     1,    30,  4553,   1,   6, UNI_TITLE }   /* istitle */,
+  {     0,  1396,   353,   4,   2, UNI_XIDS }   /* xids=y */,
+  {     8,  1667,   917,   4,   8, UNI_INBASSAVAH }   /* blk=bassavah */,
+  {     3,   868,     0,   4,   0, UNI_TIRH }   /* tirh */,
+  {     3,    11,  4987,   1,  16, UNI_ALCHEMICAL }   /* alchemicalsymbols */,
+  {     8,  3177,     0,  15,   0, UNI_ea_values_index }   /* eastasianwidth= */,
+  {     3,   461,  1325,   2,   4, UNI_ITAL }   /* isital */,
+  {     1,  2536,   478,   3,   3, UNI_JG__BEH }   /* jg=beh */,
+  {     3,  7796,     0,  22,   0, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* enclosedideographicsup */,
+  {     5,   461,   172,   2,   4, UNI_RJNG }   /* isrjng */,
+  {     0,  1667,   369,   4,   6, UNI_INGOTHIC }   /* blk=gothic */,
+  {     3,   309,  2441,   2,  11, UNI_INNANDINAGARI }   /* innandinagari */,
+  {     0,  1391,  2720,   2,   3, UNI_RI }   /* wb=ri */,
+  {     0,  7591,   209,   3,   2, UNI_LB__GL }   /* lb=gl */,
+  {     2,  1823,   786,   7,   4, UNI_HMNP }   /* script=hmnp */,
+  {     0,  5216,  4770,  19,  10, UNI_LATINEXTADDITIONAL }   /* block=latinextendedadditional */,
+  {     0,   309,  1033,   2,   8, UNI_JAMOEXTB }   /* injamoextb */,
+  {     1,  1667,  1037,   7,   4, UNI_CJKEXTB }   /* blk=cjkextb */,
+  {     0,  6165,    74,   3,   4, UNI_SC__CYRL }   /* sc=cyrl */,
+  {     6,  1102,   983,   4,   8, UNI_HIRA }   /* scx=hiragana */,
+  {     1,   533,   283,   3,   2, UNI_SB__NU }   /* sb=nu */,
+  {     3,  7591,  2589,   3,  10, UNI_LB__BA }   /* lb=breakafter */,
+  {     6,  1424,  2101,   7,   2, UNI_CCC__29 }   /* ccc=ccc29 */,
+  {     0,  2324,  5392,   7,  10, UNI_CHEROKEESUP }   /* block=cherokeesup */,
+  {     1,   339,   520,   5,   1, UNI_CCC__17 }   /* ccc=17 */,
+  {    37,  3204,   585,  14,   5, UNI_GREXT }   /* graphemeextend=true */,
+  {     0,  2324,  8607,   6,  33, UNI_SUPMATHOPERATORS }   /* block=supplementalmathematicaloperators */,
+  {     0,   309,  1003,   2,   6, UNI_INLEPCHA }   /* inlepcha */,
+  {     0,  8311,  7380,  32,   4, UNI_CJKEXTB }   /* block=cjkunifiedideographsextensionb */,
+  {     0,  1285,     0,   9,   0, UNI_SIND }   /* khudawadi */,
+  {    14,  7274,   313,   9,   4, UNI_M }   /* category=mark */,
+  {     1,  1667,  1501,   4,   8, UNI_JAMOEXTA }   /* blk=jamoexta */,
+  {     2,  6165,   196,   3,   4, UNI_SC__TAML }   /* sc=taml */,
+  {     1,  3001,   406,  12,   2, UNI_NT__DI }   /* numerictype=di */,
+  {     1,   292,  2092,   3,   2, UNI_NV__25 }   /* nv=25 */,
+  {     0,  1667,  4176,   4,   6, UNI_INHANGUL }   /* blk=hangul */,
+  {     2,  5959,  3570,   5,  13, UNI_HALFANDFULLFORMS }   /* inhalfandfullforms */,
+  {     3,  1726,  5676,   3,  18, UNI_ANCIENTGREEKNUMBERS }   /* isancientgreeknumbers */,
+  {     0,  3984,     0,  17,   0, UNI_EPRES }   /* emojipresentation */,
+  {     8,  1667,  2692,   4,  13, UNI_VERTICALFORMS }   /* blk=verticalforms */,
+  {     0,  4424,  3421,  17,  15, UNI_NARB }   /* scriptextensions=oldnortharabian */,
   {     1,  1102,  1094,   4,   4, UNI_MERC }   /* scx=merc */,
-  {     3,   313,  7660,   2,  28, UNI_VSSUP }   /* invariationselectorssupplement */,
-  {     4,   343,  3107,   4,   5, UNI_CCC__A }   /* ccc=above */,
-  {     0,   464,  1571,   2,  10, UNI_SAUR }   /* issaurashtra */,
-  {     1,  7473,   356,  10,   4, UNI_XPOSIXALPHA }   /* alphabetic=yes */,
-  {     3,  8276,  7363,  31,  14, UNI_INSC__CONSONANTPRECEDINGREPHA }   /* indicsyllabiccategory=consonantprecedingrepha */,
-  {     0,  2740,     0,   6,   0, UNI_COPT }   /* coptic */,
-  {     1,   895,   397,   5,   2, UNI_AGE__5_DOT_1 }   /* age=v51 */,
-  {     0,  1539,  4007,   3,  13, UNI_SC }   /* iscurrencysymbol */,
-  {     2,  4291,   184,  10,   2, UNI_LB__SA }   /* linebreak=sa */,
-  {     0,   176,     0,   4,   0, UNI_ROHG }   /* rohg */,
-  {     3,  4901,   933,  16,   7, -UNI_EBASE }   /* emojimodifierbase=false */,
-  {     3,  6944,  7173,  25,   2, UNI_CCC__AL }   /* canonicalcombiningclass=228 */,
-  {     2,   464,  5389,   2,  20, UNI_HMNP }   /* isnyiakengpuachuehmong */,
-  {     3,   520,  6199,   4,   5, UNI_NV__700000 }   /* nv=700000 */,
-  {    10,  1796,  4962,   7,  14, UNI_SC__ROHG }   /* script=hanifirohingya */,
-  {     1,  4776,   355,  16,   2, UNI_patws_values_index }   /* patternwhitespace= */,
-  {     3,  1377,  3416,   5,   7, UNI_WB__MB }   /* wb=midnumlet */,
-  {     0,   524,  2261,   5,   2, UNI_patsyn_values_index }   /* patsyn= */,
-  {     0,  1478,  5223,   4,  16, UNI_INPUNCTUATION }   /* ingeneralpunctuation */,
-  {     2,  6944,  1303,  24,   2, UNI_CCC__32 }   /* canonicalcombiningclass=32 */,
-  {     1,   464,  6594,   2,   4, UNI_BRAH }   /* isbrah */,
-  {     5,  1102,     0,   8,   0, UNI_TALU }   /* scx=talu */,
-  {     0,  7431,   771,  27,   2, UNI_CCC__21 }   /* canonicalcombiningclass=ccc21 */,
-  {     3,  3474,  1887,   6,   8, UNI_UCASEXTA }   /* block=ucasexta */,
-  {     5,  1796,   176,   7,   4, UNI_SC__ROHG }   /* script=rohg */,
-  {     1,  7068,  1881,  25,   2, UNI_pcm_values_index }   /* prependedconcatenationmark= */,
-  {     0,   464,   997,   2,   6, UNI_KTHI }   /* iskaithi */,
-  {     0,  1796,   140,   7,   4, UNI_NARB }   /* script=narb */,
-  {     0,  1796,   854,   7,   7, UNI_TAVT }   /* script=taiviet */,
-  {     3,   464,   983,   2,   8, UNI_HIRA }   /* ishiragana */,
-  {     3,  7825,  4611,  26,   4, UNI_CJKEXTF }   /* cjkunifiedideographsextensionf */,
-  {     1,  3137,     3,  15,   1, UNI_EA__W }   /* eastasianwidth=w */,
-  {     0,  2232,   201,   3,   3, UNI_TAML }   /* istaml */,
-  {     2,  1879,  1133,   4,   8, UNI_INVITHKUQI }   /* blk=vithkuqi */,
-  {     1,  1382,  2891,   7,   3, UNI_XIDS }   /* xidstart=t */,
-  {     8,  1796,  1982,   7,   6, UNI_SC__SYRC }   /* script=syriac */,
-  {     0,   513,  1300,   4,   2, UNI_NV__300 }   /* nv=300 */,
-  {    10,  2890,    16,   3,   1, UNI_JT__D }   /* jt=d */,
-  {     1,  1977,  3060,   4,   6, UNI_POSIXDIGIT }   /* posixdigit */,
-  {    12,  2474,  6549,   3,  21, UNI_MISCTECHNICAL }   /* ismiscellaneoustechnical */,
-  {     2,  7317,  3066,  10,  12, UNI_BC__AL }   /* bidiclass=arabicletter */,
-  {     1,  2260,  2649,   3,   3, UNI_IN__6_DOT_1 }   /* in=6.1 */,
-  {     9,  8533,  5762,   9,   7, UNI_SUPARROWSB }   /* block=suparrowsb */,
-  {     0,  1879,  1508,   4,   8, UNI_INUGARITIC }   /* blk=ugaritic */,
-  {     0,  3351,     0,  13,   0, UNI_nv_values_index }   /* numericvalue= */,
-  {     4,  4355,   212,  17,   4, UNI_TGLG }   /* scriptextensions=tglg */,
-  {     4,  3474,  4882,   6,  19, UNI_INEGYPTIANHIEROGLYPHS }   /* block=egyptianhieroglyphs */,
-  {     9,    34,  8077,   1,  19, UNI_IDEOGRAPHICSYMBOLS }   /* isideographicsymbols */,
-  {     3,    58,  1550,   2,  11, UNI_XPEO }   /* sc=oldpersian */,
-  {     6,   802,     0,   4,   0, UNI_NBAT }   /* nbat */,
-  {    11,  6944,  3486,  24,  12, UNI_CCC__0 }   /* canonicalcombiningclass=notreordered */,
-  {     2,  1796,   997,   7,   6, UNI_SC__KTHI }   /* script=kaithi */,
-  {     2,   313,   637,   2,   7, UNI_INHANUNOO }   /* inhanunoo */,
-  {     0,     2,     0,   3,   0, UNI_CWL }   /* cwl */,
-  {     2,  1777,     0,   5,   0, UNI_NV__10 }   /* nv=10 */,
-  {     0,  7431,  6968,  27,   2, UNI_CCC__27 }   /* canonicalcombiningclass=ccc27 */,
-  {     8,  6114,  1090,   3,   4, UNI_SC__LINB }   /* sc=linb */,
-  {     2,  4291,  2904,  10,  11, UNI_LB__BB }   /* linebreak=breakbefore */,
-  {     3,  1766,     0,  11,   0, UNI_NFCQC__M }   /* nfcqc=maybe */,
-  {     0,  6379,  4696,  13,   5, UNI_JG__ZHAIN }   /* joininggroup=zhain */,
-  {     7,   261,   934,   4,   2, -UNI_CWCM }   /* cwcm=f */,
-  {     1,  2974,  1070,  11,   2, UNI_IN__3_DOT_1 }   /* presentin=v31 */,
-  {     1,  1102,  3309,   4,   4, UNI_MERO }   /* scx=mero */,
-  {     0,   313,  1826,   2,  11, UNI_INSYLOTINAGRI }   /* insylotinagri */,
-  {     0,   317,     0,   4,   0, UNI_M }   /* mark */,
-  {     0,  1796,    35,   7,   4, UNI_AVST }   /* script=avst */,
-  {    13,   464,  5949,   2,  21, UNI_YIJING }   /* isyijinghexagramsymbols */,
-  {     0,  7317,  6262,  10,  20, UNI_BC__PDF }   /* bidiclass=popdirectionalformat */,
-  {     6,  1441,   356,  10,   2, UNI_DEP }   /* deprecated=y */,
-  {     6,  7201,  1977,  16,   2, UNI_PO }   /* generalcategory=po */,
-  {     0,  4302,   587,   5,   6, UNI_XPOSIXSPACE }   /* wspace=true */,
-  {     7,  1236,  4454,   2,  14, UNI_CYRILLICEXTC }   /* blk=cyrillicextc */,
-  {     1,   464,  1424,   2,  10, UNI_CHRS }   /* ischorasmian */,
-  {     1,  6114,   951,   3,   8, UNI_SC__DUPL }   /* sc=duployan */,
-  {     8,   464,  7732,   2,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* isenclosedideographicsupplement */,
-  {    10,  2496,  4159,   3,   7, UNI_JG__HEHGOAL }   /* jg=hehgoal */,
-  {     0,  6379,  1743,  13,   2, UNI_JG__FE }   /* joininggroup=fe */,
-  {     2,   464,  1082,   2,   4, UNI_XPOSIXWORD }   /* isword */,
-  {     0,  5748,  6898,   5,  22, UNI_SUPERANDSUB }   /* insuperscriptsandsubscripts */,
-  {     0,  6687,   919,  22,   3, UNI_JG__MALAYALAMSSA }   /* joininggroup=malayalamssa */,
-  {     4,  5565,   934,  21,   2, -UNI_CWU }   /* changeswhenuppercased=f */,
-  {     1,  3474,  7473,   6,  27, UNI_ALPHABETICPF }   /* block=alphabeticpresentationforms */,
-  {     0,   313,  1982,   2,   6, UNI_INSYRIAC }   /* insyriac */,
-  {     0,   464,  4999,   2,   4, UNI_MANI }   /* ismani */,
-  {     0,  3474,  5322,   6,  18, UNI_CHEROKEESUP }   /* block=cherokeesupplement */,
-  {     0,  5340,     0,   4,   0, UNI_DEVA }   /* deva */,
-  {     0,  6114,   216,   3,   4, UNI_TIBT }   /* sc=tibt */,
-  {     2,  7201,  3594,  16,   2, UNI_NL }   /* generalcategory=nl */,
-  {     0,  1879,  7660,   4,  18, UNI_INVS }   /* blk=variationselectors */,
-  {     8,  3351,   294,  13,   2, UNI_NV__40 }   /* numericvalue=40 */,
-  {     4,  7377,     0,  26,   0, UNI_KATAKANAEXT }   /* katakanaphoneticextensions */,
-  {     0,  5825,     0,   9,   0, UNI_SUND }   /* sundanese */,
-  {     1,  3474,  5907,   6,   7, UNI_INSINHALA }   /* block=sinhala */,
-  {     4,   469,     0,   2,   0, UNI_SO }   /* so */,
-  {     0,   343,  5464,   4,  17, UNI_WB__EB }   /* ccc=attachedbelowleft */,
-  {     7,  7132,  5080,  16,   7, UNI_SUPARROWSA }   /* blk=supplementalarrowsa */,
-  {     2,  6114,   794,   3,   4, UNI_SC__KALI }   /* sc=kali */,
-  {     8,  4582,     0,   8,   0, UNI_BOPO }   /* bopomofo */,
-  {     0,  8276,  7459,  31,  15, UNI_INSC__CONSONANTSUCCEEDINGREPHA }   /* indicsyllabiccategory=consonantsucceedingrepha */,
-  {     0,  6039,  2042,   7,  11, UNI_INMENDEKIKAKUI }   /* block=mendekikakui */,
-  {     2,   152,     0,   4,   0, UNI_OSGE }   /* osge */,
-  {     0,  6025,  5812,  11,   6, UNI_GEORGIANSUP }   /* block=georgiansup */,
-  {     0,   736,  6091,   3,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* inearlydynasticcuneiform */,
-  {     8,  4322,     0,  14,   0, UNI_NV__3 }   /* numericvalue=3 */,
-  {     1,  7823,  4611,  28,   4, UNI_CJKEXTF }   /* incjkunifiedideographsextensionf */,
-  {     0,  7148,   299,  25,   1, UNI_CCC__19 }   /* canonicalcombiningclass=19 */,
-  {     1,  5586,  1837,  21,   8, UNI_WB__EB }   /* graphemeclusterbreak=ebasegaz */,
-  {     2,  1102,  1657,   4,  11, UNI_CPMN }   /* scx=cyprominoan */,
-  {     5,  1102,  1508,   4,   4, UNI_UGAR }   /* scx=ugar */,
-  {    34,    34,    46,   1,   5, UNI_BUHD }   /* isbuhd */,
-  {     0,  1879,   991,   4,   6, UNI_INHATRAN }   /* blk=hatran */,
-  {     1,    23,   934,   4,   6, -UNI_POSIXXDIGIT }   /* ahex=false */,
-  {     1,   148,     0,   4,   0, UNI_ORYA }   /* orya */,
-  {     4,  3474,   656,   6,   5, UNI_INBUHID }   /* block=buhid */,
-  {     2,  1102,   433,   4,   4, UNI_NKO }   /* scx=nkoo */,
-  {     3,   464,  1383,   2,   3, UNI_IDS }   /* isids */,
-  {     0,   536,     0,   3,   0, UNI_sb_values_index }   /* sb= */,
-  {     2,  4355,   691,  17,   5, UNI_BATK }   /* scriptextensions=batak */,
-  {     1,   409,     0,   2,   0, UNI_DI }   /* di */,
-  {     1,  1796,   112,   7,   4, UNI_KITS }   /* script=kits */,
-  {    21,  6134,     0,   4,   0, UNI_GLAG }   /* glag */,
-  {     2,  4355,  2220,  17,   4, UNI_HUNG }   /* scriptextensions=hung */,
-  {     0,   844,   355,   2,   5, UNI_LOE }   /* loe=yes */,
-  {     1,   313,   686,   2,   5, UNI_INTAKRI }   /* intakri */,
-  {     0,   296,  3792,   3,   2, UNI_NV__70 }   /* nv=70 */,
-  {    12,  6114,  1792,   3,   4, UNI_SC__MONG }   /* sc=mong */,
-  {     8,  3367,   392,  14,   1, UNI_NV__46 }   /* numericvalue=46 */,
-  {     2,  4122,   588,   5,   5, UNI_XPOSIXLOWER }   /* lower=true */,
-  {     2,  1975,   252,   7,   5, UNI_POSIXCNTRL }   /* isposixcntrl */,
-  {     0,  2392,  2382,   3,  10, UNI_MISCSYMBOLS }   /* inmiscsymbols */,
-  {     0,  2260,   563,   3,   3, UNI_IN__7 }   /* in=7.0 */,
-  {     0,  7208,   602,   8,   3, UNI_NO }   /* category=no */,
-  {     2,   464,   144,   2,   4, UNI_NEWA }   /* isnewa */,
-  {    50,  3367,  2165,  14,   8, UNI_NV__3_SLASH_64 }   /* numericvalue=4.688e-02 */,
-  {     4,  3137,  2498,  14,   2, UNI_EA__A }   /* eastasianwidth=a */,
-  {     7,  1879,  3839,   4,  16, UNI_TANGUTCOMPONENTS }   /* blk=tangutcomponents */,
-  {     3,  1102,   975,   4,   8, UNI_GURU }   /* scx=gurmukhi */,
-  {     9,  6799,   588,  24,   2, UNI_COMPEX }   /* fullcompositionexclusion=t */,
-  {    11,  4355,   402,  18,   3, UNI_MIAO }   /* scriptextensions=miao */,
-  {     3,  3474,   618,   6,   7, UNI_INELYMAIC }   /* block=elymaic */,
-  {     6,  6379,  2506,  13,   3, UNI_JG__FEH }   /* joininggroup=feh */,
-  {     4,  4355,  1495,  17,   8, UNI_JAVA }   /* scriptextensions=javanese */,
-  {     1,  1796,   676,   7,   5, UNI_OSGE }   /* script=osage */,
-  {     1,  4355,  4827,  17,   5, UNI_BAMU }   /* scriptextensions=bamum */,
-  {     1,  1975,  3060,   6,   6, UNI_POSIXDIGIT }   /* isposixdigit */,
-  {     2,    34,  6351,   1,   8, UNI_RADICAL }   /* isradical */,
-  {    45,   608,  4370,   2,   2, UNI_ids_values_index }   /* ids= */,
-  {     1,  6944,  2127,  24,   2, UNI_CCC__13 }   /* canonicalcombiningclass=13 */,
-  {     1,  8374,  1385,  33,   5, UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START }   /* _perl_problematic_locale_foldeds_start */,
-  {     3,  3593,  6890,   7,   9, UNI_LATINEXTE }   /* inlatinextendede */,
-  {    13,  5718,   588,   4,   5, UNI_EMOD }   /* emod=true */,
-  {     0,  4355,  4551,  17,   7, UNI_LINB }   /* scriptextensions=linearb */,
-  {     5,  4996,  4178,  13,   4, UNI_JG__MANICHAEANKAPH }   /* jg=manichaeankaph */,
-  {     0,  2443,   934,   5,   2, -UNI_CASED }   /* cased=f */,
-  {     4,  3474,   825,   6,   7, UNI_SHAW }   /* block=shavian */,
-  {    18,   464,   790,   2,   4, UNI_HMNP }   /* ishmnp */,
-  {     2,   110,    12,   1,   1, UNI_ZP }   /* zp */,
-  {    13,  2353,  5643,   3,  18, UNI_COUNTINGROD }   /* incountingrodnumerals */,
-  {     0,  3474,     0,   6,   0, UNI_blk_values_index }   /* block= */,
-  {     1,  6379,  3249,  13,  12, UNI_JG__FINALSEMKATH }   /* joininggroup=finalsemkath */,
-  {     0,  2961,  3223,  12,   7, UNI_XPOSIXDIGIT }   /* numerictype=decimal */,
-  {     1,  4500,   356,   5,   4, UNI_XPOSIXUPPER }   /* upper=yes */,
-  {     5,   337,     0,   6,   0, UNI_CARI }   /* carian */,
-  {     4,  7823,  1491,   5,   4, UNI_CJKEXTA }   /* incjkexta */,
-  {     1,  4355,  1424,  17,  10, UNI_CHRS }   /* scriptextensions=chorasmian */,
-  {     0,  3474,  5322,   6,  11, UNI_CHEROKEESUP }   /* block=cherokeesup */,
-  {     2,  6039,  7556,   7,  19, UNI_MISCSYMBOLS }   /* block=miscellaneoussymbols */,
-  {     4,   296,  1299,   3,   4, UNI_NV__6000 }   /* nv=6000 */,
-  {     2,  6379,  4159,  13,   7, UNI_JG__HEHGOAL }   /* joininggroup=hehgoal */,
-  {     0,  2496,  4696,   3,   5, UNI_JG__ZHAIN }   /* jg=zhain */,
-  {     9,  2678,  3651,   3,  14, UNI_BC__NSM }   /* bc=nonspacingmark */,
-  {     1,  6114,   742,   3,   7, UNI_SC__MAND }   /* sc=mandaic */,
-  {     1,  3748,   891,  15,   2, UNI_NV__1_SLASH_10 }   /* numericvalue=1/10 */,
-  {     0,   464,  1461,   3,   9, UNI_XPOSIXBLANK }   /* ishorizspace */,
-  {     0,  6799,   602,  24,   2, -UNI_COMPEX }   /* fullcompositionexclusion=n */,
-  {    39,  7317,   176,  11,   2, UNI_BC__LRO }   /* bidiclass=lro */,
-  {     0,  2474,     0,   3,   0, UNI_M }   /* ism */,
-  {     2,  4355,   372,  17,   4, UNI_GOTH }   /* scriptextensions=goth */,
-  {     1,  3974,     0,  17,   0, UNI_IDSB }   /* idsbinaryoperator */,
-  {     0,  4122,   602,   5,   2, -UNI_XPOSIXLOWER }   /* lower=n */,
-  {     3,  4901,   355,  16,   2, UNI_ebase_values_index }   /* emojimodifierbase= */,
-  {     0,   464,   449,   2,   4, UNI_PHLI }   /* isphli */,
-  {     1,  5186,   345,  19,   2, UNI_extpict_values_index }   /* extendedpictographic= */,
-  {     0,  3164,   588,  14,   5, UNI_GREXT }   /* graphemeextend=true */,
-  {    14,  1102,  1202,   4,   4, UNI_THAI }   /* scx=thai */,
-  {     0,  2974,   299,  11,   2, UNI_IN__9 }   /* presentin=v90 */,
-  {     4,  6944,   396,  24,   2, UNI_CCC__15 }   /* canonicalcombiningclass=15 */,
-  {     0,  2726,  4077,   3,  15, UNI_PD }   /* gc=dashpunctuation */,
-  {     9,  4450,  8150,   7,  24, UNI_DIACRITICALS }   /* block=combiningdiacriticalmarks */,
-  {     2,  1796,  7377,   7,   8, UNI_SC__KANA }   /* script=katakana */,
-  {     0,  4355,  1951,  17,   7, UNI_SOGD }   /* scriptextensions=sogdian */,
-  {     0,  5087,  3423,  10,  12, UNI_WB__EB }   /* wordbreak=glueafterzwj */,
-  {     2,  4355,   124,  17,   4, UNI_LATN }   /* scriptextensions=latn */,
-  {     0,  4355,  5727,  17,  21, UNI_PRTI }   /* scriptextensions=inscriptionalparthian */,
-  {     0,   464,  4092,   2,   9, UNI_DIA }   /* isdiacritic */,
-  {     1,  3000,   356,  13,   4, UNI_QMARK }   /* quotationmark=yes */,
-  {     3,  4355,   168,  17,   4, UNI_COPT }   /* scriptextensions=qaac */,
-  {     0,  3794,  2137,  14,   8, UNI_NV__5_SLASH_6 }   /* numericvalue=8.333e-01 */,
-  {     6,  3641,   837,   4,   3, UNI_SUPPUAA }   /* suppuaa */,
-  {     0,  1216,  1491,   4,   4, UNI_KANAEXTA }   /* kanaexta */,
-  {     1,  3474,  2740,   6,   6, UNI_INCOPTIC }   /* block=coptic */,
-  {     3,  5607,  6486,  10,  14, UNI_IDENTIFIERSTATUS__ALLOWED }   /* identifierstatus=allowed */,
-  {     0,  3058,   601,   7,   2, UNI_hex_values_index }   /* hexdigit= */,
-  {     1,   313,  4467,   2,  18, UNI_COPTICEPACTNUMBERS }   /* incopticepactnumbers */,
-  {     1,  2712,   278,   5,   1, UNI_emoji_values_index }   /* emoji= */,
-  {     3,  7317,  3272,  10,   3, UNI_BC__LRI }   /* bidiclass=lri */,
-  {     3,   464,   661,   2,   4, UNI_DOGR }   /* isdogr */,
-  {     0,  3450,  5643,   5,  18, UNI_COUNTINGROD }   /* blk=countingrodnumerals */,
-  {     0,  4302,   355,   5,   3, UNI_XPOSIXSPACE }   /* wspace=y */,
-  {     0,  1796,   496,   7,   6, UNI_SC__KHOJ }   /* script=khojki */,
-  {     2,  6114,  4882,   3,  19, UNI_EGYP }   /* sc=egyptianhieroglyphs */,
-  {    15,  6629,     0,  14,   0, UNI_LM }   /* modifierletter */,
-  {     4,  7018,  1037,   8,   4, UNI_ARABICEXTB }   /* inarabicextb */,
-  {     3,  1102,   248,   4,   4, UNI_ZZZZ }   /* scx=zzzz */,
-  {     0,     5,     0,   3,   0, UNI_EXT }   /* ext */,
-  {     2,  6112,  5711,   5,  16, UNI_INSC__SYLLABLEMODIFIER }   /* insc=syllablemodifier */,
-  {     0,  1796,  1657,   7,  11, UNI_SC__CPMN }   /* script=cyprominoan */,
-  {     1,   464,  4533,   2,  18, UNI_PI }   /* isinitialpunctuation */,
-  {     0,   313,  2771,   2,  12, UNI_KHMERSYMBOLS }   /* inkhmersymbols */,
-  {     0,  3474,  4918,   7,  16, UNI_ALCHEMICAL }   /* block=alchemicalsymbols */,
-  {     1,  5186,   356,  20,   2, UNI_EXTPICT }   /* extendedpictographic=y */,
-  {    16,  1879,   574,   4,   7, UNI_INAVESTAN }   /* blk=avestan */,
-  {     1,   464,  5284,   2,  20, UNI_PHLI }   /* isinscriptionalpahlavi */,
-  {     2,  1383,   601,   3,   4, -UNI_IDST }   /* idst=no */,
-  {     9,   103,     0,   2,   0, UNI_UPPERCASELETTER }   /* lu */,
-  {     2,  4122,   588,   5,   2, UNI_XPOSIXLOWER }   /* lower=t */,
-  {     0,  7823,  6309,   5,  13, UNI_CJKCOMPAT }   /* incjkcompatibility */,
-  {     3,  1382,   356,   8,   4, UNI_XIDS }   /* xidstart=yes */,
-  {     2,  2692,  5797,  10,   9, UNI_ARABICEXTA }   /* blk=arabicextendeda */,
-  {     8,  6039,  2813,   7,   6, UNI_MAHJONG }   /* block=mahjong */,
-  {     9,   464,  2463,   2,   5, UNI_JOINC }   /* isjoinc */,
-  {     0,  1271,     0,   9,   0, UNI_SIND }   /* khudawadi */,
-  {     2,  2033,   602,   5,   3, -UNI_XPOSIXALPHA }   /* alpha=no */,
-  {     0,  2253,   552,  11,   3, UNI_IN__14 }   /* presentin=14.0 */,
-  {     1,  5888,   356,   5,   4, UNI__PERL_NCHAR }   /* nchar=yes */,
-  {     1,  7208,  3933,   9,  14, UNI_SK }   /* category=modifiersymbol */,
-  {     1,   464,   287,   2,   5, UNI_NSHU }   /* isnushu */,
-  {     8,  3474,  2986,   6,  14, UNI_INPSALTERPAHLAVI }   /* block=psalterpahlavi */,
-  {    18,  7880,     0,   5,   0, UNI_CJK }   /* iscjk */,
-  {     2,  4355,   742,  17,   4, UNI_MAND }   /* scriptextensions=mand */,
-  {     0,  7828,   602,  16,   3, -UNI_UIDEO }   /* unifiedideograph=no */,
-  {     8,  1377,   655,   3,   2, UNI_WB__MB }   /* wb=mb */,
-  {     0,  1796,  1255,   7,   4, UNI_SOYO }   /* script=soyo */,
-  {     0,  5844,  8319,   5,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* issupsymbolsandpictographs */,
-  {    11,  4355,   469,  17,   4, UNI_SOGO }   /* scriptextensions=sogo */,
-  {     1,  3462,  5797,  12,   9, UNI_ETHIOPICEXTA }   /* blk=ethiopicextendeda */,
-  {     0,  6114,   991,   3,   4, UNI_HATR }   /* sc=hatr */,
-  {     7,   464,  7385,   2,  18, UNI_PHONETICEXT }   /* isphoneticextensions */,
-  {     6,  7605,     0,  21,   0, UNI_LB__H2 }   /* hangulsyllabletype=lv */,
-  {     5,  8533,  4388,   8,  15, UNI_SUTTONSIGNWRITING }   /* block=suttonsignwriting */,
-  {     2,  6025,  6878,   9,  20, UNI_GEOMETRICSHAPESEXT }   /* block=geometricshapesextended */,
-  {     1,   600,  1679,   3,   3, UNI_DT__FRA }   /* dt=fra */,
-  {     4,  5099,  2275,   6,   6, UNI__PERL_IDCONT }   /* _perl_idcont */,
-  {     1,   275,    10,   4,   2, UNI_LB__CR }   /* gcb=cr */,
-  {     6,  2473,  3640,   3,   4, UNI_LISUSUP }   /* lisusup */,
-  {     0,   232,     0,   4,   0, UNI_XSUX }   /* xsux */,
-  {     0,  3823,   356,  16,   4, UNI_STERM }   /* sentenceterminal=yes */,
-  {     8,    23,   602,   4,   2, -UNI_POSIXXDIGIT }   /* ahex=n */,
-  {     6,   464,  6134,   2,  13, UNI_GLAGOLITICSUP }   /* isglagoliticsup */,
-  {     1,   313,   671,   2,   5, UNI_INOGHAM }   /* inogham */,
-  {     0,   378,   934,   5,   2, -UNI_GREXT }   /* grext=f */,
-  {    12,  1011,   588,   2,   2, UNI_CI }   /* ci=t */,
-  {     0,   464,  1248,   2,   4, UNI_SIDD }   /* issidd */,
-  {     0,   608,   645,   2,   3, UNI_idst_values_index }   /* idst= */,
-  {     1,  7688,  2243,  23,   4, UNI_JG__MANICHAEANAYIN }   /* joininggroup=manichaeanayin */,
-  {     0,  1879,  6134,   4,  13, UNI_GLAGOLITICSUP }   /* blk=glagoliticsup */,
-  {     1,  3474,  3637,   6,   7, UNI_LISUSUP }   /* block=lisusup */,
-  {     3,   464,  5787,   2,  19, UNI_JAMOEXTA }   /* ishanguljamoextendeda */,
-  {     1,  1102,  1009,   4,   4, UNI_LYCI }   /* scx=lyci */,
-  {     4,  1441,   934,   3,   6, -UNI_DEP }   /* dep=false */,
-  {    12,  1516,  4203,   3,  16, UNI_KITS }   /* iskhitansmallscript */,
-  {     0,  2926,  1110,   3,   7, UNI_SPECIALS }   /* inspecials */,
-  {     0,  6114,   244,   3,   4, UNI_SC__ZYYY }   /* sc=zyyy */,
-  {     0,  5888,   934,   5,   6, -UNI__PERL_NCHAR }   /* nchar=false */,
-  {     7,  2253,  2322,  10,  10, UNI_IN__NA }   /* presentin=unassigned */,
-  {    10,   464,  1927,   2,  12, UNI_GONG }   /* isgunjalagondi */,
-  {     0,  4450,  8340,   7,  34, UNI_DIACRITICALSFORSYMBOLS }   /* block=combiningdiacriticalmarksforsymbols */,
-  {     0,  7584,  1719,  18,   4, UNI_DT__VERT }   /* decompositiontype=vert */,
-  {     0,  1879,   429,   4,   3, UNI_INMRO }   /* blk=mro */,
-  {     0,   464,   132,   2,   4, UNI_MTEI }   /* ismtei */,
-  {    40,  5147,  4701,  14,  10, UNI_LATINEXTADDITIONAL }   /* block=latinextadditional */,
-  {     1,  7201,   256,  16,   2, UNI_CASEDLETTER }   /* generalcategory=lc */,
-  {    10,   296,  1155,   3,   2, UNI_NV__35 }   /* nv=35 */,
-  {     0,   887,  2056,   5,   2, UNI_IN__1_DOT_1 }   /* age=1.1 */,
-  {     1,  6114,  1198,   3,   4, UNI_SC__GRAN }   /* sc=gran */,
-  {     0,  1796,  1882,   6,   5, UNI_SC__KANA }   /* script=kana */,
-  {     1,  7208,    69,   9,   2, UNI_MN }   /* category=mn */,
-  {     8,  3000,   356,  13,   2, UNI_QMARK }   /* quotationmark=y */,
-  {     4,  5136,  2603,   5,  12, UNI_MISCTECHNICAL }   /* blk=misctechnical */,
-  {     7,  3823,   588,  16,   2, UNI_STERM }   /* sentenceterminal=t */,
-  {     0,   270,   934,   3,   2, -UNI_CWT }   /* cwt=f */,
-  {     0,  2973,     0,   5,   0, UNI_EPRES }   /* epres */,
-  {     1,  6114,  6103,   3,   9, UNI_XSUX }   /* sc=cuneiform */,
-  {     1,  4355,  1550,  16,  11, UNI_XPEO }   /* scriptextensions=oldpersian */,
-  {    28,  2463,   278,  11,   1, UNI_joinc_values_index }   /* joincontrol= */,
-  {     2,   275,  2680,   3,   3, UNI_RI }   /* gcb=ri */,
-  {     0,  1011,   602,   2,   2, -UNI_CI }   /* ci=n */,
-  {     0,  3351,  7173,  13,   2, UNI_NV__28 }   /* numericvalue=28 */,
-  {     1,   313,  1927,   2,  12, UNI_INGUNJALAGONDI }   /* ingunjalagondi */,
-  {     2,   925,   601,   2,   6, UNI_BPT__N }   /* bpt=none */,
-  {    41,  2275,   934,   3,   2, -UNI_IDC }   /* idc=f */,
-  {     0,  3748,  2104,  14,   8, UNI_NV__1_SLASH_6 }   /* numericvalue=1.667e-01 */,
-  {     2,   464,  2771,   2,  12, UNI_KHMERSYMBOLS }   /* iskhmersymbols */,
-  {     1,  6114,   967,   3,   8, UNI_SC__GUJR }   /* sc=gujarati */,
-  {     4,  6114,   776,   3,   7, UNI_OLCK }   /* sc=olchiki */,
-  {     3,  4355,   661,  17,   5, UNI_DOGR }   /* scriptextensions=dogra */,
-  {     0,  8244,  4341,  32,   4, UNI_CJKEXTA }   /* block=cjkunifiedideographsextensiona */,
-  {     6,  7317,  4758,  10,  18, UNI_BC__B }   /* bidiclass=paragraphseparator */,
-  {     1,   313,  5214,   2,   9, UNI_HALFMARKS }   /* inhalfmarks */,
-  {     3,  1597,   602,  10,   3, -UNI_SD }   /* softdotted=no */,
-  {     1,  3351,  2081,  13,   3, UNI_NV__500 }   /* numericvalue=500 */,
-  {     7,   313,  3285,   2,   6, UNI_INHEBREW }   /* inhebrew */,
-  {     1,   798,     0,   4,   0, UNI_LANA }   /* lana */,
-  {     0,  5205,     0,  18,   0, UNI_HALFMARKS }   /* combininghalfmarks */,
-  {     0,  7317,  5978,  10,  12, UNI_BC__AN }   /* bidiclass=arabicnumber */,
-  {     0,   257,   278,   4,   1, UNI_cwcf_values_index }   /* cwcf= */,
-  {     0,   464,    98,   2,   4, UNI_GURU }   /* isguru */,
-  {     0,  1377,    57,   4,   1, UNI_WB__MN }   /* wb=mn */,
-  {    10,  8533,  5358,   7,  17, UNI_SMALLKANAEXT }   /* block=smallkanaextension */,
-  {     0,  4355,   473,  17,   4, UNI_TNSA }   /* scriptextensions=tnsa */,
-  {     3,  3474,  1614,   6,  10, UNI_INWARANGCITI }   /* block=warangciti */,
-  {     7,  5147,  4441,  10,  10, UNI_LATINEXTB }   /* block=latinextendedb */,
-  {     0,  3474,   287,   6,   5, UNI_INNUSHU }   /* block=nushu */,
-  {     0,  3351,   584,  12,   3, UNI_NV__22 }   /* numericvalue=22 */,
-  {     4,  1440,   278,   2,   1, UNI_sd_values_index }   /* sd= */,
-  {     2,  4355,  1009,  17,   6, UNI_LYCI }   /* scriptextensions=lycian */,
-  {     0,  5586,  7068,  21,   7, UNI_GCB__PP }   /* graphemeclusterbreak=prepend */,
-  {     1,  6570,  6240,   3,   6, UNI_INPC__LEFT }   /* inpc=left */,
-  {     6,  1102,   868,   4,   4, UNI_TIRH }   /* scx=tirh */,
-  {     8,  6402,  4122,  14,   5, UNI_SB__LO }   /* sentencebreak=lower */,
-  {     9,   313,  6416,   2,  23, UNI_SHORTHANDFORMATCONTROLS }   /* inshorthandformatcontrols */,
-  {     0,   736,  5769,   3,  18, UNI_ENCLOSEDALPHANUMSUP }   /* inenclosedalphanumsup */,
-  {     4,  2625,   356,  13,   4, UNI_PATSYN }   /* patternsyntax=yes */,
-  {     1,  6011,  6142,  12,  12, UNI_ETHIOPICSUP }   /* block=ethiopicsupplement */,
-  {     0,   426,  5625,   3,  18, UNI_ANCIENTGREEKNUMBERS }   /* inancientgreeknumbers */,
-  {     3,   895,   299,   5,   2, UNI_AGE__9 }   /* age=v90 */,
-  {     5,  2260,  2056,   4,   2, UNI_IN__1_DOT_1 }   /* in=1.1 */,
-  {    16,    48,  1888,   1,   3, UNI_UCAS }   /* ucas */,
-  {     3,  3474,  1982,   6,   6, UNI_INSYRIAC }   /* block=syriac */,
-  {    18,  5136,  2042,   5,  11, UNI_INMENDEKIKAKUI }   /* blk=mendekikakui */,
-  { 52631,  8244,  3929,  32,   4, UNI_CJKEXTG }   /* block=cjkunifiedideographsextensiong */,
-  {    25,  1796,   120,   7,   4, UNI_LAO }   /* script=laoo */,
-  {     1,   313,   326,   2,   5, UNI_VSSUP }   /* invssup */,
-  {     0,  4901,   602,  13,   3, -UNI_EMOD }   /* emojimodifier=no */,
-  {     1,  1102,   656,   4,   5, UNI_BUHD }   /* scx=buhid */,
-  {     0,  2496,  1736,   3,   3, UNI_JG__KAF }   /* jg=kaf */,
-  {     1,  1102,  2041,   4,  12, UNI_MEND }   /* scx=mendekikakui */,
-  {    14,  3474,   909,   6,   8, UNI_INBALINESE }   /* block=balinese */,
-  {     8,   180,     0,   4,   0, UNI_RUNR }   /* runr */,
-  {     1,   738,   934,   2,   2, UNI_EA__F }   /* ea=f */,
-  {     0,  7201,   844,  16,   2, UNI_LO }   /* generalcategory=lo */,
-  {     0,  1410,  1304,   7,   2, UNI_CCC__20 }   /* ccc=ccc20 */,
-  {     0,  1102,   540,   4,   6, UNI_TNSA }   /* scx=tangsa */,
-  {     3,  4355,  4107,  17,   4, UNI_HANG }   /* scriptextensions=hang */,
-  {     3,  8007,     0,  24,   0, UNI_CJK }   /* blk=cjkunifiedideographs */,
-  {     0,  7208,  4485,   9,  15, UNI_TITLE }   /* category=titlecaseletter */,
-  {     1,  5147,  3704,   7,  15, UNI_LINEARBIDEOGRAMS }   /* block=linearbideograms */,
-  {     0,  6114,   232,   3,   4, UNI_XSUX }   /* sc=xsux */,
-  {   101,  1796,   240,   7,   4, UNI_ZANB }   /* script=zanb */,
-  {     8,  5147,   660,  18,   2, UNI_LATINEXTD }   /* block=latinextendedd */,
-  {     2,  6112,  6856,  14,  11, UNI_INSC__CONSONANTPLACEHOLDER }   /* insc=consonantplaceholder */,
-  {     9,  7527,  2014,   3,   2, UNI_LB__H3 }   /* lb=h3 */,
-  {     0,  1059,  1769,   4,   3, UNI_nfkdqc_values_index }   /* nfkdqc= */,
-  {     2,  1915,   959,   8,   6, UNI_GREXT }   /* graphemeextend */,
-  {     0,   378,   588,   5,   2, UNI_GREXT }   /* grext=t */,
-  {    32,  2678,  4418,   3,  15, UNI_BC__CS }   /* bc=commonseparator */,
-  {     7,   306,   588,   5,   5, UNI__PERL_PATWS }   /* patws=true */,
-  {     0,  1796,   220,   7,   4, UNI_TOTO }   /* script=toto */,
-  {     0,  4122,   933,   8,   7, -UNI_XPOSIXLOWER }   /* lowercase=false */,
-  {     8,  2692,  1491,  10,   4, UNI_ARABICEXTA }   /* blk=arabicexta */,
-  {     1,  3474,   372,   6,   6, UNI_INGOTHIC }   /* block=gothic */,
-  {     4,   833,     0,   4,   0, UNI_TERM }   /* term */,
-  {     0,   513,     0,   4,   0, UNI_NV__3 }   /* nv=3 */,
-  {     2,   464,  1227,   2,   7, UNI_MULT }   /* ismultani */,
-  {    12,   600,  4208,   3,   5, UNI_DT__SML }   /* dt=small */,
-  {    17,  2181,  2060,   8,   4, UNI_NV__7_SLASH_12 }   /* nv=5.833e-01 */,
-  {     0,  7740,   345,  10,   2, UNI_ideo_values_index }   /* ideographic= */,
-  {     0,  6112,  4050,   5,  12, UNI_INSC__NUMBERJOINER }   /* insc=numberjoiner */,
-  {     0,  4355,  3435,  17,  15, UNI_ZANB }   /* scriptextensions=zanabazarsquare */,
-  {     0,  2981,   299,   4,   2, UNI_IN__9 }   /* in=v90 */,
-  {    18,  6114,    39,   3,   4, UNI_BATK }   /* sc=batk */,
-  {     0,  1410,   391,   7,   2, UNI_CCC__26 }   /* ccc=ccc26 */,
-  {     0,  1977,  4500,   5,   5, UNI_POSIXUPPER }   /* posixupper */,
-  {     0,  2274,     0,   4,   0, UNI_XIDC }   /* xidc */,
-  {     0,   502,     0,   4,   0, UNI_LYDI }   /* lydi */,
-  {    79,  1879,  4827,   4,  15, UNI_BAMUMSUP }   /* blk=bamumsupplement */,
-  {     0,  2483,  3228,   8,   5, UNI_XPOSIXALNUM }   /* isxposixalnum */,
-  {     3,  3462,  1037,  12,   4, UNI_ETHIOPICEXTB }   /* blk=ethiopicextb */,
-  {    19,  3338,   602,  13,   3, UNI_DT__CAN }   /* nfdquickcheck=no */,
-  {     8,  1867,   602,  12,   3, -UNI_BIDIM }   /* bidimirrored=no */,
-  {     0,  6114,  1308,   3,   9, UNI_ITAL }   /* sc=olditalic */,
-  {     0,  6114,   188,   3,   4, UNI_SGNW }   /* sc=sgnw */,
-  {     0,  5147,  1037,  11,   4, UNI_LATINEXTB }   /* block=latinextb */,
-  {     0,  3594,     0,   2,   0, UNI_NL }   /* nl */,
-  {     0,   555,  2128,   4,   3, UNI_AGE__3_DOT_1 }   /* age=3.1 */,
-  {     0,   464,  1915,   2,   5, UNI_XPOSIXGRAPH }   /* isgraph */,
-  {     0,  3915,     0,  17,   0, UNI_EPRES }   /* emojipresentation */,
-  {     0,    34,  1190,   1,   8, UNI_BENG }   /* isbengali */,
-  {     1,  1796,   661,   7,   5, UNI_SC__DOGR }   /* script=dogra */,
-  {     0,  5718,   602,   4,   2, -UNI_EMOD }   /* emod=n */,
-  {     2,   637,     0,   7,   0, UNI_HANO }   /* hanunoo */,
-  {     0,  1796,  1248,   7,   4, UNI_SIDD }   /* script=sidd */,
-  {    22,   275,   959,   4,   6, UNI_GCB__EX }   /* gcb=extend */,
-  {     0,  1879,   493,   7,   3, UNI_KANBUN }   /* blk=kanbun */,
-  {     4,  1539,    64,   3,   3, UNI_CHRS }   /* ischrs */,
-  {     0,  1796,   244,   7,   4, UNI_SC__ZYYY }   /* script=zyyy */,
-  {     0,  2181,     0,   4,   0, UNI_NV__5 }   /* nv=5 */,
-  {     0,  3823,   934,  16,   2, -UNI_STERM }   /* sentenceterminal=f */,
-  {     1,   313,  5806,   2,  19, UNI_MONGOLIANSUP }   /* inmongoliansupplement */,
-  {     0,   736,  8047,   3,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* inegyptianhieroglyphformatcontrols */,
-  {     1,  6039,  8307,   7,  33, UNI_MISCPICTOGRAPHS }   /* block=miscellaneoussymbolsandpictographs */,
-  {    12,  4355,   749,  17,   7, UNI_MARC }   /* scriptextensions=marchen */,
-  {     3,  2625,   602,  13,   2, -UNI_PATSYN }   /* patternsyntax=n */,
-  {    10,   464,  1003,   2,   4, UNI_LEPC }   /* islepc */,
-  {    13,  1879,   618,   4,   7, UNI_INELYMAIC }   /* blk=elymaic */,
-  {     0,  2363,  1491,  10,   4, UNI_ETHIOPICEXTA }   /* inethiopicexta */,
-  {     1,  4291,  3594,  10,   2, UNI_LB__NL }   /* linebreak=nl */,
-  {     0,  5087,  1591,  10,   2, UNI_LB__LF }   /* wordbreak=lf */,
-  {     0,  3474,  6439,   6,  13, UNI_ZNAMENNYMUSIC }   /* block=znamennymusic */,
-  {     0,   464,  6134,   2,  10, UNI_GLAG }   /* isglagolitic */,
-  {     4,  8599,     0,  18,   0, UNI_CANS }   /* canadianaboriginal */,
-  {     2,   464,   148,   2,   4, UNI_ORYA }   /* isorya */,
-  {     1,   220,     0,   4,   0, UNI_TOTO }   /* toto */,
-  {     0,  3669,  3665,  12,   4, UNI_JG__MALAYALAMLLLA }   /* jg=malayalamllla */,
-  {     1,  5544,   356,  21,   2, UNI_CWT }   /* changeswhentitlecased=y */,
-  {     0,  1102,   661,   4,   4, UNI_DOGR }   /* scx=dogr */,
-  {     1,  6114,   106,   3,   4, UNI_HMNG }   /* sc=hmng */,
-  {     2,   229,     0,   2,   0, UNI_PE }   /* pe */,
-  {    11,  6379,  4962,  13,  16, UNI_JG__HANIFIROHINGYAPA }   /* joininggroup=hanifirohingyapa */,
-  {     4,  4500,   602,   5,   2, -UNI_XPOSIXUPPER }   /* upper=n */,
-  {     0,  4355,   156,  17,   4, UNI_OUGR }   /* scriptextensions=ougr */,
-  {     0,  1102,    94,   4,   4, UNI_GUJR }   /* scx=gujr */,
-  {    10,   313,  6103,   2,   9, UNI_INCUNEIFORM }   /* incuneiform */,
-  {     1,  2726,   117,   3,   2, UNI_XPOSIXDIGIT }   /* gc=nd */,
-  {     3,  6402,  2728,  13,   6, UNI_SB__XX }   /* sentencebreak=other */,
-  {    16,  7201,  1582,  16,   6, UNI_L }   /* generalcategory=letter */,
-  {    14,  1410,  1302,   8,   2, UNI_CCC__103 }   /* ccc=ccc103 */,
-  {     0,  1702,  5797,   8,   9, UNI_ARABICEXTA }   /* isarabicextendeda */,
-  {     3,  6402,     0,  14,   0, UNI_sb_values_index }   /* sentencebreak= */,
-  {     5,  7201,   115,  16,   2, UNI_SK }   /* generalcategory=sk */,
-  {     1,  2474,  5797,   9,   9, UNI_MYANMAREXTA }   /* ismyanmarextendeda */,
-  {     4,  2496,  2824,   3,  11, UNI_JG__ROHINGYAYEH }   /* jg=rohingyayeh */,
-  {     0,   343,   771,   4,   2, UNI_CCC__21 }   /* ccc=21 */,
-  {    20,  4355,    94,  17,   4, UNI_GUJR }   /* scriptextensions=gujr */,
-  {     1,  2474,  2603,   3,  12, UNI_MISCTECHNICAL }   /* ismisctechnical */,
-  {     0,  2712,     0,  14,   0, UNI_ECOMP }   /* emojicomponent */,
-  {     4,  4776,   933,  16,   7, -UNI__PERL_PATWS }   /* patternwhitespace=false */,
-  {     0,  4615,  2762,   5,   9, UNI_ALPHABETICPF }   /* inalphabeticpf */,
-  {     1,   409,   602,   3,   3, -UNI_DIA }   /* dia=no */,
-  {     4,  3164,   278,  14,   1, UNI_grext_values_index }   /* graphemeextend= */,
-  {     3,  3474,  1027,   6,   6, UNI_INYEZIDI }   /* block=yezidi */,
-  {     2,  1856,   278,  11,   1, UNI_bidic_values_index }   /* bidicontrol= */,
-  {     0,  2625,  1104,  12,   3, UNI_PATSYN }   /* patternsyntax=t */,
-  {    11,  1796,    78,   7,   4, UNI_SC__CYRL }   /* script=cyrl */,
-  {     3,  6114,    31,   3,   4, UNI_ARMI }   /* sc=armi */,
-  {     2,  4437,     0,  14,   0, UNI_LATINEXTB }   /* latinextendedb */,
-  {     8,    23,   588,   4,   5, UNI_POSIXXDIGIT }   /* ahex=true */,
-  {    14,  8276,  2783,  22,   9, UNI_INSC__NONJOINER }   /* indicsyllabiccategory=nonjoiner */,
-  {     1,    12,     0,   2,   0, UNI_PC }   /* pc */,
-  {    21,  6025,  2332,   7,  12, UNI_GREEKEXT }   /* block=greekextended */,
-  {     1,   313,  3839,   2,  16, UNI_TANGUTCOMPONENTS }   /* intangutcomponents */,
-  {     0,  3450,  4590,  12,   9, UNI_CYRILLICEXTC }   /* blk=cyrillicextendedc */,
-  {     1,   313,  2401,   2,  11, UNI_INNANDINAGARI }   /* innandinagari */,
-  {     1,  2496,  2688,   4,   3, UNI_JG__ALEF }   /* jg=alef */,
-  {     0,  7201,  4533,  16,  18, UNI_PI }   /* generalcategory=initialpunctuation */,
-  {     1,  4783,   933,   9,   7, -UNI_XPOSIXSPACE }   /* whitespace=false */,
-  {     0,  7527,  2581,   3,   9, UNI_LB__SG }   /* lb=surrogate */,
-  {     0,   464,  1326,   2,   9, UNI_ORKH }   /* isoldturkic */,
-  {     1,   536,   595,   3,   2, UNI_SB__SE }   /* sb=se */,
-  {     1,  5607,  6996,  15,  11, UNI_IDENTIFIERTYPE__RECOMMENDED }   /* identifiertype=recommended */,
-  {     2,  6114,    19,   3,   4, UNI_AGHB }   /* sc=aghb */,
-  {     3,  1704,  6142,   4,  12, UNI_ARABICSUP }   /* arabicsupplement */,
-  {     3,  1879,  1289,   4,   9, UNI_INNEWTAILUE }   /* blk=newtailue */,
-  {    15,  7208,  3514,   9,  13, UNI_ZL }   /* category=lineseparator */,
-  {     0,  3351,   772,  13,   2, UNI_NV__17 }   /* numericvalue=17 */,
-  {     0,  7740,   602,  11,   3, -UNI_IDEO }   /* ideographic=no */,
-  {     1,  7527,    57,   3,   2, UNI_LB__NS }   /* lb=ns */,
-  {     0,  7584,  6944,  21,   5, UNI_DT__NONCANON }   /* decompositiontype=noncanon */,
-  {     0,   343,  6967,   3,   3, UNI_CCC__27 }   /* ccc=27 */,
-  {    21,  1879,  6103,   4,   9, UNI_INCUNEIFORM }   /* blk=cuneiform */,
-  {     1,   313,  2217,   2,  12, UNI_INOLDHUNGARIAN }   /* inoldhungarian */,
-  {     1,   651,     0,   5,   0, UNI_ADLM }   /* adlam */,
-  {     0,  8276,     0,  22,   0, UNI_insc_values_index }   /* indicsyllabiccategory= */,
-  {     0,  2926,  4641,   3,   8, UNI_SYRIACSUP }   /* insyriacsup */,
-  {     0,   464,  3991,   2,   7, UNI_BRAI }   /* isbraille */,
-  {     0,   875,   588,   5,   5, UNI_UIDEO }   /* uideo=true */,
-  {    14,   343,  3902,   4,  13, UNI_CCC__IS }   /* ccc=iotasubscript */,
-  {     3,  7338,  6252,  20,  10, UNI_BC__RLE }   /* bidiclass=righttoleftembedding */,
-  {     0,  5748,  4538,  12,  13, UNI_SUPPUNCTUATION }   /* insupplementalpunctuation */,
-  {     0,  7688,  4178,  23,   4, UNI_JG__MANICHAEANKAPH }   /* joininggroup=manichaeankaph */,
-  {     1,   265,   588,   5,   2, UNI_CWKCF }   /* cwkcf=t */,
-  {     4,  1977,  3060,   5,   6, UNI_POSIXXDIGIT }   /* posixxdigit */,
-  {     2,  1395,  4629,   4,  12, UNI_LATIN1 }   /* latin1supplement */,
-  {    12,   383,   356,   6,   4, UNI_HYPHEN }   /* hyphen=yes */,
-  {     1,   625,   601,   6,   4, -UNI_EXTPICT }   /* extpict=no */,
-  {     0,  5523,   356,  21,   4, UNI_CWL }   /* changeswhenlowercased=yes */,
-  {     0,  2726,  4081,   3,  11, UNI_P }   /* gc=punctuation */,
-  {     1,   628,     0,   2,   0, UNI_PI }   /* pi */,
-  {     1,  1441,   588,   3,   2, UNI_DEP }   /* dep=t */,
-  {     1,  1216,  5797,   4,   9, UNI_KANAEXTA }   /* kanaextendeda */,
-  {     0,  4582,     0,  16,   0, UNI_BOPOMOFOEXT }   /* bopomofoextended */,
-  {     1,  6039,   743,   7,   6, UNI_INMANDAIC }   /* block=mandaic */,
-  {     0,  4355,   783,  17,   4, UNI_OSMA }   /* scriptextensions=osma */,
-  {     1,  7791,     0,  32,   0, UNI_INIDC }   /* ideographicdescriptioncharacters */,
-  {    10,  6114,  2041,   3,   4, UNI_MEND }   /* sc=mend */,
-  {    14,  7823,  8407,   5,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* incjkcompatibilityideographs */,
-  {     0,  3351,   346,  12,   3, UNI_NV__11 }   /* numericvalue=11 */,
-  {    18,  6379,  6399,  13,   3, UNI_JG__QAF }   /* joininggroup=qaf */,
-  {     5,  1657,     0,  11,   0, UNI_CPMN }   /* cyprominoan */,
-  {     1,  1495,     0,   4,   0, UNI_JAVA }   /* java */,
-  {     1,   313,  1508,   2,   8, UNI_INUGARITIC }   /* inugaritic */,
-  {     0,  3763,     0,  16,   0, UNI_NV__5_SLASH_8 }   /* numericvalue=5/8 */,
-  {     4,   313,  6833,   2,  23, UNI_BYZANTINEMUSIC }   /* inbyzantinemusicalsymbols */,
-  {     1,   608,  5929,   3,   2, UNI_ideo_values_index }   /* ideo= */,
-  {     2,   464,   212,   2,   4, UNI_TGLG }   /* istglg */,
-  {     3,  6114,   502,   3,   6, UNI_LYDI }   /* sc=lydian */,
-  {     0,   513,  6215,   4,   8, UNI_NV__1_SLASH_320 }   /* nv=3.125e-03 */,
-  {    15,    75,   934,   3,   6, -UNI_CWU }   /* cwu=false */,
-  {    56,  2205,  2092,   8,   4, UNI_NV__1_SLASH_12 }   /* nv=8.333e-02 */,
-  {     0,   868,     0,   7,   0, UNI_TIRH }   /* tirhuta */,
-  {     0,   464,  2986,   2,  14, UNI_PHLP }   /* ispsalterpahlavi */,
-  {     0,  2981,   292,   4,   2, UNI_IN__3 }   /* in=v30 */,
-  {     0,   508,   602,   5,   3, UNI_DT__CAN }   /* nfdqc=no */,
-  {     4,  4726,  2617,  14,   8, UNI_NV__3_SLASH_5 }   /* numericvalue=6.000e-01 */,
-  {     0,   313,  1657,   2,  11, UNI_INCYPROMINOAN }   /* incyprominoan */,
-  {     0,  2792,  6142,   8,   5, UNI_CYRILLICSUP }   /* iscyrillicsup */,
-  {     3,   464,  5886,   2,  21, UNI__PERL_NCHAR }   /* isnoncharactercodepoint */,
-  {     5,   686,     0,   5,   0, UNI_TAKR }   /* takri */,
-  {    49,   306,   356,   5,   4, UNI__PERL_PATWS }   /* patws=yes */,
-  {     1,   275,  7068,   4,   7, UNI_GCB__PP }   /* gcb=prepend */,
-  {    10,  1102,  5727,   4,  21, UNI_PRTI }   /* scx=inscriptionalparthian */,
-  {     0,  1796,   409,   7,   4, UNI_DIAK }   /* script=diak */,
-  {     0,    34,  4140,   1,  12, UNI_INPUNCTUATION }   /* inpunctuation */,
-  {     4,   464,   103,   2,   2, UNI_UPPERCASELETTER }   /* islu */,
-  {     3,  3763,   764,  14,   2, UNI_NV__5_SLASH_2 }   /* numericvalue=5/2 */,
-  {     6,  6803,   602,  20,   2, -UNI_CE }   /* compositionexclusion=n */,
-  {     2,  1125,     0,   8,   0, UNI_TFNG }   /* tifinagh */,
-  {    16,  7823,     0,  22,   0, UNI_CJK }   /* incjkunifiedideographs */,
-  {     1,  4122,     0,   5,   0, UNI_XPOSIXLOWER }   /* lower */,
-  {     0,  6749,   278,  25,   1, UNI_cwkcf_values_index }   /* changeswhennfkccasefolded= */,
-  {     4,  1102,  1009,   4,   6, UNI_LYCI }   /* scx=lycian */,
-  {     7,  4291,   383,  10,   2, UNI_LB__HY }   /* linebreak=hy */,
-  {     0,  4355,   372,  17,   6, UNI_GOTH }   /* scriptextensions=gothic */,
-  {     2,  6402,  6276,  14,   6, UNI_SB__FO }   /* sentencebreak=format */,
-  {     0,   464,  2486,   2,  10, UNI_POSIXBLANK }   /* isposixblank */,
-  {     9,  6025,  5223,   8,  16, UNI_INPUNCTUATION }   /* block=generalpunctuation */,
-  {     0,  6114,   502,   3,   4, UNI_LYDI }   /* sc=lydi */,
-  {     1,     5,   601,   2,   3, -UNI_EXT }   /* ext=n */,
-  {     1,  7740,  6573,  10,   3, UNI_IDEO }   /* ideographic=t */,
-  {     0,  5481,     0,  21,   0, UNI_CWCF }   /* changeswhencasefolded */,
-  {     2,   313,  6970,   2,  26, UNI_HALFANDFULLFORMS }   /* inhalfwidthandfullwidthforms */,
-  {     6,  1102,  1027,   4,   6, UNI_YEZI }   /* scx=yezidi */,
-  {     0,  6749,   356,  25,   2, UNI_CWKCF }   /* changeswhennfkccasefolded=y */,
-  {     8,  3090,   957,  10,   5, UNI_GEORGIANEXT }   /* blk=georgianext */,
-  {     0,  1395,  1491,   5,   4, UNI_LATINEXTA }   /* latinexta */,
-  {     0,  4515,   588,  18,   2, UNI_IDST }   /* idstrinaryoperator=t */,
-  {     0,  5544,   278,  21,   1, UNI_cwt_values_index }   /* changeswhentitlecased= */,
-  {     0,   464,  2625,   2,  13, UNI_PATSYN }   /* ispatternsyntax */,
-  {     0,  7880,  6334,   5,  18, UNI_CJKCOMPATFORMS }   /* iscjkcompatibilityforms */,
-  {     1,  6944,   391,  24,   2, UNI_CCC__26 }   /* canonicalcombiningclass=26 */,
-  {     1,   464,   136,   2,   4, UNI_MYMR }   /* ismymr */,
-  {     1,  2441,  6781,   6,   9, UNI_CI }   /* iscaseignorable */,
-  {     1,  3053,   601,  12,   4, -UNI_POSIXXDIGIT }   /* asciihexdigit=no */,
-  {     0,  5502,   602,  21,   2, -UNI_CWCM }   /* changeswhencasemapped=n */,
-  {     0,  1102,   997,   4,   6, UNI_KTHI }   /* scx=kaithi */,
-  {     1,  4450,  4645,  13,  11, UNI_CYRILLICSUP }   /* block=cyrillicsupplement */,
-  {     0,    37,     0,   1,   0, UNI_S }   /* s */,
-  {     9,  6114,   909,   3,   8, UNI_BALI }   /* sc=balinese */,
-  {    10,  1102,   917,   4,   4, UNI_BASS }   /* scx=bass */,
-  {     3,  3474,  5797,  12,   9, UNI_ARABICEXTA }   /* block=arabicextendeda */,
-  {     0,  4355,  1561,  17,  10, UNI_PHNX }   /* scriptextensions=phoenician */,
-  {     9,   257,   602,   4,   2, -UNI_CWCF }   /* cwcf=n */,
-  {     0,    34,    66,   1,   5, UNI_CPMN }   /* iscpmn */,
-  {     0,   464,   786,   2,   3, UNI_ANY }   /* isany */,
-  {     0,  3915,  2261,  16,   2, UNI_epres_values_index }   /* emojipresentation= */,
-  {     1,  4450,  7908,   7,  15, UNI_CUNEIFORMNUMBERS }   /* block=cuneiformnumbers */,
-  {     0,  5166,     0,  20,   0, UNI_PC }   /* connectorpunctuation */,
-  {     3,  3351,  2207,  12,  10, UNI_NV__1_SLASH_12 }   /* numericvalue=8.333e-02 */,
-  {     5,    15,    32,   1,   3, UNI_ARMI }   /* armi */,
-  {     1,  5886,     0,  21,   0, UNI__PERL_NCHAR }   /* noncharactercodepoint */,
-  {     0,   464,  5544,   2,  21, UNI_CWT }   /* ischangeswhentitlecased */,
-  {     9,  1102,   176,   4,   4, UNI_ROHG }   /* scx=rohg */,
-  {     0,  6114,  1826,   3,   4, UNI_SC__SYLO }   /* sc=sylo */,
-  {     6,   372,     0,   4,   0, UNI_GOTH }   /* goth */,
-  {     1,  1879,   666,   4,   5, UNI_INLIMBU }   /* blk=limbu */,
-  {     2,  7208,  3947,   9,  14, UNI_ZS }   /* category=spaceseparator */,
-  {     1,  2712,   588,   5,   5, UNI_EMOJI }   /* emoji=true */,
-  {     2,  2253,   392,  10,   3, UNI_IN__6_DOT_3 }   /* presentin=6.3 */,
-  {     1,   464,  7377,   2,  26, UNI_KATAKANAEXT }   /* iskatakanaphoneticextensions */,
-  {     0,  8007,  4464,   7,   4, UNI_CJKEXTC }   /* blk=cjkextc */,
-  {     0,  3474,  4793,   6,  18, UNI_RUMI }   /* block=ruminumeralsymbols */,
-  {    14,  1214,  1037,   6,   4, UNI_KANAEXTB }   /* inkanaextb */,
-  {     7,  7317,  7115,  10,  17, UNI_BC__ES }   /* bidiclass=europeanseparator */,
-  {     3,  6944,   349,  25,   1, UNI_CCC__28 }   /* canonicalcombiningclass=28 */,
-  {     2,   464,  4062,   2,  15, UNI_VEDICEXT }   /* isvedicextensions */,
-  {     1,  4515,   602,  18,   2, -UNI_IDST }   /* idstrinaryoperator=n */,
-  {     7,  2712,   356,  14,   2, UNI_ECOMP }   /* emojicomponent=y */,
-  {     1,   464,  4437,   2,  14, UNI_LATINEXTB }   /* islatinextendedb */,
-  {     0,  2474,  1037,   9,   4, UNI_MYANMAREXTB }   /* ismyanmarextb */,
-  {     2,  7527,    72,   3,   2, UNI_LB__PR }   /* lb=pr */,
-  {    16,   916,   587,   4,   6, UNI_EBASE }   /* ebase=true */,
-  {     0,  1967,   356,   7,   4, UNI_RADICAL }   /* radical=yes */,
-  {     1,   464,  2428,   2,  13, UNI_IPAEXT }   /* isipaextensions */,
-  {     3,  1796,   983,   7,   4, UNI_SC__HIRA }   /* script=hira */,
-  {     2,  1102,  1495,   4,   8, UNI_JAVA }   /* scx=javanese */,
-  {     0,    19,  4737,   2,   3, UNI_AGE__6 }   /* age=6 */,
-  {     0,  5502,   588,  21,   2, UNI_CWCM }   /* changeswhencasemapped=t */,
-  {     1,  3462,  7175,   5,  26, UNI_ENCLOSEDCJK }   /* blk=enclosedcjklettersandmonths */,
-  {     0,  6944,  6491,  22,   3, UNI_CCC__A }   /* canonicalcombiningclass=a */,
-  {     8,   296,   800,   3,   3, UNI_NV__NAN }   /* nv=nan */,
-  {     1,  6112,   129,  20,   2, UNI_INSC__CONSONANTPREFIXED }   /* insc=consonantprefixed */,
-  {     0,  5087,  3416,  12,   4, UNI_WB__MN }   /* wordbreak=midnum */,
-  {     9,   343,  2702,   4,  10, UNI_CCC__6 }   /* ccc=hanreading */,
-  {    30,  3722,   588,   4,   2, UNI_MATH }   /* math=t */,
-  {     0,  7584,  1162,  18,   6, UNI_DT__ENC }   /* decompositiontype=circle */,
-  {     0,  4355,  2041,  17,   4, UNI_MEND }   /* scriptextensions=mend */,
-  {     0,   464,  6803,   2,  20, UNI_CE }   /* iscompositionexclusion */,
-  {     1,  1856,  6573,   4,   3, UNI_BIDIC }   /* bidic=t */,
-  {     0,  3779,  1300,  14,   3, UNI_NV__7000 }   /* numericvalue=7000 */,
-  {     0,  1102,  3498,   4,   7, UNI_CPRT }   /* scx=cypriot */,
-  {     0,  2729,     0,   5,   0, UNI_C }   /* other */,
-  {     0,  1867,   588,   5,   5, UNI_BIDIM }   /* bidim=true */,
-  {     0,  1441,   588,  10,   2, UNI_DEP }   /* deprecated=t */,
-  {     0,  1102,  3285,   4,   6, UNI_HEBR }   /* scx=hebrew */,
-  {     2,  3381,     0,  15,   0, UNI_NARB }   /* oldnortharabian */,
-  {     0,  3474,  3543,   6,  16, UNI_HIGHPUSURROGATES }   /* block=highpusurrogates */,
-  {     7,  8007,     0,   7,   0, UNI_CJK }   /* blk=cjk */,
-  {     1,  3779,     0,  15,   0, UNI_NV__70 }   /* numericvalue=70 */,
-  {     2,   313,  1003,   2,   6, UNI_INLEPCHA }   /* inlepcha */,
-  {     2,   252,     0,   2,   0, UNI_CN }   /* cn */,
-  {     2,  1879,  1451,   4,  10, UNI_INDIVESAKURU }   /* blk=divesakuru */,
-  {     1,   464,   469,   2,   4, UNI_SOGO }   /* issogo */,
-  {     0,   343,   396,   4,   2, UNI_CCC__15 }   /* ccc=15 */,
-  {     0,  7132,  1262,   8,   3, UNI_SUPPUAB }   /* blk=suppuab */,
-  {    14,  1879,  1614,   4,  10, UNI_INWARANGCITI }   /* blk=warangciti */,
-  {     1,  6025,  2332,   7,   7, UNI_GREEKEXT }   /* block=greekext */,
-  {     0,  3622,  6771,  12,   4, UNI_LATINEXTD }   /* islatinextendedd */,
-  {     2,  4355,  1320,  17,   4, UNI_PERM }   /* scriptextensions=perm */,
-  {     1,  7527,  3297,   3,  12, UNI_LB__IS }   /* lb=infixnumeric */,
-  {     0,  4107,     0,   6,   0, UNI_HANG }   /* hangul */,
-  {     6,  1796,   618,   7,   7, UNI_ELYM }   /* script=elymaic */,
-  {     6,  6114,   854,   3,   7, UNI_TAVT }   /* sc=taiviet */,
-  {    10,  3748,   763,  14,   3, UNI_NV__11_SLASH_2 }   /* numericvalue=11/2 */,
-  {     0,  1075,  1069,   4,   2, UNI_NV__2_SLASH_3 }   /* nv=2/3 */,
-  {    15,  1102,   749,   4,   7, UNI_MARC }   /* scx=marchen */,
-  {     8,   313,  1887,   2,   4, UNI_UCAS }   /* inucas */,
-  {     5,  2483,     0,  13,   0, UNI_XPOSIXBLANK }   /* isxposixblank */,
-  {     2,  3474,   749,   6,   7, UNI_INMARCHEN }   /* block=marchen */,
-  {     0,  3474,  6629,   6,  15, UNI_MODIFIERLETTERS }   /* block=modifierletters */,
-  {     1,  2253,  2053,  11,   3, UNI_IN__11 }   /* presentin=11.0 */,
-  {     2,  6114,  4107,   3,   4, UNI_SC__HANG }   /* sc=hang */,
-  {     1,  3367,  1303,  14,   5, UNI_NV__432000 }   /* numericvalue=432000 */,
-  {     4,  2981,   397,   4,   2, UNI_IN__5_DOT_1 }   /* in=v51 */,
-  {     2,  4355,  6103,  17,   9, UNI_XSUX }   /* scriptextensions=cuneiform */,
-  {     0,  3474,  6466,   6,  10, UNI_PUA }   /* block=privateuse */,
-  {    16,  4355,   232,  17,   4, UNI_XSUX }   /* scriptextensions=xsux */,
-  {     0,  6114,  2740,   3,   4, UNI_SC__COPT }   /* sc=copt */,
-  {     0,  5186,   602,  20,   3, -UNI_EXTPICT }   /* extendedpictographic=no */,
-  {     0,  2496,  7262,   3,  14, UNI_JG__NOJOININGGROUP }   /* jg=nojoininggroup */,
-  {     6,  1879,  3285,   4,   6, UNI_INHEBREW }   /* blk=hebrew */,
-  {    14,  2392,  3324,   3,  14, UNI_MISCPICTOGRAPHS }   /* inmiscpictographs */,
-  {    11,  1102,  4882,   4,  19, UNI_EGYP }   /* scx=egyptianhieroglyphs */,
-  {     0,   120,     0,   3,   0, UNI_LAO }   /* lao */,
-  {     0,  1382,   356,   4,   4, UNI_XIDS }   /* xids=yes */,
-  {     5,  1982,     0,   6,   0, UNI_SYRC }   /* syriac */,
-  {     2,   611,     0,   7,   0, UNI_ELBA }   /* elbasan */,
-  {     2,   343,  2127,   4,   2, UNI_CCC__13 }   /* ccc=13 */,
-  {     4,  7828,   602,  16,   2, -UNI_UIDEO }   /* unifiedideograph=n */,
-  {     0,  7527,  3423,   3,   4, UNI_LB__GL }   /* lb=glue */,
-  {     0,  7201,  4081,  16,  11, UNI_P }   /* generalcategory=punctuation */,
-  {     2,  2454,   994,   3,   3, UNI_GRAN }   /* isgran */,
-  {     0,  4355,  1009,  17,   4, UNI_LYCI }   /* scriptextensions=lyci */,
-  {     0,   464,    17,   2,   2, UNI_LM }   /* islm */,
-  {     7,  1174,  6982,   3,   9, UNI_EA__F }   /* ea=fullwidth */,
-  {     3,  2726,  3236,   3,  13, UNI_ME }   /* gc=enclosingmark */,
-  {     0,  4355,   184,  17,   4, UNI_SAMR }   /* scriptextensions=samr */,
-  {     3,    37,  5358,   1,  17, UNI_SMALLKANAEXT }   /* smallkanaextension */,
-  {     2,  6114,   637,   3,   7, UNI_SC__HANO }   /* sc=hanunoo */,
-  {     0,   555,   560,   4,   3, UNI_AGE__6 }   /* age=6.0 */,
-  {     8,  4433,  2579,   5,  12, UNI_LOWSURROGATES }   /* blk=lowsurrogates */,
-  {     0,  1102,  5340,   4,  10, UNI_DEVA }   /* scx=devanagari */,
-  {    16,  1102,   372,   4,   6, UNI_GOTH }   /* scx=gothic */,
-  {     5,  6749,     0,  25,   0, UNI_CWKCF }   /* changeswhennfkccasefolded */,
-  {     0,  2275,  5620,   9,   3, -UNI_IDC }   /* idcontinue=n */,
-  {     0,  6379,   705,  20,   4, UNI_JG__AFRICANNOON }   /* joininggroup=africannoon */,
-  {     2,  4322,   349,  14,   1, UNI_NV__38 }   /* numericvalue=38 */,
-  {     0,  3722,   934,   4,   2, -UNI_MATH }   /* math=f */,
-  {     0,   959,   278,   8,   1, UNI_ext_values_index }   /* extender= */,
-  {     1,  4433,  1698,   9,   4, UNI_LATINEXTF }   /* blk=latinextf */,
-  {     0,   464,   496,   2,   6, UNI_KHOJ }   /* iskhojki */,
-  {     1,  3474,   360,   6,   6, UNI_INCHAKMA }   /* block=chakma */,
-  {     4,   313,   220,   2,   4, UNI_INTOTO }   /* intoto */,
-  {    10,  1248,     0,   7,   0, UNI_SIDD }   /* siddham */,
-  {     1,  1011,   934,   2,   6, -UNI_CI }   /* ci=false */,
-  {     2,  4996,  4687,  13,   5, UNI_JG__MANICHAEANZAYIN }   /* jg=manichaeanzayin */,
-  {     5,  1102,  2041,   4,   4, UNI_MEND }   /* scx=mend */,
-  {     3,    12,   356,   3,   4, UNI_PCM }   /* pcm=yes */,
-  {     1,   464,  4598,   2,  16, UNI_PE }   /* isclosepunctuation */,
-  {     4,  4996,  4990,  13,   6, UNI_JG__MANICHAEANSAMEKH }   /* jg=manichaeansamekh */,
-  {     0,   313,  1133,   2,   8, UNI_INVITHKUQI }   /* invithkuqi */,
-  {     2,  7584,  6944,  21,   9, UNI_DT__NONCANON }   /* decompositiontype=noncanonical */,
-  {     0,   464,   117,   2,   2, UNI_XPOSIXDIGIT }   /* isnd */,
-  {     1,     0,  4552,   1,  15, UNI_LINEARBSYLLABARY }   /* linearbsyllabary */,
-  {     6,  1241,     0,   4,   0, UNI_PHAG }   /* phag */,
-  {     1,   464,  3518,   2,   9, UNI_Z }   /* isseparator */,
-  {     0,  4122,   934,   5,   6, -UNI_XPOSIXLOWER }   /* lower=false */,
-  {     3,   313,   287,   2,   5, UNI_INNUSHU }   /* innushu */,
-  {     8,  4355,   611,  17,   4, UNI_ELBA }   /* scriptextensions=elba */,
-  {     1,   464,    12,   2,   2, UNI_PC }   /* ispc */,
-  {     0,   313,  5397,   2,   3, UNI_PUA }   /* inpua */,
-  {     0,  6011,  7175,   7,  26, UNI_ENCLOSEDCJK }   /* block=enclosedcjklettersandmonths */,
-  {     0,   464,  1220,   2,   7, UNI_MAKA }   /* ismakasar */,
-  {    12,   212,     0,   4,   0, UNI_TGLG }   /* tglg */,
-  {     2,  7527,  3432,   3,   2, UNI_LB__ZW }   /* lb=zw */,
-  {     1,   735,     0,   7,   0, UNI_LINA }   /* lineara */,
-  {     0,  4338,   602,  17,   3, -UNI_RI }   /* regionalindicator=no */,
-  {    47,  4355,   666,  17,   5, UNI_LIMB }   /* scriptextensions=limbu */,
-  {     3,  1102,  4827,   4,   5, UNI_BAMU }   /* scx=bamum */,
-  {     0,  2353,  1491,  10,   4, UNI_CYRILLICEXTA }   /* incyrillicexta */,
-  {     0,   313,   337,   2,   6, UNI_INCARIAN }   /* incarian */,
-  {     0,  1102,   810,   4,   4, UNI_SYRC }   /* scx=syrc */,
-  {    32,  6799,  2261,  23,   2, UNI_compex_values_index }   /* fullcompositionexclusion= */,
-  {     1,   823,   934,   4,   2, -UNI_DASH }   /* dash=f */,
-  {     3,   464,   172,   2,   4, UNI_RJNG }   /* isrjng */,
-  {     1,  3474,  2229,   6,   8, UNI_PHAISTOS }   /* block=phaistos */,
-  {     7,  2253,   890,   9,   5, UNI_IN__10 }   /* presentin=10.0 */,
-  {     0,   261,   356,   4,   4, UNI_CWCM }   /* cwcm=yes */,
-  {     2,  4355,  5322,  17,   4, UNI_CHER }   /* scriptextensions=cher */,
-  {     0,  2974,  3807,  11,   2, UNI_IN__8 }   /* presentin=v80 */,
-  {     1,  2712,     0,   5,   0, UNI_EMOJI }   /* emoji */,
-  {     1,  1102,   148,   4,   4, UNI_ORYA }   /* scx=orya */,
-  {     5,  7605,  2344,  19,   9, UNI_GCB__V }   /* hangulsyllabletype=voweljamo */,
-  {     5,  7201,  3061,  16,   5, UNI_XPOSIXDIGIT }   /* generalcategory=digit */,
-  {     1,  1075,  6199,   4,   7, UNI_NV__20000000 }   /* nv=20000000 */,
-  {    12,  1879,  4857,   4,  15, UNI_TAMILSUP }   /* blk=tamilsupplement */,
-  {    28,  7431,  1155,  27,   2, UNI_CCC__35 }   /* canonicalcombiningclass=ccc35 */,
-  {     0,  1465,   355,   4,   3, UNI_XPOSIXSPACE }   /* space=y */,
-  {     1,  1377,  3151,   2,   3, UNI_WB__LE }   /* wb=le */,
-  {     0,   275,   703,   4,   2, UNI_WB__EB }   /* gcb=em */,
-  {     0,  2652,     0,  13,   0, UNI_VERTICALFORMS }   /* verticalforms */,
-  {     9,   265,   602,   5,   3, -UNI_CWKCF }   /* cwkcf=no */,
-  {     1,  6402,  1591,  14,   2, UNI_LB__LF }   /* sentencebreak=lf */,
-  {     0,  2496,  2506,   3,   3, UNI_JG__FEH }   /* jg=feh */,
-  {     6,  1867,     0,  12,   0, UNI_BIDIM }   /* bidimirrored */,
-  {     0,  1879,   818,   4,   7, UNI_SC__SHRD }   /* blk=sharada */,
-  {     1,  7317,   119,  10,   2, UNI_BC__AL }   /* bidiclass=al */,
-  {     0,  2948,   356,  13,   2, UNI_NFCQC__Y }   /* nfcquickcheck=y */,
-  {     0,  1441,   588,  10,   5, UNI_DEP }   /* deprecated=true */,
-  {     2,  4291,  3000,  10,   9, UNI_LB__QU }   /* linebreak=quotation */,
-  {     0,   306,   602,   5,   2, -UNI__PERL_PATWS }   /* patws=n */,
-  {     1,  4355,  1362,  17,   9, UNI_SAMR }   /* scriptextensions=samaritan */,
-  {     1,   464,   433,   2,   4, UNI_NKO }   /* isnkoo */,
-  {     0,   313,  1145,   3,   3, UNI_INTHAI }   /* inthai */,
-  {    12,  7880,  8407,   5,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* iscjkcompatibilityideographssupplement */,
-  {     1,  3058,   601,   7,   3, -UNI_XPOSIXXDIGIT }   /* hexdigit=n */,
-  {     0,  7527,   464,   3,   2, UNI_LB__IS }   /* lb=is */,
-  {     0,  5099,  6709,   6,  19, UNI__PERL_FOLDS_TO_MULTI_CHAR }   /* _perl_folds_to_multi_char */,
-  {     0,  4355,  4962,  17,  14, UNI_ROHG }   /* scriptextensions=hanifirohingya */,
-  {     6,   313,  4006,   2,  15, UNI_CURRENCYSYMBOLS }   /* incurrencysymbols */,
-  {     1,  2274,   587,  10,   3, UNI_XIDC }   /* xidcontinue=t */,
-  {     0,   464,  3595,   2,   9, UNI_LATINEXTE }   /* islatinexte */,
-  {     1,   464,   671,   2,   5, UNI_OGAM }   /* isogham */,
-  {     0,  2692,  8110,  10,  29, UNI_ARABICMATH }   /* blk=arabicmathematicalalphabeticsymbols */,
-  {     7,    34,    58,   1,   5, UNI_CHAM }   /* ischam */,
-  {     1,  1102,  1792,   4,   4, UNI_MONG }   /* scx=mong */,
-  {     0,   464,  1033,   2,   8, UNI_JAMOEXTB }   /* isjamoextb */,
+  {     3,   916,   933,   4,   3, -UNI_EBASE }   /* ebase=f */,
+  {     6,  7267,   255,  16,   2, UNI_CF }   /* generalcategory=cf */,
+  {     0,  1823,  4926,   7,   5, UNI_SC__TAML }   /* script=tamil */,
+  {     1,   552,  2084,   4,   2, UNI_AGE__11 }   /* age=11 */,
+  {     0,   537,     0,   6,   0, UNI_TNSA }   /* tangsa */,
+  {     1,  3832,  1805,  14,   5, UNI_NV__500000 }   /* numericvalue=500000 */,
+  {     1,  4970,   352,  16,   5, UNI_EBASE }   /* emojimodifierbase=yes */,
+  {     5,   309,   890,   2,   3, UNI_IN__10 }   /* in=10 */,
+  {     0,    33,  5409,   1,  11, UNI_SMALLKANAEXT }   /* smallkanaext */,
+  {     1,  7383,  4852,  10,  10, UNI_BC__WS }   /* bidiclass=whitespace */,
+  {     3,   597,  1707,   3,   8, UNI_DT__FRA }   /* dt=fraction */,
+  {     0,  1667,   909,   4,   8, UNI_INBALINESE }   /* blk=balinese */,
+  {     4,  2514,  3364,   3,  14, UNI_MISCPICTOGRAPHS }   /* ismiscpictographs */,
+  {     6,  7537,   934,  10,   2, -UNI_XPOSIXALPHA }   /* alphabetic=f */,
+  {    13,  1543,     0,   4,   0, UNI_KHAR }   /* khar */,
+  {     0,  3391,  1318,  13,   3, UNI_NV__200 }   /* numericvalue=200 */,
+  {     2,   461,    65,   2,   2, UNI_MN }   /* ismn */,
+  {    16,   629,   584,   5,   6, UNI_GRBASE }   /* grbase=true */,
+  {     1,   461,  2009,   2,   6, UNI_SYRC }   /* issyriac */,
+  {     0,  1102,  2244,   4,  12, UNI_HUNG }   /* scx=oldhungarian */,
+  {    14,  1801,  1805,   5,   6, UNI_NV__10000000 }   /* nv=10000000 */,
+  {     0,  1743,  1479,   4,   5, UNI_VERTSPACE }   /* vertspace */,
+  {     0,   733,  5820,   3,  15, UNI_ENCLOSEDALPHANUM }   /* inenclosedalphanum */,
+  {     7,  3848,  1805,  14,   4, UNI_NV__70000 }   /* numericvalue=70000 */,
+  {     5,  1102,   164,   4,   4, UNI_PHNX }   /* scx=phnx */,
+  {     0,   461,  1234,   2,   4, UNI_MULT }   /* ismult */,
+  {     0,  1667,  1125,   4,   8, UNI_INTIFINAGH }   /* blk=tifinagh */,
+  {     5,  7591,  2039,   3,   2, UNI_LB__BK }   /* lb=bk */,
+  {     2,  5799,  5149,   5,   7, UNI_SUPARROWSA }   /* insuparrowsa */,
+  {     3,  7591,  1165,   3,   2, UNI_LB__CL }   /* lb=cl */,
+  {     0,  1667,  6000,   4,  21, UNI_YIJING }   /* blk=yijinghexagramsymbols */,
+  {     0,  2930,     0,   4,   0, UNI_JT__T }   /* jt=t */,
+  {     0,  2256,     0,   8,   0, UNI_PHAISTOS }   /* phaistos */,
+  {    17,  2324,   369,   6,   6, UNI_INGOTHIC }   /* block=gothic */,
+  {     2,  8343,  6416,  29,  11, UNI_INSC__CONSONANTSUBJOINED }   /* indicsyllabiccategory=consonantsubjoined */,
+  {     1,  7011,  3147,  24,   5, UNI_CCC__A }   /* canonicalcombiningclass=above */,
+  {     0,  6165,  1255,   3,   4, UNI_SIDD }   /* sc=sidd */,
+  {     4,  5532,     0,  21,   0, UNI_CWCF }   /* changeswhencasefolded */,
+  {     0,     8,   599,   3,   3, -UNI_PCM }   /* pcm=no */,
+  {    11,   461,  2317,   2,   6, UNI_N }   /* isnumber */,
+  {     1,  1883,   274,  11,   1, UNI_bidic_values_index }   /* bidicontrol= */,
+  {    54,  1726,  7545,   6,  20, UNI_ARABICPFA }   /* isarabicpresentationformsa */,
+  {     0,  1424,   345,   8,   2, UNI_CCC__118 }   /* ccc=ccc118 */,
+  {     1,  1102,   414,   4,   4, UNI_HANO }   /* scx=hano */,
+  {     0,   605,  6621,   2,   3, UNI_IDC }   /* idc=t */,
+  {     3,  2324,  6514,   6,  10, UNI_PUA }   /* block=privateuse */,
+  {     2,  2523,  1659,   4,   8, UNI_XPOSIXSPACE }   /* isxperlspace */,
+  {     0,  3014,   288,  11,   2, UNI_IN__3 }   /* presentin=v30 */,
+  {    12,  7214,     0,  26,   0, UNI_CCC__12 }   /* canonicalcombiningclass=12 */,
+  {     6,   271,  3472,   4,   3, UNI_LB__ZWJ }   /* gcb=zwj */,
+  {     3,  2280,   389,  10,   3, UNI_IN__6_DOT_3 }   /* presentin=6.3 */,
+  {     1,  4424,  4620,  17,   7, UNI_LINB }   /* scriptextensions=linearb */,
+  {     1,  6076,  6945,   9,  20, UNI_GEOMETRICSHAPESEXT }   /* block=geometricshapesextended */,
+  {     2,   309,  4060,   2,   7, UNI_BRAI }   /* inbraille */,
+  {     0,  1492,  3639,   9,   9, UNI_GEORGIANEXT }   /* ingeorgianextended */,
+  {     3,  2832,  7467,  10,  13, UNI_CYRILLICSUP }   /* iscyrillicsupplementary */,
+  {     1,  1823,   108,   7,   4, UNI_KAWI }   /* script=kawi */,
+  {     1,   309,  7110,   2,  24, UNI_DIACRITICALSFORSYMBOLS }   /* incombiningmarksforsymbols */,
+  {     0,   461,    15,   2,   4, UNI_AGHB }   /* isaghb */,
+  {     0,  1734,  1609,   3,   9, UNI_SMALLFORMS }   /* issmallforms */,
+  {     0,  1102,   537,   4,   4, UNI_TANG }   /* scx=tang */,
+  {     0,  1198,  3938,   3,  16, UNI_UCAS }   /* incanadiansyllabics */,
+  {     1,  3014,  3876,  11,   2, UNI_IN__8 }   /* presentin=v80 */,
+  {     0,  8658,     0,  45,   0, UNI_UCASEXTA }   /* isunifiedcanadianaboriginalsyllabicsextendeda */,
+  {     9,  2324,  6986,   6,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* block=symbolsforlegacycomputing */,
+  {     3,  6236,     0,  16,   0, UNI_NV__100 }   /* numericvalue=100 */,
+  {     0,  7011,   289,  25,   1, UNI_CCC__20 }   /* canonicalcombiningclass=20 */,
+  {     0,   309,  1671,   2,   7, UNI_CJKEXTD }   /* incjkextd */,
+  {    16,  6450,  6324,  14,   6, UNI_SB__FO }   /* sentencebreak=format */,
+  {     0,  6165,   414,   3,   4, UNI_SC__HANO }   /* sc=hano */,
+  {     0,  7591,  2599,   3,  10, UNI_LB__NS }   /* lb=nonstarter */,
+  {    27,  1102,  1562,   4,   4, UNI_NAGM }   /* scx=nagm */,
+  {     2,  1272,  6576,   3,  21, UNI_INDICNUMBERFORMS }   /* iscommonindicnumberforms */,
+  {     2,  1667,  8278,   4,  33, UNI_MISCMATHSYMBOLSB }   /* blk=miscellaneousmathematicalsymbolsb */,
+  {     0,  4519,  7467,  14,  13, UNI_CYRILLICSUP }   /* block=cyrillicsupplementary */,
+  {     0,  8071,  7380,  30,   4, UNI_CJKEXTB }   /* blk=cjkunifiedideographsextensionb */,
+  {     0,  2220,  1805,   4,   5, UNI_NV__600000 }   /* nv=600000 */,
+  {     3,  4424,  1779,  17,  11, UNI_MEDF }   /* scriptextensions=medefaidrin */,
+  {     2,  7495,  1317,  28,   2, UNI_CCC__132 }   /* canonicalcombiningclass=ccc132 */,
+  {    16,  5778,     0,  21,   0, UNI_PRTI }   /* inscriptionalparthian */,
+  {    15,   377,   934,   3,   6, -UNI_EXT }   /* ext=false */,
+  {     0,   833,   353,   4,   2, UNI_TERM }   /* term=y */,
+  {     4,   309,  4896,   2,   5, UNI_INBAMUM }   /* inbamum */,
+  {     1,   461,   156,   2,   4, UNI_OUGR }   /* isougr */,
+  {     2,  4424,   450,  17,   4, UNI_MIAO }   /* scriptextensions=plrd */,
+  {    22,  7648,     0,  18,   0, UNI_dt_values_index }   /* decompositiontype= */,
+  {     0,  1102,  4896,   4,   4, UNI_BAMU }   /* scx=bamu */,
+  {     0,  7267,  5243,  20,  12, UNI_PO }   /* generalcategory=otherpunctuation */,
+  {    16,  7084,  6193,   6,   5, UNI_ARABICSUP }   /* inarabicsup */,
+  {     3,   461,  1465,   2,  10, UNI_DIAK }   /* isdivesakuru */,
+  {     4,   339,  8648,   4,  10, UNI_CCC__AR }   /* ccc=aboveright */,
+  {     1,  1667,  1592,   4,  10, UNI_INSAURASHTRA }   /* blk=saurashtra */,
+  {    21,  6163,  8522,   5,  16, UNI_INSC__VOWELINDEPENDENT }   /* insc=vowelindependent */,
+  {     1,  1667,  4161,   4,  15, UNI_DIACRITICALSEXT }   /* blk=diacriticalsext */,
+  {     1,   309,  5876,   2,  19, UNI_SUNDANESESUP }   /* insundanesesupplement */,
+  {     0,  2287,   546,   3,   3, UNI_IN__3 }   /* in=3.0 */,
+  {     0,   309,  1009,   2,   6, UNI_INLYCIAN }   /* inlycian */,
+  {     0,   309,    55,   2,   4, UNI_INCHAM }   /* incham */,
+  {     0,  4360,   306,  10,   2, UNI_LB__SP }   /* linebreak=sp */,
+  {     0,  4424,    15,  17,   4, UNI_AGHB }   /* scriptextensions=aghb */,
+  {     0,  1530,  5848,   6,   9, UNI_KANAEXTA }   /* iskanaextendeda */,
+  {     1,   339,   519,   3,   2, UNI_CCC__7 }   /* ccc=7 */,
+  {     0,  2324,  8660,   6,  42, UNI_UCASEXT }   /* block=unifiedcanadianaboriginalsyllabicsextended */,
+  {    31,  2287,  2199,   3,   3, UNI_IN__2 }   /* in=2.0 */,
+  {    12,   940,  1104,   5,   3, UNI_COMPEX }   /* compex=t */,
+  {    20,     2,  8407,   1,  34, UNI_DIACRITICALSFORSYMBOLS }   /* combiningdiacriticalmarksforsymbols */,
+  {     0,  2324,  5694,   7,  10, UNI_COUNTINGROD }   /* block=countingrod */,
+  {     0,  1391,  1829,   2,   3, UNI_WB__ML }   /* wb=ml */,
+  {     0,  2232,     0,   4,   0, UNI_NV__8 }   /* nv=8 */,
+  {     3,   510,  6271,   4,   8, UNI_NV__3_SLASH_80 }   /* nv=3.750e-02 */,
+  {    12,  3633,  6957,   7,   9, UNI_LATINEXTE }   /* inlatinextendede */,
+  {     0,     2,   584,   1,   6, UNI_CE }   /* ce=true */,
+  {     6,   461,   909,   2,   8, UNI_BALI }   /* isbalinese */,
+  {     2,  1942,     0,   5,   0, UNI_XPOSIXGRAPH }   /* graph */,
+  {     6,   461,   625,   2,   2, UNI_PI }   /* ispi */,
+  {     0,  1823,  1367,   7,   4, UNI_PAUC }   /* script=pauc */,
+  {     9,   461,  1376,   2,   9, UNI_SAMR }   /* issamaritan */,
+  {     2,   309,   120,   2,   3, UNI_INLAO }   /* inlao */,
+  {     0,  6076,  5863,  11,   6, UNI_GEORGIANSUP }   /* block=georgiansup */,
+  {     0,   309,  2811,   2,  12, UNI_KHMERSYMBOLS }   /* inkhmersymbols */,
+  {     6,   461,  1830,   2,   4, UNI_MLYM }   /* ismlym */,
+  {     4,   939,  6438,   4,   2, UNI_ecomp_values_index }   /* ecomp= */,
+  {     6,  1454,   353,   2,   2, UNI_SD }   /* sd=y */,
+  {     3,  1823,  3133,   6,   5, UNI_SC__GEOR }   /* script=geor */,
+  {     1,  4360,  2720,   9,   3, UNI_RI }   /* linebreak=ri */,
+  {     0,   461,  6677,   2,  15, UNI_MODIFIERLETTERS }   /* ismodifierletters */,
+  {     3,  7383,    87,  11,   2, UNI_BC__LRE }   /* bidiclass=lre */,
+  {     2,  4424,   414,  17,   3, UNI_HAN }   /* scriptextensions=han */,
+  {     3,   164,     0,   4,   0, UNI_PHNX }   /* phnx */,
+  {     0,  4424,  1635,  17,   4, UNI_WARA }   /* scriptextensions=wara */,
+  {     0,   461,  5283,   2,   9, UNI_HALFMARKS }   /* ishalfmarks */,
+  {     9,  7495,   395,  27,   2, UNI_CCC__16 }   /* canonicalcombiningclass=ccc16 */,
+  {    10,  2514,     0,   9,   0, UNI_MYMR }   /* ismyanmar */,
+  {     0,   895,  1804,   5,   3, UNI_AGE__10 }   /* age=v100 */,
+  {     1,  5916,  8553,  17,   6, UNI_LOE }   /* logicalorderexception=t */,
+  {     0,  4424,    47,  17,   4, UNI_CAKM }   /* scriptextensions=cakm */,
+  {     2,   597,  7011,   6,   9, UNI_DT__NONCANON }   /* dt=noncanonical */,
+  {     8,  1102,  5067,   3,   5, UNI_MANI }   /* scx=mani */,
+  {     0,   802,     0,   4,   0, UNI_SARB }   /* sarb */,
+  {     1,  1823,   442,   7,   4, UNI_ORKH }   /* script=orkh */,
+  {     2,   578,  1317,   5,   2, UNI_CCC__AR }   /* ccc=232 */,
+  {     0,  1667,   317,   4,   5, UNI_INTAILE }   /* blk=taile */,
+  {     0,  1667,  5391,   4,  11, UNI_CHEROKEESUP }   /* blk=cherokeesup */,
+  {     0,  7011,   182,  24,   2, UNI_CCC__0 }   /* canonicalcombiningclass=nr */,
+  {     0,    30,   996,   1,   7, UNI_INKAITHI }   /* inkaithi */,
+  {     0,  2324,   658,   6,   5, UNI_INDOGRA }   /* block=dogra */,
+  {     0,  8343,  3217,  31,   4, UNI_INSC__CONSONANTDEAD }   /* indicsyllabiccategory=consonantdead */,
+  {     6,  1942,  5671,  11,   4, -UNI_GRBASE }   /* graphemebase=no */,
+  {     0,  2732,  6193,   8,  12, UNI_ARABICSUP }   /* blk=arabicsupplement */,
+  {     6,  6165,   739,   3,   7, UNI_SC__MAND }   /* sc=mandaic */,
+  {     1,  7648,   238,  18,   2, UNI_DT__NB }   /* decompositiontype=nb */,
+  {     0,  2324,  2811,   6,  12, UNI_KHMERSYMBOLS }   /* block=khmersymbols */,
+  {     1,  5216,   129,  17,   3, UNI_LATINEXTF }   /* block=latinextendedf */,
+  {     0,  6165,   148,   3,   4, UNI_SC__ORYA }   /* sc=orya */,
+  {     0,  4424,   739,  17,   4, UNI_MAND }   /* scriptextensions=mand */,
+  {     0,  4360,    98,  10,   2, UNI_LB__HL }   /* linebreak=hl */,
+  {     0,  4191,   599,   5,   2, -UNI_XPOSIXLOWER }   /* lower=n */,
+  {     1,  1667,   983,   4,   8, UNI_INHIRAGANA }   /* blk=hiragana */,
+  {     6,  8538,     0,  22,   0, UNI_VO__TR }   /* verticalorientation=tr */,
+  {     7,  1102,   779,   4,   7, UNI_OSMA }   /* scx=osmanya */,
+  {     1,   578,  1318,   5,   2, UNI_CCC__B }   /* ccc=220 */,
+  {     4,  3177,   934,  14,   2, UNI_EA__F }   /* eastasianwidth=f */,
+  {     8,  1823,   128,   7,   4, UNI_MEDF }   /* script=medf */,
+  {     0,  1102,  1385,   4,   6, UNI_THAA }   /* scx=thaana */,
+  {     1,  7134,   599,  26,   2, -UNI_PCM }   /* prependedconcatenationmark=n */,
+  {     0,  7892,   934,  16,   6, -UNI_UIDEO }   /* unifiedideograph=false */,
+  {     3,  1424,   295,   8,   1, UNI_CCC__19 }   /* ccc=ccc19 */,
+  {     4,   461,  3908,   2,  16, UNI_TANGUTCOMPONENTS }   /* istangutcomponents */,
+  {     0,  2324,   608,   6,   7, UNI_INELBASAN }   /* block=elbasan */,
+  {     0,   309,   658,   2,   5, UNI_INDOGRA }   /* indogra */,
+  {     0,  3391,   392,  13,   2, UNI_NV__41 }   /* numericvalue=41 */,
+  {     0,  1102,   297,   4,   5, UNI_ORYA }   /* scx=oriya */,
+  {     0,   461,  1671,   2,   7, UNI_CJKEXTD }   /* iscjkextd */,
+  {     0,  2002,  4191,   7,   5, UNI_POSIXLOWER }   /* isposixlower */,
+  {     4,  7495,  1318,  27,   2, UNI_CCC__20 }   /* canonicalcombiningclass=ccc20 */,
+  {     0,   461,   317,   2,   5, UNI_TALE }   /* istaile */,
+  {     2,   461,  1205,   2,   4, UNI_GRAN }   /* isgran */,
+  {     0,  2718,   119,   3,   2, UNI_BC__AL }   /* bc=al */,
   {     0,   832,   934,   5,   6, -UNI_STERM }   /* sterm=false */,
-  {     0,   939,   602,   5,   2, -UNI_ECOMP }   /* ecomp=n */,
-  {     1,  5099,  1383,   6,   7, UNI__PERL_IDSTART }   /* _perl_idstart */,
-  {     0,  7018,     0,  26,   0, UNI_ARABICPFB }   /* inarabicpresentationformsb */,
-  {     0,   464,  6134,   2,   4, UNI_GLAG }   /* isglag */,
-  {     1,  2275,   355,   9,   5, UNI_IDC }   /* idcontinue=yes */,
-  {     1,   313,  3527,   2,  16, UNI_HALFANDFULLFORMS }   /* inhalfandfullforms */,
-  {     4,  4450,  8499,   7,  34, UNI_DIACRITICALSSUP }   /* block=combiningdiacriticalmarkssupplement */,
-  {     1,  1796,    31,   7,   4, UNI_ARMI }   /* script=armi */,
-  {     1,  2474,   619,   3,   3, UNI_MLYM }   /* ismlym */,
-  {     8,  3053,   356,  13,   2, UNI_POSIXXDIGIT }   /* asciihexdigit=y */,
-  {     0,    34,  6643,   1,  16, UNI_TRANSPORTANDMAP }   /* istransportandmap */,
-  {     0,  7431,   396,  27,   2, UNI_CCC__15 }   /* canonicalcombiningclass=ccc15 */,
-  {     1,  4006,     0,  14,   0, UNI_SC }   /* currencysymbol */,
-  {    11,  1710,  5358,   3,  11, UNI_SMALLKANAEXT }   /* issmallkanaext */,
-  {     1,  4901,   934,  13,   2, -UNI_EMOD }   /* emojimodifier=f */,
-  {     1,  6114,   148,   3,   4, UNI_SC__ORYA }   /* sc=orya */,
-  {     0,   925,     0,   4,   0, UNI_bpt_values_index }   /* bpt= */,
-  {     0,  5865,   934,  21,   2, -UNI_LOE }   /* logicalorderexception=f */,
-  {     1,  6011,  1183,   7,   8, UNI_EMOTICONS }   /* block=emoticons */,
-  {     2,   951,     0,   4,   0, UNI_DUPL }   /* dupl */,
-  {     0,  1796,   686,   7,   4, UNI_SC__TAKR }   /* script=takr */,
-  {     1,   464,   611,   2,   7, UNI_ELBA }   /* iselbasan */,
-  {    69,  3748,  2096,  14,   8, UNI_NV__1_SLASH_64 }   /* numericvalue=1.563e-02 */,
-  {     5,  8007,  8407,   7,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* blk=cjkcompatibilityideographs */,
-  {     0,    34,  2228,   1,  13, UNI_PHAISTOS }   /* inphaistosdisc */,
-  {     1,  2274,  5620,  10,   3, -UNI_XIDC }   /* xidcontinue=n */,
-  {     0,  4092,   602,   9,   2, -UNI_DIA }   /* diacritic=n */,
-  {     5,  1102,    55,   4,   4, UNI_CANS }   /* scx=cans */,
-  {     0,   464,   242,   2,   2, UNI_NB }   /* isnb */,
-  {     2,  6025,  3599,  13,   9, UNI_GEORGIANEXT }   /* block=georgianextended */,
-  {     1,  3462,  7851,   5,  29, UNI_ENCLOSEDALPHANUMSUP }   /* blk=enclosedalphanumericsupplement */,
-  {     9,  1102,   728,   4,   7, UNI_KALI }   /* scx=kayahli */,
-  {    44,  7688,  3688,  23,   3, UNI_JG__MANICHAEANTAW }   /* joininggroup=manichaeantaw */,
-  {     1,   328,  4081,   3,  11, UNI_SUPPUNCTUATION }   /* suppunctuation */,
-  {     0,  2726,    69,   3,   2, UNI_MN }   /* gc=mn */,
-  {     0,   464,  1362,   2,   9, UNI_SAMR }   /* issamaritan */,
-  {     0,  1879,  1487,   4,   8, UNI_JAMOEXTA }   /* blk=jamoexta */,
-  {     0,  1796,   721,   7,   7, UNI_SC__KNDA }   /* script=kannada */,
-  {    34,   343,  2695,   3,   3, UNI_CCC__AR }   /* ccc=ar */,
-  {     4,  2253,  7171,   9,   3, UNI_IN__12 }   /* presentin=12 */,
-  {     3,  1102,  1353,   4,   9, UNI_PAUC }   /* scx=paucinhau */,
-  {     1,  8533,  4081,   9,  11, UNI_SUPPUNCTUATION }   /* block=suppunctuation */,
-  {     1,  7473,   934,  10,   2, -UNI_XPOSIXALPHA }   /* alphabetic=f */,
-  {     0,     2,   588,   3,   5, UNI_CWL }   /* cwl=true */,
-  {     0,   343,   562,   5,   2, UNI_CCC__107 }   /* ccc=107 */,
-  {    20,     2,  7908,   1,  15, UNI_CUNEIFORMNUMBERS }   /* cuneiformnumbers */,
-  {     8,  2948,  6042,  11,   4, UNI_NFCQC__M }   /* nfcquickcheck=m */,
-  {     0,  3474,  5787,   6,  19, UNI_JAMOEXTA }   /* block=hanguljamoextendeda */,
-  {     1,  7018,  1696,   9,   2, UNI_ARABICPFB }   /* inarabicpfb */,
-  {     0,   464,  5340,   2,  10, UNI_DEVA }   /* isdevanagari */,
-  {     1,  6944,  1878,  24,   2, UNI_CCC__DB }   /* canonicalcombiningclass=db */,
-  {     0,  2726,   115,   3,   2, UNI_SK }   /* gc=sk */,
-  {     0,  1102,   721,   4,   7, UNI_KNDA }   /* scx=kannada */,
-  {     0,  4355,   152,  17,   4, UNI_OSGE }   /* scriptextensions=osge */,
-  {     0,  4355,  5322,  17,   8, UNI_CHER }   /* scriptextensions=cherokee */,
-  {     0,  2474,  8307,   3,  33, UNI_MISCPICTOGRAPHS }   /* ismiscellaneoussymbolsandpictographs */,
-  {     9,   313,    59,   2,   4, UNI_INCHAM }   /* incham */,
-  {     8,  6114,  3991,   3,   4, UNI_BRAI }   /* sc=brai */,
-  {     5,   823,   588,   4,   2, UNI_DASH }   /* dash=t */,
-  {     1,  4776,  5620,  16,   3, -UNI__PERL_PATWS }   /* patternwhitespace=n */,
-  {     1,  2483,   252,   8,   5, UNI_XPOSIXCNTRL }   /* isxposixcntrl */,
-  {     1,   296,   395,   3,   2, UNI_NV__41 }   /* nv=41 */,
-  {     0,  7527,   322,   3,   2, UNI_LB__AI }   /* lb=ai */,
-  {     1,    43,     0,   4,   0, UNI_BHKS }   /* bhks */,
-  {     0,  7688,  4672,  23,   5, UNI_JG__MANICHAEANALEPH }   /* joininggroup=manichaeanaleph */,
-  {     0,   313,  5727,   2,  21, UNI_ININSCRIPTIONALPARTHIAN }   /* ininscriptionalparthian */,
-  {     0,  7068,     0,  26,   0, UNI_PCM }   /* prependedconcatenationmark */,
-  {    10,   464,   102,   2,   4, UNI_HLUW }   /* ishluw */,
-  {     1,  2253,     0,  12,   0, UNI_IN__14 }   /* presentin=14 */,
-  {     0,   464,   991,   2,   6, UNI_HATR }   /* ishatran */,
-  {     0,  7431,  2127,  27,   2, UNI_CCC__13 }   /* canonicalcombiningclass=ccc13 */,
-  {     1,  3474,  1271,   6,   9, UNI_INKHUDAWADI }   /* block=khudawadi */,
-  {     0,  2454,  1916,   3,  11, UNI_GRBASE }   /* isgraphemebase */,
-  {    32,   313,  5389,   2,  20, UNI_INNYIAKENGPUACHUEHMONG }   /* innyiakengpuachuehmong */,
-  {     8,   302,   602,   2,   2, -UNI_RI }   /* ri=n */,
-  {     5,  4122,   356,   5,   4, UNI_XPOSIXLOWER }   /* lower=yes */,
-  {     0,  1597,   602,  10,   2, -UNI_SD }   /* softdotted=n */,
-  {     8,  6774,   356,  25,   2, UNI_DI }   /* defaultignorablecodepoint=y */,
-  {    65,  6114,  1198,   3,   7, UNI_SC__GRAN }   /* sc=grantha */,
-  {     3,  1102,   445,   4,   4, UNI_ORKH }   /* scx=orkh */,
-  {     0,  1102,   618,   4,   4, UNI_ELYM }   /* scx=elym */,
-  {     0,  3474,   671,   6,   5, UNI_INOGHAM }   /* block=ogham */,
-  {     9,  3058,   588,   8,   5, UNI_XPOSIXXDIGIT }   /* hexdigit=true */,
-  {     1,  6944,  7359,  24,   4, UNI_CCC__216 }   /* canonicalcombiningclass=atar */,
-  {     4,  1102,  2771,   4,   5, UNI_KHMR }   /* scx=khmer */,
-  {     1,   313,   975,   2,   8, UNI_INGURMUKHI }   /* ingurmukhi */,
-  {     0,  2181,  2173,   4,   8, UNI_NV__1_SLASH_20 }   /* nv=5.000e-02 */,
-  {     4,  3669,   723,  12,   3, UNI_JG__MALAYALAMNNA }   /* jg=malayalamnna */,
-  {     0,  2463,     0,   5,   0, UNI_JOINC }   /* joinc */,
-  {     0,  7880,  2335,   4,   5, UNI_CJKEXTE }   /* iscjkexte */,
-  {     2,  3351,  2138,  13,   2, UNI_NV__33 }   /* numericvalue=33 */,
-  {     0,  1856,   934,  11,   2, -UNI_BIDIC }   /* bidicontrol=f */,
-  {     1,  1796,  4202,   7,  17, UNI_KITS }   /* script=khitansmallscript */,
-  {     2,   464,   378,   2,   5, UNI_GREXT }   /* isgrext */,
-  {     4,    28,  1462,   2,   8, UNI_XPOSIXBLANK }   /* horizspace */,
-  {     6,  6114,  6134,   3,   4, UNI_SC__GLAG }   /* sc=glag */,
-  {     2,  2229,  1539,   9,   3, UNI_PHAISTOS }   /* phaistosdisc */,
-  {     2,  2726,   366,   3,   2, UNI_SM }   /* gc=sm */,
-  {     1,  3734,   356,  14,   4, UNI_NFKCQC__Y }   /* nfkcquickcheck=yes */,
-  {    17,  3474,  2297,   6,  13, UNI_BLOCKELEMENTS }   /* block=blockelements */,
-  {     0,  1879,  3435,   4,  15, UNI_INZANABAZARSQUARE }   /* blk=zanabazarsquare */,
-  {     8,  3137,  6970,  15,   9, UNI_EA__H }   /* eastasianwidth=halfwidth */,
-  {     3,  7823,  8089,   5,  21, UNI_CJKSYMBOLS }   /* incjksymbolsandpunctuation */,
-  {     0,  1796,  1807,   7,  11, UNI_SORA }   /* script=sorasompeng */,
-  {     0,   464,  3991,   2,  15, UNI_BRAI }   /* isbraillepatterns */,
-  {     8,  1879,  5397,   4,   3, UNI_PUA }   /* blk=pua */,
-  {     4,  4355,   840,  17,   7, UNI_TGLG }   /* scriptextensions=tagalog */,
-  {     2,  4291,   281,  10,   2, UNI_LB__H2 }   /* linebreak=h2 */,
-  {    13,  7317,  1687,  21,   7, UNI_BC__LRI }   /* bidiclass=lefttorightisolate */,
-  {     1,   959,     0,   8,   0, UNI_EXT }   /* extender */,
-  {     3,  7431,   299,  28,   1, UNI_CCC__19 }   /* canonicalcombiningclass=ccc19 */,
-  {     2,  2496,  1265,   3,   6, UNI_JG__LAMADH }   /* jg=lamadh */,
-  {     2,   313,  4062,   2,   8, UNI_VEDICEXT }   /* invedicext */,
-  {     9,  2812,     0,  12,   0, UNI_MAHJONG }   /* mahjongtiles */,
-  {     0,  7732,  7772,   8,  13, UNI_ENCLOSEDALPHANUM }   /* enclosedalphanumerics */,
-  {     1,  5586,  1860,  21,   7, UNI_GCB__CN }   /* graphemeclusterbreak=control */,
-  {     0,  1879,  1424,   4,  10, UNI_INCHORASMIAN }   /* blk=chorasmian */,
-  {     6,  3474,   144,   6,   4, UNI_INNEWA }   /* block=newa */,
-  {     0,  1102,   611,   4,   4, UNI_ELBA }   /* scx=elba */,
-  {     4,   696,  5174,   6,  12, UNI_PO }   /* isotherpunctuation */,
-  {    18,  2463,   588,  11,   2, UNI_JOINC }   /* joincontrol=t */,
-  {     2,  3164,   934,  14,   6, -UNI_GREXT }   /* graphemeextend=false */,
-  {     9,  4291,  1990,  10,   2, UNI_LB__WJ }   /* linebreak=wj */,
-  {     1,  2974,   399,  11,   2, UNI_IN__6_DOT_1 }   /* presentin=v61 */,
-  {     4,  1796,  1003,   7,   4, UNI_LEPC }   /* script=lepc */,
-  {     0,   464,   983,   2,   4, UNI_HIRA }   /* ishira */,
-  {     1,  7132,  1818,   7,   8, UNI_SUPERANDSUB }   /* blk=superandsub */,
-  {     0,  6114,   421,   3,   4, UNI_KHMR }   /* sc=khmr */,
-  {    18,   464,  6774,   2,  25, UNI_DI }   /* isdefaultignorablecodepoint */,
-  {     5,  1377,  3594,   3,   2, UNI_WB__NL }   /* wb=nl */,
-  {     5,  6025,  5812,  11,  13, UNI_GEORGIANSUP }   /* block=georgiansupplement */,
-  {     1,   306,   602,   5,   3, -UNI__PERL_PATWS }   /* patws=no */,
-  {     0,  4322,   299,  14,   1, UNI_NV__39 }   /* numericvalue=39 */,
-  {     1,  2726,  3152,   3,  12, UNI_NL }   /* gc=letternumber */,
-  {     4,  7473,  6573,   9,   3, UNI_XPOSIXALPHA }   /* alphabetic=t */,
-  {     0,  2678,     0,  14,   0, UNI_BC__R }   /* bc=righttoleft */,
-  {     2,  2365,     0,   4,   0, UNI_ETHI }   /* ethi */,
-  {     0,  1796,  1495,   7,   8, UNI_SC__JAVA }   /* script=javanese */,
-  {    15,  4500,   587,   8,   6, UNI_XPOSIXUPPER }   /* uppercase=true */,
-  {     4,  5087,  1592,  10,   2, UNI_WB__FO }   /* wordbreak=fo */,
-  {     1,  5409,   588,  19,   2, UNI_TERM }   /* terminalpunctuation=t */,
-  {     2,  5607,  5889,  18,   9, UNI_IDENTIFIERTYPE__NOTCHARACTER }   /* identifiertype=notcharacter */,
-  {     2,  3474,  6644,   6,  15, UNI_TRANSPORTANDMAP }   /* block=transportandmap */,
-  {     0,   328,  6052,   3,  13, UNI_SUPMATHOPERATORS }   /* supmathoperators */,
-  {     0,  1879,  3885,   4,  17, UNI_INCAUCASIANALBANIAN }   /* blk=caucasianalbanian */,
-  {     0,  2712,   934,   5,   6, -UNI_EMOJI }   /* emoji=false */,
-  {     3,  1796,  1311,   7,   4, UNI_ITAL }   /* script=ital */,
-  {     5,  6114,   120,   3,   4, UNI_LAO }   /* sc=laoo */,
-  {     0,  4092,     0,  12,   0, UNI_DIACRITICALS }   /* diacriticals */,
-  {     0,   313,   322,   3,   4, UNI_INTAILE }   /* intaile */,
-  {     0,  2253,   515,   9,   2, UNI_IN__3 }   /* presentin=3 */,
-  {     0,  1796,  1344,   7,   4, UNI_PALM }   /* script=palm */,
-  {     0,  2392,  2030,   3,  11, UNI_MATHALPHANUM }   /* inmathalphanum */,
-  {    49,  1440,   356,   2,   4, UNI_SD }   /* sd=yes */,
-  {     0,  1879,  1948,   4,  10, UNI_INOLDSOGDIAN }   /* blk=oldsogdian */,
-  {    16,  4485,     0,  15,   0, UNI_TITLE }   /* titlecaseletter */,
-  {     0,  3622,  4701,  15,  10, UNI_LATINEXTADDITIONAL }   /* islatinextendedadditional */,
-  {     0,   940,   602,   6,   2, -UNI_COMPEX }   /* compex=n */,
-  {    43,  4355,  1015,  17,   6, UNI_TELU }   /* scriptextensions=telugu */,
-  {     0,  6774,     0,  25,   0, UNI_DI }   /* defaultignorablecodepoint */,
-  {     0,  6114,   372,   3,   6, UNI_GOTH }   /* sc=gothic */,
-  {    11,  4872,  4442,  10,   9, UNI_KANAEXTB }   /* block=kanaextendedb */,
-  {     2,  1796,  5727,   7,  21, UNI_PRTI }   /* script=inscriptionalparthian */,
-  {     6,  2726,  4006,   3,  14, UNI_SC }   /* gc=currencysymbol */,
-  {     0,  7182,  6309,   3,  13, UNI_CJKCOMPAT }   /* cjkcompatibility */,
-  {     4,  4450,  1895,   7,  11, UNI_CHESSSYMBOLS }   /* block=chesssymbols */,
-  {     2,   464,  1021,   2,   6, UNI_WCHO }   /* iswancho */,
-  {    17,  6114,  1326,   3,   9, UNI_ORKH }   /* sc=oldturkic */,
-  {     0,  5136,  7556,   5,  19, UNI_MISCSYMBOLS }   /* blk=miscellaneoussymbols */,
-  {    21,  5147,  4275,   7,  16, UNI_LETTERLIKESYMBOLS }   /* block=letterlikesymbols */,
-  {     0,  5409,   602,  19,   2, -UNI_TERM }   /* terminalpunctuation=n */,
-  {    21,  2392,  5797,   9,   9, UNI_MYANMAREXTA }   /* inmyanmarextendeda */,
-  {     0,  3722,   356,   4,   4, UNI_MATH }   /* math=yes */,
-  {     1,  5186,   356,  20,   4, UNI_EXTPICT }   /* extendedpictographic=yes */,
-  {     0,   313,    36,   2,   2, UNI_INVS }   /* invs */,
-  {     5,  5523,     0,  21,   0, UNI_CWL }   /* changeswhenlowercased */,
-  {     0,   302,   278,   2,   1, UNI_ri_values_index }   /* ri= */,
-  {     8,  1102,  1951,   4,   7, UNI_SOGD }   /* scx=sogdian */,
-  {     2,  7660,   934,  17,   2, -UNI_VS }   /* variationselector=f */,
-  {     0,  1879,  1362,   4,   9, UNI_INSAMARITAN }   /* blk=samaritan */,
-  {     1,   296,   391,   3,   2, UNI_NV__26 }   /* nv=26 */,
-  {     1,  1495,     0,   8,   0, UNI_JAVA }   /* javanese */,
-  {     6,  1410,   396,   7,   2, UNI_CCC__15 }   /* ccc=ccc15 */,
-  {     0,   464,   540,   2,   4, UNI_TANG }   /* istang */,
-  {     1,  2463,   588,   5,   5, UNI_JOINC }   /* joinc=true */,
-  {     2,  1102,  4962,   4,   4, UNI_HAN }   /* scx=hani */,
-  {     0,  2638,     0,  11,   0, UNI_IN__5 }   /* presentin=5 */,
-  {     5,   608,  5929,   3,   3, UNI_IDEO }   /* ideo=t */,
-  {     0,   513,  2080,   4,   8, UNI_NV__7_SLASH_2 }   /* nv=3.500e+00 */,
-  {     0,  5136,   743,   5,   6, UNI_INMANDAIC }   /* blk=mandaic */,
-  {     0,  2974,   395,  11,   2, UNI_IN__4_DOT_1 }   /* presentin=v41 */,
-  {     7,   464,  3637,   2,   4, UNI_LISU }   /* islisu */,
-  {    64,  6112,  5254,   5,  15, UNI_INSC__MODIFYINGLETTER }   /* insc=modifyingletter */,
-  {     0,  8007,  6509,   7,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* blk=cjkcompatideographs */,
-  {     0,  6114,  1344,   3,   4, UNI_PALM }   /* sc=palm */,
-  {     1,  1796,  1353,   7,   9, UNI_PAUC }   /* script=paucinhau */,
-  {     0,  2712,   602,   5,   2, -UNI_EMOJI }   /* emoji=n */,
-  {     2,  1796,   287,   7,   5, UNI_NSHU }   /* script=nushu */,
-  {     4,  1102,   735,   4,   7, UNI_LINA }   /* scx=lineara */,
-  {     0,  7317,  3465,   9,   3, UNI_BC__ET }   /* bidiclass=et */,
-  {    12,  2496,  3688,   3,   3, UNI_JG__TAW }   /* jg=taw */,
-  {     0,   895,  1299,   5,   2, UNI_AGE__6 }   /* age=v60 */,
-  {    12,   624,   602,   2,   3, -UNI_CE }   /* ce=no */,
-  {     0,  6774,   588,  25,   5, UNI_DI }   /* defaultignorablecodepoint=true */,
-  {     0,  5888,   934,   5,   2, -UNI__PERL_NCHAR }   /* nchar=f */,
-  {     0,  1879,  6052,   4,  13, UNI_MATHOPERATORS }   /* blk=mathoperators */,
-  {     0,  7201,  2443,  16,  11, UNI_CASEDLETTER }   /* generalcategory=casedletter */,
-  {     0,  4355,  1094,  17,   4, UNI_MERC }   /* scriptextensions=merc */,
-  {     5,  1879,  1202,   4,   4, UNI_INTHAI }   /* blk=thai */,
-  {     0,  8276,  1418,  22,   6, UNI_INSC__VIRAMA }   /* indicsyllabiccategory=virama */,
-  {     6,  1102,  2401,   4,   4, UNI_NAND }   /* scx=nand */,
-  {     0,  2974,   294,  12,   2, UNI_IN__14 }   /* presentin=v140 */,
-  {     1,  6114,   433,   3,   3, UNI_SC__NKO }   /* sc=nko */,
-  {     0,   555,   569,   4,   3, UNI_AGE__9 }   /* age=9.0 */,
-  {     0,   296,  7173,   3,   2, UNI_NV__28 }   /* nv=28 */,
-  {     1,  1410,  2127,   7,   2, UNI_CCC__13 }   /* ccc=ccc13 */,
-  {     0,   818,     0,   7,   0, UNI_SHRD }   /* sharada */,
-  {    16,  7473,   345,   9,   2, UNI_alpha_values_index }   /* alphabetic= */,
-  {     3,  7201,  4077,  16,  15, UNI_PD }   /* generalcategory=dashpunctuation */,
-  {     1,   313,  7377,   2,  26, UNI_KATAKANAEXT }   /* inkatakanaphoneticextensions */,
-  {    30,   464,  4740,   2,  18, UNI_ORNAMENTALDINGBATS }   /* isornamentaldingbats */,
-  {     0,   343,  2138,   4,   2, UNI_CCC__33 }   /* ccc=33 */,
-  {     0,   316,   356,   5,   4, UNI_QMARK }   /* qmark=yes */,
-  {     2,  3474,  1487,   6,   8, UNI_JAMOEXTA }   /* block=jamoexta */,
-  {    35,  1440,   934,   2,   2, -UNI_SD }   /* sd=f */,
-  {    23,  3338,   356,  13,   4, UNI_NFDQC__Y }   /* nfdquickcheck=yes */,
-  {     0,  2981,  1299,   4,   2, UNI_IN__6 }   /* in=v60 */,
-  {     0,  8276,  5254,  22,  15, UNI_INSC__MODIFYINGLETTER }   /* indicsyllabiccategory=modifyingletter */,
-  {     0,  4392,     0,  11,   0, UNI_SGNW }   /* signwriting */,
-  {     1,  2463,   934,  11,   2, -UNI_JOINC }   /* joincontrol=f */,
-  {     4,  4092,   602,   9,   3, -UNI_DIA }   /* diacritic=no */,
-  {     1,  2474,  7556,   3,  19, UNI_MISCSYMBOLS }   /* ismiscellaneoussymbols */,
-  {    20,   464,   128,   2,   4, UNI_MEDF }   /* ismedf */,
-  {     5,  1102,  1021,   4,   6, UNI_WCHO }   /* scx=wancho */,
-  {    71,  6114,  1755,   3,  11, UNI_MEDF }   /* sc=medefaidrin */,
-  {     1,   464,    54,   2,   2, UNI_MC }   /* ismc */,
-  {     8,  3474,  3991,   6,  15, UNI_BRAI }   /* block=braillepatterns */,
-  {     2,  1102,  4418,   4,   6, UNI_ZYYY }   /* scx=common */,
-  {     0,  6114,  1255,   3,   4, UNI_SOYO }   /* sc=soyo */,
-  {     5,  8007,  7314,  30,   4, UNI_CJKEXTB }   /* blk=cjkunifiedideographsextensionb */,
-  {    40,  1879,  5787,   4,  10, UNI_JAMO }   /* blk=hanguljamo */,
-  {     0,  8182,  4042,  27,   8, UNI_INPC__TOPANDRIGHT }   /* indicpositionalcategory=topandright */,
-  {    18,   445,     0,   4,   0, UNI_ORKH }   /* orkh */,
-  {     1,  1102,  1948,   4,  10, UNI_SOGO }   /* scx=oldsogdian */,
-  {     3,  1102,  5825,   4,   9, UNI_SUND }   /* scx=sundanese */,
-  {    22,   343,   585,   5,   2, UNI_CCC__122 }   /* ccc=122 */,
-  {     0,  8533,  4372,   7,  16, UNI_SMALLFORMS }   /* block=smallformvariants */,
-  {     1,   313,  7385,   2,  28, UNI_PHONETICEXTSUP }   /* inphoneticextensionssupplement */,
-  {     0,  6114,  1951,   3,   7, UNI_SC__SOGD }   /* sc=sogdian */,
-  {     8,  6114,   574,   3,   7, UNI_AVST }   /* sc=avestan */,
-  {     6,  2474,   176,   3,   2, UNI_MRO }   /* ismro */,
-  {     0,  3351,  2063,  13,   9, UNI_NV__1_SLASH_8 }   /* numericvalue=1.250e-01 */,
-  {    10,  1879,  5322,   4,   8, UNI_INCHEROKEE }   /* blk=cherokee */,
-  {     0,  8244,  6334,   9,  18, UNI_CJKCOMPATFORMS }   /* block=cjkcompatibilityforms */,
-  {     0,  1796,  5631,   7,   5, UNI_SC__GREK }   /* script=greek */,
-  {     5,  7880,  4464,   5,   4, UNI_CJKEXTC }   /* iscjkextc */,
-  {     1,  2260,   569,   3,   3, UNI_IN__9 }   /* in=9.0 */,
-  {     0,  5865,   356,  21,   4, UNI_LOE }   /* logicalorderexception=yes */,
-  {    21,   313,   611,   2,   7, UNI_INELBASAN }   /* inelbasan */,
-  {     1,  3351,  1304,  13,   4, UNI_NV__2000 }   /* numericvalue=2000 */,
-  {     0,   959,   602,   8,   2, -UNI_EXT }   /* extender=n */,
-  {     0,  6944,  6280,  24,   3, UNI_CCC__202 }   /* canonicalcombiningclass=atb */,
-  {     5,  1796,   477,   7,   4, UNI_VAI }   /* script=vaii */,
-  {     8,  2260,  2128,   3,   3, UNI_IN__3_DOT_1 }   /* in=3.1 */,
-  {     0,  6114,  1117,   3,   4, UNI_SC__TAGB }   /* sc=tagb */,
-  {     1,  5586,   546,  21,   2, UNI_WB__EB }   /* graphemeclusterbreak=eb */,
-  {     7,   555,   390,   5,   2, UNI_AGE__5_DOT_2 }   /* age=5.2 */,
-  {     0,   275,  5718,   4,   9, UNI_WB__EB }   /* gcb=emodifier */,
-  {     0,  1236,  3452,   4,  10, UNI_INCYRILLIC }   /* block=cyrillic */,
-  {     0,  2678,     0,   4,   0, UNI_BC__R }   /* bc=r */,
-  {     0,   313,  1344,   2,   9, UNI_PALM }   /* inpalmyrene */,
-  {     0,   313,   676,   2,   5, UNI_INOSAGE }   /* inosage */,
-  {     0,  7880,  5183,  28,   4, UNI_CJKEXTE }   /* iscjkunifiedideographsextensione */,
-  {     0,  1796,  6728,   7,  11, UNI_MTEI }   /* script=meeteimayek */,
-  {     0,  7584,  1687,  18,   8, UNI_DT__ISO }   /* decompositiontype=isolated */,
-  {     5,  1796,   790,   7,   4, UNI_HMNP }   /* script=hmnp */,
-  {     0,   302,   602,   2,   3, -UNI_RI }   /* ri=no */,
-  {     0,  3593,  1698,   7,   4, UNI_LATINEXTF }   /* inlatinextf */,
-  {     3,  1879,  1400,   4,  10, UNI_BOXDRAWING }   /* blk=boxdrawing */,
-  {     8,  1065,   397,   5,   1, UNI_NV__1_SLASH_5 }   /* nv=1/5 */,
-  {     3,   313,  2018,   2,  12, UNI_INMASARAMGONDI }   /* inmasaramgondi */,
-  {     0,  4433,   129,  15,   3, UNI_LATINEXTF }   /* blk=latinextendedf */,
-  {     2,   876,   602,   4,   2, -UNI_IDEO }   /* ideo=n */,
-  {     1,  7416,     0,  14,   0, UNI_PUA }   /* privateusearea */,
-  {     0,  7317,  7712,  10,  21, UNI_BC__PDI }   /* bidiclass=popdirectionalisolate */,
-  {    20,  7201,  1464,  16,   2, UNI_ZS }   /* generalcategory=zs */,
-  {     0,   316,   356,   5,   2, UNI_QMARK }   /* qmark=y */,
-  {     0,  1102,  6594,   4,   6, UNI_BRAH }   /* scx=brahmi */,
-  {     4,  7527,   310,   3,   2, UNI_LB__SP }   /* lb=sp */,
-  {     5,   464,   259,   2,   2, UNI_CF }   /* iscf */,
-  {     3,  1796,  1117,   7,   4, UNI_SC__TAGB }   /* script=tagb */,
-  {    18,  3137,  1176,  14,   7, UNI_EA__NA }   /* eastasianwidth=narrow */,
-  {     0,   464,   437,   2,   4, UNI_OGAM }   /* isogam */,
-  {    19,  1102,   611,   4,   7, UNI_ELBA }   /* scx=elbasan */,
-  {     0,  1796,   321,   7,   5, UNI_SC__TALE }   /* script=taile */,
-  {    53,  3474,  5750,   6,  19, UNI_SUPARROWSB }   /* block=supplementalarrowsb */,
-  {     0,  6944,  2702,  24,  10, UNI_CCC__6 }   /* canonicalcombiningclass=hanreading */,
-  {    20,   513,  2145,   4,   8, UNI_NV__3_SLASH_8 }   /* nv=3.750e-01 */,
-  {     1,  1704,     0,   4,   0, UNI_ARAB }   /* arab */,
-  {     4,  1879,  1550,   3,  11, UNI_INOLDPERSIAN }   /* blk=oldpersian */,
-  {     8,   581,   294,   5,   2, UNI_CCC__IS }   /* ccc=240 */,
-  {     0,   343,   118,   4,   2, UNI_CCC__DA }   /* ccc=da */,
-  {     4,  2692,  4918,   5,  16, UNI_ALCHEMICAL }   /* blk=alchemicalsymbols */,
-  {     2,  3351,  1299,  13,   4, UNI_NV__6000 }   /* numericvalue=6000 */,
-  {     6,  1796,  2986,   7,  14, UNI_SC__PHLP }   /* script=psalterpahlavi */,
-  {     3,   313,  3608,   2,  11, UNI_PHONETICEXT }   /* inphoneticext */,
-  {     1,  1102,  1470,   4,   8, UNI_BUGI }   /* scx=buginese */,
-  {     2,  5087,  1631,  10,   7, UNI_WB__NL }   /* wordbreak=newline */,
-  {     2,  6112,  3249,  14,   5, UNI_INSC__CONSONANTFINAL }   /* insc=consonantfinal */,
-  {     4,  3309,     0,  15,   0, UNI_MERC }   /* meroiticcursive */,
-  {     0,   464,    23,   2,   4, UNI_POSIXXDIGIT }   /* isahex */,
-  {    66,  5322,     0,   8,   0, UNI_CHER }   /* cherokee */,
-  {    10,  4355,  1198,  17,   7, UNI_GRAN }   /* scriptextensions=grantha */,
-  {     4,  7208,  3156,  12,   8, UNI_NO }   /* category=othernumber */,
-  {     2,  3474,  2746,   6,  14, UNI_HIGHSURROGATES }   /* block=highsurrogates */,
-  {     0,  2645,   390,   4,   2, UNI_IN__5_DOT_2 }   /* in=5.2 */,
-  {     2,  6114,   681,   3,   5, UNI_RUNR }   /* sc=runic */,
-  {     0,  5844,  4081,   5,  11, UNI_SUPPUNCTUATION }   /* issuppunctuation */,
-  {     0,   895,  1070,   5,   2, UNI_AGE__3_DOT_1 }   /* age=v31 */,
-  {     1,  3351,   298,  12,   3, UNI_NV__90 }   /* numericvalue=90 */,
-  {     1,  4793,     0,   4,   0, UNI_RUMI }   /* rumi */,
-  {    16,  1975,   311,   7,   5, UNI_POSIXPRINT }   /* isposixprint */,
-  {     0,  2678,  4207,   3,   3, UNI_BC__NSM }   /* bc=nsm */,
-  {  9567,  1967,   588,   7,   2, UNI_RADICAL }   /* radical=t */,
-  {     9,  1879,  5825,   4,  19, UNI_SUNDANESESUP }   /* blk=sundanesesupplement */,
-  {     4,  3058,   934,   8,   6, -UNI_XPOSIXXDIGIT }   /* hexdigit=false */,
-  {     0,    37,  1588,   1,   9, UNI_SMALLFORMS }   /* smallforms */,
-  {     0,  7527,   383,   3,   6, UNI_LB__HY }   /* lb=hyphen */,
-  {     0,  7208,  6466,   9,  10, UNI_CO }   /* category=privateuse */,
-  {     0,  5865,  8485,  17,   5, UNI_loe_values_index }   /* logicalorderexception= */,
-  {     0,    34,  5660,   1,   3, UNI_ME }   /* isme */,
-  {     4,  4355,  1344,  17,   9, UNI_PALM }   /* scriptextensions=palmyrene */,
-  {     2,  4355,  3285,  17,   4, UNI_HEBR }   /* scriptextensions=hebr */,
-  {     5,  1991,  2868,  12,  11, UNI_JT__C }   /* joiningtype=joincausing */,
-  {     0,   524,   934,   6,   2, -UNI_PATSYN }   /* patsyn=f */,
-  {     0,  4355,  1015,  17,   4, UNI_TELU }   /* scriptextensions=telu */,
-  {     6,    34,  5660,   1,  20, UNI_MERO }   /* ismeroitichieroglyphs */,
-  {     0,   464,  1015,   2,   6, UNI_TELU }   /* istelugu */,
-  {     2,  7527,  1906,   3,   9, UNI_LB__AI }   /* lb=ambiguous */,
-  {     0,   106,     0,   4,   0, UNI_HMNG }   /* hmng */,
-  {     0,  1796,   180,   7,   4, UNI_RUNR }   /* script=runr */,
-  {     0,  3236,  5771,   3,  16, UNI_ENCLOSEDALPHANUMSUP }   /* enclosedalphanumsup */,
-  {     7,  3474,  7377,   6,  26, UNI_KATAKANAEXT }   /* block=katakanaphoneticextensions */,
-  {     4,  4450,  3500,   8,  14, UNI_CYPRIOTSYLLABARY }   /* block=cypriotsyllabary */,
-  {     0,   464,   383,   2,   6, UNI_HYPHEN }   /* ishyphen */,
-  {    12,   555,   563,   4,   3, UNI_AGE__7 }   /* age=7.0 */,
-  {     3,  3351,  2615,  13,  10, UNI_NV___MINUS_1_SLASH_2 }   /* numericvalue=-5.000e-01 */,
-  {     4,  3351,  2120,  14,   8, UNI_NV__1_SLASH_4 }   /* numericvalue=2.500e-01 */,
-  {     0,  5087,  1881,   8,   4, UNI_WB__KA }   /* wordbreak=ka */,
-  {     0,  7132,  1110,   5,   7, UNI_SPECIALS }   /* blk=specials */,
-  {     1,  2274,   933,  10,   7, -UNI_XIDC }   /* xidcontinue=false */,
-  {     0,  1344,   931,   6,   3, UNI_PALM }   /* palmyrene */,
-  {     8,  2712,   601,  13,   4, -UNI_ECOMP }   /* emojicomponent=no */,
-  {     0,    58,  4436,   2,   6, UNI_SC__LATN }   /* sc=latin */,
-  {     3,  8182,  8440,  24,  14, UNI_INPC__BOTTOMANDRIGHT }   /* indicpositionalcategory=bottomandright */,
-  {     4,  1441,     0,   3,   0, UNI_DEP }   /* dep */,
-  {    21,  2392,  6053,   3,  12, UNI_MATHOPERATORS }   /* inmathoperators */,
-  {     1,  1796,  3465,   6,   5, UNI_ETHI }   /* script=ethi */,
-  {     2,     2,   933,   1,   7, -UNI_CE }   /* ce=false */,
-  {     3,   316,     0,   5,   0, UNI_QMARK }   /* qmark */,
-  {     1,   600,  3236,   3,   3, UNI_DT__ENC }   /* dt=enc */,
-  {     0,   275,   602,   2,   3, UNI_NO }   /* gc=no */,
-  {    10,   464,  5340,   2,  13, UNI_DEVANAGARIEXT }   /* isdevanagariext */,
-  {     1,  2496,  4692,   4,   4, UNI_JG__ALAPH }   /* jg=alaph */,
-  {     4,  1410,  1303,   8,   2, UNI_CCC__132 }   /* ccc=ccc132 */,
-  {     0,   313,   783,   2,   7, UNI_INOSMANYA }   /* inosmanya */,
-  {     3,  6944,     0,  24,   0, UNI_ccc_values_index }   /* canonicalcombiningclass= */,
-  {     1,  2726,     0,   3,   2, UNI_CASEDLETTER }   /* gc=l& */,
-  {     1,   296,   292,   3,   2, UNI_NV__30 }   /* nv=30 */,
-  {     6,  5481,   602,  21,   3, -UNI_CWCF }   /* changeswhencasefolded=no */,
-  {    21,   464,   176,   2,   4, UNI_ROHG }   /* isrohg */,
-  {     3,  4355,  1133,  17,   4, UNI_VITH }   /* scriptextensions=vith */,
-  {     3,  6749,   602,  25,   3, -UNI_CWKCF }   /* changeswhennfkccasefolded=no */,
-  {    68,  3622,  4701,  10,  10, UNI_LATINEXTADDITIONAL }   /* islatinextadditional */,
-  {     0,  4302,   355,   5,   5, UNI_XPOSIXSPACE }   /* wspace=yes */,
-  {    13,  3090,  6878,   7,  12, UNI_GEOMETRICSHAPES }   /* blk=geometricshapes */,
-  {     2,  6114,  5322,   3,   8, UNI_CHER }   /* sc=cherokee */,
-  {     1,  2229,     0,   8,   0, UNI_PHAISTOS }   /* phaistos */,
-  {     0,  4291,   310,  10,   2, UNI_LB__SP }   /* linebreak=sp */,
-  {     1,  7132,  8319,  16,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* blk=supplementalsymbolsandpictographs */,
-  {     1,  2483,  4500,   8,   5, UNI_XPOSIXUPPER }   /* isxposixupper */,
-  {     3,   821,  1970,   3,   4, UNI_RADICAL }   /* radical */,
-  {     2,   496,     0,   6,   0, UNI_KHOJ }   /* khojki */,
-  {     0,  5099,  2277,  15,   8, UNI__PERL_CHARNAME_CONTINUE }   /* _perl_charname_continue */,
-  {     0,  3734,   602,  14,   3, UNI_NFKCQC__N }   /* nfkcquickcheck=no */,
-  {    65,  4355,   917,  17,   8, UNI_BASS }   /* scriptextensions=bassavah */,
-  {     1,   738,  2498,   2,   2, UNI_EA__A }   /* ea=a */,
-  {     2,  6112,  5269,   5,  15, UNI_INSC__REGISTERSHIFTER }   /* insc=registershifter */,
-  {     0,  1102,   112,   4,   4, UNI_KITS }   /* scx=kits */,
-  {     3,  7688,  3825,  22,   4, UNI_JG__MANICHAEANTEN }   /* joininggroup=manichaeanten */,
-  {     2,  4355,   429,  17,   4, UNI_MRO }   /* scriptextensions=mroo */,
-  {     1,  4291,  2951,  10,   2, UNI_LB__QU }   /* linebreak=qu */,
-  {     1,  6112,  2290,   5,   6, UNI_INSC__NUMBER }   /* insc=number */,
-  {     2,   343,  3365,   4,   2, UNI_CCC__36 }   /* ccc=36 */,
-  {     3,  1796,   798,   7,   4, UNI_LANA }   /* script=lana */,
-  {     0,  1796,   372,   7,   6, UNI_GOTH }   /* script=gothic */,
-  {     1,     5,   934,   3,   6, -UNI_EXT }   /* ext=false */,
-  {    36,  2496,   490,   3,   3, UNI_JG__REH }   /* jg=reh */,
-  {     3,  3474,  8592,   6,  34, UNI_UCAS }   /* block=unifiedcanadianaboriginalsyllabics */,
-  {     6,  8470,  5930,  19,  19, UNI_VO__TR }   /* verticalorientation=transformedrotated */,
-  {     6,  5748,  5080,  14,   7, UNI_SUPARROWSA }   /* insupplementalarrowsa */,
-  {    24,  4355,  1807,  17,  11, UNI_SORA }   /* scriptextensions=sorasompeng */,
-  {     0,  6112,  5680,   6,  15, UNI_INSC__CANTILLATIONMARK }   /* insc=cantillationmark */,
-  {     1,  3090,  2332,   5,  12, UNI_GREEKEXT }   /* blk=greekextended */,
-  {     0,  4291,   276,  10,   2, UNI_LB__CB }   /* linebreak=cb */,
-  {     0,  3351,  1299,  13,   2, UNI_NV__60 }   /* numericvalue=60 */,
-  {     0,   296,  1300,   4,   2, UNI_NV__900 }   /* nv=900 */,
-  {     1,  5481,   934,  21,   2, -UNI_CWCF }   /* changeswhencasefolded=f */,
-  {     1,  7182,  1646,   3,   4, UNI_CJKEXTD }   /* cjkextd */,
-  {     5,  5886,  1548,  19,   3, UNI_nchar_values_index }   /* noncharactercodepoint= */,
-  {     3,  3474,  4656,   6,   9, UNI_TANGUTSUP }   /* block=tangutsup */,
-  {     0,   887,     0,   6,   0, UNI_AGE__10 }   /* age=10 */,
-  {     3,  1377,  1837,   3,   8, UNI_WB__EB }   /* wb=ebasegaz */,
-  {     0,   465,     0,   4,   0, UNI_SHRD }   /* shrd */,
-  {     5,  1710,  5358,   3,  17, UNI_SMALLKANAEXT }   /* issmallkanaextension */,
-  {     0,  5409,   356,  19,   2, UNI_TERM }   /* terminalpunctuation=y */,
-  {     0,   343,  2207,   3,   2, UNI_CCC__8 }   /* ccc=8 */,
-  {     3,   136,     0,   4,   0, UNI_MYMR }   /* mymr */,
-  {     0,  7148,   292,  25,   2, UNI_CCC__130 }   /* canonicalcombiningclass=130 */,
-  {     0,  6114,  5825,   3,   9, UNI_SUND }   /* sc=sundanese */,
-  {     0,  1440,   602,   2,   3, -UNI_SD }   /* sd=no */,
-  {     1,  3915,   602,  17,   2, -UNI_EPRES }   /* emojipresentation=n */,
-  {     1,   464,   457,   2,   4, UNI_PRTI }   /* isprti */,
-  {     1,  1383,   588,   7,   5, UNI_IDS }   /* idstart=true */,
-  {     7,   600,    55,   3,   3, UNI_DT__CAN }   /* dt=can */,
-  {     8,  1102,   749,   4,   4, UNI_MARC }   /* scx=marc */,
-  {     8,  5844,  4538,  12,  13, UNI_SUPPUNCTUATION }   /* issupplementalpunctuation */,
-  {     8,  3593,  4629,   6,   5, UNI_LATIN1 }   /* inlatin1sup */,
-  {     0,  2496,  1743,   3,   2, UNI_JG__FE }   /* jg=fe */,
-  {     1,   875,   602,   5,   3, -UNI_UIDEO }   /* uideo=no */,
-  {     8,  1879,  4656,   4,  16, UNI_TANGUTSUP }   /* blk=tangutsupplement */,
-  {    16,  4322,  1781,  14,   4, UNI_NV__30000 }   /* numericvalue=30000 */,
-  {     1,  1967,   934,   7,   2, -UNI_RADICAL }   /* radical=f */,
-  {     1,  1796,  4962,   7,   4, UNI_SC__HAN }   /* script=hani */,
-  {    10,  1879,   868,   4,   7, UNI_INTIRHUTA }   /* blk=tirhuta */,
-  {     4,  3462,  1183,   5,   8, UNI_EMOTICONS }   /* blk=emoticons */,
-  {     0,  3748,   523,  15,   1, UNI_NV__1_SLASH_7 }   /* numericvalue=1/7 */,
-  {     1,  1796,   814,   7,   4, UNI_SC__QAAI }   /* script=zinh */,
-  {     0,   736,  7175,   3,  10, UNI_ENCLOSEDCJK }   /* inenclosedcjk */,
-  {     5,  3527,     0,  16,   0, UNI_HALFANDFULLFORMS }   /* halfandfullforms */,
-  {     4,  1796,  1191,   7,   4, UNI_SC__BENG }   /* script=beng */,
-  {     0,  2802,  3641,  10,  10, UNI_ETHIOPICSUP }   /* isethiopicsupplement */,
-  {    57,  4857,     0,   5,   0, UNI_TAML }   /* tamil */,
-  {     0,  3474,  2428,   6,  13, UNI_IPAEXT }   /* block=ipaextensions */,
-  {     1,  4450,  4457,   7,  11, UNI_CYRILLICEXTC }   /* block=cyrillicextc */,
-  {     1,    37,  7238,   1,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* symbolsandpictographsexta */,
-  {     2,   464,  6052,   2,  13, UNI_MATHOPERATORS }   /* ismathoperators */,
-  {     1,   313,   818,   2,   7, UNI_SC__SHRD }   /* insharada */,
-  {     6,  6570,   140,   5,   2, UNI_INPC__NA }   /* inpc=na */,
-  {     0,     8,  6240,   1,   3, UNI_L }   /* gc=l */,
-  {     8,   343,  1418,   4,   6, UNI_CCC__9 }   /* ccc=virama */,
-  {     0,  1977,  1465,   5,   5, UNI_POSIXSPACE }   /* posixspace */,
-  {     1,  7828,   934,  16,   6, -UNI_UIDEO }   /* unifiedideograph=false */,
-  {     2,  2496,  1041,   3,   5, UNI_JG__GAMAL }   /* jg=gamal */,
-  {     1,   313,  3608,   2,  14, UNI_PHONETICEXTSUP }   /* inphoneticextsup */,
-  {     0,  4322,  2145,  14,   8, UNI_NV__3_SLASH_8 }   /* numericvalue=3.750e-01 */,
-  {     4,  4355,  1090,  17,   4, UNI_LINB }   /* scriptextensions=linb */,
-  {     0,  4355,  4020,  17,   4, UNI_SIND }   /* scriptextensions=sind */,
-  {     0,  7182,  6509,   3,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* cjkcompatideographs */,
-  {     3,  1879,  6833,   4,  23, UNI_BYZANTINEMUSIC }   /* blk=byzantinemusicalsymbols */,
-  {     2,   464,    39,   2,   4, UNI_BATK }   /* isbatk */,
-  {     7,  1102,   676,   4,   5, UNI_OSGE }   /* scx=osage */,
-  {     4,  6114,  1353,   3,   9, UNI_PAUC }   /* sc=paucinhau */,
-  {     0,   464,   666,   2,   4, UNI_LIMB }   /* islimb */,
-  {     0,  5928,  5942,   3,   7, UNI_VO__R }   /* vo=rotated */,
-  {     0,  1796,   417,   7,   4, UNI_SC__HANO }   /* script=hano */,
-  {     1,  6185,  6199,  18,   8, UNI_NV__1000000000000 }   /* numericvalue=1000000000000 */,
-  {    17,  5136,  8212,   5,  32, UNI_MISCMATHSYMBOLSB }   /* blk=miscellaneousmathematicalsymbolsb */,
-  {     0,  7584,   696,  18,   3, UNI_DT__ISO }   /* decompositiontype=iso */,
-  {     0,  1102,  1015,   4,   6, UNI_TELU }   /* scx=telugu */,
-  {     5,  5565,   356,  21,   4, UNI_CWU }   /* changeswhenuppercased=yes */,
-  {     8,   343,  1650,   4,   7, UNI_CCC__1 }   /* ccc=overlay */,
-  {    16,  1441,   934,  10,   2, -UNI_DEP }   /* deprecated=f */,
-  {     0,   524,     0,   6,   0, UNI_PATSYN }   /* patsyn */,
-  {    13,  4355,   236,  17,   2, UNI_YI }   /* scriptextensions=yi */,
-  {     1,   313,  5787,   2,  10, UNI_JAMO }   /* inhanguljamo */,
-  {     1,  6114,   112,   3,   4, UNI_KITS }   /* sc=kits */,
-  {     0,  7201,   334,  16,   2, UNI_PD }   /* generalcategory=pd */,
-  {     8,  1102,   172,   4,   4, UNI_RJNG }   /* scx=rjng */,
-  {     1,  1879,  1755,   4,  11, UNI_INMEDEFAIDRIN }   /* blk=medefaidrin */,
-  {     1,   833,   588,   4,   5, UNI_TERM }   /* term=true */,
-  {     0,  1879,  1037,   8,   4, UNI_KANAEXTB }   /* blk=kanaextb */,
-  {     0,  5087,  2680,   9,   3, UNI_RI }   /* wordbreak=ri */,
-  {     1,  4291,  4711,  10,  15, UNI_LB__CB }   /* linebreak=contingentbreak */,
-  {     1,  3748,  1304,  15,   2, UNI_NV__1_SLASH_20 }   /* numericvalue=1/20 */,
-  {     5,  1879,  1353,   4,   9, UNI_INPAUCINHAU }   /* blk=paucinhau */,
-  {     2,  6112,  3217,  14,   6, UNI_INSC__CONSONANTKILLER }   /* insc=consonantkiller */,
-  {     1,  2678,  5970,  14,   8, UNI_BC__RLO }   /* bc=righttoleftoverride */,
-  {     0,  6114,   691,   3,   5, UNI_BATK }   /* sc=batak */,
-  {     0,  7208,  1413,   8,   2, UNI_C }   /* category=c */,
-  {     0,  2678,  4403,   3,  15, UNI_BC__BN }   /* bc=boundaryneutral */,
-  {     0,  2678,  5428,   3,  18, UNI_BC__ET }   /* bc=europeanterminator */,
-  {     0,   464,  3991,   2,   4, UNI_BRAI }   /* isbrai */,
-  {    11,  7431,  1304,  27,   2, UNI_CCC__20 }   /* canonicalcombiningclass=ccc20 */,
-  {     0,   581,  2094,   5,   2, UNI_CCC__202 }   /* ccc=202 */,
-  {     0,  1102,   967,   4,   8, UNI_GUJR }   /* scx=gujarati */,
-  {     0,  4355,  1335,  17,   9, UNI_OUGR }   /* scriptextensions=olduyghur */,
-  {     0,  1879,  1571,   4,  10, UNI_INSAURASHTRA }   /* blk=saurashtra */,
-  {     2,  2353,  3869,   3,  16, UNI_UCAS }   /* incanadiansyllabics */,
-  {     1,  2485,  1465,   6,   5, UNI_XPOSIXSPACE }   /* xposixspace */,
-  {     6,   464,  1792,   2,   4, UNI_MONG }   /* ismong */,
-  {     1,  7132,  4641,   5,  15, UNI_SYRIACSUP }   /* blk=syriacsupplement */,
-  {    24,  4355,    35,  17,   4, UNI_AVST }   /* scriptextensions=avst */,
-  {     4,  3595,  4701,   8,  10, UNI_LATINEXTADDITIONAL }   /* latinextadditional */,
-  {     0,   464,   940,   2,   6, UNI_COMPEX }   /* iscompex */,
-  {     0,   464,  6303,   2,  23, UNI_COMPATJAMO }   /* ishangulcompatibilityjamo */,
-  {     0,   240,  3438,   3,  12, UNI_ZANB }   /* zanabazarsquare */,
-  {     1,  1879,  4442,   8,   9, UNI_KANAEXTB }   /* blk=kanaextendedb */,
-  {     0,  5481,   588,  21,   2, UNI_CWCF }   /* changeswhencasefolded=t */,
-  {     0,  4355,  1508,  17,   8, UNI_UGAR }   /* scriptextensions=ugaritic */,
-  {     4,  7290,     0,  27,   0, UNI_OCR }   /* opticalcharacterrecognition */,
-  {     5,  1377,  2961,   3,   7, UNI_WB__NU }   /* wb=numeric */,
-  {     1,  2363,  5797,  10,   9, UNI_ETHIOPICEXTA }   /* inethiopicextendeda */,
-  {     0,  4092,     0,  15,   0, UNI_DIACRITICALSEXT }   /* diacriticalsext */,
-  {     1,  2310,  5620,  12,   3, -UNI_CI }   /* caseignorable=n */,
-  {     0,  7825,  3929,  26,   4, UNI_CJKEXTG }   /* cjkunifiedideographsextensiong */,
-  {     0,   464,  4783,   2,  10, UNI_XPOSIXSPACE }   /* iswhitespace */,
-  {     0,  8533,  5080,   9,   7, UNI_SUPARROWSA }   /* block=suparrowsa */,
-  {     0,  1702,  2760,   3,   9, UNI_XPOSIXALPHA }   /* isalphabetic */,
-  {     2,  2726,  2384,   3,   2, UNI__PERL_SURROGATE }   /* gc=cs */,
-  {     1,  6114,  1227,   3,   7, UNI_SC__MULT }   /* sc=multani */,
-  {     7,  6039,  2591,   7,  12, UNI_MAYANNUMERALS }   /* block=mayannumerals */,
-  {     0,  7208,  4598,   9,  16, UNI_PE }   /* category=closepunctuation */,
-  {     0,  7018,  4442,   8,   9, UNI_ARABICEXTB }   /* inarabicextendedb */,
-  {     4,  4355,     0,  17,   0, UNI_scx_values_index }   /* scriptextensions= */,
-  {     0,  1846,   237,   3,   3, UNI_YI }   /* isyiii */,
-  {     0,  1796,  1529,   7,  10, UNI_KHAR }   /* script=kharoshthi */,
-  {     0,    23,  1104,   3,   2, UNI_ahex_values_index }   /* ahex= */,
-  {     0,   296,   772,   3,   2, UNI_NV__17 }   /* nv=17 */,
-  {     1,  4355,  1227,  17,   4, UNI_MULT }   /* scriptextensions=mult */,
-  {     1,   939,  6390,   4,   2, UNI_ecomp_values_index }   /* ecomp= */,
-  {     0,   464,   208,   2,   4, UNI_TFNG }   /* istfng */,
-  {     8,    23,   602,   4,   3, -UNI_POSIXXDIGIT }   /* ahex=no */,
-  {     6,  7431,   391,  27,   2, UNI_CCC__26 }   /* canonicalcombiningclass=ccc26 */,
-  {     0,  2890,  2539,   3,  10, UNI_JT__U }   /* jt=nonjoining */,
-  {     2,  1796,   847,   7,   7, UNI_LANA }   /* script=taitham */,
-  {     1,   464,    27,   2,   4, UNI_AHOM }   /* isahom */,
-  {     5,    19,  3362,   2,   3, UNI_AGE__2 }   /* age=2 */,
-  {     5,   138,   122,   2,   2, UNI_MRO }   /* mroo */,
-  {     2,  2678,   191,   3,   2, UNI_BC__WS }   /* bc=ws */,
-  {     0,  7208,  4614,   9,  16, UNI_PF }   /* category=finalpunctuation */,
-  {     2,   464,  2491,   2,   5, UNI_XPOSIXBLANK }   /* isblank */,
-  {     4,  4355,   204,  17,   4, UNI_TAVT }   /* scriptextensions=tavt */,
-  {     2,  2474,  3719,   3,  15, UNI_MISCMATHSYMBOLSA }   /* ismiscmathsymbolsa */,
-  {     0,  2974,   292,  11,   2, UNI_IN__3 }   /* presentin=v30 */,
-  {     3,  4355,   192,  17,   4, UNI_SHAW }   /* scriptextensions=shaw */,
-  {     0,   721,  3582,   3,   3, UNI_KANGXI }   /* kangxi */,
-  {     0,   464,  4656,   2,  16, UNI_TANGUTSUP }   /* istangutsupplement */,
-  {     8,  1879,  4656,   4,   9, UNI_TANGUTSUP }   /* blk=tangutsup */,
-  {     0,  4726,     0,  14,   0, UNI_NV__6 }   /* numericvalue=6 */,
-  {     0,  3474,  4062,   6,  15, UNI_VEDICEXT }   /* block=vedicextensions */,
-  {     0,    34,  6643,   1,  23, UNI_TRANSPORTANDMAP }   /* istransportandmapsymbols */,
-  {     0,  1879,  6466,   4,  10, UNI_PUA }   /* blk=privateuse */,
-  {     1,  2260,   560,   3,   3, UNI_IN__6 }   /* in=6.0 */,
-  {     1,   275,  1591,   4,   2, UNI_LB__LF }   /* gcb=lf */,
-  {     1,  3450,  1037,  12,   4, UNI_CYRILLICEXTB }   /* blk=cyrillicextb */,
-  {     0,  1470,     0,   4,   0, UNI_BUGI }   /* bugi */,
-  {     1,   666,     0,   5,   0, UNI_LIMB }   /* limbu */,
-  {     3,  3474,  1003,   6,   6, UNI_INLEPCHA }   /* block=lepcha */,
-  {     5,  4827,     0,   5,   0, UNI_BAMU }   /* bamum */,
-  {     2,  3474,  8078,   6,  32, UNI_IDEOGRAPHICSYMBOLS }   /* block=ideographicsymbolsandpunctuation */,
-  {     2,  1383,   602,   3,   2, -UNI_IDS }   /* ids=n */,
-  {     0,  1102,   164,   4,   4, UNI_PHNX }   /* scx=phnx */,
-  {     5,  1377,    10,   3,   2, UNI_LB__CR }   /* wb=cr */,
-  {     4,   581,   392,   6,   1, UNI_CCC__R }   /* ccc=226 */,
-  {     0,   464,  6069,   2,  22, UNI_DIACRITICALSFORSYMBOLS }   /* isdiacriticalsforsymbols */,
-  {    16,  7584,   128,  18,   3, UNI_DT__MED }   /* decompositiontype=med */,
-  {     1,  3351,   395,  13,   2, UNI_NV__41 }   /* numericvalue=41 */,
-  {     0,  2153,  6199,   4,   5, UNI_NV__400000 }   /* nv=400000 */,
-  {     0,  2274,   355,  10,   5, UNI_XIDC }   /* xidcontinue=yes */,
-  {     0,  4355,  1052,  18,   7, UNI_MAHJ }   /* scriptextensions=mahajani */,
-  {    16,  6114,  3991,   3,   7, UNI_BRAI }   /* sc=braille */,
-  {     0,  6114,  7377,   3,   8, UNI_SC__KANA }   /* sc=katakana */,
-  {     0,     7,  5305,   1,  17, UNI_TAIXUANJING }   /* taixuanjingsymbols */,
-  {     8,  7823,  4341,  28,   4, UNI_CJKEXTA }   /* incjkunifiedideographsextensiona */,
-  {     0,  5136,  2030,   5,  11, UNI_MATHALPHANUM }   /* blk=mathalphanum */,
-  {     0,  1796,  1248,   7,   7, UNI_SIDD }   /* script=siddham */,
-  {     0,  4302,   933,   5,   3, -UNI_XPOSIXSPACE }   /* wspace=f */,
-  {     3,   343,  2002,   3,   3, UNI_CCC__BR }   /* ccc=br */,
-  {     0,   296,   772,   3,   4, UNI_NV__17_SLASH_2 }   /* nv=17/2 */,
-  {     4,   313,   901,   2,   8, UNI_INARMENIAN }   /* inarmenian */,
-  {     2,  7201,  1899,  16,   6, UNI_S }   /* generalcategory=symbol */,
-  {    17,  1927,     0,  12,   0, UNI_GONG }   /* gunjalagondi */,
-  {     0,  5136,  1037,  11,   4, UNI_MYANMAREXTB }   /* blk=myanmarextb */,
-  {     3,   409,   356,   3,   4, UNI_DIA }   /* dia=yes */,
-  {     1,  3351,   293,  13,   1, UNI_NV__0 }   /* numericvalue=0 */,
+  {     0,  2432,  2057,   3,  11, UNI_MATHALPHANUM }   /* inmathalphanum */,
+  {     1,  7495,  1155,  27,   2, UNI_CCC__35 }   /* canonicalcombiningclass=ccc35 */,
+  {     8,  2280,   342,   9,   3, UNI_IN__12 }   /* presentin=12 */,
+  {    40,  2514,  8374,   3,  33, UNI_MISCPICTOGRAPHS }   /* ismiscellaneoussymbolsandpictographs */,
+  {     0,  1728,  4659,   6,   9, UNI_ARABICEXTC }   /* arabicextendedc */,
+  {     4,  2324,  1954,   6,  12, UNI_INGUNJALAGONDI }   /* block=gunjalagondi */,
+  {    30,   302,   585,   5,   2, UNI__PERL_PATWS }   /* patws=t */,
+  {     1,  5895,  8386,  14,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* issupplementalsymbolsandpictographs */,
+  {     8,  3407,  1805,  14,   4, UNI_NV__40000 }   /* numericvalue=40000 */,
+  {     0,  1102,  3538,   4,   7, UNI_CPRT }   /* scx=cypriot */,
+  {     0,  7752,  4741,  23,   5, UNI_JG__MANICHAEANALEPH }   /* joininggroup=manichaeanaleph */,
+  {     0,  4424,   180,  17,   4, UNI_RUNR }   /* scriptextensions=runr */,
+  {     0,  1823,  1438,   7,  10, UNI_CHRS }   /* script=chorasmian */,
+  {    27,  1248,     0,   4,   0, UNI_PHAG }   /* phag */,
+  {     0,  2002,  3100,   6,   6, UNI_POSIXDIGIT }   /* isposixdigit */,
+  {     0,  3502,  2374,  12,   8, UNI_ETHIOPICEXT }   /* blk=ethiopicextended */,
+  {    16,  1734,  5409,   3,  11, UNI_SMALLKANAEXT }   /* issmallkanaext */,
+  {    16,   461,   204,   2,   4, UNI_TFNG }   /* istfng */,
+  {     0,   292,   391,   3,   2, UNI_NV__34 }   /* nv=34 */,
+  {     1,  3892,   585,  16,   2, UNI_STERM }   /* sentenceterminal=t */,
+  {    37,   517,  1805,   4,   4, UNI_NV__70000 }   /* nv=70000 */,
+  {     2,   292,  2138,   3,   9, UNI_NV__3_SLASH_16 }   /* nv=1.875e-01 */,
+  {     0,  7892,   353,  16,   2, UNI_UIDEO }   /* unifiedideograph=y */,
+  {     0,  1734,  5169,   7,   4, UNI_XPOSIXSPACE }   /* isspaceperl */,
+  {    30,     2,   352,   1,   5, UNI_CE }   /* ce=yes */,
+  {     3,   461,  1090,   2,   4, UNI_LINB }   /* islinb */,
+  {     3,  4424,   748,  19,   5, UNI_MARC }   /* scriptextensions=marchen */,
+  {    20,  2280,  2222,   9,   2, UNI_IN__6 }   /* presentin=6 */,
+  {     2,  7267,  3026,  16,   2, UNI_PS }   /* generalcategory=ps */,
+  {     9,  7591,  3472,   3,   3, UNI_LB__ZWJ }   /* lb=zwj */,
+  {     0,  1133,     0,   4,   0, UNI_VITH }   /* vith */,
+  {     8,  5637,   644,  20,   4, UNI_LB__H3 }   /* graphemeclusterbreak=lvt */,
+  {     0,    71,   585,   3,   2, UNI_CWU }   /* cwu=t */,
+  {     7,  6165,  5958,   3,   7, UNI_SC__SINH }   /* sc=sinhala */,
+  {     0,  6427,  5084,  13,   6, UNI_JG__YUDHHE }   /* joininggroup=yudhhe */,
+  {     0,  3490,  6193,  10,  12, UNI_CYRILLICSUP }   /* blk=cyrillicsupplement */,
+  {     3,  4862,     0,  18,   0, UNI_RUMI }   /* ruminumeralsymbols */,
+  {     1,  3391,     0,  15,   0, UNI_NV__23 }   /* numericvalue=23 */,
+  {     0,     2,   933,   1,   7, -UNI_CE }   /* ce=false */,
+  {     0,  2324,   668,   6,   5, UNI_INOGHAM }   /* block=ogham */,
+  {    10,  4424,  2441,  17,   4, UNI_NAND }   /* scriptextensions=nand */,
+  {     1,     0,   733,   1,   6, UNI_LINA }   /* lineara */,
+  {     0,   377,   353,   3,   2, UNI_EXT }   /* ext=y */,
+  {     1,   461,  1592,   2,   4, UNI_SAUR }   /* issaur */,
+  {     4,  6165,   983,   3,   8, UNI_SC__HIRA }   /* sc=hiragana */,
+  {     4,   309,  2780,   2,   6, UNI_INCOPTIC }   /* incoptic */,
+  {    43,   184,     0,   4,   0, UNI_SAMR }   /* samr */,
+  {     3,  2503,     0,  11,   0, UNI_JOINC }   /* joincontrol */,
+  {     2,  3130,  1955,   5,  11, UNI_INGUNJALAGONDI }   /* blk=gunjalagondi */,
+  {     0,  2324,  5125,   6,  19, UNI_OTTOMANSIYAQNUMBERS }   /* block=ottomansiyaqnumbers */,
+  {     1,  3391,  1318,  13,   4, UNI_NV__2000 }   /* numericvalue=2000 */,
+  {     0,  6776,     0,  11,   0, UNI_MTEI }   /* meeteimayek */,
+  {     5,  7591,   277,   3,   2, UNI_LB__H2 }   /* lb=h2 */,
+  {     1,    54,  1909,   2,   5, UNI_SC__KANA }   /* sc=kana */,
+  {     6,  6165,  3538,   3,   7, UNI_SC__CPRT }   /* sc=cypriot */,
+  {     2,  4371,   933,   5,   3, -UNI_XPOSIXSPACE }   /* wspace=f */,
+  {     3,  6165,    39,   3,   4, UNI_BHKS }   /* sc=bhks */,
+  {     0,  1823,  1262,   7,   4, UNI_SOYO }   /* script=soyo */,
+  {     2,    11,  4987,   1,   9, UNI_ALCHEMICAL }   /* alchemical */,
+  {     4,  4926,     0,  15,   0, UNI_TAMILSUP }   /* tamilsupplement */,
+  {     9,  1391,    98,   3,   2, UNI_LB__HL }   /* wb=hl */,
+  {     2,  2324,  1696,   6,  11, UNI_DOMINO }   /* block=dominotiles */,
+  {     0,  2324,  4150,   6,  11, UNI_INPUNCTUATION }   /* block=punctuation */,
+  {    10,  4651,     0,   8,   0, UNI_BOPO }   /* bopomofo */,
+  {     2,  1667,  1914,   4,   8, UNI_UCASEXTA }   /* blk=ucasexta */,
+  {     0,  3502,  8111,   5,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* blk=egyptianhieroglyphformatcontrols */,
+  {     0,  6165,   653,   3,   5, UNI_SC__BUHD }   /* sc=buhid */,
+  {     1,  2483,   599,   5,   2, -UNI_CASED }   /* cased=n */,
+  {     2,  1102,   156,   4,   4, UNI_OUGR }   /* scx=ougr */,
+  {     0,  1667,  2335,   4,  13, UNI_BLOCKELEMENTS }   /* blk=blockelements */,
+  {     3,  1102,  3726,   3,  10, UNI_MLYM }   /* scx=malayalam */,
+  {     7,  4424,  3026,  17,  14, UNI_PHLP }   /* scriptextensions=psalterpahlavi */,
+  {     0,  1492,  5863,   7,   6, UNI_GEORGIANSUP }   /* ingeorgiansup */,
+  {     0,   951,   956,   5,   3, UNI_DUPL }   /* duployan */,
+  {     7,   461,   499,   2,   6, UNI_LYDI }   /* islydian */,
+  {     1,  1823,   794,   7,   4, UNI_LANA }   /* script=lana */,
+  {     0,  1667,   204,   9,   2, UNI_CJKEXTF }   /* blk=cjkextf */,
+  {     0,  5156,  3001,  10,   7, UNI_WB__NU }   /* wordbreak=numeric */,
+  {     3,  3378,   599,  13,   3, UNI_DT__CAN }   /* nfdquickcheck=no */,
+  {     2,  2324,  5373,   6,  11, UNI_TAIXUANJING }   /* block=taixuanjing */,
+  {     5,  1667,  7796,   4,  22, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* blk=enclosedideographicsup */,
+  {    20,  1823,   668,   7,   5, UNI_OGAM }   /* script=ogham */,
+  {     0,  2324,  7855,   6,  32, UNI_INIDC }   /* block=ideographicdescriptioncharacters */,
+  {     0,   505,   353,   5,   4, UNI_NFDQC__Y }   /* nfdqc=yes */,
+  {     2,  2301,  5671,  10,   4, -UNI_XIDC }   /* xidcontinue=no */,
+  {     0,  4360,  2977,  10,  11, UNI_LB__IN }   /* linebreak=inseperable */,
+  {     4,  4795,  2107,  14,   8, UNI_NV__13_SLASH_2 }   /* numericvalue=6.500e+00 */,
+  {     1,  1667,  3436,   4,  15, UNI_SARB }   /* blk=oldsoutharabian */,
+  {     3,  3635,     0,  14,   0, UNI_LATINEXTD }   /* latinextendedd */,
+  {    34,   292,  2101,   3,   2, UNI_NV__29 }   /* nv=29 */,
+  {     0,  1726,  1037,   8,   4, UNI_ARABICEXTB }   /* isarabicextb */,
+  {     0,  1667,  6382,   7,  18, UNI_CJKCOMPATFORMS }   /* blk=cjkcompatibilityforms */,
+  {     4,   895,   295,   5,   2, UNI_AGE__9 }   /* age=v90 */,
+  {    12,  3863,  2172,  14,   8, UNI_NV__7_SLASH_8 }   /* numericvalue=8.750e-01 */,
+  {     0,   302,  1814,   2,   9, UNI_HMNG }   /* pahawhhmong */,
+  {     0,  4424,  3908,  17,   6, UNI_TANG }   /* scriptextensions=tangut */,
+  {     1,   309,  6351,   2,  23, UNI_COMPATJAMO }   /* inhangulcompatibilityjamo */,
+  {     9,   461,  7724,   2,  17, UNI_VS }   /* isvariationselector */,
+  {     1,  1102,  1191,   4,   7, UNI_BENG }   /* scx=bengali */,
+  {     1,  4043,   274,  17,   1, UNI_idsb_values_index }   /* idsbinaryoperator= */,
+  {     0,  1102,   772,   4,   7, UNI_OLCK }   /* scx=olchiki */,
+  {     0,  3817,  2083,  14,   8, UNI_NV__1_SLASH_9 }   /* numericvalue=1.111e-01 */,
+  {     3,  3014,   396,  11,   2, UNI_IN__6_DOT_1 }   /* presentin=v61 */,
+  {     1,  1667,  3663,   4,  13, UNI_DEVANAGARIEXT }   /* blk=devanagariext */,
+  {    39,  2002,  1659,   3,   8, UNI_POSIXSPACE }   /* isperlspace */,
+  {     2,  1667,  5958,   4,   7, UNI_INSINHALA }   /* blk=sinhala */,
+  {     1,   597,     0,   3,   0, UNI_dt_values_index }   /* dt= */,
+  {     0,   124,     0,   4,   0, UNI_LATN }   /* latn */,
+  {     0,  2324,  3611,   9,  11, UNI_CJKCOMPATFORMS }   /* block=cjkcompatforms */,
+  {     2,  2287,     0,   5,   0, UNI_IN__14 }   /* in=14 */,
+  {     3,  8343,     0,  22,   0, UNI_insc_values_index }   /* indicsyllabiccategory= */,
+  {     1,  6841,   934,  25,   6, -UNI_DI }   /* defaultignorablecodepoint=false */,
+  {     0,  1102,   176,   4,   4, UNI_ROHG }   /* scx=rohg */,
+  {    10,  6165,    86,   3,   4, UNI_SC__GREK }   /* sc=grek */,
+  {     2,  5255,   599,  20,   2, -UNI_EXTPICT }   /* extendedpictographic=n */,
+  {     1,  8601,  8386,  18,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* block=supplementalsymbolsandpictographs */,
+  {     0,  6165,   668,   3,   5, UNI_OGAM }   /* sc=ogham */,
+  {     0,  5937,     0,  21,   0, UNI__PERL_NCHAR }   /* noncharactercodepoint */,
+  {     2,  4424,   608,  17,   4, UNI_ELBA }   /* scriptextensions=elba */,
+  {     1,  4424,   426,  17,   3, UNI_MRO }   /* scriptextensions=mro */,
+  {    16,  4424,   474,  17,   3, UNI_VAI }   /* scriptextensions=vai */,
+  {     0,  3093,  2931,  12,   3, UNI_POSIXXDIGIT }   /* asciihexdigit=t */,
+  {     0,  4970,   599,  17,   3, -UNI_EBASE }   /* emojimodifierbase=no */,
+  {    33,   510,  6263,   4,   8, UNI_NV__1_SLASH_320 }   /* nv=3.125e-03 */,
+  {     1,  7804,   353,  11,   4, UNI_IDEO }   /* ideographic=yes */,
+  {     1,    51,     0,   4,   0, UNI_CANS }   /* cans */,
+  {     0,  1102,  2009,   4,   6, UNI_SYRC }   /* scx=syriac */,
+  {     4,  7887,  5252,  28,   4, UNI_CJKEXTE }   /* incjkunifiedideographsextensione */,
+  {     1,   271,   644,   3,   4, UNI_LB__H3 }   /* gcb=lvt */,
+  {     0,  6090,  2057,   7,  11, UNI_MATHALPHANUM }   /* block=mathalphanum */,
+  {    21,  7591,   524,   3,   2, UNI_LB__SY }   /* lb=sy */,
+  {     7,  5799,     0,  21,   0, UNI_SUPARROWSB }   /* insupplementalarrowsb */,
+  {     0,  4951,  6473,  18,  14, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* egyptianhieroglyphformatcontrols */,
+  {     0,   461,  4651,   2,  11, UNI_BOPOMOFOEXT }   /* isbopomofoext */,
+  {     4,  4424,  3663,  17,   4, UNI_DEVA }   /* scriptextensions=deva */,
+  {     0,  5168,  2304,  15,   8, UNI__PERL_CHARNAME_CONTINUE }   /* _perl_charname_continue */,
+  {     1,  2020,  5354,   3,  19, UNI_ININSCRIPTIONALPAHLAVI }   /* ininscriptionalpahlavi */,
+  {     0,   925,     0,   8,   0, UNI_BPT__O }   /* bpt=open */,
+  {    32,  2280,  2155,  10,   3, UNI_IN__3_DOT_1 }   /* presentin=3.1 */,
+  {     0,  7669,  1874,  22,   8, UNI_LB__H3 }   /* hangulsyllabletype=lvtsyllable */,
+  {    32,  2002,  2060,   7,   5, UNI_POSIXALPHA }   /* isposixalpha */,
+  {    18,    30,  1106,   1,   3, UNI_ITAL }   /* ital */,
+  {     0,    10,     0,   1,   0, UNI_M }   /* m */,
+  {     0,  6427,  1279,  13,   6, UNI_JG__LAMADH }   /* joininggroup=lamadh */,
+  {     1,  6450,   283,  14,   2, UNI_SB__NU }   /* sentencebreak=nu */,
+  {     8,  7274,   255,   9,   2, UNI_CF }   /* category=cf */,
+  {     7,  1272,  7972,   3,  15, UNI_CUNEIFORMNUMBERS }   /* iscuneiformnumbers */,
+  {    12,  1915,  6848,   4,   9, UNI_CI }   /* caseignorable */,
+  {    10,  4424,  4060,  17,   4, UNI_BRAI }   /* scriptextensions=brai */,
+  {    10,  4424,   196,  17,   4, UNI_TAML }   /* scriptextensions=taml */,
+  {     9,  6165,  3325,   3,   4, UNI_HEBR }   /* sc=hebr */,
+  {    13,  1075,  1805,   4,   4, UNI_NV__20000 }   /* nv=20000 */,
+  {     2,  6165,  4060,   3,   7, UNI_BRAI }   /* sc=braille */,
+  {     0,    33,  4710,   1,  15, UNI_SYRIACSUP }   /* syriacsupplement */,
+  {     0,  6165,  6642,   3,   4, UNI_BRAH }   /* sc=brah */,
+  {     1,  7383,  5479,  10,  18, UNI_BC__ET }   /* bidiclass=europeanterminator */,
+  {     1,  2766,  4206,   3,  15, UNI_PS }   /* gc=openpunctuation */,
+  {     5,  7752,   109,  24,   2, UNI_JG__MANICHAEANTAW }   /* joininggroup=manichaeantaw */,
+  {     3,  5682,     0,   5,   0, UNI_GREK }   /* greek */,
+  {     0,  4360,  6224,  10,  12, UNI_LB__SY }   /* linebreak=breaksymbols */,
+  {    20,   605,  8144,   2,  16, UNI_IDEOGRAPHICSYMBOLS }   /* ideographicsymbols */,
+  {     1,   517,  1314,   4,   3, UNI_NV__7000 }   /* nv=7000 */,
+  {     0,   309,   983,   2,   8, UNI_INHIRAGANA }   /* inhiragana */,
+  {     2,  1667,  4537,   5,  17, UNI_COPTICEPACTNUMBERS }   /* blk=copticepactnumbers */,
+  {     0,  2324,  1543,   6,  10, UNI_INKHAROSHTHI }   /* block=kharoshthi */,
+  {     4,   718,  3622,   3,  11, UNI_KANGXI }   /* kangxiradicals */,
+  {     1,  1391,     6,   3,   2, UNI_LB__CR }   /* wb=cr */,
+  {     8,  4424,  4176,  17,   6, UNI_HANG }   /* scriptextensions=hangul */,
+  {     3,   461,   363,   2,   2, UNI_SM }   /* issm */,
+  {     0,  7011,  1153,  24,   2, UNI_CCC__24 }   /* canonicalcombiningclass=24 */,
+  {    18,    33,  8001,   1,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* symbolsandpictographsextendeda */,
+  {     0,   461,   779,   2,   7, UNI_OSMA }   /* isosmanya */,
+  {     8,  1227,     0,   7,   0, UNI_MAKA }   /* makasar */,
+  {     0,  1102,  3908,   4,   6, UNI_TANG }   /* scx=tangut */,
+  {     0,   895,   343,   5,   3, UNI_AGE__12_DOT_1 }   /* age=v121 */,
+  {     3,  2766,  5235,   3,  20, UNI_PC }   /* gc=connectorpunctuation */,
+  {    40,  1102,  1975,   4,  10, UNI_SOGO }   /* scx=oldsogdian */,
+  {     0,  7214,   559,  25,   2, UNI_CCC__107 }   /* canonicalcombiningclass=107 */,
+  {    10,    27,    29,   2,   2, UNI_ARMI }   /* armi */,
+  {    17,  7267,   644,  15,   2, UNI_L }   /* generalcategory=l */,
+  {     1,   461,  3013,   2,   5, UNI_EPRES }   /* isepres */,
+  {     1,  6076,  3639,  13,   9, UNI_GEORGIANEXT }   /* block=georgianextended */,
+  {     0,   309,  7796,   2,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* inenclosedideographicsupplement */,
+  {     1,  2324,  1255,   6,   7, UNI_INSIDDHAM }   /* block=siddham */,
+  {     5,  1198,  7972,   3,  29, UNI_CUNEIFORMNUMBERS }   /* incuneiformnumbersandpunctuation */,
+  {     2,  2301,     0,  11,   0, UNI_XIDC }   /* xidcontinue */,
+  {     3,   309,  3649,   2,  14, UNI_PHONETICEXTSUP }   /* inphoneticextsup */,
+  {     0,  1102,   615,   4,   4, UNI_ELYM }   /* scx=elym */,
+  {     3,  6165,   180,   3,   4, UNI_RUNR }   /* sc=runr */,
+  {     0,  2766,   128,   3,   2, UNI_ME }   /* gc=me */,
+  {     1,   418,     0,   4,   0, UNI_KHMR }   /* khmr */,
+  {    10,  7274,  2424,   9,   2, UNI__PERL_SURROGATE }   /* category=cs */,
+  {    10,  3514,  6193,  10,  12, UNI_ARABICSUP }   /* block=arabicsupplement */,
+  {    11,  4584,   599,  18,   2, -UNI_IDST }   /* idstrinaryoperator=n */,
+  {     2,  1823,    27,   7,   4, UNI_ARMI }   /* script=armi */,
+  {     1,  7591,  2977,   3,  11, UNI_LB__IN }   /* lb=inseperable */,
+  {     0,  5255,   934,  20,   6, -UNI_EXTPICT }   /* extendedpictographic=false */,
+  {     0,   339,  1317,   5,   2, UNI_CCC__132 }   /* ccc=132 */,
+  {     2,  2536,  6439,   2,  11, UNI_JG__AFRICANQAF }   /* jg=africanqaf */,
+  {    10,  2060,  1175,   4,   2, UNI_alpha_values_index }   /* alpha= */,
+  {     0,  4424,  1003,  17,   6, UNI_LEPC }   /* scriptextensions=lepcha */,
+  {    32,  6165,   144,   3,   4, UNI_NEWA }   /* sc=newa */,
+  {    40,  3878,  1314,  14,   2, UNI_NV__900 }   /* numericvalue=900 */,
+  {     1,   461,  4896,   2,  15, UNI_BAMUMSUP }   /* isbamumsupplement */,
+  {     0,  3832,  2107,  14,   8, UNI_NV__11_SLASH_2 }   /* numericvalue=5.500e+00 */,
+  {     2,  4424,  1367,  17,   9, UNI_PAUC }   /* scriptextensions=paucinhau */,
+  {     1,  6165,  1051,   3,   8, UNI_SC__MAHJ }   /* sc=mahajani */,
+  {     2,  7495,  1153,  27,   2, UNI_CCC__24 }   /* canonicalcombiningclass=ccc24 */,
+  {     1,   461,  1322,   2,   9, UNI_ITAL }   /* isolditalic */,
+  {     4,  6062,  1505,  14,   4, UNI_ETHIOPICEXTA }   /* block=ethiopicexta */,
+  {     1,    30,  4969,   1,  18, UNI_EBASE }   /* isemojimodifierbase */,
+  {     1,  1200,  1037,   3,   4, UNI_CJKEXTB }   /* cjkextb */,
+  {    14,  2536,   710,   3,   4, UNI_JG__SHIN }   /* jg=shin */,
+  {     6,  7889,     0,  20,   0, UNI_CJK }   /* cjkunifiedideographs */,
+  {     8,   309,  6776,   2,  21, UNI_MEETEIMAYEKEXT }   /* inmeeteimayekextensions */,
+  {     0,  7036,     0,  26,   0, UNI_HALFANDFULLFORMS }   /* halfwidthandfullwidthforms */,
+  {     1,  3633,  5848,   7,   9, UNI_LATINEXTA }   /* inlatinextendeda */,
+  {     0,  7724,   585,  17,   2, UNI_VS }   /* variationselector=t */,
+  {    64,  6090,  6597,   7,  21, UNI_MISCTECHNICAL }   /* block=miscellaneoustechnical */,
+  {    18,  4360,  2930,  10,   2, UNI_GCB__T }   /* linebreak=jt */,
+  {     0,  4424,   527,  17,   6, UNI_RJNG }   /* scriptextensions=rejang */,
+  {     9,  3817,   520,  15,   1, UNI_NV__1_SLASH_7 }   /* numericvalue=1/7 */,
+  {    12,   875,   599,   5,   3, -UNI_UIDEO }   /* uideo=no */,
+  {     2,  2301,  3401,   9,   3, UNI_xidc_values_index }   /* xidcontinue= */,
+  {     4,  2324,   678,   6,   5, UNI_INRUNIC }   /* block=runic */,
+  {     0,   442,     0,   4,   0, UNI_ORKH }   /* orkh */,
+  {     3,  7495,   343,  27,   2, UNI_CCC__12 }   /* canonicalcombiningclass=ccc12 */,
+  {    12,    30,  1561,   1,   2, UNI_N }   /* isn */,
+  {     1,  4360,  2991,  10,   2, UNI_LB__QU }   /* linebreak=qu */,
+  {     1,  1102,  1133,   4,   4, UNI_VITH }   /* scx=vith */,
+  {     0,  3490,     0,  12,   0, UNI_INCYRILLIC }   /* blk=cyrillic */,
+  {     2,  1853,   298,   9,   2, UNI_SYLO }   /* sylotinagri */,
+  {     0,  2232,  2107,   4,   8, UNI_NV__17_SLASH_2 }   /* nv=8.500e+00 */,
+  {    34,  2732,  5676,   5,  18, UNI_ANCIENTGREEKNUMBERS }   /* blk=ancientgreeknumbers */,
+  {     4,  6165,  6154,   3,   9, UNI_XSUX }   /* sc=cuneiform */,
+  {     0,  4424,  1635,  17,  10, UNI_WARA }   /* scriptextensions=warangciti */,
+  {     0,  2302,     0,   3,   0, UNI_IDC }   /* idc */,
+  {     0,  1667,  6510,   4,  24, UNI_HIGHPUSURROGATES }   /* blk=highprivateusesurrogates */,
+  {     2,  6866,   585,  24,   2, UNI_COMPEX }   /* fullcompositionexclusion=t */,
+  {     0,   461,  1082,   2,   4, UNI_XPOSIXWORD }   /* isword */,
+  {     4,  1823,   663,   7,   4, UNI_SC__LIMB }   /* script=limb */,
+  {     0,   823,   585,   4,   2, UNI_DASH }   /* dash=t */,
+  {     0,   461,   261,   2,   5, UNI_CWKCF }   /* iscwkcf */,
+  {     1,  2232,  1805,   4,   4, UNI_NV__80000 }   /* nv=80000 */,
+  {     1,  1667,  7796,   4,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* blk=enclosedideographicsupplement */,
+  {     4,  1102,   991,   4,   4, UNI_HATR }   /* scx=hatr */,
+  {     4,  2665,  1104,  12,   3, UNI_PATSYN }   /* patternsyntax=t */,
+  {     0,  1243,  4504,   4,  16, UNI_LATINEXTB }   /* block=latinextendedb */,
+  {     0,  2685,  2083,   4,   2, UNI_IN__5_DOT_1 }   /* in=5.1 */,
+  {     0,  4360,  2589,  10,  10, UNI_LB__BA }   /* linebreak=breakafter */,
+  {     0,  4519,  3642,  16,   7, UNI_CYRILLICEXTD }   /* block=cyrillicextendedd */,
+  {     0,  1102,   458,   4,   4, UNI_QAAI }   /* scx=qaai */,
+  {     0,  1823,   983,   7,   8, UNI_SC__HIRA }   /* script=hiragana */,
+  {     0,  1572,     0,  10,   0, UNI_XPEO }   /* oldpersian */,
+  {    31,  1741,  1479,   6,   5, UNI_VERTSPACE }   /* isvertspace */,
+  {     0,   309,  2335,   2,  13, UNI_BLOCKELEMENTS }   /* inblockelements */,
+  {     9,  1667,  5031,   4,  14, UNI_INHANIFIROHINGYA }   /* blk=hanifirohingya */,
+  {     7,  1823,   216,   7,   4, UNI_TOTO }   /* script=toto */,
+  {     0,  2766,     8,   3,   2, UNI_PC }   /* gc=pc */,
+  {     1,  4090,     0,  17,   0, UNI_INDICSIYAQNUMBERS }   /* indicsiyaqnumbers */,
+  {     0,  2718,  3706,   3,  14, UNI_BC__NSM }   /* bc=nonspacingmark */,
+  {     1,  1198,  6357,   5,  13, UNI_CJKCOMPAT }   /* incjkcompatibility */,
+  {     2,  6816,   585,  25,   2, UNI_CWKCF }   /* changeswhennfkccasefolded=t */,
+  {     0,  4424,   164,  17,   4, UNI_PHNX }   /* scriptextensions=phnx */,
+  {     0,    20,   585,   3,   5, UNI_XPOSIXXDIGIT }   /* hex=true */,
+  {     1,   578,  1153,   5,   2, UNI_CCC__L }   /* ccc=224 */,
+  {     0,    30,  1882,   1,   6, UNI_BIDIC }   /* isbidic */,
+  {     2,   309,  6776,   2,  11, UNI_INMEETEIMAYEK }   /* inmeeteimayek */,
+  {    16,   309,  1294,   2,   9, UNI_INNABATAEAN }   /* innabataean */,
+  {     0,  7267,   248,  16,   5, UNI_XPOSIXCNTRL }   /* generalcategory=cntrl */,
+  {     1,  6866,   934,  24,   6, -UNI_COMPEX }   /* fullcompositionexclusion=false */,
+  {     9,   461,  4683,   2,  16, UNI_PF }   /* isfinalpunctuation */,
+  {     4,  4845,  5671,  16,   4, -UNI__PERL_PATWS }   /* patternwhitespace=no */,
+  {     8,  2018,  2720,  11,   2, UNI_JT__R }   /* joiningtype=r */,
+  {     0,  6165,  3908,   3,   6, UNI_TANG }   /* sc=tangut */,
+  {     2,  4360,   928,   9,   3, UNI_LB__OP }   /* linebreak=op */,
+  {     1,  2536,  5084,   3,   6, UNI_JG__YUDHHE }   /* jg=yudhhe */,
+  {     0,   461,  6677,   2,  14, UNI_LM }   /* ismodifierletter */,
+  {     3,  2665,     0,  13,   0, UNI_PATSYN }   /* patternsyntax */,
+  {     4,   663,     0,   5,   0, UNI_LIMB }   /* limbu */,
+  {     0,  5065,  4756,  13,   5, UNI_JG__MANICHAEANZAYIN }   /* jg=manichaeanzayin */,
+  {    33,  1102,   746,   4,   4, UNI_MARC }   /* scx=marc */,
+  {     0,  3677,  4659,   7,   9, UNI_LATINEXTC }   /* islatinextendedc */,
+  {     0,   887,   549,   5,   3, UNI_AGE__14 }   /* age=14.0 */,
+  {     0,  1667,  5274,   4,  18, UNI_HALFMARKS }   /* blk=combininghalfmarks */,
+  {     1,  2503,   599,   5,   3, -UNI_JOINC }   /* joinc=no */,
+  {    11,  1102,   333,   4,   4, UNI_CARI }   /* scx=cari */,
+  {     0,  2302,   599,   3,   3, -UNI_IDC }   /* idc=no */,
+  {     4,  2930,  2908,   3,  11, UNI_JT__C }   /* jt=joincausing */,
+  {     1,  7274,   252,   9,   2, UNI_CASEDLETTER }   /* category=lc */,
+  {    16,  6090,  1235,   7,   6, UNI_INMULTANI }   /* block=multani */,
+  {    35,  7752,  4751,  23,   5, UNI_JG__MANICHAEANSADHE }   /* joininggroup=manichaeansadhe */,
+  {     6,  2280,   549,  10,   3, UNI_IN__4 }   /* presentin=4.0 */,
+  {     1,  1823,   688,   7,   5, UNI_BATK }   /* script=batak */,
+  {     3,  2536,   118,   3,   3, UNI_JG__DAL }   /* jg=dal */,
+  {     9,    30,  3435,   1,  16, UNI_SARB }   /* inoldsoutharabian */,
+  {     0,  7591,  3634,   3,   2, UNI_LB__NL }   /* lb=nl */,
+  {     1,  2324,  1003,   6,   6, UNI_INLEPCHA }   /* block=lepcha */,
+  {    14,   510,   346,   4,   1, UNI_NV__38 }   /* nv=38 */,
+  {     0,  7011,  8648,  24,  10, UNI_CCC__AR }   /* canonicalcombiningclass=aboveright */,
+  {     0,  1272,  3938,   3,  16, UNI_UCAS }   /* iscanadiansyllabics */,
+  {    11,  2536,   706,   3,   4, UNI_JG__SEEN }   /* jg=seen */,
+  {     0,   533,   325,   3,   2, UNI_SB__UP }   /* sb=up */,
+  {     2,  7591,   700,   3,   2, UNI_EMOD }   /* lb=em */,
+  {     0,  5799,  8386,   5,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* insupsymbolsandpictographs */,
+  {    19,     4,   352,   2,   3, UNI_LOE }   /* loe=y */,
+  {    10,  2324,  6576,   7,  21, UNI_INDICNUMBERFORMS }   /* block=commonindicnumberforms */,
+  {    35,  2432,   747,   3,   6, UNI_INMARCHEN }   /* inmarchen */,
+  {     7,  1823,   188,   7,   4, UNI_SGNW }   /* script=sgnw */,
+  {     1,    10,  2422,   1,  10, UNI_MISCSYMBOLS }   /* miscsymbols */,
+  {    55,  1906,  1544,   5,   9, UNI_INKHAROSHTHI }   /* blk=kharoshthi */,
+  {     1,   461,   474,   2,   3, UNI_VAI }   /* isvai */,
+  {    20,   461,  6464,   2,  23, UNI_SHORTHANDFORMATCONTROLS }   /* isshorthandformatcontrols */,
+  {     2,   533,  1612,   3,   2, UNI_LB__LF }   /* sb=lf */,
+  {     0,  1102,  1098,   4,   4, UNI_NSHU }   /* scx=nshu */,
+  {     0,  1397,   353,   3,   4, UNI_IDS }   /* ids=yes */,
+  {    36,  7591,    53,   3,   2, UNI_LB__NS }   /* lb=ns */,
+  {     0,  7274,  1478,   9,   2, UNI_ZS }   /* category=zs */,
+  {     0,    32,   599,   2,   3, -UNI_VS }   /* vs=no */,
+  {     0,   271,   535,   2,   2, UNI_S }   /* gc=s */,
+  {     0,  7084,  1505,   8,   4, UNI_ARABICEXTA }   /* inarabicexta */,
+  {     0,  4584,     0,  18,   0, UNI_IDST }   /* idstrinaryoperator */,
+  {     4,  1823,  3505,   6,   5, UNI_ETHI }   /* script=ethi */,
+  {     4,  7274,  2004,   9,   2, UNI_PO }   /* category=po */,
+  {    17,   192,    18,   3,   1, UNI_TAGB }   /* tagb */,
+  {     2,  2536,  1041,   3,   5, UNI_JG__GAMAL }   /* jg=gamal */,
+  {     0,    78,     0,   4,   0, UNI_DSRT }   /* dsrt */,
+  {    39,  4970,   353,  13,   4, UNI_EMOD }   /* emojimodifier=yes */,
+  {     1,   339,  3405,   4,   2, UNI_CCC__36 }   /* ccc=36 */,
+  {     6,  2525,  1942,   6,   5, UNI_XPOSIXGRAPH }   /* xposixgraph */,
+  {     0,  1033,     0,   4,   0, UNI_JAMO }   /* jamo */,
+  {     0,  4525,   192,  10,   2, UNI_CYRILLICEXTA }   /* cyrillicexta */,
+  {    20,  1667,   854,   4,   7, UNI_INTAIVIET }   /* blk=taiviet */,
+  {     0,  1396,   934,   8,   2, -UNI_XIDS }   /* xidstart=f */,
+  {     1,  1823,   102,   7,   4, UNI_HMNG }   /* script=hmng */,
+  {     0,   461,  3663,   2,  10, UNI_DEVA }   /* isdevanagari */,
+  {     0,  1728,  3790,   5,   5, UNI_ARABICMATH }   /* arabicmath */,
+  {     1,   876,   585,   4,   2, UNI_IDEO }   /* ideo=t */,
+  {     4,  7011,  2165,  25,   2, UNI_CCC__DB }   /* canonicalcombiningclass=233 */,
+  {     1,   461,   333,   2,   4, UNI_CARI }   /* iscari */,
+  {     1,  3177,   140,  15,   2, UNI_EA__NA }   /* eastasianwidth=na */,
+  {     1,   309,  4176,   2,   6, UNI_INHANGUL }   /* inhangul */,
+  {    24,   739,     0,   7,   0, UNI_MAND }   /* mandaic */,
+  {     1,  7889,  4218,  26,   4, UNI_CJKEXTH }   /* cjkunifiedideographsextensionh */,
+  {     0,  2718,     0,   4,   0, UNI_BC__R }   /* bc=r */,
+  {     0,  1065,   288,   4,   1, UNI_NV__13 }   /* nv=13 */,
+  {     3,  4970,   584,  16,   6, UNI_EBASE }   /* emojimodifierbase=true */,
+  {    26,  1198,  3163,   3,  14, UNI_CONTROLPICTURES }   /* incontrolpictures */,
+  {     0,  2348,   352,  12,   3, UNI_CI }   /* caseignorable=y */,
+  {    38,  4424,  6776,  17,  11, UNI_MTEI }   /* scriptextensions=meeteimayek */,
+  {     2,   257,   353,   4,   2, UNI_CWCM }   /* cwcm=y */,
+  {     0,   271,   599,   2,   3, UNI_NO }   /* gc=no */,
+  {    12,   533,  1613,   3,   2, UNI_SB__FO }   /* sb=fo */,
+  {     0,  6165,   847,   3,   7, UNI_LANA }   /* sc=taitham */,
+  {    16,  2324,  1051,   6,   8, UNI_INMAHAJANI }   /* block=mahajani */,
+  {    13,  4391,   520,  14,   1, UNI_NV__37 }   /* numericvalue=37 */,
+  {     0,    53,    35,   1,   3, UNI_NBAT }   /* nbat */,
+  {     1,  1823,   414,   7,   4, UNI_SC__HANO }   /* script=hano */,
+  {     0,  4424,  1334,  17,   4, UNI_PERM }   /* scriptextensions=perm */,
+  {    13,  4852,  5671,   9,   4, -UNI_XPOSIXSPACE }   /* whitespace=no */,
+  {     0,  3204,   599,  14,   3, -UNI_GREXT }   /* graphemeextend=no */,
+  {     4,  5156,  2487,  12,   7, UNI_WB__ML }   /* wordbreak=midletter */,
+  {     1,  4424,    98,  17,   4, UNI_HLUW }   /* scriptextensions=hluw */,
+  {     3,  2424,     0,   2,   0, UNI__PERL_SURROGATE }   /* cs */,
+  {     0,  4360,    92,  12,   1, UNI_LB__ZWJ }   /* linebreak=zwj */,
+  {     1,  6427,   710,  13,   4, UNI_JG__SHIN }   /* joininggroup=shin */,
+  {     1,  3013,   353,   5,   4, UNI_EPRES }   /* epres=yes */,
+  {    74,  1102,   810,   4,   4, UNI_SYRC }   /* scx=syrc */,
+  {     0,   916,  5671,   4,   3, -UNI_EBASE }   /* ebase=n */,
+  {     2,   461,  1227,   2,   4, UNI_MAKA }   /* ismaka */,
+  {     0,     2,  5671,   1,   4, -UNI_CE }   /* ce=no */,
+  {     1,  7267,  2424,  16,   2, UNI__PERL_SURROGATE }   /* generalcategory=cs */,
+  {     0,  2832,  6193,   8,   5, UNI_CYRILLICSUP }   /* iscyrillicsup */,
+  {    12,  6986,     0,  25,   0, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* symbolsforlegacycomputing */,
+  {     0,  4970,   353,  13,   2, UNI_EMOD }   /* emojimodifier=y */,
+  {     9,  1397,   353,   4,   2, UNI_IDST }   /* idst=y */,
+  {    14,  3391,  2657,  14,   8, UNI_NV__1_SLASH_5 }   /* numericvalue=2.000e-01 */,
+  {    64,  2393,     0,   8,   0, UNI_CYRL }   /* cyrillic */,
+  {     3,  2280,     0,  10,   0, UNI_in_values_index }   /* presentin= */,
+  {    10,  2752,   934,  14,   6, -UNI_ECOMP }   /* emojicomponent=false */,
+  {     7,    54,  3505,   2,   9, UNI_ETHI }   /* sc=ethiopic */,
+  {     2,   916,   584,   4,   6, UNI_EBASE }   /* ebase=true */,
+  {    34,  1391,  3463,   3,  12, UNI_WB__EB }   /* wb=glueafterzwj */,
+  {     1,  1823,  1465,   7,  10, UNI_DIAK }   /* script=divesakuru */,
+  {     0,  2393,  4511,   8,   9, UNI_CYRILLICEXTB }   /* cyrillicextendedb */,
+  {     5,  4852,   584,   9,   3, UNI_XPOSIXSPACE }   /* whitespace=t */,
+  {    13,  6427,  3726,  12,  14, UNI_JG__MALAYALAMNNNA }   /* joininggroup=malayalamnnna */,
+  {     0,  7591,   279,   3,   2, UNI_GCB__L }   /* lb=jl */,
+  {     4,   840,     0,   7,   0, UNI_TGLG }   /* tagalog */,
+  {     0,  6165,   663,   3,   4, UNI_SC__LIMB }   /* sc=limb */,
+  {     0,   609,  4369,   2,   3, UNI_LB__ZW }   /* lb=zw */,
+  {     0,  7537,   599,  10,   2, -UNI_XPOSIXALPHA }   /* alphabetic=n */,
+  {     0,  1823,  3505,   6,   9, UNI_ETHI }   /* script=ethiopic */,
+  {     0,  1823,  1834,   7,   4, UNI_SORA }   /* script=sora */,
+  {     2,  1543,     0,  10,   0, UNI_KHAR }   /* kharoshthi */,
+  {     0,    20,   353,   3,   4, UNI_XPOSIXXDIGIT }   /* hex=yes */,
+  {     0,  1823,  5353,   7,  20, UNI_PHLI }   /* script=inscriptionalpahlavi */,
+  {     1,  1221,  5848,   6,   9, UNI_KANAEXTA }   /* inkanaextendeda */,
+  {     0,   875,   353,   5,   2, UNI_UIDEO }   /* uideo=y */,
+  {     0,  2852,     0,   4,   0, UNI_MAHJ }   /* mahj */,
+  {     1,  3014,   392,  11,   2, UNI_IN__4_DOT_1 }   /* presentin=v41 */,
+  {     3,  6450,    21,  14,   2, UNI_SB__EX }   /* sentencebreak=ex */,
+  {     1,  7887,  4410,  28,   4, UNI_CJKEXTA }   /* incjkunifiedideographsextensiona */,
+  {     0,  3817,   395,  15,   2, UNI_NV__1_SLASH_16 }   /* numericvalue=1/16 */,
+  {    13,  5274,  5283,   9,   9, UNI_HALFMARKS }   /* combininghalfmarks */,
+  {     0,   461,    51,   2,   4, UNI_CANS }   /* iscans */,
+  {     0,  1823,  5067,   6,  11, UNI_SC__MANI }   /* script=manichaean */,
+  {     2,   895,  1317,   5,   2, UNI_AGE__3_DOT_2 }   /* age=v32 */,
+  {     0,   339,  8203,   4,  11, UNI_CCC__DB }   /* ccc=doublebelow */,
+  {     1,  6427,     0,  23,   0, UNI_JG__AFRICANQAF }   /* joininggroup=africanqaf */,
+  {     1,  7011,  3405,  24,   2, UNI_CCC__36 }   /* canonicalcombiningclass=36 */,
+  {     0,   309,  7356,   2,  27, UNI_OCR }   /* inopticalcharacterrecognition */,
+  {    12,    92,   643,   1,   3, UNI_JT__L }   /* jt=l */,
+  {     0,  6165,  4896,   3,   5, UNI_BAMU }   /* sc=bamum */,
+  {     0,  8246,  2720,  23,   6, UNI_INPC__RIGHT }   /* indicpositionalcategory=right */,
+  {     1,  2988,  5164,  12,   3, UNI_NFCQC__M }   /* nfcquickcheck=m */,
+  {     0,  5156,    21,  10,   2, UNI_WB__EX }   /* wordbreak=ex */,
+  {     3,  3878,     0,  14,   0, UNI_NV__9 }   /* numericvalue=9 */,
+  {     2,  1823,   148,   7,   4, UNI_SC__ORYA }   /* script=orya */,
+  {     0,  1102,  4176,   4,   4, UNI_HANG }   /* scx=hang */,
+  {     2,  6165,  4176,   3,   4, UNI_SC__HANG }   /* sc=hang */,
+  {     0,   876,   585,   4,   5, UNI_IDEO }   /* ideo=true */,
+  {     0,  1191,     0,   7,   0, UNI_BENG }   /* bengali */,
+  {     0,   895,  1318,   5,   2, UNI_AGE__2 }   /* age=v20 */,
+  {     0,   461,  1255,   2,   7, UNI_SIDD }   /* issiddham */,
+  {     0,  2324,  2244,   6,  12, UNI_INOLDHUNGARIAN }   /* block=oldhungarian */,
+  {     0,  7267,  1887,  16,   7, UNI_XPOSIXCNTRL }   /* generalcategory=control */,
+  {     2,  4161,   599,   9,   3, -UNI_DIA }   /* diacritic=no */,
+  {     0,  1397,   353,   7,   4, UNI_IDS }   /* idstart=yes */,
+  {    36,   309,   317,   2,   5, UNI_INTAILE }   /* intaile */,
+  {    19,  2324,   398,   6,   4, UNI_INMIAO }   /* block=miao */,
+  {     1,  1823,  6185,   7,   4, UNI_SC__GLAG }   /* script=glag */,
+  {    12,  1409,  1037,   5,   4, UNI_LATINEXTB }   /* latinextb */,
+  {     0,  2411,     0,   8,   0, UNI_KANA }   /* katakana */,
+  {    72,     2,  4076,   1,  13, UNI_SC }   /* currencysymbol */,
+  {     2,  5637,  3472,  21,   3, UNI_LB__ZWJ }   /* graphemeclusterbreak=zwj */,
+  {     3,    43,     0,   4,   0, UNI_BUHD }   /* buhd */,
+  {     7,  7383,  7776,  10,  21, UNI_BC__PDI }   /* bidiclass=popdirectionalisolate */,
+  {     4,  1102,   116,   4,   4, UNI_KNDA }   /* scx=knda */,
+  {     0,  7356,     0,  27,   0, UNI_OCR }   /* opticalcharacterrecognition */,
+  {     0,  1439,  1477,   3,   7, UNI_XPOSIXBLANK }   /* horizspace */,
+  {     0,    30,   492,   1,   7, UNI_INKHOJKI }   /* inkhojki */,
+  {     2,  1667,  7467,   4,  28, UNI_SUPPUAA }   /* blk=supplementaryprivateuseareaa */,
+  {     1,  4584,   353,  18,   4, UNI_IDST }   /* idstrinaryoperator=yes */,
+  {     0,  4360,  1771,  10,   8, UNI_LB__NL }   /* linebreak=nextline */,
+  {     6,  7011,  5016,  24,   2, UNI_CCC__8 }   /* canonicalcombiningclass=kv */,
+  {     4,   461,  1396,   2,   8, UNI_XIDS }   /* isxidstart */,
+  {     6,  3014,   288,  12,   2, UNI_IN__13 }   /* presentin=v130 */,
+  {    15,  3421,     0,  15,   0, UNI_NARB }   /* oldnortharabian */,
+  {     1,   895,  2093,   5,   2, UNI_AGE__5 }   /* age=v50 */,
+  {     9,  7011,   346,  25,   1, UNI_CCC__28 }   /* canonicalcombiningclass=28 */,
+  {     0,  7214,  1316,  25,   2, UNI_CCC__103 }   /* canonicalcombiningclass=103 */,
+  {     0,  3130,  5863,   9,  13, UNI_GEORGIANSUP }   /* blk=georgiansupplement */,
+  {     1,   461,  1478,   2,   2, UNI_ZS }   /* iszs */,
+  {     6,  1272,  6357,   5,  13, UNI_CJKCOMPAT }   /* iscjkcompatibility */,
+  {     1,  2766,  2621,   3,   9, UNI__PERL_SURROGATE }   /* gc=surrogate */,
+  {     3,  1734,   819,   3,   6, UNI_SHRD }   /* issharada */,
+  {     4,  3021,   343,   4,   3, UNI_IN__12_DOT_1 }   /* in=v121 */,
+  {    24,  4502,  5635,  15,   3, UNI_LATINEXTG }   /* blk=latinextendedg */,
+  {     9,  1823,   283,   7,   5, UNI_NSHU }   /* script=nushu */,
+  {     0,   271,   898,   3,   2, UNI_GCB__V }   /* gcb=v */,
+  {    28,  2324,  2009,   6,   6, UNI_INSYRIAC }   /* block=syriac */,
+  {     0,   597,  1715,   3,   8, UNI_DT__ISO }   /* dt=isolated */,
+  {    19,  2324,  4926,   6,  15, UNI_TAMILSUP }   /* block=tamilsupplement */,
+  {     4,   461,  1404,   2,  10, UNI_ASCII }   /* isbasiclatin */,
+  {     3,  4424,   909,  17,   4, UNI_BALI }   /* scriptextensions=bali */,
+  {     4,  2324,  3611,   9,   6, UNI_CJKCOMPAT }   /* block=cjkcompat */,
+  {     0,   461,  1191,   2,   7, UNI_BENG }   /* isbengali */,
+  {     3,  6427,  3289,  13,  12, UNI_JG__FINALSEMKATH }   /* joininggroup=finalsemkath */,
+  {     4,  2324,  5857,   6,   9, UNI_INMONGOLIAN }   /* block=mongolian */,
+  {     0,  8601,  1609,   7,   9, UNI_SMALLFORMS }   /* block=smallforms */,
+  {     2,  7198,  7304,   5,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* blk=symbolsandpictographsexta */,
+  {     6,  6165,   909,   3,   4, UNI_BALI }   /* sc=bali */,
+  {     0,  4424,   658,  17,   5, UNI_DOGR }   /* scriptextensions=dogra */,
+  {     5,  6165,  1543,   3,  10, UNI_KHAR }   /* sc=kharoshthi */,
+  {     9,   423,  5676,   3,  18, UNI_ANCIENTGREEKNUMBERS }   /* inancientgreeknumbers */,
+  {    25,  1102,   991,   4,   6, UNI_HATR }   /* scx=hatran */,
+  {     1,    20,   934,   3,   2, -UNI_XPOSIXXDIGIT }   /* hex=f */,
+  {     0,  6165,   746,   3,   7, UNI_MARC }   /* sc=marchen */,
+  {     0,  1397,   353,   7,   2, UNI_IDS }   /* idstart=y */,
+  {    12,  7804,  6621,  10,   3, UNI_IDEO }   /* ideographic=t */,
+  {     2,  1671,   131,   6,   1, UNI_CJKEXTF }   /* cjkextf */,
+  {     0,   552,  2222,   3,   4, UNI_AGE__6_DOT_2 }   /* age=6.2 */,
+  {     1,   461,   446,   2,   4, UNI_PHLI }   /* isphli */,
+  {     2,  3724,   720,  12,   3, UNI_JG__MALAYALAMNNA }   /* jg=malayalamnna */,
+  {     5,  4424,  4651,  17,   8, UNI_BOPO }   /* scriptextensions=bopomofo */,
+  {     0,  2432,  1037,   9,   4, UNI_MYANMAREXTB }   /* inmyanmarextb */,
+  {     0,   292,   289,   3,   1, UNI_NV__0 }   /* nv=0 */,
+  {     0,  5156,  1869,  10,   3, UNI_WB__EB }   /* wordbreak=gaz */,
+  {     2,  6735,  3720,  22,   4, UNI_JG__MALAYALAMLLLA }   /* joininggroup=malayalamllla */,
+  {    12,   461,  1051,   2,   8, UNI_MAHJ }   /* ismahajani */,
+  {     0,   309,  2786,   2,  14, UNI_HIGHSURROGATES }   /* inhighsurrogates */,
+  {     5,  3391,  2165,  13,   2, UNI_NV__33 }   /* numericvalue=33 */,
+  {     2,    30,  4190,   1,  16, UNI_LOWERCASELETTER }   /* islowercaseletter */,
+  {     0,  7537,   585,  10,   5, UNI_XPOSIXALPHA }   /* alphabetic=true */,
+  {    18,  1667,  1582,   4,  10, UNI_INPHOENICIAN }   /* blk=phoenician */,
+  {     0,  7383,     0,  10,   0, UNI_bc_values_index }   /* bidiclass= */,
+  {     0,  2832,  1674,  10,   4, UNI_CYRILLICEXTD }   /* iscyrillicextd */,
+  {    11,  3863,  2107,  14,   8, UNI_NV__17_SLASH_2 }   /* numericvalue=8.500e+00 */,
+  {    42,  2324,  1978,   6,   7, UNI_INSOGDIAN }   /* block=sogdian */,
+  {     2,  1883,   934,   5,   6, -UNI_BIDIC }   /* bidic=false */,
+  {    14,  1484,     0,   8,   0, UNI_BUGI }   /* buginese */,
+  {     3,   309,  1543,   2,  10, UNI_INKHAROSHTHI }   /* inkharoshthi */,
+  {     7,  4424,  4926,  17,   5, UNI_TAML }   /* scriptextensions=tamil */,
+  {    32,  1117,     0,   8,   0, UNI_TAGB }   /* tagbanwa */,
+  {     0,  6165,    15,   3,   4, UNI_AGHB }   /* sc=aghb */,
+  {     4,  3391,  1067,  12,   4, UNI_NV__1_SLASH_3 }   /* numericvalue=1/3 */,
+  {     5,  3633,  1037,   7,   4, UNI_LATINEXTB }   /* inlatinextb */,
+  {     8,   673,     0,   5,   0, UNI_OSGE }   /* osage */,
+  {     1,  2514,  2422,   3,  10, UNI_MISCSYMBOLS }   /* ismiscsymbols */,
+  {     0,   461,  1358,   2,   9, UNI_PALM }   /* ispalmyrene */,
+  {     3,   339,  5016,   4,   2, UNI_CCC__8 }   /* ccc=kv */,
+  {     1,  1667,  4651,   4,  11, UNI_BOPOMOFOEXT }   /* blk=bopomofoext */,
+  {     0,  6165,  1340,   3,   9, UNI_ORKH }   /* sc=oldturkic */,
+  {     0,  2280,   140,  10,   2, UNI_IN__NA }   /* presentin=na */,
+  {     0,   461,  1414,   2,  10, UNI_BOXDRAWING }   /* isboxdrawing */,
+  {     2,   298,     0,   2,   0, UNI_RI }   /* ri */,
+  {     0,  2523,  4191,   8,   5, UNI_XPOSIXLOWER }   /* isxposixlower */,
+  {     8,   461,   825,   2,   7, UNI_SHAW }   /* isshavian */,
+  {     6,  4191,   933,   8,   7, -UNI_XPOSIXLOWER }   /* lowercase=false */,
+  {     1,   461,  3569,   4,  14, UNI_HALFANDFULLFORMS }   /* ishalfandfullforms */,
+  {     3,  3093,   353,  13,   4, UNI_POSIXXDIGIT }   /* asciihexdigit=yes */,
+  {     0,  2324,  6776,   6,  11, UNI_INMEETEIMAYEK }   /* block=meeteimayek */,
+  {    24,   461,  4060,   2,   4, UNI_BRAI }   /* isbrai */,
+  {     1,  3696,   837,   4,   3, UNI_SUPPUAA }   /* suppuaa */,
+  {     1,  2348,   352,  12,   5, UNI_CI }   /* caseignorable=yes */,
+  {     0,  4424,   739,  17,   7, UNI_MAND }   /* scriptextensions=mandaic */,
+  {     7,    20,  1104,   2,   2, UNI_hex_values_index }   /* hex= */,
+  {     0,  1667,  5283,   4,   9, UNI_HALFMARKS }   /* blk=halfmarks */,
+  {     0,  6163,  6934,  14,  11, UNI_INSC__CONSONANTWITHSTACKER }   /* insc=consonantwithstacker */,
+  {     0,  3276,     0,  13,   0, UNI_ME }   /* enclosingmark */,
+  {    35,   461,  1475,   3,   9, UNI_XPOSIXBLANK }   /* ishorizspace */,
+  {     2,   517,  1805,   4,   5, UNI_NV__700000 }   /* nv=700000 */,
+  {     2,   533,   592,   3,   2, UNI_SB__SE }   /* sb=se */,
+  {    23,  6450,  5090,  13,   3, UNI_SB__CL }   /* sentencebreak=cl */,
+  {     0,  2324,  1205,   6,   7, UNI_INGRANTHA }   /* block=grantha */,
+  {     2,  5216,  4533,  11,   4, UNI_LATINEXTC }   /* block=latinextc */,
+  {     0,   578,   346,   6,   1, UNI_CCC__AL }   /* ccc=228 */,
+  {     0,  4424,  1248,  17,   7, UNI_PHAG }   /* scriptextensions=phagspa */,
+  {     2,  3791,   934,   4,   6, -UNI_MATH }   /* math=false */,
+  {     3,  3093,     0,   5,   0, UNI_ASCII }   /* ascii */,
+  {     0,   461,  6351,   2,  23, UNI_COMPATJAMO }   /* ishangulcompatibilityjamo */,
+  {     0,  2468,     0,  13,   0, UNI_IPAEXT }   /* ipaextensions */,
+  {     1,  2232,  1314,   4,   2, UNI_NV__800 }   /* nv=800 */,
+  {     8,  2324,  1448,   9,   7, UNI_CJKSTROKES }   /* block=cjkstrokes */,
+  {     0,  5065,  3894,  12,   4, UNI_JG__MANICHAEANTEN }   /* jg=manichaeanten */,
+  {    49,   461,   244,   2,   4, UNI_ZZZZ }   /* iszzzz */,
+  {    10,  1823,   422,   7,   4, UNI_SC__LINA }   /* script=lina */,
+  {     0,   552,  2360,   4,  10, UNI_IN__NA }   /* age=unassigned */,
+  {    34,  1618,   585,  10,   2, UNI_SD }   /* softdotted=t */,
+  {     1,  1667,  5958,   4,  21, UNI_SINHALAARCHAICNUMBERS }   /* blk=sinhalaarchaicnumbers */,
+  {     0,  3878,  1314,  14,   3, UNI_NV__9000 }   /* numericvalue=9000 */,
+  {     1,   597,  7011,   3,   9, UNI_DT__CAN }   /* dt=canonical */,
+  {     0,  1667,   634,   4,   7, UNI_INHANUNOO }   /* blk=hanunoo */,
+  {     1,  3130,   976,   5,   7, UNI_INGURMUKHI }   /* blk=gurmukhi */,
+  {     0,  6618,  8507,   4,   7, UNI_INPC__BOTTOM }   /* inpc=bottom */,
+  {    21,  1667,  3228,   4,  15, UNI_INIMPERIALARAMAIC }   /* blk=imperialaramaic */,
+  {     0,  2732,  4511,  10,   9, UNI_ARABICEXTB }   /* blk=arabicextendedb */,
+  {     4,  5939,   585,   5,   5, UNI__PERL_NCHAR }   /* nchar=true */,
+  {    12,  3436,     0,  15,   0, UNI_SARB }   /* oldsoutharabian */,
+  {     5,   309,  1205,   2,   7, UNI_INGRANTHA }   /* ingrantha */,
+  {     2,   309,  7564,   2,  27, UNI_ANCIENTGREEKMUSIC }   /* inancientgreekmusicalnotation */,
+  {     1,  3677,  5635,  13,   3, UNI_LATINEXTG }   /* islatinextendedg */,
+  {     0,   106,     0,   1,   0, UNI_Z }   /* z */,
+  {     0,  2060,  1175,   4,   3, -UNI_XPOSIXALPHA }   /* alpha=n */,
+  {     0,  1790,   599,   5,   3, UNI_COMPEX }   /* nfcqc=no */,
+  {     7,  7198,  5813,   7,   7, UNI_SUPARROWSB }   /* blk=suparrowsb */,
+  {     0,  5637,  2768,  20,   6, UNI_GCB__XX }   /* graphemeclusterbreak=other */,
+  {     1,  4424,  4951,  17,  19, UNI_EGYP }   /* scriptextensions=egyptianhieroglyphs */,
+  {     3,  5156,  1612,  10,   2, UNI_LB__LF }   /* wordbreak=lf */,
+  {     1,  1635,     0,  10,   0, UNI_WARA }   /* warangciti */,
+  {     2,  3724,   529,  12,   2, UNI_JG__MALAYALAMJA }   /* jg=malayalamja */,
+  {     1,  2525,   248,   6,   5, UNI_XPOSIXCNTRL }   /* xposixcntrl */,
+  {     1,  4424,  2441,  17,  11, UNI_NAND }   /* scriptextensions=nandinagari */,
+  {     3,  1823,   357,   7,   6, UNI_SC__CAKM }   /* script=chakma */,
+  {    97,  2966,  7304,   3,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* insymbolsandpictographsexta */,
+  {     2,  5979,  1343,   3,   2, UNI_VO__TU }   /* vo=tu */,
+  {     0,  7011,   395,  25,   2, UNI_CCC__216 }   /* canonicalcombiningclass=216 */,
+  {    33,  3407,  1317,  14,   5, UNI_NV__432000 }   /* numericvalue=432000 */,
+  {    17,  2002,  4150,   7,   5, UNI_POSIXPUNCT }   /* isposixpunct */,
+  {    76,   597,  2692,   3,   8, UNI_DT__VERT }   /* dt=vertical */,
+  {    14,   309,  5391,   2,  11, UNI_CHEROKEESUP }   /* incherokeesup */,
+  {     3,  6165,  5876,   3,   9, UNI_SUND }   /* sc=sundanese */,
+  {     1,  5658,  7073,  15,  11, UNI_IDENTIFIERTYPE__UNCOMMONUSE }   /* identifiertype=uncommonuse */,
+  {     1,    32,     0,   2,   0, UNI_VS }   /* vs */,
+  {     0,    30,  1561,   1,  11, UNI_NAGM }   /* isnagmundari */,
+  {     1,  1823,    94,   7,   4, UNI_SC__GURU }   /* script=guru */,
+  {     2,  2324,   683,   6,   5, UNI_INTAKRI }   /* block=takri */,
+  {     0,  2259,  1126,   3,   7, UNI_TFNG }   /* istifinagh */,
+  {     0,  1667,   951,   4,   8, UNI_INDUPLOYAN }   /* blk=duployan */,
+  {     2,  4424,  3228,  17,  15, UNI_ARMI }   /* scriptextensions=imperialaramaic */,
+  {     1,  3677,  4344,   3,  16, UNI_LETTERLIKESYMBOLS }   /* isletterlikesymbols */,
+  {     0,  2503,   599,  11,   2, -UNI_JOINC }   /* joincontrol=n */,
+  {     1,  4043,   599,  17,   3, -UNI_IDSB }   /* idsbinaryoperator=no */,
+  {     0,  7011,   289,  24,   1, UNI_CCC__0 }   /* canonicalcombiningclass=0 */,
+  {     2,   605,   341,   2,   2, UNI_idc_values_index }   /* idc= */,
+  {    40,   285,   452,   2,   2, UNI_SHRD }   /* shrd */,
+  {     5,  1102,   369,   4,   6, UNI_GOTH }   /* scx=gothic */,
+  {     1,  1667,  3583,   4,  16, UNI_HIGHPUSURROGATES }   /* blk=highpusurrogates */,
+  {     8,  7274,  3026,   9,   2, UNI_PS }   /* category=ps */,
+  {    15,  1883,   353,   5,   4, UNI_BIDIC }   /* bidic=yes */,
+  {     2,  7011,  3971,  24,  13, UNI_CCC__IS }   /* canonicalcombiningclass=iotasubscript */,
+  {     2,  2324,  5185,   6,  20, UNI_INANATOLIANHIEROGLYPHS }   /* block=anatolianhieroglyphs */,
+  {     0,   916,   352,   4,   5, UNI_EBASE }   /* ebase=yes */,
+  {     2,  6165,  1635,   3,  10, UNI_WARA }   /* sc=warangciti */,
+  {     0,  2180,   346,   4,   1, UNI_NV__48 }   /* nv=48 */,
+  {     6,  2401,  1037,  10,   4, UNI_ETHIOPICEXTB }   /* inethiopicextb */,
+  {     3,   309,  4131,   2,   8, UNI_VEDICEXT }   /* invedicext */,
+  {     7,    30,   938,   1,   6, UNI_ECOMP }   /* isecomp */,
+  {    13,   339,  1317,   4,   2, UNI_CCC__32 }   /* ccc=32 */,
+  {    11,  1823,   228,   7,   4, UNI_XSUX }   /* script=xsux */,
+  {     0,   252,     0,   2,   0, UNI_CASEDLETTER }   /* lc */,
+  {     0,    16,  4982,   1,   5, UNI_GRBASE }   /* grbase */,
+  {     0,  4502,  1505,   9,   4, UNI_LATINEXTA }   /* blk=latinexta */,
+  {    11,   876,   353,   4,   4, UNI_IDEO }   /* ideo=yes */,
+  {     0,  1065,   520,   4,   1, UNI_NV__17 }   /* nv=17 */,
+  {    32,  5460,   585,  19,   2, UNI_TERM }   /* terminalpunctuation=t */,
+  {     0,  1667,  7564,   4,  17, UNI_ANCIENTGREEKMUSIC }   /* blk=ancientgreekmusic */,
+  {     4,  5616,   353,  21,   2, UNI_CWU }   /* changeswhenuppercased=y */,
+  {     0,   339,  1318,   4,   2, UNI_CCC__20 }   /* ccc=20 */,
+  {     0,  6165,  6185,   3,   4, UNI_SC__GLAG }   /* sc=glag */,
+  {     2,  6165,    90,   3,   4, UNI_SC__GUJR }   /* sc=gujr */,
+  {     2,   309,   825,   2,   7, UNI_SHAW }   /* inshavian */,
+  {     0,  4360,     6,  10,   2, UNI_LB__CR }   /* linebreak=cr */,
+  {    17,  6427,   706,  13,   4, UNI_JG__SEEN }   /* joininggroup=seen */,
+  {     2,  6163,  5731,   6,  15, UNI_INSC__CANTILLATIONMARK }   /* insc=cantillationmark */,
+  {     0,  6165,   917,   3,   4, UNI_BASS }   /* sc=bass */,
+  {     0,  6165,   438,   3,   4, UNI_OLCK }   /* sc=olck */,
+  {     1,  5205,  2631,   5,  12, UNI_MAYANNUMERALS }   /* blk=mayannumerals */,
+  {     0,  3514,     0,  12,   0, UNI_INARABIC }   /* block=arabic */,
+  {     1,  3908,     0,   6,   0, UNI_TANG }   /* tangut */,
+  {     0,   309,  4896,   2,   8, UNI_BAMUMSUP }   /* inbamumsup */,
+  {     0,  4569,   585,   5,   5, UNI_XPOSIXUPPER }   /* upper=true */,
+  {     2,   339,  5523,   4,   9, UNI_CCC__BL }   /* ccc=belowleft */,
+  {     2,  1102,   430,   4,   3, UNI_NKO }   /* scx=nko */,
+  {     2,  3817,  4404,  14,   3, UNI_NV__13_SLASH_2 }   /* numericvalue=13/2 */,
+  {    12,   253,   934,   4,   2, -UNI_CWCF }   /* cwcf=f */,
+  {     0,  5205,  7825,   5,  30, UNI_MATHALPHANUM }   /* blk=mathematicalalphanumericsymbols */,
+  {     0,  6165,  5031,   3,  14, UNI_SC__ROHG }   /* sc=hanifirohingya */,
+  {     1,  1667,  1117,   4,   8, UNI_INTAGBANWA }   /* blk=tagbanwa */,
+  {     6,  4970,   934,  13,   2, -UNI_EMOD }   /* emojimodifier=f */,
+  {     0,  1823,   470,   7,   4, UNI_TNSA }   /* script=tnsa */,
+  {     4,   309,  2182,   2,   2, UNI_IN__4 }   /* in=4 */,
+  {     8,   517,  3846,   4,   2, UNI_NV__7_SLASH_8 }   /* nv=7/8 */,
+  {     0,  1102,  1255,   4,   7, UNI_SIDD }   /* scx=siddham */,
+  {     4,  3514,  4987,   7,  16, UNI_ALCHEMICAL }   /* block=alchemicalsymbols */,
+  {     4,   309,  7796,   2,  22, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* inenclosedideographicsup */,
+  {     1,  1823,   634,   7,   7, UNI_SC__HANO }   /* script=hanunoo */,
+  {     0,  5895,  6965,   5,  22, UNI_SUPERANDSUB }   /* issuperscriptsandsubscripts */,
+  {    27,   461,  1340,   2,   9, UNI_ORKH }   /* isoldturkic */,
+  {     2,  2434,  1505,   7,   4, UNI_MYANMAREXTA }   /* myanmarexta */,
+  {     3,  1102,  1592,   4,   4, UNI_SAUR }   /* scx=saur */,
+  {     0,  6165,  1003,   3,   4, UNI_LEPC }   /* sc=lepc */,
+  {     3,  6163,  3289,  14,   5, UNI_INSC__CONSONANTFINAL }   /* insc=consonantfinal */,
+  {     3,  1726,  1141,   8,   3, UNI_ARABICPFA }   /* isarabicpfa */,
+  {     2,  1667,   426,   4,   3, UNI_INMRO }   /* blk=mro */,
+  {     2,  6165,  4651,   3,   8, UNI_SC__BOPO }   /* sc=bopomofo */,
+  {    36,  4424,   975,  17,   8, UNI_GURU }   /* scriptextensions=gurmukhi */,
+  {     1,  8538,  5981,  19,  19, UNI_VO__TR }   /* verticalorientation=transformedrotated */,
+  {     0,    10,  2643,   1,  12, UNI_MISCTECHNICAL }   /* misctechnical */,
+  {     2,  8343,  6923,  31,  11, UNI_INSC__CONSONANTPLACEHOLDER }   /* indicsyllabiccategory=consonantplaceholder */,
+  {     2,  6816,   353,  25,   4, UNI_CWKCF }   /* changeswhennfkccasefolded=yes */,
+  {    20,    30,  2255,   1,   9, UNI_PHAISTOS }   /* inphaistos */,
+  {    40,  1102,   220,   4,   4, UNI_WCHO }   /* scx=wcho */,
+  {     5,  2287,  2083,   4,   2, UNI_IN__1_DOT_1 }   /* in=1.1 */,
+  {    16,   339,  5515,   4,  13, UNI_CCC__202 }   /* ccc=attachedbelow */,
+  {     6,  7383,  2424,  10,   2, UNI_BC__CS }   /* bidiclass=cs */,
+  {     5,  1530,   324,   6,   3, UNI_KANASUP }   /* iskanasup */,
+  {     0,  1102,    55,   4,   4, UNI_CHAM }   /* scx=cham */,
+  {     1,  7591,   119,   3,   2, UNI_LB__AL }   /* lb=al */,
+  {    18,  5255,   934,  20,   2, -UNI_EXTPICT }   /* extendedpictographic=f */,
+  {     2,   552,   140,   4,   2, UNI_IN__NA }   /* age=na */,
+  {    28,  1667,  6581,   4,  16, UNI_INDICNUMBERFORMS }   /* blk=indicnumberforms */,
+  {    72,  2494,   958,   9,   4, UNI_GEORGIANEXT }   /* isgeorgianext */,
+  {     0,  4424,   868,  17,   4, UNI_TIRH }   /* scriptextensions=tirh */,
+  {     1,  6062,  7915,   7,  20, UNI_ENCLOSEDALPHANUM }   /* block=enclosedalphanumerics */,
+  {     3,  4424,  4271,  17,  17, UNI_KITS }   /* scriptextensions=khitansmallscript */,
+  {     1,  4424,  5958,  17,   4, UNI_SINH }   /* scriptextensions=sinh */,
+  {     8,   309,  4926,   2,  15, UNI_TAMILSUP }   /* intamilsupplement */,
+  {    80,   833,   934,   4,   6, -UNI_TERM }   /* term=false */,
+  {     0,  1396,   585,   4,   5, UNI_XIDS }   /* xids=true */,
+  {     3,  4424,    86,  17,   4, UNI_GREK }   /* scriptextensions=grek */,
+  {     2,   224,  1660,   3,   7, UNI_XPOSIXSPACE }   /* xperlspace */,
+  {     1,  3391,  1071,  13,   4, UNI_NV__1_SLASH_12 }   /* numericvalue=1/12 */,
   {     0,  1102,   854,   4,   7, UNI_TAVT }   /* scx=taiviet */,
-  {     2,  1879,  1982,   4,   6, UNI_INSYRIAC }   /* blk=syriac */,
-  {     0,  6944,   348,  24,   2, UNI_CCC__18 }   /* canonicalcombiningclass=18 */,
-  {     1,  1796,  5340,   7,  10, UNI_SC__DEVA }   /* script=devanagari */,
-  {     2,  5586,  5718,  21,   9, UNI_WB__EB }   /* graphemeclusterbreak=emodifier */,
-  {     1,  5304,     0,  11,   0, UNI_TAIXUANJING }   /* taixuanjing */,
-  {     9,   464,  2747,   3,  13, UNI_HIGHSURROGATES }   /* ishighsurrogates */,
-  {     1,   154,  6878,   3,  20, UNI_GEOMETRICSHAPESEXT }   /* geometricshapesextended */,
-  {     0,  6379,  2519,  13,  10, UNI_JG__KNOTTEDHEH }   /* joininggroup=knottedheh */,
-  {     5,  1516,   493,   5,   3, UNI_KANBUN }   /* iskanbun */,
-  {     0,  1102,  3991,   4,   4, UNI_BRAI }   /* scx=brai */,
-  {    37,   313,  6462,   2,  24, UNI_HIGHPUSURROGATES }   /* inhighprivateusesurrogates */,
-  {     0,   581,   349,   6,   1, UNI_CCC__AL }   /* ccc=228 */,
-  {     3,  1198,     0,   4,   0, UNI_GRAN }   /* gran */,
-  {     5,  3367,   523,  14,   1, UNI_NV__47 }   /* numericvalue=47 */,
-  {     0,   464,  6799,   2,  24, UNI_COMPEX }   /* isfullcompositionexclusion */,
-  {     0,  4355,  1241,  17,   7, UNI_PHAG }   /* scriptextensions=phagspa */,
-  {     0,  7208,   252,   9,   2, UNI_CN }   /* category=cn */,
-  {     0,  4355,   136,  17,   4, UNI_MYMR }   /* scriptextensions=mymr */,
-  {     1,  5607,  7007,  15,  11, UNI_IDENTIFIERTYPE__UNCOMMONUSE }   /* identifiertype=uncommonuse */,
-  {     0,  2726,  3722,   3,  10, UNI_SM }   /* gc=mathsymbol */,
-  {     0,  4996,   229,  13,   2, UNI_JG__MANICHAEANPE }   /* jg=manichaeanpe */,
-  {     1,  2802,  7175,   3,  26, UNI_ENCLOSEDCJK }   /* isenclosedcjklettersandmonths */,
-  {     4,   313,   983,   2,   8, UNI_INHIRAGANA }   /* inhiragana */,
-  {     3,  7208,  3594,   9,   2, UNI_NL }   /* category=nl */,
-  {     0,  3462,  6142,  10,   5, UNI_ETHIOPICSUP }   /* blk=ethiopicsup */,
-  {     4,   464,  2041,   2,  12, UNI_MEND }   /* ismendekikakui */,
-  {     0,  1879,  4582,   4,   8, UNI_INBOPOMOFO }   /* blk=bopomofo */,
-  {     3,  1102,  1529,   4,  10, UNI_KHAR }   /* scx=kharoshthi */,
-  {     6,  7584,  2003,  20,   5, UNI_DT__NB }   /* decompositiontype=nobreak */,
-  {     2,  1867,   588,   5,   2, UNI_BIDIM }   /* bidim=t */,
-  {     0,   224,     0,   4,   0, UNI_WCHO }   /* wcho */,
-  {     1,  4450,  8150,   7,  32, UNI_DIACRITICALSEXT }   /* block=combiningdiacriticalmarksextended */,
-  {     1,  6114,  4392,   3,  11, UNI_SGNW }   /* sc=signwriting */,
-  {     1,  6944,   398,  25,   2, UNI_CCC__216 }   /* canonicalcombiningclass=216 */,
-  {     1,  1383,   588,   3,   5, UNI_IDS }   /* ids=true */,
-  {     5,  6025,  3408,  11,   6, UNI_GEORGIANEXT }   /* block=georgianext */,
-  {     0,  4355,  1802,  16,   5, UNI_MLYM }   /* scriptextensions=mlym */,
-  {     1,  6944,  3902,  24,  13, UNI_CCC__IS }   /* canonicalcombiningclass=iotasubscript */,
-  {     0,  1102,   136,   4,   4, UNI_MYMR }   /* scx=mymr */,
-  {     8,   313,  6439,   2,  23, UNI_ZNAMENNYMUSIC }   /* inznamennymusicalnotation */,
-  {     7,  7148,     0,  26,   0, UNI_CCC__12 }   /* canonicalcombiningclass=12 */,
-  {     5,  4433,  4701,  17,  10, UNI_LATINEXTADDITIONAL }   /* blk=latinextendedadditional */,
-  {     0,  3593,  6771,  12,   4, UNI_LATINEXTD }   /* inlatinextendedd */,
-  {    12,  4355,  4107,  17,   6, UNI_HANG }   /* scriptextensions=hangul */,
-  {     2,  3779,  6199,  14,   5, UNI_NV__700000 }   /* numericvalue=700000 */,
-  {     0,  1796,  4671,   7,   4, UNI_SC__TALE }   /* script=tale */,
-  {     4,  3474,   593,   6,   7, UNI_DSRT }   /* block=deseret */,
-  {     0,   464,  4582,   2,  11, UNI_BOPOMOFOEXT }   /* isbopomofoext */,
-  {     0,  1879,  1144,   4,   9, UNI_INBHAIKSUKI }   /* blk=bhaiksuki */,
-  {     1,  3974,   934,   4,   6, -UNI_IDSB }   /* idsb=false */,
-  {     0,  7584,  3444,  18,   6, UNI_DT__SQR }   /* decompositiontype=square */,
-  {     0,  2465,  8500,   4,  33, UNI_DIACRITICALSSUP }   /* incombiningdiacriticalmarkssupplement */,
-  {     2,   343,  7966,   4,   9, UNI_CCC__AL }   /* ccc=aboveleft */,
-  {     1,  5748,  5762,   5,   7, UNI_SUPARROWSB }   /* insuparrowsb */,
-  {    24,  1478,  5812,   7,   6, UNI_GEORGIANSUP }   /* ingeorgiansup */,
-  {     0,  3622,     0,   3,   0, UNI_L }   /* isl */,
-  {    80,  5147,  4629,  10,   5, UNI_LATIN1 }   /* block=latin1sup */,
-  {    19,  1597,   356,  10,   4, UNI_SD }   /* softdotted=yes */,
-  {     3,  5748,  1818,   5,   8, UNI_SUPERANDSUB }   /* insuperandsub */,
-  {     0,    34,   495,   1,   7, UNI_INKHOJKI }   /* inkhojki */,
-  {     4,  2355,  7403,   8,  13, UNI_CYRILLICSUP }   /* cyrillicsupplementary */,
-  {     0,  4996,  4682,  13,   5, UNI_JG__MANICHAEANSADHE }   /* jg=manichaeansadhe */,
-  {     0,  4308,   602,  14,   2, UNI_NFKDQC__N }   /* nfkdquickcheck=n */,
-  {     0,  2792,  6142,   8,  12, UNI_CYRILLICSUP }   /* iscyrillicsupplement */,
-  {     0,   600,  1162,   3,   6, UNI_DT__ENC }   /* dt=circle */,
-  {     8,  3090,  5223,   6,  16, UNI_INPUNCTUATION }   /* blk=generalpunctuation */,
-  {     4,  1879,  7377,   4,   8, UNI_INKATAKANA }   /* blk=katakana */,
-  {     5,  7527,  2890,   3,   2, UNI_GCB__T }   /* lb=jt */,
-  {     1,  1796,   868,   7,   7, UNI_SC__TIRH }   /* script=tirhuta */,
-  {     3,  7987,  6056,  12,   9, UNI_MATHOPERATORS }   /* mathematicaloperators */,
-  {     2,   313,   502,   2,   6, UNI_INLYDIAN }   /* inlydian */,
-  {     4,  6570,  6581,   5,   6, UNI_INPC__BOTTOM }   /* inpc=bottom */,
-  {     1,  6944,  2262,  23,   3, UNI_CCC__14 }   /* canonicalcombiningclass=14 */,
-  {     1,  1796,  1202,   7,   4, UNI_THAI }   /* script=thai */,
-  {     3,  4291,  4219,  10,  14, UNI_LB__CR }   /* linebreak=carriagereturn */,
-  {     2,  3763,  1300,  14,   3, UNI_NV__5000 }   /* numericvalue=5000 */,
-  {     0,  1719,  1465,   4,   5, UNI_VERTSPACE }   /* vertspace */,
-  {     1,  6114,   184,   3,   4, UNI_SAMR }   /* sc=samr */,
-  {     1,  6687,  3665,  22,   4, UNI_JG__MALAYALAMLLLA }   /* joininggroup=malayalamllla */,
-  {     0,  7825,     0,  20,   0, UNI_CJK }   /* cjkunifiedideographs */,
-  {     0,     2,   602,   3,   3, -UNI_CWL }   /* cwl=no */,
-  {     2,   236,     0,   4,   0, UNI_YI }   /* yiii */,
-  {     0,  4355,  1191,  17,   4, UNI_BENG }   /* scriptextensions=beng */,
-  {     3,  1879,  1198,   4,   7, UNI_INGRANTHA }   /* blk=grantha */,
-  {     4,  2463,   588,  11,   5, UNI_JOINC }   /* joincontrol=true */,
-  {     0,   825,     0,   7,   0, UNI_SHAW }   /* shavian */,
-  {     1,  1796,  1271,   7,   9, UNI_SC__SIND }   /* script=khudawadi */,
-  {     1,  1011,   356,   2,   2, UNI_CI }   /* ci=y */,
-  {     0,  2692,  2285,   5,  12, UNI_AEGEANNUMBERS }   /* blk=aegeannumbers */,
-  {     2,  4355,   991,  17,   6, UNI_HATR }   /* scriptextensions=hatran */,
-  {    64,  1710,  1249,   3,   6, UNI_SIDD }   /* issiddham */,
-  {     1,  1102,   840,   4,   7, UNI_TGLG }   /* scx=tagalog */,
-  {     0,  6114,   212,   3,   4, UNI_SC__TGLG }   /* sc=tglg */,
-  {     2,  1879,  6533,   4,  16, UNI_INDICNUMBERFORMS }   /* blk=indicnumberforms */,
-  {     0,   464,  4092,   2,  15, UNI_DIACRITICALSEXT }   /* isdiacriticalsext */,
-  {     0,  2726,  6635,   6,   8, UNI_LO }   /* gc=otherletter */,
-  {     3,  3474,  1241,   6,   7, UNI_INPHAGSPA }   /* block=phagspa */,
-  {     0,   313,  2771,   2,   5, UNI_INKHMER }   /* inkhmer */,
-  {     2,  2355,  5797,   8,   9, UNI_CYRILLICEXTA }   /* cyrillicextendeda */,
-  {     0,  3474,  2401,   6,  11, UNI_INNANDINAGARI }   /* block=nandinagari */,
-  {    64,  4107,  1676,  12,   3, UNI_INHANGUL }   /* hangulsyllables */,
-  {     4,  3285,     0,   6,   0, UNI_HEBR }   /* hebrew */,
-  {    35,  3474,   540,   6,   6, UNI_INTANGSA }   /* block=tangsa */,
-  {     0,  7132,  6623,   5,  21, UNI_MODIFIERLETTERS }   /* blk=spacingmodifierletters */,
-  {     1,  7018,  1491,   8,   4, UNI_ARABICEXTA }   /* inarabicexta */,
-  {     0,  2692,  2760,   5,  11, UNI_ALPHABETICPF }   /* blk=alphabeticpf */,
-  {     0,  8244,  1491,   9,   4, UNI_CJKEXTA }   /* block=cjkexta */,
-  {     5,   203,     0,   2,   0, UNI_TITLE }   /* lt */,
-  {     0,   275,  3432,   4,   3, UNI_LB__ZWJ }   /* gcb=zwj */,
-  {    17,   464,  6462,   2,  24, UNI_HIGHPUSURROGATES }   /* ishighprivateusesurrogates */,
-  {     4,   844,   933,   2,   3, -UNI_LOE }   /* loe=f */,
-  {     1,  5928,  1605,  12,   9, UNI_VO__TU }   /* vo=transformedupright */,
-  {    16,    39,    42,   3,   1, UNI_BATK }   /* batk */,
-  {     2,  7527,  2904,   3,  11, UNI_LB__BB }   /* lb=breakbefore */,
-  {     0,   833,   934,   4,   6, -UNI_TERM }   /* term=false */,
-  {     0,   464,  1451,   2,  10, UNI_DIAK }   /* isdivesakuru */,
-  {     1,   632,   587,   5,   3, UNI_GRBASE }   /* grbase=t */,
-  {     4,     2,   355,   1,   2, UNI_ce_values_index }   /* ce= */,
-  {     4,   464,  4020,   2,   4, UNI_SIND }   /* issind */,
-  {     0,  2365,  6142,   6,  12, UNI_ETHIOPICSUP }   /* ethiopicsupplement */,
-  {     0,   644,  1847,   6,   8, UNI_LB__H2 }   /* hst=lvsyllable */,
-  {     7,  3474,  1951,   6,   7, UNI_INSOGDIAN }   /* block=sogdian */,
-  {     0,   464,    94,   2,   4, UNI_GUJR }   /* isgujr */,
-  {     0,  1796,   666,   7,   5, UNI_SC__LIMB }   /* script=limbu */,
-  {     1,   464,   107,   3,   3, UNI_HMNG }   /* ishmng */,
-  {     8,  7317,     0,  11,   0, UNI_BC__L }   /* bidiclass=l */,
-  {     4,   810,     0,   4,   0, UNI_SYRC }   /* syrc */,
-  {     0,  4355,  4671,  17,   4, UNI_TALE }   /* scriptextensions=tale */,
-  {     2,  1174,  6970,   3,   9, UNI_EA__H }   /* ea=halfwidth */,
-  {     6,  1879,  2241,   4,  12, UNI_PLAYINGCARDS }   /* blk=playingcards */,
-  {     0,  3622,  4629,   6,  12, UNI_LATIN1 }   /* islatin1supplement */,
-  {    13,  1796,  1320,   7,   4, UNI_SC__PERM }   /* script=perm */,
-  {     8,   464,  1144,   2,   9, UNI_BHKS }   /* isbhaiksuki */,
-  {     4,  7431,   562,  28,   2, UNI_CCC__107 }   /* canonicalcombiningclass=ccc107 */,
-  {     1,  4355,   172,  17,   4, UNI_RJNG }   /* scriptextensions=rjng */,
-  {     0,  4355,   997,  17,   6, UNI_KTHI }   /* scriptextensions=kaithi */,
-  {     0,   895,  3792,   5,   2, UNI_AGE__7 }   /* age=v70 */,
-  {     1,   343,   278,   3,   2, UNI_CCC__B }   /* ccc=b */,
-  {     5,  7660,     0,  18,   0, UNI_INVS }   /* variationselectors */,
-  {     2,  2726,   330,   3,   2, UNI_PF }   /* gc=pf */,
-  {     0,  8007,  3571,   7,   6, UNI_CJKCOMPAT }   /* blk=cjkcompat */,
-  {    17,  2205,  1300,   4,   2, UNI_NV__800 }   /* nv=800 */,
-  {     8,    36,   602,   2,   2, -UNI_VS }   /* vs=n */,
-  {     4,  4355,   120,  17,   3, UNI_LAO }   /* scriptextensions=lao */,
-  {     0,  1796,  4827,   7,   5, UNI_BAMU }   /* script=bamum */,
-  {     1,   464,  2652,   2,  13, UNI_VERTICALFORMS }   /* isverticalforms */,
-  {     0,  6114,  1807,   3,  11, UNI_SORA }   /* sc=sorasompeng */,
-  {     4,   632,  5620,   5,   3, -UNI_GRBASE }   /* grbase=n */,
-  {    10,  1879,  1271,   4,   9, UNI_INKHUDAWADI }   /* blk=khudawadi */,
-  {     1,  5718,   356,   4,   2, UNI_EMOD }   /* emod=y */,
-  {     0,  5718,   278,   4,   1, UNI_emod_values_index }   /* emod= */,
-  {    19,  6379,  1522,  13,   7, UNI_JG__THINYEH }   /* joininggroup=thinyeh */,
-  {     1,  1102,    19,   4,   4, UNI_AGHB }   /* scx=aghb */,
-  {    17,   625,   934,   7,   2, -UNI_EXTPICT }   /* extpict=f */,
-  {     5,   895,   294,   6,   2, UNI_AGE__14 }   /* age=v140 */,
-  {     8,  3474,  6142,  10,   5, UNI_ARABICSUP }   /* block=arabicsup */,
-  {     0,   464,  1529,   2,  10, UNI_KHAR }   /* iskharoshthi */,
-  {     1,  6114,   477,   3,   4, UNI_VAI }   /* sc=vaii */,
-  {    15,   464,  6284,   2,  19, UNI_JAMOEXTB }   /* ishanguljamoextendedb */,
-  {     3,  7338,     0,  11,   0, UNI_BC__R }   /* bidiclass=r */,
-  {    16,   895,   347,   5,   2, UNI_IN__1_DOT_1 }   /* age=v11 */,
-  {     0,  6570,  8440,  11,  14, UNI_INPC__TOPANDBOTTOMANDRIGHT }   /* inpc=topandbottomandright */,
-  {     2,  1796,   749,   7,   7, UNI_MARC }   /* script=marchen */,
-  {     0,  1561,     0,  10,   0, UNI_PHNX }   /* phoenician */,
-  {     0,  1879,  2652,   4,  13, UNI_VERTICALFORMS }   /* blk=verticalforms */,
-  {     1,   383,   588,   6,   2, UNI_HYPHEN }   /* hyphen=t */,
-  {     4,  2193,  6219,   8,   4, UNI_NV__1_SLASH_160 }   /* nv=6.250e-03 */,
-  {     0,    14,   402,   1,   3, UNI_MIAO }   /* miao */,
-  {     2,  2485,  3060,   5,   6, UNI_XPOSIXDIGIT }   /* xposixdigit */,
-  {     0,   313,  2986,   2,  14, UNI_INPSALTERPAHLAVI }   /* inpsalterpahlavi */,
-  {     0,  6114,   465,   3,   4, UNI_SC__SHRD }   /* sc=shrd */,
-  {     0,  4122,   602,   5,   3, -UNI_XPOSIXLOWER }   /* lower=no */,
-  {     9,  2678,  3855,   3,  14, UNI_BC__EN }   /* bc=europeannumber */,
-  {     0,  4355,  1614,  17,  10, UNI_WARA }   /* scriptextensions=warangciti */,
-  {     0,    58,  1882,   2,   5, UNI_SC__KANA }   /* sc=kana */,
-  {     7,   228,     0,   4,   0, UNI_XPEO }   /* xpeo */,
-  {     2,  4291,   703,  10,   2, UNI_EMOD }   /* linebreak=em */,
-  {    33,  2496,  2835,   3,  11, UNI_JG__STRAIGHTWAW }   /* jg=straightwaw */,
-  {    65,   756,  1768,   3,   4, UNI_nfkcqc_values_index }   /* nfkcqc= */,
-  {     1,  2981,   294,   5,   2, UNI_IN__14 }   /* in=v140 */,
-  {     7,  2275,     0,  10,   0, UNI_IDC }   /* idcontinue */,
-  {    59,  1796,   449,   7,   4, UNI_PHLI }   /* script=phli */,
-  {     0,  2981,  3792,   4,   2, UNI_IN__7 }   /* in=v70 */,
-  {    25,  1879,  5304,   4,  11, UNI_TAIXUANJING }   /* blk=taixuanjing */,
-  {     0,  7338,     0,  21,   0, UNI_BC__R }   /* bidiclass=righttoleft */,
-  {     8,  3794,  2145,  14,   8, UNI_NV__7_SLASH_8 }   /* numericvalue=8.750e-01 */,
-  {     4,    34,  5321,   1,  19, UNI_CHEROKEESUP }   /* ischerokeesupplement */,
-  {     1,  1796,  6594,   7,   4, UNI_BRAH }   /* script=brah */,
-  {     1,  1597,   278,  10,   1, UNI_sd_values_index }   /* softdotted= */,
-  {     1,  5186,   602,  20,   2, -UNI_EXTPICT }   /* extendedpictographic=n */,
-  {     2,   464,  1508,   2,   8, UNI_UGAR }   /* isugaritic */,
-  {     1,   464,  4107,   2,  15, UNI_INHANGUL }   /* ishangulsyllables */,
-  {     0,  3058,   356,   8,   4, UNI_XPOSIXXDIGIT }   /* hexdigit=yes */,
-  {    14,  3351,  2074,  13,   2, UNI_NV__29 }   /* numericvalue=29 */,
-  {     0,  8244,  7315,  33,   3, UNI_CJKEXTB }   /* block=cjkunifiedideographsextensionb */,
-  {    30,  6114,  3396,   3,  15, UNI_SARB }   /* sc=oldsoutharabian */,
-  {     0,   383,   602,   6,   2, -UNI_HYPHEN }   /* hyphen=n */,
-  {     8,  1102,   413,   4,   4, UNI_GONM }   /* scx=gonm */,
-  {     1,  7584,   946,  18,   5, UNI_DT__SUP }   /* decompositiontype=super */,
-  {    14,  1796,  5907,   7,   7, UNI_SC__SINH }   /* script=sinhala */,
-  {     0,  4996,  3825,  12,   4, UNI_JG__MANICHAEANTEN }   /* jg=manichaeanten */,
-  {     2,   296,   293,   3,   1, UNI_NV__0 }   /* nv=0 */,
-  {    19,  8590,     0,  36,   0, UNI_UCAS }   /* isunifiedcanadianaboriginalsyllabics */,
-  {    16,  3351,     0,  15,   0, UNI_NV__23 }   /* numericvalue=23 */,
-  {     1,  6114,   656,   3,   5, UNI_SC__BUHD }   /* sc=buhid */,
-  {     0,  6114,  1248,   3,   4, UNI_SIDD }   /* sc=sidd */,
-  {    11,  2726,  3156,   6,   8, UNI_NO }   /* gc=othernumber */,
-  {     0,   656,     0,   5,   0, UNI_BUHD }   /* buhid */,
-  {     0,   844,   587,   2,   3, UNI_LOE }   /* loe=t */,
-  {     0,  5147,  4590,  11,   9, UNI_LATINEXTC }   /* block=latinextendedc */,
-  {     0,  7527,   283,   3,   2, UNI_GCB__L }   /* lb=jl */,
-  {     0,  6114,   160,   3,   4, UNI_SC__PHLP }   /* sc=phlp */,
-  {     3,     5,  8047,   1,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* egyptianhieroglyphformatcontrols */,
-  {     1,  4872,   328,  10,   3, UNI_KANASUP }   /* block=kanasup */,
-  {     3,  1383,     0,   7,   0, UNI_IDS }   /* idstart */,
-  {     4,   409,   934,   2,   6, -UNI_DI }   /* di=false */,
-  {     1,   876,   602,   4,   3, -UNI_IDEO }   /* ideo=no */,
-  {     0,  1796,  1424,   7,  10, UNI_CHRS }   /* script=chorasmian */,
-  {     7,  4500,   356,   5,   2, UNI_XPOSIXUPPER }   /* upper=y */,
-  {     0,  3974,   588,  17,   5, UNI_IDSB }   /* idsbinaryoperator=true */,
-  {     1,  1856,   602,   5,   3, -UNI_BIDIC }   /* bidic=no */,
-  {     4,  7527,  2559,   3,  10, UNI_LB__NS }   /* lb=nonstarter */,
-  {     0,  4433,  4552,   5,  15, UNI_LINEARBSYLLABARY }   /* blk=linearbsyllabary */,
-  {    17,  3474,  4092,   6,  15, UNI_DIACRITICALSEXT }   /* block=diacriticalsext */,
-  {     2,  6379,  4692,  14,   4, UNI_JG__ALAPH }   /* joininggroup=alaph */,
-  {     0,  1879,   372,   4,   6, UNI_INGOTHIC }   /* blk=gothic */,
-  {     0,  6114,  1495,   3,   8, UNI_SC__JAVA }   /* sc=javanese */,
-  {     0,  2485,  4500,   6,   5, UNI_XPOSIXUPPER }   /* xposixupper */,
-  {     0,  1796,   840,   7,   7, UNI_SC__TGLG }   /* script=tagalog */,
-  {     4,  6114,  1271,   3,   9, UNI_SC__SIND }   /* sc=khudawadi */,
-  {     9,  1796,  4020,   7,   4, UNI_SC__SIND }   /* script=sind */,
-  {     3,  1879,  5304,   4,  18, UNI_TAIXUANJING }   /* blk=taixuanjingsymbols */,
-  {    66,  4901,     0,  17,   0, UNI_EBASE }   /* emojimodifierbase */,
-  {     4,  6379,   653,  13,   3, UNI_JG__LAM }   /* joininggroup=lam */,
-  {     9,     8,  4913,   1,   5, UNI_GRBASE }   /* grbase */,
-  {     0,  1867,   934,   5,   6, -UNI_BIDIM }   /* bidim=false */,
-  {     0,  3474,  4107,   6,   6, UNI_INHANGUL }   /* block=hangul */,
-  {     0,  2726,  6276,   3,   6, UNI_CF }   /* gc=format */,
-  {     2,  5147,  6890,  11,   9, UNI_LATINEXTE }   /* block=latinextendede */,
-  {     0,  1410,   771,   7,   2, UNI_CCC__21 }   /* ccc=ccc21 */,
-  {     0,  3474,  4092,   6,  12, UNI_DIACRITICALS }   /* block=diacriticals */,
-  {     0,  8182,  2680,  23,   6, UNI_INPC__RIGHT }   /* indicpositionalcategory=right */,
-  {     0,  5544,   588,  21,   2, UNI_CWT }   /* changeswhentitlecased=t */,
-  {    29,  1548,  3061,   3,   5, UNI_NT__DI }   /* nt=digit */,
-  {     1,  3474,  3721,  11,   5, UNI_ARABICMATH }   /* block=arabicmath */,
-  {     7,  4291,   213,  10,   2, UNI_LB__GL }   /* linebreak=gl */,
-  {     1,  1102,    86,   4,   4, UNI_GONG }   /* scx=gong */,
-  {     0,  2496,   229,   3,   2, UNI_JG__PE }   /* jg=pe */,
-  {     1,   409,   588,   2,   5, UNI_DI }   /* di=true */,
-  {     8,  1102,   802,   4,   4, UNI_NBAT }   /* scx=nbat */,
-  {    26,  5087,  1802,   9,   3, UNI_WB__ML }   /* wordbreak=ml */,
-  {     0,   508,  1768,   2,   4, UNI_nfcqc_values_index }   /* nfcqc= */,
-  {     9,  4355,   810,  17,   4, UNI_SYRC }   /* scriptextensions=syrc */,
-  {     5,   536,    37,   3,   2, UNI_SB__ST }   /* sb=st */,
-  {     4,  7527,  3594,   3,   2, UNI_LB__NL }   /* lb=nl */,
-  {     3,    37,  7937,   1,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* symbolsandpictographsextendeda */,
-  {     0,   625,   588,   7,   2, UNI_EXTPICT }   /* extpict=t */,
-  {     0,  5586,  3423,  21,  12, UNI_WB__EB }   /* graphemeclusterbreak=glueafterzwj */,
-  {     4,  4355,   749,  17,   4, UNI_MARC }   /* scriptextensions=marc */,
-  {     1,  4355,   301,  17,   5, UNI_ORYA }   /* scriptextensions=oriya */,
-  {     0,  5586,   959,  21,   6, UNI_GCB__EX }   /* graphemeclusterbreak=extend */,
-  {     0,  4355,  1248,  17,   7, UNI_SIDD }   /* scriptextensions=siddham */,
-  {     0,  3474,   917,   6,   8, UNI_INBASSAVAH }   /* block=bassavah */,
-  {     0,  1410,  6968,   7,   2, UNI_CCC__27 }   /* ccc=ccc27 */,
-  {     0,  1102,   144,   4,   4, UNI_NEWA }   /* scx=newa */,
-  {     1,  2802,     0,   6,   0, UNI_ETHI }   /* isethi */,
-  {     0,  2205,  1781,   4,   4, UNI_NV__80000 }   /* nv=80000 */,
-  {     0,  1796,   469,   7,   4, UNI_SOGO }   /* script=sogo */,
-  {     5,  7527,    22,   4,   1, UNI_LB__CB }   /* lb=cb */,
-  {     3,  5147,    74,  13,   2, UNI_LATINEXTC }   /* block=latinextc */,
-  {     0,  1879,   854,   4,   7, UNI_INTAIVIET }   /* blk=taiviet */,
-  {    16,    71,     0,   4,   0, UNI_CPRT }   /* cprt */,
-  {     3,  3779,  2120,  14,   8, UNI_NV__3_SLASH_4 }   /* numericvalue=7.500e-01 */,
-  {     3,  1102,   168,   4,   4, UNI_COPT }   /* scx=qaac */,
-  {     1,  1102,  1802,   3,   5, UNI_MLYM }   /* scx=mlym */,
-  {     3,   464,  4857,   2,   8, UNI_TAMILSUP }   /* istamilsup */,
-  {     0,  2275,     0,   3,   0, UNI_IDC }   /* idc */,
-  {     1,  6114,   847,   3,   7, UNI_LANA }   /* sc=taitham */,
-  {     3,  3462,  1491,  12,   4, UNI_ETHIOPICEXTA }   /* blk=ethiopicexta */,
-  {     2,  1102,  4962,   4,  14, UNI_ROHG }   /* scx=hanifirohingya */,
-  {     0,  4450,  4590,  14,   9, UNI_CYRILLICEXTC }   /* block=cyrillicextendedc */,
-  {     1,  2692,  1037,  10,   4, UNI_ARABICEXTB }   /* blk=arabicextb */,
-  {    11,  6114,  1362,   3,   9, UNI_SAMR }   /* sc=samaritan */,
-  {     0,   301,     0,   5,   0, UNI_ORYA }   /* oriya */,
-  {     1,  1867,   934,  12,   2, -UNI_BIDIM }   /* bidimirrored=f */,
-  {     0,  6687,   664,  22,   2, UNI_JG__MALAYALAMRA }   /* joininggroup=malayalamra */,
-  {     1,  5136,  1539,   5,   9, UNI_MISCARROWS }   /* blk=miscarrows */,
-  {     0,  1796,   666,   7,   4, UNI_SC__LIMB }   /* script=limb */,
-  {     0,   313,  6842,   2,  14, UNI_MUSIC }   /* inmusicalsymbols */,
-  {     0,  4355,  3285,  17,   6, UNI_HEBR }   /* scriptextensions=hebrew */,
-  {     8,  8007,  8407,   7,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* blk=cjkcompatibilityideographssupplement */,
-  {     0,  6114,  6134,   3,  10, UNI_SC__GLAG }   /* sc=glagolitic */,
-  {     0,  1991,  2892,  11,  12, UNI_JT__T }   /* joiningtype=transparent */,
-  {     4,    36,     0,   2,   0, UNI_VS }   /* vs */,
-  {     0,  4355,  1227,  17,   7, UNI_MULT }   /* scriptextensions=multani */,
-  {     4,  7660,   588,  17,   2, UNI_VS }   /* variationselector=t */,
-  {     5,  1879,  1344,   4,   9, UNI_PALM }   /* blk=palmyrene */,
-  {     0,   265,   356,   5,   2, UNI_CWKCF }   /* cwkcf=y */,
-  {     2,  1796,  5907,   7,   4, UNI_SC__SINH }   /* script=sinh */,
-  {     0,  8182,   140,  24,   2, UNI_INPC__NA }   /* indicpositionalcategory=na */,
-  {     0,   313,  3991,   2,   7, UNI_BRAI }   /* inbraille */,
-  {     1,  6069,     0,  22,   0, UNI_DIACRITICALSFORSYMBOLS }   /* diacriticalsforsymbols */,
-  {     1,  2363,  1037,  10,   4, UNI_ETHIOPICEXTB }   /* inethiopicextb */,
-  {    43,  4291,    57,  10,   2, UNI_LB__NS }   /* linebreak=ns */,
-  {    12,  2344,  2680,   2,   2, UNI_VO__R }   /* vo=r */,
-  {     2,  5087,  3151,   9,   3, UNI_WB__LE }   /* wordbreak=le */,
-  {     0,  1102,  2740,   4,   4, UNI_COPT }   /* scx=copt */,
-  {     0,  1796,  6103,   7,   9, UNI_XSUX }   /* script=cuneiform */,
-  {    10,  2981,   347,   4,   2, UNI_IN__1_DOT_1 }   /* in=v11 */,
-  {     7,  7823,  6352,   5,  18, UNI_CJKRADICALSSUP }   /* incjkradicalssupplement */,
-  {     9,  1879,  3608,   4,  11, UNI_PHONETICEXT }   /* blk=phoneticext */,
-  {     0,  3474,  1495,   6,   8, UNI_INJAVANESE }   /* block=javanese */,
-  {     3,  6114,  4827,   3,   5, UNI_BAMU }   /* sc=bamum */,
-  {     0,   464,   417,   2,   4, UNI_HANO }   /* ishano */,
-  {     1,  1102,   200,   4,   4, UNI_TAML }   /* scx=taml */,
-  {     4,  1796,  4418,   7,   6, UNI_SC__ZYYY }   /* script=common */,
-  {    21,   464,   433,   2,   3, UNI_NKO }   /* isnko */,
-  {     0,   334,     0,   2,   0, UNI_PD }   /* pd */,
-  {    11,  3474,  4021,   6,  17, UNI_INDICSIYAQNUMBERS }   /* block=indicsiyaqnumbers */,
-  {     1,   600,  2003,   5,   5, UNI_DT__NB }   /* dt=nobreak */,
-  {     6,  1702,  4442,   8,   9, UNI_ARABICEXTB }   /* isarabicextendedb */,
-  {    33,  7068,   602,  26,   3, -UNI_PCM }   /* prependedconcatenationmark=no */,
-  {     2,   313,  1887,   2,   7, UNI_UCASEXT }   /* inucasext */,
-  {     5,     2,  7908,   1,  29, UNI_CUNEIFORMNUMBERS }   /* cuneiformnumbersandpunctuation */,
-  {     0,  1027,     0,   4,   0, UNI_YEZI }   /* yezi */,
-  {     1,  1796,   208,   7,   4, UNI_TFNG }   /* script=tfng */,
-  {     0,  1796,    98,   7,   4, UNI_SC__GURU }   /* script=guru */,
-  {     0,  1796,   372,   7,   4, UNI_GOTH }   /* script=goth */,
-  {     9,   343,  2138,   5,   2, UNI_WB__EB }   /* ccc=133 */,
-  {     0,   464,  1227,   2,   4, UNI_MULT }   /* ismult */,
-  {     0,   313,  7290,   2,  27, UNI_OCR }   /* inopticalcharacterrecognition */,
-  {     3,   464,   875,   2,   5, UNI_UIDEO }   /* isuideo */,
-  {    32,  6114,  5661,   3,  19, UNI_MERO }   /* sc=meroitichieroglyphs */,
-  {     1,  3748,  4335,  14,   3, UNI_NV__13_SLASH_2 }   /* numericvalue=13/2 */,
-  {     6,  3474,   530,   6,   6, UNI_INREJANG }   /* block=rejang */,
-  {     6,   343,  1304,   4,   2, UNI_CCC__20 }   /* ccc=20 */,
-  {     1,  5727,     0,  21,   0, UNI_PRTI }   /* inscriptionalparthian */,
-  {     6,  4433,  4701,  12,  10, UNI_LATINEXTADDITIONAL }   /* blk=latinextadditional */,
-  {     6,  4355,   540,  17,   6, UNI_TNSA }   /* scriptextensions=tangsa */,
-  {     1,  1796,  1027,   7,   6, UNI_SC__YEZI }   /* script=yezidi */,
-  {     0,  4355,   825,  17,   7, UNI_SHAW }   /* scriptextensions=shavian */,
-  {     3,  6970,     0,  26,   0, UNI_HALFANDFULLFORMS }   /* halfwidthandfullwidthforms */,
-  {   101,  1508,     0,   8,   0, UNI_UGAR }   /* ugaritic */,
-  {     0,  6114,   301,   3,   5, UNI_SC__ORYA }   /* sc=oriya */,
-  {     0,  4291,   102,  10,   2, UNI_LB__HL }   /* linebreak=hl */,
-  {     0,  1879,  6134,   4,  20, UNI_GLAGOLITICSUP }   /* blk=glagoliticsupplement */,
-  {     2,   536,  6276,   3,   6, UNI_SB__FO }   /* sb=format */,
-  {     1,  8244,  6509,   9,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* block=cjkcompatideographssup */,
-  {     2,   409,   278,   2,   1, UNI_di_values_index }   /* di= */,
-  {    10,  1539,  8340,   3,  34, UNI_DIACRITICALSFORSYMBOLS }   /* iscombiningdiacriticalmarksforsymbols */,
-  {     1,   313,   917,   2,   8, UNI_INBASSAVAH }   /* inbassavah */,
-  {    56,  6944,   464,  24,   2, UNI_CCC__IS }   /* canonicalcombiningclass=is */,
-  {     0,   464,  4500,   2,  15, UNI_UPPERCASELETTER }   /* isuppercaseletter */,
-  {     0,  4291,  2549,  10,  10, UNI_LB__BA }   /* linebreak=breakafter */,
-  {     2,  8007,  1434,   7,   7, UNI_CJKSTROKES }   /* blk=cjkstrokes */,
-  {     1,  1065,  4335,   4,   3, UNI_NV__13_SLASH_2 }   /* nv=13/2 */,
-  {     2,  2948,   602,  13,   3, UNI_COMPEX }   /* nfcquickcheck=no */,
-  {    30,  8533,  4641,   7,  15, UNI_SYRIACSUP }   /* block=syriacsupplement */,
-  {     0,  3351,   398,  13,   2, UNI_NV__16 }   /* numericvalue=16 */,
-  {     0,  6114,  1191,   3,   7, UNI_SC__BENG }   /* sc=bengali */,
-  {     1,  5886,   934,  21,   6, -UNI__PERL_NCHAR }   /* noncharactercodepoint=false */,
-  {     1,  6114,   433,   3,   4, UNI_SC__NKO }   /* sc=nkoo */,
-  {     0,   464,  4551,   2,  16, UNI_LINEARBSYLLABARY }   /* islinearbsyllabary */,
-  {     2,  3450,  4442,  12,   9, UNI_CYRILLICEXTB }   /* blk=cyrillicextendedb */,
-  {     6,   316,   602,   5,   3, -UNI_QMARK }   /* qmark=no */,
-  {     0,  2981,  1070,   4,   2, UNI_IN__3_DOT_1 }   /* in=v31 */,
-  {     0,  1377,  1624,   3,   7, UNI_WB__LE }   /* wb=aletter */,
-  {     2,   464,  4962,   2,   4, UNI_HAN }   /* ishani */,
-  {     0,   343,   391,   4,   2, UNI_CCC__26 }   /* ccc=26 */,
-  {     1,  4291,   287,  10,   2, UNI_LB__NU }   /* linebreak=nu */,
-  {     0,  4872,  3582,   9,   3, UNI_KANGXI }   /* block=kangxi */,
-  {     0,   464,  1470,   2,   4, UNI_BUGI }   /* isbugi */,
-  {     1,  1796,   421,   7,   4, UNI_KHMR }   /* script=khmr */,
-  {    35,  2463,   934,   5,   6, -UNI_JOINC }   /* joinc=false */,
-  {     1,  5116,     0,  20,   0, UNI_HLUW }   /* anatolianhieroglyphs */,
-  {     6,  1879,  2986,   4,  14, UNI_INPSALTERPAHLAVI }   /* blk=psalterpahlavi */,
-  {     6,  1879,  1657,   4,  11, UNI_INCYPROMINOAN }   /* blk=cyprominoan */,
-  {    33,  6439,     0,  13,   0, UNI_ZNAMENNYMUSIC }   /* znamennymusic */,
-  {     0,   257,   602,   4,   3, -UNI_CWCF }   /* cwcf=no */,
-  {     5,  6379,   705,  13,   4, UNI_JG__NOON }   /* joininggroup=noon */,
-  {    20,  1465,   355,   4,   2, UNI_wspace_values_index }   /* space= */,
-  {     0,  2496,   705,   3,   4, UNI_JG__NOON }   /* jg=noon */,
-  {     0,  1395,  4590,   5,   9, UNI_LATINEXTC }   /* latinextendedc */,
-  {    17,  4355,   651,  17,   5, UNI_ADLM }   /* scriptextensions=adlam */,
-  {     1,  2712,   934,  14,   2, -UNI_ECOMP }   /* emojicomponent=f */,
-  {     7,  6114,  1133,   3,   4, UNI_VITH }   /* sc=vith */,
-  {     0,  4500,   588,   9,   2, UNI_XPOSIXUPPER }   /* uppercase=t */,
-  {    11,   343,  7359,   4,   4, UNI_CCC__216 }   /* ccc=atar */,
-  {     2,  7068,   356,  26,   4, UNI_PCM }   /* prependedconcatenationmark=yes */,
-  {     4,   875,   278,   5,   1, UNI_uideo_values_index }   /* uideo= */,
-  {     4,  1879,  1326,   4,   9, UNI_INOLDTURKIC }   /* blk=oldturkic */,
-  {     0,    21,   418,   1,   3, UNI_HANO }   /* hano */,
-  {     0,  3474,  5825,   6,  12, UNI_SUNDANESESUP }   /* block=sundanesesup */,
-  {     0,  5186,   588,  20,   5, UNI_EXTPICT }   /* extendedpictographic=true */,
-  {    12,  6570,  2242,   3,  11, UNI_PLAYINGCARDS }   /* inplayingcards */,
-  {     1,  1102,  1480,   4,   4, UNI_GEOR }   /* scx=geor */,
-  {     1,  6011,  7851,   7,  20, UNI_ENCLOSEDALPHANUM }   /* block=enclosedalphanumerics */,
-  {    10,  6379,  1982,  13,   9, UNI_JG__SYRIACWAW }   /* joininggroup=syriacwaw */,
-  {     2,  3351,   891,  13,   2, UNI_NV__10 }   /* numericvalue=10 */,
-  {     6,  5087,   369,  10,   2, UNI_WB__SQ }   /* wordbreak=sq */,
-  {     0,  4996,  4170,  13,   4, UNI_JG__MANICHAEANFIVE }   /* jg=manichaeanfive */,
-  {     4,  6025,  2733,   7,  13, UNI_INGREEK }   /* block=greekandcoptic */,
-  {     1,  3669,  1144,  12,   3, UNI_JG__MALAYALAMBHA }   /* jg=malayalambha */,
-  {     3,  6379,  7276,  13,  14, UNI_JG__HAMZAONHEHGOAL }   /* joininggroup=tehmarbutagoal */,
-  {     1,  4291,  1465,  10,   5, UNI_LB__SP }   /* linebreak=space */,
-  {     0,  3474,   721,   6,   7, UNI_INKANNADA }   /* block=kannada */,
-  {     6,  4433,     5,   9,   4, UNI_LATINEXTG }   /* blk=latinextg */,
-  {    12,  1395,  1646,   5,   4, UNI_LATINEXTD }   /* latinextd */,
-  {    34,  8244,  8407,   9,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* block=cjkcompatibilityideographssupplement */,
-  {     0,  6114,  1220,   3,   4, UNI_MAKA }   /* sc=maka */,
-  {     0,  3474,  1037,  12,   4, UNI_ARABICEXTB }   /* block=arabicextb */,
-  {     1,   464,    75,   2,   3, UNI_CWU }   /* iscwu */,
-  {     2,  1011,     0,   2,   0, UNI_CI }   /* ci */,
-  {     0,  8007,  1698,   7,   4, UNI_CJKEXTF }   /* blk=cjkextf */,
-  {     4,  6114,   540,   3,   6, UNI_TNSA }   /* sc=tangsa */,
-  {     0,  4355,   975,  17,   8, UNI_GURU }   /* scriptextensions=gurmukhi */,
-  {     8,   464,   203,   2,   2, UNI_TITLE }   /* islt */,
-  {     0,  2353,  7403,  10,  13, UNI_CYRILLICSUP }   /* incyrillicsupplementary */,
-  {     0,  1410,  2074,   8,   2, UNI_CCC__129 }   /* ccc=ccc129 */,
-  {     0,  2692,  3721,   9,   5, UNI_ARABICMATH }   /* blk=arabicmath */,
-  {     0,  1879,  7385,   4,  28, UNI_PHONETICEXTSUP }   /* blk=phoneticextensionssupplement */,
-  {     2,  7527,   383,   3,   2, UNI_LB__HY }   /* lb=hy */,
-  {     0,  6114,  2740,   3,   6, UNI_SC__COPT }   /* sc=coptic */,
-  {     0,  2353,   361,   3,   5, UNI_INCHAKMA }   /* inchakma */,
-  {     0,    34,  3395,   1,  16, UNI_SARB }   /* inoldsoutharabian */,
-  {     2,  7208,  2384,   9,   2, UNI__PERL_SURROGATE }   /* category=cs */,
-  {     2,  1867,   602,   5,   2, -UNI_BIDIM }   /* bidim=n */,
-  {     3,  7068,   934,  26,   6, -UNI_PCM }   /* prependedconcatenationmark=false */,
-  {     1,  1879,   840,   4,   7, UNI_INTAGALOG }   /* blk=tagalog */,
-  {     2,  1102,   421,   4,   4, UNI_KHMR }   /* scx=khmr */,
-  {    20,  6774,   601,  24,   4, -UNI_DI }   /* defaultignorablecodepoint=no */,
-  {     0,  1915,   933,  11,   3, -UNI_GRBASE }   /* graphemebase=f */,
-  {     3,   464,  3309,   2,  15, UNI_MERC }   /* ismeroiticcursive */,
-  {    18,  1102,  5322,   4,   4, UNI_CHER }   /* scx=cher */,
-  {     1,    19,  3820,   2,   3, UNI_AGE__9 }   /* age=9 */,
-  {     8,  6185,     0,  20,   0, UNI_NV__1000000 }   /* numericvalue=1000000 */,
-  {     1,   887,   552,   5,   3, UNI_AGE__14 }   /* age=14.0 */,
-  {     5,  2181,   766,   4,   2, UNI_NV__5_SLASH_6 }   /* nv=5/6 */,
-  {    39,  1395,  1037,   5,   4, UNI_LATINEXTB }   /* latinextb */,
-  {     0,   302,     0,   2,   0, UNI_RI }   /* ri */,
-  {     0,  2441,     0,  13,   0, UNI_CASEDLETTER }   /* iscasedletter */,
-  {     0,  7201,     0,  16,   0, UNI_gc_values_index }   /* generalcategory= */,
-  {     0,  1377,  3411,   3,  12, UNI_WB__EX }   /* wb=extendnumlet */,
-  {     1,  1879,   861,   4,   7, UNI_INTIBETAN }   /* blk=tibetan */,
-  {     0,  3474,  6134,   6,  13, UNI_GLAGOLITICSUP }   /* block=glagoliticsup */,
-  {     4,  3474,  5949,   6,   6, UNI_YIJING }   /* block=yijing */,
-  {     1,  1383,     0,   4,   0, UNI_IDST }   /* idst */,
-  {     0,  7317,    87,  10,   2, UNI_BC__ON }   /* bidiclass=on */,
-  {     0,  1879,   301,   4,   5, UNI_INORIYA }   /* blk=oriya */,
-  {    23,  6114,   735,   3,   7, UNI_SC__LINA }   /* sc=lineara */,
-  {     1,   581,   398,   5,   2, UNI_CCC__216 }   /* ccc=216 */,
-  {     0,   632,   933,   5,   7, -UNI_GRBASE }   /* grbase=false */,
-  {     6,  6944,     0,  26,   0, UNI_CCC__27 }   /* canonicalcombiningclass=27 */,
-  {    67,  5886,   356,  21,   4, UNI__PERL_NCHAR }   /* noncharactercodepoint=yes */,
-  {     0,   600,   128,   3,   3, UNI_DT__MED }   /* dt=med */,
-  {     0,  1879,   242,   4,   2, UNI_NB }   /* blk=nb */,
-  {     0,   464,   425,   2,   4, UNI_LINA }   /* islina */,
-  {     1,   464,  4122,   2,   9, UNI_XPOSIXLOWER }   /* islowercase */,
-  {     0,  2973,   602,   5,   3, -UNI_EPRES }   /* epres=no */,
-  {     7,  3474,  4442,  12,   9, UNI_ARABICEXTB }   /* block=arabicextendedb */,
-  {     1,  7823,     0,   5,   0, UNI_CJK }   /* incjk */,
-  {     0,   833,   588,   4,   2, UNI_TERM }   /* term=t */,
-  {     0,   313,  1951,   2,   7, UNI_INSOGDIAN }   /* insogdian */,
-  {    27,  3474,   242,   6,   2, UNI_NB }   /* block=nb */,
-  {     0,  2310,   355,  12,   5, UNI_CI }   /* caseignorable=yes */,
-  {     2,  1539,  3123,   3,  14, UNI_CONTROLPICTURES }   /* iscontrolpictures */,
-  {     0,  2678,     0,   3,   0, UNI_bc_values_index }   /* bc= */,
-  {     0,  7208,  1860,   9,   7, UNI_XPOSIXCNTRL }   /* category=control */,
-  {    41,  2260,   552,   4,   3, UNI_IN__14 }   /* in=14.0 */,
-  {     1,  4021,     0,  17,   0, UNI_INDICSIYAQNUMBERS }   /* indicsiyaqnumbers */,
-  {     2,  3763,  2173,  14,   8, UNI_NV__1_SLASH_20 }   /* numericvalue=5.000e-02 */,
-  {     1,  7132,  7937,   5,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* blk=symbolsandpictographsextendeda */,
-  {     0,  2926,  1588,   3,   9, UNI_SMALLFORMS }   /* insmallforms */,
-  {    65,   464,   244,   2,   4, UNI_ZYYY }   /* iszyyy */,
-  {     0,  3474,   975,   6,   8, UNI_INGURMUKHI }   /* block=gurmukhi */,
-  {     1,  2253,   560,  10,   3, UNI_IN__6 }   /* presentin=6.0 */,
-  {     0,  8470,    48,  20,   1, UNI_VO__U }   /* verticalorientation=u */,
-  {     4,  1102,   477,   4,   3, UNI_VAI }   /* scx=vai */,
-  {     0,   536,  1591,   3,   2, UNI_LB__LF }   /* sb=lf */,
-  {     0,   464,   188,   2,   4, UNI_SGNW }   /* issgnw */,
-  {     0,    19,  4333,   2,   3, UNI_AGE__3 }   /* age=3 */,
-  {    19,     2,   602,   3,   2, -UNI_CWL }   /* cwl=n */,
-  {     1,  1710,  5100,   7,   4, UNI_XPOSIXSPACE }   /* isspaceperl */,
-  {     5,   343,   348,   4,   2, UNI_CCC__18 }   /* ccc=18 */,
-  {     1,   719,  3582,   5,  11, UNI_KANGXI }   /* inkangxiradicals */,
-  {     0,  6944,  2074,  24,   2, UNI_CCC__29 }   /* canonicalcombiningclass=29 */,
-  {     0,  2474,  1491,   9,   4, UNI_MYANMAREXTA }   /* ismyanmarexta */,
-  {     2,  6114,  4582,   3,   8, UNI_SC__BOPO }   /* sc=bopomofo */,
-  {     1,  1879,   433,   4,   3, UNI_INNKO }   /* blk=nko */,
-  {     1,  3622,  4590,   7,   9, UNI_LATINEXTC }   /* islatinextendedc */,
-  {     2,  1879,  6629,   4,  15, UNI_MODIFIERLETTERS }   /* blk=modifierletters */,
-  {     3,  2726,  3223,   3,  13, UNI_XPOSIXDIGIT }   /* gc=decimalnumber */,
-  {     5,   464,   524,   2,   6, UNI_PATSYN }   /* ispatsyn */,
-  {     0,  2253,   566,  10,   3, UNI_IN__8 }   /* presentin=8.0 */,
-  {    17,   313,  5806,   2,   9, UNI_INMONGOLIAN }   /* inmongolian */,
-  {     4,  6239,  5970,  14,   8, UNI_BC__LRO }   /* bc=lefttorightoverride */,
-  {     1,   154,  6878,   3,  12, UNI_GEOMETRICSHAPES }   /* geometricshapes */,
-  {     1,  5990,   602,  21,   5, UNI_BPT__N }   /* bidipairedbrackettype=none */,
-  {     2,  1102,  2986,   4,  14, UNI_PHLP }   /* scx=psalterpahlavi */,
-  {     0,  3450,  8499,   5,  34, UNI_DIACRITICALSSUP }   /* blk=combiningdiacriticalmarkssupplement */,
-  {   129,  1796,   951,   7,   8, UNI_SC__DUPL }   /* script=duployan */,
-  {     0,  3474,  1371,   6,   6, UNI_INTHAANA }   /* block=thaana */,
-  {     4,  4355,   666,  17,   4, UNI_LIMB }   /* scriptextensions=limb */,
-  {     9,   409,   588,   3,   5, UNI_DIA }   /* dia=true */,
-  {     0,   524,   934,   6,   6, -UNI_PATSYN }   /* patsyn=false */,
-  {     2,  7208,  2581,   9,   9, UNI__PERL_SURROGATE }   /* category=surrogate */,
-  {     0,  7208,   469,   9,   2, UNI_SO }   /* category=so */,
-  {     0,  1879,  8078,   4,  18, UNI_IDEOGRAPHICSYMBOLS }   /* blk=ideographicsymbols */,
-  {     1,   128,     0,   4,   0, UNI_MEDF }   /* medf */,
-  {     2,  2392,  4567,   3,  15, UNI_MISCMATHSYMBOLSB }   /* inmiscmathsymbolsb */,
-  {     0,   555,     0,   5,   0, UNI_AGE__5 }   /* age=5 */,
-  {     0,  6944,  1650,  24,   7, UNI_CCC__1 }   /* canonicalcombiningclass=overlay */,
-  {     0,  4355,  1326,  17,   9, UNI_ORKH }   /* scriptextensions=oldturkic */,
-  {     8,  2496,   718,   3,   3, UNI_JG__AIN }   /* jg=ain */,
-  {     0,  4355,  1220,  17,   4, UNI_MAKA }   /* scriptextensions=maka */,
-  {     5,  1102,  1086,   4,   4, UNI_KTHI }   /* scx=kthi */,
-  {     0,    75,   934,   3,   2, -UNI_CWU }   /* cwu=f */,
-  {     0,   464,   421,   2,   4, UNI_KHMR }   /* iskhmr */,
-  {     3,   513,  1781,   4,   4, UNI_NV__30000 }   /* nv=30000 */,
-  {     4,  1796,  3435,   7,  15, UNI_ZANB }   /* script=zanabazarsquare */,
-  {     2,   940,     0,   2,   0, UNI_CO }   /* co */,
-  {     1,  6011,  8047,   7,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* block=egyptianhieroglyphformatcontrols */,
-  {     4,  3622,  6890,   7,   9, UNI_LATINEXTE }   /* islatinextendede */,
-  {     9,     2,   588,   3,   2, UNI_CWL }   /* cwl=t */,
-  {     1,  1102,  4392,   4,  11, UNI_SGNW }   /* scx=signwriting */,
-  {     3,  6011,  5797,  14,   9, UNI_ETHIOPICEXTA }   /* block=ethiopicextendeda */,
-  {     1,  1702,  1695,   8,   3, UNI_ARABICPFB }   /* isarabicpfb */,
-  {     2,  6379,  4998,  12,  17, UNI_JG__MANICHAEANTWENTY }   /* joininggroup=manichaeantwenty */,
-  {     7,  3474,  1755,   6,  11, UNI_INMEDEFAIDRIN }   /* block=medefaidrin */,
-  {     0,  7527,   880,   3,   7, UNI_LB__XX }   /* lb=unknown */,
-  {     1,   464,  1344,   2,   9, UNI_PALM }   /* ispalmyrene */,
-  {    13,  2802,  7851,   3,  20, UNI_ENCLOSEDALPHANUM }   /* isenclosedalphanumerics */,
-  {     0,  3367,  2080,  14,   8, UNI_NV__9_SLASH_2 }   /* numericvalue=4.500e+00 */,
-  {     1,  1702,  7474,   3,  26, UNI_ALPHABETICPF }   /* isalphabeticpresentationforms */,
-  {     0,  4355,   901,  17,   8, UNI_ARMN }   /* scriptextensions=armenian */,
-  {     0,  6114,  1657,   3,  11, UNI_SC__CPMN }   /* sc=cyprominoan */,
-  {     0,  1796,   917,   7,   8, UNI_BASS }   /* script=bassavah */,
-  {     1,  1796,   502,   7,   4, UNI_LYDI }   /* script=lydi */,
-  {    19,  1879,  7290,   4,  27, UNI_OCR }   /* blk=opticalcharacterrecognition */,
-  {     7,  4456,     0,  12,   0, UNI_CYRILLICEXTC }   /* cyrillicextc */,
-  {     0,  5928,  1607,   3,   7, UNI_VO__U }   /* vo=upright */,
-  {     3,  7473,   588,  10,   5, UNI_XPOSIXALPHA }   /* alphabetic=true */,
-  {     2,   464,    36,   2,   2, UNI_VS }   /* isvs */,
-  {     0,  7317,  3855,  10,  14, UNI_BC__EN }   /* bidiclass=europeannumber */,
-  {     0,  1792,     0,   4,   0, UNI_MONG }   /* mong */,
-  {     1,  1710,  1808,   3,  10, UNI_SORA }   /* issorasompeng */,
-  {     9,  3474,   861,   6,   7, UNI_INTIBETAN }   /* block=tibetan */,
-  {     2,  6570,  2688,  11,   4, UNI_INPC__TOPANDLEFT }   /* inpc=topandleft */,
-  {     9,    47,     0,   4,   0, UNI_BUHD }   /* buhd */,
-  {    21,  7201,     0,  16,   2, UNI_CASEDLETTER }   /* generalcategory=l& */,
-  {     8,  3974,     0,   4,   0, UNI_IDSB }   /* idsb */,
-  {     0,  1102,   983,   4,   4, UNI_HIRA }   /* scx=hira */,
-  {     2,  5397,     0,   3,   0, UNI_PUA }   /* pua */,
-  {     0,  8007,  6177,   6,   8, UNI_CJKSYMBOLS }   /* blk=cjksymbols */,
-  {     0,   624,     0,   2,   0, UNI_CE }   /* ce */,
-  {     0,  4355,  3637,  17,   4, UNI_LISU }   /* scriptextensions=lisu */,
-  {     0,  1879,  2229,   4,   8, UNI_PHAISTOS }   /* blk=phaistos */,
-  {     2,   464,  1590,   2,   2, UNI_LOWERCASELETTER }   /* isll */,
-  {     3,  4355,  1144,  17,   9, UNI_BHKS }   /* scriptextensions=bhaiksuki */,
-  {     0,  3462,  2336,  12,   8, UNI_ETHIOPICEXT }   /* blk=ethiopicextended */,
-  {     2,  1687,  1310,   4,   7, UNI_ITAL }   /* isolditalic */,
-  {     4,  1915,   588,  12,   2, UNI_GRBASE }   /* graphemebase=t */,
-  {    13,   313,  1016,   3,   5, UNI_INTELUGU }   /* intelugu */,
-  {     0,  3474,  7385,   6,  28, UNI_PHONETICEXTSUP }   /* block=phoneticextensionssupplement */,
-  {     0,  7201,  3933,  16,  14, UNI_SK }   /* generalcategory=modifiersymbol */,
-  {     1,   343,   692,   4,   3, UNI_CCC__214 }   /* ccc=ata */,
-  {     5,  6114,  1571,   3,  10, UNI_SAUR }   /* sc=saurashtra */,
-  {     9,  4355,  1086,  17,   4, UNI_KTHI }   /* scriptextensions=kthi */,
-  {    19,  3474,  3309,   6,  15, UNI_INMEROITICCURSIVE }   /* block=meroiticcursive */,
-  {     1,  6687,  1144,  22,   3, UNI_JG__MALAYALAMBHA }   /* joininggroup=malayalambha */,
-  {     0,  1796,  3285,   7,   6, UNI_HEBR }   /* script=hebrew */,
-  {     4,  3722,   356,   4,   2, UNI_MATH }   /* math=y */,
-  {     1,    34,  4091,   1,  13, UNI_DIACRITICALS }   /* indiacriticals */,
-  {     4,   313,  6439,   2,  13, UNI_ZNAMENNYMUSIC }   /* inznamennymusic */,
-  {    28,  6944,  7342,  18,   7, UNI_CCC__R }   /* canonicalcombiningclass=r */,
-  {     5,  7208,  5166,   9,  20, UNI_PC }   /* category=connectorpunctuation */,
-  {     2,  1879,   502,   4,   6, UNI_INLYDIAN }   /* blk=lydian */,
-  {     8,  6114,  1227,   3,   4, UNI_SC__MULT }   /* sc=mult */,
-  {     0,  6114,  1344,   3,   9, UNI_PALM }   /* sc=palmyrene */,
-  {     9,  1102,   618,   4,   7, UNI_ELYM }   /* scx=elymaic */,
-  {     4,  1465,   587,   4,   3, UNI_XPOSIXSPACE }   /* space=t */,
-  {     2,  1704,  7481,   4,  20, UNI_ARABICPFA }   /* arabicpresentationformsa */,
-  {     2,   612,  4300,   2,   8, UNI_LB__ZW }   /* lb=zwspace */,
-  {     0,  2712,  1548,  12,   3, UNI_ecomp_values_index }   /* emojicomponent= */,
-  {     9,   464,  2729,   2,   5, UNI_C }   /* isother */,
-  {     0,  8289,     0,  11,   0, UNI_CO }   /* category=co */,
-  {     1,  3338,  3477,  11,   3, UNI_nfdqc_values_index }   /* nfdquickcheck= */,
-  {    37,   302,   356,   2,   2, UNI_RI }   /* ri=y */,
-  {     4,  1796,    15,   7,   4, UNI_SC__ADLM }   /* script=adlm */,
-  {     0,  2496,  6164,   3,   9, UNI_JG__YEHBARREE }   /* jg=yehbarree */,
-  {     0,  1102,  3396,   4,  15, UNI_SARB }   /* scx=oldsoutharabian */,
-  {    80,  5586,  1591,  21,   2, UNI_LB__LF }   /* graphemeclusterbreak=lf */,
-  {     0,   464,  4671,   2,   4, UNI_TALE }   /* istale */,
-  {     0,  2392,  5038,   3,  18, UNI_MODIFIERTONELETTERS }   /* inmodifiertoneletters */,
-  {     0,  7201,   259,  16,   2, UNI_CF }   /* generalcategory=cf */,
-  {     5,  2496,  2972,   2,   2, UNI_JG__E }   /* jg=e */,
-  {     0,  7823,  6352,   5,  11, UNI_CJKRADICALSSUP }   /* incjkradicalssup */,
-  {     5,  2625,   934,  13,   6, -UNI_PATSYN }   /* patternsyntax=false */,
-  {    36,  4355,  5661,  17,  19, UNI_MERO }   /* scriptextensions=meroitichieroglyphs */,
-  {     1,     9,     0,   3,   0, UNI_OCR }   /* ocr */,
-  {     3,   313,  5322,   2,   8, UNI_INCHEROKEE }   /* incherokee */,
-  {     0,  3974,   588,  17,   2, UNI_IDSB }   /* idsbinaryoperator=t */,
-  {     0,  7148,   562,  25,   2, UNI_CCC__107 }   /* canonicalcombiningclass=107 */,
-  {     3,  1879,   681,   4,   5, UNI_INRUNIC }   /* blk=runic */,
-  {     0,  2353,  1037,  10,   4, UNI_CYRILLICEXTB }   /* incyrillicextb */,
-  {     4,  4355,   854,  17,   7, UNI_TAVT }   /* scriptextensions=taiviet */,
-  {     3,  4450,  3123,   7,  14, UNI_CONTROLPICTURES }   /* block=controlpictures */,
-  {    18,  4551,     0,   7,   0, UNI_LINB }   /* linearb */,
-  {     8,  7688,  4990,  23,   6, UNI_JG__MANICHAEANSAMEKH }   /* joininggroup=manichaeansamekh */,
-  {     9,   719,  2373,   4,   9, UNI_KATAKANAEXT }   /* inkatakanaext */,
-  {     0,  1102,  5825,   4,   4, UNI_SUND }   /* scx=sund */,
-  {     0,   343,   398,   4,   2, UNI_CCC__16 }   /* ccc=16 */,
-  {     1,   581,  1303,   5,   2, UNI_CCC__AR }   /* ccc=232 */,
-  {     0,  1777,     0,   7,   0, UNI_NV__1000 }   /* nv=1000 */,
-  {     5,  3462,  8047,   5,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* blk=egyptianhieroglyphformatcontrols */,
-  {     0,  4092,     0,   9,   0, UNI_DIA }   /* diacritic */,
-  {     0,  6039,  2603,   7,  12, UNI_MISCTECHNICAL }   /* block=misctechnical */,
-  {     6,  1796,   776,   7,   7, UNI_OLCK }   /* script=olchiki */,
-  {     4,  3462,  6091,   5,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* blk=earlydynasticcuneiform */,
-  {     6,  2726,  3933,   3,  14, UNI_SK }   /* gc=modifiersymbol */,
-  {     9,  3915,   934,  17,   6, -UNI_EPRES }   /* emojipresentation=false */,
-  {     3,  4857,     0,   8,   0, UNI_TAMILSUP }   /* tamilsup */,
-  {     0,   464,  4338,   2,  17, UNI_RI }   /* isregionalindicator */,
-  {     2,  7823,  6509,   5,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* incjkcompatideographs */,
-  {     0,  3809,  1300,  14,   3, UNI_NV__9000 }   /* numericvalue=9000 */,
-  {     3,    58,  2695,   2,   5, UNI_SC__ARAB }   /* sc=arab */,
-  {     0,    34,  1667,   1,  12, UNI_DOMINO }   /* indominotiles */,
-  {     0,  3974,   602,  17,   2, -UNI_IDSB }   /* idsbinaryoperator=n */,
-  {     1,  1879,  6728,   4,  21, UNI_MEETEIMAYEKEXT }   /* blk=meeteimayekextensions */,
-  {     1,  7431,  1303,  27,   2, UNI_CCC__32 }   /* canonicalcombiningclass=ccc32 */,
-  {     5,  1102,  1614,   4,   4, UNI_WARA }   /* scx=wara */,
-  {     0,  4355,    90,  17,   4, UNI_GREK }   /* scriptextensions=grek */,
-  {     0,  1796,   909,   7,   8, UNI_BALI }   /* script=balinese */,
-  {     1,   343,  4947,   4,   2, UNI_CCC__8 }   /* ccc=kv */,
-  {     3,  7605,     0,  22,   0, UNI_LB__H3 }   /* hangulsyllabletype=lvt */,
-  {    13,  6447,     0,   5,   0, UNI_MUSIC }   /* music */,
-  {     0,  6114,   409,   3,   4, UNI_DIAK }   /* sc=diak */,
-  {     5,  6379,  1736,  13,   3, UNI_JG__KAF }   /* joininggroup=kaf */,
-  {    96,  5147,  4701,  19,  10, UNI_LATINEXTADDITIONAL }   /* block=latinextendedadditional */,
-  {    69,  1796,   200,   7,   4, UNI_SC__TAML }   /* script=taml */,
-  {    23,  6114,   192,   3,   4, UNI_SHAW }   /* sc=shaw */,
-  {    11,  2205,  2145,   4,   8, UNI_NV__7_SLASH_8 }   /* nv=8.750e-01 */,
-  {     0,  3823,   602,  16,   3, -UNI_STERM }   /* sentenceterminal=no */,
-  {     0,  3748,  2617,  14,   8, UNI_NV__1_SLASH_10 }   /* numericvalue=1.000e-01 */,
-  {    11,  2365,  5797,   8,   9, UNI_ETHIOPICEXTA }   /* ethiopicextendeda */,
-  {     7,  4355,   618,  17,   7, UNI_ELYM }   /* scriptextensions=elymaic */,
-  {     5,  3622,  1698,   7,   4, UNI_LATINEXTF }   /* islatinextf */,
-  {     7,  7132,  1588,   5,   9, UNI_SMALLFORMS }   /* blk=smallforms */,
-  {    14,  5087,  3594,  10,   2, UNI_WB__NL }   /* wordbreak=nl */,
-  {     5,   756,   356,   6,   2, UNI_NFKCQC__Y }   /* nfkcqc=y */,
-  {     0,   287,     0,   5,   0, UNI_NSHU }   /* nushu */,
-  {    15,  8244,     0,   9,   0, UNI_CJK }   /* block=cjk */,
-  {     1,    34,  2782,   1,   3, UNI_NO }   /* isno */,
-  {     3,   313,   574,   2,   7, UNI_INAVESTAN }   /* inavestan */,
-  {     1,  2428,     0,   6,   0, UNI_IPAEXT }   /* ipaext */,
-  {     3,  1796,    27,   7,   4, UNI_AHOM }   /* script=ahom */,
-  {     1,  3474,  1317,   6,   9, UNI_INOLDPERMIC }   /* block=oldpermic */,
-  {     4,  2454,  5223,   4,  16, UNI_INPUNCTUATION }   /* isgeneralpunctuation */,
-  {     1,   464,  7828,   2,  16, UNI_UIDEO }   /* isunifiedideograph */,
-  {     0,    78,    80,   2,   2, UNI_CYRL }   /* cyrl */,
-  {     0,  7018,  7481,   6,  20, UNI_ARABICPFA }   /* inarabicpresentationformsa */,
-  {    17,  6402,   959,  14,   6, UNI_SB__EX }   /* sentencebreak=extend */,
-  {     8,   296,  2128,   3,   9, UNI_NV__1_SLASH_32 }   /* nv=3.125e-02 */,
-  {    21,     2,  8340,   1,  34, UNI_DIACRITICALSFORSYMBOLS }   /* combiningdiacriticalmarksforsymbols */,
-  {     4,  6803,     0,  20,   0, UNI_CE }   /* compositionexclusion */,
-  {     0,    14,    57,   1,   1, UNI_MN }   /* mn */,
-  {     1,  1796,   735,   7,   7, UNI_SC__LINA }   /* script=lineara */,
-  {     8,  2033,   356,   5,   4, UNI_XPOSIXALPHA }   /* alpha=yes */,
-  {     3,  2474,  2382,   3,  10, UNI_MISCSYMBOLS }   /* ismiscsymbols */,
-  {     2,   916,   587,   4,   3, UNI_EBASE }   /* ebase=t */,
-  {    16,  2153,  1300,   4,   2, UNI_NV__400 }   /* nv=400 */,
-  {     1,  5087,  3432,  10,   3, UNI_LB__ZWJ }   /* wordbreak=zwj */,
-  {     1,   343,   464,   4,   2, UNI_CCC__IS }   /* ccc=is */,
-  {     2,    24,   356,   3,   4, UNI_XPOSIXXDIGIT }   /* hex=yes */,
-  {     0,  2454,  2733,   3,  13, UNI_INGREEK }   /* isgreekandcoptic */,
-  {    27,  3474,  3885,   6,  17, UNI_INCAUCASIANALBANIAN }   /* block=caucasianalbanian */,
-  {     8,  2153,   294,   4,   1, UNI_NV__44 }   /* nv=44 */,
-  {     1,   916,   355,   4,   5, UNI_EBASE }   /* ebase=yes */,
-  {     0,  6114,  3839,   3,   6, UNI_TANG }   /* sc=tangut */,
-  {     5,  1548,     0,   3,   0, UNI_nt_values_index }   /* nt= */,
-  {    11,  6011,  6091,   7,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* block=earlydynasticcuneiform */,
-  {     4,   644,   898,   3,   2, UNI_GCB__V }   /* hst=v */,
-  {     0,  7132,  6052,   7,  13, UNI_SUPMATHOPERATORS }   /* blk=supmathoperators */,
-  {     0,  3794,  6199,  14,   5, UNI_NV__800000 }   /* numericvalue=800000 */,
-  {     1,  2253,   346,   9,   3, UNI_IN__11 }   /* presentin=11 */,
-  {    14,  8276,  2728,  21,   6, UNI_INSC__OTHER }   /* indicsyllabiccategory=other */,
-  {    18,  1867,   602,   5,   3, -UNI_BIDIM }   /* bidim=no */,
-  { 41459,  6114,   593,   3,   7, UNI_DSRT }   /* sc=deseret */,
-  {     5,  3474,  2229,   6,  12, UNI_PHAISTOS }   /* block=phaistosdisc */,
-  {     0,  4355,  1344,  17,   4, UNI_PALM }   /* scriptextensions=palm */,
-  {     1,  7431,   398,  27,   2, UNI_CCC__16 }   /* canonicalcombiningclass=ccc16 */,
-  {     1,  6944,   353,  24,   2, UNI_CCC__9 }   /* canonicalcombiningclass=vr */,
-  {     1,  1065,   294,   5,   2, UNI_NV__1_SLASH_40 }   /* nv=1/40 */,
-  {    14,  1220,     0,   7,   0, UNI_MAKA }   /* makasar */,
-  {    96,  2496,  6392,   3,  10, UNI_JG__AFRICANQAF }   /* jg=africanqaf */,
-  {    10,   736,  5769,   3,  15, UNI_ENCLOSEDALPHANUM }   /* inenclosedalphanum */,
-  {     0,   464,  4793,   2,  18, UNI_RUMI }   /* isruminumeralsymbols */,
-  {    29,  5087,  2961,  10,   7, UNI_WB__NU }   /* wordbreak=numeric */,
-  {     2,  1879,  3188,   4,  15, UNI_INIMPERIALARAMAIC }   /* blk=imperialaramaic */,
-  {     9,  1216,  3641,   4,  10, UNI_KANASUP }   /* kanasupplement */,
-  {     0,  3474,  7416,   6,  14, UNI_PUA }   /* block=privateusearea */,
-  {     2,   313,  4962,   2,  14, UNI_INHANIFIROHINGYA }   /* inhanifirohingya */,
-  {    11,  4355,   798,  17,   4, UNI_LANA }   /* scriptextensions=lana */,
-  {     2,  1991,  1413,  11,   2, UNI_JT__C }   /* joiningtype=c */,
-  {     1,  2363,  2336,  10,   8, UNI_ETHIOPICEXT }   /* inethiopicextended */,
-  {     0,   464,  3285,   2,   6, UNI_HEBR }   /* ishebrew */,
-  {     4,  3474,  6284,   6,  19, UNI_JAMOEXTB }   /* block=hanguljamoextendedb */,
-  {     7,  4322,   294,  15,   1, UNI_NV__3_SLASH_4 }   /* numericvalue=3/4 */,
-  {    49,  1879,   328,   8,   3, UNI_KANASUP }   /* blk=kanasup */,
-  {     5,   464,   228,   2,   4, UNI_XPEO }   /* isxpeo */,
-  {     0,   306,   356,   5,   2, UNI__PERL_PATWS }   /* patws=y */,
-  {     1,  1102,  1951,   4,   4, UNI_SOGD }   /* scx=sogd */,
-  {     4,   508,  1769,   3,   3, UNI_nfdqc_values_index }   /* nfdqc= */,
-  {     2,  2802,  7851,   3,  29, UNI_ENCLOSEDALPHANUMSUP }   /* isenclosedalphanumericsupplement */,
-  {     6,  6114,  6594,   3,   4, UNI_BRAH }   /* sc=brah */,
-  {     0,  7201,  1860,  16,   7, UNI_XPOSIXCNTRL }   /* generalcategory=control */,
-  {     0,  4783,   355,   9,   2, UNI_wspace_values_index }   /* whitespace= */,
-  {     1,  3450,  7908,   5,  29, UNI_CUNEIFORMNUMBERS }   /* blk=cuneiformnumbersandpunctuation */,
-  {     1,  3669,     0,  16,   0, UNI_JG__MALAYALAMNNNA }   /* jg=malayalamnnna */,
-  {     0,  1383,   601,   6,   2, UNI_ids_values_index }   /* idstart= */,
-  {     1,   296,  2073,   3,   2, UNI_NV__42 }   /* nv=42 */,
-  {     0,  4322,     0,  16,   0, UNI_NV__3_SLASH_2 }   /* numericvalue=3/2 */,
-  {     1,  6944,  5472,  24,   9, UNI_CCC__BL }   /* canonicalcombiningclass=belowleft */,
-  {     3,  4006,     0,  15,   0, UNI_CURRENCYSYMBOLS }   /* currencysymbols */,
-  {    32,  4355,   160,  17,   4, UNI_PHLP }   /* scriptextensions=phlp */,
-  {     3,  7208,  2728,   8,   6, UNI_C }   /* category=other */,
-  {     0,  7584,  3236,  18,   3, UNI_DT__ENC }   /* decompositiontype=enc */,
-  {     0,   464,   302,   2,   2, UNI_RI }   /* isri */,
-  {     2,  1879,    27,   4,   4, UNI_INAHOM }   /* blk=ahom */,
-  {     1,  6749,   356,  25,   4, UNI_CWKCF }   /* changeswhennfkccasefolded=yes */,
-  {     4,  1879,  1280,   4,   9, UNI_INNABATAEAN }   /* blk=nabataean */,
-  {     9,  1977,   311,   5,   5, UNI_POSIXPRINT }   /* posixprint */,
-  {     9,     8,  2332,   1,   7, UNI_GREEKEXT }   /* greekext */,
-  {     5,  3053,   588,  13,   2, UNI_POSIXXDIGIT }   /* asciihexdigit=t */,
-  {    33,    34,  4900,   1,   6, UNI_EMOJI }   /* isemoji */,
-  {     2,   464,   681,   2,   5, UNI_RUNR }   /* isrunic */,
-  {    40,    14,  6549,   1,  21, UNI_MISCTECHNICAL }   /* miscellaneoustechnical */,
-  {     5,  1377,     0,   3,   0, UNI_wb_values_index }   /* wb= */,
-  {     2,  1796,  1027,   7,   4, UNI_SC__YEZI }   /* script=yezi */,
-  {     0,  5544,   934,  21,   6, -UNI_CWT }   /* changeswhentitlecased=false */,
-  {    89,  3933,  2774,   6,   8, UNI_SK }   /* modifiersymbol */,
-  {     2,  3654,     0,  11,   0, UNI_MC }   /* spacingmark */,
-  {     1,  1975,  4500,   7,   5, UNI_POSIXUPPER }   /* isposixupper */,
-  {    25,   275,  1837,   4,   8, UNI_WB__EB }   /* gcb=ebasegaz */,
-  {     6,  6114,   437,   3,   4, UNI_OGAM }   /* sc=ogam */,
-  {     4,  7880,  1698,   5,   4, UNI_CJKEXTF }   /* iscjkextf */,
-  {    10,  6114,  1529,   3,  10, UNI_KHAR }   /* sc=kharoshthi */,
-  {     0,  2153,   349,   4,   1, UNI_NV__48 }   /* nv=48 */,
-  {    71,    12,   934,   3,   6, -UNI_PCM }   /* pcm=false */,
-  {     1,  5099,  1472,  17,   3, UNI__PERL_CHARNAME_BEGIN }   /* _perl_charname_begin */,
-  {     1,  1102,  3309,   4,  15, UNI_MERC }   /* scx=meroiticcursive */,
-  {     8,   296,  2616,   3,   9, UNI_NV__1_SLASH_2 }   /* nv=5.000e-01 */,
-  {     8,  3474,  6919,   6,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* block=symbolsforlegacycomputing */,
-  {     0,  6944,  2094,  25,   2, UNI_CCC__202 }   /* canonicalcombiningclass=202 */,
-  {    20,  5523,   588,  21,   2, UNI_CWL }   /* changeswhenlowercased=t */,
-  {     2,    14,  2813,   1,   3, UNI_MAHJ }   /* mahj */,
-  {     1,  1796,   530,   7,   6, UNI_RJNG }   /* script=rejang */,
-  {     6,  4450,    60,   7,   3, UNI_INCHAM }   /* block=cham */,
-  {     0,   959,   934,   8,   6, -UNI_EXT }   /* extender=false */,
-  {     1,  1796,  4857,   7,   5, UNI_SC__TAML }   /* script=tamil */,
-  {     4,  7473,   356,  10,   2, UNI_XPOSIXALPHA }   /* alphabetic=y */,
-  {     0,  3351,  1069,  14,   2, UNI_NV__2_SLASH_3 }   /* numericvalue=2/3 */,
-  {     8,  1383,   588,   4,   2, UNI_IDST }   /* idst=t */,
-  {     2,  6114,   783,   3,   4, UNI_OSMA }   /* sc=osma */,
-  {     0,  6379,   709,  13,   4, UNI_JG__SEEN }   /* joininggroup=seen */,
-  {     5,  5607,  7221,  10,  17, UNI_IDENTIFIERSTATUS__RESTRICTED }   /* identifierstatus=restricted */,
-  {    17,  4355,  3991,  17,   7, UNI_BRAI }   /* scriptextensions=braille */,
-  {     0,  1879,  6833,   4,  14, UNI_BYZANTINEMUSIC }   /* blk=byzantinemusic */,
-  {     1,  2692,  4918,   5,   9, UNI_ALCHEMICAL }   /* blk=alchemical */,
-  {     4,  4355,   794,  17,   4, UNI_KALI }   /* scriptextensions=kali */,
-  {    80,   464,   959,   2,   8, UNI_EXT }   /* isextender */,
-  {     4,   464,   783,   2,   7, UNI_OSMA }   /* isosmanya */,
-  {     0,   696,  5057,   3,  18, UNI_OTTOMANSIYAQNUMBERS }   /* isottomansiyaqnumbers */,
-  {    15,  1796,  1280,   7,   9, UNI_NBAT }   /* script=nabataean */,
-  {    33,    34,  3054,   1,   3, UNI_CI }   /* isci */,
-  {     0,  5087,  3411,  10,  12, UNI_WB__EX }   /* wordbreak=extendnumlet */,
-  {     4,  4355,  1529,  17,  10, UNI_KHAR }   /* scriptextensions=kharoshthi */,
-  {    10,   600,  3249,   3,   5, UNI_DT__FIN }   /* dt=final */,
-  {     8,  8182,  6574,  23,  20, UNI_INPC__TOPANDBOTTOMANDLEFT }   /* indicpositionalcategory=topandbottomandleft */,
-  {     0,  5523,   934,  21,   6, -UNI_CWL }   /* changeswhenlowercased=false */,
-  {     3,   536,  2928,   3,   3, UNI_SB__SE }   /* sb=sep */,
-  {     0,  6379,   787,  13,   3, UNI_JG__NYA }   /* joininggroup=nya */,
-  {     0,   661,     0,   5,   0, UNI_DOGR }   /* dogra */,
-  {     0,  3351,  1303,  13,   2, UNI_NV__32 }   /* numericvalue=32 */,
-  {     1,  6114,   868,   3,   4, UNI_SC__TIRH }   /* sc=tirh */,
-  {     0,  3763,  1073,  15,   2, UNI_NV__5_SLASH_12 }   /* numericvalue=5/12 */,
-  {    20,  3474,   840,   6,   7, UNI_INTAGALOG }   /* block=tagalog */,
-  {     3,  3809,  1300,  14,   2, UNI_NV__900 }   /* numericvalue=900 */,
-  {     1,   313,  5305,   3,  10, UNI_TAIXUANJING }   /* intaixuanjing */,
-  {    41,  7660,   588,  17,   5, UNI_VS }   /* variationselector=true */,
-  {     0,  1879,   477,   4,   3, UNI_INVAI }   /* blk=vai */,
-  {     8,  7527,   546,   3,   2, UNI_EBASE }   /* lb=eb */,
-  {     5,  6114,  1009,   3,   6, UNI_LYCI }   /* sc=lycian */,
-  {     5,  1233,  5057,   3,  18, UNI_OTTOMANSIYAQNUMBERS }   /* inottomansiyaqnumbers */,
-  {     0,  7688,  4186,  23,   4, UNI_JG__MANICHAEANRESH }   /* joininggroup=manichaeanresh */,
-  {     0,     5,  6091,   1,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* earlydynasticcuneiform */,
-  {     0,   520,  1300,   4,   2, UNI_NV__700 }   /* nv=700 */,
-  {     3,  3474,   681,   6,   5, UNI_INRUNIC }   /* block=runic */,
-  {     0,   464,  1009,   2,   6, UNI_LYCI }   /* islycian */,
-  {     0,   951,     0,   8,   0, UNI_DUPL }   /* duployan */,
-  {     1,  4355,  5139,  16,   8, UNI_MYMR }   /* scriptextensions=myanmar */,
-  {     9,  5136,  5797,  11,   9, UNI_MYANMAREXTA }   /* blk=myanmarextendeda */,
-  {     1,  1102,  1271,   4,   9, UNI_SIND }   /* scx=khudawadi */,
-  {     4,  4515,     0,  18,   0, UNI_IDST }   /* idstrinaryoperator */,
-  {    34,  3651,     0,  14,   0, UNI_MN }   /* nonspacingmark */,
-  {     9,   296,  6198,   3,   8, UNI_NV__10000000 }   /* nv=10000000 */,
-  {    16,  7527,   153,   3,   2, UNI_LB__SG }   /* lb=sg */,
-  {    66,  7828,  3150,  15,   2, UNI_uideo_values_index }   /* unifiedideograph= */,
-  {     0,  7688,  4174,  23,   4, UNI_JG__MANICHAEANHETH }   /* joininggroup=manichaeanheth */,
-  {     4,  3748,  1298,  15,   3, UNI_NV__1_SLASH_160 }   /* numericvalue=1/160 */,
-  {     0,  1102,  1198,   4,   7, UNI_GRAN }   /* scx=grantha */,
-  {     6,  6774,   588,  25,   2, UNI_DI }   /* defaultignorablecodepoint=t */,
-  {     0,   437,     0,   4,   0, UNI_OGAM }   /* ogam */,
-  {     2,  1102,  5139,   3,   8, UNI_MYMR }   /* scx=myanmar */,
-  {     0,   600,  6944,   6,   5, UNI_DT__NONCANON }   /* dt=noncanon */,
-  {     1,  7317,  3651,  10,  14, UNI_BC__NSM }   /* bidiclass=nonspacingmark */,
-  {     0,  8007,  6334,   7,  18, UNI_CJKCOMPATFORMS }   /* blk=cjkcompatibilityforms */,
-  {     5,  2463,   602,   5,   3, -UNI_JOINC }   /* joinc=no */,
-  {     0,  1102,  1320,   4,   4, UNI_PERM }   /* scx=perm */,
-  {    17,  1796,  1021,   7,   6, UNI_WCHO }   /* script=wancho */,
-  {    12,  1102,   429,   4,   4, UNI_MRO }   /* scx=mroo */,
-  {    16,   313,  2740,   2,   6, UNI_INCOPTIC }   /* incoptic */,
-  {     0,  4355,  1571,  17,   4, UNI_SAUR }   /* scriptextensions=saur */,
-  {     0,   464,   261,   2,   4, UNI_CWCM }   /* iscwcm */,
-  {     1,  1796,   106,   7,   4, UNI_HMNG }   /* script=hmng */,
-  {     7,   313,  4062,   2,  15, UNI_VEDICEXT }   /* invedicextensions */,
-  {     0,  3351,   772,  13,   4, UNI_NV__17_SLASH_2 }   /* numericvalue=17/2 */,
-  {     4,  1975,  4081,   7,   5, UNI_POSIXPUNCT }   /* isposixpunct */,
-  {    26,  1440,   356,   2,   2, UNI_SD }   /* sd=y */,
-  {     0,  3474,  1668,   6,   6, UNI_DOMINO }   /* block=domino */,
-  {    10,  6112,  7459,  14,  15, UNI_INSC__CONSONANTSUCCEEDINGREPHA }   /* insc=consonantsucceedingrepha */,
-  {    73,  3474,  7732,   6,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* block=enclosedideographicsupplement */,
-  {     5,  2692,  6142,   8,   5, UNI_ARABICSUP }   /* blk=arabicsup */,
-  {    22,    34,  4757,   1,  19, UNI_ZP }   /* isparagraphseparator */,
-  {     0,  3809,  2157,  14,   8, UNI_NV__11_SLASH_12 }   /* numericvalue=9.167e-01 */,
-  {    37,   296,  6967,   2,   3, UNI_NV__27 }   /* nv=27 */,
-  {     1,  1516,  1037,   6,   4, UNI_KANAEXTB }   /* iskanaextb */,
-  {     0,   608,   536,   2,   3, UNI_idsb_values_index }   /* idsb= */,
-  {     4,  3053,   934,  13,   2, -UNI_POSIXXDIGIT }   /* asciihexdigit=f */,
-  {     1,    37,  1256,   1,   6, UNI_SOYO }   /* soyombo */,
-  {     2,  1410,  2263,   7,   2, UNI_CCC__14 }   /* ccc=ccc14 */,
-  {     5,  7527,   184,   3,   2, UNI_LB__SA }   /* lb=sa */,
-  {     1,  2392,  1052,   3,   7, UNI_INMAHAJANI }   /* inmahajani */,
-  {     0,  1102,  1220,   4,   4, UNI_MAKA }   /* scx=maka */,
-  {     0,  1383,   934,   7,   6, -UNI_IDS }   /* idstart=false */,
-  {     1,  7527,    13,   3,   2, UNI_LB__CM }   /* lb=cm */,
-  {     7,   464,  4392,   2,  11, UNI_SGNW }   /* issignwriting */,
-  {     7,  1539,  1895,   3,  11, UNI_CHESSSYMBOLS }   /* ischesssymbols */,
-  {     4,  1796,  1470,   7,   4, UNI_SC__BUGI }   /* script=bugi */,
-  {     0,  1704,  8110,   6,  29, UNI_ARABICMATH }   /* arabicmathematicalalphabeticsymbols */,
-  {     0,    24,   602,   3,   3, -UNI_XPOSIXXDIGIT }   /* hex=no */,
-  {     1,  4355,   224,  17,   4, UNI_WCHO }   /* scriptextensions=wcho */,
-  {     2,  5087,   703,  10,   2, UNI_WB__EB }   /* wordbreak=em */,
-  {     0,  3474,  5117,   7,  19, UNI_INANATOLIANHIEROGLYPHS }   /* block=anatolianhieroglyphs */,
-  {     2,  2392,  6549,   3,  21, UNI_MISCTECHNICAL }   /* inmiscellaneoustechnical */,
-  {     0,  3474,  7500,   6,  17, UNI_ANCIENTGREEKMUSIC }   /* block=ancientgreekmusic */,
-  {     3,   600,   369,   3,   3, UNI_DT__SQR }   /* dt=sqr */,
-  {     1,  2033,   356,   5,   2, UNI_XPOSIXALPHA }   /* alpha=y */,
-  {     1,  1710,  1588,   3,   9, UNI_SMALLFORMS }   /* issmallforms */,
-  {     0,  2274,   587,  10,   6, UNI_XIDC }   /* xidcontinue=true */,
-  {     2,  4322,  6215,  14,   8, UNI_NV__1_SLASH_320 }   /* numericvalue=3.125e-03 */,
-  {     4,  4355,  4202,  17,  17, UNI_KITS }   /* scriptextensions=khitansmallscript */,
-  {     0,  7182,     0,   3,   0, UNI_CJK }   /* cjk */,
-  {    65,  1807,     0,   4,   0, UNI_SORA }   /* sora */,
-  {     0,  3000,   602,  13,   2, -UNI_QMARK }   /* quotationmark=n */,
-  {     5,  1879,  4081,   4,  11, UNI_INPUNCTUATION }   /* blk=punctuation */,
-  {     0,  4291,   278,   9,   3, UNI_LB__B2 }   /* linebreak=b2 */,
-  {     0,  5607,     0,  15,   0, UNI_identifiertype_values_index }   /* identifiertype= */,
-  {     0,  1410,  1073,   7,   2, UNI_CCC__12 }   /* ccc=ccc12 */,
-  {     1,  7201,   110,  16,   2, UNI_ZL }   /* generalcategory=zl */,
-  {    17,   875,   934,   5,   2, -UNI_UIDEO }   /* uideo=f */,
-  {     0,  1102,   220,   4,   4, UNI_TOTO }   /* scx=toto */,
-  {     0,   296,  2074,   3,   2, UNI_NV__29 }   /* nv=29 */,
-  {    41,  1879,  1390,   4,  10, UNI_ASCII }   /* blk=basiclatin */,
-  {     7,  4776,   355,  16,   3, UNI__PERL_PATWS }   /* patternwhitespace=y */,
-  {     1,  5087,  2265,  10,   9, UNI_WB__WSEGSPACE }   /* wordbreak=wsegspace */,
-  {     0,  2726,  4122,   3,  15, UNI_LOWERCASELETTER }   /* gc=lowercaseletter */,
-  {     1,   343,   292,   4,   2, UNI_CCC__30 }   /* ccc=30 */,
+  {     2,  7011,  1317,  24,   2, UNI_CCC__32 }   /* canonicalcombiningclass=32 */,
+  {    34,  1823,    35,   7,   4, UNI_BATK }   /* script=batk */,
+  {     0,  6165,   537,   3,   4, UNI_TANG }   /* sc=tang */,
+  {     1,  5156,    65,  10,   2, UNI_WB__MN }   /* wordbreak=mn */,
+  {     0,  4360,  2966,  10,  11, UNI_LB__IN }   /* linebreak=inseparable */,
+  {     0,    54,  1829,   2,   5, UNI_SC__MLYM }   /* sc=mlym */,
+  {     8,  1667,  3325,   4,   6, UNI_INHEBREW }   /* blk=hebrew */,
+  {     0,   220,     0,   4,   0, UNI_WCHO }   /* wcho */,
+  {     1,   461,  4536,   2,  18, UNI_COPTICEPACTNUMBERS }   /* iscopticepactnumbers */,
+  {     2,  4424,   663,  17,   5, UNI_LIMB }   /* scriptextensions=limbu */,
+  {     1,    33,   189,   1,   3, UNI_SGNW }   /* sgnw */,
+  {     0,  3490,  6193,  10,   5, UNI_CYRILLICSUP }   /* blk=cyrillicsup */,
+  {     0,  6163,  2823,   5,   9, UNI_INSC__NONJOINER }   /* insc=nonjoiner */,
+  {     3,   309,   590,   2,   7, UNI_DSRT }   /* indeseret */,
+  {     0,  1667,  4819,   4,   8, UNI_DINGBATS }   /* blk=dingbats */,
+  {     0,  5156,   366,  10,   2, UNI_WB__SQ }   /* wordbreak=sq */,
+  {     1,  6618,  5125,  12,   5, UNI_INPC__TOPANDBOTTOM }   /* inpc=topandbottom */,
+  {     0,  3832,     0,  14,   0, UNI_NV__5 }   /* numericvalue=5 */,
+  {     5,  6165,   746,   3,   4, UNI_MARC }   /* sc=marc */,
+  {     1,   940,   599,   6,   3, -UNI_COMPEX }   /* compex=no */,
+  {     0,  1823,  5391,   7,   8, UNI_CHER }   /* script=cherokee */,
+  {     0,  1994,   934,   7,   6, -UNI_RADICAL }   /* radical=false */,
+  {     1,  7274,   248,   9,   2, UNI_CN }   /* category=cn */,
+  {    16,    30,  4190,   1,   3, UNI_LO }   /* islo */,
+  {     1,   461,  3706,   2,  14, UNI_MN }   /* isnonspacingmark */,
+  {     3,  7591,  1479,   3,   5, UNI_LB__SP }   /* lb=space */,
+  {     0,  8246,     0,  24,   0, UNI_inpc_values_index }   /* indicpositionalcategory= */,
+  {     0,  6450,  1613,  14,   2, UNI_SB__FO }   /* sentencebreak=fo */,
+  {     4,    30,  3094,   1,   3, UNI_CI }   /* isci */,
+  {     0,  2432,  5107,   3,  18, UNI_MODIFIERTONELETTERS }   /* inmodifiertoneletters */,
+  {     0,  2494,  5863,   7,   6, UNI_GEORGIANSUP }   /* isgeorgiansup */,
+  {     0,   608,     0,   4,   0, UNI_ELBA }   /* elba */,
+  {     2,  7267,  1926,  16,   6, UNI_S }   /* generalcategory=symbol */,
+  {     0,  3635,   204,   7,   2, UNI_LATINEXTF }   /* latinextf */,
+  {     3,   683,     0,   5,   0, UNI_TAKR }   /* takri */,
+  {     1,   339,  1316,   5,   2, UNI_CCC__103 }   /* ccc=103 */,
+  {     1,  6427,  6215,  13,   9, UNI_JG__YEHBARREE }   /* joininggroup=yehbarree */,
+  {     1,  6165,   446,   3,   4, UNI_PHLI }   /* sc=phli */,
+  {     0,   309,  1509,   2,   8, UNI_INJAVANESE }   /* injavanese */,
+  {     6,  1198,   377,   5,   4, UNI_CJKEXTH }   /* incjkexth */,
+  {     5,  8246,  8507,  23,   7, UNI_INPC__BOTTOM }   /* indicpositionalcategory=bottom */,
+  {     2,  1102,   216,   4,   4, UNI_TOTO }   /* scx=toto */,
+  {     1,  1801,     0,   6,   0, UNI_NV__100 }   /* nv=100 */,
+  {     0,  1272,   358,   3,   5, UNI_CAKM }   /* ischakma */,
+  {     4,  1102,   868,   4,   4, UNI_TIRH }   /* scx=tirh */,
+  {    16,  1823,  3325,   7,   4, UNI_HEBR }   /* script=hebr */,
+  {    24,  7887,     0,  22,   0, UNI_CJK }   /* incjkunifiedideographs */,
+  {     3,   461,  6581,   2,  16, UNI_INDICNUMBERFORMS }   /* isindicnumberforms */,
+  {    14,  5031,     0,   4,   0, UNI_HAN }   /* hani */,
+  {     0,  3001,  3001,  12,   7, UNI_NT__NU }   /* numerictype=numeric */,
+  { 32464,  4502,  4659,   9,   9, UNI_LATINEXTC }   /* blk=latinextendedc */,
+  {     4,  8601,  8001,   7,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* block=symbolsandpictographsextendeda */,
+  {     2,  2718,   305,   3,   2, UNI_BC__WS }   /* bc=ws */,
   {     0,     2,   933,   1,   3, -UNI_CE }   /* ce=f */,
-  {     2,  3474,   997,   6,   6, UNI_INKAITHI }   /* block=kaithi */,
-  {     0,  5607,  6774,  15,  16, UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE }   /* identifiertype=defaultignorable */,
-  {     6,  5748,  6052,   5,  13, UNI_SUPMATHOPERATORS }   /* insupmathoperators */,
-  {     0,  7431,   585,  28,   2, UNI_CCC__122 }   /* canonicalcombiningclass=ccc122 */,
-  {     2,  2726,  4598,   3,  16, UNI_PE }   /* gc=closepunctuation */,
-  {     1,   464,  2973,   2,   5, UNI_EPRES }   /* isepres */,
-  {     0,  3593,  4464,   7,   4, UNI_LATINEXTC }   /* inlatinextc */,
-  {     0,  2463,   356,  11,   4, UNI_JOINC }   /* joincontrol=yes */,
-  {     2,   313,  4827,   2,   8, UNI_BAMUMSUP }   /* inbamumsup */,
-  {     0,  4355,  2740,  17,   6, UNI_COPT }   /* scriptextensions=coptic */,
-  {    21,    24,   602,   3,   2, -UNI_XPOSIXXDIGIT }   /* hex=n */,
-  {    12,  3474,  7020,   6,  24, UNI_ARABICPFB }   /* block=arabicpresentationformsb */,
-  {     0,   313,  6031,   2,   8, UNI_INGEORGIAN }   /* ingeorgian */,
-  {     0,  6114,   666,   3,   4, UNI_SC__LIMB }   /* sc=limb */,
-  {     0,   464,  6970,   2,  26, UNI_HALFANDFULLFORMS }   /* ishalfwidthandfullwidthforms */,
-  {     0,  8007,  6505,  29,   5, UNI_CJKEXTC }   /* blk=cjkunifiedideographsextensionc */,
-  {     2,   464,  3915,   2,  17, UNI_EPRES }   /* isemojipresentation */,
-  {    18,  5087,  5718,  10,   9, UNI_WB__EB }   /* wordbreak=emodifier */,
-  {     0,  1796,  1144,   7,   9, UNI_BHKS }   /* script=bhaiksuki */,
-  {     1,  8533,  4538,  16,  13, UNI_SUPPUNCTUATION }   /* block=supplementalpunctuation */,
-  {     0,  7527,     5,   3,   2, UNI_LB__EX }   /* lb=ex */,
-  {     1,  7201,   602,  15,   2, UNI_N }   /* generalcategory=n */,
-  {    10,  4355,  6728,  17,  11, UNI_MTEI }   /* scriptextensions=meeteimayek */,
-  {     8,  1065,  3777,   4,   2, UNI_NV__1_SLASH_8 }   /* nv=1/8 */,
-  {     1,   313,  3885,   2,  17, UNI_INCAUCASIANALBANIAN }   /* incaucasianalbanian */,
-  {     6,  2496,  2519,   3,  10, UNI_JG__KNOTTEDHEH }   /* jg=knottedheh */,
-  {     3,  3722,   602,   4,   3, -UNI_MATH }   /* math=no */,
-  {     1,  1879,  4582,   4,  11, UNI_BOPOMOFOEXT }   /* blk=bopomofoext */,
-  {     0,   316,   588,   5,   2, UNI_QMARK }   /* qmark=t */,
-  {     0,   252,     0,   5,   0, UNI_XPOSIXCNTRL }   /* cntrl */,
-  {     3,  6944,   692,  24,   3, UNI_CCC__214 }   /* canonicalcombiningclass=ata */,
-  {     2,  7605,  3178,  20,  10, UNI_GCB__L }   /* hangulsyllabletype=leadingjamo */,
-  {     0,  2485,  3060,   6,   6, UNI_XPOSIXXDIGIT }   /* xposixxdigit */,
-  {     2,  3450,  7908,   5,  15, UNI_CUNEIFORMNUMBERS }   /* blk=cuneiformnumbers */,
-  {     0,  6774,   934,  25,   2, -UNI_DI }   /* defaultignorablecodepoint=f */,
-  {     1,   464,   180,   2,   4, UNI_RUNR }   /* isrunr */,
-  {    67,  7201,  3654,  16,  11, UNI_MC }   /* generalcategory=spacingmark */,
-  {     0,  5846,     0,  19,   0, UNI_SUPARROWSC }   /* supplementalarrowsc */,
-  {     2,   313,   477,   2,   3, UNI_INVAI }   /* invai */,
-  {    24,  7208,  4758,   9,  18, UNI_ZP }   /* category=paragraphseparator */,
-  {    10,   464,  6629,   2,  14, UNI_LM }   /* ismodifierletter */,
-  {     1,  1975,  1638,   3,   8, UNI_POSIXSPACE }   /* isperlspace */,
-  {     0,  4077,     0,  15,   0, UNI_PD }   /* dashpunctuation */,
-  {     1,    24,  1104,   2,   3, UNI_XPOSIXXDIGIT }   /* hex=t */,
-  {     8,  6114,   469,   3,   4, UNI_SOGO }   /* sc=sogo */,
-  {     1,   600,   946,   3,   5, UNI_DT__SUP }   /* dt=super */,
-  {     0,   464,  8592,   2,  43, UNI_UCASEXTA }   /* isunifiedcanadianaboriginalsyllabicsextendeda */,
-  {     1,  4901,   587,  16,   3, UNI_EBASE }   /* emojimodifierbase=t */,
-  {     8,  3794,  1300,  14,   2, UNI_NV__800 }   /* numericvalue=800 */,
-  {     0,  7880,  4611,  28,   4, UNI_CJKEXTF }   /* iscjkunifiedideographsextensionf */,
-  {    18,  3722,     0,   4,   0, UNI_MATH }   /* math */,
-  {     0,  6379,  7262,  13,  14, UNI_JG__NOJOININGGROUP }   /* joininggroup=nojoininggroup */,
-  {    22,   887,     0,   8,   0, UNI_AGE__10 }   /* age=10.0 */,
-  {     2,   409,  4844,   2,  13, UNI_DIACRITICALSSUP }   /* diacriticalssup */,
-  {     0,   184,     0,   4,   0, UNI_SAMR }   /* samr */,
-  {     0,  6039,  2030,   7,  11, UNI_MATHALPHANUM }   /* block=mathalphanum */,
-  {     8,  1410,  3365,   7,   2, UNI_CCC__36 }   /* ccc=ccc36 */,
-  {     0,  4433,  5584,  15,   3, UNI_LATINEXTG }   /* blk=latinextendedg */,
-  {    72,  1539,  8150,   3,  24, UNI_DIACRITICALS }   /* iscombiningdiacriticalmarks */,
-  {     0,  3593,     0,  11,   0, UNI_LATINEXTE }   /* inlatinexte */,
-  {     9,   794,     0,   4,   0, UNI_KALI }   /* kali */,
-  {     0,   464,  1867,   2,   5, UNI_BIDIM }   /* isbidim */,
-  {     3,  7201,   273,  16,   2, UNI_ZP }   /* generalcategory=zp */,
-  {     0,  1796,   540,   7,   6, UNI_TNSA }   /* script=tangsa */,
-  {    32,  1382,   601,   7,   2, UNI_xids_values_index }   /* xidstart= */,
-  {    16,  1065,   764,   4,   2, UNI_NV__1_SLASH_2 }   /* nv=1/2 */,
-  {     7,  1796,   120,   7,   3, UNI_LAO }   /* script=lao */,
-  {     4,  1977,  2033,   5,   5, UNI_POSIXALPHA }   /* posixalpha */,
-  {     6,   464,  2812,   2,   4, UNI_MAHJ }   /* ismahj */,
-  {     4,  1102,   437,   4,   4, UNI_OGAM }   /* scx=ogam */,
-  {     0,  3474,  4582,   6,   8, UNI_INBOPOMOFO }   /* block=bopomofo */,
-  {     0,  8244,     0,  26,   0, UNI_CJK }   /* block=cjkunifiedideographs */,
-  {     6,     2,   601,   2,   2, UNI_cwt_values_index }   /* cwt= */,
-  {     0,  3228,     0,   5,   0, UNI_XPOSIXALNUM }   /* alnum */,
-  {     0,   464,  1965,   2,  10, UNI_YIRADICALS }   /* isyiradicals */,
-  {     0,    34,  1190,   1,   5, UNI_BENG }   /* isbeng */,
-  {     4,   313,  5949,   2,  21, UNI_YIJING }   /* inyijinghexagramsymbols */,
-  {     0,  2310,  5620,  12,   4, -UNI_CI }   /* caseignorable=no */,
-  {     5,  1102,   184,   4,   4, UNI_SAMR }   /* scx=samr */,
-  {     1,  6379,  1046,  13,   5, UNI_JG__KHAPH }   /* joininggroup=khaph */,
-  {     0,  1796,   465,   7,   4, UNI_SC__SHRD }   /* script=shrd */,
-  {     1,   536,   285,   3,   2, UNI_SB__XX }   /* sb=xx */,
-  {     6,   464,  6594,   2,   6, UNI_BRAH }   /* isbrahmi */,
-  {     0,   313,   890,   2,   5, UNI_IN__10 }   /* in=10.0 */,
-  {     0,  3474,  3637,   6,   4, UNI_INLISU }   /* block=lisu */,
-  {     0,  1915,     0,   5,   0, UNI_XPOSIXGRAPH }   /* graph */,
-  {     0,  6011,  2336,  14,   8, UNI_ETHIOPICEXT }   /* block=ethiopicextended */,
-  {     3,  3474,  2217,   6,  12, UNI_INOLDHUNGARIAN }   /* block=oldhungarian */,
-  {     1,  2726,  4137,   3,  15, UNI_PS }   /* gc=openpunctuation */,
-  {     1,  3474,  7377,   6,   8, UNI_INKATAKANA }   /* block=katakana */,
-  {    14,  5844,  5858,   5,   7, UNI_SUPARROWSC }   /* issuparrowsc */,
-  {    41,  1102,    82,   4,   4, UNI_DSRT }   /* scx=dsrt */,
-  {     1,  6114,   220,   3,   4, UNI_TOTO }   /* sc=toto */,
-  {    21,   895,  1303,   5,   2, UNI_AGE__3_DOT_2 }   /* age=v32 */,
-  {    17,   916,  5620,   4,   4, -UNI_EBASE }   /* ebase=no */,
-  {     0,  1702,     0,   8,   0, UNI_ARAB }   /* isarabic */,
-  {    20,  1102,  5340,   4,   4, UNI_DEVA }   /* scx=deva */,
-  {     2,   409,   588,   3,   2, UNI_DIA }   /* dia=t */,
-  {     9,   313,   890,   2,   3, UNI_IN__10 }   /* in=10 */,
-  {     1,  4355,    51,  17,   4, UNI_CAKM }   /* scriptextensions=cakm */,
-  {    50,  1059,   356,   6,   2, UNI_DT__NONE }   /* nfkdqc=y */,
-  {     2,  6114,   917,   3,   4, UNI_BASS }   /* sc=bass */,
-  {     1,  7044,  2775,  16,   8, UNI_DIACRITICALSFORSYMBOLS }   /* combiningmarksforsymbols */,
-  {     0,   464,  1887,   2,   4, UNI_UCAS }   /* isucas */,
-  {     0,  4291,  3691,  10,  13, UNI_LB__PR }   /* linebreak=prefixnumeric */,
-  {     0,  3794,     0,  15,   0, UNI_NV__80 }   /* numericvalue=80 */,
-  {     6,  4355,   861,  17,   7, UNI_TIBT }   /* scriptextensions=tibetan */,
-  {     4,  6114,    47,   3,   4, UNI_SC__BUHD }   /* sc=buhd */,
-  {     0,  3474,  1845,   6,  11, UNI_YISYLLABLES }   /* block=yisyllables */,
-  {     1,  3474,  6303,   6,  23, UNI_COMPATJAMO }   /* block=hangulcompatibilityjamo */,
-  {     1,  1539,  3869,   3,  16, UNI_UCAS }   /* iscanadiansyllabics */,
-  {     1,  3462,  5769,   5,  18, UNI_ENCLOSEDALPHANUMSUP }   /* blk=enclosedalphanumsup */,
-  {    82,  2474,  1539,   3,   9, UNI_MISCARROWS }   /* ismiscarrows */,
-  {    10,  5340,     0,  18,   0, UNI_DEVANAGARIEXT }   /* devanagariextended */,
-  {    11,  7584,  4533,  18,   7, UNI_DT__INIT }   /* decompositiontype=initial */,
-  {    21,  4355,  4436,  16,   6, UNI_LATN }   /* scriptextensions=latin */,
-  {    35,  3474,  1657,   6,  11, UNI_INCYPROMINOAN }   /* block=cyprominoan */,
-  {     0,   464,   880,   2,   7, UNI_ZZZZ }   /* isunknown */,
-  {     1,   343,   351,   4,   2, UNI_CCC__91 }   /* ccc=91 */,
-  {     0,  4901,  5620,  16,   4, -UNI_EBASE }   /* emojimodifierbase=no */,
-  {     5,  3474,  6142,  10,  12, UNI_ARABICSUP }   /* block=arabicsupplement */,
-  {     0,  1879,  1021,   4,   6, UNI_INWANCHO }   /* blk=wancho */,
-  {     0,  4355,  5907,  17,   4, UNI_SINH }   /* scriptextensions=sinh */,
-  {     6,  2454,  5812,   7,  13, UNI_GEORGIANSUP }   /* isgeorgiansupplement */,
-  {     0,   313,  3672,   2,   9, UNI_INMALAYALAM }   /* inmalayalam */,
-  {     0,  3748,   294,  15,   2, UNI_NV__1_SLASH_40 }   /* numericvalue=1/40 */,
-  {     9,  1796,   337,   7,   4, UNI_CARI }   /* script=cari */,
-  {    72,   313,  1125,   2,   8, UNI_INTIFINAGH }   /* intifinagh */,
-  {     1,   343,     0,   4,   0, UNI_ccc_values_index }   /* ccc= */,
-  {     0,  6114,  1205,   3,   9, UNI_SC__QAAI }   /* sc=inherited */,
-  {    20,  1796,  1205,   7,   9, UNI_SC__QAAI }   /* script=inherited */,
-  {     1,  3748,  3777,  14,   2, UNI_NV__1_SLASH_8 }   /* numericvalue=1/8 */,
-  {     1,  2712,   356,   5,   4, UNI_EMOJI }   /* emoji=yes */,
-  {     3,  1102,   742,   4,   7, UNI_MAND }   /* scx=mandaic */,
-  {    17,  6112,  6368,  12,  11, UNI_INSC__CONSONANTSUBJOINED }   /* insc=consonantsubjoined */,
-  {     0,   316,   934,   5,   2, -UNI_QMARK }   /* qmark=f */,
-  {     2,  1102,   132,   4,   4, UNI_MTEI }   /* scx=mtei */,
-  {     0,  3474,  4582,   6,  16, UNI_BOPOMOFOEXT }   /* block=bopomofoextended */,
-  {     2,  3474,  6538,   6,  11, UNI_NUMBERFORMS }   /* block=numberforms */,
-  {     0,   464,  1785,   2,  11, UNI_HMNG }   /* ispahawhhmong */,
-  {     9,  7208,  3061,   9,   5, UNI_XPOSIXDIGIT }   /* category=digit */,
-  {     8,   296,  2138,   3,   2, UNI_NV__33 }   /* nv=33 */,
-  {     4,  1796,    19,   7,   4, UNI_AGHB }   /* script=aghb */,
-  {     0,  5718,   602,   4,   3, -UNI_EMOD }   /* emod=no */,
-  {     5,   875,   356,   5,   4, UNI_UIDEO }   /* uideo=yes */,
-  {     0,  4355,  1927,  17,  12, UNI_GONG }   /* scriptextensions=gunjalagondi */,
-  {     0,  2678,  1687,  14,   7, UNI_BC__RLI }   /* bc=righttoleftisolate */,
-  {     0,  1410,  2138,   8,   2, UNI_WB__EB }   /* ccc=ccc133 */,
-  {     9,  6114,   140,   3,   4, UNI_NARB }   /* sc=narb */,
-  {     0,   464,   337,   2,   6, UNI_CARI }   /* iscarian */,
-  {     0,  6114,   429,   3,   4, UNI_MRO }   /* sc=mroo */,
-  {     0,   464,  6447,   2,   5, UNI_MUSIC }   /* ismusic */,
-  {     2,  2217,     0,  12,   0, UNI_HUNG }   /* oldhungarian */,
-  {     4,  1102,  1495,   4,   4, UNI_JAVA }   /* scx=java */,
-  {     0,  8182,  6574,  23,  13, UNI_INPC__TOPANDBOTTOM }   /* indicpositionalcategory=topandbottom */,
-  {     0,  3351,  1781,  14,   4, UNI_NV__20000 }   /* numericvalue=20000 */,
-  {     9,  1796,  1951,   7,   7, UNI_SC__SOGD }   /* script=sogdian */,
-  {     2,  4092,   934,   9,   6, -UNI_DIA }   /* diacritic=false */,
-  {     0,   296,  2063,   3,   9, UNI_NV__1_SLASH_8 }   /* nv=1.250e-01 */,
-  {    13,   328,  5858,   3,   7, UNI_SUPARROWSC }   /* suparrowsc */,
-  {     0,  4355,   321,  17,   5, UNI_TALE }   /* scriptextensions=taile */,
-  {     3,  1879,  1335,   4,   9, UNI_INOLDUYGHUR }   /* blk=olduyghur */,
-  {     8,  3474,  4962,   6,  14, UNI_INHANIFIROHINGYA }   /* block=hanifirohingya */,
-  {     0,  1796,   742,   7,   7, UNI_SC__MAND }   /* script=mandaic */,
-  {     1,  4996,  4182,  13,   4, UNI_JG__MANICHAEANQOPH }   /* jg=manichaeanqoph */,
-  {     0,  6114,   338,   4,   3, UNI_CARI }   /* sc=cari */,
-  {     1,   832,     0,   5,   0, UNI_STERM }   /* sterm */,
-  {    20,  2729,  1899,   5,   6, UNI_SO }   /* othersymbol */,
-  {     0,  6114,   721,   3,   7, UNI_SC__KNDA }   /* sc=kannada */,
-  {     2,  1967,   356,   7,   2, UNI_RADICAL }   /* radical=y */,
-  {     0,  2726,   110,   3,   2, UNI_ZL }   /* gc=zl */,
-  {    11,  3474,  6533,   6,  16, UNI_INDICNUMBERFORMS }   /* block=indicnumberforms */,
-  {     0,  6749,   588,  25,   5, UNI_CWKCF }   /* changeswhennfkccasefolded=true */,
-  {     1,   296,     0,   3,   0, UNI_nv_values_index }   /* nv= */,
-  {     0,  7688,  4182,  23,   4, UNI_JG__MANICHAEANQOPH }   /* joininggroup=manichaeanqoph */,
-  {     1,  3351,   763,  13,   3, UNI_NV__1_SLASH_2 }   /* numericvalue=1/2 */,
-  {     0,  6944,   182,  24,   2, UNI_CCC__0 }   /* canonicalcombiningclass=nr */,
-  {     0,  6114,   496,   3,   6, UNI_SC__KHOJ }   /* sc=khojki */,
-  {     1,  4726,  6199,  14,   5, UNI_NV__600000 }   /* numericvalue=600000 */,
-  {    51,   513,   299,   4,   1, UNI_NV__39 }   /* nv=39 */,
-  {     3,  7182,  2335,   2,   5, UNI_CJKEXTE }   /* cjkexte */,
-  {     2,  1548,   287,   3,   2, UNI_NT__NU }   /* nt=nu */,
-  {     6,  1879,  6462,   4,  24, UNI_HIGHPUSURROGATES }   /* blk=highprivateusesurrogates */,
-  {    17,  1796,    47,   7,   4, UNI_SC__BUHD }   /* script=buhd */,
-  {     2,   343,   522,   3,   2, UNI_CCC__7 }   /* ccc=7 */,
-  {     1,   555,   346,   3,   3, UNI_AGE__11 }   /* age=11 */,
-  {     3,  1879,  4827,   4,   8, UNI_BAMUMSUP }   /* blk=bamumsup */,
-  {     0,  7208,   647,   8,   2, UNI_L }   /* category=l */,
-  {    11,  2890,   588,   2,   2, UNI_JT__T }   /* jt=t */,
-  {     6,  4450,  1037,  14,   4, UNI_CYRILLICEXTB }   /* block=cyrillicextb */,
-  {     4,  4872,  1491,  10,   4, UNI_KANAEXTA }   /* block=kanaexta */,
-  {     6,  1879,  8592,   4,  42, UNI_UCASEXT }   /* blk=unifiedcanadianaboriginalsyllabicsextended */,
-  {     0,  6114,  5907,   3,   4, UNI_SC__SINH }   /* sc=sinh */,
-  {     0,  6944,   585,  25,   2, UNI_CCC__BR }   /* canonicalcombiningclass=222 */,
-  {     2,  4827,   328,   5,   3, UNI_BAMUMSUP }   /* bamumsup */,
-  {     3,   823,     0,   4,   0, UNI_DASH }   /* dash */,
-  {    18,   600,  1823,   3,   3, UNI_DT__SUB }   /* dt=sub */,
-  {    34,  7605,  1847,  22,   8, UNI_LB__H3 }   /* hangulsyllabletype=lvtsyllable */,
-  {     1,  8244,  3571,   9,  11, UNI_CJKCOMPATFORMS }   /* block=cjkcompatforms */,
-  {     1,  1377,  1882,   2,   3, UNI_WB__KA }   /* wb=ka */,
-  {     1,  3915,   588,  17,   5, UNI_EPRES }   /* emojipresentation=true */,
-  {     0,  1075,  2080,   4,   8, UNI_NV__5_SLASH_2 }   /* nv=2.500e+00 */,
-  {     8,  6944,  3107,  24,   5, UNI_CCC__A }   /* canonicalcombiningclass=above */,
-  {     1,  6402,  2961,  14,   7, UNI_SB__NU }   /* sentencebreak=numeric */,
-  {     2,   691,     0,   5,   0, UNI_BATK }   /* batak */,
-  {    17,  2483,   311,   8,   5, UNI_XPOSIXPRINT }   /* isxposixprint */,
-  {    64,  7527,  2569,   3,  10, UNI_LB__WJ }   /* lb=wordjoiner */,
-  {     1,   464,   901,   2,   8, UNI_ARMN }   /* isarmenian */,
-  {    17,   409,   356,   2,   4, UNI_DI }   /* di=yes */,
-  {     0,  2153,   518,   4,   2, UNI_NV__4_SLASH_5 }   /* nv=4/5 */,
-  {    18,  1867,   934,  12,   6, -UNI_BIDIM }   /* bidimirrored=false */,
-  {     0,  2726,  4614,   3,  16, UNI_PF }   /* gc=finalpunctuation */,
-  {     6,   464,  5116,   2,  20, UNI_HLUW }   /* isanatolianhieroglyphs */,
-  {    21,  4355,   445,  17,   4, UNI_ORKH }   /* scriptextensions=orkh */,
-  {     0,  8244,  6309,   9,  13, UNI_CJKCOMPAT }   /* block=cjkcompatibility */,
-  {     0,    58,  1105,   2,   5, UNI_TALU }   /* sc=talu */,
-  {   176,   383,  2261,   5,   2, UNI_hyphen_values_index }   /* hyphen= */,
-  {     0,  4355,  1470,  17,   4, UNI_BUGI }   /* scriptextensions=bugi */,
-  {     1,  6114,  1009,   3,   4, UNI_LYCI }   /* sc=lyci */,
-  {    50,  3748,   294,  15,   1, UNI_NV__1_SLASH_4 }   /* numericvalue=1/4 */,
-  {     9,     2,   587,   1,   3, UNI_CE }   /* ce=t */,
-  {     2,  2474,  7975,   3,  32, UNI_MISCMATHSYMBOLSA }   /* ismiscellaneousmathematicalsymbolsa */,
-  {     1,  6011,  1037,  14,   4, UNI_ETHIOPICEXTB }   /* block=ethiopicextb */,
-  {     1,   261,   934,   4,   6, -UNI_CWCM }   /* cwcm=false */,
-  {     0,  4322,  1304,  15,   2, UNI_NV__3_SLASH_20 }   /* numericvalue=3/20 */,
-  {     0,   464,  7416,   2,  14, UNI_PUA }   /* isprivateusearea */,
-  {     5,  6011,     0,  14,   0, UNI_INETHIOPIC }   /* block=ethiopic */,
-  {    68,  1571,     0,  10,   0, UNI_SAUR }   /* saurashtra */,
-  {     0,  3974,   588,   4,   2, UNI_IDSB }   /* idsb=t */,
-  {    35,   275,  1379,   2,   2, UNI_M }   /* gc=m */,
-  {     2,  7660,   934,  17,   6, -UNI_VS }   /* variationselector=false */,
-  {     4,  6944,  1153,  25,   2, UNI_CCC__L }   /* canonicalcombiningclass=224 */,
-  {     0,  1796,  1015,   7,   6, UNI_SC__TELU }   /* script=telugu */,
-  {     2,  1027,     0,   6,   0, UNI_YEZI }   /* yezidi */,
-  {     1,  3622,  4123,   3,  14, UNI_LOWERCASELETTER }   /* islowercaseletter */,
-  {     4,  5087,    10,  10,   2, UNI_LB__CR }   /* wordbreak=cr */,
-  {     9,   719,  4203,   3,  16, UNI_INKHITANSMALLSCRIPT }   /* inkhitansmallscript */,
-  {     0,  6114,   477,   3,   3, UNI_VAI }   /* sc=vai */,
-  {    12,  3474,  6447,   6,   5, UNI_MUSIC }   /* block=music */,
-  {     0,  1102,  1289,   4,   9, UNI_TALU }   /* scx=newtailue */,
-  {     1,   102,   104,   2,   2, UNI_HLUW }   /* hluw */,
-  {     0,  6944,  3365,  24,   2, UNI_CCC__36 }   /* canonicalcombiningclass=36 */,
-  {    10,  1879,  1491,   8,   4, UNI_KANAEXTA }   /* blk=kanaexta */,
-  {    17,  1796,  1451,   7,  10, UNI_DIAK }   /* script=divesakuru */,
-  {     0,  5544,   588,  21,   5, UNI_CWT }   /* changeswhentitlecased=true */,
-  {     1,  7317,  5446,  10,  18, UNI_BC__FSI }   /* bidiclass=firststrongisolate */,
-  {     2,  2726,  3654,   3,  11, UNI_MC }   /* gc=spacingmark */,
-  {     0,  6570,  2230,   3,   7, UNI_PHAISTOS }   /* inphaistos */,
-  {    11,  3351,  2155,  12,  10, UNI_NV__5_SLASH_12 }   /* numericvalue=4.167e-01 */,
-  {     8,  1174,  1906,   3,   9, UNI_EA__A }   /* ea=ambiguous */,
-  {     4,    34,  4550,   1,  17, UNI_LINEARBSYLLABARY }   /* inlinearbsyllabary */,
-  {     0,  6112,  3213,   5,  10, UNI_INSC__PUREKILLER }   /* insc=purekiller */,
-  {     7,  4783,   355,   9,   3, UNI_XPOSIXSPACE }   /* whitespace=y */,
-  {     7,   343,     0,   5,   0, UNI_CCC__1 }   /* ccc=1 */,
-  {     0,  4355,   360,  17,   6, UNI_CAKM }   /* scriptextensions=chakma */,
-  {    26,  3090,  2733,   5,  13, UNI_INGREEK }   /* blk=greekandcoptic */,
-  {     0,    12,   602,   3,   2, -UNI_PCM }   /* pcm=n */,
-  {     0,  6114,  4582,   3,   4, UNI_SC__BOPO }   /* sc=bopo */,
-  {     1,   275,   538,   2,   2, UNI_S }   /* gc=s */,
-  {    20,  4355,  1495,  17,   4, UNI_JAVA }   /* scriptextensions=java */,
-  {    10,  4996,   194,  14,   2, UNI_JG__MANICHAEANTAW }   /* jg=manichaeantaw */,
-  {     1,  1879,   220,   4,   4, UNI_INTOTO }   /* blk=toto */,
-  {     1,  3974,   602,   4,   2, -UNI_IDSB }   /* idsb=n */,
-  {     3,  1879,  6069,   4,  22, UNI_DIACRITICALSFORSYMBOLS }   /* blk=diacriticalsforsymbols */,
-  {     2,  3450,  6142,  10,  12, UNI_CYRILLICSUP }   /* blk=cyrillicsupplement */,
-  {     1,  2485,  1082,   6,   4, UNI_XPOSIXWORD }   /* xposixword */,
-  {     0,  1879,  5284,   4,  20, UNI_ININSCRIPTIONALPAHLAVI }   /* blk=inscriptionalpahlavi */,
-  {     0,  6114,   991,   3,   6, UNI_HATR }   /* sc=hatran */,
-  {     0,  2260,     0,   3,   0, UNI_in_values_index }   /* in= */,
-  {     1,   270,   934,   3,   6, -UNI_CWT }   /* cwt=false */,
-  {    18,  4355,   465,  17,   4, UNI_SHRD }   /* scriptextensions=shrd */,
-  {     8,  3450,  3123,   5,  14, UNI_CONTROLPICTURES }   /* blk=controlpictures */,
-  {     0,  1377,  1842,   3,   3, UNI_WB__EB }   /* wb=gaz */,
-  {     8,   477,     0,   3,   0, UNI_VAI }   /* vai */,
-  {     5,   736,  7175,   3,  26, UNI_ENCLOSEDCJK }   /* inenclosedcjklettersandmonths */,
-  {    20,  5586,    10,  21,   2, UNI_LB__CR }   /* graphemeclusterbreak=cr */,
-  {     0,  6114,  2041,   3,  12, UNI_MEND }   /* sc=mendekikakui */,
-  {     6,  2353,  4442,  10,   9, UNI_CYRILLICEXTB }   /* incyrillicextendedb */,
-  {    21,  4291,  6173,  10,  12, UNI_LB__SY }   /* linebreak=breaksymbols */,
-  {    33,    15,   575,   1,   6, UNI_AVST }   /* avestan */,
-  {     2,  1382,   588,   8,   5, UNI_XIDS }   /* xidstart=true */,
-  {    67,   600,  7135,   2,   4, UNI_DT__SUP }   /* dt=sup */,
-  {     4,  2726,  5103,   3,   2, UNI_CASEDLETTER }   /* gc=l_ */,
-  {     0,   536,     5,   3,   2, UNI_SB__EX }   /* sb=ex */,
-  {    33,  4901,   356,  13,   4, UNI_EMOD }   /* emojimodifier=yes */,
-  {     7,  3595,  4701,  13,  10, UNI_LATINEXTADDITIONAL }   /* latinextendedadditional */,
-  {     6,  7068,   588,  26,   2, UNI_PCM }   /* prependedconcatenationmark=t */,
-  {     0,  8533,  4641,   7,   8, UNI_SYRIACSUP }   /* block=syriacsup */,
-  {     0,     2,   356,   3,   4, UNI_CWL }   /* cwl=yes */,
-  {     0,  7201,    12,  16,   2, UNI_PC }   /* generalcategory=pc */,
-  {     1,  1011,   356,   2,   4, UNI_CI }   /* ci=yes */,
-  {     0,  1704,  6142,   4,   5, UNI_ARABICSUP }   /* arabicsup */,
-  {     2,  1796,  1198,   7,   7, UNI_SC__GRAN }   /* script=grantha */,
-  {     1,  1796,    67,   7,   4, UNI_SC__CPMN }   /* script=cpmn */,
-  {     0,  6462,     0,  24,   0, UNI_HIGHPUSURROGATES }   /* highprivateusesurrogates */,
-  {     8,  1796,  1220,   7,   7, UNI_MAKA }   /* script=makasar */,
-  {     1,  7018,  5797,   8,   9, UNI_ARABICEXTA }   /* inarabicextendeda */,
-  {     4,   464,  1867,   2,  12, UNI_BIDIM }   /* isbidimirrored */,
-  {    26,  1991,  3273,  12,  12, UNI_JT__R }   /* joiningtype=rightjoining */,
-  {     1,  1090,     0,   4,   0, UNI_LINB }   /* linb */,
-  {     1,  2463,     0,  11,   0, UNI_JOINC }   /* joincontrol */,
-  {     0,  1991,  6573,   4,   3, UNI_JOINC }   /* joinc=t */,
-  {     3,  6039,  4567,   7,  15, UNI_MISCMATHSYMBOLSB }   /* block=miscmathsymbolsb */,
-  {     0,  6402,    58,  14,   2, UNI_SB__SC }   /* sentencebreak=sc */,
-  {     2,  1440,   588,   2,   5, UNI_SD }   /* sd=true */,
-  {     0,  4355,   441,  17,   4, UNI_OLCK }   /* scriptextensions=olck */,
-  {    17,   895,   891,   6,   2, UNI_AGE__11 }   /* age=v110 */,
-  {     0,  6114,  1086,   3,   4, UNI_SC__KTHI }   /* sc=kthi */,
-  {     4,   115,     0,   2,   0, UNI_SK }   /* sk */,
-  {    56,  7431,  2074,  27,   2, UNI_CCC__29 }   /* canonicalcombiningclass=ccc29 */,
-  {     1,  7431,  3364,  27,   2, UNI_CCC__23 }   /* canonicalcombiningclass=ccc23 */,
-  {    64,  1879,  6303,   4,  23, UNI_COMPATJAMO }   /* blk=hangulcompatibilityjamo */,
-  {     3,  3462,  5769,   5,  15, UNI_ENCLOSEDALPHANUM }   /* blk=enclosedalphanum */,
-  {    12,  1796,  1009,   7,   4, UNI_LYCI }   /* script=lyci */,
-  {     1,   940,   602,   6,   3, -UNI_COMPEX }   /* compex=no */,
-  {     1,   536,  2277,   4,   8, UNI_SB__SC }   /* sb=scontinue */,
-  {     4,  4355,   776,  17,   7, UNI_OLCK }   /* scriptextensions=olchiki */,
-  {     9,   313,  1551,   2,  10, UNI_INOLDPERSIAN }   /* inoldpersian */,
-  {     2,  3474,  2812,   6,  12, UNI_MAHJONG }   /* block=mahjongtiles */,
-  {     1,  1879,  6538,   4,  11, UNI_NUMBERFORMS }   /* blk=numberforms */,
-  {     0,  7201,   628,  16,   2, UNI_PI }   /* generalcategory=pi */,
-  {     0,    96,   646,   1,   3, UNI_JT__L }   /* jt=l */,
-  {     1,   464,   651,   2,   5, UNI_ADLM }   /* isadlam */,
-  {    73,  4355,   735,  17,   7, UNI_LINA }   /* scriptextensions=lineara */,
-  {    20,  1102,  3465,   3,   9, UNI_ETHI }   /* scx=ethiopic */,
-  {     0,  7688,  4166,  23,   4, UNI_JG__MANICHAEANBETH }   /* joininggroup=manichaeanbeth */,
-  {     0,  2353,  3123,   3,  14, UNI_CONTROLPICTURES }   /* incontrolpictures */,
-  {     0,  7208,  3722,   9,  10, UNI_SM }   /* category=mathsymbol */,
-  {     0,  3351,   523,  13,   1, UNI_NV__7 }   /* numericvalue=7 */,
-  {    24,   313,  3053,   2,   5, UNI_ASCII }   /* inascii */,
-  {     1,  3450,  1491,  12,   4, UNI_CYRILLICEXTA }   /* blk=cyrillicexta */,
-  {     2,  2353,  6142,   8,   5, UNI_CYRILLICSUP }   /* incyrillicsup */,
-  {     2,  7823,  1434,   5,   7, UNI_CJKSTROKES }   /* incjkstrokes */,
-  {     1,    14,  5807,   1,  11, UNI_MONGOLIANSUP }   /* mongoliansup */,
-  {   131,  4355,   116,  17,   4, UNI_KNDA }   /* scriptextensions=knda */,
-  {     2,  1398,  1407,   9,   3, UNI_BOXDRAWING }   /* inboxdrawing */,
-  {     0,   313,  3637,   2,   4, UNI_INLISU }   /* inlisu */,
-  {     0,   296,   398,   3,   2, UNI_NV__16 }   /* nv=16 */,
-  {    59,  3474,   502,   6,   6, UNI_INLYDIAN }   /* block=lydian */,
-  {    12,   464,  1551,   2,  10, UNI_XPEO }   /* isoldpersian */,
-  {    54,  1879,   686,   4,   5, UNI_INTAKRI }   /* blk=takri */,
-  {     8,  3351,  2073,  13,   2, UNI_NV__42 }   /* numericvalue=42 */,
-  {     5,  2496,  7276,   3,  10, UNI_JG__TEHMARBUTA }   /* jg=tehmarbuta */,
-  {     0,  8244,  8089,   9,  21, UNI_CJKSYMBOLS }   /* block=cjksymbolsandpunctuation */,
-  {     1,  1796,  1015,   7,   4, UNI_SC__TELU }   /* script=telu */,
-  {     0,  7688,  4978,  23,   6, UNI_JG__MANICHAEANDALETH }   /* joininggroup=manichaeandaleth */,
-  {     2,   464,  3164,   2,  14, UNI_GREXT }   /* isgraphemeextend */,
-  {    36,   464,   115,   2,   2, UNI_SK }   /* issk */,
-  {     3,  1075,  2120,   4,   8, UNI_NV__1_SLASH_4 }   /* nv=2.500e-01 */,
-  {     1,  2365,   623,   6,   5, UNI_ETHIOPICEXT }   /* ethiopicext */,
-  {    49,  1102,  1353,   4,   4, UNI_PAUC }   /* scx=pauc */,
-  {     0,  6538,     0,  11,   0, UNI_NUMBERFORMS }   /* numberforms */,
-  {    20,  4355,   728,  17,   7, UNI_KALI }   /* scriptextensions=kayahli */,
-  {    19,  6379,  3254,  13,   7, UNI_JG__SEMKATH }   /* joininggroup=semkath */,
-  {     5,  3622,  1036,   3,   2, UNI_LOE }   /* isloe */,
-  {     4,   265,   588,   5,   5, UNI_CWKCF }   /* cwkcf=true */,
-  {     0,  6799,   934,  24,   6, -UNI_COMPEX }   /* fullcompositionexclusion=false */,
-  {    75,  1441,   356,  10,   4, UNI_DEP }   /* deprecated=yes */,
-  {     7,  7132,  4641,   5,   8, UNI_SYRIACSUP }   /* blk=syriacsup */,
-  {     0,   625,   356,   7,   4, UNI_EXTPICT }   /* extpict=yes */,
-  {     0,  8078,     0,  32,   0, UNI_IDEOGRAPHICSYMBOLS }   /* ideographicsymbolsandpunctuation */,
-  {     3,  1975,  4122,   7,   5, UNI_POSIXLOWER }   /* isposixlower */,
-  {     0,  4996,  4186,  13,   4, UNI_JG__MANICHAEANRESH }   /* jg=manichaeanresh */,
-  {     1,   464,   124,   2,   4, UNI_LATN }   /* islatn */,
-  {     0,  6774,   356,  25,   4, UNI_DI }   /* defaultignorablecodepoint=yes */,
-  {     0,  5844,  1262,   6,   3, UNI_SUPPUAB }   /* issuppuab */,
-  {     0,  6114,  2986,   3,  14, UNI_SC__PHLP }   /* sc=psalterpahlavi */,
-  {     0,  3748,  2088,  14,   8, UNI_NV__1_SLASH_64 }   /* numericvalue=1.562e-02 */,
-  {     2,  7527,  2012,   3,   2, UNI_LB__BK }   /* lb=bk */,
-  {     2,  5565,   602,  21,   2, -UNI_CWU }   /* changeswhenuppercased=n */,
-  {     0,  7201,   117,  16,   2, UNI_XPOSIXDIGIT }   /* generalcategory=nd */,
-  {    52,  5586,  2729,  21,   5, UNI_GCB__XX }   /* graphemeclusterbreak=other */,
-  {     0,  4355,   461,  17,   4, UNI_QAAI }   /* scriptextensions=qaai */,
-  {     1,   343,  1157,   4,   5, UNI_CCC__7 }   /* ccc=nukta */,
-  {     0,   110,     0,   2,   0, UNI_ZL }   /* zl */,
-  {     1,  1102,   798,   4,   4, UNI_LANA }   /* scx=lana */,
-  {     2,   464,  7044,   2,  24, UNI_DIACRITICALSFORSYMBOLS }   /* iscombiningmarksforsymbols */,
-  {     3,  6031,     0,   8,   0, UNI_GEOR }   /* georgian */,
-  {     4,   261,   588,   4,   2, UNI_CWCM }   /* cwcm=t */,
-  {    12,  5607,  1382,  18,   3, UNI_IDENTIFIERTYPE__NOTXID }   /* identifiertype=notxid */,
-  {    10,  1796,   502,   7,   6, UNI_LYDI }   /* script=lydian */,
-  {     0,   464,  4062,   2,   8, UNI_VEDICEXT }   /* isvedicext */,
-  {     1,   313,  6594,   2,   6, UNI_INBRAHMI }   /* inbrahmi */,
-  {     6,  6114,  1191,   3,   4, UNI_SC__BENG }   /* sc=beng */,
-  {     0,  7044,     0,  13,   0, UNI_M }   /* combiningmark */,
-  {     0,  6114,  5825,   3,   4, UNI_SUND }   /* sc=sund */,
-  {     0,  7068,   934,  26,   2, -UNI_PCM }   /* prependedconcatenationmark=f */,
-  {    10,  2771,     0,  12,   0, UNI_KHMERSYMBOLS }   /* khmersymbols */,
-  {     0,  1382,   934,   4,   6, -UNI_XIDS }   /* xids=false */,
-  {     0,  3637,     0,  14,   0, UNI_LISUSUP }   /* lisusupplement */,
-  {     0,    34,  7790,   1,  33, UNI_INIDC }   /* isideographicdescriptioncharacters */,
-  {    32,  3058,     0,   8,   0, UNI_XPOSIXXDIGIT }   /* hexdigit */,
-  {     1,   313,  3839,   2,   6, UNI_INTANGUT }   /* intangut */,
-  {    46,   632,  5620,   5,   4, -UNI_GRBASE }   /* grbase=no */,
-  {     1,   464,  1582,   2,   6, UNI_L }   /* isletter */,
-  {     1,  1796,  3285,   7,   4, UNI_HEBR }   /* script=hebr */,
-  {     0,   464,   477,   2,   3, UNI_VAI }   /* isvai */,
-  {     0,  5907,     0,  21,   0, UNI_SINHALAARCHAICNUMBERS }   /* sinhalaarchaicnumbers */,
-  {     1,  7527,    22,   3,   2, UNI_LB__BA }   /* lb=ba */,
-  {     1,  2802,  4442,  10,   9, UNI_ETHIOPICEXTB }   /* isethiopicextendedb */,
-  {     0,  1383,   601,   6,   3, -UNI_IDS }   /* idstart=n */,
-  {     0,  6944,   346,  23,   3, UNI_CCC__11 }   /* canonicalcombiningclass=11 */,
-  {     3,  1796,    51,   7,   4, UNI_SC__CAKM }   /* script=cakm */,
-  {     6,   464,   152,   2,   4, UNI_OSGE }   /* isosge */,
-  {    34,  3593,  4590,   7,   9, UNI_LATINEXTC }   /* inlatinextendedc */,
-  {     0,  1796,  3839,   7,   6, UNI_TANG }   /* script=tangut */,
-  {     3,  1102,  1317,   4,   9, UNI_PERM }   /* scx=oldpermic */,
-  {     1,  3748,   398,  15,   2, UNI_NV__1_SLASH_16 }   /* numericvalue=1/16 */,
-  {     0,  2474,  7556,   3,  28, UNI_MISCARROWS }   /* ismiscellaneoussymbolsandarrows */,
-  {     0,  1796,   160,   7,   4, UNI_SC__PHLP }   /* script=phlp */,
-  {     0,   261,     0,   4,   0, UNI_CWCM }   /* cwcm */,
-  {     0,  6944,  8572,  24,  18, UNI_CCC__216 }   /* canonicalcombiningclass=attachedaboveright */,
-  {     0,  6402,   329,  14,   2, UNI_SB__UP }   /* sentencebreak=up */,
-  {     0,  5748,  5858,   5,   7, UNI_SUPARROWSC }   /* insuparrowsc */,
-  {     7,   540,     0,   4,   0, UNI_TANG }   /* tang */,
-  {     1,  2974,  1780,  11,   3, UNI_IN__10 }   /* presentin=v100 */,
-  {     0,  4355,   287,  17,   5, UNI_NSHU }   /* scriptextensions=nushu */,
-  {     0,  3474,    27,   6,   4, UNI_INAHOM }   /* block=ahom */,
-  {     1,  3474,   651,   6,   5, UNI_INADLAM }   /* block=adlam */,
-  {     9,  1704,  1695,   6,   3, UNI_ARABICPFB }   /* arabicpfb */,
-  {    32,  1539,    72,   3,   3, UNI_CPRT }   /* iscprt */,
-  {     4,  1975,  1082,   7,   4, UNI_POSIXWORD }   /* isposixword */,
-  {    22,  1382,   934,   8,   2, -UNI_XIDS }   /* xidstart=f */,
-  {     0,  7182,  6177,   2,   8, UNI_CJKSYMBOLS }   /* cjksymbols */,
-  {     0,  6114,  1311,   3,   4, UNI_ITAL }   /* sc=ital */,
-  {     8,   383,     0,   6,   0, UNI_HYPHEN }   /* hyphen */,
-  {     0,   464,  1542,   2,   6, UNI_ARROWS }   /* isarrows */,
-  {     0,   464,   372,   2,   4, UNI_GOTH }   /* isgoth */,
-  {     0,   644,     0,   7,   0, UNI_LB__H3 }   /* hst=lvt */,
-  {     2,  3474,  5340,   6,  13, UNI_DEVANAGARIEXT }   /* block=devanagariext */,
-  {     4,  4500,     0,   5,   0, UNI_XPOSIXUPPER }   /* upper */,
-  {     0,   464,  1098,   2,   4, UNI_NSHU }   /* isnshu */,
-  {     9,  8244,  1646,   9,   4, UNI_CJKEXTD }   /* block=cjkextd */,
-  {    80,  4355,  3885,  17,  17, UNI_AGHB }   /* scriptextensions=caucasianalbanian */,
-  {    33,  7823,     5,   5,   4, UNI_CJKEXTG }   /* incjkextg */,
-  {     0,  1879,  4202,   4,  17, UNI_INKHITANSMALLSCRIPT }   /* blk=khitansmallscript */,
-  {     0,   464,  5186,   2,  20, UNI_EXTPICT }   /* isextendedpictographic */,
-  {     0,  4500,   934,   5,   6, -UNI_XPOSIXUPPER }   /* upper=false */,
-  {     4,  7317,  3078,  10,  12, UNI_BC__ON }   /* bidiclass=otherneutral */,
-  {     3,   464,  4962,   2,  14, UNI_ROHG }   /* ishanifirohingya */,
-  {    24,  7208,  1590,   9,   2, UNI_LOWERCASELETTER }   /* category=ll */,
-  {     5,  1879,  2771,   4,   5, UNI_INKHMER }   /* blk=khmer */,
-  {    22,  2443,   602,   5,   2, -UNI_CASED }   /* cased=n */,
-  {     1,  1879,  6644,   4,  22, UNI_TRANSPORTANDMAP }   /* blk=transportandmapsymbols */,
-  {     0,  3474,  5056,   6,  19, UNI_OTTOMANSIYAQNUMBERS }   /* block=ottomansiyaqnumbers */,
-  {     2,  3000,  1881,  12,   2, UNI_qmark_values_index }   /* quotationmark= */,
-  {     0,  2496,  7276,   3,  14, UNI_JG__HAMZAONHEHGOAL }   /* jg=tehmarbutagoal */,
-  {     0,   464,  6031,   2,   8, UNI_GEOR }   /* isgeorgian */,
-  {     0,  1377,  3013,   3,  11, UNI_WB__DQ }   /* wb=doublequote */,
-  {     0,  6239,   176,   4,   2, UNI_BC__LRO }   /* bc=lro */,
-  {     1,  1102,   192,   4,   4, UNI_SHAW }   /* scx=shaw */,
-  {     0,  2726,   628,   3,   2, UNI_PI }   /* gc=pi */,
-  {     1,   464,  5409,   2,  19, UNI_TERM }   /* isterminalpunctuation */,
-  {    12,  4355,   593,  17,   7, UNI_DSRT }   /* scriptextensions=deseret */,
-  {     6,  2802,  7175,   3,  10, UNI_ENCLOSEDCJK }   /* isenclosedcjk */,
-  {   144,  1702,  7481,   6,  20, UNI_ARABICPFA }   /* isarabicpresentationformsa */,
-  {     9,   296,  1300,   4,   3, UNI_NV__9000 }   /* nv=9000 */,
-  {     6,  3622,     0,   7,   0, UNI_LATN }   /* islatin */,
-  {     0,  5409,   602,  19,   3, -UNI_TERM }   /* terminalpunctuation=no */,
-  {     0,  4355,  1027,  17,   6, UNI_YEZI }   /* scriptextensions=yezidi */,
-  {     1,  1102,  1550,   3,  11, UNI_XPEO }   /* scx=oldpersian */,
-  {     0,   181,  2324,   2,   8, UNI_CN }   /* unassigned */,
-  {     0,  1879,  1371,   4,   6, UNI_INTHAANA }   /* blk=thaana */,
-  {     0,  6799,   934,  24,   2, -UNI_COMPEX }   /* fullcompositionexclusion=f */,
-  {     9,  1796,  4107,   7,   6, UNI_SC__HANG }   /* script=hangul */,
-  {     3,   600,  1719,   3,   4, UNI_DT__VERT }   /* dt=vert */,
-  {     0,   600,   242,   3,   2, UNI_DT__NB }   /* dt=nb */,
-  {     0,  3474,   951,   6,   8, UNI_INDUPLOYAN }   /* block=duployan */,
-  {   104,  1065,  2617,   4,   8, UNI_NV__1_SLASH_10 }   /* nv=1.000e-01 */,
-  {     0,  1102,  1371,   4,   4, UNI_THAA }   /* scx=thaa */,
-  {     1,   313,  7377,   2,   8, UNI_INKATAKANA }   /* inkatakana */,
-  {     0,  1102,  3465,   3,   5, UNI_ETHI }   /* scx=ethi */,
-  {     0,   464,  2229,   2,  12, UNI_PHAISTOS }   /* isphaistosdisc */,
-  {    24,  1102,  1133,   4,   8, UNI_VITH }   /* scx=vithkuqi */,
-  {     1,  8244,  1037,   9,   4, UNI_CJKEXTB }   /* block=cjkextb */,
-  {     0,   275,   252,   4,   2, UNI_GCB__CN }   /* gcb=cn */,
-  {     5,   313,  5825,   2,  19, UNI_SUNDANESESUP }   /* insundanesesupplement */,
-  {    32,  1796,  1086,   7,   4, UNI_SC__KTHI }   /* script=kthi */,
-  {     1,  6402,  5021,  13,   6, UNI_SB__CL }   /* sentencebreak=close */,
-  {    10,  6402,     5,  14,   2, UNI_SB__EX }   /* sentencebreak=ex */,
-  {    64,  1102,   228,   4,   4, UNI_XPEO }   /* scx=xpeo */,
-  {     0,  6379,  1526,  13,   3, UNI_JG__YEH }   /* joininggroup=yeh */,
-  {    36,  3351,  6199,  14,   7, UNI_NV__20000000 }   /* numericvalue=20000000 */,
-  {    19,  7880,  3571,   5,  11, UNI_CJKCOMPATFORMS }   /* iscjkcompatforms */,
-  {     0,   464,  4081,   2,  11, UNI_P }   /* ispunctuation */,
-  {     0,  7527,  1591,   3,   2, UNI_LB__LF }   /* lb=lf */,
-  {     0,  3351,   762,  13,   4, UNI_NV___MINUS_1_SLASH_2 }   /* numericvalue=-1/2 */,
-  {    68,  6112,  1418,   5,   6, UNI_INSC__VIRAMA }   /* insc=virama */,
-  {     0,   608,   345,   2,   2, UNI_idc_values_index }   /* idc= */,
-  {     0,  1796,   236,   7,   2, UNI_SC__YI }   /* script=yi */,
-  {     0,    34,   636,   1,   8, UNI_HANO }   /* ishanunoo */,
-  {     1,   536,  4122,   3,   5, UNI_SB__LO }   /* sb=lower */,
-  {     5,  4355,   909,  17,   8, UNI_BALI }   /* scriptextensions=balinese */,
-  {     4,  1539,     0,   3,   0, UNI_C }   /* isc */,
-  {     1,  5825,     0,  12,   0, UNI_SUNDANESESUP }   /* sundanesesup */,
-  {     0,  3734,   356,  14,   2, UNI_NFKCQC__Y }   /* nfkcquickcheck=y */,
-  {     0,  1377,  1631,   3,   7, UNI_WB__NL }   /* wb=newline */,
-  {     3,   275,  1842,   4,   3, UNI_WB__EB }   /* gcb=gaz */,
-  {     2,  2463,   934,  11,   6, -UNI_JOINC }   /* joincontrol=false */,
-  {   105,   343,  2498,   3,   2, UNI_CCC__A }   /* ccc=a */,
-  {     6,  2496,   709,   3,   4, UNI_JG__SEEN }   /* jg=seen */,
-  {     0,   313,  6629,   2,  15, UNI_MODIFIERLETTERS }   /* inmodifierletters */,
-  {     1,  1539,  5566,   3,  20, UNI_CWU }   /* ischangeswhenuppercased */,
-  {     6,  7208,   334,   9,   2, UNI_PD }   /* category=pd */,
-  {     4,  3474,   429,   6,   3, UNI_INMRO }   /* block=mro */,
-  {     0,   844,   355,   2,   3, UNI_LOE }   /* loe=y */,
-  {    40,  2496,  2529,   3,  10, UNI_JG__REVERSEDPE }   /* jg=reversedpe */,
-  {     0,  1377,  1802,   2,   3, UNI_WB__ML }   /* wb=ml */,
-  {     3,  7317,   538,   9,   2, UNI_BC__S }   /* bidiclass=s */,
-  {     0,  4355,  2042,  18,  11, UNI_MEND }   /* scriptextensions=mendekikakui */,
-  {     0,  7605,   140,  19,   2, UNI_HST__NA }   /* hangulsyllabletype=na */,
-  {     0,  1796,  1289,   7,   9, UNI_TALU }   /* script=newtailue */,
-  {     5,   536,    40,   3,   2, UNI_SB__AT }   /* sb=at */,
-  {     0,  1879,  1220,   4,   7, UNI_INMAKASAR }   /* blk=makasar */,
-  {     0,  1860,     0,   7,   0, UNI_XPOSIXCNTRL }   /* control */,
-  {    25,  1539,  8499,   3,  34, UNI_DIACRITICALSSUP }   /* iscombiningdiacriticalmarkssupplement */,
-  {     0,  5087,  3285,  10,  12, UNI_LB__HL }   /* wordbreak=hebrewletter */,
-  {     2,  2365,  1491,   8,   4, UNI_ETHIOPICEXTA }   /* ethiopicexta */,
-  {     1,    17,     0,   2,   0, UNI_LM }   /* lm */,
-  {     0,  6114,   445,   3,   4, UNI_ORKH }   /* sc=orkh */,
-  {     3,   823,   602,   4,   3, -UNI_DASH }   /* dash=no */,
-  {     0,  1702,  4918,   3,   9, UNI_ALCHEMICAL }   /* isalchemical */,
-  {    12,  6114,  1248,   3,   7, UNI_SIDD }   /* sc=siddham */,
-  {    18,  1102,  3381,   4,  15, UNI_NARB }   /* scx=oldnortharabian */,
-  {     1,  3474,  6052,   6,  13, UNI_MATHOPERATORS }   /* block=mathoperators */,
-  {     1,   513,   766,   4,   3, UNI_NV__3_SLASH_64 }   /* nv=3/64 */,
-  {     0,  6114,  1470,   3,   4, UNI_SC__BUGI }   /* sc=bugi */,
-  {   148,  7527,  4137,   3,  15, UNI_LB__OP }   /* lb=openpunctuation */,
-  {     2,  1796,   337,   7,   6, UNI_CARI }   /* script=carian */,
-  {    16,  1395,  4629,   4,   5, UNI_LATIN1 }   /* latin1sup */,
-  {     0,  2193,  2199,   6,   6, UNI_NV__1_SLASH_16 }   /* nv=6.250e-02 */,
-  {    47,  1382,     0,   4,   0, UNI_XIDS }   /* xids */,
-  {     2,  7880,  3571,   5,   6, UNI_CJKCOMPAT }   /* iscjkcompat */,
-  {     1,   343,   433,   4,   2, UNI_CCC__7 }   /* ccc=nk */,
-  {     1,  1796,  3991,   7,   4, UNI_BRAI }   /* script=brai */,
-  {     0,  3974,   356,   4,   4, UNI_IDSB }   /* idsb=yes */,
-  {     1,   383,   602,   6,   3, -UNI_HYPHEN }   /* hyphen=no */,
-  {     0,  2726,   844,   3,   2, UNI_LO }   /* gc=lo */,
-  {     0,   256,     0,   2,   0, UNI_CASEDLETTER }   /* lc */,
-  {     0,  1102,  6594,   4,   4, UNI_BRAH }   /* scx=brah */,
-  {     2,  4500,   588,   5,   2, UNI_XPOSIXUPPER }   /* upper=t */,
-  {     3,  4450,  7908,   7,  29, UNI_CUNEIFORMNUMBERS }   /* block=cuneiformnumbersandpunctuation */,
-  {   129,   464,  1887,   2,   7, UNI_UCASEXT }   /* isucasext */,
-  {     0,  8592,     0,  34,   0, UNI_UCAS }   /* unifiedcanadianaboriginalsyllabics */,
-  {    20,   464,  3060,   2,   6, UNI_XPOSIXXDIGIT }   /* isxdigit */,
-  {     6,  1796,   360,   7,   6, UNI_SC__CAKM }   /* script=chakma */,
-  {     4,   464,   806,   2,   4, UNI_SARB }   /* issarb */,
-  {    47,  3933,     0,   4,   0, UNI_MODI }   /* modi */,
-  {     0,  7584,  1679,  18,   3, UNI_DT__FRA }   /* decompositiontype=fra */,
-  {    36,   464,    55,   2,   4, UNI_CANS }   /* iscans */,
-  {     0,  4996,  3685,  13,   3, UNI_JG__MANICHAEANMEM }   /* jg=manichaeanmem */,
-  {     1,  3351,   391,  13,   2, UNI_NV__26 }   /* numericvalue=26 */,
-  {     1,  6114,    35,   3,   4, UNI_AVST }   /* sc=avst */,
-  {     9,  7527,  2926,   3,  11, UNI_LB__IN }   /* lb=inseparable */,
-  {     0,  4355,   421,  17,   4, UNI_KHMR }   /* scriptextensions=khmr */,
-  {     1,  4355,  5825,  17,   4, UNI_SUND }   /* scriptextensions=sund */,
-  {     0,  5087,  1624,  10,   7, UNI_WB__LE }   /* wordbreak=aletter */,
-  {     0,  8244,  6505,  31,   5, UNI_CJKEXTC }   /* block=cjkunifiedideographsextensionc */,
-  {     2,  4355,  2401,  17,  11, UNI_NAND }   /* scriptextensions=nandinagari */,
-  {    11,  3474,  1948,   6,  10, UNI_INOLDSOGDIAN }   /* block=oldsogdian */,
-  {     0,   464,  4999,   2,  10, UNI_MANI }   /* ismanichaean */,
-  {    80,   265,   934,   5,   6, -UNI_CWKCF }   /* cwkcf=false */,
-  {     0,  7584,   940,  18,   3, UNI_DT__COM }   /* decompositiontype=com */,
-  {     0,   618,     0,   7,   0, UNI_ELYM }   /* elymaic */,
-  {    59,  7473,     0,  10,   0, UNI_XPOSIXALPHA }   /* alphabetic */,
-  {     0,  1796,  1951,   7,   4, UNI_SC__SOGD }   /* script=sogd */,
-  {     0,   275,   546,   4,   3, UNI_WB__EB }   /* gcb=ebg */,
-  {     1,  8244,  1899,   9,   7, UNI_CJKSYMBOLS }   /* block=cjksymbols */,
-  {     2,   464,  1561,   2,  10, UNI_PHNX }   /* isphoenician */,
-  {    30,  1796,   540,   7,   4, UNI_TANG }   /* script=tang */,
-  {     1,    36,   356,   2,   2, UNI_VS }   /* vs=y */,
-  {     0,  6799,   588,  24,   5, UNI_COMPEX }   /* fullcompositionexclusion=true */,
-  {     0,  1856,   934,  11,   6, -UNI_BIDIC }   /* bidicontrol=false */,
-  {     8,   313,  7416,   2,  14, UNI_PUA }   /* inprivateusearea */,
-  {     0,   536,   832,   3,   5, UNI_SB__ST }   /* sb=sterm */,
-  {     0,  1102,   530,   4,   6, UNI_RJNG }   /* scx=rejang */,
-  {     2,  7431,   347,  27,   3, UNI_CCC__118 }   /* canonicalcombiningclass=ccc118 */,
-  {     4,  1614,     0,  10,   0, UNI_WARA }   /* warangciti */,
-  {     1,  5718,   588,   4,   2, UNI_EMOD }   /* emod=t */,
-  {     2,  2485,    42,  10,   1, UNI_XPOSIXBLANK }   /* xposixblank */,
-  {     1,  8244,  6352,   9,  18, UNI_CJKRADICALSSUP }   /* block=cjkradicalssupplement */,
-  {     0,   464,  2324,   2,   8, UNI_ASSIGNED }   /* isassigned */,
-  {     3,  4291,  1906,  10,   9, UNI_LB__AI }   /* linebreak=ambiguous */,
-  {     2,    34,  4484,   1,  16, UNI_TITLE }   /* istitlecaseletter */,
-  {     0,  1011,   934,   2,   2, -UNI_CI }   /* ci=f */,
-  {     2,  3351,  1304,  13,   2, UNI_NV__20 }   /* numericvalue=20 */,
-  {     0,  1879,   321,   4,   5, UNI_INTAILE }   /* blk=taile */,
-  {     0,  2692,  1695,  10,   3, UNI_ARABICPFB }   /* blk=arabicpfb */,
-  {     1,  2726,  2986,   3,   2, UNI_PS }   /* gc=ps */,
-  {    37,  7208,   203,   9,   2, UNI_TITLE }   /* category=lt */,
-  {     0,    86,     0,   4,   0, UNI_GONG }   /* gong */,
-  {     3,  1102,  3637,   4,   4, UNI_LISU }   /* scx=lisu */,
-  {    46,  1856,     0,   5,   0, UNI_BIDIC }   /* bidic */,
-  {     2,   625,   356,   7,   2, UNI_EXTPICT }   /* extpict=y */,
-  {     1,  3722,   934,   4,   6, -UNI_MATH }   /* math=false */,
-  {    10,  1410,   585,   7,   2, UNI_CCC__22 }   /* ccc=ccc22 */,
-  {     0,  1796,   593,   7,   7, UNI_DSRT }   /* script=deseret */,
-  {     5,  7132,  7643,  15,  17, UNI_SUPPUAB }   /* blk=supplementaryprivateuseareab */,
-  {     0,  2726,  4500,   3,  15, UNI_UPPERCASELETTER }   /* gc=uppercaseletter */,
-  {     0,  3474,  6970,   6,  26, UNI_HALFANDFULLFORMS }   /* block=halfwidthandfullwidthforms */,
-  {     9,  4355,   112,  17,   4, UNI_KITS }   /* scriptextensions=kits */,
-  {     1,  7317,   143,  10,   2, UNI_BC__BN }   /* bidiclass=bn */,
-  {     0,  4122,   355,   8,   2, UNI_lower_values_index }   /* lowercase= */,
-  {     0,   265,   602,   5,   2, -UNI_CWKCF }   /* cwkcf=n */,
-  {     3,  3637,     0,   4,   0, UNI_LISU }   /* lisu */,
-  {     0,  7527,  3432,   3,   3, UNI_LB__ZWJ }   /* lb=zwj */,
-  {     1,  7527,  1739,   3,   8, UNI_LB__LF }   /* lb=linefeed */,
-  {     0,  6379,   718,  13,   3, UNI_JG__AIN }   /* joininggroup=ain */,
-  {     6,  4355,  2986,  17,  14, UNI_PHLP }   /* scriptextensions=psalterpahlavi */,
-  {    24,  1102,  1090,   4,   4, UNI_LINB }   /* scx=linb */,
-  {     8,   313,  1451,   2,  10, UNI_INDIVESAKURU }   /* indivesakuru */,
-  {    25,     2,  2891,   2,   3, UNI_CWT }   /* cwt=t */,
-  {     0,  7527,  3000,   3,   9, UNI_LB__QU }   /* lb=quotation */,
-  {     0,  2726,   252,   3,   5, UNI_XPOSIXCNTRL }   /* gc=cntrl */,
-  {     3,  4355,   453,  17,   4, UNI_MIAO }   /* scriptextensions=plrd */,
-  {    35,  1102,   783,   4,   7, UNI_OSMA }   /* scx=osmanya */,
-  {     0,  1879,  3839,   4,   6, UNI_INTANGUT }   /* blk=tangut */,
-  {   147,  6185,     0,  16,   0, UNI_NV__100 }   /* numericvalue=100 */,
-  {     1,   343,  3486,   4,  12, UNI_CCC__0 }   /* ccc=notreordered */,
-  {     2,  5825,     0,  19,   0, UNI_SUNDANESESUP }   /* sundanesesupplement */,
-  {     9,   313,   861,   2,   7, UNI_INTIBETAN }   /* intibetan */,
-  {     0,   608,  6573,   2,   3, UNI_IDC }   /* idc=t */,
-  {    12,   464,  1390,   2,  10, UNI_ASCII }   /* isbasiclatin */,
-  {    18,  1065,     0,   4,   0, UNI_NV__1 }   /* nv=1 */,
-  {    14,  6134,     0,  10,   0, UNI_GLAG }   /* glagolitic */,
-  {     0,  1879,   401,   4,   4, UNI_INMIAO }   /* blk=miao */,
-  {     1,   464,   366,   2,   2, UNI_SM }   /* issm */,
-  {     1,   464,   967,   2,   8, UNI_GUJR }   /* isgujarati */,
-  {    38,  1856,   356,  11,   4, UNI_BIDIC }   /* bidicontrol=yes */,
-  {     0,  6402,    40,  14,   2, UNI_SB__AT }   /* sentencebreak=at */,
-  {     1,  1879,  5340,   4,  13, UNI_DEVANAGARIEXT }   /* blk=devanagariext */,
-  {    72,   313,  3543,   2,  16, UNI_HIGHPUSURROGATES }   /* inhighpusurrogates */,
-  {     1,  5147,  1646,  11,   4, UNI_LATINEXTD }   /* block=latinextd */,
-  {    64,  3474,  5304,   6,  18, UNI_TAIXUANJING }   /* block=taixuanjingsymbols */,
-  {    24,  6402,   285,  14,   2, UNI_SB__XX }   /* sentencebreak=xx */,
-  {     2,  1410,  7173,   7,   2, UNI_CCC__28 }   /* ccc=ccc28 */,
-  {    20,  1879,  2217,   4,  12, UNI_INOLDHUNGARIAN }   /* blk=oldhungarian */,
-  {     1,  7688,  4984,  23,   6, UNI_JG__MANICHAEANLAMEDH }   /* joininggroup=manichaeanlamedh */,
-  {     1,   275,  3654,   4,  11, UNI_GCB__SM }   /* gcb=spacingmark */,
-  {     0,   464,  4827,   2,  15, UNI_BAMUMSUP }   /* isbamumsupplement */,
-  {     0,  5907,     0,   4,   0, UNI_SINH }   /* sinh */,
-  {     1,  4996,   603,  12,   4, UNI_JG__MANICHAEANONE }   /* jg=manichaeanone */,
-  {     4,  2392,  2603,   3,  12, UNI_MISCTECHNICAL }   /* inmisctechnical */,
-  {     0,  4450,  4442,  14,   9, UNI_CYRILLICEXTB }   /* block=cyrillicextendedb */,
-  {     1,  1465,   355,   4,   5, UNI_XPOSIXSPACE }   /* space=yes */,
-  {     1,  4355,   433,  17,   4, UNI_NKO }   /* scriptextensions=nkoo */,
-  {    30,   313,  4582,   2,  11, UNI_BOPOMOFOEXT }   /* inbopomofoext */,
-  {     0,   464,  5103,   2,   2, UNI_CASEDLETTER }   /* isl_ */,
-  {     9,  7208,  3236,   9,  13, UNI_ME }   /* category=enclosingmark */,
-  {     0,  1856,   588,   5,   5, UNI_BIDIC }   /* bidic=true */,
-  {     1,  5844,  1818,   5,   8, UNI_SUPERANDSUB }   /* issuperandsub */,
-  {     0,  7605,     0,  20,   0, UNI_GCB__L }   /* hangulsyllabletype=l */,
-  {    39,  6025,  6878,   9,  15, UNI_GEOMETRICSHAPESEXT }   /* block=geometricshapesext */,
-  {     2,  5586,  3654,  21,  11, UNI_GCB__SM }   /* graphemeclusterbreak=spacingmark */,
-  {    12,  4758,     0,  18,   0, UNI_ZP }   /* paragraphseparator */,
-  {     4,   464,  3823,   2,  16, UNI_STERM }   /* issentenceterminal */,
-  {     2,  6379,     0,  13,   0, UNI_jg_values_index }   /* joininggroup= */,
-  {     0,  3669,  1849,  12,   3, UNI_JG__MALAYALAMLLA }   /* jg=malayalamlla */,
-  {     1,   464,  1400,   2,  10, UNI_BOXDRAWING }   /* isboxdrawing */,
-  {     1,   464,  4092,   2,  12, UNI_DIACRITICALS }   /* isdiacriticals */,
-  {    48,  6944,   293,  24,   1, UNI_CCC__0 }   /* canonicalcombiningclass=0 */,
-  {     1,  4662,  8551,  12,  21, UNI_SUPMATHOPERATORS }   /* supplementalmathematicaloperators */,
-  {     0,  5844,  7643,  13,  17, UNI_SUPPUAB }   /* issupplementaryprivateuseareab */,
-  {   187,  1845,     0,  11,   0, UNI_YISYLLABLES }   /* yisyllables */,
-  {     1,  4776,  5620,  16,   4, -UNI__PERL_PATWS }   /* patternwhitespace=no */,
-  {   145,  3053,   588,  13,   5, UNI_POSIXXDIGIT }   /* asciihexdigit=true */,
-  {     1,  1796,    43,   7,   4, UNI_BHKS }   /* script=bhks */,
-  {     2,  6112,  6613,  14,  10, UNI_INSC__CONSONANTHEADLETTER }   /* insc=consonantheadletter */,
-  {     0,  1075,  6199,   4,   5, UNI_NV__200000 }   /* nv=200000 */,
-  {    32,  6114,  5727,   3,  21, UNI_PRTI }   /* sc=inscriptionalparthian */,
-  {     4,   117,     0,   2,   0, UNI_XPOSIXDIGIT }   /* nd */,
-  {     0,  7431,  2138,  28,   2, UNI_WB__EB }   /* canonicalcombiningclass=ccc133 */,
-  {     1,  3595,   129,  11,   3, UNI_LATINEXTF }   /* latinextendedf */,
-  {    32,  1977,  4122,   5,   5, UNI_POSIXLOWER }   /* posixlower */,
-  {     3,  8276,  3217,  31,   6, UNI_INSC__CONSONANTKILLER }   /* indicsyllabiccategory=consonantkiller */,
-  {     2,  5136,  3719,   5,  15, UNI_MISCMATHSYMBOLSA }   /* blk=miscmathsymbolsa */,
-  {     5,  1915,     0,  12,   0, UNI_GRBASE }   /* graphemebase */,
-  {    20,  1487,     0,   8,   0, UNI_JAMOEXTA }   /* jamoexta */,
-  {     0,  4355,   244,  17,   4, UNI_ZYYY }   /* scriptextensions=zyyy */,
-  {     1,  1382,   601,   7,   4, -UNI_XIDS }   /* xidstart=no */,
-  {     5,  3823,   602,  16,   2, -UNI_STERM }   /* sentenceterminal=n */,
-  {     8,  5718,   934,   4,   2, -UNI_EMOD }   /* emod=f */,
-  {     1,  3474,    36,   6,   2, UNI_INVS }   /* block=vs */,
-  {     0,  7201,   366,  16,   2, UNI_SM }   /* generalcategory=sm */,
-  {     5,  1879,  6594,   4,   6, UNI_INBRAHMI }   /* blk=brahmi */,
-  {     1,   464,   196,   2,   4, UNI_TAGS }   /* istags */,
-  {     3,   373,  6635,   3,   8, UNI_LO }   /* otherletter */,
-  {    77,  3474,  6728,   6,  21, UNI_MEETEIMAYEKEXT }   /* block=meeteimayekextensions */,
-  {     1,  4783,  5620,   9,   4, -UNI_XPOSIXSPACE }   /* whitespace=no */,
-  {     4,  1065,   769,   4,   3, UNI_NV__15_SLASH_2 }   /* nv=15/2 */,
-  {    46,  2678,  4783,   3,  10, UNI_BC__WS }   /* bc=whitespace */,
-  {     3,   343,  1303,   5,   2, UNI_CCC__132 }   /* ccc=132 */,
-  {     0,   464,  1027,   2,   4, UNI_YEZI }   /* isyezi */,
-  {    38,   270,   356,   3,   4, UNI_CWT }   /* cwt=yes */,
-  {     3,  1198,   850,   4,   3, UNI_GRAN }   /* grantha */,
-  {     0,  4308,   602,  14,   3, UNI_NFKDQC__N }   /* nfkdquickcheck=no */,
-  {     1,  7584,  1127,  18,   3, UNI_DT__FIN }   /* decompositiontype=fin */,
-  {     0,  4901,   355,  16,   5, UNI_EBASE }   /* emojimodifierbase=yes */,
-  {     1,   343,  3363,   3,   3, UNI_CCC__23 }   /* ccc=23 */,
-  {    17,  7201,  3223,  16,  13, UNI_XPOSIXDIGIT }   /* generalcategory=decimalnumber */,
-  {     0,  3474,  1198,   6,   7, UNI_INGRANTHA }   /* block=grantha */,
-  {     5,   464,   441,   2,   4, UNI_OLCK }   /* isolck */,
-  {    22,   168,   170,   2,   2, UNI_COPT }   /* qaac */,
-  {     1,  2496,  4152,   3,  14, UNI_JG__HAMZAONHEHGOAL }   /* jg=hamzaonhehgoal */,
-  {    21,  3474,   301,   6,   5, UNI_INORIYA }   /* block=oriya */,
-  {     5,   600,  6944,   3,   9, UNI_DT__CAN }   /* dt=canonical */,
-  {     0,   313,   429,   2,   3, UNI_INMRO }   /* inmro */,
-  {     0,  1879,  7791,   4,  32, UNI_INIDC }   /* blk=ideographicdescriptioncharacters */,
-  {     8,  4122,   587,   8,   6, UNI_XPOSIXLOWER }   /* lowercase=true */,
-  {     0,  1879,   691,   4,   5, UNI_INBATAK }   /* blk=batak */,
-  {    56,    34,  1890,   1,   4, UNI_EXT }   /* isext */,
-  {     0,  1702,    32,   3,   3, UNI_ARMI }   /* isarmi */,
-  {     2,  4355,   216,  17,   4, UNI_TIBT }   /* scriptextensions=tibt */,
-  {    24,  6379,  6666,  13,  21, UNI_JG__HANIFIROHINGYAKINNAYA }   /* joininggroup=hanifirohingyakinnaya */,
-  {     0,  1796,  2041,   7,   4, UNI_MEND }   /* script=mend */,
-  {     0,   449,     0,   4,   0, UNI_PHLI }   /* phli */,
-  {     8,  4291,  5718,  10,   9, UNI_EMOD }   /* linebreak=emodifier */,
-  {     4,  1879,  6439,   4,  13, UNI_ZNAMENNYMUSIC }   /* blk=znamennymusic */,
-  {    21,  5056,     0,  19,   0, UNI_OTTOMANSIYAQNUMBERS }   /* ottomansiyaqnumbers */,
-  {     0,   464,   453,   2,   4, UNI_MIAO }   /* isplrd */,
-  {    40,   313,  5340,   2,  10, UNI_INDEVANAGARI }   /* indevanagari */,
-  {     2,  3351,   396,  13,   2, UNI_NV__15 }   /* numericvalue=15 */,
-  {    67,  1102,   661,   4,   5, UNI_DOGR }   /* scx=dogra */,
-  {     1,   464,  3053,   2,   5, UNI_ASCII }   /* isascii */,
-  {     0,  7880,  6352,   5,  18, UNI_CJKRADICALSSUP }   /* iscjkradicalssupplement */,
-  {    89,  1236,  5138,   4,   9, UNI_INMYANMAR }   /* block=myanmar */,
-  {     4,   644,  3559,   4,  12, UNI_GCB__T }   /* hst=trailingjamo */,
-  {     1,  3450,  5797,  12,   9, UNI_CYRILLICEXTA }   /* blk=cyrillicextendeda */,
-  {     0,  1102,   991,   4,   6, UNI_HATR }   /* scx=hatran */,
-  {     1,  7660,   356,  17,   2, UNI_VS }   /* variationselector=y */,
-  {     4,   313,   522,   2,   2, UNI_IN__7 }   /* in=7 */,
-  {   129,  7018,  3722,   8,   4, UNI_ARABICMATH }   /* inarabicmath */,
-  {     3,   464,  6103,   2,   9, UNI_XSUX }   /* iscuneiform */,
-  {    16,  7740,   934,  11,   6, -UNI_IDEO }   /* ideographic=false */,
-  {     0,   939,   356,   5,   4, UNI_ECOMP }   /* ecomp=yes */,
-  {     4,  4355,   686,  17,   5, UNI_TAKR }   /* scriptextensions=takri */,
-  {    80,   895,   292,   6,   2, UNI_AGE__13 }   /* age=v130 */,
-  {     1,  3885,     0,  17,   0, UNI_AGHB }   /* caucasianalbanian */,
-  {    59,  7317,  6264,  10,   3, UNI_BC__PDI }   /* bidiclass=pdi */,
-  {     7,  3474,  4827,   6,   8, UNI_BAMUMSUP }   /* block=bamumsup */,
-  {     4,    15,  2665,   1,  13, UNI_ANCIENTSYMBOLS }   /* ancientsymbols */,
-  {     3,  1796,   144,   7,   4, UNI_NEWA }   /* script=newa */,
-  {     3,  2981,  1303,   4,   2, UNI_IN__3_DOT_2 }   /* in=v32 */,
-  {     0,   313,   991,   2,   6, UNI_INHATRAN }   /* inhatran */,
-  {     5,  2253,  6214,  11,   3, UNI_IN__12_DOT_1 }   /* presentin=12.1 */,
-  {     4,  1879,   825,   4,   7, UNI_SHAW }   /* blk=shavian */,
-  {     2,  6112,  2573,   5,   6, UNI_LB__ZWJ }   /* insc=joiner */,
-  {     0,  1102,    71,   4,   4, UNI_CPRT }   /* scx=cprt */,
-  {     7,  1717,   327,   3,   4, UNI_VSSUP }   /* isvssup */,
-  {    10,  3763,   392,  15,   1, UNI_NV__5_SLASH_6 }   /* numericvalue=5/6 */,
-  {     1,   313,   301,   2,   5, UNI_INORIYA }   /* inoriya */,
-  {     0,  1102,  1326,   4,   9, UNI_ORKH }   /* scx=oldturkic */,
-  {     0,  7527,   287,   3,   2, UNI_LB__NU }   /* lb=nu */,
-  {   128,   880,     0,   7,   0, UNI_ZZZZ }   /* unknown */,
-  {     4,  2392,   743,   3,   6, UNI_INMANDAIC }   /* inmandaic */,
-  {    32,   313,  6134,   2,  10, UNI_INGLAGOLITIC }   /* inglagolitic */,
-  {     0,   265,     0,   5,   0, UNI_CWKCF }   /* cwkcf */,
-  {    44,  1879,    36,   4,   2, UNI_INVS }   /* blk=vs */,
-  {     0,  3641,  4538,  10,  13, UNI_SUPPUNCTUATION }   /* supplementalpunctuation */,
-  {     0,     0,  2579,   1,  12, UNI_LOWSURROGATES }   /* lowsurrogates */,
-  {     6,  3474,   847,   6,   7, UNI_INTAITHAM }   /* block=taitham */,
-  {     0,  1879,  1887,   4,   8, UNI_UCASEXTA }   /* blk=ucasexta */,
-  {     5,  3474,  4750,   6,   8, UNI_DINGBATS }   /* block=dingbats */,
-  {     4,   464,  2217,   2,  12, UNI_HUNG }   /* isoldhungarian */,
-  {     0,  1102,  5631,   4,   5, UNI_GREK }   /* scx=greek */,
-  {     0,  6114,   861,   3,   7, UNI_TIBT }   /* sc=tibetan */,
-  {     0,  4433,  4275,   5,  16, UNI_LETTERLIKESYMBOLS }   /* blk=letterlikesymbols */,
-  {     0,  3474,  4827,   6,  15, UNI_BAMUMSUP }   /* block=bamumsupplement */,
-  {     0,   464,  3058,   2,   8, UNI_XPOSIXXDIGIT }   /* ishexdigit */,
-  {     0,  1991,  2539,  12,  10, UNI_JT__U }   /* joiningtype=nonjoining */,
-  {     0,  1991,   345,   4,   2, UNI_joinc_values_index }   /* joinc= */,
-  {     0,  6114,   461,   3,   4, UNI_SC__QAAI }   /* sc=qaai */,
-  {     0,  3595,     0,   9,   0, UNI_LATINEXTE }   /* latinexte */,
-  {     6,   124,     0,   4,   0, UNI_LATN }   /* latn */,
-  {     0,  7823,  6177,   4,   8, UNI_CJKSYMBOLS }   /* incjksymbols */,
-  {     7,  5099,  7094,   6,  21, UNI__PERL_IS_IN_MULTI_CHAR_FOLD }   /* _perl_is_in_multi_char_fold */,
-  {     0,  6944,   584,  23,   3, UNI_CCC__22 }   /* canonicalcombiningclass=22 */,
-  {     1,  8007,     5,   7,   4, UNI_CJKEXTG }   /* blk=cjkextg */,
-  {     0,   313,  8078,   2,  18, UNI_IDEOGRAPHICSYMBOLS }   /* inideographicsymbols */,
-  {     1,  3474,  7403,   6,  28, UNI_SUPPUAA }   /* block=supplementaryprivateuseareaa */,
-  {     1,  6112,  1958,   5,   7, UNI_INSC__VISARGA }   /* insc=visarga */,
-  {     0,  4355,  5806,  17,   9, UNI_MONG }   /* scriptextensions=mongolian */,
-  {     0,  6112,  2344,   5,   5, UNI_INSC__VOWEL }   /* insc=vowel */,
-  {     4,  7201,   252,  16,   5, UNI_XPOSIXCNTRL }   /* generalcategory=cntrl */,
-  {    30,  3474,  5727,   6,  21, UNI_ININSCRIPTIONALPARTHIAN }   /* block=inscriptionalparthian */,
-  {     0,  2275,   934,   3,   6, -UNI_IDC }   /* idc=false */,
-  {     2,  2474,  7761,   3,  30, UNI_MATHALPHANUM }   /* ismathematicalalphanumericsymbols */,
-  {    24,  3351,  2111,  13,   9, UNI_NV__3_SLASH_16 }   /* numericvalue=1.875e-01 */,
-  {     8,  7201,  2728,  15,   6, UNI_C }   /* generalcategory=other */,
-  {     1,  2973,   356,   5,   4, UNI_EPRES }   /* epres=yes */,
-  {     1,  7317,  5428,  10,  18, UNI_BC__ET }   /* bidiclass=europeanterminator */,
-  {     4,   464,  4500,   2,   5, UNI_XPOSIXUPPER }   /* isupper */,
-  {     1,  3367,  1300,  14,   3, UNI_NV__4000 }   /* numericvalue=4000 */,
-  {     1,  4355,   574,  17,   7, UNI_AVST }   /* scriptextensions=avestan */,
-  {    81,    58,  3453,   2,   9, UNI_SC__CYRL }   /* sc=cyrillic */,
-  {    88,  5886,   356,  21,   2, UNI__PERL_NCHAR }   /* noncharactercodepoint=y */,
-  {   161,  1102,   301,   4,   5, UNI_ORYA }   /* scx=oriya */,
-  {     0,    19,  3805,   2,   3, UNI_AGE__8 }   /* age=8 */,
-  {     1,   313,  2428,   2,  13, UNI_IPAEXT }   /* inipaextensions */,
-  {     2,  4291,  2581,  10,   9, UNI_LB__SG }   /* linebreak=surrogate */,
-  {     1,  1102,  1807,   4,  11, UNI_SORA }   /* scx=sorasompeng */,
-  {     0,  1410,   585,   8,   2, UNI_CCC__122 }   /* ccc=ccc122 */,
-  {     1,  5481,   934,  21,   6, -UNI_CWCF }   /* changeswhencasefolded=false */,
-  {     0,   464,    78,   2,   4, UNI_CYRL }   /* iscyrl */,
-  {     0,  1102,  1241,   4,   4, UNI_PHAG }   /* scx=phag */,
-  {     0,   464,   728,   2,   7, UNI_KALI }   /* iskayahli */,
-  {     4,  1395,  4464,   5,   4, UNI_LATINEXTC }   /* latinextc */,
-  {     2,  4355,  1508,  17,   4, UNI_UGAR }   /* scriptextensions=ugar */,
-  {     0,  6687,   723,  22,   3, UNI_JG__MALAYALAMNNA }   /* joininggroup=malayalamnna */,
-  {    87,  3474,  3053,   6,   5, UNI_ASCII }   /* block=ascii */,
-  {     0,  6803,   934,  20,   6, -UNI_CE }   /* compositionexclusion=false */,
-  {     2,   593,     0,   7,   0, UNI_DSRT }   /* deseret */,
-  {     1,  7317,   191,  10,   2, UNI_BC__WS }   /* bidiclass=ws */,
-  {     0,  4355,  1311,  17,   4, UNI_ITAL }   /* scriptextensions=ital */,
-  {    17,  8007,  1491,   7,   4, UNI_CJKEXTA }   /* blk=cjkexta */,
-  {     3,  2205,  2617,   4,   8, UNI_NV__4_SLASH_5 }   /* nv=8.000e-01 */,
-  {     2,  6944,   294,  25,   1, UNI_CCC__24 }   /* canonicalcombiningclass=24 */,
-  {     1,  1796,   417,   7,   3, UNI_SC__HAN }   /* script=han */,
-  {     0,  6803,   934,  20,   2, -UNI_CE }   /* compositionexclusion=f */,
-  {     0,  3474,  7500,   6,  27, UNI_ANCIENTGREEKMUSIC }   /* block=ancientgreekmusicalnotation */,
-  {     0,  1796,  1927,   7,  12, UNI_SC__GONG }   /* script=gunjalagondi */,
-  {     1,   464,   445,   2,   4, UNI_ORKH }   /* isorkh */,
-  {    20,  4291,  3297,  10,  12, UNI_LB__IS }   /* linebreak=infixnumeric */,
-  {     2,   464,  5825,   2,  12, UNI_SUNDANESESUP }   /* issundanesesup */,
-  {     1,  1065,  3807,   5,   2, UNI_NV__1_SLASH_80 }   /* nv=1/80 */,
-  {    18,   940,   934,   6,   6, -UNI_COMPEX }   /* compex=false */,
-  {     1,  6112,  2420,   5,   8, UNI_INSC__TONEMARK }   /* insc=tonemark */,
-  {     0,   343,  2679,   2,   7, UNI_CCC__R }   /* ccc=right */,
-  {     5,   464,  5631,   2,   5, UNI_GREK }   /* isgreek */,
-  {     1,   464,  6728,   2,  21, UNI_MEETEIMAYEKEXT }   /* ismeeteimayekextensions */,
-  {     0,  2353,  1895,   3,  11, UNI_CHESSSYMBOLS }   /* inchesssymbols */,
-  {     0,  4500,   355,   8,   3, UNI_XPOSIXUPPER }   /* uppercase=y */,
-  {     0,  8470,  2680,  19,   2, UNI_VO__R }   /* verticalorientation=r */,
-  {     7,  3351,  2616,  13,   9, UNI_NV__1_SLASH_2 }   /* numericvalue=5.000e-01 */,
-  {    15,  2355,  1037,   8,   4, UNI_CYRILLICEXTB }   /* cyrillicextb */,
-  {     0,   296,  6197,   2,   8, UNI_NV__1000000 }   /* nv=1000000 */,
-  {     4,  1879,  2771,   4,  12, UNI_KHMERSYMBOLS }   /* blk=khmersymbols */,
-  {     0,  8533,  7238,   7,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* block=symbolsandpictographsexta */,
-  {     1,  2253,  2649,  10,   3, UNI_IN__6_DOT_1 }   /* presentin=6.1 */,
-  {     0,  7182,  6334,   3,  18, UNI_CJKCOMPATFORMS }   /* cjkcompatibilityforms */,
-  {     0,  3474,   326,   6,   5, UNI_VSSUP }   /* block=vssup */,
-  {     6,  6114,   611,   3,   7, UNI_ELBA }   /* sc=elbasan */,
-  {     0,  5865,   602,  21,   3, -UNI_LOE }   /* logicalorderexception=no */,
-  {     0,  6687,   532,  22,   2, UNI_JG__MALAYALAMJA }   /* joininggroup=malayalamja */,
-  {     3,   464,   735,   2,   7, UNI_LINA }   /* islineara */,
-  {     1,   555,   140,   4,   2, UNI_IN__NA }   /* age=na */,
-  {     4,  1516,  5797,   6,   9, UNI_KANAEXTA }   /* iskanaextendeda */,
-  {     0,   464,   270,   2,   3, UNI_CWT }   /* iscwt */,
-  {   177,  1382,   588,   4,   5, UNI_XIDS }   /* xids=true */,
-  {    18,  1826,     0,   4,   0, UNI_SYLO }   /* sylo */,
-  {     1,  1102,   417,   4,   3, UNI_HAN }   /* scx=han */,
-  {     2,   257,   934,   4,   2, -UNI_CWCF }   /* cwcf=f */,
-  {     0,  1102,    27,   4,   4, UNI_AHOM }   /* scx=ahom */,
-  {     0,   464,   229,   2,   2, UNI_PE }   /* ispe */,
-  {    24,  4450,  6142,  12,   5, UNI_CYRILLICSUP }   /* block=cyrillicsup */,
-  {     6,   343,   299,   5,   1, UNI_CCC__19 }   /* ccc=19 */,
-  {     1,  1879,  6919,   4,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* blk=symbolsforlegacycomputing */,
-  {     0,  2981,   292,   5,   2, UNI_IN__13 }   /* in=v130 */,
-  {    10,  3748,   299,  14,   1, UNI_NV__19 }   /* numericvalue=19 */,
-  {    12,   464,  5825,   2,   4, UNI_SUND }   /* issund */,
-  {     2,  1796,  4998,   6,   5, UNI_SC__MANI }   /* script=mani */,
-  {    23,   581,  2138,   5,   2, UNI_CCC__DB }   /* ccc=233 */,
-  {    64,    94,    11,   3,   1, UNI_GUJR }   /* gujr */,
-  {     0,  1879,  1927,   4,  12, UNI_INGUNJALAGONDI }   /* blk=gunjalagondi */,
-  {     1,    19,  3378,   2,   3, UNI_AGE__4 }   /* age=4 */,
-  {     1,  4450,  7403,  14,  13, UNI_CYRILLICSUP }   /* block=cyrillicsupplementary */,
-  {    36,  4122,   355,   8,   3, UNI_XPOSIXLOWER }   /* lowercase=y */,
-  {     7,  4355,   637,  17,   7, UNI_HANO }   /* scriptextensions=hanunoo */,
-  {     4,  6114,  1320,   3,   4, UNI_SC__PERM }   /* sc=perm */,
-  {     8,  7527,  4261,   3,  14, UNI_LB__PO }   /* lb=postfixnumeric */,
-  {     3,  2205,  1300,   4,   3, UNI_NV__8000 }   /* nv=8000 */,
-  {     1,  7740,   934,  11,   2, -UNI_IDEO }   /* ideographic=f */,
-  {     0,    75,   356,   3,   2, UNI_CWU }   /* cwu=y */,
-  {     5,   536,   844,   3,   2, UNI_SB__LO }   /* sb=lo */,
-  {     5,  7208,   317,   9,   4, UNI_M }   /* category=mark */,
-  {     4,  1102,   429,   4,   3, UNI_MRO }   /* scx=mro */,
-  {     0,   686,     0,   4,   0, UNI_TAKR }   /* takr */,
-  {     0,   313,  1390,   2,  10, UNI_ASCII }   /* inbasiclatin */,
-  {     0,   128,     0,   2,   0, UNI_ME }   /* me */,
-  {     1,  5147,  4629,  10,   2, UNI_LATIN1 }   /* block=latin1 */,
-  {     8,  1879,  2740,   4,   6, UNI_INCOPTIC }   /* blk=coptic */,
-  {    69,   343,   772,   4,   2, UNI_CCC__17 }   /* ccc=17 */,
-  {     5,  2961,   593,  12,   2, UNI_XPOSIXDIGIT }   /* numerictype=de */,
-  {     2,  2392,  3719,   3,  15, UNI_MISCMATHSYMBOLSA }   /* inmiscmathsymbolsa */,
-  {     2,  4355,    78,  17,   4, UNI_CYRL }   /* scriptextensions=cyrl */,
-  {     0,  5099,  3044,   6,   9, UNI__PERL_QUOTEMETA }   /* _perl_quotemeta */,
-  {     0,  3622,   799,   3,   3, UNI_LANA }   /* islana */,
-  {    42,  7584,  4533,  18,   4, UNI_DT__INIT }   /* decompositiontype=init */,
-  {     2,  6114,  1529,   3,   4, UNI_KHAR }   /* sc=khar */,
-  {    64,  4355,   814,  17,   4, UNI_QAAI }   /* scriptextensions=zinh */,
-  {     2,  7208,  4077,   9,  15, UNI_PD }   /* category=dashpunctuation */,
-  {    33,   409,   356,   2,   2, UNI_DI }   /* di=y */,
-  {     0,  2961,   602,  11,   5, UNI_NV__NAN }   /* numerictype=none */,
-  {     0,  1702,  1141,   8,   3, UNI_ARABICPFA }   /* isarabicpfa */,
-  {   132,  2678,   334,   3,   3, UNI_BC__PDF }   /* bc=pdf */,
-  {     4,  7338,  5970,  21,   8, UNI_BC__RLO }   /* bidiclass=righttoleftoverride */,
-  {     0,   464,    82,   2,   4, UNI_DSRT }   /* isdsrt */,
-  {     0,  1075,   518,   4,   2, UNI_NV__2_SLASH_5 }   /* nv=2/5 */,
-  {     2,  2310,   355,  12,   2, UNI_ci_values_index }   /* caseignorable= */,
-  {     2,    14,     0,   1,   0, UNI_M }   /* m */,
-  {     1,   296,  1299,   3,   3, UNI_NV__600 }   /* nv=600 */,
-  {     0,  7148,   585,  25,   2, UNI_CCC__122 }   /* canonicalcombiningclass=122 */,
-  {     0,  6114,   686,   3,   5, UNI_SC__TAKR }   /* sc=takri */,
-  {     0,   840,     0,   7,   0, UNI_TGLG }   /* tagalog */,
-  {     0,   464,  4827,   2,   4, UNI_BAMU }   /* isbamu */,
-  {   193,  4433,  1037,   9,   4, UNI_LATINEXTB }   /* blk=latinextb */,
-  {     2,  1887,  1890,   3,   4, UNI_UCASEXT }   /* ucasext */,
-  {     3,   600,  3444,   3,   6, UNI_DT__SQR }   /* dt=square */,
-  {    58,  1796,     0,   7,   0, UNI_sc_values_index }   /* script= */,
-  {     1,  4355,  6594,  17,   4, UNI_BRAH }   /* scriptextensions=brah */,
-  {     1,  5087,  1837,  10,   5, UNI_WB__EB }   /* wordbreak=ebase */,
-  {     6,  2981,   891,   5,   2, UNI_IN__11 }   /* in=v110 */,
-  {     0,  3474,  5631,   6,   5, UNI_INGREEK }   /* block=greek */,
-  {    22,  3462,  7851,   5,  20, UNI_ENCLOSEDALPHANUM }   /* blk=enclosedalphanumerics */,
-  {     0,    14,   962,   1,   3, UNI_MEND }   /* mend */,
-  {     0,  1102,  1003,   4,   4, UNI_LEPC }   /* scx=lepc */,
-  {     1,   313,  1220,   2,   7, UNI_INMAKASAR }   /* inmakasar */,
-  {     0,  6944,  2702,  24,   4, UNI_CCC__6 }   /* canonicalcombiningclass=hanr */,
-  {   168,  3974,   356,  17,   2, UNI_IDSB }   /* idsbinaryoperator=y */,
-  {     7,   259,     0,   2,   0, UNI_CF }   /* cf */,
-  {     1,    34,  1440,   1,  11, UNI_DEP }   /* isdeprecated */,
-  {     1,  6944,   349,  24,   2, UNI_CCC__84 }   /* canonicalcombiningclass=84 */,
-  {     1,  8470,  1607,  20,   7, UNI_VO__U }   /* verticalorientation=upright */,
-  {     0,  1082,     0,   4,   0, UNI_XPOSIXWORD }   /* word */,
-  {     0,   464,  5727,   2,  21, UNI_PRTI }   /* isinscriptionalparthian */,
-  {     5,  1102,  1344,   4,   9, UNI_PALM }   /* scx=palmyrene */,
-  {     2,   464,   844,   2,   2, UNI_LO }   /* islo */,
-  {     7,  3672,     0,   9,   0, UNI_MLYM }   /* malayalam */,
-  {   217,   464,   628,   2,   2, UNI_PI }   /* ispi */,
-  {     1,  1796,   228,   7,   4, UNI_XPEO }   /* script=xpeo */,
-  {     2,  1102,   686,   4,   4, UNI_TAKR }   /* scx=takr */,
-  {     0,  5888,     0,   5,   0, UNI__PERL_NCHAR }   /* nchar */,
-  {     9,  1867,   356,  12,   4, UNI_BIDIM }   /* bidimirrored=yes */,
-  {     1,  1796,   445,   7,   4, UNI_ORKH }   /* script=orkh */,
-  {     0,    12,   602,   3,   3, -UNI_PCM }   /* pcm=no */,
-  {     3,  7201,  3947,  16,  14, UNI_ZS }   /* generalcategory=spaceseparator */,
-  {     0,  4433,  1646,   9,   4, UNI_LATINEXTD }   /* blk=latinextd */,
-  {     2,  3474,  1220,   6,   7, UNI_INMAKASAR }   /* block=makasar */,
-  {     8,  1879,  5787,   4,  19, UNI_JAMOEXTA }   /* blk=hanguljamoextendeda */,
-  {     2,     5,   588,   3,   2, UNI_EXT }   /* ext=t */,
-  {     0,   313,  7732,   2,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* inenclosedideographicsupplement */,
-  {     5,  1856,   934,   5,   2, -UNI_BIDIC }   /* bidic=f */,
-  {    32,  4740,     0,  18,   0, UNI_ORNAMENTALDINGBATS }   /* ornamentaldingbats */,
-  {     8,  7527,   285,   3,   2, UNI_LB__XX }   /* lb=xx */,
-  {     0,  1704,  1037,   6,   4, UNI_ARABICEXTB }   /* arabicextb */,
-  {     1,   464,  8599,   2,  18, UNI_CANS }   /* iscanadianaboriginal */,
-  {   145,    15,  5625,   1,  18, UNI_ANCIENTGREEKNUMBERS }   /* ancientgreeknumbers */,
-  {     1,   313,  4107,   2,   6, UNI_INHANGUL }   /* inhangul */,
-  {     2,  6011,  5769,   7,  15, UNI_ENCLOSEDALPHANUM }   /* block=enclosedalphanum */,
-  {     0,  3474,  6833,   6,  14, UNI_BYZANTINEMUSIC }   /* block=byzantinemusic */,
-  {     0,   257,   588,   4,   2, UNI_CWCF }   /* cwcf=t */,
-  {     4,   233,  4388,   2,  15, UNI_SUTTONSIGNWRITING }   /* suttonsignwriting */,
-  {     0,  3748,     0,  14,   0, UNI_NV__1 }   /* numericvalue=1 */,
-  {     0,  7828,   934,  16,   2, -UNI_UIDEO }   /* unifiedideograph=f */,
-  {     2,  3474,  1021,   6,   6, UNI_INWANCHO }   /* block=wancho */,
-  {     0,  2974,   891,  12,   2, UNI_IN__11 }   /* presentin=v110 */,
-  {     2,  4291,  2016,  10,   2, UNI_GCB__V }   /* linebreak=jv */,
-  {     3,  2353,  4457,   3,  11, UNI_CYRILLICEXTC }   /* incyrillicextc */,
-  {   218,  2961,   409,  12,   2, UNI_NT__DI }   /* numerictype=di */,
-  {    26,  6114,  3381,   3,  15, UNI_NARB }   /* sc=oldnortharabian */,
-  {     1,  1796,   783,   7,   4, UNI_OSMA }   /* script=osma */,
-  {     3,  1102,   496,   4,   4, UNI_KHOJ }   /* scx=khoj */,
-  {     0,   464,  1289,   2,   9, UNI_TALU }   /* isnewtailue */,
-  {     5,  4355,   818,  17,   7, UNI_SHRD }   /* scriptextensions=sharada */,
-  {     0,   901,     0,   8,   0, UNI_ARMN }   /* armenian */,
-  {    74,  6379,  4198,  13,   4, UNI_JG__TETH }   /* joininggroup=teth */,
-  {     1,  1975,     0,   4,   0, UNI_PO }   /* ispo */,
-  {    66,  2353,  8150,   3,  24, UNI_DIACRITICALS }   /* incombiningdiacriticalmarks */,
-  {    28,  3779,  1072,  14,   3, UNI_NV__7_SLASH_12 }   /* numericvalue=7/12 */,
-  {     1,   464,  1668,   2,  11, UNI_DOMINO }   /* isdominotiles */,
-  {     0,  4291,  7044,  10,  13, UNI_LB__CM }   /* linebreak=combiningmark */,
-  {     1,  1102,   794,   4,   4, UNI_KALI }   /* scx=kali */,
-  {    67,   313,   951,   2,   8, UNI_INDUPLOYAN }   /* induployan */,
-  {     5,  1102,  1362,   4,   9, UNI_SAMR }   /* scx=samaritan */,
-  {    67,  5322,  5329,   7,  11, UNI_CHEROKEESUP }   /* cherokeesupplement */,
-  {    18,  1796,   783,   7,   7, UNI_OSMA }   /* script=osmanya */,
-  {     2,   464,     2,   2,   3, UNI_CWL }   /* iscwl */,
-  {     7,  1796,   574,   7,   7, UNI_AVST }   /* script=avestan */,
-  {     8,  3622,  1491,   7,   4, UNI_LATINEXTA }   /* islatinexta */,
-  {    16,  1174,  1178,   4,   5, UNI_EA__NA }   /* ea=narrow */,
-  {     0,  1102,   496,   4,   6, UNI_KHOJ }   /* scx=khojki */,
-  {     1,  7201,  4758,  16,  18, UNI_ZP }   /* generalcategory=paragraphseparator */,
-  {     0,  3474,  7732,   6,  22, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* block=enclosedideographicsup */,
-  {     3,  7431,  2138,  27,   2, UNI_CCC__33 }   /* canonicalcombiningclass=ccc33 */,
-  {     1,  4662,  7643,  11,  17, UNI_SUPPUAB }   /* supplementaryprivateuseareab */,
-  {     0,  1796,  5661,   7,  19, UNI_MERO }   /* script=meroitichieroglyphs */,
-  {     1,   313,   691,   2,   5, UNI_INBATAK }   /* inbatak */,
-  {     0,  8276,  8454,  22,  16, UNI_INSC__VOWELINDEPENDENT }   /* indicsyllabiccategory=vowelindependent */,
-  {     0,  6379,  2688,  14,   3, UNI_JG__ALEF }   /* joininggroup=alef */,
-  {     0,  7201,  8289,   7,  11, UNI_CO }   /* generalcategory=co */,
-  {     0,  1102,  1785,   4,  11, UNI_HMNG }   /* scx=pahawhhmong */,
-  {     1,  1879,   593,   4,   7, UNI_DSRT }   /* blk=deseret */,
-  {     0,  4355,   671,  17,   5, UNI_OGAM }   /* scriptextensions=ogham */,
-  {     2,  4500,  4127,   5,  10, UNI_UPPERCASELETTER }   /* uppercaseletter */,
-  {     4,  3474,  7660,   6,  28, UNI_VSSUP }   /* block=variationselectorssupplement */,
-  {     0,   257,   588,   4,   5, UNI_CWCF }   /* cwcf=true */,
-  {     7,  1407,  2332,   3,   7, UNI_GREEKEXT }   /* ingreekext */,
-  {     0,  1879,  5116,   4,  20, UNI_INANATOLIANHIEROGLYPHS }   /* blk=anatolianhieroglyphs */,
-  {     8,    82,     0,   4,   0, UNI_DSRT }   /* dsrt */,
-  {     0,   959,   356,   8,   2, UNI_EXT }   /* extender=y */,
-  {   192,   464,  1589,   2,   3, UNI_ALL }   /* isall */,
-  {     1,  7317,    56,  10,   2, UNI_BC__AN }   /* bidiclass=an */,
-  {     0,  2443,   356,   5,   4, UNI_CASED }   /* cased=yes */,
-  {     6,  7880,  6509,   5,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* iscjkcompatideographssup */,
-  {   174,   313,  1495,   2,   8, UNI_INJAVANESE }   /* injavanese */,
-  {    24,  1796,  2740,   7,   6, UNI_SC__COPT }   /* script=coptic */,
-  {     0,  1102,  3671,   3,  10, UNI_MLYM }   /* scx=malayalam */,
-  {     1,  6039,  1052,   7,   7, UNI_INMAHAJANI }   /* block=mahajani */,
-  {     1,  1879,  4793,   4,  18, UNI_RUMI }   /* blk=ruminumeralsymbols */,
-  {     4,  1796,   136,   7,   4, UNI_SC__MYMR }   /* script=mymr */,
-  {     0,  3622,     5,   7,   4, UNI_LATINEXTG }   /* islatinextg */,
-  {     0,  1102,   140,   4,   4, UNI_NARB }   /* scx=narb */,
-  {     0,  6379,  2498,  12,  11, UNI_JG__AFRICANFEH }   /* joininggroup=africanfeh */,
-  {     6,  6114,  1125,   3,   8, UNI_TFNG }   /* sc=tifinagh */,
-  {   113,   313,  1271,   2,   9, UNI_INKHUDAWADI }   /* inkhudawadi */,
-  {     4,  1796,   124,   7,   4, UNI_SC__LATN }   /* script=latn */,
-  {     0,  7527,  2961,   3,   7, UNI_LB__NU }   /* lb=numeric */,
-  {     0,  3474,  4202,   6,  17, UNI_INKHITANSMALLSCRIPT }   /* block=khitansmallscript */,
-  {     0,     2,    64,   1,   3, UNI_CHRS }   /* chrs */,
-  {     2,  1796,  4436,   6,   6, UNI_SC__LATN }   /* script=latin */,
-  {     0,  2496,   787,   3,   3, UNI_JG__NYA }   /* jg=nya */,
-  {     1,  1796,   156,   7,   4, UNI_SC__OUGR }   /* script=ougr */,
-  {     0,   405,     0,   4,   0, UNI_ARMN }   /* armn */,
-  {     3,  1326,     0,   9,   0, UNI_ORKH }   /* oldturkic */,
-  {     0,  6919,     0,  25,   0, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* symbolsforlegacycomputing */,
-  {     8,  1480,   958,   7,   4, UNI_GEORGIANEXT }   /* georgianext */,
-  {     0,   823,   934,   4,   6, -UNI_DASH }   /* dash=false */,
-  {     4,  2973,   934,   5,   2, -UNI_EPRES }   /* epres=f */,
-  {     8,  4355,  1248,  17,   4, UNI_SIDD }   /* scriptextensions=sidd */,
-  {     0,  6114,   417,   3,   4, UNI_SC__HANO }   /* sc=hano */,
-  {     0,  2193,  6199,   4,   5, UNI_NV__600000 }   /* nv=600000 */,
-  {     4,  1102,    31,   4,   4, UNI_ARMI }   /* scx=armi */,
-  {    17,  2220,     0,   4,   0, UNI_HUNG }   /* hung */,
-  {     0,  2483,  1638,   4,   8, UNI_XPOSIXSPACE }   /* isxperlspace */,
-  {     0,  3236,     0,  13,   0, UNI_ME }   /* enclosingmark */,
-  {     0,   833,   278,   4,   1, UNI_term_values_index }   /* term= */,
-  {     0,  8276,  6867,  31,  11, UNI_INSC__CONSONANTWITHSTACKER }   /* indicsyllabiccategory=consonantwithstacker */,
-  {    76,  5087,  3416,  12,   7, UNI_WB__MB }   /* wordbreak=midnumlet */,
-  {   142,  1991,   647,  11,   2, UNI_JT__L }   /* joiningtype=l */,
-  {     1,   464,   868,   2,   7, UNI_TIRH }   /* istirhuta */,
-  {     6,   306,   934,   5,   2, -UNI__PERL_PATWS }   /* patws=f */,
-  {     1,  2496,   484,   3,   3, UNI_JG__GAF }   /* jg=gaf */,
-  {     2,  3058,   934,   8,   2, -UNI_XPOSIXXDIGIT }   /* hexdigit=f */,
-  {     0,   296,   768,   3,   2, UNI_NV__45 }   /* nv=45 */,
-  {     0,  3053,   934,  13,   6, -UNI_POSIXXDIGIT }   /* asciihexdigit=false */,
-  {     2,  3474,  5389,   6,  20, UNI_INNYIAKENGPUACHUEHMONG }   /* block=nyiakengpuachuehmong */,
-  {    13,  1133,     0,   8,   0, UNI_VITH }   /* vithkuqi */,
-  {     3,  6803,   602,  20,   3, -UNI_CE }   /* compositionexclusion=no */,
-  {    77,  3809,   764,  14,   2, UNI_NV__9_SLASH_2 }   /* numericvalue=9/2 */,
-  {     0,  5087,   287,  10,   2, UNI_WB__NU }   /* wordbreak=nu */,
-  {     0,    57,   601,   1,   6, UNI_NV__NAN }   /* nt=none */,
-  {    12,  1102,   909,   4,   4, UNI_BALI }   /* scx=bali */,
-  {     5,  2678,  4758,   3,  18, UNI_BC__B }   /* bc=paragraphseparator */,
-  {     5,   939,   934,   5,   2, -UNI_ECOMP }   /* ecomp=f */,
-  {     0,  7431,   772,  27,   2, UNI_CCC__17 }   /* canonicalcombiningclass=ccc17 */,
-  {     2,    19,     0,   4,   0, UNI_AGHB }   /* aghb */,
-  {     5,   343,   119,   4,   2, UNI_CCC__AL }   /* ccc=al */,
-  {     0,  1710,   466,   3,   3, UNI_SHRD }   /* isshrd */,
-  {     4,  6114,    78,   3,   4, UNI_SC__CYRL }   /* sc=cyrl */,
-  {   137,  2253,   890,   9,   3, UNI_IN__10 }   /* presentin=10 */,
-  {     1,  1516,  2373,   4,   9, UNI_KATAKANAEXT }   /* iskatakanaext */,
-  {     8,  1383,   356,   7,   4, UNI_IDS }   /* idstart=yes */,
-  {     0,  5907,     0,   7,   0, UNI_SINH }   /* sinhala */,
-  {     0,  3669,   787,  12,   3, UNI_JG__MALAYALAMNYA }   /* jg=malayalamnya */,
-  {    18,  5186,   934,  20,   6, -UNI_EXTPICT }   /* extendedpictographic=false */,
-  {     0,  2205,  2060,   8,   4, UNI_NV__5_SLASH_6 }   /* nv=8.333e-01 */,
-  {     4,  3351,  2071,  13,   9, UNI_NV__1_SLASH_7 }   /* numericvalue=1.429e-01 */,
-  {     1,  2274,   934,   4,   2, -UNI_XIDC }   /* xidc=f */,
-  {     1,    36,  4370,   1,   2, UNI_vs_values_index }   /* vs= */,
-  {   192,     2,   356,   3,   2, UNI_CWL }   /* cwl=y */,
-  {     0,  7880,     0,  22,   0, UNI_CJK }   /* iscjkunifiedideographs */,
-  {     0,  1102,    43,   4,   4, UNI_BHKS }   /* scx=bhks */,
-  {     0,  3474,  1125,   6,   8, UNI_INTIFINAGH }   /* block=tifinagh */,
-  {    11,   313,  2355,   2,   8, UNI_INCYRILLIC }   /* incyrillic */,
-  {     6,  3474,  1571,   6,  10, UNI_INSAURASHTRA }   /* block=saurashtra */,
-  {     0,  4355,  8599,  17,  18, UNI_CANS }   /* scriptextensions=canadianaboriginal */,
-  {     0,  6114,   825,   3,   7, UNI_SHAW }   /* sc=shavian */,
-  {     2,  4656,     0,  16,   0, UNI_TANGUTSUP }   /* tangutsupplement */,
-  {     1,  2153,   292,   4,   1, UNI_NV__43 }   /* nv=43 */,
-  {     3,   464,  1371,   2,   4, UNI_THAA }   /* isthaa */,
-  {    74,  6114,   997,   3,   6, UNI_SC__KTHI }   /* sc=kaithi */,
-  {    17,  4092,   934,   9,   2, -UNI_DIA }   /* diacritic=f */,
-  {    16,  2274,   933,  10,   3, -UNI_XIDC }   /* xidcontinue=f */,
-  {     0,  4322,   518,  14,   2, UNI_NV__3_SLASH_5 }   /* numericvalue=3/5 */,
-  {     0,  8533,  6898,   9,  22, UNI_SUPERANDSUB }   /* block=superscriptsandsubscripts */,
-  {     0,  2033,  1175,   4,   3, -UNI_XPOSIXALPHA }   /* alpha=n */,
-  {     1,  1796,   671,   7,   5, UNI_OGAM }   /* script=ogham */,
-  {     0,   600,  1176,   2,   4, UNI_DT__NAR }   /* dt=nar */,
-  {     2,  2353,  8150,   3,  32, UNI_DIACRITICALSEXT }   /* incombiningdiacriticalmarksextended */,
-  {     0,  1796,  2695,   6,   7, UNI_SC__ARAB }   /* script=arabic */,
-  {     0,  7828,     0,  16,   0, UNI_UIDEO }   /* unifiedideograph */,
-  {     1,  5586,   366,  21,   2, UNI_GCB__SM }   /* graphemeclusterbreak=sm */,
-  {     2,  2463,   356,   5,   4, UNI_JOINC }   /* joinc=yes */,
-  {     0,  2678,  6253,  14,   9, UNI_BC__RLE }   /* bc=righttoleftembedding */,
-  {     3,  1879,  5797,   8,   9, UNI_KANAEXTA }   /* blk=kanaextendeda */,
-  {   198,  5087,   285,  10,   2, UNI_WB__XX }   /* wordbreak=xx */,
-  {     1,  5087,   959,  10,   6, UNI_WB__EXTEND }   /* wordbreak=extend */,
-  {   209,   644,     0,   4,   0, UNI_hst_values_index }   /* hst= */,
-  {     0,   464,  6276,   2,   6, UNI_CF }   /* isformat */,
-  {   197,  1065,   766,   4,   3, UNI_NV__1_SLASH_64 }   /* nv=1/64 */,
-  {     7,  3748,  3807,  15,   2, UNI_NV__1_SLASH_80 }   /* numericvalue=1/80 */,
-  {     0,  1059,   356,   6,   4, UNI_DT__NONE }   /* nfkdqc=yes */,
-  {     6,  6114,  2771,   3,   5, UNI_KHMR }   /* sc=khmer */,
-  {    11,   464,  5806,   2,   9, UNI_MONG }   /* ismongolian */,
-  {     5,  1879,  5727,   4,  21, UNI_ININSCRIPTIONALPARTHIAN }   /* blk=inscriptionalparthian */,
-  {     0,  2726,    58,   3,   2, UNI_SC }   /* gc=sc */,
-  {     0,  5865,   588,  21,   2, UNI_LOE }   /* logicalorderexception=t */,
-  {     5,  7880,     5,   5,   4, UNI_CJKEXTG }   /* iscjkextg */,
-  {     1,  8470,  1329,  20,   2, UNI_VO__TU }   /* verticalorientation=tu */,
-  {     0,  1102,    39,   4,   4, UNI_BATK }   /* scx=batk */,
-  {     0,  6112,  1157,   5,   5, UNI_INSC__NUKTA }   /* insc=nukta */,
-  {    39,  1117,     0,   4,   0, UNI_TAGB }   /* tagb */,
-  {     0,  3351,   800,  13,   3, UNI_NV__NAN }   /* numericvalue=nan */,
-  {     0,  1796,  1508,   7,   4, UNI_UGAR }   /* script=ugar */,
-  {     0,   296,   350,   3,   2, UNI_NV__49 }   /* nv=49 */,
-  {     1,  1879,  1529,   4,  10, UNI_INKHAROSHTHI }   /* blk=kharoshthi */,
-  {     1,   464,  3000,   2,  13, UNI_QMARK }   /* isquotationmark */,
-  {     2,  6114,    67,   3,   4, UNI_SC__CPMN }   /* sc=cpmn */,
-  {     0,  4322,   397,  14,   1, UNI_NV__35 }   /* numericvalue=35 */,
-  {    40,  8007,  6352,   7,  18, UNI_CJKRADICALSSUP }   /* blk=cjkradicalssupplement */,
-  {     0,  3351,   518,  14,   2, UNI_NV__2_SLASH_5 }   /* numericvalue=2/5 */,
-  {     1,   464,   257,   2,   4, UNI_CWCF }   /* iscwcf */,
-  {     5,  4291,  2937,  10,  11, UNI_LB__IN }   /* linebreak=inseperable */,
-  {     1,  1102,   124,   4,   4, UNI_LATN }   /* scx=latn */,
-  {    33,  8182,     0,  24,   0, UNI_inpc_values_index }   /* indicpositionalcategory= */,
-  {     0,  1102,  1561,   4,  10, UNI_PHNX }   /* scx=phoenician */,
-  {     5,  3809,  6199,  14,   5, UNI_NV__900000 }   /* numericvalue=900000 */,
-  {     1,  3794,  2617,  14,   8, UNI_NV__4_SLASH_5 }   /* numericvalue=8.000e-01 */,
-  {    25,  5990,  1998,  17,   5, UNI_bpt_values_index }   /* bidipairedbrackettype= */,
-  {     0,  5087,   102,  10,   2, UNI_LB__HL }   /* wordbreak=hl */,
-  {    13,  6944,  5464,  24,  17, UNI_WB__EB }   /* canonicalcombiningclass=attachedbelowleft */,
-  {     0,  1102,   909,   4,   8, UNI_BALI }   /* scx=balinese */,
-  {     0,  1796,  5825,   7,   4, UNI_SUND }   /* script=sund */,
-  {     4,  5099,  2581,   6,   9, UNI__PERL_SURROGATE }   /* _perl_surrogate */,
-  {     0,  1377,   510,   3,   2, UNI_WB__DQ }   /* wb=dq */,
-  {     0,  1102,  4107,   4,   4, UNI_HANG }   /* scx=hang */,
-  {     0,  4872,  3641,  10,  10, UNI_KANASUP }   /* block=kanasupplement */,
-  {     1,  6687,   787,  22,   3, UNI_JG__MALAYALAMNYA }   /* joininggroup=malayalamnya */,
-  {     1,  1102,   208,   4,   4, UNI_TFNG }   /* scx=tfng */,
-  {     1,  6570,  4042,   8,   8, UNI_INPC__TOPANDRIGHT }   /* inpc=topandright */,
-  {    27,  3474,  1424,   6,  10, UNI_INCHORASMIAN }   /* block=chorasmian */,
-  {     0,  5214,     0,   9,   0, UNI_HALFMARKS }   /* halfmarks */,
-  {    32,   306,   588,   5,   2, UNI__PERL_PATWS }   /* patws=t */,
-  {     5,   520,  2120,   4,   8, UNI_NV__3_SLASH_4 }   /* nv=7.500e-01 */,
-  {    36,  1879,  3053,   4,   5, UNI_ASCII }   /* blk=ascii */,
-  {     0,  6114,   156,   3,   4, UNI_SC__OUGR }   /* sc=ougr */,
-  {     0,  6379,  2824,  13,  11, UNI_JG__ROHINGYAYEH }   /* joininggroup=rohingyayeh */,
-  {     8,  1856,   602,  11,   2, -UNI_BIDIC }   /* bidicontrol=n */,
-  {     1,   464,  4302,   2,   6, UNI_XPOSIXSPACE }   /* iswspace */,
-  {     0,  3474,  5661,   6,  19, UNI_MERO }   /* block=meroitichieroglyphs */,
-  {     1,  7208,     0,   9,   0, UNI_gc_values_index }   /* category= */,
-  {     2,  1377,     5,   3,   2, UNI_WB__EX }   /* wb=ex */,
-  {     5,  6379,  1265,  13,   6, UNI_JG__LAMADH }   /* joininggroup=lamadh */,
-  {     0,  1796,  1228,   8,   6, UNI_SC__MULT }   /* script=multani */,
-  {    32,   313,  1280,   2,   9, UNI_INNABATAEAN }   /* innabataean */,
-  {     0,    75,   588,   3,   5, UNI_CWU }   /* cwu=true */,
-  {     0,   426,  5117,   3,  19, UNI_INANATOLIANHIEROGLYPHS }   /* inanatolianhieroglyphs */,
-  {     5,  4355,    71,  17,   4, UNI_CPRT }   /* scriptextensions=cprt */,
-  {     0,   464,  7044,   2,  13, UNI_M }   /* iscombiningmark */,
-  {     3,   939,   588,   5,   2, UNI_ECOMP }   /* ecomp=t */,
-  {    52,  1796,   728,   7,   7, UNI_SC__KALI }   /* script=kayahli */,
-  {     0,   632,   355,   5,   2, UNI_grbase_values_index }   /* grbase= */,
-  {     3,  5748,  4081,   5,  11, UNI_SUPPUNCTUATION }   /* insuppunctuation */,
-  {     5,  2463,   602,  11,   3, -UNI_JOINC }   /* joincontrol=no */,
-  {     2,   296,   584,   2,   3, UNI_NV__22 }   /* nv=22 */,
-  {     1,  1410,   299,   8,   1, UNI_CCC__19 }   /* ccc=ccc19 */,
-  {     0,  6379,  3688,  13,   3, UNI_JG__TAW }   /* joininggroup=taw */,
-  {     0,  4355,   433,  17,   3, UNI_NKO }   /* scriptextensions=nko */,
-  {     2,   833,   602,   4,   3, -UNI_TERM }   /* term=no */,
-  {     0,   296,  1153,   3,   2, UNI_NV__24 }   /* nv=24 */,
-  {    50,  1879,  7732,   4,  22, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* blk=enclosedideographicsup */,
-  {     9,  4355,  1117,  17,   8, UNI_TAGB }   /* scriptextensions=tagbanwa */,
-  {     0,  1377,  7377,   3,   8, UNI_WB__KA }   /* wb=katakana */,
-  {    74,  7527,    10,   3,   2, UNI_LB__CR }   /* lb=cr */,
-  {    46,    34,  4005,   1,  16, UNI_CURRENCYSYMBOLS }   /* iscurrencysymbols */,
-  {     1,  4338,   356,  17,   4, UNI_RI }   /* regionalindicator=yes */,
-  {     0,  1991,   588,  11,   2, UNI_JT__T }   /* joiningtype=t */,
-  {     0,  5586,  1837,  21,   5, UNI_WB__EB }   /* graphemeclusterbreak=ebase */,
-  {     1,   172,     0,   4,   0, UNI_RJNG }   /* rjng */,
-  {     1,   343,  5472,   4,   9, UNI_CCC__BL }   /* ccc=belowleft */,
-  {     0,     2,  6528,   1,  21, UNI_INDICNUMBERFORMS }   /* commonindicnumberforms */,
-  {    27,  1796,  2771,   7,   5, UNI_KHMR }   /* script=khmer */,
-  {     0,   313,  1234,   2,   7, UNI_NB }   /* innoblock */,
-  {     0,  1516,  3641,   6,  10, UNI_KANASUP }   /* iskanasupplement */,
-  {     0,  4355,   496,  17,   6, UNI_KHOJ }   /* scriptextensions=khojki */,
-  {     2,   464,   676,   2,   5, UNI_OSGE }   /* isosage */,
-  {     0,   464,  1887,   2,   8, UNI_UCASEXTA }   /* isucasexta */,
-  {     0,  3622,  3704,   3,  15, UNI_LINEARBIDEOGRAMS }   /* islinearbideograms */,
-  {     1,  2890,  2879,   3,  11, UNI_JT__L }   /* jt=leftjoining */,
-  {     0,  3474,  1470,   6,   8, UNI_INBUGINESE }   /* block=buginese */,
-  {     0,  1214,  5797,   6,   9, UNI_KANAEXTA }   /* inkanaextendeda */,
-  {   130,   464,  3654,   2,  11, UNI_MC }   /* isspacingmark */,
-  {     0,  2392,  8212,   3,  32, UNI_MISCMATHSYMBOLSB }   /* inmiscellaneousmathematicalsymbolsb */,
-  {     1,  5087,  7377,  10,   8, UNI_WB__KA }   /* wordbreak=katakana */,
-  {   183,  4355,  3309,  17,   4, UNI_MERO }   /* scriptextensions=mero */,
-  {     0,  3351,  2119,  13,   9, UNI_NV__3_SLASH_20 }   /* numericvalue=1.500e-01 */,
-  {    11,  2253,   389,  10,   3, UNI_IN__3_DOT_2 }   /* presentin=3.2 */,
-  {   233,  1796,  3465,   6,   9, UNI_ETHI }   /* script=ethiopic */,
-  {     4,   464,   112,   2,   4, UNI_KITS }   /* iskits */,
-  {     1,  7317,  2384,  10,   2, UNI_BC__CS }   /* bidiclass=cs */,
-  {   147,  7068,   588,  26,   5, UNI_PCM }   /* prependedconcatenationmark=true */,
-  {     0,  4355,   983,  17,   8, UNI_HIRA }   /* scriptextensions=hiragana */,
-  {     6,   464,   273,   2,   2, UNI_ZP }   /* iszp */,
-  {     1,  3474,  1227,   6,   7, UNI_INMULTANI }   /* block=multani */,
-  {     2,   373,  3156,   3,   8, UNI_NO }   /* othernumber */,
-  {     3,   313,  4656,   2,   9, UNI_TANGUTSUP }   /* intangutsup */,
-  {     0,  1410,   772,   7,   2, UNI_CCC__17 }   /* ccc=ccc17 */,
-  {     0,  3396,     0,  15,   0, UNI_SARB }   /* oldsoutharabian */,
-  {     3,  4291,  2961,  10,   7, UNI_LB__NU }   /* linebreak=numeric */,
-  {     0,   464,   301,   2,   5, UNI_ORYA }   /* isoriya */,
-  {     6,  3474,   433,   6,   3, UNI_INNKO }   /* block=nko */,
-  {     1,   612,  5021,   2,   3, UNI_LB__CL }   /* lb=cl */,
-  {     1,  4726,  2064,  14,   8, UNI_NV__5_SLASH_8 }   /* numericvalue=6.250e-01 */,
-  {     2,  1796,  5340,   7,   4, UNI_SC__DEVA }   /* script=deva */,
-  {   136,  6594,     0,   6,   0, UNI_BRAH }   /* brahmi */,
-  {    89,  5481,   278,  21,   1, UNI_cwcf_values_index }   /* changeswhencasefolded= */,
-  {     0,   192,   194,   2,   2, UNI_SHAW }   /* shaw */,
-  {     6,  1796,   818,   7,   7, UNI_SC__SHRD }   /* script=sharada */,
-  {     5,  3090,  5812,   9,  13, UNI_GEORGIANSUP }   /* blk=georgiansupplement */,
-  {     1,    34,  1440,   1,   4, UNI_DEP }   /* isdep */,
-  {     0,  3474,  1191,   6,   7, UNI_INBENGALI }   /* block=bengali */,
-  {     9,  4322,  3807,  15,   2, UNI_NV__3_SLASH_80 }   /* numericvalue=3/80 */,
-  {     4,  3915,   356,  17,   4, UNI_EPRES }   /* emojipresentation=yes */,
-  {     1,  8007,  4611,  30,   4, UNI_CJKEXTF }   /* blk=cjkunifiedideographsextensionf */,
-  {     0,  3734,  1771,  14,   6, UNI_NFCQC__M }   /* nfkcquickcheck=maybe */,
-  {     0,  7182,  8407,   3,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* cjkcompatibilityideographssupplement */,
-  {     2,  1879,  4750,   4,   8, UNI_DINGBATS }   /* blk=dingbats */,
-  {    68,  5409,   934,  19,   2, -UNI_TERM }   /* terminalpunctuation=f */,
-  {    52,  5928,     0,  21,   0, UNI_VO__TR }   /* vo=transformedrotated */,
-  {     1,  1796,  2401,   7,   4, UNI_SC__NAND }   /* script=nand */,
-  {    10,  3351,  2128,  13,   9, UNI_NV__1_SLASH_32 }   /* numericvalue=3.125e-02 */,
-  {     0,  6466,     0,  10,   0, UNI_CO }   /* privateuse */,
-  {   143,  1796,   991,   7,   6, UNI_HATR }   /* script=hatran */,
-  {    37,   513,   518,   4,   2, UNI_NV__3_SLASH_5 }   /* nv=3/5 */,
-  {     3,   464,  6833,   2,  14, UNI_BYZANTINEMUSIC }   /* isbyzantinemusic */,
-  {     8,    34,  4484,   1,  10, UNI_TITLE }   /* istitlecase */,
-  {     0,  3593,  4275,   3,  16, UNI_LETTERLIKESYMBOLS }   /* inletterlikesymbols */,
-  {    32,  7660,   602,  17,   2, -UNI_VS }   /* variationselector=n */,
-  {     0,   343,  1070,   4,   2, UNI_CCC__31 }   /* ccc=31 */,
-  {     8,  6570,     0,   5,   0, UNI_inpc_values_index }   /* inpc= */,
-  {     0,  1879,  2394,   4,   7, UNI_INMYANMAR }   /* blk=myanmar */,
-  {     2,  1879,  1785,   4,  11, UNI_INPAHAWHHMONG }   /* blk=pahawhhmong */,
-  {     3,  7132,  5080,   7,   7, UNI_SUPARROWSA }   /* blk=suparrowsa */,
-  {     0,  1879,  5389,   4,  20, UNI_INNYIAKENGPUACHUEHMONG }   /* blk=nyiakengpuachuehmong */,
-  {     9,  4355,    31,  17,   4, UNI_ARMI }   /* scriptextensions=armi */,
-  {     1,  6114,   540,   3,   4, UNI_TANG }   /* sc=tang */,
-  {    18,  7182,  6509,   3,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* cjkcompatideographssup */,
-  {     1,  2726,   259,   3,   2, UNI_CF }   /* gc=cf */,
-  {   130,   997,     0,   6,   0, UNI_KTHI }   /* kaithi */,
-  {     0,  1233,    10,   3,   2, UNI_OCR }   /* inocr */,
-  {   112,  7208,  3223,   9,  13, UNI_XPOSIXDIGIT }   /* category=decimalnumber */,
-  {    11,  6570,  4038,   5,  12, UNI_INPC__LEFTANDRIGHT }   /* inpc=leftandright */,
-  {     3,  1879,  4107,   4,   6, UNI_INHANGUL }   /* blk=hangul */,
-  {     4,  7880,  4341,  28,   4, UNI_CJKEXTA }   /* iscjkunifiedideographsextensiona */,
-  {     2,    34,  7790,   1,   5, UNI_IDEO }   /* isideo */,
-  {     1,   328,  6898,   3,  22, UNI_SUPERANDSUB }   /* superscriptsandsubscripts */,
-  {   138,   536,   329,   3,   2, UNI_SB__UP }   /* sb=up */,
-  {     7,  1480,  5812,   5,  13, UNI_GEORGIANSUP }   /* georgiansupplement */,
-  {    16,   464,  1241,   2,   4, UNI_PHAG }   /* isphag */,
-  {    57,  1796,  1614,   7,  10, UNI_WARA }   /* script=warangciti */,
-  {     0,  6114,   236,   3,   2, UNI_SC__YI }   /* sc=yi */,
-  {     7,  2638,  2056,  11,   2, UNI_IN__5_DOT_1 }   /* presentin=5.1 */,
-  {     1,    34,   115,   1,   5, UNI_KNDA }   /* isknda */,
-  {    97,   524,   356,   6,   4, UNI_PATSYN }   /* patsyn=yes */,
-  {    69,  3474,   220,   6,   4, UNI_INTOTO }   /* block=toto */,
-  {     1,  1065,   299,   5,   1, UNI_NV__1_SLASH_9 }   /* nv=1/9 */,
-  {     0,  1410,  2138,   7,   2, UNI_CCC__33 }   /* ccc=ccc33 */,
-  {    12,  3593,  1037,   7,   4, UNI_LATINEXTB }   /* inlatinextb */,
-  {    51,   464,   783,   2,   4, UNI_OSMA }   /* isosma */,
-  {    58,  6402,   832,  14,   5, UNI_SB__ST }   /* sentencebreak=sterm */,
-  {   104,    46,  5021,   2,   3, UNI_SB__CL }   /* sb=cl */,
-  {     0,   313,  2297,   2,  13, UNI_BLOCKELEMENTS }   /* inblockelements */,
-  {     0,  5087,   546,  10,   2, UNI_WB__EB }   /* wordbreak=eb */,
-  {     0,  7201,  3518,  16,   9, UNI_Z }   /* generalcategory=separator */,
-  {     1,  1879,  7416,   4,  14, UNI_PUA }   /* blk=privateusearea */,
-  {     0,  4662,  5762,  12,   7, UNI_SUPARROWSB }   /* supplementalarrowsb */,
-  {     0,  5502,   278,  21,   1, UNI_cwcm_values_index }   /* changeswhencasemapped= */,
-  {     6,  3474,   676,   6,   5, UNI_INOSAGE }   /* block=osage */,
-  {     1,  7431,  2074,  28,   2, UNI_CCC__129 }   /* canonicalcombiningclass=ccc129 */,
-  {     4,  1102,  1248,   4,   4, UNI_SIDD }   /* scx=sidd */,
-  {     2,  5888,   588,   5,   2, UNI__PERL_NCHAR }   /* nchar=t */,
-  {     0,  5087,  1842,  10,   3, UNI_WB__EB }   /* wordbreak=gaz */,
-  {     4,   144,     0,   4,   0, UNI_NEWA }   /* newa */,
-  {     0,  7880,  3929,  28,   4, UNI_CJKEXTG }   /* iscjkunifiedideographsextensiong */,
-  {     4,  4500,   278,   5,   1, UNI_upper_values_index }   /* upper= */,
-  {   105,  6114,   840,   3,   7, UNI_SC__TGLG }   /* sc=tagalog */,
-  {     0,  1102,  6030,   3,   9, UNI_GEOR }   /* scx=georgian */,
-  {   144,  1191,     0,   4,   0, UNI_BENG }   /* beng */,
-  {     2,  1796,   188,   7,   4, UNI_SGNW }   /* script=sgnw */,
-  {    10,    14,  7975,   1,  32, UNI_MISCMATHSYMBOLSA }   /* miscellaneousmathematicalsymbolsa */,
-  {     2,  5607,  6823,  15,  10, UNI_IDENTIFIERTYPE__LIMITEDUSE }   /* identifiertype=limiteduse */,
-  {   128,  2926,  5358,   3,  11, UNI_SMALLKANAEXT }   /* insmallkanaext */,
-  {     0,  3351,  2080,  14,   8, UNI_NV__5_SLASH_2 }   /* numericvalue=2.500e+00 */,
-  {     0,  6114,   749,   3,   4, UNI_MARC }   /* sc=marc */,
-  {     2,  1440,   602,   2,   2, -UNI_SD }   /* sd=n */,
-  {    13,  6114,  5340,   3,   4, UNI_SC__DEVA }   /* sc=deva */,
-  {     0,  3593,  1646,   7,   4, UNI_LATINEXTD }   /* inlatinextd */,
-  {     6,   313,  5907,   2,   7, UNI_INSINHALA }   /* insinhala */,
-  {     1,  1065,     0,   6,   0, UNI_NV__1_SLASH_3 }   /* nv=1/3 */,
-  {    15,  8533,  7937,   7,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* block=symbolsandpictographsextendeda */,
-  {    10,  1879,   776,   4,   7, UNI_OLCK }   /* blk=olchiki */,
-  {     8,   464,   429,   2,   4, UNI_MRO }   /* ismroo */,
-  {     3,  6379,  5015,  13,   4, UNI_JG__YUDH }   /* joininggroup=yudh */,
-  {     0,  1410,  1155,   7,   2, UNI_CCC__35 }   /* ccc=ccc35 */,
-  {     0,  6114,   611,   3,   4, UNI_ELBA }   /* sc=elba */,
-  {     0,  6114,   449,   3,   4, UNI_PHLI }   /* sc=phli */,
-  {     0,  4355,   208,  17,   4, UNI_TFNG }   /* scriptextensions=tfng */,
-  {     1,  8533,  1110,   7,   7, UNI_SPECIALS }   /* block=specials */,
-  {     2,  7208,  1379,   8,   2, UNI_M }   /* category=m */,
-  {    11,  1441,   356,   3,   4, UNI_DEP }   /* dep=yes */,
-  {     0,  3474,  3991,   6,   7, UNI_BRAI }   /* block=braille */,
-  {     0,  5844,  5080,  14,   7, UNI_SUPARROWSA }   /* issupplementalarrowsa */,
-  {     0,    16,   601,   1,   2, UNI_dt_values_index }   /* dt= */,
-  {     0,   275,  1837,   4,   5, UNI_WB__EB }   /* gcb=ebase */,
-  {     1,  4291,  5021,   9,  17, UNI_LB__CP }   /* linebreak=closeparenthesis */,
-  {     0,  8182,  2688,  30,   4, UNI_INPC__TOPANDLEFT }   /* indicpositionalcategory=topandleft */,
-  {   202,  4355,   477,  17,   4, UNI_VAI }   /* scriptextensions=vaii */,
-  {     2,  6570,  4038,  11,  12, UNI_INPC__TOPANDLEFTANDRIGHT }   /* inpc=topandleftandright */,
-  {    32,  6114,  1144,   3,   9, UNI_BHKS }   /* sc=bhaiksuki */,
-  {     2,  5087,     5,  10,   2, UNI_WB__EX }   /* wordbreak=ex */,
-  {     5,   313,  5305,   3,  17, UNI_TAIXUANJING }   /* intaixuanjingsymbols */,
-  {     0,  6379,  4178,  13,   4, UNI_JG__KAPH }   /* joininggroup=kaph */,
-  {     0,   360,     0,   6,   0, UNI_CAKM }   /* chakma */,
-  {    98,  1102,   593,   4,   7, UNI_DSRT }   /* scx=deseret */,
-  {     0,  2496,   713,   3,   4, UNI_JG__SHIN }   /* jg=shin */,
-  {     0,   464,  4857,   2,   5, UNI_TAML }   /* istamil */,
-  {     0,   832,   278,   5,   1, UNI_sterm_values_index }   /* sterm= */,
-  {     0,   536,    10,   3,   2, UNI_LB__CR }   /* sb=cr */,
-  {     2,  4783,   933,   9,   3, -UNI_XPOSIXSPACE }   /* whitespace=f */,
-  {     0,  7688,   229,  23,   2, UNI_JG__MANICHAEANPE }   /* joininggroup=manichaeanpe */,
-  {     0,  7201,   538,  15,   2, UNI_S }   /* generalcategory=s */,
-  {     3,   313,   346,   2,   3, UNI_IN__11 }   /* in=11 */,
-  {    17,  2485,  4081,   6,   5, UNI_XPOSIXPUNCT }   /* xposixpunct */,
-  {     0,  2802,  6091,   3,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* isearlydynasticcuneiform */,
-  {     0,  1915,   587,  11,   6, UNI_GRBASE }   /* graphemebase=true */,
-  {     1,  6039,  4442,  13,   9, UNI_MYANMAREXTB }   /* block=myanmarextendedb */,
-  {     8,  5844,  5762,   5,   7, UNI_SUPARROWSB }   /* issuparrowsb */,
-  {     0,  2474,  2030,   3,  11, UNI_MATHALPHANUM }   /* ismathalphanum */,
-  {     2,   461,     0,   4,   0, UNI_QAAI }   /* qaai */,
-  {     1,  1879,  1668,   4,  11, UNI_DOMINO }   /* blk=dominotiles */,
-  {     0,   513,   398,   5,   2, UNI_NV__3_SLASH_16 }   /* nv=3/16 */,
-  {     6,  8276,  6594,  22,  19, UNI_INSC__BRAHMIJOININGNUMBER }   /* indicsyllabiccategory=brahmijoiningnumber */,
-  {     1,   313,  5825,   2,  12, UNI_SUNDANESESUP }   /* insundanesesup */,
-  {     6,    12,     0,   3,   0, UNI_PCM }   /* pcm */,
-  {     3,  2792,  1037,  10,   4, UNI_CYRILLICEXTB }   /* iscyrillicextb */,
-  {     1,   464,  3498,   2,  16, UNI_CYPRIOTSYLLABARY }   /* iscypriotsyllabary */,
-  {   147,   313,   681,   2,   5, UNI_INRUNIC }   /* inrunic */,
-  {    12,   600,  6944,   6,   9, UNI_DT__NONCANON }   /* dt=noncanonical */,
-  {     0,   343,   353,   4,   2, UNI_CCC__9 }   /* ccc=vr */,
-  {     0,  3000,   602,  13,   3, -UNI_QMARK }   /* quotationmark=no */,
-  {    10,   296,   394,   3,   2, UNI_NV__34 }   /* nv=34 */,
-  {     0,   372,     0,   6,   0, UNI_GOTH }   /* gothic */,
-  {     1,  7605,   587,  17,   3, UNI_GCB__T }   /* hangulsyllabletype=t */,
-  {     0,   895,   572,   5,   2, UNI_AGE__5_DOT_2 }   /* age=v52 */,
-  {     7,  2792,  5797,  10,   9, UNI_CYRILLICEXTA }   /* iscyrillicextendeda */,
-  {     4,  7208,  2443,   9,  11, UNI_CASEDLETTER }   /* category=casedletter */,
-  {     2,  3722,   602,   4,   2, -UNI_MATH }   /* math=n */,
-  {     0,  4355,  1571,  17,  10, UNI_SAUR }   /* scriptextensions=saurashtra */,
-  {     1,    14,  4567,   1,  15, UNI_MISCMATHSYMBOLSB }   /* miscmathsymbolsb */,
-  {     0,   275,   602,   2,   2, UNI_N }   /* gc=n */,
-  {    16,  6944,   890,  23,   3, UNI_CCC__10 }   /* canonicalcombiningclass=10 */,
-  {     0,  1879,  2373,   6,   9, UNI_KATAKANAEXT }   /* blk=katakanaext */,
-  {    13,  7317,   387,  10,   2, UNI_BC__EN }   /* bidiclass=en */,
-  {   128,   464,  5825,   2,   9, UNI_SUND }   /* issundanese */,
-  {   444,  2033,   588,   5,   5, UNI_XPOSIXALPHA }   /* alpha=true */,
-  {     0,  1879,   783,   4,   7, UNI_INOSMANYA }   /* blk=osmanya */,
-  {     0,   876,   934,   4,   6, -UNI_IDEO }   /* ideo=false */,
-  {   249,   895,  1304,   6,   2, UNI_AGE__12 }   /* age=v120 */,
-  {    25,  2401,     0,   4,   0, UNI_NAND }   /* nand */,
-  {     0,  4355,  6594,  17,   6, UNI_BRAH }   /* scriptextensions=brahmi */,
-  {     0,   464,  2428,   2,   6, UNI_IPAEXT }   /* isipaext */,
-  {     0,  4291,   464,  10,   2, UNI_LB__IS }   /* linebreak=is */,
-  {     5,  1407,  2332,   3,  12, UNI_GREEKEXT }   /* ingreekextended */,
-  {    65,     0,   277,   1,   4, UNI_LB__B2 }   /* lb=b2 */,
-  {     1,  1796,   216,   7,   4, UNI_TIBT }   /* script=tibt */,
-  {    20,  2041,     0,  12,   0, UNI_MEND }   /* mendekikakui */,
-  {     3,  6687,   702,  14,   3, UNI_JG__MEEM }   /* joininggroup=meem */,
-  {     4,  2712,   588,  14,   5, UNI_ECOMP }   /* emojicomponent=true */,
-  {     0,    34,  4091,   1,  16, UNI_DIACRITICALSEXT }   /* indiacriticalsext */,
-  {     0,  2353,  7908,   3,  29, UNI_CUNEIFORMNUMBERS }   /* incuneiformnumbersandpunctuation */,
-  {     8,  3748,   299,  15,   1, UNI_NV__1_SLASH_9 }   /* numericvalue=1/9 */,
-  {     4,  7132,  4372,   5,  16, UNI_SMALLFORMS }   /* blk=smallformvariants */,
-  {    14,   275,   898,   3,   2, UNI_GCB__V }   /* gcb=v */,
-  {     2,   343,  2688,   4,   4, UNI_CCC__L }   /* ccc=left */,
-  {     0,   296,  1303,   3,   2, UNI_NV__32 }   /* nv=32 */,
-  {     5,   581,   294,   6,   1, UNI_CCC__L }   /* ccc=224 */,
-  {     0,   696,  2774,   5,   8, UNI_SO }   /* isothersymbol */,
-  {    76,   313,  6466,   2,  10, UNI_PUA }   /* inprivateuse */,
-  {     0,    12,   356,   3,   2, UNI_PCM }   /* pcm=y */,
-  {     0,   316,  1881,   4,   2, UNI_qmark_values_index }   /* qmark= */,
-  {   386,   296,  3775,   2,   4, UNI_NV__5_SLASH_8 }   /* nv=5/8 */,
-  {    76,  2981,  1304,   5,   2, UNI_IN__12 }   /* in=v120 */,
-  {     1,  7201,  5166,  16,  20, UNI_PC }   /* generalcategory=connectorpunctuation */,
-  {    52,  1102,   917,   4,   8, UNI_BASS }   /* scx=bassavah */,
-  {     0,  6112,  8454,   5,  16, UNI_INSC__VOWELINDEPENDENT }   /* insc=vowelindependent */,
-  {     4,   328,  5762,   3,   7, UNI_SUPARROWSB }   /* suparrowsb */,
-  {    82,  3474,  1133,   6,   8, UNI_INVITHKUQI }   /* block=vithkuqi */,
-  {     5,  2310,   587,  12,   3, UNI_CI }   /* caseignorable=t */,
-  {     0,  2496,  4682,   3,   5, UNI_JG__SADHE }   /* jg=sadhe */,
-  {    65,  7688,  3685,  23,   3, UNI_JG__MANICHAEANMEM }   /* joininggroup=manichaeanmem */,
-  {    20,  1796,  6030,   6,   9, UNI_SC__GEOR }   /* script=georgian */,
-  {     4,  1796,   102,   7,   4, UNI_HLUW }   /* script=hluw */,
-  {     8,  1478,  3599,   9,   9, UNI_GEORGIANEXT }   /* ingeorgianextended */,
-  {   209,  1065,  1071,   4,   4, UNI_NV__11_SLASH_12 }   /* nv=11/12 */,
-  {     6,   612,   928,   2,   3, UNI_LB__OP }   /* lb=op */,
-  {   182,  8276,  2412,  22,   8, UNI_INSC__AVAGRAHA }   /* indicsyllabiccategory=avagraha */,
-  {    12,  7208,   538,   8,   2, UNI_S }   /* category=s */,
-  {     0,  1796,   967,   7,   8, UNI_SC__GUJR }   /* script=gujarati */,
-  {     1,   464,  1255,   2,   7, UNI_SOYO }   /* issoyombo */,
-  {     3,  3351,  1067,  12,   4, UNI_NV__1_SLASH_3 }   /* numericvalue=1/3 */,
-  {     7,  7132,  5358,   5,  17, UNI_SMALLKANAEXT }   /* blk=smallkanaextension */,
-  {    80,  4996,  4198,  13,   4, UNI_JG__MANICHAEANTETH }   /* jg=manichaeanteth */,
-  {     0,  2726,  2729,   3,   5, UNI_C }   /* gc=other */,
-  {     0,   513,   349,   4,   1, UNI_NV__38 }   /* nv=38 */,
-  {     0,   464,  1826,   2,  11, UNI_SYLO }   /* issylotinagri */,
-  {    14,     0,  3704,   1,  15, UNI_LINEARBIDEOGRAMS }   /* linearbideograms */,
-  {    64,  5409,  8484,  14,   6, UNI_term_values_index }   /* terminalpunctuation= */,
-  {     6,  4671,     0,   4,   0, UNI_TALE }   /* tale */,
-  {     1,  7317,  4783,  10,  10, UNI_BC__WS }   /* bidiclass=whitespace */,
-  {     0,  7182,  1698,   3,   4, UNI_CJKEXTF }   /* cjkextf */,
-  {     0,  5586,     5,  21,   2, UNI_GCB__EX }   /* graphemeclusterbreak=ex */,
-  {    11,   316,   934,   5,   6, -UNI_QMARK }   /* qmark=false */,
-  {    85,  2890,    48,   3,   1, UNI_JT__U }   /* jt=u */,
-  {    81,  1102,   449,   4,   4, UNI_PHLI }   /* scx=phli */,
-  {    37,  2726,  1464,   3,   2, UNI_ZS }   /* gc=zs */,
-  {    14,  4291,  5021,   9,   3, UNI_LB__CL }   /* linebreak=cl */,
-  {    13,   555,  7171,   3,   3, UNI_AGE__12 }   /* age=12 */,
-  {     0,  1796,   441,   7,   4, UNI_OLCK }   /* script=olck */,
-  {   204,  3474,  4857,   6,   5, UNI_INTAMIL }   /* block=tamil */,
-  {     0,  1879,  5661,   4,  19, UNI_MERO }   /* blk=meroitichieroglyphs */,
-  {     0,  1009,     0,   4,   0, UNI_LYCI }   /* lyci */,
-  {   270,   524,  8488,   5,   3, UNI_PATSYN }   /* patsyn=t */,
-  {     0,  1879,  1470,   4,   8, UNI_INBUGINESE }   /* blk=buginese */,
-  {     1,  4355,   880,  17,   7, UNI_ZZZZ }   /* scriptextensions=unknown */,
-  {    26,     8,  1412,   1,   4, UNI_XPOSIXCNTRL }   /* gc=cc */,
-  {    11,  7201,  2290,  16,   6, UNI_N }   /* generalcategory=number */,
-  {     2,   343,  2195,   3,   2, UNI_CCC__6 }   /* ccc=6 */,
-  {    32,  6114,  1117,   3,   8, UNI_SC__TAGB }   /* sc=tagbanwa */,
-  {     1,  6114,   618,   3,   7, UNI_ELYM }   /* sc=elymaic */,
-  {    20,  3474,   991,   6,   6, UNI_INHATRAN }   /* block=hatran */,
-  {     2,   275,  4338,   4,  17, UNI_RI }   /* gcb=regionalindicator */,
-  {     0,   464,  1383,   2,   4, UNI_IDST }   /* isidst */,
-  {     0,  7880,  8407,   5,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* iscjkcompatibilityideographs */,
-  {     1,  3748,   518,  14,   2, UNI_NV__1_SLASH_5 }   /* numericvalue=1/5 */,
-  {     0,   156,     0,   4,   0, UNI_OUGR }   /* ougr */,
-  {     2,  1478,   957,   8,   5, UNI_GEORGIANEXT }   /* ingeorgianext */,
-  {     1,  1856,   356,   5,   4, UNI_BIDIC }   /* bidic=yes */,
-  {     0,   313,  7473,   2,  27, UNI_ALPHABETICPF }   /* inalphabeticpresentationforms */,
-  {     5,  3474,  1887,   6,   4, UNI_UCAS }   /* block=ucas */,
-  {     4,  6379,  4682,  13,   5, UNI_JG__SADHE }   /* joininggroup=sadhe */,
-  {     3,   313,   372,   2,   6, UNI_INGOTHIC }   /* ingothic */,
-  {   157,   313,   825,   2,   7, UNI_SHAW }   /* inshavian */,
-  {     3,  3474,  1117,   6,   8, UNI_INTAGBANWA }   /* block=tagbanwa */,
-  {     0,  1796,   691,   7,   5, UNI_BATK }   /* script=batak */,
-  {     5,  1796,   794,   7,   4, UNI_SC__KALI }   /* script=kali */,
-  {    41,  4355,  3465,  16,   9, UNI_ETHI }   /* scriptextensions=ethiopic */,
-  {   135,   343,  1236,   4,   2, UNI_CCC__BL }   /* ccc=bl */,
-  {   144,  6570,  1242,   3,   6, UNI_INPHAGSPA }   /* inphagspa */,
-  {    62,  4355,  1241,  17,   4, UNI_PHAG }   /* scriptextensions=phag */,
-  {     9,  4291,  8009,   8,   4, UNI_LB__CJ }   /* linebreak=cj */,
-  {     4,  2193,  2104,   4,   8, UNI_NV__2_SLASH_3 }   /* nv=6.667e-01 */,
-  {     2,  1382,  4370,   3,   2, UNI_xids_values_index }   /* xids= */,
-  {     0,   313,  3381,   2,  15, UNI_NARB }   /* inoldnortharabian */,
-  {     4,   343,   293,   4,   1, UNI_CCC__0 }   /* ccc=0 */,
-  {     5,  3498,     0,   7,   0, UNI_CPRT }   /* cypriot */,
-  {     1,  2926,  1808,   3,  10, UNI_INSORASOMPENG }   /* insorasompeng */,
-  {   144,  6402,  1592,  14,   2, UNI_SB__FO }   /* sentencebreak=fo */,
-  {     1,   464,   232,   2,   4, UNI_XSUX }   /* isxsux */,
-  {     8,  4355,    39,  17,   4, UNI_BATK }   /* scriptextensions=batk */,
-  {    19,  6114,  1255,   3,   7, UNI_SOYO }   /* sc=soyombo */,
-  {     0,  5481,   602,  21,   2, -UNI_CWCF }   /* changeswhencasefolded=n */,
-  {     1,  4355,   611,  17,   7, UNI_ELBA }   /* scriptextensions=elbasan */,
-  {    76,  4515,   934,  18,   2, -UNI_IDST }   /* idstrinaryoperator=f */,
-  {     3,  1991,  2857,  12,  11, UNI_JT__D }   /* joiningtype=dualjoining */,
-  {     0,  5087,  2447,  12,   7, UNI_WB__ML }   /* wordbreak=midletter */,
-  {     0,  3367,  1300,  14,   2, UNI_NV__400 }   /* numericvalue=400 */,
-  {     1,  4202,     0,  17,   0, UNI_KITS }   /* khitansmallscript */,
-  {    22,  1065,   299,   4,   1, UNI_NV__19 }   /* nv=19 */,
-  {     1,  4355,  1353,  17,   9, UNI_PAUC }   /* scriptextensions=paucinhau */,
-  {    39,  2474,  8212,   3,  32, UNI_MISCMATHSYMBOLSB }   /* ismiscellaneousmathematicalsymbolsb */,
-  {     2,    75,     0,   3,   0, UNI_CWU }   /* cwu */,
-  {     0,  6944,  1070,  24,   2, UNI_CCC__31 }   /* canonicalcombiningclass=31 */,
-  {    20,   313,  8078,   2,  32, UNI_IDEOGRAPHICSYMBOLS }   /* inideographicsymbolsandpunctuation */,
-  {     1,  5928,  1329,   3,   2, UNI_VO__TU }   /* vo=tu */,
-  {     6,  1796,  3991,   7,   7, UNI_BRAI }   /* script=braille */,
-  {    80,  1102,   540,   4,   4, UNI_TANG }   /* scx=tang */,
-  {     2,  1879,  4092,   4,  12, UNI_DIACRITICALS }   /* blk=diacriticals */,
-  {     3,   939,   588,   5,   5, UNI_ECOMP }   /* ecomp=true */,
-  {    23,  6112,  4948,   5,  14, UNI_INSC__VOWELDEPENDENT }   /* insc=voweldependent */,
-  {    21,  3474,  6134,   6,  10, UNI_INGLAGOLITIC }   /* block=glagolitic */,
-  {     1,  4355,  4827,  17,   4, UNI_BAMU }   /* scriptextensions=bamu */,
-  {     0,  1764,   434,   3,   2, UNI_INNKO }   /* innko */,
-  {     7,   313,  5949,   2,   6, UNI_YIJING }   /* inyijing */,
-  {     1,  1879,  2275,   4,   3, UNI_INIDC }   /* blk=idc */,
-  {     2,  2496,  2846,   3,  11, UNI_JG__YEHWITHTAIL }   /* jg=yehwithtail */,
-  {     0,  4291,    67,  10,   2, UNI_LB__CP }   /* linebreak=cp */,
-  {     4,  3823,     0,  16,   0, UNI_STERM }   /* sentenceterminal */,
-  {     0,  1102,  8599,   4,  18, UNI_CANS }   /* scx=canadianaboriginal */,
-  {     0,  2232,  5305,   3,  17, UNI_TAIXUANJING }   /* istaixuanjingsymbols */,
-  {     1,  2275,   933,   9,   3, -UNI_IDC }   /* idcontinue=f */,
-  {   200,   464,  4857,   2,  15, UNI_TAMILSUP }   /* istamilsupplement */,
-  {    43,  6114,   806,   3,   4, UNI_SARB }   /* sc=sarb */,
-  {     1,   313,  6447,   2,   5, UNI_MUSIC }   /* inmusic */,
-  {     9,  1755,     0,  11,   0, UNI_MEDF }   /* medefaidrin */,
-  {     2,  1102,  2812,   4,   4, UNI_MAHJ }   /* scx=mahj */,
-  {    10,  2496,  3261,   3,  12, UNI_JG__VERTICALTAIL }   /* jg=verticaltail */,
-  {     6,  1796,   232,   7,   4, UNI_XSUX }   /* script=xsux */,
-  {   163,    34,   529,   1,   7, UNI_INREJANG }   /* inrejang */,
-  {     0,  6114,   240,   3,   4, UNI_ZANB }   /* sc=zanb */,
-  {     0,  2463,   356,   5,   2, UNI_JOINC }   /* joinc=y */,
-  {    25,  1383,   588,   3,   2, UNI_IDS }   /* ids=t */,
-  {     1,  3474,  5322,   6,   8, UNI_INCHEROKEE }   /* block=cherokee */,
-  {     1,  4291,  2915,  10,  11, UNI_LB__EX }   /* linebreak=exclamation */,
-  {   273,  5523,   602,  21,   3, -UNI_CWL }   /* changeswhenlowercased=no */,
-  {     1,   296,  2127,   3,   2, UNI_NV__13 }   /* nv=13 */,
-  {     0,  3474,  5806,   6,  12, UNI_MONGOLIANSUP }   /* block=mongoliansup */,
-  {     0,   464,  1353,   2,   9, UNI_PAUC }   /* ispaucinhau */,
-  {     0,  1975,  3228,   7,   5, UNI_POSIXALNUM }   /* isposixalnum */,
-  {     3,   116,     0,   4,   0, UNI_KNDA }   /* knda */,
-  {    33,  7431,   585,  27,   2, UNI_CCC__22 }   /* canonicalcombiningclass=ccc22 */,
-  {     1,   313,  6303,   2,  23, UNI_COMPATJAMO }   /* inhangulcompatibilityjamo */,
-  {    40,  4122,     0,   9,   0, UNI_XPOSIXLOWER }   /* lowercase */,
-  {     6,   939,   602,   5,   3, -UNI_ECOMP }   /* ecomp=no */,
-  {     0,  8276,  2420,  22,   8, UNI_INSC__TONEMARK }   /* indicsyllabiccategory=tonemark */,
-  {     0,  1102,  1191,   4,   7, UNI_BENG }   /* scx=bengali */,
-  {     1,  7825,  4341,  26,   4, UNI_CJKEXTA }   /* cjkunifiedideographsextensiona */,
-  {     0,  3351,  1298,  14,   5, UNI_NV__216000 }   /* numericvalue=216000 */,
-  {     5,  1441,   602,  10,   2, -UNI_DEP }   /* deprecated=n */,
-  {     4,  4291,  2559,  10,  10, UNI_LB__NS }   /* linebreak=nonstarter */,
-  {     0,  6114,   176,   3,   4, UNI_SC__ROHG }   /* sc=rohg */,
-  {     0,   296,   773,   3,   3, UNI_NV__7_SLASH_2 }   /* nv=7/2 */,
-  {    33,  5586,  2680,  20,   3, UNI_RI }   /* graphemeclusterbreak=ri */,
-  {     5,  2353,  4590,  10,   9, UNI_CYRILLICEXTC }   /* incyrillicextendedc */,
-  {     1,  2018,     0,  12,   0, UNI_GONM }   /* masaramgondi */,
-  {    90,  2678,  4811,   3,  16, UNI_BC__S }   /* bc=segmentseparator */,
-  {     3,  3137,   140,  15,   2, UNI_EA__NA }   /* eastasianwidth=na */,
-  {     0,  3462,     0,  12,   0, UNI_INETHIOPIC }   /* blk=ethiopic */,
-  {    47,   275,  4300,   2,   2, UNI_Z }   /* gc=z */,
-  {     5,  3474,  3839,   6,  16, UNI_TANGUTCOMPONENTS }   /* block=tangutcomponents */,
-  {   170,  6114,   372,   3,   4, UNI_GOTH }   /* sc=goth */,
-  {   291,   464,  3839,   2,   6, UNI_TANG }   /* istangut */,
-  {     1,   464,   742,   2,   4, UNI_MAND }   /* ismand */,
-  {     6,    12,  1079,   1,   7, UNI_POSIXWORD }   /* perlword */,
-  {     2,  4355,  1785,  17,  11, UNI_HMNG }   /* scriptextensions=pahawhhmong */,
-  {     0,   426,  4918,   3,  16, UNI_ALCHEMICAL }   /* inalchemicalsymbols */,
-  {     0,  7527,  3691,   3,  13, UNI_LB__PR }   /* lb=prefixnumeric */,
-  {     4,  6944,   346,  23,   4, UNI_CCC__118 }   /* canonicalcombiningclass=118 */,
-  {    71,   464,   810,   2,   4, UNI_SYRC }   /* issyrc */,
-  {    29,   581,   585,   5,   2, UNI_CCC__BR }   /* ccc=222 */,
-  {    14,   296,   396,   3,   2, UNI_NV__15 }   /* nv=15 */,
-  {    25,  4355,   743,  18,   6, UNI_MAND }   /* scriptextensions=mandaic */,
-  {   124,  7201,  3151,  15,  13, UNI_NL }   /* generalcategory=letternumber */,
-  {     8,   536,  5075,   3,   5, UNI_SB__AT }   /* sb=aterm */,
-  {     2,   464,  2033,   2,   5, UNI_XPOSIXALPHA }   /* isalpha */,
-  {    33,  2974,  1303,  11,   2, UNI_IN__3_DOT_2 }   /* presentin=v32 */,
-  {     2,  4355,   790,  17,   4, UNI_HMNP }   /* scriptextensions=hmnp */,
-  {     2,  6039,  1037,  13,   4, UNI_MYANMAREXTB }   /* block=myanmarextb */,
-  {     2,  7823,  5183,  28,   4, UNI_CJKEXTE }   /* incjkunifiedideographsextensione */,
-  {     4,  1102,  1614,   4,  10, UNI_WARA }   /* scx=warangciti */,
-  {    40,  6114,  3933,   3,   4, UNI_SC__MODI }   /* sc=modi */,
-  {    26,  5087,  1837,  10,   8, UNI_WB__EB }   /* wordbreak=ebasegaz */,
-  {     7,   464,   818,   2,   7, UNI_SHRD }   /* issharada */,
-  {     0,  1102,   244,   4,   4, UNI_ZYYY }   /* scx=zyyy */,
-  {    12,   313,  1009,   2,   6, UNI_INLYCIAN }   /* inlycian */,
-  {   169,  1102,   212,   4,   4, UNI_TGLG }   /* scx=tglg */,
-  {     0,  4322,  2137,  14,   8, UNI_NV__1_SLASH_3 }   /* numericvalue=3.333e-01 */,
-  {     5,  4355,  2812,  17,   4, UNI_MAHJ }   /* scriptextensions=mahj */,
-  {   129,  6944,   433,  24,   2, UNI_CCC__7 }   /* canonicalcombiningclass=nk */,
-  {    66,  1377,   703,   3,   2, UNI_WB__EB }   /* wb=em */,
-  {     0,  3367,     0,  14,   0, UNI_NV__4 }   /* numericvalue=4 */,
-  {    17,  2274,   934,   4,   6, -UNI_XIDC }   /* xidc=false */,
-  {     8,   600,     0,   7,   0, UNI_DT__NONE }   /* dt=none */,
-  {    33,   464,  3381,   2,  15, UNI_NARB }   /* isoldnortharabian */,
-  {     0,  5099,  5888,   6,   5, UNI__PERL_NCHAR }   /* _perl_nchar */,
-  {     1,  7880,  1434,   5,   7, UNI_CJKSTROKES }   /* iscjkstrokes */,
-  {    35,  2275,   356,   3,   4, UNI_IDC }   /* idc=yes */,
-  {    32,     2,   258,   1,   3, UNI_CWCF }   /* cwcf */,
-  {     5,  4355,   180,  17,   4, UNI_RUNR }   /* scriptextensions=runr */,
-  {     0,  4783,   355,   9,   5, UNI_XPOSIXSPACE }   /* whitespace=yes */,
-  {    34,  1796,  1094,   7,   4, UNI_MERC }   /* script=merc */,
-  {     1,  3669,   135,   4,   2, UNI_JG__MIM }   /* jg=mim */,
-  {     0,  1879,  4793,   4,   4, UNI_RUMI }   /* blk=rumi */,
-  {    18,   313,  5631,   2,   5, UNI_INGREEK }   /* ingreek */,
-  {    12,  2948,  3477,  11,   3, UNI_nfcqc_values_index }   /* nfcquickcheck= */,
-  {     1,  7823,  6505,  27,   5, UNI_CJKEXTC }   /* incjkunifiedideographsextensionc */,
-  {     0,    34,   832,   1,   5, UNI_TERM }   /* isterm */,
-  {    73,  6114,   425,   3,   4, UNI_SC__LINA }   /* sc=lina */,
-  {    13,  1102,   477,   4,   4, UNI_VAI }   /* scx=vaii */,
-  {     2,  1796,  2740,   7,   4, UNI_SC__COPT }   /* script=copt */,
-  {    66,  1102,   806,   4,   4, UNI_SARB }   /* scx=sarb */,
-  {     3,  6944,   351,  24,   2, UNI_CCC__91 }   /* canonicalcombiningclass=91 */,
-  {     1,  7527,  3285,   3,  12, UNI_LB__HL }   /* lb=hebrewletter */,
-  {     1,  2926,  2727,   3,   7, UNI_INSC__OTHER }   /* insc=other */,
-  {     3,   464,  2812,   2,  12, UNI_MAHJONG }   /* ismahjongtiles */,
-  {     4,   313,  1487,   2,   8, UNI_JAMOEXTA }   /* injamoexta */,
-  {   148,    34,  6438,   1,   2, UNI_Z }   /* isz */,
-  {     0,   313,  4582,   2,  16, UNI_BOPOMOFOEXT }   /* inbopomofoextended */,
-  {     0,  4776,   587,  16,   6, UNI__PERL_PATWS }   /* patternwhitespace=true */,
-  {     0,  7068,   356,  26,   2, UNI_PCM }   /* prependedconcatenationmark=y */,
-  {    22,  4996,  5375,  13,   7, UNI_JG__MANICHAEANDHAMEDH }   /* jg=manichaeandhamedh */,
-  {     0,   464,   909,   2,   8, UNI_BALI }   /* isbalinese */,
-  {     4,   681,     0,   5,   0, UNI_RUNR }   /* runic */,
-  {     0,  2275,   587,   9,   3, UNI_IDC }   /* idcontinue=t */,
-  {     0,  5844,   837,   6,   3, UNI_SUPPUAA }   /* issuppuaa */,
-  {     2,  6570,  6581,   5,  13, UNI_INPC__BOTTOMANDLEFT }   /* inpc=bottomandleft */,
-  {     0,  1796,  3637,   7,   4, UNI_LISU }   /* script=lisu */,
-  {    29,  1796,  1220,   7,   4, UNI_MAKA }   /* script=maka */,
-  {    15,  4355,  3498,  17,   7, UNI_CPRT }   /* scriptextensions=cypriot */,
-  {     0,  2443,   356,   5,   2, UNI_CASED }   /* cased=y */,
-  {   134,   383,   934,   6,   6, -UNI_HYPHEN }   /* hyphen=false */,
-  {     0,  1478,  6878,   5,  12, UNI_GEOMETRICSHAPES }   /* ingeometricshapes */,
-  {    12,  6944,  5464,  24,  13, UNI_CCC__202 }   /* canonicalcombiningclass=attachedbelow */,
-  {   139,  6011,   612,   7,   6, UNI_INELBASAN }   /* block=elbasan */,
-  {     0,  7431,  7173,  27,   2, UNI_CCC__28 }   /* canonicalcombiningclass=ccc28 */,
-  {     2,  2496,   705,  10,   4, UNI_JG__AFRICANNOON }   /* jg=africannoon */,
-  {     0,  1464,     0,   2,   0, UNI_ZS }   /* zs */,
-  {     2,  7584,  1823,  18,   3, UNI_DT__SUB }   /* decompositiontype=sub */,
-  {     0,  1383,   934,   3,   2, -UNI_IDS }   /* ids=f */,
-  {     0,  4355,   132,  17,   4, UNI_MTEI }   /* scriptextensions=mtei */,
-  {     3,     5,  3933,   1,   3, UNI_EMOD }   /* emod */,
-  {     0,  3450,  6528,   5,  21, UNI_INDICNUMBERFORMS }   /* blk=commonindicnumberforms */,
-  {     1,  1879,  5340,   4,  10, UNI_INDEVANAGARI }   /* blk=devanagari */,
-  {     1,  6379,    24,  13,   2, UNI_JG__HE }   /* joininggroup=he */,
-  {   128,  3779,  1300,  14,   2, UNI_NV__700 }   /* numericvalue=700 */,
-  {     1,  1796,   164,   7,   4, UNI_PHNX }   /* script=phnx */,
-  {     0,  2454,  3599,   9,   9, UNI_GEORGIANEXT }   /* isgeorgianextended */,
-  {     1,  4996,   639,  13,   3, UNI_JG__MANICHAEANNUN }   /* jg=manichaeannun */,
-  {     3,  2692,  2665,   5,  13, UNI_ANCIENTSYMBOLS }   /* blk=ancientsymbols */,
-  {   138,   698,  5174,   4,  12, UNI_PO }   /* otherpunctuation */,
-  {     0,  1975,     0,   3,   0, UNI_P }   /* isp */,
-  {    67,  4355,    19,  17,   4, UNI_AGHB }   /* scriptextensions=aghb */,
-  {     2,   464,   854,   2,   7, UNI_TAVT }   /* istaiviet */,
-  {   263,   464,   909,   2,   4, UNI_BALI }   /* isbali */,
-  {   131,  3474,  2652,   6,  13, UNI_VERTICALFORMS }   /* block=verticalforms */,
-  {     0,  4302,  5620,   5,   3, -UNI_XPOSIXSPACE }   /* wspace=n */,
-  {     2,  4338,     0,  17,   0, UNI_RI }   /* regionalindicator */,
-  {     2,  1879,   326,   4,   5, UNI_VSSUP }   /* blk=vssup */,
-  {     2,   337,     0,   4,   0, UNI_CARI }   /* cari */,
-  {     1,  2483,  1082,   8,   4, UNI_XPOSIXWORD }   /* isxposixword */,
-  {     1,  3794,  2080,  14,   8, UNI_NV__17_SLASH_2 }   /* numericvalue=8.500e+00 */,
-  {     1,  1796,  1529,   7,   4, UNI_KHAR }   /* script=khar */,
-  {     2,  1879,  5825,   4,  12, UNI_SUNDANESESUP }   /* blk=sundanesesup */,
-  {     1,   296,  1071,   3,   4, UNI_NV__1_SLASH_12 }   /* nv=1/12 */,
-  {    36,  7201,   330,  16,   2, UNI_PF }   /* generalcategory=pf */,
-  {     8,  6379,  6392,  13,  10, UNI_JG__AFRICANQAF }   /* joininggroup=africanqaf */,
-  {     5,  1102,   453,   4,   4, UNI_MIAO }   /* scx=plrd */,
-  {     8,  7208,  4122,   9,  15, UNI_LOWERCASELETTER }   /* category=lowercaseletter */,
-  {     0,  4515,   356,  18,   4, UNI_IDST }   /* idstrinaryoperator=yes */,
-  {    89,  4291,  4261,  10,  14, UNI_LB__PO }   /* linebreak=postfixnumeric */,
-  {   207,  6402,    37,  14,   2, UNI_SB__ST }   /* sentencebreak=st */,
-  {     0,  7201,  3514,  16,  13, UNI_ZL }   /* generalcategory=lineseparator */,
-  {     2,  1951,     0,   7,   0, UNI_SOGD }   /* sogdian */,
-  {   222,  6114,   441,   3,   4, UNI_OLCK }   /* sc=olck */,
-  {     0,  7660,   356,  17,   4, UNI_VS }   /* variationselector=yes */,
-  {    29,   313,  3188,   2,  15, UNI_INIMPERIALARAMAIC }   /* inimperialaramaic */,
-  {   259,  4996,  4677,  13,   5, UNI_JG__MANICHAEANGIMEL }   /* jg=manichaeangimel */,
-  {     0,    12,   458,   1,   3, UNI_PRTI }   /* prti */,
-  {   158,   464,  6728,   2,  11, UNI_MTEI }   /* ismeeteimayek */,
-  {     3,  3823,   356,  16,   2, UNI_STERM }   /* sentenceterminal=y */,
-  {     2,  3669,   702,   4,   3, UNI_JG__MEEM }   /* jg=meem */,
-  {     1,  2726,   203,   3,   2, UNI_TITLE }   /* gc=lt */,
-  {     0,  1704,  1141,   6,   3, UNI_ARABICPFA }   /* arabicpfa */,
-  {    16,  7317,   278,   9,   2, UNI_BC__B }   /* bidiclass=b */,
-  {     5,   313,   144,   2,   4, UNI_INNEWA }   /* innewa */,
-  {   129,  3137,    21,  15,   1, UNI_EA__H }   /* eastasianwidth=h */,
-  {     4,    34,  1547,   1,   2, UNI_N }   /* isn */,
-  {     0,   464,  5304,   2,  11, UNI_TAIXUANJING }   /* istaixuanjing */,
-  {     0,  7823,  1698,   5,   4, UNI_CJKEXTF }   /* incjkextf */,
-  {     2,  1539,  7908,   3,  15, UNI_CUNEIFORMNUMBERS }   /* iscuneiformnumbers */,
-  {     0,  4122,   355,   8,   5, UNI_XPOSIXLOWER }   /* lowercase=yes */,
-  {    36,  2355,  4590,   8,   9, UNI_CYRILLICEXTC }   /* cyrillicextendedc */,
-  {    33,  4302,   587,   5,   3, UNI_XPOSIXSPACE }   /* wspace=t */,
-  {     0,   464,  5718,   2,   4, UNI_EMOD }   /* isemod */,
-  {    24,  7201,   203,  16,   2, UNI_TITLE }   /* generalcategory=lt */,
-  {     0,    15,  4918,   1,  16, UNI_ALCHEMICAL }   /* alchemicalsymbols */,
-  {     1,  1879,   847,   4,   7, UNI_INTAITHAM }   /* blk=taitham */,
-  {     0,  7584,   242,  18,   2, UNI_DT__NB }   /* decompositiontype=nb */,
-  {     0,    15,  2285,   1,  12, UNI_AEGEANNUMBERS }   /* aegeannumbers */,
-  {     5,  7527,  2016,   3,   2, UNI_GCB__V }   /* lb=jv */,
-  {   139,  8244,  2335,   8,   5, UNI_CJKEXTE }   /* block=cjkexte */,
-  {     8,  6402,  2277,  15,   8, UNI_SB__SC }   /* sentencebreak=scontinue */,
-  {     1,  2625,   588,  13,   5, UNI_PATSYN }   /* patternsyntax=true */,
-  {     0,   313,  1117,   2,   8, UNI_INTAGBANWA }   /* intagbanwa */,
-  {     4,   464,  5907,   2,   4, UNI_SINH }   /* issinh */,
-  {     5,   632,   587,   5,   6, UNI_GRBASE }   /* grbase=true */,
-  {     0,  3367,  6199,  14,   5, UNI_NV__400000 }   /* numericvalue=400000 */,
-  {     3,  1879,  4107,   4,  15, UNI_INHANGUL }   /* blk=hangulsyllables */,
-  {   158,  6114,    15,   3,   4, UNI_SC__ADLM }   /* sc=adlm */,
-  {   132,  7208,    17,   9,   2, UNI_LM }   /* category=lm */,
-  {     0,   887,   549,   5,   3, UNI_AGE__13 }   /* age=13.0 */,
-  {     4,  1102,  1027,   4,   4, UNI_YEZI }   /* scx=yezi */,
-  {     0,  1383,   356,   4,   4, UNI_IDST }   /* idst=yes */,
-  {     0,  3474,  7290,   6,  27, UNI_OCR }   /* block=opticalcharacterrecognition */,
-  {     1,  2486,     0,  10,   0, UNI_POSIXBLANK }   /* posixblank */,
-  {    24,  1216,  1037,   4,   4, UNI_KANAEXTB }   /* kanaextb */,
-  {     2,  1777,     0,   6,   0, UNI_NV__100 }   /* nv=100 */,
-  {     0,  4515,   602,  18,   3, -UNI_IDST }   /* idstrinaryoperator=no */,
-  {     6,  3188,     0,  15,   0, UNI_ARMI }   /* imperialaramaic */,
-  {     1,  8533,  8319,   9,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* block=supsymbolsandpictographs */,
-  {     0,   343,  6240,   2,   3, UNI_CCC__L }   /* ccc=l */,
-  {   521,  1796,  1371,   7,   4, UNI_SC__THAA }   /* script=thaa */,
-  {    12,  2692,  4442,  10,   9, UNI_ARABICEXTB }   /* blk=arabicextendedb */,
-  {    16,  4302,   933,   5,   7, -UNI_XPOSIXSPACE }   /* wspace=false */,
-  {     1,   925,     0,   8,   0, UNI_BPT__O }   /* bpt=open */,
-  {    10,   887,  2172,   5,   3, UNI_AGE__12 }   /* age=12.0 */,
-  {     0,  3474,  1015,   6,   6, UNI_INTELUGU }   /* block=telugu */,
-  {     0,   844,   933,   2,   7, -UNI_LOE }   /* loe=false */,
-  {     0,  3474,  3381,   6,  15, UNI_NARB }   /* block=oldnortharabian */,
-  {     1,  7208,  1977,   9,   2, UNI_PO }   /* category=po */,
-  {    51,  8244,  4464,   9,   4, UNI_CJKEXTC }   /* block=cjkextc */,
-  {     0,  7208,   256,   9,   2, UNI_CASEDLETTER }   /* category=lc */,
-  {    19,  1796,  4392,   7,  11, UNI_SGNW }   /* script=signwriting */,
-  {     0,   671,     0,   5,   0, UNI_OGAM }   /* ogham */,
-  {     0,  1383,   356,   7,   2, UNI_IDS }   /* idstart=y */,
-  {    33,   464,  1353,   2,   4, UNI_PAUC }   /* ispauc */,
-  {     0,  3090,  5812,   9,   6, UNI_GEORGIANSUP }   /* blk=georgiansup */,
-  {     0,  2260,   549,   4,   3, UNI_IN__13 }   /* in=13.0 */,
-  {     0,  1796,   204,   7,   4, UNI_TAVT }   /* script=tavt */,
-  {     1,   126,   184,   2,   2, UNI_TNSA }   /* tnsa */,
-  {     1,  1065,  2088,   4,   8, UNI_NV__1_SLASH_64 }   /* nv=1.562e-02 */,
-  {     4,  7688,  4190,  23,   4, UNI_JG__MANICHAEANYODH }   /* joininggroup=manichaeanyodh */,
-  {     0,  5586,   163,  21,   2, UNI_GCB__PP }   /* graphemeclusterbreak=pp */,
-  {     2,  2033,   934,   5,   6, -UNI_XPOSIXALPHA }   /* alpha=false */,
-  {     7,  7584,  7135,  17,   4, UNI_DT__SUP }   /* decompositiontype=sup */,
-  {   257,  7208,  6635,  12,   8, UNI_LO }   /* category=otherletter */,
-  {     0,   536,   959,   3,   6, UNI_SB__EX }   /* sb=extend */,
-  {     0,  5502,     0,  21,   0, UNI_CWCM }   /* changeswhencasemapped */,
-  {     9,  3474,  1234,   6,   7, UNI_NB }   /* block=noblock */,
-  {    28,  3474,  4582,   6,  11, UNI_BOPOMOFOEXT }   /* block=bopomofoext */,
-  {     1,  5136,  5038,   5,  18, UNI_MODIFIERTONELETTERS }   /* blk=modifiertoneletters */,
-  {     0,  3000,   588,  13,   2, UNI_QMARK }   /* quotationmark=t */,
-  {    30,  4433,  4629,   8,  12, UNI_LATIN1 }   /* blk=latin1supplement */,
-  {    72,  2260,  2172,   4,   3, UNI_IN__12 }   /* in=12.0 */,
-  {     0,    34,  1560,   1,  11, UNI_INPHOENICIAN }   /* inphoenician */,
-  {   201,  5186,     0,  20,   0, UNI_EXTPICT }   /* extendedpictographic */,
-  {    98,  8590,     0,  44,   0, UNI_UCASEXT }   /* isunifiedcanadianaboriginalsyllabicsextended */,
-  {     0,  3669,  4655,  12,   3, UNI_JG__MALAYALAMTTA }   /* jg=malayalamtta */,
-  {     6,   343,     0,   7,   0, UNI_CCC__118 }   /* ccc=118 */,
-  {     0,   496,     0,   4,   0, UNI_KHOJ }   /* khoj */,
-  {     0,  4355,   128,  17,   4, UNI_MEDF }   /* scriptextensions=medf */,
-  {    32,  6594,     0,   4,   0, UNI_BRAH }   /* brah */,
-  {    68,  5502,   356,  21,   4, UNI_CWCM }   /* changeswhencasemapped=yes */,
-  {    57,  6402,    10,  14,   2, UNI_LB__CR }   /* sentencebreak=cr */,
-  {   305,  7527,  2549,   3,  10, UNI_LB__BA }   /* lb=breakafter */,
-  {     0,  8182,     0,  27,   0, UNI_INPC__TOP }   /* indicpositionalcategory=top */,
-  {     4,  1879,  3933,   4,   4, UNI_INMODI }   /* blk=modi */,
-  {   329,  1102,   287,   4,   5, UNI_NSHU }   /* scx=nushu */,
-  {    24,  2726,   334,   3,   2, UNI_PD }   /* gc=pd */,
-  {     4,  7208,   229,   9,   2, UNI_PE }   /* category=pe */,
-  {    33,   464,     0,   2,   2, UNI_CASEDLETTER }   /* isl& */,
-  {     0,  1796,   152,   7,   4, UNI_OSGE }   /* script=osge */,
-  {     0,  1879,  5340,   4,  18, UNI_DEVANAGARIEXT }   /* blk=devanagariextended */,
-  {     0,  5844,  8319,  14,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* issupplementalsymbolsandpictographs */,
-  {   242,   464,  5214,   2,   9, UNI_HALFMARKS }   /* ishalfmarks */,
-  {    14,    14,  1539,   1,   9, UNI_MISCARROWS }   /* miscarrows */,
-  {     3,  6944,   348,  25,   2, UNI_CCC__BL }   /* canonicalcombiningclass=218 */,
-  {     0,   502,     0,   6,   0, UNI_LYDI }   /* lydian */,
-  {     0,  1539,  5643,   3,  10, UNI_COUNTINGROD }   /* iscountingrod */,
-  {     1,  2153,  1300,   4,   3, UNI_NV__4000 }   /* nv=4000 */,
-  {    28,   661,  1662,   2,   4, UNI_DOMINO }   /* domino */,
-  {     0,  5481,   588,  21,   5, UNI_CWCF }   /* changeswhencasefolded=true */,
-  {     1,  1590,     0,   2,   0, UNI_LOWERCASELETTER }   /* ll */,
-  {     1,  5748,  8319,   5,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* insupsymbolsandpictographs */,
-  {  1024,  2363,   623,   8,   5, UNI_ETHIOPICEXT }   /* inethiopicext */,
-  {     1,  1102,   120,   4,   3, UNI_LAO }   /* scx=lao */,
-  {     0,  6112,  1503,   5,   5, UNI_INSC__BINDU }   /* insc=bindu */,
-  {   790,  1465,  3517,   4,  10, UNI_ZS }   /* spaceseparator */,
-  {    13,  1377,   546,   3,   3, UNI_WB__EB }   /* wb=ebg */,
-  {     0,  6944,  1650,  24,   2, UNI_CCC__1 }   /* canonicalcombiningclass=ov */,
-  {     0,   313,  3435,   2,  15, UNI_INZANABAZARSQUARE }   /* inzanabazarsquare */,
-  {    13,  4355,   676,  17,   5, UNI_OSGE }   /* scriptextensions=osage */,
-  {  1032,  7208,    12,   9,   2, UNI_PC }   /* category=pc */,
-  {   121,  3338,   602,  13,   2, UNI_DT__CAN }   /* nfdquickcheck=n */,
-  {  1032,   464,   316,   2,   5, UNI_QMARK }   /* isqmark */,
-  {     0,  1117,     0,   8,   0, UNI_TAGB }   /* tagbanwa */,
-  {   131,  6114,   790,   3,   4, UNI_HMNP }   /* sc=hmnp */,
-  {    35,  3474,   983,   6,   8, UNI_INHIRAGANA }   /* block=hiragana */,
-  {     1,  1796,  1003,   7,   6, UNI_LEPC }   /* script=lepcha */,
-  {   128,  1796,  2042,   8,  11, UNI_MEND }   /* script=mendekikakui */,
-  {    78,  1879,  1317,   4,   9, UNI_INOLDPERMIC }   /* blk=oldpermic */,
-  {     5,  1796,   429,   7,   3, UNI_MRO }   /* script=mro */,
-  {     0,   313,  1326,   2,   9, UNI_INOLDTURKIC }   /* inoldturkic */,
-  {    34,  6114,  1561,   3,  10, UNI_PHNX }   /* sc=phoenician */,
-  {     0,   464,  3188,   2,  15, UNI_ARMI }   /* isimperialaramaic */,
-  {     1,   644,     0,   6,   0, UNI_LB__H2 }   /* hst=lv */,
-  {     0,   464,  5523,   2,  21, UNI_CWL }   /* ischangeswhenlowercased */,
-  {     0,    36,   934,   2,   2, -UNI_VS }   /* vs=f */,
-  {     0,  4450,  5206,   7,  17, UNI_HALFMARKS }   /* block=combininghalfmarks */,
-  {     3,  4355,  1951,  17,   4, UNI_SOGD }   /* scriptextensions=sogd */,
-  {     0,  2961,  3061,  12,   5, UNI_NT__DI }   /* numerictype=digit */,
-  {     0,  6114,  1027,   3,   6, UNI_SC__YEZI }   /* sc=yezidi */,
-  {  1550,  8244,  5366,  26,  10, UNI_CJKEXTD }   /* block=cjkunifiedideographsextensiond */,
-  {     1,  2275,   356,   3,   2, UNI_IDC }   /* idc=y */,
-  {    32,  3351,   523,  14,   1, UNI_NV__27 }   /* numericvalue=27 */,
-  {     0,   313,  1424,   2,  10, UNI_INCHORASMIAN }   /* inchorasmian */,
-  {   257,    34,  5321,   1,   5, UNI_CHER }   /* ischer */,
-  {     0,   632,   933,   5,   3, -UNI_GRBASE }   /* grbase=f */,
-  {     4,  2726,  1590,   3,   2, UNI_LOWERCASELETTER }   /* gc=ll */,
-  {   581,  6134,  6142,   8,  12, UNI_GLAGOLITICSUP }   /* glagoliticsupplement */,
-  {     2,  1102,   901,   4,   8, UNI_ARMN }   /* scx=armenian */,
-  {     3,  5087,   546,  10,   3, UNI_WB__EB }   /* wordbreak=ebg */,
-  {   256,  4355,  1202,  17,   4, UNI_THAI }   /* scriptextensions=thai */,
-  {     0,  3669,   532,  12,   2, UNI_JG__MALAYALAMJA }   /* jg=malayalamja */,
-  {     2,  1796,   301,   7,   5, UNI_SC__ORYA }   /* script=oriya */,
-  {     4,   160,     0,   4,   0, UNI_PHLP }   /* phlp */,
-  {     2,  2394,  4442,   7,   9, UNI_MYANMAREXTB }   /* myanmarextendedb */,
-  {     4,   464,  1280,   2,   9, UNI_NBAT }   /* isnabataean */,
-  {     2,  1441,     0,  10,   0, UNI_DEP }   /* deprecated */,
-  {    62,   464,   236,   2,   2, UNI_YI }   /* isyi */,
-  {     9,  6379,  1988,  13,   3, UNI_JG__WAW }   /* joininggroup=waw */,
-  {   820,   477,     0,   4,   0, UNI_VAI }   /* vaii */,
-  {    10,  7201,  1590,  16,   2, UNI_LOWERCASELETTER }   /* generalcategory=ll */,
-  {     5,   270,   588,   3,   5, UNI_CWT }   /* cwt=true */,
-  {     0,  4355,  1021,  17,   6, UNI_WCHO }   /* scriptextensions=wancho */,
-  {    13,   383,   934,   6,   2, -UNI_HYPHEN }   /* hyphen=f */,
-  {    44,   719,  3582,   5,   3, UNI_KANGXI }   /* inkangxi */,
-  {   513,  6114,  1202,   3,   4, UNI_THAI }   /* sc=thai */,
-  {     3,    14,  3149,   2,   3, UNI_math_values_index }   /* math= */,
-  {     1,  7527,  4598,   3,  16, UNI_LB__CL }   /* lb=closepunctuation */,
-  {     0,  5147,  5797,  11,   9, UNI_LATINEXTA }   /* block=latinextendeda */,
-  {   157,    23,   356,   4,   2, UNI_POSIXXDIGIT }   /* ahex=y */,
-  {     1,  4355,   236,  17,   4, UNI_YI }   /* scriptextensions=yiii */,
-  {     0,   378,   356,   5,   2, UNI_GREXT }   /* grext=y */,
-  {     6,  7201,   317,  16,   4, UNI_M }   /* generalcategory=mark */,
-  {  1137,  1102,  3453,   3,   9, UNI_CYRL }   /* scx=cyrillic */,
-  {     0,   343,  5464,   4,  13, UNI_CCC__202 }   /* ccc=attachedbelow */,
-  {  1081,  3351,   771,  13,   2, UNI_NV__21 }   /* numericvalue=21 */,
-  {  1031,   257,   934,   4,   6, -UNI_CWCF }   /* cwcf=false */,
-  {     0,  7132,  4388,   6,  15, UNI_SUTTONSIGNWRITING }   /* blk=suttonsignwriting */,
-  {     0,  7182,  3571,   3,  11, UNI_CJKCOMPATFORMS }   /* cjkcompatforms */,
-  {    32,  3285,     0,   4,   0, UNI_HEBR }   /* hebr */,
-  {     0,  7208,   103,   9,   2, UNI_UPPERCASELETTER }   /* category=lu */,
-  {     0,  3622,  2579,   3,  12, UNI_LOWSURROGATES }   /* islowsurrogates */,
-  {     0,  1102,   322,   5,   4, UNI_TALE }   /* scx=taile */,
-  {     0,  6570,     0,   8,   0, UNI_INPC__TOP }   /* inpc=top */,
-  {  1217,   536,   310,   3,   2, UNI_SB__SP }   /* sb=sp */,
-  {     0,  3053,     0,   5,   0, UNI_ASCII }   /* ascii */,
-  {     0,  4355,  4392,  17,  11, UNI_SGNW }   /* scriptextensions=signwriting */,
-  {    25,  4291,  1747,  10,   8, UNI_LB__NL }   /* linebreak=nextline */,
-  {     1,  2253,     0,  10,   0, UNI_in_values_index }   /* presentin= */,
-  {     1,  1879,  7403,   4,  28, UNI_SUPPUAA }   /* blk=supplementaryprivateuseareaa */,
-  {     0,  7527,  7740,   3,  11, UNI_LB__ID }   /* lb=ideographic */,
-  {     0,    58,  6030,   2,   9, UNI_SC__GEOR }   /* sc=georgian */,
-  {     6,  1410,  3364,   7,   2, UNI_CCC__23 }   /* ccc=ccc23 */,
-  {    24,  4433,  3638,   5,   6, UNI_LISUSUP }   /* blk=lisusup */,
-  {   235,   313,  1027,   2,   6, UNI_INYEZIDI }   /* inyezidi */,
-  {     0,   555,   389,   4,   3, UNI_AGE__3_DOT_2 }   /* age=3.2 */,
-  {     1,  4433,  4629,   8,   2, UNI_LATIN1 }   /* blk=latin1 */,
-  {   705,  1102,   790,   4,   4, UNI_HMNP }   /* scx=hmnp */,
-  {     1,  7201,    54,  16,   2, UNI_MC }   /* generalcategory=mc */,
-  {     1,   464,  5787,   2,  10, UNI_JAMO }   /* ishanguljamo */,
-  {    15,    34,  6532,   1,  17, UNI_INDICNUMBERFORMS }   /* inindicnumberforms */,
-  {     0,  5502,   588,  21,   5, UNI_CWCM }   /* changeswhencasemapped=true */,
-  {     0,  7584,   607,  18,   4, UNI_EA__F }   /* decompositiontype=wide */,
-  {    16,   464,   951,   2,   4, UNI_DUPL }   /* isdupl */,
-  {     0,  5087,    57,  11,   1, UNI_WB__MN }   /* wordbreak=mn */,
-  {     0,     5,  7733,   1,  28, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* enclosedideographicsupplement */,
-  {   887,  7527,  7473,   3,  10, UNI_LB__AL }   /* lb=alphabetic */,
-  {     0,  1796,   802,   7,   4, UNI_NBAT }   /* script=nbat */,
-  {   148,  3474,   496,   6,   6, UNI_INKHOJKI }   /* block=khojki */,
-  {     7,   847,     0,   7,   0, UNI_LANA }   /* taitham */,
-  {     1,  5607,  6326,  15,   8, UNI_IDENTIFIERTYPE__OBSOLETE }   /* identifiertype=obsolete */,
-  {     0,  2485,   311,   6,   5, UNI_XPOSIXPRINT }   /* xposixprint */,
-  {    70,  2193,     0,   4,   0, UNI_NV__6 }   /* nv=6 */,
-  {     2,  1102,   983,   4,   8, UNI_HIRA }   /* scx=hiragana */,
-  {     0,  5886,   934,  21,   2, -UNI__PERL_NCHAR }   /* noncharactercodepoint=f */,
-  {  1027,   296,  2111,   3,   9, UNI_NV__3_SLASH_16 }   /* nv=1.875e-01 */,
-  {     0,  1879,  7385,   4,  18, UNI_PHONETICEXT }   /* blk=phoneticextensions */,
-  {   724,   464,  3672,   2,   9, UNI_MLYM }   /* ismalayalam */,
-  {     0,  7201,   128,  16,   2, UNI_ME }   /* generalcategory=me */,
-  {   130,  1977,   252,   5,   5, UNI_POSIXCNTRL }   /* posixcntrl */,
-  {     6,  6114,   951,   3,   4, UNI_SC__DUPL }   /* sc=dupl */,
-  {     3,  1410,  2074,   7,   2, UNI_CCC__29 }   /* ccc=ccc29 */,
-  {     2,  2974,   572,  11,   2, UNI_IN__5_DOT_2 }   /* presentin=v52 */,
-  {     1,    36,   588,   2,   2, UNI_VS }   /* vs=t */,
-  {     3,    55,     0,   4,   0, UNI_CANS }   /* cans */,
-  {   129,  4726,  2104,  14,   8, UNI_NV__2_SLASH_3 }   /* numericvalue=6.667e-01 */,
-  {     0,  3734,   602,  14,   2, UNI_NFKCQC__N }   /* nfkcquickcheck=n */,
-  {     4,  1967,   934,   7,   6, -UNI_RADICAL }   /* radical=false */,
-  {  1027,  3474,  6842,   6,  14, UNI_MUSIC }   /* block=musicalsymbols */,
-  {     0,  6114,  1470,   3,   8, UNI_SC__BUGI }   /* sc=buginese */,
-  {     5,  3474,  2241,   6,  12, UNI_PLAYINGCARDS }   /* block=playingcards */,
-  {    35,  2474,  3723,   3,   9, UNI_SM }   /* ismathsymbol */,
-  {    10,  1796,   611,   7,   4, UNI_ELBA }   /* script=elba */,
-  {     0,  4355,  1371,  17,   6, UNI_THAA }   /* scriptextensions=thaana */,
-  {     3,  2193,  1781,   4,   4, UNI_NV__60000 }   /* nv=60000 */,
-  {    11,  1796,  2018,   7,  12, UNI_SC__GONM }   /* script=masaramgondi */,
-  {     0,  3053,     0,  13,   0, UNI_POSIXXDIGIT }   /* asciihexdigit */,
-  {    35,  1879,  1003,   4,   6, UNI_INLEPCHA }   /* blk=lepcha */,
-  {     0,  6833,     0,  23,   0, UNI_BYZANTINEMUSIC }   /* byzantinemusicalsymbols */,
-  {   128,  4338,   588,  17,   2, UNI_RI }   /* regionalindicator=t */,
-  {     0,  6114,   248,   3,   4, UNI_ZZZZ }   /* sc=zzzz */,
-  {     2,  4450,  4007,   7,  14, UNI_CURRENCYSYMBOLS }   /* block=currencysymbols */,
-  {     0,    12,   588,   3,   5, UNI_PCM }   /* pcm=true */,
-  {   520,  4355,   868,  17,   7, UNI_TIRH }   /* scriptextensions=tirhuta */,
-  {    42,  6114,   287,   3,   5, UNI_NSHU }   /* sc=nushu */,
-  {     0,  6402,  1581,  14,   7, UNI_SB__LE }   /* sentencebreak=oletter */,
-  {     1,  2392,  2042,   3,  11, UNI_INMENDEKIKAKUI }   /* inmendekikakui */,
-  {  1056,  5136,  4567,   5,  15, UNI_MISCMATHSYMBOLSB }   /* blk=miscmathsymbolsb */,
-  {    39,  4355,  2740,  17,   4, UNI_COPT }   /* scriptextensions=copt */,
-  {     0,  1879,  3543,   4,  16, UNI_HIGHPUSURROGATES }   /* blk=highpusurrogates */,
-  {   518,  4355,  5825,  17,   9, UNI_SUND }   /* scriptextensions=sundanese */,
-  {  1537,  1702,  5625,   3,  18, UNI_ANCIENTGREEKNUMBERS }   /* isancientgreeknumbers */,
-  {   560,   464,  1440,   2,   2, UNI_SD }   /* issd */,
-  {     8,  7385,     0,  28,   0, UNI_PHONETICEXTSUP }   /* phoneticextensionssupplement */,
-  {     1,   464,   794,   2,   4, UNI_KALI }   /* iskali */,
-  {     9,  3474,  3188,   6,  15, UNI_INIMPERIALARAMAIC }   /* block=imperialaramaic */,
-  {     2,  4355,   909,  17,   4, UNI_BALI }   /* scriptextensions=bali */,
-  {     0,  6114,   405,   3,   4, UNI_ARMN }   /* sc=armn */,
-  {     0,  4355,   337,  17,   4, UNI_CARI }   /* scriptextensions=cari */,
-  {     0,  6379,   487,  13,   3, UNI_JG__HAH }   /* joininggroup=hah */,
-  {     3,  1879,  3991,   4,  15, UNI_BRAI }   /* blk=braillepatterns */,
-  {   645,  7431,  1303,  28,   2, UNI_CCC__132 }   /* canonicalcombiningclass=ccc132 */,
-  {     0,  3763,  2080,  14,   8, UNI_NV__11_SLASH_2 }   /* numericvalue=5.500e+00 */,
-  {     4,   453,     0,   4,   0, UNI_MIAO }   /* plrd */,
-  {     0,   330,     0,   2,   0, UNI_PF }   /* pf */,
-  {   769,  3450,  1895,   5,  11, UNI_CHESSSYMBOLS }   /* blk=chesssymbols */,
-  {     0,  5544,   934,  21,   2, -UNI_CWT }   /* changeswhentitlecased=f */,
-  {     0,  2260,  2322,   3,  10, UNI_IN__NA }   /* in=unassigned */,
-  {     2,  3595,  5584,  11,   3, UNI_LATINEXTG }   /* latinextendedg */,
-  {     0,  4355,   783,  17,   7, UNI_OSMA }   /* scriptextensions=osmanya */,
-  {     0,  1867,   602,  12,   2, -UNI_BIDIM }   /* bidimirrored=n */,
-  {   777,  2483,  2033,   8,   5, UNI_XPOSIXALPHA }   /* isxposixalpha */,
-  {     0,  6944,  3112,  24,  11, UNI_CCC__8 }   /* canonicalcombiningclass=kanavoicing */,
-  {  1282,  6114,   661,   3,   4, UNI_SC__DOGR }   /* sc=dogr */,
-  {     4,  4355,   240,  17,   4, UNI_ZANB }   /* scriptextensions=zanb */,
-  {     0,  7527,  4711,   3,  15, UNI_LB__CB }   /* lb=contingentbreak */,
-  {     5,  6114,  1508,   3,   4, UNI_UGAR }   /* sc=ugar */,
-  {     1,  7688,  1988,  23,   3, UNI_JG__MANICHAEANWAW }   /* joininggroup=manichaeanwaw */,
-  {    29,   833,   602,   4,   2, -UNI_TERM }   /* term=n */,
-  {     1,  7182,  8407,   3,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* cjkcompatibilityideographs */,
-  {     2,   313,  6134,   2,  13, UNI_GLAGOLITICSUP }   /* inglagoliticsup */,
-  {     1,  1102,   651,   4,   5, UNI_ADLM }   /* scx=adlam */,
-  {     0,  1702,   575,   3,   6, UNI_AVST }   /* isavestan */,
-  {     1,  1539,  6750,   3,  24, UNI_CWKCF }   /* ischangeswhennfkccasefolded */,
-  {     1,  1879,   749,   4,   7, UNI_INMARCHEN }   /* blk=marchen */,
-  {     3,  4291,    72,  10,   2, UNI_LB__PR }   /* linebreak=pr */,
-  {     6,  3000,   588,  13,   5, UNI_QMARK }   /* quotationmark=true */,
-  {   526,   581,     0,   6,   0, UNI_CCC__22 }   /* ccc=22 */,
-  {   128,  6944,  8139,  24,  11, UNI_CCC__DB }   /* canonicalcombiningclass=doublebelow */,
-  {     0,  5865,   588,  21,   5, UNI_LOE }   /* logicalorderexception=true */,
-  {     1,   520,  1781,   4,   4, UNI_NV__70000 }   /* nv=70000 */,
-  {     0,  2483,  3060,   7,   6, UNI_XPOSIXDIGIT }   /* isxposixdigit */,
-  {     9,  2274,   602,   4,   3, -UNI_XIDC }   /* xidc=no */,
-  {     0,  1065,  1304,   5,   2, UNI_NV__1_SLASH_20 }   /* nv=1/20 */,
-  {     0,     8,    99,   1,   3, UNI_GURU }   /* guru */,
-  {   128,  1710,  4641,   3,  15, UNI_SYRIACSUP }   /* issyriacsupplement */,
-  {     0,  1102,   861,   4,   7, UNI_TIBT }   /* scx=tibetan */,
-  {     0,   409,   934,   2,   2, -UNI_DI }   /* di=f */,
-  {     0,  2625,   356,  13,   2, UNI_PATSYN }   /* patternsyntax=y */,
-  {     4,   464,  2229,   2,   8, UNI_PHAISTOS }   /* isphaistos */,
-  {     0,  1395,  5797,   5,   9, UNI_LATINEXTA }   /* latinextendeda */,
-  {   800,  1879,   656,   4,   5, UNI_INBUHID }   /* blk=buhid */,
-  {     1,   426,  2665,   3,  13, UNI_ANCIENTSYMBOLS }   /* inancientsymbols */,
-  {     0,  8276,  4934,  22,  14, UNI_INSC__GEMINATIONMARK }   /* indicsyllabiccategory=geminationmark */,
-  {  1029,   296,  1780,   3,   5, UNI_NV__10000 }   /* nv=10000 */,
-  {     2,  4355,   530,  17,   6, UNI_RJNG }   /* scriptextensions=rejang */,
-  {     0,  2802,   623,   8,   5, UNI_ETHIOPICEXT }   /* isethiopicext */,
-  {     0,  1796,  2401,   7,  11, UNI_SC__NAND }   /* script=nandinagari */,
-  {     4,  6944,  8572,  24,  13, UNI_CCC__214 }   /* canonicalcombiningclass=attachedabove */,
-  {     7,  4355,  1271,  17,   9, UNI_SIND }   /* scriptextensions=khudawadi */,
-  {     1,   464,   666,   2,   5, UNI_LIMB }   /* islimbu */,
-  {     2,   909,     0,   4,   0, UNI_BALI }   /* bali */,
-  {     0,  8182,  4038,  24,  12, UNI_INPC__LEFTANDRIGHT }   /* indicpositionalcategory=leftandright */,
-  {     1,   313,  1948,   2,  10, UNI_INOLDSOGDIAN }   /* inoldsogdian */,
-  {     1,  6114,  3885,   3,  17, UNI_AGHB }   /* sc=caucasianalbanian */,
-  {     1,   464,  6919,   2,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* issymbolsforlegacycomputing */,
-  {     0,  8244,  8407,   9,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* block=cjkcompatibilityideographs */,
-  {     0,  3351,  2262,  12,   3, UNI_NV__14 }   /* numericvalue=14 */,
-  {   384,  5886,   588,  21,   2, UNI__PERL_NCHAR }   /* noncharactercodepoint=t */,
-  {     3,   721,   493,   3,   3, UNI_KANBUN }   /* kanbun */,
-  {     3,   464,   661,   2,   5, UNI_DOGR }   /* isdogra */,
-  {   208,  2232,   205,   3,   3, UNI_TAVT }   /* istavt */,
-  {     1,  6570,     0,  17,   0, UNI_INPC__TOPANDBOTTOM }   /* inpc=topandbottom */,
-  {     0,  4291,   322,  10,   2, UNI_LB__AI }   /* linebreak=ai */,
-  {     0,   313,  2195,   2,   2, UNI_IN__6 }   /* in=6 */,
-  {     0,   600,  1127,   3,   3, UNI_DT__FIN }   /* dt=fin */,
-  {     0,  1796,   172,   7,   4, UNI_RJNG }   /* script=rjng */,
-  {     1,   875,     0,   5,   0, UNI_UIDEO }   /* uideo */,
-  {     0,  4872,   493,   9,   3, UNI_KANBUN }   /* block=kanbun */,
-  {     7,  1796,  1198,   7,   4, UNI_SC__GRAN }   /* script=gran */,
-  {  1545,   421,   138,   2,   2, UNI_KHMR }   /* khmr */,
-  {     0,  7584,  4208,  18,   5, UNI_DT__SML }   /* decompositiontype=small */,
-  {   849,  3164,   356,  14,   4, UNI_GREXT }   /* graphemeextend=yes */,
-  {    40,   302,   934,   2,   6, -UNI_RI }   /* ri=false */,
-  {    74,  2253,  2172,  11,   3, UNI_IN__12 }   /* presentin=12.0 */,
-  {  1679,  1478,  6878,   5,  20, UNI_GEOMETRICSHAPESEXT }   /* ingeometricshapesextended */,
-  {     2,  1796,  2695,   6,   5, UNI_SC__ARAB }   /* script=arab */,
-  {     5,  2260,   140,   3,   2, UNI_IN__NA }   /* in=na */,
-  {    25,  1867,   356,   5,   4, UNI_BIDIM }   /* bidim=yes */,
-  {     0,  4291,  3423,  10,   4, UNI_LB__GL }   /* linebreak=glue */,
-  {    17,  6114,  3637,   3,   4, UNI_LISU }   /* sc=lisu */,
-  {     4,  5586,   647,  20,   4, UNI_LB__H3 }   /* graphemeclusterbreak=lvt */,
-  {     2,  1102,   409,   4,   4, UNI_DIAK }   /* scx=diak */,
-  {    21,   343,  5472,   4,   5, UNI_CCC__B }   /* ccc=below */,
-  {     1,  1879,  5322,   4,  18, UNI_CHEROKEESUP }   /* blk=cherokeesupplement */,
-  {     0,  7317,     0,  10,   0, UNI_bc_values_index }   /* bidiclass= */,
-  {     0,   313,  5907,   2,  21, UNI_SINHALAARCHAICNUMBERS }   /* insinhalaarchaicnumbers */,
-  {     0,  4338,   934,  17,   2, -UNI_RI }   /* regionalindicator=f */,
-  {     8,  6114,  5631,   3,   5, UNI_SC__GREK }   /* sc=greek */,
-  {     1,  1382,   934,   8,   6, -UNI_XIDS }   /* xidstart=false */,
-  {     1,  6114,  3309,   3,   4, UNI_MERO }   /* sc=mero */,
-  {     3,   721,  2373,   2,   9, UNI_KATAKANAEXT }   /* katakanaext */,
-  {   840,  1377,  3416,   5,   4, UNI_WB__MN }   /* wb=midnum */,
-  {    14,  6749,   588,  25,   2, UNI_CWKCF }   /* changeswhennfkccasefolded=t */,
-  {     0,  6799,   356,  24,   4, UNI_COMPEX }   /* fullcompositionexclusion=yes */,
-  {     2,  1879,   975,   4,   8, UNI_INGURMUKHI }   /* blk=gurmukhi */,
-  {    14,  1796,   477,   7,   3, UNI_VAI }   /* script=vai */,
-  {     0,  4355,  3396,  17,  15, UNI_SARB }   /* scriptextensions=oldsoutharabian */,
-  {     0,  8276,     0,  31,   0, UNI_INSC__CONSONANT }   /* indicsyllabiccategory=consonant */,
-  {     0,  1377,  2265,   3,   9, UNI_WB__WSEGSPACE }   /* wb=wsegspace */,
-  {     2,   464,   917,   2,   4, UNI_BASS }   /* isbass */,
-  {     0,  1102,    78,   4,   4, UNI_CYRL }   /* scx=cyrl */,
-  {     0,   409,  1175,   2,   2, UNI_dia_values_index }   /* dia= */,
-  {     0,  1395,  1698,   5,   4, UNI_LATINEXTF }   /* latinextf */,
-  {     0,   313,  7791,   2,  32, UNI_INIDC }   /* inideographicdescriptioncharacters */,
-  {     4,  7182,  3571,   3,   6, UNI_CJKCOMPAT }   /* cjkcompat */,
-  {     2,   313,  7660,   2,  18, UNI_INVS }   /* invariationselectors */,
-  {     0,  7201,  6629,  16,  14, UNI_LM }   /* generalcategory=modifierletter */,
-  {     0,  1102,   372,   4,   4, UNI_GOTH }   /* scx=goth */,
-  {     2,  2485,   252,   6,   5, UNI_XPOSIXCNTRL }   /* xposixcntrl */,
-  {     4,  2181,   764,   4,   2, UNI_NV__5_SLASH_2 }   /* nv=5/2 */,
-  {     0,  8007,  1646,   7,   4, UNI_CJKEXTD }   /* blk=cjkextd */,
-  {     7,  1879,     9,   4,   3, UNI_OCR }   /* blk=ocr */,
-  {     1,  3474,   321,   6,   5, UNI_INTAILE }   /* block=taile */,
-  {     0,   313,  3991,   2,  15, UNI_BRAI }   /* inbraillepatterns */,
-  {     4,   581,   348,   5,   2, UNI_CCC__BL }   /* ccc=218 */,
-  {   136,  2205,     0,   4,   0, UNI_NV__8 }   /* nv=8 */,
-  {     2,  2712,   601,  13,   3, -UNI_ECOMP }   /* emojicomponent=n */,
-  {     0,    14,  2591,   1,  12, UNI_MAYANNUMERALS }   /* mayannumerals */,
-  {     7,  4291,  2680,   9,   3, UNI_RI }   /* linebreak=ri */,
-  {     1,  3474,  1362,   6,   9, UNI_INSAMARITAN }   /* block=samaritan */,
-  {     0,  1102,   232,   4,   4, UNI_XSUX }   /* scx=xsux */,
-  {   290,  3474,   196,   6,   4, UNI_TAGS }   /* block=tags */,
-  {   256,  1407,  2733,   3,  13, UNI_INGREEK }   /* ingreekandcoptic */,
-  {     3,  1796,   433,   7,   3, UNI_SC__NKO }   /* script=nko */,
-  {     1,  3351,   348,  13,   2, UNI_NV__18 }   /* numericvalue=18 */,
-  {     0,  1320,     0,   4,   0, UNI_PERM }   /* perm */,
-  {     7,  7823,  6509,   5,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* incjkcompatideographssup */,
-  {     1,  4882,     0,   4,   0, UNI_EGYP }   /* egyp */,
-  {  1137,  1796,  1362,   7,   9, UNI_SAMR }   /* script=samaritan */,
-  {     0,  4107,     0,   4,   0, UNI_HANG }   /* hang */,
-  {     0,  1377,  5718,   3,   9, UNI_WB__EB }   /* wb=emodifier */,
-  {   519,  1102,   236,   4,   4, UNI_YI }   /* scx=yiii */,
-  {     0,     2,   355,   1,   5, UNI_CE }   /* ce=yes */,
-  {     1,  1796,  6134,   7,   4, UNI_SC__GLAG }   /* script=glag */,
-  {     0,  1879,  3637,   4,  14, UNI_LISUSUP }   /* blk=lisusupplement */,
-  {     1,  4355,   144,  17,   4, UNI_NEWA }   /* scriptextensions=newa */,
-  {     2,  1879,  2401,   4,  11, UNI_INNANDINAGARI }   /* blk=nandinagari */,
-  {     0,  6944,   397,  25,   1, UNI_CCC__25 }   /* canonicalcombiningclass=25 */,
-  {    21,    34,  4076,   1,   5, UNI_DASH }   /* isdash */,
-  {     0,  1796,  1009,   7,   6, UNI_LYCI }   /* script=lycian */,
-  {  1536,  2726,  2774,   6,   8, UNI_SO }   /* gc=othersymbol */,
-  {  1564,  5087,   510,  10,   2, UNI_WB__DQ }   /* wordbreak=dq */,
-  {     4,   581,  2263,   5,   2, UNI_CCC__214 }   /* ccc=214 */,
-  {  1039,  4500,   933,   8,   3, -UNI_XPOSIXUPPER }   /* uppercase=f */,
-  {   222,  2712,   588,  14,   2, UNI_ECOMP }   /* emojicomponent=t */,
-  {     0,   409,   588,   2,   2, UNI_DI }   /* di=t */,
-  {     2,  4308,   356,  14,   2, UNI_DT__NONE }   /* nfkdquickcheck=y */,
-  {     0,  6114,  1094,   3,   4, UNI_MERC }   /* sc=merc */,
-  {     0,  3474,   666,   6,   5, UNI_INLIMBU }   /* block=limbu */,
-  {    37,   464,   611,   2,   4, UNI_ELBA }   /* iselba */,
-  {     2,  3974,   602,   4,   3, -UNI_IDSB }   /* idsb=no */,
-  {     0,  3474,   661,   6,   5, UNI_INDOGRA }   /* block=dogra */,
-  {     5,  3164,   934,  14,   2, -UNI_GREXT }   /* graphemeextend=f */,
-  {     0,  6944,   278,  23,   2, UNI_CCC__B }   /* canonicalcombiningclass=b */,
-  {     0,  4485,     0,   9,   0, UNI_TITLE }   /* titlecase */,
-  {     2,  6114,   901,   3,   8, UNI_ARMN }   /* sc=armenian */,
-  {     2,  7182,  6352,   3,  18, UNI_CJKRADICALSSUP }   /* cjkradicalssupplement */,
-  {  1536,  2678,  6264,   3,   3, UNI_BC__PDI }   /* bc=pdi */,
-  {     1,   419,     0,   2,   0, UNI_NO }   /* no */,
-  {     0,  7148,  2074,  25,   2, UNI_CCC__129 }   /* canonicalcombiningclass=129 */,
-  {     1,  4355,   917,  17,   4, UNI_BASS }   /* scriptextensions=bass */,
-  {     0,  2802,  6142,   8,   5, UNI_ETHIOPICSUP }   /* isethiopicsup */,
-  {     1,  1879,  3582,   7,  11, UNI_KANGXI }   /* blk=kangxiradicals */,
-  {     0,     2,   934,   3,   6, -UNI_CWL }   /* cwl=false */,
-  {    24,   464,   401,   2,   4, UNI_MIAO }   /* ismiao */,
-  {     0,  6114,   429,   3,   3, UNI_MRO }   /* sc=mro */,
-  {     6,   464,  3974,   2,  17, UNI_IDSB }   /* isidsbinaryoperator */,
-  {     0,  1967,   602,   7,   2, -UNI_RADICAL }   /* radical=n */,
-  {   148,  4355,   102,  17,   4, UNI_HLUW }   /* scriptextensions=hluw */,
-  {     2,  3474,  3285,   6,   6, UNI_INHEBREW }   /* block=hebrew */,
-  {    29,  4322,   398,  15,   2, UNI_NV__3_SLASH_16 }   /* numericvalue=3/16 */,
-  {   788,  1102,  1571,   4,  10, UNI_SAUR }   /* scx=saurashtra */,
-  {    39,  1796,  1344,   7,   9, UNI_PALM }   /* script=palmyrene */,
-  {     2,   742,     0,   7,   0, UNI_MAND }   /* mandaic */,
-  {    98,   464,  4551,   2,   7, UNI_LINB }   /* islinearb */,
-  {     0,  7208,   110,   9,   2, UNI_ZL }   /* category=zl */,
-  {   517,   306,   934,   5,   6, -UNI__PERL_PATWS }   /* patws=false */,
-  {     3,  7688,  5374,  22,   8, UNI_JG__MANICHAEANDHAMEDH }   /* joininggroup=manichaeandhamedh */,
-  {     5,  1102,   441,   4,   4, UNI_OLCK }   /* scx=olck */,
-  {     2,    34,  6438,   1,  24, UNI_ZNAMENNYMUSIC }   /* isznamennymusicalnotation */,
-  {     1,   378,     0,   5,   0, UNI_GREXT }   /* grext */,
-  {     6,  1382,   345,   3,   2, UNI_xidc_values_index }   /* xidc= */,
-  {     0,   110,     0,   1,   0, UNI_Z }   /* z */,
-  {     0,  7132,   837,   8,   3, UNI_SUPPUAA }   /* blk=suppuaa */,
-  {   133,  3622,  5797,   7,   9, UNI_LATINEXTA }   /* islatinextendeda */,
-  {     0,   313,   656,   2,   5, UNI_INBUHID }   /* inbuhid */,
-  {     0,  7317,  4403,  10,  15, UNI_BC__BN }   /* bidiclass=boundaryneutral */,
-  {     0,    36,   602,   2,   3, -UNI_VS }   /* vs=no */,
-  {     0,  4901,   356,  13,   2, UNI_EMOD }   /* emojimodifier=y */,
-  {     3,  1465,     0,   5,   0, UNI_XPOSIXSPACE }   /* space */,
-  {    20,   464,  1106,   2,   4, UNI_TALU }   /* istalu */,
-  {     0,   600,  1679,   3,   8, UNI_DT__FRA }   /* dt=fraction */,
-  {     7,  6944,  8580,  24,  10, UNI_CCC__AR }   /* canonicalcombiningclass=aboveright */,
-  {     0,  4433,   121,   5,   2, UNI_INLAO }   /* blk=lao */,
-  {     0,  7473,   602,  10,   3, -UNI_XPOSIXALPHA }   /* alphabetic=no */,
-  {     2,  5586,   647,  20,   3, UNI_LB__H2 }   /* graphemeclusterbreak=lv */,
-  {     6,  6749,   934,  25,   2, -UNI_CWKCF }   /* changeswhennfkccasefolded=f */,
-  {     6,   464,    90,   2,   4, UNI_GREK }   /* isgrek */,
-  {     2,  2454,  6878,   5,  15, UNI_GEOMETRICSHAPESEXT }   /* isgeometricshapesext */,
-  {   196,  1796,  1317,   7,   9, UNI_SC__PERM }   /* script=oldpermic */,
-  {     0,  3474,  4467,   6,  18, UNI_COPTICEPACTNUMBERS }   /* block=copticepactnumbers */,
-  {     0,  4338,   278,  17,   1, UNI_ri_values_index }   /* regionalindicator= */,
-  {     0,  1856,   356,   5,   2, UNI_BIDIC }   /* bidic=y */,
-  {     0,   464,  4122,   2,   5, UNI_XPOSIXLOWER }   /* islower */,
-  {     1,  4355,   661,  17,   4, UNI_DOGR }   /* scriptextensions=dogr */,
-  {     0,   736,  7851,   3,  20, UNI_ENCLOSEDALPHANUM }   /* inenclosedalphanumerics */,
-  {    36,   464,  4500,   2,   9, UNI_XPOSIXUPPER }   /* isuppercase */,
-  {     3,  3367,   518,  14,   2, UNI_NV__4_SLASH_5 }   /* numericvalue=4/5 */,
-  {     0,  1796,  1255,   7,   7, UNI_SOYO }   /* script=soyombo */,
-  {     1,   313,  6833,   2,  14, UNI_BYZANTINEMUSIC }   /* inbyzantinemusic */,
-  {  1825,  1400,     0,  10,   0, UNI_BOXDRAWING }   /* boxdrawing */,
-  {     5,  2981,   572,   4,   2, UNI_IN__5_DOT_2 }   /* in=v52 */,
-  {     0,   916,  5620,   4,   3, -UNI_EBASE }   /* ebase=n */,
-  {     0,   581,   394,   5,   2, UNI_CCC__DA }   /* ccc=234 */,
-  {    89,   343,   891,   4,   2, UNI_CCC__10 }   /* ccc=10 */,
-  {     0,  7740,   588,  11,   5, UNI_IDEO }   /* ideographic=true */,
-  {     2,  3152,     0,  12,   0, UNI_NL }   /* letternumber */,
-  {     0,  7182,  6352,   3,  11, UNI_CJKRADICALSSUP }   /* cjkradicalssup */,
-  {     0,    15,  4918,   1,   9, UNI_ALCHEMICAL }   /* alchemical */,
-  {    35,     2,  1895,   1,  11, UNI_CHESSSYMBOLS }   /* chesssymbols */,
-  {     0,  4355,    55,  17,   4, UNI_CANS }   /* scriptextensions=cans */,
-  {     1,  1102,  2220,   4,   4, UNI_HUNG }   /* scx=hung */,
-  {   513,   959,   588,   8,   2, UNI_EXT }   /* extender=t */,
-  {     0,  2496,   639,   3,   3, UNI_JG__NUN }   /* jg=nun */,
-  {     6,  6944,   292,  25,   1, UNI_CCC__23 }   /* canonicalcombiningclass=23 */,
-  {  1056,   555,   392,   4,   3, UNI_AGE__6_DOT_3 }   /* age=6.3 */,
-  {     0,  7527,  6173,   3,  12, UNI_LB__SY }   /* lb=breaksymbols */,
-  {     0,  2454,  5812,   7,   6, UNI_GEORGIANSUP }   /* isgeorgiansup */,
-  {     3,  7208,   115,   9,   2, UNI_SK }   /* category=sk */,
-  {     0,  6944,   292,  25,   2, UNI_CCC__A }   /* canonicalcombiningclass=230 */,
-  {     7,  7201,   229,  16,   2, UNI_PE }   /* generalcategory=pe */,
-  {    52,  3474,  4107,   6,  15, UNI_INHANGUL }   /* block=hangulsyllables */,
-  {     0,     5,   356,   3,   2, UNI_EXT }   /* ext=y */,
-  {     0,   940,   934,   6,   2, -UNI_COMPEX }   /* compex=f */,
-  {    21,  1879,  1009,   4,   6, UNI_INLYCIAN }   /* blk=lycian */,
-  {     5,  4433,  4464,   9,   4, UNI_LATINEXTC }   /* blk=latinextc */,
-  {     0,   749,     0,   7,   0, UNI_MARC }   /* marchen */,
-  {     2,  2678,  6492,   2,   3, UNI_BC__AL }   /* bc=al */,
-  {     4,   513,   294,   5,   1, UNI_NV__3_SLASH_4 }   /* nv=3/4 */,
-  {     0,   682,  5898,   3,   4, UNI_ANY }   /* unicode */,
-  {     0,   464,  6842,   2,  14, UNI_MUSIC }   /* ismusicalsymbols */,
-  {   522,  6944,   346,  23,   2, UNI_CCC__1 }   /* canonicalcombiningclass=1 */,
-  {     0,   823,   356,   4,   4, UNI_DASH }   /* dash=yes */,
-  {     5,  5787,     0,  19,   0, UNI_JAMOEXTA }   /* hanguljamoextendeda */,
-  {     0,  7584,     0,  18,   0, UNI_dt_values_index }   /* decompositiontype= */,
-  {     0,  3474,  1009,   6,   6, UNI_INLYCIAN }   /* block=lycian */,
-  {     4,  6185,     0,  17,   0, UNI_NV__1000 }   /* numericvalue=1000 */,
-  {     0,  1377,  4338,   3,  17, UNI_RI }   /* wb=regionalindicator */,
-  {     1,   257,   356,   4,   2, UNI_CWCF }   /* cwcf=y */,
-  {   133,  1796,   651,   7,   5, UNI_SC__ADLM }   /* script=adlam */,
-  {     0,  2678,  7115,   3,  17, UNI_BC__ES }   /* bc=europeanseparator */,
-  {     1,   328,  1818,   3,   8, UNI_SUPERANDSUB }   /* superandsub */,
-  {     0,   378,   601,   4,   2, UNI_grext_values_index }   /* grext= */,
-  {     0,   895,   395,   5,   2, UNI_AGE__4_DOT_1 }   /* age=v41 */,
-  {     5,  4355,  3991,  17,   4, UNI_BRAI }   /* scriptextensions=brai */,
-  {     0,   520,  1072,   4,   3, UNI_NV__7_SLASH_12 }   /* nv=7/12 */,
-  {     8,  2275,  5620,   9,   4, -UNI_IDC }   /* idcontinue=no */,
-  {    51,  4355,   220,  17,   4, UNI_TOTO }   /* scriptextensions=toto */,
-  {     0,  1710,     0,   7,   0, UNI_XPOSIXSPACE }   /* isspace */,
-  {    65,  5748,   837,   6,   3, UNI_SUPPUAA }   /* insuppuaa */,
-  {     0,   464,  1086,   2,   4, UNI_KTHI }   /* iskthi */,
-  {    55,  5136,  1052,   5,   7, UNI_INMAHAJANI }   /* blk=mahajani */,
-  {    19,  3474,   477,   6,   3, UNI_INVAI }   /* block=vai */,
-  {   672,  1796,  5284,   7,  20, UNI_PHLI }   /* script=inscriptionalpahlavi */,
-  {   200,  7148,  1302,  25,   2, UNI_CCC__103 }   /* canonicalcombiningclass=103 */,
-  {     0,  4122,   587,   8,   3, UNI_XPOSIXLOWER }   /* lowercase=t */,
-  {     0,   940,  5644,   2,  17, UNI_COUNTINGROD }   /* countingrodnumerals */,
-  {     0,  1377,  3423,   3,  12, UNI_WB__EB }   /* wb=glueafterzwj */,
-  {  1847,  7208,  4081,   9,   5, UNI_P }   /* category=punct */,
-  {    16,  1102,  1117,   4,   8, UNI_TAGB }   /* scx=tagbanwa */,
-  {    27,  2678,  5978,   3,  12, UNI_BC__AN }   /* bc=arabicnumber */,
-  {     0,  4433,     0,  13,   0, UNI_LATINEXTE }   /* blk=latinexte */,
-  {     4,  6774,  1548,  23,   3, UNI_di_values_index }   /* defaultignorablecodepoint= */,
-  {     2,    75,   588,   3,   2, UNI_CWU }   /* cwu=t */,
-  {    16,  2771,     0,   5,   0, UNI_KHMR }   /* khmer */,
-  {     0,  1102,  1529,   4,   4, UNI_KHAR }   /* scx=khar */,
-  {     1,   464,   686,   2,   5, UNI_TAKR }   /* istakri */,
-  {     0,  5586,   546,  21,   3, UNI_WB__EB }   /* graphemeclusterbreak=ebg */,
-  {     5,  1377,  2680,   2,   3, UNI_RI }   /* wb=ri */,
-  {     0,  1102,  1191,   4,   4, UNI_BENG }   /* scx=beng */,
-  {    20,   464,   321,   2,   5, UNI_TALE }   /* istaile */,
-  {     1,  7527,  1977,   3,   2, UNI_LB__PO }   /* lb=po */,
-  {    98,  1796,   742,   7,   4, UNI_SC__MAND }   /* script=mand */,
-  {     1,  6379,   118,  13,   3, UNI_JG__DAL }   /* joininggroup=dal */,
-  {  1152,   464,  4582,   2,   4, UNI_BOPO }   /* isbopo */,
-  {     6,  4355,  1826,  17,  11, UNI_SYLO }   /* scriptextensions=sylotinagri */,
-  {     3,  7584,  1168,  18,   6, UNI_DT__MED }   /* decompositiontype=medial */,
-  {   519,  4355,   618,  17,   4, UNI_ELYM }   /* scriptextensions=elym */,
-  {     2,   464,  1614,   2,  10, UNI_WARA }   /* iswarangciti */,
-  {    28,     0,     0,   1,   0, UNI_L }   /* l */,
-  {     2,  2890,  2857,   3,  11, UNI_JT__D }   /* jt=dualjoining */,
-  {     4,  6039,  7975,   7,  32, UNI_MISCMATHSYMBOLSA }   /* block=miscellaneousmathematicalsymbolsa */,
-  {     0,  6114,   917,   3,   8, UNI_BASS }   /* sc=bassavah */,
-  {     6,  2496,  1723,   3,   8, UNI_JG__FARSIYEH }   /* jg=farsiyeh */,
-  {     0,  3474,  7791,   6,  32, UNI_INIDC }   /* block=ideographicdescriptioncharacters */,
-  {    29,   464,  3514,   2,  13, UNI_ZL }   /* islineseparator */,
-  {     8,  8276,  3249,  31,   5, UNI_INSC__CONSONANTFINAL }   /* indicsyllabiccategory=consonantfinal */,
-  {     1,   313,  1255,   2,   7, UNI_INSOYOMBO }   /* insoyombo */,
-  {  1273,  1174,     0,   3,   0, UNI_ea_values_index }   /* ea= */,
-  {     0,  7431,  3365,  27,   2, UNI_CCC__36 }   /* canonicalcombiningclass=ccc36 */,
-  {     4,  1311,     0,   4,   0, UNI_ITAL }   /* ital */,
-  {     0,  6114,  1571,   3,   4, UNI_SAUR }   /* sc=saur */,
-  {     0,  1451,     0,  10,   0, UNI_DIAK }   /* divesakuru */,
-  {    18,    34,  4900,   1,  18, UNI_EBASE }   /* isemojimodifierbase */,
-  {   744,  3622,  1037,   7,   4, UNI_LATINEXTB }   /* islatinextb */,
-  {     1,  7527,   313,   3,   2, UNI_LB__IN }   /* lb=in */,
-  {     0,  2274,   355,  10,   3, UNI_XIDC }   /* xidcontinue=y */,
-  {     0,   464,  5907,   2,   7, UNI_SINH }   /* issinhala */,
-  {   790,  8007,  6509,   7,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* blk=cjkcompatideographssup */,
-  {     2,  5523,   602,  21,   2, -UNI_CWL }   /* changeswhenlowercased=n */,
-  {     0,  1377,   102,   3,   2, UNI_LB__HL }   /* wb=hl */,
-  {     7,  3823,   278,  16,   1, UNI_sterm_values_index }   /* sentenceterminal= */,
-  {     0,  1383,   601,   3,   3, -UNI_IDST }   /* idst=n */,
-  {    10,   464,  1487,   2,   8, UNI_JAMOEXTA }   /* isjamoexta */,
-  {     0,   313,  4857,   2,  15, UNI_TAMILSUP }   /* intamilsupplement */,
-  {     6,  4355,   656,  17,   5, UNI_BUHD }   /* scriptextensions=buhid */,
-  {   314,  7431,   292,  27,   2, UNI_CCC__30 }   /* canonicalcombiningclass=ccc30 */,
-  {     1,  4291,  2002,   9,  10, UNI_LB__B2 }   /* linebreak=breakboth */,
-  {     4,  2384,     0,   2,   0, UNI__PERL_SURROGATE }   /* cs */,
-  {     0,  1948,     0,  10,   0, UNI_SOGO }   /* oldsogdian */,
-  {     1,   275,   546,   4,   2, UNI_WB__EB }   /* gcb=eb */,
-  {    66,  1377,  1591,   3,   2, UNI_LB__LF }   /* wb=lf */,
-  {    32,  1102,  1826,   4,   4, UNI_SYLO }   /* scx=sylo */,
-  {    58,  2485,  3228,   6,   5, UNI_XPOSIXALNUM }   /* xposixalnum */,
-  {     3,  1879,  3309,   4,  15, UNI_INMEROITICCURSIVE }   /* blk=meroiticcursive */,
-  {     0,  7201,   252,  16,   2, UNI_CN }   /* generalcategory=cn */,
-  {     1,  1214,  3641,   6,  10, UNI_KANASUP }   /* inkanasupplement */,
-  {     0,  3794,     0,  14,   0, UNI_NV__8 }   /* numericvalue=8 */,
-  {     0,   464,   334,   2,   2, UNI_PD }   /* ispd */,
-  {   262,  3137,   607,  15,   4, UNI_EA__W }   /* eastasianwidth=wide */,
-  {     0,  1796,   248,   7,   4, UNI_ZZZZ }   /* script=zzzz */,
-  {     1,  1102,  1755,   4,  11, UNI_MEDF }   /* scx=medefaidrin */,
-  {     0,  3474,  4857,   6,  15, UNI_TAMILSUP }   /* block=tamilsupplement */,
-  {     0,  1879,  6134,   4,  10, UNI_INGLAGOLITIC }   /* blk=glagolitic */,
-  {     7,  4996,  5382,  13,   7, UNI_JG__MANICHAEANHUNDRED }   /* jg=manichaeanhundred */,
-  {     0,  6114,   651,   3,   5, UNI_SC__ADLM }   /* sc=adlam */,
-  {     4,  4996,  4174,  13,   4, UNI_JG__MANICHAEANHETH }   /* jg=manichaeanheth */,
-  {     0,   832,   588,   5,   2, UNI_STERM }   /* sterm=t */,
-  {     1,     7,   197,   1,   3, UNI_TAGS }   /* tags */,
-  {   142,  4062,     0,  15,   0, UNI_VEDICEXT }   /* vedicextensions */,
-  {     0,   409,     0,   4,   0, UNI_DIAK }   /* diak */,
-  {     0,  2496,  6399,   3,   3, UNI_JG__QAF }   /* jg=qaf */,
-  {     0,  1102,  1227,   4,   4, UNI_MULT }   /* scx=mult */,
-  {    14,   426,  7501,   3,  26, UNI_ANCIENTGREEKMUSIC }   /* inancientgreekmusicalnotation */,
-  {     1,  8276,  5269,  22,  15, UNI_INSC__REGISTERSHIFTER }   /* indicsyllabiccategory=registershifter */,
-  {     0,    14,  7556,   1,  19, UNI_MISCSYMBOLS }   /* miscellaneoussymbols */,
-  {     1,  3137,   602,  14,   2, UNI_EA__N }   /* eastasianwidth=n */,
-  {     0,  7317,  4207,  10,   3, UNI_BC__NSM }   /* bidiclass=nsm */,
-  {     0,  1102,  2740,   4,   6, UNI_COPT }   /* scx=coptic */,
-  {     0,  2792,     0,  10,   0, UNI_CYRL }   /* iscyrillic */,
-  {     3,  6039,  7761,   7,  30, UNI_MATHALPHANUM }   /* block=mathematicalalphanumericsymbols */,
-  {     0,   131,  4615,   1,  15, UNI_PF }   /* finalpunctuation */,
-  {     1,  5340,     0,  10,   0, UNI_DEVA }   /* devanagari */,
-  {     0,  3474,  1248,   6,   7, UNI_INSIDDHAM }   /* block=siddham */,
-  {     1,    12,   278,   3,   1, UNI_pcm_values_index }   /* pcm= */,
-  {   525,   983,     0,   4,   0, UNI_HIRA }   /* hira */,
-  {     0,  4355,   429,  17,   3, UNI_MRO }   /* scriptextensions=mro */,
-  {     0,  3974,   934,  17,   2, -UNI_IDSB }   /* idsbinaryoperator=f */,
-  {     0,   600,  2652,   3,   8, UNI_DT__VERT }   /* dt=vertical */,
-  {     0,  2692,  7481,   8,  20, UNI_ARABICPFA }   /* blk=arabicpresentationformsa */,
-  {     0,  2483,  4122,   8,   5, UNI_XPOSIXLOWER }   /* isxposixlower */,
-  {     1,  6114,   810,   3,   4, UNI_SC__SYRC }   /* sc=syrc */,
-  {    75,  1796,   401,   7,   4, UNI_MIAO }   /* script=miao */,
-  {     1,  2948,   602,  13,   2, UNI_COMPEX }   /* nfcquickcheck=n */,
-  {  1365,  8276,  1168,  31,   6, UNI_INSC__CONSONANTMEDIAL }   /* indicsyllabiccategory=consonantmedial */,
-  {     1,   464,   618,   2,   7, UNI_ELYM }   /* iselymaic */,
-  {     2,  3474,   686,   6,   5, UNI_INTAKRI }   /* block=takri */,
-  {     0,  6114,     0,   3,   0, UNI_sc_values_index }   /* sc= */,
-  {   674,  8374,  3039,  25,   5, UNI__PERL_PROBLEMATIC_LOCALE_FOLDS }   /* _perl_problematic_locale_folds */,
-  {    34,  1377,  3432,   3,   3, UNI_LB__ZWJ }   /* wb=zwj */,
-  {     0,  2153,   392,   4,   1, UNI_NV__46 }   /* nv=46 */,
-  {   280,  1915,   355,  11,   5, UNI_GRBASE }   /* graphemebase=yes */,
-  {     0,  1383,   588,   4,   5, UNI_IDST }   /* idst=true */,
-  {    28,  2394,     0,   7,   0, UNI_MYMR }   /* myanmar */,
-  {     1,  1796,   656,   7,   5, UNI_SC__BUHD }   /* script=buhid */,
-  {     0,   832,   602,   5,   2, -UNI_STERM }   /* sterm=n */,
-  {   663,  3474,  6728,   6,  14, UNI_MEETEIMAYEKEXT }   /* block=meeteimayekext */,
-  {   165,   823,   356,   4,   2, UNI_DASH }   /* dash=y */,
-  {     0,   644,   588,   3,   2, UNI_GCB__T }   /* hst=t */,
-  {     2,  2726,  7044,   3,  13, UNI_M }   /* gc=combiningmark */,
-  {    66,  4901,   278,  13,   1, UNI_emod_values_index }   /* emojimodifier= */,
-  {    16,  4515,   588,  18,   5, UNI_IDST }   /* idstrinaryoperator=true */,
-  {   762,  7431,   891,  27,   2, UNI_CCC__10 }   /* canonicalcombiningclass=ccc10 */,
-  {     5,  6402,  4500,  14,   5, UNI_SB__UP }   /* sentencebreak=upper */,
-  {     0,  1879,   728,   4,   7, UNI_KALI }   /* blk=kayahli */,
-  {     0,  7823,  6334,   5,  18, UNI_CJKCOMPATFORMS }   /* incjkcompatibilityforms */,
-  {    27,  2726,    54,   3,   2, UNI_MC }   /* gc=mc */,
-  {     0,   464,  1495,   2,   8, UNI_JAVA }   /* isjavanese */,
-  {     1,  4122,   933,   8,   3, -UNI_XPOSIXLOWER }   /* lowercase=f */,
-  {     2,  1796,  4998,   6,  11, UNI_SC__MANI }   /* script=manichaean */,
-  {     0,  4901,   587,  16,   6, UNI_EBASE }   /* emojimodifierbase=true */,
-  {     0,  6799,   602,  24,   3, -UNI_COMPEX }   /* fullcompositionexclusion=no */,
-  {     8,  7584,   366,  18,   3, UNI_DT__SML }   /* decompositiontype=sml */,
-  {   515,  1174,  3083,   3,   7, UNI_EA__N }   /* ea=neutral */,
-  {     1,   464,  4456,   2,  12, UNI_CYRILLICEXTC }   /* iscyrillicextc */,
-  {     0,  4322,  3777,  14,   2, UNI_NV__3_SLASH_8 }   /* numericvalue=3/8 */,
-  {     3,   343,  8037,   4,  10, UNI_CCC__BR }   /* ccc=belowright */,
-  {   259,  4355,  1280,  17,   9, UNI_NBAT }   /* scriptextensions=nabataean */,
-  {     3,  2712,   356,   5,   2, UNI_EMOJI }   /* emoji=y */,
-  {     0,  1102,    47,   4,   4, UNI_BUHD }   /* scx=buhd */,
-  {    33,   313,  7500,   2,  17, UNI_ANCIENTGREEKMUSIC }   /* inancientgreekmusic */,
-  {  1716,  1856,   934,   5,   6, -UNI_BIDIC }   /* bidic=false */,
-  {     0,  4291,  1739,  10,   8, UNI_LB__LF }   /* linebreak=linefeed */,
-  {    11,  1382,   588,   4,   2, UNI_XIDS }   /* xids=t */,
-  {     8,  1856,   356,  11,   2, UNI_BIDIC }   /* bidicontrol=y */,
-  {     1,  5087,  3013,  10,  11, UNI_WB__DQ }   /* wordbreak=doublequote */,
-  {    37,  5844,  5080,   5,   7, UNI_SUPARROWSA }   /* issuparrowsa */,
-  {  1652,  7317,   334,  10,   3, UNI_BC__PDF }   /* bidiclass=pdf */,
-  {    68,  2712,   934,  14,   6, -UNI_ECOMP }   /* emojicomponent=false */,
-  {     0,  5844,  8550,  13,  22, UNI_SUPMATHOPERATORS }   /* issupplementalmathematicaloperators */,
-  {    98,  3474,  6594,   6,   6, UNI_INBRAHMI }   /* block=brahmi */,
-  {     9,  1102,   337,   4,   6, UNI_CARI }   /* scx=carian */,
-  {     0,  2290,     0,   6,   0, UNI_N }   /* number */,
-  {    32,   861,     0,   7,   0, UNI_TIBT }   /* tibetan */,
-  {    22,  1796,  1335,   7,   9, UNI_SC__OUGR }   /* script=olduyghur */,
-  {   520,    58,  1802,   2,   5, UNI_SC__MLYM }   /* sc=mlym */,
-  {    57,  6114,   496,   3,   4, UNI_SC__KHOJ }   /* sc=khoj */,
-  {  1832,  3474,   776,   6,   7, UNI_OLCK }   /* block=olchiki */,
-  {     1,  4291,   383,  10,   6, UNI_LB__HY }   /* linebreak=hyphen */,
-  {    15,    58,  4998,   2,  11, UNI_SC__MANI }   /* sc=manichaean */,
-  {   137,  6114,  1948,   3,  10, UNI_SOGO }   /* sc=oldsogdian */,
-  {  1553,  6114,  4857,   3,   5, UNI_SC__TAML }   /* sc=tamil */,
-  {     2,  2353,  6142,   8,  12, UNI_CYRILLICSUP }   /* incyrillicsupplement */,
-  {     0,  6402,   844,  14,   2, UNI_SB__LO }   /* sentencebreak=lo */,
-  {  1063,  1075,  2617,   4,   8, UNI_NV__1_SLASH_5 }   /* nv=2.000e-01 */,
-  {    20,   464,  1335,   2,   9, UNI_OUGR }   /* isolduyghur */,
-  {     0,   464,   317,   2,   4, UNI_M }   /* ismark */,
-  {   608,  2678,  3465,   2,   3, UNI_BC__ET }   /* bc=et */,
-  {   109,   313,  6644,   2,  22, UNI_TRANSPORTANDMAP }   /* intransportandmapsymbols */,
-  {    16,  2974,  2090,  11,   2, UNI_IN__6_DOT_2 }   /* presentin=v62 */,
-  {     4,   868,     0,   4,   0, UNI_TIRH }   /* tirh */,
-  {     0,   464,  4776,   2,  17, UNI__PERL_PATWS }   /* ispatternwhitespace */,
-  {     3,  2973,   356,   5,   2, UNI_EPRES }   /* epres=y */,
-  {     0,  2496,   653,   3,   3, UNI_JG__LAM }   /* jg=lam */,
-  {    54,  1796,  4582,   7,   4, UNI_SC__BOPO }   /* script=bopo */,
-  {     0,  4302,  5620,   5,   4, -UNI_XPOSIXSPACE }   /* wspace=no */,
-  {     1,  1879,    59,   4,   4, UNI_INCHAM }   /* blk=cham */,
-  {     5,  1975,  1079,   3,   7, UNI_POSIXWORD }   /* isperlword */,
-  {     0,   417,     0,   3,   0, UNI_HAN }   /* han */,
-  {     4,  6114,  2401,   3,  11, UNI_SC__NAND }   /* sc=nandinagari */,
-  {  1906,  1102,    98,   4,   4, UNI_GURU }   /* scx=guru */,
-  {     0,  2496,  4198,   3,   4, UNI_JG__TETH }   /* jg=teth */,
-  {     3,  1951,     0,   4,   0, UNI_SOGD }   /* sogd */,
-  {     1,  6114,   798,   3,   4, UNI_LANA }   /* sc=lana */,
-  {     0,  1102,   102,   4,   4, UNI_HLUW }   /* scx=hluw */,
-  {     0,  3351,   394,  13,   2, UNI_NV__34 }   /* numericvalue=34 */,
-  {     5,  4901,  5620,  16,   3, -UNI_EBASE }   /* emojimodifierbase=n */,
-  {     0,  1102,  5284,   4,  20, UNI_PHLI }   /* scx=inscriptionalpahlavi */,
-  {     0,  2474,  2813,   3,   6, UNI_MAHJONG }   /* ismahjong */,
-  {     0,  2392,  7556,   3,  19, UNI_MISCSYMBOLS }   /* inmiscellaneoussymbols */,
-  {    90,  8276,  2573,  22,   6, UNI_LB__ZWJ }   /* indicsyllabiccategory=joiner */,
-  {     0,  7527,  5718,   3,   9, UNI_EMOD }   /* lb=emodifier */,
-  {     0,  3593,  1491,   7,   4, UNI_LATINEXTA }   /* inlatinexta */,
-  {     0,  8470,     0,  20,   0, UNI_vo_values_index }   /* verticalorientation= */,
-  {     1,    58,  3671,   2,  10, UNI_SC__MLYM }   /* sc=malayalam */,
-  {     0,  1796,  1191,   7,   7, UNI_SC__BENG }   /* script=bengali */,
-  {     0,  5586,   898,  20,   2, UNI_GCB__V }   /* graphemeclusterbreak=v */,
-  {     0,  1879,   196,   4,   4, UNI_TAGS }   /* blk=tags */,
-  {     1,  1977,  1915,   5,   5, UNI_POSIXGRAPH }   /* posixgraph */,
-  {   261,  6944,  7966,  24,   9, UNI_CCC__AL }   /* canonicalcombiningclass=aboveleft */,
+  {     0,  2732,  7545,   8,  20, UNI_ARABICPFA }   /* blk=arabicpresentationformsa */,
+  {     0,  5532,   353,  21,   2, UNI_CWCF }   /* changeswhencasefolded=y */,
+  {     0,  2018,  6621,   4,   3, UNI_JOINC }   /* joinc=t */,
+  {     0,  1667,  1966,   5,   9, UNI_COMPATJAMO }   /* blk=compatjamo */,
+  {     3,   461,  1635,   2,   4, UNI_WARA }   /* iswara */,
+  {     0,  4360,   153,  10,   2, UNI_LB__SG }   /* linebreak=sg */,
+  {     2,  3490,  4659,  12,   9, UNI_CYRILLICEXTC }   /* blk=cyrillicextendedc */,
+  {    10,  1823,  1543,   7,   4, UNI_KHAR }   /* script=khar */,
+  {     0,  1424,  1317,   8,   2, UNI_CCC__132 }   /* ccc=ccc132 */,
+  {     0,  1492,  6945,   5,  20, UNI_GEOMETRICSHAPESEXT }   /* ingeometricshapesextended */,
+  {     2,  2752,   598,  13,   4, -UNI_ECOMP }   /* emojicomponent=no */,
+  {     0,     2,  5694,   1,  18, UNI_COUNTINGROD }   /* countingrodnumerals */,
+  {     5,  2324,  5283,   6,   9, UNI_HALFMARKS }   /* block=halfmarks */,
+  {     0,  4584,   934,  18,   2, -UNI_IDST }   /* idstrinaryoperator=f */,
+  {     3,  1455,   353,  10,   2, UNI_DEP }   /* deprecated=y */,
+  {     0,   292,  1314,   4,   3, UNI_NV__9000 }   /* nv=9000 */,
+  {     0,  7274,  2768,   8,   6, UNI_C }   /* category=other */,
+  {     3,   309,   653,   2,   5, UNI_INBUHID }   /* inbuhid */,
+  {    17,   406,   353,   3,   4, UNI_DIA }   /* dia=yes */,
+  {     0,  1409,  4698,   4,   5, UNI_LATIN1 }   /* latin1sup */,
+  {     1,  2324,  7356,   6,  27, UNI_OCR }   /* block=opticalcharacterrecognition */,
+  {     7,    30,  6796,   1,   5, UNI_DEVA }   /* isdeva */,
+  {    40,  2004,  1942,   5,   5, UNI_POSIXGRAPH }   /* posixgraph */,
+  {     4,  5637,     0,  21,   0, UNI_gcb_values_index }   /* graphemeclusterbreak= */,
+  {     2,  1454,     0,   2,   0, UNI_SD }   /* sd */,
+  {     9,  3677,  3773,   3,  15, UNI_LINEARBIDEOGRAMS }   /* islinearbideograms */,
+  {     2,   461,   326,   2,   2, UNI_PF }   /* ispf */,
+  {     6,  2180,     0,   4,   0, UNI_NV__4 }   /* nv=4 */,
+  {    15,  4795,  1805,  14,   5, UNI_NV__600000 }   /* numericvalue=600000 */,
+  {     4,   461,  4176,   2,   4, UNI_HANG }   /* ishang */,
+  {     1,  6165,  1227,   3,   7, UNI_MAKA }   /* sc=makasar */,
+  {     3,  2536,  2886,   3,  11, UNI_JG__YEHWITHTAIL }   /* jg=yehwithtail */,
+  {     5,  1367,     0,   4,   0, UNI_PAUC }   /* pauc */,
+  {     0,  1667,  5440,   4,  20, UNI_INNYIAKENGPUACHUEHMONG }   /* blk=nyiakengpuachuehmong */,
+  {     3,  1823,   608,   7,   7, UNI_ELBA }   /* script=elbasan */,
+  {     3,     0,  2619,   1,  12, UNI_LOWSURROGATES }   /* lowsurrogates */,
+  {    20,  6090,  1037,  13,   4, UNI_MYANMAREXTB }   /* block=myanmarextb */,
+  {     0,  1667,  2468,   4,   6, UNI_IPAEXT }   /* blk=ipaext */,
+  {    32,   339,  5515,   4,  17, UNI_WB__EB }   /* ccc=attachedbelowleft */,
+  {     1,   309,  6185,   2,  13, UNI_GLAGOLITICSUP }   /* inglagoliticsup */,
+  {     0,  4424,  3954,  17,  17, UNI_AGHB }   /* scriptextensions=caucasianalbanian */,
+  {     9,  1667,   283,   4,   5, UNI_INNUSHU }   /* blk=nushu */,
+  {     1,  2287,   546,   4,   3, UNI_IN__13 }   /* in=13.0 */,
+  {     2,  5216,  4344,   7,  16, UNI_LETTERLIKESYMBOLS }   /* block=letterlikesymbols */,
+  {     3,    30,  5390,   1,  19, UNI_CHEROKEESUP }   /* ischerokeesupplement */,
+  {     1,  6165,  5391,   3,   4, UNI_CHER }   /* sc=cher */,
+  {     1,  4424,  3325,  17,   6, UNI_HEBR }   /* scriptextensions=hebrew */,
+  {     0,  6165,   357,   3,   6, UNI_SC__CAKM }   /* sc=chakma */,
+  {     1,   461,  1334,   2,   4, UNI_PERM }   /* isperm */,
+  {     1,  3554,     0,  13,   0, UNI_ZL }   /* lineseparator */,
+  {     2,  7274,     0,   9,   2, UNI_CASEDLETTER }   /* category=l& */,
+  {     8,  1667,  4131,   4,  15, UNI_VEDICEXT }   /* blk=vedicextensions */,
+  {     1,  3633,   204,   9,   2, UNI_LATINEXTF }   /* inlatinextf */,
+  {     1,   430,     0,   3,   0, UNI_NKO }   /* nko */,
+  {    14,   339,  2029,   3,   3, UNI_CCC__BR }   /* ccc=br */,
+  {     4,   461,  2531,   2,   5, UNI_XPOSIXBLANK }   /* isblank */,
+  {     2,  1667,  5857,   4,  19, UNI_MONGOLIANSUP }   /* blk=mongoliansupplement */,
+  {     0,   925,   598,   2,   3, UNI_BPT__N }   /* bpt=n */,
+  {     0,  7198,  5149,  16,   7, UNI_SUPARROWSA }   /* blk=supplementalarrowsa */,
+  {     4,  6165,   825,   3,   7, UNI_SHAW }   /* sc=shavian */,
+  {    17,  1823,  4060,   7,   7, UNI_BRAI }   /* script=braille */,
+  {     2,  6165,  1303,   3,   9, UNI_TALU }   /* sc=newtailue */,
+  {     2,  2536,   636,   3,   3, UNI_JG__NUN }   /* jg=nun */,
+  {    10,  7383,   143,  10,   2, UNI_BC__BN }   /* bidiclass=bn */,
+  {     0,   832,   353,   5,   4, UNI_STERM }   /* sterm=yes */,
+  {     0,  4502,  2619,   5,  12, UNI_LOWSURROGATES }   /* blk=lowsurrogates */,
+  {     0,  2324,   590,   6,   7, UNI_DSRT }   /* block=deseret */,
+  {    51,  6165,   818,   3,   7, UNI_SC__SHRD }   /* sc=sharada */,
+  {     1,  2766,  6324,   3,   6, UNI_CF }   /* gc=format */,
+  {     0,  3130,  2370,   5,  12, UNI_GREEKEXT }   /* blk=greekextended */,
+  {     5,   552,  2234,   3,   2, UNI_AGE__8 }   /* age=8 */,
+  {     1,  3514,  1723,  12,   3, UNI_ARABICPFB }   /* block=arabicpfb */,
+  {    18,  6165,   814,   3,   4, UNI_SC__QAAI }   /* sc=zinh */,
+  {     0,   786,     0,   4,   0, UNI_HMNP }   /* hmnp */,
+  {     0,  7267,    65,  16,   2, UNI_MN }   /* generalcategory=mn */,
+  {     0,   461,  6841,   2,  25, UNI_DI }   /* isdefaultignorablecodepoint */,
+  {    15,  1618,   353,  10,   4, UNI_SD }   /* softdotted=yes */,
+  {    15,   597,   128,   3,   3, UNI_DT__MED }   /* dt=med */,
+  {     5,   406,   599,   3,   2, -UNI_DIA }   /* dia=n */,
+  {     3,   309,  3538,   2,  16, UNI_CYPRIOTSYLLABARY }   /* incypriotsyllabary */,
+  {    37,  5216,    81,  13,   2, UNI_LATINEXTG }   /* block=latinextg */,
+  {     3,  8538,  1626,  29,   9, UNI_VO__TU }   /* verticalorientation=transformedupright */,
+  {     2,  6427,  2549,  13,  10, UNI_JG__DALATHRISH }   /* joininggroup=dalathrish */,
+  {     8,   160,   162,   2,   2, UNI_PHLP }   /* phlp */,
+  {     5,  2752,   585,   5,   5, UNI_EMOJI }   /* emoji=true */,
+  {     0,  2324,  1037,   9,   4, UNI_CJKEXTB }   /* block=cjkextb */,
+  {    42,  1667,  1367,   4,   9, UNI_INPAUCINHAU }   /* blk=paucinhau */,
+  {     0,  3677,  1674,   7,   4, UNI_LATINEXTD }   /* islatinextd */,
+  {     8,  2324,  1303,   6,   9, UNI_INNEWTAILUE }   /* block=newtailue */,
+  {     0,  1562,     0,  10,   0, UNI_NAGM }   /* nagmundari */,
+  {     1,  4360,  2017,  10,   2, UNI_LB__WJ }   /* linebreak=wj */,
+  {     0,  7274,  1926,   9,   6, UNI_S }   /* category=symbol */,
+  {     0,  8538,  5993,  20,   7, UNI_VO__R }   /* verticalorientation=rotated */,
+  {     4,  1667,  1021,   4,   6, UNI_INWANCHO }   /* blk=wancho */,
+  {     5,  1667,  7111,   5,  23, UNI_DIACRITICALSFORSYMBOLS }   /* blk=combiningmarksforsymbols */,
+  {     0,  1823,  1376,   7,   9, UNI_SAMR }   /* script=samaritan */,
+  {     0,   229,  4457,   2,  15, UNI_SUTTONSIGNWRITING }   /* suttonsignwriting */,
+  {     0,  1734,     0,   3,   0, UNI_S }   /* iss */,
+  {     0,    30,  6691,   1,  23, UNI_TRANSPORTANDMAP }   /* istransportandmapsymbols */,
+  {     0,  2301,   584,  10,   3, UNI_XIDC }   /* xidcontinue=t */,
+  {     5,  2324,  1975,   6,  10, UNI_INOLDSOGDIAN }   /* block=oldsogdian */,
+  {     5,  4360,   277,  10,   2, UNI_LB__H2 }   /* linebreak=h2 */,
+  { 61144,  3514,  1037,  12,   4, UNI_ARABICEXTB }   /* block=arabicextb */,
+  {     0,    38,   662,   1,   3, UNI_KALI }   /* kali */,
+  {     3,  1994,   353,   7,   2, UNI_RADICAL }   /* radical=y */,
+  {     1,    21,   598,   2,   4, -UNI_EXT }   /* ext=no */,
+  {     1,  2503,   274,  11,   1, UNI_joinc_values_index }   /* joincontrol= */,
+  {     0,  4424,   967,  17,   8, UNI_GUJR }   /* scriptextensions=gujarati */,
+  {     0,  3391,  2289,  12,   3, UNI_NV__14 }   /* numericvalue=14 */,
+  {     3,  1102,   880,   4,   7, UNI_ZZZZ }   /* scx=unknown */,
+  {     0,   461,  3791,   2,   4, UNI_MATH }   /* ismath */,
+  {    18,  1200,  8474,   3,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* cjkcompatibilityideographs */,
+  {     4,  1667,  1205,   4,   7, UNI_INGRANTHA }   /* blk=grantha */,
+  {     4,  3391,  2146,  13,   9, UNI_NV__3_SLASH_20 }   /* numericvalue=1.500e-01 */,
+  {     1,   461,   658,   2,   5, UNI_DOGR }   /* isdogra */,
+  {     4,  1198,  8407,   3,  34, UNI_DIACRITICALSFORSYMBOLS }   /* incombiningdiacriticalmarksforsymbols */,
+  {     0,  3514,  2312,   7,  12, UNI_AEGEANNUMBERS }   /* block=aegeannumbers */,
+  {     3,  7564,     0,  27,   0, UNI_ANCIENTGREEKMUSIC }   /* ancientgreekmusicalnotation */,
+  {     0,  1102,  1509,   4,   4, UNI_JAVA }   /* scx=java */,
+  {     4,  1102,   983,   4,   4, UNI_HIRA }   /* scx=hira */,
+  {     2,  8343,  5003,  22,  14, UNI_INSC__GEMINATIONMARK }   /* indicsyllabiccategory=geminationmark */,
+  {     0,   309,  4090,   2,  17, UNI_INDICSIYAQNUMBERS }   /* inindicsiyaqnumbers */,
+  {     0,  4569,   584,   8,   3, UNI_XPOSIXUPPER }   /* uppercase=t */,
+  {     0,  1942,   352,  11,   5, UNI_GRBASE }   /* graphemebase=yes */,
+  {     4,   461,  4862,   2,   4, UNI_RUMI }   /* isrumi */,
+  {     9,  6090,  8374,   7,  33, UNI_MISCPICTOGRAPHS }   /* block=miscellaneoussymbolsandpictographs */,
+  {     3,   271,   599,   2,   2, UNI_N }   /* gc=n */,
+  {     1,   880,     0,   7,   0, UNI_ZZZZ }   /* unknown */,
+  {     2,   461,  3908,   2,   6, UNI_TANG }   /* istangut */,
+  {     0,  1065,  2147,   4,   8, UNI_NV__3_SLASH_20 }   /* nv=1.500e-01 */,
+  {     0,  6450,  3001,  14,   7, UNI_SB__NU }   /* sentencebreak=numeric */,
+  {     0,  4424,  6154,  17,   9, UNI_XSUX }   /* scriptextensions=cuneiform */,
+  {     1,   398,     0,   4,   0, UNI_MIAO }   /* miao */,
+  {     0,  5156,  1652,  10,   7, UNI_WB__NL }   /* wordbreak=newline */,
+  {     1,   552,   546,   4,   3, UNI_AGE__3 }   /* age=3.0 */,
+  {     1,  4424,  5391,  17,   4, UNI_CHER }   /* scriptextensions=cher */,
+  {     2,  4424,   901,  17,   8, UNI_ARMN }   /* scriptextensions=armenian */,
+  {     0,  2766,  3276,   3,  13, UNI_ME }   /* gc=enclosingmark */,
+  {     6,  2678,   387,  11,   2, UNI_IN__5_DOT_2 }   /* presentin=5.2 */,
+  {    18,  6165,    98,   3,   4, UNI_HLUW }   /* sc=hluw */,
+  {     0,   461,  4461,   2,  11, UNI_SGNW }   /* issignwriting */,
+  {     0,  7648,  1715,  18,   8, UNI_DT__ISO }   /* decompositiontype=isolated */,
+  {     8,  7591,  7111,   4,  12, UNI_LB__CM }   /* lb=combiningmark */,
+  {     0,  2536,   714,   3,   4, UNI_JG__ZAIN }   /* jg=zain */,
+  {     1,  5168,  6757,   6,  19, UNI__PERL_FOLDS_TO_MULTI_CHAR }   /* _perl_folds_to_multi_char */,
+  {     3,  1667,  1484,   4,   8, UNI_INBUGINESE }   /* blk=buginese */,
+  {     2,   461,  1572,   2,  10, UNI_XPEO }   /* isoldpersian */,
+  {     2,  4424,  1358,  17,   9, UNI_PALM }   /* scriptextensions=palmyrene */,
+  {     1,   309,  3908,   2,  16, UNI_TANGUTCOMPONENTS }   /* intangutcomponents */,
+  {    56,     4,     0,   2,   0, UNI_LO }   /* lo */,
+  {     0,  7591,  6224,   3,  12, UNI_LB__SY }   /* lb=breaksymbols */,
+  {    24,  1424,   395,   7,   2, UNI_CCC__16 }   /* ccc=ccc16 */,
+  {     0,  6165,   333,   3,   6, UNI_CARI }   /* sc=carian */,
+  {    49,  8601,  5149,   9,   7, UNI_SUPARROWSA }   /* block=suparrowsa */,
+  {     5,   493,     0,   6,   0, UNI_KHOJ }   /* khojki */,
+  {     0,  5939,   599,   5,   3, -UNI__PERL_NCHAR }   /* nchar=no */,
+  {     2,  3724,  1876,  12,   3, UNI_JG__MALAYALAMLLA }   /* jg=malayalamlla */,
+  {     7,  2280,  2234,   9,   2, UNI_IN__8 }   /* presentin=8 */,
+  {     3,  7274,  2317,   9,   6, UNI_N }   /* category=number */,
+  {     5,   533,  4569,   3,   5, UNI_SB__UP }   /* sb=upper */,
+  {     0,  1494,     0,   4,   0, UNI_GEOR }   /* geor */,
+  {     2,  1823,  4651,   7,   4, UNI_SC__BOPO }   /* script=bopo */,
+  {     0,  4371,  5671,   5,   3, -UNI_XPOSIXSPACE }   /* wspace=n */,
+  {     1,   578,   290,   5,   1, UNI_CCC__24 }   /* ccc=24 */,
+  {     0,   461,   725,   2,   7, UNI_KALI }   /* iskayahli */,
+  { 45931,  7267,  4569,  16,  15, UNI_UPPERCASELETTER }   /* generalcategory=uppercaseletter */,
+  {     0,  4191,   274,   5,   1, UNI_lower_values_index }   /* lower= */,
+  {     0,  1734,  4710,   3,   8, UNI_SYRIACSUP }   /* issyriacsup */,
+  {     3,   266,   934,   3,   2, -UNI_CWT }   /* cwt=f */,
+  {     0,  1272,    56,   3,   3, UNI_CHAM }   /* ischam */,
+  {     1,   309,  5857,   2,  12, UNI_MONGOLIANSUP }   /* inmongoliansup */,
+  {     3,   517,  2147,   4,   8, UNI_NV__3_SLASH_4 }   /* nv=7.500e-01 */,
+  {     0,   339,  8640,   4,  18, UNI_CCC__216 }   /* ccc=attachedaboveright */,
+  {     2,  6870,   599,  20,   3, -UNI_CE }   /* compositionexclusion=no */,
+  {    34,  3101,     0,   5,   0, UNI_XPOSIXDIGIT }   /* digit */,
+  {     1,  1728,  1141,   6,   3, UNI_ARABICPFA }   /* arabicpfa */,
+  {    21,  7648,   946,  18,   5, UNI_DT__SUP }   /* decompositiontype=super */,
+  {    21,  2324,  1021,   6,   6, UNI_INWANCHO }   /* block=wancho */,
+  {    10,  1391,  2487,   5,   7, UNI_WB__ML }   /* wb=midletter */,
+  {     0,  4161,     0,  15,   0, UNI_DIACRITICALSEXT }   /* diacriticalsext */,
+  {     0,  3490,  1674,  12,   4, UNI_CYRILLICEXTD }   /* blk=cyrillicextd */,
+  {     0,  7011,  5523,  24,   5, UNI_CCC__B }   /* canonicalcombiningclass=below */,
+  {    14,   461,  5068,   2,  10, UNI_MANI }   /* ismanichaean */,
+  {     1,  1102,   901,   4,   8, UNI_ARMN }   /* scx=armenian */,
+  {     0,  1823,  4176,   7,   4, UNI_SC__HANG }   /* script=hang */,
+  {     0,  1102,  3475,   4,  15, UNI_ZANB }   /* scx=zanabazarsquare */,
+  {     0,  1667,  4620,   4,  16, UNI_LINEARBSYLLABARY }   /* blk=linearbsyllabary */,
+  {     2,  1102,  1051,   4,   8, UNI_MAHJ }   /* scx=mahajani */,
+  {     2,    10,   137,   1,   3, UNI_MYMR }   /* mymr */,
+  {    12,  4424,   868,  17,   7, UNI_TIRH }   /* scriptextensions=tirhuta */,
+  {     1,  2018,  3313,  12,  12, UNI_JT__R }   /* joiningtype=rightjoining */,
+  {    12,  4487,     0,   6,   0, UNI_ZYYY }   /* common */,
+  {    32,  5574,   599,  21,   2, -UNI_CWL }   /* changeswhenlowercased=n */,
+  {     3,   461,  2256,   2,  12, UNI_PHAISTOS }   /* isphaistosdisc */,
+  {    56,  1090,     0,   4,   0, UNI_LINB }   /* linb */,
+  {     0,  2988,   353,  13,   4, UNI_NFCQC__Y }   /* nfcquickcheck=yes */,
+  {     0,  1667,    56,   5,   3, UNI_INCHAM }   /* blk=cham */,
+  {     0,   533,    36,   3,   2, UNI_SB__AT }   /* sb=at */,
+  {     3,  1102,  5876,   4,   9, UNI_SUND }   /* scx=sundanese */,
+  {     6,  4191,   584,   8,   3, UNI_XPOSIXLOWER }   /* lowercase=t */,
+  {     0,    30,  5711,   1,   3, UNI_ME }   /* isme */,
+  {     3,  6165,  2782,   5,   4, UNI_SC__COPT }   /* sc=coptic */,
+  {    10,  1667,  2068,   4,  12, UNI_INMENDEKIKAKUI }   /* blk=mendekikakui */,
+  {     3,  7467,     0,  28,   0, UNI_SUPPUAA }   /* supplementaryprivateuseareaa */,
+  {     0,  3803,   599,  14,   2, UNI_NFKCQC__N }   /* nfkcquickcheck=n */,
+  {     0,  1102,    15,   4,   4, UNI_AGHB }   /* scx=aghb */,
+  {     2,   309,  5778,   2,  21, UNI_ININSCRIPTIONALPARTHIAN }   /* ininscriptionalparthian */,
+  {     0,   302,   524,   3,   3, UNI_PATSYN }   /* patsyn */,
+  {    24,  1667,  7449,   4,  18, UNI_PHONETICEXT }   /* blk=phoneticextensions */,
+  {     0,  1823,  3954,   7,  17, UNI_AGHB }   /* script=caucasianalbanian */,
+  {     1,  1954,     0,  12,   0, UNI_GONG }   /* gunjalagondi */,
+  {     1,  2382,  2720,   2,   2, UNI_VO__R }   /* vo=r */,
+  {     0,   461,   398,   2,   4, UNI_MIAO }   /* ismiao */,
+  {     5,  7591,  2930,   3,   2, UNI_GCB__T }   /* lb=jt */,
   {     0,  1174,   140,   3,   2, UNI_EA__NA }   /* ea=na */,
-  {     8,  4355,    15,  17,   4, UNI_ADLM }   /* scriptextensions=adlm */,
-  {     0,  6239,  1687,  14,   7, UNI_BC__LRI }   /* bc=lefttorightisolate */,
-  {     0,  4302,   355,   5,   2, UNI_wspace_values_index }   /* wspace= */,
-  {     0,  1065,  2056,   4,   8, UNI_NV__1_SLASH_9 }   /* nv=1.111e-01 */,
-  {   186,  6728,     0,  21,   0, UNI_MEETEIMAYEKEXT }   /* meeteimayekextensions */,
-  {     0,  2496,  4194,   3,   4, UNI_JG__QAPH }   /* jg=qaph */,
-  {   292,  2496,  5015,   3,   6, UNI_JG__YUDHHE }   /* jg=yudhhe */,
-  {     1,  6114,  1098,   3,   4, UNI_NSHU }   /* sc=nshu */,
-  {     5,  6687,  4655,  22,   3, UNI_JG__MALAYALAMTTA }   /* joininggroup=malayalamtta */,
-  {   512,   275,   366,   4,   2, UNI_GCB__SM }   /* gcb=sm */,
-  {     3,  1879,  3381,   4,  15, UNI_NARB }   /* blk=oldnortharabian */,
-  {     2,   464,  1860,   2,   7, UNI_XPOSIXCNTRL }   /* iscontrol */,
-  {     0,  1879,  5806,   4,   9, UNI_INMONGOLIAN }   /* blk=mongolian */,
-  {     0,  4872,  5797,  10,   9, UNI_KANAEXTA }   /* block=kanaextendeda */,
-  {     0,  3622,   121,   3,   2, UNI_LAO }   /* islao */,
-  {     0,  6114,   204,   3,   4, UNI_TAVT }   /* sc=tavt */,
-  {    42,  1382,   934,   4,   2, -UNI_XIDS }   /* xids=f */,
-  {    54,  7527,  1747,   3,   8, UNI_LB__NL }   /* lb=nextline */,
-  {   132,  5865,   934,  21,   6, -UNI_LOE }   /* logicalorderexception=false */,
-  {    66,   464,  3933,   2,   4, UNI_MODI }   /* ismodi */,
-  {     0,  2253,   549,  11,   3, UNI_IN__13 }   /* presentin=13.0 */,
-  {    74,  3474,  5625,   7,  18, UNI_ANCIENTGREEKNUMBERS }   /* block=ancientgreeknumbers */,
-  {     0,  2392,  4442,   9,   9, UNI_MYANMAREXTB }   /* inmyanmarextendedb */,
-  {    21,   464,   814,   2,   4, UNI_QAAI }   /* iszinh */,
-  {     0,   464,  3637,   2,   7, UNI_LISUSUP }   /* islisusup */,
-  {     9,  1879,  1542,   4,   6, UNI_ARROWS }   /* blk=arrows */,
-  {     0,   895,  2098,   5,   2, UNI_AGE__6_DOT_3 }   /* age=v63 */,
-  {     1,  6114,    51,   3,   4, UNI_SC__CAKM }   /* sc=cakm */,
-  {    92,  3474,  1695,  12,   3, UNI_ARABICPFB }   /* block=arabicpfb */,
-  {  1548,  1879,  1227,   4,   7, UNI_INMULTANI }   /* blk=multani */,
-  {     0,  1465,   587,   4,   6, UNI_XPOSIXSPACE }   /* space=true */,
-  {    11,  1478,  6878,   5,  15, UNI_GEOMETRICSHAPESEXT }   /* ingeometricshapesext */,
-  {    40,  2253,  2195,   9,   2, UNI_IN__6 }   /* presentin=6 */,
-  {     2,  7317,  5249,  10,   3, UNI_BC__RLE }   /* bidiclass=rle */,
-  {     0,  1410,   348,   7,   2, UNI_CCC__18 }   /* ccc=ccc18 */,
-  {     1,  2392,  2813,   3,   6, UNI_MAHJONG }   /* inmahjong */,
-  {     0,  1796,   425,   7,   4, UNI_SC__LINA }   /* script=lina */,
-  {    12,   296,  3363,   2,   3, UNI_NV__23 }   /* nv=23 */,
-  {     1,  2496,   487,   3,   3, UNI_JG__HAH }   /* jg=hah */,
-  {     0,  5087,  6276,  10,   6, UNI_WB__FO }   /* wordbreak=format */,
-  {     1,  2726,   317,   3,   4, UNI_M }   /* gc=mark */,
-  {     0,  1102,  2401,   4,  11, UNI_NAND }   /* scx=nandinagari */,
-  {     0,  3748,  2056,  14,   8, UNI_NV__1_SLASH_9 }   /* numericvalue=1.111e-01 */,
-  {   764,  1102,   814,   4,   4, UNI_QAAI }   /* scx=zinh */,
-  {     6,  7584,   602,  17,   5, UNI_DT__NONE }   /* decompositiontype=none */,
-  {     6,  2205,  2080,   4,   8, UNI_NV__17_SLASH_2 }   /* nv=8.500e+00 */,
-  {   260,  1102,  1003,   4,   6, UNI_LEPC }   /* scx=lepcha */,
-  {     1,  6944,  2263,  25,   2, UNI_CCC__214 }   /* canonicalcombiningclass=214 */,
-  {     0,   464,  3228,   2,   5, UNI_XPOSIXALNUM }   /* isalnum */,
-  {     0,  1015,     0,   4,   0, UNI_TELU }   /* telu */,
-  {     4,  6114,  6728,   3,  11, UNI_MTEI }   /* sc=meeteimayek */,
-  {     2,   644,     0,   5,   0, UNI_GCB__L }   /* hst=l */,
-  {     0,  1702,  4918,   3,  16, UNI_ALCHEMICAL }   /* isalchemicalsymbols */,
-  {     0,  4291,  1591,  10,   2, UNI_LB__LF }   /* linebreak=lf */,
-  {     1,  5087,     0,  10,   0, UNI_wb_values_index }   /* wordbreak= */,
-  {    26,  7317,   358,  10,   2, UNI_BC__ES }   /* bidiclass=es */,
-  {  1294,  2392,  7975,   3,  32, UNI_MISCMATHSYMBOLSA }   /* inmiscellaneousmathematicalsymbolsa */,
-  {    96,  1867,   278,   5,   1, UNI_bidim_values_index }   /* bidim= */,
-  {  2074,   306,  4370,   4,   2, UNI_patws_values_index }   /* patws= */,
-  {   265,  7201,  3156,  19,   8, UNI_NO }   /* generalcategory=othernumber */,
-  {  1137,  1879,  4857,   4,   8, UNI_TAMILSUP }   /* blk=tamilsup */,
-  {     3,  7527,  7044,   3,  13, UNI_LB__CM }   /* lb=combiningmark */,
-  {     1,  6114,   802,   3,   4, UNI_NBAT }   /* sc=nbat */,
-  {     2,   464,  5865,   2,  21, UNI_LOE }   /* islogicalorderexception */,
-  {  2347,  7527,     0,  29,   0, UNI_LB__CJ }   /* lb=conditionaljapanesestarter */,
-  {    80,  1796,  6594,   7,   6, UNI_BRAH }   /* script=brahmi */,
-  {     1,  1227,     0,   4,   0, UNI_MULT }   /* mult */,
-  {     4,  1410,   398,   7,   2, UNI_CCC__16 }   /* ccc=ccc16 */,
-  {    16,   296,  2065,   3,   2, UNI_NV__25 }   /* nv=25 */,
-  {     0,  2253,  2128,  10,   3, UNI_IN__3_DOT_1 }   /* presentin=3.1 */,
-  {    16,  2678,  2384,   3,   2, UNI_BC__CS }   /* bc=cs */,
-  {   993,  4656,     0,   9,   0, UNI_TANGUTSUP }   /* tangutsup */,
-  {     0,   343,   394,   4,   2, UNI_CCC__34 }   /* ccc=34 */,
-  {     1,   876,   356,   4,   2, UNI_IDEO }   /* ideo=y */,
-  {     8,  2253,  2207,   9,   2, UNI_IN__8 }   /* presentin=8 */,
-  {     1,  4750,     0,   8,   0, UNI_DINGBATS }   /* dingbats */,
-  {     4,   593,  6390,   2,   2, UNI_dep_values_index }   /* dep= */,
-  {   195,  2392,  1491,   9,   4, UNI_MYANMAREXTA }   /* inmyanmarexta */,
-  {    33,  1102,  1335,   4,   9, UNI_OUGR }   /* scx=olduyghur */,
-  {   139,  4122,  5620,   8,   4, -UNI_XPOSIXLOWER }   /* lowercase=no */,
-  {   256,   313,  4857,   2,   5, UNI_INTAMIL }   /* intamil */,
-  {   116,  2981,  2098,   4,   2, UNI_IN__6_DOT_3 }   /* in=v63 */,
-  {     8,  4355,   437,  17,   4, UNI_OGAM }   /* scriptextensions=ogam */,
-  {     1,  5844,  4388,   4,  15, UNI_SUTTONSIGNWRITING }   /* issuttonsignwriting */,
-  {     1,  8470,  5942,  20,   7, UNI_VO__R }   /* verticalorientation=rotated */,
-  {     4,     5,  7175,   1,  26, UNI_ENCLOSEDCJK }   /* enclosedcjklettersandmonths */,
-  {    71,   343,  2074,   5,   2, UNI_CCC__129 }   /* ccc=129 */,
-  {     1,  8007,  3929,  30,   4, UNI_CJKEXTG }   /* blk=cjkunifiedideographsextensiong */,
-  {     0,  3748,  2197,  14,   8, UNI_NV__1_SLASH_80 }   /* numericvalue=1.250e-02 */,
-  {     0,   464,  1837,   2,   5, UNI_EBASE }   /* isebase */,
-  {     0,  1102,  4551,   4,   7, UNI_LINB }   /* scx=linearb */,
-  {     0,  6379,  1731,  13,   8, UNI_JG__SWASHKAF }   /* joininggroup=swashkaf */,
-  {     0,  7527,     0,   3,   0, UNI_lb_values_index }   /* lb= */,
-  {    17,  3474,  5340,   6,  10, UNI_INDEVANAGARI }   /* block=devanagari */,
-  {     2,  4485,     0,   5,   0, UNI_TITLE }   /* title */,
-  {     3,  2275,   588,   3,   5, UNI_IDC }   /* idc=true */,
-  {     0,  3474,  8551,   6,  21, UNI_MATHOPERATORS }   /* block=mathematicaloperators */,
-  {    72,  1796,  1571,   7,  10, UNI_SAUR }   /* script=saurashtra */,
-  {    20,  1975,   165,   3,   3, UNI_PHNX }   /* isphnx */,
-  {   833,   409,  1175,   2,   3, -UNI_DIA }   /* dia=n */,
-  {     0,  1879,   337,   4,   6, UNI_INCARIAN }   /* blk=carian */,
-  {    70,   275,  3151,   2,   7, UNI_L }   /* gc=letter */,
-  {     3,  3654,  6629,   7,  15, UNI_MODIFIERLETTERS }   /* spacingmodifierletters */,
-  {     0,  7880,  7314,  28,   4, UNI_CJKEXTB }   /* iscjkunifiedideographsextensionb */,
-  {     0,  1915,  5620,  11,   4, -UNI_GRBASE }   /* graphemebase=no */,
-  {     7,   555,  2155,   3,   4, UNI_AGE__4_DOT_1 }   /* age=4.1 */,
-  {    40,  7527,   527,   3,   2, UNI_LB__SY }   /* lb=sy */,
-  {     0,  1098,     0,   4,   0, UNI_NSHU }   /* nshu */,
-  {     1,  2363,  6142,   8,   5, UNI_ETHIOPICSUP }   /* inethiopicsup */,
-  {     3,  3351,  2183,  12,  10, UNI_NV__7_SLASH_12 }   /* numericvalue=5.833e-01 */,
-  {     1,  6114,   417,   3,   3, UNI_SC__HAN }   /* sc=han */,
-  {  1280,  6114,   975,   3,   8, UNI_SC__GURU }   /* sc=gurmukhi */,
-  {     0,  2153,  2080,   4,   8, UNI_NV__9_SLASH_2 }   /* nv=4.500e+00 */,
-  {     0,   783,     0,   7,   0, UNI_OSMA }   /* osmanya */,
-  {     0,   240,     0,   4,   0, UNI_ZANB }   /* zanb */,
-  {     0,  2260,   389,   3,   3, UNI_IN__3_DOT_2 }   /* in=3.2 */,
-  {    15,  1967,   278,   7,   1, UNI_radical_values_index }   /* radical= */,
-  {     0,  4291,  4247,  10,  14, UNI_LB__BK }   /* linebreak=mandatorybreak */,
-  {     2,  2948,   356,  13,   4, UNI_NFCQC__Y }   /* nfcquickcheck=yes */,
-  {  2177,  4291,     0,  10,   0, UNI_lb_values_index }   /* linebreak= */,
-  {     1,  2496,  1893,   3,   3, UNI_JG__TAH }   /* jg=tah */,
-  {     0,   464,  7660,   2,  17, UNI_VS }   /* isvariationselector */,
-  {     0,  4996,  2243,  13,   4, UNI_JG__MANICHAEANAYIN }   /* jg=manichaeanayin */,
-  {     7,  6114,  5907,   3,   7, UNI_SC__SINH }   /* sc=sinhala */,
-  {     1,   661,  1670,   2,   9, UNI_DOMINO }   /* dominotiles */,
-  {    12,  2365,  6142,   6,   5, UNI_ETHIOPICSUP }   /* ethiopicsup */,
-  {     2,   296,  6222,   3,   9, UNI_NV__3_SLASH_80 }   /* nv=3.750e-02 */,
-  {    66,  1879,   661,   4,   5, UNI_INDOGRA }   /* blk=dogra */,
-  {     2,     2,   278,   3,   1, UNI_cwl_values_index }   /* cwl= */,
-  {     2,  3474,  1033,   6,   8, UNI_JAMOEXTB }   /* block=jamoextb */,
-  {     0,  2692,  6142,   8,  12, UNI_ARABICSUP }   /* blk=arabicsupplement */,
-  {    92,  7201,   647,  15,   2, UNI_L }   /* generalcategory=l */,
-  {     2,  8007,  4341,  30,   4, UNI_CJKEXTA }   /* blk=cjkunifiedideographsextensiona */,
-  {     2,    90,    92,   2,   2, UNI_GREK }   /* grek */,
-  {   939,   275,     0,   4,   0, UNI_gcb_values_index }   /* gcb= */,
-  {     2,  1102,  2018,   4,  12, UNI_GONM }   /* scx=masaramgondi */,
-  {     0,  3474,  6462,   6,  24, UNI_HIGHPUSURROGATES }   /* block=highprivateusesurrogates */,
-  {    12,  1410,  1303,   7,   2, UNI_CCC__32 }   /* ccc=ccc32 */,
-  {     3,   555,   566,   4,   3, UNI_AGE__8 }   /* age=8.0 */,
-  {     3,   875,   602,   5,   2, -UNI_UIDEO }   /* uideo=n */,
-  {    16,  1424,   340,   7,   3, UNI_CHRS }   /* chorasmian */,
-  {     0,  1102,   818,   4,   7, UNI_SHRD }   /* scx=sharada */,
-  {     9,  1796,   236,   7,   4, UNI_SC__YI }   /* script=yiii */,
-  {     0,  6039,  7556,   7,  28, UNI_MISCARROWS }   /* block=miscellaneoussymbolsandarrows */,
-  {  2161,  1879,  5322,   4,  11, UNI_CHEROKEESUP }   /* blk=cherokeesup */,
-  {     0,    75,   356,   3,   4, UNI_CWU }   /* cwu=yes */,
-  {     0,  3351,  6198,  13,   8, UNI_NV__10000000 }   /* numericvalue=10000000 */,
-  {    29,  1796,  5139,   6,   8, UNI_SC__MYMR }   /* script=myanmar */,
-  {    17,     8,  2332,   1,  12, UNI_GREEKEXT }   /* greekextended */,
-  {   405,   275,   285,   4,   2, UNI_GCB__XX }   /* gcb=xx */,
-  {     1,     2,  8150,   1,  32, UNI_DIACRITICALSEXT }   /* combiningdiacriticalmarksextended */,
-  {   360,   313,  3637,   2,   7, UNI_LISUSUP }   /* inlisusup */,
-  {     4,  4776,     0,  17,   0, UNI__PERL_PATWS }   /* patternwhitespace */,
-  {     2,   464,  3608,   2,  11, UNI_PHONETICEXT }   /* isphoneticext */,
-  {     0,  4996,  4190,  13,   4, UNI_JG__MANICHAEANYODH }   /* jg=manichaeanyodh */,
-  {     0,  1796,  1133,   7,   8, UNI_VITH }   /* script=vithkuqi */,
-  {   145,    33,  8213,   2,  31, UNI_MISCMATHSYMBOLSB }   /* miscellaneousmathematicalsymbolsb */,
-  {     0,  4291,   880,  10,   7, UNI_LB__XX }   /* linebreak=unknown */,
-  {     0,  4355,   457,  17,   4, UNI_PRTI }   /* scriptextensions=prti */,
-  {     0,  1796,  3309,   7,  15, UNI_MERC }   /* script=meroiticcursive */,
-  {    39,  5806,     0,   9,   0, UNI_MONG }   /* mongolian */,
-  {     0,  1879,  2746,   4,  14, UNI_HIGHSURROGATES }   /* blk=highsurrogates */,
-  {    16,  3090,  3599,  11,   9, UNI_GEORGIANEXT }   /* blk=georgianextended */,
-  {   171,  3474,  1451,   6,  10, UNI_INDIVESAKURU }   /* block=divesakuru */,
-  {     8,   464,  6466,   2,  10, UNI_CO }   /* isprivateuse */,
-  {  1304,  1796,  1241,   7,   4, UNI_SC__PHAG }   /* script=phag */,
-  {     0,  4355,  1317,  17,   9, UNI_PERM }   /* scriptextensions=oldpermic */,
-  {     0,  2365,     0,   8,   0, UNI_ETHI }   /* ethiopic */,
-  {     1,   464,  4418,   2,   6, UNI_ZYYY }   /* iscommon */,
-  {     0,    37,  4641,   1,  15, UNI_SYRIACSUP }   /* syriacsupplement */,
-  {     0,  4433,  5797,   9,   9, UNI_LATINEXTA }   /* blk=latinextendeda */,
-  {  1068,  4322,  6199,  14,   5, UNI_NV__300000 }   /* numericvalue=300000 */,
-  {     1,  6379,  1893,  13,   3, UNI_JG__TAH }   /* joininggroup=tah */,
-  {   113,  2961,   287,  12,   2, UNI_NT__NU }   /* numerictype=nu */,
-  {     1,  2274,   356,   4,   4, UNI_XIDC }   /* xidc=yes */,
-  {     0,  4291,  7473,  10,  10, UNI_LB__AL }   /* linebreak=alphabetic */,
-  {     0,  1102,  5907,   4,   4, UNI_SINH }   /* scx=sinh */,
-  {   530,  1796,    71,   7,   4, UNI_SC__CPRT }   /* script=cprt */,
-  {     1,  1410,   394,   7,   2, UNI_CCC__34 }   /* ccc=ccc34 */,
-  {     6,  1867,   278,  12,   1, UNI_bidim_values_index }   /* bidimirrored= */,
-  {     0,    14,  2030,   1,  11, UNI_MATHALPHANUM }   /* mathalphanum */,
-  {     1,   464,  6833,   2,  23, UNI_BYZANTINEMUSIC }   /* isbyzantinemusicalsymbols */,
-  {     1,   875,   588,   5,   2, UNI_UIDEO }   /* uideo=t */,
-  {     0,  3137,  3083,  15,   7, UNI_EA__N }   /* eastasianwidth=neutral */,
-  {    32,  1102,  2695,   3,   5, UNI_ARAB }   /* scx=arab */,
-  {   147,  3593,  4629,   6,   2, UNI_LATIN1 }   /* inlatin1 */,
-  {     1,  4355,  1755,  17,  11, UNI_MEDF }   /* scriptextensions=medefaidrin */,
-  {     0,  1102,  3933,   4,   4, UNI_MODI }   /* scx=modi */,
-  {     1,  1065,   766,   4,   2, UNI_NV__1_SLASH_6 }   /* nv=1/6 */,
-  {    17,  1991,    48,  12,   1, UNI_JT__U }   /* joiningtype=u */,
-  {    25,  1879,  6728,   4,  11, UNI_INMEETEIMAYEK }   /* blk=meeteimayek */,
-  {     3,   429,     0,   3,   0, UNI_MRO }   /* mro */,
-  {     0,   313,  6134,   2,  20, UNI_GLAGOLITICSUP }   /* inglagoliticsupplement */,
-  {     1,  6114,   666,   3,   5, UNI_SC__LIMB }   /* sc=limbu */,
-  {   133,  3915,   356,  17,   2, UNI_EPRES }   /* emojipresentation=y */,
-  {     0,  1879,  5907,   4,   7, UNI_INSINHALA }   /* blk=sinhala */,
-  {  1056,  1879,  4092,   4,  15, UNI_DIACRITICALSEXT }   /* blk=diacriticalsext */,
-  {     0,   313,  7171,   2,   3, UNI_IN__12 }   /* in=12 */,
-  {     0,  3474,  8110,  12,  29, UNI_ARABICMATH }   /* block=arabicmathematicalalphabeticsymbols */,
-  {     0,  3974,   356,  17,   4, UNI_IDSB }   /* idsbinaryoperator=yes */,
-  {     8,  1977,  4081,   5,   5, UNI_POSIXPUNCT }   /* posixpunct */,
-  {     1,  1102,  4857,   4,   5, UNI_TAML }   /* scx=tamil */,
-  {     5,  1879,  5214,   4,   9, UNI_HALFMARKS }   /* blk=halfmarks */,
-  {  3134,  6114,  2812,   3,   4, UNI_SC__MAHJ }   /* sc=mahj */,
-  {     8,  2260,   566,   3,   3, UNI_IN__8 }   /* in=8.0 */,
-  {     0,  6039,  5797,  13,   9, UNI_MYANMAREXTA }   /* block=myanmarextendeda */,
-  {     3,  6114,  4671,   3,   4, UNI_SC__TALE }   /* sc=tale */,
-  {   201,  6303,     0,  23,   0, UNI_COMPATJAMO }   /* hangulcompatibilityjamo */,
-  {     0,  4467,     0,  18,   0, UNI_COPTICEPACTNUMBERS }   /* copticepactnumbers */,
-  {     0,  2253,  2616,  10,   3, UNI_IN__5 }   /* presentin=5.0 */,
-  {     0,   261,   278,   4,   1, UNI_cwcm_values_index }   /* cwcm= */,
-  {    67,  7201,    12,  16,   1, UNI_P }   /* generalcategory=p */,
-  {    21,   464,  4582,   2,  16, UNI_BOPOMOFOEXT }   /* isbopomofoextended */,
-  {     2,  8182,  8440,  30,  14, UNI_INPC__TOPANDBOTTOMANDRIGHT }   /* indicpositionalcategory=topandbottomandright */,
-  {     1,   464,   168,   2,   4, UNI_COPT }   /* isqaac */,
-  {     1,  1102,  4882,   4,   4, UNI_EGYP }   /* scx=egyp */,
-  {     1,  7208,  4500,   9,  15, UNI_UPPERCASELETTER }   /* category=uppercaseletter */,
-  {  2179,  1102,  4436,   3,   6, UNI_LATN }   /* scx=latin */,
-  {     1,  1702,  6142,   6,  12, UNI_ARABICSUP }   /* isarabicsupplement */,
-  {     0,  6114,   180,   3,   4, UNI_RUNR }   /* sc=runr */,
-  {    32,   464,  1382,   2,   4, UNI_XIDS }   /* isxids */,
-  {  1954,  5825,     0,   4,   0, UNI_SUND }   /* sund */,
-  {    76,   513,   523,   4,   1, UNI_NV__37 }   /* nv=37 */,
-  {  2123,    14,  2603,   1,  12, UNI_MISCTECHNICAL }   /* misctechnical */,
-  {     0,  7584,  1178,  19,   5, UNI_DT__NAR }   /* decompositiontype=narrow */,
-  {     2,   644,  3961,   4,  13, UNI_HST__NA }   /* hst=notapplicable */,
-  {     0,  7473,   934,  10,   6, -UNI_XPOSIXALPHA }   /* alphabetic=false */,
-  {     1,  7201,   110,  16,   1, UNI_Z }   /* generalcategory=z */,
-  {     0,  1879,  3498,   4,  16, UNI_CYPRIOTSYLLABARY }   /* blk=cypriotsyllabary */,
-  {     0,  1102,    51,   4,   4, UNI_CAKM }   /* scx=cakm */,
-  {    95,    12,   588,   3,   2, UNI_PCM }   /* pcm=t */,
-  {  2416,  3474,  1144,   6,   9, UNI_INBHAIKSUKI }   /* block=bhaiksuki */,
-  {     0,  1879,  3671,   3,  10, UNI_INMALAYALAM }   /* blk=malayalam */,
-  {     3,   343,  8580,   4,  10, UNI_CCC__AR }   /* ccc=aboveright */,
-  {  1427,   313,  8592,   2,  42, UNI_UCASEXT }   /* inunifiedcanadianaboriginalsyllabicsextended */,
-  {     2,   464,  1009,   2,   4, UNI_LYCI }   /* islyci */,
-  {   106,    14,  8307,   1,  33, UNI_MISCPICTOGRAPHS }   /* miscellaneoussymbolsandpictographs */,
-  {  2791,   313,  1755,   2,  11, UNI_INMEDEFAIDRIN }   /* inmedefaidrin */,
-  {     6,   464,   461,   2,   4, UNI_QAAI }   /* isqaai */,
-  { 46617,   895,   771,   6,   2, UNI_AGE__12_DOT_1 }   /* age=v121 */,
-  {     0,  3351,  6207,  14,   8, UNI_NV__1_SLASH_40 }   /* numericvalue=2.500e-02 */,
-  {     3,  2392,   402,   3,   3, UNI_INMIAO }   /* inmiao */,
-  {    42,  1395,  4629,   4,   2, UNI_LATIN1 }   /* latin1 */,
-  {     1,  3991,  2626,   8,   7, UNI_BRAI }   /* braillepatterns */,
-  {     0,    34,  7499,   1,  28, UNI_ANCIENTGREEKMUSIC }   /* isancientgreekmusicalnotation */,
-  {  2053,   524,   356,   6,   2, UNI_PATSYN }   /* patsyn=y */,
-  {     0,  5886,   588,  21,   5, UNI__PERL_NCHAR }   /* noncharactercodepoint=true */,
-  {     0,  2802,  1183,   3,   8, UNI_EMOTICONS }   /* isemoticons */,
-  {   624,     2,   601,   2,   4, -UNI_CWT }   /* cwt=no */,
-  {     2,  7527,  2915,   3,  11, UNI_LB__EX }   /* lb=exclamation */,
-  {     0,  5099,  3035,   6,   9, UNI__PERL_ANY_FOLDS }   /* _perl_any_folds */,
-  {    17,  2496,  2526,   3,   3, UNI_JG__HEH }   /* jg=heh */,
-  {    65,  2474,  8552,   3,  20, UNI_MATHOPERATORS }   /* ismathematicaloperators */,
-  {     0,  2496,  4166,   3,   4, UNI_JG__BETH }   /* jg=beth */,
-  {  2157,  7208,  5174,  13,  12, UNI_PO }   /* category=otherpunctuation */,
-  {  2019,  2926,  4641,   3,  15, UNI_SYRIACSUP }   /* insyriacsupplement */,
-  {    11,  6114,   880,   3,   7, UNI_ZZZZ }   /* sc=unknown */,
-  {     1,  7182,  1491,   3,   4, UNI_CJKEXTA }   /* cjkexta */,
-  {     0,  1879,   637,   4,   7, UNI_INHANUNOO }   /* blk=hanunoo */,
-  {     1,  2474,   743,   3,   6, UNI_MAND }   /* ismandaic */,
-  {    19,  1227,     0,   7,   0, UNI_MULT }   /* multani */,
-  {     0,   464,  6728,   2,  14, UNI_MEETEIMAYEKEXT }   /* ismeeteimayekext */,
-  {     0,  7377,     0,   8,   0, UNI_KANA }   /* katakana */,
-  {     4,  2981,   771,   5,   2, UNI_IN__12_DOT_1 }   /* in=v121 */,
-  {     0,    58,  2695,   2,   7, UNI_SC__ARAB }   /* sc=arabic */,
-  {     0,   328,  5080,   3,   7, UNI_SUPARROWSA }   /* suparrowsa */,
-  {  2337,    37,  1110,   1,   7, UNI_SPECIALS }   /* specials */,
-  {     2,  4355,   148,  17,   4, UNI_ORYA }   /* scriptextensions=orya */,
-  {     0,  7208,    12,   9,   1, UNI_P }   /* category=p */,
-  {     0,  1102,  5806,   4,   9, UNI_MONG }   /* scx=mongolian */,
-  {  1026,  1236,  6029,   2,  10, UNI_INGEORGIAN }   /* blk=georgian */,
-  {    20,   313,  8592,   2,  43, UNI_UCASEXTA }   /* inunifiedcanadianaboriginalsyllabicsextendeda */,
-  {     4,  1102,  1308,   4,   9, UNI_ITAL }   /* scx=olditalic */,
-  {    16,  6114,  4020,   3,   4, UNI_SC__SIND }   /* sc=sind */,
-  {     8,   313,  6728,   2,  21, UNI_MEETEIMAYEKEXT }   /* inmeeteimayekextensions */,
-  {    14,     8,  1412,   1,   3, UNI_C }   /* gc=c */,
-  {     0,  4450,  6528,   7,  21, UNI_INDICNUMBERFORMS }   /* block=commonindicnumberforms */,
-  {     0,  1879,  6970,   4,  26, UNI_HALFANDFULLFORMS }   /* blk=halfwidthandfullwidthforms */,
-  {    32,  1796,   461,   7,   4, UNI_SC__QAAI }   /* script=qaai */,
-  {     0,   991,     0,   6,   0, UNI_HATR }   /* hatran */,
-  {     0,  1879,   983,   4,   8, UNI_INHIRAGANA }   /* blk=hiragana */,
-  {     0,  2463,   602,   5,   2, -UNI_JOINC }   /* joinc=n */,
-  {  1144,   316,   602,   5,   2, -UNI_QMARK }   /* qmark=n */,
-  {   386,  7605,  3961,  19,  13, UNI_HST__NA }   /* hangulsyllabletype=notapplicable */,
-  {     1,    15,     0,   4,   0, UNI_ADLM }   /* adlm */,
-  {     9,  4355,   337,  17,   6, UNI_CARI }   /* scriptextensions=carian */,
-  {   256,  2274,     0,  11,   0, UNI_XIDC }   /* xidcontinue */,
-  {     0,  2496,    24,   3,   2, UNI_JG__HE }   /* jg=he */,
-  {     0,  7182,     5,   3,   4, UNI_CJKEXTG }   /* cjkextg */,
-  {     0,  4291,    13,  10,   2, UNI_LB__CM }   /* linebreak=cm */,
-  {     8,    14,  6053,   1,  12, UNI_MATHOPERATORS }   /* mathoperators */,
-  {     0,  4355,  7377,  17,   8, UNI_KANA }   /* scriptextensions=katakana */,
-  {     0,  3474,  1542,   6,   6, UNI_ARROWS }   /* block=arrows */,
-  {     0,  4996,  4978,  13,   6, UNI_JG__MANICHAEANDALETH }   /* jg=manichaeandaleth */,
-  {     0,  4291,  2926,  10,  11, UNI_LB__IN }   /* linebreak=inseparable */,
-  {   277,  1362,     0,   9,   0, UNI_SAMR }   /* samaritan */,
-  {     1,  7201,  2986,  16,   2, UNI_PS }   /* generalcategory=ps */,
-  {    20,   887,   292,   5,   1, UNI_AGE__13 }   /* age=13 */,
-  {  1158,  6629,     0,  15,   0, UNI_MODIFIERLETTERS }   /* modifierletters */,
-  {     0,  4662,  8319,  12,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* supplementalsymbolsandpictographs */,
-  {     0,  4291,   527,  10,   2, UNI_LB__SY }   /* linebreak=sy */,
-  {  1570,  4355,   188,  17,   4, UNI_SGNW }   /* scriptextensions=sgnw */,
-  {   640,  1441,   934,   3,   2, -UNI_DEP }   /* dep=f */,
-  {    19,  5748,     0,  21,   0, UNI_SUPARROWSB }   /* insupplementalarrowsb */,
-  {     0,  1796,  3885,   7,  17, UNI_AGHB }   /* script=caucasianalbanian */,
-  {     1,  6114,  5340,   3,  10, UNI_SC__DEVA }   /* sc=devanagari */,
-  {     0,  1383,   356,   3,   2, UNI_IDS }   /* ids=y */,
-  {     0,  1704,     0,   6,   0, UNI_ARAB }   /* arabic */,
-  {     0,  6944,  1304,  25,   2, UNI_CCC__B }   /* canonicalcombiningclass=220 */,
-  {     0,   983,     0,   8,   0, UNI_HIRA }   /* hiragana */,
-  {     1,   735,  5601,   4,   8, UNI_LB__ID }   /* linebreak=id */,
-  {   129,  8182,  4038,  30,  12, UNI_INPC__TOPANDLEFTANDRIGHT }   /* indicpositionalcategory=topandleftandright */,
-  {    16,    34,   908,   1,   9, UNI_INBALINESE }   /* inbalinese */,
-  {     0,   600,  4533,   3,   7, UNI_DT__INIT }   /* dt=initial */,
-  {   148,  1796,   168,   7,   4, UNI_SC__COPT }   /* script=qaac */,
-  {    21,  4355,  6134,  17,   4, UNI_GLAG }   /* scriptextensions=glag */,
-  {    14,  3794,  1300,  14,   3, UNI_NV__8000 }   /* numericvalue=8000 */,
-  {     0,    14,  7556,   1,  28, UNI_MISCARROWS }   /* miscellaneoussymbolsandarrows */,
-  {     1,  1879,  1234,   4,   7, UNI_NB }   /* blk=noblock */,
-  {     0,  5928,     0,   5,   0, UNI_VO__TR }   /* vo=tr */,
-  {     0,  4355,   417,  17,   3, UNI_HAN }   /* scriptextensions=han */,
-  {  1061,  1102,  5322,   4,   8, UNI_CHER }   /* scx=cherokee */,
-  {  3195,  7201,  2322,  16,  10, UNI_CN }   /* generalcategory=unassigned */,
-  {     0,  1102,   160,   4,   4, UNI_PHLP }   /* scx=phlp */,
-  {     1,  4355,    86,  17,   4, UNI_GONG }   /* scriptextensions=gong */,
-  {     0,  7018,  6142,   6,   5, UNI_ARABICSUP }   /* inarabicsup */,
-  {  1272,  1377,   369,   3,   2, UNI_WB__SQ }   /* wb=sq */,
-  {     3,  1102,  1125,   4,   8, UNI_TFNG }   /* scx=tifinagh */,
-  {     2,  1357,  6286,   4,  17, UNI_JAMOEXTB }   /* inhanguljamoextendedb */,
-  {    11,  1102,   783,   4,   4, UNI_OSMA }   /* scx=osma */,
-  {     0,  1796,   496,   7,   4, UNI_SC__KHOJ }   /* script=khoj */,
-  {     1,  1796,    59,   7,   4, UNI_CHAM }   /* script=cham */,
-  {  1550,  5103,     0,   2,   0, UNI_CASEDLETTER }   /* l_ */,
-  {     0,  1879,  1951,   4,   7, UNI_INSOGDIAN }   /* blk=sogdian */,
-  {     1,   313,   840,   2,   7, UNI_INTAGALOG }   /* intagalog */,
-  {     0,  4291,   153,  10,   2, UNI_LB__SG }   /* linebreak=sg */,
-  {     0,  2033,  1175,   4,   2, UNI_alpha_values_index }   /* alpha= */,
-  {     2,   106,   792,   2,   2, UNI_HMNP }   /* hmnp */,
-  {     0,  1796,   686,   7,   5, UNI_SC__TAKR }   /* script=takri */,
-  {  2132,   261,   602,   4,   2, -UNI_CWCM }   /* cwcm=n */,
-  {     0,  3734,  3477,  12,   3, UNI_nfkcqc_values_index }   /* nfkcquickcheck= */,
-  {     0,  4355,   425,  17,   4, UNI_LINA }   /* scriptextensions=lina */,
-  {  2064,  4021,  4844,   4,  13, UNI_DIACRITICALSSUP }   /* indiacriticalssup */,
-  {     0,   464,  1982,   2,   6, UNI_SYRC }   /* issyriac */,
-  {     3,  4291,   313,  10,   2, UNI_LB__IN }   /* linebreak=in */,
-  {  2074,  4355,  1948,  17,  10, UNI_SOGO }   /* scriptextensions=oldsogdian */,
-  {     1,  5136,  7975,   5,  32, UNI_MISCMATHSYMBOLSA }   /* blk=miscellaneousmathematicalsymbolsa */,
-  {     2,   296,   348,   3,   2, UNI_NV__18 }   /* nv=18 */,
-  {     0,  1879,  5056,   4,  19, UNI_OTTOMANSIYAQNUMBERS }   /* blk=ottomansiyaqnumbers */,
-  {     0,  7208,  1899,   9,   6, UNI_S }   /* category=symbol */,
-  {     0,  6944,   292,  24,   2, UNI_CCC__30 }   /* canonicalcombiningclass=30 */,
-  {  1056,  1102,   691,   4,   5, UNI_BATK }   /* scx=batak */,
-  {   288,   806,     0,   4,   0, UNI_SARB }   /* sarb */,
-  {     0,   275,   647,   3,   4, UNI_LB__H3 }   /* gcb=lvt */,
-  {     0,  6114,  5116,   3,  20, UNI_HLUW }   /* sc=anatolianhieroglyphs */,
-  {   518,   749,     0,   4,   0, UNI_MARC }   /* marc */,
-  {    25,  4996,  4984,  13,   6, UNI_JG__MANICHAEANLAMEDH }   /* jg=manichaeanlamedh */,
-  {     0,  4355,  4582,  17,   8, UNI_BOPO }   /* scriptextensions=bopomofo */,
-  {     0,   270,     0,   3,   0, UNI_CWT }   /* cwt */,
-  {     0,   464,   832,   2,   5, UNI_STERM }   /* issterm */,
-  {   133,  1796,   212,   7,   4, UNI_SC__TGLG }   /* script=tglg */,
-  {     1,   464,   372,   2,   6, UNI_GOTH }   /* isgothic */,
-  {     1,  7825,  5366,  20,  10, UNI_CJKEXTD }   /* cjkunifiedideographsextensiond */,
-  {     1,  2363,  4442,  10,   9, UNI_ETHIOPICEXTB }   /* inethiopicextendedb */,
-  {   257,   464,    12,   2,   3, UNI_PCM }   /* ispcm */,
-  {     8,  6114,   228,   3,   4, UNI_XPEO }   /* sc=xpeo */,
-  {     0,  2454,     0,   6,   0, UNI_GEOR }   /* isgeor */,
-  {     0,  1102,   128,   4,   4, UNI_MEDF }   /* scx=medf */,
-  {     0,    37,  4372,   1,  16, UNI_SMALLFORMS }   /* smallformvariants */,
-  {     1,   464,   120,   2,   4, UNI_LAO }   /* islaoo */,
-  {     0,  2353,  5206,   3,  17, UNI_HALFMARKS }   /* incombininghalfmarks */,
-  {     0,  5284,     0,  20,   0, UNI_PHLI }   /* inscriptionalpahlavi */,
-  {     0,  4322,  6223,  14,   8, UNI_NV__3_SLASH_80 }   /* numericvalue=3.750e-02 */,
-  {  4197,  4450,  1939,   7,   9, UNI_COMPATJAMO }   /* block=compatjamo */,
-  {    32,    34,  1855,   1,  12, UNI_BIDIC }   /* isbidicontrol */,
-  {    14,  6114,  1614,   3,  10, UNI_WARA }   /* sc=warangciti */,
-  {     0,  1796,    94,   7,   4, UNI_SC__GUJR }   /* script=gujr */,
-  {     0,   916,   933,   4,   7, -UNI_EBASE }   /* ebase=false */,
-  {     0,   844,   355,   2,   2, UNI_loe_values_index }   /* loe= */,
-  {     0,   313,   749,   2,   7, UNI_INMARCHEN }   /* inmarchen */,
-  {  2052,  4355,   140,  17,   4, UNI_NARB }   /* scriptextensions=narb */,
-  {     1,  7660,   278,  17,   1, UNI_vs_values_index }   /* variationselector= */,
-  {  4151,  7500,     0,  27,   0, UNI_ANCIENTGREEKMUSIC }   /* ancientgreekmusicalnotation */,
-  {     0,  3367,   349,  14,   1, UNI_NV__48 }   /* numericvalue=48 */,
-  {     0,  1796,  4827,   7,   4, UNI_BAMU }   /* script=bamu */,
-  {     4,   296,  7171,   2,   3, UNI_NV__12 }   /* nv=12 */,
-  {    14,  7431,  2065,  27,   2, UNI_CCC__25 }   /* canonicalcombiningclass=ccc25 */,
-  {     0,  2275,   355,   9,   3, UNI_IDC }   /* idcontinue=y */,
-  {    22,  6039,  1491,  13,   4, UNI_MYANMAREXTA }   /* block=myanmarexta */,
-  {   161,  4355,  1205,  17,   9, UNI_QAAI }   /* scriptextensions=inherited */,
-  {     0,  1102,  1470,   4,   4, UNI_BUGI }   /* scx=bugi */,
-  {  4224,   313,  1887,   2,   8, UNI_UCASEXTA }   /* inucasexta */,
-  {     0,  1539,  5643,   3,  18, UNI_COUNTINGROD }   /* iscountingrodnumerals */,
-  {     0,  2926,  7937,   3,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* insymbolsandpictographsextendeda */,
-  {     0,   228,  1638,   2,   8, UNI_XPOSIXSPACE }   /* xperlspace */,
-  {     0,  5481,   356,  21,   2, UNI_CWCF }   /* changeswhencasefolded=y */,
-  {    85,  7825,  7314,  26,   4, UNI_CJKEXTB }   /* cjkunifiedideographsextensionb */,
-  {   517,  4598,     0,  16,   0, UNI_PE }   /* closepunctuation */,
-  {     3,   464,  1255,   2,   4, UNI_SOYO }   /* issoyo */,
-  {  2060,  2392,  2813,   3,  11, UNI_MAHJONG }   /* inmahjongtiles */,
-  {     3,  2474,  4567,   3,  15, UNI_MISCMATHSYMBOLSB }   /* ismiscmathsymbolsb */,
-  {    27,  4355,  6134,  17,  10, UNI_GLAG }   /* scriptextensions=glagolitic */,
-  {    90,  4355,  4882,  17,  19, UNI_EGYP }   /* scriptextensions=egyptianhieroglyphs */,
-  {     0,  6114,    98,   3,   4, UNI_SC__GURU }   /* sc=guru */,
-  {     0,  4092,   345,   8,   2, UNI_dia_values_index }   /* diacritic= */,
-  {     4,  2726,  1860,   3,   7, UNI_XPOSIXCNTRL }   /* gc=control */,
-  {     0,  2260,   392,   3,   3, UNI_IN__6_DOT_3 }   /* in=6.3 */,
-  {     5,  1796,  1948,   7,  10, UNI_SOGO }   /* script=oldsogdian */,
-  {  3595,  4355,  1826,  17,   4, UNI_SYLO }   /* scriptextensions=sylo */,
-  {     1,  3974,   934,   4,   2, -UNI_IDSB }   /* idsb=f */,
-  {     0,  6803,   588,  20,   5, UNI_CE }   /* compositionexclusion=true */,
-  {  1025,  4996,  4638,  15,   4, UNI_JG__MANICHAEANTWENTY }   /* jg=manichaeantwenty */,
-  {    86,  6402,   595,  14,   2, UNI_SB__SE }   /* sentencebreak=se */,
-  {    65,   940,   356,   6,   4, UNI_COMPEX }   /* compex=yes */,
-  {   923,  6416,     0,  23,   0, UNI_SHORTHANDFORMATCONTROLS }   /* shorthandformatcontrols */,
-  {     0,  2443,   588,   5,   2, UNI_CASED }   /* cased=t */,
-  {     0,   464,   337,   2,   4, UNI_CARI }   /* iscari */,
-  {  1794,   366,     0,   2,   0, UNI_SM }   /* sm */,
-  {     0,  3450,  8150,   5,  32, UNI_DIACRITICALSEXT }   /* blk=combiningdiacriticalmarksextended */,
-  {     0,  1879,  5846,   4,  19, UNI_SUPARROWSC }   /* blk=supplementalarrowsc */,
-  {   528,   464,  5806,   2,  12, UNI_MONGOLIANSUP }   /* ismongoliansup */,
-  {     0,  2275,   933,   9,   7, -UNI_IDC }   /* idcontinue=false */,
-  {     0,   464,  5322,   2,  11, UNI_CHEROKEESUP }   /* ischerokeesup */,
-  {   163,  1967,   588,   7,   5, UNI_RADICAL }   /* radical=true */,
-  {     7,  7688,   603,  22,   4, UNI_JG__MANICHAEANONE }   /* joininggroup=manichaeanone */,
-  {     5,  2625,  1104,  12,   2, UNI_patsyn_values_index }   /* patternsyntax= */,
-  {     0,  6114,  1241,   3,   4, UNI_SC__PHAG }   /* sc=phag */,
-  {     1,   296,  2262,   2,   3, UNI_NV__14 }   /* nv=14 */,
-  {     5,   876,   588,   4,   5, UNI_IDEO }   /* ideo=true */,
-  {     3,    24,  1104,   2,   2, UNI_hex_values_index }   /* hex= */,
-  {     0,  7823,  5366,  22,  10, UNI_CJKEXTD }   /* incjkunifiedideographsextensiond */,
-  {   138,  4355,  1529,  17,   4, UNI_KHAR }   /* scriptextensions=khar */,
-  {     0,  5136,  1491,  11,   4, UNI_MYANMAREXTA }   /* blk=myanmarexta */,
-  {     0,  3474,  2665,   7,  13, UNI_ANCIENTSYMBOLS }   /* block=ancientsymbols */,
-  {    11,  7880,  6309,   5,  13, UNI_CJKCOMPAT }   /* iscjkcompatibility */,
-  {     0,  2981,   395,   4,   2, UNI_IN__4_DOT_1 }   /* in=v41 */,
-  {     0,  1102,  5116,   4,  20, UNI_HLUW }   /* scx=anatolianhieroglyphs */,
-  {     0,  1377,   546,   3,   2, UNI_WB__EB }   /* wb=eb */,
-  {     0,  3763,     0,  14,   0, UNI_NV__5 }   /* numericvalue=5 */,
-  {    65,  5565,   934,  21,   6, -UNI_CWU }   /* changeswhenuppercased=false */,
-  {     1,  5718,   934,   4,   6, -UNI_EMOD }   /* emod=false */,
-  {  2312,   464,  3053,   2,  13, UNI_POSIXXDIGIT }   /* isasciihexdigit */,
-  {     2,   464,  4842,   2,  15, UNI_DIACRITICALSSUP }   /* isdiacriticalssup */,
-  {  3131,  4355,   502,  17,   4, UNI_LYDI }   /* scriptextensions=lydi */,
-  {     1,  3474,  7660,   6,  18, UNI_INVS }   /* block=variationselectors */,
-  {     0,  1102,  4671,   4,   4, UNI_TALE }   /* scx=tale */,
-  {     0,  4355,  3309,  17,  15, UNI_MERC }   /* scriptextensions=meroiticcursive */,
-  {     1,  2496,  1526,   3,   3, UNI_JG__YEH }   /* jg=yeh */,
-  {     1,   823,  3150,   3,   2, UNI_dash_values_index }   /* dash= */,
-  {     0,   612,  5021,   2,  17, UNI_LB__CP }   /* lb=closeparenthesis */,
-  {     0,  1879,  3527,   4,  16, UNI_HALFANDFULLFORMS }   /* blk=halfandfullforms */,
-  {  1605,  1102,  1117,   4,   4, UNI_TAGB }   /* scx=tagb */,
-  {     0,  8533,  1808,   7,  10, UNI_INSORASOMPENG }   /* block=sorasompeng */,
-  {   521,   464,   220,   2,   4, UNI_TOTO }   /* istoto */,
-  {     0,  1102,  1241,   4,   7, UNI_PHAG }   /* scx=phagspa */,
-  {  3592,  1377,  3024,   3,  11, UNI_WB__SQ }   /* wb=singlequote */,
-  {  2091,  3367,   294,  14,   1, UNI_NV__44 }   /* numericvalue=44 */,
-  {     0,   464,  4882,   2,   4, UNI_EGYP }   /* isegyp */,
-  {    32,    58,     0,   2,   0, UNI_SC }   /* sc */,
-  {     0,   611,     0,   4,   0, UNI_ELBA }   /* elba */,
-  {     0,   464,   917,   2,   8, UNI_BASS }   /* isbassavah */,
-  {     0,  2496,  1982,   3,   9, UNI_JG__SYRIACWAW }   /* jg=syriacwaw */,
-  {     6,  3669,   664,  12,   2, UNI_JG__MALAYALAMRA }   /* jg=malayalamra */,
-  {     1,   313,  1033,   2,   8, UNI_JAMOEXTB }   /* injamoextb */,
-  {  2049,  7823,  7314,  28,   4, UNI_CJKEXTB }   /* incjkunifiedideographsextensionb */,
-  {  1606,  4901,     0,  13,   0, UNI_EMOD }   /* emojimodifier */,
-  {     0,  2726,  4081,   3,   5, UNI_P }   /* gc=punct */,
-  {     4,  1879,  8592,   4,  43, UNI_UCASEXTA }   /* blk=unifiedcanadianaboriginalsyllabicsextendeda */,
-  {    17,  2392,  7556,   3,  28, UNI_MISCARROWS }   /* inmiscellaneoussymbolsandarrows */,
-  {     0,   120,   122,   2,   2, UNI_LAO }   /* laoo */,
-  {    10,    12,   165,   1,   3, UNI_PHNX }   /* phnx */,
-  {     0,   600,   366,   3,   3, UNI_DT__SML }   /* dt=sml */,
-  {     2,  1065,   763,   4,   3, UNI_NV__11_SLASH_2 }   /* nv=11/2 */,
-  {     4,  4355,  2695,  16,   7, UNI_ARAB }   /* scriptextensions=arabic */,
-  {     5,  2802,  7733,   3,  21, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* isenclosedideographicsup */,
-  {    24,   536,  1581,   3,   7, UNI_SB__LE }   /* sb=oletter */,
-  {  2069,  6114,  3188,   3,  15, UNI_ARMI }   /* sc=imperialaramaic */,
-  {     0,  4122,   934,   5,   2, -UNI_XPOSIXLOWER }   /* lower=f */,
-  {    33,  7208,   252,   9,   5, UNI_XPOSIXCNTRL }   /* category=cntrl */,
-  {     0,  4882,     0,  19,   0, UNI_EGYP }   /* egyptianhieroglyphs */,
-  {    56,  1879,  2428,   4,   6, UNI_IPAEXT }   /* blk=ipaext */,
-  {     0,    34,  1667,   1,   7, UNI_DOMINO }   /* indomino */,
-  {    20,  6944,  7342,  18,  11, UNI_CCC__R }   /* canonicalcombiningclass=right */,
-  {   274,   464,  1311,   2,   4, UNI_ITAL }   /* isital */,
-  {     0,  7584,    55,  18,   3, UNI_DT__CAN }   /* decompositiontype=can */,
-  {    13,  3593,  5584,  13,   3, UNI_LATINEXTG }   /* inlatinextendedg */,
-  {     1,  4291,  4598,  10,  16, UNI_LB__CL }   /* linebreak=closepunctuation */,
-  {     4,  1236,  6414,   2,  25, UNI_SHORTHANDFORMATCONTROLS }   /* blk=shorthandformatcontrols */,
-  {     0,  4582,     0,  11,   0, UNI_BOPOMOFOEXT }   /* bopomofoext */,
-  {     2,  1796,    63,   7,   4, UNI_CHRS }   /* script=chrs */,
-  {  4096,    34,   938,   1,   6, UNI_ECOMP }   /* isecomp */,
-  {     1,  1102,   216,   4,   4, UNI_TIBT }   /* scx=tibt */,
-  {     0,  5147,     0,  15,   0, UNI_LATINEXTE }   /* block=latinexte */,
-  {     1,  6644,     0,  15,   0, UNI_TRANSPORTANDMAP }   /* transportandmap */,
-  {     0,  1796,   116,   7,   4, UNI_SC__KNDA }   /* script=knda */,
-  {     0,  1710,     0,   3,   0, UNI_S }   /* iss */,
+  {    16,  2324,   474,   6,   3, UNI_INVAI }   /* block=vai */,
+  {    36,  2324,   648,   6,   5, UNI_INADLAM }   /* block=adlam */,
+  {     2,  1883,     0,   5,   0, UNI_BIDIC }   /* bidic */,
+  {    16,  1667,   537,   4,   6, UNI_INTANGSA }   /* blk=tangsa */,
+  {     3,   309,  5857,   2,   9, UNI_INMONGOLIAN }   /* inmongolian */,
+  {    14,  4424,  1090,  17,   4, UNI_LINB }   /* scriptextensions=linb */,
+  {    29,  6165,  1191,   3,   7, UNI_SC__BENG }   /* sc=bengali */,
+  {     1,   208,     0,   4,   0, UNI_TGLG }   /* tglg */,
+  {    12,  2324,  4161,   6,  15, UNI_DIACRITICALSEXT }   /* block=diacriticalsext */,
+  {     1,  8343,  3289,  31,   5, UNI_INSC__CONSONANTFINAL }   /* indicsyllabiccategory=consonantfinal */,
+  {     0,  7449,     0,  18,   0, UNI_PHONETICEXT }   /* phoneticextensions */,
+  {     0,  6163,  3253,   5,  10, UNI_INSC__PUREKILLER }   /* insc=purekiller */,
+  {     0,    10,  8039,   1,  32, UNI_MISCMATHSYMBOLSA }   /* miscellaneousmathematicalsymbolsa */,
+  {     0,  2324,   430,   6,   3, UNI_INNKO }   /* block=nko */,
+  {     3,  5156,   652,  10,   2, UNI_WB__MB }   /* wordbreak=mb */,
+  {     3,  1823,  1325,   7,   4, UNI_ITAL }   /* script=ital */,
+  {     3,   461,   199,   2,   2, UNI_TITLE }   /* islt */,
+  {     1,    19,   353,   4,   4, UNI_POSIXXDIGIT }   /* ahex=yes */,
+  {     0,  2505,  8568,   4,  33, UNI_DIACRITICALSSUP }   /* incombiningdiacriticalmarkssupplement */,
+  {     5,  3021,   891,   5,   2, UNI_IN__11 }   /* in=v110 */,
+  {     0,  2930,    12,   3,   1, UNI_JT__D }   /* jt=d */,
+  {     3,   309,  7467,   2,  28, UNI_SUPPUAA }   /* insupplementaryprivateuseareaa */,
+  {    32,  3021,  1313,   4,   2, UNI_IN__6 }   /* in=v60 */,
+  {     2,  2360,  2367,   7,   3, UNI_CN }   /* unassigned */,
+  {     0,  5838,     0,  19,   0, UNI_JAMOEXTA }   /* hanguljamoextendeda */,
+  {     3,  2752,  2931,  13,   3, UNI_ECOMP }   /* emojicomponent=t */,
+  {     0,   461,   663,   2,   4, UNI_LIMB }   /* islimb */,
+  {     1,  2401,  5848,  10,   9, UNI_ETHIOPICEXTA }   /* inethiopicextendeda */,
+  {     2,  3817,     0,  14,   0, UNI_NV__1 }   /* numericvalue=1 */,
+  {    15,   309,  1322,   2,   9, UNI_INOLDITALIC }   /* inolditalic */,
+  {     1,  2769,     0,   5,   0, UNI_C }   /* other */,
+  {     1,    10,  1235,   1,   6, UNI_MULT }   /* multani */,
+  {     1,  2324,  4911,   6,  15, UNI_DIACRITICALSSUP }   /* block=diacriticalssup */,
+  {     6,  1102,   732,   4,   7, UNI_LINA }   /* scx=lineara */,
+  {     0,  1133,     0,   8,   0, UNI_VITH }   /* vithkuqi */,
+  {     4,  7011,  2029,  23,   3, UNI_CCC__BR }   /* canonicalcombiningclass=br */,
+  {     1,   309,  6514,   2,  10, UNI_PUA }   /* inprivateuse */,
+  {     0,  6597,     0,   4,   0, UNI_CE }   /* isce */,
+  {     2,   461,   782,   2,   3, UNI_ANY }   /* isany */,
+  {     2,   461,  3692,   2,  14, UNI_LISUSUP }   /* islisusupplement */,
+  {     0,  1102,   283,   4,   5, UNI_NSHU }   /* scx=nushu */,
+  {     0,   461,  7796,   2,  22, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* isenclosedideographicsup */,
+  {     6,  6165,   861,   3,   7, UNI_TIBT }   /* sc=tibetan */,
+  {    16,  1102,   232,   4,   4, UNI_YI }   /* scx=yiii */,
+  {     0,  3514,  3790,  11,   5, UNI_ARABICMATH }   /* block=arabicmath */,
+  {     0,   261,   585,   5,   2, UNI_CWKCF }   /* cwkcf=t */,
+  {     0,  5637,  7134,  21,   7, UNI_GCB__PP }   /* graphemeclusterbreak=prepend */,
+  {     1,  2536,   487,   3,   3, UNI_JG__REH }   /* jg=reh */,
+  {     1,   283,     0,   5,   0, UNI_NSHU }   /* nushu */,
+  {     1,    32,   323,   1,   4, UNI_VSSUP }   /* vssup */,
+  {     1,  1065,   295,   5,   1, UNI_NV__1_SLASH_9 }   /* nv=1/9 */,
+  {     0,  5658,  1396,  18,   3, UNI_IDENTIFIERTYPE__NOTXID }   /* identifiertype=notxid */,
+  {     0,  6236,     0,  19,   0, UNI_NV__100000 }   /* numericvalue=100000 */,
+  {     0,  7267,  3276,  16,  13, UNI_ME }   /* generalcategory=enclosingmark */,
+  {     0,   833,   585,   4,   2, UNI_TERM }   /* term=t */,
+  {     0,  7648,   140,  18,   3, UNI_DT__NAR }   /* decompositiontype=nar */,
+  {     0,  4651,     0,   4,   0, UNI_BOPO }   /* bopo */,
+  {     1,   317,   857,   3,   4, UNI_TAVT }   /* taiviet */,
+  {     1,  2766,    99,   3,   2, UNI_UPPERCASELETTER }   /* gc=lu */,
+  {     0,   309,  5068,   2,  10, UNI_INMANICHAEAN }   /* inmanichaean */,
+  {     8,  2718,  1715,  14,   7, UNI_BC__RLI }   /* bc=righttoleftisolate */,
+  {    32,   461,  1635,   2,  10, UNI_WARA }   /* iswarangciti */,
+  {     1,  5939,     0,   5,   0, UNI__PERL_NCHAR }   /* nchar */,
+  {     5,   505,   599,   5,   2, UNI_DT__CAN }   /* nfdqc=n */,
+  {     0,  2324,   663,   6,   5, UNI_INLIMBU }   /* block=limbu */,
+  {     0,  3093,   934,  13,   6, -UNI_POSIXXDIGIT }   /* asciihexdigit=false */,
+  {     0,    54,  3505,   2,   5, UNI_ETHI }   /* sc=ethi */,
+  {     0,  1667,   861,   4,   7, UNI_INTIBETAN }   /* blk=tibetan */,
+  {     4,    20,     0,   3,   0, UNI_XPOSIXXDIGIT }   /* hex */,
+  {     4,  6165,   794,   3,   4, UNI_LANA }   /* sc=lana */,
+  {     0,  1421,  2370,   3,   7, UNI_GREEKEXT }   /* ingreekext */,
+  {     3,  1397,   934,   3,   6, -UNI_IDS }   /* ids=false */,
+  {     0,  4424,  5031,  17,   4, UNI_HAN }   /* scriptextensions=hani */,
+  {     2,   309,  1144,   2,   9, UNI_INBHAIKSUKI }   /* inbhaiksuki */,
+  {     5,   339,   559,   5,   2, UNI_CCC__107 }   /* ccc=107 */,
+  {     1,  6090,  2422,   7,  10, UNI_MISCSYMBOLS }   /* block=miscsymbols */,
+  {     0,  4191,  5671,   8,   4, -UNI_XPOSIXLOWER }   /* lowercase=no */,
+  {     0,    86,     0,   4,   0, UNI_GREK }   /* grek */,
+  {    17,   925,  5090,   3,   6, UNI_BPT__C }   /* bpt=close */,
+  {     1,  7669,   897,  17,   3, UNI_GCB__V }   /* hangulsyllabletype=v */,
+  {     0,  1454,   599,   2,   2, -UNI_SD }   /* sd=n */,
+  {     6,   461,  2411,   2,  11, UNI_KATAKANAEXT }   /* iskatakanaext */,
+  {    50,  6165,   160,   3,   4, UNI_SC__PHLP }   /* sc=phlp */,
+  {     0,    20,   599,   3,   2, -UNI_XPOSIXXDIGIT }   /* hex=n */,
+  {     0,  7267,  3263,  16,  13, UNI_XPOSIXDIGIT }   /* generalcategory=decimalnumber */,
+  {     0,  3204,   353,  14,   2, UNI_GREXT }   /* graphemeextend=y */,
+  {     4,   939,   934,   5,   6, -UNI_ECOMP }   /* ecomp=false */,
+  {    49,  4951,     0,  19,   0, UNI_EGYP }   /* egyptianhieroglyphs */,
+  {    11,  2514,  7825,   3,  30, UNI_MATHALPHANUM }   /* ismathematicalalphanumericsymbols */,
+  {     1,  6165,  1367,   3,   9, UNI_PAUC }   /* sc=paucinhau */,
+  {     4,  3677,    81,   9,   2, UNI_LATINEXTG }   /* islatinextg */,
+  {     5,  1174,     3,   3,   1, UNI_EA__W }   /* ea=w */,
+  {     2,  3863,  1805,  14,   4, UNI_NV__80000 }   /* numericvalue=80000 */,
+  {     1,  5616,   934,  21,   6, -UNI_CWU }   /* changeswhenuppercased=false */,
+  {     5,  1864,     0,   5,   0, UNI_EBASE }   /* ebase */,
+  {     3,  7944,  5252,  28,   4, UNI_CJKEXTE }   /* iscjkunifiedideographsextensione */,
+  {     1,  5616,   274,  21,   1, UNI_cwu_values_index }   /* changeswhenuppercased= */,
+  {     8,   461,   683,   2,   4, UNI_TAKR }   /* istakr */,
+  {     1,  4424,  2411,  17,   8, UNI_KANA }   /* scriptextensions=katakana */,
+  {     5,  4360,     0,  12,   0, UNI_LB__ZW }   /* linebreak=zw */,
+  {     1,  1667,  4725,   4,   9, UNI_TANGUTSUP }   /* blk=tangutsup */,
+  {   131,  6165,   739,   3,   4, UNI_SC__MAND }   /* sc=mand */,
+  {    18,  4424,  1015,  17,   4, UNI_TELU }   /* scriptextensions=telu */,
+  {    38,   339,    18,   4,   1, UNI_CCC__B }   /* ccc=b */,
+  {     1,  7084,  5848,   8,   9, UNI_ARABICEXTA }   /* inarabicextendeda */,
+  {     0,  7011,   346,  24,   2, UNI_CCC__84 }   /* canonicalcombiningclass=84 */,
+  {     3,   461,  2302,   2,   3, UNI_IDC }   /* isidc */,
+  {     0,  1823,  6777,   8,  10, UNI_MTEI }   /* script=meeteimayek */,
+  {    13,  1102,   410,   4,   4, UNI_GONM }   /* scx=gonm */,
+  {     0,  2811,  2815,   4,   8, UNI_KHMERSYMBOLS }   /* khmersymbols */,
+  {     5,  6450,    54,  14,   2, UNI_SB__SC }   /* sentencebreak=sc */,
+  {     0,  1340,     0,   9,   0, UNI_ORKH }   /* oldturkic */,
+  {     1,   461,   240,   2,   4, UNI_ZYYY }   /* iszyyy */,
+  {     0,  4424,   840,  17,   7, UNI_TGLG }   /* scriptextensions=tagalog */,
+  {     3,    18,  6901,   1,  13, UNI_BYZANTINEMUSIC }   /* byzantinemusic */,
+  {    18,   309,   840,   2,   7, UNI_INTAGALOG }   /* intagalog */,
+  {     0,  2718,  3505,   2,   3, UNI_BC__ET }   /* bc=et */,
+  {     0,  1823,    11,   7,   4, UNI_SC__ADLM }   /* script=adlm */,
+  {     0,  4502,  3773,   5,  15, UNI_LINEARBIDEOGRAMS }   /* blk=linearbideograms */,
+  {     2,  2514,  7620,   3,  28, UNI_MISCARROWS }   /* ismiscellaneoussymbolsandarrows */,
+  {     0,  4391,  2164,  14,   8, UNI_NV__1_SLASH_3 }   /* numericvalue=3.333e-01 */,
+  {     0,  2766,  4075,   3,  14, UNI_SC }   /* gc=currencysymbol */,
+  {     0,  7752,  4746,  23,   5, UNI_JG__MANICHAEANGIMEL }   /* joininggroup=manichaeangimel */,
+  {    40,    54,  2735,   2,   5, UNI_SC__ARAB }   /* sc=arab */,
+  {     0,   309,   527,   2,   6, UNI_INREJANG }   /* inrejang */,
+  {     2,  2391,  1674,  10,   4, UNI_CYRILLICEXTD }   /* incyrillicextd */,
+  {     1,  1102,  1262,   4,   7, UNI_SOYO }   /* scx=soyombo */,
+  {     1,  3863,  2164,  14,   8, UNI_NV__5_SLASH_6 }   /* numericvalue=8.333e-01 */,
+  {     9,  4424,  1205,  17,   4, UNI_GRAN }   /* scriptextensions=gran */,
+  {     0,  4360,  1763,  10,   8, UNI_LB__LF }   /* linebreak=linefeed */,
+  {     3,  4424,  5067,  16,   5, UNI_MANI }   /* scriptextensions=mani */,
+  {     0,     8,   353,   3,   4, UNI_PCM }   /* pcm=yes */,
+  {     6,  1696,     0,   6,   0, UNI_DOMINO }   /* domino */,
+  {     0,  7495,  1317,  27,   2, UNI_CCC__32 }   /* canonicalcombiningclass=ccc32 */,
+  {     0,  2391,  5848,  10,   9, UNI_CYRILLICEXTA }   /* incyrillicextendeda */,
+  {    14,  7134,   353,  26,   2, UNI_PCM }   /* prependedconcatenationmark=y */,
+  {     2,  1102,   357,   4,   6, UNI_CAKM }   /* scx=chakma */,
+  {     0,   461,   861,   2,   7, UNI_TIBT }   /* istibetan */,
+  {     4,  1667,  1285,   4,   9, UNI_INKHUDAWADI }   /* blk=khudawadi */,
+  {     3,  1102,   499,   4,   6, UNI_LYDI }   /* scx=lydian */,
+  {     1,  1906,  3622,   7,  11, UNI_KANGXI }   /* blk=kangxiradicals */,
+  {     1,  2525,  1479,   6,   5, UNI_XPOSIXSPACE }   /* xposixspace */,
+  {     1,  2766,  2004,   3,   2, UNI_PO }   /* gc=po */,
+  {     0,    54,  3133,   2,   5, UNI_SC__GEOR }   /* sc=geor */,
+  {     4,   461,   880,   2,   7, UNI_ZZZZ }   /* isunknown */,
+  {     0,   510,  3876,   5,   2, UNI_NV__3_SLASH_80 }   /* nv=3/80 */,
+  {     2,  3502,   324,  12,   3, UNI_ETHIOPICSUP }   /* blk=ethiopicsup */,
+  {     4,  6165,   688,   3,   5, UNI_BATK }   /* sc=batak */,
+  {    56,  1174,  7048,   3,   9, UNI_EA__F }   /* ea=fullwidth */,
+  {     0,  7267,   599,  15,   3, UNI_NO }   /* generalcategory=no */,
+  {     1,  7274,  6677,   9,  14, UNI_LM }   /* category=modifierletter */,
+  {     2,  3391,  3876,  13,   2, UNI_NV__80 }   /* numericvalue=80 */,
+  {     2,  2324,   204,  11,   2, UNI_CJKEXTF }   /* block=cjkextf */,
+  {     2,   461,   458,   2,   4, UNI_QAAI }   /* isqaai */,
+  {     3,  4502,  4770,  17,  10, UNI_LATINEXTADDITIONAL }   /* blk=latinextendedadditional */,
+  {     3,  1106,     0,   4,   0, UNI_TALU }   /* talu */,
+  {     0,  2324,  1501,   6,   8, UNI_JAMOEXTA }   /* block=jamoexta */,
+  {     3,  2060,   353,   5,   2, UNI_XPOSIXALPHA }   /* alpha=y */,
+  {     1,  1823,   398,   7,   4, UNI_MIAO }   /* script=miao */,
+  {     2,    15,  3418,   2,   3, UNI_AGE__4 }   /* age=4 */,
+  {     2,  7383,   327,  10,   3, UNI_BC__FSI }   /* bidiclass=fsi */,
+  {     0,  1667,  1331,   4,   9, UNI_INOLDPERMIC }   /* blk=oldpermic */,
+  {     0,  1667,  5857,   4,  12, UNI_MONGOLIANSUP }   /* blk=mongoliansup */,
+  {     1,  7564,     0,  17,   0, UNI_ANCIENTGREEKMUSIC }   /* ancientgreekmusic */,
+  {     3,  4424,    23,  17,   4, UNI_AHOM }   /* scriptextensions=ahom */,
+  {     2,    30,   536,   1,   5, UNI_TANG }   /* istang */,
+  {     0,  7752,  2403,  24,   3, UNI_JG__MANICHAEANTETH }   /* joininggroup=manichaeanteth */,
+  {     0,  7274,  4369,   8,   2, UNI_Z }   /* category=z */,
+  {     1,  2060,   934,   5,   2, -UNI_XPOSIXALPHA }   /* alpha=f */,
+  {     0,  2287,   549,   3,   3, UNI_IN__4 }   /* in=4.0 */,
+  {    42,  1102,   975,   4,   8, UNI_GURU }   /* scx=gurmukhi */,
+  {    14,   423,  2312,   3,  12, UNI_AEGEANNUMBERS }   /* inaegeannumbers */,
+  {     1,  4391,   763,  14,   3, UNI_NV__3_SLASH_64 }   /* numericvalue=3/64 */,
+  {     0,  2324,  2852,   6,   7, UNI_MAHJONG }   /* block=mahjong */,
+  {     4,  6236,     0,  15,   0, UNI_NV__10 }   /* numericvalue=10 */,
+  {     3,   887,     0,   8,   0, UNI_AGE__10 }   /* age=10.0 */,
+  {     0,  7267,   326,  16,   2, UNI_PF }   /* generalcategory=pf */,
+  {     1,  7752,  4239,  23,   4, UNI_JG__MANICHAEANFIVE }   /* joininggroup=manichaeanfive */,
+  {     3,    82,     0,   4,   0, UNI_GONG }   /* gong */,
+  {     0,  1906,  5848,   8,   9, UNI_KANAEXTA }   /* blk=kanaextendeda */,
+  {     3,  3093,   598,  12,   4, -UNI_POSIXXDIGIT }   /* asciihexdigit=no */,
+  {     0,   309,  4506,   2,  14, UNI_LATINEXTB }   /* inlatinextendedb */,
+  {     3,  7267,  4150,  16,   5, UNI_P }   /* generalcategory=punct */,
+  {     0,  5937,   598,  20,   3, -UNI__PERL_NCHAR }   /* noncharactercodepoint=n */,
+  {     0,  1823,  4461,   7,  11, UNI_SGNW }   /* script=signwriting */,
+  {     0,  1823,  3349,   7,  15, UNI_MERC }   /* script=meroiticcursive */,
+  {     5,  3407,  2192,  14,   8, UNI_NV__3_SLASH_64 }   /* numericvalue=4.688e-02 */,
+  {     0,   236,     0,   4,   0, UNI_ZANB }   /* zanb */,
+  {     6,   782,     0,   3,   0, UNI_ANY }   /* any */,
+  {     1,  3228,     0,  15,   0, UNI_ARMI }   /* imperialaramaic */,
+  {     0,  1454,   599,   2,   3, -UNI_SD }   /* sd=no */,
+  {     2,  2324,     0,   6,   0, UNI_blk_values_index }   /* block= */,
+  {     9,  1102,  1340,   4,   9, UNI_ORKH }   /* scx=oldturkic */,
+  {     1,  1102,  4461,   4,  11, UNI_SGNW }   /* scx=signwriting */,
+  {     4,  5595,     0,  21,   0, UNI_CWT }   /* changeswhentitlecased */,
+  {    20,  2503,   934,  11,   2, -UNI_JOINC }   /* joincontrol=f */,
+  {     3,  4424,   746,  17,   4, UNI_MARC }   /* scriptextensions=marc */,
+  {     0,  2324,  1385,   6,   6, UNI_INTHAANA }   /* block=thaana */,
+  {     0,  6090,  7825,   7,  30, UNI_MATHALPHANUM }   /* block=mathematicalalphanumericsymbols */,
+  {     0,   339,   182,   4,   2, UNI_CCC__0 }   /* ccc=nr */,
+  {    22,  2268,     0,  12,   0, UNI_PLAYINGCARDS }   /* playingcards */,
+  {     1,  3391,  2223,  13,   9, UNI_NV__1_SLASH_16 }   /* numericvalue=6.250e-02 */,
+  {     0,  7011,  2234,  23,   2, UNI_CCC__8 }   /* canonicalcombiningclass=8 */,
+  {     0,  1667,   663,   4,   5, UNI_INLIMBU }   /* blk=limbu */,
+  {     0,  8071,     0,  24,   0, UNI_CJK }   /* blk=cjkunifiedideographs */,
+  {     1,  8246,  8508,  24,  14, UNI_INPC__BOTTOMANDRIGHT }   /* indicpositionalcategory=bottomandright */,
+  {    16,  6165,  1779,   3,  11, UNI_MEDF }   /* sc=medefaidrin */,
+  {     0,   622,     0,   7,   0, UNI_EXTPICT }   /* extpict */,
+  {     1,    21,  7241,   1,  26, UNI_ENCLOSEDCJK }   /* enclosedcjklettersandmonths */,
+  {     0,  2324,     5,   6,   3, UNI_OCR }   /* block=ocr */,
+  {    65,  6165,  1255,   3,   7, UNI_SIDD }   /* sc=siddham */,
+  {     0,  5616,   599,  21,   2, -UNI_CWU }   /* changeswhenuppercased=n */,
+  {     1,   192,     0,   4,   0, UNI_TAGS }   /* tags */,
+  {     0,   833,   353,   4,   4, UNI_TERM }   /* term=yes */,
+  {     9,    15,     0,   4,   0, UNI_AGHB }   /* aghb */,
+  {     4,  2348,  5671,  12,   3, -UNI_CI }   /* caseignorable=n */,
+  {     2,  1424,   343,   7,   2, UNI_CCC__12 }   /* ccc=ccc12 */,
+  {     0,   309,  1033,   2,   4, UNI_JAMO }   /* injamo */,
+  {     0,  7889,  3998,  26,   4, UNI_CJKEXTG }   /* cjkunifiedideographsextensiong */,
+  {     1,  1011,   585,   2,   2, UNI_CI }   /* ci=t */,
+  {     3,   292,   290,   3,   2, UNI_NV__40 }   /* nv=40 */,
+  {    66,  1391,  6324,   3,   6, UNI_WB__FO }   /* wb=format */,
+  {     1,  6165,    27,   3,   4, UNI_ARMI }   /* sc=armi */,
+  {     0,   461,  3268,   2,   5, UNI_XPOSIXALNUM }   /* isalnum */,
+  {     6,  6165,    51,   3,   4, UNI_CANS }   /* sc=cans */,
+  {    21,  4970,   599,  13,   2, -UNI_EMOD }   /* emojimodifier=n */,
+  {     2,  1396,     0,   8,   0, UNI_XIDS }   /* xidstart */,
+  {     6,   517,  1314,   4,   2, UNI_NV__700 }   /* nv=700 */,
+  {     0,   339,  7239,   4,   2, UNI_CCC__28 }   /* ccc=28 */,
+  {     1,  1424,  1318,   7,   2, UNI_CCC__20 }   /* ccc=ccc20 */,
+  {    64,   753,  1792,   3,   9, UNI_NFCQC__M }   /* nfkcqc=maybe */,
+  {     0,  7084,  6193,   6,  12, UNI_ARABICSUP }   /* inarabicsupplement */,
+  {     1,   339,  5523,   4,   5, UNI_CCC__B }   /* ccc=below */,
+  {     0,  1272,  7111,   3,  23, UNI_DIACRITICALSFORSYMBOLS }   /* iscombiningmarksforsymbols */,
+  {     1,  7011,  7408,  18,   7, UNI_CCC__R }   /* canonicalcombiningclass=r */,
+  {     2,  2536,  5084,   3,   4, UNI_JG__YUDH }   /* jg=yudh */,
+  {     0,  2766,  4683,   3,  16, UNI_PF }   /* gc=finalpunctuation */,
+  {     0,   552,     0,   4,   0, UNI_age_values_index }   /* age= */,
+  {    17,   461,  2769,   2,   5, UNI_C }   /* isother */,
+  {     1,  3791,  2060,   4,   8, UNI_MATHALPHANUM }   /* mathalphanum */,
+  {     0,  2403,   620,   6,   5, UNI_ETHIOPICEXT }   /* ethiopicext */,
+  {     1,  8343,  5762,  22,  16, UNI_INSC__SYLLABLEMODIFIER }   /* indicsyllabiccategory=syllablemodifier */,
+  {     2,  2324,  6332,   6,  19, UNI_JAMOEXTB }   /* block=hanguljamoextendedb */,
+  {    26,  4502,    81,  11,   2, UNI_LATINEXTG }   /* blk=latinextg */,
+  {     5,  5532,   274,  21,   1, UNI_cwcf_values_index }   /* changeswhencasefolded= */,
+  {     2,  2494,  2773,   3,  13, UNI_INGREEK }   /* isgreekandcoptic */,
+  {     0,  1823,  1027,   7,   6, UNI_SC__YEZI }   /* script=yezidi */,
+  {    65,   940,     0,   2,   0, UNI_CO }   /* co */,
+  {     1,   615,     0,   7,   0, UNI_ELYM }   /* elymaic */,
+  {    64,  1240,  1332,   3,   8, UNI_INOLDPERMIC }   /* inoldpermic */,
+  {     0,  6165,    78,   3,   4, UNI_DSRT }   /* sc=dsrt */,
+  {     0,  5769,   353,   4,   2, UNI_EMOD }   /* emod=y */,
+  {    46,  4795,  1805,  14,   4, UNI_NV__60000 }   /* numericvalue=60000 */,
+  {     2,  6165,   868,   3,   7, UNI_SC__TIRH }   /* sc=tirhuta */,
+  {     1,  6870,   934,  20,   2, -UNI_CE }   /* compositionexclusion=f */,
+  {     0,  1082,     0,   4,   0, UNI_XPOSIXWORD }   /* word */,
+  {     3,   253,   599,   4,   2, -UNI_CWCF }   /* cwcf=n */,
+  {     0,  1823,   430,   7,   4, UNI_SC__NKO }   /* script=nkoo */,
+  {     0,  2718,  6300,  13,  10, UNI_BC__RLE }   /* bc=righttoleftembedding */,
+  {     2,  1823,   608,   7,   4, UNI_ELBA }   /* script=elba */,
+  {     3,  7267,  8356,   7,  11, UNI_CO }   /* generalcategory=co */,
+  {     1,  1823,    15,   7,   4, UNI_AGHB }   /* script=aghb */,
+  {     0,  8278,  1556,   4,   6, UNI_MISCARROWS }   /* miscarrows */,
+  {     8,   461,  7449,   2,  28, UNI_PHONETICEXTSUP }   /* isphoneticextensionssupplement */,
+  {    10,  7134,   585,  26,   5, UNI_PCM }   /* prependedconcatenationmark=true */,
+  {     0,  4424,   124,  17,   4, UNI_LATN }   /* scriptextensions=latn */,
+  {     9,  1823,  1205,   7,   7, UNI_SC__GRAN }   /* script=grantha */,
+  {    16,   461,  3634,   2,   2, UNI_NL }   /* isnl */,
+  {     7,  1102,  5353,   4,  20, UNI_PHLI }   /* scx=inscriptionalpahlavi */,
+  {     0,   552,   387,   5,   2, UNI_AGE__5_DOT_2 }   /* age=5.2 */,
+  {     0,   461,     0,   2,   2, UNI_CASEDLETTER }   /* isl& */,
+  {     4,   309,   398,   2,   4, UNI_INMIAO }   /* inmiao */,
+  {     2,  7274,  3196,  12,   8, UNI_NO }   /* category=othernumber */,
+  {     1,  7274,  5243,  13,  12, UNI_PO }   /* category=otherpunctuation */,
+  {     0,  1102,  3421,   4,  15, UNI_NARB }   /* scx=oldnortharabian */,
+  {     0,  1479,     0,   5,   0, UNI_XPOSIXSPACE }   /* space */,
+  {     1,   461,  4002,   2,   4, UNI_MODI }   /* ismodi */,
+  {     5,  1667,  7724,   4,  18, UNI_INVS }   /* blk=variationselectors */,
+  {     8,  2403,  6193,   6,   5, UNI_ETHIOPICSUP }   /* ethiopicsup */,
+  {    18,  3093,   353,  13,   2, UNI_POSIXXDIGIT }   /* asciihexdigit=y */,
+  {     0,  1734,   467,   3,   3, UNI_SOGO }   /* issogo */,
+  {    25,  1790,     0,   6,   0, UNI_nfcqc_values_index }   /* nfcqc= */,
+  {     2,  3848,  1072,  14,   3, UNI_NV__7_SLASH_12 }   /* numericvalue=7/12 */,
+  {    83,  1823,  1340,   7,   9, UNI_ORKH }   /* script=oldturkic */,
+  {     2,   833,   585,   4,   5, UNI_TERM }   /* term=true */,
+  {     0,  6427,  4751,  13,   3, UNI_JG__SAD }   /* joininggroup=sad */,
+  {    26,   895,  2125,   5,   2, UNI_AGE__6_DOT_3 }   /* age=v63 */,
+  {     3,  1065,   394,   5,   1, UNI_NV__1_SLASH_5 }   /* nv=1/5 */,
+  {     0,  1412,     0,  12,   0, UNI_BOXDRAWING }   /* inboxdrawing */,
+  {    72,  1102,   868,   4,   7, UNI_TIRH }   /* scx=tirhuta */,
+  {     0,  1409,  4698,   4,   2, UNI_LATIN1 }   /* latin1 */,
+  {     2,  7274,  4683,   9,  16, UNI_PF }   /* category=finalpunctuation */,
+  {     1,  2280,   546,  11,   3, UNI_IN__13 }   /* presentin=13.0 */,
+  {     7,  3817,   764,  15,   2, UNI_NV__1_SLASH_64 }   /* numericvalue=1/64 */,
+  {     2,  1667,  4651,   4,   8, UNI_INBOPOMOFO }   /* blk=bopomofo */,
+  {     3,  7591,    63,   3,   2, UNI_LB__CP }   /* lb=cp */,
+  {    65,  1667,  4911,   4,  15, UNI_DIACRITICALSSUP }   /* blk=diacriticalssup */,
+  {    70,   510,  3846,   4,   2, UNI_NV__3_SLASH_8 }   /* nv=3/8 */,
+  {     1,   597,  2030,   5,   5, UNI_DT__NB }   /* dt=nobreak */,
+  {     1,   693,  5243,   6,  12, UNI_PO }   /* isotherpunctuation */,
+  {    12,  2536,  2015,   3,   3, UNI_JG__WAW }   /* jg=waw */,
+  {     8,  6427,   478,  13,   3, UNI_JG__BEH }   /* joininggroup=beh */,
+  {     0,  5065,   636,  13,   3, UNI_JG__MANICHAEANNUN }   /* jg=manichaeannun */,
+  {     4,  5574,   585,  21,   5, UNI_CWL }   /* changeswhenlowercased=true */,
+  {    50,  4424,  3726,  16,  10, UNI_MLYM }   /* scriptextensions=malayalam */,
+  {    11,  1102,    63,   4,   4, UNI_CPMN }   /* scx=cpmn */,
+  {     0,  1823,  1003,   7,   6, UNI_LEPC }   /* script=lepcha */,
+  {     1,  6427,  1760,  13,   3, UNI_JG__KAF }   /* joininggroup=kaf */,
+  {     1,  7724,     0,  28,   0, UNI_VSSUP }   /* variationselectorssupplement */,
+  {     1,  4584,   274,  18,   1, UNI_idst_values_index }   /* idstrinaryoperator= */,
+  {     1,  1223,  3696,   4,  10, UNI_KANASUP }   /* kanasupplement */,
+  {     0,  1102,  1003,   4,   6, UNI_LEPC }   /* scx=lepcha */,
+  {     0,  2324,  6677,   6,  15, UNI_MODIFIERLETTERS }   /* block=modifierletters */,
+  {     0,  1667,  3908,   4,  16, UNI_TANGUTCOMPONENTS }   /* blk=tangutcomponents */,
+  {     1,  2324,  6692,   6,  22, UNI_TRANSPORTANDMAP }   /* block=transportandmapsymbols */,
+  {     2,   876,   934,   4,   6, -UNI_IDEO }   /* ideo=false */,
+  {     2,  5168,  1397,   6,   7, UNI__PERL_IDSTART }   /* _perl_idstart */,
+  {    19,  1227,     0,   4,   0, UNI_MAKA }   /* maka */,
+  {     3,  7274,  6324,   9,   6, UNI_CF }   /* category=format */,
+  {     0,  1667,  6000,   4,   6, UNI_YIJING }   /* blk=yijing */,
+  {    24,   716,  3622,   5,   3, UNI_KANGXI }   /* inkangxi */,
+  {     0,   461,   571,   2,   7, UNI_AVST }   /* isavestan */,
+  {     1,  5065,  5427,  14,   6, UNI_JG__MANICHAEANTHAMEDH }   /* jg=manichaeanthamedh */,
+  {     1,  7383,  3924,  10,  14, UNI_BC__EN }   /* bidiclass=europeannumber */,
+  {     1,  3502,  6193,  10,  12, UNI_ETHIOPICSUP }   /* blk=ethiopicsupplement */,
+  {     3,  8071,  5252,  30,   4, UNI_CJKEXTE }   /* blk=cjkunifiedideographsextensione */,
+  {     0,  7011,  5515,  24,  17, UNI_WB__EB }   /* canonicalcombiningclass=attachedbelowleft */,
+  {     4,  6165,   410,   3,   4, UNI_SC__GONM }   /* sc=gonm */,
+  {     1,  5895,  5909,   5,   7, UNI_SUPARROWSC }   /* issuparrowsc */,
+  {     2,     8,  1079,   1,   7, UNI_POSIXWORD }   /* perlword */,
+  {     2,   461,  4651,   2,   8, UNI_BOPO }   /* isbopomofo */,
+  {    34,  2441,     0,   4,   0, UNI_NAND }   /* nand */,
+  {     1,  5205,  4511,  11,   9, UNI_MYANMAREXTB }   /* blk=myanmarextendedb */,
+  {    18,  3391,  1803,  12,   8, UNI_NV__1000000 }   /* numericvalue=1000000 */,
+  {     3,   292,  1805,   4,   4, UNI_NV__90000 }   /* nv=90000 */,
+  {     9,   309,  3475,   2,  15, UNI_INZANABAZARSQUARE }   /* inzanabazarsquare */,
+  {     0,  1667,  5353,   4,  20, UNI_ININSCRIPTIONALPAHLAVI }   /* blk=inscriptionalpahlavi */,
+  {     0,  6165,   212,   3,   4, UNI_TIBT }   /* sc=tibt */,
+  {     4,  2503,   353,  11,   4, UNI_JOINC }   /* joincontrol=yes */,
+  {     0,  1102,   997,   4,   6, UNI_KTHI }   /* scx=kaithi */,
+  {     1,   658,     0,   5,   0, UNI_DOGR }   /* dogra */,
+  {     0,  5065,  4259,  13,   4, UNI_JG__MANICHAEANYODH }   /* jg=manichaeanyodh */,
+  {     4,   733,  8111,   3,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* inegyptianhieroglyphformatcontrols */,
+  {    56,   324,  6103,   3,  13, UNI_SUPMATHOPERATORS }   /* supmathoperators */,
+  {     1,  3696,  4607,  10,  13, UNI_SUPPUNCTUATION }   /* supplementalpunctuation */,
+  {     0,  5460,   353,  19,   4, UNI_TERM }   /* terminalpunctuation=yes */,
+  {     1,  3021,   569,   4,   2, UNI_IN__5_DOT_2 }   /* in=v52 */,
+  {     0,   658,     0,   4,   0, UNI_DOGR }   /* dogr */,
+  {     0,   461,   527,   2,   6, UNI_RJNG }   /* isrejang */,
+  {     8,  6427,  7342,  13,  10, UNI_JG__TEHMARBUTA }   /* joininggroup=tehmarbuta */,
+  {     2,  5916,   353,  21,   4, UNI_LOE }   /* logicalorderexception=yes */,
+  {     0,  2324,  4809,   6,  18, UNI_ORNAMENTALDINGBATS }   /* block=ornamentaldingbats */,
+  {    11,  1667,  1133,   4,   8, UNI_INVITHKUQI }   /* blk=vithkuqi */,
+  {     9,   735,   599,   2,   2, UNI_EA__N }   /* ea=n */,
+  {     7,  3204,   934,  14,   2, -UNI_GREXT }   /* graphemeextend=f */,
+  {    17,  3817,  2115,  14,   8, UNI_NV__1_SLASH_64 }   /* numericvalue=1.562e-02 */,
+  {    84,   309,  1914,   2,   8, UNI_UCASEXTA }   /* inucasexta */,
+  {     3,  1823,  1144,   7,   9, UNI_BHKS }   /* script=bhaiksuki */,
+  {     0,  7495,  2101,  27,   2, UNI_CCC__29 }   /* canonicalcombiningclass=ccc29 */,
+  {     1,   925,   598,   2,   6, UNI_BPT__N }   /* bpt=none */,
+  {     4,  5637,  1864,  21,   8, UNI_WB__EB }   /* graphemeclusterbreak=ebasegaz */,
+  {     0,   309,  4651,   2,  11, UNI_BOPOMOFOEXT }   /* inbopomofoext */,
+  {     2,   939,   353,   5,   4, UNI_ECOMP }   /* ecomp=yes */,
+  {     0,  4424,  5857,  17,   9, UNI_MONG }   /* scriptextensions=mongolian */,
+  {     5,  1455,   934,   3,   6, -UNI_DEP }   /* dep=false */,
+  {     0,  1391,   543,   3,   2, UNI_WB__EB }   /* wb=eb */,
+  {     0,  1667,  1926,   7,   7, UNI_CJKSYMBOLS }   /* blk=cjksymbols */,
+  {     3,  2324,   108,   6,   4, UNI_INKAWI }   /* block=kawi */,
+  {     2,  2324,  1414,   6,  10, UNI_BOXDRAWING }   /* block=boxdrawing */,
+  {    10,  6427,   118,  13,   3, UNI_JG__DAL }   /* joininggroup=dal */,
+  {     0,   461,   414,   2,   4, UNI_HANO }   /* ishano */,
+  {     0,  6427,  4247,  13,   4, UNI_JG__KAPH }   /* joininggroup=kaph */,
+  {    20,   461,  1262,   2,   7, UNI_SOYO }   /* issoyombo */,
+  {     3,  1823,  1191,   7,   4, UNI_SC__BENG }   /* script=beng */,
+  {     0,  8343,  2823,  22,   9, UNI_INSC__NONJOINER }   /* indicsyllabiccategory=nonjoiner */,
+  {     1,  2766,  2814,   6,   8, UNI_SO }   /* gc=othersymbol */,
+  {     4,  7383,   384,  10,   2, UNI_BC__EN }   /* bidiclass=en */,
+  {     3,   461,  2060,   2,   5, UNI_XPOSIXALPHA }   /* isalpha */,
+  {    33,  1823,  4487,   7,   6, UNI_SC__ZYYY }   /* script=common */,
+  {    34,  2536,  3301,   3,  12, UNI_JG__VERTICALTAIL }   /* jg=verticaltail */,
+  {     0,  4424,  2009,  17,   6, UNI_SYRC }   /* scriptextensions=syriac */,
+  {     3,   406,   585,   2,   2, UNI_DI }   /* di=t */,
+  {    32,   533,  6324,   3,   6, UNI_SB__FO }   /* sb=format */,
+  {     0,  2324,  1248,   6,   7, UNI_INPHAGSPA }   /* block=phagspa */,
+  {    80,  1102,   683,   4,   5, UNI_TAKR }   /* scx=takri */,
+  {     0,   461,  2786,   2,  14, UNI_HIGHSURROGATES }   /* ishighsurrogates */,
+  {     3,  1883,   585,   5,   5, UNI_BIDIC }   /* bidic=true */,
+  {     0,   597,  1178,   4,   5, UNI_DT__NAR }   /* dt=narrow */,
+  {    68,  8246,  3243,  24,  10, UNI_INPC__OVERSTRUCK }   /* indicpositionalcategory=overstruck */,
+  {    40,  6165,  1090,   3,   4, UNI_SC__LINB }   /* sc=linb */,
+  {     0,   461,   983,   2,   8, UNI_HIRA }   /* ishiragana */,
+  {    24,  2732,    24,   5,   3, UNI_INAHOM }   /* blk=ahom */,
+  {     4,  1102,  3493,   3,   9, UNI_CYRL }   /* scx=cyrillic */,
+  {     2,   309,  5958,   2,   7, UNI_INSINHALA }   /* insinhala */,
+  {     1,   106,     0,   2,   0, UNI_ZL }   /* zl */,
+  {     0,  2842,  6193,   8,  12, UNI_ETHIOPICSUP }   /* isethiopicsupplement */,
+  {    35,  4360,  4316,  10,  14, UNI_LB__BK }   /* linebreak=mandatorybreak */,
+  {     0,  1823,   499,   7,   4, UNI_LYDI }   /* script=lydi */,
+  {     4,   641,  3599,   4,  12, UNI_GCB__T }   /* hst=trailingjamo */,
+  {    25,   461,  6866,   2,  24, UNI_COMPEX }   /* isfullcompositionexclusion */,
+  {    13,  5769,   934,   4,   6, -UNI_EMOD }   /* emod=false */,
+  {     0,  1272,  8153,   5,  21, UNI_CJKSYMBOLS }   /* iscjksymbolsandpunctuation */,
+  {    69,  5637,   644,  20,   3, UNI_LB__H2 }   /* graphemeclusterbreak=lv */,
+  {    33,  2324,  6495,   6,   5, UNI_MUSIC }   /* block=music */,
+  {     0,   959,   353,   8,   4, UNI_EXT }   /* extender=yes */,
+  {     0,  3013,   599,   5,   2, -UNI_EPRES }   /* epres=n */,
+  {     1,  2324,  2268,   6,  12, UNI_PLAYINGCARDS }   /* block=playingcards */,
+  {     0,  1221,  3696,   6,  10, UNI_KANASUP }   /* inkanasupplement */,
+  {     6,  1396,   353,   8,   4, UNI_XIDS }   /* xidstart=yes */,
+  {     0,  1894,   274,  12,   1, UNI_bidim_values_index }   /* bidimirrored= */,
+  {     5,   832,   585,   5,   2, UNI_STERM }   /* sterm=t */,
+  {   134,  1397,   353,   3,   2, UNI_IDS }   /* ids=y */,
+  {     0,  6427,  5084,  13,   4, UNI_JG__YUDH }   /* joininggroup=yudh */,
+  {     6,  1391,   507,   3,   2, UNI_WB__DQ }   /* wb=dq */,
+  {     0,  3093,   598,  12,   2, UNI_ahex_values_index }   /* asciihexdigit= */,
+  {     4,  1823,  1853,   7,   4, UNI_SC__SYLO }   /* script=sylo */,
+  {     0,  6776,     0,  21,   0, UNI_MEETEIMAYEKEXT }   /* meeteimayekextensions */,
+  {     0,  2536,  4751,   3,   3, UNI_JG__SAD }   /* jg=sad */,
+  {     3,  6427,  4235,  13,   4, UNI_JG__BETH }   /* joininggroup=beth */,
+  {     0,   461,    67,   2,   4, UNI_CPRT }   /* iscprt */,
+  {     0,  2752,   585,  14,   5, UNI_ECOMP }   /* emojicomponent=true */,
+  {     4,  7198,  8386,   7,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* blk=supsymbolsandpictographs */,
+  {     1,  2180,  1317,   4,   5, UNI_NV__432000 }   /* nv=432000 */,
+  {    34,  7274,    50,   9,   2, UNI_MC }   /* category=mc */,
+  {     4,  3407,   346,  14,   1, UNI_NV__48 }   /* numericvalue=48 */,
+  {     7,  1823,  2735,   6,   7, UNI_SC__ARAB }   /* script=arabic */,
+  {     4,  8660,     0,  43,   0, UNI_UCASEXTA }   /* unifiedcanadianaboriginalsyllabicsextendeda */,
+  {     2,   309,   732,   2,   7, UNI_INLINEARA }   /* inlineara */,
+  {     3,  4941,  7442,   7,  25, UNI_KATAKANAEXT }   /* block=katakanaphoneticextensions */,
+  {     9,  1479,   352,   4,   5, UNI_XPOSIXSPACE }   /* space=yes */,
+  {     0,   309,  7449,   2,  28, UNI_PHONETICEXTSUP }   /* inphoneticextensionssupplement */,
+  {     1,   271,     0,   4,   0, UNI_gcb_values_index }   /* gcb= */,
+  {     5,  5595,   599,  21,   2, -UNI_CWT }   /* changeswhentitlecased=n */,
+  {     0,  1823,   683,   7,   4, UNI_SC__TAKR }   /* script=takr */,
+  {     2,    32,  4439,   1,   2, UNI_vs_values_index }   /* vs= */,
+  {     1,  4424,   398,  17,   4, UNI_MIAO }   /* scriptextensions=miao */,
+  {     3,   406,   934,   3,   2, -UNI_DIA }   /* dia=f */,
+  {     5,  4424,   410,  17,   4, UNI_GONM }   /* scriptextensions=gonm */,
+  {     0,  1243,  6462,   2,  25, UNI_SHORTHANDFORMATCONTROLS }   /* blk=shorthandformatcontrols */,
+  {    66,   461,  4651,   2,   4, UNI_BOPO }   /* isbopo */,
+  {     1,  3268,     0,   5,   0, UNI_XPOSIXALNUM }   /* alnum */,
+  {     1,  4161,     0,   9,   0, UNI_DIA }   /* diacritic */,
+  {   120,  2324,  2692,   6,  13, UNI_VERTICALFORMS }   /* block=verticalforms */,
+  {     1,  7198,  8386,  16,  21, UNI_SUPSYMBOLSANDPICTOGRAPHS }   /* blk=supplementalsymbolsandpictographs */,
+  {     2,  7274,  1393,   8,   2, UNI_M }   /* category=m */,
+  {     1,  2018,  2932,  11,  12, UNI_JT__T }   /* joiningtype=transparent */,
+  {     0,   257,   274,   4,   1, UNI_cwcm_values_index }   /* cwcm= */,
+  {     1,  1424,   391,   7,   2, UNI_CCC__34 }   /* ccc=ccc34 */,
+  {     0,  1102,   658,   4,   4, UNI_DOGR }   /* scx=dogr */,
+  {     1,  6165,   901,   3,   8, UNI_ARMN }   /* sc=armenian */,
+  {     3,  1102,  1015,   4,   4, UNI_TELU }   /* scx=telu */,
+  {     2,  4845,   584,  16,   3, UNI__PERL_PATWS }   /* patternwhitespace=t */,
+  {    12,  3634,     0,   2,   0, UNI_NL }   /* nl */,
+  {    32,   313,     0,   4,   0, UNI_M }   /* mark */,
+  {     1,  2766,     0,   3,   0, UNI_gc_values_index }   /* gc= */,
+  {     0,   309,  2852,   2,  12, UNI_MAHJONG }   /* inmahjongtiles */,
+  {     0,  7944,  4410,  28,   4, UNI_CJKEXTA }   /* iscjkunifiedideographsextensiona */,
+  {    24,  1667,  8142,   4,  32, UNI_IDEOGRAPHICSYMBOLS }   /* blk=ideographicsymbolsandpunctuation */,
+  {     7,  4360,  4288,  10,  14, UNI_LB__CR }   /* linebreak=carriagereturn */,
+  {     0,  6165,  1234,   3,   7, UNI_SC__MULT }   /* sc=multani */,
+  {     5,  1823,  1954,   7,  12, UNI_SC__GONG }   /* script=gunjalagondi */,
+  {     3,   461,   658,   2,   4, UNI_DOGR }   /* isdogr */,
+  {     0,  4360,  5769,  10,   9, UNI_EMOD }   /* linebreak=emodifier */,
+  {     0,  6165,  1438,   3,  10, UNI_CHRS }   /* sc=chorasmian */,
+  {     0,  5876,     0,  19,   0, UNI_SUNDANESESUP }   /* sundanesesupplement */,
+  {     0,  1102,   951,   4,   8, UNI_DUPL }   /* scx=duployan */,
+  {    48,  6618,   140,   5,   2, UNI_INPC__NA }   /* inpc=na */,
+  {     4,   461,  6870,   2,  20, UNI_CE }   /* iscompositionexclusion */,
+  {     0,  6165,  6776,   3,  11, UNI_MTEI }   /* sc=meeteimayek */,
+  {     2,  5897,     0,  19,   0, UNI_SUPARROWSC }   /* supplementalarrowsc */,
+  {    67,    30,  7854,   1,   5, UNI_IDEO }   /* isideo */,
+  {    24,   461,  4271,   2,  17, UNI_KITS }   /* iskhitansmallscript */,
+  {     1,  4424,   499,  17,   6, UNI_LYDI }   /* scriptextensions=lydian */,
+  {     0,     2,  5671,   1,   3, -UNI_CE }   /* ce=n */,
+  {     2,  2718,  6029,   3,  12, UNI_BC__AN }   /* bc=arabicnumber */,
+  {     0,   200,     0,   4,   0, UNI_TAVT }   /* tavt */,
+  {     0,  6165,  1003,   3,   6, UNI_LEPC }   /* sc=lepcha */,
+  {    53,   461,  1522,   2,   4, UNI_UGAR }   /* isugar */,
+  {     0,  7889,  6553,  25,   5, UNI_CJKEXTC }   /* cjkunifiedideographsextensionc */,
+  {     1,  4360,  4780,  10,  15, UNI_LB__CB }   /* linebreak=contingentbreak */,
+  {    49,   833,   599,   4,   3, -UNI_TERM }   /* term=no */,
+  {    22,   309,   430,   2,   3, UNI_INNKO }   /* innko */,
+  {     8,  6165,  8667,   3,  18, UNI_CANS }   /* sc=canadianaboriginal */,
+  {     0,  5916,     0,  21,   0, UNI_LOE }   /* logicalorderexception */,
+  {     6,   309,   847,   2,   7, UNI_INTAITHAM }   /* intaitham */,
+  {     4,   641,   898,   3,   2, UNI_GCB__V }   /* hst=v */,
+  {     3,  5939,   353,   5,   4, UNI__PERL_NCHAR }   /* nchar=yes */,
+  {     6,  4360,  1612,  10,   2, UNI_LB__LF }   /* linebreak=lf */,
+  {     0,  2324,  7537,   6,  27, UNI_ALPHABETICPF }   /* block=alphabeticpresentationforms */,
+  {     0,  6165,    94,   3,   4, UNI_SC__GURU }   /* sc=guru */,
+  {    69,  1198,  7972,   3,  15, UNI_CUNEIFORMNUMBERS }   /* incuneiformnumbers */,
+  {     0,   641,  4030,   4,  13, UNI_HST__NA }   /* hst=notapplicable */,
+  {     0,  1396,   585,   4,   2, UNI_XIDS }   /* xids=t */,
+  {     0,  2060,   585,   5,   5, UNI_XPOSIXALPHA }   /* alpha=true */,
+  {    11,  1294,     0,   9,   0, UNI_NBAT }   /* nabataean */,
+  {     0,  1823,  1003,   7,   4, UNI_LEPC }   /* script=lepc */,
+  {     0,  2180,   290,   4,   1, UNI_NV__44 }   /* nv=44 */,
+  {     5,  3863,  1314,  14,   3, UNI_NV__8000 }   /* numericvalue=8000 */,
+  {     0,  7796,     0,  29,   0, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* enclosedideographicsupplement */,
+  {     0,  3848,     0,  15,   0, UNI_NV__70 }   /* numericvalue=70 */,
+  {     1,     2,   598,   2,   3, -UNI_CWT }   /* cwt=n */,
+  {    69,  8343,  6167,  21,  18, UNI_INSC__CONSONANTPREFIXED }   /* indicsyllabiccategory=consonantprefixed */,
+  {     4,  1397,   585,   3,   5, UNI_IDS }   /* ids=true */,
+  {     4,  1667,  3692,   4,   4, UNI_INLISU }   /* blk=lisu */,
+  {     1,  1667,   779,   4,   7, UNI_INOSMANYA }   /* blk=osmanya */,
+  {     3,   309,  2852,   2,   7, UNI_MAHJONG }   /* inmahjong */,
+  {     8,  2718,  5479,   3,  18, UNI_BC__ET }   /* bc=europeanterminator */,
+  {     5,  1424,  1153,   7,   2, UNI_CCC__24 }   /* ccc=ccc24 */,
+  {     4,  1823,   120,   7,   4, UNI_LAO }   /* script=laoo */,
+  {     5,  6165,  2411,   3,   8, UNI_SC__KANA }   /* sc=katakana */,
+  {     1,     4,   584,   2,   3, UNI_LOE }   /* loe=t */,
+  {    32,  5065,  3743,  13,   3, UNI_JG__MANICHAEANTAW }   /* jg=manichaeantaw */,
+  {     0,  2335,     0,  13,   0, UNI_BLOCKELEMENTS }   /* blockelements */,
+  {    24,  4424,   590,  17,   7, UNI_DSRT }   /* scriptextensions=deseret */,
+  {     3,  4424,   810,  17,   4, UNI_SYRC }   /* scriptextensions=syrc */,
+  {     0,  5637,   898,  20,   2, UNI_GCB__V }   /* graphemeclusterbreak=v */,
+  {     3,   339,     0,   6,   0, UNI_CCC__12 }   /* ccc=12 */,
+  {     0,  8311,  5252,  32,   4, UNI_CJKEXTE }   /* block=cjkunifiedideographsextensione */,
+  {     5,  6165,   854,   3,   7, UNI_TAVT }   /* sc=taiviet */,
+  {     0,   461,  4725,   2,  16, UNI_TANGUTSUP }   /* istangutsupplement */,
+  {     4,  4424,   297,  17,   5, UNI_ORYA }   /* scriptextensions=oriya */,
+  {     3,  3391,  1805,  14,   5, UNI_NV__200000 }   /* numericvalue=200000 */,
+  {     4,  1102,  1262,   4,   4, UNI_SOYO }   /* scx=soyo */,
+  {     6,   292,  1318,   3,   2, UNI_NV__20 }   /* nv=20 */,
+  {    50,  2180,  1805,   4,   5, UNI_NV__400000 }   /* nv=400000 */,
+  {     0,   597,   366,   3,   3, UNI_DT__SQR }   /* dt=sqr */,
+  {     0,   470,     0,   4,   0, UNI_TNSA }   /* tnsa */,
+  {     0,  7267,  2483,  16,  11, UNI_CASEDLETTER }   /* generalcategory=casedletter */,
+  {     0,  1823,  1509,   7,   4, UNI_SC__JAVA }   /* script=java */,
+  {     0,  7267,  1427,  15,   3, UNI_XPOSIXCNTRL }   /* generalcategory=cc */,
+  {     1,  6165,  1978,   3,   4, UNI_SC__SOGD }   /* sc=sogd */,
+  {     0,  1397,  2931,   3,   3, UNI_IDST }   /* idst=t */,
+  {     1,   552,  2289,   3,   3, UNI_AGE__14 }   /* age=14 */,
+  {     4,  1065,   763,   4,   3, UNI_NV__1_SLASH_64 }   /* nv=1/64 */,
+  {     1,  7267,    50,  16,   2, UNI_MC }   /* generalcategory=mc */,
+  {     1,  1823,  1255,   7,   4, UNI_SIDD }   /* script=sidd */,
+  {     0,  3391,  2210,  12,  10, UNI_NV__7_SLASH_12 }   /* numericvalue=5.833e-01 */,
+  {     2,   309,  1685,   2,  11, UNI_INCYPROMINOAN }   /* incyprominoan */,
+  {     3,  3014,   394,  11,   2, UNI_IN__5_DOT_1 }   /* presentin=v51 */,
+  {     2,  2324,  3583,   6,  16, UNI_HIGHPUSURROGATES }   /* block=highpusurrogates */,
+  {     0,  6076,  2370,   7,  12, UNI_GREEKEXT }   /* block=greekextended */,
+  {     2,   309,  6103,   2,  13, UNI_MATHOPERATORS }   /* inmathoperators */,
+  {     0,  5574,   934,  21,   2, -UNI_CWL }   /* changeswhenlowercased=f */,
+  {     0,   309,   192,   2,   4, UNI_TAGS }   /* intags */,
+  {   129,   339,     0,   2,   0, UNI_XPOSIXCNTRL }   /* cc */,
+  {     0,  1248,     0,   7,   0, UNI_PHAG }   /* phagspa */,
+  {     0,  3817,  1071,  14,   4, UNI_NV__11_SLASH_12 }   /* numericvalue=11/12 */,
+  {     3,  1667,     0,   4,   0, UNI_blk_values_index }   /* blk= */,
+  {    25,  7648,  1162,  18,   6, UNI_DT__ENC }   /* decompositiontype=circle */,
+  {     1,   461,  5460,   2,  19, UNI_TERM }   /* isterminalpunctuation */,
+  {     0,  1479,   352,   4,   2, UNI_wspace_values_index }   /* space= */,
+  {     0,  2842,  8111,   3,  31, UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS }   /* isegyptianhieroglyphformatcontrols */,
+  {     0,  1102,  4176,   4,   6, UNI_HANG }   /* scx=hangul */,
+  {     0,  1823,   418,   7,   4, UNI_KHMR }   /* script=khmr */,
+  {     6,   271,   248,   4,   2, UNI_GCB__CN }   /* gcb=cn */,
+  {    64,  2324,  1592,   6,  10, UNI_INSAURASHTRA }   /* block=saurashtra */,
+  {    43,  1205,     0,   4,   0, UNI_GRAN }   /* gran */,
+  {     6,  1823,  1812,   7,  11, UNI_HMNG }   /* script=pahawhhmong */,
+  {     6,  1823,  1133,   7,   4, UNI_VITH }   /* script=vith */,
+  {    81,  1479,   584,   4,   3, UNI_XPOSIXSPACE }   /* space=t */,
+  {     2,  1479,   933,   4,   7, -UNI_XPOSIXSPACE }   /* space=false */,
+  {     5,  5637,  1887,  21,   7, UNI_GCB__CN }   /* graphemeclusterbreak=control */,
+  {    17,  1823,   663,   7,   5, UNI_SC__LIMB }   /* script=limbu */,
+  {     0,   608,     0,   7,   0, UNI_ELBA }   /* elbasan */,
+  {     1,  5156,  3463,  10,  12, UNI_WB__EB }   /* wordbreak=glueafterzwj */,
+  {     0,  1667,  4896,   4,   5, UNI_INBAMUM }   /* blk=bamum */,
+  {     0,  3014,   344,  11,   2, UNI_IN__2_DOT_1 }   /* presentin=v21 */,
+  {     2,    30,  1695,   1,   7, UNI_DOMINO }   /* indomino */,
+  {     1,   461,  2780,   2,   6, UNI_COPT }   /* iscoptic */,
+  {     2,  4424,  4089,  17,   4, UNI_SIND }   /* scriptextensions=sind */,
+  {     0,   461,  7036,   2,  26, UNI_HALFANDFULLFORMS }   /* ishalfwidthandfullwidthforms */,
+  {     0,  5065,  5425,  12,   8, UNI_JG__MANICHAEANDHAMEDH }   /* jg=manichaeandhamedh */,
+  {     1,  2287,   389,   3,   3, UNI_IN__6_DOT_3 }   /* in=6.3 */,
+  {     0,  2483,   274,   5,   1, UNI_cased_values_index }   /* cased= */,
+  {     1,  5895,  4607,  12,  13, UNI_SUPPUNCTUATION }   /* issupplementalpunctuation */,
+  {     3,  1667,  7855,   4,  32, UNI_INIDC }   /* blk=ideographicdescriptioncharacters */,
+  {     0,  4827,     0,  18,   0, UNI_ZP }   /* paragraphseparator */,
+  {     0,  1823,  1522,   7,   4, UNI_UGAR }   /* script=ugar */,
+  {     4,  6165,   116,   3,   4, UNI_SC__KNDA }   /* sc=knda */,
+  {     0,   461,  5801,   2,  19, UNI_SUPARROWSB }   /* issupplementalarrowsb */,
+  {     4,   510,   290,   5,   1, UNI_NV__3_SLASH_4 }   /* nv=3/4 */,
+  {    65,  7214,   520,  25,   1, UNI_CCC__17 }   /* canonicalcombiningclass=17 */,
+  {     0,   552,  2182,   3,   4, UNI_AGE__4_DOT_1 }   /* age=4.1 */,
+  {     0,   959,   353,   8,   2, UNI_EXT }   /* extender=y */,
+  {     0,  6090,  4511,  13,   9, UNI_MYANMAREXTB }   /* block=myanmarextendedb */,
+  {     4,  1667,  7972,   5,  29, UNI_CUNEIFORMNUMBERS }   /* blk=cuneiformnumbersandpunctuation */,
+  {     0,  4424,   168,  17,   4, UNI_COPT }   /* scriptextensions=qaac */,
+  {     0,   261,   599,   5,   3, -UNI_CWKCF }   /* cwkcf=no */,
+  {     3,  2494,  6945,   5,  15, UNI_GEOMETRICSHAPESEXT }   /* isgeometricshapesext */,
+  {     1,  2766,   248,   3,   2, UNI_CN }   /* gc=cn */,
+  {     0,  8071,  4410,  30,   4, UNI_CJKEXTA }   /* blk=cjkunifiedideographsextensiona */,
+  {     4,  2514,  7620,   3,  19, UNI_MISCSYMBOLS }   /* ismiscellaneoussymbols */,
+  {     0,  1102,  2068,   4,   4, UNI_MEND }   /* scx=mend */,
+  {    81,  1102,   818,   4,   7, UNI_SHRD }   /* scx=sharada */,
+  {     4,   510,  1805,   4,   4, UNI_NV__30000 }   /* nv=30000 */,
+  {    24,  5460,     0,  19,   0, UNI_TERM }   /* terminalpunctuation */,
+  {    33,   505,   353,   5,   2, UNI_NFDQC__Y }   /* nfdqc=y */,
+  {     2,  1102,  1358,   4,   9, UNI_PALM }   /* scx=palmyrene */,
+  {     0,  1200,  6382,   3,  18, UNI_CJKCOMPATFORMS }   /* cjkcompatibilityforms */,
+  {     4,  6450,  4191,  14,   5, UNI_SB__LO }   /* sentencebreak=lower */,
+  {     0,  2432,  1553,   3,   9, UNI_MISCARROWS }   /* inmiscarrows */,
+  {    17,  1243,  6080,   2,  10, UNI_INGEORGIAN }   /* blk=georgian */,
+  {     1,   298,   599,   2,   3, -UNI_RI }   /* ri=no */,
+  {     7,  2536,  1540,   3,   3, UNI_JG__YEH }   /* jg=yeh */,
+  {   256,  4424,   779,  17,   4, UNI_OSMA }   /* scriptextensions=osma */,
+  {     2,  6165,  1191,   3,   4, UNI_SC__BENG }   /* sc=beng */,
+  {     4,  6236,  1805,  19,   7, UNI_NV__1000000000000 }   /* numericvalue=1000000000000 */,
+  {    13,  5595,   353,  21,   4, UNI_CWT }   /* changeswhentitlecased=yes */,
+  {     0,  2494,  2370,   3,   7, UNI_GREEKEXT }   /* isgreekext */,
+  {    62,  7267,  4827,  16,  18, UNI_ZP }   /* generalcategory=paragraphseparator */,
+  {     0,  7804,   341,  10,   2, UNI_ideo_values_index }   /* ideographic= */,
+  {     2,  4970,   352,  16,   3, UNI_EBASE }   /* emojimodifierbase=y */,
+  {     0,  8343,  3257,  31,   6, UNI_INSC__CONSONANTKILLER }   /* indicsyllabiccategory=consonantkiller */,
+  {     0,  1823,    31,   7,   4, UNI_AVST }   /* script=avst */,
+  {     0,  5156,   543,  10,   3, UNI_WB__EB }   /* wordbreak=ebg */,
+  {     5,  5168,  1486,  17,   3, UNI__PERL_CHARNAME_BEGIN }   /* _perl_charname_begin */,
+  {     0,   461,  5857,   2,  19, UNI_MONGOLIANSUP }   /* ismongoliansupplement */,
+  {     1,  6165,  2811,   3,   5, UNI_KHMR }   /* sc=khmer */,
+  {     0,  6163,  2613,   5,   6, UNI_LB__ZWJ }   /* insc=joiner */,
+  {     2,   597,  1162,   3,   6, UNI_DT__ENC }   /* dt=circle */,
+  {     1,  4519,     0,  18,   0, UNI_CYRILLICEXTC }   /* block=cyrillicextc */,
+  {    14,   461,  7724,   2,  28, UNI_VSSUP }   /* isvariationselectorssupplement */,
+  {    14,  2004,   248,   5,   5, UNI_POSIXCNTRL }   /* posixcntrl */,
+  {     3,  4391,  2172,  14,   8, UNI_NV__3_SLASH_8 }   /* numericvalue=3.750e-01 */,
+  {     1,     0,  3693,   1,   3, UNI_LISU }   /* lisu */,
+  {     9,  2002,  4569,   7,   5, UNI_POSIXUPPER }   /* isposixupper */,
+  {     0,  2324,  2441,   6,  11, UNI_INNANDINAGARI }   /* block=nandinagari */,
+  {    86,  5769,   599,   4,   3, -UNI_EMOD }   /* emod=no */,
+  {     4,  7724,   353,  17,   4, UNI_VS }   /* variationselector=yes */,
+  {     0,   461,   909,   2,   4, UNI_BALI }   /* isbali */,
+  {     0,  2403,     0,   4,   0, UNI_ETHI }   /* ethi */,
+  {     1,  1102,  2441,   4,   4, UNI_NAND }   /* scx=nand */,
+  {     0,   115,     0,   2,   0, UNI_SK }   /* sk */,
+  {     1,  5979,     0,   3,   0, UNI_vo_values_index }   /* vo= */,
+  {     0,  5574,   934,  21,   6, -UNI_CWL }   /* changeswhenlowercased=false */,
+  {    40,   339,   289,   4,   1, UNI_CCC__0 }   /* ccc=0 */,
+  {     1,  2180,  2657,   4,   8, UNI_NV__2_SLASH_5 }   /* nv=4.000e-01 */,
+  {     0,   309,  7480,   2,  14, UNI_PUA }   /* inprivateusearea */,
+  {     1,  7214,   288,  25,   2, UNI_CCC__130 }   /* canonicalcombiningclass=130 */,
+  {    25,  1667,  5682,   4,   5, UNI_INGREEK }   /* blk=greek */,
+  {     1,   461,  4060,   2,  15, UNI_BRAI }   /* isbraillepatterns */,
+  {     0,  7804,   353,  11,   2, UNI_IDEO }   /* ideographic=y */,
+  {     0,  1454,   934,   2,   2, -UNI_SD }   /* sd=f */,
+  {    94,  7267,   115,  16,   2, UNI_SK }   /* generalcategory=sk */,
+  {     0,  1667,  7480,   4,  14, UNI_PUA }   /* blk=privateusearea */,
+  {     0,  5658,  6881,  15,   9, UNI_IDENTIFIERTYPE__EXCLUSION }   /* identifiertype=exclusion */,
+  {   115,  1801,  1805,   7,   5, UNI_NV__100000000 }   /* nv=100000000 */,
+  {     2,  1667,  3692,   4,   7, UNI_LISUSUP }   /* blk=lisusup */,
+  {     0,  8343,  2382,  22,   5, UNI_INSC__VOWEL }   /* indicsyllabiccategory=vowel */,
+  {     2,  1667,  6332,   4,  19, UNI_JAMOEXTB }   /* blk=hanguljamoextendedb */,
+  {     0,   309,  1834,   2,  11, UNI_INSORASOMPENG }   /* insorasompeng */,
+  {     1,  2324,  1509,   6,   8, UNI_INJAVANESE }   /* block=javanese */,
+  {     1,  4391,  3876,  15,   2, UNI_NV__3_SLASH_80 }   /* numericvalue=3/80 */,
+  {     0,  7495,   393,  27,   2, UNI_CCC__15 }   /* canonicalcombiningclass=ccc15 */,
+  {     1,   461,    98,   2,   4, UNI_HLUW }   /* ishluw */,
+  {     1,  6165,   176,   3,   4, UNI_SC__ROHG }   /* sc=rohg */,
+  {     0,  5658,  6534,  10,  14, UNI_IDENTIFIERSTATUS__ALLOWED }   /* identifierstatus=allowed */,
+  {     0,   339,  2742,   4,   4, UNI_CCC__6 }   /* ccc=hanr */,
+  {     0,  3490,  7467,  12,  13, UNI_CYRILLICSUP }   /* blk=cyrillicsupplementary */,
+  {     3,  1667,  1322,   4,   9, UNI_INOLDITALIC }   /* blk=olditalic */,
+  {     1,  4424,  4060,  17,   7, UNI_BRAI }   /* scriptextensions=braille */,
+  {     2,  1102,  1205,   4,   4, UNI_GRAN }   /* scx=gran */,
+  {     2,  3391,  2108,  13,   3, UNI_NV__500 }   /* numericvalue=500 */,
+  {     1,   716,  7443,   4,  24, UNI_KATAKANAEXT }   /* inkatakanaphoneticextensions */,
+  {     0,   423,    24,   3,   3, UNI_INAHOM }   /* inahom */,
+  {     0,  1728,  8174,   6,  29, UNI_ARABICMATH }   /* arabicmathematicalalphabeticsymbols */,
+  {     0,  4424,   917,  17,   8, UNI_BASS }   /* scriptextensions=bassavah */,
+  {     0,  2432,  6597,   3,  21, UNI_MISCTECHNICAL }   /* inmiscellaneoustechnical */,
+  {     0,   309,  6900,   2,  14, UNI_BYZANTINEMUSIC }   /* inbyzantinemusic */,
+  {     0,  6841,  8505,  23,   3, UNI_di_values_index }   /* defaultignorablecodepoint= */,
+  {     7,   253,   585,   4,   5, UNI_CWCF }   /* cwcf=true */,
+  {     0,   339,  3141,   4,  11, UNI_CCC__DA }   /* ccc=doubleabove */,
+  {    22,  6450,  2968,  14,   3, UNI_SB__SE }   /* sentencebreak=sep */,
+  {     1,  2525,     0,  11,   0, UNI_XPOSIXBLANK }   /* xposixblank */,
+  {     1,  2832,  4511,  10,   9, UNI_CYRILLICEXTB }   /* iscyrillicextendedb */,
+  {    85,   309,   333,   2,   6, UNI_INCARIAN }   /* incarian */,
+  {     2,  2280,  2199,  11,   3, UNI_IN__12 }   /* presentin=12.0 */,
+  {     3,  6165,  3475,   3,  15, UNI_ZANB }   /* sc=zanabazarsquare */,
+  {    17,   461,  1027,   2,   6, UNI_YEZI }   /* isyezidi */,
+  {    86,  2732,   649,   5,   4, UNI_INADLAM }   /* blk=adlam */,
+  {     4,  1102,   152,   4,   4, UNI_OSGE }   /* scx=osge */,
+  {     0,   461,  4725,   2,   9, UNI_TANGUTSUP }   /* istangutsup */,
+  {     3,   309,  6495,   2,   5, UNI_MUSIC }   /* inmusic */,
+  {     0,  5216,  6957,  11,   9, UNI_LATINEXTE }   /* block=latinextendede */,
+  {     0,    10,  2046,   1,  11, UNI_GONM }   /* masaramgondi */,
+  {    70,  5895,  5878,   4,  17, UNI_SUNDANESESUP }   /* issundanesesupplement */,
+  {     8,  2536,  4228,   3,   7, UNI_JG__HEHGOAL }   /* jg=hehgoal */,
+  {     2,   375,   934,   5,   6, -UNI_GREXT }   /* grext=false */,
+  {     1,   461,   426,   2,   4, UNI_MRO }   /* ismroo */,
+  {     5,  1243,   995,   2,   3, UNI_XPOSIXBLANK }   /* blank */,
+  {     0,  4360,   309,  10,   2, UNI_LB__IN }   /* linebreak=in */,
+  {    17,  4852,   584,   9,   6, UNI_XPOSIXSPACE }   /* whitespace=true */,
+  {     1,  4360,  1933,  10,   9, UNI_LB__AI }   /* linebreak=ambiguous */,
+  {     1,  8667,     0,  18,   0, UNI_CANS }   /* canadianaboriginal */,
+  {     2,   309,   216,   2,   4, UNI_INTOTO }   /* intoto */,
+  {     2,   461,    43,   2,   4, UNI_BUHD }   /* isbuhd */,
+  {    20,  2432,  2046,   3,  11, UNI_INMASARAMGONDI }   /* inmasaramgondi */,
+  {     0,  1823,  1086,   7,   4, UNI_SC__KTHI }   /* script=kthi */,
+  {     2,  2514,  4511,   9,   9, UNI_MYANMAREXTB }   /* ismyanmarextendedb */,
+  {     0,  1397,     0,   7,   0, UNI_IDS }   /* idstart */,
+  {     4,  1667,  6103,   4,  13, UNI_MATHOPERATORS }   /* blk=mathoperators */,
+  {     1,  3098,   598,   7,   4, -UNI_XPOSIXXDIGIT }   /* hexdigit=no */,
+  {     0,   461,   422,   2,   4, UNI_LINA }   /* islina */,
+  {     0,  4424,   474,  17,   4, UNI_VAI }   /* scriptextensions=vaii */,
+  {     2,  3407,   290,  14,   1, UNI_NV__44 }   /* numericvalue=44 */,
+  {     0,  7752,  4251,  23,   4, UNI_JG__MANICHAEANQOPH }   /* joininggroup=manichaeanqoph */,
+  {     0,   406,   353,   3,   2, UNI_DIA }   /* dia=y */,
+  {     6,   225,     0,   2,   0, UNI_PE }   /* pe */,
+  {     0,  6090,  4636,   7,  15, UNI_MISCMATHSYMBOLSB }   /* block=miscmathsymbolsb */,
+  {     0,  2324,  1572,   6,  10, UNI_INOLDPERSIAN }   /* block=oldpersian */,
+  {     4,   461,  3040,   2,  13, UNI_QMARK }   /* isquotationmark */,
+  {     1,  6618,     0,   8,   0, UNI_INPC__TOP }   /* inpc=top */,
+  {     0,  6165,   474,   3,   4, UNI_VAI }   /* sc=vaii */,
+  {     0,  1823,  1562,   7,  10, UNI_NAGM }   /* script=nagmundari */,
+  {     0,  2324,  7467,   6,  28, UNI_SUPPUAA }   /* block=supplementaryprivateuseareaa */,
+  {     2,  1102,  1779,   4,  11, UNI_MEDF }   /* scx=medefaidrin */,
+  {     0,   461,   434,   2,   4, UNI_OGAM }   /* isogam */,
+  {     3,  1272,  3163,   3,  14, UNI_CONTROLPICTURES }   /* iscontrolpictures */,
+  {     0,  2002,  1079,   3,   7, UNI_POSIXWORD }   /* isperlword */,
+  {     4,  2842,  6193,   8,   5, UNI_ETHIOPICSUP }   /* isethiopicsup */,
+  {     0,  1823,  3026,   7,  14, UNI_SC__PHLP }   /* script=psalterpahlavi */,
+  {     0,  2324,  4651,   6,  11, UNI_BOPOMOFOEXT }   /* block=bopomofoext */,
+  {     1,  1376,     0,   9,   0, UNI_SAMR }   /* samaritan */,
+  {     6,  4360,   272,  10,   2, UNI_LB__CB }   /* linebreak=cb */,
+  {     1,  7267,  4191,  16,  15, UNI_LOWERCASELETTER }   /* generalcategory=lowercaseletter */,
+  {    65,   339,     0,   4,   0, UNI_ccc_values_index }   /* ccc= */,
+  {     0,   461,   608,   2,   4, UNI_ELBA }   /* iselba */,
+  {     6,   292,  1070,   3,   2, UNI_NV__31 }   /* nv=31 */,
+  {    12,  1424,   288,   7,   2, UNI_CCC__30 }   /* ccc=ccc30 */,
+  {     0,  1823,    43,   7,   4, UNI_SC__BUHD }   /* script=buhd */,
+  {     8,  1823,    78,   7,   4, UNI_DSRT }   /* script=dsrt */,
+  {     4,  3984,   934,  17,   6, -UNI_EPRES }   /* emojipresentation=false */,
+  {    16,  3892,   353,  16,   2, UNI_STERM }   /* sentenceterminal=y */,
+  {     0,  1255,     0,   7,   0, UNI_SIDD }   /* siddham */,
+  {     2,  7011,   689,  24,   3, UNI_CCC__214 }   /* canonicalcombiningclass=ata */,
+  {     6,  3391,   345,  13,   2, UNI_NV__18 }   /* numericvalue=18 */,
+  {     2,  4424,   991,  17,   6, UNI_HATR }   /* scriptextensions=hatran */,
+  {     1,  3391,   388,  13,   2, UNI_NV__26 }   /* numericvalue=26 */,
+  {     2,  2536,  4221,   3,  14, UNI_JG__HAMZAONHEHGOAL }   /* jg=hamzaonhehgoal */,
+  {    36,  1823,   917,   7,   8, UNI_BASS }   /* script=bassavah */,
+  {    10,   309,  5448,   2,   3, UNI_PUA }   /* inpua */,
+  {     0,   154,  6945,   3,  20, UNI_GEOMETRICSHAPESEXT }   /* geometricshapesextended */,
   {     0,  1102,  1144,   4,   9, UNI_BHKS }   /* scx=bhaiksuki */,
-  {     0,  6749,   934,  25,   6, -UNI_CWKCF }   /* changeswhennfkccasefolded=false */,
-  {  2240,  7823,  4464,   5,   4, UNI_CJKEXTC }   /* incjkextc */,
-  {     8,  8276,  7627,  31,  16, UNI_INSC__CONSONANTINITIALPOSTFIXED }   /* indicsyllabiccategory=consonantinitialpostfixed */,
-  {     1,   343,  2065,   4,   2, UNI_CCC__25 }   /* ccc=25 */,
-  {   642,  3351,  1071,  13,   4, UNI_NV__1_SLASH_12 }   /* numericvalue=1/12 */,
-  {     3,    58,  4998,   2,   5, UNI_SC__MANI }   /* sc=mani */,
-  {     2,  3338,   356,  13,   2, UNI_NFDQC__Y }   /* nfdquickcheck=y */,
-  {   812,  1102,  4107,   4,   6, UNI_HANG }   /* scx=hangul */,
-  {     3,  2392,  7761,   3,  30, UNI_MATHALPHANUM }   /* inmathematicalalphanumericsymbols */,
-  {     2,  3593,  4701,  15,  10, UNI_LATINEXTADDITIONAL }   /* inlatinextendedadditional */,
-  {  1160,  1796,   951,   7,   4, UNI_SC__DUPL }   /* script=dupl */,
-  {   273,   464,   825,   2,   7, UNI_SHAW }   /* isshavian */,
-  {     1,  2443,   602,   5,   3, -UNI_CASED }   /* cased=no */,
-  {   128,  5748,  5080,   5,   7, UNI_SUPARROWSA }   /* insuparrowsa */,
-  {     0,  6944,   772,  24,   2, UNI_CCC__17 }   /* canonicalcombiningclass=17 */,
-  {   600,   313,  1248,   2,   7, UNI_INSIDDHAM }   /* insiddham */,
-  {  2412,  8007,  6309,   7,  13, UNI_CJKCOMPAT }   /* blk=cjkcompatibility */,
-  {    18,  5787,  4442,  10,   9, UNI_JAMOEXTB }   /* hanguljamoextendedb */,
-  {   322,     5,  1183,   1,   8, UNI_EMOTICONS }   /* emoticons */,
-  {    31,  1102,  1255,   4,   7, UNI_SOYO }   /* scx=soyombo */,
-  {     0,  4355,   106,  17,   4, UNI_HMNG }   /* scriptextensions=hmng */,
-  {   142,  1075,  1298,   4,   5, UNI_NV__216000 }   /* nv=216000 */,
-  {  3075,  4291,     5,  10,   2, UNI_LB__EX }   /* linebreak=ex */,
-  {    24,  1009,     0,   6,   0, UNI_LYCI }   /* lycian */,
-  {     3,  1856,     0,  11,   0, UNI_BIDIC }   /* bidicontrol */,
-  {     0,  2485,  2033,   6,   5, UNI_XPOSIXALPHA }   /* xposixalpha */,
-  {     0,  1879,   360,   4,   6, UNI_INCHAKMA }   /* blk=chakma */,
-  {     3,   464,   156,   2,   4, UNI_OUGR }   /* isougr */,
-  {     9,  6842,     0,  14,   0, UNI_MUSIC }   /* musicalsymbols */,
-  {     0,  1353,     0,   4,   0, UNI_PAUC }   /* pauc */,
-  {     7,   313,   540,   2,   6, UNI_INTANGSA }   /* intangsa */,
-  {     0,   464,  4485,   2,   5, UNI_TITLE }   /* istitle */,
-  {    13,  1879,  5806,   4,  12, UNI_MONGOLIANSUP }   /* blk=mongoliansup */,
-  {     0,  3474,  2760,   7,  11, UNI_ALPHABETICPF }   /* block=alphabeticpf */,
-  {  1333,  2726,   103,   3,   2, UNI_UPPERCASELETTER }   /* gc=lu */,
-  {     2,  6114,  6594,   3,   6, UNI_BRAH }   /* sc=brahmi */,
-  {     0,  1102,   868,   4,   7, UNI_TIRH }   /* scx=tirhuta */,
-  {   250,  7823,  2335,   4,   5, UNI_CJKEXTE }   /* incjkexte */,
-  {     0,   313,  1542,   2,   6, UNI_ARROWS }   /* inarrows */,
-  {     1,  1102,  4998,   3,   5, UNI_MANI }   /* scx=mani */,
-  {     1,   464,   868,   2,   4, UNI_TIRH }   /* istirh */,
-  {     5,  1796,   148,   7,   4, UNI_SC__ORYA }   /* script=orya */,
-  {    90,  7660,     0,  28,   0, UNI_VSSUP }   /* variationselectorssupplement */,
-  {  2109,  7201,   103,  16,   2, UNI_UPPERCASELETTER }   /* generalcategory=lu */,
-  {     2,  8276,  5045,  22,  10, UNI_INSC__TONELETTER }   /* indicsyllabiccategory=toneletter */,
-  {     1,  6114,  1927,   3,  12, UNI_SC__GONG }   /* sc=gunjalagondi */,
-  {     0,  1102,   637,   4,   7, UNI_HANO }   /* scx=hanunoo */,
-  {  2589,  4291,   546,  10,   2, UNI_EBASE }   /* linebreak=eb */,
-  {   129,   632,   355,   5,   3, UNI_GRBASE }   /* grbase=y */,
-  {     0,   625,   588,   7,   5, UNI_EXTPICT }   /* extpict=true */,
-  {  2141,  3474,   783,   6,   7, UNI_INOSMANYA }   /* block=osmanya */,
-  {     1,  1383,   934,   7,   2, -UNI_IDS }   /* idstart=f */,
-  {  3235,  8244,  1698,   9,   4, UNI_CJKEXTF }   /* block=cjkextf */,
-  {     0,   464,  2275,   2,   3, UNI_IDC }   /* isidc */,
-  {     0,  5586,     0,  21,   0, UNI_gcb_values_index }   /* graphemeclusterbreak= */,
-  {     0,  6114,  3498,   3,   7, UNI_SC__CPRT }   /* sc=cypriot */,
-  {    71,   378,   601,   4,   3, -UNI_GREXT }   /* grext=n */,
-  {  2848,    23,   934,   4,   2, -UNI_POSIXXDIGIT }   /* ahex=f */,
-  {    38,   464,   618,   2,   4, UNI_ELYM }   /* iselym */,
-  {     0,   464,  1205,   2,   9, UNI_QAAI }   /* isinherited */,
-  {     0,  7132,  1256,   5,   6, UNI_INSOYOMBO }   /* blk=soyombo */,
-  {     1,  3474,     0,  12,   0, UNI_INARABIC }   /* block=arabic */,
-  {     0,  3474,  4842,   6,  15, UNI_DIACRITICALSSUP }   /* block=diacriticalssup */,
-  {   308,  2355,  4442,   8,   9, UNI_CYRILLICEXTB }   /* cyrillicextendedb */,
-  {     4,  3593,  4629,   6,  12, UNI_LATIN1 }   /* inlatin1supplement */,
-  {     0,  1065,  1298,   5,   3, UNI_NV__1_SLASH_160 }   /* nv=1/160 */,
-  {     8,  6112,  5045,   5,  10, UNI_INSC__TONELETTER }   /* insc=toneletter */,
-  {  4103,  1382,   601,   7,   3, -UNI_XIDS }   /* xidstart=n */,
-  {     4,  8533,  6623,   7,  21, UNI_MODIFIERLETTERS }   /* block=spacingmodifierletters */,
-  {     0,  1102,  5389,   4,  20, UNI_HMNP }   /* scx=nyiakengpuachuehmong */,
-  {     3,  3593,  5797,   7,   9, UNI_LATINEXTA }   /* inlatinextendeda */,
-  {  2575,   244,     0,   4,   0, UNI_ZYYY }   /* zyyy */,
-  {     0,  7068,   602,  26,   2, -UNI_PCM }   /* prependedconcatenationmark=n */,
-  {     0,  6379,  1723,  13,   8, UNI_JG__FARSIYEH }   /* joininggroup=farsiyeh */,
-  {     7,  7317,    91,  11,   2, UNI_BC__LRE }   /* bidiclass=lre */,
-  {     3,  6039,  2382,   7,  10, UNI_MISCSYMBOLS }   /* block=miscsymbols */,
-  {     0,  1710,  7238,   3,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* issymbolsandpictographsexta */,
-  {   474,  1702,  1491,   8,   4, UNI_ARABICEXTA }   /* isarabicexta */,
-  {    26,  6944,  8037,  24,  10, UNI_CCC__BR }   /* canonicalcombiningclass=belowright */,
-  {     1,  1975,  1465,   7,   5, UNI_POSIXSPACE }   /* isposixspace */,
-  {     0,   756,  1768,   3,   5, UNI_NFCQC__M }   /* nfkcqc=m */,
-  {     0,   887,  6214,   5,   3, UNI_AGE__12_DOT_1 }   /* age=12.1 */,
-  {     0,     7,   201,   1,   3, UNI_TAML }   /* taml */,
-  {   262,  4355,  3933,  17,   4, UNI_MODI }   /* scriptextensions=modi */,
-  {     0,  5844,  6052,   5,  13, UNI_SUPMATHOPERATORS }   /* issupmathoperators */,
-  {     0,  2726,    12,   3,   2, UNI_PC }   /* gc=pc */,
-  {     1,  4122,  5620,   8,   3, -UNI_XPOSIXLOWER }   /* lowercase=n */,
-  {  2244,  7880,  6509,   5,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* iscjkcompatideographs */,
-  {     1,     2,   601,   2,   3, -UNI_CWT }   /* cwt=n */,
-  {     1,  4726,  1781,  14,   4, UNI_NV__60000 }   /* numericvalue=60000 */,
-  {  1121,   313,  5284,   2,  20, UNI_ININSCRIPTIONALPAHLAVI }   /* ininscriptionalpahlavi */,
-  {    12,  4355,   806,  17,   4, UNI_SARB }   /* scriptextensions=sarb */,
-  {     1,  1796,   433,   7,   4, UNI_SC__NKO }   /* script=nkoo */,
-  {     1,  1551,     0,  10,   0, UNI_XPEO }   /* oldpersian */,
-  {   306,  5389,     0,  20,   0, UNI_HMNP }   /* nyiakengpuachuehmong */,
-  {     8,   632,   355,   5,   5, UNI_GRBASE }   /* grbase=yes */,
-  {    12,  2275,   602,   3,   2, -UNI_IDC }   /* idc=n */,
-  {     0,  2454,  4913,   3,   5, UNI_GRBASE }   /* isgrbase */,
-  {     0,  7317,  6241,   9,  21, UNI_BC__LRE }   /* bidiclass=lefttorightembedding */,
-  {     0,  8533,  5080,  18,   7, UNI_SUPARROWSA }   /* block=supplementalarrowsa */,
-  {    29,   508,   356,   5,   2, UNI_NFDQC__Y }   /* nfdqc=y */,
-  {  2184,  1879,  3396,   4,  15, UNI_SARB }   /* blk=oldsoutharabian */,
-  {     2,  4021,  6538,   5,  11, UNI_INDICNUMBERFORMS }   /* indicnumberforms */,
-  {  2050,  1796,  4882,   7,   4, UNI_EGYP }   /* script=egyp */,
-  {     0,  1837,     0,   5,   0, UNI_EBASE }   /* ebase */,
-  {     0,  1102,   106,   4,   4, UNI_HMNG }   /* scx=hmng */,
-  {     0,   383,   356,   6,   2, UNI_HYPHEN }   /* hyphen=y */,
-  {     2,  1410,   349,   7,   2, UNI_CCC__84 }   /* ccc=ccc84 */,
-  {     0,  2260,  6214,   4,   3, UNI_IN__12_DOT_1 }   /* in=12.1 */,
-  {     1,  2792,  7403,  10,  13, UNI_CYRILLICSUP }   /* iscyrillicsupplementary */,
-  {  2177,  1174,    21,   3,   1, UNI_EA__H }   /* ea=h */,
-  {   512,  7527,  4581,   3,   2, UNI_LB__BB }   /* lb=bb */,
-  {     5,  4500,   355,   8,   5, UNI_XPOSIXUPPER }   /* uppercase=yes */,
-  {     0,  7208,   330,   9,   2, UNI_PF }   /* category=pf */,
-  {     0,  1216,  4442,   4,   9, UNI_KANAEXTB }   /* kanaextendedb */,
-  {  2067,  3474,   337,   6,   6, UNI_INCARIAN }   /* block=carian */,
-  {     6,  8007,  8089,   7,  21, UNI_CJKSYMBOLS }   /* blk=cjksymbolsandpunctuation */,
-  {     0,  1704,  5797,   6,   9, UNI_ARABICEXTA }   /* arabicextendeda */,
-  {  1077,  2274,  3361,   9,   3, UNI_xidc_values_index }   /* xidcontinue= */,
-  {     0,  3991,     0,   4,   0, UNI_BRAI }   /* brai */,
-  {    17,  2726,   229,   3,   2, UNI_PE }   /* gc=pe */,
-  {   393,   265,   934,   5,   2, -UNI_CWKCF }   /* cwkcf=f */,
-  {     1,   844,     0,   2,   0, UNI_LO }   /* lo */,
-  {     0,  1991,     0,  12,   0, UNI_jt_values_index }   /* joiningtype= */,
-  {   266,   464,   802,   2,   4, UNI_NBAT }   /* isnbat */,
-  {     2,  2625,   602,  13,   3, -UNI_PATSYN }   /* patternsyntax=no */,
-  {   112,    34,   310,   1,   6, UNI_XPOSIXPRINT }   /* isprint */,
-  {     0,  1879,  8551,   4,  21, UNI_MATHOPERATORS }   /* blk=mathematicaloperators */,
+  {     0,  5937,   934,  21,   2, -UNI__PERL_NCHAR }   /* noncharactercodepoint=f */,
+  {     0,  6618,     0,   5,   0, UNI_inpc_values_index }   /* inpc= */,
+  {     0,  4043,   585,  17,   5, UNI_IDSB }   /* idsbinaryoperator=true */,
+  {     1,  6427,   702,  20,   4, UNI_JG__AFRICANNOON }   /* joininggroup=africannoon */,
+  {     5,   533,     4,   3,   2, UNI_SB__LO }   /* sb=lo */,
+  {     5,  4424,  2811,  17,   5, UNI_KHMR }   /* scriptextensions=khmer */,
+  {     2,   461,  7537,   2,  10, UNI_XPOSIXALPHA }   /* isalphabetic */,
+  {    12,  6287,  6021,  14,   8, UNI_BC__LRO }   /* bc=lefttorightoverride */,
+  {     0,  7011,   582,  25,   2, UNI_CCC__BR }   /* canonicalcombiningclass=222 */,
+  {     2,  7274,   326,   9,   2, UNI_PF }   /* category=pf */,
+  {     1,  4391,   394,  15,   1, UNI_NV__3_SLASH_5 }   /* numericvalue=3/5 */,
+  {     0,  5065,  4267,  13,   4, UNI_JG__MANICHAEANTETH }   /* jg=manichaeanteth */,
+  {   132,  5185,     0,  20,   0, UNI_HLUW }   /* anatolianhieroglyphs */,
+  {     3,  1492,  5863,   7,  13, UNI_GEORGIANSUP }   /* ingeorgiansupplement */,
+  {     5,   461,   840,   2,   7, UNI_TGLG }   /* istagalog */,
+  {    12,   271,  4369,   2,   2, UNI_Z }   /* gc=z */,
+  {     1,  1894,   599,   5,   3, -UNI_BIDIM }   /* bidim=no */,
+  {     1,  4360,   543,  10,   2, UNI_EBASE }   /* linebreak=eb */,
+  {     3,   324,  5813,   3,   7, UNI_SUPARROWSB }   /* suparrowsb */,
+  {     9,  2348,   933,  12,   3, -UNI_CI }   /* caseignorable=f */,
+  {     1,  6165,   369,   3,   4, UNI_GOTH }   /* sc=goth */,
+  {     9,  2523,  1942,   8,   5, UNI_XPOSIXGRAPH }   /* isxposixgraph */,
+  {    33,   204,    84,   2,   2, UNI_TFNG }   /* tfng */,
+  {     2,  7591,   380,   3,   6, UNI_LB__HY }   /* lb=hyphen */,
+  {     7,   266,   353,   3,   2, UNI_CWT }   /* cwt=y */,
+  {    17,  5283,     0,   9,   0, UNI_HALFMARKS }   /* halfmarks */,
+  {     0,   461,  1303,   2,   9, UNI_TALU }   /* isnewtailue */,
+  {     2,  2324,  2852,   6,  12, UNI_MAHJONG }   /* block=mahjongtiles */,
+  {     0,   292,   345,   3,   2, UNI_NV__18 }   /* nv=18 */,
+  {     0,   309,  4862,   2,   4, UNI_RUMI }   /* inrumi */,
+  {    18,  6870,   599,  20,   2, -UNI_CE }   /* compositionexclusion=n */,
+  {     0,  5616,   934,  21,   2, -UNI_CWU }   /* changeswhenuppercased=f */,
+  {    26,  1102,  1003,   4,   4, UNI_LEPC }   /* scx=lepc */,
+  {     2,  6165,   634,   3,   7, UNI_SC__HANO }   /* sc=hanunoo */,
+  {     4,  1667,    32,   4,   2, UNI_INVS }   /* blk=vs */,
+  {     6,   309,   426,   2,   3, UNI_INMRO }   /* inmro */,
+  {     2,  1065,   891,   5,   2, UNI_NV__1_SLASH_10 }   /* nv=1/10 */,
+  {     8,  2324,  3938,   7,  16, UNI_UCAS }   /* block=canadiansyllabics */,
+  {     4,  4424,   794,  17,   4, UNI_LANA }   /* scriptextensions=lana */,
+  {     2,   461,  6000,   2,  21, UNI_YIJING }   /* isyijinghexagramsymbols */,
+  {     0,  4569,     0,   5,   0, UNI_XPOSIXUPPER }   /* upper */,
+  {     1,  1667,  1505,   7,   4, UNI_CJKEXTA }   /* blk=cjkexta */,
+  {     2,    30,  1384,   1,   7, UNI_INTHAANA }   /* inthaana */,
+  {     0,   370,  6683,   3,   8, UNI_LO }   /* otherletter */,
+  {     1,   309,  1501,   2,   8, UNI_JAMOEXTA }   /* injamoexta */,
+  {     3,   461,   794,   2,   4, UNI_LANA }   /* islana */,
+  {     1,  1667,  1033,   4,   8, UNI_JAMOEXTB }   /* blk=jamoextb */,
+  {     1,  1667,  4926,   4,   5, UNI_INTAMIL }   /* blk=tamil */,
+  {     6,   248,     0,   5,   0, UNI_XPOSIXCNTRL }   /* cntrl */,
+  {     0,  4360,    18,  10,   2, UNI_LB__BA }   /* linebreak=ba */,
+  {     8,   309,  1234,   2,   7, UNI_INMULTANI }   /* inmultani */,
+  {     1,  1424,  7239,   7,   2, UNI_CCC__28 }   /* ccc=ccc28 */,
+  {     5,   461,  6185,   2,  13, UNI_GLAGOLITICSUP }   /* isglagoliticsup */,
+  {     1,   339,   389,   5,   1, UNI_CCC__16 }   /* ccc=16 */,
+  {     1,  6692,     0,  22,   0, UNI_TRANSPORTANDMAP }   /* transportandmapsymbols */,
+  {     0,  5065,     0,  19,   0, UNI_JG__MANICHAEANTWENTY }   /* jg=manichaeantwenty */,
+  {    15,  8311,  4410,  32,   4, UNI_CJKEXTA }   /* block=cjkunifiedideographsextensiona */,
+  {    99,    30,  4553,   1,  16, UNI_TITLE }   /* istitlecaseletter */,
+  {     2,   292,  1153,   3,   2, UNI_NV__24 }   /* nv=24 */,
+  {     0,    32,   934,   2,   6, -UNI_VS }   /* vs=false */,
+  {     5,   887,     0,   6,   0, UNI_AGE__10 }   /* age=10 */,
+  {     0,   461,  4951,   2,   4, UNI_EGYP }   /* isegyp */,
+  {     0,  4391,   346,  14,   1, UNI_NV__38 }   /* numericvalue=38 */,
+  {     1,   271,  2720,   3,   3, UNI_RI }   /* gcb=ri */,
+  {     1,  1667,  1696,   4,  11, UNI_DOMINO }   /* blk=dominotiles */,
+  {     0,    30,   867,   1,   8, UNI_INTIRHUTA }   /* intirhuta */,
+  {     2,   375,   598,   4,   2, UNI_grext_values_index }   /* grext= */,
+  {     4,  2280,   563,  10,   3, UNI_IN__8 }   /* presentin=8.0 */,
+  {    11,  1667,  6677,   4,  15, UNI_MODIFIERLETTERS }   /* blk=modifierletters */,
+  {     5,  1667,  6900,   4,  14, UNI_BYZANTINEMUSIC }   /* blk=byzantinemusic */,
+  {     0,  4424,  4487,  17,   6, UNI_ZYYY }   /* scriptextensions=common */,
+  {    15,   461,   683,   2,   5, UNI_TAKR }   /* istakri */,
+  {     1,   461,   117,   2,   2, UNI_XPOSIXDIGIT }   /* isnd */,
+  {     0,  1823,  1098,   7,   4, UNI_NSHU }   /* script=nshu */,
+  {    46,  1102,   188,   4,   4, UNI_SGNW }   /* scx=sgnw */,
+  {     1,   461,  3649,   2,  14, UNI_PHONETICEXTSUP }   /* isphoneticextsup */,
+  {     0,  2287,  2154,   3,   2, UNI_IN__13 }   /* in=13 */,
+  {     2,   940,   585,   6,   5, UNI_COMPEX }   /* compex=true */,
+  {     0,   309,  6487,   2,  13, UNI_ZNAMENNYMUSIC }   /* inznamennymusic */,
+  {     1,  2324,   917,   6,   8, UNI_INBASSAVAH }   /* block=bassavah */,
+  {     0,  1391,  3001,   3,   7, UNI_WB__NU }   /* wb=numeric */,
+  {    14,  5216,  3773,   7,  15, UNI_LINEARBIDEOGRAMS }   /* block=linearbideograms */,
+  {     1,  4002,     0,   4,   0, UNI_MODI }   /* modi */,
+  {     8,  1455,   585,   3,   2, UNI_DEP }   /* dep=t */,
+  {    36,  1823,   718,   7,   7, UNI_SC__KNDA }   /* script=kannada */,
+  {     0,  4146,     0,  15,   0, UNI_PD }   /* dashpunctuation */,
+  {     2,  2324,   951,   6,   8, UNI_INDUPLOYAN }   /* block=duployan */,
+  {     0,   271,     6,   4,   2, UNI_LB__CR }   /* gcb=cr */,
+  {     4,  7887,  4680,  28,   4, UNI_CJKEXTF }   /* incjkunifiedideographsextensionf */,
+  {    23,  2324,  3649,   6,  11, UNI_PHONETICEXT }   /* block=phoneticext */,
+  {     1,  5156,  2292,  10,   9, UNI_WB__WSEGSPACE }   /* wordbreak=wsegspace */,
+  {     2,  1883,   599,  11,   3, -UNI_BIDIC }   /* bidicontrol=no */,
+  {     1,  2324,  4075,   6,  15, UNI_CURRENCYSYMBOLS }   /* block=currencysymbols */,
+  {     1,  2324,   333,   6,   6, UNI_INCARIAN }   /* block=carian */,
+  {     8,  1102,   208,   4,   4, UNI_TGLG }   /* scx=tglg */,
+  {    80,  6618,  2719,   3,   7, UNI_INPC__RIGHT }   /* inpc=right */,
+  {     4,  2324,  1209,   6,   4, UNI_INTHAI }   /* block=thai */,
+  {     0,  1102,  6642,   4,   6, UNI_BRAH }   /* scx=brahmi */,
+  {     0,  4424,  5185,  17,  20, UNI_HLUW }   /* scriptextensions=anatolianhieroglyphs */,
+  {     2,  1823,   810,   7,   4, UNI_SC__SYRC }   /* script=syrc */,
+  {     1,  4424,  1572,  17,  10, UNI_XPEO }   /* scriptextensions=oldpersian */,
+  {     3,    21,  5820,   1,  15, UNI_ENCLOSEDALPHANUM }   /* enclosedalphanum */,
+  {     0,  3014,  1070,  11,   2, UNI_IN__3_DOT_1 }   /* presentin=v31 */,
+  {     8,  7591,     9,   3,   2, UNI_LB__CM }   /* lb=cm */,
+  {     0,  2280,   386,  10,   3, UNI_IN__3_DOT_2 }   /* presentin=3.2 */,
+  {     0,  1102,  1522,   4,   4, UNI_UGAR }   /* scx=ugar */,
+  {     0,  5205,  8039,   5,  32, UNI_MISCMATHSYMBOLSA }   /* blk=miscellaneousmathematicalsymbolsa */,
+  {     3,  3391,  2656,  13,   9, UNI_NV__1_SLASH_2 }   /* numericvalue=5.000e-01 */,
+  {     0,  1667,  3349,   4,  15, UNI_INMEROITICCURSIVE }   /* blk=meroiticcursive */,
+  {     0,  1894,     0,  12,   0, UNI_BIDIM }   /* bidimirrored */,
+  {     0,   339,  6328,   4,   3, UNI_CCC__202 }   /* ccc=atb */,
+  {     0,    30,  1695,   1,  12, UNI_DOMINO }   /* indominotiles */,
+  {     2,  2525,  4150,   6,   5, UNI_XPOSIXPUNCT }   /* xposixpunct */,
+  {    58,  2324,  1331,   6,   9, UNI_INOLDPERMIC }   /* block=oldpermic */,
+  {     0,  4424,   184,  17,   4, UNI_SAMR }   /* scriptextensions=samr */,
+  {     9,   309,  3692,   2,  14, UNI_LISUSUP }   /* inlisusupplement */,
+  {     0,  7495,  2165,  28,   2, UNI_WB__EB }   /* canonicalcombiningclass=ccc133 */,
+  {     0,  4424,   732,  17,   7, UNI_LINA }   /* scriptextensions=lineara */,
+  {     0,  7267,  2815,  20,   7, UNI_SO }   /* generalcategory=othersymbol */,
+  {    15,  6165,   172,   3,   4, UNI_RJNG }   /* sc=rjng */,
+  {     0,  2280,  2222,   9,   4, UNI_IN__6_DOT_2 }   /* presentin=6.2 */,
+  {     2,  7011,  2154,  24,   2, UNI_CCC__13 }   /* canonicalcombiningclass=13 */,
+  {     0,  2988,   353,  13,   2, UNI_NFCQC__Y }   /* nfcquickcheck=y */,
+  {     0,  7591,   184,   3,   2, UNI_LB__SA }   /* lb=sa */,
+  {     6,  1823,  3663,   7,   4, UNI_SC__DEVA }   /* script=deva */,
+  {     1,  1102,    43,   4,   4, UNI_BUHD }   /* scx=buhd */,
+  {    20,  1823,  1978,   7,   7, UNI_SC__SOGD }   /* script=sogdian */,
+  {     5,  1198,  5694,   3,  18, UNI_COUNTINGROD }   /* incountingrodnumerals */,
+  {     1,  1011,   934,   2,   6, -UNI_CI }   /* ci=false */,
+  {     0,  2324,  1144,   6,   9, UNI_INBHAIKSUKI }   /* block=bhaiksuki */,
+  {     1,  7011,  5523,  24,   9, UNI_CCC__BL }   /* canonicalcombiningclass=belowleft */,
+  {     0,  7495,  1316,  28,   2, UNI_CCC__103 }   /* canonicalcombiningclass=ccc103 */,
+  {     0,  2324,   868,   6,   7, UNI_INTIRHUTA }   /* block=tirhuta */,
+  {     1,  7011,  3403,  23,   3, UNI_CCC__23 }   /* canonicalcombiningclass=23 */,
+  {     0,   916,  5671,   4,   4, -UNI_EBASE }   /* ebase=no */,
+  {    10,  1942,   933,  11,   3, -UNI_GRBASE }   /* graphemebase=f */,
+  {     1,  3954,     0,  17,   0, UNI_AGHB }   /* caucasianalbanian */,
+  {     0,  7198,  4607,  14,  13, UNI_SUPPUNCTUATION }   /* blk=supplementalpunctuation */,
+  {     0,  1075,  2107,   4,   8, UNI_NV__5_SLASH_2 }   /* nv=2.500e+00 */,
+  {    32,     2,   585,   3,   2, UNI_CWL }   /* cwl=t */,
+  {     1,   597,   324,   3,   3, UNI_DT__SUP }   /* dt=sup */,
+  {     2,  7274,  4191,   9,  15, UNI_LOWERCASELETTER }   /* category=lowercaseletter */,
+  {    20,  1272,  6557,   5,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* iscjkcompatideographssup */,
+  {   137,  1883,   353,  11,   2, UNI_BIDIC }   /* bidicontrol=y */,
+  {     2,  1198,  2373,   4,   5, UNI_CJKEXTE }   /* incjkexte */,
+  {     3,   641,  1874,   7,   8, UNI_LB__H3 }   /* hst=lvtsyllable */,
+  {     0,   375,   598,   4,   4, -UNI_GREXT }   /* grext=no */,
+  {     0,  6427,  4751,  13,   5, UNI_JG__SADHE }   /* joininggroup=sadhe */,
+  {     0,   461,  5440,   2,  20, UNI_HMNP }   /* isnyiakengpuachuehmong */,
+  {     0,   309,  5283,   2,   9, UNI_HALFMARKS }   /* inhalfmarks */,
+  {     0,  3633,  2619,   3,  12, UNI_LOWSURROGATES }   /* inlowsurrogates */,
+  {    64,  7267,  3191,  15,   7, UNI_L }   /* generalcategory=letter */,
+  {     0,  3407,  2657,  14,   8, UNI_NV__2_SLASH_5 }   /* numericvalue=4.000e-01 */,
+  {     0,   309,  3026,   2,  14, UNI_INPSALTERPAHLAVI }   /* inpsalterpahlavi */,
+  {     0,   309,   571,   2,   7, UNI_INAVESTAN }   /* inavestan */,
+  {     2,  3514,    24,   7,   3, UNI_INAHOM }   /* block=ahom */,
+  {     7,  2324,  4819,   6,   8, UNI_DINGBATS }   /* block=dingbats */,
+  {    51,  4896,     0,  15,   0, UNI_BAMUMSUP }   /* bamumsupplement */,
+  {     2,  1823,  1255,   7,   7, UNI_SIDD }   /* script=siddham */,
+  {     0,   461,   266,   2,   3, UNI_CWT }   /* iscwt */,
+  {     1,   309,  6797,   2,  18, UNI_DEVANAGARIEXT }   /* indevanagariextended */,
+  {     8,  6351,     0,  23,   0, UNI_COMPATJAMO }   /* hangulcompatibilityjamo */,
+  {    12,  1102,  1853,   4,   4, UNI_SYLO }   /* scx=sylo */,
+  {     0,  7198,   837,   8,   3, UNI_SUPPUAA }   /* blk=suppuaa */,
+  {     4,  6909,     0,  14,   0, UNI_MUSIC }   /* musicalsymbols */,
+  {     1,  2523,  3268,   8,   5, UNI_XPOSIXALNUM }   /* isxposixalnum */,
+  {    11,   466,     0,   2,   0, UNI_SO }   /* so */,
+  {     1,  3349,     0,   4,   0, UNI_MERO }   /* mero */,
+  {     1,  3204,   599,  14,   2, -UNI_GREXT }   /* graphemeextend=n */,
+  {     0,  8601,  1110,   7,   7, UNI_SPECIALS }   /* block=specials */,
+  {     0,  4377,   599,  14,   3, UNI_NFKDQC__N }   /* nfkdquickcheck=no */,
+  {     0,  1667,  1465,   4,  10, UNI_INDIVESAKURU }   /* blk=divesakuru */,
+  {     0,  2287,  6262,   3,   3, UNI_IN__2_DOT_1 }   /* in=2.1 */,
+  {     0,  1530,  4511,   6,   9, UNI_KANAEXTB }   /* iskanaextendedb */,
+  {     0,  7752,  4255,  23,   4, UNI_JG__MANICHAEANRESH }   /* joininggroup=manichaeanresh */,
+  {     0,  7383,  5318,  10,   3, UNI_BC__RLE }   /* bidiclass=rle */,
+  {    32,  6062,  1037,  14,   4, UNI_ETHIOPICEXTB }   /* block=ethiopicextb */,
+  {     1,  7267,   466,  16,   2, UNI_SO }   /* generalcategory=so */,
+  {    34,  1200,  1505,   3,   4, UNI_CJKEXTA }   /* cjkexta */,
+  {     0,   887,  6262,   5,   3, UNI_AGE__12_DOT_1 }   /* age=12.1 */,
+  {     0,  3633,   130,  14,   2, UNI_LATINEXTF }   /* inlatinextendedf */,
+  {     0,  7383,  5497,  10,  18, UNI_BC__FSI }   /* bidiclass=firststrongisolate */,
+  {     2,  5460,   585,  19,   5, UNI_TERM }   /* terminalpunctuation=true */,
+  {     0,  3878,  1805,  14,   5, UNI_NV__900000 }   /* numericvalue=900000 */,
+  {     4,   735,   934,   2,   2, UNI_EA__F }   /* ea=f */,
+  {     1,  1391,   959,   3,   6, UNI_WB__EXTEND }   /* wb=extend */,
+  {     3,   521,   599,   6,   2, -UNI_PATSYN }   /* patsyn=n */,
+  {     0,    30,  8141,   1,  19, UNI_IDEOGRAPHICSYMBOLS }   /* isideographicsymbols */,
+  {     0,  2403,  1505,   8,   4, UNI_ETHIOPICEXTA }   /* ethiopicexta */,
+  {    68,  3803,  1795,  14,   6, UNI_NFCQC__M }   /* nfkcquickcheck=maybe */,
+  {     0,   625,     0,   2,   0, UNI_PI }   /* pi */,
+  {     0,  7495,   344,  27,   2, UNI_CCC__21 }   /* canonicalcombiningclass=ccc21 */,
+  {     0,  7495,   343,  28,   1, UNI_CCC__11 }   /* canonicalcombiningclass=ccc11 */,
+  {     0,   461,  4896,   2,   5, UNI_BAMU }   /* isbamum */,
+  {     0,  5595,   934,  21,   2, -UNI_CWT }   /* changeswhentitlecased=f */,
+  {     0,  3100,     0,   6,   0, UNI_XPOSIXXDIGIT }   /* xdigit */,
+  {     3,  7383,  4880,  10,  16, UNI_BC__S }   /* bidiclass=segmentseparator */,
+  {     1,  4424,   446,  17,   4, UNI_PHLI }   /* scriptextensions=phli */,
+  {    25,  6165,  1021,   3,   6, UNI_WCHO }   /* sc=wancho */,
+  {     4,  2503,   585,  11,   5, UNI_JOINC }   /* joincontrol=true */,
+  {    36,   605,   533,   2,   3, UNI_idsb_values_index }   /* idsb= */,
+  {    12,  6165,  1098,   3,   4, UNI_NSHU }   /* sc=nshu */,
+  {     9,   271,   543,   4,   3, UNI_WB__EB }   /* gcb=ebg */,
+  {     0,  4424,  1285,  17,   9, UNI_SIND }   /* scriptextensions=khudawadi */,
+  {     2,   309,  1358,   2,   9, UNI_PALM }   /* inpalmyrene */,
+  {     0,  2324,   527,   6,   6, UNI_INREJANG }   /* block=rejang */,
+  {   192,  1272,  6382,   5,  18, UNI_CJKCOMPATFORMS }   /* iscjkcompatibilityforms */,
+  {   147,  6165,   164,   3,   4, UNI_PHNX }   /* sc=phnx */,
+  {    26,  1011,   599,   2,   3, -UNI_CI }   /* ci=no */,
+  {     6,  3391,   769,  13,   3, UNI_NV__7_SLASH_2 }   /* numericvalue=7/2 */,
+  {     0,  2324,  3026,   6,  14, UNI_INPSALTERPAHLAVI }   /* block=psalterpahlavi */,
+  {     7,  1397,   353,   4,   4, UNI_IDST }   /* idst=yes */,
+  {     0,  7134,   599,  26,   3, -UNI_PCM }   /* prependedconcatenationmark=no */,
+  {    33,  7267,  4016,  16,  14, UNI_ZS }   /* generalcategory=spaceseparator */,
+  {     3,  1823,  1235,   8,   6, UNI_SC__MULT }   /* script=multani */,
+  {    12,   533,   281,   3,   2, UNI_SB__XX }   /* sb=xx */,
+  {    17,  6165,   499,   3,   4, UNI_LYDI }   /* sc=lydi */,
+  {     0,  2536,  4263,   3,   4, UNI_JG__QAPH }   /* jg=qaph */,
+  {     0,  4407,   585,  17,   2, UNI_RI }   /* regionalindicator=t */,
+  {   103,  7495,   391,  27,   2, UNI_CCC__34 }   /* canonicalcombiningclass=ccc34 */,
+  {     9,  7274,  3101,   9,   5, UNI_XPOSIXDIGIT }   /* category=digit */,
+  {     4,  4424,  1853,  17,   4, UNI_SYLO }   /* scriptextensions=sylo */,
+  {    17,  5216,  5848,  11,   9, UNI_LATINEXTA }   /* block=latinextendeda */,
+  {     0,  1734,  4710,   3,  15, UNI_SYRIACSUP }   /* issyriacsupplement */,
+  {     1,  3013,   934,   5,   2, -UNI_EPRES }   /* epres=f */,
+  {     9,   339,   118,   4,   2, UNI_CCC__DA }   /* ccc=da */,
+  {    34,   309,   951,   2,   8, UNI_INDUPLOYAN }   /* induployan */,
+  {    80,  1102,  1334,   4,   4, UNI_PERM }   /* scx=perm */,
+  {     0,  6816,   353,  25,   2, UNI_CWKCF }   /* changeswhennfkccasefolded=y */,
+  {     5,  1823,   847,   7,   7, UNI_LANA }   /* script=taitham */,
+  {    79,  2766,  2360,   3,  10, UNI_CN }   /* gc=unassigned */,
+  {   154,   461,  4569,   2,   5, UNI_XPOSIXUPPER }   /* isupper */,
+  {    12,  6165,   802,   3,   4, UNI_SARB }   /* sc=sarb */,
+  {     1,  3391,   290,  13,   2, UNI_NV__40 }   /* numericvalue=40 */,
+  {     0,  1667,  1033,   4,   4, UNI_JAMO }   /* blk=jamo */,
+  {     1,   733,  5820,   3,  18, UNI_ENCLOSEDALPHANUMSUP }   /* inenclosedalphanumsup */,
+  {     5,  6735,   919,  22,   3, UNI_JG__MALAYALAMSSA }   /* joininggroup=malayalamssa */,
+  {     1,     2,    34,   2,   1, UNI_CWT }   /* cwt */,
+  {     0,  3001,     0,  12,   0, UNI_nt_values_index }   /* numerictype= */,
+  {    78,   414,     0,   3,   0, UNI_HAN }   /* han */,
+  {     0,  5857,     0,  12,   0, UNI_MONGOLIANSUP }   /* mongoliansup */,
+  {     0,  7267,  3196,  19,   8, UNI_NO }   /* generalcategory=othernumber */,
+  {    22,  5939,   585,   5,   2, UNI__PERL_NCHAR }   /* nchar=t */,
+  {    22,  1272,    81,   7,   2, UNI_CJKEXTG }   /* iscjkextg */,
+  {     0,  2766,  5243,   7,  12, UNI_PO }   /* gc=otherpunctuation */,
+  {     4,  4424,   454,  17,   4, UNI_PRTI }   /* scriptextensions=prti */,
+  {     2,  1102,     0,   4,   0, UNI_scx_values_index }   /* scx= */,
+  {     1,  1726,  4987,   3,  16, UNI_ALCHEMICAL }   /* isalchemicalsymbols */,
+  {     4,   339,  1155,   4,   2, UNI_CCC__35 }   /* ccc=35 */,
+  {     0,    53,     0,   1,   0, UNI_N }   /* n */,
+  {     1,  3724,   661,  12,   2, UNI_JG__MALAYALAMRA }   /* jg=malayalamra */,
+  {     6,  3892,   599,  16,   2, -UNI_STERM }   /* sentenceterminal=n */,
+  {     0,  2280,  2154,  10,   2, UNI_IN__13 }   /* presentin=13 */,
+  {     2,  4862,     0,   4,   0, UNI_RUMI }   /* rumi */,
+  {    69,  6165,  1834,   3,   4, UNI_SORA }   /* sc=sora */,
+  {     0,  1728,  4511,   6,   9, UNI_ARABICEXTB }   /* arabicextendedb */,
+  {    66,  7591,  2602,  22,   7, UNI_LB__CJ }   /* lb=conditionaljapanesestarter */,
+  {   141,  2525,   307,   6,   5, UNI_XPOSIXPRINT }   /* xposixprint */,
+  {     1,  2786,     0,  14,   0, UNI_HIGHSURROGATES }   /* highsurrogates */,
+  {     6,  1667,  3726,   3,  10, UNI_INMALAYALAM }   /* blk=malayalam */,
+  {    67,  1667,  6185,   4,  13, UNI_GLAGOLITICSUP }   /* blk=glagoliticsup */,
+  {     1,  1823,  8667,   7,  18, UNI_CANS }   /* script=canadianaboriginal */,
+  {    65,  4424,   232,  17,   4, UNI_YI }   /* scriptextensions=yiii */,
+  {     4,  6427,  4267,  13,   4, UNI_JG__TETH }   /* joininggroup=teth */,
+  {    16,  5979,     0,   5,   0, UNI_VO__TR }   /* vo=tr */,
+  {     2,    10,   747,   1,   3, UNI_MARC }   /* marc */,
+  {    10,   292,  1155,   3,   2, UNI_NV__35 }   /* nv=35 */,
+  {    73,  6165,   297,   3,   5, UNI_SC__ORYA }   /* sc=oriya */,
+  {   104,  3502,  6142,   5,  21, UNI_EARLYDYNASTICCUNEIFORM }   /* blk=earlydynasticcuneiform */,
+  {     1,   823,  3190,   3,   2, UNI_dash_values_index }   /* dash= */,
+  {    39,  7274,  4016,   9,  14, UNI_ZS }   /* category=spaceseparator */,
+  {     8,   117,     0,   2,   0, UNI_XPOSIXDIGIT }   /* nd */,
+  {     0,  1667,   901,   4,   8, UNI_INARMENIAN }   /* blk=armenian */,
+  {     0,  2259,   869,   3,   6, UNI_TIRH }   /* istirhuta */,
+  {     5,  6165,  4002,   3,   4, UNI_SC__MODI }   /* sc=modi */,
+  {     0,   861,     0,   7,   0, UNI_TIBT }   /* tibetan */,
+  {     0,  4569,   933,   8,   7, -UNI_XPOSIXUPPER }   /* uppercase=false */,
+  {    24,  3391,   581,  12,   3, UNI_NV__22 }   /* numericvalue=22 */,
+  {    48,  7591,  3040,   3,   9, UNI_LB__QU }   /* lb=quotation */,
+  {     1,  8343,  5114,  22,  10, UNI_INSC__TONELETTER }   /* indicsyllabiccategory=toneletter */,
+  {     0,  4424,  1340,  17,   9, UNI_ORKH }   /* scriptextensions=oldturkic */,
+  {     0,   461,  1592,   2,  10, UNI_SAUR }   /* issaurashtra */,
+  {     0,   461,  6185,   2,  20, UNI_GLAGOLITICSUP }   /* isglagoliticsupplement */,
+  {     2,   983,     0,   8,   0, UNI_HIRA }   /* hiragana */,
+  {     0,  6841,   353,  25,   4, UNI_DI }   /* defaultignorablecodepoint=yes */,
+  {     4,  7011,   519,  23,   2, UNI_CCC__7 }   /* canonicalcombiningclass=7 */,
+  {    48,  7011,   388,  25,   2, UNI_CCC__R }   /* canonicalcombiningclass=226 */,
+  {     5,  6165,   590,   3,   7, UNI_DSRT }   /* sc=deseret */,
+  {     3,  2324,  3692,   6,   4, UNI_INLISU }   /* block=lisu */,
+  {    12,  1102,   663,   4,   4, UNI_LIMB }   /* scx=limb */,
+  {     0,  1015,    90,   4,   2, UNI_TELU }   /* telugu */,
+  {     0,  2434,  2437,   3,   4, UNI_MYMR }   /* myanmar */,
+  {     0,  2393,  1037,   8,   4, UNI_CYRILLICEXTB }   /* cyrillicextb */,
+  {     0,  2536,  2875,   3,  11, UNI_JG__STRAIGHTWAW }   /* jg=straightwaw */,
+  {    52,  6618,  8507,   4,  15, UNI_INPC__BOTTOMANDRIGHT }   /* inpc=bottomandright */,
+  {     2,  3391,   391,  13,   2, UNI_NV__34 }   /* numericvalue=34 */,
+  {    74,  6287,     0,   4,   0, UNI_BC__L }   /* bc=l */,
+  {     0,    10,  8374,   1,  33, UNI_MISCPICTOGRAPHS }   /* miscellaneoussymbolsandpictographs */,
+  {     0,  1823,   537,   7,   6, UNI_TNSA }   /* script=tangsa */,
+  {     1,   597,   140,   3,   3, UNI_DT__NAR }   /* dt=nar */,
+  {    33,  1174,  1178,   4,   5, UNI_EA__NA }   /* ea=narrow */,
+  {     3,  1823,  1303,   7,   9, UNI_TALU }   /* script=newtailue */,
+  {    24,  1823,   236,   7,   4, UNI_ZANB }   /* script=zanb */,
+  {     0,  3098,  2931,   7,   3, UNI_XPOSIXXDIGIT }   /* hexdigit=t */,
+  {    10,  7591,  3463,   3,   4, UNI_LB__GL }   /* lb=glue */,
+  {     2,  1027,     0,   6,   0, UNI_YEZI }   /* yezidi */,
+  {    86,   309,  1465,   2,  10, UNI_INDIVESAKURU }   /* indivesakuru */,
+  {   108,   309,  6693,   3,  14, UNI_TRANSPORTANDMAP }   /* intransportandmap */,
+  {     1,  3649,     0,  11,   0, UNI_PHONETICEXT }   /* phoneticext */,
+  {     0,   380,   585,   6,   5, UNI_HYPHEN }   /* hyphen=true */,
+  {     0,  1397,   598,   6,   4, -UNI_IDS }   /* idstart=no */,
+  {     3,  4424,   120,  17,   3, UNI_LAO }   /* scriptextensions=lao */,
+  {     1,  7011,   288,  25,   2, UNI_CCC__A }   /* canonicalcombiningclass=230 */,
+  {     5,  1667,   772,   4,   7, UNI_OLCK }   /* blk=olchiki */,
+  {     9,  1667,  2373,   6,   5, UNI_CJKEXTE }   /* blk=cjkexte */,
+  {     6,   271,  1869,   4,   3, UNI_WB__EB }   /* gcb=gaz */,
+  {     0,  1667,  1779,   4,  11, UNI_INMEDEFAIDRIN }   /* blk=medefaidrin */,
+  {     0,   309,  1117,   2,   8, UNI_INTAGBANWA }   /* intagbanwa */,
+  {    37,  3791,     0,   4,   0, UNI_MATH }   /* math */,
+  {     0,  8343,  2768,  21,   6, UNI_INSC__OTHER }   /* indicsyllabiccategory=other */,
+  {   172,  5769,   353,   4,   4, UNI_EMOD }   /* emod=yes */,
+  {    16,   772,     0,   7,   0, UNI_OLCK }   /* olchiki */,
+  {     2,  2324,  5274,   6,  18, UNI_HALFMARKS }   /* block=combininghalfmarks */,
+  {     0,  4424,  4002,  17,   4, UNI_MODI }   /* scriptextensions=modi */,
+  {     9,   461,  6909,   2,  14, UNI_MUSIC }   /* ismusicalsymbols */,
+  {    33,  5440,  1818,  15,   5, UNI_HMNP }   /* nyiakengpuachuehmong */,
+  {     2,  5065,  5433,  13,   7, UNI_JG__MANICHAEANHUNDRED }   /* jg=manichaeanhundred */,
+  {     5,   746,     0,   7,   0, UNI_MARC }   /* marchen */,
+  {     4,  1059,   353,   6,   4, UNI_DT__NONE }   /* nfkdqc=yes */,
+  {     0,   309,  4726,   3,   8, UNI_TANGUTSUP }   /* intangutsup */,
+  {     3,  1667,  8474,   7,  23, UNI_CJKCOMPATIDEOGRAPHS }   /* blk=cjkcompatibilityideographs */,
+  {     1,  1102,   184,   4,   4, UNI_SAMR }   /* scx=samr */,
+  {     1,  3635,  5635,  11,   3, UNI_LATINEXTG }   /* latinextendedg */,
+  {     0,  2324,    55,   6,   4, UNI_INCHAM }   /* block=cham */,
+  {    13,  6165,   615,   3,   7, UNI_ELYM }   /* sc=elymaic */,
+  {     1,   461,  5958,   2,   7, UNI_SINH }   /* issinhala */,
+  {     8,   292,  7239,   3,   2, UNI_NV__28 }   /* nv=28 */,
+  {     4,  3391,   766,  13,   3, UNI_NV__5_SLASH_2 }   /* numericvalue=5/2 */,
+  {     0,  1667,   608,   4,   7, UNI_INELBASAN }   /* blk=elbasan */,
+  {     0,  4424,    94,  17,   4, UNI_GURU }   /* scriptextensions=guru */,
+  {     9,  1272,  6400,   5,  18, UNI_CJKRADICALSSUP }   /* iscjkradicalssupplement */,
+  {     1,    30,  5390,   1,  12, UNI_CHEROKEESUP }   /* ischerokeesup */,
+  {    34,  3014,  1804,  11,   3, UNI_IN__10 }   /* presentin=v100 */,
+  {     1,  2678,     0,  11,   0, UNI_IN__5 }   /* presentin=5 */,
+  {     0,  6000,     0,   6,   0, UNI_YIJING }   /* yijing */,
+  {     6,  6776,     0,  14,   0, UNI_MEETEIMAYEKEXT }   /* meeteimayekext */,
+  {     0,    33,     0,   1,   0, UNI_S }   /* s */,
+  {     1,  5156,  2411,  10,   8, UNI_WB__KA }   /* wordbreak=katakana */,
+  {     0,   309,  4926,   2,   5, UNI_INTAMIL }   /* intamil */,
+  {     2,  1635,     0,   4,   0, UNI_WARA }   /* wara */,
+  {     0,  3724,  1193,  12,   3, UNI_JG__MALAYALAMNGA }   /* jg=malayalamnga */,
+  {     1,  3014,  1313,  11,   2, UNI_IN__6 }   /* presentin=v60 */,
+  {     0,   309,  1635,   2,  10, UNI_INWARANGCITI }   /* inwarangciti */,
+  {     4,  6870,   585,  20,   5, UNI_CE }   /* compositionexclusion=true */,
+  {     6,  2536,  2864,   3,  11, UNI_JG__ROHINGYAYEH }   /* jg=rohingyayeh */,
+  {     1,  7591,   309,   3,   2, UNI_LB__IN }   /* lb=in */,
+  {     1,   461,   220,   2,   4, UNI_WCHO }   /* iswcho */,
+  {   100,  1396,   598,   7,   4, -UNI_XIDS }   /* xidstart=no */,
+  {    35,  1823,  2068,   7,  12, UNI_MEND }   /* script=mendekikakui */,
+  {     3,  1823,   152,   7,   4, UNI_OSGE }   /* script=osge */,
+  {     0,  2302,     0,  10,   0, UNI_IDC }   /* idcontinue */,
+  {     0,  4424,  6185,  17,   4, UNI_GLAG }   /* scriptextensions=glag */,
+  {     0,  1421,  2773,   3,  13, UNI_INGREEK }   /* ingreekandcoptic */,
+  {     2,   339,  3152,   4,  11, UNI_CCC__8 }   /* ccc=kanavoicing */,
+  {    13,  6165,  5682,   3,   5, UNI_SC__GREK }   /* sc=greek */,
+  {     0,   875,  5980,   4,   3, UNI_UIDEO }   /* uideo=t */,
+  {     0,  7887,  7380,  28,   4, UNI_CJKEXTB }   /* incjkunifiedideographsextensionb */,
+  {    64,  5553,   934,  21,   6, -UNI_CWCM }   /* changeswhencasemapped=false */,
+  {    47,  4519,  6193,  12,   5, UNI_CYRILLICSUP }   /* block=cyrillicsup */,
+  {     0,    23,     0,   4,   0, UNI_AHOM }   /* ahom */,
+  {     0,  5168,  3075,   6,   9, UNI__PERL_ANY_FOLDS }   /* _perl_any_folds */,
+  {    49,  5799,  5149,  14,   7, UNI_SUPARROWSA }   /* insupplementalarrowsa */,
+  {     2,  7274,  4827,   9,  18, UNI_ZP }   /* category=paragraphseparator */,
+  {     1,  5391,     0,  11,   0, UNI_CHEROKEESUP }   /* cherokeesup */,
+  {     0,  6427,     0,  13,   0, UNI_jg_values_index }   /* joininggroup= */,
+  {     0,   895,  1070,   5,   2, UNI_AGE__3_DOT_1 }   /* age=v31 */,
+  {     1,  3817,   290,  15,   2, UNI_NV__1_SLASH_40 }   /* numericvalue=1/40 */,
+  {    68,  7648,   366,  18,   3, UNI_DT__SQR }   /* decompositiontype=sqr */,
+  {     5,   461,  4060,   2,   7, UNI_BRAI }   /* isbraille */,
+  {     3,  1667,  1385,   4,   6, UNI_INTHAANA }   /* blk=thaana */,
+  {    13,  2324,  5031,   6,  14, UNI_INHANIFIROHINGYA }   /* block=hanifirohingya */,
+  {    30,   622,  2931,   6,   3, UNI_EXTPICT }   /* extpict=t */,
+  {     2,  1726,  4659,   8,   9, UNI_ARABICEXTC }   /* isarabicextendedc */,
+  {    17,  4424,  1117,  17,   4, UNI_TAGB }   /* scriptextensions=tagb */,
+  {     0,  1065,   290,   5,   2, UNI_NV__1_SLASH_40 }   /* nv=1/40 */,
+  {    21,  2324,  8278,   6,  33, UNI_MISCMATHSYMBOLSB }   /* block=miscellaneousmathematicalsymbolsb */,
+  {     1,   309,  1241,   2,   7, UNI_NB }   /* innoblock */,
+  {     0,   461,  5876,   2,  12, UNI_SUNDANESESUP }   /* issundanesesup */,
+  {     0,   309,  2411,   2,   8, UNI_INKATAKANA }   /* inkatakana */,
+  {    33,  6165,   718,   3,   7, UNI_SC__KNDA }   /* sc=kannada */,
+  {     0,  2536,   715,   3,   3, UNI_JG__AIN }   /* jg=ain */,
+  {    13,  2004,  3268,   5,   5, UNI_POSIXALNUM }   /* posixalnum */,
+  {     0,  1667,  3663,   4,  14, UNI_DEVANAGARIEXTA }   /* blk=devanagariexta */,
+  {     3,  4569,   934,   5,   2, -UNI_XPOSIXUPPER }   /* upper=f */,
+  {     0,  7011,   119,  24,   2, UNI_CCC__AL }   /* canonicalcombiningclass=al */,
+  {   105,   461,  2247,   2,   4, UNI_HUNG }   /* ishung */,
+  {   121,  4424,  6642,  17,   4, UNI_BRAH }   /* scriptextensions=brah */,
+  {     6,  2766,   255,   3,   2, UNI_CF }   /* gc=cf */,
+  {    38,  1823,  1484,   7,   4, UNI_SC__BUGI }   /* script=bugi */,
+  {     1,  2317,     0,   6,   0, UNI_N }   /* number */,
+  {     0,   339,   345,   5,   2, UNI_CCC__118 }   /* ccc=118 */,
+  {    10,  4424,  1685,  17,  11, UNI_CPMN }   /* scriptextensions=cyprominoan */,
+  {     0,  3878,  1805,  14,   4, UNI_NV__90000 }   /* numericvalue=90000 */,
+  {     2,  5916,   599,  21,   2, -UNI_LOE }   /* logicalorderexception=n */,
+  {     0,  6165,  4060,   3,   4, UNI_BRAI }   /* sc=brai */,
+  {     0,  1409,  1505,   5,   4, UNI_LATINEXTA }   /* latinexta */,
+  {     1,  6165,   216,   3,   4, UNI_TOTO }   /* sc=toto */,
+  {   136,  6165,  1367,   3,   4, UNI_PAUC }   /* sc=pauc */,
+  {     0,  1667,  7036,   4,  26, UNI_HALFANDFULLFORMS }   /* blk=halfwidthandfullwidthforms */,
+  {     2,  6165,    47,   3,   4, UNI_SC__CAKM }   /* sc=cakm */,
+  {    48,  1823,   244,   7,   4, UNI_ZZZZ }   /* script=zzzz */,
+  {     0,  7495,   559,  28,   2, UNI_CCC__107 }   /* canonicalcombiningclass=ccc107 */,
+  {     2,   120,   122,   2,   2, UNI_LAO }   /* laoo */,
+  {    36,  1734,  1854,   3,   3, UNI_SYLO }   /* issylo */,
+  {     0,   461,  1015,   2,   4, UNI_TELU }   /* istelu */,
+  {     1,  1198,  1505,   5,   4, UNI_CJKEXTA }   /* incjkexta */,
+  {    93,  1823,  1819,   7,   4, UNI_SC__MONG }   /* script=mong */,
+  {     0,  6165,  1358,   3,   4, UNI_PALM }   /* sc=palm */,
+  {     0,   895,  1318,   6,   2, UNI_AGE__12 }   /* age=v120 */,
+  {     2,   461,   269,   2,   2, UNI_ZP }   /* iszp */,
+  {     2,  1454,   274,   2,   1, UNI_sd_values_index }   /* sd= */,
+  {     0,   309,  1522,   2,   8, UNI_INUGARITIC }   /* inugaritic */,
+  {     0,  2536,  4761,   4,   4, UNI_JG__ALAPH }   /* jg=alaph */,
+  {     0,  2324,  1966,   7,   9, UNI_COMPATJAMO }   /* block=compatjamo */,
+  {     0,  7011,   768,  24,   2, UNI_CCC__27 }   /* canonicalcombiningclass=27 */,
+  {     4,  5156,  3053,  10,  11, UNI_WB__DQ }   /* wordbreak=doublequote */,
+  {     0,  6427,  4221,  13,  14, UNI_JG__HAMZAONHEHGOAL }   /* joininggroup=hamzaonhehgoal */,
+  {     0,  2324,   322,   6,   5, UNI_VSSUP }   /* block=vssup */,
+  {     0,  1667,  1144,   4,   9, UNI_INBHAIKSUKI }   /* blk=bhaiksuki */,
+  {     2,  1823,  4651,   7,   8, UNI_SC__BOPO }   /* script=bopomofo */,
+  {     0,  7011,  7425,  24,   4, UNI_CCC__216 }   /* canonicalcombiningclass=atar */,
+  {     0,  7267,  8356,   7,  10, UNI_C }   /* generalcategory=c */,
+  {     0,  2324,  6487,   6,  13, UNI_ZNAMENNYMUSIC }   /* block=znamennymusic */,
+  {    84,  6165,   188,   3,   4, UNI_SGNW }   /* sc=sgnw */,
+  {     2,  2259,  1107,   3,   3, UNI_TALU }   /* istalu */,
+  {     3,  1734,  6671,   3,  21, UNI_MODIFIERLETTERS }   /* isspacingmodifierletters */,
+  {     1,  6165,  4461,   3,  11, UNI_SGNW }   /* sc=signwriting */,
+  {     0,  4360,   380,  10,   6, UNI_LB__HY }   /* linebreak=hyphen */,
+  {    20,  2752,   599,   5,   3, -UNI_EMOJI }   /* emoji=no */,
+  {     0,   461,  1255,   2,   4, UNI_SIDD }   /* issidd */,
+  {     4,  7267,  3558,  16,   9, UNI_Z }   /* generalcategory=separator */,
+  {    45,   339,  2165,   5,   2, UNI_WB__EB }   /* ccc=133 */,
+  {     7,  4360,  2944,  10,  11, UNI_LB__BB }   /* linebreak=breakbefore */,
+  {     3,   253,     0,   4,   0, UNI_CWCF }   /* cwcf */,
+  {   134,  4569,   353,   5,   4, UNI_XPOSIXUPPER }   /* upper=yes */,
+  {     0,  3892,   599,  16,   3, -UNI_STERM }   /* sentenceterminal=no */,
+  {     2,  3692,     0,   7,   0, UNI_LISUSUP }   /* lisusup */,
+  {     1,  2966,   819,   3,   6, UNI_SC__SHRD }   /* insharada */,
+  {     1,  4424,  1975,  17,  10, UNI_SOGO }   /* scriptextensions=oldsogdian */,
+  {    13,  7404,   422,  11,   2, UNI_BC__RLI }   /* bidiclass=rli */,
+  {     1,  2287,  2360,   3,  10, UNI_IN__NA }   /* in=unassigned */,
+  {     0,   339,  2234,   3,   2, UNI_CCC__8 }   /* ccc=8 */,
+  {     0,    54,     0,   2,   0, UNI_SC }   /* sc */,
+  {     6,  7495,  2092,  27,   2, UNI_CCC__25 }   /* canonicalcombiningclass=ccc25 */,
+  {     0,  6165,  2068,   3,   4, UNI_MEND }   /* sc=mend */,
+  {     0,  1667,  4060,   4,   7, UNI_BRAI }   /* blk=braille */,
+  {     0,  1200,  2373,   2,   5, UNI_CJKEXTE }   /* cjkexte */,
+  {    64,  5391,     0,   8,   0, UNI_CHER }   /* cherokee */,
+  {    25,  4809,     0,  18,   0, UNI_ORNAMENTALDINGBATS }   /* ornamentaldingbats */,
+  {     3,  8601,  5409,   7,  11, UNI_SMALLKANAEXT }   /* block=smallkanaext */,
+  {    67,   461,  5553,   2,  21, UNI_CWCM }   /* ischangeswhencasemapped */,
+  {     0,    21,  5820,   1,  18, UNI_ENCLOSEDALPHANUMSUP }   /* enclosedalphanumsup */,
+  {     0,  6165,  5353,   3,  20, UNI_PHLI }   /* sc=inscriptionalpahlavi */,
+  {     0,  6165,   470,   3,   4, UNI_TNSA }   /* sc=tnsa */,
+  {     0,   302,   353,   5,   4, UNI__PERL_PATWS }   /* patws=yes */,
+  {     0,  4161,   934,   9,   2, -UNI_DIA }   /* diacritic=f */,
+  {     0,  6870,   934,  20,   6, -UNI_CE }   /* compositionexclusion=false */,
+  {     0,   309,  5838,   2,  19, UNI_JAMOEXTA }   /* inhanguljamoextendeda */,
+  {     6,  3817,   389,  15,   1, UNI_NV__1_SLASH_6 }   /* numericvalue=1/6 */,
+  {     0,  2280,   566,  10,   3, UNI_IN__9 }   /* presentin=9.0 */,
+  {     0,  7198,  7707,  15,  17, UNI_SUPPUAB }   /* blk=supplementaryprivateuseareab */,
+  {     0,  1065,  2115,   4,   8, UNI_NV__1_SLASH_64 }   /* nv=1.562e-02 */,
+  {    49,  2004,  1479,   5,   5, UNI_POSIXSPACE }   /* posixspace */,
+  {     1,  4424,   369,  17,   6, UNI_GOTH }   /* scriptextensions=gothic */,
+  {     0,  8343,  1517,  22,   5, UNI_INSC__BINDU }   /* indicsyllabiccategory=bindu */,
+  {    49,  2180,   515,   4,   2, UNI_NV__4_SLASH_5 }   /* nv=4/5 */,
+  {    95,  4424,  1465,  17,  10, UNI_DIAK }   /* scriptextensions=divesakuru */,
+  {     0,  1065,   766,   4,   3, UNI_NV__15_SLASH_2 }   /* nv=15/2 */,
+  {     1,  2324,  1125,   6,   8, UNI_INTIFINAGH }   /* block=tifinagh */,
+  {     4,  1906,  1505,   8,   4, UNI_KANAEXTA }   /* blk=kanaexta */,
+  {     0,  1667,  3567,   4,  16, UNI_HALFANDFULLFORMS }   /* blk=halfandfullforms */,
+  {     0,  7274,  4554,   9,  15, UNI_TITLE }   /* category=titlecaseletter */,
+  {     0,   461,  1397,   2,   3, UNI_IDS }   /* isids */,
+  {     8,  2324,  7449,   6,  18, UNI_PHONETICEXT }   /* block=phoneticextensions */,
+  {     0,   339,  2719,   2,   3, UNI_CCC__R }   /* ccc=r */,
+  {     8,  3878,  2184,  14,   8, UNI_NV__11_SLASH_12 }   /* numericvalue=9.167e-01 */,
+  {     0,  1200,  6400,   3,  11, UNI_CJKRADICALSSUP }   /* cjkradicalssup */,
+  {     0,  2324,  7564,   6,  17, UNI_ANCIENTGREEKMUSIC }   /* block=ancientgreekmusic */,
+  {     1,  7267,    54,  16,   2, UNI_SC }   /* generalcategory=sc */,
+  {     1,  1102,   739,   4,   4, UNI_MAND }   /* scx=mand */,
+  {     1,  7011,   274,  23,   2, UNI_CCC__B }   /* canonicalcombiningclass=b */,
+  {     0,   461,    94,   2,   4, UNI_GURU }   /* isguru */,
+  {     2,  4424,  1255,  17,   4, UNI_SIDD }   /* scriptextensions=sidd */,
+  {    18,  4424,   688,  17,   5, UNI_BATK }   /* scriptextensions=batak */,
+  {    58,  6450,  2304,  15,   8, UNI_SB__SC }   /* sentencebreak=scontinue */,
+  {     1,  2287,  2656,   3,   3, UNI_IN__5 }   /* in=5.0 */,
+  {     0,   309,  6510,   2,  24, UNI_HIGHPUSURROGATES }   /* inhighprivateusesurrogates */,
+  {     0,  7134,   585,  26,   2, UNI_PCM }   /* prependedconcatenationmark=t */,
+  {     0,  1102,   438,   4,   4, UNI_OLCK }   /* scx=olck */,
+  {   116,  1726,  2312,   3,  12, UNI_AEGEANNUMBERS }   /* isaegeannumbers */,
+  {     1,    33,  6671,   1,  21, UNI_MODIFIERLETTERS }   /* spacingmodifierletters */,
+  {     3,  4424,  1191,  17,   7, UNI_BENG }   /* scriptextensions=bengali */,
+  {     2,    10,  6597,   1,  21, UNI_MISCTECHNICAL }   /* miscellaneoustechnical */,
+  {     0,  5553,   585,  21,   5, UNI_CWCM }   /* changeswhencasemapped=true */,
+  {   101,  2432,  1505,   9,   4, UNI_MYANMAREXTA }   /* inmyanmarexta */,
+  {     1,  1823,  2735,   6,   5, UNI_SC__ARAB }   /* script=arab */,
+  {     1,  8538,  1343,  20,   2, UNI_VO__TU }   /* verticalorientation=tu */,
+  {   134,  4424,  4896,  17,   5, UNI_BAMU }   /* scriptextensions=bamum */,
+  {    22,  6866,   585,  24,   5, UNI_COMPEX }   /* fullcompositionexclusion=true */,
+  {     3,  5746,  1135,   4,   6, UNI_INVITHKUQI }   /* invithkuqi */,
+  {     5,  8246,  4107,  24,  12, UNI_INPC__LEFTANDRIGHT }   /* indicpositionalcategory=leftandright */,
+  {     0,    30,  7854,   1,  33, UNI_INIDC }   /* isideographicdescriptioncharacters */,
+  {     2,  1823,  3493,   6,   9, UNI_SC__CYRL }   /* script=cyrillic */,
+  {     1,  1667,  1914,   4,   7, UNI_UCASEXT }   /* blk=ucasext */,
+  {     1,  2324,  2468,   6,   6, UNI_IPAEXT }   /* block=ipaext */,
+  {    18,  7274,  3276,   9,  13, UNI_ME }   /* category=enclosingmark */,
+  {     3,   461,  4407,   2,  17, UNI_RI }   /* isregionalindicator */,
+  {     0,  2718,  5318,   3,   3, UNI_BC__RLE }   /* bc=rle */,
+  {     0,  3040,   934,  13,   2, -UNI_QMARK }   /* quotationmark=f */,
+  {    75,  1272,  4533,   5,   4, UNI_CJKEXTC }   /* iscjkextc */,
+  {    82,  4424,   152,  17,   4, UNI_OSGE }   /* scriptextensions=osge */,
+  {     0,  1522,     0,   4,   0, UNI_UGAR }   /* ugar */,
+  {     0,  1667,  5876,   4,  19, UNI_SUNDANESESUP }   /* blk=sundanesesupplement */,
+  {     0,   461,    78,   2,   4, UNI_DSRT }   /* isdsrt */,
+  {    24,   339,  1070,   4,   2, UNI_CCC__31 }   /* ccc=31 */,
+  {   129,  1102,  3228,   4,  15, UNI_ARMI }   /* scx=imperialaramaic */,
+  {     0,  2766,  4150,   3,  11, UNI_P }   /* gc=punctuation */,
+  {     0,  4424,  1325,  17,   4, UNI_ITAL }   /* scriptextensions=ital */,
+  {     0,  1102,  1021,   4,   6, UNI_WCHO }   /* scx=wancho */,
+  {    24,  1914,     0,   4,   0, UNI_UCAS }   /* ucas */,
+  {     1,  2514,  6597,   3,  21, UNI_MISCTECHNICAL }   /* ismiscellaneoustechnical */,
+  {    13,   461,  4506,   2,  14, UNI_LATINEXTB }   /* islatinextendedb */,
+  {     0,  4740,     0,   4,   0, UNI_TALE }   /* tale */,
+  {     0,  1065,  1312,   5,   3, UNI_NV__1_SLASH_160 }   /* nv=1/160 */,
+  {     0,  1102,   128,   4,   4, UNI_MEDF }   /* scx=medf */,
+  {    26,  6165,   683,   3,   4, UNI_SC__TAKR }   /* sc=takr */,
+  {     0,  2324,  3475,   6,  15, UNI_INZANABAZARSQUARE }   /* block=zanabazarsquare */,
+  {    10,   302,   353,   5,   2, UNI__PERL_PATWS }   /* patws=y */,
+  {     0,  5255,   353,  20,   4, UNI_EXTPICT }   /* extendedpictographic=yes */,
+  {     2,  3817,   766,  14,   3, UNI_NV__15_SLASH_2 }   /* numericvalue=15/2 */,
+  {     0,  2324,  5857,   6,  19, UNI_MONGOLIANSUP }   /* block=mongoliansupplement */,
+  {     0,  1823,  1234,   7,   4, UNI_SC__MULT }   /* script=mult */,
+  {    24,   510,   295,   4,   1, UNI_NV__39 }   /* nv=39 */,
+  {     0,  1667,  2811,   4,   5, UNI_INKHMER }   /* blk=khmer */,
+  {     7,  1027,     0,   4,   0, UNI_YEZI }   /* yezi */,
+  {    17,   733,  7241,   3,  26, UNI_ENCLOSEDCJK }   /* inenclosedcjklettersandmonths */,
+  {     0,  2324,   688,   6,   5, UNI_INBATAK }   /* block=batak */,
+  {     3,  7267,  4150,  16,  11, UNI_P }   /* generalcategory=punctuation */,
+  {     1,  2324,   634,   6,   7, UNI_INHANUNOO }   /* block=hanunoo */,
+  {     5,   832,   274,   5,   1, UNI_sterm_values_index }   /* sterm= */,
+  {     0,  1823,  2068,   7,   4, UNI_MEND }   /* script=mend */,
+  {    56,   309,  4002,   2,   4, UNI_INMODI }   /* inmodi */,
+  {    23,  1455,   585,  10,   5, UNI_DEP }   /* deprecated=true */,
+  {   258,  1894,   599,   5,   2, -UNI_BIDIM }   /* bidim=n */,
+  {     7,  2391,  6193,   8,  12, UNI_CYRILLICSUP }   /* incyrillicsupplement */,
+  {     0,  1455,     0,   3,   0, UNI_DEP }   /* dep */,
+  {     0,   298,   585,   2,   2, UNI_RI }   /* ri=t */,
+  {     4,  7383,     0,  11,   0, UNI_BC__L }   /* bidiclass=l */,
+  {     0,     2,  3163,   1,  14, UNI_CONTROLPICTURES }   /* controlpictures */,
+  {     0,     2,   352,   1,   3, UNI_CE }   /* ce=y */,
+  {     7,   426,     0,   4,   0, UNI_MRO }   /* mroo */,
+  {     3,  1065,  2657,   4,   8, UNI_NV__1_SLASH_10 }   /* nv=1.000e-01 */,
+  {     0,   461,   739,   2,   4, UNI_MAND }   /* ismand */,
+  {     0,  4424,  1294,  17,   9, UNI_NBAT }   /* scriptextensions=nabataean */,
+  {     2,  1102,   840,   4,   7, UNI_TGLG }   /* scx=tagalog */,
+  {    18,  1102,   102,   4,   4, UNI_HMNG }   /* scx=hmng */,
+  {     3,   292,  3875,   2,   3, UNI_NV__80 }   /* nv=80 */,
+  {     0,  1272,  5694,   3,  18, UNI_COUNTINGROD }   /* iscountingrodnumerals */,
+  {   214,  1102,   608,   4,   7, UNI_ELBA }   /* scx=elbasan */,
+  {     6,  6165,   102,   3,   4, UNI_HMNG }   /* sc=hmng */,
+  {     1,  1823,  1978,   7,   4, UNI_SC__SOGD }   /* script=sogd */,
+  {    14,  3391,   288,  13,   2, UNI_NV__30 }   /* numericvalue=30 */,
+  {     3,   461,  4043,   2,  17, UNI_IDSB }   /* isidsbinaryoperator */,
+  {     7,  1823,  2441,   7,   4, UNI_SC__NAND }   /* script=nand */,
+  {    13,  4424,  3475,  17,  15, UNI_ZANB }   /* scriptextensions=zanabazarsquare */,
+  {     1,  7084,  1037,   8,   4, UNI_ARABICEXTB }   /* inarabicextb */,
+  {     0,  1262,     0,   7,   0, UNI_SOYO }   /* soyombo */,
+  {     0,  2432,  7620,   3,  28, UNI_MISCARROWS }   /* inmiscellaneoussymbolsandarrows */,
+  {    32,  4360,     0,  10,   0, UNI_lb_values_index }   /* linebreak= */,
+  {     0,  2324,   997,   6,   6, UNI_INKAITHI }   /* block=kaithi */,
+  {   159,  3502,  1505,  12,   4, UNI_ETHIOPICEXTA }   /* blk=ethiopicexta */,
+  {     0,  1098,     0,   4,   0, UNI_NSHU }   /* nshu */,
+  {    24,  7591,  1933,   3,   9, UNI_LB__AI }   /* lb=ambiguous */,
+  {     0,  2766,  4602,   3,  18, UNI_PI }   /* gc=initialpunctuation */,
+  {     0,  1667,   997,   4,   6, UNI_INKAITHI }   /* blk=kaithi */,
+  {     0,  7011,   391,  25,   2, UNI_CCC__DA }   /* canonicalcombiningclass=234 */,
+  {     0,  7274,   363,   9,   2, UNI_SM }   /* category=sm */,
+  {   195,   461,  2780,   2,   4, UNI_COPT }   /* iscopt */,
+  {     0,   309,  5031,   2,  14, UNI_INHANIFIROHINGYA }   /* inhanifirohingya */,
+  {     0,   887,  2083,   5,   2, UNI_IN__1_DOT_1 }   /* age=1.1 */,
+  {    12,   461,  7480,   2,  14, UNI_PUA }   /* isprivateusearea */,
+  {    31,  4424,  1509,  17,   4, UNI_JAVA }   /* scriptextensions=java */,
+  {     1,  7198,  4441,   5,  16, UNI_SMALLFORMS }   /* blk=smallformvariants */,
+  {     0,   309,  6776,   2,  14, UNI_MEETEIMAYEKEXT }   /* inmeeteimayekext */,
+  {     0,  1667,  6514,   4,  10, UNI_PUA }   /* blk=privateuse */,
+  {     0,  1391,  3064,   3,  11, UNI_WB__SQ }   /* wb=singlequote */,
+  {     3,  1618,     0,  10,   0, UNI_SD }   /* softdotted */,
+  {    42,  1801,     0,   5,   0, UNI_NV__10 }   /* nv=10 */,
+  {     1,  7011,  2121,  25,   2, UNI_CCC__202 }   /* canonicalcombiningclass=202 */,
+  {     0,  1102,   422,   4,   4, UNI_LINA }   /* scx=lina */,
+  {     2,   461,  5876,   2,   9, UNI_SUND }   /* issundanese */,
+  {    18,  3832,   343,  15,   2, UNI_NV__5_SLASH_12 }   /* numericvalue=5/12 */,
+  {     1,  3391,  1312,  14,   5, UNI_NV__216000 }   /* numericvalue=216000 */,
+  {    11,  7648,  1168,  18,   6, UNI_DT__MED }   /* decompositiontype=medial */,
+  {     0,  4424,    63,  17,   4, UNI_CPMN }   /* scriptextensions=cpmn */,
+  {     0,   253,   599,   4,   3, -UNI_CWCF }   /* cwcf=no */,
+  {    32,  4360,  1669,   8,   4, UNI_LB__CJ }   /* linebreak=cj */,
+  {     0,  2718,   535,   2,   2, UNI_BC__S }   /* bc=s */,
+  {     0,  6163,  2452,   5,   8, UNI_INSC__AVAGRAHA }   /* insc=avagraha */,
+  {    14,  6163,  5323,   5,  15, UNI_INSC__MODIFYINGLETTER }   /* insc=modifyingletter */,
+  {     0,   292,  1313,   3,   2, UNI_NV__60 }   /* nv=60 */,
+  {   136,  7084,  1723,   8,   3, UNI_ARABICPFB }   /* inarabicpfb */,
+  {    96,  2523,  4150,   8,   5, UNI_XPOSIXPUNCT }   /* isxposixpunct */,
+  {     3,  5616,   353,  21,   4, UNI_CWU }   /* changeswhenuppercased=yes */,
+  {     2,  3832,   763,  14,   2, UNI_NV__5_SLASH_6 }   /* numericvalue=5/6 */,
+  {    34,  1409,  4659,   5,   9, UNI_LATINEXTC }   /* latinextendedc */,
+  {     4,  4424,  3538,  17,   7, UNI_CPRT }   /* scriptextensions=cypriot */,
+  {     2,  1823,    67,   7,   4, UNI_SC__CPRT }   /* script=cprt */,
+  {     0,  3391,  2147,  14,   8, UNI_NV__1_SLASH_4 }   /* numericvalue=2.500e-01 */,
+  {     0,  2324,   571,   6,   7, UNI_INAVESTAN }   /* block=avestan */,
+  {   194,    30,  4969,   1,   6, UNI_EMOJI }   /* isemoji */,
+  {     0,  1726,  1723,   8,   3, UNI_ARABICPFB }   /* isarabicpfb */,
+  {     1,   377,     0,   3,   0, UNI_EXT }   /* ext */,
+  {     2,  7537,  6621,   9,   3, UNI_XPOSIXALPHA }   /* alphabetic=t */,
+  {     4,   653,     0,   5,   0, UNI_BUHD }   /* buhid */,
+  {     1,  2393,  4659,   8,   9, UNI_CYRILLICEXTC }   /* cyrillicextendedc */,
+  {     1,  6450,     4,  14,   2, UNI_SB__LO }   /* sentencebreak=lo */,
+  {     0,  7804,   934,  11,   6, -UNI_IDEO }   /* ideographic=false */,
+  {     1,  1734,  1110,   3,   7, UNI_SPECIALS }   /* isspecials */,
+  {     1,  1823,   180,   7,   4, UNI_RUNR }   /* script=runr */,
+  {    89,  1102,  1834,   4,   4, UNI_SORA }   /* scx=sora */,
+  {     0,   461,   375,   2,   5, UNI_GREXT }   /* isgrext */,
+  {     0,  3204,     0,  14,   0, UNI_GREXT }   /* graphemeextend */,
+  {    19,   461,  6900,   2,  14, UNI_BYZANTINEMUSIC }   /* isbyzantinemusic */,
+  {   104,  4795,  2657,  14,   8, UNI_NV__3_SLASH_5 }   /* numericvalue=6.000e-01 */,
+  {     2,  7274,  2360,   9,  10, UNI_CN }   /* category=unassigned */,
+  {     2,   733,  7915,   3,  29, UNI_ENCLOSEDALPHANUMSUP }   /* inenclosedalphanumericsupplement */,
+  {    42,  5156,   298,  10,   2, UNI_RI }   /* wordbreak=ri */,
+  {     2,  4424,  5353,  17,  20, UNI_PHLI }   /* scriptextensions=inscriptionalpahlavi */,
+  {     0,  6165,  1582,   3,  10, UNI_PHNX }   /* sc=phoenician */,
+  {     0,  3093,   598,  12,   3, -UNI_POSIXXDIGIT }   /* asciihexdigit=n */,
+  {     8,  1667,  6487,   4,  23, UNI_ZNAMENNYMUSIC }   /* blk=znamennymusicalnotation */,
+  {     4,  7591,   318,   3,   2, UNI_LB__AI }   /* lb=ai */,
+  {    38,  1009,     0,   4,   0, UNI_LYCI }   /* lyci */,
+  {     0,  3014,  1318,  12,   2, UNI_IN__12 }   /* presentin=v120 */,
+  {     0,  1667,  1448,   7,   7, UNI_CJKSTROKES }   /* blk=cjkstrokes */,
+  {    48,  1667,  6692,   4,  22, UNI_TRANSPORTANDMAP }   /* blk=transportandmapsymbols */,
+  {     0,   309,  1992,   2,  10, UNI_YIRADICALS }   /* inyiradicals */,
+  {    22,  2930,  1427,   2,   2, UNI_JT__C }   /* jt=c */,
+  {     0,  1667,  5392,   5,  17, UNI_CHEROKEESUP }   /* blk=cherokeesupplement */,
+  {     1,  2208,  1314,   4,   3, UNI_NV__5000 }   /* nv=5000 */,
+  {     7,  4424,   847,  17,   7, UNI_LANA }   /* scriptextensions=taitham */,
+  {     0,    90,     0,   4,   0, UNI_GUJR }   /* gujr */,
+  {     0,  1823,   172,   7,   4, UNI_RJNG }   /* script=rjng */,
+  {     0,  4424,  1592,  17,  10, UNI_SAUR }   /* scriptextensions=saurashtra */,
+  {    32,   461,  1209,   2,   4, UNI_THAI }   /* isthai */,
+  {     3,  7591,  4650,   3,   2, UNI_LB__BB }   /* lb=bb */,
+  {     2,   461,  3228,   2,  15, UNI_ARMI }   /* isimperialaramaic */,
+  {     0,  2393,  6193,   6,  12, UNI_CYRILLICSUP }   /* cyrillicsupplement */,
+  {     5,  1728,  4531,   4,   6, UNI_ARABICEXTC }   /* arabicextc */,
+  {    22,  3014,   290,  11,   2, UNI_IN__4 }   /* presentin=v40 */,
+  {   272,  4391,  1805,  14,   4, UNI_NV__30000 }   /* numericvalue=30000 */,
+  {     0,  7214,  2101,  25,   2, UNI_CCC__129 }   /* canonicalcombiningclass=129 */,
+  {     1,   461,    31,   2,   4, UNI_AVST }   /* isavst */,
+  {     0,   461,  6185,   2,  10, UNI_GLAG }   /* isglagolitic */,
+  {     0,   461,  4161,   2,  15, UNI_DIACRITICALSEXT }   /* isdiacriticalsext */,
+  {    12,  3863,     0,  14,   0, UNI_NV__8 }   /* numericvalue=8 */,
+  {     0,  1102,   414,   4,   3, UNI_HAN }   /* scx=han */,
+  {    28,  1823,  4176,   7,   6, UNI_SC__HANG }   /* script=hangul */,
+  {     1,   895,   344,   5,   2, UNI_AGE__2_DOT_1 }   /* age=v21 */,
+  {   146,  1823,   648,   7,   5, UNI_SC__ADLM }   /* script=adlam */,
+  {     0,  3014,  2093,  12,   2, UNI_IN__15 }   /* presentin=v150 */,
+  {     0,  2403,  2374,   8,   8, UNI_ETHIOPICEXT }   /* ethiopicextended */,
+  {    17,  4371,   584,   5,   6, UNI_XPOSIXSPACE }   /* wspace=true */,
+  {     0,  3177,  7048,  15,   9, UNI_EA__F }   /* eastasianwidth=fullwidth */,
+  {    13,  7274,  1427,   8,   3, UNI_XPOSIXCNTRL }   /* category=cc */,
+  {     3,  5168,  2302,   6,   6, UNI__PERL_IDCONT }   /* _perl_idcont */,
+  {     0,  1823,   683,   7,   5, UNI_SC__TAKR }   /* script=takri */,
+  {     3,  1454,   934,   2,   6, -UNI_SD }   /* sd=false */,
+  {    33,   461,   136,   2,   4, UNI_MYMR }   /* ismymr */,
+  {    35,   517,  2107,   4,   8, UNI_NV__15_SLASH_2 }   /* nv=7.500e+00 */,
+  {    17,    55,     0,   4,   0, UNI_CHAM }   /* cham */,
+  {     8,  1728,  4714,   5,  11, UNI_ARABICSUP }   /* arabicsupplement */,
+  {   114,  4424,  1909,  16,   5, UNI_KANA }   /* scriptextensions=kana */,
+  {     1,  3021,  2093,   5,   2, UNI_IN__15 }   /* in=v150 */,
+  {     0,  3635,     0,   9,   0, UNI_LATINEXTE }   /* latinexte */,
+  {     4,   461,  1262,   2,   4, UNI_SOYO }   /* issoyo */,
+  {     0,  6165,   120,   3,   4, UNI_LAO }   /* sc=laoo */,
+  {     4,  1667,  2256,   4,   8, UNI_PHAISTOS }   /* blk=phaistos */,
+  {     1,   309,  5857,   2,  19, UNI_MONGOLIANSUP }   /* inmongoliansupplement */,
+  {    22,  2324,  5373,   6,  18, UNI_TAIXUANJING }   /* block=taixuanjingsymbols */,
+  {    36,  1942,  5671,  11,   3, -UNI_GRBASE }   /* graphemebase=n */,
+  {     0,  4424,  1234,  17,   7, UNI_MULT }   /* scriptextensions=multani */,
+  {   264,  2324,   854,   6,   7, UNI_INTAIVIET }   /* block=taiviet */,
+  {     1,  2324,  4725,   6,  16, UNI_TANGUTSUP }   /* block=tangutsupplement */,
+  {     9,  5637,   281,  21,   2, UNI_GCB__XX }   /* graphemeclusterbreak=xx */,
+  {    12,  2232,  2172,   4,   8, UNI_NV__7_SLASH_8 }   /* nv=8.750e-01 */,
+  {     1,  2525,  3100,   6,   6, UNI_XPOSIXXDIGIT }   /* xposixxdigit */,
+  {     8,  1823,  1853,   7,  11, UNI_SC__SYLO }   /* script=sylotinagri */,
+  {     0,   461,   144,   2,   4, UNI_NEWA }   /* isnewa */,
+  {     2,  1102,   120,   4,   3, UNI_LAO }   /* scx=lao */,
+  {    22,  1823,  1779,   7,  11, UNI_MEDF }   /* script=medefaidrin */,
+  {    65,   402,     0,   4,   0, UNI_ARMN }   /* armn */,
+  {     0,   461,  3349,   2,  15, UNI_MERC }   /* ismeroiticcursive */,
+  {     1,  3021,  1318,   5,   2, UNI_IN__12 }   /* in=v120 */,
+  {    64,   461,  1543,   2,  10, UNI_KHAR }   /* iskharoshthi */,
+  {     0,  2536,  4765,   3,   5, UNI_JG__ZHAIN }   /* jg=zhain */,
+  {    38,     2,   934,   3,   6, -UNI_CWL }   /* cwl=false */,
+  {    39,  6163,  7429,  14,  14, UNI_INSC__CONSONANTPRECEDINGREPHA }   /* insc=consonantprecedingrepha */,
+  {   138,  1823,   474,   7,   3, UNI_VAI }   /* script=vai */,
+  {     0,   461,   814,   2,   4, UNI_QAAI }   /* iszinh */,
+  {     4,  7591,  5092,   4,  15, UNI_LB__CP }   /* lb=closeparenthesis */,
+  {     0,  4569,   599,   5,   3, -UNI_XPOSIXUPPER }   /* upper=no */,
+  {     0,  4371,   352,   5,   5, UNI_XPOSIXSPACE }   /* wspace=yes */,
+  {    90,  2523,     0,  13,   0, UNI_XPOSIXBLANK }   /* isxposixblank */,
+  {     0,  4502,   129,  15,   3, UNI_LATINEXTF }   /* blk=latinextendedf */,
+  {     7,   271,  3463,   4,  12, UNI_WB__EB }   /* gcb=glueafterzwj */,
+  {    22,   461,     2,   2,   3, UNI_CWL }   /* iscwl */,
+  {     0,   940,   934,   6,   2, -UNI_COMPEX }   /* compex=f */,
+  {     2,  2301,   353,   4,   2, UNI_XIDC }   /* xidc=y */,
+  {     0,   461,  2068,   2,   4, UNI_MEND }   /* ismend */,
+  {     1,  5799,  1845,   5,   8, UNI_SUPERANDSUB }   /* insuperandsub */,
+  {     2,  1823,   402,   7,   4, UNI_ARMN }   /* script=armn */,
+  {     0,  6062,  5820,   7,  15, UNI_ENCLOSEDALPHANUM }   /* block=enclosedalphanum */,
+  {     0,  7084,  3791,   8,   4, UNI_ARABICMATH }   /* inarabicmath */,
+  {     0,  2483,   599,   5,   3, -UNI_CASED }   /* cased=no */,
+  {     8,  1978,     0,   7,   0, UNI_SOGD }   /* sogdian */,
+  {     2,   641,     0,   4,   0, UNI_hst_values_index }   /* hst= */,
+  {   131,   312,   934,   5,   2, -UNI_QMARK }   /* qmark=f */,
+  {    86,   552,   389,   4,   3, UNI_AGE__6_DOT_3 }   /* age=6.3 */,
+  {     2,  5235,  2961,  15,   5, UNI_PC }   /* connectorpunctuation */,
+  {    33,  1003,     0,   6,   0, UNI_LEPC }   /* lepcha */,
+  {     3,    32,   585,   2,   2, UNI_VS }   /* vs=t */,
+  {     0,  1272,  8214,   3,  32, UNI_DIACRITICALSEXT }   /* iscombiningdiacriticalmarksextended */,
+  {     2,   176,   178,   2,   2, UNI_ROHG }   /* rohg */,
+  {     1,  4043,   353,  17,   2, UNI_IDSB }   /* idsbinaryoperator=y */,
+  {     6,  1823,   317,   7,   5, UNI_SC__TALE }   /* script=taile */,
+  {    15,  2536,  2559,   3,  10, UNI_JG__KNOTTEDHEH }   /* jg=knottedheh */,
+  {     1,  5658,  6534,  10,   7, UNI_identifierstatus_values_index }   /* identifierstatus= */,
+  {     5,   510,     0,   4,   0, UNI_NV__3 }   /* nv=3 */,
+  {    13,  2718,  6021,  14,   8, UNI_BC__RLO }   /* bc=righttoleftoverride */,
+  {     5,   309,  4951,   2,  19, UNI_INEGYPTIANHIEROGLYPHS }   /* inegyptianhieroglyphs */,
+  {     0,  4424,  2852,  17,   4, UNI_MAHJ }   /* scriptextensions=mahj */,
+  {     6,  3538,     0,  16,   0, UNI_CYPRIOTSYLLABARY }   /* cypriotsyllabary */,
+  {     0,   521,   934,   6,   2, -UNI_PATSYN }   /* patsyn=f */,
+  {     2,  6165,   418,   3,   4, UNI_KHMR }   /* sc=khmr */,
+  {    50,   309,  8142,   2,  18, UNI_IDEOGRAPHICSYMBOLS }   /* inideographicsymbols */,
+  {     3,  1667,  5801,   4,  19, UNI_SUPARROWSB }   /* blk=supplementalarrowsb */,
+  {    18,  3391,   760,  13,   3, UNI_NV__1_SLASH_2 }   /* numericvalue=1/2 */,
+  {   143,  1102,   474,   4,   4, UNI_VAI }   /* scx=vaii */,
+  {    36,  1198,  4076,   3,  14, UNI_CURRENCYSYMBOLS }   /* incurrencysymbols */,
+  {     3,  1065,  2224,   4,   8, UNI_NV__1_SLASH_80 }   /* nv=1.250e-02 */,
+  {     2,  7495,   295,  28,   1, UNI_CCC__19 }   /* canonicalcombiningclass=ccc19 */,
+  {     0,    31,     0,   4,   0, UNI_AVST }   /* avst */,
+  {     2,  1728,  1723,   6,   3, UNI_ARABICPFB }   /* arabicpfb */,
+  {     8,   895,  2093,   6,   2, UNI_AGE__15 }   /* age=v150 */,
+  {     0,  3130,  6945,   7,  12, UNI_GEOMETRICSHAPES }   /* blk=geometricshapes */,
+  {   169,  2324,  7564,   6,  27, UNI_ANCIENTGREEKMUSIC }   /* block=ancientgreekmusicalnotation */,
+  {     0,  4424,   228,  17,   4, UNI_XSUX }   /* scriptextensions=xsux */,
+  {     1,  8538,     0,  20,   0, UNI_vo_values_index }   /* verticalorientation= */,
+  {     1,  2324,  4862,   6,   4, UNI_RUMI }   /* block=rumi */,
+  {     0,  6163,  6642,   5,  19, UNI_INSC__BRAHMIJOININGNUMBER }   /* insc=brahmijoiningnumber */,
+  {   128,   533,  4667,   3,   5, UNI_SB__CL }   /* sb=close */,
+  {    66,  1391,    21,   3,   2, UNI_WB__EX }   /* wb=ex */,
+  {     6,  6090,  2046,   7,  11, UNI_INMASARAMGONDI }   /* block=masaramgondi */,
+  {     0,  3633,  4533,   7,   4, UNI_LATINEXTC }   /* inlatinextc */,
+  {   392,  2621,     0,   9,   0, UNI__PERL_SURROGATE }   /* surrogate */,
+  {     0,  4424,   140,  17,   4, UNI_NARB }   /* scriptextensions=narb */,
+  {     0,  2324,  6586,   6,  11, UNI_NUMBERFORMS }   /* block=numberforms */,
+  {     0,  2002,   248,   7,   5, UNI_POSIXCNTRL }   /* isposixcntrl */,
+  {     4,  1102,  1543,   4,   4, UNI_KHAR }   /* scx=khar */,
+  {     9,   271,  4407,   4,  17, UNI_RI }   /* gcb=regionalindicator */,
+  {     0,  1823,  4951,   7,  19, UNI_EGYP }   /* script=egyptianhieroglyphs */,
+  {     3,   309,  2811,   2,   5, UNI_INKHMER }   /* inkhmer */,
+  {     1,  4424,   678,  17,   5, UNI_RUNR }   /* scriptextensions=runic */,
+  {     0,  5637,  1612,  21,   2, UNI_LB__LF }   /* graphemeclusterbreak=lf */,
+  {     0,  3984,   353,  17,   2, UNI_EPRES }   /* emojipresentation=y */,
+  {     0,  2018,    44,  12,   1, UNI_JT__U }   /* joiningtype=u */,
+  {     1,   461,  6642,   2,   4, UNI_BRAH }   /* isbrah */,
+  {     0,   461,  2068,   2,  12, UNI_MEND }   /* ismendekikakui */,
+  {     3,  4377,   353,  14,   2, UNI_DT__NONE }   /* nfkdquickcheck=y */,
+  {     1,  1397,   585,   3,   2, UNI_IDS }   /* ids=t */,
+  {    22,   461,   333,   2,   6, UNI_CARI }   /* iscarian */,
+  {    69,  4360,    68,  10,   2, UNI_LB__PR }   /* linebreak=pr */,
+  {     4,  4002,  5118,   8,   7, UNI_MODIFIERLETTERS }   /* modifierletters */,
+  {     3,  2766,   326,   3,   2, UNI_PF }   /* gc=pf */,
+  {     1,   693,  4810,   3,  17, UNI_ORNAMENTALDINGBATS }   /* isornamentaldingbats */,
+  {     1,    30,  6399,   1,   8, UNI_RADICAL }   /* isradical */,
+  {     2,   461,  1358,   2,   4, UNI_PALM }   /* ispalm */,
+  {    10,  5216,  1037,  11,   4, UNI_LATINEXTB }   /* block=latinextb */,
+  {    10,  2324,  5857,   6,  12, UNI_MONGOLIANSUP }   /* block=mongoliansup */,
+  {     2,  4424,   854,  17,   7, UNI_TAVT }   /* scriptextensions=taiviet */,
+  {    48,  2324,  1505,   9,   4, UNI_CJKEXTA }   /* block=cjkexta */,
+  {     0,     8,   274,   3,   1, UNI_pcm_values_index }   /* pcm= */,
+  {   117,  2208,  1805,   4,   5, UNI_NV__500000 }   /* nv=500000 */,
+  {     2,  1823,   369,   7,   4, UNI_GOTH }   /* script=goth */,
+  {     0,  2718,   421,   3,   3, UNI_BC__RLI }   /* bc=rli */,
+  {     1,  1823,    82,   7,   4, UNI_SC__GONG }   /* script=gong */,
+  {     0,  4519,  5848,  14,   9, UNI_CYRILLICEXTA }   /* block=cyrillicextendeda */,
+  {     0,  2324,  7724,   6,  28, UNI_VSSUP }   /* block=variationselectorssupplement */,
+  {     0,  7274,    99,   9,   2, UNI_UPPERCASELETTER }   /* category=lu */,
+  {     1,  1667,  8567,   5,  34, UNI_DIACRITICALSSUP }   /* blk=combiningdiacriticalmarkssupplement */,
+  {     4,  3724,  3720,  12,   4, UNI_JG__MALAYALAMLLLA }   /* jg=malayalamllla */,
+  {     0,  6165,   426,   3,   4, UNI_MRO }   /* sc=mroo */,
+  {     2,  2002,     0,   3,   0, UNI_P }   /* isp */,
+  {     3,   753,   599,   6,   2, UNI_NFKCQC__N }   /* nfkcqc=n */,
+  {     0,  6041,   928,  21,   5, UNI_BPT__O }   /* bidipairedbrackettype=open */,
+  {   268,  2732,  4531,   8,   6, UNI_ARABICEXTC }   /* blk=arabicextc */,
+  {     0,  7591,  1612,   3,   2, UNI_LB__LF }   /* lb=lf */,
+  {    10,  2180,  1314,   4,   3, UNI_NV__4000 }   /* nv=4000 */,
+  {     0,  7198,  5909,   7,   7, UNI_SUPARROWSC }   /* blk=suparrowsc */,
+  {   100,  2732,  5848,  10,   9, UNI_ARABICEXTA }   /* blk=arabicextendeda */,
+  {     0,  2401,  1505,  10,   4, UNI_ETHIOPICEXTA }   /* inethiopicexta */,
+  {     0,  1455,   353,  10,   4, UNI_DEP }   /* deprecated=yes */,
+  {     1,  4360,    53,  10,   2, UNI_LB__NS }   /* linebreak=ns */,
+  {     1,  1667,  2780,   4,   6, UNI_INCOPTIC }   /* blk=coptic */,
+  {     0,  1667,  5067,   3,  11, UNI_INMANICHAEAN }   /* blk=manichaean */,
+  {     0,  3892,   934,  16,   2, -UNI_STERM }   /* sentenceterminal=f */,
+  {    52,   461,  4911,   2,  15, UNI_DIACRITICALSSUP }   /* isdiacriticalssup */,
+  {     0,  1530,  3622,   5,  11, UNI_KANGXI }   /* iskangxiradicals */,
+  {     0,  1075,  1069,   4,   2, UNI_NV__2_SLASH_3 }   /* nv=2/3 */,
+  {     1,  1618,   934,  10,   6, -UNI_SD }   /* softdotted=false */,
+  {     0,  6816,     0,  25,   0, UNI_CWKCF }   /* changeswhennfkccasefolded */,
+  {     1,   339,  6288,   2,   6, UNI_CCC__L }   /* ccc=left */,
+  {     2,  6427,  2728,  14,   3, UNI_JG__ALEF }   /* joininggroup=alef */,
+  {     1,   629,   352,   5,   3, UNI_GRBASE }   /* grbase=y */,
+  {     2,  1205,     0,   7,   0, UNI_GRAN }   /* grantha */,
+  {     0,  7383,  7181,  10,  17, UNI_BC__ES }   /* bidiclass=europeanseparator */,
+  {     1,  4424,   861,  17,   7, UNI_TIBT }   /* scriptextensions=tibetan */,
+  {    33,  4424,  1125,  17,   8, UNI_TFNG }   /* scriptextensions=tifinagh */,
+  {   192,   510,  1314,   4,   2, UNI_NV__300 }   /* nv=300 */,
+  {     0,  6062,   620,  12,   5, UNI_ETHIOPICEXT }   /* block=ethiopicext */,
+  {     2,  5460,  8552,  14,   6, UNI_term_values_index }   /* terminalpunctuation= */,
+  {     2,  6735,  1144,  22,   3, UNI_JG__MALAYALAMBHA }   /* joininggroup=malayalambha */,
+  {   258,  6165,  1522,   3,   4, UNI_UGAR }   /* sc=ugar */,
+  {   159,  1823,  5031,   7,  14, UNI_SC__ROHG }   /* script=hanifirohingya */,
   {     0,  1003,     0,   4,   0, UNI_LEPC }   /* lepc */,
-  {     0,   413,     0,   4,   0, UNI_GONM }   /* gonm */,
-  {   100,  2353,  8340,   3,  34, UNI_DIACRITICALSFORSYMBOLS }   /* incombiningdiacriticalmarksforsymbols */,
-  {    15,   464,  5481,   2,  21, UNI_CWCF }   /* ischangeswhencasefolded */,
-  {  1462,  4338,   934,  17,   6, -UNI_RI }   /* regionalindicator=false */,
-  {     0,  3474,  1344,   6,   9, UNI_PALM }   /* block=palmyrene */,
-  {     4,  1796,   453,   7,   4, UNI_MIAO }   /* script=plrd */,
-  {    26,  3053,   356,  13,   4, UNI_POSIXXDIGIT }   /* asciihexdigit=yes */,
-  {     0,  2253,   552,  10,   3, UNI_IN__4 }   /* presentin=4.0 */,
-  {     0,  1216,     0,   4,   0, UNI_KANA }   /* kana */,
-  {     0,  1867,     0,   5,   0, UNI_BIDIM }   /* bidim */,
-  {     0,  1796,    90,   7,   4, UNI_SC__GREK }   /* script=grek */,
-  {     0,    14,  3324,   1,  14, UNI_MISCPICTOGRAPHS }   /* miscpictographs */,
-  {     0,   313,  4656,   2,  16, UNI_TANGUTSUP }   /* intangutsupplement */,
-  {     0,  7527,  4338,   3,  17, UNI_RI }   /* lb=regionalindicator */,
-  {  3628,  5990,   928,  21,   5, UNI_BPT__O }   /* bidipairedbrackettype=open */,
-  {     0,  4355,  5340,  17,  10, UNI_DEVA }   /* scriptextensions=devanagari */,
-  {     4,  2726,   256,   3,   2, UNI_CASEDLETTER }   /* gc=lc */,
-  {     0,  1102,   825,   4,   7, UNI_SHAW }   /* scx=shavian */,
-  {     0,  3090,  2332,   5,   7, UNI_GREEKEXT }   /* blk=greekext */,
-  {     0,  3137,  6982,  15,   9, UNI_EA__F }   /* eastasianwidth=fullwidth */,
-  {     6,  4355,   477,  17,   3, UNI_VAI }   /* scriptextensions=vai */,
-  {  1050,  4355,   417,  17,   4, UNI_HANO }   /* scriptextensions=hano */,
-  {     1,   738,   602,   2,   2, UNI_EA__N }   /* ea=n */,
-  {  2051,  1766,     0,   7,   0, UNI_NFCQC__M }   /* nfcqc=m */,
-  {     6,   313,   298,   2,   2, UNI_IN__9 }   /* in=9 */,
-  {     4,  1975,  2033,   7,   5, UNI_POSIXALPHA }   /* isposixalpha */,
-  {     2,   306,  2628,   3,  10, UNI_PATSYN }   /* patternsyntax */,
-  {    21,   313,  6644,   2,  15, UNI_TRANSPORTANDMAP }   /* intransportandmap */,
-  {   440,  2726,  1977,   3,   2, UNI_PO }   /* gc=po */,
-  {     1,  6114,    64,   4,   3, UNI_CHRS }   /* sc=chrs */,
-  {     0,   464,   749,   2,   7, UNI_MARC }   /* ismarchen */,
-  {     7,  1879,   676,   4,   5, UNI_INOSAGE }   /* blk=osage */,
-  {     0,  1383,  2891,   6,   3, UNI_IDS }   /* idstart=t */,
-  {   647,  3474,  4081,   6,  11, UNI_INPUNCTUATION }   /* block=punctuation */,
-  {     0,  6379,  4174,  13,   4, UNI_JG__HETH }   /* joininggroup=heth */,
-  {     0,  3351,   294,  14,   1, UNI_NV__24 }   /* numericvalue=24 */,
-  {     0,  3474,  1308,   6,   9, UNI_INOLDITALIC }   /* block=olditalic */,
-  {     0,  6239,    91,   4,   2, UNI_BC__LRE }   /* bc=lre */,
-  {    13,    23,  1104,   3,   3, UNI_POSIXXDIGIT }   /* ahex=t */,
-  {     0,    34,  3542,   1,  17, UNI_HIGHPUSURROGATES }   /* ishighpusurrogates */,
-  {   600,  2394,  5797,   7,   9, UNI_MYANMAREXTA }   /* myanmarextendeda */,
-  {    31,  8244,  5183,  32,   4, UNI_CJKEXTE }   /* block=cjkunifiedideographsextensione */,
-  {    28,   464,   216,   2,   4, UNI_TIBT }   /* istibt */,
-  {  2266,  1539,   361,   3,   5, UNI_CAKM }   /* ischakma */,
-  {     0,    34,  1596,   1,   3, UNI_SO }   /* isso */,
-  {     0,  3474,  3608,   6,  14, UNI_PHONETICEXTSUP }   /* block=phoneticextsup */,
-  {   453,  2726,    17,   3,   2, UNI_LM }   /* gc=lm */,
-  {     2,  1702,  1037,   8,   4, UNI_ARABICEXTB }   /* isarabicextb */,
-  {     0,  7828,   356,  16,   4, UNI_UIDEO }   /* unifiedideograph=yes */,
-  {     0,  5147,   129,  17,   3, UNI_LATINEXTF }   /* block=latinextendedf */,
-  {  1329,  7201,    17,  16,   2, UNI_LM }   /* generalcategory=lm */,
-  {  2082,  6379,  1041,  13,   5, UNI_JG__GAMAL }   /* joininggroup=gamal */,
-  {     0,  4355,   502,  17,   6, UNI_LYDI }   /* scriptextensions=lydian */,
-  {     0,  2986,     0,  14,   0, UNI_PHLP }   /* psalterpahlavi */,
-  {     0,  4355,  4582,  17,   4, UNI_BOPO }   /* scriptextensions=bopo */,
-  {     1,   876,   356,   4,   4, UNI_IDEO }   /* ideo=yes */,
-  {     3,   464,   975,   2,   8, UNI_GURU }   /* isgurmukhi */,
-  {     4,  2365,  2336,   8,   8, UNI_ETHIOPICEXT }   /* ethiopicextended */,
-  {     0,  4355,  4962,  17,   4, UNI_HAN }   /* scriptextensions=hani */,
-  {   167,   625,     0,   7,   0, UNI_EXTPICT }   /* extpict */,
-  {  1703,  1102,  5661,   4,  19, UNI_MERO }   /* scx=meroitichieroglyphs */,
-  {    22,  6114,    82,   3,   4, UNI_DSRT }   /* sc=dsrt */,
-  {     9,  2740,     0,   4,   0, UNI_COPT }   /* copt */,
-  {     0,   265,   278,   5,   1, UNI_cwkcf_values_index }   /* cwkcf= */,
-  {     0,  1516,  1491,   6,   4, UNI_KANAEXTA }   /* iskanaexta */,
-  {     0,  3450,  7403,  12,  13, UNI_CYRILLICSUP }   /* blk=cyrillicsupplementary */,
-  {     0,  1867,   356,  12,   2, UNI_BIDIM }   /* bidimirrored=y */,
-  {     1,  5928,    48,   3,   1, UNI_VO__U }   /* vo=u */,
-  {     3,  1102,  3435,   4,  15, UNI_ZANB }   /* scx=zanabazarsquare */,
-  {     2,   464,    15,   2,   4, UNI_ADLM }   /* isadlm */,
-  {     0,  6114,  1335,   3,   9, UNI_SC__OUGR }   /* sc=olduyghur */,
-  {   261,  1102,  3839,   4,   6, UNI_TANG }   /* scx=tangut */,
-  {  3008,  1410,  1153,   7,   2, UNI_CCC__24 }   /* ccc=ccc24 */,
-  {    98,  1796,   810,   7,   4, UNI_SC__SYRC }   /* script=syrc */,
-  {   520,   343,  8572,   4,  18, UNI_CCC__216 }   /* ccc=attachedaboveright */,
-  {     1,   736,  1183,   3,   8, UNI_EMOTICONS }   /* inemoticons */,
-  {   302,  4355,  5631,  17,   5, UNI_GREK }   /* scriptextensions=greek */,
-  {     1,  4291,  1837,  10,   5, UNI_EBASE }   /* linebreak=ebase */,
-  {     1,  6114,  1495,   3,   4, UNI_SC__JAVA }   /* sc=java */,
-  {     0,  7018,  4645,   7,  11, UNI_ARABICSUP }   /* inarabicsupplement */,
-  {  3953,  7584,  3249,  18,   5, UNI_DT__FIN }   /* decompositiontype=final */,
-  {   106,  1702,  2665,   3,  13, UNI_ANCIENTSYMBOLS }   /* isancientsymbols */,
-  {     0,  5844,  6898,   5,  22, UNI_SUPERANDSUB }   /* issuperscriptsandsubscripts */,
-  {    88,  3974,   278,  17,   1, UNI_idsb_values_index }   /* idsbinaryoperator= */,
-  {  2258,  4582,     0,   4,   0, UNI_BOPO }   /* bopo */,
-  {    15,  1102,  1133,   4,   4, UNI_VITH }   /* scx=vith */,
-  {     0,  2625,   934,  13,   2, -UNI_PATSYN }   /* patternsyntax=f */,
-  {    35,  1102,  1220,   4,   7, UNI_MAKA }   /* scx=makasar */,
-  {     2,  3734,  6042,  12,   4, UNI_NFCQC__M }   /* nfkcquickcheck=m */,
-  {     3,  1766,   356,   5,   2, UNI_NFCQC__Y }   /* nfcqc=y */,
-  {     0,  4450,  3869,   7,  16, UNI_UCAS }   /* block=canadiansyllabics */,
-  {     2,  4020,     0,   4,   0, UNI_SIND }   /* sind */,
-  {     0,  4355,  3671,  16,  10, UNI_MLYM }   /* scriptextensions=malayalam */,
-  {     0,   600,  1687,   3,   8, UNI_DT__ISO }   /* dt=isolated */,
-  {     0,  4500,   934,   5,   2, -UNI_XPOSIXUPPER }   /* upper=f */,
-  {     0,  5544,   602,  21,   3, -UNI_CWT }   /* changeswhentitlecased=no */,
-  {     4,   313,  8551,   2,  21, UNI_MATHOPERATORS }   /* inmathematicaloperators */,
-  {    10,    75,   278,   3,   1, UNI_cwu_values_index }   /* cwu= */,
-  {     2,  1102,    59,   4,   4, UNI_CHAM }   /* scx=cham */,
-  {     1,     5,   601,   2,   4, -UNI_EXT }   /* ext=no */,
-  {     1,  6114,    55,   3,   4, UNI_CANS }   /* sc=cans */,
-  {     0,  4355,  2401,  17,   4, UNI_NAND }   /* scriptextensions=nand */,
-  {     0,  1102,  1205,   4,   9, UNI_QAAI }   /* scx=inherited */,
-  {     0,   313,  4882,   2,  19, UNI_INEGYPTIANHIEROGLYPHS }   /* inegyptianhieroglyphs */,
-  {     0,  2973,   588,   5,   5, UNI_EPRES }   /* epres=true */,
-  {     0,  1879,  8592,   4,  34, UNI_UCAS }   /* blk=unifiedcanadianaboriginalsyllabics */,
-  {   233,   520,     0,   4,   0, UNI_NV__7 }   /* nv=7 */,
-  {     4,  7584,  6944,  18,   9, UNI_DT__CAN }   /* decompositiontype=canonical */,
-  {     0,  1377,  6276,   3,   6, UNI_WB__FO }   /* wb=format */,
-  {   194,  6239,   302,   4,   2, UNI_BC__LRI }   /* bc=lri */,
-  {     0,  1796,  6134,   7,  10, UNI_SC__GLAG }   /* script=glagolitic */,
-  {   191,  1777,  6199,   6,   8, UNI_NV__10000000000 }   /* nv=10000000000 */,
-  {   150,   313,  7403,   2,  28, UNI_SUPPUAA }   /* insupplementaryprivateuseareaa */,
-  {     0,   313,  1362,   2,   9, UNI_INSAMARITAN }   /* insamaritan */,
-  {     0,   343,  2074,   4,   2, UNI_CCC__29 }   /* ccc=29 */,
-  {     0,  2726,  3594,   3,   2, UNI_NL }   /* gc=nl */,
-  {     0,  3367,  2617,  14,   8, UNI_NV__2_SLASH_5 }   /* numericvalue=4.000e-01 */,
-  {    77,  5147,  1698,  11,   4, UNI_LATINEXTF }   /* block=latinextf */,
-  {     0,   464,    58,   2,   2, UNI_SC }   /* issc */,
-  {     0,  1280,     0,   9,   0, UNI_NBAT }   /* nabataean */,
-  {     0,  5136,  2382,   5,  10, UNI_MISCSYMBOLS }   /* blk=miscsymbols */,
-  {     0,  6185,     0,  18,   0, UNI_NV__10000 }   /* numericvalue=10000 */,
-  {    13,   313,  2155,   2,   4, UNI_IN__4_DOT_1 }   /* in=4.1 */,
-  {     1,  2974,   397,  11,   2, UNI_IN__5_DOT_1 }   /* presentin=v51 */,
-  {     1,  7201,    58,  16,   2, UNI_SC }   /* generalcategory=sc */,
-  {     4,   833,   356,   4,   4, UNI_TERM }   /* term=yes */,
-  {     0,  1879,  6447,   4,   5, UNI_MUSIC }   /* blk=music */,
-  {  2259,  1102,   156,   4,   4, UNI_OUGR }   /* scx=ougr */,
-  {     2,  5888,   588,   5,   5, UNI__PERL_NCHAR }   /* nchar=true */,
-  {     0,  5136,  6549,   5,  21, UNI_MISCTECHNICAL }   /* blk=miscellaneoustechnical */,
-  {     0,  6276,     0,   6,   0, UNI_CF }   /* format */,
-  {     0,  3474,  6439,   6,  23, UNI_ZNAMENNYMUSIC }   /* block=znamennymusicalnotation */,
-  {  2779,   721,     0,   7,   0, UNI_KNDA }   /* kannada */,
-  {   500,  3474,  6134,   6,  20, UNI_GLAGOLITICSUP }   /* block=glagoliticsupplement */,
-  {     0,  2483,  1915,   8,   5, UNI_XPOSIXGRAPH }   /* isxposixgraph */,
-  {  1667,   513,  1300,   4,   3, UNI_NV__3000 }   /* nv=3000 */,
-  {  1624,   313,   776,   2,   7, UNI_OLCK }   /* inolchiki */,
-  {  4544,  2726,  4485,   3,  15, UNI_TITLE }   /* gc=titlecaseletter */,
-  {     7,   378,   588,   5,   5, UNI_GREXT }   /* grext=true */,
-  {   230,  5607,  2606,  15,   9, UNI_IDENTIFIERTYPE__TECHNICAL }   /* identifiertype=technical */,
-  {     1,  1216,   328,   4,   3, UNI_KANASUP }   /* kanasup */,
-  {    16,   296,     0,   4,   0, UNI_NV__9 }   /* nv=9 */,
-  {    98,  8592,     0,  42,   0, UNI_UCASEXT }   /* unifiedcanadianaboriginalsyllabicsextended */,
-  {  4694,   464,  2740,   2,   6, UNI_COPT }   /* iscoptic */,
-  {  2187,  1516,  3582,   5,  11, UNI_KANGXI }   /* iskangxiradicals */,
-  {  1090,  7201,    69,  16,   2, UNI_MN }   /* generalcategory=mn */,
-  {     0,  2496,  1988,   3,   3, UNI_JG__WAW }   /* jg=waw */,
-  {     6,   313,  8592,   2,  34, UNI_UCAS }   /* inunifiedcanadianaboriginalsyllabics */,
-  {   953,  6944,  2195,  23,   2, UNI_CCC__6 }   /* canonicalcombiningclass=6 */,
-  {     1,  3622,  4275,   3,  16, UNI_LETTERLIKESYMBOLS }   /* isletterlikesymbols */,
-  {     1,  1879,  1117,   4,   8, UNI_INTAGBANWA }   /* blk=tagbanwa */,
-  {    18,  2802,  2336,  10,   8, UNI_ETHIOPICEXT }   /* isethiopicextended */,
-  {  1024,  2401,     0,  11,   0, UNI_NAND }   /* nandinagari */,
-  {  2184,   242,     0,   2,   0, UNI_NB }   /* nb */,
-  {  1317,  7660,     0,  17,   0, UNI_VS }   /* variationselector */,
-  {   199,  6112,  6867,  14,  11, UNI_INSC__CONSONANTWITHSTACKER }   /* insc=consonantwithstacker */,
-  {     0,  1826,     0,  11,   0, UNI_SYLO }   /* sylotinagri */,
-  {     4,   464,  2241,   2,  12, UNI_PLAYINGCARDS }   /* isplayingcards */,
-  {     1,  7201,  5103,  16,   2, UNI_CASEDLETTER }   /* generalcategory=l_ */,
-  {  2116,  7132,  8550,  15,  22, UNI_SUPMATHOPERATORS }   /* blk=supplementalmathematicaloperators */,
-  {     0,  3595,  6771,  10,   4, UNI_LATINEXTD }   /* latinextendedd */,
-  {    11,  2496,  6154,   3,  19, UNI_JG__BURUSHASKIYEHBARREE }   /* jg=burushaskiyehbarree */,
-  {  4608,   555,  6214,   4,   3, UNI_AGE__2_DOT_1 }   /* age=2.1 */,
-  {     2,  8289,  7045,  10,  12, UNI_M }   /* category=combiningmark */,
-  {  3816,   696,  3156,   5,   8, UNI_NO }   /* isothernumber */,
-  {     0,  1102,   188,   4,   4, UNI_SGNW }   /* scx=sgnw */,
-  {     1,   296,  3806,   2,   3, UNI_NV__80 }   /* nv=80 */,
-  {     7,  3474,  1529,   6,  10, UNI_INKHAROSHTHI }   /* block=kharoshthi */,
-  {  2832,   975,     0,   8,   0, UNI_GURU }   /* gurmukhi */,
-  {     1,   536,    58,   3,   2, UNI_SB__SC }   /* sb=sc */,
-  {     0,   343,   292,   5,   2, UNI_CCC__130 }   /* ccc=130 */,
-  {  2208,  1915,   933,  11,   7, -UNI_GRBASE }   /* graphemebase=false */,
-  {   577,  3351,   773,  13,   3, UNI_NV__7_SLASH_2 }   /* numericvalue=7/2 */,
-  {     0,  1410,   562,   8,   2, UNI_CCC__107 }   /* ccc=ccc107 */,
-  {     0,  4355,  3093,  16,   5, UNI_GEOR }   /* scriptextensions=geor */,
-  {     2,  8182,  6241,  23,   5, UNI_INPC__LEFT }   /* indicpositionalcategory=left */,
-  {     0,  7201,   469,  16,   2, UNI_SO }   /* generalcategory=so */,
-  {     0,  5586,  4338,  21,  17, UNI_RI }   /* graphemeclusterbreak=regionalindicator */,
-  {     0,  1796,  1785,   7,  11, UNI_HMNG }   /* script=pahawhhmong */,
-  {  4416,    34,  2236,   1,   3, UNI_DI }   /* isdi */,
-  {  2209,   464,  1220,   2,   4, UNI_MAKA }   /* ismaka */,
-  {     0,  6944,  2207,  23,   2, UNI_CCC__8 }   /* canonicalcombiningclass=8 */,
-  {     0,  4291,   119,  10,   2, UNI_LB__AL }   /* linebreak=al */,
-  {     0,  6114,   168,   3,   4, UNI_SC__COPT }   /* sc=qaac */,
-  {  6170,   313,   515,   2,   2, UNI_IN__3 }   /* in=3 */,
-  {    70,  7527,   102,   3,   2, UNI_LB__HL }   /* lb=hl */,
-  {     0,  2726,     0,   3,   0, UNI_gc_values_index }   /* gc= */,
-  {  2063,  1879,   530,   4,   6, UNI_INREJANG }   /* blk=rejang */,
-  {     3,   940,     0,   6,   0, UNI_COMPEX }   /* compex */,
-  {     0,  3137,     0,  15,   0, UNI_ea_values_index }   /* eastasianwidth= */,
-  {     5,   464,  1094,   2,   4, UNI_MERC }   /* ismerc */,
-  {     0,  1796,  3671,   6,  10, UNI_SC__MLYM }   /* script=malayalam */,
-  {  2200,  6114,  3309,   3,  15, UNI_MERC }   /* sc=meroiticcursive */,
-  {     3,  6114,  5389,   3,  20, UNI_HMNP }   /* sc=nyiakengpuachuehmong */,
-  {  2724,  4355,    82,  17,   4, UNI_DSRT }   /* scriptextensions=dsrt */,
-  {     0,  3763,  1781,  14,   4, UNI_NV__50000 }   /* numericvalue=50000 */,
-  {     0,  6112,  3177,  14,   4, UNI_INSC__CONSONANTDEAD }   /* insc=consonantdead */,
-  {     2,  4355,   681,  17,   5, UNI_RUNR }   /* scriptextensions=runic */,
-  {  2954,  1977,     0,   2,   0, UNI_PO }   /* po */,
-  {     4,  1856,   588,  11,   5, UNI_BIDIC }   /* bidicontrol=true */,
-  {     4,  2454,  6878,   5,  12, UNI_GEOMETRICSHAPES }   /* isgeometricshapes */,
-  {     0,  1102,   401,   4,   4, UNI_MIAO }   /* scx=miao */,
-  {  1738,   464,     9,   2,   3, UNI_OCR }   /* isocr */,
-  {     0,  3474,  5340,   6,  18, UNI_DEVANAGARIEXT }   /* block=devanagariextended */,
-  {     0,   464,  3933,   2,  14, UNI_SK }   /* ismodifiersymbol */,
-  {  4873,  8276,  6613,  31,  10, UNI_INSC__CONSONANTHEADLETTER }   /* indicsyllabiccategory=consonantheadletter */,
-  {     0,  4338,   588,  17,   5, UNI_RI }   /* regionalindicator=true */,
-  {     0,  4338,   356,  17,   2, UNI_RI }   /* regionalindicator=y */,
-  {  3657,  3779,  3777,  14,   2, UNI_NV__7_SLASH_8 }   /* numericvalue=7/8 */,
-  {     0,  4355,  2018,  17,  12, UNI_GONM }   /* scriptextensions=masaramgondi */,
-  {     0,  8533,  1818,   9,   8, UNI_SUPERANDSUB }   /* block=superandsub */,
-  {     4,   612,  2002,   2,  10, UNI_LB__B2 }   /* lb=breakboth */,
-  {     8,  1102,  1016,   5,   3, UNI_TELU }   /* scx=telu */,
-  {     0,  2726,  2443,   3,  11, UNI_CASEDLETTER }   /* gc=casedletter */,
-  {  1258,  2678,   424,   3,   3, UNI_BC__RLI }   /* bc=rli */,
-  {     6,  2645,     0,   4,   0, UNI_IN__5 }   /* in=5 */,
-  {     0,  5928,     0,   3,   0, UNI_vo_values_index }   /* vo= */,
-  {  5253,  1879,  7500,   4,  27, UNI_ANCIENTGREEKMUSIC }   /* blk=ancientgreekmusicalnotation */,
-  {     6,  4515,   278,  18,   1, UNI_idst_values_index }   /* idstrinaryoperator= */,
-  {  2721,  2496,  3249,   3,  12, UNI_JG__FINALSEMKATH }   /* jg=finalsemkath */,
-  {     2,  1102,    90,   4,   4, UNI_GREK }   /* scx=grek */,
-  {     0,  1710,  4372,   3,  16, UNI_SMALLFORMS }   /* issmallformvariants */,
-  {  3332,  6379,  2509,  13,  10, UNI_JG__DALATHRISH }   /* joininggroup=dalathrish */,
-  {     4,  4291,  1977,  10,   2, UNI_LB__PO }   /* linebreak=po */,
-  {  1156,  1102,  4582,   4,   4, UNI_BOPO }   /* scx=bopo */,
-  {  5381,  3474,  1508,   6,   8, UNI_INUGARITIC }   /* block=ugaritic */,
-  {     2,  2485,  4122,   6,   5, UNI_XPOSIXLOWER }   /* xposixlower */,
-  {     0,  1796,  2217,   7,  12, UNI_HUNG }   /* script=oldhungarian */,
-  {     1,  8276,  3177,  31,   4, UNI_INSC__CONSONANTDEAD }   /* indicsyllabiccategory=consonantdead */,
-  {   892,  1174,   607,   3,   4, UNI_EA__W }   /* ea=wide */,
-  {     2,  1382,     0,   8,   0, UNI_XIDS }   /* xidstart */,
-  {   489,    14,  7761,   1,  30, UNI_MATHALPHANUM }   /* mathematicalalphanumericsymbols */,
-  {     0,  5886,   601,  20,   4, -UNI__PERL_NCHAR }   /* noncharactercodepoint=no */,
-  {     0,   464,  6533,   2,  16, UNI_INDICNUMBERFORMS }   /* isindicnumberforms */,
-  {     0,  6944,  6491,  22,   4, UNI_CCC__AL }   /* canonicalcombiningclass=al */,
-  {     4,   313,   666,   2,   5, UNI_INLIMBU }   /* inlimbu */,
-  {  2883,   464,   306,   2,   5, UNI__PERL_PATWS }   /* ispatws */,
-  {   454,  6114,  4962,   3,  14, UNI_SC__ROHG }   /* sc=hanifirohingya */,
-  {   320,   313,  3498,   2,  16, UNI_CYPRIOTSYLLABARY }   /* incypriotsyllabary */,
-  {  3166,  1717,  1465,   6,   5, UNI_VERTSPACE }   /* isvertspace */,
-  {     0,  7473,     0,  27,   0, UNI_ALPHABETICPF }   /* alphabeticpresentationforms */,
-  {  2250,  2678,  3078,   3,  12, UNI_BC__ON }   /* bc=otherneutral */,
-  {  2629,   464,  7385,   2,  28, UNI_PHONETICEXTSUP }   /* isphoneticextensionssupplement */,
-  {     0,  5502,   934,  21,   2, -UNI_CWCM }   /* changeswhencasemapped=f */,
-  {  3846,   464,  5205,   2,  18, UNI_HALFMARKS }   /* iscombininghalfmarks */,
-  {    12,   433,     0,   3,   0, UNI_NKO }   /* nko */,
-  {   136,  3622,  4629,   6,   5, UNI_LATIN1 }   /* islatin1sup */,
-  {     0,  1879,  7660,   4,  28, UNI_VSSUP }   /* blk=variationselectorssupplement */,
-  {  2664,  7201,  2774,  19,   8, UNI_SO }   /* generalcategory=othersymbol */,
-  {   530,  1796,  2812,   7,   4, UNI_SC__MAHJ }   /* script=mahj */,
-  {  1678,  3593,  2579,   3,  12, UNI_LOWSURROGATES }   /* inlowsurrogates */,
-  {     0,  2678,   844,   4,   2, UNI_BC__RLO }   /* bc=rlo */,
-  {  3072,   895,   771,   5,   2, UNI_AGE__2_DOT_1 }   /* age=v21 */,
-  {     2,  8182,  6581,  24,   6, UNI_INPC__BOTTOM }   /* indicpositionalcategory=bottom */,
-  {     1,   154,  5223,   2,  16, UNI_INPUNCTUATION }   /* generalpunctuation */,
-  {   129,  1796,   806,   7,   4, UNI_SARB }   /* script=sarb */,
-  {  2146,  2678,   331,   3,   3, UNI_BC__FSI }   /* bc=fsi */,
-  {     0,  2496,     0,  13,   0, UNI_JG__AFRICANFEH }   /* jg=africanfeh */,
-  {  1157,  3090,  6878,   7,  20, UNI_GEOMETRICSHAPESEXT }   /* blk=geometricshapesextended */,
-  {     0,  1796,  1227,   7,   4, UNI_SC__MULT }   /* script=mult */,
-  {   202,  3474,  1491,  12,   4, UNI_ARABICEXTA }   /* block=arabicexta */,
-  {     0,   343,  3101,   4,  11, UNI_CCC__DA }   /* ccc=doubleabove */,
-  {     0,   313,  1317,   2,   9, UNI_INOLDPERMIC }   /* inoldpermic */,
-  {     0,  1395,     5,   5,   4, UNI_LATINEXTG }   /* latinextg */,
-  {    24,  2274,   588,   4,   5, UNI_XIDC }   /* xidc=true */,
-  {  2168,    12,    37,   1,   1, UNI_PS }   /* ps */,
-  {     0,  8007,  2335,   6,   5, UNI_CJKEXTE }   /* blk=cjkexte */,
-  {  3459,  7527,  4219,   3,  14, UNI_LB__CR }   /* lb=carriagereturn */,
-  {    22,  5586,  1842,  21,   3, UNI_WB__EB }   /* graphemeclusterbreak=gaz */,
-  {   652,  1102,  2695,   3,   7, UNI_ARAB }   /* scx=arabic */,
-  {  1047,  6114,   116,   3,   4, UNI_SC__KNDA }   /* sc=knda */,
-  {     0,   536,  4500,   3,   5, UNI_SB__UP }   /* sb=upper */,
-  {  4107,  2474,  5038,   3,  18, UNI_MODIFIERTONELETTERS }   /* ismodifiertoneletters */,
-  {  6704,   464,  1090,   2,   4, UNI_LINB }   /* islinb */,
-  {     0,  4355,   164,  17,   4, UNI_PHNX }   /* scriptextensions=phnx */,
-  {  4160,  1335,     0,   9,   0, UNI_OUGR }   /* olduyghur */,
-  {     0,   833,   356,   4,   2, UNI_TERM }   /* term=y */,
-  {     1,   464,  1271,   2,   9, UNI_SIND }   /* iskhudawadi */,
-  {     0,  7132,  4081,   7,  11, UNI_SUPPUNCTUATION }   /* blk=suppunctuation */,
-  {     1,  6379,   717,  13,   4, UNI_JG__ZAIN }   /* joininggroup=zain */,
-  {     0,  8533,  1588,   7,   9, UNI_SMALLFORMS }   /* block=smallforms */,
-  {     0,   306,     0,   5,   0, UNI__PERL_PATWS }   /* patws */,
-  {  2568,  6379,   490,  13,   3, UNI_JG__REH }   /* joininggroup=reh */,
-  {     0,    23,   356,   4,   4, UNI_POSIXXDIGIT }   /* ahex=yes */,
-  {     0,   464,  4021,   2,  17, UNI_INDICSIYAQNUMBERS }   /* isindicsiyaqnumbers */,
-  {  2210,  2678,  5249,   3,   3, UNI_BC__RLE }   /* bc=rle */,
-  {    17,  1065,  2104,   4,   8, UNI_NV__1_SLASH_6 }   /* nv=1.667e-01 */,
-  {     0,  6112,     0,  14,   0, UNI_INSC__CONSONANT }   /* insc=consonant */,
-  {    13,  6134,     0,  13,   0, UNI_GLAGOLITICSUP }   /* glagoliticsup */,
-  {     3,   313,  1614,   2,  10, UNI_INWARANGCITI }   /* inwarangciti */,
-  {     0,    23,     0,   4,   0, UNI_POSIXXDIGIT }   /* ahex */,
-  {     0,  3474,  1785,   6,  11, UNI_INPAHAWHHMONG }   /* block=pahawhhmong */,
-  {     0,    46,  3151,   2,   3, UNI_SB__LE }   /* sb=le */,
-  {     0,  3450,  1939,   5,   9, UNI_COMPATJAMO }   /* blk=compatjamo */,
-  {  4513,  7823,  8407,   5,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* incjkcompatibilityideographssupplement */,
-  {  4390,  1075,  1781,   4,   4, UNI_NV__20000 }   /* nv=20000 */,
-  {     5,  5586,  3432,  21,   3, UNI_LB__ZWJ }   /* graphemeclusterbreak=zwj */,
-  {     0,  6114,  4551,   3,   7, UNI_SC__LINB }   /* sc=linearb */,
-  {     2,  4355,   686,  17,   4, UNI_TAKR }   /* scriptextensions=takr */,
-  {     1,  5607,   756,  18,   4, UNI_IDENTIFIERTYPE__NOTNFKC }   /* identifiertype=notnfkc */,
-  {  4308,   313,    27,   2,   4, UNI_INAHOM }   /* inahom */,
-  {  2321,  1796,  1508,   7,   8, UNI_UGAR }   /* script=ugaritic */,
-  {  6912,   464,   192,   2,   4, UNI_SHAW }   /* isshaw */,
-  {    24,  7201,  2384,  16,   2, UNI__PERL_SURROGATE }   /* generalcategory=cs */,
-  {     0,  6944,  1304,  24,   2, UNI_CCC__20 }   /* canonicalcombiningclass=20 */,
-  {     3,   140,     0,   4,   0, UNI_NARB }   /* narb */,
-  {     2,  4291,   283,  10,   2, UNI_GCB__L }   /* linebreak=jl */,
-  {     0,   464,  5806,   2,  19, UNI_MONGOLIANSUP }   /* ismongoliansupplement */,
-  {     1,   296,   764,   4,   2, UNI_NV__9_SLASH_2 }   /* nv=9/2 */,
-  {     0,   832,   356,   5,   4, UNI_STERM }   /* sterm=yes */,
-  {     3,  7584,  2652,  18,   8, UNI_DT__VERT }   /* decompositiontype=vertical */,
-  {    85,  4450,  5643,   7,  18, UNI_COUNTINGROD }   /* block=countingrodnumerals */,
-  {    18,  2153,  1781,   4,   4, UNI_NV__40000 }   /* nv=40000 */,
-  {  2980,   313,  2275,   2,   3, UNI_INIDC }   /* inidc */,
-  {     0,    36,   356,   2,   4, UNI_VS }   /* vs=yes */,
-  {     0,  7201,  6636,  20,   7, UNI_LO }   /* generalcategory=otherletter */,
-  {   292,  2483,  1465,   8,   5, UNI_XPOSIXSPACE }   /* isxposixspace */,
-  {     1,   464,  3608,   2,  14, UNI_PHONETICEXTSUP }   /* isphoneticextsup */,
-  {     0,  6114,  1371,   3,   6, UNI_SC__THAA }   /* sc=thaana */,
-  {     0,  3450,  8340,   5,  34, UNI_DIACRITICALSFORSYMBOLS }   /* blk=combiningdiacriticalmarksforsymbols */,
-  {     0,  2692,     0,  10,   0, UNI_INARABIC }   /* blk=arabic */,
-  {  3667,  1011,   278,   2,   1, UNI_ci_values_index }   /* ci= */,
-  {    26,  1807,     0,  11,   0, UNI_SORA }   /* sorasompeng */,
-  {     6,  4355,   991,  17,   4, UNI_HATR }   /* scriptextensions=hatr */,
-  {     0,  1977,  3228,   5,   5, UNI_POSIXALNUM }   /* posixalnum */,
-  {     0,  5865,     0,  21,   0, UNI_LOE }   /* logicalorderexception */,
-  {     0,  7208,  1464,   9,   2, UNI_ZS }   /* category=zs */,
-  {     0,  6114,   152,   3,   4, UNI_OSGE }   /* sc=osge */,
-  {     1,   513,  1304,   5,   2, UNI_NV__3_SLASH_20 }   /* nv=3/20 */
+  {    37,  2766,  4016,   3,  14, UNI_ZS }   /* gc=spaceseparator */,
+  {     0,  6165,   442,   3,   4, UNI_ORKH }   /* sc=orkh */,
+  {     0,   309,  3649,   2,  11, UNI_PHONETICEXT }   /* inphoneticext */,
+  {     8,  1667,  7537,   4,  27, UNI_ALPHABETICPF }   /* blk=alphabeticpresentationforms */,
+  {     2,   521,  2288,   5,   2, UNI_patsyn_values_index }   /* patsyn= */,
+  {    32,  1823,  1334,   7,   4, UNI_SC__PERM }   /* script=perm */,
+  {     0,  1556,     0,   6,   0, UNI_ARROWS }   /* arrows */,
+  {    77,  3514,  1505,  12,   4, UNI_ARABICEXTA }   /* block=arabicexta */,
+  {   161,    30,  1617,   1,  11, UNI_SD }   /* issoftdotted */,
+  {     0,  1102,   398,   4,   4, UNI_MIAO }   /* scx=miao */,
+  {     0,   597,    51,   3,   3, UNI_DT__CAN }   /* dt=can */,
+  {     1,  6165,  5876,   3,   4, UNI_SUND }   /* sc=sund */,
+  {     0,  1059,   599,   6,   3, UNI_NFKDQC__N }   /* nfkdqc=no */,
+  {     7,  1728,     0,   6,   0, UNI_ARAB }   /* arabic */,
+  {    23,    30,  1581,   1,  11, UNI_INPHOENICIAN }   /* inphoenician */,
+  {    29,  7383,  4472,  10,  15, UNI_BC__BN }   /* bidiclass=boundaryneutral */,
+  {    35,  1823,   740,   8,   6, UNI_SC__MAND }   /* script=mandaic */,
+  {     0,  1823,   333,   7,   6, UNI_CARI }   /* script=carian */,
+  {    60,  5857,     0,  19,   0, UNI_MONGOLIANSUP }   /* mongoliansupplement */,
+  {     2,  4360,  4407,  10,  17, UNI_RI }   /* linebreak=regionalindicator */,
+  {     0,  2324,  5440,   6,  20, UNI_INNYIAKENGPUACHUEHMONG }   /* block=nyiakengpuachuehmong */,
+  {    26,  1102,   663,   4,   5, UNI_LIMB }   /* scx=limbu */,
+  {     0,   168,   318,   2,   2, UNI_QAAI }   /* qaai */,
+  {   266,  8343,  7429,  31,  14, UNI_INSC__CONSONANTPRECEDINGREPHA }   /* indicsyllabiccategory=consonantprecedingrepha */,
+  {     0,    53,   598,   1,   6, UNI_NV__NAN }   /* nt=none */,
+  {     3,   261,     0,   5,   0, UNI_CWKCF }   /* cwkcf */,
+  {   200,  2324,  1027,   6,   6, UNI_INYEZIDI }   /* block=yezidi */,
+  {     0,  3727,     0,   9,   0, UNI_MLYM }   /* malayalam */,
+  {    25,   406,     0,   2,   0, UNI_DI }   /* di */,
+  {     0,  4360,  3760,  10,  13, UNI_LB__PR }   /* linebreak=prefixnumeric */,
+  {     6,  1667,  5448,   4,   3, UNI_PUA }   /* blk=pua */,
+  {     0,   461,   102,   2,   4, UNI_HMNG }   /* ishmng */,
+  {     0,  3677,   130,  14,   2, UNI_LATINEXTF }   /* islatinextendedf */,
+  {     2,  7086,     0,  24,   0, UNI_ARABICPFB }   /* arabicpresentationformsb */,
+  {     0,   718,     0,   7,   0, UNI_KNDA }   /* kannada */,
+  {    16,   312,   934,   5,   6, -UNI_QMARK }   /* qmark=false */,
+  {     5,  6165,  4951,   3,   4, UNI_EGYP }   /* sc=egyp */,
+  {     1,  1667,  6120,   4,  22, UNI_DIACRITICALSFORSYMBOLS }   /* blk=diacriticalsforsymbols */,
+  {     0,   461,  5574,   2,  21, UNI_CWL }   /* ischangeswhenlowercased */,
+  {    34,  1391,  2768,   2,   6, UNI_WB__XX }   /* wb=other */,
+  {     0,  1667,  1572,   4,  10, UNI_INOLDPERSIAN }   /* blk=oldpersian */,
+  {    64,  5895,  4457,   4,  15, UNI_SUTTONSIGNWRITING }   /* issuttonsignwriting */,
+  {     0,  2403,  6193,   6,  12, UNI_ETHIOPICSUP }   /* ethiopicsupplement */,
+  {     0,  5637,  1864,  21,   5, UNI_WB__EB }   /* graphemeclusterbreak=ebase */,
+  {     6,  1102,   474,   4,   3, UNI_VAI }   /* scx=vai */,
+  {     0,  4043,   934,  17,   6, -UNI_IDSB }   /* idsbinaryoperator=false */,
+  {    34,   461,  6185,   2,   4, UNI_GLAG }   /* isglag */,
+  {     1,  3098,   934,   8,   6, -UNI_XPOSIXXDIGIT }   /* hexdigit=false */,
+  {     1,  2324,  1779,   6,  11, UNI_INMEDEFAIDRIN }   /* block=medefaidrin */,
+  {     3,  2324,   725,   6,   7, UNI_KALI }   /* block=kayahli */,
+  {     2,  1823,  3728,   8,   8, UNI_SC__MLYM }   /* script=malayalam */,
+  {     6,   309,   991,   2,   6, UNI_INHATRAN }   /* inhatran */,
+  {     1,  5595,   585,  21,   5, UNI_CWT }   /* changeswhentitlecased=true */,
+  {     0,   461,  6082,   2,   8, UNI_GEOR }   /* isgeorgian */,
+  {     2,   461,   410,   2,   4, UNI_GONM }   /* isgonm */,
+  {     0,  1391,  3456,   5,   4, UNI_WB__MN }   /* wb=midnum */,
+  {     0,   422,     0,   4,   0, UNI_LINA }   /* lina */,
+  {     3,  7267,  3706,  16,  14, UNI_MN }   /* generalcategory=nonspacingmark */,
+  {     2,  3490,  1505,  12,   4, UNI_CYRILLICEXTA }   /* blk=cyrillicexta */,
+  {     0,  2232,  2164,   4,   8, UNI_NV__5_SLASH_6 }   /* nv=8.333e-01 */,
+  {    58,  7267,  6677,  16,  14, UNI_LM }   /* generalcategory=modifierletter */,
+  {     0,  7537,   131,  11,   1, UNI_ALPHABETICPF }   /* alphabeticpf */,
+  {     0,  6287,     0,  23,   0, UNI_BC__LRE }   /* bc=lefttorightembedding */,
+  {     1,  7752,  3894,  22,   4, UNI_JG__MANICHAEANTEN }   /* joininggroup=manichaeanten */,
+  {     3,  1667,   144,   4,   4, UNI_INNEWA }   /* blk=newa */,
+  {    10,  6000,  1926,  14,   7, UNI_YIJING }   /* yijinghexagramsymbols */,
+  {   133,   309,  3325,   2,   6, UNI_INHEBREW }   /* inhebrew */,
+  {    14,  2752,   934,   5,   2, -UNI_EMOJI }   /* emoji=f */,
+  {     1,  5156,  1908,   8,   4, UNI_WB__KA }   /* wordbreak=ka */,
+  {     2,  4176,     0,   6,   0, UNI_HANG }   /* hangul */,
+  {     0,  1530,     0,   6,   0, UNI_KANA }   /* iskana */,
+  {     0,   716,  3622,   5,  11, UNI_KANGXI }   /* inkangxiradicals */,
+  {     0,   309,   555,   2,   2, UNI_IN__5 }   /* in=5 */,
+  {     0,  7467,  1143,  26,   2, UNI_SUPPUAB }   /* supplementaryprivateuseareab */,
+  {     1,  1102,  1484,   4,   8, UNI_BUGI }   /* scx=buginese */,
+  {     1,  6165,   200,   3,   4, UNI_TAVT }   /* sc=tavt */,
+  {     0,  2018,  2919,  12,  11, UNI_JT__L }   /* joiningtype=leftjoining */,
+  {     1,   622,   353,   7,   4, UNI_EXTPICT }   /* extpict=yes */,
+  {     0,  4569,   599,   5,   2, -UNI_XPOSIXUPPER }   /* upper=n */,
+  {     4,  1102,   847,   4,   7, UNI_LANA }   /* scx=taitham */,
+  {     0,   461,  1509,   2,   4, UNI_JAVA }   /* isjava */,
+  {     0,   461,  2811,   2,   5, UNI_KHMR }   /* iskhmer */,
+  {     1,  3130,  6945,   7,  15, UNI_GEOMETRICSHAPESEXT }   /* blk=geometricshapesext */,
+  {     1,  4424,  1255,  17,   7, UNI_SIDD }   /* scriptextensions=siddham */,
+  {     1,  1823,   909,   7,   8, UNI_BALI }   /* script=balinese */,
+  {     0,   309,  1376,   2,   9, UNI_INSAMARITAN }   /* insamaritan */,
+  {    13,  1823,     0,  11,   0, UNI_SC__MLYM }   /* script=mlym */,
+  {     1,  1823,   426,   7,   3, UNI_MRO }   /* script=mro */,
+  {   194,  2536,  4267,   3,   4, UNI_JG__TETH }   /* jg=teth */,
+  {    66,  1994,   353,   7,   4, UNI_RADICAL }   /* radical=yes */,
+  {     5,  7011,     0,  24,   0, UNI_ccc_values_index }   /* canonicalcombiningclass= */,
+  {   110,  4360,  2621,  10,   9, UNI_LB__SG }   /* linebreak=surrogate */,
+  {     1,   597,   946,   3,   5, UNI_DT__SUP }   /* dt=super */,
+  {     5,  4424,    74,  17,   4, UNI_CYRL }   /* scriptextensions=cyrl */,
+  {    23,  1667,  1294,   4,   9, UNI_INNABATAEAN }   /* blk=nabataean */,
+  {    70,  6165,  2045,   3,  12, UNI_SC__GONM }   /* sc=masaramgondi */,
+  {     0,  1102,  1027,   4,   4, UNI_YEZI }   /* scx=yezi */,
+  {    34,  2180,  2107,   4,   8, UNI_NV__9_SLASH_2 }   /* nv=4.500e+00 */,
+  {     0,  5255,     0,  20,   0, UNI_EXTPICT }   /* extendedpictographic */,
+  {   124,  7011,  2165,  24,   2, UNI_CCC__33 }   /* canonicalcombiningclass=33 */,
+  {     0,  2287,  6262,   4,   3, UNI_IN__12_DOT_1 }   /* in=12.1 */,
+  {    44,  3407,     0,  14,   0, UNI_NV__4 }   /* numericvalue=4 */,
+  {     0,  1102,  4487,   4,   6, UNI_ZYYY }   /* scx=common */,
+  { 13410,  6165,  1686,   4,  10, UNI_SC__CPMN }   /* sc=cyprominoan */,
+  {     1,   832,   585,   5,   5, UNI_STERM }   /* sterm=true */,
+  {     0,  7274,  4150,   9,  11, UNI_P }   /* category=punctuation */,
+  {     2,  6797,     0,  19,   0, UNI_DEVANAGARIEXTA }   /* devanagariextendeda */,
+  {     0,   461,   253,   2,   4, UNI_CWCF }   /* iscwcf */,
+  {     1,  5637,   163,  21,   2, UNI_GCB__PP }   /* graphemeclusterbreak=pp */,
+  {     0,  4424,  1086,  17,   4, UNI_KTHI }   /* scriptextensions=kthi */,
+  {     0,  7011,   461,  24,   2, UNI_CCC__IS }   /* canonicalcombiningclass=is */,
+  {    10,  7648,  1707,  18,   3, UNI_DT__FRA }   /* decompositiontype=fra */,
+  {     2,   461,  2665,   2,  13, UNI_PATSYN }   /* ispatternsyntax */,
+  {     0,  6165,  3692,   3,   4, UNI_LISU }   /* sc=lisu */,
+  {     0,  6165,   615,   3,   4, UNI_ELYM }   /* sc=elym */,
+  {    81,  2766,  4827,   3,  18, UNI_ZP }   /* gc=paragraphseparator */,
+  {    30,  7591,  3325,   3,  12, UNI_LB__HL }   /* lb=hebrewletter */,
+  {     8,   461,   951,   2,   8, UNI_DUPL }   /* isduployan */,
+  {     7,   461,  1611,   2,   2, UNI_LOWERCASELETTER }   /* isll */,
+  {    34,   461,  3709,   2,  11, UNI_MC }   /* isspacingmark */,
+  {     5,  7267,     8,  16,   1, UNI_P }   /* generalcategory=p */,
+  {    28,   533,  5144,   3,   5, UNI_SB__AT }   /* sb=aterm */,
+  {     0,  2324,  4090,   6,  17, UNI_INDICSIYAQNUMBERS }   /* block=indicsiyaqnumbers */,
+  {     0,  5205,  7620,   5,  28, UNI_MISCARROWS }   /* blk=miscellaneoussymbolsandarrows */,
+  {     1,  8356,     0,  11,   0, UNI_CO }   /* category=co */,
+  {     0,  6165,   450,   3,   4, UNI_MIAO }   /* sc=plrd */,
+  {     6,  4424,  3505,  16,   5, UNI_ETHI }   /* scriptextensions=ethi */,
+  {     0,  2324,  5838,   6,  10, UNI_JAMO }   /* block=hanguljamo */,
+  {    38,  2752,  1185,   3,   6, UNI_EMOTICONS }   /* emoticons */,
+  {     0,  5916,   934,  21,   2, -UNI_LOE }   /* logicalorderexception=f */,
+  {     0,   271,    21,   4,   2, UNI_GCB__EX }   /* gcb=ex */,
+  {    21,  4161,   934,   9,   6, -UNI_DIA }   /* diacritic=false */,
+  {    64,   461,  1438,   2,  10, UNI_CHRS }   /* ischorasmian */,
+  {     0,  3013,     0,   5,   0, UNI_EPRES }   /* epres */,
+  {     0,  4161,   353,   9,   4, UNI_DIA }   /* diacritic=yes */,
+  {     3,  2324,  8142,   6,  18, UNI_IDEOGRAPHICSYMBOLS }   /* block=ideographicsymbols */,
+  {     0,   120,     0,   3,   0, UNI_LAO }   /* lao */,
+  {   259,  1992,     0,  10,   0, UNI_YIRADICALS }   /* yiradicals */,
+  {     1,  2503,   585,   5,   5, UNI_JOINC }   /* joinc=true */,
+  {    48,  5255,   585,  20,   5, UNI_EXTPICT }   /* extendedpictographic=true */,
+  {   110,   461,  1454,   2,   2, UNI_SD }   /* issd */,
+  {     2,  6287,    87,   4,   2, UNI_BC__LRE }   /* bc=lre */,
+  {     2,   629,   352,   5,   2, UNI_grbase_values_index }   /* grbase= */,
+  {     0,  7383,    83,  10,   2, UNI_BC__ON }   /* bidiclass=on */,
+  {     0,  2324,  8214,   7,  24, UNI_DIACRITICALS }   /* block=combiningdiacriticalmarks */,
+  {   205,  4502,     0,  18,   0, UNI_LATINEXTB }   /* blk=latinextendedb */,
+  {    24,  7648,  7201,  17,   4, UNI_DT__SUP }   /* decompositiontype=sup */,
+  {    10,  4852,     0,  10,   0, UNI_XPOSIXSPACE }   /* whitespace */,
+  {    57,   309,  1978,   2,   7, UNI_INSOGDIAN }   /* insogdian */,
+  {     0,  6735,  1193,  22,   3, UNI_JG__MALAYALAMNGA }   /* joininggroup=malayalamnga */,
+  {     0,  7591,     0,   3,   0, UNI_lb_values_index }   /* lb= */,
+  {     3,  7752,  5433,  23,   7, UNI_JG__MANICHAEANHUNDRED }   /* joininggroup=manichaeanhundred */,
+  {     1,  4424,  1376,  17,   9, UNI_SAMR }   /* scriptextensions=samaritan */,
+  {     7,  2324,  8474,   9,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* block=cjkcompatibilityideographssupplement */,
+  {     1,  1391,   652,   3,   2, UNI_WB__MB }   /* wb=mb */,
+  {     0,   309,  4725,   2,  16, UNI_TANGUTSUP }   /* intangutsupplement */,
+  {     0,  2766,    13,   3,   2, UNI_LM }   /* gc=lm */,
+  {     1,   461,    27,   2,   4, UNI_ARMI }   /* isarmi */,
+  {     1,  2766,    65,   3,   2, UNI_MN }   /* gc=mn */,
+  {     0,  1562,     0,   4,   0, UNI_NAGM }   /* nagm */,
+  {     0,  2752,   353,  14,   4, UNI_ECOMP }   /* emojicomponent=yes */,
+  {     1,  6165,   240,   3,   4, UNI_SC__ZYYY }   /* sc=zyyy */,
+  {    13,  4424,   220,  17,   4, UNI_WCHO }   /* scriptextensions=wcho */,
+  {     5,  2403,  5848,   8,   9, UNI_ETHIOPICEXTA }   /* ethiopicextendeda */,
+  {     0,  1667,  1556,   4,   6, UNI_ARROWS }   /* blk=arrows */,
+  {     2,  1102,   794,   4,   4, UNI_LANA }   /* scx=lana */,
+  {     7,   309,  1556,   2,   6, UNI_ARROWS }   /* inarrows */,
+  {     6,  1823,  3692,   7,   4, UNI_LISU }   /* script=lisu */,
+  {     0,   339,   344,   4,   3, UNI_CCC__BL }   /* ccc=218 */,
+  {     0,   461,  3325,   2,   4, UNI_HEBR }   /* ishebr */,
+  {     0,  1094,     0,   4,   0, UNI_MERC }   /* merc */,
+  {     1,    33,  7304,   1,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* symbolsandpictographsexta */,
+  {     0,  7274,  3191,   8,   7, UNI_L }   /* category=letter */,
+  {     4,  1102,  5876,   4,   4, UNI_SUND }   /* scx=sund */,
+  {     2,   309,  6185,   2,  20, UNI_GLAGOLITICSUP }   /* inglagoliticsupplement */,
+  {     0,  7274,  3706,   9,  14, UNI_MN }   /* category=nonspacingmark */,
+  {    22,  5553,   934,  21,   2, -UNI_CWCM }   /* changeswhencasemapped=f */,
+  {     0,  2324,  3325,   6,   6, UNI_INHEBREW }   /* block=hebrew */,
+  {     6,   461,  5958,   2,  21, UNI_SINHALAARCHAICNUMBERS }   /* issinhalaarchaicnumbers */,
+  {     0,  7084,  4511,   8,   9, UNI_ARABICEXTB }   /* inarabicextendedb */,
+  {    28,  2324,  4131,   6,   8, UNI_VEDICEXT }   /* block=vedicext */,
+  {    15,  5979,  1461,  17,   4, UNI_VO__TR }   /* vo=transformedrotated */,
+  {     0,  2483,     0,   5,   0, UNI_CASED }   /* cased */,
+  {     0,   517,     0,   4,   0, UNI_NV__7 }   /* nv=7 */,
+  {     7,  1823,  1009,   7,   6, UNI_LYCI }   /* script=lycian */,
+  {     0,  2966,  8001,   3,  29, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* insymbolsandpictographsextendeda */,
+  {     0,  4852,   352,   9,   5, UNI_XPOSIXSPACE }   /* whitespace=yes */,
+  {   262,  3021,  1314,   5,   2, UNI_IN__10 }   /* in=v100 */,
+  {    76,  4161,   599,   9,   2, -UNI_DIA }   /* diacritic=n */,
+  {     3,  2832,  1505,  10,   4, UNI_CYRILLICEXTA }   /* iscyrillicexta */,
+  {     0,   339,  2742,   4,  10, UNI_CCC__6 }   /* ccc=hanreading */,
+  {    34,  3558,     0,   9,   0, UNI_Z }   /* separator */,
+  {     7,  1734,   811,   3,   3, UNI_SYRC }   /* issyrc */,
+  {   151,  3502,  5848,  12,   9, UNI_ETHIOPICEXTA }   /* blk=ethiopicextendeda */,
+  {    80,  2536,  7342,   3,  10, UNI_JG__TEHMARBUTA }   /* jg=tehmarbuta */,
+  {   165,  6165,   434,   3,   4, UNI_OGAM }   /* sc=ogam */,
+  {     4,  4424,   909,  17,   8, UNI_BALI }   /* scriptextensions=balinese */,
+  {    10,  1906,  4511,   8,   9, UNI_KANAEXTB }   /* blk=kanaextendedb */,
+  {     6,  6165,  3663,   3,  10, UNI_SC__DEVA }   /* sc=devanagari */,
+  {     6,  2208,   763,   4,   2, UNI_NV__5_SLASH_6 }   /* nv=5/6 */,
+  {     0,  1530,   109,   3,   3, UNI_KAWI }   /* iskawi */,
+  {     3,  8601,  6671,   7,  21, UNI_MODIFIERLETTERS }   /* block=spacingmodifierletters */,
+  {     1,  3001,  3263,  12,   7, UNI_XPOSIXDIGIT }   /* numerictype=decimal */,
+  {    53,  7724,   934,  17,   2, -UNI_VS }   /* variationselector=f */,
+  {     0,  3633,    81,   9,   2, UNI_LATINEXTG }   /* inlatinextg */,
+  {     0,  4424,  1003,  17,   4, UNI_LEPC }   /* scriptextensions=lepc */,
+  {     4,  6450,     6,  14,   2, UNI_LB__CR }   /* sentencebreak=cr */,
+  {     0,  7648,  3484,  18,   6, UNI_DT__SQR }   /* decompositiontype=square */,
+  {    82,  2280,  2656,  11,   3, UNI_IN__15 }   /* presentin=15.0 */,
+  {     2,  1823,  1125,   7,   8, UNI_TFNG }   /* script=tifinagh */,
+  {     0,  7274,     0,   9,   0, UNI_gc_values_index }   /* category= */,
+  {     3,  2018,  7683,   7,   6, UNI_JT__L }   /* joiningtype=l */,
+  {     1,  2232,  2657,   4,   8, UNI_NV__4_SLASH_5 }   /* nv=8.000e-01 */,
+  {     2,  7084,  7545,   6,  20, UNI_ARABICPFA }   /* inarabicpresentationformsa */,
+  {     1,  1102,   442,   4,   4, UNI_ORKH }   /* scx=orkh */,
+  {     0,  6165,  1812,   3,  11, UNI_HMNG }   /* sc=pahawhhmong */,
+  {    87,  4941,  3622,   9,  11, UNI_KANGXI }   /* block=kangxiradicals */,
+  {     0,  1530,   490,   5,   3, UNI_KANBUN }   /* iskanbun */,
+  {     0,  3013,   585,   5,   5, UNI_EPRES }   /* epres=true */,
+  {     0,   461,   450,   2,   4, UNI_MIAO }   /* isplrd */,
+  {     0,   312,     0,   5,   0, UNI_QMARK }   /* qmark */,
+  {     0,   718,  3622,   3,   3, UNI_KANGXI }   /* kangxi */,
+  {     4,  3724,  4724,  12,   3, UNI_JG__MALAYALAMTTA }   /* jg=malayalamtta */,
+  {     0,  2301,  5671,  10,   3, -UNI_XIDC }   /* xidcontinue=n */,
+  {   258,  4360,   380,  10,   2, UNI_LB__HY }   /* linebreak=hy */,
+  {     6,  3040,   599,  13,   2, -UNI_QMARK }   /* quotationmark=n */,
+  {     0,   461,  3421,   2,  15, UNI_NARB }   /* isoldnortharabian */,
+  {     8,   461,  1098,   2,   4, UNI_NSHU }   /* isnshu */,
+  {     1,  4360,  2041,  10,   2, UNI_LB__H3 }   /* linebreak=h3 */,
+  {    12,  4424,   176,  17,   4, UNI_ROHG }   /* scriptextensions=rohg */,
+  {     0,  3378,   599,  13,   2, UNI_DT__CAN }   /* nfdquickcheck=n */,
+  {     3,  2324,  1033,   6,   8, UNI_JAMOEXTB }   /* block=jamoextb */,
+  {     0,  5216,   204,  13,   2, UNI_LATINEXTF }   /* block=latinextf */,
+  {    26,  2523,  4569,   8,   5, UNI_XPOSIXUPPER }   /* isxposixupper */,
+  {     0,  7591,  2609,   3,  10, UNI_LB__WJ }   /* lb=wordjoiner */,
+  {     0,  2324,  2373,   8,   5, UNI_CJKEXTE }   /* block=cjkexte */,
+  {   138,  5065,   225,  13,   2, UNI_JG__MANICHAEANPE }   /* jg=manichaeanpe */,
+  {     0,  2324,  2411,   6,  11, UNI_KATAKANAEXT }   /* block=katakanaext */,
+  {     1,  1823,   725,   7,   7, UNI_SC__KALI }   /* script=kayahli */,
+  {     2,   609,  2029,   2,  10, UNI_LB__B2 }   /* lb=breakboth */,
+  {    27,   533,  1165,   3,   2, UNI_SB__CL }   /* sb=cl */,
+  {     4,  6163,  6416,  12,  11, UNI_INSC__CONSONANTSUBJOINED }   /* insc=consonantsubjoined */,
+  {     9,  6735,   135,  14,   2, UNI_JG__MIM }   /* joininggroup=mim */,
+  {   132,  7274,  4569,   9,  15, UNI_UPPERCASELETTER }   /* category=uppercaseletter */,
+  {     3,    15,  3889,   2,   3, UNI_AGE__9 }   /* age=9 */,
+  {     4,  8619,     0,  21,   0, UNI_MATHOPERATORS }   /* mathematicaloperators */,
+  {     0,  5658,   753,  18,   4, UNI_IDENTIFIERTYPE__NOTNFKC }   /* identifiertype=notnfkc */,
+  {    14,  1102,  1367,   4,   9, UNI_PAUC }   /* scx=paucinhau */,
+  {     0,  2432,  3788,   3,  15, UNI_MISCMATHSYMBOLSA }   /* inmiscmathsymbolsa */,
+  {     0,  6163,  7690,  13,  17, UNI_INSC__CONSONANTINITIALPOSTFIXED }   /* insc=consonantinitialpostfixed */,
+  {    65,   461,  7892,   2,  16, UNI_UIDEO }   /* isunifiedideograph */,
+  {    33,  2766,  1887,   3,   7, UNI_XPOSIXCNTRL }   /* gc=control */,
+  {     0,  2060,   599,   5,   3, -UNI_XPOSIXALPHA }   /* alpha=no */,
+  {    50,  2324,  8407,   7,  34, UNI_DIACRITICALSFORSYMBOLS }   /* block=combiningdiacriticalmarksforsymbols */,
+  {     0,  1823,   462,   7,   4, UNI_SHAW }   /* script=shaw */,
+  {     3,  1726,  4987,   3,   9, UNI_ALCHEMICAL }   /* isalchemical */,
+  {     0,  6677,     0,  14,   0, UNI_LM }   /* modifierletter */,
+  {   103,   461,  5255,   2,  20, UNI_EXTPICT }   /* isextendedpictographic */,
+  {    16,  4941,  5848,  10,   9, UNI_KANAEXTA }   /* block=kanaextendeda */,
+  {     1,  7383,   535,   9,   2, UNI_BC__S }   /* bidiclass=s */,
+  {     0,   461,  1685,   2,  11, UNI_CPMN }   /* iscyprominoan */,
+  {    54,  6165,  1543,   3,   4, UNI_KHAR }   /* sc=khar */,
+  {     0,  3391,   393,  13,   2, UNI_NV__15 }   /* numericvalue=15 */,
+  {     4,  3391,  1069,  14,   2, UNI_NV__2_SLASH_3 }   /* numericvalue=2/3 */,
+  {     3,  1198,  6382,   5,  18, UNI_CJKCOMPATFORMS }   /* incjkcompatibilityforms */,
+  {   389,  4060,     0,  15,   0, UNI_BRAI }   /* braillepatterns */,
+  {     0,  6427,  2009,  13,   9, UNI_JG__SYRIACWAW }   /* joininggroup=syriacwaw */,
+  {     2,    16,  1794,   1,   3, UNI_M }   /* gc=m */,
+  {     3,  2718,  6310,   3,  20, UNI_BC__PDF }   /* bc=popdirectionalformat */,
+  {     1,  4683,     0,  16,   0, UNI_PF }   /* finalpunctuation */,
+  {    10,  4360,  7593,   9,  27, UNI_LB__CJ }   /* linebreak=conditionaljapanesestarter */,
+  {    71,   461,  4089,   2,   4, UNI_SIND }   /* issind */,
+  {    69,  2004,  3100,   4,   6, UNI_POSIXDIGIT }   /* posixdigit */,
+  {     2,  4391,   346,  15,   1, UNI_NV__3_SLASH_8 }   /* numericvalue=3/8 */,
+  {     0,   533,  4191,   3,   5, UNI_SB__LO }   /* sb=lower */,
+  {    69,  2324,  6776,   6,  21, UNI_MEETEIMAYEKEXT }   /* block=meeteimayekextensions */,
+  {     1,  4569,   352,   8,   2, UNI_upper_values_index }   /* uppercase= */,
+  {     3,  1894,   934,   5,   2, -UNI_BIDIM }   /* bidim=f */,
+  {    29,  6450,   832,  14,   5, UNI_SB__ST }   /* sentencebreak=sterm */,
+  {    21,  3098,   585,   8,   5, UNI_XPOSIXXDIGIT }   /* hexdigit=true */,
+  {     1,  2483,   934,   5,   2, -UNI_CASED }   /* cased=f */,
+  {     1,  6514,     0,  10,   0, UNI_CO }   /* privateuse */,
+  {     0,    71,   353,   3,   2, UNI_CWU }   /* cwu=y */,
+  {     1,  7383,  1715,  21,   7, UNI_BC__LRI }   /* bidiclass=lefttorightisolate */,
+  {     5,  6427,  1920,  13,   3, UNI_JG__TAH }   /* joininggroup=tah */,
+  {     0,  3583,     0,  16,   0, UNI_HIGHPUSURROGATES }   /* highpusurrogates */,
+  {     0,  7267,  7110,  16,  13, UNI_M }   /* generalcategory=combiningmark */,
+  {     8,  6165,  3349,   3,  15, UNI_MERC }   /* sc=meroiticcursive */,
+  {     2,  1667,   847,   4,   7, UNI_INTAITHAM }   /* blk=taitham */,
+  {     1,  1396,  2931,   7,   3, UNI_XIDS }   /* xidstart=t */,
+  {     5,  2494,  6945,   5,  20, UNI_GEOMETRICSHAPESEXT }   /* isgeometricshapesextended */,
+  {     0,  1272,  6400,   5,  11, UNI_CJKRADICALSSUP }   /* iscjkradicalssup */,
+  {     7,  1823,  5778,   7,  21, UNI_PRTI }   /* script=inscriptionalparthian */,
+  {     0,   641,   140,   4,   2, UNI_HST__NA }   /* hst=na */,
+  {     0,   461,  6986,   2,  25, UNI_SYMBOLSFORLEGACYCOMPUTING }   /* issymbolsforlegacycomputing */,
+  {    73,  2302,   585,  10,   5, UNI_IDC }   /* idcontinue=true */,
+  {    19,    30,  1116,   1,   5, UNI_TAGB }   /* istagb */,
+  {     2,   461,  7110,   2,  13, UNI_M }   /* iscombiningmark */,
+  {     0,  3677,  4698,   6,  12, UNI_LATIN1 }   /* islatin1supplement */,
+  {    13,  1424,   520,   8,   1, UNI_CCC__17 }   /* ccc=ccc17 */,
+  {    13,  1667,     0,   7,   0, UNI_CJK }   /* blk=cjk */,
+  {    38,   461,  1992,   2,  10, UNI_YIRADICALS }   /* isyiradicals */,
+  {     3,  1611,     0,   2,   0, UNI_LOWERCASELETTER }   /* ll */,
+  {     0,  7648,  7011,  18,   9, UNI_DT__CAN }   /* decompositiontype=canonical */,
+  {     0,  8601,  5813,   9,   7, UNI_SUPARROWSB }   /* block=suparrowsb */,
+  {    30,  1823,   615,   7,   7, UNI_ELYM }   /* script=elymaic */,
+  {    29,  1823,  1248,   7,   4, UNI_SC__PHAG }   /* script=phag */,
+  {    29,  1174,  3123,   3,   7, UNI_EA__N }   /* ea=neutral */,
+  {     0,  4424,  1262,  17,   4, UNI_SOYO }   /* scriptextensions=soyo */,
+  {     0,  6165,    23,   3,   4, UNI_AHOM }   /* sc=ahom */,
+  {    65,  1102,  4926,   4,   5, UNI_TAML }   /* scx=tamil */,
+  {    38,   339,  2092,   4,   2, UNI_CCC__25 }   /* ccc=25 */,
+  {     2,  1424,   348,   7,   2, UNI_CCC__91 }   /* ccc=ccc91 */,
+  {     2,  4941,  1505,  10,   4, UNI_KANAEXTA }   /* block=kanaexta */,
+  {     5,  5658,     0,  15,   0, UNI_identifiertype_values_index }   /* identifiertype= */,
+  {   130,   309,  6900,   2,  23, UNI_BYZANTINEMUSIC }   /* inbyzantinemusicalsymbols */,
+  {    62,  4584,   599,  18,   3, -UNI_IDST }   /* idstrinaryoperator=no */,
+  {     2,  3514,  4659,  12,   9, UNI_ARABICEXTC }   /* block=arabicextendedc */,
+  {    71,  4569,  5671,   8,   3, -UNI_XPOSIXUPPER }   /* uppercase=n */,
+  {    11,   339,   295,   5,   1, UNI_CCC__19 }   /* ccc=19 */,
+  {     2,  7648,  2030,  20,   5, UNI_DT__NB }   /* decompositiontype=nobreak */,
+  {     0,  6090,  7620,   7,  19, UNI_MISCSYMBOLS }   /* block=miscellaneoussymbols */,
+  {     8,  3908,  3696,   6,  10, UNI_TANGUTSUP }   /* tangutsupplement */,
+  {     0,  2324,  1872,   6,  11, UNI_YISYLLABLES }   /* block=yisyllables */,
+  {     1,   876,   934,   4,   2, -UNI_IDEO }   /* ideo=f */,
+  {   118,   461,   802,   2,   4, UNI_SARB }   /* issarb */,
+  {   224,   309,  8660,   2,  43, UNI_UCASEXTA }   /* inunifiedcanadianaboriginalsyllabicsextendeda */,
+  {   211,  4941,  1286,   7,   8, UNI_INKHUDAWADI }   /* block=khudawadi */,
+  {    70,     0,     0,   2,   0, UNI_CASEDLETTER }   /* l& */,
+  {     0,   461,  5778,   2,  21, UNI_PRTI }   /* isinscriptionalparthian */,
+  {     1,  2002,  1082,   7,   4, UNI_POSIXWORD }   /* isposixword */,
+  {   204,     8,  1659,   1,   8, UNI_POSIXSPACE }   /* perlspace */,
+  {     0,  2718,  7181,   3,  17, UNI_BC__ES }   /* bc=europeanseparator */,
+  {     2,   461,   184,   2,   4, UNI_SAMR }   /* issamr */,
+  {     1,  4424,  1853,  17,  11, UNI_SYLO }   /* scriptextensions=sylotinagri */,
+  {     0,  1906,  3696,   8,  10, UNI_KANASUP }   /* blk=kanasupplement */,
+  {    67,  2324,  2411,   6,   8, UNI_INKATAKANA }   /* block=katakana */,
+  {     0,  4852,   933,   9,   3, -UNI_XPOSIXSPACE }   /* whitespace=f */,
+  {     0,  8343,  2452,  22,   8, UNI_INSC__AVAGRAHA }   /* indicsyllabiccategory=avagraha */,
+  {     1,   461,  2411,   2,   8, UNI_KANA }   /* iskatakana */,
+  {     3,    17,   984,   1,   3, UNI_HIRA }   /* hira */,
+  {     2,   266,   934,   3,   6, -UNI_CWT }   /* cwt=false */,
+  {     1,  4424,   200,  17,   4, UNI_TAVT }   /* scriptextensions=tavt */,
+  {     0,  4424,  8667,  17,  18, UNI_CANS }   /* scriptextensions=canadianaboriginal */,
+  {    69,  4043,   585,   4,   5, UNI_IDSB }   /* idsb=true */,
+  {   194,  1198,  8214,   3,  24, UNI_DIACRITICALS }   /* incombiningdiacriticalmarks */,
+  {    67,  5068,     0,  10,   0, UNI_MANI }   /* manichaean */,
+  {     0,  7648,   604,  18,   4, UNI_EA__F }   /* decompositiontype=wide */,
+  {     0,  8071,  4218,  30,   4, UNI_CJKEXTH }   /* blk=cjkunifiedideographsextensionh */,
+  {   144,  1823,   204,   7,   4, UNI_TFNG }   /* script=tfng */,
+  {     1,   461,   322,   2,   5, UNI_VSSUP }   /* isvssup */,
+  {     3,   605,   642,   2,   3, UNI_idst_values_index }   /* idst= */,
+  {   140,  2324,  1262,   6,   7, UNI_INSOYOMBO }   /* block=soyombo */,
+  {     2,  2732,  1141,  10,   3, UNI_ARABICPFA }   /* blk=arabicpfa */,
+  {     0,  7267,  3554,  16,  13, UNI_ZL }   /* generalcategory=lineseparator */,
+  {   193,  1102,   426,   4,   4, UNI_MRO }   /* scx=mroo */,
+  {     1,  1823,   537,   7,   4, UNI_TANG }   /* script=tang */,
+  {     1,   406,   585,   2,   5, UNI_DI }   /* di=true */,
+  {     0,   461,  1385,   2,   4, UNI_THAA }   /* isthaa */,
+  {     2,   552,  2083,   5,   2, UNI_AGE__5_DOT_1 }   /* age=5.1 */,
+  {     0,  3791,   353,   4,   4, UNI_MATH }   /* math=yes */,
+  {    12,  1102,  5682,   4,   5, UNI_GREK }   /* scx=greek */,
+  {     1,  4424,   422,  17,   4, UNI_LINA }   /* scriptextensions=lina */,
+  {     0,  3093,   934,  13,   2, -UNI_POSIXXDIGIT }   /* asciihexdigit=f */,
+  {     3,  3635,  4770,  13,  10, UNI_LATINEXTADDITIONAL }   /* latinextendedadditional */,
+  {    66,  5255,   353,  20,   2, UNI_EXTPICT }   /* extendedpictographic=y */,
+  {     0,   895,   290,   5,   2, UNI_AGE__4 }   /* age=v40 */,
+  {    17,  2324,   283,   6,   5, UNI_INNUSHU }   /* block=nushu */,
+  {    20,  2718,  2728,  10,   4, UNI_BC__R }   /* bc=righttoleft */,
+  {     7,  1823,   454,   7,   4, UNI_PRTI }   /* script=prti */,
+  {     1,  4424,    78,  17,   4, UNI_DSRT }   /* scriptextensions=dsrt */,
+  {     1,  2220,  2091,   4,   8, UNI_NV__5_SLASH_8 }   /* nv=6.250e-01 */,
+  {     0,  4424,    55,  17,   4, UNI_CHAM }   /* scriptextensions=cham */,
+  {     0,  8343,  5731,  23,  15, UNI_INSC__CANTILLATIONMARK }   /* indicsyllabiccategory=cantillationmark */,
+  {     1,  2988,  2327,  11,   3, UNI_nfcqc_values_index }   /* nfcquickcheck= */,
+  {    30,  1065,  3876,   5,   2, UNI_NV__1_SLASH_80 }   /* nv=1/80 */,
+  {    15,  7274,  4002,   9,  14, UNI_SK }   /* category=modifiersymbol */,
+  {     0,  2324,  5958,   6,   7, UNI_INSINHALA }   /* block=sinhala */,
+  {     0,  4424,   802,  17,   4, UNI_SARB }   /* scriptextensions=sarb */,
+  {   169,    71,   585,   3,   5, UNI_CWU }   /* cwu=true */,
+  {     1,  3021,   394,   4,   2, UNI_IN__5_DOT_1 }   /* in=v51 */,
+  {     0,  1102,  4620,   4,   7, UNI_LINB }   /* scx=linearb */,
+  {     1,  8505,  3263,   3,   7, UNI_XPOSIXDIGIT }   /* nt=decimal */,
+  {    82,  4424,  1105,  16,   5, UNI_TALU }   /* scriptextensions=talu */,
+  {     0,  7383,   119,  10,   2, UNI_BC__AL }   /* bidiclass=al */,
+  {   259,  3391,   289,  13,   1, UNI_NV__0 }   /* numericvalue=0 */,
+  {     0,  3021,   396,   4,   2, UNI_IN__6_DOT_1 }   /* in=v61 */,
+  {    32,     4,   352,   2,   2, UNI_loe_values_index }   /* loe= */,
+  {    10,   309,  4862,   2,  18, UNI_RUMI }   /* inruminumeralsymbols */,
+  {     0,  1396,   353,   4,   4, UNI_XIDS }   /* xids=yes */,
+  {     1,  6165,   790,   3,   4, UNI_SC__KALI }   /* sc=kali */,
+  {     0,  8601,   819,   7,   6, UNI_SC__SHRD }   /* block=sharada */,
+  {    51,  1823,    39,   7,   4, UNI_BHKS }   /* script=bhks */,
+  {     1,  4424,   663,  17,   4, UNI_LIMB }   /* scriptextensions=limb */,
+  {     1,  7267,  4602,  16,  18, UNI_PI }   /* generalcategory=initialpunctuation */,
+  {     0,  5876,     0,   9,   0, UNI_SUND }   /* sundanese */,
+  {     0,  1102,   806,   4,   4, UNI_SHRD }   /* scx=shrd */,
+  {     1,   461,  3727,   2,   9, UNI_MLYM }   /* ismalayalam */,
+  {     2,  2718,  3118,   3,  12, UNI_BC__ON }   /* bc=otherneutral */,
+  {   142,  1823,    98,   7,   4, UNI_HLUW }   /* script=hluw */,
+  {     1,  2766,  3101,   3,   5, UNI_XPOSIXDIGIT }   /* gc=digit */,
+  {     3,   461,  5373,   2,  18, UNI_TAIXUANJING }   /* istaixuanjingsymbols */,
+  {     4,   461,   653,   2,   5, UNI_BUHD }   /* isbuhid */,
+  {     1,  1200,  1448,   3,   7, UNI_CJKSTROKES }   /* cjkstrokes */,
+  {     0,    30,  1190,   1,   5, UNI_BENG }   /* isbeng */,
+  {   135,  2766,   115,   3,   2, UNI_SK }   /* gc=sk */,
+  {    11,  1102,   668,   4,   5, UNI_OGAM }   /* scx=ogham */,
+  {     3,  2766,  5172,   3,   2, UNI_CASEDLETTER }   /* gc=l_ */,
+  {     2,  4424,  1522,  17,   8, UNI_UGAR }   /* scriptextensions=ugaritic */,
+  {     0,  1823,   739,   7,   4, UNI_SC__MAND }   /* script=mand */,
+  {     8,  1272,  5694,   3,  10, UNI_COUNTINGROD }   /* iscountingrod */,
+  {   263,  1667,  8214,   5,  32, UNI_DIACRITICALSEXT }   /* blk=combiningdiacriticalmarksextended */,
+  {     0,  2324,   426,   6,   3, UNI_INMRO }   /* block=mro */,
+  {   147,  8660,     0,  42,   0, UNI_UCASEXT }   /* unifiedcanadianaboriginalsyllabicsextended */,
+  {   140,  1894,   599,  12,   2, -UNI_BIDIM }   /* bidimirrored=n */,
+  {     1,  4852,   352,   9,   2, UNI_wspace_values_index }   /* whitespace= */,
+  {    38,  4970,     0,  13,   0, UNI_EMOD }   /* emojimodifier */,
+  {     1,  7648,  1707,  18,   8, UNI_DT__FRA }   /* decompositiontype=fraction */,
+  {     0,   375,   598,   4,   3, -UNI_GREXT }   /* grext=n */,
+  {     0,  2324,   216,   6,   4, UNI_INTOTO }   /* block=toto */,
+  {   132,  5939,   934,   5,   6, -UNI__PERL_NCHAR }   /* nchar=false */,
+  {    36,  3817,  2224,  14,   8, UNI_NV__1_SLASH_80 }   /* numericvalue=1.250e-02 */,
+  {     4,  4424,   798,  17,   4, UNI_NBAT }   /* scriptextensions=nbat */,
+  {     2,  2766,   199,   3,   2, UNI_TITLE }   /* gc=lt */,
+  {     0,   309,  1404,   2,  10, UNI_ASCII }   /* inbasiclatin */,
+  {     6,  6287,   298,   4,   2, UNI_BC__LRI }   /* bc=lri */,
+  {     2,   461,   622,   2,   7, UNI_EXTPICT }   /* isextpict */,
+  {     2,  2324,  2468,   6,  13, UNI_IPAEXT }   /* block=ipaextensions */,
+  {    35,  6165,    31,   3,   4, UNI_AVST }   /* sc=avst */,
+  {    18,  6165,  1262,   3,   4, UNI_SOYO }   /* sc=soyo */,
+  {     0,  4424,   188,  17,   4, UNI_SGNW }   /* scriptextensions=sgnw */,
+  {    40,  3984,   585,  17,   5, UNI_EPRES }   /* emojipresentation=true */,
+  {     4,   461,  7724,   2,  18, UNI_INVS }   /* isvariationselectors */,
+  {     0,   461,  2335,   2,  13, UNI_BLOCKELEMENTS }   /* isblockelements */,
+  {     9,  1396,   598,   7,   2, UNI_xids_values_index }   /* xidstart= */,
+  {     6,   309,  5876,   2,   9, UNI_INSUNDANESE }   /* insundanese */,
+  {    37,    20,  1104,   2,   3, UNI_XPOSIXXDIGIT }   /* hex=t */,
+  {    70,  4970,     0,  17,   0, UNI_EBASE }   /* emojimodifierbase */,
+  {   139,    30,  4190,   1,  10, UNI_XPOSIXLOWER }   /* islowercase */,
+  {   812,   940,   599,   6,   2, -UNI_COMPEX }   /* compex=n */,
+  {     0,  1102,   499,   4,   4, UNI_LYDI }   /* scx=lydi */,
+  {   228,  4424,   634,  17,   7, UNI_HANO }   /* scriptextensions=hanunoo */,
+  {     0,  1102,  1117,   4,   8, UNI_TAGB }   /* scx=tagbanwa */,
+  {     1,   461,   875,   2,   5, UNI_UIDEO }   /* isuideo */,
+  {     0,  7198,  4710,   5,   8, UNI_SYRIACSUP }   /* blk=syriacsup */,
+  {     0,   232,     0,   4,   0, UNI_YI }   /* yiii */,
+  {    56,  1391,   700,   3,   2, UNI_WB__EB }   /* wb=em */,
+  {     0,   461,  4161,   2,  12, UNI_DIACRITICALS }   /* isdiacriticals */,
+  {     0,   112,   114,   2,   2, UNI_KITS }   /* kits */,
+  {     3,  1102,  1582,   4,  10, UNI_PHNX }   /* scx=phoenician */,
+  {     0,   461,     8,   2,   2, UNI_PC }   /* ispc */,
+  {     0,  2324,  1367,   6,   9, UNI_INPAUCINHAU }   /* block=paucinhau */,
+  {   320,  6185,     0,  10,   0, UNI_GLAG }   /* glagolitic */,
+  {    11,  1667,  2811,   4,  12, UNI_KHMERSYMBOLS }   /* blk=khmersymbols */,
+  {    29,  4502,  4770,  12,  10, UNI_LATINEXTADDITIONAL }   /* blk=latinextadditional */,
+  {   177,  7383,   176,  11,   2, UNI_BC__LRO }   /* bidiclass=lro */,
+  {     3,  2732,  2800,   5,  11, UNI_ALPHABETICPF }   /* blk=alphabeticpf */,
+  {     0,  6427,  4243,  13,   4, UNI_JG__HETH }   /* joininggroup=heth */,
+  {     5,  4360,  3463,  10,   4, UNI_LB__GL }   /* linebreak=glue */,
+  {     4,   461,  6120,   2,  22, UNI_DIACRITICALSFORSYMBOLS }   /* isdiacriticalsforsymbols */,
+  {    34,  1978,     0,   4,   0, UNI_SOGD }   /* sogd */,
+  {     0,   312,   599,   5,   2, -UNI_QMARK }   /* qmark=n */,
+  {     0,  6090,  7620,   7,  28, UNI_MISCARROWS }   /* block=miscellaneoussymbolsandarrows */,
+  {     0,  8601,  4150,   9,  11, UNI_SUPPUNCTUATION }   /* block=suppunctuation */,
+  {     0,  2287,     0,   3,   0, UNI_in_values_index }   /* in= */,
+  {     3,   939,   599,   5,   2, -UNI_ECOMP }   /* ecomp=n */,
+  {     1,  3490,  3640,  12,   9, UNI_CYRILLICEXTD }   /* blk=cyrillicextendedd */,
+  {    33,  1801,  1805,   7,   7, UNI_NV__10000000000 }   /* nv=10000000000 */,
+  {     0,  8601,  6103,   9,  13, UNI_SUPMATHOPERATORS }   /* block=supmathoperators */,
+  {     1,  2324,  4060,   6,   7, UNI_BRAI }   /* block=braille */,
+  {   259,    30,  4074,   1,  16, UNI_CURRENCYSYMBOLS }   /* iscurrencysymbols */,
+  {     0,   499,     0,   6,   0, UNI_LYDI }   /* lydian */,
+  {    16,  7591,  4783,   6,  12, UNI_LB__CB }   /* lb=contingentbreak */,
+  {   356,  4424,  1829,  16,   5, UNI_MLYM }   /* scriptextensions=mlym */,
+  {     0,  2004,   307,   5,   5, UNI_POSIXPRINT }   /* posixprint */,
+  {     4,   292,   766,   3,   3, UNI_NV__5_SLASH_2 }   /* nv=5/2 */,
+  {     3,  7752,  2015,  23,   3, UNI_JG__MANICHAEANWAW }   /* joininggroup=manichaeanwaw */,
+  {     3,  7648,  3289,  18,   5, UNI_DT__FIN }   /* decompositiontype=final */,
+  {     0,  6165,   493,   3,   6, UNI_SC__KHOJ }   /* sc=khojki */,
+  {   469,  4360,  4330,  10,  14, UNI_LB__PO }   /* linebreak=postfixnumeric */,
+  {     0,   823,   934,   4,   2, -UNI_DASH }   /* dash=f */,
+  {    96,  7198,  5409,   5,  11, UNI_SMALLKANAEXT }   /* blk=smallkanaext */,
+  {     2,  1823,   747,   8,   3, UNI_MARC }   /* script=marc */,
+  {     0,  1823,   434,   7,   4, UNI_OGAM }   /* script=ogam */,
+  {     0,  5799,  1269,   6,   3, UNI_SUPPUAB }   /* insuppuab */,
+  {     0,  6165,   658,   3,   5, UNI_SC__DOGR }   /* sc=dogra */,
+  {   101,   309,  4525,   2,  12, UNI_CYRILLICEXTC }   /* incyrillicextc */,
+  {    77,  4424,   434,  17,   4, UNI_OGAM }   /* scriptextensions=ogam */,
+  {     0,  6866,   353,  24,   2, UNI_COMPEX }   /* fullcompositionexclusion=y */,
+  {    16,  2780,     0,   4,   0, UNI_COPT }   /* copt */,
+  {     0,  6236,  1805,  15,   7, UNI_NV__100000000 }   /* numericvalue=100000000 */,
+  {   192,  7669,  1874,  21,   8, UNI_LB__H2 }   /* hangulsyllabletype=lvsyllable */,
+  {     0,  1455,   599,  10,   3, -UNI_DEP }   /* deprecated=no */,
+  {     0,  7495,  1070,  27,   2, UNI_CCC__31 }   /* canonicalcombiningclass=ccc31 */,
+  {     7,  3391,  2234,  12,  10, UNI_NV__1_SLASH_12 }   /* numericvalue=8.333e-02 */,
+  {     1,  4131,     0,  15,   0, UNI_VEDICEXT }   /* vedicextensions */,
+  {     0,  4360,  2004,  10,   2, UNI_LB__PO }   /* linebreak=po */,
+  {     1,  1102,   317,   4,   5, UNI_TALE }   /* scx=taile */,
+  {     0,  1823,   967,   7,   8, UNI_SC__GUJR }   /* script=gujarati */,
+  {     2,  7383,   330,  10,   3, UNI_BC__PDF }   /* bidiclass=pdf */,
+  {     0,  2665,   353,  13,   2, UNI_PATSYN }   /* patternsyntax=y */,
+  {    35,   939,   353,   5,   2, UNI_ECOMP }   /* ecomp=y */,
+  {     0,  1272,  4076,   3,  13, UNI_SC }   /* iscurrencysymbol */,
+  {   294,  1221,   324,   6,   3, UNI_KANASUP }   /* inkanasup */,
+  {    66,  3177,    17,  15,   1, UNI_EA__H }   /* eastasianwidth=h */,
+  {     2,    30,   614,   1,   8, UNI_INELYMAIC }   /* inelymaic */,
+  {    13,  2665,   934,  13,   2, -UNI_PATSYN }   /* patternsyntax=f */,
+  {     0,  8658,     0,  44,   0, UNI_UCASEXT }   /* isunifiedcanadianaboriginalsyllabicsextended */,
+  {   669,  6165,  1234,   3,   4, UNI_SC__MULT }   /* sc=mult */,
+  {     0,  1667,  2244,   4,  12, UNI_INOLDHUNGARIAN }   /* blk=oldhungarian */,
+  {     3,  6692,     0,  15,   0, UNI_TRANSPORTANDMAP }   /* transportandmap */,
+  {     0,  2324,  1438,   6,  10, UNI_INCHORASMIAN }   /* block=chorasmian */,
+  {     0,  6816,   274,  25,   1, UNI_cwkcf_values_index }   /* changeswhennfkccasefolded= */,
+  {     0,   302,   585,   5,   5, UNI__PERL_PATWS }   /* patws=true */,
+  {     2,   810,     0,   4,   0, UNI_SYRC }   /* syrc */,
+  {     7,   461,    11,   2,   4, UNI_ADLM }   /* isadlm */,
+  {     0,  1102,   406,   4,   4, UNI_DIAK }   /* scx=diak */,
+  {     1,  1102,  3436,   4,  15, UNI_SARB }   /* scx=oldsoutharabian */,
+  {     1,  3677,  4533,   7,   4, UNI_LATINEXTC }   /* islatinextc */,
+  {     0,  1667,  1696,   4,   6, UNI_DOMINO }   /* blk=domino */,
+  {    49,  1102,   240,   4,   4, UNI_ZYYY }   /* scx=zyyy */,
+  {     1,  6165,   283,   3,   5, UNI_NSHU }   /* sc=nushu */,
+  {   580,  4424,  1248,  17,   4, UNI_PHAG }   /* scriptextensions=phag */,
+  {   178,  4424,  4505,  16,   6, UNI_LATN }   /* scriptextensions=latin */,
+  {   282,    15,   554,   2,   3, UNI_AGE__5 }   /* age=5 */,
+  {     0,   324,  6965,   3,  22, UNI_SUPERANDSUB }   /* superscriptsandsubscripts */,
+  {     0,  4569,   584,   8,   6, UNI_XPOSIXUPPER }   /* uppercase=true */,
+  {     2,  7274,    13,   9,   2, UNI_LM }   /* category=lm */,
+  {     1,   629,   352,   5,   5, UNI_GRBASE }   /* grbase=yes */,
+  {     1,   461,  5937,   2,  21, UNI__PERL_NCHAR }   /* isnoncharactercodepoint */,
+  {     0,  4424,  4651,  17,   4, UNI_BOPO }   /* scriptextensions=bopo */,
+  {     1,  5637,  3709,  21,  11, UNI_GCB__SM }   /* graphemeclusterbreak=spacingmark */,
+  {    17,  2324,  4131,   6,  15, UNI_VEDICEXT }   /* block=vedicextensions */,
+  {     0,   309,  2182,   2,   4, UNI_IN__4_DOT_1 }   /* in=4.1 */,
+  {     1,  3677,  1036,   3,   2, UNI_LOE }   /* isloe */,
+  {    39,   461,   493,   2,   6, UNI_KHOJ }   /* iskhojki */,
+  {     0,     2,     0,   1,   0, UNI_C }   /* c */,
+  {   389,   309,   901,   2,   8, UNI_INARMENIAN }   /* inarmenian */,
+  {     0,  2324,  6185,   6,  20, UNI_GLAGOLITICSUP }   /* block=glagoliticsupplement */,
+  {     0,    63,     0,   4,   0, UNI_CPMN }   /* cpmn */,
+  {     6,   461,  5958,   2,   4, UNI_SINH }   /* issinh */,
+  {     1,  4569,  5671,   8,   4, -UNI_XPOSIXUPPER }   /* uppercase=no */,
+  {     0,  3391,  2084,  13,   2, UNI_NV__11 }   /* numericvalue=11 */,
+  {     0,   461,   772,   2,   7, UNI_OLCK }   /* isolchiki */,
+  {   384,  7267,   225,  16,   2, UNI_PE }   /* generalcategory=pe */,
+  {     1,  3848,  2147,  14,   8, UNI_NV__3_SLASH_4 }   /* numericvalue=7.500e-01 */,
+  {     9,  6165,   474,   3,   3, UNI_VAI }   /* sc=vai */,
+  {     0,  1734,     0,   7,   0, UNI_XPOSIXSPACE }   /* isspace */,
+  {    11,  5895,  1845,   5,   8, UNI_SUPERANDSUB }   /* issuperandsub */,
+  {     1,  7892,   599,  16,   2, -UNI_UIDEO }   /* unifiedideograph=n */,
+  {     0,  1823,  1331,   7,   9, UNI_SC__PERM }   /* script=oldpermic */,
+  {     1,  7267,  4683,  16,  16, UNI_PF }   /* generalcategory=finalpunctuation */,
+  {     0,  8343,  5323,  22,  15, UNI_INSC__MODIFYINGLETTER }   /* indicsyllabiccategory=modifyingletter */,
+  {     4,  2536,  1755,   3,   8, UNI_JG__SWASHKAF }   /* jg=swashkaf */,
+  {     0,  7084,  8174,   8,  29, UNI_ARABICMATH }   /* inarabicmathematicalalphabeticsymbols */,
+  {     0,  2966,  4710,   3,  15, UNI_SYRIACSUP }   /* insyriacsupplement */,
+  {     2,     4,   352,   2,   5, UNI_LOE }   /* loe=yes */,
+  {     2,  7648,  1127,  18,   3, UNI_DT__FIN }   /* decompositiontype=fin */,
+  {     0,  7591,   543,   3,   2, UNI_EBASE }   /* lb=eb */,
+  {     1,  6165,   228,   3,   4, UNI_XSUX }   /* sc=xsux */,
+  {     0,  1823,  1522,   7,   8, UNI_UGAR }   /* script=ugaritic */,
+  {     0,  4360,   700,  10,   2, UNI_EMOD }   /* linebreak=em */,
+  {     0,  4150,     0,   5,   0, UNI_P }   /* punct */,
+  {     1,   302,   599,   5,   3, -UNI__PERL_PATWS }   /* patws=no */,
+  {     2,   292,  1154,   3,   2, UNI_NV__43 }   /* nv=43 */,
+  {     0,  1667,  7724,   4,  28, UNI_VSSUP }   /* blk=variationselectorssupplement */,
+  {    14,  5937,   934,  21,   6, -UNI__PERL_NCHAR }   /* noncharactercodepoint=false */,
+  {     1,  1667,  4809,   4,  18, UNI_ORNAMENTALDINGBATS }   /* blk=ornamentaldingbats */,
+  {   103,  6165,  1484,   3,   8, UNI_SC__BUGI }   /* sc=buginese */,
+  {     1,  7383,  3706,  10,  14, UNI_BC__NSM }   /* bidiclass=nonspacingmark */,
+  {    12,  3892,   934,  16,   6, -UNI_STERM }   /* sentenceterminal=false */,
+  {     0,  4424,   818,  17,   7, UNI_SHRD }   /* scriptextensions=sharada */,
+  {     2,  1358,     0,   4,   0, UNI_PALM }   /* palm */,
+  {    86,  6165,  3663,   3,   4, UNI_SC__DEVA }   /* sc=deva */,
+  {     3,  2324,  6797,   6,  18, UNI_DEVANAGARIEXT }   /* block=devanagariextended */,
+  {     0,   461,  1397,   2,   7, UNI_IDS }   /* isidstart */,
+  {    14,   461,  6000,   2,   6, UNI_YIJING }   /* isyijing */,
+  {     2,  4424,  3349,  17,  15, UNI_MERC }   /* scriptextensions=meroiticcursive */,
+  {     1,  7889,  4680,  26,   4, UNI_CJKEXTF }   /* cjkunifiedideographsextensionf */,
+  {     9,  4371,   584,   5,   3, UNI_XPOSIXSPACE }   /* wspace=t */,
+  {    29,  1424,  2154,   7,   2, UNI_CCC__13 }   /* ccc=ccc13 */,
+  {   619,  4424,   718,  17,   7, UNI_KNDA }   /* scriptextensions=kannada */,
+  {     6,  2324,  5448,   6,   3, UNI_PUA }   /* block=pua */,
+  {    10,  1823,  6185,   7,  10, UNI_SC__GLAG }   /* script=glagolitic */,
+  {     3,   339,   461,   4,   2, UNI_CCC__IS }   /* ccc=is */,
+  {     7,  2766,  3192,   3,  12, UNI_NL }   /* gc=letternumber */,
+  {   610,   552,  2199,   4,   3, UNI_AGE__2 }   /* age=2.0 */,
+  {    19,  4424,   537,  17,   6, UNI_TNSA }   /* scriptextensions=tangsa */,
+  {     1,  6287,  1715,  14,   7, UNI_BC__LRI }   /* bc=lefttorightisolate */,
+  {     3,  1994,   585,   7,   2, UNI_RADICAL }   /* radical=t */,
+  {     4,   876,   353,   4,   2, UNI_IDEO }   /* ideo=y */,
+  {     2,  2930,     0,   3,   0, UNI_jt_values_index }   /* jt= */,
+  {     0,   578,   295,   5,   1, UNI_CCC__29 }   /* ccc=29 */,
+  {     1,   461,  1603,   2,   6, UNI_L }   /* isletter */,
+  {     7,  2732,     0,  10,   0, UNI_INARABIC }   /* blk=arabic */,
+  {     2,  8343,  2460,  22,   8, UNI_INSC__TONEMARK }   /* indicsyllabiccategory=tonemark */,
+  {     8,  1667,  2468,   4,  13, UNI_IPAEXT }   /* blk=ipaextensions */,
+  {     9,  1424,  3404,   7,   2, UNI_CCC__23 }   /* ccc=ccc23 */,
+  {     0,  1667,  6154,   4,   9, UNI_INCUNEIFORM }   /* blk=cuneiform */,
+  {     0,   597,  3484,   3,   6, UNI_DT__SQR }   /* dt=square */,
+  {     0,  2324,   120,   6,   3, UNI_INLAO }   /* block=lao */,
+  {   105,   461,  4951,   2,  19, UNI_EGYP }   /* isegyptianhieroglyphs */,
+  {     1,   597,   940,   3,   3, UNI_DT__COM }   /* dt=com */,
+  {     0,   253,   585,   4,   2, UNI_CWCF }   /* cwcf=t */,
+  {     6,  6165,  4651,   3,   4, UNI_SC__BOPO }   /* sc=bopo */,
+  {    16,  3021,   290,   4,   2, UNI_IN__4 }   /* in=v40 */,
+  {     0,  4502,   204,  11,   2, UNI_LATINEXTF }   /* blk=latinextf */,
+  {     0,  8311,  4218,  32,   4, UNI_CJKEXTH }   /* block=cjkunifiedideographsextensionh */,
+  {     0,  1391,  3325,   3,  12, UNI_LB__HL }   /* wb=hebrewletter */,
+  {     3,  4519,  6193,  12,  12, UNI_CYRILLICSUP }   /* block=cyrillicsupplement */,
+  {     0,  1667,  4926,   4,   8, UNI_TAMILSUP }   /* blk=tamilsup */,
+  {     0,   292,  2289,   2,   3, UNI_NV__14 }   /* nv=14 */,
+  {     0,  2324,  3663,   6,  13, UNI_DEVANAGARIEXT }   /* block=devanagariext */,
+  {     3,   248,     0,   2,   0, UNI_CN }   /* cn */,
+  {     1,   292,  3403,   2,   3, UNI_NV__23 }   /* nv=23 */,
+  {     3,  6165,   232,   3,   4, UNI_SC__YI }   /* sc=yiii */,
+  {     2,  1894,   934,  12,   6, -UNI_BIDIM }   /* bidimirrored=false */,
+  {    10,  2348,   352,  12,   2, UNI_ci_values_index }   /* caseignorable= */,
+  {     1,  7591,   461,   3,   2, UNI_LB__IS }   /* lb=is */,
+  {    58,  4424,  2068,  17,   4, UNI_MEND }   /* scriptextensions=mend */,
+  {    13,  4584,   585,  18,   5, UNI_IDST }   /* idstrinaryoperator=true */,
+  {   321,  3014,   569,  11,   2, UNI_IN__5_DOT_2 }   /* presentin=v52 */,
+  {     3,  3021,  1317,   4,   2, UNI_IN__3_DOT_2 }   /* in=v32 */,
+  {   106,  1272,  3539,   3,   6, UNI_CPRT }   /* iscypriot */,
+  {     0,  1262,     0,   4,   0, UNI_SOYO }   /* soyo */,
+  {   272,  2752,   599,   5,   2, -UNI_EMOJI }   /* emoji=n */,
+  {     0,  1667,  1234,   4,   7, UNI_INMULTANI }   /* blk=multani */,
+  {     0,   461,   470,   2,   4, UNI_TNSA }   /* istnsa */,
+  {   371,    30,  3953,   1,  18, UNI_AGHB }   /* iscaucasianalbanian */,
+  {     8,  7274,  4075,   9,  14, UNI_SC }   /* category=currencysymbol */,
+  {     0,  4852,   352,   9,   3, UNI_XPOSIXSPACE }   /* whitespace=y */,
+  {     4,   597,  3611,   3,   6, UNI_DT__COM }   /* dt=compat */,
+  {    84,  4191,   352,   8,   3, UNI_XPOSIXLOWER }   /* lowercase=y */,
+  {     2,  1667,  8660,   4,  34, UNI_UCAS }   /* blk=unifiedcanadianaboriginalsyllabics */,
+  {     0,  6427,   714,  13,   4, UNI_JG__ZAIN }   /* joininggroup=zain */,
+  {   135,  4424,  5067,  16,  11, UNI_MANI }   /* scriptextensions=manichaean */,
+  {     0,  2324,  4002,   6,   4, UNI_INMODI }   /* block=modi */,
+  {     1,  1667,   571,   4,   7, UNI_INAVESTAN }   /* blk=avestan */,
+  {     1,  1102,   527,   4,   6, UNI_RJNG }   /* scx=rejang */,
+  {   224,  3677,  4698,   6,   2, UNI_LATIN1 }   /* islatin1 */,
+  {     3,  1102,   140,   4,   4, UNI_NARB }   /* scx=narb */,
+  {     0,  1667,  4651,   4,  16, UNI_BOPOMOFOEXT }   /* blk=bopomofoextended */,
+  {     2,   309,  7724,   2,  28, UNI_VSSUP }   /* invariationselectorssupplement */,
+  {     0,  1592,     0,  10,   0, UNI_SAUR }   /* saurashtra */,
+  {     1,   833,   274,   4,   1, UNI_term_values_index }   /* term= */,
+  {     0,  2324,  5778,   6,  21, UNI_ININSCRIPTIONALPARTHIAN }   /* block=inscriptionalparthian */,
+  {     0,  1065,   290,   5,   1, UNI_NV__1_SLASH_4 }   /* nv=1/4 */,
+  {     1,  2536,   225,   3,   2, UNI_JG__PE }   /* jg=pe */,
+  {     3,   609,  1670,   2,   3, UNI_LB__CJ }   /* lb=cj */,
+  {     5,   622,   353,   7,   2, UNI_EXTPICT }   /* extpict=y */,
+  {    46,  1102,  1234,   4,   4, UNI_MULT }   /* scx=mult */,
+  {     3,   461,    23,   2,   4, UNI_AHOM }   /* isahom */,
+  {     6,  2287,   557,   3,   3, UNI_IN__6 }   /* in=6.0 */,
+  {     0,   875,  5980,   4,   2, UNI_uideo_values_index }   /* uideo= */,
+  {     0,  1592,     0,   4,   0, UNI_SAUR }   /* saur */,
+  {   132,  3817,  2131,  14,   8, UNI_NV__1_SLASH_6 }   /* numericvalue=1.667e-01 */,
+  {     0,  6165,  5031,   3,   4, UNI_SC__HAN }   /* sc=hani */,
+  {     1,  6165,  3228,   3,  15, UNI_ARMI }   /* sc=imperialaramaic */,
+  {     2,    30,   908,   1,   9, UNI_INBALINESE }   /* inbalinese */,
+  {    10,  1102,    31,   4,   4, UNI_AVST }   /* scx=avst */,
+  {     1,  7011,  7408,  18,  11, UNI_CCC__R }   /* canonicalcombiningclass=right */,
+  {   103,  2718,  4276,   3,   3, UNI_BC__NSM }   /* bc=nsm */,
+  {     0,  2766,  6514,   3,  10, UNI_CO }   /* gc=privateuse */,
+  {     8,  1975,     0,  10,   0, UNI_SOGO }   /* oldsogdian */,
+  {    71,    19,     0,   4,   0, UNI_POSIXXDIGIT }   /* ahex */,
+  {     0,  7011,  2289,  23,   3, UNI_CCC__14 }   /* canonicalcombiningclass=14 */,
+  {     0,   309,  1914,   2,   4, UNI_UCAS }   /* inucas */,
+  {     0,  1823,  4060,   7,   4, UNI_BRAI }   /* script=brai */,
+  {     2,  1823,   678,   7,   5, UNI_RUNR }   /* script=runic */,
+  {    13,  7752,  3740,  23,   3, UNI_JG__MANICHAEANMEM }   /* joininggroup=manichaeanmem */,
+  {     7,  6427,  2569,  13,  10, UNI_JG__REVERSEDPE }   /* joininggroup=reversedpe */,
+  {     0,  7591,  7804,   3,  11, UNI_LB__ID }   /* lb=ideographic */,
+  {     2,  2766,     0,   3,   2, UNI_CASEDLETTER }   /* gc=l& */,
+  {     0,  1823,   224,   7,   4, UNI_XPEO }   /* script=xpeo */,
+  {     1,  7267,  6514,  16,  10, UNI_CO }   /* generalcategory=privateuse */,
+  {     0,  1942,   352,  11,   3, UNI_GRBASE }   /* graphemebase=y */,
+  {     0,   895,  1313,   5,   2, UNI_AGE__6 }   /* age=v60 */,
+  {     0,  5448,     0,   3,   0, UNI_PUA }   /* pua */,
+  {     1,  6165,  3349,   3,   4, UNI_MERO }   /* sc=mero */,
+  {    25,   461,  1455,   2,   3, UNI_DEP }   /* isdep */,
+  {     0,   261,   599,   5,   2, -UNI_CWKCF }   /* cwkcf=n */,
+  {     2,  4191,     0,   9,   0, UNI_XPOSIXLOWER }   /* lowercase */,
+  {     3,   309,  1255,   2,   7, UNI_INSIDDHAM }   /* insiddham */,
+  {     1,   461,  6816,   2,  25, UNI_CWKCF }   /* ischangeswhennfkccasefolded */,
+  {   325,  1894,   353,  12,   2, UNI_BIDIM }   /* bidimirrored=y */,
+  {   418,   461,  2621,   2,   9, UNI__PERL_SURROGATE }   /* issurrogate */,
+  {    44,    30,  4145,   1,   5, UNI_DASH }   /* isdash */,
+  {     0,  8343,  4119,  22,  12, UNI_INSC__NUMBERJOINER }   /* indicsyllabiccategory=numberjoiner */,
+  {     3,  2434,  5848,   7,   9, UNI_MYANMAREXTA }   /* myanmarextendeda */,
+  {     0,  2766,   466,   3,   2, UNI_SO }   /* gc=so */,
+  {     1,  2324,  8153,   9,  21, UNI_CJKSYMBOLS }   /* block=cjksymbolsandpunctuation */,
+  {     1,  2220,  2131,   4,   8, UNI_NV__2_SLASH_3 }   /* nv=6.667e-01 */,
+  {     0,   461,  1864,   2,   5, UNI_EBASE }   /* isebase */,
+  {     0,   597,  4602,   3,   4, UNI_DT__INIT }   /* dt=init */,
+  {     0,  8601,  7304,   7,  24, UNI_SYMBOLSANDPICTOGRAPHSEXTA }   /* block=symbolsandpictographsexta */,
+  {    15,  8071,  4158,  30,   4, UNI_CJKEXTD }   /* blk=cjkunifiedideographsextensiond */,
+  {    11,  1424,   559,   8,   2, UNI_CCC__107 }   /* ccc=ccc107 */,
+  {     0,  3791,   599,   4,   2, -UNI_MATH }   /* math=n */,
+  {     0,  1894,   934,  12,   2, -UNI_BIDIM }   /* bidimirrored=f */,
+  {    17,  2324,  4926,   6,   5, UNI_INTAMIL }   /* block=tamil */,
+  {     0,  3391,  6270,  13,   9, UNI_NV__3_SLASH_80 }   /* numericvalue=3.750e-02 */,
+  {    66,   461,    99,   2,   2, UNI_UPPERCASELETTER }   /* islu */,
+  {     0,  1272,  1922,   3,  11, UNI_CHESSSYMBOLS }   /* ischesssymbols */,
+  {     0,  3848,  1314,  14,   2, UNI_NV__700 }   /* numericvalue=700 */,
+  {     0,  2718,    83,   3,   2, UNI_BC__ON }   /* bc=on */,
+  {     4,  2324,  6642,   6,   6, UNI_INBRAHMI }   /* block=brahmi */,
+  {    68,   309,  6000,   2,   6, UNI_YIJING }   /* inyijing */,
+  {     0,  2930,     7,   3,   1, UNI_JT__R }   /* jt=r */,
+  {   192,   309,  2234,   2,   2, UNI_IN__8 }   /* in=8 */,
+  {    68,  4584,   585,  18,   2, UNI_IDST }   /* idstrinaryoperator=t */,
+  {     2,  2324,  3955,   7,  16, UNI_INCAUCASIANALBANIAN }   /* block=caucasianalbanian */,
+  {    68,  2523,  1082,   8,   4, UNI_XPOSIXWORD }   /* isxposixword */,
+  {     7,  7669,   644,  18,   2, UNI_GCB__L }   /* hangulsyllabletype=l */,
+  {  1029,  7011,  6328,  24,   4, UNI_WB__EB }   /* canonicalcombiningclass=atbl */,
+  {     0,  4569,   274,   5,   1, UNI_upper_values_index }   /* upper= */,
+  {   220,   309,  1349,   2,   9, UNI_INOLDUYGHUR }   /* inolduyghur */,
+  {     6,  2324,  7110,   6,  24, UNI_DIACRITICALSFORSYMBOLS }   /* block=combiningmarksforsymbols */,
+  {   546,  1894,   934,   5,   6, -UNI_BIDIM }   /* bidim=false */,
+  {     0,  1823,   164,   7,   4, UNI_PHNX }   /* script=phnx */,
+  {    16,  6165,  1572,   3,  10, UNI_XPEO }   /* sc=oldpersian */,
+  {     3,  1102,  1954,   4,  12, UNI_GONG }   /* scx=gunjalagondi */,
+  {   144,  7084,  4531,   6,   6, UNI_ARABICEXTC }   /* inarabicextc */,
+  {    54,  7214,  2165,  25,   2, UNI_WB__EB }   /* canonicalcombiningclass=133 */,
+  {     4,  1455,   599,  10,   2, -UNI_DEP }   /* deprecated=n */,
+  {   480,  6642,     0,   6,   0, UNI_BRAH }   /* brahmi */,
+  {     4,  1102,   470,   4,   4, UNI_TNSA }   /* scx=tnsa */,
+  {    21,  4424,   240,  17,   4, UNI_ZYYY }   /* scriptextensions=zyyy */,
+  {    72,  6866,   934,  24,   2, -UNI_COMPEX }   /* fullcompositionexclusion=f */,
+  {     0,  6165,   140,   3,   4, UNI_NARB }   /* sc=narb */,
+  {     0,  7724,   599,  17,   2, -UNI_VS }   /* variationselector=n */,
+  {    10,  1240,  4810,   3,  17, UNI_ORNAMENTALDINGBATS }   /* inornamentaldingbats */,
+  {     0,   266,   585,   3,   5, UNI_CWT }   /* cwt=true */,
+  {    17,  4391,   395,  15,   2, UNI_NV__3_SLASH_16 }   /* numericvalue=3/16 */,
+  {    92,  5553,   599,  21,   2, -UNI_CWCM }   /* changeswhencasemapped=n */,
+  {   432,  2002,     0,   4,   0, UNI_PO }   /* ispo */,
+  {    18,  2060,     0,   5,   0, UNI_XPOSIXALPHA }   /* alpha */,
+  {    16,  1823,  1509,   7,   8, UNI_SC__JAVA }   /* script=javanese */,
+  {    50,  1102,  1978,   4,   7, UNI_SOGD }   /* scx=sogdian */,
+  {    40,  5658,  6841,  15,  16, UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE }   /* identifiertype=defaultignorable */,
+  {     2,   832,     0,   5,   0, UNI_STERM }   /* sterm */,
+  {     6,  4845,     0,  17,   0, UNI__PERL_PATWS }   /* patternwhitespace */,
+  {     0,  2432,  8374,   3,  33, UNI_MISCPICTOGRAPHS }   /* inmiscellaneoussymbolsandpictographs */,
+  {     1,  1823,   901,   7,   8, UNI_ARMN }   /* script=armenian */,
+  {     1,  4060,     0,   4,   0, UNI_BRAI }   /* brai */,
+  {     0,  2018,   341,   4,   2, UNI_joinc_values_index }   /* joinc= */,
+  {   569,  3649,     0,  14,   0, UNI_PHONETICEXTSUP }   /* phoneticextsup */,
+  {     1,  6165,   975,   3,   8, UNI_SC__GURU }   /* sc=gurmukhi */,
+  {     4,  6165,   112,   3,   4, UNI_KITS }   /* sc=kits */,
+  {    67,  3878,   761,  14,   2, UNI_NV__9_SLASH_2 }   /* numericvalue=9/2 */,
+  {     0,  2324,  2811,   6,   5, UNI_INKHMER }   /* block=khmer */,
+  {     0,  4424,  5208,  16,   8, UNI_MYMR }   /* scriptextensions=myanmar */,
+  {   706,  5616,   599,  21,   3, -UNI_CWU }   /* changeswhenuppercased=no */,
+  {     0,  4424,  1027,  17,   6, UNI_YEZI }   /* scriptextensions=yezidi */,
+  {     2,  7752,  4247,  23,   4, UNI_JG__MANICHAEANKAPH }   /* joininggroup=manichaeankaph */,
+  {     0,  6185,     0,  13,   0, UNI_GLAGOLITICSUP }   /* glagoliticsup */,
+  {     6,  1667,  6642,   4,   6, UNI_INBRAHMI }   /* blk=brahmi */,
+  {     0,   461,  3692,   2,   4, UNI_LISU }   /* islisu */,
+  {   524,  2718,   355,   3,   2, UNI_BC__ES }   /* bc=es */,
+  {     0,   271,  1887,   4,   7, UNI_GCB__CN }   /* gcb=control */,
+  {    11,   578,   391,   5,   2, UNI_CCC__DA }   /* ccc=234 */,
+  {     1,  4424,  1509,  17,   8, UNI_JAVA }   /* scriptextensions=javanese */,
+  {   258,  2930,  3313,   3,  12, UNI_JT__R }   /* jt=rightjoining */,
+  {     0,  1102,   917,   4,   8, UNI_BASS }   /* scx=bassavah */,
+  {   176,  2018,    12,  12,   1, UNI_JT__D }   /* joiningtype=d */,
+  {     2,  1102,    78,   4,   4, UNI_DSRT }   /* scx=dsrt */,
+  {    17,   423,  4987,   3,  16, UNI_ALCHEMICAL }   /* inalchemicalsymbols */,
+  {  1168,  7274,  4150,   9,   5, UNI_P }   /* category=punct */,
+  {     5,  2536,  4243,   3,   4, UNI_JG__HETH }   /* jg=heth */,
+  {     0,  1823,   814,   7,   4, UNI_SC__QAAI }   /* script=zinh */,
+  {     0,    30,  4619,   1,  17, UNI_LINEARBSYLLABARY }   /* inlinearbsyllabary */,
+  {     6,  2324,   983,   6,   8, UNI_INHIRAGANA }   /* block=hiragana */,
+  {     1,  1051,     0,   8,   0, UNI_MAHJ }   /* mahajani */,
+  {  1592,  2302,   934,   3,   6, -UNI_IDC }   /* idc=false */,
+  {   199,   309,  1285,   2,   9, UNI_INKHUDAWADI }   /* inkhudawadi */,
+  {     0,  1243,  3726,   5,  10, UNI_INMALAYALAM }   /* block=malayalam */,
+  {   322,  1667,  3663,   4,  10, UNI_INDEVANAGARI }   /* blk=devanagari */,
+  {     0,  6090,  3788,   7,  15, UNI_MISCMATHSYMBOLSA }   /* block=miscmathsymbolsa */,
+  {     0,  2324,  7449,   6,  28, UNI_PHONETICEXTSUP }   /* block=phoneticextensionssupplement */,
+  {    29,  2391,  3640,  10,   9, UNI_CYRILLICEXTD }   /* incyrillicextendedd */,
+  {     8,   461,  6797,   2,  19, UNI_DEVANAGARIEXTA }   /* isdevanagariextendeda */,
+  {     0,  1823,   746,   7,   7, UNI_MARC }   /* script=marchen */,
+  {   296,   298,   934,   2,   6, -UNI_RI }   /* ri=false */,
+  {     0,  2665,   934,  13,   6, -UNI_PATSYN }   /* patternsyntax=false */,
+  {     3,  3013,   599,   5,   3, -UNI_EPRES }   /* epres=no */,
+  {     0,  8601,  5149,  18,   7, UNI_SUPARROWSA }   /* block=supplementalarrowsa */,
+  {     0,   510,  2107,   4,   8, UNI_NV__7_SLASH_2 }   /* nv=3.500e+00 */,
+  {    36,    18,   918,   1,   3, UNI_BASS }   /* bass */,
+  {     0,  6165,   951,   3,   8, UNI_SC__DUPL }   /* sc=duployan */,
+  {     6,  4360,   281,  10,   2, UNI_LB__XX }   /* linebreak=xx */,
+  {    22,  1823,   200,   7,   4, UNI_TAVT }   /* script=tavt */,
+  {     0,  1221,  1037,   6,   4, UNI_KANAEXTB }   /* inkanaextb */,
+  {     0,   461,   224,   2,   4, UNI_XPEO }   /* isxpeo */,
+  {     0,   326,     0,   2,   0, UNI_PF }   /* pf */,
+  {     0,  2324,  1582,   6,  10, UNI_INPHOENICIAN }   /* block=phoenician */,
+  {     0,    30,   115,   1,   5, UNI_KNDA }   /* isknda */,
+  {   260,  2842,  7915,   3,  29, UNI_ENCLOSEDALPHANUMSUP }   /* isenclosedalphanumericsupplement */,
+  {     0,  8601,  7707,  17,  17, UNI_SUPPUAB }   /* block=supplementaryprivateuseareab */,
+  {     0,  7752,  5425,  22,   8, UNI_JG__MANICHAEANDHAMEDH }   /* joininggroup=manichaeandhamedh */,
+  {   276,  1272,  3539,   3,  15, UNI_CYPRIOTSYLLABARY }   /* iscypriotsyllabary */,
+  {     0,  7274,   644,   8,   2, UNI_L }   /* category=l */,
+  {     0,  6165,  1325,   3,   4, UNI_ITAL }   /* sc=ital */,
+  {     0,  3391,  2138,  13,   9, UNI_NV__3_SLASH_16 }   /* numericvalue=1.875e-01 */,
+  {     0,   339,   344,   4,   2, UNI_CCC__21 }   /* ccc=21 */,
+  {   771,  1397,   585,   7,   5, UNI_IDS }   /* idstart=true */,
+  {     1,    18,  6901,   1,  22, UNI_BYZANTINEMUSIC }   /* byzantinemusicalsymbols */,
+  {     1,  7267,   625,  16,   2, UNI_PI }   /* generalcategory=pi */,
+  {    16,   474,     0,   4,   0, UNI_VAI }   /* vaii */,
+  {   565,  6090,  3364,   7,  14, UNI_MISCPICTOGRAPHS }   /* block=miscpictographs */,
+  {     5,  2842,  7915,   3,  20, UNI_ENCLOSEDALPHANUM }   /* isenclosedalphanumerics */,
+  {   868,  4391,  1314,  14,   2, UNI_NV__300 }   /* numericvalue=300 */,
+  {     0,  1011,   274,   2,   1, UNI_ci_values_index }   /* ci= */,
+  {     0,  2966,  1110,   3,   7, UNI_SPECIALS }   /* inspecials */,
+  {     1,  1894,   353,   5,   4, UNI_BIDIM }   /* bidim=yes */,
+  {     1,  1424,  1155,   7,   2, UNI_CCC__35 }   /* ccc=ccc35 */,
+  {     1,  6165,   458,   3,   4, UNI_SC__QAAI }   /* sc=qaai */,
+  {     0,  7011,  6328,  24,   3, UNI_CCC__202 }   /* canonicalcombiningclass=atb */,
+  {     1,   823,   353,   4,   4, UNI_DASH }   /* dash=yes */,
+  {     0,  4424,   786,  17,   4, UNI_HMNP }   /* scriptextensions=hmnp */,
+  {     0,    20,   599,   3,   3, -UNI_XPOSIXXDIGIT }   /* hex=no */,
+  {   136,   461,  4862,   2,  18, UNI_RUMI }   /* isruminumeralsymbols */,
+  {     7,   298,   353,   2,   2, UNI_RI }   /* ri=y */,
+  {     1,   309,  2244,   2,  12, UNI_INOLDHUNGARIAN }   /* inoldhungarian */,
+  {     0,   461,   212,   2,   4, UNI_TIBT }   /* istibt */,
+  {     1,  4569,   933,   8,   3, -UNI_XPOSIXUPPER }   /* uppercase=f */,
+  {     9,   552,   566,   4,   3, UNI_AGE__9 }   /* age=9.0 */,
+  {     0,   434,     0,   4,   0, UNI_OGAM }   /* ogam */,
+  {     2,  7648,  3611,  18,   6, UNI_DT__COM }   /* decompositiontype=compat */,
+  {   770,  4424,  3505,  16,   9, UNI_ETHI }   /* scriptextensions=ethiopic */,
+  {   902,  3391,  2101,  13,   2, UNI_NV__29 }   /* numericvalue=29 */,
+  {   260,  7892,   353,  16,   4, UNI_UIDEO }   /* unifiedideograph=yes */,
+  {    80,  1102,  1248,   4,   4, UNI_PHAG }   /* scx=phag */,
+  {     0,   309,   648,   2,   5, UNI_INADLAM }   /* inadlam */,
+  {     0,  1501,     0,   8,   0, UNI_JAMOEXTA }   /* jamoexta */,
+  {     1,  1102,   212,   4,   4, UNI_TIBT }   /* scx=tibt */,
+  {    86,   461,   983,   2,   4, UNI_HIRA }   /* ishira */,
+  {     3,  7274,   225,   9,   2, UNI_PE }   /* category=pe */,
+  {   189,  5156,  1613,  10,   2, UNI_WB__FO }   /* wordbreak=fo */,
+  {     5,   461,    35,   2,   4, UNI_BATK }   /* isbatk */,
+  {     1,  1272,  8474,   5,  33, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* iscjkcompatibilityideographssupplement */,
+  {     0,  3130,  3448,   9,   6, UNI_GEORGIANEXT }   /* blk=georgianext */,
+  {   104,  5156,  4407,  10,  17, UNI_RI }   /* wordbreak=regionalindicator */,
+  {   523,  1059,   353,   6,   2, UNI_DT__NONE }   /* nfkdqc=y */,
+  {     0,  1102,   786,   4,   4, UNI_HMNP }   /* scx=hmnp */,
+  {   273,  1823,   208,   7,   4, UNI_SC__TGLG }   /* script=tglg */,
+  {     0,     2,   353,   3,   4, UNI_CWL }   /* cwl=yes */,
+  {    19,  7648,   693,  18,   3, UNI_DT__ISO }   /* decompositiontype=iso */,
+  {     0,  1667,  4862,   4,  18, UNI_RUMI }   /* blk=ruminumeralsymbols */,
+  {     0,   339,  8101,   4,  10, UNI_CCC__BR }   /* ccc=belowright */,
+  {    26,  7591,  4288,   3,  14, UNI_LB__CR }   /* lb=carriagereturn */,
+  {     0,  4424,  1562,  17,   4, UNI_NAGM }   /* scriptextensions=nagm */,
+  {   848,  2220,  2657,   4,   8, UNI_NV__3_SLASH_5 }   /* nv=6.000e-01 */,
+  {    59,     2,  2931,   2,   3, UNI_CWT }   /* cwt=t */,
+  {     0,  1075,  1312,   4,   5, UNI_NV__216000 }   /* nv=216000 */,
+  {     0,  3817,  2657,  14,   8, UNI_NV__1_SLASH_10 }   /* numericvalue=1.000e-01 */,
+  {   265,  4191,   352,   8,   2, UNI_lower_values_index }   /* lowercase= */,
+  {     0,  2180,   520,   4,   1, UNI_NV__47 }   /* nv=47 */,
+  {     2,  4896,     0,   5,   0, UNI_BAMU }   /* bamum */,
+  {     1,   876,   599,   4,   2, -UNI_IDEO }   /* ideo=n */,
+  {     2,  1102,   228,   4,   4, UNI_XSUX }   /* scx=xsux */,
+  {     1,  3502,  7241,   5,  10, UNI_ENCLOSEDCJK }   /* blk=enclosedcjk */,
+  {   290,  7889,  7380,  26,   4, UNI_CJKEXTB }   /* cjkunifiedideographsextensionb */,
+  {    16,   199,     0,   2,   0, UNI_TITLE }   /* lt */,
+  {     0,  6618,  3243,   5,  10, UNI_INPC__OVERSTRUCK }   /* inpc=overstruck */,
+  {    20,  8278,  3367,   4,  11, UNI_MISCPICTOGRAPHS }   /* miscpictographs */,
+  {    12,   461,  5857,   2,  12, UNI_MONGOLIANSUP }   /* ismongoliansup */,
+  {     0,  3817,  1312,  15,   3, UNI_NV__1_SLASH_160 }   /* numericvalue=1/160 */,
+  {     2,  2324,  1922,   7,  11, UNI_CHESSSYMBOLS }   /* block=chesssymbols */,
+  {     3,  8343,  5746,  22,  16, UNI_INSC__INVISIBLESTACKER }   /* indicsyllabiccategory=invisiblestacker */,
+  {     2,  1883,  6621,   4,   3, UNI_BIDIC }   /* bidic=t */,
+  {    23,  4191,   584,   8,   6, UNI_XPOSIXLOWER }   /* lowercase=true */,
+  {     0,   309,  1484,   2,   8, UNI_INBUGINESE }   /* inbuginese */,
+  {     1,  6062,  7241,   7,  26, UNI_ENCLOSEDCJK }   /* block=enclosedcjklettersandmonths */,
+  {     0,  7591,    68,   3,   2, UNI_LB__PR }   /* lb=pr */,
+  {    80,   461,  3204,   2,  14, UNI_GREXT }   /* isgraphemeextend */,
+  {   128,   309,  1872,   2,  11, UNI_YISYLLABLES }   /* inyisyllables */,
+  {   128,  1823,   868,   7,   4, UNI_SC__TIRH }   /* script=tirh */,
+  {     1,  1102,  6642,   4,   4, UNI_BRAH }   /* scx=brah */,
+  {     0,  2483,   353,   5,   2, UNI_CASED }   /* cased=y */,
+  {     0,  8246,  6622,  23,  13, UNI_INPC__TOPANDBOTTOM }   /* indicpositionalcategory=topandbottom */,
+  {     0,   339,  2084,   4,   2, UNI_CCC__11 }   /* ccc=11 */,
+  {    19,  7944,  4218,  28,   4, UNI_CJKEXTH }   /* iscjkunifiedideographsextensionh */,
+  {     0,  2432,  2631,   3,  12, UNI_MAYANNUMERALS }   /* inmayannumerals */,
+  {     1,   292,   768,   3,   2, UNI_NV__27 }   /* nv=27 */,
+  {     0,  7591,  2004,   3,   2, UNI_LB__PO }   /* lb=po */,
+  {     0,  1667,  6900,   4,  23, UNI_BYZANTINEMUSIC }   /* blk=byzantinemusicalsymbols */,
+  {     3,  8311,  5417,  26,  10, UNI_CJKEXTD }   /* block=cjkunifiedideographsextensiond */,
+  {   100,    71,   353,   3,   4, UNI_CWU }   /* cwu=yes */,
+  {     0,   461,   615,   2,   4, UNI_ELYM }   /* iselym */,
+  {    27,  2842,  1505,  10,   4, UNI_ETHIOPICEXTA }   /* isethiopicexta */,
+  {    16,  2324,  1358,   6,   9, UNI_PALM }   /* block=palmyrene */,
+  {     1,  2324,  1322,   6,   9, UNI_INOLDITALIC }   /* block=olditalic */,
+  {     2,   339,   346,   4,   2, UNI_CCC__84 }   /* ccc=84 */,
+  {     1,   461,   493,   2,   4, UNI_KHOJ }   /* iskhoj */,
+  {     1,   309,   294,   2,   2, UNI_IN__9 }   /* in=9 */,
+  {     0,   426,     0,   3,   0, UNI_MRO }   /* mro */,
+  {   146,   552,  2154,   4,   2, UNI_AGE__13 }   /* age=13 */,
+  {     6,   461,   442,   2,   4, UNI_ORKH }   /* isorkh */,
+  {     3,  7267,    13,  16,   2, UNI_LM }   /* generalcategory=lm */,
+  {     1,  4852,  5671,   9,   3, -UNI_XPOSIXSPACE }   /* whitespace=n */,
+  {  1234,  3633,  4698,   6,   2, UNI_LATIN1 }   /* inlatin1 */,
+  {   134,   302,     0,   5,   0, UNI__PERL_PATWS }   /* patws */,
+  {    20,  5574,   353,  21,   2, UNI_CWL }   /* changeswhenlowercased=y */,
+  {     0,  2523,  3100,   7,   6, UNI_XPOSIXDIGIT }   /* isxposixdigit */,
+  {    11,  5156,     6,  10,   2, UNI_LB__CR }   /* wordbreak=cr */,
+  {     0,  4424,   658,  17,   4, UNI_DOGR }   /* scriptextensions=dogr */,
+  {     7,  2503,   934,   5,   6, -UNI_JOINC }   /* joinc=false */,
+  {     3,     4,  5671,   2,   3, -UNI_LOE }   /* loe=n */,
+  {     0,  2930,  2897,   3,  11, UNI_JT__D }   /* jt=dualjoining */,
+  {     1,   916,   352,   4,   3, UNI_EBASE }   /* ebase=y */,
+  {     0,   377,   585,   3,   5, UNI_EXT }   /* ext=true */,
+  {     0,  1102,  1349,   4,   9, UNI_OUGR }   /* scx=olduyghur */,
+  {    18,  1102,  4651,   4,   4, UNI_BOPO }   /* scx=bopo */,
+  {     5,  3021,  1318,   4,   2, UNI_IN__2 }   /* in=v20 */,
+  {   172,  6816,   599,  25,   3, -UNI_CWKCF }   /* changeswhennfkccasefolded=no */,
+  {     1,   779,     0,   7,   0, UNI_OSMA }   /* osmanya */,
+  {     0,   693,  3196,   5,   8, UNI_NO }   /* isothernumber */,
+  {     0,  1102,   333,   4,   6, UNI_CARI }   /* scx=carian */,
+  {   103,  2966,  1609,   3,   9, UNI_SMALLFORMS }   /* insmallforms */,
+  {     3,   309,  3908,   2,   6, UNI_INTANGUT }   /* intangut */,
+  {     1,  1102,  6185,   4,   4, UNI_GLAG }   /* scx=glag */,
+  {     0,  3014,  1318,  11,   2, UNI_IN__2 }   /* presentin=v20 */,
+  {   110,  1065,  3846,   4,   2, UNI_NV__1_SLASH_8 }   /* nv=1/8 */,
+  {   120,  1823,   997,   7,   6, UNI_SC__KTHI }   /* script=kaithi */,
+  {    77,   461,  6495,   2,   5, UNI_MUSIC }   /* ismusic */,
+  {     0,  1102,  5391,   4,   8, UNI_CHER }   /* scx=cherokee */,
+  {     4,  1102,  4740,   4,   4, UNI_TALE }   /* scx=tale */,
+  {   377,  8343,  7523,  31,  15, UNI_INSC__CONSONANTSUCCEEDINGREPHA }   /* indicsyllabiccategory=consonantsucceedingrepha */,
+  {   820,  7383,  4487,  10,  15, UNI_BC__CS }   /* bidiclass=commonseparator */,
+  {     0,  6427,   636,  13,   3, UNI_JG__NUN }   /* joininggroup=nun */,
+  {     0,  7495,   288,  28,   2, UNI_CCC__130 }   /* canonicalcombiningclass=ccc130 */,
+  {     4,  2302,  5671,   9,   3, -UNI_IDC }   /* idcontinue=n */,
+  {     0,  4424,  1819,  17,   4, UNI_MONG }   /* scriptextensions=mong */,
+  {     0,   461,  4819,   2,   8, UNI_DINGBATS }   /* isdingbats */,
+  {     0,  5065,  5053,  13,   6, UNI_JG__MANICHAEANLAMEDH }   /* jg=manichaeanlamedh */,
+  {     0,  4424,  5031,  17,  14, UNI_ROHG }   /* scriptextensions=hanifirohingya */,
+  {     0,  1823,  6154,   7,   9, UNI_XSUX }   /* script=cuneiform */,
+  {     0,    30,  7563,   1,  18, UNI_ANCIENTGREEKMUSIC }   /* isancientgreekmusic */,
+  {    16,  1102,  5031,   4,   4, UNI_HAN }   /* scx=hani */,
+  {     7,    30,  5711,   1,  20, UNI_MERO }   /* ismeroitichieroglyphs */,
+  {     0,     4,   584,   2,   6, UNI_LOE }   /* loe=true */,
+  {     3,  1454,   353,   2,   4, UNI_SD }   /* sd=yes */,
+  {    84,  6165,  2441,   3,  11, UNI_SC__NAND }   /* sc=nandinagari */,
+  {    29,  1790,     0,   7,   0, UNI_NFCQC__M }   /* nfcqc=m */,
+  {     3,  5749,  5354,   3,  19, UNI_PHLI }   /* isinscriptionalpahlavi */,
+  {     3,  5895,     0,  21,   0, UNI_SUPARROWSC }   /* issupplementalarrowsc */,
+  {     1,  1102,  2247,   4,   4, UNI_HUNG }   /* scx=hung */,
+  {  1036,  6841,   585,  25,   5, UNI_DI }   /* defaultignorablecodepoint=true */,
+  {   213,  7011,   890,  23,   3, UNI_CCC__10 }   /* canonicalcombiningclass=10 */,
+  {     6,  3892,   353,  16,   4, UNI_STERM }   /* sentenceterminal=yes */,
+  {     2,    16,  6166,   1,   4, UNI_CO }   /* gc=co */,
+  {     2,  1367,     0,   9,   0, UNI_PAUC }   /* paucinhau */,
+  {    39,  1823,   493,   7,   4, UNI_SC__KHOJ }   /* script=khoj */,
+  {     0,  2324,  1992,   6,  10, UNI_YIRADICALS }   /* block=yiradicals */,
+  {     1,  1834,     0,   4,   0, UNI_SORA }   /* sora */,
+  {     1,  1102,  5857,   4,   9, UNI_MONG }   /* scx=mongolian */,
+  {     0,     8,   934,   3,   6, -UNI_PCM }   /* pcm=false */,
+  {     5,   461,  4146,   2,  15, UNI_PD }   /* isdashpunctuation */,
+  {    11,   876,   599,   4,   3, -UNI_IDEO }   /* ideo=no */,
+  {     0,  6165,  1094,   3,   4, UNI_MERC }   /* sc=merc */,
+  {    50,  2287,   547,   5,   2, UNI_IN__14 }   /* in=14.0 */,
+  {     0,  1509,     0,   8,   0, UNI_JAVA }   /* javanese */,
+  {     2,  4424,  3349,  17,   4, UNI_MERO }   /* scriptextensions=mero */,
+  {     1,  1823,   116,   7,   4, UNI_SC__KNDA }   /* script=knda */,
+  {     0,  1200,  6400,   3,  18, UNI_CJKRADICALSSUP }   /* cjkradicalssupplement */,
+  {     5,  1198,   204,   7,   2, UNI_CJKEXTF }   /* incjkextf */,
+  {    35,   833,   934,   4,   2, -UNI_TERM }   /* term=f */,
+  {    16,  2401,  2374,  10,   8, UNI_ETHIOPICEXT }   /* inethiopicextended */,
+  {   385,  1424,  1316,   8,   2, UNI_CCC__103 }   /* ccc=ccc103 */,
+  {    18,  1243,  8605,   2,  35, UNI_SUPMATHOPERATORS }   /* blk=supplementalmathematicaloperators */,
+  {     0,  2842,  7241,   3,  10, UNI_ENCLOSEDCJK }   /* isenclosedcjk */,
+  {     0,  2766,    54,   3,   2, UNI_SC }   /* gc=sc */,
+  {   651,  5168,   302,   6,   5, UNI__PERL_PATWS }   /* _perl_patws */,
+  {     9,   753,   353,   6,   4, UNI_NFKCQC__Y }   /* nfkcqc=yes */,
+  {  1057,  4424,  1385,  17,   6, UNI_THAA }   /* scriptextensions=thaana */,
+  {     0,  1779,     0,  11,   0, UNI_MEDF }   /* medefaidrin */,
+  {   103,  5895,   837,   6,   3, UNI_SUPPUAA }   /* issuppuaa */,
+  {    20,  1667,  2441,   4,  11, UNI_INNANDINAGARI }   /* blk=nandinagari */,
+  {    17,  2324,  1465,   6,  10, UNI_INDIVESAKURU }   /* block=divesakuru */,
+  {     0,  4424,   814,  17,   4, UNI_QAAI }   /* scriptextensions=zinh */,
+  {  1307,  4424,   426,  17,   4, UNI_MRO }   /* scriptextensions=mroo */,
+  {     0,   375,   934,   5,   2, -UNI_GREXT }   /* grext=f */,
+  {     0,  2514,  1505,   9,   4, UNI_MYANMAREXTA }   /* ismyanmarexta */,
+  {     1,  1823,   818,   7,   7, UNI_SC__SHRD }   /* script=sharada */,
+  {   518,   212,     0,   4,   0, UNI_TIBT }   /* tibt */,
+  {  1390,   461,   106,   2,   2, UNI_ZL }   /* iszl */,
+  {    14,  1102,  3026,   4,  14, UNI_PHLP }   /* scx=psalterpahlavi */,
+  {     2,   461,   232,   2,   2, UNI_YI }   /* isyi */,
+  {     0,  1102,  3325,   4,   4, UNI_HEBR }   /* scx=hebr */,
+  {     0,  3040,   585,  13,   5, UNI_QMARK }   /* quotationmark=true */,
+  {     6,  5595,   274,  21,   1, UNI_cwt_values_index }   /* changeswhentitlecased= */,
+  {   168,  1102,  4951,   4,  19, UNI_EGYP }   /* scx=egyptianhieroglyphs */,
+  {     0,   309,   861,   2,   7, UNI_INTIBETAN }   /* intibetan */,
+  {     0,   309,   739,   2,   7, UNI_INMANDAIC }   /* inmandaic */,
+  {     4,    54,  3493,   2,   9, UNI_SC__CYRL }   /* sc=cyrillic */,
+  {     2,  5553,   353,  21,   2, UNI_CWCM }   /* changeswhencasemapped=y */,
+  {   776,  5637,   700,  21,   2, UNI_WB__EB }   /* graphemeclusterbreak=em */,
+  {  1284,  2324,  5838,   6,  19, UNI_JAMOEXTA }   /* block=hanguljamoextendeda */,
+  {     0,  1667,  4271,   4,  17, UNI_INKHITANSMALLSCRIPT }   /* blk=khitansmallscript */,
+  {    16,   939,   934,   5,   2, -UNI_ECOMP }   /* ecomp=f */,
+  {     0,  2324,  2256,   6,  12, UNI_PHAISTOS }   /* block=phaistosdisc */,
+  {    28,  1391,    65,   3,   2, UNI_WB__MN }   /* wb=mn */,
+  {   136,   257,   585,   4,   5, UNI_CWCM }   /* cwcm=true */,
+  {   513,  2324,  2786,   6,  14, UNI_HIGHSURROGATES }   /* block=highsurrogates */,
+  {   841,  4360,  4302,  10,  14, UNI_LB__SA }   /* linebreak=complexcontext */,
+  {     1,   578,  2290,   5,   2, UNI_CCC__214 }   /* ccc=214 */,
+  {     1,  1823,   571,   7,   7, UNI_AVST }   /* script=avestan */,
+  {    23,  2966,  4710,   3,   8, UNI_SYRIACSUP }   /* insyriacsup */,
+  {     0,  1200,  6557,   3,  16, UNI_CJKCOMPATIDEOGRAPHS }   /* cjkcompatideographs */,
+  {   581,  1223,  1505,   4,   4, UNI_KANAEXTA }   /* kanaexta */,
+  {  1073,  1823,  6642,   7,   6, UNI_BRAH }   /* script=brahmi */,
+  {    52,  6163,  5338,   5,  15, UNI_INSC__REGISTERSHIFTER }   /* insc=registershifter */,
+  {     0,  1102,   224,   4,   4, UNI_XPEO }   /* scx=xpeo */,
+  {     0,  1397,   598,   6,   3, -UNI_IDS }   /* idstart=n */,
+  {     0,  1667,  5838,   4,  19, UNI_JAMOEXTA }   /* blk=hanguljamoextendeda */,
+  {     0,  4424,   148,  17,   4, UNI_ORYA }   /* scriptextensions=orya */,
+  {     0,  2403,  1037,   8,   4, UNI_ETHIOPICEXTB }   /* ethiopicextb */,
+  {     1,   312,  1669,   4,   2, UNI_qmark_values_index }   /* qmark= */,
+  {     0,  7495,  2290,  27,   2, UNI_CCC__14 }   /* canonicalcombiningclass=ccc14 */,
+  {     0,   461,  1396,   2,   4, UNI_XIDS }   /* isxids */,
+  {     1,  3817,   295,  15,   1, UNI_NV__1_SLASH_9 }   /* numericvalue=1/9 */,
+  {     0,   309,  5682,   2,   5, UNI_INGREEK }   /* ingreek */,
+  {    39,  7383,   355,  10,   2, UNI_BC__ES }   /* bidiclass=es */,
+  {     0,  1823,   426,   7,   4, UNI_MRO }   /* script=mroo */,
+  {     5,  1823,   880,   7,   7, UNI_ZZZZ }   /* script=unknown */,
+  {    13,   380,   934,   6,   6, -UNI_HYPHEN }   /* hyphen=false */,
+  {    99,  6427,  2886,  13,  11, UNI_JG__YEHWITHTAIL }   /* joininggroup=yehwithtail */,
+  {     0,   406,   599,   3,   3, -UNI_DIA }   /* dia=no */,
+  {    18,   461,   124,   2,   4, UNI_LATN }   /* islatn */,
+  {    10,   461,   430,   2,   3, UNI_NKO }   /* isnko */,
+  {     0,  1801,     0,   9,   0, UNI_NV__100000 }   /* nv=100000 */,
+  {     3,   578,  2121,   5,   2, UNI_CCC__202 }   /* ccc=202 */,
+  {     1,  6165,   786,   3,   4, UNI_HMNP }   /* sc=hmnp */,
+  {   224,  2930,  2579,   3,  10, UNI_JT__U }   /* jt=nonjoining */,
+  {     3,  1610,     0,   3,   0, UNI_ALL }   /* all */,
+  {     0,   309,  1812,   2,  11, UNI_INPAHAWHHMONG }   /* inpahawhhmong */,
+  {  1500,  6866,   599,  24,   2, -UNI_COMPEX }   /* fullcompositionexclusion=n */,
+  {    11,  1823,  1009,   7,   4, UNI_LYCI }   /* script=lyci */,
+  {  1051,  1823,  2411,   7,   8, UNI_SC__KANA }   /* script=katakana */,
+  {     0,   578,   288,   5,   2, UNI_CCC__A }   /* ccc=230 */,
+  {   291,  3040,   599,  13,   3, -UNI_QMARK }   /* quotationmark=no */,
+  {     0,   823,   599,   4,   2, -UNI_DASH }   /* dash=n */,
+  {     0,  2301,     0,   4,   0, UNI_XIDC }   /* xidc */,
+  {     0,  2832,  4659,  10,   9, UNI_CYRILLICEXTC }   /* iscyrillicextendedc */,
+  {   656,  8343,  5017,  22,  14, UNI_INSC__VOWELDEPENDENT }   /* indicsyllabiccategory=voweldependent */,
+  {     4,   461,   462,   2,   4, UNI_SHAW }   /* isshaw */,
+  {   296,  2503,   934,   5,   2, -UNI_JOINC }   /* joinc=f */,
+  {     0,  3391,  1313,  13,   4, UNI_NV__6000 }   /* numericvalue=6000 */,
+  {     0,   875,   353,   5,   4, UNI_UIDEO }   /* uideo=yes */,
+  {     7,  7011,  3141,  24,  11, UNI_CCC__DA }   /* canonicalcombiningclass=doubleabove */,
+  {    16,  2665,   599,  13,   2, -UNI_PATSYN }   /* patternsyntax=n */,
+  {    14,  3026,     0,  14,   0, UNI_PHLP }   /* psalterpahlavi */,
+  {     0,  1102,   168,   4,   4, UNI_COPT }   /* scx=qaac */,
+  {   648,  2280,  6262,  11,   3, UNI_IN__12_DOT_1 }   /* presentin=12.1 */,
+  {  1074,   578,   582,   5,   2, UNI_CCC__BR }   /* ccc=222 */,
+  {     0,   406,  1467,   2,   8, UNI_DIAK }   /* divesakuru */,
+  {    71,  3984,   585,  17,   2, UNI_EPRES }   /* emojipresentation=t */,
+  {     2,  6163,  5017,   5,  14, UNI_INSC__VOWELDEPENDENT }   /* insc=voweldependent */,
+  {  1152,  5838,     0,  10,   0, UNI_JAMO }   /* hanguljamo */,
+  {     0,  2324,  6357,   9,  13, UNI_CJKCOMPAT }   /* block=cjkcompatibility */,
+  {  1548,   533,    33,   3,   2, UNI_SB__ST }   /* sb=st */,
+  {     0,  6165,   967,   3,   8, UNI_SC__GUJR }   /* sc=gujarati */,
+  {     0,  2503,   353,   5,   2, UNI_JOINC }   /* joinc=y */,
+  {     0,   406,   353,   2,   2, UNI_DI }   /* di=y */,
+  {     0,  1421,   976,   3,   7, UNI_INGURMUKHI }   /* ingurmukhi */,
+  {     6,  2324,  6000,   6,  21, UNI_YIJING }   /* block=yijinghexagramsymbols */,
+  {     0,  1200,  3611,   3,  11, UNI_CJKCOMPATFORMS }   /* cjkcompatforms */,
+  {    26,   461,  1009,   2,   4, UNI_LYCI }   /* islyci */,
+  {     0,   461,  3791,   2,  10, UNI_SM }   /* ismathsymbol */,
+  {     0,  3407,   520,  14,   1, UNI_NV__47 }   /* numericvalue=47 */,
+  {     4,  6041,   599,  21,   5, UNI_BPT__N }   /* bidipairedbrackettype=none */,
+  {   571,   461,  4602,   2,  18, UNI_PI }   /* isinitialpunctuation */,
+  {     0,  3098,     0,   8,   0, UNI_XPOSIXXDIGIT }   /* hexdigit */,
+  {     0,   102,     0,   4,   0, UNI_HMNG }   /* hmng */,
+  {    15,  2324,  3635,   6,  14, UNI_LATINEXTD }   /* block=latinextendedd */,
+  {  1763,   753,   353,   6,   2, UNI_NFKCQC__Y }   /* nfkcqc=y */,
+  {     0,  2780,     0,   6,   0, UNI_COPT }   /* coptic */,
+  {  1096,  1102,  2411,   4,   8, UNI_KANA }   /* scx=katakana */,
+  {     0,     8,     0,   1,   0, UNI_P }   /* p */,
+  {     0,   622,   585,   7,   5, UNI_EXTPICT }   /* extpict=true */,
+  {     0,     2,     0,   3,   0, UNI_CWL }   /* cwl */,
+  {     6,   461,     5,   2,   3, UNI_OCR }   /* isocr */,
+  {   360,  3475,     0,  15,   0, UNI_ZANB }   /* zanabazarsquare */,
+  {     0,  1728,  5848,   6,   9, UNI_ARABICEXTA }   /* arabicextendeda */,
+  {     0,  1823,  1592,   7,  10, UNI_SAUR }   /* script=saurashtra */,
+  {     0,  1823,   825,   7,   7, UNI_SHAW }   /* script=shavian */,
+  {     1,   309,   967,   2,   8, UNI_INGUJARATI }   /* ingujarati */,
+  {     5,  1198,  6155,   3,   8, UNI_INCUNEIFORM }   /* incuneiform */,
+  {   302,  3040,     0,  13,   0, UNI_QMARK }   /* quotationmark */,
+  {   157,  3817,   295,  14,   1, UNI_NV__19 }   /* numericvalue=19 */,
+  {  1545,  1102,  1255,   4,   4, UNI_SIDD }   /* scx=sidd */,
+  {    65,   292,  1317,   3,   2, UNI_NV__32 }   /* nv=32 */,
+  {     0,   629,   584,   5,   3, UNI_GRBASE }   /* grbase=t */,
+  {     9,  5637,   543,  21,   3, UNI_WB__EB }   /* graphemeclusterbreak=ebg */,
+  {     0,  2324,  3436,   6,  15, UNI_SARB }   /* block=oldsoutharabian */,
+  {     1,  8441,  3078,  24,   6, UNI__PERL_PROBLEMATIC_LOCALE_FOLDS }   /* _perl_problematic_locale_folds */,
+  {    31,  1424,  1070,   7,   2, UNI_CCC__31 }   /* ccc=ccc31 */,
+  {     5,  4554,     0,  15,   0, UNI_TITLE }   /* titlecaseletter */,
+  {     1,   309,   108,   2,   4, UNI_INKAWI }   /* inkawi */,
+  {     0,  1906,   490,   7,   3, UNI_KANBUN }   /* blk=kanbun */,
+  {     0,  1075,  2147,   4,   8, UNI_NV__1_SLASH_4 }   /* nv=2.500e-01 */,
+  {    47,  6165,   983,   3,   4, UNI_SC__HIRA }   /* sc=hira */,
+  {     0,  1872,     0,  11,   0, UNI_YISYLLABLES }   /* yisyllables */,
+  {     6,  3502,   620,  10,   5, UNI_ETHIOPICEXT }   /* blk=ethiopicext */,
+  {    17,  1667,  1438,   4,  10, UNI_INCHORASMIAN }   /* blk=chorasmian */,
+  {     7,  2718,  4827,   3,  18, UNI_BC__B }   /* bc=paragraphseparator */,
+  {     1,  3391,  2092,  13,   2, UNI_NV__25 }   /* numericvalue=25 */,
+  {   692,  2503,   585,  11,   2, UNI_JOINC }   /* joincontrol=t */,
+  {     0,   461,  6900,   2,  23, UNI_BYZANTINEMUSIC }   /* isbyzantinemusicalsymbols */,
+  {   790,  4360,   274,   9,   3, UNI_LB__B2 }   /* linebreak=b2 */,
+  {     0,  4360,    21,  10,   2, UNI_LB__EX }   /* linebreak=ex */,
+  {     3,  7944,  4158,  28,   4, UNI_CJKEXTD }   /* iscjkunifiedideographsextensiond */,
+  {  1178,  2523,  2060,   8,   5, UNI_XPOSIXALPHA }   /* isxposixalpha */,
+  {     1,  7892,   934,  16,   2, -UNI_UIDEO }   /* unifiedideograph=f */,
+  {     0,  1823,  2441,   7,  11, UNI_SC__NAND }   /* script=nandinagari */,
+  {     4,  6165,  1285,   3,   9, UNI_SC__SIND }   /* sc=khudawadi */,
+  {     0,  1823,   466,   7,   4, UNI_SOGO }   /* script=sogo */,
+  {    55,  6165,   683,   3,   5, UNI_SC__TAKR }   /* sc=takri */,
+  {     3,  4391,   290,  15,   1, UNI_NV__3_SLASH_4 }   /* numericvalue=3/4 */,
+  {     0,  7274,   625,   9,   2, UNI_PI }   /* category=pi */,
+  {   134,  4391,   295,  14,   1, UNI_NV__39 }   /* numericvalue=39 */,
+  {     0,   324,  5909,   3,   7, UNI_SUPARROWSC }   /* suparrowsc */,
+  {     0,  4424,  1834,  17,   4, UNI_SORA }   /* scriptextensions=sora */,
+  {     1,  2004,  4150,   5,   5, UNI_POSIXPUNCT }   /* posixpunct */,
+  {   647,  1823,   779,   7,   4, UNI_OSMA }   /* script=osma */,
+  {    73,  1823,  1227,   7,   4, UNI_MAKA }   /* script=maka */,
+  {     3,  2732,  8174,  10,  29, UNI_ARABICMATH }   /* blk=arabicmathematicalalphabeticsymbols */,
+  {     8,  1102,   434,   4,   4, UNI_OGAM }   /* scx=ogam */,
+  {    18,  1823,   951,   7,   8, UNI_SC__DUPL }   /* script=duployan */,
+  {     1,   309,  1191,   2,   7, UNI_INBENGALI }   /* inbengali */,
+  {     0,    11,  5676,   1,  18, UNI_ANCIENTGREEKNUMBERS }   /* ancientgreeknumbers */,
+  {     0,  1424,   768,   7,   2, UNI_CCC__27 }   /* ccc=ccc27 */,
+  {     1,   461,  4926,   2,   5, UNI_TAML }   /* istamil */,
+  {     0,  4360,  1864,  10,   5, UNI_EBASE }   /* linebreak=ebase */,
+  {   154,  1065,   295,   4,   1, UNI_NV__19 }   /* nv=19 */,
+  {     0,  2523,   307,   8,   5, UNI_XPOSIXPRINT }   /* isxposixprint */,
+  {   556,   461,   180,   2,   4, UNI_RUNR }   /* isrunr */,
+  {   650,  1102,   746,   4,   7, UNI_MARC }   /* scx=marchen */,
+  {     0,  4424,    35,  17,   4, UNI_BATK }   /* scriptextensions=batk */,
+  {    74,  2536,  7328,   3,  14, UNI_JG__NOJOININGGROUP }   /* jg=nojoininggroup */,
+  {     0,  5168,  3084,   6,   9, UNI__PERL_QUOTEMETA }   /* _perl_quotemeta */,
+  {     0,   255,     0,   2,   0, UNI_CF }   /* cf */,
+  {     0,  4191,   353,   5,   4, UNI_XPOSIXLOWER }   /* lower=yes */,
+  {     0,    54,  2735,   2,   7, UNI_SC__ARAB }   /* sc=arabic */,
+  {     0,  1667,  1248,   4,   7, UNI_INPHAGSPA }   /* blk=phagspa */,
+  {     6,   940,  1104,   5,   2, UNI_compex_values_index }   /* compex= */,
+  {     0,   461,  4206,   2,  15, UNI_PS }   /* isopenpunctuation */,
+  {  1079,  6165,   926,   5,   2, UNI_SC__COPT }   /* sc=copt */,
+  {   142,  1823,  1562,   7,   4, UNI_NAGM }   /* script=nagm */,
+  {    29,   959,   934,   8,   6, -UNI_EXT }   /* extender=false */,
+  {     0,  7648,   601,  19,   3, UNI_DT__NONE }   /* decompositiontype=none */,
+  {     1,  1823,   406,   7,   4, UNI_DIAK }   /* script=diak */,
+  {  1096,   959,     0,   8,   0, UNI_EXT }   /* extender */,
+  {     0,  1200,  1926,   3,   7, UNI_CJKSYMBOLS }   /* cjksymbols */,
+  {     1,  3391,  1154,  13,   2, UNI_NV__43 }   /* numericvalue=43 */,
+  {     0,  4360,  4650,  10,   2, UNI_LB__BB }   /* linebreak=bb */,
+  {     1,  1272,  3611,   5,  11, UNI_CJKCOMPATFORMS }   /* iscjkcompatforms */,
+  {     1,  1102,    23,   4,   4, UNI_AHOM }   /* scx=ahom */,
+  {   546,   461,  1914,   2,   8, UNI_UCASEXTA }   /* isucasexta */,
+  {     0,  2287,   560,   3,   3, UNI_IN__7 }   /* in=7.0 */,
+  {     0,  1823,  5031,   7,   4, UNI_SC__HAN }   /* script=hani */,
+  {   132,   339,   393,   4,   2, UNI_CCC__15 }   /* ccc=15 */,
+  {     2,  2324,   718,   6,   7, UNI_INKANNADA }   /* block=kannada */,
+  {     0,  5595,   599,  21,   3, -UNI_CWT }   /* changeswhentitlecased=no */,
+  {     0,  7274,  7110,   9,  13, UNI_M }   /* category=combiningmark */,
+  {     0,   180,     0,   4,   0, UNI_RUNR }   /* runr */,
+  {     2,   597,   238,   3,   2, UNI_DT__NB }   /* dt=nb */,
+  {    21,   461,  4651,   2,  16, UNI_BOPOMOFOEXT }   /* isbopomofoextended */,
+  {   128,  4424,  1484,  17,   8, UNI_BUGI }   /* scriptextensions=buginese */,
+  {    10,  5769,   934,   4,   2, -UNI_EMOD }   /* emod=f */,
+  {     3,  4502,  4698,   8,   2, UNI_LATIN1 }   /* blk=latin1 */,
+  {     0,  4407,   585,  17,   5, UNI_RI }   /* regionalindicator=true */,
+  {     0,  2536,  6215,   3,   9, UNI_JG__YEHBARREE }   /* jg=yehbarree */,
+  {   411,  6870,  8554,  17,   4, UNI_ce_values_index }   /* compositionexclusion= */,
+  {  1705,  2393,  3640,   8,   9, UNI_CYRILLICEXTD }   /* cyrillicextendedd */,
+  {     0,  1065,  1317,   5,   3, UNI_NV__1_SLASH_320 }   /* nv=1/320 */,
+  {  1089,  6427,  2546,  20,   3, UNI_JG__AFRICANFEH }   /* joininggroup=africanfeh */,
+  {   124,  1102,   462,   4,   4, UNI_SHAW }   /* scx=shaw */,
+  {     0,  3014,  2125,  11,   2, UNI_IN__6_DOT_3 }   /* presentin=v63 */,
+  {     0,  3817,   760,  14,   3, UNI_NV__11_SLASH_2 }   /* numericvalue=11/2 */,
+  {     1,  2665,   585,  13,   5, UNI_PATSYN }   /* patternsyntax=true */,
+  {     2,  1102,   426,   4,   3, UNI_MRO }   /* scx=mro */,
+  {   144,  1492,  5292,   4,  16, UNI_INPUNCTUATION }   /* ingeneralpunctuation */,
+  {     0,  2536,  1747,   3,   8, UNI_JG__FARSIYEH }   /* jg=farsiyeh */,
+  {   115,  3204,   274,  14,   1, UNI_grext_values_index }   /* graphemeextend= */,
+  {     0,  2324,  6185,   6,  10, UNI_INGLAGOLITIC }   /* block=glagolitic */,
+  {     0,   461,  3026,   2,  14, UNI_PHLP }   /* ispsalterpahlavi */,
+  {     1,   309,   342,   2,   3, UNI_IN__12 }   /* in=12 */,
+  {     0,   461,  8607,   2,  33, UNI_SUPMATHOPERATORS }   /* issupplementalmathematicaloperators */,
+  {   167,  4941,  3622,   9,   3, UNI_KANGXI }   /* block=kangxi */,
+  {     0,   461,   426,   2,   3, UNI_MRO }   /* ismro */,
+  {     0,  1102,   718,   4,   7, UNI_KNDA }   /* scx=kannada */,
+  {     0,  1479,  5671,   4,   3, -UNI_XPOSIXSPACE }   /* space=n */,
+  {     3,  4161,     0,  12,   0, UNI_DIACRITICALS }   /* diacriticals */,
+  {    11,   461,  2852,   2,   7, UNI_MAHJONG }   /* ismahjong */,
+  {     2,  7887,  3998,  28,   4, UNI_CJKEXTG }   /* incjkunifiedideographsextensiong */,
+  {     0,  4852,   933,   9,   7, -UNI_XPOSIXSPACE }   /* whitespace=false */,
+  {     4,  8343,  5338,  22,  15, UNI_INSC__REGISTERSHIFTER }   /* indicsyllabiccategory=registershifter */,
+  {   163,    30,  7133,   1,  27, UNI_PCM }   /* isprependedconcatenationmark */,
+  {     1,   339,   689,   4,   3, UNI_CCC__214 }   /* ccc=ata */,
+  {   257,  4424,  1522,  17,   4, UNI_UGAR }   /* scriptextensions=ugar */,
+  {     1,  1385,     0,   6,   0, UNI_THAA }   /* thaana */,
+  {    23,  5065,  4243,  13,   4, UNI_JG__MANICHAEANHETH }   /* jg=manichaeanheth */,
+  {  1131,  4371,   352,   5,   2, UNI_wspace_values_index }   /* wspace= */,
+  {     5,  6090,  8039,   7,  32, UNI_MISCMATHSYMBOLSA }   /* block=miscellaneousmathematicalsymbolsa */,
+  {     2,  6841,  2931,  24,   3, UNI_DI }   /* defaultignorablecodepoint=t */,
+  {    22,  5156,  1864,  10,   8, UNI_WB__EB }   /* wordbreak=ebasegaz */,
+  {     0,  1102,    98,   4,   4, UNI_HLUW }   /* scx=hluw */,
+  {   349,  2324,  3908,   6,   6, UNI_INTANGUT }   /* block=tangut */,
+  {   209,  1926,     0,   6,   0, UNI_S }   /* symbol */,
+  {     1,  7591,   272,   3,   2, UNI_LB__CB }   /* lb=cb */,
+  {     1,  5799,  5909,   5,   7, UNI_SUPARROWSC }   /* insuparrowsc */,
+  {  2429,   461,   257,   2,   4, UNI_CWCM }   /* iscwcm */,
+  {  1113,  1200,  8153,   3,  21, UNI_CJKSYMBOLS }   /* cjksymbolsandpunctuation */,
+  {     6,  3014,  1317,  11,   2, UNI_IN__3_DOT_2 }   /* presentin=v32 */,
+  {  1054,   733,  7915,   3,  20, UNI_ENCLOSEDALPHANUM }   /* inenclosedalphanumerics */,
+  {     0,  1667,  6185,   4,  10, UNI_INGLAGOLITIC }   /* blk=glagolitic */,
+  {     1,  7214,   582,  25,   2, UNI_CCC__122 }   /* canonicalcombiningclass=122 */,
+  {     2,  6427,   481,  13,   3, UNI_JG__GAF }   /* joininggroup=gaf */,
+  {   112,  1667,  6692,   4,  15, UNI_TRANSPORTANDMAP }   /* blk=transportandmap */,
+  {  1565,   380,   599,   6,   2, -UNI_HYPHEN }   /* hyphen=n */,
+  {     0,   794,     0,   4,   0, UNI_LANA }   /* lana */,
+  {   115,  3177,   604,  15,   4, UNI_EA__W }   /* eastasianwidth=wide */,
+  {     0,   309,  4131,   2,  15, UNI_VEDICEXT }   /* invedicextensions */,
+  {     0,   461,  3558,   2,   9, UNI_Z }   /* isseparator */,
+  {     3,  1102,  1331,   4,   9, UNI_PERM }   /* scx=oldpermic */,
+  {     0,  2324,  1133,   6,   8, UNI_INVITHKUQI }   /* block=vithkuqi */,
+  {  1671,  2324,  1340,   6,   9, UNI_INOLDTURKIC }   /* block=oldturkic */,
+  {     0,  2324,  7796,   6,  29, UNI_ENCLOSEDIDEOGRAPHICSUP }   /* block=enclosedideographicsupplement */,
+  {     1,  3832,  2200,  14,   8, UNI_NV__1_SLASH_20 }   /* numericvalue=5.000e-02 */,
+  {     0,  2752,   353,  14,   2, UNI_ECOMP }   /* emojicomponent=y */,
+  {     0,  1102,  1484,   4,   4, UNI_BUGI }   /* scx=bugi */,
+  {    11,  7591,  2621,   3,   9, UNI_LB__SG }   /* lb=surrogate */,
+  {     0,  3633,  3693,   3,   3, UNI_INLISU }   /* inlisu */,
+  {   329,  5532,   585,  21,   5, UNI_CWCF }   /* changeswhencasefolded=true */,
+  {     4,  1102,   678,   4,   5, UNI_RUNR }   /* scx=runic */,
+  {     1,  4424,  1094,  17,   4, UNI_MERC }   /* scriptextensions=merc */,
+  {   515,  3635,  4770,   8,  10, UNI_LATINEXTADDITIONAL }   /* latinextadditional */,
+  {     1,   261,   934,   5,   2, -UNI_CWKCF }   /* cwkcf=f */,
+  {   901,  5205,  4636,   5,  15, UNI_MISCMATHSYMBOLSB }   /* blk=miscmathsymbolsb */,
+  {     1,  3791,   353,   4,   2, UNI_MATH }   /* math=y */,
+  {     1,  7198,  1269,   8,   3, UNI_SUPPUAB }   /* blk=suppuab */,
+  {     0,  1198,  1037,   5,   4, UNI_CJKEXTB }   /* incjkextb */,
+  {     3,  1102,   608,   4,   4, UNI_ELBA }   /* scx=elba */,
+  {  1172,  2280,  2689,  10,   3, UNI_IN__6_DOT_1 }   /* presentin=6.1 */,
+  {  1796,  4191,     0,   5,   0, UNI_XPOSIXLOWER }   /* lower */,
+  {     1,  1102,    59,   4,   4, UNI_CHRS }   /* scx=chrs */,
+  {  1003,    30,  1617,   1,   3, UNI_SO }   /* isso */,
+  {    18,  5658,  7062,  15,  11, UNI_IDENTIFIERTYPE__RECOMMENDED }   /* identifiertype=recommended */,
+  {     2,    47,     0,   4,   0, UNI_CAKM }   /* cakm */,
+  {   273,   521,   599,   6,   3, -UNI_PATSYN }   /* patsyn=no */,
+  {     3,   597,   363,   3,   3, UNI_DT__SML }   /* dt=sml */,
+  {   516,  3177,  1176,  14,   7, UNI_EA__NA }   /* eastasianwidth=narrow */,
+  {  1200,  7011,   581,  23,   3, UNI_CCC__22 }   /* canonicalcombiningclass=22 */,
+  {   260,  7267,  4146,  16,  15, UNI_PD }   /* generalcategory=dashpunctuation */,
+  {   800,  7648,  2692,  18,   8, UNI_DT__VERT }   /* decompositiontype=vertical */,
+  {     0,   959,   934,   8,   2, -UNI_EXT }   /* extender=f */,
+  {     0,  7267,   599,  15,   2, UNI_N }   /* generalcategory=n */,
+  {     6,  6165,  1027,   3,   4, UNI_SC__YEZI }   /* sc=yezi */,
+  {     0,   753,  1792,   3,   4, UNI_nfkcqc_values_index }   /* nfkcqc= */,
+  {     0,   461,    71,   2,   3, UNI_CWU }   /* iscwu */,
+  {     0,  4424,  2780,  17,   4, UNI_COPT }   /* scriptextensions=copt */,
+  {     6,  6165,  2852,   3,   4, UNI_SC__MAHJ }   /* sc=mahj */,
+  {   149,   312,   353,   5,   2, UNI_QMARK }   /* qmark=y */,
+  {     5,  4519,  1674,  14,   4, UNI_CYRILLICEXTD }   /* block=cyrillicextd */,
+  {    31,     2,   598,   2,   4, -UNI_CWT }   /* cwt=no */,
+  {     3,   309,   779,   2,   7, UNI_INOSMANYA }   /* inosmanya */,
+  {   385,  7267,  2621,  16,   9, UNI__PERL_SURROGATE }   /* generalcategory=surrogate */,
+  {     0,    10,  3189,   2,   3, UNI_math_values_index }   /* math= */,
+  {   644,  1102,   615,   4,   7, UNI_ELYM }   /* scx=elymaic */,
+  {   410,  5532,   599,  21,   2, -UNI_CWCF }   /* changeswhencasefolded=n */,
+  {     5,  2287,   386,   3,   3, UNI_IN__3_DOT_2 }   /* in=3.2 */,
+  {  1348,   309,  4176,   2,  15, UNI_INHANGUL }   /* inhangulsyllables */,
+  {     0,  2842,   620,   8,   5, UNI_ETHIOPICEXT }   /* isethiopicext */,
+  {     7,  1667,  4090,   4,  17, UNI_INDICSIYAQNUMBERS }   /* blk=indicsiyaqnumbers */,
+  {    32,   461,  1484,   2,   8, UNI_BUGI }   /* isbuginese */,
+  {   423,  1011,   585,   2,   5, UNI_CI }   /* ci=true */,
+  {   838,  4424,   430,  17,   3, UNI_NKO }   /* scriptextensions=nko */,
+  {     2,   253,   934,   4,   6, -UNI_CWCF }   /* cwcf=false */,
+  {   896,   461,  1501,   2,   8, UNI_JAMOEXTA }   /* isjamoexta */,
+  {     0,  3863,  2657,  14,   8, UNI_NV__4_SLASH_5 }   /* numericvalue=8.000e-01 */,
+  {    32,  1484,     0,   4,   0, UNI_BUGI }   /* bugi */,
+  {   258,   309,  1227,   2,   7, UNI_INMAKASAR }   /* inmakasar */,
+  {     0,  1397,   599,   3,   3, -UNI_IDS }   /* ids=no */,
+  {   138,   887,  2199,   5,   3, UNI_AGE__12 }   /* age=12.0 */,
+  {   642,  1455,   934,  10,   2, -UNI_DEP }   /* deprecated=f */,
+  {     2,   461,  2441,   2,  11, UNI_NAND }   /* isnandinagari */,
+  {    15,  7495,   582,  27,   2, UNI_CCC__22 }   /* canonicalcombiningclass=ccc22 */,
+  {     0,  3791,   934,   4,   2, -UNI_MATH }   /* math=f */,
+  {   262,  4043,   934,   4,   2, -UNI_IDSB }   /* idsb=f */,
+  {     0,  1883,   934,  11,   6, -UNI_BIDIC }   /* bidicontrol=false */,
+  {   954,  7011,  2742,  24,  10, UNI_CCC__6 }   /* canonicalcombiningclass=hanreading */,
+  {     5,  8601,  4607,  16,  13, UNI_SUPPUNCTUATION }   /* block=supplementalpunctuation */,
+  {  3658,  1102,  2045,   4,  12, UNI_GONM }   /* scx=masaramgondi */,
+  {     0,  1358,     0,   9,   0, UNI_PALM }   /* palmyrene */,
+  {   130,   224,     0,   4,   0, UNI_XPEO }   /* xpeo */,
+  {  2199,  3817,   515,  14,   2, UNI_NV__1_SLASH_5 }   /* numericvalue=1/5 */,
+  {     1,   309,  6332,   2,  19, UNI_JAMOEXTB }   /* inhanguljamoextendedb */,
+  {     7,  4424,  1262,  17,   7, UNI_SOYO }   /* scriptextensions=soyombo */,
+  {   476,  2525,  3268,   6,   5, UNI_XPOSIXALNUM }   /* xposixalnum */,
+  {     3,  7495,   891,  27,   2, UNI_CCC__10 }   /* canonicalcombiningclass=ccc10 */,
+  {  4116,  7591,  1771,   3,   8, UNI_LB__NL }   /* lb=nextline */,
+  {     0,  7011,   430,  24,   2, UNI_CCC__7 }   /* canonicalcombiningclass=nk */,
+  {     4,  2324,  6103,   6,  13, UNI_MATHOPERATORS }   /* block=mathoperators */,
+  {  1921,  4795,  2131,  14,   8, UNI_NV__2_SLASH_3 }   /* numericvalue=6.667e-01 */,
+  {   516,  4089,     0,   4,   0, UNI_SIND }   /* sind */,
+  {     0,  4424,   991,  17,   4, UNI_HATR }   /* scriptextensions=hatr */,
+  {  4097,  2536,  2009,   3,   9, UNI_JG__SYRIACWAW }   /* jg=syriacwaw */,
+  {     0,   423,  2705,   3,  13, UNI_ANCIENTSYMBOLS }   /* inancientsymbols */,
+  {   108,  4360,   318,  10,   2, UNI_LB__AI }   /* linebreak=ai */,
+  {     1,   461,   112,   2,   4, UNI_KITS }   /* iskits */,
+  {     0,  1102,  1819,   4,   4, UNI_MONG }   /* scx=mong */,
+  {     0,  1667,   527,   4,   6, UNI_INREJANG }   /* blk=rejang */,
+  {     1,  6450,   535,  13,   3, UNI_SB__ST }   /* sentencebreak=st */,
+  {  5294,  4424,  2735,  16,   7, UNI_ARAB }   /* scriptextensions=arabic */,
+  {    14,  2514,   740,   3,   6, UNI_MAND }   /* ismandaic */,
+  {     8,  2391,  6193,   8,   5, UNI_CYRILLICSUP }   /* incyrillicsup */,
+  {  4140,  2766,  3558,   3,   9, UNI_Z }   /* gc=separator */,
+  {   233,  3677,     0,   3,   0, UNI_L }   /* isl */,
+  {     3,  1102,  1385,   4,   4, UNI_THAA }   /* scx=thaa */,
+  {     8,  6163,  1517,   5,   5, UNI_INSC__BINDU }   /* insc=bindu */,
+  {     0,   339,   391,   4,   2, UNI_CCC__34 }   /* ccc=34 */,
+  {     0,   895,   891,   6,   2, UNI_AGE__11 }   /* age=v110 */,
+  {     0,  6165,   224,   3,   4, UNI_XPEO }   /* sc=xpeo */,
+  {     1,   461,  2483,   2,  11, UNI_CASEDLETTER }   /* iscasedletter */,
+  {     0,    30,  1941,   1,   6, UNI_XPOSIXGRAPH }   /* isgraph */,
+  {     0,   461,  1331,   2,   9, UNI_PERM }   /* isoldpermic */,
+  {     0,   533,   306,   3,   2, UNI_SB__SP }   /* sb=sp */,
+  {  2762,  4911,     0,  15,   0, UNI_DIACRITICALSSUP }   /* diacriticalssup */,
+  {     0,   461,  4740,   2,   4, UNI_TALE }   /* istale */,
+  {  1043,  2536,  4751,   3,   5, UNI_JG__SADHE }   /* jg=sadhe */,
+  {     0,  1667,  6586,   4,  11, UNI_NUMBERFORMS }   /* blk=numberforms */,
+  {     9,   578,   388,   5,   2, UNI_CCC__R }   /* ccc=226 */,
+  {     0,  1075,  1805,   4,   7, UNI_NV__20000000 }   /* nv=20000000 */,
+  {  2057,  2302,   585,   3,   5, UNI_IDC }   /* idc=true */,
+  {     0,  1667,   718,   4,   7, UNI_INKANNADA }   /* blk=kannada */,
+  {     0,  2287,   563,   3,   3, UNI_IN__8 }   /* in=8.0 */,
+  {  2060,  2514,  4636,   3,  15, UNI_MISCMATHSYMBOLSB }   /* ismiscmathsymbolsb */,
+  {    81,  1894,   585,  12,   5, UNI_BIDIM }   /* bidimirrored=true */,
+  {    25,  4424,  1051,  17,   8, UNI_MAHJ }   /* scriptextensions=mahajani */,
+  {  4097,  3026,     0,   2,   0, UNI_PS }   /* ps */,
+  {  1178,  1667,  1191,   4,   7, UNI_INBENGALI }   /* blk=bengali */,
+  {     0,   461,  2244,   2,  12, UNI_HUNG }   /* isoldhungarian */,
+  {    10,  2324,   377,   9,   4, UNI_CJKEXTH }   /* block=cjkexth */,
+  {     0,   461,  1894,   2,   5, UNI_BIDIM }   /* isbidim */,
+  {  1735,   406,   585,   3,   2, UNI_DIA }   /* dia=t */,
+  {     0,  6165,  1294,   3,   9, UNI_NBAT }   /* sc=nabataean */,
+  {     0,   292,  1318,   3,   4, UNI_NV__2000 }   /* nv=2000 */,
+  {   151,  2718,  4487,   3,  15, UNI_BC__CS }   /* bc=commonseparator */,
+  {     0,  3677,  5848,   7,   9, UNI_LATINEXTA }   /* islatinextendeda */,
+  {   298,  4845,   933,  16,   3, -UNI__PERL_PATWS }   /* patternwhitespace=f */,
+  {  4163,   309,  1021,   2,   6, UNI_INWANCHO }   /* inwancho */,
+  {     0,  1272,   204,   7,   2, UNI_CJKEXTF }   /* iscjkextf */,
+  {     0,    54,  1105,   2,   5, UNI_TALU }   /* sc=talu */,
+  {     0,  6165,  4487,   3,   6, UNI_SC__ZYYY }   /* sc=common */,
+  {     8,  2718,    52,   3,   2, UNI_BC__AN }   /* bc=an */,
+  {    38,   461,  2302,   2,  10, UNI_IDC }   /* isidcontinue */,
+  {     0,  7752,  4756,  23,   5, UNI_JG__MANICHAEANZAYIN }   /* joininggroup=manichaeanzayin */,
+  {  4336,  1667,  8214,   5,  24, UNI_DIACRITICALS }   /* blk=combiningdiacriticalmarks */,
+  {     2,  2060,   585,   5,   2, UNI_XPOSIXALPHA }   /* alpha=t */,
+  {  2254,  1530,  3746,   4,  14, UNI_KAKTOVIKNUMERALS }   /* iskaktoviknumerals */,
+  {  2088,  1667,  1241,   4,   7, UNI_NB }   /* blk=noblock */,
+  {  4098,    71,     0,   3,   0, UNI_CWU }   /* cwu */,
+  {     0,  2324,  1404,   6,  10, UNI_ASCII }   /* block=basiclatin */,
+  {     2,  1823,   861,   7,   7, UNI_TIBT }   /* script=tibetan */,
+  {     0,  1667,   192,   4,   4, UNI_TAGS }   /* blk=tags */,
+  {     1,    39,     0,   4,   0, UNI_BHKS }   /* bhks */,
+  {  4494,  2004,  4191,   5,   5, UNI_POSIXLOWER }   /* posixlower */,
+  {     0,   461,  2752,   2,  14, UNI_ECOMP }   /* isemojicomponent */,
+  {  2096,   297,     0,   5,   0, UNI_ORYA }   /* oriya */,
+  {  4160,  2536,     0,   3,   0, UNI_jg_values_index }   /* jg= */,
+  {     5,  1667,  5876,   4,   9, UNI_INSUNDANESE }   /* blk=sundanese */,
+  {     0,   292,  3405,   3,   2, UNI_NV__36 }   /* nv=36 */,
+  {     0,  1667,  1853,   4,  11, UNI_INSYLOTINAGRI }   /* blk=sylotinagri */,
+  {  2154,  6165,   426,   3,   3, UNI_MRO }   /* sc=mro */,
+  {     4,  6735,   699,  14,   3, UNI_JG__MEEM }   /* joininggroup=meem */,
+  {     0,  2401,  6193,   8,  12, UNI_ETHIOPICSUP }   /* inethiopicsupplement */,
+  {  1024,  2280,     0,  12,   0, UNI_IN__14 }   /* presentin=14 */,
+  {  1323,  1823,   868,   7,   7, UNI_SC__TIRH }   /* script=tirhuta */,
+  {  5635,  2766,   248,   3,   5, UNI_XPOSIXCNTRL }   /* gc=cntrl */,
+  {     0,  2536,  1046,   3,   5, UNI_JG__KHAPH }   /* jg=khaph */,
+  {     0,  2494,     0,   6,   0, UNI_GEOR }   /* isgeor */,
+  {     1,  6154,     0,   9,   0, UNI_XSUX }   /* cuneiform */,
+  {  2689,  3391,   344,  13,   2, UNI_NV__21 }   /* numericvalue=21 */,
+  {  2155,  2752,   934,   5,   6, -UNI_EMOJI }   /* emoji=false */,
+  {     0,  2280,  2182,   9,   2, UNI_IN__4 }   /* presentin=4 */,
+  {  3081,  1603,     0,   6,   0, UNI_L }   /* letter */,
+  {     3,  1942,   352,  11,   2, UNI_grbase_values_index }   /* graphemebase= */,
+  {  2224,   461,   430,   2,   4, UNI_NKO }   /* isnkoo */,
+  {    15,   461,  5595,   2,  21, UNI_CWT }   /* ischangeswhentitlecased */,
+  {    10,  7591,  4304,   5,  12, UNI_LB__SA }   /* lb=complexcontext */,
+  {  4096,  1801,     0,   7,   0, UNI_NV__1000 }   /* nv=1000 */,
+  {     7,  4424,  1438,  17,  10, UNI_CHRS }   /* scriptextensions=chorasmian */,
+  {   364,   309,  4651,   2,   8, UNI_INBOPOMOFO }   /* inbopomofo */,
+  {  4281,  1391,  1909,   2,   3, UNI_WB__KA }   /* wb=ka */,
+  {     0,  2432,  2643,   3,  12, UNI_MISCTECHNICAL }   /* inmisctechnical */,
+  {     1,  8246,  8508,  30,  14, UNI_INPC__TOPANDBOTTOMANDRIGHT }   /* indicpositionalcategory=topandbottomandright */,
+  {     0,   309,  5440,   2,  20, UNI_INNYIAKENGPUACHUEHMONG }   /* innyiakengpuachuehmong */,
+  {  2375,  2536,   783,   3,   3, UNI_JG__NYA }   /* jg=nya */,
+  {     5,  1667,  1349,   4,   9, UNI_INOLDUYGHUR }   /* blk=olduyghur */,
+  {     0,  1102,  5185,   4,  20, UNI_HLUW }   /* scx=anatolianhieroglyphs */,
+  {     0,  4525,     0,  12,   0, UNI_CYRILLICEXTC }   /* cyrillicextc */,
+  {    28,  7011,  2222,  23,   2, UNI_CCC__6 }   /* canonicalcombiningclass=6 */,
+  {  1050,  4043,   353,  17,   4, UNI_IDSB }   /* idsbinaryoperator=yes */,
+  {    23,   901,     0,   8,   0, UNI_ARMN }   /* armenian */,
+  {    13,  3391,  1155,  13,   2, UNI_NV__35 }   /* numericvalue=35 */,
+  {     0,  7011,  2742,  24,   4, UNI_CCC__6 }   /* canonicalcombiningclass=hanr */,
+  {  4192,   597,     0,   7,   0, UNI_DT__NONE }   /* dt=none */,
+  {     0,  1823,  5712,   7,  19, UNI_MERO }   /* script=meroitichieroglyphs */,
+  {     0,   302,   934,   5,   6, -UNI__PERL_PATWS }   /* patws=false */,
+  {  4116,  2324,  1522,   6,   8, UNI_INUGARITIC }   /* block=ugaritic */,
+  {     0,  5532,   934,  21,   6, -UNI_CWCF }   /* changeswhencasefolded=false */,
+  {  2061,  4424,   116,  17,   4, UNI_KNDA }   /* scriptextensions=knda */,
+  {     0,  1530,   419,   3,   3, UNI_KHMR }   /* iskhmr */,
+  {     2,   505,  1793,   3,   3, UNI_nfdqc_values_index }   /* nfdqc= */,
+  {     5,  1011,   934,   2,   2, -UNI_CI }   /* ci=f */,
+  {  2507,   309,  7036,   2,  26, UNI_HALFANDFULLFORMS }   /* inhalfwidthandfullwidthforms */,
+  {     7,   461,   832,   2,   5, UNI_STERM }   /* issterm */,
+  {     0,  2324,   840,   6,   7, UNI_INTAGALOG }   /* block=tagalog */,
+  {    32,  1667,  1015,   4,   6, UNI_INTELUGU }   /* blk=telugu */,
+  {     0,  3692,     0,  14,   0, UNI_LISUSUP }   /* lisusupplement */,
+  {   295,  1667,   840,   4,   7, UNI_INTAGALOG }   /* blk=tagalog */,
+  {     8,  3502,  1183,   5,   8, UNI_EMOTICONS }   /* blk=emoticons */,
+  {  6172,  5532,   599,  21,   3, -UNI_CWCF }   /* changeswhencasefolded=no */,
+  {     0,   461,    86,   2,   4, UNI_GREK }   /* isgrek */,
+  {     0,  4424,   120,  17,   4, UNI_LAO }   /* scriptextensions=laoo */,
+  {   459,   271,  3709,   4,  11, UNI_GCB__SM }   /* gcb=spacingmark */,
+  {     9,  2525,  1082,   6,   4, UNI_XPOSIXWORD }   /* xposixword */,
+  {     1,   875,   934,   5,   6, -UNI_UIDEO }   /* uideo=false */,
+  {     0,   461,   997,   2,   6, UNI_KTHI }   /* iskaithi */,
+  {  2056,  1667,     0,  11,   0, UNI_CJKEXTD }   /* blk=cjkextd */,
+  {  3079,   312,   599,   5,   3, -UNI_QMARK }   /* qmark=no */,
+  {     0,  1102,  1090,   4,   4, UNI_LINB }   /* scx=linb */,
+  {     1,   271,   163,   4,   2, UNI_GCB__PP }   /* gcb=pp */,
+  {    15,  7084,  1141,   8,   3, UNI_ARABICPFA }   /* inarabicpfa */,
+  {     0,    30,  7854,   1,  12, UNI_IDEO }   /* isideographic */,
+  {  4103,   461,   297,   2,   5, UNI_ORYA }   /* isoriya */,
+  {  4527,  3014,   343,  12,   1, UNI_IN__1_DOT_1 }   /* presentin=v11 */,
+  {     0,    19,   934,   4,   2, -UNI_POSIXXDIGIT }   /* ahex=f */,
+  {     0,  2324,  4060,   6,  15, UNI_BRAI }   /* block=braillepatterns */,
+  {   909,  2324,  8619,   6,  21, UNI_MATHOPERATORS }   /* block=mathematicaloperators */,
+  {  4997,  1397,   934,   4,   2, -UNI_IDST }   /* idst=f */,
+  {     0,  3635,   129,  11,   3, UNI_LATINEXTF }   /* latinextendedf */,
+  {     1,  1823,    86,   7,   4, UNI_SC__GREK }   /* script=grek */,
+  {   527,  4424,   493,  17,   6, UNI_KHOJ }   /* scriptextensions=khojki */,
+  {     0,  1200,  6357,   3,  13, UNI_CJKCOMPAT }   /* cjkcompatibility */,
+  {  2132,  3391,  6255,  14,   8, UNI_NV__1_SLASH_40 }   /* numericvalue=2.500e-02 */,
+  {  2358,  6165,  5778,   3,  21, UNI_PRTI }   /* sc=inscriptionalparthian */,
+  {  2912,  2324,  7724,   6,  18, UNI_INVS }   /* block=variationselectors */,
+  {     0,   309,   673,   2,   5, UNI_INOSAGE }   /* inosage */,
+  {  1682,  7537,     0,  27,   0, UNI_ALPHABETICPF }   /* alphabeticpresentationforms */,
+  {   131,   261,   274,   5,   1, UNI_cwkcf_values_index }   /* cwkcf= */,
+  {     0,  1102,  1086,   4,   4, UNI_KTHI }   /* scx=kthi */,
+  {     0,     2,  1214,   1,   3, UNI_CHER }   /* cher */,
+  {     0,   461,  1227,   2,   7, UNI_MAKA }   /* ismakasar */,
+  {     1,  2752,   353,   5,   2, UNI_EMOJI }   /* emoji=y */,
+  {     1,  2752,     0,  14,   0, UNI_ECOMP }   /* emojicomponent */,
+  {  6218,    71,   934,   3,   6, -UNI_CWU }   /* cwu=false */,
+  {     6,   895,  3876,   5,   2, UNI_AGE__8 }   /* age=v80 */,
+  {  5511,  7267,    99,  16,   2, UNI_UPPERCASELETTER }   /* generalcategory=lu */,
+  {     0,  1667,  6557,   7,  19, UNI_CJKCOMPATIDEOGRAPHSSUP }   /* blk=cjkcompatideographssup */,
+  {     3,   739,     0,   4,   0, UNI_MAND }   /* mand */,
+  {  2066,    30,    62,   1,   5, UNI_CPMN }   /* iscpmn */,
+  {     0,    30,   832,   1,   5, UNI_TERM }   /* isterm */,
+  {     0,  2842,     0,  10,   0, UNI_ETHI }   /* isethiopic */,
+  {     0,  1667,  3538,   4,  16, UNI_CYPRIOTSYLLABARY }   /* blk=cypriotsyllabary */,
+  {     1,  1667,  8660,   4,  42, UNI_UCASEXT }   /* blk=unifiedcanadianaboriginalsyllabicsextended */,
+  {     0,    30,   633,   1,   8, UNI_HANO }   /* ishanunoo */,
+  {  2188,  4536,     0,  18,   0, UNI_COPTICEPACTNUMBERS }   /* copticepactnumbers */,
+  {  4936,   461,  1205,   2,   7, UNI_GRAN }   /* isgrantha */,
+  {     0,   380,   353,   6,   2, UNI_HYPHEN }   /* hyphen=y */,
+  {     2,  1726,  4511,   8,   9, UNI_ARABICEXTB }   /* isarabicextendedb */,
+  {     0,   622,   598,   6,   3, -UNI_EXTPICT }   /* extpict=n */,
+  {     0,  1102,  6082,   4,   8, UNI_GEOR }   /* scx=georgian */,
+  {     0,  7591,  4407,   3,  17, UNI_RI }   /* lb=regionalindicator */,
+  {  2486,  4424,   648,  17,   5, UNI_ADLM }   /* scriptextensions=adlam */,
+  {     3,  5065,   600,  12,   4, UNI_JG__MANICHAEANONE }   /* jg=manichaeanone */,
+  {  6356,  6165,  5958,   3,   4, UNI_SC__SINH }   /* sc=sinh */,
+  {     0,  5857,     0,   9,   0, UNI_MONG }   /* mongolian */,
+  {    20,  2324,  4536,   6,  18, UNI_COPTICEPACTNUMBERS }   /* block=copticepactnumbers */,
+  {  4196,  1823,  1543,   7,  10, UNI_KHAR }   /* script=kharoshthi */,
+  {  4864,  7752,  5079,  24,   5, UNI_JG__MANICHAEANTWENTY }   /* joininggroup=manichaeantwenty */,
+  {  4160,  1102,   205,   5,   3, UNI_TFNG }   /* scx=tfng */,
+  {     9,  7110,     0,  24,   0, UNI_DIACRITICALSFORSYMBOLS }   /* combiningmarksforsymbols */,
+  {  3265,  1823,  1358,   7,   9, UNI_PALM }   /* script=palmyrene */,
+  {     1,  7887,  6553,  27,   5, UNI_CJKEXTC }   /* incjkunifiedideographsextensionc */,
+  {  5507,  4371,     0,   6,   0, UNI_XPOSIXSPACE }   /* wspace */,
+  {  6145,  3001,   283,  12,   2, UNI_NT__NU }   /* numerictype=nu */,
+  {  1550,   461,  1133,   2,   8, UNI_VITH }   /* isvithkuqi */,
+  {     0,   895,   288,   5,   2, UNI_AGE__3 }   /* age=v30 */,
+  {     2,   823,   585,   4,   5, UNI_DASH }   /* dash=true */,
+  {  4615,  4424,    43,  17,   4, UNI_BUHD }   /* scriptextensions=buhd */,
+  {     0,  2302,   933,   9,   3, -UNI_IDC }   /* idcontinue=f */,
+  {  2068,  2536,  2539,   3,  10, UNI_JG__AFRICANFEH }   /* jg=africanfeh */,
+  {     8,   461,  2526,   2,  10, UNI_POSIXBLANK }   /* isposixblank */,
+  {  2325,  1243,  5067,   5,  11, UNI_INMANICHAEAN }   /* block=manichaean */,
+  {     0,     8,   585,   3,   2, UNI_PCM }   /* pcm=t */,
+  {     0,  4424,  5778,  17,  21, UNI_PRTI }   /* scriptextensions=inscriptionalparthian */,
+  {    20,  1102,   673,   4,   5, UNI_OSGE }   /* scx=osage */,
+  {     8,  4424,   156,  17,   4, UNI_OUGR }   /* scriptextensions=ougr */,
+  {     0,  1823,    47,   7,   4, UNI_SC__CAKM }   /* script=cakm */,
+  {  4112,  1667,  5373,   4,  18, UNI_TAIXUANJING }   /* blk=taixuanjingsymbols */,
+  {     8,  7591,    18,   3,   2, UNI_LB__BA }   /* lb=ba */,
+  {     1,  4424,  4740,  17,   4, UNI_TALE }   /* scriptextensions=tale */,
+  {     0,   309,  4926,   2,   8, UNI_TAMILSUP }   /* intamilsup */,
+  {     0,  7011,   345,  24,   2, UNI_CCC__18 }   /* canonicalcombiningclass=18 */,
+  {     0,  2324,  6487,   6,  23, UNI_ZNAMENNYMUSIC }   /* block=znamennymusicalnotation */,
+  {    14,  2247,     0,   4,   0, UNI_HUNG }   /* hung */,
+  {     0,   527,     0,   6,   0, UNI_RJNG }   /* rejang */,
+  {  2313,   461,   940,   2,   2, UNI_CO }   /* isco */,
+  {     0,   309,  6797,   2,  19, UNI_DEVANAGARIEXTA }   /* indevanagariextendeda */,
+  {  2946,  2536,  1767,   3,   2, UNI_JG__FE }   /* jg=fe */,
+  {     0,  1102,  3349,   4,  15, UNI_MERC }   /* scx=meroiticcursive */,
+  {     0,  2280,  2360,  10,  10, UNI_IN__NA }   /* presentin=unassigned */,
+  {     1,  3514,  4987,   7,   9, UNI_ALCHEMICAL }   /* block=alchemical */,
+  {     0,   461,  5185,   2,  20, UNI_HLUW }   /* isanatolianhieroglyphs */,
+  {  1196,   946,  1847,   5,   6, UNI_SUPERANDSUB }   /* superandsub */,
+  {  2226,  7274,  6514,   9,  10, UNI_CO }   /* category=privateuse */,
+  {     7,  3502,  5820,   5,  18, UNI_ENCLOSEDALPHANUMSUP }   /* blk=enclosedalphanumsup */,
+  {  3164,  2523,   248,   8,   5, UNI_XPOSIXCNTRL }   /* isxposixcntrl */,
+  {     0,   292,  2656,   3,   9, UNI_NV__1_SLASH_2 }   /* nv=5.000e-01 */,
+  {  4234,  3832,  1805,  14,   4, UNI_NV__50000 }   /* numericvalue=50000 */,
+  {     0,  7011,   388,  24,   2, UNI_CCC__26 }   /* canonicalcombiningclass=26 */,
+  {   711,  1823,  1021,   7,   6, UNI_WCHO }   /* script=wancho */,
+  {  2144,  5958,     0,  21,   0, UNI_SINHALAARCHAICNUMBERS }   /* sinhalaarchaicnumbers */,
+  {     2,   461,   115,   2,   2, UNI_SK }   /* issk */,
+  {  4297,   833,   599,   4,   2, -UNI_TERM }   /* term=n */,
+  {    20,  1409,     0,   5,   0, UNI_LATN }   /* latin */,
+  {     0,   375,   353,   5,   2, UNI_GREXT }   /* grext=y */,
+  {     2,  8505,   406,   3,   2, UNI_NT__DI }   /* nt=di */
 };
 
 MPH_VALt
@@ -7629,57 +7708,58 @@ match_uniprop( const unsigned char * con
 
 /* Generated from:
  * 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
- * c7698811e9adb6cc98fb996a7de4be2b6532f2ac67e76055cc8afdbf6ee18af3 lib/unicore/ArabicShaping.txt
- * 24a74555f918bbe99f5b3f1b83cf36fc0e205bb8a600a6a3aa539c710a3dcf27 lib/unicore/BidiBrackets.txt
- * 7a5c74cedc1616a9af0a9d22e108ae592d86fe93649c144ae6ba49f193a44122 lib/unicore/BidiMirroring.txt
- * 598870dddef7b34b5a972916528c456aff2765b79cd4f9647fb58ceb767e7f17 lib/unicore/Blocks.txt
- * a566cd48687b2cd897e02501118b2413c14ae86d318f9abbbba97feb84189f0f lib/unicore/CaseFolding.txt
- * 3360762fc3295cea54ab251c31df621d05ba4b94d46c60eaac29aa16d70ad1e0 lib/unicore/CompositionExclusions.txt
- * 7e058dec02147098bc9c28d86209f0f251bba0538f3b5a705ad02ea3bb709fe0 lib/unicore/DAge.txt
- * e3eddd7d469cd1b0feed7528defad1a1cc7c6a9ceb0ae4446a6d10921ed2e7bc lib/unicore/DCoreProperties.txt
- * b2c444c20730b097787fdf50bd7d6dd3fc5256ab8084f5b35b11c8776eca674c lib/unicore/DNormalizationProps.txt
- * f901ac011aa32a09224d6555da71e2532c59c1d3381322829de0e3b880507250 lib/unicore/EastAsianWidth.txt
- * 5995522f01633073911dad1edb74d13aa832f42862c0392a79627b85d52f2391 lib/unicore/EquivalentUnifiedIdeograph.txt
- * cd1c9367cba438afa965fcb5edc6ed3ec6e685fd5dd21c0cc20c026f04beb0e5 lib/unicore/HangulSyllableType.txt
- * 3f3f368fccdb37f350ecedc20b37fa71ab31c04e847884c77780d34283539f73 lib/unicore/IdStatus.txt
- * 45a150c23961b58d7784704af6c4daccd6517d97b6489e53d13bbdbf9e4f065f lib/unicore/IdType.txt
- * d8704c8725568813a947ff2ef38bcf1f05e2a6fbea6876ba384890f187a8bf61 lib/unicore/IndicPositionalCategory.txt
- * c7b969b653dc278fb66ab4136223d320e30ad19367eb791ae60dcc6d92071b16 lib/unicore/IndicSyllabicCategory.txt
- * 39ff89e0a329e1ccce6d54fad8cf82e90926901928c0ca9b9a2ad5681f330dd9 lib/unicore/Jamo.txt
- * 9e06e9f35c6959fb91dcc7993f90d58523c3079bc62c6b25f828b4cdebc5d70c lib/unicore/LineBreak.txt
- * 14b3b677d33f95c51423dce6eef4a6a28b4b160451ecedee4b91edb6745cf4a3 lib/unicore/NameAliases.txt
- * db5745688affcdc0c3927a1ee0667018a96a7b24513f866d5235e98fef6c2436 lib/unicore/NamedSequences.txt
- * 6bddfdb850417a5bee6deff19290fd1b138589909afb50f5a049f343bf2c6722 lib/unicore/PropList.txt
- * eb755757e20b72b330b2948df3cf2ff7adb0e31bb060140dc09dafb132ace2cd lib/unicore/PropValueAliases.txt
- * 859d7225f2d2a460b3ccb1d61a7945f8cc219acdf5aa53b66b7a1e4bf6ebfc87 lib/unicore/PropertyAliases.txt
- * d37eedf63ff9c48bac863d5f76862373d6cf5269fd21253d499e2430d638c01d lib/unicore/ScriptExtensions.txt
- * 52db475c4ec445e73b0b16915448c357614946ad7062843c563e00d7535c6510 lib/unicore/Scripts.txt
- * c667b45908fd269af25fd55d2fc5bbc157fb1b77675936e25c513ce32e080334 lib/unicore/SpecialCasing.txt
- * 36018e68657fdcb3485f636630ffe8c8532e01c977703d2803f5b89d6c5feafb lib/unicore/UnicodeData.txt
- * 869ff43dd012f924d03c89fc268c88f0e7eea72f0228b91ca30455afdb84f8fd lib/unicore/VerticalOrientation.txt
- * ddc7d4d1f3838573b94fc5d83ff7217e63c47b22ae1cd40c5fe1a54efc15589b lib/unicore/auxiliary/GCBTest.txt
- * 97e79f1f8d9cd76d120f2420381a01abc00a7c78a2aa583fa3f9627264a99742 lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * 488dbb6a7e1d0070d4aa7c175352c818ff6425172850d1b40c6177726658cb05 lib/unicore/auxiliary/LBTest.txt
- * 7e42dd749dbb94aa44b13faf9df6319d9a16ce2ea09a3a094fcfbb5962168040 lib/unicore/auxiliary/SBTest.txt
- * 7092ca4117cec891c25c7724132efc519e1dece01ae9fd6068035a9db04d526e lib/unicore/auxiliary/SentenceBreakProperty.txt
- * 8094b544ec1580c7e41ac0187805cc1aeb330a90301ec7505563e1a59318284e lib/unicore/auxiliary/WBTest.txt
- * 7716752aad296d4ab23ff4ed0a2746fc5328750ff84e9e7d6f3828ee9eaef742 lib/unicore/auxiliary/WordBreakProperty.txt
- * b597836124298b8f7fa076273802840cfc3271a25f5c397a082e120954b82c3c lib/unicore/emoji/emoji.txt
- * e5fe51acc74e3e83b4fb4c7b25f3c34491d6eb8095c9955d0712dafbca7b3c2b lib/unicore/extracted/DBidiClass.txt
- * cd0a14176d93bf440b77a582a0d678190fc0688b15442d4cfb250bf2e27956af lib/unicore/extracted/DBinaryProperties.txt
- * 12b0c3af9b600b49488d66545a3e7844ea980809627201bf9afeebe1c9f16f4e lib/unicore/extracted/DCombiningClass.txt
- * f76064b298cfbd715ba542e7894f7a507d32da2f011070d1d01df95cad9817d6 lib/unicore/extracted/DDecompositionType.txt
- * f9bef074cc916db57fece99d54a4505f8e7c7b17481619e3f0005211f7717d4b lib/unicore/extracted/DEastAsianWidth.txt
- * cde679c8461976ed40d7edf61ae98cbb947540831f06f5bc7da7decbf91a1420 lib/unicore/extracted/DGeneralCategory.txt
- * 9bb891831328713603a486a4a03df7f7987c3e1e8144a6d1ac71fd061ef3f732 lib/unicore/extracted/DJoinGroup.txt
- * e97c65bbea0a69d2fae6ec4182b09e519e13232e20bd804b3004edc0f36bb0d4 lib/unicore/extracted/DJoinType.txt
- * 43f6df50e4878f501b417e366b0ee097ae5ccb2d4ce942026bed3d62d78e7887 lib/unicore/extracted/DLineBreak.txt
- * a04502ebb36a45d83cbe48a7d8132ea8143edb7b3d34d0aa6afe4a9685049741 lib/unicore/extracted/DNumType.txt
- * 11075771b112e8e7ccf6ffa637c4c91eadc3ef3db0517b24e605df8fd3624239 lib/unicore/extracted/DNumValues.txt
- * 1e514199c3fa46f5df6148d272db7bddbfd5e89c9710e39773ef9d734f344a2f lib/unicore/mktables
- * c72bbdeda99714db1c8024d3311da4aef3c0db3b9b9f11455a7cfe10d5e9aba3 lib/unicore/version
+ * eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+ * 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+ * b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+ * 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+ * cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+ * 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+ * 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+ * d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+ * d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+ * 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+ * f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+ * 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+ * 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+ * 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+ * 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+ * ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+ * 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+ * 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+ * 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+ * 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+ * fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+ * e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+ * 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+ * e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+ * 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+ * cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+ * 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+ * 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+ * ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+ * 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+ * 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+ * f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+ * 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+ * 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+ * 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+ * f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+ * ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+ * db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+ * d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+ * fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+ * e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+ * c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+ * 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+ * 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+ * 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+ * f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+ * 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
  * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
- * 5f8520d3a17ade6317fc0c423f5091470924b1ef425bca0c41ce8e4a9f8460fe regen/mk_PL_charclass.pl
- * 1c73795f9150bd556573e7ae982789377289e22b6a7f3db0a05c36852e8d749f regen/mk_invlists.pl
+ * c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl
+ * cdbafee25193032242e77f2a6332b731d8392ce342fa616dbabc2c14c7b44eb6 regen/mk_invlists.pl
  * d6987e01ad538d1567394851cf199f99815f7701bebd6092be4bc7a6d8f147c6 regen/mph.pl
- * ex: set ro: */
+ * ex: set ro ft=c: */
Index: gnu/usr.bin/perl/unicode_constants.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/unicode_constants.h,v
diff -u -p -a -u -p -r1.6 unicode_constants.h
--- gnu/usr.bin/perl/unicode_constants.h	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/unicode_constants.h	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  * This file is built by regen/unicode_constants.pl from Unicode data.
  * Any changes made here will be lost!
@@ -45,7 +45,7 @@ bytes.
 =cut
 */
 
-#define UNICODE_MAJOR_VERSION   14
+#define UNICODE_MAJOR_VERSION   15
 #define UNICODE_DOT_VERSION     0
 #define UNICODE_DOT_DOT_VERSION 0
 
@@ -103,7 +103,7 @@ bytes.
 #      define DEPRECATED_OPENING_NON_UTF8_BRACKETS "\xAB\xBB"
 #   endif
 
-#   ifdef PERL_IN_REGCOMP_C
+#   ifdef PERL_IN_REGCOMP_ANY
 #     define MAX_PRINT_A  0x7E   /* The max code point that isPRINT_A */
 #   endif
 #endif	/* ASCII/Latin1 */
@@ -164,7 +164,7 @@ bytes.
 #      define DEPRECATED_OPENING_NON_UTF8_BRACKETS "\x8A\x8B"
 #   endif
 
-#   ifdef PERL_IN_REGCOMP_C
+#   ifdef PERL_IN_REGCOMP_ANY
 #     define MAX_PRINT_A  0xF9   /* The max code point that isPRINT_A */
 #   endif
 #endif	/* EBCDIC 1047 */
@@ -225,14 +225,14 @@ bytes.
 #      define DEPRECATED_OPENING_NON_UTF8_BRACKETS "\x8A\x8B"
 #   endif
 
-#   ifdef PERL_IN_REGCOMP_C
+#   ifdef PERL_IN_REGCOMP_ANY
 #     define MAX_PRINT_A  0xF9   /* The max code point that isPRINT_A */
 #   endif
 #endif	/* EBCDIC 037 */
 
 /* The number of code points not matching \pC */
-#ifdef PERL_IN_REGCOMP_C
-#  define NON_OTHER_COUNT  144534
+#ifdef PERL_IN_REGCOMP_ANY
+#  define NON_OTHER_COUNT  149016
 #endif
 
 /* The highest code point that has any type of case change */
@@ -242,4 +242,4 @@ bytes.
 
 #endif /* PERL_UNICODE_CONSTANTS_H_ */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/universal.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/universal.c,v
diff -u -p -a -u -p -r1.22 universal.c
--- gnu/usr.bin/perl/universal.c	15 Feb 2023 01:36:13 -0000	1.22
+++ gnu/usr.bin/perl/universal.c	21 Feb 2024 15:47:03 -0000
@@ -189,6 +189,27 @@ Perl_sv_derived_from_pvn(pTHX_ SV *sv, c
 }
 
 /*
+=for apidoc sv_derived_from_hv
+
+Exactly like L</sv_derived_from_pvn>, but takes the name string as the
+C<HvNAME> of the given HV (which would presumably represent a stash).
+
+=cut
+*/
+
+bool
+Perl_sv_derived_from_hv(pTHX_ SV *sv, HV *hv)
+{
+    PERL_ARGS_ASSERT_SV_DERIVED_FROM_HV;
+
+    const char *hvname = HvNAME(hv);
+    if(!hvname)
+        return FALSE;
+
+    return sv_derived_from_svpvn(sv, NULL, hvname, HvNAMELEN(hv), HvNAMEUTF8(hv) ? SVf_UTF8 : 0);
+}
+
+/*
 =for apidoc sv_isa_sv
 
 Returns a boolean indicating whether the SV is an object reference and is
@@ -572,11 +593,21 @@ XS(XS_utf8_upgrade)
         croak_xs_usage(cv, "sv");
     else {
         SV * const sv = ST(0);
-        STRLEN	RETVAL;
+        STRLEN	RETVAL = 0;
         dXSTARG;
 
-        RETVAL = sv_utf8_upgrade(sv);
-        XSprePUSH; PUSHi((IV)RETVAL);
+        XSprePUSH;
+        if (UNLIKELY(! sv)) {
+            XSRETURN_UNDEF;
+        }
+
+        SvGETMAGIC(sv);
+        if (UNLIKELY(! SvOK(sv))) {
+            XSRETURN_UNDEF;
+        }
+
+        RETVAL = sv_utf8_upgrade_nomg(sv);
+        PUSHi( (IV) RETVAL);
     }
     XSRETURN(1);
 }
@@ -732,7 +763,7 @@ XS(XS_PerlIO_get_layers)
     {
         SV *	sv;
         GV *	gv;
-        IO *	io;
+        IO *	io = NULL;
         bool	input = TRUE;
         bool	details = FALSE;
 
@@ -775,12 +806,16 @@ XS(XS_PerlIO_get_layers)
         }
 
         sv = POPs;
-        gv = MAYBE_DEREF_GV(sv);
 
-        if (!gv && !SvROK(sv))
-            gv = gv_fetchsv_nomg(sv, 0, SVt_PVIO);
+        /* MAYBE_DEREF_GV will call get magic */
+        if ((gv = MAYBE_DEREF_GV(sv)))
+            io = GvIO(gv);
+        else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVIO)
+            io = (IO*)SvRV(sv);
+        else if (!SvROK(sv) && (gv = gv_fetchsv_nomg(sv, 0, SVt_PVIO)))
+            io = GvIO(gv);
 
-        if (gv && (io = GvIO(gv))) {
+        if (io) {
              AV* const av = PerlIO_get_layers(aTHX_ input ?
                                         IoIFP(io) : IoOFP(io));
              SSize_t i;
Index: gnu/usr.bin/perl/unixish.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/unixish.h,v
diff -u -p -a -u -p -r1.17 unixish.h
--- gnu/usr.bin/perl/unixish.h	15 Feb 2023 01:36:13 -0000	1.17
+++ gnu/usr.bin/perl/unixish.h	21 Feb 2024 15:47:03 -0000
@@ -21,7 +21,7 @@
  *	This symbol, if defined, indicates that the ioctl() routine is
  *	available to set I/O characteristics
  */
-#define	HAS_IOCTL		/**/
+#define HAS_IOCTL               /**/
  
 /* HAS_UTIME:
  *	This symbol, if defined, indicates that the routine utime() is
@@ -136,28 +136,34 @@ int afstat(int fd, struct stat *statb);
 #define Mkdir(path,mode)   mkdir((path),(mode))
 
 #if defined(__amigaos4__)
-#  define PERL_SYS_INIT_BODY(c,v)					\
-        MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT; MALLOC_INIT; amigaos4_init_fork_array(); amigaos4_init_environ_sema();
-#  define PERL_SYS_TERM_BODY()                         \
-    HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM;      \
-    OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM;  \
-    MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM;    \
-    ENV_TERM;                                          \
-    amigaos4_dispose_fork_array();
+#  define PLATFORM_SYS_TERM_  amigaos4_dispose_fork_array()
+#  define PLATFORM_SYS_INIT_ STMT_START {                       \
+                                amigaos4_init_fork_array();     \
+                                amigaos4_init_environ_sema();   \
+                             } STMT_END
+#else 
+#  define PLATFORM_SYS_TERM_  NOOP
+#  define PLATFORM_SYS_INIT_  NOOP
 #endif
 
 #ifndef PERL_SYS_INIT_BODY
-#  define PERL_SYS_INIT_BODY(c,v)					\
-        MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT; MALLOC_INIT
+#define PERL_SYS_INIT_BODY(c,v)					\
+	MALLOC_CHECK_TAINT2(*c,*v) PERL_FPU_INIT; PERLIO_INIT;  \
+        MALLOC_INIT; PLATFORM_SYS_INIT_;
 #endif
 
+/* Generally add things last-in first-terminated.  IO and memory terminations
+ * need to be generally last
+ *
+ * BEWARE that using PerlIO in these will be using freed memory, so may appear
+ * to work, but must NOT be retained in production code. */
 #ifndef PERL_SYS_TERM_BODY
-#  define PERL_SYS_TERM_BODY()                         \
-    HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM;      \
-    OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM; PERLIO_TERM;  \
-    MALLOC_TERM; LOCALE_TERM; USER_PROP_MUTEX_TERM;    \
-    ENV_TERM;
-
+#  define PERL_SYS_TERM_BODY()                                          \
+                    ENV_TERM; USER_PROP_MUTEX_TERM; LOCALE_TERM;        \
+                    HINTS_REFCNT_TERM; KEYWORD_PLUGIN_MUTEX_TERM;       \
+                    OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM;                \
+                    PERLIO_TERM; MALLOC_TERM;                           \
+                    PLATFORM_SYS_TERM_;
 #endif
 
 #define BIT_BUCKET "/dev/null"
Index: gnu/usr.bin/perl/utf8.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/utf8.c,v
diff -u -p -a -u -p -r1.6 utf8.c
--- gnu/usr.bin/perl/utf8.c	15 Feb 2023 01:36:13 -0000	1.6
+++ gnu/usr.bin/perl/utf8.c	21 Feb 2024 15:47:03 -0000
@@ -37,11 +37,6 @@ static const char malformed_text[] = "Ma
 static const char unees[] =
                         "Malformed UTF-8 character (unexpected end of string)";
 
-/* strlen() of a literal string constant.  We might want this more general,
- * but using it in just this file for now.  A problem with more generality is
- * the compiler warnings about comparing unlike signs */
-#define STRLENs(s)  (sizeof("" s "") - 1)
-
 /*
 These are various utility functions for manipulating UTF8-encoded
 strings.  For the uninitiated, this is a method of representing arbitrary
@@ -50,17 +45,6 @@ characters in the ASCII range are unmodi
 within non-zero characters.
 */
 
-/* helper for Perl__force_out_malformed_utf8_message(). Like
- * SAVECOMPILEWARNINGS(), but works with PL_curcop rather than
- * PL_compiling */
-
-static void
-S_restore_cop_warnings(pTHX_ void *p)
-{
-    free_and_set_cop_warnings(PL_curcop, (STRLEN*) p);
-}
-
-
 void
 Perl__force_out_malformed_utf8_message(pTHX_
             const U8 *const p,      /* First byte in UTF-8 sequence */
@@ -92,10 +76,7 @@ Perl__force_out_malformed_utf8_message(p
 
     PL_dowarn = G_WARN_ALL_ON|G_WARN_ON;
     if (PL_curcop) {
-        /* this is like SAVECOMPILEWARNINGS() except with PL_curcop rather
-         * than PL_compiling */
-        SAVEDESTRUCTOR_X(S_restore_cop_warnings,
-                (void*)PL_curcop->cop_warnings);
+        SAVECURCOPWARNINGS();
         PL_curcop->cop_warnings = pWARN_ALL;
     }
 
@@ -700,7 +681,7 @@ S_does_utf8_overflow(const U8 * const s,
         return 1;
     }
 
-    /* Here, it could be the overlong malformation, and might not actuallly
+    /* Here, it could be the overlong malformation, and might not actually
      * overflow if you were to calculate it out.
      *
      * See if it actually is overlong */
@@ -1530,7 +1511,7 @@ Perl__utf8n_to_uvchr_msgs_helper(const U
 
     /* A well-formed UTF-8 character, as the vast majority of calls to this
      * function will be for, has this expected length.  For efficiency, set
-     * things up here to return it.  It will be overriden only in those rare
+     * things up here to return it.  It will be overridden only in those rare
      * cases where a malformation is found */
     if (retlen) {
         *retlen = expectlen;
@@ -1729,10 +1710,10 @@ Perl__utf8n_to_uvchr_msgs_helper(const U
      * uv                   contains the code point the input sequence
      *                      represents; or if there is a problem that prevents
      *                      a well-defined value from being computed, it is
-     *                      some subsitute value, typically the REPLACEMENT
+     *                      some substitute value, typically the REPLACEMENT
      *                      CHARACTER.
      * s0                   points to the first byte of the character
-     * s                    points to just after were we left off processing
+     * s                    points to just after where we left off processing
      *                      the character
      * send                 points to just after where that character should
      *                      end, based on how many bytes the start byte tells
@@ -2122,7 +2103,7 @@ Perl__utf8n_to_uvchr_msgs_helper(const U
 
         /* Since there was a possible problem, the returned length may need to
          * be changed from the one stored at the beginning of this function.
-         * Instead of trying to figure out if that's needed, just do it. */
+         * Instead of trying to figure out if it has changed, just do it. */
         if (retlen) {
             *retlen = curlen;
         }
@@ -2169,43 +2150,6 @@ Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s
     return utf8_to_uvchr_buf_helper(s, send, retlen);
 }
 
-/* This is marked as deprecated
- *
-=for apidoc utf8_to_uvuni_buf
-
-Only in very rare circumstances should code need to be dealing in Unicode
-(as opposed to native) code points.  In those few cases, use
-C<L<NATIVE_TO_UNI(utf8_to_uvchr_buf(...))|perlapi/utf8_to_uvchr_buf>> instead.
-If you are not absolutely sure this is one of those cases, then assume it isn't
-and use plain C<utf8_to_uvchr_buf> instead.
-
-Returns the Unicode (not-native) code point of the first character in the
-string C<s> which
-is assumed to be in UTF-8 encoding; C<send> points to 1 beyond the end of C<s>.
-C<retlen> will be set to the length, in bytes, of that character.
-
-If C<s> does not point to a well-formed UTF-8 character and UTF8 warnings are
-enabled, zero is returned and C<*retlen> is set (if C<retlen> isn't
-NULL) to -1.  If those warnings are off, the computed value if well-defined (or
-the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen>
-is set (if C<retlen> isn't NULL) so that (S<C<s> + C<*retlen>>) is the
-next possible position in C<s> that could begin a non-malformed character.
-See L<perlapi/utf8n_to_uvchr> for details on when the REPLACEMENT CHARACTER is
-returned.
-
-=cut
-*/
-
-UV
-Perl_utf8_to_uvuni_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
-{
-    PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF;
-
-    assert(send > s);
-
-    return NATIVE_TO_UNI(utf8_to_uvchr_buf(s, send, retlen));
-}
-
 /*
 =for apidoc utf8_length
 
@@ -2217,44 +2161,154 @@ If C<e E<lt> s> or if the scan would end
 and returns the number of valid characters.
 
 =cut
+
+    For long strings we process the input word-at-a-time, and count
+    continuations, instead of otherwise counting characters and using UTF8SKIP
+    to find the next one.  If our input were 13-byte characters, the per-word
+    would be a loser, as we would be doing things in 8 byte chunks (or 4 on a
+    32-bit platform).  But the maximum legal Unicode code point is 4 bytes, and
+    most text will have a significant number of 1 and 2 byte characters, so the
+    per-word is generally a winner.
+
+    There are start-up and finish costs with the per-word method, so we use the
+    standard method unless the input has a relatively large length.
 */
 
 STRLEN
-Perl_utf8_length(pTHX_ const U8 *s, const U8 *e)
+Perl_utf8_length(pTHX_ const U8 * const s0, const U8 * const e)
 {
+    STRLEN continuations = 0;
     STRLEN len = 0;
+    const U8 * s = s0;
 
     PERL_ARGS_ASSERT_UTF8_LENGTH;
 
-    /* Note: cannot use UTF8_IS_...() too eagerly here since e.g.
-     * the bitops (especially ~) can create illegal UTF-8.
-     * In other words: in Perl UTF-8 is not just for Unicode. */
+    /* For EBCDCIC and short strings, we count the characters.  The boundary
+     * was determined by eyeballing the output of Porting/bench.pl and
+     * choosing a number where the continuations method gave better results (on
+     * a 64 bit system, khw not having access to a 32 bit system with
+     * cachegrind).  The number isn't critical, as at these sizes, the total
+     * time spent isn't large either way */
 
-    while (s < e) {
-        Ptrdiff_t expected_byte_count = UTF8SKIP(s);
+#ifndef EBCDIC
+
+    if (e - s0 < 96)
+
+#endif
+
+    {
+        while (s < e) { /* Count characters directly */
 
-        if (UNLIKELY(e - s  < expected_byte_count)) {
-            goto warn_and_return;
+            /* Take extra care to not exceed 'e' (which would be undefined
+             * behavior) should the input be malformed, with a partial
+             * character at the end */
+            Ptrdiff_t expected_byte_count = UTF8SKIP(s);
+            if (UNLIKELY(e - s  < expected_byte_count)) {
+                goto warn_and_return;
+            }
+
+            len++;
+            s += expected_byte_count;
+        }
+
+        if (LIKELY(e == s)) {
+            return len;
         }
 
-        len++;
-        s += expected_byte_count;
+      warn_and_return:
+        if (ckWARN_d(WARN_UTF8)) {
+            if (PL_op)
+                Perl_warner(aTHX_ packWARN(WARN_UTF8),
+                             "%s in %s", unees, OP_DESC(PL_op));
+            else
+                Perl_warner(aTHX_ packWARN(WARN_UTF8), "%s", unees);
+        }
+
+        return s - s0;
     }
 
-    if (LIKELY(e == s)) {
-        return len;
+#ifndef EBCDIC
+
+    /* Count continuations, word-at-a-time.
+     *
+     * We need to stop before the final start character in order to
+     * preserve the limited error checking that's always been done */
+    const U8 * e_limit = e - UTF8_MAXBYTES;
+
+    /* Points to the first byte >=s which is positioned at a word boundary.  If
+     * s is on a word boundary, it is s, otherwise it is to the next word. */
+    const U8 * partial_word_end = s + PERL_WORDSIZE * PERL_IS_SUBWORD_ADDR(s)
+                                    - (PTR2nat(s) & PERL_WORD_BOUNDARY_MASK);
+
+    /* Process up to a full word boundary. */
+    while (s < partial_word_end) {
+        const Size_t skip = UTF8SKIP(s);
+
+        continuations += skip - 1;
+        s += skip;
+    }
+
+    /* Adjust back down any overshoot */
+    continuations -= s - partial_word_end;
+    s = partial_word_end;
+
+    do { /* Process per-word */
+
+        /* The idea for counting continuation bytes came from
+         * http://www.daemonology.net/blog/2008-06-05-faster-utf8-strlen.html
+         * One thing it does that this doesn't is to prefetch the buffer
+         *      __builtin_prefetch(&s[256], 0, 0);
+         *
+         * A continuation byte has the upper 2 bits be '10', and the rest
+         * dont-cares.  The VARIANTS mask zeroes out all but the upper bit of
+         * each byte in the word.  That gets shifted to the byte's lowest bit,
+         * and 'anded' with the complement of the 2nd highest bit of the byte,
+         * which has also been shifted to that position.  Hence the bit in that
+         * position will be 1 iff the upper bit is 1 and the next one is 0.  We
+         * then use the same integer multiplcation and shifting that are used
+         * in variant_under_utf8_count() to count how many of those are set in
+         * the word. */
+
+        continuations += (((((* (const PERL_UINTMAX_T *) s)
+                                            & PERL_VARIANTS_WORD_MASK) >> 7)
+                      & (((~ (* (const PERL_UINTMAX_T *) s))) >> 6))
+                  * PERL_COUNT_MULTIPLIER)
+                >> ((PERL_WORDSIZE - 1) * CHARBITS);
+        s += PERL_WORDSIZE;
+    } while (s + PERL_WORDSIZE <= e_limit);
+
+    /* Process remainder per-byte */
+    while (s < e) {
+	if (UTF8_IS_CONTINUATION(*s)) {
+            continuations++;
+            s++;
+            continue;
+        }
+
+        /* Here is a starter byte.  Use UTF8SKIP from now on */
+        do {
+            Ptrdiff_t expected_byte_count = UTF8SKIP(s);
+            if (UNLIKELY(e - s  < expected_byte_count)) {
+                break;
+            }
+
+            continuations += expected_byte_count- 1;
+            s += expected_byte_count;
+        } while (s < e);
+
+        break;
     }
 
-    /* Here, s > e on entry */
+#  endif
+
+    if (LIKELY(e == s)) {
+        return s - s0 - continuations;
+    }
 
-  warn_and_return:
-    if (PL_op)
-        Perl_ck_warner_d(aTHX_ packWARN(WARN_UTF8),
-                         "%s in %s", unees, OP_DESC(PL_op));
-    else
-        Perl_ck_warner_d(aTHX_ packWARN(WARN_UTF8), "%s", unees);
+    /* Convert to characters */
+    s -= continuations;
 
-    return len;
+    goto warn_and_return;
 }
 
 /*
@@ -2353,41 +2407,207 @@ Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *
         return s;
     }
 
-    {
-        U8 * const save = s;
-        U8 * const send = s + *lenp;
-        U8 * d;
-
-        /* Nothing before the first variant needs to be changed, so start the real
-         * work there */
-        s = first_variant;
-        while (s < send) {
+    /* Nothing before 'first_variant' needs to be changed, so start the real
+     * work there */
+
+    U8 * const save = s;
+    U8 * const send = s + *lenp;
+    U8 * d;
+
+#ifndef EBCDIC      /* The below relies on the bit patterns of UTF-8 */
+
+    /* There is some start-up/tear-down overhead with this, so no real gain
+     * unless the string is long enough.  The current value is just a
+     * guess. */
+    if (*lenp > 5 * PERL_WORDSIZE) {
+
+        /* First, go through the string a word at-a-time to verify that it is
+         * downgradable.  If it contains any start byte besides C2 and C3, then
+         * it isn't. */
+
+        const PERL_UINTMAX_T C0_mask = PERL_COUNT_MULTIPLIER * 0xC0;
+        const PERL_UINTMAX_T C2_mask = PERL_COUNT_MULTIPLIER * 0xC2;
+        const PERL_UINTMAX_T FE_mask = PERL_COUNT_MULTIPLIER * 0xFE;
+
+        /* Points to the first byte >=s which is positioned at a word boundary.
+         * If s is on a word boundary, it is s, otherwise it is the first byte
+         * of the next word. */
+        U8 * partial_word_end = s + PERL_WORDSIZE * PERL_IS_SUBWORD_ADDR(s)
+                                - (PTR2nat(s) & PERL_WORD_BOUNDARY_MASK);
+
+        /* Here there is at least a full word beyond the first word boundary.
+         * Process up to that boundary. */
+        while (s < partial_word_end) {
             if (! UTF8_IS_INVARIANT(*s)) {
                 if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(s, send)) {
                     *lenp = ((STRLEN) -1);
-                    return 0;
+                    return NULL;
                 }
                 s++;
             }
             s++;
         }
 
-        /* Is downgradable, so do it */
-        d = s = first_variant;
-        while (s < send) {
-            U8 c = *s++;
-            if (! UVCHR_IS_INVARIANT(c)) {
-                /* Then it is two-byte encoded */
-                c = EIGHT_BIT_UTF8_TO_NATIVE(c, *s);
-                s++;
+        /* Adjust back down any overshoot */
+        s = partial_word_end;
+
+        /* Process per-word */
+        do {
+
+            PERL_UINTMAX_T C2_C3_start_bytes;
+
+            /* First find the bytes that are start bytes.  ANDing with
+             * C0C0...C0 causes any start byte to become C0; any other byte
+             * becomes something else.  Then XORing with C0 causes any start
+             * byte to become 0; all other bytes non-zero. */
+            PERL_UINTMAX_T start_bytes
+                          = ((* (PERL_UINTMAX_T *) s) & C0_mask) ^ C0_mask;
+
+            /* These shifts causes the most significant bit to be set to 1 for
+             * any bytes in the word that aren't completely 0.  Hence after
+             * these, only the start bytes have 0 in their msb */
+            start_bytes |= start_bytes << 1;
+            start_bytes |= start_bytes << 2;
+            start_bytes |= start_bytes << 4;
+
+            /* When we complement, then AND with 8080...80, the start bytes
+             * will have 1 in their msb, and all other bits are 0 */
+            start_bytes = ~ start_bytes & PERL_VARIANTS_WORD_MASK;
+
+            /* Now repeat the procedure, but look for bytes that match only
+             * C2-C3. */
+            C2_C3_start_bytes = ((* (PERL_UINTMAX_T *) s) & FE_mask)
+                                                                ^ C2_mask;
+            C2_C3_start_bytes |= C2_C3_start_bytes << 1;
+            C2_C3_start_bytes |= C2_C3_start_bytes << 2;
+            C2_C3_start_bytes |= C2_C3_start_bytes << 4;
+            C2_C3_start_bytes = ~ C2_C3_start_bytes
+                                & PERL_VARIANTS_WORD_MASK;
+
+            /* Here, start_bytes has a 1 in the msb of each byte that has a
+             *                                              start_byte; And
+             * C2_C3_start_bytes has a 1 in the msb of each byte that has a
+             *                                       start_byte of C2 or C3
+             * If they're not equal, there are start bytes that aren't C2
+             * nor C3, hence this is not downgradable */
+            if (start_bytes != C2_C3_start_bytes) {
+                *lenp = ((STRLEN) -1);
+                return NULL;
             }
-            *d++ = c;
+
+            s += PERL_WORDSIZE;
+        } while (s + PERL_WORDSIZE <= send);
+
+        /* If the final byte was a start byte, it means that the character
+         * straddles two words, so back off one to start looking below at the
+         * first byte of the character  */
+        if (s > first_variant && UTF8_IS_START(*(s-1))) {
+            s--;
         }
-        *d = '\0';
-        *lenp = d - save;
+    }
 
-        return save;
+#endif
+
+    /* Do the straggler bytes beyond the final word boundary (or all bytes
+     * in the case of EBCDIC) */
+    while (s < send) {
+        if (! UTF8_IS_INVARIANT(*s)) {
+            if (! UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(s, send)) {
+                *lenp = ((STRLEN) -1);
+                return NULL;
+            }
+            s++;
+        }
+        s++;
+    }
+
+    /* Here, we passed the tests above.  For the EBCDIC case, everything
+     * was well-formed and can be downgraded to non-UTF8.  For non-EBCDIC,
+     * it means only that all start bytes were C2 or C3, hence any
+     * well-formed sequences are downgradable.  But we didn't test, for
+     * example, that there weren't two C2's in a row.  That means that in
+     * the loop below, we have to be sure things are well-formed.  Because
+     * this is very very likely, and we don't care about having speedy
+     * handling of malformed input, the loop proceeds as if well formed,
+     * and should a malformed one come along, it undoes what it already has
+     * done */
+
+    d = s = first_variant;
+
+    while (s < send) {
+        U8 * s1;
+
+        if (UVCHR_IS_INVARIANT(*s)) {
+            *d++ = *s++;
+            continue;
+        }
+
+        /* Here it is two-byte encoded. */
+        if (   LIKELY(UTF8_IS_DOWNGRADEABLE_START(*s))
+            && LIKELY(UTF8_IS_CONTINUATION((s[1]))))
+        {
+            U8 first_byte = *s++;
+            *d++ = EIGHT_BIT_UTF8_TO_NATIVE(first_byte, *s);
+            s++;
+            continue;
+        }
+
+        /* Here, it is malformed.  This shouldn't happen on EBCDIC, and on
+         * ASCII platforms, we know that the only start bytes in the text
+         * are C2 and C3, and the code above has made sure that it doesn't
+         * end with a start byte.  That means the only malformations that
+         * are possible are a start byte without a continuation (either
+         * followed by another start byte or an invariant) or an unexpected
+         * continuation.
+         *
+         * We have to undo all we've done before, back down to the first
+         * UTF-8 variant.  Note that each 2-byte variant we've done so far
+         * (converted to single byte) slides things to the left one byte,
+         * and so we have bytes that haven't been written over.
+         *
+         * Here, 'd' points to the next position to overwrite, and 's'
+         * points to the first invalid byte.  That means 'd's contents
+         * haven't been changed yet, nor has anything else beyond it in the
+         * string.  In restoring to the original contents, we don't need to
+         * do anything past (d-1).
+         *
+         * In particular, the bytes from 'd' to 's' have not been changed.
+         * This loop uses a new variable 's1' (to avoid confusing 'source'
+         * and 'destination') set to 'd',  and moves 's' and 's1' in lock
+         * step back so that afterwards, 's1' points to the first changed
+         * byte that will be the source for the first byte (or bytes) at
+         * 's' that need to be changed back.  Note that s1 can expand to
+         * two bytes */
+        s1 = d;
+        while (s >= d) {
+            s--;
+            if (! UVCHR_IS_INVARIANT(*s1)) {
+                s--;
+            }
+            s1--;
+        }
+
+        /* Do the changing back */
+        while (s1 >= first_variant) {
+            if (UVCHR_IS_INVARIANT(*s1)) {
+                *s-- = *s1--;
+            }
+            else {
+                *s-- = UTF8_EIGHT_BIT_LO(*s1);
+                *s-- = UTF8_EIGHT_BIT_HI(*s1);
+                s1--;
+            }
+        }
+
+        *lenp = ((STRLEN) -1);
+        return NULL;
     }
+
+    /* Success! */
+    *d = '\0';
+    *lenp = d - save;
+
+    return save;
 }
 
 /*
@@ -3042,8 +3262,8 @@ Perl__to_uni_fold_flags(pTHX_ UV c, U8* 
     if (flags & FOLD_FLAGS_LOCALE) {
         /* Treat a non-Turkic UTF-8 locale as not being in locale at all,
          * except for potentially warning */
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;
-        if (IN_UTF8_CTYPE_LOCALE && ! PL_in_utf8_turkic_locale) {
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;
+        if (IN_UTF8_CTYPE_LOCALE && ! IN_UTF8_TURKIC_LOCALE) {
             flags &= ~FOLD_FLAGS_LOCALE;
         }
         else {
@@ -3096,7 +3316,8 @@ S_is_utf8_common(pTHX_ const U8 *const p
 PERLVAR(I, seen_deprecated_macro, HV *)
 
 STATIC void
-S_warn_on_first_deprecated_use(pTHX_ const char * const name,
+S_warn_on_first_deprecated_use(pTHX_ U32 category,
+                                     const char * const name,
                                      const char * const alternative,
                                      const bool use_locale,
                                      const char * const file,
@@ -3106,7 +3327,7 @@ S_warn_on_first_deprecated_use(pTHX_ con
 
     PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE;
 
-    if (ckWARN_d(WARN_DEPRECATED)) {
+    if (ckWARN_d(category)) {
 
         key = Perl_form(aTHX_ "%s;%d;%s;%d", name, use_locale, file, line);
         if (! hv_fetch(PL_seen_deprecated_macro, key, strlen(key), 0)) {
@@ -3120,14 +3341,14 @@ S_warn_on_first_deprecated_use(pTHX_ con
             }
 
             if (instr(file, "mathoms.c")) {
-                Perl_warner(aTHX_ WARN_DEPRECATED,
+                Perl_warner(aTHX_ category,
                             "In %s, line %d, starting in Perl v5.32, %s()"
                             " will be removed.  Avoid this message by"
                             " converting to use %s().\n",
                             file, line, name, alternative);
             }
             else {
-                Perl_warner(aTHX_ WARN_DEPRECATED,
+                Perl_warner(aTHX_ category,
                             "In %s, line %d, starting in Perl v5.32, %s() will"
                             " require an additional parameter.  Avoid this"
                             " message by converting to use %s().\n",
@@ -3594,9 +3815,9 @@ S_turkic_uc(pTHX_ const U8 * const p, co
                                L1_func_extra_param, turkic)                  \
                                                                              \
     if (flags & (locale_flags)) {                                            \
-        _CHECK_AND_WARN_PROBLEMATIC_LOCALE;                                  \
+        CHECK_AND_WARN_PROBLEMATIC_LOCALE_;                                  \
         if (IN_UTF8_CTYPE_LOCALE) {                                          \
-            if (UNLIKELY(PL_in_utf8_turkic_locale)) {                        \
+            if (UNLIKELY(IN_UTF8_TURKIC_LOCALE)) {                           \
                 UV ret = turkic(p, e, ustrp, lenp);                          \
                 if (ret) return ret;                                         \
             }                                                                \
@@ -4175,7 +4396,7 @@ Perl_foldEQ_utf8_flags(pTHX_ const char 
 
     if (flags & FOLDEQ_LOCALE) {
         if (IN_UTF8_CTYPE_LOCALE) {
-            if (UNLIKELY(PL_in_utf8_turkic_locale)) {
+            if (UNLIKELY(IN_UTF8_TURKIC_LOCALE)) {
                 flags_for_folder |= FOLD_FLAGS_LOCALE;
             }
             else {
Index: gnu/usr.bin/perl/utf8.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/utf8.h,v
diff -u -p -a -u -p -r1.9 utf8.h
--- gnu/usr.bin/perl/utf8.h	15 Feb 2023 01:38:21 -0000	1.9
+++ gnu/usr.bin/perl/utf8.h	21 Feb 2024 15:47:03 -0000
@@ -32,6 +32,83 @@
 #ifndef PERL_UTF8_H_      /* Guard against recursive inclusion */
 #define PERL_UTF8_H_ 1
 
+/*
+=for apidoc Ay||utf8ness_t
+
+This typedef is used by several core functions that return PV strings, to
+indicate the UTF-8ness of those strings.
+
+(If you write a new function, you probably should instead return the PV in an
+SV with the UTF-8 flag of the SV properly set, rather than use this mechanism.)
+
+The possible values this can be are:
+
+=over
+
+=item C<UTF8NESS_YES>
+
+This means the string definitely should be treated as a sequence of
+UTF-8-encoded characters.
+
+Most code that needs to handle this typedef should be of the form:
+
+ if (utf8ness_flag == UTF8NESS_YES) {
+     treat as utf8;  // like turning on an SV UTF-8 flag
+ }
+
+=item C<UTF8NESS_NO>
+
+This means the string definitely should be treated as a sequence of bytes, not
+encoded as UTF-8.
+
+=item C<UTF8NESS_IMMATERIAL>
+
+This means it is equally valid to treat the string as bytes, or as UTF-8
+characters; use whichever way you want.  This happens when the string consists
+entirely of characters which have the same representation whether encoded in
+UTF-8 or not.
+
+=item C<UTF8NESS_UNKNOWN>
+
+This means it is unknown how the string should be treated.  No core function
+will ever return this value to a non-core caller.  Instead, it is used by the
+caller to initialize a variable to a non-legal value.  A typical call will look like:
+
+ utf8ness_t string_is_utf8 = UTF8NESS_UNKNOWN
+ const char * string = foo(arg1, arg2, ..., &string_is_utf8);
+ if (string_is_utf8 == UTF8NESS_YES) {
+    do something for UTF-8;
+ }
+
+=back
+
+The following relationships hold between the enum values:
+
+=over
+
+=item S<C<0 E<lt>= I<enum value> E<lt>= UTF8NESS_IMMATERIAL>>
+
+the string may be treated in code as non-UTF8
+
+=item S<C<UTF8NESS_IMMATERIAL E<lt>= <I<enum value>>>
+
+the string may be treated in code as encoded in UTF-8
+
+=back
+
+=cut
+*/
+
+typedef enum {
+    UTF8NESS_NO               =  0,  /* Definitely not UTF-8 */
+    UTF8NESS_IMMATERIAL       =  1,  /* Representation is the same in UTF-8 as
+                                        not, so the UTF8ness doesn't actually
+                                        matter */
+    UTF8NESS_YES              =  2,  /* Defintely is UTF-8, wideness
+                                        unspecified */
+    UTF8NESS_UNKNOWN          = -1,  /* Undetermined so far */
+} utf8ness_t;
+
 /* Use UTF-8 as the default script encoding?
  * Turning this on will break scripts having non-UTF-8 binary
  * data (such as Latin-1) in string literals. */
@@ -664,7 +741,7 @@ uppercase/lowercase/titlecase/fold into.
 #define TWO_BYTE_UTF8_TO_NATIVE(HI, LO) \
     (__ASSERT_(FITS_IN_8_BITS(HI))                                              \
      __ASSERT_(FITS_IN_8_BITS(LO))                                              \
-     __ASSERT_(PL_utf8skip[HI] == 2)                                            \
+     __ASSERT_(PL_utf8skip[(U8) HI] == 2)                                            \
      __ASSERT_(UTF8_IS_CONTINUATION(LO))                                        \
      UNI_TO_NATIVE(UTF8_ACCUMULATE((NATIVE_UTF8_TO_I8(HI) & UTF_START_MASK(2)), \
                                    (LO))))
@@ -866,8 +943,8 @@ case any call to string overloading upda
 
 /* Should all strings be treated as Unicode, and not just UTF-8 encoded ones?
  * Is so within 'feature unicode_strings' or 'locale :not_characters', and not
- * within 'use bytes'.  UTF-8 locales are not tested for here, but perhaps
- * could be */
+ * within 'use bytes'.  UTF-8 locales are not tested for here, because it gets
+ * complicated by the probability of having categories in different locales. */
 #define IN_UNI_8_BIT                                                    \
             ((    (      (CopHINTS_get(PL_curcop) & HINT_UNI_8_BIT))    \
                    || (   CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL \
Index: gnu/usr.bin/perl/utfebcdic.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/utfebcdic.h,v
diff -u -p -a -u -p -r1.5 utfebcdic.h
--- gnu/usr.bin/perl/utfebcdic.h	15 Feb 2023 01:36:14 -0000	1.5
+++ gnu/usr.bin/perl/utfebcdic.h	21 Feb 2024 15:47:03 -0000
@@ -12,7 +12,7 @@
  *
  * To summarize, the way it works is:
  * To convert an EBCDIC code point to UTF-EBCDIC:
- *  1)	convert to Unicode.  No conversion is necesary for code points above
+ *  1)	convert to Unicode.  No conversion is necessary for code points above
  *      255, as Unicode and EBCDIC are identical in this range.  For smaller
  *      code points, the conversion is done by lookup in the PL_e2a table (with
  *      inverse PL_a2e) in the generated file 'ebcdic_tables.h'.  The 'a'
@@ -73,7 +73,7 @@
  * macro NATIVE_TO_I8().  However, one "shadow", or parallel table,
  * PL_utf8skip, has been constructed that doesn't require undoing things.  It
  * is such that for each byte, it says how long the sequence is if that
-* (UTF-EBCDIC) byte were to begin it
+ * (UTF-EBCDIC) byte were to begin it.
  *
  * There are actually 3 slightly different UTF-EBCDIC encodings in
  * ebcdic_tables.h, one for each of the code pages recognized by Perl.  That
Index: gnu/usr.bin/perl/util.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/util.c,v
diff -u -p -a -u -p -r1.42 util.c
--- gnu/usr.bin/perl/util.c	8 Jul 2023 14:18:36 -0000	1.42
+++ gnu/usr.bin/perl/util.c	21 Feb 2024 15:47:03 -0000
@@ -242,6 +242,7 @@ Perl_safesysrealloc(Malloc_t where,MEM_S
     }
     else {
         dSAVE_ERRNO;
+        PERL_DEB(UV was_where = PTR2UV(where)); /* used in diags below */
 #ifdef USE_MDH
         where = (Malloc_t)((char*)where-PERL_MEMORY_DEBUG_HEADER_SIZE);
         if (size + PERL_MEMORY_DEBUG_HEADER_SIZE < size)
@@ -326,7 +327,7 @@ Perl_safesysrealloc(Malloc_t where,MEM_S
     /* In particular, must do that fixup above before logging anything via
      *printf(), as it can reallocate memory, which can cause SEGVs.  */
 
-        DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%" UVxf ": (%05ld) rfree\n",PTR2UV(where),(long)PL_an++));
+        DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%" UVxf ": (%05ld) rfree\n",was_where,(long)PL_an++));
         DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%" UVxf ": (%05ld) realloc %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)size));
 
         if (ptr == NULL) {
@@ -557,7 +558,7 @@ Free_t   Perl_mfree (Malloc_t where)
 /* This is the value stored in *retlen in the two delimcpy routines below when
  * there wasn't enough room in the destination to store everything it was asked
  * to.  The value is deliberately very large so that hopefully if code uses it
- * unquestioninly to access memory, it will likely segfault.  And it is small
+ * unquestioningly to access memory, it will likely segfault.  And it is small
  * enough that if the caller does some arithmetic on it before accessing, it
  * won't overflow into a small legal number. */
 #define DELIMCPY_OUT_OF_BOUNDS_RET  I32_MAX
@@ -1319,77 +1320,6 @@ Perl_cntrl_to_mnemonic(const U8 c)
     return NULL;
 }
 
-/* copy a string to a safe spot */
-
-/*
-=for apidoc_section $string
-=for apidoc savepv
-
-Perl's version of C<strdup()>.  Returns a pointer to a newly allocated
-string which is a duplicate of C<pv>.  The size of the string is
-determined by C<strlen()>, which means it may not contain embedded C<NUL>
-characters and must have a trailing C<NUL>.  To prevent memory leaks, the
-memory allocated for the new string needs to be freed when no longer needed.
-This can be done with the C<L</Safefree>> function, or
-L<C<SAVEFREEPV>|perlguts/SAVEFREEPV(p)>.
-
-On some platforms, Windows for example, all allocated memory owned by a thread
-is deallocated when that thread ends.  So if you need that not to happen, you
-need to use the shared memory functions, such as C<L</savesharedpv>>.
-
-=cut
-*/
-
-char *
-Perl_savepv(pTHX_ const char *pv)
-{
-    PERL_UNUSED_CONTEXT;
-    if (!pv)
-        return NULL;
-    else {
-        char *newaddr;
-        const STRLEN pvlen = strlen(pv)+1;
-        Newx(newaddr, pvlen, char);
-        return (char*)memcpy(newaddr, pv, pvlen);
-    }
-}
-
-/* same thing but with a known length */
-
-/*
-=for apidoc savepvn
-
-Perl's version of what C<strndup()> would be if it existed.  Returns a
-pointer to a newly allocated string which is a duplicate of the first
-C<len> bytes from C<pv>, plus a trailing
-C<NUL> byte.  The memory allocated for
-the new string can be freed with the C<Safefree()> function.
-
-On some platforms, Windows for example, all allocated memory owned by a thread
-is deallocated when that thread ends.  So if you need that not to happen, you
-need to use the shared memory functions, such as C<L</savesharedpvn>>.
-
-=cut
-*/
-
-char *
-Perl_savepvn(pTHX_ const char *pv, Size_t len)
-{
-    char *newaddr;
-    PERL_UNUSED_CONTEXT;
-
-    Newx(newaddr,len+1,char);
-    /* Give a meaning to NULL pointer mainly for the use in sv_magic() */
-    if (pv) {
-        /* might not be null terminated */
-        newaddr[len] = '\0';
-        return (char *) CopyD(pv,newaddr,len,char);
-    }
-    else {
-        return (char *) ZeroD(newaddr,len+1,char);
-    }
-}
-
 /*
 =for apidoc savesharedpv
 
@@ -1441,53 +1371,6 @@ Perl_savesharedpvn(pTHX_ const char *con
     return (char*)memcpy(newaddr, pv, len);
 }
 
-/*
-=for apidoc savesvpv
-
-A version of C<savepv()>/C<savepvn()> which gets the string to duplicate from
-the passed in SV using C<SvPV()>
-
-On some platforms, Windows for example, all allocated memory owned by a thread
-is deallocated when that thread ends.  So if you need that not to happen, you
-need to use the shared memory functions, such as C<L</savesharedsvpv>>.
-
-=cut
-*/
-
-char *
-Perl_savesvpv(pTHX_ SV *sv)
-{
-    STRLEN len;
-    const char * const pv = SvPV_const(sv, len);
-    char *newaddr;
-
-    PERL_ARGS_ASSERT_SAVESVPV;
-
-    ++len;
-    Newx(newaddr,len,char);
-    return (char *) CopyD(pv,newaddr,len,char);
-}
-
-/*
-=for apidoc savesharedsvpv
-
-A version of C<savesharedpv()> which allocates the duplicate string in
-memory which is shared between threads.
-
-=cut
-*/
-
-char *
-Perl_savesharedsvpv(pTHX_ SV *sv)
-{
-    STRLEN len;
-    const char * const pv = SvPV_const(sv, len);
-
-    PERL_ARGS_ASSERT_SAVESHAREDSVPV;
-
-    return savesharedpvn(pv, len);
-}
-
 /* the SV for Perl_form() and mess() is not kept in an arena */
 
 STATIC SV *
@@ -1742,8 +1625,8 @@ Perl_mess_sv(pTHX_ SV *basemsg, bool con
                 cop = PL_curcop;
 
             if (CopLINE(cop))
-                Perl_sv_catpvf(aTHX_ sv, " at %s line %" IVdf,
-                                OutCopFILE(cop), (IV)CopLINE(cop));
+                Perl_sv_catpvf(aTHX_ sv, " at %s line %" LINE_Tf,
+                                OutCopFILE(cop), CopLINE(cop));
         }
 
         /* Seems that GvIO() can be untrustworthy during global destruction. */
@@ -1756,7 +1639,7 @@ Perl_mess_sv(pTHX_ SV *basemsg, bool con
             Perl_sv_catpvf(aTHX_ sv, ", <%" SVf "> %s %" IVdf,
                            SVfARG(PL_last_in_gv == PL_argvgv
                                  ? &PL_sv_no
-                                 : sv_2mortal(newSVhek(GvNAME_HEK(PL_last_in_gv)))),
+                                 : newSVhek_mortal(GvNAME_HEK(PL_last_in_gv))),
                            line_mode ? "line" : "chunk",
                            (IV)IoLINES(GvIOp(PL_last_in_gv)));
         }
@@ -1834,8 +1717,8 @@ S_with_queued_errors(pTHX_ SV *ex)
     return ex;
 }
 
-STATIC bool
-S_invoke_exception_hook(pTHX_ SV *ex, bool warn)
+bool
+Perl_invoke_exception_hook(pTHX_ SV *ex, bool warn)
 {
     HV *stash;
     GV *gv;
@@ -2054,15 +1937,6 @@ Perl_croak_nocontext(const char *pat, ..
 }
 #endif /* MULTIPLICITY */
 
-/* saves machine code for a common noreturn idiom typically used in Newx*() */
-GCC_DIAG_IGNORE_DECL(-Wunused-function);
-void
-Perl_croak_memory_wrap(void)
-{
-    Perl_croak_nocontext("%s",PL_memory_wrap);
-}
-GCC_DIAG_RESTORE_DECL;
-
 void
 Perl_croak(pTHX_ const char *pat, ...)
 {
@@ -2391,23 +2265,19 @@ S_ckwarn_common(pTHX_ U32 w)
     return FALSE;
 }
 
-/* Set buffer=NULL to get a new one.  */
-STRLEN *
-Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits,
+char *
+Perl_new_warnings_bitfield(pTHX_ char *buffer, const char *const bits,
                            STRLEN size) {
-    const MEM_SIZE len_wanted =
-        sizeof(STRLEN) + (size > WARNsize ? size : WARNsize);
+    const MEM_SIZE len_wanted = (size > WARNsize ? size : WARNsize);
     PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD;
 
-    buffer = (STRLEN*)
-        (specialWARN(buffer) ?
-         PerlMemShared_malloc(len_wanted) :
-         PerlMemShared_realloc(buffer, len_wanted));
-    buffer[0] = size;
-    Copy(bits, (buffer + 1), size, char);
+    /* pass in null as the source string as we will do the
+     * copy ourselves. */
+    buffer = rcpv_new(NULL, len_wanted, RCPVf_NO_COPY);
+    Copy(bits, buffer, size, char);
     if (size < WARNsize)
-        Zero((char *)(buffer + 1) + size, WARNsize - size, char);
+        Zero(buffer + size, WARNsize - size, char);
     return buffer;
 }
 
@@ -2423,22 +2293,14 @@ Perl_new_warnings_bitfield(pTHX_ STRLEN 
 
 
 
-#ifdef USE_ENVIRON_ARRAY
+#if defined(USE_ENVIRON_ARRAY) || defined(WIN32)
 /* NB: VMS' my_setenv() is in vms.c */
 
-/* Configure doesn't test for HAS_SETENV yet, so decide based on platform.
- * For Solaris, setenv() and unsetenv() were introduced in Solaris 9, so
- * testing for HAS UNSETENV is sufficient.
- */
-#  if defined(__CYGWIN__)|| defined(__riscos__) || (defined(__sun) && defined(HAS_UNSETENV)) || defined(PERL_DARWIN)
-#    define MY_HAS_SETENV
-#  endif
-
 /* small wrapper for use by Perl_my_setenv that mallocs, or reallocs if
  * 'current' is non-null, with up to three sizes that are added together.
  * It handles integer overflow.
  */
-#  ifndef MY_HAS_SETENV
+#  ifndef HAS_SETENV
 static char *
 S_env_alloc(void *current, Size_t l1, Size_t l2, Size_t l3, Size_t size)
 {
@@ -2465,9 +2327,6 @@ S_env_alloc(void *current, Size_t l1, Si
 }
 #  endif
 
-
-#  if !defined(WIN32)
-
 /*
 =for apidoc_section $utility
 =for apidoc my_setenv
@@ -2481,156 +2340,54 @@ version has desirable safeguards
 void
 Perl_my_setenv(pTHX_ const char *nam, const char *val)
 {
-#    ifdef __amigaos4__
-  amigaos4_obtain_environ(__FUNCTION__);
-#    endif
-
-#    ifdef USE_ITHREADS
-  /* only parent thread can modify process environment, so no need to use a
-   * mutex */
-  if (PL_curinterp == aTHX)
-#    endif
-  {
-
-#    ifndef PERL_USE_SAFE_PUTENV
-    if (!PL_use_safe_putenv) {
-        /* most putenv()s leak, so we manipulate environ directly */
-        UV i;
-        Size_t vlen, nlen = strlen(nam);
-
-        /* where does it go? */
-        for (i = 0; environ[i]; i++) {
-            if (strnEQ(environ[i], nam, nlen) && environ[i][nlen] == '=')
-                break;
-        }
-
-        if (environ == PL_origenviron) {   /* need we copy environment? */
-            UV j, max;
-            char **tmpenv;
-
-            max = i;
-            while (environ[max])
-                max++;
-
-            /* XXX shouldn't that be max+1 rather than max+2 ??? - DAPM */
-            tmpenv = (char**)S_env_alloc(NULL, max, 2, 0, sizeof(char*));
-
-            for (j=0; j<max; j++) {         /* copy environment */
-                const Size_t len = strlen(environ[j]);
-                tmpenv[j] = S_env_alloc(NULL, len, 1, 0, 1);
-                Copy(environ[j], tmpenv[j], len+1, char);
-            }
-
-            tmpenv[max] = NULL;
-            environ = tmpenv;               /* tell exec where it is now */
-        }
-
-        if (!val) {
-            safesysfree(environ[i]);
-            while (environ[i]) {
-                environ[i] = environ[i+1];
-                i++;
-            }
-#      ifdef __amigaos4__
-            goto my_setenv_out;
-#      else
-            return;
-#      endif
-        }
-
-        if (!environ[i]) {                 /* does not exist yet */
-            environ = (char**)S_env_alloc(environ, i, 2, 0, sizeof(char*));
-            environ[i+1] = NULL;    /* make sure it's null terminated */
-        }
-        else
-            safesysfree(environ[i]);
-
-        vlen = strlen(val);
-
-        environ[i] = S_env_alloc(NULL, nlen, vlen, 2, 1);
-        /* all that work just for this */
-        my_setenv_format(environ[i], nam, nlen, val, vlen);
-    }
-    else {
-
-#    endif /* !PERL_USE_SAFE_PUTENV */
+#  if defined(USE_ITHREADS) && !defined(WIN32)
+    /* only parent thread can modify process environment, so no need to use a
+     * mutex */
+    if (PL_curinterp != aTHX)
+        return;
+#  endif
 
-#    ifdef MY_HAS_SETENV
-#      if defined(HAS_UNSETENV)
+#  if defined(HAS_SETENV) && defined(HAS_UNSETENV)
         if (val == NULL) {
-            (void)unsetenv(nam);
+            unsetenv(nam);
         } else {
-            (void)setenv(nam, val, 1);
+            setenv(nam, val, 1);
         }
-#      else /* ! HAS_UNSETENV */
-        (void)setenv(nam, val, 1);
-#      endif /* HAS_UNSETENV */
 
-#    elif defined(HAS_UNSETENV)
+#  elif defined(HAS_UNSETENV)
 
         if (val == NULL) {
             if (environ) /* old glibc can crash with null environ */
-                (void)unsetenv(nam);
+                unsetenv(nam);
         } else {
             const Size_t nlen = strlen(nam);
             const Size_t vlen = strlen(val);
             char * const new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
             my_setenv_format(new_env, nam, nlen, val, vlen);
-            (void)putenv(new_env);
+            putenv(new_env);
         }
 
-#    else /* ! HAS_UNSETENV */
+#  else /* ! HAS_UNSETENV */
 
-        char *new_env;
         const Size_t nlen = strlen(nam);
-        Size_t vlen;
         if (!val) {
            val = "";
         }
-        vlen = strlen(val);
-        new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
+        Size_t vlen = strlen(val);
+        char *new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
         /* all that work just for this */
         my_setenv_format(new_env, nam, nlen, val, vlen);
-        (void)putenv(new_env);
-
-#    endif /* MY_HAS_SETENV */
-
-#    ifndef PERL_USE_SAFE_PUTENV
-    }
+#    ifndef WIN32
+        putenv(new_env);
+#    else
+        PerlEnv_putenv(new_env);
+        safesysfree(new_env);
 #    endif
-  }
-
-#    ifdef __amigaos4__
-my_setenv_out:
-  amigaos4_release_environ(__FUNCTION__);
-#    endif
-}
-
-#  else /* WIN32 */
-
-void
-Perl_my_setenv(pTHX_ const char *nam, const char *val)
-{
-    char *envstr;
-    const Size_t nlen = strlen(nam);
-    Size_t vlen;
 
-    if (!val) {
-       val = "";
-    }
-    vlen = strlen(val);
-    envstr = S_env_alloc(NULL, nlen, vlen, 2, 1);
-    my_setenv_format(envstr, nam, nlen, val, vlen);
-    (void)PerlEnv_putenv(envstr);
-    safesysfree(envstr);
+#  endif /* HAS_SETENV */
 }
 
-#  endif /* WIN32 */
-
-#endif /* USE_ENVIRON_ARRAY */
-
-
-
+#endif /* USE_ENVIRON_ARRAY || WIN32 */
 
 #ifdef UNLINK_ALL_VERSIONS
 I32
@@ -3805,35 +3562,6 @@ Perl_find_script(pTHX_ const char *scrip
 
 /*
 =for apidoc_section $embedding
-=for apidoc get_context
-
-Implements L<perlapi/C<PERL_GET_CONTEXT>>, which you should use instead.
-
-=cut
-*/
-
-void *
-Perl_get_context(void)
-{
-#if defined(USE_ITHREADS)
-#  ifdef OLD_PTHREADS_API
-    pthread_addr_t t;
-    int error = pthread_getspecific(PL_thr_key, &t);
-    if (error)
-        Perl_croak_nocontext("panic: pthread_getspecific, error=%d", error);
-    return (void*)t;
-#  elif defined(I_MACH_CTHREADS)
-    return (void*)cthread_data(cthread_self());
-#  else
-    return (void*)PTHREAD_GETSPECIFIC(PL_thr_key);
-#  endif
-#else
-    return (void*)NULL;
-#endif
-}
-
-/*
-=for apidoc_section $embedding
 =for apidoc set_context
 
 Implements L<perlapi/C<PERL_SET_CONTEXT>>, which you should use instead.
@@ -3853,7 +3581,7 @@ Perl_set_context(void *t)
     cthread_set_data(cthread_self(), t);
 #  else
     /* We set thread-specific value always, as C++ code has to read it with
-     * pthreads, beacuse the declaration syntax for thread local storage for C11
+     * pthreads, because the declaration syntax for thread local storage for C11
      * is incompatible with C++, meaning that we can't expose the thread local
      * variable to C++ code. */
     {
@@ -3862,6 +3590,9 @@ Perl_set_context(void *t)
             Perl_croak_nocontext("panic: pthread_setspecific, error=%d", error);
     }
 #  endif
+
+    PERL_SET_NON_tTHX_CONTEXT(t);
+
 #else
     PERL_UNUSED_ARG(t);
 #endif
@@ -3869,6 +3600,16 @@ Perl_set_context(void *t)
 
 #endif /* !PERL_GET_CONTEXT_DEFINED */
 
+/*
+=for apidoc get_op_names
+
+Return a pointer to the array of all the names of the various OPs
+Given an opcode from the enum in F<opcodes.h>, C<PL_op_name[opcode]> returns a
+pointer to a C language string giving its name.
+
+=cut
+*/
+
 char **
 Perl_get_op_names(pTHX)
 {
@@ -3876,6 +3617,16 @@ Perl_get_op_names(pTHX)
     return (char **)PL_op_name;
 }
 
+/*
+=for apidoc get_op_descs
+
+Return a pointer to the array of all the descriptions of the various OPs
+Given an opcode from the enum in F<opcodes.h>, C<PL_op_desc[opcode]> returns a
+pointer to a C language string giving its description.
+
+=cut
+*/
+
 char **
 Perl_get_op_descs(pTHX)
 {
@@ -3917,16 +3668,6 @@ Perl_getenv_len(pTHX_ const char *env_el
 }
 #endif
 
-
-MGVTBL*
-Perl_get_vtbl(pTHX_ int vtbl_id)
-{
-    PERL_UNUSED_CONTEXT;
-
-    return (vtbl_id < 0 || vtbl_id >= magic_vtable_max)
-        ? NULL : (MGVTBL*)PL_magic_vtables + vtbl_id;
-}
-
 /*
 =for apidoc_section $io
 =for apidoc my_fflush_all
@@ -4018,7 +3759,7 @@ Perl_report_evil_fh(pTHX_ const GV *gv)
     if (ckWARN(warn_type)) {
         SV * const name
             = gv && isGV_with_GP(gv) && GvENAMELEN(gv) ?
-                                     sv_2mortal(newSVhek(GvENAME_HEK(gv))) : NULL;
+                                     newSVhek_mortal(GvENAME_HEK(gv)) : NULL;
         const char * const pars =
             (const char *)(OP_IS_FILETEST(op) ? "" : "()");
         const char * const func =
@@ -4077,11 +3818,12 @@ Perl_init_tm(pTHX_ struct tm *ptm)	/* se
     PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_INIT_TM;
     (void)time(&now);
-    ENV_LOCALE_READ_LOCK;
+
+    LOCALTIME_LOCK;
     my_tm = localtime(&now);
     if (my_tm)
         Copy(my_tm, ptm, 1, struct tm);
-    ENV_LOCALE_READ_UNLOCK;
+    LOCALTIME_UNLOCK;
 #else
     PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_INIT_TM;
@@ -4107,19 +3849,19 @@ Perl_mini_mktime(struct tm *ptm)
 
     PERL_ARGS_ASSERT_MINI_MKTIME;
 
-#define	DAYS_PER_YEAR	365
-#define	DAYS_PER_QYEAR	(4*DAYS_PER_YEAR+1)
-#define	DAYS_PER_CENT	(25*DAYS_PER_QYEAR-1)
-#define	DAYS_PER_QCENT	(4*DAYS_PER_CENT+1)
-#define	SECS_PER_HOUR	(60*60)
-#define	SECS_PER_DAY	(24*SECS_PER_HOUR)
+#define DAYS_PER_YEAR   365
+#define DAYS_PER_QYEAR  (4*DAYS_PER_YEAR+1)
+#define DAYS_PER_CENT   (25*DAYS_PER_QYEAR-1)
+#define DAYS_PER_QCENT  (4*DAYS_PER_CENT+1)
+#define SECS_PER_HOUR   (60*60)
+#define SECS_PER_DAY    (24*SECS_PER_HOUR)
 /* parentheses deliberately absent on these two, otherwise they don't work */
-#define	MONTH_TO_DAYS	153/5
-#define	DAYS_TO_MONTH	5/153
+#define MONTH_TO_DAYS   153/5
+#define DAYS_TO_MONTH   5/153
 /* offset to bias by March (month 4) 1st between month/mday & year finding */
-#define	YEAR_ADJUST	(4*MONTH_TO_DAYS+1)
+#define YEAR_ADJUST     (4*MONTH_TO_DAYS+1)
 /* as used here, the algorithm leaves Sunday as day 1 unless we adjust it */
-#define	WEEKDAY_BIAS	6	/* (1+6)%7 makes Sunday 0 again */
+#define WEEKDAY_BIAS    6       /* (1+6)%7 makes Sunday 0 again */
 
 /*
  * Year/day algorithm notes:
@@ -4284,128 +4026,6 @@ Perl_mini_mktime(struct tm *ptm)
     ptm->tm_wday = (jday + WEEKDAY_BIAS) % 7;
 }
 
-char *
-Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
-{
-#ifdef HAS_STRFTIME
-
-/*
-=for apidoc_section $time
-=for apidoc my_strftime
-strftime(), but with a different API so that the return value is a pointer
-to the formatted result (which MUST be arranged to be FREED BY THE
-CALLER).  This allows this function to increase the buffer size as needed,
-so that the caller doesn't have to worry about that.
-
-Note that yday and wday effectively are ignored by this function, as
-mini_mktime() overwrites them
-
-Also note that this is always executed in the underlying locale of the program,
-giving localized results.
-
-=cut
- */
-
-  char *buf;
-  int buflen;
-  struct tm mytm;
-  int len;
-
-  PERL_ARGS_ASSERT_MY_STRFTIME;
-
-  init_tm(&mytm);	/* XXX workaround - see init_tm() above */
-  mytm.tm_sec = sec;
-  mytm.tm_min = min;
-  mytm.tm_hour = hour;
-  mytm.tm_mday = mday;
-  mytm.tm_mon = mon;
-  mytm.tm_year = year;
-  mytm.tm_wday = wday;
-  mytm.tm_yday = yday;
-  mytm.tm_isdst = isdst;
-  mini_mktime(&mytm);
-  /* use libc to get the values for tm_gmtoff and tm_zone [perl #18238] */
-#if defined(HAS_MKTIME) && (defined(HAS_TM_TM_GMTOFF) || defined(HAS_TM_TM_ZONE))
-  STMT_START {
-    struct tm mytm2;
-    mytm2 = mytm;
-    mktime(&mytm2);
-#ifdef HAS_TM_TM_GMTOFF
-    mytm.tm_gmtoff = mytm2.tm_gmtoff;
-#endif
-#ifdef HAS_TM_TM_ZONE
-    mytm.tm_zone = mytm2.tm_zone;
-#endif
-  } STMT_END;
-#endif
-  buflen = 64;
-  Newx(buf, buflen, char);
-
-  GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral); /* fmt checked by caller */
-
-  len = strftime(buf, buflen, fmt, &mytm);
-
-  GCC_DIAG_RESTORE_STMT;
-
-  /*
-  ** The following is needed to handle the situation where
-  ** tmpbuf overflows.  Basically we want to allocate a buffer
-  ** and try repeatedly, until it's large enough.  The reason why it is so
-  ** complicated ** is that getting a return value of 0 from strftime can
-  ** indicate one of the following:
-  ** 1. buffer overflowed,
-  ** 2. illegal conversion specifier, or
-  ** 3. the format string specifies nothing to be returned (which isn't an
-  **    an error).  This could be because the format is an empty string
-  **    or it specifies %p which yields an empty string in some locales.
-  ** If there is a better way to make it portable, go ahead by
-  ** all means.
-  */
-  if (inRANGE(len, 1, buflen - 1) || (len == 0 && *fmt == '\0'))
-    return buf;
-  else {
-    /* Possibly buf overflowed - try again with a bigger buf */
-    const int fmtlen = strlen(fmt);
-    int bufsize = fmtlen + buflen;
-
-    Renew(buf, bufsize, char);
-    while (buf) {
-
-      GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral); /* fmt checked by caller */
-      buflen = strftime(buf, bufsize, fmt, &mytm);
-      GCC_DIAG_RESTORE_STMT;
-
-      if (inRANGE(buflen, 1, bufsize - 1))
-        break;
-      /* heuristic to prevent out-of-memory errors */
-      if (bufsize > 100*fmtlen) {
-
-        /* "%p" can legally return nothing, assume that was the case if we
-         * can't make the buffer large enough to get a non-zero return.  For
-         * any other formats, assume it is an error (probably it is an illegal
-         * conversion specifier.) */
-        if (strEQ(fmt, "%p")) {
-            Renew(buf, 1, char);
-            *buf = '\0';
-        }
-        else {
-            Safefree(buf);
-            buf = NULL;
-        }
-        break;
-      }
-      bufsize *= 2;
-      Renew(buf, bufsize, char);
-    }
-    return buf;
-  }
-#else
-  Perl_croak(aTHX_ "panic: no strftime");
-  return NULL;
-#endif
-}
-
-
 #define SV_CWD_RETURN_UNDEF \
     sv_set_undef(sv); \
     return FALSE
@@ -4604,7 +4224,7 @@ S_socketpair_udp (int fd[2]) {
 
         addresses[i].sin_family = AF_INET;
         addresses[i].sin_addr.s_addr = htonl(INADDR_LOOPBACK);
-        addresses[i].sin_port = 0;	/* kernel choses port.  */
+        addresses[i].sin_port = 0;	/* kernel chooses port.  */
         if (PerlSock_bind(sockets[i], (struct sockaddr *) &addresses[i],
                 sizeof(struct sockaddr_in)) == -1)
             goto tidy_up_and_fail;
@@ -4776,7 +4396,7 @@ Perl_my_socketpair (int family, int type
     memset(&listen_addr, 0, sizeof(listen_addr));
     listen_addr.sin_family = AF_INET;
     listen_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
-    listen_addr.sin_port = 0;	/* kernel choses port.  */
+    listen_addr.sin_port = 0;	/* kernel chooses port.  */
     if (PerlSock_bind(listener, (struct sockaddr *) &listen_addr,
             sizeof(listen_addr)) == -1)
         goto tidy_up_and_fail;
@@ -4972,6 +4592,39 @@ Perl_parse_unicode_opts(pTHX_ const char
 #  include <starlet.h>
 #endif
 
+/* hash a pointer and return a U32
+ *
+ * this code was derived from Sereal, which was derived from autobox.
+ */
+
+PERL_STATIC_INLINE U32 S_ptr_hash(PTRV u) {
+#if PTRSIZE == 8
+    /*
+     * This is one of Thomas Wang's hash functions for 64-bit integers from:
+     * http://www.concentric.net/~Ttwang/tech/inthash.htm
+     */
+    u = (~u) + (u << 18);
+    u = u ^ (u >> 31);
+    u = u * 21;
+    u = u ^ (u >> 11);
+    u = u + (u << 6);
+    u = u ^ (u >> 22);
+#else
+    /*
+     * This is one of Bob Jenkins' hash functions for 32-bit integers
+     * from: http://burtleburtle.net/bob/hash/integer.html
+     */
+    u = (u + 0x7ed55d16) + (u << 12);
+    u = (u ^ 0xc761c23c) ^ (u >> 19);
+    u = (u + 0x165667b1) + (u << 5);
+    u = (u + 0xd3a2646c) ^ (u << 9);
+    u = (u + 0xfd7046c5) + (u << 3);
+    u = (u ^ 0xb55a4f09) ^ (u >> 16);
+#endif
+    return (U32)u;
+}
+
+
 U32
 Perl_seed(pTHX)
 {
@@ -5043,7 +4696,8 @@ Perl_seed(pTHX)
     u += SEED_C3 * (U32)PerlProc_getpid();
     u += SEED_C4 * (U32)PTR2UV(PL_stack_sp);
 #ifndef PLAN9           /* XXX Plan9 assembler chokes on this; fix needed  */
-    u += SEED_C5 * (U32)PTR2UV(&when);
+    UV ptruv = PTR2UV(&when);
+    u += SEED_C5 * ptr_hash(ptruv);
 #endif
     return u;
 #endif
@@ -5213,7 +4867,7 @@ Perl_debug_hash_seed(pTHX_ bool via_debu
 /* -DPERL_MEM_LOG_SPRINTF_BUF_SIZE=X: size of a (stack-allocated) buffer
  * the Perl_mem_log_...() will use (either via sprintf or snprintf).
  */
-#define PERL_MEM_LOG_SPRINTF_BUF_SIZE 128
+#define PERL_MEM_LOG_SPRINTF_BUF_SIZE 256
 
 /* -DPERL_MEM_LOG_FD=N: the file descriptor the Perl_mem_log_...()
  * writes to.  In the default logger, this is settable at runtime.
@@ -5322,6 +4976,33 @@ S_mem_log_common(enum mem_log_type mlt, 
                 len = 0;
             }
             PERL_UNUSED_RESULT(PerlLIO_write(fd, buf, len));
+#ifdef USE_C_BACKTRACE
+            if(strchr(pmlenv,'c') && (mlt == MLT_NEW_SV)) {
+                len = my_snprintf(buf, sizeof(buf),
+                        "  caller %s at %s line %" LINE_Tf "\n",
+                        /* CopSTASHPV can crash early on startup; use CopFILE to check */
+                        CopFILE(PL_curcop) ? CopSTASHPV(PL_curcop) : "<unknown>",
+                        CopFILE(PL_curcop), CopLINE(PL_curcop));
+                PERL_UNUSED_RESULT(PerlLIO_write(fd, buf, len));
+
+                Perl_c_backtrace *bt = Perl_get_c_backtrace(aTHX_ 3, 3);
+                Perl_c_backtrace_frame *frame;
+                UV i;
+                for (i = 0, frame = bt->frame_info;
+                        i < bt->header.frame_count;
+                        i++, frame++) {
+                    len = my_snprintf(buf, sizeof(buf),
+                            "  frame[%" UVuf "]: %p %s at %s +0x%lx\n",
+                            i,
+                            frame->addr,
+                            frame->symbol_name_size && frame->symbol_name_offset ? (char *)bt + frame->symbol_name_offset : "-",
+                            frame->object_name_size && frame->object_name_offset ? (char *)bt + frame->object_name_offset : "?",
+                            (char *)frame->addr - (char *)frame->object_base_addr);
+                    PERL_UNUSED_RESULT(PerlLIO_write(fd, buf, len));
+                }
+                Perl_free_c_backtrace(bt);
+            }
+#endif /* USE_C_BACKTRACE */
         }
     }
 }
@@ -5512,11 +5193,14 @@ getting C<vsnprintf>.
 
 =cut
 */
+
 int
 Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
 {
     int retval = -1;
     va_list ap;
+    dTHX;
+
     PERL_ARGS_ASSERT_MY_SNPRINTF;
 #ifndef HAS_VSNPRINTF
     PERL_UNUSED_VAR(len);
@@ -5525,9 +5209,12 @@ Perl_my_snprintf(char *buffer, const Siz
 #ifdef USE_QUADMATH
     {
         bool quadmath_valid = FALSE;
+
         if (quadmath_format_valid(format)) {
             /* If the format looked promising, use it as quadmath. */
-            retval = quadmath_snprintf(buffer, len, format, va_arg(ap, NV));
+            WITH_LC_NUMERIC_SET_TO_NEEDED(
+                retval = quadmath_snprintf(buffer, len, format, va_arg(ap, NV));
+            );
             if (retval == -1) {
                 Perl_croak_nocontext("panic: quadmath_snprintf failed, format \"%s\"", format);
             }
@@ -5559,12 +5246,20 @@ Perl_my_snprintf(char *buffer, const Siz
 
     }
 #endif
-    if (retval == -1)
+    if (retval == -1) {
+
 #ifdef HAS_VSNPRINTF
-        retval = vsnprintf(buffer, len, format, ap);
-#else
-        retval = vsprintf(buffer, format, ap);
+        WITH_LC_NUMERIC_SET_TO_NEEDED(
+            retval = vsnprintf(buffer, len, format, ap);
+        );
+#else
+        WITH_LC_NUMERIC_SET_TO_NEEDED(
+            retval = vsprintf(buffer, format, ap);
+        );
 #endif
+
+    }
+
     va_end(ap);
     /* vsprintf() shows failure with < 0 */
     if (retval < 0
@@ -5589,6 +5284,7 @@ C<sv_vcatpvf> instead, or getting C<vsnp
 
 =cut
 */
+
 int
 Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap)
 {
@@ -5602,35 +5298,49 @@ Perl_my_vsnprintf(char *buffer, const Si
     return 0;
 #else
     int retval;
-#ifdef NEED_VA_COPY
+    dTHX;
+
+#  ifdef NEED_VA_COPY
     va_list apc;
 
     PERL_ARGS_ASSERT_MY_VSNPRINTF;
     Perl_va_copy(ap, apc);
-# ifdef HAS_VSNPRINTF
-    retval = vsnprintf(buffer, len, format, apc);
-# else
+#    ifdef HAS_VSNPRINTF
+
+    WITH_LC_NUMERIC_SET_TO_NEEDED(
+        retval = vsnprintf(buffer, len, format, apc);
+    );
+#    else
     PERL_UNUSED_ARG(len);
-    retval = vsprintf(buffer, format, apc);
-# endif
+    WITH_LC_NUMERIC_SET_TO_NEEDED(
+        retval = vsprintf(buffer, format, apc);
+    );
+#    endif
+
     va_end(apc);
-#else
-# ifdef HAS_VSNPRINTF
-    retval = vsnprintf(buffer, len, format, ap);
-# else
+#  else
+#    ifdef HAS_VSNPRINTF
+    WITH_LC_NUMERIC_SET_TO_NEEDED(
+        retval = vsnprintf(buffer, len, format, ap);
+    );
+#    else
     PERL_UNUSED_ARG(len);
-    retval = vsprintf(buffer, format, ap);
-# endif
-#endif /* #ifdef NEED_VA_COPY */
+    WITH_LC_NUMERIC_SET_TO_NEEDED(
+        retval = vsprintf(buffer, format, ap);
+    );
+#    endif
+#  endif /* #ifdef NEED_VA_COPY */
+
     /* vsprintf() shows failure with < 0 */
     if (retval < 0
-#ifdef HAS_VSNPRINTF
+#  ifdef HAS_VSNPRINTF
     /* vsnprintf() shows failure with >= len */
         ||
         (len > 0 && (Size_t)retval >= len)
-#endif
+#  endif
     )
         Perl_croak_nocontext("panic: my_vsnprintf buffer overflow");
+
     return retval;
 #endif
 }
@@ -5646,44 +5356,31 @@ Perl_my_clearenv(pTHX)
 #      if defined(USE_ITHREADS)
     /* only the parent thread can clobber the process environment, so no need
      * to use a mutex */
-    if (PL_curinterp == aTHX)
+    if (PL_curinterp != aTHX)
+        return;
 #      endif /* USE_ITHREADS */
-    {
-#      if ! defined(PERL_USE_SAFE_PUTENV)
-    if ( !PL_use_safe_putenv) {
-      I32 i;
-      if (environ == PL_origenviron)
-        environ = (char**)safesysmalloc(sizeof(char*));
-      else
-        for (i = 0; environ[i]; i++)
-          (void)safesysfree(environ[i]);
-    }
-    environ[0] = NULL;
-#      else /* PERL_USE_SAFE_PUTENV */
-#        if defined(HAS_CLEARENV)
-    (void)clearenv();
-#        elif defined(HAS_UNSETENV)
+#      if defined(HAS_CLEARENV)
+    clearenv();
+#      elif defined(HAS_UNSETENV)
     int bsiz = 80; /* Most envvar names will be shorter than this. */
     char *buf = (char*)safesysmalloc(bsiz);
     while (*environ != NULL) {
-      char *e = strchr(*environ, '=');
-      int l = e ? e - *environ : (int)strlen(*environ);
-      if (bsiz < l + 1) {
-        (void)safesysfree(buf);
-        bsiz = l + 1; /* + 1 for the \0. */
-        buf = (char*)safesysmalloc(bsiz);
-      } 
-      memcpy(buf, *environ, l);
-      buf[l] = '\0';
-      (void)unsetenv(buf);
+        char *e = strchr(*environ, '=');
+        int l = e ? e - *environ : (int)strlen(*environ);
+        if (bsiz < l + 1) {
+            safesysfree(buf);
+            bsiz = l + 1; /* + 1 for the \0. */
+            buf = (char*)safesysmalloc(bsiz);
+        }
+        memcpy(buf, *environ, l);
+        buf[l] = '\0';
+        unsetenv(buf);
     }
-    (void)safesysfree(buf);
-#        else /* ! HAS_CLEARENV && ! HAS_UNSETENV */
+    safesysfree(buf);
+#      else /* ! HAS_CLEARENV && ! HAS_UNSETENV */
     /* Just null environ and accept the leakage. */
     *environ = NULL;
-#        endif /* HAS_CLEARENV || HAS_UNSETENV */
-#      endif /* ! PERL_USE_SAFE_PUTENV */
-    }
+#      endif /* HAS_CLEARENV || HAS_UNSETENV */
 #    endif /* USE_ENVIRON_ARRAY */
 #  endif /* PERL_IMPLICIT_SYS || WIN32 */
 #endif /* PERL_MICRO */
@@ -5876,9 +5573,9 @@ Perl_xs_handshake(const U32 key, void * 
         }
     }
     {
-        U32 xsverlen;
-        assert(HS_GETXSVERLEN(key) <= UCHAR_MAX && HS_GETXSVERLEN(key) <= HS_APIVERLEN_MAX);
-        if((xsverlen = HS_GETXSVERLEN(key)))
+        U32 xsverlen = HS_GETXSVERLEN(key);
+        assert(xsverlen <= UCHAR_MAX && xsverlen <= HS_APIVERLEN_MAX);
+        if(xsverlen)
             S_xs_version_bootcheck(aTHX_
                 items, ax, va_arg(args, char*), xsverlen);
     }
@@ -5935,86 +5632,12 @@ S_xs_version_bootcheck(pTHX_ U32 items, 
     }
 }
 
-/*
-=for apidoc my_strlcat
-
-The C library C<strlcat> if available, or a Perl implementation of it.
-This operates on C C<NUL>-terminated strings.
-
-C<my_strlcat()> appends string C<src> to the end of C<dst>.  It will append at
-most S<C<size - strlen(dst) - 1>> characters.  It will then C<NUL>-terminate,
-unless C<size> is 0 or the original C<dst> string was longer than C<size> (in
-practice this should not happen as it means that either C<size> is incorrect or
-that C<dst> is not a proper C<NUL>-terminated string).
-
-Note that C<size> is the full size of the destination buffer and
-the result is guaranteed to be C<NUL>-terminated if there is room.  Note that
-room for the C<NUL> should be included in C<size>.
-
-The return value is the total length that C<dst> would have if C<size> is
-sufficiently large.  Thus it is the initial length of C<dst> plus the length of
-C<src>.  If C<size> is smaller than the return, the excess was not appended.
-
-=cut
-
-Description stolen from http://man.openbsd.org/strlcat.3
-*/
-#ifndef HAS_STRLCAT
-Size_t
-Perl_my_strlcat(char *dst, const char *src, Size_t size)
-{
-    Size_t used, length, copy;
-
-    used = strlen(dst);
-    length = strlen(src);
-    if (size > 0 && used < size - 1) {
-        copy = (length >= size - used) ? size - used - 1 : length;
-        memcpy(dst + used, src, copy);
-        dst[used + copy] = '\0';
-    }
-    return used + length;
-}
-#endif
-
-
-/*
-=for apidoc my_strlcpy
-
-The C library C<strlcpy> if available, or a Perl implementation of it.
-This operates on C C<NUL>-terminated strings.
-
-C<my_strlcpy()> copies up to S<C<size - 1>> characters from the string C<src>
-to C<dst>, C<NUL>-terminating the result if C<size> is not 0.
-
-The return value is the total length C<src> would be if the copy completely
-succeeded.  If it is larger than C<size>, the excess was not copied.
-
-=cut
-
-Description stolen from http://man.openbsd.org/strlcpy.3
-*/
-#ifndef HAS_STRLCPY
-Size_t
-Perl_my_strlcpy(char *dst, const char *src, Size_t size)
-{
-    Size_t length, copy;
-
-    length = strlen(src);
-    if (size > 0) {
-        copy = (length >= size) ? size - 1 : length;
-        memcpy(dst, src, copy);
-        dst[copy] = '\0';
-    }
-    return length;
-}
-#endif
-
 PERL_STATIC_INLINE bool
 S_gv_has_usable_name(pTHX_ GV *gv)
 {
     GV **gvp;
     return GvSTASH(gv)
-        && HvENAME(GvSTASH(gv))
+        && HvHasENAME(GvSTASH(gv))
         && (gvp = (GV **)hv_fetchhek(
                         GvSTASH(gv), GvNAME_HEK(gv), 0
            ))
@@ -6311,7 +5934,7 @@ typedef struct {
     bfd* abfd;
     /* bfd_syms is the BFD symbol table. */
     asymbol** bfd_syms;
-    /* bfd_text is handle to the the ".text" section of the object file. */
+    /* bfd_text is handle to the ".text" section of the object file. */
     asection* bfd_text;
     /* Since opening the executable and scanning its symbols is quite
      * heavy operation, we remember the filename we used the last time,
@@ -6560,8 +6183,13 @@ static void atos_symbolize(atos_context*
             return;
         }
     }
-    cnt = snprintf(cmd, sizeof(cmd), ctx->format,
-                   ctx->fname, ctx->object_base_addr, raw_frame);
+
+    dTHX;
+    WITH_LC_NUMERIC_SET_TO_NEEDED(
+        cnt = snprintf(cmd, sizeof(cmd), ctx->format,
+                       ctx->fname, ctx->object_base_addr, raw_frame);
+    );
+
     if (cnt < sizeof(cmd)) {
         /* Undo nostdio.h #defines that disable stdio.
          * This is somewhat naughty, but is used elsewhere
Index: gnu/usr.bin/perl/util.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/util.h,v
diff -u -p -a -u -p -r1.18 util.h
--- gnu/usr.bin/perl/util.h	15 Feb 2023 01:36:14 -0000	1.18
+++ gnu/usr.bin/perl/util.h	21 Feb 2024 15:47:03 -0000
@@ -184,7 +184,7 @@ typedef struct {
 /* uses var file to set default filename for newXS_deffile to use for CvFILE */
 #define HSf_SETXSUBFN 0x00000020
 #define HSf_POPMARK 0x00000040 /* popmark mode or you must supply ax and items */
-#define HSf_IMP_CXT 0x00000080 /* ABI, threaded/MULTIPLICITY, pTHX_ present */
+#define HSf_IMP_CXT 0x00000080 /* ABI, threaded, MULTIPLICITY, pTHX_ present */
 #define HSm_INTRPSIZE 0xFFFF0000 /* ABI, interp struct size */
 /* A mask of bits in the key which must always match between a XS mod and interp.
    Also if all ABI bits in a key are true, skip all ABI checks, it is very
@@ -247,7 +247,9 @@ returning NULL if not found.  The termin
 
 #ifdef HAS_MEMMEM
 #   define ninstr(big, bigend, little, lend)                                \
-            ((char *) memmem((big), (bigend) - (big),                       \
+            (__ASSERT_(bigend >= big)                                       \
+             __ASSERT_(lend >= little)                                      \
+             (char *) memmem((big), (bigend) - (big),                       \
                              (little), (lend) - (little)))
 #else
 #   define ninstr(a,b,c,d) Perl_ninstr(a,b,c,d)
Index: gnu/usr.bin/perl/warnings.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/warnings.h,v
diff -u -p -a -u -p -r1.7 warnings.h
--- gnu/usr.bin/perl/warnings.h	15 Feb 2023 01:36:14 -0000	1.7
+++ gnu/usr.bin/perl/warnings.h	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
    This file is built by regen/warnings.pl.
    Any changes made here will be lost!
@@ -9,7 +9,6 @@
 #define Perl_Warn_Bit_(x)           (1 << ((x) % 8))
 #define PerlWarnIsSet_(a, x)        ((a)[Perl_Warn_Off_(x)] & Perl_Warn_Bit_(x))
 
-
 #define G_WARN_OFF		0 	/* $^W == 0 */
 #define G_WARN_ON		1	/* -w flag and $^W != 0 */
 #define G_WARN_ALL_ON		2	/* -W flag */
@@ -18,8 +17,8 @@
 #define G_WARN_ALL_MASK		(G_WARN_ALL_ON|G_WARN_ALL_OFF)
 
 #define pWARN_STD		NULL
-#define pWARN_ALL		(STRLEN *) &PL_WARN_ALL    /* use warnings 'all' */
-#define pWARN_NONE		(STRLEN *) &PL_WARN_NONE   /* no  warnings 'all' */
+#define pWARN_ALL               &PL_WARN_ALL    /* use warnings 'all' */
+#define pWARN_NONE              &PL_WARN_NONE   /* no  warnings 'all' */
 
 #define specialWARN(x)		((x) == pWARN_STD || (x) == pWARN_ALL ||	\
                                  (x) == pWARN_NONE)
@@ -81,67 +80,85 @@
 #define WARN_IMPRECISION		 46
 #define WARN_ILLEGALPROTO		 47
 
+/* Warnings Categories added in Perl 5.011003 */
+
+#define WARN_DEPRECATED__GOTO_CONSTRUCT	 48
+#define WARN_DEPRECATED__UNICODE_PROPERTY_NAME 49
+
 /* Warnings Categories added in Perl 5.013 */
 
-#define WARN_NON_UNICODE		 48
-#define WARN_NONCHAR			 49
-#define WARN_SURROGATE			 50
+#define WARN_NON_UNICODE		 50
+#define WARN_NONCHAR			 51
+#define WARN_SURROGATE			 52
 
 /* Warnings Categories added in Perl 5.017 */
 
-#define WARN_EXPERIMENTAL		 51
-#define WARN_EXPERIMENTAL__LEXICAL_SUBS	 52
-#define WARN_EXPERIMENTAL__REGEX_SETS	 53
-#define WARN_EXPERIMENTAL__SMARTMATCH	 54
+#define WARN_EXPERIMENTAL		 53
+#define WARN_EXPERIMENTAL__REGEX_SETS	 54
 
 /* Warnings Categories added in Perl 5.019 */
 
-#define WARN_EXPERIMENTAL__POSTDEREF	 55
-#define WARN_EXPERIMENTAL__SIGNATURES	 56
-#define WARN_SYSCALLS			 57
+#define WARN_SYSCALLS			 55
 
 /* Warnings Categories added in Perl 5.021 */
 
-#define WARN_EXPERIMENTAL__BITWISE	 58
-#define WARN_EXPERIMENTAL__CONST_ATTR	 59
-#define WARN_EXPERIMENTAL__RE_STRICT	 60
-#define WARN_EXPERIMENTAL__REFALIASING	 61
-#define WARN_LOCALE			 62
-#define WARN_MISSING			 63
-#define WARN_REDUNDANT			 64
+#define WARN_EXPERIMENTAL__CONST_ATTR	 56
+#define WARN_EXPERIMENTAL__RE_STRICT	 57
+#define WARN_EXPERIMENTAL__REFALIASING	 58
+#define WARN_LOCALE			 59
+#define WARN_MISSING			 60
+#define WARN_REDUNDANT			 61
 
 /* Warnings Categories added in Perl 5.025 */
 
-#define WARN_EXPERIMENTAL__DECLARED_REFS 65
+#define WARN_EXPERIMENTAL__DECLARED_REFS 62
 
-/* Warnings Categories added in Perl 5.027 */
+/* Warnings Categories added in Perl 5.025011 */
 
-#define WARN_EXPERIMENTAL__ALPHA_ASSERTIONS 66
-#define WARN_EXPERIMENTAL__SCRIPT_RUN	 67
-#define WARN_SHADOW			 68
+#define WARN_DEPRECATED__DOT_IN_INC	 63
 
-/* Warnings Categories added in Perl 5.029 */
+/* Warnings Categories added in Perl 5.027 */
 
-#define WARN_EXPERIMENTAL__PRIVATE_USE	 69
-#define WARN_EXPERIMENTAL__UNIPROP_WILDCARDS 70
-#define WARN_EXPERIMENTAL__VLB		 71
+#define WARN_SHADOW			 64
 
-/* Warnings Categories added in Perl 5.031 */
+/* Warnings Categories added in Perl 5.029 */
 
-#define WARN_EXPERIMENTAL__ISA		 72
+#define WARN_EXPERIMENTAL__PRIVATE_USE	 65
+#define WARN_EXPERIMENTAL__UNIPROP_WILDCARDS 66
+#define WARN_EXPERIMENTAL__VLB		 67
 
 /* Warnings Categories added in Perl 5.033 */
 
-#define WARN_EXPERIMENTAL__TRY		 73
+#define WARN_EXPERIMENTAL__TRY		 68
 
 /* Warnings Categories added in Perl 5.035 */
 
-#define WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES 74
-#define WARN_EXPERIMENTAL__BUILTIN	 75
-#define WARN_EXPERIMENTAL__DEFER	 76
-#define WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS 77
-#define WARN_EXPERIMENTAL__FOR_LIST	 78
-#define WARN_SCALAR			 79
+#define WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES 69
+#define WARN_EXPERIMENTAL__BUILTIN	 70
+#define WARN_EXPERIMENTAL__DEFER	 71
+#define WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS 72
+#define WARN_EXPERIMENTAL__FOR_LIST	 73
+#define WARN_SCALAR			 74
+
+/* Warnings Categories added in Perl 5.035009 */
+
+#define WARN_DEPRECATED__VERSION_DOWNGRADE 75
+
+/* Warnings Categories added in Perl 5.03501 */
+
+#define WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED 76
+
+/* Warnings Categories added in Perl 5.037 */
+
+#define WARN_EXPERIMENTAL__CLASS	 77
+
+/* Warnings Categories added in Perl 5.037009 */
+
+#define WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR 78
+
+/* Warnings Categories added in Perl 5.03701 */
+
+#define WARN_DEPRECATED__SMARTMATCH	 79
 #define WARNsize			 20
 #define WARN_ALLstring			 "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
 #define WARN_NONEstring			 "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
@@ -151,13 +168,18 @@
 #define isLEXWARN_off \
         cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
 #define isWARN_ONCE	(PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x)	(PerlWarnIsSet_((U8 *)(c + 1), 2*(x)))
-#define isWARNf_on(c,x)	(PerlWarnIsSet_((U8 *)(c + 1), 2*(x)+1))
+#define hasWARNBIT(c,x) (RCPV_LEN(c) > (2*(x)/8))
+#define isWARN_on(c,x)  (hasWARNBIT(c,x) \
+                        ? PerlWarnIsSet_((U8 *)(c), 2*(x)) \
+                        : 0)
+#define isWARNf_on(c,x) (hasWARNBIT(c,x) \
+                        ? PerlWarnIsSet_((U8 *)(c), 2*(x)+1) \
+                        : 0)
 
 #define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p)
 
 #define free_and_set_cop_warnings(cmp,w) STMT_START { \
-  if (!specialWARN((cmp)->cop_warnings)) PerlMemShared_free((cmp)->cop_warnings); \
+  if (!specialWARN((cmp)->cop_warnings)) rcpv_free((cmp)->cop_warnings); \
   (cmp)->cop_warnings = w; \
 } STMT_END
 
@@ -299,17 +321,14 @@ category parameters passed.
 =for apidoc Amnh||WARN_VOID
 =for apidoc Amnh||WARN_IMPRECISION
 =for apidoc Amnh||WARN_ILLEGALPROTO
+=for apidoc Amnh||WARN_DEPRECATED__GOTO_CONSTRUCT
+=for apidoc Amnh||WARN_DEPRECATED__UNICODE_PROPERTY_NAME
 =for apidoc Amnh||WARN_NON_UNICODE
 =for apidoc Amnh||WARN_NONCHAR
 =for apidoc Amnh||WARN_SURROGATE
 =for apidoc Amnh||WARN_EXPERIMENTAL
-=for apidoc Amnh||WARN_EXPERIMENTAL__LEXICAL_SUBS
 =for apidoc Amnh||WARN_EXPERIMENTAL__REGEX_SETS
-=for apidoc Amnh||WARN_EXPERIMENTAL__SMARTMATCH
-=for apidoc Amnh||WARN_EXPERIMENTAL__POSTDEREF
-=for apidoc Amnh||WARN_EXPERIMENTAL__SIGNATURES
 =for apidoc Amnh||WARN_SYSCALLS
-=for apidoc Amnh||WARN_EXPERIMENTAL__BITWISE
 =for apidoc Amnh||WARN_EXPERIMENTAL__CONST_ATTR
 =for apidoc Amnh||WARN_EXPERIMENTAL__RE_STRICT
 =for apidoc Amnh||WARN_EXPERIMENTAL__REFALIASING
@@ -317,13 +336,11 @@ category parameters passed.
 =for apidoc Amnh||WARN_MISSING
 =for apidoc Amnh||WARN_REDUNDANT
 =for apidoc Amnh||WARN_EXPERIMENTAL__DECLARED_REFS
-=for apidoc Amnh||WARN_EXPERIMENTAL__ALPHA_ASSERTIONS
-=for apidoc Amnh||WARN_EXPERIMENTAL__SCRIPT_RUN
+=for apidoc Amnh||WARN_DEPRECATED__DOT_IN_INC
 =for apidoc Amnh||WARN_SHADOW
 =for apidoc Amnh||WARN_EXPERIMENTAL__PRIVATE_USE
 =for apidoc Amnh||WARN_EXPERIMENTAL__UNIPROP_WILDCARDS
 =for apidoc Amnh||WARN_EXPERIMENTAL__VLB
-=for apidoc Amnh||WARN_EXPERIMENTAL__ISA
 =for apidoc Amnh||WARN_EXPERIMENTAL__TRY
 =for apidoc Amnh||WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES
 =for apidoc Amnh||WARN_EXPERIMENTAL__BUILTIN
@@ -331,10 +348,15 @@ category parameters passed.
 =for apidoc Amnh||WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS
 =for apidoc Amnh||WARN_EXPERIMENTAL__FOR_LIST
 =for apidoc Amnh||WARN_SCALAR
+=for apidoc Amnh||WARN_DEPRECATED__VERSION_DOWNGRADE
+=for apidoc Amnh||WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED
+=for apidoc Amnh||WARN_EXPERIMENTAL__CLASS
+=for apidoc Amnh||WARN_DEPRECATED__APOSTROPHE_AS_PACKAGE_SEPARATOR
+=for apidoc Amnh||WARN_DEPRECATED__SMARTMATCH
 
 =cut
 */
 
 /* end of file warnings.h */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */
Index: gnu/usr.bin/perl/zaphod32_hash.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/zaphod32_hash.h,v
diff -u -p -a -u -p -r1.1.1.3 zaphod32_hash.h
--- gnu/usr.bin/perl/zaphod32_hash.h	15 Feb 2023 01:31:52 -0000	1.1.1.3
+++ gnu/usr.bin/perl/zaphod32_hash.h	21 Feb 2024 15:47:03 -0000
@@ -133,12 +133,17 @@ void zaphod32_seed_state (
     const U32 *seed= (const U32 *)seed_ch;
     U32 *state= (U32 *)state_ch;
   
-    /* hex expansion of pi, skipping first two digits. pi= 3.2[43f6...]*/
-    /* pi value in hex from here:
-     * http://turner.faculty.swau.edu/mathematics/materialslibrary/pi/pibases.html*/
-    /* Ensure that the three state vectors are nonzero regardless of the seed. */
-    /* The idea of these two steps is to ensure that the 0 state comes from a seed
-     * utterly unlike that of the value we replace it with.*/
+    /* hex expansion of PI, skipping first two digits. PI= 3.2[43f6...]
+     *
+     * PI value in hex from here:
+     *
+     * http://turner.faculty.swau.edu/mathematics/materialslibrary/pi/pibases.html
+     *
+     * Ensure that the three state vectors are nonzero regardless of
+     * the seed. The idea of these two steps is to ensure that the 0
+     * state comes from a seed utterly unlike that of the value we
+     * replace it with.
+     */
     state[0]= seed[0] ^ 0x43f6a888;
     state[1]= seed[1] ^ 0x5a308d31;
     state[2]= seed[2] ^ 0x3198a2e0;
@@ -178,7 +183,7 @@ U32 zaphod32_hash_with_state(
     const U8 *key,
     const STRLEN key_len
 ) {
-    U32 *state= (U32 *)state_ch;
+    const U32 *state= (const U32 *)state_ch;
     const U8 *end;
     STRLEN len = key_len;
     U32 v0= state[0];
Index: gnu/usr.bin/perl/Cross/README.new
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Cross/README.new,v
diff -u -p -a -u -p -r1.1.1.3 README.new
--- gnu/usr.bin/perl/Cross/README.new	1 Mar 2021 23:15:43 -0000	1.1.1.3
+++ gnu/usr.bin/perl/Cross/README.new	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 You're reading ./Cross/README.new, describing Perl cross-compilation process.
 NOTE: this file will replace ./Cross/README, after the cross-compilation scheme
 is stabilized.
Index: gnu/usr.bin/perl/Cross/config.sh-arm-linux
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Cross/config.sh-arm-linux,v
diff -u -p -a -u -p -r1.17 config.sh-arm-linux
--- gnu/usr.bin/perl/Cross/config.sh-arm-linux	23 Dec 2023 21:02:20 -0000	1.17
+++ gnu/usr.bin/perl/Cross/config.sh-arm-linux	21 Feb 2024 15:47:00 -0000
@@ -32,11 +32,11 @@ alignbytes='4'
 aphostname='/bin/hostname'
 api_revision='5'
 api_subversion='0'
-api_version='36'
-api_versionstring='5.36.0'
+api_version='38'
+api_versionstring='5.38.0'
 ar='ar'
-archlib='/usr/lib/perl5/5.36.3/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.36.3/armv4l-linux'
+archlib='/usr/lib/perl5/5.38.2/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.38.2/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.36.3/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.38.2/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -124,6 +124,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='undef'
@@ -489,6 +490,7 @@ d_semget='define'
 d_semop='define'
 d_sendmsg='define'
 d_setegid='define'
+d_setenv='undef'
 d_seteuid='define'
 d_setgrent='define'
 d_setgrent_r='undef'
@@ -737,6 +739,7 @@ html3dir=' '
 html3direxp=''
 i16size='2'
 i16type='short'
+i32dformat='"ld"'
 i32size='4'
 i32type='long'
 i64size='8'
@@ -807,6 +810,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='define'
 i_sysstatvfs='define'
+i_syssyscall='undef'
 i_systime='define'
 i_systimek='undef'
 i_systimes='define'
@@ -831,7 +835,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.36.3/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.38.2/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -839,13 +843,13 @@ installman1dir='./install_me_here/usr/sh
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.36.3'
+installprivlib='./install_me_here/usr/lib/perl5/5.38.2'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.38.2/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.36.3'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.38.2'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -980,8 +984,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.36.3'
-privlibexp='/usr/lib/perl5/5.36.3'
+privlib='/usr/lib/perl5/5.38.2'
+privlibexp='/usr/lib/perl5/5.38.2'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1046,17 +1050,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.38.2/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.38.2/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.36.3'
+sitelib='/usr/lib/perl5/site_perl/5.38.2'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.36.3'
+sitelibexp='/usr/lib/perl5/site_perl/5.38.2'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1097,7 +1101,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='3'
+subversion='2'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1117,8 +1121,12 @@ troff=''
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
 u32size='4'
 u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
 u64size='8'
 u64type='unsigned long long'
 u8size='1'
@@ -1188,8 +1196,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.36.3'
-version_patchlevel_string='version 36 subversion 3'
+version='5.38.2'
+version_patchlevel_string='version 38 subversion 2'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1203,10 +1211,10 @@ config_arg0='Configure'
 config_args=''
 config_argc=0
 PERL_REVISION=5
-PERL_VERSION=36
-PERL_SUBVERSION=3
+PERL_VERSION=38
+PERL_SUBVERSION=2
 PERL_API_REVISION=5
-PERL_API_VERSION=36
+PERL_API_VERSION=38
 PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
Index: gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770,v
diff -u -p -a -u -p -r1.14 config.sh-arm-linux-n770
--- gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770	23 Dec 2023 21:02:20 -0000	1.14
+++ gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770	21 Feb 2024 15:47:00 -0000
@@ -32,11 +32,11 @@ alignbytes='4'
 aphostname='/bin/hostname'
 api_revision='5'
 api_subversion='0'
-api_version='36'
-api_versionstring='5.36.0'
+api_version='38'
+api_versionstring='5.38.0'
 ar='ar'
-archlib='/usr/lib/perl5/5.36.3/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.36.3/armv4l-linux'
+archlib='/usr/lib/perl5/5.38.2/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.38.2/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -54,7 +54,7 @@ castflags='0'
 cat='cat'
 cc='arm-none-linux-gnueabi-gcc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.36.3/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.38.2/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -123,6 +123,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='undef'
@@ -488,6 +489,7 @@ d_semget='define'
 d_semop='define'
 d_sendmsg='define'
 d_setegid='define'
+d_setenv='undef'
 d_seteuid='define'
 d_setgrent='define'
 d_setgrent_r='undef'
@@ -735,6 +737,7 @@ html3dir=' '
 html3direxp=''
 i16size='2'
 i16type='short'
+i32dformat='"ld"'
 i32size='4'
 i32type='long'
 i64size='8'
@@ -805,6 +808,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='define'
 i_sysstatvfs='define'
+i_syssyscall='undef'
 i_systime='define'
 i_systimek='undef'
 i_systimes='define'
@@ -829,7 +833,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.36.3/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.38.2/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -837,13 +841,13 @@ installman1dir='./install_me_here/usr/sh
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.36.3'
+installprivlib='./install_me_here/usr/lib/perl5/5.38.2'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.38.2/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.36.3'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.38.2'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -978,8 +982,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.36.3'
-privlibexp='/usr/lib/perl5/5.36.3'
+privlib='/usr/lib/perl5/5.38.2'
+privlibexp='/usr/lib/perl5/5.38.2'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1044,17 +1048,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.36.3/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.38.2/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.38.2/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.36.3'
+sitelib='/usr/lib/perl5/site_perl/5.38.2'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.36.3'
+sitelibexp='/usr/lib/perl5/site_perl/5.38.2'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1095,7 +1099,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='3'
+subversion='2'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1115,8 +1119,12 @@ troff=''
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
 u32size='4'
 u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
 u64size='8'
 u64type='unsigned long long'
 u8size='1'
@@ -1186,8 +1194,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.36.3'
-version_patchlevel_string='version 36 subversion 3'
+version='5.38.2'
+version_patchlevel_string='version 38 subversion 2'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1201,10 +1209,10 @@ config_arg0='Configure'
 config_args=''
 config_argc=0
 PERL_REVISION=5
-PERL_VERSION=36
-PERL_SUBVERSION=3
+PERL_VERSION=38
+PERL_SUBVERSION=2
 PERL_API_REVISION=5
-PERL_API_VERSION=36
+PERL_API_VERSION=38
 PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
Index: gnu/usr.bin/perl/Porting/Glossary
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/Glossary,v
diff -u -p -a -u -p -r1.19 Glossary
--- gnu/usr.bin/perl/Porting/Glossary	15 Feb 2023 01:36:14 -0000	1.19
+++ gnu/usr.bin/perl/Porting/Glossary	21 Feb 2024 15:47:00 -0000
@@ -493,6 +493,10 @@ d_attribute_unused (d_attribut.U):
 	and arguments may not always be used, and to not throw warnings
 	if they don't get used.
 
+d_attribute_visibility (d_attribut.U):
+	This variable conditionally defines the HASATTRIBUTE_VISIBILITY symbol,
+	and indicates different GCC attribute visibility
+
 d_attribute_warn_unused_result (d_attribut.U):
 	This variable conditionally defines
 	HASATTRIBUTE_WARN_UNUSED_RESULT, which indicates that the C
@@ -2279,6 +2283,10 @@ d_setegid (d_setegid.U):
 	indicates to the C program that the setegid() routine is available
 	to change the effective gid of the current program.
 
+d_setenv (d_setenv.U):
+	This variable conditionally defines the HAS_SETENV symbol, which
+	indicates to the C program that the setenv routine is available.
+
 d_seteuid (d_seteuid.U):
 	This variable conditionally defines the HAS_SETEUID symbol, which
 	indicates to the C program that the seteuid() routine is available
@@ -3501,6 +3509,10 @@ i16size (perlxv.U):
 i16type (perlxv.U):
 	This variable contains the C type used for Perl's I16.
 
+i32dformat (perlx32f.U):
+	This variable contains the format string used for printing
+	a Perl I32 as a signed decimal integer.
+
 i32size (perlxv.U):
 	This variable is the size of an I32 in bytes.
 
@@ -3795,6 +3807,10 @@ i_sysstatvfs (i_sysstatvfs.U):
 	This variable conditionally defines the I_SYSSTATVFS symbol,
 	and indicates whether a C program should include <sys/statvfs.h>.
 
+i_syssyscall (i_syssyscall.U):
+	This variable conditionally defines the I_SYS_SYSCALL symbol,
+	and indicates whether a C program should include <sys/syscall.h>.
+
 i_systime (i_time.U):
 	This variable conditionally defines I_SYS_TIME, which indicates
 	to the C program that it should include <sys/time.h>.
@@ -5518,11 +5534,27 @@ u16size (perlxv.U):
 u16type (perlxv.U):
 	This variable contains the C type used for Perl's U16.
 
+u32oformat (perlx32f.U):
+	This variable contains the format string used for printing
+	a Perl U32 as an unsigned octal integer.
+
 u32size (perlxv.U):
 	This variable is the size of an U32 in bytes.
 
 u32type (perlxv.U):
 	This variable contains the C type used for Perl's U32.
+
+u32uformat (perlx32f.U):
+	This variable contains the format string used for printing
+	a Perl U32 as an unsigned decimal integer.
+
+u32xformat (perlx32f.U):
+	This variable contains the format string used for printing
+	a Perl U32 as an unsigned hexadecimal integer in lowercase abcdef.
+
+u32XUformat (perlx32f.U):
+	This variable contains the format string used for printing
+	a Perl U32 as an unsigned hexadecimal integer in uppercase ABCDEF.
 
 u64size (perlxv.U):
 	This variable is the size of an U64 in bytes.
Index: gnu/usr.bin/perl/Porting/Maintainers.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/Maintainers.pl,v
diff -u -p -a -u -p -r1.24 Maintainers.pl
--- gnu/usr.bin/perl/Porting/Maintainers.pl	15 Feb 2023 01:38:21 -0000	1.24
+++ gnu/usr.bin/perl/Porting/Maintainers.pl	21 Feb 2024 15:47:00 -0000
@@ -142,7 +142,7 @@ use File::Glob qw(:case);
     },
 
     'autodie' => {
-        'DISTRIBUTION' => 'TODDR/autodie-2.34.tar.gz',
+        'DISTRIBUTION' => 'TODDR/autodie-2.36.tar.gz',
         'FILES'        => q[cpan/autodie],
         'EXCLUDED'     => [
             qr{benchmarks},
@@ -172,6 +172,7 @@ use File::Glob qw(:case);
         'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.74.tar.gz',
         'FILES'        => q[cpan/AutoLoader],
         'EXCLUDED'     => ['t/00pod.t'],
+        'CUSTOMIZED'   => ['t/02AutoSplit.t'],
     },
 
     'autouse' => {
@@ -186,7 +187,7 @@ use File::Glob qw(:case);
     },
 
     'bignum' => {
-        'DISTRIBUTION' => 'PJACKLAM/bignum-0.65.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/bignum-0.66.tar.gz',
         'FILES'        => q[cpan/bignum],
         'EXCLUDED'     => [
             qr{^xt/},
@@ -204,7 +205,7 @@ use File::Glob qw(:case);
     },
 
     'Compress::Raw::Bzip2' => {
-        'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.103.tar.gz',
+        'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.204.tar.gz',
         'FILES'        => q[cpan/Compress-Raw-Bzip2],
         'EXCLUDED'     => [
             qr{^t/Test/},
@@ -213,10 +214,15 @@ use File::Glob qw(:case);
             'bzip2-src/bzip2-cpp.patch',
             'bzip2-src/bzip2-unsigned.patch',
         ],
+        'CUSTOMIZED'   => [
+            # https://github.com/pmqs/Compress-Raw-Bzip2/issues/11
+            'Bzip2.xs',
+            'lib/Compress/Raw/Bzip.pm'
+        ],
     },
 
     'Compress::Raw::Zlib' => {
-        'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.105.tar.gz',
+        'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.204.tar.gz',
         'FILES'    => q[cpan/Compress-Raw-Zlib],
         'EXCLUDED' => [
             qr{^examples/},
@@ -226,10 +232,16 @@ use File::Glob qw(:case);
                 t/99pod.t
                 ),
         ],
+        'CUSTOMIZED' => [
+            # https://github.com/pmqs/Compress-Raw-Zlib/issues/23
+            'lib/Compress/Raw/Zlib.pm',
+            'Zlib.xs'
+        ],
     },
 
     'Config::Perl::V' => {
-        'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.33.tgz',
+        'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.36.tgz',
+        'SYNCINFO'     => 'yorton on Sat Mar  4 10:43:06 2023',
         'FILES'        => q[cpan/Config-Perl-V],
         'EXCLUDED'     => [qw(
 		examples/show-v.pl
@@ -250,7 +262,7 @@ use File::Glob qw(:case);
     },
 
     'CPAN' => {
-        'DISTRIBUTION' => 'ANDK/CPAN-2.33-TRIAL.tar.gz',
+        'DISTRIBUTION' => 'ANDK/CPAN-2.36.tar.gz',
         'FILES'        => q[cpan/CPAN],
         'EXCLUDED'     => [
             qr{^distroprefs/},
@@ -330,7 +342,7 @@ use File::Glob qw(:case);
     },
 
     'DB_File' => {
-        'DISTRIBUTION' => 'PMQS/DB_File-1.857.tar.gz',
+        'DISTRIBUTION' => 'PMQS/DB_File-1.858.tar.gz',
         'FILES'        => q[cpan/DB_File],
         'EXCLUDED'     => [
             qr{^patches/},
@@ -367,10 +379,15 @@ use File::Glob qw(:case);
         'DISTRIBUTION' => 'TODDR/Digest-MD5-2.58.tar.gz',
         'FILES'        => q[cpan/Digest-MD5],
         'EXCLUDED'     => [ 'rfc1321.txt', 'bin/md5sum.pl' ],
+        'CUSTOMIZED'   => [
+            # https://github.com/Dual-Life/digest-md5/pull/24
+            'MD5.pm',
+            'MD5.xs'
+        ],
     },
 
     'Digest::SHA' => {
-        'DISTRIBUTION' => 'MSHELOR/Digest-SHA-6.02.tar.gz',
+        'DISTRIBUTION' => 'MSHELOR/Digest-SHA-6.04.tar.gz',
         'FILES'        => q[cpan/Digest-SHA],
         'EXCLUDED'     => [
             qw( t/pod.t
@@ -387,7 +404,7 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-3.17.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-3.19.tar.gz',
         'FILES'        => q[cpan/Encode],
         'EXCLUDED'     => [
             qw( t/whatwg-aliases.json
@@ -412,13 +429,13 @@ use File::Glob qw(:case);
     },
 
     'experimental' => {
-        'DISTRIBUTION' => 'LEONT/experimental-0.027.tar.gz',
+        'DISTRIBUTION' => 'LEONT/experimental-0.031.tar.gz',
         'FILES'        => q[cpan/experimental],
         'EXCLUDED'     => [qr{^xt/}],
     },
 
     'Exporter' => {
-        'DISTRIBUTION' => 'TODDR/Exporter-5.74.tar.gz',
+        'DISTRIBUTION' => 'TODDR/Exporter-5.77.tar.gz',
         'FILES'        => q[dist/Exporter],
         'EXCLUDED' => [
             qw( t/pod.t
@@ -457,7 +474,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::Install' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.20.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.22.tar.gz',
         'FILES'        => q[cpan/ExtUtils-Install],
         'EXCLUDED'     => [
             qw( t/lib/Test/Builder.pm
@@ -471,7 +488,8 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::MakeMaker' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.64.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.70.tar.gz',
+        'SYNCINFO'     => 'yorton on Sun Mar 26 16:20:23 2023',
         'FILES'        => q[cpan/ExtUtils-MakeMaker],
         'EXCLUDED'     => [
             qr{^t/lib/Test/},
@@ -486,7 +504,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::PL2Bat' => {
-        'DISTRIBUTION' => 'LEONT/ExtUtils-PL2Bat-0.004.tar.gz',
+        'DISTRIBUTION' => 'LEONT/ExtUtils-PL2Bat-0.005.tar.gz',
         'FILES'        => q[cpan/ExtUtils-PL2Bat],
         'EXCLUDED'     => [
             't/00-compile.t',
@@ -544,7 +562,7 @@ use File::Glob qw(:case);
     },
 
     'Filter::Util::Call' => {
-        'DISTRIBUTION' => 'RURBAN/Filter-1.60.tar.gz',
+        'DISTRIBUTION' => 'RURBAN/Filter-1.64.tar.gz',
         'FILES'        => q[cpan/Filter-Util-Call
                  pod/perlfilter.pod
                 ],
@@ -555,6 +573,8 @@ use File::Glob qw(:case);
             qr{^lib/Filter/},
             qr{^tee/},
             qw( .appveyor.yml
+                .cirrus.yml
+                .github/workflows/testsuite.yml
                 .whitesource
                 Call/Makefile.PL
                 Call/ppport.h
@@ -587,12 +607,12 @@ use File::Glob qw(:case);
     },
 
     'FindBin' => {
-        'DISTRIBUTION' => 'TODDR/FindBin-1.52.tar.gz',
+        'DISTRIBUTION' => 'TODDR/FindBin-1.53.tar.gz',
         'FILES'        => q[dist/FindBin],
     },
 
     'Getopt::Long' => {
-        'DISTRIBUTION' => 'JV/Getopt-Long-2.52.tar.gz',
+        'DISTRIBUTION' => 'JV/Getopt-Long-2.54.tar.gz',
         'FILES'        => q[cpan/Getopt-Long],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -603,9 +623,10 @@ use File::Glob qw(:case);
     },
 
     'HTTP::Tiny' => {
-        'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.080.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.086.tar.gz',
         'FILES'        => q[cpan/HTTP-Tiny],
         'EXCLUDED'     => [
+            'corpus/snake-oil.crt', # only used by 210_live_ssl.t
             't/00-report-prereqs.t',
             't/00-report-prereqs.dd',
             't/200_live.t',
@@ -632,13 +653,13 @@ use File::Glob qw(:case);
     },
 
     'IO' => {
-        'DISTRIBUTION' => 'TODDR/IO-1.50.tar.gz',
+        'DISTRIBUTION' => 'TODDR/IO-1.51.tar.gz',
         'FILES'        => q[dist/IO],
         'EXCLUDED'     => ['t/test.pl'],
     },
 
     'IO-Compress' => {
-        'DISTRIBUTION' => 'PMQS/IO-Compress-2.106.tar.gz',
+        'DISTRIBUTION' => 'PMQS/IO-Compress-2.204.tar.gz',
         'MAIN_MODULE'  => 'IO::Compress::Base',
         'FILES'        => q[cpan/IO-Compress],
         'EXCLUDED'     => [
@@ -657,10 +678,14 @@ use File::Glob qw(:case);
         'EXCLUDED'     => [
             qr{^examples/},
         ],
+        'CUSTOMIZED' => [
+            # https://rt.cpan.org/Ticket/Display.html?id=148293
+            'lib/IO/Socket/IP.pm'
+        ],
     },
 
     'IO::Zlib' => {
-        'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.11.tar.gz',
+        'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.14.tar.gz',
         'FILES'        => q[cpan/IO-Zlib],
     },
 
@@ -680,7 +705,7 @@ use File::Glob qw(:case);
     },
 
     'JSON::PP' => {
-        'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.07.tar.gz',
+        'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.16.tar.gz',
         'FILES'        => q[cpan/JSON-PP],
     },
 
@@ -695,7 +720,8 @@ use File::Glob qw(:case);
     },
 
     'libnet' => {
-        'DISTRIBUTION' => 'SHAY/libnet-3.13.tar.gz',
+        'DISTRIBUTION' => 'SHAY/libnet-3.15.tar.gz',
+        'SYNCINFO'     => 'yorton on Mon Mar 20 20:48:38 2023',
         'MAIN_MODULE'  => 'Net::Cmd',
         'FILES'        => q[cpan/libnet],
         'EXCLUDED'     => [
@@ -708,27 +734,10 @@ use File::Glob qw(:case);
             qr(^demos/),
             qr(^t/external/),
         ],
-         # https://github.com/steve-m-hay/perl-libnet/pull/45
-        'CUSTOMIZED' => [
-            'lib/Net/Cmd.pm',
-            'lib/Net/Config.pm',
-            'lib/Net/Domain.pm',
-            'lib/Net/FTP.pm',
-            'lib/Net/FTP/A.pm',
-            'lib/Net/FTP/E.pm',
-            'lib/Net/FTP/I.pm',
-            'lib/Net/FTP/L.pm',
-            'lib/Net/FTP/dataconn.pm',
-            'lib/Net/NNTP.pm',
-            'lib/Net/Netrc.pm',
-            'lib/Net/POP3.pm',
-            'lib/Net/SMTP.pm',
-            'lib/Net/Time.pm',
-        ],
     },
 
     'Locale::Maketext' => {
-        'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.29.tar.gz',
+        'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.32.tar.gz',
         'FILES'        => q[dist/Locale-Maketext],
         'EXCLUDED'     => [
             qw(
@@ -749,7 +758,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigInt' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999830.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999837.tar.gz',
         'FILES'        => q[cpan/Math-BigInt],
         'EXCLUDED'     => [
             qr{^xt/},
@@ -763,7 +772,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigInt::FastCalc' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5012.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5013.tar.gz',
         'FILES'        => q[cpan/Math-BigInt-FastCalc],
         'EXCLUDED'     => [
             qr{^inc/},
@@ -788,7 +797,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigRat' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2621.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2624.tar.gz',
         'FILES'        => q[cpan/Math-BigRat],
         'EXCLUDED'     => [
             qr{^xt/},
@@ -803,13 +812,7 @@ use File::Glob qw(:case);
 
     'Math::Complex' => {
         'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
-        'FILES'        => q[cpan/Math-Complex],
-        'CUSTOMIZED'   => [
-            'lib/Math/Complex.pm', # CPAN RT 118467
-            't/Complex.t',         # CPAN RT 118467
-            't/Trig.t',            # CPAN RT 118467
-            't/underbar.t',
-        ],
+        'FILES'        => q[dist/Math-Complex],
         'EXCLUDED'     => [
             qw( t/pod.t
                 t/pod-coverage.t
@@ -818,29 +821,25 @@ use File::Glob qw(:case);
     },
 
     'Memoize' => {
-        'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
+        'DISTRIBUTION' => 'ARISTOTLE/Memoize-1.16.tar.gz',
         'FILES'        => q[cpan/Memoize],
-        'EXCLUDED'     => ['article.html'],
-        'CUSTOMIZED'   => [
-            # CVE-2016-1238
-            qw( Memoize.pm ),
-
-            # CPAN RT 108382
-            qw( t/expmod_t.t t/speed.t ),
-
-            # CPAN RT 139736
-            qw( t/errors.t t/tie_gdbm.t ),
-        ],
+        'EXCLUDED'     => [ qr{^inc/} ],
     },
 
     'MIME::Base64' => {
         'DISTRIBUTION' => 'CAPOEIRAB/MIME-Base64-3.16.tar.gz',
         'FILES'        => q[cpan/MIME-Base64],
         'EXCLUDED'     => [ qr{^xt/}, 'benchmark', 'benchmark-qp', qr{^t/00-report-prereqs} ],
+        'CUSTOMIZED'   => [
+            # https://github.com/Dual-Life/mime-base64/pull/17
+            'Base64.xs',
+            'lib/MIME/Base64.pm'
+        ],
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20220320.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20230320.tar.gz',
+        'SYNCINFO'     => 'yorton on Tue Mar 21 11:46:02 2023',
         'FILES'        => q[dist/Module-CoreList],
     },
 
@@ -871,7 +870,7 @@ use File::Glob qw(:case);
     },
 
     'Net::Ping' => {
-        'DISTRIBUTION' => 'RURBAN/Net-Ping-2.74.tar.gz',
+        'DISTRIBUTION' => 'RURBAN/Net-Ping-2.75.tar.gz',
         'FILES'        => q[dist/Net-Ping],
         'EXCLUDED'     => [
             qr{^\.[awc]},
@@ -885,16 +884,6 @@ use File::Glob qw(:case);
             qw(t/appveyor-test.bat),
 
         ],
-        'CUSTOMIZED' => [
-            qw{
-                t/000_load.t
-                t/001_new.t
-                t/010_pingecho.t
-                t/450_service.t
-                t/500_ping_icmp.t
-                t/501_ping_icmpv6.t
-            }
-        ],
     },
 
     'NEXT' => {
@@ -909,7 +898,7 @@ use File::Glob qw(:case);
     },
 
     'parent' => {
-        'DISTRIBUTION' => 'CORION/parent-0.238.tar.gz',
+        'DISTRIBUTION' => 'CORION/parent-0.241.tar.gz',
         'FILES'        => q[cpan/parent],
         'EXCLUDED'     => [
             qr{^xt}
@@ -939,12 +928,12 @@ use File::Glob qw(:case);
     },
 
     'PerlIO::via::QuotedPrint' => {
-        'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.09.tar.gz',
+        'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.10.tar.gz',
         'FILES'        => q[cpan/PerlIO-via-QuotedPrint],
     },
 
     'Pod::Checker' => {
-        'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.74.tar.gz',
+        'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.75.tar.gz',
         'FILES'        => q[cpan/Pod-Checker],
     },
 
@@ -987,7 +976,7 @@ use File::Glob qw(:case);
     },
 
     'Pod::Usage' => {
-        'DISTRIBUTION' => 'ATOOMIC/Pod-Usage-2.01.tar.gz',
+        'DISTRIBUTION' => 'MAREKR/Pod-Usage-2.03.tar.gz',
         'FILES'        => q[cpan/Pod-Usage],
         'EXCLUDED' => [
             qr{^t/00-},
@@ -996,19 +985,12 @@ use File::Glob qw(:case);
     },
 
     'podlators' => {
-        'DISTRIBUTION' => 'RRA/podlators-4.14.tar.gz',
+        'DISTRIBUTION' => 'RRA/podlators-5.01.tar.gz',
         'MAIN_MODULE'  => 'Pod::Man',
         'FILES'        => q[cpan/podlators pod/perlpodstyle.pod],
         'EXCLUDED'     => [
-            qr{^docs/metadata/},
-        ],
-
-        # https://github.com/rra/podlators/pull/15
-        'CUSTOMIZED' => [
-            't/general/basic.t',
-            't/man/empty.t',
-            't/man/no-encode.t',
-            't/text/invalid.t',
+            qr{^\.github/dependabot\.yml},
+            qr{^\.github/workflows/build\.yaml},
         ],
 
         'MAP' => {
@@ -1024,7 +1006,7 @@ use File::Glob qw(:case);
     },
 
     'Scalar::Util' => {
-        'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.62.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.63.tar.gz',
         'FILES'        => q[cpan/Scalar-List-Utils],
     },
 
@@ -1040,14 +1022,8 @@ use File::Glob qw(:case);
     },
 
     'Socket' => {
-        'DISTRIBUTION' => 'PEVANS/Socket-2.032.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Socket-2.036.tar.gz',
         'FILES'        => q[cpan/Socket],
-        # https://rt.cpan.org/Ticket/Display.html?id=142470&results=b81893fab36c7e48a07b4b763c03731a
-        # maybe others
-        'CUSTOMIZED' => [
-            'Socket.pm',
-            'Socket.xs',
-        ],
     },
 
     'Storable' => {
@@ -1089,7 +1065,7 @@ use File::Glob qw(:case);
     },
 
     'Term::Cap' => {
-        'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz',
+        'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.18.tar.gz',
         'FILES'        => q[cpan/Term-Cap],
     },
 
@@ -1130,7 +1106,9 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302190.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302194.tar.gz',
+        'SYNCINFO'     => 'yorton on Tue Mar 14 13:43:38 2023',
+        'SYNCINFO'     => 'yorton on Mon Mar  6 19:16:42 2023',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -1150,14 +1128,8 @@ use File::Glob qw(:case);
     },
 
     'Text::Balanced' => {
-        'DISTRIBUTION' => 'SHAY/Text-Balanced-2.04.tar.gz',
+        'DISTRIBUTION' => 'SHAY/Text-Balanced-2.06.tar.gz',
         'FILES'        => q[cpan/Text-Balanced],
-        'EXCLUDED'     => [
-            qw( t/97_meta.t
-                t/98_pod.t
-                t/99_pmv.t
-                ),
-        ],
     },
 
     'Text::ParseWords' => {
@@ -1215,7 +1187,6 @@ use File::Glob qw(:case);
             qr{^examples/},
             qw( t/pod.t
                 t/test.pl
-                threads.h
                 ),
         ],
     },
@@ -1225,7 +1196,6 @@ use File::Glob qw(:case);
         'FILES'        => q[dist/threads-shared],
         'EXCLUDED'     => [
             qw( examples/class.pl
-                shared.h
                 t/pod.t
                 t/test.pl
                 ),
@@ -1233,7 +1203,7 @@ use File::Glob qw(:case);
     },
 
     'Tie::File' => {
-        'DISTRIBUTION' => 'TODDR/Tie-File-1.05.tar.gz',
+        'DISTRIBUTION' => 'TODDR/Tie-File-1.07.tar.gz',
         'FILES'        => q[dist/Tie-File],
     },
 
@@ -1271,6 +1241,11 @@ use File::Glob qw(:case);
         'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3401.tar.gz',
         'FILES'        => q[cpan/Time-Piece],
         'EXCLUDED'     => [ qw[reverse_deps.txt] ],
+        'CUSTOMIZED'   => [
+            # https://github.com/Dual-Life/Time-Piece/pull/64
+            'Piece.pm',
+            'Piece.xs'
+         ],
     },
 
     'Unicode::Collate' => {
@@ -1316,7 +1291,9 @@ use File::Glob qw(:case);
         # to delete an entire block out of lib/version.pm, since that code is
         # only necessary with the CPAN release.
         'CUSTOMIZED'   => [
-            'lib/version.pm'
+            'lib/version.pm',
+
+            't/07locale.t'
          ],
 
         'MAP' => {
@@ -1335,7 +1312,7 @@ use File::Glob qw(:case);
     },
 
     'Win32' => {
-        'DISTRIBUTION' => "JDB/Win32-0.58.tar.gz",
+        'DISTRIBUTION' => "JDB/Win32-0.59.tar.gz",
         'FILES'        => q[cpan/Win32],
     },
 
@@ -1468,6 +1445,7 @@ use File::Glob qw(:case);
                 lib/Time/tm.pm
                 lib/UNIVERSAL.pm
                 lib/Unicode/README
+                lib/Unicode/testnorm.t
                 lib/Unicode/UCD.{pm,t}
                 lib/User/grent.{pm,t}
                 lib/User/pwent.{pm,t}
@@ -1512,9 +1490,16 @@ use File::Glob qw(:case);
     },
 );
 
+
 # legacy CPAN flag
-for ( values %Modules ) {
-    $_->{CPAN} = !!$_->{DISTRIBUTION};
+for my $mod_name ( keys %Modules ) {
+    my $data = $Modules{$mod_name};
+    $data->{CPAN} = !!$data->{DISTRIBUTION};
+    my (@files)= split /\s+/, $data->{FILES};
+    if (@files and $files[0]=~s!^(cpan|dist)/!!) {
+        $DistName{$files[0]} = $mod_name;
+        $DistName{"$1/$files[0]"} = $mod_name;
+    }
 }
 
 # legacy UPSTREAM flag
Index: gnu/usr.bin/perl/Porting/README.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/README.pod,v
diff -u -p -a -u -p -r1.6 README.pod
--- gnu/usr.bin/perl/Porting/README.pod	15 Feb 2023 01:36:14 -0000	1.6
+++ gnu/usr.bin/perl/Porting/README.pod	21 Feb 2024 15:47:00 -0000
@@ -37,12 +37,6 @@ number in various files within the perl 
 
 Check source code for ANSI-C violations.
 
-=head2 F<checkAUTHORS.pl>
-
-Used by F<t/porting/authors.t> to ensure the F<AUTHORS> list is up to
-date. See also L<< /"F<updateAUTHORS.pl>" >> for a way to automatically
-fix issues found by this tool.
-
 =head2 F<checkcfguse.pl>
 
 Check where the symbols defined in the various F<config.sh>-clones
@@ -146,6 +140,11 @@ The charter of the Perl Documentation Te
 
 List of Perl release epigraphs.
 
+=head2 F<exclude_contrib.txt>
+
+List of base 64 encoded SHA256 digests of C<< "name <email>" >> data
+which should be ignored by F<updateAUTHORS.pl>.
+
 =head2 F<exec-bit.txt>
 
 This file contains a list of files that F<makerel> will ensure get an
@@ -360,6 +359,11 @@ and case are ignored, as explained in L<
 
 Script to help out with syncing cpan distros.
 
+=head2 F<test-dist-modules.pl>
+
+Test modules in F<dist/> against the perl in C<PATH>.  Used in the
+github workflow to test against older perls.
+
 =head2 F<timecheck2.c>
 
 A little program to test the limits of your system's time functions. See
@@ -381,10 +385,15 @@ any previous attempts.
 =head2 F<updateAUTHORS.pl>
 
 This script will automatically update AUTHORS and create .mailmap entries
-based on the git commit log history. If F<checkAUTHORS.pl> complains
+based on the git commit log history. If F<t/porting/authors.t> complains
 during testing you should run this. It will automatically fix most if not
 all AUTHORS related test fails.
 
+=head2 F<updateAUTHORS.pm>
+
+The class used by F<updateAUTHORS.pl> to do its business. Package name
+C<Porting::updateAUTHORS>.
+
 =head2 F<valgrindpp.pl>
 
 A post-processor for C<make test.valgrind>.  F<valgrindpp.pl> is a
@@ -398,4 +407,3 @@ leaks.
 Guide for Vote Administrators for running Steering Council elections.
 
 =cut
-
Index: gnu/usr.bin/perl/Porting/acknowledgements.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/acknowledgements.pl,v
diff -u -p -a -u -p -r1.1.1.5 acknowledgements.pl
--- gnu/usr.bin/perl/Porting/acknowledgements.pl	15 Feb 2023 01:33:12 -0000	1.1.1.5
+++ gnu/usr.bin/perl/Porting/acknowledgements.pl	21 Feb 2024 15:47:00 -0000
@@ -163,5 +163,5 @@ sub commify {
 # returns a list of the authors
 sub authors {
     return
-        qx(git log --pretty=fuller $since_until | $^X Porting/checkAUTHORS.pl --who -);
+        qx($^X Porting/updateAUTHORS.pl --who $since_until);
 }
Index: gnu/usr.bin/perl/Porting/bench.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/bench.pl,v
diff -u -p -a -u -p -r1.4 bench.pl
--- gnu/usr.bin/perl/Porting/bench.pl	15 Feb 2023 01:36:14 -0000	1.4
+++ gnu/usr.bin/perl/Porting/bench.pl	21 Feb 2024 15:47:00 -0000
@@ -902,22 +902,22 @@ sub parse_cachegrind {
             die "Error: while executing $id:\n"
               . "unexpected code or cachegrind output:\n$_\n";
         }
-        if (/I   refs:\s+([\d,]+)/) {
+        if (/I\s+refs:\s+([\d,]+)/) {
             $res{Ir} = $1;
         }
-        elsif (/I1  misses:\s+([\d,]+)/) {
+        elsif (/I1\s+misses:\s+([\d,]+)/) {
             $res{Ir_m1} = $1;
         }
-        elsif (/LLi misses:\s+([\d,]+)/) {
+        elsif (/LLi\s+misses:\s+([\d,]+)/) {
             $res{Ir_mm} = $1;
         }
-        elsif (/D   refs:\s+.*?([\d,]+) rd .*?([\d,]+) wr/) {
+        elsif (/D\s+refs:\s+.*?([\d,]+) rd .*?([\d,]+) wr/) {
             @res{qw(Dr Dw)} = ($1,$2);
         }
-        elsif (/D1  misses:\s+.*?([\d,]+) rd .*?([\d,]+) wr/) {
+        elsif (/D1\s+misses:\s+.*?([\d,]+) rd .*?([\d,]+) wr/) {
             @res{qw(Dr_m1 Dw_m1)} = ($1,$2);
         }
-        elsif (/LLd misses:\s+.*?([\d,]+) rd .*?([\d,]+) wr/) {
+        elsif (/LLd\s+misses:\s+.*?([\d,]+) rd .*?([\d,]+) wr/) {
             @res{qw(Dr_mm Dw_mm)} = ($1,$2);
         }
         elsif (/Branches:\s+.*?([\d,]+) cond .*?([\d,]+) ind/) {
@@ -1185,7 +1185,7 @@ sub grind_run {
                         $envstr .= "$_=$env->{$_} " for sort keys %$env;
                     }
                     my $cmd = "PERL_HASH_SEED=0 $envstr"
-                            . "valgrind --tool=cachegrind  --branch-sim=yes "
+                            . "valgrind --tool=cachegrind  --branch-sim=yes --cache-sim=yes "
                             . "--cachegrind-out-file=/dev/null "
                             . "$OPTS{grindargs} "
                             . "$perl $OPTS{perlargs} $args - $counts->[$j] 2>&1";
Index: gnu/usr.bin/perl/Porting/bisect-runner.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/bisect-runner.pl,v
diff -u -p -a -u -p -r1.5 bisect-runner.pl
--- gnu/usr.bin/perl/Porting/bisect-runner.pl	15 Feb 2023 01:36:14 -0000	1.5
+++ gnu/usr.bin/perl/Porting/bisect-runner.pl	21 Feb 2024 15:47:00 -0000
@@ -54,39 +54,56 @@ my %defines =
 push @paths, qw(/usr/local/lib /lib /usr/lib)
         unless $linux64;
 
-unless(GetOptions(\%options,
-                  'target=s', 'make=s', 'jobs|j=i', 'crash', 'expect-pass=i',
-                  'expect-fail' => sub { $options{'expect-pass'} = 0; },
-                  'clean!', 'one-liner|e=s@', 'c', 'l', 'w', 'match=s',
-                  'no-match=s' => sub {
-                      $options{match} = $_[1];
-                      $options{'expect-pass'} = 0;
-                  },
-                  'force-manifest', 'force-regen', 'setpgrp!', 'timeout=i',
-                  'test-build', 'validate',
-                  'all-fixups', 'early-fixup=s@', 'late-fixup=s@', 'valgrind',
-                  'check-args', 'check-shebang!', 'usage|help|?', 'gold=s',
-                  'module=s', 'with-module=s', 'cpan-config-dir=s',
-                  'test-module=s', 'no-module-tests',
-                  'A=s@',
-                  'D=s@' => sub {
-                      my (undef, $val) = @_;
-                      if ($val =~ /\A([^=]+)=(.*)/s) {
-                          $defines{$1} = length $2 ? $2 : "\0";
-                      } else {
-                          $defines{$val} = '';
-                      }
-                  },
-                  'U=s@' => sub {
-                      $defines{$_[1]} = undef;
-                  },
-		 )) {
-    pod2usage(exitval => 255, verbose => 1);
-}
+my $rv = GetOptions(
+    \%options,
+    'target=s', 'make=s', 'jobs|j=i', 'crash', 'expect-pass=i',
+    'expect-fail' => sub { $options{'expect-pass'} = 0; },
+    'clean!', 'one-liner|e=s@', 'c', 'l', 'w', 'match=s',
+    'no-match=s' => sub {
+        $options{match} = $_[1];
+        $options{'expect-pass'} = 0;
+    },
+    'force-manifest', 'force-regen', 'setpgrp!', 'timeout=i',
+    'test-build', 'validate',
+    'all-fixups', 'early-fixup=s@', 'late-fixup=s@', 'valgrind',
+    'check-args', 'check-shebang!', 'usage|help|?', 'gold=s',
+    'module=s', 'with-module=s', 'cpan-config-dir=s',
+    'test-module=s', 'no-module-tests',
+    'A=s@',
+    'D=s@' => sub {
+        my (undef, $val) = @_;
+        if ($val =~ /\A([^=]+)=(.*)/s) {
+            $defines{$1} = length $2 ? $2 : "\0";
+        } else {
+            $defines{$val} = '';
+        }
+    },
+    'U=s@' => sub {
+        $defines{$_[1]} = undef;
+    },
+);
+exit 255 unless $rv;
 
 my ($target, $match) = @options{qw(target match)};
 
-@ARGV = ('sh', '-c', 'cd t && ./perl TEST base/*.t')
+# El Capitan (OS X 10.11) (and later) strip DYLD_LIBRARY_PATH
+# from the environment of /bin/sh
+# https://developer.apple.com/library/archive/documentation/Security/Conceptual/System_Integrity_Protection_Guide/RuntimeProtections/RuntimeProtections.html
+#
+# (They *could* have chosen instead to ignore it and pass it through. It would
+# have the same direct effect, but maybe needing more coding. I suspect the
+# choice to strip it was deliberate, as it will also eliminate a bunch more
+# attack vectors, because it prevents you sneaking an override "into" something
+# else you convince the user to run.)
+
+my $aggressive_apple_security = "";
+if ($^O eq 'darwin') {
+    require Cwd;
+    my $cwd = quotemeta Cwd::getcwd();
+    $aggressive_apple_security = "DYLD_LIBRARY_PATH=$cwd ";
+}
+
+@ARGV = ('sh', '-c', "cd t && $aggressive_apple_security./perl TEST base/*.t")
     if $options{validate} && !@ARGV;
 
 pod2usage(exitval => 0, verbose => 2) if $options{usage};
@@ -123,7 +140,7 @@ if (defined $target && $target =~ /\.t\z
     unless ($target =~ s!\At/!!) {
         $target = "../$target";
     }
-    @ARGV = ('sh', '-c', "cd t && ./perl TEST " . quotemeta $target);
+    @ARGV = ('sh', '-c', "cd t && $aggressive_apple_security./perl TEST " . quotemeta $target);
     $target = 'test_prep';
 }
 
@@ -844,6 +861,29 @@ Display the usage information and exit.
 
 =back
 
+=head1 ABOUT BISECTION
+
+The process is all about identifying the commit that caused some change
+in behaviour - maybe good, maybe bad. But it is built around C<git bisect>,
+which is much more specifically aimed at finding "what broke the build".
+C<git> terminology embeds that assumption - commits earlier than the
+target commit are "good" commits, those at or later than the target commit
+are "bad" commits.
+
+The default behaviour of F<bisect.pl> mimics this - you supply some code
+that I<fails> with a perl built B<at or after> the target commit and
+I<succeeds> with a perl built B<before> the target commit, and F<bisect.pl>
+will find the target commit.
+
+The F<bisect.pl> option C<--expect-fail> reverses those expectations
+(and changes nothing else). So with C<--expect-fail>, you should supply
+code that I<fails> only with a perl built B<before> the target commit,
+and I<succeeds> with a perl built B<at or after> the target commit.
+
+By default, I<failure> is a piece of perl code that terminates with
+a non-zero exit code, e.g. by calling C<die()>. Options that change what
+is interpreted as failure include C<--crash>, C<--test-build> and C<--match>.
+
 =head1 EXAMPLES
 
 =head2 Code has started to crash under C<miniperl>
@@ -1062,6 +1102,90 @@ L<Commit 125e1a3|https://github.com/Perl
 
 =back
 
+=head2 When did perl stop segfaulting on certain code?
+
+=over 4
+
+=item * Problem
+
+It was reported that perl was segfaulting on this code in perl-5.36.0:
+
+    @a = sort{eval"("}1,2
+
+Bisection subsequently identified the commit at which the segfaulting first
+appeared.  But when we ran that code against what was then the HEAD of blead
+(L<Commit 70d911|https://github.com/Perl/perl5/commit/70d911984f>), we got no
+segfault.  So the next question we faced was: At what commit did the
+segfaulting cease?
+
+=item * Solution
+
+Because the code in question loaded no libraries, it was amenable to bisection
+with C<miniperl>, thereby shortening bisection time considerably.
+
+    perl Porting/bisect.pl \
+        --start=v5.36.0 \
+        --target=miniperl \
+        --expect-fail -e '@a = sort{eval"("}1,2'
+
+=item * Reference
+
+L<GH issue 20261|https://github.com/Perl/perl5/issues/20261>
+
+=back
+
+=head2 When did perl stop emitting warnings when running on certain code?
+
+=over 4
+
+=item * Background
+
+Most of the time, we bisect in order to identify the first "bad" commit:  the
+first time code failed to compile; the first time the code emitted warnings;
+and so forth.
+
+Some times, however, we want to identify the first "good" commit:  the point
+where the code began to compile; the point where the code no longer emitted
+warnings; etc.
+
+We can use this program for that purpose, but we have to reverse our sense of
+"good" and "bad" commits.  We use the C<--expect-fail> option to do that
+reversal.
+
+=item * Problem
+
+It was reported that in an older version of Perl, a warning was being emitted
+when a program was using the F<bigrat> module and
+C<Scalar::Util::looks_like_number()> was called passing a non-integral number
+(I<i.e.,> a rational).
+
+    $ perl -wE 'use Scalar::Util; use bigrat;
+      say "mercy" if Scalar::Util::looks_like_number(1/9);'
+
+In perl-5.32, this emitted:
+
+    $ Argument "1/9" isn't numeric in addition (+) at
+      /usr/local/lib/perl5/5.32/Math/BigRat.pm line 1955.
+      mercy
+
+But it was observed that there was no warning in perl-5.36.
+
+=item * Solution
+
+    $ perl Porting/bisect.pl \
+        --start=5624cfff8f \
+        --end=b80b9f7fc6 \
+        --expect-fail \
+        -we 'use Scalar::Util; use bigrat; my @w;
+            local $SIG{__WARN__} = sub { die };
+            print "mercy\n" if Scalar::Util::looks_like_number(1/9)'
+
+=item * Reference
+
+L<GH issue 20685|https://github.com/Perl/perl5/issues/20685>
+
+=back
+
 =cut
 
 # Ensure we always exit with 255, to cause git bisect to abort.
@@ -1226,9 +1350,11 @@ sub extract_from_file {
 
 sub edit_file {
     my ($file, $munger) = @_;
-    local $/;
     my $fh = open_or_die($file);
-    my $orig = <$fh>;
+    my $orig = do {
+        local $/;
+        <$fh>;
+    };
     die_255("Can't read $file: $!") unless defined $orig && close $fh;
     my $new = $munger->($orig);
     return if $new eq $orig;
@@ -1379,7 +1505,9 @@ sub apply_patch {
     my ($patch, $what, $files) = @_;
     $what = 'patch' unless defined $what;
     unless (defined $files) {
-        $patch =~ m!^--- [ab]/(\S+)\n\+\+\+ [ba]/\1!sm;
+        # Handle context diffs (*** ---) and unified diffs (+++ ---)
+        # and ignore trailing "garbage" after the filenames
+        $patch =~ m!^[-*]{3} [ab]/(\S+)[^\n]*\n[-+]{3} [ba]/\1!sm;
         $files = " $1";
     }
     my $patch_to_use = placate_patch_prog($patch);
@@ -1582,6 +1710,7 @@ if ($options{'all-fixups'}) {
     patch_SH();
     patch_C();
     patch_ext();
+    patch_t();
 }
 apply_fixups($options{'early-fixup'});
 
@@ -1623,8 +1752,11 @@ unless (extract_from_file('Configure', '
     $defines{libs} = \@libs unless exists $defines{libs};
 }
 
+# a4f3eea9be6bcf3c added a test for GNU libc to Configure
+# Prior to that we really don't get much choice but to force usenm off
+# everywhere (and modern systems are fast enough that this doesn't matter)
 $defines{usenm} = undef
-    if $major < 2 && !exists $defines{usenm};
+    if $major < 4 && !exists $defines{usenm};
 
 my ($missing, $created_dirs);
 ($missing, $created_dirs) = force_manifest()
@@ -1692,8 +1824,10 @@ if ($target =~ /config\.s?h/) {
 
     run_report_and_exit(@ARGV);
 } elsif (!-f 'config.sh') {
-    # Skip if something went wrong with Configure
+    report_and_exit(undef, 'PLEASE REPORT BUG', 'could not build', 'config.sh')
+        if $options{'test-build'};
 
+    # Skip if something went wrong with Configure
     skip('could not build config.sh');
 }
 
@@ -1710,6 +1844,7 @@ if($options{'force-regen'}
 unless ($options{'all-fixups'}) {
     patch_C();
     patch_ext();
+    patch_t();
 }
 
 # Parallel build for miniperl is safe
@@ -2156,6 +2291,124 @@ index 53649d5..0635a6e 100755
 EOPATCH
     }
 
+    if ($major < 4 && extract_from_file('Configure',
+                                        qr/: see which flavor of setpgrp is in use/)) {
+        edit_file('Configure', sub {
+                      my $code = shift;
+                      my $new = <<'EOT';
+if $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1; then
+EOT
+                      chomp $new;
+
+                      # before commit ecfc54246c2a6f42:
+                      # before commit 8e07c86ebc651fe9:
+                      my @old = (<<'EOT', <<'EOT');
+if $cc $ccflags -o set $ldflags set.c $libs >/dev/null 2>&1; then
+EOT
+if $cc $ccflags -o set set.c $ldflags $libs >/dev/null 2>&1; then
+EOT
+                      for my $was (@old) {
+                          # Yes, this modifies @old. No problem here:
+                          chomp $was;
+                          $was = quotemeta $was;
+                          $code =~ s/$was/$new/;
+                      }
+
+                      # also commit ecfc54246c2a6f42:
+                      $code =~ s!\tif usg; then!\tif ./usg; then!;
+
+                      return $code;
+                  });
+
+        # We need the new probe from 2afac517c48c20de, which has prototypes
+        # (but include the various C headers unconditionally)
+        apply_patch(<<'EOPATCH');
+diff --git a/Configure b/Configure
+index 18f2172435..5a75ebd767 100755
+--- a/Configure
++++ b/Configure
+@@ -4986,45 +5055,61 @@ eval $inlibc
+ set setpgrp d_setpgrp
+ eval $inlibc
+ 
+-: see which flavor of setpgrp is in use
++echo "Checking to see which flavor of setpgrp is in use . . . "
+ case "$d_setpgrp" in
+ "$define")
+ 	echo " "
+ 	$cat >set.c <<EOP
++#include <stdio.h>
++#include <sys/types.h>
++#include <unistd.h>
+ main()
+ {
+ 	if (getuid() == 0) {
+ 		printf("(I see you are running Configure as super-user...)\n");
+ 		setuid(1);
+ 	}
++#ifdef TRY_BSD_PGRP
+ 	if (-1 == setpgrp(1, 1))
+-		exit(1);
+-	exit(0);
++		exit(0);
++#else
++	if (setpgrp() != -1)
++		exit(0);
++#endif
++	exit(1);
+ }
+ EOP
+-	if $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1; then
+-		./set 2>/dev/null
+-		case $? in
+-		0) echo "You have to use setpgrp() instead of setpgrp(pid, pgrp)." >&4
+-			val="$undef";;
+-		*) echo "You have to use setpgrp(pid, pgrp) instead of setpgrp()." >&4
+-			val="$define";;
+-		esac
++	if $cc -DTRY_BSD_PGRP $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
++		echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
++		val="$define"
++	elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
++		echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
++		val="$undef"
+ 	else
++		echo "I can't seem to compile and run the test program."
+ 		if ./usg; then
+-			xxx="USG one, i.e. you use setpgrp()."
+-			val="$undef"
++			xxx="a USG one, i.e. you use setpgrp()."
+ 		else
+-			xxx="BSD one, i.e. you use setpgrp(pid, pgrp)."
+-			val="$define"
++			# SVR4 systems can appear rather BSD-ish.
++			case "$i_unistd" in
++			$undef)
++				xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)."
++				val="$define"
++				;;
++			$define)
++				xxx="probably a USG one, i.e. you use setpgrp()."
++				val="$undef"
++				;;
++			esac
+ 		fi
+-		echo "Assuming your setpgrp is a $xxx" >&4
++		echo "Assuming your setpgrp is $xxx" >&4
+ 	fi
+ 	;;
+ *) val="$undef";;
+ esac
+-set d_bsdpgrp
++set d_bsdsetpgrp
+ eval $setvar
++d_bsdpgrp=$d_bsdsetpgrp
+ $rm -f set set.c
+ 
+ : see if bzero exists
+EOPATCH
+    }
+
     if ($major == 4 && extract_from_file('Configure', qr/^d_gethbynam=/)) {
         # Fixes a bug introduced in 4599a1dedd47b916
         apply_commit('3cbc818d1d0ac470');
@@ -2227,6 +2480,76 @@ EOPATCH
         }
     }
 
+    if ($major < 5) {
+        my $what = extract_from_file('Configure', qr!(\s+)return __libc_main!);
+        if ($what) {
+            # To add to the fun commit commit dfe9444ca7881e71 in Feb 1988
+            # changed several things:
+            if ($what !~ /\t/) {
+                apply_patch(<<'EOPATCH');
+--- a/Configure
++++ b/Configure
+@@ -3854,11 +3911,12 @@ n) echo "OK, that should do.";;
+ int
+ main()
+ {
+-  return __libc_main();
++	return __libc_main();
+ }
+ EOM
+-if $cc $ccflags $ldflags -o gnulibc gnulibc.c $libs >/dev/null 2>&1 && \
+-    ./gnulibc | $contains '^GNU C Library' >/dev/null 2>&1; then
++set gnulibc
++if eval $compile && \
++  ./gnulibc | $contains '^GNU C Library' >/dev/null 2>&1; then
+ 	val="$define"
+ 	echo "You are using the GNU C Library"
+ else
+EOPATCH
+            }
+
+            # And commit dc45a647708b6c54 tweaks 1 line in April 1998
+            edit_file('Configure', sub {
+                          my $code = shift;
+                          $code =~ s{contains '\^GNU C Library' >/dev/null 2>&1; then}
+                                    {contains '^GNU C Library'; then};
+                          return $code;
+                      });
+
+            # This is part of aebf16e7cdbc86ec from June 1998
+            # but with compiles_ok inlined
+            apply_patch(<<'EOPATCH');
+diff --git a/Configure b/Configure
+index 38072f0e5e..43735feacf 100755
+--- a/Configure
++++ b/Configure
+@@ -4024,15 +4024,19 @@ $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;'
+ echo " "
+ echo "Checking for GNU C Library..." >&4
+ cat >gnulibc.c <<EOM
++#include <stdio.h>
+ int
+ main()
+ {
+-	return __libc_main();
++#ifdef __GLIBC__
++    exit(0);
++#else
++    exit(1);
++#endif
+ }
+ EOM
+ set gnulibc
+-if eval $compile && \
+-  ./gnulibc | $contains '^GNU C Library'; then
++if $cc $ccflags $ldflags -o gnulibc gnulibc.c $libs && ./gnulibc; then
+ 	val="$define"
+ 	echo "You are using the GNU C Library"
+ else
+EOPATCH
+        }
+    }
+
     if ($major < 6 && !extract_from_file('Configure',
                                          qr!^\t-A\)$!)) {
         # This adds the -A option to Configure, which is incredibly useful
@@ -2325,6 +2648,18 @@ index 4b55fa6..60c3c64 100755
 EOPATCH
     }
 
+    if ($major < 6) {
+        edit_file('Configure', sub {
+                      my $code = shift;
+                      # This will cause a build failure, but it will stop
+                      # Configure looping endlessly trying to get a different
+                      # answer:
+                      $code =~ s{(dflt=)n(\n\s+rp="Function \$ans does not exist)}
+                                {$1y$2};
+                      return $code;
+                  });
+    }
+
     if ($major < 8 && $^O eq 'aix') {
         edit_file('Configure', sub {
                       my $code = shift;
@@ -2353,18 +2688,120 @@ EOPATCH
                   });
     }
 
-    if ($major == 8 || $major == 9) {
+    if ($major < 32) {
+        edit_file('Configure', sub {
+                      my $code = shift;
+
+                      # A lot of the probes used to be written assuming no need
+                      # for prototypes for exit(), printf() etc.
+                      # Curiously also the code was written to call exit()
+                      # rather than return from main - early portability?
+                      #
+                      # Commit 55954f198635e488 did most of the work in ensuring
+                      # that there was always a prototype for exit, by adding
+                      # #include <stdlib.h> in many probes. However the last
+                      # missing prototype was only addressed by f16c94bc75aefb81
+                      # (for futimes), and the last missing prototypes a few
+                      # commits later in f82f0f36c7188b6d
+                      #
+                      # As an aside, commit dc45a647708b6c54 fixes the signal
+                      # name probe (etc) - the commit tagged as perl-5.004_01
+                      # *seems* to fix the signal name probe, but actually it
+                      # fixes an error in the fallback awk code, not the C
+                      # probe's missing prototype.
+                      #
+                      # With current C compilers there is no correctness risk
+                      # from including a header more than once, so the easiest
+                      # approach to making this all work is to add includes
+                      # "to be sure to be sure"
+                      #
+                      # The trick is not to break *working* probes by
+                      # accidentally including a header *within* a construction.
+                      # So we need to have some confidence that it's the start
+                      # of a file (or somewhere safe)
+
+                      my $headers = <<'EOFIX';
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+EOFIX
+
+                      # This handles $cat and plain cat:
+                      $code =~ s{([\$\t\n ]cat > *[a-z0-9]+\.c <<[^\n]*\n)}
+                                {$1$headers}g;
+                      # Of course, there's always one that's backwards:
+                      $code =~ s{([\$\t\n ]cat <<[^\n]* > *[a-z0-9]+\.c\n)}
+                                {$1$headers}g;
+
+                      # and >> used to *create* a file.
+                      # We have to be careful to distinguish those from >> used
+                      # to append to a file. All the first lines have #include
+                      # or #ifdef. Except the few that don't...
+                      $code =~ s{
+                                    ([\$\t\n ]cat\ >>\ *[a-z]+\.c\ <<[^\n]*\n)
+                                    (
+                                        # #include/#ifdef ...
+                                        \#
+                                    |
+                                        # The non-blocking IO probe
+                                        (?:int\ )?main\(\)
+                                    |
+                                        # The alignment constraint probe
+                                        struct\ foobar
+                                    )
+                                }
+                                {$1$headers$2}gx;
+
+                      # This is part of commit c727eafaa06ca49a:
+                      $code =~ s{\(int\)exit\(0\);}
+                                {\(void\)exit\(0\);};
+
+                      return $code;
+                  });
+    }
+
+    if ($major < 10) {
         # Fix symbol detection to that of commit 373dfab3839ca168 if it's any
         # intermediate version 5129fff43c4fe08c or later, as the intermediate
         # versions don't work correctly on (at least) Sparc Linux.
         # 5129fff43c4fe08c adds the first mention of mistrustnm.
         # 373dfab3839ca168 removes the last mention of lc=""
+        #
+        # Fix symbol detection prior to 5129fff43c4fe08c to use the same
+        # approach, where we don't call printf without a prototype
+        # We can't include <stdio.h> to get its prototype, as the way this works
+        # is to create a (wrong) prototype for the probed functions, and those
+        # conflict if the function in question is in stdio.h.
         edit_file('Configure', sub {
                       my $code = shift;
                       return $code
                           if $code !~ /\btc="";/; # 373dfab3839ca168 or later
-                      return $code
-                          if $code !~ /\bmistrustnm\b/; # before 5129fff43c4fe08c
+                      if ($code !~ /\bmistrustnm\b/) {
+                          # doing this as a '' heredoc seems to be the easiest
+                          # way to avoid confusing levels of backslashes:
+                          my $now = <<'EOT';
+void *(*(p()))$tdc { extern void *$1$tdc; return &$1; } int main() { if(p()) return(0); else return(1); }
+EOT
+                          chomp $now;
+
+                          # before 5129fff43c4fe08c
+                          # befure 16d20bd98cd29be7
+                          my @old = (<<'EOT', <<'EOT');
+main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }
+EOT
+main() { extern int $1$tdc; printf(\"%d\", $1$tc); }
+EOT
+                          for my $was (@old) {
+                              chomp $was;
+                              $was = quotemeta $was;
+
+                              # Prior to commit d674cd6de52ff38b there was no
+                              # 'int ' for 'int main'
+                              $code =~ s/(?:int )?$was/$now/;
+                          }
+                          return $code;
+                      }
+
                       my $fixed = <<'EOC';
 
 : is a C symbol defined?
@@ -2450,6 +2887,13 @@ index 3d2e8b9..6ce7766 100755
  
 EOPATCH
     }
+
+    if ($major < 38 && !extract_from_file('Configure', qr/Too many attempts asking the same question/)) {
+        # Without this, myread can loop infinitely trying to get a valid answer,
+        # and hence Configure gets stuck in a loop, outputting the same question
+        # repeatedly. This isn't what we need.
+        apply_commit('46bfb3c49f22629a');
+    }
 }
 
 sub patch_hints {
@@ -2508,6 +2952,66 @@ sub patch_hints {
                       return $code;
                   });
         }
+
+        if ($major < 8 ||
+                ($major < 10 && !extract_from_file('ext/DynaLoader/Makefile.PL',
+                                                   qr/sub MY::static /))) {
+            edit_file('hints/darwin.sh', sub {
+                          my $code = shift;
+                          # As above, the build fails if version of code in op.o
+                          # is linked to, instead of opmini.o
+                          # We don't need this after commit 908fcb8bef8cbab8,
+                          # which moves DynaLoader.o into the shared perl
+                          # library, as it *also* redoes the build so that
+                          # miniperl is linked against all the object files
+                          # (explicitly excluding op.o), instead of against the
+                          # shared library (and reyling on "flat namespaces"
+                          # - ie make Mach-O behave like ELF - to end up with
+                          # objects in the library linking against opmini.o)
+                          $code .= <<'EOHACK';
+
+# Force a flat namespace everywhere:
+echo $ldflags | grep flat_namespace || ldflags=`echo \$lddflags -flat_namespace`
+echo $lddlflags | grep flat_namespace || lddlflags=`echo \$lddlflags -flat_namespace`
+EOHACK
+                          return $code;
+                      });
+        }
+
+        if ($major < 16) {
+            edit_file('hints/darwin.sh', sub {
+                          my $code = shift;
+                          # This is commit 60a655a1ee05c577
+                          $code =~ s/usenm='true'/usenm='false'/;
+
+                          # With the Configure probes fixed (in patch_Configure)
+                          # the "d_stdstdio" logic now concludes "define".
+                          # Unfortunately that is not correct - attempting to
+                          # build 5.8.0 without this override results in SEGVs
+                          # or similar chaos.
+                          #
+                          # The problem is introduced by commit 5a3a8a022aa61cba
+                          # which enables perlio by default.
+                          # The problem is hidden after 15b61c98f82f3010, which
+                          # adds "d_faststdio" and defaults it to "undef" from
+                          # that commit onwards, but override that and the build
+                          # would break, up until "turning off perlio" was
+                          # disabled by commit dd35fa16610ef2fa
+                          $code .= "\nd_stdstdio='undef'\n";
+
+                          return $code;
+                      });
+        }
+
+        if ($major < 34) {
+            edit_file('hints/darwin.sh', sub {
+                      my $code = shift;
+                      # This is commits aadc6422eaec39c2 and 54d41b60822734cf
+                      # rolled into one:
+                      $code =~ s/    10\.\*(?: \| 11\.\*)?\)/    [1-9][0-9].*)/g;
+                      return $code;
+                  });
+        }
     } elsif ($^O eq 'netbsd') {
         if ($major < 6) {
             # These are part of commit 099685bc64c7dbce
@@ -2922,6 +3426,15 @@ $2!;
         }
     }
 
+    if ($major == 3) {
+        # This is part of commit f0efd8cf98c95b42:
+        edit_file('Makefile.SH', sub {
+                      my $code = shift;
+                      $code =~ s/<<!NO!SUBS!/<<'!NO!SUBS!'/;
+                      return $code;
+                  });
+    }
+
     if ($major == 7) {
         # Remove commits 9fec149bb652b6e9 and 5bab1179608f81d8, which add/amend
         # rules to automatically run regen scripts that rebuild C headers. These
@@ -2941,6 +3454,38 @@ $2!;
         }
     }
 
+    if ($^O eq 'darwin' && ($major < 8
+                                || ($major < 10
+                                    && !extract_from_file('ext/DynaLoader/Makefile.PL',
+                                                          qr/sub MY::static /)))) {
+        my $cwd = Cwd::getcwd();
+        my $wrapper = 'miniperl.sh';
+        my $fh = open_or_die($wrapper, '>');
+        print $fh <<"EOT";
+#!/bin/sh
+${aggressive_apple_security}exec $cwd/miniperl "\$\@"
+EOT
+        close_or_die($fh);
+        chmod 0755, $wrapper
+            or die "Couldn't chmod 0755 $wrapper: $!";
+
+        edit_file('ext/util/make_ext', sub {
+                      my $code = shift;
+                      # This is shell expansion syntax
+                      $code =~ s{ (\.\./\$depth/miniperl) }
+                                { $1.sh };
+                      # This is actually the same line as edited above.
+                      # We need this because (yay), without this EU::MM will
+                      # default to searching for a working perl binary
+                      # (sensible plan) but due to macOS stripping
+                      # DYLD_LIBRARY_PATH during system(...), .../miniperl
+                      # (as found from $^X) *isn't* going to work.
+                      $code =~ s{ (Makefile\.PL INSTALLDIRS=perl) }
+                                { $1 PERL=\.\./\$depth/miniperl.sh };
+                      return $code;
+                  });
+    }
+
     if ($^O eq 'aix' && $major >= 8 && $major < 28
         && extract_from_file('Makefile.SH', qr!\Q./$(MINIPERLEXP) makedef.pl\E.*aix!)) {
         # This is a variant the AIX part of commit 72bbce3da5eeffde:
@@ -2999,6 +3544,23 @@ sub patch_C {
     # This is ordered by $major, as it's likely that different platforms may
     # well want to share code.
 
+    if ($major == 0) {
+        apply_patch(<<'EOPATCH');
+diff --git a/proto.h b/proto.h
+index 9ffc6bbabc..16da198342 100644
+--- a/proto.h
++++ b/proto.h
+@@ -8,6 +8,7 @@
+ #endif
+ #ifdef OVERLOAD
+ SV*	amagic_call _((SV* left,SV* right,int method,int dir));
++bool Gv_AMupdate _((HV* stash));
+ #endif /* OVERLOAD */
+ OP*	append_elem _((I32 optype, OP* head, OP* tail));
+ OP*	append_list _((I32 optype, LISTOP* first, LISTOP* last));
+EOPATCH
+    }
+
     if ($major == 2 && extract_from_file('perl.c', qr/^\tfclose\(e_fp\);$/)) {
         # need to patch perl.c to avoid calling fclose() twice on e_fp when
         # using -e
@@ -3087,6 +3649,36 @@ index 4608a2a..f0c9d1d 100644
 EOPATCH
     }
 
+    # _(( was the macro wrapper for hiding ANSI prototypes from K&R C compilers:
+    if ($major == 3 && !extract_from_file('proto.h', qr/\bsafemalloc\s+_\(\(/)) {
+        # This is part of commit bbce6d69784bf43b:
+        # [inseparable changes from patch from perl5.003_08 to perl5.003_09]
+        # This only affects a few versions, but without this safemalloc etc get
+        # an implicit return type (of int), and that is truncating addresses on
+        # 64 bit systems. (And these days, seems that x86_64 linux has a memory
+        # map which causes malloc to return addresses >= 2**32)
+        apply_patch(<<'EOPATCH');
+diff --git a/proto.h b/proto.h
+index 851567b340..e650c8b07d 100644
+--- a/proto.h
++++ b/proto.h
+@@ -479,6 +479,13 @@ Malloc_t realloc _((Malloc_t where, MEM_SIZE nbytes));
+ Free_t   free _((Malloc_t where));
+ #endif
+ 
++#ifndef MYMALLOC
++Malloc_t safemalloc _((MEM_SIZE nbytes));
++Malloc_t safecalloc _((MEM_SIZE elements, MEM_SIZE size));
++Malloc_t saferealloc _((Malloc_t where, MEM_SIZE nbytes));
++Free_t   safefree _((Malloc_t where));
++#endif
++
+ #ifdef LEAKTEST
+ Malloc_t safexmalloc _((I32 x, MEM_SIZE size));
+ Malloc_t safexcalloc _((I32 x, MEM_SIZE elements, MEM_SIZE size));
+EOPATCH
+    }
+
     if ($major < 4 && $^O eq 'openbsd') {
         my $bad;
         # Need changes from commit a6e633defa583ad5.
@@ -3627,6 +4219,38 @@ index 2a6cbcd..eab2de1 100644
 EOPATCH
     }
 
+    if ($major < 6 && extract_from_file('perl.h', qr/PL_uuemap\[\]/)) {
+        # That [] needs to be [65]:
+        apply_commit('7575fa06ca7baf15');
+    }
+
+    if ($major < 6 && $^O eq 'darwin'
+            && !extract_from_file('perl.h', qr/ifdef I_FCNTL/)) {
+        # This is part of commit 9a34ef1dede5fef4, but in a stable part of the
+        # file:
+        apply_patch(<<'EOPATCH')
+diff --git a/perl.h b/perl.h
+index 0d3f0b8333..19f6684894 100644
+--- a/perl.h
++++ b/perl.h
+@@ -310,6 +310,14 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
+ #   define BYTEORDER 0x1234
+ #endif
+ 
++#ifdef I_FCNTL
++#  include <fcntl.h>
++#endif
++
++#ifdef I_SYS_FILE
++#  include <sys/file.h>
++#endif
++
+ /* Overall memory policy? */
+ #ifndef CONSERVATIVE
+ #   define LIBERAL 1
+EOPATCH
+    }
+
     if ($major == 7 && $^O eq 'aix' && -f 'ext/List/Util/Util.xs'
         && extract_from_file('ext/List/Util/Util.xs', qr/PUSHBLOCK/)
         && !extract_from_file('makedef.pl', qr/^Perl_cxinc/)) {
@@ -3693,8 +4317,26 @@ index 900b491..6251a0b 100644
 EOPATCH
 }
 
-    if ($major < 8 && $^O eq 'openbsd'
-        && !extract_from_file('perl.h', qr/include <unistd\.h>/)) {
+    if ($major < 8 && !extract_from_file('perl.h', qr/\bshort htovs\b/)) {
+        # This is part of commit c623ac675720b314
+        apply_patch(<<'EOPATCH');
+diff --git a/perl.h b/perl.h
+index 023b90b7ea..59a21faecd 100644
+--- a/perl.h
++++ b/perl.h
+@@ -2279,4 +2279,8 @@ struct ptr_tbl {
+ # endif
+ 	/* otherwise default to functions in util.c */
++short htovs(short n);
++short vtohs(short n);
++long htovl(long n);
++long vtohl(long n);
+ #endif
+ 
+EOPATCH
+    }
+
+    if ($major < 8 && !extract_from_file('perl.h', qr/include <unistd\.h>/)) {
         # This is part of commit 3f270f98f9305540, applied at a slightly
         # different location in perl.h, where the context is stable back to
         # 5.000
@@ -3716,6 +4358,50 @@ index 9418b52..b8b1a7c 100644
  #if defined(STANDARD_C) && defined(I_STDLIB)
 EOPATCH
     }
+
+    if ($major < 10) {
+        # This is commit 731e259481f36b35, but adapted to remove all the
+        # variations of guards around the inclusion of <signal.h>
+        # Whilst we only hit this as a problem on arm64 macOS (so far), because
+        # it insists on prototypes for everything, I'm assuming that doing this
+        # everywhere and unconditionally might solve similar problems on other
+        # platforms. Certainly, it *ought* to be safe to include a C89 header
+        # these days.
+        for my $file (qw(doop.c mg.c mpeix/mpeixish.h plan9/plan9ish.h unixish.h util.c)) {
+            next
+                unless -f $file;
+            edit_file($file, sub {
+                          my $code = shift;
+                          $code =~ s{
+                                        \n
+                                        \#if \s+ [^\n]+
+                                        \n
+                                        \# \s* include \s+ <signal\.h>
+                                        \n
+                                        \#endif
+                                        \n
+                                }
+                                    {\n#include <signal.h>\n}x;
+                          return $code;
+                      });
+        }
+    }
+
+    if ($major == 15) {
+        # This affects a small range of commits around July 2011, but build
+        # failures here get in the way of bisecting other problems:
+
+        my $line = extract_from_file('embed.fnc', qr/^X?pR\t\|I32\t\|was_lvalue_sub$/);
+        if ($line) {
+            # Need to export Perl_was_lvalue_sub:
+            apply_commit('7b70e8177801df4e')
+                unless $line =~ /X/;
+
+            # It needs to be 'ApR' not 'XpR', to be visible to List::Util
+            # (arm64 macOS treats the missing prototypes as errors)
+            apply_commit('c73b0699db4d0b8b');
+        }
+    }
 }
 
 sub patch_ext {
@@ -3744,7 +4430,7 @@ sub patch_ext {
         checkout_file('ext/DynaLoader/dl_dyld.xs', 'f556e5b971932902');
         apply_patch(<<'EOPATCH');
 diff -u a/ext/DynaLoader/dl_dyld.xs~ a/ext/DynaLoader/dl_dyld.xs
---- a/ext/DynaLoader/dl_dyld.xs~	2011-10-11 21:41:27.000000000 +0100
+--- a/ext/DynaLoader/dl_dyld.xs	2011-10-11 21:41:27.000000000 +0100
 +++ b/ext/DynaLoader/dl_dyld.xs	2011-10-11 21:42:20.000000000 +0100
 @@ -41,6 +41,35 @@
  #include "perl.h"
@@ -3782,20 +4468,36 @@ diff -u a/ext/DynaLoader/dl_dyld.xs~ a/e
  #define DL_LOADONCEONLY
  
  #include "dlutils.c"	/* SaveError() etc	*/
-@@ -185,7 +191,7 @@
+@@ -104,7 +145,7 @@
+     dl_last_error = savepv(error);
+ }
+ 
+-static char *dlopen(char *path, int mode /* mode is ignored */)
++static char *dlopen(char *path)
+ {
+     int dyld_result;
+     NSObjectFileImage ofile;
+@@ -161,13 +202,11 @@
+ dl_load_file(filename, flags=0)
+     char *	filename
+     int		flags
+-    PREINIT:
+-    int mode = 1;
      CODE:
      DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
      if (flags & 0x01)
 -	Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
+-    RETVAL = dlopen(filename, mode) ;
 +	Perl_warn_nocontext("Can't make loaded symbols global on this platform while loading %s",filename);
-     RETVAL = dlopen(filename, mode) ;
++    RETVAL = dlopen(filename);
      DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%x\n", RETVAL));
      ST(0) = sv_newmortal() ;
+     if (RETVAL == NULL)
 EOPATCH
         if ($major < 4 && !extract_from_file('util.c', qr/^form/m)) {
             apply_patch(<<'EOPATCH');
 diff -u a/ext/DynaLoader/dl_dyld.xs~ a/ext/DynaLoader/dl_dyld.xs
---- a/ext/DynaLoader/dl_dyld.xs~	2011-10-11 21:56:25.000000000 +0100
+--- a/ext/DynaLoader/dl_dyld.xs	2011-10-11 21:56:25.000000000 +0100
 +++ b/ext/DynaLoader/dl_dyld.xs	2011-10-11 22:00:00.000000000 +0100
 @@ -60,6 +60,18 @@
  #  define get_av perl_get_av
@@ -3823,12 +4525,13 @@ EOPATCH
     if ($major < 10) {
         if ($unfixable_db_file) {
             # Nothing we can do.
-        } elsif (!extract_from_file('ext/DB_File/DB_File.xs',
-                                    qr/^#ifdef AT_LEAST_DB_4_1$/)) {
-            # This line is changed by commit 3245f0580c13b3ab
-            my $line = extract_from_file('ext/DB_File/DB_File.xs',
-                                         qr/^(        status = \(?RETVAL->dbp->open\)?\(RETVAL->dbp, name, NULL, RETVAL->type, $)/);
-            apply_patch(<<"EOPATCH");
+        } else {
+            if (!extract_from_file('ext/DB_File/DB_File.xs',
+                                   qr/^#ifdef AT_LEAST_DB_4_1$/)) {
+                # This line is changed by commit 3245f0580c13b3ab
+                my $line = extract_from_file('ext/DB_File/DB_File.xs',
+                                             qr/^(        status = \(?RETVAL->dbp->open\)?\(RETVAL->dbp, name, NULL, RETVAL->type, $)/);
+                apply_patch(<<"EOPATCH");
 diff --git a/ext/DB_File/DB_File.xs b/ext/DB_File/DB_File.xs
 index 489ba96..fba8ded 100644
 --- a/ext/DB_File/DB_File.xs
@@ -3855,6 +4558,13 @@ index 489ba96..fba8ded 100644
  	/* printf("open returned %d %s\\n", status, db_strerror(status)) ; */
  
 EOPATCH
+            }
+
+            if (!extract_from_file('ext/DB_File/DB_File.xs',
+                                   qr/\bextern void __getBerkeleyDBInfo\b/)) {
+                # A prototype for __getBerkeleyDBInfo();
+                apply_commit('b92372bcedd4cbc4');
+            }
         }
     }
 
@@ -3897,6 +4607,28 @@ EOFIX
                   });
     }
 
+    if ($major < 10 and -f 'ext/Digest/MD5/MD5.xs') {
+        require Digest::MD5;
+        my ($was, $now);
+        # The edit to the XS is commit 9ee8e69ab2318ba3, but the testcase fixup
+        # needs to work for several earlier commits.
+        edit_file('ext/Digest/MD5/MD5.xs', sub {
+                      my $xs = shift;
+                      $was = Digest::MD5::md5_hex($xs);
+                      $xs =~ s{\Q#if PATCHLEVEL <= 4 && !defined(PL_dowarn)}
+                              {#if PERL_VERSION <= 4 && !defined(PL_dowarn)};
+                      $now = Digest::MD5::md5_hex($xs);
+                      return $xs;
+                  });
+
+        edit_file('ext/Digest/MD5/t/files.t', sub {
+                      my $testcase = shift;
+                      $testcase =~ s/$was/$now/g;
+                      return $testcase;
+                  })
+            if $was ne $now;
+    }
+
     if ($major >= 10 && $major < 20
             && !extract_from_file('ext/SDBM_File/Makefile.PL', qr/MY::subdir_x/)) {
         # Parallel make fix for SDBM_File
@@ -3905,6 +4637,75 @@ EOFIX
         # other bugs.
         # So far, only AIX make has come acropper on this bug.
         apply_commit('4d106cc5d8fd328d', 'ext/SDBM_File/Makefile.PL');
+    }
+
+    if (-f 'ext/Errno/Errno_pm.PL') {
+        if ($major < 22 && !extract_from_file('ext/Errno/Errno_pm.PL',
+                                              qr/RT#123784/)) {
+            my $gcc_major = extract_from_file('config.sh',
+                                              qr/^gccversion='([0-9]+)\./,
+                                              0);
+            if ($gcc_major >= 5) {
+                # This is the fix of commit 816b056ffb99ae54, but implemented in
+                # a way that should work back to the earliest versions of Errno:
+                edit_file('ext/Errno/Errno_pm.PL', sub {
+                              my $code = shift;
+                              $code =~ s/( \$Config\{cppflags\})/$1 -P/g;
+                              return $code;
+                          });
+            }
+        }
+        if ($major < 8 && !extract_from_file('ext/Errno/Errno_pm.PL',
+                                             qr/With the -dM option, gcc/)) {
+            # This is the fix of commit 9ae2e8df64ee1443 re-ordered slightly so
+            # that it should work back to the earliest versions of Errno:
+            apply_patch(<<'EOPATCH');
+diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
+index b669790314..c00d6c1a86 100644
+--- a/ext/Errno/Errno_pm.PL
++++ b/ext/Errno/Errno_pm.PL
+@@ -30,6 +30,12 @@ sub process_file {
+             warn "Cannot open '$file'";
+             return;
+ 	}     
++    } elsif ($Config{gccversion} ne '') {
++	# With the -dM option, gcc outputs every #define it finds
++	unless(open(FH,"$Config{cc} -E -dM $file |")) {
++            warn "Cannot open '$file'";
++            return;
++	}
+     } else {
+ 	unless(open(FH,"< $file")) {
+             warn "Cannot open '$file'";
+@@ -45,8 +51,12 @@ sub process_file {
+ 
+ sub get_files {
+     my %file = ();
+-    # VMS keeps its include files in system libraries (well, except for Gcc)
+-    if ($^O eq 'VMS') {
++    if ($^O eq 'linux') {
++	# Some Linuxes have weird errno.hs which generate
++	# no #file or #line directives
++	$file{'/usr/include/errno.h'} = 1;
++    } elsif ($^O eq 'VMS') {
++	# VMS keeps its include files in system libraries (well, except for Gcc)
+ 	if ($Config{vms_cc_type} eq 'decc') {
+ 	    $file{'Sys$Library:DECC$RTLDEF.TLB'} = 1;
+ 	} elsif ($Config{vms_cc_type} eq 'vaxc') {
+EOPATCH
+        }
+    }
+}
+
+sub patch_t {
+    if ($^O eq 'darwin') {
+        # This has # $x = `$^X -le "print 'hi there'"`;
+        # and it needs to pass for the automated validation self-test:
+        edit_file('t/base/term.t', sub {
+                      my $code = shift;
+                      $code =~ s/`(\$\^X )/`$aggressive_apple_security$1/;
+                      return $code;
+                  });
     }
 }
 
Index: gnu/usr.bin/perl/Porting/checkAUTHORS.pl
===================================================================
RCS file: gnu/usr.bin/perl/Porting/checkAUTHORS.pl
diff -N gnu/usr.bin/perl/Porting/checkAUTHORS.pl
--- gnu/usr.bin/perl/Porting/checkAUTHORS.pl	15 Feb 2023 01:36:14 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1270 +0,0 @@
-#!/usr/bin/perl -w
-package Porting::checkAUTHORS;
-use strict;
-use warnings;
-
-use v5.026;
-
-use utf8;
-use Getopt::Long;
-use Unicode::Collate;
-use Text::Wrap;
-$Text::Wrap::columns = 80;
-
-my ($committer, $patch, $author);
-my ($rank, $ta, $ack, $who, $tap, $update) = (0) x 6;
-my ($percentage, $cumulative, $reverse);
-my (%authors, %untraced, %patchers, %committers, %real_names);
-my ( $from_commit, $to_commit );
-my ( $map, $preferred_email_or_github );
-my $AUTHORS_header;
-my $author_file= './AUTHORS';
-
-sub main {
-    my $result = GetOptions (
-                 # modes
-                 "who"            => \$who,
-                 "rank"           => \$rank,
-                 "thanks-applied" => \$ta,
-                 "missing"        => \$ack ,
-                 "tap"            => \$tap,
-                 "update"         => \$update,
-
-                 # modifiers
-                 "authors=s"      => \$author_file,
-                 "percentage"     => \$percentage,      # show as %age
-                 "cumulative"     => \$cumulative,
-                 "reverse"        => \$reverse,
-                 "from=s"         => \$from_commit,
-                 "to=s"           => \$to_commit,
-
-                );
-
-
-    my $has_from_commit = defined $from_commit ? 1 : 0;
-
-    if ( !$result # GetOptions failed
-        or ( $rank + $ta + $who + $ack + $tap + $update != 1 ) # use one and one exactly 'mode'
-        or !( scalar @ARGV + $has_from_commit )  # gitlog provided from --from or stdin
-        ) {
-        usage();
-    }
-
-    die "Can't locate '$author_file'. Specify it with '--authors <path>'."
-      unless -f $author_file;
-
-    ( $map, $preferred_email_or_github ) = generate_known_author_map();
-
-    my $preserve_case = $update ? 1 : 0;
-    my $AUTHORS_header = read_authors_file($author_file, $preserve_case);
-
-    if ($rank) {
-      parse_commits();
-      display_ordered(\%patchers);
-    } elsif ($ta) {
-      parse_commits();
-      display_ordered(\%committers);
-    } elsif ($tap) {
-      parse_commits_authors();
-      display_test_output(\%patchers, \%authors, \%real_names);
-    } elsif ($ack) {
-      parse_commits();
-      display_missing_authors(\%patchers, \%authors, \%real_names);
-    } elsif ($who) {
-      parse_commits();
-      list_authors(\%patchers, \%authors);
-    } elsif ( $update ) {
-      update_authors_files( \%authors, $map, $preferred_email_or_github, $author_file );
-    } else {
-        die "unknown mode";
-    }
-
-    exit(0);
-}
-
-main() unless caller;
-
-sub usage {
-
-  die <<"EOS";
-Usage: $0 [modes] [modifiers] <git-log-output-file>
-
-Modes (use only one):
-   --who                          # show list of unique authors by full name
-   --rank                         # rank authors by patches
-   --thanks-applied               # ranks committers of others' patches
-   --missing                      # display authors not in AUTHORS
-   --tap                          # show authors present/missing as TAP
-   --update                       # update the AUTHORS file with missing
-
-Modifiers:
-   --authors <authors-file>       # path to authors file (default: ./AUTHORS)
-   --percentage                   # show rankings as percentages
-   --cumulative                   # show rankings cumulatively
-   --reverse                      # show rankings in reverse
-   --from                         # git commit ID used for 'git log' source (use file from STDIN when missing)
-   --to[=HEAD]                    # git commit ID used for 'git log' destination, default to HEAD.
-
-Sample Usages:
-
-  \$ perl Porting/checkAUTHORS.pl --who --from=v5.31.6 --to=v5.31.7
-  \$ perl Porting/checkAUTHORS.pl --rank --percentage --from=v5.31.6
-  \$ perl Porting/checkAUTHORS.pl --thanks-applied --from=v5.31.6
-  \$ perl Porting/checkAUTHORS.pl --missing --from=v5.31.6
-  \$ perl Porting/checkAUTHORS.pl --tap --from=v5.31.6
-  \$ perl Porting/checkAUTHORS.pl --update --from=v5.31.6
-
-or the split int two and generate your own git log output
-
-Generate git-log-output-file with git log --pretty=fuller rev1..rev2
-(or pipe by specifying '-' for stdin).  For example:
-  \$ git log --pretty=fuller v5.31.6..v5.31.7 > gitlog
-  \$ perl Porting/checkAUTHORS.pl --rank --percentage gitlog
-
-
-EOS
-}
-
-sub list_authors {
-    my ($patchers, $authors) = @_;
-    binmode(STDOUT, ":utf8");
-    print wrap '', '', join(', ', Unicode::Collate->new(level => 1)->sort(
-                      map { $authors->{$_} }
-                      grep { length $_ > 1 } # skip the exception '!' and '?'
-                      keys %$patchers)) . ".\n";
-}
-
-# use --from [and --to] if provided
-# otherwise fallback to stdin for backward compatibility
-sub _git_log {
-    if ( length $from_commit ) {
-        my ( $from, $to ) = ( $from_commit, $to_commit );
-        $to //= 'HEAD';
-        my $gitlog = [ qx{git log --pretty=fuller $from..$to} ];
-        die "git log failed: $!" unless $? == 0;
-        return $gitlog;
-    }
-
-    return [ <> ];
-}
-
-sub parse_commits {
-    my ( $process ) = @_;
-
-    $process //= \&process; # default processor
-
-    my $git_log = _git_log();
-
-    my @lines = split( /^commit\s*/sm, join( '', $git_log->@* ) );
-    foreach (@lines) {
-        next if m/^$/;
-        next if m/^(\S*?)^Merge:/ism;    # skip merge commits
-        if (m/^(.*?)^Author:\s*(.*?)^AuthorDate:\s*.*?^Commit:\s*(.*?)^(.*)$/gism) {
-
-            # new patch
-            ( $patch, $author, $committer ) = ( $1, $2, $3 );
-            chomp($author);
-            unless ($author) { die $_ }
-            chomp($committer);
-            unless ($committer) { die $_ }
-
-            $process->( $committer, $patch, $author );
-        } else {
-            die "XXX $_ did not match";
-        }
-    }
-
-    return;
-}
-
-# just grab authors. Quicker than parse_commits
-
-sub parse_commits_authors {
-
-    my $git_log = _git_log();
-
-    foreach ($git_log->@*) {
-        next unless /^Author:\s*(.*)$/;
-        my $author = $1;
-        $author = _raw_address($author);
-        $patchers{$author}++;
-    }
-
-    return;
-}
-
-sub generate_known_author_map {
-    my %map;
-
-    my %preferred_email_or_github;
-
-    my $previous_name = "";
-    my $previous_preferred_contact = "";
-    while (<DATA>) {
-        next if m{^\s*#};
-
-        chomp;
-        s/\\100/\@/g;
-
-        $_ = lc;
-        if ( my ( $name, $contact ) = /^\s*([^#\s]\S*)\s+(.*\S)/ ) {
-
-            $name =~ s/^\\043/#/;
-            # use the previous stored email if the line starts by a '+'
-            if   ( $name eq '+' ) {
-                $name             = $previous_name;
-            }
-            else {
-                $previous_name              = $name;
-                $previous_preferred_contact = $contact;
-                if ( index($name, '@' ) > 0 ) {
-                    # if name is an email, then this is our preferred email... legacy list
-                    $previous_preferred_contact = $name;
-                }
-            }
-
-            $map{$contact} = $name;
-
-            if ( $contact ne $previous_preferred_contact ) {
-                $preferred_email_or_github{$contact} = $previous_preferred_contact;
-            }
-            if ( $name ne '+' ) {
-                $preferred_email_or_github{$name} = $previous_preferred_contact;
-            }
-        }
-    }
-
-    #
-    # Email addresses for we do not have names.
-    #
-    $map{$_} = "?"
-        for
-        "bah\100longitude.com",
-        "bbucklan\100jpl-devvax.jpl.nasa.gov",
-        "bilbo\100ua.fm",
-        "bob\100starlabs.net",
-        "cygwin\100cygwin.com",
-        "david\100dhaller.de", "erik\100cs.uni-jena.de", "info\100lingo.kiev.ua",    # Lingo Translation agency
-        "jms\100mathras.comcast.net",
-        "premchai21\100yahoo.com",
-        "pxm\100nubz.org",
-        "raf\100tradingpost.com.au",
-        "smoketst\100hp46t243.cup.hp.com", "root\100chronos.fi.muni.cz",             # no clue - jrv 20090803
-        "gomar\100md.media-web.de",    # no clue - jrv 20090803
-        "data-drift\100so.uio.no",     # no data. originally private message from 199701282014.VAA12645@selters.uio.no
-        "arbor\100al37al08.telecel.pt"
-        ,    # reported perlbug ticket 5196 - no actual code contribution. no real name - jrv 20091006
-        "oracle\100pcr8.pcr.com",    # Reported perlbug ticket 1015 - no patch - Probably Ed Eddington ed@pcr.com
-        "snaury\100gmail.com",       # Reported cpan ticket 35943, with patch for fix
-        ;
-
-    #
-    # Email addresses for people that don't have an email address in AUTHORS
-    # Presumably deliberately?
-    #
-
-    $map{$_} = '!' for
-
-        # Nick Ing-Simmons has passed away (2006-09-25).
-        "nick\100ing-simmons.net",
-        "nik\100tiuk.ti.com",
-        "nick.ing-simmons\100elixent.com",
-        "nick\100ni-s.u-net.com",
-        "nick.ing-simmons\100tiuk.ti.com",
-
-        # Iain Truskett has passed away (2003-12-29).
-        "perl\100dellah.anu.edu.au", "spoon\100dellah.org", "spoon\100cpan.org",
-
-        # Ton Hospel
-        "me-02\100ton.iguana.be", "perl-5.8.0\100ton.iguana.be", "perl5-porters\100ton.iguana.be",
-
-        # Beau Cox
-        "beau\100beaucox.com",
-
-        # Randy W. Sims
-        "ml-perl\100thepierianspring.org",
-
-        # Jason Hord
-        "pravus\100cpan.org",
-
-        # perl internal addresses
-        "perl5-porters\100africa.nicoh.com",
-        "perlbug\100perl.org",,
-        "perl5-porters.nicoh.com",
-        "perlbug-followup\100perl.org",
-        "perlbug-comment\100perl.org",
-        "bug-module-corelist\100rt.cpan.org",
-        "bug-storable\100rt.cpan.org",
-        "bugs-perl5\100bugs6.perl.org",
-        "unknown",
-        "unknown\100unknown",
-        "unknown\100longtimeago",
-        "unknown\100perl.org",
-        "",
-        "(none)",
-        ;
-
-    return ( \%map, \%preferred_email_or_github );
-}
-
-sub read_authors_file {
-    my ( $filename, $preserve_case ) = @_;
-    return unless defined $filename;
-
-    my @headers;
-
-    my (%count, %raw);
-    {
-        open my $fh, '<', $filename or die "Can't open $filename: $!";
-        binmode $fh, ':encoding(UTF-8)';
-        my $in_header = 1;
-        while (<$fh>) {
-            next if /^\#/;
-            do { $in_header = 0; next } if /^-- /;
-            if (/^([^<]+)<([^>]+)>/) {
-                # Easy line.
-                my ($name, $email) = ($1, $2);
-                $name =~ s/\s*\z//;
-                $raw{$email} = $name;
-                $count{$email}++;
-            } elsif ( /^([^@]+)\s+(\@\S+)\s*$/ ) {
-                my ($name, $github) = ($1, $2);
-                $name =~ s/\s*\z//;
-                $raw{$github} = $name;
-                $count{$github}++;
-            } elsif (/^([- .'\w]+)[\t\n]/) {
-
-                # Name only
-                $untraced{$1}++;
-            } elsif ( length $_ ) {
-                chomp;
-                warn "Can't parse line '$_'";
-            } else {
-                next;
-            }
-        }
-        continue {
-            push @headers, $_ if $in_header;
-        }
-    }
-    foreach my $contact ( sort keys %raw ) {
-        print "E-mail $contact occurs $count{$contact} times\n" if $count{$contact} > 1;
-        my $lc = lc $contact;
-        my $key = $preserve_case ? $contact : $lc;
-        $authors{ $map->{$lc} || $key } = $raw{$contact};
-    }
-    $authors{$_} = $_ for qw(? !);
-
-    push @headers, '-- ', "\n";
-
-    return join( '', @headers );
-}
-
-sub update_authors_files {
-    my ( $authors, $known_authors, $preferred_email_or_github, $author_file ) = @_;
-
-    die qq[Cannot find AUTHORS file '$author_file'] unless -f $author_file;
-    binmode(STDOUT, ":utf8");
-
-    # add missing authors from the recent commits
-    _detect_new_authors_from_recent_commit( $authors, $known_authors );
-
-    my @author_names = sort { $a cmp $b } values %$authors;
-    my $maxlen = length [ sort { length $b <=> length $a } @author_names ]->[0];
-
-    my @list;
-    foreach my $github_or_email ( sort keys %authors ) {
-
-        next if length $github_or_email == 1;
-
-        my $name = $authors{$github_or_email};
-        $name =~ s{\s+$}{};
-
-        #$github_or_email = $known_authors->{ $github_or_email } // $github_or_email;
-        $github_or_email = $preferred_email_or_github->{ $github_or_email } // $github_or_email;
-
-        if ( index( $github_or_email, '@' ) != 0 ) { # preserve '<>' for unicode consortium
-            $github_or_email = '<' . $github_or_email . '>';
-        }
-
-        push @list, sprintf( "%-${maxlen}s %s\n", $name, $github_or_email);
-    }
-
-    # preserve the untraced authors :-) [without email or GitHub account]
-    push @list, map { "$_\n" } keys %untraced;
-
-    {
-        open my $fh, '>', $author_file or die "Can't open $author_file: $!";
-        binmode $fh, ':raw:encoding(UTF-8)';
-
-        print {$fh} $AUTHORS_header;
-
-        map { print {$fh} $_ } sort { lc $a cmp lc $b } @list;
-
-        close $fh;
-
-    }
-
-    return;
-}
-
-# read all recent commits and check if the author email is known
-#   if the email is unknown add the author's GitHub account if possible or his email
-sub _detect_new_authors_from_recent_commit {
-    my ( $authors, $known_authors ) = @_;
-
-    my $check_if_email_known = sub {
-        my ( $email ) = @_;
-
-        my $preferred = $map->{$email} // $map->{lc $email}
-            // $preferred_email_or_github->{$email}
-            // $preferred_email_or_github->{lc $email}
-            // $email;
-
-        return $authors{$preferred} || $authors{ lc $preferred } ? 1 : 0;
-    };
-
-    my $already_checked = {};
-    my $process = sub {
-        my ( $committer, $patch, $author ) = @_;
-
-        foreach my $person ( $author, $committer ) {
-            next unless length $person;
-            next if $already_checked->{$person};
-            $already_checked->{$person} = 1;
-
-            my $is_author = $person eq $author;
-
-            if ( $person =~ m{^(.+)\s+<(.+)>$} ) {
-                my ( $name, $email ) = ( $1, $2 );
-
-                # skip unicode consortium and bad emails
-                if ( index( $email, '@' ) <= 0 ) {
-                    warn "# Skipping new author: $person - bad email";
-                    next;
-                }
-
-                next if $check_if_email_known->( $email );
-
-                # for new users we would prefer using the GitHub account
-                my $github_or_email = _commit_to_github_id( $patch, $is_author ) // $email;
-
-                next if $check_if_email_known->( $github_or_email );
-
-                print "# Detected a new author: $name using email $email [ $github_or_email ]\n";
-                $authors{$github_or_email} = $name; # add it to the list of authors
-            } else {
-                warn "Fail to parse author: $person";
-            }
-        }
-    };
-
-    parse_commits( $process );
-
-    return;
-}
-
-sub _commit_to_github_id {
-    my ( $commit, $is_author ) = @_;
-
-    chomp $commit if defined $commit;
-    return unless length $commit;
-
-    eval { require HTTP::Tiny; 1 } or do {
-        warn "HTTP::Tiny is missing, cannot detect GitHub account from commit id.";
-        no warnings;
-        *_commit_to_github_id = sub {};
-        return;
-    };
-
-    my $github_url_for_commit = q[https://github.com/Perl/perl5/commit/] . $commit;
-    my $response = HTTP::Tiny->new->get( $github_url_for_commit );
-
-    if ( ! $response->{success} ) {
-        warn "HTTP Request Failed: '$github_url_for_commit'";
-        return;
-    }
-
-    my $content = $response->{content} // '';
-
-    # poor man scrapping - probably have to be improved over time
-    # try to parse something like: <a href="/Perl/perl5/commits?author=ThisIsMyGitHubID"
-    my @github_ids; # up to two entries author and committer
-    while ( $content =~ s{\Q<a href="/Perl/perl5/commits?author=\E(.+)"}{} ) {
-        push @github_ids, '@' . $1;
-    }
-
-    warn "Found more than two github ids for $github_url_for_commit" if scalar @github_ids > 2;
-
-    return $github_ids[0] if $is_author;
-    if ( !$is_author && scalar @github_ids >= 2 ) {
-        return $github_ids[1]; # committer is the second entry
-    }
-
-    return $github_ids[0];
-}
-
-
-sub display_test_output {
-    my $patchers   = shift;
-    my $authors    = shift;
-    my $real_names = shift;
-    my $count = 0;
-    printf "1..%d\n", scalar keys %$patchers;
-
-    foreach my $email ( sort keys %$patchers ) {
-        $count++;
-        if ($authors->{$email}) {
-            print "ok $count - ".$real_names->{$email} ." $email\n";
-        } else {
-            print "not ok $count - Contributor not found in AUTHORS. ",
-                  ($real_names->{$email} || '???' )." $email\n",
-                  "# To fix run Porting/updateAUTHORS.pl and then review",
-                  " and commit the result.\n";
-            print STDERR "# ", ($real_names->{$email} || '???' ), " <$email>",
-                  " not found in AUTHORS.\n",
-                  "# To fix run Porting/updateAUTHORS.pl and then review",
-                  " and commit the result.\n";
-        }
-    }
-
-    return;
-}
-
-sub display_missing_authors {
-    my $patchers   = shift;
-    my $authors    = shift;
-    my $real_names = shift;
-    my %missing;
-    foreach ( sort keys %$patchers ) {
-        next if $authors->{$_};
-
-        # Sort by number of patches, then name.
-        $missing{ $patchers{$_} }->{$_}++;
-    }
-    foreach my $patches ( sort { $b <=> $a } keys %missing ) {
-        print "\n\n=head1 $patches patch(es)\n\n";
-        foreach my $author ( sort keys %{ $missing{$patches} } ) {
-            my $xauthor = $author;
-            $xauthor =~ s/@/\\100/g;    # xxx temp hack
-            print "" . ( $real_names->{$author} || $author ) . "\t\t\t<" . $xauthor . ">\n";
-        }
-    }
-
-    return;
-}
-
-sub display_ordered {
-    my $what = shift;
-    my @sorted;
-    my $total;
-
-    while ( my ( $name, $count ) = each %$what ) {
-        push @{ $sorted[$count] }, $name;
-        $total += $count;
-    }
-
-    my $i = @sorted;
-    return unless @sorted;
-    my $sum = 0;
-    foreach my $i ( $reverse ? 0 .. $#sorted : reverse 0 .. $#sorted ) {
-        next unless $sorted[$i];
-        my $prefix;
-        $sum += $i * @{ $sorted[$i] };
-
-        # Value to display is either this one, or the cumulative sum.
-        my $value = $cumulative ? $sum : $i;
-        if ($percentage) {
-            $prefix = sprintf "%6.2f:\t", 100 * $value / $total;
-        } else {
-            $prefix = "$value:\t";
-        }
-        print wrap ( $prefix, "\t", join( " ", sort @{ $sorted[$i] } ), "\n" );
-    }
-
-    return;
-}
-
-sub process {
-    my ( $committer, $patch, $author ) = @_;
-    return unless $author;
-    return unless $committer;
-
-    $author = _raw_address($author);
-    $patchers{$author}++;
-
-    $committer = _raw_address($committer);
-    if ( $committer ne $author ) {
-
-        # separate commit credit only if committing someone else's patch
-        $committers{$committer}++;
-    }
-
-    return;
-}
-
-sub _raw_address {
-    my $addr = shift;
-    my $real_name;
-    if ($addr =~ /(?:\\?")?\s*\(via RT\) <perlbug-followup\@perl\.org>$/p) {
-        my $name = ${^PREMATCH};
-        $addr = 'perlbug-followup@perl.org';
-        #
-        # Try to find the author
-        #
-        if (exists $map->{$name}) {
-            $addr = $map->{$name};
-            $real_name = $authors{$addr};
-        }
-        else {
-            while (my ($email, $author_name) = each %authors) {
-                if ($name eq $author_name) {
-                    $addr = $email;
-                    $real_name = $name;
-                    last;
-                }
-            }
-        }
-    }
-    elsif ( $addr =~ /<.*>/ ) {
-        $addr =~ s/^\s*(.*)\s*<\s*(.*?)\s*>.*$/$2/;
-        $real_name = $1;
-    }
-    $addr =~ s/\[mailto://;
-    $addr =~ s/\]//;
-    $addr = lc $addr;
-    $addr = $map->{$addr} || $addr;
-    $addr =~ s/\\100/@/g;    # Sometimes, there are encoded @ signs in the git log.
-
-    if ($real_name) { $real_names{$addr} = $real_name }
-
-    return $addr;
-}
-
-1; # make sure we return true in case we are required.
-__DATA__
-
-#
-# List of mappings. First entry the "correct" email address or GitHub account,
-# as appears in the AUTHORS file. Other lines are "alias" mapped to it.
-#
-# If the "correct" email address is a '+', the entry above it is reused;
-# this for addresses with more than one alias.
-#
-# Note that all entries are in lowercase. Further, no '@' signs should
-# appear; use \100 instead.
-#
-#
-#  Committers.
-#
-adamh                                   \100BytesGuy
-+                                       bytesguy\100users.noreply.github.com
-+                                       git\100ahartley.com
-adi                                     enache\100rdslink.ro
-alanbur                                 alan.burlison\100sun.com
-+                                       alan.burlison\100uk.sun.com
-+                                       aburlison\100cix.compulink.co.uk
-ams                                     ams\100toroid.org
-+                                       ams\100wiw.org
-atoomic                                 \100atoomic
-+                                       atoomic\100cpan.org
-+                                       cpan\100atoomic.org
-+                                       nicolas\100atoomic.org
-chip                                    chip\100pobox.com
-+                                       chip\100perl.com
-+                                       salzench\100nielsenmedia.com
-+                                       chip\100atlantic.net
-+                                       chip\100rio.atlantic.net
-+                                       salzench\100dun.nielsen.com
-+                                       chip\100ci005.sv2.upperbeyond.com
-craigb                                  craigberry\100mac.com
-+                                       craig.berry\100metamorgs.com
-+                                       craig.berry\100signaltreesolutions.com
-+                                       craig.berry\100psinetcs.com
-+                                       craig.a.berry\100gmail.com
-+                                       craig a. berry)
-davem                                   davem\100iabyn.nospamdeletethisbit.com
-+                                       davem\100fdgroup.com
-+                                       davem\100iabyn.com
-+                                       davem\100fdgroup.co.uk
-+                                       davem\100fdisolutions.com
-+                                       davem\100iabyn.com
-demerphq                                demerphq\100gmail.com
-+                                       yves.orton\100de.mci.com
-+                                       yves.orton\100mciworldcom.de
-+                                       yves.orton\100booking.com
-+                                       demerphq\100dromedary.booking.com
-+                                       demerphq\100gemini.(none)
-+                                       demerphq\100camel.booking.com
-+                                       demerphq\100hotmail.com
-doughera                                doughera\100lafayette.edu
-+                                       doughera\100lafcol.lafayette.edu
-+                                       doughera\100fractal.phys.lafayette.edu
-+                                       doughera.lafayette.edu
-+                                       doughera\100newton.phys.lafayette.edu
-
-gbarr                                   gbarr\100pobox.com
-+                                       bodg\100tiuk.ti.com
-+                                       gbarr\100ti.com
-+                                       graham.barr\100tiuk.ti.com
-+                                       gbarr\100monty.mutatus.co.uk
-gisle                                   gisle\100aas.no
-+                                       gisle\100activestate.com
-+                                       aas\100aas.no
-+                                       aas\100bergen.sn.no
-gsar                                    gsar\100cpan.org
-+                                       gsar\100activestate.com
-+                                       gsar\100engin.umich.edu
-hv                                      hv\100crypt.org
-+                                       hv\100crypt.compulink.co.uk
-+                                       hv\100iii.co.uk
-jhi                                     jhi\100iki.fi
-+                                       jhietaniemi\100gmail.com
-+                                       jhi\100kosh.hut.fi
-+                                       jhi\100alpha.hut.fi
-+                                       jhi\100cc.hut.fi
-+                                       jhi\100hut.fi
-+                                       jarkko.hietaniemi\100nokia.com
-+                                       jarkko.hietaniemi\100cc.hut.fi
-+                                       jarkko.hietaniemi\100booking.com
-jesse                                   jesse\100fsck.com
-+                                       jesse\100bestpractical.com
-+                                       jesse\100perl.org
-merijn                                  h.m.brand\100xs4all.nl
-+                                       h.m.brand\100procura.nl
-+                                       merijn.brand\100procura.nl
-+                                       h.m.brand\100hccnet.nl
-+                                       merijn\100l1.procura.nl
-+                                       merijn\100a5.(none)
-+                                       perl5\100tux.freedom.nl
-mhx                                     mhx-perl\100gmx.net
-+                                       mhx\100r2d2.(none)
-+                                       mhx\100cpan.org
-mst                                     mst\100shadowcat.co.uk
-+                                       matthewt\100hercule.scsys.co.uk
-nicholas                                nick\100ccl4.org
-+                                       nick\100unfortu.net
-+                                       nick\100talking.bollo.cx
-+                                       nick\100plum.flirble.org
-+                                       nick\100babyhippo.co.uk
-+                                       nick\100bagpuss.unfortu.net
-+                                       nick\100babyhippo.com
-+                                       nicholas\100dromedary.ams6.corp.booking.com
-+                                       Nicholas Clark (sans From field in mail header)
-pudge                                   pudge\100pobox.com
-rgs                                     rgs@consttype.org
-+                                       rgarciasuarez\100free.fr
-+                                       rgarciasuarez\100mandrakesoft.com
-+                                       rgarciasuarez\100mandriva.com
-+                                       rgarciasuarez\100gmail.com
-+                                       raphel.garcia-suarez\100hexaflux.com
-sky                                     artur\100contiller.se
-+                                       sky\100nanisky.com
-+                                       arthur\100contiller.se
-smueller                                smueller\100cpan.org
-+                                       7k8lrvf02\100sneakemail.com
-+                                       kjx9zthh3001\100sneakemail.com
-+                                       dtr8sin02\100sneakemail.com
-+                                       rt8363b02\100sneakemail.com
-+                                       o6hhmk002\100sneakemail.com
-+                                       l2ot9pa02\100sneakemail.com
-+                                       wyp3rlx02\100sneakemail.com
-+                                       0mgwtfbbq\100sneakemail.com
-+                                       xyey9001\100sneakemail.com
-steveh                                  steve.m.hay\100googlemail.com
-+                                       stevehay\100planit.com
-+                                       steve.hay\100uk.radan.com
-stevep                                  steve\100fisharerojo.org
-+                                       steve.peters\100gmail.com
-+                                       root\100dixie.cscaper.com
-timb                                    Tim.Bunce\100pobox.com
-+                                       tim.bunce\100ig.co.uk
-tonyc                                   tony\100develop-help.com
-+                                       tony\100openbsd32.tony.develop-help.com
-+                                       tony\100saturn.(none)
-
-#
-# Mere mortals.
-#
-\043####\100juerd.nl                    juerd\100cpan.org
-+                                       juerd\100c3.convolution.nl
-+                                       juerd\100convolution.nl
-a.r.ferreira\100gmail.com               aferreira\100shopzilla.com
-abe\100ztreet.demon.nl                  abeltje\100cpan.org
-abela\100hsc.fr                         abela\100geneanet.org
-abigail\100abigail.be                   abigail\100foad.org
-+                                       abigail\100abigail.nl
-+                                       abigail\100fnx.com
-aburt\100isis.cs.du.edu                 isis!aburt
-ach\100mpe.mpg.de                       ach\100rosat.mpe-garching.mpg.de
-adavies\100ptc.com                      alex.davies\100talktalk.net
-ajohnson\100nvidia.com                  ajohnson\100wischip.com
-+                                       anders\100broadcom.com
-alexm\100netli.com                      alexm\100w-m.ru
-alex-p5p\100earth.li                    alex\100rcon.rog
-alexmv\100mit.edu                       alex\100chmrr.net
-alian\100cpan.org                       alian\100alianwebserver.com
-allen\100grumman.com                    allen\100gateway.grumman.com
-allen\100huarp.harvard.edu              nort\100bottesini.harvard.edu
-+                                       nort\100qnx.com
-allens\100cpan.org                      easmith\100beatrice.rutgers.edu
-+                                       root\100dogberry.rutgers.edu
-ambs\100cpan.org                        hashashin\100gmail.com
-andrea                                  a.koenig@mind.de
-+                                       andreas.koenig\100anima.de
-+                                       andreas.koenig.gmwojprw\100franz.ak.mind.de
-+                                       andreas.koenig.7os6vvqr\100franz.ak.mind.de
-+                                       a.koenig\100mind.de
-+                                       k\100anna.in-berlin.de
-+                                       andk\100cpan.org
-+                                       koenig\100anna.mind.de
-+                                       k\100anna.mind.de
-+                                       root\100ak-71.mind.de
-+                                       root\100ak-75.mind.de
-+                                       k\100sissy.in-berlin.de
-+                                       a.koenig\100kulturbox.de
-+                                       k\100sissy.in-berlin.de
-+                                       root\100dubravka.in-berlin.de
-anno4000\100lublin.zrz.tu-berlin.de     anno4000\100mailbox.tu-berlin.de
-+                                       siegel\100zrz.tu-berlin.de
-apocal@cpan.org                         perl\1000ne.us
-arnold\100gnu.ai.mit.edu                arnold\100emoryu2.arpa
-+                                       gatech!skeeve!arnold
-arodland\100cpan.org                    andrew\100hbslabs.com
-arussell\100cs.uml.edu                  adam\100adam-pc.(none)
-ash\100cpan.org                         ash_cpan\100firemirror.com
-avar                                    avar\100cpan.org
-+                                       avarab\100gmail.com
-bailey\100newman.upenn.edu              bailey\100hmivax.humgen.upenn.edu
-+                                       bailey\100genetics.upenn.edu
-+                                       bailey.charles\100gmail.com
-bah\100ecnvantage.com                   bholzman\100longitude.com
-barries\100slaysys.com                  root\100jester.slaysys.com
-bkedryna\100home.com                    bart\100cg681574-a.adubn1.nj.home.com
-bcarter\100gumdrop.flyinganvil.org      q.eibcartereio.=~m-b.{6}-cgimosx\100gumdrop.flyinganvil.org
-ben_tilly\100operamail.com              btilly\100gmail.com
-+                                       ben_tilly\100hotmail.com
-ben\100morrow.me.uk                     mauzo\100csv.warwick.ac.uk
-+                                       mauzo\100.(none)
-bepi\100perl.it                         enrico.sorcinelli\100gmail.com
-bert\100alum.mit.edu                    bert\100genscan.com
-bigbang7\100gmail.com                   ddascalescu+github\100gmail.com
-blgl\100stacken.kth.se                  blgl\100hagernas.com
-+                                       2bfjdsla52kztwejndzdstsxl9athp\100gmail.com
-b@os13.org                              brad+github\10013os.net
-khw\100cpan.org                         khw\100karl.(none)
-brian.d.foy\100gmail.com                bdfoy\100cpan.org
-BQW10602\100nifty.com                   sadahiro\100cpan.org
-bulk88\100hotmail.com                   bulk88
-
-chad.granum\100dreamhost.com            exodist7\100gmail.com
-choroba\100cpan.org                     choroba\100weed.(none)
-+                                       choroba\100matfyz.cz
-chromatic\100wgz.org                    chromatic\100rmci.net
-ckuskie\100cadence.com                  colink\100perldreamer.com
-claes\100surfar.nu                      claes\100versed.se
-clintp\100geeksalad.org                 cpierce1\100ford.com
-clkao\100clkao.org                      clkao\100bestpractical.com
-corion\100corion.net                    corion\100cpan.org
-+                                       github@corion.net
-cp\100onsitetech.com                    publiustemp-p5p\100yahoo.com
-+                                       publiustemp-p5p3\100yahoo.com
-+                                       ovid\100cpan.org
-cpan\100audreyt.org                     autrijus\100egb.elixus.org
-+                                       autrijus\100geb.elixus.org
-+                                       autrijus\100gmail.com
-+                                       autrijus\100ossf.iis.sinica.edu.tw
-+                                       autrijus\100autrijus.org
-+                                       audreyt\100audreyt.org
-cpan\100ton.iguana.be                   me-01\100ton.iguana.be
-crt\100kiski.net                        perl\100ctweten.amsite.com
-cp\100onsitetech.com                    ovid\100cpan.org
-dairiki\100dairiki.org                  dairiki at dairiki.org
-dagolden\100cpan.org                    xdaveg\100gmail.com
-+                                       xdg\100xdg.me
-damian\100conway.org                    damian\100cs.monash.edu.au
-dan\100sidhe.org                        sugalsd\100lbcc.cc.or.us
-+                                       sugalskd\100osshe.edu
-daniel\100bitpusher.com                 daniel\100biz.bitpusher.com
-dave\100mag-sol.com                     dave\100dave.org.uk
-+                                       dave\100perlhacks.com
-david.dyck\100fluke.com                 dcd\100tc.fluke.com
-david\100justatheory.com                david\100wheeler.net
-+                                       david\100kineticode.com
-+                                       david\100wheeler.com
-+                                       david\100wheeler.net
-whatever\100davidnicol.com              davidnicol\100gmail.com
-dennis\100booking.com                   dennis\100camel.ams6.corp.booking.com
-+					dennis.kaarsemaker\100booking.com
-+                                       dennis\100kaarsemaker.net
-dev-perl\100pimb.org                    knew-p5p\100pimb.org
-+                                       lists-p5p\100pimb.org
-djberg86\100attbi.com                   djberg96\100attbi.com
-dk\100tetsuo.karasik.eu.org             dmitry\100karasik.eu.org
-dma+github@stripysock.com               dominichamon@users.noreply.github.com
-dom\100earth.li                         dom\100semmle.com
-domo\100computer.org                    shouldbedomo\100mac.com
-+                                       domo\100slipper.ip.lu
-+                                       domo\100tcp.ip.lu
-dougm\100covalent.net                   dougm\100opengroup.org
-+                                       dougm\100osf.org
-dougw\100cpan.org                       doug_wilson\100intuit.com
-dwegscheid\100qtm.net                   wegscd\100whirlpool.com
-edwardp\100excitehome.net               epeschko\100den-mdev1
-+                                       epeschko\100elmer.tci.com
-+                                       esp5\100pge.com
-egf7\100columbia.edu                    efifer\100sanwaint.com
-eggert\100twinsun.com                   eggert\100sea.sm.unisys.com
-etj\100cpan.org                         mohawk2\100users.noreply.github.com
-
-fugazi\100zyx.net                       larrysh\100cpan.org
-+                                       lshatzer\100islanddata.com
-
-gbacon\100itsc.uah.edu                  gbacon\100adtrn-srv4.adtran.com
-gerberb\100zenez.com                    root\100devsys0.zenez.com
-gfuji\100cpan.org                       g.psy.va\100gmail.com
-genesullivan50\100yahoo.com             gsullivan\100cpan.org
-gerard\100ggoossen.net                  gerard\100tty.nl
-gibreel\100pobox.com                    stephen.zander\100interlock.mckesson.com
-+                                       srz\100loopback
-gideon\100cpan.org                      gidisrael\100gmail.com
-gnat\100frii.com                        gnat\100prometheus.frii.com
-gp\100familiehaase.de                   gerrit\100familiehaase.de
-grazz\100pobox.com                      grazz\100nyc.rr.com
-gward\100ase.com                        greg\100bic.mni.mcgill.ca
-haggai\100cpan.org                      alanhaggai\100alanhaggai.org
-+                                       alanhaggai\100gmail.com
-hansmu\100xs4all.nl                     hansm\100icgroup.nl
-+                                       hansm\100icgned.nl
-+                                       hans\100icgned.nl
-+                                       hans\100icgroup.nl
-+                                       hansm\100euronet.nl
-+                                       hansm\100euro.net
-hio\100ymir.co.jp                       hio\100hio.jp
-hops\100sco.com                         hops\100scoot.pdev.sco.com
-
-ian.goodacre\100xtra.co.nz              ian\100debian.lan
-ingo_weinhold\100gmx.de                 bonefish\100cs.tu-berlin.de
-
-james\100mastros.biz                    theorb\100desert-island.me.uk
-jan\100jandubois.com                    jand\100activestate.com
-+                                       jan.dubois\100ibm.net
-japhy\100pobox.com                      japhy\100pobox.org
-+                                       japhy\100perlmonk.org
-+                                       japhy\100cpan.org
-+                                       jeffp\100crusoe.net
-jari.aalto\100poboxes.com               jari.aalto\100cante.net
-jarausch\100numa1.igpm.rwth-aachen.de   helmutjarausch\100unknown
-jasons\100cs.unm.edu                    jasons\100sandy-home.arc.unm.edu
-jbuehler\100hekimian.com                jhpb\100hekimian.com
-jcromie\100cpan.org                      jcromie\100100divsol.com
-+                                       jim.cromie\100gmail.com
-jd\100cpanel.net                        lightsey\100debian.org
-+                                       john\10004755.net
-+                                       john\100nixnuts.net
-jdhedden\100cpan.org                    jerry\100hedden.us
-+                                       jdhedden\1001979.usna.com
-+                                       jdhedden\100gmail.com
-+                                       jdhedden\100yahoo.com
-+                                       jhedden\100pn100-02-2-356p.corp.bloomberg.com
-+                                       jdhedden\100solydxk
-jeremy\100zawodny.com                   jzawodn\100wcnet.org
-jesse\100sig.bsh.com                    jesse\100ginger
-jfriedl\100yahoo.com                    jfriedl\100yahoo-inc.com
-jfs\100fluent.com                       jfs\100jfs.fluent.com
-jhannah\100mutationgrid.com             jay\100jays.net
-+                                       jhannah\100omnihotels.com
-jidanni\100jidanni.org                  jidanni\100hoffa.dreamhost.com
-jjore\100cpan.org                       twists\100gmail.com
-jkeenan\100cpan.org                     jkeen\100verizon.net
-+                                       jkeenan\100dromedary-001.ams6.corp.booking.com
-jns\100integration-house.com            jns\100gellyfish.com
-+                                       gellyfish\100gellyfish.com
-john\100atlantech.com                   john\100titanic.atlantech.com
-john\100johnwright.org                  john.wright\100hp.com
-joseph\100cscaper.com                   joseph\1005sigma.com
-joshua\100rodd.us                       jrodd\100pbs.org
-jtobey\100john-edwin-tobey.org          jtobey\100user1.channel1.com
-jpeacock\100messagesystems.com          john.peacock\100havurah-software.org
-+                                       jpeacock\100havurah-software.org
-+                                       jpeacock\100dsl092-147-156.wdc1.dsl.speakeasy.net
-+                                       jpeacock\100jpeacock-hp.doesntexist.org
-+                                       jpeacock\100cpan.org
-+                                       jpeacock\100rowman.com
-james.schneider\100db.com               jschneid\100netilla.com
-jpl.jpl\100gmail.com                    jpl\100research.att.com
-jql\100accessone.com                    jql\100jql.accessone.com
-jsm28\100hermes.cam.ac.uk               jsm28\100cam.ac.uk
-
-kane\100dwim.org                        kane\100xs4all.net
-+                                       kane\100cpan.org
-+                                       kane\100xs4all.nl
-+                                       jos\100dwim.org
-+                                       jib\100ripe.net
-keith.s.thompson\100gmail.com           kst\100mib.org
-ken\100mathforum.org                    kenahoo\100gmail.com
-+                                       ken.williams\100thomsonreuters.com
-kentfredric\100gmail.com                kentnl\100cpan.org
-kmx\100volny.cz                         kmx\100volny.cz
-+                                       kmx\100cpan.org
-kroepke\100dolphin-services.de          kay\100dolphin-services.de
-kst\100mib.org                          kst\100cts.com
-+                                       kst\100SDSC.EDU
-kstar\100wolfetech.com                  kstar\100cpan.org
-+                                       kurt_starsinic\100ml.com
-+                                       kstar\100www.chapin.edu
-+                                       kstar\100chapin.edu
-larry\100wall.org                       lwall\100jpl-devvax.jpl.nasa.gov
-+                                       lwall\100netlabs.com
-+                                       larry\100netlabs.com
-+                                       lwall\100sems.com
-+                                       lwall\100scalpel.netlabs.com
-laszlo.molnar\100eth.ericsson.se        molnarl\100cdata.tvnet.hu
-+                                       ml1050\100freemail.hu
-lewart\100uiuc.edu                      lewart\100vadds.cvm.uiuc.edu
-+                                       d-lewart\100uiuc.edu
-lindblad@gmx.com                        52227507+apparluk\100users.noreply.github.com
-lkundrak\100v3.sk                       lubo.rintel\100gooddata.com
-lstein\100cshl.org                      lstein\100formaggio.cshl.org
-+                                       lstein\100genome.wi.mit.edu
-l.mai\100web.de                         plokinom\100gmail.com
-lupe\100lupe-christoph.de               lupe\100alanya.m.isar.de
-lutherh\100stratcom.com                 lutherh\100infinet.com
-mab\100wdl.loral.com                    markb\100rdcf.sm.unisys.com
-marcel\100codewerk.com                  gr\100univie.ac.at
-+                                       hanekomu\100gmail.com
-marcgreen\100cpan.org                   marcgreen\100wpi.edu
-markleightonfisher\100gmail.com         fisherm\100tce.com
-+                                       mark-fisher\100mindspring.com
-mark.p.lutz\100boeing.com               tecmpl1\100triton.ca.boeing.com
-marnix\100gmail.com                     pttesac!marnix!vanam
-marty+p5p\100kasei.com                  marty\100martian.org
-mats\100sm6sxl.net                      mats\100sm5sxl.net
-mbarbon\100dsi.unive.it                 mattia.barbon\100libero.it
-+                                       mattia\100barbon.org
-mcmahon\100ibiblio.org                  mcmahon\100metalab.unc.edu
-me\100davidglasser.net                  glasser\100tang-eleven-seventy-nine.mit.edu
-merijnb\100iloquent.nl                  merijnb\100ms.com
-+                                       merijnb\100iloquent.com
-merlyn\100stonehenge.com                merlyn\100gadget.cscaper.com
-mestre.smash\100gmail.com               smash\100cpan.org
-mgjv\100comdyn.com.au                   mgjv\100tradingpost.com.au
-mlh\100swl.msd.ray.com                  webtools\100uewrhp03.msd.ray.com
-michael.schroeder\100informatik.uni-erlangen.de mls\100suse.de
-mike\100stok.co.uk                      mike\100exegenix.com
-61100689+mikefultondev\100users.noreply.github.com mikefultonpersonal\100gmail.com
-miyagawa\100bulknews.net                    miyagawa\100edge.co.jp
-mjtg\100cam.ac.uk                       mjtg\100cus.cam.ac.uk
-mikedlr\100tardis.ed.ac.uk              mikedlr\100it.com.pl
-moritz\100casella.verplant.org          moritz\100faui2k3.org
-+                                       moritz lenz
-
-neale\100VMA.TABNSW.COM.AU              neale\100pucc.princeton.edu
-neeracher\100mac.com                    neeri\100iis.ee.ethz.ch
-neilb\100neilb.org                      neilb\100cre.canon.co.uk
-+                                       neil\100bowers.com
-
-nospam-abuse\100bloodgate.com           tels\100bloodgate.com
-+                                       perl_dummy\100bloodgate.com
-
-ian.phillipps\100iname.com              ian_phillipps\100yahoo.co.uk
-+                                       ian\100dial.pipex.com
-ignasi.roca\100fujitsu-siemens.com      ignasi.roca\100fujitsu.siemens.es
-ikegami\100adaelis.com                  eric\100fmdev10.(none)
-ilmari\100ilmari.org                    ilmari\100vesla.ilmari.org
-illpide\100telecel.pt                   arbor\100al37al08.telecel.pt
-# see http://www.nntp.perl.org/group/perl.perl5.porters/2001/01/msg28925.html
-#
-ilya\100math.berkeley.edu               ilya\100math.ohio-state.edu
-+                                       nospam-abuse\100ilyaz.org
-+                                       [9]ilya\100math.ohio-state.edu
-ilya\100martynov.org                    ilya\100juil.nonet
-
-joshua\100paloalto.com                  joshua.pritikin\100db.com
-
-litt\100acm.org                         tlhackque\100yahoo.com
-
-meyering@asic.sc.ti.com                 jim\100meyering.net
-
-okamoto\100corp.hp.com                  okamoto\100hpcc123.corp.hp.com
-orwant\100oreilly.com                   orwant\100media.mit.edu
-
-p5-authors\100crystalflame.net          perl\100crystalflame.net
-+                                       rs\100crystalflame.net
-+                                       coral\100eekeek.org
-+                                       coral\100moonlight.crystalflame.net
-+                                       rs\100oregonnet.com
-+                                       rs\100topsy.com
-paul.green\100stratus.com               paul_greenvos\100vos.stratus.com
-+                                       pgreen\100seussnt.stratus.com
-pmqs                                    pmqs\100cpan.org
-+                                       paul.marquess\100btinternet.com
-+                                       paul_marquess\100yahoo.co.uk
-+                                       paul.marquess\100ntlworld.com
-+                                       paul.marquess\100openwave.com
-+                                       pmarquess\100bfsec.bt.co.uk
-+                                       pmqs\100cpan.org
-+                                       paul\100paul-desktop.(none)
-Pavel.Zakouril\100mff.cuni.cz           root\100egg.karlov.mff.cuni.cz
-pcg\100goof.com                         schmorp\100schmorp.de
-perl\100cadop.com                       cdp\100hpescdp.fc.hp.com
-perl\100greerga.m-l.org                 greerga\100m-l.org
-perl\100profvince.com                   vince\100profvince.com
-perl-rt\100wizbit.be                    p5p\100perl.wizbit.be
-# Maybe we should special case this to get real names out?
-Peter.Dintelmann\100Dresdner-Bank.com   peter.dintelmann\100dresdner-bank.com
-# NOTE: There is an intentional trailing space in the line above
-pfeifer\100wait.de                      pfeifer\100charly.informatik.uni-dortmund.de
-+                                       upf\100de.uu.net
-pjacklam\100online.no                   pjacklam\100gmail.com
-ribasushi@cpan.org			rabbit\100rabbit.us
-+					rabbit+bugs\100rabbit.us
-arc\100cpan.org                         perl\100aaroncrane.co.uk
-+                                       arc@users.noreply.github.com
-phil\100perkpartners.com                phil\100finchcomputer.com
-pimlott\100idiomtech.com                andrew\100pimlott.net
-+                                       pimlott\100abel.math.harvard.edu
-pixel\100mandriva.com                   pixel\100mandrakesoft.com
-pne\100cpan.org                         philip.newton\100gmx.net
-+                                       philip.newton\100datenrevision.de
-+                                       pnewton\100gmx.de
-pprymmer\100factset.com                 pvhp\100forte.com
-khw\100cpan.org                         khw\100karl.(none)
-+                                       public\100khwilliamson.com
-+                                       khw\100khw-desktop.(none)
-
-radu\100netsoft.ro                      rgreab\100fx.ro
-raiph                                   \100raiph
-+                                       raiph.mellor\100gmail.com
-rajagopa\100pauline.schrodinger.com     rajagopa\100schrodinger.com
-raphael.manfredi\100pobox.com           raphael_manfredi\100grenoble.hp.com
-info\100perl-services.de                renee.baecker\100smart-websolutions.de
-+                                       reneeb\100reneeb-desktop.(none)
-+                                       github\100renee-baecker.de
-+                                       otrs\100ubuntu.(none)
-+                                       perl\100renee-baecker.de
-+                                       reb\100perl-services.de
-+                                       module\100renee-baecker.de
-rich+perl\100hyphen-dash-hyphen.info    richardleach\100users.noreply.github.com
-richard.foley\100rfi.net                richard.foley\100t-online.de
-+                                       richard.foley\100ubs.com
-+                                       richard.foley\100ubsw.com
-rick\100consumercontact.com             rick\100bort.ca
-+                                       rick.delaney\100rogers.com
-+                                       rick\100bort.ca
-+                                       rick.delaney\100home.com
-rjbs\100cpan.org                        rjbs-perl-p5p\100lists.manxome.org
-+                                       perl.p5p\100rjbs.manxome.org
-+                                       rjbs\100semiotic.systems
-+                                       rjbs\100users.noreply.github.com
-rjk\100linguist.dartmouth.edu           rjk\100linguist.thayer.dartmouth.edu
-+                                       rjk-perl-p5p\100tamias.net
-+                                       rjk\100tamias.net
-rjray\100redhat.com                     rjray\100uswest.com
-rmgiroux\100acm.org                     rmgiroux\100hotmail.com
-+                                       mgiroux\100bear.com
-rmbarker\100cpan.org                    rmb1\100cise.npl.co.uk
-+                                       robin.barker\100npl.co.uk
-+                                       rmb\100cise.npl.co.uk
-+                                       robin\100spade-ubuntu.(none)
-+                                       r.m.barker\100btinternet.com
-+                                       rmbarker.cpan\100btinternet.com
-robertmay\100cpan.org                   rob\100themayfamily.me.uk
-roberto\100keltia.freenix.fr            roberto\100eurocontrol.fr
-robin\100cpan.org                       robin\100kitsite.com
-roderick\100argon.org                   roderick\100gate.net
-+                                       roderick\100ibcinc.com
-argrath\100ub32.org                     root\100ub32.org
-rootbeer\100teleport.com                rootbeer\100redcat.com
-+                                       tomphoenix\100unknown
-rra\100stanford.edu                     rra\100cpan.org
-rurban\100cpan.org                      rurban\100x-ray.at
-+                                       rurban\100cpanel.net
-rvtol+news\100isolution.nl              rvtol\100isolution.nl
-sartak\100gmail.com                     sartak\100bestpractical.com
-+                                       code\100sartak.org
-danny-cpan\100sadinoff.com              sadinoff\100olf.com
-schubiger\100cpan.org                   steven\100accognoscere.org
-+                                       sts\100accognoscere.org
-+                                       schubiger\100gmail.com
-+                                       stsc\100refcnt.org
-schwern\100pobox.com                    schwern\100gmail.com
-+                                       schwern\100athens.arena-i.com
-+                                       schwern\100blackrider.aocn.com
-+                                       schwern\100ool-18b93024.dyn.optonline.net
-scop\100cs132170.pp.htv.fi              ville.skytta\100iki.fi
-scotth\100sgi.com                       author scotth\100sgi.com 842220273 +0000
-+                                       schotth\100sgi.com
-schwab\100suse.de                       schwab\100issan.informatik.uni-dortmund.de
-+                                       schwab\100ls5.informatik.uni-dortmund.de
-sebastien\100aperghis.net               maddingue\100free.fr
-+                                       saper\100cpan.org
-shigeya\100wide.ad.jp                   shigeya\100foretune.co.jp
-shlomif\100cpan.org                     shlomif\100vipe.technion.ac.il
-+                                       shlomif\100iglu.org.il
-+                                       shlomif+processed-by-perl\100gmail.com
-+                                       shlomif\100shlomifish.org
-simon\100netthink.co.uk                 simon\100simon-cozens.org
-+                                       simon\100pembro4.pmb.ox.ac.uk
-+                                       simon\100brecon.co.uk
-+                                       simon\100othersideofthe.earth.li
-+                                       simon\100cozens.net
-+
-sisyphus\100cpan.org                    sisyphus1\100optusnet.com.au
-+                                       sisyphus359\100gmail.com
-lannings\100who.int                     lannings\100gmail.com
-+                                       slanning\100cpan.org
-slaven\100rezic.de                      slaven.rezic\100berlin.de
-+                                       srezic\100iconmobile.com
-+                                       srezic\100cpan.org
-+                                       eserte\100cs.tu-berlin.de
-+                                       eserte\100vran.herceg.de
-smcc\100mit.edu                         smcc\100ocf.berkeley.edu
-+                                       smcc\100csua.berkeley.edu
-+                                       alias\100mcs.com
-+                                       smccam\100uclink4.berkeley.edu
-spider\100orb.nashua.nh.us              spider\100web.zk3.dec.com
-+                                       spider\100leggy.zk3.dec.com
-+                                       spider-perl\100orb.nashua.nh.us
-+                                       spider\100peano.zk3.dec.com
-+                                       spider.boardman\100orb.nashua.nh.us>
-+                                       spidb\100cpan.org
-+                                       spider.boardman\100orb.nashua.nh.us
-+                                       root\100peano.zk3.dec.com
-s.denaxas\100gmail.com                  spiros\100lokku.com
-spp\100ds.net                           spp\100psa.pencom.com
-+                                       spp\100psasolar.colltech.com
-+                                       spp\100spotter.yi.org
-stef\100mongueurs.net                   stef\100payrard.net
-+                                       s.payrard\100wanadoo.fr
-+                                       properler\100freesurf.fr
-+                                       stef\100francenet.fr
-stevan\100cpan.org                      stevan.little\100gmail.com
-+                                       stevan.little\100iinteractive.com
-sthoenna\100efn.org                     ysth\100raven.shiftboard.com
-
-tassilo.parseval\100post.rwth-aachen.de tassilo.von.parseval\100rwth-aachen.de
-tchrist\100perl.com                     tchrist\100mox.perl.com
-+                                       tchrist\100jhereg.perl.com
-thomas.dorner\100start.de               tdorner\100amadeus.net
-tjenness\100cpan.org                    t.jenness\100jach.hawaii.edu
-+                                       timj\100jach.hawaii.edu
-tobez\100tobez.org                      tobez\100plab.ku.dk
-toddr\100cpan.org                       toddr\100cpanel.net
-tom\100compton.nu                       thh\100cyberscience.com
-tom.horsley\100mail.ccur.com            tom.horsley\100ccur.com
-+                                       tom\100amber.ssd.hcsc.com
-
-vkonovalov\100lucent.com                vkonovalov\100peterstar.ru
-+                                       konovalo\100mail.wplus.net
-+                                       vadim\100vkonovalov.ru
-+                                       vkonovalov\100spb.lucent.com
-+                                       vkonovalov\100alcatel-lucent.com
-+                                       vadim.konovalov\100alcatel-lucent.com
-
-whatever\100davidnicol.com              davidnicol\100gmail.com
-wolfgang.laun\100alcatel.at             wolfgang.laun\100chello.at
-+                                       wolfgang.laun\100thalesgroup.com
-+                                       wolfgang.laun\100gmail.com
-wolfsage\100gmail.com                   mhorsfall\100darmstadtium.(none)
-yath\100yath.de                         yath-perlbug\100yath.de
Index: gnu/usr.bin/perl/Porting/checkcfgvar.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/checkcfgvar.pl,v
diff -u -p -a -u -p -r1.5 checkcfgvar.pl
--- gnu/usr.bin/perl/Porting/checkcfgvar.pl	15 Feb 2023 01:36:14 -0000	1.5
+++ gnu/usr.bin/perl/Porting/checkcfgvar.pl	21 Feb 2024 15:47:00 -0000
@@ -7,34 +7,29 @@
 #
 # VMS is probably not handled properly here, due to their own
 # rather elaborate DCL scripting.
-#
 
 use strict;
 use warnings;
 use autodie;
 
-sub usage
-{
+sub usage {
     my $err = shift and select STDERR;
     print "usage: $0 [--list] [--regen] [--default=value]\n";
     exit $err;
     } # usage
 
-use Getopt::Long;
-my $opt_l = 0;
-my $opt_r = 0;
-my $default;
-my $tap = 0;
-my $test;
+use Getopt::Long qw(:config bundling);
 GetOptions (
-    "help|?"	=> sub { usage (0); },
-    "l|list!"	=> \$opt_l,
-    "regen"	=> \$opt_r,
-    "default=s" => \$default,
-    "tap"	=> \$tap,
+    "help|?"      => sub { usage (0); },
+    "l|list!"     => \(my $opt_l = 0),
+    "regen"       => \(my $opt_r = 0),
+    "default=s"   => \ my $default,
+    "tap"         => \(my $tap   = 0),
+    "v|verbose:1" => \(my $opt_v = 0),
     ) or usage (1);
 
 $default and $default =~ s/^'(.*)'$/$1/; # Will be quoted on generation
+my $test;
 
 require './regen/regen_lib.pl' if $opt_r;
 
@@ -61,6 +56,7 @@ my @CFG = (
 my @MASTER_CFG;
 {
     my %seen;
+    $opt_v and warn "Reading $MASTER_CFG ...\n";
     open my $fh, '<', $MASTER_CFG;
     while (<$fh>) {
 	while (/[^\\]\$([a-z]\w+)/g) {
@@ -76,6 +72,7 @@ my @MASTER_CFG;
 my %MANIFEST;
 
 {
+    $opt_v and warn "Reading MANIFEST ...\n";
     open my $fh, '<', 'MANIFEST';
     while (<$fh>) {
 	$MANIFEST{$1}++ if /^(.+?)\t/;
@@ -87,14 +84,15 @@ printf "1..%d\n", 2 * @CFG if $tap;
 
 for my $cfg (sort @CFG) {
     unless (exists $MANIFEST{$cfg}) {
-	print STDERR "[skipping not-expected '$cfg']\n";
+	warn "[skipping not-expected '$cfg']\n";
 	next;
     }
     my %cfg;
     my $section = 0;
     my @lines;
 
-    open my $fh, '<', $cfg;
+    $opt_v and warn "Reading $cfg ...\n";
+    open my $fh, '<', $cfg or die "$cfg: $!\n";
 
     if ($cfg eq 'configure.com') {
 	++$cfg{startperl}; # Cheat.
Index: gnu/usr.bin/perl/Porting/cmpVERSION.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/cmpVERSION.pl,v
diff -u -p -a -u -p -r1.6 cmpVERSION.pl
--- gnu/usr.bin/perl/Porting/cmpVERSION.pl	15 Feb 2023 01:36:14 -0000	1.6
+++ gnu/usr.bin/perl/Porting/cmpVERSION.pl	21 Feb 2024 15:47:00 -0000
@@ -19,13 +19,14 @@ use 5.006;
 use ExtUtils::MakeMaker;
 use File::Spec::Functions qw(devnull);
 use Getopt::Long;
+use Time::Local qw(timelocal_posix);
 
 my ($diffs, $exclude_upstream, $tag_to_compare, $tap);
 unless (GetOptions('diffs' => \$diffs,
-		   'exclude|x' => \$exclude_upstream,
-		   'tag=s' => \$tag_to_compare,
-		   'tap' => \$tap,
-		   ) && @ARGV == 0) {
+                   'exclude|x' => \$exclude_upstream,
+                   'tag=s' => \$tag_to_compare,
+                   'tap' => \$tap,
+                   ) && @ARGV == 0) {
     die "usage: $0 [ -d -x --tag TAG --tap]";
 }
 
@@ -39,12 +40,12 @@ if (-d ".git" || (exists $ENV{GIT_DIR} &
     my $found;
     if (-f '.git') {
         # the hash of the initial commit in perl.git (perl-1.0)
-	my $commit = '8d063cd8450e59ea1c611a2f4f5a21059a2804f1';
-	my $out = `git rev-parse --verify --quiet '$commit^{commit}'`;
-	chomp $out;
-	if($out eq $commit) {
+        my $commit = '8d063cd8450e59ea1c611a2f4f5a21059a2804f1';
+        my $out = `git rev-parse --verify --quiet '$commit^{commit}'`;
+        chomp $out;
+        if($out eq $commit) {
             ++$found;
-	}
+        }
     }
 
     die "$0: This is a Perl directory but does not look like Git working directory\n"
@@ -68,7 +69,7 @@ unless (defined $tag_to_compare) {
 
 unless (length $tag_to_compare) {
     die "$0: Git found, but no Git tags found\n"
-	unless $tap;
+        unless $tap;
     print "1..0 # SKIP: Git found, but no Git tags found\n";
     exit 0;
 }
@@ -82,15 +83,45 @@ unless ($tag_exists eq $tag_to_compare) 
     exit 0;
 }
 
+my $commit_epoch = `git log -1 --format="%ct"`;
+chomp($commit_epoch);
+# old git versions dont support taggerdate:unix. so use :iso8601 and then
+# use timelocal_posix() to convert to an epoch.
+my $tag_date = `git for-each-ref --format="%(taggerdate:iso8601)" refs/tags/$tag_to_compare`;
+chomp($tag_date);
+my $tag_epoch= do {
+    my ($Y,$M,$D,$h,$m,$s) = split /[- :]/, $tag_date; # 2023-03-20 22:49:09
+    timelocal_posix($s,$m,$h,$D,$M,$Y);
+};
+
+if ($commit_epoch - $tag_epoch > 60 * 24 * 60 * 60) {
+    my $months = sprintf "%.2f", ($commit_epoch - $tag_epoch) / (30 * 24 * 60 * 60);
+    my $message=
+        "Tag '$tag_to_compare' is very old compared to the most recent commit.\n"
+      . "We normally release a new version every month, and this one is $months months\n"
+      . "older than the current commit.  You probably have not synchronized your tags.\n"
+      . "This is common with github clones.  You can try the following:\n"
+      . "\n"
+      . "  git remote add -f upstream git\@github.com:Perl/perl5.git\n"
+      . "\n"
+      . "to fix your checkout.\n";
+    die "$0: $message" unless $tap;
+    $message= "$message";
+    $message=~s/^/# /mg;
+    print STDERR "\n$message";
+    print "1..0 # SKIP: Tag '$tag_to_compare' is $months months old. Update your tags!\n";
+    exit 0;
+}
+
 my %upstream_files;
 if ($exclude_upstream) {
     unshift @INC, 'Porting';
     require Maintainers;
 
     for my $m (grep {!defined $Maintainers::Modules{$_}{UPSTREAM}
-			 or $Maintainers::Modules{$_}{UPSTREAM} ne 'blead'}
-	       keys %Maintainers::Modules) {
-	$upstream_files{$_} = 1 for Maintainers::get_module_files($m);
+                         or $Maintainers::Modules{$_}{UPSTREAM} ne 'blead'}
+               keys %Maintainers::Modules) {
+        $upstream_files{$_} = 1 for Maintainers::get_module_files($m);
     }
 }
 
@@ -140,8 +171,8 @@ my %skip;
 # usually due to some # mix-up
 
 my %skip_versions = (
-	   # 'some/sample/file.pm' => [ '1.23', '1.24' ],
-	  );
+    # 'some/sample/file.pm' => [ '1.23', '1.24' ],
+);
 
 my $skip_dirs = qr|^t/lib|;
 
@@ -149,30 +180,30 @@ sub pm_file_from_xs {
     my $xs = shift;
 
     foreach my $try (sub {
-			 # First try a .pm at the same level as the .xs file
-			 # with the same basename
-			 return shift =~ s/\.xs\z//r;
-		     },
-		     sub {
-			 # Try for a (different) .pm at the same level, based
-			 # on the directory name:
-			 my ($path) = shift =~ m!^(.*)/!;
-			 my ($last) = $path =~ m!([^-/]+)\z!;
-			 return "$path/$last";
-		     },
-		     sub {
-			 # Try to work out the extension's full package, and
-			 # look for a .pm in lib/ based on that:
-			 my ($path) = shift =~ m!^(.*)/!;
-			 my ($last) = $path =~ m!([^/]+)\z!;
-			 $last = 'List-Util' if $last eq 'Scalar-List-Utils';
-			 $last =~ tr !-!/!;
-			 return "$path/lib/$last";
-		     }) {
-	# For all cases, first look to see if the .pm file is generated.
-	my $base = $try->($xs);
-	return "${base}_pm.PL" if -f "${base}_pm.PL";
-	return "${base}.pm" if -f "${base}.pm";
+                         # First try a .pm at the same level as the .xs file
+                         # with the same basename
+                         return shift =~ s/\.xs\z//r;
+                     },
+                     sub {
+                         # Try for a (different) .pm at the same level, based
+                         # on the directory name:
+                         my ($path) = shift =~ m!^(.*)/!;
+                         my ($last) = $path =~ m!([^-/]+)\z!;
+                         return "$path/$last";
+                     },
+                     sub {
+                         # Try to work out the extension's full package, and
+                         # look for a .pm in lib/ based on that:
+                         my ($path) = shift =~ m!^(.*)/!;
+                         my ($last) = $path =~ m!([^/]+)\z!;
+                         $last = 'List-Util' if $last eq 'Scalar-List-Utils';
+                         $last =~ tr !-!/!;
+                         return "$path/lib/$last";
+                     }) {
+        # For all cases, first look to see if the .pm file is generated.
+        my $base = $try->($xs);
+        return "${base}_pm.PL" if -f "${base}_pm.PL";
+        return "${base}.pm" if -f "${base}.pm";
     }
 
     die "No idea which .pm file corresponds to '$xs', so aborting";
@@ -185,6 +216,7 @@ sub pm_file_from_xs {
 # with XS modules with more than one XS file, and "interesting" layouts.
 
 my %module_diffs;
+my %dist_diffs;
 
 foreach (`git --no-pager diff --name-only $tag_to_compare --diff-filter=ACMRTUXB`) {
     chomp;
@@ -193,24 +225,27 @@ foreach (`git --no-pager diff --name-onl
     next if $this_dir =~ $skip_dirs || exists $skip{$_};
     next if exists $upstream_files{$_};
     if (/\.pm\z/ || m|^lib/.*\.pl\z| || /_pm\.PL\z/) {
-	push @{$module_diffs{$_}}, $_;
+        push @{$module_diffs{$_}}, $_;
     } elsif (/\.xs\z/ && !/\bt\b/) {
-	push @{$module_diffs{pm_file_from_xs($_)}}, $_;
+        push @{$module_diffs{pm_file_from_xs($_)}}, $_;
+    } elsif (!/\bt\b/ && /\.[ch]\z/ && m!^((?:dist|ext|cpan)/[^/]+)/!) {
+       push @{ $dist_diffs{$1} }, $_;
     }
 }
 
-unless (%module_diffs) {
+unless (%module_diffs || %dist_diffs) {
     print "1..1\nok 1 - No difference found\n" if $tap;
     exit;
 }
 
-printf "1..%d\n" => scalar keys %module_diffs if $tap;
+printf "1..%d\n" => (keys(%module_diffs) + keys (%dist_diffs)) if $tap;
 print "#\n# Comparing against $tag_to_compare ....\n#\n" if $tap;
 
 my $count;
 my $diff_cmd = "git --no-pager diff $tag_to_compare ";
 my $q = ($^O eq 'MSWin32' || $^O eq 'VMS') ? '"' : "'";
 my (@diff);
+my %dist_bumped;
 
 foreach my $pm_file (sort keys %module_diffs) {
     # git has already told us that the files differ, so no need to grab each as
@@ -223,34 +258,59 @@ foreach my $pm_file (sort keys %module_d
     if (!defined $orig_pm_version || $orig_pm_version eq 'undef') { # sigh
         print "ok $count - SKIP Can't parse \$VERSION in $pm_file\n"
           if $tap;
+
+        # Behave like a version bump if the orig version could not be parsed,
+        # but the current file could
+        if (defined $pm_version && $pm_version ne 'undef' && $pm_file =~ m!^((?:dist|ext|cpan)/[^/]+)/!) {
+            $dist_bumped{$1}++;
+        }
     } elsif (!defined $pm_version || $pm_version eq 'undef') {
         my $nok = "not ok $count - in $pm_file version was $orig_pm_version, now unparsable\n";
         print $nok if $tap;
         print STDERR "# $nok\n";
     } elsif ($pm_version ne $orig_pm_version) { # good
         print "ok $count - $pm_file\n" if $tap;
+        if ($pm_file =~ m!^((?:dist|ext|cpan)/[^/]+)/!) {
+           $dist_bumped{$1}++;
+        }
     } else {
-	if ($tap) {
+        if ($tap) {
             print "#\n# " . '-' x 75 . "\n"
             . "# Version number ($pm_version) unchanged since"
             . " $tag_to_compare, but contents have changed:\n#\n";
-	    foreach (sort @{$module_diffs{$pm_file}}) {
-		print "# $_" for `$diff_cmd $q$_$q`;
-	    }
+            foreach (sort @{$module_diffs{$pm_file}}) {
+                print "# $_" for `$diff_cmd $q$_$q`;
+            }
             print "# " . '-' x 75 . "\n";
 
-	    if (exists $skip_versions{$pm_file}
-		and grep $pm_version eq $_, @{$skip_versions{$pm_file}}) {
-		print "ok $count - SKIP $pm_file version $pm_version\n";
-	    } else {
-		my $nok = "not ok $count - $pm_file version $pm_version\n";
-		print $nok;
-		print STDERR "# $nok";
-	    }
-	} else {
-	    push @diff, @{$module_diffs{$pm_file}};
-	    print "$pm_file version $pm_version\n";
-	}
+            if (exists $skip_versions{$pm_file}
+                and grep $pm_version eq $_, @{$skip_versions{$pm_file}}) {
+                print "ok $count - SKIP $pm_file version $pm_version\n";
+            } else {
+                my $nok = "not ok $count - $pm_file version $pm_version\n";
+                print $nok;
+                print STDERR "# $nok";
+            }
+        } else {
+            push @diff, @{$module_diffs{$pm_file}};
+            print "$pm_file version $pm_version\n";
+        }
+    }
+}
+
+foreach my $dist (sort keys %dist_diffs) {
+    my $file_count = @{ $dist_diffs{$dist} };
+    my $msg = $file_count == 1 ? "file was" : "files were";
+    ++$count;
+
+    if ($dist_bumped{$dist}) {
+         print "ok $count - in $dist $file_count $msg modified and a version was bumped\n";
+    } else {
+        my $nok = "not ok $count - in $dist $file_count $msg modified but no versions were bumped\n";
+        print "# No versions bumped in $dist but $file_count $msg modified\n";
+        print "# $_\n" for (sort @{$dist_diffs{$dist}});
+        print $nok if $tap;
+        print STDERR "# $nok\n";
     }
 }
 
@@ -264,7 +324,7 @@ sub get_file_from_git {
 
 if ($diffs) {
     for (sort @diff) {
-	print "\n";
-	system "$diff_cmd $q$_$q";
+        print "\n";
+        system "$diff_cmd $q$_$q";
     }
 }
Index: gnu/usr.bin/perl/Porting/config.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/config.sh,v
diff -u -p -a -u -p -r1.17 config.sh
--- gnu/usr.bin/perl/Porting/config.sh	23 Dec 2023 21:02:20 -0000	1.17
+++ gnu/usr.bin/perl/Porting/config.sh	21 Feb 2024 15:47:00 -0000
@@ -8,25 +8,20 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Sat Aug 22 16:03:38 CEST 2020
-# Configured by     : yourname
-# Target system     : linux lx09 5.8.0-1-default #1 smp tue aug 4 07:30:59 utc 2020 (9bc0044) x86_64 x86_64 x86_64 gnulinux 
+# Configuration time: Fri Apr 28 15:57:25 CEST 2023
+# Configured by     : merijn
+# Target system     : linux lx09 6.2.12-1-default #1 smp preempt_dynamic thu apr 20 11:01:10 utc 2023 (eb3255d) x86_64 x86_64 x86_64 gnulinux 
 
 : Configure command line arguments.
-config_arg0='Configure'
-config_args='-Dprefix=/opt/perl -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -Duse64bitint -Duselongdouble -Dusethreads -Dusedevel -des'
-config_argc=11
-config_arg1='-Dprefix=/opt/perl'
-config_arg2='-Dcf_by=yourname'
-config_arg3='-Dcf_email=yourname@yourhost.yourplace.com'
-config_arg4='-Dperladmin=yourname@yourhost.yourplace.com'
-config_arg5='-Dmydomain=.yourplace.com'
-config_arg6='-Dmyhostname=yourhost'
-config_arg7='-Duse64bitint'
-config_arg8='-Duselongdouble'
-config_arg9='-Dusethreads'
-config_arg10='-Dusedevel'
-config_arg11='-des'
+config_arg0='./Configure'
+config_args='-Dusedevel -Duse64bitall -Dusequadmath -Dusethreads -Duseithreads -des'
+config_argc=6
+config_arg1='-Dusedevel'
+config_arg2='-Duse64bitall'
+config_arg3='-Dusequadmath'
+config_arg4='-Dusethreads'
+config_arg5='-Duseithreads'
+config_arg6='-des'
 
 Author=''
 Date=''
@@ -44,24 +39,24 @@ _o='.o'
 afs='false'
 afsroot='/afs'
 alignbytes='16'
-aphostname=''
+aphostname='/usr/bin/hostname'
 api_revision='5'
 api_subversion='0'
-api_version='36'
-api_versionstring='5.36.0'
+api_version='38'
+api_versionstring='5.38.0'
 ar='ar'
-archlib='/opt/perl/lib/5.36.3/x86_64-linux-thread-multi-ld'
-archlibexp='/opt/perl/lib/5.36.3/x86_64-linux-thread-multi-ld'
+archlib='/pro/lib/perl5/5.38.2/x86_64-linux-thread-multi-quadmath'
+archlibexp='/pro/lib/perl5/5.38.2/x86_64-linux-thread-multi-quadmath'
 archname64=''
-archname='x86_64-linux-thread-multi-ld'
+archname='x86_64-linux-thread-multi-quadmath'
 archobjs=''
 asctime_r_proto='REENTRANT_PROTO_B_SB'
 awk='awk'
 baserev='5.0'
 bash=''
-bin='/opt/perl/bin'
+bin='/pro/bin'
 bin_ELF='define'
-binexp='/opt/perl/bin'
+binexp='/pro/bin'
 bison='bison'
 byacc='byacc'
 byteorder='12345678'
@@ -71,14 +66,14 @@ cat='cat'
 cc='cc'
 cccdlflags='-fPIC'
 ccdlflags='-Wl,-E'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+ccflags='-D_REENTRANT -D_GNU_SOURCE -pie -fPIE -fPIC -DDEBUGGING -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='gcc'
 ccsymbols=''
 ccversion=''
-cf_by='yourname'
-cf_email='yourname@yourhost.yourplace.com'
-cf_time='Sat Aug 22 16:03:38 CEST 2020'
+cf_by='merijn'
+cf_email='hmbrand@cpan.org'
+cf_time='Fri Apr 28 15:57:25 CEST 2023'
 charbits='8'
 charsize='1'
 chgrp=''
@@ -94,18 +89,18 @@ cpio=''
 cpp='cpp'
 cpp_stuff='42'
 cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
+cppflags='-D_REENTRANT -D_GNU_SOURCE -pie -fPIE -fPIC -DDEBUGGING -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
 cpplast='-'
 cppminus='-'
 cpprun='cc  -E'
 cppstdin='cc  -E'
-cppsymbols='__amd64=1 __amd64__=1 __ATOMIC_ACQ_REL=4 __ATOMIC_ACQUIRE=2 __ATOMIC_CONSUME=1 __ATOMIC_HLE_ACQUIRE=65536 __ATOMIC_HLE_RELEASE=131072 __ATOMIC_RELAXED=0 __ATOMIC_RELEASE=3 __ATOMIC_SEQ_CST=5 __BIGGEST_ALIGNMENT__=16 __BYTE_ORDER__=1234 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __code_model_small__=1 __DBL_DECIMAL_DIG__=17 __DBL_DENORM_MIN__=((double)4.94065645841246544176568792868221372e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308084726333618164062e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX__=((double)1.79769313486231570814527423731704357e+308L) __DBL_MAX_EXP__=1024 __DBL_MIN_10_EXP__=(-307) __DBL_MIN__=((double)2.22507385850720138309023271733240406e-308L) __DBL_MIN_EXP__=(-1021) __DBL_NORM_MAX__=((double)1.79769313486231570814527423731704357e+308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MAX_EXP__=6145 __DEC128_MIN__=1E-6143DL __DEC128_MIN_EXP__=(-6142) __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX__=9.999999E96DF __DEC32_MAX_EXP__=97 __DEC32_MIN__=1E-95DF __DEC32_MIN_EXP__=(-94) __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MAX_EXP__=385 __DEC64_MIN__=1E-383DD __DEC64_MIN_EXP__=(-382) __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DEC_EVAL_METHOD__=2 __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __ELF__=1 _FILE_OFFSET_BITS=64 __FINITE_MATH_ONLY__=0 __FLOAT_WORD_ORDER__=1234 __FLT128_DECIMAL_DIG__=36 __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128 __FLT128_DIG__=33 __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128 __FLT128_HAS_DENORM__=1 __FLT128_HAS_INFINITY__=1 __FLT128_HAS_QUIET_NAN__=1 __FLT128_MANT_DIG__=113 __FLT128_MAX_10_EXP__=4932 __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128 __FLT128_MAX_EXP__=16384 __FLT128_MIN_10_EXP__=(-4931) __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128 __FLT128_MIN_EXP__=(-16381) __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128 __FLT32_DECIMAL_DIG__=9 __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32 __FLT32_DIG__=6 __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32 __FLT32_HAS_DENORM__=1 __FLT32_HAS_INFINITY__=1 __FLT32_HAS_QUIET_NAN__=1 __FLT32_MANT_DIG__=24 __FLT32_MAX_10_EXP__=38 __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32 __FLT32_MAX_EXP__=128 __FLT32_MIN_10_EXP__=(-37) __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32 __FLT32_MIN_EXP__=(-125) __FLT32_NORM_MAX__=3.40282346638528859811704183484516925e+38F32 __FLT32X_DECIMAL_DIG__=17 __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x __FLT32X_DIG__=15 __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x __FLT32X_HAS_DENORM__=1 __FLT32X_HAS_INFINITY__=1 __FLT32X_HAS_QUIET_NAN__=1 __FLT32X_MANT_DIG__=53 __FLT32X_MAX_10_EXP__=308 __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x __FLT32X_MAX_EXP__=1024 __FLT32X_MIN_10_EXP__=(-307) __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x __FLT32X_MIN_EXP__=(-1021) __FLT32X_NORM_MAX__=1.79769313486231570814527423731704357e+308F32x __FLT64_DECIMAL_DIG__=17 __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64 __FLT64_DIG__=15 __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64 __FLT64_HAS_DENORM__=1 __FLT64_HAS_INFINITY__=1 __FLT64_HAS_QUIET_NAN__=1 __FLT64_MANT_DIG__=53 __FLT64_MAX_10_EXP__=308 __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64 __FLT64_MAX_EXP__=1024 __FLT64_MIN_10_EXP__=(-307) __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64 __FLT64_MIN_EXP__=(-1021) __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64 __FLT64X_DECIMAL_DIG__=21 __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x __FLT64X_DIG__=18 __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x __FLT64X_HAS_DENORM__=1 __FLT64X_HAS_INFINITY__=1 __FLT64X_HAS_QUIET_NAN__=1 __FLT64X_MANT_DIG__=64 __FLT64X_MAX_10_EXP__=4932 __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x __FLT64X_MAX_EXP__=16384 __FLT64X_MIN_10_EXP__=(-4931) __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x __FLT64X_MIN_EXP__=(-16381) __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x __FLT_DECIMAL_DIG__=9 __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F __FLT_EVAL_METHOD__=0 __FLT_EVAL_METHOD_TS_18661_3__=0 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX__=3.40282346638528859811704183484516925e+38F __FLT_MAX_EXP__=128 __FLT_MIN_10_EXP__=(-37) __FLT_MIN__=1.17549435082228750796873653722224568e-38F __FLT_MIN_EXP__=(-125) __FLT_NORM_MAX__=3.40282346638528859811704183484516925e+38F __FLT_RADIX__=2 __FXSR__=1 __GCC_ASM_FLAG_OUTPUTS__=1 __GCC_ATOMIC_BOOL_LOCK_FREE=2 __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR_LOCK_FREE=2 __GCC_ATOMIC_INT_LOCK_FREE=2 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_ATOMIC_LONG_LOCK_FREE=2 __GCC_ATOMIC_POINTER_LOCK_FREE=2 __GCC_ATOMIC_SHORT_LOCK_FREE=2 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1 __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2 __GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GCC_IEC_559=2 __GCC_IEC_559_COMPLEX=2 __GLIBC__=2 __GLIBC_MINOR__=31 __GNUC__=10 __GNUC_MINOR__=2 __GNUC_PATCHLEVEL__=1 __GNUC_STDC_INLINE__=1 __GNU_LIBRARY__=6 __gnu_linux__=1 _GNU_SOURCE=1 __GXX_ABI_VERSION=1014 __HAVE_SPECULATION_SAFE_VALUE=1 __INT16_C=__INT16_C __INT16_MAX__=0x7fff __INT16_TYPE__=short\ int __INT32_C=__INT32_C __INT32_MAX__=0x7fffffff __INT32_TYPE__=int __INT64_C=__INT64_C __INT64_MAX__=0x7fffffffffffffffL __INT64_TYPE__=long\ int __INT8_C=__INT8_C __INT8_MAX__=0x7f __INT8_TYPE__=signed\ char __INT_FAST16_MAX__=0x7fffffffffffffffL __INT_FAST16_TYPE__=long\ int __INT_FAST16_WIDTH__=64 __INT_FAST32_MAX__=0x7fffffffffffffffL __INT_FAST32_TYPE__=long\ int __INT_FAST32_WIDTH__=64 __INT_FAST64_MAX__=0x7fffffffffffffffL __INT_FAST64_TYPE__=long\ int __INT_FAST64_WIDTH__=64 __INT_FAST8_MAX__=0x7f __INT_FAST8_TYPE__=signed\ char __INT_FAST8_WIDTH__=8 __INT_LEAST16_MAX__=0x7fff __INT_LEAST16_TYPE__=short\ int __INT_LEAST16_WIDTH__=16 __INT_LEAST32_MAX__=0x7fffffff __INT_LEAST32_TYPE__=int __INT_LEAST32_WIDTH__=32 __INT_LEAST64_MAX__=0x7fffffffffffffffL __INT_LEAST64_TYPE__=long\ int __INT_LEAST64_WIDTH__=64 __INT_LEAST8_MAX__=0x7f __INT_LEAST8_TYPE__=signed\ char __INT_LEAST8_WIDTH__=8 __INT_MAX__=0x7fffffff __INTMAX_C=__INTMAX_C __INTMAX_MAX__=0x7fffffffffffffffL __INTMAX_TYPE__=long\ int __INTMAX_WIDTH__=64 __INTPTR_MAX__=0x7fffffffffffffffL __INTPTR_TYPE__=long\ int __INTPTR_WIDTH__=64 __INT_WIDTH__=32 __k8=1 __k8__=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 __LDBL_DECIMAL_DIG__=21 __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L __LDBL_MAX_EXP__=16384 __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L __LDBL_MIN_EXP__=(-16381) __LDBL_NORM_MAX__=1.18973149535723176502126385303097021e+4932L __linux=1 __linux__=1 linux=1 __LONG_LONG_MAX__=0x7fffffffffffffffLL __LONG_LONG_WIDTH__=64 __LONG_MAX__=0x7fffffffffffffffL __LONG_WIDTH__=64 __LP64__=1 _LP64=1 __MMX__=1 __MMX_WITH_SSE__=1 __ORDER_BIG_ENDIAN__=4321 __ORDER_LITTLE_ENDIAN__=1234 __ORDER_PDP_ENDIAN__=3412 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=0x7fffffffffffffffL __PTRDIFF_TYPE__=long\ int __PTRDIFF_WIDTH__=64 _REENTRANT=1 __REGISTER_PREFIX__= __SCHAR_MAX__=0x7f __SCHAR_WIDTH__=8 __SEG_FS=1 __SEG_GS=1 __SHRT_MAX__=0x7fff __SHRT_WIDTH__=16 __SIG_ATOMIC_MAX__=0x7fffffff __SIG_ATOMIC_MIN__=(-0x7fffffff\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIG_ATOMIC_WIDTH__=32 __SIZE_MAX__=0xffffffffffffffffUL __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT128__=16 __SIZEOF_FLOAT__=4 __SIZEOF_FLOAT80__=16 __SIZEOF_INT128__=16 __SIZEOF_INT__=4 __SIZEOF_LONG__=8 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_TYPE__=long\ unsigned\ int __SIZE_WIDTH__=64 __SSE__=1 __SSE2__=1 __SSE2_MATH__=1 __SSE_MATH__=1 __STDC__=1 __STDC_HOSTED__=1 __STDC_IEC_559__=1 __STDC_IEC_559_COMPLEX__=1 __STDC_ISO_10646__=201706L _STDC_PREDEF_H=1 __STDC_UTF_16__=1 __STDC_UTF_32__=1 __STDC_VERSION__=201710L __UINT16_C=__UINT16_C __UINT16_MAX__=0xffff __UINT16_TYPE__=short\ unsigned\ int __UINT32_C=__UINT32_C __UINT32_MAX__=0xffffffffU __UINT32_TYPE__=unsigned\ int __UINT64_C=__UINT64_C __UINT64_MAX__=0xffffffffffffffffUL __UINT64_TYPE__=long\ unsigned\ int __UINT8_C=__UINT8_C __UINT8_MAX__=0xff __UINT8_TYPE__=unsigned\ char __UINT_FAST16_MAX__=0xffffffffffffffffUL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=0xffffffffffffffffUL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=0xffffffffffffffffUL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_FAST8_MAX__=0xff __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=0xffff __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=0xffffffffU __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=0xffffffffffffffffUL __UINT_LEAST64_TYPE__=long\ unsigned\ int __UINT_LEAST8_MAX__=0xff __UINT_LEAST8_TYPE__=unsigned\ char __UINTMAX_C=__UINTMAX_C __UINTMAX_MAX__=0xffffffffffffffffUL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=0xffffffffffffffffUL __UINTPTR_TYPE__=long\ unsigned\ int __unix=1 __unix__=1 unix=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE=1 __USE_LARGEFILE64=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USER_LABEL_PREFIX__= __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="10.2.1\ 20200805\ [revision\ dda1e9d08434def88ed86557d08b23251332c5aa]" __WCHAR_MAX__=0x7fffffff __WCHAR_MIN__=(-0x7fffffff\ -\ 1) __WCHAR_TYPE__=int __WCHAR_WIDTH__=32 __WINT_MAX__=0xffffffffU __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __WINT_WIDTH__=32 __x86_64=1 __x86_64__=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1'
+cppsymbols='__amd64=1 __amd64__=1 __ATOMIC_ACQ_REL=4 __ATOMIC_ACQUIRE=2 __ATOMIC_CONSUME=1 __ATOMIC_HLE_ACQUIRE=65536 __ATOMIC_HLE_RELEASE=131072 __ATOMIC_RELAXED=0 __ATOMIC_RELEASE=3 __ATOMIC_SEQ_CST=5 __BFLT16_DECIMAL_DIG__=4 __BFLT16_DENORM_MIN__=9.18354961579912115600575419704879436e-41BF16 __BFLT16_DIG__=2 __BFLT16_EPSILON__=7.81250000000000000000000000000000000e-3BF16 __BFLT16_HAS_DENORM__=1 __BFLT16_HAS_INFINITY__=1 __BFLT16_HAS_QUIET_NAN__=1 __BFLT16_IS_IEC_60559__=0 __BFLT16_MANT_DIG__=8 __BFLT16_MAX_10_EXP__=38 __BFLT16_MAX__=3.38953138925153547590470800371487867e+38BF16 __BFLT16_MAX_EXP__=128 __BFLT16_MIN_10_EXP__=(-37) __BFLT16_MIN__=1.17549435082228750796873653722224568e-38BF16 __BFLT16_MIN_EXP__=(-125) __BFLT16_NORM_MAX__=3.38953138925153547590470800371487867e+38BF16 __BIGGEST_ALIGNMENT__=16 __BYTE_ORDER__=1234 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __code_model_small__=1 __DBL_DECIMAL_DIG__=17 __DBL_DENORM_MIN__=((double)4.94065645841246544176568792868221372e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308084726333618164062e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_IS_IEC_60559__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX__=((double)1.79769313486231570814527423731704357e+308L) __DBL_MAX_EXP__=1024 __DBL_MIN_10_EXP__=(-307) __DBL_MIN__=((double)2.22507385850720138309023271733240406e-308L) __DBL_MIN_EXP__=(-1021) __DBL_NORM_MAX__=((double)1.79769313486231570814527423731704357e+308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MAX_EXP__=6145 __DEC128_MIN__=1E-6143DL __DEC128_MIN_EXP__=(-6142) __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX__=9.999999E96DF __DEC32_MAX_EXP__=97 __DEC32_MIN__=1E-95DF __DEC32_MIN_EXP__=(-94) __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MAX_EXP__=385 __DEC64_MIN__=1E-383DD __DEC64_MIN_EXP__=(-382) __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DEC_EVAL_METHOD__=2 __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __ELF__=1 _FILE_OFFSET_BITS=64 __FINITE_MATH_ONLY__=0 __FLOAT_WORD_ORDER__=1234 __FLT128_DECIMAL_DIG__=36 __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128 __FLT128_DIG__=33 __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128 __FLT128_HAS_DENORM__=1 __FLT128_HAS_INFINITY__=1 __FLT128_HAS_QUIET_NAN__=1 __FLT128_IS_IEC_60559__=1 __FLT128_MANT_DIG__=113 __FLT128_MAX_10_EXP__=4932 __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128 __FLT128_MAX_EXP__=16384 __FLT128_MIN_10_EXP__=(-4931) __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128 __FLT128_MIN_EXP__=(-16381) __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128 __FLT16_DECIMAL_DIG__=5 __FLT16_DENORM_MIN__=5.96046447753906250000000000000000000e-8F16 __FLT16_DIG__=3 __FLT16_EPSILON__=9.76562500000000000000000000000000000e-4F16 __FLT16_HAS_DENORM__=1 __FLT16_HAS_INFINITY__=1 __FLT16_HAS_QUIET_NAN__=1 __FLT16_IS_IEC_60559__=1 __FLT16_MANT_DIG__=11 __FLT16_MAX_10_EXP__=4 __FLT16_MAX__=6.55040000000000000000000000000000000e+4F16 __FLT16_MAX_EXP__=16 __FLT16_MIN_10_EXP__=(-4) __FLT16_MIN__=6.10351562500000000000000000000000000e-5F16 __FLT16_MIN_EXP__=(-13) __FLT16_NORM_MAX__=6.55040000000000000000000000000000000e+4F16 __FLT32_DECIMAL_DIG__=9 __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32 __FLT32_DIG__=6 __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32 __FLT32_HAS_DENORM__=1 __FLT32_HAS_INFINITY__=1 __FLT32_HAS_QUIET_NAN__=1 __FLT32_IS_IEC_60559__=1 __FLT32_MANT_DIG__=24 __FLT32_MAX_10_EXP__=38 __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32 __FLT32_MAX_EXP__=128 __FLT32_MIN_10_EXP__=(-37) __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32 __FLT32_MIN_EXP__=(-125) __FLT32_NORM_MAX__=3.40282346638528859811704183484516925e+38F32 __FLT32X_DECIMAL_DIG__=17 __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x __FLT32X_DIG__=15 __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x __FLT32X_HAS_DENORM__=1 __FLT32X_HAS_INFINITY__=1 __FLT32X_HAS_QUIET_NAN__=1 __FLT32X_IS_IEC_60559__=1 __FLT32X_MANT_DIG__=53 __FLT32X_MAX_10_EXP__=308 __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x __FLT32X_MAX_EXP__=1024 __FLT32X_MIN_10_EXP__=(-307) __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x __FLT32X_MIN_EXP__=(-1021) __FLT32X_NORM_MAX__=1.79769313486231570814527423731704357e+308F32x __FLT64_DECIMAL_DIG__=17 __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64 __FLT64_DIG__=15 __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64 __FLT64_HAS_DENORM__=1 __FLT64_HAS_INFINITY__=1 __FLT64_HAS_QUIET_NAN__=1 __FLT64_IS_IEC_60559__=1 __FLT64_MANT_DIG__=53 __FLT64_MAX_10_EXP__=308 __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64 __FLT64_MAX_EXP__=1024 __FLT64_MIN_10_EXP__=(-307) __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64 __FLT64_MIN_EXP__=(-1021) __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64 __FLT64X_DECIMAL_DIG__=21 __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x __FLT64X_DIG__=18 __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x __FLT64X_HAS_DENORM__=1 __FLT64X_HAS_INFINITY__=1 __FLT64X_HAS_QUIET_NAN__=1 __FLT64X_IS_IEC_60559__=1 __FLT64X_MANT_DIG__=64 __FLT64X_MAX_10_EXP__=4932 __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x __FLT64X_MAX_EXP__=16384 __FLT64X_MIN_10_EXP__=(-4931) __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x __FLT64X_MIN_EXP__=(-16381) __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x __FLT_DECIMAL_DIG__=9 __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F __FLT_EVAL_METHOD__=0 __FLT_EVAL_METHOD_TS_18661_3__=0 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_IS_IEC_60559__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX__=3.40282346638528859811704183484516925e+38F __FLT_MAX_EXP__=128 __FLT_MIN_10_EXP__=(-37) __FLT_MIN__=1.17549435082228750796873653722224568e-38F __FLT_MIN_EXP__=(-125) __FLT_NORM_MAX__=3.40282346638528859811704183484516925e+38F __FLT_RADIX__=2 __FXSR__=1 __GCC_ASM_FLAG_OUTPUTS__=1 __GCC_ATOMIC_BOOL_LOCK_FREE=2 __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR_LOCK_FREE=2 __GCC_ATOMIC_INT_LOCK_FREE=2 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_ATOMIC_LONG_LOCK_FREE=2 __GCC_ATOMIC_POINTER_LOCK_FREE=2 __GCC_ATOMIC_SHORT_LOCK_FREE=2 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1 __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2 __GCC_CONSTRUCTIVE_SIZE=64 __GCC_DESTRUCTIVE_SIZE=64 __GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GCC_IEC_559=2 __GCC_IEC_559_COMPLEX=2 __GLIBC__=2 __GLIBC_MINOR__=37 __GNUC__=13 __GNUC_EXECUTION_CHARSET_NAME="UTF-8" __GNUC_MINOR__=0 __GNUC_PATCHLEVEL__=1 __GNUC_STDC_INLINE__=1 __GNUC_WIDE_EXECUTION_CHARSET_NAME="UTF-32LE" __GNU_LIBRARY__=6 __gnu_linux__=1 _GNU_SOURCE=1 __GXX_ABI_VERSION=1018 __HAVE_SPECULATION_SAFE_VALUE=1 __INT16_C=__INT16_C __INT16_MAX__=0x7fff __INT16_TYPE__=short\ int __INT32_C=__INT32_C __INT32_MAX__=0x7fffffff __INT32_TYPE__=int __INT64_C=__INT64_C __INT64_MAX__=0x7fffffffffffffffL __INT64_TYPE__=long\ int __INT8_C=__INT8_C __INT8_MAX__=0x7f __INT8_TYPE__=signed\ char __INT_FAST16_MAX__=0x7fffffffffffffffL __INT_FAST16_TYPE__=long\ int __INT_FAST16_WIDTH__=64 __INT_FAST32_MAX__=0x7fffffffffffffffL __INT_FAST32_TYPE__=long\ int __INT_FAST32_WIDTH__=64 __INT_FAST64_MAX__=0x7fffffffffffffffL __INT_FAST64_TYPE__=long\ int __INT_FAST64_WIDTH__=64 __INT_FAST8_MAX__=0x7f __INT_FAST8_TYPE__=signed\ char __INT_FAST8_WIDTH__=8 __INT_LEAST16_MAX__=0x7fff __INT_LEAST16_TYPE__=short\ int __INT_LEAST16_WIDTH__=16 __INT_LEAST32_MAX__=0x7fffffff __INT_LEAST32_TYPE__=int __INT_LEAST32_WIDTH__=32 __INT_LEAST64_MAX__=0x7fffffffffffffffL __INT_LEAST64_TYPE__=long\ int __INT_LEAST64_WIDTH__=64 __INT_LEAST8_MAX__=0x7f __INT_LEAST8_TYPE__=signed\ char __INT_LEAST8_WIDTH__=8 __INT_MAX__=0x7fffffff __INTMAX_C=__INTMAX_C __INTMAX_MAX__=0x7fffffffffffffffL __INTMAX_TYPE__=long\ int __INTMAX_WIDTH__=64 __INTPTR_MAX__=0x7fffffffffffffffL __INTPTR_TYPE__=long\ int __INTPTR_WIDTH__=64 __INT_WIDTH__=32 __k8=1 __k8__=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 __LDBL_DECIMAL_DIG__=21 __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_IS_IEC_60559__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L __LDBL_MAX_EXP__=16384 __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L __LDBL_MIN_EXP__=(-16381) __LDBL_NORM_MAX__=1.18973149535723176502126385303097021e+4932L __linux=1 __linux__=1 linux=1 __LONG_LONG_MAX__=0x7fffffffffffffffLL __LONG_LONG_WIDTH__=64 __LONG_MAX__=0x7fffffffffffffffL __LONG_WIDTH__=64 __LP64__=1 _LP64=1 __MMX__=1 __MMX_WITH_SSE__=1 __ORDER_BIG_ENDIAN__=4321 __ORDER_LITTLE_ENDIAN__=1234 __ORDER_PDP_ENDIAN__=3412 __pic__=2 __PIC__=2 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=0x7fffffffffffffffL __PTRDIFF_TYPE__=long\ int __PTRDIFF_WIDTH__=64 _REENTRANT=1 __REGISTER_PREFIX__= __SCHAR_MAX__=0x7f __SCHAR_WIDTH__=8 __SEG_FS=1 __SEG_GS=1 __SHRT_MAX__=0x7fff __SHRT_WIDTH__=16 __SIG_ATOMIC_MAX__=0x7fffffff __SIG_ATOMIC_MIN__=(-0x7fffffff\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIG_ATOMIC_WIDTH__=32 __SIZE_MAX__=0xffffffffffffffffUL __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT128__=16 __SIZEOF_FLOAT__=4 __SIZEOF_FLOAT80__=16 __SIZEOF_INT128__=16 __SIZEOF_INT__=4 __SIZEOF_LONG__=8 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_TYPE__=long\ unsigned\ int __SIZE_WIDTH__=64 __SSE__=1 __SSE2__=1 __SSE2_MATH__=1 __SSE_MATH__=1 __STDC__=1 __STDC_HOSTED__=1 __STDC_IEC_559__=1 __STDC_IEC_559_COMPLEX__=1 __STDC_IEC_60559_BFP__=201404L __STDC_IEC_60559_COMPLEX__=201404L __STDC_ISO_10646__=201706L _STDC_PREDEF_H=1 __STDC_UTF_16__=1 __STDC_UTF_32__=1 __STDC_VERSION__=201710L __UINT16_C=__UINT16_C __UINT16_MAX__=0xffff __UINT16_TYPE__=short\ unsigned\ int __UINT32_C=__UINT32_C __UINT32_MAX__=0xffffffffU __UINT32_TYPE__=unsigned\ int __UINT64_C=__UINT64_C __UINT64_MAX__=0xffffffffffffffffUL __UINT64_TYPE__=long\ unsigned\ int __UINT8_C=__UINT8_C __UINT8_MAX__=0xff __UINT8_TYPE__=unsigned\ char __UINT_FAST16_MAX__=0xffffffffffffffffUL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=0xffffffffffffffffUL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=0xffffffffffffffffUL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_FAST8_MAX__=0xff __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=0xffff __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=0xffffffffU __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=0xffffffffffffffffUL __UINT_LEAST64_TYPE__=long\ unsigned\ int __UINT_LEAST8_MAX__=0xff __UINT_LEAST8_TYPE__=unsigned\ char __UINTMAX_C=__UINTMAX_C __UINTMAX_MAX__=0xffffffffffffffffUL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=0xffffffffffffffffUL __UINTPTR_TYPE__=long\ unsigned\ int __unix=1 __unix__=1 unix=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE=1 __USE_LARGEFILE64=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USER_LABEL_PREFIX__= __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="13.0.1\ 20230421\ (prerelease)\ [revision\ f980561c60b0446cc427595198d7f3f4f90e0924]" __WCHAR_MAX__=0x7fffffff __WCHAR_MIN__=(-0x7fffffff\ -\ 1) __WCHAR_TYPE__=int __WCHAR_WIDTH__=32 __WINT_MAX__=0xffffffffU __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __WINT_WIDTH__=32 __x86_64=1 __x86_64__=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1'
 crypt_r_proto='REENTRANT_PROTO_B_CCS'
 cryptlib=''
-csh='csh'
+csh='tcsh'
 ctermid_r_proto='0'
 ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='qgcvt((x),(n),(b))'
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'
 d_PRIEUldbl='define'
 d_PRIFUldbl='define'
 d_PRIGUldbl='define'
@@ -141,6 +136,7 @@ d_attribute_nonnull='define'
 d_attribute_noreturn='define'
 d_attribute_pure='define'
 d_attribute_unused='define'
+d_attribute_visibility='define'
 d_attribute_warn_unused_result='define'
 d_backtrace='define'
 d_bsd='undef'
@@ -229,8 +225,8 @@ d_fdclose='undef'
 d_fdim='define'
 d_fds_bits='define'
 d_fegetround='define'
-d_ffs='undef'
-d_ffsl='undef'
+d_ffs='define'
+d_ffsl='define'
 d_fgetpos='define'
 d_finite='define'
 d_finitel='define'
@@ -438,10 +434,10 @@ d_nextafter='define'
 d_nexttoward='define'
 d_nice='define'
 d_nl_langinfo='define'
-d_nl_langinfo_l='undef'
+d_nl_langinfo_l='define'
 d_non_int_bitfields='define'
 d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='undef'
+d_nv_zero_is_allbits_zero='define'
 d_off64_t='define'
 d_old_pthread_create_joinable='undef'
 d_oldpthreads='undef'
@@ -509,6 +505,7 @@ d_semget='define'
 d_semop='define'
 d_sendmsg='define'
 d_setegid='define'
+d_setenv='define'
 d_seteuid='define'
 d_setgrent='define'
 d_setgrent_r='undef'
@@ -607,21 +604,21 @@ d_strtoul='define'
 d_strtoull='define'
 d_strtouq='define'
 d_strxfrm='define'
-d_strxfrm_l='undef'
+d_strxfrm_l='define'
 d_suidsafe='undef'
 d_symlink='define'
 d_syscall='define'
 d_syscallproto='define'
 d_sysconf='define'
 d_sysernlst=''
-d_syserrlst='define'
+d_syserrlst='undef'
 d_system='define'
 d_tcgetpgrp='define'
 d_tcsetpgrp='define'
 d_telldir='define'
 d_telldirproto='define'
 d_tgamma='define'
-d_thread_local='undef'
+d_thread_local='define'
 d_thread_safe_nl_langinfo_l='define'
 d_time='define'
 d_timegm='define'
@@ -714,11 +711,11 @@ fpostype='fpos_t'
 freetype='void'
 from=':'
 full_ar='/usr/bin/ar'
-full_csh='/usr/bin/csh'
+full_csh='/usr/bin/tcsh'
 full_sed='/usr/bin/sed'
 gccansipedantic=''
 gccosandvers=''
-gccversion='10.2.1 20200805 [revision dda1e9d08434def88ed86557d08b23251332c5aa]'
+gccversion='13.0.1 20230421 (prerelease) [revision f980561c60b0446cc427595198d7f3f4f90e0924]'
 getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
 getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
 getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
@@ -746,7 +743,7 @@ gidtype='gid_t'
 glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib /lib64 /usr/lib64 /usr/local/lib64 '
 gmake='gmake'
 gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version='2.31'
+gnulibc_version='2.37'
 grep='grep'
 groupcat='cat /etc/group'
 groupstype='gid_t'
@@ -764,6 +761,7 @@ html3dir=' '
 html3direxp=''
 i16size='2'
 i16type='short'
+i32dformat='"d"'
 i32size='4'
 i32type='int'
 i64size='8'
@@ -834,6 +832,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='define'
 i_sysstatvfs='define'
+i_syssyscall='define'
 i_systime='define'
 i_systimek='undef'
 i_systimes='define'
@@ -857,28 +856,28 @@ ignore_versioned_solibs='y'
 inc_version_list=''
 inc_version_list_init='0'
 incpath=''
-incpth='/usr/lib64/gcc/x86_64-suse-linux/10/include /usr/local/include /usr/lib64/gcc/x86_64-suse-linux/10/include-fixed /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/include /usr/include'
+incpth='/usr/lib64/gcc/x86_64-suse-linux/13/include /usr/local/include /usr/lib64/gcc/x86_64-suse-linux/13/include-fixed /usr/x86_64-suse-linux/include /usr/include'
 inews=''
-initialinstalllocation='/opt/perl/bin'
-installarchlib='/opt/perl/lib/5.36.3/x86_64-linux-thread-multi-ld'
-installbin='/opt/perl/bin'
+initialinstalllocation='/pro/bin'
+installarchlib='/pro/lib/perl5/5.38.2/x86_64-linux-thread-multi-quadmath'
+installbin='/pro/bin'
 installhtml1dir=''
 installhtml3dir=''
-installman1dir='/opt/perl/man/man1'
-installman3dir='/opt/perl/man/man3'
-installprefix='/opt/perl'
-installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.36.3'
-installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.36.3/x86_64-linux-thread-multi-ld'
-installsitebin='/opt/perl/bin'
+installman1dir='/pro/local/man/man1'
+installman3dir='/pro/local/man/man3'
+installprefix='/pro'
+installprefixexp='/pro'
+installprivlib='/pro/lib/perl5/5.38.2'
+installscript='/pro/bin'
+installsitearch='/pro/lib/perl5/site_perl/5.38.2/x86_64-linux-thread-multi-quadmath'
+installsitebin='/pro/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/opt/perl/lib/site_perl/5.36.3'
-installsiteman1dir='/opt/perl/man/man1'
-installsiteman3dir='/opt/perl/man/man3'
-installsitescript='/opt/perl/bin'
-installstyle='lib'
+installsitelib='/pro/lib/perl5/site_perl/5.38.2'
+installsiteman1dir='/pro/local/man/man1'
+installsiteman3dir='/pro/local/man/man3'
+installsitescript='/pro/bin'
+installstyle='lib/perl5'
 installusrbinperl='undef'
 installvendorarch=''
 installvendorbin=''
@@ -897,21 +896,21 @@ known_extensions='Amiga/ARexx Amiga/Exec
 ksh=''
 ld='cc'
 ld_can_script='define'
-lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'
-ldflags=' -fstack-protector-strong -L/usr/local/lib'
+lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector-strong'
+ldflags='-L/pro/local/lib -fstack-protector-strong'
 ldflags_uselargefiles=''
 ldlibpthname='LD_LIBRARY_PATH'
 less='less'
 lib_ext='.a'
-libc='libc-2.31.so'
+libc='/lib/../lib64/libc.so.6'
 libperl='libperl.a'
-libpth='/usr/local/lib /usr/lib64/gcc/x86_64-suse-linux/10/include-fixed /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64'
-libs='-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat'
-libsdirs=' /usr/lib/../lib64'
-libsfiles=' libpthread.so libnsl.so libgdbm.so libdb.so libdl.so libm.so libcrypt.so libutil.so libc.so libgdbm_compat.so'
-libsfound=' /usr/lib/../lib64/libpthread.so /usr/lib/../lib64/libnsl.so /usr/lib/../lib64/libgdbm.so /usr/lib/../lib64/libdb.so /usr/lib/../lib64/libdl.so /usr/lib/../lib64/libm.so /usr/lib/../lib64/libcrypt.so /usr/lib/../lib64/libutil.so /usr/lib/../lib64/libc.so /usr/lib/../lib64/libgdbm_compat.so'
-libspath=' /usr/local/lib /usr/lib64/gcc/x86_64-suse-linux/10/include-fixed /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64'
-libswanted='cl pthread cl pthread socket inet nsl gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat'
+libpth='/usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /data/pro/local/lib /usr/lib64 /usr/local/lib64'
+libs='-lpthread -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat -lquadmath'
+libsdirs=' /usr/lib64'
+libsfiles=' libpthread.a libgdbm.so libdb.so libdl.a libm.so libcrypt.so libutil.a libc.so libgdbm_compat.so'
+libsfound=' /usr/lib64/libpthread.a /usr/lib64/libgdbm.so /usr/lib64/libdb.so /usr/lib64/libdl.a /usr/lib64/libm.so /usr/lib64/libcrypt.so /usr/lib64/libutil.a /usr/lib64/libc.so /usr/lib64/libgdbm_compat.so'
+libspath=' /usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /data/pro/local/lib /usr/lib64 /usr/local/lib64 /usr/lib64/gcc/x86_64-suse-linux/13 /usr/lib64/gcc/x86_64-suse-linux/13/../../../../lib64 /usr/lib64/gcc/x86_64-suse-linux/13/../../..'
+libswanted='cl pthread socket inet gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat'
 libswanted_uselargefiles=''
 line=''
 lint=''
@@ -919,8 +918,8 @@ lkflags=''
 ln='ln'
 lns='/usr/bin/ln -s'
 localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
-loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
+locincpth='/pro/local/include'
+loclibpth='/pro/local/lib'
 longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
 longdblkind='3'
 longdblmantbits='64'
@@ -940,11 +939,11 @@ make_set_make='#'
 mallocobj=''
 mallocsrc=''
 malloctype='void *'
-man1dir='/opt/perl/man/man1'
-man1direxp='/opt/perl/man/man1'
+man1dir='/pro/local/man/man1'
+man1direxp='/pro/local/man/man1'
 man1ext='1'
-man3dir='/opt/perl/man/man3'
-man3direxp='/opt/perl/man/man3'
+man3dir='/pro/local/man/man3'
+man3direxp='/pro/local/man/man3'
 man3ext='3'
 mips_type=''
 mistrustnm=''
@@ -955,9 +954,9 @@ more='more'
 multiarch='undef'
 mv=''
 myarchname='x86_64-linux'
-mydomain='.yourplace.com'
-myhostname='yourhost'
-myuname='linux lx09 5.8.0-1-default #1 smp tue aug 4 07:30:59 utc 2020 (9bc0044) x86_64 x86_64 x86_64 gnulinux '
+mydomain='.procura.nl'
+myhostname='lx09'
+myuname='linux lx09 6.2.12-1-default #1 smp preempt_dynamic thu apr 20 11:01:10 utc 2023 (eb3255d) x86_64 x86_64 x86_64 gnulinux '
 n='-n'
 need_va_copy='define'
 netdb_hlen_type='size_t'
@@ -969,48 +968,48 @@ nm_opt=''
 nm_so_opt='--dynamic'
 nonxs_ext='Archive/Tar Attribute/Handlers autodie AutoLoader autouse base bignum Carp Config/Perl/V constant CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Devel/SelfStubber Digest Dumpvalue encoding/warnings Env Errno experimental Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS ExtUtils/PL2Bat FileCache File/Fetch File/Find File/Path File/Temp Filter/Simple FindBin Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags if IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP lib libnet Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata Net/Ping NEXT Params/Check parent perlfaq PerlIO/via/QuotedPrint Perl/OSType Pod/Checker Pod/Escapes Pod/Functions Pod/Html podlators Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/Local version XSLoader'
 nroff='nroff'
-nvEUformat='"LE"'
-nvFUformat='"LF"'
-nvGUformat='"LG"'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0'
+nvEUformat='"QE"'
+nvFUformat='"QF"'
+nvGUformat='"QG"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*256.0*2.0'
 nv_preserves_uv_bits='64'
-nveformat='"Le"'
-nvfformat='"Lf"'
-nvgformat='"Lg"'
-nvmantbits='64'
+nveformat='"Qe"'
+nvfformat='"Qf"'
+nvgformat='"Qg"'
+nvmantbits='112'
 nvsize='16'
-nvtype='long double'
+nvtype='__float128'
 o_nonblock='O_NONBLOCK'
 obj_ext='.o'
 old_pthread_create_joinable=''
 optimize='-O2'
 orderlib='false'
 osname='linux'
-osvers='5.8.0-1-default'
+osvers='6.2.12-1-default'
 otherlibdirs=' '
 package='perl5'
-pager='/usr/bin/less -R'
+pager='/pro/bin/less -R'
 passcat='cat /etc/passwd'
-patchlevel='33'
+patchlevel='37'
 path_sep=':'
-perl5='/usr/bin/perl'
+perl5='/pro/bin/perl'
 perl='perl'
 perl_patchlevel=''
 perl_static_inline='static __inline__'
-perl_thread_local=''
-perladmin='yourname@yourhost.yourplace.com'
-perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/opt/perl/bin/perl5.36.3'
+perl_thread_local='_Thread_local'
+perladmin='hmbrand@cpan.org'
+perllibs='-lpthread -ldl -lm -lcrypt -lutil -lc -lquadmath'
+perlpath='/pro/bin/perl5.38.2'
 pg='pg'
-phostname=''
+phostname='hostname'
 pidtype='pid_t'
-plibpth='/lib/x86_64-suse-linux/10 /lib/../lib64 /usr/lib/x86_64-suse-linux/10 /usr/lib/../lib64 /lib /usr/lib'
+plibpth='/lib/x86_64-suse-linux/13 /lib/../lib64 /usr/lib/x86_64-suse-linux/13 /usr/lib/../lib64 /lib /usr/lib'
 pmake=''
 pr=''
-prefix='/opt/perl'
-prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.36.3'
-privlibexp='/opt/perl/lib/5.36.3'
+prefix='/pro'
+prefixexp='/pro'
+privlib='/pro/lib/perl5/5.38.2'
+privlibexp='/pro/lib/perl5/5.38.2'
 procselfexe='"/proc/self/exe"'
 ptrsize='8'
 quadkind='2'
@@ -1032,7 +1031,7 @@ runnm='false'
 sGMTIME_max='67768036191676799'
 sGMTIME_min='-62167219200'
 sLOCALTIME_max='67768036191673199'
-sLOCALTIME_min='-62167220372'
+sLOCALTIME_min='-62167220250'
 sPRIEUldbl='"LE"'
 sPRIFUldbl='"LF"'
 sPRIGUldbl='"LG"'
@@ -1047,8 +1046,8 @@ sPRIu64='"lu"'
 sPRIx64='"lx"'
 sSCNfldbl='"Lf"'
 sched_yield='sched_yield()'
-scriptdir='/opt/perl/bin'
-scriptdirexp='/opt/perl/bin'
+scriptdir='/pro/bin'
+scriptdirexp='/pro/bin'
 sed='sed'
 seedfunc='Perl_drand48_init'
 selectminbits='64'
@@ -1075,25 +1074,25 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.36.3/x86_64-linux-thread-multi-ld'
-sitearchexp='/opt/perl/lib/site_perl/5.36.3/x86_64-linux-thread-multi-ld'
-sitebin='/opt/perl/bin'
-sitebinexp='/opt/perl/bin'
+sitearch='/pro/lib/perl5/site_perl/5.38.2/x86_64-linux-thread-multi-quadmath'
+sitearchexp='/pro/lib/perl5/site_perl/5.38.2/x86_64-linux-thread-multi-quadmath'
+sitebin='/pro/bin'
+sitebinexp='/pro/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/opt/perl/lib/site_perl/5.36.3'
-sitelib_stem='/opt/perl/lib/site_perl'
-sitelibexp='/opt/perl/lib/site_perl/5.36.3'
-siteman1dir='/opt/perl/man/man1'
-siteman1direxp='/opt/perl/man/man1'
-siteman3dir='/opt/perl/man/man3'
-siteman3direxp='/opt/perl/man/man3'
-siteprefix='/opt/perl'
-siteprefixexp='/opt/perl'
-sitescript='/opt/perl/bin'
-sitescriptexp='/opt/perl/bin'
+sitelib='/pro/lib/perl5/site_perl/5.38.2'
+sitelib_stem='/pro/lib/perl5/site_perl'
+sitelibexp='/pro/lib/perl5/site_perl/5.38.2'
+siteman1dir='/pro/local/man/man1'
+siteman1direxp='/pro/local/man/man1'
+siteman3dir='/pro/local/man/man3'
+siteman3direxp='/pro/local/man/man3'
+siteprefix='/pro'
+siteprefixexp='/pro'
+sitescript='/pro/bin'
+sitescriptexp='/pro/bin'
 sizesize='8'
 sizetype='size_t'
 sleep=''
@@ -1110,10 +1109,10 @@ srandom_r_proto='REENTRANT_PROTO_I_TS'
 src='.'
 ssizetype='ssize_t'
 st_dev_sign='1'
-st_dev_size='4'
+st_dev_size='8'
 st_ino_sign='1'
 st_ino_size='8'
-startperl='#!/opt/perl/bin/perl5.36.3'
+startperl='#!/pro/bin/perl5.38.2'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='char'
@@ -1125,7 +1124,7 @@ stdio_ptr='((fp)->_ptr)'
 stdio_stream_array=''
 strerror_r_proto='REENTRANT_PROTO_B_IBW'
 submit=''
-subversion='3'
+subversion='2'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1151,8 +1150,12 @@ troff=''
 ttyname_r_proto='REENTRANT_PROTO_I_IBW'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"X"'
+u32oformat='"o"'
 u32size='4'
 u32type='unsigned int'
+u32uformat='"u"'
+u32xformat='"x"'
 u64size='8'
 u64type='unsigned long'
 u8size='1'
@@ -1177,7 +1180,7 @@ useithreads='define'
 usekernprocpathname='undef'
 uselanginfo='true'
 uselargefiles='define'
-uselongdouble='define'
+uselongdouble='undef'
 usemallocwrap='define'
 usemorebits='undef'
 usemultiplicity='define'
@@ -1187,7 +1190,7 @@ usensgetexecutablepath='undef'
 useopcode='true'
 useperlio='define'
 useposix='true'
-usequadmath='undef'
+usequadmath='define'
 usereentrant='undef'
 userelocatableinc='undef'
 useshrplib='false'
@@ -1224,23 +1227,24 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.36.3'
-version_patchlevel_string='version 36 subversion 3'
+version='5.38.2'
+version_patchlevel_string='version 38 subversion 2'
 versiononly='define'
 vi=''
-xlibpth='/usr/lib/386 /lib/386'
+xlibpth='/usr/lib/386 /lib/386 /usr/lib64/gcc/x86_64-suse-linux/13 /usr/lib64/gcc/x86_64-suse-linux/13/../../../../lib64 /usr/lib64/gcc/x86_64-suse-linux/13/../../..'
 xlocale_needed='undef'
-yacc='yacc'
+yacc='/pro/3gl/CPAN/bin/byacc'
 yaccflags=''
 zcat=''
 zip='zip'
 PERL_REVISION=5
-PERL_VERSION=36
-PERL_SUBVERSION=3
+PERL_VERSION=38
+PERL_SUBVERSION=2
 PERL_API_REVISION=5
-PERL_API_VERSION=36
+PERL_API_VERSION=38
 PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
 libdb_needs_pthread='N'
+libdirs=' /lib /pro/local/lib'
Index: gnu/usr.bin/perl/Porting/config_H
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/config_H,v
diff -u -p -a -u -p -r1.29 config_H
--- gnu/usr.bin/perl/Porting/config_H	23 Dec 2023 21:02:20 -0000	1.29
+++ gnu/usr.bin/perl/Porting/config_H	21 Feb 2024 15:47:00 -0000
@@ -54,7 +54,7 @@
  *	This symbol, if defined, indicates that the chsize routine is available
  *	to truncate files.  You might need a -lx to get this routine.
  */
-/*#define	HAS_CHSIZE		/ **/
+/*#define HAS_CHSIZE            / **/
 
 /* HAS_CRYPT:
  *	This symbol, if defined, indicates that the crypt routine is available
@@ -232,7 +232,7 @@
  *	This symbol, if defined, indicates that the mbstowcs routine is
  *	available to convert a multibyte string into a wide character string.
  */
-#define	HAS_MBSTOWCS		/**/
+#define HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *	This symbol, if defined, indicates that the mbtowc routine is available
@@ -606,7 +606,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-#define	I_ARPA_INET		/**/
+#define I_ARPA_INET             /**/
 
 /* I_DBM:
  *	This symbol, if defined, indicates that <dbm.h> exists and should
@@ -640,7 +640,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <locale.h>.
  */
-#define	I_LOCALE		/**/
+#define I_LOCALE                /**/
 
 /* I_NETINET_IN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -668,7 +668,7 @@
  *	This symbol, if defined, indicates the <sys/sockio.h> should be included
  *	to get socket ioctl options, like SIOCATMARK.
  */
-#define	I_SYS_IOCTL		/**/
+#define I_SYS_IOCTL             /**/
 /*#define I_SYS_SOCKIO	/ **/
 
 /* I_SYS_NDIR:
@@ -706,19 +706,19 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/stat.h>.
  */
-#define	I_SYS_STAT		/**/
+#define I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/times.h>.
  */
-#define	I_SYS_TIMES		/**/
+#define I_SYS_TIMES             /**/
 
 /* I_SYS_TYPES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/types.h>.
  */
-#define	I_SYS_TYPES		/**/
+#define I_SYS_TYPES             /**/
 
 /* I_SYS_UN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -872,7 +872,7 @@
  *	This symbol is defined if the C compiler can cast negative
  *	or large floating point numbers to 32-bit ints.
  */
-/*#define	CASTI32		/ **/
+/*#define CASTI32               / **/
 
 /* CASTNEGFLOAT:
  *	This symbol is defined if the C compiler can cast negative
@@ -886,7 +886,7 @@
  *		2 = couldn't cast >= 0x80000000
  *		4 = couldn't cast in argument expression list
  */
-#define	CASTNEGFLOAT		/**/
+#define CASTNEGFLOAT            /**/
 #define CASTFLAGS 0		/**/
 
 /* VOID_CLOSEDIR:
@@ -988,13 +988,13 @@
  *	This symbol, if defined, indicates that siginfo_t has the
  *	si_value member
  */
-#define	HAS_SIGINFO_SI_ERRNO	/**/
-#define	HAS_SIGINFO_SI_PID	/**/
-#define	HAS_SIGINFO_SI_UID	/**/
-#define	HAS_SIGINFO_SI_ADDR	/**/
-#define	HAS_SIGINFO_SI_STATUS	/**/
-#define	HAS_SIGINFO_SI_BAND	/**/
-#define	HAS_SIGINFO_SI_VALUE	/**/
+#define HAS_SIGINFO_SI_ERRNO    /**/
+#define HAS_SIGINFO_SI_PID      /**/
+#define HAS_SIGINFO_SI_UID      /**/
+#define HAS_SIGINFO_SI_ADDR     /**/
+#define HAS_SIGINFO_SI_STATUS   /**/
+#define HAS_SIGINFO_SI_BAND     /**/
+#define HAS_SIGINFO_SI_VALUE    /**/
 
 /* HAS_SIGSETJMP:
  *	This variable indicates to the C program that the sigsetjmp()
@@ -1224,7 +1224,7 @@
  *	This symbol, if defined, indicates that this system uses
  *	EBCDIC encoding.
  */
-/*#define	EBCDIC 		/ **/
+/*#define EBCDIC                / **/
 
 /* ARCHLIB:
  *	This variable, if defined, holds the name of the directory in
@@ -1239,8 +1239,8 @@
  *	This symbol contains the ~name expanded version of ARCHLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/opt/perl/lib/5.36.3/x86_64-linux"		/**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.36.3/x86_64-linux"		/**/
+#define ARCHLIB "/opt/perl/lib/5.38.2/x86_64-linux"		/**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.38.2/x86_64-linux"		/**/
 
 /* BIN:
  *	This symbol holds the path of the bin directory where the package will
@@ -1293,8 +1293,8 @@
  *	This symbol contains the ~name expanded version of PRIVLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/opt/perl/lib/5.36.3"		/**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.36.3"		/**/
+#define PRIVLIB "/opt/perl/lib/5.38.2"		/**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.38.2"		/**/
 
 /* SITEARCH:
  *	This symbol contains the name of the private library for this package.
@@ -1311,8 +1311,8 @@
  *	This symbol contains the ~name expanded version of SITEARCH, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/opt/perl/lib/site_perl/5.36.3/x86_64-linux"		/**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.36.3/x86_64-linux"		/**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.38.2/x86_64-linux"		/**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.38.2/x86_64-linux"		/**/
 
 /* SITELIB:
  *	This symbol contains the name of the private library for this package.
@@ -1334,8 +1334,8 @@
  *	removed.  The elements in inc_version_list (inc_version_list.U) can
  *	be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/opt/perl/lib/site_perl/5.36.3"		/**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.36.3"		/**/
+#define SITELIB "/opt/perl/lib/site_perl/5.38.2"		/**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.38.2"		/**/
 #define SITELIB_STEM "/opt/perl/lib/site_perl"		/**/
 
 /* PERL_VENDORARCH:
@@ -1561,7 +1561,7 @@
  *	This symbol, if defined, indicates that the system supports filenames
  *	longer than 14 characters.
  */
-#define	FLEXFILENAMES		/**/
+#define FLEXFILENAMES           /**/
 
 /* HAS_GETGRENT:
  *	This symbol, if defined, indicates that the getgrent routine is
@@ -1934,15 +1934,15 @@
  *	This symbol, if defined, indicates the availability of
  *	struct ipv6_mreq_source;
  */
-#define	HAS_SOCKET		/**/
-#define	HAS_SOCKETPAIR	/**/
-/*#define	HAS_SOCKADDR_SA_LEN	/ **/
-#define	HAS_SOCKADDR_IN6	/**/
-#define	HAS_SIN6_SCOPE_ID	/**/
-#define	HAS_IP_MREQ	/**/
-#define	HAS_IP_MREQ_SOURCE	/**/
-#define	HAS_IPV6_MREQ	/**/
-/*#define	HAS_IPV6_MREQ_SOURCE	/ **/
+#define HAS_SOCKET              /**/
+#define HAS_SOCKETPAIR  /**/
+/*#define HAS_SOCKADDR_SA_LEN   / **/
+#define HAS_SOCKADDR_IN6        /**/
+#define HAS_SIN6_SCOPE_ID       /**/
+#define HAS_IP_MREQ     /**/
+#define HAS_IP_MREQ_SOURCE      /**/
+#define HAS_IPV6_MREQ   /**/
+/*#define HAS_IPV6_MREQ_SOURCE  / **/
 
 /* USE_STAT_BLOCKS:
  *	This symbol is defined if this system has a stat structure declaring
@@ -2144,7 +2144,7 @@
  *	This symbol, if defined, indicates that <sys/uio.h> exists and
  *	should be included.
  */
-#define	I_SYSUIO		/**/
+#define I_SYSUIO                /**/
 
 /* I_TERMIO:
  *	This symbol, if defined, indicates that the program should include
@@ -2243,8 +2243,8 @@
  *	Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define	USE_CROSS_COMPILE	/ **/
-#define	PERL_TARGETARCH	""	/**/
+/*#define USE_CROSS_COMPILE     / **/
+#define PERL_TARGETARCH ""      /**/
 #endif
 
 /* PERL_USE_DEVEL:
@@ -2252,7 +2252,7 @@
  *	-Dusedevel, to enable development features.  This should not be
  *	done for production builds.
  */
-#define	PERL_USE_DEVEL		/**/
+#define PERL_USE_DEVEL          /**/
 
 /* HAS_ATOLF:
  *	This symbol, if defined, indicates that the atolf routine is
@@ -2331,7 +2331,7 @@
 /* HAS_C99_VARIADIC_MACROS:
  *	If defined, the compiler supports C99 variadic macros.
  */
-#define	HAS_C99_VARIADIC_MACROS	/**/
+#define HAS_C99_VARIADIC_MACROS /**/
 
 /* HAS_CLASS:
  *	This symbol, if defined, indicates that the class routine is
@@ -2387,10 +2387,10 @@
  *	to the program to supply one.  A good guess is
  *		extern int dbminit(char *);
  */
-#define	HAS_DBMINIT_PROTO	/**/
+#define HAS_DBMINIT_PROTO       /**/
 
 /* HAS_DIR_DD_FD:
- *	This symbol, if defined, indicates that the the DIR* dirstream
+ *	This symbol, if defined, indicates that the DIR* dirstream
  *	structure contains a member variable named dd_fd.
  */
 /*#define HAS_DIR_DD_FD		/ **/
@@ -2497,7 +2497,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int flock(int, int);
  */
-#define	HAS_FLOCK_PROTO	/**/
+#define HAS_FLOCK_PROTO /**/
 
 /* HAS_FMA:
  *	This symbol, if defined, indicates that the fma routine is
@@ -2583,8 +2583,8 @@
  *           FP_NAN        NaN
  *
  */
-#define	HAS_FPCLASSIFY		/**/
-/*#define	HAS_FP_CLASSIFY		/ **/
+#define HAS_FPCLASSIFY          /**/
+/*#define HAS_FP_CLASSIFY               / **/
 
 /* HAS_FPCLASSL:
  *	This symbol, if defined, indicates that the fpclassl routine is
@@ -2613,7 +2613,7 @@
 /* HAS_FPOS64_T:
  *	This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define	HAS_FPOS64_T    	/ **/
+/*#define HAS_FPOS64_T          / **/
 
 /* HAS_FREXPL:
  *	This symbol, if defined, indicates that the frexpl routine is
@@ -2643,11 +2643,11 @@
 /* HAS_UNLINKAT:
  *	This symbol is defined if the unlinkat() routine is available.
  */
-#define	HAS_FCHMODAT	/**/
-#define	HAS_LINKAT	/**/
-#define	HAS_OPENAT	/**/
-#define	HAS_RENAMEAT	/**/
-#define	HAS_UNLINKAT	/**/
+#define HAS_FCHMODAT    /**/
+#define HAS_LINKAT      /**/
+#define HAS_OPENAT      /**/
+#define HAS_RENAMEAT    /**/
+#define HAS_UNLINKAT    /**/
 
 /* HAS_FSEEKO:
  *	This symbol, if defined, indicates that the fseeko routine is
@@ -2855,8 +2855,8 @@
  *	j0l() function is available for Bessel functions of the first
  *	kind of the order zero, for long doubles.
  */
-#define	HAS_J0		/**/
-#define	HAS_J0L		/**/
+#define HAS_J0          /**/
+#define HAS_J0L         /**/
 
 /* HAS_LC_MONETARY_2008:
  *	This symbol, if defined, indicates that the localeconv routine is
@@ -3081,11 +3081,11 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <xlocale.h> to get uselocale() and its friends.
  */
-#define	HAS_NEWLOCALE	/**/
-#define	HAS_FREELOCALE	/**/
-#define	HAS_USELOCALE	/**/
-/*#define	HAS_QUERYLOCALE	/ **/
-#define	I_XLOCALE               /**/
+#define HAS_NEWLOCALE   /**/
+#define HAS_FREELOCALE  /**/
+#define HAS_USELOCALE   /**/
+/*#define HAS_QUERYLOCALE       / **/
+#define I_XLOCALE               /**/
 
 /* HAS_NEXTAFTER:
  *	This symbol, if defined, indicates that the nextafter routine is
@@ -3111,7 +3111,7 @@
 /* HAS_OFF64_T:
  *	This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define	HAS_OFF64_T    		/ **/
+/*#define HAS_OFF64_T                   / **/
 
 /* HAS_PIPE2:
  *	This symbol, if defined, indicates that the pipe2
@@ -3156,7 +3156,7 @@
 /* HAS_PTRDIFF_T:
  *	This symbol will be defined if the C compiler supports ptrdiff_t.
  */
-#define	HAS_PTRDIFF_T    		/**/
+#define HAS_PTRDIFF_T                   /**/
 
 /* HAS_READV:
  *	This symbol, if defined, indicates that the readv routine is
@@ -3203,7 +3203,7 @@
  *		extern void* sbrk(int);
  *		extern void* sbrk(size_t);
  */
-#define	HAS_SBRK_PROTO	/**/
+#define HAS_SBRK_PROTO  /**/
 
 /* HAS_SCALBN:
  *	This symbol, if defined, indicates that the scalbn routine is
@@ -3258,7 +3258,7 @@
  *	be used.
  */
 #ifndef USE_SITECUSTOMIZE
-/*#define	USE_SITECUSTOMIZE		/ **/
+/*#define USE_SITECUSTOMIZE             / **/
 #endif
 
 /* HAS_SNPRINTF:
@@ -3284,7 +3284,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int sockatmark(int);
  */
-#define	HAS_SOCKATMARK_PROTO	/**/
+#define HAS_SOCKATMARK_PROTO    /**/
 
 /* HAS_SOCKS5_INIT:
  *	This symbol, if defined, indicates that the socks5_init routine is
@@ -3304,7 +3304,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESGID_PROTO	/ **/
+/*#define HAS_SETRESGID_PROTO   / **/
 
 /* HAS_SETRESUID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3312,7 +3312,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESUID_PROTO	/ **/
+/*#define HAS_SETRESUID_PROTO   / **/
 
 /* HAS_STRUCT_STATFS_F_FLAGS:
  *	This symbol, if defined, indicates that the struct statfs
@@ -3405,7 +3405,7 @@
  *		extern int syscall(int,  ...);
  *		extern int syscall(long, ...);
  */
-#define	HAS_SYSCALL_PROTO	/**/
+#define HAS_SYSCALL_PROTO       /**/
 
 /* HAS_TELLDIR_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3413,7 +3413,7 @@
  *	to the program to supply one.  A good guess is
  *		extern long telldir(DIR*);
  */
-#define	HAS_TELLDIR_PROTO	/**/
+#define HAS_TELLDIR_PROTO       /**/
 
 /* HAS_TGAMMA:
  *	This symbol, if defined, indicates that the tgamma routine is
@@ -3445,12 +3445,12 @@
  *	This symbol, if defined, indicates that the asctime64 () routine is
  *	available to do the 64bit variant of asctime ()
  */
-/*#define	HAS_CTIME64		/ **/
-/*#define	HAS_LOCALTIME64		/ **/
-/*#define	HAS_GMTIME64		/ **/
-/*#define	HAS_MKTIME64		/ **/
-/*#define	HAS_DIFFTIME64		/ **/
-/*#define	HAS_ASCTIME64		/ **/
+/*#define HAS_CTIME64           / **/
+/*#define HAS_LOCALTIME64               / **/
+/*#define HAS_GMTIME64          / **/
+/*#define HAS_MKTIME64          / **/
+/*#define HAS_DIFFTIME64                / **/
+/*#define HAS_ASCTIME64         / **/
 
 /* HAS_TIMEGM:
  *	This symbol, if defined, indicates that the timegm routine is
@@ -3503,7 +3503,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int usleep(useconds_t);
  */
-#define	HAS_USLEEP_PROTO	/**/
+#define HAS_USLEEP_PROTO        /**/
 
 /* HAS_USTAT:
  *	This symbol, if defined, indicates that the ustat system call is
@@ -3519,7 +3519,7 @@
 
 /* HAS_WCSXFRM:
  *	This symbol, if defined, indicates that the wcsxfrm routine is
- *	available to tranform a wide character string for wcscmp().
+ *	available to transform a wide character string for wcscmp().
  */
 #define HAS_WCSXFRM	/**/
 
@@ -3554,20 +3554,20 @@
  *	Note that if fflushNULL is defined, fflushall will not
  *	even be probed for and will be left undefined.
  */
-#define	FFLUSH_NULL 		/**/
-/*#define	FFLUSH_ALL 		/ **/
+#define FFLUSH_NULL             /**/
+/*#define FFLUSH_ALL            / **/
 
 /* I_BFD:
  *	This symbol, if defined, indicates that <bfd.h> exists and
  *	can be included.
  */
-/*#define	I_BFD		/ **/
+/*#define I_BFD         / **/
 
 /* I_CRYPT:
  *	This symbol, if defined, indicates that <crypt.h> exists and
  *	should be included.
  */
-#define	I_CRYPT		/**/
+#define I_CRYPT         /**/
 
 /* DB_Prefix_t:
  *	This symbol contains the type of the prefix structure element
@@ -3609,19 +3609,19 @@
  *	This symbol, if defined, indicates that <fp.h> exists and
  *	should be included.
  */
-/*#define	I_FP		/ **/
+/*#define I_FP          / **/
 
 /* I_FP_CLASS:
  *	This symbol, if defined, indicates that <fp_class.h> exists and
  *	should be included.
  */
-/*#define	I_FP_CLASS		/ **/
+/*#define I_FP_CLASS            / **/
 
 /* I_IEEEFP:
  *	This symbol, if defined, indicates that <ieeefp.h> exists and
  *	should be included.
  */
-/*#define	I_IEEEFP		/ **/
+/*#define I_IEEEFP              / **/
 
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
@@ -3633,13 +3633,13 @@
  *	This symbol, if defined, indicates that <langinfo.h> exists and
  *	should be included.
  */
-#define	I_LANGINFO		/**/
+#define I_LANGINFO              /**/
 
 /* I_LIBUTIL:
  *	This symbol, if defined, indicates that <libutil.h> exists and
  *	should be included.
  */
-/*#define	I_LIBUTIL		/ **/
+/*#define I_LIBUTIL             / **/
 
 /* I_MALLOCMALLOC:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3651,7 +3651,7 @@
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.
  */
-#define	I_MNTENT		/**/
+#define I_MNTENT                /**/
 
 /* I_NETINET_TCP:
  *     This symbol, if defined, indicates to the C program that it should
@@ -3663,37 +3663,37 @@
  *	This symbol, if defined, indicates that <poll.h> exists and
  *	should be included. (see also HAS_POLL)
  */
-#define	I_POLL		/**/
+#define I_POLL          /**/
 
 /* I_PROT:
  *	This symbol, if defined, indicates that <prot.h> exists and
  *	should be included.
  */
-/*#define	I_PROT		/ **/
+/*#define I_PROT                / **/
 
 /* I_QUADMATH:
  *	This symbol, if defined, indicates that <quadmath.h> exists and
  *	should be included.
  */
-#define	I_QUADMATH		/**/
+#define I_QUADMATH              /**/
 
 /* I_SHADOW:
  *	This symbol, if defined, indicates that <shadow.h> exists and
  *	should be included.
  */
-#define	I_SHADOW		/**/
+#define I_SHADOW                /**/
 
 /* I_SOCKS:
  *	This symbol, if defined, indicates that <socks.h> exists and
  *	should be included.
  */
-/*#define	I_SOCKS		/ **/
+/*#define I_SOCKS               / **/
 
 /* I_STDBOOL:
  *	This symbol, if defined, indicates that <stdbool.h> exists and
  *	can be included.
  */
-#define	I_STDBOOL		/**/
+#define I_STDBOOL               /**/
 
 /* I_STDINT:
  *	This symbol, if defined, indicates that <stdint.h> exists and
@@ -3705,54 +3705,54 @@
  *	This symbol, if defined, indicates that <sunmath.h> exists and
  *	should be included.
  */
-/*#define	I_SUNMATH		/ **/
+/*#define I_SUNMATH             / **/
 
 /* I_SYSLOG:
  *	This symbol, if defined, indicates that <syslog.h> exists and
  *	should be included.
  */
-#define	I_SYSLOG		/**/
+#define I_SYSLOG                /**/
 
 /* I_SYSMODE:
  *	This symbol, if defined, indicates that <sys/mode.h> exists and
  *	should be included.
  */
-/*#define	I_SYSMODE		/ **/
+/*#define I_SYSMODE             / **/
 
 /* I_SYS_MOUNT:
  *	This symbol, if defined, indicates that <sys/mount.h> exists and
  *	should be included.
  */
-#define	I_SYS_MOUNT		/**/
+#define I_SYS_MOUNT             /**/
 
 /* I_SYS_STATFS:
  *	This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-#define	I_SYS_STATFS		/**/
+#define I_SYS_STATFS            /**/
 
 /* I_SYS_STATVFS:
  *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *	should be included.
  */
-#define	I_SYS_STATVFS		/**/
+#define I_SYS_STATVFS           /**/
 
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
  */
-#define	I_SYSUTSNAME		/**/
+#define I_SYSUTSNAME            /**/
 
 /* I_SYS_VFS:
  *	This symbol, if defined, indicates that <sys/vfs.h> exists and
  *	should be included.
  */
-#define	I_SYS_VFS		/**/
+#define I_SYS_VFS               /**/
 
 /* I_USTAT:
  *	This symbol, if defined, indicates that <ustat.h> exists and
  *	should be included.
  */
-#define	I_USTAT		/**/
+#define I_USTAT         /**/
 
 /* I_WCHAR:
  *     This symbol, if defined, indicates to the C program that <wchar.h>
@@ -3909,7 +3909,7 @@
  *	of copying mechanisms, handy.h defines a platform-
  *	independent macro, Perl_va_copy(src, dst), to do the job.
  */
-#define	NEED_VA_COPY		/**/
+#define NEED_VA_COPY            /**/
 
 /* IVTYPE:
  *	This symbol defines the C type used for Perl's IV.
@@ -4000,36 +4000,36 @@
  *	This symbol, if defined, indicates that a variable of type NVTYPE
  *	stores 0.0 in memory as all bits zero.
  */
-#define	IVTYPE		long		/**/
-#define	UVTYPE		unsigned long		/**/
-#define	I8TYPE		signed char		/**/
-#define	U8TYPE		unsigned char		/**/
-#define	I16TYPE		short	/**/
-#define	U16TYPE		unsigned short	/**/
-#define	I32TYPE		int	/**/
-#define	U32TYPE		unsigned int	/**/
+#define IVTYPE          long            /**/
+#define UVTYPE          unsigned long           /**/
+#define I8TYPE          signed char             /**/
+#define U8TYPE          unsigned char           /**/
+#define I16TYPE         short   /**/
+#define U16TYPE         unsigned short  /**/
+#define I32TYPE         int     /**/
+#define U32TYPE         unsigned int    /**/
 #ifdef HAS_QUAD
-#define	I64TYPE		long	/**/
-#define	U64TYPE		unsigned long	/**/
+#define I64TYPE         long    /**/
+#define U64TYPE         unsigned long   /**/
 #endif
-#define	NVTYPE		double		/**/
-#define	IVSIZE		8		/**/
-#define	UVSIZE		8		/**/
-#define	I8SIZE		1		/**/
-#define	U8SIZE		1		/**/
-#define	I16SIZE		2	/**/
-#define	U16SIZE		2	/**/
-#define	I32SIZE		4	/**/
-#define	U32SIZE		4	/**/
+#define NVTYPE          double          /**/
+#define IVSIZE          8               /**/
+#define UVSIZE          8               /**/
+#define I8SIZE          1               /**/
+#define U8SIZE          1               /**/
+#define I16SIZE         2       /**/
+#define U16SIZE         2       /**/
+#define I32SIZE         4       /**/
+#define U32SIZE         4       /**/
 #ifdef HAS_QUAD
-#define	I64SIZE		8	/**/
-#define	U64SIZE		8	/**/
+#define I64SIZE         8       /**/
+#define U64SIZE         8       /**/
 #endif
-#define	NVSIZE		8		/**/
+#define NVSIZE          8               /**/
 #undef	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	53
-#define	NV_OVERFLOWS_INTEGERS_AT	(256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
-#define	NV_ZERO_IS_ALLBITS_ZERO
+#define NV_PRESERVES_UV_BITS    53
+#define NV_OVERFLOWS_INTEGERS_AT        (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
+#define NV_ZERO_IS_ALLBITS_ZERO
 #if UVSIZE == 8
 #   ifdef BYTEORDER
 #       if BYTEORDER == 0x1234
@@ -4076,14 +4076,14 @@
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		"ld"		/**/
-#define	UVuf		"lu"		/**/
-#define	UVof		"lo"		/**/
-#define	UVxf		"lx"		/**/
-#define	UVXf		"lX"		/**/
-#define	NVef		"e"		/**/
-#define	NVff		"f"		/**/
-#define	NVgf		"g"		/**/
+#define IVdf            "ld"            /**/
+#define UVuf            "lu"            /**/
+#define UVof            "lo"            /**/
+#define UVxf            "lx"            /**/
+#define UVXf            "lX"            /**/
+#define NVef            "e"             /**/
+#define NVff            "f"             /**/
+#define NVgf            "g"             /**/
 
 /* SELECT_MIN_BITS:
  *	This symbol holds the minimum number of bits operated by select.
@@ -4109,7 +4109,7 @@
  *	script to make sure (one hopes) that it runs with perl and not
  *	some shell.
  */
-#define STARTPERL "#!/opt/perl/bin/perl5.36.3"		/**/
+#define STARTPERL "#!/opt/perl/bin/perl5.38.2"		/**/
 
 /* HAS_STDIO_STREAM_ARRAY:
  *	This symbol, if defined, tells that there is an array
@@ -4119,7 +4119,7 @@
  *	This symbol tells the name of the array holding the stdio streams.
  *	Usual values include _iob, __iob, and __sF.
  */
-/*#define	HAS_STDIO_STREAM_ARRAY	/ **/
+/*#define HAS_STDIO_STREAM_ARRAY        / **/
 #ifdef HAS_STDIO_STREAM_ARRAY
 #define STDIO_STREAM_ARRAY	
 #endif
@@ -4164,10 +4164,10 @@
  *	you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-#define	USE_64_BIT_INT		/**/
+#define USE_64_BIT_INT          /**/
 #endif
 #ifndef USE_64_BIT_ALL
-#define	USE_64_BIT_ALL		/**/
+#define USE_64_BIT_ALL          /**/
 #endif
 
 /* USE_C_BACKTRACE:
@@ -4188,7 +4188,7 @@
  *	Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define	USE_FAST_STDIO		/ **/
+/*#define USE_FAST_STDIO                / **/
 #endif
 
 /* USE_KERN_PROC_PATHNAME:
@@ -4203,7 +4203,7 @@
  *	should be used when available.
  */
 #ifndef USE_LARGE_FILES
-#define	USE_LARGE_FILES		/**/
+#define USE_LARGE_FILES         /**/
 #endif
 
 /* USE_LONG_DOUBLE:
@@ -4211,7 +4211,7 @@
  *	be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define	USE_LONG_DOUBLE		/ **/
+/*#define USE_LONG_DOUBLE               / **/
 #endif
 
 /* USE_MORE_BITS:
@@ -4219,7 +4219,7 @@
  *	long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define	USE_MORE_BITS		/ **/
+/*#define USE_MORE_BITS         / **/
 #endif
 
 /* MULTIPLICITY:
@@ -4227,7 +4227,7 @@
  *	be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define	MULTIPLICITY		/ **/
+/*#define MULTIPLICITY          / **/
 #endif
 
 /* USE_NSGETEXECUTABLEPATH:
@@ -4243,7 +4243,7 @@
  *	used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-#define	USE_PERLIO		/**/
+#define USE_PERLIO              /**/
 #endif
 
 /* USE_QUADMATH:
@@ -4251,7 +4251,7 @@
  *	be used when available.
  */
 #ifndef USE_QUADMATH
-/*#define	USE_QUADMATH		/ **/
+/*#define USE_QUADMATH          / **/
 #endif
 
 /* USE_SOCKS:
@@ -4259,7 +4259,7 @@
  *	be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define	USE_SOCKS		/ **/
+/*#define USE_SOCKS             / **/
 #endif
 
 /* HAS_DRAND48_PROTO:
@@ -4268,7 +4268,7 @@
  *	to the program to supply one.  A good guess is
  *		extern double drand48(void);
  */
-#define	HAS_DRAND48_PROTO	/**/
+#define HAS_DRAND48_PROTO       /**/
 
 /* HAS_GETHOST_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4276,7 +4276,7 @@
  *	gethostbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETHOST_PROTOS	/**/
+#define HAS_GETHOST_PROTOS      /**/
 
 /* HAS_GETNET_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4284,7 +4284,7 @@
  *	getnetbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETNET_PROTOS	/**/
+#define HAS_GETNET_PROTOS       /**/
 
 /* HAS_GETPROTO_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4292,7 +4292,7 @@
  *	getprotobyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETPROTO_PROTOS	/**/
+#define HAS_GETPROTO_PROTOS     /**/
 
 /* HAS_GETSERV_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4300,7 +4300,7 @@
  *	getservbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETSERV_PROTOS	/**/
+#define HAS_GETSERV_PROTOS      /**/
 
 /* HAS_LSEEK_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -4308,7 +4308,7 @@
  *	to the program to supply one.  A good guess is
  *		extern off_t lseek(int, off_t, int);
  */
-#define	HAS_LSEEK_PROTO	/**/
+#define HAS_LSEEK_PROTO /**/
 
 /* Netdb_host_t:
  *	This symbol holds the type used for the 1st argument
@@ -5080,10 +5080,10 @@
  *	try to use the various _r versions of library functions.
  *	This is extremely experimental.
  */
-/*#define	USE_ITHREADS		/ **/
-/*#define		USE_THREADS		/ **/
-/*#define	OLD_PTHREADS_API		/ **/
-/*#define	USE_REENTRANT_API	/ **/
+/*#define USE_ITHREADS          / **/
+/*#define       USE_THREADS             / **/
+/*#define OLD_PTHREADS_API              / **/
+/*#define USE_REENTRANT_API     / **/
 
 /* HAS_TIME:
  *	This symbol, if defined, indicates that the time() routine exists.
@@ -5113,7 +5113,7 @@
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		"u"		/**/
+#define Gid_t_f         "u"             /**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedness of a Gid_t.
@@ -5181,7 +5181,7 @@
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		"u"		/**/
+#define Uid_t_f         "u"             /**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedness of a Uid_t.
Index: gnu/usr.bin/perl/Porting/config_h.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/config_h.pl,v
diff -u -p -a -u -p -r1.1.1.6 config_h.pl
--- gnu/usr.bin/perl/Porting/config_h.pl	15 Feb 2023 01:33:12 -0000	1.1.1.6
+++ gnu/usr.bin/perl/Porting/config_h.pl	21 Feb 2024 15:47:00 -0000
@@ -78,6 +78,8 @@ unless ($ch[0] =~ m/THIS IS A GENERATED 
     push @ch, ";;\nesac\n";
     }
 
+s/^(\s*)#(\s*)define\t\s*/${1}#${2}define /gm for @ch;
+
 open  $ch, ">", $cSH or die "Cannot write $cSH: $!\n";
 print $ch @ch;
 close $ch;
Index: gnu/usr.bin/perl/Porting/core-cpan-diff
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/core-cpan-diff,v
diff -u -p -a -u -p -r1.3 core-cpan-diff
--- gnu/usr.bin/perl/Porting/core-cpan-diff	15 Feb 2023 01:36:14 -0000	1.3
+++ gnu/usr.bin/perl/Porting/core-cpan-diff	21 Feb 2024 15:47:00 -0000
@@ -53,7 +53,7 @@ Usage: $0 [opts] [ -d | -v | -x ] [ -a |
 -d/--diff     Display file differences using diff(1), rather than just
               listing which files have changed.
 
---diffopts    Options to pass to the diff command. Defaults to '-u --binary'
+--diffopts    Options to pass to the diff command. Defaults to '-u --text'
               (except on *BSD, where it's just '-u').
 
 -f|force      Force download from CPAN of new 02packages.details.txt file
@@ -126,9 +126,9 @@ sub run {
           if ( $reverse || $use_diff || $diff_opts );
     }
     else {
-        #$diff_opts = '-u --binary' unless defined $diff_opts;
+        #$diff_opts = '-u --text' unless defined $diff_opts;
         if (! defined $diff_opts) {
-            $diff_opts = ($^O =~ m/bsd$/i) ? '-u' : '-u --binary';
+            $diff_opts = ($^O =~ m/bsd$/i) ? '-u' : '-u --text';
         };
         usage("can't use -f without --crosscheck") if $force;
     }
Index: gnu/usr.bin/perl/Porting/core-team.json
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/core-team.json,v
diff -u -p -a -u -p -r1.1.1.1 core-team.json
--- gnu/usr.bin/perl/Porting/core-team.json	15 Feb 2023 01:33:12 -0000	1.1.1.1
+++ gnu/usr.bin/perl/Porting/core-team.json	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,9 @@
     "ams@toroid.org",
     "doughera@lafayette.edu",
     "jan@jandubois.com",
-    "jesse@fsck.com"
+    "jesse@fsck.com",
+    "jmac@jmac.org",
+    "xdg@xdg.me"
   ],
   "active": [
     "book@cpan.org",
@@ -11,13 +13,14 @@
     "cpan@corion.net",
     "craigberry@mac.com",
     "davem@iabyn.com",
+    "demerphq@gmail.com",
     "ether@cpan.org",
     "exodist7@gmail.com",
     "fawaka@gmail.com",
     "hv@crypt.org",
     "ilmari@ilmari.org",
     "jkeenan@cpan.org",
-    "jmac@jmac.org",
+    "haarg@haarg.org",
     "khw@cpan.org",
     "leonerd@leonerd.org.uk",
     "neilb@neilb.org",
@@ -29,7 +32,6 @@
     "stuart@perlfoundation.org",
     "toddr@cpanel.net",
     "tony@develop-help.com",
-    "wolfsage@gmail.com",
-    "xdg@xdg.me"
+    "wolfsage@gmail.com"
   ]
 }
Index: gnu/usr.bin/perl/Porting/deparse-skips.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/deparse-skips.txt,v
diff -u -p -a -u -p -r1.4 deparse-skips.txt
--- gnu/usr.bin/perl/Porting/deparse-skips.txt	15 Feb 2023 01:36:14 -0000	1.4
+++ gnu/usr.bin/perl/Porting/deparse-skips.txt	21 Feb 2024 15:47:00 -0000
@@ -32,6 +32,16 @@
 __DEPARSE_FAILURES__
 
 base/lex.t                # checks regexp stringification
+# class/*.t generally failing because OP_METHSTART not recognised
+class/class.t
+class/construct.t
+class/destruct.t
+class/field.t
+class/inherit.t
+class/method.t
+class/phasers.t
+class/threads.t
+#
 comp/final_line_num.t     # tests syntax error after BEGIN block
 comp/fold.t               # mutability of folded constants
 comp/parser.t             # crazy #line directives ==> shell syntax errors
@@ -44,7 +54,6 @@ op/attrhand.t             # Custom attrs
 op/caller.t
 op/goto.t
 op/gv.t                   # glob copy constants
-op/hexfp.t
 op/index.t
 op/join.t                 # mutability of folded constants
 op/length.t               # utf8ness of deparsed strings
@@ -63,14 +72,17 @@ op/sub.t
 op/switch.t
 op/symbolcache.t
 op/taint.t
+op/undef.t                # keys%{($h=undef)||{}} becomes keys%{{} unless .. }
 op/vec.t
 op/warn.t
 op/write.t
+perf/opcount.t            # keys%{($h=undef)||{}} becomes keys%{{} unless .. }
 porting/globvar.t
 re/overload.t             # [perl #123385] %^H output
 re/pat_advanced.t         # [perl #123417]
 re/pat_rt_report.t        # malformed utf8 constant; also /\c@/ -> /\c\@/
 re/pat.t                  # [perl #90590]
+re/pat_re_eval.t          # the new /(*{...})/ forms don't deparse
 re/regex_sets.t
 re/reg_fold.t             # [perl #123385] %^H output
 re/rxcode.t               # checks regexp stringification
@@ -154,31 +166,46 @@ uni/variables.t
 #    }
 
 ../cpan/bignum/t/bigexp.t
+../cpan/bignum/t/bigfloat.t
 ../cpan/bignum/t/bigint.t
 ../cpan/bignum/t/bignum.t
 ../cpan/bignum/t/bigrat.t
+../cpan/bignum/t/const-bigfloat.t
 ../cpan/bignum/t/const-bigint.t
 ../cpan/bignum/t/const-bignum.t
 ../cpan/bignum/t/const-bigrat.t
+../cpan/bignum/t/down-mbi-up-mbf.t
+../cpan/bignum/t/down-mbi-up-mbr.t
+../cpan/bignum/t/down-mbi-up-undef.t
+../cpan/bignum/t/down-undef-up-mbf.t
+../cpan/bignum/t/e_pi-bigfloat.t
 ../cpan/bignum/t/e_pi-bigint.t
 ../cpan/bignum/t/e_pi-bignum.t
 ../cpan/bignum/t/e_pi-bigrat.t
+../cpan/bignum/t/import-bigfloat.t
 ../cpan/bignum/t/import-bigint.t
 ../cpan/bignum/t/import-bignum.t
 ../cpan/bignum/t/import-bigrat.t
 ../cpan/bignum/t/in_effect.t
+../cpan/bignum/t/infnan-bigfloat.t
 ../cpan/bignum/t/infnan-bigint.t
-../cpan/bignum/t/infnan-bignum.t
+../cpan/bignum/t/infnan-bignum-mbf.t
+../cpan/bignum/t/infnan-bignum-mbr.t
 ../cpan/bignum/t/infnan-bigrat.t
+../cpan/bignum/t/option_a-bignum.t
 ../cpan/bignum/t/option_a.t
-../cpan/bignum/t/option_l.t
+../cpan/bignum/t/option_l-bigfloat.t
+../cpan/bignum/t/option_l-bigint.t
+../cpan/bignum/t/option_l-bignum.t
+../cpan/bignum/t/option_l-bigrat.t
+../cpan/bignum/t/option_p-bignum.t
 ../cpan/bignum/t/option_p.t
 ../cpan/bignum/t/overrides.t
 ../cpan/bignum/t/ratopt_a.t
+../cpan/bignum/t/scope-bigfloat.t
 ../cpan/bignum/t/scope-bigint.t
 ../cpan/bignum/t/scope-bignum.t
 ../cpan/bignum/t/scope-bigrat.t
-../cpan/bignum/t/scope-nested-const.t
 
 # -------------
 
@@ -188,10 +215,6 @@ uni/variables.t
 ../cpan/ExtUtils-MakeMaker/t/MM_VMS.t
 
 # see comment above about bignum failures
-../cpan/Math-BigInt/t/const-mbf.t
-../cpan/Math-BigInt/t/const-mbi.t
-
-# see comment above about bignum failures
 ../cpan/Math-BigRat/t/const-mbr.t
 
 
@@ -233,7 +256,6 @@ uni/variables.t
 ../ext/XS-APItest/t/call_checker.t
 ../ext/XS-APItest/t/cleanup.t
 ../ext/XS-APItest/t/fetch_pad_names.t
-../ext/XS-APItest/t/svpeek.t
 ../ext/XS-APItest/t/synthetic_scope.t
 ../lib/Config.t                         # Config_heavy.pl fns getting output
 ../lib/charnames.t
Index: gnu/usr.bin/perl/Porting/exclude_contrib.txt
===================================================================
RCS file: gnu/usr.bin/perl/Porting/exclude_contrib.txt
diff -N gnu/usr.bin/perl/Porting/exclude_contrib.txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/Porting/exclude_contrib.txt	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,23 @@
+##########################################################################
+# This file is managed by `Porting/updateAUTHORS.pl`
+#
+# It contains the base 64 SHA-256 of the name and email details of the
+# contributors who have requested that their gracious contributions go
+# unnoted in our AUTHORS file, and who choose not to be listed in our
+# .mailmap files either.
+#
+# For example the user details
+#
+#     Joe <blogs@thing.com>
+#
+# would be excluded via entry
+#
+#     UkM6tKuf79Ra0HH7wQj6YUXumpjWy6Qd3aB5+HoNoGM
+#
+# To update this file you should use one of the --exclude options to
+# `Porting/updateAUTHORS.pl`, but if you *must* manually edit it then make
+# sure you run the tool afterwards to ensure it is correctly formatted and
+# sorted.
+##########################################################################
+dXO3142iRNcbpIKO2qxc1o3lNX8+oOCoyG5si+Sb2Ck
+QvzD7VskxHgLvOy3GdB9zvcqWIH9uM347jNLQS8QfFs
Index: gnu/usr.bin/perl/Porting/exec-bit.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/exec-bit.txt,v
diff -u -p -a -u -p -r1.6 exec-bit.txt
--- gnu/usr.bin/perl/Porting/exec-bit.txt	15 Feb 2023 01:36:14 -0000	1.6
+++ gnu/usr.bin/perl/Porting/exec-bit.txt	21 Feb 2024 15:47:00 -0000
@@ -20,6 +20,8 @@ dist/Devel-PPPort/devel/regenerate
 dist/Devel-PPPort/devel/scanprov
 dist/Devel-PPPort/devel/update_release_date.pl
 dist/Devel-PPPort/soak
+dist/Thread-Queue/examples/callback.pl
+dist/Thread-Queue/examples/queue.pl
 installperl
 installman
 makedepend.SH
@@ -42,7 +44,6 @@ Porting/bench.pl
 Porting/bisect.pl
 Porting/bisect-example.sh
 Porting/bisect-runner.pl
-Porting/checkAUTHORS.pl
 Porting/checkURL.pl
 Porting/checkVERSION.pl
 Porting/checkansi.pl
@@ -69,3 +70,4 @@ Porting/updateAUTHORS.pl
 Porting/valgrindpp.pl
 Cross/generate_config_sh
 Cross/warp
+dist/Thread-Semaphore/examples/semaphore.pl
Index: gnu/usr.bin/perl/Porting/make-rmg-checklist
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/make-rmg-checklist,v
diff -u -p -a -u -p -r1.3 make-rmg-checklist
--- gnu/usr.bin/perl/Porting/make-rmg-checklist	23 Dec 2023 21:02:20 -0000	1.3
+++ gnu/usr.bin/perl/Porting/make-rmg-checklist	21 Feb 2024 15:47:00 -0000
@@ -148,7 +148,7 @@ my $passthru_headers = qr/^= (?: over | 
 
 # version used when generating diffs (acknowledgements, Module::CoreList etc)
 # 5.36.0 -> 5.34.0
-# 5.36.3 -> 5.36.0
+# 5.36.1 -> 5.36.0
 my ($major, $minor, $point) = split(/\./, $version);
 my $last_version = join('.', $major, ($point == 0 ? ($minor - 2, 0) : ($minor, $point-1)));
 
@@ -188,7 +188,7 @@ foreach my $line (@pod_lines) {
 
     $line =~ s/\Q5.X.Y\E/$version/g;
     $line =~ s/\Q5.LAST\E/$last_version/g;
-    $line =~ s/\Q5.X\E-b/$major.$minor/g;
+    $line =~ s/\Q5.X\E\b/$major.$minor/g;
 
     $current_element->{'content'} .= "\n" . $line;
 }
Index: gnu/usr.bin/perl/Porting/makerel
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/makerel,v
diff -u -p -a -u -p -r1.17 makerel
--- gnu/usr.bin/perl/Porting/makerel	15 Feb 2023 01:36:14 -0000	1.17
+++ gnu/usr.bin/perl/Porting/makerel	21 Feb 2024 15:47:00 -0000
@@ -24,7 +24,7 @@ use warnings;
 #
 # Tim Bunce, June 1997
 
-use ExtUtils::Manifest qw(fullcheck);
+use ExtUtils::Manifest qw(manicheck);
 $ExtUtils::Manifest::Quiet = 1;
 use Getopt::Std;
 use Digest::SHA;
@@ -87,26 +87,12 @@ print "\nMaking a release for $perl in $
 cleanup($relroot, $reldir) if $opts{c};
 
 print "Cross-checking the MANIFEST...\n";
-my ($missfile, $missentry) = fullcheck();
-@$missentry
-    = grep {$_ !~ m!^\.(?:git|github|mailmap)! and $_ !~ m!(?:/|^)\.gitignore!} @$missentry;
-if (@$missfile ) {
+my @missfile = manicheck();
+if (@missfile) {
     warn "Can't make a release with MANIFEST files missing:\n";
-    warn "\t".$_."\n" for (@$missfile);
+    warn "\t".$_."\n" for (@missfile);
 }
-if (@$missentry ) {
-    warn "Can't make a release with files not listed in MANIFEST\n";
-    warn "\t".$_."\n" for (@$missentry);
-
-}
-if ("@$missentry" =~ m/\.orig\b/) {
-    # Handy listing of find command and .orig files from patching work.
-    # I tend to run 'xargs rm' and copy and paste the file list.
-    my $cmd = "find . -name '*.orig' -print";
-    print "$cmd\n";
-    system($cmd);
-}
-die "Aborted.\n" if @$missentry or @$missfile;
+die "Aborted.\n" if @missfile;
 print "\n";
 
 # VMS no longer has hardcoded version numbers descrip.mms
Index: gnu/usr.bin/perl/Porting/manifest_lib.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/manifest_lib.pl,v
diff -u -p -a -u -p -r1.1.1.2 manifest_lib.pl
--- gnu/usr.bin/perl/Porting/manifest_lib.pl	15 Feb 2023 01:33:12 -0000	1.1.1.2
+++ gnu/usr.bin/perl/Porting/manifest_lib.pl	21 Feb 2024 15:47:00 -0000
@@ -1,6 +1,8 @@
 #!/usr/bin/perl
 
 use strict;
+use warnings;
+use Text::Tabs qw(expand unexpand);
 
 =head1 NAME
 
@@ -27,16 +29,77 @@ listed sorted appropriately.
 # and so that lib/Foo/Bar.pm sorts before lib/Foo/Bar/Alpha.pm
 # and so that configure and Configure sort together.
 sub sort_manifest {
-    return
+    my @lines = @_;
+
+    # first we ensure that the descriptions for the files
+    # are lined up reasonably.
+    my %pfx_len;
+    my @line_tuples;
+    foreach my $idx (0 .. $#lines) {
+        my $line = $lines[$idx];
+        # clean up tab/space issues
+        $line =~ s/\t[ ]+/\t/;
+        if ($line =~ s/^(\S+)([ ]\s+)(\S+.*)/$1\t/) {
+            my $descr = $2;
+            $descr =~ s/\t+/ /g;
+            $line .= $descr;
+        }
+        $line =~ s/\s+\z//;
+        $line =~ /^(\S+)(?:\t+([^\t]*))?\z/
+            or do {
+                $line =~ s/\t/\\t/g;
+                die "Malformed content in MANIFEST at line $idx: '$line'\n",
+                    "Note: tabs have been encoded as \\t in this message.\n";
+            };
+        my ($file, $descr) = ($1, $2);
+        my $pfx;
+        if ($file =~ m!^((?:[^/]+/){1,2})!) {
+            $pfx = $1;
+        } else {
+            $pfx = "";
+        }
+        #print "'$pfx': $file\n";
+        push @line_tuples, [$pfx, $file, $descr];
+        $pfx_len{$pfx} //= 40;
+
+        # ensure we have at least one "space" (really tab)
+        my $flen = 1 + length $file;
+        $pfx_len{$pfx} = $flen
+            if $pfx_len{$pfx} < $flen;
+    }
+
+    # round up to the next tab stop
+    $_ % 8 and $_ += (8 - ($_ % 8)) for values %pfx_len;
+
+    my @pretty_lines;
+    foreach my $tuple (@line_tuples) {
+        my ($pfx, $file, $descr) = @$tuple;
+        my $str = sprintf "%*s", -$pfx_len{$pfx}, $file;
+        ($str) = unexpand($str);
+        # I do not understand why this is necessary. Bug in unexpand()?
+        # See https://github.com/ap/Text-Tabs/issues/5
+        $str =~ s/[ ]+/\t/;
+        if ($descr) {
+            $str =~ s/\t?\z/\t/;
+            $str .= $descr;
+        }
+        $str =~ s/\s+\z//;
+        push @pretty_lines, $str;
+    }
+
+    @pretty_lines =
     # case insensitive sorting of directory components independently.
     map { $_->[0] } # extract the full line
     sort {
+        $a->[2] cmp $b->[2] || # sort by the first directory
         $a->[1] cmp $b->[1] || # sort in order of munged filename
         $a->[0] cmp $b->[0]    # then by the exact text in full line
     }
     map {
         # split out the filename and the description
         my ($f) = split /\s+/, $_, 2;
+        # extract out the first directory
+        my $d = $f=~m!^(\w+/)! ? lc $1 : "";
         # lc the filename so Configure and configure sort together in the list
         my $m= lc $f; # $m for munged
         # replace slashes by nulls, this makes short directory names sort before
@@ -46,9 +109,11 @@ sub sort_manifest {
         # this puts any foo/blah.ext before any files in foo/blah/
         $m =~ s{(?<!\A)(\.[^.]+\z)}{\0\0$1};
 
-        # return the original string, and the munged filename
-        [ $_, $m ];
-    } @_;
+        # return the original string, and the munged filename, and root dir
+        [ $_, $m, $d ];
+    } @pretty_lines;
+
+    return @pretty_lines;
 }
 
 1;
Index: gnu/usr.bin/perl/Porting/perldelta_template.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/perldelta_template.pod,v
diff -u -p -a -u -p -r1.13 perldelta_template.pod
--- gnu/usr.bin/perl/Porting/perldelta_template.pod	23 Dec 2023 21:02:20 -0000	1.13
+++ gnu/usr.bin/perl/Porting/perldelta_template.pod	21 Feb 2024 15:47:00 -0000
@@ -115,7 +115,7 @@ release manager will have to investigate
 
 =item *
 
-XXX Remove this section if not applicable.
+XXX Remove this section if Porting/corelist-perldelta.pl did not add any content here.
 
 =back
 
@@ -127,7 +127,7 @@ XXX Remove this section if not applicabl
 
 L<XXX> has been upgraded from version A.xx to B.yy.
 
-If there was something important to note about this change, include that here.
+XXX If there was something important to note about this change, include that here.
 
 =back
 
@@ -137,7 +137,7 @@ If there was something important to note
 
 =item *
 
-XXX
+XXX Remove this section if Porting/corelist-perldelta.pl did not add any content here.
 
 =back
 
@@ -357,6 +357,9 @@ XXX
 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
+Include references to GitHub issues and PRs as: [GH #12345] and the release
+manager will later use a regex to expand these into links.
+
 [ List each fix as an =item entry ]
 
 =over 4
@@ -403,7 +406,7 @@ died, add a short obituary here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.36.3..HEAD
+  perl Porting/acknowledgements.pl v5.37.12..HEAD
 
 =head1 Reporting Bugs
 
Index: gnu/usr.bin/perl/Porting/release_announcement_template.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/release_announcement_template.txt,v
diff -u -p -a -u -p -r1.6 release_announcement_template.txt
--- gnu/usr.bin/perl/Porting/release_announcement_template.txt	15 Feb 2023 01:36:14 -0000	1.6
+++ gnu/usr.bin/perl/Porting/release_announcement_template.txt	21 Feb 2024 15:47:00 -0000
@@ -23,6 +23,6 @@ https://metacpan.org/pod/release/[AUTHOR
 [ACKNOWLEDGEMENTS SECTION FROM PERLDELTA]
 
 We expect to release version [NEXT BLEAD VERSION.SUBVERSION] on [FUTURE DATE].
-The next major stable release of Perl should appear in the first half of 2022.
+The next major stable release of Perl should appear in the first half of 2023.
 
 [YOUR SALUTATION HERE]
Index: gnu/usr.bin/perl/Porting/release_managers_guide.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/release_managers_guide.pod,v
diff -u -p -a -u -p -r1.11 release_managers_guide.pod
--- gnu/usr.bin/perl/Porting/release_managers_guide.pod	8 Jul 2023 14:18:36 -0000	1.11
+++ gnu/usr.bin/perl/Porting/release_managers_guide.pod	21 Feb 2024 15:47:00 -0000
@@ -512,23 +512,10 @@ blead release, so you may find nothing t
 =head3 update AUTHORS
 
 The AUTHORS file can be updated by running F<Porting/updateAUTHORS.pl>.
-
-(The old method was C<Porting/checkAUTHORS.pl --update --from=5.X.Y> and
-it's still used under the hood, but you should use the
-F<Porting/updateAUTHORS.pl> update.)
-
-In the old method, for MAINT and BLEAD-FINAL releases, C<v5.X.Y> needs to
-refer to the last release in the previous development cycle (so for
-example, for a 5.14.x release, this would be 5.13.11).
-
-In the old method, for BLEAD-POINT releases, it needs to refer to the
-previous BLEAD-POINT release (so for 5.15.3 this would be 5.15.2).
-
-Note: It should not be harmful to use a wider range.
-
-Note: If you have uncommitted changes this could cause some warnings,
-and you might like to use the additional argument C<--to=upstream/blead>
-to use the last known git commit by GitHub.
+This shouldn't really be necessary anymore, and in theory nothing should
+change as our CI should not pass if a commit would result in AUTHORS
+needing to change, but do it anyway to be sure. Make sure all your changes
+are committed first.
 
 Review the changes to the AUTHORS file, be sure you are not adding duplicate
 entries or removing any entries, then commit your changes.
Index: gnu/usr.bin/perl/Porting/sync-with-cpan
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/sync-with-cpan,v
diff -u -p -a -u -p -r1.6 sync-with-cpan
--- gnu/usr.bin/perl/Porting/sync-with-cpan	15 Feb 2023 01:36:14 -0000	1.6
+++ gnu/usr.bin/perl/Porting/sync-with-cpan	21 Feb 2024 15:47:00 -0000
@@ -97,7 +97,40 @@ from the filename -- but can be overwrit
 
 =item C<--jobs> I<N>
 
-When running C<make>, pass a C<< -jI<N> >> option to it.
+When running C<make>, pass a C<< -jI<N> >> option to it to enable
+parallel building.
+
+Note that you can also set C<< TEST_JOBS=I<N> >> in the environment
+to enable parallel *testing* on top of parallel *building*.
+
+=item C<--yes>
+
+Just continue at all places where we would normally ask for the user
+to hit enter or hit CTL-C, with the exception of cases related to
+CUSTOMIZED distributions, where this option will cause the update to
+exit immediately unless the C<--force> option has also been used.
+
+=item C<--force>
+
+Do things we normally would refuse to do.
+
+=item C<--tarball>
+
+Use a predownloaded tarball and not one from CPAN.
+
+=item C<--version>
+
+Sync with a specific version, not the latest on CPAN.
+
+=item C<--no-test>
+
+=item C<--nt>
+
+Do not run tests. This is helpful for bulk updates.
+
+=item C<--help>
+
+Show help.
 
 =back
 
@@ -154,14 +187,17 @@ die "This does not look like a top level
 die "Please run Configure before using $0\n"
     if !WIN32 && !-f "Makefile";
 
+#these are populated by Porting/Maintainers.pl
 our @IGNORABLE;
 our %Modules;
+our %DistName;
 
 use autodie;
 
 require "./Porting/Maintainers.pl";
 
 my $MAKE_LOG = 'make.log';
+unlink $MAKE_LOG if -e $MAKE_LOG;
 
 my %IGNORABLE    = map {$_ => 1} @IGNORABLE;
 
@@ -170,9 +206,10 @@ my $tmpdir = tmpdir();
 my $package      = "02packages.details.txt";
 my $package_url  = "http://www.cpan.org/modules/$package";
 my $package_file = "$tmpdir/$package"; # this is a cache
+my $type_dir     = "cpan";
 
 my @problematic = (
-    'podlators', # weird CUSTOMIZED section due to .PL files
+    # no current entries as of perl-5.38.2 (Jun 2023)
 );
 
 
@@ -186,11 +223,14 @@ sub usage
 GetOptions ('tarball=s'  =>  \my $tarball,
             'version=s'  =>  \my $version,
             'jobs=i'     =>  \my $make_jobs,
-             force       =>  \my $force,
-             help        =>  sub { usage 0; },
-             ) or  die "Failed to parse arguments";
+            'yes'        =>  \my $yes_to_all,
+            'force'      =>  \my $force,
+            'no-test|nt' =>  \my $no_test,
+            'help'       =>  sub { usage 0; },
+            'type=s'     =>  \$type_dir,
+        ) or  die "Failed to parse arguments";
 
-usage 1 unless @ARGV == 1 || @ARGV == 2;
+usage 1 unless @ARGV == 1;
 
 sub find_type_f {
     my @res;
@@ -220,22 +260,74 @@ sub make_writable {
     }
 }
 
-sub make {
-    my @args= @_;
+my $SEP_LINE = ("-" x 79) . "\n";
+
+sub cat_make_log {
+    my ($message) = @_;
+    print $message, $message=~/Starting/
+                    ? " and saving its output to '$MAKE_LOG' ...\n"
+                    : "\n";
+
+    open my $ofh, ">>", $MAKE_LOG
+        or die "Failed to open '$MAKE_LOG' for append\n";
+    print $ofh $SEP_LINE,"$message at ",
+                scalar(localtime),"\n",$SEP_LINE;
+    close $ofh;
+}
+
+sub run_make {
+    my @args = @_;
     unshift @args, "-j$make_jobs" if defined $make_jobs;
+    cat_make_log("Starting `make @args`");
+    my $errored;
     if (WIN32) {
         chdir "Win32";
-        system "$Config{make} @args> ..\\$MAKE_LOG 2>&1"
-            and die "Running make failed, see $MAKE_LOG";
+        $errored = system "$Config{make} @args >> ..\\$MAKE_LOG 2>&1";
         chdir '..';
     } else {
-        system "$Config{make} @args> $MAKE_LOG 2>&1"
-            and die "Running make failed, see $MAKE_LOG";
+        $errored = system "$Config{make} @args >> $MAKE_LOG 2>&1";
     };
-};
+    cat_make_log("Finished `make @args`");
+    if ($errored) {
+        if ($args[0] ne "test-prep") {
+            # see if we can extract the last Test Summary Report from
+            # the $MAKE_LOG file,
+            if (open my $ifh, "<", $MAKE_LOG) {
+                my @report;
+                my $in_summary;
+                while (<$ifh>) {
+                    if (/^Test Summary Report/) {
+                        @report = ();
+                        $in_summary = 1;
+                    } elsif ($_ eq $SEP_LINE) {
+                        $in_summary = 0;
+                    }
+                    push @report, $_ if $in_summary;
+                }
+                print for @report;
+            } else {
+                warn "Failed to open $MAKE_LOG for reading: $!";
+            }
+        }
+        die "Running `make` failed, see '$MAKE_LOG' for more details\n";
+    }
+}
 
-my ($module)  = shift;
+sub pause_for_input {
+    my ($after_message) = @_;
+    print "Hit <return> to continue; ^C to abort ";
+    if ($yes_to_all) {
+        print "\n--yes was used on command line, continuing.\n";
+    } else {
+        my $noop = <STDIN>;
+    }
+    print $after_message if $after_message;
+}
 
+my ($module)  = shift @ARGV;
+if (my $mod_name = $DistName{$module}) {
+    $module = $mod_name;
+}
 my $info = $Modules{$module};
 if (!$info) {
     # Maybe the user said "Test-Simple" instead of "Test::Simple", or
@@ -266,8 +358,33 @@ for $module in Porting/Maintainers.pl (a
 t/porting/customized.dat in that case; see t/porting/customized.t).
 
 EOF
-    print "Hit return to continue; ^C to abort "; <STDIN>;
-}
+    if ($yes_to_all and !$force) {
+        die "This distribution is marked as CUSTOMIZED\n",
+            "You used --yes on the command line, but without --force.\n",
+            "Bailing out. Use --force to go ahead anyway.\n";
+    }
+    pause_for_input("\n");
+}
+
+if (!$ENV{TEST_JOBS} and !WIN32) {
+    print "*** NOTE *** For speedups you can set TEST_JOBS=N in the env before running this script.\n";
+}
+if (!$make_jobs and !WIN32) {
+    print "*** NOTE *** For speedups you can pass --jobs=N as an arg to this script.\n"
+}
+print "About to clean the $type_dir/ directory, and ensure its contents is up to date.\n";
+print "Will also checkout -f on $type_dir/, MANIFEST and Porting/Maintainers.pl\n";
+print "*** WARNING *** - this may DELETE uncommitted changes. Hit ^C if you have ANY doubts!\n";
+pause_for_input("\n");
+# clean out the cpan directory, this cleans up any temporary files that might be
+# in the way, or other issues that might come up if the user bails out of the sync
+# script and then runs it again.
+my $clean_out= `git clean -dfx $type_dir`; # use backticks to hide the output
+system git => 'checkout -f',
+              $type_dir,
+              'MANIFEST',
+              'Porting/Maintainers.pl'; # let the user see the output
+print "the $type_dir/ directory is now clean and up to date\n---\n";
 
 my  $distribution = $$info {DISTRIBUTION};
 
@@ -284,12 +401,18 @@ if (!-d $files [0] || grep { $_ eq $modu
 use Cwd 'cwd';
 my $orig_pwd = cwd();
 
-chdir "cpan";
+chdir "$type_dir";
 
 my  $pkg_dir      = $files[0];
     $pkg_dir      =~ s!.*/!!;
 
-my ($old_version) = $distribution =~ /-([0-9.]+(?:-TRIAL[0-9]*)?)\.tar\.gz/;
+my $tail_pat = qr/(?:\.tar\.gz|\.tgz|\.zip)\z/;
+
+my ($old_version) = $distribution =~ /-([0-9._]+(?:-TRIAL[0-9]*)?)$tail_pat/;
+
+if (!$old_version) {
+    die "WTF: failed to parse old version from '$distribution'\n";
+}
 
 sub wget {
     my ($url, $saveas) = @_;
@@ -324,12 +447,13 @@ sub wget {
 #
 my $new_file;
 my $new_version;
+my $re_update = "";
 if (defined $tarball) {
     $tarball = rel2abs( $tarball, $orig_pwd ) ;
     die "Tarball $tarball does not exist\n" if !-e $tarball;
     die "Tarball $tarball is not a plain file\n" if !-f _;
     $new_file     = $tarball;
-    $new_version  = $version // ($new_file =~ /-([0-9._]+(?:-TRIAL[0-9]*)?)\.tar\.gz/) [0];
+    $new_version  = $version // ($new_file =~ /-([0-9._]+(?:-TRIAL[0-9]*)?)$tail_pat/) [0];
     die "Blead and that tarball both have version $new_version of $module\n"
         if $new_version eq $old_version;
 }
@@ -352,8 +476,13 @@ else {
     }
     $new_file = (split '/', $new_path) [-1];
 
-    die "The latest version of $module is $new_version, but blead already has it\n"
-        if $new_version eq $old_version;
+    if ($old_version eq $new_version) {
+        $re_update = "Re-";
+        print "The latest version of $module is $new_version, but blead already has it.\n";
+        print "Continuing may update MANIFEST or other metadata so it may make sense to continue anyway.\n";
+        print "Are you sure you want to continue?\n";
+        pause_for_input();
+    }
 
     my $url = "https://cpan.metacpan.org/authors/id/$new_path";
     say "Fetching $url";
@@ -363,7 +492,7 @@ else {
     wget $url, $new_file;
 }
 
-my  $old_dir      = "$pkg_dir-$old_version";
+my  $old_dir      = "$pkg_dir-$old_version-OLD";
 
 say "Cleaning out old directory";
 system git => 'clean', '-dfxq', $pkg_dir;
@@ -371,7 +500,7 @@ system git => 'clean', '-dfxq', $pkg_dir
 say "Unpacking $new_file";
 Archive::Tar->extract_archive( $new_file );
 
-(my $new_dir = basename($new_file)) =~ s/\.tar\.gz//;
+(my $new_dir = basename($new_file)) =~ s/$tail_pat//;
 # ensure 'make' will update all files
 my $t= time;
 for my $file (find_type_f($new_dir)) {
@@ -415,8 +544,8 @@ FILE: for my $file ( find_type_f( $new_d
         $file = $files[0] . '/' . $file;
     }
 
-    if ( $file =~ m{^cpan/} ) {
-        $file =~ s{^cpan/}{};
+    if ( $file =~ m{^$type_dir/} ) {
+        $file =~ s{^$type_dir/}{};
     }
     else {
         $file = '../' . $file;
@@ -453,10 +582,17 @@ my %old_files = map {$_ => 1} @old_files
 my @delete;
 my @commit;
 my @gone;
+my $changes_file;
 FILE:
 foreach my $file (@new_files) {
     next if -d "$pkg_dir/$file";   # Ignore directories.
     next if $old_files {$file};    # It's already there.
+    if ($file=~/Changes/i or $file=~/Changelog/) {
+        if ($changes_file) {
+            die "More than one changes file? $file and $changes_file both exist?";
+        }
+        $changes_file = "$pkg_dir/$file";
+    }
     if ($IGNORABLE {$file}) {
         push @delete => $file;
         next;
@@ -469,6 +605,54 @@ foreach my $file (@old_files) {
     push @gone => $file;
 }
 
+my @changes_info;
+if (!$changes_file) {
+    print "Could not find a changes file!\n",
+          "If this is not correct and there is one, please consider updating this script!\n";
+} else {
+    open my $ifh, "<", $changes_file
+        or die "Failed to open '$changes_file':$!";
+    chomp(my @lines = <$ifh>);
+    close $ifh;
+    my $seen_new_version;
+    my $is_update = $new_version ne $old_version;
+
+    for(my $idx = 0; $idx < @lines; $idx++) {
+        if ($lines[$idx] =~ /$new_version/ ||
+            ($pkg_dir eq "CPAN" and $lines[$idx] =~/^\d{4}-\d{2}-\d{2}/
+             && $lines[$idx+2]
+             && $lines[$idx+2] =~ /release $new_version/)
+        ){
+            $seen_new_version = 1;
+            push @changes_info, $lines[$idx];
+        } elsif ($seen_new_version) {
+            if ($is_update && $pkg_dir eq "ExtUtils-MakeMaker") {
+                if ($lines[$idx] =~/$old_version/) {
+                    last;
+                }
+            }
+            elsif (($lines[$idx]=~/\d\.\d/ and $lines[$idx]=~/20\d\d/) ||
+                ($lines[$idx]=~/---------------------------------/) ||
+                ($pkg_dir eq "CPAN" and $lines[$idx] =~/^\d{4}-\d{2}-\d{2}/) ||
+                ($pkg_dir eq "version" and $lines[$idx] =~/^\d\.\d+/) ||
+                ($pkg_dir eq "Getopt-Long" and $lines[$idx] =~/Changes in version/) ||
+                ($pkg_dir eq "ExtUtils-Install" and $lines[$idx] =~/^\d+\.\d+/) ||
+                0 # less commit churn if we have to tweak the heuristics above
+            ){
+                last;
+            }
+            push @changes_info, $lines[$idx];
+
+        }
+    }
+    if (!@changes_info) {
+        die "No changes?";
+    } else {
+        print "Changes from $changes_file\n";
+        print $_,"\n" for @changes_info;
+    }
+}
+
 #
 # Find all files with an exec bit
 #
@@ -504,15 +688,18 @@ if (@de_exec && @delete) {
 if (@de_exec) {
     my %permitted = map { (my $x = $_) =~ tr/\n//d; $x => 1 } grep !/^#/,
         do { local @ARGV = '../Porting/exec-bit.txt'; <> };
-    @de_exec = grep !$permitted{"cpan/$pkg_dir/$_"}, @de_exec;
+    @de_exec = grep !$permitted{"$type_dir/$pkg_dir/$_"}, @de_exec;
 }
+@$_ = sort @$_ for \@delete, \@commit, \@gone, \@de_exec;
 
 say "unlink $pkg_dir/$_" for @delete;
 say "git add $pkg_dir/$_" for @commit;
 say "git rm -f $pkg_dir/$_" for @gone;
 say "chmod a-x $pkg_dir/$_" for @de_exec;
 
-print "Hit return to continue; ^C to abort "; <STDIN>;
+print "--\nWill perform the above steps and then start testing.\n";
+print "You may want to `tail -F $MAKE_LOG` in another window\n";
+pause_for_input("\n");
 
 unlink "$pkg_dir/$_"                      for @delete;
 system git   => 'add', "$pkg_dir/$_"      for @commit;
@@ -532,8 +719,11 @@ if ($$info {CUSTOMIZED}) {
 }
 
 chdir "..";
-if (@commit || @gone) {
-    say "Fixing MANIFEST";
+{
+    # we update the MANIFEST file always now, so that we can
+    # ensure each file from this sync is updated to say that we
+    # got it from the latest version.
+    say "Updating the MANIFEST file";
     my $MANIFEST     = "MANIFEST";
     my $MANIFEST_NEW = "$MANIFEST.new";
 
@@ -541,14 +731,37 @@ if (@commit || @gone) {
         or die "Failed to open $MANIFEST for reading: $!\n";
     open my $new, ">", $MANIFEST_NEW
         or die "Failed to open $MANIFEST_NEW for writing: $!\n";
-    my %gone = map +("cpan/$pkg_dir/$_" => 1), @gone;
+    my %keep = map +("$type_dir/$pkg_dir/$_" => 1), keys %new_files;
+    my %gone = map +("$type_dir/$pkg_dir/$_" => 1), @gone;
     while (my $line = <$orig>) {
-        my ($file) = $line =~ /^(\S+)/
-            or die "Can't parse MANIFEST line: $line";
-        print $new $line if !$gone{$file};
+        chomp $line;
+        my ($file, $descr) = split /\t+/, $line;
+        if (!$file) {
+            die "Can't parse MANIFEST line: '$line' at line $.\n";
+        }
+        if ($keep{$file} and !$descr) {
+            # make sure we have at least one tab, old versions of
+            # this script would add lines to MANIFEST with no tab.
+            $line =~ s/^(\S+)\z/$1\t\t/;
+
+            my $file_descr = "";
+            if ( $file =~ /\.t/ ) {
+                $file_descr = "Test file";
+            }
+            elsif ( $file =~ /\.pm/ ) {
+                $file_descr = "Module";
+            }
+            elsif ( $file =~ /\.pl/ ) {
+                $file_descr = "Script";
+            }
+            $file_descr .= " related to " if $file_descr;
+            # and update the line to show where the file came from.
+            $line =~ s/(\t+).*/$1$file_descr$module/;
+        }
+        say $new $line if !$gone{$file};
     }
 
-    say $new "cpan/$pkg_dir/$_" for @commit;
+    say $new "$type_dir/$pkg_dir/$_\t\t$pkg_dir" for @commit;
 
     close $new or die "Can't close $MANIFEST: $!\n";
 
@@ -558,10 +771,11 @@ if (@commit || @gone) {
 }
 
 
-print "Running a make and saving its output to $MAKE_LOG ... ";
-# Prepare for running (selected) tests
-make 'test-prep';
-print "done\n";
+
+# Prepare for running (selected) tests - strictly speaking this isn't
+# necessary, as we run the tests with "run_make" now, but this allows
+# us to separate build issues from test issues.
+run_make 'test-prep' unless $no_test;
 
 # The build system installs code from CPAN dists into the lib/ directory,
 # creating directories as needed. This means that the cleaning-related rules
@@ -588,64 +802,49 @@ if (@commit || @gone) {
 # Must clean up, or else t/porting/FindExt.t will fail.
 # Note that we can always retrieve the original directory with a git checkout.
 #
-print "About to clean up; hit return or abort (^C) "; <STDIN>;
-
-remove_tree( "cpan/$old_dir" );
-unlink "cpan/$new_file" unless $tarball;
-
-#
-# Run the tests. First the test belonging to the module, followed by the
-# tests in t/porting
-#
-chdir "t";
-say "Running module tests";
-my @test_files = grep { /\.t$/ } find_type_f( "../cpan/$pkg_dir" );
-my $exe_dir = WIN32 ? "..\\" : './';
-my $output = `${exe_dir}perl$Config{_exe} TEST @test_files`;
-unless ($output =~ /All tests successful/) {
-    say $output;
-    exit 1;
-}
-
-print "Running tests in t/porting ";
-my @tests = glob 'porting/*.t';
-chomp @tests;
-my @failed;
-foreach my $t (@tests) {
-    my @not = grep {!/# TODO/ }
-              grep { /^not/ }
-              `${exe_dir}perl -I../lib -I.. $t`;
-    print @not ? '!' : '.';
-    push @failed => $t if @not;
-}
-print "\n";
-say "Failed tests: @failed" if @failed;
+print "About to clean up the old version, update Maintainers.pl and start tests\n";
+pause_for_input("\n");
 
+remove_tree( "$type_dir/$old_dir" );
+unlink "$type_dir/$new_file" unless $tarball;
 
-chdir '..';
 
 open my $Maintainers_pl, '<', 'Porting/Maintainers.pl';
 open my $new_Maintainers_pl, '>', 'Maintainers.pl';
 
-my $found;
+my $found = 0;
 my $in_mod_section;
 while (<$Maintainers_pl>) {
-    if (!$found) {
-        if ($in_mod_section) {
-            if (/DISTRIBUTION/) {
-                if (s/\Q$old_version/$new_version/) {
-                    $found = 1;
-                }
+    if ($in_mod_section) {
+        if ($found == 1) {
+            # Keep track of when and who did the sync.
+            # This must be before the DISTRIBUTION check.
+            # This ensures that *something* is updated when we re-update.
+            my $date = localtime;
+            my $user = $ENV{USER} ? "$ENV{USER} on " : "";
+            my $key = "SYNCINFO";
+            if ( /^'([A-Z_]+)'\s+=>/ and $1 eq $key) {
+                s/(=>\s+)'[^']+'/$1'$user$date'/;
             }
-
-            if (/^    \}/) {
-                $in_mod_section = 0;
+            else {
+                print $new_Maintainers_pl
+                    "        '$key'     => '$user$date',\n";
             }
+            $found = 2;
+            $in_mod_section = 0;
         }
-
-        if (/\Q$module/) {
-            $in_mod_section = 1;
+        if (/DISTRIBUTION/) {
+            if (s/\Q$old_version/$new_version/) {
+                $found = 1;
+            }
         }
+        if (/^\s*\}/) { # sanity
+            $in_mod_section = 0;
+        }
+    }
+
+    if (/\Q$module\E/ and !$found) {
+        $in_mod_section = 1;
     }
 
     print $new_Maintainers_pl $_;
@@ -662,6 +861,28 @@ else {
     say "Make sure you update this by hand before committing.";
 }
 
+# Run the tests. First the test belonging to the module, followed by the
+# tests in t/porting
+
+my $shell_quote = WIN32 ? '"' : "'";
+if ($no_test) {
+    print "*** NOT RUNNING TESTS ***\n";
+} else {
+    run_make "test-harness TEST_ARGS=$shell_quote-re $pkg_dir$shell_quote";
+    run_make "test-porting";
+}
+
+my $committed;
+if (@changes_info) {
+    system git => 'commit',
+           join("\n",
+               "-m$type_dir/$pkg_dir - ${re_update}Update to version $new_version",
+               "",@changes_info),
+           "$type_dir/$pkg_dir", "MANIFEST", "Porting/Maintainers.pl"
+        or $committed = 1; # note system returns true for an error!
+}
+
+
 print <<"EOF";
 
 =======================================================================
@@ -676,11 +897,37 @@ has added an XS dependency - even if the
 Hopefully all will complete successfully, but if not, you can make any
 changes you need to get the tests to pass. Don't forget that you'll need
 a "CUSTOMIZED" entry in Porting/Maintainers.pl if you change any of the
-files under cpan/$pkg_dir.
+files under $type_dir/$pkg_dir.
+
+EOF
+
+if ($committed) {
+    print <<"EOF";
+The changes have already been committed. If the tests above fail you can
+discard this patch with
 
-Once all tests pass, you can "git add -u" and "git commit" the changes
-with a message along the lines of "Update Foo::Bar to v1.234".
+    git reset --hard HEAD^.
+
+You may also want to review the commit message and alter it with
+
+    git commit --amend
+
+Regardless you still need to push this commit upstream with something like
+
+    git push origin HEAD:$ENV{USER}/update_${pkg_dir}_v_$new_version
 
 EOF
+} else {
+    print <<"EOF";
+Once all tests pass, you can commit it with a command like:
+
+    git commit -m${shell_quote}$type_dir/$pkg_dir - Update to version $new_version${shell_quote} $type_dir/$pkg_dir
+
+and then push it upstream with a command like
+
+    git push origin HEAD:$ENV{USER}/update_${pkg_dir}_v_$new_version
+
+EOF
+}
 
 __END__
Index: gnu/usr.bin/perl/Porting/test-dist-modules.pl
===================================================================
RCS file: gnu/usr.bin/perl/Porting/test-dist-modules.pl
diff -N gnu/usr.bin/perl/Porting/test-dist-modules.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/Porting/test-dist-modules.pl	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,1307 @@
+#!perl
+# this should be perl 5.8 compatible, since it will be used
+# with old perls while testing dist modules on those perls
+use strict;
+use warnings;
+use File::Temp "tempdir";
+use ExtUtils::Manifest "maniread";
+use Cwd "getcwd";
+use Getopt::Long;
+use Config;
+
+my $continue;
+my $separate;
+GetOptions("c|continue" => \$continue,
+           "s|separate" => \$separate,
+           "h|help"     => \&usage)
+  or die "Unknown options\n";
+
+$|++;
+
+-f "Configure"
+  or die "Expected to be run from a perl checkout";
+
+my $github_ci = $ENV{'GITHUB_SHA'} ? 1 : 0;
+
+my $manifest = maniread();
+my @failures = ();
+
+my @config;
+my $install_path;
+if ($separate) {
+    # require EU::MM 6.31 or later
+    my $install_base = tempdir( CLEANUP => 1 );
+    push @config, "INSTALL_BASE=$install_base";
+    $ENV{PERL5LIB} .= $Config{path_sep} if $ENV{PERL5LIB};
+    $ENV{PERL5LIB} .= join $Config{path_sep},
+      "$install_base/lib/perl5/$Config{archname}",
+      "$install_base/lib/perl5";
+}
+
+my %dist_config = (
+    # these are defined by the modules as distributed on CPAN
+    # I don't know why their Makefile.PLs aren't in core
+    "threads"        => [ "DEFINE=-DHAS_PPPORT_H" ],
+    "threads-shared" => [ "DEFINE=-DHAS_PPPORT_H" ],
+   );
+
+my $start = getcwd()
+  or die "Cannot fetch current directory: $!\n";
+
+# get ppport.h
+my $pppdir = test_dist("Devel-PPPort");
+
+if (@failures) {
+    if ($github_ci) {
+        # GitHub may show STDERR before STDOUT.. despite autoflush
+        # being enabled.. Make sure it detects the 'endgroup' before
+        # the `die` statement.
+        print STDERR "::endgroup::\n";
+    }
+    die "Devel-PPPort failed, aborting other tests.\n";
+}
+
+my $pppfile = "$pppdir/ppport.h";
+
+-f $pppfile
+  or die "No ppport.h found in $pppdir\n";
+
+# Devel-PPPort is manually processed before anything else to ensure we
+# have an up to date ppport.h
+my @dists = @ARGV;
+if (@dists) {
+    for my $dist (@dists) {
+        -d "dist/$dist" or die "dist/$dist not a directory\n";
+    }
+}
+else {
+    opendir my $distdir, "dist"
+      or die "Cannot opendir 'dist': $!\n";
+    @dists = sort { lc $a cmp lc $b } grep { /^\w/ && $_ ne "Devel-PPPort" } readdir $distdir;
+    closedir $distdir;
+}
+
+# These may end up being included if their problems are resolved
+{
+    # https://github.com/Perl/version.pm claims CPAN is upstream
+    @dists = grep { $_ ne "version" } @dists;
+
+    # Safe is tied pretty heavily to core
+    # in any case it didn't seem simple to fix
+    @dists = grep { $_ ne "Safe" } @dists;
+}
+
+for my $dist (@dists) {
+    test_dist($dist);
+}
+
+if (@failures) {
+    if ($github_ci) {
+        # GitHub may show STDERR before STDOUT.. despite autoflush
+        # being enabled.. Make sure it detects the 'endgroup' before
+        # the `die` statement.
+        print STDERR "::endgroup::\n";
+    }
+    my $msg = join("\n", map { "\t'$_->[0]' failed at $_->[1]" } @failures);
+    die "Following dists had failures:\n$msg\n";
+}
+
+sub test_dist {
+    my ($name) = @_;
+
+    print "::group::Testing $name\n" if $github_ci;
+    print "*** Testing $name ***\n";
+    my $dir = tempdir( CLEANUP => 1);
+    run("cp", "-a", "dist/$name/.", "$dir/.")
+      or die "Cannot copy dist files to working directory\n";
+    chdir $dir
+      or die "Cannot chdir to dist working directory '$dir': $!\n";
+    if ($pppfile) {
+        run("cp", $pppfile, ".")
+          or die "Cannot copy $pppfile to .\n";
+    }
+    if ($name eq "IO" || $name eq "threads" || $name eq "threads-shared") {
+        write_testpl();
+    }
+    if ($name eq "threads" || $name eq "threads-shared") {
+        write_threads_h();
+    }
+    if ($name eq "threads-shared") {
+        write_shared_h();
+    }
+    unless (-f "Makefile.PL") {
+        print "  Creating Makefile.PL for $name\n";
+        my $key = "ABSTRACT_FROM";
+        my @parts = split /-/, $name;
+        my $last = $parts[-1];
+        my $module = join "::", @parts;
+        my $fromname;
+        for my $check ("$last.pm", join("/", "lib", @parts) . ".pm") {
+            if (-f $check) {
+                $fromname = $check;
+                last;
+            }
+        }
+        $fromname
+          or die "Cannot find ABSTRACT_FROM for $name\n";
+        my $value = $fromname;
+        open my $fh, ">", "Makefile.PL"
+          or die "Cannot create Makefile.PL: $!\n";
+        # adapted from make_ext.pl
+        printf $fh <<'EOM', $module, $fromname, $key, $value;
+use strict;
+use ExtUtils::MakeMaker;
+
+# This is what the .PL extracts to. Not the ultimate file that is installed.
+# (ie Win32 runs pl2bat after this)
+
+# Doing this here avoids all sort of quoting issues that would come from
+# attempting to write out perl source with literals to generate the arrays and
+# hash.
+my @temps = 'Makefile.PL';
+foreach (glob('scripts/pod*.PL')) {
+    # The various pod*.PL extractors change directory. Doing that with relative
+    # paths in @INC breaks. It seems the lesser of two evils to copy (to avoid)
+    # the chdir doing anything, than to attempt to convert lib paths to
+    # absolute, and potentially run into problems with quoting special
+    # characters in the path to our build dir (such as spaces)
+    require File::Copy;
+
+    my $temp = $_;
+    $temp =~ s!scripts/!!;
+    File::Copy::copy($_, $temp) or die "Can't copy $temp to $_: $!";
+    push @temps, $temp;
+}
+
+my $script_ext = $^O eq 'VMS' ? '.com' : '';
+my %%pod_scripts;
+foreach (glob('pod*.PL')) {
+    my $script = $_;
+    s/.PL$/$script_ext/i;
+    $pod_scripts{$script} = $_;
+}
+my @exe_files = values %%pod_scripts;
+
+WriteMakefile(
+    NAME          => '%s',
+    VERSION_FROM  => '%s',
+    %-13s => '%s',
+    realclean     => { FILES => "@temps" },
+    (%%pod_scripts ? (
+        PL_FILES  => \%%pod_scripts,
+        EXE_FILES => \@exe_files,
+        clean     => { FILES => "@exe_files" },
+    ) : ()),
+);
+
+EOM
+        close $fh;
+    }
+
+    my $verbose = $github_ci && $ENV{'RUNNER_DEBUG'} ? 1 : 0;
+    my $failed = "";
+    my @my_config = @config;
+    if (my $cfg = $dist_config{$name}) {
+        push @my_config, @$cfg;
+    }
+    if (!run($^X, "Makefile.PL", @my_config)) {
+        $failed = "Makefile.PL";
+        die "$name: Makefile.PL failed\n" unless $continue;
+    }
+    elsif (!run("make", "test", "TEST_VERBOSE=$verbose")) {
+        $failed = "make test";
+        die "$name: make test failed\n" unless $continue;
+    }
+    elsif (!run("make", "install")) {
+        $failed = "make install";
+        die "$name: make install failed\n" unless $continue;
+    }
+
+    chdir $start
+      or die "Cannot return to $start: $!\n";
+
+    if ($github_ci) {
+        print "::endgroup::\n";
+    }
+    if ($continue && $failed) {
+        print "::error ::$name failed at $failed\n" if $github_ci;
+        push @failures, [ $name, $failed ];
+    }
+
+    $dir;
+}
+
+# IO, threads and threads-shared use the blead t/test.pl when tested in core
+# and bundle their own test.pl when distributed on CPAN.
+# The test.pl source below is from the IO distribution but so far seems sufficient
+# for threads and threads-shared.
+sub write_testpl {
+    _write_from_data("t/test.pl");
+}
+
+# threads and threads-shared bundle this file, which isn't needed in core
+sub write_threads_h {
+    _write_from_data("threads.h");
+}
+
+# threads-shared bundles this file, which isn't needed in core
+sub write_shared_h {
+    _write_from_data("shared.h");
+}
+
+# file data read from <DATA>
+my %file_data;
+
+sub _write_from_data {
+    my ($want_name) = @_;
+
+    unless (keys %file_data) {
+        my $name;
+        while (<DATA>) {
+            if (/^-- (\S+) --/) {
+                $name = $1;
+            }
+            else {
+                $file_data{$name} .= $_;
+            }
+        }
+        close DATA;
+    }
+
+    my $data = $file_data{$want_name} or die "No data found for $want_name";
+    open my $fh, ">", $want_name
+      or die "Cannot create $want_name: $!\n";
+    print $fh $data;
+    close $fh
+      or die "Cannot close $want_name: $!\n";
+}
+
+sub run {
+    my (@cmd) = @_;
+
+    print "\$ @cmd\n";
+    my $result = system(@cmd);
+    if ($result < 0) {
+        print "Failed: $!\n";
+    }
+    elsif ($result) {
+        printf "Failed: %d (%#x)\n", $result, $?;
+    }
+    return $result == 0;
+}
+
+sub usage {
+    print <<EOS;
+Usage: $^X $0 [options] [distnames]
+ -c | -continue
+     Continue processing after failures
+     Devel::PPPort must successfully build to continue.
+ -s | -separate
+     Install to a work path, not to perl's site_perl.
+ -h | -help
+     Display this message.
+
+Optional distnames should be names of the distributions under dist/ to
+test.  If omitted all of the distributions under dist/ are tested.
+Devel-PPPort is always tested.
+
+Test all of the distributions, stop on the first failure:
+
+   $^X $0 -s
+
+Test the various threads distributions, continue on failure:
+
+   $^X $0 -s -c threads threads-shared Thread-Queue Thread-Semaphore
+EOS
+}
+
+__DATA__
+-- t/test.pl --
+#
+# t/test.pl - most of Test::More functionality without the fuss
+ 
+ 
+# NOTE:
+#
+# Increment ($x++) has a certain amount of cleverness for things like
+#
+#   $x = 'zz';
+#   $x++; # $x eq 'aaa';
+#
+# stands more chance of breaking than just a simple
+#
+#   $x = $x + 1
+#
+# In this file, we use the latter "Baby Perl" approach, and increment
+# will be worked over by t/op/inc.t
+ 
+$Level = 1;
+my $test = 1;
+my $planned;
+my $noplan;
+my $Perl;       # Safer version of $^X set by which_perl()
+ 
+$TODO = 0;
+$NO_ENDING = 0;
+ 
+# Use this instead of print to avoid interference while testing globals.
+sub _print {
+    local($\, $", $,) = (undef, ' ', '');
+    print STDOUT @_;
+}
+ 
+sub _print_stderr {
+    local($\, $", $,) = (undef, ' ', '');
+    print STDERR @_;
+}
+ 
+sub plan {
+    my $n;
+    if (@_ == 1) {
+        $n = shift;
+        if ($n eq 'no_plan') {
+          undef $n;
+          $noplan = 1;
+        }
+    } else {
+        my %plan = @_;
+        $n = $plan{tests};
+    }
+    _print "1..$n\n" unless $noplan;
+    $planned = $n;
+}
+ 
+END {
+    my $ran = $test - 1;
+    if (!$NO_ENDING) {
+        if (defined $planned && $planned != $ran) {
+            _print_stderr
+                "# Looks like you planned $planned tests but ran $ran.\n";
+        } elsif ($noplan) {
+            _print "1..$ran\n";
+        }
+    }
+}
+ 
+# Use this instead of "print STDERR" when outputing failure diagnostic
+# messages
+sub _diag {
+    return unless @_;
+    my @mess = map { /^#/ ? "$_\n" : "# $_\n" }
+               map { split /\n/ } @_;
+    $TODO ? _print(@mess) : _print_stderr(@mess);
+}
+ 
+sub diag {
+    _diag(@_);
+}
+ 
+sub skip_all {
+    if (@_) {
+        _print "1..0 # Skip @_\n";
+    } else {
+        _print "1..0\n";
+    }
+    exit(0);
+}
+ 
+sub _ok {
+    my ($pass, $where, $name, @mess) = @_;
+    # Do not try to microoptimize by factoring out the "not ".
+    # VMS will avenge.
+    my $out;
+    if ($name) {
+        # escape out '#' or it will interfere with '# skip' and such
+        $name =~ s/#/\\#/g;
+        $out = $pass ? "ok $test - $name" : "not ok $test - $name";
+    } else {
+        $out = $pass ? "ok $test" : "not ok $test";
+    }
+ 
+    $out .= " # TODO $TODO" if $TODO;
+    _print "$out\n";
+ 
+    unless ($pass) {
+        _diag "# Failed $where\n";
+    }
+ 
+    # Ensure that the message is properly escaped.
+    _diag @mess;
+ 
+    $test = $test + 1; # don't use ++
+ 
+    return $pass;
+}
+ 
+sub _where {
+    my @caller = caller($Level);
+    return "at $caller[1] line $caller[2]";
+}
+ 
+# DON'T use this for matches. Use like() instead.
+sub ok ($@) {
+    my ($pass, $name, @mess) = @_;
+    _ok($pass, _where(), $name, @mess);
+}
+ 
+sub _q {
+    my $x = shift;
+    return 'undef' unless defined $x;
+    my $q = $x;
+    $q =~ s/\\/\\\\/g;
+    $q =~ s/'/\\'/g;
+    return "'$q'";
+}
+ 
+sub _qq {
+    my $x = shift;
+    return defined $x ? '"' . display ($x) . '"' : 'undef';
+};
+ 
+# keys are the codes \n etc map to, values are 2 char strings such as \n
+my %backslash_escape;
+foreach my $x (split //, 'nrtfa\\\'"') {
+    $backslash_escape{ord eval "\"\\$x\""} = "\\$x";
+}
+# A way to display scalars containing control characters and Unicode.
+# Trying to avoid setting $_, or relying on local $_ to work.
+sub display {
+    my @result;
+    foreach my $x (@_) {
+        if (defined $x and not ref $x) {
+            my $y = '';
+            foreach my $c (unpack("U*", $x)) {
+                if ($c > 255) {
+                    $y .= sprintf "\\x{%x}", $c;
+                } elsif ($backslash_escape{$c}) {
+                    $y .= $backslash_escape{$c};
+                } else {
+                    my $z = chr $c; # Maybe we can get away with a literal...
+                    $z = sprintf "\\%03o", $c if $z =~ /[[:^print:]]/;
+                    $y .= $z;
+                }
+            }
+            $x = $y;
+        }
+        return $x unless wantarray;
+        push @result, $x;
+    }
+    return @result;
+}
+ 
+sub is ($$@) {
+    my ($got, $expected, $name, @mess) = @_;
+ 
+    my $pass;
+    if( !defined $got || !defined $expected ) {
+        # undef only matches undef
+        $pass = !defined $got && !defined $expected;
+    }
+    else {
+        $pass = $got eq $expected;
+    }
+ 
+    unless ($pass) {
+        unshift(@mess, "#      got "._q($got)."\n",
+                       "# expected "._q($expected)."\n");
+    }
+    _ok($pass, _where(), $name, @mess);
+}
+ 
+sub isnt ($$@) {
+    my ($got, $isnt, $name, @mess) = @_;
+ 
+    my $pass;
+    if( !defined $got || !defined $isnt ) {
+        # undef only matches undef
+        $pass = defined $got || defined $isnt;
+    }
+    else {
+        $pass = $got ne $isnt;
+    }
+ 
+    unless( $pass ) {
+        unshift(@mess, "# it should not be "._q($got)."\n",
+                       "# but it is.\n");
+    }
+    _ok($pass, _where(), $name, @mess);
+}
+ 
+sub cmp_ok ($$$@) {
+    my($got, $type, $expected, $name, @mess) = @_;
+ 
+    my $pass;
+    {
+        local $^W = 0;
+        local($@,$!);   # don't interfere with $@
+                        # eval() sometimes resets $!
+        $pass = eval "\$got $type \$expected";
+    }
+    unless ($pass) {
+        # It seems Irix long doubles can have 2147483648 and 2147483648
+        # that stringify to the same thing but are acutally numerically
+        # different. Display the numbers if $type isn't a string operator,
+        # and the numbers are stringwise the same.
+        # (all string operators have alphabetic names, so tr/a-z// is true)
+        # This will also show numbers for some uneeded cases, but will
+        # definately be helpful for things such as == and <= that fail
+        if ($got eq $expected and $type !~ tr/a-z//) {
+            unshift @mess, "# $got - $expected = " . ($got - $expected) . "\n";
+        }
+        unshift(@mess, "#      got "._q($got)."\n",
+                       "# expected $type "._q($expected)."\n");
+    }
+    _ok($pass, _where(), $name, @mess);
+}
+ 
+# Check that $got is within $range of $expected
+# if $range is 0, then check it's exact
+# else if $expected is 0, then $range is an absolute value
+# otherwise $range is a fractional error.
+# Here $range must be numeric, >= 0
+# Non numeric ranges might be a useful future extension. (eg %)
+sub within ($$$@) {
+    my ($got, $expected, $range, $name, @mess) = @_;
+    my $pass;
+    if (!defined $got or !defined $expected or !defined $range) {
+        # This is a fail, but doesn't need extra diagnostics
+    } elsif ($got !~ tr/0-9// or $expected !~ tr/0-9// or $range !~ tr/0-9//) {
+        # This is a fail
+        unshift @mess, "# got, expected and range must be numeric\n";
+    } elsif ($range < 0) {
+        # This is also a fail
+        unshift @mess, "# range must not be negative\n";
+    } elsif ($range == 0) {
+        # Within 0 is ==
+        $pass = $got == $expected;
+    } elsif ($expected == 0) {
+        # If expected is 0, treat range as absolute
+        $pass = ($got <= $range) && ($got >= - $range);
+    } else {
+        my $diff = $got - $expected;
+        $pass = abs ($diff / $expected) < $range;
+    }
+    unless ($pass) {
+        if ($got eq $expected) {
+            unshift @mess, "# $got - $expected = " . ($got - $expected) . "\n";
+        }
+        unshift@mess, "#      got "._q($got)."\n",
+                      "# expected "._q($expected)." (within "._q($range).")\n";
+    }
+    _ok($pass, _where(), $name, @mess);
+}
+ 
+# Note: this isn't quite as fancy as Test::More::like().
+ 
+sub like   ($$@) { like_yn (0,@_) }; # 0 for -
+sub unlike ($$@) { like_yn (1,@_) }; # 1 for un-
+ 
+sub like_yn ($$$@) {
+    my ($flip, $got, $expected, $name, @mess) = @_;
+    my $pass;
+    $pass = $got =~ /$expected/ if !$flip;
+    $pass = $got !~ /$expected/ if $flip;
+    unless ($pass) {
+        unshift(@mess, "#      got '$got'\n",
+                $flip
+                ? "# expected !~ /$expected/\n" : "# expected /$expected/\n");
+    }
+    local $Level = $Level + 1;
+    _ok($pass, _where(), $name, @mess);
+}
+ 
+sub pass {
+    _ok(1, '', @_);
+}
+ 
+sub fail {
+    _ok(0, _where(), @_);
+}
+ 
+sub curr_test {
+    $test = shift if @_;
+    return $test;
+}
+ 
+sub next_test {
+  my $retval = $test;
+  $test = $test + 1; # don't use ++
+  $retval;
+}
+ 
+# Note: can't pass multipart messages since we try to
+# be compatible with Test::More::skip().
+sub skip {
+    my $why = shift;
+    my $n    = @_ ? shift : 1;
+    for (1..$n) {
+        _print "ok $test # skip $why\n";
+        $test = $test + 1;
+    }
+    local $^W = 0;
+    last SKIP;
+}
+ 
+sub todo_skip {
+    my $why = shift;
+    my $n   = @_ ? shift : 1;
+ 
+    for (1..$n) {
+        _print "not ok $test # TODO & SKIP $why\n";
+        $test = $test + 1;
+    }
+    local $^W = 0;
+    last TODO;
+}
+ 
+sub eq_array {
+    my ($ra, $rb) = @_;
+    return 0 unless $#$ra == $#$rb;
+    for my $i (0..$#$ra) {
+        next     if !defined $ra->[$i] && !defined $rb->[$i];
+        return 0 if !defined $ra->[$i];
+        return 0 if !defined $rb->[$i];
+        return 0 unless $ra->[$i] eq $rb->[$i];
+    }
+    return 1;
+}
+ 
+sub eq_hash {
+  my ($orig, $suspect) = @_;
+  my $fail;
+  while (my ($key, $value) = each %$suspect) {
+    # Force a hash recompute if this perl's internals can cache the hash key.
+    $key = "" . $key;
+    if (exists $orig->{$key}) {
+      if ($orig->{$key} ne $value) {
+        _print "# key ", _qq($key), " was ", _qq($orig->{$key}),
+                     " now ", _qq($value), "\n";
+        $fail = 1;
+      }
+    } else {
+      _print "# key ", _qq($key), " is ", _qq($value),
+                   ", not in original.\n";
+      $fail = 1;
+    }
+  }
+  foreach (keys %$orig) {
+    # Force a hash recompute if this perl's internals can cache the hash key.
+    $_ = "" . $_;
+    next if (exists $suspect->{$_});
+    _print "# key ", _qq($_), " was ", _qq($orig->{$_}), " now missing.\n";
+    $fail = 1;
+  }
+  !$fail;
+}
+ 
+sub require_ok ($) {
+    my ($require) = @_;
+    eval <<REQUIRE_OK;
+require $require;
+REQUIRE_OK
+    _ok(!$@, _where(), "require $require");
+}
+ 
+sub use_ok ($) {
+    my ($use) = @_;
+    eval <<USE_OK;
+use $use;
+USE_OK
+    _ok(!$@, _where(), "use $use");
+}
+ 
+# runperl - Runs a separate perl interpreter.
+# Arguments :
+#   switches => [ command-line switches ]
+#   nolib    => 1 # don't use -I../lib (included by default)
+#   prog     => one-liner (avoid quotes)
+#   progs    => [ multi-liner (avoid quotes) ]
+#   progfile => perl script
+#   stdin    => string to feed the stdin
+#   stderr   => redirect stderr to stdout
+#   args     => [ command-line arguments to the perl program ]
+#   verbose  => print the command line
+ 
+my $is_mswin    = $^O eq 'MSWin32';
+my $is_netware  = $^O eq 'NetWare';
+my $is_macos    = $^O eq 'MacOS';
+my $is_vms      = $^O eq 'VMS';
+my $is_cygwin   = $^O eq 'cygwin';
+ 
+sub _quote_args {
+    my ($runperl, $args) = @_;
+ 
+    foreach (@$args) {
+        # In VMS protect with doublequotes because otherwise
+        # DCL will lowercase -- unless already doublequoted.
+       $_ = q(").$_.q(") if $is_vms && !/^\"/ && length($_) > 0;
+        $$runperl .= ' ' . $_;
+    }
+}
+ 
+sub _create_runperl { # Create the string to qx in runperl().
+    my %args = @_;
+    my $runperl = which_perl();
+    if ($runperl =~ m/\s/) {
+        $runperl = qq{"$runperl"};
+    }
+    #- this allows, for example, to set PERL_RUNPERL_DEBUG=/usr/bin/valgrind
+    if ($ENV{PERL_RUNPERL_DEBUG}) {
+        $runperl = "$ENV{PERL_RUNPERL_DEBUG} $runperl";
+    }
+    unless ($args{nolib}) {
+        if ($is_macos) {
+            $runperl .= ' -I::lib';
+            # Use UNIX style error messages instead of MPW style.
+            $runperl .= ' -MMac::err=unix' if $args{stderr};
+        }
+        else {
+            $runperl .= ' "-I../lib"'; # doublequotes because of VMS
+        }
+    }
+    if ($args{switches}) {
+        local $Level = 2;
+        die "test.pl:runperl(): 'switches' must be an ARRAYREF " . _where()
+            unless ref $args{switches} eq "ARRAY";
+        _quote_args(\$runperl, $args{switches});
+    }
+    if (defined $args{prog}) {
+        die "test.pl:runperl(): both 'prog' and 'progs' cannot be used " . _where()
+            if defined $args{progs};
+        $args{progs} = [$args{prog}]
+    }
+    if (defined $args{progs}) {
+        die "test.pl:runperl(): 'progs' must be an ARRAYREF " . _where()
+            unless ref $args{progs} eq "ARRAY";
+        foreach my $prog (@{$args{progs}}) {
+            if ($is_mswin || $is_netware || $is_vms) {
+                $runperl .= qq ( -e "$prog" );
+            }
+            else {
+                $runperl .= qq ( -e '$prog' );
+            }
+        }
+    } elsif (defined $args{progfile}) {
+        $runperl .= qq( "$args{progfile}");
+    } else {
+        # You probaby didn't want to be sucking in from the upstream stdin
+        die "test.pl:runperl(): none of prog, progs, progfile, args, "
+            . " switches or stdin specified"
+            unless defined $args{args} or defined $args{switches}
+                or defined $args{stdin};
+    }
+    if (defined $args{stdin}) {
+        # so we don't try to put literal newlines and crs onto the
+        # command line.
+        $args{stdin} =~ s/\n/\\n/g;
+        $args{stdin} =~ s/\r/\\r/g;
+ 
+        if ($is_mswin || $is_netware || $is_vms) {
+            $runperl = qq{$Perl -e "print qq(} .
+                $args{stdin} . q{)" | } . $runperl;
+        }
+        elsif ($is_macos) {
+            # MacOS can only do two processes under MPW at once;
+            # the test itself is one; we can't do two more, so
+            # write to temp file
+            my $stdin = qq{$Perl -e 'print qq(} . $args{stdin} . qq{)' > teststdin; };
+            if ($args{verbose}) {
+                my $stdindisplay = $stdin;
+                $stdindisplay =~ s/\n/\n\#/g;
+                _print_stderr "# $stdindisplay\n";
+            }
+            `$stdin`;
+            $runperl .= q{ < teststdin };
+        }
+        else {
+            $runperl = qq{$Perl -e 'print qq(} .
+                $args{stdin} . q{)' | } . $runperl;
+        }
+    }
+    if (defined $args{args}) {
+        _quote_args(\$runperl, $args{args});
+    }
+    $runperl .= ' 2>&1'          if  $args{stderr} && !$is_macos;
+    $runperl .= " \xB3 Dev:Null" if !$args{stderr} &&  $is_macos;
+    if ($args{verbose}) {
+        my $runperldisplay = $runperl;
+        $runperldisplay =~ s/\n/\n\#/g;
+        _print_stderr "# $runperldisplay\n";
+    }
+    return $runperl;
+}
+ 
+sub runperl {
+    die "test.pl:runperl() does not take a hashref"
+        if ref $_[0] and ref $_[0] eq 'HASH';
+    my $runperl = &_create_runperl;
+    my $result;
+ 
+    my $tainted = ${^TAINT};
+    my %args = @_;
+    exists $args{switches} && grep m/^-T$/, @{$args{switches}} and $tainted = $tainted + 1;
+ 
+    if ($tainted) {
+        # We will assume that if you're running under -T, you really mean to
+        # run a fresh perl, so we'll brute force launder everything for you
+        my $sep;
+ 
+        if (! eval 'require Config; 1') {
+            warn "test.pl had problems loading Config: $@";
+            $sep = ':';
+        } else {
+            $sep = $Config::Config{path_sep};
+        }
+ 
+        my @keys = grep {exists $ENV{$_}} qw(CDPATH IFS ENV BASH_ENV);
+        local @ENV{@keys} = ();
+        # Untaint, plus take out . and empty string:
+        local $ENV{'DCL$PATH'} = $1 if $is_vms && ($ENV{'DCL$PATH'} =~ /(.*)/s);
+        $ENV{PATH} =~ /(.*)/s;
+        local $ENV{PATH} =
+            join $sep, grep { $_ ne "" and $_ ne "." and -d $_ and
+                ($is_mswin or $is_vms or !(stat && (stat _)[2]&0022)) }
+                    split quotemeta ($sep), $1;
+        $ENV{PATH} .= "$sep/bin" if $is_cygwin;  # Must have /bin under Cygwin
+ 
+        $runperl =~ /(.*)/s;
+        $runperl = $1;
+ 
+        $result = `$runperl`;
+    } else {
+        $result = `$runperl`;
+    }
+    $result =~ s/\n\n/\n/ if $is_vms; # XXX pipes sometimes double these
+    return $result;
+}
+ 
+*run_perl = \&runperl; # Nice alias.
+ 
+sub DIE {
+    _print_stderr "# @_\n";
+    exit 1;
+}
+ 
+# A somewhat safer version of the sometimes wrong $^X.
+sub which_perl {
+    unless (defined $Perl) {
+        $Perl = $^X;
+ 
+        # VMS should have 'perl' aliased properly
+        return $Perl if $^O eq 'VMS';
+ 
+        my $exe;
+        if (! eval 'require Config; 1') {
+            warn "test.pl had problems loading Config: $@";
+            $exe = '';
+        } else {
+            $exe = $Config::Config{_exe};
+        }
+       $exe = '' unless defined $exe;
+ 
+        # This doesn't absolutize the path: beware of future chdirs().
+        # We could do File::Spec->abs2rel() but that does getcwd()s,
+        # which is a bit heavyweight to do here.
+ 
+        if ($Perl =~ /^perl\Q$exe\E$/i) {
+            my $perl = "perl$exe";
+            if (! eval 'require File::Spec; 1') {
+                warn "test.pl had problems loading File::Spec: $@";
+                $Perl = "./$perl";
+            } else {
+                $Perl = File::Spec->catfile(File::Spec->curdir(), $perl);
+            }
+        }
+ 
+        # Build up the name of the executable file from the name of
+        # the command.
+ 
+        if ($Perl !~ /\Q$exe\E$/i) {
+            $Perl .= $exe;
+        }
+ 
+        warn "which_perl: cannot find $Perl from $^X" unless -f $Perl;
+ 
+        # For subcommands to use.
+        $ENV{PERLEXE} = $Perl;
+    }
+    return $Perl;
+}
+ 
+sub unlink_all {
+    foreach my $file (@_) {
+        1 while unlink $file;
+        _print_stderr "# Couldn't unlink '$file': $!\n" if -f $file;
+    }
+}
+ 
+my %tmpfiles;
+END { unlink_all keys %tmpfiles }
+ 
+# A regexp that matches the tempfile names
+$::tempfile_regexp = 'tmp\d+[A-Z][A-Z]?';
+ 
+# Avoid ++, avoid ranges, avoid split //
+my @letters = qw(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z);
+sub tempfile {
+    my $count = 0;
+    do {
+        my $temp = $count;
+        my $try = "tmp$$";
+        do {
+            $try .= $letters[$temp % 26];
+            $temp = int ($temp / 26);
+        } while $temp;
+        # Need to note all the file names we allocated, as a second request may
+        # come before the first is created.
+        if (!-e $try && !$tmpfiles{$try}) {
+            # We have a winner
+            $tmpfiles{$try}++;
+            return $try;
+        }
+        $count = $count + 1;
+    } while $count < 26 * 26;
+    die "Can't find temporary file name starting 'tmp$$'";
+}
+ 
+# This is the temporary file for _fresh_perl
+my $tmpfile = tempfile();
+ 
+#
+# _fresh_perl
+#
+# The $resolve must be a subref that tests the first argument
+# for success, or returns the definition of success (e.g. the
+# expected scalar) if given no arguments.
+#
+ 
+sub _fresh_perl {
+    my($prog, $resolve, $runperl_args, $name) = @_;
+ 
+    $runperl_args ||= {};
+    $runperl_args->{progfile} = $tmpfile;
+    $runperl_args->{stderr} = 1;
+ 
+    open TEST, ">$tmpfile" or die "Cannot open $tmpfile: $!";
+ 
+    # VMS adjustments
+    if( $^O eq 'VMS' ) {
+        $prog =~ s#/dev/null#NL:#;
+ 
+        # VMS file locking
+        $prog =~ s{if \(-e _ and -f _ and -r _\)}
+                  {if (-e _ and -f _)}
+    }
+ 
+    print TEST $prog;
+    close TEST or die "Cannot close $tmpfile: $!";
+ 
+    my $results = runperl(%$runperl_args);
+    my $status = $?;
+ 
+    # Clean up the results into something a bit more predictable.
+    $results =~ s/\n+$//;
+    $results =~ s/at\s+$::tempfile_regexp\s+line/at - line/g;
+    $results =~ s/of\s+$::tempfile_regexp\s+aborted/of - aborted/g;
+ 
+    # bison says 'parse error' instead of 'syntax error',
+    # various yaccs may or may not capitalize 'syntax'.
+    $results =~ s/^(syntax|parse) error/syntax error/mig;
+ 
+    if ($^O eq 'VMS') {
+        # some tests will trigger VMS messages that won't be expected
+        $results =~ s/\n?%[A-Z]+-[SIWEF]-[A-Z]+,.*//;
+ 
+        # pipes double these sometimes
+        $results =~ s/\n\n/\n/g;
+    }
+ 
+    my $pass = $resolve->($results);
+    unless ($pass) {
+        _diag "# PROG: \n$prog\n";
+        _diag "# EXPECTED:\n", $resolve->(), "\n";
+        _diag "# GOT:\n$results\n";
+        _diag "# STATUS: $status\n";
+    }
+ 
+    # Use the first line of the program as a name if none was given
+    unless( $name ) {
+        ($first_line, $name) = $prog =~ /^((.{1,50}).*)/;
+        $name .= '...' if length $first_line > length $name;
+    }
+ 
+    _ok($pass, _where(), "fresh_perl - $name");
+}
+ 
+#
+# fresh_perl_is
+#
+# Combination of run_perl() and is().
+#
+ 
+sub fresh_perl_is {
+    my($prog, $expected, $runperl_args, $name) = @_;
+    local $Level = 2;
+    _fresh_perl($prog,
+                sub { @_ ? $_[0] eq $expected : $expected },
+                $runperl_args, $name);
+}
+ 
+#
+# fresh_perl_like
+#
+# Combination of run_perl() and like().
+#
+ 
+sub fresh_perl_like {
+    my($prog, $expected, $runperl_args, $name) = @_;
+    local $Level = 2;
+    _fresh_perl($prog,
+                sub { @_ ?
+                          $_[0] =~ (ref $expected ? $expected : /$expected/) :
+                          $expected },
+                $runperl_args, $name);
+}
+ 
+sub can_ok ($@) {
+    my($proto, @methods) = @_;
+    my $class = ref $proto || $proto;
+ 
+    unless( @methods ) {
+        return _ok( 0, _where(), "$class->can(...)" );
+    }
+ 
+    my @nok = ();
+    foreach my $method (@methods) {
+        local($!, $@);  # don't interfere with caller's $@
+                        # eval sometimes resets $!
+        eval { $proto->can($method) } || push @nok, $method;
+    }
+ 
+    my $name;
+    $name = @methods == 1 ? "$class->can('$methods[0]')"
+                          : "$class->can(...)";
+ 
+    _ok( !@nok, _where(), $name );
+}
+ 
+sub isa_ok ($$;$) {
+    my($object, $class, $obj_name) = @_;
+ 
+    my $diag;
+    $obj_name = 'The object' unless defined $obj_name;
+    my $name = "$obj_name isa $class";
+    if( !defined $object ) {
+        $diag = "$obj_name isn't defined";
+    }
+    elsif( !ref $object ) {
+        $diag = "$obj_name isn't a reference";
+    }
+    else {
+        # We can't use UNIVERSAL::isa because we want to honor isa() overrides
+        local($@, $!);  # eval sometimes resets $!
+        my $rslt = eval { $object->isa($class) };
+        if( $@ ) {
+            if( $@ =~ /^Can't call method "isa" on unblessed reference/ ) {
+                if( !UNIVERSAL::isa($object, $class) ) {
+                    my $ref = ref $object;
+                    $diag = "$obj_name isn't a '$class' it's a '$ref'";
+                }
+            } else {
+                die <<WHOA;
+WHOA! I tried to call ->isa on your object and got some weird error.
+This should never happen.  Please contact the author immediately.
+Here's the error.
+$@
+WHOA
+            }
+        }
+        elsif( !$rslt ) {
+            my $ref = ref $object;
+            $diag = "$obj_name isn't a '$class' it's a '$ref'";
+        }
+    }
+ 
+    _ok( !$diag, _where(), $name );
+}
+ 
+# Set a watchdog to timeout the entire test file
+# NOTE:  If the test file uses 'threads', then call the watchdog() function
+#        _AFTER_ the 'threads' module is loaded.
+sub watchdog ($)
+{
+    my $timeout = shift;
+    my $timeout_msg = 'Test process timed out - terminating';
+ 
+    my $pid_to_kill = $$;   # PID for this process
+ 
+    # Don't use a watchdog process if 'threads' is loaded -
+    #   use a watchdog thread instead
+    if (! $threads::threads) {
+ 
+        # On Windows and VMS, try launching a watchdog process
+        #   using system(1, ...) (see perlport.pod)
+        if (($^O eq 'MSWin32') || ($^O eq 'VMS')) {
+            # On Windows, try to get the 'real' PID
+            if ($^O eq 'MSWin32') {
+                eval { require Win32; };
+                if (defined(&Win32::GetCurrentProcessId)) {
+                    $pid_to_kill = Win32::GetCurrentProcessId();
+                }
+            }
+ 
+            # If we still have a fake PID, we can't use this method at all
+            return if ($pid_to_kill <= 0);
+ 
+            # Launch watchdog process
+            my $watchdog;
+            eval {
+                local $SIG{'__WARN__'} = sub {
+                    _diag("Watchdog warning: $_[0]");
+                };
+                my $sig = $^O eq 'VMS' ? 'TERM' : 'KILL';
+                $watchdog = system(1, which_perl(), '-e',
+                                                    "sleep($timeout);" .
+                                                    "warn('# $timeout_msg\n');" .
+                                                    "kill($sig, $pid_to_kill);");
+            };
+            if ($@ || ($watchdog <= 0)) {
+                _diag('Failed to start watchdog');
+                _diag($@) if $@;
+                undef($watchdog);
+                return;
+            }
+ 
+            # Add END block to parent to terminate and
+            #   clean up watchdog process
+            eval "END { local \$! = 0; local \$? = 0;
+                        wait() if kill('KILL', $watchdog); };";
+            return;
+        }
+ 
+        # Try using fork() to generate a watchdog process
+        my $watchdog;
+        eval { $watchdog = fork() };
+        if (defined($watchdog)) {
+            if ($watchdog) {   # Parent process
+                # Add END block to parent to terminate and
+                #   clean up watchdog process
+                eval "END { local \$! = 0; local \$? = 0;
+                            wait() if kill('KILL', $watchdog); };";
+                return;
+            }
+ 
+            ### Watchdog process code
+ 
+            # Load POSIX if available
+            eval { require POSIX; };
+ 
+            # Execute the timeout
+            sleep($timeout - 2) if ($timeout > 2);   # Workaround for perlbug #49073
+            sleep(2);
+ 
+            # Kill test process if still running
+            if (kill(0, $pid_to_kill)) {
+                _diag($timeout_msg);
+                kill('KILL', $pid_to_kill);
+            }
+ 
+            # Don't execute END block (added at beginning of this file)
+            $NO_ENDING = 1;
+ 
+            # Terminate ourself (i.e., the watchdog)
+            POSIX::_exit(1) if (defined(&POSIX::_exit));
+            exit(1);
+        }
+ 
+        # fork() failed - fall through and try using a thread
+    }
+ 
+    # Use a watchdog thread because either 'threads' is loaded,
+    #   or fork() failed
+    if (eval 'require threads; 1') {
+        threads->create(sub {
+                # Load POSIX if available
+                eval { require POSIX; };
+ 
+                # Execute the timeout
+                my $time_left = $timeout;
+                do {
+                    $time_left -= sleep($time_left);
+                } while ($time_left > 0);
+ 
+                # Kill the parent (and ourself)
+                select(STDERR); $| = 1;
+                _diag($timeout_msg);
+                POSIX::_exit(1) if (defined(&POSIX::_exit));
+                my $sig = $^O eq 'VMS' ? 'TERM' : 'KILL';
+                kill($sig, $pid_to_kill);
+            })->detach();
+        return;
+    }
+ 
+    # If everything above fails, then just use an alarm timeout
+    if (eval { alarm($timeout); 1; }) {
+        # Load POSIX if available
+        eval { require POSIX; };
+ 
+        # Alarm handler will do the actual 'killing'
+        $SIG{'ALRM'} = sub {
+            select(STDERR); $| = 1;
+            _diag($timeout_msg);
+            POSIX::_exit(1) if (defined(&POSIX::_exit));
+            my $sig = $^O eq 'VMS' ? 'TERM' : 'KILL';
+            kill($sig, $pid_to_kill);
+        };
+    }
+}
+ 
+1;
+-- threads.h --
+#ifndef _THREADS_H_
+#define _THREADS_H_
+
+/* Needed for 5.8.0 */
+#ifndef CLONEf_JOIN_IN
+#  define CLONEf_JOIN_IN        8
+#endif
+#ifndef SAVEBOOL
+#  define SAVEBOOL(a)
+#endif
+
+/* Added in 5.11.x */
+#ifndef G_WANT
+#  define G_WANT                (128|1)
+#endif
+
+/* Added in 5.24.x */
+#ifndef PERL_TSA_RELEASE
+#  define PERL_TSA_RELEASE(x)
+#endif
+#ifndef PERL_TSA_EXCLUDES
+#  define PERL_TSA_EXCLUDES(x)
+#endif
+#ifndef CLANG_DIAG_IGNORE
+#  define CLANG_DIAG_IGNORE(x)
+#endif
+#ifndef CLANG_DIAG_RESTORE
+#  define CLANG_DIAG_RESTORE
+#endif
+
+/* Added in 5.38 */
+#ifndef PERL_SRAND_OVERRIDE_NEXT_PARENT
+#  define PERL_SRAND_OVERRIDE_NEXT_PARENT()
+#endif
+
+#endif
+-- shared.h --
+#ifndef _SHARED_H_
+#define _SHARED_H_
+
+#include "ppport.h"
+
+#ifndef HvNAME_get
+#  define HvNAME_get(hv)        (0 + ((XPVHV*)SvANY(hv))->xhv_name)
+#endif
+
+#endif
Index: gnu/usr.bin/perl/Porting/todo.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/todo.pod,v
diff -u -p -a -u -p -r1.12 todo.pod
--- gnu/usr.bin/perl/Porting/todo.pod	23 Dec 2023 21:02:20 -0000	1.12
+++ gnu/usr.bin/perl/Porting/todo.pod	21 Feb 2024 15:47:00 -0000
@@ -137,7 +137,7 @@ for example POSIX passes Exporter some v
 
 =head2 makedef.pl and conditional compilation
 
-The script F<makedef.pl> that generates the list of exported symbols on
+The script F<makedef.pl> generates the list of exported symbols on
 platforms which need this. Functions are declared in F<embed.fnc>, variables
 in F<intrpvar.h>. Quite a few of the functions and variables are conditionally
 declared there, using C<#ifdef>. However, F<makedef.pl> doesn't understand the
@@ -486,7 +486,7 @@ Natively 64-bit systems need neither -Du
 On these systems, it might be the default compilation mode, and there
 is currently no guarantee that passing no use64bitall option to the
 Configure process will build a 32bit perl. Implementing -Duse32bit*
-options would be nice for perl 5.36.3.
+options would be nice for a future version.
 
 =head2 Profile Perl - am I hot or not?
 
@@ -1183,7 +1183,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lis
 =head1 Big projects
 
 Tasks that will get your name mentioned in the description of the "Highlights
-of 5.36.3"
+of 5.40.0"
 
 =head2 make ithreads more robust
 
Index: gnu/usr.bin/perl/Porting/updateAUTHORS.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/updateAUTHORS.pl,v
diff -u -p -a -u -p -r1.1.1.1 updateAUTHORS.pl
--- gnu/usr.bin/perl/Porting/updateAUTHORS.pl	15 Feb 2023 01:33:12 -0000	1.1.1.1
+++ gnu/usr.bin/perl/Porting/updateAUTHORS.pl	21 Feb 2024 15:47:00 -0000
@@ -1,11 +1,15 @@
 #!/usr/bin/env perl
-package Porting::updateAUTHORS;
+package App::Porting::updateAUTHORS;
 use strict;
 use warnings;
 use Getopt::Long qw(GetOptions);
 use Pod::Usage qw(pod2usage);
 use Data::Dumper;
-use Encode qw(encode_utf8 decode_utf8 decode);
+use Encode qw(encode_utf8 decode_utf8);
+use lib "./";
+use Porting::updateAUTHORS;
+use Test::More;
+use Text::Wrap qw(wrap);
 
 # The style of this file is determined by:
 #
@@ -13,649 +17,735 @@ use Encode qw(encode_utf8 decode_utf8 de
 #   -isbc -nolc -otr -kis -ci=4 -se -sot -sct -nsbl -pt=2 -fs  \
 #   -fsb='#start-no-tidy' -fse='#end-no-tidy'
 
-# Info and config for passing to git log.
-#   %an: author name
-#   %aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
-#   %ae: author email
-#   %aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
-#   %cn: committer name
-#   %cN: committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
-#   %ce: committer email
-#   %cE: committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
-#   %H: commit hash
-#   %h: abbreviated commit hash
-#   %s: subject
-#   %x00: print a byte from a hex code
-
-my %field_spec= (
-    "an" => "author_name",
-    "aN" => "author_name_mm",
-    "ae" => "author_email",
-    "aE" => "author_email_mm",
-    "cn" => "committer_name",
-    "cN" => "committer_name_mm",
-    "ce" => "committer_email",
-    "cE" => "committer_email_mm",
-    "H"  => "commit_hash",
-    "h"  => "abbrev_hash",
-    "s"  => "commit_subject",
+my @OPTSPEC= qw(
+    help|?
+    man
+    authors_file=s
+    mailmap_file=s
+
+    validate|tap
+    verbose+
+    exclude_missing|exclude
+    exclude_contrib=s@
+    exclude_me
+    dump_opts
+
+    show_rank|rank
+    show_applied|thanks_applied|applied
+    show_stats|stats
+    show_who|who
+    show_files|files
+    show_file_changes|activity
+    show_file_chainsaw|chainsaw
+
+    as_percentage|percentage
+    as_cumulative|cumulative
+    as_list|old_style
+
+    in_reverse|reverse
+    with_rank_numbers|numbered|num
+
+    from_commit|from=s
+    to_commit|to=s
+
+    numstat
+    no_update
+
+    change_name_for_name|change_name=s%
+    change_name_for_email=s%
+    change_email_for_name=s%
+    change_email_for_email|change_email=s%
 );
 
-my @field_codes= sort keys %field_spec;
-my @field_names= map { $field_spec{$_} } @field_codes;
-my $tformat= join "%x00", map { "%" . $_ } @field_codes;
-
-sub _make_name_author_info {
-    my ($author_info, $commit_info, $name_key)= @_;
-    (my $email_key= $name_key) =~ s/name/email/;
-    my $email= $commit_info->{$email_key};
-    my $name= $commit_info->{$name_key};
-
-    my $line= $author_info->{"email2line"}{$email}
-        // $author_info->{"name2line"}{$name};
-
-    $line //= sprintf "%-31s<%s>",
-        $commit_info->{$name_key}, $commit_info->{$email_key};
-    return $line;
-}
+my %implies_numstat= (
+    show_files         => 1,
+    show_file_changes  => 1,
+    show_file_chainsaw => 1,
+);
 
-sub _make_name_simple {
-    my ($commit_info, $key)= @_;
-    my $name_key= $key . "_name";
-    my $email_key= $key . "_email";
-    return sprintf "%s <%s>", $commit_info->{$name_key},
-        lc($commit_info->{$email_key});
-}
+sub main {
+    local $Data::Dumper::Sortkeys= 1;
+    my %opts= (
+        authors_file    => "AUTHORS",
+        mailmap_file    => ".mailmap",
+        exclude_file    => "Porting/exclude_contrib.txt",
+        from            => "",
+        to              => "",
+        exclude_contrib => [],
+    );
 
-sub read_commit_log {
-    my ($author_info, $mailmap_info)= @_;
-    $author_info ||= {};
-    open my $fh, qq(git log --pretty='tformat:$tformat' |);
-
-    while (defined(my $line= <$fh>)) {
-        chomp $line;
-        $line= decode_utf8($line);
-        my $commit_info= {};
-        @{$commit_info}{@field_names}= split /\0/, $line, 0 + @field_names;
-
-        my $author_name_mm= _make_name_author_info($author_info, $commit_info,
-            "author_name_mm");
-
-        my $committer_name_mm=
-            _make_name_author_info($author_info, $commit_info,
-            "committer_name_mm");
-
-        my $author_name_real= _make_name_simple($commit_info, "author");
-
-        my $committer_name_real= _make_name_simple($commit_info, "committer");
-
-        _check_name_mailmap(
-            $mailmap_info, $author_name_mm, $author_name_real,
-            $commit_info,  "author name"
-        );
-        _check_name_mailmap($mailmap_info, $committer_name_mm,
-            $committer_name_real, $commit_info, "committer name");
+    ## Parse options and print usage if there is a syntax error,
+    ## or if usage was explicitly requested.
+    GetOptions(
+        \%opts,
+        map {
+            # support hyphens as well as underbars,
+            # underbars must be first. Only handles two
+            # part words right now.
+            ref $_ ? $_ : s/\b([a-z]+)_([a-z]+)\b/${1}_${2}|${1}-${2}/gr
+        } @OPTSPEC,
+    ) or pod2usage(2);
+    $opts{commit_range}= join " ", @ARGV;
+    if (!$opts{commit_range}) {
+        if ($opts{from_commit}) {
+            $opts{to_commit} ||= "HEAD";
+            $opts{$_} =~ s/\.+\z// for qw(from_commit to_commit);
+            $opts{commit_range}= "$opts{from_commit}..$opts{to_commit}";
+        }
+    }
+    pod2usage(1)             if $opts{help};
+    pod2usage(-verbose => 2) if $opts{man};
+
+    foreach my $opt (keys %opts) {
+        $opts{numstat}++   if $implies_numstat{$opt};
+        $opts{no_update}++ if $opt =~ /^show_/ or $opt eq "validate";
+    }
+
+    if (delete $opts{exclude_me}) {
+        my ($author_full)=
+            Porting::updateAUTHORS->current_author_name_email("full");
+        my ($committer_full)=
+            Porting::updateAUTHORS->current_committer_name_email("full");
+
+        push @{ $opts{exclude_contrib} }, $author_full
+            if $author_full;
+        push @{ $opts{exclude_contrib} }, $committer_full
+            if $committer_full
+            and (!$author_full
+            or $committer_full ne $author_full);
+    }
+
+    my $self= Porting::updateAUTHORS->new(%opts);
+
+    my $changed= $self->read_and_update();
+
+    if ($self->{validate}) {
+        for my $file_type (qw(authors_file mailmap_file exclude_file)) {
+            my $file= $self->{$file_type};
+            my $changes= $self->changed_file($file);
+            ok(!$changes, "Is $file_type '$file' up to date?")
+                or diag $self->_diff_diag($file);
+        }
+        my $dupe_info= $self->dupe_info();
+        ok(!$dupe_info, "No dupes in AUTHORS")
+            or diag $dupe_info;
+
+        ok(
+            !$self->{missing_author}{$_},
+            sprintf "%s is listed in AUTHORS",
+            _clean_name($_)) for sort keys %{ $self->{missing_author} || {} };
+
+        SKIP: {
+            # What is tested in this block:
+            # - check if there uncommitted changes in the git-tree
+            # - if so: is the (configured) author a known contributor?
+
+            skip "AUTOMATED_TESTING is set" if ($ENV{AUTOMATED_TESTING});
+
+            # Test::Smoke leaves some files in the build dir which causes
+            # this code to (correctly) conclude that there are uncommitted
+            # files which then proceeds to check the author name/email.
+            #
+            # On several smokers:
+            # - there is *no* git config;
+            # - a different name/address is configured then the one listed
+            #   in AUTHORS;
+            # which causes the test to fail.
+            #
+            # Unfortunately Test::Smoke doesn't set the AUTOMATED_TESTING
+            # env-var.. Therefor check if mktest.out exist, it's one of the
+            # first files Test::Smoke creates in the build directory.
+            skip "Test::Smoke running" if (-e "./mktest.out");
+
+            my $uncommitted_files= $self->git_status_porcelain;
+            if ($uncommitted_files) {
+                my ($author_name, $author_email)=
+                    $self->current_author_name_email();
+                my ($committer_name, $committer_email)=
+                    $self->current_committer_name_email();
+
+                ok($author_name && $author_email,
+                    "git knows your author name and email.");
+                ok(
+                    $committer_name && $committer_email,
+                    "git knows your committer name and email."
+                );
+
+                my $author_known=
+                    $self->known_contributor($author_name, $author_email);
+                my $committer_known=
+                    $self->known_contributor($committer_name, $committer_email);
+                if (
+                    is(
+                        $author_known && $committer_known,
+                        1, "Uncommitted changes are by a known contributor?"
+                    ))
+                {
+                    diag
+                        "Testing uncommtted changes! Remember to commit before you push!"
+                        if $ENV{TEST_VERBOSE};
+                }
+                else {
+                    diag error_advice_for_uncommitted_changes(
+                        $author_name,    $author_email,
+                        $committer_name, $committer_email,
+                        $uncommitted_files
+                    );
+                }
+            }
+            else {
+                # this will always pass... but it adds test output that is helpful
+                ok(!$uncommitted_files,
+                    "git status --porcelain should be empty");
+            }
+        }
 
-        $author_info->{"lines"}{$author_name_mm}++;
-        $author_info->{"lines"}{$committer_name_mm}++;
+        diag "\nFiles need updating! You probably just need to run\n\n",
+            "   Porting/updateAUTHORS.pl\n\n", "and commit the results."
+            if $self->changed_count;
+        done_testing();
+        return 0;
     }
-    return $author_info;
-}
-
-sub read_authors {
-    my ($authors_file)= @_;
-    $authors_file ||= "AUTHORS";
-
-    my @authors_preamble;
-    open my $in_fh, "<", $authors_file
-        or die "Failed to open for read '$authors_file': $!";
-    while (defined(my $line= <$in_fh>)) {
-        chomp $line;
-        push @authors_preamble, $line;
-        if ($line =~ /^--/) {
-            last;
-        }
+    elsif ($self->{show_rank}) {
+        $self->report_stats("who_stats", "author");
+        return 0;
     }
-    my %author_info;
-    while (defined(my $line= <$in_fh>)) {
-        chomp $line;
-        $line= decode_utf8($line);
-        my ($name, $email);
-        my $copy= $line;
-        $copy =~ s/\s+\z//;
-        if ($copy =~ s/<([^<>]*)>//) {
-            $email= $1;
-        }
-        elsif ($copy =~ s/\s+(\@\w+)\z//) {
-            $email= $1;
-        }
-        $copy =~ s/\s+\z//;
-        $name= $copy;
-        $email //= "unknown";
-        $email= lc($email);
-
-        $author_info{"lines"}{$line}++;
-        $author_info{"email2line"}{$email}= $line
-            if $email and $email ne "unknown";
-        $author_info{"name2line"}{$name}= $line
-            if $name and $name ne "unknown";
-        $author_info{"email2name"}{ lc($email) }= $name
-            if $email
-            and $name
-            and $email ne "unknown";
-        $author_info{"name2email"}{$name}= $email
-            if $name and $name ne "unknown";
-    }
-    close $in_fh
-        or die "Failed to close '$authors_file': $!";
-    return (\%author_info, \@authors_preamble);
-}
-
-sub update_authors {
-    my ($author_info, $authors_preamble, $authors_file)= @_;
-    $authors_file ||= "AUTHORS";
-    my $authors_file_new= $authors_file . ".new";
-    open my $out_fh, ">", $authors_file_new
-        or die "Failed to open for write '$authors_file_new': $!";
-    binmode $out_fh;
-    foreach my $line (@$authors_preamble) {
-        print $out_fh encode_utf8($line), "\n"
-            or die "Failed to print to '$authors_file_new': $!";
-    }
-    foreach my $author (_sorted_hash_keys($author_info->{"lines"})) {
-        next if $author =~ /^unknown/;
-        if ($author =~ s/\s*<unknown>\z//) {
-            next if $author =~ /^\w+$/;
-        }
-        print $out_fh encode_utf8($author), "\n"
-            or die "Failed to print to '$authors_file_new': $!";
+    elsif ($self->{show_applied}) {
+        $self->report_stats("who_stats", "applied");
+        return 0;
+    }
+    elsif ($self->{show_stats}) {
+        my @fields= ("author", "applied", "committer");
+        push @fields,
+            ("num_files", "lines_added", "lines_removed", "lines_delta")
+            if $self->{numstat};
+        $self->report_stats("who_stats", @fields);
+        return 0;
+    }
+    elsif ($self->{show_files}) {
+        $self->report_stats(
+            "file_stats",  "commits", "lines_added", "lines_removed",
+            "lines_delta", "binary_change"
+        );
+        return 0;
     }
-    close $out_fh
-        or die "Failed to close '$authors_file_new': $!";
-    rename $authors_file_new, $authors_file
-        or die "Failed to rename '$authors_file_new' to '$authors_file':$!";
-    return 1;    # ok
+    elsif ($self->{show_file_changes}) {
+        $self->report_stats(
+            "file_stats", "lines_delta", "lines_added", "lines_removed",
+            "commits"
+        );
+        return 0;
+    }
+    elsif ($self->{show_file_chainsaw}) {
+        $self->{in_reverse}= !$self->{in_reverse};
+        $self->report_stats(
+            "file_stats", "lines_delta", "lines_added", "lines_removed",
+            "commits"
+        );
+        return 0;
+    }
+    elsif ($self->{show_who}) {
+        $self->print_who();
+        return 0;
+    }
+    return $changed;    # 0 means nothing changed
 }
 
-sub read_mailmap {
-    my ($mailmap_file)= @_;
-    $mailmap_file ||= ".mailmap";
-
-    open my $in, "<", $mailmap_file
-        or die "Failed to read '$mailmap_file': $!";
-    my %mailmap_hash;
-    my @mailmap_preamble;
-    my $line_num= 0;
-    while (defined(my $line= <$in>)) {
-        ++$line_num;
-        next unless $line =~ /\S/;
-        chomp($line);
-        $line= decode_utf8($line);
-        if ($line =~ /^#/) {
-            if (!keys %mailmap_hash) {
-                push @mailmap_preamble, $line;
-            }
-            else {
-                die encode_utf8 "Not expecting comments after header ",
-                    "finished at line $line_num!\nLine: $line\n";
-            }
-        }
-        else {
-            $mailmap_hash{$line}= $line_num;
-        }
+exit(main()) unless caller;
+
+sub error_advice_for_uncommitted_changes {
+    my (
+        $author_name,     $author_email, $committer_name,
+        $committer_email, $uncommitted_files
+    )= @_;
+    $_ //= ""
+        for $author_name, $author_email, $committer_name, $committer_email;
+    my $extra= "";
+    my @git_env_keys=
+        map { /^GIT_(AUTHOR|COMMITTER)_(NAME|EMAIL)\z/ ? "$_='$ENV{$_}'" : () }
+        sort keys %ENV;
+    if (@git_env_keys) {
+        $extra .= "\n" . wrap "", "",
+              "Its seems that your environment has "
+            . join(", ", @git_env_keys)
+            . " defined. This may cause this test to fail.\n\n";
     }
-    close $in;
-    return \%mailmap_hash, \@mailmap_preamble;
-}
 
-# this can be used to extract data from the checkAUTHORS data
-sub merge_mailmap_with_AUTHORS_and_checkAUTHORS_data {
-    my ($mailmap_hash, $author_info)= @_;
-    require 'Porting/checkAUTHORS.pl' or die "No authors?";
-    my ($map, $preferred_email_or_github)=
-        Porting::checkAUTHORS::generate_known_author_map();
-
-    foreach my $old (sort keys %$preferred_email_or_github) {
-        my $new= $preferred_email_or_github->{$old};
-        next if $old !~ /\@/ or $new !~ /\@/ or $new eq $old;
-        my $name= $author_info->{"email2name"}{$new};
-        if ($name) {
-            my $line= "$name <$new> <$old>";
-            $mailmap_hash->{$line}++;
-        }
+    my $quote= $^O =~ /Win/ ? '"' : "'";
+    my @config= map decode_utf8($_),
+        `git config --get-regexp $quote^(user|author|committer).(name|email)$quote`;
+    if (@config) {
+
+        $extra .=
+            "\nYou have configured the following relevant git config settings:\n\n"
+            . join("",
+            map { sprintf "    %-16s = %s", split /\s+/, $_, 2 } @config)
+            . "\n";
+    }
+    else {
+        $extra .=
+              "\nYou do not have any git user config set up, consider using\n\n"
+            . "    git config user.name 'Your Name'\n"
+            . "    git config user.email 'your\@email.com'\n\n";
     }
-    return 1;    # ok
-}
 
-sub _sorted_hash_keys {
-    my ($hash)= @_;
-    my @sorted= sort { lc($a) cmp lc($b) || $a cmp $b } keys %$hash;
-    return @sorted;
-}
+    my $props= "";
+    if (   $author_name ne $committer_name
+        or $author_email ne $committer_email)
+    {
+        $props .= <<EOF_PROPS;
 
-sub update_mailmap {
-    my ($mailmap_hash, $mailmap_preamble, $mailmap_file)= @_;
-    $mailmap_file ||= ".mailmap";
-
-    my $mailmap_file_new= $mailmap_file . "_new";
-    open my $out, ">", $mailmap_file_new
-        or die "Failed to write '$mailmap_file_new':$!";
-    binmode $out;
-    foreach my $line (@$mailmap_preamble, _sorted_hash_keys($mailmap_hash),) {
-        print $out encode_utf8($line), "\n"
-            or die "Failed to print to '$mailmap_file': $!";
-    }
-    close $out;
-    rename $mailmap_file_new, $mailmap_file
-        or die "Failed to rename '$mailmap_file_new' to '$mailmap_file':$!";
-    return 1;    # ok
-}
+    Author Name     = $author_name
+    Author Email    = $author_email
+    Committer Name  = $committer_name
+    Committer Email = $committer_email
+EOF_PROPS
 
-sub parse_mailmap_hash {
-    my ($mailmap_hash)= @_;
-    my @recs;
-    foreach my $line (sort keys %$mailmap_hash) {
-        my $line_num= $mailmap_hash->{$line};
-        $line =~ /^ \s* (?: ( [^<>]*? ) \s+ )? <([^<>]*)>
-                (?: \s+ (?: ( [^<>]*? ) \s+ )? <([^<>]*)> )? \s* \z /x
-            or die encode_utf8 "Failed to parse line num $line_num: '$line'";
-        if (!$1 or !$2) {
-            die encode_utf8 "Both preferred name and email are mandatory ",
-                "in line num $line_num: '$line'";
-        }
+        $extra .= <<EOF_EXTRA;
 
-        # [ preferred_name, preferred_email, other_name, other_email ]
-        push @recs, [ $1, $2, $3, $4, $line_num ];
-    }
-    return \@recs;
-}
+Your committer and author details differ. You may want to review your
+git configuration.
 
-sub _safe_set_key {
-    my ($hash, $root_key, $key, $val, $pretty_name)= @_;
-    $hash->{$root_key}{$key} //= $val;
-    my $prev= $hash->{$root_key}{$key};
-    if ($prev ne $val) {
-        die encode_utf8 "Collision on mapping $root_key: "
-            . " '$key' maps to '$prev' and '$val'\n";
-    }
-}
+EOF_EXTRA
 
-my $O2P= "other2preferred";
-my $O2PN= "other2preferred_name";
-my $O2PE= "other2preferred_email";
-my $P2O= "preferred2other";
-my $N2P= "name2preferred";
-my $E2P= "email2preferred";
-
-my $blurb= "";    # FIXME - replace with a nice message
-
-sub _check_name_mailmap {
-    my ($mailmap_info, $auth_name, $raw_name, $commit_info, $descr)= @_;
-    my $name= $auth_name;
-    $name =~ s/<([^<>]+)>/<\L$1\E>/
-        or $name =~ s/(\s)(\@\w+)\z/$1<\L$2\E>/
-        or $name .= " <unknown>";
-
-    $name =~ s/\s+/ /g;
-
-    if (!$mailmap_info->{$P2O}{$name}) {
-        warn encode_utf8 sprintf "Unknown %s '%s' in commit %s '%s'\n%s",
-            $descr,
-            $name, $commit_info->{"abbrev_hash"},
-            $commit_info->{"commit_subject"},
-            $blurb;
-        $mailmap_info->{add}{"$name $raw_name"}++;
-        return 0;
     }
-    elsif (!$mailmap_info->{$P2O}{$name}{$raw_name}) {
-        $mailmap_info->{add}{"$name $raw_name"}++;
+    else {
+        $props .= <<EOF_PROPS;
+
+    Name = $author_name
+    Email = $author_email
+EOF_PROPS
     }
-    return 1;
-}
 
-sub check_fix_mailmap_hash {
-    my ($mailmap_hash, $authors_info)= @_;
-    my $parsed= parse_mailmap_hash($mailmap_hash);
-    my @fixed;
-    my %seen_map;
-    my %pref_groups;
-
-    # first pass through the data, do any conversions, eg, LC
-    # the email address, decode any MIME-Header style email addresses.
-    # We also correct any preferred name entries so they match what
-    # we already have in AUTHORS, and check that there aren't collisions
-    # or other issues in the data.
-    foreach my $rec (@$parsed) {
-        my ($pname, $pemail, $oname, $oemail, $line_num)= @$rec;
-        $pemail= lc($pemail);
-        $oemail= lc($oemail) if defined $oemail;
-        if ($pname =~ /=\?UTF-8\?/) {
-            $pname= decode("MIME-Header", $pname);
-        }
-        my $auth_email= $authors_info->{"name2email"}{$pname};
-        if ($auth_email) {
-            ## this name exists in authors, so use its email data for pemail
-            $pemail= $auth_email;
-        }
-        my $auth_name= $authors_info->{"email2name"}{$pemail};
-        if ($auth_name) {
-            ## this email exists in authors, so use its name data for pname
-            $pname= $auth_name;
-        }
+    return encode_utf8 <<"EOF_MESAGE";
 
-        # neither name nor email exist in authors.
-        if ($pname ne "unknown") {
-            if (my $email= $seen_map{"name"}{$pname}) {
-                ## we have seen this pname before, check the pemail
-                ## is consistent
-                if ($email ne $pemail) {
-                    warn encode_utf8 "Inconsistent emails for name '$pname'"
-                        . " at line num $line_num: keeping '$email',"
-                        . " ignoring '$pemail'\n";
-                    $pemail= $email;
-                }
-            }
-            else {
-                $seen_map{"name"}{$pname}= $pemail;
-            }
-        }
-        if ($pemail ne "unknown") {
-            if (my $name= $seen_map{"email"}{$pemail}) {
-                ## we have seen this preferred_email before, check the preferred_name
-                ## is consistent
-                if ($name ne $pname) {
-                    warn encode_utf8 "Inconsistent name for email '$pemail'"
-                        . " at line num $line_num: keeping '$name', ignoring"
-                        . " '$pname'\n";
-                    $pname= $name;
-                }
-            }
-            else {
-                $seen_map{"email"}{$pemail}= $pname;
-            }
-        }
+There are uncommitted changes in the working directory
+$uncommitted_files
+and your git credentials are new to us. We think that git thinks your
+credentials are as follows (git may use defaults we don't guess
+properly):
+$props$extra
+To resolve this you can perform one or more of these steps:
 
-        # Build an index of "preferred name/email" to other-email, other name
-        # we use this later to remove redundant entries missing a name.
-        $pref_groups{"$pname $pemail"}{$oemail}{ $oname || "" }=
-            [ $pname, $pemail, $oname, $oemail, $line_num ];
-    }
-
-    # this removes entries like
-    # Joe <blogs> <whatever>
-    # where there is a corresponding
-    # Joe <blogs> Joe X <blogs>
-    foreach my $pref (_sorted_hash_keys(\%pref_groups)) {
-        my $entries= $pref_groups{$pref};
-        foreach my $email (_sorted_hash_keys($entries)) {
-            my @names= _sorted_hash_keys($entries->{$email});
-            if ($names[0] eq "" and @names > 1) {
-                shift @names;
-            }
-            foreach my $name (@names) {
-                push @fixed, $entries->{$email}{$name};
-            }
-        }
-    }
+    1. Remove the uncommitted changes, including untracked files that
+       show up in
 
-    # final pass through the dataset, build up a database
-    # we will use later for checks and updates, and reconstruct
-    # the canonical entries.
-    my $new_mailmap_hash= {};
-    my $mailmap_info=     {};
-    foreach my $rec (@fixed) {
-        my ($pname, $pemail, $oname, $oemail, $line_num)= @$rec;
-        my $preferred= "$pname <$pemail>";
-        my $other;
-        if (defined $oemail) {
-            $other= $oname ? "$oname <$oemail>" : "<$oemail>";
-        }
-        if ($other and $other ne "<unknown>") {
-            _safe_set_key($mailmap_info, $O2P,  $other, $preferred);
-            _safe_set_key($mailmap_info, $O2PN, $other, $pname);
-            _safe_set_key($mailmap_info, $O2PE, $other, $pemail);
-        }
-        $mailmap_info->{$P2O}{$preferred}{$other}++;
-        if ($pname ne "unknown") {
-            _safe_set_key($mailmap_info, $N2P, $pname, $preferred);
-        }
-        if ($pemail ne "unknown") {
-            _safe_set_key($mailmap_info, $E2P, $pemail, $preferred);
-        }
-        my $line= $preferred;
-        $line .= " $other" if $other;
-        $new_mailmap_hash->{$line}= $line_num;
-    }
-    return ($new_mailmap_hash, $mailmap_info);
-}
+            git status
 
-sub add_new_mailmap_entries {
-    my ($mailmap_hash, $mailmap_info, $mailmap_file)= @_;
+       if you wish to REMOVE UNTRACKED FILES and DELETE ANY CHANGES
+       you can
 
-    my $mailmap_add= $mailmap_info->{add}
-        or return 0;
+            git clean -dfx
+            git checkout -f
 
-    my $num= 0;
-    for my $new (sort keys %$mailmap_add) {
-        !$mailmap_hash->{$new}++ or next;
-        warn encode_utf8 "Updating '$mailmap_file' with: $new\n";
-        $num++;
-    }
-    return $num;
-}
+        BE WARNED: THIS MAY LOSE DATA.
 
-sub read_and_update {
-    my ($authors_file, $mailmap_file)= @_;
+    2. You are already configured in git and you just need to add
+       yourself to AUTHORS and other infra: commit the changes in the
+       working directory, including any untracked files that you plan to
+       add (the rest should be removed), and then run
 
-    # read the authors file and extract the info it contains
-    my ($author_info, $authors_preamble)= read_authors($authors_file);
+            Porting/updateAUTHORS.pl
 
-    # read the mailmap file.
-    my ($orig_mailmap_hash, $mailmap_preamble)= read_mailmap($mailmap_file);
+       to update the AUTHORS and .mailmap files automatically. Inspect
+       the changes it makes and then commit them once you are
+       satisfied. This is your option to decide who you will be known
+       as in the future!
 
-    # check and possibly fix the mailmap data, and build a set of precomputed
-    # datasets to work with it.
-    my ($mailmap_hash, $mailmap_info)=
-        check_fix_mailmap_hash($orig_mailmap_hash, $author_info);
-
-    # update the mailmap based on any check or fixes we just did,
-    # we always write even if we did not do any changes.
-    update_mailmap($mailmap_hash, $mailmap_preamble, $mailmap_file);
-
-    # read the commits names using git log, and compares and checks
-    # them against the data we have in authors.
-    read_commit_log($author_info, $mailmap_info);
-
-    # update the authors file with any changes, we always write,
-    # but we may not change anything
-    update_authors($author_info, $authors_preamble, $authors_file);
-
-    # check if we discovered new email data from the commits that
-    # we need to write back to disk.
-    add_new_mailmap_entries($mailmap_hash, $mailmap_info, $mailmap_file)
-        and update_mailmap($mailmap_hash, $mailmap_preamble,
-        $mailmap_file, $mailmap_info);
+    3. You are already a contributor to the project but you are committing
+       changes on behalf of someone who is new. Run
 
-    return undef;
-}
+            Porting/updateAUTHORS.pl
 
-sub main {
-    local $Data::Dumper::Sortkeys= 1;
-    my $authors_file= "AUTHORS";
-    my $mailmap_file= ".mailmap";
-    my $show_man= 0;
-    my $show_help= 0;
+       to update the AUTHORS and .mailmap files automatically. Inspect
+       the changes it makes and then commit them once you are satisfied.
+       Make sure the conributor is ok with the decisions you make before
+       you merge.
 
-    ## Parse options and print usage if there is a syntax error,
-    ## or if usage was explicitly requested.
-    GetOptions(
-        'help|?'                      => \$show_help,
-        'man'                         => \$show_man,
-        'authors_file|authors-file=s' => \$authors_file,
-        'mailmap_file|mailmap-file=s' => \$mailmap_file,
-    ) or pod2usage(2);
-    pod2usage(1)             if $show_help;
-    pod2usage(-verbose => 2) if $show_man;
+    3. You are already an author but your git config is broken or
+       different from what you expect, or you are a new author but you
+       havent configured your git details properly, in which case you
+       can use something like the following commands:
 
-    read_and_update($authors_file, $mailmap_file);
-    return 0;    # 0 for no error - intended for exit();
-}
+            git config user.name "Some Name"
+            git config user.email "somewhere\@provider"
 
-exit(main()) unless caller;
+       If you are known to the project already this is all you need to
+       do. If you are not then you should perform option 2 or 4 as well
+       afterwards.
+
+    4. You do not want to be listed in AUTHORS: commit the changes,
+       including any untracked unignored files, and then run
 
+            Porting/updateAUTHORS.pl --exclude
+
+       and commit the changes it creates. This test should pass once
+       those commits are created. Thank you for your contributions.
+EOF_MESAGE
+}
 1;
 __END__
 
 =head1 NAME
 
-Porting/updateAUTHORS.pl - Automatically update AUTHORS and .mailmap
-based on commit data.
+F<Porting/updateAUTHORS.pl> - Automatically update F<AUTHORS> and F<.mailmap>
+and F<Porting/exclude_contrib.txt> based on commit data.
 
 =head1 SYNOPSIS
 
-Porting/updateAUTHORS.pl
+Porting/updateAUTHORS.pl [OPTIONS] [GIT_REF_RANGE]
+
+By default scans the commit history specified (or the entire history from the
+current commit) and then updates F<AUTHORS> and F<.mailmap> so all contributors
+are properly listed.
 
  Options:
    --help               brief help message
    --man                full documentation
-   --authors-file=FILE  override default location of AUTHORS
-   --mailmap-file=FILE  override default location of .mailmap
+   --verbose            be verbose
+
+ Commit Range:
+   --from=GIT_REF       Select commits to use
+   --to=GIT_REF         Select commits to use, defaults to HEAD
+
+ File Locations:
+   --authors-file=FILE  override default of 'AUTHORS'
+   --mailmap-file=FILE  override default of '.mailmap'
+
+ Action Modifiers
+   --no-update          Do not update.
+   --validate           output TAP about status and change nothing
+   --exclude-missing    Add new names to the exclude file so they never
+                        appear in AUTHORS or .mailmap.
+
+ Details Changes
+    Update canonical name or email in AUTHORS and .mailmap properly.
+    --exclude-contrib       NAME_AND_EMAIL
+    --exclude-me
+    --change-name           OLD_NAME=NEW_NAME
+    --change-name-for-email OLD_ADDR=NEW_NAME
+    --change-email-for-name OLD_NAME=NEW_ADDR
+    --change-email          OLD_ADDR=NEW_EMAIL
+
+ Reports About People
+    --stats             detailed report of authors and what they did
+    --who               Sorted, wrapped list of who did what
+    --thanks-applied    report who applied stuff for others
+    --rank              report authors by number of commits created
+
+ Reports About Files
+    --files             detailed report files that were modified
+    --activity          simple report of files that grew the most
+    --chainsaw          simple report of files that shrank the most
+
+ Report Modifiers
+    --percentage        show percentages not counts
+    --cumulative        show cumulative numbers not individual
+    --reverse           show reports in reverse order
+    --numstat           show additional file based data in some reports
+                        (not needed for most reports)
+    --as-list           show reports with names with common values
+                        folded into a list like checkAUTHORS.pl used to
+    --numbered          add rank numbers to reports where they are missing
 
 =head1 OPTIONS
 
 =over 4
 
-=item --help
+=item C<--help>
 
 Print a brief help message and exits.
 
-=item --man
+=item C<--man>
 
 Prints the manual page and exits.
 
-=item --authors-file=FILE
+=item C<--verbose>
 
-=item --authors_file=FILE
+Be verbose about what is happening. Can be repeated more than once.
 
-Override the default location of the authors file, which is "AUTHORS" in
-the current directory.
+=item C<--no-update>
 
-=item --mailmap-file=FILE
+Do not update files on disk even if they need to be changed.
 
-=item --mailmap_file=FILE
+=item C<--validate>
 
-Override the default location of the mailmap file, which is ".mailmap"
-in the current directory.
+=item C<--tap>
 
-=back
+Instead of modifying files, test to see which would be modified and
+output TAP test output about the validation.
 
-=head1 DESCRIPTION
+=item C<--authors-file=FILE>
 
-This program will automatically manage updates to the AUTHORS file and
-.mailmap file based on the data in our commits and the data in the files
-themselves. It uses no other sources of data. Expects to be run from
-the root a git repo of perl.
+=item C<--authors_file=FILE>
 
-In simple, execute the script and it will either die with a helpful
-message or it will update the files as necessary, possibly not at all if
-there is no need to do so. Note it will actually rewrite the files at
-least once, but it may not actually make any changes to their content.
-Thus to use the script is currently required that the files are
-modifiable.
-
-Review the changes it makes to make sure they are sane. If they are
-commit. If they are not then update the AUTHORS or .mailmap files as is
-appropriate and run the tool again. Typically you shouldn't need to do
-either unless you are changing the default name or email for a user. For
-instance if a person currently listed in the AUTHORS file whishes to
-change their preferred name or email then change it in the AUTHORS file
-and run the script again. I am not sure when you might need to directly
-modify .mailmap, usually modifying the AUTHORS file should suffice.
-
-=head1 FUNCTIONS
-
-Note that the file can also be used as a package. If you require the
-file then you can access the functions located within the package
-C<Porting::updateAUTHORS>. These are as follows:
+Override the default location of the authors file, which is by default
+the F<AUTHORS> file in the current directory.
 
-=over 4
+=item C<--mailmap-file=FILE>
+
+=item C<--mailmap_file=FILE>
+
+Override the default location of the mailmap file, which is by default
+the F<.mailmap> file in the current directory.
+
+=item C<--exclude-file=FILE>
+
+=item C<--exclude_file=FILE>
+
+Override the default location of the exclude file, which is by default
+the F<Porting/exclude_contrib.txt> file reachable from the current
+directory.
+
+=item C<--exclude-contrib=NAME_AND_EMAIL>
+
+=item C<--exclude_contrib=NAME_AND_EMAIL>
+
+Exclude a specific name/email combination from our contributor datasets.
+Can be repeated multiple times on the command line to remove multiple
+items at once. If the contributor details correspond to a canonical
+identity of a contributor (one that is in the AUTHORS file or on the
+left in the .mailmap file) then ALL records, including those linked to
+that identity in .mailmap will be marked for exclusion. This is similar
+to C<--exclude-missing> but it only affects the specifically named
+users. Note that the format for NAME_AND_EMAIL is similar to that of the
+.mailmap file, email addresses and C< @github > style identifiers should
+be wrapped in angle brackets like this: C<< <@github> >>, users with no
+email in the AUTHORS file should use C<< <unknown> >>.
+
+For example:
+
+  Porting/updateAUTHORS.pl --exclude-contrib="Joe B <b@joe.com>"
+
+Would remove all references to "Joe B" from F<AUTHORS> and F<.mailmap>
+and add the required entires to F<Porting/exclude_contrib.txt> such that
+the contributor would never be automatically added back, and would be
+automatically removed should someone read them manually.
+
+=item C<--exclude-missing>
+
+=item C<--exclude_missing>
+
+=item C<--exclude>
+
+Normally when the tool is run it *adds* missing data only. If this
+option is set then the reverse will happen, any author data missing will
+be marked as intentionally missing in such a way that future "normal"
+runs of the script ignore the author(s) that were excluded.
+
+The exclude data is stored in F<Porting/exclude_contrib.txt> as a SHA256
+digest (in base 64) of the user name and email being excluded so that
+the list itself doesnt contain the contributor details in plain text.
+
+The general idea is that if you want to remove someone from F<AUTHORS>
+and F<.mailmap> you delete their details manually, and then run this
+tool with the C<--exclude> option. It is probably a good idea to run it
+first without any arguments to make sure you dont exclude something or
+someone you did not intend to.
+
+=item C<--stats>
+
+Show detailed stats about committers and the work they did in a tabular
+form. If the C<--numstat> option is provided this report will provide
+additional data about the files a developer worked on. May be slow the
+first time it is used as git unpacks the relevant data.
+
+=item C<--who>
 
-=item add_new_mailmap_entries($mailmap_hash, $mailmap_info, $mailmap_file)
+Show a list of which committers and authors contributed to the project
+in the selected range of commits. The list will contain the name only,
+and will sorted according to unicode collation rules. This list is
+suitable in release notes and similar contexts.
 
-If any additions were identified while reading the commits this will
-inject them into the mailmap_hash so they can be written out. Returns a
-count of additions found.
+=item C<--thanks-applied>
 
-=item check_fix_mailmap_hash($mailmap_hash, $authors_info)
+Show a report of which committers applied work on behalf of
+someone else, including counts. Modified by the C<--as-list> and
+C<--display-rank>.
 
-Analyzes the data contained the in the .mailmap file and applies any
-automated fixes which are required and which it can automatically
-perform. Returns a hash of adjusted entries and a hash with additional
-metadata about the mailmap entries.
+=item C<--rank>
 
-=item main()
+Shows a report of which commits did the most work. Modified by the
+C<--as-list> and C<--display-rank> options.
 
-This implements the command line version of this module, handle command
-line options, etc.
+=item C<--files>
 
-=item merge_mailmap_with_AUTHORS_and_checkAUTHORS_data
+Show detailed stats about the files that have been modified in the
+selected range of commits. Implies C<--numstat>. May be slow the first
+time it is used as git unpacks the relevant data.
 
-This is a utility function that combines data from this tool with data
-contained in F<Porting/checkAUTHORS.pl> it is not used directly, but was
-used to cleanup and generate the current version of the .mailmap file.
+=item C<--activity>
 
-=item parse_mailmap_hash($mailmap_hash)
+Show simple stats about which files had the most additions. Implies
+C<--numstat>. May be slow the first time it is used as git unpacks the
+relevant data.
 
-Takes a mailmap_hash and parses it and returns it as an array of array
-records with the contents:
 
-    [ $preferred_name, $preferred_email,
-      $other_name, $other_email,
-      $line_num ]
+=item C<--chainsaw>
 
-=item read_and_update($authors_file, $mailmap_file)
+Show simple stats about whcih files had the most removals. Implies
+C<--numstat>. May be slow the first time it is used as git unpacks the
+relevant data.
 
-Wraps the other functions in this library and implements the logic and
-intent of this tool. Takes two arguments, the authors file name, and the
-mailmap file name. Returns nothing but may modify the AUTHORS file
-or the .mailmap file. Requires that both files are editable.
+=item C<--percentage>
 
-=item read_commit_log($authors_info, $mailmap_info)
+Show numeric data as percentages of the total, not counts.
 
-Read the commit log and find any new names it contains.
+=item C<--cumulative>
 
-=item read_authors($authors_file)
+Show numeric data as cumulative counts in the reports.
 
-Read the AUTHORS file and return data about it.
+=item C<--reverse>
 
-=item read_mailmap($mailmap_file)
+Show the reports in reverse order to normal.
 
-Read the .mailmap file and return data about it.
+=item C<--numstat>
 
-=item update_authors($authors_info, $authors_preamble, $authors_file)
+Gather additional data about the files that were changed, not just the
+authors who did the changes. This option currently is only necessary for
+the C<--stats> option, which will display additional data when this
+option is also provided.
 
-Write out an updated AUTHORS file. This is done atomically
-using a rename, we will not leave a half modified file in
-the repo.
+=item C<--as-list>
 
-=item update_mailmap($mm_hash, $mm_preamble, $mailmap_file, $mm_info)
+Show the reports with name data rolled up together into a list like the
+older checkAUTHORS.pl script would have.
 
-Write out an updated .mailmap file. This is done atomically
-using a rename, we will not leave a half modified file in
-the repo.
+=item C<--numbered>
+
+Show an additional column with the rank number of a row in the report in
+reports that do not normally show the rank number.
+
+=item C<--change-name OLD_NAME=NEW_NAME>
+
+=item C<--change-name-for-email OLD_EMAIL=NEW_NAME>
+
+=item C<--change-email OLD_EMAIL=NEW_EMAIL>
+
+=item C<--change-email-for-name OLD_NAME=NEW_EMAIL>
+
+Change email or name based on OLD_NAME or OLD_EMAIL.
+
+Eg,
+
+    --change-name-for-email somebody@gmail.com="Bob Rob"
+
+would cause the preferred name for the person with the preferred email
+C<somebody@gmail.com> to change to "Bob Rob" in our records. If that
+persons name was "Daniel Dude" then we might have done this as well:
+
+    --change-name "Bob Rob"="Daniel Dude"
 
 =back
 
-=head1 TODO
+=head1 DESCRIPTION
 
-More documentation and testing.
+This program will automatically manage updates to the F<AUTHORS> file
+and F<.mailmap> file based on the data in our commits and the data in
+the files themselves. It uses no other sources of data. Expects to be
+run from the root directory of a git repo of perl.
+
+In simple, execute the script and it will either die with a helpful
+message or it will update the files as necessary, possibly not at all
+if there is no need to do so. If the C<--validate> option is provided
+the content will not be updated and instead the tool will act as a
+test script validating that the F<AUTHORS> and F<.mailmap> files are
+up to date.
+
+By default the script operates on the *entire* history of Perl
+development that is reachable from HEAD. This can be overriden by using
+the C<--from> and C<--to> options, or providing a git commit range as an
+argument after the options just like you might do with C<git log>.
+
+The script can also be used to produce various reports and other content
+about the commits it has analyzed.
+
+=head2 ADDING A NEW CONTRIBUTOR
+
+Commit your changes. Run the tool with no arguments. It will add
+anything that is missing. Check the changes and then commit them.
+
+=head2 CHANGING A CONTRIBUTORS CANONICAL NAME OR EMAIL
+
+Use the C<--change-name-for-name> and related options. This will do
+things "properly" and update all the files.
 
-=head1 SEE ALSO
+=head2 A CONTRIBUTOR WANTS TO BE FORGOTTEN
 
-F<Porting/checkAUTHORS.pl>
+There are several ways to do this:
+
+=over 2
+
+=item Manual Exclusion
+
+Manually modify F<AUTHORS> and F<.mailmap> so the user detals are
+removed and then run this tool with the C<--exclude> option. This should
+result in various SHA-256 digests (in base64) being added to
+F<Porting/exclude_contrib.txt>. Commit the changes afterwards.
+
+=item Exclude Yourself
+
+Use the C<--exclude-me> option to the tool, review and commit the results.
+This will use roughly the same rules that git would to figure out what your
+name and email are.
+
+=item Exclude Someone Else
+
+Use the C<--exclude-contrib> option and specify their name and email.
+For example
+
+ --exclude-contrib="Their Name <email@provider.com>"
+
+Should exclude the person with this name from our files.
+
+=back
+
+Note that excluding a person by canonical details (that is the details
+in the F<AUTHORS> file) will result in their .mailmap'ed names being
+excluded as well. Excluding a persons secondary account details will
+simply block that specific email from being listed, and is likely not
+what you want to do most of the time.
+
+=head2 AFTER RUNNING THE TOOL
+
+Review the changes to make sure they are sane. If they are ok (and
+they should be most of the time) commit. If they are not then update
+the F<AUTHORS> or F<.mailmap> files as is appropriate and run the
+tool again.
+
+Do not panic that your email details get added to F<.mailmap>, this is
+by design so that your chosen name and email are displayed on GitHub and
+in casual use of C<git log> and other C<git> tooling.
+
+=head1 RECIPES
+
+  perl Porting/updateAUTHORS.pl --who --from=v5.31.6 --to=v5.31.7
+  perl Porting/updateAUTHORS.pl --who v5.31.6..v5.31.7
+  perl Porting/updateAUTHORS.pl --rank --percentage --from=v5.31.6
+  perl Porting/updateAUTHORS.pl --thanks-applied --from=v5.31.6
+  perl Porting/updateAUTHORS.pl --tap --from=v5.31.6
+  perl Porting/updateAUTHORS.pl --files --from=v5.31.6
+  perl Porting/updateAUTHORS.pl --activity --from=v5.31.6
+  perl Porting/updateAUTHORS.pl --chainsaw v5.31.6..HEAD
+  perl Porting/updateAUTHORS.pl --change-name "Old Name"="New Name"
+  perl Porting/updateAUTHORS.pl --change-name-for-email "x@y.com"="Name"
+  perl Porting/updateAUTHORS.pl --change-email-for-name "Name"="p@q.com"
+
+=head1 RELATED FILES
+
+F<AUTHORS>, F<.mailmap>, F<Porting/excluded_author.txt>
+
+=head1 TODO
+
+More documentation and testing.
 
 =head1 AUTHOR
 
 Yves Orton <demerphq@gmail.com>
+
+=head1 THANKS
+
+Loosely based on the older F<Porting/checkAUTHORS.pl> script which this tool
+replaced. Thanks to the contributors of that tool. See the Perl change log.
 
 =cut
Index: gnu/usr.bin/perl/Porting/updateAUTHORS.pm
===================================================================
RCS file: gnu/usr.bin/perl/Porting/updateAUTHORS.pm
diff -N gnu/usr.bin/perl/Porting/updateAUTHORS.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/Porting/updateAUTHORS.pm	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,1377 @@
+package Porting::updateAUTHORS;
+use strict;
+use warnings;
+use Data::Dumper;
+use Encode qw(encode_utf8 decode_utf8 decode);
+use Digest::SHA qw(sha256_base64);
+use Text::Wrap qw(wrap);
+use Unicode::Collate;
+use feature 'fc';
+$Text::Wrap::columns= 80;
+
+# The style of this file is determined by:
+#
+# perltidy -w -ple -bbb -bbc -bbs -nolq -l=80 -noll -nola -nwls='=' \
+#   -isbc -nolc -otr -kis -ci=4 -se -sot -sct -nsbl -pt=2 -fs  \
+#   -fsb='#start-no-tidy' -fse='#end-no-tidy'
+
+# Info and config for passing to git log.
+#   %an: author name
+#   %aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
+#   %ae: author email
+#   %aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
+#   %cn: committer name
+#   %cN: committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
+#   %ce: committer email
+#   %cE: committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
+#   %H: commit hash
+#   %h: abbreviated commit hash
+#   %s: subject
+#   %x00: print a byte from a hex code
+
+my %field_spec= (
+    "an" => "author_name",
+    "aN" => "author_name_mm",
+    "ae" => "author_email",
+    "aE" => "author_email_mm",
+    "cn" => "committer_name",
+    "cN" => "committer_name_mm",
+    "ce" => "committer_email",
+    "cE" => "committer_email_mm",
+    "H"  => "commit_hash",
+    "h"  => "abbrev_hash",
+    "s"  => "commit_subject",
+);
+
+my $Collate= Unicode::Collate->new(level => 1, indentical => 1);
+my @field_codes= sort keys %field_spec;
+my @field_names= map { $field_spec{$_} } @field_codes;
+my $tformat= "=" . join "%x09", map { "%" . $_ } @field_codes;
+
+sub _make_name_author_info {
+    my ($self, $commit_info, $name_key)= @_;
+    my $author_info= $self->{author_info};
+    (my $email_key= $name_key) =~ s/name/email/;
+    my $email= $commit_info->{$email_key};
+    my $name= $commit_info->{$name_key};
+
+    my $line= $author_info->{"email2line"}{$email}
+        // $author_info->{"name2line"}{ lc($name) };
+
+    $line //= sprintf "%-31s<%s>",
+        $commit_info->{$name_key}, $commit_info->{$email_key};
+    $commit_info->{ $name_key . "_canon" }= $line;
+    return $line;
+}
+
+sub _make_name_simple {
+    my ($self, $commit_info, $key)= @_;
+    my $name_key= $key . "_name";
+    my $email_key= $key . "_email";
+    return sprintf "%s <%s>", $commit_info->{$name_key},
+        lc($commit_info->{$email_key});
+}
+
+sub __fold_trim_ws {
+    my ($munged)= @_;
+    $munged =~ s/\s+/ /g;
+    $munged =~ s/\A\s+//;
+    $munged =~ s/\s+\z//;
+    return $munged;
+}
+
+sub _register_author {
+    my ($self, $name, $type)= @_;
+
+    return if $self->_logical_exclude_author($name);
+
+    my $digest= $self->_keeper_digest($name)
+        or return;
+
+    $self->{who_stats}{$name}{$type}++;
+
+    $self->{author_info}{"lines"}{$name}
+        and return;
+
+    my $munged= __fold_trim_ws($name);
+    if ($self->{exclude_missing}) {
+        $self->_exclude_contrib($name, $digest);
+    }
+    else {
+        $self->{author_info}{"lines"}{$name}++;
+
+        my $munged= __fold_trim_ws($name);
+        warn encode_utf8 sprintf
+            "New %s '%s' (%s) will be added to AUTHORS file.\n",
+            $type, $munged, $digest
+            if $self->{verbose};
+    }
+}
+
+sub git_conf_get {
+    my ($self, $setting)= @_;
+    chomp(my $value= `git config --get $setting`);
+    return decode_utf8 $value;
+}
+
+sub current_git_user_name {
+    my ($self)= @_;
+    return $self->git_conf_get("user.name");
+}
+
+sub current_git_user_email {
+    my ($self)= @_;
+    return $self->git_conf_get("user.email");
+}
+
+sub current_git_name_email {
+    my ($self, $type)= @_;
+    my $name=
+           $ENV{"GIT_\U$type\E_NAME"}
+        || $self->git_conf_get("\L$type\E.name")
+        || $self->current_git_user_name();
+    my $email=
+           $ENV{"GIT_\U$type\E_EMAIL"}
+        || $self->git_conf_get("\L$type\E.email")
+        || $self->current_git_user_email();
+    return $name, $email;
+}
+
+sub format_name_email {
+    my ($self, $name, $email)= @_;
+    return sprintf "%s <%s>", $name, $email;
+}
+
+sub current_committer_name_email {
+    my ($self, $full)= @_;
+    my ($n,    $e)= $self->current_git_name_email("committer");
+    return $full ? $self->format_name_email($n, $e) : ($n, $e);
+}
+
+sub current_author_name_email {
+    my ($self, $full)= @_;
+    my ($n,    $e)= $self->current_git_name_email("author");
+    return $full ? $self->format_name_email($n, $e) : ($n, $e);
+}
+
+sub git_status_porcelain {
+    my ($self)= @_;
+    my $status= `git status --porcelain`;
+    return $status // "";
+}
+
+sub finalize_commit_info {
+    my ($self, $commit_info)= @_;
+    my $author= $commit_info->{author_name_mm_canon};
+    my $author_stats= $self->{who_stats}{$author} ||= {};
+
+    my $file_info= $commit_info->{files} ||= {};
+    foreach my $file (keys %{$file_info}) {
+        if (!$self->{file_stats}{$file}) {
+            $self->{summary_stats}{num_files}++;
+        }
+        my $fs= $self->{file_stats}{$file}          ||= {};
+        my $afs= $author_stats->{file_stats}{$file} ||= {};
+        my $added= $file_info->{$file}{lines_added};
+        my $removed= $file_info->{$file}{lines_removed};
+        my $delta= $file_info->{$file}{lines_delta};
+        defined $_ and $_ eq "-" and undef $_ for $added, $removed;
+
+        if (defined $added) {
+            for my $h ($author_stats, $fs, $afs) {
+                $h->{lines_delta}   += $delta;
+                $h->{lines_added}   += $added;
+                $h->{lines_removed} += $removed;
+            }
+        }
+        else {
+            $author_stats->{binary_change}++;
+            $fs->{binary_change}++;
+            $afs->{binary_change}++;
+        }
+        $afs->{commits}++
+            or $author_stats->{num_files}++;
+
+        $fs->{commits}++
+            or $self->{summary_stats}{num_files}++;
+
+        $fs->{who}{$author}++
+            or $self->{summary_stats}{authors}++;
+    }
+}
+
+sub read_commit_log {
+    my ($self)= @_;
+    my $author_info= $self->{author_info}   ||= {};
+    my $mailmap_info= $self->{mailmap_info} ||= {};
+
+    my $commits_read= 0;
+    my @args= ("--pretty='format:$tformat'");
+    push @args, "--numstat" if $self->{numstat};
+    push @args, "'$self->{commit_range}'" if $self->{commit_range};
+
+    my $last_commit_info;
+    my $cmd= qq(git -c diff.algorithm=myers log @args);
+    $cmd =~ s/'/"/g if $^O =~ /Win/;
+    open my $fh, "-|", $cmd
+        or die "Failed to open git log pipe: $!";
+    binmode($fh);
+    while (defined(my $line= <$fh>)) {
+        chomp $line;
+        $line= decode_utf8($line);
+        if ($line =~ s/^=//) {
+            $self->finalize_commit_info($last_commit_info)
+                if $last_commit_info;
+        }
+        elsif ($line =~ /\S/) {
+            my ($added, $removed, $file)= split /\s+/, $line;
+            if ($added ne "-") {
+                $last_commit_info->{files}{$file}= {
+                    lines_added   => $added,
+                    lines_removed => $removed,
+                    lines_delta   => $added - $removed,
+                };
+            }
+            else {
+                $last_commit_info->{files}{$file}{binary_changes}++;
+            }
+            next;
+        }
+        else {
+            # whitspace only or empty line
+            next;
+        }
+        $commits_read++;
+        my $commit_info= {};
+        $last_commit_info= $commit_info;
+        @{$commit_info}{@field_names}= split /\t/, $line, 0 + @field_names;
+
+        my $author_name_mm_canon=
+            $self->_make_name_author_info($commit_info, "author_name_mm");
+
+        my $committer_name_mm_canon=
+            $self->_make_name_author_info($commit_info, "committer_name_mm");
+
+        my $author_name_real= $self->_make_name_simple($commit_info, "author");
+
+        my $committer_name_real=
+            $self->_make_name_simple($commit_info, "committer");
+
+        my ($author_good, $committer_good);
+
+        if (   $self->_keeper_digest($author_name_mm_canon)
+            && $self->_keeper_digest($author_name_real))
+        {
+            $self->_check_name_mailmap($author_name_mm_canon, $author_name_real,
+                $commit_info, "author name");
+            $self->_register_author($author_name_mm_canon, "author");
+            $author_good= 1;
+        }
+
+        if (   $self->_keeper_digest($committer_name_mm_canon)
+            && $self->_keeper_digest($committer_name_real))
+        {
+            $self->_check_name_mailmap($committer_name_mm_canon,
+                $committer_name_real, $commit_info, "committer name");
+            $self->_register_author($committer_name_mm_canon, "committer");
+            $committer_good= 1;
+        }
+        if (    $author_good
+            and $committer_good
+            and $committer_name_mm_canon ne $author_name_mm_canon)
+        {
+            $self->{who_stats}{$committer_name_mm_canon}{applied}++;
+        }
+    }
+    $self->finalize_commit_info($last_commit_info) if $last_commit_info;
+    if (!$commits_read) {
+        if ($self->{commit_range}) {
+            die "No commits in range '$self->{commit_range}'\n";
+        }
+        else {
+            die "Panic! There are no commits!\n";
+        }
+    }
+    return $author_info;
+}
+
+sub dupe_info {
+    my ($self)= @_;
+    my $msg= "";
+    foreach my $type (sort keys %{ $self->{dupe} || {} }) {
+        $msg .= "Duplicate \u$type in $self->{authors_file}:\n";
+        foreach my $key (sort keys %{ $self->{dupe}{$type} }) {
+            $msg .= "  \u$type '$key'\n";
+            foreach my $line (sort keys %{ $self->{dupe}{$type}{$key} }) {
+                $msg .= "    $line\n";
+            }
+        }
+    }
+    return $msg;
+}
+
+sub read_authors_file {
+    my ($self)= @_;
+    my $authors_file= $self->{authors_file};
+
+    my @authors_preamble;
+    open my $in_fh, "<", $authors_file
+        or die "Failed to open for read '$authors_file': $!";
+    my $raw_text= "";
+    my $found_sep= 0;
+    while (defined(my $line= <$in_fh>)) {
+        $raw_text .= $line;
+        $line= decode_utf8($line);
+        chomp $line;
+        push @authors_preamble, $line;
+        if ($line =~ /^--/) {
+            $found_sep= 1;
+            last;
+        }
+    }
+    if (!$found_sep) {
+        die sprintf <<'EOFMT', $authors_file;
+Possibly corrupted authors file '%s'.
+
+There should be a big '#' comment block at the start of the file
+followed by "--" followed by a list of names and email/contact
+details. We couldn't find the separator. Where did it go?
+
+Cowardly refusing to continue until this is fixed.
+EOFMT
+    }
+    my %author_info;
+    while (defined(my $line= <$in_fh>)) {
+        $raw_text .= $line;
+        $line= decode_utf8($line);
+        chomp $line;
+        my ($name, $email);
+        my $copy= $line;
+        $copy =~ s/\s+\z//;
+        if ($copy =~ s/<([^<>]*)>//) {
+            $email= $1;
+        }
+        elsif ($copy =~ s/\s+(\@\w+)\z//) {
+            $email= $1;
+        }
+        $copy =~ s/\s+\z//;
+        $name= $copy;
+        $email //= "unknown";
+        my $orig_name= $name;
+        my $orig_email= $email;
+        if (my $new_name= $self->{change_name_for_name}{$orig_name}) {
+            $name= $new_name;
+        }
+        if (my $new_name= $self->{change_name_for_email}{$orig_email}) {
+            $name= $new_name;
+        }
+        if (my $new_email= $self->{change_email_for_name}{$orig_name}) {
+            $email= $new_email;
+        }
+        if (my $new_email= $self->{change_email_for_email}{$orig_email}) {
+            $email= $new_email;
+        }
+        $line= sprintf "%-31s%s", $name, $email =~ /^\@/ ? $email : "<$email>";
+        $line =~ s/\s+<unknown>\z//;
+        $email= lc($email);
+
+        $line =~ s/\s+\z//;
+        $author_info{"lines"}{$line}++;
+        if ($email and $email ne "unknown") {
+            if (my $other= $author_info{"email2line"}{$email}) {
+                $self->{dupe}{email}{$email}{$other}= 1;
+                $self->{dupe}{email}{$email}{$line}= 1;
+            }
+            else {
+                $author_info{"email2line"}{$email}= $line;
+            }
+        }
+        if ($name and $name ne "unknown") {
+            if (my $other= $author_info{"name2line"}{ lc($name) }) {
+                $self->{dupe}{name}{$name}{$other}= 1;
+                $self->{dupe}{name}{$name}{$line}= 1;
+            }
+            else {
+                $author_info{"name2line"}{ lc($name) }= $line;
+            }
+        }
+        $author_info{"email2name"}{$email} //= $name
+            if $email
+            and $name
+            and $email ne "unknown";
+        $author_info{"name2email"}{$name} //= $email
+            if $name and $name ne "unknown";
+        $author_info{"clean_full"}{ __fold_trim_ws($line) }= $line;
+    }
+    close $in_fh
+        or die "Failed to close '$authors_file': $!";
+
+    $self->{author_info}= \%author_info;
+    $self->{authors_preamble}= \@authors_preamble;
+    $self->{authors_raw_text}= $raw_text;
+    return (\%author_info, \@authors_preamble, $raw_text);
+}
+
+sub update_authors_file {
+    my ($self)= @_;
+
+    my $author_info= $self->{author_info};
+    my $authors_preamble= $self->{authors_preamble};
+    my $authors_file= $self->{authors_file};
+    my $old_raw_text= $self->{authors_raw_text};
+
+    my $authors_file_new= $authors_file . ".new";
+    my $new_raw_text= "";
+    {
+        open my $out_fh, ">", \$new_raw_text
+            or die "Failed to open scalar buffer for write: $!";
+        foreach my $line (@$authors_preamble) {
+            print $out_fh encode_utf8($line), "\n"
+                or die "Failed to print to scalar buffer handle: $!";
+        }
+        foreach my $author (__sorted_hash_keys($author_info->{"lines"})) {
+            next if $self->_logical_exclude_author($author);
+            my $author_mm= $self->_author_to_mailmap($author);
+            if (!$self->_keeper_digest($author_mm)) {
+                next;
+            }
+            print $out_fh encode_utf8($author), "\n"
+                or die "Failed to print to scalar buffer handle: $!";
+        }
+        close $out_fh
+            or die "Failed to close scalar buffer handle: $!";
+    }
+    if ($new_raw_text ne $old_raw_text) {
+        $self->{changed_count}++;
+        $self->_log_file_changes_quick_and_dirty_diff($authors_file,
+            $old_raw_text, $new_raw_text);
+
+        if ($self->{no_update}) {
+            return 1;
+        }
+
+        warn "Updating '$authors_file'\n" if $self->{verbose};
+
+        open my $out_fh, ">", $authors_file_new
+            or die "Failed to open for write '$authors_file_new': $!";
+        binmode $out_fh;
+        print $out_fh $new_raw_text;
+        close $out_fh
+            or die "Failed to close '$authors_file_new': $!";
+        rename $authors_file_new, $authors_file
+            or die
+            "Failed to rename '$authors_file_new' to '$authors_file': $!";
+        return 1;
+    }
+    else {
+        return 0;
+    }
+}
+
+sub read_mailmap_file {
+    my ($self)= @_;
+    my $mailmap_file= $self->{mailmap_file};
+
+    open my $in, "<", $mailmap_file
+        or die "Failed to read '$mailmap_file': $!";
+    my %mailmap_hash;
+    my @mailmap_preamble;
+    my $line_num= 0;
+    my $raw_text= "";
+    while (defined(my $line= <$in>)) {
+        $raw_text .= $line;
+        $line= decode_utf8($line);
+        ++$line_num;
+        next unless $line =~ /\S/;
+        chomp($line);
+        if ($line =~ /^#/) {
+            if (!keys %mailmap_hash) {
+                push @mailmap_preamble, $line;
+            }
+            else {
+                die encode_utf8 "Not expecting comments after header ",
+                    "finished at line $line_num!\nLine: $line\n";
+            }
+        }
+        else {
+            $mailmap_hash{$line}= $line_num;
+        }
+    }
+    close $in
+        or die "Failed to close '$mailmap_file' after reading: $!";
+    if (!@mailmap_preamble) {
+        die sprintf <<'EOFMT', $mailmap_file;
+Possibly corrupted mailmap file '%s'.
+
+This file should have a preamble of '#' comments in it.
+
+Where did they go?
+
+Cowardly refusing to continue until this is fixed.
+EOFMT
+    }
+    $self->{orig_mailmap_hash}= \%mailmap_hash;
+    $self->{mailmap_preamble}= \@mailmap_preamble;
+    $self->{mailmap_raw_text}= $raw_text;
+    return (\%mailmap_hash, \@mailmap_preamble, $raw_text);
+}
+
+sub __sorted_hash_keys {
+    my ($hash)= @_;
+    return __sort_names(keys %$hash);
+}
+
+sub __sort_names {
+    my @sorted= sort { fc($a) cmp fc($b) || $a cmp $b } @_;
+    return @sorted;
+}
+
+# Returns 0 if the file needed to be changed, Return 1 if it does not.
+sub update_mailmap_file {
+    my ($self)= @_;
+    my $mailmap_hash= $self->{new_mailmap_hash};
+    my $mailmap_preamble= $self->{mailmap_preamble};
+    my $mailmap_file= $self->{mailmap_file};
+    my $old_raw_text= $self->{mailmap_raw_text};
+
+    my $new_raw_text= "";
+    {
+        open my $out, ">", \$new_raw_text
+            or die "Failed to open scalar buffer for write: $!";
+        foreach
+            my $line (@$mailmap_preamble, __sorted_hash_keys($mailmap_hash),)
+        {
+            next if $line =~ m!\A(.*) \1\z!;
+            print $out encode_utf8($line), "\n"
+                or die "Failed to print to scalar buffer handle: $!";
+        }
+        close $out
+            or die "Failed to close scalar buffer handle: $!";
+    }
+    if ($new_raw_text ne $old_raw_text) {
+        $self->{changed_count}++;
+        $self->_log_file_changes_quick_and_dirty_diff($mailmap_file,
+            $old_raw_text, $new_raw_text);
+
+        if ($self->{no_update}) {
+            return 1;
+        }
+
+        warn "Updating '$mailmap_file'\n"
+            if $self->{verbose};
+
+        my $mailmap_file_new= $mailmap_file . ".new";
+        open my $out, ">", $mailmap_file_new
+            or die "Failed to write '$mailmap_file_new': $!";
+        binmode $out
+            or die "Failed to binmode '$mailmap_file_new': $!";
+        print $out $new_raw_text
+            or die "Failed to print to '$mailmap_file_new': $!";
+        close $out
+            or die "Failed to close '$mailmap_file_new' after writing: $!";
+        rename $mailmap_file_new, $mailmap_file
+            or die
+            "Failed to rename '$mailmap_file_new' to '$mailmap_file': $!";
+        return 1;
+    }
+    else {
+        return 0;
+    }
+}
+
+sub parse_orig_mailmap_hash {
+    my ($self)= @_;
+    my $mailmap_hash= $self->{orig_mailmap_hash};
+
+    my @recs;
+    foreach my $line (__sorted_hash_keys($mailmap_hash)) {
+        my $line_num= $mailmap_hash->{$line};
+        $line =~ /^ \s* (?: ( [^<>]*? ) \s+ )? <([^<>]*)>
+                (?: \s+ (?: ( [^<>]*? ) \s+ )? <([^<>]*)> )? \s* \z /x
+            or die encode_utf8
+            "Failed to parse '$self->{mailmap_file}' line num $line_num: '$line'\n";
+        if (!$1 or !$2) {
+            die encode_utf8 "Both preferred name and email are mandatory ",
+                "in line num $line_num: '$line'";
+        }
+        my ($name, $email, $other_name, $other_email)= ($1, $2, $3, $4);
+        my ($orig_name, $orig_email)= ($1, $2);
+        if (my $new_name= $self->{change_name_for_name}{$orig_name}) {
+            $name= $new_name;
+        }
+        if (my $new_name= $self->{change_name_for_email}{$orig_email}) {
+            $name= $new_name;
+        }
+        if (my $new_email= $self->{change_email_for_name}{$orig_name}) {
+            $email= $new_email;
+        }
+        if (my $new_email= $self->{change_email_for_email}{$orig_email}) {
+            $email= $new_email;
+        }
+
+        push @recs, [ $name, $email, $other_name, $other_email, $line_num ];
+    }
+    return \@recs;
+}
+
+sub _safe_set_key {
+    my ($self, $hash, $root_key, $key, $val, $pretty_name)= @_;
+    $hash->{$root_key}{$key} //= $val;
+    my $prev= $hash->{$root_key}{$key};
+    if ($prev ne $val) {
+        die encode_utf8 "Collision on mapping $root_key: "
+            . " '$key' maps to '$prev' and '$val'\n";
+    }
+}
+
+my $O2P= "other2preferred";
+my $O2PN= "other2preferred_name";
+my $O2PE= "other2preferred_email";
+my $P2O= "preferred2other";
+my $N2P= "name2preferred";
+my $E2P= "email2preferred";
+
+my $blurb= "";    # FIXME - replace with a nice message
+
+sub known_contributor {
+    my ($self, $name, $email)= @_;
+    if (!$name or !$email) { return 0 }
+    my $combined= "$name <$email>";
+    return ((
+                   $self->{mailmap_info}{$O2P}{$combined}
+                && $self->_keeper_digest($combined)
+        ) ? 1 : 0
+    );
+}
+
+sub _check_name_mailmap {
+    my ($self, $auth_name, $raw_name, $commit_info, $descr)= @_;
+    my $mailmap_info= $self->{mailmap_info};
+
+    my $name= $self->_author_to_mailmap($auth_name);
+
+    my $digest= $self->_keeper_digest($name)
+        or return 1;    # known but ignore
+
+    my $name_info= $mailmap_info->{$P2O}{$name};
+
+    if (!$name_info || !$name_info->{$raw_name}) {
+        if ($self->{exclude_missing}) {
+            $self->_exclude_contrib($name, $digest);
+        }
+        else {
+            $mailmap_info->{add}{"$name $raw_name"}++;
+
+            warn encode_utf8 sprintf
+                "Unknown %s '%s' in commit %s '%s'\n%s",
+                $descr,
+                $name,
+                $commit_info->{"abbrev_hash"},
+                $commit_info->{"commit_subject"}, $blurb
+                if $self->{verbose};
+        }
+        return 0;
+    }
+    return 1;
+}
+
+sub _author_to_mailmap {
+    my ($self, $name)= @_;
+    $name =~ s/<([^<>]+)>/<\L$1\E>/
+        or $name =~ s/(\s)(\@\w+)\z/$1<\L$2\E>/
+        or $name .= " <unknown>";
+
+    $name= __fold_trim_ws($name);
+    return $name;
+}
+
+sub check_fix_mailmap_hash {
+    my ($self)= @_;
+    my $orig_mailmap_hash= $self->{orig_mailmap_hash};
+    my $author_info= $self->{author_info};
+    foreach my $key (keys %{ $author_info->{clean_full} }) {
+        $key .= " <unknown>"
+            unless $key =~ /\s+(?:<[^>]+>|\@\w+)\z/;
+        $key =~ s/\s+(\@\w+)\z/ <$1>/;
+        $orig_mailmap_hash->{"$key $key"} //= -1;
+    }
+    my $parsed= $self->parse_orig_mailmap_hash();
+    my @fixed;
+    my %seen_map;
+    my %pref_groups;
+
+    my $remove_no_names_with_overlaps= 0;
+
+    # first pass through the data, do any conversions, eg, LC
+    # the email address, decode any MIME-Header style email addresses.
+    # We also correct any preferred name entries so they match what
+    # we already have in AUTHORS, and check that there aren't collisions
+    # or other issues in the data.
+    foreach my $rec (@$parsed) {
+        my ($pname, $pemail, $oname, $oemail, $line_num)= @$rec;
+        $pemail= lc($pemail);
+        $oemail= lc($oemail) if defined $oemail;
+        if ($pname =~ /=\?UTF-8\?/) {
+            $pname= decode("MIME-Header", $pname);
+        }
+        my $auth_email= $author_info->{"name2email"}{$pname};
+        if ($auth_email) {
+            ## this name exists in authors, so use its email data for pemail
+            $pemail= $auth_email;
+        }
+        my $auth_name= $author_info->{"email2name"}{$pemail};
+        if ($auth_name) {
+            ## this email exists in authors, so use its name data for pname
+            $pname= $auth_name;
+        }
+
+        # neither name nor email exist in authors.
+        if ($pname ne "unknown") {
+            if (my $email= $seen_map{"name"}{$pname}) {
+                ## we have seen this pname before, check the pemail
+                ## is consistent
+                if ($email ne $pemail) {
+                    warn encode_utf8 "Inconsistent emails for name '$pname'"
+                        . " at line num $line_num: keeping '$email',"
+                        . " ignoring '$pemail'\n";
+                    $pemail= $email;
+                }
+            }
+            else {
+                $seen_map{"name"}{$pname}= $pemail;
+            }
+        }
+        if ($pemail ne "unknown") {
+            if (my $name= $seen_map{"email"}{$pemail}) {
+                ## we have seen this preferred_email before, check the preferred_name
+                ## is consistent
+                if ($name ne $pname) {
+                    warn encode_utf8 "Inconsistent name for email '$pemail'"
+                        . " at line num $line_num: keeping '$name', ignoring"
+                        . " '$pname'\n";
+                    $pname= $name;
+                }
+            }
+            else {
+                $seen_map{"email"}{$pemail}= $pname;
+            }
+        }
+
+        my $rec= [ $pname, $pemail, $oname, $oemail, $line_num ];
+        if ($remove_no_names_with_overlaps) {
+
+            # Build an index of "preferred name/email" to other-email, other name
+            # we use this later to remove redundant entries missing a name.
+            $pref_groups{"$pname $pemail"}{$oemail}{ $oname || "" }= $rec;
+        }
+        else {
+            push @fixed, $rec;
+        }
+    }
+
+    if ($remove_no_names_with_overlaps) {
+
+        # this removes entries like
+        # Joe <blogs> <whatever>
+        # where there is a corresponding
+        # Joe <blogs> Joe X <whatever>
+        foreach my $pref (__sorted_hash_keys(\%pref_groups)) {
+            my $entries= $pref_groups{$pref};
+            foreach my $email (__sorted_hash_keys($entries)) {
+                my @names= __sorted_hash_keys($entries->{$email});
+                if (0 and $names[0] eq "" and @names > 1) {
+                    shift @names;
+                }
+                foreach my $name (@names) {
+                    push @fixed, $entries->{$email}{$name};
+                }
+            }
+        }
+    }
+
+    # final pass through the dataset, build up a database
+    # we will use later for checks and updates, and reconstruct
+    # the canonical entries.
+    my $new_mailmap_hash= {};
+    my $mailmap_info=     {};
+    foreach my $rec (@fixed) {
+        my ($pname, $pemail, $oname, $oemail, $line_num)= @$rec;
+        my $preferred= "$pname <$pemail>";
+        my $other;
+        if (defined $oemail) {
+            $other= $oname ? "$oname <$oemail>" : "<$oemail>";
+        }
+        if (!$self->_keeper_digest($preferred)) {
+            $self->_exclude_contrib($other);
+            next;
+        }
+        elsif (!$self->_keeper_digest($other)) {
+            next;
+        }
+        if ($other and $other ne "<unknown>") {
+            $self->_safe_set_key($mailmap_info, $O2P,  $other, $preferred);
+            $self->_safe_set_key($mailmap_info, $O2PN, $other, $pname);
+            $self->_safe_set_key($mailmap_info, $O2PE, $other, $pemail);
+        }
+        $mailmap_info->{$P2O}{$preferred}{$other}++;
+        if ($pname ne "unknown") {
+            $self->_safe_set_key($mailmap_info, $N2P, $pname, $preferred);
+        }
+        if ($pemail ne "unknown") {
+            $self->_safe_set_key($mailmap_info, $E2P, $pemail, $preferred);
+        }
+        my $line= $preferred;
+        $line .= " $other" if $other;
+        $new_mailmap_hash->{$line}= $line_num;
+    }
+    $self->{new_mailmap_hash}= $new_mailmap_hash;
+    $self->{mailmap_info}= $mailmap_info;
+    return ($new_mailmap_hash, $mailmap_info);
+}
+
+sub add_new_mailmap_entries {
+    my ($self)= @_;
+    my $mailmap_hash= $self->{new_mailmap_hash};
+    my $mailmap_info= $self->{mailmap_info};
+    my $mailmap_file= $self->{mailmap_file};
+
+    my $mailmap_add= $mailmap_info->{add}
+        or return 0;
+
+    my $num= 0;
+    for my $new (__sorted_hash_keys($mailmap_add)) {
+        !$mailmap_hash->{$new}++ or next;
+        warn encode_utf8 "Updating '$mailmap_file' with: $new\n"
+            if $self->{verbose};
+        $num++;
+    }
+    return $num;
+}
+
+sub read_and_update {
+    my ($self)= @_;
+    my ($authors_file, $mailmap_file)=
+        %{$self}{qw(authors_file mailmap_file)};
+
+    # read the authors file and extract the info it contains
+    $self->read_authors_file();
+
+    # read the mailmap file.
+    $self->read_mailmap_file();
+
+    # check and possibly fix the mailmap data, and build a set of precomputed
+    # datasets to work with it.
+    $self->check_fix_mailmap_hash();
+
+    # update the mailmap based on any check or fixes we just did.
+    $self->update_mailmap_file();
+
+    # read the commits names using git log, and compares and checks
+    # them against the data we have in authors.
+    $self->read_commit_log();
+
+    # update the authors file with any changes
+    $self->update_authors_file();
+
+    # check if we discovered new email data from the commits that
+    # we need to write back to disk.
+    $self->add_new_mailmap_entries()
+        and $self->update_mailmap_file();
+
+    $self->update_exclude_file();
+
+    return $self->changed_count();
+}
+
+sub read_exclude_file {
+    my ($self)= @_;
+    my $exclude_file= $self->{exclude_file};
+    my $exclude_digest= $self->{exclude_digest} ||= {};
+
+    open my $in_fh, "<", $exclude_file
+        or do {
+        warn "Failed to open '$exclude_file': $!";
+        return;
+        };
+    my $head= "";
+    my $orig= "";
+    my $seen_data= 0;
+    while (defined(my $line= <$in_fh>)) {
+        $orig .= $line;
+        if ($line =~ /^\s*#/ || $line !~ /\S/) {
+            $head .= $line unless $seen_data;
+            next;
+        }
+        else {
+            $seen_data= 1;
+        }
+        chomp($line);
+        $line =~ s/\A\s+//;
+        $line =~ s/\s*(?:#.*)?\z//;
+        $exclude_digest->{$line}++ if length($line);
+    }
+    close $in_fh
+        or die "Failed to close '$exclude_file' after reading: $!";
+    if (!$head) {
+        die sprintf <<'EOFMT', $exclude_file;
+Possibly corrupted exclude file '%s'.
+
+This file should have a header of '#' comments in it.
+
+Where did they go?
+
+Cowardly refusing to continue until this is fixed.
+EOFMT
+    }
+    $self->{exclude_file_text_head}= $head;
+    $self->{exclude_file_text_orig}= $orig;
+
+    return $exclude_digest;
+}
+
+sub update_exclude_file {
+    my ($self)= @_;
+    my $exclude_file= $self->{exclude_file};
+    my $exclude_text= $self->{exclude_file_text_head};
+    foreach my $digest (__sorted_hash_keys($self->{exclude_digest})) {
+        $exclude_text .= "$digest\n";
+    }
+    if ($exclude_text ne $self->{exclude_file_text_orig}) {
+        $self->{changed_count}++;
+        $self->_log_file_changes_quick_and_dirty_diff($exclude_file,
+            $self->{exclude_file_text_orig},
+            $exclude_text);
+
+        if ($self->{no_update}) {
+            return 1;
+        }
+
+        warn "Updating '$exclude_file'\n" if $self->{verbose};
+
+        my $tmp_file= "$exclude_file.new";
+        open my $out_fh, ">", $tmp_file
+            or die "Cant open '$tmp_file' for write $!";
+        print $out_fh $exclude_text
+            or die "Failed to print to '$tmp_file': $!";
+        close $out_fh
+            or die "Failed to close '$tmp_file' after writing: $!";
+        rename $tmp_file, $exclude_file
+            or die "Failed to rename '$tmp_file' to '$exclude_file': $!";
+
+        return 1;
+    }
+    else {
+        return 0;
+    }
+}
+
+sub changed_count {
+    my ($self)= @_;
+    return $self->{changed_count};
+}
+
+sub changed_file {
+    my ($self, $name)= @_;
+    return $self->{changed_file}{$name};
+}
+
+sub unchanged_file {
+    my ($self, $name)= @_;
+    return $self->changed_file($name) ? 0 : 1;
+}
+
+sub new {
+    my ($class, %self)= @_;
+    $self{changed_count}= 0;
+    for my $name (qw(authors_file mailmap_file exclude_file)) {
+        $self{$name}
+            or die "Property '$name' is mandatory in constructor";
+    }
+
+    my $self= bless \%self, $class;
+
+    if (my $ary= $self->{exclude_contrib}) {
+        $self->_exclude_contrib($_) for @$ary;
+    }
+
+    $self->read_exclude_file();
+
+    die Dumper(\%self) if $self{dump_opts};
+
+    return $self;
+}
+
+sub __digest {
+    my $thing= $_[0];
+    utf8::encode($thing);
+    return sha256_base64($thing);
+}
+
+# if this name is a "keeper" then return its digest
+# (if we know the digest and it is marked for exclusion
+# then we return 0)
+sub _keeper_digest {
+    my ($self, $real_name)= @_;
+    my $digest;
+    $digest= $self->{digest_cache}{$real_name};
+
+    if (!$digest) {
+        my $name= __fold_trim_ws($real_name);
+
+        $digest= ($self->{digest_cache}{$name} //= __digest($name));
+        $self->{digest_cache}{$real_name}= $digest;
+    }
+
+    return $self->{exclude_digest}{$digest} ? 0 : $digest;
+}
+
+# should we exclude this author from the AUTHORS file
+# simply because of the form of their details?
+sub _logical_exclude_author {
+    my ($self, $author)= @_;
+
+    # don't know the persona
+    return 1 if $author =~ /^unknown/;
+
+    # Someone at <unknown> with a single word name.
+    # Eg, we wont list "Bob <unknown>"
+    if ($author =~ s/\s*<unknown>\z//) {
+        return 1 if $author =~ /^\w+$/;
+    }
+    return 0;
+}
+
+# exclude this contributor by name, if digest isnt provided
+# then it is computed using _digest.
+sub _exclude_contrib {
+    my ($self, $name, $digest)= @_;
+
+    # if we would exclude them anyway due to the logical
+    # naming rules then we do not need to add them to the exclude
+    # file.
+    return if $self->_logical_exclude_author($name);
+    $name= __fold_trim_ws($name);
+    $digest //= __digest($name);
+    $self->{exclude_digest}{$digest}++
+        or warn "Excluding '$name' with '$digest'\n";
+}
+
+sub _log_file_changes_quick_and_dirty_diff {
+    my ($self, $file, $old_raw_text, $new_raw_text)= @_;
+
+    my %old;
+    $old{$_}++ for split /\n/, $old_raw_text;
+    my %new;
+    $new{$_}++ for split /\n/, $new_raw_text;
+    foreach my $key (keys %new) {
+        delete $new{$key} if delete $old{$key};
+    }
+    $self->{changed_file}{$file}{add}= \%new if keys %new;
+    $self->{changed_file}{$file}{del}= \%old if keys %old;
+    return $self->{changed_file}{$file};
+}
+
+sub _diff_diag {
+    my ($self, $want_file)= @_;
+    my $diag_str= "";
+    foreach my $file (sort keys %{ $self->{changed_file} || {} }) {
+        next if $want_file and $file ne $want_file;
+        $diag_str .= "  File '$file' changes:\n";
+        foreach my $action (sort keys %{ $self->{changed_file}{$file} }) {
+            foreach
+                my $line (sort keys %{ $self->{changed_file}{$file}{$action} })
+            {
+                $diag_str .= "    would $action: $line\n";
+            }
+        }
+    }
+    return $diag_str;
+}
+
+my %pretty_name= (
+    "author"         => "Authored",
+    "committer"      => "Committed",
+    "applied"        => "Applied",
+    "name"           => "Name",
+    "pos"            => "Pos",
+    "num_files"      => "NFiles",
+    "lines_added"    => "L++",
+    "lines_removed"  => "L--",
+    "lines_delta"    => "L+-",
+    "binary_changed" => "Bin+-",
+);
+
+sub report_stats {
+    my ($self, $stats_key, @types)= @_;
+    my @extra= "name";
+    my @rows;
+    my @total;
+    foreach my $name (__sorted_hash_keys($self->{$stats_key})) {
+        my @data= map { $self->{$stats_key}{$name}{$_} // 0 } @types;
+        $total[$_] += $data[$_] for 0 .. $#data;
+        push @data, $name;
+        push @rows, \@data if $data[0];
+    }
+    @rows= sort {
+        my $cmp= 0;
+        for (0 .. $#$a - 1) {
+            $cmp= $b->[$_] <=> $a->[$_];
+            last if $cmp;
+        }
+        $cmp ||= $Collate->cmp($a->[-1], $b->[-1]);
+        $cmp
+    } @rows;
+    @rows= reverse @rows if $self->{in_reverse};
+
+    if ($self->{as_cumulative}) {
+        my $sum= [];
+        for my $row (@rows) {
+            do {
+                $sum->[$_] += $row->[$_];
+                $row->[$_]= $sum->[$_];
+                }
+                for 0 .. $#types;
+        }
+    }
+
+    if ($self->{as_percentage}) {
+        for my $row (@rows) {
+            $row->[$_]= sprintf "%.2f", ($row->[$_] / $total[$_]) * 100
+                for 0 .. $#types;
+        }
+    }
+
+    foreach my $row (@rows) {
+        my $name= $row->[-1];
+        $name =~ s/\s+<.*\z//;
+        $name =~ s/\s+\@.*\z//;
+        $row->[-1]= $name;
+    }
+    my @col_names= map { $pretty_name{$_} // $_ } @types;
+    if ($self->{as_percentage}) {
+        $_= "%$_" for @col_names;
+    }
+    push @col_names, map { $pretty_name{$_} // $_ } @extra;
+
+    if ($self->{as_list} && @types == 1) {
+        $self->_report_list(\@rows, \@types, \@extra, \@col_names);
+    }
+    else {
+        $self->_report_table(\@rows, \@types, \@extra, \@col_names);
+    }
+}
+
+sub _report_table {
+    my ($self, $rows, $types, $extra, $col_names)= @_;
+    my $pos= 1;
+    unshift @$_,         $pos++ for @$rows;
+    unshift @$col_names, "Pos";
+    my @width= (0) x @$col_names;
+    foreach my $row ($col_names, @$rows) {
+        for my $idx (0 .. $#$row) {
+            $width[$idx] < length($row->[$idx])
+                and $width[$idx]= length($row->[$idx]);
+        }
+    }
+    $width[-1]= 40 if $width[-1] > 40;
+    $width[$_]= -$width[$_] for 0, -1;
+    my $fmt= "#" . join(" | ", ("%*s") x @$col_names) . "\n";
+    my $bar_fmt= "#" . join("-+-", ("%*s") x @$col_names) . "\n";
+    printf $fmt,     map { $width[$_], $col_names->[$_] } 0 .. $#width;
+    printf $bar_fmt, map { $width[$_], "-" x abs($width[$_]) } 0 .. $#width;
+    for my $idx (0 .. $#$rows) {
+        my $row= $rows->[$idx];
+        print encode_utf8 sprintf $fmt,
+            map { $width[$_], $row->[$_] } 0 .. $#width;
+    }
+}
+
+sub _report_list {
+    my ($self, $rows, $types, $extra, $col_names)= @_;
+    my %hash;
+    foreach my $row (@$rows) {
+        $hash{ $row->[0] }{ $row->[-1] }++;
+    }
+    my @vals= sort { $b <=> $a } keys %hash;    # numeric sort
+    my $width= length($col_names->[0]);
+    $width < length($_) and $width= length($_) for @vals;
+    @vals= reverse @vals if $self->{in_reverse};
+
+    my $hdr_str= sprintf "%*s | %s", $width, $col_names->[0], $col_names->[-1];
+    my $sep_str= sprintf "%*s-+-%s", $width, "-" x $width, "-" x 40;
+    my $fmt= "%*s | %s";
+
+    if ($self->{with_rank_numbers}) {
+        $hdr_str= sprintf "#%*s | %s", -length(0 + @$rows), "Pos", $hdr_str;
+        $sep_str= sprintf "#%*s-+-%s", -length(0 + @$rows),
+            "-" x length(0 + @$rows), $hdr_str;
+    }
+    print $hdr_str, "\n";
+    print $sep_str, "\n";
+    my $pos= 1;
+    foreach my $val (@vals) {
+        my $val_f= sprintf "%*s | ", $width, $val;
+        $val_f= sprintf "#%*d | %s", -length(0 + @$rows), $pos++, $val_f
+            if $self->{with_rank_numbers};
+        print encode_utf8 wrap $val_f,
+            " " x length($val_f),
+            join(", ", $Collate->sort(keys %{ $hash{$val} })) . "\n";
+    }
+}
+
+sub _filter_sort_who {
+    my ($self, $hash)= @_;
+    my @who;
+    foreach my $name ($Collate->sort(keys %$hash)) {
+        $name =~ s/\s+<.*\z//;
+        $name =~ s/\s+\@.*\z//;
+        push @who, $name if length $name and lc($name) ne "unknown";
+    }
+    return @who;
+}
+
+sub print_who {
+    my ($self)= @_;
+    my @who= $self->_filter_sort_who($self->{who_stats});
+    print encode_utf8 wrap "", "", join(", ", @who) . ".\n";
+}
+
+1;
+__END__
+
+=head1 NAME
+
+Porting::updateAUTHORS - Library to automatically update AUTHORS and .mailmap based on commit data.
+
+=head1 SYNOPSIS
+
+    use Porting::updateAUTHORS;
+
+    my $updater= Porting::updateAUTHORS->new(
+        authors_file => "AUTHORS",
+        mailmap_file => ".mailmap",
+        exclude_file => "Porting/exclude_contrib.txt",
+    );
+    $updater->read_and_update();
+
+=head1 DESCRIPTION
+
+This the brain of the F<Porting/updateAUTHORS.pl> script. It is expected
+to be used B<from> that script and B<by> that script. Most features and
+options are documented in the F<Porting/updateAUTHORS.pl> and are not
+explicitly documented here, read the F<Porting/updateAUTHORS.pl> manpage
+for more details.
+
+=head1 METHODS
+
+Porting::updateAUTHORS uses OO as way of managing its internal state.
+This documents the public methods it exposes.
+
+=over 4
+
+=item add_new_mailmap_entries()
+
+If any additions were identified while reading the commits this will
+inject them into the mailmap_hash so they can be written out. Returns a
+count of additions found.
+
+=item check_fix_mailmap_hash()
+
+Analyzes the data contained the in the .mailmap file and applies any
+automated fixes which are required and which it can automatically
+perform. Returns a hash of adjusted entries and a hash with additional
+metadata about the mailmap entries.
+
+=item new(%opts)
+
+Create a new object. Required parameters are
+
+    authors_file
+    mailmap_file
+    exclude_file
+
+Other supported parameters are as follows:
+
+    verbose
+    commit_range
+
+this list is not exhaustive. See the code implementing the main()
+function in F<Porting/updateAUTHORS.pl> for an exhaustive list.
+
+=item parse_orig_mailmap_hash()
+
+Takes a mailmap_hash and parses it and returns it as an array of array
+records with the contents:
+
+    [ $preferred_name, $preferred_email,
+      $other_name, $other_email,
+      $line_num ]
+
+=item read_and_update()
+
+Wraps the other functions in this library and implements the logic and
+intent of this tool. Takes two arguments, the authors file name, and the
+mailmap file name. Returns nothing but may modify the AUTHORS file
+or the .mailmap file. Requires that both files are editable.
+
+=item read_commit_log()
+
+Read the commit log specified by the property "commit_range" and find
+any new names it contains.
+
+Normally used via C<read_and_update> and not called directly.
+
+=item read_authors_file()
+
+Read the AUTHORS file into the object, and return data about it.
+
+Normally used via C<read_and_update> and not called directly.
+
+=item read_mailmap_file()
+
+Read the .mailmap file into the object and return data about it.
+
+Normally used via C<read_and_update> and not called directly.
+
+=item read_exclusion_file()
+
+Read the exclusion file into the object and return data about it.
+
+Normally used via C<read_and_update> and not called directly.
+
+=item update_authors_file()
+
+Write out an updated AUTHORS file atomically if it has changed,
+returns 0 if the file was actually updated, 1 if it was not.
+
+Normally used via C<read_and_update> and not called directly.
+
+=item update_mailmap_file()
+
+Write out an updated .mailmap file atomically if it has changed,
+returns 0 if the file was actually updated, 1 if it was not.
+
+Normally used via C<read_and_update> and not called directly.
+
+=item update_exclusion_file()
+
+Write out an updated exclusion file atomically if it has changed,
+returns 0 if the file was actually update, 1 if it was not.
+
+Normally used via C<read_and_update> and not called directly.
+
+=back
+
+=head1 TODO
+
+More documentation and testing.
+
+=head1 SEE ALSO
+
+F<Porting/checkAUTHORS.pl>
+
+=head1 AUTHOR
+
+Yves Orton <demerphq@gmail.com>
+
+=cut
Index: gnu/usr.bin/perl/Porting/vote_admin_guide.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/Porting/vote_admin_guide.pod,v
diff -u -p -a -u -p -r1.1.1.1 vote_admin_guide.pod
--- gnu/usr.bin/perl/Porting/vote_admin_guide.pod	15 Feb 2023 01:33:11 -0000	1.1.1.1
+++ gnu/usr.bin/perl/Porting/vote_admin_guide.pod	21 Feb 2024 15:47:00 -0000
@@ -172,11 +172,11 @@ edit the Perl Core mailing list admins t
 
 =item *
 
-update the GitHub "steering" team to match incoming Steering Council
+update the L<GitHub "steering" team|https://github.com/orgs/Perl/teams/perl-steering-council/members> to match incoming Steering Council
 
 =item *
 
-request that the Perl NOC update the perl-security list to include all incoming
+request that the L<Perl NOC|https://noc.perl.org> update the perl-security list to include all incoming
 Steering Council members (without removing outgoing members; the incoming Steering
 Council will decide whether this is needed)
 
Index: gnu/usr.bin/perl/amigaos4/amigaio.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/amigaos4/amigaio.c,v
diff -u -p -a -u -p -r1.4 amigaio.c
--- gnu/usr.bin/perl/amigaos4/amigaio.c	15 Feb 2023 01:36:14 -0000	1.4
+++ gnu/usr.bin/perl/amigaos4/amigaio.c	21 Feb 2024 15:47:00 -0000
@@ -249,7 +249,7 @@ PerlIO *Perl_my_popen(pTHX_ const char *
         }
 
         /* Our new process is running and will close it streams etc
-         * once its done. All we need to is open the pipe via stdio
+         * once it's done. All we need to is open the pipe via stdio
          */
 
         return result;
Index: gnu/usr.bin/perl/cpan/AutoLoader/t/02AutoSplit.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/AutoLoader/t/02AutoSplit.t,v
diff -u -p -a -u -p -r1.1.1.1 02AutoSplit.t
--- gnu/usr.bin/perl/cpan/AutoLoader/t/02AutoSplit.t	24 Sep 2010 14:49:05 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/AutoLoader/t/02AutoSplit.t	21 Feb 2024 15:47:01 -0000
@@ -149,8 +149,12 @@ foreach (@tests) {
 
   if ($args{Files}) {
     $args{Files} =~ s!/!:!gs if $^O eq 'MacOS';
+    $args{Files} =~ s!\\!/!g if $^O eq 'MSWin32';
     my (%missing, %got);
-    find (sub {$got{$File::Find::name}++ unless -d $_}, $dir);
+    find(
+        sub { (my $f = $File::Find::name) =~ s!\\!/!g; $got{$f}++ unless -d $_ },
+        $dir
+    );
     foreach (split /\n/, $args{Files}) {
       next if /^#/;
       $_ = lc($_) if $Is_VMS_lc;
Index: gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm,v
diff -u -p -a -u -p -r1.7 CPAN.pm
--- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm	15 Feb 2023 01:36:15 -0000	1.7
+++ gnu/usr.bin/perl/cpan/CPAN/lib/CPAN.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 # vim: ts=4 sts=4 sw=4:
 use strict;
 package CPAN;
-$CPAN::VERSION = '2.33';
+$CPAN::VERSION = '2.36';
 $CPAN::VERSION =~ s/_//;
 
 # we need to run chdir all over and we would get at wrong libraries
Index: gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm,v
diff -u -p -a -u -p -r1.7 Distribution.pm
--- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm	15 Feb 2023 01:36:15 -0000	1.7
+++ gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/Distribution.pm	21 Feb 2024 15:47:00 -0000
@@ -9,7 +9,7 @@ use File::Path ();
 use POSIX ":sys_wait_h"; 
 @CPAN::Distribution::ISA = qw(CPAN::InfoObj);
 use vars qw($VERSION);
-$VERSION = "2.33";
+$VERSION = "2.34";
 
 my $run_allow_installing_within_test = 1; # boolean; either in test or in install, there is no third option
 
@@ -2950,7 +2950,7 @@ sub prereqs_for_slot {
         }
         if (-f "Build.PL"
             && ! -f File::Spec->catfile($self->{build_dir},"Makefile.PL")
-            && ! $merged->requirements_for_module("Module::Build")
+            && ! @{[ $merged->required_modules ]}
             && ! $CPAN::META->has_inst("Module::Build")
            ) {
             $CPAN::Frontend->mywarn(
Index: gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HTTP/Client.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HTTP/Client.pm,v
diff -u -p -a -u -p -r1.3 Client.pm
--- gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HTTP/Client.pm	5 Feb 2017 00:31:55 -0000	1.3
+++ gnu/usr.bin/perl/cpan/CPAN/lib/CPAN/HTTP/Client.pm	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@ use vars qw(@ISA);
 use CPAN::HTTP::Credentials;
 use HTTP::Tiny 0.005;
 
-$CPAN::HTTP::Client::VERSION = $CPAN::HTTP::Client::VERSION = "1.9601";
+$CPAN::HTTP::Client::VERSION = $CPAN::HTTP::Client::VERSION = "1.9602";
 
 # CPAN::HTTP::Client is adapted from parts of cpanm by Tatsuhiko Miyagawa
 # and parts of LWP by Gisle Aas
@@ -32,6 +32,7 @@ sub mirror {
 
     my $want_proxy = $self->_want_proxy($uri);
     my $http = HTTP::Tiny->new(
+        verify_SSL => 1,
         $want_proxy ? (proxy => $self->{proxy}) : ()
     );
 
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs,v
diff -u -p -a -u -p -r1.5 Bzip2.xs
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs	15 Feb 2023 01:36:15 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/Bzip2.xs	21 Feb 2024 15:47:00 -0000
@@ -391,7 +391,7 @@ new(className, appendOut=1, blockSize100
         SV* obj = sv_2mortal(newSViv(PTR2IV(s))) ;
         XPUSHs(obj);
     }
-    if (GIMME == G_ARRAY) {
+    if (GIMME_V == G_ARRAY) {
         SV * sv = sv_2mortal(newSViv(err)) ;
 	setDUALstatus(sv, err);
         XPUSHs(sv) ;
@@ -447,7 +447,7 @@ new(className, appendOut=1 , consume=1, 
         SV* obj = sv_2mortal(newSViv(PTR2IV(s))) ;
         XPUSHs(obj);
     }
-    if (GIMME == G_ARRAY) {
+    if (GIMME_V == G_ARRAY) {
         SV * sv = sv_2mortal(newSViv(err)) ;
 	setDUALstatus(sv, err);
         XPUSHs(sv) ;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/blocksort.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/blocksort.c,v
diff -u -p -a -u -p -r1.4 blocksort.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/blocksort.c	9 Apr 2020 01:32:13 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/blocksort.c	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
    bzip2/libbzip2 version 1.0.8 of 13 July 2019
    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
 
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the
    README file.
 
    This program is released under the terms of the license contained
@@ -27,11 +27,11 @@
 /*---------------------------------------------*/
 
 /*---------------------------------------------*/
-static 
+static
 __inline__
-void fallbackSimpleSort ( UInt32* fmap, 
-                          UInt32* eclass, 
-                          Int32   lo, 
+void fallbackSimpleSort ( UInt32* fmap,
+                          UInt32* eclass,
+                          Int32   lo,
                           Int32   hi )
 {
    Int32 i, j, tmp;
@@ -90,9 +90,9 @@ void fallbackSimpleSort ( UInt32* fmap, 
 
 
 static
-void fallbackQSort3 ( UInt32* fmap, 
+void fallbackQSort3 ( UInt32* fmap,
                       UInt32* eclass,
-                      Int32   loSt, 
+                      Int32   loSt,
                       Int32   hiSt )
 {
    Int32 unLo, unHi, ltLo, gtHi, n, m;
@@ -117,9 +117,9 @@ void fallbackQSort3 ( UInt32* fmap, 
       }
 
       /* Random partitioning.  Median of 3 sometimes fails to
-         avoid bad cases.  Median of 9 seems to help but 
+         avoid bad cases.  Median of 9 seems to help but
          looks rather expensive.  This too seems to work but
-         is cheaper.  Guidance for the magic constants 
+         is cheaper.  Guidance for the magic constants
          7621 and 32768 is taken from Sedgewick's algorithms
          book, chapter 35.
       */
@@ -136,10 +136,10 @@ void fallbackQSort3 ( UInt32* fmap, 
          while (1) {
             if (unLo > unHi) break;
             n = (Int32)eclass[fmap[unLo]] - (Int32)med;
-            if (n == 0) { 
-               fswap(fmap[unLo], fmap[ltLo]); 
-               ltLo++; unLo++; 
-               continue; 
+            if (n == 0) {
+               fswap(fmap[unLo], fmap[ltLo]);
+               ltLo++; unLo++;
+               continue;
             };
             if (n > 0) break;
             unLo++;
@@ -147,10 +147,10 @@ void fallbackQSort3 ( UInt32* fmap, 
          while (1) {
             if (unLo > unHi) break;
             n = (Int32)eclass[fmap[unHi]] - (Int32)med;
-            if (n == 0) { 
-               fswap(fmap[unHi], fmap[gtHi]); 
-               gtHi--; unHi--; 
-               continue; 
+            if (n == 0) {
+               fswap(fmap[unHi], fmap[gtHi]);
+               gtHi--; unHi--;
+               continue;
             };
             if (n < 0) break;
             unHi--;
@@ -209,8 +209,8 @@ void fallbackQSort3 ( UInt32* fmap, 
 #define UNALIGNED_BH(zz)  ((zz) & 0x01f)
 
 static
-void fallbackSort ( UInt32* fmap, 
-                    UInt32* eclass, 
+void fallbackSort ( UInt32* fmap,
+                    UInt32* eclass,
                     UInt32* bhtab,
                     Int32   nblock,
                     Int32   verb )
@@ -251,7 +251,7 @@ void fallbackSort ( UInt32* fmap, 
    --*/
 
    /*-- set sentinel bits for block-end detection --*/
-   for (i = 0; i < 32; i++) { 
+   for (i = 0; i < 32; i++) {
       SET_BH(nblock + 2*i);
       CLEAR_BH(nblock + 2*i + 1);
    }
@@ -260,7 +260,7 @@ void fallbackSort ( UInt32* fmap, 
    H = 1;
    while (1) {
 
-      if (verb >= 4) 
+      if (verb >= 4)
          VPrintf1 ( "        depth %6d has ", H );
 
       j = 0;
@@ -305,14 +305,14 @@ void fallbackSort ( UInt32* fmap, 
          }
       }
 
-      if (verb >= 4) 
+      if (verb >= 4)
          VPrintf1 ( "%6d unresolved strings\n", nNotDone );
 
       H *= 2;
       if (H > nblock || nNotDone == 0) break;
    }
 
-   /*-- 
+   /*--
       Reconstruct the original block in
       eclass8 [0 .. nblock-1], since the
       previous phase destroyed it.
@@ -344,9 +344,9 @@ void fallbackSort ( UInt32* fmap, 
 /*---------------------------------------------*/
 static
 __inline__
-Bool mainGtU ( UInt32  i1, 
+Bool mainGtU ( UInt32  i1,
                UInt32  i2,
-               UChar*  block, 
+               UChar*  block,
                UInt16* quadrant,
                UInt32  nblock,
                Int32*  budget )
@@ -486,8 +486,8 @@ void mainSimpleSort ( UInt32* ptr,
                       UChar*  block,
                       UInt16* quadrant,
                       Int32   nblock,
-                      Int32   lo, 
-                      Int32   hi, 
+                      Int32   lo,
+                      Int32   hi,
                       Int32   d,
                       Int32*  budget )
 {
@@ -511,8 +511,8 @@ void mainSimpleSort ( UInt32* ptr,
          if (i > hi) break;
          v = ptr[i];
          j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+         while ( mainGtU (
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget
                  ) ) {
             ptr[j] = ptr[j-h];
             j = j - h;
@@ -525,8 +525,8 @@ void mainSimpleSort ( UInt32* ptr,
          if (i > hi) break;
          v = ptr[i];
          j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+         while ( mainGtU (
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget
                  ) ) {
             ptr[j] = ptr[j-h];
             j = j - h;
@@ -539,8 +539,8 @@ void mainSimpleSort ( UInt32* ptr,
          if (i > hi) break;
          v = ptr[i];
          j = i;
-         while ( mainGtU ( 
-                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+         while ( mainGtU (
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget
                  ) ) {
             ptr[j] = ptr[j-h];
             j = j - h;
@@ -578,13 +578,13 @@ void mainSimpleSort ( UInt32* ptr,
    }                                  \
 }
 
-static 
+static
 __inline__
 UChar mmed3 ( UChar a, UChar b, UChar c )
 {
    UChar t;
    if (a > b) { t = a; a = b; b = t; };
-   if (b > c) { 
+   if (b > c) {
       b = c;
       if (a > b) b = a;
    }
@@ -622,8 +622,8 @@ void mainQSort3 ( UInt32* ptr,
                   UChar*  block,
                   UInt16* quadrant,
                   Int32   nblock,
-                  Int32   loSt, 
-                  Int32   hiSt, 
+                  Int32   loSt,
+                  Int32   hiSt,
                   Int32   dSt,
                   Int32*  budget )
 {
@@ -646,14 +646,14 @@ void mainQSort3 ( UInt32* ptr,
       AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
 
       mpop ( lo, hi, d );
-      if (hi - lo < MAIN_QSORT_SMALL_THRESH || 
+      if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
           d > MAIN_QSORT_DEPTH_THRESH) {
          mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
          if (*budget < 0) return;
          continue;
       }
 
-      med = (Int32) 
+      med = (Int32)
             mmed3 ( block[ptr[ lo         ]+d],
                     block[ptr[ hi         ]+d],
                     block[ptr[ (lo+hi)>>1 ]+d] );
@@ -665,9 +665,9 @@ void mainQSort3 ( UInt32* ptr,
          while (True) {
             if (unLo > unHi) break;
             n = ((Int32)block[ptr[unLo]+d]) - med;
-            if (n == 0) { 
-               mswap(ptr[unLo], ptr[ltLo]); 
-               ltLo++; unLo++; continue; 
+            if (n == 0) {
+               mswap(ptr[unLo], ptr[ltLo]);
+               ltLo++; unLo++; continue;
             };
             if (n >  0) break;
             unLo++;
@@ -675,9 +675,9 @@ void mainQSort3 ( UInt32* ptr,
          while (True) {
             if (unLo > unHi) break;
             n = ((Int32)block[ptr[unHi]+d]) - med;
-            if (n == 0) { 
-               mswap(ptr[unHi], ptr[gtHi]); 
-               gtHi--; unHi--; continue; 
+            if (n == 0) {
+               mswap(ptr[unHi], ptr[gtHi]);
+               gtHi--; unHi--; continue;
             };
             if (n <  0) break;
             unHi--;
@@ -748,9 +748,9 @@ void mainQSort3 ( UInt32* ptr,
 #define CLEARMASK (~(SETMASK))
 
 static
-void mainSort ( UInt32* ptr, 
+void mainSort ( UInt32* ptr,
                 UChar*  block,
-                UInt16* quadrant, 
+                UInt16* quadrant,
                 UInt32* ftab,
                 Int32   nblock,
                 Int32   verb,
@@ -878,7 +878,7 @@ void mainSort ( UInt32* ptr, 
       /*--
          Step 1:
          Complete the big bucket [ss] by quicksorting
-         any unsorted small buckets [ss, j], for j != ss.  
+         any unsorted small buckets [ss, j], for j != ss.
          Hopefully previous pointer-scanning phases have already
          completed many of the small buckets [ss, j], so
          we don't have to sort them at all.
@@ -894,10 +894,10 @@ void mainSort ( UInt32* ptr, 
                      VPrintf4 ( "        qsort [0x%x, 0x%x]   "
                                 "done %d   this %d\n",
                                 ss, j, numQSorted, hi - lo + 1 );
-                  mainQSort3 ( 
-                     ptr, block, quadrant, nblock, 
-                     lo, hi, BZ_N_RADIX, budget 
-                  );   
+                  mainQSort3 (
+                     ptr, block, quadrant, nblock,
+                     lo, hi, BZ_N_RADIX, budget
+                  );
                   numQSorted += (hi - lo + 1);
                   if (*budget < 0) return;
                }
@@ -929,16 +929,16 @@ void mainSort ( UInt32* ptr, 
          for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
             k = ptr[j]-1; if (k < 0) k += nblock;
             c1 = block[k];
-            if (!bigDone[c1]) 
+            if (!bigDone[c1])
                ptr[ copyEnd[c1]-- ] = k;
          }
       }
 
       AssertH ( (copyStart[ss]-1 == copyEnd[ss])
-                || 
+                ||
                 /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
-                   Necessity for this case is demonstrated by compressing 
-                   a sequence of approximately 48.5 million of character 
+                   Necessity for this case is demonstrated by compressing
+                   a sequence of approximately 48.5 million of character
                    251; 1.0.0/1.0.1 will then die here. */
                 (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
                 1007 )
@@ -955,7 +955,7 @@ void mainSort ( UInt32* ptr, 
          updating for the last bucket is pointless.
 
          The quadrant array provides a way to incrementally
-         cache sort orderings, as they appear, so as to 
+         cache sort orderings, as they appear, so as to
          make subsequent comparisons in fullGtU() complete
          faster.  For repetitive blocks this makes a big
          difference (but not big enough to be able to avoid
@@ -965,9 +965,9 @@ void mainSort ( UInt32* ptr, 
 
             for 0 <= i < nblock and 0 <= j <= nblock
 
-            if block[i] != block[j], 
+            if block[i] != block[j],
 
-               then the relative values of quadrant[i] and 
+               then the relative values of quadrant[i] and
                     quadrant[j] are meaningless.
 
                else {
@@ -1030,7 +1030,7 @@ void mainSort ( UInt32* ptr, 
 */
 void BZ2_blockSort ( EState* s )
 {
-   UInt32* ptr    = s->ptr; 
+   UInt32* ptr    = s->ptr;
    UChar*  block  = s->block;
    UInt32* ftab   = s->ftab;
    Int32   nblock = s->nblock;
@@ -1054,8 +1054,8 @@ void BZ2_blockSort ( EState* s )
       quadrant = (UInt16*)(&(block[i]));
 
       /* (wfact-1) / 3 puts the default-factor-30
-         transition point at very roughly the same place as 
-         with v0.1 and v0.9.0.  
+         transition point at very roughly the same place as
+         with v0.1 and v0.9.0.
          Not that it particularly matters any more, since the
          resulting compressed stream is now the same regardless
          of whether or not we use the main sort or fallback sort.
@@ -1066,14 +1066,14 @@ void BZ2_blockSort ( EState* s )
       budget = budgetInit;
 
       mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
-      if (verb >= 3) 
+      if (verb >= 3)
          VPrintf3 ( "      %d work, %d block, ratio %5.2f\n",
                     budgetInit - budget,
-                    nblock, 
+                    nblock,
                     (float)(budgetInit - budget) /
-                    (float)(nblock==0 ? 1 : nblock) ); 
+                    (float)(nblock==0 ? 1 : nblock) );
       if (budget < 0) {
-         if (verb >= 2) 
+         if (verb >= 2)
             VPrintf0 ( "    too repetitive; using fallback"
                        " sorting algorithm\n" );
          fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c,v
diff -u -p -a -u -p -r1.6 bzlib.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c	15 Feb 2023 01:36:15 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c	21 Feb 2024 15:47:00 -0000
@@ -1415,7 +1415,7 @@ BZFILE * bzopen_or_bzdopen
       case 's':
          smallMode = 1; break;
       default:
-         if (isdigit((int)(*mode))) {
+         if (isdigit((unsigned char)(*mode))) {
             blockSize100k = *mode-BZ_HDR_0;
          }
       }
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c,v
diff -u -p -a -u -p -r1.7 compress.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c	15 Feb 2023 01:36:15 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/compress.c	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
    bzip2/libbzip2 version 1.0.8 of 13 July 2019
    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
 
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the
    README file.
 
    This program is released under the terms of the license contained
@@ -22,7 +22,7 @@
 /* CHANGES
     0.9.0    -- original version.
     0.9.0a/b -- no changes in this file.
-    0.9.0c   -- changed setting of nGroups in sendMTFValues() 
+    0.9.0c   -- changed setting of nGroups in sendMTFValues()
                 so as to do a bit better on small files
 */
 
@@ -125,11 +125,11 @@ void generateMTFValues ( EState* s )
    Int32   wr;
    Int32   EOB;
 
-   /* 
+   /*
       After sorting (eg, here),
          s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
          and
-         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] 
+         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ]
          holds the original block data.
 
       The first thing to do is generate the MTF values,
@@ -144,7 +144,7 @@ void generateMTFValues ( EState* s )
          (UChar*) (&((UChar*)s->arr2)[s->nblock])
 
       These storage aliases are set up in bzCompressInit(),
-      except for the last one, which is arranged in 
+      except for the last one, which is arranged in
       compressBlock().
    */
    UInt32* ptr   = s->ptr;
@@ -167,7 +167,7 @@ void generateMTFValues ( EState* s )
       ll_i = s->unseqToSeq[block[j]];
       AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
 
-      if (yy[0] == ll_i) { 
+      if (yy[0] == ll_i) {
          zPend++;
       } else {
 
@@ -175,11 +175,11 @@ void generateMTFValues ( EState* s )
             zPend--;
             while (True) {
                if (zPend & 1) {
-                  mtfv[wr] = BZ_RUNB; wr++; 
-                  s->mtfFreq[BZ_RUNB]++; 
+                  mtfv[wr] = BZ_RUNB; wr++;
+                  s->mtfFreq[BZ_RUNB]++;
                } else {
-                  mtfv[wr] = BZ_RUNA; wr++; 
-                  s->mtfFreq[BZ_RUNA]++; 
+                  mtfv[wr] = BZ_RUNA; wr++;
+                  s->mtfFreq[BZ_RUNA]++;
                }
                if (zPend < 2) break;
                zPend = (zPend - 2) / 2;
@@ -187,15 +187,15 @@ void generateMTFValues ( EState* s )
             zPend = 0;
          }
          {
-            register UChar  rtmp;
-            register UChar* ryy_j;
-            register UChar  rll_i;
+            UChar  rtmp;
+            UChar* ryy_j;
+            UChar  rll_i;
             rtmp  = yy[1];
             yy[1] = yy[0];
             ryy_j = &(yy[1]);
             rll_i = ll_i;
             while ( rll_i != rtmp ) {
-               register UChar rtmp2;
+               UChar rtmp2;
                ryy_j++;
                rtmp2  = rtmp;
                rtmp   = *ryy_j;
@@ -213,11 +213,11 @@ void generateMTFValues ( EState* s )
       zPend--;
       while (True) {
          if (zPend & 1) {
-            mtfv[wr] = BZ_RUNB; wr++; 
-            s->mtfFreq[BZ_RUNB]++; 
+            mtfv[wr] = BZ_RUNB; wr++;
+            s->mtfFreq[BZ_RUNB]++;
          } else {
-            mtfv[wr] = BZ_RUNA; wr++; 
-            s->mtfFreq[BZ_RUNA]++; 
+            mtfv[wr] = BZ_RUNA; wr++;
+            s->mtfFreq[BZ_RUNA]++;
          }
          if (zPend < 2) break;
          zPend = (zPend - 2) / 2;
@@ -261,7 +261,7 @@ void sendMTFValues ( EState* s )
    ((void)nBytes); /* Silence variable ‘nBytes’ set but not used warning */
    if (s->verbosity >= 3)
       VPrintf3( "      %d in block, %d after MTF & 1-2 coding, "
-                "%d+2 syms in use\n", 
+                "%d+2 syms in use\n",
                 s->nblock, s->nMTF, s->nInUse );
 
    alphaSize = s->nInUse+2;
@@ -278,7 +278,7 @@ void sendMTFValues ( EState* s )
                        nGroups = 6;
 
    /*--- Generate an initial set of coding tables ---*/
-   { 
+   {
       Int32 nPart, remF, tFreq, aFreq;
 
       nPart = nGroups;
@@ -293,8 +293,8 @@ void sendMTFValues ( EState* s )
             aFreq += s->mtfFreq[ge];
          }
 
-         if (ge > gs 
-             && nPart != nGroups && nPart != 1 
+         if (ge > gs
+             && nPart != nGroups && nPart != 1
              && ((nGroups-nPart) % 2 == 1)) {
             aFreq -= s->mtfFreq[ge];
             ge--;
@@ -303,21 +303,21 @@ void sendMTFValues ( EState* s )
          if (s->verbosity >= 3)
             VPrintf5( "      initial group %d, [%d .. %d], "
                       "has %d syms (%4.1f%%)\n",
-                      nPart, gs, ge, aFreq, 
+                      nPart, gs, ge, aFreq,
                       (100.0 * (float)aFreq) / (float)(s->nMTF) );
- 
+
          for (v = 0; v < alphaSize; v++)
-            if (v >= gs && v <= ge) 
+            if (v >= gs && v <= ge)
                s->len[nPart-1][v] = BZ_LESSER_ICOST; else
                s->len[nPart-1][v] = BZ_GREATER_ICOST;
- 
+
          nPart--;
          gs = ge+1;
          remF -= aFreq;
       }
    }
 
-   /*--- 
+   /*---
       Iterate up to BZ_N_ITERS times to improve the tables.
    ---*/
    for (iter = 0; iter < BZ_N_ITERS; iter++) {
@@ -330,7 +330,7 @@ void sendMTFValues ( EState* s )
 
       /*---
         Set up an auxiliary length table which is used to fast-track
-	the common case (nGroups == 6). 
+	the common case (nGroups == 6).
       ---*/
       if (nGroups == 6) {
          for (v = 0; v < alphaSize; v++) {
@@ -347,10 +347,10 @@ void sendMTFValues ( EState* s )
 
          /*--- Set group start & end marks. --*/
          if (gs >= s->nMTF) break;
-         ge = gs + BZ_G_SIZE - 1; 
+         ge = gs + BZ_G_SIZE - 1;
          if (ge >= s->nMTF) ge = s->nMTF-1;
 
-         /*-- 
+         /*--
             Calculate the cost of this group as coded
             by each of the coding tables.
          --*/
@@ -358,8 +358,8 @@ void sendMTFValues ( EState* s )
 
          if (nGroups == 6 && 50 == ge-gs+1) {
             /*--- fast track the common case ---*/
-            register UInt32 cost01, cost23, cost45;
-            register UInt16 icv;
+            UInt32 cost01, cost23, cost45;
+            UInt16 icv;
             cost01 = cost23 = cost45 = 0;
 
 #           define BZ_ITER(nn)                \
@@ -387,13 +387,13 @@ void sendMTFValues ( EState* s )
 
          } else {
 	    /*--- slow version which correctly handles all situations ---*/
-            for (i = gs; i <= ge; i++) { 
+            for (i = gs; i <= ge; i++) {
                UInt16 icv = mtfv[i];
                for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
             }
          }
- 
-         /*-- 
+
+         /*--
             Find the coding table which is best for this group,
             and record its identity in the selector table.
          --*/
@@ -405,7 +405,7 @@ void sendMTFValues ( EState* s )
          s->selector[nSelectors] = bt;
          nSelectors++;
 
-         /*-- 
+         /*--
             Increment the symbol frequencies for the selected table.
           --*/
          if (nGroups == 6 && 50 == ge-gs+1) {
@@ -435,7 +435,7 @@ void sendMTFValues ( EState* s )
          gs = ge+1;
       }
       if (s->verbosity >= 3) {
-         VPrintf2 ( "      pass %d: size is %d, grp uses are ", 
+         VPrintf2 ( "      pass %d: size is %d, grp uses are ",
                    iter+1, totc/8 );
          for (t = 0; t < nGroups; t++)
             VPrintf1 ( "%d ", fave[t] );
@@ -445,10 +445,10 @@ void sendMTFValues ( EState* s )
       /*--
         Recompute the tables based on the accumulated frequencies.
       --*/
-      /* maxLen was changed from 20 to 17 in bzip2-1.0.3.  See 
+      /* maxLen was changed from 20 to 17 in bzip2-1.0.3.  See
          comment in huffman.c for details. */
       for (t = 0; t < nGroups; t++)
-         BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), 
+         BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]),
                                  alphaSize, 17 /*20*/ );
    }
 
@@ -488,19 +488,19 @@ void sendMTFValues ( EState* s )
       }
       AssertH ( !(maxLen > 17 /*20*/ ), 3004 );
       AssertH ( !(minLen < 1),  3005 );
-      BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), 
+      BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]),
                           minLen, maxLen, alphaSize );
    }
 
    /*--- Transmit the mapping table. ---*/
-   { 
+   {
       Bool inUse16[16];
       for (i = 0; i < 16; i++) {
           inUse16[i] = False;
           for (j = 0; j < 16; j++)
              if (s->inUse[i * 16 + j]) inUse16[i] = True;
       }
-     
+
       nBytes = s->numZ;
       for (i = 0; i < 16; i++)
          if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
@@ -511,7 +511,7 @@ void sendMTFValues ( EState* s )
                if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
             }
 
-      if (s->verbosity >= 3) 
+      if (s->verbosity >= 3)
          VPrintf1( "      bytes: mapping %d, ", s->numZ-nBytes );
    }
 
@@ -519,7 +519,7 @@ void sendMTFValues ( EState* s )
    nBytes = s->numZ;
    bsW ( s, 3, nGroups );
    bsW ( s, 15, nSelectors );
-   for (i = 0; i < nSelectors; i++) { 
+   for (i = 0; i < nSelectors; i++) {
       for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
       bsW(s,1,0);
    }
@@ -548,14 +548,14 @@ void sendMTFValues ( EState* s )
    gs = 0;
    while (True) {
       if (gs >= s->nMTF) break;
-      ge = gs + BZ_G_SIZE - 1; 
+      ge = gs + BZ_G_SIZE - 1;
       if (ge >= s->nMTF) ge = s->nMTF-1;
       AssertH ( s->selector[selCtr] < nGroups, 3006 );
 
       if (nGroups == 6 && 50 == ge-gs+1) {
             /*--- fast track the common case ---*/
             UInt16 mtfv_i;
-            UChar* s_len_sel_selCtr 
+            UChar* s_len_sel_selCtr
                = &(s->len[s->selector[selCtr]][0]);
             Int32* s_code_sel_selCtr
                = &(s->code[s->selector[selCtr]][0]);
@@ -582,7 +582,7 @@ void sendMTFValues ( EState* s )
       } else {
 	 /*--- slow version which correctly handles all situations ---*/
          for (i = gs; i <= ge; i++) {
-            bsW ( s, 
+            bsW ( s,
                   s->len  [s->selector[selCtr]] [mtfv[i]],
                   s->code [s->selector[selCtr]] [mtfv[i]] );
          }
@@ -637,8 +637,8 @@ void BZ2_compressBlock ( EState* s, Bool
       /*-- Now the block's CRC, so it is in a known place. --*/
       bsPutUInt32 ( s, s->blockCRC );
 
-      /*-- 
-         Now a single bit indicating (non-)randomisation. 
+      /*--
+         Now a single bit indicating (non-)randomisation.
          As of version 0.9.5, we use a better sorting algorithm
          which makes randomisation unnecessary.  So always set
          the randomised bit to 'no'.  Of course, the decoder
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/crctable.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/crctable.c,v
diff -u -p -a -u -p -r1.4 crctable.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/crctable.c	9 Apr 2020 01:32:13 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/crctable.c	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
    bzip2/libbzip2 version 1.0.8 of 13 July 2019
    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
 
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the
    README file.
 
    This program is released under the terms of the license contained
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c,v
diff -u -p -a -u -p -r1.4 decompress.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c	1 Mar 2021 23:19:45 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
    bzip2/libbzip2 version 1.0.8 of 13 July 2019
    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
 
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the
    README file.
 
    This program is released under the terms of the license contained
@@ -128,7 +128,7 @@ Int32 BZ2_decompress ( DState* s )
    Int32  N;
    Int32  curr;
    Int32  zt;
-   Int32  zn; 
+   Int32  zn;
    Int32  zvec;
    Int32  zj;
    Int32  gSel;
@@ -182,7 +182,7 @@ Int32 BZ2_decompress ( DState* s )
    N           = s->save_N;
    curr        = s->save_curr;
    zt          = s->save_zt;
-   zn          = s->save_zn; 
+   zn          = s->save_zn;
    zvec        = s->save_zvec;
    zj          = s->save_zj;
    gSel        = s->save_gSel;
@@ -205,14 +205,14 @@ Int32 BZ2_decompress ( DState* s )
       if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC);
 
       GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
-      if (s->blockSize100k < (BZ_HDR_0 + 1) || 
+      if (s->blockSize100k < (BZ_HDR_0 + 1) ||
           s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC);
       s->blockSize100k -= BZ_HDR_0;
 
       if (s->smallDecompress) {
          s->ll16 = (UInt16*) BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
-         s->ll4  = (UChar*) BZALLOC( 
-                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) 
+         s->ll4  = (UChar*) BZALLOC(
+                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar)
                    );
          if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
       } else {
@@ -238,7 +238,7 @@ Int32 BZ2_decompress ( DState* s )
       s->currBlockNo++;
       if (s->verbosity >= 2)
          VPrintf1 ( "\n    [%d: huff+mtf ", s->currBlockNo );
- 
+
       s->storedBlockCRC = 0;
       GET_UCHAR(BZ_X_BCRC_1, uc);
       s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
@@ -261,14 +261,14 @@ Int32 BZ2_decompress ( DState* s )
 
       if (s->origPtr < 0)
          RETURN(BZ_DATA_ERROR);
-      if (s->origPtr > 10 + 100000*s->blockSize100k) 
+      if (s->origPtr > 10 + 100000*s->blockSize100k)
          RETURN(BZ_DATA_ERROR);
 
       /*--- Receive the mapping table ---*/
       for (i = 0; i < 16; i++) {
          GET_BIT(BZ_X_MAPPING_1, uc);
-         if (uc == 1) 
-            s->inUse16[i] = True; else 
+         if (uc == 1)
+            s->inUse16[i] = True; else
             s->inUse16[i] = False;
       }
 
@@ -310,7 +310,7 @@ Int32 BZ2_decompress ( DState* s )
       {
          UChar pos[BZ_N_GROUPS], tmp, v;
          for (v = 0; v < nGroups; v++) pos[v] = v;
-   
+
          for (i = 0; i < nSelectors; i++) {
             v = s->selectorMtf[i];
             tmp = pos[v];
@@ -343,10 +343,10 @@ Int32 BZ2_decompress ( DState* s )
             if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
             if (s->len[t][i] < minLen) minLen = s->len[t][i];
          }
-         BZ2_hbCreateDecodeTables ( 
-            &(s->limit[t][0]), 
-            &(s->base[t][0]), 
-            &(s->perm[t][0]), 
+         BZ2_hbCreateDecodeTables (
+            &(s->limit[t][0]),
+            &(s->base[t][0]),
+            &(s->perm[t][0]),
             &(s->len[t][0]),
             minLen, maxLen, alphaSize
          );
@@ -445,23 +445,23 @@ Int32 BZ2_decompress ( DState* s )
                      s->mtfa[(z)-3] = s->mtfa[(z)-4];
                      nn -= 4;
                   }
-                  while (nn > 0) { 
-                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; 
+                  while (nn > 0) {
+                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--;
                   };
                   s->mtfa[pp] = uc;
-               } else { 
+               } else {
                   /* general case */
                   lno = nn / MTFL_SIZE;
                   off = nn % MTFL_SIZE;
                   pp = s->mtfbase[lno] + off;
                   uc = s->mtfa[pp];
-                  while (pp > s->mtfbase[lno]) { 
-                     s->mtfa[pp] = s->mtfa[pp-1]; pp--; 
+                  while (pp > s->mtfbase[lno]) {
+                     s->mtfa[pp] = s->mtfa[pp-1]; pp--;
                   };
                   s->mtfbase[lno]++;
                   while (lno > 0) {
                      s->mtfbase[lno]--;
-                     s->mtfa[s->mtfbase[lno]] 
+                     s->mtfa[s->mtfbase[lno]]
                         = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
                      lno--;
                   }
@@ -556,7 +556,7 @@ Int32 BZ2_decompress ( DState* s )
          if (s->blockRandomised) {
             BZ_RAND_INIT_MASK;
             BZ_GET_SMALL(s->k0); s->nblock_used++;
-            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
+            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
          } else {
             BZ_GET_SMALL(s->k0); s->nblock_used++;
          }
@@ -575,7 +575,7 @@ Int32 BZ2_decompress ( DState* s )
          if (s->blockRandomised) {
             BZ_RAND_INIT_MASK;
             BZ_GET_FAST(s->k0); s->nblock_used++;
-            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
+            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
          } else {
             BZ_GET_FAST(s->k0); s->nblock_used++;
          }
@@ -644,7 +644,7 @@ Int32 BZ2_decompress ( DState* s )
    s->save_gBase       = gBase;
    s->save_gPerm       = gPerm;
 
-   return retVal;   
+   return retVal;
 }
 
 
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/huffman.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/huffman.c,v
diff -u -p -a -u -p -r1.3 huffman.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/huffman.c	9 Apr 2020 01:32:13 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/huffman.c	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
    bzip2/libbzip2 version 1.0.8 of 13 July 2019
    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
 
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the
    README file.
 
    This program is released under the terms of the license contained
@@ -60,7 +60,7 @@
 
 
 /*---------------------------------------------------*/
-void BZ2_hbMakeCodeLengths ( UChar *len, 
+void BZ2_hbMakeCodeLengths ( UChar *len,
                              Int32 *freq,
                              Int32 alphaSize,
                              Int32 maxLen )
@@ -74,7 +74,7 @@ void BZ2_hbMakeCodeLengths ( UChar *len,
 
    Int32 heap   [ BZ_MAX_ALPHA_SIZE + 2 ];
    Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
-   Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; 
+   Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ];
 
    for (i = 0; i < alphaSize; i++)
       weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
@@ -96,7 +96,7 @@ void BZ2_hbMakeCodeLengths ( UChar *len,
       }
 
       AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
-   
+
       while (nHeap > 1) {
          n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
          n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
@@ -119,7 +119,7 @@ void BZ2_hbMakeCodeLengths ( UChar *len,
          len[i-1] = j;
          if (j > maxLen) tooLong = True;
       }
-      
+
       if (! tooLong) break;
 
       /* 17 Oct 04: keep-going condition for the following loop used
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/randtable.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/randtable.c,v
diff -u -p -a -u -p -r1.4 randtable.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/randtable.c	9 Apr 2020 01:32:13 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/bzip2-src/randtable.c	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
    bzip2/libbzip2 version 1.0.8 of 13 July 2019
    Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
 
-   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the
    README file.
 
    This program is released under the terms of the license contained
@@ -23,58 +23,58 @@
 
 
 /*---------------------------------------------*/
-const Int32 BZ2_rNums[512] = { 
-   619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 
-   985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 
-   733, 859, 335, 708, 621, 574, 73, 654, 730, 472, 
-   419, 436, 278, 496, 867, 210, 399, 680, 480, 51, 
-   878, 465, 811, 169, 869, 675, 611, 697, 867, 561, 
-   862, 687, 507, 283, 482, 129, 807, 591, 733, 623, 
-   150, 238, 59, 379, 684, 877, 625, 169, 643, 105, 
-   170, 607, 520, 932, 727, 476, 693, 425, 174, 647, 
-   73, 122, 335, 530, 442, 853, 695, 249, 445, 515, 
-   909, 545, 703, 919, 874, 474, 882, 500, 594, 612, 
-   641, 801, 220, 162, 819, 984, 589, 513, 495, 799, 
-   161, 604, 958, 533, 221, 400, 386, 867, 600, 782, 
-   382, 596, 414, 171, 516, 375, 682, 485, 911, 276, 
-   98, 553, 163, 354, 666, 933, 424, 341, 533, 870, 
-   227, 730, 475, 186, 263, 647, 537, 686, 600, 224, 
-   469, 68, 770, 919, 190, 373, 294, 822, 808, 206, 
-   184, 943, 795, 384, 383, 461, 404, 758, 839, 887, 
-   715, 67, 618, 276, 204, 918, 873, 777, 604, 560, 
-   951, 160, 578, 722, 79, 804, 96, 409, 713, 940, 
-   652, 934, 970, 447, 318, 353, 859, 672, 112, 785, 
-   645, 863, 803, 350, 139, 93, 354, 99, 820, 908, 
-   609, 772, 154, 274, 580, 184, 79, 626, 630, 742, 
-   653, 282, 762, 623, 680, 81, 927, 626, 789, 125, 
-   411, 521, 938, 300, 821, 78, 343, 175, 128, 250, 
-   170, 774, 972, 275, 999, 639, 495, 78, 352, 126, 
-   857, 956, 358, 619, 580, 124, 737, 594, 701, 612, 
-   669, 112, 134, 694, 363, 992, 809, 743, 168, 974, 
-   944, 375, 748, 52, 600, 747, 642, 182, 862, 81, 
-   344, 805, 988, 739, 511, 655, 814, 334, 249, 515, 
-   897, 955, 664, 981, 649, 113, 974, 459, 893, 228, 
-   433, 837, 553, 268, 926, 240, 102, 654, 459, 51, 
-   686, 754, 806, 760, 493, 403, 415, 394, 687, 700, 
-   946, 670, 656, 610, 738, 392, 760, 799, 887, 653, 
-   978, 321, 576, 617, 626, 502, 894, 679, 243, 440, 
-   680, 879, 194, 572, 640, 724, 926, 56, 204, 700, 
-   707, 151, 457, 449, 797, 195, 791, 558, 945, 679, 
-   297, 59, 87, 824, 713, 663, 412, 693, 342, 606, 
-   134, 108, 571, 364, 631, 212, 174, 643, 304, 329, 
-   343, 97, 430, 751, 497, 314, 983, 374, 822, 928, 
-   140, 206, 73, 263, 980, 736, 876, 478, 430, 305, 
-   170, 514, 364, 692, 829, 82, 855, 953, 676, 246, 
-   369, 970, 294, 750, 807, 827, 150, 790, 288, 923, 
-   804, 378, 215, 828, 592, 281, 565, 555, 710, 82, 
-   896, 831, 547, 261, 524, 462, 293, 465, 502, 56, 
-   661, 821, 976, 991, 658, 869, 905, 758, 745, 193, 
-   768, 550, 608, 933, 378, 286, 215, 979, 792, 961, 
-   61, 688, 793, 644, 986, 403, 106, 366, 905, 644, 
-   372, 567, 466, 434, 645, 210, 389, 550, 919, 135, 
-   780, 773, 635, 389, 707, 100, 626, 958, 165, 504, 
-   920, 176, 193, 713, 857, 265, 203, 50, 668, 108, 
-   645, 990, 626, 197, 510, 357, 358, 850, 858, 364, 
+const Int32 BZ2_rNums[512] = {
+   619, 720, 127, 481, 931, 816, 813, 233, 566, 247,
+   985, 724, 205, 454, 863, 491, 741, 242, 949, 214,
+   733, 859, 335, 708, 621, 574, 73, 654, 730, 472,
+   419, 436, 278, 496, 867, 210, 399, 680, 480, 51,
+   878, 465, 811, 169, 869, 675, 611, 697, 867, 561,
+   862, 687, 507, 283, 482, 129, 807, 591, 733, 623,
+   150, 238, 59, 379, 684, 877, 625, 169, 643, 105,
+   170, 607, 520, 932, 727, 476, 693, 425, 174, 647,
+   73, 122, 335, 530, 442, 853, 695, 249, 445, 515,
+   909, 545, 703, 919, 874, 474, 882, 500, 594, 612,
+   641, 801, 220, 162, 819, 984, 589, 513, 495, 799,
+   161, 604, 958, 533, 221, 400, 386, 867, 600, 782,
+   382, 596, 414, 171, 516, 375, 682, 485, 911, 276,
+   98, 553, 163, 354, 666, 933, 424, 341, 533, 870,
+   227, 730, 475, 186, 263, 647, 537, 686, 600, 224,
+   469, 68, 770, 919, 190, 373, 294, 822, 808, 206,
+   184, 943, 795, 384, 383, 461, 404, 758, 839, 887,
+   715, 67, 618, 276, 204, 918, 873, 777, 604, 560,
+   951, 160, 578, 722, 79, 804, 96, 409, 713, 940,
+   652, 934, 970, 447, 318, 353, 859, 672, 112, 785,
+   645, 863, 803, 350, 139, 93, 354, 99, 820, 908,
+   609, 772, 154, 274, 580, 184, 79, 626, 630, 742,
+   653, 282, 762, 623, 680, 81, 927, 626, 789, 125,
+   411, 521, 938, 300, 821, 78, 343, 175, 128, 250,
+   170, 774, 972, 275, 999, 639, 495, 78, 352, 126,
+   857, 956, 358, 619, 580, 124, 737, 594, 701, 612,
+   669, 112, 134, 694, 363, 992, 809, 743, 168, 974,
+   944, 375, 748, 52, 600, 747, 642, 182, 862, 81,
+   344, 805, 988, 739, 511, 655, 814, 334, 249, 515,
+   897, 955, 664, 981, 649, 113, 974, 459, 893, 228,
+   433, 837, 553, 268, 926, 240, 102, 654, 459, 51,
+   686, 754, 806, 760, 493, 403, 415, 394, 687, 700,
+   946, 670, 656, 610, 738, 392, 760, 799, 887, 653,
+   978, 321, 576, 617, 626, 502, 894, 679, 243, 440,
+   680, 879, 194, 572, 640, 724, 926, 56, 204, 700,
+   707, 151, 457, 449, 797, 195, 791, 558, 945, 679,
+   297, 59, 87, 824, 713, 663, 412, 693, 342, 606,
+   134, 108, 571, 364, 631, 212, 174, 643, 304, 329,
+   343, 97, 430, 751, 497, 314, 983, 374, 822, 928,
+   140, 206, 73, 263, 980, 736, 876, 478, 430, 305,
+   170, 514, 364, 692, 829, 82, 855, 953, 676, 246,
+   369, 970, 294, 750, 807, 827, 150, 790, 288, 923,
+   804, 378, 215, 828, 592, 281, 565, 555, 710, 82,
+   896, 831, 547, 261, 524, 462, 293, 465, 502, 56,
+   661, 821, 976, 991, 658, 869, 905, 758, 745, 193,
+   768, 550, 608, 933, 378, 286, 215, 979, 792, 961,
+   61, 688, 793, 644, 986, 403, 106, 366, 905, 644,
+   372, 567, 466, 434, 645, 210, 389, 550, 919, 135,
+   780, 773, 635, 389, 707, 100, 626, 958, 165, 504,
+   920, 176, 193, 713, 857, 265, 203, 50, 668, 108,
+   645, 990, 626, 197, 510, 357, 358, 850, 858, 364,
    936, 638
 };
 
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm,v
diff -u -p -a -u -p -r1.11 Bzip2.pm
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm	15 Feb 2023 01:36:15 -0000	1.11
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@ use Carp ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.103';
+$VERSION = '2.204_001';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -384,7 +384,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t,v
diff -u -p -a -u -p -r1.11 000prereq.t
--- gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t	15 Feb 2023 01:36:15 -0000	1.11
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Bzip2/t/000prereq.t	21 Feb 2024 15:47:00 -0000
@@ -19,7 +19,7 @@ BEGIN
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
 
-    my $VERSION = '2.103';
+    my $VERSION = '2.204';
     my @NAMES = qw(
 
 			);
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Changes
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Changes
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Changes
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Changes	15 Feb 2023 01:38:21 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,677 +0,0 @@
-CHANGES
--------
-
-  2.202 27 June 2022
-
-      * Z_NULL should be 'UV' rather than 'PV'
-        https://github.com/pmqs/Compress-Raw-Zlib/issues/17
-        Sun Jun 26 22:02:04 2022 +0100
-        de28f0335d3d605d696b19d43fc48de42272455c
-
-  2.201 25 June 2022
-
-      * 2.021
-        Sat Jun 25 08:42:46 2022 +0100
-        85416cab509c18c5fa3f923de7b45b6c7c0f7a6f
-
-      * 2.201
-        Sat Jun 25 08:39:26 2022 +0100
-        b3d63862b2ff4ac9d28e23be500c0d32ad69dd11
-
-      * More zlib-ng updates
-        Thu Jun 23 22:42:13 2022 +0100
-        313f626425181702b5fc80af2b6ea7eed41d5a9d
-
-      * Fix test count regression in t/07bufsize.t (#16)
-        Wed Jun 22 09:45:11 2022 +0100
-        98dc5b4a2b30c26752b6f686462b06b8db72a5e4
-
-  2.200 21 June 2022
-
-      * Added zlib-ng support
-        https://github.com/pmqs/Compress-Raw-Zlib/issues/9
-
-      * Only set Z_SOLO when building zlib sources https://github.com/pmqs/Compress-Raw-Zlib/issues/12
-        Tue Jun 7 10:13:00 2022 +0100
-        c44e0b732e214b7f77d42a3af6ae64ef944cee90
-
-  2.105 14 April 2022
-
-      * Add Compress::Raw::Zlib::VERSION to output
-        Sat May 14 15:16:57 2022 +0100
-        3e22c93169a67986017f64d9a2e5085c417d8624
-
-      * Dump version info when running test harness
-        Sat May 14 15:10:17 2022 +0100
-        ca9f33ba0323d0abc91a83800636f180b2b44162
-
-      * Fix use of ZLIB_INCLUDE/LIB
-        Sat May 14 09:01:38 2022 +0100
-        8a7d4a97d7441b61a8a888342766419044fa5a33
-
-      * More fixes for BUILD_ZLIB off
-        Sat May 14 08:54:04 2022 +0100
-        2d9650094dab90858ef58bfbda62f3bc60e159e4
-
-      * Add BUILD_ZLIB to the matrix
-        Sat May 14 08:31:54 2022 +0100
-        b61b92fc9d06bf04f1adec337357ffbd39535901
-
-      * Merge branch 'master' of https://github.com/pmqs/Compress-Raw-Zlib
-        Sat May 14 08:27:14 2022 +0100
-        3ac7d0d3d45ae263402fab1ebb3835e2ae16c5a6
-
-      * Fix for BUILD_ZLIB disabled
-        Sat May 14 08:25:34 2022 +0100
-        b0f04e37fb58a34ef01767ad16a8f63ca868eec6
-
-      * Add BUILD_ZLIB to the matrix
-        Sat May 14 08:22:56 2022 +0100
-        aa8f5ff981c7305c995d4e2f798ae0d7d45866a5
-
-  2.104 13 April 2022
-
-      * Merge pull request #11 from monkburger/symbol_fix_2
-        Fri May 13 07:17:19 2022 +0100
-        64aea2d3f78946d7df4096eadfa0d7267f4439a5
-
-      * perl_crz -> Perl_crz
-        Tue May 3 18:19:24 2022 +0000
-        20502e6c2eba8ddcad80b20574e840457c0cb369
-
-      * This is a slightly different way to fix https://github.com/pmqs/Compress-Raw-Zlib/issues/8
-        Tue May 3 18:06:48 2022 +0000
-        d9cd27fb212da7455b6ba44729ca11bb441f3950
-
-      * add tests for crc32/adler32_combine
-        Mon May 2 16:18:13 2022 +0100
-        dcfe9ef439790f1a4fae81cf3eac38cfeb848294
-
-  2.103 3 April 2022
-
-      * Sync upstream fix for CVE-2018-25032
-        https://github.com/advisories/GHSA-jc36-42cf-vqwj
-
-        Update to Zlib 1.2.12
-        d507f527768f6cbab5831ed3ec17fe741163785c
-
-        Fix for inflateSync return code change
-        f47ea5f36c40fe19efe404dd75fd790b115de596
-
-        Fix for incorrect CRC from zlib 1.2.12.1
-        https://github.com/madler/zlib/commit/ec3df00224d4b396e2ac6586ab5d25f673caa4c2
-        60104e3a162a116548303861ae0811fb850e65fd
-
-      * AUTHOR doesn't contain the stated information
-        bf5a03c1b440c8d9e41cffb344bf889794cc532b
-
-
-  2.101 20 February 2021
-
-      * fix version numbers in meta files
-
-  2.100 7 January 2021
-
-      * trim whitespace
-        5de62cd3987c736c14d1aa804936808fbc1fe9cb
-
-  2.096 31 July 2020
-
-      * No changes
-
-  2.095 19 July 2020
-
-      * No changes
-
-  2.094 13 July 2020
-
-      * Issue with Append mode & SvOOK
-        https://github.com/pmqs/Compress-Raw-Zlib/issues/3
-        80ee0524012f46c5984c2d57649af0b07f82c750
-
-  2.093 7 December 2019
-
-      * No Changes
-
-  2.092 4 December 2019
-
-      * No Changes
-
-  2.091 23 November 2019
-
-      * Silence "macro expands to multiple statements" warning
-        Change sourced upstream from https://github.com/Perl/perl5/issues/17013
-        https://github.com/pmqs/Compress-Raw-Zlib/issues/2
-        da2bd1fc765b80d01ed10a79b6c4a035e5095ed8
-
-  2.090 9 November 2019
-
-      * No Changes
-
-  2.089 3 November 2019
-
-      * No Changes
-
-  2.088 31 October 2019
-
-      * Add SUPPORT section
-        d348ad76c2073a2973d094891fbd0c2e24bf397d
-
-      * 000prereq.t: dump Perl version
-        e1afe502818cb1ccf5bad917b14b029b408f47f1
-
-  2.087 10 August 2019
-
-      * clang warning in ppport.h
-        update to latest ppport.h
-        https://github.com/pmqs/Compress-Raw-Zlib/issues/1
-        664a5fbacf778acdd4cfbcc571997f3df5ee43d3
-
-  2.086 31 March 2019
-
-      * Moved source to github https://github.com/pmqs/Compress-Raw-Zlib
-
-      * Add META_MERGE to Makefile.PL
-
-      * Added meta-json.t & meta-yaml.t
-
-  2.084 5 January 2019
-
-      * No Changes
-
-  2.083 30 December 2018
-
-      * No Changes
-
-  2.081 4 April 2018
-
-      * previous release used $^W instead of use warnings. Fixed.
-
-  2.080 2 April 2018
-
-      * No Changes
-
-  2.076 21 Nov 2017
-
-      * Zlib.xs
-        Silence gcc compiler warnings when -Wsign-compare is enabled
-        #123688: Compilation warnings with clang
-
-      * zlib-src/inflate.c and zlib-src/infback.c
-        Silence gcc compiler warnings when -Wimplicit-fallthrough is enabled
-        #123358: Compilation warnings with gcc-7.*
-
-      * Makefile.PL
-        Windows uses -lzlib. Linux uses -lz
-        #123699: wrong external zlib name used on Windows
-
-  2.075 14 Nov 2017
-
-      * Update zlib-src directory to use zlib 1.2.11
-        #123245: perl 5.26.1 is vulnerable to CVE-2016-9843, CVE-2016-9841, CVE-2016-9840, CVE-2016-9842
-
-      * Zlib.xs
-        Don't allow offset to be greater than length of buffer in crc32.
-
-      * Zlib.xs
-        Change my_zcalloc to use safecalloc.
-        The link, https://github.com/madler/zlib/issues/253, is the upstream report for the remaining
-        valgrind errors not already dealt with by 1.2.11. Using calloc in Zlib.xs for now as a workaround.
-        #121074: valgrind errors in the test suite
-
-  2.074 19 Feb 2017
-
-      * Fix bad 2.073 release
-
-  2.073 18 Feb 2017
-
-      * Zlib.xs
-        Comment out unused variables & remove C++-ism
-        #120272: [PATCH] Unbreak compilation
-
-  2.072 12 Feb 2017
-
-      * Makefile.PL
-        #120084: Need Fix for Makefile.PL depending on . in @INC
-
-      * zlib-src
-        #120207: inflateUndermine: subvert arg conditionally used/unused
-
-      * zlib-src
-        #112829: two gcc6-found problems
-
-      * fix deflateParams for zlib > 1.2.8
-        #119762: Tests broken with zlib-1.2.10
-
-  2.071 30 Dec 2016
-
-      * #119580 (inflate.c: One (last?) compilation warning)
-        Identical issue reeported in upstream zlib
-             https://github.com/madler/zlib/issues/111
-
-        Fix checked into zlib dev codeline via
-            https://github.com/madler/zlib/commit/2edb94a3025d288dc251bc6cbb2c02e60fbd7438
-
-  2.070 28 Dec 2016
-
-      * #107642: compilation warning from inflate.c
-
-      * #119007: [PATCH] Wrong FLAG_APPEND logic analog to Bzip2
-
-  2.069 26 Sept 2015
-
-      * reduce compiler warnings and stderr noise
-        [#101341]
-
-      * amigaos4: cpan/Compress-Raw-Zlib: also __amigaos4__
-        [#106799]
-
-      * const all global data
-        https://github.com/madler/zlib/commit/82e9dc60932bf2ce5422a5e76e66e5a05abd26e3
-        [#101298]
-
-      * Coverity finding: Unused value
-        https://github.com/madler/zlib/commit/9859a94c1002484ee5f824c05683a5b2484cbf49
-        [105414]
-
-      * Coverity findings
-        [102399]
-
-      * Coverity finding: Overlapping buffer in memory copy
-        [105413]
-
-  2.068 10 Dec 2014
-
-      * Silence more compiler warnings
-
-      * Disable running of 07bufsize.y by default.
-        COMPRESS_ZLIB_RUN_MOST needs set to run them. Makes life more
-        bearable on legacy platforms
-
-
-  2.067 8 Dec 2014
-
-      * Silence compiler warnings
-
-  2.066 21 Sept 2014
-
-      * Another COW violation
-        [#98069]
-
-      * misleading nesting/indentation (found by Coverity)
-        [#95405]
-
-  2.065 3 February 2014
-
-      * [PATCH] resolve c++ build failure in core
-        [#92657]
-
-      * gcc -g3: final link failed: Memory exhausted
-        [#88936]
-
-  2.064 1 February 2014
-
-      * [PATCH] Handle non-PVs better
-        [#91558]
-
-      * Z_OK instead of Z_BUF_ERROR
-        [#92521]
-
-  2.063 23 October 2013
-
-      * gcc -g3: final link failed: Memory exhausted
-        [#88936]
-
-      * Compress::Raw::Zlib uses AutoLoader for no reason
-        [#88260]
-
-      * Typo in Compress::Zlib _combine function documentation
-        [#89305]
-
-  2.062 11 August 2013
-
-      * typo fix
-        [#86417]
-
-  2.061 19 May 2013
-
-      * Include zlib 1.2.8 source.
-
-      * typo fix
-        [#85431]
-
-      * silence compiler warning by making 2nd parameter to
-        DispStream a const char*
-
-      * Mishandling of BUILD_ZLIB=0 option
-        [#85492]
-
-  2.060 7 January 2013
-
-      * Mention SimpleZip in POD
-
-  2.059 24 November 2012
-
-      * Copy-on-write support
-        [#81353]
-
-  2.058 12 November 2012
-
-      * No Changes
-
-  2.057 10 November 2012
-
-      * Compress::Raw::Zlib needs to use PERL_NO_GET_CONTEXT
-        [#80319]
-
-      * Install to 'site' instead of 'perl' when perl version is 5.11+
-        [#79812]
-
-      * update to ppport.h that includes SvPV_nomg_nolen
-        [#78079]
-
-  2.056 10 August 2012
-
-      * Fix C++ build issue
-        Thanks to Karl Williamson for supplying the patch.
-
-  2.055 4 August 2012
-
-      * Fix misuse of magic in API
-        [#78079]
-
-  2.054 8 May 2012
-
-      * Build issue on Win32
-        [#77030]
-
-  2.053 6 May 2012
-
-      * Include zlib 1.2.7 source.
-
-  2.052 29 April 2012
-
-      * Fixed build issue when Perl is built with C++
-
-  2.051 20 February 2012
-
-      * Bug in Compress::Raw::Zlib on Windows
-        [#75222]
-
-  2.050 20 February 2012
-
-      * Build failure on Irix & Solaris.
-        [RT #69985]
-
-  2.049 18 February 2012
-
-      * Include zlib 1.2.6 source.
-
-  2.048 29 January 2012
-
-      * Set minimum zlib version to 1.2.0
-
-  2.047 28 January 2012
-
-      * Allow flush to be called multiple times without any intermediate
-        call to deflate and still return Z_OK.
-        In the code below $status was Z_BUF_ERROR before this change.
-
-          $def->flush(...);
-          $status = $def->flush(...);
-
-      * Added support for zlibCompileFlags
-
-      * Set minimum Perl version to 5.6
-
-  2.045 3 December 2011
-
-      * Moved FAQ.pod into Zlib.pm
-
-  2.044 2 December 2011
-
-      * Moved FAQ.pod under the lib directory so it can get installed
-
-  2.043 20 November 2011
-
-      * No Changes
-
-  2.042 17 November 2011
-
-      * No Changes
-
-  2.040 28 October 2011
-
-      * No Changes
-
-  2.039 28 October 2011
-
-      * croak if attempt to freeze/thaw compression object
-        [RT #69985]
-
-  2.037 22 June 2011
-
-      * No Changes
-
-  2.036 6 May 2011
-
-      * Added offset patramter to CRC32
-
-  2.035 6 May 2011
-
-      * No Changes
-
-  2.033 11 Jan 2011
-      * Fixed typos & spelling errors.
-        [perl# 81782]
-
-  2.032 4 Jan 2011
-
-      * Document inflateReset
-        [RT #61082]
-
-  2.030 22 July 2010
-
-      * Ran the zlib2ansi script against the files in zlib-src.
-        Thanks to Nicholas Clark for the reminder.
-
-      * Added "-DNO_VIZ" to DEFINE in Makefile.PL
-        [RT #65293]
-
-  2.027 24 April 2010
-
-      * Updated to include zlib 1.2.5
-
-  2.026 7 April 2010
-
-      * Fixed definition of Z_TREES in Makefile.PL
-        [RT #65293]
-
-      * Fixed build issue with definition of off64_t not found on Solaris
-        by modifying the zlib source - changed the symbol
-        _LARGEFILE64_SOURCE to _LARGEFILE64_SOURCE_dummy in zconf.h,
-        zlib.h and zutil.h
-        [RT #56108]
-
-  2.025 27 March 2010
-
-      * Updated to include zlib 1.2.4
-
-      * Allow zlib version check to be disabled by setting
-        TEST_SKIP_VERSION_CHECK environment variable.
-        [RT #54510]
-
-  2.023 9 November 2009
-
-      * fixed instance where $[ should have been $] in t/02zlib.t
-        Thanks to Robin Barker and zefram [RT #50765] for independently
-        spotting the issue.
-
-  2.021 30 August 2009
-
-      * Changed test harness so that it can cope with PERL5OPT=-MCarp=verbose
-        [RT# 47225]
-
-  2.020 3 June 2009
-
-      * Minor documentation update.
-
-  2.019 4 May 2009
-
-      * No Changes
-
-  2.018 3 May 2009
-
-      * No Changes
-
-  2.017 28 March 2009
-
-      * Added 'LimitOutput' option
-
-      * Removed MAN3PODS from Makefile.PL
-
-      * Fixed coring issue when LimitOutput was used.
-
-      * Documented Compress::Raw::Zlib::zlib_version()
-
-      * Documented Compress::Raw::Zlib::deflateReset()
-        [RT #40566]
-
-  2.015 3 September 2008
-
-      * Makefile.PL
-        Backout changes made in 2.014
-
-  2.014 2 September 2008
-
-      * Makefile.PL
-        Updated to check for indirect dependencies.
-
-  2.012 15 July 2008
-
-      * Document the gzip flags that WindowBits can take.
-
-      * Allow a dictionary to be used with a raw inflate.
-        Needs zlib 1.2.2.1 or better.
-        [RT #36046]
-
-  2.011 5 May 2008
-
-      * A C++-style comment sneaked in with the last update. Fixed.
-        [core patch #33828]
-
-  2.010 5 May 2008
-
-      * No Changes
-
-  2.009 20 April 2008
-
-      * No Changes
-
-  2.008 2 November 2007
-
-      * Minor documentation changes in README
-
-  2.006 1 September 2007
-
-      * Makefile.PL
-        Added INSTALLDIRS directive to install as a core module when built
-        on a perl >= 5.9.
-
-  2.005 18 June 2007
-
-      * Only include ppport.h when not being built with perl.
-        [core patch #30655]
-
-  2.004 3 March 2007
-
-      * Fixed lvalue substr issue
-
-      * Remove redundant code from Zlib.xs
-
-  2.003 2 January 2007
-
-      * Added explicit version checking
-
-  2.002 29 December 2006
-
-      * Documentation updates.
-
-  2.001 1 November 2006
-
-      * Remove beta status.
-
-  2.000_14 26 October 2006
-
-      * Fixed memory leak on realloc.
-
-      * Ticket #18986 says that ExtUtils::Install 1.39 fixes the in-use
-        issue on win32/cygwin, so make the code that checks whether trying
-        to install via the cpan shell conditional on the version of
-        ExtUtils::Install.
-        http://rt.cpan.org/Ticket/Display.html?id=18986
-
-  2.000_10 13 March 2006
-
-      * Fixed a potential NULL pointer dereference problem in
-        Compress::Raw::Zlib::resetLastBlockByte.
-        Issue highlighted by David Dyck and reproduced by Marcus Holland-Moritz.
-
-  2.000_09 3 March 2006
-
-      * Released onto CPAN
-
-      * Documentation updates.
-
-  2.000_08 2 March 2006
-
-      * Moved the IO::* modules out into their own distributions.
-
-      * Breakout zlib specific code into separate modules.
-
-      * Limited support for reading/writing zip files added.
-
-  2.000_06 5 October 2005
-
-      * Added eof parameter to Compress::Zlib::inflate method.
-
-      * Fixed issue with 64-bit
-
-  2.000_05 4 October 2005
-
-      * Renamed IO::* to IO::Compress::* & IO::Uncompress::*
-
-  2.000_04 23 September 2005
-
-      * Fixed some more non-portable test that were failing on VMS.
-
-      * fixed problem where error messages in the oneshot interface were
-        getting lost.
-
-  2.000_03 12 September 2005
-
-      * Fixed some non-portable test that were failing on VMS.
-
-      * Fixed export of zlib constants from the IO::* classes
-
-  2.000_02 6 September 2005
-
-      * Split Append mode into Append and Merge
-
-      * Fixed typos in the documentation.
-
-      * Added pod/FAQ.pod
-
-      * Added libscan to Makefile.PL
-
-      * Added InputLength for IO::Gunzip et al
-
-  2.000_01 22 August 2005
-
-      * Fixed VERSION in Compress::Gzip::Constants
-
-      * Removed Compress::Gzip::Info from the distribution.
-
-  2.000_00 21 August 2005
-
-      * First Beta relase of Compress::zlib rewrite.
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/MANIFEST
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/MANIFEST
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/MANIFEST
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/MANIFEST	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,51 +0,0 @@
-README
-Changes
-t/000prereq.t
-t/01version.t
-t/02zlib.t
-t/07bufsize.t
-t/09limitoutput.t
-t/18lvalue.t
-t/19nonpv.t
-t/99pod.t
-t/Test/Builder.pm
-t/Test/More.pm
-t/Test/Simple.pm
-t/compress/CompTestUtils.pm
-t/meta-json.t
-t/meta-yaml.t
-Zlib.xs
-typemap
-Makefile.PL
-private/MakeUtil.pm
-MANIFEST
-ppport.h
-config.in
-zlib-src/adler32.c
-zlib-src/compress.c
-zlib-src/crc32.c
-zlib-src/crc32.h
-zlib-src/deflate.c
-zlib-src/deflate.h
-zlib-src/infback.c
-zlib-src/inffast.c
-zlib-src/inffast.h
-zlib-src/inffixed.h
-zlib-src/inflate.c
-zlib-src/inflate.h
-zlib-src/inftrees.c
-zlib-src/inftrees.h
-zlib-src/trees.c
-zlib-src/trees.h
-zlib-src/uncompr.c
-zlib-src/zconf.h
-zlib-src/zlib.h
-zlib-src/zutil.c
-zlib-src/zutil.h
-fallback/constants.h
-fallback/constants.xs
-lib/Compress/Raw/Zlib.pm
-examples/filtdef    Perl
-examples/filtinf    Perl
-META.yml                                 Module meta-data (added by MakeMaker)
-META.json                                Module JSON meta-data (added by MakeMaker)
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/META.json
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/META.json
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/META.json
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/META.json	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-{
-   "abstract" : "unknown",
-   "author" : [
-      "unknown"
-   ],
-   "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150005",
-   "license" : [
-      "perl_5"
-   ],
-   "meta-spec" : {
-      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
-      "version" : "2"
-   },
-   "name" : "Compress-Raw-Zlib",
-   "no_index" : {
-      "directory" : [
-         "t",
-         "inc",
-         "t",
-         "private"
-      ]
-   },
-   "prereqs" : {
-      "build" : {
-         "requires" : {
-            "ExtUtils::MakeMaker" : "0"
-         }
-      },
-      "configure" : {
-         "requires" : {
-            "ExtUtils::MakeMaker" : "0"
-         }
-      }
-   },
-   "release_status" : "stable",
-   "resources" : {
-      "bugtracker" : {
-         "web" : "https://github.com/pmqs/Compress-Raw-Zlib/issues"
-      },
-      "homepage" : "https://github.com/pmqs/Compress-Raw-Zlib",
-      "repository" : {
-         "type" : "git",
-         "url" : "git://github.com/pmqs/Compress-Raw-Zlib.git",
-         "web" : "https://github.com/pmqs/Compress-Raw-Zlib"
-      }
-   },
-   "version" : "2.202",
-   "x_serialization_backend" : "JSON::PP version 2.27300"
-}
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/README
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/README
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/README
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/README	15 Feb 2023 01:38:21 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,381 +0,0 @@
-
-                            Compress-Raw-Zlib
-
-                               Version 2.202
-
-                               27 June 2022
-
-        Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
-          This program is free software; you can redistribute it
-           and/or modify it under the same terms as Perl itself.
-
-              The directory zlib-src contains a subset of the
-             source files copied directly from zlib version 1.2.13.
-                  These files are Copyright(C) 1995-2022
-                     Jean-loup Gailly and Mark Adler.
-             Full source for the zlib library is available at
-                            http://www.zlib.org
-
-DESCRIPTION
------------
-
-This module provides a Perl interface to the zlib compression library.
-
-PREREQUISITES
--------------
-
-Before you can build Compress-Raw-Zlib you need to have the following
-installed on your system:
-
-    * A C compiler
-
-    * Perl 5.006 or better.
-
-By default, Compress-Raw-Zlib will build its own private copy of the
-zlib library. If you want to use a different version of
-zlib, follow the instructions in the section called
-"Controlling the version of zlib used by Compress-Raw-Zlib"
-later in this document.
-
-BUILDING THE MODULE
--------------------
-
-Assuming you have met all the prerequisites, the module can now be built
-using this sequence of commands:
-
-    perl Makefile.PL
-    make
-    make test
-
-INSTALLATION
-------------
-
-To install Compress-Raw-Zlib, run the command below:
-
-    make install
-
-Controlling the version of zlib used by Compress-Raw-Zlib
-----------------------------------------------------------
-
-Compress-Raw-Zlib interfaces to the zlib compression library. There
-are three options available to control which version/instance of the
-zlib library is used:
-
-    1. Build a private copy of the zlib library using the
-       zlib library source that is included with this module.
-       This is the default and recommended option.
-
-    2. Build a private copy of the zlib library using a standard
-       zlib source distribution.
-
-    3. Use a pre-built zlib library.
-
-Note that if you intend to use either Option 2 or 3, you need to have
-zlib version 1.2.0 or better.
-
-The contents of the file config.in are used to control which of the
-three options is actually used. This file is read during the
-
-    perl Makefile.PL
-
-step of the build, so remember to make any required changes to config.in
-before building this module.
-
-  Option 1
-  --------
-
-  For option 1, edit the file config.in and set the variables in it
-  as follows:
-
-      BUILD_ZLIB   = True
-      INCLUDE      = ./zlib-src
-      LIB          = ./zlib-src
-      OLD_ZLIB     = False
-      GZIP_OS_CODE = AUTO_DETECT
-
-  Option 2
-  --------
-
-  For option 2, fetch a copy of the zlib source distribution from
-  http://www.zlib.org and unpack it into the Compress-Raw-Zlib source
-  directory. Assuming you have fetched zlib 1.2.13,
-  it will create a directory called zlib-1.2.13.
-
-  Now set the variables in the file config.in as follows (if the version
-  you have fetched isn't 1.2.13, change the INCLUDE and LIB
-  variables appropriately):
-
-      BUILD_ZLIB   = True
-      INCLUDE      = ./zlib-1.2.13
-      LIB          = ./zlib-1.2.13
-      OLD_ZLIB     = False
-      GZIP_OS_CODE = AUTO_DETECT
-
-  Option 3
-  --------
-
-  For option 3, you need to find out where zlib is stored on your
-  system.  There are two parts to this.
-
-  First, find the directory where the zlib library is stored (some
-  common names for the library are libz.a and libz.so). Set the LIB variable
-  in the config.in file to that directory.
-
-  Secondly, find the directory where the file zlib.h is stored. Now set
-  the INCLUDE variable in the config.in file to that directory.
-
-  Next set BUILD_ZLIB to False.
-
-  Finally, if you are running zlib 1.0.5 or older, set the OLD_ZLIB
-  variable to True. Otherwise set it to False.
-
-  As an example, if the zlib library on your system is in
-  /usr/local/lib, zlib.h is in /usr/local/include and zlib is more
-  recent than version 1.0.5, the variables in config.in should be set as
-  follows:
-
-      BUILD_ZLIB   = False
-      INCLUDE      = /usr/local/include
-      LIB          = /usr/local/lib
-      OLD_ZLIB     = False
-      GZIP_OS_CODE = AUTO_DETECT
-
-Setting the Gzip OS Code
-------------------------
-
-Every gzip stream stores a byte in its header to identify the Operating
-System that was used to create the gzip stream. When you build Compress-Raw-Zlib it will attempt to determine the value that is correct for
-your Operating System. This will then be used by IO::Compress::Gzip as the
-default value for the OS byte in all gzip headers it creates.
-
-The variable GZIP_OS_CODE in the config.in file controls the setting of
-this value when building Compress-Raw-Zlib. If GZIP_OS_CODE is set to
-AUTO_DETECT, Compress-Raw-Zlib will attempt to determine the correct value for
-your Operating System.
-
-Alternatively, you can override auto-detection of the default OS code and
-explicitly set it yourself. Set the GZIP_OS_CODE variable in the config.in
-file to be a number between 0 and 255. For example
-
-    GZIP_OS_CODE = 3
-
-See RFC 1952 for valid OS codes that can be used.
-
-If you are running one of the less popular Operating Systems, it is
-possible that the default value picked by this module is incorrect or the
-default value (3) is used when there is a better value available. When
-Compress-Raw-Zlib cannot determine what operating system you are running, it
-will use the default value 3 for the OS code.
-
-If you find you have to change this value, because you think the value auto
-detected is incorrect, please take a few moments to contact the author of
-this module.
-
-TROUBLESHOOTING
----------------
-
-Undefined Symbol gzsetparams
-----------------------------
-
-If you get the error shown below when you run the Compress-Raw-Zlib test
-harness it probably means you are running a copy of zlib that is
-version 1.0.5 or older.
-
-t/01version.........Can't load 'blib/arch/auto/Compress/Zlib/Zlib.so' for
-                    module Compress::Raw::Zlib: blib/arch/auto/Compress/Raw/Zlib/Zlib.so:
-                    undefined symbol: gzsetparams at ...
-
-There are two ways to fix this problem:
-
-    1. Upgrade to the latest version of zlib.
-
-    2. Edit config.in and set the OLD_ZLIB variable to True.
-
-Test Harness 01version fails
-----------------------------
-If the 01version test harness fails, and the problem isn't covered by the
-scenario above, it probably means that you have two versions of
-zlib installed on your system.
-
-Run the command below to see if this is indeed the case
-
-    make test TEST_VERBOSE=1 TEST_FILES=t/01version.t
-
-Try removing the one you don't want to use and rebuild.
-
-Solaris build fails with "language optional software package not installed"
----------------------------------------------------------------------------
-
-If you are trying to build this module under Solaris and you get an
-error message like this
-
-    /usr/ucb/cc: language optional software package not installed
-
-it means that Perl cannot find the C compiler on your system. The cryptic
-message is just Sun's way of telling you that you haven't bought their
-C compiler.
-
-When you build a Perl module that needs a C compiler, the Perl build
-system tries to use the same C compiler that was used to build perl
-itself. In this case your Perl binary was built with a C compiler that
-lived in /usr/ucb.
-
-To continue with building this module, you need to get a C compiler,
-or tell Perl where your C compiler is, if you already have one.
-
-Assuming you have now got a C compiler, what you do next will be dependent
-on what C compiler you have installed. If you have just installed Sun's
-C compiler, you shouldn't have to do anything. Just try rebuilding
-this module.
-
-If you have installed another C compiler, say gcc, you have to tell perl
-how to use it instead of /usr/ucb/cc.
-
-This set of options seems to work if you want to use gcc. Your mileage
-may vary.
-
-    perl Makefile.PL CC=gcc CCCDLFLAGS=-fPIC OPTIMIZE=" "
-    make test
-
-If that doesn't work for you, it's time to make changes to the Makefile
-by hand. Good luck!
-
-Solaris build fails with "gcc: unrecognized option `-KPIC'"
------------------------------------------------------------
-
-You are running Solaris and you get an error like this when you try to
-build this Perl module
-
-    gcc: unrecognized option `-KPIC'
-
-This symptom usually means that you are using a Perl binary that has been
-built with the Sun C compiler, but you are using gcc to build this module.
-
-When Perl builds modules that need a C compiler, it will attempt to use
-the same C compiler and command line options that was used to build perl
-itself. In this case "-KPIC" is a valid option for the Sun C compiler,
-but not for gcc. The equivalent option for gcc is "-fPIC".
-
-The solution is either:
-
-    1. Build both Perl and this module with the same C compiler, either
-       by using the Sun C compiler for both or gcc for both.
-
-    2. Try generating the Makefile for this module like this perl
-
-           perl Makefile.PL CC=gcc CCCDLFLAGS=-fPIC OPTIMIZE=" " LD=gcc
-           make test
-
-       This second option seems to work when mixing a Perl binary built
-       with the Sun C compiler and this module built with gcc. Your
-       mileage may vary.
-
-HP-UX Notes
------------
-
-I've had a report that when building Compress-Raw-Zlib under HP-UX that it
-is necessary to have first built the zlib library with the -fpic
-option.
-
-Linux Notes
------------
-
-Although most Linux distributions already come with zlib, some
-people report getting this error when they try to build this module:
-
-$ make
-cp Zlib.pm blib/lib/Compress/Zlib.pm
-AutoSplitting blib/lib/Compress/Zlib.pm (blib/lib/auto/Compress/Zlib)
-/usr/bin/perl -I/usr/lib/perl5/5.6.1/i386-linux -I/usr/lib/perl5/5.6.1 /usr/lib/perl5/5.6.1/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.6.1/ExtUtils/typemap -typemap typemap Zlib.xs > Zlib.xsc && mv Zlib.xsc Zlib.c
-gcc -c -I/usr/local/include -fno-strict-aliasing -I/usr/local/include -O2 -march=i386 -mcpu=i686   -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" -fPIC -I/usr/lib/perl5/5.6.1/i386-linux/CORE  Zlib.c
-Zlib.xs:25:19: zlib.h: No such file or directory
-make: *** [Zlib.o] Error 1
-
-This usually means that you have not installed the development RPM
-for zlib. Check for an RPM that start with "zlib-devel" in your Linux
-distribution.
-
-Win32 Notes
------------
-
-If you are running Activestate Perl (from http://www.activestate.com),
-it ships with a pre-compiled version of Compress-Raw-Zlib. To check if a
-newer version of Compress-Raw-Zlib is available run this from the command
-prompt
-
-    C:\> ppm verify -upgrade Compress-Raw-Zlib
-
-If you are not running Activestate Perl and you don't have access
-to a C compiler, you will not be able to build and install this module.
-
-Win32 & Cygwin Notes
---------------------
-
-It is not possible to install Compress-Raw-Zlib using the CPAN shell.
-This is because the Compress-Raw-Zlib DLL is itself used by the CPAN shell
-and it is impossible to remove a DLL while it is already loaded under
-Windows.
-
-The workaround is to install Compress-Raw-Zlib manually using the
-instructions given at the start of this file.
-
-SUPPORT
--------
-
-General feedback/questions/bug reports should be sent to
-https://github.com/pmqs/Compress-Raw-Zlib/issues (preferred) or
-https://rt.cpan.org/Public/Dist/Display.html?Name=Compress-Raw-Zlib.
-
-FEEDBACK
---------
-
-How to report a problem with Compress-Raw-Zlib.
-
-To help me help you, I need all of the following information:
-
- 1. The Versions of everything relevant.
-    This includes:
-
-     a. The *complete* output from running this
-
-            perl -V
-
-        Do not edit the output in any way.
-        Note, I want you to run "perl -V" and NOT "perl -v".
-
-        If your perl does not understand the "-V" option it is too
-        old. This module needs Perl version 5.004 or better.
-
-     b. The version of Compress-Raw-Zlib you have.
-        If you have successfully installed Compress-Raw-Zlib, this one-liner
-        will tell you:
-
-           perl -MCompress::Raw::Zlib -e 'print qq[ver $Compress::Raw::Zlib::VERSION\n]'
-
-        If you are  running windows use this
-
-           perl -MCompress::Raw::Zlib -e "print qq[ver $Compress::Raw::Zlib::VERSION\n]"
-
-        If you haven't installed Compress-Raw-Zlib then search Compress::Raw::Zlib.pm
-        for a line like this:
-
-          $VERSION = "2.202" ;
-
-     c. The version of zlib you have used.
-        If you have successfully installed Compress-Raw-Zlib, this one-liner
-        will tell you:
-
-          perl -MCompress::Raw::Zlib -e "print q[zlib ver ]. Compress::Raw::Zlib::ZLIB_VERSION.qq[\n]"
-
-        If not, look at the beginning of the file zlib.h.
-
- 2. If you are having problems building Compress-Raw-Zlib, send me a
-    complete log of what happened. Start by unpacking the Compress-Raw-Zlib
-    module into a fresh directory and keep a log of all the steps
-
-        [edit config.in, if necessary]
-        perl Makefile.PL
-        make
-        make test TEST_VERBOSE=1
-
-Paul Marquess <pmqs@cpan.org>
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs,v
diff -u -p -a -u -p -r1.5 Zlib.xs
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs	15 Feb 2023 01:38:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/Zlib.xs	21 Feb 2024 15:47:00 -0000
@@ -1103,7 +1103,7 @@ _deflateInit(flags,level, method, window
             "Compress::Raw::Zlib::deflateStream", (void*)s);
         XPUSHs(obj);
     }
-    if (GIMME == G_ARRAY) {
+    if (GIMME_V == G_ARRAY) {
         SV * sv = sv_2mortal(newSViv(err)) ;
 	setDUALstatus(sv, err);
         XPUSHs(sv) ;
@@ -1176,7 +1176,7 @@ _inflateInit(flags, windowBits, bufsize,
                    (void*)s);
         XPUSHs(obj);
     }
-    if (GIMME == G_ARRAY) {
+    if (GIMME_V == G_ARRAY) {
         SV * sv = sv_2mortal(newSViv(err)) ;
 	setDUALstatus(sv, err);
         XPUSHs(sv) ;
@@ -2294,7 +2294,7 @@ _createDeflateStream(inf_s, flags,level,
 
     XPUSHs(sv_setref_pv(sv_newmortal(),
             "Compress::Raw::Zlib::deflateStream", (void*)s));
-    if (GIMME == G_ARRAY) {
+    if (GIMME_V == G_ARRAY) {
         SV * sv = sv_2mortal(newSViv(err)) ;
         setDUALstatus(sv, err);
         XPUSHs(sv) ;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/ppport.h
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/ppport.h
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/ppport.h
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/ppport.h	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,8641 +0,0 @@
-#if 0
-<<'SKIP';
-#endif
-/*
-----------------------------------------------------------------------
-
-    ppport.h -- Perl/Pollution/Portability Version 3.52
-
-    Automatically created by Devel::PPPort running under perl 5.024000.
-
-    Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
-    includes in parts/inc/ instead.
-
-    Use 'perldoc ppport.h' to view the documentation below.
-
-----------------------------------------------------------------------
-
-SKIP
-
-=pod
-
-=head1 NAME
-
-ppport.h - Perl/Pollution/Portability version 3.52
-
-=head1 SYNOPSIS
-
-  perl ppport.h [options] [source files]
-
-  Searches current directory for files if no [source files] are given
-
-  --help                      show short help
-
-  --version                   show version
-
-  --patch=file                write one patch file with changes
-  --copy=suffix               write changed copies with suffix
-  --diff=program              use diff program and options
-
-  --compat-version=version    provide compatibility with Perl version
-  --cplusplus                 accept C++ comments
-
-  --quiet                     don't output anything except fatal errors
-  --nodiag                    don't show diagnostics
-  --nohints                   don't show hints
-  --nochanges                 don't suggest changes
-  --nofilter                  don't filter input files
-
-  --strip                     strip all script and doc functionality
-                              from ppport.h
-
-  --list-provided             list provided API
-  --list-unsupported          list unsupported API
-  --api-info=name             show Perl API portability information
-
-=head1 COMPATIBILITY
-
-This version of F<ppport.h> is designed to support operation with Perl
-installations back to 5.003, and has been tested up to 5.30.
-
-=head1 OPTIONS
-
-=head2 --help
-
-Display a brief usage summary.
-
-=head2 --version
-
-Display the version of F<ppport.h>.
-
-=head2 --patch=I<file>
-
-If this option is given, a single patch file will be created if
-any changes are suggested. This requires a working diff program
-to be installed on your system.
-
-=head2 --copy=I<suffix>
-
-If this option is given, a copy of each file will be saved with
-the given suffix that contains the suggested changes. This does
-not require any external programs. Note that this does not
-automagically add a dot between the original filename and the
-suffix. If you want the dot, you have to include it in the option
-argument.
-
-If neither C<--patch> or C<--copy> are given, the default is to
-simply print the diffs for each file. This requires either
-C<Text::Diff> or a C<diff> program to be installed.
-
-=head2 --diff=I<program>
-
-Manually set the diff program and options to use. The default
-is to use C<Text::Diff>, when installed, and output unified
-context diffs.
-
-=head2 --compat-version=I<version>
-
-Tell F<ppport.h> to check for compatibility with the given
-Perl version. The default is to check for compatibility with Perl
-version 5.003. You can use this option to reduce the output
-of F<ppport.h> if you intend to be backward compatible only
-down to a certain Perl version.
-
-=head2 --cplusplus
-
-Usually, F<ppport.h> will detect C++ style comments and
-replace them with C style comments for portability reasons.
-Using this option instructs F<ppport.h> to leave C++
-comments untouched.
-
-=head2 --quiet
-
-Be quiet. Don't print anything except fatal errors.
-
-=head2 --nodiag
-
-Don't output any diagnostic messages. Only portability
-alerts will be printed.
-
-=head2 --nohints
-
-Don't output any hints. Hints often contain useful portability
-notes. Warnings will still be displayed.
-
-=head2 --nochanges
-
-Don't suggest any changes. Only give diagnostic output and hints
-unless these are also deactivated.
-
-=head2 --nofilter
-
-Don't filter the list of input files. By default, files not looking
-like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped.
-
-=head2 --strip
-
-Strip all script and documentation functionality from F<ppport.h>.
-This reduces the size of F<ppport.h> dramatically and may be useful
-if you want to include F<ppport.h> in smaller modules without
-increasing their distribution size too much.
-
-The stripped F<ppport.h> will have a C<--unstrip> option that allows
-you to undo the stripping, but only if an appropriate C<Devel::PPPort>
-module is installed.
-
-=head2 --list-provided
-
-Lists the API elements for which compatibility is provided by
-F<ppport.h>. Also lists if it must be explicitly requested,
-if it has dependencies, and if there are hints or warnings for it.
-
-=head2 --list-unsupported
-
-Lists the API elements that are known not to be supported by
-F<ppport.h> and below which version of Perl they probably
-won't be available or work.
-
-=head2 --api-info=I<name>
-
-Show portability information for API elements matching I<name>.
-If I<name> is surrounded by slashes, it is interpreted as a regular
-expression.
-
-=head1 DESCRIPTION
-
-In order for a Perl extension (XS) module to be as portable as possible
-across differing versions of Perl itself, certain steps need to be taken.
-
-=over 4
-
-=item *
-
-Including this header is the first major one. This alone will give you
-access to a large part of the Perl API that hasn't been available in
-earlier Perl releases. Use
-
-    perl ppport.h --list-provided
-
-to see which API elements are provided by ppport.h.
-
-=item *
-
-You should avoid using deprecated parts of the API. For example, using
-global Perl variables without the C<PL_> prefix is deprecated. Also,
-some API functions used to have a C<perl_> prefix. Using this form is
-also deprecated. You can safely use the supported API, as F<ppport.h>
-will provide wrappers for older Perl versions.
-
-=item *
-
-If you use one of a few functions or variables that were not present in
-earlier versions of Perl, and that can't be provided using a macro, you
-have to explicitly request support for these functions by adding one or
-more C<#define>s in your source code before the inclusion of F<ppport.h>.
-
-These functions or variables will be marked C<explicit> in the list shown
-by C<--list-provided>.
-
-Depending on whether you module has a single or multiple files that
-use such functions or variables, you want either C<static> or global
-variants.
-
-For a C<static> function or variable (used only in a single source
-file), use:
-
-    #define NEED_function
-    #define NEED_variable
-
-For a global function or variable (used in multiple source files),
-use:
-
-    #define NEED_function_GLOBAL
-    #define NEED_variable_GLOBAL
-
-Note that you mustn't have more than one global request for the
-same function or variable in your project.
-
-    Function / Variable       Static Request               Global Request
-    -----------------------------------------------------------------------------------------
-    PL_parser                 NEED_PL_parser               NEED_PL_parser_GLOBAL
-    PL_signals                NEED_PL_signals              NEED_PL_signals_GLOBAL
-    SvRX()                    NEED_SvRX                    NEED_SvRX_GLOBAL
-    caller_cx()               NEED_caller_cx               NEED_caller_cx_GLOBAL
-    croak_xs_usage()          NEED_croak_xs_usage          NEED_croak_xs_usage_GLOBAL
-    die_sv()                  NEED_die_sv                  NEED_die_sv_GLOBAL
-    eval_pv()                 NEED_eval_pv                 NEED_eval_pv_GLOBAL
-    grok_bin()                NEED_grok_bin                NEED_grok_bin_GLOBAL
-    grok_hex()                NEED_grok_hex                NEED_grok_hex_GLOBAL
-    grok_number()             NEED_grok_number             NEED_grok_number_GLOBAL
-    grok_numeric_radix()      NEED_grok_numeric_radix      NEED_grok_numeric_radix_GLOBAL
-    grok_oct()                NEED_grok_oct                NEED_grok_oct_GLOBAL
-    gv_fetchpvn_flags()       NEED_gv_fetchpvn_flags       NEED_gv_fetchpvn_flags_GLOBAL
-    load_module()             NEED_load_module             NEED_load_module_GLOBAL
-    mess()                    NEED_mess                    NEED_mess_GLOBAL
-    mess_nocontext()          NEED_mess_nocontext          NEED_mess_nocontext_GLOBAL
-    mess_sv()                 NEED_mess_sv                 NEED_mess_sv_GLOBAL
-    mg_findext()              NEED_mg_findext              NEED_mg_findext_GLOBAL
-    my_snprintf()             NEED_my_snprintf             NEED_my_snprintf_GLOBAL
-    my_sprintf()              NEED_my_sprintf              NEED_my_sprintf_GLOBAL
-    my_strlcat()              NEED_my_strlcat              NEED_my_strlcat_GLOBAL
-    my_strlcpy()              NEED_my_strlcpy              NEED_my_strlcpy_GLOBAL
-    my_strnlen()              NEED_my_strnlen              NEED_my_strnlen_GLOBAL
-    newCONSTSUB()             NEED_newCONSTSUB             NEED_newCONSTSUB_GLOBAL
-    newRV_noinc()             NEED_newRV_noinc             NEED_newRV_noinc_GLOBAL
-    newSV_type()              NEED_newSV_type              NEED_newSV_type_GLOBAL
-    newSVpvn_flags()          NEED_newSVpvn_flags          NEED_newSVpvn_flags_GLOBAL
-    newSVpvn_share()          NEED_newSVpvn_share          NEED_newSVpvn_share_GLOBAL
-    pv_display()              NEED_pv_display              NEED_pv_display_GLOBAL
-    pv_escape()               NEED_pv_escape               NEED_pv_escape_GLOBAL
-    pv_pretty()               NEED_pv_pretty               NEED_pv_pretty_GLOBAL
-    sv_2pv_flags()            NEED_sv_2pv_flags            NEED_sv_2pv_flags_GLOBAL
-    sv_2pvbyte()              NEED_sv_2pvbyte              NEED_sv_2pvbyte_GLOBAL
-    sv_catpvf_mg()            NEED_sv_catpvf_mg            NEED_sv_catpvf_mg_GLOBAL
-    sv_catpvf_mg_nocontext()  NEED_sv_catpvf_mg_nocontext  NEED_sv_catpvf_mg_nocontext_GLOBAL
-    sv_pvn_force_flags()      NEED_sv_pvn_force_flags      NEED_sv_pvn_force_flags_GLOBAL
-    sv_setpvf_mg()            NEED_sv_setpvf_mg            NEED_sv_setpvf_mg_GLOBAL
-    sv_setpvf_mg_nocontext()  NEED_sv_setpvf_mg_nocontext  NEED_sv_setpvf_mg_nocontext_GLOBAL
-    sv_unmagicext()           NEED_sv_unmagicext           NEED_sv_unmagicext_GLOBAL
-    utf8_to_uvchr_buf()       NEED_utf8_to_uvchr_buf       NEED_utf8_to_uvchr_buf_GLOBAL
-    vload_module()            NEED_vload_module            NEED_vload_module_GLOBAL
-    vmess()                   NEED_vmess                   NEED_vmess_GLOBAL
-    vnewSVpvf()               NEED_vnewSVpvf               NEED_vnewSVpvf_GLOBAL
-    warner()                  NEED_warner                  NEED_warner_GLOBAL
-
-To avoid namespace conflicts, you can change the namespace of the
-explicitly exported functions / variables using the C<DPPP_NAMESPACE>
-macro. Just C<#define> the macro before including C<ppport.h>:
-
-    #define DPPP_NAMESPACE MyOwnNamespace_
-    #include "ppport.h"
-
-The default namespace is C<DPPP_>.
-
-=back
-
-The good thing is that most of the above can be checked by running
-F<ppport.h> on your source code. See the next section for
-details.
-
-=head1 EXAMPLES
-
-To verify whether F<ppport.h> is needed for your module, whether you
-should make any changes to your code, and whether any special defines
-should be used, F<ppport.h> can be run as a Perl script to check your
-source code. Simply say:
-
-    perl ppport.h
-
-The result will usually be a list of patches suggesting changes
-that should at least be acceptable, if not necessarily the most
-efficient solution, or a fix for all possible problems.
-
-If you know that your XS module uses features only available in
-newer Perl releases, if you're aware that it uses C++ comments,
-and if you want all suggestions as a single patch file, you could
-use something like this:
-
-    perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff
-
-If you only want your code to be scanned without any suggestions
-for changes, use:
-
-    perl ppport.h --nochanges
-
-You can specify a different C<diff> program or options, using
-the C<--diff> option:
-
-    perl ppport.h --diff='diff -C 10'
-
-This would output context diffs with 10 lines of context.
-
-If you want to create patched copies of your files instead, use:
-
-    perl ppport.h --copy=.new
-
-To display portability information for the C<newSVpvn> function,
-use:
-
-    perl ppport.h --api-info=newSVpvn
-
-Since the argument to C<--api-info> can be a regular expression,
-you can use
-
-    perl ppport.h --api-info=/_nomg$/
-
-to display portability information for all C<_nomg> functions or
-
-    perl ppport.h --api-info=/./
-
-to display information for all known API elements.
-
-=head1 BUGS
-
-If this version of F<ppport.h> is causing failure during
-the compilation of this module, please check if newer versions
-of either this module or C<Devel::PPPort> are available on CPAN
-before sending a bug report.
-
-If F<ppport.h> was generated using the latest version of
-C<Devel::PPPort> and is causing failure of this module, please
-send a bug report to L<perlbug@perl.org|mailto:perlbug@perl.org>.
-
-Please include the following information:
-
-=over 4
-
-=item 1.
-
-The complete output from running "perl -V"
-
-=item 2.
-
-This file.
-
-=item 3.
-
-The name and version of the module you were trying to build.
-
-=item 4.
-
-A full log of the build that failed.
-
-=item 5.
-
-Any other information that you think could be relevant.
-
-=back
-
-For the latest version of this code, please get the C<Devel::PPPort>
-module from CPAN.
-
-=head1 COPYRIGHT
-
-Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz.
-
-Version 2.x, Copyright (C) 2001, Paul Marquess.
-
-Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-See L<Devel::PPPort>.
-
-=cut
-
-use strict;
-
-# Disable broken TRIE-optimization
-BEGIN { eval '${^RE_TRIE_MAXBUF} = -1' if "$]" >= 5.009004 && "$]" <= 5.009005 }
-
-my $VERSION = 3.52;
-
-my %opt = (
-  quiet     => 0,
-  diag      => 1,
-  hints     => 1,
-  changes   => 1,
-  cplusplus => 0,
-  filter    => 1,
-  strip     => 0,
-  version   => 0,
-);
-
-my($ppport) = $0 =~ /([\w.]+)$/;
-my $LF = '(?:\r\n|[\r\n])';   # line feed
-my $HS = "[ \t]";             # horizontal whitespace
-
-# Never use C comments in this file!
-my $ccs  = '/'.'*';
-my $cce  = '*'.'/';
-my $rccs = quotemeta $ccs;
-my $rcce = quotemeta $cce;
-
-eval {
-  require Getopt::Long;
-  Getopt::Long::GetOptions(\%opt, qw(
-    help quiet diag! filter! hints! changes! cplusplus strip version
-    patch=s copy=s diff=s compat-version=s
-    list-provided list-unsupported api-info=s
-  )) or usage();
-};
-
-if ($@ and grep /^-/, @ARGV) {
-  usage() if "@ARGV" =~ /^--?h(?:elp)?$/;
-  die "Getopt::Long not found. Please don't use any options.\n";
-}
-
-if ($opt{version}) {
-  print "This is $0 $VERSION.\n";
-  exit 0;
-}
-
-usage() if $opt{help};
-strip() if $opt{strip};
-
-if (exists $opt{'compat-version'}) {
-  my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) };
-  if ($@) {
-    die "Invalid version number format: '$opt{'compat-version'}'\n";
-  }
-  die "Only Perl 5 is supported\n" if $r != 5;
-  die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000;
-  $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s;
-}
-else {
-  $opt{'compat-version'} = 5;
-}
-
-my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
-                ? ( $1 => {
-                      ($2                  ? ( base     => $2 ) : ()),
-                      ($3                  ? ( todo     => $3 ) : ()),
-                      (index($4, 'v') >= 0 ? ( varargs  => 1  ) : ()),
-                      (index($4, 'p') >= 0 ? ( provided => 1  ) : ()),
-                      (index($4, 'n') >= 0 ? ( nothxarg => 1  ) : ()),
-                    } )
-                : die "invalid spec: $_" } qw(
-AvFILLp|5.004050||p
-AvFILL|||
-BOM_UTF8|||
-BhkDISABLE||5.024000|
-BhkENABLE||5.024000|
-BhkENTRY_set||5.024000|
-BhkENTRY|||
-BhkFLAGS|||
-CALL_BLOCK_HOOKS|||
-CLASS|||n
-CPERLscope|5.005000||p
-CX_CURPAD_SAVE|||
-CX_CURPAD_SV|||
-C_ARRAY_END|5.013002||p
-C_ARRAY_LENGTH|5.008001||p
-CopFILEAV|5.006000||p
-CopFILEGV_set|5.006000||p
-CopFILEGV|5.006000||p
-CopFILESV|5.006000||p
-CopFILE_set|5.006000||p
-CopFILE|5.006000||p
-CopSTASHPV_set|5.006000||p
-CopSTASHPV|5.006000||p
-CopSTASH_eq|5.006000||p
-CopSTASH_set|5.006000||p
-CopSTASH|5.006000||p
-CopyD|5.009002|5.004050|p
-Copy|||
-CvPADLIST||5.008001|
-CvSTASH|||
-CvWEAKOUTSIDE|||
-DECLARATION_FOR_LC_NUMERIC_MANIPULATION||5.021010|n
-DEFSV_set|5.010001||p
-DEFSV|5.004050||p
-DO_UTF8||5.006000|
-END_EXTERN_C|5.005000||p
-ENTER|||
-ERRSV|5.004050||p
-EXTEND|||
-EXTERN_C|5.005000||p
-F0convert|||n
-FREETMPS|||
-GIMME_V||5.004000|n
-GIMME|||n
-GROK_NUMERIC_RADIX|5.007002||p
-G_ARRAY|||
-G_DISCARD|||
-G_EVAL|||
-G_METHOD|5.006001||p
-G_NOARGS|||
-G_SCALAR|||
-G_VOID||5.004000|
-GetVars|||
-GvAV|||
-GvCV|||
-GvHV|||
-GvSV|||
-Gv_AMupdate||5.011000|
-HEf_SVKEY|5.003070||p
-HeHASH||5.003070|
-HeKEY||5.003070|
-HeKLEN||5.003070|
-HePV||5.004000|
-HeSVKEY_force||5.003070|
-HeSVKEY_set||5.004000|
-HeSVKEY||5.003070|
-HeUTF8|5.010001|5.008000|p
-HeVAL||5.003070|
-HvENAMELEN||5.015004|
-HvENAMEUTF8||5.015004|
-HvENAME||5.013007|
-HvNAMELEN_get|5.009003||p
-HvNAMELEN||5.015004|
-HvNAMEUTF8||5.015004|
-HvNAME_get|5.009003||p
-HvNAME|||
-INT2PTR|5.006000||p
-IN_LOCALE_COMPILETIME|5.007002||p
-IN_LOCALE_RUNTIME|5.007002||p
-IN_LOCALE|5.007002||p
-IN_PERL_COMPILETIME|5.008001||p
-IS_NUMBER_GREATER_THAN_UV_MAX|5.007002||p
-IS_NUMBER_INFINITY|5.007002||p
-IS_NUMBER_IN_UV|5.007002||p
-IS_NUMBER_NAN|5.007003||p
-IS_NUMBER_NEG|5.007002||p
-IS_NUMBER_NOT_INT|5.007002||p
-IVSIZE|5.006000||p
-IVTYPE|5.006000||p
-IVdf|5.006000||p
-LEAVE|||
-LIKELY|||p
-LINKLIST||5.013006|
-LVRET|||
-MARK|||
-MULTICALL||5.024000|
-MUTABLE_PTR|5.010001||p
-MUTABLE_SV|5.010001||p
-MY_CXT_CLONE|5.009002||p
-MY_CXT_INIT|5.007003||p
-MY_CXT|5.007003||p
-MoveD|5.009002|5.004050|p
-Move|||
-NOOP|5.005000||p
-NUM2PTR|5.006000||p
-NVTYPE|5.006000||p
-NVef|5.006001||p
-NVff|5.006001||p
-NVgf|5.006001||p
-Newxc|5.009003||p
-Newxz|5.009003||p
-Newx|5.009003||p
-Nullav|||
-Nullch|||
-Nullcv|||
-Nullhv|||
-Nullsv|||
-OP_CLASS||5.013007|
-OP_DESC||5.007003|
-OP_NAME||5.007003|
-OP_TYPE_IS_OR_WAS||5.019010|
-OP_TYPE_IS||5.019007|
-ORIGMARK|||
-OpHAS_SIBLING|5.021007||p
-OpLASTSIB_set|5.021011||p
-OpMAYBESIB_set|5.021011||p
-OpMORESIB_set|5.021011||p
-OpSIBLING|5.021007||p
-PAD_BASE_SV|||
-PAD_CLONE_VARS|||
-PAD_COMPNAME_FLAGS|||
-PAD_COMPNAME_GEN_set|||
-PAD_COMPNAME_GEN|||
-PAD_COMPNAME_OURSTASH|||
-PAD_COMPNAME_PV|||
-PAD_COMPNAME_TYPE|||
-PAD_RESTORE_LOCAL|||
-PAD_SAVE_LOCAL|||
-PAD_SAVE_SETNULLPAD|||
-PAD_SETSV|||
-PAD_SET_CUR_NOSAVE|||
-PAD_SET_CUR|||
-PAD_SVl|||
-PAD_SV|||
-PERLIO_FUNCS_CAST|5.009003||p
-PERLIO_FUNCS_DECL|5.009003||p
-PERL_ABS|5.008001||p
-PERL_ARGS_ASSERT_CROAK_XS_USAGE|||p
-PERL_BCDVERSION|5.024000||p
-PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
-PERL_HASH|5.003070||p
-PERL_INT_MAX|5.003070||p
-PERL_INT_MIN|5.003070||p
-PERL_LONG_MAX|5.003070||p
-PERL_LONG_MIN|5.003070||p
-PERL_MAGIC_arylen|5.007002||p
-PERL_MAGIC_backref|5.007002||p
-PERL_MAGIC_bm|5.007002||p
-PERL_MAGIC_collxfrm|5.007002||p
-PERL_MAGIC_dbfile|5.007002||p
-PERL_MAGIC_dbline|5.007002||p
-PERL_MAGIC_defelem|5.007002||p
-PERL_MAGIC_envelem|5.007002||p
-PERL_MAGIC_env|5.007002||p
-PERL_MAGIC_ext|5.007002||p
-PERL_MAGIC_fm|5.007002||p
-PERL_MAGIC_glob|5.024000||p
-PERL_MAGIC_isaelem|5.007002||p
-PERL_MAGIC_isa|5.007002||p
-PERL_MAGIC_mutex|5.024000||p
-PERL_MAGIC_nkeys|5.007002||p
-PERL_MAGIC_overload_elem|5.024000||p
-PERL_MAGIC_overload_table|5.007002||p
-PERL_MAGIC_overload|5.024000||p
-PERL_MAGIC_pos|5.007002||p
-PERL_MAGIC_qr|5.007002||p
-PERL_MAGIC_regdata|5.007002||p
-PERL_MAGIC_regdatum|5.007002||p
-PERL_MAGIC_regex_global|5.007002||p
-PERL_MAGIC_shared_scalar|5.007003||p
-PERL_MAGIC_shared|5.007003||p
-PERL_MAGIC_sigelem|5.007002||p
-PERL_MAGIC_sig|5.007002||p
-PERL_MAGIC_substr|5.007002||p
-PERL_MAGIC_sv|5.007002||p
-PERL_MAGIC_taint|5.007002||p
-PERL_MAGIC_tiedelem|5.007002||p
-PERL_MAGIC_tiedscalar|5.007002||p
-PERL_MAGIC_tied|5.007002||p
-PERL_MAGIC_utf8|5.008001||p
-PERL_MAGIC_uvar_elem|5.007003||p
-PERL_MAGIC_uvar|5.007002||p
-PERL_MAGIC_vec|5.007002||p
-PERL_MAGIC_vstring|5.008001||p
-PERL_PV_ESCAPE_ALL|5.009004||p
-PERL_PV_ESCAPE_FIRSTCHAR|5.009004||p
-PERL_PV_ESCAPE_NOBACKSLASH|5.009004||p
-PERL_PV_ESCAPE_NOCLEAR|5.009004||p
-PERL_PV_ESCAPE_QUOTE|5.009004||p
-PERL_PV_ESCAPE_RE|5.009005||p
-PERL_PV_ESCAPE_UNI_DETECT|5.009004||p
-PERL_PV_ESCAPE_UNI|5.009004||p
-PERL_PV_PRETTY_DUMP|5.009004||p
-PERL_PV_PRETTY_ELLIPSES|5.010000||p
-PERL_PV_PRETTY_LTGT|5.009004||p
-PERL_PV_PRETTY_NOCLEAR|5.010000||p
-PERL_PV_PRETTY_QUOTE|5.009004||p
-PERL_PV_PRETTY_REGPROP|5.009004||p
-PERL_QUAD_MAX|5.003070||p
-PERL_QUAD_MIN|5.003070||p
-PERL_REVISION|5.006000||p
-PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p
-PERL_SCAN_DISALLOW_PREFIX|5.007003||p
-PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p
-PERL_SCAN_SILENT_ILLDIGIT|5.008001||p
-PERL_SHORT_MAX|5.003070||p
-PERL_SHORT_MIN|5.003070||p
-PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
-PERL_SUBVERSION|5.006000||p
-PERL_SYS_INIT3||5.006000|
-PERL_SYS_INIT|||
-PERL_SYS_TERM||5.024000|
-PERL_UCHAR_MAX|5.003070||p
-PERL_UCHAR_MIN|5.003070||p
-PERL_UINT_MAX|5.003070||p
-PERL_UINT_MIN|5.003070||p
-PERL_ULONG_MAX|5.003070||p
-PERL_ULONG_MIN|5.003070||p
-PERL_UNUSED_ARG|5.009003||p
-PERL_UNUSED_CONTEXT|5.009004||p
-PERL_UNUSED_DECL|5.007002||p
-PERL_UNUSED_RESULT|5.021001||p
-PERL_UNUSED_VAR|5.007002||p
-PERL_UQUAD_MAX|5.003070||p
-PERL_UQUAD_MIN|5.003070||p
-PERL_USE_GCC_BRACE_GROUPS|5.009004||p
-PERL_USHORT_MAX|5.003070||p
-PERL_USHORT_MIN|5.003070||p
-PERL_VERSION|5.006000||p
-PL_DBsignal|5.005000||p
-PL_DBsingle|||pn
-PL_DBsub|||pn
-PL_DBtrace|||pn
-PL_Sv|5.005000||p
-PL_bufend|5.024000||p
-PL_bufptr|5.024000||p
-PL_check||5.006000|
-PL_compiling|5.004050||p
-PL_comppad_name||5.017004|
-PL_comppad||5.008001|
-PL_copline|5.024000||p
-PL_curcop|5.004050||p
-PL_curpad||5.005000|
-PL_curstash|5.004050||p
-PL_debstash|5.004050||p
-PL_defgv|5.004050||p
-PL_diehook|5.004050||p
-PL_dirty|5.004050||p
-PL_dowarn|||pn
-PL_errgv|5.004050||p
-PL_error_count|5.024000||p
-PL_expect|5.024000||p
-PL_hexdigit|5.005000||p
-PL_hints|5.005000||p
-PL_in_my_stash|5.024000||p
-PL_in_my|5.024000||p
-PL_keyword_plugin||5.011002|
-PL_last_in_gv|||n
-PL_laststatval|5.005000||p
-PL_lex_state|5.024000||p
-PL_lex_stuff|5.024000||p
-PL_linestr|5.024000||p
-PL_modglobal||5.005000|n
-PL_na|5.004050||pn
-PL_no_modify|5.006000||p
-PL_ofsgv|||n
-PL_opfreehook||5.011000|n
-PL_parser|5.009005||p
-PL_peepp||5.007003|n
-PL_perl_destruct_level|5.004050||p
-PL_perldb|5.004050||p
-PL_ppaddr|5.006000||p
-PL_rpeepp||5.013005|n
-PL_rsfp_filters|5.024000||p
-PL_rsfp|5.024000||p
-PL_rs|||n
-PL_signals|5.008001||p
-PL_stack_base|5.004050||p
-PL_stack_sp|5.004050||p
-PL_statcache|5.005000||p
-PL_stdingv|5.004050||p
-PL_sv_arenaroot|5.004050||p
-PL_sv_no|5.004050||pn
-PL_sv_undef|5.004050||pn
-PL_sv_yes|5.004050||pn
-PL_sv_zero|||n
-PL_tainted|5.004050||p
-PL_tainting|5.004050||p
-PL_tokenbuf|5.024000||p
-POP_MULTICALL||5.024000|
-POPi|||n
-POPl|||n
-POPn|||n
-POPpbytex||5.007001|n
-POPpx||5.005030|n
-POPp|||n
-POPs|||n
-POPul||5.006000|n
-POPu||5.004000|n
-PTR2IV|5.006000||p
-PTR2NV|5.006000||p
-PTR2UV|5.006000||p
-PTR2nat|5.009003||p
-PTR2ul|5.007001||p
-PTRV|5.006000||p
-PUSHMARK|||
-PUSH_MULTICALL||5.024000|
-PUSHi|||
-PUSHmortal|5.009002||p
-PUSHn|||
-PUSHp|||
-PUSHs|||
-PUSHu|5.004000||p
-PUTBACK|||
-PadARRAY||5.024000|
-PadMAX||5.024000|
-PadlistARRAY||5.024000|
-PadlistMAX||5.024000|
-PadlistNAMESARRAY||5.024000|
-PadlistNAMESMAX||5.024000|
-PadlistNAMES||5.024000|
-PadlistREFCNT||5.017004|
-PadnameIsOUR|||
-PadnameIsSTATE|||
-PadnameLEN||5.024000|
-PadnameOURSTASH|||
-PadnameOUTER|||
-PadnamePV||5.024000|
-PadnameREFCNT_dec||5.024000|
-PadnameREFCNT||5.024000|
-PadnameSV||5.024000|
-PadnameTYPE|||
-PadnameUTF8||5.021007|
-PadnamelistARRAY||5.024000|
-PadnamelistMAX||5.024000|
-PadnamelistREFCNT_dec||5.024000|
-PadnamelistREFCNT||5.024000|
-PerlIO_clearerr||5.007003|
-PerlIO_close||5.007003|
-PerlIO_context_layers||5.009004|
-PerlIO_eof||5.007003|
-PerlIO_error||5.007003|
-PerlIO_fileno||5.007003|
-PerlIO_fill||5.007003|
-PerlIO_flush||5.007003|
-PerlIO_get_base||5.007003|
-PerlIO_get_bufsiz||5.007003|
-PerlIO_get_cnt||5.007003|
-PerlIO_get_ptr||5.007003|
-PerlIO_read||5.007003|
-PerlIO_restore_errno|||
-PerlIO_save_errno|||
-PerlIO_seek||5.007003|
-PerlIO_set_cnt||5.007003|
-PerlIO_set_ptrcnt||5.007003|
-PerlIO_setlinebuf||5.007003|
-PerlIO_stderr||5.007003|
-PerlIO_stdin||5.007003|
-PerlIO_stdout||5.007003|
-PerlIO_tell||5.007003|
-PerlIO_unread||5.007003|
-PerlIO_write||5.007003|
-PerlLIO_dup2_cloexec|||
-PerlLIO_dup_cloexec|||
-PerlLIO_open3_cloexec|||
-PerlLIO_open_cloexec|||
-PerlProc_pipe_cloexec|||
-PerlSock_accept_cloexec|||
-PerlSock_socket_cloexec|||
-PerlSock_socketpair_cloexec|||
-Perl_langinfo|||n
-Perl_setlocale|||n
-PoisonFree|5.009004||p
-PoisonNew|5.009004||p
-PoisonWith|5.009004||p
-Poison|5.008000||p
-READ_XDIGIT||5.017006|
-REPLACEMENT_CHARACTER_UTF8|||
-RESTORE_LC_NUMERIC||5.024000|
-RETVAL|||n
-Renewc|||
-Renew|||
-SAVECLEARSV|||
-SAVECOMPPAD|||
-SAVEPADSV|||
-SAVETMPS|||
-SAVE_DEFSV|5.004050||p
-SPAGAIN|||
-SP|||
-START_EXTERN_C|5.005000||p
-START_MY_CXT|5.007003||p
-STMT_END|||p
-STMT_START|||p
-STORE_LC_NUMERIC_FORCE_TO_UNDERLYING||5.024000|
-STORE_LC_NUMERIC_SET_TO_NEEDED||5.024000|
-STR_WITH_LEN|5.009003||p
-ST|||
-SV_CONST_RETURN|5.009003||p
-SV_COW_DROP_PV|5.008001||p
-SV_COW_SHARED_HASH_KEYS|5.009005||p
-SV_GMAGIC|5.007002||p
-SV_HAS_TRAILING_NUL|5.009004||p
-SV_IMMEDIATE_UNREF|5.007001||p
-SV_MUTABLE_RETURN|5.009003||p
-SV_NOSTEAL|5.009002||p
-SV_SMAGIC|5.009003||p
-SV_UTF8_NO_ENCODING|5.008001||p
-SVfARG|5.009005||p
-SVf_UTF8|5.006000||p
-SVf|5.006000||p
-SVt_INVLIST||5.019002|
-SVt_IV|||
-SVt_NULL|||
-SVt_NV|||
-SVt_PVAV|||
-SVt_PVCV|||
-SVt_PVFM|||
-SVt_PVGV|||
-SVt_PVHV|||
-SVt_PVIO|||
-SVt_PVIV|||
-SVt_PVLV|||
-SVt_PVMG|||
-SVt_PVNV|||
-SVt_PV|||
-SVt_REGEXP||5.011000|
-Safefree|||
-Slab_Alloc|||
-Slab_Free|||
-Slab_to_ro|||
-Slab_to_rw|||
-StructCopy|||
-SvCUR_set|||
-SvCUR|||
-SvEND|||
-SvGAMAGIC||5.006001|
-SvGETMAGIC|5.004050||p
-SvGROW|||
-SvIOK_UV||5.006000|
-SvIOK_notUV||5.006000|
-SvIOK_off|||
-SvIOK_only_UV||5.006000|
-SvIOK_only|||
-SvIOK_on|||
-SvIOKp|||
-SvIOK|||
-SvIVX|||
-SvIV_nomg|5.009001||p
-SvIV_set|||
-SvIVx|||
-SvIV|||
-SvIsCOW_shared_hash||5.008003|
-SvIsCOW||5.008003|
-SvLEN_set|||
-SvLEN|||
-SvLOCK||5.007003|
-SvMAGIC_set|5.009003||p
-SvNIOK_off|||
-SvNIOKp|||
-SvNIOK|||
-SvNOK_off|||
-SvNOK_only|||
-SvNOK_on|||
-SvNOKp|||
-SvNOK|||
-SvNVX|||
-SvNV_nomg||5.013002|
-SvNV_set|||
-SvNVx|||
-SvNV|||
-SvOK|||
-SvOOK_offset||5.011000|
-SvOOK|||
-SvPOK_off|||
-SvPOK_only_UTF8||5.006000|
-SvPOK_only|||
-SvPOK_on|||
-SvPOKp|||
-SvPOK|||
-SvPVCLEAR|||
-SvPVX_const|5.009003||p
-SvPVX_mutable|5.009003||p
-SvPVX|||
-SvPV_const|5.009003||p
-SvPV_flags_const_nolen|5.009003||p
-SvPV_flags_const|5.009003||p
-SvPV_flags_mutable|5.009003||p
-SvPV_flags|5.007002||p
-SvPV_force_flags_mutable|5.009003||p
-SvPV_force_flags_nolen|5.009003||p
-SvPV_force_flags|5.007002||p
-SvPV_force_mutable|5.009003||p
-SvPV_force_nolen|5.009003||p
-SvPV_force_nomg_nolen|5.009003||p
-SvPV_force_nomg|5.007002||p
-SvPV_force|||p
-SvPV_mutable|5.009003||p
-SvPV_nolen_const|5.009003||p
-SvPV_nolen|5.006000||p
-SvPV_nomg_const_nolen|5.009003||p
-SvPV_nomg_const|5.009003||p
-SvPV_nomg_nolen|5.013007||p
-SvPV_nomg|5.007002||p
-SvPV_renew|5.009003||p
-SvPV_set|||
-SvPVbyte_force||5.009002|
-SvPVbyte_nolen||5.006000|
-SvPVbytex_force||5.006000|
-SvPVbytex||5.006000|
-SvPVbyte|5.006000||p
-SvPVutf8_force||5.006000|
-SvPVutf8_nolen||5.006000|
-SvPVutf8x_force||5.006000|
-SvPVutf8x||5.006000|
-SvPVutf8||5.006000|
-SvPVx|||
-SvPV|||
-SvREADONLY_off|||
-SvREADONLY_on|||
-SvREADONLY|||
-SvREFCNT_dec_NN||5.017007|
-SvREFCNT_dec|||
-SvREFCNT_inc_NN|5.009004||p
-SvREFCNT_inc_simple_NN|5.009004||p
-SvREFCNT_inc_simple_void_NN|5.009004||p
-SvREFCNT_inc_simple_void|5.009004||p
-SvREFCNT_inc_simple|5.009004||p
-SvREFCNT_inc_void_NN|5.009004||p
-SvREFCNT_inc_void|5.009004||p
-SvREFCNT_inc|||p
-SvREFCNT|||
-SvROK_off|||
-SvROK_on|||
-SvROK|||
-SvRV_set|5.009003||p
-SvRV|||
-SvRXOK|5.009005||p
-SvRX|5.009005||p
-SvSETMAGIC|||
-SvSHARED_HASH|5.009003||p
-SvSHARE||5.007003|
-SvSTASH_set|5.009003||p
-SvSTASH|||
-SvSetMagicSV_nosteal||5.004000|
-SvSetMagicSV||5.004000|
-SvSetSV_nosteal||5.004000|
-SvSetSV|||
-SvTAINTED_off||5.004000|
-SvTAINTED_on||5.004000|
-SvTAINTED||5.004000|
-SvTAINT|||
-SvTHINKFIRST|||
-SvTRUE_nomg||5.013006|
-SvTRUE|||
-SvTYPE|||
-SvUNLOCK||5.007003|
-SvUOK|5.007001|5.006000|p
-SvUPGRADE|||
-SvUTF8_off||5.006000|
-SvUTF8_on||5.006000|
-SvUTF8||5.006000|
-SvUVXx|5.004000||p
-SvUVX|5.004000||p
-SvUV_nomg|5.009001||p
-SvUV_set|5.009003||p
-SvUVx|5.004000||p
-SvUV|5.004000||p
-SvVOK||5.008001|
-SvVSTRING_mg|5.009004||p
-THIS|||n
-UNDERBAR|5.009002||p
-UNICODE_REPLACEMENT|||p
-UNLIKELY|||p
-UTF8SKIP||5.006000|
-UTF8_IS_INVARIANT|||
-UTF8_IS_NONCHAR|||
-UTF8_IS_SUPER|||
-UTF8_IS_SURROGATE|||
-UTF8_MAXBYTES|5.009002||p
-UTF8_SAFE_SKIP|||p
-UVCHR_IS_INVARIANT|||
-UVCHR_SKIP||5.022000|
-UVSIZE|5.006000||p
-UVTYPE|5.006000||p
-UVXf|5.007001||p
-UVof|5.006000||p
-UVuf|5.006000||p
-UVxf|5.006000||p
-WARN_ALL|5.006000||p
-WARN_AMBIGUOUS|5.006000||p
-WARN_ASSERTIONS|5.024000||p
-WARN_BAREWORD|5.006000||p
-WARN_CLOSED|5.006000||p
-WARN_CLOSURE|5.006000||p
-WARN_DEBUGGING|5.006000||p
-WARN_DEPRECATED|5.006000||p
-WARN_DIGIT|5.006000||p
-WARN_EXEC|5.006000||p
-WARN_EXITING|5.006000||p
-WARN_GLOB|5.006000||p
-WARN_INPLACE|5.006000||p
-WARN_INTERNAL|5.006000||p
-WARN_IO|5.006000||p
-WARN_LAYER|5.008000||p
-WARN_MALLOC|5.006000||p
-WARN_MISC|5.006000||p
-WARN_NEWLINE|5.006000||p
-WARN_NUMERIC|5.006000||p
-WARN_ONCE|5.006000||p
-WARN_OVERFLOW|5.006000||p
-WARN_PACK|5.006000||p
-WARN_PARENTHESIS|5.006000||p
-WARN_PIPE|5.006000||p
-WARN_PORTABLE|5.006000||p
-WARN_PRECEDENCE|5.006000||p
-WARN_PRINTF|5.006000||p
-WARN_PROTOTYPE|5.006000||p
-WARN_QW|5.006000||p
-WARN_RECURSION|5.006000||p
-WARN_REDEFINE|5.006000||p
-WARN_REGEXP|5.006000||p
-WARN_RESERVED|5.006000||p
-WARN_SEMICOLON|5.006000||p
-WARN_SEVERE|5.006000||p
-WARN_SIGNAL|5.006000||p
-WARN_SUBSTR|5.006000||p
-WARN_SYNTAX|5.006000||p
-WARN_TAINT|5.006000||p
-WARN_THREADS|5.008000||p
-WARN_UNINITIALIZED|5.006000||p
-WARN_UNOPENED|5.006000||p
-WARN_UNPACK|5.006000||p
-WARN_UNTIE|5.006000||p
-WARN_UTF8|5.006000||p
-WARN_VOID|5.006000||p
-WIDEST_UTYPE|5.015004||p
-XCPT_CATCH|5.009002||p
-XCPT_RETHROW|5.009002||p
-XCPT_TRY_END|5.009002||p
-XCPT_TRY_START|5.009002||p
-XPUSHi|||
-XPUSHmortal|5.009002||p
-XPUSHn|||
-XPUSHp|||
-XPUSHs|||
-XPUSHu|5.004000||p
-XSPROTO|5.010000||p
-XSRETURN_EMPTY|||
-XSRETURN_IV|||
-XSRETURN_NO|||
-XSRETURN_NV|||
-XSRETURN_PV|||
-XSRETURN_UNDEF|||
-XSRETURN_UV|5.008001||p
-XSRETURN_YES|||
-XSRETURN|||p
-XST_mIV|||
-XST_mNO|||
-XST_mNV|||
-XST_mPV|||
-XST_mUNDEF|||
-XST_mUV|5.008001||p
-XST_mYES|||
-XS_APIVERSION_BOOTCHECK||5.024000|
-XS_EXTERNAL||5.024000|
-XS_INTERNAL||5.024000|
-XS_VERSION_BOOTCHECK||5.024000|
-XS_VERSION|||
-XSprePUSH|5.006000||p
-XS|||
-XopDISABLE||5.024000|
-XopENABLE||5.024000|
-XopENTRYCUSTOM||5.024000|
-XopENTRY_set||5.024000|
-XopENTRY||5.024000|
-XopFLAGS||5.013007|
-ZeroD|5.009002||p
-Zero|||
-__ASSERT_|||p
-_aMY_CXT|5.007003||p
-_inverse_folds|||
-_is_grapheme|||
-_is_in_locale_category|||
-_new_invlist_C_array|||
-_pMY_CXT|5.007003||p
-_to_fold_latin1|||n
-_to_upper_title_latin1|||
-_to_utf8_case|||
-_variant_byte_number|||n
-_warn_problematic_locale|||n
-aMY_CXT_|5.007003||p
-aMY_CXT|5.007003||p
-aTHXR_|5.024000||p
-aTHXR|5.024000||p
-aTHX_|5.006000||p
-aTHX|5.006000||p
-abort_execution|||
-add_above_Latin1_folds|||
-add_data|||n
-add_multi_match|||
-add_utf16_textfilter|||
-adjust_size_and_find_bucket|||n
-advance_one_LB|||
-advance_one_SB|||
-advance_one_WB|||
-allocmy|||
-amagic_call|||
-amagic_cmp_locale|||
-amagic_cmp|||
-amagic_deref_call||5.013007|
-amagic_i_ncmp|||
-amagic_is_enabled|||
-amagic_ncmp|||
-anonymise_cv_maybe|||
-any_dup|||
-ao|||
-apply_attrs_my|||
-apply_attrs|||
-apply|||
-argvout_final|||
-assert_uft8_cache_coherent|||
-assignment_type|||
-atfork_lock||5.007003|n
-atfork_unlock||5.007003|n
-av_arylen_p||5.009003|
-av_clear|||
-av_delete||5.006000|
-av_exists||5.006000|
-av_extend_guts|||
-av_extend|||
-av_fetch|||
-av_fill|||
-av_iter_p||5.011000|
-av_len|||
-av_make|||
-av_nonelem|||
-av_pop|||
-av_push|||
-av_reify|||
-av_shift|||
-av_store|||
-av_tindex|5.017009|5.017009|p
-av_top_index|5.017009|5.017009|p
-av_undef|||
-av_unshift|||
-ax|||n
-backup_one_GCB|||
-backup_one_LB|||
-backup_one_SB|||
-backup_one_WB|||
-bad_type_gv|||
-bad_type_pv|||
-bind_match|||
-block_end||5.004000|
-block_gimme||5.004000|
-block_start||5.004000|
-blockhook_register||5.013003|
-boolSV|5.004000||p
-boot_core_PerlIO|||
-boot_core_UNIVERSAL|||
-boot_core_mro|||
-bytes_cmp_utf8||5.013007|
-cBOOL|5.013000||p
-call_argv|5.006000||p
-call_atexit||5.006000|
-call_list||5.004000|
-call_method|5.006000||p
-call_pv|5.006000||p
-call_sv|5.006000||p
-caller_cx|5.013005|5.006000|p
-calloc||5.007002|n
-cando|||
-cast_i32||5.006000|n
-cast_iv||5.006000|n
-cast_ulong||5.006000|n
-cast_uv||5.006000|n
-category_name|||n
-change_engine_size|||
-check_and_deprecate|||
-check_type_and_open|||
-check_uni|||
-checkcomma|||
-ckWARN2_d|||
-ckWARN2|||
-ckWARN3_d|||
-ckWARN3|||
-ckWARN4_d|||
-ckWARN4|||
-ckWARN_d|||
-ckWARN|5.006000||p
-ck_entersub_args_core|||
-ck_entersub_args_list||5.013006|
-ck_entersub_args_proto_or_list||5.013006|
-ck_entersub_args_proto||5.013006|
-ck_warner_d||5.011001|v
-ck_warner||5.011001|v
-ckwarn_common|||
-ckwarn_d||5.009003|
-ckwarn||5.009003|
-clear_defarray||5.023008|
-clear_special_blocks|||
-clone_params_del|||n
-clone_params_new|||n
-closest_cop|||
-cntrl_to_mnemonic|||n
-compute_EXACTish|||n
-construct_ahocorasick_from_trie|||
-cop_free|||
-cop_hints_2hv||5.013007|
-cop_hints_fetch_pvn||5.013007|
-cop_hints_fetch_pvs||5.013007|
-cop_hints_fetch_pv||5.013007|
-cop_hints_fetch_sv||5.013007|
-cophh_2hv||5.013007|
-cophh_copy||5.013007|
-cophh_delete_pvn||5.013007|
-cophh_delete_pvs||5.013007|
-cophh_delete_pv||5.013007|
-cophh_delete_sv||5.013007|
-cophh_fetch_pvn||5.013007|
-cophh_fetch_pvs||5.013007|
-cophh_fetch_pv||5.013007|
-cophh_fetch_sv||5.013007|
-cophh_free||5.013007|
-cophh_new_empty||5.024000|
-cophh_store_pvn||5.013007|
-cophh_store_pvs||5.013007|
-cophh_store_pv||5.013007|
-cophh_store_sv||5.013007|
-core_prototype|||
-coresub_op|||
-cr_textfilter|||
-croak_caller|||vn
-croak_memory_wrap|5.019003||pn
-croak_no_mem|||n
-croak_no_modify|5.013003||pn
-croak_nocontext|||pvn
-croak_popstack|||n
-croak_sv|5.013001||p
-croak_xs_usage|5.010001||pn
-croak|||v
-csighandler||5.009003|n
-current_re_engine|||
-curse|||
-custom_op_desc||5.007003|
-custom_op_get_field|||
-custom_op_name||5.007003|
-custom_op_register||5.013007|
-custom_op_xop||5.013007|
-cv_clone_into|||
-cv_clone|||
-cv_const_sv_or_av|||n
-cv_const_sv||5.003070|n
-cv_dump|||
-cv_forget_slab|||
-cv_get_call_checker_flags|||
-cv_get_call_checker||5.013006|
-cv_name||5.021005|
-cv_set_call_checker_flags||5.021004|
-cv_set_call_checker||5.013006|
-cv_undef_flags|||
-cv_undef|||
-cvgv_from_hek|||
-cvgv_set|||
-cvstash_set|||
-cx_dump||5.005000|
-cx_dup|||
-cxinc|||
-dAXMARK|5.009003||p
-dAX|5.007002||p
-dITEMS|5.007002||p
-dMARK|||
-dMULTICALL||5.009003|
-dMY_CXT_SV|5.007003||p
-dMY_CXT|5.007003||p
-dNOOP|5.006000||p
-dORIGMARK|||
-dSP|||
-dTHR|5.004050||p
-dTHXR|5.024000||p
-dTHXa|5.006000||p
-dTHXoa|5.006000||p
-dTHX|5.006000||p
-dUNDERBAR|5.009002||p
-dVAR|5.009003||p
-dXCPT|5.009002||p
-dXSARGS|||
-dXSI32|||
-dXSTARG|5.006000||p
-deb_curcv|||
-deb_nocontext|||vn
-deb_stack_all|||
-deb_stack_n|||
-debop||5.005000|
-debprofdump||5.005000|
-debprof|||
-debstackptrs||5.007003|
-debstack||5.007003|
-debug_start_match|||
-deb||5.007003|v
-defelem_target|||
-del_sv|||
-delimcpy_no_escape|||n
-delimcpy||5.004000|n
-despatch_signals||5.007001|
-destroy_matcher|||
-die_nocontext|||vn
-die_sv|5.013001||p
-die_unwind|||
-die|||v
-dirp_dup|||
-div128|||
-djSP|||
-do_aexec5|||
-do_aexec|||
-do_aspawn|||
-do_binmode||5.004050|
-do_chomp|||
-do_close|||
-do_delete_local|||
-do_dump_pad|||
-do_eof|||
-do_exec3|||
-do_exec|||
-do_gv_dump||5.006000|
-do_gvgv_dump||5.006000|
-do_hv_dump||5.006000|
-do_ipcctl|||
-do_ipcget|||
-do_join|||
-do_magic_dump||5.006000|
-do_msgrcv|||
-do_msgsnd|||
-do_ncmp|||
-do_oddball|||
-do_op_dump||5.006000|
-do_open9||5.006000|
-do_openn||5.007001|
-do_open||5.003070|
-do_pmop_dump||5.006000|
-do_print|||
-do_readline|||
-do_seek|||
-do_semop|||
-do_shmio|||
-do_smartmatch|||
-do_spawn_nowait|||
-do_spawn|||
-do_sprintf|||
-do_sv_dump||5.006000|
-do_sysseek|||
-do_tell|||
-do_trans_complex_utf8|||
-do_trans_complex|||
-do_trans_count_utf8|||
-do_trans_count|||
-do_trans_simple_utf8|||
-do_trans_simple|||
-do_trans|||
-do_vecget|||
-do_vecset|||
-do_vop|||
-docatch|||
-does_utf8_overflow|||n
-doeval_compile|||
-dofile|||
-dofindlabel|||
-doform|||
-doing_taint||5.008001|n
-dooneliner|||
-doopen_pm|||
-doparseform|||
-dopoptoeval|||
-dopoptogivenfor|||
-dopoptolabel|||
-dopoptoloop|||
-dopoptosub_at|||
-dopoptowhen|||
-doref||5.009003|
-dounwind|||
-dowantarray|||
-drand48_init_r|||n
-drand48_r|||n
-dtrace_probe_call|||
-dtrace_probe_load|||
-dtrace_probe_op|||
-dtrace_probe_phase|||
-dump_all_perl|||
-dump_all||5.006000|
-dump_c_backtrace|||
-dump_eval||5.006000|
-dump_exec_pos|||
-dump_form||5.006000|
-dump_indent||5.006000|v
-dump_mstats|||
-dump_packsubs_perl|||
-dump_packsubs||5.006000|
-dump_regex_sets_structures|||
-dump_sub_perl|||
-dump_sub||5.006000|
-dump_sv_child|||
-dump_trie_interim_list|||
-dump_trie_interim_table|||
-dump_trie|||
-dump_vindent||5.006000|
-dumpuntil|||
-dup_attrlist|||
-dup_warnings|||
-edit_distance|||n
-emulate_setlocale|||n
-eval_pv|5.006000||p
-eval_sv|5.006000||p
-exec_failed|||
-expect_number|||
-fbm_compile||5.005000|
-fbm_instr||5.005000|
-feature_is_enabled|||
-filter_add|||
-filter_del|||
-filter_gets|||
-filter_read|||
-finalize_optree|||
-finalize_op|||
-find_and_forget_pmops|||
-find_array_subscript|||
-find_beginning|||
-find_byclass|||
-find_default_stash|||
-find_hash_subscript|||
-find_in_my_stash|||
-find_lexical_cv|||
-find_next_masked|||n
-find_runcv_where|||
-find_runcv||5.008001|
-find_rundefsv||5.013002|
-find_script|||
-find_span_end_mask|||n
-find_span_end|||n
-first_symbol|||n
-fixup_errno_string|||
-foldEQ_latin1_s2_folded|||n
-foldEQ_latin1||5.013008|n
-foldEQ_locale||5.013002|n
-foldEQ_utf8||5.013002|
-foldEQ||5.013002|n
-fold_constants|||
-forbid_setid|||
-force_ident_maybe_lex|||
-force_ident|||
-force_list|||
-force_next|||
-force_strict_version|||
-force_version|||
-force_word|||
-forget_pmop|||
-form_nocontext|||vn
-form||5.004000|v
-fp_dup|||
-fprintf_nocontext|||vn
-free_c_backtrace|||
-free_global_struct|||
-free_tied_hv_pool|||
-free_tmps|||
-gen_constant_list|||
-get_ANYOFM_contents|||
-get_ANYOF_cp_list_for_ssc|||
-get_and_check_backslash_N_name_wrapper|||
-get_and_check_backslash_N_name|||
-get_aux_mg|||
-get_av|5.006000||p
-get_c_backtrace_dump|||
-get_c_backtrace|||
-get_context||5.006000|n
-get_cvn_flags|||
-get_cvs|5.011000||p
-get_cv|5.006000||p
-get_db_sub|||
-get_debug_opts|||
-get_hash_seed|||
-get_hv|5.006000||p
-get_mstats|||
-get_no_modify|||
-get_num|||
-get_op_descs||5.005000|
-get_op_names||5.005000|
-get_opargs|||
-get_ppaddr||5.006000|
-get_sv|5.006000||p
-get_vtbl||5.005030|
-getcwd_sv||5.007002|
-getenv_len|||
-glob_2number|||
-glob_assign_glob|||
-gp_dup|||
-gp_free|||
-gp_ref|||
-grok_atoUV|||n
-grok_bin|5.007003||p
-grok_bslash_N|||
-grok_hex|5.007003||p
-grok_infnan||5.021004|
-grok_number_flags||5.021002|
-grok_number|5.007002||p
-grok_numeric_radix|5.007002||p
-grok_oct|5.007003||p
-group_end|||
-gv_AVadd|||
-gv_HVadd|||
-gv_IOadd|||
-gv_SVadd|||
-gv_add_by_type||5.011000|
-gv_autoload4||5.004000|
-gv_autoload_pvn||5.015004|
-gv_autoload_pv||5.015004|
-gv_autoload_sv||5.015004|
-gv_check|||
-gv_const_sv||5.009003|
-gv_dump||5.006000|
-gv_efullname3||5.003070|
-gv_efullname4||5.006001|
-gv_efullname|||
-gv_fetchfile_flags||5.009005|
-gv_fetchfile|||
-gv_fetchmeth_autoload||5.007003|
-gv_fetchmeth_internal|||
-gv_fetchmeth_pv_autoload||5.015004|
-gv_fetchmeth_pvn_autoload||5.015004|
-gv_fetchmeth_pvn||5.015004|
-gv_fetchmeth_pv||5.015004|
-gv_fetchmeth_sv_autoload||5.015004|
-gv_fetchmeth_sv||5.015004|
-gv_fetchmethod_autoload||5.004000|
-gv_fetchmethod|||
-gv_fetchmeth|||
-gv_fetchpvn_flags|5.009002||p
-gv_fetchpvs|5.009004||p
-gv_fetchpv|||
-gv_fetchsv|||
-gv_fullname3||5.003070|
-gv_fullname4||5.006001|
-gv_fullname|||
-gv_handler||5.007001|
-gv_init_pvn|||
-gv_init_pv||5.015004|
-gv_init_svtype|||
-gv_init_sv||5.015004|
-gv_init|||
-gv_is_in_main|||
-gv_magicalize_isa|||
-gv_magicalize|||
-gv_name_set||5.009004|
-gv_override|||
-gv_setref|||
-gv_stashpvn_internal|||
-gv_stashpvn|5.003070||p
-gv_stashpvs|5.009003||p
-gv_stashpv|||
-gv_stashsvpvn_cached|||
-gv_stashsv|||
-handle_named_backref|||
-handle_possible_posix|||
-handle_regex_sets|||
-handle_user_defined_property|||
-he_dup|||
-hek_dup|||
-hfree_next_entry|||
-hsplit|||
-hv_assert|||
-hv_auxinit_internal|||n
-hv_auxinit|||
-hv_clear_placeholders||5.009001|
-hv_clear|||
-hv_common_key_len||5.010000|
-hv_common||5.010000|
-hv_copy_hints_hv||5.009004|
-hv_delayfree_ent||5.004000|
-hv_delete_ent||5.003070|
-hv_delete|||
-hv_eiter_p||5.009003|
-hv_eiter_set||5.009003|
-hv_ename_add|||
-hv_ename_delete|||
-hv_exists_ent||5.003070|
-hv_exists|||
-hv_fetch_ent||5.003070|
-hv_fetchs|5.009003||p
-hv_fetch|||
-hv_fill||5.013002|
-hv_free_ent_ret|||
-hv_free_entries|||
-hv_free_ent||5.004000|
-hv_iterinit|||
-hv_iterkeysv||5.003070|
-hv_iterkey|||
-hv_iternextsv|||
-hv_iternext|||
-hv_iterval|||
-hv_ksplit||5.003070|
-hv_magic_check|||n
-hv_magic|||
-hv_name_set||5.009003|
-hv_notallowed|||
-hv_placeholders_get||5.009003|
-hv_placeholders_p|||
-hv_placeholders_set||5.009003|
-hv_pushkv|||
-hv_rand_set||5.018000|
-hv_riter_p||5.009003|
-hv_riter_set||5.009003|
-hv_scalar||5.009001|
-hv_store_ent||5.003070|
-hv_stores|5.009004||p
-hv_store|||
-hv_undef_flags|||
-hv_undef|||
-ibcmp_locale||5.004000|
-ibcmp_utf8||5.007003|
-ibcmp|||
-incline|||
-incpush_if_exists|||
-incpush_use_sep|||
-incpush|||
-ingroup|||
-init_argv_symbols|||
-init_constants|||
-init_dbargs|||
-init_debugger|||
-init_global_struct|||
-init_ids|||
-init_interp|||
-init_main_stash|||
-init_named_cv|||
-init_perllib|||
-init_postdump_symbols|||
-init_predump_symbols|||
-init_stacks||5.005000|
-init_tm||5.007002|
-init_uniprops|||
-inplace_aassign|||
-instr|||n
-intro_my||5.004000|
-intuit_method|||
-intuit_more|||
-invert|||
-invoke_exception_hook|||
-io_close|||
-isALNUMC_A|||p
-isALNUMC|5.006000||p
-isALNUM_A|||p
-isALNUM|||p
-isALPHANUMERIC_A|||p
-isALPHANUMERIC|5.017008|5.017008|p
-isALPHA_A|||p
-isALPHA|||p
-isASCII_A|||p
-isASCII|5.006000||p
-isBLANK_A|||p
-isBLANK|5.006001||p
-isC9_STRICT_UTF8_CHAR|||n
-isCNTRL_A|||p
-isCNTRL|5.006000||p
-isDIGIT_A|||p
-isDIGIT|||p
-isFF_OVERLONG|||n
-isFOO_utf8_lc|||
-isGCB|||
-isGRAPH_A|||p
-isGRAPH|5.006000||p
-isIDCONT_A|||p
-isIDCONT|5.017008|5.017008|p
-isIDFIRST_A|||p
-isIDFIRST|||p
-isLB|||
-isLOWER_A|||p
-isLOWER|||p
-isOCTAL_A|||p
-isOCTAL|5.013005|5.013005|p
-isPRINT_A|||p
-isPRINT|5.004000||p
-isPSXSPC_A|||p
-isPSXSPC|5.006001||p
-isPUNCT_A|||p
-isPUNCT|5.006000||p
-isSB|||
-isSCRIPT_RUN|||
-isSPACE_A|||p
-isSPACE|||p
-isSTRICT_UTF8_CHAR|||n
-isUPPER_A|||p
-isUPPER|||p
-isUTF8_CHAR_flags|||
-isUTF8_CHAR||5.021001|n
-isWB|||
-isWORDCHAR_A|||p
-isWORDCHAR|5.013006|5.013006|p
-isXDIGIT_A|||p
-isXDIGIT|5.006000||p
-is_an_int|||
-is_ascii_string||5.011000|n
-is_c9strict_utf8_string_loclen|||n
-is_c9strict_utf8_string_loc|||n
-is_c9strict_utf8_string|||n
-is_handle_constructor|||n
-is_invariant_string||5.021007|n
-is_lvalue_sub||5.007001|
-is_safe_syscall||5.019004|
-is_ssc_worth_it|||n
-is_strict_utf8_string_loclen|||n
-is_strict_utf8_string_loc|||n
-is_strict_utf8_string|||n
-is_utf8_char_buf||5.015008|n
-is_utf8_common_with_len|||
-is_utf8_common|||
-is_utf8_cp_above_31_bits|||n
-is_utf8_fixed_width_buf_flags|||n
-is_utf8_fixed_width_buf_loc_flags|||n
-is_utf8_fixed_width_buf_loclen_flags|||n
-is_utf8_invariant_string_loc|||n
-is_utf8_invariant_string|||n
-is_utf8_non_invariant_string|||n
-is_utf8_overlong_given_start_byte_ok|||n
-is_utf8_string_flags|||n
-is_utf8_string_loc_flags|||n
-is_utf8_string_loclen_flags|||n
-is_utf8_string_loclen||5.009003|n
-is_utf8_string_loc||5.008001|n
-is_utf8_string||5.006001|n
-is_utf8_valid_partial_char_flags|||n
-is_utf8_valid_partial_char|||n
-isa_lookup|||
-isinfnansv|||
-isinfnan||5.021004|n
-items|||n
-ix|||n
-jmaybe|||
-join_exact|||
-keyword_plugin_standard|||
-keyword|||
-leave_scope|||
-lex_stuff_pvs||5.013005|
-listkids|||
-list|||
-load_module_nocontext|||vn
-load_module|5.006000||pv
-localize|||
-looks_like_bool|||
-looks_like_number|||
-lop|||
-mPUSHi|5.009002||p
-mPUSHn|5.009002||p
-mPUSHp|5.009002||p
-mPUSHs|5.010001||p
-mPUSHu|5.009002||p
-mXPUSHi|5.009002||p
-mXPUSHn|5.009002||p
-mXPUSHp|5.009002||p
-mXPUSHs|5.010001||p
-mXPUSHu|5.009002||p
-magic_clear_all_env|||
-magic_cleararylen_p|||
-magic_clearenv|||
-magic_clearhints|||
-magic_clearhint|||
-magic_clearisa|||
-magic_clearpack|||
-magic_clearsig|||
-magic_copycallchecker|||
-magic_dump||5.006000|
-magic_existspack|||
-magic_freearylen_p|||
-magic_freeovrld|||
-magic_getarylen|||
-magic_getdebugvar|||
-magic_getdefelem|||
-magic_getnkeys|||
-magic_getpack|||
-magic_getpos|||
-magic_getsig|||
-magic_getsubstr|||
-magic_gettaint|||
-magic_getuvar|||
-magic_getvec|||
-magic_get|||
-magic_killbackrefs|||
-magic_methcall1|||
-magic_methcall|||v
-magic_methpack|||
-magic_nextpack|||
-magic_regdata_cnt|||
-magic_regdatum_get|||
-magic_regdatum_set|||
-magic_scalarpack|||
-magic_set_all_env|||
-magic_setarylen|||
-magic_setcollxfrm|||
-magic_setdbline|||
-magic_setdebugvar|||
-magic_setdefelem|||
-magic_setenv|||
-magic_sethint|||
-magic_setisa|||
-magic_setlvref|||
-magic_setmglob|||
-magic_setnkeys|||
-magic_setnonelem|||
-magic_setpack|||
-magic_setpos|||
-magic_setregexp|||
-magic_setsig|||
-magic_setsubstr|||
-magic_settaint|||
-magic_setutf8|||
-magic_setuvar|||
-magic_setvec|||
-magic_set|||
-magic_sizepack|||
-magic_wipepack|||
-make_matcher|||
-make_trie|||
-malloc_good_size|||n
-malloced_size|||n
-malloc||5.007002|n
-markstack_grow||5.021001|
-matcher_matches_sv|||
-maybe_multimagic_gv|||
-mayberelocate|||
-measure_struct|||
-memEQs|5.009005||p
-memEQ|5.004000||p
-memNEs|5.009005||p
-memNE|5.004000||p
-mem_collxfrm|||
-mem_log_alloc|||n
-mem_log_common|||n
-mem_log_free|||n
-mem_log_realloc|||n
-mess_alloc|||
-mess_nocontext|||pvn
-mess_sv|5.013001||p
-mess|5.006000||pv
-mfree||5.007002|n
-mg_clear|||
-mg_copy|||
-mg_dup|||
-mg_find_mglob|||
-mg_findext|5.013008||pn
-mg_find|||n
-mg_free_type||5.013006|
-mg_freeext|||
-mg_free|||
-mg_get|||
-mg_localize|||
-mg_magical|||n
-mg_set|||
-mg_size||5.005000|
-mini_mktime||5.007002|n
-minus_v|||
-missingterm|||
-mode_from_discipline|||
-modkids|||
-more_bodies|||
-more_sv|||
-moreswitches|||
-move_proto_attr|||
-mro_clean_isarev|||
-mro_gather_and_rename|||
-mro_get_from_name||5.010001|
-mro_get_linear_isa_dfs|||
-mro_get_linear_isa||5.009005|
-mro_get_private_data||5.010001|
-mro_isa_changed_in|||
-mro_meta_dup|||
-mro_meta_init|||
-mro_method_changed_in||5.009005|
-mro_package_moved|||
-mro_register||5.010001|
-mro_set_mro||5.010001|
-mro_set_private_data||5.010001|
-mul128|||
-multiconcat_stringify|||
-multideref_stringify|||
-my_atof2||5.007002|
-my_atof3|||
-my_atof||5.006000|
-my_attrs|||
-my_bytes_to_utf8|||n
-my_chsize|||
-my_clearenv|||
-my_cxt_index|||
-my_cxt_init|||
-my_dirfd||5.009005|n
-my_exit_jump|||
-my_exit|||
-my_failure_exit||5.004000|
-my_fflush_all||5.006000|
-my_fork||5.007003|n
-my_kid|||
-my_lstat_flags|||
-my_lstat||5.024000|
-my_memrchr|||n
-my_mkostemp|||n
-my_mkstemp_cloexec|||n
-my_mkstemp|||n
-my_nl_langinfo|||n
-my_pclose||5.003070|
-my_popen_list||5.007001|
-my_popen||5.003070|
-my_setenv|||
-my_snprintf|5.009004||pvn
-my_socketpair||5.007003|n
-my_sprintf|5.009003||pvn
-my_stat_flags|||
-my_stat||5.024000|
-my_strerror|||
-my_strftime||5.007002|
-my_strlcat|5.009004||pn
-my_strlcpy|5.009004||pn
-my_strnlen|||pn
-my_strtod|||n
-my_unexec|||
-my_vsnprintf||5.009004|n
-need_utf8|||n
-newANONATTRSUB||5.006000|
-newANONHASH|||
-newANONLIST|||
-newANONSUB|||
-newASSIGNOP|||
-newATTRSUB_x|||
-newATTRSUB||5.006000|
-newAVREF|||
-newAV|||
-newBINOP|||
-newCONDOP|||
-newCONSTSUB_flags||5.015006|
-newCONSTSUB|5.004050||p
-newCVREF|||
-newDEFSVOP||5.021006|
-newFORM|||
-newFOROP||5.013007|
-newGIVENOP||5.009003|
-newGIVWHENOP|||
-newGVOP|||
-newGVREF|||
-newGVgen_flags||5.015004|
-newGVgen|||
-newHVREF|||
-newHVhv||5.005000|
-newHV|||
-newIO|||
-newLISTOP|||
-newLOGOP|||
-newLOOPEX|||
-newLOOPOP|||
-newMETHOP_internal|||
-newMETHOP_named||5.021005|
-newMETHOP||5.021005|
-newMYSUB||5.017004|
-newNULLLIST|||
-newOP|||
-newPADOP|||
-newPMOP|||
-newPROG|||
-newPVOP|||
-newRANGE|||
-newRV_inc|5.004000||p
-newRV_noinc|5.004000||p
-newRV|||
-newSLICEOP|||
-newSTATEOP|||
-newSTUB|||
-newSUB|||
-newSVOP|||
-newSVREF|||
-newSV_type|5.009005||p
-newSVavdefelem|||
-newSVhek||5.009003|
-newSViv|||
-newSVnv|||
-newSVpadname||5.017004|
-newSVpv_share||5.013006|
-newSVpvf_nocontext|||vn
-newSVpvf||5.004000|v
-newSVpvn_flags|5.010001||p
-newSVpvn_share|5.007001||p
-newSVpvn_utf8|5.010001||p
-newSVpvn|5.004050||p
-newSVpvs_flags|5.010001||p
-newSVpvs_share|5.009003||p
-newSVpvs|5.009003||p
-newSVpv|||
-newSVrv|||
-newSVsv_flags|||
-newSVsv_nomg|||
-newSVsv|||
-newSVuv|5.006000||p
-newSV|||
-newUNOP_AUX||5.021007|
-newUNOP|||
-newWHENOP||5.009003|
-newWHILEOP||5.013007|
-newXS_deffile|||
-newXS_len_flags|||
-newXSproto||5.006000|
-newXS||5.006000|
-new_collate|||
-new_constant|||
-new_ctype|||
-new_he|||
-new_logop|||
-new_msg_hv|||
-new_numeric|||
-new_regcurly|||n
-new_stackinfo||5.005000|
-new_version||5.009000|
-next_symbol|||
-nextargv|||
-nextchar|||
-ninstr|||n
-no_bareword_allowed|||
-no_fh_allowed|||
-no_op|||
-noperl_die|||vn
-not_a_number|||
-not_incrementable|||
-nothreadhook||5.008000|
-notify_parser_that_changed_to_utf8|||
-nuke_stacks|||
-num_overflow|||n
-oopsAV|||
-oopsHV|||
-op_append_elem||5.013006|
-op_append_list||5.013006|
-op_class|||
-op_clear|||
-op_contextualize||5.013006|
-op_convert_list||5.021006|
-op_dump||5.006000|
-op_free|||
-op_integerize|||
-op_linklist||5.013006|
-op_lvalue_flags|||
-op_null||5.007002|
-op_parent|||n
-op_prepend_elem||5.013006|
-op_refcnt_lock||5.009002|
-op_refcnt_unlock||5.009002|
-op_relocate_sv|||
-op_sibling_splice||5.021002|n
-op_std_init|||
-open_script|||
-openn_cleanup|||
-openn_setup|||
-opmethod_stash|||
-opslab_force_free|||
-opslab_free_nopad|||
-opslab_free|||
-optimize_optree|||
-optimize_op|||
-output_posix_warnings|||
-pMY_CXT_|5.007003||p
-pMY_CXT|5.007003||p
-pTHX_|5.006000||p
-pTHX|5.006000||p
-packWARN|5.007003||p
-pack_cat||5.007003|
-pack_rec|||
-package_version|||
-package|||
-packlist||5.008001|
-pad_add_anon||5.008001|
-pad_add_name_pvn||5.015001|
-pad_add_name_pvs||5.015001|
-pad_add_name_pv||5.015001|
-pad_add_name_sv||5.015001|
-pad_add_weakref|||
-pad_alloc_name|||
-pad_block_start|||
-pad_check_dup|||
-pad_compname_type||5.009003|
-pad_findlex|||
-pad_findmy_pvn||5.015001|
-pad_findmy_pvs||5.015001|
-pad_findmy_pv||5.015001|
-pad_findmy_sv||5.015001|
-pad_fixup_inner_anons|||
-pad_free|||
-pad_leavemy|||
-pad_new||5.008001|
-pad_push|||
-pad_reset|||
-pad_setsv|||
-pad_sv|||
-pad_swipe|||
-padlist_dup|||
-padlist_store|||
-padname_dup|||
-padname_free|||
-padnamelist_dup|||
-padnamelist_free|||
-parse_body|||
-parse_gv_stash_name|||
-parse_ident|||
-parse_lparen_question_flags|||
-parse_unicode_opts|||
-parse_uniprop_string|||
-parser_dup|||
-parser_free_nexttoke_ops|||
-parser_free|||
-path_is_searchable|||n
-peep|||
-pending_ident|||
-perl_alloc_using|||n
-perl_alloc|||n
-perl_clone_using|||n
-perl_clone|||n
-perl_construct|||n
-perl_destruct||5.007003|n
-perl_free|||n
-perl_parse||5.006000|n
-perl_run|||n
-pidgone|||
-pm_description|||
-pmop_dump||5.006000|
-pmruntime|||
-pmtrans|||
-pop_scope|||
-populate_ANYOF_from_invlist|||
-populate_isa|||v
-pregcomp||5.009005|
-pregexec|||
-pregfree2||5.011000|
-pregfree|||
-prescan_version||5.011004|
-print_bytes_for_locale|||
-print_collxfrm_input_and_return|||
-printbuf|||
-printf_nocontext|||vn
-process_special_blocks|||
-ptr_hash|||n
-ptr_table_fetch||5.009005|
-ptr_table_find|||n
-ptr_table_free||5.009005|
-ptr_table_new||5.009005|
-ptr_table_split||5.009005|
-ptr_table_store||5.009005|
-push_scope|||
-put_charclass_bitmap_innards_common|||
-put_charclass_bitmap_innards_invlist|||
-put_charclass_bitmap_innards|||
-put_code_point|||
-put_range|||
-pv_display|5.006000||p
-pv_escape|5.009004||p
-pv_pretty|5.009004||p
-pv_uni_display||5.007003|
-qerror|||
-quadmath_format_needed|||n
-quadmath_format_single|||n
-re_compile||5.009005|
-re_croak2|||
-re_dup_guts|||
-re_exec_indentf|||v
-re_indentf|||v
-re_intuit_start||5.019001|
-re_intuit_string||5.006000|
-re_op_compile|||
-re_printf|||v
-realloc||5.007002|n
-reentrant_free||5.024000|
-reentrant_init||5.024000|
-reentrant_retry||5.024000|vn
-reentrant_size||5.024000|
-ref_array_or_hash|||
-refcounted_he_chain_2hv|||
-refcounted_he_fetch_pvn|||
-refcounted_he_fetch_pvs|||
-refcounted_he_fetch_pv|||
-refcounted_he_fetch_sv|||
-refcounted_he_free|||
-refcounted_he_inc|||
-refcounted_he_new_pvn|||
-refcounted_he_new_pvs|||
-refcounted_he_new_pv|||
-refcounted_he_new_sv|||
-refcounted_he_value|||
-refkids|||
-refto|||
-ref||5.024000|
-reg2Lanode|||
-reg_check_named_buff_matched|||n
-reg_named_buff_all||5.009005|
-reg_named_buff_exists||5.009005|
-reg_named_buff_fetch||5.009005|
-reg_named_buff_firstkey||5.009005|
-reg_named_buff_iter|||
-reg_named_buff_nextkey||5.009005|
-reg_named_buff_scalar||5.009005|
-reg_named_buff|||
-reg_node|||
-reg_numbered_buff_fetch|||
-reg_numbered_buff_length|||
-reg_numbered_buff_store|||
-reg_qr_package|||
-reg_scan_name|||
-reg_skipcomment|||n
-reg_temp_copy|||
-reganode|||
-regatom|||
-regbranch|||
-regclass|||
-regcp_restore|||
-regcppop|||
-regcppush|||
-regcurly|||n
-regdump_extflags|||
-regdump_intflags|||
-regdump||5.005000|
-regdupe_internal|||
-regex_set_precedence|||n
-regexec_flags||5.005000|
-regfree_internal||5.009005|
-reghop3|||n
-reghop4|||n
-reghopmaybe3|||n
-reginclass|||
-reginitcolors||5.006000|
-reginsert|||
-regmatch|||
-regnext||5.005000|
-regnode_guts|||
-regpiece|||
-regprop|||
-regrepeat|||
-regtail_study|||
-regtail|||
-regtry|||
-reg|||
-repeatcpy|||n
-report_evil_fh|||
-report_redefined_cv|||
-report_uninit|||
-report_wrongway_fh|||
-require_pv||5.006000|
-require_tie_mod|||
-restore_magic|||
-restore_switched_locale|||
-rninstr|||n
-rpeep|||
-rsignal_restore|||
-rsignal_save|||
-rsignal_state||5.004000|
-rsignal||5.004000|
-run_body|||
-run_user_filter|||
-runops_debug||5.005000|
-runops_standard||5.005000|
-rv2cv_op_cv||5.013006|
-rvpv_dup|||
-rxres_free|||
-rxres_restore|||
-rxres_save|||
-safesyscalloc||5.006000|n
-safesysfree||5.006000|n
-safesysmalloc||5.006000|n
-safesysrealloc||5.006000|n
-same_dirent|||
-save_I16||5.004000|
-save_I32|||
-save_I8||5.006000|
-save_adelete||5.011000|
-save_aelem_flags||5.011000|
-save_aelem||5.004050|
-save_alloc||5.006000|
-save_aptr|||
-save_ary|||
-save_bool||5.008001|
-save_clearsv|||
-save_delete|||
-save_destructor_x||5.006000|
-save_destructor||5.006000|
-save_freeop|||
-save_freepv|||
-save_freesv|||
-save_generic_pvref||5.006001|
-save_generic_svref||5.005030|
-save_gp||5.004000|
-save_hash|||
-save_hdelete||5.011000|
-save_hek_flags|||n
-save_helem_flags||5.011000|
-save_helem||5.004050|
-save_hints||5.010001|
-save_hptr|||
-save_int|||
-save_item|||
-save_iv||5.005000|
-save_lines|||
-save_list|||
-save_long|||
-save_magic_flags|||
-save_mortalizesv||5.007001|
-save_nogv|||
-save_op||5.005000|
-save_padsv_and_mortalize||5.010001|
-save_pptr|||
-save_pushi32ptr||5.010001|
-save_pushptri32ptr|||
-save_pushptrptr||5.010001|
-save_pushptr||5.010001|
-save_re_context||5.006000|
-save_scalar_at|||
-save_scalar|||
-save_set_svflags||5.009000|
-save_shared_pvref||5.007003|
-save_sptr|||
-save_strlen|||
-save_svref|||
-save_to_buffer|||n
-save_vptr||5.006000|
-savepvn|||
-savepvs||5.009003|
-savepv|||
-savesharedpvn||5.009005|
-savesharedpvs||5.013006|
-savesharedpv||5.007003|
-savesharedsvpv||5.013006|
-savestack_grow_cnt||5.008001|
-savestack_grow|||
-savesvpv||5.009002|
-sawparens|||
-scalar_mod_type|||n
-scalarboolean|||
-scalarkids|||
-scalarseq|||
-scalarvoid|||
-scalar|||
-scan_bin||5.006000|
-scan_commit|||
-scan_const|||
-scan_formline|||
-scan_heredoc|||
-scan_hex|||
-scan_ident|||
-scan_inputsymbol|||
-scan_num||5.007001|
-scan_oct|||
-scan_pat|||
-scan_subst|||
-scan_trans|||
-scan_version||5.009001|
-scan_vstring||5.009005|
-search_const|||
-seed||5.008001|
-sequence_num|||
-set_ANYOF_arg|||
-set_caret_X|||
-set_context||5.006000|n
-set_numeric_radix||5.006000|
-set_numeric_standard||5.006000|
-set_numeric_underlying|||
-set_padlist|||n
-set_regex_pv|||
-setdefout|||
-setfd_cloexec_for_nonsysfd|||
-setfd_cloexec_or_inhexec_by_sysfdness|||
-setfd_cloexec|||n
-setfd_inhexec_for_sysfd|||
-setfd_inhexec|||n
-setlocale_debug_string|||n
-share_hek_flags|||
-share_hek||5.004000|
-should_warn_nl|||n
-si_dup|||
-sighandler|||n
-simplify_sort|||
-skip_to_be_ignored_text|||
-softref2xv|||
-sortcv_stacked|||
-sortcv_xsub|||
-sortcv|||
-sortsv_flags||5.009003|
-sortsv||5.007003|
-space_join_names_mortal|||
-ss_dup|||
-ssc_add_range|||
-ssc_and|||
-ssc_anything|||
-ssc_clear_locale|||n
-ssc_cp_and|||
-ssc_finalize|||
-ssc_init|||
-ssc_intersection|||
-ssc_is_anything|||n
-ssc_is_cp_posixl_init|||n
-ssc_or|||
-ssc_union|||
-stack_grow|||
-start_subparse||5.004000|
-stdize_locale|||
-strEQ|||
-strGE|||
-strGT|||
-strLE|||
-strLT|||
-strNE|||
-str_to_version||5.006000|
-strip_return|||
-strnEQ|||
-strnNE|||
-study_chunk|||
-sub_crush_depth|||
-sublex_done|||
-sublex_push|||
-sublex_start|||
-sv_2bool_flags||5.013006|
-sv_2bool|||
-sv_2cv|||
-sv_2io|||
-sv_2iuv_common|||
-sv_2iuv_non_preserve|||
-sv_2iv_flags||5.009001|
-sv_2iv|||
-sv_2mortal|||
-sv_2nv_flags||5.013001|
-sv_2pv_flags|5.007002||p
-sv_2pv_nolen|5.006000||p
-sv_2pvbyte_nolen|5.006000||p
-sv_2pvbyte|5.006000||p
-sv_2pvutf8_nolen||5.006000|
-sv_2pvutf8||5.006000|
-sv_2pv|||
-sv_2uv_flags||5.009001|
-sv_2uv|5.004000||p
-sv_add_arena|||
-sv_add_backref|||
-sv_backoff|||n
-sv_bless|||
-sv_buf_to_ro|||
-sv_buf_to_rw|||
-sv_cat_decode||5.008001|
-sv_catpv_flags||5.013006|
-sv_catpv_mg|5.004050||p
-sv_catpv_nomg||5.013006|
-sv_catpvf_mg_nocontext|||pvn
-sv_catpvf_mg|5.006000|5.004000|pv
-sv_catpvf_nocontext|||vn
-sv_catpvf||5.004000|v
-sv_catpvn_flags||5.007002|
-sv_catpvn_mg|5.004050||p
-sv_catpvn_nomg|5.007002||p
-sv_catpvn|||
-sv_catpvs_flags||5.013006|
-sv_catpvs_mg||5.013006|
-sv_catpvs_nomg||5.013006|
-sv_catpvs|5.009003||p
-sv_catpv|||
-sv_catsv_flags||5.007002|
-sv_catsv_mg|5.004050||p
-sv_catsv_nomg|5.007002||p
-sv_catsv|||
-sv_chop|||
-sv_clean_all|||
-sv_clean_objs|||
-sv_clear|||
-sv_cmp_flags||5.013006|
-sv_cmp_locale_flags||5.013006|
-sv_cmp_locale||5.004000|
-sv_cmp|||
-sv_collxfrm_flags||5.013006|
-sv_collxfrm|||
-sv_copypv_flags||5.017002|
-sv_copypv_nomg||5.017002|
-sv_copypv|||
-sv_dec_nomg||5.013002|
-sv_dec|||
-sv_del_backref|||
-sv_derived_from_pvn||5.015004|
-sv_derived_from_pv||5.015004|
-sv_derived_from_sv||5.015004|
-sv_derived_from||5.004000|
-sv_destroyable||5.010000|
-sv_display|||
-sv_does_pvn||5.015004|
-sv_does_pv||5.015004|
-sv_does_sv||5.015004|
-sv_does||5.009004|
-sv_dump|||
-sv_dup_common|||
-sv_dup_inc_multiple|||
-sv_dup_inc|||
-sv_dup|||
-sv_eq_flags||5.013006|
-sv_eq|||
-sv_exp_grow|||
-sv_force_normal_flags||5.007001|
-sv_force_normal||5.006000|
-sv_free_arenas|||
-sv_free|||
-sv_gets||5.003070|
-sv_grow|||
-sv_i_ncmp|||
-sv_inc_nomg||5.013002|
-sv_inc|||
-sv_insert_flags||5.010001|
-sv_insert|||
-sv_isa|||
-sv_isobject|||
-sv_iv||5.005000|
-sv_len_utf8_nomg|||
-sv_len_utf8||5.006000|
-sv_len|||
-sv_magic_portable|5.024000|5.004000|p
-sv_magicext_mglob|||
-sv_magicext||5.007003|
-sv_magic|||
-sv_mortalcopy_flags|||
-sv_mortalcopy|||
-sv_ncmp|||
-sv_newmortal|||
-sv_newref|||
-sv_nolocking||5.007003|
-sv_nosharing||5.007003|
-sv_nounlocking|||
-sv_nv||5.005000|
-sv_only_taint_gmagic|||n
-sv_or_pv_pos_u2b|||
-sv_peek||5.005000|
-sv_pos_b2u_flags||5.019003|
-sv_pos_b2u_midway|||
-sv_pos_b2u||5.006000|
-sv_pos_u2b_cached|||
-sv_pos_u2b_flags||5.011005|
-sv_pos_u2b_forwards|||n
-sv_pos_u2b_midway|||n
-sv_pos_u2b||5.006000|
-sv_pvbyten_force||5.006000|
-sv_pvbyten||5.006000|
-sv_pvbyte||5.006000|
-sv_pvn_force_flags|5.007002||p
-sv_pvn_force|||
-sv_pvn_nomg|5.007003|5.005000|p
-sv_pvn||5.005000|
-sv_pvutf8n_force||5.006000|
-sv_pvutf8n||5.006000|
-sv_pvutf8||5.006000|
-sv_pv||5.006000|
-sv_recode_to_utf8||5.007003|
-sv_reftype|||
-sv_ref||5.015004|
-sv_replace|||
-sv_report_used|||
-sv_resetpvn|||
-sv_reset|||
-sv_rvunweaken|||
-sv_rvweaken||5.006000|
-sv_set_undef|||
-sv_sethek|||
-sv_setiv_mg|5.004050||p
-sv_setiv|||
-sv_setnv_mg|5.006000||p
-sv_setnv|||
-sv_setpv_bufsize|||
-sv_setpv_mg|5.004050||p
-sv_setpvf_mg_nocontext|||pvn
-sv_setpvf_mg|5.006000|5.004000|pv
-sv_setpvf_nocontext|||vn
-sv_setpvf||5.004000|v
-sv_setpviv_mg||5.008001|
-sv_setpviv||5.008001|
-sv_setpvn_mg|5.004050||p
-sv_setpvn|||
-sv_setpvs_mg||5.013006|
-sv_setpvs|5.009004||p
-sv_setpv|||
-sv_setref_iv|||
-sv_setref_nv|||
-sv_setref_pvn|||
-sv_setref_pvs||5.024000|
-sv_setref_pv|||
-sv_setref_uv||5.007001|
-sv_setsv_flags||5.007002|
-sv_setsv_mg|5.004050||p
-sv_setsv_nomg|5.007002||p
-sv_setsv|||
-sv_setuv_mg|5.004050||p
-sv_setuv|5.004000||p
-sv_string_from_errnum|||
-sv_tainted||5.004000|
-sv_taint||5.004000|
-sv_true||5.005000|
-sv_unglob|||
-sv_uni_display||5.007003|
-sv_unmagicext|5.013008||p
-sv_unmagic|||
-sv_unref_flags||5.007001|
-sv_unref|||
-sv_untaint||5.004000|
-sv_upgrade|||
-sv_usepvn_flags||5.009004|
-sv_usepvn_mg|5.004050||p
-sv_usepvn|||
-sv_utf8_decode|||
-sv_utf8_downgrade|||
-sv_utf8_encode||5.006000|
-sv_utf8_upgrade_flags_grow||5.011000|
-sv_utf8_upgrade_flags||5.007002|
-sv_utf8_upgrade_nomg||5.007002|
-sv_utf8_upgrade||5.007001|
-sv_uv|5.005000||p
-sv_vcatpvf_mg|5.006000|5.004000|p
-sv_vcatpvfn_flags||5.017002|
-sv_vcatpvfn||5.004000|
-sv_vcatpvf|5.006000|5.004000|p
-sv_vsetpvf_mg|5.006000|5.004000|p
-sv_vsetpvfn||5.004000|
-sv_vsetpvf|5.006000|5.004000|p
-svtype|||
-swallow_bom|||
-swatch_get|||
-switch_category_locale_to_template|||
-switch_to_global_locale|||n
-sync_locale||5.021004|n
-sys_init3||5.010000|n
-sys_init||5.010000|n
-sys_intern_clear|||
-sys_intern_dup|||
-sys_intern_init|||
-sys_term||5.010000|n
-taint_env|||
-taint_proper|||
-tied_method|||v
-tmps_grow_p|||
-toFOLD_utf8_safe|||
-toFOLD_utf8||5.019001|
-toFOLD_uvchr||5.023009|
-toFOLD||5.019001|
-toLOWER_L1||5.019001|
-toLOWER_LC||5.004000|
-toLOWER_utf8_safe|||
-toLOWER_utf8||5.015007|
-toLOWER_uvchr||5.023009|
-toLOWER|||
-toTITLE_utf8_safe|||
-toTITLE_utf8||5.015007|
-toTITLE_uvchr||5.023009|
-toTITLE||5.019001|
-toUPPER_utf8_safe|||
-toUPPER_utf8||5.015007|
-toUPPER_uvchr||5.023009|
-toUPPER|||
-to_byte_substr|||
-to_lower_latin1|||n
-to_utf8_substr|||
-tokenize_use|||
-tokeq|||
-tokereport|||
-too_few_arguments_pv|||
-too_many_arguments_pv|||
-translate_substr_offsets|||n
-traverse_op_tree|||
-try_amagic_bin|||
-try_amagic_un|||
-turkic_fc|||
-turkic_lc|||
-turkic_uc|||
-uiv_2buf|||n
-unlnk|||
-unpack_rec|||
-unpack_str||5.007003|
-unpackstring||5.008001|
-unreferenced_to_tmp_stack|||
-unshare_hek_or_pvn|||
-unshare_hek|||
-unsharepvn||5.003070|
-unwind_handler_stack|||
-update_debugger_info|||
-upg_version||5.009005|
-usage|||
-utf16_textfilter|||
-utf16_to_utf8_reversed||5.006001|
-utf16_to_utf8||5.006001|
-utf8_distance||5.006000|
-utf8_hop_back|||n
-utf8_hop_forward|||n
-utf8_hop_safe|||n
-utf8_hop||5.006000|n
-utf8_length||5.007001|
-utf8_mg_len_cache_update|||
-utf8_mg_pos_cache_update|||
-utf8_to_uvchr_buf|5.015009|5.015009|p
-utf8_to_uvchr|||p
-utf8n_to_uvchr_error|||n
-utf8n_to_uvchr||5.007001|n
-utf8n_to_uvuni||5.007001|
-utilize|||
-uvchr_to_utf8_flags||5.007003|
-uvchr_to_utf8||5.007001|
-uvoffuni_to_utf8_flags||5.019004|
-uvuni_to_utf8_flags||5.007003|
-uvuni_to_utf8||5.007001|
-valid_utf8_to_uvchr|||n
-validate_suid|||
-variant_under_utf8_count|||n
-varname|||
-vcmp||5.009000|
-vcroak||5.006000|
-vdeb||5.007003|
-vform||5.006000|
-visit|||
-vivify_defelem|||
-vivify_ref|||
-vload_module|5.006000||p
-vmess|5.006000|5.006000|p
-vnewSVpvf|5.006000|5.004000|p
-vnormal||5.009002|
-vnumify||5.009000|
-vstringify||5.009000|
-vverify||5.009003|
-vwarner||5.006000|
-vwarn||5.006000|
-wait4pid|||
-warn_nocontext|||pvn
-warn_on_first_deprecated_use|||
-warn_sv|5.013001||p
-warner_nocontext|||vn
-warner|5.006000|5.004000|pv
-warn|||v
-was_lvalue_sub|||
-watch|||
-whichsig_pvn||5.015004|
-whichsig_pv||5.015004|
-whichsig_sv||5.015004|
-whichsig|||
-win32_croak_not_implemented|||n
-win32_setlocale|||
-with_queued_errors|||
-wrap_op_checker||5.015008|
-write_to_stderr|||
-xs_boot_epilog|||
-xs_handshake|||vn
-xs_version_bootcheck|||
-yyerror_pvn|||
-yyerror_pv|||
-yyerror|||
-yylex|||
-yyparse|||
-yyquit|||
-yyunlex|||
-yywarn|||
-);
-
-if (exists $opt{'list-unsupported'}) {
-  my $f;
-  for $f (sort { lc $a cmp lc $b } keys %API) {
-    next unless $API{$f}{todo};
-    print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n";
-  }
-  exit 0;
-}
-
-# Scan for possible replacement candidates
-
-my(%replace, %need, %hints, %warnings, %depends);
-my $replace = 0;
-my($hint, $define, $function);
-
-sub find_api
-{
-  my $code = shift;
-  $code =~ s{
-    / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
-  | "[^"\\]*(?:\\.[^"\\]*)*"
-  | '[^'\\]*(?:\\.[^'\\]*)*' }{}egsx;
-  grep { exists $API{$_} } $code =~ /(\w+)/mg;
-}
-
-while (<DATA>) {
-  if ($hint) {
-    my $h = $hint->[0] eq 'Hint' ? \%hints : \%warnings;
-    if (m{^\s*\*\s(.*?)\s*$}) {
-      for (@{$hint->[1]}) {
-        $h->{$_} ||= '';  # suppress warning with older perls
-        $h->{$_} .= "$1\n";
-      }
-    }
-    else { undef $hint }
-  }
-
-  $hint = [$1, [split /,?\s+/, $2]]
-      if m{^\s*$rccs\s+(Hint|Warning):\s+(\w+(?:,?\s+\w+)*)\s*$};
-
-  if ($define) {
-    if ($define->[1] =~ /\\$/) {
-      $define->[1] .= $_;
-    }
-    else {
-      if (exists $API{$define->[0]} && $define->[1] !~ /^DPPP_\(/) {
-        my @n = find_api($define->[1]);
-        push @{$depends{$define->[0]}}, @n if @n
-      }
-      undef $define;
-    }
-  }
-
-  $define = [$1, $2] if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(.*)};
-
-  if ($function) {
-    if (/^}/) {
-      if (exists $API{$function->[0]}) {
-        my @n = find_api($function->[1]);
-        push @{$depends{$function->[0]}}, @n if @n
-      }
-      undef $function;
-    }
-    else {
-      $function->[1] .= $_;
-    }
-  }
-
-  $function = [$1, ''] if m{^DPPP_\(my_(\w+)\)};
-
-  $replace     = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$};
-  $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)};
-  $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce};
-  $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$};
-
-  if (m{^\s*$rccs\s+(\w+(\s*,\s*\w+)*)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) {
-    my @deps = map { s/\s+//g; $_ } split /,/, $3;
-    my $d;
-    for $d (map { s/\s+//g; $_ } split /,/, $1) {
-      push @{$depends{$d}}, @deps;
-    }
-  }
-
-  $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)};
-}
-
-for (values %depends) {
-  my %s;
-  $_ = [sort grep !$s{$_}++, @$_];
-}
-
-if (exists $opt{'api-info'}) {
-  my $f;
-  my $count = 0;
-  my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$";
-  for $f (sort { lc $a cmp lc $b } keys %API) {
-    next unless $f =~ /$match/;
-    print "\n=== $f ===\n\n";
-    my $info = 0;
-    if ($API{$f}{base} || $API{$f}{todo}) {
-      my $base = format_version($API{$f}{base} || $API{$f}{todo});
-      print "Supported at least starting from perl-$base.\n";
-      $info++;
-    }
-    if ($API{$f}{provided}) {
-      my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003";
-      print "Support by $ppport provided back to perl-$todo.\n";
-      print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f};
-      print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f};
-      print "\n$hints{$f}" if exists $hints{$f};
-      print "\nWARNING:\n$warnings{$f}" if exists $warnings{$f};
-      $info++;
-    }
-    print "No portability information available.\n" unless $info;
-    $count++;
-  }
-  $count or print "Found no API matching '$opt{'api-info'}'.";
-  print "\n";
-  exit 0;
-}
-
-if (exists $opt{'list-provided'}) {
-  my $f;
-  for $f (sort { lc $a cmp lc $b } keys %API) {
-    next unless $API{$f}{provided};
-    my @flags;
-    push @flags, 'explicit' if exists $need{$f};
-    push @flags, 'depend'   if exists $depends{$f};
-    push @flags, 'hint'     if exists $hints{$f};
-    push @flags, 'warning'  if exists $warnings{$f};
-    my $flags = @flags ? '  ['.join(', ', @flags).']' : '';
-    print "$f$flags\n";
-  }
-  exit 0;
-}
-
-my @files;
-my @srcext = qw( .xs .c .h .cc .cpp -c.inc -xs.inc );
-my $srcext = join '|', map { quotemeta $_ } @srcext;
-
-if (@ARGV) {
-  my %seen;
-  for (@ARGV) {
-    if (-e) {
-      if (-f) {
-        push @files, $_ unless $seen{$_}++;
-      }
-      else { warn "'$_' is not a file.\n" }
-    }
-    else {
-      my @new = grep { -f } glob $_
-          or warn "'$_' does not exist.\n";
-      push @files, grep { !$seen{$_}++ } @new;
-    }
-  }
-}
-else {
-  eval {
-    require File::Find;
-    File::Find::find(sub {
-      $File::Find::name =~ /($srcext)$/i
-          and push @files, $File::Find::name;
-    }, '.');
-  };
-  if ($@) {
-    @files = map { glob "*$_" } @srcext;
-  }
-}
-
-if (!@ARGV || $opt{filter}) {
-  my(@in, @out);
-  my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files;
-  for (@files) {
-    my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/($srcext)$/i;
-    push @{ $out ? \@out : \@in }, $_;
-  }
-  if (@ARGV && @out) {
-    warning("Skipping the following files (use --nofilter to avoid this):\n| ", join "\n| ", @out);
-  }
-  @files = @in;
-}
-
-die "No input files given!\n" unless @files;
-
-my(%files, %global, %revreplace);
-%revreplace = reverse %replace;
-my $filename;
-my $patch_opened = 0;
-
-for $filename (@files) {
-  unless (open IN, "<$filename") {
-    warn "Unable to read from $filename: $!\n";
-    next;
-  }
-
-  info("Scanning $filename ...");
-
-  my $c = do { local $/; <IN> };
-  close IN;
-
-  my %file = (orig => $c, changes => 0);
-
-  # Temporarily remove C/XS comments and strings from the code
-  my @ccom;
-
-  $c =~ s{
-    ( ^$HS*\#$HS*include\b[^\r\n]+\b(?:\Q$ppport\E|XSUB\.h)\b[^\r\n]*
-    | ^$HS*\#$HS*(?:define|elif|if(?:def)?)\b[^\r\n]* )
-  | ( ^$HS*\#[^\r\n]*
-    | "[^"\\]*(?:\\.[^"\\]*)*"
-    | '[^'\\]*(?:\\.[^'\\]*)*'
-    | / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* ) )
-  }{ defined $2 and push @ccom, $2;
-     defined $1 ? $1 : "$ccs$#ccom$cce" }mgsex;
-
-  $file{ccom} = \@ccom;
-  $file{code} = $c;
-  $file{has_inc_ppport} = $c =~ /^$HS*#$HS*include[^\r\n]+\b\Q$ppport\E\b/m;
-
-  my $func;
-
-  for $func (keys %API) {
-    my $match = $func;
-    $match .= "|$revreplace{$func}" if exists $revreplace{$func};
-    if ($c =~ /\b(?:Perl_)?($match)\b/) {
-      $file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func};
-      $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/;
-      if (exists $API{$func}{provided}) {
-        $file{uses_provided}{$func}++;
-        if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) {
-          $file{uses}{$func}++;
-          my @deps = rec_depend($func);
-          if (@deps) {
-            $file{uses_deps}{$func} = \@deps;
-            for (@deps) {
-              $file{uses}{$_} = 0 unless exists $file{uses}{$_};
-            }
-          }
-          for ($func, @deps) {
-            $file{needs}{$_} = 'static' if exists $need{$_};
-          }
-        }
-      }
-      if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) {
-        if ($c =~ /\b$func\b/) {
-          $file{uses_todo}{$func}++;
-        }
-      }
-    }
-  }
-
-  while ($c =~ /^$HS*#$HS*define$HS+(NEED_(\w+?)(_GLOBAL)?)\b/mg) {
-    if (exists $need{$2}) {
-      $file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++;
-    }
-    else { warning("Possibly wrong #define $1 in $filename") }
-  }
-
-  for (qw(uses needs uses_todo needed_global needed_static)) {
-    for $func (keys %{$file{$_}}) {
-      push @{$global{$_}{$func}}, $filename;
-    }
-  }
-
-  $files{$filename} = \%file;
-}
-
-# Globally resolve NEED_'s
-my $need;
-for $need (keys %{$global{needs}}) {
-  if (@{$global{needs}{$need}} > 1) {
-    my @targets = @{$global{needs}{$need}};
-    my @t = grep $files{$_}{needed_global}{$need}, @targets;
-    @targets = @t if @t;
-    @t = grep /\.xs$/i, @targets;
-    @targets = @t if @t;
-    my $target = shift @targets;
-    $files{$target}{needs}{$need} = 'global';
-    for (@{$global{needs}{$need}}) {
-      $files{$_}{needs}{$need} = 'extern' if $_ ne $target;
-    }
-  }
-}
-
-for $filename (@files) {
-  exists $files{$filename} or next;
-
-  info("=== Analyzing $filename ===");
-
-  my %file = %{$files{$filename}};
-  my $func;
-  my $c = $file{code};
-  my $warnings = 0;
-
-  for $func (sort keys %{$file{uses_Perl}}) {
-    if ($API{$func}{varargs}) {
-      unless ($API{$func}{nothxarg}) {
-        my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))}
-                              { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge);
-        if ($changes) {
-          warning("Doesn't pass interpreter argument aTHX to Perl_$func");
-          $file{changes} += $changes;
-        }
-      }
-    }
-    else {
-      warning("Uses Perl_$func instead of $func");
-      $file{changes} += ($c =~ s{\bPerl_$func(\s*)\((\s*aTHX_?)?\s*}
-                                {$func$1(}g);
-    }
-  }
-
-  for $func (sort keys %{$file{uses_replace}}) {
-    warning("Uses $func instead of $replace{$func}");
-    $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g);
-  }
-
-  for $func (sort keys %{$file{uses_provided}}) {
-    if ($file{uses}{$func}) {
-      if (exists $file{uses_deps}{$func}) {
-        diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}}));
-      }
-      else {
-        diag("Uses $func");
-      }
-    }
-    $warnings += hint($func);
-  }
-
-  unless ($opt{quiet}) {
-    for $func (sort keys %{$file{uses_todo}}) {
-      print "*** WARNING: Uses $func, which may not be portable below perl ",
-            format_version($API{$func}{todo}), ", even with '$ppport'\n";
-      $warnings++;
-    }
-  }
-
-  for $func (sort keys %{$file{needed_static}}) {
-    my $message = '';
-    if (not exists $file{uses}{$func}) {
-      $message = "No need to define NEED_$func if $func is never used";
-    }
-    elsif (exists $file{needs}{$func} && $file{needs}{$func} ne 'static') {
-      $message = "No need to define NEED_$func when already needed globally";
-    }
-    if ($message) {
-      diag($message);
-      $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_$func\b.*$LF//mg);
-    }
-  }
-
-  for $func (sort keys %{$file{needed_global}}) {
-    my $message = '';
-    if (not exists $global{uses}{$func}) {
-      $message = "No need to define NEED_${func}_GLOBAL if $func is never used";
-    }
-    elsif (exists $file{needs}{$func}) {
-      if ($file{needs}{$func} eq 'extern') {
-        $message = "No need to define NEED_${func}_GLOBAL when already needed globally";
-      }
-      elsif ($file{needs}{$func} eq 'static') {
-        $message = "No need to define NEED_${func}_GLOBAL when only used in this file";
-      }
-    }
-    if ($message) {
-      diag($message);
-      $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_${func}_GLOBAL\b.*$LF//mg);
-    }
-  }
-
-  $file{needs_inc_ppport} = keys %{$file{uses}};
-
-  if ($file{needs_inc_ppport}) {
-    my $pp = '';
-
-    for $func (sort keys %{$file{needs}}) {
-      my $type = $file{needs}{$func};
-      next if $type eq 'extern';
-      my $suffix = $type eq 'global' ? '_GLOBAL' : '';
-      unless (exists $file{"needed_$type"}{$func}) {
-        if ($type eq 'global') {
-          diag("Files [@{$global{needs}{$func}}] need $func, adding global request");
-        }
-        else {
-          diag("File needs $func, adding static request");
-        }
-        $pp .= "#define NEED_$func$suffix\n";
-      }
-    }
-
-    if ($pp && ($c =~ s/^(?=$HS*#$HS*define$HS+NEED_\w+)/$pp/m)) {
-      $pp = '';
-      $file{changes}++;
-    }
-
-    unless ($file{has_inc_ppport}) {
-      diag("Needs to include '$ppport'");
-      $pp .= qq(#include "$ppport"\n)
-    }
-
-    if ($pp) {
-      $file{changes} += ($c =~ s/^($HS*#$HS*define$HS+NEED_\w+.*?)^/$1$pp/ms)
-                     || ($c =~ s/^(?=$HS*#$HS*include.*\Q$ppport\E)/$pp/m)
-                     || ($c =~ s/^($HS*#$HS*include.*XSUB.*\s*?)^/$1$pp/m)
-                     || ($c =~ s/^/$pp/);
-    }
-  }
-  else {
-    if ($file{has_inc_ppport}) {
-      diag("No need to include '$ppport'");
-      $file{changes} += ($c =~ s/^$HS*?#$HS*include.*\Q$ppport\E.*?$LF//m);
-    }
-  }
-
-  # put back in our C comments
-  my $ix;
-  my $cppc = 0;
-  my @ccom = @{$file{ccom}};
-  for $ix (0 .. $#ccom) {
-    if (!$opt{cplusplus} && $ccom[$ix] =~ s!^//!!) {
-      $cppc++;
-      $file{changes} += $c =~ s/$rccs$ix$rcce/$ccs$ccom[$ix] $cce/;
-    }
-    else {
-      $c =~ s/$rccs$ix$rcce/$ccom[$ix]/;
-    }
-  }
-
-  if ($cppc) {
-    my $s = $cppc != 1 ? 's' : '';
-    warning("Uses $cppc C++ style comment$s, which is not portable");
-  }
-
-  my $s = $warnings != 1 ? 's' : '';
-  my $warn = $warnings ? " ($warnings warning$s)" : '';
-  info("Analysis completed$warn");
-
-  if ($file{changes}) {
-    if (exists $opt{copy}) {
-      my $newfile = "$filename$opt{copy}";
-      if (-e $newfile) {
-        error("'$newfile' already exists, refusing to write copy of '$filename'");
-      }
-      else {
-        local *F;
-        if (open F, ">$newfile") {
-          info("Writing copy of '$filename' with changes to '$newfile'");
-          print F $c;
-          close F;
-        }
-        else {
-          error("Cannot open '$newfile' for writing: $!");
-        }
-      }
-    }
-    elsif (exists $opt{patch} || $opt{changes}) {
-      if (exists $opt{patch}) {
-        unless ($patch_opened) {
-          if (open PATCH, ">$opt{patch}") {
-            $patch_opened = 1;
-          }
-          else {
-            error("Cannot open '$opt{patch}' for writing: $!");
-            delete $opt{patch};
-            $opt{changes} = 1;
-            goto fallback;
-          }
-        }
-        mydiff(\*PATCH, $filename, $c);
-      }
-      else {
-fallback:
-        info("Suggested changes:");
-        mydiff(\*STDOUT, $filename, $c);
-      }
-    }
-    else {
-      my $s = $file{changes} == 1 ? '' : 's';
-      info("$file{changes} potentially required change$s detected");
-    }
-  }
-  else {
-    info("Looks good");
-  }
-}
-
-close PATCH if $patch_opened;
-
-exit 0;
-
-
-sub try_use { eval "use @_;"; return $@ eq '' }
-
-sub mydiff
-{
-  local *F = shift;
-  my($file, $str) = @_;
-  my $diff;
-
-  if (exists $opt{diff}) {
-    $diff = run_diff($opt{diff}, $file, $str);
-  }
-
-  if (!defined $diff and try_use('Text::Diff')) {
-    $diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' });
-    $diff = <<HEADER . $diff;
---- $file
-+++ $file.patched
-HEADER
-  }
-
-  if (!defined $diff) {
-    $diff = run_diff('diff -u', $file, $str);
-  }
-
-  if (!defined $diff) {
-    $diff = run_diff('diff', $file, $str);
-  }
-
-  if (!defined $diff) {
-    error("Cannot generate a diff. Please install Text::Diff or use --copy.");
-    return;
-  }
-
-  print F $diff;
-}
-
-sub run_diff
-{
-  my($prog, $file, $str) = @_;
-  my $tmp = 'dppptemp';
-  my $suf = 'aaa';
-  my $diff = '';
-  local *F;
-
-  while (-e "$tmp.$suf") { $suf++ }
-  $tmp = "$tmp.$suf";
-
-  if (open F, ">$tmp") {
-    print F $str;
-    close F;
-
-    if (open F, "$prog $file $tmp |") {
-      while (<F>) {
-        s/\Q$tmp\E/$file.patched/;
-        $diff .= $_;
-      }
-      close F;
-      unlink $tmp;
-      return $diff;
-    }
-
-    unlink $tmp;
-  }
-  else {
-    error("Cannot open '$tmp' for writing: $!");
-  }
-
-  return undef;
-}
-
-sub rec_depend
-{
-  my($func, $seen) = @_;
-  return () unless exists $depends{$func};
-  $seen = {%{$seen||{}}};
-  return () if $seen->{$func}++;
-  my %s;
-  grep !$s{$_}++, map { ($_, rec_depend($_, $seen)) } @{$depends{$func}};
-}
-
-sub parse_version
-{
-  my $ver = shift;
-
-  if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {
-    return ($1, $2, $3);
-  }
-  elsif ($ver !~ /^\d+\.[\d_]+$/) {
-    die "cannot parse version '$ver'\n";
-  }
-
-  $ver =~ s/_//g;
-  $ver =~ s/$/000000/;
-
-  my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
-
-  $v = int $v;
-  $s = int $s;
-
-  if ($r < 5 || ($r == 5 && $v < 6)) {
-    if ($s % 10) {
-      die "cannot parse version '$ver'\n";
-    }
-  }
-
-  return ($r, $v, $s);
-}
-
-sub format_version
-{
-  my $ver = shift;
-
-  $ver =~ s/$/000000/;
-  my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;
-
-  $v = int $v;
-  $s = int $s;
-
-  if ($r < 5 || ($r == 5 && $v < 6)) {
-    if ($s % 10) {
-      die "invalid version '$ver'\n";
-    }
-    $s /= 10;
-
-    $ver = sprintf "%d.%03d", $r, $v;
-    $s > 0 and $ver .= sprintf "_%02d", $s;
-
-    return $ver;
-  }
-
-  return sprintf "%d.%d.%d", $r, $v, $s;
-}
-
-sub info
-{
-  $opt{quiet} and return;
-  print @_, "\n";
-}
-
-sub diag
-{
-  $opt{quiet} and return;
-  $opt{diag} and print @_, "\n";
-}
-
-sub warning
-{
-  $opt{quiet} and return;
-  print "*** ", @_, "\n";
-}
-
-sub error
-{
-  print "*** ERROR: ", @_, "\n";
-}
-
-my %given_hints;
-my %given_warnings;
-sub hint
-{
-  $opt{quiet} and return;
-  my $func = shift;
-  my $rv = 0;
-  if (exists $warnings{$func} && !$given_warnings{$func}++) {
-    my $warn = $warnings{$func};
-    $warn =~ s!^!*** !mg;
-    print "*** WARNING: $func\n", $warn;
-    $rv++;
-  }
-  if ($opt{hints} && exists $hints{$func} && !$given_hints{$func}++) {
-    my $hint = $hints{$func};
-    $hint =~ s/^/   /mg;
-    print "   --- hint for $func ---\n", $hint;
-  }
-  $rv;
-}
-
-sub usage
-{
-  my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms;
-  my %M = ( 'I' => '*' );
-  $usage =~ s/^\s*perl\s+\S+/$^X $0/;
-  $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g;
-
-  print <<ENDUSAGE;
-
-Usage: $usage
-
-See perldoc $0 for details.
-
-ENDUSAGE
-
-  exit 2;
-}
-
-sub strip
-{
-  my $self = do { local(@ARGV,$/)=($0); <> };
-  my($copy) = $self =~ /^=head\d\s+COPYRIGHT\s*^(.*?)^=\w+/ms;
-  $copy =~ s/^(?=\S+)/    /gms;
-  $self =~ s/^$HS+Do NOT edit.*?(?=^-)/$copy/ms;
-  $self =~ s/^SKIP.*(?=^__DATA__)/SKIP
-if (\@ARGV && \$ARGV[0] eq '--unstrip') {
-  eval { require Devel::PPPort };
-  \$@ and die "Cannot require Devel::PPPort, please install.\\n";
-  if (eval \$Devel::PPPort::VERSION < $VERSION) {
-    die "$0 was originally generated with Devel::PPPort $VERSION.\\n"
-      . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n"
-      . "Please install a newer version, or --unstrip will not work.\\n";
-  }
-  Devel::PPPort::WriteFile(\$0);
-  exit 0;
-}
-print <<END;
-
-Sorry, but this is a stripped version of \$0.
-
-To be able to use its original script and doc functionality,
-please try to regenerate this file using:
-
-  \$^X \$0 --unstrip
-
-END
-/ms;
-  my($pl, $c) = $self =~ /(.*^__DATA__)(.*)/ms;
-  $c =~ s{
-    / (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]*)
-  | ( "[^"\\]*(?:\\.[^"\\]*)*"
-    | '[^'\\]*(?:\\.[^'\\]*)*' )
-  | ($HS+) }{ defined $2 ? ' ' : ($1 || '') }gsex;
-  $c =~ s!\s+$!!mg;
-  $c =~ s!^$LF!!mg;
-  $c =~ s!^\s*#\s*!#!mg;
-  $c =~ s!^\s+!!mg;
-
-  open OUT, ">$0" or die "cannot strip $0: $!\n";
-  print OUT "$pl$c\n";
-
-  exit 0;
-}
-
-__DATA__
-*/
-
-#ifndef _P_P_PORTABILITY_H_
-#define _P_P_PORTABILITY_H_
-
-#ifndef DPPP_NAMESPACE
-#  define DPPP_NAMESPACE DPPP_
-#endif
-
-#define DPPP_CAT2(x,y) CAT2(x,y)
-#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)
-
-#ifndef PERL_REVISION
-#  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
-#    define PERL_PATCHLEVEL_H_IMPLICIT
-#    include <patchlevel.h>
-#  endif
-#  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
-#    include <could_not_find_Perl_patchlevel.h>
-#  endif
-#  ifndef PERL_REVISION
-#    define PERL_REVISION       (5)
-     /* Replace: 1 */
-#    define PERL_VERSION        PATCHLEVEL
-#    define PERL_SUBVERSION     SUBVERSION
-     /* Replace PERL_PATCHLEVEL with PERL_VERSION */
-     /* Replace: 0 */
-#  endif
-#endif
-
-#define D_PPP_DEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10))
-#define PERL_BCDVERSION ((D_PPP_DEC2BCD(PERL_REVISION)<<24)|(D_PPP_DEC2BCD(PERL_VERSION)<<12)|D_PPP_DEC2BCD(PERL_SUBVERSION))
-
-/* It is very unlikely that anyone will try to use this with Perl 6
-   (or greater), but who knows.
- */
-#if PERL_REVISION != 5
-#  error ppport.h only works with Perl version 5
-#endif /* PERL_REVISION != 5 */
-#ifndef dTHR
-#  define dTHR                           dNOOP
-#endif
-#ifndef dTHX
-#  define dTHX                           dNOOP
-#endif
-
-#ifndef dTHXa
-#  define dTHXa(x)                       dNOOP
-#endif
-#ifndef pTHX
-#  define pTHX                           void
-#endif
-
-#ifndef pTHX_
-#  define pTHX_
-#endif
-
-#ifndef aTHX
-#  define aTHX
-#endif
-
-#ifndef aTHX_
-#  define aTHX_
-#endif
-
-#if (PERL_BCDVERSION < 0x5006000)
-#  ifdef USE_THREADS
-#    define aTHXR  thr
-#    define aTHXR_ thr,
-#  else
-#    define aTHXR
-#    define aTHXR_
-#  endif
-#  define dTHXR  dTHR
-#else
-#  define aTHXR  aTHX
-#  define aTHXR_ aTHX_
-#  define dTHXR  dTHX
-#endif
-#ifndef dTHXoa
-#  define dTHXoa(x)                      dTHXa(x)
-#endif
-
-#ifdef I_LIMITS
-#  include <limits.h>
-#endif
-
-#ifndef PERL_UCHAR_MIN
-#  define PERL_UCHAR_MIN ((unsigned char)0)
-#endif
-
-#ifndef PERL_UCHAR_MAX
-#  ifdef UCHAR_MAX
-#    define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)
-#  else
-#    ifdef MAXUCHAR
-#      define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)
-#    else
-#      define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_USHORT_MIN
-#  define PERL_USHORT_MIN ((unsigned short)0)
-#endif
-
-#ifndef PERL_USHORT_MAX
-#  ifdef USHORT_MAX
-#    define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)
-#  else
-#    ifdef MAXUSHORT
-#      define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)
-#    else
-#      ifdef USHRT_MAX
-#        define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)
-#      else
-#        define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_SHORT_MAX
-#  ifdef SHORT_MAX
-#    define PERL_SHORT_MAX ((short)SHORT_MAX)
-#  else
-#    ifdef MAXSHORT    /* Often used in <values.h> */
-#      define PERL_SHORT_MAX ((short)MAXSHORT)
-#    else
-#      ifdef SHRT_MAX
-#        define PERL_SHORT_MAX ((short)SHRT_MAX)
-#      else
-#        define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_SHORT_MIN
-#  ifdef SHORT_MIN
-#    define PERL_SHORT_MIN ((short)SHORT_MIN)
-#  else
-#    ifdef MINSHORT
-#      define PERL_SHORT_MIN ((short)MINSHORT)
-#    else
-#      ifdef SHRT_MIN
-#        define PERL_SHORT_MIN ((short)SHRT_MIN)
-#      else
-#        define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_UINT_MAX
-#  ifdef UINT_MAX
-#    define PERL_UINT_MAX ((unsigned int)UINT_MAX)
-#  else
-#    ifdef MAXUINT
-#      define PERL_UINT_MAX ((unsigned int)MAXUINT)
-#    else
-#      define PERL_UINT_MAX (~(unsigned int)0)
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_UINT_MIN
-#  define PERL_UINT_MIN ((unsigned int)0)
-#endif
-
-#ifndef PERL_INT_MAX
-#  ifdef INT_MAX
-#    define PERL_INT_MAX ((int)INT_MAX)
-#  else
-#    ifdef MAXINT    /* Often used in <values.h> */
-#      define PERL_INT_MAX ((int)MAXINT)
-#    else
-#      define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_INT_MIN
-#  ifdef INT_MIN
-#    define PERL_INT_MIN ((int)INT_MIN)
-#  else
-#    ifdef MININT
-#      define PERL_INT_MIN ((int)MININT)
-#    else
-#      define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_ULONG_MAX
-#  ifdef ULONG_MAX
-#    define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
-#  else
-#    ifdef MAXULONG
-#      define PERL_ULONG_MAX ((unsigned long)MAXULONG)
-#    else
-#      define PERL_ULONG_MAX (~(unsigned long)0)
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_ULONG_MIN
-#  define PERL_ULONG_MIN ((unsigned long)0L)
-#endif
-
-#ifndef PERL_LONG_MAX
-#  ifdef LONG_MAX
-#    define PERL_LONG_MAX ((long)LONG_MAX)
-#  else
-#    ifdef MAXLONG
-#      define PERL_LONG_MAX ((long)MAXLONG)
-#    else
-#      define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))
-#    endif
-#  endif
-#endif
-
-#ifndef PERL_LONG_MIN
-#  ifdef LONG_MIN
-#    define PERL_LONG_MIN ((long)LONG_MIN)
-#  else
-#    ifdef MINLONG
-#      define PERL_LONG_MIN ((long)MINLONG)
-#    else
-#      define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))
-#    endif
-#  endif
-#endif
-
-#if defined(HAS_QUAD) && (defined(convex) || defined(uts))
-#  ifndef PERL_UQUAD_MAX
-#    ifdef ULONGLONG_MAX
-#      define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)
-#    else
-#      ifdef MAXULONGLONG
-#        define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)
-#      else
-#        define PERL_UQUAD_MAX (~(unsigned long long)0)
-#      endif
-#    endif
-#  endif
-
-#  ifndef PERL_UQUAD_MIN
-#    define PERL_UQUAD_MIN ((unsigned long long)0L)
-#  endif
-
-#  ifndef PERL_QUAD_MAX
-#    ifdef LONGLONG_MAX
-#      define PERL_QUAD_MAX ((long long)LONGLONG_MAX)
-#    else
-#      ifdef MAXLONGLONG
-#        define PERL_QUAD_MAX ((long long)MAXLONGLONG)
-#      else
-#        define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))
-#      endif
-#    endif
-#  endif
-
-#  ifndef PERL_QUAD_MIN
-#    ifdef LONGLONG_MIN
-#      define PERL_QUAD_MIN ((long long)LONGLONG_MIN)
-#    else
-#      ifdef MINLONGLONG
-#        define PERL_QUAD_MIN ((long long)MINLONGLONG)
-#      else
-#        define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))
-#      endif
-#    endif
-#  endif
-#endif
-
-/* This is based on code from 5.003 perl.h */
-#ifdef HAS_QUAD
-#  ifdef cray
-#ifndef IVTYPE
-#  define IVTYPE                         int
-#endif
-
-#ifndef IV_MIN
-#  define IV_MIN                         PERL_INT_MIN
-#endif
-
-#ifndef IV_MAX
-#  define IV_MAX                         PERL_INT_MAX
-#endif
-
-#ifndef UV_MIN
-#  define UV_MIN                         PERL_UINT_MIN
-#endif
-
-#ifndef UV_MAX
-#  define UV_MAX                         PERL_UINT_MAX
-#endif
-
-#    ifdef INTSIZE
-#ifndef IVSIZE
-#  define IVSIZE                         INTSIZE
-#endif
-
-#    endif
-#  else
-#    if defined(convex) || defined(uts)
-#ifndef IVTYPE
-#  define IVTYPE                         long long
-#endif
-
-#ifndef IV_MIN
-#  define IV_MIN                         PERL_QUAD_MIN
-#endif
-
-#ifndef IV_MAX
-#  define IV_MAX                         PERL_QUAD_MAX
-#endif
-
-#ifndef UV_MIN
-#  define UV_MIN                         PERL_UQUAD_MIN
-#endif
-
-#ifndef UV_MAX
-#  define UV_MAX                         PERL_UQUAD_MAX
-#endif
-
-#      ifdef LONGLONGSIZE
-#ifndef IVSIZE
-#  define IVSIZE                         LONGLONGSIZE
-#endif
-
-#      endif
-#    else
-#ifndef IVTYPE
-#  define IVTYPE                         long
-#endif
-
-#ifndef IV_MIN
-#  define IV_MIN                         PERL_LONG_MIN
-#endif
-
-#ifndef IV_MAX
-#  define IV_MAX                         PERL_LONG_MAX
-#endif
-
-#ifndef UV_MIN
-#  define UV_MIN                         PERL_ULONG_MIN
-#endif
-
-#ifndef UV_MAX
-#  define UV_MAX                         PERL_ULONG_MAX
-#endif
-
-#      ifdef LONGSIZE
-#ifndef IVSIZE
-#  define IVSIZE                         LONGSIZE
-#endif
-
-#      endif
-#    endif
-#  endif
-#ifndef IVSIZE
-#  define IVSIZE                         8
-#endif
-
-#ifndef LONGSIZE
-#  define LONGSIZE                       8
-#endif
-
-#ifndef PERL_QUAD_MIN
-#  define PERL_QUAD_MIN                  IV_MIN
-#endif
-
-#ifndef PERL_QUAD_MAX
-#  define PERL_QUAD_MAX                  IV_MAX
-#endif
-
-#ifndef PERL_UQUAD_MIN
-#  define PERL_UQUAD_MIN                 UV_MIN
-#endif
-
-#ifndef PERL_UQUAD_MAX
-#  define PERL_UQUAD_MAX                 UV_MAX
-#endif
-
-#else
-#ifndef IVTYPE
-#  define IVTYPE                         long
-#endif
-
-#ifndef LONGSIZE
-#  define LONGSIZE                       4
-#endif
-
-#ifndef IV_MIN
-#  define IV_MIN                         PERL_LONG_MIN
-#endif
-
-#ifndef IV_MAX
-#  define IV_MAX                         PERL_LONG_MAX
-#endif
-
-#ifndef UV_MIN
-#  define UV_MIN                         PERL_ULONG_MIN
-#endif
-
-#ifndef UV_MAX
-#  define UV_MAX                         PERL_ULONG_MAX
-#endif
-
-#endif
-
-#ifndef IVSIZE
-#  ifdef LONGSIZE
-#    define IVSIZE LONGSIZE
-#  else
-#    define IVSIZE 4 /* A bold guess, but the best we can make. */
-#  endif
-#endif
-#ifndef UVTYPE
-#  define UVTYPE                         unsigned IVTYPE
-#endif
-
-#ifndef UVSIZE
-#  define UVSIZE                         IVSIZE
-#endif
-#ifndef cBOOL
-#  define cBOOL(cbool)                   ((cbool) ? (bool)1 : (bool)0)
-#endif
-
-#ifndef OpHAS_SIBLING
-#  define OpHAS_SIBLING(o)               (cBOOL((o)->op_sibling))
-#endif
-
-#ifndef OpSIBLING
-#  define OpSIBLING(o)                   (0 + (o)->op_sibling)
-#endif
-
-#ifndef OpMORESIB_set
-#  define OpMORESIB_set(o, sib)          ((o)->op_sibling = (sib))
-#endif
-
-#ifndef OpLASTSIB_set
-#  define OpLASTSIB_set(o, parent)       ((o)->op_sibling = NULL)
-#endif
-
-#ifndef OpMAYBESIB_set
-#  define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib))
-#endif
-
-#ifndef HEf_SVKEY
-#  define HEf_SVKEY                      -2
-#endif
-
-#if defined(DEBUGGING) && !defined(__COVERITY__)
-#ifndef __ASSERT_
-#  define __ASSERT_(statement)           assert(statement),
-#endif
-
-#else
-#ifndef __ASSERT_
-#  define __ASSERT_(statement)
-#endif
-
-#endif
-
-#ifndef SvRX
-#if defined(NEED_SvRX)
-static void * DPPP_(my_SvRX)(pTHX_ SV *rv);
-static
-#else
-extern void * DPPP_(my_SvRX)(pTHX_ SV *rv);
-#endif
-
-#if defined(NEED_SvRX) || defined(NEED_SvRX_GLOBAL)
-
-#ifdef SvRX
-#  undef SvRX
-#endif
-#define SvRX(a) DPPP_(my_SvRX)(aTHX_ a)
-
-
-void *
-DPPP_(my_SvRX)(pTHX_ SV *rv)
-{
-	if (SvROK(rv)) {
-		SV *sv = SvRV(rv);
-		if (SvMAGICAL(sv)) {
-			MAGIC *mg = mg_find(sv, PERL_MAGIC_qr);
-			if (mg && mg->mg_obj) {
-				return mg->mg_obj;
-			}
-		}
-	}
-	return 0;
-}
-#endif
-#endif
-#ifndef SvRXOK
-#  define SvRXOK(sv)                     (!!SvRX(sv))
-#endif
-
-#ifndef PERL_UNUSED_DECL
-#  ifdef HASATTRIBUTE
-#    if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER)
-#      define PERL_UNUSED_DECL
-#    else
-#      define PERL_UNUSED_DECL __attribute__((unused))
-#    endif
-#  else
-#    define PERL_UNUSED_DECL
-#  endif
-#endif
-
-#ifndef PERL_UNUSED_ARG
-#  if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
-#    include <note.h>
-#    define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
-#  else
-#    define PERL_UNUSED_ARG(x) ((void)x)
-#  endif
-#endif
-
-#ifndef PERL_UNUSED_VAR
-#  define PERL_UNUSED_VAR(x) ((void)x)
-#endif
-
-#ifndef PERL_UNUSED_CONTEXT
-#  ifdef USE_ITHREADS
-#    define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl)
-#  else
-#    define PERL_UNUSED_CONTEXT
-#  endif
-#endif
-
-#ifndef PERL_UNUSED_RESULT
-#  if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT)
-#    define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END
-#  else
-#    define PERL_UNUSED_RESULT(v) ((void)(v))
-#  endif
-#endif
-#ifndef NOOP
-#  define NOOP                           /*EMPTY*/(void)0
-#endif
-
-#ifndef dNOOP
-#  define dNOOP                          extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL
-#endif
-
-#ifndef NVTYPE
-#  if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-#    define NVTYPE long double
-#  else
-#    define NVTYPE double
-#  endif
-typedef NVTYPE NV;
-#endif
-
-#ifndef INT2PTR
-#  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
-#    define PTRV                  UV
-#    define INT2PTR(any,d)        (any)(d)
-#  else
-#    if PTRSIZE == LONGSIZE
-#      define PTRV                unsigned long
-#    else
-#      define PTRV                unsigned
-#    endif
-#    define INT2PTR(any,d)        (any)(PTRV)(d)
-#  endif
-#endif
-
-#ifndef PTR2ul
-#  if PTRSIZE == LONGSIZE
-#    define PTR2ul(p)     (unsigned long)(p)
-#  else
-#    define PTR2ul(p)     INT2PTR(unsigned long,p)
-#  endif
-#endif
-#ifndef PTR2nat
-#  define PTR2nat(p)                     (PTRV)(p)
-#endif
-
-#ifndef NUM2PTR
-#  define NUM2PTR(any,d)                 (any)PTR2nat(d)
-#endif
-
-#ifndef PTR2IV
-#  define PTR2IV(p)                      INT2PTR(IV,p)
-#endif
-
-#ifndef PTR2UV
-#  define PTR2UV(p)                      INT2PTR(UV,p)
-#endif
-
-#ifndef PTR2NV
-#  define PTR2NV(p)                      NUM2PTR(NV,p)
-#endif
-
-#undef START_EXTERN_C
-#undef END_EXTERN_C
-#undef EXTERN_C
-#ifdef __cplusplus
-#  define START_EXTERN_C extern "C" {
-#  define END_EXTERN_C }
-#  define EXTERN_C extern "C"
-#else
-#  define START_EXTERN_C
-#  define END_EXTERN_C
-#  define EXTERN_C extern
-#endif
-
-#if defined(PERL_GCC_PEDANTIC)
-#  ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN
-#    define PERL_GCC_BRACE_GROUPS_FORBIDDEN
-#  endif
-#endif
-
-#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus)
-#  ifndef PERL_USE_GCC_BRACE_GROUPS
-#    define PERL_USE_GCC_BRACE_GROUPS
-#  endif
-#endif
-
-#undef STMT_START
-#undef STMT_END
-#ifdef PERL_USE_GCC_BRACE_GROUPS
-#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
-#  define STMT_END      )
-#else
-#  if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
-#    define STMT_START  if (1)
-#    define STMT_END    else (void)0
-#  else
-#    define STMT_START  do
-#    define STMT_END    while (0)
-#  endif
-#endif
-#ifndef boolSV
-#  define boolSV(b)                      ((b) ? &PL_sv_yes : &PL_sv_no)
-#endif
-
-/* DEFSV appears first in 5.004_56 */
-#ifndef DEFSV
-#  define DEFSV                          GvSV(PL_defgv)
-#endif
-
-#ifndef SAVE_DEFSV
-#  define SAVE_DEFSV                     SAVESPTR(GvSV(PL_defgv))
-#endif
-
-#ifndef DEFSV_set
-#  define DEFSV_set(sv)                  (DEFSV = (sv))
-#endif
-
-/* Older perls (<=5.003) lack AvFILLp */
-#ifndef AvFILLp
-#  define AvFILLp                        AvFILL
-#endif
-#ifndef av_tindex
-#  define av_tindex                      AvFILL
-#endif
-
-#ifndef av_top_index
-#  define av_top_index                   AvFILL
-#endif
-#ifndef ERRSV
-#  define ERRSV                          get_sv("@",FALSE)
-#endif
-
-/* Hint: gv_stashpvn
- * This function's backport doesn't support the length parameter, but
- * rather ignores it. Portability can only be ensured if the length
- * parameter is used for speed reasons, but the length can always be
- * correctly computed from the string argument.
- */
-#ifndef gv_stashpvn
-#  define gv_stashpvn(str,len,create)    gv_stashpv(str,create)
-#endif
-
-/* Replace: 1 */
-#ifndef get_cv
-#  define get_cv                         perl_get_cv
-#endif
-
-#ifndef get_sv
-#  define get_sv                         perl_get_sv
-#endif
-
-#ifndef get_av
-#  define get_av                         perl_get_av
-#endif
-
-#ifndef get_hv
-#  define get_hv                         perl_get_hv
-#endif
-
-/* Replace: 0 */
-#ifndef dUNDERBAR
-#  define dUNDERBAR                      dNOOP
-#endif
-
-#ifndef UNDERBAR
-#  define UNDERBAR                       DEFSV
-#endif
-#ifndef dAX
-#  define dAX                            I32 ax = MARK - PL_stack_base + 1
-#endif
-
-#ifndef dITEMS
-#  define dITEMS                         I32 items = SP - MARK
-#endif
-#ifndef dXSTARG
-#  define dXSTARG                        SV * targ = sv_newmortal()
-#endif
-#ifndef dAXMARK
-#  define dAXMARK                        I32 ax = POPMARK; \
-                               register SV ** const mark = PL_stack_base + ax++
-#endif
-#ifndef XSprePUSH
-#  define XSprePUSH                      (sp = PL_stack_base + ax - 1)
-#endif
-
-#if (PERL_BCDVERSION < 0x5005000)
-#  undef XSRETURN
-#  define XSRETURN(off)                                   \
-      STMT_START {                                        \
-          PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
-          return;                                         \
-      } STMT_END
-#endif
-#ifndef XSPROTO
-#  define XSPROTO(name)                  void name(pTHX_ CV* cv)
-#endif
-
-#ifndef SVfARG
-#  define SVfARG(p)                      ((void*)(p))
-#endif
-#ifndef PERL_ABS
-#  define PERL_ABS(x)                    ((x) < 0 ? -(x) : (x))
-#endif
-#ifndef dVAR
-#  define dVAR                           dNOOP
-#endif
-#ifndef SVf
-#  define SVf                            "_"
-#endif
-#ifndef UTF8_MAXBYTES
-#  define UTF8_MAXBYTES                  UTF8_MAXLEN
-#endif
-#ifndef CPERLscope
-#  define CPERLscope(x)                  x
-#endif
-#ifndef PERL_HASH
-#  define PERL_HASH(hash,str,len)        \
-     STMT_START { \
-        const char *s_PeRlHaSh = str; \
-        I32 i_PeRlHaSh = len; \
-        U32 hash_PeRlHaSh = 0; \
-        while (i_PeRlHaSh--) \
-            hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \
-        (hash) = hash_PeRlHaSh; \
-    } STMT_END
-#endif
-
-#ifndef PERLIO_FUNCS_DECL
-# ifdef PERLIO_FUNCS_CONST
-#  define PERLIO_FUNCS_DECL(funcs) const PerlIO_funcs funcs
-#  define PERLIO_FUNCS_CAST(funcs) (PerlIO_funcs*)(funcs)
-# else
-#  define PERLIO_FUNCS_DECL(funcs) PerlIO_funcs funcs
-#  define PERLIO_FUNCS_CAST(funcs) (funcs)
-# endif
-#endif
-
-/* provide these typedefs for older perls */
-#if (PERL_BCDVERSION < 0x5009003)
-
-# ifdef ARGSproto
-typedef OP* (CPERLscope(*Perl_ppaddr_t))(ARGSproto);
-# else
-typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX);
-# endif
-
-typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
-
-#endif
-
-#ifndef WIDEST_UTYPE
-# ifdef QUADKIND
-#  ifdef U64TYPE
-#   define WIDEST_UTYPE U64TYPE
-#  else
-#   define WIDEST_UTYPE Quad_t
-#  endif
-# else
-#  define WIDEST_UTYPE U32
-# endif
-#endif
-
-#ifdef EBCDIC
-
-/* This is the first version where these macros are fully correct.  Relying on
- * the C library functions, as earlier releases did, causes problems with
- * locales */
-# if (PERL_BCDVERSION < 0x5022000)
-#  undef isALNUM
-#  undef isALNUM_A
-#  undef isALNUMC
-#  undef isALNUMC_A
-#  undef isALPHA
-#  undef isALPHA_A
-#  undef isALPHANUMERIC
-#  undef isALPHANUMERIC_A
-#  undef isASCII
-#  undef isASCII_A
-#  undef isBLANK
-#  undef isBLANK_A
-#  undef isCNTRL
-#  undef isCNTRL_A
-#  undef isDIGIT
-#  undef isDIGIT_A
-#  undef isGRAPH
-#  undef isGRAPH_A
-#  undef isIDCONT
-#  undef isIDCONT_A
-#  undef isIDFIRST
-#  undef isIDFIRST_A
-#  undef isLOWER
-#  undef isLOWER_A
-#  undef isOCTAL
-#  undef isOCTAL_A
-#  undef isPRINT
-#  undef isPRINT_A
-#  undef isPSXSPC
-#  undef isPSXSPC_A
-#  undef isPUNCT
-#  undef isPUNCT_A
-#  undef isSPACE
-#  undef isSPACE_A
-#  undef isUPPER
-#  undef isUPPER_A
-#  undef isWORDCHAR
-#  undef isWORDCHAR_A
-#  undef isXDIGIT
-#  undef isXDIGIT_A
-# endif
-#ifndef isASCII
-#  define isASCII(c)                     (isCNTRL(c) || isPRINT(c))
-#endif
-
-        /* The below is accurate for all EBCDIC code pages supported by
-         * all the versions of Perl overridden by this */
-#ifndef isCNTRL
-#  define isCNTRL(c)                     (    (c) == '\0' || (c) == '\a' || (c) == '\b'      \
-                             ||  (c) == '\f' || (c) == '\n' || (c) == '\r'      \
-                             ||  (c) == '\t' || (c) == '\v'                     \
-                             || ((c) <= 3 && (c) >= 1) /* SOH, STX, ETX */      \
-                             ||  (c) == 7    /* U+7F DEL */                     \
-                             || ((c) <= 0x13 && (c) >= 0x0E) /* SO, SI */       \
-                                                      /* DLE, DC[1-3] */        \
-                             ||  (c) == 0x18 /* U+18 CAN */                     \
-                             ||  (c) == 0x19 /* U+19 EOM */                     \
-                             || ((c) <= 0x1F && (c) >= 0x1C) /* [FGRU]S */      \
-                             ||  (c) == 0x26 /* U+17 ETB */                     \
-                             ||  (c) == 0x27 /* U+1B ESC */                     \
-                             ||  (c) == 0x2D /* U+05 ENQ */                     \
-                             ||  (c) == 0x2E /* U+06 ACK */                     \
-                             ||  (c) == 0x32 /* U+16 SYN */                     \
-                             ||  (c) == 0x37 /* U+04 EOT */                     \
-                             ||  (c) == 0x3C /* U+14 DC4 */                     \
-                             ||  (c) == 0x3D /* U+15 NAK */                     \
-                             ||  (c) == 0x3F /* U+1A SUB */                     \
-                            )
-#endif
-
-/* The ordering of the tests in this and isUPPER are to exclude most characters
- * early */
-#ifndef isLOWER
-#  define isLOWER(c)                     (        (c) >= 'a' && (c) <= 'z'                   \
-                             &&  (   (c) <= 'i'                                 \
-                                 || ((c) >= 'j' && (c) <= 'r')                  \
-                                 ||  (c) >= 's'))
-#endif
-
-#ifndef isUPPER
-#  define isUPPER(c)                     (        (c) >= 'A' && (c) <= 'Z'                   \
-                             && (    (c) <= 'I'                                 \
-                                 || ((c) >= 'J' && (c) <= 'R')                  \
-                                 ||  (c) >= 'S'))
-#endif
-
-#else   /* Above is EBCDIC; below is ASCII */
-
-# if (PERL_BCDVERSION < 0x5004000)
-/* The implementation of these in older perl versions can give wrong results if
- * the C program locale is set to other than the C locale */
-#  undef isALNUM
-#  undef isALNUM_A
-#  undef isALPHA
-#  undef isALPHA_A
-#  undef isDIGIT
-#  undef isDIGIT_A
-#  undef isIDFIRST
-#  undef isIDFIRST_A
-#  undef isLOWER
-#  undef isLOWER_A
-#  undef isUPPER
-#  undef isUPPER_A
-# endif
-
-# if (PERL_BCDVERSION < 0x5008000)
-/* Hint: isCNTRL
- * Earlier perls omitted DEL */
-#  undef isCNTRL
-# endif
-
-# if (PERL_BCDVERSION < 0x5010000)
-/* Hint: isPRINT
- * The implementation in older perl versions includes all of the
- * isSPACE() characters, which is wrong. The version provided by
- * Devel::PPPort always overrides a present buggy version.
- */
-#  undef isPRINT
-#  undef isPRINT_A
-# endif
-
-# if (PERL_BCDVERSION < 0x5014000)
-/* Hint: isASCII
- * The implementation in older perl versions always returned true if the
- * parameter was a signed char
- */
-#  undef isASCII
-#  undef isASCII_A
-# endif
-
-# if (PERL_BCDVERSION < 0x5020000)
-/* Hint: isSPACE
- * The implementation in older perl versions didn't include \v */
-#  undef isSPACE
-#  undef isSPACE_A
-# endif
-#ifndef isASCII
-#  define isASCII(c)                     ((WIDEST_UTYPE) (c) <= 127)
-#endif
-
-#ifndef isCNTRL
-#  define isCNTRL(c)                     ((WIDEST_UTYPE) (c) < ' ' || (c) == 127)
-#endif
-
-#ifndef isLOWER
-#  define isLOWER(c)                     ((c) >= 'a' && (c) <= 'z')
-#endif
-
-#ifndef isUPPER
-#  define isUPPER(c)                     ((c) <= 'Z' && (c) >= 'A')
-#endif
-
-#endif /* Below are definitions common to EBCDIC and ASCII */
-#ifndef isALNUM
-#  define isALNUM(c)                     isWORDCHAR(c)
-#endif
-
-#ifndef isALNUMC
-#  define isALNUMC(c)                    isALPHANUMERIC(c)
-#endif
-
-#ifndef isALPHA
-#  define isALPHA(c)                     (isUPPER(c) || isLOWER(c))
-#endif
-
-#ifndef isALPHANUMERIC
-#  define isALPHANUMERIC(c)              (isALPHA(c) || isDIGIT(c))
-#endif
-
-#ifndef isBLANK
-#  define isBLANK(c)                     ((c) == ' ' || (c) == '\t')
-#endif
-
-#ifndef isDIGIT
-#  define isDIGIT(c)                     ((c) <= '9' && (c) >= '0')
-#endif
-
-#ifndef isGRAPH
-#  define isGRAPH(c)                     (isWORDCHAR(c) || isPUNCT(c))
-#endif
-
-#ifndef isIDCONT
-#  define isIDCONT(c)                    isWORDCHAR(c)
-#endif
-
-#ifndef isIDFIRST
-#  define isIDFIRST(c)                   (isALPHA(c) || (c) == '_')
-#endif
-
-#ifndef isOCTAL
-#  define isOCTAL(c)                     (((WIDEST_UTYPE)((c)) & ~7) == '0')
-#endif
-
-#ifndef isPRINT
-#  define isPRINT(c)                     (isGRAPH(c) || (c) == ' ')
-#endif
-
-#ifndef isPSXSPC
-#  define isPSXSPC(c)                    isSPACE(c)
-#endif
-
-#ifndef isPUNCT
-#  define isPUNCT(c)                     (   (c) == '-' || (c) == '!' || (c) == '"'          \
-                             || (c) == '#' || (c) == '$' || (c) == '%'          \
-                             || (c) == '&' || (c) == '\'' || (c) == '('         \
-                             || (c) == ')' || (c) == '*' || (c) == '+'          \
-                             || (c) == ',' || (c) == '.' || (c) == '/'          \
-                             || (c) == ':' || (c) == ';' || (c) == '<'          \
-                             || (c) == '=' || (c) == '>' || (c) == '?'          \
-                             || (c) == '@' || (c) == '[' || (c) == '\\'         \
-                             || (c) == ']' || (c) == '^' || (c) == '_'          \
-                             || (c) == '`' || (c) == '{' || (c) == '|'          \
-                             || (c) == '}' || (c) == '~')
-#endif
-
-#ifndef isSPACE
-#  define isSPACE(c)                     (   isBLANK(c) || (c) == '\n' || (c) == '\r'    \
-                                 || (c) == '\v' || (c) == '\f')
-#endif
-
-#ifndef isWORDCHAR
-#  define isWORDCHAR(c)                  (isALPHANUMERIC(c) || (c) == '_')
-#endif
-
-#ifndef isXDIGIT
-#  define isXDIGIT(c)                    (   isDIGIT(c)                                  \
-                                 || ((c) >= 'a' && (c) <= 'f')                  \
-                                 || ((c) >= 'A' && (c) <= 'F'))
-#endif
-#ifndef isALNUM_A
-#  define isALNUM_A                      isALNUM
-#endif
-
-#ifndef isALNUMC_A
-#  define isALNUMC_A                     isALNUMC
-#endif
-
-#ifndef isALPHA_A
-#  define isALPHA_A                      isALPHA
-#endif
-
-#ifndef isALPHANUMERIC_A
-#  define isALPHANUMERIC_A               isALPHANUMERIC
-#endif
-
-#ifndef isASCII_A
-#  define isASCII_A                      isASCII
-#endif
-
-#ifndef isBLANK_A
-#  define isBLANK_A                      isBLANK
-#endif
-
-#ifndef isCNTRL_A
-#  define isCNTRL_A                      isCNTRL
-#endif
-
-#ifndef isDIGIT_A
-#  define isDIGIT_A                      isDIGIT
-#endif
-
-#ifndef isGRAPH_A
-#  define isGRAPH_A                      isGRAPH
-#endif
-
-#ifndef isIDCONT_A
-#  define isIDCONT_A                     isIDCONT
-#endif
-
-#ifndef isIDFIRST_A
-#  define isIDFIRST_A                    isIDFIRST
-#endif
-
-#ifndef isLOWER_A
-#  define isLOWER_A                      isLOWER
-#endif
-
-#ifndef isOCTAL_A
-#  define isOCTAL_A                      isOCTAL
-#endif
-
-#ifndef isPRINT_A
-#  define isPRINT_A                      isPRINT
-#endif
-
-#ifndef isPSXSPC_A
-#  define isPSXSPC_A                     isPSXSPC
-#endif
-
-#ifndef isPUNCT_A
-#  define isPUNCT_A                      isPUNCT
-#endif
-
-#ifndef isSPACE_A
-#  define isSPACE_A                      isSPACE
-#endif
-
-#ifndef isUPPER_A
-#  define isUPPER_A                      isUPPER
-#endif
-
-#ifndef isWORDCHAR_A
-#  define isWORDCHAR_A                   isWORDCHAR
-#endif
-
-#ifndef isXDIGIT_A
-#  define isXDIGIT_A                     isXDIGIT
-#endif
-
-/* Until we figure out how to support this in older perls... */
-#if (PERL_BCDVERSION >= 0x5008000)
-#ifndef HeUTF8
-#  define HeUTF8(he)                     ((HeKLEN(he) == HEf_SVKEY) ?            \
-                                 SvUTF8(HeKEY_sv(he)) :                 \
-                                 (U32)HeKUTF8(he))
-#endif
-
-#endif
-#ifndef C_ARRAY_LENGTH
-#  define C_ARRAY_LENGTH(a)              (sizeof(a)/sizeof((a)[0]))
-#endif
-
-#ifndef C_ARRAY_END
-#  define C_ARRAY_END(a)                 ((a) + C_ARRAY_LENGTH(a))
-#endif
-#ifndef LIKELY
-#  define LIKELY(x)                      (x)
-#endif
-
-#ifndef UNLIKELY
-#  define UNLIKELY(x)                    (x)
-#endif
-#ifndef UNICODE_REPLACEMENT
-#  define UNICODE_REPLACEMENT            0xFFFD
-#endif
-
-#ifndef MUTABLE_PTR
-#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-#  define MUTABLE_PTR(p) ({ void *_p = (p); _p; })
-#else
-#  define MUTABLE_PTR(p) ((void *) (p))
-#endif
-#endif
-#ifndef MUTABLE_SV
-#  define MUTABLE_SV(p)                  ((SV *)MUTABLE_PTR(p))
-#endif
-#ifndef WARN_ALL
-#  define WARN_ALL                       0
-#endif
-
-#ifndef WARN_CLOSURE
-#  define WARN_CLOSURE                   1
-#endif
-
-#ifndef WARN_DEPRECATED
-#  define WARN_DEPRECATED                2
-#endif
-
-#ifndef WARN_EXITING
-#  define WARN_EXITING                   3
-#endif
-
-#ifndef WARN_GLOB
-#  define WARN_GLOB                      4
-#endif
-
-#ifndef WARN_IO
-#  define WARN_IO                        5
-#endif
-
-#ifndef WARN_CLOSED
-#  define WARN_CLOSED                    6
-#endif
-
-#ifndef WARN_EXEC
-#  define WARN_EXEC                      7
-#endif
-
-#ifndef WARN_LAYER
-#  define WARN_LAYER                     8
-#endif
-
-#ifndef WARN_NEWLINE
-#  define WARN_NEWLINE                   9
-#endif
-
-#ifndef WARN_PIPE
-#  define WARN_PIPE                      10
-#endif
-
-#ifndef WARN_UNOPENED
-#  define WARN_UNOPENED                  11
-#endif
-
-#ifndef WARN_MISC
-#  define WARN_MISC                      12
-#endif
-
-#ifndef WARN_NUMERIC
-#  define WARN_NUMERIC                   13
-#endif
-
-#ifndef WARN_ONCE
-#  define WARN_ONCE                      14
-#endif
-
-#ifndef WARN_OVERFLOW
-#  define WARN_OVERFLOW                  15
-#endif
-
-#ifndef WARN_PACK
-#  define WARN_PACK                      16
-#endif
-
-#ifndef WARN_PORTABLE
-#  define WARN_PORTABLE                  17
-#endif
-
-#ifndef WARN_RECURSION
-#  define WARN_RECURSION                 18
-#endif
-
-#ifndef WARN_REDEFINE
-#  define WARN_REDEFINE                  19
-#endif
-
-#ifndef WARN_REGEXP
-#  define WARN_REGEXP                    20
-#endif
-
-#ifndef WARN_SEVERE
-#  define WARN_SEVERE                    21
-#endif
-
-#ifndef WARN_DEBUGGING
-#  define WARN_DEBUGGING                 22
-#endif
-
-#ifndef WARN_INPLACE
-#  define WARN_INPLACE                   23
-#endif
-
-#ifndef WARN_INTERNAL
-#  define WARN_INTERNAL                  24
-#endif
-
-#ifndef WARN_MALLOC
-#  define WARN_MALLOC                    25
-#endif
-
-#ifndef WARN_SIGNAL
-#  define WARN_SIGNAL                    26
-#endif
-
-#ifndef WARN_SUBSTR
-#  define WARN_SUBSTR                    27
-#endif
-
-#ifndef WARN_SYNTAX
-#  define WARN_SYNTAX                    28
-#endif
-
-#ifndef WARN_AMBIGUOUS
-#  define WARN_AMBIGUOUS                 29
-#endif
-
-#ifndef WARN_BAREWORD
-#  define WARN_BAREWORD                  30
-#endif
-
-#ifndef WARN_DIGIT
-#  define WARN_DIGIT                     31
-#endif
-
-#ifndef WARN_PARENTHESIS
-#  define WARN_PARENTHESIS               32
-#endif
-
-#ifndef WARN_PRECEDENCE
-#  define WARN_PRECEDENCE                33
-#endif
-
-#ifndef WARN_PRINTF
-#  define WARN_PRINTF                    34
-#endif
-
-#ifndef WARN_PROTOTYPE
-#  define WARN_PROTOTYPE                 35
-#endif
-
-#ifndef WARN_QW
-#  define WARN_QW                        36
-#endif
-
-#ifndef WARN_RESERVED
-#  define WARN_RESERVED                  37
-#endif
-
-#ifndef WARN_SEMICOLON
-#  define WARN_SEMICOLON                 38
-#endif
-
-#ifndef WARN_TAINT
-#  define WARN_TAINT                     39
-#endif
-
-#ifndef WARN_THREADS
-#  define WARN_THREADS                   40
-#endif
-
-#ifndef WARN_UNINITIALIZED
-#  define WARN_UNINITIALIZED             41
-#endif
-
-#ifndef WARN_UNPACK
-#  define WARN_UNPACK                    42
-#endif
-
-#ifndef WARN_UNTIE
-#  define WARN_UNTIE                     43
-#endif
-
-#ifndef WARN_UTF8
-#  define WARN_UTF8                      44
-#endif
-
-#ifndef WARN_VOID
-#  define WARN_VOID                      45
-#endif
-
-#ifndef WARN_ASSERTIONS
-#  define WARN_ASSERTIONS                46
-#endif
-#ifndef packWARN
-#  define packWARN(a)                    (a)
-#endif
-
-#ifndef ckWARN
-#  ifdef G_WARN_ON
-#    define  ckWARN(a)                  (PL_dowarn & G_WARN_ON)
-#  else
-#    define  ckWARN(a)                  PL_dowarn
-#  endif
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(warner)
-#if defined(NEED_warner)
-static void DPPP_(my_warner)(U32 err, const char *pat, ...);
-static
-#else
-extern void DPPP_(my_warner)(U32 err, const char *pat, ...);
-#endif
-
-#if defined(NEED_warner) || defined(NEED_warner_GLOBAL)
-
-#define Perl_warner DPPP_(my_warner)
-
-
-void
-DPPP_(my_warner)(U32 err, const char *pat, ...)
-{
-  SV *sv;
-  va_list args;
-
-  PERL_UNUSED_ARG(err);
-
-  va_start(args, pat);
-  sv = vnewSVpvf(pat, &args);
-  va_end(args);
-  sv_2mortal(sv);
-  warn("%s", SvPV_nolen(sv));
-}
-
-#define warner  Perl_warner
-
-#define Perl_warner_nocontext  Perl_warner
-
-#endif
-#endif
-
-#define _ppport_MIN(a,b) (((a) <= (b)) ? (a) : (b))
-#ifndef sv_setuv
-#  define sv_setuv(sv, uv)               \
-               STMT_START {                         \
-                 UV TeMpUv = uv;                    \
-                 if (TeMpUv <= IV_MAX)              \
-                   sv_setiv(sv, TeMpUv);            \
-                 else                               \
-                   sv_setnv(sv, (double)TeMpUv);    \
-               } STMT_END
-#endif
-#ifndef newSVuv
-#  define newSVuv(uv)                    ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
-#endif
-#ifndef sv_2uv
-#  define sv_2uv(sv)                     ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))
-#endif
-
-#ifndef SvUVX
-#  define SvUVX(sv)                      ((UV)SvIVX(sv))
-#endif
-
-#ifndef SvUVXx
-#  define SvUVXx(sv)                     SvUVX(sv)
-#endif
-
-#ifndef SvUV
-#  define SvUV(sv)                       (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))
-#endif
-
-#ifndef SvUVx
-#  define SvUVx(sv)                      ((PL_Sv = (sv)), SvUV(PL_Sv))
-#endif
-
-/* Hint: sv_uv
- * Always use the SvUVx() macro instead of sv_uv().
- */
-#ifndef sv_uv
-#  define sv_uv(sv)                      SvUVx(sv)
-#endif
-
-#if !defined(SvUOK) && defined(SvIOK_UV)
-#  define SvUOK(sv) SvIOK_UV(sv)
-#endif
-#ifndef XST_mUV
-#  define XST_mUV(i,v)                   (ST(i) = sv_2mortal(newSVuv(v))  )
-#endif
-
-#ifndef XSRETURN_UV
-#  define XSRETURN_UV(v)                 STMT_START { XST_mUV(0,v);  XSRETURN(1); } STMT_END
-#endif
-#ifndef PUSHu
-#  define PUSHu(u)                       STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG;  } STMT_END
-#endif
-
-#ifndef XPUSHu
-#  define XPUSHu(u)                      STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END
-#endif
-
-#if defined UTF8SKIP
-
-/* Don't use official version because it uses MIN, which may not be available */
-#undef UTF8_SAFE_SKIP
-#ifndef UTF8_SAFE_SKIP
-#  define UTF8_SAFE_SKIP(s, e)           (                                          \
-                                      ((((e) - (s)) <= 0)                       \
-                                      ? 0                                       \
-                                      : _ppport_MIN(((e) - (s)), UTF8SKIP(s))))
-#endif
-
-#endif
-
-#if !defined(my_strnlen)
-#if defined(NEED_my_strnlen)
-static STRLEN DPPP_(my_my_strnlen)(const char *str, Size_t maxlen);
-static
-#else
-extern STRLEN DPPP_(my_my_strnlen)(const char *str, Size_t maxlen);
-#endif
-
-#if defined(NEED_my_strnlen) || defined(NEED_my_strnlen_GLOBAL)
-
-#define my_strnlen DPPP_(my_my_strnlen)
-#define Perl_my_strnlen DPPP_(my_my_strnlen)
-
-
-STRLEN
-DPPP_(my_my_strnlen)(const char *str, Size_t maxlen)
-{
-    const char *p = str;
-
-    while(maxlen-- && *p)
-        p++;
-
-    return p - str;
-}
-
-#endif
-#endif
-
-#if (PERL_BCDVERSION < 0x5031002)
-        /* Versions prior to this accepted things that are now considered
-         * malformations, and didn't return -1 on error with warnings enabled
-         * */
-#  undef utf8_to_uvchr_buf
-#endif
-
-/* This implementation brings modern, generally more restricted standards to
- * utf8_to_uvchr_buf.  Some of these are security related, and clearly must
- * be done.  But its arguable that the others need not, and hence should not.
- * The reason they're here is that a module that intends to play with the
- * latest perls shoud be able to work the same in all releases.  An example is
- * that perl no longer accepts any UV for a code point, but limits them to
- * IV_MAX or below.  This is for future internal use of the larger code points.
- * If it turns out that some of these changes are breaking code that isn't
- * intended to work with modern perls, the tighter restrictions could be
- * relaxed.  khw thinks this is unlikely, but has been wrong in the past. */
-
-#ifndef utf8_to_uvchr_buf
-   /* Choose which underlying implementation to use.  At least one must be
-    * present or the perl is too early to handle this function */
-#  if defined(utf8n_to_uvchr) || defined(utf8_to_uv)
-#    if defined(utf8n_to_uvchr)   /* This is the preferred implementation */
-#      define _ppport_utf8_to_uvchr_buf_callee utf8n_to_uvchr
-#    else
-#      define _ppport_utf8_to_uvchr_buf_callee utf8_to_uv
-#    endif
-
-#  endif
-
-#ifdef _ppport_utf8_to_uvchr_buf_callee
-#  if defined(NEED_utf8_to_uvchr_buf)
-static UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen);
-static
-#else
-extern UV DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 * s, const U8 * send, STRLEN * retlen);
-#endif
-
-#if defined(NEED_utf8_to_uvchr_buf) || defined(NEED_utf8_to_uvchr_buf_GLOBAL)
-
-#ifdef utf8_to_uvchr_buf
-#  undef utf8_to_uvchr_buf
-#endif
-#define utf8_to_uvchr_buf(a,b,c) DPPP_(my_utf8_to_uvchr_buf)(aTHX_ a,b,c)
-#define Perl_utf8_to_uvchr_buf DPPP_(my_utf8_to_uvchr_buf)
-
-
-UV
-DPPP_(my_utf8_to_uvchr_buf)(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen)
-{
-    UV ret;
-    STRLEN curlen;
-    bool overflows = 0;
-    const U8 *cur_s = s;
-    const bool do_warnings = ckWARN_d(WARN_UTF8);
-
-    if (send > s) {
-        curlen = send - s;
-    }
-    else {
-        assert(0);  /* Modern perls die under this circumstance */
-        curlen = 0;
-        if (! do_warnings) {    /* Handle empty here if no warnings needed */
-            if (retlen) *retlen = 0;
-            return UNICODE_REPLACEMENT;
-        }
-    }
-
-    /* The modern version allows anything that evaluates to a legal UV, but not
-     * overlongs nor an empty input */
-    ret = _ppport_utf8_to_uvchr_buf_callee(
-                s, curlen, retlen,   (UTF8_ALLOW_ANYUV
-                                  & ~(UTF8_ALLOW_LONG|UTF8_ALLOW_EMPTY)));
-
-    /* But actually, modern versions restrict the UV to being no more than what
-     * an IV can hold */
-    if (ret > PERL_INT_MAX) {
-        overflows = 1;
-    }
-
-#    if (PERL_BCDVERSION < 0x5026000)
-#      ifndef EBCDIC
-
-        /* There are bugs in versions earlier than this on non-EBCDIC platforms
-         * in which it did not detect all instances of overflow, which could be
-         * a security hole.  Also, earlier versions did not allow the overflow
-         * malformation under any circumstances, and modern ones do.  So we
-         * need to check here.  */
-
-    else if (curlen > 0 && *s >= 0xFE) {
-
-        /* If the main routine detected overflow, great; it returned 0.  But if the
-         * input's first byte indicates it could overflow, we need to verify.
-         * First, on a 32-bit machine the first byte being at least \xFE
-         * automatically is overflow */
-        if (sizeof(ret) < 8) {
-            overflows = 1;
-        }
-        else {
-            const U8 highest[] =    /* 2*63-1 */
-                        "\xFF\x80\x87\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF";
-            const U8 *cur_h = highest;
-
-            for (cur_s = s; cur_s < send; cur_s++, cur_h++) {
-                if (UNLIKELY(*cur_s == *cur_h)) {
-                    continue;
-                }
-
-                /* If this byte is larger than the corresponding highest UTF-8
-                * byte, the sequence overflows; otherwise the byte is less than
-                * (as we handled the equality case above), and so the sequence
-                * doesn't overflow */
-                overflows = *cur_s > *cur_h;
-                break;
-
-            }
-
-            /* Here, either we set the bool and broke out of the loop, or got
-             * to the end and all bytes are the same which indicates it doesn't
-             * overflow. */
-        }
-    }
-
-#      endif
-#    endif  /* < 5.26 */
-
-    if (UNLIKELY(overflows)) {
-        if (! do_warnings) {
-            if (retlen) {
-                *retlen = _ppport_MIN(*retlen, UTF8SKIP(s));
-                *retlen = _ppport_MIN(*retlen, curlen);
-            }
-            return UNICODE_REPLACEMENT;
-        }
-        else {
-
-            /* On versions that correctly detect overflow, but forbid it
-             * always, 0 will be returned, but also a warning will have been
-             * raised.  Don't repeat it */
-            if (ret != 0) {
-                /* We use the error message in use from 5.8-5.14 */
-                Perl_warner(aTHX_ packWARN(WARN_UTF8),
-                    "Malformed UTF-8 character (overflow at 0x%" UVxf
-                    ", byte 0x%02x, after start byte 0x%02x)",
-                    ret, *cur_s, *s);
-            }
-            if (retlen) {
-                *retlen = (STRLEN) -1;
-            }
-            return 0;
-        }
-    }
-
-    /* If failed and warnings are off, to emulate the behavior of the real
-     * utf8_to_uvchr(), try again, allowing anything.  (Note a return of 0 is
-     * ok if the input was '\0') */
-    if (UNLIKELY(ret == 0 && (curlen == 0 || *s != '\0'))) {
-
-        /* If curlen is 0, we already handled the case where warnings are
-         * disabled, so this 'if' will be true, and we won't look at the
-         * contents of 's' */
-        if (do_warnings) {
-            *retlen = (STRLEN) -1;
-        }
-        else {
-            ret = _ppport_utf8_to_uvchr_buf_callee(
-                                            s, curlen, retlen, UTF8_ALLOW_ANY);
-            /* Override with the REPLACEMENT character, as that is what the
-             * modern version of this function returns */
-            ret = UNICODE_REPLACEMENT;
-
-#           if (PERL_BCDVERSION < 0x5016000)
-
-            /* Versions earlier than this don't necessarily return the proper
-             * length.  It should not extend past the end of string, nor past
-             * what the first byte indicates the length is, nor past the
-             * continuation characters */
-            if (retlen && *retlen >= 0) {
-                *retlen = _ppport_MIN(*retlen, curlen);
-                *retlen = _ppport_MIN(*retlen, UTF8SKIP(s));
-                unsigned int i = 1;
-                do {
-                    if (s[i] < 0x80 || s[i] > 0xBF) {
-                        *retlen = i;
-                        break;
-                    }
-                } while (++i < *retlen);
-            }
-
-#           endif
-
-        }
-    }
-
-    return ret;
-}
-
-#  endif
-#endif
-#endif
-
-#if defined(UTF8SKIP) && defined(utf8_to_uvchr_buf)
-#undef utf8_to_uvchr /* Always redefine this unsafe function so that it refuses
-                        to read past a NUL, making it much less likely to read
-                        off the end of the buffer.  A NUL indicates the start
-                        of the next character anyway.  If the input isn't
-                        NUL-terminated, the function remains unsafe, as it
-                        always has been. */
-#ifndef utf8_to_uvchr
-#  define utf8_to_uvchr(s, lp)           \
-    ((*(s) == '\0')                                                             \
-    ? utf8_to_uvchr_buf(s,((s)+1), lp) /* Handle single NUL specially */        \
-    : utf8_to_uvchr_buf(s, (s) + my_strnlen((char *) (s), UTF8SKIP(s)), (lp)))
-#endif
-
-#endif
-
-#ifdef HAS_MEMCMP
-#ifndef memNE
-#  define memNE(s1,s2,l)                 (memcmp(s1,s2,l))
-#endif
-
-#ifndef memEQ
-#  define memEQ(s1,s2,l)                 (!memcmp(s1,s2,l))
-#endif
-
-#else
-#ifndef memNE
-#  define memNE(s1,s2,l)                 (bcmp(s1,s2,l))
-#endif
-
-#ifndef memEQ
-#  define memEQ(s1,s2,l)                 (!bcmp(s1,s2,l))
-#endif
-
-#endif
-#ifndef memEQs
-#  define memEQs(s1, l, s2)              \
-                   (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1)))
-#endif
-
-#ifndef memNEs
-#  define memNEs(s1, l, s2)              !memEQs(s1, l, s2)
-#endif
-#ifndef MoveD
-#  define MoveD(s,d,n,t)                 memmove((char*)(d),(char*)(s), (n) * sizeof(t))
-#endif
-
-#ifndef CopyD
-#  define CopyD(s,d,n,t)                 memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
-#endif
-
-#ifdef HAS_MEMSET
-#ifndef ZeroD
-#  define ZeroD(d,n,t)                   memzero((char*)(d), (n) * sizeof(t))
-#endif
-
-#else
-#ifndef ZeroD
-#  define ZeroD(d,n,t)                   ((void)memzero((char*)(d), (n) * sizeof(t)), d)
-#endif
-
-#endif
-#ifndef PoisonWith
-#  define PoisonWith(d,n,t,b)            (void)memset((char*)(d), (U8)(b), (n) * sizeof(t))
-#endif
-
-#ifndef PoisonNew
-#  define PoisonNew(d,n,t)               PoisonWith(d,n,t,0xAB)
-#endif
-
-#ifndef PoisonFree
-#  define PoisonFree(d,n,t)              PoisonWith(d,n,t,0xEF)
-#endif
-
-#ifndef Poison
-#  define Poison(d,n,t)                  PoisonFree(d,n,t)
-#endif
-#ifndef Newx
-#  define Newx(v,n,t)                    New(0,v,n,t)
-#endif
-
-#ifndef Newxc
-#  define Newxc(v,n,t,c)                 Newc(0,v,n,t,c)
-#endif
-
-#ifndef Newxz
-#  define Newxz(v,n,t)                   Newz(0,v,n,t)
-#endif
-#ifndef PERL_MAGIC_sv
-#  define PERL_MAGIC_sv                  '\0'
-#endif
-
-#ifndef PERL_MAGIC_overload
-#  define PERL_MAGIC_overload            'A'
-#endif
-
-#ifndef PERL_MAGIC_overload_elem
-#  define PERL_MAGIC_overload_elem       'a'
-#endif
-
-#ifndef PERL_MAGIC_overload_table
-#  define PERL_MAGIC_overload_table      'c'
-#endif
-
-#ifndef PERL_MAGIC_bm
-#  define PERL_MAGIC_bm                  'B'
-#endif
-
-#ifndef PERL_MAGIC_regdata
-#  define PERL_MAGIC_regdata             'D'
-#endif
-
-#ifndef PERL_MAGIC_regdatum
-#  define PERL_MAGIC_regdatum            'd'
-#endif
-
-#ifndef PERL_MAGIC_env
-#  define PERL_MAGIC_env                 'E'
-#endif
-
-#ifndef PERL_MAGIC_envelem
-#  define PERL_MAGIC_envelem             'e'
-#endif
-
-#ifndef PERL_MAGIC_fm
-#  define PERL_MAGIC_fm                  'f'
-#endif
-
-#ifndef PERL_MAGIC_regex_global
-#  define PERL_MAGIC_regex_global        'g'
-#endif
-
-#ifndef PERL_MAGIC_isa
-#  define PERL_MAGIC_isa                 'I'
-#endif
-
-#ifndef PERL_MAGIC_isaelem
-#  define PERL_MAGIC_isaelem             'i'
-#endif
-
-#ifndef PERL_MAGIC_nkeys
-#  define PERL_MAGIC_nkeys               'k'
-#endif
-
-#ifndef PERL_MAGIC_dbfile
-#  define PERL_MAGIC_dbfile              'L'
-#endif
-
-#ifndef PERL_MAGIC_dbline
-#  define PERL_MAGIC_dbline              'l'
-#endif
-
-#ifndef PERL_MAGIC_mutex
-#  define PERL_MAGIC_mutex               'm'
-#endif
-
-#ifndef PERL_MAGIC_shared
-#  define PERL_MAGIC_shared              'N'
-#endif
-
-#ifndef PERL_MAGIC_shared_scalar
-#  define PERL_MAGIC_shared_scalar       'n'
-#endif
-
-#ifndef PERL_MAGIC_collxfrm
-#  define PERL_MAGIC_collxfrm            'o'
-#endif
-
-#ifndef PERL_MAGIC_tied
-#  define PERL_MAGIC_tied                'P'
-#endif
-
-#ifndef PERL_MAGIC_tiedelem
-#  define PERL_MAGIC_tiedelem            'p'
-#endif
-
-#ifndef PERL_MAGIC_tiedscalar
-#  define PERL_MAGIC_tiedscalar          'q'
-#endif
-
-#ifndef PERL_MAGIC_qr
-#  define PERL_MAGIC_qr                  'r'
-#endif
-
-#ifndef PERL_MAGIC_sig
-#  define PERL_MAGIC_sig                 'S'
-#endif
-
-#ifndef PERL_MAGIC_sigelem
-#  define PERL_MAGIC_sigelem             's'
-#endif
-
-#ifndef PERL_MAGIC_taint
-#  define PERL_MAGIC_taint               't'
-#endif
-
-#ifndef PERL_MAGIC_uvar
-#  define PERL_MAGIC_uvar                'U'
-#endif
-
-#ifndef PERL_MAGIC_uvar_elem
-#  define PERL_MAGIC_uvar_elem           'u'
-#endif
-
-#ifndef PERL_MAGIC_vstring
-#  define PERL_MAGIC_vstring             'V'
-#endif
-
-#ifndef PERL_MAGIC_vec
-#  define PERL_MAGIC_vec                 'v'
-#endif
-
-#ifndef PERL_MAGIC_utf8
-#  define PERL_MAGIC_utf8                'w'
-#endif
-
-#ifndef PERL_MAGIC_substr
-#  define PERL_MAGIC_substr              'x'
-#endif
-
-#ifndef PERL_MAGIC_defelem
-#  define PERL_MAGIC_defelem             'y'
-#endif
-
-#ifndef PERL_MAGIC_glob
-#  define PERL_MAGIC_glob                '*'
-#endif
-
-#ifndef PERL_MAGIC_arylen
-#  define PERL_MAGIC_arylen              '#'
-#endif
-
-#ifndef PERL_MAGIC_pos
-#  define PERL_MAGIC_pos                 '.'
-#endif
-
-#ifndef PERL_MAGIC_backref
-#  define PERL_MAGIC_backref             '<'
-#endif
-
-#ifndef PERL_MAGIC_ext
-#  define PERL_MAGIC_ext                 '~'
-#endif
-
-#ifdef NEED_mess_sv
-#define NEED_mess
-#endif
-
-#ifdef NEED_mess
-#define NEED_mess_nocontext
-#define NEED_vmess
-#endif
-
-#ifndef croak_sv
-#if (PERL_BCDVERSION >= 0x5007003) || ( (PERL_BCDVERSION >= 0x5006001) && (PERL_BCDVERSION < 0x5007000) )
-#  if ( (PERL_BCDVERSION >= 0x5008000) && (PERL_BCDVERSION < 0x5008009) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5010001) )
-#    define D_PPP_FIX_UTF8_ERRSV(errsv, sv)                     \
-        STMT_START {                                            \
-            if (sv != errsv)                                    \
-                SvFLAGS(errsv) = (SvFLAGS(errsv) & ~SVf_UTF8) | \
-                                 (SvFLAGS(sv) & SVf_UTF8);      \
-        } STMT_END
-#  else
-#    define D_PPP_FIX_UTF8_ERRSV(errsv, sv) STMT_START {} STMT_END
-#  endif
-#  define croak_sv(sv)                        \
-    STMT_START {                              \
-        if (SvROK(sv)) {                      \
-            sv_setsv(ERRSV, sv);              \
-            croak(NULL);                      \
-        } else {                              \
-            D_PPP_FIX_UTF8_ERRSV(ERRSV, sv);  \
-            croak("%" SVf, SVfARG(sv));       \
-        }                                     \
-    } STMT_END
-#elif (PERL_BCDVERSION >= 0x5004000)
-#  define croak_sv(sv) croak("%" SVf, SVfARG(sv))
-#else
-#  define croak_sv(sv) croak("%s", SvPV_nolen(sv))
-#endif
-#endif
-
-#ifndef die_sv
-#if defined(NEED_die_sv)
-static OP * DPPP_(my_die_sv)(pTHX_ SV *sv);
-static
-#else
-extern OP * DPPP_(my_die_sv)(pTHX_ SV *sv);
-#endif
-
-#if defined(NEED_die_sv) || defined(NEED_die_sv_GLOBAL)
-
-#ifdef die_sv
-#  undef die_sv
-#endif
-#define die_sv(a) DPPP_(my_die_sv)(aTHX_ a)
-#define Perl_die_sv DPPP_(my_die_sv)
-
-OP *
-DPPP_(my_die_sv)(pTHX_ SV *sv)
-{
-    croak_sv(sv);
-    return (OP *)NULL;
-}
-#endif
-#endif
-
-#ifndef warn_sv
-#if (PERL_BCDVERSION >= 0x5004000)
-#  define warn_sv(sv) warn("%" SVf, SVfARG(sv))
-#else
-#  define warn_sv(sv) warn("%s", SvPV_nolen(sv))
-#endif
-#endif
-
-#ifndef vmess
-#if defined(NEED_vmess)
-static SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args);
-static
-#else
-extern SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args);
-#endif
-
-#if defined(NEED_vmess) || defined(NEED_vmess_GLOBAL)
-
-#ifdef vmess
-#  undef vmess
-#endif
-#define vmess(a,b) DPPP_(my_vmess)(aTHX_ a,b)
-#define Perl_vmess DPPP_(my_vmess)
-
-SV*
-DPPP_(my_vmess)(pTHX_ const char* pat, va_list* args)
-{
-    mess(pat, args);
-    return PL_mess_sv;
-}
-#endif
-#endif
-
-#if (PERL_BCDVERSION < 0x5006000)
-#undef mess
-#endif
-
-#if !defined(mess_nocontext) && !defined(Perl_mess_nocontext)
-#if defined(NEED_mess_nocontext)
-static SV * DPPP_(my_mess_nocontext)(const char * pat, ...);
-static
-#else
-extern SV * DPPP_(my_mess_nocontext)(const char * pat, ...);
-#endif
-
-#if defined(NEED_mess_nocontext) || defined(NEED_mess_nocontext_GLOBAL)
-
-#define mess_nocontext DPPP_(my_mess_nocontext)
-#define Perl_mess_nocontext DPPP_(my_mess_nocontext)
-
-SV*
-DPPP_(my_mess_nocontext)(const char* pat, ...)
-{
-    dTHX;
-    SV *sv;
-    va_list args;
-    va_start(args, pat);
-    sv = vmess(pat, &args);
-    va_end(args);
-    return sv;
-}
-#endif
-#endif
-
-#ifndef mess
-#if defined(NEED_mess)
-static SV * DPPP_(my_mess)(pTHX_ const char * pat, ...);
-static
-#else
-extern SV * DPPP_(my_mess)(pTHX_ const char * pat, ...);
-#endif
-
-#if defined(NEED_mess) || defined(NEED_mess_GLOBAL)
-
-#define Perl_mess DPPP_(my_mess)
-
-SV*
-DPPP_(my_mess)(pTHX_ const char* pat, ...)
-{
-    SV *sv;
-    va_list args;
-    va_start(args, pat);
-    sv = vmess(pat, &args);
-    va_end(args);
-    return sv;
-}
-#ifdef mess_nocontext
-#define mess mess_nocontext
-#else
-#define mess Perl_mess_nocontext
-#endif
-#endif
-#endif
-
-#ifndef mess_sv
-#if defined(NEED_mess_sv)
-static SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume);
-static
-#else
-extern SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume);
-#endif
-
-#if defined(NEED_mess_sv) || defined(NEED_mess_sv_GLOBAL)
-
-#ifdef mess_sv
-#  undef mess_sv
-#endif
-#define mess_sv(a,b) DPPP_(my_mess_sv)(aTHX_ a,b)
-#define Perl_mess_sv DPPP_(my_mess_sv)
-
-SV *
-DPPP_(my_mess_sv)(pTHX_ SV *basemsg, bool consume)
-{
-    SV *tmp;
-    SV *ret;
-
-    if (SvPOK(basemsg) && SvCUR(basemsg) && *(SvEND(basemsg)-1) == '\n') {
-        if (consume)
-            return basemsg;
-        ret = mess("");
-        SvSetSV_nosteal(ret, basemsg);
-        return ret;
-    }
-
-    if (consume) {
-        sv_catsv(basemsg, mess(""));
-        return basemsg;
-    }
-
-    ret = mess("");
-    tmp = newSVsv(ret);
-    SvSetSV_nosteal(ret, basemsg);
-    sv_catsv(ret, tmp);
-    sv_dec(tmp);
-    return ret;
-}
-#endif
-#endif
-
-#ifndef warn_nocontext
-#define warn_nocontext warn
-#endif
-
-#ifndef croak_nocontext
-#define croak_nocontext croak
-#endif
-
-#ifndef croak_no_modify
-#define croak_no_modify() croak_nocontext("%s", PL_no_modify)
-#define Perl_croak_no_modify() croak_no_modify()
-#endif
-
-#ifndef croak_memory_wrap
-#if (PERL_BCDVERSION >= 0x5009002) || ( (PERL_BCDVERSION >= 0x5008006) && (PERL_BCDVERSION < 0x5009000) )
-#  define croak_memory_wrap() croak_nocontext("%s", PL_memory_wrap)
-#else
-#  define croak_memory_wrap() croak_nocontext("panic: memory wrap")
-#endif
-#endif
-
-#ifndef croak_xs_usage
-#if defined(NEED_croak_xs_usage)
-static void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params);
-static
-#else
-extern void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params);
-#endif
-
-#if defined(NEED_croak_xs_usage) || defined(NEED_croak_xs_usage_GLOBAL)
-
-#define croak_xs_usage DPPP_(my_croak_xs_usage)
-#define Perl_croak_xs_usage DPPP_(my_croak_xs_usage)
-
-
-#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
-#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
-#endif
-
-void
-DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
-{
-    dTHX;
-    const GV *const gv = CvGV(cv);
-
-    PERL_ARGS_ASSERT_CROAK_XS_USAGE;
-
-    if (gv) {
-        const char *const gvname = GvNAME(gv);
-        const HV *const stash = GvSTASH(gv);
-        const char *const hvname = stash ? HvNAME(stash) : NULL;
-
-        if (hvname)
-            croak("Usage: %s::%s(%s)", hvname, gvname, params);
-        else
-            croak("Usage: %s(%s)", gvname, params);
-    } else {
-        /* Pants. I don't think that it should be possible to get here. */
-        croak("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
-    }
-}
-#endif
-#endif
-
-#ifndef PERL_SIGNALS_UNSAFE_FLAG
-
-#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
-
-#if (PERL_BCDVERSION < 0x5008000)
-#  define D_PPP_PERL_SIGNALS_INIT   PERL_SIGNALS_UNSAFE_FLAG
-#else
-#  define D_PPP_PERL_SIGNALS_INIT   0
-#endif
-
-#if defined(NEED_PL_signals)
-static U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT;
-#elif defined(NEED_PL_signals_GLOBAL)
-U32 DPPP_(my_PL_signals) = D_PPP_PERL_SIGNALS_INIT;
-#else
-extern U32 DPPP_(my_PL_signals);
-#endif
-#define PL_signals DPPP_(my_PL_signals)
-
-#endif
-
-/* Hint: PL_ppaddr
- * Calling an op via PL_ppaddr requires passing a context argument
- * for threaded builds. Since the context argument is different for
- * 5.005 perls, you can use aTHXR (supplied by ppport.h), which will
- * automatically be defined as the correct argument.
- */
-
-#if (PERL_BCDVERSION <= 0x5005005)
-/* Replace: 1 */
-#  define PL_ppaddr                 ppaddr
-#  define PL_no_modify              no_modify
-/* Replace: 0 */
-#endif
-
-#if (PERL_BCDVERSION <= 0x5004005)
-/* Replace: 1 */
-#  define PL_DBsignal               DBsignal
-#  define PL_DBsingle               DBsingle
-#  define PL_DBsub                  DBsub
-#  define PL_DBtrace                DBtrace
-#  define PL_Sv                     Sv
-#  define PL_bufend                 bufend
-#  define PL_bufptr                 bufptr
-#  define PL_compiling              compiling
-#  define PL_copline                copline
-#  define PL_curcop                 curcop
-#  define PL_curstash               curstash
-#  define PL_debstash               debstash
-#  define PL_defgv                  defgv
-#  define PL_diehook                diehook
-#  define PL_dirty                  dirty
-#  define PL_dowarn                 dowarn
-#  define PL_errgv                  errgv
-#  define PL_error_count            error_count
-#  define PL_expect                 expect
-#  define PL_hexdigit               hexdigit
-#  define PL_hints                  hints
-#  define PL_in_my                  in_my
-#  define PL_laststatval            laststatval
-#  define PL_lex_state              lex_state
-#  define PL_lex_stuff              lex_stuff
-#  define PL_linestr                linestr
-#  define PL_na                     na
-#  define PL_perl_destruct_level    perl_destruct_level
-#  define PL_perldb                 perldb
-#  define PL_rsfp_filters           rsfp_filters
-#  define PL_rsfp                   rsfp
-#  define PL_stack_base             stack_base
-#  define PL_stack_sp               stack_sp
-#  define PL_statcache              statcache
-#  define PL_stdingv                stdingv
-#  define PL_sv_arenaroot           sv_arenaroot
-#  define PL_sv_no                  sv_no
-#  define PL_sv_undef               sv_undef
-#  define PL_sv_yes                 sv_yes
-#  define PL_tainted                tainted
-#  define PL_tainting               tainting
-#  define PL_tokenbuf               tokenbuf
-/* Replace: 0 */
-#endif
-
-/* Warning: PL_parser
- * For perl versions earlier than 5.9.5, this is an always
- * non-NULL dummy. Also, it cannot be dereferenced. Don't
- * use it if you can avoid is and unless you absolutely know
- * what you're doing.
- * If you always check that PL_parser is non-NULL, you can
- * define DPPP_PL_parser_NO_DUMMY to avoid the creation of
- * a dummy parser structure.
- */
-
-#if (PERL_BCDVERSION >= 0x5009005)
-# ifdef DPPP_PL_parser_NO_DUMMY
-#  define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
-                (croak("panic: PL_parser == NULL in %s:%d", \
-                       __FILE__, __LINE__), (yy_parser *) NULL))->var)
-# else
-#  ifdef DPPP_PL_parser_NO_DUMMY_WARNING
-#   define D_PPP_parser_dummy_warning(var)
-#  else
-#   define D_PPP_parser_dummy_warning(var) \
-             warn("warning: dummy PL_" #var " used in %s:%d", __FILE__, __LINE__),
-#  endif
-#  define D_PPP_my_PL_parser_var(var) ((PL_parser ? PL_parser : \
-                (D_PPP_parser_dummy_warning(var) &DPPP_(dummy_PL_parser)))->var)
-#if defined(NEED_PL_parser)
-static yy_parser DPPP_(dummy_PL_parser);
-#elif defined(NEED_PL_parser_GLOBAL)
-yy_parser DPPP_(dummy_PL_parser);
-#else
-extern yy_parser DPPP_(dummy_PL_parser);
-#endif
-
-# endif
-
-/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */
-/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf
- * Do not use this variable unless you know exactly what you're
- * doing. It is internal to the perl parser and may change or even
- * be removed in the future. As of perl 5.9.5, you have to check
- * for (PL_parser != NULL) for this variable to have any effect.
- * An always non-NULL PL_parser dummy is provided for earlier
- * perl versions.
- * If PL_parser is NULL when you try to access this variable, a
- * dummy is being accessed instead and a warning is issued unless
- * you define DPPP_PL_parser_NO_DUMMY_WARNING.
- * If DPPP_PL_parser_NO_DUMMY is defined, the code trying to access
- * this variable will croak with a panic message.
- */
-
-# define PL_expect         D_PPP_my_PL_parser_var(expect)
-# define PL_copline        D_PPP_my_PL_parser_var(copline)
-# define PL_rsfp           D_PPP_my_PL_parser_var(rsfp)
-# define PL_rsfp_filters   D_PPP_my_PL_parser_var(rsfp_filters)
-# define PL_linestr        D_PPP_my_PL_parser_var(linestr)
-# define PL_bufptr         D_PPP_my_PL_parser_var(bufptr)
-# define PL_bufend         D_PPP_my_PL_parser_var(bufend)
-# define PL_lex_state      D_PPP_my_PL_parser_var(lex_state)
-# define PL_lex_stuff      D_PPP_my_PL_parser_var(lex_stuff)
-# define PL_tokenbuf       D_PPP_my_PL_parser_var(tokenbuf)
-# define PL_in_my          D_PPP_my_PL_parser_var(in_my)
-# define PL_in_my_stash    D_PPP_my_PL_parser_var(in_my_stash)
-# define PL_error_count    D_PPP_my_PL_parser_var(error_count)
-
-
-#else
-
-/* ensure that PL_parser != NULL and cannot be dereferenced */
-# define PL_parser         ((void *) 1)
-
-#endif
-#ifndef mPUSHs
-#  define mPUSHs(s)                      PUSHs(sv_2mortal(s))
-#endif
-
-#ifndef PUSHmortal
-#  define PUSHmortal                     PUSHs(sv_newmortal())
-#endif
-
-#ifndef mPUSHp
-#  define mPUSHp(p,l)                    sv_setpvn(PUSHmortal, (p), (l))
-#endif
-
-#ifndef mPUSHn
-#  define mPUSHn(n)                      sv_setnv(PUSHmortal, (NV)(n))
-#endif
-
-#ifndef mPUSHi
-#  define mPUSHi(i)                      sv_setiv(PUSHmortal, (IV)(i))
-#endif
-
-#ifndef mPUSHu
-#  define mPUSHu(u)                      sv_setuv(PUSHmortal, (UV)(u))
-#endif
-#ifndef mXPUSHs
-#  define mXPUSHs(s)                     XPUSHs(sv_2mortal(s))
-#endif
-
-#ifndef XPUSHmortal
-#  define XPUSHmortal                    XPUSHs(sv_newmortal())
-#endif
-
-#ifndef mXPUSHp
-#  define mXPUSHp(p,l)                   STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
-#endif
-
-#ifndef mXPUSHn
-#  define mXPUSHn(n)                     STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
-#endif
-
-#ifndef mXPUSHi
-#  define mXPUSHi(i)                     STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
-#endif
-
-#ifndef mXPUSHu
-#  define mXPUSHu(u)                     STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
-#endif
-
-/* Replace: 1 */
-#ifndef call_sv
-#  define call_sv                        perl_call_sv
-#endif
-
-#ifndef call_pv
-#  define call_pv                        perl_call_pv
-#endif
-
-#ifndef call_argv
-#  define call_argv                      perl_call_argv
-#endif
-
-#ifndef call_method
-#  define call_method                    perl_call_method
-#endif
-#ifndef eval_sv
-#  define eval_sv                        perl_eval_sv
-#endif
-
-/* Replace: 0 */
-#ifndef PERL_LOADMOD_DENY
-#  define PERL_LOADMOD_DENY              0x1
-#endif
-
-#ifndef PERL_LOADMOD_NOIMPORT
-#  define PERL_LOADMOD_NOIMPORT          0x2
-#endif
-
-#ifndef PERL_LOADMOD_IMPORT_OPS
-#  define PERL_LOADMOD_IMPORT_OPS        0x4
-#endif
-
-#ifndef G_METHOD
-# define G_METHOD               64
-# ifdef call_sv
-#  undef call_sv
-# endif
-# if (PERL_BCDVERSION < 0x5006000)
-#  define call_sv(sv, flags)  ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \
-                                (flags) & ~G_METHOD) : perl_call_sv(sv, flags))
-# else
-#  define call_sv(sv, flags)  ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \
-                                (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags))
-# endif
-#endif
-
-/* Replace perl_eval_pv with eval_pv */
-
-#ifndef eval_pv
-#if defined(NEED_eval_pv)
-static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error);
-static
-#else
-extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error);
-#endif
-
-#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL)
-
-#ifdef eval_pv
-#  undef eval_pv
-#endif
-#define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b)
-#define Perl_eval_pv DPPP_(my_eval_pv)
-
-
-SV*
-DPPP_(my_eval_pv)(char *p, I32 croak_on_error)
-{
-    dSP;
-    SV* sv = newSVpv(p, 0);
-
-    PUSHMARK(sp);
-    eval_sv(sv, G_SCALAR);
-    SvREFCNT_dec(sv);
-
-    SPAGAIN;
-    sv = POPs;
-    PUTBACK;
-
-    if (croak_on_error && SvTRUEx(ERRSV))
-        croak_sv(ERRSV);
-
-    return sv;
-}
-
-#endif
-#endif
-
-#ifndef vload_module
-#if defined(NEED_vload_module)
-static void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args);
-static
-#else
-extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args);
-#endif
-
-#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL)
-
-#ifdef vload_module
-#  undef vload_module
-#endif
-#define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d)
-#define Perl_vload_module DPPP_(my_vload_module)
-
-
-void
-DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args)
-{
-    dTHR;
-    dVAR;
-    OP *veop, *imop;
-
-    OP * const modname = newSVOP(OP_CONST, 0, name);
-    /* 5.005 has a somewhat hacky force_normal that doesn't croak on
-       SvREADONLY() if PL_compling is true. Current perls take care in
-       ck_require() to correctly turn off SvREADONLY before calling
-       force_normal_flags(). This seems a better fix than fudging PL_compling
-     */
-    SvREADONLY_off(((SVOP*)modname)->op_sv);
-    modname->op_private |= OPpCONST_BARE;
-    if (ver) {
-        veop = newSVOP(OP_CONST, 0, ver);
-    }
-    else
-        veop = NULL;
-    if (flags & PERL_LOADMOD_NOIMPORT) {
-        imop = sawparens(newNULLLIST());
-    }
-    else if (flags & PERL_LOADMOD_IMPORT_OPS) {
-        imop = va_arg(*args, OP*);
-    }
-    else {
-        SV *sv;
-        imop = NULL;
-        sv = va_arg(*args, SV*);
-        while (sv) {
-            imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
-            sv = va_arg(*args, SV*);
-        }
-    }
-    {
-        const line_t ocopline = PL_copline;
-        COP * const ocurcop = PL_curcop;
-        const int oexpect = PL_expect;
-
-#if (PERL_BCDVERSION >= 0x5004000)
-        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
-                veop, modname, imop);
-#elif (PERL_BCDVERSION > 0x5003000)
-        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
-                veop, modname, imop);
-#else
-        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
-                modname, imop);
-#endif
-        PL_expect = oexpect;
-        PL_copline = ocopline;
-        PL_curcop = ocurcop;
-    }
-}
-
-#endif
-#endif
-
-#ifndef load_module
-#if defined(NEED_load_module)
-static void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...);
-static
-#else
-extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...);
-#endif
-
-#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL)
-
-#ifdef load_module
-#  undef load_module
-#endif
-#define load_module DPPP_(my_load_module)
-#define Perl_load_module DPPP_(my_load_module)
-
-
-void
-DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...)
-{
-    va_list args;
-    va_start(args, ver);
-    vload_module(flags, name, ver, &args);
-    va_end(args);
-}
-
-#endif
-#endif
-#ifndef newRV_inc
-#  define newRV_inc(sv)                  newRV(sv)   /* Replace */
-#endif
-
-#ifndef newRV_noinc
-#if defined(NEED_newRV_noinc)
-static SV * DPPP_(my_newRV_noinc)(SV *sv);
-static
-#else
-extern SV * DPPP_(my_newRV_noinc)(SV *sv);
-#endif
-
-#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL)
-
-#ifdef newRV_noinc
-#  undef newRV_noinc
-#endif
-#define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a)
-#define Perl_newRV_noinc DPPP_(my_newRV_noinc)
-
-SV *
-DPPP_(my_newRV_noinc)(SV *sv)
-{
-  SV *rv = (SV *)newRV(sv);
-  SvREFCNT_dec(sv);
-  return rv;
-}
-#endif
-#endif
-
-/* Hint: newCONSTSUB
- * Returns a CV* as of perl-5.7.1. This return value is not supported
- * by Devel::PPPort.
- */
-
-/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
-#if (PERL_BCDVERSION < 0x5004063) && (PERL_BCDVERSION != 0x5004005)
-#if defined(NEED_newCONSTSUB)
-static void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv);
-static
-#else
-extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv);
-#endif
-
-#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
-
-#ifdef newCONSTSUB
-#  undef newCONSTSUB
-#endif
-#define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c)
-#define Perl_newCONSTSUB DPPP_(my_newCONSTSUB)
-
-
-/* This is just a trick to avoid a dependency of newCONSTSUB on PL_parser */
-/* (There's no PL_parser in perl < 5.005, so this is completely safe)     */
-#define D_PPP_PL_copline PL_copline
-
-void
-DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv)
-{
-        U32 oldhints = PL_hints;
-        HV *old_cop_stash = PL_curcop->cop_stash;
-        HV *old_curstash = PL_curstash;
-        line_t oldline = PL_curcop->cop_line;
-        PL_curcop->cop_line = D_PPP_PL_copline;
-
-        PL_hints &= ~HINT_BLOCK_SCOPE;
-        if (stash)
-                PL_curstash = PL_curcop->cop_stash = stash;
-
-        newSUB(
-
-#if   (PERL_BCDVERSION < 0x5003022)
-                start_subparse(),
-#elif (PERL_BCDVERSION == 0x5003022)
-                start_subparse(0),
-#else  /* 5.003_23  onwards */
-                start_subparse(FALSE, 0),
-#endif
-
-                newSVOP(OP_CONST, 0, newSVpv((char *) name, 0)),
-                newSVOP(OP_CONST, 0, &PL_sv_no),   /* SvPV(&PL_sv_no) == "" -- GMB */
-                newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
-        );
-
-        PL_hints = oldhints;
-        PL_curcop->cop_stash = old_cop_stash;
-        PL_curstash = old_curstash;
-        PL_curcop->cop_line = oldline;
-}
-#endif
-#endif
-
-/*
- * Boilerplate macros for initializing and accessing interpreter-local
- * data from C.  All statics in extensions should be reworked to use
- * this, if you want to make the extension thread-safe.  See ext/re/re.xs
- * for an example of the use of these macros.
- *
- * Code that uses these macros is responsible for the following:
- * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts"
- * 2. Declare a typedef named my_cxt_t that is a structure that contains
- *    all the data that needs to be interpreter-local.
- * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
- * 4. Use the MY_CXT_INIT macro such that it is called exactly once
- *    (typically put in the BOOT: section).
- * 5. Use the members of the my_cxt_t structure everywhere as
- *    MY_CXT.member.
- * 6. Use the dMY_CXT macro (a declaration) in all the functions that
- *    access MY_CXT.
- */
-
-#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \
-    defined(PERL_CAPI)    || defined(PERL_IMPLICIT_CONTEXT)
-
-#ifndef START_MY_CXT
-
-/* This must appear in all extensions that define a my_cxt_t structure,
- * right after the definition (i.e. at file scope).  The non-threads
- * case below uses it to declare the data as static. */
-#define START_MY_CXT
-
-#if (PERL_BCDVERSION < 0x5004068)
-/* Fetches the SV that keeps the per-interpreter data. */
-#define dMY_CXT_SV \
-        SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
-#else /* >= perl5.004_68 */
-#define dMY_CXT_SV \
-        SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY,             \
-                                  sizeof(MY_CXT_KEY)-1, TRUE)
-#endif /* < perl5.004_68 */
-
-/* This declaration should be used within all functions that use the
- * interpreter-local data. */
-#define dMY_CXT \
-        dMY_CXT_SV;                                                     \
-        my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
-
-/* Creates and zeroes the per-interpreter data.
- * (We allocate my_cxtp in a Perl SV so that it will be released when
- * the interpreter goes away.) */
-#define MY_CXT_INIT \
-        dMY_CXT_SV;                                                     \
-        /* newSV() allocates one more than needed */                    \
-        my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
-        Zero(my_cxtp, 1, my_cxt_t);                                     \
-        sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
-
-/* This macro must be used to access members of the my_cxt_t structure.
- * e.g. MYCXT.some_data */
-#define MY_CXT          (*my_cxtp)
-
-/* Judicious use of these macros can reduce the number of times dMY_CXT
- * is used.  Use is similar to pTHX, aTHX etc. */
-#define pMY_CXT         my_cxt_t *my_cxtp
-#define pMY_CXT_        pMY_CXT,
-#define _pMY_CXT        ,pMY_CXT
-#define aMY_CXT         my_cxtp
-#define aMY_CXT_        aMY_CXT,
-#define _aMY_CXT        ,aMY_CXT
-
-#endif /* START_MY_CXT */
-
-#ifndef MY_CXT_CLONE
-/* Clones the per-interpreter data. */
-#define MY_CXT_CLONE \
-        dMY_CXT_SV;                                                     \
-        my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
-        Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\
-        sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
-#endif
-
-#else /* single interpreter */
-
-#ifndef START_MY_CXT
-
-#define START_MY_CXT    static my_cxt_t my_cxt;
-#define dMY_CXT_SV      dNOOP
-#define dMY_CXT         dNOOP
-#define MY_CXT_INIT     NOOP
-#define MY_CXT          my_cxt
-
-#define pMY_CXT         void
-#define pMY_CXT_
-#define _pMY_CXT
-#define aMY_CXT
-#define aMY_CXT_
-#define _aMY_CXT
-
-#endif /* START_MY_CXT */
-
-#ifndef MY_CXT_CLONE
-#define MY_CXT_CLONE    NOOP
-#endif
-
-#endif
-
-#ifndef IVdf
-#  if IVSIZE == LONGSIZE
-#    define     IVdf      "ld"
-#    define     UVuf      "lu"
-#    define     UVof      "lo"
-#    define     UVxf      "lx"
-#    define     UVXf      "lX"
-#  elif IVSIZE == INTSIZE
-#    define   IVdf      "d"
-#    define   UVuf      "u"
-#    define   UVof      "o"
-#    define   UVxf      "x"
-#    define   UVXf      "X"
-#  else
-#    error "cannot define IV/UV formats"
-#  endif
-#endif
-
-#ifndef NVef
-#  if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
-      defined(PERL_PRIfldbl) && (PERL_BCDVERSION != 0x5006000)
-            /* Not very likely, but let's try anyway. */
-#    define NVef          PERL_PRIeldbl
-#    define NVff          PERL_PRIfldbl
-#    define NVgf          PERL_PRIgldbl
-#  else
-#    define NVef          "e"
-#    define NVff          "f"
-#    define NVgf          "g"
-#  endif
-#endif
-
-#ifndef SvREFCNT_inc
-#  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc(sv)            \
-      ({                                \
-          SV * const _sv = (SV*)(sv);   \
-          if (_sv)                      \
-               (SvREFCNT(_sv))++;       \
-          _sv;                          \
-      })
-#  else
-#    define SvREFCNT_inc(sv)    \
-          ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL)
-#  endif
-#endif
-
-#ifndef SvREFCNT_inc_simple
-#  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_simple(sv)     \
-      ({                                        \
-          if (sv)                               \
-               (SvREFCNT(sv))++;                \
-          (SV *)(sv);                           \
-      })
-#  else
-#    define SvREFCNT_inc_simple(sv) \
-          ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL)
-#  endif
-#endif
-
-#ifndef SvREFCNT_inc_NN
-#  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_NN(sv)         \
-      ({                                        \
-          SV * const _sv = (SV*)(sv);   \
-          SvREFCNT(_sv)++;              \
-          _sv;                          \
-      })
-#  else
-#    define SvREFCNT_inc_NN(sv) \
-          (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv)
-#  endif
-#endif
-
-#ifndef SvREFCNT_inc_void
-#  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_void(sv)               \
-      ({                                        \
-          SV * const _sv = (SV*)(sv);   \
-          if (_sv)                      \
-              (void)(SvREFCNT(_sv)++);  \
-      })
-#  else
-#    define SvREFCNT_inc_void(sv) \
-          (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0)
-#  endif
-#endif
-#ifndef SvREFCNT_inc_simple_void
-#  define SvREFCNT_inc_simple_void(sv)   STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
-#endif
-
-#ifndef SvREFCNT_inc_simple_NN
-#  define SvREFCNT_inc_simple_NN(sv)     (++SvREFCNT(sv), (SV*)(sv))
-#endif
-
-#ifndef SvREFCNT_inc_void_NN
-#  define SvREFCNT_inc_void_NN(sv)       (void)(++SvREFCNT((SV*)(sv)))
-#endif
-
-#ifndef SvREFCNT_inc_simple_void_NN
-#  define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
-#endif
-
-#ifndef newSV_type
-
-#if defined(NEED_newSV_type)
-static SV* DPPP_(my_newSV_type)(pTHX_ svtype const t);
-static
-#else
-extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t);
-#endif
-
-#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL)
-
-#ifdef newSV_type
-#  undef newSV_type
-#endif
-#define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a)
-#define Perl_newSV_type DPPP_(my_newSV_type)
-
-
-SV*
-DPPP_(my_newSV_type)(pTHX_ svtype const t)
-{
-  SV* const sv = newSV(0);
-  sv_upgrade(sv, t);
-  return sv;
-}
-
-#endif
-
-#endif
-
-#if (PERL_BCDVERSION < 0x5006000)
-# define D_PPP_CONSTPV_ARG(x)  ((char *) (x))
-#else
-# define D_PPP_CONSTPV_ARG(x)  (x)
-#endif
-#ifndef newSVpvn
-#  define newSVpvn(data,len)             ((data)                                              \
-                                    ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \
-                                    : newSV(0))
-#endif
-#ifndef newSVpvn_utf8
-#  define newSVpvn_utf8(s, len, u)       newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
-#endif
-#ifndef SVf_UTF8
-#  define SVf_UTF8                       0
-#endif
-
-#ifndef newSVpvn_flags
-
-#if defined(NEED_newSVpvn_flags)
-static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags);
-static
-#else
-extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags);
-#endif
-
-#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL)
-
-#ifdef newSVpvn_flags
-#  undef newSVpvn_flags
-#endif
-#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c)
-#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags)
-
-
-SV *
-DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags)
-{
-  SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len);
-  SvFLAGS(sv) |= (flags & SVf_UTF8);
-  return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
-}
-
-#endif
-
-#endif
-
-/* Backwards compatibility stuff... :-( */
-#if !defined(NEED_sv_2pv_flags) && defined(NEED_sv_2pv_nolen)
-#  define NEED_sv_2pv_flags
-#endif
-#if !defined(NEED_sv_2pv_flags_GLOBAL) && defined(NEED_sv_2pv_nolen_GLOBAL)
-#  define NEED_sv_2pv_flags_GLOBAL
-#endif
-
-/* Hint: sv_2pv_nolen
- * Use the SvPV_nolen() or SvPV_nolen_const() macros instead of sv_2pv_nolen().
- */
-#ifndef sv_2pv_nolen
-#  define sv_2pv_nolen(sv)               SvPV_nolen(sv)
-#endif
-
-#ifdef SvPVbyte
-
-/* Hint: SvPVbyte
- * Does not work in perl-5.6.1, ppport.h implements a version
- * borrowed from perl-5.7.3.
- */
-
-#if (PERL_BCDVERSION < 0x5007000)
-
-#if defined(NEED_sv_2pvbyte)
-static char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp);
-static
-#else
-extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp);
-#endif
-
-#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL)
-
-#ifdef sv_2pvbyte
-#  undef sv_2pvbyte
-#endif
-#define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b)
-#define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte)
-
-
-char *
-DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp)
-{
-  sv_utf8_downgrade(sv,0);
-  return SvPV(sv,*lp);
-}
-
-#endif
-
-/* Hint: sv_2pvbyte
- * Use the SvPVbyte() macro instead of sv_2pvbyte().
- */
-
-#undef SvPVbyte
-
-#define SvPVbyte(sv, lp)                                                \
-        ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK)                \
-         ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp))
-
-#endif
-
-#else
-
-#  define SvPVbyte          SvPV
-#  define sv_2pvbyte        sv_2pv
-
-#endif
-#ifndef sv_2pvbyte_nolen
-#  define sv_2pvbyte_nolen(sv)           sv_2pv_nolen(sv)
-#endif
-
-/* Hint: sv_pvn
- * Always use the SvPV() macro instead of sv_pvn().
- */
-
-/* Hint: sv_pvn_force
- * Always use the SvPV_force() macro instead of sv_pvn_force().
- */
-
-/* If these are undefined, they're not handled by the core anyway */
-#ifndef SV_IMMEDIATE_UNREF
-#  define SV_IMMEDIATE_UNREF             0
-#endif
-
-#ifndef SV_GMAGIC
-#  define SV_GMAGIC                      0
-#endif
-
-#ifndef SV_COW_DROP_PV
-#  define SV_COW_DROP_PV                 0
-#endif
-
-#ifndef SV_UTF8_NO_ENCODING
-#  define SV_UTF8_NO_ENCODING            0
-#endif
-
-#ifndef SV_NOSTEAL
-#  define SV_NOSTEAL                     0
-#endif
-
-#ifndef SV_CONST_RETURN
-#  define SV_CONST_RETURN                0
-#endif
-
-#ifndef SV_MUTABLE_RETURN
-#  define SV_MUTABLE_RETURN              0
-#endif
-
-#ifndef SV_SMAGIC
-#  define SV_SMAGIC                      0
-#endif
-
-#ifndef SV_HAS_TRAILING_NUL
-#  define SV_HAS_TRAILING_NUL            0
-#endif
-
-#ifndef SV_COW_SHARED_HASH_KEYS
-#  define SV_COW_SHARED_HASH_KEYS        0
-#endif
-
-#if (PERL_BCDVERSION < 0x5007002)
-
-#if defined(NEED_sv_2pv_flags)
-static char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
-static
-#else
-extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
-#endif
-
-#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL)
-
-#ifdef sv_2pv_flags
-#  undef sv_2pv_flags
-#endif
-#define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c)
-#define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags)
-
-
-char *
-DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags)
-{
-  STRLEN n_a = (STRLEN) flags;
-  return sv_2pv(sv, lp ? lp : &n_a);
-}
-
-#endif
-
-#if defined(NEED_sv_pvn_force_flags)
-static char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
-static
-#else
-extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags);
-#endif
-
-#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL)
-
-#ifdef sv_pvn_force_flags
-#  undef sv_pvn_force_flags
-#endif
-#define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c)
-#define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags)
-
-
-char *
-DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags)
-{
-  STRLEN n_a = (STRLEN) flags;
-  return sv_pvn_force(sv, lp ? lp : &n_a);
-}
-
-#endif
-
-#endif
-
-#if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) )
-# define D_PPP_SVPV_NOLEN_LP_ARG &PL_na
-#else
-# define D_PPP_SVPV_NOLEN_LP_ARG 0
-#endif
-#ifndef SvPV_const
-#  define SvPV_const(sv, lp)             SvPV_flags_const(sv, lp, SV_GMAGIC)
-#endif
-
-#ifndef SvPV_mutable
-#  define SvPV_mutable(sv, lp)           SvPV_flags_mutable(sv, lp, SV_GMAGIC)
-#endif
-#ifndef SvPV_flags
-#  define SvPV_flags(sv, lp, flags)      \
-                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                  ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
-#endif
-#ifndef SvPV_flags_const
-#  define SvPV_flags_const(sv, lp, flags) \
-                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                  ? ((lp = SvCUR(sv)), SvPVX_const(sv)) : \
-                  (const char*) sv_2pv_flags(sv, &lp, flags|SV_CONST_RETURN))
-#endif
-#ifndef SvPV_flags_const_nolen
-#  define SvPV_flags_const_nolen(sv, flags) \
-                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                  ? SvPVX_const(sv) : \
-                  (const char*) sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN))
-#endif
-#ifndef SvPV_flags_mutable
-#  define SvPV_flags_mutable(sv, lp, flags) \
-                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                  ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) : \
-                  sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
-#endif
-#ifndef SvPV_force
-#  define SvPV_force(sv, lp)             SvPV_force_flags(sv, lp, SV_GMAGIC)
-#endif
-
-#ifndef SvPV_force_nolen
-#  define SvPV_force_nolen(sv)           SvPV_force_flags_nolen(sv, SV_GMAGIC)
-#endif
-
-#ifndef SvPV_force_mutable
-#  define SvPV_force_mutable(sv, lp)     SvPV_force_flags_mutable(sv, lp, SV_GMAGIC)
-#endif
-
-#ifndef SvPV_force_nomg
-#  define SvPV_force_nomg(sv, lp)        SvPV_force_flags(sv, lp, 0)
-#endif
-
-#ifndef SvPV_force_nomg_nolen
-#  define SvPV_force_nomg_nolen(sv)      SvPV_force_flags_nolen(sv, 0)
-#endif
-#ifndef SvPV_force_flags
-#  define SvPV_force_flags(sv, lp, flags) \
-                 ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
-                 ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_pvn_force_flags(sv, &lp, flags))
-#endif
-#ifndef SvPV_force_flags_nolen
-#  define SvPV_force_flags_nolen(sv, flags) \
-                 ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
-                 ? SvPVX(sv) : sv_pvn_force_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags))
-#endif
-#ifndef SvPV_force_flags_mutable
-#  define SvPV_force_flags_mutable(sv, lp, flags) \
-                 ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \
-                 ? ((lp = SvCUR(sv)), SvPVX_mutable(sv)) \
-                  : sv_pvn_force_flags(sv, &lp, flags|SV_MUTABLE_RETURN))
-#endif
-#ifndef SvPV_nolen
-#  define SvPV_nolen(sv)                 \
-                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                  ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC))
-#endif
-#ifndef SvPV_nolen_const
-#  define SvPV_nolen_const(sv)           \
-                 ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                  ? SvPVX_const(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN))
-#endif
-#ifndef SvPV_nomg
-#  define SvPV_nomg(sv, lp)              SvPV_flags(sv, lp, 0)
-#endif
-
-#ifndef SvPV_nomg_const
-#  define SvPV_nomg_const(sv, lp)        SvPV_flags_const(sv, lp, 0)
-#endif
-
-#ifndef SvPV_nomg_const_nolen
-#  define SvPV_nomg_const_nolen(sv)      SvPV_flags_const_nolen(sv, 0)
-#endif
-
-#ifndef SvPV_nomg_nolen
-#  define SvPV_nomg_nolen(sv)            ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
-                                    ? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, 0))
-#endif
-#ifndef SvPV_renew
-#  define SvPV_renew(sv,n)               STMT_START { SvLEN_set(sv, n); \
-                 SvPV_set((sv), (char *) saferealloc(          \
-                       (Malloc_t)SvPVX(sv), (MEM_SIZE)((n)))); \
-               } STMT_END
-#endif
-#ifndef SvMAGIC_set
-#  define SvMAGIC_set(sv, val)           \
-                STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
-                (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
-#endif
-
-#if (PERL_BCDVERSION < 0x5009003)
-#ifndef SvPVX_const
-#  define SvPVX_const(sv)                ((const char*) (0 + SvPVX(sv)))
-#endif
-
-#ifndef SvPVX_mutable
-#  define SvPVX_mutable(sv)              (0 + SvPVX(sv))
-#endif
-#ifndef SvRV_set
-#  define SvRV_set(sv, val)              \
-                STMT_START { assert(SvTYPE(sv) >=  SVt_RV); \
-                (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END
-#endif
-
-#else
-#ifndef SvPVX_const
-#  define SvPVX_const(sv)                ((const char*)((sv)->sv_u.svu_pv))
-#endif
-
-#ifndef SvPVX_mutable
-#  define SvPVX_mutable(sv)              ((sv)->sv_u.svu_pv)
-#endif
-#ifndef SvRV_set
-#  define SvRV_set(sv, val)              \
-                STMT_START { assert(SvTYPE(sv) >=  SVt_RV); \
-                ((sv)->sv_u.svu_rv = (val)); } STMT_END
-#endif
-
-#endif
-#ifndef SvSTASH_set
-#  define SvSTASH_set(sv, val)           \
-                STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
-                (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END
-#endif
-
-#if (PERL_BCDVERSION < 0x5004000)
-#ifndef SvUV_set
-#  define SvUV_set(sv, val)              \
-                STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
-                (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END
-#endif
-
-#else
-#ifndef SvUV_set
-#  define SvUV_set(sv, val)              \
-                STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
-                (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END
-#endif
-
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(vnewSVpvf)
-#if defined(NEED_vnewSVpvf)
-static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args);
-static
-#else
-extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args);
-#endif
-
-#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL)
-
-#ifdef vnewSVpvf
-#  undef vnewSVpvf
-#endif
-#define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b)
-#define Perl_vnewSVpvf DPPP_(my_vnewSVpvf)
-
-
-SV *
-DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args)
-{
-  register SV *sv = newSV(0);
-  sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));
-  return sv;
-}
-
-#endif
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf)
-#  define sv_vcatpvf(sv, pat, args)  sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf)
-#  define sv_vsetpvf(sv, pat, args)  sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*))
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg)
-#if defined(NEED_sv_catpvf_mg)
-static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
-static
-#else
-extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
-#endif
-
-#if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL)
-
-#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg)
-
-
-void
-DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...)
-{
-  va_list args;
-  va_start(args, pat);
-  sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
-  SvSETMAGIC(sv);
-  va_end(args);
-}
-
-#endif
-#endif
-
-#ifdef PERL_IMPLICIT_CONTEXT
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_catpvf_mg_nocontext)
-#if defined(NEED_sv_catpvf_mg_nocontext)
-static void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...);
-static
-#else
-extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...);
-#endif
-
-#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL)
-
-#define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext)
-#define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext)
-
-
-void
-DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...)
-{
-  dTHX;
-  va_list args;
-  va_start(args, pat);
-  sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
-  SvSETMAGIC(sv);
-  va_end(args);
-}
-
-#endif
-#endif
-#endif
-
-/* sv_catpvf_mg depends on sv_catpvf_mg_nocontext */
-#ifndef sv_catpvf_mg
-#  ifdef PERL_IMPLICIT_CONTEXT
-#    define sv_catpvf_mg   Perl_sv_catpvf_mg_nocontext
-#  else
-#    define sv_catpvf_mg   Perl_sv_catpvf_mg
-#  endif
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vcatpvf_mg)
-#  define sv_vcatpvf_mg(sv, pat, args)                                     \
-   STMT_START {                                                            \
-     sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));  \
-     SvSETMAGIC(sv);                                                       \
-   } STMT_END
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg)
-#if defined(NEED_sv_setpvf_mg)
-static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
-static
-#else
-extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...);
-#endif
-
-#if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL)
-
-#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg)
-
-
-void
-DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...)
-{
-  va_list args;
-  va_start(args, pat);
-  sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
-  SvSETMAGIC(sv);
-  va_end(args);
-}
-
-#endif
-#endif
-
-#ifdef PERL_IMPLICIT_CONTEXT
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_setpvf_mg_nocontext)
-#if defined(NEED_sv_setpvf_mg_nocontext)
-static void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...);
-static
-#else
-extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...);
-#endif
-
-#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL)
-
-#define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext)
-#define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext)
-
-
-void
-DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...)
-{
-  dTHX;
-  va_list args;
-  va_start(args, pat);
-  sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*));
-  SvSETMAGIC(sv);
-  va_end(args);
-}
-
-#endif
-#endif
-#endif
-
-/* sv_setpvf_mg depends on sv_setpvf_mg_nocontext */
-#ifndef sv_setpvf_mg
-#  ifdef PERL_IMPLICIT_CONTEXT
-#    define sv_setpvf_mg   Perl_sv_setpvf_mg_nocontext
-#  else
-#    define sv_setpvf_mg   Perl_sv_setpvf_mg
-#  endif
-#endif
-
-#if (PERL_BCDVERSION >= 0x5004000) && !defined(sv_vsetpvf_mg)
-#  define sv_vsetpvf_mg(sv, pat, args)                                     \
-   STMT_START {                                                            \
-     sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*));  \
-     SvSETMAGIC(sv);                                                       \
-   } STMT_END
-#endif
-
-/* Hint: newSVpvn_share
- * The SVs created by this function only mimic the behaviour of
- * shared PVs without really being shared. Only use if you know
- * what you're doing.
- */
-
-#ifndef newSVpvn_share
-
-#if defined(NEED_newSVpvn_share)
-static SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash);
-static
-#else
-extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash);
-#endif
-
-#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL)
-
-#ifdef newSVpvn_share
-#  undef newSVpvn_share
-#endif
-#define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c)
-#define Perl_newSVpvn_share DPPP_(my_newSVpvn_share)
-
-
-SV *
-DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash)
-{
-  SV *sv;
-  if (len < 0)
-    len = -len;
-  if (!hash)
-    PERL_HASH(hash, (char*) src, len);
-  sv = newSVpvn((char *) src, len);
-  sv_upgrade(sv, SVt_PVIV);
-  SvIVX(sv) = hash;
-  SvREADONLY_on(sv);
-  SvPOK_on(sv);
-  return sv;
-}
-
-#endif
-
-#endif
-#ifndef SvSHARED_HASH
-#  define SvSHARED_HASH(sv)              (0 + SvUVX(sv))
-#endif
-#ifndef HvNAME_get
-#  define HvNAME_get(hv)                 HvNAME(hv)
-#endif
-#ifndef HvNAMELEN_get
-#  define HvNAMELEN_get(hv)              (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0)
-#endif
-
-#ifndef gv_fetchpvn_flags
-#if defined(NEED_gv_fetchpvn_flags)
-static GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types);
-static
-#else
-extern GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types);
-#endif
-
-#if defined(NEED_gv_fetchpvn_flags) || defined(NEED_gv_fetchpvn_flags_GLOBAL)
-
-#ifdef gv_fetchpvn_flags
-#  undef gv_fetchpvn_flags
-#endif
-#define gv_fetchpvn_flags(a,b,c,d) DPPP_(my_gv_fetchpvn_flags)(aTHX_ a,b,c,d)
-#define Perl_gv_fetchpvn_flags DPPP_(my_gv_fetchpvn_flags)
-
-
-GV*
-DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types) {
-	char *namepv = savepvn(name, len);
-	GV* stash = gv_fetchpv(namepv, TRUE, SVt_PVHV);
-	Safefree(namepv);
-	return stash;
-}
-
-#endif
-#endif
-#ifndef GvSVn
-#  define GvSVn(gv)                      GvSV(gv)
-#endif
-
-#ifndef isGV_with_GP
-#  define isGV_with_GP(gv)               isGV(gv)
-#endif
-
-#ifndef gv_fetchsv
-#  define gv_fetchsv(name, flags, svt)   gv_fetchpv(SvPV_nolen_const(name), flags, svt)
-#endif
-#ifndef get_cvn_flags
-#  define get_cvn_flags(name, namelen, flags) get_cv(name, flags)
-#endif
-
-#ifndef gv_init_pvn
-#  define gv_init_pvn(gv, stash, ptr, len, flags) gv_init(gv, stash, ptr, len, flags & GV_ADDMULTI ? TRUE : FALSE)
-#endif
-
-/* concatenating with "" ensures that only literal strings are accepted as argument
- * note that STR_WITH_LEN() can't be used as argument to macros or functions that
- * under some configurations might be macros
- */
-#ifndef STR_WITH_LEN
-#  define STR_WITH_LEN(s)                (s ""), (sizeof(s)-1)
-#endif
-#ifndef newSVpvs
-#  define newSVpvs(str)                  newSVpvn(str "", sizeof(str) - 1)
-#endif
-
-#ifndef newSVpvs_flags
-#  define newSVpvs_flags(str, flags)     newSVpvn_flags(str "", sizeof(str) - 1, flags)
-#endif
-
-#ifndef newSVpvs_share
-#  define newSVpvs_share(str)            newSVpvn_share(str "", sizeof(str) - 1, 0)
-#endif
-
-#ifndef sv_catpvs
-#  define sv_catpvs(sv, str)             sv_catpvn(sv, str "", sizeof(str) - 1)
-#endif
-
-#ifndef sv_setpvs
-#  define sv_setpvs(sv, str)             sv_setpvn(sv, str "", sizeof(str) - 1)
-#endif
-
-#ifndef hv_fetchs
-#  define hv_fetchs(hv, key, lval)       hv_fetch(hv, key "", sizeof(key) - 1, lval)
-#endif
-
-#ifndef hv_stores
-#  define hv_stores(hv, key, val)        hv_store(hv, key "", sizeof(key) - 1, val, 0)
-#endif
-#ifndef gv_fetchpvs
-#  define gv_fetchpvs(name, flags, svt)  gv_fetchpvn_flags(name "", sizeof(name) - 1, flags, svt)
-#endif
-
-#ifndef gv_stashpvs
-#  define gv_stashpvs(name, flags)       gv_stashpvn(name "", sizeof(name) - 1, flags)
-#endif
-#ifndef get_cvs
-#  define get_cvs(name, flags)           get_cvn_flags(name "", sizeof(name)-1, flags)
-#endif
-#ifndef SvGETMAGIC
-#  define SvGETMAGIC(x)                  STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
-#endif
-
-/* That's the best we can do... */
-#ifndef sv_catpvn_nomg
-#  define sv_catpvn_nomg                 sv_catpvn
-#endif
-
-#ifndef sv_catsv_nomg
-#  define sv_catsv_nomg                  sv_catsv
-#endif
-
-#ifndef sv_setsv_nomg
-#  define sv_setsv_nomg                  sv_setsv
-#endif
-
-#ifndef sv_pvn_nomg
-#  define sv_pvn_nomg                    sv_pvn
-#endif
-
-#ifndef SvIV_nomg
-#  define SvIV_nomg                      SvIV
-#endif
-
-#ifndef SvUV_nomg
-#  define SvUV_nomg                      SvUV
-#endif
-
-#ifndef sv_catpv_mg
-#  define sv_catpv_mg(sv, ptr)          \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_catpv(TeMpSv,ptr);              \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_catpvn_mg
-#  define sv_catpvn_mg(sv, ptr, len)    \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_catpvn(TeMpSv,ptr,len);         \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_catsv_mg
-#  define sv_catsv_mg(dsv, ssv)         \
-   STMT_START {                         \
-     SV *TeMpSv = dsv;                  \
-     sv_catsv(TeMpSv,ssv);              \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_setiv_mg
-#  define sv_setiv_mg(sv, i)            \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_setiv(TeMpSv,i);                \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_setnv_mg
-#  define sv_setnv_mg(sv, num)          \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_setnv(TeMpSv,num);              \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_setpv_mg
-#  define sv_setpv_mg(sv, ptr)          \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_setpv(TeMpSv,ptr);              \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_setpvn_mg
-#  define sv_setpvn_mg(sv, ptr, len)    \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_setpvn(TeMpSv,ptr,len);         \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_setsv_mg
-#  define sv_setsv_mg(dsv, ssv)         \
-   STMT_START {                         \
-     SV *TeMpSv = dsv;                  \
-     sv_setsv(TeMpSv,ssv);              \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_setuv_mg
-#  define sv_setuv_mg(sv, i)            \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_setuv(TeMpSv,i);                \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-
-#ifndef sv_usepvn_mg
-#  define sv_usepvn_mg(sv, ptr, len)    \
-   STMT_START {                         \
-     SV *TeMpSv = sv;                   \
-     sv_usepvn(TeMpSv,ptr,len);         \
-     SvSETMAGIC(TeMpSv);                \
-   } STMT_END
-#endif
-#ifndef SvVSTRING_mg
-#  define SvVSTRING_mg(sv)               (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring) : NULL)
-#endif
-
-/* Hint: sv_magic_portable
- * This is a compatibility function that is only available with
- * Devel::PPPort. It is NOT in the perl core.
- * Its purpose is to mimic the 5.8.0 behaviour of sv_magic() when
- * it is being passed a name pointer with namlen == 0. In that
- * case, perl 5.8.0 and later store the pointer, not a copy of it.
- * The compatibility can be provided back to perl 5.004. With
- * earlier versions, the code will not compile.
- */
-
-#if (PERL_BCDVERSION < 0x5004000)
-
-  /* code that uses sv_magic_portable will not compile */
-
-#elif (PERL_BCDVERSION < 0x5008000)
-
-#  define sv_magic_portable(sv, obj, how, name, namlen)     \
-   STMT_START {                                             \
-     SV *SvMp_sv = (sv);                                    \
-     char *SvMp_name = (char *) (name);                     \
-     I32 SvMp_namlen = (namlen);                            \
-     if (SvMp_name && SvMp_namlen == 0)                     \
-     {                                                      \
-       MAGIC *mg;                                           \
-       sv_magic(SvMp_sv, obj, how, 0, 0);                   \
-       mg = SvMAGIC(SvMp_sv);                               \
-       mg->mg_len = -42; /* XXX: this is the tricky part */ \
-       mg->mg_ptr = SvMp_name;                              \
-     }                                                      \
-     else                                                   \
-     {                                                      \
-       sv_magic(SvMp_sv, obj, how, SvMp_name, SvMp_namlen); \
-     }                                                      \
-   } STMT_END
-
-#else
-
-#  define sv_magic_portable(a, b, c, d, e)  sv_magic(a, b, c, d, e)
-
-#endif
-
-#if !defined(mg_findext)
-#if defined(NEED_mg_findext)
-static MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl);
-static
-#else
-extern MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl);
-#endif
-
-#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL)
-
-#define mg_findext DPPP_(my_mg_findext)
-#define Perl_mg_findext DPPP_(my_mg_findext)
-
-
-MAGIC *
-DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl) {
-    if (sv) {
-        MAGIC *mg;
-
-#ifdef AvPAD_NAMELIST
-        assert(!(SvTYPE(sv) == SVt_PVAV && AvPAD_NAMELIST(sv)));
-#endif
-
-        for (mg = SvMAGIC (sv); mg; mg = mg->mg_moremagic) {
-            if (mg->mg_type == type && mg->mg_virtual == vtbl)
-                return mg;
-        }
-    }
-
-    return NULL;
-}
-
-#endif
-#endif
-
-#if !defined(sv_unmagicext)
-#if defined(NEED_sv_unmagicext)
-static int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl);
-static
-#else
-extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl);
-#endif
-
-#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL)
-
-#ifdef sv_unmagicext
-#  undef sv_unmagicext
-#endif
-#define sv_unmagicext(a,b,c) DPPP_(my_sv_unmagicext)(aTHX_ a,b,c)
-#define Perl_sv_unmagicext DPPP_(my_sv_unmagicext)
-
-
-int
-DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
-{
-    MAGIC* mg;
-    MAGIC** mgp;
-
-    if (SvTYPE(sv) < SVt_PVMG || !SvMAGIC(sv))
-	return 0;
-    mgp = &(SvMAGIC(sv));
-    for (mg = *mgp; mg; mg = *mgp) {
-	const MGVTBL* const virt = mg->mg_virtual;
-	if (mg->mg_type == type && virt == vtbl) {
-	    *mgp = mg->mg_moremagic;
-	    if (virt && virt->svt_free)
-		virt->svt_free(aTHX_ sv, mg);
-	    if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
-		if (mg->mg_len > 0)
-		    Safefree(mg->mg_ptr);
-		else if (mg->mg_len == HEf_SVKEY) /* Questionable on older perls... */
-		    SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr));
-		else if (mg->mg_type == PERL_MAGIC_utf8)
-		    Safefree(mg->mg_ptr);
-            }
-	    if (mg->mg_flags & MGf_REFCOUNTED)
-		SvREFCNT_dec(mg->mg_obj);
-	    Safefree(mg);
-	}
-	else
-	    mgp = &mg->mg_moremagic;
-    }
-    if (SvMAGIC(sv)) {
-	if (SvMAGICAL(sv))	/* if we're under save_magic, wait for restore_magic; */
-	    mg_magical(sv);	/*    else fix the flags now */
-    }
-    else {
-	SvMAGICAL_off(sv);
-	SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
-    }
-    return 0;
-}
-
-#endif
-#endif
-
-#ifdef USE_ITHREADS
-#ifndef CopFILE
-#  define CopFILE(c)                     ((c)->cop_file)
-#endif
-
-#ifndef CopFILEGV
-#  define CopFILEGV(c)                   (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv)
-#endif
-
-#ifndef CopFILE_set
-#  define CopFILE_set(c,pv)              ((c)->cop_file = savepv(pv))
-#endif
-
-#ifndef CopFILESV
-#  define CopFILESV(c)                   (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv)
-#endif
-
-#ifndef CopFILEAV
-#  define CopFILEAV(c)                   (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav)
-#endif
-
-#ifndef CopSTASHPV
-#  define CopSTASHPV(c)                  ((c)->cop_stashpv)
-#endif
-
-#ifndef CopSTASHPV_set
-#  define CopSTASHPV_set(c,pv)           ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch))
-#endif
-
-#ifndef CopSTASH
-#  define CopSTASH(c)                    (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv)
-#endif
-
-#ifndef CopSTASH_set
-#  define CopSTASH_set(c,hv)             CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch)
-#endif
-
-#ifndef CopSTASH_eq
-#  define CopSTASH_eq(c,hv)              ((hv) && (CopSTASHPV(c) == HvNAME(hv) \
-                                        || (CopSTASHPV(c) && HvNAME(hv) \
-                                        && strEQ(CopSTASHPV(c), HvNAME(hv)))))
-#endif
-
-#else
-#ifndef CopFILEGV
-#  define CopFILEGV(c)                   ((c)->cop_filegv)
-#endif
-
-#ifndef CopFILEGV_set
-#  define CopFILEGV_set(c,gv)            ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
-#endif
-
-#ifndef CopFILE_set
-#  define CopFILE_set(c,pv)              CopFILEGV_set((c), gv_fetchfile(pv))
-#endif
-
-#ifndef CopFILESV
-#  define CopFILESV(c)                   (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv)
-#endif
-
-#ifndef CopFILEAV
-#  define CopFILEAV(c)                   (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav)
-#endif
-
-#ifndef CopFILE
-#  define CopFILE(c)                     (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch)
-#endif
-
-#ifndef CopSTASH
-#  define CopSTASH(c)                    ((c)->cop_stash)
-#endif
-
-#ifndef CopSTASH_set
-#  define CopSTASH_set(c,hv)             ((c)->cop_stash = (hv))
-#endif
-
-#ifndef CopSTASHPV
-#  define CopSTASHPV(c)                  (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch)
-#endif
-
-#ifndef CopSTASHPV_set
-#  define CopSTASHPV_set(c,pv)           CopSTASH_set((c), gv_stashpv(pv,GV_ADD))
-#endif
-
-#ifndef CopSTASH_eq
-#  define CopSTASH_eq(c,hv)              (CopSTASH(c) == (hv))
-#endif
-
-#endif /* USE_ITHREADS */
-
-#if (PERL_BCDVERSION >= 0x5006000)
-#ifndef caller_cx
-
-# if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL)
-static I32
-DPPP_dopoptosub_at(const PERL_CONTEXT *cxstk, I32 startingblock)
-{
-    I32 i;
-
-    for (i = startingblock; i >= 0; i--) {
-	register const PERL_CONTEXT * const cx = &cxstk[i];
-	switch (CxTYPE(cx)) {
-	default:
-	    continue;
-	case CXt_EVAL:
-	case CXt_SUB:
-	case CXt_FORMAT:
-	    return i;
-	}
-    }
-    return i;
-}
-# endif
-
-# if defined(NEED_caller_cx)
-static const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp);
-static
-#else
-extern const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp);
-#endif
-
-#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL)
-
-#ifdef caller_cx
-#  undef caller_cx
-#endif
-#define caller_cx(a,b) DPPP_(my_caller_cx)(aTHX_ a,b)
-#define Perl_caller_cx DPPP_(my_caller_cx)
-
-
-const PERL_CONTEXT *
-DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp)
-{
-    register I32 cxix = DPPP_dopoptosub_at(cxstack, cxstack_ix);
-    register const PERL_CONTEXT *cx;
-    register const PERL_CONTEXT *ccstack = cxstack;
-    const PERL_SI *top_si = PL_curstackinfo;
-
-    for (;;) {
-	/* we may be in a higher stacklevel, so dig down deeper */
-	while (cxix < 0 && top_si->si_type != PERLSI_MAIN) {
-	    top_si = top_si->si_prev;
-	    ccstack = top_si->si_cxstack;
-	    cxix = DPPP_dopoptosub_at(ccstack, top_si->si_cxix);
-	}
-	if (cxix < 0)
-	    return NULL;
-	/* caller() should not report the automatic calls to &DB::sub */
-	if (PL_DBsub && GvCV(PL_DBsub) && cxix >= 0 &&
-		ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub))
-	    count++;
-	if (!count--)
-	    break;
-	cxix = DPPP_dopoptosub_at(ccstack, cxix - 1);
-    }
-
-    cx = &ccstack[cxix];
-    if (dbcxp) *dbcxp = cx;
-
-    if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) {
-        const I32 dbcxix = DPPP_dopoptosub_at(ccstack, cxix - 1);
-	/* We expect that ccstack[dbcxix] is CXt_SUB, anyway, the
-	   field below is defined for any cx. */
-	/* caller() should not report the automatic calls to &DB::sub */
-	if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub))
-	    cx = &ccstack[dbcxix];
-    }
-
-    return cx;
-}
-
-# endif
-#endif /* caller_cx */
-#endif /* 5.6.0 */
-#ifndef IN_PERL_COMPILETIME
-#  define IN_PERL_COMPILETIME            (PL_curcop == &PL_compiling)
-#endif
-
-#ifndef IN_LOCALE_RUNTIME
-#  define IN_LOCALE_RUNTIME              (PL_curcop->op_private & HINT_LOCALE)
-#endif
-
-#ifndef IN_LOCALE_COMPILETIME
-#  define IN_LOCALE_COMPILETIME          (PL_hints & HINT_LOCALE)
-#endif
-
-#ifndef IN_LOCALE
-#  define IN_LOCALE                      (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME)
-#endif
-#ifndef IS_NUMBER_IN_UV
-#  define IS_NUMBER_IN_UV                0x01
-#endif
-
-#ifndef IS_NUMBER_GREATER_THAN_UV_MAX
-#  define IS_NUMBER_GREATER_THAN_UV_MAX  0x02
-#endif
-
-#ifndef IS_NUMBER_NOT_INT
-#  define IS_NUMBER_NOT_INT              0x04
-#endif
-
-#ifndef IS_NUMBER_NEG
-#  define IS_NUMBER_NEG                  0x08
-#endif
-
-#ifndef IS_NUMBER_INFINITY
-#  define IS_NUMBER_INFINITY             0x10
-#endif
-
-#ifndef IS_NUMBER_NAN
-#  define IS_NUMBER_NAN                  0x20
-#endif
-#ifndef GROK_NUMERIC_RADIX
-#  define GROK_NUMERIC_RADIX(sp, send)   grok_numeric_radix(sp, send)
-#endif
-#ifndef PERL_SCAN_GREATER_THAN_UV_MAX
-#  define PERL_SCAN_GREATER_THAN_UV_MAX  0x02
-#endif
-
-#ifndef PERL_SCAN_SILENT_ILLDIGIT
-#  define PERL_SCAN_SILENT_ILLDIGIT      0x04
-#endif
-
-#ifndef PERL_SCAN_ALLOW_UNDERSCORES
-#  define PERL_SCAN_ALLOW_UNDERSCORES    0x01
-#endif
-
-#ifndef PERL_SCAN_DISALLOW_PREFIX
-#  define PERL_SCAN_DISALLOW_PREFIX      0x02
-#endif
-
-#ifndef grok_numeric_radix
-#if defined(NEED_grok_numeric_radix)
-static bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send);
-static
-#else
-extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send);
-#endif
-
-#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL)
-
-#ifdef grok_numeric_radix
-#  undef grok_numeric_radix
-#endif
-#define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b)
-#define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix)
-
-bool
-DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send)
-{
-#ifdef USE_LOCALE_NUMERIC
-#ifdef PL_numeric_radix_sv
-    if (PL_numeric_radix_sv && IN_LOCALE) {
-        STRLEN len;
-        char* radix = SvPV(PL_numeric_radix_sv, len);
-        if (*sp + len <= send && memEQ(*sp, radix, len)) {
-            *sp += len;
-            return TRUE;
-        }
-    }
-#else
-    /* older perls don't have PL_numeric_radix_sv so the radix
-     * must manually be requested from locale.h
-     */
-#include <locale.h>
-    dTHR;  /* needed for older threaded perls */
-    struct lconv *lc = localeconv();
-    char *radix = lc->decimal_point;
-    if (radix && IN_LOCALE) {
-        STRLEN len = strlen(radix);
-        if (*sp + len <= send && memEQ(*sp, radix, len)) {
-            *sp += len;
-            return TRUE;
-        }
-    }
-#endif
-#endif /* USE_LOCALE_NUMERIC */
-    /* always try "." if numeric radix didn't match because
-     * we may have data from different locales mixed */
-    if (*sp < send && **sp == '.') {
-        ++*sp;
-        return TRUE;
-    }
-    return FALSE;
-}
-#endif
-#endif
-
-#ifndef grok_number
-#if defined(NEED_grok_number)
-static int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep);
-static
-#else
-extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep);
-#endif
-
-#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL)
-
-#ifdef grok_number
-#  undef grok_number
-#endif
-#define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c)
-#define Perl_grok_number DPPP_(my_grok_number)
-
-int
-DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep)
-{
-  const char *s = pv;
-  const char *send = pv + len;
-  const UV max_div_10 = UV_MAX / 10;
-  const char max_mod_10 = UV_MAX % 10;
-  int numtype = 0;
-  int sawinf = 0;
-  int sawnan = 0;
-
-  while (s < send && isSPACE(*s))
-    s++;
-  if (s == send) {
-    return 0;
-  } else if (*s == '-') {
-    s++;
-    numtype = IS_NUMBER_NEG;
-  }
-  else if (*s == '+')
-  s++;
-
-  if (s == send)
-    return 0;
-
-  /* next must be digit or the radix separator or beginning of infinity */
-  if (isDIGIT(*s)) {
-    /* UVs are at least 32 bits, so the first 9 decimal digits cannot
-       overflow.  */
-    UV value = *s - '0';
-    /* This construction seems to be more optimiser friendly.
-       (without it gcc does the isDIGIT test and the *s - '0' separately)
-       With it gcc on arm is managing 6 instructions (6 cycles) per digit.
-       In theory the optimiser could deduce how far to unroll the loop
-       before checking for overflow.  */
-    if (++s < send) {
-      int digit = *s - '0';
-      if (digit >= 0 && digit <= 9) {
-        value = value * 10 + digit;
-        if (++s < send) {
-          digit = *s - '0';
-          if (digit >= 0 && digit <= 9) {
-            value = value * 10 + digit;
-            if (++s < send) {
-              digit = *s - '0';
-              if (digit >= 0 && digit <= 9) {
-                value = value * 10 + digit;
-                if (++s < send) {
-                  digit = *s - '0';
-                  if (digit >= 0 && digit <= 9) {
-                    value = value * 10 + digit;
-                    if (++s < send) {
-                      digit = *s - '0';
-                      if (digit >= 0 && digit <= 9) {
-                        value = value * 10 + digit;
-                        if (++s < send) {
-                          digit = *s - '0';
-                          if (digit >= 0 && digit <= 9) {
-                            value = value * 10 + digit;
-                            if (++s < send) {
-                              digit = *s - '0';
-                              if (digit >= 0 && digit <= 9) {
-                                value = value * 10 + digit;
-                                if (++s < send) {
-                                  digit = *s - '0';
-                                  if (digit >= 0 && digit <= 9) {
-                                    value = value * 10 + digit;
-                                    if (++s < send) {
-                                      /* Now got 9 digits, so need to check
-                                         each time for overflow.  */
-                                      digit = *s - '0';
-                                      while (digit >= 0 && digit <= 9
-                                             && (value < max_div_10
-                                                 || (value == max_div_10
-                                                     && digit <= max_mod_10))) {
-                                        value = value * 10 + digit;
-                                        if (++s < send)
-                                          digit = *s - '0';
-                                        else
-                                          break;
-                                      }
-                                      if (digit >= 0 && digit <= 9
-                                          && (s < send)) {
-                                        /* value overflowed.
-                                           skip the remaining digits, don't
-                                           worry about setting *valuep.  */
-                                        do {
-                                          s++;
-                                        } while (s < send && isDIGIT(*s));
-                                        numtype |=
-                                          IS_NUMBER_GREATER_THAN_UV_MAX;
-                                        goto skip_value;
-                                      }
-                                    }
-                                  }
-                                }
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-    numtype |= IS_NUMBER_IN_UV;
-    if (valuep)
-      *valuep = value;
-
-  skip_value:
-    if (GROK_NUMERIC_RADIX(&s, send)) {
-      numtype |= IS_NUMBER_NOT_INT;
-      while (s < send && isDIGIT(*s))  /* optional digits after the radix */
-        s++;
-    }
-  }
-  else if (GROK_NUMERIC_RADIX(&s, send)) {
-    numtype |= IS_NUMBER_NOT_INT | IS_NUMBER_IN_UV; /* valuep assigned below */
-    /* no digits before the radix means we need digits after it */
-    if (s < send && isDIGIT(*s)) {
-      do {
-        s++;
-      } while (s < send && isDIGIT(*s));
-      if (valuep) {
-        /* integer approximation is valid - it's 0.  */
-        *valuep = 0;
-      }
-    }
-    else
-      return 0;
-  } else if (*s == 'I' || *s == 'i') {
-    s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
-    s++; if (s == send || (*s != 'F' && *s != 'f')) return 0;
-    s++; if (s < send && (*s == 'I' || *s == 'i')) {
-      s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
-      s++; if (s == send || (*s != 'I' && *s != 'i')) return 0;
-      s++; if (s == send || (*s != 'T' && *s != 't')) return 0;
-      s++; if (s == send || (*s != 'Y' && *s != 'y')) return 0;
-      s++;
-    }
-    sawinf = 1;
-  } else if (*s == 'N' || *s == 'n') {
-    /* XXX TODO: There are signaling NaNs and quiet NaNs. */
-    s++; if (s == send || (*s != 'A' && *s != 'a')) return 0;
-    s++; if (s == send || (*s != 'N' && *s != 'n')) return 0;
-    s++;
-    sawnan = 1;
-  } else
-    return 0;
-
-  if (sawinf) {
-    numtype &= IS_NUMBER_NEG; /* Keep track of sign  */
-    numtype |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT;
-  } else if (sawnan) {
-    numtype &= IS_NUMBER_NEG; /* Keep track of sign  */
-    numtype |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT;
-  } else if (s < send) {
-    /* we can have an optional exponent part */
-    if (*s == 'e' || *s == 'E') {
-      /* The only flag we keep is sign.  Blow away any "it's UV"  */
-      numtype &= IS_NUMBER_NEG;
-      numtype |= IS_NUMBER_NOT_INT;
-      s++;
-      if (s < send && (*s == '-' || *s == '+'))
-        s++;
-      if (s < send && isDIGIT(*s)) {
-        do {
-          s++;
-        } while (s < send && isDIGIT(*s));
-      }
-      else
-      return 0;
-    }
-  }
-  while (s < send && isSPACE(*s))
-    s++;
-  if (s >= send)
-    return numtype;
-  if (len == 10 && memEQ(pv, "0 but true", 10)) {
-    if (valuep)
-      *valuep = 0;
-    return IS_NUMBER_IN_UV;
-  }
-  return 0;
-}
-#endif
-#endif
-
-/*
- * The grok_* routines have been modified to use warn() instead of
- * Perl_warner(). Also, 'hexdigit' was the former name of PL_hexdigit,
- * which is why the stack variable has been renamed to 'xdigit'.
- */
-
-#ifndef grok_bin
-#if defined(NEED_grok_bin)
-static UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
-static
-#else
-extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
-#endif
-
-#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL)
-
-#ifdef grok_bin
-#  undef grok_bin
-#endif
-#define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d)
-#define Perl_grok_bin DPPP_(my_grok_bin)
-
-UV
-DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
-{
-    const char *s = start;
-    STRLEN len = *len_p;
-    UV value = 0;
-    NV value_nv = 0;
-
-    const UV max_div_2 = UV_MAX / 2;
-    bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
-    bool overflowed = FALSE;
-
-    if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
-        /* strip off leading b or 0b.
-           for compatibility silently suffer "b" and "0b" as valid binary
-           numbers. */
-        if (len >= 1) {
-            if (s[0] == 'b') {
-                s++;
-                len--;
-            }
-            else if (len >= 2 && s[0] == '0' && s[1] == 'b') {
-                s+=2;
-                len-=2;
-            }
-        }
-    }
-
-    for (; len-- && *s; s++) {
-        char bit = *s;
-        if (bit == '0' || bit == '1') {
-            /* Write it in this wonky order with a goto to attempt to get the
-               compiler to make the common case integer-only loop pretty tight.
-               With gcc seems to be much straighter code than old scan_bin.  */
-          redo:
-            if (!overflowed) {
-                if (value <= max_div_2) {
-                    value = (value << 1) | (bit - '0');
-                    continue;
-                }
-                /* Bah. We're just overflowed.  */
-                warn("Integer overflow in binary number");
-                overflowed = TRUE;
-                value_nv = (NV) value;
-            }
-            value_nv *= 2.0;
-            /* If an NV has not enough bits in its mantissa to
-             * represent a UV this summing of small low-order numbers
-             * is a waste of time (because the NV cannot preserve
-             * the low-order bits anyway): we could just remember when
-             * did we overflow and in the end just multiply value_nv by the
-             * right amount. */
-            value_nv += (NV)(bit - '0');
-            continue;
-        }
-        if (bit == '_' && len && allow_underscores && (bit = s[1])
-            && (bit == '0' || bit == '1'))
-            {
-                --len;
-                ++s;
-                goto redo;
-            }
-        if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
-            warn("Illegal binary digit '%c' ignored", *s);
-        break;
-    }
-
-    if (   ( overflowed && value_nv > 4294967295.0)
-#if UVSIZE > 4
-        || (!overflowed && value > 0xffffffff  )
-#endif
-        ) {
-        warn("Binary number > 0b11111111111111111111111111111111 non-portable");
-    }
-    *len_p = s - start;
-    if (!overflowed) {
-        *flags = 0;
-        return value;
-    }
-    *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
-    if (result)
-        *result = value_nv;
-    return UV_MAX;
-}
-#endif
-#endif
-
-#ifndef grok_hex
-#if defined(NEED_grok_hex)
-static UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
-static
-#else
-extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
-#endif
-
-#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL)
-
-#ifdef grok_hex
-#  undef grok_hex
-#endif
-#define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d)
-#define Perl_grok_hex DPPP_(my_grok_hex)
-
-UV
-DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
-{
-    const char *s = start;
-    STRLEN len = *len_p;
-    UV value = 0;
-    NV value_nv = 0;
-
-    const UV max_div_16 = UV_MAX / 16;
-    bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
-    bool overflowed = FALSE;
-    const char *xdigit;
-
-    if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) {
-        /* strip off leading x or 0x.
-           for compatibility silently suffer "x" and "0x" as valid hex numbers.
-        */
-        if (len >= 1) {
-            if (s[0] == 'x') {
-                s++;
-                len--;
-            }
-            else if (len >= 2 && s[0] == '0' && s[1] == 'x') {
-                s+=2;
-                len-=2;
-            }
-        }
-    }
-
-    for (; len-- && *s; s++) {
-        xdigit = strchr((char *) PL_hexdigit, *s);
-        if (xdigit) {
-            /* Write it in this wonky order with a goto to attempt to get the
-               compiler to make the common case integer-only loop pretty tight.
-               With gcc seems to be much straighter code than old scan_hex.  */
-          redo:
-            if (!overflowed) {
-                if (value <= max_div_16) {
-                    value = (value << 4) | ((xdigit - PL_hexdigit) & 15);
-                    continue;
-                }
-                warn("Integer overflow in hexadecimal number");
-                overflowed = TRUE;
-                value_nv = (NV) value;
-            }
-            value_nv *= 16.0;
-            /* If an NV has not enough bits in its mantissa to
-             * represent a UV this summing of small low-order numbers
-             * is a waste of time (because the NV cannot preserve
-             * the low-order bits anyway): we could just remember when
-             * did we overflow and in the end just multiply value_nv by the
-             * right amount of 16-tuples. */
-            value_nv += (NV)((xdigit - PL_hexdigit) & 15);
-            continue;
-        }
-        if (*s == '_' && len && allow_underscores && s[1]
-                && (xdigit = strchr((char *) PL_hexdigit, s[1])))
-            {
-                --len;
-                ++s;
-                goto redo;
-            }
-        if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
-            warn("Illegal hexadecimal digit '%c' ignored", *s);
-        break;
-    }
-
-    if (   ( overflowed && value_nv > 4294967295.0)
-#if UVSIZE > 4
-        || (!overflowed && value > 0xffffffff  )
-#endif
-        ) {
-        warn("Hexadecimal number > 0xffffffff non-portable");
-    }
-    *len_p = s - start;
-    if (!overflowed) {
-        *flags = 0;
-        return value;
-    }
-    *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
-    if (result)
-        *result = value_nv;
-    return UV_MAX;
-}
-#endif
-#endif
-
-#ifndef grok_oct
-#if defined(NEED_grok_oct)
-static UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
-static
-#else
-extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result);
-#endif
-
-#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL)
-
-#ifdef grok_oct
-#  undef grok_oct
-#endif
-#define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d)
-#define Perl_grok_oct DPPP_(my_grok_oct)
-
-UV
-DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
-{
-    const char *s = start;
-    STRLEN len = *len_p;
-    UV value = 0;
-    NV value_nv = 0;
-
-    const UV max_div_8 = UV_MAX / 8;
-    bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES;
-    bool overflowed = FALSE;
-
-    for (; len-- && *s; s++) {
-         /* gcc 2.95 optimiser not smart enough to figure that this subtraction
-            out front allows slicker code.  */
-        int digit = *s - '0';
-        if (digit >= 0 && digit <= 7) {
-            /* Write it in this wonky order with a goto to attempt to get the
-               compiler to make the common case integer-only loop pretty tight.
-            */
-          redo:
-            if (!overflowed) {
-                if (value <= max_div_8) {
-                    value = (value << 3) | digit;
-                    continue;
-                }
-                /* Bah. We're just overflowed.  */
-                warn("Integer overflow in octal number");
-                overflowed = TRUE;
-                value_nv = (NV) value;
-            }
-            value_nv *= 8.0;
-            /* If an NV has not enough bits in its mantissa to
-             * represent a UV this summing of small low-order numbers
-             * is a waste of time (because the NV cannot preserve
-             * the low-order bits anyway): we could just remember when
-             * did we overflow and in the end just multiply value_nv by the
-             * right amount of 8-tuples. */
-            value_nv += (NV)digit;
-            continue;
-        }
-        if (digit == ('_' - '0') && len && allow_underscores
-            && (digit = s[1] - '0') && (digit >= 0 && digit <= 7))
-            {
-                --len;
-                ++s;
-                goto redo;
-            }
-        /* Allow \octal to work the DWIM way (that is, stop scanning
-         * as soon as non-octal characters are seen, complain only iff
-         * someone seems to want to use the digits eight and nine). */
-        if (digit == 8 || digit == 9) {
-            if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
-                warn("Illegal octal digit '%c' ignored", *s);
-        }
-        break;
-    }
-
-    if (   ( overflowed && value_nv > 4294967295.0)
-#if UVSIZE > 4
-        || (!overflowed && value > 0xffffffff  )
-#endif
-        ) {
-        warn("Octal number > 037777777777 non-portable");
-    }
-    *len_p = s - start;
-    if (!overflowed) {
-        *flags = 0;
-        return value;
-    }
-    *flags = PERL_SCAN_GREATER_THAN_UV_MAX;
-    if (result)
-        *result = value_nv;
-    return UV_MAX;
-}
-#endif
-#endif
-
-#if !defined(my_snprintf)
-#if defined(NEED_my_snprintf)
-static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...);
-static
-#else
-extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...);
-#endif
-
-#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL)
-
-#define my_snprintf DPPP_(my_my_snprintf)
-#define Perl_my_snprintf DPPP_(my_my_snprintf)
-
-
-int
-DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...)
-{
-    dTHX;
-    int retval;
-    va_list ap;
-    va_start(ap, format);
-#ifdef HAS_VSNPRINTF
-    retval = vsnprintf(buffer, len, format, ap);
-#else
-    retval = vsprintf(buffer, format, ap);
-#endif
-    va_end(ap);
-    if (retval < 0 || (len > 0 && (Size_t)retval >= len))
-        Perl_croak(aTHX_ "panic: my_snprintf buffer overflow");
-    return retval;
-}
-
-#endif
-#endif
-
-#if !defined(my_sprintf)
-#if defined(NEED_my_sprintf)
-static int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...);
-static
-#else
-extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...);
-#endif
-
-#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL)
-
-#define my_sprintf DPPP_(my_my_sprintf)
-#define Perl_my_sprintf DPPP_(my_my_sprintf)
-
-
-int
-DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    vsprintf(buffer, pat, args);
-    va_end(args);
-    return strlen(buffer);
-}
-
-#endif
-#endif
-
-#ifdef NO_XSLOCKS
-#  ifdef dJMPENV
-#    define dXCPT             dJMPENV; int rEtV = 0
-#    define XCPT_TRY_START    JMPENV_PUSH(rEtV); if (rEtV == 0)
-#    define XCPT_TRY_END      JMPENV_POP;
-#    define XCPT_CATCH        if (rEtV != 0)
-#    define XCPT_RETHROW      JMPENV_JUMP(rEtV)
-#  else
-#    define dXCPT             Sigjmp_buf oldTOP; int rEtV = 0
-#    define XCPT_TRY_START    Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
-#    define XCPT_TRY_END      Copy(oldTOP, top_env, 1, Sigjmp_buf);
-#    define XCPT_CATCH        if (rEtV != 0)
-#    define XCPT_RETHROW      Siglongjmp(top_env, rEtV)
-#  endif
-#endif
-
-#if !defined(my_strlcat)
-#if defined(NEED_my_strlcat)
-static Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size);
-static
-#else
-extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size);
-#endif
-
-#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL)
-
-#define my_strlcat DPPP_(my_my_strlcat)
-#define Perl_my_strlcat DPPP_(my_my_strlcat)
-
-
-Size_t
-DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size)
-{
-    Size_t used, length, copy;
-
-    used = strlen(dst);
-    length = strlen(src);
-    if (size > 0 && used < size - 1) {
-        copy = (length >= size - used) ? size - used - 1 : length;
-        memcpy(dst + used, src, copy);
-        dst[used + copy] = '\0';
-    }
-    return used + length;
-}
-#endif
-#endif
-
-#if !defined(my_strlcpy)
-#if defined(NEED_my_strlcpy)
-static Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size);
-static
-#else
-extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size);
-#endif
-
-#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL)
-
-#define my_strlcpy DPPP_(my_my_strlcpy)
-#define Perl_my_strlcpy DPPP_(my_my_strlcpy)
-
-
-Size_t
-DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size)
-{
-    Size_t length, copy;
-
-    length = strlen(src);
-    if (size > 0) {
-        copy = (length >= size) ? size - 1 : length;
-        memcpy(dst, src, copy);
-        dst[copy] = '\0';
-    }
-    return length;
-}
-
-#endif
-#endif
-#ifndef PERL_PV_ESCAPE_QUOTE
-#  define PERL_PV_ESCAPE_QUOTE           0x0001
-#endif
-
-#ifndef PERL_PV_PRETTY_QUOTE
-#  define PERL_PV_PRETTY_QUOTE           PERL_PV_ESCAPE_QUOTE
-#endif
-
-#ifndef PERL_PV_PRETTY_ELLIPSES
-#  define PERL_PV_PRETTY_ELLIPSES        0x0002
-#endif
-
-#ifndef PERL_PV_PRETTY_LTGT
-#  define PERL_PV_PRETTY_LTGT            0x0004
-#endif
-
-#ifndef PERL_PV_ESCAPE_FIRSTCHAR
-#  define PERL_PV_ESCAPE_FIRSTCHAR       0x0008
-#endif
-
-#ifndef PERL_PV_ESCAPE_UNI
-#  define PERL_PV_ESCAPE_UNI             0x0100
-#endif
-
-#ifndef PERL_PV_ESCAPE_UNI_DETECT
-#  define PERL_PV_ESCAPE_UNI_DETECT      0x0200
-#endif
-
-#ifndef PERL_PV_ESCAPE_ALL
-#  define PERL_PV_ESCAPE_ALL             0x1000
-#endif
-
-#ifndef PERL_PV_ESCAPE_NOBACKSLASH
-#  define PERL_PV_ESCAPE_NOBACKSLASH     0x2000
-#endif
-
-#ifndef PERL_PV_ESCAPE_NOCLEAR
-#  define PERL_PV_ESCAPE_NOCLEAR         0x4000
-#endif
-
-#ifndef PERL_PV_ESCAPE_RE
-#  define PERL_PV_ESCAPE_RE              0x8000
-#endif
-
-#ifndef PERL_PV_PRETTY_NOCLEAR
-#  define PERL_PV_PRETTY_NOCLEAR         PERL_PV_ESCAPE_NOCLEAR
-#endif
-#ifndef PERL_PV_PRETTY_DUMP
-#  define PERL_PV_PRETTY_DUMP            PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
-#endif
-
-#ifndef PERL_PV_PRETTY_REGPROP
-#  define PERL_PV_PRETTY_REGPROP         PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
-#endif
-
-/* Hint: pv_escape
- * Note that unicode functionality is only backported to
- * those perl versions that support it. For older perl
- * versions, the implementation will fall back to bytes.
- */
-
-#ifndef pv_escape
-#if defined(NEED_pv_escape)
-static char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
-static
-#else
-extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags);
-#endif
-
-#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL)
-
-#ifdef pv_escape
-#  undef pv_escape
-#endif
-#define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f)
-#define Perl_pv_escape DPPP_(my_pv_escape)
-
-
-char *
-DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str,
-  const STRLEN count, const STRLEN max,
-  STRLEN * const escaped, const U32 flags)
-{
-    const char esc = flags & PERL_PV_ESCAPE_RE ? '%' : '\\';
-    const char dq = flags & PERL_PV_ESCAPE_QUOTE ? '"' : esc;
-    char octbuf[32] = "%123456789ABCDF";
-    STRLEN wrote = 0;
-    STRLEN chsize = 0;
-    STRLEN readsize = 1;
-#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf)
-    bool isuni = flags & PERL_PV_ESCAPE_UNI ? 1 : 0;
-#endif
-    const char *pv  = str;
-    const char * const end = pv + count;
-    octbuf[0] = esc;
-
-    if (!(flags & PERL_PV_ESCAPE_NOCLEAR))
-        sv_setpvs(dsv, "");
-
-#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf)
-    if ((flags & PERL_PV_ESCAPE_UNI_DETECT) && is_utf8_string((U8*)pv, count))
-        isuni = 1;
-#endif
-
-    for (; pv < end && (!max || wrote < max) ; pv += readsize) {
-        const UV u =
-#if defined(is_utf8_string) && defined(utf8_to_uvchr_buf)
-                     isuni ? utf8_to_uvchr_buf((U8*)pv, end, &readsize) :
-#endif
-                             (U8)*pv;
-        const U8 c = (U8)u & 0xFF;
-
-        if (u > 255 || (flags & PERL_PV_ESCAPE_ALL)) {
-            if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
-                chsize = my_snprintf(octbuf, sizeof octbuf,
-                                      "%" UVxf, u);
-            else
-                chsize = my_snprintf(octbuf, sizeof octbuf,
-                                      "%cx{%" UVxf "}", esc, u);
-        } else if (flags & PERL_PV_ESCAPE_NOBACKSLASH) {
-            chsize = 1;
-        } else {
-            if (c == dq || c == esc || !isPRINT(c)) {
-                chsize = 2;
-                switch (c) {
-                case '\\' : /* fallthrough */
-                case '%'  : if (c == esc)
-                                octbuf[1] = esc;
-                            else
-                                chsize = 1;
-                            break;
-                case '\v' : octbuf[1] = 'v'; break;
-                case '\t' : octbuf[1] = 't'; break;
-                case '\r' : octbuf[1] = 'r'; break;
-                case '\n' : octbuf[1] = 'n'; break;
-                case '\f' : octbuf[1] = 'f'; break;
-                case '"'  : if (dq == '"')
-                                octbuf[1] = '"';
-                            else
-                                chsize = 1;
-                            break;
-                default:    chsize = my_snprintf(octbuf, sizeof octbuf,
-                                pv < end && isDIGIT((U8)*(pv+readsize))
-                                ? "%c%03o" : "%c%o", esc, c);
-                }
-            } else {
-                chsize = 1;
-            }
-        }
-        if (max && wrote + chsize > max) {
-            break;
-        } else if (chsize > 1) {
-            sv_catpvn(dsv, octbuf, chsize);
-            wrote += chsize;
-        } else {
-            char tmp[2];
-            my_snprintf(tmp, sizeof tmp, "%c", c);
-            sv_catpvn(dsv, tmp, 1);
-            wrote++;
-        }
-        if (flags & PERL_PV_ESCAPE_FIRSTCHAR)
-            break;
-    }
-    if (escaped != NULL)
-        *escaped= pv - str;
-    return SvPVX(dsv);
-}
-
-#endif
-#endif
-
-#ifndef pv_pretty
-#if defined(NEED_pv_pretty)
-static char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
-static
-#else
-extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags);
-#endif
-
-#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL)
-
-#ifdef pv_pretty
-#  undef pv_pretty
-#endif
-#define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g)
-#define Perl_pv_pretty DPPP_(my_pv_pretty)
-
-
-char *
-DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count,
-  const STRLEN max, char const * const start_color, char const * const end_color,
-  const U32 flags)
-{
-    const U8 dq = (flags & PERL_PV_PRETTY_QUOTE) ? '"' : '%';
-    STRLEN escaped;
-
-    if (!(flags & PERL_PV_PRETTY_NOCLEAR))
-        sv_setpvs(dsv, "");
-
-    if (dq == '"')
-        sv_catpvs(dsv, "\"");
-    else if (flags & PERL_PV_PRETTY_LTGT)
-        sv_catpvs(dsv, "<");
-
-    if (start_color != NULL)
-        sv_catpv(dsv, D_PPP_CONSTPV_ARG(start_color));
-
-    pv_escape(dsv, str, count, max, &escaped, flags | PERL_PV_ESCAPE_NOCLEAR);
-
-    if (end_color != NULL)
-        sv_catpv(dsv, D_PPP_CONSTPV_ARG(end_color));
-
-    if (dq == '"')
-        sv_catpvs(dsv, "\"");
-    else if (flags & PERL_PV_PRETTY_LTGT)
-        sv_catpvs(dsv, ">");
-
-    if ((flags & PERL_PV_PRETTY_ELLIPSES) && escaped < count)
-        sv_catpvs(dsv, "...");
-
-    return SvPVX(dsv);
-}
-
-#endif
-#endif
-
-#ifndef pv_display
-#if defined(NEED_pv_display)
-static char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim);
-static
-#else
-extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim);
-#endif
-
-#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL)
-
-#ifdef pv_display
-#  undef pv_display
-#endif
-#define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e)
-#define Perl_pv_display DPPP_(my_pv_display)
-
-
-char *
-DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
-{
-    pv_pretty(dsv, pv, cur, pvlim, NULL, NULL, PERL_PV_PRETTY_DUMP);
-    if (len > cur && pv[cur] == '\0')
-        sv_catpvs(dsv, "\\0");
-    return SvPVX(dsv);
-}
-
-#endif
-#endif
-
-#endif /* _P_P_PORTABILITY_H_ */
-
-/* End of File ppport.h */
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/suppressions.asan
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/suppressions.asan
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/suppressions.asan
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/suppressions.asan	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,10 +0,0 @@
-# suppressions file for address sanitizer
-
-leak:Perl_yylex
-leak:Perl_yyparse
-leak:Perl_init_i18nl10n
-leak:Perl_newSTATEOP
-leak:S_optimize_op
-leak:Perl_re_op_compile
-leak:S_doeval_compile
-leak:Perl_re_dup_guts
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtdef
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtdef
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtdef
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtdef	15 Feb 2023 01:38:21 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-#!/usr/local/bin/perl
-
-use Compress::Raw::Zlib ;
-
-use strict ;
-use warnings ;
-
-binmode STDIN;
-binmode STDOUT;
-
-my $x = new Compress::Raw::Zlib::Deflate()
-   or die "Cannot create a deflation stream\n" ;
-
-my $output = '' ;
-
-while (<>)
-{
-    $x->deflate($_, $output) == Z_OK
-        or die "deflate failed\n" ;
-
-    print $output ;
-}
-
-$x->flush($output) == Z_OK
-    or die "flush failed\n" ;
-
-print $output ;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtinf
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtinf
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtinf
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/examples/filtinf	15 Feb 2023 01:38:21 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,29 +0,0 @@
-#!/usr/local/bin/perl
-
-use Compress::Raw::Zlib ;
-
-use strict ;
-use warnings ;
-
-binmode STDIN;
-binmode STDOUT;
-
-my $x = new Compress::Raw::Zlib::Inflate
-   or die "Cannot create a inflation stream\n" ;
-
-my $input = '' ;
-my $output = '' ;
-my $status ;
-
-while (read(STDIN, $input, 4096))
-{
-    $status = $x->inflate($input, $output) ;
-
-    print $output
-        if $status == Z_OK or $status == Z_STREAM_END ;
-
-    last if $status != Z_OK ;
-}
-
-die "inflation failed\n"
-    unless $status == Z_STREAM_END ;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm,v
diff -u -p -a -u -p -r1.7 Zlib.pm
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm	15 Feb 2023 01:38:21 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm	21 Feb 2024 15:47:00 -0000
@@ -10,7 +10,7 @@ use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS);
 
-$VERSION = '2.202';
+$VERSION = '2.204_001';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -1637,7 +1637,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/000prereq.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/000prereq.t
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/000prereq.t
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/000prereq.t	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,223 +0,0 @@
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-        chdir 't' if -d 't';
-        @INC = ("../lib", "lib/compress");
-    }
-}
-
-use lib qw(t t/compress);
-use strict ;
-use warnings ;
-
-use Test::More ;
-
-BEGIN
-{
-
-    diag "Running Perl version  $]\n";
-
-    # use Test::NoWarnings, if available
-    my $extra = 0 ;
-    $extra = 1
-        if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
-
-
-    my $VERSION = '2.202';
-    my @NAMES = qw(
-
-			);
-
-    my @OPT = qw(
-
-			);
-
-    plan tests => 1 + @NAMES + @OPT + $extra ;
-
-    ok 1;
-
-    foreach my $name (@NAMES)
-    {
-        use_ok($name, $VERSION);
-    }
-
-
-    foreach my $name (@OPT)
-    {
-        eval " require $name " ;
-        if ($@)
-        {
-            ok 1, "$name not available"
-        }
-        else
-        {
-            my $ver = eval("\$${name}::VERSION");
-            is $ver, $VERSION, "$name version should be $VERSION"
-                or diag "$name version is $ver, need $VERSION" ;
-        }
-    }
-
-}
-
-sub bit
-{
-    return 1 << $_[0];
-}
-
-{
-    # Print our versions of all modules used
-
-    use Compress::Raw::Zlib;
-
-    my @results = ( [ 'Perl', $] ] );
-    my @modules = qw(
-                    Compress::Raw::Zlib
-                    );
-
-    my %have = ();
-
-    for my $module (@modules)
-    {
-        my $ver = packageVer($module) ;
-        my $v = defined $ver
-                    ? $ver
-                    : "Not Installed" ;
-        push @results, [$module, $v] ;
-        $have{$module} ++
-            if $ver ;
-    }
-
-    push @results, ['',''];
-    push @results, ["zlib_version (from zlib library)", Compress::Raw::Zlib::zlib_version() ];
-    push @results, ["ZLIB_VERSION (from zlib.h)", Compress::Raw::Zlib::ZLIB_VERSION ];
-    push @results, ["ZLIB_VERNUM", sprintf("0x%x", Compress::Raw::Zlib::ZLIB_VERNUM) ];
-    push @results, ['',''];
-
-    push @results, ['BUILD_ZLIB',  $Compress::Raw::Zlib::BUILD_ZLIB];
-    push @results, ['GZIP_OS_CODE',  $Compress::Raw::Zlib::gzip_os_code];
-    push @results, ['',''];
-
-    if (Compress::Raw::Zlib::is_zlibng)
-    {
-        push @results, ["Using zlib-ng", "Yes" ];
-
-        push @results, ["zlibng_version", Compress::Raw::Zlib::zlibng_version() ];
-
-        if (Compress::Raw::Zlib::is_zlibng_compat)
-        {
-            push @results, ["zlib-ng Mode", "Compat" ];
-        }
-        else
-        {
-            push @results, ["zlib-ng Mode", "Native" ];
-        }
-
-        my @ng = qw(
-            ZLIBNG_VERSION
-            ZLIBNG_VER_MAJOR
-            ZLIBNG_VER_MINOR
-            ZLIBNG_VER_REVISION
-            ZLIBNG_VER_STATUS
-            ZLIBNG_VER_MODIFIED
-            );
-
-        for my $n (@ng)
-        {
-            no strict 'refs';
-            push @results, ["  $n", &{ "Compress::Raw::Zlib::$n" } ];
-        }
-
-        no strict 'refs';
-        push @results, ["  ZLIBNG_VERNUM", sprintf("0x%x", &{ "Compress::Raw::Zlib::ZLIBNG_VERNUM" }) ];
-
-    }
-    else
-    {
-        push @results, ["Using zlib-ng", "No" ];
-    }
-
-    push @results, ['',''];
-    push @results, ["is_zlib_native",   Compress::Raw::Zlib::is_zlib_native() ? 1 : 0 ];
-    push @results, ["is_zlibng",        Compress::Raw::Zlib::is_zlibng() ?1 : 0];
-    push @results, ["is_zlibng_native", Compress::Raw::Zlib::is_zlibng_native() ? 1 : 0 ];
-    push @results, ["is_zlibng_compat", Compress::Raw::Zlib::is_zlibng_compat() ? 1 : 0];
-
-
-    my $zlib_h = ZLIB_VERSION ;
-    my $libz   = Compress::Raw::Zlib::zlib_version;
-    my $ZLIB_VERNUM = sprintf ("0x%X", Compress::Raw::Zlib::ZLIB_VERNUM()) ;
-    my $flags = Compress::Raw::Zlib::zlibCompileFlags();
-
-    push @results, ['',''];
-    push @results, ['zlibCompileFlags', $flags];
-    push @results, ['  Type Sizes', ''];
-
-    my %sizes = (
-        0   => '16 bit',
-        1   => '32 bit',
-        2   => '64 bit',
-        3   => 'other'
-    );
-
-    push @results, ['    size of uInt',      $sizes{ ($flags >> 0) & 0x3 } ];
-    push @results, ['    size of uLong',     $sizes{ ($flags >> 2) & 0x3 } ];
-    push @results, ['    size of pointer',   $sizes{ ($flags >> 4) & 0x3 } ];
-    push @results, ['    size of z_off_t',   $sizes{ ($flags >> 6) & 0x3 } ];
-
-    my @compiler_options;
-    push @compiler_options, 'ZLIB_DEBUG'  if $flags & bit(8) ;
-    push @compiler_options, 'ASM'         if $flags & bit(9) ;
-    push @compiler_options, 'ZLIB_WINAPI' if $flags & bit(10) ;
-    push @compiler_options, 'None'        unless @compiler_options;
-    push @results, ['  Compiler Options', join ", ", @compiler_options];
-
-    my @one_time;
-    push @one_time, 'BUILDFIXED'  if $flags & bit(12) ;
-    push @one_time, 'DYNAMIC_CRC_TABLE'  if $flags & bit(13) ;
-    push @one_time, 'None'        unless @one_time;
-    push @results, ['  One-time table building', join ", ", @one_time];
-
-    my @library;
-    push @library, 'NO_GZCOMPRESS'  if $flags & bit(16) ;
-    push @library, 'NO_GZIP'  if $flags & bit(17) ;
-    push @library, 'None'        unless @library;
-    push @results, ['  Library content', join ", ", @library];
-
-    my @operational;
-    push @operational, 'PKZIP_BUG_WORKAROUND'  if $flags & bit(20) ;
-    push @operational, 'FASTEST'  if $flags & bit(21) ;
-    push @operational, 'None'        unless @operational;
-    push @results, ['  Operation variations', join ", ", @operational];
-
-
-
-    if ($have{"Compress::Raw::Lzma"})
-    {
-        my $ver = eval { Compress::Raw::Lzma::lzma_version_string(); } || "unknown";
-        push @results, ["lzma", $ver] ;
-    }
-
-    use List::Util qw(max);
-    my $width = max map { length $_->[0] } @results;
-
-    diag "\n\n" ;
-    for my $m (@results)
-    {
-        my ($name, $ver) = @$m;
-
-        my $b = " " x (1 + $width - length $name);
-
-        diag $name . $b . $ver . "\n" ;
-    }
-
-    diag "\n\n" ;
-}
-
-sub packageVer
-{
-    no strict 'refs';
-    my $package = shift;
-
-    eval "use $package;";
-    return ${ "${package}::VERSION" };
-
-}
\ No newline at end of file
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/99pod.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/99pod.t
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/99pod.t
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/99pod.t	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-	chdir 't' if -d 't';
-	@INC = ("../lib", "lib/compress");
-    }
-}
-
-use lib qw(t t/compress);
-use Test::More;
-
-eval "use Test::Pod 1.00";
-
-plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
-
-all_pod_files_ok();
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-json.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-json.t
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-json.t
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-json.t	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-        chdir 't' if -d 't';
-        @INC = ("../lib", "lib/compress");
-    }
-}
-
-use lib qw(t t/compress);
-use Test::More;
-eval "use Test::CPAN::Meta::JSON";
-plan skip_all => "Test::CPAN::Meta::JSON required for testing META.json" if $@;
-meta_json_ok();
\ No newline at end of file
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-yaml.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-yaml.t
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-yaml.t
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/meta-yaml.t	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-BEGIN {
-    if ($ENV{PERL_CORE}) {
-        chdir 't' if -d 't';
-        @INC = ("../lib", "lib/compress");
-    }
-}
-
-use lib qw(t t/compress);
-use Test::More;
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
-meta_yaml_ok();
\ No newline at end of file
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Builder.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Builder.pm
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Builder.pm
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Builder.pm	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1625 +0,0 @@
-package Test::Builder;
-
-use 5.004;
-
-# $^C was only introduced in 5.005-ish.  We do this to prevent
-# use of uninitialized value warnings in older perls.
-$^C ||= 0;
-
-use strict;
-our ($VERSION);
-$VERSION = '0.30';
-$VERSION = eval $VERSION;    # make the alpha version come out as a number
-
-# Make Test::Builder thread-safe for ithreads.
-BEGIN {
-    use Config;
-    # Load threads::shared when threads are turned on
-    if( $] >= 5.008 && $Config{useithreads} && $INC{'threads.pm'}) {
-        require threads::shared;
-
-        # Hack around YET ANOTHER threads::shared bug.  It would 
-        # occassionally forget the contents of the variable when sharing it.
-        # So we first copy the data, then share, then put our copy back.
-        *share = sub (\[$@%]) {
-            my $type = ref $_[0];
-            my $data;
-
-            if( $type eq 'HASH' ) {
-                %$data = %{$_[0]};
-            }
-            elsif( $type eq 'ARRAY' ) {
-                @$data = @{$_[0]};
-            }
-            elsif( $type eq 'SCALAR' ) {
-                $$data = ${$_[0]};
-            }
-            else {
-                die "Unknown type: ".$type;
-            }
-
-            $_[0] = &threads::shared::share($_[0]);
-
-            if( $type eq 'HASH' ) {
-                %{$_[0]} = %$data;
-            }
-            elsif( $type eq 'ARRAY' ) {
-                @{$_[0]} = @$data;
-            }
-            elsif( $type eq 'SCALAR' ) {
-                ${$_[0]} = $$data;
-            }
-            else {
-                die "Unknown type: ".$type;
-            }
-
-            return $_[0];
-        };
-    }
-    # 5.8.0's threads::shared is busted when threads are off.
-    # We emulate it here.
-    else {
-        *share = sub { return $_[0] };
-        *lock  = sub { 0 };
-    }
-}
-
-
-=head1 NAME
-
-Test::Builder - Backend for building test libraries
-
-=head1 SYNOPSIS
-
-  package My::Test::Module;
-  use Test::Builder;
-  require Exporter;
-  @ISA = qw(Exporter);
-  @EXPORT = qw(ok);
-
-  my $Test = Test::Builder->new;
-  $Test->output('my_logfile');
-
-  sub import {
-      my($self) = shift;
-      my $pack = caller;
-
-      $Test->exported_to($pack);
-      $Test->plan(@_);
-
-      $self->export_to_level(1, $self, 'ok');
-  }
-
-  sub ok {
-      my($test, $name) = @_;
-
-      $Test->ok($test, $name);
-  }
-
-
-=head1 DESCRIPTION
-
-Test::Simple and Test::More have proven to be popular testing modules,
-but they're not always flexible enough.  Test::Builder provides the a
-building block upon which to write your own test libraries I<which can
-work together>.
-
-=head2 Construction
-
-=over 4
-
-=item B<new>
-
-  my $Test = Test::Builder->new;
-
-Returns a Test::Builder object representing the current state of the
-test.
-
-Since you only run one test per program C<new> always returns the same
-Test::Builder object.  No matter how many times you call new(), you're
-getting the same object.  This is called a singleton.  This is done so that
-multiple modules share such global information as the test counter and
-where test output is going.
-
-If you want a completely new Test::Builder object different from the
-singleton, use C<create>.
-
-=cut
-
-my $Test = Test::Builder->new;
-sub new {
-    my($class) = shift;
-    $Test ||= $class->create;
-    return $Test;
-}
-
-
-=item B<create>
-
-  my $Test = Test::Builder->create;
-
-Ok, so there can be more than one Test::Builder object and this is how
-you get it.  You might use this instead of C<new()> if you're testing
-a Test::Builder based module, but otherwise you probably want C<new>.
-
-B<NOTE>: the implementation is not complete.  C<level>, for example, is
-still shared amongst B<all> Test::Builder objects, even ones created using
-this method.  Also, the method name may change in the future.
-
-=cut
-
-sub create {
-    my $class = shift;
-
-    my $self = bless {}, $class;
-    $self->reset;
-
-    return $self;
-}
-
-=item B<reset>
-
-  $Test->reset;
-
-Reinitializes the Test::Builder singleton to its original state.
-Mostly useful for tests run in persistent environments where the same
-test might be run multiple times in the same process.
-
-=cut
-
-our ($Level);
-
-sub reset {
-    my ($self) = @_;
-
-    # We leave this a global because it has to be localized and localizing
-    # hash keys is just asking for pain.  Also, it was documented.
-    $Level = 1;
-
-    $self->{Test_Died}    = 0;
-    $self->{Have_Plan}    = 0;
-    $self->{No_Plan}      = 0;
-    $self->{Original_Pid} = $$;
-
-    share($self->{Curr_Test});
-    $self->{Curr_Test}    = 0;
-    $self->{Test_Results} = &share([]);
-
-    $self->{Exported_To}    = undef;
-    $self->{Expected_Tests} = 0;
-
-    $self->{Skip_All}   = 0;
-
-    $self->{Use_Nums}   = 1;
-
-    $self->{No_Header}  = 0;
-    $self->{No_Ending}  = 0;
-
-    $self->_dup_stdhandles unless $^C;
-
-    return undef;
-}
-
-=back
-
-=head2 Setting up tests
-
-These methods are for setting up tests and declaring how many there
-are.  You usually only want to call one of these methods.
-
-=over 4
-
-=item B<exported_to>
-
-  my $pack = $Test->exported_to;
-  $Test->exported_to($pack);
-
-Tells Test::Builder what package you exported your functions to.
-This is important for getting TODO tests right.
-
-=cut
-
-sub exported_to {
-    my($self, $pack) = @_;
-
-    if( defined $pack ) {
-        $self->{Exported_To} = $pack;
-    }
-    return $self->{Exported_To};
-}
-
-=item B<plan>
-
-  $Test->plan('no_plan');
-  $Test->plan( skip_all => $reason );
-  $Test->plan( tests => $num_tests );
-
-A convenient way to set up your tests.  Call this and Test::Builder
-will print the appropriate headers and take the appropriate actions.
-
-If you call plan(), don't call any of the other methods below.
-
-=cut
-
-sub plan {
-    my($self, $cmd, $arg) = @_;
-
-    return unless $cmd;
-
-    if( $self->{Have_Plan} ) {
-        die sprintf "You tried to plan twice!  Second plan at %s line %d\n",
-          ($self->caller)[1,2];
-    }
-
-    if( $cmd eq 'no_plan' ) {
-        $self->no_plan;
-    }
-    elsif( $cmd eq 'skip_all' ) {
-        return $self->skip_all($arg);
-    }
-    elsif( $cmd eq 'tests' ) {
-        if( $arg ) {
-            return $self->expected_tests($arg);
-        }
-        elsif( !defined $arg ) {
-            die "Got an undefined number of tests.  Looks like you tried to ".
-                "say how many tests you plan to run but made a mistake.\n";
-        }
-        elsif( !$arg ) {
-            die "You said to run 0 tests!  You've got to run something.\n";
-        }
-    }
-    else {
-        require Carp;
-        my @args = grep { defined } ($cmd, $arg);
-        Carp::croak("plan() doesn't understand @args");
-    }
-
-    return 1;
-}
-
-=item B<expected_tests>
-
-    my $max = $Test->expected_tests;
-    $Test->expected_tests($max);
-
-Gets/sets the # of tests we expect this test to run and prints out
-the appropriate headers.
-
-=cut
-
-sub expected_tests {
-    my $self = shift;
-    my($max) = @_;
-
-    if( @_ ) {
-        die "Number of tests must be a postive integer.  You gave it '$max'.\n"
-          unless $max =~ /^\+?\d+$/ and $max > 0;
-
-        $self->{Expected_Tests} = $max;
-        $self->{Have_Plan}      = 1;
-
-        $self->_print("1..$max\n") unless $self->no_header;
-    }
-    return $self->{Expected_Tests};
-}
-
-
-=item B<no_plan>
-
-  $Test->no_plan;
-
-Declares that this test will run an indeterminate # of tests.
-
-=cut
-
-sub no_plan {
-    my $self = shift;
-
-    $self->{No_Plan}   = 1;
-    $self->{Have_Plan} = 1;
-}
-
-=item B<has_plan>
-
-  $plan = $Test->has_plan
-
-Find out whether a plan has been defined. $plan is either C<undef> (no plan has been set), C<no_plan> (indeterminate # of tests) or an integer (the number of expected tests).
-
-=cut
-
-sub has_plan {
-    my $self = shift;
-
-    return($self->{Expected_Tests}) if $self->{Expected_Tests};
-    return('no_plan') if $self->{No_Plan};
-    return(undef);
-};
-
-
-=item B<skip_all>
-
-  $Test->skip_all;
-  $Test->skip_all($reason);
-
-Skips all the tests, using the given $reason.  Exits immediately with 0.
-
-=cut
-
-sub skip_all {
-    my($self, $reason) = @_;
-
-    my $out = "1..0";
-    $out .= " # Skip $reason" if $reason;
-    $out .= "\n";
-
-    $self->{Skip_All} = 1;
-
-    $self->_print($out) unless $self->no_header;
-    exit(0);
-}
-
-=back
-
-=head2 Running tests
-
-These actually run the tests, analogous to the functions in
-Test::More.
-
-$name is always optional.
-
-=over 4
-
-=item B<ok>
-
-  $Test->ok($test, $name);
-
-Your basic test.  Pass if $test is true, fail if $test is false.  Just
-like Test::Simple's ok().
-
-=cut
-
-sub ok {
-    my($self, $test, $name) = @_;
-
-    # $test might contain an object which we don't want to accidentally
-    # store, so we turn it into a boolean.
-    $test = $test ? 1 : 0;
-
-    unless( $self->{Have_Plan} ) {
-        require Carp;
-        Carp::croak("You tried to run a test without a plan!  Gotta have a plan.");
-    }
-
-    lock $self->{Curr_Test};
-    $self->{Curr_Test}++;
-
-    # In case $name is a string overloaded object, force it to stringify.
-    $self->_unoverload(\$name);
-
-    $self->diag(<<ERR) if defined $name and $name =~ /^[\d\s]+$/;
-    You named your test '$name'.  You shouldn't use numbers for your test names.
-    Very confusing.
-ERR
-
-    my($pack, $file, $line) = $self->caller;
-
-    my $todo = $self->todo($pack);
-    $self->_unoverload(\$todo);
-
-    my $out;
-    my $result = &share({});
-
-    unless( $test ) {
-        $out .= "not ";
-        @$result{ 'ok', 'actual_ok' } = ( ( $todo ? 1 : 0 ), 0 );
-    }
-    else {
-        @$result{ 'ok', 'actual_ok' } = ( 1, $test );
-    }
-
-    $out .= "ok";
-    $out .= " $self->{Curr_Test}" if $self->use_numbers;
-
-    if( defined $name ) {
-        $name =~ s|#|\\#|g;     # # in a name can confuse Test::Harness.
-        $out   .= " - $name";
-        $result->{name} = $name;
-    }
-    else {
-        $result->{name} = '';
-    }
-
-    if( $todo ) {
-        $out   .= " # TODO $todo";
-        $result->{reason} = $todo;
-        $result->{type}   = 'todo';
-    }
-    else {
-        $result->{reason} = '';
-        $result->{type}   = '';
-    }
-
-    $self->{Test_Results}[$self->{Curr_Test}-1] = $result;
-    $out .= "\n";
-
-    $self->_print($out);
-
-    unless( $test ) {
-        my $msg = $todo ? "Failed (TODO)" : "Failed";
-        $self->_print_diag("\n") if $ENV{HARNESS_ACTIVE};
-        $self->diag("    $msg test ($file at line $line)\n");
-    } 
-
-    return $test ? 1 : 0;
-}
-
-
-sub _unoverload {
-    my $self  = shift;
-
-    local($@,$!);
-
-    eval { require overload } || return;
-
-    foreach my $thing (@_) {
-        eval { 
-            if( defined $$thing ) {
-                if( my $string_meth = overload::Method($$thing, '""') ) {
-                    $$thing = $$thing->$string_meth();
-                }
-            }
-        };
-    }
-}
-
-
-=item B<is_eq>
-
-  $Test->is_eq($got, $expected, $name);
-
-Like Test::More's is().  Checks if $got eq $expected.  This is the
-string version.
-
-=item B<is_num>
-
-  $Test->is_num($got, $expected, $name);
-
-Like Test::More's is().  Checks if $got == $expected.  This is the
-numeric version.
-
-=cut
-
-sub is_eq {
-    my($self, $got, $expect, $name) = @_;
-    local $Level = $Level + 1;
-
-    if( !defined $got || !defined $expect ) {
-        # undef only matches undef and nothing else
-        my $test = !defined $got && !defined $expect;
-
-        $self->ok($test, $name);
-        $self->_is_diag($got, 'eq', $expect) unless $test;
-        return $test;
-    }
-
-    return $self->cmp_ok($got, 'eq', $expect, $name);
-}
-
-sub is_num {
-    my($self, $got, $expect, $name) = @_;
-    local $Level = $Level + 1;
-
-    if( !defined $got || !defined $expect ) {
-        # undef only matches undef and nothing else
-        my $test = !defined $got && !defined $expect;
-
-        $self->ok($test, $name);
-        $self->_is_diag($got, '==', $expect) unless $test;
-        return $test;
-    }
-
-    return $self->cmp_ok($got, '==', $expect, $name);
-}
-
-sub _is_diag {
-    my($self, $got, $type, $expect) = @_;
-
-    foreach my $val (\$got, \$expect) {
-        if( defined $$val ) {
-            if( $type eq 'eq' ) {
-                # quote and force string context
-                $$val = "'$$val'"
-            }
-            else {
-                # force numeric context
-                $$val = $$val+0;
-            }
-        }
-        else {
-            $$val = 'undef';
-        }
-    }
-
-    return $self->diag(sprintf <<DIAGNOSTIC, $got, $expect);
-         got: %s
-    expected: %s
-DIAGNOSTIC
-
-}    
-
-=item B<isnt_eq>
-
-  $Test->isnt_eq($got, $dont_expect, $name);
-
-Like Test::More's isnt().  Checks if $got ne $dont_expect.  This is
-the string version.
-
-=item B<isnt_num>
-
-  $Test->is_num($got, $dont_expect, $name);
-
-Like Test::More's isnt().  Checks if $got ne $dont_expect.  This is
-the numeric version.
-
-=cut
-
-sub isnt_eq {
-    my($self, $got, $dont_expect, $name) = @_;
-    local $Level = $Level + 1;
-
-    if( !defined $got || !defined $dont_expect ) {
-        # undef only matches undef and nothing else
-        my $test = defined $got || defined $dont_expect;
-
-        $self->ok($test, $name);
-        $self->_cmp_diag($got, 'ne', $dont_expect) unless $test;
-        return $test;
-    }
-
-    return $self->cmp_ok($got, 'ne', $dont_expect, $name);
-}
-
-sub isnt_num {
-    my($self, $got, $dont_expect, $name) = @_;
-    local $Level = $Level + 1;
-
-    if( !defined $got || !defined $dont_expect ) {
-        # undef only matches undef and nothing else
-        my $test = defined $got || defined $dont_expect;
-
-        $self->ok($test, $name);
-        $self->_cmp_diag($got, '!=', $dont_expect) unless $test;
-        return $test;
-    }
-
-    return $self->cmp_ok($got, '!=', $dont_expect, $name);
-}
-
-
-=item B<like>
-
-  $Test->like($this, qr/$regex/, $name);
-  $Test->like($this, '/$regex/', $name);
-
-Like Test::More's like().  Checks if $this matches the given $regex.
-
-You'll want to avoid qr// if you want your tests to work before 5.005.
-
-=item B<unlike>
-
-  $Test->unlike($this, qr/$regex/, $name);
-  $Test->unlike($this, '/$regex/', $name);
-
-Like Test::More's unlike().  Checks if $this B<does not match> the
-given $regex.
-
-=cut
-
-sub like {
-    my($self, $this, $regex, $name) = @_;
-
-    local $Level = $Level + 1;
-    $self->_regex_ok($this, $regex, '=~', $name);
-}
-
-sub unlike {
-    my($self, $this, $regex, $name) = @_;
-
-    local $Level = $Level + 1;
-    $self->_regex_ok($this, $regex, '!~', $name);
-}
-
-=item B<maybe_regex>
-
-  $Test->maybe_regex(qr/$regex/);
-  $Test->maybe_regex('/$regex/');
-
-Convenience method for building testing functions that take regular
-expressions as arguments, but need to work before perl 5.005.
-
-Takes a quoted regular expression produced by qr//, or a string
-representing a regular expression.
-
-Returns a Perl value which may be used instead of the corresponding
-regular expression, or undef if it's argument is not recognised.
-
-For example, a version of like(), sans the useful diagnostic messages,
-could be written as:
-
-  sub laconic_like {
-      my ($self, $this, $regex, $name) = @_;
-      my $usable_regex = $self->maybe_regex($regex);
-      die "expecting regex, found '$regex'\n"
-          unless $usable_regex;
-      $self->ok($this =~ m/$usable_regex/, $name);
-  }
-
-=cut
-
-
-sub maybe_regex {
-    my ($self, $regex) = @_;
-    my $usable_regex = undef;
-
-    return $usable_regex unless defined $regex;
-
-    my($re, $opts);
-
-    # Check for qr/foo/
-    if( ref $regex eq 'Regexp' ) {
-        $usable_regex = $regex;
-    }
-    # Check for '/foo/' or 'm,foo,'
-    elsif( ($re, $opts)        = $regex =~ m{^ /(.*)/ (\w*) $ }sx           or
-           (undef, $re, $opts) = $regex =~ m,^ m([^\w\s]) (.+) \1 (\w*) $,sx
-         )
-    {
-        $usable_regex = length $opts ? "(?$opts)$re" : $re;
-    }
-
-    return $usable_regex;
-};
-
-sub _regex_ok {
-    my($self, $this, $regex, $cmp, $name) = @_;
-
-    local $Level = $Level + 1;
-
-    my $ok = 0;
-    my $usable_regex = $self->maybe_regex($regex);
-    unless (defined $usable_regex) {
-        $ok = $self->ok( 0, $name );
-        $self->diag("    '$regex' doesn't look much like a regex to me.");
-        return $ok;
-    }
-
-    {
-        local $^W = 0;
-        my $test = $this =~ /$usable_regex/ ? 1 : 0;
-        $test = !$test if $cmp eq '!~';
-        $ok = $self->ok( $test, $name );
-    }
-
-    unless( $ok ) {
-        $this = defined $this ? "'$this'" : 'undef';
-        my $match = $cmp eq '=~' ? "doesn't match" : "matches";
-        $self->diag(sprintf <<DIAGNOSTIC, $this, $match, $regex);
-                  %s
-    %13s '%s'
-DIAGNOSTIC
-
-    }
-
-    return $ok;
-}
-
-=item B<cmp_ok>
-
-  $Test->cmp_ok($this, $type, $that, $name);
-
-Works just like Test::More's cmp_ok().
-
-    $Test->cmp_ok($big_num, '!=', $other_big_num);
-
-=cut
-
-sub cmp_ok {
-    my($self, $got, $type, $expect, $name) = @_;
-
-    my $test;
-    {
-        local $^W = 0;
-        local($@,$!);   # don't interfere with $@
-                        # eval() sometimes resets $!
-        $test = eval "\$got $type \$expect";
-    }
-    local $Level = $Level + 1;
-    my $ok = $self->ok($test, $name);
-
-    unless( $ok ) {
-        if( $type =~ /^(eq|==)$/ ) {
-            $self->_is_diag($got, $type, $expect);
-        }
-        else {
-            $self->_cmp_diag($got, $type, $expect);
-        }
-    }
-    return $ok;
-}
-
-sub _cmp_diag {
-    my($self, $got, $type, $expect) = @_;
-    
-    $got    = defined $got    ? "'$got'"    : 'undef';
-    $expect = defined $expect ? "'$expect'" : 'undef';
-    return $self->diag(sprintf <<DIAGNOSTIC, $got, $type, $expect);
-    %s
-        %s
-    %s
-DIAGNOSTIC
-}
-
-=item B<BAILOUT>
-
-    $Test->BAILOUT($reason);
-
-Indicates to the Test::Harness that things are going so badly all
-testing should terminate.  This includes running any additional test
-scripts.
-
-It will exit with 255.
-
-=cut
-
-sub BAILOUT {
-    my($self, $reason) = @_;
-
-    $self->_print("Bail out!  $reason");
-    exit 255;
-}
-
-=item B<skip>
-
-    $Test->skip;
-    $Test->skip($why);
-
-Skips the current test, reporting $why.
-
-=cut
-
-sub skip {
-    my($self, $why) = @_;
-    $why ||= '';
-    $self->_unoverload(\$why);
-
-    unless( $self->{Have_Plan} ) {
-        require Carp;
-        Carp::croak("You tried to run tests without a plan!  Gotta have a plan.");
-    }
-
-    lock($self->{Curr_Test});
-    $self->{Curr_Test}++;
-
-    $self->{Test_Results}[$self->{Curr_Test}-1] = &share({
-        'ok'      => 1,
-        actual_ok => 1,
-        name      => '',
-        type      => 'skip',
-        reason    => $why,
-    });
-
-    my $out = "ok";
-    $out   .= " $self->{Curr_Test}" if $self->use_numbers;
-    $out   .= " # skip";
-    $out   .= " $why"       if length $why;
-    $out   .= "\n";
-
-    $self->_print($out);
-
-    return 1;
-}
-
-
-=item B<todo_skip>
-
-  $Test->todo_skip;
-  $Test->todo_skip($why);
-
-Like skip(), only it will declare the test as failing and TODO.  Similar
-to
-
-    print "not ok $tnum # TODO $why\n";
-
-=cut
-
-sub todo_skip {
-    my($self, $why) = @_;
-    $why ||= '';
-
-    unless( $self->{Have_Plan} ) {
-        require Carp;
-        Carp::croak("You tried to run tests without a plan!  Gotta have a plan.");
-    }
-
-    lock($self->{Curr_Test});
-    $self->{Curr_Test}++;
-
-    $self->{Test_Results}[$self->{Curr_Test}-1] = &share({
-        'ok'      => 1,
-        actual_ok => 0,
-        name      => '',
-        type      => 'todo_skip',
-        reason    => $why,
-    });
-
-    my $out = "not ok";
-    $out   .= " $self->{Curr_Test}" if $self->use_numbers;
-    $out   .= " # TODO & SKIP $why\n";
-
-    $self->_print($out);
-
-    return 1;
-}
-
-
-=begin _unimplemented
-
-=item B<skip_rest>
-
-  $Test->skip_rest;
-  $Test->skip_rest($reason);
-
-Like skip(), only it skips all the rest of the tests you plan to run
-and terminates the test.
-
-If you're running under no_plan, it skips once and terminates the
-test.
-
-=end _unimplemented
-
-=back
-
-
-=head2 Test style
-
-=over 4
-
-=item B<level>
-
-    $Test->level($how_high);
-
-How far up the call stack should $Test look when reporting where the
-test failed.
-
-Defaults to 1.
-
-Setting $Test::Builder::Level overrides.  This is typically useful
-localized:
-
-    {
-        local $Test::Builder::Level = 2;
-        $Test->ok($test);
-    }
-
-=cut
-
-sub level {
-    my($self, $level) = @_;
-
-    if( defined $level ) {
-        $Level = $level;
-    }
-    return $Level;
-}
-
-
-=item B<use_numbers>
-
-    $Test->use_numbers($on_or_off);
-
-Whether or not the test should output numbers.  That is, this if true:
-
-  ok 1
-  ok 2
-  ok 3
-
-or this if false
-
-  ok
-  ok
-  ok
-
-Most useful when you can't depend on the test output order, such as
-when threads or forking is involved.
-
-Test::Harness will accept either, but avoid mixing the two styles.
-
-Defaults to on.
-
-=cut
-
-sub use_numbers {
-    my($self, $use_nums) = @_;
-
-    if( defined $use_nums ) {
-        $self->{Use_Nums} = $use_nums;
-    }
-    return $self->{Use_Nums};
-}
-
-=item B<no_header>
-
-    $Test->no_header($no_header);
-
-If set to true, no "1..N" header will be printed.
-
-=item B<no_ending>
-
-    $Test->no_ending($no_ending);
-
-Normally, Test::Builder does some extra diagnostics when the test
-ends.  It also changes the exit code as described below.
-
-If this is true, none of that will be done.
-
-=cut
-
-sub no_header {
-    my($self, $no_header) = @_;
-
-    if( defined $no_header ) {
-        $self->{No_Header} = $no_header;
-    }
-    return $self->{No_Header};
-}
-
-sub no_ending {
-    my($self, $no_ending) = @_;
-
-    if( defined $no_ending ) {
-        $self->{No_Ending} = $no_ending;
-    }
-    return $self->{No_Ending};
-}
-
-
-=back
-
-=head2 Output
-
-Controlling where the test output goes.
-
-It's ok for your test to change where STDOUT and STDERR point to,
-Test::Builder's default output settings will not be affected.
-
-=over 4
-
-=item B<diag>
-
-    $Test->diag(@msgs);
-
-Prints out the given @msgs.  Like C<print>, arguments are simply
-appended together.
-
-Normally, it uses the failure_output() handle, but if this is for a
-TODO test, the todo_output() handle is used.
-
-Output will be indented and marked with a # so as not to interfere
-with test output.  A newline will be put on the end if there isn't one
-already.
-
-We encourage using this rather than calling print directly.
-
-Returns false.  Why?  Because diag() is often used in conjunction with
-a failing test (C<ok() || diag()>) it "passes through" the failure.
-
-    return ok(...) || diag(...);
-
-=for blame transfer
-Mark Fowler <mark@twoshortplanks.com>
-
-=cut
-
-sub diag {
-    my($self, @msgs) = @_;
-    return unless @msgs;
-
-    # Prevent printing headers when compiling (i.e. -c)
-    return if $^C;
-
-    # Smash args together like print does.
-    # Convert undef to 'undef' so its readable.
-    my $msg = join '', map { defined($_) ? $_ : 'undef' } @msgs;
-
-    # Escape each line with a #.
-    $msg =~ s/^/# /gm;
-
-    # Stick a newline on the end if it needs it.
-    $msg .= "\n" unless $msg =~ /\n\Z/;
-
-    local $Level = $Level + 1;
-    $self->_print_diag($msg);
-
-    return 0;
-}
-
-=begin _private
-
-=item B<_print>
-
-    $Test->_print(@msgs);
-
-Prints to the output() filehandle.
-
-=end _private
-
-=cut
-
-sub _print {
-    my($self, @msgs) = @_;
-
-    # Prevent printing headers when only compiling.  Mostly for when
-    # tests are deparsed with B::Deparse
-    return if $^C;
-
-    my $msg = join '', @msgs;
-
-    local($\, $", $,) = (undef, ' ', '');
-    my $fh = $self->output;
-
-    # Escape each line after the first with a # so we don't
-    # confuse Test::Harness.
-    $msg =~ s/\n(.)/\n# $1/sg;
-
-    # Stick a newline on the end if it needs it.
-    $msg .= "\n" unless $msg =~ /\n\Z/;
-
-    print $fh $msg;
-}
-
-
-=item B<_print_diag>
-
-    $Test->_print_diag(@msg);
-
-Like _print, but prints to the current diagnostic filehandle.
-
-=cut
-
-sub _print_diag {
-    my $self = shift;
-
-    local($\, $", $,) = (undef, ' ', '');
-    my $fh = $self->todo ? $self->todo_output : $self->failure_output;
-    print $fh @_;
-}    
-
-=item B<output>
-
-    $Test->output($fh);
-    $Test->output($file);
-
-Where normal "ok/not ok" test output should go.
-
-Defaults to STDOUT.
-
-=item B<failure_output>
-
-    $Test->failure_output($fh);
-    $Test->failure_output($file);
-
-Where diagnostic output on test failures and diag() should go.
-
-Defaults to STDERR.
-
-=item B<todo_output>
-
-    $Test->todo_output($fh);
-    $Test->todo_output($file);
-
-Where diagnostics about todo test failures and diag() should go.
-
-Defaults to STDOUT.
-
-=cut
-
-sub output {
-    my($self, $fh) = @_;
-
-    if( defined $fh ) {
-        $self->{Out_FH} = _new_fh($fh);
-    }
-    return $self->{Out_FH};
-}
-
-sub failure_output {
-    my($self, $fh) = @_;
-
-    if( defined $fh ) {
-        $self->{Fail_FH} = _new_fh($fh);
-    }
-    return $self->{Fail_FH};
-}
-
-sub todo_output {
-    my($self, $fh) = @_;
-
-    if( defined $fh ) {
-        $self->{Todo_FH} = _new_fh($fh);
-    }
-    return $self->{Todo_FH};
-}
-
-
-sub _new_fh {
-    my($file_or_fh) = shift;
-
-    my $fh;
-    if( _is_fh($file_or_fh) ) {
-        $fh = $file_or_fh;
-    }
-    else {
-        $fh = do { local *FH };
-        open $fh, ">$file_or_fh" or 
-            die "Can't open test output log $file_or_fh: $!";
-	_autoflush($fh);
-    }
-
-    return $fh;
-}
-
-
-sub _is_fh {
-    my $maybe_fh = shift;
-
-    return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob
-
-    return UNIVERSAL::isa($maybe_fh,               'GLOB')       ||
-           UNIVERSAL::isa($maybe_fh,               'IO::Handle') ||
-
-           # 5.5.4's tied() and can() doesn't like getting undef
-           UNIVERSAL::can((tied($maybe_fh) || ''), 'TIEHANDLE');
-}
-
-
-sub _autoflush {
-    my($fh) = shift;
-    my $old_fh = select $fh;
-    $| = 1;
-    select $old_fh;
-}
-
-
-sub _dup_stdhandles {
-    my $self = shift;
-
-    $self->_open_testhandles;
-
-    # Set everything to unbuffered else plain prints to STDOUT will
-    # come out in the wrong order from our own prints.
-    _autoflush(\*TESTOUT);
-    _autoflush(\*STDOUT);
-    _autoflush(\*TESTERR);
-    _autoflush(\*STDERR);
-
-    $self->output(\*TESTOUT);
-    $self->failure_output(\*TESTERR);
-    $self->todo_output(\*TESTOUT);
-}
-
-
-my $Opened_Testhandles = 0;
-sub _open_testhandles {
-    return if $Opened_Testhandles;
-    # We dup STDOUT and STDERR so people can change them in their
-    # test suites while still getting normal test output.
-    open(TESTOUT, ">&STDOUT") or die "Can't dup STDOUT:  $!";
-    open(TESTERR, ">&STDERR") or die "Can't dup STDERR:  $!";
-    $Opened_Testhandles = 1;
-}
-
-
-=back
-
-
-=head2 Test Status and Info
-
-=over 4
-
-=item B<current_test>
-
-    my $curr_test = $Test->current_test;
-    $Test->current_test($num);
-
-Gets/sets the current test number we're on.  You usually shouldn't
-have to set this.
-
-If set forward, the details of the missing tests are filled in as 'unknown'.
-if set backward, the details of the intervening tests are deleted.  You
-can erase history if you really want to.
-
-=cut
-
-sub current_test {
-    my($self, $num) = @_;
-
-    lock($self->{Curr_Test});
-    if( defined $num ) {
-        unless( $self->{Have_Plan} ) {
-            require Carp;
-            Carp::croak("Can't change the current test number without a plan!");
-        }
-
-        $self->{Curr_Test} = $num;
-
-        # If the test counter is being pushed forward fill in the details.
-        my $test_results = $self->{Test_Results};
-        if( $num > @$test_results ) {
-            my $start = @$test_results ? @$test_results : 0;
-            for ($start..$num-1) {
-                $test_results->[$_] = &share({
-                    'ok'      => 1, 
-                    actual_ok => undef, 
-                    reason    => 'incrementing test number', 
-                    type      => 'unknown', 
-                    name      => undef 
-                });
-            }
-        }
-        # If backward, wipe history.  Its their funeral.
-        elsif( $num < @$test_results ) {
-            $#{$test_results} = $num - 1;
-        }
-    }
-    return $self->{Curr_Test};
-}
-
-
-=item B<summary>
-
-    my @tests = $Test->summary;
-
-A simple summary of the tests so far.  True for pass, false for fail.
-This is a logical pass/fail, so todos are passes.
-
-Of course, test #1 is $tests[0], etc...
-
-=cut
-
-sub summary {
-    my($self) = shift;
-
-    return map { $_->{'ok'} } @{ $self->{Test_Results} };
-}
-
-=item B<details>
-
-    my @tests = $Test->details;
-
-Like summary(), but with a lot more detail.
-
-    $tests[$test_num - 1] = 
-            { 'ok'       => is the test considered a pass?
-              actual_ok  => did it literally say 'ok'?
-              name       => name of the test (if any)
-              type       => type of test (if any, see below).
-              reason     => reason for the above (if any)
-            };
-
-'ok' is true if Test::Harness will consider the test to be a pass.
-
-'actual_ok' is a reflection of whether or not the test literally
-printed 'ok' or 'not ok'.  This is for examining the result of 'todo'
-tests.  
-
-'name' is the name of the test.
-
-'type' indicates if it was a special test.  Normal tests have a type
-of ''.  Type can be one of the following:
-
-    skip        see skip()
-    todo        see todo()
-    todo_skip   see todo_skip()
-    unknown     see below
-
-Sometimes the Test::Builder test counter is incremented without it
-printing any test output, for example, when current_test() is changed.
-In these cases, Test::Builder doesn't know the result of the test, so
-it's type is 'unkown'.  These details for these tests are filled in.
-They are considered ok, but the name and actual_ok is left undef.
-
-For example "not ok 23 - hole count # TODO insufficient donuts" would
-result in this structure:
-
-    $tests[22] =    # 23 - 1, since arrays start from 0.
-      { ok        => 1,   # logically, the test passed since it's todo
-        actual_ok => 0,   # in absolute terms, it failed
-        name      => 'hole count',
-        type      => 'todo',
-        reason    => 'insufficient donuts'
-      };
-
-=cut
-
-sub details {
-    my $self = shift;
-    return @{ $self->{Test_Results} };
-}
-
-=item B<todo>
-
-    my $todo_reason = $Test->todo;
-    my $todo_reason = $Test->todo($pack);
-
-todo() looks for a $TODO variable in your tests.  If set, all tests
-will be considered 'todo' (see Test::More and Test::Harness for
-details).  Returns the reason (ie. the value of $TODO) if running as
-todo tests, false otherwise.
-
-todo() is about finding the right package to look for $TODO in.  It
-uses the exported_to() package to find it.  If that's not set, it's
-pretty good at guessing the right package to look at based on $Level.
-
-Sometimes there is some confusion about where todo() should be looking
-for the $TODO variable.  If you want to be sure, tell it explicitly
-what $pack to use.
-
-=cut
-
-sub todo {
-    my($self, $pack) = @_;
-
-    $pack = $pack || $self->exported_to || $self->caller($Level);
-    return 0 unless $pack;
-
-    no strict 'refs';
-    return defined ${$pack.'::TODO'} ? ${$pack.'::TODO'}
-                                     : 0;
-}
-
-=item B<caller>
-
-    my $package = $Test->caller;
-    my($pack, $file, $line) = $Test->caller;
-    my($pack, $file, $line) = $Test->caller($height);
-
-Like the normal caller(), except it reports according to your level().
-
-=cut
-
-sub caller {
-    my($self, $height) = @_;
-    $height ||= 0;
-
-    my @caller = CORE::caller($self->level + $height + 1);
-    return wantarray ? @caller : $caller[0];
-}
-
-=back
-
-=cut
-
-=begin _private
-
-=over 4
-
-=item B<_sanity_check>
-
-  $self->_sanity_check();
-
-Runs a bunch of end of test sanity checks to make sure reality came
-through ok.  If anything is wrong it will die with a fairly friendly
-error message.
-
-=cut
-
-#'#
-sub _sanity_check {
-    my $self = shift;
-
-    _whoa($self->{Curr_Test} < 0,  'Says here you ran a negative number of tests!');
-    _whoa(!$self->{Have_Plan} and $self->{Curr_Test}, 
-          'Somehow your tests ran without a plan!');
-    _whoa($self->{Curr_Test} != @{ $self->{Test_Results} },
-          'Somehow you got a different number of results than tests ran!');
-}
-
-=item B<_whoa>
-
-  _whoa($check, $description);
-
-A sanity check, similar to assert().  If the $check is true, something
-has gone horribly wrong.  It will die with the given $description and
-a note to contact the author.
-
-=cut
-
-sub _whoa {
-    my($check, $desc) = @_;
-    if( $check ) {
-        die <<WHOA;
-WHOA!  $desc
-This should never happen!  Please contact the author immediately!
-WHOA
-    }
-}
-
-=item B<_my_exit>
-
-  _my_exit($exit_num);
-
-Perl seems to have some trouble with exiting inside an END block.  5.005_03
-and 5.6.1 both seem to do odd things.  Instead, this function edits $?
-directly.  It should ONLY be called from inside an END block.  It
-doesn't actually exit, that's your job.
-
-=cut
-
-sub _my_exit {
-    $? = $_[0];
-
-    return 1;
-}
-
-
-=back
-
-=end _private
-
-=cut
-
-$SIG{__DIE__} = sub {
-    # We don't want to muck with death in an eval, but $^S isn't
-    # totally reliable.  5.005_03 and 5.6.1 both do the wrong thing
-    # with it.  Instead, we use caller.  This also means it runs under
-    # 5.004!
-    my $in_eval = 0;
-    for( my $stack = 1;  my $sub = (CORE::caller($stack))[3];  $stack++ ) {
-        $in_eval = 1 if $sub =~ /^\(eval\)/;
-    }
-    $Test->{Test_Died} = 1 unless $in_eval;
-};
-
-sub _ending {
-    my $self = shift;
-
-    $self->_sanity_check();
-
-    # Don't bother with an ending if this is a forked copy.  Only the parent
-    # should do the ending.
-    # Exit if plan() was never called.  This is so "require Test::Simple" 
-    # doesn't puke.
-    if( ($self->{Original_Pid} != $$) or
-	(!$self->{Have_Plan} && !$self->{Test_Died}) )
-    {
-	_my_exit($?);
-	return;
-    }
-
-    # Figure out if we passed or failed and print helpful messages.
-    my $test_results = $self->{Test_Results};
-    if( @$test_results ) {
-        # The plan?  We have no plan.
-        if( $self->{No_Plan} ) {
-            $self->_print("1..$self->{Curr_Test}\n") unless $self->no_header;
-            $self->{Expected_Tests} = $self->{Curr_Test};
-        }
-
-        # Auto-extended arrays and elements which aren't explicitly
-        # filled in with a shared reference will puke under 5.8.0
-        # ithreads.  So we have to fill them in by hand. :(
-        my $empty_result = &share({});
-        for my $idx ( 0..$self->{Expected_Tests}-1 ) {
-            $test_results->[$idx] = $empty_result
-              unless defined $test_results->[$idx];
-        }
-
-        my $num_failed = grep !$_->{'ok'}, 
-                              @{$test_results}[0..$self->{Expected_Tests}-1];
-        $num_failed += abs($self->{Expected_Tests} - @$test_results);
-
-        if( $self->{Curr_Test} < $self->{Expected_Tests} ) {
-            my $s = $self->{Expected_Tests} == 1 ? '' : 's';
-            $self->diag(<<"FAIL");
-Looks like you planned $self->{Expected_Tests} test$s but only ran $self->{Curr_Test}.
-FAIL
-        }
-        elsif( $self->{Curr_Test} > $self->{Expected_Tests} ) {
-            my $num_extra = $self->{Curr_Test} - $self->{Expected_Tests};
-            my $s = $self->{Expected_Tests} == 1 ? '' : 's';
-            $self->diag(<<"FAIL");
-Looks like you planned $self->{Expected_Tests} test$s but ran $num_extra extra.
-FAIL
-        }
-        elsif ( $num_failed ) {
-            my $s = $num_failed == 1 ? '' : 's';
-            $self->diag(<<"FAIL");
-Looks like you failed $num_failed test$s of $self->{Expected_Tests}.
-FAIL
-        }
-
-        if( $self->{Test_Died} ) {
-            $self->diag(<<"FAIL");
-Looks like your test died just after $self->{Curr_Test}.
-FAIL
-
-            _my_exit( 255 ) && return;
-        }
-
-        _my_exit( $num_failed <= 254 ? $num_failed : 254  ) && return;
-    }
-    elsif ( $self->{Skip_All} ) {
-        _my_exit( 0 ) && return;
-    }
-    elsif ( $self->{Test_Died} ) {
-        $self->diag(<<'FAIL');
-Looks like your test died before it could output anything.
-FAIL
-        _my_exit( 255 ) && return;
-    }
-    else {
-        $self->diag("No tests run!\n");
-        _my_exit( 255 ) && return;
-    }
-}
-
-END {
-    $Test->_ending if defined $Test and !$Test->no_ending;
-}
-
-=head1 EXIT CODES
-
-If all your tests passed, Test::Builder will exit with zero (which is
-normal).  If anything failed it will exit with how many failed.  If
-you run less (or more) tests than you planned, the missing (or extras)
-will be considered failures.  If no tests were ever run Test::Builder
-will throw a warning and exit with 255.  If the test died, even after
-having successfully completed all its tests, it will still be
-considered a failure and will exit with 255.
-
-So the exit codes are...
-
-    0                   all tests successful
-    255                 test died
-    any other number    how many failed (including missing or extras)
-
-If you fail more than 254 tests, it will be reported as 254.
-
-
-=head1 THREADS
-
-In perl 5.8.0 and later, Test::Builder is thread-safe.  The test
-number is shared amongst all threads.  This means if one thread sets
-the test number using current_test() they will all be effected.
-
-Test::Builder is only thread-aware if threads.pm is loaded I<before>
-Test::Builder.
-
-=head1 EXAMPLES
-
-CPAN can provide the best examples.  Test::Simple, Test::More,
-Test::Exception and Test::Differences all use Test::Builder.
-
-=head1 SEE ALSO
-
-Test::Simple, Test::More, Test::Harness
-
-=head1 AUTHORS
-
-Original code by chromatic, maintained by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>
-
-=head1 COPYRIGHT
-
-Copyright 2002, 2004 by chromatic E<lt>chromatic@wgz.orgE<gt> and
-                        Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or 
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
-
-1;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/More.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/More.pm
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/More.pm
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/More.pm	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1493 +0,0 @@
-package Test::More;
-
-use 5.004;
-
-use strict;
-use Test::Builder;
-
-
-# Can't use Carp because it might cause use_ok() to accidentally succeed
-# even though the module being used forgot to use Carp.  Yes, this
-# actually happened.
-sub _carp {
-    my($file, $line) = (caller(1))[1,2];
-    warn @_, " at $file line $line\n";
-}
-
-
-
-require Exporter;
-our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $TODO);
-$VERSION = '0.60';
-$VERSION = eval $VERSION;    # make the alpha version come out as a number
-
-@ISA    = qw(Exporter);
-@EXPORT = qw(ok use_ok require_ok
-             is isnt like unlike is_deeply
-             cmp_ok
-             skip todo todo_skip
-             pass fail
-             eq_array eq_hash eq_set
-             $TODO
-             plan
-             can_ok  isa_ok
-             diag
-            );
-
-my $Test = Test::Builder->new;
-my $Show_Diag = 1;
-
-
-# 5.004's Exporter doesn't have export_to_level.
-sub _export_to_level
-{
-      my $pkg = shift;
-      my $level = shift;
-      (undef) = shift;                  # redundant arg
-      my $callpkg = caller($level);
-      $pkg->export($callpkg, @_);
-}
-
-
-=head1 NAME
-
-Test::More - yet another framework for writing test scripts
-
-=head1 SYNOPSIS
-
-  use Test::More tests => $Num_Tests;
-  # or
-  use Test::More qw(no_plan);
-  # or
-  use Test::More skip_all => $reason;
-
-  BEGIN { use_ok( 'Some::Module' ); }
-  require_ok( 'Some::Module' );
-
-  # Various ways to say "ok"
-  ok($this eq $that, $test_name);
-
-  is  ($this, $that,    $test_name);
-  isnt($this, $that,    $test_name);
-
-  # Rather than print STDERR "# here's what went wrong\n"
-  diag("here's what went wrong");
-
-  like  ($this, qr/that/, $test_name);
-  unlike($this, qr/that/, $test_name);
-
-  cmp_ok($this, '==', $that, $test_name);
-
-  is_deeply($complex_structure1, $complex_structure2, $test_name);
-
-  SKIP: {
-      skip $why, $how_many unless $have_some_feature;
-
-      ok( foo(),       $test_name );
-      is( foo(42), 23, $test_name );
-  };
-
-  TODO: {
-      local $TODO = $why;
-
-      ok( foo(),       $test_name );
-      is( foo(42), 23, $test_name );
-  };
-
-  can_ok($module, @methods);
-  isa_ok($object, $class);
-
-  pass($test_name);
-  fail($test_name);
-
-  # UNIMPLEMENTED!!!
-  my @status = Test::More::status;
-
-  # UNIMPLEMENTED!!!
-  BAIL_OUT($why);
-
-
-=head1 DESCRIPTION
-
-B<STOP!> If you're just getting started writing tests, have a look at
-Test::Simple first.  This is a drop in replacement for Test::Simple
-which you can switch to once you get the hang of basic testing.
-
-The purpose of this module is to provide a wide range of testing
-utilities.  Various ways to say "ok" with better diagnostics,
-facilities to skip tests, test future features and compare complicated
-data structures.  While you can do almost anything with a simple
-C<ok()> function, it doesn't provide good diagnostic output.
-
-
-=head2 I love it when a plan comes together
-
-Before anything else, you need a testing plan.  This basically declares
-how many tests your script is going to run to protect against premature
-failure.
-
-The preferred way to do this is to declare a plan when you C<use Test::More>.
-
-  use Test::More tests => $Num_Tests;
-
-There are rare cases when you will not know beforehand how many tests
-your script is going to run.  In this case, you can declare that you
-have no plan.  (Try to avoid using this as it weakens your test.)
-
-  use Test::More qw(no_plan);
-
-B<NOTE>: using no_plan requires a Test::Harness upgrade else it will
-think everything has failed.  See L<BUGS>)
-
-In some cases, you'll want to completely skip an entire testing script.
-
-  use Test::More skip_all => $skip_reason;
-
-Your script will declare a skip with the reason why you skipped and
-exit immediately with a zero (success).  See L<Test::Harness> for
-details.
-
-If you want to control what functions Test::More will export, you
-have to use the 'import' option.  For example, to import everything
-but 'fail', you'd do:
-
-  use Test::More tests => 23, import => ['!fail'];
-
-Alternatively, you can use the plan() function.  Useful for when you
-have to calculate the number of tests.
-
-  use Test::More;
-  plan tests => keys %Stuff * 3;
-
-or for deciding between running the tests at all:
-
-  use Test::More;
-  if( $^O eq 'MacOS' ) {
-      plan skip_all => 'Test irrelevant on MacOS';
-  }
-  else {
-      plan tests => 42;
-  }
-
-=cut
-
-sub plan {
-    my(@plan) = @_;
-
-    my $idx = 0;
-    my @cleaned_plan;
-    while( $idx <= $#plan ) {
-        my $item = $plan[$idx];
-
-        if( $item eq 'no_diag' ) {
-            $Show_Diag = 0;
-        }
-        else {
-            push @cleaned_plan, $item;
-        }
-
-        $idx++;
-    }
-
-    $Test->plan(@cleaned_plan);
-}
-
-sub import {
-    my($class) = shift;
-
-    my $caller = caller;
-
-    $Test->exported_to($caller);
-
-    my $idx = 0;
-    my @plan;
-    my @imports;
-    while( $idx <= $#_ ) {
-        my $item = $_[$idx];
-
-        if( $item eq 'import' ) {
-            push @imports, @{$_[$idx+1]};
-            $idx++;
-        }
-        else {
-            push @plan, $item;
-        }
-
-        $idx++;
-    }
-
-    plan(@plan);
-
-    __PACKAGE__->_export_to_level(1, __PACKAGE__, @imports);
-}
-
-
-=head2 Test names
-
-By convention, each test is assigned a number in order.  This is
-largely done automatically for you.  However, it's often very useful to
-assign a name to each test.  Which would you rather see:
-
-  ok 4
-  not ok 5
-  ok 6
-
-or
-
-  ok 4 - basic multi-variable
-  not ok 5 - simple exponential
-  ok 6 - force == mass * acceleration
-
-The later gives you some idea of what failed.  It also makes it easier
-to find the test in your script, simply search for "simple
-exponential".
-
-All test functions take a name argument.  It's optional, but highly
-suggested that you use it.
-
-
-=head2 I'm ok, you're not ok.
-
-The basic purpose of this module is to print out either "ok #" or "not
-ok #" depending on if a given test succeeded or failed.  Everything
-else is just gravy.
-
-All of the following print "ok" or "not ok" depending on if the test
-succeeded or failed.  They all also return true or false,
-respectively.
-
-=over 4
-
-=item B<ok>
-
-  ok($this eq $that, $test_name);
-
-This simply evaluates any expression (C<$this eq $that> is just a
-simple example) and uses that to determine if the test succeeded or
-failed.  A true expression passes, a false one fails.  Very simple.
-
-For example:
-
-    ok( $exp{9} == 81,                   'simple exponential' );
-    ok( Film->can('db_Main'),            'set_db()' );
-    ok( $p->tests == 4,                  'saw tests' );
-    ok( !grep !defined $_, @items,       'items populated' );
-
-(Mnemonic:  "This is ok.")
-
-$test_name is a very short description of the test that will be printed
-out.  It makes it very easy to find a test in your script when it fails
-and gives others an idea of your intentions.  $test_name is optional,
-but we B<very> strongly encourage its use.
-
-Should an ok() fail, it will produce some diagnostics:
-
-    not ok 18 - sufficient mucus
-    #     Failed test 18 (foo.t at line 42)
-
-This is actually Test::Simple's ok() routine.
-
-=cut
-
-sub ok ($;$) {
-    my($test, $name) = @_;
-    $Test->ok($test, $name);
-}
-
-=item B<is>
-
-=item B<isnt>
-
-  is  ( $this, $that, $test_name );
-  isnt( $this, $that, $test_name );
-
-Similar to ok(), is() and isnt() compare their two arguments
-with C<eq> and C<ne> respectively and use the result of that to
-determine if the test succeeded or failed.  So these:
-
-    # Is the ultimate answer 42?
-    is( ultimate_answer(), 42,          "Meaning of Life" );
-
-    # $foo isn't empty
-    isnt( $foo, '',     "Got some foo" );
-
-are similar to these:
-
-    ok( ultimate_answer() eq 42,        "Meaning of Life" );
-    ok( $foo ne '',     "Got some foo" );
-
-(Mnemonic:  "This is that."  "This isn't that.")
-
-So why use these?  They produce better diagnostics on failure.  ok()
-cannot know what you are testing for (beyond the name), but is() and
-isnt() know what the test was and why it failed.  For example this
-test:
-
-    my $foo = 'waffle';  my $bar = 'yarblokos';
-    is( $foo, $bar,   'Is foo the same as bar?' );
-
-Will produce something like this:
-
-    not ok 17 - Is foo the same as bar?
-    #     Failed test (foo.t at line 139)
-    #          got: 'waffle'
-    #     expected: 'yarblokos'
-
-So you can figure out what went wrong without rerunning the test.
-
-You are encouraged to use is() and isnt() over ok() where possible,
-however do not be tempted to use them to find out if something is
-true or false!
-
-  # XXX BAD!
-  is( exists $brooklyn{tree}, 1, 'A tree grows in Brooklyn' );
-
-This does not check if C<exists $brooklyn{tree}> is true, it checks if
-it returns 1.  Very different.  Similar caveats exist for false and 0.
-In these cases, use ok().
-
-  ok( exists $brooklyn{tree},    'A tree grows in Brooklyn' );
-
-For those grammatical pedants out there, there's an C<isn't()>
-function which is an alias of isnt().
-
-=cut
-
-sub is ($$;$) {
-    $Test->is_eq(@_);
-}
-
-sub isnt ($$;$) {
-    $Test->isnt_eq(@_);
-}
-
-*isn't = \&isnt;
-
-
-=item B<like>
-
-  like( $this, qr/that/, $test_name );
-
-Similar to ok(), like() matches $this against the regex C<qr/that/>.
-
-So this:
-
-    like($this, qr/that/, 'this is like that');
-
-is similar to:
-
-    ok( $this =~ /that/, 'this is like that');
-
-(Mnemonic "This is like that".)
-
-The second argument is a regular expression.  It may be given as a
-regex reference (i.e. C<qr//>) or (for better compatibility with older
-perls) as a string that looks like a regex (alternative delimiters are
-currently not supported):
-
-    like( $this, '/that/', 'this is like that' );
-
-Regex options may be placed on the end (C<'/that/i'>).
-
-Its advantages over ok() are similar to that of is() and isnt().  Better
-diagnostics on failure.
-
-=cut
-
-sub like ($$;$) {
-    $Test->like(@_);
-}
-
-
-=item B<unlike>
-
-  unlike( $this, qr/that/, $test_name );
-
-Works exactly as like(), only it checks if $this B<does not> match the
-given pattern.
-
-=cut
-
-sub unlike ($$;$) {
-    $Test->unlike(@_);
-}
-
-
-=item B<cmp_ok>
-
-  cmp_ok( $this, $op, $that, $test_name );
-
-Halfway between ok() and is() lies cmp_ok().  This allows you to
-compare two arguments using any binary perl operator.
-
-    # ok( $this eq $that );
-    cmp_ok( $this, 'eq', $that, 'this eq that' );
-
-    # ok( $this == $that );
-    cmp_ok( $this, '==', $that, 'this == that' );
-
-    # ok( $this && $that );
-    cmp_ok( $this, '&&', $that, 'this && that' );
-    ...etc...
-
-Its advantage over ok() is when the test fails you'll know what $this
-and $that were:
-
-    not ok 1
-    #     Failed test (foo.t at line 12)
-    #     '23'
-    #         &&
-    #     undef
-
-It's also useful in those cases where you are comparing numbers and
-is()'s use of C<eq> will interfere:
-
-    cmp_ok( $big_hairy_number, '==', $another_big_hairy_number );
-
-=cut
-
-sub cmp_ok($$$;$) {
-    $Test->cmp_ok(@_);
-}
-
-
-=item B<can_ok>
-
-  can_ok($module, @methods);
-  can_ok($object, @methods);
-
-Checks to make sure the $module or $object can do these @methods
-(works with functions, too).
-
-    can_ok('Foo', qw(this that whatever));
-
-is almost exactly like saying:
-
-    ok( Foo->can('this') && 
-        Foo->can('that') && 
-        Foo->can('whatever') 
-      );
-
-only without all the typing and with a better interface.  Handy for
-quickly testing an interface.
-
-No matter how many @methods you check, a single can_ok() call counts
-as one test.  If you desire otherwise, use:
-
-    foreach my $meth (@methods) {
-        can_ok('Foo', $meth);
-    }
-
-=cut
-
-sub can_ok ($@) {
-    my($proto, @methods) = @_;
-    my $class = ref $proto || $proto;
-
-    unless( @methods ) {
-        my $ok = $Test->ok( 0, "$class->can(...)" );
-        $Test->diag('    can_ok() called with no methods');
-        return $ok;
-    }
-
-    my @nok = ();
-    foreach my $method (@methods) {
-        local($!, $@);  # don't interfere with caller's $@
-                        # eval sometimes resets $!
-        eval { $proto->can($method) } || push @nok, $method;
-    }
-
-    my $name;
-    $name = @methods == 1 ? "$class->can('$methods[0]')" 
-                          : "$class->can(...)";
-    
-    my $ok = $Test->ok( !@nok, $name );
-
-    $Test->diag(map "    $class->can('$_') failed\n", @nok);
-
-    return $ok;
-}
-
-=item B<isa_ok>
-
-  isa_ok($object, $class, $object_name);
-  isa_ok($ref,    $type,  $ref_name);
-
-Checks to see if the given C<< $object->isa($class) >>.  Also checks to make
-sure the object was defined in the first place.  Handy for this sort
-of thing:
-
-    my $obj = Some::Module->new;
-    isa_ok( $obj, 'Some::Module' );
-
-where you'd otherwise have to write
-
-    my $obj = Some::Module->new;
-    ok( defined $obj && $obj->isa('Some::Module') );
-
-to safeguard against your test script blowing up.
-
-It works on references, too:
-
-    isa_ok( $array_ref, 'ARRAY' );
-
-The diagnostics of this test normally just refer to 'the object'.  If
-you'd like them to be more specific, you can supply an $object_name
-(for example 'Test customer').
-
-=cut
-
-sub isa_ok ($$;$) {
-    my($object, $class, $obj_name) = @_;
-
-    my $diag;
-    $obj_name = 'The object' unless defined $obj_name;
-    my $name = "$obj_name isa $class";
-    if( !defined $object ) {
-        $diag = "$obj_name isn't defined";
-    }
-    elsif( !ref $object ) {
-        $diag = "$obj_name isn't a reference";
-    }
-    else {
-        # We can't use UNIVERSAL::isa because we want to honor isa() overrides
-        local($@, $!);  # eval sometimes resets $!
-        my $rslt = eval { $object->isa($class) };
-        if( $@ ) {
-            if( $@ =~ /^Can't call method "isa" on unblessed reference/ ) {
-                if( !UNIVERSAL::isa($object, $class) ) {
-                    my $ref = ref $object;
-                    $diag = "$obj_name isn't a '$class' it's a '$ref'";
-                }
-            } else {
-                die <<WHOA;
-WHOA! I tried to call ->isa on your object and got some weird error.
-This should never happen.  Please contact the author immediately.
-Here's the error.
-$@
-WHOA
-            }
-        }
-        elsif( !$rslt ) {
-            my $ref = ref $object;
-            $diag = "$obj_name isn't a '$class' it's a '$ref'";
-        }
-    }
-            
-      
-
-    my $ok;
-    if( $diag ) {
-        $ok = $Test->ok( 0, $name );
-        $Test->diag("    $diag\n");
-    }
-    else {
-        $ok = $Test->ok( 1, $name );
-    }
-
-    return $ok;
-}
-
-
-=item B<pass>
-
-=item B<fail>
-
-  pass($test_name);
-  fail($test_name);
-
-Sometimes you just want to say that the tests have passed.  Usually
-the case is you've got some complicated condition that is difficult to
-wedge into an ok().  In this case, you can simply use pass() (to
-declare the test ok) or fail (for not ok).  They are synonyms for
-ok(1) and ok(0).
-
-Use these very, very, very sparingly.
-
-=cut
-
-sub pass (;$) {
-    $Test->ok(1, @_);
-}
-
-sub fail (;$) {
-    $Test->ok(0, @_);
-}
-
-=back
-
-=head2 Diagnostics
-
-If you pick the right test function, you'll usually get a good idea of
-what went wrong when it failed.  But sometimes it doesn't work out
-that way.  So here we have ways for you to write your own diagnostic
-messages which are safer than just C<print STDERR>.
-
-=over 4
-
-=item B<diag>
-
-  diag(@diagnostic_message);
-
-Prints a diagnostic message which is guaranteed not to interfere with
-test output.  Like C<print> @diagnostic_message is simply concatinated
-together.
-
-Handy for this sort of thing:
-
-    ok( grep(/foo/, @users), "There's a foo user" ) or
-        diag("Since there's no foo, check that /etc/bar is set up right");
-
-which would produce:
-
-    not ok 42 - There's a foo user
-    #     Failed test (foo.t at line 52)
-    # Since there's no foo, check that /etc/bar is set up right.
-
-You might remember C<ok() or diag()> with the mnemonic C<open() or
-die()>.
-
-All diag()s can be made silent by passing the "no_diag" option to
-Test::More.  C<use Test::More tests => 1, 'no_diag'>.  This is useful
-if you have diagnostics for personal testing but then wish to make
-them silent for release without commenting out each individual
-statement.
-
-B<NOTE> The exact formatting of the diagnostic output is still
-changing, but it is guaranteed that whatever you throw at it it won't
-interfere with the test.
-
-=cut
-
-sub diag {
-    return unless $Show_Diag;
-    $Test->diag(@_);
-}
-
-
-=back
-
-=head2 Module tests
-
-You usually want to test if the module you're testing loads ok, rather
-than just vomiting if its load fails.  For such purposes we have
-C<use_ok> and C<require_ok>.
-
-=over 4
-
-=item B<use_ok>
-
-   BEGIN { use_ok($module); }
-   BEGIN { use_ok($module, @imports); }
-
-These simply use the given $module and test to make sure the load
-happened ok.  It's recommended that you run use_ok() inside a BEGIN
-block so its functions are exported at compile-time and prototypes are
-properly honored.
-
-If @imports are given, they are passed through to the use.  So this:
-
-   BEGIN { use_ok('Some::Module', qw(foo bar)) }
-
-is like doing this:
-
-   use Some::Module qw(foo bar);
-
-Version numbers can be checked like so:
-
-   # Just like "use Some::Module 1.02"
-   BEGIN { use_ok('Some::Module', 1.02) }
-
-Don't try to do this:
-
-   BEGIN {
-       use_ok('Some::Module');
-
-       ...some code that depends on the use...
-       ...happening at compile time...
-   }
-
-because the notion of "compile-time" is relative.  Instead, you want:
-
-  BEGIN { use_ok('Some::Module') }
-  BEGIN { ...some code that depends on the use... }
-
-
-=cut
-
-sub use_ok ($;@) {
-    my($module, @imports) = @_;
-    @imports = () unless @imports;
-
-    my($pack,$filename,$line) = caller;
-
-    local($@,$!);   # eval sometimes interferes with $!
-
-    if( @imports == 1 and $imports[0] =~ /^\d+(?:\.\d+)?$/ ) {
-        # probably a version check.  Perl needs to see the bare number
-        # for it to work with non-Exporter based modules.
-        eval <<USE;
-package $pack;
-use $module $imports[0];
-USE
-    }
-    else {
-        eval <<USE;
-package $pack;
-use $module \@imports;
-USE
-    }
-
-    my $ok = $Test->ok( !$@, "use $module;" );
-
-    unless( $ok ) {
-        chomp $@;
-        $@ =~ s{^BEGIN failed--compilation aborted at .*$}
-                {BEGIN failed--compilation aborted at $filename line $line.}m;
-        $Test->diag(<<DIAGNOSTIC);
-    Tried to use '$module'.
-    Error:  $@
-DIAGNOSTIC
-
-    }
-
-    return $ok;
-}
-
-=item B<require_ok>
-
-   require_ok($module);
-   require_ok($file);
-
-Like use_ok(), except it requires the $module or $file.
-
-=cut
-
-sub require_ok ($) {
-    my($module) = shift;
-
-    my $pack = caller;
-
-    # Try to deterine if we've been given a module name or file.
-    # Module names must be barewords, files not.
-    $module = qq['$module'] unless _is_module_name($module);
-
-    local($!, $@); # eval sometimes interferes with $!
-    eval <<REQUIRE;
-package $pack;
-require $module;
-REQUIRE
-
-    my $ok = $Test->ok( !$@, "require $module;" );
-
-    unless( $ok ) {
-        chomp $@;
-        $Test->diag(<<DIAGNOSTIC);
-    Tried to require '$module'.
-    Error:  $@
-DIAGNOSTIC
-
-    }
-
-    return $ok;
-}
-
-
-sub _is_module_name {
-    my $module = shift;
-
-    # Module names start with a letter.
-    # End with an alphanumeric.
-    # The rest is an alphanumeric or ::
-    $module =~ s/\b::\b//g;
-    $module =~ /^[a-zA-Z]\w*$/;
-}
-
-=back
-
-=head2 Conditional tests
-
-Sometimes running a test under certain conditions will cause the
-test script to die.  A certain function or method isn't implemented
-(such as fork() on MacOS), some resource isn't available (like a 
-net connection) or a module isn't available.  In these cases it's
-necessary to skip tests, or declare that they are supposed to fail
-but will work in the future (a todo test).
-
-For more details on the mechanics of skip and todo tests see
-L<Test::Harness>.
-
-The way Test::More handles this is with a named block.  Basically, a
-block of tests which can be skipped over or made todo.  It's best if I
-just show you...
-
-=over 4
-
-=item B<SKIP: BLOCK>
-
-  SKIP: {
-      skip $why, $how_many if $condition;
-
-      ...normal testing code goes here...
-  }
-
-This declares a block of tests that might be skipped, $how_many tests
-there are, $why and under what $condition to skip them.  An example is
-the easiest way to illustrate:
-
-    SKIP: {
-        eval { require HTML::Lint };
-
-        skip "HTML::Lint not installed", 2 if $@;
-
-        my $lint = new HTML::Lint;
-        isa_ok( $lint, "HTML::Lint" );
-
-        $lint->parse( $html );
-        is( $lint->errors, 0, "No errors found in HTML" );
-    }
-
-If the user does not have HTML::Lint installed, the whole block of
-code I<won't be run at all>.  Test::More will output special ok's
-which Test::Harness interprets as skipped, but passing, tests.
-
-It's important that $how_many accurately reflects the number of tests
-in the SKIP block so the # of tests run will match up with your plan.
-If your plan is C<no_plan> $how_many is optional and will default to 1.
-
-It's perfectly safe to nest SKIP blocks.  Each SKIP block must have
-the label C<SKIP>, or Test::More can't work its magic.
-
-You don't skip tests which are failing because there's a bug in your
-program, or for which you don't yet have code written.  For that you
-use TODO.  Read on.
-
-=cut
-
-#'#
-sub skip {
-    my($why, $how_many) = @_;
-
-    unless( defined $how_many ) {
-        # $how_many can only be avoided when no_plan is in use.
-        _carp "skip() needs to know \$how_many tests are in the block"
-          unless $Test->has_plan eq 'no_plan';
-        $how_many = 1;
-    }
-
-    for( 1..$how_many ) {
-        $Test->skip($why);
-    }
-
-    local $^W = 0;
-    last SKIP;
-}
-
-
-=item B<TODO: BLOCK>
-
-    TODO: {
-        local $TODO = $why if $condition;
-
-        ...normal testing code goes here...
-    }
-
-Declares a block of tests you expect to fail and $why.  Perhaps it's
-because you haven't fixed a bug or haven't finished a new feature:
-
-    TODO: {
-        local $TODO = "URI::Geller not finished";
-
-        my $card = "Eight of clubs";
-        is( URI::Geller->your_card, $card, 'Is THIS your card?' );
-
-        my $spoon;
-        URI::Geller->bend_spoon;
-        is( $spoon, 'bent',    "Spoon bending, that's original" );
-    }
-
-With a todo block, the tests inside are expected to fail.  Test::More
-will run the tests normally, but print out special flags indicating
-they are "todo".  Test::Harness will interpret failures as being ok.
-Should anything succeed, it will report it as an unexpected success.
-You then know the thing you had todo is done and can remove the
-TODO flag.
-
-The nice part about todo tests, as opposed to simply commenting out a
-block of tests, is it's like having a programmatic todo list.  You know
-how much work is left to be done, you're aware of what bugs there are,
-and you'll know immediately when they're fixed.
-
-Once a todo test starts succeeding, simply move it outside the block.
-When the block is empty, delete it.
-
-B<NOTE>: TODO tests require a Test::Harness upgrade else it will
-treat it as a normal failure.  See L<BUGS>)
-
-
-=item B<todo_skip>
-
-    TODO: {
-        todo_skip $why, $how_many if $condition;
-
-        ...normal testing code...
-    }
-
-With todo tests, it's best to have the tests actually run.  That way
-you'll know when they start passing.  Sometimes this isn't possible.
-Often a failing test will cause the whole program to die or hang, even
-inside an C<eval BLOCK> with and using C<alarm>.  In these extreme
-cases you have no choice but to skip over the broken tests entirely.
-
-The syntax and behavior is similar to a C<SKIP: BLOCK> except the
-tests will be marked as failing but todo.  Test::Harness will
-interpret them as passing.
-
-=cut
-
-sub todo_skip {
-    my($why, $how_many) = @_;
-
-    unless( defined $how_many ) {
-        # $how_many can only be avoided when no_plan is in use.
-        _carp "todo_skip() needs to know \$how_many tests are in the block"
-          unless $Test->has_plan eq 'no_plan';
-        $how_many = 1;
-    }
-
-    for( 1..$how_many ) {
-        $Test->todo_skip($why);
-    }
-
-    local $^W = 0;
-    last TODO;
-}
-
-=item When do I use SKIP vs. TODO?
-
-B<If it's something the user might not be able to do>, use SKIP.
-This includes optional modules that aren't installed, running under
-an OS that doesn't have some feature (like fork() or symlinks), or maybe
-you need an Internet connection and one isn't available.
-
-B<If it's something the programmer hasn't done yet>, use TODO.  This
-is for any code you haven't written yet, or bugs you have yet to fix,
-but want to put tests in your testing script (always a good idea).
-
-
-=back
-
-=head2 Complex data structures
-
-Not everything is a simple eq check or regex.  There are times you
-need to see if two data structures are equivalent.  For these
-instances Test::More provides a handful of useful functions.
-
-B<NOTE> I'm not quite sure what will happen with filehandles.
-
-=over 4
-
-=item B<is_deeply>
-
-  is_deeply( $this, $that, $test_name );
-
-Similar to is(), except that if $this and $that are hash or array
-references, it does a deep comparison walking each data structure to
-see if they are equivalent.  If the two structures are different, it
-will display the place where they start differing.
-
-Test::Differences and Test::Deep provide more in-depth functionality
-along these lines.
-
-=back
-
-=cut
-
-our (@Data_Stack, %Refs_Seen);
-my $DNE = bless [], 'Does::Not::Exist';
-sub is_deeply {
-    unless( @_ == 2 or @_ == 3 ) {
-        my $msg = <<WARNING;
-is_deeply() takes two or three args, you gave %d.
-This usually means you passed an array or hash instead 
-of a reference to it
-WARNING
-        chop $msg;   # clip off newline so carp() will put in line/file
-
-        _carp sprintf $msg, scalar @_;
-
-	return $Test->ok(0);
-    }
-
-    my($this, $that, $name) = @_;
-
-    my $ok;
-    if( !ref $this and !ref $that ) {  		# neither is a reference
-        $ok = $Test->is_eq($this, $that, $name);
-    }
-    elsif( !ref $this xor !ref $that ) {  	# one's a reference, one isn't
-        $ok = $Test->ok(0, $name);
-	$Test->diag( _format_stack({ vals => [ $this, $that ] }) );
-    }
-    else {			       		# both references
-        local @Data_Stack = ();
-        if( _deep_check($this, $that) ) {
-            $ok = $Test->ok(1, $name);
-        }
-        else {
-            $ok = $Test->ok(0, $name);
-            $Test->diag(_format_stack(@Data_Stack));
-        }
-    }
-
-    return $ok;
-}
-
-sub _format_stack {
-    my(@Stack) = @_;
-
-    my $var = '$FOO';
-    my $did_arrow = 0;
-    foreach my $entry (@Stack) {
-        my $type = $entry->{type} || '';
-        my $idx  = $entry->{'idx'};
-        if( $type eq 'HASH' ) {
-            $var .= "->" unless $did_arrow++;
-            $var .= "{$idx}";
-        }
-        elsif( $type eq 'ARRAY' ) {
-            $var .= "->" unless $did_arrow++;
-            $var .= "[$idx]";
-        }
-        elsif( $type eq 'REF' ) {
-            $var = "\${$var}";
-        }
-    }
-
-    my @vals = @{$Stack[-1]{vals}}[0,1];
-    my @vars = ();
-    ($vars[0] = $var) =~ s/\$FOO/     \$got/;
-    ($vars[1] = $var) =~ s/\$FOO/\$expected/;
-
-    my $out = "Structures begin differing at:\n";
-    foreach my $idx (0..$#vals) {
-        my $val = $vals[$idx];
-        $vals[$idx] = !defined $val ? 'undef'          :
-                      $val eq $DNE  ? "Does not exist" :
-	              ref $val      ? "$val"           :
-                                      "'$val'";
-    }
-
-    $out .= "$vars[0] = $vals[0]\n";
-    $out .= "$vars[1] = $vals[1]\n";
-
-    $out =~ s/^/    /msg;
-    return $out;
-}
-
-
-sub _type {
-    my $thing = shift;
-
-    return '' if !ref $thing;
-
-    for my $type (qw(ARRAY HASH REF SCALAR GLOB Regexp)) {
-        return $type if UNIVERSAL::isa($thing, $type);
-    }
-
-    return '';
-}
-
-
-=head2 Discouraged comparison functions
-
-The use of the following functions is discouraged as they are not
-actually testing functions and produce no diagnostics to help figure
-out what went wrong.  They were written before is_deeply() existed
-because I couldn't figure out how to display a useful diff of two
-arbitrary data structures.
-
-These functions are usually used inside an ok().
-
-    ok( eq_array(\@this, \@that) );
-
-C<is_deeply()> can do that better and with diagnostics.  
-
-    is_deeply( \@this, \@that );
-
-They may be deprecated in future versions.
-
-=over 4
-
-=item B<eq_array>
-
-  my $is_eq = eq_array(\@this, \@that);
-
-Checks if two arrays are equivalent.  This is a deep check, so
-multi-level structures are handled correctly.
-
-=cut
-
-#'#
-sub eq_array {
-    local @Data_Stack;
-    _deep_check(@_);
-}
-
-sub _eq_array  {
-    my($a1, $a2) = @_;
-
-    if( grep !_type($_) eq 'ARRAY', $a1, $a2 ) {
-        warn "eq_array passed a non-array ref";
-        return 0;
-    }
-
-    return 1 if $a1 eq $a2;
-
-    my $ok = 1;
-    my $max = $#$a1 > $#$a2 ? $#$a1 : $#$a2;
-    for (0..$max) {
-        my $e1 = $_ > $#$a1 ? $DNE : $a1->[$_];
-        my $e2 = $_ > $#$a2 ? $DNE : $a2->[$_];
-
-        push @Data_Stack, { type => 'ARRAY', idx => $_, vals => [$e1, $e2] };
-        $ok = _deep_check($e1,$e2);
-        pop @Data_Stack if $ok;
-
-        last unless $ok;
-    }
-
-    return $ok;
-}
-
-sub _deep_check {
-    my($e1, $e2) = @_;
-    my $ok = 0;
-
-    # Effectively turn %Refs_Seen into a stack.  This avoids picking up
-    # the same referenced used twice (such as [\$a, \$a]) to be considered
-    # circular.
-    local %Refs_Seen = %Refs_Seen;
-
-    {
-        # Quiet uninitialized value warnings when comparing undefs.
-        local $^W = 0; 
-
-        $Test->_unoverload(\$e1, \$e2);
-
-        # Either they're both references or both not.
-        my $same_ref = !(!ref $e1 xor !ref $e2);
-	my $not_ref  = (!ref $e1 and !ref $e2);
-
-        if( defined $e1 xor defined $e2 ) {
-            $ok = 0;
-        }
-        elsif ( $e1 == $DNE xor $e2 == $DNE ) {
-            $ok = 0;
-        }
-        elsif ( $same_ref and ($e1 eq $e2) ) {
-            $ok = 1;
-        }
-	elsif ( $not_ref ) {
-	    push @Data_Stack, { type => '', vals => [$e1, $e2] };
-	    $ok = 0;
-	}
-        else {
-            if( $Refs_Seen{$e1} ) {
-                return $Refs_Seen{$e1} eq $e2;
-            }
-            else {
-                $Refs_Seen{$e1} = "$e2";
-            }
-
-            my $type = _type($e1);
-            $type = 'DIFFERENT' unless _type($e2) eq $type;
-
-            if( $type eq 'DIFFERENT' ) {
-                push @Data_Stack, { type => $type, vals => [$e1, $e2] };
-                $ok = 0;
-            }
-            elsif( $type eq 'ARRAY' ) {
-                $ok = _eq_array($e1, $e2);
-            }
-            elsif( $type eq 'HASH' ) {
-                $ok = _eq_hash($e1, $e2);
-            }
-            elsif( $type eq 'REF' ) {
-                push @Data_Stack, { type => $type, vals => [$e1, $e2] };
-                $ok = _deep_check($$e1, $$e2);
-                pop @Data_Stack if $ok;
-            }
-            elsif( $type eq 'SCALAR' ) {
-                push @Data_Stack, { type => 'REF', vals => [$e1, $e2] };
-                $ok = _deep_check($$e1, $$e2);
-                pop @Data_Stack if $ok;
-            }
-	    else {
-		_whoa(1, "No type in _deep_check");
-	    }
-        }
-    }
-
-    return $ok;
-}
-
-
-sub _whoa {
-    my($check, $desc) = @_;
-    if( $check ) {
-        die <<WHOA;
-WHOA!  $desc
-This should never happen!  Please contact the author immediately!
-WHOA
-    }
-}
-
-
-=item B<eq_hash>
-
-  my $is_eq = eq_hash(\%this, \%that);
-
-Determines if the two hashes contain the same keys and values.  This
-is a deep check.
-
-=cut
-
-sub eq_hash {
-    local @Data_Stack;
-    return _deep_check(@_);
-}
-
-sub _eq_hash {
-    my($a1, $a2) = @_;
-
-    if( grep !_type($_) eq 'HASH', $a1, $a2 ) {
-        warn "eq_hash passed a non-hash ref";
-        return 0;
-    }
-
-    return 1 if $a1 eq $a2;
-
-    my $ok = 1;
-    my $bigger = keys %$a1 > keys %$a2 ? $a1 : $a2;
-    foreach my $k (keys %$bigger) {
-        my $e1 = exists $a1->{$k} ? $a1->{$k} : $DNE;
-        my $e2 = exists $a2->{$k} ? $a2->{$k} : $DNE;
-
-        push @Data_Stack, { type => 'HASH', idx => $k, vals => [$e1, $e2] };
-        $ok = _deep_check($e1, $e2);
-        pop @Data_Stack if $ok;
-
-        last unless $ok;
-    }
-
-    return $ok;
-}
-
-=item B<eq_set>
-
-  my $is_eq = eq_set(\@this, \@that);
-
-Similar to eq_array(), except the order of the elements is B<not>
-important.  This is a deep check, but the irrelevancy of order only
-applies to the top level.
-
-    ok( eq_set(\@this, \@that) );
-
-Is better written:
-
-    is_deeply( [sort @this], [sort @that] );
-
-B<NOTE> By historical accident, this is not a true set comparision.
-While the order of elements does not matter, duplicate elements do.
-
-Test::Deep contains much better set comparison functions.
-
-=cut
-
-sub eq_set  {
-    my($a1, $a2) = @_;
-    return 0 unless @$a1 == @$a2;
-
-    # There's faster ways to do this, but this is easiest.
-    local $^W = 0;
-
-    # We must make sure that references are treated neutrally.  It really
-    # doesn't matter how we sort them, as long as both arrays are sorted
-    # with the same algorithm.
-    # Have to inline the sort routine due to a threading/sort bug.
-    # See [rt.cpan.org 6782]
-    return eq_array(
-           [sort { ref $a ? -1 : ref $b ? 1 : $a cmp $b } @$a1],
-           [sort { ref $a ? -1 : ref $b ? 1 : $a cmp $b } @$a2]
-    );
-}
-
-=back
-
-
-=head2 Extending and Embedding Test::More
-
-Sometimes the Test::More interface isn't quite enough.  Fortunately,
-Test::More is built on top of Test::Builder which provides a single,
-unified backend for any test library to use.  This means two test
-libraries which both use Test::Builder B<can be used together in the
-same program>.
-
-If you simply want to do a little tweaking of how the tests behave,
-you can access the underlying Test::Builder object like so:
-
-=over 4
-
-=item B<builder>
-
-    my $test_builder = Test::More->builder;
-
-Returns the Test::Builder object underlying Test::More for you to play
-with.
-
-=cut
-
-sub builder {
-    return Test::Builder->new;
-}
-
-=back
-
-
-=head1 EXIT CODES
-
-If all your tests passed, Test::Builder will exit with zero (which is
-normal).  If anything failed it will exit with how many failed.  If
-you run less (or more) tests than you planned, the missing (or extras)
-will be considered failures.  If no tests were ever run Test::Builder
-will throw a warning and exit with 255.  If the test died, even after
-having successfully completed all its tests, it will still be
-considered a failure and will exit with 255.
-
-So the exit codes are...
-
-    0                   all tests successful
-    255                 test died
-    any other number    how many failed (including missing or extras)
-
-If you fail more than 254 tests, it will be reported as 254.
-
-B<NOTE>  This behavior may go away in future versions.
-
-
-=head1 CAVEATS and NOTES
-
-=over 4
-
-=item Backwards compatibility
-
-Test::More works with Perls as old as 5.004_05.
-
-
-=item Overloaded objects
-
-String overloaded objects are compared B<as strings>.  This prevents
-Test::More from piercing an object's interface allowing better blackbox
-testing.  So if a function starts returning overloaded objects instead of
-bare strings your tests won't notice the difference.  This is good.
-
-However, it does mean that functions like is_deeply() cannot be used to
-test the internals of string overloaded objects.  In this case I would
-suggest Test::Deep which contains more flexible testing functions for
-complex data structures.
-
-
-=item Threads
-
-Test::More will only be aware of threads if "use threads" has been done
-I<before> Test::More is loaded.  This is ok:
-
-    use threads;
-    use Test::More;
-
-This may cause problems:
-
-    use Test::More
-    use threads;
-
-
-=item Test::Harness upgrade
-
-no_plan and todo depend on new Test::Harness features and fixes.  If
-you're going to distribute tests that use no_plan or todo your
-end-users will have to upgrade Test::Harness to the latest one on
-CPAN.  If you avoid no_plan and TODO tests, the stock Test::Harness
-will work fine.
-
-Installing Test::More should also upgrade Test::Harness.
-
-=back
-
-
-=head1 HISTORY
-
-This is a case of convergent evolution with Joshua Pritikin's Test
-module.  I was largely unaware of its existence when I'd first
-written my own ok() routines.  This module exists because I can't
-figure out how to easily wedge test names into Test's interface (along
-with a few other problems).
-
-The goal here is to have a testing utility that's simple to learn,
-quick to use and difficult to trip yourself up with while still
-providing more flexibility than the existing Test.pm.  As such, the
-names of the most common routines are kept tiny, special cases and
-magic side-effects are kept to a minimum.  WYSIWYG.
-
-
-=head1 SEE ALSO
-
-L<Test::Simple> if all this confuses you and you just want to write
-some tests.  You can upgrade to Test::More later (it's forward
-compatible).
-
-L<Test> is the old testing module.  Its main benefit is that it has
-been distributed with Perl since 5.004_05.
-
-L<Test::Harness> for details on how your test results are interpreted
-by Perl.
-
-L<Test::Differences> for more ways to test complex data structures.
-And it plays well with Test::More.
-
-L<Test::Class> is like XUnit but more perlish.
-
-L<Test::Deep> gives you more powerful complex data structure testing.
-
-L<Test::Unit> is XUnit style testing.
-
-L<Test::Inline> shows the idea of embedded testing.
-
-L<Bundle::Test> installs a whole bunch of useful test modules.
-
-
-=head1 AUTHORS
-
-Michael G Schwern E<lt>schwern@pobox.comE<gt> with much inspiration
-from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and
-the perl-qa gang.
-
-
-=head1 BUGS
-
-See F<http://rt.cpan.org> to report and view bugs.
-
-
-=head1 COPYRIGHT
-
-Copyright 2001, 2002, 2004 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or 
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
-
-1;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Simple.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Simple.pm
diff -N gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Simple.pm
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/t/Test/Simple.pm	15 Feb 2023 01:38:21 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,236 +0,0 @@
-package Test::Simple;
-
-use 5.004;
-
-use strict 'vars';
-our ($VERSION);
-$VERSION = '0.60';
-$VERSION = eval $VERSION;    # make the alpha version come out as a number
-
-
-use Test::Builder;
-my $Test = Test::Builder->new;
-
-sub import {
-    my $self = shift;
-    my $caller = caller;
-    *{$caller.'::ok'} = \&ok;
-
-    $Test->exported_to($caller);
-    $Test->plan(@_);
-}
-
-
-=head1 NAME
-
-Test::Simple - Basic utilities for writing tests.
-
-=head1 SYNOPSIS
-
-  use Test::Simple tests => 1;
-
-  ok( $foo eq $bar, 'foo is bar' );
-
-
-=head1 DESCRIPTION
-
-** If you are unfamiliar with testing B<read Test::Tutorial> first! **
-
-This is an extremely simple, extremely basic module for writing tests
-suitable for CPAN modules and other pursuits.  If you wish to do more
-complicated testing, use the Test::More module (a drop-in replacement
-for this one).
-
-The basic unit of Perl testing is the ok.  For each thing you want to
-test your program will print out an "ok" or "not ok" to indicate pass
-or fail.  You do this with the ok() function (see below).
-
-The only other constraint is you must pre-declare how many tests you
-plan to run.  This is in case something goes horribly wrong during the
-test and your test program aborts, or skips a test or whatever.  You
-do this like so:
-
-    use Test::Simple tests => 23;
-
-You must have a plan.
-
-
-=over 4
-
-=item B<ok>
-
-  ok( $foo eq $bar, $name );
-  ok( $foo eq $bar );
-
-ok() is given an expression (in this case C<$foo eq $bar>).  If it's
-true, the test passed.  If it's false, it didn't.  That's about it.
-
-ok() prints out either "ok" or "not ok" along with a test number (it
-keeps track of that for you).
-
-  # This produces "ok 1 - Hell not yet frozen over" (or not ok)
-  ok( get_temperature($hell) > 0, 'Hell not yet frozen over' );
-
-If you provide a $name, that will be printed along with the "ok/not
-ok" to make it easier to find your test when if fails (just search for
-the name).  It also makes it easier for the next guy to understand
-what your test is for.  It's highly recommended you use test names.
-
-All tests are run in scalar context.  So this:
-
-    ok( @stuff, 'I have some stuff' );
-
-will do what you mean (fail if stuff is empty)
-
-=cut
-
-sub ok ($;$) {
-    $Test->ok(@_);
-}
-
-
-=back
-
-Test::Simple will start by printing number of tests run in the form
-"1..M" (so "1..5" means you're going to run 5 tests).  This strange
-format lets Test::Harness know how many tests you plan on running in
-case something goes horribly wrong.
-
-If all your tests passed, Test::Simple will exit with zero (which is
-normal).  If anything failed it will exit with how many failed.  If
-you run less (or more) tests than you planned, the missing (or extras)
-will be considered failures.  If no tests were ever run Test::Simple
-will throw a warning and exit with 255.  If the test died, even after
-having successfully completed all its tests, it will still be
-considered a failure and will exit with 255.
-
-So the exit codes are...
-
-    0                   all tests successful
-    255                 test died
-    any other number    how many failed (including missing or extras)
-
-If you fail more than 254 tests, it will be reported as 254.
-
-This module is by no means trying to be a complete testing system.
-It's just to get you started.  Once you're off the ground its
-recommended you look at L<Test::More>.
-
-
-=head1 EXAMPLE
-
-Here's an example of a simple .t file for the fictional Film module.
-
-    use Test::Simple tests => 5;
-
-    use Film;  # What you're testing.
-
-    my $btaste = Film->new({ Title    => 'Bad Taste',
-                             Director => 'Peter Jackson',
-                             Rating   => 'R',
-                             NumExplodingSheep => 1
-                           });
-    ok( defined($btaste) && ref $btaste eq 'Film,     'new() works' );
-
-    ok( $btaste->Title      eq 'Bad Taste',     'Title() get'    );
-    ok( $btaste->Director   eq 'Peter Jackson', 'Director() get' );
-    ok( $btaste->Rating     eq 'R',             'Rating() get'   );
-    ok( $btaste->NumExplodingSheep == 1,        'NumExplodingSheep() get' );
-
-It will produce output like this:
-
-    1..5
-    ok 1 - new() works
-    ok 2 - Title() get
-    ok 3 - Director() get
-    not ok 4 - Rating() get
-    #    Failed test (t/film.t at line 14)
-    ok 5 - NumExplodingSheep() get
-    # Looks like you failed 1 tests of 5
-
-Indicating the Film::Rating() method is broken.
-
-
-=head1 CAVEATS
-
-Test::Simple will only report a maximum of 254 failures in its exit
-code.  If this is a problem, you probably have a huge test script.
-Split it into multiple files.  (Otherwise blame the Unix folks for
-using an unsigned short integer as the exit status).
-
-Because VMS's exit codes are much, much different than the rest of the
-universe, and perl does horrible mangling to them that gets in my way,
-it works like this on VMS.
-
-    0     SS$_NORMAL        all tests successful
-    4     SS$_ABORT         something went wrong
-
-Unfortunately, I can't differentiate any further.
-
-
-=head1 NOTES
-
-Test::Simple is B<explicitly> tested all the way back to perl 5.004.
-
-Test::Simple is thread-safe in perl 5.8.0 and up.
-
-=head1 HISTORY
-
-This module was conceived while talking with Tony Bowden in his
-kitchen one night about the problems I was having writing some really
-complicated feature into the new Testing module.  He observed that the
-main problem is not dealing with these edge cases but that people hate
-to write tests B<at all>.  What was needed was a dead simple module
-that took all the hard work out of testing and was really, really easy
-to learn.  Paul Johnson simultaneously had this idea (unfortunately,
-he wasn't in Tony's kitchen).  This is it.
-
-
-=head1 SEE ALSO
-
-=over 4
-
-=item L<Test::More>
-
-More testing functions!  Once you outgrow Test::Simple, look at
-Test::More.  Test::Simple is 100% forward compatible with Test::More
-(i.e. you can just use Test::More instead of Test::Simple in your
-programs and things will still work).
-
-=item L<Test>
-
-The original Perl testing module.
-
-=item L<Test::Unit>
-
-Elaborate unit testing.
-
-=item L<Test::Inline>, L<SelfTest>
-
-Embed tests in your code!
-
-=item L<Test::Harness>
-
-Interprets the output of your test program.
-
-=back
-
-
-=head1 AUTHORS
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-
-=head1 COPYRIGHT
-
-Copyright 2001, 2002, 2004 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or 
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
-
-1;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c,v
diff -u -p -a -u -p -r1.6 crc32.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c	15 Feb 2023 01:36:15 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/crc32.c	21 Feb 2024 15:47:00 -0000
@@ -98,13 +98,22 @@
 #  endif
 #endif
 
+/* If available, use the ARM processor CRC32 instruction. */
+#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8
+#  define ARMCRC32
+#endif
+
 /* Local functions. */
 local z_crc_t multmodp OF((z_crc_t a, z_crc_t b));
 local z_crc_t x2nmodp OF((z_off64_t n, unsigned k));
 
-/* If available, use the ARM processor CRC32 instruction. */
-#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8
-#  define ARMCRC32
+#if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE))
+    local z_word_t byte_swap OF((z_word_t word));
+#endif
+
+#if defined(W) && !defined(ARMCRC32)
+    local z_crc_t crc_word OF((z_word_t data));
+    local z_word_t crc_word_big OF((z_word_t data));
 #endif
 
 #if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE))
@@ -645,8 +654,8 @@ unsigned long ZEXPORT crc32_z(
     len &= 7;
 
     /* Do three interleaved CRCs to realize the throughput of one crc32x
-       instruction per cycle. Each CRC is calcuated on Z_BATCH words. The three
-       CRCs are combined into a single CRC after each set of batches. */
+       instruction per cycle. Each CRC is calculated on Z_BATCH words. The
+       three CRCs are combined into a single CRC after each set of batches. */
     while (num >= 3 * Z_BATCH) {
         crc1 = 0;
         crc2 = 0;
@@ -1086,7 +1095,7 @@ uLong ZEXPORT crc32_combine(
     uLong crc2,
     z_off_t len2)
 {
-    return crc32_combine64(crc1, crc2, len2);
+    return crc32_combine64(crc1, crc2, (z_off64_t)len2);
 }
 
 /* ========================================================================= */
@@ -1103,7 +1112,7 @@ uLong ZEXPORT crc32_combine_gen64(
 uLong ZEXPORT crc32_combine_gen(
     z_off_t len2)
 {
-    return crc32_combine_gen64(len2);
+    return crc32_combine_gen64((z_off64_t)len2);
 }
 
 /* ========================================================================= */
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c,v
diff -u -p -a -u -p -r1.10 deflate.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c	15 Feb 2023 01:36:15 -0000	1.10
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.c	21 Feb 2024 15:47:00 -0000
@@ -52,7 +52,7 @@
 #include "deflate.h"
 
 const char deflate_copyright[] =
-   " deflate 1.2.12 Copyright 1995-2022 Jean-loup Gailly and Mark Adler ";
+   " deflate 1.2.13 Copyright 1995-2022 Jean-loup Gailly and Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
@@ -87,13 +87,7 @@ local void lm_init        OF((deflate_st
 local void putShortMSB    OF((deflate_state *s, uInt b));
 local void flush_pending  OF((z_streamp strm));
 local unsigned read_buf   OF((z_streamp strm, Bytef *buf, unsigned size));
-#ifdef ASMV
-#  pragma message("Assembler code may have bugs -- use at your own risk")
-      void match_init OF((void)); /* asm code initialization */
-      uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#else
 local uInt longest_match  OF((deflate_state *s, IPos cur_match));
-#endif
 
 #ifdef ZLIB_DEBUG
 local  void check_match OF((deflate_state *s, IPos start, IPos match,
@@ -160,7 +154,7 @@ local const config configuration_table[1
  *    characters, so that a running hash key can be computed from the previous
  *    key instead of complete recalculation each time.
  */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
+#define UPDATE_HASH(s,h,c) (h = (((h) << s->hash_shift) ^ (c)) & s->hash_mask)
 
 
 /* ===========================================================================
@@ -191,9 +185,9 @@ local const config configuration_table[1
  */
 #define CLEAR_HASH(s) \
     do { \
-        s->head[s->hash_size-1] = NIL; \
+        s->head[s->hash_size - 1] = NIL; \
         zmemzero((Bytef *)s->head, \
-                 (unsigned)(s->hash_size-1)*sizeof(*s->head)); \
+                 (unsigned)(s->hash_size - 1)*sizeof(*s->head)); \
     } while (0)
 
 /* ===========================================================================
@@ -284,6 +278,8 @@ int ZEXPORT deflateInit2_(
 
     if (windowBits < 0) { /* suppress zlib wrapper */
         wrap = 0;
+        if (windowBits < -15)
+            return Z_STREAM_ERROR;
         windowBits = -windowBits;
     }
 #ifdef GZIP
@@ -313,7 +309,7 @@ int ZEXPORT deflateInit2_(
     s->hash_bits = (uInt)memLevel + 7;
     s->hash_size = 1 << s->hash_bits;
     s->hash_mask = s->hash_size - 1;
-    s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
+    s->hash_shift =  ((s->hash_bits + MIN_MATCH-1) / MIN_MATCH);
 
     s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
     s->prev   = (Posf *)  ZALLOC(strm, s->w_size, sizeof(Pos));
@@ -339,11 +335,11 @@ int ZEXPORT deflateInit2_(
      * sym_buf value to read moves forward three bytes. From that symbol, up to
      * 31 bits are written to pending_buf. The closest the written pending_buf
      * bits gets to the next sym_buf symbol to read is just before the last
-     * code is written. At that time, 31*(n-2) bits have been written, just
-     * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at
-     * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1
+     * code is written. At that time, 31*(n - 2) bits have been written, just
+     * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
+     * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
      * symbols are written.) The closest the writing gets to what is unread is
-     * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and
+     * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
      * can range from 128 to 32768.
      *
      * Therefore, at a minimum, there are 142 bits of space between what is
@@ -673,36 +669,50 @@ int ZEXPORT deflateTune(
 }
 
 /* =========================================================================
- * For the default windowBits of 15 and memLevel of 8, this function returns
- * a close to exact, as well as small, upper bound on the compressed size.
- * They are coded as constants here for a reason--if the #define's are
- * changed, then this function needs to be changed as well.  The return
- * value for 15 and 8 only works for those exact settings.
+ * For the default windowBits of 15 and memLevel of 8, this function returns a
+ * close to exact, as well as small, upper bound on the compressed size. This
+ * is an expansion of ~0.03%, plus a small constant.
+ *
+ * For any setting other than those defaults for windowBits and memLevel, one
+ * of two worst case bounds is returned. This is at most an expansion of ~4% or
+ * ~13%, plus a small constant.
  *
- * For any setting other than those defaults for windowBits and memLevel,
- * the value returned is a conservative worst case for the maximum expansion
- * resulting from using fixed blocks instead of stored blocks, which deflate
- * can emit on compressed data for some combinations of the parameters.
+ * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
+ * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
+ * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
+ * expansion results from five bytes of header for each stored block.
  *
- * This function could be more sophisticated to provide closer upper bounds for
- * every combination of windowBits and memLevel.  But even the conservative
- * upper bound of about 14% expansion does not seem onerous for output buffer
- * allocation.
+ * The larger expansion of 13% results from a window size less than or equal to
+ * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
+ * the data being compressed may have slid out of the sliding window, impeding
+ * a stored block from being emitted. Then the only choice is a fixed or
+ * dynamic block, where a fixed block limits the maximum expansion to 9 bits
+ * per 8-bit byte, plus 10 bits for every block. The smallest block size for
+ * which this can occur is 255 (memLevel == 2).
+ *
+ * Shifts are used to approximate divisions, for speed.
  */
 uLong ZEXPORT deflateBound(
     z_streamp strm,
     uLong sourceLen)
 {
     deflate_state *s;
-    uLong complen, wraplen;
+    uLong fixedlen, storelen, wraplen;
 
-    /* conservative upper bound for compressed data */
-    complen = sourceLen +
-              ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
+    /* upper bound for fixed blocks with 9-bit literals and length 255
+       (memLevel == 2, which is the lowest that may not use stored blocks) --
+       ~13% overhead plus a small constant */
+    fixedlen = sourceLen + (sourceLen >> 3) + (sourceLen >> 8) +
+               (sourceLen >> 9) + 4;
+
+    /* upper bound for stored blocks with length 127 (memLevel == 1) --
+       ~4% overhead plus a small constant */
+    storelen = sourceLen + (sourceLen >> 5) + (sourceLen >> 7) +
+               (sourceLen >> 11) + 7;
 
-    /* if can't get parameters, return conservative bound plus zlib wrapper */
+    /* if can't get parameters, return larger bound plus a zlib wrapper */
     if (deflateStateCheck(strm))
-        return complen + 6;
+        return (fixedlen > storelen ? fixedlen : storelen) + 6;
 
     /* compute wrapper length */
     s = strm->state;
@@ -739,11 +749,12 @@ uLong ZEXPORT deflateBound(
         wraplen = 6;
     }
 
-    /* if not default parameters, return conservative bound */
+    /* if not default parameters, return one of the conservative bounds */
     if (s->w_bits != 15 || s->hash_bits != 8 + 7)
-        return complen + wraplen;
+        return (s->w_bits <= s->hash_bits ? fixedlen : storelen) + wraplen;
 
-    /* default settings: return tight bound for that case */
+    /* default settings: return tight bound for that case -- ~0.03% overhead
+       plus a small constant */
     return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
            (sourceLen >> 25) + 13 - 6 + wraplen;
 }
@@ -855,7 +866,7 @@ int ZEXPORT deflate (
         s->status = BUSY_STATE;
     if (s->status == INIT_STATE) {
         /* zlib header */
-        uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
+        uInt header = (Z_DEFLATED + ((s->w_bits - 8) << 4)) << 8;
         uInt level_flags;
 
         if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
@@ -1251,11 +1262,6 @@ local void lm_init (
     s->match_length = s->prev_length = MIN_MATCH-1;
     s->match_available = 0;
     s->ins_h = 0;
-#ifndef FASTEST
-#ifdef ASMV
-    match_init(); /* initialize the asm code */
-#endif
-#endif
 }
 
 #ifndef FASTEST
@@ -1268,18 +1274,14 @@ local void lm_init (
  *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  * OUT assertion: the match length is not greater than s->lookahead.
  */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
 local uInt longest_match(
     deflate_state *s,
     IPos cur_match)
 {
     unsigned chain_length = s->max_chain_length;/* max hash chain length */
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                      /* matched string */
-    register int len;                           /* length of current match */
+    Bytef *scan = s->window + s->strstart; /* current string */
+    Bytef *match;                      /* matched string */
+    int len;                           /* length of current match */
     int best_len = (int)s->prev_length;         /* best match length so far */
     int nice_match = s->nice_match;             /* stop if match long enough */
     IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
@@ -1294,13 +1296,13 @@ local uInt longest_match(
     /* Compare two bytes at a time. Note: this is not always beneficial.
      * Try with and without -DUNALIGNED_OK to check.
      */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
-    register ush scan_start = *(ushf*)scan;
-    register ush scan_end   = *(ushf*)(scan+best_len-1);
+    Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
+    ush scan_start = *(ushf*)scan;
+    ush scan_end   = *(ushf*)(scan + best_len - 1);
 #else
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-    register Byte scan_end1  = scan[best_len-1];
-    register Byte scan_end   = scan[best_len];
+    Bytef *strend = s->window + s->strstart + MAX_MATCH;
+    Byte scan_end1  = scan[best_len - 1];
+    Byte scan_end   = scan[best_len];
 #endif
 
     /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
@@ -1317,7 +1319,8 @@ local uInt longest_match(
      */
     if ((uInt)nice_match > s->lookahead) nice_match = (int)s->lookahead;
 
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+    Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+           "need lookahead");
 
     do {
         Assert(cur_match < s->strstart, "no future");
@@ -1335,43 +1338,44 @@ local uInt longest_match(
         /* This code assumes sizeof(unsigned short) == 2. Do not use
          * UNALIGNED_OK if your compiler uses a different size.
          */
-        if (*(ushf*)(match+best_len-1) != scan_end ||
+        if (*(ushf*)(match + best_len - 1) != scan_end ||
             *(ushf*)match != scan_start) continue;
 
         /* It is not necessary to compare scan[2] and match[2] since they are
          * always equal when the other bytes match, given that the hash keys
          * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
-         * strstart+3, +5, ... up to strstart+257. We check for insufficient
+         * strstart + 3, + 5, up to strstart + 257. We check for insufficient
          * lookahead only every 4th comparison; the 128th check will be made
-         * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
+         * at strstart + 257. If MAX_MATCH-2 is not a multiple of 8, it is
          * necessary to put more guard bytes at the end of the window, or
          * to check more often for insufficient lookahead.
          */
         Assert(scan[2] == match[2], "scan[2]?");
         scan++, match++;
         do {
-        } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
-                 *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
+        } while (*(ushf*)(scan += 2) == *(ushf*)(match += 2) &&
+                 *(ushf*)(scan += 2) == *(ushf*)(match += 2) &&
+                 *(ushf*)(scan += 2) == *(ushf*)(match += 2) &&
+                 *(ushf*)(scan += 2) == *(ushf*)(match += 2) &&
                  scan < strend);
         /* The funny "do {}" generates better code on most compilers */
 
-        /* Here, scan <= window+strstart+257 */
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+        /* Here, scan <= window + strstart + 257 */
+        Assert(scan <= s->window + (unsigned)(s->window_size - 1),
+               "wild scan");
         if (*scan == *match) scan++;
 
-        len = (MAX_MATCH - 1) - (int)(strend-scan);
+        len = (MAX_MATCH - 1) - (int)(strend - scan);
         scan = strend - (MAX_MATCH-1);
 
 #else /* UNALIGNED_OK */
 
-        if (match[best_len]   != scan_end  ||
-            match[best_len-1] != scan_end1 ||
-            *match            != *scan     ||
-            *++match          != scan[1])      continue;
+        if (match[best_len]     != scan_end  ||
+            match[best_len - 1] != scan_end1 ||
+            *match              != *scan     ||
+            *++match            != scan[1])      continue;
 
-        /* The check at best_len-1 can be removed because it will be made
+        /* The check at best_len - 1 can be removed because it will be made
          * again later. (This heuristic is not always a win.)
          * It is not necessary to compare scan[2] and match[2] since they
          * are always equal when the other bytes match, given that
@@ -1381,7 +1385,7 @@ local uInt longest_match(
         Assert(*scan == *match, "match[2]?");
 
         /* We check for insufficient lookahead only every 8th comparison;
-         * the 256th check will be made at strstart+258.
+         * the 256th check will be made at strstart + 258.
          */
         do {
         } while (*++scan == *++match && *++scan == *++match &&
@@ -1390,7 +1394,8 @@ local uInt longest_match(
                  *++scan == *++match && *++scan == *++match &&
                  scan < strend);
 
-        Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+        Assert(scan <= s->window + (unsigned)(s->window_size - 1),
+               "wild scan");
 
         len = MAX_MATCH - (int)(strend - scan);
         scan = strend - MAX_MATCH;
@@ -1402,9 +1407,9 @@ local uInt longest_match(
             best_len = len;
             if (len >= nice_match) break;
 #ifdef UNALIGNED_OK
-            scan_end = *(ushf*)(scan+best_len-1);
+            scan_end = *(ushf*)(scan + best_len - 1);
 #else
-            scan_end1  = scan[best_len-1];
+            scan_end1  = scan[best_len - 1];
             scan_end   = scan[best_len];
 #endif
         }
@@ -1414,7 +1419,6 @@ local uInt longest_match(
     if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
     return s->lookahead;
 }
-#endif /* ASMV */
 
 #else /* FASTEST */
 
@@ -1425,17 +1429,18 @@ local uInt longest_match(
     deflate_state *s,
     IPos cur_match)
 {
-    register Bytef *scan = s->window + s->strstart; /* current string */
-    register Bytef *match;                       /* matched string */
-    register int len;                           /* length of current match */
-    register Bytef *strend = s->window + s->strstart + MAX_MATCH;
+    Bytef *scan = s->window + s->strstart; /* current string */
+    Bytef *match;                       /* matched string */
+    int len;                           /* length of current match */
+    Bytef *strend = s->window + s->strstart + MAX_MATCH;
 
     /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
      * It is easy to get rid of this optimization if necessary.
      */
     Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
 
-    Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+    Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+           "need lookahead");
 
     Assert(cur_match < s->strstart, "no future");
 
@@ -1445,7 +1450,7 @@ local uInt longest_match(
      */
     if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
 
-    /* The check at best_len-1 can be removed because it will be made
+    /* The check at best_len - 1 can be removed because it will be made
      * again later. (This heuristic is not always a win.)
      * It is not necessary to compare scan[2] and match[2] since they
      * are always equal when the other bytes match, given that
@@ -1455,7 +1460,7 @@ local uInt longest_match(
     Assert(*scan == *match, "match[2]?");
 
     /* We check for insufficient lookahead only every 8th comparison;
-     * the 256th check will be made at strstart+258.
+     * the 256th check will be made at strstart + 258.
      */
     do {
     } while (*++scan == *++match && *++scan == *++match &&
@@ -1464,7 +1469,7 @@ local uInt longest_match(
              *++scan == *++match && *++scan == *++match &&
              scan < strend);
 
-    Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+    Assert(scan <= s->window + (unsigned)(s->window_size - 1), "wild scan");
 
     len = MAX_MATCH - (int)(strend - scan);
 
@@ -1501,7 +1506,7 @@ local void check_match(
         z_error("invalid match");
     }
     if (z_verbose > 1) {
-        fprintf(stderr,"\\[%d,%d]", start-match, length);
+        fprintf(stderr,"\\[%d,%d]", start - match, length);
         do { putc(s->window[start++], stderr); } while (--length != 0);
     }
 }
@@ -1547,9 +1552,9 @@ local void fill_window(
         /* If the window is almost full and there is insufficient lookahead,
          * move the upper half to the lower one to make room in the upper half.
          */
-        if (s->strstart >= wsize+MAX_DIST(s)) {
+        if (s->strstart >= wsize + MAX_DIST(s)) {
 
-            zmemcpy(s->window, s->window+wsize, (unsigned)wsize - more);
+            zmemcpy(s->window, s->window + wsize, (unsigned)wsize - more);
             s->match_start -= wsize;
             s->strstart    -= wsize; /* we now have strstart >= MAX_DIST */
             s->block_start -= (long) wsize;
@@ -1680,7 +1685,7 @@ local void fill_window(
  *
  * deflate_stored() is written to minimize the number of times an input byte is
  * copied. It is most efficient with large input and output buffers, which
- * maximizes the opportunites to have a single copy from next_in to next_out.
+ * maximizes the opportunities to have a single copy from next_in to next_out.
  */
 local block_state deflate_stored(
     deflate_state *s,
@@ -1890,7 +1895,7 @@ local block_state deflate_fast(
             if (s->lookahead == 0) break; /* flush the current block */
         }
 
-        /* Insert the string window[strstart .. strstart+2] in the
+        /* Insert the string window[strstart .. strstart + 2] in the
          * dictionary, and set hash_head to the head of the hash chain:
          */
         hash_head = NIL;
@@ -1938,7 +1943,7 @@ local block_state deflate_fast(
                 s->strstart += s->match_length;
                 s->match_length = 0;
                 s->ins_h = s->window[s->strstart];
-                UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
+                UPDATE_HASH(s, s->ins_h, s->window[s->strstart + 1]);
 #if MIN_MATCH != 3
                 Call UPDATE_HASH() MIN_MATCH-3 more times
 #endif
@@ -1949,7 +1954,7 @@ local block_state deflate_fast(
         } else {
             /* No match, output a literal byte */
             Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
+            _tr_tally_lit(s, s->window[s->strstart], bflush);
             s->lookahead--;
             s->strstart++;
         }
@@ -1993,7 +1998,7 @@ local block_state deflate_slow(
             if (s->lookahead == 0) break; /* flush the current block */
         }
 
-        /* Insert the string window[strstart .. strstart+2] in the
+        /* Insert the string window[strstart .. strstart + 2] in the
          * dictionary, and set hash_head to the head of the hash chain:
          */
         hash_head = NIL;
@@ -2035,17 +2040,17 @@ local block_state deflate_slow(
             uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
             /* Do not insert strings in hash table beyond this. */
 
-            check_match(s, s->strstart-1, s->prev_match, s->prev_length);
+            check_match(s, s->strstart - 1, s->prev_match, s->prev_length);
 
-            _tr_tally_dist(s, s->strstart -1 - s->prev_match,
+            _tr_tally_dist(s, s->strstart - 1 - s->prev_match,
                            s->prev_length - MIN_MATCH, bflush);
 
             /* Insert in hash table all strings up to the end of the match.
-             * strstart-1 and strstart are already inserted. If there is not
+             * strstart - 1 and strstart are already inserted. If there is not
              * enough lookahead, the last two strings are not inserted in
              * the hash table.
              */
-            s->lookahead -= s->prev_length-1;
+            s->lookahead -= s->prev_length - 1;
             s->prev_length -= 2;
             do {
                 if (++s->strstart <= max_insert) {
@@ -2063,8 +2068,8 @@ local block_state deflate_slow(
              * single literal. If there was a match but the current match
              * is longer, truncate the previous match to a single literal.
              */
-            Tracevv((stderr,"%c", s->window[s->strstart-1]));
-            _tr_tally_lit(s, s->window[s->strstart-1], bflush);
+            Tracevv((stderr,"%c", s->window[s->strstart - 1]));
+            _tr_tally_lit(s, s->window[s->strstart - 1], bflush);
             if (bflush) {
                 FLUSH_BLOCK_ONLY(s, 0);
             }
@@ -2082,8 +2087,8 @@ local block_state deflate_slow(
     }
     Assert (flush != Z_NO_FLUSH, "no flush?");
     if (s->match_available) {
-        Tracevv((stderr,"%c", s->window[s->strstart-1]));
-        _tr_tally_lit(s, s->window[s->strstart-1], bflush);
+        Tracevv((stderr,"%c", s->window[s->strstart - 1]));
+        _tr_tally_lit(s, s->window[s->strstart - 1], bflush);
         s->match_available = 0;
     }
     s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
@@ -2140,7 +2145,8 @@ local block_state deflate_rle(
                 if (s->match_length > s->lookahead)
                     s->match_length = s->lookahead;
             }
-            Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
+            Assert(scan <= s->window + (uInt)(s->window_size - 1),
+                   "wild scan");
         }
 
         /* Emit match if have run of MIN_MATCH or longer, else emit literal */
@@ -2155,7 +2161,7 @@ local block_state deflate_rle(
         } else {
             /* No match, output a literal byte */
             Tracevv((stderr,"%c", s->window[s->strstart]));
-            _tr_tally_lit (s, s->window[s->strstart], bflush);
+            _tr_tally_lit(s, s->window[s->strstart], bflush);
             s->lookahead--;
             s->strstart++;
         }
@@ -2195,7 +2201,7 @@ local block_state deflate_huff(
         /* Output a literal byte */
         s->match_length = 0;
         Tracevv((stderr,"%c", s->window[s->strstart]));
-        _tr_tally_lit (s, s->window[s->strstart], bflush);
+        _tr_tally_lit(s, s->window[s->strstart], bflush);
         s->lookahead--;
         s->strstart++;
         if (bflush) FLUSH_BLOCK(s, 0);
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h,v
diff -u -p -a -u -p -r1.9 deflate.h
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h	15 Feb 2023 01:36:15 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/deflate.h	21 Feb 2024 15:47:00 -0000
@@ -329,8 +329,8 @@ void ZLIB_INTERNAL _tr_stored_block OF((
 # define _tr_tally_dist(s, distance, length, flush) \
   { uch len = (uch)(length); \
     ush dist = (ush)(distance); \
-    s->sym_buf[s->sym_next++] = dist; \
-    s->sym_buf[s->sym_next++] = dist >> 8; \
+    s->sym_buf[s->sym_next++] = (uch)dist; \
+    s->sym_buf[s->sym_next++] = (uch)(dist >> 8); \
     s->sym_buf[s->sym_next++] = len; \
     dist--; \
     s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/infback.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/infback.c,v
diff -u -p -a -u -p -r1.1.1.6 infback.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/infback.c	15 Feb 2023 01:32:40 -0000	1.1.1.6
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/infback.c	21 Feb 2024 15:47:00 -0000
@@ -66,6 +66,7 @@ int ZEXPORT inflateBackInit_(
     state->window = window;
     state->wnext = 0;
     state->whave = 0;
+    state->sane = 1;
     return Z_OK;
 }
 
@@ -605,25 +606,27 @@ int ZEXPORT inflateBack(
             break;
 
         case DONE:
-            /* inflate stream terminated properly -- write leftover output */
+            /* inflate stream terminated properly */
             ret = Z_STREAM_END;
-            if (left < state->wsize) {
-                if (out(out_desc, state->window, state->wsize - left))
-                    ret = Z_BUF_ERROR;
-            }
             goto inf_leave;
 
         case BAD:
             ret = Z_DATA_ERROR;
             goto inf_leave;
 
-        default:                /* can't happen, but makes compilers happy */
+        default:
+            /* can't happen, but makes compilers happy */
             ret = Z_STREAM_ERROR;
             goto inf_leave;
         }
 
-    /* Return unused input */
+    /* Write leftover output and return unused input */
   inf_leave:
+    if (left < state->wsize) {
+        if (out(out_desc, state->window, state->wsize - left) &&
+            ret == Z_STREAM_END)
+            ret = Z_BUF_ERROR;
+    }
     strm->next_in = next;
     strm->avail_in = have;
     return ret;
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c,v
diff -u -p -a -u -p -r1.5 inflate.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c	15 Feb 2023 01:36:15 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inflate.c	21 Feb 2024 15:47:00 -0000
@@ -168,6 +168,8 @@ int ZEXPORT inflateReset2(
 
     /* extract wrap request from windowBits parameter */
     if (windowBits < 0) {
+        if (windowBits < -15)
+            return Z_STREAM_ERROR;
         wrap = 0;
         windowBits = -windowBits;
     }
@@ -764,8 +766,9 @@ int ZEXPORT inflate(
                 if (copy > have) copy = have;
                 if (copy) {
                     if (state->head != Z_NULL &&
-                        state->head->extra != Z_NULL) {
-                        len = state->head->extra_len - state->length;
+                        state->head->extra != Z_NULL &&
+                        (len = state->head->extra_len - state->length) <
+                            state->head->extra_max) {
                         zmemcpy(state->head->extra + len, next,
                                 len + copy > state->head->extra_max ?
                                 state->head->extra_max - len : copy);
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.c,v
diff -u -p -a -u -p -r1.1.1.6 inftrees.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.c	15 Feb 2023 01:32:40 -0000	1.1.1.6
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.c	21 Feb 2024 15:47:00 -0000
@@ -9,7 +9,7 @@
 #define MAXBITS 15
 
 const char inflate_copyright[] =
-   " inflate 1.2.12 Copyright 1995-2022 Mark Adler ";
+   " inflate 1.2.13 Copyright 1995-2022 Mark Adler ";
 /*
   If you use the zlib library in a product, an acknowledgment is welcome
   in the documentation of your product. If for some reason you cannot
@@ -62,7 +62,7 @@ int ZLIB_INTERNAL inflate_table(
         35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
     static const unsigned short lext[31] = { /* Length codes 257..285 extra */
         16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
-        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 199, 202};
+        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 194, 65};
     static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
         1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
         257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.h,v
diff -u -p -a -u -p -r1.1.1.2 inftrees.h
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.h	25 Mar 2013 20:06:49 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/inftrees.h	21 Feb 2024 15:47:00 -0000
@@ -38,7 +38,7 @@ typedef struct {
 /* Maximum size of the dynamic table.  The maximum number of code structures is
    1444, which is the sum of 852 for literal/length codes and 592 for distance
    codes.  These values were found by exhaustive searches using the program
-   examples/enough.c found in the zlib distribtution.  The arguments to that
+   examples/enough.c found in the zlib distribution.  The arguments to that
    program are the number of symbols, the initial root table size, and the
    maximum bit length of a code.  "enough 286 9 15" for literal/length codes
    returns returns 852, and "enough 30 6 15" for distance codes returns 592.
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c,v
diff -u -p -a -u -p -r1.9 trees.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c	15 Feb 2023 01:36:15 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/trees.c	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,4 @@
+
 /* trees.c -- output deflated data using Huffman coding
  * Copyright (C) 1995-2021 Jean-loup Gailly
  * detect_data_type() function provided freely by Cosmin Truta, 2006
@@ -193,7 +194,7 @@ local void send_bits(
     s->bits_sent += (ulg)length;
 
     /* If not enough room in bi_buf, use (valid) bits from bi_buf and
-     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
+     * (16 - bi_valid) bits from value, leaving (width - (16 - bi_valid))
      * unused bits in value.
      */
     if (s->bi_valid > (int)Buf_size - length) {
@@ -256,7 +257,7 @@ local void tr_static_init()
     length = 0;
     for (code = 0; code < LENGTH_CODES-1; code++) {
         base_length[code] = length;
-        for (n = 0; n < (1<<extra_lbits[code]); n++) {
+        for (n = 0; n < (1 << extra_lbits[code]); n++) {
             _length_code[length++] = (uch)code;
         }
     }
@@ -265,13 +266,13 @@ local void tr_static_init()
      * in two different ways: code 284 + 5 bits or code 285, so we
      * overwrite length_code[255] to use the best encoding:
      */
-    _length_code[length-1] = (uch)code;
+    _length_code[length - 1] = (uch)code;
 
     /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
     dist = 0;
     for (code = 0 ; code < 16; code++) {
         base_dist[code] = dist;
-        for (n = 0; n < (1<<extra_dbits[code]); n++) {
+        for (n = 0; n < (1 << extra_dbits[code]); n++) {
             _dist_code[dist++] = (uch)code;
         }
     }
@@ -279,11 +280,11 @@ local void tr_static_init()
     dist >>= 7; /* from now on, all distances are divided by 128 */
     for ( ; code < D_CODES; code++) {
         base_dist[code] = dist << 7;
-        for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
+        for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
             _dist_code[256 + dist++] = (uch)code;
         }
     }
-    Assert (dist == 256, "tr_static_init: 256+dist != 512");
+    Assert (dist == 256, "tr_static_init: 256 + dist != 512");
 
     /* Construct the codes of the static literal tree */
     for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
@@ -312,7 +313,7 @@ local void tr_static_init()
 }
 
 /* ===========================================================================
- * Genererate the file trees.h describing the static trees.
+ * Generate the file trees.h describing the static trees.
  */
 #ifdef GEN_TREES_H
 #  ifndef ZLIB_DEBUG
@@ -321,7 +322,7 @@ local void tr_static_init()
 
 #  define SEPARATOR(i, last, width) \
       ((i) == (last)? "\n};\n\n" :    \
-       ((i) % (width) == (width)-1 ? ",\n" : ", "))
+       ((i) % (width) == (width) - 1 ? ",\n" : ", "))
 
 void gen_trees_header()
 {
@@ -458,7 +459,7 @@ local void pqdownheap(
     while (j <= s->heap_len) {
         /* Set j to the smallest of the two sons: */
         if (j < s->heap_len &&
-            smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
+            smaller(tree, s->heap[j + 1], s->heap[j], s->depth)) {
             j++;
         }
         /* Exit if v is smaller than both sons */
@@ -507,7 +508,7 @@ local void gen_bitlen(
      */
     tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
 
-    for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
+    for (h = s->heap_max + 1; h < HEAP_SIZE; h++) {
         n = s->heap[h];
         bits = tree[tree[n].Dad].Len + 1;
         if (bits > max_length) bits = max_length, overflow++;
@@ -518,7 +519,7 @@ local void gen_bitlen(
 
         s->bl_count[bits]++;
         xbits = 0;
-        if (n >= base) xbits = extra[n-base];
+        if (n >= base) xbits = extra[n - base];
         f = tree[n].Freq;
         s->opt_len += (ulg)f * (unsigned)(bits + xbits);
         if (stree) s->static_len += (ulg)f * (unsigned)(stree[n].Len + xbits);
@@ -530,10 +531,10 @@ local void gen_bitlen(
 
     /* Find the first bit length which could increase: */
     do {
-        bits = max_length-1;
+        bits = max_length - 1;
         while (s->bl_count[bits] == 0) bits--;
-        s->bl_count[bits]--;      /* move one leaf down the tree */
-        s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
+        s->bl_count[bits]--;        /* move one leaf down the tree */
+        s->bl_count[bits + 1] += 2; /* move one overflow item as its brother */
         s->bl_count[max_length]--;
         /* The brother of the overflow item also moves one step up,
          * but this does not affect bl_count[max_length]
@@ -583,13 +584,13 @@ local void gen_codes (
      * without bit reversal.
      */
     for (bits = 1; bits <= MAX_BITS; bits++) {
-        code = (code + bl_count[bits-1]) << 1;
+        code = (code + bl_count[bits - 1]) << 1;
         next_code[bits] = (ush)code;
     }
     /* Check that the bit counts in bl_count are consistent. The last code
      * must be all ones.
      */
-    Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
+    Assert (code + bl_count[MAX_BITS] - 1 == (1 << MAX_BITS) - 1,
             "inconsistent bit counts");
     Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
 
@@ -600,7 +601,7 @@ local void gen_codes (
         tree[n].Code = (ush)bi_reverse(next_code[len]++, len);
 
         Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
-             n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
+            n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len] - 1));
     }
 }
 
@@ -624,7 +625,7 @@ local void build_tree(
     int node;          /* new node being created */
 
     /* Construct the initial heap, with least frequent element in
-     * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
+     * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
      * heap[0] is not used.
      */
     s->heap_len = 0, s->heap_max = HEAP_SIZE;
@@ -652,7 +653,7 @@ local void build_tree(
     }
     desc->max_code = max_code;
 
-    /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
+    /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
      * establish sub-heaps of increasing lengths:
      */
     for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
@@ -714,10 +715,10 @@ local void scan_tree (
     int min_count = 4;         /* min repeat count */
 
     if (nextlen == 0) max_count = 138, min_count = 3;
-    tree[max_code+1].Len = (ush)0xffff; /* guard */
+    tree[max_code + 1].Len = (ush)0xffff; /* guard */
 
     for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
+        curlen = nextlen; nextlen = tree[n + 1].Len;
         if (++count < max_count && curlen == nextlen) {
             continue;
         } else if (count < min_count) {
@@ -758,11 +759,11 @@ local void send_tree (
     int max_count = 7;         /* max repeat count */
     int min_count = 4;         /* min repeat count */
 
-    /* tree[max_code+1].Len = -1; */  /* guard already set */
+    /* tree[max_code + 1].Len = -1; */  /* guard already set */
     if (nextlen == 0) max_count = 138, min_count = 3;
 
     for (n = 0; n <= max_code; n++) {
-        curlen = nextlen; nextlen = tree[n+1].Len;
+        curlen = nextlen; nextlen = tree[n + 1].Len;
         if (++count < max_count && curlen == nextlen) {
             continue;
         } else if (count < min_count) {
@@ -773,13 +774,13 @@ local void send_tree (
                 send_code(s, curlen, s->bl_tree); count--;
             }
             Assert(count >= 3 && count <= 6, " 3_6?");
-            send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
+            send_code(s, REP_3_6, s->bl_tree); send_bits(s, count - 3, 2);
 
         } else if (count <= 10) {
-            send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
+            send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count - 3, 3);
 
         } else {
-            send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
+            send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count - 11, 7);
         }
         count = 0; prevlen = curlen;
         if (nextlen == 0) {
@@ -807,8 +808,8 @@ local int build_bl_tree(
 
     /* Build the bit length tree: */
     build_tree(s, (tree_desc *)(&(s->bl_desc)));
-    /* opt_len now includes the length of the tree representations, except
-     * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
+    /* opt_len now includes the length of the tree representations, except the
+     * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
      */
 
     /* Determine the number of bit length codes to send. The pkzip format
@@ -819,7 +820,7 @@ local int build_bl_tree(
         if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
     }
     /* Update opt_len to include the bit length tree and counts */
-    s->opt_len += 3*((ulg)max_blindex+1) + 5+5+4;
+    s->opt_len += 3*((ulg)max_blindex + 1) + 5 + 5 + 4;
     Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
             s->opt_len, s->static_len));
 
@@ -843,19 +844,19 @@ local void send_all_trees(
     Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
             "too many codes");
     Tracev((stderr, "\nbl counts: "));
-    send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
-    send_bits(s, dcodes-1,   5);
-    send_bits(s, blcodes-4,  4); /* not -3 as stated in appnote.txt */
+    send_bits(s, lcodes - 257, 5);  /* not +255 as stated in appnote.txt */
+    send_bits(s, dcodes - 1,   5);
+    send_bits(s, blcodes - 4,  4);  /* not -3 as stated in appnote.txt */
     for (rank = 0; rank < blcodes; rank++) {
         Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
         send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
     }
     Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
 
-    send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
+    send_tree(s, (ct_data *)s->dyn_ltree, lcodes - 1);  /* literal tree */
     Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
 
-    send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
+    send_tree(s, (ct_data *)s->dyn_dtree, dcodes - 1);  /* distance tree */
     Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
 }
 
@@ -868,7 +869,7 @@ void ZLIB_INTERNAL _tr_stored_block(
     ulg stored_len,
     int last)
 {
-    send_bits(s, (STORED_BLOCK<<1)+last, 3);    /* send block type */
+    send_bits(s, (STORED_BLOCK<<1) + last, 3);  /* send block type */
     bi_windup(s);        /* align on byte boundary */
     put_short(s, (ush)stored_len);
     put_short(s, (ush)~stored_len);
@@ -879,7 +880,7 @@ void ZLIB_INTERNAL _tr_stored_block(
     s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
     s->compressed_len += (stored_len + 4) << 3;
     s->bits_sent += 2*16;
-    s->bits_sent += stored_len<<3;
+    s->bits_sent += stored_len << 3;
 #endif
 }
 
@@ -945,14 +946,17 @@ void ZLIB_INTERNAL _tr_flush_block(
         max_blindex = build_bl_tree(s);
 
         /* Determine the best encoding. Compute the block lengths in bytes. */
-        opt_lenb = (s->opt_len+3+7)>>3;
-        static_lenb = (s->static_len+3+7)>>3;
+        opt_lenb = (s->opt_len + 3 + 7) >> 3;
+        static_lenb = (s->static_len + 3 + 7) >> 3;
 
         Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
                 opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
                 s->sym_next / 3));
 
-        if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
+#ifndef FORCE_STATIC
+        if (static_lenb <= opt_lenb || s->strategy == Z_FIXED)
+#endif
+            opt_lenb = static_lenb;
 
     } else {
         Assert(buf != (char*)0, "lost buf");
@@ -962,7 +966,7 @@ void ZLIB_INTERNAL _tr_flush_block(
 #ifdef FORCE_STORED
     if (buf != (char*)0) { /* force stored block */
 #else
-    if (stored_len+4 <= opt_lenb && buf != (char*)0) {
+    if (stored_len + 4 <= opt_lenb && buf != (char*)0) {
                        /* 4: two words for the lengths */
 #endif
         /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
@@ -973,21 +977,17 @@ void ZLIB_INTERNAL _tr_flush_block(
          */
         _tr_stored_block(s, buf, stored_len, last);
 
-#ifdef FORCE_STATIC
-    } else if (static_lenb >= 0) { /* force static trees */
-#else
-    } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
-#endif
-        send_bits(s, (STATIC_TREES<<1)+last, 3);
+    } else if (static_lenb == opt_lenb) {
+        send_bits(s, (STATIC_TREES<<1) + last, 3);
         compress_block(s, (const ct_data *)static_ltree,
                        (const ct_data *)static_dtree);
 #ifdef ZLIB_DEBUG
         s->compressed_len += 3 + s->static_len;
 #endif
     } else {
-        send_bits(s, (DYN_TREES<<1)+last, 3);
-        send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
-                       max_blindex+1);
+        send_bits(s, (DYN_TREES<<1) + last, 3);
+        send_all_trees(s, s->l_desc.max_code + 1, s->d_desc.max_code + 1,
+                       max_blindex + 1);
         compress_block(s, (const ct_data *)s->dyn_ltree,
                        (const ct_data *)s->dyn_dtree);
 #ifdef ZLIB_DEBUG
@@ -1006,8 +1006,8 @@ void ZLIB_INTERNAL _tr_flush_block(
         s->compressed_len += 7;  /* align on byte boundary */
 #endif
     }
-    Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
-           s->compressed_len-7*last));
+    Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len >> 3,
+           s->compressed_len - 7*last));
 }
 
 /* ===========================================================================
@@ -1019,9 +1019,9 @@ int ZLIB_INTERNAL _tr_tally (
     unsigned dist,
     unsigned lc)
 {
-    s->sym_buf[s->sym_next++] = dist;
-    s->sym_buf[s->sym_next++] = dist >> 8;
-    s->sym_buf[s->sym_next++] = lc;
+    s->sym_buf[s->sym_next++] = (uch)dist;
+    s->sym_buf[s->sym_next++] = (uch)(dist >> 8);
+    s->sym_buf[s->sym_next++] = (uch)lc;
     if (dist == 0) {
         /* lc is the unmatched char */
         s->dyn_ltree[lc].Freq++;
@@ -1033,7 +1033,7 @@ int ZLIB_INTERNAL _tr_tally (
                (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
                (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
 
-        s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
+        s->dyn_ltree[_length_code[lc] + LITERALS + 1].Freq++;
         s->dyn_dtree[d_code(dist)].Freq++;
     }
     return (s->sym_next == s->sym_end);
@@ -1063,7 +1063,7 @@ local void compress_block(
         } else {
             /* Here, lc is the match length - MIN_MATCH */
             code = _length_code[lc];
-            send_code(s, code+LITERALS+1, ltree); /* send the length code */
+            send_code(s, code + LITERALS + 1, ltree);   /* send length code */
             extra = extra_lbits[code];
             if (extra != 0) {
                 lc -= base_length[code];
@@ -1140,7 +1140,7 @@ local unsigned bi_reverse(
     unsigned code,
     int len)
 {
-    register unsigned res = 0;
+    unsigned res = 0;
     do {
         res |= code & 1;
         code >>= 1, res <<= 1;
@@ -1179,6 +1179,6 @@ local void bi_windup(
     s->bi_buf = 0;
     s->bi_valid = 0;
 #ifdef ZLIB_DEBUG
-    s->bits_sent = (s->bits_sent+7) & ~7;
+    s->bits_sent = (s->bits_sent + 7) & ~7;
 #endif
 }
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h,v
diff -u -p -a -u -p -r1.7 zconf.h
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h	15 Feb 2023 01:36:15 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zconf.h	21 Feb 2024 15:47:00 -0000
@@ -349,6 +349,9 @@
 #    ifdef FAR
 #      undef FAR
 #    endif
+#    ifndef WIN32_LEAN_AND_MEAN
+#      define WIN32_LEAN_AND_MEAN
+#    endif
 #    include <windows.h>
      /* No need for _export, use ZLIB.DEF instead. */
      /* For complete Windows compatibility, use WINAPI, not __stdcall. */
@@ -467,11 +470,18 @@ typedef uLong FAR uLongf;
 #  undef _LARGEFILE64_SOURCE
 #endif
 
-#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
-#  define Z_HAVE_UNISTD_H
+#ifndef Z_HAVE_UNISTD_H
+#  ifdef __WATCOMC__
+#    define Z_HAVE_UNISTD_H
+#  endif
+#endif
+#ifndef Z_HAVE_UNISTD_H
+#  if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32)
+#    define Z_HAVE_UNISTD_H
+#  endif
 #endif
 #ifndef Z_SOLO
-#  if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
+#  if defined(Z_HAVE_UNISTD_H)
 #    include <unistd.h>         /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
 #    ifdef VMS
 #      include <unixio.h>       /* for off_t */
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zlib.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zlib.h,v
diff -u -p -a -u -p -r1.1.1.6 zlib.h
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zlib.h	15 Feb 2023 01:32:40 -0000	1.1.1.6
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zlib.h	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 /* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.2.12, March 11th, 2022
+  version 1.2.13, October 13th, 2022
 
   Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
 
@@ -37,11 +37,11 @@
 extern "C" {
 #endif
 
-#define ZLIB_VERSION "1.2.12"
-#define ZLIB_VERNUM 0x12c0
+#define ZLIB_VERSION "1.2.13"
+#define ZLIB_VERNUM 0x12d0
 #define ZLIB_VER_MAJOR 1
 #define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 12
+#define ZLIB_VER_REVISION 13
 #define ZLIB_VER_SUBREVISION 0
 
 /*
@@ -276,7 +276,7 @@ ZEXTERN int ZEXPORT deflate OF((z_stream
   == 0), or after each call of deflate().  If deflate returns Z_OK and with
   zero avail_out, it must be called again after making room in the output
   buffer because there might be more output pending. See deflatePending(),
-  which can be used if desired to determine whether or not there is more ouput
+  which can be used if desired to determine whether or not there is more output
   in that case.
 
     Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
@@ -660,7 +660,7 @@ ZEXTERN int ZEXPORT deflateGetDictionary
    to dictionary.  dictionary must have enough space, where 32768 bytes is
    always enough.  If deflateGetDictionary() is called with dictionary equal to
    Z_NULL, then only the dictionary length is returned, and nothing is copied.
-   Similary, if dictLength is Z_NULL, then it is not set.
+   Similarly, if dictLength is Z_NULL, then it is not set.
 
      deflateGetDictionary() may return a length less than the window size, even
    when more than the window size in input has been provided. It may return up
@@ -915,7 +915,7 @@ ZEXTERN int ZEXPORT inflateGetDictionary
    to dictionary.  dictionary must have enough space, where 32768 bytes is
    always enough.  If inflateGetDictionary() is called with dictionary equal to
    Z_NULL, then only the dictionary length is returned, and nothing is copied.
-   Similary, if dictLength is Z_NULL, then it is not set.
+   Similarly, if dictLength is Z_NULL, then it is not set.
 
      inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
    stream state is inconsistent.
@@ -1437,12 +1437,12 @@ ZEXTERN z_size_t ZEXPORT gzfread OF((voi
 
      In the event that the end of file is reached and only a partial item is
    available at the end, i.e. the remaining uncompressed data length is not a
-   multiple of size, then the final partial item is nevetheless read into buf
+   multiple of size, then the final partial item is nevertheless read into buf
    and the end-of-file flag is set.  The length of the partial item read is not
    provided, but could be inferred from the result of gztell().  This behavior
    is the same as the behavior of fread() implementations in common libraries,
    but it prevents the direct use of gzfread() to read a concurrently written
-   file, reseting and retrying on end-of-file, when size is not 1.
+   file, resetting and retrying on end-of-file, when size is not 1.
 */
 
 ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len));
@@ -1913,7 +1913,7 @@ ZEXTERN int            ZEXPORT inflateSy
 ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table    OF((void));
 ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
 ZEXTERN int            ZEXPORT inflateValidate OF((z_streamp, int));
-ZEXTERN unsigned long  ZEXPORT inflateCodesUsed OF ((z_streamp));
+ZEXTERN unsigned long  ZEXPORT inflateCodesUsed OF((z_streamp));
 ZEXTERN int            ZEXPORT inflateResetKeep OF((z_streamp));
 ZEXTERN int            ZEXPORT deflateResetKeep OF((z_streamp));
 #if defined(_WIN32) && !defined(Z_SOLO)
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c,v
diff -u -p -a -u -p -r1.7 zutil.c
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c	15 Feb 2023 01:36:16 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.c	21 Feb 2024 15:47:00 -0000
@@ -61,9 +61,11 @@ uLong ZEXPORT zlibCompileFlags()
 #ifdef ZLIB_DEBUG
     flags += 1 << 8;
 #endif
+    /*
 #if defined(ASMV) || defined(ASMINF)
     flags += 1 << 9;
 #endif
+     */
 #ifdef ZLIB_WINAPI
     flags += 1 << 10;
 #endif
@@ -214,7 +216,7 @@ local ptr_table table[MAX_PTR];
  * a protected system like OS/2. Use Microsoft C instead.
  */
 
-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
+voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size)
 {
     voidpf buf;
     ulg bsize = (ulg)items*size;
@@ -240,7 +242,7 @@ voidpf ZLIB_INTERNAL zcalloc (voidpf opa
     return buf;
 }
 
-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
+void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
 {
     int n;
 
@@ -277,13 +279,13 @@ void ZLIB_INTERNAL zcfree (voidpf opaque
 #  define _hfree   hfree
 #endif
 
-voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
+voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, uInt items, uInt size)
 {
     (void)opaque;
     return _halloc((long)items, size);
 }
 
-void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
+void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
 {
     (void)opaque;
     _hfree(ptr);
Index: gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h,v
diff -u -p -a -u -p -r1.7 zutil.h
--- gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h	15 Feb 2023 01:36:16 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Compress-Raw-Zlib/zlib-src/zutil.h	21 Feb 2024 15:47:00 -0000
@@ -197,6 +197,7 @@ extern z_const char * const z_errmsg[10]
     (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
     ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
+    ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t));
 #endif
 
         /* common defaults */
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm,v
diff -u -p -a -u -p -r1.5 V.pm
--- gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm	15 Feb 2023 01:36:16 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/V.pm	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@ use warnings;
 use Config;
 use Exporter;
 use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION     = "0.33";
+$VERSION     = "0.36";
 @ISA         = qw( Exporter );
 @EXPORT_OK   = qw( plv2hash summary myconfig signature );
 %EXPORT_TAGS = (
@@ -29,6 +29,8 @@ my %BTD = map {( $_ => 0 )} qw(
     DEBUGGING
     NO_HASH_SEED
     NO_MATHOMS
+    NO_PERL_INTERNAL_RAND_SEED
+    NO_PERL_RAND_SEED
     NO_TAINT_SUPPORT
     PERL_BOOL_AS_CHAR
     PERL_COPY_ON_WRITE
@@ -57,9 +59,11 @@ my %BTD = map {( $_ => 0 )} qw(
     PERL_PERTURB_KEYS_DISABLED
     PERL_PERTURB_KEYS_RANDOM
     PERL_PRESERVE_IVUV
+    PERL_RC_STACK
     PERL_RELOCATABLE_INCPUSH
     PERL_USE_DEVEL
     PERL_USE_SAFE_PUTENV
+    PERL_USE_UNSHARED_KEYS_IN_LARGE_HASHES
     SILENT_NO_TAINT_SUPPORT
     UNLINK_ALL_VERSIONS
     USE_ATTRIBUTES_FOR_PERLIO
@@ -81,10 +85,13 @@ my %BTD = map {( $_ => 0 )} qw(
     HAVE_INTERP_INTERN
     MULTIPLICITY
     MYMALLOC
+    NO_HASH_SEED
     PERL_DEBUG_READONLY_COW
     PERL_DEBUG_READONLY_OPS
     PERL_GLOBAL_STRUCT
     PERL_GLOBAL_STRUCT_PRIVATE
+    PERL_HASH_NO_SBOX32
+    PERL_HASH_USE_SBOX32
     PERL_IMPLICIT_CONTEXT
     PERL_IMPLICIT_SYS
     PERLIO_LAYERS
@@ -263,7 +270,10 @@ sub plv2hash {
 	$config{$k} = $v;
 	}
 
-    if (my %kv = ($pv =~ m{\b
+    my %kv;
+    if ($pv =~ m{\S,? (?:osvers|archname)=}) { # attr is not the first on the line
+	# up to and including 5.24, a line could have multiple kv pairs
+	%kv = ($pv =~ m{\b
 	    (\w+)		# key
 	    \s*=		# assign
 	    ( '\s*[^']*?\s*'	# quoted value
@@ -271,17 +281,27 @@ sub plv2hash {
 	    | \S+		# unquoted value
 	    | \s*\n		# empty
 	    )
-	    (?:,?\s+|\s*\n)?	# separator (5.8.x reports did not have a ','
-	    }gx)) {		# between every kv pair
+	    (?:,?\s+|\s*\n)?	# optional separator (5.8.x reports did
+	    }gx);		# not have a ',' between every kv pair)
+	}
+    else {
+	# as of 5.25, each kv pair is listed on its own line
+	%kv = ($pv =~ m{^
+	    \s+
+	    (\w+)		# key
+	    \s*=\s*		# assign
+	    (.*?)		# value
+	    \s*,?\s*$
+	    }gmx);
+	}
 
-	while (my ($k, $v) = each %kv) {
-	    $k =~ s{\s+$}	{};
-	    $v =~ s{\s*\n\z}	{};
-	    $v =~ s{,$}		{};
-	    $v =~ m{^'(.*)'$} and $v = $1;
-	    $v =~ s{\s+$}	{};
-	    $config{$k} = $v;
-	    }
+    while (my ($k, $v) = each %kv) {
+	$k =~ s{\s+$}		{};
+	$v =~ s{\s*\n\z}	{};
+	$v =~ s{,$}		{};
+	$v =~ m{^'(.*)'$} and $v = $1;
+	$v =~ s{\s+$}	{};
+	$config{$k} = $v;
 	}
 
     my $build = { %empty_build };
@@ -554,7 +574,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2009-2020 H.Merijn Brand
+Copyright (C) 2009-2023 H.Merijn Brand
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t,v
diff -u -p -a -u -p -r1.4 20_plv56.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/20_plv56.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 100;
+    my $tests = 106;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -39,7 +39,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "9dc187182be100c1713f210a8c6d9f45";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 __END__
 Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration:
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t,v
diff -u -p -a -u -p -r1.4 21_plv58.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/21_plv58.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 100;
+    my $tests = 106;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -42,7 +42,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "df48dce1adaaf63855d8acd455c51818";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 __END__
 Summary of my perl5 (revision 5 version 8 subversion 9) configuration:
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t,v
diff -u -p -a -u -p -r1.4 22_plv510.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/22_plv510.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 99;
+    my $tests = 105;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -32,7 +32,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "ce0a7871dfddbbed0a6c685c0f52dbf9";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 __END__
 Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t,v
diff -u -p -a -u -p -r1.4 23_plv512.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/23_plv512.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 101;
+    my $tests = 107;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -42,7 +42,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "a2c38153cc47d340bc140d0bfe294afb";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 __END__
 Summary of my perl5 (revision 5 version 12 subversion 2) configuration:
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t,v
diff -u -p -a -u -p -r1.4 24_plv514.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/24_plv514.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 101;
+    my $tests = 107;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -43,7 +43,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "778815a670c0c454738aedf0c88930ba";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 __END__
 Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t,v
diff -u -p -a -u -p -r1.4 25_plv516.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv516.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 100;
+    my $tests = 106;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -43,7 +43,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "7b00cf3b306d96fa802892e6ad4b070f";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 __END__
 Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t,v
diff -u -p -a -u -p -r1.4 25_plv5162.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/25_plv5162.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 158;
+    my $tests = 164;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -45,7 +45,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "2917ca2a97b6db1ab8fb08798f53c0bb";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [
     "/Library/Perl/Updates/<version> comes before system perl directories",
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t,v
diff -u -p -a -u -p -r1.4 26_plv518.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv518.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 119;
+    my $tests = 125;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -43,7 +43,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "8f46b07a7775e6a92347d4cd564b8f03";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t,v
diff -u -p -a -u -p -r1.4 26_plv5182.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/26_plv5182.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 119;
+    my $tests = 125;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -43,7 +43,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "874325856acfea3dab7e7c944660f398";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t,v
diff -u -p -a -u -p -r1.4 27_plv5200.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5200.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 119;
+    my $tests = 125;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -46,7 +46,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "3e7b4513cd80c6ef00fcd77e5e16f8b4";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5202.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5202.t,v
diff -u -p -a -u -p -r1.3 27_plv5202.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5202.t	30 Dec 2019 02:13:43 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/27_plv5202.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 120;
+    my $tests = 126;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -46,7 +46,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "9f954ebc2be7b1d7e151ab28dbdf7062";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv5220.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv5220.t,v
diff -u -p -a -u -p -r1.3 28_plv5220.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv5220.t	30 Dec 2019 02:13:43 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv5220.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 120;
+    my $tests = 126;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -46,7 +46,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "ddcc2d51e43bf18f5234ba66529068ef";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv52201w.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv52201w.t,v
diff -u -p -a -u -p -r1.3 28_plv52201w.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv52201w.t	30 Dec 2019 02:13:43 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/28_plv52201w.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 120;
+    my $tests = 126;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -46,7 +46,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "dfb32b8299b66e8bdb2712934f700d94";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/29_plv5235w.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/29_plv5235w.t,v
diff -u -p -a -u -p -r1.1.1.2 29_plv5235w.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/29_plv5235w.t	30 Dec 2019 02:10:26 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/29_plv5235w.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 120;
+    my $tests = 126;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -46,7 +46,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "bccd5d78dfebd48b89faf7f1fe711733";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/30_plv5240.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/30_plv5240.t,v
diff -u -p -a -u -p -r1.1.1.2 30_plv5240.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/30_plv5240.t	30 Dec 2019 02:10:26 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/30_plv5240.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "3dffae79f6d2c74073f0d64646709101";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/31_plv52511.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/31_plv52511.t,v
diff -u -p -a -u -p -r1.1.1.2 31_plv52511.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/31_plv52511.t	30 Dec 2019 02:10:26 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/31_plv52511.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "f0e463400e40ca35b67cec3834b5b9b7";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches},
     [ "SMOKEaa9ac6cf00899a6f55881d4ca6c1214215dc83ee" ], "Local patches");
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/32_plv5261rc1.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/32_plv5261rc1.t,v
diff -u -p -a -u -p -r1.1.1.2 32_plv5261rc1.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/32_plv5261rc1.t	30 Dec 2019 02:10:26 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/32_plv5261rc1.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "dd710670fec7d2e260414648dcc94e89";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [ "RC1" ], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/33_plv52711r.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/33_plv52711r.t,v
diff -u -p -a -u -p -r1.1.1.2 33_plv52711r.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/33_plv52711r.t	30 Dec 2019 02:10:26 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/33_plv52711r.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "bd9cf7a142ddbb434adea5b08eaefdc8";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "Local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/34_plv5280.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/34_plv5280.t,v
diff -u -p -a -u -p -r1.1.1.1 34_plv5280.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/34_plv5280.t	30 Dec 2019 02:10:26 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/34_plv5280.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -43,7 +43,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "4add7fd04b60c2048a46ff47087e6952";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [], "No local patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/35_plv52910g.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/35_plv52910g.t,v
diff -u -p -a -u -p -r1.1.1.1 35_plv52910g.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/35_plv52910g.t	15 Feb 2023 01:32:48 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/35_plv52910g.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -43,7 +43,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "8404b533829bd9752df7f662a710f993";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [
     "SMOKEdfba4714a9dc4c35123b4df0a5e1721ccb081d97" ], "No local patches");
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/36_plv5300.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/36_plv5300.t,v
diff -u -p -a -u -p -r1.1.1.1 36_plv5300.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/36_plv5300.t	15 Feb 2023 01:32:48 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/36_plv5300.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "b1138522685da4fff74f7b1118128d02";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [ ], "No patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/37_plv53111qm.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/37_plv53111qm.t,v
diff -u -p -a -u -p -r1.1.1.1 37_plv53111qm.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/37_plv53111qm.t	15 Feb 2023 01:32:48 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/37_plv53111qm.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "146e648c6239f623b8a8242fc8b5759f";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [ ], "No patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/38_plv5320tld.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Config-Perl-V/t/38_plv5320tld.t,v
diff -u -p -a -u -p -r1.1.1.1 38_plv5320tld.t
--- gnu/usr.bin/perl/cpan/Config-Perl-V/t/38_plv5320tld.t	15 Feb 2023 01:32:48 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/38_plv5320tld.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 128;
+    my $tests = 134;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -44,7 +44,11 @@ foreach my $o (sort keys %$opt) {
 eval { require Digest::MD5; };
 my $md5 = $@ ? "0" x 32 : "901df8463a7bda6075bd75539214e75e";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
-is ($sig, $md5, "MD5");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
 
 is_deeply ($conf->{build}{patches}, [ ], "No patches");
 
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/39_plv5340tqm.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Config-Perl-V/t/39_plv5340tqm.t
diff -N gnu/usr.bin/perl/cpan/Config-Perl-V/t/39_plv5340tqm.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/39_plv5340tqm.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,181 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 134;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V qw( summary );
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jun 19 2021 15:51:32", "Build time");
+is ($conf->{config}{version}, "5.34.0", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_COPY_ON_WRITE
+	PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
+	PERL_OP_PARENT PERL_PRESERVE_IVUV USE_THREAD_SAFE_LOCALE
+	USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
+	USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC
+	USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API USE_QUADMATH
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "12cfb15586bf005d29ff4c7ce770aefe";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
+is_deeply ($conf->{build}{patches}, [ ], "No patches");
+
+my %check = (
+    alignbytes      => 16,
+    api_version     => 34,
+    bincompat5005   => undef,
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E -Wl,-rpath,/pro/lib/perl5/5.34.0/x86_64-linux-thread-multi-quadmath/CORE",
+    config_args     => "-Uversiononly -Dinc_version_list=none -Duse64bitall -Dusethreads -Duseithreads -Dusequadmath -Duseshrplib -des",
+    gccversion      => "7.5.0",
+    gnulibc_version => "2.26",
+    ivsize          => 8,
+    ivtype          => "long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector-strong",
+    ldflags         => "-L/pro/local/lib -fstack-protector-strong",
+    libc            => "libc-2.26.so",
+    lseektype       => "off_t",
+    osvers          => "5.3.18-lp152.78-preempt",
+    use64bitall     => "define",
+    use64bitint     => "define",
+    usemymalloc     => "n",
+    default_inc_excludes_dot
+		    => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+ok (my $info = summary ($conf), "A summary");
+ok (exists $info->{$_}, "Summary has $_") for qw( cc config_args usemymalloc default_inc_excludes_dot );
+is ($info->{default_inc_excludes_dot}, "define", "This build has . NOT in INC");
+
+__END__
+Summary of my perl5 (revision 5 version 34 subversion 0) configuration:
+
+  Platform:
+    osname=linux
+    osvers=5.3.18-lp152.78-preempt
+    archname=x86_64-linux-thread-multi-quadmath
+    uname='linux pc09 5.3.18-lp152.78-preempt #1 smp preempt tue jun 1 14:53:21 utc 2021 (556d823) x86_64 x86_64 x86_64 gnulinux '
+    config_args='-Uversiononly -Dinc_version_list=none -Duse64bitall -Dusethreads -Duseithreads -Dusequadmath -Duseshrplib -des'
+    hint=recommended
+    useposix=true
+    d_sigaction=define
+    useithreads=define
+    usemultiplicity=define
+    use64bitint=define
+    use64bitall=define
+    uselongdouble=undef
+    usemymalloc=n
+    default_inc_excludes_dot=define
+  Compiler:
+    cc='cc'
+    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+    optimize='-O2'
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
+    ccversion=''
+    gccversion='7.5.0'
+    gccosandvers=''
+    intsize=4
+    longsize=8
+    ptrsize=8
+    doublesize=8
+    byteorder=12345678
+    doublekind=3
+    d_longlong=define
+    longlongsize=8
+    d_longdbl=define
+    longdblsize=16
+    longdblkind=3
+    ivtype='long'
+    ivsize=8
+    nvtype='__float128'
+    nvsize=16
+    Off_t='off_t'
+    lseeksize=8
+    alignbytes=16
+    prototype=define
+  Linker and Libraries:
+    ld='cc'
+    ldflags ='-L/pro/local/lib -fstack-protector-strong'
+    libpth=/usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /pro/local/lib /lib64 /usr/lib64 /lib /usr/local/lib64
+    libs=-lpthread -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat -lquadmath
+    perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc -lquadmath
+    libc=libc-2.26.so
+    so=so
+    useshrplib=true
+    libperl=libperl.so
+    gnulibc_version='2.26'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs
+    dlext=so
+    d_dlsymun=undef
+    ccdlflags='-Wl,-E -Wl,-rpath,/pro/lib/perl5/5.34.0/x86_64-linux-thread-multi-quadmath/CORE'
+    cccdlflags='-fPIC'
+    lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector-strong'
+
+
+Characteristics of this binary (from libperl):
+  Compile-time options:
+    HAS_TIMES
+    MULTIPLICITY
+    PERLIO_LAYERS
+    PERL_COPY_ON_WRITE
+    PERL_DONT_CREATE_GVSV
+    PERL_IMPLICIT_CONTEXT
+    PERL_MALLOC_WRAP
+    PERL_OP_PARENT
+    PERL_PRESERVE_IVUV
+    USE_64_BIT_ALL
+    USE_64_BIT_INT
+    USE_ITHREADS
+    USE_LARGE_FILES
+    USE_LOCALE
+    USE_LOCALE_COLLATE
+    USE_LOCALE_CTYPE
+    USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
+    USE_PERLIO
+    USE_PERL_ATOF
+    USE_QUADMATH
+    USE_REENTRANT_API
+    USE_THREAD_SAFE_LOCALE
+  Built under linux
+  Compiled at Jun 19 2021 15:51:32
+  %ENV:
+    PERL6LIB="inst#/pro/3gl/CPAN/rakudo/install"
+  @INC:
+    lib
+    /pro/lib/perl5/site_perl/5.34.0/x86_64-linux-thread-multi-quadmath
+    /pro/lib/perl5/site_perl/5.34.0
+    /pro/lib/perl5/5.34.0/x86_64-linux-thread-multi-quadmath
+    /pro/lib/perl5/5.34.0
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/40_plv5358dnqm.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Config-Perl-V/t/40_plv5358dnqm.t
diff -N gnu/usr.bin/perl/cpan/Config-Perl-V/t/40_plv5358dnqm.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/40_plv5358dnqm.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,176 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 134;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V qw( summary );
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jan  1 2022 11:18:27", "Build time");
+is ($conf->{config}{version}, "5.35.8", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV
+	PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV PERL_USE_DEVEL
+	USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
+	USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC
+	USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF USE_QUADMATH
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "3a52d65d54ee1032f878b51fb20c8efd";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
+is_deeply ($conf->{build}{patches}, [ ], "No patches");
+
+my %check = (
+    alignbytes      => 16,
+    api_version     => 35,
+    bincompat5005   => undef,
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Dusedevel -Duse64bitall -Dusequadmath -Uuseperlio -des",
+    gccversion      => "11.2.1 20211124 [revision 7510c23c1ec53aa4a62705f0384079661342ff7b]",
+    gnulibc_version => "2.34",
+    ivsize          => 8,
+    ivtype          => "long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector-strong",
+    ldflags         => "-L/pro/local/lib -fstack-protector-strong",
+    libc            => "/lib/../lib64/libc.so.6",
+    lseektype       => "off_t",
+    osvers          => "5.15.8-1-default",
+    use64bitall     => "define",
+    use64bitint     => "define",
+    usemymalloc     => "n",
+    default_inc_excludes_dot
+		    => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+ok (my $info = summary ($conf), "A summary");
+ok (exists $info->{$_}, "Summary has $_") for qw( cc config_args usemymalloc default_inc_excludes_dot );
+is ($info->{default_inc_excludes_dot}, "define", "This build has . NOT in INC");
+
+__END__
+Summary of my perl5 (revision 5 version 35 subversion 8) configuration:
+  Snapshot of: 0ccfd062e2cfd32efe146d4c16faf3cae9e3cc84
+  Platform:
+    osname=linux
+    osvers=5.15.8-1-default
+    archname=x86_64-linux-quadmath
+    uname='linux lx09 5.15.8-1-default #1 smp wed dec 15 08:12:54 utc 2021 (0530e5c) x86_64 x86_64 x86_64 gnulinux '
+    config_args='-Dusedevel -Duse64bitall -Dusequadmath -Uuseperlio -des'
+    hint=recommended
+    useposix=true
+    d_sigaction=define
+    useithreads=undef
+    usemultiplicity=undef
+    use64bitint=define
+    use64bitall=define
+    uselongdouble=undef
+    usemymalloc=n
+    default_inc_excludes_dot=define
+  Compiler:
+    cc='cc'
+    ccflags ='-pie -fPIE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+    optimize='-O2'
+    cppflags='-pie -fPIE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
+    ccversion=''
+    gccversion='11.2.1 20211124 [revision 7510c23c1ec53aa4a62705f0384079661342ff7b]'
+    gccosandvers=''
+    intsize=4
+    longsize=8
+    ptrsize=8
+    doublesize=8
+    byteorder=12345678
+    doublekind=3
+    d_longlong=define
+    longlongsize=8
+    d_longdbl=define
+    longdblsize=16
+    longdblkind=3
+    ivtype='long'
+    ivsize=8
+    nvtype='__float128'
+    nvsize=16
+    Off_t='off_t'
+    lseeksize=8
+    alignbytes=16
+    prototype=define
+  Linker and Libraries:
+    ld='cc'
+    ldflags ='-L/pro/local/lib -fstack-protector-strong'
+    libpth=/usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /data/pro/local/lib /usr/lib64 /usr/local/lib64
+    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat -lquadmath
+    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc -lquadmath
+    libc=/lib/../lib64/libc.so.6
+    so=so
+    useshrplib=false
+    libperl=libperl.a
+    gnulibc_version='2.34'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs
+    dlext=so
+    d_dlsymun=undef
+    ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC'
+    lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector-strong'
+
+
+Characteristics of this binary (from libperl):
+  Compile-time options:
+    HAS_TIMES
+    PERLIO_LAYERS
+    PERL_COPY_ON_WRITE
+    PERL_DONT_CREATE_GVSV
+    PERL_MALLOC_WRAP
+    PERL_OP_PARENT
+    PERL_PRESERVE_IVUV
+    PERL_USE_DEVEL
+    USE_64_BIT_ALL
+    USE_64_BIT_INT
+    USE_LARGE_FILES
+    USE_LOCALE
+    USE_LOCALE_COLLATE
+    USE_LOCALE_CTYPE
+    USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
+    USE_PERLIO
+    USE_PERL_ATOF
+    USE_QUADMATH
+  Built under linux
+  Compiled at Jan  1 2022 11:18:27
+  %ENV:
+    PERL6LIB="inst#/pro/3gl/CPAN/rakudo/install"
+  @INC:
+    lib
+    /pro/lib/perl5/site_perl/5.35.8/x86_64-linux-quadmath
+    /pro/lib/perl5/site_perl/5.35.8
+    /pro/lib/perl5/5.35.8/x86_64-linux-quadmath
+    /pro/lib/perl5/5.35.8
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/41_plv5360dnqm.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Config-Perl-V/t/41_plv5360dnqm.t
diff -N gnu/usr.bin/perl/cpan/Config-Perl-V/t/41_plv5360dnqm.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/41_plv5360dnqm.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,179 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 134;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V qw( summary );
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jun 10 2022 14:46:57", "Build time");
+is ($conf->{config}{version}, "5.36.0", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_COPY_ON_WRITE
+	PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_OP_PARENT
+	PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
+	USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
+	USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF
+	USE_QUADMATH USE_REENTRANT_API USE_THREAD_SAFE_LOCALE
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "e8348134908b3d371c277aff6da654b8";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+is ($sig, $md5, "MD5");
+
+is_deeply ($conf->{build}{patches}, [ ], "No patches");
+
+my %check = (
+    alignbytes      => 16,
+    api_version     => 36,
+    bincompat5005   => undef,
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E -Wl,-rpath,/pro/lib/perl5/5.36.0/x86_64-linux-thread-multi-quadmath/CORE",
+    config_args     => "-Uversiononly -Dinc_version_list=none -Duse64bitall -Dusethreads -Duseithreads -Dusequadmath -Duseshrplib -des",
+    gccversion      => "12.1.0",
+    gnulibc_version => "2.35",
+    ivsize          => 8,
+    ivtype          => "long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector-strong",
+    ldflags         => "-L/pro/local/lib -fstack-protector-strong",
+    libc            => "/lib/../lib64/libc.so.6",
+    lseektype       => "off_t",
+    osvers          => "5.18.1-1-default",
+    use64bitall     => "define",
+    use64bitint     => "define",
+    usemymalloc     => "n",
+    default_inc_excludes_dot
+		    => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+ok (my $info = summary ($conf), "A summary");
+ok (exists $info->{$_}, "Summary has $_") for qw( cc config_args usemymalloc default_inc_excludes_dot );
+is ($info->{default_inc_excludes_dot}, "define", "This build has . NOT in INC");
+
+__END__
+Summary of my perl5 (revision 5 version 36 subversion 0) configuration:
+   
+  Platform:
+    osname=linux
+    osvers=5.18.1-1-default
+    archname=x86_64-linux-thread-multi-quadmath
+    uname='linux lx09 5.18.1-1-default #1 smp preempt_dynamic mon may 30 07:49:01 utc 2022 (d00e88d) x86_64 x86_64 x86_64 gnulinux '
+    config_args='-Uversiononly -Dinc_version_list=none -Duse64bitall -Dusethreads -Duseithreads -Dusequadmath -Duseshrplib -des'
+    hint=recommended
+    useposix=true
+    d_sigaction=define
+    useithreads=define
+    usemultiplicity=define
+    use64bitint=define
+    use64bitall=define
+    uselongdouble=undef
+    usemymalloc=n
+    default_inc_excludes_dot=define
+  Compiler:
+    cc='cc'
+    ccflags ='-D_REENTRANT -D_GNU_SOURCE -pie -fPIE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+    optimize='-O2'
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -pie -fPIE -fPIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
+    ccversion=''
+    gccversion='12.1.0'
+    gccosandvers=''
+    intsize=4
+    longsize=8
+    ptrsize=8
+    doublesize=8
+    byteorder=12345678
+    doublekind=3
+    d_longlong=define
+    longlongsize=8
+    d_longdbl=define
+    longdblsize=16
+    longdblkind=3
+    ivtype='long'
+    ivsize=8
+    nvtype='__float128'
+    nvsize=16
+    Off_t='off_t'
+    lseeksize=8
+    alignbytes=16
+    prototype=define
+  Linker and Libraries:
+    ld='cc'
+    ldflags ='-L/pro/local/lib -fstack-protector-strong'
+    libpth=/usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /data/pro/local/lib /usr/lib64 /usr/local/lib64
+    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat -lquadmath
+    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc -lquadmath
+    libc=/lib/../lib64/libc.so.6
+    so=so
+    useshrplib=true
+    libperl=libperl.so
+    gnulibc_version='2.35'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs
+    dlext=so
+    d_dlsymun=undef
+    ccdlflags='-Wl,-E -Wl,-rpath,/pro/lib/perl5/5.36.0/x86_64-linux-thread-multi-quadmath/CORE'
+    cccdlflags='-fPIC'
+    lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector-strong'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options:
+    HAS_TIMES
+    MULTIPLICITY
+    PERLIO_LAYERS
+    PERL_COPY_ON_WRITE
+    PERL_DONT_CREATE_GVSV
+    PERL_MALLOC_WRAP
+    PERL_OP_PARENT
+    PERL_PRESERVE_IVUV
+    USE_64_BIT_ALL
+    USE_64_BIT_INT
+    USE_ITHREADS
+    USE_LARGE_FILES
+    USE_LOCALE
+    USE_LOCALE_COLLATE
+    USE_LOCALE_CTYPE
+    USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
+    USE_PERLIO
+    USE_PERL_ATOF
+    USE_QUADMATH
+    USE_REENTRANT_API
+    USE_THREAD_SAFE_LOCALE
+  Built under linux
+  Compiled at Jun 10 2022 14:46:57
+  %ENV:
+    PERL6LIB="inst#/pro/3gl/CPAN/rakudo/install"
+  @INC:
+    /pro/lib/perl5/site_perl/5.36.0/x86_64-linux-thread-multi-quadmath
+    /pro/lib/perl5/site_perl/5.36.0
+    /pro/lib/perl5/5.36.0/x86_64-linux-thread-multi-quadmath
+    /pro/lib/perl5/5.36.0
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/42_plv5373tld.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Config-Perl-V/t/42_plv5373tld.t
diff -N gnu/usr.bin/perl/cpan/Config-Perl-V/t/42_plv5373tld.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/42_plv5373tld.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,191 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 135;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V qw( summary );
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Aug 21 2022 08:56:37", "Build time");
+is ($conf->{config}{version}, "5.37.3", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	DEBUGGING HAS_TIMES MULTIPLICITY PERL_COPY_ON_WRITE
+	PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_SIPHASH13 PERL_HASH_USE_SBOX32
+	PERLIO_LAYERS PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV
+	PERL_TRACK_MEMPOOL PERL_USE_DEVEL PERL_USE_SAFE_PUTENV USE_64_BIT_ALL
+	USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE
+	USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
+	USE_LONG_DOUBLE USE_PERL_ATOF USE_PERLIO USE_REENTRANT_API
+	USE_THREAD_SAFE_LOCALE
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "ff4175ca52fccf9c03c33d34af942b0d";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
+
+is_deeply ($conf->{build}{patches}, [ ], "No patches");
+
+my %check = (
+    alignbytes      => 16,
+    api_version     => 37,
+    bincompat5005   => undef,	# GONE, chainsawed
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Dusedevel -Dusethreads -Duseithreads -Duse64bitall -Duselongdouble -desr -Dusedevel -Uinstallusrbinperl -Dprefix=/media/Tux/perls-t",
+    gccversion      => "12.1.1 20220812 [revision 6b7d570a5001bb79e34c0d1626a8c7f55386dac7]",
+    gnulibc_version => "2.35",
+    ivsize          => 8,
+    ivtype          => "long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector-strong",
+    ldflags         => "-L/pro/local/lib -fstack-protector-strong",
+    libc            => "/lib/../lib64/libc.so.6",
+    lseektype       => "off_t",
+    osvers          => "5.19.1-1-default",
+    use64bitall     => "define",
+    use64bitint     => "define",
+    usemymalloc     => "n",
+    default_inc_excludes_dot
+		    => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+ok (my $info = summary ($conf), "A summary");
+ok (exists $info->{$_}, "Summary has $_") for qw( cc config_args usemymalloc default_inc_excludes_dot );
+is ($info->{default_inc_excludes_dot}, "define", "This build has . NOT in INC");
+
+__END__
+Summary of my perl5 (revision 5 version 37 subversion 3) configuration:
+   
+  Platform:
+    osname=linux
+    osvers=5.19.1-1-default
+    archname=x86_64-linux-thread-multi-ld
+    uname='linux lx09 5.19.1-1-default #1 smp preempt_dynamic thu aug 11 11:32:52 utc 2022 (a5bf6c0) x86_64 x86_64 x86_64 gnulinux '
+    config_args='-Dusedevel -Dusethreads -Duseithreads -Duse64bitall -Duselongdouble -desr -Dusedevel -Uinstallusrbinperl -Dprefix=/media/Tux/perls-t'
+    hint=recommended
+    useposix=true
+    d_sigaction=define
+    useithreads=define
+    usemultiplicity=define
+    use64bitint=define
+    use64bitall=define
+    uselongdouble=define
+    usemymalloc=n
+    default_inc_excludes_dot=define
+  Compiler:
+    cc='cc'
+    ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+    optimize='-O2'
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
+    ccversion=''
+    gccversion='12.1.1 20220812 [revision 6b7d570a5001bb79e34c0d1626a8c7f55386dac7]'
+    gccosandvers=''
+    intsize=4
+    longsize=8
+    ptrsize=8
+    doublesize=8
+    byteorder=12345678
+    doublekind=3
+    d_longlong=define
+    longlongsize=8
+    d_longdbl=define
+    longdblsize=16
+    longdblkind=3
+    ivtype='long'
+    ivsize=8
+    nvtype='long double'
+    nvsize=16
+    Off_t='off_t'
+    lseeksize=8
+    alignbytes=16
+    prototype=define
+  Linker and Libraries:
+    ld='cc'
+    ldflags ='-L/pro/local/lib -fstack-protector-strong'
+    libpth=/usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /data/pro/local/lib /usr/lib64 /usr/local/lib64
+    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/../lib64/libc.so.6
+    so=so
+    useshrplib=false
+    libperl=libperl.a
+    gnulibc_version='2.35'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs
+    dlext=so
+    d_dlsymun=undef
+    ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC'
+    lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector-strong'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options:
+    DEBUGGING
+    HAS_TIMES
+    MULTIPLICITY
+    PERLIO_LAYERS
+    PERL_COPY_ON_WRITE
+    PERL_DONT_CREATE_GVSV
+    PERL_HASH_FUNC_SIPHASH13
+    PERL_HASH_USE_SBOX32
+    PERL_MALLOC_WRAP
+    PERL_OP_PARENT
+    PERL_PRESERVE_IVUV
+    PERL_TRACK_MEMPOOL
+    PERL_USE_DEVEL
+    PERL_USE_SAFE_PUTENV
+    USE_64_BIT_ALL
+    USE_64_BIT_INT
+    USE_ITHREADS
+    USE_LARGE_FILES
+    USE_LOCALE
+    USE_LOCALE_COLLATE
+    USE_LOCALE_CTYPE
+    USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
+    USE_LONG_DOUBLE
+    USE_PERLIO
+    USE_PERL_ATOF
+    USE_REENTRANT_API
+    USE_THREAD_SAFE_LOCALE
+  Built under linux
+  Compiled at Aug 21 2022 08:56:37
+  %ENV:
+    PERL6LIB="inst#/pro/3gl/CPAN/rakudo/install"
+  @INC:
+    /media/Tux/perls-t/lib/site_perl/5.37.3/x86_64-linux-thread-multi-ld
+    /media/Tux/perls-t/lib/site_perl/5.37.3
+    /media/Tux/perls-t/lib/5.37.3/x86_64-linux-thread-multi-ld
+    /media/Tux/perls-t/lib/5.37.3
Index: gnu/usr.bin/perl/cpan/Config-Perl-V/t/43_plv53710rcs.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Config-Perl-V/t/43_plv53710rcs.t
diff -N gnu/usr.bin/perl/cpan/Config-Perl-V/t/43_plv53710rcs.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Config-Perl-V/t/43_plv53710rcs.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,202 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 135;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V qw( summary );
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Feb 28 2023 18:30:03", "Build time");
+is ($conf->{config}{version}, "5.37.10", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	DEBUGGING HAS_TIMES MULTIPLICITY PERL_COPY_ON_WRITE PERL_RC_STACK
+	PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_SIPHASH13 PERL_HASH_USE_SBOX32
+	PERLIO_LAYERS PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV
+	PERL_TRACK_MEMPOOL PERL_USE_DEVEL PERL_USE_SAFE_PUTENV USE_64_BIT_ALL
+	USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE
+	USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
+	USE_LONG_DOUBLE USE_PERL_ATOF USE_PERLIO USE_REENTRANT_API
+	USE_THREAD_SAFE_LOCALE
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+eval { require Digest::MD5; };
+my $md5 = $@ ? "0" x 32 : "964776ac5595a8a584dfba7ee063e4b9";
+ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
+
+SKIP: {
+    ord "A" == 65 or skip "ASCII-centric test", 1;
+    is ($sig, $md5, "MD5");
+    }
+
+is_deeply ($conf->{build}{patches}, [ "uncommitted-changes" ], "No patches");
+
+my %check = (
+    alignbytes      => 16,
+    api_version     => 37,
+    bincompat5005   => undef,	# GONE, chainsawed
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Dusedevel -Duse64bitall -Dusethreads -Duseithreads -Duselongdouble -Doptimize='-O0\\ -g' -Accflags=-DPERL_RC_STACK -des",
+    gccversion      => "12.2.1 20230124 [revision 193f7e62815b4089dfaed4c2bd34fd4f10209e27]",
+    gnulibc_version => "2.37",
+    ivsize          => 8,
+    ivtype          => "long",
+    ld              => "cc",
+    lddlflags       => "-shared -O0 -g -L/pro/local/lib -fstack-protector-strong",
+    ldflags         => "-L/pro/local/lib -fstack-protector-strong",
+    libc            => "/lib/../lib64/libc.so.6",
+    lseektype       => "off_t",
+    osvers          => "6.1.12-1-default",
+    use64bitall     => "define",
+    use64bitint     => "define",
+    usemymalloc     => "n",
+    default_inc_excludes_dot
+		    => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+ok (my $info = summary ($conf), "A summary");
+ok (exists $info->{$_}, "Summary has $_") for qw( cc config_args usemymalloc default_inc_excludes_dot );
+is ($info->{default_inc_excludes_dot}, "define", "This build has . NOT in INC");
+
+__END__
+Summary of my perl5 (revision 5 version 37 subversion 10) configuration:
+  Derived from: f0cf813c73daf1ae652b454fc8bc4828aec1f049
+  Platform:
+    osname=linux
+    osvers=6.1.12-1-default
+    archname=x86_64-linux-thread-multi-ld
+    uname='linux lx09 6.1.12-1-default #1 smp preempt_dynamic wed feb 15 05:31:41 utc 2023 (373f017) x86_64 x86_64 x86_64 gnulinux '
+    config_args='-Dusedevel -Duse64bitall -Dusethreads -Duseithreads -Duselongdouble -Doptimize='-O0\ -g' -Accflags=-DPERL_RC_STACK -des'
+    hint=recommended
+    useposix=true
+    d_sigaction=define
+    useithreads=define
+    usemultiplicity=define
+    use64bitint=define
+    use64bitall=define
+    uselongdouble=define
+    usemymalloc=n
+    default_inc_excludes_dot=define
+  Compiler:
+    cc='cc'
+    ccflags ='-D_REENTRANT -D_GNU_SOURCE -pie -fPIE -fPIC -DDEBUGGING -DPERL_RC_STACK -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+    optimize='-O0 -g'
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -pie -fPIE -fPIC -DDEBUGGING -DPERL_RC_STACK -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
+    ccversion=''
+    gccversion='12.2.1 20230124 [revision 193f7e62815b4089dfaed4c2bd34fd4f10209e27]'
+    gccosandvers=''
+    intsize=4
+    longsize=8
+    ptrsize=8
+    doublesize=8
+    byteorder=12345678
+    doublekind=3
+    d_longlong=define
+    longlongsize=8
+    d_longdbl=define
+    longdblsize=16
+    longdblkind=3
+    ivtype='long'
+    ivsize=8
+    nvtype='long double'
+    nvsize=16
+    Off_t='off_t'
+    lseeksize=8
+    alignbytes=16
+    prototype=define
+  Linker and Libraries:
+    ld='cc'
+    ldflags ='-L/pro/local/lib -fstack-protector-strong'
+    libpth=/usr/local/lib /usr/x86_64-suse-linux/lib /usr/lib /data/pro/local/lib /usr/lib64 /usr/local/lib64
+    libs=-lpthread -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/../lib64/libc.so.6
+    so=so
+    useshrplib=false
+    libperl=libperl.a
+    gnulibc_version='2.37'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs
+    dlext=so
+    d_dlsymun=undef
+    ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC'
+    lddlflags='-shared -O0 -g -L/pro/local/lib -fstack-protector-strong'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options:
+    DEBUGGING
+    HAS_TIMES
+    MULTIPLICITY
+    PERLIO_LAYERS
+    PERL_COPY_ON_WRITE
+    PERL_DONT_CREATE_GVSV
+    PERL_HASH_FUNC_SIPHASH13
+    PERL_HASH_USE_SBOX32
+    PERL_MALLOC_WRAP
+    PERL_OP_PARENT
+    PERL_PRESERVE_IVUV
+    PERL_RC_STACK
+    PERL_TRACK_MEMPOOL
+    PERL_USE_DEVEL
+    PERL_USE_SAFE_PUTENV
+    USE_64_BIT_ALL
+    USE_64_BIT_INT
+    USE_ITHREADS
+    USE_LARGE_FILES
+    USE_LOCALE
+    USE_LOCALE_COLLATE
+    USE_LOCALE_CTYPE
+    USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
+    USE_LONG_DOUBLE
+    USE_PERLIO
+    USE_PERL_ATOF
+    USE_REENTRANT_API
+    USE_THREAD_SAFE_LOCALE
+  Locally applied patches:
+    uncommitted-changes
+  Built under linux
+  Compiled at Feb 28 2023 18:30:03
+  %ENV:
+    PERL5LIB="/pro/3gl/CPAN/perl-git/lib"
+    PERL6LIB="inst#/pro/3gl/CPAN/rakudo/install"
+    PERL_ARCHLIB="/pro/3gl/CPAN/perl-git"
+    PERL_CORE="1"
+    PERL_INC="/pro/3gl/CPAN/perl-git"
+    PERL_LIB="/pro/3gl/CPAN/perl-git/lib"
+    PERL_SRC="/pro/3gl/CPAN/perl-git"
+  @INC:
+    /pro/3gl/CPAN/perl-git/lib
+    /pro/3gl/CPAN/perl-git/lib
+    /pro/lib/perl5/site_perl/5.37.10/x86_64-linux-thread-multi-ld
+    /pro/lib/perl5/site_perl/5.37.10
+    /pro/lib/perl5/5.37.10/x86_64-linux-thread-multi-ld
+    /pro/lib/perl5/5.37.10
Index: gnu/usr.bin/perl/cpan/DB_File/DB_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/DB_File/DB_File.pm,v
diff -u -p -a -u -p -r1.6 DB_File.pm
--- gnu/usr.bin/perl/cpan/DB_File/DB_File.pm	15 Feb 2023 01:36:16 -0000	1.6
+++ gnu/usr.bin/perl/cpan/DB_File/DB_File.pm	21 Feb 2024 15:47:00 -0000
@@ -165,7 +165,7 @@ use Carp;
 # Module not thread safe, so don't clone
 sub CLONE_SKIP { 1 }
 
-$VERSION = "1.857" ;
+$VERSION = "1.858" ;
 $VERSION = eval $VERSION; # needed for dev releases
 
 {
@@ -2331,23 +2331,9 @@ same terms as Perl itself.
 
 Although B<DB_File> is covered by the Perl license, the library it
 makes use of, namely Berkeley DB, is not. Berkeley DB has its own
-copyright and its own license. Please take the time to read it.
-
-Here are a few words taken from the Berkeley DB FAQ (at
-L<http://www.oracle.com/technology/products/berkeley-db/db/index.html>) regarding the license:
-
-    Do I have to license DB to use it in Perl scripts?
-
-    No. The Berkeley DB license requires that software that uses
-    Berkeley DB be freely redistributable. In the case of Perl, that
-    software is Perl, and not your scripts. Any Perl scripts that you
-    write are your property, including scripts that make use of
-    Berkeley DB. Neither the Perl license nor the Berkeley DB license
-    place any restriction on what you may do with them.
-
-If you are in any doubt about the license situation, contact either the
-Berkeley DB authors or the author of DB_File. See L<"AUTHOR"> for details.
-
+copyright and its own license.
+See L<AGPL|https://www.oracle.com/downloads/licenses/berkeleydb-oslicense.html> for more details.
+Please take the time to read the Berkeley DB license and decide how it impacts your use of this Perl module.
 
 =head1 SEE ALSO
 
Index: gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm,v
diff -u -p -a -u -p -r1.5 MD5.pm
--- gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm	15 Feb 2023 01:36:16 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Digest-MD5/MD5.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package Digest::MD5;
 use strict;
 use warnings;
 
-our $VERSION = '2.58';
+our $VERSION = '2.58_01';
 
 require Exporter;
 *import = \&Exporter::import;
Index: gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs,v
diff -u -p -a -u -p -r1.23 MD5.xs
--- gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs	15 Feb 2023 01:38:21 -0000	1.23
+++ gnu/usr.bin/perl/cpan/Digest-MD5/MD5.xs	21 Feb 2024 15:47:00 -0000
@@ -32,18 +32,12 @@
  * documentation and/or software.
  */
 
-#ifdef __cplusplus
-extern "C" {
-#endif
 #define PERL_NO_GET_CONTEXT     /* we want efficiency */
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
 #include <sys/types.h>
 #include <md5.h>
-#ifdef __cplusplus
-}
-#endif
 
 #ifndef PERL_UNUSED_VAR
 # define PERL_UNUSED_VAR(x) ((void)x)
Index: gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t,v
diff -u -p -a -u -p -r1.22 files.t
--- gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t	15 Feb 2023 01:38:21 -0000	1.22
+++ gnu/usr.bin/perl/cpan/Digest-MD5/t/files.t	21 Feb 2024 15:47:00 -0000
@@ -22,7 +22,7 @@ EOT
     # This is the output of: 'md5sum README MD5.xs rfc1321.txt'
     $EXPECT = <<EOT;
 2f93400875dbb56f36691d5f69f3eba5  README
-5956d385c276e47faebef391177ee1d3  MD5.xs
+16d90fd139c5eae51f786daa1ea6eb24  MD5.xs
 754b9db19f79dbc4992f7166eb0f37ce  rfc1321.txt
 EOT
 }
Index: gnu/usr.bin/perl/cpan/Digest-SHA/shasum
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-SHA/shasum,v
diff -u -p -a -u -p -r1.5 shasum
--- gnu/usr.bin/perl/cpan/Digest-SHA/shasum	30 Dec 2019 02:13:43 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Digest-SHA/shasum	21 Feb 2024 15:47:01 -0000
@@ -2,10 +2,10 @@
 
 	## shasum: filter for computing SHA digests (ref. sha1sum/md5sum)
 	##
-	## Copyright (C) 2003-2018 Mark Shelor, All Rights Reserved
+	## Copyright (C) 2003-2023 Mark Shelor, All Rights Reserved
 	##
-	## Version: 6.02
-	## Fri Apr 20 16:25:30 MST 2018
+	## Version: 6.04
+	## Sat Feb 25 12:00:50 PM MST 2023
 
 	## shasum SYNOPSIS adapted from GNU Coreutils sha1sum. Add
 	## "-a" option for algorithm selection,
@@ -97,7 +97,7 @@ the 7-bit message I<0001100>:
 
 =head1 AUTHOR
 
-Copyright (C) 2003-2018 Mark Shelor <mshelor@cpan.org>.
+Copyright (C) 2003-2023 Mark Shelor <mshelor@cpan.org>.
 
 =head1 SEE ALSO
 
@@ -107,7 +107,7 @@ I<shasum> is implemented using the Perl 
 
 END_OF_POD
 
-my $VERSION = "6.02";
+my $VERSION = "6.04";
 
 sub usage {
 	my($err, $msg) = @_;
Index: gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm,v
diff -u -p -a -u -p -r1.5 SHA.pm
--- gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm	30 Dec 2019 02:13:43 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Digest-SHA/lib/Digest/SHA.pm	21 Feb 2024 15:47:01 -0000
@@ -6,9 +6,10 @@ use strict;
 use warnings;
 use vars qw($VERSION @ISA @EXPORT_OK $errmsg);
 use Fcntl qw(O_RDONLY O_RDWR);
+use Cwd qw(getcwd);
 use integer;
 
-$VERSION = '6.02';
+$VERSION = '6.04';
 
 require Exporter;
 @ISA = qw(Exporter);
@@ -120,9 +121,18 @@ sub addfile {
 		##	by attempting to open with mode O_RDWR
 
 	local *FH;
-	$file eq '-' and open(FH, '< -')
-		or sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY)
+	if ($file eq '-') {
+		if (-d STDIN) {
+			sysopen(FH, getcwd(), O_RDWR)
+				or _bail('Open failed');
+		}
+		open(FH, '< -')
+			or _bail('Open failed');
+	}
+	else {
+		sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY)
 			or _bail('Open failed');
+	}
 
 	if ($BITS) {
 		my ($n, $buf) = (0, "");
@@ -810,7 +820,7 @@ darkness and moored it in so perfect a c
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2003-2018 Mark Shelor
+Copyright (C) 2003-2022 Mark Shelor
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c,v
diff -u -p -a -u -p -r1.4 sha.c
--- gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.c	21 Feb 2024 15:47:01 -0000
@@ -3,10 +3,10 @@
  *
  * Ref: NIST FIPS PUB 180-4 Secure Hash Standard
  *
- * Copyright (C) 2003-2018 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2023 Mark Shelor, All Rights Reserved
  *
- * Version: 6.02
- * Fri Apr 20 16:25:30 MST 2018
+ * Version: 6.04
+ * Sat Feb 25 12:00:50 PM MST 2023
  *
  */
 
@@ -279,14 +279,11 @@ static UCHR *statecpy(SHA *s, UCHR *buf)
 	return(buf);
 }
 
-#define SHA_INIT(s, algo, transform) 					\
+#define SHA_INIT(s, algo, transform, state, state_t)			\
 	do {								\
 		Zero(s, 1, SHA);					\
 		s->alg = algo; s->sha = sha ## transform;		\
-		if (s->alg <= SHA256)					\
-			Copy(H0 ## algo, s->H32, 8, SHA32);		\
-		else							\
-			Copy(H0 ## algo, s->H64, 8, SHA64);		\
+		Copy(H0 ## algo, s->state, 8, state_t);			\
 		s->blocksize = SHA ## algo ## _BLOCK_BITS;		\
 		s->digestlen = SHA ## algo ## _DIGEST_BITS >> 3;	\
 	} while (0)
@@ -294,13 +291,13 @@ static UCHR *statecpy(SHA *s, UCHR *buf)
 /* sharewind: resets digest object */
 static void sharewind(SHA *s)
 {
-	if      (s->alg == SHA1)   SHA_INIT(s, 1, 1);
-	else if (s->alg == SHA224) SHA_INIT(s, 224, 256);
-	else if (s->alg == SHA256) SHA_INIT(s, 256, 256);
-	else if (s->alg == SHA384) SHA_INIT(s, 384, 512);
-	else if (s->alg == SHA512) SHA_INIT(s, 512, 512);
-	else if (s->alg == SHA512224) SHA_INIT(s, 512224, 512);
-	else if (s->alg == SHA512256) SHA_INIT(s, 512256, 512);
+	if      (s->alg == SHA1)   SHA_INIT(s, 1, 1, H32, SHA32);
+	else if (s->alg == SHA224) SHA_INIT(s, 224, 256, H32, SHA32);
+	else if (s->alg == SHA256) SHA_INIT(s, 256, 256, H32, SHA32);
+	else if (s->alg == SHA384) SHA_INIT(s, 384, 512, H64, SHA64);
+	else if (s->alg == SHA512) SHA_INIT(s, 512, 512, H64, SHA64);
+	else if (s->alg == SHA512224) SHA_INIT(s, 512224, 512, H64, SHA64);
+	else if (s->alg == SHA512256) SHA_INIT(s, 512256, 512, H64, SHA64);
 }
 
 /* shainit: initializes digest object */
Index: gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h,v
diff -u -p -a -u -p -r1.4 sha.h
--- gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Digest-SHA/src/sha.h	21 Feb 2024 15:47:01 -0000
@@ -3,10 +3,10 @@
  *
  * Ref: NIST FIPS PUB 180-4 Secure Hash Standard
  *
- * Copyright (C) 2003-2018 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2023 Mark Shelor, All Rights Reserved
  *
- * Version: 6.02
- * Fri Apr 20 16:25:30 MST 2018
+ * Version: 6.04
+ * Sat Feb 25 12:00:50 PM MST 2023
  *
  */
 
Index: gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c,v
diff -u -p -a -u -p -r1.4 sha64bit.c
--- gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.c	21 Feb 2024 15:47:01 -0000
@@ -3,10 +3,10 @@
  *
  * Ref: NIST FIPS PUB 180-4 Secure Hash Standard
  *
- * Copyright (C) 2003-2018 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2023 Mark Shelor, All Rights Reserved
  *
- * Version: 6.02
- * Fri Apr 20 16:25:30 MST 2018
+ * Version: 6.04
+ * Sat Feb 25 12:00:50 PM MST 2023
  *
  */
 
Index: gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h,v
diff -u -p -a -u -p -r1.4 sha64bit.h
--- gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h	30 Dec 2019 02:13:43 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Digest-SHA/src/sha64bit.h	21 Feb 2024 15:47:01 -0000
@@ -3,10 +3,10 @@
  *
  * Ref: NIST FIPS PUB 180-4 Secure Hash Standard
  *
- * Copyright (C) 2003-2018 Mark Shelor, All Rights Reserved
+ * Copyright (C) 2003-2023 Mark Shelor, All Rights Reserved
  *
- * Version: 6.02
- * Fri Apr 20 16:25:30 MST 2018
+ * Version: 6.04
+ * Sat Feb 25 12:00:50 PM MST 2023
  *
  * The following macros supply placeholder values that enable the
  * sha.c module to successfully compile when 64-bit integer types
Index: gnu/usr.bin/perl/cpan/Encode/Encode.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/Encode.pm,v
diff -u -p -a -u -p -r1.12 Encode.pm
--- gnu/usr.bin/perl/cpan/Encode/Encode.pm	15 Feb 2023 01:36:16 -0000	1.12
+++ gnu/usr.bin/perl/cpan/Encode/Encode.pm	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 #
-# $Id: Encode.pm,v 3.17 2022/04/07 03:05:51 dankogai Exp $
+# $Id: Encode.pm,v 3.19 2022/08/04 04:42:30 dankogai Exp $
 #
 package Encode;
 use strict;
@@ -7,7 +7,7 @@ use warnings;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 our $VERSION;
 BEGIN {
-    $VERSION = sprintf "%d.%02d", q$Revision: 3.17 $ =~ /(\d+)/g;
+    $VERSION = sprintf "%d.%02d", q$Revision: 3.19 $ =~ /(\d+)/g;
     require XSLoader;
     XSLoader::load( __PACKAGE__, $VERSION );
 }
Index: gnu/usr.bin/perl/cpan/Encode/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/Makefile.PL,v
diff -u -p -a -u -p -r1.7 Makefile.PL
--- gnu/usr.bin/perl/cpan/Encode/Makefile.PL	15 Feb 2023 01:36:16 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Encode/Makefile.PL	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.PL,v 2.24 2021/10/13 08:29:13 dankogai Exp $
+# $Id: Makefile.PL,v 2.25 2022/06/25 01:58:57 dankogai Exp $
 #
 use 5.007003;
 use strict;
@@ -17,6 +17,8 @@ $ENV{PERL_CORE} ||= $ARGV{PERL_CORE} if 
 my $ccflags = $Config{ccflags};
 if (!$ENV{PERL_CORE}) {
   if (my $gccver = $Config{gccversion}) {
+    # no more 'Argument "Apple" isn't numeric in addition (+)'
+    no warnings 'numeric';
     $gccver =~ s/\.//g; $gccver =~ s/ .*//;
     $gccver .= "0" while length $gccver < 3;
     $gccver = 0+$gccver;
Index: gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm,v
diff -u -p -a -u -p -r1.8 Alias.pm
--- gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm	13 Feb 2019 21:15:10 -0000	1.8
+++ gnu/usr.bin/perl/cpan/Encode/lib/Encode/Alias.pm	21 Feb 2024 15:47:00 -0000
@@ -1,7 +1,7 @@
 package Encode::Alias;
 use strict;
 use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.24 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.25 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 
 use Exporter 'import';
@@ -161,6 +161,10 @@ sub init_aliases {
 
     # Allow variants of iso-8859-1 etc.
     define_alias( qr/\biso[-_]?(\d+)[-_](\d+)$/i => '"iso-$1-$2"' );
+
+    # ISO-8859-8-I => ISO-8859-8
+    # https://en.wikipedia.org/wiki/ISO-8859-8-I
+    define_alias( qr/\biso[-_]8859[-_]8[-_]I$/i => '"iso-8859-8"' );
 
     # At least HP-UX has these.
     define_alias( qr/\biso8859(\d+)$/i => '"iso-8859-$1"' );
Index: gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm,v
diff -u -p -a -u -p -r1.6 Header.pm
--- gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm	13 Feb 2019 21:15:10 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Encode/lib/Encode/MIME/Header.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package Encode::MIME::Header;
 use strict;
 use warnings;
 
-our $VERSION = do { my @r = ( q$Revision: 2.28 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.29 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 
 use Carp ();
 use Encode ();
@@ -55,7 +55,7 @@ my $re_capture_encoded_word_split = qr/=
 # in strict mode check also for valid base64 characters and also for valid quoted printable codes
 my $re_encoding_strict_b = qr/[Bb]/;
 my $re_encoding_strict_q = qr/[Qq]/;
-my $re_encoded_text_strict_b = qr/[0-9A-Za-z\+\/]*={0,2}/;
+my $re_encoded_text_strict_b = qr/(?:[0-9A-Za-z\+\/]{4})*(?:[0-9A-Za-z\+\/]{2}==|[0-9A-Za-z\+\/]{3}=|)/;
 my $re_encoded_text_strict_q = qr/(?:[\x21-\x3C\x3E\x40-\x7E]|=[0-9A-Fa-f]{2})*/; # NOTE: first part are printable US-ASCII except ?, =, SPACE and TAB
 my $re_encoded_word_strict = qr/=\?$re_charset(?:\*$re_language)?\?(?:$re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
 my $re_capture_encoded_word_strict = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
@@ -93,6 +93,10 @@ sub decode($$;$) {
         my $sep = defined $2 ? $2 : '';
 
         $stop = 1 unless length($line) or length($sep);
+
+        # in non strict mode append missing '=' padding characters for b words
+        # fixes below concatenation of consecutive encoded mime words
+        1 while not $STRICT_DECODE and $line =~ s/(=\?$re_charset(?:\*$re_language)?\?[Bb]\?)((?:[^\?]{4})*[^\?]{1,3})(\?=)/$1.$2.('='x(4-length($2)%4)).$3/se;
 
         # NOTE: this code partially could break $chk support
         # in non strict mode concat consecutive encoded mime words with same charset, language and encoding
Index: gnu/usr.bin/perl/cpan/Encode/t/Aliases.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/Aliases.t,v
diff -u -p -a -u -p -r1.3 Aliases.t
--- gnu/usr.bin/perl/cpan/Encode/t/Aliases.t	13 Feb 2019 21:15:10 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Encode/t/Aliases.t	21 Feb 2024 15:47:00 -0000
@@ -42,6 +42,7 @@ sub init_a2c{
         'arabic'   => 'iso-8859-6',
         'greek'    => 'iso-8859-7',
         'hebrew'   => 'iso-8859-8',
+        'iso-8859-8-I' => 'iso-8859-8',
         'thai'     => 'iso-8859-11',
         'tis620'   => 'iso-8859-11',
         'tis-620'   => 'iso-8859-11',
Index: gnu/usr.bin/perl/cpan/Encode/t/Unicode_trailing_nul.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/Unicode_trailing_nul.t,v
diff -u -p -a -u -p -r1.1.1.1 Unicode_trailing_nul.t
--- gnu/usr.bin/perl/cpan/Encode/t/Unicode_trailing_nul.t	15 Feb 2023 01:32:37 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Encode/t/Unicode_trailing_nul.t	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,9 @@
+BEGIN {
+    if ( $] < 5.009 ) {
+        print "1..0 # Skip: Perl <= 5.9 or later required\n";
+        exit 0;
+    }
+}
 use strict;
 use Test::More;
 
Index: gnu/usr.bin/perl/cpan/Encode/t/enc_data.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/enc_data.t,v
diff -u -p -a -u -p -r1.5 enc_data.t
--- gnu/usr.bin/perl/cpan/Encode/t/enc_data.t	15 Feb 2023 01:36:16 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Encode/t/enc_data.t	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,4 @@
-# $Id: enc_data.t,v 2.6 2022/04/07 03:06:40 dankogai Exp dankogai $
+# $Id: enc_data.t,v 2.6 2022/04/07 03:06:40 dankogai Exp $
 
 BEGIN {
     require Config; import Config;
Index: gnu/usr.bin/perl/cpan/Encode/t/enc_module.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/enc_module.t,v
diff -u -p -a -u -p -r1.5 enc_module.t
--- gnu/usr.bin/perl/cpan/Encode/t/enc_module.t	15 Feb 2023 01:36:16 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Encode/t/enc_module.t	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,4 @@
-# $Id: enc_module.t,v 2.6 2022/04/07 03:06:40 dankogai Exp dankogai $
+# $Id: enc_module.t,v 2.6 2022/04/07 03:06:40 dankogai Exp $
 # This file is in euc-jp
 BEGIN {
     require Config; import Config;
Index: gnu/usr.bin/perl/cpan/Encode/t/jperl.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/jperl.t,v
diff -u -p -a -u -p -r1.5 jperl.t
--- gnu/usr.bin/perl/cpan/Encode/t/jperl.t	15 Feb 2023 01:36:16 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Encode/t/jperl.t	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 #
-# $Id: jperl.t,v 2.6 2022/04/07 03:06:40 dankogai Exp dankogai $
+# $Id: jperl.t,v 2.6 2022/04/07 03:06:40 dankogai Exp $
 #
 # This script is written in euc-jp
 
Index: gnu/usr.bin/perl/cpan/Encode/t/mime-header.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/mime-header.t,v
diff -u -p -a -u -p -r1.6 mime-header.t
--- gnu/usr.bin/perl/cpan/Encode/t/mime-header.t	13 Feb 2019 21:15:10 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Encode/t/mime-header.t	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 #
-# $Id: mime-header.t,v 2.15 2017/07/18 07:15:29 dankogai Exp $
+# $Id: mime-header.t,v 2.16 2022/06/25 01:58:57 dankogai Exp $
 # This script is written in utf8
 #
 BEGIN {
@@ -24,7 +24,7 @@ use strict;
 use utf8;
 use charnames ":full";
 
-use Test::More tests => 266;
+use Test::More tests => 274;
 
 BEGIN {
     use_ok("Encode::MIME::Header");
@@ -138,6 +138,11 @@ my @decode_default_tests = (
     "=?utf-8-strict?Q?=C3=A1=f9=80=80=80=80?=" => "á�",
     # allow non-ASCII characters in q word
     "=?UTF-8?Q?\x{C3}\x{A1}?=" => "á",
+    # allow missing padding characters '=' in b word
+    "=?UTF-8?B?JQ?=" => "%",
+    "=?UTF-8?B?JQ?= =?UTF-8?B?JQ?=" => "%%",
+    "=?UTF-8?B?YWI?=" => "ab",
+    "=?UTF-8?B?YWI?= =?UTF-8?B?YWI?=" => "abab",
 );
 
 my @decode_strict_tests = (
@@ -159,6 +164,11 @@ my @decode_strict_tests = (
     "=?utf-8-strict?Q?=C3=A1?=" => "=?utf-8-strict?Q?=C3=A1?=",
     # do not allow non-ASCII characters in q word
     "=?UTF-8?Q?\x{C3}\x{A1}?=" => "=?UTF-8?Q?\x{C3}\x{A1}?=",
+    # do not allow missing padding characters '=' in b word
+    "=?UTF-8?B?JQ?=" => "=?UTF-8?B?JQ?=",
+    "=?UTF-8?B?JQ?= =?UTF-8?B?JQ?=" => "=?UTF-8?B?JQ?= =?UTF-8?B?JQ?=",
+    "=?UTF-8?B?YWI?=" => "=?UTF-8?B?YWI?=",
+    "=?UTF-8?B?YWI?= =?UTF-8?B?YWI?=" => "=?UTF-8?B?YWI?= =?UTF-8?B?YWI?=",
 );
 
 my @encode_tests = (
Index: gnu/usr.bin/perl/cpan/Encode/t/truncated_utf8.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/truncated_utf8.t,v
diff -u -p -a -u -p -r1.1.1.1 truncated_utf8.t
--- gnu/usr.bin/perl/cpan/Encode/t/truncated_utf8.t	13 Feb 2019 21:10:51 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Encode/t/truncated_utf8.t	21 Feb 2024 15:47:00 -0000
@@ -12,6 +12,10 @@ BEGIN {
       print "1..0 # Skip: EBCDIC\n";
       exit 0;
     }
+    if ( $] < 5.009 ) {
+        print "1..0 # Skip: Perl <= 5.9 or later required\n";
+        exit 0;
+    }
     $| = 1;
 }
 
Index: gnu/usr.bin/perl/cpan/Encode/t/utf32warnings.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/utf32warnings.t,v
diff -u -p -a -u -p -r1.1.1.1 utf32warnings.t
--- gnu/usr.bin/perl/cpan/Encode/t/utf32warnings.t	15 Feb 2023 01:32:37 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Encode/t/utf32warnings.t	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,9 @@
+BEGIN {
+    if ( $] < 5.009 ) {
+        print "1..0 # Skip: Perl <= 5.9 or later required\n";
+        exit 0;
+    }
+}
 use strict;
 use warnings;
 
Index: gnu/usr.bin/perl/cpan/Encode/t/xml.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Encode/t/xml.t,v
diff -u -p -a -u -p -r1.1.1.1 xml.t
--- gnu/usr.bin/perl/cpan/Encode/t/xml.t	30 Dec 2019 02:10:28 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Encode/t/xml.t	21 Feb 2024 15:47:00 -0000
@@ -1,3 +1,9 @@
+BEGIN {
+    if ( $] < 5.009 ) {
+        print "1..0 # Skip: Perl <= 5.9 or later required\n";
+        exit 0;
+    }
+}
 use strict;
 use warnings;
 
@@ -8,7 +14,7 @@ my $content = String->new("--\x{30c6}--"
 my $text = Encode::encode('latin1', $content, Encode::FB_XMLCREF);
 is $text, "--&#x30c6;--";
 
-done_testing;
+done_testing();
 
 package String;
 use overload
Index: gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm,v
diff -u -p -a -u -p -r1.14 Install.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm	15 Feb 2023 01:38:21 -0000	1.14
+++ gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Install.pm	21 Feb 2024 15:47:00 -0000
@@ -32,11 +32,11 @@ ExtUtils::Install - install files from h
 
 =head1 VERSION
 
-2.20
+2.22
 
 =cut
 
-our $VERSION = '2.20';  # <-- do not forget to update the POD section just above this line!
+our $VERSION = '2.22';  # <-- do not forget to update the POD section just above this line!
 $VERSION = eval $VERSION;
 
 =pod
Index: gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Installed.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Installed.pm,v
diff -u -p -a -u -p -r1.3 Installed.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Installed.pm	15 Feb 2023 01:36:16 -0000	1.3
+++ gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Installed.pm	21 Feb 2024 15:47:00 -0000
@@ -15,7 +15,7 @@ my $DOSISH = ($^O =~ /^(MSWin\d\d|os2|do
 
 require VMS::Filespec if $Is_VMS;
 
-our $VERSION = '2.20';
+our $VERSION = '2.22';
 $VERSION = eval $VERSION;
 
 sub _is_prefix {
Index: gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm,v
diff -u -p -a -u -p -r1.3 Packlist.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm	15 Feb 2023 01:36:16 -0000	1.3
+++ gnu/usr.bin/perl/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm	21 Feb 2024 15:47:00 -0000
@@ -4,7 +4,7 @@ use strict;
 use Carp qw();
 use Config;
 our $Relocations;
-our $VERSION = '2.20';
+our $VERSION = '2.22';
 $VERSION = eval $VERSION;
 
 # Used for generating filehandle globs.  IO::File might not be available!
Index: gnu/usr.bin/perl/cpan/ExtUtils-Install/t/Installapi2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-Install/t/Installapi2.t,v
diff -u -p -a -u -p -r1.2 Installapi2.t
--- gnu/usr.bin/perl/cpan/ExtUtils-Install/t/Installapi2.t	15 Feb 2023 01:36:16 -0000	1.2
+++ gnu/usr.bin/perl/cpan/ExtUtils-Install/t/Installapi2.t	21 Feb 2024 15:47:00 -0000
@@ -11,6 +11,7 @@ use TieOut;
 use File::Path;
 use File::Spec;
 use File::Temp qw[tempdir];
+use File::Compare;
 
 use Test::More tests => 70;
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-Install/t/lib/MakeMaker/Test/Setup/BFD.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-Install/t/lib/MakeMaker/Test/Setup/BFD.pm,v
diff -u -p -a -u -p -r1.3 BFD.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-Install/t/lib/MakeMaker/Test/Setup/BFD.pm	15 Feb 2023 01:36:17 -0000	1.3
+++ gnu/usr.bin/perl/cpan/ExtUtils-Install/t/lib/MakeMaker/Test/Setup/BFD.pm	21 Feb 2024 15:47:00 -0000
@@ -35,6 +35,7 @@ WriteMakefile(
     VERSION_FROM  => 'lib/Big/Dummy.pm',
     EXE_FILES     => [qw(bin/program)],
     PREREQ_PM     => { strict => 0 },
+    BUILD_REQUIRES => { warnings => 0 },
     ABSTRACT_FROM => 'lib/Big/Dummy.pm',
     AUTHOR        => 'Michael G Schwern <schwern@pobox.com>',
 );
@@ -104,12 +105,23 @@ END
 
             );
 
+my $tmpdir;
 
+# if given args, those are inserted as components in resulting path, eg:
+# setup_recurs('dir') means instead of creating Big-Dummy/*, dir/Big-Dummy/*
 sub setup_recurs {
-
-    while(my($file, $text) = each %Files) {
+    my @chrs = ( "A" .. "Z", 0 .. 9 );
+    # annoyingly we cant use File::Temp here as it drags in XS code
+    # and we run under blocks to prevent XS code loads. This is a minimal
+    # patch to fix the issue.
+    $tmpdir = join "", "./temp-$$-", map { $chrs[rand(@chrs)] } 1..8;
+    mkdir($tmpdir) or die "Failed to create '$tmpdir': $!";
+    chdir($tmpdir) or die "Failed to chdir '$tmpdir': $!";
+    foreach my $file (sort keys %Files) {
+        my $text = $Files{$file};
         # Convert to a relative, native file path.
-        $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
+        $file = File::Spec->catfile(File::Spec->curdir, @_, split m{\/}, $file);
+        $file = File::Spec->rel2abs($file);
 
         my $dir = dirname($file);
         mkpath $dir;
@@ -126,13 +138,15 @@ sub setup_recurs {
     return 1;
 }
 
-sub teardown_recurs { 
+sub teardown_recurs {
     foreach my $file (keys %Files) {
         my $dir = dirname($file);
         if( -e $dir ) {
-            rmtree($dir) || return;
+            rmtree($dir) or next;
         }
     }
+    chdir("..");
+    rmtree($tmpdir);
     return 1;
 }
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm,v
diff -u -p -a -u -p -r1.4 Command.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm	15 Feb 2023 01:36:17 -0000	1.4
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm	21 Feb 2024 15:47:00 -0000
@@ -4,11 +4,10 @@ use 5.00503;
 use strict;
 use warnings;
 require Exporter;
-use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
-@ISA       = qw(Exporter);
-@EXPORT    = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
-                dos2unix);
-$VERSION = '7.64';
+our @ISA     = qw(Exporter);
+our @EXPORT  = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
+                  dos2unix);
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 my $Is_VMS   = $^O eq 'VMS';
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm,v
diff -u -p -a -u -p -r1.6 Liblist.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::Liblist;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use File::Spec;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm,v
diff -u -p -a -u -p -r1.6 MM.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm	21 Feb 2024 15:47:00 -0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use ExtUtils::MakeMaker::Config;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::Liblist;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm,v
diff -u -p -a -u -p -r1.6 MM_AIX.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MM_AIX;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use ExtUtils::MakeMaker::Config;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm,v
diff -u -p -a -u -p -r1.13 MM_Any.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm	15 Feb 2023 01:36:17 -0000	1.13
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MM_Any;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use Carp;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm,v
diff -u -p -a -u -p -r1.6 MM_BeOS.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm	21 Feb 2024 15:47:00 -0000
@@ -27,7 +27,7 @@ require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm,v
diff -u -p -a -u -p -r1.6 MM_Cygwin.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm	21 Feb 2024 15:47:00 -0000
@@ -10,7 +10,7 @@ require ExtUtils::MM_Unix;
 require ExtUtils::MM_Win32;
 our @ISA = qw( ExtUtils::MM_Unix );
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm,v
diff -u -p -a -u -p -r1.6 MM_DOS.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::MM_DOS;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Any;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm,v
diff -u -p -a -u -p -r1.6 MM_Darwin.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm	21 Feb 2024 15:47:00 -0000
@@ -8,7 +8,7 @@ BEGIN {
     our @ISA = qw( ExtUtils::MM_Unix );
 }
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm,v
diff -u -p -a -u -p -r1.6 MM_MacOS.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::MM_MacOS;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 sub new {
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm,v
diff -u -p -a -u -p -r1.6 MM_NW5.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm	21 Feb 2024 15:47:00 -0000
@@ -23,7 +23,7 @@ use warnings;
 use ExtUtils::MakeMaker::Config;
 use File::Basename;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Win32;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm,v
diff -u -p -a -u -p -r1.6 MM_OS2.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@ use warnings;
 use ExtUtils::MakeMaker qw(neatvalue);
 use File::Spec;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Any;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm,v
diff -u -p -a -u -p -r1.1.1.1 MM_OS390.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm	15 Feb 2023 01:32:34 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MM_OS390;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use ExtUtils::MakeMaker::Config;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm,v
diff -u -p -a -u -p -r1.6 MM_QNX.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MM_QNX;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Unix;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm,v
diff -u -p -a -u -p -r1.6 MM_UWIN.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MM_UWIN;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Unix;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm,v
diff -u -p -a -u -p -r1.24 MM_Unix.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm	15 Feb 2023 01:38:21 -0000	1.24
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm	21 Feb 2024 15:47:00 -0000
@@ -13,10 +13,11 @@ our %Config_Override;
 
 use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
 
-# If we make $VERSION an our variable parse_version() breaks
-use vars qw($VERSION);
-$VERSION = '7.64';
+# If $VERSION is in scope, parse_version() breaks
+{
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
+}
 
 require ExtUtils::MM_Any;
 our @ISA = qw(ExtUtils::MM_Any);
@@ -34,13 +35,16 @@ BEGIN {
     $Is{SunOS4}  = $^O eq 'sunos';
     $Is{Solaris} = $^O eq 'solaris';
     $Is{SunOS}   = $Is{SunOS4} || $Is{Solaris};
-    $Is{BSD}     = ($^O =~ /^(?:free|net|open)bsd$/ or
+    $Is{BSD}     = ($^O =~ /^(?:free|midnight|net|open)bsd$/ or
                    grep( $^O eq $_, qw(bsdos interix dragonfly) )
                   );
     $Is{Android} = $^O =~ /android/;
-    if ( $^O eq 'darwin' && $^X eq '/usr/bin/perl' ) {
+    if ( $^O eq 'darwin' ) {
       my @osvers = split /\./, $Config{osvers};
-      $Is{ApplCor} = ( $osvers[0] >= 18 );
+      if ( $^X eq '/usr/bin/perl' ) {
+        $Is{ApplCor} = ( $osvers[0] >= 18 );
+      }
+      $Is{AppleRPath} = ( $osvers[0] >= 9 );
     }
 }
 
@@ -1054,7 +1058,7 @@ sub xs_make_dynamic_lib {
         if ( $Is{IRIX} ) {
             $ldrun = qq{-rpath "$self->{LD_RUN_PATH}"};
         }
-        elsif ( $^O eq 'darwin' ) {
+        elsif ( $^O eq 'darwin' && $Is{AppleRPath} ) {
             # both clang and gcc support -Wl,-rpath, but only clang supports
             # -rpath so by using -Wl,-rpath we avoid having to check for the
             # type of compiler
@@ -2193,7 +2197,7 @@ Add MM_Unix_VERSION.
 sub init_platform {
     my($self) = shift;
 
-    $self->{MM_Unix_VERSION} = $VERSION;
+    $self->{MM_Unix_VERSION} = our $VERSION;
     $self->{PERL_MALLOC_DEF} = '-DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc '.
                                '-Dfree=Perl_mfree -Drealloc=Perl_realloc '.
                                '-Dcalloc=Perl_calloc';
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm,v
diff -u -p -a -u -p -r1.6 MM_VMS.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm	21 Feb 2024 15:47:00 -0000
@@ -16,7 +16,7 @@ BEGIN {
 
 use File::Basename;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Any;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm,v
diff -u -p -a -u -p -r1.6 MM_VOS.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MM_VOS;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Unix;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm,v
diff -u -p -a -u -p -r1.6 MM_Win32.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm	21 Feb 2024 15:47:00 -0000
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw(neatvalue _sp
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 $ENV{EMXSHELL} = 'sh'; # to run `commands`
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm,v
diff -u -p -a -u -p -r1.6 MM_Win95.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::MM_Win95;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require ExtUtils::MM_Win32;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm,v
diff -u -p -a -u -p -r1.6 MY.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::MY;
 use strict;
 require ExtUtils::MM;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 our @ISA = qw(ExtUtils::MM);
 
@@ -30,7 +30,7 @@ ExtUtils::MY - ExtUtils::MakeMaker subcl
 
 B<FOR INTERNAL USE ONLY>
 
-ExtUtils::MY is a subclass of L<ExtUtils::MM>.  Its provided in your
+ExtUtils::MY is a subclass of L<ExtUtils::MM>.  It is provided in your
 Makefile.PL for you to add and override MakeMaker functionality.
 
 It also provides a convenient alias via the MY class.
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm,v
diff -u -p -a -u -p -r1.10 MakeMaker.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm	15 Feb 2023 01:36:17 -0000	1.10
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm	21 Feb 2024 15:47:00 -0000
@@ -25,7 +25,7 @@ my %Recognized_Att_Keys;
 our %macro_fsentity; # whether a macro is a filesystem name
 our %macro_dep; # whether a macro is a dependency
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 # Emulate something resembling CVS $Revision$
@@ -525,7 +525,10 @@ sub new {
                     # simulate "use warnings FATAL => 'all'" for vintage perls
                     die @_;
                 };
-                version->new( $perl_version )->numify;
+                my $v = version->new($perl_version);
+                # we care about parse issues, not numify warnings
+                no warnings;
+                $v->numify;
             };
             $perl_version =~ tr/_//d
                 if defined $perl_version;
@@ -1151,19 +1154,20 @@ sub check_hints {
 }
 
 sub _run_hintfile {
-    my ($self, $hint_file) = @_;
+    our $self;
+    local($self) = shift;       # make $self available to the hint file.
+    my($hint_file) = shift;
 
     local($@, $!);
     print "Processing hints file $hint_file\n" if $Verbose;
 
-    if(open(my $fh, '<', $hint_file)) {
-        my $hints_content = do { local $/; <$fh> };
-        no strict;
-        eval $hints_content;
-        warn "Failed to run hint file $hint_file: $@" if $@;
-    }
-    else {
-        warn "Could not open $hint_file for read: $!";
+    # Just in case the ./ isn't on the hint file, which File::Spec can
+    # often strip off, we bung the curdir into @INC
+    local @INC = (File::Spec->curdir, @INC);
+    my $ret = do $hint_file;
+    if( !defined $ret ) {
+        my $error = $@ || $!;
+        warn $error;
     }
 }
 
@@ -1262,6 +1266,7 @@ sub write_file_via_tmp {
     die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents;
     for my $chunk (@$contents) {
         my $to_write = $chunk;
+        $to_write = '' unless defined $to_write;
         utf8::encode $to_write if !$CAN_DECODE && "$]" > 5.008;
         print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!";
     }
@@ -1331,26 +1336,6 @@ sub neatvalue {
     return "{ ".join(', ',@m)." }";
 }
 
-sub _find_magic_vstring {
-    my $value = shift;
-    return $value if $UNDER_CORE;
-    my $tvalue = '';
-    require B;
-    my $sv = B::svref_2object(\$value);
-    my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
-    while ( $magic ) {
-        if ( $magic->TYPE eq 'V' ) {
-            $tvalue = $magic->PTR;
-            $tvalue =~ s/^v?(.+)$/v$1/;
-            last;
-        }
-        else {
-            $magic = $magic->MOREMAGIC;
-        }
-    }
-    return $tvalue;
-}
-
 sub selfdocument {
     my($self) = @_;
     my(@m);
@@ -3297,7 +3282,7 @@ are generated when F<Makefile.PL> genera
 is installed).  Clients like L<CPAN> or L<CPANPLUS> will read these
 files to see what prerequisites must be fulfilled before building or testing
 the distribution.  If you wish to shut this feature off, set the C<NO_MYMETA>
-C<WriteMakeFile()> flag to true.
+C<WriteMakefile()> flag to true.
 
 =head2 Disabling an extension
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm,v
diff -u -p -a -u -p -r1.6 Mkbootstrap.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 require Exporter;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm,v
diff -u -p -a -u -p -r1.6 Mksymlists.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@ use Config;
 
 our @ISA = qw(Exporter);
 our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 sub Mksymlists {
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm,v
diff -u -p -a -u -p -r1.6 testlib.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use Cwd;
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm,v
diff -u -p -a -u -p -r1.6 MM.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm	21 Feb 2024 15:47:00 -0000
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
 
 our @EXPORT  = qw(test_harness pod2man perllocal_install uninstall
                   warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 my $Is_VMS = $^O eq 'VMS';
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm,v
diff -u -p -a -u -p -r1.6 Kid.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@ use 5.006;
 
 use strict;
 use warnings;
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use ExtUtils::MakeMaker::Config;
@@ -62,6 +62,7 @@ sub _unix_os2_ext {
 		chomp(my @incpath = grep s/^ //, grep { /^#include </ .. /^End of search / } `$Config{cc} -E -v - </dev/null 2>&1 >/dev/null`);
 		unshift @libpath, map { s{/include[^/]*}{/lib}; $_ } @incpath
 	}
+	@libpath = grep -d, @libpath;
 
     if ( $^O eq 'darwin' or $^O eq 'next' )  {
         # 'escape' Mach-O ld -framework and -F flags, so they aren't dropped later on
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm,v
diff -u -p -a -u -p -r1.6 Config.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package ExtUtils::MakeMaker::Config;
 use strict;
 use warnings;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 use Config ();
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod,v
diff -u -p -a -u -p -r1.10 FAQ.pod
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod	15 Feb 2023 01:36:17 -0000	1.10
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod	21 Feb 2024 15:47:00 -0000
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::FAQ;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 1;
@@ -129,7 +129,7 @@ Let's take the following test directory 
     t/bar/othertest.t
     t/bar/baz/anothertest.t
 
-Now, inside of the C<WriteMakeFile()> function in your F<Makefile.PL>, specify
+Now, inside of the C<WriteMakefile()> function in your F<Makefile.PL>, specify
 where your tests are located with the C<test> directive:
 
     test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
@@ -536,8 +536,7 @@ And of course a very basic test:
 
   t/cool.t:
   --------
-  use Test;
-  BEGIN { plan tests => 1 };
+  use Test::More tests => 1;
   use Cool::Foo;
   use Cool::Bar;
   Cool::Foo::perl_rules();
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm,v
diff -u -p -a -u -p -r1.4 Locale.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm	15 Feb 2023 01:36:17 -0000	1.4
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Locale;
 
 use strict;
 use warnings;
-our $VERSION = "7.64";
+our $VERSION = "7.70";
 $VERSION =~ tr/_//d;
 
 use base 'Exporter';
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod,v
diff -u -p -a -u -p -r1.6 Tutorial.pod
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod	15 Feb 2023 01:36:17 -0000	1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod	21 Feb 2024 15:47:00 -0000
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::Tutorial;
 
-our $VERSION = '7.64';
+our $VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 
@@ -112,7 +112,7 @@ example:
 
     t/foo/subdir_test.t
 
-To do this, you need to inform C<WriteMakeFile()> in your I<Makefile.PL> file
+To do this, you need to inform C<WriteMakefile()> in your I<Makefile.PL> file
 in the following fashion:
 
     test => {TESTS => 't/*.t t/*/*.t'}
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm,v
diff -u -p -a -u -p -r1.4 version.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm	15 Feb 2023 01:36:17 -0000	1.4
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm	21 Feb 2024 15:47:00 -0000
@@ -16,7 +16,7 @@ use warnings;
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = '7.64';
+$VERSION = '7.70';
 $VERSION =~ tr/_//d;
 $CLASS = 'version';
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm,v
diff -u -p -a -u -p -r1.4 regex.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm	15 Feb 2023 01:36:17 -0000	1.4
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@ use warnings;
 
 use vars qw($VERSION $CLASS $STRICT $LAX);
 
-$VERSION = '7.64';
+$VERSION = '7.70';
 $VERSION =~ tr/_//d;
 
 #--------------------------------------------------------------------------#
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST.t,v
diff -u -p -a -u -p -r1.1.1.5 INST.t
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST.t	15 Feb 2023 01:32:33 -0000	1.1.1.5
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST.t	21 Feb 2024 15:47:00 -0000
@@ -76,7 +76,7 @@ is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE
 
 my($perl_src, $mm_perl_src);
 if( $ENV{PERL_CORE} ) {
-    $perl_src = File::Spec->catdir($Updir, $Updir, $Updir, $Updir, $Updir);
+    $perl_src = File::Spec->catdir($Updir, $Updir, $Updir, $Updir, $Updir, $Updir);
     $perl_src = File::Spec->canonpath($perl_src);
     $mm_perl_src = File::Spec->canonpath($mm->{PERL_SRC});
 }
@@ -84,7 +84,7 @@ else {
     $mm_perl_src = $mm->{PERL_SRC};
 }
 
-is( $mm_perl_src, $perl_src,     'PERL_SRC' );
+is( $mm_perl_src, $perl_src,     "PERL_SRC" );
 
 
 # PERM_*
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t,v
diff -u -p -a -u -p -r1.1.1.5 INST_PREFIX.t
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t	15 Feb 2023 01:32:33 -0000	1.1.1.5
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t	21 Feb 2024 15:47:00 -0000
@@ -109,7 +109,7 @@ is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE
 
 my($perl_src, $mm_perl_src);
 if( $ENV{PERL_CORE} ) {
-    $perl_src = File::Spec->catdir($Updir, $Updir, $Updir, $Updir, $Updir);
+    $perl_src = File::Spec->catdir($Updir, $Updir, $Updir, $Updir, $Updir, $Updir);
     $perl_src = File::Spec->canonpath($perl_src);
     $mm_perl_src = File::Spec->canonpath($mm->{PERL_SRC});
 }
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/eu_command.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/eu_command.t,v
diff -u -p -a -u -p -r1.5 eu_command.t
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/eu_command.t	15 Feb 2023 01:36:17 -0000	1.5
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/eu_command.t	21 Feb 2024 15:47:00 -0000
@@ -67,7 +67,14 @@ BEGIN {
 
     my ($now) = time;
     utime ($now, $now, $ARGV[0]);
-    sleep 2;
+
+    sleep 3; # note this affects the "newer file created"
+             # we used to sleep 2, but with the vagaries of sleep
+             # this meant that occasionally that test would fail
+             # on cygwin, by virtue of seeing only a one second
+             # difference. Sleeping 3 seconds should ensure
+             # that we get at least 2 seconds difference for
+             # that test.
 
     # Just checking modify time stamp, access time stamp is set
     # to the beginning of the day in Win95.
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/hints.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/hints.t,v
diff -u -p -a -u -p -r1.1.1.5 hints.t
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/hints.t	15 Feb 2023 01:32:34 -0000	1.1.1.5
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/hints.t	21 Feb 2024 15:47:00 -0000
@@ -61,8 +61,9 @@ CLOO
     local $SIG{__WARN__} = sub { $stderr .= join '', @_ };
 
     $mm->check_hints;
-    my $Escaped_Hint_File = quotemeta($Hint_File);
-    like( $stderr, qr{^Failed to run hint file $Escaped_Hint_File: Argh!\n\z}, 'hint files produce errors' );
+    is( $stderr, <<OUT, 'hint files produce errors' );
+Argh!
+OUT
 }
 
 END {
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t,v
diff -u -p -a -u -p -r1.4 min_perl_version.t
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t	15 Feb 2023 01:36:17 -0000	1.4
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/min_perl_version.t	21 Feb 2024 15:47:00 -0000
@@ -17,7 +17,7 @@ use ExtUtils::MM;
 use Test::More
     !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
     ? (skip_all => "cross-compiling and make not available")
-    : (tests => 35);
+    : (tests => 37);
 use File::Path;
 
 use ExtUtils::MakeMaker;
@@ -121,6 +121,17 @@ note "Argument verification"; {
         );
     };
     is( $warnings, '', 'MIN_PERL_VERSION=X.Y.Z does not trigger a warning' );
+    is( $@, '',        '  nor a hard failure' );
+
+
+    $warnings = '';
+    eval {
+        WriteMakefile(
+            NAME             => 'Min::PerlVers',
+            MIN_PERL_VERSION => '5.005_04',
+        );
+    };
+    is( $warnings, '', 'MIN_PERL_VERSION=5.005_04 does not trigger a warning' );
     is( $@, '',        '  nor a hard failure' );
 
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm,v
diff -u -p -a -u -p -r1.1.1.6 BFD.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm	15 Feb 2023 01:32:34 -0000	1.1.1.6
+++ gnu/usr.bin/perl/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm	21 Feb 2024 15:47:00 -0000
@@ -103,11 +103,20 @@ END
 
             );
 
+my $tmpdir;
 
 # if given args, those are inserted as components in resulting path, eg:
 # setup_recurs('dir') means instead of creating Big-Dummy/*, dir/Big-Dummy/*
 sub setup_recurs {
-    while(my($file, $text) = each %Files) {
+    my @chrs = ( "A" .. "Z", 0 .. 9 );
+    # annoyingly we cant use File::Temp here as it drags in XS code
+    # and we run under blocks to prevent XS code loads. This is a minimal
+    # patch to fix the issue.
+    $tmpdir = join "", "./temp-$$-", map { $chrs[rand(@chrs)] } 1..8;
+    mkdir($tmpdir) or die "Failed to create '$tmpdir': $!";
+    chdir($tmpdir) or die "Failed to chdir '$tmpdir': $!";
+    foreach my $file (sort keys %Files) {
+        my $text = $Files{$file};
         # Convert to a relative, native file path.
         $file = File::Spec->catfile(File::Spec->curdir, @_, split m{\/}, $file);
         $file = File::Spec->rel2abs($file);
@@ -131,9 +140,11 @@ sub teardown_recurs {
     foreach my $file (keys %Files) {
         my $dir = dirname($file);
         if( -e $dir ) {
-            rmtree($dir) || return;
+            rmtree($dir) or next;
         }
     }
+    chdir("..");
+    rmtree($tmpdir);
     return 1;
 }
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/lib/ExtUtils/PL2Bat.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/lib/ExtUtils/PL2Bat.pm,v
diff -u -p -a -u -p -r1.1.1.1 PL2Bat.pm
--- gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/lib/ExtUtils/PL2Bat.pm	15 Feb 2023 01:32:36 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/lib/ExtUtils/PL2Bat.pm	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 package ExtUtils::PL2Bat;
-$ExtUtils::PL2Bat::VERSION = '0.004';
+$ExtUtils::PL2Bat::VERSION = '0.005';
 use strict;
 use warnings;
 
@@ -122,7 +122,7 @@ ExtUtils::PL2Bat - Batch file creation t
 
 =head1 VERSION
 
-version 0.004
+version 0.005
 
 =head1 OVERVIEW
 
Index: gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/t/make_executable.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/t/make_executable.t,v
diff -u -p -a -u -p -r1.1.1.1 make_executable.t
--- gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/t/make_executable.t	15 Feb 2023 01:32:36 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/ExtUtils-PL2Bat/t/make_executable.t	21 Feb 2024 15:47:00 -0000
@@ -13,6 +13,11 @@ my @test_vals = ( 0, 1, 2, 3, -1, -2, 65
 
 plan($OSNAME eq 'MSWin32' ? ( tests => (($#test_vals+1)*5)+2 ) : ( skip_all => 'Only usable on Windows' ));
 
+# the method of execution of the test script is geared to cmd.exe so ensure
+# this is used in case the user have some non-standard shell.
+# E.g. TCC/4NT doesn't quite handle the invocation correctly producing errors.
+$ENV{COMSPEC} = "$ENV{SystemRoot}\\System32\\cmd.exe";
+
 my $perl_in_fname = 'test_perl_source';
 
 open my $out, '>', $perl_in_fname or die qq{Couldn't create source file ("$perl_in_fname"): $!};
Index: gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm,v
diff -u -p -a -u -p -r1.5 Call.pm
--- gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm	15 Feb 2023 01:36:18 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.pm	21 Feb 2024 15:47:01 -0000
@@ -1,7 +1,7 @@
 # Call.pm
 #
 # Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
-# Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+# Copyright (c) 2011-2014, 2018-2022 Reini Urban. All rights reserved.
 # Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@ use warnings;
 
 our @ISA = qw(Exporter);
 our @EXPORT = qw( filter_add filter_del filter_read filter_read_exact) ;
-our $VERSION = "1.60" ;
+our $VERSION = "1.64" ;
 our $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -528,7 +528,7 @@ Paul Marquess 
 =head1 LICENSE
 
 Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
-Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+Copyright (c) 2011-2014, 2018-2022 Reini Urban. All rights reserved.
 Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
 
 This program is free software; you can redistribute it and/or
Index: gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs,v
diff -u -p -a -u -p -r1.5 Call.xs
--- gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs	15 Feb 2023 01:36:18 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Filter-Util-Call/Call.xs	21 Feb 2024 15:47:01 -0000
@@ -1,12 +1,12 @@
 /* 
  * Filename : Call.xs
  * 
- * Author   : Paul Marquess 
- * Date     : 2014-12-09 02:48:44 rurban
- * Version  : 1.60
+ * Author   : Reini Urban
+ * Date     : Di 16. Aug 7:59:10 CEST 2022
+ * Version  : 1.64
  *
  *    Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
- *    Copyright (c) 2011-2014 Reini Urban. All rights reserved.
+ *    Copyright (c) 2011-2014, 2018 Reini Urban. All rights reserved.
  *       This program is free software; you can redistribute it and/or
  *              modify it under the same terms as Perl itself.
  *
Index: gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm,v
diff -u -p -a -u -p -r1.8 Long.pm
--- gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm	15 Feb 2023 01:36:18 -0000	1.8
+++ gnu/usr.bin/perl/cpan/Getopt-Long/lib/Getopt/Long.pm	21 Feb 2024 15:47:00 -0000
@@ -4,12 +4,14 @@
 # Author          : Johan Vromans
 # Created On      : Tue Sep 11 15:00:12 1990
 # Last Modified By: Johan Vromans
-# Last Modified On: Tue Aug 18 14:48:05 2020
-# Update Count    : 1739
+# Last Modified On: Thu Nov 17 17:45:27 2022
+# Update Count    : 1777
 # Status          : Released
 
 ################ Module Preamble ################
 
+# There are no CPAN testers for very old versions of Perl.
+# Getopt::Long is reported to run under 5.8.
 use 5.004;
 
 use strict;
@@ -18,10 +20,10 @@ use warnings;
 package Getopt::Long;
 
 use vars qw($VERSION);
-$VERSION        =  2.52;
+$VERSION        =  2.54;
 # For testing versions only.
 use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.52";
+$VERSION_STRING = "2.54";
 
 use Exporter;
 use vars qw(@ISA @EXPORT @EXPORT_OK);
@@ -258,9 +260,9 @@ use constant PAT_XINT  =>
   ")";
 use constant PAT_FLOAT =>
   "[-+]?".			# optional sign
-  "(?=[0-9.])".			# must start with digit or dec.point
+  "(?=\\.?[0-9])".		# must start with digit or dec.point
   "[0-9_]*".			# digits before the dec.point
-  "(\.[0-9_]+)?".		# optional fraction
+  "(\\.[0-9_]*)?".		# optional fraction
   "([eE][-+]?[0-9_]+)?";	# optional exponent
 
 sub GetOptions(@) {
@@ -525,8 +527,9 @@ sub GetOptionsFromArray(@) {
 	my $key;		# key (if hash type)
 	my $arg;		# option argument
 	my $ctl;		# the opctl entry
+	my $starter;		# the actual starter character(s)
 
-	($found, $opt, $ctl, $arg, $key) =
+	($found, $opt, $ctl, $starter, $arg, $key) =
 	  FindOption ($argv, $prefix, $argend, $opt, \%opctl);
 
 	if ( $found ) {
@@ -606,12 +609,13 @@ sub GetOptionsFromArray(@) {
 			    eval {
 				&{$linkage{$opt}}
 				  (Getopt::Long::CallBack->new
-				   (name    => $opt,
-				    given   => $given,
-				    ctl     => $ctl,
-				    opctl   => \%opctl,
-				    linkage => \%linkage,
-				    prefix  => $prefix,
+				   (name     => $opt,
+				    given    => $given,
+				    ctl      => $ctl,
+				    opctl    => \%opctl,
+				    linkage  => \%linkage,
+				    prefix   => $prefix,
+				    starter  => $starter,
 				   ),
 				   $ctl->[CTL_DEST] == CTL_DEST_HASH ? ($key) : (),
 				   $arg);
@@ -818,7 +822,7 @@ sub ParseOptionSpec ($$) {
 		     [=:] [ionfs] [@%]? (?: \{\d*,?\d*\} )?
 		     |
 		     # ... or an optional-with-default spec
-		     : (?: -?\d+ | \+ ) [@%]?
+		     : (?: 0[0-7]+ | 0[xX][0-9a-fA-F]+ | 0[bB][01]+ | -?\d+ | \+ ) [@%]?
 		   )?
 		   $;x ) {
 	return (undef, "Error in option spec: \"$opt\"\n");
@@ -851,10 +855,23 @@ sub ParseOptionSpec ($$) {
 	# Fields are hard-wired here.
 	$entry = [$spec,$orig,undef,CTL_DEST_SCALAR,0,0];
     }
-    elsif ( $spec =~ /^:(-?\d+|\+)([@%])?$/ ) {
+    elsif ( $spec =~ /^:(0[0-7]+|0x[0-9a-f]+|0b[01]+|-?\d+|\+)([@%])?$/i ) {
 	my $def = $1;
 	my $dest = $2;
-	my $type = $def eq '+' ? 'I' : 'i';
+	my $type = 'i';		# assume integer
+	if ( $def eq '+' ) {
+	    # Increment.
+	    $type = 'I';
+	}
+	elsif ( $def =~ /^(0[0-7]+|0[xX][0-9a-fA-F]+|0[bB][01]+)$/ ) {
+	    # Octal, binary or hex.
+	    $type = 'o';
+	    $def = oct($def);
+	}
+	elsif ( $def =~ /^-?\d+$/ ) {
+	    # Integer.
+	    $def = 0 + $def;
+	}
 	$dest ||= '$';
 	$dest = $dest eq '@' ? CTL_DEST_ARRAY
 	  : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR;
@@ -923,7 +940,7 @@ sub ParseOptionSpec ($$) {
 # Option lookup.
 sub FindOption ($$$$$) {
 
-    # returns (1, $opt, $ctl, $arg, $key) if okay,
+    # returns (1, $opt, $ctl, $starter, $arg, $key) if okay,
     # returns (1, undef) if option in error,
     # returns (0) otherwise.
 
@@ -1104,7 +1121,7 @@ sub FindOption ($$$$$) {
 	    $arg = 0;		# supply explicit value
 	}
 	unshift (@$argv, $starter.$rest) if defined $rest;
-	return (1, $opt, $ctl, $arg);
+	return (1, $opt, $ctl, $starter, $arg);
     }
 
     # Get mandatory status and type info.
@@ -1127,15 +1144,15 @@ sub FindOption ($$$$$) {
 		# Fake incremental type.
 		my @c = @$ctl;
 		$c[CTL_TYPE] = '+';
-		return (1, $opt, \@c, 1);
+		return (1, $opt, \@c, $starter, 1);
 	    }
 	    my $val
 	      = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT]
 	      : $type eq 's'                 ? ''
 	      :                                0;
-	    return (1, $opt, $ctl, $val);
+	    return (1, $opt, $ctl, $starter, $val);
 	}
-	return (1, $opt, $ctl, $type eq 's' ? '' : 0)
+	return (1, $opt, $ctl, $starter, $type eq 's' ? '' : 0)
 	  if $optargtype == 1;  # --foo=  -> return nothing
     }
 
@@ -1155,9 +1172,9 @@ sub FindOption ($$$$$) {
 	    # Fake incremental type.
 	    my @c = @$ctl;
 	    $c[CTL_TYPE] = '+';
-	    return (1, $opt, \@c, 1);
+	    return (1, $opt, \@c, $starter, 1);
 	}
-	return (1, $opt, $ctl,
+	return (1, $opt, $ctl, $starter,
 		defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] :
 		$type eq 's' ? '' : 0);
     }
@@ -1187,16 +1204,16 @@ sub FindOption ($$$$$) {
 
     if ( $type eq 's' ) {	# string
 	# A mandatory string takes anything.
-	return (1, $opt, $ctl, $arg, $key) if $mand;
+	return (1, $opt, $ctl, $starter, $arg, $key) if $mand;
 
 	# Same for optional string as a hash value
-	return (1, $opt, $ctl, $arg, $key)
+	return (1, $opt, $ctl, $starter, $arg, $key)
 	  if $ctl->[CTL_DEST] == CTL_DEST_HASH;
 
 	# An optional string takes almost anything.
-	return (1, $opt, $ctl, $arg, $key)
+	return (1, $opt, $ctl, $starter, $arg, $key)
 	  if defined $optarg || defined $rest;
-	return (1, $opt, $ctl, $arg, $key) if $arg eq "-"; # ??
+	return (1, $opt, $ctl, $starter, $arg, $key) if $arg eq "-"; # ??
 
 	# Check for option or option list terminator.
 	if ($arg eq $argend ||
@@ -1248,7 +1265,7 @@ sub FindOption ($$$$$) {
 		    # Fake incremental type.
 		    my @c = @$ctl;
 		    $c[CTL_TYPE] = '+';
-		    return (1, $opt, \@c, 1);
+		    return (1, $opt, \@c, $starter, 1);
 		}
 		# Supply default value.
 		$arg = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : 0;
@@ -1293,7 +1310,7 @@ sub FindOption ($$$$$) {
     else {
 	die("Getopt::Long internal error (Can't happen)\n");
     }
-    return (1, $opt, $ctl, $arg, $key);
+    return (1, $opt, $ctl, $starter, $arg, $key);
 }
 
 sub ValidValue ($$$$$) {
@@ -1529,8 +1546,9 @@ sub setup_pa_args($@) {
 
     if ( UNIVERSAL::isa($pa, 'HASH') ) {
 	# Get rid of -msg vs. -message ambiguity.
-	$pa->{-message} = $pa->{-msg};
-	delete($pa->{-msg});
+	if (!defined $pa->{-message}) {
+	    $pa->{-message} = delete($pa->{-msg});
+	}
     }
     elsif ( $pa =~ /^-?\d+$/ ) {
 	$pa = { -exitval => $pa };
@@ -1714,6 +1732,9 @@ disable C<$verbose> by setting its value
 default value, the program can find out whether C<$verbose> is false
 by default, or disabled by using C<--noverbose>.
 
+(If both C<--verbose> and C<--noverbose> are given, whichever is given
+last takes precedence.)
+
 An incremental option is specified with a plus C<+> after the
 option name:
 
@@ -1766,6 +1787,10 @@ of the equals sign indicates that the op
 this case, if no suitable value is supplied, string valued options get
 an empty string C<''> assigned, while numeric options are set to C<0>.
 
+(If the same option appears more than once on the command line, the
+last given value is used.  If you want to take all the values, see
+below.)
+
 =head2 Options with multiple values
 
 Options sometimes take several values. For example, a program could
@@ -2009,6 +2034,8 @@ considered an option on itself.
 =item : I<number> [ I<desttype> ]
 
 Like C<:i>, but if the value is omitted, the I<number> will be assigned.
+
+If the I<number> is octal, hexadecimal or binary, behaves like C<:o>.
 
 =item : + [ I<desttype> ]
 
Index: gnu/usr.bin/perl/cpan/Getopt-Long/t/gol-basic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Getopt-Long/t/gol-basic.t,v
diff -u -p -a -u -p -r1.1.1.2 gol-basic.t
--- gnu/usr.bin/perl/cpan/Getopt-Long/t/gol-basic.t	15 Feb 2023 01:32:48 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Getopt-Long/t/gol-basic.t	21 Feb 2024 15:47:00 -0000
@@ -15,7 +15,7 @@ die("Getopt::Long version $want_version 
     $Getopt::Long::VERSION)
   unless $Getopt::Long::VERSION ge $want_version;
 
-print "1..12\n";
+print "1..18\n";
 
 @ARGV = qw(-Foo -baR --foo bar);
 undef $opt_baR;
@@ -43,3 +43,26 @@ print ($rv ? "" : "not "); print "ok 10\
 print ("@ARGV" eq 'file' ? "" : "not ", "ok 11\n");
 ( $HELP && $FOO && !$BAR && $FILE eq 'foo' && $NO == 5 )
     ? print "" : print "not "; print "ok 12\n";
+
+# Test behaviour when the same option name is given twice, but not an multi-value option.
+# The option given later on the command line is used.
+#
+{
+    my $foo;
+
+    @ARGV = qw(--foo a --foo b);
+    $rd = GetOptions('foo=s' => \$foo);
+    print ($rv ? "" : "not "); print "ok 13\n";
+    print ($foo eq 'b' ? "" : "not ", "ok 14\n");
+
+    @ARGV = qw(--no-foo --foo);
+    $rd = GetOptions('foo!' => \$foo);
+    print ($rv ? "" : "not "); print "ok 15\n";
+    print ($foo eq '1' ? "" : "not ", "ok 16\n");
+
+    @ARGV = qw(--foo --no-foo);
+    $rd = GetOptions('foo!' => \$foo);
+    print ($rv ? "" : "not "); print "ok 17\n";
+    # Check it is set to an explicit 0.
+    print ($foo eq '0' ? "" : "not ", "ok 18\n");
+}
Index: gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm,v
diff -u -p -a -u -p -r1.6 Tiny.pm
--- gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm	15 Feb 2023 01:36:18 -0000	1.6
+++ gnu/usr.bin/perl/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm	21 Feb 2024 15:47:00 -0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 # ABSTRACT: A small, simple, correct HTTP/1.1 client
 
-our $VERSION = '0.080';
+our $VERSION = '0.086';
 
 sub _croak { require Carp; Carp::croak(@_) }
 
@@ -40,10 +40,15 @@ sub _croak { require Carp; Carp::croak(@
 #pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
 #pod   read or write takes longer than the timeout, the request response status code
 #pod   will be 599.
-#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
-#pod   certificate of an C<https> — connection (default is false)
+#pod * C<verify_SSL> — A boolean that indicates whether to validate the TLS/SSL
+#pod   certificate of an C<https> — connection (default is true). Changed from false
+#pod   to true in version 0.083.
 #pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
 #pod   L<IO::Socket::SSL>
+#pod * C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}> - Changes the default
+#pod   certificate verification behavior to not check server identity if set to 1.
+#pod   Only effective if C<verify_SSL> is not set. Added in version 0.083.
+#pod
 #pod
 #pod An accessor/mutator method exists for each attribute.
 #pod
@@ -111,11 +116,17 @@ sub timeout {
 sub new {
     my($class, %args) = @_;
 
+    # Support lower case verify_ssl argument, but only if verify_SSL is not
+    # true.
+    if ( exists $args{verify_ssl} ) {
+        $args{verify_SSL}  ||= $args{verify_ssl};
+    }
+
     my $self = {
         max_redirect => 5,
         timeout      => defined $args{timeout} ? $args{timeout} : 60,
         keep_alive   => 1,
-        verify_SSL   => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
+        verify_SSL   => defined $args{verify_SSL} ? $args{verify_SSL} : _verify_SSL_default(),
         no_proxy     => $ENV{no_proxy},
     };
 
@@ -134,6 +145,13 @@ sub new {
     return $self;
 }
 
+sub _verify_SSL_default {
+    my ($self) = @_;
+    # Check if insecure default certificate verification behaviour has been
+    # changed by the user by setting PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1
+    return (($ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
+}
+
 sub _set_proxies {
     my ($self) = @_;
 
@@ -245,9 +263,10 @@ sub post_form {
     while ( my ($key, $value) = each %{$args->{headers} || {}} ) {
         $headers->{lc $key} = $value;
     }
-    delete $args->{headers};
 
     return $self->request('POST', $url, {
+            # Any existing 'headers' key in $args will be overridden with a
+            # normalized version below.
             %$args,
             content => $self->www_form_urlencode($data),
             headers => {
@@ -389,6 +408,10 @@ sub mirror {
 #pod customizing the action of the callback based on the C<status> or C<headers>
 #pod received prior to the content body.)
 #pod
+#pod Content data in the request/response is handled as "raw bytes".  Any
+#pod encoding/decoding (with associated headers) are the responsibility of the
+#pod caller.
+#pod
 #pod The C<request> method returns a hashref containing the response.  The hashref
 #pod will have the following keys:
 #pod
@@ -1055,7 +1078,7 @@ sub new {
         timeout          => 60,
         max_line_size    => 16384,
         max_header_lines => 64,
-        verify_SSL       => 0,
+        verify_SSL       => HTTP::Tiny::_verify_SSL_default(),
         SSL_options      => {},
         %args
     }, $class;
@@ -1704,7 +1727,7 @@ HTTP::Tiny - A small, simple, correct HT
 
 =head1 VERSION
 
-version 0.080
+version 0.086
 
 =head1 SYNOPSIS
 
@@ -1797,12 +1820,16 @@ C<timeout> — Request timeout in second
 
 =item *
 
-C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is false)
+C<verify_SSL> — A boolean that indicates whether to validate the TLS/SSL certificate of an C<https> — connection (default is true). Changed from false to true in version 0.083.
 
 =item *
 
 C<SSL_options> — A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL>
 
+=item *
+
+C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}> - Changes the default certificate verification behavior to not check server identity if set to 1. Only effective if C<verify_SSL> is not set. Added in version 0.083.
+
 =back
 
 An accessor/mutator method exists for each attribute.
@@ -1943,6 +1970,10 @@ in-progress response hash reference, as 
 customizing the action of the callback based on the C<status> or C<headers>
 received prior to the content body.)
 
+Content data in the request/response is handled as "raw bytes".  Any
+encoding/decoding (with associated headers) are the responsibility of the
+caller.
+
 The C<request> method returns a hashref containing the response.  The hashref
 will have the following keys:
 
@@ -2043,11 +2074,11 @@ proxy
 timeout
 verify_SSL
 
-=head1 SSL SUPPORT
+=head1 TLS/SSL SUPPORT
 
 Direct C<https> connections are supported only if L<IO::Socket::SSL> 1.56 or
 greater and L<Net::SSLeay> 1.49 or greater are installed. An error will occur
-if new enough versions of these modules are not installed or if the SSL
+if new enough versions of these modules are not installed or if the TLS
 encryption fails. You can also use C<HTTP::Tiny::can_ssl()> utility function
 that returns boolean to see if the required modules are installed.
 
@@ -2055,7 +2086,7 @@ An C<https> connection may be made via a
 command (i.e. RFC 2817).  You may not proxy C<https> via a proxy that itself
 requires C<https> to communicate.
 
-SSL provides two distinct capabilities:
+TLS/SSL provides two distinct capabilities:
 
 =over 4
 
@@ -2069,24 +2100,17 @@ Verification of server identity
 
 =back
 
-B<By default, HTTP::Tiny does not verify server identity>.
+B<By default, HTTP::Tiny verifies server identity>.
 
-Server identity verification is controversial and potentially tricky because it
-depends on a (usually paid) third-party Certificate Authority (CA) trust model
-to validate a certificate as legitimate.  This discriminates against servers
-with self-signed certificates or certificates signed by free, community-driven
-CA's such as L<CAcert.org|http://cacert.org>.
-
-By default, HTTP::Tiny does not make any assumptions about your trust model,
-threat level or risk tolerance.  It just aims to give you an encrypted channel
-when you need one.
-
-Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify
-that an SSL connection has a valid SSL certificate corresponding to the host
-name of the connection and that the SSL certificate has been verified by a CA.
-Assuming you trust the CA, this will protect against a L<man-in-the-middle
-attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>.  If you are
-concerned about security, you should enable this option.
+This was changed in version 0.083 due to security concerns. The previous default
+behavior can be enabled by setting C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}>
+to 1.
+
+Verification is done by checking that that the TLS/SSL connection has a valid
+certificate corresponding to the host name of the connection and that the
+certificate has been verified by a CA. Assuming you trust the CA, this will
+protect against L<machine-in-the-middle
+attacks|http://en.wikipedia.org/wiki/Machine-in-the-middle_attack>.
 
 Certificate verification requires a file containing trusted CA certificates.
 
@@ -2094,9 +2118,7 @@ If the environment variable C<SSL_CERT_F
 will try to find a CA certificate file in that location.
 
 If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file
-included with it as a source of trusted CA's.  (This means you trust Mozilla,
-the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the
-toolchain used to install it, and your operating system security, right?)
+included with it as a source of trusted CA's.
 
 If that module is not available, then HTTP::Tiny will search several
 system-specific default locations for a CA certificate file:
@@ -2115,13 +2137,33 @@ system-specific default locations for a 
 
 /etc/ssl/ca-bundle.pem
 
+=item *
+
+/etc/openssl/certs/ca-certificates.crt
+
+=item *
+
+/etc/ssl/cert.pem
+
+=item *
+
+/usr/local/share/certs/ca-root-nss.crt
+
+=item *
+
+/etc/pki/tls/cacert.pem
+
+=item *
+
+/etc/certs/ca-certificates.crt
+
 =back
 
 An error will be occur if C<verify_SSL> is true and no CA certificate file
 is available.
 
-If you desire complete control over SSL connections, the C<SSL_options> attribute
-lets you provide a hash reference that will be passed through to
+If you desire complete control over TLS/SSL connections, the C<SSL_options>
+attribute lets you provide a hash reference that will be passed through to
 C<IO::Socket::SSL::start_SSL()>, overriding any options set by HTTP::Tiny. For
 example, to provide your own trusted CA file:
 
@@ -2131,7 +2173,7 @@ example, to provide your own trusted CA 
 
 The C<SSL_options> attribute could also be used for such things as providing a
 client certificate for authentication to a server or controlling the choice of
-cipher used for the SSL connection. See L<IO::Socket::SSL> documentation for
+cipher used for the TLS/SSL connection. See L<IO::Socket::SSL> documentation for
 details.
 
 =head1 PROXY SUPPORT
@@ -2337,7 +2379,7 @@ David Golden <dagolden@cpan.org>
 
 =head1 CONTRIBUTORS
 
-=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Mitchell Dean Pearce Edward Zborowski Felipe Gasper Greg Kennedy James E Keenan Raspass Jeremy Mates Jess Robinson Karen Etheridge Lukas Eklund Martin J. Evans Martin-Louis Bright Matthew Horsfall Michael R. Davis Mike Doherty Nicolas Rochelemagne Olaf Alders Olivier Mengué Petr Písař sanjay-cpu Serguei Trouchelle Shoichi Kaji SkyMarshal Sören Kornetzki Steve Grazzini Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook Xavier Guimard
+=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Mitchell Dean Pearce Edward Zborowski Felipe Gasper Graham Knop Greg Kennedy James E Keenan Raspass Jeremy Mates Jess Robinson Karen Etheridge Lukas Eklund Martin J. Evans Martin-Louis Bright Matthew Horsfall Michael R. Davis Mike Doherty Nicolas Rochelemagne Olaf Alders Olivier Mengué Petr Písař sanjay-cpu Serguei Trouchelle Shoichi Kaji SkyMarshal Sören Kornetzki Steve Grazzini Stig Palmquist Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook Xavier Guimard
 
 =over 4
 
@@ -2407,6 +2449,10 @@ Felipe Gasper <felipe@felipegasper.com>
 
 =item *
 
+Graham Knop <haarg@haarg.org>
+
+=item *
+
 Greg Kennedy <kennedy.greg@gmail.com>
 
 =item *
@@ -2495,6 +2541,10 @@ Steve Grazzini <steve.grazzini@grantstre
 
 =item *
 
+Stig Palmquist <git@stig.io>
+
+=item *
+
 Syohei YOSHIDA <syohex@gmail.com>
 
 =item *
@@ -2517,7 +2567,7 @@ Xavier Guimard <yadd@debian.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2021 by Christian Hansen.
+This software is copyright (c) 2023 by Christian Hansen.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
Index: gnu/usr.bin/perl/cpan/HTTP-Tiny/t/180_verify_SSL.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/HTTP-Tiny/t/180_verify_SSL.t
diff -N gnu/usr.bin/perl/cpan/HTTP-Tiny/t/180_verify_SSL.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/HTTP-Tiny/t/180_verify_SSL.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,109 @@
+#!perl
+
+use strict;
+use warnings;
+use Test::More 0.88;
+use lib 't';
+
+use HTTP::Tiny;
+
+delete $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT};
+
+{
+    my $ht = HTTP::Tiny->new();
+    is($ht->verify_SSL, 1, "verify_SSL is 1 by default");
+}
+
+{
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 0
+    );
+    is($ht->verify_SSL, 0, "verify_SSL=>0 sets 0");
+}
+
+{
+    my $ht = HTTP::Tiny->new(
+        verify_ssl => 0
+    );
+    is($ht->verify_SSL, 0, "verify_ssl=>0 sets 0");
+}
+
+{
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 1,
+        verify_ssl => 0
+    );
+    is($ht->verify_SSL, 1, "verify_SSL=>1 and verify_ssl=>0 sets 1");
+}
+
+{
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 0,
+        verify_ssl => 1
+    );
+    is($ht->verify_SSL, 1, "verify_SSL=>0 and verify_ssl=>1 sets 1");
+}
+
+{
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 0,
+        verify_ssl => 0
+    );
+    is($ht->verify_SSL, 0, "verify_SSL=>0 and verify_ssl=>0 sets 0");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "1";
+    my $ht = HTTP::Tiny->new();
+    is($ht->verify_SSL, 0, "PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1 changes verify_SSL default to 0");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "0";
+    my $ht = HTTP::Tiny->new();
+    is($ht->verify_SSL, 1, "PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=0 keeps verify_SSL default at 1");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "False";
+    my $ht = HTTP::Tiny->new();
+    is($ht->verify_SSL, 1, "Unsupported PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=False keeps verify_SSL default at 1");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "1";
+    my $ht = HTTP::Tiny->new(verify_SSL=>1);
+    is($ht->verify_SSL, 1, "PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1 does not override verify_SSL attribute set to 1");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "1";
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 1,
+        verify_ssl => 1
+    );
+    is($ht->verify_SSL, 1, "PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1, verify_SSL=>1 and verify_ssl=>1 sets 1");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "1";
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 1,
+        verify_ssl => 0
+    );
+    is($ht->verify_SSL, 1, "PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1, verify_SSL=>1 and verify_ssl=>0 sets 1");
+}
+
+{
+    local $ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} = "1";
+    my $ht = HTTP::Tiny->new(
+        verify_SSL => 0,
+        verify_ssl => 0
+    );
+    is($ht->verify_SSL, 0, "PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1, verify_SSL=>0 and verify_ssl=>0 sets 0");
+}
+
+
+
+done_testing;
+
Index: gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL,v
diff -u -p -a -u -p -r1.7 Makefile.PL
--- gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -3,8 +3,8 @@
 use strict ;
 require 5.006 ;
 
-$::VERSION = '2.106' ;
-$::DEP_VERSION = '2.103';
+$::VERSION = '2.204' ;
+$::DEP_VERSION = '2.204';
 
 use lib '.';
 use private::MakeUtil;
@@ -29,6 +29,7 @@ WriteMakefile(
 		                    'Compress::Raw::Zlib'  => $::DEP_VERSION,
 		                    'Scalar::Util'  => 0,
                             'Encode'        => 0,
+                            'Time::Local'   => 0,
 		                    $] >= 5.005 && $] < 5.006
                                 ? ('File::BSDGlob' => 0)
                                 : () }
Index: gnu/usr.bin/perl/cpan/IO-Compress/bin/streamzip
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/bin/streamzip,v
diff -u -p -a -u -p -r1.1.1.2 streamzip
--- gnu/usr.bin/perl/cpan/IO-Compress/bin/streamzip	15 Feb 2023 01:32:41 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Compress/bin/streamzip	21 Feb 2024 15:47:01 -0000
@@ -12,7 +12,7 @@ use IO::Compress::Zip qw(zip
 
 use Getopt::Long;
 
-my $VERSION = '1.002';
+my $VERSION = '1.00';
 
 my $compression_method = ZIP_CM_DEFLATE;
 my $stream = 0;
@@ -51,6 +51,10 @@ if ($compression_method == ZIP_CM_DEFLAT
     push @extraOpts, (Level => $level)
 }
 
+# force streaming zip file when writing to stdout.
+$stream = 1
+    if $zipfile eq '-';
+
 zip '-' => $zipfile,
            Name   => $memberName,
            Zip64  => $zip64,
@@ -107,7 +111,8 @@ Usage:
   producer | streamzip [OPTIONS] | consumer
   producer | streamzip [OPTIONS] -zipfile output.zip
 
-Stream data from stdin, compress into a Zip container, and stream to stdout.
+Stream data from stdin, compress into a Zip container, and either stream to stdout, or
+write to a named file.
 
 OPTIONS
 
@@ -131,7 +136,7 @@ OPTIONS
                     zstd     Use LZMA compression [needs IO::Compress::Zstd]
   -version        Display version number [$VERSION]
 
-Copyright (c) 2019-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2019-2022 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
@@ -287,7 +292,7 @@ Paul Marquess F<pmqs@cpan.org>.
 
 =head1 COPYRIGHT
 
-Copyright (c) 2019-2021 Paul Marquess. All rights reserved.
+Copyright (c) 2019-2022 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm,v
diff -u -p -a -u -p -r1.7 Zlib.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/Compress/Zlib.pm	21 Feb 2024 15:47:01 -0000
@@ -7,17 +7,17 @@ use Carp ;
 use IO::Handle ;
 use Scalar::Util qw(dualvar);
 
-use IO::Compress::Base::Common 2.106 ;
-use Compress::Raw::Zlib 2.103 ;
-use IO::Compress::Gzip 2.106 ;
-use IO::Uncompress::Gunzip 2.106 ;
+use IO::Compress::Base::Common 2.204 ;
+use Compress::Raw::Zlib 2.204 ;
+use IO::Compress::Gzip 2.204 ;
+use IO::Uncompress::Gunzip 2.204 ;
 
 use strict ;
 use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -461,7 +461,7 @@ sub inflate
 
 package Compress::Zlib ;
 
-use IO::Compress::Gzip::Constants 2.106 ;
+use IO::Compress::Gzip::Constants 2.204 ;
 
 sub memGzip($)
 {
@@ -1494,6 +1494,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -1506,7 +1509,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 1995-2022 Paul Marquess. All rights reserved.
+Copyright (c) 1995-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm,v
diff -u -p -a -u -p -r1.7 Base.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base.pm	21 Feb 2024 15:47:01 -0000
@@ -6,7 +6,7 @@ require 5.006 ;
 use strict ;
 use warnings;
 
-use IO::Compress::Base::Common 2.106 ;
+use IO::Compress::Base::Common 2.204 ;
 
 use IO::File (); ;
 use Scalar::Util ();
@@ -20,7 +20,7 @@ use Symbol();
 our (@ISA, $VERSION);
 @ISA    = qw(IO::File Exporter);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 #Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16.
 
@@ -1051,7 +1051,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm,v
diff -u -p -a -u -p -r1.7 Bzip2.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm	21 Feb 2024 15:47:01 -0000
@@ -5,16 +5,16 @@ use warnings;
 use bytes;
 require Exporter ;
 
-use IO::Compress::Base 2.106 ;
+use IO::Compress::Base 2.204 ;
 
-use IO::Compress::Base::Common  2.106 qw();
-use IO::Compress::Adapter::Bzip2 2.106 ;
+use IO::Compress::Base::Common  2.204 qw();
+use IO::Compress::Adapter::Bzip2 2.204 ;
 
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $Bzip2Error = '';
 
 @ISA    = qw(IO::Compress::Base Exporter);
@@ -51,7 +51,7 @@ sub getExtraParams
 {
     my $self = shift ;
 
-    use IO::Compress::Base::Common  2.106 qw(:Parse);
+    use IO::Compress::Base::Common  2.204 qw(:Parse);
 
     return (
             'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned,  1],
@@ -818,7 +818,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm,v
diff -u -p -a -u -p -r1.7 Deflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Deflate.pm	21 Feb 2024 15:47:01 -0000
@@ -8,16 +8,16 @@ use bytes;
 
 require Exporter ;
 
-use IO::Compress::RawDeflate 2.106 ();
-use IO::Compress::Adapter::Deflate 2.106 ;
+use IO::Compress::RawDeflate 2.204 ();
+use IO::Compress::Adapter::Deflate 2.204 ;
 
-use IO::Compress::Zlib::Constants 2.106 ;
-use IO::Compress::Base::Common  2.106 qw();
+use IO::Compress::Zlib::Constants 2.204 ;
+use IO::Compress::Base::Common  2.204 qw();
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $DeflateError = '';
 
 @ISA    = qw(IO::Compress::RawDeflate Exporter);
@@ -42,92 +42,35 @@ sub deflate
     return $obj->_def(@_);
 }
 
-
-sub bitmask($$$$)
-{
-    my $into  = shift ;
-    my $value  = shift ;
-    my $offset = shift ;
-    my $mask   = shift ;
-
-    return $into | (($value & $mask) << $offset ) ;
-}
-
-sub mkDeflateHdr($$$;$)
-{
-    my $method = shift ;
-    my $cinfo  = shift;
-    my $level  = shift;
-    my $fdict_adler = shift  ;
-
-    my $cmf = 0;
-    my $flg = 0;
-    my $fdict = 0;
-    $fdict = 1 if defined $fdict_adler;
-
-    $cmf = bitmask($cmf, $method, ZLIB_CMF_CM_OFFSET,    ZLIB_CMF_CM_BITS);
-    $cmf = bitmask($cmf, $cinfo,  ZLIB_CMF_CINFO_OFFSET, ZLIB_CMF_CINFO_BITS);
-
-    $flg = bitmask($flg, $fdict,  ZLIB_FLG_FDICT_OFFSET, ZLIB_FLG_FDICT_BITS);
-    $flg = bitmask($flg, $level,  ZLIB_FLG_LEVEL_OFFSET, ZLIB_FLG_LEVEL_BITS);
-
-    my $fcheck = 31 - ($cmf * 256 + $flg) % 31 ;
-    $flg = bitmask($flg, $fcheck, ZLIB_FLG_FCHECK_OFFSET, ZLIB_FLG_FCHECK_BITS);
-
-    my $hdr =  pack("CC", $cmf, $flg) ;
-    $hdr .= pack("N", $fdict_adler) if $fdict ;
-
-    return $hdr;
-}
-
-sub mkHeader
+sub mkComp
 {
     my $self = shift ;
-    my $param = shift ;
+    my $got = shift ;
 
-    my $level = $param->getValue('level');
-    my $strategy = $param->getValue('strategy');
+    my ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject1(
+                                                 $got->getValue('crc32'),
+                                                 $got->getValue('adler32'),
+                                                 $got->getValue('level'),
+                                                 $got->getValue('strategy')
+                                                 );
 
-    my $lflag ;
-    $level = 6
-        if $level == Z_DEFAULT_COMPRESSION ;
+   return $self->saveErrorString(undef, $errstr, $errno)
+       if ! defined $obj;
 
-    if (ZLIB_VERNUM >= 0x1210)
-    {
-        if ($strategy >= Z_HUFFMAN_ONLY || $level < 2)
-         {  $lflag = ZLIB_FLG_LEVEL_FASTEST }
-        elsif ($level < 6)
-         {  $lflag = ZLIB_FLG_LEVEL_FAST }
-        elsif ($level == 6)
-         {  $lflag = ZLIB_FLG_LEVEL_DEFAULT }
-        else
-         {  $lflag = ZLIB_FLG_LEVEL_SLOWEST }
-    }
-    else
-    {
-        $lflag = ($level - 1) >> 1 ;
-        $lflag = 3 if $lflag > 3 ;
-    }
-
-     #my $wbits = (MAX_WBITS - 8) << 4 ;
-    my $wbits = 7;
-    mkDeflateHdr(ZLIB_CMF_CM_DEFLATED, $wbits, $lflag);
+   return $obj;
 }
 
-sub ckParams
+
+sub mkHeader
 {
     my $self = shift ;
-    my $got = shift;
-
-    $got->setValue('adler32' => 1);
-    return 1 ;
+    return '';
 }
 
-
 sub mkTrailer
 {
     my $self = shift ;
-    return pack("N", *$self->{Compress}->adler32()) ;
+    return '';
 }
 
 sub mkFinalTrailer
@@ -135,12 +78,6 @@ sub mkFinalTrailer
     return '';
 }
 
-#sub newHeader
-#{
-#    my $self = shift ;
-#    return *$self->{Header};
-#}
-
 sub getExtraParams
 {
     my $self = shift ;
@@ -940,6 +877,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -952,7 +892,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod,v
diff -u -p -a -u -p -r1.6 FAQ.pod
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod	15 Feb 2023 01:36:18 -0000	1.6
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/FAQ.pod	21 Feb 2024 15:47:01 -0000
@@ -682,7 +682,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm,v
diff -u -p -a -u -p -r1.7 Gzip.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip.pm	21 Feb 2024 15:47:01 -0000
@@ -8,12 +8,12 @@ use bytes;
 
 require Exporter ;
 
-use IO::Compress::RawDeflate 2.106 () ;
-use IO::Compress::Adapter::Deflate 2.106 ;
+use IO::Compress::RawDeflate 2.204 () ;
+use IO::Compress::Adapter::Deflate 2.204 ;
 
-use IO::Compress::Base::Common  2.106 qw(:Status );
-use IO::Compress::Gzip::Constants 2.106 ;
-use IO::Compress::Zlib::Extra 2.106 ;
+use IO::Compress::Base::Common  2.204 qw(:Status );
+use IO::Compress::Gzip::Constants 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
 
 BEGIN
 {
@@ -25,7 +25,7 @@ BEGIN
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $GzipError = '' ;
 
 @ISA    = qw(IO::Compress::RawDeflate Exporter);
@@ -1252,6 +1252,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -1264,7 +1267,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm,v
diff -u -p -a -u -p -r1.7 RawDeflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm	21 Feb 2024 15:47:01 -0000
@@ -6,16 +6,16 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base 2.106 ;
-use IO::Compress::Base::Common  2.106 qw(:Status :Parse);
-use IO::Compress::Adapter::Deflate 2.106 ;
-use Compress::Raw::Zlib  2.103 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base 2.204 ;
+use IO::Compress::Base::Common  2.204 qw(:Status :Parse);
+use IO::Compress::Adapter::Deflate 2.204 ;
+use Compress::Raw::Zlib  2.204 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $RawDeflateError = '';
 
 @ISA = qw(IO::Compress::Base Exporter);
@@ -995,6 +995,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -1007,7 +1010,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm,v
diff -u -p -a -u -p -r1.7 Zip.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip.pm	21 Feb 2024 15:47:01 -0000
@@ -4,41 +4,41 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Status );
-use IO::Compress::RawDeflate 2.106 ();
-use IO::Compress::Adapter::Deflate 2.106 ;
-use IO::Compress::Adapter::Identity 2.106 ;
-use IO::Compress::Zlib::Extra 2.106 ;
-use IO::Compress::Zip::Constants 2.106 ;
+use IO::Compress::Base::Common  2.204 qw(:Status );
+use IO::Compress::RawDeflate 2.204 ();
+use IO::Compress::Adapter::Deflate 2.204 ;
+use IO::Compress::Adapter::Identity 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
+use IO::Compress::Zip::Constants 2.204 ;
 
 use File::Spec();
 use Config;
 
-use Compress::Raw::Zlib  2.103 ();
+use Compress::Raw::Zlib  2.204 ();
 
 BEGIN
 {
     eval { require IO::Compress::Adapter::Bzip2 ;
-           IO::Compress::Adapter::Bzip2->import( 2.103 );
+           IO::Compress::Adapter::Bzip2->import( 2.201 );
            require IO::Compress::Bzip2 ;
-           IO::Compress::Bzip2->import( 2.103 );
+           IO::Compress::Bzip2->import( 2.201 );
          } ;
 
     eval { require IO::Compress::Adapter::Lzma ;
-           IO::Compress::Adapter::Lzma->import( 2.103 );
+           IO::Compress::Adapter::Lzma->import( 2.201 );
            require IO::Compress::Lzma ;
-           IO::Compress::Lzma->import( 2.103 );
+           IO::Compress::Lzma->import( 2.201 );
          } ;
 
     eval { require IO::Compress::Adapter::Xz ;
-           IO::Compress::Adapter::Xz->import( 2.103 );
+           IO::Compress::Adapter::Xz->import( 2.201 );
            require IO::Compress::Xz ;
-           IO::Compress::Xz->import( 2.103 );
+           IO::Compress::Xz->import( 2.201 );
          } ;
     eval { require IO::Compress::Adapter::Zstd ;
-           IO::Compress::Adapter::Zstd->import( 2.103 );
+           IO::Compress::Adapter::Zstd->import( 2.201 );
            require IO::Compress::Zstd ;
-           IO::Compress::Zstd->import( 2.103 );
+           IO::Compress::Zstd->import( 2.201 );
          } ;
 }
 
@@ -47,7 +47,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $ZipError = '';
 
 @ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -85,20 +85,24 @@ sub isMethodAvailable
         if $method == ZIP_CM_STORE || $method == ZIP_CM_DEFLATE ;
 
     return 1
-        if $method == ZIP_CM_BZIP2 and
-           defined $IO::Compress::Adapter::Bzip2::VERSION;
+        if $method == ZIP_CM_BZIP2 &&
+           defined $IO::Compress::Adapter::Bzip2::VERSION &&
+           defined &{ "IO::Compress::Adapter::Bzip2::mkRawZipCompObject" };
 
     return 1
-        if $method == ZIP_CM_LZMA and
-           defined $IO::Compress::Adapter::Lzma::VERSION;
+        if $method == ZIP_CM_LZMA &&
+           defined $IO::Compress::Adapter::Lzma::VERSION &&
+           defined &{ "IO::Compress::Adapter::Lzma::mkRawZipCompObject" };
 
     return 1
-        if $method == ZIP_CM_XZ and
-           defined $IO::Compress::Adapter::Xz::VERSION;
+        if $method == ZIP_CM_XZ &&
+           defined $IO::Compress::Adapter::Xz::VERSION &&
+           defined &{ "IO::Compress::Adapter::Xz::mkRawZipCompObject" };
 
     return 1
-        if $method == ZIP_CM_ZSTD and
-           defined $IO::Compress::Adapter::ZSTD::VERSION;
+        if $method == ZIP_CM_ZSTD &&
+           defined $IO::Compress::Adapter::ZSTD::VERSION &&
+           defined &{ "IO::Compress::Adapter::ZSTD::mkRawZipCompObject" };
 
     return 0;
 }
@@ -566,6 +570,8 @@ sub mkFinalTrailer
         $z64e .= U64::pack_V64 $entries   ; # entries in central dir
         $z64e .= U64::pack_V64 $cd_len    ; # size of central dir
         $z64e .= *$self->{ZipData}{Offset}->getPacked_V64() ; # offset to start central dir
+        $z64e .= *$self->{ZipData}{extrafieldzip64}  # otional extra field
+            if defined *$self->{ZipData}{extrafieldzip64} ;
 
         $z64e  = pack("V", ZIP64_END_CENTRAL_REC_HDR_SIG) # signature
               .  U64::pack_V64(length $z64e)
@@ -638,7 +644,7 @@ sub ckParams
     }
 
     *$self->{ZipData}{AnyZip64} = 1
-        if $got->getValue('zip64');
+        if $got->getValue('zip64') || $got->getValue('extrafieldzip64') ;
     *$self->{ZipData}{Zip64} = $got->getValue('zip64');
     *$self->{ZipData}{Stream} = $got->getValue('stream');
 
@@ -658,7 +664,7 @@ sub ckParams
 
     *$self->{ZipData}{ZipComment} = $got->getValue('zipcomment') ;
 
-    for my $name (qw( extrafieldlocal extrafieldcentral ))
+    for my $name (qw( extrafieldlocal extrafieldcentral extrafieldzip64))
     {
         my $data = $got->getValue($name) ;
         if (defined $data) {
@@ -667,6 +673,7 @@ sub ckParams
                 if $bad ;
 
             $got->setValue($name, $data) ;
+            *$self->{ZipData}{$name} = $data;
         }
     }
 
@@ -731,6 +738,7 @@ our %PARAMS = (
             'textflag'  => [IO::Compress::Base::Common::Parse_boolean,   0],
             'extrafieldlocal'  => [IO::Compress::Base::Common::Parse_any,    undef],
             'extrafieldcentral'=> [IO::Compress::Base::Common::Parse_any,    undef],
+            'extrafieldzip64'  => [IO::Compress::Base::Common::Parse_any,    undef],
 
             # Lzma
             'preset'   => [IO::Compress::Base::Common::Parse_unsigned, 6],
@@ -1053,12 +1061,24 @@ See L<File::GlobMapper|File::GlobMapper>
 If the C<$input_filename_or_reference> parameter is any other type,
 C<undef> will be returned.
 
-In addition, if C<$input_filename_or_reference> is a simple filename,
-the default values for
-the C<Name>, C<Time>, C<TextFlag>, C<ExtAttr>, C<exUnixN> and C<exTime> options will be sourced from that file.
+In addition, if C<$input_filename_or_reference> corresponds to a filename
+from the filesystem, a number of zip file header fields will be populated by default
+using the following attributes from the input file
+
+=over 5
+
+=item * the full filename contained in C<$input_filename_or_reference>
+
+=item * the file protection attributes
+
+=item * the UID/GID for the file
+
+=item * the file timestamps
+
+=back
 
 If you do not want to use these defaults they can be overridden by
-explicitly setting the C<Name>, C<Time>, C<TextFlag>, C<ExtAttr>, C<exUnixN> and C<exTime> options or by setting the
+explicitly setting one, or more, of the C<Name>, C<Time>, C<TextFlag>, C<ExtAttr>, C<exUnixN> and C<exTime> options or by setting the
 C<Minimal> parameter.
 
 =head3 The C<$output_filename_or_reference> parameter
@@ -2131,6 +2151,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -2143,7 +2166,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm,v
diff -u -p -a -u -p -r1.7 Bzip2.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm	21 Feb 2024 15:47:01 -0000
@@ -4,12 +4,12 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Status);
+use IO::Compress::Base::Common  2.204 qw(:Status);
 
-use Compress::Raw::Bzip2  2.103 ;
+use Compress::Raw::Bzip2  2.204 ;
 
 our ($VERSION);
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 sub mkCompObject
 {
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm,v
diff -u -p -a -u -p -r1.7 Deflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm	21 Feb 2024 15:47:01 -0000
@@ -4,13 +4,13 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.106 qw(:Status);
-use Compress::Raw::Zlib  2.103 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.204 qw(:Status);
+use Compress::Raw::Zlib  2.204 qw( !crc32 !adler32 ) ;
 
 require Exporter;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 @ISA = qw(Exporter);
 @EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
 %EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
@@ -31,6 +31,29 @@ sub mkCompObject
                                 -Level          => $level,
                                 -Strategy       => $strategy,
                                 -WindowBits     => - MAX_WBITS);
+
+    return (undef, "Cannot create Deflate object: $status", $status)
+        if $status != Z_OK;
+
+    return bless {'Def'        => $def,
+                  'Error'      => '',
+                 } ;
+}
+
+sub mkCompObject1
+{
+    my $crc32    = shift ;
+    my $adler32  = shift ;
+    my $level    = shift ;
+    my $strategy = shift ;
+
+    my ($def, $status) = Compress::Raw::Zlib::Deflate->new(
+                                -AppendOutput   => 1,
+                                -CRC32          => $crc32,
+                                -ADLER32        => $adler32,
+                                -Level          => $level,
+                                -Strategy       => $strategy,
+                                -WindowBits     => MAX_WBITS);
 
     return (undef, "Cannot create Deflate object: $status", $status)
         if $status != Z_OK;
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm,v
diff -u -p -a -u -p -r1.7 Identity.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm	21 Feb 2024 15:47:01 -0000
@@ -4,10 +4,10 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Status);
+use IO::Compress::Base::Common  2.204 qw(:Status);
 our ($VERSION);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 sub mkCompObject
 {
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm,v
diff -u -p -a -u -p -r1.7 Common.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm	21 Feb 2024 15:47:01 -0000
@@ -11,7 +11,7 @@ use File::GlobMapper;
 require Exporter;
 our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE);
 @ISA = qw(Exporter);
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 @EXPORT = qw( isaFilehandle isaFilename isaScalar
               whatIsInput whatIsOutput
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm,v
diff -u -p -a -u -p -r1.7 Constants.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm	21 Feb 2024 15:47:01 -0000
@@ -9,7 +9,7 @@ require Exporter;
 our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
 our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 @ISA = qw(Exporter);
 
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm,v
diff -u -p -a -u -p -r1.7 Constants.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm	21 Feb 2024 15:47:01 -0000
@@ -7,7 +7,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 @ISA = qw(Exporter);
 
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm,v
diff -u -p -a -u -p -r1.7 Constants.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm	21 Feb 2024 15:47:01 -0000
@@ -9,7 +9,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 @ISA = qw(Exporter);
 
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm,v
diff -u -p -a -u -p -r1.7 Extra.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm	21 Feb 2024 15:47:01 -0000
@@ -8,9 +8,9 @@ use bytes;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
-use IO::Compress::Gzip::Constants 2.106 ;
+use IO::Compress::Gzip::Constants 2.204 ;
 
 sub ExtraFieldError
 {
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm,v
diff -u -p -a -u -p -r1.7 AnyInflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm	21 Feb 2024 15:47:01 -0000
@@ -6,22 +6,22 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Parse);
+use IO::Compress::Base::Common  2.204 qw(:Parse);
 
-use IO::Uncompress::Adapter::Inflate  2.106 ();
+use IO::Uncompress::Adapter::Inflate  2.204 ();
 
 
-use IO::Uncompress::Base  2.106 ;
-use IO::Uncompress::Gunzip  2.106 ;
-use IO::Uncompress::Inflate  2.106 ;
-use IO::Uncompress::RawInflate  2.106 ;
-use IO::Uncompress::Unzip  2.106 ;
+use IO::Uncompress::Base  2.204 ;
+use IO::Uncompress::Gunzip  2.204 ;
+use IO::Uncompress::Inflate  2.204 ;
+use IO::Uncompress::RawInflate  2.204 ;
+use IO::Uncompress::Unzip  2.204 ;
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $AnyInflateError = '';
 
 @ISA = qw(IO::Uncompress::Base Exporter);
@@ -986,6 +986,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -998,7 +1001,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm,v
diff -u -p -a -u -p -r1.7 AnyUncompress.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm	21 Feb 2024 15:47:01 -0000
@@ -4,16 +4,16 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.106 ();
+use IO::Compress::Base::Common 2.204 ();
 
-use IO::Uncompress::Base 2.106 ;
+use IO::Uncompress::Base 2.204 ;
 
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $AnyUncompressError = '';
 
 @ISA = qw(IO::Uncompress::Base Exporter);
@@ -33,26 +33,26 @@ BEGIN
    # Don't trigger any __DIE__ Hooks.
    local $SIG{__DIE__};
 
-   eval ' use IO::Uncompress::Adapter::Inflate 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::Bunzip2 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::LZO 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::Lzf 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::UnLzma 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::UnXz 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::UnZstd 2.103 ;';
-   eval ' use IO::Uncompress::Adapter::UnLzip 2.103 ;';
-
-   eval ' use IO::Uncompress::Bunzip2 2.103 ;';
-   eval ' use IO::Uncompress::UnLzop 2.103 ;';
-   eval ' use IO::Uncompress::Gunzip 2.103 ;';
-   eval ' use IO::Uncompress::Inflate 2.103 ;';
-   eval ' use IO::Uncompress::RawInflate 2.103 ;';
-   eval ' use IO::Uncompress::Unzip 2.103 ;';
-   eval ' use IO::Uncompress::UnLzf 2.103 ;';
-   eval ' use IO::Uncompress::UnLzma 2.103 ;';
-   eval ' use IO::Uncompress::UnXz 2.103 ;';
-   eval ' use IO::Uncompress::UnZstd 2.103 ;';
-   eval ' use IO::Uncompress::UnLzip 2.103 ;';
+   eval ' use IO::Uncompress::Adapter::Inflate 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::Bunzip2 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::LZO 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::Lzf 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::UnLzma 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::UnXz 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::UnZstd 2.204 ;';
+   eval ' use IO::Uncompress::Adapter::UnLzip 2.204 ;';
+
+   eval ' use IO::Uncompress::Bunzip2 2.204 ;';
+   eval ' use IO::Uncompress::UnLzop 2.204 ;';
+   eval ' use IO::Uncompress::Gunzip 2.204 ;';
+   eval ' use IO::Uncompress::Inflate 2.204 ;';
+   eval ' use IO::Uncompress::RawInflate 2.204 ;';
+   eval ' use IO::Uncompress::Unzip 2.204 ;';
+   eval ' use IO::Uncompress::UnLzf 2.204 ;';
+   eval ' use IO::Uncompress::UnLzma 2.204 ;';
+   eval ' use IO::Uncompress::UnXz 2.204 ;';
+   eval ' use IO::Uncompress::UnZstd 2.204 ;';
+   eval ' use IO::Uncompress::UnLzip 2.204 ;';
 
 }
 
@@ -1077,7 +1077,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm,v
diff -u -p -a -u -p -r1.7 Base.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm	15 Feb 2023 01:36:18 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Base.pm	21 Feb 2024 15:47:01 -0000
@@ -9,12 +9,12 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT
 @ISA    = qw(IO::File Exporter);
 
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 use constant G_EOF => 0 ;
 use constant G_ERR => -1 ;
 
-use IO::Compress::Base::Common 2.106 ;
+use IO::Compress::Base::Common 2.204 ;
 
 use IO::File ;
 use Symbol;
@@ -1567,7 +1567,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm,v
diff -u -p -a -u -p -r1.7 Bunzip2.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm	21 Feb 2024 15:47:01 -0000
@@ -4,15 +4,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.106 qw(:Status );
+use IO::Compress::Base::Common 2.204 qw(:Status );
 
-use IO::Uncompress::Base 2.106 ;
-use IO::Uncompress::Adapter::Bunzip2 2.106 ;
+use IO::Uncompress::Base 2.204 ;
+use IO::Uncompress::Adapter::Bunzip2 2.204 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $Bunzip2Error = '';
 
 @ISA    = qw(IO::Uncompress::Base Exporter);
@@ -909,7 +909,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm,v
diff -u -p -a -u -p -r1.7 Gunzip.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm	21 Feb 2024 15:47:01 -0000
@@ -9,12 +9,12 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Uncompress::RawInflate 2.106 ;
+use IO::Uncompress::RawInflate 2.204 ;
 
-use Compress::Raw::Zlib 2.103 () ;
-use IO::Compress::Base::Common 2.106 qw(:Status );
-use IO::Compress::Gzip::Constants 2.106 ;
-use IO::Compress::Zlib::Extra 2.106 ;
+use Compress::Raw::Zlib 2.204 () ;
+use IO::Compress::Base::Common 2.204 qw(:Status );
+use IO::Compress::Gzip::Constants 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
 
 require Exporter ;
 
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
 
 $GunzipError = '';
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 sub new
 {
@@ -1110,6 +1110,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -1122,7 +1125,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm,v
diff -u -p -a -u -p -r1.7 Inflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm	21 Feb 2024 15:47:01 -0000
@@ -5,15 +5,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Status );
-use IO::Compress::Zlib::Constants 2.106 ;
+use IO::Compress::Base::Common  2.204 qw(:Status );
+use IO::Compress::Zlib::Constants 2.204 ;
 
-use IO::Uncompress::RawInflate  2.106 ;
+use IO::Uncompress::RawInflate  2.204 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $InflateError = '';
 
 @ISA    = qw(IO::Uncompress::RawInflate Exporter);
@@ -982,6 +982,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -994,7 +997,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm,v
diff -u -p -a -u -p -r1.7 RawInflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm	21 Feb 2024 15:47:01 -0000
@@ -5,16 +5,16 @@ use strict ;
 use warnings;
 use bytes;
 
-use Compress::Raw::Zlib  2.103 ;
-use IO::Compress::Base::Common  2.106 qw(:Status );
+use Compress::Raw::Zlib  2.204 ;
+use IO::Compress::Base::Common  2.204 qw(:Status );
 
-use IO::Uncompress::Base  2.106 ;
-use IO::Uncompress::Adapter::Inflate  2.106 ;
+use IO::Uncompress::Base  2.204 ;
+use IO::Uncompress::Adapter::Inflate  2.204 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $RawInflateError = '';
 
 @ISA    = qw(IO::Uncompress::Base Exporter);
@@ -1110,6 +1110,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -1122,7 +1125,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm,v
diff -u -p -a -u -p -r1.7 Unzip.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm	21 Feb 2024 15:47:01 -0000
@@ -9,14 +9,14 @@ use warnings;
 use bytes;
 
 use IO::File;
-use IO::Uncompress::RawInflate  2.106 ;
-use IO::Compress::Base::Common  2.106 qw(:Status );
-use IO::Uncompress::Adapter::Inflate  2.106 ;
-use IO::Uncompress::Adapter::Identity 2.106 ;
-use IO::Compress::Zlib::Extra 2.106 ;
-use IO::Compress::Zip::Constants 2.106 ;
+use IO::Uncompress::RawInflate  2.204 ;
+use IO::Compress::Base::Common  2.204 qw(:Status );
+use IO::Uncompress::Adapter::Inflate  2.204 ;
+use IO::Uncompress::Adapter::Identity 2.204 ;
+use IO::Compress::Zlib::Extra 2.204 ;
+use IO::Compress::Zip::Constants 2.204 ;
 
-use Compress::Raw::Zlib  2.103 () ;
+use Compress::Raw::Zlib  2.204 () ;
 
 BEGIN
 {
@@ -38,7 +38,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 $UnzipError = '';
 
 @ISA    = qw(IO::Uncompress::RawInflate Exporter);
@@ -812,12 +812,11 @@ sub _dosToUnixTime
 	my $min  = ( ( $dt >> 5 ) & 0x3f );
 	my $sec  = ( ( $dt << 1 ) & 0x3e );
 
-
-    use POSIX 'mktime';
-
-    my $time_t = mktime( $sec, $min, $hour, $mday, $mon, $year, 0, 0, -1 );
+    use Time::Local ;
+    my $time_t = Time::Local::timelocal( $sec, $min, $hour, $mday, $mon, $year);
     return 0 if ! defined $time_t;
-	return $time_t;
+    return $time_t;
+
 }
 
 #sub scanCentralDirectory
@@ -1953,6 +1952,9 @@ C<gzip@prep.ai.mit.edu> and Mark Adler C
 The primary site for the I<zlib> compression library is
 L<http://www.zlib.org>.
 
+The primary site for the I<zlib-ng> compression library is
+L<https://github.com/zlib-ng/zlib-ng>.
+
 The primary site for gzip is L<http://www.gzip.org>.
 
 =head1 AUTHOR
@@ -1965,7 +1967,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2022 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2023 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm,v
diff -u -p -a -u -p -r1.7 Bunzip2.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm	21 Feb 2024 15:47:01 -0000
@@ -4,12 +4,12 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.106 qw(:Status);
+use IO::Compress::Base::Common 2.204 qw(:Status);
 
-use Compress::Raw::Bzip2 2.103 ;
+use Compress::Raw::Bzip2 2.204 ;
 
 our ($VERSION, @ISA);
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 sub mkUncompObject
 {
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm,v
diff -u -p -a -u -p -r1.7 Identity.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm	21 Feb 2024 15:47:01 -0000
@@ -4,14 +4,14 @@ use warnings;
 use strict;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Status);
+use IO::Compress::Base::Common  2.204 qw(:Status);
 use IO::Compress::Zip::Constants ;
 
 our ($VERSION);
 
-$VERSION = '2.106';
+$VERSION = '2.204';
 
-use Compress::Raw::Zlib  2.103 ();
+use Compress::Raw::Zlib  2.204 ();
 
 sub mkUncompObject
 {
Index: gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm,v
diff -u -p -a -u -p -r1.7 Inflate.pm
--- gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm	21 Feb 2024 15:47:01 -0000
@@ -4,11 +4,11 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.106 qw(:Status);
-use Compress::Raw::Zlib  2.103 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common  2.204 qw(:Status);
+use Compress::Raw::Zlib  2.204 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
 
 our ($VERSION);
-$VERSION = '2.106';
+$VERSION = '2.204';
 
 
 
Index: gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t,v
diff -u -p -a -u -p -r1.6 000prereq.t
--- gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t	15 Feb 2023 01:36:19 -0000	1.6
+++ gnu/usr.bin/perl/cpan/IO-Compress/t/000prereq.t	21 Feb 2024 15:47:01 -0000
@@ -25,7 +25,7 @@ BEGIN
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
 
-    my $VERSION = '2.103';
+    my $VERSION = '2.204';
     my @NAMES = qw(
 			Compress::Raw::Bzip2
 			Compress::Raw::Zlib
@@ -86,9 +86,9 @@ BEGIN
         }
     }
 
-    # need zlib 1.2.0 or better
+    # need zlib 1.2.0 or better or zlib-ng
 
-    cmp_ok Compress::Raw::Zlib::ZLIB_VERNUM(), ">=", 0x1200
+    ok Compress::Raw::Zlib::is_zlibng() || Compress::Raw::Zlib::ZLIB_VERNUM() >= 0x1200
         or diag "IO::Compress needs zlib 1.2.0 or better, you have " . Compress::Raw::Zlib::zlib_version();
 
     use_ok('Scalar::Util') ;
Index: gnu/usr.bin/perl/cpan/IO-Compress/t/005defhdr.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/t/005defhdr.t,v
diff -u -p -a -u -p -r1.1.1.3 005defhdr.t
--- gnu/usr.bin/perl/cpan/IO-Compress/t/005defhdr.t	15 Feb 2023 01:32:41 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/IO-Compress/t/005defhdr.t	21 Feb 2024 15:47:01 -0000
@@ -19,7 +19,7 @@ BEGIN {
     $extra = 1
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
-    plan tests => 595 + $extra ;
+    plan tests => 114 + $extra ;
 
     use_ok('Compress::Raw::Zlib') ;
 
@@ -123,6 +123,7 @@ EOM
 
 }
 
+if (0) # disable these tests: IO::Compress::Deflate doesn't create the zlib header itself so no need to test
 {
     title "Check user-defined header settings match zlib" ;
 
@@ -168,13 +169,16 @@ EOM
 
         my $hdr1 = ReadHeaderInfoZlib($string, %$opts);
 
+        # zlib-ng <= 2.0.6 with Level 1 sets the CINFO value to 5 . All other zlib & zlib-ng use expected value of 7
+        # Note that zlib-ng 2.0.x uses a 16-bit encoding for ZLIBNG_VERNUM
+        my $cinfoValue =  Compress::Raw::Zlib::is_zlibng() && Compress::Raw::Zlib::ZLIBNG_VERNUM() <= 0x2060 && defined $opts->{'-Level'} && $opts->{'-Level'} == 1 ? 5 : 7;
         is $hdr->{CM},     8, "  CM is 8";
-        is $hdr->{CINFO},  7, "  CINFO is 7";
+        is $hdr->{CINFO},  $cinfoValue, "  CINFO is $cinfoValue";
         is $hdr->{FDICT},  0, "  FDICT is 0";
 
         while (my ($k, $v) = each %$expect)
         {
-            if (ZLIB_VERNUM >= 0x1220)
+            if (Compress::Raw::Zlib::is_zlibng() || ZLIB_VERNUM >= 0x1220)
               { is $hdr->{$k}, $v, "  $k is $v" }
             else
               { ok 1, "  Skip test for $k" }
@@ -357,4 +361,3 @@ EOM
         ok $gunz->close ;
     }
 }
-
Index: gnu/usr.bin/perl/cpan/IO-Compress/t/011-streamzip.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/t/011-streamzip.t,v
diff -u -p -a -u -p -r1.1.1.2 011-streamzip.t
--- gnu/usr.bin/perl/cpan/IO-Compress/t/011-streamzip.t	15 Feb 2023 01:32:41 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Compress/t/011-streamzip.t	21 Feb 2024 15:47:01 -0000
@@ -87,7 +87,7 @@ sub check
 
 
 # streamzip
-# ########
+# #########
 
 {
     title "streamzip" ;
@@ -123,27 +123,33 @@ for my $method (qw(store deflate bzip2 l
     {
         if ($method eq 'lzma')
         {
-            eval { require IO::Compress::Lzma } ;
+            no warnings;
+            eval { require IO::Compress::Lzma && defined &{ 'IO::Compress::Adapter::Bzip2::mkRawZipCompObject' } } ;
             skip "Method 'lzma' needs IO::Compress::Lzma\n", 8
                 if $@;
         }
 
         if ($method eq 'zstd')
         {
-            eval { require IO::Compress::Zstd } ;
+            no warnings;
+            eval { require IO::Compress::Zstd && defined &{ 'IO::Compress::Adapter::Zstd::mkRawZipCompObject' }} ;
             skip "Method 'zstd' needs IO::Compress::Zstd\n", 8
                 if $@;
         }
 
         if ($method eq 'xz')
         {
-            eval { require IO::Compress::Xz } ;
-            skip "Method 'zstd' needs IO::Compress::Xz\n", 8
+            no warnings;
+            eval { require IO::Compress::Xz && defined &{ 'IO::Compress::Adapter::Xz::mkRawZipCompObject' }} ;
+            skip "Method 'xz' needs IO::Compress::Xz\n", 8
                 if $@;
         }
 
         {
             title "streamzip method $method" ;
+
+            skip "streaming unzip not supported with zstd\n", 7
+                if $method eq 'zstd' ;
 
             my ($infile, $outfile);
             my $lex = LexFile->new( $infile, $outfile );
Index: gnu/usr.bin/perl/cpan/IO-Compress/t/101truncate-rawdeflate.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/t/101truncate-rawdeflate.t,v
diff -u -p -a -u -p -r1.3 101truncate-rawdeflate.t
--- gnu/usr.bin/perl/cpan/IO-Compress/t/101truncate-rawdeflate.t	15 Feb 2023 01:36:19 -0000	1.3
+++ gnu/usr.bin/perl/cpan/IO-Compress/t/101truncate-rawdeflate.t	21 Feb 2024 15:47:01 -0000
@@ -11,6 +11,8 @@ use warnings;
 
 use Test::More ;
 
+use Compress::Raw::Zlib;
+
 BEGIN {
     plan skip_all => "Lengthy Tests Disabled\n" .
                      "set COMPRESS_ZLIB_RUN_ALL or COMPRESS_ZLIB_RUN_MOST to run this test suite"
@@ -21,8 +23,8 @@ BEGIN {
     $extra = 1
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
-    plan tests => 625 + $extra;
-
+    my $tests = Compress::Raw::Zlib::is_zlibng() ? 615 : 625;
+    plan tests => $tests + $extra;
 };
 
 
Index: gnu/usr.bin/perl/cpan/IO-Compress/t/cz-03zlib-v1.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Compress/t/cz-03zlib-v1.t,v
diff -u -p -a -u -p -r1.1.1.3 cz-03zlib-v1.t
--- gnu/usr.bin/perl/cpan/IO-Compress/t/cz-03zlib-v1.t	15 Feb 2023 01:32:41 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/IO-Compress/t/cz-03zlib-v1.t	21 Feb 2024 15:47:01 -0000
@@ -703,7 +703,8 @@ EOM
     ($GOT, $status) = $k->inflate($rest) ;
 
     # Z_STREAM_END returned by 1.12.2, Z_DATA_ERROR for older zlib
-    if (ZLIB_VERNUM >= ZLIB_1_2_12_0)
+    # always Z_STREAM_ENDin zlib_ng
+    if (ZLIB_VERNUM >= ZLIB_1_2_12_0 || Compress::Raw::Zlib::is_zlibng)
     {
         cmp_ok $status, '==', Z_STREAM_END ;
     }
Index: gnu/usr.bin/perl/cpan/IO-Socket-IP/lib/IO/Socket/IP.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Socket-IP/lib/IO/Socket/IP.pm,v
diff -u -p -a -u -p -r1.6 IP.pm
--- gnu/usr.bin/perl/cpan/IO-Socket-IP/lib/IO/Socket/IP.pm	15 Feb 2023 01:36:19 -0000	1.6
+++ gnu/usr.bin/perl/cpan/IO-Socket-IP/lib/IO/Socket/IP.pm	21 Feb 2024 15:47:00 -0000
@@ -12,7 +12,8 @@ use warnings;
 # $VERSION needs to be set before  use base 'IO::Socket'
 #  - https://rt.cpan.org/Ticket/Display.html?id=92107
 BEGIN {
-   our $VERSION = '0.41';
+   our $VERSION = '0.41_01';
+   $VERSION = eval $VERSION;
 }
 
 use base qw( IO::Socket );
@@ -154,6 +155,12 @@ sub import
          die "Cannot socket(PF_INET6) - $!";
 
       if( setsockopt $testsock, IPPROTO_IPV6, IPV6_V6ONLY, 0 ) {
+         if ($^O eq "dragonfly") {
+            # dragonflybsd 6.4 lies about successfully turning this off
+            if (getsockopt $testsock, IPPROTO_IPV6, IPV6_V6ONLY) {
+               return $can_disable_v6only = 0;
+            }
+         }
          return $can_disable_v6only = 1;
       }
       elsif( $! == EINVAL || $! == EOPNOTSUPP ) {
Index: gnu/usr.bin/perl/cpan/IO-Zlib/Zlib.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/Zlib.pm,v
diff -u -p -a -u -p -r1.1.1.2 Zlib.pm
--- gnu/usr.bin/perl/cpan/IO-Zlib/Zlib.pm	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/Zlib.pm	21 Feb 2024 15:47:01 -0000
@@ -291,7 +291,7 @@ use Fcntl qw(SEEK_SET);
 use Symbol;
 use Tie::Handle;
 
-our $VERSION = "1.11";
+our $VERSION = "1.14";
 our $AUTOLOAD;
 our @ISA = qw(Tie::Handle);
 
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/basic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/basic.t,v
diff -u -p -a -u -p -r1.1.1.2 basic.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/basic.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/basic.t	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ sub ok
     print "not ok $no\n" unless $ok ;
 }
 
-my $name = "test.gz";
+my $name = "test_basic_$$.gz";
 
 print "1..17\n";
 
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/external.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/external.t,v
diff -u -p -a -u -p -r1.1.1.2 external.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/external.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/external.t	21 Feb 2024 15:47:01 -0000
@@ -70,7 +70,7 @@ ok(14, $@ =~ /^IO::Zlib::gzopen_external
 # The following is a copy of the basic.t, shifted up by 14 tests,
 # the difference being that now we should be using the external gzip.
 
-my $name="test.gz";
+my $name="test_external_$$.gz";
 
 my $hello = <<EOM ;
 hello world
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/getc.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/getc.t,v
diff -u -p -a -u -p -r1.1.1.2 getc.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/getc.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/getc.t	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ sub ok
     print "not ok $no\n" unless $ok ;
 }
 
-my $name = "test.gz";
+my $name = "test_getc_$$.gz";
 
 print "1..10\n";
 
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/getline.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/getline.t,v
diff -u -p -a -u -p -r1.1.1.2 getline.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/getline.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/getline.t	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ sub ok
     print "not ok $no\n" unless $ok ;
 }
 
-my $name = "test.gz";
+my $name = "test_getline_$$.gz";
 
 print "1..23\n";
 
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/large.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/large.t,v
diff -u -p -a -u -p -r1.1.1.2 large.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/large.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/large.t	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ sub ok
     print "not ok $no\n" unless $ok ;
 }
 
-my $name = "test.gz";
+my $name = "test_large_$$.gz";
 
 print "1..7\n";
 
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/tied.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/tied.t,v
diff -u -p -a -u -p -r1.1.1.2 tied.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/tied.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/tied.t	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ sub ok
     print "not ok $no\n" unless $ok ;
 }
 
-my $name = "test.gz";
+my $name = "test_tied_$$.gz";
 
 print "1..11\n";
 
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp1.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp1.t,v
diff -u -p -a -u -p -r1.1.1.2 uncomp1.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp1.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp1.t	21 Feb 2024 15:47:01 -0000
@@ -17,7 +17,7 @@ hello world
 this is a test
 EOM
 
-my $name = "test$$";
+my $name = "test_uncomp1_$$";
 
 if (open(FH, ">$name"))
 {
Index: gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp2.t,v
diff -u -p -a -u -p -r1.1.1.2 uncomp2.t
--- gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp2.t	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/IO-Zlib/t/uncomp2.t	21 Feb 2024 15:47:01 -0000
@@ -17,7 +17,7 @@ hello world
 this is a test
 EOM
 
-my $name = "test$$";
+my $name = "test_uncomp2_$$";
 
 if (open(FH, ">$name"))
 {
Index: gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm,v
diff -u -p -a -u -p -r1.7 PP.pm
--- gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP.pm	21 Feb 2024 15:47:01 -0000
@@ -2,21 +2,22 @@ package JSON::PP;
 
 # JSON-2.0
 
-use 5.005;
+use 5.008;
 use strict;
 
 use Exporter ();
-BEGIN { @JSON::PP::ISA = ('Exporter') }
+BEGIN { our @ISA = ('Exporter') }
 
 use overload ();
 use JSON::PP::Boolean;
 
 use Carp ();
+use Scalar::Util qw(blessed reftype refaddr);
 #use Devel::Peek;
 
-$JSON::PP::VERSION = '4.07';
+our $VERSION = '4.16';
 
-@JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
+our @EXPORT = qw(encode_json decode_json from_json to_json);
 
 # instead of hash-access, i tried index-access for speed.
 # but this method is not faster than what i expected. so it will be changed.
@@ -44,8 +45,19 @@ use constant P_AS_NONBLESSED        => 1
 use constant P_ALLOW_UNKNOWN        => 18;
 use constant P_ALLOW_TAGS           => 19;
 
-use constant OLD_PERL => $] < 5.008 ? 1 : 0;
 use constant USE_B => $ENV{PERL_JSON_PP_USE_B} || 0;
+use constant CORE_BOOL => defined &builtin::is_bool;
+
+my $invalid_char_re;
+
+BEGIN {
+    $invalid_char_re = "[";
+    for my $i (0 .. 0x01F, 0x22, 0x5c) { # '/' is ok
+        $invalid_char_re .= quotemeta chr utf8::unicode_to_native($i);
+    }
+
+    $invalid_char_re = qr/$invalid_char_re]/;
+}
 
 BEGIN {
     if (USE_B) {
@@ -64,14 +76,6 @@ BEGIN {
             allow_barekey escape_slash as_nonblessed
     );
 
-    # Perl version check, Unicode handling is enabled?
-    # Helper module sets @JSON::PP::_properties.
-    if ( OLD_PERL ) {
-        my $helper = $] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';
-        eval qq| require $helper |;
-        if ($@) { Carp::croak $@; }
-    }
-
     for my $name (@xs_compati_bit_properties, @pp_bit_properties) {
         my $property_id = 'P_' . uc($name);
 
@@ -201,13 +205,54 @@ sub boolean_values {
         my ($false, $true) = @_;
         $self->{false} = $false;
         $self->{true} = $true;
+        if (CORE_BOOL) {
+            BEGIN { CORE_BOOL and warnings->unimport(qw(experimental::builtin)) }
+            if (builtin::is_bool($true) && builtin::is_bool($false) && $true && !$false) {
+                $self->{core_bools} = !!1;
+            }
+            else {
+                delete $self->{core_bools};
+            }
+        }
     } else {
         delete $self->{false};
         delete $self->{true};
+        delete $self->{core_bools};
     }
     return $self;
 }
 
+sub core_bools {
+    my $self = shift;
+    my $core_bools = defined $_[0] ? $_[0] : 1;
+    if ($core_bools) {
+        $self->{true} = !!1;
+        $self->{false} = !!0;
+        $self->{core_bools} = !!1;
+    }
+    else {
+        $self->{true} = $JSON::PP::true;
+        $self->{false} = $JSON::PP::false;
+        $self->{core_bools} = !!0;
+    }
+    return $self;
+}
+
+sub get_core_bools {
+    my $self = shift;
+    return !!$self->{core_bools};
+}
+
+sub unblessed_bool {
+    my $self = shift;
+    return $self->core_bools(@_);
+}
+
+sub get_unblessed_bool {
+    my $self = shift;
+    return $self->get_core_bools(@_);
+}
+
 sub get_boolean_values {
     my $self = shift;
     if (exists $self->{true} and exists $self->{false}) {
@@ -326,14 +371,6 @@ sub allow_bigint {
 
         $str .= "\n" if ( $indent ); # JSON::XS 2.26 compatible
 
-        unless ($ascii or $latin1 or $utf8) {
-            utf8::upgrade($str);
-        }
-
-        if ($props->[ P_SHRINK ]) {
-            utf8::downgrade($str, 1);
-        }
-
         return $str;
     }
 
@@ -412,7 +449,6 @@ sub allow_bigint {
         my $del = ($space_before ? ' ' : '') . ':' . ($space_after ? ' ' : '');
 
         for my $k ( _sort( $obj ) ) {
-            if ( OLD_PERL ) { utf8::decode($k) } # key for Perl 5.6 / be optimized
             push @res, $self->string_to_json( $k )
                           .  $del
                           . ( ref $obj->{$k} ? $self->object_to_json( $obj->{$k} ) : $self->value_to_json( $obj->{$k} ) );
@@ -476,7 +512,11 @@ sub allow_bigint {
         my $type = ref($value);
 
         if (!$type) {
-            if (_looks_like_number($value)) {
+            BEGIN { CORE_BOOL and warnings->unimport('experimental::builtin') }
+            if (CORE_BOOL && builtin::is_bool($value)) {
+                return $value ? 'true' : 'false';
+            }
+            elsif (_looks_like_number($value)) {
                 return $value;
             }
             return $self->string_to_json($value);
@@ -527,16 +567,18 @@ sub allow_bigint {
     sub string_to_json {
         my ($self, $arg) = @_;
 
-        $arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g;
+        $arg =~ s/(["\\\n\r\t\f\b])/$esc{$1}/g;
         $arg =~ s/\//\\\//g if ($escape_slash);
-        $arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg;
+
+        # On ASCII platforms, matches [\x00-\x08\x0b\x0e-\x1f]
+        $arg =~ s/([^\n\t\c?[:^cntrl:][:^ascii:]])/'\\u00' . unpack('H2', $1)/eg;
 
         if ($ascii) {
-            $arg = JSON_PP_encode_ascii($arg);
+            $arg = _encode_ascii($arg);
         }
 
         if ($latin1) {
-            $arg = JSON_PP_encode_latin1($arg);
+            $arg = _encode_latin1($arg);
         }
 
         if ($utf8) {
@@ -604,7 +646,7 @@ sub allow_bigint {
 sub _encode_ascii {
     join('',
         map {
-            $_ <= 127 ?
+            chr($_) =~ /[[:ascii:]]/ ?
                 chr($_) :
             $_ <= 65535 ?
                 sprintf('\u%04x', $_) : sprintf('\u%x\u%x', _encode_surrogates($_));
@@ -658,11 +700,11 @@ BEGIN {
 { # PARSE 
 
     my %escapes = ( #  by Jeremy Muhlich <jmuhlich [at] bitflood.org>
-        b    => "\x8",
-        t    => "\x9",
-        n    => "\xA",
-        f    => "\xC",
-        r    => "\xD",
+        b    => "\b",
+        t    => "\t",
+        n    => "\n",
+        f    => "\f",
+        r    => "\r",
         '\\' => '\\',
         '"'  => '"',
         '/'  => '/',
@@ -736,7 +778,6 @@ BEGIN {
             }
         }
         else {
-            utf8::upgrade( $text );
             utf8::encode( $text );
         }
 
@@ -845,7 +886,7 @@ BEGIN {
                                 decode_error("missing high surrogate character in surrogate pair");
                             }
                             $is_utf8 = 1;
-                            $s .= JSON_PP_decode_surrogates($utf16, $u) || next;
+                            $s .= _decode_surrogates($utf16, $u) || next;
                             $utf16 = undef;
                         }
                         else {
@@ -853,9 +894,10 @@ BEGIN {
                                 decode_error("surrogate pair expected");
                             }
 
-                            if ( ( my $hex = hex( $u ) ) > 127 ) {
+                            my $hex = hex( $u );
+                            if ( chr $u =~ /[[:^ascii:]]/ ) {
                                 $is_utf8 = 1;
-                                $s .= JSON_PP_decode_unicode($u) || next;
+                                $s .= _decode_unicode($u) || next;
                             }
                             else {
                                 $s .= chr $hex;
@@ -873,7 +915,7 @@ BEGIN {
                 }
                 else{
 
-                    if ( ord $ch  > 127 ) {
+                    if ( $ch =~ /[[:^ascii:]]/ ) {
                         unless( $ch = is_valid_utf8($ch) ) {
                             $at -= 1;
                             decode_error("malformed UTF-8 character in JSON string");
@@ -886,10 +928,12 @@ BEGIN {
                     }
 
                     if (!$loose) {
-                        if ($ch =~ /[\x00-\x1f\x22\x5c]/)  { # '/' ok
+                        if ($ch =~ $invalid_char_re)  { # '/' ok
                             if (!$relaxed or $ch ne "\t") {
                                 $at--;
-                                decode_error('invalid character encountered while parsing JSON string');
+                                decode_error(sprintf "invalid character 0x%X"
+                                   . " encountered while parsing JSON string",
+                                   ord $ch);
                             }
                         }
                     }
@@ -1102,7 +1146,7 @@ BEGIN {
 
     sub bareKey { # doesn't strictly follow Standard ECMA-262 3rd Edition
         my $key;
-        while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){
+        while($ch =~ /[\$\w[:^ascii:]]/){
             $key .= $ch;
             next_chr();
         }
@@ -1235,31 +1279,55 @@ BEGIN {
         return $is_dec ? $v/1.0 : 0+$v;
     }
 
+    # Compute how many bytes are in the longest legal official Unicode
+    # character
+    my $max_unicode_length = do {
+      no warnings 'utf8';
+      chr 0x10FFFF;
+    };
+    utf8::encode($max_unicode_length);
+    $max_unicode_length = length $max_unicode_length;
 
     sub is_valid_utf8 {
 
-        $utf8_len = $_[0] =~ /[\x00-\x7F]/  ? 1
-                  : $_[0] =~ /[\xC2-\xDF]/  ? 2
-                  : $_[0] =~ /[\xE0-\xEF]/  ? 3
-                  : $_[0] =~ /[\xF0-\xF4]/  ? 4
-                  : 0
-                  ;
-
-        return unless $utf8_len;
-
-        my $is_valid_utf8 = substr($text, $at - 1, $utf8_len);
-
-        return ( $is_valid_utf8 =~ /^(?:
-             [\x00-\x7F]
-            |[\xC2-\xDF][\x80-\xBF]
-            |[\xE0][\xA0-\xBF][\x80-\xBF]
-            |[\xE1-\xEC][\x80-\xBF][\x80-\xBF]
-            |[\xED][\x80-\x9F][\x80-\xBF]
-            |[\xEE-\xEF][\x80-\xBF][\x80-\xBF]
-            |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF]
-            |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF]
-            |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF]
-        )$/x )  ? $is_valid_utf8 : '';
+        # Returns undef (setting $utf8_len to 0) unless the next bytes in $text
+        # comprise a well-formed UTF-8 encoded character, in which case,
+        # return those bytes, setting $utf8_len to their count.
+
+        my $start_point = substr($text, $at - 1);
+
+        # Look no further than the maximum number of bytes in a single
+        # character
+        my $limit = $max_unicode_length;
+        $limit = length($start_point) if $limit > length($start_point);
+
+        # Find the number of bytes comprising the first character in $text
+        # (without having to know the details of its internal representation).
+        # This loop will iterate just once on well-formed input.
+        while ($limit > 0) {    # Until we succeed or exhaust the input
+            my $copy = substr($start_point, 0, $limit);
+
+            # decode() will return true if all bytes are valid; false
+            # if any aren't.
+            if (utf8::decode($copy)) {
+
+                # Is valid: get the first character, convert back to bytes,
+                # and return those bytes.
+                $copy = substr($copy, 0, 1);
+                utf8::encode($copy);
+                $utf8_len = length $copy;
+                return substr($start_point, 0, $utf8_len);
+            }
+
+            # If it didn't work, it could be that there is a full legal character
+            # followed by a partial or malformed one.  Narrow the window and
+            # try again.
+            $limit--;
+        }
+
+        # Failed to find a legal UTF-8 character.
+        $utf8_len = 0;
+        return;
     }
 
 
@@ -1270,22 +1338,15 @@ BEGIN {
         my $mess   = '';
         my $type   = 'U*';
 
-        if ( OLD_PERL ) {
-            my $type   =  $] <  5.006           ? 'C*'
-                        : utf8::is_utf8( $str ) ? 'U*' # 5.6
-                        : 'C*'
-                        ;
-        }
-
         for my $c ( unpack( $type, $str ) ) { # emulate pv_uni_display() ?
-            $mess .=  $c == 0x07 ? '\a'
-                    : $c == 0x09 ? '\t'
-                    : $c == 0x0a ? '\n'
-                    : $c == 0x0d ? '\r'
-                    : $c == 0x0c ? '\f'
-                    : $c <  0x20 ? sprintf('\x{%x}', $c)
-                    : $c == 0x5c ? '\\\\'
-                    : $c <  0x80 ? chr($c)
+            my $chr_c = chr($c);
+            $mess .=  $chr_c eq '\\' ? '\\\\'
+                    : $chr_c =~ /[[:print:]]/ ? $chr_c
+                    : $chr_c eq '\a' ? '\a'
+                    : $chr_c eq '\t' ? '\t'
+                    : $chr_c eq '\n' ? '\n'
+                    : $chr_c eq '\r' ? '\r'
+                    : $chr_c eq '\f' ? '\f'
                     : sprintf('\x{%x}', $c)
                     ;
             if ( length $mess >= 20 ) {
@@ -1364,136 +1425,54 @@ sub _decode_unicode {
     return $un;
 }
 
-#
-# Setup for various Perl versions (the code from JSON::PP58)
-#
-
-BEGIN {
-
-    unless ( defined &utf8::is_utf8 ) {
-       require Encode;
-       *utf8::is_utf8 = *Encode::is_utf8;
-    }
-
-    if ( !OLD_PERL ) {
-        *JSON::PP::JSON_PP_encode_ascii      = \&_encode_ascii;
-        *JSON::PP::JSON_PP_encode_latin1     = \&_encode_latin1;
-        *JSON::PP::JSON_PP_decode_surrogates = \&_decode_surrogates;
-        *JSON::PP::JSON_PP_decode_unicode    = \&_decode_unicode;
-
-        if ($] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken.
-            package JSON::PP;
-            require subs;
-            subs->import('join');
-            eval q|
-                sub join {
-                    return '' if (@_ < 2);
-                    my $j   = shift;
-                    my $str = shift;
-                    for (@_) { $str .= $j . $_; }
-                    return $str;
-                }
-            |;
-        }
-    }
+sub incr_parse {
+    local $Carp::CarpLevel = 1;
+    ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ );
+}
 
 
-    sub JSON::PP::incr_parse {
-        local $Carp::CarpLevel = 1;
-        ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ );
-    }
+sub incr_skip {
+    ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip;
+}
 
 
-    sub JSON::PP::incr_skip {
-        ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip;
-    }
+sub incr_reset {
+    ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset;
+}
 
+sub incr_text : lvalue {
+    $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
 
-    sub JSON::PP::incr_reset {
-        ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset;
+    if ( $_[0]->{_incr_parser}->{incr_pos} ) {
+        Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
     }
-
-    eval q{
-        sub JSON::PP::incr_text : lvalue {
-            $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
-
-            if ( $_[0]->{_incr_parser}->{incr_pos} ) {
-                Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
-            }
-            $_[0]->{_incr_parser}->{incr_text};
-        }
-    } if ( $] >= 5.006 );
-
-} # Setup for various Perl versions (the code from JSON::PP58)
+    $_[0]->{_incr_parser}->{incr_text};
+}
 
 
 ###############################
 # Utilities
 #
 
-BEGIN {
-    eval 'require Scalar::Util';
-    unless($@){
-        *JSON::PP::blessed = \&Scalar::Util::blessed;
-        *JSON::PP::reftype = \&Scalar::Util::reftype;
-        *JSON::PP::refaddr = \&Scalar::Util::refaddr;
-    }
-    else{ # This code is from Scalar::Util.
-        # warn $@;
-        eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';
-        *JSON::PP::blessed = sub {
-            local($@, $SIG{__DIE__}, $SIG{__WARN__});
-            ref($_[0]) ? eval { $_[0]->a_sub_not_likely_to_be_here } : undef;
-        };
-        require B;
-        my %tmap = qw(
-            B::NULL   SCALAR
-            B::HV     HASH
-            B::AV     ARRAY
-            B::CV     CODE
-            B::IO     IO
-            B::GV     GLOB
-            B::REGEXP REGEXP
-        );
-        *JSON::PP::reftype = sub {
-            my $r = shift;
-
-            return undef unless length(ref($r));
-
-            my $t = ref(B::svref_2object($r));
-
-            return
-                exists $tmap{$t} ? $tmap{$t}
-              : length(ref($$r)) ? 'REF'
-              :                    'SCALAR';
-        };
-        *JSON::PP::refaddr = sub {
-          return undef unless length(ref($_[0]));
-
-          my $addr;
-          if(defined(my $pkg = blessed($_[0]))) {
-            $addr .= bless $_[0], 'Scalar::Util::Fake';
-            bless $_[0], $pkg;
-          }
-          else {
-            $addr .= $_[0]
-          }
-
-          $addr =~ /0x(\w+)/;
-          local $^W;
-          #no warnings 'portable';
-          hex($1);
-        }
-    }
-}
-
-
 # shamelessly copied and modified from JSON::XS code.
 
 $JSON::PP::true  = do { bless \(my $dummy = 1), "JSON::PP::Boolean" };
 $JSON::PP::false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" };
 
-sub is_bool { blessed $_[0] and ( $_[0]->isa("JSON::PP::Boolean") or $_[0]->isa("Types::Serialiser::BooleanBase") or $_[0]->isa("JSON::XS::Boolean") ); }
+sub is_bool {
+  if (blessed $_[0]) {
+    return (
+      $_[0]->isa("JSON::PP::Boolean")
+      or $_[0]->isa("Types::Serialiser::BooleanBase")
+      or $_[0]->isa("JSON::XS::Boolean")
+    );
+  }
+  elsif (CORE_BOOL) {
+    BEGIN { CORE_BOOL and warnings->unimport('experimental::builtin') }
+    return builtin::is_bool($_[0]);
+  }
+  return !!0;
+}
 
 sub true  { $JSON::PP::true  }
 sub false { $JSON::PP::false }
@@ -1514,7 +1493,7 @@ use constant INCR_M_C1   => 5;
 use constant INCR_M_TFN  => 6;
 use constant INCR_M_NUM  => 7;
 
-$JSON::PP::IncrParser::VERSION = '1.01';
+our $VERSION = '1.01';
 
 sub new {
     my ( $class ) = @_;
@@ -1534,10 +1513,6 @@ sub incr_parse {
     $self->{incr_text} = '' unless ( defined $self->{incr_text} );
 
     if ( defined $text ) {
-        if ( utf8::is_utf8( $text ) and !utf8::is_utf8( $self->{incr_text} ) ) {
-            utf8::upgrade( $self->{incr_text} ) ;
-            utf8::decode( $self->{incr_text} ) ;
-        }
         $self->{incr_text} .= $text;
     }
 
@@ -1564,7 +1539,6 @@ sub incr_parse {
                 }
 
                 unless ( $coder->get_utf8 ) {
-                    utf8::upgrade( $self->{incr_text} );
                     utf8::decode( $self->{incr_text} );
                 }
 
@@ -1605,7 +1579,7 @@ INCR_PARSE:
             while ( $len > $p ) {
                 $s = substr( $text, $p, 1 );
                 last INCR_PARSE unless defined $s;
-                if ( ord($s) > 0x20 ) {
+                if ( ord($s) > ord " " ) {
                     if ( $s eq '#' ) {
                         $self->{incr_mode} = INCR_M_C0;
                         redo INCR_PARSE;
@@ -1632,6 +1606,7 @@ INCR_PARSE:
             }
             next;
         } elsif ( $mode == INCR_M_TFN ) {
+            last INCR_PARSE if $p >= $len && $self->{incr_nest};
             while ( $len > $p ) {
                 $s = substr( $text, $p++, 1 );
                 next if defined $s and $s =~ /[rueals]/;
@@ -1643,6 +1618,7 @@ INCR_PARSE:
             last INCR_PARSE unless $self->{incr_nest};
             redo INCR_PARSE;
         } elsif ( $mode == INCR_M_NUM ) {
+            last INCR_PARSE if $p >= $len && $self->{incr_nest};
             while ( $len > $p ) {
                 $s = substr( $text, $p++, 1 );
                 next if defined $s and $s =~ /[0-9eE.+\-]/;
@@ -1679,7 +1655,7 @@ INCR_PARSE:
                 if ( $s eq "\x00" ) {
                     $p--;
                     last INCR_PARSE;
-                } elsif ( $s eq "\x09" or $s eq "\x0a" or $s eq "\x0d" or $s eq "\x20" ) {
+                } elsif ( $s =~ /^[\t\n\r ]$/) {
                     if ( !$self->{incr_nest} ) {
                         $p--; # do not eat the whitespace, let the next round do it
                         last INCR_PARSE;
@@ -1834,6 +1810,9 @@ Returns true if the passed scalar repres
 JSON::PP::false, two constants that act like C<1> and C<0> respectively
 and are also used to represent JSON C<true> and C<false> in Perl strings.
 
+On perl 5.36 and above, will also return true when given one of perl's
+standard boolean values, such as the result of a comparison.
+
 See L<MAPPING>, below, for more information on how JSON values are mapped to
 Perl.
 
@@ -2249,6 +2228,22 @@ to their default values.
 
 C<get_boolean_values> will return both C<$false> and C<$true> values, or
 the empty list when they are set to the default.
+
+=head2 core_bools
+
+    $json->core_bools([$enable]);
+
+If C<$enable> is true (or missing), then C<decode>, will produce standard
+perl boolean values. Equivalent to calling:
+
+    $json->boolean_values(!!1, !!0)
+
+C<get_core_bools> will return true if this has been set. On perl 5.36, it will
+also return true if the boolean values have been set to perl's core booleans
+using the C<boolean_values> method.
+
+The methods C<unblessed_bool> and C<get_unblessed_bool> are provided as aliases
+for compatibility with L<Cpanel::JSON::XS>.
 
 =head2 filter_json_object
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP/Boolean.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP/Boolean.pm,v
diff -u -p -a -u -p -r1.1.1.5 Boolean.pm
--- gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP/Boolean.pm	15 Feb 2023 01:32:42 -0000	1.1.1.5
+++ gnu/usr.bin/perl/cpan/JSON-PP/lib/JSON/PP/Boolean.pm	21 Feb 2024 15:47:01 -0000
@@ -1,8 +1,9 @@
 package JSON::PP::Boolean;
 
 use strict;
-require overload;
-local $^W;
+use warnings;
+use overload ();
+overload::unimport('overload', qw(0+ ++ -- fallback));
 overload::import('overload',
     "0+"     => sub { ${$_[0]} },
     "++"     => sub { $_[0] = ${$_[0]} + 1 },
@@ -10,7 +11,7 @@ overload::import('overload',
     fallback => 1,
 );
 
-$JSON::PP::Boolean::VERSION = '4.07';
+our $VERSION = '4.16';
 
 1;
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/001_utf8.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/001_utf8.t,v
diff -u -p -a -u -p -r1.1.1.4 001_utf8.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/001_utf8.t	15 Feb 2023 01:32:42 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/001_utf8.t	21 Feb 2024 15:47:01 -0000
@@ -10,17 +10,23 @@ BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 use utf8;
 use JSON::PP;
 
+my $pilcrow_utf8 = (ord "^" == 0x5E) ? "\xc2\xb6"  # 8859-1
+                 : (ord "^" == 0x5F) ? "\x80\x65"  # CP 1024
+                 :                     "\x78\x64"; # assume CP 037
+is (JSON::PP->new->allow_nonref (1)->utf8 (1)->encode ("¶"), "\"$pilcrow_utf8\"");
+is (JSON::PP->new->allow_nonref (1)->encode ("¶"), "\"¶\"");
+is (JSON::PP->new->allow_nonref (1)->ascii (1)->utf8 (1)->encode (chr 0x8000), '"\u8000"');
+is (JSON::PP->new->allow_nonref (1)->ascii (1)->utf8 (1)->pretty (1)->encode (chr 0x10402), "\"\\ud801\\udc02\"\n");
 
-ok (JSON::PP->new->allow_nonref (1)->utf8 (1)->encode ("ü") eq "\"\xc3\xbc\"");
-ok (JSON::PP->new->allow_nonref (1)->encode ("ü") eq "\"ü\"");
-ok (JSON::PP->new->allow_nonref (1)->ascii (1)->utf8 (1)->encode (chr 0x8000) eq '"\u8000"');
-ok (JSON::PP->new->allow_nonref (1)->ascii (1)->utf8 (1)->pretty (1)->encode (chr 0x10402) eq "\"\\ud801\\udc02\"\n");
-
-eval { JSON::PP->new->allow_nonref (1)->utf8 (1)->decode ('"ü"') };
+eval { JSON::PP->new->allow_nonref (1)->utf8 (1)->decode ('"¶"') };
 ok $@ =~ /malformed UTF-8/;
 
-ok (JSON::PP->new->allow_nonref (1)->decode ('"ü"') eq "ü");
-ok (JSON::PP->new->allow_nonref (1)->decode ('"\u00fc"') eq "ü");
-ok (JSON::PP->new->allow_nonref (1)->decode ('"\ud801\udc02' . "\x{10204}\"") eq "\x{10402}\x{10204}");
-ok (JSON::PP->new->allow_nonref (1)->decode ('"\"\n\\\\\r\t\f\b"') eq "\"\012\\\015\011\014\010");
+is (JSON::PP->new->allow_nonref (1)->decode ('"¶"'), "¶");
+is (JSON::PP->new->allow_nonref (1)->decode ('"\u00b6"'), "¶");
+is (JSON::PP->new->allow_nonref (1)->decode ('"\ud801\udc02' . "\x{10204}\""), "\x{10402}\x{10204}");
+
+my $controls = (ord "^" == 0x5E) ? "\012\\\015\011\014\010"
+             : (ord "^" == 0x5F) ? "\025\\\015\005\014\026"  # CP 1024
+             :                     "\045\\\015\005\014\026"; # assume CP 037
+is (JSON::PP->new->allow_nonref (1)->decode ('"\"\n\\\\\r\t\f\b"'), "\"$controls");
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/003_types.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/003_types.t,v
diff -u -p -a -u -p -r1.1.1.4 003_types.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/003_types.t	15 Feb 2023 01:32:42 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/003_types.t	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 use Test::More;
-BEGIN { plan tests => 76 + 2 };
+BEGIN { plan tests => 78 + 2 };
 
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 
@@ -46,6 +46,14 @@ ok ('[false]' eq encode_json [\0]);
 ok ('[null]'  eq encode_json [undef]);
 ok ('[true]'  eq encode_json [JSON::PP::true]);
 ok ('[false]' eq encode_json [JSON::PP::false]);
+
+SKIP: {
+  skip "core booleans not supported", 2
+    unless JSON::PP->can("CORE_BOOL") && JSON::PP::CORE_BOOL();
+
+  ok ('[true]'  eq encode_json [!!1]);
+  ok ('[false]' eq encode_json [!!0]);
+}
 
 for my $v (1, 2, 3, 5, -1, -2, -3, -4, 100, 1000, 10000, -999, -88, -7, 7, 88, 999, -1e5, 1e6, 1e7, 1e8) {
    ok ($v == ((decode_json "[$v]")->[0]));
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/004_dwiw_encode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/004_dwiw_encode.t,v
diff -u -p -a -u -p -r1.1.1.2 004_dwiw_encode.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/004_dwiw_encode.t	15 Feb 2023 01:32:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/004_dwiw_encode.t	21 Feb 2024 15:47:01 -0000
@@ -7,12 +7,10 @@
 
 use strict;
 use warnings;
-use Test;
+use Test::More tests => 5;
 
 # main
 {
-    BEGIN { plan tests => 5 }
-
     BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 
 use JSON::PP;
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/005_dwiw_decode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/005_dwiw_decode.t,v
diff -u -p -a -u -p -r1.1.1.1 005_dwiw_decode.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/005_dwiw_decode.t	30 Dec 2019 02:10:33 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/005_dwiw_decode.t	21 Feb 2024 15:47:01 -0000
@@ -7,12 +7,10 @@
 
 use strict;
 use warnings;
-use Test;
+use Test::More tests => 7;
 
 # main
 {
-    BEGIN { plan tests => 7 }
-
     BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 
 use JSON::PP;
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/008_pc_base.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/008_pc_base.t,v
diff -u -p -a -u -p -r1.1.1.4 008_pc_base.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/008_pc_base.t	15 Feb 2023 01:32:42 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/008_pc_base.t	21 Feb 2024 15:47:01 -0000
@@ -77,7 +77,7 @@ $obj = $pc->decode($js);
 is($obj->[0],"\x01");
 
 $obj = ["\e"];
-is($js = $pc->encode($obj),'["\\u001b"]');
+is($js = $pc->encode($obj), (ord("A") == 65) ? '["\\u001b"]' : '["\\u0027"]');
 $obj = $pc->decode($js);
 is($obj->[0],"\e");
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/014_latin1.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/014_latin1.t,v
diff -u -p -a -u -p -r1.1.1.4 014_latin1.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/014_latin1.t	15 Feb 2023 01:32:42 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/014_latin1.t	21 Feb 2024 15:47:01 -0000
@@ -11,9 +11,9 @@ use JSON::PP;
 
 my $pp = JSON::PP->new->latin1->allow_nonref;
 
-ok ($pp->encode ("\x{12}\x{89}       ") eq "\"\\u0012\x{89}       \"");
-ok ($pp->encode ("\x{12}\x{89}\x{abc}") eq "\"\\u0012\x{89}\\u0abc\"");
+ok ($pp->encode ("\x{12}\x{b6}       ") eq "\"\\u0012\x{b6}       \"");
+ok ($pp->encode ("\x{12}\x{b6}\x{abc}") eq "\"\\u0012\x{b6}\\u0abc\"");
 
-ok ($pp->decode ("\"\\u0012\x{89}\""       ) eq "\x{12}\x{89}");
-ok ($pp->decode ("\"\\u0012\x{89}\\u0abc\"") eq "\x{12}\x{89}\x{abc}");
+ok ($pp->decode ("\"\\u0012\x{b6}\""       ) eq "\x{12}\x{b6}");
+ok ($pp->decode ("\"\\u0012\x{b6}\\u0abc\"") eq "\x{12}\x{b6}\x{abc}");
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/020_faihu.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/020_faihu.t,v
diff -u -p -a -u -p -r1.1.1.1 020_faihu.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/020_faihu.t	30 Dec 2019 02:10:33 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/020_faihu.t	21 Feb 2024 15:47:01 -0000
@@ -7,8 +7,6 @@ use warnings;
 
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 
-BEGIN { if ($] < 5.008) { require Test::More; Test::More::plan(skip_all => "requires Perl 5.8 or later"); } };
-
 use JSON::PP;
 use Encode qw(encode decode);
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/020_unknown.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/020_unknown.t,v
diff -u -p -a -u -p -r1.1.1.3 020_unknown.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/020_unknown.t	15 Feb 2023 01:32:42 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/020_unknown.t	21 Feb 2024 15:47:01 -0000
@@ -29,10 +29,6 @@ is( $json->encode( [ \undef ] ), '[null]
 is( $json->encode( [ \{} ] ),    '[null]' );
 
 
-SKIP: {
-
-    skip "this test is for Perl 5.8 or later", 2 if( $] < 5.008 );
-
 $json->allow_unknown(0);
 
 my $fh;
@@ -48,5 +44,3 @@ is( $json->encode( [ $fh ] ),    '[null]
 close $fh;
 
 unlink('hoge.txt');
-
-}
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.pl
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.pl
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.pl	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,52 @@
+# copied over from JSON::XS and modified to use JSON::PP
+
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+    if (defined(my $n= $ENV{JSONPP_CHUNK})) {
+        $ENV{JSONPP_FROM}= 1 + $n * 48;
+        $ENV{JSONPP_TO}= (1 + $n) * 48;
+    }
+    $ENV{JSONPP_FROM} = 1 unless defined $ENV{JSONPP_FROM};
+    $ENV{JSONPP_TO}   = 768 unless defined $ENV{JSONPP_TO};
+}
+BEGIN { plan tests => 32 * ($ENV{JSONPP_TO} - $ENV{JSONPP_FROM} + 1) };
+
+BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
+
+use JSON::PP;
+
+
+sub test($) {
+   my $js;
+
+   $js = JSON::PP->new->allow_nonref(0)->utf8->ascii->shrink->encode ([$_[0]]);
+   ok ($_[0] eq ((decode_json $js)->[0]), " - 0");
+   $js = JSON::PP->new->allow_nonref(0)->utf8->ascii->encode ([$_[0]]);
+   ok ($_[0] eq (JSON::PP->new->utf8->shrink->decode($js))->[0], " - 1");
+
+   $js = JSON::PP->new->allow_nonref(0)->utf8->shrink->encode ([$_[0]]);
+   ok ($_[0] eq ((decode_json $js)->[0]), " - 2");
+   $js = JSON::PP->new->allow_nonref(1)->utf8->encode ([$_[0]]);
+   ok ($_[0] eq (JSON::PP->new->utf8->shrink->decode($js))->[0], " - 3");
+
+   $js = JSON::PP->new->allow_nonref(1)->ascii->encode ([$_[0]]);
+   ok ($_[0] eq JSON::PP->new->decode ($js)->[0], " - 4");
+   $js = JSON::PP->new->allow_nonref(0)->ascii->encode ([$_[0]]);
+   ok ($_[0] eq JSON::PP->new->shrink->decode ($js)->[0], " - 5");
+
+   $js = JSON::PP->new->allow_nonref(1)->shrink->encode ([$_[0]]);
+   ok ($_[0] eq JSON::PP->new->decode ($js)->[0], " - 6");
+   $js = JSON::PP->new->allow_nonref(0)->encode ([$_[0]]);
+   ok ($_[0] eq JSON::PP->new->shrink->decode ($js)->[0], " - 7");
+}
+
+srand $ENV{JSONPP_FROM}; # doesn't help too much, but its at least more deterministic
+
+for ($ENV{JSONPP_FROM} .. $ENV{JSONPP_TO}) {
+   test join "", map chr ($_ & 255), 0..$_;
+   test join "", map chr rand 255, 0..$_;
+   test join "", map chr ($_ * 97 & ~0x4000), 0..$_;
+   test join "", map chr (rand (2**20) & ~0x800), 0..$_;
+}
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary.t	15 Feb 2023 01:32:42 -0000	1.1.1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,45 +0,0 @@
-# copied over from JSON::XS and modified to use JSON::PP
-
-use strict;
-use warnings;
-use Test::More;
-BEGIN { plan tests => 24576 };
-
-BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
-
-use JSON::PP;
-
-
-sub test($) {
-   my $js;
-
-   $js = JSON::PP->new->allow_nonref(0)->utf8->ascii->shrink->encode ([$_[0]]);
-   ok ($_[0] eq ((decode_json $js)->[0]), " - 0");
-   $js = JSON::PP->new->allow_nonref(0)->utf8->ascii->encode ([$_[0]]);
-   ok ($_[0] eq (JSON::PP->new->utf8->shrink->decode($js))->[0], " - 1");
-
-   $js = JSON::PP->new->allow_nonref(0)->utf8->shrink->encode ([$_[0]]);
-   ok ($_[0] eq ((decode_json $js)->[0]), " - 2");
-   $js = JSON::PP->new->allow_nonref(1)->utf8->encode ([$_[0]]);
-   ok ($_[0] eq (JSON::PP->new->utf8->shrink->decode($js))->[0], " - 3");
-
-   $js = JSON::PP->new->allow_nonref(1)->ascii->encode ([$_[0]]);
-   ok ($_[0] eq JSON::PP->new->decode ($js)->[0], " - 4");
-   $js = JSON::PP->new->allow_nonref(0)->ascii->encode ([$_[0]]);
-   ok ($_[0] eq JSON::PP->new->shrink->decode ($js)->[0], " - 5");
-
-   $js = JSON::PP->new->allow_nonref(1)->shrink->encode ([$_[0]]);
-   ok ($_[0] eq JSON::PP->new->decode ($js)->[0], " - 6");
-   $js = JSON::PP->new->allow_nonref(0)->encode ([$_[0]]);
-   ok ($_[0] eq JSON::PP->new->shrink->decode ($js)->[0], " - 7");
-}
-
-srand 0; # doesn't help too much, but its at least more deterministic
-
-for (1..768) {
-   test join "", map chr ($_ & 255), 0..$_;
-   test join "", map chr rand 255, 0..$_;
-   test join "", map chr ($_ * 97 & ~0x4000), 0..$_;
-   test join "", map chr (rand (2**20) & ~0x800), 0..$_;
-}
-
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary00.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary00.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary00.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary00.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary01.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary01.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary01.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary01.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary02.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary02.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary02.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary02.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary03.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary03.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary03.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary03.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary04.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary04.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary04.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary04.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary05.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary05.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary05.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary05.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary06.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary06.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary06.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary06.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary07.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary07.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary07.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary07.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary08.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary08.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary08.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary08.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary09.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary09.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary09.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary09.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary10.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary10.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary10.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary10.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary11.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary11.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary11.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary11.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary12.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary12.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary12.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary12.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary13.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary13.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary13.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary13.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary14.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary14.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary14.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary14.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary15.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary15.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary15.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/099_binary15.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,3 @@
+$0=~/binary(\d\d)/ or die "Could not detect chunk from '$0'";
+$ENV{JSONPP_CHUNK} = 0+$1;
+do "./t/099_binary.pl";
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/105_esc_slash.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/105_esc_slash.t,v
diff -u -p -a -u -p -r1.1.1.2 105_esc_slash.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/105_esc_slash.t	15 Feb 2023 01:32:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/105_esc_slash.t	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 
 use Test::More;
-use strict;
+use strict;
 use warnings;
 BEGIN { plan tests => 2 };
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/106_allow_barekey.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/106_allow_barekey.t,v
diff -u -p -a -u -p -r1.1.1.2 106_allow_barekey.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/106_allow_barekey.t	15 Feb 2023 01:32:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/106_allow_barekey.t	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 
 use Test::More;
-use strict;
+use strict;
 use warnings;
 BEGIN { plan tests => 2 };
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/107_allow_singlequote.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/107_allow_singlequote.t,v
diff -u -p -a -u -p -r1.1.1.2 107_allow_singlequote.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/107_allow_singlequote.t	15 Feb 2023 01:32:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/107_allow_singlequote.t	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 
 use Test::More;
-use strict;
+use strict;
 use warnings;
 BEGIN { plan tests => 4 };
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/108_decode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/108_decode.t,v
diff -u -p -a -u -p -r1.1.1.4 108_decode.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/108_decode.t	15 Feb 2023 01:32:42 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/108_decode.t	21 Feb 2024 15:47:01 -0000
@@ -5,10 +5,12 @@ use strict;
 use warnings;
 use Test::More;
 
-BEGIN { plan tests => 6 };
+BEGIN { plan tests => 7 };
 
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 
+my $isASCII = ord "A" == 65;
+
 use JSON::PP;
 
 no utf8;
@@ -22,16 +24,23 @@ is($json->decode(q|"\u00c3\u00bc"|), "\x
 
 my $str = 'あ'; # Japanese 'a' in utf8
 
-is($json->decode(q|"\u00e3\u0081\u0082"|), $str);
+is($json->decode(($isASCII) ? q|"\u00e3\u0081\u0082"|
+                            : q|"\u00ce\u0043\u0043"|),
+                  $str);
 
 utf8::decode($str); # usually UTF-8 flagged on, but no-op for 5.005.
 
 is($json->decode(q|"\u3042"|), $str);
 
 
-my $utf8 = $json->decode(q|"\ud808\udf45"|); # chr 12345
+# chr 0x12400, which was chosen because it has the same representation in
+# both EBCDIC 1047 and 037
+my $utf8 = $json->decode(q|"\ud809\udc00"|);
 
 utf8::encode($utf8); # UTF-8 flagged off
 
-is($utf8, "\xf0\x92\x8d\x85");
+is($utf8, ($isASCII) ? "\xf0\x92\x90\x80" : "\xDE\x4A\x41\x41");
 
+eval { $json->decode(q|{"action":"foo" "method":"bar","tid":1}|) };
+my $error = $@;
+like $error => qr!""method":"bar","tid"..."!;
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/109_encode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/109_encode.t,v
diff -u -p -a -u -p -r1.1.1.3 109_encode.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/109_encode.t	15 Feb 2023 01:32:42 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/109_encode.t	21 Feb 2024 15:47:01 -0000
@@ -15,21 +15,30 @@ no utf8;
 
 my $json = JSON::PP->new->allow_nonref;
 
-is($json->encode("ü"),                   q|"ü"|); # as is
+# U+00B6 chosen because it works on both ASCII and EBCDIC
+is($json->encode("¶"),                   q|"¶"|); # as is
 
 $json->ascii;
 
-is($json->encode("\xfc"),           q|"\u00fc"|); # latin1
-is($json->encode("\xc3\xbc"), q|"\u00c3\u00bc"|); # utf8
-is($json->encode("ü"),        q|"\u00c3\u00bc"|); # utf8
-is($json->encode('あ'), q|"\u00e3\u0081\u0082"|);
+is($json->encode("\xb6"),           q|"\u00b6"|); # latin1
 
-if ($] >= 5.006) {
-    is($json->encode(chr hex 3042 ),  q|"\u3042"|);
-    is($json->encode(chr hex 12345 ), q|"\ud808\udf45"|);
+if (ord "A" == 65)  {
+    is($json->encode("\xc2\xb6"), q|"\u00c2\u00b6"|); # utf8
+    is($json->encode("¶"),        q|"\u00c2\u00b6"|); # utf8
+    is($json->encode('あ'), q|"\u00e3\u0081\u0082"|);
 }
 else {
-    is($json->encode(chr hex 3042 ),  $json->encode(chr 66));
-    is($json->encode(chr hex 12345 ), $json->encode(chr 69));
+    if (ord '^' == 95) {    # EBCDIC 1047
+        is($json->encode("\x80\x65"), q|"\u0080\u0065"|); # utf8
+        is($json->encode("¶"),        q|"\u0080\u0065"|); # utf8
+    }
+    else {  # Assume EBCDIC 037
+        is($json->encode("\x78\x64"), q|"\u0078\u0064"|); # utf8
+        is($json->encode("¶"),        q|"\u0078\u0064"|); # utf8
+    }
+
+    is($json->encode('あ'), (q|"\u00ce\u0043\u0043"|));
 }
 
+is($json->encode(chr hex 3042 ),  q|"\u3042"|);
+is($json->encode(chr hex 12345 ), q|"\ud808\udf45"|);
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/112_upgrade.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/112_upgrade.t,v
diff -u -p -a -u -p -r1.1.1.3 112_upgrade.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/112_upgrade.t	15 Feb 2023 01:32:42 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/112_upgrade.t	21 Feb 2024 15:47:01 -0000
@@ -9,17 +9,17 @@ BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 use JSON::PP;
 
 my $json = JSON::PP->new->allow_nonref->utf8;
-my $str  = '\\u00c8';
+my $str  = '\\u00b6';
 
-my $value = $json->decode( '"\\u00c8"' );
+my $value = $json->decode( '"\\u00b6"' );
 
 #use Devel::Peek;
 #Dump( $value );
 
-is( $value, chr 0xc8 );
+is( $value, chr 0xb6 );
 
 ok( utf8::is_utf8( $value ) );
 
-eval { $json->decode( '"' . chr(0xc8) . '"' ) };
+eval { $json->decode( '"' . chr(0xb6) . '"' ) };
 ok( $@ =~ /malformed UTF-8 character in JSON string/ );
 
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/118_boolean_values.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/118_boolean_values.t,v
diff -u -p -a -u -p -r1.1.1.2 118_boolean_values.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/118_boolean_values.t	15 Feb 2023 01:32:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/118_boolean_values.t	21 Feb 2024 15:47:01 -0000
@@ -4,8 +4,6 @@ use Test::More;
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
 use JSON::PP;
 
-BEGIN { plan skip_all => "requires Perl 5.008 or later" if $] < 5.008 }
-
 #SKIP_ALL_UNLESS_XS4_COMPAT
 
 package #
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/119_incr_parse_utf8.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/119_incr_parse_utf8.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/119_incr_parse_utf8.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/119_incr_parse_utf8.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,75 @@
+use strict;
+use warnings;
+use Test::More tests => 24;
+
+use utf8;
+use JSON::PP;
+use Encode;
+use charnames qw< :full >;
+
+use vars qw< @vs >;
+
+############################################################
+###  These first tests mimic the ones in `t/001_utf8.t`  ###
+############################################################
+
+scalar eval { JSON::PP->new->allow_nonref (1)->utf8 (1)->incr_parse ('"ü"') };
+like $@, qr/malformed UTF-8/;
+
+ok (JSON::PP->new->allow_nonref (1)->incr_parse ('"ü"') eq "ü");
+ok (JSON::PP->new->allow_nonref (1)->incr_parse ('"\u00fc"') eq "ü");
+ok (JSON::PP->new->allow_nonref (1)->incr_parse ('"\ud801\udc02' . "\x{10204}\"") eq "\x{10402}\x{10204}");
+ok (JSON::PP->new->allow_nonref (1)->incr_parse ('"\"\n\\\\\r\t\f\b"') eq "\"\012\\\015\011\014\010");
+
+
+my $JSON_TXT = <<JSON_TXT;
+{ "a": "1" }
+{ "b": "\N{BULLET}" }
+{ "c": "3" }
+JSON_TXT
+
+#######################
+###  With '->utf8'  ###
+#######################
+
+@vs = eval { JSON::PP->new->utf8->incr_parse( $JSON_TXT ) };
+like $@, qr/Wide character in subroutine entry/;
+
+
+@vs = eval { JSON::PP->new->utf8->incr_parse( encode 'UTF-8' => $JSON_TXT ) };
+
+ok( !$@ );
+ok( scalar @vs == 3 );
+
+is_deeply( \@vs, [ { a => "1" }, { b => "\N{BULLET}" }, { c => "3" } ] );
+is_deeply( $vs[0], { a => "1" } );
+is_deeply( $vs[1], { b => "\N{BULLET}" } );
+is_deeply( $vs[2], { c => "3" } );
+
+
+# Double-Encoded => "You Get What You Ask For"
+
+@vs = eval { JSON::PP->new->utf8->incr_parse( encode 'UTF-8' => ( encode 'UTF-8' => $JSON_TXT ) ) };
+
+ok( !$@ );
+ok( scalar @vs == 3 );
+
+is_deeply( \@vs, [ { a => "1" }, { b => "\x{E2}\x{80}\x{A2}" }, { c => "3" } ] );
+is_deeply( $vs[0], { a => "1" } );
+is_deeply( $vs[1], { b => "\x{E2}\x{80}\x{A2}" } );
+is_deeply( $vs[2], { c => "3" } );
+
+
+##########################
+###  Without '->utf8'  ###
+##########################
+
+@vs = eval { JSON::PP->new->incr_parse( $JSON_TXT ) };
+
+ok( !$@ );
+ok( scalar @vs == 3 );
+
+is_deeply( \@vs, [ { a => "1" }, { b => "\N{BULLET}" }, { c => "3" } ] );
+is_deeply( $vs[0], { a => "1" } );
+is_deeply( $vs[1], { b => "\N{BULLET}" } );
+is_deeply( $vs[2], { c => "3" } );
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/120_incr_parse_truncated.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/120_incr_parse_truncated.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/120_incr_parse_truncated.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/120_incr_parse_truncated.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,218 @@
+use strict;
+use warnings;
+use Test::More;
+use JSON::PP;
+
+plan tests => 19 * 3 + 1 * 6;
+
+sub run_test {
+    my ($input, $sub) = @_;
+    $sub->($input);
+}
+
+run_test('{"one": 1}', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok ($res, "curly braces okay -- '$input'");
+    ok (!$e, "no error -- '$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error");
+});
+
+run_test('{"one": 1]', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "unbalanced curly braces -- '$input'");
+    ok ($e, "got error -- '$input'");
+    like ($e, qr/, or \} expected while parsing object\/hash/, "'} expected' json string error");
+});
+
+run_test('"', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('[', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('}', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok ($e, "no error for input='$input'");
+    like ($e, qr/malformed JSON string/, "'malformed JSON string' json string error for input='$input'");
+});
+
+run_test(']', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok ($e, "no error for input='$input'");
+    like ($e, qr/malformed JSON string/, "'malformed JSON string' json string error for input='$input'");
+});
+
+run_test('1', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok ($res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/malformed JSON string/, "'malformed JSON string' json string error for input='$input'");
+});
+
+run_test('1', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new->allow_nonref(0);
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok ($e, "no error for input='$input'");
+    like ($e, qr/JSON text must be an object or array/, "'JSON text must be an object or array' json string error for input='$input'");
+});
+
+run_test('"1', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/malformed JSON string/, "'malformed JSON string' json string error for input='$input'");
+});
+
+run_test('\\', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok ($e, "no error for input='$input'");
+    like ($e, qr/malformed JSON string/, "'malformed JSON string' json string error for input='$input'");
+});
+
+run_test('{"one": "', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": {', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": [', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": t', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": \\', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": ', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": 1', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+});
+
+run_test('{"one": {"two": 2', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated '$input'");
+    ok (!$e, "no error -- '$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error -- $input");
+});
+
+# Test Appending Closing '}' Curly Bracket
+run_test('{"one": 1', sub {
+    my $input = shift;
+    my $coder = JSON::PP->new;
+    my $res = eval { $coder->incr_parse($input) };
+    my $e = $@; # test more clobbers $@, we need it twice
+    ok (!$res, "truncated input='$input'");
+    ok (!$e, "no error for input='$input'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input'");
+
+    $res = eval { $coder->incr_parse('}') };
+    $e = $@; # test more clobbers $@, we need it twice
+    ok ($res, "truncated input='$input' . '}'");
+    ok (!$e, "no error for input='$input' . '}'");
+    unlike ($e, qr/, or \} expected while parsing object\/hash/, "No '} expected' json string error for input='$input' . '}'");
+});
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/core_bools.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/core_bools.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/core_bools.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/core_bools.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,85 @@
+use strict;
+use warnings;
+use JSON::PP;
+use Test::More;
+BEGIN {
+  # this is only for JSON.pm
+  plan skip_all => 'no support for core boolean options'
+    unless JSON::PP->can('CORE_BOOL');
+}
+
+plan tests => 24;
+
+my $json = JSON::PP->new;
+
+is $json->get_core_bools, !!0, 'core_bools initially false';
+
+$json->boolean_values(!!0, !!1);
+SKIP: {
+    skip "core_bools option doesn't register as true for core bools without core boolean support", 1
+        unless JSON::PP::CORE_BOOL;
+
+    is $json->get_core_bools, !!1, 'core_bools true when setting bools to core bools';
+}
+
+$json->boolean_values(!!1, !!0);
+is $json->get_core_bools, !!0, 'core_bools false when setting bools to anything other than correct core bools';
+
+my $ret = $json->core_bools;
+is $ret, $json,
+  "returns the same object";
+
+my ($new_false, $new_true) = $json->get_boolean_values;
+
+# ensure this registers as true on older perls where the boolean values
+# themselves can't be tracked.
+is $json->get_core_bools, !!1, 'core_bools true when setting core_bools';
+
+ok defined $new_true, "core true value is defined";
+ok defined $new_false, "core false value is defined";
+
+ok !ref $new_true, "core true value is not blessed";
+ok !ref $new_false, "core falase value is not blessed";
+
+{
+    my @warnings;
+    local $SIG{__WARN__} = sub {
+        push @warnings, @_;
+        warn @_;
+    };
+
+    cmp_ok $new_true, 'eq', '1', 'core true value is "1"';
+    cmp_ok $new_true, '==', 1, 'core true value is 1';
+
+    cmp_ok $new_false, 'eq', '', 'core false value is ""';
+    cmp_ok $new_false, '==', 0, 'core false value is 0';
+
+    is scalar @warnings, 0, 'no warnings';
+}
+
+SKIP: {
+    skip "core boolean support needed to detect core booleans", 4
+        unless JSON::PP::CORE_BOOL;
+    BEGIN { JSON::PP::CORE_BOOL and warnings->unimport(qw(experimental::builtin)) }
+    ok JSON::PP::is_bool($new_true), 'core true is a boolean';
+    ok JSON::PP::is_bool($new_false), 'core false is a boolean';
+
+    ok builtin::is_bool($new_true), 'core true is a core boolean';
+    ok builtin::is_bool($new_false), 'core false is a core boolean';
+}
+
+my $should_true = $json->allow_nonref(1)->decode('true');
+my $should_false = $json->allow_nonref(1)->decode('false');
+
+ok !ref $should_true && $should_true, "JSON true turns into an unblessed true value";
+ok !ref $should_false && !$should_false, "JSON false turns into an unblessed false value";
+
+SKIP: {
+    skip "core boolean support needed to detect core booleans", 4
+        unless JSON::PP::CORE_BOOL;
+    ok JSON::PP::is_bool($should_true), 'decoded true is a boolean';
+    ok JSON::PP::is_bool($should_false), 'decoded false is a boolean';
+
+    ok JSON::PP::is_bool($should_true), 'decoded true is a core boolean';
+    ok JSON::PP::is_bool($should_false), 'decoded false is a core boolean';
+}
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/gh_28_json_test_suite.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/JSON-PP/t/gh_28_json_test_suite.t,v
diff -u -p -a -u -p -r1.1.1.2 gh_28_json_test_suite.t
--- gnu/usr.bin/perl/cpan/JSON-PP/t/gh_28_json_test_suite.t	15 Feb 2023 01:32:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/gh_28_json_test_suite.t	21 Feb 2024 15:47:01 -0000
@@ -5,8 +5,6 @@ use strict;
 use warnings;
 use Test::More;
 
-BEGIN { plan skip_all => 'this test is for Perl 5.8 or later' if $] < 5.008; }
-
 BEGIN { plan tests => 20 };
 
 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
Index: gnu/usr.bin/perl/cpan/JSON-PP/t/rt_122270_old_xs_boolean.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/JSON-PP/t/rt_122270_old_xs_boolean.t
diff -N gnu/usr.bin/perl/cpan/JSON-PP/t/rt_122270_old_xs_boolean.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/JSON-PP/t/rt_122270_old_xs_boolean.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,33 @@
+# copied over from JSON::XS and modified to use JSON::PP
+
+use strict;
+use warnings;
+use Test::More;
+BEGIN { plan tests => 10 };
+
+BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
+
+use utf8;
+use JSON::PP;
+
+SKIP: {
+    skip "no JSON::XS < 3", 5 unless eval { require JSON::XS; JSON::XS->VERSION < 3 };
+
+    my $false = JSON::XS::false();
+    ok (JSON::PP::is_bool $false);
+    ok (++$false == 1);
+    ok (!JSON::PP::is_bool $false);
+    ok (!JSON::PP::is_bool "JSON::PP::Boolean");
+    ok (!JSON::PP::is_bool {}); # GH-34
+}
+
+SKIP: {
+    skip "no Types::Serialiser 0.01", 5 unless eval { require JSON::XS; JSON::XS->VERSION(3.00); require Types::Serialiser; Types::Serialiser->VERSION == 0.01 };
+
+    my $false = JSON::XS::false();
+    ok (JSON::PP::is_bool $false);
+    ok (++$false == 1);
+    ok (!JSON::PP::is_bool $false);
+    ok (!JSON::PP::is_bool "JSON::PP::Boolean");
+    ok (!JSON::PP::is_bool {}); # GH-34
+}
Index: gnu/usr.bin/perl/cpan/MIME-Base64/Base64.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/MIME-Base64/Base64.xs,v
diff -u -p -a -u -p -r1.5 Base64.xs
--- gnu/usr.bin/perl/cpan/MIME-Base64/Base64.xs	15 Feb 2023 01:36:19 -0000	1.5
+++ gnu/usr.bin/perl/cpan/MIME-Base64/Base64.xs	21 Feb 2024 15:47:01 -0000
@@ -67,7 +67,7 @@ static const unsigned char index_64[256]
           ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \
            ? ((lp = SvCUR(sv)), SvPVX(sv)) : my_sv_2pvbyte(aTHX_ sv, &lp))
        static char *
-       my_sv_2pvbyte(pTHX_ register SV *sv, STRLEN *lp)
+       my_sv_2pvbyte(pTHX_ SV *sv, STRLEN *lp)
        {   
            sv_utf8_downgrade(sv,0);
            return SvPV(sv,*lp);
@@ -180,7 +180,7 @@ decode_base64(sv)
 
 	PREINIT:
 	STRLEN len;
-	register unsigned char *str = (unsigned char*)SvPV(sv, len);
+	unsigned char *str = (unsigned char*)SvPV(sv, len);
 	unsigned char const* end = str + len;
 	char *r;
 	unsigned char c[4];
@@ -276,7 +276,7 @@ decoded_base64_length(sv)
 
 	PREINIT:
 	STRLEN len;
-	register unsigned char *str = (unsigned char*)SvPV(sv, len);
+	unsigned char *str = (unsigned char*)SvPV(sv, len);
 	unsigned char const* end = str + len;
 	int i = 0;
 
Index: gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/Base64.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/Base64.pm,v
diff -u -p -a -u -p -r1.1.1.1 Base64.pm
--- gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/Base64.pm	15 Feb 2023 01:32:32 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/Base64.pm	21 Feb 2024 15:47:01 -0000
@@ -8,7 +8,7 @@ our @ISA = qw(Exporter);
 our @EXPORT = qw(encode_base64 decode_base64);
 our @EXPORT_OK = qw(encode_base64url decode_base64url encoded_base64_length decoded_base64_length);
 
-our $VERSION = '3.16';
+our $VERSION = '3.16_01';
 
 require XSLoader;
 XSLoader::load('MIME::Base64', $VERSION);
Index: gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/QuotedPrint.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/QuotedPrint.pm,v
diff -u -p -a -u -p -r1.1.1.1 QuotedPrint.pm
--- gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/QuotedPrint.pm	15 Feb 2023 01:32:32 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/MIME-Base64/lib/MIME/QuotedPrint.pm	21 Feb 2024 15:47:01 -0000
@@ -7,7 +7,7 @@ require Exporter;
 our @ISA = qw(Exporter);
 our @EXPORT = qw(encode_qp decode_qp);
 
-our $VERSION = '3.16';
+our $VERSION = '3.16_01';
 
 use MIME::Base64;  # will load XS version of {en,de}code_qp()
 
Index: gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm,v
diff -u -p -a -u -p -r1.7 BigFloat.pm
--- gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigFloat.pm	21 Feb 2024 15:47:01 -0000
@@ -20,7 +20,7 @@ use Carp          qw< carp croak >;
 use Scalar::Util  qw< blessed >;
 use Math::BigInt  qw< >;
 
-our $VERSION = '1.999830';
+our $VERSION = '1.999837';
 $VERSION =~ tr/_//d;
 
 require Exporter;
@@ -261,8 +261,7 @@ BEGIN {
     $rnd_mode   = 'even';
     tie $rnd_mode, 'Math::BigFloat';
 
-    # we need both of them in this package:
-    *as_int = \&as_number;
+    *as_number = \&as_int;
 }
 
 sub DESTROY {
@@ -272,7 +271,6 @@ sub DESTROY {
 sub AUTOLOAD {
     # make fxxx and bxxx both work by selectively mapping fxxx() to MBF::bxxx()
     my $name = $AUTOLOAD;
-
     $name =~ s/(.*):://;        # split package
     my $c = $1 || __PACKAGE__;
     no strict 'refs';
@@ -286,7 +284,8 @@ sub AUTOLOAD {
             # delayed load of Carp and avoid recursion
             croak("Can't call $c\-\>$name, not a valid method");
         }
-        # try one level up, but subst. bxxx() for fxxx() since MBI only got bxxx()
+        # try one level up, but subst. bxxx() for fxxx() since MBI only got
+        # bxxx()
         $name =~ s/^f/b/;
         return &{"Math::BigInt"."::$name"}(@_);
     }
@@ -353,7 +352,8 @@ sub config {
 ###############################################################################
 
 sub new {
-    # Create a new Math::BigFloat object from a string or another bigfloat object.
+    # Create a new Math::BigFloat object from a string or another bigfloat
+    # object.
     # _e: exponent
     # _m: mantissa
     # sign  => ("+", "-", "+inf", "-inf", or "NaN")
@@ -394,16 +394,19 @@ sub new {
 
     $self = bless {}, $class unless $selfref;
 
-    # The first following ought to work. However, it causes a 'Deep recursion on
-    # subroutine "Math::BigFloat::as_number"' in some tests. Fixme!
+    # Math::BigFloat or subclass
+
+    if (defined(blessed($wanted)) && $wanted -> isa($class)) {
+
+        # Don't copy the accuracy and precision, because a new object should get
+        # them from the global configuration.
 
-    if (defined(blessed($wanted)) && $wanted -> isa('Math::BigFloat')) {
-    #if (defined(blessed($wanted)) && UNIVERSAL::isa($wanted, 'Math::BigFloat')) {
         $self -> {sign} = $wanted -> {sign};
         $self -> {_m}   = $LIB -> _copy($wanted -> {_m});
         $self -> {_es}  = $wanted -> {_es};
         $self -> {_e}   = $LIB -> _copy($wanted -> {_e});
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
         return $self;
     }
 
@@ -427,43 +430,54 @@ sub new {
         }
     }
 
-    # Handle Infs.
+    # Shortcut for simple forms like '123' that have no trailing zeros. Trailing
+    # zeros would require a non-zero exponent.
 
-    if ($wanted =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
-        return $downgrade->new($wanted) if defined $downgrade;
-        my $sgn = $1 || '+';
-        $self = $class -> binf($sgn);
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+    if ($wanted =~
+        / ^
+          \s*                           # optional leading whitespace
+          ( [+-]? )                     # optional sign
+          0*                            # optional leading zeros
+          ( [1-9] (?: [0-9]* [1-9] )? ) # significand
+          \s*                           # optional trailing whitespace
+          $
+        /x)
+    {
+        return $downgrade -> new($1 . $2) if defined $downgrade;
+        $self->{sign} = $1 || '+';
+        $self->{_m}   = $LIB -> _new($2);
+        $self->{_es}  = '+';
+        $self->{_e}   = $LIB -> _zero();
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined $r[0] && !defined $r[1];
         return $self;
     }
 
-    # Handle explicit NaNs (not the ones returned due to invalid input).
+    # Handle Infs.
 
-    if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
-        return $downgrade->new($wanted) if defined $downgrade;
-        $self = $class -> bnan();
-        $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
-        return $self;
+    if ($wanted =~ / ^
+                     \s*
+                     ( [+-]? )
+                     inf (?: inity )?
+                     \s*
+                     \z
+                   /ix)
+    {
+        my $sgn = $1 || '+';
+        return $class -> binf($sgn, @r);
     }
 
-    # Shortcut for simple forms like '123' that have no trailing zeros.
+    # Handle explicit NaNs (not the ones returned due to invalid input).
 
     if ($wanted =~ / ^
-                     \s*                        # optional leading whitespace
-                     ( [+-]? )                  # optional sign
-                     0*                         # optional leading zeros
-                     ( [1-9] (?: [0-9]* [1-9] )? )  # significand
-                     \s*                        # optional trailing whitespace
-                     $
-                   /x)
+                     \s*
+                     ( [+-]? )
+                     nan
+                     \s*
+                     \z
+                   /ix)
     {
-        return $downgrade->new($1 . $2) if defined $downgrade;
-        $self->{sign} = $1 || '+';
-        $self->{_m}   = $LIB -> _new($2);
-        $self->{_es}  = '+';
-        $self->{_e}   = $LIB -> _zero();
-        $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
-        return $self;
+        return $class -> bnan(@r);
     }
 
     my @parts;
@@ -473,7 +487,7 @@ sub new {
         # have a "0x", "0X", "x", or "X" prefix, cf. CORE::oct().
 
         $wanted =~ /^\s*[+-]?0?[Xx]/ and
-        @parts = $class -> _hex_str_to_lib_parts($wanted)
+        @parts = $class -> _hex_str_to_flt_lib_parts($wanted)
 
           or
 
@@ -481,7 +495,7 @@ sub new {
         # "0o", "0O", "o", "O" prefix, cf. CORE::oct().
 
         $wanted =~ /^\s*[+-]?0?[Oo]/ and
-        @parts = $class -> _oct_str_to_lib_parts($wanted)
+        @parts = $class -> _oct_str_to_flt_lib_parts($wanted)
 
           or
 
@@ -489,7 +503,7 @@ sub new {
         # "0b", "0B", "b", or "B" prefix, cf. CORE::oct().
 
         $wanted =~ /^\s*[+-]?0?[Bb]/ and
-        @parts = $class -> _bin_str_to_lib_parts($wanted)
+        @parts = $class -> _bin_str_to_flt_lib_parts($wanted)
 
           or
 
@@ -497,34 +511,33 @@ sub new {
         # above and octal floating point numbers that don't have any of the
         # "0o", "0O", "o", or "O" prefixes. First see if it is a decimal number.
 
-        @parts = $class -> _dec_str_to_lib_parts($wanted)
+        @parts = $class -> _dec_str_to_flt_lib_parts($wanted)
           or
 
         # See if it is an octal floating point number. The extra check is
-        # included because _oct_str_to_lib_parts() accepts octal numbers that
-        # don't have a prefix (this is needed to make it work with, e.g.,
+        # included because _oct_str_to_flt_lib_parts() accepts octal numbers
+        # that don't have a prefix (this is needed to make it work with, e.g.,
         # from_oct() that don't require a prefix). However, Perl requires a
         # prefix for octal floating point literals. For example, "1p+0" is not
         # valid, but "01p+0" and "0__1p+0" are.
 
         $wanted =~ /^\s*[+-]?0_*\d/ and
-        @parts = $class -> _oct_str_to_lib_parts($wanted))
+        @parts = $class -> _oct_str_to_flt_lib_parts($wanted))
     {
-        # The value is an integer iff the exponent is non-negative.
+        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
 
-        if ($parts[2] eq '+' && $downgrade) {
-            return $downgrade->new($wanted, @r);
-        }
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
 
-        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        return $downgrade -> new($self -> bdstr(), @r)
+          if defined($downgrade) && $self -> is_int();
         return $self;
     }
 
     # If we get here, the value is neither a valid decimal, binary, octal, or
     # hexadecimal number. It is not an explicit Inf or a NaN either.
 
-    return $class -> bnan();
+    return $class -> bnan(@r);
 }
 
 sub from_dec {
@@ -534,25 +547,23 @@ sub from_dec {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_dec');
+    return $self if $selfref && $self->modify('from_dec');
 
     my $str = shift;
     my @r = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
-
-    if (my @parts = $class -> _dec_str_to_lib_parts($str)) {
+    $self = bless {}, $class unless $selfref;
 
-        # The value is an integer iff the exponent is non-negative.
+    if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
 
-        if ($parts[2] eq '+') {
-            return $downgrade->new($str, @r) if defined $downgrade;
-        }
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
 
-        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        return $downgrade -> new($self -> bdstr(), @r)
+          if defined($downgrade) && $self -> is_int();
         return $self;
     }
 
@@ -566,25 +577,23 @@ sub from_hex {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_hex');
+    return $self if $selfref && $self->modify('from_hex');
 
     my $str = shift;
     my @r = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
-
-    if (my @parts = $class -> _hex_str_to_lib_parts($str)) {
+    $self = bless {}, $class unless $selfref;
 
-        # The value is an integer iff the exponent is non-negative.
+    if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) {
+        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
 
-        if ($parts[2] eq '+' && defined $downgrade) {
-            return $downgrade -> from_hex($str, @r);
-        }
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
 
-        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        return $downgrade -> new($self -> bdstr(), @r)
+          if defined($downgrade) && $self -> is_int();
         return $self;
     }
 
@@ -598,25 +607,23 @@ sub from_oct {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_oct');
+    return $self if $selfref && $self->modify('from_oct');
 
     my $str = shift;
     my @r = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
-
-    if (my @parts = $class -> _oct_str_to_lib_parts($str)) {
+    $self = bless {}, $class unless $selfref;
 
-        # The value is an integer iff the exponent is non-negative.
+    if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
+        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
 
-        if ($parts[2] eq '+') {
-            return $downgrade -> from_oct($str, @r) if defined $downgrade;
-        }
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
 
-        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        return $downgrade -> new($self -> bdstr(), @r)
+          if defined($downgrade) && $self -> is_int();
         return $self;
     }
 
@@ -630,25 +637,23 @@ sub from_bin {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_bin');
+    return $self if $selfref && $self->modify('from_bin');
 
     my $str = shift;
     my @r = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
-
-    if (my @parts = $class -> _bin_str_to_lib_parts($str)) {
+    $self = bless {}, $class unless $selfref;
 
-        # The value is an integer iff the exponent is non-negative.
+    if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
+        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
 
-        if ($parts[2] eq '+') {
-            return $downgrade -> from_bin($str, @r) if defined $downgrade;
-        }
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
 
-        ($self->{sign}, $self->{_m}, $self->{_es}, $self->{_e}) = @parts;
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        return $downgrade -> new($self -> bdstr(), @r)
+          if defined($downgrade) && $self -> is_int();
         return $self;
     }
 
@@ -662,14 +667,14 @@ sub from_ieee754 {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_ieee754');
+    return $self if $selfref && $self->modify('from_ieee754');
 
     my $in     = shift;     # input string (or raw bytes)
     my $format = shift;     # format ("binary32", "decimal64" etc.)
     my $enc;                # significand encoding (applies only to decimal)
     my $k;                  # storage width in bits
     my $b;                  # base
-    my @r = @_;
+    my @r = @_;             # rounding parameters, if any
 
     if ($format =~ /^binary(\d+)\z/) {
         $k = $1;
@@ -730,7 +735,7 @@ sub from_ieee754 {
 
         # The maximum exponent, minimum exponent, and exponent bias.
 
-        my $emax = Math::BigInt -> new(2) -> bpow($w - 1) -> bdec();
+        my $emax = Math::BigFloat -> new(2) -> bpow($w - 1) -> bdec();
         my $emin = 1 - $emax;
         my $bias = $emax;
 
@@ -767,7 +772,7 @@ sub from_ieee754 {
 
         my $x;
 
-        $expo -> bsub($bias);                   # subtract bias
+        $expo = $expo -> bsub($bias);           # subtract bias
 
         if ($expo < $emin) {                    # zero and subnormals
             if ($mant == 0) {                   # zero
@@ -775,8 +780,8 @@ sub from_ieee754 {
             } else {                            # subnormals
                 # compute (1/$b)**(N) rather than ($b)**(-N)
                 $x = $class -> new("0.5");      # 1/$b
-                $x -> bpow($bias + $t - 1) -> bmul($mant);
-                $x -> bneg() if $sign eq '-';
+                $x = $x -> bpow($bias + $t - 1) -> bmul($mant);
+                $x = $x -> bneg() if $sign eq '-';
             }
         }
 
@@ -784,7 +789,7 @@ sub from_ieee754 {
             if ($mant == 0) {                   # inf
                 $x = $class -> binf($sign);
             } else {                            # nan
-                $x = $class -> bnan();
+                $x = $class -> bnan(@r);
             }
         }
 
@@ -793,12 +798,12 @@ sub from_ieee754 {
             if ($expo < $t) {
                 # compute (1/$b)**(N) rather than ($b)**(-N)
                 $x = $class -> new("0.5");      # 1/$b
-                $x -> bpow($t - $expo) -> bmul($mant);
+                $x = $x -> bpow($t - $expo) -> bmul($mant);
             } else {
                 $x = $class -> new(2);
-                $x -> bpow($expo - $t) -> bmul($mant);
+                $x = $x -> bpow($expo - $t) -> bmul($mant);
             }
-            $x -> bneg() if $sign eq '-';
+            $x = $x -> bneg() if $sign eq '-';
         }
 
         if ($selfref) {
@@ -810,8 +815,8 @@ sub from_ieee754 {
             $self = $x;
         }
 
-        return $downgrade -> new($x, @r)
-          if defined($downgrade) && $x -> is_int();
+        return $downgrade -> new($self -> bdstr(), @r)
+          if defined($downgrade) && $self -> is_int();
         return $self -> round(@r);
     }
 
@@ -821,9 +826,12 @@ sub from_ieee754 {
 sub bzero {
     # create/assign '+0'
 
-    if (@_ == 0) {
-        #carp("Using bone() as a function is deprecated;",
-        #           " use bone() as a method instead");
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
@@ -832,9 +840,18 @@ sub bzero {
     my $class   = $selfref || $self;
 
     $self->import() if $IMPORT == 0;            # make require work
-    return if $selfref && $self->modify('bzero');
 
-    return $downgrade->bzero() if defined $downgrade;
+    # Don't modify constant (read-only) objects.
+
+    return $self if $selfref && $self->modify('bzero');
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
+
+    return $downgrade -> bzero(@r) if defined $downgrade;
+
+    # If called as a class method, initialize a new object.
 
     $self = bless {}, $class unless $selfref;
 
@@ -847,11 +864,13 @@ sub bzero {
     # parameters are given, and if called as a class method initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    #return $self -> round(@r);  # this should work, but doesnt; fixme!
+
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
-        $self->{_a} = $_[0];
-        $self->{_p} = $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
+        $self->{_a} = $r[0];
+        $self->{_p} = $r[1];
     } else {
         unless($selfref) {
             $self->{_a} = $class -> accuracy();
@@ -865,9 +884,12 @@ sub bzero {
 sub bone {
     # Create or assign '+1' (or -1 if given sign '-').
 
-    if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
-        #carp("Using bone() as a function is deprecated;",
-        #           " use bone() as a method instead");
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
@@ -876,12 +898,26 @@ sub bone {
     my $class   = $selfref || $self;
 
     $self->import() if $IMPORT == 0;            # make require work
-    return if $selfref && $self->modify('bone');
 
-    return $downgrade->bone() if defined $downgrade;
+    # Don't modify constant (read-only) objects.
+
+    return $self if $selfref && $self->modify('bone');
+
+    return $downgrade -> bone(@_) if defined $downgrade;
 
-    my $sign = shift;
-    $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+    # Get the sign.
+
+    my $sign = '+';     # default is to return +1
+    if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) {
+        $sign = $1;
+        shift;
+    }
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
+
+    # If called as a class method, initialize a new object.
 
     $self = bless {}, $class unless $selfref;
 
@@ -894,9 +930,11 @@ sub bone {
     # parameters are given, and if called as a class method initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    #return $self -> round(@r);  # this should work, but doesnt; fixme!
+
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
         $self->{_a} = $_[0];
         $self->{_p} = $_[1];
     } else {
@@ -912,16 +950,15 @@ sub bone {
 sub binf {
     # create/assign a '+inf' or '-inf'
 
-    if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
-                    $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
     {
-        #carp("Using binf() as a function is deprecated;",
-        #           " use binf() as a method instead");
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
-    return $downgrade->binf(@_) if defined $downgrade;
-
     my $self    = shift;
     my $selfref = ref $self;
     my $class   = $selfref || $self;
@@ -934,10 +971,26 @@ sub binf {
     }
 
     $self->import() if $IMPORT == 0;            # make require work
-    return if $selfref && $self->modify('binf');
 
-    my $sign = shift;
-    $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+    # Don't modify constant (read-only) objects.
+
+    return $self if $selfref && $self->modify('binf');
+
+    return $downgrade -> binf(@_) if $downgrade;
+
+    # Get the sign.
+
+    my $sign = '+';     # default is to return positive infinity
+    if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) {
+        $sign = $1;
+        shift;
+    }
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
+
+    # If called as a class method, initialize a new object.
 
     $self = bless {}, $class unless $selfref;
 
@@ -950,11 +1003,13 @@ sub binf {
     # parameters are given, and if called as a class method initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    #return $self -> round(@r);  # this should work, but doesnt; fixme!
+
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
-        $self->{_a} = $_[0];
-        $self->{_p} = $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
+        $self->{_a} = $r[0];
+        $self->{_p} = $r[1];
     } else {
         unless($selfref) {
             $self->{_a} = $class -> accuracy();
@@ -968,14 +1023,15 @@ sub binf {
 sub bnan {
     # create/assign a 'NaN'
 
-    if (@_ == 0) {
-        #carp("Using bnan() as a function is deprecated;",
-        #           " use bnan() as a method instead");
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
-    return $downgrade->bnan(@_) if defined $downgrade;
-
     my $self    = shift;
     my $selfref = ref $self;
     my $class   = $selfref || $self;
@@ -988,7 +1044,18 @@ sub bnan {
     }
 
     $self->import() if $IMPORT == 0;            # make require work
-    return if $selfref && $self->modify('bnan');
+
+    # Don't modify constant (read-only) objects.
+
+    return $self if $selfref && $self->modify('bnan');
+
+    return $downgrade -> bnan(@_) if defined $downgrade;
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
+
+    # If called as a class method, initialize a new object.
 
     $self = bless {}, $class unless $selfref;
 
@@ -1001,11 +1068,13 @@ sub bnan {
     # parameters are given, and if called as a class method initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    #return $self -> round(@r);  # this should work, but doesnt; fixme!
+
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
-        $self->{_a} = $_[0];
-        $self->{_p} = $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
+        $self->{_a} = $r[0];
+        $self->{_p} = $r[1];
     } else {
         unless($selfref) {
             $self->{_a} = $class -> accuracy();
@@ -1018,6 +1087,15 @@ sub bnan {
 
 sub bpi {
 
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
+        unshift @_, __PACKAGE__;
+    }
+
     # Called as                 Argument list
     # ---------                 -------------
     # Math::BigFloat->bpi()     ("Math::BigFloat")
@@ -1039,35 +1117,12 @@ sub bpi {
     my $self    = shift;
     my $selfref = ref $self;
     my $class   = $selfref || $self;
+    my @r       = @_;                   # rounding paramters
 
-    my @r;                      # rounding paramters
-
-    # If bpi() is called as a function ...
-    #
-    # This cludge is necessary because we still support bpi() as a function. If
-    # bpi() is called with either no argument or one argument, and that one
-    # argument is either undefined or a scalar that looks like a number, then
-    # we assume bpi() is called as a function.
-
-    if (@_ == 0 &&
-        (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/)
-          ||
-        !defined($self))
-    {
-        $r[0]  = $self;
-        $class = __PACKAGE__;
-        $self  = bless {}, $class;              # initialize
-    }
-
-    # ... or if bpi() is called as a method ...
-
-    else {
-        @r = @_;
-        if ($selfref) {                     # bpi() called as instance method
-            return $self if $self -> modify('bpi');
-        } else {                            # bpi() called as class method
-            $self  = bless {}, $class;      # initialize
-        }
+    if ($selfref) {                     # bpi() called as an instance method
+        return $self if $self -> modify('bpi');
+    } else {                            # bpi() called as a class method
+        $self  = bless {}, $class;      # initialize new instance
     }
 
     ($self, @r) = $self -> _find_round_parameters(@r);
@@ -1142,13 +1197,19 @@ EOF
             if ($last_digit lt '9') {
                 substr($digits, -1, 1) = ++$last_digit;
             } else {
-                $digits =~ s/([0-8])(9+)$/ ($1 + 1) . ("0" x CORE::length($2)) /e;
+                $digits =~ s{([0-8])(9+)$}
+                            { ($1 + 1) . ("0" x CORE::length($2)) }e;
             }
         }
 
-        # Append the exponent and convert to an object.
+        # Convert to an object.
 
-        $pi = Math::BigFloat -> new($digits . 'e-' . ($n - 1));
+        $pi = bless {
+                     sign => '+',
+                     _m   => $LIB -> _new($digits),
+                     _es  => '-',
+                     _e   => $LIB -> _new($n - 1),
+                    }, $class;
 
     } else {
 
@@ -1159,20 +1220,21 @@ EOF
         $n += 8;
 
         $HALF = $class -> new($HALF) unless ref($HALF);
-        my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy() -> bsqrt($n),
-                                   $HALF -> copy() -> bmul($HALF), $class -> bone);
+        my ($an, $bn, $tn, $pn)
+          = ($class -> bone, $HALF -> copy() -> bsqrt($n),
+             $HALF -> copy() -> bmul($HALF), $class -> bone);
         while ($pn < $n) {
             my $prev_an = $an -> copy();
-            $an -> badd($bn) -> bmul($HALF, $n);
-            $bn -> bmul($prev_an) -> bsqrt($n);
-            $prev_an -> bsub($an);
-            $tn -> bsub($pn * $prev_an * $prev_an);
-            $pn -> badd($pn);
+            $an = $an -> badd($bn) -> bmul($HALF, $n);
+            $bn = $bn -> bmul($prev_an) -> bsqrt($n);
+            $prev_an = $prev_an -> bsub($an);
+            $tn = $tn -> bsub($pn * $prev_an * $prev_an);
+            $pn = $pn -> badd($pn);
         }
-        $an -> badd($bn);
-        $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
+        $an = $an -> badd($bn);
+        $an = $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
 
-        $an -> round(@r);
+        $an = $an -> round(@r);
         $pi = $an;
     }
 
@@ -1186,54 +1248,95 @@ EOF
         $self -> {$key} = $pi -> {$key};
     }
 
+    return $downgrade -> new($self -> bdstr(), @r)
+      if defined($downgrade) && $self->is_int();
     return $self;
 }
 
 sub copy {
-    my $self    = shift;
-    my $selfref = ref $self;
-    my $class   = $selfref || $self;
-
-    # If called as a class method, the object to copy is the next argument.
+    my ($x, $class);
+    if (ref($_[0])) {           # $y = $x -> copy()
+        $x = shift;
+        $class = ref($x);
+    } else {                    # $y = Math::BigInt -> copy($y)
+        $class = shift;
+        $x = shift;
+    }
 
-    $self = shift() unless $selfref;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @_;
 
     my $copy = bless {}, $class;
 
-    $copy->{sign} = $self->{sign};
-    $copy->{_es}  = $self->{_es};
-    $copy->{_m}   = $LIB->_copy($self->{_m});
-    $copy->{_e}   = $LIB->_copy($self->{_e});
-    $copy->{_a}   = $self->{_a} if exists $self->{_a};
-    $copy->{_p}   = $self->{_p} if exists $self->{_p};
+    $copy->{sign} = $x->{sign};
+    $copy->{_es}  = $x->{_es};
+    $copy->{_m}   = $LIB->_copy($x->{_m});
+    $copy->{_e}   = $LIB->_copy($x->{_e});
+    $copy->{_a}   = $x->{_a} if exists $x->{_a};
+    $copy->{_p}   = $x->{_p} if exists $x->{_p};
 
     return $copy;
 }
 
-sub as_number {
+sub as_int {
     # return copy as a bigint representation of this Math::BigFloat number
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    return $x if $x->modify('as_number');
+    return $x -> copy() if $x -> isa("Math::BigInt");
 
-    if (!$x->isa('Math::BigFloat')) {
-        # if the object can as_number(), use it
-        return $x->as_number() if $x->can('as_number');
-        # otherwise, get us a float and then a number
-        $x = $x->can('as_float') ? $x->as_float() : $class->new(0+"$x");
-    }
+    # disable upgrading and downgrading
 
-    return Math::BigInt->binf($x->sign()) if $x->is_inf();
-    return Math::BigInt->bnan()           if $x->is_nan();
+    require Math::BigInt;
+    my $upg = Math::BigInt -> upgrade();
+    my $dng = Math::BigInt -> downgrade();
+    Math::BigInt -> upgrade(undef);
+    Math::BigInt -> downgrade(undef);
 
-    my $z = $LIB->_copy($x->{_m});
-    if ($x->{_es} eq '-') {                     # < 0
-        $z = $LIB->_rsft($z, $x->{_e}, 10);
-    } elsif (! $LIB->_is_zero($x->{_e})) {      # > 0
-        $z = $LIB->_lsft($z, $x->{_e}, 10);
+    my $y;
+    if ($x -> is_inf()) {
+        $y = Math::BigInt -> binf($x->sign());
+    } elsif ($x -> is_nan()) {
+        $y = Math::BigInt -> bnan();
+    } else {
+        $y = $LIB->_copy($x->{_m});
+        if ($x->{_es} eq '-') {                     # < 0
+            $y = $LIB->_rsft($y, $x->{_e}, 10);
+        } elsif (! $LIB->_is_zero($x->{_e})) {      # > 0
+            $y = $LIB->_lsft($y, $x->{_e}, 10);
+        }
+        $y = Math::BigInt->new($x->{sign} . $LIB->_str($y));
     }
-    $z = Math::BigInt->new($x->{sign} . $LIB->_str($z));
-    $z;
+
+    # reset upgrading and downgrading
+
+    Math::BigInt -> upgrade($upg);
+    Math::BigInt -> downgrade($dng);
+
+    return $y;
+}
+
+sub as_float {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    return $x -> copy() if $x -> isa("Math::BigFloat");
+
+    # disable upgrading and downgrading
+
+    require Math::BigFloat;
+    my $upg = Math::BigFloat -> upgrade();
+    my $dng = Math::BigFloat -> downgrade();
+    Math::BigFloat -> upgrade(undef);
+    Math::BigFloat -> downgrade(undef);
+
+    my $y = Math::BigFloat -> new($x);
+
+    # reset upgrading and downgrading
+
+    Math::BigFloat -> upgrade($upg);
+    Math::BigFloat -> downgrade($dng);
+
+    return $y;
 }
 
 ###############################################################################
@@ -1242,14 +1345,14 @@ sub as_number {
 
 sub is_zero {
     # return true if arg (BFLOAT or num_str) is zero
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     ($x->{sign} eq '+' && $LIB->_is_zero($x->{_m})) ? 1 : 0;
 }
 
 sub is_one {
     # return true if arg (BFLOAT or num_str) is +1 or -1 if signis given
-    my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     $sign = '+' if !defined $sign || $sign ne '-';
 
@@ -1260,7 +1363,7 @@ sub is_one {
 
 sub is_odd {
     # return true if arg (BFLOAT or num_str) is odd or false if even
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
      ($LIB->_is_zero($x->{_e})) &&
@@ -1269,7 +1372,7 @@ sub is_odd {
 
 sub is_even {
     # return true if arg (BINT or num_str) is even or false if odd
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     (($x->{sign} =~ /^[+-]$/) &&        # NaN & +-inf aren't
      ($x->{_es} eq '+') &&              # 123.45 isn't
@@ -1278,7 +1381,7 @@ sub is_even {
 
 sub is_int {
     # return true if arg (BFLOAT or num_str) is an integer
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     (($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
      ($x->{_es} eq '+')) ? 1 : 0; # 1e-1 => no integer
@@ -1292,15 +1395,11 @@ sub bcmp {
     # Compares 2 values.  Returns one of undef, <0, =0, >0. (suitable for sort)
 
     # set up parameters
-    my ($class, $x, $y) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
-    return $upgrade->bcmp($x, $y) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # Handle all 'nan' cases.
 
@@ -1339,8 +1438,9 @@ sub bcmp {
     my $mxl = $LIB->_len($x->{_m});
     my $myl = $LIB->_len($y->{_m});
 
-    # If the mantissas have the same length, there is no point in normalizing the
-    # exponents by the length of the mantissas, so treat that as a special case.
+    # If the mantissas have the same length, there is no point in normalizing
+    # the exponents by the length of the mantissas, so treat that as a special
+    # case.
 
     if ($mxl == $myl) {
 
@@ -1378,8 +1478,8 @@ sub bcmp {
 
     if ($x->{_es} eq '+') {
 
-        # If the exponent of x is >= 0 and the exponent of y is >= 0, there is no
-        # need to do anything special.
+        # If the exponent of x is >= 0 and the exponent of y is >= 0, there is
+        # no need to do anything special.
 
         if ($y->{_es} eq '+') {
             $ex = $LIB->_copy($x->{_e});
@@ -1428,8 +1528,8 @@ sub bcmp {
     return $cmp if $cmp;
 
     # Compare the mantissas, but first normalize them by padding the shorter
-    # mantissa with zeros (shift left) until it has the same length as the longer
-    # mantissa.
+    # mantissa with zeros (shift left) until it has the same length as the
+    # longer mantissa.
 
     my $mx = $x->{_m};
     my $my = $y->{_m};
@@ -1451,14 +1551,11 @@ sub bacmp {
     # Returns one of undef, <0, =0, >0. (suitable for sort)
 
     # set up parameters
-    my ($class, $x, $y) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
-    return $upgrade->bacmp($x, $y) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # handle +-inf and NaN's
     if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
@@ -1509,25 +1606,33 @@ sub bacmp {
 sub bneg {
     # (BINT or num_str) return BINT
     # negate number or make a negated number from string
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return $x if $x->modify('bneg');
 
-    # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
-    $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_m}));
+    return $x -> bnan(@r) if $x -> is_nan();
 
-    return $downgrade -> new($x)
-      if defined($downgrade) && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
-    return $x;
+    # For +0 do not negate (to have always normalized +0).
+    $x->{sign} =~ tr/+-/-+/
+      unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_m});
+
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+      && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+    return $x -> round(@r);
 }
 
 sub bnorm {
+    # bnorm() can't support rounding, because bround() and bfround() call
+    # bnorm(), which would recurse indefinitely.
+
     # adjust m and e so that m is smallest possible
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # inf, nan etc
     if ($x->{sign} !~ /^[+-]$/) {
-        return $downgrade->new($x) if defined $downgrade;
+        return $downgrade -> new($x) if defined $downgrade;
         return $x;
     }
 
@@ -1548,13 +1653,17 @@ sub bnorm {
         }
     } else {
         # $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing
-        # zeros). So, for something like 0Ey, set y to 1, and -0 => +0
-        $x->{sign} = '+', $x->{_es} = '+', $x->{_e} = $LIB->_one()
-          if $LIB->_is_zero($x->{_m});
+        # zeros). So, for something like 0Ey, set y to 0, and -0 => +0
+        if ($LIB->_is_zero($x->{_m})) {
+            $x->{sign} = '+';
+            $x->{_es}  = '+';
+            $x->{_e}   = $LIB->_zero();
+        }
     }
 
-    return $downgrade->new($x) if defined($downgrade) && $x->is_int();
-    $x;
+    return $downgrade -> new($x)
+      if defined($downgrade) && $x->is_int();
+    return $x;
 }
 
 sub binc {
@@ -1563,19 +1672,28 @@ sub binc {
 
     return $x if $x->modify('binc');
 
+    # Inf and NaN
+
+    return $x -> bnan(@r)             if $x -> is_nan();
+    return $x -> binf($x->{sign}, @r) if $x -> is_inf();
+
+    # Non-integer
+
     if ($x->{_es} eq '-') {
-        return $x->badd($class->bone(), @r); #  digits after dot
+        return $x->badd($class->bone(), @r);
     }
 
-    if (!$LIB->_is_zero($x->{_e})) # _e == 0 for NaN, inf, -inf
-    {
-        # 1e2 => 100, so after the shift below _m has a '0' as last digit
+    # If the exponent is non-zero, convert the internal representation, so that,
+    # e.g., 12e+3 becomes 12000e+0 and we can easily increment the mantissa.
+
+    if (!$LIB->_is_zero($x->{_e})) {
         $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
-        $x->{_e} = $LIB->_zero();                      # normalize
+        $x->{_e} = $LIB->_zero();                       # normalize
         $x->{_es} = '+';
         # we know that the last digit of $x will be '1' or '9', depending on the
         # sign
     }
+
     # now $x->{_e} == 0
     if ($x->{sign} eq '+') {
         $x->{_m} = $LIB->_inc($x->{_m});
@@ -1585,8 +1703,10 @@ sub binc {
         $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # -1 +1 => -0 => +0
         return $x->bnorm()->bround(@r);
     }
-    # inf, nan handling etc
-    $x->badd($class->bone(), @r); # badd() does round
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    return $x;
 }
 
 sub bdec {
@@ -1595,78 +1715,82 @@ sub bdec {
 
     return $x if $x->modify('bdec');
 
+    # Inf and NaN
+
+    return $x -> bnan(@r)             if $x -> is_nan();
+    return $x -> binf($x->{sign}, @r) if $x -> is_inf();
+
+    # Non-integer
+
     if ($x->{_es} eq '-') {
-        return $x->badd($class->bone('-'), @r); #  digits after dot
+        return $x->badd($class->bone('-'), @r);
     }
 
+    # If the exponent is non-zero, convert the internal representation, so that,
+    # e.g., 12e+3 becomes 12000e+0 and we can easily increment the mantissa.
+
     if (!$LIB->_is_zero($x->{_e})) {
         $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
-        $x->{_e} = $LIB->_zero();                      # normalize
+        $x->{_e} = $LIB->_zero();                       # normalize
         $x->{_es} = '+';
     }
+
     # now $x->{_e} == 0
     my $zero = $x->is_zero();
-    # <= 0
-    if (($x->{sign} eq '-') || $zero) {
+    if (($x->{sign} eq '-') || $zero) {           # x <= 0
         $x->{_m} = $LIB->_inc($x->{_m});
         $x->{sign} = '-' if $zero;                # 0 => 1 => -1
         $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # -1 +1 => -0 => +0
         return $x->bnorm()->round(@r);
     }
-    # > 0
-    elsif ($x->{sign} eq '+') {
+    elsif ($x->{sign} eq '+') {                   # x > 0
         $x->{_m} = $LIB->_dec($x->{_m});
         return $x->bnorm()->round(@r);
     }
-    # inf, nan handling etc
-    $x->badd($class->bone('-'), @r); # does round
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    return $x -> round(@r);
 }
 
 sub badd {
-    # add second arg (BFLOAT or string) to first (BFLOAT) (modifies first)
-    # return result as BFLOAT
-
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('badd');
 
     # inf and NaN handling
     if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
 
-        # NaN first
+        # $x is NaN and/or $y is NaN
         if ($x->{sign} eq $nan || $y->{sign} eq $nan) {
-            $x->bnan();
+            $x = $x->bnan();
         }
 
-        # inf handling
+        # $x is Inf and $y is Inf
         elsif ($x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/) {
-            # +inf++inf or -inf+-inf => same, rest is NaN
-            $x->bnan() if $x->{sign} ne $y->{sign};
+            # +Inf + +Inf or -Inf + -Inf => same, rest is NaN
+            $x = $x->bnan() if $x->{sign} ne $y->{sign};
         }
 
-        # +-inf + something => +inf; something +-inf => +-inf
+        # +-inf + something => +-inf; something +-inf => +-inf
         elsif ($y->{sign} =~ /^[+-]inf$/) {
             $x->{sign} = $y->{sign};
         }
 
-        return $downgrade->new($x, @r) if defined $downgrade;
-        return $x;
+        return $downgrade -> new($x -> bdstr(), @r) if defined $downgrade;
+        return $x -> round(@r);
     }
 
-    return $upgrade->badd($x, $y, @r) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
+    return $upgrade->badd($x, $y, @r) if defined $upgrade;
 
     $r[3] = $y;                 # no push!
 
     # for speed: no add for $x + 0
     if ($y->is_zero()) {
-        $x->bround(@r);
+        $x = $x->round(@r);
     }
 
     # for speed: no add for 0 + $y
@@ -1676,9 +1800,10 @@ sub badd {
         $x->{_es} = $y->{_es};
         $x->{_m} = $LIB->_copy($y->{_m});
         $x->{sign} = $y->{sign} || $nan;
-        $x->round(@r);
+        $x = $x->round(@r);
     }
 
+    # both $x and $y are non-zero
     else {
 
         # take lower of the two e's and adapt m1 to it to match m2
@@ -1688,16 +1813,13 @@ sub badd {
 
         my $es;
 
-        ($e, $es) = _e_sub($e, $x->{_e}, $y->{_es} || '+', $x->{_es});
-        #($e, $es) = $LIB -> _ssub($e, $y->{_es} || '+', $x->{_e}, $x->{_es});
+        ($e, $es) = $LIB -> _ssub($e, $y->{_es} || '+', $x->{_e}, $x->{_es});
 
         my $add = $LIB->_copy($y->{_m});
 
         if ($es eq '-') {                       # < 0
             $x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
-            ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
-            #$x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
-            #($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es);
+            ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es);
         } elsif (!$LIB->_is_zero($e)) {         # > 0
             $add = $LIB->_lsft($add, $e, 10);
         }
@@ -1708,38 +1830,28 @@ sub badd {
             $x->{_m} = $LIB->_add($x->{_m}, $add);
         } else {
             ($x->{_m}, $x->{sign}) =
-              _e_add($x->{_m}, $add, $x->{sign}, $y->{sign});
-            #($x->{_m}, $x->{sign}) =
-            #  $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $y->{sign});
+              $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $y->{sign});
         }
 
         # delete trailing zeros, then round
-        $x->bnorm()->round(@r);
+        $x = $x->bnorm()->round(@r);
     }
 
-    return $downgrade->new($x, @r) if defined($downgrade) && $x -> is_int();
-    return $x;
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    return $x;          # rounding already done above
 }
 
 sub bsub {
-    # (BINT or num_str, BINT or num_str) return BINT
-    # subtract second arg from first, modify first
-
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('bsub');
 
-    return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
-      if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
-
     if ($y -> is_zero()) {
-        $x -> round(@r);
+        $x = $x -> round(@r);
     } else {
 
         # To correctly handle the special case $x -> bsub($x), we note the sign
@@ -1751,17 +1863,18 @@ sub bsub {
         if ($xsign ne $x -> {sign}) {
             # special case of $x -> bsub($x) results in 0
             if ($xsign =~ /^[+-]$/) {
-                $x -> bzero(@r);
+                $x = $x -> bzero(@r);
             } else {
-                $x -> bnan();           # NaN, -inf, +inf
+                $x = $x -> bnan();      # NaN, -inf, +inf
             }
-            return $downgrade->new($x, @r) if defined $downgrade;
-            return $x;
+            return $downgrade -> new($x -> bdstr(), @r) if defined $downgrade;
+            return $x -> round(@r);
         }
         $x = $x -> badd($y, @r);        # badd does not leave internal zeros
         $y -> {sign} =~ tr/+-/-+/;      # reset $y (does nothing for NaN)
     }
-    return $downgrade->new($x, @r)
+
+    return $downgrade -> new($x -> bdstr(), @r)
       if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
     $x;                         # already rounded by badd() or no rounding
 }
@@ -1770,72 +1883,73 @@ sub bmul {
     # multiply two numbers
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('bmul');
 
-    return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+    return $x->bnan(@r) if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
 
     # inf handling
     if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
-        return $x->bnan() if $x->is_zero() || $y->is_zero();
+        return $x->bnan(@r) if $x->is_zero() || $y->is_zero();
         # result will always be +-inf:
         # +inf * +/+inf => +inf, -inf * -/-inf => +inf
         # +inf * -/-inf => -inf, -inf * +/+inf => -inf
-        return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
-        return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
-        return $x->binf('-');
+        return $x->binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+        return $x->binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+        return $x->binf('-', @r);
     }
 
-    return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
+    return $upgrade->bmul($x, $y, @r) if defined $upgrade;
 
     # aEb * cEd = (a*c)E(b+d)
     $x->{_m} = $LIB->_mul($x->{_m}, $y->{_m});
-    ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
-    #($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
+    ($x->{_e}, $x->{_es})
+      = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
 
     $r[3] = $y;                 # no push!
 
     # adjust sign:
     $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
-    $x->bnorm->round(@r);
+    $x = $x->bnorm->round(@r);
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+    return $x;
 }
 
 sub bmuladd {
     # multiply two numbers and add the third to the result
 
     # set up parameters
-    my ($class, $x, $y, $z, @r) = objectify(3, @_);
+    my ($class, $x, $y, $z, @r)
+      = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+      ? (ref($_[0]), @_)
+      : objectify(3, @_);
 
     return $x if $x->modify('bmuladd');
 
-    return $x->bnan() if (($x->{sign} eq $nan) ||
-                          ($y->{sign} eq $nan) ||
-                          ($z->{sign} eq $nan));
+    return $x->bnan(@r) if (($x->{sign} eq $nan) ||
+                            ($y->{sign} eq $nan) ||
+                            ($z->{sign} eq $nan));
 
     # inf handling
     if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
-        return $x->bnan() if $x->is_zero() || $y->is_zero();
+        return $x->bnan(@r) if $x->is_zero() || $y->is_zero();
         # result will always be +-inf:
         # +inf * +/+inf => +inf, -inf * -/-inf => +inf
         # +inf * -/-inf => -inf, -inf * +/+inf => -inf
-        return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
-        return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
-        return $x->binf('-');
+        return $x->binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+        return $x->binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+        return $x->binf('-', @r);
     }
 
-    return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
-
     # aEb * cEd = (a*c)E(b+d)
     $x->{_m} = $LIB->_mul($x->{_m}, $y->{_m});
-    ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
-    #($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
+    ($x->{_e}, $x->{_es})
+      = $LIB -> _sadd($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
 
     $r[3] = $y;                 # no push!
 
@@ -1845,8 +1959,8 @@ sub bmuladd {
     # z=inf handling (z=NaN handled above)
     if ($z->{sign} =~ /^[+-]inf$/) {
         $x->{sign} = $z->{sign};
-        return $downgrade->new($x) if defined $downgrade;
-        return $x;
+        return $downgrade -> new($x -> bdstr(), @r) if defined $downgrade;
+        return $x -> round(@r);
     }
 
     # take lower of the two e's and adapt m1 to it to match m2
@@ -1856,17 +1970,14 @@ sub bmuladd {
 
     my $es;
 
-    ($e, $es) = _e_sub($e, $x->{_e}, $z->{_es} || '+', $x->{_es});
-    #($e, $es) = $LIB -> _ssub($e, $z->{_es} || '+', $x->{_e}, $x->{_es});
+    ($e, $es) = $LIB -> _ssub($e, $z->{_es} || '+', $x->{_e}, $x->{_es});
 
     my $add = $LIB->_copy($z->{_m});
 
     if ($es eq '-')             # < 0
     {
         $x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
-        ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
-        #$x->{_m} = $LIB->_lsft($x->{_m}, $e, 10);
-        #($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es);
+        ($x->{_e}, $x->{_es}) = $LIB -> _sadd($x->{_e}, $x->{_es}, $e, $es);
     } elsif (!$LIB->_is_zero($e)) # > 0
     {
         $add = $LIB->_lsft($add, $e, 10);
@@ -1878,13 +1989,15 @@ sub bmuladd {
         $x->{_m} = $LIB->_add($x->{_m}, $add);
     } else {
         ($x->{_m}, $x->{sign}) =
-          _e_add($x->{_m}, $add, $x->{sign}, $z->{sign});
-        #($x->{_m}, $x->{sign}) =
-        #  $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $z->{sign});
+          $LIB -> _sadd($x->{_m}, $x->{sign}, $add, $z->{sign});
     }
 
     # delete trailing zeros, then round
-    $x->bnorm()->round(@r);
+    $x = $x->bnorm()->round(@r);
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+    return $x;
 }
 
 sub bdiv {
@@ -1892,10 +2005,10 @@ sub bdiv {
     # (BFLOAT, BFLOAT) (quo, rem) or BFLOAT (only quo)
 
     # set up parameters
-    my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+    my ($class, $x, $y, @r) = (ref($_[0]), @_);
     # objectify is costly, so avoid it
     if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
+        ($class, $x, $y, @r) = objectify(2, @_);
     }
 
     return $x if $x->modify('bdiv');
@@ -1906,7 +2019,8 @@ sub bdiv {
     # Math::BigInt -> bdiv().
 
     if ($x -> is_nan() || $y -> is_nan()) {
-        return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+        return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r))
+                          : $x -> bnan(@r);
     }
 
     # Divide by zero and modulo zero. This is handled the same way as in
@@ -1916,12 +2030,14 @@ sub bdiv {
     if ($y -> is_zero()) {
         my ($quo, $rem);
         if ($wantarray) {
-            $rem = $x -> copy();
+            $rem = $x -> copy() -> round(@r);
+            $rem = $downgrade -> new($rem, @r)
+              if defined($downgrade) && $rem -> is_int();
         }
         if ($x -> is_zero()) {
-            $quo = $x -> bnan();
+            $quo = $x -> bnan(@r);
         } else {
-            $quo = $x -> binf($x -> {sign});
+            $quo = $x -> binf($x -> {sign}, @r);
         }
         return $wantarray ? ($quo, $rem) : $quo;
     }
@@ -1932,12 +2048,12 @@ sub bdiv {
 
     if ($x -> is_inf()) {
         my ($quo, $rem);
-        $rem = $class -> bnan() if $wantarray;
+        $rem = $class -> bnan(@r) if $wantarray;
         if ($y -> is_inf()) {
-            $quo = $x -> bnan();
+            $quo = $x -> bnan(@r);
         } else {
             my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
-            $quo = $x -> binf($sign);
+            $quo = $x -> binf($sign, @r);
         }
         return $wantarray ? ($quo, $rem) : $quo;
     }
@@ -1952,19 +2068,21 @@ sub bdiv {
         my ($quo, $rem);
         if ($wantarray) {
             if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
-                $rem = $x -> copy();
-                $quo = $x -> bzero();
+                $rem = $x -> copy() -> round(@r);
+                $rem = $downgrade -> new($rem, @r)
+                  if defined($downgrade) && $rem -> is_int();
+                $quo = $x -> bzero(@r);
             } else {
-                $rem = $class -> binf($y -> {sign});
-                $quo = $x -> bone('-');
+                $rem = $class -> binf($y -> {sign}, @r);
+                $quo = $x -> bone('-', @r);
             }
             return ($quo, $rem);
         } else {
             if ($y -> is_inf()) {
                 if ($x -> is_nan() || $x -> is_inf()) {
-                    return $x -> bnan();
+                    return $x -> bnan(@r);
                 } else {
-                    return $x -> bzero();
+                    return $x -> bzero(@r);
                 }
             }
         }
@@ -1974,21 +2092,37 @@ sub bdiv {
     # the denominator (divisor) is non-zero.
 
     # x == 0?
-    return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
+    if ($x->is_zero()) {
+        my ($quo, $rem);
+        $quo = $x->round(@r);
+        $quo = $downgrade -> new($quo, @r)
+          if defined($downgrade) && $quo -> is_int();
+        if ($wantarray) {
+            $rem = $class -> bzero(@r);
+            return $quo, $rem;
+        }
+        return $quo;
+    }
+
+    # Division might return a value that we can not represent exactly, so
+    # upgrade, if upgrading is enabled.
+
+    return $upgrade -> bdiv($x, $y, @r)
+      if defined($upgrade) && !wantarray && !$LIB -> _is_one($y -> {_m});
 
     # we need to limit the accuracy to protect against overflow
     my $fallback = 0;
     my (@params, $scale);
-    ($x, @params) = $x->_find_round_parameters($a, $p, $r, $y);
+    ($x, @params) = $x->_find_round_parameters($r[0], $r[1], $r[2], $y);
 
-    return $x if $x->is_nan();  # error in _find_round_parameters?
+    return $x -> round(@r) if $x->is_nan();  # error in _find_round_parameters?
 
     # no rounding at all, so must use fallback
     if (scalar @params == 0) {
         # simulate old behaviour
         $params[0] = $class->div_scale(); # and round to it as accuracy
         $scale = $params[0]+4;            # at least four more for proper round
-        $params[2] = $r;                  # round mode by caller or undef
+        $params[2] = $r[2];               # round mode by caller or undef
         $fallback = 1;                    # to clear a/p afterwards
     } else {
         # the 4 below is empirical, and there might be cases where it is not
@@ -2001,7 +2135,8 @@ sub bdiv {
 
     $y = $class->new($y) unless $y->isa('Math::BigFloat');
 
-    my $lx = $LIB -> _len($x->{_m}); my $ly = $LIB -> _len($y->{_m});
+    my $lx = $LIB -> _len($x->{_m});
+    my $ly = $LIB -> _len($y->{_m});
     $scale = $lx if $lx > $scale;
     $scale = $ly if $ly > $scale;
     my $diff = $ly - $lx;
@@ -2017,13 +2152,14 @@ sub bdiv {
 
     if ($xsign ne $x->{sign}) {
         # special case of $x /= $x results in 1
-        $x->bone();             # "fixes" also sign of $y, since $x is $y
+        $x = $x->bone();        # "fixes" also sign of $y, since $x is $y
     } else {
         # correct $y's sign again
         $y->{sign} =~ tr/+-/-+/;
         # continue with normal div code:
 
-        # make copy of $x in case of list context for later remainder calculation
+        # make copy of $x in case of list context for later remainder
+        # calculation
         if (wantarray && $y_not_one) {
             $rem = $x->copy();
         }
@@ -2032,7 +2168,8 @@ sub bdiv {
 
         # check for / +-1 (+/- 1E0)
         if ($y_not_one) {
-            # promote BigInts and it's subclasses (except when already a Math::BigFloat)
+            # promote Math::BigInt and its subclasses (except when already a
+            # Math::BigFloat)
             $y = $class->new($y) unless $y->isa('Math::BigFloat');
 
             # calculate the result to $scale digits and then round it
@@ -2041,80 +2178,77 @@ sub bdiv {
             $x->{_m} = $LIB->_div($x->{_m}, $y->{_m}); # a/c
 
             # correct exponent of $x
-            ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
-            #($x->{_e}, $x->{_es})
-            #  = $LIB -> _ssub($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
+            ($x->{_e}, $x->{_es})
+              = $LIB -> _ssub($x->{_e}, $x->{_es}, $y->{_e}, $y->{_es});
             # correct for 10**scale
-            ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $LIB->_new($scale), $x->{_es}, '+');
-            #($x->{_e}, $x->{_es})
-            #  = $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($scale), '+');
-            $x->bnorm();        # remove trailing 0's
+            ($x->{_e}, $x->{_es})
+              = $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($scale), '+');
+            $x = $x->bnorm();   # remove trailing 0's
         }
     }                           # end else $x != $y
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
         delete $x->{_a};               # clear before round
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
         delete $x->{_p};                # clear before round
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
-        delete $x->{_a}; delete $x->{_p};
+        delete $x->{_a};
+        delete $x->{_p};
     }
 
     if (wantarray) {
         if ($y_not_one) {
-            $x -> bfloor();
-            $rem->bmod($y, @params); # copy already done
+            $x = $x -> bfloor();
+            $rem = $rem->bmod($y, @params); # copy already done
         }
         if ($fallback) {
             # clear a/p after round, since user did not request it
-            delete $rem->{_a}; delete $rem->{_p};
+            delete $rem->{_a};
+            delete $rem->{_p};
         }
-        $x = $downgrade -> new($x)
+        $x = $downgrade -> new($x -> bdstr(), @r)
           if defined($downgrade) && $x -> is_int();
-        $rem = $downgrade -> new($rem)
+        $rem = $downgrade -> new($rem -> bdstr(), @r)
           if defined($downgrade) && $rem -> is_int();
         return ($x, $rem);
     }
 
-    $x = $downgrade -> new($x) if defined($downgrade) && $x -> is_int();
-    $x;
+    $x = $downgrade -> new($x, @r)
+      if defined($downgrade) && $x -> is_int();
+    $x;         # rounding already done above
 }
 
 sub bmod {
     # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return remainder
 
     # set up parameters
-    my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('bmod');
 
     # At least one argument is NaN. This is handled the same way as in
     # Math::BigInt -> bmod().
 
-    if ($x -> is_nan() || $y -> is_nan()) {
-        return $x -> bnan();
-    }
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
 
     # Modulo zero. This is handled the same way as in Math::BigInt -> bmod().
 
     if ($y -> is_zero()) {
-        return $x;
+        return $x -> round(@r);
     }
 
     # Numerator (dividend) is +/-inf. This is handled the same way as in
     # Math::BigInt -> bmod().
 
     if ($x -> is_inf()) {
-        return $x -> bnan();
+        return $x -> bnan(@r);
     }
 
     # Denominator (divisor) is +/-inf. This is handled the same way as in
@@ -2122,20 +2256,20 @@ sub bmod {
 
     if ($y -> is_inf()) {
         if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
-            return $x;
+            return $x -> round(@r);
         } else {
-            return $x -> binf($y -> sign());
+            return $x -> binf($y -> sign(), @r);
         }
     }
 
-    return $x->bzero() if $x->is_zero()
+    return $x->bzero(@r) if $x->is_zero()
       || ($x->is_int() &&
           # check that $y == +1 or $y == -1:
           ($LIB->_is_zero($y->{_e}) && $LIB->_is_one($y->{_m})));
 
     my $cmp = $x->bacmp($y);    # equal or $x < $y?
     if ($cmp == 0) {            # $x == $y => result 0
-        return $x -> bzero($a, $p);
+        return $x -> bzero(@r);
     }
 
     # only $y of the operands negative?
@@ -2143,7 +2277,7 @@ sub bmod {
 
     $x->{sign} = $y->{sign};     # calc sign first
     if ($cmp < 0 && $neg == 0) { # $x < $y => result $x
-        return $x -> round($a, $p, $r);
+        return $x -> round(@r);
     }
 
     my $ym = $LIB->_copy($y->{_m});
@@ -2158,7 +2292,8 @@ sub bmod {
     {
         # 123 % 2.5 => 1230 % 25 => 5 => 0.5
         $shifty = $LIB->_num($y->{_e});  # no more digits after dot
-        $x->{_m} = $LIB->_lsft($x->{_m}, $y->{_e}, 10); # 123 => 1230, $y->{_m} is already 25
+        # 123 => 1230, $y->{_m} is already 25
+        $x->{_m} = $LIB->_lsft($x->{_m}, $y->{_e}, 10);
     }
     # $ym is now mantissa of $y based on exponent 0
 
@@ -2184,48 +2319,60 @@ sub bmod {
     $x->{_m} = $LIB->_mod($x->{_m}, $ym);
 
     $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # fix sign for -0
-    $x->bnorm();
+    $x = $x->bnorm();
 
-    if ($neg != 0 && ! $x -> is_zero()) # one of them negative => correct in place
-    {
+    # if one of them negative => correct in place
+    if ($neg != 0 && ! $x -> is_zero()) {
         my $r = $y - $x;
         $x->{_m} = $r->{_m};
         $x->{_e} = $r->{_e};
         $x->{_es} = $r->{_es};
         $x->{sign} = '+' if $LIB->_is_zero($x->{_m}); # fix sign for -0
-        $x->bnorm();
+        $x = $x->bnorm();
     }
 
-    $x->round($a, $p, $r, $y);     # round and return
+    $x = $x->round($r[0], $r[1], $r[2], $y);
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+    return $x;
 }
 
 sub bmodpow {
     # takes a very large number to a very large exponent in a given very
     # large modulus, quickly, thanks to binary exponentiation. Supports
     # negative exponents.
-    my ($class, $num, $exp, $mod) = objectify(3, @_);
+    my ($class, $num, $exp, $mod, @r)
+      = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+      ? (ref($_[0]), @_)
+      : objectify(3, @_);
 
     return $num if $num->modify('bmodpow');
 
+    return $num -> bnan(@r)
+      if $mod->is_nan() || $exp->is_nan() || $mod->is_nan();
+
     # check modulus for valid values
-    return $num->bnan() if ($mod->{sign} ne '+' # NaN, -, -inf, +inf
-                            || $mod->is_zero());
+    return $num->bnan(@r) if $mod->{sign} ne '+' || $mod->is_zero();
 
     # check exponent for valid values
     if ($exp->{sign} =~ /\w/) {
         # i.e., if it's NaN, +inf, or -inf...
-        return $num->bnan();
+        return $num->bnan(@r);
     }
 
-    $num->bmodinv ($mod) if ($exp->{sign} eq '-');
+    $num = $num->bmodinv($mod, @r) if $exp->{sign} eq '-';
 
     # check num for valid values (also NaN if there was no inverse but $exp < 0)
-    return $num->bnan() if $num->{sign} !~ /^[+-]$/;
+    return $num->bnan(@r) if $num->{sign} !~ /^[+-]$/;
 
     # $mod is positive, sign on $exp is ignored, result also positive
 
     # XXX TODO: speed it up when all three numbers are integers
-    $num->bpow($exp)->bmod($mod);
+    $num = $num->bpow($exp)->bmod($mod);
+
+    return $downgrade -> new($num -> bdstr(), @r) if defined($downgrade)
+      && ($num->is_int() || $num->is_inf() || $num->is_nan());
+    return $num -> round(@r);
 }
 
 sub bpow {
@@ -2276,8 +2423,7 @@ sub bpow {
     # We don't support complex numbers, so upgrade or return NaN.
 
     if ($x -> is_negative() && !$y -> is_int()) {
-        return $upgrade -> bpow($upgrade -> new($x), $y, $a, $p, $r)
-          if defined $upgrade;
+        return $upgrade -> bpow($x, $y, $a, $p, $r) if defined $upgrade;
         return $x -> bnan();
     }
 
@@ -2302,19 +2448,23 @@ sub bpow {
     $x->{_e} = $LIB -> _mul($x->{_e}, $y1);
 
     $x->{sign} = $new_sign;
-    $x -> bnorm();
+    $x = $x -> bnorm();
 
     # x ** (-y) = 1 / (x ** y)
 
     if ($y->{sign} eq '-') {
         # modify $x in place!
         my $z = $x -> copy();
-        $x -> bone();
+        $x = $x -> bone();
         # round in one go (might ignore y's A!)
         return scalar $x -> bdiv($z, $a, $p, $r);
     }
 
-    $x -> round($a, $p, $r, $y);
+    $x = $x -> round($a, $p, $r, $y);
+
+    return $downgrade -> new($x)
+      if defined($downgrade) && ($x->is_int() || $x->is_inf() || $x->is_nan());
+    return $x;
 }
 
 sub blog {
@@ -2322,29 +2472,32 @@ sub blog {
     # value is used as the base, otherwise the base is assumed to be Euler's
     # constant.
 
-    my ($class, $x, $base, $a, $p, $r);
+    my ($class, $x, $base, @r);
 
-    # Don't objectify the base, since an undefined base, as in $x->blog() or
-    # $x->blog(undef) signals that the base is Euler's number.
+    # Only objectify the base if it is defined, since an undefined base, as in
+    # $x->blog() or $x->blog(undef) signals that the base is Euler's number.
 
     if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
         # E.g., Math::BigFloat->blog(256, 2)
-        ($class, $x, $base, $a, $p, $r) =
+        ($class, $x, $base, @r) =
           defined $_[2] ? objectify(2, @_) : objectify(1, @_);
     } else {
         # E.g., Math::BigFloat::blog(256, 2) or $x->blog(2)
-        ($class, $x, $base, $a, $p, $r) =
+        ($class, $x, $base, @r) =
           defined $_[1] ? objectify(2, @_) : objectify(1, @_);
     }
 
     return $x if $x->modify('blog');
 
-    return $x -> bnan() if $x -> is_nan();
+    return $x -> bnan(@r) if $x -> is_nan();
+
+    return $upgrade -> blog($x, $base, @r)
+      if defined($upgrade) && $x -> is_neg();
 
     # we need to limit the accuracy to protect against overflow
     my $fallback = 0;
     my ($scale, @params);
-    ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+    ($x, @params) = $x->_find_round_parameters(@r);
 
     # no rounding at all, so must use fallback
     if (scalar @params == 0) {
@@ -2352,7 +2505,7 @@ sub blog {
         $params[0] = $class->div_scale(); # and round to it as accuracy
         $params[1] = undef;               # P = undef
         $scale = $params[0]+4;            # at least four more for proper round
-        $params[2] = $r;                  # round mode by caller or undef
+        $params[2] = $r[2];               # round mode by caller or undef
         $fallback = 1;                    # to clear a/p afterwards
     } else {
         # the 4 below is empirical, and there might be cases where it is not
@@ -2362,28 +2515,29 @@ sub blog {
 
     my $done = 0;
     if (defined $base) {
-        $base = $class -> new($base) unless ref $base;
+        $base = $class -> new($base)
+          unless defined(blessed($base)) && $base -> isa($class);
         if ($base -> is_nan() || $base -> is_one()) {
-            $x -> bnan();
+            $x = $x -> bnan();
             $done = 1;
         } elsif ($base -> is_inf() || $base -> is_zero()) {
             if ($x -> is_inf() || $x -> is_zero()) {
-                $x -> bnan();
+                $x = $x -> bnan();
             } else {
-                $x -> bzero(@params);
+                $x = $x -> bzero(@params);
             }
             $done = 1;
         } elsif ($base -> is_negative()) { # -inf < base < 0
             if ($x -> is_one()) {          #     x = 1
-                $x -> bzero(@params);
+                $x = $x -> bzero(@params);
             } elsif ($x == $base) {
-                $x -> bone('+', @params); #     x = base
+                $x = $x -> bone('+', @params); #     x = base
             } else {
-                $x -> bnan();   #     otherwise
+                $x = $x -> bnan();   #     otherwise
             }
             $done = 1;
         } elsif ($x == $base) {
-            $x -> bone('+', @params); # 0 < base && 0 < x < inf
+            $x = $x -> bone('+', @params); # 0 < base && 0 < x < inf
             $done = 1;
         }
     }
@@ -2393,17 +2547,17 @@ sub blog {
     unless ($done) {
         if ($x -> is_inf()) {   #   x = +/-inf
             my $sign = defined $base && $base < 1 ? '-' : '+';
-            $x -> binf($sign);
+            $x = $x -> binf($sign);
             $done = 1;
         } elsif ($x -> is_neg()) { #   -inf < x < 0
-            $x -> bnan();
+            $x = $x -> bnan();
             $done = 1;
         } elsif ($x -> is_one()) { #   x = 1
-            $x -> bzero(@params);
+            $x = $x -> bzero(@params);
             $done = 1;
         } elsif ($x -> is_zero()) { #   x = 0
             my $sign = defined $base && $base < 1 ? '+' : '-';
-            $x -> binf($sign);
+            $x = $x -> binf($sign);
             $done = 1;
         }
     }
@@ -2414,69 +2568,61 @@ sub blog {
             delete $x->{_a};
             delete $x->{_p};
         }
+        return $downgrade -> new($x -> bdstr(), @r)
+          if defined($downgrade) && $x->is_int();
         return $x;
     }
 
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
-    delete $x->{_a}; delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
-    local $Math::BigInt::upgrade = undef;
-    local $Math::BigFloat::downgrade = undef;
-
-    # upgrade $x if $x is not a Math::BigFloat (handle BigInt input)
-    # XXX TODO: rebless!
-    if (!$x->isa('Math::BigFloat')) {
-        $x = Math::BigFloat->new($x);
-        $class = ref($x);
-    }
+    delete $x->{_a};
+    delete $x->{_p};
 
     $done = 0;
 
-    # If the base is defined and an integer, try to calculate integer result
-    # first. This is very fast, and in case the real result was found, we can
-    # stop right here.
-    if (defined $base && $base->is_int() && $x->is_int()) {
-        my $xint = Math::BigInt -> new($x    -> bdstr());
-        my $bint = Math::BigInt -> new($base -> bdstr());
-        $xint->blog($bint);
-
-        # if we found the exact result, we're done
-        if ($bint -> bpow($xint) == $x) {
-            my $xflt = Math::BigFloat -> new($xint -> bdstr());
-            $x->{sign} = $xflt->{sign};
-            $x->{_m}   = $xflt->{_m};
-            $x->{_es}  = $xflt->{_es};
-            $x->{_e}   = $xflt->{_e};
+    # If both the invocand and the base are integers, try to calculate integer
+    # result first. This is very fast, and in case the real result was found, we
+    # can stop right here.
+
+    if (defined($base) && $base -> is_int() && $x -> is_int()) {
+        my $x_lib = $LIB -> _new($x -> bdstr());
+        my $b_lib = $LIB -> _new($base -> bdstr());
+        ($x_lib, my $exact) = $LIB -> _log_int($x_lib, $b_lib);
+        if ($exact) {
+            $x->{_m} = $x_lib;
+            $x->{_e} = $LIB -> _zero();
+            $x = $x -> bnorm();
             $done = 1;
         }
     }
 
-    if ($done == 0) {
+    unless ($done) {
+
         # First calculate the log to base e (using reduction by 10 and possibly
-        # also by 2):
-        $x->_log_10($scale);
+        # also by 2), and if a different base was requested, convert the result.
 
-        # and if a different base was requested, convert it
+        $x = $x->_log_10($scale);
         if (defined $base) {
-            $base = Math::BigFloat->new($base)
-              unless $base->isa('Math::BigFloat');
             # log_b(x) = ln(x) / ln(b), so compute ln(b)
             my $base_log_e = $base->copy()->_log_10($scale);
-            $x->bdiv($base_log_e, $scale);
+            $x = $x->bdiv($base_log_e, $scale);
         }
     }
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
@@ -2487,25 +2633,28 @@ sub blog {
     $$abr = $ab;
     $$pbr = $pb;
 
-    $x;
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x->is_int();
+    return $x;
 }
 
 sub bexp {
     # Calculate e ** X (Euler's number to the power of X)
-    my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bexp');
 
-    return $x->binf() if $x->{sign} eq '+inf';
-    return $x->bzero() if $x->{sign} eq '-inf';
+    return $x->bnan(@r)  if $x -> is_nan();
+    return $x->binf(@r)  if $x->{sign} eq '+inf';
+    return $x->bzero(@r) if $x->{sign} eq '-inf';
 
     # we need to limit the accuracy to protect against overflow
     my $fallback = 0;
     my ($scale, @params);
-    ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+    ($x, @params) = $x->_find_round_parameters(@r);
 
-    # also takes care of the "error in _find_round_parameters?" case
-    return $x if $x->{sign} eq 'NaN';
+    # error in _find_round_parameters?
+    return $x->bnan(@r) if $x->{sign} eq 'NaN';
 
     # no rounding at all, so must use fallback
     if (scalar @params == 0) {
@@ -2513,7 +2662,7 @@ sub bexp {
         $params[0] = $class->div_scale(); # and round to it as accuracy
         $params[1] = undef;               # P = undef
         $scale = $params[0]+4;            # at least four more for proper round
-        $params[2] = $r;                  # round mode by caller or undef
+        $params[2] = $r[2];               # round mode by caller or undef
         $fallback = 1;                    # to clear a/p afterwards
     } else {
         # the 4 below is empirical, and there might be cases where it's not
@@ -2531,13 +2680,21 @@ sub bexp {
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
     delete $x->{_a};
     delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
+
+    # Disabling upgrading and downgrading is no longer necessary to avoid an
+    # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+    # the intermediate computations.
+
     local $Math::BigInt::upgrade = undef;
     local $Math::BigFloat::downgrade = undef;
 
@@ -2600,13 +2757,15 @@ sub bexp {
     } else {
         # compute A and B so that e = A / B.
 
-        # After some terms we end up with this, so we use it as a starting point:
+        # After some terms we end up with this, so we use it as a starting
+        # point:
         my $A = $LIB->_new("9093339520860578540197197" .
                            "0164779391644753259799242");
         my $F = $LIB->_new(42);
         my $step = 42;
 
-        # Compute how many steps we need to take to get $A and $B sufficiently big
+        # Compute how many steps we need to take to get $A and $B sufficiently
+        # big
         my $steps = _len_to_steps($scale - 4);
         #    print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
         while ($step++ <= $steps) {
@@ -2616,7 +2775,9 @@ sub bexp {
             # increment f
             $F = $LIB->_inc($F);
         }
-        # compute $B as factorial of $steps (this is faster than doing it manually)
+
+        # Compute $B as factorial of $steps (this is faster than doing it
+        # manually)
         my $B = $LIB->_fac($LIB->_new($steps));
 
         #  print "A ", $LIB->_str($A), "\nB ", $LIB->_str($B), "\n";
@@ -2631,7 +2792,8 @@ sub bexp {
         $x->{_e} = $LIB->_new($scale);
     }
 
-    # $x contains now an estimate of e, with some surplus digits, so we can round
+    # $x contains now an estimate of e, with some surplus digits, so we can
+    # round
     if (!$x_org->is_one()) {
         # Reduce size of fractional part, followup with integer power of two.
         my $lshift = 0;
@@ -2640,10 +2802,11 @@ sub bexp {
         }
         # Raise $x to the wanted power and round it.
         if ($lshift == 0) {
-            $x->bpow($x_org, @params);
+            $x = $x->bpow($x_org, @params);
         } else {
             my($mul, $rescale) = (1 << $lshift, $scale+1+$lshift);
-            $x->bpow(scalar $x_org->bdiv($mul, $rescale), $rescale)->bpow($mul, @params);
+            $x = $x -> bpow(scalar $x_org->bdiv($mul, $rescale), $rescale)
+                    -> bpow($mul, @params);
         }
     } else {
         # else just round the already computed result
@@ -2651,9 +2814,9 @@ sub bexp {
         delete $x->{_p};
         # shortcut to not run through _find_round_parameters again
         if (defined $params[0]) {
-            $x->bround($params[0], $params[2]); # then round accordingly
+            $x = $x->bround($params[0], $params[2]); # then round accordingly
         } else {
-            $x->bfround($params[1], $params[2]); # then round accordingly
+            $x = $x->bfround($params[1], $params[2]); # then round accordingly
         }
     }
     if ($fallback) {
@@ -2665,18 +2828,19 @@ sub bexp {
     $$abr = $ab;
     $$pbr = $pb;
 
-    $x;                         # return modified $x
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    $x;
 }
 
 sub bnok {
     # Calculate n over k (binomial coefficient or "choose" function) as integer.
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x if $x->modify('bnok');
 
@@ -2686,7 +2850,10 @@ sub bnok {
 
     my $xint = Math::BigInt -> new($x -> bsstr());
     my $yint = Math::BigInt -> new($y -> bsstr());
-    $xint -> bnok($yint);
+    $xint = $xint -> bnok($yint);
+
+    return $xint if defined $downgrade;
+
     my $xflt = Math::BigFloat -> new($xint);
 
     $x->{_m}   = $xflt->{_m};
@@ -2705,15 +2872,18 @@ sub bsin {
     #    sin = x - --- + --- - --- + --- ...
     #               3!    5!    7!    9!
 
+    return $x if $x->modify('bsin');
+
+    return $x -> bzero(@r) if $x->is_zero();
+    return $x -> bnan(@r)  if $x->is_nan() || $x->is_inf();
+
     # we need to limit the accuracy to protect against overflow
     my $fallback = 0;
     my ($scale, @params);
     ($x, @params) = $x->_find_round_parameters(@r);
 
-    #         constant object       or error in _find_round_parameters?
-    return $x if $x->modify('bsin') || $x->is_nan();
-    return $x->bnan()    if $x->is_inf();
-    return $x->bzero(@r) if $x->is_zero();
+    # error in _find_round_parameters?
+    return $x->bnan(@r) if $x->is_nan();
 
     # no rounding at all, so must use fallback
     if (scalar @params == 0) {
@@ -2732,26 +2902,35 @@ sub bsin {
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
     delete $x->{_a};
     delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
+
+    # Disabling upgrading and downgrading is no longer necessary to avoid an
+    # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+    # the intermediate computations.
+
     local $Math::BigInt::upgrade = undef;
+    local $Math::BigFloat::downgrade = undef;
 
     my $over = $x * $x;         # X ^ 2
     my $x2 = $over->copy();     # X ^ 2; difference between terms
-    $over->bmul($x);            # X ^ 3 as starting value
+    $over = $over->bmul($x);    # X ^ 3 as starting value
     my $sign = 1;               # start with -=
-    my $below = $class->new(6); my $factorial = $class->new(4);
+    my $below = $class->new(6);
+    my $factorial = $class->new(4);
     delete $x->{_a};
     delete $x->{_p};
 
     my $limit = $class->new("1E-". ($scale-1));
-    #my $steps = 0;
-    while (3 < 5) {
+    while (1) {
         # we calculate the next term, and add it to the last
         # when the next term is below our limit, it won't affect the outcome
         # anymore, so we stop:
@@ -2759,22 +2938,24 @@ sub bsin {
         last if $next->bacmp($limit) <= 0;
 
         if ($sign == 0) {
-            $x->badd($next);
+            $x = $x->badd($next);
         } else {
-            $x->bsub($next);
+            $x = $x->bsub($next);
         }
         $sign = 1-$sign;        # alternate
         # calculate things for the next term
-        $over->bmul($x2);                         # $x*$x
-        $below->bmul($factorial); $factorial->binc(); # n*(n+1)
-        $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+        $over = $over->bmul($x2);                       # $x*$x
+        $below = $below->bmul($factorial);              # n*(n+1)
+        $factorial = $factorial->binc();
+        $below = $below -> bmul($factorial);              # n*(n+1)
+        $factorial = $factorial->binc();
     }
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
@@ -2784,6 +2965,9 @@ sub bsin {
     # restore globals
     $$abr = $ab;
     $$pbr = $pb;
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
     $x;
 }
 
@@ -2822,20 +3006,23 @@ sub bcos {
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
-    delete $x->{_a}; delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
-    local $Math::BigInt::upgrade = undef;
+    delete $x->{_a};
+    delete $x->{_p};
 
     my $over = $x * $x;         # X ^ 2
     my $x2 = $over->copy();     # X ^ 2; difference between terms
     my $sign = 1;               # start with -=
     my $below = $class->new(2);
     my $factorial = $class->new(3);
-    $x->bone();
+    $x = $x->bone();
     delete $x->{_a};
     delete $x->{_p};
 
@@ -2849,22 +3036,24 @@ sub bcos {
         last if $next->bacmp($limit) <= 0;
 
         if ($sign == 0) {
-            $x->badd($next);
+            $x = $x->badd($next);
         } else {
-            $x->bsub($next);
+            $x = $x->bsub($next);
         }
         $sign = 1-$sign;        # alternate
         # calculate things for the next term
-        $over->bmul($x2);                         # $x*$x
-        $below->bmul($factorial); $factorial->binc(); # n*(n+1)
-        $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+        $over = $over->bmul($x2);                       # $x*$x
+        $below = $below->bmul($factorial);              # n*(n+1)
+        $factorial = $factorial -> binc();
+        $below = $below->bmul($factorial);              # n*(n+1)
+        $factorial = $factorial -> binc();
     }
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
@@ -2874,48 +3063,50 @@ sub bcos {
     # restore globals
     $$abr = $ab;
     $$pbr = $pb;
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
     $x;
 }
 
 sub batan {
     # Calculate a arcus tangens of x.
-
-    my $self    = shift;
-    my $selfref = ref $self;
-    my $class   = $selfref || $self;
-
-    my (@r) = @_;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     # taylor:       x^3   x^5   x^7   x^9
     #    atan = x - --- + --- - --- + --- ...
     #                3     5     7     9
 
+    return $x if $x->modify('batan');
+
+    return $x -> bnan(@r) if $x->is_nan();
+
     # We need to limit the accuracy to protect against overflow.
 
     my $fallback = 0;
     my ($scale, @params);
-    ($self, @params) = $self->_find_round_parameters(@r);
+    ($x, @params) = $x->_find_round_parameters(@r);
 
-    # Constant object or error in _find_round_parameters?
+    # Error in _find_round_parameters?
 
-    return $self if $self->modify('batan') || $self->is_nan();
+    return $x -> bnan(@r) if $x->is_nan();
 
-    if ($self->{sign} =~ /^[+-]inf\z/) {
+    if ($x->{sign} =~ /^[+-]inf\z/) {
         # +inf result is PI/2
         # -inf result is -PI/2
         # calculate PI/2
         my $pi = $class->bpi(@r);
-        # modify $self in place
-        $self->{_m} = $pi->{_m};
-        $self->{_e} = $pi->{_e};
-        $self->{_es} = $pi->{_es};
+        # modify $x in place
+        $x->{_m} = $pi->{_m};
+        $x->{_e} = $pi->{_e};
+        $x->{_es} = $pi->{_es};
         # -y => -PI/2, +y => PI/2
-        $self->{sign} = substr($self->{sign}, 0, 1); # "+inf" => "+"
-        $self -> {_m} = $LIB->_div($self->{_m}, $LIB->_new(2));
-        return $self;
+        $x->{sign} = substr($x->{sign}, 0, 1); # "+inf" => "+"
+        $x -> {_m} = $LIB->_div($x->{_m}, $LIB->_new(2));
+        return $x;
     }
 
-    return $self->bzero(@r) if $self->is_zero();
+    return $x->bzero(@r) if $x->is_zero();
 
     # no rounding at all, so must use fallback
     if (scalar @params == 0) {
@@ -2933,57 +3124,67 @@ sub batan {
 
     # 1 or -1 => PI/4
     # inlined is_one() && is_one('-')
-    if ($LIB->_is_one($self->{_m}) && $LIB->_is_zero($self->{_e})) {
+    if ($LIB->_is_one($x->{_m}) && $LIB->_is_zero($x->{_e})) {
         my $pi = $class->bpi($scale - 3);
-        # modify $self in place
-        $self->{_m} = $pi->{_m};
-        $self->{_e} = $pi->{_e};
-        $self->{_es} = $pi->{_es};
-        # leave the sign of $self alone (+1 => +PI/4, -1 => -PI/4)
-        $self->{_m} = $LIB->_div($self->{_m}, $LIB->_new(4));
-        return $self;
+        # modify $x in place
+        $x->{_m} = $pi->{_m};
+        $x->{_e} = $pi->{_e};
+        $x->{_es} = $pi->{_es};
+        # leave the sign of $x alone (+1 => +PI/4, -1 => -PI/4)
+        $x->{_m} = $LIB->_div($x->{_m}, $LIB->_new(4));
+        return $x;
     }
 
     # This series is only valid if -1 < x < 1, so for other x we need to
     # calculate PI/2 - atan(1/x):
     my $pi = undef;
-    if ($self->bacmp($self->copy()->bone) >= 0) {
+    if ($x->bacmp($x->copy()->bone) >= 0) {
         # calculate PI/2
         $pi = $class->bpi($scale - 3);
         $pi->{_m} = $LIB->_div($pi->{_m}, $LIB->_new(2));
-        # calculate 1/$self:
-        my $self_copy = $self->copy();
-        # modify $self in place
-        $self->bone();
-        $self->bdiv($self_copy, $scale);
+        # calculate 1/$x:
+        my $x_copy = $x->copy();
+        # modify $x in place
+        $x = $x->bone();
+        $x = $x->bdiv($x_copy, $scale);
     }
 
     my $fmul = 1;
     foreach (0 .. int($scale / 20)) {
         $fmul *= 2;
-        $self->bdiv($self->copy()->bmul($self)->binc->bsqrt($scale + 4)->binc, $scale + 4);
+        $x = $x->bdiv($x->copy()->bmul($x)->binc()->bsqrt($scale + 4)->binc(),
+                      $scale + 4);
     }
 
     # When user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them.
     no strict 'refs';
-    my $abr = "$class\::accuracy";  my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
-    # We also need to disable any set A or P on $self (_find_round_parameters
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
+    # We also need to disable any set A or P on $x (_find_round_parameters
     # took them already into account), since these would interfere, too
-    delete $self->{_a};
-    delete $self->{_p};
-    # Need to disable $upgrade in BigInt, to avoid deep recursion.
+    delete $x->{_a};
+    delete $x->{_p};
+
+    # Disabling upgrading and downgrading is no longer necessary to avoid an
+    # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+    # the intermediate computations.
+
     local $Math::BigInt::upgrade = undef;
+    local $Math::BigFloat::downgrade = undef;
 
-    my $over = $self * $self;   # X ^ 2
-    my $self2 = $over->copy();  # X ^ 2; difference between terms
-    $over->bmul($self);         # X ^ 3 as starting value
+    my $over = $x * $x;   # X ^ 2
+    my $x2 = $over->copy();  # X ^ 2; difference between terms
+    $over = $over->bmul($x);         # X ^ 3 as starting value
     my $sign = 1;               # start with -=
     my $below = $class->new(3);
     my $two = $class->new(2);
-    delete $self->{_a};
-    delete $self->{_p};
+    delete $x->{_a};
+    delete $x->{_p};
 
     my $limit = $class->new("1E-". ($scale-1));
     #my $steps = 0;
@@ -2995,55 +3196,55 @@ sub batan {
         last if $next->bacmp($limit) <= 0;
 
         if ($sign == 0) {
-            $self->badd($next);
+            $x = $x->badd($next);
         } else {
-            $self->bsub($next);
+            $x = $x->bsub($next);
         }
         $sign = 1-$sign;        # alternatex
         # calculate things for the next term
-        $over->bmul($self2);    # $self*$self
-        $below->badd($two);     # n += 2
+        $over = $over->bmul($x2);    # $x*$x
+        $below = $below->badd($two);     # n += 2
     }
-    $self->bmul($fmul);
+    $x = $x->bmul($fmul);
 
     if (defined $pi) {
-        my $self_copy = $self->copy();
-        # modify $self in place
-        $self->{_m} = $pi->{_m};
-        $self->{_e} = $pi->{_e};
-        $self->{_es} = $pi->{_es};
-        # PI/2 - $self
-        $self->bsub($self_copy);
+        my $x_copy = $x->copy();
+        # modify $x in place
+        $x->{_m} = $pi->{_m};
+        $x->{_e} = $pi->{_e};
+        $x->{_es} = $pi->{_es};
+        # PI/2 - $x
+        $x = $x->bsub($x_copy);
     }
 
     # Shortcut to not run through _find_round_parameters again.
     if (defined $params[0]) {
-        $self->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $self->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # Clear a/p after round, since user did not request it.
-        delete $self->{_a};
-        delete $self->{_p};
+        delete $x->{_a};
+        delete $x->{_p};
     }
 
     # restore globals
     $$abr = $ab;
     $$pbr = $pb;
-    $self;
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && ($x -> is_int() || $x -> is_inf());
+    $x;
 }
 
 sub batan2 {
     # $y -> batan2($x) returns the arcus tangens of $y / $x.
 
     # Set up parameters.
-    my ($class, $y, $x, @r) = (ref($_[0]), @_);
-
-    # Objectify is costly, so avoid it if we can.
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $y, $x, @r) = objectify(2, @_);
-    }
+    my ($class, $y, $x, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     # Quick exit if $y is read-only.
     return $y if $y -> modify('batan2');
@@ -3073,52 +3274,52 @@ sub batan2 {
         $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
     }
 
-    if ($x -> is_inf("+")) {                    # x = inf
-        if ($y -> is_inf("+")) {                #    y = inf
-            $y -> bpi($scale) -> bmul("0.25");  #       pi/4
-        } elsif ($y -> is_inf("-")) {           #    y = -inf
-            $y -> bpi($scale) -> bmul("-0.25"); #       -pi/4
-        } else {                                #    -inf < y < inf
-            return $y -> bzero(@r);             #       0
-        }
-    } elsif ($x -> is_inf("-")) {               # x = -inf
-        if ($y -> is_inf("+")) {                #    y = inf
-            $y -> bpi($scale) -> bmul("0.75");  #       3/4 pi
-        } elsif ($y -> is_inf("-")) {           #    y = -inf
-            $y -> bpi($scale) -> bmul("-0.75"); #       -3/4 pi
-        } elsif ($y >= 0) {                     #    y >= 0
-            $y -> bpi($scale);                  #       pi
-        } else {                                #    y < 0
-            $y -> bpi($scale) -> bneg();        #       -pi
-        }
-    } elsif ($x > 0) {                               # 0 < x < inf
-        if ($y -> is_inf("+")) {                     #    y = inf
-            $y -> bpi($scale) -> bmul("0.5");        #       pi/2
-        } elsif ($y -> is_inf("-")) {                #    y = -inf
-            $y -> bpi($scale) -> bmul("-0.5");       #       -pi/2
-        } else {                                     #   -inf < y < inf
-            $y -> bdiv($x, $scale) -> batan($scale); #       atan(y/x)
+    if ($x -> is_inf("+")) {                          # x = inf
+        if ($y -> is_inf("+")) {                      #    y = inf
+            $y = $y -> bpi($scale) -> bmul("0.25");   #       pi/4
+        } elsif ($y -> is_inf("-")) {                 #    y = -inf
+            $y = $y -> bpi($scale) -> bmul("-0.25");  #       -pi/4
+        } else {                                      #    -inf < y < inf
+            return $y -> bzero(@r);                   #       0
+        }
+    } elsif ($x -> is_inf("-")) {                     # x = -inf
+        if ($y -> is_inf("+")) {                      #    y = inf
+            $y = $y -> bpi($scale) -> bmul("0.75");   #       3/4 pi
+        } elsif ($y -> is_inf("-")) {                 #    y = -inf
+            $y = $y -> bpi($scale) -> bmul("-0.75");  #       -3/4 pi
+        } elsif ($y >= 0) {                           #    y >= 0
+            $y = $y -> bpi($scale);                   #       pi
+        } else {                                      #    y < 0
+            $y = $y -> bpi($scale) -> bneg();         #       -pi
+        }
+    } elsif ($x > 0) {                                    # 0 < x < inf
+        if ($y -> is_inf("+")) {                          #    y = inf
+            $y = $y -> bpi($scale) -> bmul("0.5");        #       pi/2
+        } elsif ($y -> is_inf("-")) {                     #    y = -inf
+            $y = $y -> bpi($scale) -> bmul("-0.5");       #       -pi/2
+        } else {                                          #   -inf < y < inf
+            $y = $y -> bdiv($x, $scale) -> batan($scale); #       atan(y/x)
         }
-    } elsif ($x < 0) {                        # -inf < x < 0
+    } elsif ($x < 0) {                                # -inf < x < 0
         my $pi = $class -> bpi($scale);
-        if ($y >= 0) {                        #    y >= 0
-            $y -> bdiv($x, $scale) -> batan() #       atan(y/x) + pi
+        if ($y >= 0) {                                #    y >= 0
+            $y = $y -> bdiv($x, $scale) -> batan()    #       atan(y/x) + pi
                -> badd($pi);
-        } else {                              #    y < 0
-            $y -> bdiv($x, $scale) -> batan() #       atan(y/x) - pi
+        } else {                                      #    y < 0
+            $y = $y -> bdiv($x, $scale) -> batan()    #       atan(y/x) - pi
                -> bsub($pi);
         }
-    } else {                                   # x = 0
-        if ($y > 0) {                          #    y > 0
-            $y -> bpi($scale) -> bmul("0.5");  #       pi/2
-        } elsif ($y < 0) {                     #    y < 0
-            $y -> bpi($scale) -> bmul("-0.5"); #       -pi/2
-        } else {                               #    y = 0
-            return $y -> bzero(@r);            #       0
+    } else {                                          # x = 0
+        if ($y > 0) {                                 #    y > 0
+            $y = $y -> bpi($scale) -> bmul("0.5");    #       pi/2
+        } elsif ($y < 0) {                            #    y < 0
+            $y = $y -> bpi($scale) -> bmul("-0.5");   #       -pi/2
+        } else {                                      #    y = 0
+            return $y -> bzero(@r);                   #       0
         }
     }
 
-    $y -> round(@r);
+    $y = $y -> round(@r);
 
     if ($fallback) {
         delete $y->{_a};
@@ -3127,31 +3328,40 @@ sub batan2 {
 
     return $y;
 }
-##############################################################################
 
 sub bsqrt {
     # calculate square root
-    my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bsqrt');
 
-    return $x->bnan() if $x->{sign} !~ /^\+/;  # NaN, -inf or < 0
-    return $x if $x->{sign} eq '+inf';         # sqrt(inf) == inf
-    return $x->round($a, $p, $r) if $x->is_zero() || $x->is_one();
+    # Handle trivial cases.
+
+    return $x -> bnan(@r)      if $x->is_nan();
+    return $x -> binf("+", @r) if $x->{sign} eq '+inf';
+    return $x -> round(@r)     if $x->is_zero() || $x->is_one();
+
+    # We don't support complex numbers.
+
+    if ($x -> is_neg()) {
+        return $upgrade -> bsqrt($x, @r) if defined($upgrade);
+        return $x -> bnan(@r);
+    }
 
     # we need to limit the accuracy to protect against overflow
     my $fallback = 0;
     my (@params, $scale);
-    ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+    ($x, @params) = $x->_find_round_parameters(@r);
 
-    return $x if $x->is_nan();  # error in _find_round_parameters?
+    # error in _find_round_parameters?
+    return $x -> bnan(@r) if $x->is_nan();
 
     # no rounding at all, so must use fallback
     if (scalar @params == 0) {
         # simulate old behaviour
         $params[0] = $class->div_scale(); # and round to it as accuracy
         $scale = $params[0]+4;            # at least four more for proper round
-        $params[2] = $r;                  # round mode by caller or undef
+        $params[2] = $r[2];               # round mode by caller or undef
         $fallback = 1;                    # to clear a/p afterwards
     } else {
         # the 4 below is empirical, and there might be cases where it is not
@@ -3162,14 +3372,23 @@ sub bsqrt {
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
     delete $x->{_a};
     delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
-    local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+    # Disabling upgrading and downgrading is no longer necessary to avoid an
+    # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+    # the intermediate computations.
+
+    local $Math::BigInt::upgrade = undef;
+    local $Math::BigFloat::downgrade = undef;
 
     my $i = $LIB->_copy($x->{_m});
     $i = $LIB->_lsft($i, $x->{_e}, 10) unless $LIB->_is_zero($x->{_e});
@@ -3186,12 +3405,12 @@ sub bsqrt {
         $x->{_m} = $gs->{value};
         $x->{_e} = $LIB->_zero();
         $x->{_es} = '+';
-        $x->bnorm();
+        $x = $x->bnorm();
         # shortcut to not run through _find_round_parameters again
         if (defined $params[0]) {
-            $x->bround($params[0], $params[2]); # then round accordingly
+            $x = $x->bround($params[0], $params[2]); # then round accordingly
         } else {
-            $x->bfround($params[1], $params[2]); # then round accordingly
+            $x = $x->bfround($params[1], $params[2]); # then round accordingly
         }
         if ($fallback) {
             # clear a/p after round, since user did not request it
@@ -3204,9 +3423,10 @@ sub bsqrt {
         return $x;
     }
 
-    # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the accuracy
-    # of the result by multiplying the input by 100 and then divide the integer
-    # result of sqrt(input) by 10. Rounding afterwards returns the real result.
+    # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the
+    # accuracy of the result by multiplying the input by 100 and then divide the
+    # integer result of sqrt(input) by 10. Rounding afterwards returns the real
+    # result.
 
     # The following steps will transform 123.456 (in $x) into 123456 (in $y1)
     my $y1 = $LIB->_copy($x->{_m});
@@ -3266,13 +3486,13 @@ sub bsqrt {
         $x->{_es} = '+';
     }
     $x->{_m} = $y1;
-    $x->bnorm();
+    $x = $x->bnorm();
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
@@ -3282,6 +3502,9 @@ sub bsqrt {
     # restore globals
     $$abr = $ab;
     $$pbr = $pb;
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && ($x -> is_int() || $x -> is_inf());
     $x;
 }
 
@@ -3289,14 +3512,24 @@ sub broot {
     # calculate $y'th root of $x
 
     # set up parameters
-    my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('broot');
 
+    # Handle trivial cases.
+
+    return $x -> bnan(@r) if $x->is_nan() || $y->is_nan();
+
+    if ($x -> is_neg()) {
+        # -27 ** (1/3) = -3
+        return $x -> broot($y -> copy() -> bneg(), @r) -> bneg()
+          if $x -> is_int() && $y -> is_int() && $y -> is_neg();
+        return $upgrade -> broot($x, $y, @r) if defined $upgrade;
+        return $x -> bnan(@r);
+    }
+
     # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
     return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
       $y->{sign} !~ /^\+$/;
@@ -3306,7 +3539,7 @@ sub broot {
     # we need to limit the accuracy to protect against overflow
     my $fallback = 0;
     my (@params, $scale);
-    ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+    ($x, @params) = $x->_find_round_parameters(@r);
 
     return $x if $x->is_nan();  # error in _find_round_parameters?
 
@@ -3315,7 +3548,7 @@ sub broot {
         # simulate old behaviour
         $params[0] = $class->div_scale(); # and round to it as accuracy
         $scale = $params[0]+4;            # at least four more for proper round
-        $params[2] = $r;                  # round mode by caller or undef
+        $params[2] = $r[2];               # round mode by caller or undef
         $fallback = 1;                    # to clear a/p afterwards
     } else {
         # the 4 below is empirical, and there might be cases where it is not
@@ -3326,14 +3559,23 @@ sub broot {
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
     delete $x->{_a};
     delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
-    local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+    # Disabling upgrading and downgrading is no longer necessary to avoid an
+    # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+    # the intermediate computations.
+
+    local $Math::BigInt::upgrade = undef;
+    local $Math::BigFloat::downgrade = undef;
 
     # remember sign and make $x positive, since -4 ** (1/2) => -2
     my $sign = 0;
@@ -3342,14 +3584,15 @@ sub broot {
 
     my $is_two = 0;
     if ($y->isa('Math::BigFloat')) {
-        $is_two = ($y->{sign} eq '+' && $LIB->_is_two($y->{_m}) && $LIB->_is_zero($y->{_e}));
+        $is_two = $y->{sign} eq '+' && $LIB->_is_two($y->{_m})
+                    && $LIB->_is_zero($y->{_e});
     } else {
-        $is_two = ($y == 2);
+        $is_two = $y == 2;
     }
 
     # normal square root if $y == 2:
     if ($is_two) {
-        $x->bsqrt($scale+4);
+        $x = $x->bsqrt($scale+4);
     } elsif ($y->is_one('-')) {
         # $x ** -1 => 1/$x
         my $u = $class->bone()->bdiv($x, $scale);
@@ -3367,30 +3610,31 @@ sub broot {
             $i = $LIB->_lsft($i, $x->{_e}, 10) unless $LIB->_is_zero($x->{_e});
             my $int = Math::BigInt->bzero();
             $int->{value} = $i;
-            $int->broot($y->as_number());
+            $int = $int->broot($y->as_number());
             # if ($exact)
             if ($int->copy()->bpow($y) == $x) {
                 # found result, return it
                 $x->{_m} = $int->{value};
                 $x->{_e} = $LIB->_zero();
                 $x->{_es} = '+';
-                $x->bnorm();
+                $x = $x->bnorm();
                 $done = 1;
             }
         }
         if ($done == 0) {
             my $u = $class->bone()->bdiv($y, $scale+4);
-            delete $u->{_a}; delete $u->{_p}; # otherwise it conflicts
-            $x->bpow($u, $scale+4);            # el cheapo
+            delete $u->{_a};
+            delete $u->{_p};
+            $x = $x->bpow($u, $scale+4);            # el cheapo
         }
     }
-    $x->bneg() if $sign == 1;
+    $x = $x->bneg() if $sign == 1;
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
@@ -3400,6 +3644,9 @@ sub broot {
     # restore globals
     $$abr = $ab;
     $$pbr = $pb;
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && ($x -> is_int() || $x -> is_inf());
     $x;
 }
 
@@ -3408,16 +3655,19 @@ sub bfac {
     # compute factorial number, modifies first argument
 
     # set up parameters
-    my ($class, $x, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    ($class, $x, @r) = objectify(1, @_) if !ref($x);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     # inf => inf
-    return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+    return $x if $x->modify('bfac');
 
-    return $x->bnan()
-      if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
-          ($x->{_es} ne '+'));   # digits after dot?
+    return $x -> bnan(@r)      if $x->is_nan()  || $x->is_inf("-");
+    return $x -> binf("+", @r) if $x->is_inf("+");
+    return $x -> bone(@r)      if $x->is_zero() || $x->is_one();
+
+    if ($x -> is_neg() || !$x -> is_int()) {
+        return $upgrade -> bfac($x, @r) if defined($upgrade);
+        return $x -> bnan(@r);
+    }
 
     if (! $LIB->_is_zero($x->{_e})) {
         $x->{_m} = $LIB->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0
@@ -3425,23 +3675,30 @@ sub bfac {
         $x->{_es} = '+';
     }
     $x->{_m} = $LIB->_fac($x->{_m});       # calculate factorial
-    $x->bnorm()->round(@r);     # norm again and round result
+
+    $x = $x->bnorm()->round(@r);     # norm again and round result
+
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+      && ($x -> is_int() || $x -> is_inf());
+    $x;
 }
 
 sub bdfac {
     # compute double factorial
 
     # set up parameters
-    my ($class, $x, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    ($class, $x, @r) = objectify(1, @_) if !ref($x);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    # inf => inf
-    return $x if $x->modify('bdfac') || $x->{sign} eq '+inf';
+    return $x if $x->modify('bdfac');
+
+    return $x -> bnan(@r)      if $x->is_nan()  || $x->is_inf("-");
+    return $x -> binf("+", @r) if $x->is_inf("+");
+
+    if ($x <= -2 || !$x -> is_int()) {
+        return $upgrade -> bdfac($x, @r) if defined($upgrade);
+        return $x -> bnan(@r);
+    }
 
-    return $x->bnan() if ($x->is_nan() ||
-                          $x->{_es} ne '+');    # digits after dot?
-    return $x->bnan() if $x <= -2;
     return $x->bone() if $x <= 1;
 
     croak("bdfac() requires a newer version of the $LIB library.")
@@ -3453,108 +3710,137 @@ sub bdfac {
         $x->{_es} = '+';
     }
     $x->{_m} = $LIB->_dfac($x->{_m});       # calculate factorial
-    $x->bnorm()->round(@r);     # norm again and round result
+
+    $x = $x->bnorm()->round(@r);     # norm again and round result
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    return $x;
 }
 
 sub btfac {
     # compute triple factorial
 
     # set up parameters
-    my ($class, $x, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    ($class, $x, @r) = objectify(1, @_) if !ref($x);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    # inf => inf
-    return $x if $x->modify('btfac') || $x->{sign} eq '+inf';
+    return $x if $x->modify('btfac');
+
+    return $x -> bnan(@r)      if $x->is_nan()  || $x->is_inf("-");
+    return $x -> binf("+", @r) if $x->is_inf("+");
 
-    return $x->bnan() if ($x->is_nan() ||
-                          $x->{_es} ne '+');    # digits after dot?
+    if ($x <= -3 || !$x -> is_int()) {
+        return $upgrade -> btfac($x, @r) if defined($upgrade);
+        return $x -> bnan(@r);
+    }
 
     my $k = $class -> new("3");
-    return $x->bnan() if $x <= -$k;
+    return $x->bnan(@r) if $x <= -$k;
 
     my $one = $class -> bone();
-    return $x->bone() if $x <= $one;
+    return $x->bone(@r) if $x <= $one;
 
     my $f = $x -> copy();
     while ($f -> bsub($k) > $one) {
-        $x -> bmul($f);
+        $x = $x -> bmul($f);
     }
-    $x->round(@r);
+
+    $x = $x->round(@r);
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    return $x;
 }
 
 sub bmfac {
-    my ($class, $x, $k, @r) = objectify(2, @_);
+    my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
-    # inf => inf
-    return $x if $x->modify('bmfac') || $x->{sign} eq '+inf';
+    return $x if $x->modify('bmfac');
 
-    return $x->bnan() if ($x->is_nan() || $k->is_nan() ||
-                          $k < 1 || $x <= -$k ||
-                          $x->{_es} ne '+' || $k->{_es} ne '+');
+    return $x -> bnan(@r) if $x->is_nan() || $x->is_inf("-") || !$k->is_pos();
+    return $x -> binf("+", @r) if $x->is_inf("+");
 
-    return $x->bnan() if $x <= -$k;
+    if ($x <= -$k || !$x -> is_int() ||
+        ($k -> is_finite() && !$k -> is_int()))
+    {
+        return $upgrade -> bmfac($x, $k, @r) if defined($upgrade);
+        return $x -> bnan(@r);
+    }
 
     my $one = $class -> bone();
-    return $x->bone() if $x <= $one;
+    return $x->bone(@r) if $x <= $one;
 
     my $f = $x -> copy();
     while ($f -> bsub($k) > $one) {
-        $x -> bmul($f);
+        $x = $x -> bmul($f);
     }
-    $x->round(@r);
+
+    $x = $x->round(@r);
+
+    return $downgrade -> new($x -> bdstr(), @r)
+      if defined($downgrade) && $x -> is_int();
+    return $x;
 }
 
 sub blsft {
     # shift left by $y (multiply by $b ** $y)
 
     # set up parameters
-    my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, $b, @r)
+      = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+      ? (ref($_[0]), @_)
+      : objectify(2, @_);
 
     return $x if $x -> modify('blsft');
-    return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
 
     $b = 2 if !defined $b;
     $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+    return $x -> bnan(@r) if $b -> is_nan();
 
-    return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+    # There needs to be more checking for special cases here. Fixme!
 
     # shift by a negative amount?
     return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
 
-    $x -> bmul($b -> bpow($y), $a, $p, $r, $y);
+    $x = $x -> bmul($b -> bpow($y), $r[0], $r[1], $r[2], $y);
+
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+      && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+    return $x;
 }
 
 sub brsft {
     # shift right by $y (divide $b ** $y)
 
     # set up parameters
-    my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, $b, @r)
+      = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+      ? (ref($_[0]), @_)
+      : objectify(2, @_);
 
     return $x if $x -> modify('brsft');
-    return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
+
+    # There needs to be more checking for special cases here. Fixme!
 
     $b = 2 if !defined $b;
     $b = $class -> new($b) unless ref($b) && $b -> isa($class);
-
-    return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+    return $x -> bnan(@r) if $b -> is_nan();
 
     # shift by a negative amount?
     return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
 
-    # the following call to bdiv() will return either quotient (scalar context)
-    # or quotient and remainder (list context).
-    $x -> bdiv($b -> bpow($y), $a, $p, $r, $y);
+    # call bdiv()
+    $x = $x -> bdiv($b -> bpow($y), $r[0], $r[1], $r[2], $y);
+
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade)
+      && ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
+    return $x;
 }
 
 ###############################################################################
@@ -3562,24 +3848,20 @@ sub brsft {
 ###############################################################################
 
 sub band {
-    my $x     = shift;
-    my $xref  = ref($x);
-    my $class = $xref || $x;
-
-    croak 'band() is an instance method, not a class method' unless $xref;
-    croak 'Not enough arguments for band()' if @_ < 1;
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return if $x -> modify('band');
 
-    my $y = shift;
-    $y = $class -> new($y) unless ref($y);
-
-    my @r = @_;
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
 
     my $xtmp = Math::BigInt -> new($x -> bint());   # to Math::BigInt
-    $xtmp -> band($y);
-    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
+    $xtmp = $xtmp -> band($y);
 
+    return $xtmp -> round(@r) if defined $downgrade;
+
+    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
     $x -> {sign} = $xtmp -> {sign};
     $x -> {_m}   = $xtmp -> {_m};
     $x -> {_es}  = $xtmp -> {_es};
@@ -3589,24 +3871,20 @@ sub band {
 }
 
 sub bior {
-    my $x     = shift;
-    my $xref  = ref($x);
-    my $class = $xref || $x;
-
-    croak 'bior() is an instance method, not a class method' unless $xref;
-    croak 'Not enough arguments for bior()' if @_ < 1;
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return if $x -> modify('bior');
 
-    my $y = shift;
-    $y = $class -> new($y) unless ref($y);
-
-    my @r = @_;
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
 
     my $xtmp = Math::BigInt -> new($x -> bint());   # to Math::BigInt
-    $xtmp -> bior($y);
-    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
+    $xtmp = $xtmp -> bior($y);
 
+    return $xtmp -> round(@r) if defined $downgrade;
+
+    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
     $x -> {sign} = $xtmp -> {sign};
     $x -> {_m}   = $xtmp -> {_m};
     $x -> {_es}  = $xtmp -> {_es};
@@ -3616,24 +3894,20 @@ sub bior {
 }
 
 sub bxor {
-    my $x     = shift;
-    my $xref  = ref($x);
-    my $class = $xref || $x;
-
-    croak 'bxor() is an instance method, not a class method' unless $xref;
-    croak 'Not enough arguments for bxor()' if @_ < 1;
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return if $x -> modify('bxor');
 
-    my $y = shift;
-    $y = $class -> new($y) unless ref($y);
-
-    my @r = @_;
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
 
     my $xtmp = Math::BigInt -> new($x -> bint());   # to Math::BigInt
-    $xtmp -> bxor($y);
-    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
+    $xtmp = $xtmp -> bxor($y);
+
+    return $xtmp -> round(@r) if defined $downgrade;
 
+    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
     $x -> {sign} = $xtmp -> {sign};
     $x -> {_m}   = $xtmp -> {_m};
     $x -> {_es}  = $xtmp -> {_es};
@@ -3643,20 +3917,18 @@ sub bxor {
 }
 
 sub bnot {
-    my $x     = shift;
-    my $xref  = ref($x);
-    my $class = $xref || $x;
-
-    croak 'bnot() is an instance method, not a class method' unless $xref;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return if $x -> modify('bnot');
 
-    my @r = @_;
+    return $x -> bnan(@r) if $x -> is_nan();
 
     my $xtmp = Math::BigInt -> new($x -> bint());   # to Math::BigInt
-    $xtmp -> bnot();
-    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
+    $xtmp = $xtmp -> bnot();
+
+    return $xtmp -> round(@r) if defined $downgrade;
 
+    $xtmp = $class -> new($xtmp);                   # back to Math::BigFloat
     $x -> {sign} = $xtmp -> {sign};
     $x -> {_m}   = $xtmp -> {_m};
     $x -> {_es}  = $xtmp -> {_es};
@@ -3671,19 +3943,18 @@ sub bnot {
 
 sub bround {
     # accuracy: preserve $N digits, and overwrite the rest with 0's
-    my $x = shift;
-    my $class = ref($x) || $x;
-    $x = $class->new(shift) if !ref($x);
 
-    if (($_[0] || 0) < 0) {
+    my ($class, $x, @a) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    if (($a[0] || 0) < 0) {
         croak('bround() needs positive accuracy');
     }
 
     return $x if $x->modify('bround');
 
-    my ($scale, $mode) = $x->_scale_a(@_);
+    my ($scale, $mode) = $x->_scale_a(@a);
     if (!defined $scale) {         # no-op
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
@@ -3694,7 +3965,7 @@ sub bround {
     # round a number with A=5 to 5 digits afterwards again
 
     if (defined $x->{_a} && $x->{_a} < $scale) {
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
@@ -3704,7 +3975,7 @@ sub bround {
     # never round a +-inf, NaN
 
     if ($scale <= 0 || $x->{sign} !~ /^[+-]$/) {
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
@@ -3713,7 +3984,7 @@ sub bround {
     # 2: if we should keep more digits than the mantissa has, do nothing
     if ($x->is_zero() || $LIB->_len($x->{_m}) <= $scale) {
         $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale;
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
@@ -3721,10 +3992,10 @@ sub bround {
     # pass sign to bround for '+inf' and '-inf' rounding modes
     my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
 
-    $m->bround($scale, $mode);   # round mantissa
-    $x->{_m} = $m->{value};     # get our mantissa back
-    $x->{_a} = $scale;          # remember rounding
-    delete $x->{_p};            # and clear P
+    $m = $m->bround($scale, $mode);     # round mantissa
+    $x->{_m} = $m->{value};             # get our mantissa back
+    $x->{_a} = $scale;                  # remember rounding
+    delete $x->{_p};                    # and clear P
 
     # bnorm() downgrades if necessary, so no need to check whether to downgrade.
     $x->bnorm();                # del trailing zeros gen. by bround()
@@ -3734,15 +4005,14 @@ sub bfround {
     # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
     # $n == 0 means round to integer
     # expects and returns normalized numbers!
-    my $x = shift;
-    my $class = ref($x) || $x;
-    $x = $class->new(shift) if !ref($x);
+
+    my ($class, $x, @p) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bfround'); # no-op
 
-    my ($scale, $mode) = $x->_scale_p(@_);
+    my ($scale, $mode) = $x->_scale_p(@p);
     if (!defined $scale) {
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
@@ -3751,20 +4021,20 @@ sub bfround {
 
     if ($x->is_zero()) {
         $x->{_p} = $scale if !defined $x->{_p} || $x->{_p} < $scale; # -3 < -2
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
 
     if ($x->{sign} !~ /^[+-]$/) {
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
 
     # don't round if x already has lower precision
     if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p}) {
-        return $downgrade->new($x) if defined($downgrade)
+        return $downgrade -> new($x) if defined($downgrade)
           && ($x->is_int() || $x->is_inf() || $x->is_nan());
         return $x;
     }
@@ -3775,7 +4045,7 @@ sub bfround {
         # round right from the '.'
 
         if ($x->{_es} eq '+') { # e >= 0 => nothing to round
-            return $downgrade->new($x) if defined($downgrade)
+            return $downgrade -> new($x) if defined($downgrade)
               && ($x->is_int() || $x->is_inf() || $x->is_nan());
             return $x;
         }
@@ -3800,15 +4070,16 @@ sub bfround {
         # do not round after/right of the $dad
 
         if ($scale > $dad) { # 0.123, scale >= 3 => exit
-            return $downgrade->new($x) if defined($downgrade)
+            return $downgrade -> new($x) if defined($downgrade)
               && ($x->is_int() || $x->is_inf() || $x->is_nan());
             return $x;
         }
 
         # round to zero if rounding inside the $zad, but not for last zero like:
-        # 0.0065, scale -2, round last '0' with following '65' (scale == zad case)
+        # 0.0065, scale -2, round last '0' with following '65' (scale == zad
+        # case)
         if ($scale < $zad) {
-            return $downgrade->new($x) if defined($downgrade)
+            return $downgrade -> new($x) if defined($downgrade)
               && ($x->is_int() || $x->is_inf() || $x->is_nan());
             return $x->bzero();
         }
@@ -3837,7 +4108,7 @@ sub bfround {
         $scale = 1 if $scale == 0;
         # shortcut if already integer
         if ($scale == 1 && $dbt <= $dbd) {
-            return $downgrade->new($x) if defined($downgrade)
+            return $downgrade -> new($x) if defined($downgrade)
               && ($x->is_int() || $x->is_inf() || $x->is_nan());
             return $x;
         }
@@ -3846,7 +4117,7 @@ sub bfround {
 
         if ($scale > $dbd) {
             # not enough digits before dot, so round to zero
-            return $downgrade->new($x) if defined($downgrade);
+            return $downgrade -> new($x) if defined($downgrade);
             return $x->bzero;
         } elsif ($scale == $dbd) {
             # maximum
@@ -3858,7 +4129,7 @@ sub bfround {
 
     # pass sign to bround for rounding modes '+inf' and '-inf'
     my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
-    $m->bround($scale, $mode);
+    $m = $m->bround($scale, $mode);
     $x->{_m} = $m->{value};     # get our mantissa back
 
     # bnorm() downgrades if necessary, so no need to check whether to downgrade.
@@ -3871,6 +4142,8 @@ sub bfloor {
 
     return $x if $x->modify('bfloor');
 
+    return $x -> bnan(@r) if $x -> is_nan();
+
     if ($x->{sign} =~ /^[+-]$/) {
         # if $x has digits after dot, remove them
         if ($x->{_es} eq '-') {
@@ -3880,9 +4153,9 @@ sub bfloor {
             # increment if negative
             $x->{_m} = $LIB->_inc($x->{_m}) if $x->{sign} eq '-';
         }
-        $x->round(@r);
+        $x = $x->round(@r);
     }
-    return $downgrade->new($x, @r) if defined($downgrade);
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade);
     return $x;
 }
 
@@ -3892,6 +4165,8 @@ sub bceil {
 
     return $x if $x->modify('bceil');
 
+    return $x -> bnan(@r) if $x -> is_nan();
+
     # if $x has digits after dot, remove them
     if ($x->{sign} =~ /^[+-]$/) {
         if ($x->{_es} eq '-') {
@@ -3904,10 +4179,10 @@ sub bceil {
                 $x->{sign} = '+' if $LIB->_is_zero($x->{_m});   # avoid -0
             }
         }
-        $x->round(@r);
+        $x = $x->round(@r);
     }
 
-    return $downgrade->new($x, @r) if defined($downgrade);
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade);
     return $x;
 }
 
@@ -3917,18 +4192,20 @@ sub bint {
 
     return $x if $x->modify('bint');
 
+    return $x -> bnan(@r) if $x -> is_nan();
+
     if ($x->{sign} =~ /^[+-]$/) {
         # if $x has digits after the decimal point
         if ($x->{_es} eq '-') {
-            $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # remove fraction part
+            $x->{_m} = $LIB->_rsft($x->{_m}, $x->{_e}, 10); # remove frac part
             $x->{_e} = $LIB->_zero();                       # truncate/normalize
             $x->{_es} = '+';                                # abs e
             $x->{sign} = '+' if $LIB->_is_zero($x->{_m});   # avoid -0
         }
-        $x->round(@r);
+        $x = $x->round(@r);
     }
 
-    return $downgrade->new($x, @r) if defined($downgrade);
+    return $downgrade -> new($x -> bdstr(), @r) if defined($downgrade);
     return $x;
 }
 
@@ -3940,8 +4217,14 @@ sub bgcd {
     # (BINT or num_str, BINT or num_str) return BINT
     # does not modify arguments, but returns new object
 
-    unshift @_, __PACKAGE__
-      unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
+        unshift @_, __PACKAGE__;
+    }
 
     my ($class, @args) = objectify(0, @_);
 
@@ -3961,7 +4244,11 @@ sub bgcd {
 
         last if $x -> is_one();
     }
-    return $x -> babs();
+    $x = $x -> babs();
+
+    return $downgrade -> new($x)
+      if defined $downgrade && $x->is_int();
+    return $x;
 }
 
 sub blcm {
@@ -3969,8 +4256,14 @@ sub blcm {
     # does not modify arguments, but returns new object
     # Least Common Multiple
 
-    unshift @_, __PACKAGE__
-      unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
+        unshift @_, __PACKAGE__;
+    }
 
     my ($class, @args) = objectify(0, @_);
 
@@ -3983,10 +4276,14 @@ sub blcm {
         $y = $class -> new($y) unless ref($y) && $y -> isa($class);
         return $x->bnan() unless $y -> is_int();
         my $gcd = $x -> bgcd($y);
-        $x -> bdiv($gcd) -> bmul($y);
+        $x = $x -> bdiv($gcd) -> bmul($y);
     }
 
-    return $x -> babs();
+    $x = $x -> babs();
+
+    return $downgrade -> new($x)
+      if defined $downgrade && $x->is_int();
+    return $x;
 }
 
 ###############################################################################
@@ -3994,9 +4291,9 @@ sub blcm {
 ###############################################################################
 
 sub length {
-    my $x = shift;
-    my $class = ref($x) || $x;
-    $x = $class->new(shift) unless ref($x);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return 1 if $LIB->_is_zero($x->{_m});
 
@@ -4012,7 +4309,13 @@ sub length {
 
 sub mantissa {
     # return a copy of the mantissa
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    # The following line causes a lot of noise in the test suits for
+    # the Math-BigRat and bignum distributions. Fixme!
+    #carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    return $x -> bnan(@r) if $x -> is_nan();
 
     if ($x->{sign} !~ /^[+-]$/) {
         my $s = $x->{sign};
@@ -4020,14 +4323,19 @@ sub mantissa {
         return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf
     }
     my $m = Math::BigInt->new($LIB->_str($x->{_m}), undef, undef);
-    $m->bneg() if $x->{sign} eq '-';
-
+    $m = $m->bneg() if $x->{sign} eq '-';
     $m;
 }
 
 sub exponent {
     # return a copy of the exponent
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    # The following line causes a lot of noise in the test suits for
+    # the Math-BigRat and bignum distributions. Fixme!
+    #carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    return $x -> bnan(@r) if $x -> is_nan();
 
     if ($x->{sign} !~ /^[+-]$/) {
         my $s = $x->{sign};
@@ -4039,32 +4347,37 @@ sub exponent {
 
 sub parts {
     # return a copy of both the exponent and the mantissa
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     if ($x->{sign} !~ /^[+-]$/) {
         my $s = $x->{sign};
         $s =~ s/^\+//;
         my $se = $s;
         $se =~ s/^-//;
-        return ($class->new($s), $class->new($se)); # +inf => inf and -inf, +inf => inf
+        # +inf => inf and -inf, +inf => inf
+        return ($class->new($s), $class->new($se));
     }
     my $m = Math::BigInt->bzero();
     $m->{value} = $LIB->_copy($x->{_m});
-    $m->bneg() if $x->{sign} eq '-';
+    $m = $m->bneg() if $x->{sign} eq '-';
     ($m, Math::BigInt->new($x->{_es} . $LIB->_num($x->{_e})));
 }
 
+# Parts used for scientific notation with significand/mantissa and exponent as
+# integers. E.g., "12345.6789" is returned as "123456789" (mantissa) and "-4"
+# (exponent).
+
 sub sparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("sparts() is an instance method, not a class method")
-        unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # Not-a-number.
 
-    if ($self -> is_nan()) {
-        my $mant = $self -> copy();             # mantissa
+    if ($x -> is_nan()) {
+        my $mant = $class -> bnan();            # mantissa
         return $mant unless wantarray;          # scalar context
         my $expo = $class -> bnan();            # exponent
         return ($mant, $expo);                  # list context
@@ -4072,8 +4385,8 @@ sub sparts {
 
     # Infinity.
 
-    if ($self -> is_inf()) {
-        my $mant = $self -> copy();             # mantissa
+    if ($x -> is_inf()) {
+        my $mant = $class -> binf($x->{sign});  # mantissa
         return $mant unless wantarray;          # scalar context
         my $expo = $class -> binf('+');         # exponent
         return ($mant, $expo);                  # list context
@@ -4081,56 +4394,46 @@ sub sparts {
 
     # Finite number.
 
-    my $mant = $self -> copy() -> bzero();
-    $mant -> {sign} = $self -> {sign};
-    $mant -> {_m}   = $LIB->_copy($self -> {_m});
+    my $mant = $x -> copy();
+    $mant->{_es} = '+';
+    $mant->{_e}  = $LIB->_zero();
+    $mant = $downgrade -> new($mant) if defined $downgrade;
     return $mant unless wantarray;
 
-    my $expo = $class -> bzero();
-    $expo -> {sign} = $self -> {_es};
-    $expo -> {_m}   = $LIB->_copy($self -> {_e});
-
+    my $expo = bless { sign => $x -> {_es},
+                       _m   => $LIB->_copy($x -> {_e}),
+                       _es  => '+',
+                       _e   => $LIB->_zero(),
+                     }, $class;
+    $expo = $downgrade -> new($expo) if defined $downgrade;
     return ($mant, $expo);
 }
 
-sub nparts {
-    my $self  = shift;
-    my $class = ref $self;
+# Parts used for normalized notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,10). E.g., "12345.6789" is returned as
+# "1.23456789" and "4".
 
-    croak("nparts() is an instance method, not a class method")
-        unless $class;
+sub nparts {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    # Not-a-number.
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    if ($self -> is_nan()) {
-        my $mant = $self -> copy();             # mantissa
-        return $mant unless wantarray;          # scalar context
-        my $expo = $class -> bnan();            # exponent
-        return ($mant, $expo);                  # list context
-    }
+    # Not-a-number and Infinity.
 
-    # Infinity.
-
-    if ($self -> is_inf()) {
-        my $mant = $self -> copy();             # mantissa
-        return $mant unless wantarray;          # scalar context
-        my $expo = $class -> binf('+');         # exponent
-        return ($mant, $expo);                  # list context
-    }
+    return $x -> sparts() if $x -> is_nan() || $x -> is_inf();
 
     # Finite number.
 
-    my ($mant, $expo) = $self -> sparts();
+    my ($mant, $expo) = $x -> sparts();
 
     if ($mant -> bcmp(0)) {
         my ($ndigtot, $ndigfrac) = $mant -> length();
         my $expo10adj = $ndigtot - $ndigfrac - 1;
 
-        if ($expo10adj != 0) {
-            my $factor  = "1e" . -$expo10adj;
-            $mant -> bmul($factor);
+        if ($expo10adj > 0) {          # if mantissa is not an integer
+            $mant = $mant -> brsft($expo10adj, 10);
             return $mant unless wantarray;
-            $expo -> badd($expo10adj);
+            $expo = $expo -> badd($expo10adj);
             return ($mant, $expo);
         }
     }
@@ -4139,113 +4442,139 @@ sub nparts {
     return ($mant, $expo);
 }
 
+# Parts used for engineering notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,1000) and the exponent is a multiple of 3.
+# E.g., "12345.6789" is returned as "12.3456789" and "3".
+
 sub eparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("eparts() is an instance method, not a class method")
-        unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # Not-a-number and Infinity.
 
-    return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+    return $x -> sparts() if $x -> is_nan() || $x -> is_inf();
 
     # Finite number.
 
-    my ($mant, $expo) = $self -> nparts();
+    my ($mant, $expo) = $x -> nparts();
 
     my $c = $expo -> copy() -> bmod(3);
-    $mant -> blsft($c, 10);
+    $mant = $mant -> blsft($c, 10);
     return $mant unless wantarray;
 
-    $expo -> bsub($c);
+    $expo = $expo -> bsub($c);
     return ($mant, $expo);
 }
 
+# Parts used for decimal notation, e.g., "12345.6789" is returned as "12345"
+# (integer part) and "0.6789" (fraction part).
+
 sub dparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("dparts() is an instance method, not a class method")
-        unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    # Not-a-number and Infinity.
+    # Not-a-number.
 
-    if ($self -> is_nan() || $self -> is_inf()) {
-        my $int = $self -> copy();
+    if ($x -> is_nan()) {
+        my $int = $class -> bnan();
+        return $int unless wantarray;
+        my $frc = $class -> bzero();    # or NaN?
+        return ($int, $frc);
+    }
+
+    # Infinity.
+
+    if ($x -> is_inf()) {
+        my $int = $class -> binf($x->{sign});
         return $int unless wantarray;
         my $frc = $class -> bzero();
         return ($int, $frc);
     }
 
-    my $int = $self  -> copy();
-    my $frc = $class -> bzero();
+    # Finite number.
+
+    my $int = $x -> copy();
+    my $frc;
 
-    # If the input has a fraction part.
+    # If the input is an integer.
 
-    if ($int->{_es} eq '-') {
+    if ($int->{_es} eq '+') {
+        $frc = $class -> bzero();
+    }
+
+    # If the input has a fraction part
+
+    else {
         $int->{_m} = $LIB -> _rsft($int->{_m}, $int->{_e}, 10);
         $int->{_e} = $LIB -> _zero();
         $int->{_es} = '+';
         $int->{sign} = '+' if $LIB->_is_zero($int->{_m});   # avoid -0
-
         return $int unless wantarray;
-        $frc = $self -> copy() -> bsub($int);
+        $frc = $x -> copy() -> bsub($int);
         return ($int, $frc);
     }
 
+    $int = $downgrade -> new($int) if defined $downgrade;
     return $int unless wantarray;
-    return ($int, $frc);
+    return $int, $frc;
 }
 
+# Fractional parts with the numerator and denominator as integers. E.g.,
+# "123.4375" is returned as "1975" and "16".
+
 sub fparts {
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("fparts() is an instance method") unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    return ($class -> bnan(),
-            $class -> bnan()) if $x -> is_nan();
+    # NaN => NaN/NaN
 
-    return ($class -> binf($x -> sign()),
-            $class -> bone()) if $x -> is_inf();
+    if ($x -> is_nan()) {
+        return $class -> bnan() unless wantarray;
+        return $class -> bnan(), $class -> bnan();
+    }
 
-    return ($class -> bzero(),
-            $class -> bone()) if $x -> is_zero();
+    # ±Inf => ±Inf/1
 
-    if ($x -> {_es} eq '-') {                   # exponent < 0
-        my $numer_lib = $LIB -> _copy($x -> {_m});
-        my $denom_lib = $LIB -> _1ex($x -> {_e});
-        my $gcd_lib = $LIB -> _gcd($LIB -> _copy($numer_lib), $denom_lib);
-        $numer_lib = $LIB -> _div($numer_lib, $gcd_lib);
-        $denom_lib = $LIB -> _div($denom_lib, $gcd_lib);
-        return ($class -> new($x -> {sign} . $LIB -> _str($numer_lib)),
-                $class -> new($LIB -> _str($denom_lib)));
+    if ($x -> is_inf()) {
+        my $numer = $class -> binf($x->{sign});
+        return $numer unless wantarray;
+        my $denom = $class -> bone();
+        return $numer, $denom;
     }
 
-    elsif (! $LIB -> _is_zero($x -> {_e})) {    # exponent > 0
-        my $numer_lib = $LIB -> _copy($x -> {_m});
-        $numer_lib = $LIB -> _lsft($numer_lib, $x -> {_e}, 10);
-        return ($class -> new($x -> {sign} . $LIB -> _str($numer_lib)),
-                $class -> bone());
-    }
+    # Finite number.
 
-    else {                                      # exponent = 0
-        return ($class -> new($x -> {sign} . $LIB -> _str($x -> {_m})),
-                $class -> bone());
-    }
+    # If we get here, we know that the output is an integer.
+
+    $class = $downgrade if defined $downgrade;
+
+    my @flt_parts = ($x->{sign}, $x->{_m}, $x->{_es}, $x->{_e});
+    my @rat_parts = $class -> _flt_lib_parts_to_rat_lib_parts(@flt_parts);
+    my $num = $class -> new($LIB -> _str($rat_parts[1]));
+    my $den = $class -> new($LIB -> _str($rat_parts[2]));
+    $num = $num -> bneg() if $rat_parts[0] eq "-";
+    return $num unless wantarray;
+    return $num, $den;
 }
 
+# Given "123.4375", returns "1975", since "123.4375" is "1975/16".
+
 sub numerator {
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("numerator() is an instance method") unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $class -> bnan()             if $x -> is_nan();
     return $class -> binf($x -> sign()) if $x -> is_inf();
     return $class -> bzero()            if $x -> is_zero();
 
+    # If we get here, we know that the output is an integer.
+
+    $class = $downgrade if defined $downgrade;
+
     if ($x -> {_es} eq '-') {                   # exponent < 0
         my $numer_lib = $LIB -> _copy($x -> {_m});
         my $denom_lib = $LIB -> _1ex($x -> {_e});
@@ -4265,14 +4594,19 @@ sub numerator {
     }
 }
 
+# Given "123.4375", returns "16", since "123.4375" is "1975/16".
+
 sub denominator {
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("denominator() is an instance method") unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $class -> bnan() if $x -> is_nan();
 
+    # If we get here, we know that the output is an integer.
+
+    $class = $downgrade if defined $downgrade;
+
     if ($x -> {_es} eq '-') {                   # exponent < 0
         my $numer_lib = $LIB -> _copy($x -> {_m});
         my $denom_lib = $LIB -> _1ex($x -> {_e});
@@ -4294,13 +4628,19 @@ sub bstr {
     # (ref to BFLOAT or num_str) return num_str
     # Convert number from internal format to (non-scientific) string format.
     # internal format is always normalized (no leading zeros, "-0" => "+0")
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    if ($x->{sign} !~ /^[+-]$/) {
-        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
-        return 'inf';                                  # +inf
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
     }
 
+    # Finite number
+
     my $es = '0';
     my $len = 1;
     my $cad = 0;
@@ -4348,91 +4688,243 @@ sub bstr {
     $es;
 }
 
-# Decimal notation, e.g., "12345.6789".
+# Decimal notation, e.g., "12345.6789" (no exponent).
 
 sub bdstr {
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
-        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
-        return 'inf';                                  # +inf
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
     }
 
+    # Upgrade?
+
+    return $upgrade -> bdstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
     my $mant = $LIB->_str($x->{_m});
-    my $expo = $x -> exponent();
+    my $esgn = $x->{_es};
+    my $eabs = $LIB -> _num($x->{_e});
+
+    my $uintmax = ~0;
 
     my $str = $mant;
-    if ($expo >= 0) {
-        $str .= "0" x $expo;
+    if ($esgn eq '+') {
+
+        croak("The absolute value of the exponent is too large")
+          if $eabs > $uintmax;
+
+        $str .= "0" x $eabs;
+
     } else {
-        my $mantlen = CORE::length($mant);
-        my $c = $mantlen + $expo;
+        my $mlen = CORE::length($mant);
+        my $c = $mlen - $eabs;
+
+        my $intmax = ($uintmax - 1) / 2;
+        croak("The absolute value of the exponent is too large")
+          if (1 - $c) > $intmax;
+
         $str = "0" x (1 - $c) . $str if $c <= 0;
-        substr($str, $expo, 0) = '.';
+        substr($str, -$eabs, 0) = '.';
     }
 
-    return $x->{sign} eq '-' ? "-$str" : $str;
+    return $x->{sign} eq '-' ? '-' . $str : $str;
 }
 
-# Scientific notation with significand/mantissa as an integer, e.g., "12345.6789"
-# is written as "123456789e-4".
+# Scientific notation with significand/mantissa and exponent as integers, e.g.,
+# "12345.6789" is written as "123456789e-4".
 
 sub bsstr {
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
-        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
-        return 'inf';                                  # +inf
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
     }
 
-    my $str = $LIB->_str($x->{_m}) . 'e' . $x->{_es}. $LIB->_str($x->{_e});
-    return $x->{sign} eq '-' ? "-$str" : $str;
+    # Upgrade?
+
+    return $upgrade -> bsstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{_m})
+      . 'e' . $x->{_es} . $LIB->_str($x->{_e});
 }
 
 # Normalized notation, e.g., "12345.6789" is written as "1.23456789e+4".
 
 sub bnstr {
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
-        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
-        return 'inf';                                  # +inf
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
     }
 
-    my ($mant, $expo) = $x -> nparts();
+    # Upgrade?
+
+    return $upgrade -> bnstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    my $str = $x->{sign} eq '-' ? '-' : '';
+
+    # Get the mantissa and the length of the mantissa.
+
+    my $mant = $LIB->_str($x->{_m});
+    my $mantlen = CORE::length($mant);
+
+    if ($mantlen == 1) {
+
+        # Not decimal point when the mantissa has length one, i.e., return the
+        # number 2 as the string "2", not "2.".
+
+        $str .= $mant . 'e' . $x->{_es} . $LIB->_str($x->{_e});
+
+    } else {
 
-    my $esgn = $expo < 0 ? '-' : '+';
-    my $eabs = $expo -> babs() -> bfround(0) -> bstr();
-    #$eabs = '0' . $eabs if length($eabs) < 2;
+        # Compute new exponent where the original exponent is adjusted by the
+        # length of the mantissa minus one (because the decimal point is after
+        # one digit).
 
-    return $mant . 'e' . $esgn . $eabs;
+        my ($eabs, $esgn) = $LIB -> _sadd($LIB -> _copy($x->{_e}), $x->{_es},
+                                      $LIB -> _new($mantlen - 1), "+");
+        substr $mant, 1, 0, ".";
+        $str .= $mant . 'e' . $esgn . $LIB->_str($eabs);
+
+    }
+
+    return $str;
 }
 
 # Engineering notation, e.g., "12345.6789" is written as "12.3456789e+3".
 
 sub bestr {
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
-        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
-        return 'inf';                                  # +inf
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> bestr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    my $str = $x->{sign} eq '-' ? '-' : '';
+
+    # Get the mantissa, the length of the mantissa, and adjust the exponent by
+    # the length of the mantissa minus 1 (because the dot is after one digit).
+
+    my $mant = $LIB->_str($x->{_m});
+    my $mantlen = CORE::length($mant);
+    my ($eabs, $esgn) = $LIB -> _sadd($LIB -> _copy($x->{_e}), $x->{_es},
+                                  $LIB -> _new($mantlen - 1), "+");
+
+    my $dotpos = 1;
+    my $mod = $LIB -> _mod($LIB -> _copy($eabs), $LIB -> _new("3"));
+    unless ($LIB -> _is_zero($mod)) {
+        if ($esgn eq '+') {
+            $eabs = $LIB -> _sub($eabs, $mod);
+            $dotpos += $LIB -> _num($mod);
+        } else {
+            my $delta = $LIB -> _sub($LIB -> _new("3"), $mod);
+            $eabs = $LIB -> _add($eabs, $delta);
+            $dotpos += $LIB -> _num($delta);
+        }
     }
 
-    my ($mant, $expo) = $x -> eparts();
+    if ($dotpos < $mantlen) {
+        substr $mant, $dotpos, 0, ".";
+    } elsif ($dotpos > $mantlen) {
+        $mant .= "0" x ($dotpos - $mantlen);
+    }
 
-    my $esgn = $expo < 0 ? '-' : '+';
-    my $eabs = $expo -> babs() -> bfround(0) -> bstr();
-    #$eabs = '0' . $eabs if length($eabs) < 2;
+    $str .= $mant . 'e' . $esgn . $LIB->_str($eabs);
 
-    return $mant . 'e' . $esgn . $eabs;
+    return $str;
+}
+
+# Fractional notation, e.g., "123.4375" is written as "1975/16".
+
+sub bfstr {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> bfstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    my $str = $x->{sign} eq '-' ? '-' : '';
+
+    if ($x->{_es} eq '+') {
+        $str .= $LIB -> _str($x->{_m}) . ("0" x $LIB -> _num($x->{_e}));
+    } else {
+        my @flt_parts = ($x->{sign}, $x->{_m}, $x->{_es}, $x->{_e});
+        my @rat_parts = $class -> _flt_lib_parts_to_rat_lib_parts(@flt_parts);
+        $str = $LIB -> _str($rat_parts[1]) . "/" . $LIB -> _str($rat_parts[2]);
+        $str = "-" . $str if $rat_parts[0] eq "-";
+    }
+
+    return $str;
 }
 
 sub to_hex {
     # return number as hexadecimal string (only for integers defined)
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> to_hex($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
 
-    return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
     return '0' if $x->is_zero();
 
     return $nan if $x->{_es} ne '+';    # how to do 1e-1 in hex?
@@ -4447,10 +4939,24 @@ sub to_hex {
 
 sub to_oct {
     # return number as octal digit string (only for integers defined)
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> to_hex($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
 
-    return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
     return '0' if $x->is_zero();
 
     return $nan if $x->{_es} ne '+';    # how to do 1e-1 in octal?
@@ -4465,10 +4971,24 @@ sub to_oct {
 
 sub to_bin {
     # return number as binary digit string (only for integers defined)
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> to_hex($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
 
-    return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
     return '0' if $x->is_zero();
 
     return $nan if $x->{_es} ne '+';    # how to do 1e-1 in binary?
@@ -4482,9 +5002,9 @@ sub to_bin {
 }
 
 sub to_ieee754 {
-    my $x = shift;
-    my $format = shift;
-    my $class = ref $x;
+    my ($class, $x, $format, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     my $enc;            # significand encoding (applies only to decimal)
     my $k;              # storage width in bits
@@ -4621,22 +5141,22 @@ sub to_ieee754 {
 
             $expo = $class -> new($expo_est);
             if ($expo_est > 0) {
-                $mant -> bmul($binv -> copy() -> bpow($expo));
+                $mant = $mant -> bmul($binv -> copy() -> bpow($expo));
             } elsif ($expo_est < 0) {
                 my $expo_abs = $expo -> copy() -> bneg();
-                $mant -> bmul($b -> copy() -> bpow($expo_abs));
+                $mant = $mant -> bmul($b -> copy() -> bpow($expo_abs));
             }
 
             # Final adjustment of the estimate above.
 
             while ($mant >= $b && $expo <= $emax) {
-                $mant -> bmul($binv);
-                $expo -> binc();
+                $mant = $mant -> bmul($binv);
+                $expo = $expo -> binc();
             }
 
             while ($mant < $one && $expo >= $emin) {
-                $mant -> bmul($b);
-                $expo -> bdec();
+                $mant = $mant -> bmul($b);
+                $expo = $expo -> bdec();
             }
 
             # This is when the magnitude is larger than what can be represented
@@ -4664,15 +5184,15 @@ sub to_ieee754 {
                 # Scale up the mantissa (significand), and round to integer.
 
                 my $const = $class -> new($b) -> bpow($t - 1);
-                $mant -> bmul($const);
-                $mant -> bfround(0);
+                $mant = $mant -> bmul($const);
+                $mant = $mant -> bfround(0);
 
                 # If the mantissa overflowed, encode as the smallest normal
                 # number.
 
                 if ($mant == $const -> bmul($b)) {
-                    $mant -> bzero();
-                    $expo -> binc();
+                    $mant = $mant -> bzero();
+                    $expo = $expo -> binc();
                 }
             }
 
@@ -4684,22 +5204,22 @@ sub to_ieee754 {
                 # Remove implicit leading bit, scale up the mantissa
                 # (significand) to an integer, and round.
 
-                $mant -> bdec();
+                $mant = $mant -> bdec();
                 my $const = $class -> new($b) -> bpow($t);
-                $mant -> bmul($const) -> bfround(0);
+                $mant = $mant -> bmul($const) -> bfround(0);
 
                 # If the mantissa overflowed, encode as the next larger value.
                 # This works correctly also when the next larger value is
                 # infinity.
 
                 if ($mant == $const) {
-                    $mant -> bzero();
-                    $expo -> binc();
+                    $mant = $mant -> bzero();
+                    $expo = $expo -> binc();
                 }
             }
         }
 
-        $expo -> badd($bias);                   # add bias
+        $expo = $expo -> badd($bias);           # add bias
 
         my $signbit = "$sign";
 
@@ -4719,7 +5239,9 @@ sub to_ieee754 {
 sub as_hex {
     # return number as hexadecimal string (only for integers defined)
 
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
     return '0x0' if $x->is_zero();
@@ -4737,7 +5259,9 @@ sub as_hex {
 sub as_oct {
     # return number as octal digit string (only for integers defined)
 
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
     return '00' if $x->is_zero();
@@ -4755,7 +5279,9 @@ sub as_oct {
 sub as_bin {
     # return number as binary digit string (only for integers defined)
 
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
     return '0b0' if $x->is_zero();
@@ -4772,7 +5298,10 @@ sub as_bin {
 
 sub numify {
     # Make a Perl scalar number from a Math::BigFloat object.
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+    my (undef, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     if ($x -> is_nan()) {
         require Math::Complex;
@@ -4787,6 +5316,7 @@ sub numify {
     }
 
     # Create a string and let Perl's atoi()/atof() handle the rest.
+
     return 0 + $x -> bnstr();
 }
 
@@ -4904,17 +5434,20 @@ sub _len_to_steps {
     my $l = 40;
     my $r = $d;
 
-    # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :(
+    # Otherwise this does not work under -Mbignum and we do not yet have "no
+    # bignum;" :(
     $l = $l->numify if ref($l);
     $r = $r->numify if ref($r);
     $lg2 = $lg2->numify if ref($lg2);
     $lg10 = $lg10->numify if ref($lg10);
 
-    # binary search for the right value (could this be written as the reverse of lg(n!)?)
+    # binary search for the right value (could this be written as the reverse of
+    # lg(n!)?)
     while ($r - $l > 1) {
         my $n = int(($r - $l) / 2) + $l;
-        my $ramanujan =
-          int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2) / $lg10);
+        my $ramanujan
+          = int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2)
+                / $lg10);
         $ramanujan > $d ? $r = $n : $l = $n;
     }
     $l;
@@ -4948,15 +5481,19 @@ sub _log {
 
     my ($limit, $v, $u, $below, $factor, $next, $over, $f);
 
-    $v = $x->copy(); $v->binc(); # v = x+1
-    $x->bdec(); $u = $x->copy(); # u = x-1; x = x-1
-    $x->bdiv($v, $scale);        # first term: u/v
+    $v = $x->copy();
+    $v = $v -> binc();                  # v = x+1
+    $x = $x->bdec();
+    $u = $x->copy();                    # u = x-1; x = x-1
+    $x = $x->bdiv($v, $scale);          # first term: u/v
     $below = $v->copy();
     $over = $u->copy();
-    $u *= $u; $v *= $v;         # u^2, v^2
-    $below->bmul($v);           # u^3, v^3
-    $over->bmul($u);
-    $factor = $class->new(3); $f = $class->new(2);
+    $u = $u -> bmul($u);                # u^2
+    $v = $v -> bmul($v);                # v^2
+    $below = $below->bmul($v);          # u^3, v^3
+    $over = $over->bmul($u);
+    $factor = $class->new(3);
+    $f = $class->new(2);
 
     $limit = $class->new("1E-". ($scale-1));
 
@@ -4972,27 +5509,24 @@ sub _log {
         # round $over and $below first, we save a lot of time for the division
         # (not with log(1.2345), but try log (123**123) to see what I mean. This
         # can introduce a rounding error if the division result would be f.i.
-        # 0.1234500000001 and we round it to 5 digits it would become 0.12346, but
-        # if we truncated $over and $below we might get 0.12345. Does this matter
-        # for the end result? So we give $over and $below 4 more digits to be
-        # on the safe side (unscientific error handling as usual... :+D
+        # 0.1234500000001 and we round it to 5 digits it would become 0.12346,
+        # but if we truncated $over and $below we might get 0.12345. Does this
+        # matter for the end result? So we give $over and $below 4 more digits
+        # to be on the safe side (unscientific error handling as usual... :+D
 
         $next = $over->copy()->bround($scale+4)
           ->bdiv($below->copy()->bmul($factor)->bround($scale+4),
                  $scale);
 
-        ## old version:
-        ##    $next = $over->copy()->bdiv($below->copy()->bmul($factor), $scale);
-
         last if $next->bacmp($limit) <= 0;
 
         delete $next->{_a};
         delete $next->{_p};
-        $x->badd($next);
+        $x = $x->badd($next);
         # calculate things for the next term
         $over *= $u;
         $below *= $v;
-        $factor->badd($f);
+        $factor = $factor->badd($f);
     }
     $x->bmul($f);               # $x *= 2
 }
@@ -5011,9 +5545,9 @@ sub _log_10 {
     # long, we make it faster by about a factor of 100 by dividing $x by 10.
 
     # The same observation is valid for numbers smaller than 0.1, e.g. computing
-    # log(1) is fastest, and the further away we get from 1, the longer it takes.
-    # So we also 'break' this down by multiplying $x with 10 and subtract the
-    # log(10) afterwards to get the correct result.
+    # log(1) is fastest, and the further away we get from 1, the longer it
+    # takes. So we also 'break' this down by multiplying $x with 10 and subtract
+    # the log(10) afterwards to get the correct result.
 
     # To get $x even closer to 1, we also divide by 2 and then use log(2) to
     # correct for this. For instance if $x is 2.4, we use the formula:
@@ -5044,8 +5578,8 @@ sub _log_10 {
         $dbd = 0;               # disable shortcut
         # we can use the cached value in these cases
         if ($scale <= $LOG_10_A) {
-            $x->bzero();
-            $x->badd($LOG_10); # modify $x in place
+            $x = $x->bzero();
+            $x = $x->badd($LOG_10); # modify $x in place
             $calc = 0;                      # no need to calc, but round
         }
         # if we can't use the shortcut, we continue normally
@@ -5057,8 +5591,8 @@ sub _log_10 {
             $dbd = 0;           # disable shortcut
             # we can use the cached value in these cases
             if ($scale <= $LOG_2_A) {
-                $x->bzero();
-                $x->badd($LOG_2); # modify $x in place
+                $x = $x->bzero();
+                $x = $x->badd($LOG_2); # modify $x in place
                 $calc = 0;                     # no need to calc, but round
             }
             # if we can't use the shortcut, we continue normally
@@ -5074,8 +5608,8 @@ sub _log_10 {
         $dbd = 0;               # disable shortcut
         # we can use the cached value in these cases
         if ($scale <= $LOG_10_A) {
-            $x->bzero();
-            $x->bsub($LOG_10);
+            $x = $x->bzero();
+            $x = $x->bsub($LOG_10);
             $calc = 0;          # no need to calc, but round
         }
     }
@@ -5096,8 +5630,8 @@ sub _log_10 {
         $LOG_10 = $class->new($LOG_10, undef, undef) unless ref $LOG_10;
 
         #print "x = $x, dbd = $dbd, calc = $calc\n";
-        # got more than one digit before the dot, or more than one zero after the
-        # dot, so do:
+        # got more than one digit before the dot, or more than one zero after
+        # the dot, so do:
         #  log(123)    == log(1.23) + log(10) * 2
         #  log(0.0123) == log(1.23) - log(10) * 2
 
@@ -5106,7 +5640,12 @@ sub _log_10 {
             $l_10 = $LOG_10->copy(); # copy for mul
         } else {
             # else: slower, compute and cache result
-            # also disable downgrade for this code path
+
+            # Disabling upgrading and downgrading is no longer necessary to
+            # avoid an infinite recursion, but it avoids unnecessary upgrading
+            # and downgrading in the intermediate computations.
+
+            local $Math::BigInt::upgrade = undef;
             local $Math::BigFloat::downgrade = undef;
 
             # shorten the time to calculate log(10) based on the following:
@@ -5121,7 +5660,7 @@ sub _log_10 {
             } else {
                 # else: slower, compute and cache result
                 $l_2 = $two->copy();
-                $l_2->_log($scale); # scale+4, actually
+                $l_2 = $l_2->_log($scale); # scale+4, actually
                 $LOG_2 = $l_2->copy(); # cache the result for later
                 # the copy() is for mul below
                 $LOG_2_A = $scale;
@@ -5129,27 +5668,25 @@ sub _log_10 {
 
             # now calculate log(1.25):
             $l_10 = $class->new('1.25');
-            $l_10->_log($scale); # scale+4, actually
+            $l_10 = $l_10->_log($scale); # scale+4, actually
 
             # log(1.25) + log(2) + log(2) + log(2):
-            $l_10->badd($l_2);
-            $l_10->badd($l_2);
-            $l_10->badd($l_2);
+            $l_10 = $l_10->badd($l_2);
+            $l_10 = $l_10->badd($l_2);
+            $l_10 = $l_10->badd($l_2);
             $LOG_10 = $l_10->copy(); # cache the result for later
             # the copy() is for mul below
             $LOG_10_A = $scale;
         }
         $dbd-- if ($dbd > 1);       # 20 => dbd=2, so make it dbd=1
-        $l_10->bmul($class->new($dbd)); # log(10) * (digits_before_dot-1)
+        $l_10 = $l_10->bmul($class->new($dbd)); # log(10) * (digits_before_dot-1)
         my $dbd_sign = '+';
         if ($dbd < 0) {
             $dbd = -$dbd;
             $dbd_sign = '-';
         }
         ($x->{_e}, $x->{_es}) =
-          _e_sub($x->{_e}, $LIB->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23
-        #($x->{_e}, $x->{_es}) =
-        #  $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($dbd), $dbd_sign);
+          $LIB -> _ssub($x->{_e}, $x->{_es}, $LIB->_new($dbd), $dbd_sign);
     }
 
     # Now: 0.1 <= $x < 10 (and possible correction in l_10)
@@ -5162,13 +5699,13 @@ sub _log_10 {
     my $twos = 0;               # default: none (0 times)
     while ($x->bacmp($HALF) <= 0) { # X <= 0.5
         $twos--;
-        $x->bmul($two);
+        $x = $x->bmul($two);
     }
     while ($x->bacmp($two) >= 0) { # X >= 2
         $twos++;
-        $x->bdiv($two, $scale+4); # keep all digits
+        $x = $x->bdiv($two, $scale+4); # keep all digits
     }
-    $x->bround($scale+4);
+    $x = $x->bround($scale+4);
     # $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both)
     # So calculate correction factor based on ln(2):
     if ($twos != 0) {
@@ -5178,70 +5715,33 @@ sub _log_10 {
             $l_2 = $LOG_2->copy(); # copy() for the mul below
         } else {
             # else: slower, compute and cache result
-            # also disable downgrade for this code path
+
+            # Disabling upgrading and downgrading is no longer necessary to
+            # avoid an infinite recursion, but it avoids unnecessary upgrading
+            # and downgrading in the intermediate computations.
+
+            local $Math::BigInt::upgrade = undef;
             local $Math::BigFloat::downgrade = undef;
+
             $l_2 = $two->copy();
-            $l_2->_log($scale); # scale+4, actually
+            $l_2 = $l_2->_log($scale); # scale+4, actually
             $LOG_2 = $l_2->copy(); # cache the result for later
             # the copy() is for mul below
             $LOG_2_A = $scale;
         }
-        $l_2->bmul($twos);      # * -2 => subtract, * 2 => add
+        $l_2 = $l_2->bmul($twos);      # * -2 => subtract, * 2 => add
     } else {
         undef $l_2;
     }
 
-    $x->_log($scale);       # need to do the "normal" way
-    $x->badd($l_10) if defined $l_10; # correct it by ln(10)
-    $x->badd($l_2) if defined $l_2;   # and maybe by ln(2)
+    $x = $x->_log($scale);       # need to do the "normal" way
+    $x = $x->badd($l_10) if defined $l_10; # correct it by ln(10)
+    $x = $x->badd($l_2) if defined $l_2;   # and maybe by ln(2)
 
     # all done, $x contains now the result
     $x;
 }
 
-sub _e_add {
-    # Internal helper sub to take two positive integers and their signs and
-    # then add them. Input ($LIB, $LIB, ('+'|'-'), ('+'|'-')), output
-    # ($LIB, ('+'|'-')).
-
-    my ($x, $y, $xs, $ys) = @_;
-
-    # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
-    if ($xs eq $ys) {
-        $x = $LIB->_add($x, $y); # +a + +b or -a + -b
-    } else {
-        my $a = $LIB->_acmp($x, $y);
-        if ($a == 0) {
-            # This does NOT modify $x in-place. TODO: Fix this?
-            $x = $LIB->_zero(); # result is 0
-            $xs = '+';
-            return ($x, $xs);
-        }
-        if ($a > 0) {
-            $x = $LIB->_sub($x, $y);     # abs sub
-        } else {                         # a < 0
-            $x = $LIB->_sub ($y, $x, 1); # abs sub
-            $xs = $ys;
-        }
-    }
-
-    $xs = '+' if $xs eq '-' && $LIB->_is_zero($x); # no "-0"
-
-    return ($x, $xs);
-}
-
-sub _e_sub {
-    # Internal helper sub to take two positive integers and their signs and
-    # then subtract them. Input ($LIB, $LIB, ('+'|'-'), ('+'|'-')),
-    # output ($LIB, ('+'|'-'))
-    my ($x, $y, $xs, $ys) = @_;
-
-    # flip sign
-    $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
-    _e_add($x, $y, $xs, $ys);     # ... and let _e_add() do the job
-    #$LIB -> _sadd($x, $xs, $y, $ys);     # ... and let $LIB -> _sadd() do the job
-}
-
 sub _pow {
     # Calculate a power where $y is a non-integer, like 2 ** 0.3
     my ($x, $y, @r) = @_;
@@ -5284,23 +5784,32 @@ sub _pow {
     # when user set globals, they would interfere with our calculation, so
     # disable them and later re-enable them
     no strict 'refs';
-    my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
-    my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+    my $abr = "$class\::accuracy";
+    my $ab = $$abr;
+    $$abr = undef;
+    my $pbr = "$class\::precision";
+    my $pb = $$pbr;
+    $$pbr = undef;
     # we also need to disable any set A or P on $x (_find_round_parameters took
     # them already into account), since these would interfere, too
     delete $x->{_a};
     delete $x->{_p};
-    # need to disable $upgrade in BigInt, to avoid deep recursion
+
+    # Disabling upgrading and downgrading is no longer necessary to avoid an
+    # infinite recursion, but it avoids unnecessary upgrading and downgrading in
+    # the intermediate computations.
+
     local $Math::BigInt::upgrade = undef;
+    local $Math::BigFloat::downgrade = undef;
 
     my ($limit, $v, $u, $below, $factor, $next, $over);
 
     $u = $x->copy()->blog(undef, $scale)->bmul($y);
     my $do_invert = ($u->{sign} eq '-');
-    $u->bneg()  if $do_invert;
+    $u = $u->bneg()  if $do_invert;
     $v = $class->bone();        # 1
     $factor = $class->new(2);   # 2
-    $x->bone();                 # first term: 1
+    $x = $x->bone();                 # first term: 1
 
     $below = $v->copy();
     $over = $u->copy();
@@ -5312,25 +5821,25 @@ sub _pow {
         # anymore, so we stop:
         $next = $over->copy()->bdiv($below, $scale);
         last if $next->bacmp($limit) <= 0;
-        $x->badd($next);
+        $x = $x->badd($next);
         # calculate things for the next term
         $over *= $u;
         $below *= $factor;
-        $factor->binc();
+        $factor = $factor->binc();
 
         last if $x->{sign} !~ /^[-+]$/;
     }
 
     if ($do_invert) {
         my $x_copy = $x->copy();
-        $x->bone->bdiv($x_copy, $scale);
+        $x = $x->bone->bdiv($x_copy, $scale);
     }
 
     # shortcut to not run through _find_round_parameters again
     if (defined $params[0]) {
-        $x->bround($params[0], $params[2]); # then round accordingly
+        $x = $x->bround($params[0], $params[2]); # then round accordingly
     } else {
-        $x->bfround($params[1], $params[2]); # then round accordingly
+        $x = $x->bfround($params[1], $params[2]); # then round accordingly
     }
     if ($fallback) {
         # clear a/p after round, since user did not request it
@@ -5343,6 +5852,19 @@ sub _pow {
     $x;
 }
 
+# These functions are only provided for backwards compabibility so that old
+# version of Math::BigRat etc. don't complain about missing them.
+
+sub _e_add {
+    my ($x, $y, $xs, $ys) = @_;
+    return $LIB -> _sadd($x, $xs, $y, $ys);
+}
+
+sub _e_sub {
+    my ($x, $y, $xs, $ys) = @_;
+    return $LIB -> _ssub($x, $xs, $y, $ys);
+}
+
 1;
 
 __END__
@@ -5395,6 +5917,8 @@ Math::BigFloat - arbitrary size floating
 
   $y = $x->copy();        # make a copy (unlike $y = $x)
   $y = $x->as_int();      # return as BigInt
+  $y = $x->as_float();    # return as a Math::BigFloat
+  $y = $x->as_rat();      # return as a Math::BigRat
 
   # Boolean methods (these don't modify the invocand)
 
@@ -5516,6 +6040,8 @@ Math::BigFloat - arbitrary size floating
   $x->bnstr();        # string in normalized notation
   $x->bestr();        # string in engineering notation
   $x->bdstr();        # string in decimal notation
+  $x->bfstr();        # string in fractional notation
+
   $x->as_hex();       # as signed hexadecimal string with prefixed 0x
   $x->as_bin();       # as signed binary string with prefixed 0b
   $x->as_oct();       # as signed octal string with prefixed 0
@@ -5921,10 +6447,11 @@ supplied to the operation after the I<sc
     Math::BigFloat->round_mode('zero');
     $y = $x->copy()->bdiv(3,6);               # will also give 0.666667
 
-Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >>
-set the global variables, and thus B<any> newly created number will be subject
-to the global rounding B<immediately>. This means that in the examples above, the
-C<3> as argument to C<bdiv()> will also get an accuracy of B<5>.
+Note that C<< Math::BigFloat->accuracy() >> and
+C<< Math::BigFloat->precision() >> set the global variables, and thus B<any>
+newly created number will be subject to the global rounding B<immediately>. This
+means that in the examples above, the C<3> as argument to C<bdiv()> will also
+get an accuracy of B<5>.
 
 It is less confusing to either calculate the result fully, and afterwards
 round it explicitly, or use the additional parameters to the math
@@ -6103,7 +6630,8 @@ math library for directly storing the nu
 
 =head1 EXPORTS
 
-C<Math::BigFloat> exports nothing by default, but can export the C<bpi()> method:
+C<Math::BigFloat> exports nothing by default, but can export the C<bpi()>
+method:
 
     use Math::BigFloat qw/bpi/;
 
@@ -6178,7 +6706,8 @@ a certain number of digits:
     print "$z\n";
     print $z->precision(),"\n";             # 4
 
-Replacing L</precision()> with L</accuracy()> is probably not what you want, either:
+Replacing L</precision()> with L</accuracy()> is probably not what you want,
+either:
 
     use Math::BigFloat;
 
Index: gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm,v
diff -u -p -a -u -p -r1.7 BigInt.pm
--- gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt.pm	21 Feb 2024 15:47:01 -0000
@@ -21,9 +21,9 @@ use strict;
 use warnings;
 
 use Carp          qw< carp croak >;
-use Scalar::Util  qw< blessed >;
+use Scalar::Util  qw< blessed refaddr >;
 
-our $VERSION = '1.999830';
+our $VERSION = '1.999837';
 $VERSION =~ tr/_//d;
 
 require Exporter;
@@ -58,7 +58,6 @@ use overload
 
   '%'     =>      sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
                               : $_[0] -> copy() -> bmod($_[1]); },
-
   '**'    =>      sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
                               : $_[0] -> copy() -> bpow($_[1]); },
 
@@ -216,7 +215,8 @@ use overload
 # These vars are public, but their direct usage is not recommended, use the
 # accessor methods instead
 
-our $round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'
+# $round_mode is 'even', 'odd', '+inf', '-inf', 'zero', 'trunc', or 'common'.
+our $round_mode = 'even';
 our $accuracy   = undef;
 our $precision  = undef;
 our $div_scale  = 40;
@@ -262,9 +262,9 @@ BEGIN {
     tie $rnd_mode, 'Math::BigInt';
 
     # set up some handy alias names
-    *as_int = \&as_number;
     *is_pos = \&is_positive;
     *is_neg = \&is_negative;
+    *as_number = \&as_int;
 }
 
 ###############################################################################
@@ -297,6 +297,7 @@ sub upgrade {
     # make Class->upgrade() work
     my $self = shift;
     my $class = ref($self) || $self || __PACKAGE__;
+
     # need to set new value?
     if (@_ > 0) {
         return ${"${class}::upgrade"} = $_[0];
@@ -361,11 +362,11 @@ sub accuracy {
 
         if (ref($x)) {
             # Set instance variable.
-            $x->bround($a) if $a; # not for undef, 0
+            $x = $x->bround($a) if $a; # not for undef, 0
             $x->{_a} = $a;        # set/overwrite, even if not rounded
             delete $x->{_p};      # clear P
             # Why return class variable here? Fixme!
-            $a = ${"${class}::accuracy"} unless defined $a; # proper return value
+            $a = ${"${class}::accuracy"} unless defined $a;
         } else {
             # Set class variable.
             ${"${class}::accuracy"} = $a; # set global A
@@ -376,7 +377,7 @@ sub accuracy {
     }
 
     # Return instance variable.
-    return $x->{_a} if ref($x) && (defined $x->{_a} || defined $x->{_p});
+    return $x->{_a} if ref($x) && (defined($x->{_a}) || defined($x->{_p}));
 
     # Return class variable.
     return ${"${class}::accuracy"};
@@ -403,11 +404,11 @@ sub precision {
 
         if (ref($x)) {
             # Set instance variable.
-            $x->bfround($p) if $p; # not for undef, 0
+            $x = $x->bfround($p) if $p; # not for undef, 0
             $x->{_p} = $p;         # set/overwrite, even if not rounded
             delete $x->{_a};       # clear A
             # Why return class variable here? Fixme!
-            $p = ${"${class}::precision"} unless defined $p; # proper return value
+            $p = ${"${class}::precision"} unless defined $p;
         } else {
             # Set class variable.
             ${"${class}::precision"} = $p; # set global P
@@ -418,7 +419,7 @@ sub precision {
     }
 
     # Return instance variable.
-    return $x->{_p} if ref($x) && (defined $x->{_a} || defined $x->{_p});
+    return $x->{_p} if ref($x) && (defined($x->{_a}) || defined($x->{_p}));
 
     # Return class variable.
     return ${"${class}::precision"};
@@ -551,26 +552,22 @@ sub new {
 
     $class -> import() if $IMPORT == 0;
 
-    # Although this use has been discouraged for more than 10 years, people
-    # apparently still use it, so we still support it.
+    # Calling new() with no input arguments has been discouraged for more than
+    # 10 years, but people apparently still use it, so we still support it.
 
     return $class -> bzero() unless @_;
 
     my ($wanted, @r) = @_;
 
     if (!defined($wanted)) {
-        #if (warnings::enabled("uninitialized")) {
-        #    warnings::warn("uninitialized",
-        #                   "Use of uninitialized value in new()");
-        #}
+        #carp("Use of uninitialized value in new()")
+        #  if warnings::enabled("uninitialized");
         return $class -> bzero(@r);
     }
 
     if (!ref($wanted) && $wanted eq "") {
-        #if (warnings::enabled("numeric")) {
-        #    warnings::warn("numeric",
-        #                   q|Argument "" isn't numeric in new()|);
-        #}
+        #carp(q|Argument "" isn't numeric in new()|)
+        #  if warnings::enabled("numeric");
         #return $class -> bzero(@r);
         return $class -> bnan(@r);
     }
@@ -583,48 +580,60 @@ sub new {
 
     if (defined(blessed($wanted)) && $wanted -> isa($class)) {
 
-        # We don't copy the accuracy and precision, because a new object should
-        # get them from the global configuration.
+        # Don't copy the accuracy and precision, because a new object should get
+        # them from the global configuration.
 
         $self -> {sign}  = $wanted -> {sign};
         $self -> {value} = $LIB -> _copy($wanted -> {value});
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        $self = $self->round(@r)
+          unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
         return $self;
     }
 
     # Shortcut for non-zero scalar integers with no non-zero exponent.
 
-    if ($wanted =~ / ^
-                     ([+-]?)            # optional sign
-                     ([1-9][0-9]*)      # non-zero significand
-                     (\.0*)?            # ... with optional zero fraction
-                     ([Ee][+-]?0+)?     # optional zero exponent
-                     \z
-                   /x)
+    if ($wanted =~
+        / ^
+          ( [+-]? )             # optional sign
+          ( [1-9] [0-9]* )      # non-zero significand
+          ( \.0* )?             # ... with optional zero fraction
+          ( [Ee] [+-]? 0+ )?    # optional zero exponent
+          \z
+        /x)
     {
         my $sgn = $1;
         my $abs = $2;
         $self->{sign} = $sgn || '+';
         $self->{value} = $LIB->_new($abs);
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+        $self = $self->round(@r);
         return $self;
     }
 
     # Handle Infs.
 
-    if ($wanted =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
+    if ($wanted =~ / ^
+                     \s*
+                     ( [+-]? )
+                     inf (?: inity )?
+                     \s*
+                     \z
+                   /ix)
+    {
         my $sgn = $1 || '+';
-        $self = $class -> binf($sgn);
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
-        return $self;
+        return $class -> binf($sgn, @r);
     }
 
     # Handle explicit NaNs (not the ones returned due to invalid input).
 
-    if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
-        $self = $class -> bnan();
-        $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
-        return $self;
+    if ($wanted =~ / ^
+                     \s*
+                     ( [+-]? )
+                     nan
+                     \s*
+                     \z
+                   /ix)
+    {
+        return $class -> bnan(@r);
     }
 
     my @parts;
@@ -634,7 +643,7 @@ sub new {
         # have a "0x", "0X", "x", or "X" prefix, cf. CORE::oct().
 
         $wanted =~ /^\s*[+-]?0?[Xx]/ and
-        @parts = $class -> _hex_str_to_lib_parts($wanted)
+        @parts = $class -> _hex_str_to_flt_lib_parts($wanted)
 
           or
 
@@ -642,7 +651,7 @@ sub new {
         # "0o", "0O", "o", "O" prefix, cf. CORE::oct().
 
         $wanted =~ /^\s*[+-]?0?[Oo]/ and
-        @parts = $class -> _oct_str_to_lib_parts($wanted)
+        @parts = $class -> _oct_str_to_flt_lib_parts($wanted)
 
           or
 
@@ -650,7 +659,7 @@ sub new {
         # "0b", "0B", "b", or "B" prefix, cf. CORE::oct().
 
         $wanted =~ /^\s*[+-]?0?[Bb]/ and
-        @parts = $class -> _bin_str_to_lib_parts($wanted)
+        @parts = $class -> _bin_str_to_flt_lib_parts($wanted)
 
           or
 
@@ -658,38 +667,38 @@ sub new {
         # above and octal floating point numbers that don't have any of the
         # "0o", "0O", "o", or "O" prefixes. First see if it is a decimal number.
 
-        @parts = $class -> _dec_str_to_lib_parts($wanted)
+        @parts = $class -> _dec_str_to_flt_lib_parts($wanted)
           or
 
         # See if it is an octal floating point number. The extra check is
-        # included because _oct_str_to_lib_parts() accepts octal numbers that
-        # don't have a prefix (this is needed to make it work with, e.g.,
+        # included because _oct_str_to_flt_lib_parts() accepts octal numbers
+        # that don't have a prefix (this is needed to make it work with, e.g.,
         # from_oct() that don't require a prefix). However, Perl requires a
         # prefix for octal floating point literals. For example, "1p+0" is not
         # valid, but "01p+0" and "0__1p+0" are.
 
         $wanted =~ /^\s*[+-]?0_*\d/ and
-        @parts = $class -> _oct_str_to_lib_parts($wanted))
+        @parts = $class -> _oct_str_to_flt_lib_parts($wanted))
     {
         # The value is an integer iff the exponent is non-negative.
 
         if ($parts[2] eq '+') {
             $self -> {sign}  = $parts[0];
             $self -> {value} = $LIB -> _lsft($parts[1], $parts[3], 10);
-            $self->round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+            $self = $self->round(@r)
+              unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
             return $self;
         }
 
-        # If we get here, the value is a valid number, but it is not an integer.
+        # The value is not an integer, so upgrade if upgrading is enabled.
 
         return $upgrade -> new($wanted, @r) if defined $upgrade;
-        return $class -> bnan();
     }
 
     # If we get here, the value is neither a valid decimal, binary, octal, or
     # hexadecimal number. It is not explicit an Inf or a NaN either.
 
-    return $class -> bnan();
+    return $class -> bnan(@r);
 }
 
 # Create a Math::BigInt from a decimal string. This is an equivalent to
@@ -703,16 +712,16 @@ sub from_dec {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_dec');
+    return $self if $selfref && $self->modify('from_dec');
 
     my $str = shift;
     my @r   = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
+    $self = $class -> bzero(@r) unless $selfref;
 
-    if (my @parts = $class -> _dec_str_to_lib_parts($str)) {
+    if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
 
         # The value is an integer iff the exponent is non-negative.
 
@@ -722,6 +731,8 @@ sub from_dec {
             return $self -> round(@r);
         }
 
+        # The value is not an integer, so upgrade if upgrading is enabled.
+
         return $upgrade -> new($str, @r) if defined $upgrade;
     }
 
@@ -737,16 +748,16 @@ sub from_hex {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_hex');
+    return $self if $selfref && $self->modify('from_hex');
 
     my $str = shift;
     my @r   = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
+    $self = $class -> bzero(@r) unless $selfref;
 
-    if (my @parts = $class -> _hex_str_to_lib_parts($str)) {
+    if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) {
 
         # The value is an integer iff the exponent is non-negative.
 
@@ -756,6 +767,8 @@ sub from_hex {
             return $self -> round(@r);
         }
 
+        # The value is not an integer, so upgrade if upgrading is enabled.
+
         return $upgrade -> new($str, @r) if defined $upgrade;
     }
 
@@ -771,16 +784,16 @@ sub from_oct {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_oct');
+    return $self if $selfref && $self->modify('from_oct');
 
     my $str = shift;
     my @r   = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
+    $self = $class -> bzero(@r) unless $selfref;
 
-    if (my @parts = $class -> _oct_str_to_lib_parts($str)) {
+    if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
 
         # The value is an integer iff the exponent is non-negative.
 
@@ -790,6 +803,8 @@ sub from_oct {
             return $self -> round(@r);
         }
 
+        # The value is not an integer, so upgrade if upgrading is enabled.
+
         return $upgrade -> new($str, @r) if defined $upgrade;
     }
 
@@ -805,16 +820,16 @@ sub from_bin {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_bin');
+    return $self if $selfref && $self->modify('from_bin');
 
     my $str = shift;
     my @r   = @_;
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
+    $self = $class -> bzero(@r) unless $selfref;
 
-    if (my @parts = $class -> _bin_str_to_lib_parts($str)) {
+    if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
 
         # The value is an integer iff the exponent is non-negative.
 
@@ -824,6 +839,8 @@ sub from_bin {
             return $self -> round(@r);
         }
 
+        # The value is not an integer, so upgrade if upgrading is enabled.
+
         return $upgrade -> new($str, @r) if defined $upgrade;
     }
 
@@ -839,7 +856,7 @@ sub from_bytes {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_bytes');
+    return $self if $selfref && $self->modify('from_bytes');
 
     croak("from_bytes() requires a newer version of the $LIB library.")
         unless $LIB->can('_from_bytes');
@@ -849,7 +866,7 @@ sub from_bytes {
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
+    $self = $class -> bzero(@r) unless $selfref;
     $self -> {sign}  = '+';
     $self -> {value} = $LIB -> _from_bytes($str);
     return $self -> round(@r);
@@ -862,11 +879,10 @@ sub from_base {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_base');
+    return $self if $selfref && $self->modify('from_base');
 
-    my $str = shift;
+    my ($str, $base, $cs, @r) = @_;     # $cs is the collation sequence
 
-    my $base = shift;
     $base = $class->new($base) unless ref($base);
 
     croak("the base must be a finite integer >= 2")
@@ -879,14 +895,15 @@ sub from_base {
     # If no collating sequence is given, pass some of the conversions to
     # methods optimized for those cases.
 
-    if (! @_) {
-        return $self -> from_bin($str) if $base == 2;
-        return $self -> from_oct($str) if $base == 8;
-        return $self -> from_hex($str) if $base == 16;
+    unless (defined $cs) {
+        return $self -> from_bin($str, @r) if $base == 2;
+        return $self -> from_oct($str, @r) if $base == 8;
+        return $self -> from_hex($str, @r) if $base == 16;
         if ($base == 10) {
-            my $tmp = $class -> new($str);
+            my $tmp = $class -> from_dec($str, @r);
             $self -> {value} = $tmp -> {value};
             $self -> {sign}  = '+';
+            return $self -> bround(@r);
         }
     }
 
@@ -895,8 +912,8 @@ sub from_base {
 
     $self -> {sign}  = '+';
     $self -> {value}
-      = $LIB->_from_base($str, $base -> {value}, @_ ? shift() : ());
-    return $self;
+      = $LIB->_from_base($str, $base -> {value}, defined($cs) ? $cs : ());
+    return $self -> bround(@r);
 }
 
 sub from_base_num {
@@ -906,7 +923,7 @@ sub from_base_num {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('from_base_num');
+    return $self if $selfref && $self->modify('from_base_num');
 
     # Make sure we have an array of non-negative, finite, numerical objects.
 
@@ -929,7 +946,7 @@ sub from_base_num {
 
     # If called as a class method, initialize a new object.
 
-    $self = $class -> bzero() unless $selfref;
+    $self = $class -> bzero(@r) unless $selfref;
 
     croak("from_base_num() requires a newer version of the $LIB library.")
       unless $LIB->can('_from_base_num');
@@ -944,9 +961,12 @@ sub from_base_num {
 sub bzero {
     # create/assign '+0'
 
-    if (@_ == 0) {
-        #carp("Using bzero() as a function is deprecated;",
-        #           " use bzero() as a method instead");
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
@@ -958,7 +978,13 @@ sub bzero {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('bzero');
+    return $self if $selfref && $self->modify('bzero');
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
+
+    # If called as a class method, initialize a new object.
 
     $self = bless {}, $class unless $selfref;
 
@@ -966,19 +992,17 @@ sub bzero {
     $self->{value} = $LIB->_zero();
 
     # If rounding parameters are given as arguments, use them. If no rounding
-    # parameters are given, and if called as a class method initialize the new
+    # parameters are given, and if called as a class method, initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
         $self->{_a} = $_[0];
         $self->{_p} = $_[1];
-    } else {
-        unless($selfref) {
-            $self->{_a} = $class -> accuracy();
-            $self->{_p} = $class -> precision();
-        }
+    } elsif (!$selfref) {
+        $self->{_a} = $class -> accuracy();
+        $self->{_p} = $class -> precision();
     }
 
     return $self;
@@ -987,9 +1011,12 @@ sub bzero {
 sub bone {
     # Create or assign '+1' (or -1 if given sign '-').
 
-    if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
-        #carp("Using bone() as a function is deprecated;",
-        #           " use bone() as a method instead");
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
@@ -1001,33 +1028,38 @@ sub bone {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('bone');
+    return $self if $selfref && $self->modify('bone');
+
+    my ($sign, @r) = @_;
+
+    # Get the sign.
 
-    my $sign = '+';             # default
-    if (@_) {
-        $sign = shift;
-        $sign = $sign =~ /^\s*-/ ? "-" : "+";
+    if (defined($_[0]) && $_[0] =~ /^\s*([+-])\s*$/) {
+        $sign = $1;
+        shift;
+    } else {
+        $sign = '+';
     }
 
+    # If called as a class method, initialize a new object.
+
     $self = bless {}, $class unless $selfref;
 
     $self->{sign}  = $sign;
     $self->{value} = $LIB->_one();
 
     # If rounding parameters are given as arguments, use them. If no rounding
-    # parameters are given, and if called as a class method initialize the new
+    # parameters are given, and if called as a class method, initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
         $self->{_a} = $_[0];
         $self->{_p} = $_[1];
-    } else {
-        unless($selfref) {
-            $self->{_a} = $class -> accuracy();
-            $self->{_p} = $class -> precision();
-        }
+    } elsif (!$selfref) {
+        $self->{_a} = $class -> accuracy();
+        $self->{_p} = $class -> precision();
     }
 
     return $self;
@@ -1036,11 +1068,12 @@ sub bone {
 sub binf {
     # create/assign a '+inf' or '-inf'
 
-    if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
-                    $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
     {
-        #carp("Using binf() as a function is deprecated;",
-        #           " use binf() as a method instead");
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
@@ -1059,10 +1092,21 @@ sub binf {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('binf');
+    return $self if $selfref && $self->modify('binf');
+
+    # Get the sign.
 
-    my $sign = shift;
-    $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+    my $sign = '+';     # default is to return positive infinity
+    if (defined($_[0]) && $_[0] =~ /^\s*([+-])(inf|$)/i) {
+        $sign = $1;
+        shift;
+    }
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
+
+    # If called as a class method, initialize a new object.
 
     $self = bless {}, $class unless $selfref;
 
@@ -1070,19 +1114,17 @@ sub binf {
     $self -> {value} = $LIB -> _zero();
 
     # If rounding parameters are given as arguments, use them. If no rounding
-    # parameters are given, and if called as a class method initialize the new
+    # parameters are given, and if called as a class method, initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
         $self->{_a} = $_[0];
         $self->{_p} = $_[1];
-    } else {
-        unless($selfref) {
-            $self->{_a} = $class -> accuracy();
-            $self->{_p} = $class -> precision();
-        }
+    } elsif (!$selfref) {
+        $self->{_a} = $class -> accuracy();
+        $self->{_p} = $class -> precision();
     }
 
     return $self;
@@ -1091,9 +1133,12 @@ sub binf {
 sub bnan {
     # create/assign a 'NaN'
 
-    if (@_ == 0) {
-        #carp("Using bnan() as a function is deprecated;",
-        #           " use bnan() as a method instead");
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
         unshift @_, __PACKAGE__;
     }
 
@@ -1112,7 +1157,11 @@ sub bnan {
 
     # Don't modify constant (read-only) objects.
 
-    return if $selfref && $self->modify('bnan');
+    return $self if $selfref && $self->modify('bnan');
+
+    # Get the rounding parameters, if any.
+
+    my @r = @_;
 
     $self = bless {}, $class unless $selfref;
 
@@ -1120,19 +1169,17 @@ sub bnan {
     $self -> {value} = $LIB -> _zero();
 
     # If rounding parameters are given as arguments, use them. If no rounding
-    # parameters are given, and if called as a class method initialize the new
+    # parameters are given, and if called as a class method, initialize the new
     # instance with the class variables.
 
-    if (@_) {
+    if (@r) {
         croak "can't specify both accuracy and precision"
-          if @_ >= 2 && defined $_[0] && defined $_[1];
+          if @r >= 2 && defined($r[0]) && defined($r[1]);
         $self->{_a} = $_[0];
         $self->{_p} = $_[1];
-    } else {
-        unless($selfref) {
-            $self->{_a} = $class -> accuracy();
-            $self->{_p} = $class -> precision();
-        }
+    } elsif (!$selfref) {
+        $self->{_a} = $class -> accuracy();
+        $self->{_p} = $class -> precision();
     }
 
     return $self;
@@ -1140,19 +1187,28 @@ sub bnan {
 
 sub bpi {
 
-    # Called as               Argument list
-    # ---------               -------------
-    # Math::BigInt->bpi()     ("Math::BigInt")
-    # Math::BigInt->bpi(10)   ("Math::BigInt", 10)
-    # $x->bpi()               ($x)
-    # $x->bpi(10)             ($x, 10)
-    # Math::BigInt::bpi()     ()
-    # Math::BigInt::bpi(10)   (10)
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
+        unshift @_, __PACKAGE__;
+    }
+
+    # Called as                 Argument list
+    # ---------                 -------------
+    # Math::BigFloat->bpi()     ("Math::BigFloat")
+    # Math::BigFloat->bpi(10)   ("Math::BigFloat", 10)
+    # $x->bpi()                 ($x)
+    # $x->bpi(10)               ($x, 10)
+    # Math::BigFloat::bpi()     ()
+    # Math::BigFloat::bpi(10)   (10)
     #
     # In ambiguous cases, we favour the OO-style, so the following case
     #
-    #   $n = Math::BigInt->new("10");
-    #   $x = Math::BigInt->bpi($n);
+    #   $n = Math::BigFloat->new("10");
+    #   $x = Math::BigFloat->bpi($n);
     #
     # which gives an argument list with the single element $n, is resolved as
     #
@@ -1161,35 +1217,12 @@ sub bpi {
     my $self    = shift;
     my $selfref = ref $self;
     my $class   = $selfref || $self;
+    my @r       = @_;                   # rounding paramters
 
-    my @r;                      # rounding paramters
-
-    # If bpi() is called as a function ...
-    #
-    # This cludge is necessary because we still support bpi() as a function. If
-    # bpi() is called with either no argument or one argument, and that one
-    # argument is either undefined or a scalar that looks like a number, then
-    # we assume bpi() is called as a function.
-
-    if (@_ == 0 &&
-        (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/)
-          ||
-        !defined($self))
-    {
-        $r[0]  = $self;
-        $class = __PACKAGE__;
-        $self  = bless {}, $class;
-    }
-
-    # ... or if bpi() is called as a method ...
-
-    else {
-        @r = @_;
-        if ($selfref) {                     # bpi() called as instance method
-            return $self if $self -> modify('bpi');
-        } else {                            # bpi() called as class method
-            $self  = bless {}, $class;
-        }
+    if ($selfref) {                     # bpi() called as an instance method
+        return $self if $self -> modify('bpi');
+    } else {                            # bpi() called as a class method
+        $self = bless {}, $class;       # initialize new instance
     }
 
     return $upgrade -> bpi(@r) if defined $upgrade;
@@ -1197,34 +1230,100 @@ sub bpi {
     # hard-wired to "3"
     $self -> {sign}  = '+';
     $self -> {value} = $LIB -> _new("3");
-    $self -> round(@r) unless @r >= 2 && !defined($r[0]) && !defined($r[1]);
+    $self = $self -> round(@r);
     return $self;
 }
 
 sub copy {
-    my $self    = shift;
-    my $selfref = ref $self;
-    my $class   = $selfref || $self;
-
-    # If called as a class method, the object to copy is the next argument.
+    my ($x, $class);
+    if (ref($_[0])) {           # $y = $x -> copy()
+        $x = shift;
+        $class = ref($x);
+    } else {                    # $y = Math::BigInt -> copy($y)
+        $class = shift;
+        $x = shift;
+    }
 
-    $self = shift() unless $selfref;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @_;
 
     my $copy = bless {}, $class;
 
-    $copy->{sign}  = $self->{sign};
-    $copy->{value} = $LIB->_copy($self->{value});
-    $copy->{_a}    = $self->{_a} if exists $self->{_a};
-    $copy->{_p}    = $self->{_p} if exists $self->{_p};
+    $copy->{sign}  = $x->{sign};
+    $copy->{value} = $LIB->_copy($x->{value});
+    $copy->{_a}    = $x->{_a} if exists $x->{_a};
+    $copy->{_p}    = $x->{_p} if exists $x->{_p};
 
     return $copy;
 }
 
-sub as_number {
-    # An object might be asked to return itself as bigint on certain overloaded
-    # operations. This does exactly this, so that sub classes can simple inherit
-    # it or override with their own integer conversion routine.
-    $_[0]->copy();
+sub as_int {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # If called as an instance method, and the instance class is something we
+    # upgrade to, $x might not be a Math::BigInt, so don't just call copy().
+
+    return $x -> copy() if $x -> isa("Math::BigInt");
+
+    # disable upgrading and downgrading
+
+    my $upg = Math::BigInt -> upgrade();
+    my $dng = Math::BigInt -> downgrade();
+    Math::BigInt -> upgrade(undef);
+    Math::BigInt -> downgrade(undef);
+
+    my $y = Math::BigInt -> new($x);
+
+    # reset upgrading and downgrading
+
+    Math::BigInt -> upgrade($upg);
+    Math::BigInt -> downgrade($dng);
+
+    return $y;
+}
+
+sub as_float {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # disable upgrading and downgrading
+
+    require Math::BigFloat;
+    my $upg = Math::BigFloat -> upgrade();
+    my $dng = Math::BigFloat -> downgrade();
+    Math::BigFloat -> upgrade(undef);
+    Math::BigFloat -> downgrade(undef);
+
+    my $y = Math::BigFloat -> new($x);
+
+    # reset upgrading and downgrading
+
+    Math::BigFloat -> upgrade($upg);
+    Math::BigFloat -> downgrade($dng);
+
+    return $y;
+}
+
+sub as_rat {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # disable upgrading and downgrading
+
+    require Math::BigRat;
+    my $upg = Math::BigRat -> upgrade();
+    my $dng = Math::BigRat -> downgrade();
+    Math::BigRat -> upgrade(undef);
+    Math::BigRat -> downgrade(undef);
+
+    my $y = Math::BigRat -> new($x);
+
+    # reset upgrading and downgrading
+
+    Math::BigRat -> upgrade($upg);
+    Math::BigRat -> downgrade($dng);
+
+    return $y;
 }
 
 ###############################################################################
@@ -1233,7 +1332,7 @@ sub as_number {
 
 sub is_zero {
     # return true if arg (BINT or num_str) is zero (array '+', '0')
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
     $LIB->_is_zero($x->{value});
@@ -1241,22 +1340,22 @@ sub is_zero {
 
 sub is_one {
     # return true if arg (BINT or num_str) is +1, or -1 if sign is given
-    my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
-    $sign = '+' if !defined $sign || $sign ne '-';
+    $sign = '+' if !defined($sign) || $sign ne '-';
 
     return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
     $LIB->_is_one($x->{value});
 }
 
 sub is_finite {
-    my $x = shift;
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
     return $x->{sign} eq '+' || $x->{sign} eq '-';
 }
 
 sub is_inf {
     # return true if arg (BINT or num_str) is +-inf
-    my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my (undef, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     if (defined $sign) {
         $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
@@ -1268,14 +1367,14 @@ sub is_inf {
 
 sub is_nan {
     # return true if arg (BINT or num_str) is NaN
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     $x->{sign} eq $nan ? 1 : 0;
 }
 
 sub is_positive {
     # return true when arg (BINT or num_str) is positive (> 0)
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return 1 if $x->{sign} eq '+inf'; # +inf is positive
 
@@ -1285,14 +1384,14 @@ sub is_positive {
 
 sub is_negative {
     # return true when arg (BINT or num_str) is negative (< 0)
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
 }
 
 sub is_non_negative {
     # Return true if argument is non-negative (>= 0).
-    my ($class, $x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return 1 if $x->{sign} =~ /^\+/;
     return 1 if $x -> is_zero();
@@ -1301,7 +1400,7 @@ sub is_non_negative {
 
 sub is_non_positive {
     # Return true if argument is non-positive (<= 0).
-    my ($class, $x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return 1 if $x->{sign} =~ /^\-/;
     return 1 if $x -> is_zero();
@@ -1310,7 +1409,7 @@ sub is_non_positive {
 
 sub is_odd {
     # return true when arg (BINT or num_str) is odd, false for even
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
     $LIB->_is_odd($x->{value});
@@ -1318,7 +1417,7 @@ sub is_odd {
 
 sub is_even {
     # return true when arg (BINT or num_str) is even, false for odd
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
     $LIB->_is_even($x->{value});
@@ -1326,8 +1425,7 @@ sub is_even {
 
 sub is_int {
     # return true when arg (BINT or num_str) is an integer
-    # always true for Math::BigInt, but different for Math::BigFloat objects
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my (undef, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
 
     $x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
 }
@@ -1341,12 +1439,14 @@ sub bcmp {
     # (BINT or num_str, BINT or num_str) return cond_code
 
     # set up parameters
-    my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
-                        ? (ref($_[0]), @_)
-                        : objectify(2, @_);
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
-    return $upgrade->bcmp($x, $y) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    return $upgrade->bcmp($x, $y)
+      if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
 
     if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
         # handle +-inf and NaN
@@ -1357,6 +1457,7 @@ sub bcmp {
         return -1 if $y->{sign} eq '+inf';
         return +1;
     }
+
     # check sign for speed first
     return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
     return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
@@ -1381,12 +1482,14 @@ sub bacmp {
     # (BINT, BINT) return cond_code
 
     # set up parameters
-    my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
-                        ? (ref($_[0]), @_)
-                        : objectify(2, @_);
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    return $upgrade->bacmp($x, $y) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
+    return $upgrade->bacmp($x, $y)
+      if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
 
     if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
         # handle +-inf and NaN
@@ -1399,69 +1502,68 @@ sub bacmp {
 }
 
 sub beq {
-    my $self    = shift;
-    my $selfref = ref $self;
+    my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                           ? (undef, @_)
+                           : objectify(2, @_);
 
-    croak 'beq() is an instance method, not a class method' unless $selfref;
-    croak 'Wrong number of arguments for beq()' unless @_ == 1;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    my $cmp = $self -> bcmp(shift);
-    return defined($cmp) && ! $cmp;
+    my $cmp = $x -> bcmp($y);           # bcmp() upgrades if necessary
+    return defined($cmp) && !$cmp;
 }
 
 sub bne {
-    my $self    = shift;
-    my $selfref = ref $self;
+    my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                           ? (undef, @_)
+                           : objectify(2, @_);
 
-    croak 'bne() is an instance method, not a class method' unless $selfref;
-    croak 'Wrong number of arguments for bne()' unless @_ == 1;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    my $cmp = $self -> bcmp(shift);
-    return defined($cmp) && ! $cmp ? '' : 1;
+    my $cmp = $x -> bcmp($y);           # bcmp() upgrades if necessary
+    return defined($cmp) && !$cmp ? '' : 1;
 }
 
 sub blt {
-    my $self    = shift;
-    my $selfref = ref $self;
+    my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                           ? (undef, @_)
+                           : objectify(2, @_);
 
-    croak 'blt() is an instance method, not a class method' unless $selfref;
-    croak 'Wrong number of arguments for blt()' unless @_ == 1;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    my $cmp = $self -> bcmp(shift);
+    my $cmp = $x -> bcmp($y);           # bcmp() upgrades if necessary
     return defined($cmp) && $cmp < 0;
 }
 
 sub ble {
-    my $self    = shift;
-    my $selfref = ref $self;
+    my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                           ? (undef, @_)
+                           : objectify(2, @_);
 
-    croak 'ble() is an instance method, not a class method' unless $selfref;
-    croak 'Wrong number of arguments for ble()' unless @_ == 1;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    my $cmp = $self -> bcmp(shift);
+    my $cmp = $x -> bcmp($y);           # bcmp() upgrades if necessary
     return defined($cmp) && $cmp <= 0;
 }
 
 sub bgt {
-    my $self    = shift;
-    my $selfref = ref $self;
+    my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                           ? (undef, @_)
+                           : objectify(2, @_);
 
-    croak 'bgt() is an instance method, not a class method' unless $selfref;
-    croak 'Wrong number of arguments for bgt()' unless @_ == 1;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    my $cmp = $self -> bcmp(shift);
+    my $cmp = $x -> bcmp($y);           # bcmp() upgrades if necessary
     return defined($cmp) && $cmp > 0;
 }
 
 sub bge {
-    my $self    = shift;
-    my $selfref = ref $self;
+    my (undef, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                           ? (undef, @_)
+                           : objectify(2, @_);
 
-    croak 'bge() is an instance method, not a class method'
-        unless $selfref;
-    croak 'Wrong number of arguments for bge()' unless @_ == 1;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    my $cmp = $self -> bcmp(shift);
+    my $cmp = $x -> bcmp($y);           # bcmp() upgrades if necessary
     return defined($cmp) && $cmp >= 0;
 }
 
@@ -1472,84 +1574,104 @@ sub bge {
 sub bneg {
     # (BINT or num_str) return BINT
     # negate number or make a negated number from string
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bneg');
 
-    # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
-    $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{value}));
-    $x;
+    return $upgrade -> bneg($x, @r) if defined($upgrade) && !$x->isa($class);
+
+    # Don't negate +0 so we always have the normalized form +0. Does nothing for
+    # 'NaN'.
+    $x->{sign} =~ tr/+-/-+/
+      unless $x->{sign} eq '+' && $LIB->_is_zero($x->{value});
+
+    $x -> round(@r);
 }
 
 sub babs {
     # (BINT or num_str) return BINT
     # make number absolute, or return absolute BINT from string
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('babs');
-    # post-normalized abs for internal use (does nothing for NaN)
+
+    return $upgrade -> babs($x, @r) if defined($upgrade) && !$x->isa($class);
+
     $x->{sign} =~ s/^-/+/;
-    $x;
+
+    $x -> round(@r);
 }
 
 sub bsgn {
     # Signum function.
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    my $self = shift;
+    return $x if $x->modify('bsgn');
+
+    return $upgrade -> bsgn($x, @r) if defined($upgrade) && !$x->isa($class);
 
-    return $self if $self->modify('bsgn');
+    return $x -> bone("+", @r) if $x -> is_pos();
+    return $x -> bone("-", @r) if $x -> is_neg();
 
-    return $self -> bone("+") if $self -> is_pos();
-    return $self -> bone("-") if $self -> is_neg();
-    return $self;               # zero or NaN
+    $x -> round(@r);
 }
 
 sub bnorm {
     # (numstr or BINT) return BINT
     # Normalize number -- no-op here
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+    # This method is called from the rounding methods, so if this method
+    # supports rounding by calling the rounding methods, we get an infinite
+    # recursion.
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
     $x;
 }
 
 sub binc {
     # increment arg by one
-    my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
     return $x if $x->modify('binc');
 
+    return $x->round(@r) if $x -> is_inf() || $x -> is_nan();
+
+    return $upgrade -> binc($x, @r) if defined($upgrade) && !$x -> isa($class);
+
     if ($x->{sign} eq '+') {
         $x->{value} = $LIB->_inc($x->{value});
-        return $x->round($a, $p, $r);
     } elsif ($x->{sign} eq '-') {
         $x->{value} = $LIB->_dec($x->{value});
         $x->{sign} = '+' if $LIB->_is_zero($x->{value}); # -1 +1 => -0 => +0
-        return $x->round($a, $p, $r);
     }
-    # inf, nan handling etc
-    $x->badd($class->bone(), $a, $p, $r); # badd does round
+
+    return $x->round(@r);
 }
 
 sub bdec {
     # decrement arg by one
     my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
     return $x if $x->modify('bdec');
 
+    return $x->round(@r) if $x -> is_inf() || $x -> is_nan();
+
+    return $upgrade -> bdec($x, @r) if defined($upgrade) && !$x -> isa($class);;
+
     if ($x->{sign} eq '-') {
-        # x already < 0
         $x->{value} = $LIB->_inc($x->{value});
-    } else {
-        return $x->badd($class->bone('-'), @r)
-          unless $x->{sign} eq '+'; # inf or NaN
-        # >= 0
-        if ($LIB->_is_zero($x->{value})) {
-            # == 0
+    } elsif ($x->{sign} eq '+') {
+        if ($LIB->_is_zero($x->{value})) {      # +1 - 1 => +0
             $x->{value} = $LIB->_one();
-            $x->{sign} = '-'; # 0 => -1
+            $x->{sign} = '-';
         } else {
-            # > 0
             $x->{value} = $LIB->_dec($x->{value});
         }
     }
-    $x->round(@r);
+
+    return $x->round(@r);
 }
 
 #sub bstrcmp {
@@ -1643,56 +1765,41 @@ sub bdec {
 #}
 
 sub badd {
-
     # add second arg (BINT or string) to first (BINT) (modifies first)
     # return result as BINT
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('badd');
-    return $upgrade->badd($upgrade->new($x), $upgrade->new($y), @r) if defined $upgrade &&
-      ((!$x->isa($class)) || (!$y->isa($class)));
 
     $r[3] = $y;                 # no push!
-    # inf and NaN handling
+
+    return $upgrade->badd($x, $y, @r)
+      if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
+
+    # Inf and NaN handling
     if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
         # NaN first
-        return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
-        # inf handling
+        return $x->bnan(@r) if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+        # Inf handling
         if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
-            # +inf++inf or -inf+-inf => same, rest is NaN
-            return $x if $x->{sign} eq $y->{sign};
-            return $x->bnan();
-        }
-        # +-inf + something => +inf
-        # something +-inf => +-inf
-        $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
-        return $x;
-    }
-
-    my ($sx, $sy) = ($x->{sign}, $y->{sign});  # get signs
-
-    if ($sx eq $sy) {
-        $x->{value} = $LIB->_add($x->{value}, $y->{value}); # same sign, abs add
-    } else {
-        my $a = $LIB->_acmp ($y->{value}, $x->{value}); # absolute compare
-        if ($a > 0) {
-            $x->{value} = $LIB->_sub($y->{value}, $x->{value}, 1); # abs sub w/ swap
-            $x->{sign} = $sy;
-        } elsif ($a == 0) {
-            # speedup, if equal, set result to 0
-            $x->{value} = $LIB->_zero();
-            $x->{sign} = '+';
-        } else                  # a < 0
-        {
-            $x->{value} = $LIB->_sub($x->{value}, $y->{value}); # abs sub
+            # +Inf + +Inf or -Inf + -Inf => same, rest is NaN
+            return $x->round(@r) if $x->{sign} eq $y->{sign};
+            return $x->bnan(@r);
+        }
+        # ±Inf + something => ±Inf
+        # something + ±Inf => ±Inf
+        if ($y->{sign} =~ /^[+-]inf$/) {
+            $x->{sign} = $y->{sign};
         }
+        return $x -> round(@r);
     }
+
+    ($x->{value}, $x->{sign})
+      = $LIB -> _sadd($x->{value}, $x->{sign}, $y->{value}, $y->{sign});
     $x->round(@r);
 }
 
@@ -1701,17 +1808,14 @@ sub bsub {
     # subtract second arg from first, modify first
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('bsub');
 
-    return $upgrade -> bsub($upgrade -> new($x), $upgrade -> new($y), @r)
-      if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
+    return $upgrade -> bsub($x, $y, @r)
+      if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
 
     return $x -> round(@r) if $y -> is_zero();
 
@@ -1724,9 +1828,10 @@ sub bsub {
     if ($xsign ne $x -> {sign}) {
         # special case of $x -> bsub($x) results in 0
         return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
-        return $x -> bnan();    # NaN, -inf, +inf
+        return $x -> bnan(@r);    # NaN, -inf, +inf
     }
-    $x -> badd($y, @r);         # badd does not leave internal zeros
+
+    $x = $x -> badd($y, @r);    # badd() does not leave internal zeros
     $y -> {sign} =~ tr/+-/-+/;  # refix $y (does nothing for NaN)
     $x;                         # already rounded by badd() or no rounding
 }
@@ -1736,29 +1841,27 @@ sub bmul {
     # (BINT or num_str, BINT or num_str) return BINT
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('bmul');
 
-    return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+    return $x->bnan(@r) if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
 
     # inf handling
     if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
-        return $x->bnan() if $x->is_zero() || $y->is_zero();
+        return $x->bnan(@r) if $x->is_zero() || $y->is_zero();
         # result will always be +-inf:
         # +inf * +/+inf => +inf, -inf * -/-inf => +inf
         # +inf * -/-inf => -inf, -inf * +/+inf => -inf
-        return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
-        return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
-        return $x->binf('-');
+        return $x->binf(@r) if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+        return $x->binf(@r) if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+        return $x->binf('-', @r);
     }
 
-    return $upgrade->bmul($x, $upgrade->new($y), @r)
-      if defined $upgrade && !$y->isa($class);
+    return $upgrade->bmul($x, $y, @r)
+      if defined($upgrade) && (!$x->isa($class) || !$y->isa($class));
 
     $r[3] = $y;                 # no push here
 
@@ -1775,60 +1878,143 @@ sub bmuladd {
     # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT
 
     # set up parameters
-    my ($class, $x, $y, $z, @r) = objectify(3, @_);
+    my ($class, $x, $y, $z, @r)
+      = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+      ? (ref($_[0]), @_)
+      : objectify(3, @_);
 
     return $x if $x->modify('bmuladd');
 
-    return $x->bnan() if (($x->{sign} eq $nan) ||
-                          ($y->{sign} eq $nan) ||
-                          ($z->{sign} eq $nan));
+    # x, y, and z are finite numbers
 
-    # inf handling of x and y
-    if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
-        return $x->bnan() if $x->is_zero() || $y->is_zero();
-        # result will always be +-inf:
-        # +inf * +/+inf => +inf, -inf * -/-inf => +inf
-        # +inf * -/-inf => -inf, -inf * +/+inf => -inf
-        return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
-        return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
-        return $x->binf('-');
-    }
-    # inf handling x*y and z
-    if (($z->{sign} =~ /^[+-]inf$/)) {
-        # something +-inf => +-inf
-        $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+    if ($x->{sign} =~ /^[+-]$/ &&
+        $y->{sign} =~ /^[+-]$/ &&
+        $z->{sign} =~ /^[+-]$/)
+    {
+        return $upgrade->bmuladd($x, $y, $z, @r)
+          if defined($upgrade)
+               && (!$x->isa($class) || !$y->isa($class) || !$z->isa($class));
+
+        # TODO: what if $y and $z have A or P set?
+        $r[3] = $z;             # no push here
+
+        my $zs = $z->{sign};
+        my $zv = $z->{value};
+        $zv = $LIB -> _copy($zv) if refaddr($x) eq refaddr($z);
+
+        $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+        $x->{value} = $LIB->_mul($x->{value}, $y->{value}); # do actual math
+        $x->{sign} = '+' if $LIB->_is_zero($x->{value});    # no -0
+
+        ($x->{value}, $x->{sign})
+          = $LIB -> _sadd($x->{value}, $x->{sign}, $zv, $zs);
+        return $x->round(@r);
     }
 
-    return $upgrade->bmuladd($x, $upgrade->new($y), $upgrade->new($z), @r)
-      if defined $upgrade && (!$y->isa($class) || !$z->isa($class) || !$x->isa($class));
+    # At least one of x, y, and z is a NaN
 
-    # TODO: what if $y and $z have A or P set?
-    $r[3] = $z;                 # no push here
+    return $x->bnan(@r) if (($x->{sign} eq $nan) ||
+                            ($y->{sign} eq $nan) ||
+                            ($z->{sign} eq $nan));
 
-    $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+    # At least one of x, y, and z is an Inf
 
-    $x->{value} = $LIB->_mul($x->{value}, $y->{value}); # do actual math
-    $x->{sign} = '+' if $LIB->_is_zero($x->{value});   # no -0
+    if ($x->{sign} eq "-inf") {
+
+        if ($y -> is_neg()) {               # x = -inf, y < 0
+            if ($z->{sign} eq "-inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("+", @r);
+            }
+        } elsif ($y -> is_zero()) {         # x = -inf, y = 0
+            return $x->bnan(@r);
+        } else {                            # x = -inf, y > 0
+            if ($z->{sign} eq "+inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("-", @r);
+            }
+        }
 
-    my ($sx, $sz) = ( $x->{sign}, $z->{sign} ); # get signs
+    } elsif ($x->{sign} eq "+inf") {
 
-    if ($sx eq $sz) {
-        $x->{value} = $LIB->_add($x->{value}, $z->{value}); # same sign, abs add
-    } else {
-        my $a = $LIB->_acmp ($z->{value}, $x->{value}); # absolute compare
-        if ($a > 0) {
-            $x->{value} = $LIB->_sub($z->{value}, $x->{value}, 1); # abs sub w/ swap
-            $x->{sign} = $sz;
-        } elsif ($a == 0) {
-            # speedup, if equal, set result to 0
-            $x->{value} = $LIB->_zero();
-            $x->{sign} = '+';
-        } else                  # a < 0
-        {
-            $x->{value} = $LIB->_sub($x->{value}, $z->{value}); # abs sub
+        if ($y -> is_neg()) {               # x = +inf, y < 0
+            if ($z->{sign} eq "+inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("-", @r);
+            }
+        } elsif ($y -> is_zero()) {         # x = +inf, y = 0
+            return $x->bnan(@r);
+        } else {                            # x = +inf, y > 0
+            if ($z->{sign} eq "-inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("+", @r);
+            }
+        }
+
+    } elsif ($x -> is_neg()) {
+
+        if ($y->{sign} eq "-inf") {         # -inf < x < 0, y = -inf
+            if ($z->{sign} eq "-inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("+", @r);
+            }
+        } elsif ($y->{sign} eq "+inf") {    # -inf < x < 0, y = +inf
+            if ($z->{sign} eq "+inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("-", @r);
+            }
+        } else {                            # -inf < x < 0, -inf < y < +inf
+            if ($z->{sign} eq "-inf") {
+                return $x->binf("-", @r);
+            } elsif ($z->{sign} eq "+inf") {
+                return $x->binf("+", @r);
+            }
+        }
+
+    } elsif ($x -> is_zero()) {
+
+        if ($y->{sign} eq "-inf") {         # x = 0, y = -inf
+            return $x->bnan(@r);
+        } elsif ($y->{sign} eq "+inf") {    # x = 0, y = +inf
+            return $x->bnan(@r);
+        } else {                            # x = 0, -inf < y < +inf
+            if ($z->{sign} eq "-inf") {
+                return $x->binf("-", @r);
+            } elsif ($z->{sign} eq "+inf") {
+                return $x->binf("+", @r);
+            }
+        }
+
+    } elsif ($x -> is_pos()) {
+
+        if ($y->{sign} eq "-inf") {         # 0 < x < +inf, y = -inf
+            if ($z->{sign} eq "+inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("-", @r);
+            }
+        } elsif ($y->{sign} eq "+inf") {    # 0 < x < +inf, y = +inf
+            if ($z->{sign} eq "-inf") {
+                return $x->bnan(@r);
+            } else {
+                return $x->binf("+", @r);
+            }
+        } else {                            # 0 < x < +inf, -inf < y < +inf
+            if ($z->{sign} eq "-inf") {
+                return $x->binf("-", @r);
+            } elsif ($z->{sign} eq "+inf") {
+                return $x->binf("+", @r);
+            }
         }
     }
-    $x->round(@r);
+
+    die;
 }
 
 sub bdiv {
@@ -1837,12 +2023,9 @@ sub bdiv {
     # sign as the divisor.
 
     # Set up parameters.
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify() is costly, so avoid it if we can.
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('bdiv');
 
@@ -1852,7 +2035,8 @@ sub bdiv {
     # modulo/remainder.
 
     if ($x -> is_nan() || $y -> is_nan()) {
-        return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+        return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r))
+                          : $x -> bnan(@r);
     }
 
     # Divide by zero and modulo zero.
@@ -1875,12 +2059,12 @@ sub bdiv {
     if ($y -> is_zero()) {
         my $rem;
         if ($wantarray) {
-            $rem = $x -> copy();
+            $rem = $x -> copy() -> round(@r);
         }
         if ($x -> is_zero()) {
-            $x -> bnan();
+            $x = $x -> bnan(@r);
         } else {
-            $x -> binf($x -> {sign});
+            $x = $x -> binf($x -> {sign}, @r);
         }
         return $wantarray ? ($x, $rem) : $x;
     }
@@ -1901,12 +2085,12 @@ sub bdiv {
 
     if ($x -> is_inf()) {
         my $rem;
-        $rem = $class -> bnan() if $wantarray;
+        $rem = $class -> bnan(@r) if $wantarray;
         if ($y -> is_inf()) {
-            $x -> bnan();
+            $x = $x -> bnan(@r);
         } else {
             my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
-            $x -> binf($sign);
+            $x = $x -> binf($sign, @r);
         }
         return $wantarray ? ($x, $rem) : $x;
     }
@@ -1927,11 +2111,11 @@ sub bdiv {
     if ($y -> is_inf()) {
         my $rem;
         if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
-            $rem = $x -> copy() if $wantarray;
-            $x -> bzero();
+            $rem = $x -> copy() -> round(@r) if $wantarray;
+            $x = $x -> bzero(@r);
         } else {
-            $rem = $class -> binf($y -> {sign}) if $wantarray;
-            $x -> bone('-');
+            $rem = $class -> binf($y -> {sign}, @r) if $wantarray;
+            $x = $x -> bone('-', @r);
         }
         return $wantarray ? ($x, $rem) : $x;
     }
@@ -1939,8 +2123,10 @@ sub bdiv {
     # At this point, both the numerator and denominator are finite numbers, and
     # the denominator (divisor) is non-zero.
 
-    return $upgrade -> bdiv($upgrade -> new($x), $upgrade -> new($y), @r)
-      if defined $upgrade;
+    # Division might return a non-integer result, so upgrade unconditionally, if
+    # upgrading is enabled.
+
+    return $upgrade -> bdiv($x, $y, @r) if defined $upgrade;
 
     $r[3] = $y;                                   # no push!
 
@@ -1959,7 +2145,7 @@ sub bdiv {
     $y -> {sign} = $ysign;                # Re-insert the original sign.
 
     if ($same) {
-        $x -> bone();
+        $x = $x -> bone();
     } else {
         ($x -> {value}, $rem -> {value}) =
           $LIB -> _div($x -> {value}, $y -> {value});
@@ -1975,16 +2161,16 @@ sub bdiv {
                 $x -> {sign} = '+';
             } else {
                 if ($xsign eq '+') {
-                    $x -> badd(1);
+                    $x = $x -> badd(1);
                 } else {
-                    $x -> bsub(1);
+                    $x = $x -> bsub(1);
                 }
                 $x -> {sign} = '-';
             }
         }
     }
 
-    $x -> round(@r);
+    $x = $x -> round(@r);
 
     if ($wantarray) {
         unless ($LIB -> _is_zero($rem -> {value})) {
@@ -1995,7 +2181,7 @@ sub bdiv {
         }
         $rem -> {_a} = $x -> {_a};
         $rem -> {_p} = $x -> {_p};
-        $rem -> round(@r);
+        $rem = $rem -> round(@r);
         return ($x, $rem);
     }
 
@@ -2010,12 +2196,9 @@ sub btdiv {
     # and $q * $y + $r = $x.
 
     # Set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it if we can.
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('btdiv');
 
@@ -2025,7 +2208,8 @@ sub btdiv {
     # modulo/remainder.
 
     if ($x -> is_nan() || $y -> is_nan()) {
-        return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+        return $wantarray ? ($x -> bnan(@r), $class -> bnan(@r))
+                          : $x -> bnan(@r);
     }
 
     # Divide by zero and modulo zero.
@@ -2048,12 +2232,12 @@ sub btdiv {
     if ($y -> is_zero()) {
         my $rem;
         if ($wantarray) {
-            $rem = $x -> copy();
+            $rem = $x -> copy(@r);
         }
         if ($x -> is_zero()) {
-            $x -> bnan();
+            $x = $x -> bnan(@r);
         } else {
-            $x -> binf($x -> {sign});
+            $x = $x -> binf($x -> {sign}, @r);
         }
         return $wantarray ? ($x, $rem) : $x;
     }
@@ -2074,12 +2258,12 @@ sub btdiv {
 
     if ($x -> is_inf()) {
         my $rem;
-        $rem = $class -> bnan() if $wantarray;
+        $rem = $class -> bnan(@r) if $wantarray;
         if ($y -> is_inf()) {
-            $x -> bnan();
+            $x = $x -> bnan(@r);
         } else {
             my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
-            $x -> binf($sign);
+            $x = $x -> binf($sign,@r );
         }
         return $wantarray ? ($x, $rem) : $x;
     }
@@ -2099,13 +2283,15 @@ sub btdiv {
 
     if ($y -> is_inf()) {
         my $rem;
-        $rem = $x -> copy() if $wantarray;
-        $x -> bzero();
+        $rem = $x -> copy() -> round(@r) if $wantarray;
+        $x = $x -> bzero(@r);
         return $wantarray ? ($x, $rem) : $x;
     }
 
-    return $upgrade -> btdiv($upgrade -> new($x), $upgrade -> new($y), @r)
-      if defined $upgrade;
+    # Division might return a non-integer result, so upgrade unconditionally, if
+    # upgrading is enabled.
+
+    return $upgrade -> btdiv($x, $y, @r) if defined $upgrade;
 
     $r[3] = $y;                 # no push!
 
@@ -2124,14 +2310,14 @@ sub btdiv {
     $y -> {sign} = $ysign;                # Re-insert the original sign.
 
     if ($same) {
-        $x -> bone();
+        $x = $x -> bone(@r);
     } else {
         ($x -> {value}, $rem -> {value}) =
           $LIB -> _div($x -> {value}, $y -> {value});
 
         $x -> {sign} = $xsign eq $ysign ? '+' : '-';
         $x -> {sign} = '+' if $LIB -> _is_zero($x -> {value});
-        $x -> round(@r);
+        $x = $x -> round(@r);
     }
 
     if (wantarray) {
@@ -2139,7 +2325,7 @@ sub btdiv {
         $rem -> {sign} = '+' if $LIB -> _is_zero($rem -> {value});
         $rem -> {_a} = $x -> {_a};
         $rem -> {_p} = $x -> {_p};
-        $rem -> round(@r);
+        $rem = $rem -> round(@r);
         return ($x, $rem);
     }
 
@@ -2150,44 +2336,45 @@ sub bmod {
     # This is the remainder after floored division.
 
     # Set up parameters.
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('bmod');
+
     $r[3] = $y;                 # no push!
 
     # At least one argument is NaN.
 
     if ($x -> is_nan() || $y -> is_nan()) {
-        return $x -> bnan();
+        return $x -> bnan(@r);
     }
 
     # Modulo zero. See documentation for bdiv().
 
     if ($y -> is_zero()) {
-        return $x;
+        return $x -> round(@r);
     }
 
     # Numerator (dividend) is +/-inf.
 
     if ($x -> is_inf()) {
-        return $x -> bnan();
+        return $x -> bnan(@r);
     }
 
     # Denominator (divisor) is +/-inf.
 
     if ($y -> is_inf()) {
         if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
-            return $x;
+            return $x -> round(@r);
         } else {
-            return $x -> binf($y -> sign());
+            return $x -> binf($y -> sign(), @r);
         }
     }
 
+    return $upgrade -> bmod($x, $y, @r)
+      if defined($upgrade) && (!$x -> isa($class) || !$y -> isa($class));
+
     # Calc new sign and in case $y == +/- 1, return $x.
 
     $x -> {value} = $LIB -> _mod($x -> {value}, $y -> {value});
@@ -2206,41 +2393,38 @@ sub btmod {
     # Remainder after truncated division.
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('btmod');
 
     # At least one argument is NaN.
 
     if ($x -> is_nan() || $y -> is_nan()) {
-        return $x -> bnan();
+        return $x -> bnan(@r);
     }
 
     # Modulo zero. See documentation for btdiv().
 
     if ($y -> is_zero()) {
-        return $x;
+        return $x -> round(@r);
     }
 
     # Numerator (dividend) is +/-inf.
 
     if ($x -> is_inf()) {
-        return $x -> bnan();
+        return $x -> bnan(@r);
     }
 
     # Denominator (divisor) is +/-inf.
 
     if ($y -> is_inf()) {
-        return $x;
+        return $x -> round(@r);
     }
 
-    return $upgrade -> btmod($upgrade -> new($x), $upgrade -> new($y), @r)
-      if defined $upgrade;
+    return $upgrade -> btmod($x, $y, @r)
+      if defined($upgrade) && (!$x -> isa($class) || !$y -> isa($class));
 
     $r[3] = $y;                 # no push!
 
@@ -2251,7 +2435,6 @@ sub btmod {
     $x -> {sign} = $xsign;
     $x -> {sign} = '+' if $LIB -> _is_zero($x -> {value});
     $x -> round(@r);
-    return $x;
 }
 
 sub bmodinv {
@@ -2267,28 +2450,29 @@ sub bmodinv {
     # If no modular multiplicative inverse exists, NaN is returned.
 
     # set up parameters
-    my ($class, $x, $y, @r) = (undef, @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x->modify('bmodinv');
 
     # Return NaN if one or both arguments is +inf, -inf, or nan.
 
-    return $x->bnan() if ($y->{sign} !~ /^[+-]$/ ||
-                          $x->{sign} !~ /^[+-]$/);
+    return $x->bnan(@r) if ($y->{sign} !~ /^[+-]$/ ||
+                            $x->{sign} !~ /^[+-]$/);
 
     # Return NaN if $y is zero; 1 % 0 makes no sense.
 
-    return $x->bnan() if $y->is_zero();
+    return $x->bnan(@r) if $y->is_zero();
 
     # Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite
     # integers $x.
 
-    return $x->bzero() if ($y->is_one() ||
-                           $y->is_one('-'));
+    return $x->bzero(@r) if ($y->is_one('+') ||
+                             $y->is_one('-'));
+
+    return $upgrade -> bmodinv($x, $y, @r)
+      if defined($upgrade) && (!$x -> isa($class) || !$y -> isa($class));
 
     # Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when
     # $x = 0 is when $y = 1 or $y = -1, but that was covered above.
@@ -2299,14 +2483,14 @@ sub bmodinv {
     # $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7.
     # The value if $x is affected only when $x and $y have opposite signs.
 
-    $x->bmod($y);
-    return $x->bnan() if $x->is_zero();
+    $x = $x->bmod($y);
+    return $x->bnan(@r) if $x->is_zero();
 
     # Compute the modular multiplicative inverse of the absolute values. We'll
     # correct for the signs of $x and $y later. Return NaN if no GCD is found.
 
     ($x->{value}, $x->{sign}) = $LIB->_modinv($x->{value}, $y->{value});
-    return $x->bnan() if !defined $x->{value};
+    return $x->bnan(@r) if !defined($x->{value});
 
     # Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions
     # <= 1.32 return undef rather than a "+" for the sign.
@@ -2325,20 +2509,23 @@ sub bmodinv {
     # inverse modulo. The net effect is that we must swap the sign of the
     # result if $y is negative.
 
-    $x -> bneg() if $y->{sign} eq '-';
+    $x = $x -> bneg() if $y->{sign} eq '-';
 
     # Compute $x modulo $y again after correcting the sign.
 
-    $x -> bmod($y) if $x->{sign} ne $y->{sign};
+    $x = $x -> bmod($y) if $x->{sign} ne $y->{sign};
 
-    return $x;
+    $x -> round(@r);
 }
 
 sub bmodpow {
-    # Modular exponentiation. Raises a very large number to a very large exponent
-    # in a given very large modulus quickly, thanks to binary exponentiation.
-    # Supports negative exponents.
-    my ($class, $num, $exp, $mod, @r) = objectify(3, @_);
+    # Modular exponentiation. Raises a very large number to a very large
+    # exponent in a given very large modulus quickly, thanks to binary
+    # exponentiation.  Supports negative exponents.
+    my ($class, $num, $exp, $mod, @r)
+      = ref($_[0]) && ref($_[0]) eq ref($_[1]) && ref($_[1]) eq ref($_[2])
+      ? (ref($_[0]), @_)
+      : objectify(3, @_);
 
     return $num if $num->modify('bmodpow');
 
@@ -2347,25 +2534,30 @@ sub bmodpow {
     #
     #    b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m)
 
-    $num->bmodinv($mod) if ($exp->{sign} eq '-');
+    $num = $num -> bmodinv($mod) if ($exp->{sign} eq '-');
 
-    # Check for valid input. All operands must be finite, and the modulus must be
-    # non-zero.
+    # Check for valid input. All operands must be finite, and the modulus must
+    # be non-zero.
 
-    return $num->bnan() if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
-                            $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
-                            $mod->{sign} =~ /NaN|inf/);  # NaN, -inf, +inf
+    return $num->bnan(@r) if ($num->{sign} =~ /NaN|inf/ ||  # NaN, -inf, +inf
+                              $exp->{sign} =~ /NaN|inf/ ||  # NaN, -inf, +inf
+                              $mod->{sign} =~ /NaN|inf/);   # NaN, -inf, +inf
 
     # Modulo zero. See documentation for Math::BigInt's bmod() method.
 
     if ($mod -> is_zero()) {
         if ($num -> is_zero()) {
-            return $class -> bnan();
+            return $class -> bnan(@r);
         } else {
-            return $num -> copy();
+            return $num -> copy(@r);
         }
     }
 
+    return $upgrade -> bmodinv($num, $exp, $mod, @r)
+      if defined($upgrade) && (!$num -> isa($class) ||
+                               !$exp -> isa($class) ||
+                               !$mod -> ($class));
+
     # Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting
     # value is zero, the output is also zero, regardless of the signs on 'a' and
     # 'm'.
@@ -2438,62 +2630,60 @@ sub bpow {
     # modifies first argument
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
     return $x if $x -> modify('bpow');
 
     # $x and/or $y is a NaN
-    return $x -> bnan() if $x -> is_nan() || $y -> is_nan();
+    return $x -> bnan(@r) if $x -> is_nan() || $y -> is_nan();
 
     # $x and/or $y is a +/-Inf
     if ($x -> is_inf("-")) {
-        return $x -> bzero()   if $y -> is_negative();
-        return $x -> bnan()    if $y -> is_zero();
-        return $x            if $y -> is_odd();
-        return $x -> bneg();
+        return $x -> bzero(@r)      if $y -> is_negative();
+        return $x -> bnan(@r)       if $y -> is_zero();
+        return $x -> round(@r)      if $y -> is_odd();
+        return $x -> bneg(@r);
     } elsif ($x -> is_inf("+")) {
-        return $x -> bzero()   if $y -> is_negative();
-        return $x -> bnan()    if $y -> is_zero();
-        return $x;
+        return $x -> bzero(@r)      if $y -> is_negative();
+        return $x -> bnan(@r)       if $y -> is_zero();
+        return $x -> round(@r);
     } elsif ($y -> is_inf("-")) {
-        return $x -> bnan()    if $x -> is_one("-");
-        return $x -> binf("+") if $x -> is_zero();
-        return $x -> bone()    if $x -> is_one("+");
-        return $x -> bzero();
+        return $x -> bnan(@r)       if $x -> is_one("-");
+        return $x -> binf("+", @r)  if $x -> is_zero();
+        return $x -> bone(@r)       if $x -> is_one("+");
+        return $x -> bzero(@r);
     } elsif ($y -> is_inf("+")) {
-        return $x -> bnan()    if $x -> is_one("-");
-        return $x -> bzero()   if $x -> is_zero();
-        return $x -> bone()    if $x -> is_one("+");
-        return $x -> binf("+");
+        return $x -> bnan(@r)       if $x -> is_one("-");
+        return $x -> bzero(@r)      if $x -> is_zero();
+        return $x -> bone(@r)       if $x -> is_one("+");
+        return $x -> binf("+", @r);
     }
 
     if ($x -> is_zero()) {
-        return $x -> bone() if $y -> is_zero();
-        return $x -> binf() if $y -> is_negative();
-        return $x;
+        return $x -> bone(@r) if $y -> is_zero();
+        return $x -> binf(@r) if $y -> is_negative();
+        return $x -> round(@r);
     }
 
     if ($x -> is_one("+")) {
-        return $x;
+        return $x -> round(@r);
     }
 
     if ($x -> is_one("-")) {
-        return $x if $y -> is_odd();
-        return $x -> bneg();
+        return $x -> round(@r) if $y -> is_odd();
+        return $x -> bneg(@r);
     }
 
-    # We don't support finite non-integers, so upgrade or return zero. The
-    # reason for returning zero, not NaN, is that all output is in the open
-    # interval (0,1), and truncating that to integer gives zero.
+    return $upgrade -> bpow($x, $y, @r) if defined $upgrade;
+
+    # We don't support finite non-integers, so return zero. The reason for
+    # returning zero, not NaN, is that all output is in the open interval (0,1),
+    # and truncating that to integer gives zero.
 
     if ($y->{sign} eq '-' || !$y -> isa($class)) {
-        return $upgrade -> bpow($upgrade -> new($x), $y, @r)
-          if defined $upgrade;
-        return $x -> bzero();
+        return $x -> bzero(@r);
     }
 
     $r[3] = $y;                 # no push!
@@ -2513,12 +2703,12 @@ sub blog {
     # Don't objectify the base, since an undefined base, as in $x->blog() or
     # $x->blog(undef) signals that the base is Euler's number.
 
-    if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+    if (!ref($_[0]) && $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i) {
         # E.g., Math::BigInt->blog(256, 2)
         ($class, $x, $base, @r) =
           defined $_[2] ? objectify(2, @_) : objectify(1, @_);
     } else {
-        # E.g., Math::BigInt::blog(256, 2) or $x->blog(2)
+        # E.g., $x->blog(2) or the deprecated Math::BigInt::blog(256, 2)
         ($class, $x, $base, @r) =
           defined $_[1] ? objectify(2, @_) : objectify(1, @_);
     }
@@ -2528,80 +2718,70 @@ sub blog {
     # Handle all exception cases and all trivial cases. I have used Wolfram
     # Alpha (http://www.wolframalpha.com) as the reference for these cases.
 
-    return $x -> bnan() if $x -> is_nan();
+    return $x -> bnan(@r) if $x -> is_nan();
 
     if (defined $base) {
         $base = $class -> new($base) unless ref $base;
         if ($base -> is_nan() || $base -> is_one()) {
-            return $x -> bnan();
+            return $x -> bnan(@r);
         } elsif ($base -> is_inf() || $base -> is_zero()) {
-            return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
-            return $x -> bzero();
-        } elsif ($base -> is_negative()) {        # -inf < base < 0
-            return $x -> bzero() if $x -> is_one(); #     x = 1
-            return $x -> bone()  if $x == $base;    #     x = base
-            return $x -> bnan();                    #     otherwise
+            return $x -> bnan(@r) if $x -> is_inf() || $x -> is_zero();
+            return $x -> bzero(@r);
+        } elsif ($base -> is_negative()) {              # -inf < base < 0
+            return $x -> bzero(@r) if $x -> is_one();   #     x = 1
+            return $x -> bone(@r)  if $x == $base;      #     x = base
+            return $x -> bnan(@r);                      #     otherwise
         }
-        return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
+        return $x -> bone(@r) if $x == $base;   # 0 < base && 0 < x < inf
     }
 
     # We now know that the base is either undefined or >= 2 and finite.
 
-    return $x -> binf('+') if $x -> is_inf(); #   x = +/-inf
-    return $x -> bnan()    if $x -> is_neg(); #   -inf < x < 0
-    return $x -> bzero()   if $x -> is_one(); #   x = 1
-    return $x -> binf('-') if $x -> is_zero(); #   x = 0
+    return $x -> binf('+', @r) if $x -> is_inf();       #   x = +/-inf
+    return $x -> bnan(@r)      if $x -> is_neg();       #   -inf < x < 0
+    return $x -> bzero(@r)     if $x -> is_one();       #   x = 1
+    return $x -> binf('-', @r) if $x -> is_zero();      #   x = 0
 
     # At this point we are done handling all exception cases and trivial cases.
 
-    return $upgrade -> blog($upgrade -> new($x), $base, @r) if defined $upgrade;
+    return $upgrade -> blog($x, $base, @r) if defined $upgrade;
 
     # fix for bug #24969:
     # the default base is e (Euler's number) which is not an integer
     if (!defined $base) {
         require Math::BigFloat;
-        my $u = Math::BigFloat->blog(Math::BigFloat->new($x))->as_int();
+        my $u = Math::BigFloat->blog($x)->as_int();
         # modify $x in place
         $x->{value} = $u->{value};
         $x->{sign} = $u->{sign};
-        return $x;
+        return $x -> round(@r);
     }
 
     my ($rc) = $LIB->_log_int($x->{value}, $base->{value});
-    return $x->bnan() unless defined $rc; # not possible to take log?
+    return $x->bnan(@r) unless defined $rc; # not possible to take log?
     $x->{value} = $rc;
-    $x->round(@r);
+    $x = $x -> round(@r);
 }
 
 sub bexp {
     # Calculate e ** $x (Euler's number to the power of X), truncated to
     # an integer value.
     my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
     return $x if $x->modify('bexp');
 
     # inf, -inf, NaN, <0 => NaN
-    return $x->bnan() if $x->{sign} eq 'NaN';
-    return $x->bone() if $x->is_zero();
-    return $x if $x->{sign} eq '+inf';
-    return $x->bzero() if $x->{sign} eq '-inf';
+    return $x -> bnan(@r)  if $x->{sign} eq 'NaN';
+    return $x -> bone(@r)  if $x->is_zero();
+    return $x -> round(@r) if $x->{sign} eq '+inf';
+    return $x -> bzero(@r) if $x->{sign} eq '-inf';
 
-    my $u;
-    {
-        # run through Math::BigFloat unless told otherwise
-        require Math::BigFloat unless defined $upgrade;
-        local $upgrade = 'Math::BigFloat' unless defined $upgrade;
-        # calculate result, truncate it to integer
-        $u = $upgrade->bexp($upgrade->new($x), @r);
-    }
+    return $upgrade -> bexp($x, @r) if defined $upgrade;
 
-    if (defined $upgrade) {
-        $x = $u;
-    } else {
-        $u = $u->as_int();
-        # modify $x in place
-        $x->{value} = $u->{value};
-        $x->round(@r);
-    }
+    require Math::BigFloat;
+    my $tmp = Math::BigFloat -> bexp($x, @r) -> as_int();
+    $x->{value} = $tmp->{value};
+    return $x -> round(@r);
 }
 
 sub bnok {
@@ -2609,49 +2789,51 @@ sub bnok {
     # integer.
 
     # Set up parameters.
-    my ($self, $n, $k, @r) = (ref($_[0]), @_);
+    my ($class, $n, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_)
+                            : objectify(2, @_);
 
-    # Objectify is costly, so avoid it.
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($self, $n, $k, @r) = objectify(2, @_);
-    }
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $n if $n->modify('bnok');
 
     # All cases where at least one argument is NaN.
 
-    return $n->bnan() if $n->{sign} eq 'NaN' || $k->{sign} eq 'NaN';
+    return $n->bnan(@r) if $n->{sign} eq 'NaN' || $k->{sign} eq 'NaN';
 
     # All cases where at least one argument is +/-inf.
 
     if ($n -> is_inf()) {
         if ($k -> is_inf()) {                   # bnok(+/-inf,+/-inf)
-            return $n -> bnan();
+            return $n -> bnan(@r);
         } elsif ($k -> is_neg()) {              # bnok(+/-inf,k), k < 0
-            return $n -> bzero();
+            return $n -> bzero(@r);
         } elsif ($k -> is_zero()) {             # bnok(+/-inf,k), k = 0
-            return $n -> bone();
+            return $n -> bone(@r);
         } else {
-            if ($n -> is_inf("+")) {            # bnok(+inf,k), 0 < k < +inf
+            if ($n -> is_inf("+", @r)) {        # bnok(+inf,k), 0 < k < +inf
                 return $n -> binf("+");
             } else {                            # bnok(-inf,k), k > 0
                 my $sign = $k -> is_even() ? "+" : "-";
-                return $n -> binf($sign);
+                return $n -> binf($sign, @r);
             }
         }
     }
 
     elsif ($k -> is_inf()) {            # bnok(n,+/-inf), -inf <= n <= inf
-        return $n -> bnan();
+        return $n -> bnan(@r);
     }
 
     # At this point, both n and k are real numbers.
 
+    return $upgrade -> bnok($n, $k, @r)
+      if defined($upgrade) && (!$n -> isa($class) || !$k -> isa($class));
+
     my $sign = 1;
 
     if ($n >= 0) {
         if ($k < 0 || $k > $n) {
-            return $n -> bzero();
+            return $n -> bzero(@r);
         }
     } else {
 
@@ -2660,7 +2842,7 @@ sub bnok {
             # n < 0 and k >= 0: bnok(n,k) = (-1)^k * bnok(-n+k-1,k)
 
             $sign = (-1) ** $k;
-            $n -> bneg() -> badd($k) -> bdec();
+            $n = $n -> bneg() -> badd($k) -> bdec();
 
         } elsif ($k <= $n) {
 
@@ -2668,22 +2850,22 @@ sub bnok {
 
             $sign = (-1) ** ($n - $k);
             my $x0 = $n -> copy();
-            $n -> bone() -> badd($k) -> bneg();
+            $n = $n -> bone() -> badd($k) -> bneg();
             $k = $k -> copy();
-            $k -> bneg() -> badd($x0);
+            $k = $k -> bneg() -> badd($x0);
 
         } else {
 
             # n < 0 and n < k < 0:
 
-            return $n -> bzero();
+            return $n -> bzero(@r);
         }
     }
 
     $n->{value} = $LIB->_nok($n->{value}, $k->{value});
-    $n -> bneg() if $sign == -1;
+    $n = $n -> bneg() if $sign == -1;
 
-    $n->round(@r);
+    $n -> round(@r);
 }
 
 sub buparrow {
@@ -2796,9 +2978,9 @@ sub ackermann {
         } elsif ($m == $three) {
             $n = $class -> bone() -> blsft($n + $three) -> bsub($three);
         } elsif ($m == $two) {
-            $n -> bmul($two) -> badd($three);
+            $n = $n -> bmul($two) -> badd($three);
         } elsif ($m >= 0) {
-            $n -> badd($m) -> binc();
+            $n = $n -> badd($m) -> binc();
         } else {
             die "negative m!";
         }
@@ -2807,109 +2989,102 @@ sub ackermann {
 }
 
 sub bsin {
-    # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the
+    # Calculate sin(x) to N digits. Unless upgrading is in effect, returns the
     # result truncated to an integer.
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bsin');
 
-    return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+    return $x->bnan(@r) if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+    return $x->bzero(@r) if $x->is_zero();
 
-    return $upgrade -> bsin($upgrade -> new($x, @r)) if defined $upgrade;
+    return $upgrade -> bsin($x, @r) if defined $upgrade;
 
     require Math::BigFloat;
     # calculate the result and truncate it to integer
     my $t = Math::BigFloat->new($x)->bsin(@r)->as_int();
 
-    $x->bone() if $t->is_one();
-    $x->bzero() if $t->is_zero();
+    $x = $x->bone(@r)  if $t->is_one();
+    $x = $x->bzero(@r) if $t->is_zero();
     $x->round(@r);
 }
 
 sub bcos {
-    # Calculate cosinus(x) to N digits. Unless upgrading is in effect, returns the
+    # Calculate cos(x) to N digits. Unless upgrading is in effect, returns the
     # result truncated to an integer.
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bcos');
 
-    return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+    return $x->bnan(@r) if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+    return $x->bone(@r) if $x->is_zero();
 
-    return $upgrade -> bcos($upgrade -> new($x), @r) if defined $upgrade;
+    return $upgrade -> bcos($x, @r) if defined $upgrade;
 
     require Math::BigFloat;
-    # calculate the result and truncate it to integer
-    my $t = Math::BigFloat -> bcos(Math::BigFloat -> new($x), @r) -> as_int();
-
-    $x->bone() if $t->is_one();
-    $x->bzero() if $t->is_zero();
-    $x->round(@r);
+    my $tmp = Math::BigFloat -> bcos($x, @r) -> as_int();
+    $x->{value} = $tmp->{value};
+    return $x -> round(@r);
 }
 
 sub batan {
-    # Calculate arcus tangens of x to N digits. Unless upgrading is in effect, returns the
-    # result truncated to an integer.
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    # Calculate arctan(x) to N digits. Unless upgrading is in effect, returns
+    # the result truncated to an integer.
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('batan');
 
-    return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+    return $x -> bnan(@r)  if $x -> is_nan();
+    return $x -> bzero(@r) if $x -> is_zero();
 
-    return $upgrade->new($x)->batan(@r) if defined $upgrade;
+    return $upgrade -> batan($x, @r) if defined $upgrade;
 
-    # calculate the result and truncate it to integer
-    my $tmp = Math::BigFloat->new($x)->batan(@r);
+    return $x -> bone("+", @r) if $x -> bgt("1");
+    return $x -> bone("-", @r) if $x -> blt("-1");
 
-    $x->{value} = $LIB->_new($tmp->as_int()->bstr());
-    $x->round(@r);
+    $x -> bzero(@r);
 }
 
 sub batan2 {
     # calculate arcus tangens of ($y/$x)
 
-    # set up parameters
-    my ($class, $y, $x, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $y, $x, @r) = objectify(2, @_);
-    }
+    my ($class, $y, $x, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_) : objectify(2, @_);
 
     return $y if $y->modify('batan2');
 
     return $y->bnan() if ($y->{sign} eq $nan) || ($x->{sign} eq $nan);
 
+    return $upgrade->batan2($y, $x, @r) if defined $upgrade;
+
     # Y    X
     # != 0 -inf result is +- pi
     if ($x->is_inf() || $y->is_inf()) {
-        # upgrade to Math::BigFloat etc.
-        return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
         if ($y->is_inf()) {
             if ($x->{sign} eq '-inf') {
                 # calculate 3 pi/4 => 2.3.. => 2
-                $y->bone(substr($y->{sign}, 0, 1));
-                $y->bmul($class->new(2));
+                $y = $y->bone(substr($y->{sign}, 0, 1));
+                $y = $y->bmul($class->new(2));
             } elsif ($x->{sign} eq '+inf') {
                 # calculate pi/4 => 0.7 => 0
-                $y->bzero();
+                $y = $y->bzero();
             } else {
                 # calculate pi/2 => 1.5 => 1
-                $y->bone(substr($y->{sign}, 0, 1));
+                $y = $y->bone(substr($y->{sign}, 0, 1));
             }
         } else {
             if ($x->{sign} eq '+inf') {
                 # calculate pi/4 => 0.7 => 0
-                $y->bzero();
+                $y = $y->bzero();
             } else {
                 # PI => 3.1415.. => 3
-                $y->bone(substr($y->{sign}, 0, 1));
-                $y->bmul($class->new(3));
+                $y = $y->bone(substr($y->{sign}, 0, 1));
+                $y = $y->bmul($class->new(3));
             }
         }
         return $y;
     }
 
-    return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
-
     require Math::BigFloat;
     my $r = Math::BigFloat->new($y)
       ->batan2(Math::BigFloat->new($x), @r)
@@ -2918,17 +3093,17 @@ sub batan2 {
     $x->{value} = $r->{value};
     $x->{sign} = $r->{sign};
 
-    $x;
+    $x->round(@r);
 }
 
 sub bsqrt {
     # calculate square root of $x
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bsqrt');
 
-    return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
-    return $x if $x->{sign} eq '+inf';        # sqrt(+inf) == inf
+    return $x->bnan(@r)  if $x->{sign} !~ /^\+/;    # -x or -inf or NaN => NaN
+    return $x->round(@r) if $x->{sign} eq '+inf';   # sqrt(+inf) == inf
 
     return $upgrade->bsqrt($x, @r) if defined $upgrade;
 
@@ -2940,25 +3115,22 @@ sub broot {
     # calculate $y'th root of $x
 
     # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
 
-    $y = $class->new(2) unless defined $y;
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_) : objectify(2, @_);
 
-    # objectify is costly, so avoid it
-    if ((!ref($x)) || (ref($x) ne ref($y))) {
-        ($class, $x, $y, @r) = objectify(2, $class || $class, @_);
-    }
+    $y = $class->new(2) unless defined $y;
 
     return $x if $x->modify('broot');
 
     # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
-    return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
-      $y->{sign} !~ /^\+$/;
+    return $x->bnan(@r) if $x->{sign} !~ /^\+/ || $y->is_zero() ||
+                           $y->{sign} !~ /^\+$/;
 
     return $x->round(@r)
       if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
 
-    return $upgrade->new($x)->broot($upgrade->new($y), @r) if defined $upgrade;
+    return $upgrade->broot($x, $y, @r) if defined $upgrade;
 
     $x->{value} = $LIB->_root($x->{value}, $y->{value});
     $x->round(@r);
@@ -2967,10 +3139,14 @@ sub broot {
 sub bfac {
     # (BINT or num_str, BINT or num_str) return BINT
     # compute factorial number from $x, modify $x in place
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bfac') || $x->{sign} eq '+inf'; # inf => inf
-    return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 => NaN
+
+    return $x->bnan(@r) if $x->{sign} ne '+'; # NaN, <0 => NaN
+
+    return $upgrade -> bfac($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     $x->{value} = $LIB->_fac($x->{value});
     $x->round(@r);
@@ -2978,11 +3154,15 @@ sub bfac {
 
 sub bdfac {
     # compute double factorial, modify $x in place
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bdfac') || $x->{sign} eq '+inf'; # inf => inf
-    return $x->bnan() if $x->is_nan() || $x <= -2;
-    return $x->bone() if $x <= 1;
+
+    return $x->bnan(@r) if $x->is_nan() || $x <= -2;
+    return $x->bone(@r) if $x <= 1;
+
+    return $upgrade -> bdfac($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     croak("bdfac() requires a newer version of the $LIB library.")
         unless $LIB->can('_dfac');
@@ -2993,57 +3173,67 @@ sub bdfac {
 
 sub btfac {
     # compute triple factorial, modify $x in place
-    my ($class, $x, @r) = objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('btfac') || $x->{sign} eq '+inf'; # inf => inf
 
-    return $x->bnan() if $x->is_nan();
+    return $x->bnan(@r) if $x->is_nan();
+
+    return $upgrade -> btfac($x, @r) if defined($upgrade) && !$x -> isa($class);
 
     my $k = $class -> new("3");
-    return $x->bnan() if $x <= -$k;
+    return $x->bnan(@r) if $x <= -$k;
 
     my $one = $class -> bone();
-    return $x->bone() if $x <= $one;
+    return $x->bone(@r) if $x <= $one;
 
     my $f = $x -> copy();
     while ($f -> bsub($k) > $one) {
-        $x -> bmul($f);
+        $x = $x -> bmul($f);
     }
     $x->round(@r);
 }
 
 sub bmfac {
     # compute multi-factorial
-    my ($class, $x, $k, @r) = objectify(2, @_);
+
+    my ($class, $x, $k, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_) : objectify(2, @_);
 
     return $x if $x->modify('bmfac') || $x->{sign} eq '+inf';
-    return $x->bnan() if $x->is_nan() || $k->is_nan() || $k < 1 || $x <= -$k;
+    return $x->bnan(@r) if $x->is_nan() || $k->is_nan() || $k < 1 || $x <= -$k;
+
+    return $upgrade -> bmfac($x, $k, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     my $one = $class -> bone();
-    return $x->bone() if $x <= $one;
+    return $x->bone(@r) if $x <= $one;
 
     my $f = $x -> copy();
     while ($f -> bsub($k) > $one) {
-        $x -> bmul($f);
+        $x = $x -> bmul($f);
     }
     $x->round(@r);
 }
 
 sub bfib {
     # compute Fibonacci number(s)
-    my ($class, $x, @r) = objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     croak("bfib() requires a newer version of the $LIB library.")
         unless $LIB->can('_fib');
 
     return $x if $x->modify('bfib');
 
+    return $upgrade -> bfib($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     # List context.
 
     if (wantarray) {
-        return () if $x ->  is_nan();
+        return () if $x -> is_nan();
         croak("bfib() can't return an infinitely long list of numbers")
-            if $x -> is_inf();
+          if $x -> is_inf();
 
         # Use the backend library to compute the first $x Fibonacci numbers.
 
@@ -3053,7 +3243,7 @@ sub bfib {
         # invocand.
 
         for (my $i = 0 ; $i < $#values ; ++ $i) {
-            my $fib =  $class -> bzero();
+            my $fib = $class -> bzero();
             $fib -> {value} = $values[$i];
             $values[$i] = $fib;
         }
@@ -3087,13 +3277,16 @@ sub bfib {
 
 sub blucas {
     # compute Lucas number(s)
-    my ($class, $x, @r) = objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     croak("blucas() requires a newer version of the $LIB library.")
         unless $LIB->can('_lucas');
 
     return $x if $x->modify('blucas');
 
+    return $upgrade -> blucas($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     # List context.
 
     if (wantarray) {
@@ -3164,8 +3357,19 @@ sub blsft {
     return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ ||
                             $y -> {sign} !~ /^[+-]$/);
     return $x -> round(@r) if $y -> is_zero();
+    return $x -> bzero(@r) if $x -> is_zero(); # 0 => 0
 
-    $b = defined($b) ? $b -> numify() : 2;
+    $b = 2 if !defined $b;
+    return $x -> bnan(@r) if $b <= 0 || $y -> {sign} eq '-';
+    $b = $class -> new($b) unless defined(blessed($b));
+
+    #return $upgrade -> blsft($x, $y, $b, @r)
+    #  if defined($upgrade) && (!$x -> isa($class) ||
+    #                           !$y -> isa($class) ||
+    #                           !$b -> isa($class));
+
+    # shift by a negative amount?
+    #return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
 
     # While some of the libraries support an arbitrarily large base, not all of
     # them do, so rather than returning an incorrect result in those cases,
@@ -3174,6 +3378,8 @@ sub blsft {
     my $uintmax = ~0;
     croak("Base is too large.") if $b > $uintmax;
 
+    $b = $b -> numify();
+
     return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
 
     $x -> {value} = $LIB -> _lsft($x -> {value}, $y -> {value}, $b);
@@ -3184,21 +3390,48 @@ sub brsft {
     # (BINT or num_str, BINT or num_str) return BINT
     # compute x >> y, base n, y >= 0
 
-    # set up parameters
     my ($class, $x, $y, $b, @r) = (ref($_[0]), @_);
 
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, $b, @r) = objectify(2, @_);
+    # Objectify the base only when it is defined, since an undefined base, as
+    # in $x->blsft(3) or $x->blog(3, undef) means use the default base 2.
+
+    if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+        # E.g., Math::BigInt->blog(256, 5, 2)
+        ($class, $x, $y, $b, @r) =
+          defined $_[3] ? objectify(3, @_) : objectify(2, @_);
+    } else {
+        # E.g., Math::BigInt::blog(256, 5, 2) or $x->blog(5, 2)
+        ($class, $x, $y, $b, @r) =
+          defined $_[2] ? objectify(3, @_) : objectify(2, @_);
     }
 
     return $x if $x -> modify('brsft');
-    return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ || $y -> {sign} !~ /^[+-]$/);
+    return $x -> bnan(@r)  if $x -> {sign} !~ /^[+-]$/ ||
+                              $y -> {sign} !~ /^[+-]$/;
     return $x -> round(@r) if $y -> is_zero();
     return $x -> bzero(@r) if $x -> is_zero(); # 0 => 0
 
     $b = 2 if !defined $b;
-    return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
+    return $x -> bnan(@r) if $b <= 0 || $y -> {sign} eq '-';
+    $b = $class -> new($b) unless defined(blessed($b));
+
+    # Shifting right by a positive amount might lead to a non-integer result, so
+    # include this case in the test.
+
+    return $upgrade -> brsft($x, $y, $b, @r)
+      if defined($upgrade) && (!$x -> isa($class) ||
+                               !$y -> isa($class) ||
+                               !$b -> isa($class) ||
+                               $y -> is_pos());
+
+    # While some of the libraries support an arbitrarily large base, not all of
+    # them do, so rather than returning an incorrect result in those cases,
+    # disallow bases that don't work with all libraries.
+
+    my $uintmax = ~0;
+    croak("Base is too large.") if $b > $uintmax;
+
+    $b = $b -> numify();
 
     # this only works for negative numbers when shifting in base 2
     if (($x -> {sign} eq '-') && ($b == 2)) {
@@ -3209,7 +3442,7 @@ sub brsft {
             # shift...
             # if $y != 1, we must simulate it by doing:
             # convert to bin, flip all bits, shift, and be done
-            $x -> binc();           # -3 => -2
+            $x = $x -> binc();           # -3 => -2
             my $bin = $x -> as_bin();
             $bin =~ s/^-0b//;       # strip '-0b' prefix
             $bin =~ tr/10/01/;      # flip bits
@@ -3225,13 +3458,13 @@ sub brsft {
                 $bin =~ tr/10/01/;  # flip bits back
             }
             my $res = $class -> new('0b' . $bin); # add prefix and convert back
-            $res -> binc();                       # remember to increment
+            $res = $res -> binc();                       # remember to increment
             $x -> {value} = $res -> {value};      # take over value
             return $x -> round(@r); # we are done now, magic, isn't?
         }
 
         # x < 0, n == 2, y == 1
-        $x -> bdec();           # n == 2, but $y == 1: this fixes it
+        $x = $x -> bdec();           # n == 2, but $y == 1: this fixes it
     }
 
     $x -> {value} = $LIB -> _rsft($x -> {value}, $y -> {value}, $b);
@@ -3246,18 +3479,18 @@ sub band {
     #(BINT or num_str, BINT or num_str) return BINT
     # compute x & y
 
-    # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_) : objectify(2, @_);
 
     return $x if $x->modify('band');
 
+    return $upgrade -> band($x, $y, @r)
+      if defined($upgrade) && (!$x -> isa($class) ||
+                               !$y -> isa($class));
+
     $r[3] = $y;                 # no push!
 
-    return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+    return $x->bnan(@r) if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/;
 
     if ($x->{sign} eq '+' && $y->{sign} eq '+') {
         $x->{value} = $LIB->_and($x->{value}, $y->{value});
@@ -3272,15 +3505,15 @@ sub bior {
     #(BINT or num_str, BINT or num_str) return BINT
     # compute x | y
 
-    # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_) : objectify(2, @_);
 
     return $x if $x->modify('bior');
 
+    return $upgrade -> bior($x, $y, @r)
+      if defined($upgrade) && (!$x -> isa($class) ||
+                               !$y -> isa($class));
+
     $r[3] = $y;                 # no push!
 
     return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
@@ -3298,18 +3531,18 @@ sub bxor {
     #(BINT or num_str, BINT or num_str) return BINT
     # compute x ^ y
 
-    # set up parameters
-    my ($class, $x, $y, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $y, @r) = objectify(2, @_);
-    }
+    my ($class, $x, $y, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                            ? (ref($_[0]), @_) : objectify(2, @_);
 
     return $x if $x->modify('bxor');
 
+    return $upgrade -> bxor($x, $y, @r)
+      if defined($upgrade) && (!$x -> isa($class) ||
+                               !$y -> isa($class));
+
     $r[3] = $y;                 # no push!
 
-    return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+    return $x->bnan(@r) if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/;
 
     if ($x->{sign} eq '+' && $y->{sign} eq '+') {
         $x->{value} = $LIB->_xor($x->{value}, $y->{value});
@@ -3323,11 +3556,14 @@ sub bxor {
 sub bnot {
     # (num_str or BINT) return BINT
     # represent ~x as twos-complement number
-    # we don't need $class, so undef instead of ref($_[0]) make it slightly faster
-    my ($class, $x) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
     return $x if $x->modify('bnot');
-    $x->binc()->bneg();         # binc already does round
+
+    return $upgrade -> bnot($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    $x -> binc() -> bneg(@r);
 }
 
 ###############################################################################
@@ -3338,22 +3574,39 @@ sub round {
     # Round $self according to given parameters, or given second argument's
     # parameters or global defaults
 
-    # for speed reasons, _find_round_parameters is embedded here:
+    my ($class, $self, @args) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    # $x->round(undef, undef) signals no rounding
+
+    if (@args >= 2 && @args <= 3 && !defined($args[0]) && !defined($args[1])) {
+        $self->{_a} = undef;
+        $self->{_p} = undef;
+        return $self;
+    }
+
+    my ($a, $p, $r) = splice @args, 0, 3;
 
-    my ($self, $a, $p, $r, @args) = @_;
     # $a accuracy, if given by caller
     # $p precision, if given by caller
     # $r round_mode, if given by caller
     # @args all 'other' arguments (0 for unary, 1 for binary ops)
 
-    my $class = ref($self);       # find out class of argument(s)
-    no strict 'refs';
+    if (defined $a) {
+        croak "accuracy must be a number, not '$a'"
+          unless $a =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/;
+    }
+
+    if (defined $p) {
+        croak "precision must be a number, not '$p'"
+          unless $p =~/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?\z/;
+    }
 
     # now pick $a or $p, but only if we have got "arguments"
     if (!defined $a) {
         foreach ($self, @args) {
             # take the defined one, or if both defined, the one that is smaller
-            $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
+            $a = $_->{_a}
+              if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
         }
     }
     if (!defined $p) {
@@ -3361,10 +3614,13 @@ sub round {
         foreach ($self, @args) {
             # take the defined one, or if both defined, the one that is bigger
             # -2 > -3, and 3 > 2
-            $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+            $p = $_->{_p}
+              if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
         }
     }
 
+    no strict 'refs';
+
     # if still none defined, use globals
     unless (defined $a || defined $p) {
         $a = ${"$class\::accuracy"};
@@ -3387,9 +3643,11 @@ sub round {
 
     # now round, by calling either bround or bfround:
     if (defined $a) {
-        $self->bround(int($a), $r) if !defined $self->{_a} || $self->{_a} >= $a;
+        $self = $self->bround(int($a), $r)
+          if !defined $self->{_a} || $self->{_a} >= $a;
     } else {                  # both can't be undefined due to early out
-        $self->bfround(int($p), $r) if !defined $self->{_p} || $self->{_p} <= $p;
+        $self = $self->bfround(int($p), $r)
+          if !defined $self->{_p} || $self->{_p} <= $p;
     }
 
     # bround() or bfround() already called bnorm() if nec.
@@ -3403,9 +3661,9 @@ sub bround {
     # and overwrite the rest with 0's, return normalized number
     # do not return $x->bnorm(), but $x
 
-    my $x = shift;
-    $x = __PACKAGE__->new($x) unless ref $x;
-    my ($scale, $mode) = $x->_scale_a(@_);
+    my ($class, $x, @a) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    my ($scale, $mode) = $x->_scale_a(@a);
     return $x if !defined $scale || $x->modify('bround'); # no-op
 
     if ($x->is_zero() || $scale == 0) {
@@ -3417,8 +3675,8 @@ sub bround {
     # we have fewer digits than we want to scale to
     my $len = $x->length();
     # convert $scale to a scalar in case it is an object (put's a limit on the
-    # number length, but this would already limited by memory constraints), makes
-    # it faster
+    # number length, but this would already limited by memory constraints),
+    # makes it faster
     $scale = $scale->numify() if ref ($scale);
 
     # scale < 0, but > -len (not >=!)
@@ -3469,7 +3727,7 @@ sub bround {
         $xs =~ s/^0+(\d)/$1/;                  # "00000" -> "0"
         $put_back = 1;                         # need to put back
     } elsif ($pad > $len) {
-        $x->bzero();            # round to '0'
+        $x = $x->bzero();            # round to '0'
     }
 
     if ($round_up) {            # what gave test above?
@@ -3502,16 +3760,15 @@ sub bround {
 sub bfround {
     # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
     # $n == 0 || $n == 1 => round to integer
-    my $x = shift;
-    my $class = ref($x) || $x;
-    $x = $class->new($x) unless ref $x;
 
-    my ($scale, $mode) = $x->_scale_p(@_);
+    my ($class, $x, @p) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    my ($scale, $mode) = $x->_scale_p(@p);
 
     return $x if !defined $scale || $x->modify('bfround'); # no-op
 
     # no-op for Math::BigInt objects if $n <= 0
-    $x->bround($x->length()-$scale, $mode) if $scale > 0;
+    $x = $x->bround($x->length()-$scale, $mode) if $scale > 0;
 
     delete $x->{_a};            # delete to save memory
     $x->{_p} = $scale;          # store new _p
@@ -3528,21 +3785,30 @@ sub fround {
 
 sub bfloor {
     # round towards minus infinity; no-op since it's already integer
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    return $upgrade -> bfloor($x)
+      if defined($upgrade) && !$x -> isa($class);
 
     $x->round(@r);
 }
 
 sub bceil {
     # round towards plus infinity; no-op since it's already int
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    return $upgrade -> bceil($x)
+      if defined($upgrade) && !$x -> isa($class);
 
     $x->round(@r);
 }
 
 sub bint {
     # round towards zero; no-op since it's already integer
-    my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    return $upgrade -> bint($x)
+      if defined($upgrade) && !$x -> isa($class);
 
     $x->round(@r);
 }
@@ -3556,8 +3822,30 @@ sub bgcd {
     # does not modify arguments, but returns new object
     # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff)
 
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
+        unshift @_, __PACKAGE__;
+    }
+
     my ($class, @args) = objectify(0, @_);
 
+    # Upgrade?
+
+    if (defined $upgrade) {
+        my $do_upgrade = 0;
+        for my $arg (@args) {
+            unless ($arg -> isa($class)) {
+                $do_upgrade = 1;
+                last;
+            }
+        }
+        return $upgrade -> bgcd(@args) if $do_upgrade;
+    }
+
     my $x = shift @args;
     $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
 
@@ -3579,8 +3867,30 @@ sub blcm {
     # does not modify arguments, but returns new object
     # Least Common Multiple
 
+    # Class::method(...) -> Class->method(...)
+    unless (@_ && (defined(blessed($_[0])) && $_[0] -> isa(__PACKAGE__) ||
+                   $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i))
+    {
+        #carp "Using ", (caller(0))[3], "() as a function is deprecated;",
+        #  " use is as a method instead";
+        unshift @_, __PACKAGE__;
+    }
+
     my ($class, @args) = objectify(0, @_);
 
+    # Upgrade?
+
+    if (defined $upgrade) {
+        my $do_upgrade = 0;
+        for my $arg (@args) {
+            unless ($arg -> isa($class)) {
+                $do_upgrade = 1;
+                last;
+            }
+        }
+        return $upgrade -> blcm(@args) if $do_upgrade;
+    }
+
     my $x = shift @args;
     $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
     return $class->bnan() if $x->{sign} !~ /^[+-]$/;    # x NaN?
@@ -3601,14 +3911,18 @@ sub blcm {
 
 sub sign {
     # return the sign of the number: +/-/-inf/+inf/NaN
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     $x->{sign};
 }
 
 sub digit {
     # return the nth decimal digit, negative values count backward, 0 is right
-    my ($class, $x, $n) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+    my (undef, $x, $n, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     $n = $n->numify() if ref($n);
     $LIB->_digit($x->{value}, $n || 0);
@@ -3616,7 +3930,9 @@ sub digit {
 
 sub bdigitsum {
     # like digitsum(), but assigns the result to the invocand
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x           if $x -> is_nan();
     return $x -> bnan() if $x -> is_inf();
@@ -3628,19 +3944,22 @@ sub bdigitsum {
 
 sub digitsum {
     # compute sum of decimal digits and return it
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $class -> bnan() if $x -> is_nan();
     return $class -> bnan() if $x -> is_inf();
 
     my $y = $class -> bzero();
     $y -> {value} = $LIB -> _digitsum($x -> {value});
-    return $y;
+    $y -> round(@r);
 }
 
 sub length {
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     my $e = $LIB->_len($x->{value});
     wantarray ? ($e, 0) : $e;
@@ -3648,26 +3967,40 @@ sub length {
 
 sub exponent {
     # return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Upgrade?
+
+    return $upgrade -> exponent($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     if ($x->{sign} !~ /^[+-]$/) {
         my $s = $x->{sign};
         $s =~ s/^[+-]//; # NaN, -inf, +inf => NaN or inf
-        return $class->new($s);
+        return $class->new($s, @r);
     }
-    return $class->bzero() if $x->is_zero();
+    return $class->bzero(@r) if $x->is_zero();
 
     # 12300 => 2 trailing zeros => exponent is 2
-    $class->new($LIB->_zeros($x->{value}));
+    $class->new($LIB->_zeros($x->{value}), @r);
 }
 
 sub mantissa {
     # return the mantissa (compatible to Math::BigFloat, e.g. reduced)
-    my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Upgrade?
+
+    return $upgrade -> mantissa($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     if ($x->{sign} !~ /^[+-]$/) {
         # for NaN, +inf, -inf: keep the sign
-        return $class->new($x->{sign});
+        return $class->new($x->{sign}, @r);
     }
     my $m = $x->copy();
     delete $m->{_p};
@@ -3675,92 +4008,100 @@ sub mantissa {
 
     # that's a bit inefficient:
     my $zeros = $LIB->_zeros($m->{value});
-    $m->brsft($zeros, 10) if $zeros != 0;
-    $m;
+    $m = $m->brsft($zeros, 10) if $zeros != 0;
+    $m -> round(@r);
 }
 
 sub parts {
     # return a copy of both the exponent and the mantissa
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    ($x->mantissa(), $x->exponent());
+    # Upgrade?
+
+    return $upgrade -> parts($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    ($x->mantissa(@r), $x->exponent(@r));
 }
 
+# Parts used for scientific notation with significand/mantissa and exponent as
+# integers. E.g., "12345.6789" is returned as "123456789" (mantissa) and "-4"
+# (exponent).
+
 sub sparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("sparts() is an instance method, not a class method")
-        unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # Not-a-number.
 
-    if ($self -> is_nan()) {
-        my $mant = $self -> copy();             # mantissa
+    if ($x -> is_nan()) {
+        my $mant = $class -> bnan(@r);          # mantissa
         return $mant unless wantarray;          # scalar context
-        my $expo = $class -> bnan();            # exponent
+        my $expo = $class -> bnan(@r);          # exponent
         return ($mant, $expo);                  # list context
     }
 
     # Infinity.
 
-    if ($self -> is_inf()) {
-        my $mant = $self -> copy();             # mantissa
-        return $mant unless wantarray;          # scalar context
-        my $expo = $class -> binf('+');         # exponent
-        return ($mant, $expo);                  # list context
+    if ($x -> is_inf()) {
+        my $mant = $class -> binf($x->{sign}, @r);  # mantissa
+        return $mant unless wantarray;              # scalar context
+        my $expo = $class -> binf('+', @r);         # exponent
+        return ($mant, $expo);                      # list context
     }
 
+    # Upgrade?
+
+    return $upgrade -> sparts($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     # Finite number.
 
-    my $mant   = $self -> copy();
+    my $mant   = $x -> copy();
     my $nzeros = $LIB -> _zeros($mant -> {value});
 
-    $mant -> brsft($nzeros, 10) if $nzeros != 0;
+    $mant -> {value}
+      = $LIB -> _rsft($mant -> {value}, $LIB -> _new($nzeros), 10)
+        if $nzeros != 0;
     return $mant unless wantarray;
 
-    my $expo = $class -> new($nzeros);
+    my $expo = $class -> new($nzeros, @r);
     return ($mant, $expo);
 }
 
+# Parts used for normalized notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,10). E.g., "12345.6789" is returned as
+# "1.23456789" and "4".
+
 sub nparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("nparts() is an instance method, not a class method")
-        unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    # Not-a-number.
+    # Not-a-Number and Infinity.
 
-    if ($self -> is_nan()) {
-        my $mant = $self -> copy();             # mantissa
-        return $mant unless wantarray;          # scalar context
-        my $expo = $class -> bnan();            # exponent
-        return ($mant, $expo);                  # list context
-    }
+    return $x -> sparts(@r) if $x -> is_nan() || $x -> is_inf();
 
-    # Infinity.
+    # Upgrade?
 
-    if ($self -> is_inf()) {
-        my $mant = $self -> copy();             # mantissa
-        return $mant unless wantarray;          # scalar context
-        my $expo = $class -> binf('+');         # exponent
-        return ($mant, $expo);                  # list context
-    }
+    return $upgrade -> nparts($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     # Finite number.
 
-    my ($mant, $expo) = $self -> sparts();
-
+    my ($mant, $expo) = $x -> sparts(@r);
     if ($mant -> bcmp(0)) {
         my ($ndigtot, $ndigfrac) = $mant -> length();
         my $expo10adj = $ndigtot - $ndigfrac - 1;
 
-        if ($expo10adj != 0) {
-            return $upgrade -> new($self) -> nparts() if $upgrade;
-            $mant -> bnan();
+        if ($expo10adj > 0) {          # if mantissa is not an integer
+            return $upgrade -> nparts($x, @r) if defined $upgrade;
+            $mant = $mant -> bnan(@r);
             return $mant unless wantarray;
-            $expo -> badd($expo10adj);
+            $expo = $expo -> badd($expo10adj, @r);
             return ($mant, $expo);
         }
     }
@@ -3769,85 +4110,149 @@ sub nparts {
     return ($mant, $expo);
 }
 
+# Parts used for engineering notation with significand/mantissa as either 0 or a
+# number in the semi-open interval [1,1000) and the exponent is a multiple of 3.
+# E.g., "12345.6789" is returned as "12.3456789" and "3".
+
 sub eparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("eparts() is an instance method, not a class method")
-        unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     # Not-a-number and Infinity.
 
-    return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+    return $x -> sparts(@r) if $x -> is_nan() || $x -> is_inf();
+
+    # Upgrade?
+
+    return $upgrade -> eparts($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
     # Finite number.
 
-    my ($mant, $expo) = $self -> sparts();
+    my ($mant, $expo) = $x -> sparts(@r);
 
     if ($mant -> bcmp(0)) {
         my $ndigmant  = $mant -> length();
-        $expo -> badd($ndigmant);
+        $expo = $expo -> badd($ndigmant, @r);
 
         # $c is the number of digits that will be in the integer part of the
         # final mantissa.
 
         my $c = $expo -> copy() -> bdec() -> bmod(3) -> binc();
-        $expo -> bsub($c);
+        $expo = $expo -> bsub($c);
 
         if ($ndigmant > $c) {
-            return $upgrade -> new($self) -> eparts() if $upgrade;
-            $mant -> bnan();
+            return $upgrade -> eparts($x, @r) if defined $upgrade;
+            $mant = $mant -> bnan(@r);
             return $mant unless wantarray;
             return ($mant, $expo);
         }
 
-        $mant -> blsft($c - $ndigmant, 10);
+        $mant = $mant -> blsft($c - $ndigmant, 10, @r);
     }
 
     return $mant unless wantarray;
     return ($mant, $expo);
 }
 
+# Parts used for decimal notation, e.g., "12345.6789" is returned as "12345"
+# (integer part) and "0.6789" (fraction part).
+
 sub dparts {
-    my $self  = shift;
-    my $class = ref $self;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Not-a-number.
+
+    if ($x -> is_nan()) {
+        my $int = $class -> bnan(@r);
+        return $int unless wantarray;
+        my $frc = $class -> bzero(@r);    # or NaN?
+        return ($int, $frc);
+    }
+
+    # Infinity.
+
+    if ($x -> is_inf()) {
+        my $int = $class -> binf($x->{sign}, @r);
+        return $int unless wantarray;
+        my $frc = $class -> bzero(@r);
+        return ($int, $frc);
+    }
+
+    # Upgrade?
+
+    return $upgrade -> dparts($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
-    croak("dparts() is an instance method, not a class method")
-        unless $class;
+    # Finite number.
 
-    my $int = $self -> copy();
+    my $int = $x -> copy() -> round(@r);
     return $int unless wantarray;
 
-    my $frc = $class -> bzero();
+    my $frc = $class -> bzero(@r);
     return ($int, $frc);
 }
 
+# Fractional parts with the numerator and denominator as integers. E.g.,
+# "123.4375" is returned as "1975" and "16".
+
 sub fparts {
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # NaN => NaN/NaN
+
+    if ($x -> is_nan()) {
+        return $class -> bnan(@r) unless wantarray;
+        return $class -> bnan(@r), $class -> bnan(@r);
+    }
+
+    # ±Inf => ±Inf/1
+
+    if ($x -> is_inf()) {
+        my $numer = $class -> binf($x->{sign}, @r);
+        return $numer unless wantarray;
+        my $denom = $class -> bone(@r);
+        return $numer, $denom;
+    }
+
+    # Upgrade?
 
-    croak("fparts() is an instance method") unless $class;
+    return $upgrade -> fparts($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
-    return ($x -> copy(),
-            $x -> is_nan() ? $class -> bnan() : $class -> bone());
+    # N => N/1
+
+    my $numer = $x -> copy() -> round(@r);
+    return $numer unless wantarray;
+    my $denom = $class -> bone(@r);
+    return $numer, $denom;
 }
 
 sub numerator {
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    croak("numerator() is an instance method") unless $class;
+    return $upgrade -> numerator($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
-    return $x -> copy();
+    return $x -> copy() -> round(@r);
 }
 
 sub denominator {
-    my $x = shift;
-    my $class = ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    croak("denominator() is an instance method") unless $class;
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    return $x -> is_nan() ? $class -> bnan() : $class -> bone();
+    return $upgrade -> denominator($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    return $x -> is_nan() ? $class -> bnan(@r) : $class -> bone(@r);
 }
 
 ###############################################################################
@@ -3855,12 +4260,24 @@ sub denominator {
 ###############################################################################
 
 sub bstr {
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
         return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
         return 'inf';                                  # +inf
     }
+
+    # Upgrade?
+
+    return $upgrade -> bstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
     my $str = $LIB->_str($x->{value});
     return $x->{sign} eq '-' ? "-$str" : $str;
 }
@@ -3869,125 +4286,223 @@ sub bstr {
 # written as "1.2345e+4".
 
 sub bsstr {
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
         return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
         return 'inf';                                   # +inf
     }
-    my ($m, $e) = $x -> parts();
-    my $str = $LIB->_str($m->{value}) . 'e+' . $LIB->_str($e->{value});
-    return $x->{sign} eq '-' ? "-$str" : $str;
+
+    # Upgrade?
+
+    return $upgrade -> bsstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    my $expo = $LIB -> _zeros($x->{value});
+    my $mant = $LIB -> _str($x->{value});
+    $mant = substr($mant, 0, -$expo) if $expo;  # strip trailing zeros
+
+    ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo;
 }
 
-# Normalized notation, e.g., "12345" is written as "12345e+0".
+# Normalized notation, e.g., "12345" is written as "1.2345e+4".
 
 sub bnstr {
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
         return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
         return 'inf';                                   # +inf
     }
 
-    return $x -> bstr() if $x -> is_nan() || $x -> is_inf();
+    # Upgrade?
 
-    my ($mant, $expo) = $x -> parts();
+    return $upgrade -> bnstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
-    # The "fraction posision" is the position (offset) for the decimal point
-    # relative to the end of the digit string.
+    # Finite number
 
-    my $fracpos = $mant -> length() - 1;
-    if ($fracpos == 0) {
-        my $str = $LIB->_str($mant->{value}) . "e+" . $LIB->_str($expo->{value});
-        return $x->{sign} eq '-' ? "-$str" : $str;
-    }
+    my $expo = $LIB -> _zeros($x->{value});
+    my $mant = $LIB -> _str($x->{value});
+    $mant = substr($mant, 0, -$expo) if $expo;  # strip trailing zeros
 
-    $expo += $fracpos;
-    my $mantstr = $LIB->_str($mant -> {value});
-    substr($mantstr, -$fracpos, 0) = '.';
+    my $mantlen = CORE::length($mant);
+    if ($mantlen > 1) {
+        $expo += $mantlen - 1;                  # adjust exponent
+        substr $mant, 1, 0, ".";                # insert decimal point
+    }
 
-    my $str = $mantstr . 'e+' . $LIB->_str($expo -> {value});
-    return $x->{sign} eq '-' ? "-$str" : $str;
+    ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo;
 }
 
 # Engineering notation, e.g., "12345" is written as "12.345e+3".
 
 sub bestr {
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
         return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
         return 'inf';                                   # +inf
     }
 
-    my ($mant, $expo) = $x -> parts();
+    # Upgrade?
 
-    my $sign = $mant -> sign();
-    $mant -> babs();
+    return $upgrade -> bestr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
 
-    my $mantstr = $LIB->_str($mant -> {value});
-    my $mantlen = CORE::length($mantstr);
+    # Finite number
 
-    my $dotidx = 1;
-    $expo += $mantlen - 1;
+    my $expo = $LIB -> _zeros($x->{value});     # number of trailing zeros
+    my $mant = $LIB -> _str($x->{value});       # mantissa as a string
+    $mant = substr($mant, 0, -$expo) if $expo;  # strip trailing zeros
+    my $mantlen = CORE::length($mant);          # length of mantissa
+    $expo += $mantlen;
 
-    my $c = $expo -> copy() -> bmod(3);
-    $expo   -= $c;
-    $dotidx += $c;
+    my $dotpos = ($expo - 1) % 3 + 1;           # offset of decimal point
+    $expo -= $dotpos;
 
-    if ($mantlen < $dotidx) {
-        $mantstr .= "0" x ($dotidx - $mantlen);
-    } elsif ($mantlen > $dotidx) {
-        substr($mantstr, $dotidx, 0) = ".";
+    if ($dotpos < $mantlen) {
+        substr $mant, $dotpos, 0, ".";          # insert decimal point
+    } elsif ($dotpos > $mantlen) {
+        $mant .= "0" x ($dotpos - $mantlen);    # append zeros
     }
 
-    my $str = $mantstr . 'e+' . $LIB->_str($expo -> {value});
-    return $sign eq "-" ? "-$str" : $str;
+    ($x->{sign} eq '-' ? '-' : '') . $mant . 'e+' . $expo;
 }
 
-# Decimal notation, e.g., "12345".
+# Decimal notation, e.g., "12345" (no exponent).
 
 sub bdstr {
-    my $x = shift;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
 
     if ($x->{sign} ne '+' && $x->{sign} ne '-') {
-        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
-        return 'inf';                                  # +inf
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
     }
 
-    my $str = $LIB->_str($x->{value});
-    return $x->{sign} eq '-' ? "-$str" : $str;
+    # Upgrade?
+
+    return $upgrade -> bdstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{value});
+}
+
+# Fraction notation, e.g., "123.4375" is written as "1975/16", but "123" is
+# written as "123", not "123/1".
+
+sub bfstr {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> bfstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    ($x->{sign} eq '-' ? '-' : '') . $LIB->_str($x->{value});
 }
 
 sub to_hex {
-    # return as hex string, with prefixed 0x
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+    # return as hex string with no prefix
 
-    return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> to_hex($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
 
     my $hex = $LIB->_to_hex($x->{value});
     return $x->{sign} eq '-' ? "-$hex" : $hex;
 }
 
 sub to_oct {
-    # return as octal string, with prefixed 0
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+    # return as octal string with no prefix
 
-    return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> to_oct($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
 
     my $oct = $LIB->_to_oct($x->{value});
     return $x->{sign} eq '-' ? "-$oct" : $oct;
 }
 
 sub to_bin {
-    # return as binary string, with prefixed 0b
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+    # return as binary string with no prefix
 
-    return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> to_bin($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
 
     my $bin = $LIB->_to_bin($x->{value});
     return $x->{sign} eq '-' ? "-$bin" : $bin;
@@ -3995,12 +4510,17 @@ sub to_bin {
 
 sub to_bytes {
     # return a byte string
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     croak("to_bytes() requires a finite, non-negative integer")
         if $x -> is_neg() || ! $x -> is_int();
 
+    return $upgrade -> to_bytes($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     croak("to_bytes() requires a newer version of the $LIB library.")
         unless $LIB->can('_to_bytes');
 
@@ -4009,22 +4529,23 @@ sub to_bytes {
 
 sub to_base {
     # return a base anything string
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+
+    # $cs is the collation sequence
+    my ($class, $x, $base, $cs, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                                    ? (ref($_[0]), @_) : objectify(2, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     croak("the value to convert must be a finite, non-negative integer")
       if $x -> is_neg() || !$x -> is_int();
 
-    my $base = shift;
-    $base = __PACKAGE__->new($base) unless ref($base);
-
     croak("the base must be a finite integer >= 2")
       if $base < 2 || ! $base -> is_int();
 
     # If no collating sequence is given, pass some of the conversions to
     # methods optimized for those cases.
 
-    if (! @_) {
+    unless (defined $cs) {
         return    $x -> to_bin() if $base == 2;
         return    $x -> to_oct() if $base == 8;
         return uc $x -> to_hex() if $base == 16;
@@ -4034,26 +4555,35 @@ sub to_base {
     croak("to_base() requires a newer version of the $LIB library.")
       unless $LIB->can('_to_base');
 
-    return $LIB->_to_base($x->{value}, $base -> {value}, @_ ? shift() : ());
+    return $upgrade -> to_base($x, $base, $cs, @r)
+      if defined($upgrade) && (!$x -> isa($class) || !$base -> isa($class));
+
+    return $LIB->_to_base($x->{value}, $base -> {value},
+                          defined($cs) ? $cs : ());
 }
 
 sub to_base_num {
-    my $x = shift;
-    my $class = ref $x;
+    # return a base anything array ref, e.g.,
+    # Math::BigInt -> new(255) -> to_base_num(10) returns [2, 5, 5];
+
+    # $cs is the collation sequence
+    my ($class, $x, $base, @r) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+                               ? (ref($_[0]), @_) : objectify(2, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    # return a base anything string
     croak("the value to convert must be a finite non-negative integer")
       if $x -> is_neg() || !$x -> is_int();
 
-    my $base = shift;
-    $base = $class -> new($base) unless ref $base;
-
     croak("the base must be a finite integer >= 2")
       if $base < 2 || ! $base -> is_int();
 
     croak("to_base() requires a newer version of the $LIB library.")
       unless $LIB->can('_to_base');
 
+    return $upgrade -> to_base_num($x, $base, @r)
+      if defined($upgrade) && (!$x -> isa($class) || !$base -> isa($class));
+
     # Get a reference to an array of library thingies, and replace each element
     # with a Math::BigInt object using that thingy.
 
@@ -4070,33 +4600,48 @@ sub to_base_num {
 
 sub as_hex {
     # return as hex string, with prefixed 0x
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
 
+    return $upgrade -> as_hex($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     my $hex = $LIB->_as_hex($x->{value});
     return $x->{sign} eq '-' ? "-$hex" : $hex;
 }
 
 sub as_oct {
     # return as octal string, with prefixed 0
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
 
+    return $upgrade -> as_oct($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     my $oct = $LIB->_as_oct($x->{value});
     return $x->{sign} eq '-' ? "-$oct" : $oct;
 }
 
 sub as_bin {
     # return as binary string, with prefixed 0b
-    my $x = shift;
-    $x = __PACKAGE__->new($x) if !ref($x);
+
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
 
+    return $upgrade -> as_bin($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     my $bin = $LIB->_as_bin($x->{value});
     return $x->{sign} eq '-' ? "-$bin" : $bin;
 }
@@ -4109,8 +4654,9 @@ sub as_bin {
 
 sub numify {
     # Make a Perl scalar number from a Math::BigInt object.
-    my $x = shift;
-    $x = __PACKAGE__->new($x) unless ref $x;
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
     if ($x -> is_nan()) {
         require Math::Complex;
@@ -4124,6 +4670,9 @@ sub numify {
         return $x -> is_negative() ? -$inf : $inf;
     }
 
+    return $upgrade -> numify($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
     my $num = 0 + $LIB->_num($x->{value});
     return $x->{sign} eq '-' ? -$num : $num;
 }
@@ -4481,116 +5030,6 @@ sub import {
     # import done
 }
 
-sub _split {
-    # input: num_str; output: undef for invalid or
-    # (\$mantissa_sign, \$mantissa_value, \$mantissa_fraction,
-    # \$exp_sign, \$exp_value)
-    # Internal, take apart a string and return the pieces.
-    # Strip leading/trailing whitespace, leading zeros, underscore and reject
-    # invalid input.
-    my $x = shift;
-
-    # strip white space at front, also extraneous leading zeros
-    $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip '  .2'
-    $x =~ s/^\s+//;                     # but this will
-    $x =~ s/\s+$//g;                    # strip white space at end
-
-    # shortcut, if nothing to split, return early
-    if ($x =~ /^[+-]?[0-9]+\z/) {
-        $x =~ s/^([+-])0*([0-9])/$2/;
-        my $sign = $1 || '+';
-        return (\$sign, \$x, \'', \'', \0);
-    }
-
-    # invalid starting char?
-    return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/;
-
-    return Math::BigInt->from_hex($x) if $x =~ /^[+-]?0x/; # hex string
-    return Math::BigInt->from_bin($x) if $x =~ /^[+-]?0b/; # binary string
-
-    # strip underscores between digits
-    $x =~ s/([0-9])_([0-9])/$1$2/g;
-    $x =~ s/([0-9])_([0-9])/$1$2/g; # do twice for 1_2_3
-
-    # some possible inputs:
-    # 2.1234 # 0.12        # 1          # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2
-    # .2     # 1_2_3.4_5_6 # 1.4E1_2_3  # 1e3 # +.2     # 0e999
-
-    my ($m, $e, $last) = split /[Ee]/, $x;
-    return if defined $last;    # last defined => 1e2E3 or others
-    $e = '0' if !defined $e || $e eq "";
-
-    # sign, value for exponent, mantint, mantfrac
-    my ($es, $ev, $mis, $miv, $mfv);
-    # valid exponent?
-    if ($e =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
-    {
-        $es = $1;
-        $ev = $2;
-        # valid mantissa?
-        return if $m eq '.' || $m eq '';
-        my ($mi, $mf, $lastf) = split /\./, $m;
-        return if defined $lastf; # lastf defined => 1.2.3 or others
-        $mi = '0' if !defined $mi;
-        $mi .= '0' if $mi =~ /^[\-\+]?$/;
-        $mf = '0' if !defined $mf || $mf eq '';
-        if ($mi =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
-        {
-            $mis = $1 || '+';
-            $miv = $2;
-            return unless ($mf =~ /^([0-9]*?)0*$/); # strip trailing zeros
-            $mfv = $1;
-            # handle the 0e999 case here
-            $ev = 0 if $miv eq '0' && $mfv eq '';
-            return (\$mis, \$miv, \$mfv, \$es, \$ev);
-        }
-    }
-    return;                     # NaN, not a number
-}
-
-sub _e_add {
-    # Internal helper sub to take two positive integers and their signs and
-    # then add them. Input ($LIB, $LIB, ('+'|'-'), ('+'|'-')), output
-    # ($LIB, ('+'|'-')).
-
-    my ($x, $y, $xs, $ys) = @_;
-
-    # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
-    if ($xs eq $ys) {
-        $x = $LIB->_add($x, $y); # +a + +b or -a + -b
-    } else {
-        my $a = $LIB->_acmp($x, $y);
-        if ($a == 0) {
-            # This does NOT modify $x in-place. TODO: Fix this?
-            $x = $LIB->_zero(); # result is 0
-            $xs = '+';
-            return ($x, $xs);
-        }
-        if ($a > 0) {
-            $x = $LIB->_sub($x, $y);     # abs sub
-        } else {                         # a < 0
-            $x = $LIB->_sub ($y, $x, 1); # abs sub
-            $xs = $ys;
-        }
-    }
-
-    $xs = '+' if $xs eq '-' && $LIB->_is_zero($x); # no "-0"
-
-    return ($x, $xs);
-}
-
-sub _e_sub {
-    # Internal helper sub to take two positive integers and their signs and
-    # then subtract them. Input ($LIB, $LIB, ('+'|'-'), ('+'|'-')),
-    # output ($LIB, ('+'|'-'))
-    my ($x, $y, $xs, $ys) = @_;
-
-    # flip sign
-    $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
-    _e_add($x, $y, $xs, $ys);     # ... and let _e_add() do the job
-    #$LIB -> _sadd($x, $xs, $y, $ys);     # ... and let $LIB -> _sadd() do the job
-}
-
 sub _trailing_zeros {
     # return the amount of trailing zeros in $x (as scalar)
     my $x = shift;
@@ -4643,7 +5082,8 @@ sub _find_round_parameters {
     if (!defined $a) {
         foreach ($self, @args) {
             # take the defined one, or if both defined, the one that is smaller
-            $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
+            $a = $_->{_a}
+              if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
         }
     }
     if (!defined $p) {
@@ -4651,7 +5091,8 @@ sub _find_round_parameters {
         foreach ($self, @args) {
             # take the defined one, or if both defined, the one that is bigger
             # -2 > -3, and 3 > 2
-            $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+            $p = $_->{_p}
+              if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
         }
     }
 
@@ -4679,13 +5120,29 @@ sub _find_round_parameters {
     ($self, $a, $p, $r);
 }
 
+# Return true if the input is numeric and false if it is a string.
+
+sub _is_numeric {
+    shift;              # class name
+    my $value = shift;
+    no warnings 'numeric';
+    # detect numbers
+    # string & "" -> ""
+    # number & "" -> 0 (with warning)
+    # nan and inf can detect as numbers, so check with * 0
+    return unless CORE::length((my $dummy = "") & $value);
+    return unless 0 + $value eq $value;
+    return 1 if $value * 0 == 0;
+    return -1;          # Inf/NaN
+}
+
 # Trims the sign of the significand, the (absolute value of the) significand,
 # the sign of the exponent, and the (absolute value of the) exponent. The
 # returned values have no underscores ("_") or unnecessary leading or trailing
 # zeros.
 
 sub _trim_split_parts {
-    shift;
+    shift;               # class name
 
     my $sig_sgn = shift() || '+';
     my $sig_str = shift() || '0';
@@ -4703,6 +5160,7 @@ sub _trim_split_parts {
     $exp_str =~ tr/_//d;                        # "01_234" -> "01234"
     $exp_str =~ s/^0+//;                        # "01234" -> "1234"
     $exp_str = '0' unless CORE::length($exp_str);
+    $exp_sgn = '+' if $exp_str eq '0';          # "+3e-0" -> "+3e+0"
 
     return $sig_sgn, $sig_str, $exp_sgn, $exp_str;
 }
@@ -4722,7 +5180,7 @@ sub _trim_split_parts {
 #
 #   "10.01e+01"
 
-sub _dec_str_to_str_parts {
+sub _dec_str_to_dec_str_parts {
     my $class = shift;
     my $str   = shift;
 
@@ -4785,7 +5243,7 @@ sub _dec_str_to_str_parts {
 #   "x_1_0"
 #   "_1_0"
 
-sub _hex_str_to_str_parts {
+sub _hex_str_to_hex_str_parts {
     my $class = shift;
     my $str   = shift;
 
@@ -4839,7 +5297,7 @@ sub _hex_str_to_str_parts {
 # the sign of the exponent, and the absolute value of the exponent. The
 # significand is in base 8, and the exponent is in base 2.
 
-sub _oct_str_to_str_parts {
+sub _oct_str_to_oct_str_parts {
     my $class = shift;
     my $str   = shift;
 
@@ -4893,7 +5351,7 @@ sub _oct_str_to_str_parts {
 # the sign of the exponent, and the absolute value of the exponent. The
 # significand is in base 2, and the exponent is in base 2.
 
-sub _bin_str_to_str_parts {
+sub _bin_str_to_bin_str_parts {
     my $class = shift;
     my $str   = shift;
 
@@ -4947,8 +5405,8 @@ sub _bin_str_to_str_parts {
 # libray thingy, the sign of the exponent, and the absolute value of the
 # exponent as a library thingy.
 
-sub _dec_parts_to_lib_parts {
-    shift;
+sub _dec_str_parts_to_flt_lib_parts {
+    shift;               # class name
 
     my ($sig_sgn, $sig_str, $exp_sgn, $exp_str) = @_;
 
@@ -4979,8 +5437,7 @@ sub _dec_parts_to_lib_parts {
         $delta = $LIB -> _sub($delta, $LIB -> _new($idx));
 
         # exponent - delta
-        ($exp_lib, $exp_sgn) = _e_sub($exp_lib, $delta, $exp_sgn, '+');
-        #($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+');
+        ($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+');
 
         $sig_str =~ s/^0+//;
     }
@@ -5017,8 +5474,8 @@ sub _dec_parts_to_lib_parts {
 # libray thingy, the sign of the exponent, and the absolute value of the
 # exponent as a library thingy.
 
-sub _bin_parts_to_lib_parts {
-    shift;
+sub _bin_str_parts_to_flt_lib_parts {
+    shift;               # class name
 
     my ($sig_sgn, $sig_str, $exp_sgn, $exp_str, $bpc) = @_;
     my $bpc_lib = $LIB -> _new($bpc);
@@ -5052,8 +5509,7 @@ sub _bin_parts_to_lib_parts {
         $delta = $LIB -> _mul($delta, $bpc_lib) if $bpc != 1;
 
         # exponent - delta
-        ($exp_lib, $exp_sgn) = _e_sub($exp_lib, $delta, $exp_sgn, '+');
-        #($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+');
+        ($exp_lib, $exp_sgn) = $LIB -> _ssub($exp_lib, $exp_sgn, $delta, '+');
 
         $sig_str =~ s/^0+//;
     }
@@ -5135,11 +5591,11 @@ sub _bin_parts_to_lib_parts {
 # as a libray thingy, the sign of the exponent, and the absolute value of the
 # exponent as a library thingy.
 
-sub _hex_str_to_lib_parts {
+sub _hex_str_to_flt_lib_parts {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _hex_str_to_str_parts($str)) {
-        return $class -> _bin_parts_to_lib_parts(@parts, 4);  # 4 bits pr. chr
+    if (my @parts = $class -> _hex_str_to_hex_str_parts($str)) {
+        return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 4);  # 4 bits pr. chr
     }
     return;
 }
@@ -5149,11 +5605,11 @@ sub _hex_str_to_lib_parts {
 # libray thingy, the sign of the exponent, and the absolute value of the
 # exponent as a library thingy.
 
-sub _oct_str_to_lib_parts {
+sub _oct_str_to_flt_lib_parts {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _oct_str_to_str_parts($str)) {
-        return $class -> _bin_parts_to_lib_parts(@parts, 3);  # 3 bits pr. chr
+    if (my @parts = $class -> _oct_str_to_oct_str_parts($str)) {
+        return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 3);  # 3 bits pr. chr
     }
     return;
 }
@@ -5163,11 +5619,11 @@ sub _oct_str_to_lib_parts {
 # libray thingy, the sign of the exponent, and the absolute value of the
 # exponent as a library thingy.
 
-sub _bin_str_to_lib_parts {
+sub _bin_str_to_flt_lib_parts {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _bin_str_to_str_parts($str)) {
-        return $class -> _bin_parts_to_lib_parts(@parts, 1);  # 1 bit pr. chr
+    if (my @parts = $class -> _bin_str_to_bin_str_parts($str)) {
+        return $class -> _bin_str_parts_to_flt_lib_parts(@parts, 1);  # 1 bit pr. chr
     }
     return;
 }
@@ -5176,11 +5632,11 @@ sub _bin_str_to_lib_parts {
 # the significand as library thingy, the sign of the exponent, and the absolute
 # value of the exponent as a a library thingy.
 
-sub _dec_str_to_lib_parts {
+sub _dec_str_to_flt_lib_parts {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _dec_str_to_str_parts($str)) {
-        return $class -> _dec_parts_to_lib_parts(@parts);
+    if (my @parts = $class -> _dec_str_to_dec_str_parts($str)) {
+        return $class -> _dec_str_parts_to_flt_lib_parts(@parts);
     }
     return;
 }
@@ -5190,8 +5646,8 @@ sub _dec_str_to_lib_parts {
 sub hex_str_to_dec_flt_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _hex_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_flt_str(@parts);
+    if (my @parts = $class -> _hex_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_flt_str(@parts);
     }
     return;
 }
@@ -5201,8 +5657,8 @@ sub hex_str_to_dec_flt_str {
 sub oct_str_to_dec_flt_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _oct_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_flt_str(@parts);
+    if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_flt_str(@parts);
     }
     return;
 }
@@ -5212,8 +5668,8 @@ sub oct_str_to_dec_flt_str {
 sub bin_str_to_dec_flt_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _bin_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_flt_str(@parts);
+    if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_flt_str(@parts);
     }
     return;
 }
@@ -5223,8 +5679,8 @@ sub bin_str_to_dec_flt_str {
 sub dec_str_to_dec_flt_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _dec_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_flt_str(@parts);
+    if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_flt_str(@parts);
     }
     return;
 }
@@ -5234,8 +5690,8 @@ sub dec_str_to_dec_flt_str {
 sub hex_str_to_dec_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _dec_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_dec_str(@parts);
+    if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_dec_str(@parts);
     }
     return;
 }
@@ -5245,8 +5701,8 @@ sub hex_str_to_dec_str {
 sub oct_str_to_dec_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _oct_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_dec_str(@parts);
+    if (my @parts = $class -> _oct_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_dec_str(@parts);
     }
     return;
 }
@@ -5256,8 +5712,8 @@ sub oct_str_to_dec_str {
 sub bin_str_to_dec_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _bin_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_dec_str(@parts);
+    if (my @parts = $class -> _bin_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_dec_str(@parts);
     }
     return;
 }
@@ -5267,20 +5723,20 @@ sub bin_str_to_dec_str {
 sub dec_str_to_dec_str {
     my $class = shift;
     my $str   = shift;
-    if (my @parts = $class -> _dec_str_to_lib_parts($str)) {
-        return $class -> _lib_parts_to_dec_str(@parts);
+    if (my @parts = $class -> _dec_str_to_flt_lib_parts($str)) {
+        return $class -> _flt_lib_parts_to_dec_str(@parts);
     }
     return;
 }
 
-sub _lib_parts_to_flt_str {
+sub _flt_lib_parts_to_flt_str {
     my $class = shift;
     my @parts = @_;
     return $parts[0] . $LIB -> _str($parts[1])
       . 'e' . $parts[2] . $LIB -> _str($parts[3]);
 }
 
-sub _lib_parts_to_dec_str {
+sub _flt_lib_parts_to_dec_str {
     my $class = shift;
     my @parts = @_;
 
@@ -5308,6 +5764,55 @@ sub _lib_parts_to_dec_str {
     }
 }
 
+# Takes four arguments, the sign of the significand, the absolute value of the
+# significand as a libray thingy, the sign of the exponent, and the absolute
+# value of the exponent as a library thingy, and returns three parts: the sign
+# of the rational number, the absolute value of the numerator as a libray
+# thingy, and the absolute value of the denominator as a library thingy.
+#
+# For example, to convert data representing the value "+12e-2", then
+#
+#   $sm = "+";
+#   $m  = $LIB -> _new("12");
+#   $se = "-";
+#   $e  = $LIB -> _new("2");
+#   ($sr, $n, $d) = $class -> _flt_lib_parts_to_rat_lib_parts($sm, $m, $se, $e);
+#
+# returns data representing the same value written as the fraction "+3/25"
+#
+#   $sr = "+"
+#   $n  = $LIB -> _new("3");
+#   $d  = $LIB -> _new("12");
+
+sub _flt_lib_parts_to_rat_lib_parts {
+    my $self = shift;
+    my ($msgn, $mabs, $esgn, $eabs) = @_;
+
+    if ($esgn eq '-') {                 # "12e-2" -> "12/100" -> "3/25"
+        my $num_lib = $LIB -> _copy($mabs);
+        my $den_lib = $LIB -> _1ex($LIB -> _num($eabs));
+        my $gcd_lib = $LIB -> _gcd($LIB -> _copy($num_lib), $den_lib);
+        $num_lib = $LIB -> _div($LIB -> _copy($num_lib), $gcd_lib);
+        $den_lib = $LIB -> _div($den_lib, $gcd_lib);
+        return $msgn, $num_lib, $den_lib;
+    }
+
+    elsif (!$LIB -> _is_zero($eabs)) {  # "12e+2" -> "1200" -> "1200/1"
+        return $msgn, $LIB -> _lsft($LIB -> _copy($mabs), $eabs, 10),
+                      $LIB -> _one();
+    }
+
+    else {                              # "12e+0" -> "12" -> "12/1"
+        return $msgn, $mabs, $LIB -> _one();
+    }
+}
+
+# Add the function _register_callback() to Math::BigInt. It is provided for
+# backwards compabibility so that old version of Math::BigRat etc. don't
+# complain about missing it.
+
+sub _register_callback { }
+
 ###############################################################################
 # this method returns 0 if the object can be modified, or 1 if not.
 # We use a fast constant sub() here, to avoid costly calls. Subclasses
@@ -5343,10 +5848,6 @@ Math::BigInt - arbitrary size integer ma
   # to die if Math::BigInt::GMP cannot be found, use
   # use Math::BigInt only => 'GMP';
 
-  my $str = '1234567890';
-  my @values = (64, 74, 18);
-  my $n = 1; my $sign = '-';
-
   # Configuration methods (may be used as class methods and instance methods)
 
   Math::BigInt->accuracy();     # get class accuracy
@@ -5378,8 +5879,10 @@ Math::BigInt - arbitrary size integer ma
   $x = Math::BigInt->bnan();                # create a Not-A-Number
   $x = Math::BigInt->bpi();                 # returns pi
 
-  $y = $x->copy();         # make a copy (unlike $y = $x)
-  $y = $x->as_int();       # return as a Math::BigInt
+  $y = $x->copy();        # make a copy (unlike $y = $x)
+  $y = $x->as_int();      # return as a Math::BigInt
+  $y = $x->as_float();    # return as a Math::BigFloat
+  $y = $x->as_rat();      # return as a Math::BigRat
 
   # Boolean methods (these don't modify the invocand)
 
@@ -5505,7 +6008,7 @@ Math::BigInt - arbitrary size integer ma
   $x->bsstr();        # string in scientific notation with integers
   $x->bnstr();        # string in normalized notation
   $x->bestr();        # string in engineering notation
-  $x->bdstr();        # string in decimal notation
+  $x->bfstr();        # string in fractional notation
 
   $x->to_hex();       # as signed hexadecimal string
   $x->to_bin();       # as signed binary string
@@ -6008,6 +6511,14 @@ v1.22, while C<as_int()> was introduced 
 
 In Math::BigInt, C<as_int()> has the same effect as C<copy()>.
 
+=item as_float()
+
+Return the argument as a Math::BigFloat object.
+
+=item as_rat()
+
+Return the argument as a Math::BigRat object.
+
 =back
 
 =head2 Boolean methods
@@ -6895,6 +7406,17 @@ corresponds to the output from C<dparts(
     12000 is returned as "12000"
     10000 is returned as "10000"
 
+=item bfstr()
+
+Returns a string representing the number using fractional notation. The output
+corresponds to the output from C<fparts()>.
+
+        12.345 is returned as "2469/200"
+       123.45 is returned as "2469/20"
+      1234.5 is returned as "2469/2"
+     12345 is returned as "12345"
+    123450 is returned as "123450"
+
 =item to_hex()
 
     $x->to_hex();
@@ -6918,8 +7440,8 @@ Returns an octal string representation o
     $x = Math::BigInt->new("1667327589");
     $s = $x->to_bytes();                    # $s = "cafe"
 
-Returns a byte string representation of the number using big endian byte
-order. The invocand must be a non-negative, finite integer. See also from_bytes().
+Returns a byte string representation of the number using big endian byte order.
+The invocand must be a non-negative, finite integer. See also from_bytes().
 
 =item to_base()
 
@@ -7863,11 +8385,12 @@ strings:
     use Test::More tests => 3;
     use Math::BigInt;
 
-    $x = Math::BigInt->new('1e56'); $y = 1e56;
+    $x = Math::BigInt->new('1e56');
+    $y = 1e56;
     is($x,$y);                     # fails
-    is($x->bsstr(),$y);            # okay
+    is($x->bsstr(), $y);           # okay
     $y = Math::BigInt->new($y);
-    is($x,$y);                     # okay
+    is($x, $y);                    # okay
 
 Alternatively, simply use C<< <=> >> for comparisons, this always gets it
 right. There is not yet a way to get a number automatically represented as a
Index: gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm,v
diff -u -p -a -u -p -r1.7 Calc.pm
--- gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Calc.pm	21 Feb 2024 15:47:01 -0000
@@ -7,7 +7,7 @@ use warnings;
 use Carp qw< carp croak >;
 use Math::BigInt::Lib;
 
-our $VERSION = '1.999830';
+our $VERSION = '1.999837';
 $VERSION =~ tr/_//d;
 
 our @ISA = ('Math::BigInt::Lib');
@@ -2248,6 +2248,7 @@ sub _from_bin {
 # special modulus functions
 
 sub _modinv {
+
     # modular multiplicative inverse
     my ($c, $x, $y) = @_;
 
Index: gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Lib.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Lib.pm,v
diff -u -p -a -u -p -r1.1.1.4 Lib.pm
--- gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Lib.pm	15 Feb 2023 01:32:41 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Math-BigInt/lib/Math/BigInt/Lib.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use 5.006001;
 use strict;
 use warnings;
 
-our $VERSION = '1.999830';
+our $VERSION = '1.999837';
 $VERSION =~ tr/_//d;
 
 use Carp;
@@ -1771,7 +1771,7 @@ sub _modinv {
 
     # modulo zero
     if ($class -> _is_zero($y)) {
-        return (undef, undef);
+        return;
     }
 
     # modulo one
@@ -1801,7 +1801,7 @@ sub _modinv {
     }
 
     # if the gcd is not 1, there exists no modular multiplicative inverse
-    return (undef, undef) unless $class -> _is_one($a);
+    return unless $class -> _is_one($a);
 
     ($v, $sign == 1 ? '+' : '-');
 }
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_parts_to_lib_parts.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_parts_to_lib_parts.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_parts_to_lib_parts.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_parts_to_lib_parts.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,88 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 36;
-
-use Math::BigInt;
-
-my $LIB = Math::BigInt -> config('lib');
-
-sub try {
-    my ($in0, $in1, $in2, $in3, $in4, $out0, $out1, $out2, $out3) = @_;
-
-    my @out;
-    my $test = q|@out = Math::BigInt -> _bin_parts_to_lib_parts|
-             . qq|("$in0", "$in1", "$in2", "$in3", $in4)|;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $test => sub {
-        plan tests => 5;
-
-        is(scalar(@out), 4, 'number of output arguments');
-        is($out[0], $out0, 'sign of the significand');
-        is($LIB -> _str($out[1]), $out1, 'absolute value of the significand');
-        is($out[2], $out2, 'sign of the exponent');
-        is($LIB -> _str($out[3]), $out3, 'absolute value of the exponent');
-    };
-}
-
-note("binary");
-
-try qw< + 0                + 0    >, 1, qw< + 0     + 0 >;
-try qw< + 00.000           - 0000 >, 1, qw< + 0     + 0 >;
-
-try qw< + 1010             + 0    >, 1, qw< + 1     + 1 >;
-try qw< + 1111             + 0    >, 1, qw< + 15    + 0 >;
-try qw< + 0.1              + 0    >, 1, qw< + 5     - 1 >;
-
-try qw< + 10               - 8    >, 1, qw< + 78125 - 7 >;
-try qw< + 10               + 8    >, 1, qw< + 512   + 0 >;
-
-try qw< + 11000000001100   - 0    >, 1, qw< + 123   + 2 >;
-try qw< + 1100000000110000 - 2    >, 1, qw< + 123   + 2 >;
-
-try qw< + .00110011        + 5    >, 1, qw< + 6375  - 3 >;
-
-try qw< - 1100.0011        + 2    >, 1, qw< - 4875  - 2 >;
-
-note("octal");
-
-try qw< + 0         + 0     >, 3, qw< + 0     + 0 >;
-try qw< + 00.000    - 0000  >, 3, qw< + 0     + 0 >;
-try qw< + 12        + 0     >, 3, qw< + 1     + 1 >;
-try qw< + 17        + 0     >, 3, qw< + 15    + 0 >;
-try qw< + 0.4       + 0     >, 3, qw< + 5     - 1 >;
-try qw< + 2         - 8     >, 3, qw< + 78125 - 7 >;
-try qw< + 2         + 8     >, 3, qw< + 512   + 0 >;
-try qw< + 30014     - 0     >, 3, qw< + 123   + 2 >;
-try qw< + 14006     + 1     >, 3, qw< + 123   + 2 >;
-try qw< + 12300     + 0     >, 3, qw< + 5312  + 0 >;
-
-note("hexadecimal");
-
-try qw< + 0         + 0     >, 4, qw<  + 0                       + 0  >;
-try qw< + 00.000    - 0000  >, 4, qw<  + 0                       + 0  >;
-
-try qw< + a         + 0     >, 4, qw<  + 1                       + 1  >;
-try qw< + f         + 0     >, 4, qw<  + 15                      + 0  >;
-try qw< + 0.8       + 0     >, 4, qw<  + 5                       - 1  >;
-
-try qw< + 2         - 8     >, 4, qw<  + 78125                   - 7  >;
-try qw< + 2         + 8     >, 4, qw<  + 512                     + 0  >;
-
-try qw< + 300c      - 0     >, 4, qw<  + 123                     + 2  >;
-try qw< + 1.806     + 13    >, 4, qw<  + 123                     + 2  >;
-try qw< + c030      - 2     >, 4, qw<  + 123                     + 2  >;
-
-try qw< + 0.0625    + 16    >, 4, qw<  + 1573                    + 0  >;
-
-try qw< + .0123     + 0     >, 4, qw<  + 44403076171875          - 16 >;
-try qw< + 12300     + 0     >, 4, qw<  + 74496                   + 0  >;
-
-try qw< + .00120034 + 5     >, 4, qw<  + 87894499301910400390625 - 25 >;
-
-try qw< - 1200.0034 + 2     >, 4, qw<  - 18432003173828125       - 12 >;
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_str_to_str_parts.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_str_to_str_parts.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_str_to_str_parts.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_bin_str_to_str_parts.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 18;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($in0, $out0, $out1, $out2, $out3) = split /:/;
-    my ($ss, $sa, $es, $ea);
-
-    my $test = q|($ss, $sa, $es, $ea) = |
-             . qq|Math::BigInt -> _bin_str_to_str_parts("$in0")|;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $test => sub {
-        plan tests => 4;
-        is($ss, $out0, 'sign of the significand');
-        is($sa, $out1, 'absolute value of the significand');
-        is($es, $out2, 'sign of the exponent');
-        is($ea, $out3, 'absolute value of the exponent');
-    };
-}
-
-__DATA__
-
-0:+:0:+:0
-0p-0:+:0:+:0
-0p-7:+:0:+:0
-0p+7:+:0:+:0
-
-0.0110:+:.011:+:0
-0110.0:+:110:+:0
-0110.0110:+:110.011:+:0
-
-0b1.p0:+:1:+:0
-
-00.0011001100P0056007800:+:.00110011:+:56007800
-
-+1__1__.__1__1__p+5__6__:+:11.11:+:56
-+1__1__.__1__1__p-5__6__:+:11.11:-:56
--1__1__.__1__1__p+5__6__:-:11.11:+:56
--1__1__.__1__1__p-5__6__:-:11.11:-:56
-
-1__1__.__1__1__p5__6__:+:11.11:+:56
-1__1__.__1__1__p-5__6__:+:11.11:-:56
--1__1__.__1__1__p5__6__:-:11.11:+:56
-
--0b__1__1__.__1__1__p-1__1__:-:11.11:-:11
--0B__1__1__.__1__1__P-1__1__:-:11.11:-:11
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_parts_to_lib_parts.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_parts_to_lib_parts.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_parts_to_lib_parts.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_parts_to_lib_parts.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 30;
-
-use Math::BigInt;
-
-my $LIB = Math::BigInt -> config('lib');
-
-sub try {
-    my ($in0, $in1, $in2, $in3, $out0, $out1, $out2, $out3) = @_;
-
-    my @out;
-    my $test = q|@out = Math::BigInt -> _dec_parts_to_lib_parts|
-             . qq|("$in0", "$in1", "$in2", "$in3")|;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $test => sub {
-        plan tests => 5;
-
-        is(scalar(@out), 4, 'number of output arguments');
-        is($out[0], $out0, 'sign of the significand');
-        is($LIB -> _str($out[1]), $out1, 'absolute value of the significand');
-        is($out[2], $out2, 'sign of the exponent');
-        is($LIB -> _str($out[3]), $out3, 'absolute value of the exponent');
-    };
-}
-
-try qw< + 0      + 0     >, qw< + 0 + 0 >;
-try qw< + 00.000 - 0000  >, qw< + 0 + 0 >;
-
-try qw<    + 0.01230 + 5 >, qw< + 123 + 1 >;
-try qw<    + 0.1230  + 5 >, qw< + 123 + 2 >;
-try qw<    + 1.230   + 5 >, qw< + 123 + 3 >;
-try qw<   + 12.30    + 5 >, qw< + 123 + 4 >;
-try qw<  + 123.0     + 5 >, qw< + 123 + 5 >;
-try qw< + 1230.0     + 5 >, qw< + 123 + 6 >;
-
-try qw<    + 0.01230 + 2 >, qw< + 123 - 2 >;
-try qw<    + 0.1230  + 2 >, qw< + 123 - 1 >;
-try qw<    + 1.230   + 2 >, qw< + 123 + 0 >;
-try qw<   + 12.30    + 2 >, qw< + 123 + 1 >;
-try qw<  + 123.0     + 2 >, qw< + 123 + 2 >;
-try qw< + 1230.0     + 2 >, qw< + 123 + 3 >;
-
-try qw<    + 0.01230 - 2 >, qw< + 123 - 6 >;
-try qw<    + 0.1230  - 2 >, qw< + 123 - 5 >;
-try qw<    + 1.230   - 2 >, qw< + 123 - 4 >;
-try qw<   + 12.30    - 2 >, qw< + 123 - 3 >;
-try qw<  + 123.0     - 2 >, qw< + 123 - 2 >;
-try qw< + 1230.0     - 2 >, qw< + 123 - 1 >;
-
-try qw<    + 0.01230 - 4 >, qw< + 123 - 8 >;
-try qw<    + 0.1230  - 4 >, qw< + 123 - 7 >;
-try qw<    + 1.230   - 4 >, qw< + 123 - 6 >;
-try qw<   + 12.30    - 4 >, qw< + 123 - 5 >;
-try qw<  + 123.0     - 4 >, qw< + 123 - 4 >;
-try qw< + 1230.0     - 4 >, qw< + 123 - 3 >;
-
-try qw< + .0123      + 0 >, qw< + 123 - 4 >;
-try qw< + 12300      + 0 >, qw< + 123 + 2 >;
-
-try qw< + .00120034  + 5 >, qw< + 120034 - 3 >;
-
-try qw< - 1200.0034  + 2 >, qw< - 12000034 - 2 >;
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_str_to_str_parts.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_str_to_str_parts.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_str_to_str_parts.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_dec_str_to_str_parts.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,57 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 16;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($in0, $out0, $out1, $out2, $out3) = split /:/;
-    my ($ss, $sa, $es, $ea);
-
-    my $test = q|($ss, $sa, $es, $ea) = |
-             . qq|Math::BigInt -> _dec_str_to_str_parts("$in0")|;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-
-
-    subtest $test => sub {
-        plan tests => 4;
-        is($ss, $out0, 'sign of the significand');
-        is($sa, $out1, 'absolute value of the significand');
-        is($es, $out2, 'sign of the exponent');
-        is($ea, $out3, 'absolute value of the exponent');
-    };
-}
-
-__DATA__
-
-0:+:0:+:0
-0e-0:+:0:+:0
-0e-7:+:0:+:0
-0e+7:+:0:+:0
-
-0.0120:+:.012:+:0
-0120.0:+:120:+:0
-0120.0340:+:120.034:+:0
-
-1.e0:+:1:+:0
-
-00.0012003400E0056007800:+:.00120034:+:56007800
-
-+1__2__.__3__4__e+5__6__:+:12.34:+:56
-+1__2__.__3__4__e-5__6__:+:12.34:-:56
--1__2__.__3__4__e+5__6__:-:12.34:+:56
--1__2__.__3__4__e-5__6__:-:12.34:-:56
-
-1__2__.__3__4__e5__6__:+:12.34:+:56
-1__2__.__3__4__e-5__6__:+:12.34:-:56
--1__2__.__3__4__e5__6__:-:12.34:+:56
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_e_math.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_e_math.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_e_math.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_e_math.t	15 Feb 2023 01:36:19 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,116 +0,0 @@
-# -*- mode: perl; -*-
-
-# test the helper math routines in Math::BigFloat
-
-use strict;
-use warnings;
-
-use Test::More tests => 26;
-
-use Math::BigFloat lib => 'Calc';
-
-#############################################################################
-# add
-
-{
-    my $a = Math::BigInt::Calc->_new("123");
-    my $b = Math::BigInt::Calc->_new("321");
-
-    test_add(123, 321, '+', '+');
-    test_add(123, 321, '+', '-');
-    test_add(123, 321, '-', '+');
-
-    test_add(321, 123, '-', '+');
-    test_add(321, 123, '+', '-');
-
-    test_add(10,  1, '+', '-');
-    test_add(10,  1, '-', '+');
-    test_add( 1, 10, '-', '+');
-
-  SKIP: {
-        skip q|$x -> _zero() does not (yet?) modify the first argument|, 2;
-
-        test_add(123, 123, '-', '+');
-        test_add(123, 123, '+', '-');
-    }
-
-    test_add(123, 123, '+', '+');
-    test_add(123, 123, '-', '-');
-
-    test_add(0, 0, '-', '+');
-    test_add(0, 0, '+', '-');
-    test_add(0, 0, '+', '+');
-    test_add(0, 0, '-', '-');          # gives "-0"! TODO: fix this!
-}
-
-#############################################################################
-# sub
-
-{
-    my $a = Math::BigInt::Calc->_new("123");
-    my $b = Math::BigInt::Calc->_new("321");
-
-    test_sub(123, 321, '+', '-');
-    test_sub(123, 321, '-', '+');
-
-    test_sub(123, 123, '-', '+');
-    test_sub(123, 123, '+', '-');
-
-  SKIP: {
-        skip q|$x -> _zero() does not (yet?) modify the first argument|, 2;
-
-        test_sub(123, 123, '+', '+');
-        test_sub(123, 123, '-', '-');
-    }
-
-    test_sub(0, 0, '-', '+');          # gives "-0"! TODO: fix this!
-    test_sub(0, 0, '+', '-');
-    test_sub(0, 0, '+', '+');
-    test_sub(0, 0, '-', '-');
-}
-
-###############################################################################
-
-sub test_add {
-    my ($a, $b, $as, $bs) = @_;
-
-    my $aa = Math::BigInt::Calc -> _new($a);
-    my $bb = Math::BigInt::Calc -> _new($b);
-    my ($x, $xs) = Math::BigFloat::_e_add($aa, $bb, "$as", "$bs");
-    my $got = $xs . Math::BigInt::Calc->_str($x);
-
-    my $expected = sprintf("%+d", "$as$a" + "$bs$b");
-
-    subtest qq|Math::BigFloat::_e_add($a, $b, "$as", "$bs");|
-      => sub {
-          plan tests => 2;
-
-          is($got, $expected, 'output has the correct value');
-          is(Math::BigInt::Calc->_str($x),
-             Math::BigInt::Calc->_str($aa),
-             'first operand to _e_add() is modified'
-            );
-      };
-}
-
-sub test_sub {
-    my ($a, $b, $as, $bs) = @_;
-
-    my $aa = Math::BigInt::Calc -> _new($a);
-    my $bb = Math::BigInt::Calc -> _new($b);
-    my ($x, $xs) = Math::BigFloat::_e_sub($aa, $bb, "$as", "$bs");
-    my $got = $xs . Math::BigInt::Calc->_str($x);
-
-    my $expected = sprintf("%+d", "$as$a" - "$bs$b");
-
-    subtest qq|Math::BigFloat::_e_sub($a, $b, "$as", "$bs");|
-      => sub {
-          plan tests => 2;
-
-          is($got, $expected, 'output has the correct value');
-          is(Math::BigInt::Calc->_str($x),
-             Math::BigInt::Calc->_str($aa),
-             'first operand to _e_sub() is modified'
-            );
-      };
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_hex_str_to_str_parts.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_hex_str_to_str_parts.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_hex_str_to_str_parts.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_hex_str_to_str_parts.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 18;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($in0, $out0, $out1, $out2, $out3) = split /:/;
-    my ($ss, $sa, $es, $ea);
-
-    my $test = q|($ss, $sa, $es, $ea) = |
-             . qq|Math::BigInt -> _hex_str_to_str_parts("$in0")|;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $test => sub {
-        plan tests => 4;
-        is($ss, $out0, 'sign of the significand');
-        is($sa, $out1, 'absolute value of the significand');
-        is($es, $out2, 'sign of the exponent');
-        is($ea, $out3, 'absolute value of the exponent');
-    };
-}
-
-__DATA__
-
-0:+:0:+:0
-0p-0:+:0:+:0
-0p-7:+:0:+:0
-0p+7:+:0:+:0
-
-0.0120:+:.012:+:0
-0120.0:+:120:+:0
-0120.0340:+:120.034:+:0
-
-0x1.p0:+:1:+:0
-
-00.0012003400P0056007800:+:.00120034:+:56007800
-
-+1__2__.__3__4__p+5__6__:+:12.34:+:56
-+1__2__.__3__4__p-5__6__:+:12.34:-:56
--1__2__.__3__4__p+5__6__:-:12.34:+:56
--1__2__.__3__4__p-5__6__:-:12.34:-:56
-
-1__2__.__3__4__p5__6__:+:12.34:+:56
-1__2__.__3__4__p-5__6__:+:12.34:-:56
--1__2__.__3__4__p5__6__:-:12.34:+:56
-
--0x__a__b__.__c__d__p-1__2__:-:ab.cd:-:12
--0X__A__B__.__C__D__P-1__2__:-:AB.CD:-:12
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/_oct_str_to_str_parts.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/_oct_str_to_str_parts.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/_oct_str_to_str_parts.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/_oct_str_to_str_parts.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 18;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($in0, $out0, $out1, $out2, $out3) = split /:/;
-    my ($ss, $sa, $es, $ea);
-
-    my $test = q|($ss, $sa, $es, $ea) = |
-      . qq|Math::BigInt -> _oct_str_to_str_parts("$in0")|;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $test => sub {
-        plan tests => 4;
-        is($ss, $out0, 'sign of the significand');
-        is($sa, $out1, 'absolute value of the significand');
-        is($es, $out2, 'sign of the exponent');
-        is($ea, $out3, 'absolute value of the exponent');
-    };
-}
-
-__DATA__
-
-0:+:0:+:0
-0p-0:+:0:+:0
-0p-7:+:0:+:0
-0p+7:+:0:+:0
-
-0.0120:+:.012:+:0
-0120.0:+:120:+:0
-0120.0340:+:120.034:+:0
-
-01.p0:+:1:+:0
-
-00.0012003400P0056007800:+:.00120034:+:56007800
-
-+0__1__2__.__3__4__p+5__6__:+:12.34:+:56
-+0__1__2__.__3__4__p-5__6__:+:12.34:-:56
--0__1__2__.__3__4__p+5__6__:-:12.34:+:56
--0__1__2__.__3__4__p-5__6__:-:12.34:-:56
-
-01__2__.__3__4__p5__6__:+:12.34:+:56
-1__2__.__3__4__p-5__6__:+:12.34:-:56
--1__2__.__3__4__p5__6__:-:12.34:+:56
-
--0o__1__2__.__3__4__p-5__6__:-:12.34:-:56
--0O__1__2__.__3__4__P-5__6__:-:12.34:-:56
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/backermann-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/backermann-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/backermann-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/backermann-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,507 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 858;
-
-my $class;
-
-BEGIN {
-    $class = 'Math::BigInt';
-    use_ok($class);
-}
-
-can_ok($class, 'backermann', 'ackermann');
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($m, $n, $expected) = split /:/;
-
-    # backermann() modifies the invocand.
-
-    {
-        my ($x, $y);
-        my $test = qq|\$x = $class->new("$m"); \$y = \$x->backermann("$n");|;
-
-        subtest $test,
-          sub {
-              plan tests => 4;
-
-              eval $test;
-              is($@, "", "'$test' gives emtpy \$\@");
-
-              is(ref($y), $class,
-                 "'$test' output arg is a $class");
-
-              is($y -> bstr(), $expected,
-                 "'$test' output arg has the right value");
-
-              is($x -> bstr(), $expected,
-                 "'$test' invocand has the right value");
-          };
-    }
-
-    # ackermann() does not modify the invocand.
-
-    {
-        my ($x, $y);
-        my $test = qq|\$x = $class->new("$m"); \$y = \$x->ackermann("$n");|;
-
-        subtest $test,
-          sub {
-              plan tests => 4;
-
-              eval $test;
-              is($@, "", "'$test' gives emtpy \$\@");
-
-              is(ref($y), $class,
-                 "'$test' output arg is a $class");
-
-              is($y -> bstr(), $expected,
-                 "'$test' output arg has the right value");
-
-              is($x -> bstr(), $m,
-                 "'$test' invocand has the right value");
-          };
-    }
-}
-
-__DATA__
-
-0:0:1
-0:1:2
-0:2:3
-0:3:4
-0:4:5
-0:5:6
-0:6:7
-0:7:8
-0:8:9
-0:9:10
-0:10:11
-0:11:12
-0:12:13
-0:13:14
-0:14:15
-0:15:16
-0:16:17
-0:17:18
-0:18:19
-0:19:20
-0:20:21
-0:21:22
-0:22:23
-0:23:24
-0:24:25
-0:25:26
-0:26:27
-0:27:28
-0:28:29
-0:29:30
-0:30:31
-0:31:32
-0:32:33
-0:33:34
-0:34:35
-0:35:36
-0:36:37
-0:37:38
-0:38:39
-0:39:40
-0:40:41
-0:41:42
-0:42:43
-0:43:44
-0:44:45
-0:45:46
-0:46:47
-0:47:48
-0:48:49
-0:49:50
-0:50:51
-0:51:52
-0:52:53
-0:53:54
-0:54:55
-0:55:56
-0:56:57
-0:57:58
-0:58:59
-0:59:60
-0:60:61
-0:61:62
-0:62:63
-0:63:64
-0:64:65
-0:65:66
-0:66:67
-0:67:68
-0:68:69
-0:69:70
-0:70:71
-0:71:72
-0:72:73
-0:73:74
-0:74:75
-0:75:76
-0:76:77
-0:77:78
-0:78:79
-0:79:80
-0:80:81
-0:81:82
-0:82:83
-0:83:84
-0:84:85
-0:85:86
-0:86:87
-0:87:88
-0:88:89
-0:89:90
-0:90:91
-0:91:92
-0:92:93
-0:93:94
-0:94:95
-0:95:96
-0:96:97
-0:97:98
-0:98:99
-0:99:100
-0:100:101
-0:1000:1001
-0:100000:100001
-0:10000000:10000001
-0:10000000000:10000000001
-0:10000000000000:10000000000001
-0:10000000000000000000000000000000000:10000000000000000000000000000000001
-0:12345678987654321012345678987654321:12345678987654321012345678987654322
-
-1:0:2
-1:1:3
-1:2:4
-1:3:5
-1:4:6
-1:5:7
-1:6:8
-1:7:9
-1:8:10
-1:9:11
-1:10:12
-1:11:13
-1:12:14
-1:13:15
-1:14:16
-1:15:17
-1:16:18
-1:17:19
-1:18:20
-1:19:21
-1:20:22
-1:21:23
-1:22:24
-1:23:25
-1:24:26
-1:25:27
-1:26:28
-1:27:29
-1:28:30
-1:29:31
-1:30:32
-1:31:33
-1:32:34
-1:33:35
-1:34:36
-1:35:37
-1:36:38
-1:37:39
-1:38:40
-1:39:41
-1:40:42
-1:41:43
-1:42:44
-1:43:45
-1:44:46
-1:45:47
-1:46:48
-1:47:49
-1:48:50
-1:49:51
-1:50:52
-1:51:53
-1:52:54
-1:53:55
-1:54:56
-1:55:57
-1:56:58
-1:57:59
-1:58:60
-1:59:61
-1:60:62
-1:61:63
-1:62:64
-1:63:65
-1:64:66
-1:65:67
-1:66:68
-1:67:69
-1:68:70
-1:69:71
-1:70:72
-1:71:73
-1:72:74
-1:73:75
-1:74:76
-1:75:77
-1:76:78
-1:77:79
-1:78:80
-1:79:81
-1:80:82
-1:81:83
-1:82:84
-1:83:85
-1:84:86
-1:85:87
-1:86:88
-1:87:89
-1:88:90
-1:89:91
-1:90:92
-1:91:93
-1:92:94
-1:93:95
-1:94:96
-1:95:97
-1:96:98
-1:97:99
-1:98:100
-1:99:101
-1:100:102
-1:1000:1002
-1:100000:100002
-1:10000000:10000002
-1:10000000000:10000000002
-1:10000000000000:10000000000002
-1:10000000000000000000000000000000000:10000000000000000000000000000000002
-1:12345678987654321012345678987654321:12345678987654321012345678987654323
-
-2:0:3
-2:1:5
-2:2:7
-2:3:9
-2:4:11
-2:5:13
-2:6:15
-2:7:17
-2:8:19
-2:9:21
-2:10:23
-2:11:25
-2:12:27
-2:13:29
-2:14:31
-2:15:33
-2:16:35
-2:17:37
-2:18:39
-2:19:41
-2:20:43
-2:21:45
-2:22:47
-2:23:49
-2:24:51
-2:25:53
-2:26:55
-2:27:57
-2:28:59
-2:29:61
-2:30:63
-2:31:65
-2:32:67
-2:33:69
-2:34:71
-2:35:73
-2:36:75
-2:37:77
-2:38:79
-2:39:81
-2:40:83
-2:41:85
-2:42:87
-2:43:89
-2:44:91
-2:45:93
-2:46:95
-2:47:97
-2:48:99
-2:49:101
-2:50:103
-2:51:105
-2:52:107
-2:53:109
-2:54:111
-2:55:113
-2:56:115
-2:57:117
-2:58:119
-2:59:121
-2:60:123
-2:61:125
-2:62:127
-2:63:129
-2:64:131
-2:65:133
-2:66:135
-2:67:137
-2:68:139
-2:69:141
-2:70:143
-2:71:145
-2:72:147
-2:73:149
-2:74:151
-2:75:153
-2:76:155
-2:77:157
-2:78:159
-2:79:161
-2:80:163
-2:81:165
-2:82:167
-2:83:169
-2:84:171
-2:85:173
-2:86:175
-2:87:177
-2:88:179
-2:89:181
-2:90:183
-2:91:185
-2:92:187
-2:93:189
-2:94:191
-2:95:193
-2:96:195
-2:97:197
-2:98:199
-2:99:201
-2:100:203
-2:1000:2003
-2:100000:200003
-2:10000000:20000003
-2:10000000000:20000000003
-2:10000000000000:20000000000003
-2:10000000000000000000000000000000000:20000000000000000000000000000000003
-2:12345678987654321012345678987654321:24691357975308642024691357975308645
-
-3:0:5
-3:1:13
-3:2:29
-3:3:61
-3:4:125
-3:5:253
-3:6:509
-3:7:1021
-3:8:2045
-3:9:4093
-3:10:8189
-3:11:16381
-3:12:32765
-3:13:65533
-3:14:131069
-3:15:262141
-3:16:524285
-3:17:1048573
-3:18:2097149
-3:19:4194301
-3:20:8388605
-3:21:16777213
-3:22:33554429
-3:23:67108861
-3:24:134217725
-3:25:268435453
-3:26:536870909
-3:27:1073741821
-3:28:2147483645
-3:29:4294967293
-3:30:8589934589
-3:31:17179869181
-3:32:34359738365
-3:33:68719476733
-3:34:137438953469
-3:35:274877906941
-3:36:549755813885
-3:37:1099511627773
-3:38:2199023255549
-3:39:4398046511101
-3:40:8796093022205
-3:41:17592186044413
-3:42:35184372088829
-3:43:70368744177661
-3:44:140737488355325
-3:45:281474976710653
-3:46:562949953421309
-3:47:1125899906842621
-3:48:2251799813685245
-3:49:4503599627370493
-3:50:9007199254740989
-3:51:18014398509481981
-3:52:36028797018963965
-3:53:72057594037927933
-3:54:144115188075855869
-3:55:288230376151711741
-3:56:576460752303423485
-3:57:1152921504606846973
-3:58:2305843009213693949
-3:59:4611686018427387901
-3:60:9223372036854775805
-3:61:18446744073709551613
-3:62:36893488147419103229
-3:63:73786976294838206461
-3:64:147573952589676412925
-3:65:295147905179352825853
-3:66:590295810358705651709
-3:67:1180591620717411303421
-3:68:2361183241434822606845
-3:69:4722366482869645213693
-3:70:9444732965739290427389
-3:71:18889465931478580854781
-3:72:37778931862957161709565
-3:73:75557863725914323419133
-3:74:151115727451828646838269
-3:75:302231454903657293676541
-3:76:604462909807314587353085
-3:77:1208925819614629174706173
-3:78:2417851639229258349412349
-3:79:4835703278458516698824701
-3:80:9671406556917033397649405
-3:81:19342813113834066795298813
-3:82:38685626227668133590597629
-3:83:77371252455336267181195261
-3:84:154742504910672534362390525
-3:85:309485009821345068724781053
-3:86:618970019642690137449562109
-3:87:1237940039285380274899124221
-3:88:2475880078570760549798248445
-3:89:4951760157141521099596496893
-3:90:9903520314283042199192993789
-3:91:19807040628566084398385987581
-3:92:39614081257132168796771975165
-3:93:79228162514264337593543950333
-3:94:158456325028528675187087900669
-3:95:316912650057057350374175801341
-3:96:633825300114114700748351602685
-3:97:1267650600228229401496703205373
-3:98:2535301200456458802993406410749
-3:99:5070602400912917605986812821501
-3:100:10141204801825835211973625643005
-
-4:0:13
-4:1:65533
-
-5:0:65533
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t,v
diff -u -p -a -u -p -r1.7 bare_mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t	15 Feb 2023 01:36:19 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/bare_mbi.t	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 4280;           # tests in require'd file
+use Test::More tests => 4278;           # tests in require'd file
 
 use lib 't';
 
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bdigitsum-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bdigitsum-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bdigitsum-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bdigitsum-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,113 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 48;
-
-use Math::BigInt;
-
-my $x;
-my $y;
-
-###############################################################################
-# bdigitsum()
-
-# Finite numbers.
-
-$x = Math::BigInt -> new("123");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> bdigitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "6");
-is($y, "6");
-
-$x = Math::BigInt -> new("0");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> bdigitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "0");
-is($y, "0");
-
-$x = Math::BigInt -> new("-123");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> bdigitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "6");
-is($y, "6");
-
-# Infinity
-
-$x = Math::BigInt -> binf("+");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> bdigitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "NaN");
-is($y, "NaN");
-
-$x = Math::BigInt -> binf("-");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> bdigitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "NaN");
-is($y, "NaN");
-
-# NaN
-
-$x = Math::BigInt -> bnan();
-isa_ok($x, 'Math::BigInt');
-$y = $x -> bdigitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "NaN");
-is($y, "NaN");
-
-###############################################################################
-# digitsum()
-
-# Finite numbers.
-
-$x = Math::BigInt -> new("123");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> digitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "123");
-is($y, "6");
-
-$x = Math::BigInt -> new("0");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> digitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "0");
-is($y, "0");
-
-$x = Math::BigInt -> new("-123");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> digitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "-123");
-is($y, "6");
-
-# Infinity
-
-$x = Math::BigInt -> binf("+");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> digitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "inf");
-is($y, "NaN");
-
-$x = Math::BigInt -> binf("-");
-isa_ok($x, 'Math::BigInt');
-$y = $x -> digitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "-inf");
-is($y, "NaN");
-
-# NaN
-
-$x = Math::BigInt -> bnan();
-isa_ok($x, 'Math::BigInt');
-$y = $x -> digitsum();
-isa_ok($y, 'Math::BigInt');
-is($x, "NaN");
-is($y, "NaN");
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,275 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 460;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    my $test = qq|\$x = Math::BigFloat -> new("$x_str");|
-             . qq| \$str = \$x -> bdstr();|;
-
-    note "\n$test\n\n";
-    eval $test;
-
-    is($str, $expected, qq|input value is "$x_str"|);
-    is($x,   $x_str, "input object is unmodified");
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0
-
-# positive numbers
-
-0.000000000001:0.000000000001
-0.00000000001:0.00000000001
-0.0000000001:0.0000000001
-0.000000001:0.000000001
-0.00000001:0.00000001
-0.0000001:0.0000001
-0.000001:0.000001
-0.00001:0.00001
-0.0001:0.0001
-0.001:0.001
-0.01:0.01
-0.1:0.1
-1:1
-10:10
-100:100
-1000:1000
-10000:10000
-100000:100000
-1000000:1000000
-10000000:10000000
-100000000:100000000
-1000000000:1000000000
-10000000000:10000000000
-100000000000:100000000000
-1000000000000:1000000000000
-
-0.0000000000012:0.0000000000012
-0.000000000012:0.000000000012
-0.00000000012:0.00000000012
-0.0000000012:0.0000000012
-0.000000012:0.000000012
-0.00000012:0.00000012
-0.0000012:0.0000012
-0.000012:0.000012
-0.00012:0.00012
-0.0012:0.0012
-0.012:0.012
-0.12:0.12
-1.2:1.2
-12:12
-120:120
-1200:1200
-12000:12000
-120000:120000
-1200000:1200000
-12000000:12000000
-120000000:120000000
-1200000000:1200000000
-12000000000:12000000000
-120000000000:120000000000
-1200000000000:1200000000000
-
-0.00000000000123:0.00000000000123
-0.0000000000123:0.0000000000123
-0.000000000123:0.000000000123
-0.00000000123:0.00000000123
-0.0000000123:0.0000000123
-0.000000123:0.000000123
-0.00000123:0.00000123
-0.0000123:0.0000123
-0.000123:0.000123
-0.00123:0.00123
-0.0123:0.0123
-0.123:0.123
-1.23:1.23
-12.3:12.3
-123:123
-1230:1230
-12300:12300
-123000:123000
-1230000:1230000
-12300000:12300000
-123000000:123000000
-1230000000:1230000000
-12300000000:12300000000
-123000000000:123000000000
-1230000000000:1230000000000
-
-0.000000000001234:0.000000000001234
-0.00000000001234:0.00000000001234
-0.0000000001234:0.0000000001234
-0.000000001234:0.000000001234
-0.00000001234:0.00000001234
-0.0000001234:0.0000001234
-0.000001234:0.000001234
-0.00001234:0.00001234
-0.0001234:0.0001234
-0.001234:0.001234
-0.01234:0.01234
-0.1234:0.1234
-1.234:1.234
-12.34:12.34
-123.4:123.4
-1234:1234
-12340:12340
-123400:123400
-1234000:1234000
-12340000:12340000
-123400000:123400000
-1234000000:1234000000
-12340000000:12340000000
-123400000000:123400000000
-1234000000000:1234000000000
-
-0.000003141592:0.000003141592
-0.00003141592:0.00003141592
-0.0003141592:0.0003141592
-0.003141592:0.003141592
-0.03141592:0.03141592
-0.3141592:0.3141592
-3.141592:3.141592
-31.41592:31.41592
-314.1592:314.1592
-3141.592:3141.592
-31415.92:31415.92
-314159.2:314159.2
-3141592:3141592
-
-# negative numbers
-
--0.000000000001:-0.000000000001
--0.00000000001:-0.00000000001
--0.0000000001:-0.0000000001
--0.000000001:-0.000000001
--0.00000001:-0.00000001
--0.0000001:-0.0000001
--0.000001:-0.000001
--0.00001:-0.00001
--0.0001:-0.0001
--0.001:-0.001
--0.01:-0.01
--0.1:-0.1
--1:-1
--10:-10
--100:-100
--1000:-1000
--10000:-10000
--100000:-100000
--1000000:-1000000
--10000000:-10000000
--100000000:-100000000
--1000000000:-1000000000
--10000000000:-10000000000
--100000000000:-100000000000
--1000000000000:-1000000000000
-
--0.0000000000012:-0.0000000000012
--0.000000000012:-0.000000000012
--0.00000000012:-0.00000000012
--0.0000000012:-0.0000000012
--0.000000012:-0.000000012
--0.00000012:-0.00000012
--0.0000012:-0.0000012
--0.000012:-0.000012
--0.00012:-0.00012
--0.0012:-0.0012
--0.012:-0.012
--0.12:-0.12
--1.2:-1.2
--12:-12
--120:-120
--1200:-1200
--12000:-12000
--120000:-120000
--1200000:-1200000
--12000000:-12000000
--120000000:-120000000
--1200000000:-1200000000
--12000000000:-12000000000
--120000000000:-120000000000
--1200000000000:-1200000000000
-
--0.00000000000123:-0.00000000000123
--0.0000000000123:-0.0000000000123
--0.000000000123:-0.000000000123
--0.00000000123:-0.00000000123
--0.0000000123:-0.0000000123
--0.000000123:-0.000000123
--0.00000123:-0.00000123
--0.0000123:-0.0000123
--0.000123:-0.000123
--0.00123:-0.00123
--0.0123:-0.0123
--0.123:-0.123
--1.23:-1.23
--12.3:-12.3
--123:-123
--1230:-1230
--12300:-12300
--123000:-123000
--1230000:-1230000
--12300000:-12300000
--123000000:-123000000
--1230000000:-1230000000
--12300000000:-12300000000
--123000000000:-123000000000
--1230000000000:-1230000000000
-
--0.000000000001234:-0.000000000001234
--0.00000000001234:-0.00000000001234
--0.0000000001234:-0.0000000001234
--0.000000001234:-0.000000001234
--0.00000001234:-0.00000001234
--0.0000001234:-0.0000001234
--0.000001234:-0.000001234
--0.00001234:-0.00001234
--0.0001234:-0.0001234
--0.001234:-0.001234
--0.01234:-0.01234
--0.1234:-0.1234
--1.234:-1.234
--12.34:-12.34
--123.4:-123.4
--1234:-1234
--12340:-12340
--123400:-123400
--1234000:-1234000
--12340000:-12340000
--123400000:-123400000
--1234000000:-1234000000
--12340000000:-12340000000
--123400000000:-123400000000
--1234000000000:-1234000000000
-
--0.000003141592:-0.000003141592
--0.00003141592:-0.00003141592
--0.0003141592:-0.0003141592
--0.003141592:-0.003141592
--0.03141592:-0.03141592
--0.3141592:-0.3141592
--3.141592:-3.141592
--31.41592:-31.41592
--314.1592:-314.1592
--3141.592:-3141.592
--31415.92:-31415.92
--314159.2:-314159.2
--3141592:-3141592
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bdstr-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,155 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 220;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    my $test = qq|\$x = Math::BigInt -> new("$x_str");|
-             . qq| \$str = \$x -> bdstr();|;
-
-    note "\n$test\n\n";
-    eval $test;
-
-    is($str, $expected, qq|input value is "$x_str"|);
-    is($x,   $x_str, "input object is unmodified");
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0
-
-# positive numbers
-
-1:1
-10:10
-100:100
-1000:1000
-10000:10000
-100000:100000
-1000000:1000000
-10000000:10000000
-100000000:100000000
-1000000000:1000000000
-10000000000:10000000000
-100000000000:100000000000
-1000000000000:1000000000000
-
-12:12
-120:120
-1200:1200
-12000:12000
-120000:120000
-1200000:1200000
-12000000:12000000
-120000000:120000000
-1200000000:1200000000
-12000000000:12000000000
-120000000000:120000000000
-1200000000000:1200000000000
-
-123:123
-1230:1230
-12300:12300
-123000:123000
-1230000:1230000
-12300000:12300000
-123000000:123000000
-1230000000:1230000000
-12300000000:12300000000
-123000000000:123000000000
-1230000000000:1230000000000
-
-1234:1234
-12340:12340
-123400:123400
-1234000:1234000
-12340000:12340000
-123400000:123400000
-1234000000:1234000000
-12340000000:12340000000
-123400000000:123400000000
-1234000000000:1234000000000
-
-3:3
-31:31
-314:314
-3141:3141
-31415:31415
-314159:314159
-3141592:3141592
-
-# negative numbers
-
--1:-1
--10:-10
--100:-100
--1000:-1000
--10000:-10000
--100000:-100000
--1000000:-1000000
--10000000:-10000000
--100000000:-100000000
--1000000000:-1000000000
--10000000000:-10000000000
--100000000000:-100000000000
--1000000000000:-1000000000000
-
--12:-12
--120:-120
--1200:-1200
--12000:-12000
--120000:-120000
--1200000:-1200000
--12000000:-12000000
--120000000:-120000000
--1200000000:-1200000000
--12000000000:-12000000000
--120000000000:-120000000000
--1200000000000:-1200000000000
-
--123:-123
--1230:-1230
--12300:-12300
--123000:-123000
--1230000:-1230000
--12300000:-12300000
--123000000:-123000000
--1230000000:-1230000000
--12300000000:-12300000000
--123000000000:-123000000000
--1230000000000:-1230000000000
-
--1234:-1234
--12340:-12340
--123400:-123400
--1234000:-1234000
--12340000:-12340000
--123400000:-123400000
--1234000000:-1234000000
--12340000000:-12340000000
--123400000000:-123400000000
--1234000000000:-1234000000000
-
--3:-3
--31:-31
--314:-314
--3141:-3141
--31415:-31415
--314159:-314159
--3141592:-3141592
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,275 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 460;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    my $test = qq|\$x = Math::BigFloat -> new("$x_str");|
-             . qq| \$str = \$x -> bestr();|;
-
-    note "\n$test\n\n";
-    eval $test;
-
-    is($str, $expected, qq|input value is "$x_str"|);
-    is($x,   $x_str, "input object is unmodified");
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0e+0
-
-# positive numbers
-
-0.000000000001:1e-12
-0.00000000001:10e-12
-0.0000000001:100e-12
-0.000000001:1e-9
-0.00000001:10e-9
-0.0000001:100e-9
-0.000001:1e-6
-0.00001:10e-6
-0.0001:100e-6
-0.001:1e-3
-0.01:10e-3
-0.1:100e-3
-1:1e+0
-10:10e+0
-100:100e+0
-1000:1e+3
-10000:10e+3
-100000:100e+3
-1000000:1e+6
-10000000:10e+6
-100000000:100e+6
-1000000000:1e+9
-10000000000:10e+9
-100000000000:100e+9
-1000000000000:1e+12
-
-0.0000000000012:1.2e-12
-0.000000000012:12e-12
-0.00000000012:120e-12
-0.0000000012:1.2e-9
-0.000000012:12e-9
-0.00000012:120e-9
-0.0000012:1.2e-6
-0.000012:12e-6
-0.00012:120e-6
-0.0012:1.2e-3
-0.012:12e-3
-0.12:120e-3
-1.2:1.2e+0
-12:12e+0
-120:120e+0
-1200:1.2e+3
-12000:12e+3
-120000:120e+3
-1200000:1.2e+6
-12000000:12e+6
-120000000:120e+6
-1200000000:1.2e+9
-12000000000:12e+9
-120000000000:120e+9
-1200000000000:1.2e+12
-
-0.00000000000123:1.23e-12
-0.0000000000123:12.3e-12
-0.000000000123:123e-12
-0.00000000123:1.23e-9
-0.0000000123:12.3e-9
-0.000000123:123e-9
-0.00000123:1.23e-6
-0.0000123:12.3e-6
-0.000123:123e-6
-0.00123:1.23e-3
-0.0123:12.3e-3
-0.123:123e-3
-1.23:1.23e+0
-12.3:12.3e+0
-123:123e+0
-1230:1.23e+3
-12300:12.3e+3
-123000:123e+3
-1230000:1.23e+6
-12300000:12.3e+6
-123000000:123e+6
-1230000000:1.23e+9
-12300000000:12.3e+9
-123000000000:123e+9
-1230000000000:1.23e+12
-
-0.000000000001234:1.234e-12
-0.00000000001234:12.34e-12
-0.0000000001234:123.4e-12
-0.000000001234:1.234e-9
-0.00000001234:12.34e-9
-0.0000001234:123.4e-9
-0.000001234:1.234e-6
-0.00001234:12.34e-6
-0.0001234:123.4e-6
-0.001234:1.234e-3
-0.01234:12.34e-3
-0.1234:123.4e-3
-1.234:1.234e+0
-12.34:12.34e+0
-123.4:123.4e+0
-1234:1.234e+3
-12340:12.34e+3
-123400:123.4e+3
-1234000:1.234e+6
-12340000:12.34e+6
-123400000:123.4e+6
-1234000000:1.234e+9
-12340000000:12.34e+9
-123400000000:123.4e+9
-1234000000000:1.234e+12
-
-0.000003141592:3.141592e-6
-0.00003141592:31.41592e-6
-0.0003141592:314.1592e-6
-0.003141592:3.141592e-3
-0.03141592:31.41592e-3
-0.3141592:314.1592e-3
-3.141592:3.141592e+0
-31.41592:31.41592e+0
-314.1592:314.1592e+0
-3141.592:3.141592e+3
-31415.92:31.41592e+3
-314159.2:314.1592e+3
-3141592:3.141592e+6
-
-# negative numbers
-
--0.000000000001:-1e-12
--0.00000000001:-10e-12
--0.0000000001:-100e-12
--0.000000001:-1e-9
--0.00000001:-10e-9
--0.0000001:-100e-9
--0.000001:-1e-6
--0.00001:-10e-6
--0.0001:-100e-6
--0.001:-1e-3
--0.01:-10e-3
--0.1:-100e-3
--1:-1e+0
--10:-10e+0
--100:-100e+0
--1000:-1e+3
--10000:-10e+3
--100000:-100e+3
--1000000:-1e+6
--10000000:-10e+6
--100000000:-100e+6
--1000000000:-1e+9
--10000000000:-10e+9
--100000000000:-100e+9
--1000000000000:-1e+12
-
--0.0000000000012:-1.2e-12
--0.000000000012:-12e-12
--0.00000000012:-120e-12
--0.0000000012:-1.2e-9
--0.000000012:-12e-9
--0.00000012:-120e-9
--0.0000012:-1.2e-6
--0.000012:-12e-6
--0.00012:-120e-6
--0.0012:-1.2e-3
--0.012:-12e-3
--0.12:-120e-3
--1.2:-1.2e+0
--12:-12e+0
--120:-120e+0
--1200:-1.2e+3
--12000:-12e+3
--120000:-120e+3
--1200000:-1.2e+6
--12000000:-12e+6
--120000000:-120e+6
--1200000000:-1.2e+9
--12000000000:-12e+9
--120000000000:-120e+9
--1200000000000:-1.2e+12
-
--0.00000000000123:-1.23e-12
--0.0000000000123:-12.3e-12
--0.000000000123:-123e-12
--0.00000000123:-1.23e-9
--0.0000000123:-12.3e-9
--0.000000123:-123e-9
--0.00000123:-1.23e-6
--0.0000123:-12.3e-6
--0.000123:-123e-6
--0.00123:-1.23e-3
--0.0123:-12.3e-3
--0.123:-123e-3
--1.23:-1.23e+0
--12.3:-12.3e+0
--123:-123e+0
--1230:-1.23e+3
--12300:-12.3e+3
--123000:-123e+3
--1230000:-1.23e+6
--12300000:-12.3e+6
--123000000:-123e+6
--1230000000:-1.23e+9
--12300000000:-12.3e+9
--123000000000:-123e+9
--1230000000000:-1.23e+12
-
--0.000000000001234:-1.234e-12
--0.00000000001234:-12.34e-12
--0.0000000001234:-123.4e-12
--0.000000001234:-1.234e-9
--0.00000001234:-12.34e-9
--0.0000001234:-123.4e-9
--0.000001234:-1.234e-6
--0.00001234:-12.34e-6
--0.0001234:-123.4e-6
--0.001234:-1.234e-3
--0.01234:-12.34e-3
--0.1234:-123.4e-3
--1.234:-1.234e+0
--12.34:-12.34e+0
--123.4:-123.4e+0
--1234:-1.234e+3
--12340:-12.34e+3
--123400:-123.4e+3
--1234000:-1.234e+6
--12340000:-12.34e+6
--123400000:-123.4e+6
--1234000000:-1.234e+9
--12340000000:-12.34e+9
--123400000000:-123.4e+9
--1234000000000:-1.234e+12
-
--0.000003141592:-3.141592e-6
--0.00003141592:-31.41592e-6
--0.0003141592:-314.1592e-6
--0.003141592:-3.141592e-3
--0.03141592:-31.41592e-3
--0.3141592:-314.1592e-3
--3.141592:-3.141592e+0
--31.41592:-31.41592e+0
--314.1592:-314.1592e+0
--3141.592:-3.141592e+3
--31415.92:-31.41592e+3
--314159.2:-314.1592e+3
--3141592:-3.141592e+6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bestr-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,155 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 220;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    my $test = qq|\$x = Math::BigInt -> new("$x_str");|
-             . qq| \$str = \$x -> bestr();|;
-
-    note "\n$test\n\n";
-    eval $test;
-
-    is($str, $expected, qq|input value is "$x_str"|);
-    is($x,   $x_str, "input object is unmodified");
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0e+0
-
-# positive numbers
-
-1:1e+0
-10:10e+0
-100:100e+0
-1000:1e+3
-10000:10e+3
-100000:100e+3
-1000000:1e+6
-10000000:10e+6
-100000000:100e+6
-1000000000:1e+9
-10000000000:10e+9
-100000000000:100e+9
-1000000000000:1e+12
-
-12:12e+0
-120:120e+0
-1200:1.2e+3
-12000:12e+3
-120000:120e+3
-1200000:1.2e+6
-12000000:12e+6
-120000000:120e+6
-1200000000:1.2e+9
-12000000000:12e+9
-120000000000:120e+9
-1200000000000:1.2e+12
-
-123:123e+0
-1230:1.23e+3
-12300:12.3e+3
-123000:123e+3
-1230000:1.23e+6
-12300000:12.3e+6
-123000000:123e+6
-1230000000:1.23e+9
-12300000000:12.3e+9
-123000000000:123e+9
-1230000000000:1.23e+12
-
-1234:1.234e+3
-12340:12.34e+3
-123400:123.4e+3
-1234000:1.234e+6
-12340000:12.34e+6
-123400000:123.4e+6
-1234000000:1.234e+9
-12340000000:12.34e+9
-123400000000:123.4e+9
-1234000000000:1.234e+12
-
-3:3e+0
-31:31e+0
-314:314e+0
-3141:3.141e+3
-31415:31.415e+3
-314159:314.159e+3
-3141592:3.141592e+6
-
-# negative numbers
-
--1:-1e+0
--10:-10e+0
--100:-100e+0
--1000:-1e+3
--10000:-10e+3
--100000:-100e+3
--1000000:-1e+6
--10000000:-10e+6
--100000000:-100e+6
--1000000000:-1e+9
--10000000000:-10e+9
--100000000000:-100e+9
--1000000000000:-1e+12
-
--12:-12e+0
--120:-120e+0
--1200:-1.2e+3
--12000:-12e+3
--120000:-120e+3
--1200000:-1.2e+6
--12000000:-12e+6
--120000000:-120e+6
--1200000000:-1.2e+9
--12000000000:-12e+9
--120000000000:-120e+9
--1200000000000:-1.2e+12
-
--123:-123e+0
--1230:-1.23e+3
--12300:-12.3e+3
--123000:-123e+3
--1230000:-1.23e+6
--12300000:-12.3e+6
--123000000:-123e+6
--1230000000:-1.23e+9
--12300000000:-12.3e+9
--123000000000:-123e+9
--1230000000000:-1.23e+12
-
--1234:-1.234e+3
--12340:-12.34e+3
--123400:-123.4e+3
--1234000:-1.234e+6
--12340000:-12.34e+6
--123400000:-123.4e+6
--1234000000:-1.234e+9
--12340000000:-12.34e+9
--123400000000:-123.4e+9
--1234000000000:-1.234e+12
-
--3:-3e+0
--31:-31e+0
--314:-314e+0
--3141:-3.141e+3
--31415:-31.415e+3
--314159:-314.159e+3
--3141592:-3.141592e+6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bfib-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bfib-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bfib-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bfib-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,86 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 15;
-
-use Math::BigInt;
-
-my $x;
-
-###############################################################################
-# Scalar context.
-###############################################################################
-
-my $y;
-
-# Finite numbers.
-
-$x = Math::BigInt -> new("-20");
-$y = $x -> bfib();
-is($y, "-6765", "bfib(-20)");
-
-$x = Math::BigInt -> new("-15");
-$y = $x -> bfib();
-is($y, "610", "bfib(-15)");
-
-$x = Math::BigInt -> new("-2");
-$y = $x -> bfib();
-is($y, "-1", "bfib(-2)");
-
-$x = Math::BigInt -> new("-1");
-$y = $x -> bfib();
-is($y, "1", "bfib(-1)");
-
-$x = Math::BigInt -> new("0");
-$y = $x -> bfib();
-is($y, "0", "bfib(0)");
-
-$x = Math::BigInt -> new("1");
-$y = $x -> bfib();
-is($y, "1", "bfib(1)");
-
-$x = Math::BigInt -> new("2");
-$y = $x -> bfib();
-is($y, "1", "bfib(2)");
-
-$x = Math::BigInt -> new("15");
-$y = $x -> bfib();
-is($y, "610", "bfib(15)");
-
-$x = Math::BigInt -> new("20");
-$y = $x -> bfib();
-is($y, "6765", "bfib(20)");
-
-$x = Math::BigInt -> new("250");
-$y = $x -> bfib();
-is($y, "7896325826131730509282738943634332893686268675876375", "bfib(250)");
-
-# Infinites and NaN.
-
-$x = Math::BigInt -> binf("+");
-$y = $x -> bfib();
-is($y, "inf", "bfib(+inf)");
-
-$x = Math::BigInt -> binf("-");
-$y = $x -> bfib();
-is($y, "NaN", "bfib(-inf)");
-
-$x = Math::BigInt -> bnan();
-$y = $x -> bfib();
-is($y, "NaN", "bfib(NaN)");
-
-###############################################################################
-# List context.
-###############################################################################
-
-my @y;
-
-$x = Math::BigInt -> new("10");
-@y = $x -> bfib();
-is_deeply(\@y, [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55], "bfib(10)");
-
-$x = Math::BigInt -> new("-10");
-@y = $x -> bfib();
-is_deeply(\@y, [0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55], "bfib(-10)");
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc,v
diff -u -p -a -u -p -r1.7 bigfltpm.inc
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/bigfltpm.inc	21 Feb 2024 15:47:01 -0000
@@ -44,7 +44,8 @@ while (<DATA>) {
     } elsif ($f eq "binf") {
         $try .= qq| \$x->binf("$args[1]");|;
     } elsif ($f eq "bone") {
-        $try .= qq| \$x->bone("$args[1]");|;
+        $try .= length($args[1]) ? qq| \$x->bone("$args[1]");|
+                                 : qq| \$x->bone();|;
     } elsif ($f eq "bstr") {
         $try .= qq| \$x->accuracy($args[1]); \$x->precision($args[2]);|;
         $try .= ' $x->bstr();';
@@ -524,8 +525,8 @@ NaN:10:NaN
 -inf:10:NaN
 1.2:10:0.3623577545
 2.4:12:-0.737393715541
-0:10:1
-0:20:1
+0:10:1.000000000
+0:20:1.0000000000000000000
 1:10:0.5403023059
 1:12:0.540302305868
 
@@ -867,7 +868,7 @@ abc:NaN
 0::1
 -2::1
 abc::1
-2:abc:1
+2::1
 
 &bsstr
 +inf:inf
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc,v
diff -u -p -a -u -p -r1.7 bigintpm.inc
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.inc	21 Feb 2024 15:47:01 -0000
@@ -1415,13 +1415,12 @@ abc:NaN
 2:-:-1
 invalid:-:-1
 invalid:+:1
-2:abc:1
 3::1
 
 &binf
 1:+:inf
 2:-:-inf
-3:abc:inf
+3:+inf:inf
 
 &is_nan
 123:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t,v
diff -u -p -a -u -p -r1.7 bigintpm.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/bigintpm.t	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 4280            # tests in require'd file
+use Test::More tests => 4278            # tests in require'd file
                          + 20;          # tests in this file
 
 use Math::BigInt only => 'Calc';
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t,v
diff -u -p -a -u -p -r1.6 biglog.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t	15 Feb 2023 01:36:20 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/biglog.t	21 Feb 2024 15:47:01 -0000
@@ -36,7 +36,6 @@ is($class->new(2)->bexp(), '7',  "$class
 is($class->new(3)->bexp(), '20', "$class->new(3)->bexp()");
 
 ###############################################################################
-###############################################################################
 # Math::BigFloat tests
 
 ###############################################################################
@@ -146,7 +145,7 @@ is($class->new("10")->bpow("0.6", 10), "
    qq|$class->new("10")->bpow("0.6", 10)|);
 
 # blog should handle bigint input
-is(Math::BigFloat::blog(Math::BigInt->new(100), 10), 2, "blog(100)");
+is(Math::BigFloat->blog(Math::BigInt->new(100), 10), 2, "blog(100)");
 
 ###############################################################################
 # some integer results
@@ -190,9 +189,9 @@ test_bpow('9.86902225', '0.5', undef, '3
 
 test_bpow('0.2', '0.41', 10, '0.5169187652');
 
-is($class->new("0.01")->bpow("28.4", 40)->bsstr(),
-   '1584893192461113485202101373391507013269e-96',
-   qq|$class->new("0.01")->bpow("28.4", 40)->bsstr()|);
+is($class->new("0.1")->bpow("28.4", 40)->bsstr(),
+   '3981071705534972507702523050877520434877e-68',
+   qq|$class->new("0.1")->bpow("28.4", 40)->bsstr()|);
 
 # The following test takes too long.
 #is($class->new("2")->bpow("-1034.5", 40)->bsstr(),
@@ -230,8 +229,6 @@ is($class->new("-394.84010945715266885")
    qq|$class->new("-118.5")->bexp(20)->bsstr()|);
 
 # all done
-
-1;
 
 ###############################################################################
 
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/blucas-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/blucas-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/blucas-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/blucas-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,86 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 15;
-
-use Math::BigInt;
-
-my $x;
-
-###############################################################################
-# Scalar context.
-###############################################################################
-
-my $y;
-
-# Finite numbers.
-
-$x = Math::BigInt -> new("-20");
-$y = $x -> blucas();
-is($y, "-15127", "blucas(-20)");
-
-$x = Math::BigInt -> new("-15");
-$y = $x -> blucas();
-is($y, "1364", "blucas(-15)");
-
-$x = Math::BigInt -> new("-2");
-$y = $x -> blucas();
-is($y, "-3", "blucas(-2)");
-
-$x = Math::BigInt -> new("-1");
-$y = $x -> blucas();
-is($y, "1", "blucas(-1)");
-
-$x = Math::BigInt -> new("0");
-$y = $x -> blucas();
-is($y, "2", "blucas(0)");
-
-$x = Math::BigInt -> new("1");
-$y = $x -> blucas();
-is($y, "1", "blucas(1)");
-
-$x = Math::BigInt -> new("2");
-$y = $x -> blucas();
-is($y, "3", "blucas(2)");
-
-$x = Math::BigInt -> new("15");
-$y = $x -> blucas();
-is($y, "1364", "blucas(15)");
-
-$x = Math::BigInt -> new("20");
-$y = $x -> blucas();
-is($y, "15127", "blucas(20)");
-
-$x = Math::BigInt -> new("250");
-$y = $x -> blucas();
-is($y, "17656721319717734662791328845675730903632844218828123", "blucas(250)");
-
-# Infinites and NaN.
-
-$x = Math::BigInt -> binf("+");
-$y = $x -> blucas();
-is($y, "inf", "blucas(+inf)");
-
-$x = Math::BigInt -> binf("-");
-$y = $x -> blucas();
-is($y, "NaN", "blucas(-inf)");
-
-$x = Math::BigInt -> bnan();
-$y = $x -> blucas();
-is($y, "NaN", "blucas(NaN)");
-
-###############################################################################
-# List context.
-###############################################################################
-
-my @y;
-
-$x = Math::BigInt -> new("10");
-@y = $x -> blucas();
-is_deeply(\@y, [2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123], "blucas(10)");
-
-$x = Math::BigInt -> new("-10");
-@y = $x -> blucas();
-is_deeply(\@y, [2, 1, -3, 4, -7, 11, -18, 29, -47, 76, -123], "blucas(-10)");
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1451 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 4957;
-
-my $class;
-
-BEGIN {
-    $class = 'Math::BigFloat';
-    use_ok($class);
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($nval, $kval, $nokval) = split /:/;
-    my ($n, $k, $got, @got);
-
-    for my $context_is_scalar (0, 1) {
-        for my $k_is_scalar (0, 1) {
-
-            my $test = qq|\$n = $class -> new("$nval");|;
-
-            $test .= $k_is_scalar
-                     ? qq| \$k = "$kval";|
-                     : qq| \$k = $class -> new("$kval");|;
-
-            $test .= $context_is_scalar
-                     ? qq| \$got = \$n -> bnok(\$k);|
-                     : qq| \@got = \$n -> bnok(\$k);|;
-
-            my $desc = "bnok() in ";
-            $desc .= $context_is_scalar ? "scalar context" : "list context";
-            $desc .= $k_is_scalar ? " with k as scalar" : " with k as object";
-
-            subtest $desc,
-              sub {
-                  plan tests => $context_is_scalar ? 7 : 8;
-
-                  eval $test;
-                  is($@, "", "'$test' gives emtpy \$\@");
-
-                  if ($context_is_scalar) {
-
-                      # Check output.
-
-                      is(ref($got), $class,
-                         "'$test' output arg is a $class");
-
-                      is($got -> bstr(), $nokval,
-                         "'$test' output arg has the right value");
-
-                  } else {
-
-                      # Check number of output arguments.
-
-                      cmp_ok(scalar @got, '==', 1,
-                             "'$test' gives one output arg");
-
-                      # Check output.
-
-                      is(ref($got[0]), $class,
-                         "'$test' output arg is a $class");
-
-                      is($got[0] -> bstr(), $nokval,
-                         "'$test' output arg has the right value");
-                  }
-
-                  # Check the invocand.
-
-                  is(ref($n), $class,
-                     "'$test' invocand is still a $class");
-
-                  is($n -> bstr(), $nokval,
-                     "'$test' invocand has the right value");
-
-                  # Check the input argument.
-
-                  if ($k_is_scalar) {
-
-                      is(ref($k), '',
-                         "'$test' second input arg is still a scalar");
-
-                      is($k, $kval,
-                         "'$test' second input arg is unmodified");
-
-                  } else {
-
-                      is(ref($k), $class,
-                         "'$test' second input arg is still a $class");
-
-                      is($k -> bstr(), $kval,
-                         "'$test' second input arg is unmodified");
-                  }
-              };
-        }
-    }
-}
-
-__DATA__
-
-# n and/or k is NaN
-
-NaN:NaN:NaN
-NaN:0:NaN
-NaN:3:NaN
-3:NaN:NaN
-NaN:-3:NaN
--3:NaN:NaN
-
-# n = inf
-
-inf:-inf:NaN
-inf:-3:0
-inf:-2:0
-inf:-1:0
-inf:0:1
-inf:1:inf
-inf:2:inf
-inf:3:inf
-inf:inf:NaN
-
-# n = -inf
-
--inf:-inf:NaN
--inf:-3:0
--inf:-2:0
--inf:-1:0
--inf:0:1
--inf:1:-inf
--inf:2:inf
--inf:3:-inf
--inf:inf:NaN
-
-# k = inf
-
--3:inf:NaN
--2:inf:NaN
--1:inf:NaN
-0:inf:NaN
-1:inf:NaN
-2:inf:NaN
-3:inf:NaN
-
-# k = -inf
-
--3:-inf:NaN
--2:-inf:NaN
--1:-inf:NaN
-0:-inf:NaN
-1:-inf:NaN
-2:-inf:NaN
-3:-inf:NaN
-
-# n = -15, k = n - 15 ... n + 15
-
--15:-30:-77558760
--15:-29:40116600
--15:-28:-20058300
--15:-27:9657700
--15:-26:-4457400
--15:-25:1961256
--15:-24:-817190
--15:-23:319770
--15:-22:-116280
--15:-21:38760
--15:-20:-11628
--15:-19:3060
--15:-18:-680
--15:-17:120
--15:-16:-15
--15:-15:1
--15:-14:0
--15:-13:0
--15:-12:0
--15:-11:0
--15:-10:0
--15:-9:0
--15:-8:0
--15:-7:0
--15:-6:0
--15:-5:0
--15:-4:0
--15:-3:0
--15:-2:0
--15:-1:0
--15:0:1
--15:1:-15
--15:2:120
--15:3:-680
--15:4:3060
--15:5:-11628
--15:6:38760
--15:7:-116280
--15:8:319770
--15:9:-817190
--15:10:1961256
--15:11:-4457400
--15:12:9657700
--15:13:-20058300
--15:14:40116600
--15:15:-77558760
-
-# n = -14, k = n - 15 ... n + 15
-
--14:-29:-37442160
--14:-28:20058300
--14:-27:-10400600
--14:-26:5200300
--14:-25:-2496144
--14:-24:1144066
--14:-23:-497420
--14:-22:203490
--14:-21:-77520
--14:-20:27132
--14:-19:-8568
--14:-18:2380
--14:-17:-560
--14:-16:105
--14:-15:-14
--14:-14:1
--14:-13:0
--14:-12:0
--14:-11:0
--14:-10:0
--14:-9:0
--14:-8:0
--14:-7:0
--14:-6:0
--14:-5:0
--14:-4:0
--14:-3:0
--14:-2:0
--14:-1:0
--14:0:1
--14:1:-14
--14:2:105
--14:3:-560
--14:4:2380
--14:5:-8568
--14:6:27132
--14:7:-77520
--14:8:203490
--14:9:-497420
--14:10:1144066
--14:11:-2496144
--14:12:5200300
--14:13:-10400600
--14:14:20058300
--14:15:-37442160
-
-# n = -13, k = n - 15 ... n + 15
-
--13:-28:-17383860
--13:-27:9657700
--13:-26:-5200300
--13:-25:2704156
--13:-24:-1352078
--13:-23:646646
--13:-22:-293930
--13:-21:125970
--13:-20:-50388
--13:-19:18564
--13:-18:-6188
--13:-17:1820
--13:-16:-455
--13:-15:91
--13:-14:-13
--13:-13:1
--13:-12:0
--13:-11:0
--13:-10:0
--13:-9:0
--13:-8:0
--13:-7:0
--13:-6:0
--13:-5:0
--13:-4:0
--13:-3:0
--13:-2:0
--13:-1:0
--13:0:1
--13:1:-13
--13:2:91
--13:3:-455
--13:4:1820
--13:5:-6188
--13:6:18564
--13:7:-50388
--13:8:125970
--13:9:-293930
--13:10:646646
--13:11:-1352078
--13:12:2704156
--13:13:-5200300
--13:14:9657700
--13:15:-17383860
-
-# n = -12, k = n - 15 ... n + 15
-
--12:-27:-7726160
--12:-26:4457400
--12:-25:-2496144
--12:-24:1352078
--12:-23:-705432
--12:-22:352716
--12:-21:-167960
--12:-20:75582
--12:-19:-31824
--12:-18:12376
--12:-17:-4368
--12:-16:1365
--12:-15:-364
--12:-14:78
--12:-13:-12
--12:-12:1
--12:-11:0
--12:-10:0
--12:-9:0
--12:-8:0
--12:-7:0
--12:-6:0
--12:-5:0
--12:-4:0
--12:-3:0
--12:-2:0
--12:-1:0
--12:0:1
--12:1:-12
--12:2:78
--12:3:-364
--12:4:1365
--12:5:-4368
--12:6:12376
--12:7:-31824
--12:8:75582
--12:9:-167960
--12:10:352716
--12:11:-705432
--12:12:1352078
--12:13:-2496144
--12:14:4457400
--12:15:-7726160
-
-# n = -11, k = n - 15 ... n + 15
-
--11:-26:-3268760
--11:-25:1961256
--11:-24:-1144066
--11:-23:646646
--11:-22:-352716
--11:-21:184756
--11:-20:-92378
--11:-19:43758
--11:-18:-19448
--11:-17:8008
--11:-16:-3003
--11:-15:1001
--11:-14:-286
--11:-13:66
--11:-12:-11
--11:-11:1
--11:-10:0
--11:-9:0
--11:-8:0
--11:-7:0
--11:-6:0
--11:-5:0
--11:-4:0
--11:-3:0
--11:-2:0
--11:-1:0
--11:0:1
--11:1:-11
--11:2:66
--11:3:-286
--11:4:1001
--11:5:-3003
--11:6:8008
--11:7:-19448
--11:8:43758
--11:9:-92378
--11:10:184756
--11:11:-352716
--11:12:646646
--11:13:-1144066
--11:14:1961256
--11:15:-3268760
-
-# n = -10, k = n - 15 ... n + 15
-
--10:-25:-1307504
--10:-24:817190
--10:-23:-497420
--10:-22:293930
--10:-21:-167960
--10:-20:92378
--10:-19:-48620
--10:-18:24310
--10:-17:-11440
--10:-16:5005
--10:-15:-2002
--10:-14:715
--10:-13:-220
--10:-12:55
--10:-11:-10
--10:-10:1
--10:-9:0
--10:-8:0
--10:-7:0
--10:-6:0
--10:-5:0
--10:-4:0
--10:-3:0
--10:-2:0
--10:-1:0
--10:0:1
--10:1:-10
--10:2:55
--10:3:-220
--10:4:715
--10:5:-2002
--10:6:5005
--10:7:-11440
--10:8:24310
--10:9:-48620
--10:10:92378
--10:11:-167960
--10:12:293930
--10:13:-497420
--10:14:817190
--10:15:-1307504
-
-# n = -9, k = n - 15 ... n + 15
-
--9:-24:-490314
--9:-23:319770
--9:-22:-203490
--9:-21:125970
--9:-20:-75582
--9:-19:43758
--9:-18:-24310
--9:-17:12870
--9:-16:-6435
--9:-15:3003
--9:-14:-1287
--9:-13:495
--9:-12:-165
--9:-11:45
--9:-10:-9
--9:-9:1
--9:-8:0
--9:-7:0
--9:-6:0
--9:-5:0
--9:-4:0
--9:-3:0
--9:-2:0
--9:-1:0
--9:0:1
--9:1:-9
--9:2:45
--9:3:-165
--9:4:495
--9:5:-1287
--9:6:3003
--9:7:-6435
--9:8:12870
--9:9:-24310
--9:10:43758
--9:11:-75582
--9:12:125970
--9:13:-203490
--9:14:319770
--9:15:-490314
-
-# n = -8, k = n - 15 ... n + 15
-
--8:-23:-170544
--8:-22:116280
--8:-21:-77520
--8:-20:50388
--8:-19:-31824
--8:-18:19448
--8:-17:-11440
--8:-16:6435
--8:-15:-3432
--8:-14:1716
--8:-13:-792
--8:-12:330
--8:-11:-120
--8:-10:36
--8:-9:-8
--8:-8:1
--8:-7:0
--8:-6:0
--8:-5:0
--8:-4:0
--8:-3:0
--8:-2:0
--8:-1:0
--8:0:1
--8:1:-8
--8:2:36
--8:3:-120
--8:4:330
--8:5:-792
--8:6:1716
--8:7:-3432
--8:8:6435
--8:9:-11440
--8:10:19448
--8:11:-31824
--8:12:50388
--8:13:-77520
--8:14:116280
--8:15:-170544
-
-# n = -7, k = n - 15 ... n + 15
-
--7:-22:-54264
--7:-21:38760
--7:-20:-27132
--7:-19:18564
--7:-18:-12376
--7:-17:8008
--7:-16:-5005
--7:-15:3003
--7:-14:-1716
--7:-13:924
--7:-12:-462
--7:-11:210
--7:-10:-84
--7:-9:28
--7:-8:-7
--7:-7:1
--7:-6:0
--7:-5:0
--7:-4:0
--7:-3:0
--7:-2:0
--7:-1:0
--7:0:1
--7:1:-7
--7:2:28
--7:3:-84
--7:4:210
--7:5:-462
--7:6:924
--7:7:-1716
--7:8:3003
--7:9:-5005
--7:10:8008
--7:11:-12376
--7:12:18564
--7:13:-27132
--7:14:38760
--7:15:-54264
-
-# n = -6, k = n - 15 ... n + 15
-
--6:-21:-15504
--6:-20:11628
--6:-19:-8568
--6:-18:6188
--6:-17:-4368
--6:-16:3003
--6:-15:-2002
--6:-14:1287
--6:-13:-792
--6:-12:462
--6:-11:-252
--6:-10:126
--6:-9:-56
--6:-8:21
--6:-7:-6
--6:-6:1
--6:-5:0
--6:-4:0
--6:-3:0
--6:-2:0
--6:-1:0
--6:0:1
--6:1:-6
--6:2:21
--6:3:-56
--6:4:126
--6:5:-252
--6:6:462
--6:7:-792
--6:8:1287
--6:9:-2002
--6:10:3003
--6:11:-4368
--6:12:6188
--6:13:-8568
--6:14:11628
--6:15:-15504
-
-# n = -5, k = n - 15 ... n + 15
-
--5:-20:-3876
--5:-19:3060
--5:-18:-2380
--5:-17:1820
--5:-16:-1365
--5:-15:1001
--5:-14:-715
--5:-13:495
--5:-12:-330
--5:-11:210
--5:-10:-126
--5:-9:70
--5:-8:-35
--5:-7:15
--5:-6:-5
--5:-5:1
--5:-4:0
--5:-3:0
--5:-2:0
--5:-1:0
--5:0:1
--5:1:-5
--5:2:15
--5:3:-35
--5:4:70
--5:5:-126
--5:6:210
--5:7:-330
--5:8:495
--5:9:-715
--5:10:1001
--5:11:-1365
--5:12:1820
--5:13:-2380
--5:14:3060
--5:15:-3876
-
-# n = -4, k = n - 15 ... n + 15
-
--4:-19:-816
--4:-18:680
--4:-17:-560
--4:-16:455
--4:-15:-364
--4:-14:286
--4:-13:-220
--4:-12:165
--4:-11:-120
--4:-10:84
--4:-9:-56
--4:-8:35
--4:-7:-20
--4:-6:10
--4:-5:-4
--4:-4:1
--4:-3:0
--4:-2:0
--4:-1:0
--4:0:1
--4:1:-4
--4:2:10
--4:3:-20
--4:4:35
--4:5:-56
--4:6:84
--4:7:-120
--4:8:165
--4:9:-220
--4:10:286
--4:11:-364
--4:12:455
--4:13:-560
--4:14:680
--4:15:-816
-
-# n = -3, k = n - 15 ... n + 15
-
--3:-18:-136
--3:-17:120
--3:-16:-105
--3:-15:91
--3:-14:-78
--3:-13:66
--3:-12:-55
--3:-11:45
--3:-10:-36
--3:-9:28
--3:-8:-21
--3:-7:15
--3:-6:-10
--3:-5:6
--3:-4:-3
--3:-3:1
--3:-2:0
--3:-1:0
--3:0:1
--3:1:-3
--3:2:6
--3:3:-10
--3:4:15
--3:5:-21
--3:6:28
--3:7:-36
--3:8:45
--3:9:-55
--3:10:66
--3:11:-78
--3:12:91
--3:13:-105
--3:14:120
--3:15:-136
-
-# n = -2, k = n - 15 ... n + 15
-
--2:-17:-16
--2:-16:15
--2:-15:-14
--2:-14:13
--2:-13:-12
--2:-12:11
--2:-11:-10
--2:-10:9
--2:-9:-8
--2:-8:7
--2:-7:-6
--2:-6:5
--2:-5:-4
--2:-4:3
--2:-3:-2
--2:-2:1
--2:-1:0
--2:0:1
--2:1:-2
--2:2:3
--2:3:-4
--2:4:5
--2:5:-6
--2:6:7
--2:7:-8
--2:8:9
--2:9:-10
--2:10:11
--2:11:-12
--2:12:13
--2:13:-14
--2:14:15
--2:15:-16
-
-# n = -1, k = n - 15 ... n + 15
-
--1:-16:-1
--1:-15:1
--1:-14:-1
--1:-13:1
--1:-12:-1
--1:-11:1
--1:-10:-1
--1:-9:1
--1:-8:-1
--1:-7:1
--1:-6:-1
--1:-5:1
--1:-4:-1
--1:-3:1
--1:-2:-1
--1:-1:1
--1:0:1
--1:1:-1
--1:2:1
--1:3:-1
--1:4:1
--1:5:-1
--1:6:1
--1:7:-1
--1:8:1
--1:9:-1
--1:10:1
--1:11:-1
--1:12:1
--1:13:-1
--1:14:1
--1:15:-1
-
-# n = 0, k = n - 15 ... n + 15
-
-0:-15:0
-0:-14:0
-0:-13:0
-0:-12:0
-0:-11:0
-0:-10:0
-0:-9:0
-0:-8:0
-0:-7:0
-0:-6:0
-0:-5:0
-0:-4:0
-0:-3:0
-0:-2:0
-0:-1:0
-0:0:1
-0:1:0
-0:2:0
-0:3:0
-0:4:0
-0:5:0
-0:6:0
-0:7:0
-0:8:0
-0:9:0
-0:10:0
-0:11:0
-0:12:0
-0:13:0
-0:14:0
-0:15:0
-
-# n = 1, k = n - 15 ... n + 15
-
-1:-15:0
-1:-14:0
-1:-13:0
-1:-12:0
-1:-11:0
-1:-10:0
-1:-9:0
-1:-8:0
-1:-7:0
-1:-6:0
-1:-5:0
-1:-4:0
-1:-3:0
-1:-2:0
-1:-1:0
-1:0:1
-1:1:1
-1:2:0
-1:3:0
-1:4:0
-1:5:0
-1:6:0
-1:7:0
-1:8:0
-1:9:0
-1:10:0
-1:11:0
-1:12:0
-1:13:0
-1:14:0
-1:15:0
-1:16:0
-
-# n = 2, k = n - 15 ... n + 15
-
-2:-15:0
-2:-14:0
-2:-13:0
-2:-12:0
-2:-11:0
-2:-10:0
-2:-9:0
-2:-8:0
-2:-7:0
-2:-6:0
-2:-5:0
-2:-4:0
-2:-3:0
-2:-2:0
-2:-1:0
-2:0:1
-2:1:2
-2:2:1
-2:3:0
-2:4:0
-2:5:0
-2:6:0
-2:7:0
-2:8:0
-2:9:0
-2:10:0
-2:11:0
-2:12:0
-2:13:0
-2:14:0
-2:15:0
-2:16:0
-2:17:0
-
-# n = 3, k = n - 15 ... n + 15
-
-3:-15:0
-3:-14:0
-3:-13:0
-3:-12:0
-3:-11:0
-3:-10:0
-3:-9:0
-3:-8:0
-3:-7:0
-3:-6:0
-3:-5:0
-3:-4:0
-3:-3:0
-3:-2:0
-3:-1:0
-3:0:1
-3:1:3
-3:2:3
-3:3:1
-3:4:0
-3:5:0
-3:6:0
-3:7:0
-3:8:0
-3:9:0
-3:10:0
-3:11:0
-3:12:0
-3:13:0
-3:14:0
-3:15:0
-3:16:0
-3:17:0
-3:18:0
-
-# n = 4, k = n - 15 ... n + 15
-
-4:-15:0
-4:-14:0
-4:-13:0
-4:-12:0
-4:-11:0
-4:-10:0
-4:-9:0
-4:-8:0
-4:-7:0
-4:-6:0
-4:-5:0
-4:-4:0
-4:-3:0
-4:-2:0
-4:-1:0
-4:0:1
-4:1:4
-4:2:6
-4:3:4
-4:4:1
-4:5:0
-4:6:0
-4:7:0
-4:8:0
-4:9:0
-4:10:0
-4:11:0
-4:12:0
-4:13:0
-4:14:0
-4:15:0
-4:16:0
-4:17:0
-4:18:0
-4:19:0
-
-# n = 5, k = n - 15 ... n + 15
-
-5:-15:0
-5:-14:0
-5:-13:0
-5:-12:0
-5:-11:0
-5:-10:0
-5:-9:0
-5:-8:0
-5:-7:0
-5:-6:0
-5:-5:0
-5:-4:0
-5:-3:0
-5:-2:0
-5:-1:0
-5:0:1
-5:1:5
-5:2:10
-5:3:10
-5:4:5
-5:5:1
-5:6:0
-5:7:0
-5:8:0
-5:9:0
-5:10:0
-5:11:0
-5:12:0
-5:13:0
-5:14:0
-5:15:0
-5:16:0
-5:17:0
-5:18:0
-5:19:0
-5:20:0
-
-# n = 6, k = n - 15 ... n + 15
-
-6:-15:0
-6:-14:0
-6:-13:0
-6:-12:0
-6:-11:0
-6:-10:0
-6:-9:0
-6:-8:0
-6:-7:0
-6:-6:0
-6:-5:0
-6:-4:0
-6:-3:0
-6:-2:0
-6:-1:0
-6:0:1
-6:1:6
-6:2:15
-6:3:20
-6:4:15
-6:5:6
-6:6:1
-6:7:0
-6:8:0
-6:9:0
-6:10:0
-6:11:0
-6:12:0
-6:13:0
-6:14:0
-6:15:0
-6:16:0
-6:17:0
-6:18:0
-6:19:0
-6:20:0
-6:21:0
-
-# n = 7, k = n - 15 ... n + 15
-
-7:-15:0
-7:-14:0
-7:-13:0
-7:-12:0
-7:-11:0
-7:-10:0
-7:-9:0
-7:-8:0
-7:-7:0
-7:-6:0
-7:-5:0
-7:-4:0
-7:-3:0
-7:-2:0
-7:-1:0
-7:0:1
-7:1:7
-7:2:21
-7:3:35
-7:4:35
-7:5:21
-7:6:7
-7:7:1
-7:8:0
-7:9:0
-7:10:0
-7:11:0
-7:12:0
-7:13:0
-7:14:0
-7:15:0
-7:16:0
-7:17:0
-7:18:0
-7:19:0
-7:20:0
-7:21:0
-7:22:0
-
-# n = 8, k = n - 15 ... n + 15
-
-8:-15:0
-8:-14:0
-8:-13:0
-8:-12:0
-8:-11:0
-8:-10:0
-8:-9:0
-8:-8:0
-8:-7:0
-8:-6:0
-8:-5:0
-8:-4:0
-8:-3:0
-8:-2:0
-8:-1:0
-8:0:1
-8:1:8
-8:2:28
-8:3:56
-8:4:70
-8:5:56
-8:6:28
-8:7:8
-8:8:1
-8:9:0
-8:10:0
-8:11:0
-8:12:0
-8:13:0
-8:14:0
-8:15:0
-8:16:0
-8:17:0
-8:18:0
-8:19:0
-8:20:0
-8:21:0
-8:22:0
-8:23:0
-
-# n = 9, k = n - 15 ... n + 15
-
-9:-15:0
-9:-14:0
-9:-13:0
-9:-12:0
-9:-11:0
-9:-10:0
-9:-9:0
-9:-8:0
-9:-7:0
-9:-6:0
-9:-5:0
-9:-4:0
-9:-3:0
-9:-2:0
-9:-1:0
-9:0:1
-9:1:9
-9:2:36
-9:3:84
-9:4:126
-9:5:126
-9:6:84
-9:7:36
-9:8:9
-9:9:1
-9:10:0
-9:11:0
-9:12:0
-9:13:0
-9:14:0
-9:15:0
-9:16:0
-9:17:0
-9:18:0
-9:19:0
-9:20:0
-9:21:0
-9:22:0
-9:23:0
-9:24:0
-
-# n = 10, k = n - 15 ... n + 15
-
-10:-15:0
-10:-14:0
-10:-13:0
-10:-12:0
-10:-11:0
-10:-10:0
-10:-9:0
-10:-8:0
-10:-7:0
-10:-6:0
-10:-5:0
-10:-4:0
-10:-3:0
-10:-2:0
-10:-1:0
-10:0:1
-10:1:10
-10:2:45
-10:3:120
-10:4:210
-10:5:252
-10:6:210
-10:7:120
-10:8:45
-10:9:10
-10:10:1
-10:11:0
-10:12:0
-10:13:0
-10:14:0
-10:15:0
-10:16:0
-10:17:0
-10:18:0
-10:19:0
-10:20:0
-10:21:0
-10:22:0
-10:23:0
-10:24:0
-10:25:0
-
-# n = 11, k = n - 15 ... n + 15
-
-11:-15:0
-11:-14:0
-11:-13:0
-11:-12:0
-11:-11:0
-11:-10:0
-11:-9:0
-11:-8:0
-11:-7:0
-11:-6:0
-11:-5:0
-11:-4:0
-11:-3:0
-11:-2:0
-11:-1:0
-11:0:1
-11:1:11
-11:2:55
-11:3:165
-11:4:330
-11:5:462
-11:6:462
-11:7:330
-11:8:165
-11:9:55
-11:10:11
-11:11:1
-11:12:0
-11:13:0
-11:14:0
-11:15:0
-11:16:0
-11:17:0
-11:18:0
-11:19:0
-11:20:0
-11:21:0
-11:22:0
-11:23:0
-11:24:0
-11:25:0
-11:26:0
-
-# n = 12, k = n - 15 ... n + 15
-
-12:-15:0
-12:-14:0
-12:-13:0
-12:-12:0
-12:-11:0
-12:-10:0
-12:-9:0
-12:-8:0
-12:-7:0
-12:-6:0
-12:-5:0
-12:-4:0
-12:-3:0
-12:-2:0
-12:-1:0
-12:0:1
-12:1:12
-12:2:66
-12:3:220
-12:4:495
-12:5:792
-12:6:924
-12:7:792
-12:8:495
-12:9:220
-12:10:66
-12:11:12
-12:12:1
-12:13:0
-12:14:0
-12:15:0
-12:16:0
-12:17:0
-12:18:0
-12:19:0
-12:20:0
-12:21:0
-12:22:0
-12:23:0
-12:24:0
-12:25:0
-12:26:0
-12:27:0
-
-# n = 13, k = n - 15 ... n + 15
-
-13:-15:0
-13:-14:0
-13:-13:0
-13:-12:0
-13:-11:0
-13:-10:0
-13:-9:0
-13:-8:0
-13:-7:0
-13:-6:0
-13:-5:0
-13:-4:0
-13:-3:0
-13:-2:0
-13:-1:0
-13:0:1
-13:1:13
-13:2:78
-13:3:286
-13:4:715
-13:5:1287
-13:6:1716
-13:7:1716
-13:8:1287
-13:9:715
-13:10:286
-13:11:78
-13:12:13
-13:13:1
-13:14:0
-13:15:0
-13:16:0
-13:17:0
-13:18:0
-13:19:0
-13:20:0
-13:21:0
-13:22:0
-13:23:0
-13:24:0
-13:25:0
-13:26:0
-13:27:0
-13:28:0
-
-# n = 14, k = n - 15 ... n + 15
-
-14:-15:0
-14:-14:0
-14:-13:0
-14:-12:0
-14:-11:0
-14:-10:0
-14:-9:0
-14:-8:0
-14:-7:0
-14:-6:0
-14:-5:0
-14:-4:0
-14:-3:0
-14:-2:0
-14:-1:0
-14:0:1
-14:1:14
-14:2:91
-14:3:364
-14:4:1001
-14:5:2002
-14:6:3003
-14:7:3432
-14:8:3003
-14:9:2002
-14:10:1001
-14:11:364
-14:12:91
-14:13:14
-14:14:1
-14:15:0
-14:16:0
-14:17:0
-14:18:0
-14:19:0
-14:20:0
-14:21:0
-14:22:0
-14:23:0
-14:24:0
-14:25:0
-14:26:0
-14:27:0
-14:28:0
-14:29:0
-
-# n = 15, k = n - 15 ... n + 15
-
-15:-15:0
-15:-14:0
-15:-13:0
-15:-12:0
-15:-11:0
-15:-10:0
-15:-9:0
-15:-8:0
-15:-7:0
-15:-6:0
-15:-5:0
-15:-4:0
-15:-3:0
-15:-2:0
-15:-1:0
-15:0:1
-15:1:15
-15:2:105
-15:3:455
-15:4:1365
-15:5:3003
-15:6:5005
-15:7:6435
-15:8:6435
-15:9:5005
-15:10:3003
-15:11:1365
-15:12:455
-15:13:105
-15:14:15
-15:15:1
-15:16:0
-15:17:0
-15:18:0
-15:19:0
-15:20:0
-15:21:0
-15:22:0
-15:23:0
-15:24:0
-15:25:0
-15:26:0
-15:27:0
-15:28:0
-15:29:0
-15:30:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bnok-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1451 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 4957;
-
-my $class;
-
-BEGIN {
-    $class = 'Math::BigInt';
-    use_ok($class);
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($nval, $kval, $nokval) = split /:/;
-    my ($n, $k, $got, @got);
-
-    for my $context_is_scalar (0, 1) {
-        for my $k_is_scalar (0, 1) {
-
-            my $test = qq|\$n = $class -> new("$nval");|;
-
-            $test .= $k_is_scalar
-                     ? qq| \$k = "$kval";|
-                     : qq| \$k = $class -> new("$kval");|;
-
-            $test .= $context_is_scalar
-                     ? qq| \$got = \$n -> bnok(\$k);|
-                     : qq| \@got = \$n -> bnok(\$k);|;
-
-            my $desc = "bnok() in ";
-            $desc .= $context_is_scalar ? "scalar context" : "list context";
-            $desc .= $k_is_scalar ? " with k as scalar" : " with k as object";
-
-            subtest $desc,
-              sub {
-                  plan tests => $context_is_scalar ? 7 : 8;
-
-                  eval $test;
-                  is($@, "", "'$test' gives emtpy \$\@");
-
-                  if ($context_is_scalar) {
-
-                      # Check output.
-
-                      is(ref($got), $class,
-                         "'$test' output arg is a $class");
-
-                      is($got -> bstr(), $nokval,
-                         "'$test' output arg has the right value");
-
-                  } else {
-
-                      # Check number of output arguments.
-
-                      cmp_ok(scalar @got, '==', 1,
-                             "'$test' gives one output arg");
-
-                      # Check output.
-
-                      is(ref($got[0]), $class,
-                         "'$test' output arg is a $class");
-
-                      is($got[0] -> bstr(), $nokval,
-                         "'$test' output arg has the right value");
-                  }
-
-                  # Check the invocand.
-
-                  is(ref($n), $class,
-                     "'$test' invocand is still a $class");
-
-                  is($n -> bstr(), $nokval,
-                     "'$test' invocand has the right value");
-
-                  # Check the input argument.
-
-                  if ($k_is_scalar) {
-
-                      is(ref($k), '',
-                         "'$test' second input arg is still a scalar");
-
-                      is($k, $kval,
-                         "'$test' second input arg is unmodified");
-
-                  } else {
-
-                      is(ref($k), $class,
-                         "'$test' second input arg is still a $class");
-
-                      is($k -> bstr(), $kval,
-                         "'$test' second input arg is unmodified");
-                  }
-              };
-        }
-    }
-}
-
-__DATA__
-
-# n and/or k is NaN
-
-NaN:NaN:NaN
-NaN:0:NaN
-NaN:3:NaN
-3:NaN:NaN
-NaN:-3:NaN
--3:NaN:NaN
-
-# n = inf
-
-inf:-inf:NaN
-inf:-3:0
-inf:-2:0
-inf:-1:0
-inf:0:1
-inf:1:inf
-inf:2:inf
-inf:3:inf
-inf:inf:NaN
-
-# n = -inf
-
--inf:-inf:NaN
--inf:-3:0
--inf:-2:0
--inf:-1:0
--inf:0:1
--inf:1:-inf
--inf:2:inf
--inf:3:-inf
--inf:inf:NaN
-
-# k = inf
-
--3:inf:NaN
--2:inf:NaN
--1:inf:NaN
-0:inf:NaN
-1:inf:NaN
-2:inf:NaN
-3:inf:NaN
-
-# k = -inf
-
--3:-inf:NaN
--2:-inf:NaN
--1:-inf:NaN
-0:-inf:NaN
-1:-inf:NaN
-2:-inf:NaN
-3:-inf:NaN
-
-# n = -15, k = n - 15 ... n + 15
-
--15:-30:-77558760
--15:-29:40116600
--15:-28:-20058300
--15:-27:9657700
--15:-26:-4457400
--15:-25:1961256
--15:-24:-817190
--15:-23:319770
--15:-22:-116280
--15:-21:38760
--15:-20:-11628
--15:-19:3060
--15:-18:-680
--15:-17:120
--15:-16:-15
--15:-15:1
--15:-14:0
--15:-13:0
--15:-12:0
--15:-11:0
--15:-10:0
--15:-9:0
--15:-8:0
--15:-7:0
--15:-6:0
--15:-5:0
--15:-4:0
--15:-3:0
--15:-2:0
--15:-1:0
--15:0:1
--15:1:-15
--15:2:120
--15:3:-680
--15:4:3060
--15:5:-11628
--15:6:38760
--15:7:-116280
--15:8:319770
--15:9:-817190
--15:10:1961256
--15:11:-4457400
--15:12:9657700
--15:13:-20058300
--15:14:40116600
--15:15:-77558760
-
-# n = -14, k = n - 15 ... n + 15
-
--14:-29:-37442160
--14:-28:20058300
--14:-27:-10400600
--14:-26:5200300
--14:-25:-2496144
--14:-24:1144066
--14:-23:-497420
--14:-22:203490
--14:-21:-77520
--14:-20:27132
--14:-19:-8568
--14:-18:2380
--14:-17:-560
--14:-16:105
--14:-15:-14
--14:-14:1
--14:-13:0
--14:-12:0
--14:-11:0
--14:-10:0
--14:-9:0
--14:-8:0
--14:-7:0
--14:-6:0
--14:-5:0
--14:-4:0
--14:-3:0
--14:-2:0
--14:-1:0
--14:0:1
--14:1:-14
--14:2:105
--14:3:-560
--14:4:2380
--14:5:-8568
--14:6:27132
--14:7:-77520
--14:8:203490
--14:9:-497420
--14:10:1144066
--14:11:-2496144
--14:12:5200300
--14:13:-10400600
--14:14:20058300
--14:15:-37442160
-
-# n = -13, k = n - 15 ... n + 15
-
--13:-28:-17383860
--13:-27:9657700
--13:-26:-5200300
--13:-25:2704156
--13:-24:-1352078
--13:-23:646646
--13:-22:-293930
--13:-21:125970
--13:-20:-50388
--13:-19:18564
--13:-18:-6188
--13:-17:1820
--13:-16:-455
--13:-15:91
--13:-14:-13
--13:-13:1
--13:-12:0
--13:-11:0
--13:-10:0
--13:-9:0
--13:-8:0
--13:-7:0
--13:-6:0
--13:-5:0
--13:-4:0
--13:-3:0
--13:-2:0
--13:-1:0
--13:0:1
--13:1:-13
--13:2:91
--13:3:-455
--13:4:1820
--13:5:-6188
--13:6:18564
--13:7:-50388
--13:8:125970
--13:9:-293930
--13:10:646646
--13:11:-1352078
--13:12:2704156
--13:13:-5200300
--13:14:9657700
--13:15:-17383860
-
-# n = -12, k = n - 15 ... n + 15
-
--12:-27:-7726160
--12:-26:4457400
--12:-25:-2496144
--12:-24:1352078
--12:-23:-705432
--12:-22:352716
--12:-21:-167960
--12:-20:75582
--12:-19:-31824
--12:-18:12376
--12:-17:-4368
--12:-16:1365
--12:-15:-364
--12:-14:78
--12:-13:-12
--12:-12:1
--12:-11:0
--12:-10:0
--12:-9:0
--12:-8:0
--12:-7:0
--12:-6:0
--12:-5:0
--12:-4:0
--12:-3:0
--12:-2:0
--12:-1:0
--12:0:1
--12:1:-12
--12:2:78
--12:3:-364
--12:4:1365
--12:5:-4368
--12:6:12376
--12:7:-31824
--12:8:75582
--12:9:-167960
--12:10:352716
--12:11:-705432
--12:12:1352078
--12:13:-2496144
--12:14:4457400
--12:15:-7726160
-
-# n = -11, k = n - 15 ... n + 15
-
--11:-26:-3268760
--11:-25:1961256
--11:-24:-1144066
--11:-23:646646
--11:-22:-352716
--11:-21:184756
--11:-20:-92378
--11:-19:43758
--11:-18:-19448
--11:-17:8008
--11:-16:-3003
--11:-15:1001
--11:-14:-286
--11:-13:66
--11:-12:-11
--11:-11:1
--11:-10:0
--11:-9:0
--11:-8:0
--11:-7:0
--11:-6:0
--11:-5:0
--11:-4:0
--11:-3:0
--11:-2:0
--11:-1:0
--11:0:1
--11:1:-11
--11:2:66
--11:3:-286
--11:4:1001
--11:5:-3003
--11:6:8008
--11:7:-19448
--11:8:43758
--11:9:-92378
--11:10:184756
--11:11:-352716
--11:12:646646
--11:13:-1144066
--11:14:1961256
--11:15:-3268760
-
-# n = -10, k = n - 15 ... n + 15
-
--10:-25:-1307504
--10:-24:817190
--10:-23:-497420
--10:-22:293930
--10:-21:-167960
--10:-20:92378
--10:-19:-48620
--10:-18:24310
--10:-17:-11440
--10:-16:5005
--10:-15:-2002
--10:-14:715
--10:-13:-220
--10:-12:55
--10:-11:-10
--10:-10:1
--10:-9:0
--10:-8:0
--10:-7:0
--10:-6:0
--10:-5:0
--10:-4:0
--10:-3:0
--10:-2:0
--10:-1:0
--10:0:1
--10:1:-10
--10:2:55
--10:3:-220
--10:4:715
--10:5:-2002
--10:6:5005
--10:7:-11440
--10:8:24310
--10:9:-48620
--10:10:92378
--10:11:-167960
--10:12:293930
--10:13:-497420
--10:14:817190
--10:15:-1307504
-
-# n = -9, k = n - 15 ... n + 15
-
--9:-24:-490314
--9:-23:319770
--9:-22:-203490
--9:-21:125970
--9:-20:-75582
--9:-19:43758
--9:-18:-24310
--9:-17:12870
--9:-16:-6435
--9:-15:3003
--9:-14:-1287
--9:-13:495
--9:-12:-165
--9:-11:45
--9:-10:-9
--9:-9:1
--9:-8:0
--9:-7:0
--9:-6:0
--9:-5:0
--9:-4:0
--9:-3:0
--9:-2:0
--9:-1:0
--9:0:1
--9:1:-9
--9:2:45
--9:3:-165
--9:4:495
--9:5:-1287
--9:6:3003
--9:7:-6435
--9:8:12870
--9:9:-24310
--9:10:43758
--9:11:-75582
--9:12:125970
--9:13:-203490
--9:14:319770
--9:15:-490314
-
-# n = -8, k = n - 15 ... n + 15
-
--8:-23:-170544
--8:-22:116280
--8:-21:-77520
--8:-20:50388
--8:-19:-31824
--8:-18:19448
--8:-17:-11440
--8:-16:6435
--8:-15:-3432
--8:-14:1716
--8:-13:-792
--8:-12:330
--8:-11:-120
--8:-10:36
--8:-9:-8
--8:-8:1
--8:-7:0
--8:-6:0
--8:-5:0
--8:-4:0
--8:-3:0
--8:-2:0
--8:-1:0
--8:0:1
--8:1:-8
--8:2:36
--8:3:-120
--8:4:330
--8:5:-792
--8:6:1716
--8:7:-3432
--8:8:6435
--8:9:-11440
--8:10:19448
--8:11:-31824
--8:12:50388
--8:13:-77520
--8:14:116280
--8:15:-170544
-
-# n = -7, k = n - 15 ... n + 15
-
--7:-22:-54264
--7:-21:38760
--7:-20:-27132
--7:-19:18564
--7:-18:-12376
--7:-17:8008
--7:-16:-5005
--7:-15:3003
--7:-14:-1716
--7:-13:924
--7:-12:-462
--7:-11:210
--7:-10:-84
--7:-9:28
--7:-8:-7
--7:-7:1
--7:-6:0
--7:-5:0
--7:-4:0
--7:-3:0
--7:-2:0
--7:-1:0
--7:0:1
--7:1:-7
--7:2:28
--7:3:-84
--7:4:210
--7:5:-462
--7:6:924
--7:7:-1716
--7:8:3003
--7:9:-5005
--7:10:8008
--7:11:-12376
--7:12:18564
--7:13:-27132
--7:14:38760
--7:15:-54264
-
-# n = -6, k = n - 15 ... n + 15
-
--6:-21:-15504
--6:-20:11628
--6:-19:-8568
--6:-18:6188
--6:-17:-4368
--6:-16:3003
--6:-15:-2002
--6:-14:1287
--6:-13:-792
--6:-12:462
--6:-11:-252
--6:-10:126
--6:-9:-56
--6:-8:21
--6:-7:-6
--6:-6:1
--6:-5:0
--6:-4:0
--6:-3:0
--6:-2:0
--6:-1:0
--6:0:1
--6:1:-6
--6:2:21
--6:3:-56
--6:4:126
--6:5:-252
--6:6:462
--6:7:-792
--6:8:1287
--6:9:-2002
--6:10:3003
--6:11:-4368
--6:12:6188
--6:13:-8568
--6:14:11628
--6:15:-15504
-
-# n = -5, k = n - 15 ... n + 15
-
--5:-20:-3876
--5:-19:3060
--5:-18:-2380
--5:-17:1820
--5:-16:-1365
--5:-15:1001
--5:-14:-715
--5:-13:495
--5:-12:-330
--5:-11:210
--5:-10:-126
--5:-9:70
--5:-8:-35
--5:-7:15
--5:-6:-5
--5:-5:1
--5:-4:0
--5:-3:0
--5:-2:0
--5:-1:0
--5:0:1
--5:1:-5
--5:2:15
--5:3:-35
--5:4:70
--5:5:-126
--5:6:210
--5:7:-330
--5:8:495
--5:9:-715
--5:10:1001
--5:11:-1365
--5:12:1820
--5:13:-2380
--5:14:3060
--5:15:-3876
-
-# n = -4, k = n - 15 ... n + 15
-
--4:-19:-816
--4:-18:680
--4:-17:-560
--4:-16:455
--4:-15:-364
--4:-14:286
--4:-13:-220
--4:-12:165
--4:-11:-120
--4:-10:84
--4:-9:-56
--4:-8:35
--4:-7:-20
--4:-6:10
--4:-5:-4
--4:-4:1
--4:-3:0
--4:-2:0
--4:-1:0
--4:0:1
--4:1:-4
--4:2:10
--4:3:-20
--4:4:35
--4:5:-56
--4:6:84
--4:7:-120
--4:8:165
--4:9:-220
--4:10:286
--4:11:-364
--4:12:455
--4:13:-560
--4:14:680
--4:15:-816
-
-# n = -3, k = n - 15 ... n + 15
-
--3:-18:-136
--3:-17:120
--3:-16:-105
--3:-15:91
--3:-14:-78
--3:-13:66
--3:-12:-55
--3:-11:45
--3:-10:-36
--3:-9:28
--3:-8:-21
--3:-7:15
--3:-6:-10
--3:-5:6
--3:-4:-3
--3:-3:1
--3:-2:0
--3:-1:0
--3:0:1
--3:1:-3
--3:2:6
--3:3:-10
--3:4:15
--3:5:-21
--3:6:28
--3:7:-36
--3:8:45
--3:9:-55
--3:10:66
--3:11:-78
--3:12:91
--3:13:-105
--3:14:120
--3:15:-136
-
-# n = -2, k = n - 15 ... n + 15
-
--2:-17:-16
--2:-16:15
--2:-15:-14
--2:-14:13
--2:-13:-12
--2:-12:11
--2:-11:-10
--2:-10:9
--2:-9:-8
--2:-8:7
--2:-7:-6
--2:-6:5
--2:-5:-4
--2:-4:3
--2:-3:-2
--2:-2:1
--2:-1:0
--2:0:1
--2:1:-2
--2:2:3
--2:3:-4
--2:4:5
--2:5:-6
--2:6:7
--2:7:-8
--2:8:9
--2:9:-10
--2:10:11
--2:11:-12
--2:12:13
--2:13:-14
--2:14:15
--2:15:-16
-
-# n = -1, k = n - 15 ... n + 15
-
--1:-16:-1
--1:-15:1
--1:-14:-1
--1:-13:1
--1:-12:-1
--1:-11:1
--1:-10:-1
--1:-9:1
--1:-8:-1
--1:-7:1
--1:-6:-1
--1:-5:1
--1:-4:-1
--1:-3:1
--1:-2:-1
--1:-1:1
--1:0:1
--1:1:-1
--1:2:1
--1:3:-1
--1:4:1
--1:5:-1
--1:6:1
--1:7:-1
--1:8:1
--1:9:-1
--1:10:1
--1:11:-1
--1:12:1
--1:13:-1
--1:14:1
--1:15:-1
-
-# n = 0, k = n - 15 ... n + 15
-
-0:-15:0
-0:-14:0
-0:-13:0
-0:-12:0
-0:-11:0
-0:-10:0
-0:-9:0
-0:-8:0
-0:-7:0
-0:-6:0
-0:-5:0
-0:-4:0
-0:-3:0
-0:-2:0
-0:-1:0
-0:0:1
-0:1:0
-0:2:0
-0:3:0
-0:4:0
-0:5:0
-0:6:0
-0:7:0
-0:8:0
-0:9:0
-0:10:0
-0:11:0
-0:12:0
-0:13:0
-0:14:0
-0:15:0
-
-# n = 1, k = n - 15 ... n + 15
-
-1:-15:0
-1:-14:0
-1:-13:0
-1:-12:0
-1:-11:0
-1:-10:0
-1:-9:0
-1:-8:0
-1:-7:0
-1:-6:0
-1:-5:0
-1:-4:0
-1:-3:0
-1:-2:0
-1:-1:0
-1:0:1
-1:1:1
-1:2:0
-1:3:0
-1:4:0
-1:5:0
-1:6:0
-1:7:0
-1:8:0
-1:9:0
-1:10:0
-1:11:0
-1:12:0
-1:13:0
-1:14:0
-1:15:0
-1:16:0
-
-# n = 2, k = n - 15 ... n + 15
-
-2:-15:0
-2:-14:0
-2:-13:0
-2:-12:0
-2:-11:0
-2:-10:0
-2:-9:0
-2:-8:0
-2:-7:0
-2:-6:0
-2:-5:0
-2:-4:0
-2:-3:0
-2:-2:0
-2:-1:0
-2:0:1
-2:1:2
-2:2:1
-2:3:0
-2:4:0
-2:5:0
-2:6:0
-2:7:0
-2:8:0
-2:9:0
-2:10:0
-2:11:0
-2:12:0
-2:13:0
-2:14:0
-2:15:0
-2:16:0
-2:17:0
-
-# n = 3, k = n - 15 ... n + 15
-
-3:-15:0
-3:-14:0
-3:-13:0
-3:-12:0
-3:-11:0
-3:-10:0
-3:-9:0
-3:-8:0
-3:-7:0
-3:-6:0
-3:-5:0
-3:-4:0
-3:-3:0
-3:-2:0
-3:-1:0
-3:0:1
-3:1:3
-3:2:3
-3:3:1
-3:4:0
-3:5:0
-3:6:0
-3:7:0
-3:8:0
-3:9:0
-3:10:0
-3:11:0
-3:12:0
-3:13:0
-3:14:0
-3:15:0
-3:16:0
-3:17:0
-3:18:0
-
-# n = 4, k = n - 15 ... n + 15
-
-4:-15:0
-4:-14:0
-4:-13:0
-4:-12:0
-4:-11:0
-4:-10:0
-4:-9:0
-4:-8:0
-4:-7:0
-4:-6:0
-4:-5:0
-4:-4:0
-4:-3:0
-4:-2:0
-4:-1:0
-4:0:1
-4:1:4
-4:2:6
-4:3:4
-4:4:1
-4:5:0
-4:6:0
-4:7:0
-4:8:0
-4:9:0
-4:10:0
-4:11:0
-4:12:0
-4:13:0
-4:14:0
-4:15:0
-4:16:0
-4:17:0
-4:18:0
-4:19:0
-
-# n = 5, k = n - 15 ... n + 15
-
-5:-15:0
-5:-14:0
-5:-13:0
-5:-12:0
-5:-11:0
-5:-10:0
-5:-9:0
-5:-8:0
-5:-7:0
-5:-6:0
-5:-5:0
-5:-4:0
-5:-3:0
-5:-2:0
-5:-1:0
-5:0:1
-5:1:5
-5:2:10
-5:3:10
-5:4:5
-5:5:1
-5:6:0
-5:7:0
-5:8:0
-5:9:0
-5:10:0
-5:11:0
-5:12:0
-5:13:0
-5:14:0
-5:15:0
-5:16:0
-5:17:0
-5:18:0
-5:19:0
-5:20:0
-
-# n = 6, k = n - 15 ... n + 15
-
-6:-15:0
-6:-14:0
-6:-13:0
-6:-12:0
-6:-11:0
-6:-10:0
-6:-9:0
-6:-8:0
-6:-7:0
-6:-6:0
-6:-5:0
-6:-4:0
-6:-3:0
-6:-2:0
-6:-1:0
-6:0:1
-6:1:6
-6:2:15
-6:3:20
-6:4:15
-6:5:6
-6:6:1
-6:7:0
-6:8:0
-6:9:0
-6:10:0
-6:11:0
-6:12:0
-6:13:0
-6:14:0
-6:15:0
-6:16:0
-6:17:0
-6:18:0
-6:19:0
-6:20:0
-6:21:0
-
-# n = 7, k = n - 15 ... n + 15
-
-7:-15:0
-7:-14:0
-7:-13:0
-7:-12:0
-7:-11:0
-7:-10:0
-7:-9:0
-7:-8:0
-7:-7:0
-7:-6:0
-7:-5:0
-7:-4:0
-7:-3:0
-7:-2:0
-7:-1:0
-7:0:1
-7:1:7
-7:2:21
-7:3:35
-7:4:35
-7:5:21
-7:6:7
-7:7:1
-7:8:0
-7:9:0
-7:10:0
-7:11:0
-7:12:0
-7:13:0
-7:14:0
-7:15:0
-7:16:0
-7:17:0
-7:18:0
-7:19:0
-7:20:0
-7:21:0
-7:22:0
-
-# n = 8, k = n - 15 ... n + 15
-
-8:-15:0
-8:-14:0
-8:-13:0
-8:-12:0
-8:-11:0
-8:-10:0
-8:-9:0
-8:-8:0
-8:-7:0
-8:-6:0
-8:-5:0
-8:-4:0
-8:-3:0
-8:-2:0
-8:-1:0
-8:0:1
-8:1:8
-8:2:28
-8:3:56
-8:4:70
-8:5:56
-8:6:28
-8:7:8
-8:8:1
-8:9:0
-8:10:0
-8:11:0
-8:12:0
-8:13:0
-8:14:0
-8:15:0
-8:16:0
-8:17:0
-8:18:0
-8:19:0
-8:20:0
-8:21:0
-8:22:0
-8:23:0
-
-# n = 9, k = n - 15 ... n + 15
-
-9:-15:0
-9:-14:0
-9:-13:0
-9:-12:0
-9:-11:0
-9:-10:0
-9:-9:0
-9:-8:0
-9:-7:0
-9:-6:0
-9:-5:0
-9:-4:0
-9:-3:0
-9:-2:0
-9:-1:0
-9:0:1
-9:1:9
-9:2:36
-9:3:84
-9:4:126
-9:5:126
-9:6:84
-9:7:36
-9:8:9
-9:9:1
-9:10:0
-9:11:0
-9:12:0
-9:13:0
-9:14:0
-9:15:0
-9:16:0
-9:17:0
-9:18:0
-9:19:0
-9:20:0
-9:21:0
-9:22:0
-9:23:0
-9:24:0
-
-# n = 10, k = n - 15 ... n + 15
-
-10:-15:0
-10:-14:0
-10:-13:0
-10:-12:0
-10:-11:0
-10:-10:0
-10:-9:0
-10:-8:0
-10:-7:0
-10:-6:0
-10:-5:0
-10:-4:0
-10:-3:0
-10:-2:0
-10:-1:0
-10:0:1
-10:1:10
-10:2:45
-10:3:120
-10:4:210
-10:5:252
-10:6:210
-10:7:120
-10:8:45
-10:9:10
-10:10:1
-10:11:0
-10:12:0
-10:13:0
-10:14:0
-10:15:0
-10:16:0
-10:17:0
-10:18:0
-10:19:0
-10:20:0
-10:21:0
-10:22:0
-10:23:0
-10:24:0
-10:25:0
-
-# n = 11, k = n - 15 ... n + 15
-
-11:-15:0
-11:-14:0
-11:-13:0
-11:-12:0
-11:-11:0
-11:-10:0
-11:-9:0
-11:-8:0
-11:-7:0
-11:-6:0
-11:-5:0
-11:-4:0
-11:-3:0
-11:-2:0
-11:-1:0
-11:0:1
-11:1:11
-11:2:55
-11:3:165
-11:4:330
-11:5:462
-11:6:462
-11:7:330
-11:8:165
-11:9:55
-11:10:11
-11:11:1
-11:12:0
-11:13:0
-11:14:0
-11:15:0
-11:16:0
-11:17:0
-11:18:0
-11:19:0
-11:20:0
-11:21:0
-11:22:0
-11:23:0
-11:24:0
-11:25:0
-11:26:0
-
-# n = 12, k = n - 15 ... n + 15
-
-12:-15:0
-12:-14:0
-12:-13:0
-12:-12:0
-12:-11:0
-12:-10:0
-12:-9:0
-12:-8:0
-12:-7:0
-12:-6:0
-12:-5:0
-12:-4:0
-12:-3:0
-12:-2:0
-12:-1:0
-12:0:1
-12:1:12
-12:2:66
-12:3:220
-12:4:495
-12:5:792
-12:6:924
-12:7:792
-12:8:495
-12:9:220
-12:10:66
-12:11:12
-12:12:1
-12:13:0
-12:14:0
-12:15:0
-12:16:0
-12:17:0
-12:18:0
-12:19:0
-12:20:0
-12:21:0
-12:22:0
-12:23:0
-12:24:0
-12:25:0
-12:26:0
-12:27:0
-
-# n = 13, k = n - 15 ... n + 15
-
-13:-15:0
-13:-14:0
-13:-13:0
-13:-12:0
-13:-11:0
-13:-10:0
-13:-9:0
-13:-8:0
-13:-7:0
-13:-6:0
-13:-5:0
-13:-4:0
-13:-3:0
-13:-2:0
-13:-1:0
-13:0:1
-13:1:13
-13:2:78
-13:3:286
-13:4:715
-13:5:1287
-13:6:1716
-13:7:1716
-13:8:1287
-13:9:715
-13:10:286
-13:11:78
-13:12:13
-13:13:1
-13:14:0
-13:15:0
-13:16:0
-13:17:0
-13:18:0
-13:19:0
-13:20:0
-13:21:0
-13:22:0
-13:23:0
-13:24:0
-13:25:0
-13:26:0
-13:27:0
-13:28:0
-
-# n = 14, k = n - 15 ... n + 15
-
-14:-15:0
-14:-14:0
-14:-13:0
-14:-12:0
-14:-11:0
-14:-10:0
-14:-9:0
-14:-8:0
-14:-7:0
-14:-6:0
-14:-5:0
-14:-4:0
-14:-3:0
-14:-2:0
-14:-1:0
-14:0:1
-14:1:14
-14:2:91
-14:3:364
-14:4:1001
-14:5:2002
-14:6:3003
-14:7:3432
-14:8:3003
-14:9:2002
-14:10:1001
-14:11:364
-14:12:91
-14:13:14
-14:14:1
-14:15:0
-14:16:0
-14:17:0
-14:18:0
-14:19:0
-14:20:0
-14:21:0
-14:22:0
-14:23:0
-14:24:0
-14:25:0
-14:26:0
-14:27:0
-14:28:0
-14:29:0
-
-# n = 15, k = n - 15 ... n + 15
-
-15:-15:0
-15:-14:0
-15:-13:0
-15:-12:0
-15:-11:0
-15:-10:0
-15:-9:0
-15:-8:0
-15:-7:0
-15:-6:0
-15:-5:0
-15:-4:0
-15:-3:0
-15:-2:0
-15:-1:0
-15:0:1
-15:1:15
-15:2:105
-15:3:455
-15:4:1365
-15:5:3003
-15:6:5005
-15:7:6435
-15:8:6435
-15:9:5005
-15:10:3003
-15:11:1365
-15:12:455
-15:13:105
-15:14:15
-15:15:1
-15:16:0
-15:17:0
-15:18:0
-15:19:0
-15:20:0
-15:21:0
-15:22:0
-15:23:0
-15:24:0
-15:25:0
-15:26:0
-15:27:0
-15:28:0
-15:29:0
-15:30:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,278 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 460;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    {
-        my $test = qq|\$x = Math::BigFloat -> new("$x_str");|
-                 . qq| \$str = \$x -> bnstr();|;
-
-        note "\n$test\n\n";
-        eval $test;
-
-        is($str, $expected, qq|input value is "$x_str"|);
-        is($x,   $x_str, "input object is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0e+0
-
-# positive numbers
-
-0.000000000001:1e-12
-0.00000000001:1e-11
-0.0000000001:1e-10
-0.000000001:1e-9
-0.00000001:1e-8
-0.0000001:1e-7
-0.000001:1e-6
-0.00001:1e-5
-0.0001:1e-4
-0.001:1e-3
-0.01:1e-2
-0.1:1e-1
-1:1e+0
-10:1e+1
-100:1e+2
-1000:1e+3
-10000:1e+4
-100000:1e+5
-1000000:1e+6
-10000000:1e+7
-100000000:1e+8
-1000000000:1e+9
-10000000000:1e+10
-100000000000:1e+11
-1000000000000:1e+12
-
-0.0000000000012:1.2e-12
-0.000000000012:1.2e-11
-0.00000000012:1.2e-10
-0.0000000012:1.2e-9
-0.000000012:1.2e-8
-0.00000012:1.2e-7
-0.0000012:1.2e-6
-0.000012:1.2e-5
-0.00012:1.2e-4
-0.0012:1.2e-3
-0.012:1.2e-2
-0.12:1.2e-1
-1.2:1.2e+0
-12:1.2e+1
-120:1.2e+2
-1200:1.2e+3
-12000:1.2e+4
-120000:1.2e+5
-1200000:1.2e+6
-12000000:1.2e+7
-120000000:1.2e+8
-1200000000:1.2e+9
-12000000000:1.2e+10
-120000000000:1.2e+11
-1200000000000:1.2e+12
-
-0.00000000000123:1.23e-12
-0.0000000000123:1.23e-11
-0.000000000123:1.23e-10
-0.00000000123:1.23e-9
-0.0000000123:1.23e-8
-0.000000123:1.23e-7
-0.00000123:1.23e-6
-0.0000123:1.23e-5
-0.000123:1.23e-4
-0.00123:1.23e-3
-0.0123:1.23e-2
-0.123:1.23e-1
-1.23:1.23e+0
-12.3:1.23e+1
-123:1.23e+2
-1230:1.23e+3
-12300:1.23e+4
-123000:1.23e+5
-1230000:1.23e+6
-12300000:1.23e+7
-123000000:1.23e+8
-1230000000:1.23e+9
-12300000000:1.23e+10
-123000000000:1.23e+11
-1230000000000:1.23e+12
-
-0.000000000001234:1.234e-12
-0.00000000001234:1.234e-11
-0.0000000001234:1.234e-10
-0.000000001234:1.234e-9
-0.00000001234:1.234e-8
-0.0000001234:1.234e-7
-0.000001234:1.234e-6
-0.00001234:1.234e-5
-0.0001234:1.234e-4
-0.001234:1.234e-3
-0.01234:1.234e-2
-0.1234:1.234e-1
-1.234:1.234e+0
-12.34:1.234e+1
-123.4:1.234e+2
-1234:1.234e+3
-12340:1.234e+4
-123400:1.234e+5
-1234000:1.234e+6
-12340000:1.234e+7
-123400000:1.234e+8
-1234000000:1.234e+9
-12340000000:1.234e+10
-123400000000:1.234e+11
-1234000000000:1.234e+12
-
-0.000003141592:3.141592e-6
-0.00003141592:3.141592e-5
-0.0003141592:3.141592e-4
-0.003141592:3.141592e-3
-0.03141592:3.141592e-2
-0.3141592:3.141592e-1
-3.141592:3.141592e+0
-31.41592:3.141592e+1
-314.1592:3.141592e+2
-3141.592:3.141592e+3
-31415.92:3.141592e+4
-314159.2:3.141592e+5
-3141592:3.141592e+6
-
-# negative numbers
-
--0.000000000001:-1e-12
--0.00000000001:-1e-11
--0.0000000001:-1e-10
--0.000000001:-1e-9
--0.00000001:-1e-8
--0.0000001:-1e-7
--0.000001:-1e-6
--0.00001:-1e-5
--0.0001:-1e-4
--0.001:-1e-3
--0.01:-1e-2
--0.1:-1e-1
--1:-1e+0
--10:-1e+1
--100:-1e+2
--1000:-1e+3
--10000:-1e+4
--100000:-1e+5
--1000000:-1e+6
--10000000:-1e+7
--100000000:-1e+8
--1000000000:-1e+9
--10000000000:-1e+10
--100000000000:-1e+11
--1000000000000:-1e+12
-
--0.0000000000012:-1.2e-12
--0.000000000012:-1.2e-11
--0.00000000012:-1.2e-10
--0.0000000012:-1.2e-9
--0.000000012:-1.2e-8
--0.00000012:-1.2e-7
--0.0000012:-1.2e-6
--0.000012:-1.2e-5
--0.00012:-1.2e-4
--0.0012:-1.2e-3
--0.012:-1.2e-2
--0.12:-1.2e-1
--1.2:-1.2e+0
--12:-1.2e+1
--120:-1.2e+2
--1200:-1.2e+3
--12000:-1.2e+4
--120000:-1.2e+5
--1200000:-1.2e+6
--12000000:-1.2e+7
--120000000:-1.2e+8
--1200000000:-1.2e+9
--12000000000:-1.2e+10
--120000000000:-1.2e+11
--1200000000000:-1.2e+12
-
--0.00000000000123:-1.23e-12
--0.0000000000123:-1.23e-11
--0.000000000123:-1.23e-10
--0.00000000123:-1.23e-9
--0.0000000123:-1.23e-8
--0.000000123:-1.23e-7
--0.00000123:-1.23e-6
--0.0000123:-1.23e-5
--0.000123:-1.23e-4
--0.00123:-1.23e-3
--0.0123:-1.23e-2
--0.123:-1.23e-1
--1.23:-1.23e+0
--12.3:-1.23e+1
--123:-1.23e+2
--1230:-1.23e+3
--12300:-1.23e+4
--123000:-1.23e+5
--1230000:-1.23e+6
--12300000:-1.23e+7
--123000000:-1.23e+8
--1230000000:-1.23e+9
--12300000000:-1.23e+10
--123000000000:-1.23e+11
--1230000000000:-1.23e+12
-
--0.000000000001234:-1.234e-12
--0.00000000001234:-1.234e-11
--0.0000000001234:-1.234e-10
--0.000000001234:-1.234e-9
--0.00000001234:-1.234e-8
--0.0000001234:-1.234e-7
--0.000001234:-1.234e-6
--0.00001234:-1.234e-5
--0.0001234:-1.234e-4
--0.001234:-1.234e-3
--0.01234:-1.234e-2
--0.1234:-1.234e-1
--1.234:-1.234e+0
--12.34:-1.234e+1
--123.4:-1.234e+2
--1234:-1.234e+3
--12340:-1.234e+4
--123400:-1.234e+5
--1234000:-1.234e+6
--12340000:-1.234e+7
--123400000:-1.234e+8
--1234000000:-1.234e+9
--12340000000:-1.234e+10
--123400000000:-1.234e+11
--1234000000000:-1.234e+12
-
--0.000003141592:-3.141592e-6
--0.00003141592:-3.141592e-5
--0.0003141592:-3.141592e-4
--0.003141592:-3.141592e-3
--0.03141592:-3.141592e-2
--0.3141592:-3.141592e-1
--3.141592:-3.141592e+0
--31.41592:-3.141592e+1
--314.1592:-3.141592e+2
--3141.592:-3.141592e+3
--31415.92:-3.141592e+4
--314159.2:-3.141592e+5
--3141592:-3.141592e+6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bnstr-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,158 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 220;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    {
-        my $test = qq|\$x = Math::BigInt -> new("$x_str");|
-                 . qq| \$str = \$x -> bnstr();|;
-
-        note "\n$test\n\n";
-        eval $test;
-
-        is($str, $expected, qq|input value is "$x_str"|);
-        is($x,   $x_str, "input object is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0e+0
-
-# positive numbers
-
-1:1e+0
-10:1e+1
-100:1e+2
-1000:1e+3
-10000:1e+4
-100000:1e+5
-1000000:1e+6
-10000000:1e+7
-100000000:1e+8
-1000000000:1e+9
-10000000000:1e+10
-100000000000:1e+11
-1000000000000:1e+12
-
-12:1.2e+1
-120:1.2e+2
-1200:1.2e+3
-12000:1.2e+4
-120000:1.2e+5
-1200000:1.2e+6
-12000000:1.2e+7
-120000000:1.2e+8
-1200000000:1.2e+9
-12000000000:1.2e+10
-120000000000:1.2e+11
-1200000000000:1.2e+12
-
-123:1.23e+2
-1230:1.23e+3
-12300:1.23e+4
-123000:1.23e+5
-1230000:1.23e+6
-12300000:1.23e+7
-123000000:1.23e+8
-1230000000:1.23e+9
-12300000000:1.23e+10
-123000000000:1.23e+11
-1230000000000:1.23e+12
-
-1234:1.234e+3
-12340:1.234e+4
-123400:1.234e+5
-1234000:1.234e+6
-12340000:1.234e+7
-123400000:1.234e+8
-1234000000:1.234e+9
-12340000000:1.234e+10
-123400000000:1.234e+11
-1234000000000:1.234e+12
-
-3:3e+0
-31:3.1e+1
-314:3.14e+2
-3141:3.141e+3
-31415:3.1415e+4
-314159:3.14159e+5
-3141592:3.141592e+6
-
-# negative numbers
-
--1:-1e+0
--10:-1e+1
--100:-1e+2
--1000:-1e+3
--10000:-1e+4
--100000:-1e+5
--1000000:-1e+6
--10000000:-1e+7
--100000000:-1e+8
--1000000000:-1e+9
--10000000000:-1e+10
--100000000000:-1e+11
--1000000000000:-1e+12
-
--12:-1.2e+1
--120:-1.2e+2
--1200:-1.2e+3
--12000:-1.2e+4
--120000:-1.2e+5
--1200000:-1.2e+6
--12000000:-1.2e+7
--120000000:-1.2e+8
--1200000000:-1.2e+9
--12000000000:-1.2e+10
--120000000000:-1.2e+11
--1200000000000:-1.2e+12
-
--123:-1.23e+2
--1230:-1.23e+3
--12300:-1.23e+4
--123000:-1.23e+5
--1230000:-1.23e+6
--12300000:-1.23e+7
--123000000:-1.23e+8
--1230000000:-1.23e+9
--12300000000:-1.23e+10
--123000000000:-1.23e+11
--1230000000000:-1.23e+12
-
--1234:-1.234e+3
--12340:-1.234e+4
--123400:-1.234e+5
--1234000:-1.234e+6
--12340000:-1.234e+7
--123400000:-1.234e+8
--1234000000:-1.234e+9
--12340000000:-1.234e+10
--123400000000:-1.234e+11
--1234000000000:-1.234e+12
-
--3:-3e+0
--31:-3.1e+1
--314:-3.14e+2
--3141:-3.141e+3
--31415:-3.1415e+4
--314159:-3.14159e+5
--3141592:-3.141592e+6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,53 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-
-use Math::BigFloat;
-use Scalar::Util qw< refaddr >;
-
-my $x;
-
-################################################################################
-
-note('class method');
-
-# When no accuracy is specified, default accuracy shall be used.
-
-$x = Math::BigFloat -> bpi();
-is($x, '3.141592653589793238462643383279502884197',
-   '$x = Math::BigFloat -> bpi();');
-is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat');
-
-# When accuracy is specified, it shall be used.
-
-$x = Math::BigFloat -> bpi(10);
-is($x, '3.141592654',
-   '$x = Math::BigFloat -> bpi(10);');
-is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat');
-
-################################################################################
-
-note('instance method');
-
-my $y;
-
-# When no accuracy is specified, default accuracy shall be used.
-
-$x = Math::BigFloat -> new(100);
-$y = $x -> bpi();
-is($x, '3.141592653589793238462643383279502884197',
-   '$x = Math::BigFloat -> new(100); $y = $x -> bpi();');
-is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat');
-is(refaddr($x), refaddr($y), '$x and $y are the same object');
-
-# When accuracy is specified, it shall be used.
-
-$x = Math::BigFloat -> new(100);
-$y = $x -> bpi(10);
-is($x, '3.141592654',
-   '$x = Math::BigFloat -> new(100); $y = $x -> bpi(10);');
-is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat');
-is(refaddr($x), refaddr($y), '$x and $y are the same object');
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bpi-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,103 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 24;
-
-use Math::BigInt;
-use Scalar::Util qw< refaddr >;
-
-my $x;
-
-################################################################################
-
-note('class method, without upgrading');
-
-$x = Math::BigInt -> bpi();
-is($x, '3', '$x = Math::BigInt -> bpi()');
-is(ref($x), 'Math::BigInt',
-   '$x is a Math::BigInt');
-
-$x = Math::BigInt -> bpi(10);
-is($x, '3', '$x = Math::BigInt -> bpi(10)');
-is(ref($x), 'Math::BigInt',
-   '$x is a Math::BigInt');
-
-note('class method, with upgrading');
-
-require Math::BigFloat;
-Math::BigInt -> upgrade('Math::BigFloat');
-
-# When no accuracy is specified, default accuracy shall be used.
-
-$x = Math::BigInt -> bpi();
-is($x, '3.141592653589793238462643383279502884197', '$x = Math::BigInt -> bpi()');
-is(ref($x), "Math::BigFloat",
-   '$x is a Math::BigFloat');
-
-# When accuracy is specified, it shall be used.
-
-$x = Math::BigInt -> bpi(10);
-is($x, '3.141592654', '$x = Math::BigInt -> bpi(10)');
-is(ref($x), "Math::BigFloat",
-   '$x is a Math::BigFloat');
-
-################################################################################
-
-Math::BigInt -> upgrade(undef);
-
-note('instance method, without upgrading');
-
-my $y;
-
-$x = Math::BigInt -> new(100);
-$y = $x -> bpi();
-is($x, '3',
-   '$x = Math::BigInt -> new(100); $y = $x -> bpi();');
-is(ref($x), 'Math::BigInt',
-   '$x is a Math::BigInt');
-is(refaddr($x), refaddr($y), '$x and $y are the same object');
-
-$x = Math::BigInt -> new(100);
-$y = $x -> bpi(10);
-is($x, '3',
-   '$x = Math::BigInt -> new(100); $y = $x -> bpi(10);');
-is(ref($x), 'Math::BigInt',
-   '$x is a Math::BigInt');
-is(refaddr($x), refaddr($y), '$x and $y are the same object');
-
-note('instance method, with upgrading');
-
-require Math::BigFloat;
-Math::BigInt -> upgrade('Math::BigFloat');
-
-# When no accuracy is specified, default accuracy shall be used.
-
-# When upgrading is in effect, a new object is returned.
-
-$x = Math::BigInt -> new(100);
-$y = $x -> bpi();
-is($x, '100',
-   '$x = Math::BigInt -> new(100); $y = $x -> bpi();');
-is(ref($x), "Math::BigInt",
-   '$x is a Math::BigInt');
-is($y, '3.141592653589793238462643383279502884197',
-   '$x = Math::BigInt -> new(100); $y = $x -> bpi();');
-is(ref($y), "Math::BigFloat",
-   '$y is a Math::BigFloat');
-isnt(refaddr($x), refaddr($y), '$x and $y are not the same object');
-
-# When accuracy is specified, it shall be used.
-
-$x = Math::BigInt -> new(100);
-$y = $x -> bpi(10);
-is($x, '100',
-   '$x = Math::BigInt -> new(100); $y = $x -> bpi(10);');
-is(ref($x), "Math::BigInt",
-   '$x is a Math::BigInt');
-is($y, '3.141592654',
-   '$x = Math::BigInt -> new(100); $y = $x -> bpi();');
-is(ref($y), "Math::BigFloat",
-   '$y is a Math::BigFloat');
-isnt(refaddr($x), refaddr($y), '$x and $y are not the same object');
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,348 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 255;
-
-use Math::BigFloat;
-
-my $class = "Math::BigFloat";
-
-use Math::Complex ();
-
-my $inf = $Math::Complex::Inf;
-my $nan = $inf - $inf;
-
-# The following is used to compute the data at the end of this file.
-
-if (0) {
-    my @x = (-$inf, -64, -3, -2.5, -2, -1.5, -1, -0.5, 0,
-             0.5, 1, 1.5, 2, 2.5, 3, 64, $inf);
-    my @y = (-$inf, -3, -2.5, -2, -1.5, -1, -0.5, 0,
-             0.5, 1, 1.5, 2, 2.5, 3, $inf);
-    for my $x (@x) {
-        for my $y (@y) {
-
-            # The exceptions here are based on Wolfram Alpha,
-            # https://www.wolframalpha.com/
-
-            my $z = $x == -$inf && $y == 0     ? $nan
-                  : $x ==  $inf && $y == 0     ? $nan
-                  : $x == -1    && $y == -$inf ? $nan
-                  : $x == -1    && $y ==  $inf ? $nan
-                  :                              $x ** $y;
-
-            # Unfortunately, Math::Big* uses "inf", not "Inf" as Perl.
-
-            printf "%s\n", join ":", map {   $_ ==  $inf ?  "inf"
-                                           : $_ == -$inf ? "-inf"
-                                           : $_                   } $x, $y, $z;
-        }
-    }
-
-    exit;
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my @args = split /:/;
-    my $want = pop @args;
-
-    my ($x, $y, $z);
-
-    my $test = qq|\$x = $class -> new("$args[0]"); |
-             . qq|\$y = $class -> new("$args[1]"); |
-             . qq|\$z = \$x -> bpow(\$y)|;
-
-    eval "$test";
-    die $@ if $@;
-
-    subtest $test => sub {
-        plan tests => 5;
-
-        is(ref($x), $class, "\$x is still a $class");
-
-        is(ref($y), $class, "\$y is still a $class");
-        is($y, $args[1], "\$y is unmodified");
-
-        is(ref($z), $class, "\$z is a $class");
-
-        # If $want is a finite non-integer and $x is finite, measure the
-        # relative difference.
-
-        if ($want * 0 == 0 && $want != int $want && $x -> is_finite()) {
-            if (abs(($z -> numify() - $want) / $want) < 1e-8) {
-                pass("\$z has the right value");
-            } else {
-                fail("\$z has the right value");
-                diag(<<"EOF");
-         got: '$z'
-    expected: '$want'
-EOF
-            }
-        } else {
-            is($z, $want, "\$z has the right value");
-        }
-    };
-}
-
-__END__
--inf:-inf:0
--inf:-3:0
--inf:-2.5:0
--inf:-2:0
--inf:-1.5:0
--inf:-1:0
--inf:-0.5:0
--inf:0:NaN
--inf:0.5:inf
--inf:1:-inf
--inf:1.5:inf
--inf:2:inf
--inf:2.5:inf
--inf:3:-inf
--inf:inf:inf
--64:-inf:0
--64:-3:-3.814697265625e-06
--64:-2.5:NaN
--64:-2:0.000244140625
--64:-1.5:NaN
--64:-1:-0.015625
--64:-0.5:NaN
--64:0:1
--64:0.5:NaN
--64:1:-64
--64:1.5:NaN
--64:2:4096
--64:2.5:NaN
--64:3:-262144
--64:inf:inf
--3:-inf:0
--3:-3:-0.037037037037037
--3:-2.5:NaN
--3:-2:0.111111111111111
--3:-1.5:NaN
--3:-1:-0.333333333333333
--3:-0.5:NaN
--3:0:1
--3:0.5:NaN
--3:1:-3
--3:1.5:NaN
--3:2:9
--3:2.5:NaN
--3:3:-27
--3:inf:inf
--2.5:-inf:0
--2.5:-3:-0.064
--2.5:-2.5:NaN
--2.5:-2:0.16
--2.5:-1.5:NaN
--2.5:-1:-0.4
--2.5:-0.5:NaN
--2.5:0:1
--2.5:0.5:NaN
--2.5:1:-2.5
--2.5:1.5:NaN
--2.5:2:6.25
--2.5:2.5:NaN
--2.5:3:-15.625
--2.5:inf:inf
--2:-inf:0
--2:-3:-0.125
--2:-2.5:NaN
--2:-2:0.25
--2:-1.5:NaN
--2:-1:-0.5
--2:-0.5:NaN
--2:0:1
--2:0.5:NaN
--2:1:-2
--2:1.5:NaN
--2:2:4
--2:2.5:NaN
--2:3:-8
--2:inf:inf
--1.5:-inf:0
--1.5:-3:-0.296296296296296
--1.5:-2.5:NaN
--1.5:-2:0.444444444444444
--1.5:-1.5:NaN
--1.5:-1:-0.666666666666667
--1.5:-0.5:NaN
--1.5:0:1
--1.5:0.5:NaN
--1.5:1:-1.5
--1.5:1.5:NaN
--1.5:2:2.25
--1.5:2.5:NaN
--1.5:3:-3.375
--1.5:inf:inf
--1:-inf:NaN
--1:-3:-1
--1:-2.5:NaN
--1:-2:1
--1:-1.5:NaN
--1:-1:-1
--1:-0.5:NaN
--1:0:1
--1:0.5:NaN
--1:1:-1
--1:1.5:NaN
--1:2:1
--1:2.5:NaN
--1:3:-1
--1:inf:NaN
--0.5:-inf:inf
--0.5:-3:-8
--0.5:-2.5:NaN
--0.5:-2:4
--0.5:-1.5:NaN
--0.5:-1:-2
--0.5:-0.5:NaN
--0.5:0:1
--0.5:0.5:NaN
--0.5:1:-0.5
--0.5:1.5:NaN
--0.5:2:0.25
--0.5:2.5:NaN
--0.5:3:-0.125
--0.5:inf:0
-0:-inf:inf
-0:-3:inf
-0:-2.5:inf
-0:-2:inf
-0:-1.5:inf
-0:-1:inf
-0:-0.5:inf
-0:0:1
-0:0.5:0
-0:1:0
-0:1.5:0
-0:2:0
-0:2.5:0
-0:3:0
-0:inf:0
-0.5:-inf:inf
-0.5:-3:8
-0.5:-2.5:5.65685424949238
-0.5:-2:4
-0.5:-1.5:2.82842712474619
-0.5:-1:2
-0.5:-0.5:1.4142135623731
-0.5:0:1
-0.5:0.5:0.707106781186548
-0.5:1:0.5
-0.5:1.5:0.353553390593274
-0.5:2:0.25
-0.5:2.5:0.176776695296637
-0.5:3:0.125
-0.5:inf:0
-1:-inf:1
-1:-3:1
-1:-2.5:1
-1:-2:1
-1:-1.5:1
-1:-1:1
-1:-0.5:1
-1:0:1
-1:0.5:1
-1:1:1
-1:1.5:1
-1:2:1
-1:2.5:1
-1:3:1
-1:inf:1
-1.5:-inf:0
-1.5:-3:0.296296296296296
-1.5:-2.5:0.362887369301212
-1.5:-2:0.444444444444444
-1.5:-1.5:0.544331053951817
-1.5:-1:0.666666666666667
-1.5:-0.5:0.816496580927726
-1.5:0:1
-1.5:0.5:1.22474487139159
-1.5:1:1.5
-1.5:1.5:1.83711730708738
-1.5:2:2.25
-1.5:2.5:2.75567596063108
-1.5:3:3.375
-1.5:inf:inf
-2:-inf:0
-2:-3:0.125
-2:-2.5:0.176776695296637
-2:-2:0.25
-2:-1.5:0.353553390593274
-2:-1:0.5
-2:-0.5:0.707106781186548
-2:0:1
-2:0.5:1.4142135623731
-2:1:2
-2:1.5:2.82842712474619
-2:2:4
-2:2.5:5.65685424949238
-2:3:8
-2:inf:inf
-2.5:-inf:0
-2.5:-3:0.064
-2.5:-2.5:0.101192885125388
-2.5:-2:0.16
-2.5:-1.5:0.25298221281347
-2.5:-1:0.4
-2.5:-0.5:0.632455532033676
-2.5:0:1
-2.5:0.5:1.58113883008419
-2.5:1:2.5
-2.5:1.5:3.95284707521047
-2.5:2:6.25
-2.5:2.5:9.88211768802619
-2.5:3:15.625
-2.5:inf:inf
-3:-inf:0
-3:-3:0.037037037037037
-3:-2.5:0.0641500299099584
-3:-2:0.111111111111111
-3:-1.5:0.192450089729875
-3:-1:0.333333333333333
-3:-0.5:0.577350269189626
-3:0:1
-3:0.5:1.73205080756888
-3:1:3
-3:1.5:5.19615242270663
-3:2:9
-3:2.5:15.5884572681199
-3:3:27
-3:inf:inf
-64:-inf:0
-64:-3:3.814697265625e-06
-64:-2.5:3.0517578125e-05
-64:-2:0.000244140625
-64:-1.5:0.001953125
-64:-1:0.015625
-64:-0.5:0.125
-64:0:1
-64:0.5:8
-64:1:64
-64:1.5:512
-64:2:4096
-64:2.5:32768
-64:3:262144
-64:inf:inf
-inf:-inf:0
-inf:-3:0
-inf:-2.5:0
-inf:-2:0
-inf:-1.5:0
-inf:-1:0
-inf:-0.5:0
-inf:0:NaN
-inf:0.5:inf
-inf:1:inf
-inf:1.5:inf
-inf:2:inf
-inf:2.5:inf
-inf:3:inf
-inf:inf:inf
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bpow-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,172 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 99;
-
-use Math::BigInt;
-
-my $class = "Math::BigInt";
-
-use Math::Complex ();
-
-my $inf = $Math::Complex::Inf;
-my $nan = $inf - $inf;
-
-# The following is used to compute the data at the end of this file.
-
-if (0) {
-    for my $x (-$inf, -64, -3, -2, -1, 0, 1, 2, 3, 64, $inf) {
-        for my $y (-$inf, -3, -2, -1, 0, 1, 2, 3, $inf) {
-
-            # The exceptions here are based on Wolfram Alpha,
-            # https://www.wolframalpha.com/
-
-            my $z = $x == -$inf && $y == 0     ? $nan
-                  : $x ==  $inf && $y == 0     ? $nan
-                  : $x == -1    && $y == -$inf ? $nan
-                  : $x == -1    && $y ==  $inf ? $nan
-                  :                              int($x ** $y);
-
-            # Unfortunately, Math::Big* uses "inf", not "Inf" as Perl.
-
-            printf "%s\n", join ":", map {   $_ ==  $inf ?  "inf"
-                                           : $_ == -$inf ? "-inf"
-                                           : $_                   } $x, $y, $z;
-        }
-    }
-
-    exit;
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my @args = split /:/;
-    my $want = pop @args;
-
-    my ($x, $y, $z);
-
-    my $test = qq|\$x = $class -> new("$args[0]"); |
-             . qq|\$y = $class -> new("$args[1]"); |
-             . qq|\$z = \$x -> bpow(\$y)|;
-
-    eval "$test";
-    die $@ if $@;
-
-    subtest $test => sub {
-        plan tests => 5;
-
-        is(ref($x), $class, "\$x is still a $class");
-
-        is(ref($y), $class, "\$y is still a $class");
-        is($y, $args[1], "\$y is unmodified");
-
-        is(ref($z), $class, "\$z is a $class");
-        is($z, $want, "\$z has the right value");
-    };
-}
-
-__DATA__
--inf:-inf:0
--inf:-3:0
--inf:-2:0
--inf:-1:0
--inf:0:NaN
--inf:1:-inf
--inf:2:inf
--inf:3:-inf
--inf:inf:inf
--64:-inf:0
--64:-3:0
--64:-2:0
--64:-1:0
--64:0:1
--64:1:-64
--64:2:4096
--64:3:-262144
--64:inf:inf
--3:-inf:0
--3:-3:0
--3:-2:0
--3:-1:0
--3:0:1
--3:1:-3
--3:2:9
--3:3:-27
--3:inf:inf
--2:-inf:0
--2:-3:0
--2:-2:0
--2:-1:0
--2:0:1
--2:1:-2
--2:2:4
--2:3:-8
--2:inf:inf
--1:-inf:NaN
--1:-3:-1
--1:-2:1
--1:-1:-1
--1:0:1
--1:1:-1
--1:2:1
--1:3:-1
--1:inf:NaN
-0:-inf:inf
-0:-3:inf
-0:-2:inf
-0:-1:inf
-0:0:1
-0:1:0
-0:2:0
-0:3:0
-0:inf:0
-1:-inf:1
-1:-3:1
-1:-2:1
-1:-1:1
-1:0:1
-1:1:1
-1:2:1
-1:3:1
-1:inf:1
-2:-inf:0
-2:-3:0
-2:-2:0
-2:-1:0
-2:0:1
-2:1:2
-2:2:4
-2:3:8
-2:inf:inf
-3:-inf:0
-3:-3:0
-3:-2:0
-3:-1:0
-3:0:1
-3:1:3
-3:2:9
-3:3:27
-3:inf:inf
-64:-inf:0
-64:-3:0
-64:-2:0
-64:-1:0
-64:0:1
-64:1:64
-64:2:4096
-64:3:262144
-64:inf:inf
-inf:-inf:0
-inf:-3:0
-inf:-2:0
-inf:-1:0
-inf:0:NaN
-inf:1:inf
-inf:2:inf
-inf:3:inf
-inf:inf:inf
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,275 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 460;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-        my $test = qq|\$x = Math::BigFloat -> new("$x_str");|
-                 . qq| \$str = \$x -> bsstr();|;
-
-        note "\n$test\n\n";
-        eval $test;
-
-        is($str, $expected, qq|input value is "$x_str"|);
-        is($x,   $x_str, "input object is unmodified");
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0e+0
-
-# positive numbers
-
-0.000000000001:1e-12
-0.00000000001:1e-11
-0.0000000001:1e-10
-0.000000001:1e-9
-0.00000001:1e-8
-0.0000001:1e-7
-0.000001:1e-6
-0.00001:1e-5
-0.0001:1e-4
-0.001:1e-3
-0.01:1e-2
-0.1:1e-1
-1:1e+0
-10:1e+1
-100:1e+2
-1000:1e+3
-10000:1e+4
-100000:1e+5
-1000000:1e+6
-10000000:1e+7
-100000000:1e+8
-1000000000:1e+9
-10000000000:1e+10
-100000000000:1e+11
-1000000000000:1e+12
-
-0.0000000000012:12e-13
-0.000000000012:12e-12
-0.00000000012:12e-11
-0.0000000012:12e-10
-0.000000012:12e-9
-0.00000012:12e-8
-0.0000012:12e-7
-0.000012:12e-6
-0.00012:12e-5
-0.0012:12e-4
-0.012:12e-3
-0.12:12e-2
-1.2:12e-1
-12:12e+0
-120:12e+1
-1200:12e+2
-12000:12e+3
-120000:12e+4
-1200000:12e+5
-12000000:12e+6
-120000000:12e+7
-1200000000:12e+8
-12000000000:12e+9
-120000000000:12e+10
-1200000000000:12e+11
-
-0.00000000000123:123e-14
-0.0000000000123:123e-13
-0.000000000123:123e-12
-0.00000000123:123e-11
-0.0000000123:123e-10
-0.000000123:123e-9
-0.00000123:123e-8
-0.0000123:123e-7
-0.000123:123e-6
-0.00123:123e-5
-0.0123:123e-4
-0.123:123e-3
-1.23:123e-2
-12.3:123e-1
-123:123e+0
-1230:123e+1
-12300:123e+2
-123000:123e+3
-1230000:123e+4
-12300000:123e+5
-123000000:123e+6
-1230000000:123e+7
-12300000000:123e+8
-123000000000:123e+9
-1230000000000:123e+10
-
-0.000000000001234:1234e-15
-0.00000000001234:1234e-14
-0.0000000001234:1234e-13
-0.000000001234:1234e-12
-0.00000001234:1234e-11
-0.0000001234:1234e-10
-0.000001234:1234e-9
-0.00001234:1234e-8
-0.0001234:1234e-7
-0.001234:1234e-6
-0.01234:1234e-5
-0.1234:1234e-4
-1.234:1234e-3
-12.34:1234e-2
-123.4:1234e-1
-1234:1234e+0
-12340:1234e+1
-123400:1234e+2
-1234000:1234e+3
-12340000:1234e+4
-123400000:1234e+5
-1234000000:1234e+6
-12340000000:1234e+7
-123400000000:1234e+8
-1234000000000:1234e+9
-
-0.000003141592:3141592e-12
-0.00003141592:3141592e-11
-0.0003141592:3141592e-10
-0.003141592:3141592e-9
-0.03141592:3141592e-8
-0.3141592:3141592e-7
-3.141592:3141592e-6
-31.41592:3141592e-5
-314.1592:3141592e-4
-3141.592:3141592e-3
-31415.92:3141592e-2
-314159.2:3141592e-1
-3141592:3141592e+0
-
-# negative numbers
-
--0.000000000001:-1e-12
--0.00000000001:-1e-11
--0.0000000001:-1e-10
--0.000000001:-1e-9
--0.00000001:-1e-8
--0.0000001:-1e-7
--0.000001:-1e-6
--0.00001:-1e-5
--0.0001:-1e-4
--0.001:-1e-3
--0.01:-1e-2
--0.1:-1e-1
--1:-1e+0
--10:-1e+1
--100:-1e+2
--1000:-1e+3
--10000:-1e+4
--100000:-1e+5
--1000000:-1e+6
--10000000:-1e+7
--100000000:-1e+8
--1000000000:-1e+9
--10000000000:-1e+10
--100000000000:-1e+11
--1000000000000:-1e+12
-
--0.0000000000012:-12e-13
--0.000000000012:-12e-12
--0.00000000012:-12e-11
--0.0000000012:-12e-10
--0.000000012:-12e-9
--0.00000012:-12e-8
--0.0000012:-12e-7
--0.000012:-12e-6
--0.00012:-12e-5
--0.0012:-12e-4
--0.012:-12e-3
--0.12:-12e-2
--1.2:-12e-1
--12:-12e+0
--120:-12e+1
--1200:-12e+2
--12000:-12e+3
--120000:-12e+4
--1200000:-12e+5
--12000000:-12e+6
--120000000:-12e+7
--1200000000:-12e+8
--12000000000:-12e+9
--120000000000:-12e+10
--1200000000000:-12e+11
-
--0.00000000000123:-123e-14
--0.0000000000123:-123e-13
--0.000000000123:-123e-12
--0.00000000123:-123e-11
--0.0000000123:-123e-10
--0.000000123:-123e-9
--0.00000123:-123e-8
--0.0000123:-123e-7
--0.000123:-123e-6
--0.00123:-123e-5
--0.0123:-123e-4
--0.123:-123e-3
--1.23:-123e-2
--12.3:-123e-1
--123:-123e+0
--1230:-123e+1
--12300:-123e+2
--123000:-123e+3
--1230000:-123e+4
--12300000:-123e+5
--123000000:-123e+6
--1230000000:-123e+7
--12300000000:-123e+8
--123000000000:-123e+9
--1230000000000:-123e+10
-
--0.000000000001234:-1234e-15
--0.00000000001234:-1234e-14
--0.0000000001234:-1234e-13
--0.000000001234:-1234e-12
--0.00000001234:-1234e-11
--0.0000001234:-1234e-10
--0.000001234:-1234e-9
--0.00001234:-1234e-8
--0.0001234:-1234e-7
--0.001234:-1234e-6
--0.01234:-1234e-5
--0.1234:-1234e-4
--1.234:-1234e-3
--12.34:-1234e-2
--123.4:-1234e-1
--1234:-1234e+0
--12340:-1234e+1
--123400:-1234e+2
--1234000:-1234e+3
--12340000:-1234e+4
--123400000:-1234e+5
--1234000000:-1234e+6
--12340000000:-1234e+7
--123400000000:-1234e+8
--1234000000000:-1234e+9
-
--0.000003141592:-3141592e-12
--0.00003141592:-3141592e-11
--0.0003141592:-3141592e-10
--0.003141592:-3141592e-9
--0.03141592:-3141592e-8
--0.3141592:-3141592e-7
--3.141592:-3141592e-6
--31.41592:-3141592e-5
--314.1592:-3141592e-4
--3141.592:-3141592e-3
--31415.92:-3141592e-2
--314159.2:-3141592e-1
--3141592:-3141592e+0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/bsstr-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,158 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 220;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $expected) = split /:/;
-    my ($x, $str);
-
-    {
-        my $test = qq|\$x = Math::BigInt -> new("$x_str");|
-                 . qq| \$str = \$x -> bsstr();|;
-
-        note "\n$test\n\n";
-        eval $test;
-
-        is($str, $expected, qq|input value is "$x_str"|);
-        is($x,   $x_str, "input object is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN
-
-inf:inf
--inf:-inf
-
-0:0e+0
-
-# positive numbers
-
-1:1e+0
-10:1e+1
-100:1e+2
-1000:1e+3
-10000:1e+4
-100000:1e+5
-1000000:1e+6
-10000000:1e+7
-100000000:1e+8
-1000000000:1e+9
-10000000000:1e+10
-100000000000:1e+11
-1000000000000:1e+12
-
-12:12e+0
-120:12e+1
-1200:12e+2
-12000:12e+3
-120000:12e+4
-1200000:12e+5
-12000000:12e+6
-120000000:12e+7
-1200000000:12e+8
-12000000000:12e+9
-120000000000:12e+10
-1200000000000:12e+11
-
-123:123e+0
-1230:123e+1
-12300:123e+2
-123000:123e+3
-1230000:123e+4
-12300000:123e+5
-123000000:123e+6
-1230000000:123e+7
-12300000000:123e+8
-123000000000:123e+9
-1230000000000:123e+10
-
-1234:1234e+0
-12340:1234e+1
-123400:1234e+2
-1234000:1234e+3
-12340000:1234e+4
-123400000:1234e+5
-1234000000:1234e+6
-12340000000:1234e+7
-123400000000:1234e+8
-1234000000000:1234e+9
-
-3:3e+0
-31:31e+0
-314:314e+0
-3141:3141e+0
-31415:31415e+0
-314159:314159e+0
-3141592:3141592e+0
-
-# negative numbers
-
--1:-1e+0
--10:-1e+1
--100:-1e+2
--1000:-1e+3
--10000:-1e+4
--100000:-1e+5
--1000000:-1e+6
--10000000:-1e+7
--100000000:-1e+8
--1000000000:-1e+9
--10000000000:-1e+10
--100000000000:-1e+11
--1000000000000:-1e+12
-
--12:-12e+0
--120:-12e+1
--1200:-12e+2
--12000:-12e+3
--120000:-12e+4
--1200000:-12e+5
--12000000:-12e+6
--120000000:-12e+7
--1200000000:-12e+8
--12000000000:-12e+9
--120000000000:-12e+10
--1200000000000:-12e+11
-
--123:-123e+0
--1230:-123e+1
--12300:-123e+2
--123000:-123e+3
--1230000:-123e+4
--12300000:-123e+5
--123000000:-123e+6
--1230000000:-123e+7
--12300000000:-123e+8
--123000000000:-123e+9
--1230000000000:-123e+10
-
--1234:-1234e+0
--12340:-1234e+1
--123400:-1234e+2
--1234000:-1234e+3
--12340000:-1234e+4
--123400000:-1234e+5
--1234000000:-1234e+6
--12340000000:-1234e+7
--123400000000:-1234e+8
--1234000000000:-1234e+9
-
--3:-3e+0
--31:-31e+0
--314:-314e+0
--3141:-3141e+0
--31415:-31415e+0
--314159:-314159e+0
--3141592:-3141592e+0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/buparrow-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/buparrow-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/buparrow-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/buparrow-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,581 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1021;
-
-my $class;
-
-BEGIN {
-    $class = 'Math::BigInt';
-    use_ok($class);
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($a, $n, $b, $expected) = split /:/;
-
-    # buparrow() modifies the invocand.
-
-    {
-        my ($x, $y);
-        my $test = qq|\$x = $class->new("$a"); \$y = \$x->buparrow($n, $b);|;
-
-        subtest $test,
-          sub {
-              plan tests => 4;
-
-              eval $test;
-              is($@, "", "'$test' gives emtpy \$\@");
-
-              is(ref($y), $class,
-                 "'$test' output arg is a $class");
-
-              is($y -> bstr(), $expected,
-                 "'$test' output arg has the right value");
-
-              is($x -> bstr(), $expected,
-                 "'$test' invocand has the right value");
-          };
-    }
-
-    # uparrow() does not modify the invocand.
-
-    {
-        my ($x, $y);
-        my $test = qq|\$x = $class->new("$a"); \$y = \$x->uparrow($n, $b);|;
-
-        subtest $test,
-          sub {
-              plan tests => 4;
-
-              eval $test;
-              is($@, "", "'$test' gives emtpy \$\@");
-
-              is(ref($y), $class,
-                 "'$test' output arg is a $class");
-
-              is($y -> bstr(), $expected,
-                 "'$test' output arg has the right value");
-
-              is($x -> bstr(), $a,
-                 "'$test' invocand has the right value");
-          };
-    }
-}
-
-__DATA__
-0:0:0:0
-0:0:1:0
-0:0:2:0
-0:0:3:0
-0:0:4:0
-0:0:5:0
-0:0:6:0
-0:0:7:0
-0:0:8:0
-0:0:9:0
-0:1:0:1
-0:1:1:0
-0:1:2:0
-0:1:3:0
-0:1:4:0
-0:1:5:0
-0:1:6:0
-0:1:7:0
-0:1:8:0
-0:1:9:0
-0:2:0:1
-0:2:1:0
-0:2:2:1
-0:2:3:0
-0:2:4:1
-0:2:5:0
-0:2:6:1
-0:2:7:0
-0:2:8:1
-0:2:9:0
-0:3:0:1
-0:3:1:0
-0:3:2:1
-0:3:3:0
-0:3:4:1
-0:3:5:0
-0:3:6:1
-0:3:7:0
-0:3:8:1
-0:3:9:0
-0:4:0:1
-0:4:1:0
-0:4:2:1
-0:4:3:0
-0:4:4:1
-0:4:5:0
-0:4:6:1
-0:4:7:0
-0:4:8:1
-0:4:9:0
-0:5:0:1
-0:5:1:0
-0:5:2:1
-0:5:3:0
-0:5:4:1
-0:5:5:0
-0:5:6:1
-0:5:7:0
-0:5:8:1
-0:5:9:0
-0:6:0:1
-0:6:1:0
-0:6:2:1
-0:6:3:0
-0:6:4:1
-0:6:5:0
-0:6:6:1
-0:6:7:0
-0:6:8:1
-0:6:9:0
-0:7:0:1
-0:7:1:0
-0:7:2:1
-0:7:3:0
-0:7:4:1
-0:7:5:0
-0:7:6:1
-0:7:7:0
-0:7:8:1
-0:7:9:0
-0:8:0:1
-0:8:1:0
-0:8:2:1
-0:8:3:0
-0:8:4:1
-0:8:5:0
-0:8:6:1
-0:8:7:0
-0:8:8:1
-0:8:9:0
-0:9:0:1
-0:9:1:0
-0:9:2:1
-0:9:3:0
-0:9:4:1
-0:9:5:0
-0:9:6:1
-0:9:7:0
-0:9:8:1
-0:9:9:0
-1:0:0:0
-1:0:1:1
-1:0:2:2
-1:0:3:3
-1:0:4:4
-1:0:5:5
-1:0:6:6
-1:0:7:7
-1:0:8:8
-1:0:9:9
-1:1:0:1
-1:1:1:1
-1:1:2:1
-1:1:3:1
-1:1:4:1
-1:1:5:1
-1:1:6:1
-1:1:7:1
-1:1:8:1
-1:1:9:1
-1:2:0:1
-1:2:1:1
-1:2:2:1
-1:2:3:1
-1:2:4:1
-1:2:5:1
-1:2:6:1
-1:2:7:1
-1:2:8:1
-1:2:9:1
-1:3:0:1
-1:3:1:1
-1:3:2:1
-1:3:3:1
-1:3:4:1
-1:3:5:1
-1:3:6:1
-1:3:7:1
-1:3:8:1
-1:3:9:1
-1:4:0:1
-1:4:1:1
-1:4:2:1
-1:4:3:1
-1:4:4:1
-1:4:5:1
-1:4:6:1
-1:4:7:1
-1:4:8:1
-1:4:9:1
-1:5:0:1
-1:5:1:1
-1:5:2:1
-1:5:3:1
-1:5:4:1
-1:5:5:1
-1:5:6:1
-1:5:7:1
-1:5:8:1
-1:5:9:1
-1:6:0:1
-1:6:1:1
-1:6:2:1
-1:6:3:1
-1:6:4:1
-1:6:5:1
-1:6:6:1
-1:6:7:1
-1:6:8:1
-1:6:9:1
-1:7:0:1
-1:7:1:1
-1:7:2:1
-1:7:3:1
-1:7:4:1
-1:7:5:1
-1:7:6:1
-1:7:7:1
-1:7:8:1
-1:7:9:1
-1:8:0:1
-1:8:1:1
-1:8:2:1
-1:8:3:1
-1:8:4:1
-1:8:5:1
-1:8:6:1
-1:8:7:1
-1:8:8:1
-1:8:9:1
-1:9:0:1
-1:9:1:1
-1:9:2:1
-1:9:3:1
-1:9:4:1
-1:9:5:1
-1:9:6:1
-1:9:7:1
-1:9:8:1
-1:9:9:1
-2:0:0:0
-2:0:1:2
-2:0:2:4
-2:0:3:6
-2:0:4:8
-2:0:5:10
-2:0:6:12
-2:0:7:14
-2:0:8:16
-2:0:9:18
-2:1:0:1
-2:1:1:2
-2:1:2:4
-2:1:3:8
-2:1:4:16
-2:1:5:32
-2:1:6:64
-2:1:7:128
-2:1:8:256
-2:1:9:512
-2:2:0:1
-2:2:1:2
-2:2:2:4
-2:2:3:16
-2:2:4:65536
-2:3:0:1
-2:3:1:2
-2:3:2:4
-2:3:3:65536
-2:4:0:1
-2:4:1:2
-2:4:2:4
-2:5:0:1
-2:5:1:2
-2:5:2:4
-2:6:0:1
-2:6:1:2
-2:6:2:4
-2:7:0:1
-2:7:1:2
-2:7:2:4
-2:8:0:1
-2:8:1:2
-2:8:2:4
-2:9:0:1
-2:9:1:2
-2:9:2:4
-3:0:0:0
-3:0:1:3
-3:0:2:6
-3:0:3:9
-3:0:4:12
-3:0:5:15
-3:0:6:18
-3:0:7:21
-3:0:8:24
-3:0:9:27
-3:1:0:1
-3:1:1:3
-3:1:2:9
-3:1:3:27
-3:1:4:81
-3:1:5:243
-3:1:6:729
-3:1:7:2187
-3:1:8:6561
-3:1:9:19683
-3:2:0:1
-3:2:1:3
-3:2:2:27
-3:2:3:7625597484987
-3:3:0:1
-3:3:1:3
-3:3:2:7625597484987
-3:4:0:1
-3:4:1:3
-3:5:0:1
-3:5:1:3
-3:6:0:1
-3:6:1:3
-3:7:0:1
-3:7:1:3
-3:8:0:1
-3:8:1:3
-3:9:0:1
-3:9:1:3
-4:0:0:0
-4:0:1:4
-4:0:2:8
-4:0:3:12
-4:0:4:16
-4:0:5:20
-4:0:6:24
-4:0:7:28
-4:0:8:32
-4:0:9:36
-4:1:0:1
-4:1:1:4
-4:1:2:16
-4:1:3:64
-4:1:4:256
-4:1:5:1024
-4:1:6:4096
-4:1:7:16384
-4:1:8:65536
-4:1:9:262144
-4:2:0:1
-4:2:1:4
-4:2:2:256
-4:2:3:13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
-4:3:0:1
-4:3:1:4
-4:4:0:1
-4:4:1:4
-4:5:0:1
-4:5:1:4
-4:6:0:1
-4:6:1:4
-4:7:0:1
-4:7:1:4
-4:8:0:1
-4:8:1:4
-4:9:0:1
-4:9:1:4
-5:0:0:0
-5:0:1:5
-5:0:2:10
-5:0:3:15
-5:0:4:20
-5:0:5:25
-5:0:6:30
-5:0:7:35
-5:0:8:40
-5:0:9:45
-5:1:0:1
-5:1:1:5
-5:1:2:25
-5:1:3:125
-5:1:4:625
-5:1:5:3125
-5:1:6:15625
-5:1:7:78125
-5:1:8:390625
-5:1:9:1953125
-5:2:0:1
-5:2:1:5
-5:2:2:3125
-5:2:3:1911012597945477520356404559703964599198081048990094337139512789246520530242615803012059386519739850265586440155794462235359212788673806972288410146915986602087961896757195701839281660338047611225975533626101001482651123413147768252411493094447176965282756285196737514395357542479093219206641883011787169122552421070050709064674382870851449950256586194461543183511379849133691779928127433840431549236855526783596374102105331546031353725325748636909159778690328266459182983815230286936572873691422648131291743762136325730321645282979486862576245362218017673224940567642819360078720713837072355305446356153946401185348493792719514594505508232749221605848912910945189959948686199543147666938013037176163592594479746164220050885079469804487133205133160739134230540198872570038329801246050197013467397175909027389493923817315786996845899794781068042822436093783946335265422815704302832442385515082316490967285712171708123232790481817268327510112746782317410985888683708522000711733492253913322300756147180429007527677793352306200618286012455254243061006894805446584704820650982664319360960388736258510747074340636286976576702699258649953557976318173902550891331223294743930343956161328334072831663498258145226862004307799084688103804187368324800903873596212919633602583120781673673742533322879296907205490595621406888825991244581842379597863476484315673760923625090371511798941424262270220066286486867868710182980872802560693101949280830825044198424796792058908817112327192301455582916746795197430548026404646854002733993860798594465961501752586965811447568510041568687730903712482535343839285397598749458497050038225012489284001826590056251286187629938044407340142347062055785305325034918189589707199305662188512963187501743535960282201038211616048545121039313312256332260766436236688296850208839496142830484739113991669622649948563685234712873294796680884509405893951104650944137909502276545653133018670633521323028460519434381399810561400652595300731790772711065783494174642684720956134647327748584238274899668755052504394218232191357223054066715373374248543645663782045701654593218154053548393614250664498585403307466468541890148134347714650315037954175778622811776585876941680908203125
-5:3:0:1
-5:3:1:5
-5:4:0:1
-5:4:1:5
-5:5:0:1
-5:5:1:5
-5:6:0:1
-5:6:1:5
-5:7:0:1
-5:7:1:5
-5:8:0:1
-5:8:1:5
-5:9:0:1
-5:9:1:5
-6:0:0:0
-6:0:1:6
-6:0:2:12
-6:0:3:18
-6:0:4:24
-6:0:5:30
-6:0:6:36
-6:0:7:42
-6:0:8:48
-6:0:9:54
-6:1:0:1
-6:1:1:6
-6:1:2:36
-6:1:3:216
-6:1:4:1296
-6:1:5:7776
-6:1:6:46656
-6:1:7:279936
-6:1:8:1679616
-6:1:9:10077696
-6:2:0:1
-6:2:1:6
-6:2:2:46656
-6:3:0:1
-6:3:1:6
-6:4:0:1
-6:4:1:6
-6:5:0:1
-6:5:1:6
-6:6:0:1
-6:6:1:6
-6:7:0:1
-6:7:1:6
-6:8:0:1
-6:8:1:6
-6:9:0:1
-6:9:1:6
-7:0:0:0
-7:0:1:7
-7:0:2:14
-7:0:3:21
-7:0:4:28
-7:0:5:35
-7:0:6:42
-7:0:7:49
-7:0:8:56
-7:0:9:63
-7:1:0:1
-7:1:1:7
-7:1:2:49
-7:1:3:343
-7:1:4:2401
-7:1:5:16807
-7:1:6:117649
-7:1:7:823543
-7:1:8:5764801
-7:1:9:40353607
-7:2:0:1
-7:2:1:7
-7:2:2:823543
-7:3:0:1
-7:3:1:7
-7:4:0:1
-7:4:1:7
-7:5:0:1
-7:5:1:7
-7:6:0:1
-7:6:1:7
-7:7:0:1
-7:7:1:7
-7:8:0:1
-7:8:1:7
-7:9:0:1
-7:9:1:7
-8:0:0:0
-8:0:1:8
-8:0:2:16
-8:0:3:24
-8:0:4:32
-8:0:5:40
-8:0:6:48
-8:0:7:56
-8:0:8:64
-8:0:9:72
-8:1:0:1
-8:1:1:8
-8:1:2:64
-8:1:3:512
-8:1:4:4096
-8:1:5:32768
-8:1:6:262144
-8:1:7:2097152
-8:1:8:16777216
-8:1:9:134217728
-8:2:0:1
-8:2:1:8
-8:2:2:16777216
-8:3:0:1
-8:3:1:8
-8:4:0:1
-8:4:1:8
-8:5:0:1
-8:5:1:8
-8:6:0:1
-8:6:1:8
-8:7:0:1
-8:7:1:8
-8:8:0:1
-8:8:1:8
-8:9:0:1
-8:9:1:8
-9:0:0:0
-9:0:1:9
-9:0:2:18
-9:0:3:27
-9:0:4:36
-9:0:5:45
-9:0:6:54
-9:0:7:63
-9:0:8:72
-9:0:9:81
-9:1:0:1
-9:1:1:9
-9:1:2:81
-9:1:3:729
-9:1:4:6561
-9:1:5:59049
-9:1:6:531441
-9:1:7:4782969
-9:1:8:43046721
-9:1:9:387420489
-9:2:0:1
-9:2:1:9
-9:2:2:387420489
-9:3:0:1
-9:3:1:9
-9:4:0:1
-9:4:1:9
-9:5:0:1
-9:5:1:9
-9:6:0:1
-9:6:1:9
-9:7:0:1
-9:7:1:9
-9:8:0:1
-9:8:1:9
-9:9:0:1
-9:9:1:9
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,314 +0,0 @@
-# -*- mode: perl; -*-
-
-# Binary, octal, and hexadecimal floating point literals were introduced in
-# v5.22.0.
-#
-# - It wasn't until v5.28.0 that binary, octal, and hexadecimal floating point
-#   literals were converted to the correct value on perls compiled with quadmath
-#   support.
-#
-# - It wasn't until v5.32.0 that binary and octal floating point literals worked
-#   correctly with constant overloading. Before v5.32.0, it seems like the
-#   second character is always silently converted to an "x", so, e.g., "0b1.1p8"
-#   is passed to the overload::constant subroutine as "0x1.1p8", and "01.1p+8"
-#   is passed as "0x.1p+8".
-#
-# - Octal floating point literals using the "0o" prefix were introduced in
-#   v5.34.0.
-
-# Note that all numeric literals that should not be overloaded must be quoted.
-
-use strict;
-use warnings;
-
-use Test::More tests => "170";
-
-use Math::BigFloat ":constant";
-
-my $class = "Math::BigFloat";
-my $x;
-
-################################################################################
-# The following tests should be identical for Math::BigInt, Math::BigFloat and
-# Math::BigRat.
-
-# These are handled by "binary".
-
-$x = 0xff;
-is($x, "255", "hexadecimal integer literal 0xff");
-is(ref($x), $class, "value is a $class");
-
-SKIP: {
-    # Hexadecimal literals using the "0X" prefix require v5.14.0.
-    skip "perl v5.14.0 required for hexadecimal integer literals"
-      . " with '0X' prefix", "2" if $] < "5.014";
-
-    $x = eval "0XFF";
-    is($x, "255", "hexadecimal integer literal 0XFF");
-    is(ref($x), $class, "value is a $class");
-}
-
-$x = 0377;
-is($x, "255", "octal integer literal 0377");
-is(ref($x), $class, "value is a $class");
-
-SKIP: {
-    # Octal literals using the "0o" prefix require v5.34.0.
-    skip "perl v5.34.0 required for octal floating point literals"
-      . " with '0o' prefix", "4" if $] < "5.034";
-
-    for my $str (qw/ 0o377 0O377 /) {
-        $x = eval $str;
-        is($x, "255", "octal integer literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-$x = 0b11111111;
-is($x, "255", "binary integer literal 0b11111111");
-is(ref($x), $class, "value is a $class");
-
-SKIP: {
-    # Binary literals using the "0B" prefix require v5.14.0.
-    skip "perl v5.14.0 required for binary integer literals"
-      . " with '0B' prefix", "2" if $] < "5.014";
-
-    $x = eval "0B11111111";
-    is($x, "255", "binary integer literal 0B11111111");
-    is(ref($x), $class, "value is a $class");
-}
-
-# These are handled by "float".
-
-$x = 999999999999999999999999999999999999999999999999999999999999999999999999;
-is($x,
-   "999999999999999999999999999999999999999999999999999999999999999999999999",
-   "decimal integer literal " . ("9" x 72));
-is(ref($x), $class, "value is a $class");
-
-$x = 1e72 - 1;
-is($x,
-   "999999999999999999999999999999999999999999999999999999999999999999999999",
-   "literal 1e72 - 1");
-is(ref($x), $class, "value is a $class");
-
-# These are handled by "float".
-
-SKIP: {
-    # Hexadecimal floating point literals require v5.28.0.
-    skip "perl v5.28.0 required for hexadecimal floating point literals",
-      "6" * "2" + "2" * "2" if $] < "5.028";
-
-    for my $str (qw/ 0x1.3ap+8 0X1.3AP+8
-                     0x1.3ap8  0X1.3AP8
-                     0x13a0p-4 0X13A0P-4 /)
-    {
-        $x = eval $str;
-        is($x, "314", "hexadecimal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 0x0.0p+8 0X0.0P+8 /)
-    {
-        $x = eval $str;
-        is($x, "0", "hexadecimal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Octal floating point literals using the "0o" prefix require v5.34.0.
-    skip "perl v5.34.0 required for octal floating point literals"
-      . " with '0o' prefix", "6" * "2" + "6" * "2" if $] < "5.034";
-
-    for my $str (qw/ 0o1.164p+8 0O1.164P+8
-                     0o1.164p8  0O1.164P8
-                     0o11640p-4 0O11640P-4 /)
-    {
-        $x = eval $str;
-        is($x, "314", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 0o0.0p+8 0O0.0P+8
-                     0o0.0p8  0O0.0P8
-                     0o0.0p-8 0O0.0P-8 /)
-    {
-        $x = eval $str;
-        is($x, "0", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Octal floating point literals using the "0" prefix require v5.32.0.
-    skip "perl v5.32.0 required for octal floating point literals",
-      "6" * "2" + "6" * "2" if $] < "5.032";
-
-    for my $str (qw/ 01.164p+8 01.164P+8
-                     01.164p8  01.164P8
-                     011640p-4 011640P-4 /)
-    {
-        $x = eval $str;
-        is($x, "314", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 00.0p+8 00.0P+8
-                     00.0p8 00.0P8
-                     00.0p-8 00.0P-8 /)
-    {
-        $x = eval $str;
-        is($x, "0", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Binary floating point literals require v5.32.0.
-    skip "perl v5.32.0 required for binary floating point literals",
-      "6" * "2" + "6" * "2" if $] < "5.032";
-
-    for my $str (qw/ 0b1.0011101p+8   0B1.0011101P+8
-                     0b1.0011101p8    0B1.0011101P8
-                     0b10011101000p-2 0B10011101000P-2 /)
-    {
-        $x = eval $str;
-        is($x, "314", "binary floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 0b0p+8 0B0P+8
-                     0b0p8 0B0P8
-                     0b0p-8 0B0P-8
-                   /)
-    {
-        $x = eval $str;
-        is($x, "0", "binary floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-# These are handled by "integer".
-
-$x = 314;
-is($x, "314", "integer literal 314");
-is(ref($x), $class, "value is a $class");
-
-$x = 0;
-is($x, "0", "integer literal 0");
-is(ref($x), $class, "value is a $class");
-
-$x = 2 ** 255;
-is($x,
-   "578960446186580977117854925043439539266"
-   . "34992332820282019728792003956564819968",
-   "2 ** 255");
-is(ref($x), $class, "value is a $class");
-
-# These are handled by "binary".
-
-{
-    no warnings "portable";     # protect against "non-portable" warnings
-
-    # hexadecimal constant
-    $x = 0x123456789012345678901234567890;
-    is($x,
-       "94522879687365475552814062743484560",
-       "hexadecimal constant 0x123456789012345678901234567890");
-    is(ref($x), $class, "value is a $class");
-
-    # octal constant
-    $x = 012345676543210123456765432101234567654321;
-    is($x,
-       "1736132869400711976876385488263403729",
-       "octal constant 012345676543210123456765432101234567654321");
-    is(ref($x), $class, "value is a $class");
-
-    # binary constant
-    $x = 0b01010100011001010110110001110011010010010110000101101101;
-    is($x,
-       "23755414508757357",
-       "binary constant 0b0101010001100101011011000111"
-       . "0011010010010110000101101101");
-    is(ref($x), $class, "value is a $class");
-}
-
-################################################################################
-# The following tests are unique to $class.
-
-# These are handled by "float".
-
-$x = 0.999999999999999999999999999999999999999999999999999999999999999999999999;
-is($x,
-   "0.999999999999999999999999999999999999999999999999999999999999999999999999",
-   "decimal floating point literal 0." . ("9" x 72));
-is(ref($x), $class, "value is a $class");
-
-$x = 1e72 - 0.1;
-is($x,
-   "999999999999999999999999999999999999999999999999999999999999999999999999.9",
-   "literal 1e72 - 0.1");
-is(ref($x), $class, "value is a $class");
-
-# These are handled by "float".
-
-SKIP: {
-    # Hexadecimal floating point literals require v5.28.0.
-    skip "perl v5.28.0 required for hexadecimal floating point literals",
-      "6" * "2" if $] < "5.028";
-
-    for my $str (qw/ 0x1.92p+1 0X1.92P+1
-                     0x1.92p1 0X1.92P1
-                     0x19.2p-3 0X19.2P-3 /)
-    {
-        $x = eval $str;
-        is($x, "3.140625", "hexadecimal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Octal floating point literals using the "0o" prefix require v5.34.0.
-    skip "perl v5.34.0 required for octal floating point literals"
-      . " with '0o' prefix", "6" * "2" if $] < "5.034";
-
-    for my $str (qw/ 0o1.444p+1 0O1.444P+1
-                     0o1.444p1  0O1.444P1
-                     0o14.44p-2 0O14.44P-2 /)
-    {
-        $x = eval $str;
-        is($x, "3.140625", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Octal floating point literals using the "0" prefix require v5.32.0.
-    skip "perl v5.32.0 required for octal floating point literals",
-      "6" * "2" if $] < "5.032";
-
-    for my $str (qw/ 01.444p+1 01.444P+1
-                     01.444p1  01.444P1
-                     014.44p-2 014.44P-2 /)
-    {
-        $x = eval $str;
-        is($x, "3.140625", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Binary floating point literals require v5.32.0.
-    skip "perl v5.32.0 required for binary floating point literals",
-      "6" * "2" if $] < "5.032";
-
-    for my $str (qw/ 0b1.1001001p+1 0B1.1001001P+1
-                     0b1.1001001p1  0B1.1001001P1
-                     0b110.01001p-1 0B110.01001P-1 /)
-    {
-        $x = eval $str;
-        is($x, "3.140625", "binary floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/const-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,235 +0,0 @@
-# -*- mode: perl; -*-
-
-# Binary, octal, and hexadecimal floating point literals were introduced in
-# v5.22.0.
-#
-# - It wasn't until v5.28.0 that binary, octal, and hexadecimal floating point
-#   literals were converted to the correct value on perls compiled with quadmath
-#   support.
-#
-# - It wasn't until v5.34.0 that binary and octal floating point literals worked
-#   correctly with constant overloading. Before v5.34.0, it seems like the
-#   second character is always silently converted to an "x", so, e.g., "0b1.1p8"
-#   is passed to the overload::constant subroutine as "0x1.1p8", and "01.1p+8"
-#   is passed as "0x.1p+8".
-#
-# - Octal floating point literals using the "0o" prefix were introduced in
-#   v5.34.0.
-
-# Note that all numeric literals that should not be overloaded must be quoted.
-
-use strict;
-use warnings;
-
-use Test::More tests => "118";
-
-use Math::BigInt ":constant";
-
-my $class = "Math::BigInt";
-my $x;
-
-################################################################################
-# The following tests should be identical for Math::BigInt, Math::BigFloat and
-# Math::BigRat.
-
-# These are handled by "binary".
-
-$x = 0xff;
-is($x, "255", "hexadecimal integer literal 0xff");
-is(ref($x), $class, "value is a $class");
-
-SKIP: {
-    # Hexadecimal literals using the "0X" prefix require v5.14.0.
-    skip "perl v5.14.0 required for hexadecimal integer literals"
-      . " with '0X' prefix", "2" if $] < "5.014";
-
-    $x = eval "0XFF";
-    is($x, "255", "hexadecimal integer literal 0XFF");
-    is(ref($x), $class, "value is a $class");
-}
-
-$x = 0377;
-is($x, "255", "octal integer literal 0377");
-is(ref($x), $class, "value is a $class");
-
-SKIP: {
-    # Octal literals using the "0o" prefix were introduced in v5.34.0.
-    skip "perl v5.34.0 required for octal floating point literals"
-      . " with '0o' prefix", "4" if $] < "5.034";
-
-    for my $str (qw/ 0o377 0O377 /) {
-        $x = eval $str;
-        is($x, "255", "octal integer literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-$x = 0b11111111;
-is($x, "255", "binary integer literal 0b11111111");
-is(ref($x), $class, "value is a $class");
-
-SKIP: {
-    # Binary literals using the "0B" prefix require v5.14.0.
-    skip "perl v5.14.0 required for binary integer literals"
-      . " with '0B' prefix", "2" if $] < "5.014";
-
-    $x = eval "0B11111111";
-    is($x, "255", "binary integer literal 0B11111111");
-    is(ref($x), $class, "value is a $class");
-}
-
-# These are handled by "float".
-
-$x = 999999999999999999999999999999999999999999999999999999999999999999999999;
-is($x,
-   "999999999999999999999999999999999999999999999999999999999999999999999999",
-   "decimal integer literal " . ("9" x 72));
-is(ref($x), $class, "value is a $class");
-
-$x = 1e72 - 1;
-is($x,
-   "999999999999999999999999999999999999999999999999999999999999999999999999",
-   "literal 1e72 - 1");
-is(ref($x), $class, "value is a $class");
-
-# These are handled by "float".
-
-SKIP: {
-    # Hexadecimal floating point literals require v5.28.0.
-    skip "perl v5.28.0 required for hexadecimal floating point literals",
-      "6" * "2" + "2" * "2" if $] < "5.028";
-
-    for my $str (qw/ 0x1.3ap+8 0X1.3AP+8
-                     0x1.3ap8  0X1.3AP8
-                     0x13a0p-4 0X13A0P-4 /)
-    {
-        $x = eval $str;
-        is($x, "314", "hexadecimal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 0x0.0p+8 0X0.0P+8 /)
-    {
-        $x = eval $str;
-        is($x, "0", "hexadecimal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Octal floating point literals using the "0o" prefix require v5.34.0.
-    skip "perl v5.34.0 required for octal floating point literals"
-      . " with '0o' prefix", "6" * "2" + "6" * "2" if $] < "5.034";
-
-    for my $str (qw/ 0o1.164p+8 0O1.164P+8
-                     0o1.164p8  0O1.164P8
-                     0o11640p-4 0O11640P-4 /)
-    {
-        $x = eval $str;
-        is($x, "314", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 0o0.0p+8 0O0.0P+8
-                     0o0.0p8  0O0.0P8
-                     0o0.0p-8 0O0.0P-8 /)
-    {
-        $x = eval $str;
-        is($x, "0", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Octal floating point literals using the "0" prefix require v5.32.0.
-    skip "perl v5.32.0 required for octal floating point literals",
-      "6" * "2" + "6" * "2" if $] < "5.032";
-
-    for my $str (qw/ 01.164p+8 01.164P+8
-                     01.164p8  01.164P8
-                     011640p-4 011640P-4 /)
-    {
-        $x = eval $str;
-        is($x, "314", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 00.0p+8 00.0P+8
-                     00.0p8 00.0P8
-                     00.0p-8 00.0P-8 /)
-    {
-        $x = eval $str;
-        is($x, "0", "octal floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-SKIP: {
-    # Binary floating point literals require v5.32.0.
-    skip "perl v5.32.0 required for binary floating point literals",
-      "6" * "2" + "6" * "2" if $] < "5.032";
-
-    for my $str (qw/ 0b1.0011101p+8   0B1.0011101P+8
-                     0b1.0011101p8    0B1.0011101P8
-                     0b10011101000p-2 0B10011101000P-2 /)
-    {
-        $x = eval $str;
-        is($x, "314", "binary floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-
-    for my $str (qw/ 0b0p+8 0B0P+8
-                     0b0p8 0B0P8
-                     0b0p-8 0B0P-8
-                   /)
-    {
-        $x = eval $str;
-        is($x, "0", "binary floating point literal $str");
-        is(ref($x), $class, "value is a $class");
-    }
-}
-
-# These are handled by "integer".
-
-$x = 314;
-is($x, "314", "integer literal 314");
-is(ref($x), $class, "value is a $class");
-
-$x = 0;
-is($x, "0", "integer literal 0");
-is(ref($x), $class, "value is a $class");
-
-$x = 2 ** 255;
-is($x,
-   "578960446186580977117854925043439539266"
-   . "34992332820282019728792003956564819968",
-   "2 ** 255");
-is(ref($x), $class, "value is a $class");
-
-# These are handled by "binary".
-
-{
-    no warnings "portable";     # protect against "non-portable" warnings
-
-    # hexadecimal constant
-    $x = 0x123456789012345678901234567890;
-    is($x,
-       "94522879687365475552814062743484560",
-       "hexadecimal constant 0x123456789012345678901234567890");
-    is(ref($x), $class, "value is a $class");
-
-    # octal constant
-    $x = 012345676543210123456765432101234567654321;
-    is($x,
-       "1736132869400711976876385488263403729",
-       "octal constant 012345676543210123456765432101234567654321");
-    is(ref($x), $class, "value is a $class");
-
-    # binary constant
-    $x = 0b01010100011001010110110001110011010010010110000101101101;
-    is($x,
-       "23755414508757357",
-       "binary constant 0b0101010001100101011011000111"
-       . "0011010010010110000101101101");
-    is(ref($x), $class, "value is a $class");
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/downgrade.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/downgrade.t,v
diff -u -p -a -u -p -r1.5 downgrade.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/downgrade.t	15 Feb 2023 01:36:20 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/downgrade.t	21 Feb 2024 15:47:01 -0000
@@ -5,134 +5,233 @@
 use strict;
 use warnings;
 
-use Test::More tests => 164;
+use Test::More tests => 93;
 
 use Math::BigInt   upgrade   => 'Math::BigFloat';
 use Math::BigFloat downgrade => 'Math::BigInt';
 
-# simplistic test for now
 is(Math::BigFloat->downgrade(), 'Math::BigInt', 'Math::BigFloat->downgrade()');
 is(Math::BigInt->upgrade(), 'Math::BigFloat', 'Math::BigInt->upgrade()');
 
 # bug until v1.67:
-is(Math::BigFloat->new("0.2E0"), "0.2", qq|Math::BigFloat->new("0.2E0")|);
-is(Math::BigFloat->new("0.2E1"), "2",   qq|Math::BigFloat->new("0.2E1")|);
-# until v1.67 resulted in 200:
-is(Math::BigFloat->new("0.2E2"), "20",  qq|Math::BigFloat->new("0.2E2")|);
-
-# disable, otherwise it screws calculations
-Math::BigFloat->upgrade(undef);
-is(Math::BigFloat->upgrade() || "", "", qq/Math::BigFloat->upgrade() || ""/);
-
-Math::BigFloat->div_scale(20);  # make it a bit faster
-my $x = Math::BigFloat->new(2);    # downgrades
-# the following test upgrade for bsqrt() and also makes new() NOT downgrade
-# for the bpow() side
-is(Math::BigFloat->bpow("2", "0.5"), $x->bsqrt(),
-   qq|Math::BigFloat->bpow("2", "0.5")|);
+
+subtest 'Math::BigFloat->new("0.2E0")' => sub {
+    plan tests => 2;
+    my $x = Math::BigFloat->new("0.2E0");
+    is($x, "0.2", 'value of $x');
+    is(ref($x), "Math::BigFloat", '$x is a Math::BigFloat');
+};
+
+subtest 'Math::BigFloat->new("0.2E1")' => sub {
+    plan tests => 2;
+    my $x = Math::BigFloat->new("2");
+    is($x, "2", 'value of $x');
+    is(ref($x), "Math::BigInt", '$x is downgraded to a Math::BigInt');
+};
+
+subtest 'Math::BigFloat->new("0.2E2")' => sub {
+    plan tests => 2;
+    my $x = Math::BigFloat->new("20");
+    is($x, "20", 'value of $x');
+    is(ref($x), "Math::BigInt", '$x is downgraded to a Math::BigInt');
+};
+
+# $x is a downgraded to a Math::BigInt, but bpow() and bsqrt() upgrades to
+# Math::BigFloat.
+
+Math::BigFloat -> div_scale(20);        # make it a bit faster
+
+my ($x, $y, $z);
+subtest '$x = Math::BigFloat -> new(2);' => sub {
+    plan tests => 2;
+    $x = Math::BigFloat -> new(2);     # downgrades
+    is(ref($x), 'Math::BigInt', '$x is downgraded to a Math::BigInt');
+    cmp_ok($x, "==", 2, 'value of $x');
+};
+
+subtest '$y = Math::BigFloat -> bpow("2", "0.5");' => sub {
+    plan tests => 2;
+    $y = Math::BigFloat -> bpow("2", "0.5");
+    is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat');
+    cmp_ok($y, "==", "1.4142135623730950488", 'value of $y');
+};
+
+subtest '$z = $x -> bsqrt();' => sub {
+    plan tests => 2;
+    $z = $x -> bsqrt();
+    is(ref($z), 'Math::BigFloat', '$y is a Math::BigFloat');
+    cmp_ok($z, "==", "1.4142135623730950488", 'value of $z');
+};
+
+# log_2(16) = 4
+
+subtest '$x = Math::BigFloat -> new(16); $y = $x -> blog(2);' => sub {
+    plan tests => 4;
+    $x = Math::BigFloat -> new(16);
+    is(ref($x), 'Math::BigInt', '$x is downgraded to a Math::BigInt');
+    cmp_ok($x, "==", 16, 'value of $x');
+    $y = $x -> blog(2);
+    is(ref($y), 'Math::BigInt', '$y is downgraded to a Math::BigInt');
+    cmp_ok($y, "==", 4, 'value of $y');
+};
+
+# log_16(2) = 1/4
+
+subtest '$x = Math::BigFloat -> new(2); $y = $x -> blog(16);' => sub {
+    plan tests => 4;
+    $x = Math::BigFloat -> new(2);
+    is(ref($x), 'Math::BigInt', '$x is downgraded to a Math::BigInt');
+    cmp_ok($x, "==", 2, 'value of $x');
+    $y = $x -> blog(16);
+    is(ref($y), 'Math::BigFloat', '$y is a Math::BigFloat');
+    cmp_ok($y, "==", 0.25, 'value of $y');
+};
 
 ################################################################################
 # Verify that constructors downgrade when they should.
 
 note("Enable downgrading, and see if constructors downgrade");
 
-Math::BigFloat -> downgrade("Math::BigInt");
-
-# new()
+note("testing new()");
 
 $x = Math::BigFloat -> new("0.5");
-cmp_ok($x, "==", 0.5);
-is(ref $x, "Math::BigFloat", "Creating a 0.5 does not downgrade");
+subtest '$x = Math::BigFloat -> new("0.5")' => sub {
+    plan tests => 2;
+    cmp_ok($x, "==", 0.5, 'value of $x');
+    is(ref $x, "Math::BigFloat", "does not downgrade from Math::BigFloat");
+};
 
 $x = Math::BigFloat -> new("4");
-cmp_ok($x, "==", 4, 'new("4")');
-is(ref $x, "Math::BigInt", "Creating a 4 downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> new("4")' => sub {
+    plan tests => 2;
+    cmp_ok($x, "==", 4, 'value of $x');
+    is(ref $x, "Math::BigInt", "downgrades to Math::BigInt");
+};
 
 $x = Math::BigFloat -> new("0");
-cmp_ok($x, "==", 0, 'new("0")');
-is(ref $x, "Math::BigInt", "Creating a 0 downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> new("0")' => sub {
+    plan tests => 2;
+    cmp_ok($x, "==", 0, 'value of $x');
+    is(ref $x, "Math::BigInt", "downgrades to Math::BigInt");
+};
 
 $x = Math::BigFloat -> new("1");
-cmp_ok($x, "==", 1, 'new("1")');
-is(ref $x, "Math::BigInt", "Creating a 1 downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> new("1")' => sub {
+    plan tests => 2;
+    cmp_ok($x, "==", 1, 'value of $x');
+    is(ref $x, "Math::BigInt", "downgrades to Math::BigInt");
+};
 
 $x = Math::BigFloat -> new("Inf");
-cmp_ok($x, "==", "Inf", 'new("inf")');
-is(ref $x, "Math::BigInt", "Creating an Inf downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> new("inf")' => sub {
+    plan tests => 2;
+    cmp_ok($x, "==", "Inf", 'value of $x');
+    is(ref $x, "Math::BigInt", "downgrades to Math::BigInt");
+};
 
 $x = Math::BigFloat -> new("NaN");
-is($x, "NaN", 'new("NaN")');
-is(ref $x, "Math::BigInt", "Creating a NaN downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> new("NaN")' => sub {
+    plan tests => 2;
+    is($x, "NaN", );
+    is(ref $x, "Math::BigInt", "downgrades to Math::BigInt");
+};
 
-# bzero()
+note("testing bzero()");
 
 $x = Math::BigFloat -> bzero();
-cmp_ok($x, "==", 0, "bzero()");
-is(ref $x, "Math::BigInt", "Creating a 0 downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> bzero()' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
 
-# bone()
+note("testing bone()");
 
 $x = Math::BigFloat -> bone();
-cmp_ok($x, "==", 1, "bone()");
-is(ref $x, "Math::BigInt", "Creating a 1 downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> bone()' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 1, 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
 
-# binf()
+note("testing binf()");
 
 $x = Math::BigFloat -> binf();
-cmp_ok($x, "==", "Inf", "binf()");
-is(ref $x, "Math::BigInt", "Creating an Inf downgrades to Math::BigInt");
+subtest '$x = Math::BigFloat -> binf()' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'Inf', 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
 
-# bnan()
+note("testing bnan()");
 
 $x = Math::BigFloat -> bnan();
-is($x, "NaN", "bnan()");
-is(ref $x, "Math::BigInt", "Creating a NaN downgrades to Math::BigInt");
-
-# from_dec()
-
-$x = Math::BigFloat -> from_dec("3.14e2");
-cmp_ok($x, "==", 314, 'from_dec("3.14e2")');
-is(ref $x, "Math::BigInt", 'from_dec("3.14e2") downgrades to Math::BigInt');
-
-# from_hex()
-
-$x = Math::BigFloat -> from_hex("0x1.3ap+8");
-cmp_ok($x, "==", 314, 'from_hex("3.14e2")');
-is(ref $x, "Math::BigInt", 'from_hex("3.14e2") downgrades to Math::BigInt');
-
-# from_oct()
-
-$x = Math::BigFloat -> from_oct("0o1.164p+8");
-cmp_ok($x, "==", 314, 'from_oct("0o1.164p+8")');
-is(ref $x, "Math::BigInt", 'from_oct("0o1.164p+8") downgrades to Math::BigInt');
-
-# from_bin()
+subtest '$x = Math::BigFloat -> bnan()' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
+
+note("testing from_dec()");
+
+$x = Math::BigFloat -> from_dec('3.14e2');
+subtest '$x = Math::BigFloat -> from_dec("3.14e2")' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 314, 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
+
+note("testing from_hex()");
+
+$x = Math::BigFloat -> from_hex('0x1.3ap+8');
+subtest '$x = Math::BigFloat -> from_hex("3.14e2")' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 314, 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
+
+note("testing from_oct()");
+
+$x = Math::BigFloat -> from_oct('0o1.164p+8');
+subtest '$x = Math::BigFloat -> from_oct("0o1.164p+8")' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 314, 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
+
+note("testing from_bin()");
+
+$x = Math::BigFloat -> from_bin('0b1.0011101p+8');
+subtest '$x = Math::BigFloat -> from_bin("0b1.0011101p+8")' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 314, 'value of $x');
+    is(ref $x, 'Math::BigInt', 'downgrades to Math::BigInt');
+};
 
-$x = Math::BigFloat -> from_bin("0b1.0011101p+8");
-cmp_ok($x, "==", 314, 'from_bin("0b1.0011101p+8")');
-is(ref $x, "Math::BigInt",
-   'from_bin("0b1.0011101p+8") downgrades to Math::BigInt');
-
-# from_ieee754()
+note("testing from_ieee754()");
 
 $x = Math::BigFloat -> from_ieee754("\x43\x9d\x00\x00", "binary32");
-cmp_ok($x, "==", 314, 'from_ieee754("\x43\x9d\x00\x00", "binary32")');
-is(ref $x, "Math::BigInt",
-   'from_ieee754("\x43\x9d\x00\x00", "binary32") downgrades to Math::BigInt');
+subtest '$x = Math::BigFloat -> from_ieee754("\x43\x9d\x00\x00", "binary32")' => sub {
+    plan tests => 2;
+    cmp_ok($x, "==", 314, 'value of $x');
+    is(ref $x, "Math::BigInt", 'downgrades to Math::BigInt');
+};
 
 note("Disable downgrading, and see if constructors downgrade");
 
 Math::BigFloat -> downgrade(undef);
 
+my $zero = Math::BigFloat -> bzero();
 my $half = Math::BigFloat -> new("0.5");
+my $one  = Math::BigFloat -> bone();
 my $four = Math::BigFloat -> new("4");
-my $zero = Math::BigFloat -> bzero();
 my $inf  = Math::BigFloat -> binf();
 my $nan  = Math::BigFloat -> bnan();
 
+is(ref $zero, "Math::BigFloat", "Creating a 0 does not downgrade");
 is(ref $half, "Math::BigFloat", "Creating a 0.5 does not downgrade");
+is(ref $one,  "Math::BigFloat", "Creating a 1 does not downgrade");
 is(ref $four, "Math::BigFloat", "Creating a 4 does not downgrade");
-is(ref $zero, "Math::BigFloat", "Creating a 0 does not downgrade");
 is(ref $inf,  "Math::BigFloat", "Creating an Inf does not downgrade");
 is(ref $nan,  "Math::BigFloat", "Creating a NaN does not downgrade");
 
@@ -141,352 +240,536 @@ is(ref $nan,  "Math::BigFloat", "Creatin
 
 Math::BigFloat -> downgrade("Math::BigInt");
 
-# This shouldn't be necessary, but it is. Fixme!
-
-Math::BigInt -> upgrade(undef);
-
-# bneg()
+note("testing bneg()");
 
 $x = $zero -> copy() -> bneg();
-cmp_ok($x, "==", 0, "-(0) = 0");
-is(ref($x), "Math::BigInt", "-(0) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bneg();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, '-(0) = 0');
+    is(ref($x), 'Math::BigInt', '-(0) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bneg();
-cmp_ok($x, "==", -4, "-(4) = -4");
-is(ref($x), "Math::BigInt", "-(4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bneg();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', -4, '-(4) = -4');
+    is(ref($x), 'Math::BigInt', '-(4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bneg();
-cmp_ok($x, "==", "-inf", "-(Inf) = -Inf");
-is(ref($x), "Math::BigInt", "-(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bneg();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', '-inf', '-(Inf) = -Inf');
+    is(ref($x), 'Math::BigInt', '-(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bneg();
-is($x, "NaN", "-(NaN) = NaN");
-is(ref($x), "Math::BigInt", "-(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bneg();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', '-(NaN) = NaN');
+    is(ref($x), 'Math::BigInt', '-(NaN) => Math::BigInt');
+};
 
-# bnorm()
+note("testing bnorm()");
 
 $x = $zero -> copy() -> bnorm();
-cmp_ok($x, "==", 0, "bnorm(0)");
-is(ref($x), "Math::BigInt", "bnorm(0) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bnorm();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'value of $x');
+    is(ref($x), 'Math::BigInt', 'bnorm(0) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bnorm();
-cmp_ok($x, "==", 4, "bnorm(4)");
-is(ref($x), "Math::BigInt", "bnorm(4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bnorm();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, 'value of $x');
+    is(ref($x), 'Math::BigInt', 'bnorm(4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bnorm();
-cmp_ok($x, "==", "inf", "bnorm(Inf)");
-is(ref($x), "Math::BigInt", "bnorm(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bnorm();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'value of $x');
+    is(ref($x), 'Math::BigInt', 'bnorm(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bnorm();
-is($x, "NaN", "bnorm(NaN)");
-is(ref($x), "Math::BigInt", "bnorm(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bnorm();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bnorm(NaN)');
+    is(ref($x), 'Math::BigInt', 'bnorm(NaN) => Math::BigInt');
+};
 
-# binc()
+note("testing binc()");
 
 $x = $zero -> copy() -> binc();
-cmp_ok($x, "==", 1, "binc(0)");
-is(ref($x), "Math::BigInt", "binc(0) => Math::BigInt");
+subtest '$x = $zero -> copy() -> binc();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 1, 'binc(0)');
+    is(ref($x), 'Math::BigInt', 'binc(0) => Math::BigInt');
+};
 
 $x = $four -> copy() -> binc();
-cmp_ok($x, "==", 5, "binc(4)");
-is(ref($x), "Math::BigInt", "binc(4) => Math::BigInt");
+subtest '$x = $four -> copy() -> binc();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 5, 'binc(4)');
+    is(ref($x), 'Math::BigInt', 'binc(4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> binc();
-cmp_ok($x, "==", "inf", "binc(Inf)");
-is(ref($x), "Math::BigInt", "binc(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> binc();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'binc(Inf)');
+    is(ref($x), 'Math::BigInt', 'binc(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> binc();
-is($x, "NaN", "binc(NaN)");
-is(ref($x), "Math::BigInt", "binc(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> binc();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'binc(NaN)');
+    is(ref($x), 'Math::BigInt', 'binc(NaN) => Math::BigInt');
+};
 
-# bdec()
+note("testing bdec()");
 
 $x = $zero -> copy() -> bdec();
-cmp_ok($x, "==", -1, "bdec(0)");
-is(ref($x), "Math::BigInt", "bdec(0) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bdec();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', -1, 'bdec(0)');
+    is(ref($x), 'Math::BigInt', 'bdec(0) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bdec();
-cmp_ok($x, "==", 3, "bdec(4)");
-is(ref($x), "Math::BigInt", "bdec(4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bdec();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 3, 'bdec(4)');
+    is(ref($x), 'Math::BigInt', 'bdec(4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bdec();
-cmp_ok($x, "==", "inf", "bdec(Inf)");
-is(ref($x), "Math::BigInt", "bdec(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bdec();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bdec(Inf)');
+    is(ref($x), 'Math::BigInt', 'bdec(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bdec();
-is($x, "NaN", "bdec(NaN)");
-is(ref($x), "Math::BigInt", "bdec(NaN) => Math::BigInt");
+subtest '' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bdec(NaN)');
+    is(ref($x), 'Math::BigInt', 'bdec(NaN) => Math::BigInt');
+};
 
-# badd()
+note("testing badd()");
 
 $x = $half -> copy() -> badd($nan);
-is($x, "NaN", "0.5 + NaN = NaN");
-is(ref($x), "Math::BigInt", "0.5 + NaN => Math::BigInt");
+subtest '$x = $half -> copy() -> badd($nan);' => sub {
+    plan tests => 2;
+    is($x, 'NaN', '0.5 + NaN = NaN');
+    is(ref($x), 'Math::BigInt', '0.5 + NaN => Math::BigInt');
+};
 
 $x = $half -> copy() -> badd($inf);
-cmp_ok($x, "==", "+Inf", "0.5 + Inf = Inf");
-is(ref($x), "Math::BigInt", "2.5 + Inf => Math::BigInt");
+subtest '$x = $half -> copy() -> badd($inf);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', '+Inf', '0.5 + Inf = Inf');
+    is(ref($x), 'Math::BigInt', '2.5 + Inf => Math::BigInt');
+};
 
 $x = $half -> copy() -> badd($half);
-cmp_ok($x, "==", 1, "0.5 + 0.5 = 1");
-is(ref($x), "Math::BigInt", "0.5 + 0.5 => Math::BigInt");
+subtest '$x = $half -> copy() -> badd($half);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 1, '0.5 + 0.5 = 1');
+    is(ref($x), 'Math::BigInt', '0.5 + 0.5 => Math::BigInt');
+};
 
 $x = $half -> copy() -> badd($half -> copy() -> bneg());
-cmp_ok($x, "==", 0, "0.5 + -0.5 = 0");
-is(ref($x), "Math::BigInt", "0.5 + -0.5 => Math::BigInt");
+subtest '$x = $half -> copy() -> badd($half -> copy() -> bneg());' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, '0.5 + -0.5 = 0');
+    is(ref($x), 'Math::BigInt', '0.5 + -0.5 => Math::BigInt');
+};
 
 $x = $four -> copy() -> badd($zero);
-cmp_ok($x, "==", 4, "4 + 0 = 4");
-is(ref($x), "Math::BigInt", "4 + 0 => Math::BigInt");
+subtest '$x = $four -> copy() -> badd($zero);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, '4 + 0 = 4');
+    is(ref($x), 'Math::BigInt', '4 + 0 => Math::BigInt');
+};
 
 $x = $zero -> copy() -> badd($four);
-cmp_ok($x, "==", 4, "0 + 4 = 4");
-is(ref($x), "Math::BigInt", "0 + 4 => Math::BigInt");
+subtest '$x = $zero -> copy() -> badd($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, '0 + 4 = 4');
+    is(ref($x), 'Math::BigInt', '0 + 4 => Math::BigInt');
+};
 
 $x = $inf -> copy() -> badd($four);
-cmp_ok($x, "==", "+Inf", "Inf + 4 = Inf");
-is(ref($x), "Math::BigInt", "Inf + 4 => Math::BigInt");
+subtest '$x = $inf -> copy() -> badd($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', '+Inf', 'Inf + 4 = Inf');
+    is(ref($x), 'Math::BigInt', 'Inf + 4 => Math::BigInt');
+};
 
 $x = $nan -> copy() -> badd($four);
-is($x, "NaN", "NaN + 4 = NaN");
-is(ref($x), "Math::BigInt", "NaN + 4 => Math::BigInt");
+subtest '$x = $nan -> copy() -> badd($four);' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'NaN + 4 = NaN');
+    is(ref($x), 'Math::BigInt', 'NaN + 4 => Math::BigInt');
+};
 
-# bsub()
+note("testing bsub()");
 
 $x = $half -> copy() -> bsub($nan);
-is($x, "NaN", "0.5 - NaN = NaN");
-is(ref($x), "Math::BigInt", "0.5 - NaN => Math::BigInt");
+subtest '$x = $half -> copy() -> bsub($nan);' => sub {
+    plan tests => 2;
+    is($x, 'NaN', '0.5 - NaN = NaN');
+    is(ref($x), 'Math::BigInt', '0.5 - NaN => Math::BigInt');
+};
 
 $x = $half -> copy() -> bsub($inf);
-cmp_ok($x, "==", "-Inf", "2.5 - Inf = -Inf");
-is(ref($x), "Math::BigInt", "2.5 - Inf => Math::BigInt");
+subtest '$x = $half -> copy() -> bsub($inf);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', '-Inf', '2.5 - Inf = -Inf');
+    is(ref($x), 'Math::BigInt', '2.5 - Inf => Math::BigInt');
+};
 
 $x = $half -> copy() -> bsub($half);
-cmp_ok($x, "==", 0, "0.5 + 0.5 = 0");
-is(ref($x), "Math::BigInt", "0.5 - 0.5 => Math::BigInt");
+subtest '$x = $half -> copy() -> bsub($half);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, '0.5 + 0.5 = 0');
+    is(ref($x), 'Math::BigInt', '0.5 - 0.5 => Math::BigInt');
+};
 
 $x = $half -> copy() -> bsub($half -> copy() -> bneg());
-cmp_ok($x, "==", 1, "0.5 - -0.5 = 1");
-is(ref($x), "Math::BigInt", "0.5 - -0.5 => Math::BigInt");
+subtest '$x = $half -> copy() -> bsub($half -> copy() -> bneg());' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 1, '0.5 - -0.5 = 1');
+    is(ref($x), 'Math::BigInt', '0.5 - -0.5 => Math::BigInt');
+};
 
 $x = $four -> copy() -> bsub($zero);
-cmp_ok($x, "==", 4, "4 - 0 = 4");
-is(ref($x), "Math::BigInt", "4 - 0 => Math::BigInt");
+subtest '$x = $four -> copy() -> bsub($zero);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, '4 - 0 = 4');
+    is(ref($x), 'Math::BigInt', '4 - 0 => Math::BigInt');
+};
 
 $x = $zero -> copy() -> bsub($four);
-cmp_ok($x, "==", -4, "0 - 4 = -4");
-is(ref($x), "Math::BigInt", "0 - 4 => Math::BigInt");
+subtest '$x = $zero -> copy() -> bsub($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', -4, '0 - 4 = -4');
+    is(ref($x), 'Math::BigInt', '0 - 4 => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bsub($four);
-cmp_ok($x, "==", "Inf", "Inf - 4 = Inf");
-is(ref($x), "Math::BigInt", "Inf - 4 => Math::BigInt");
+subtest '$x = $inf -> copy() -> bsub($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'Inf', 'Inf - 4 = Inf');
+    is(ref($x), 'Math::BigInt', 'Inf - 4 => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bsub($four);
-is($x, "NaN", "NaN - 4 = NaN");
-is(ref($x), "Math::BigInt", "NaN - 4 => Math::BigInt");
+subtest '$x = $nan -> copy() -> bsub($four);' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'NaN - 4 = NaN');
+    is(ref($x), 'Math::BigInt', 'NaN - 4 => Math::BigInt');
+};
 
-# bmul()
+note("testing bmul()");
 
 $x = $zero -> copy() -> bmul($four);
-cmp_ok($x, "==", 0, "bmul(0, 4) = 0");
-is(ref($x), "Math::BigInt", "bmul(0, 4) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bmul($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'bmul(0, 4) = 0');
+    is(ref($x), 'Math::BigInt', 'bmul(0, 4) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bmul($four);
-cmp_ok($x, "==", 16, "bmul(4, 4) = 16");
-is(ref($x), "Math::BigInt", "bmul(4, 4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bmul($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 16, 'bmul(4, 4) = 16');
+    is(ref($x), 'Math::BigInt', 'bmul(4, 4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bmul($four);
-cmp_ok($x, "==", "inf", "bmul(Inf, 4) = Inf");
-is(ref($x), "Math::BigInt", "bmul(Inf, 4) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bmul($four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bmul(Inf, 4) = Inf');
+    is(ref($x), 'Math::BigInt', 'bmul(Inf, 4) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bmul($four);
-is($x, "NaN", "bmul(NaN, 4) = NaN");
-is(ref($x), "Math::BigInt", "bmul(NaN, 4) => Math::BigInt");
-
-$x = $four -> copy() -> bmul("0.5");
-cmp_ok($x, "==", 2, "bmul(4, 0.5) = 2");
-is(ref($x), "Math::BigInt", "bmul(4, 0.5) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bmul($four);' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bmul(NaN, 4) = NaN');
+    is(ref($x), 'Math::BigInt', 'bmul(NaN, 4) => Math::BigInt');
+};
+
+$x = $four -> copy() -> bmul('0.5');
+subtest '' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 2, 'bmul(4, 0.5) = 2');
+    is(ref($x), 'Math::BigInt', 'bmul(4, 0.5) => Math::BigInt');
+};
 
-# bmuladd()
+note("testing bmuladd()");
 
 $x = $zero -> copy() -> bmuladd($four, $four);
-cmp_ok($x, "==", 4, "bmuladd(0, 4, 4) = 4");
-is(ref($x), "Math::BigInt", "bmuladd(0, 4, 4) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bmuladd($four, $four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, 'bmuladd(0, 4, 4) = 4');
+    is(ref($x), 'Math::BigInt', 'bmuladd(0, 4, 4) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bmuladd($four, $four);
-cmp_ok($x, "==", 20, "bmuladd(4, 4, 4) = 20");
-is(ref($x), "Math::BigInt", "bmuladd(4, 4, 4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bmuladd($four, $four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 20, 'bmuladd(4, 4, 4) = 20');
+    is(ref($x), 'Math::BigInt', 'bmuladd(4, 4, 4) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bmuladd($four, $inf);
-cmp_ok($x, "==", "inf", "bmuladd(4, 4, Inf) = Inf");
-is(ref($x), "Math::BigInt", "bmuladd(4, 4, Inf) => Math::BigInt");
+subtest '$x = $four -> copy() -> bmuladd($four, $inf);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bmuladd(4, 4, Inf) = Inf');
+    is(ref($x), 'Math::BigInt', 'bmuladd(4, 4, Inf) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bmuladd($four, $four);
-cmp_ok($x, "==", "inf", "bmuladd(Inf, 4, 4) = Inf");
-is(ref($x), "Math::BigInt", "bmuladd(Inf, 4, 4) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bmuladd($four, $four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bmuladd(Inf, 4, 4) = Inf');
+    is(ref($x), 'Math::BigInt', 'bmuladd(Inf, 4, 4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bmuladd($four, $four);
-cmp_ok($x, "==", "inf", "bmuladd(Inf, 4, 4) = Inf");
-is(ref($x), "Math::BigInt", "bmuladd(Inf, 4, 4) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bmuladd($four, $four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bmuladd(Inf, 4, 4) = Inf');
+    is(ref($x), 'Math::BigInt', 'bmuladd(Inf, 4, 4) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bmuladd($four, $four);
-is($x, "NaN", "bmuladd(NaN, 4, 4) = NaN");
-is(ref($x), "Math::BigInt", "bmuladd(NaN, 4, 4) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bmuladd($four, $four);' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bmuladd(NaN, 4, 4) = NaN');
+    is(ref($x), 'Math::BigInt', 'bmuladd(NaN, 4, 4) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bmuladd("0.5", $four);
-cmp_ok($x, "==", 6, "bmuladd(4, 0.5, 4) = 6");
-is(ref($x), "Math::BigInt", "bmuladd(4, 0.5, 4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bmuladd("0.5", $four);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 6, 'bmuladd(4, 0.5, 4) = 6');
+    is(ref($x), 'Math::BigInt', 'bmuladd(4, 0.5, 4) => Math::BigInt');
+};
 
-# bdiv()
+note("testing bdiv()");
 
-# bmod()
+$x = $zero -> copy() -> bdiv($one);
+subtest '$x = $zero -> copy() -> bdiv($one);' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'bdiv(0, 1) = 0');
+    is(ref($x), 'Math::BigInt', 'bdiv(0, 1) => Math::BigInt');
+};
 
-# bmodpow()
+note("testing bmod()");
 
-# bpow()
+note("testing bmodpow()");
 
-# blog()
+note("testing bpow()");
 
-# bexp()
+note("testing blog()");
 
-# bnok()
+note("testing bexp()");
 
-# bsin()
+note("testing bnok()");
 
-# bcos()
+note("testing bsin()");
 
-# batan()
+note("testing bcos()");
 
-# batan()
+note("testing batan()");
 
-# bsqrt()
+note("testing batan()");
 
-# broot()
+note("testing bsqrt()");
 
-# bfac()
+note("testing broot()");
 
-# bdfac()
+note("testing bfac()");
 
-# btfac()
+note("testing bdfac()");
 
-# bmfac()
+note("testing btfac()");
 
-# blsft()
+note("testing bmfac()");
 
-# brsft()
+note("testing blsft()");
 
-# band()
+note("testing brsft()");
 
-# bior()
+note("testing band()");
 
-# bxor()
+note("testing bior()");
 
-# bnot()
+note("testing bxor()");
 
-# bround()
+note("testing bnot()");
 
-# Add tests for rounding a non-integer to an integer. Fixme!
+note("testing bround()");
+
+note("testing Add tests for rounding a non-integer to an integer. Fixme!");
 
 $x = $zero -> copy() -> bround();
-cmp_ok($x, "==", 0, "bround(0)");
-is(ref($x), "Math::BigInt", "bround(0) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bround();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'bround(0)');
+    is(ref($x), 'Math::BigInt', 'bround(0) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bround();
-cmp_ok($x, "==", 4, "bround(4)");
-is(ref($x), "Math::BigInt", "bround(4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bround();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, 'bround(4)');
+    is(ref($x), 'Math::BigInt', 'bround(4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bround();
-cmp_ok($x, "==", "inf", "bround(Inf)");
-is(ref($x), "Math::BigInt", "bround(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bround();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bround(Inf)');
+    is(ref($x), 'Math::BigInt', 'bround(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bround();
-is($x, "NaN", "bround(NaN)");
-is(ref($x), "Math::BigInt", "bround(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bround();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bround(NaN)');
+    is(ref($x), 'Math::BigInt', 'bround(NaN) => Math::BigInt');
+};
 
-# bfround()
+note("testing bfround()");
 
-# Add tests for rounding a non-integer to an integer. Fixme!
+note("testing Add tests for rounding a non-integer to an integer. Fixme!");
 
 $x = $zero -> copy() -> bfround();
-cmp_ok($x, "==", 0, "bfround(0)");
-is(ref($x), "Math::BigInt", "bfround(0) => Math::BigInt");
+subtest '$x = $zero -> copy() -> bfround();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'bfround(0)');
+    is(ref($x), 'Math::BigInt', 'bfround(0) => Math::BigInt');
+};
 
 $x = $four -> copy() -> bfround();
-cmp_ok($x, "==", 4, "bfround(4)");
-is(ref($x), "Math::BigInt", "bfround(4) => Math::BigInt");
+subtest '$x = $four -> copy() -> bfround();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 4, 'bfround(4)');
+    is(ref($x), 'Math::BigInt', 'bfround(4) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bfround();
-cmp_ok($x, "==", "inf", "bfround(Inf)");
-is(ref($x), "Math::BigInt", "bfround(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bfround();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'inf', 'bfround(Inf)');
+    is(ref($x), 'Math::BigInt', 'bfround(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bfround();
-is($x, "NaN", "bfround(NaN)");
-is(ref($x), "Math::BigInt", "bfround(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bfround();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bfround(NaN)');
+    is(ref($x), 'Math::BigInt', 'bfround(NaN) => Math::BigInt');
+};
 
-# bfloor()
+note("testing bfloor()");
 
 $x = $half -> copy() -> bfloor();
-cmp_ok($x, "==", 0, "bfloor(0)");
-is(ref($x), "Math::BigInt", "bfloor(0) => Math::BigInt");
+subtest '$x = $half -> copy() -> bfloor();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'bfloor(0)');
+    is(ref($x), 'Math::BigInt', 'bfloor(0) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bfloor();
-cmp_ok($x, "==", "Inf", "bfloor(Inf)");
-is(ref($x), "Math::BigInt", "bfloor(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bfloor();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'Inf', 'bfloor(Inf)');
+    is(ref($x), 'Math::BigInt', 'bfloor(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bfloor();
-is($x, "NaN", "bfloor(NaN)");
-is(ref($x), "Math::BigInt", "bfloor(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bfloor();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bfloor(NaN)');
+    is(ref($x), 'Math::BigInt', 'bfloor(NaN) => Math::BigInt');
+};
 
-# bceil()
+note("testing bceil()");
 
 $x = $half -> copy() -> bceil();
-cmp_ok($x, "==", 1, "bceil(0)");
-is(ref($x), "Math::BigInt", "bceil(0) => Math::BigInt");
+subtest '$x = $half -> copy() -> bceil();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 1, 'bceil(0)');
+    is(ref($x), 'Math::BigInt', 'bceil(0) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bceil();
-cmp_ok($x, "==", "Inf", "bceil(Inf)");
-is(ref($x), "Math::BigInt", "bceil(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bceil();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'Inf', 'bceil(Inf)');
+    is(ref($x), 'Math::BigInt', 'bceil(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bceil();
-is($x, "NaN", "bceil(NaN)");
-is(ref($x), "Math::BigInt", "bceil(NaN) => Math::BigInt");
+subtest '$x = $nan -> copy() -> bceil();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bceil(NaN)');
+    is(ref($x), 'Math::BigInt', 'bceil(NaN) => Math::BigInt');
+};
 
-# bint()
+note("testing bint()");
 
 $x = $half -> copy() -> bint();
-cmp_ok($x, "==", 0, "bint(0)");
-is(ref($x), "Math::BigInt", "bint(0) => Math::BigInt");
+subtest '$x = $half -> copy() -> bint();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 0, 'bint(0)');
+    is(ref($x), 'Math::BigInt', 'bint(0) => Math::BigInt');
+};
 
 $x = $inf -> copy() -> bint();
-cmp_ok($x, "==", "Inf", "bint(Inf)");
-is(ref($x), "Math::BigInt", "bint(Inf) => Math::BigInt");
+subtest '$x = $inf -> copy() -> bint();' => sub {
+    plan tests => 2;
+    cmp_ok($x, '==', 'Inf', 'bint(Inf)');
+    is(ref($x), 'Math::BigInt', 'bint(Inf) => Math::BigInt');
+};
 
 $x = $nan -> copy() -> bint();
-is($x, "NaN", "bint(NaN)");
-is(ref($x), "Math::BigInt", "bint(NaN) => Math::BigInt");
-
-# bgcd()
+subtest '$x = $nan -> copy() -> bint();' => sub {
+    plan tests => 2;
+    is($x, 'NaN', 'bint(NaN)');
+    is(ref($x), 'Math::BigInt', 'bint(NaN) => Math::BigInt');
+};
 
-# blcm()
+note("testing bgcd()");
 
-# mantissa() ?
+note("testing blcm()");
 
-# exponent() ?
+note("testing mantissa()");
 
-# parts() ?
+note("testing exponent()");
 
-# sparts()
+note("testing parts()");
 
-# nparts()
+note("testing sparts()");
 
-# eparts()
+note("testing nparts()");
 
-# dparts()
+note("testing eparts()");
 
-# fparts()
+note("testing dparts()");
 
-# numerator()
+note("testing fparts()");
 
-# denominator()
+note("testing numerator()");
 
-#require 'upgrade.inc'; # all tests here for sharing
+note("testing denominator()");
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,294 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1840;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $int_str, $frc_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| (\$i, \$f) = \$x -> dparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my ($int_got, $frc_got) = $x -> dparts();
-
-        isa_ok($int_got, "Math::BigFloat");
-        isa_ok($frc_got, "Math::BigFloat");
-
-        is($int_got, $int_str, "value of integer part");
-        is($frc_got, $frc_str, "value of fraction part");
-        is($x,       $x_str,   "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| \$i = \$x -> dparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my $int_got = $x -> dparts();
-
-        isa_ok($int_got, "Math::BigFloat");
-
-        is($int_got, $int_str, "value of integer part");
-        is($x,       $x_str,   "input is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN:0
-
-inf:inf:0
--inf:-inf:0
-
-0:0:0
-
-# positive numbers
-
-0.000000000001:0:0.000000000001
-0.00000000001:0:0.00000000001
-0.0000000001:0:0.0000000001
-0.000000001:0:0.000000001
-0.00000001:0:0.00000001
-0.0000001:0:0.0000001
-0.000001:0:0.000001
-0.00001:0:0.00001
-0.0001:0:0.0001
-0.001:0:0.001
-0.01:0:0.01
-0.1:0:0.1
-1:1:0
-10:10:0
-100:100:0
-1000:1000:0
-10000:10000:0
-100000:100000:0
-1000000:1000000:0
-10000000:10000000:0
-100000000:100000000:0
-1000000000:1000000000:0
-10000000000:10000000000:0
-100000000000:100000000000:0
-1000000000000:1000000000000:0
-
-0.0000000000012:0:0.0000000000012
-0.000000000012:0:0.000000000012
-0.00000000012:0:0.00000000012
-0.0000000012:0:0.0000000012
-0.000000012:0:0.000000012
-0.00000012:0:0.00000012
-0.0000012:0:0.0000012
-0.000012:0:0.000012
-0.00012:0:0.00012
-0.0012:0:0.0012
-0.012:0:0.012
-0.12:0:0.12
-1.2:1:0.2
-12:12:0
-120:120:0
-1200:1200:0
-12000:12000:0
-120000:120000:0
-1200000:1200000:0
-12000000:12000000:0
-120000000:120000000:0
-1200000000:1200000000:0
-12000000000:12000000000:0
-120000000000:120000000000:0
-1200000000000:1200000000000:0
-
-0.00000000000123:0:0.00000000000123
-0.0000000000123:0:0.0000000000123
-0.000000000123:0:0.000000000123
-0.00000000123:0:0.00000000123
-0.0000000123:0:0.0000000123
-0.000000123:0:0.000000123
-0.00000123:0:0.00000123
-0.0000123:0:0.0000123
-0.000123:0:0.000123
-0.00123:0:0.00123
-0.0123:0:0.0123
-0.123:0:0.123
-1.23:1:0.23
-12.3:12:0.3
-123:123:0
-1230:1230:0
-12300:12300:0
-123000:123000:0
-1230000:1230000:0
-12300000:12300000:0
-123000000:123000000:0
-1230000000:1230000000:0
-12300000000:12300000000:0
-123000000000:123000000000:0
-1230000000000:1230000000000:0
-
-0.000000000001234:0:0.000000000001234
-0.00000000001234:0:0.00000000001234
-0.0000000001234:0:0.0000000001234
-0.000000001234:0:0.000000001234
-0.00000001234:0:0.00000001234
-0.0000001234:0:0.0000001234
-0.000001234:0:0.000001234
-0.00001234:0:0.00001234
-0.0001234:0:0.0001234
-0.001234:0:0.001234
-0.01234:0:0.01234
-0.1234:0:0.1234
-1.234:1:0.234
-12.34:12:0.34
-123.4:123:0.4
-1234:1234:0
-12340:12340:0
-123400:123400:0
-1234000:1234000:0
-12340000:12340000:0
-123400000:123400000:0
-1234000000:1234000000:0
-12340000000:12340000000:0
-123400000000:123400000000:0
-1234000000000:1234000000000:0
-
-0.000003141592:0:0.000003141592
-0.00003141592:0:0.00003141592
-0.0003141592:0:0.0003141592
-0.003141592:0:0.003141592
-0.03141592:0:0.03141592
-0.3141592:0:0.3141592
-3.141592:3:0.141592
-31.41592:31:0.41592
-314.1592:314:0.1592
-3141.592:3141:0.592
-31415.92:31415:0.92
-314159.2:314159:0.2
-3141592:3141592:0
-
-# negative numbers
-
--0.000000000001:0:-0.000000000001
--0.00000000001:0:-0.00000000001
--0.0000000001:0:-0.0000000001
--0.000000001:0:-0.000000001
--0.00000001:0:-0.00000001
--0.0000001:0:-0.0000001
--0.000001:0:-0.000001
--0.00001:0:-0.00001
--0.0001:0:-0.0001
--0.001:0:-0.001
--0.01:0:-0.01
--0.1:0:-0.1
--1:-1:0
--10:-10:0
--100:-100:0
--1000:-1000:0
--10000:-10000:0
--100000:-100000:0
--1000000:-1000000:0
--10000000:-10000000:0
--100000000:-100000000:0
--1000000000:-1000000000:0
--10000000000:-10000000000:0
--100000000000:-100000000000:0
--1000000000000:-1000000000000:0
-
--0.0000000000012:0:-0.0000000000012
--0.000000000012:0:-0.000000000012
--0.00000000012:0:-0.00000000012
--0.0000000012:0:-0.0000000012
--0.000000012:0:-0.000000012
--0.00000012:0:-0.00000012
--0.0000012:0:-0.0000012
--0.000012:0:-0.000012
--0.00012:0:-0.00012
--0.0012:0:-0.0012
--0.012:0:-0.012
--0.12:0:-0.12
--1.2:-1:-0.2
--12:-12:0
--120:-120:0
--1200:-1200:0
--12000:-12000:0
--120000:-120000:0
--1200000:-1200000:0
--12000000:-12000000:0
--120000000:-120000000:0
--1200000000:-1200000000:0
--12000000000:-12000000000:0
--120000000000:-120000000000:0
--1200000000000:-1200000000000:0
-
--0.00000000000123:0:-0.00000000000123
--0.0000000000123:0:-0.0000000000123
--0.000000000123:0:-0.000000000123
--0.00000000123:0:-0.00000000123
--0.0000000123:0:-0.0000000123
--0.000000123:0:-0.000000123
--0.00000123:0:-0.00000123
--0.0000123:0:-0.0000123
--0.000123:0:-0.000123
--0.00123:0:-0.00123
--0.0123:0:-0.0123
--0.123:0:-0.123
--1.23:-1:-0.23
--12.3:-12:-0.3
--123:-123:0
--1230:-1230:0
--12300:-12300:0
--123000:-123000:0
--1230000:-1230000:0
--12300000:-12300000:0
--123000000:-123000000:0
--1230000000:-1230000000:0
--12300000000:-12300000000:0
--123000000000:-123000000000:0
--1230000000000:-1230000000000:0
-
--0.000000000001234:0:-0.000000000001234
--0.00000000001234:0:-0.00000000001234
--0.0000000001234:0:-0.0000000001234
--0.000000001234:0:-0.000000001234
--0.00000001234:0:-0.00000001234
--0.0000001234:0:-0.0000001234
--0.000001234:0:-0.000001234
--0.00001234:0:-0.00001234
--0.0001234:0:-0.0001234
--0.001234:0:-0.001234
--0.01234:0:-0.01234
--0.1234:0:-0.1234
--1.234:-1:-0.234
--12.34:-12:-0.34
--123.4:-123:-0.4
--1234:-1234:0
--12340:-12340:0
--123400:-123400:0
--1234000:-1234000:0
--12340000:-12340000:0
--123400000:-123400000:0
--1234000000:-1234000000:0
--12340000000:-12340000000:0
--123400000000:-123400000000:0
--1234000000000:-1234000000000:0
-
--0.000003141592:0:-0.000003141592
--0.00003141592:0:-0.00003141592
--0.0003141592:0:-0.0003141592
--0.003141592:0:-0.003141592
--0.03141592:0:-0.03141592
--0.3141592:0:-0.3141592
--3.141592:-3:-0.141592
--31.41592:-31:-0.41592
--314.1592:-314:-0.1592
--3141.592:-3141:-0.592
--31415.92:-31415:-0.92
--314159.2:-314159:-0.2
--3141592:-3141592:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/dparts-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,162 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 784;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $int_str, $frc_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| (\$i, \$f) = \$x -> dparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my ($int_got, $frc_got) = $x -> dparts();
-
-        isa_ok($int_got, "Math::BigInt");
-        isa_ok($frc_got, "Math::BigInt");
-
-        is($int_got, $int_str, "value of integer part");
-        is($frc_got, $frc_str, "value of fraction part");
-        is($x,       $x_str,   "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| \$i = \$x -> dparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my $int_got = $x -> dparts();
-
-        isa_ok($int_got, "Math::BigInt");
-
-        is($int_got, $int_str, "value of integer part");
-        is($x,       $x_str,   "input is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN:0
-
-inf:inf:0
--inf:-inf:0
-
-0:0:0
-
-# positive numbers
-
-1:1:0
-10:10:0
-100:100:0
-1000:1000:0
-10000:10000:0
-100000:100000:0
-1000000:1000000:0
-10000000:10000000:0
-100000000:100000000:0
-1000000000:1000000000:0
-10000000000:10000000000:0
-100000000000:100000000000:0
-1000000000000:1000000000000:0
-
-12:12:0
-120:120:0
-1200:1200:0
-12000:12000:0
-120000:120000:0
-1200000:1200000:0
-12000000:12000000:0
-120000000:120000000:0
-1200000000:1200000000:0
-12000000000:12000000000:0
-120000000000:120000000000:0
-1200000000000:1200000000000:0
-
-123:123:0
-1230:1230:0
-12300:12300:0
-123000:123000:0
-1230000:1230000:0
-12300000:12300000:0
-123000000:123000000:0
-1230000000:1230000000:0
-12300000000:12300000000:0
-123000000000:123000000000:0
-1230000000000:1230000000000:0
-
-1234:1234:0
-12340:12340:0
-123400:123400:0
-1234000:1234000:0
-12340000:12340000:0
-123400000:123400000:0
-1234000000:1234000000:0
-12340000000:12340000000:0
-123400000000:123400000000:0
-1234000000000:1234000000000:0
-
-3141592:3141592:0
-
-# negative numbers
-
--1:-1:0
--10:-10:0
--100:-100:0
--1000:-1000:0
--10000:-10000:0
--100000:-100000:0
--1000000:-1000000:0
--10000000:-10000000:0
--100000000:-100000000:0
--1000000000:-1000000000:0
--10000000000:-10000000000:0
--100000000000:-100000000000:0
--1000000000000:-1000000000000:0
-
--12:-12:0
--120:-120:0
--1200:-1200:0
--12000:-12000:0
--120000:-120000:0
--1200000:-1200000:0
--12000000:-12000000:0
--120000000:-120000000:0
--1200000000:-1200000000:0
--12000000000:-12000000000:0
--120000000000:-120000000000:0
--1200000000000:-1200000000000:0
-
--123:-123:0
--1230:-1230:0
--12300:-12300:0
--123000:-123000:0
--1230000:-1230000:0
--12300000:-12300000:0
--123000000:-123000000:0
--1230000000:-1230000000:0
--12300000000:-12300000000:0
--123000000000:-123000000000:0
--1230000000000:-1230000000000:0
-
--1234:-1234:0
--12340:-12340:0
--123400:-123400:0
--1234000:-1234000:0
--12340000:-12340000:0
--123400000:-123400000:0
--1234000000:-1234000000:0
--12340000000:-12340000000:0
--123400000000:-123400000000:0
--1234000000000:-1234000000000:0
-
--3141592:-3141592:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,294 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1840;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $mant_str, $expo_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| (\$m, \$e) = \$x -> eparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my ($mant_got, $expo_got) = $x -> eparts();
-
-        isa_ok($mant_got, "Math::BigFloat");
-        isa_ok($expo_got, "Math::BigFloat");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($expo_got, $expo_str, "value of exponent");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| \$m = \$x -> eparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my $mant_got = $x -> eparts();
-
-        isa_ok($mant_got, "Math::BigFloat");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:inf
--inf:-inf:inf
-
-0:0:0
-
-# positive numbers
-
-0.000000000001:1:-12
-0.00000000001:10:-12
-0.0000000001:100:-12
-0.000000001:1:-9
-0.00000001:10:-9
-0.0000001:100:-9
-0.000001:1:-6
-0.00001:10:-6
-0.0001:100:-6
-0.001:1:-3
-0.01:10:-3
-0.1:100:-3
-1:1:0
-10:10:0
-100:100:0
-1000:1:3
-10000:10:3
-100000:100:3
-1000000:1:6
-10000000:10:6
-100000000:100:6
-1000000000:1:9
-10000000000:10:9
-100000000000:100:9
-1000000000000:1:12
-
-0.0000000000012:1.2:-12
-0.000000000012:12:-12
-0.00000000012:120:-12
-0.0000000012:1.2:-9
-0.000000012:12:-9
-0.00000012:120:-9
-0.0000012:1.2:-6
-0.000012:12:-6
-0.00012:120:-6
-0.0012:1.2:-3
-0.012:12:-3
-0.12:120:-3
-1.2:1.2:0
-12:12:0
-120:120:0
-1200:1.2:3
-12000:12:3
-120000:120:3
-1200000:1.2:6
-12000000:12:6
-120000000:120:6
-1200000000:1.2:9
-12000000000:12:9
-120000000000:120:9
-1200000000000:1.2:12
-
-0.00000000000123:1.23:-12
-0.0000000000123:12.3:-12
-0.000000000123:123:-12
-0.00000000123:1.23:-9
-0.0000000123:12.3:-9
-0.000000123:123:-9
-0.00000123:1.23:-6
-0.0000123:12.3:-6
-0.000123:123:-6
-0.00123:1.23:-3
-0.0123:12.3:-3
-0.123:123:-3
-1.23:1.23:0
-12.3:12.3:0
-123:123:0
-1230:1.23:3
-12300:12.3:3
-123000:123:3
-1230000:1.23:6
-12300000:12.3:6
-123000000:123:6
-1230000000:1.23:9
-12300000000:12.3:9
-123000000000:123:9
-1230000000000:1.23:12
-
-0.000000000001234:1.234:-12
-0.00000000001234:12.34:-12
-0.0000000001234:123.4:-12
-0.000000001234:1.234:-9
-0.00000001234:12.34:-9
-0.0000001234:123.4:-9
-0.000001234:1.234:-6
-0.00001234:12.34:-6
-0.0001234:123.4:-6
-0.001234:1.234:-3
-0.01234:12.34:-3
-0.1234:123.4:-3
-1.234:1.234:0
-12.34:12.34:0
-123.4:123.4:0
-1234:1.234:3
-12340:12.34:3
-123400:123.4:3
-1234000:1.234:6
-12340000:12.34:6
-123400000:123.4:6
-1234000000:1.234:9
-12340000000:12.34:9
-123400000000:123.4:9
-1234000000000:1.234:12
-
-0.000003141592:3.141592:-6
-0.00003141592:31.41592:-6
-0.0003141592:314.1592:-6
-0.003141592:3.141592:-3
-0.03141592:31.41592:-3
-0.3141592:314.1592:-3
-3.141592:3.141592:0
-31.41592:31.41592:0
-314.1592:314.1592:0
-3141.592:3.141592:3
-31415.92:31.41592:3
-314159.2:314.1592:3
-3141592:3.141592:6
-
-# negativ: numbers
-
--0.000000000001:-1:-12
--0.00000000001:-10:-12
--0.0000000001:-100:-12
--0.000000001:-1:-9
--0.00000001:-10:-9
--0.0000001:-100:-9
--0.000001:-1:-6
--0.00001:-10:-6
--0.0001:-100:-6
--0.001:-1:-3
--0.01:-10:-3
--0.1:-100:-3
--1:-1:0
--10:-10:0
--100:-100:0
--1000:-1:3
--10000:-10:3
--100000:-100:3
--1000000:-1:6
--10000000:-10:6
--100000000:-100:6
--1000000000:-1:9
--10000000000:-10:9
--100000000000:-100:9
--1000000000000:-1:12
-
--0.0000000000012:-1.2:-12
--0.000000000012:-12:-12
--0.00000000012:-120:-12
--0.0000000012:-1.2:-9
--0.000000012:-12:-9
--0.00000012:-120:-9
--0.0000012:-1.2:-6
--0.000012:-12:-6
--0.00012:-120:-6
--0.0012:-1.2:-3
--0.012:-12:-3
--0.12:-120:-3
--1.2:-1.2:0
--12:-12:0
--120:-120:0
--1200:-1.2:3
--12000:-12:3
--120000:-120:3
--1200000:-1.2:6
--12000000:-12:6
--120000000:-120:6
--1200000000:-1.2:9
--12000000000:-12:9
--120000000000:-120:9
--1200000000000:-1.2:12
-
--0.00000000000123:-1.23:-12
--0.0000000000123:-12.3:-12
--0.000000000123:-123:-12
--0.00000000123:-1.23:-9
--0.0000000123:-12.3:-9
--0.000000123:-123:-9
--0.00000123:-1.23:-6
--0.0000123:-12.3:-6
--0.000123:-123:-6
--0.00123:-1.23:-3
--0.0123:-12.3:-3
--0.123:-123:-3
--1.23:-1.23:0
--12.3:-12.3:0
--123:-123:0
--1230:-1.23:3
--12300:-12.3:3
--123000:-123:3
--1230000:-1.23:6
--12300000:-12.3:6
--123000000:-123:6
--1230000000:-1.23:9
--12300000000:-12.3:9
--123000000000:-123:9
--1230000000000:-1.23:12
-
--0.000000000001234:-1.234:-12
--0.00000000001234:-12.34:-12
--0.0000000001234:-123.4:-12
--0.000000001234:-1.234:-9
--0.00000001234:-12.34:-9
--0.0000001234:-123.4:-9
--0.000001234:-1.234:-6
--0.00001234:-12.34:-6
--0.0001234:-123.4:-6
--0.001234:-1.234:-3
--0.01234:-12.34:-3
--0.1234:-123.4:-3
--1.234:-1.234:0
--12.34:-12.34:0
--123.4:-123.4:0
--1234:-1.234:3
--12340:-12.34:3
--123400:-123.4:3
--1234000:-1.234:6
--12340000:-12.34:6
--123400000:-123.4:6
--1234000000:-1.234:9
--12340000000:-12.34:9
--123400000000:-123.4:9
--1234000000000:-1.234:12
-
--0.000003141592:-3.141592:-6
--0.00003141592:-31.41592:-6
--0.0003141592:-314.1592:-6
--0.003141592:-3.141592:-3
--0.03141592:-31.41592:-3
--0.3141592:-314.1592:-3
--3.141592:-3.141592:0
--31.41592:-31.41592:0
--314.1592:-314.1592:0
--3141.592:-3.141592:3
--31415.92:-31.41592:3
--314159.2:-314.1592:3
--3141592:-3.141592:6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/eparts-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,162 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 784;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $mant_str, $expo_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| (\$m, \$e) = \$x -> eparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my ($mant_got, $expo_got) = $x -> eparts();
-
-        isa_ok($mant_got, "Math::BigInt");
-        isa_ok($expo_got, "Math::BigInt");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($expo_got, $expo_str, "value of exponent");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| \$m = \$x -> eparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my $mant_got = $x -> eparts();
-
-        isa_ok($mant_got, "Math::BigInt");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:inf
--inf:-inf:inf
-
-0:0:0
-
-# positive numbers
-
-1:1:0
-10:10:0
-100:100:0
-1000:1:3
-10000:10:3
-100000:100:3
-1000000:1:6
-10000000:10:6
-100000000:100:6
-1000000000:1:9
-10000000000:10:9
-100000000000:100:9
-1000000000000:1:12
-
-12:12:0
-120:120:0
-1200:NaN:3
-12000:12:3
-120000:120:3
-1200000:NaN:6
-12000000:12:6
-120000000:120:6
-1200000000:NaN:9
-12000000000:12:9
-120000000000:120:9
-1200000000000:NaN:12
-
-123:123:0
-1230:NaN:3
-12300:NaN:3
-123000:123:3
-1230000:NaN:6
-12300000:NaN:6
-123000000:123:6
-1230000000:NaN:9
-12300000000:NaN:9
-123000000000:123:9
-1230000000000:NaN:12
-
-1234:NaN:3
-12340:NaN:3
-123400:NaN:3
-1234000:NaN:6
-12340000:NaN:6
-123400000:NaN:6
-1234000000:NaN:9
-12340000000:NaN:9
-123400000000:NaN:9
-1234000000000:NaN:12
-
-3141592:NaN:6
-
-# negativ: numbers
-
--1:-1:0
--10:-10:0
--100:-100:0
--1000:-1:3
--10000:-10:3
--100000:-100:3
--1000000:-1:6
--10000000:-10:6
--100000000:-100:6
--1000000000:-1:9
--10000000000:-10:9
--100000000000:-100:9
--1000000000000:-1:12
-
--12:-12:0
--120:-120:0
--1200:NaN:3
--12000:-12:3
--120000:-120:3
--1200000:NaN:6
--12000000:-12:6
--120000000:-120:6
--1200000000:NaN:9
--12000000000:-12:9
--120000000000:-120:9
--1200000000000:NaN:12
-
--123:-123:0
--1230:NaN:3
--12300:NaN:3
--123000:-123:3
--1230000:NaN:6
--12300000:NaN:6
--123000000:-123:6
--1230000000:NaN:9
--12300000000:NaN:9
--123000000000:-123:9
--1230000000000:NaN:12
-
--1234:NaN:3
--12340:NaN:3
--123400:NaN:3
--1234000:NaN:6
--12340000:NaN:6
--123400000:NaN:6
--1234000000:NaN:9
--12340000000:NaN:9
--123400000000:NaN:9
--1234000000000:NaN:12
-
--3141592:NaN:6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,97 +0,0 @@
-# -*- mode: perl; -*-
-
-# test fparts(), numerator(), denominator()
-
-use strict;
-use warnings;
-
-use Test::More tests => 43;
-
-my $class;
-
-BEGIN {
-    $class = 'Math::BigFloat';
-    use_ok($class);
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $n_str, $d_str) = split /:/;
-    my $test;
-
-    # test fparts()
-
-    $test = qq|\$x = $class -> new("$x_str");|
-          . qq| (\$n, \$d) = \$x -> fparts();|;
-
-    subtest $test => sub {
-        plan tests => 5;
-
-        my $x = $class -> new($x_str);
-        my ($n, $d) = $x -> fparts();
-
-        is(ref($n), $class, "class of numerator");
-        is(ref($d), $class, "class of denominator");
-
-        is($n, $n_str, "value of numerator");
-        is($d, $d_str, "value of denominator");
-        is($x, $x_str, "input is unmodified");
-    };
-
-    # test numerator()
-
-    $test = qq|\$x = $class -> new("$x_str");|
-          . qq| \$n = \$x -> numerator();|;
-
-    subtest $test => sub {
-        plan tests => 3;
-
-        my $x = $class -> new($x_str);
-        my $n = $x -> numerator();
-
-        is(ref($n), $class, "class of numerator");
-
-        is($n, $n_str, "value of numerator");
-        is($x, $x_str, "input is unmodified");
-    };
-
-    # test denominator()
-
-    $test = qq|\$x = $class -> new("$x_str");|
-          . qq| \$d = \$x -> denominator();|;
-
-    subtest $test => sub {
-        plan tests => 3;
-
-        my $x = $class -> new($x_str);
-        my $d = $x -> denominator();
-
-        is(ref($d), $class, "class of denominator");
-
-        is($d, $d_str, "value of denominator");
-        is($x, $x_str, "input is unmodified");
-    };
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:1
--inf:-inf:1
-
--30:-30:1
--3:-3:1
--1:-1:1
-0:0:1
-1:1:1
-3:3:1
-30:30:1
-
--31400:-31400:1
--3.14:-157:50
-3.14:157:50
-31400:31400:1
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/fparts-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,92 +0,0 @@
-# -*- mode: perl; -*-
-
-# test fparts(), numerator(), denominator()
-
-use strict;
-use warnings;
-
-use Test::More tests => 31;
-
-my $class;
-
-BEGIN {
-    $class = 'Math::BigInt';
-    use_ok($class);
-}
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $n_str, $d_str) = split /:/;
-    my $test;
-
-    # test fparts()
-
-    $test = qq|\$x = $class -> new("$x_str");|
-          . qq| (\$n, \$d) = \$x -> fparts();|;
-
-    subtest $test => sub {
-        plan tests => 5;
-
-        my $x = $class -> new($x_str);
-        my ($n, $d) = $x -> fparts();
-
-        is(ref($n), $class, "class of numerator");
-        is(ref($d), $class, "class of denominator");
-
-        is($n, $n_str, "value of numerator");
-        is($d, $d_str, "value of denominator");
-        is($x, $x_str, "input is unmodified");
-    };
-
-    # test numerator()
-
-    $test = qq|\$x = $class -> new("$x_str");|
-          . qq| \$n = \$x -> numerator();|;
-
-    subtest $test => sub {
-        plan tests => 3;
-
-        my $x = $class -> new($x_str);
-        my $n = $x -> numerator();
-
-        is(ref($n), $class, "class of numerator");
-
-        is($n, $n_str, "value of numerator");
-        is($x, $x_str, "input is unmodified");
-    };
-
-    # test denominator()
-
-    $test = qq|\$x = $class -> new("$x_str");|
-          . qq| \$d = \$x -> denominator();|;
-
-    subtest $test => sub {
-        plan tests => 3;
-
-        my $x = $class -> new($x_str);
-        my $d = $x -> denominator();
-
-        is(ref($d), $class, "class of denominator");
-
-        is($d, $d_str, "value of denominator");
-        is($x, $x_str, "input is unmodified");
-    };
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:1
--inf:-inf:1
-
--30:-30:1
--3:-3:1
--1:-1:1
-0:0:1
-1:1:1
-3:3:1
-30:30:1
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,126 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 176;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-my @data;
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my @in = split /:/;
-    my $out = pop @in;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_base("$in[0]", $in[1]|;
-        $test .= qq|, "$in[2]"| if @in == 3;
-        $test .= qq|);|;
-
-        eval $test;
-        #die $@ if $@;           # this should never happen
-        die "\nThe following test died when eval()'ed. This indicates a ",
-          "broken test\n\n    $test\n\nThe error message was\n\n    $@\n"
-          if $@;
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|;
-            $test .= qq| \$x -> from_base("$in[0]", $in[1]|;
-            $test .= qq|, "$in[2]"| if @in == 3;
-            $test .= qq|);|;
-
-            eval $test;
-            #die $@ if $@;       # this should never happen
-            die "\nThe following test died when eval()'ed. This indicates a ",
-              "broken test\n\n    $test\n\nThe error message was\n\n    $@\n"
-              if $@;
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-# Base 2
-
-11111010:2:250
-11111010:2:01:250
-
-# Base 8
-
-372:8:250
-372:8:01234567:250
-
-# Base 10 (in the last case, use a truncted collation sequence that does not
-# include unused characters)
-
-250:10:250
-250:10:0123456789:250
-250:10:012345:250
-
-# Base 16
-
-fa:16:250
-FA:16:250
-fa:16:0123456789abcdef:250
-
-# Base 3
-
-100021:3:250
-100021:3:012:250
-
-/|-:3:-/|:15
-
-# Base 4
-
-3322:4:250
-3322:4:0123:250
-
-# Base 5
-
-2000:5:250
-2000:5:01234:250
-caaa:5:abcde:250
-
-# when base is less than or equal to 36, case is ignored
-
-6Y:36:250
-6y:36:250
-
-6S:37:250
-7H:37:276
-
-121:3:16
-
-XYZ:36:44027
-
-Why:62:125734
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base_num-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base_num-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base_num-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_base_num-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,119 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 365;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-# For simplicity, we use the same data in the test programs for to_base_num() and
-# from_base_num().
-
-my @data =
-  (
-   [ 0, 2, [ 0 ] ],
-   [ 1, 2, [ 1 ] ],
-   [ 2, 2, [ 1, 0 ] ],
-   [ 3, 2, [ 1, 1, ] ],
-   [ 4, 2, [ 1, 0, 0 ] ],
-
-   [ 0, 10, [ 0 ] ],
-   [ 1, 10, [ 1 ] ],
-   [ 12, 10, [ 1, 2 ] ],
-   [ 123, 10, [ 1, 2, 3 ] ],
-   [ 1230, 10, [ 1, 2, 3, 0 ] ],
-
-   [ "123456789", 100, [ 1, 23, 45, 67, 89 ] ],
-
-   [ "1234567890" x 3,
-     "987654321",
-     [ "128", "142745769", "763888804", "574845669" ]],
-
-   [ "1234567890" x 5,
-     "987654321" x 3,
-     [ "12499999874843750102814", "447551941015330718793208596" ]],
-  );
-
-for (my $i = 0 ; $i <= $#data ; ++ $i) {
-    my @in = ($data[$i][2], $data[$i][1]);
-    my $out = $data[$i][0];
-
-    # As class method.
-
-    {
-        for my $base_as_scalar (1, 0) {
-            for my $elements_as_scalar (1, 0) {
-
-                my $x;
-                my $test = "\$x = $class -> from_base_num([";
-                if ($elements_as_scalar) {
-                    $test .= join ", ", map qq|"$_"|, @{ $in[0] };
-                } else {
-                    $test .= join ", ", map qq|$class -> new("$_")|, @{ $in[0] };
-                }
-                $test .= "], ";
-                if ($base_as_scalar) {
-                    $test .= qq|"$in[1]"|;
-                } else {
-                    $test .= qq|$class -> new("$in[1]")|;
-                }
-                $test .= ")";
-
-                eval $test;
-                die "\nThe following test died when eval()'ed. This",
-                  "indicates a broken test\n\n    $test\n\nThe error",
-                  " message was\n\n    $@\n" if $@;
-
-                subtest $test, sub {
-                    plan tests => 2,
-
-                    is(ref($x), $class, "output arg is a $class");
-                    is($x, $out, 'output arg has the right value');
-                };
-            }
-        }
-    }
-
-    # As instance method.
-
-    {
-        for my $base_as_scalar (1, 0) {
-            for my $elements_as_scalar (1, 0) {
-                for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-
-                    my $x;
-                    my $test = qq|\$x = $class -> new("$str");|;
-                    $test .= " \$x -> from_base_num([";
-                    if ($elements_as_scalar) {
-                        $test .= join ", ", map qq|"$_"|, @{ $in[0] };
-                    } else {
-                        $test .= join ", ", map qq|$class -> new("$_")|, @{ $in[0] };
-                    }
-                    $test .= "], ";
-                    if ($base_as_scalar) {
-                        $test .= qq|"$in[1]"|;
-                    } else {
-                        $test .= qq|$class -> new("$in[1]")|;
-                    }
-                    $test .= ")";
-
-                    eval $test;
-                    die "\nThe following test died when eval()'ed. This",
-                      "indicates a broken test\n\n    $test\n\nThe error",
-                      " message was\n\n    $@\n" if $@;
-
-                    subtest $test, sub {
-                        plan tests => 2,
-
-                        is(ref($x), $class, "output arg is a $class");
-                        is($x, $out, 'output arg has the right value');
-                    };
-                }
-            }
-        }
-    }
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,105 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 785;
-
-my $class;
-
-BEGIN { $class = 'Math::BigFloat'; }
-BEGIN { use_ok($class, '1.999710'); }
-
-my @data;
-my $space = "\t\r\n ";
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-
-    push @data, [ $in0, $out0 ],
-                [ $in0 . $space, $out0 ],
-                [ $space . $in0, $out0 ],
-                [ $space . $in0 . $space, $out0 ];
-}
-
-for my $entry (@data) {
-    my ($in0, $out0) = @$entry;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_bin("$in0");|;
-
-        eval $test;
-        die $@ if $@;           # this should never happen
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out0, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|
-                     . qq| \$x -> from_bin("$in0");|;
-
-            eval $test;
-            die $@ if $@;       # this should never happen
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out0, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-0b1p+0:1
-0b.1p+1:1
-0b.01p+2:1
-0b.001p+3:1
-0b.0001p+4:1
-0b10p-1:1
-0b100p-2:1
-0b1000p-3:1
-
--0b1p+0:-1
-
-0b0p+0:0
-0b0p+7:0
-0b0p-7:0
-0b0.p+0:0
-0b.0p+0:0
-0b0.0p+0:0
-
-0b1100101011111110:51966
-0B1100101011111110:51966
-b1100101011111110:51966
-B1100101011111110:51966
-1100101011111110:51966
-
-0b1.1001p+3:12.5
-0b10010.001101p-1:9.1015625
--0b.11110001001101010111100110111101111p+31:-2023406814.9375
-0b10.0100011010001010110011110001001101p+34:39093746765
-
-0b.p+0:NaN
-
-NaN:NaN
-+inf:NaN
--inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_bin-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,132 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1457;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-my @data;
-my $space = "\t\r\n ";
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-
-    push @data, [ $in0, $out0 ],
-                [ $in0 . $space, $out0 ],
-                [ $space . $in0, $out0 ],
-                [ $space . $in0 . $space, $out0 ];
-}
-
-for my $entry (@data) {
-    my ($in0, $out0) = @$entry;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_bin("$in0");|;
-
-        eval $test;
-        die $@ if $@;           # this should never happen
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out0, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|
-                     . qq| \$x -> from_bin("$in0");|;
-
-            eval $test;
-            die $@ if $@;       # this should never happen
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out0, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-0b0:0
-0b1:1
-0b10:2
-0b11:3
-0b100:4
-0b101:5
-0b110:6
-0b111:7
-0b1000:8
-0b1001:9
-0b1010:10
-0b1011:11
-0b1100:12
-0b1101:13
-0b1110:14
-0b1111:15
-0b10000:16
-0b10001:17
-
-0b11111110:254
-0b11111111:255
-0b100000000:256
-0b100000001:257
-
-0b1111111111111110:65534
-0b1111111111111111:65535
-0b10000000000000000:65536
-0b10000000000000001:65537
-
-0b111111111111111111111110:16777214
-0b111111111111111111111111:16777215
-0b1000000000000000000000000:16777216
-0b1000000000000000000000001:16777217
-
-0b11111111111111111111111111111110:4294967294
-0b11111111111111111111111111111111:4294967295
-0b100000000000000000000000000000000:4294967296
-0b100000000000000000000000000000001:4294967297
-
-0b1111111111111111111111111111111111111110:1099511627774
-0b1111111111111111111111111111111111111111:1099511627775
-0b10000000000000000000000000000000000000000:1099511627776
-0b10000000000000000000000000000000000000001:1099511627777
-
-0b111111111111111111111111111111111111111111111110:281474976710654
-0b111111111111111111111111111111111111111111111111:281474976710655
-0b1000000000000000000000000000000000000000000000000:281474976710656
-0b1000000000000000000000000000000000000000000000001:281474976710657
-
-0b11111111111111111111111111111111111111111111111111111110:72057594037927934
-0b11111111111111111111111111111111111111111111111111111111:72057594037927935
-0b100000000000000000000000000000000000000000000000000000000:72057594037927936
-0b100000000000000000000000000000000000000000000000000000001:72057594037927937
-
-0B10:2
-b10:2
-B10:2
-
-NaN:NaN
-+inf:NaN
--inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbf.t	15 Feb 2023 01:36:20 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,105 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 785;
-
-my $class;
-
-BEGIN { $class = 'Math::BigFloat'; }
-BEGIN { use_ok($class, '1.999821'); }
-
-my @data;
-my $space = "\t\r\n ";
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-
-    push @data, [ $in0, $out0 ],
-                [ $in0 . $space, $out0 ],
-                [ $space . $in0, $out0 ],
-                [ $space . $in0 . $space, $out0 ];
-}
-
-for my $entry (@data) {
-    my ($in0, $out0) = @$entry;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_hex("$in0");|;
-
-        eval $test;
-        die $@ if $@;           # this should never happen
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out0, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|
-                     . qq| \$x -> from_hex("$in0");|;
-
-            eval $test;
-            die $@ if $@;       # this should never happen
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out0, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-0x1p+0:1
-0x.8p+1:1
-0x.4p+2:1
-0x.2p+3:1
-0x.1p+4:1
-0x2p-1:1
-0x4p-2:1
-0x8p-3:1
-
--0x1p+0:-1
-
-0x0p+0:0
-0x0p+7:0
-0x0p-7:0
-0x0.p+0:0
-0x.0p+0:0
-0x0.0p+0:0
-
-0xcafe:51966
-0Xcafe:51966
-xcafe:51966
-Xcafe:51966
-cafe:51966
-
-0x1.9p+3:12.5
-0x12.34p-1:9.1015625
--0x.789abcdefp+32:-2023406814.9375
-0x12.3456789ap+31:39093746765
-
-0x.p+0:NaN
-
-NaN:NaN
-+inf:NaN
--inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_hex-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,132 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1457;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-my @data;
-my $space = "\t\r\n ";
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-
-    push @data, [ $in0, $out0 ],
-                [ $in0 . $space, $out0 ],
-                [ $space . $in0, $out0 ],
-                [ $space . $in0 . $space, $out0 ];
-}
-
-for my $entry (@data) {
-    my ($in0, $out0) = @$entry;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_hex("$in0");|;
-
-        eval $test;
-        die $@ if $@;           # this should never happen
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out0, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|
-                     . qq| \$x -> from_hex("$in0");|;
-
-            eval $test;
-            die $@ if $@;       # this should never happen
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out0, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-0x0:0
-0x1:1
-0x2:2
-0x3:3
-0x4:4
-0x5:5
-0x6:6
-0x7:7
-0x8:8
-0x9:9
-0xa:10
-0xb:11
-0xc:12
-0xd:13
-0xe:14
-0xf:15
-0x10:16
-0x11:17
-
-0xfe:254
-0xff:255
-0x100:256
-0x101:257
-
-0xfffe:65534
-0xffff:65535
-0x10000:65536
-0x10001:65537
-
-0xfffffe:16777214
-0xffffff:16777215
-0x1000000:16777216
-0x1000001:16777217
-
-0xfffffffe:4294967294
-0xffffffff:4294967295
-0x100000000:4294967296
-0x100000001:4294967297
-
-0xfffffffffe:1099511627774
-0xffffffffff:1099511627775
-0x10000000000:1099511627776
-0x10000000001:1099511627777
-
-0xfffffffffffe:281474976710654
-0xffffffffffff:281474976710655
-0x1000000000000:281474976710656
-0x1000000000001:281474976710657
-
-0xfffffffffffffe:72057594037927934
-0xffffffffffffff:72057594037927935
-0x100000000000000:72057594037927936
-0x100000000000001:72057594037927937
-
-0X10:16
-x10:16
-X10:16
-
-NaN:NaN
-+inf:NaN
--inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_ieee754-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_ieee754-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_ieee754-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_ieee754-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,257 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 230;
-
-use Math::BigFloat;
-
-my @k = (16, 32, 64, 128);
-
-sub stringify {
-    my $x = shift;
-    return "$x" unless $x -> is_finite();
-    my $nstr = $x -> bnstr();
-    my $sstr = $x -> bsstr();
-    return length($nstr) < length($sstr) ? $nstr : $sstr;
-}
-
-for my $k (@k) {
-
-    # Parameters specific to this format:
-
-    my $b = 2;
-    my $p = $k == 16 ? 11
-          : $k == 32 ? 24
-          : $k == 64 ? 53
-          : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13;
-
-    $b = Math::BigFloat -> new($b);
-    $k = Math::BigFloat -> new($k);
-    $p = Math::BigFloat -> new($p);
-    my $w = $k - $p;
-
-    my $emax = 2 ** ($w - 1) - 1;
-    my $emin = 1 - $emax;
-
-    my $format = sprintf 'binary%u', $k;
-
-    my $binv = Math::BigFloat -> new("0.5");
-
-    my $data =
-      [
-
-       {
-        dsc => "smallest positive subnormal number",
-        bin => "0"
-             . ("0" x $w)
-             . ("0" x ($p - 2)) . "1",
-        asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") "
-             . "= $b ** (" . ($emin + 1 - $p) . ")",
-        mbf => $binv ** ($p - 1 - $emin),
-       },
-
-       {
-        dsc => "largest subnormal number",
-        bin => "0"
-             . ("0" x $w)
-             . ("1" x ($p - 1)),
-        asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))",
-        mbf => $binv ** (-$emin) * (1 - $binv ** ($p - 1)),
-       },
-
-       {
-        dsc => "smallest positive normal number",
-        bin => "0"
-             . ("0" x ($w - 1)) . "1"
-             . ("0" x ($p - 1)),
-        asc => "$b ** ($emin)",
-        mbf => $binv ** (-$emin),
-       },
-
-       {
-        dsc => "largest normal number",
-        bin => "0"
-             . ("1" x ($w - 1)) . "0"
-             . "1" x ($p - 1),
-        asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))",
-        mbf => $b ** $emax * ($b - $binv ** ($p - 1)),
-       },
-
-       {
-        dsc => "largest number less than one",
-        bin => "0"
-             . "0" . ("1" x ($w - 2)) . "0"
-             . "1" x ($p - 1),
-        asc => "1 - $b ** (-$p)",
-        mbf => 1 - $binv ** $p,
-       },
-
-       {
-        dsc => "smallest number larger than one",
-        bin => "0"
-             . "0" . ("1" x ($w - 1))
-             . ("0" x ($p - 2)) . "1",
-        asc => "1 + $b ** (" . (1 - $p) . ")",
-        mbf => 1 + $binv ** ($p - 1),
-       },
-
-       {
-        dsc => "second smallest number larger than one",
-        bin => "0"
-             . "0" . ("1" x ($w - 1))
-             . ("0" x ($p - 3)) . "10",
-        asc => "1 + $b ** (" . (2 - $p) . ")",
-        mbf => 1 + $binv ** ($p - 2),
-       },
-
-       {
-        dsc => "one",
-        bin => "0"
-             . "0" . ("1" x ($w - 1))
-             . "0" x ($p - 1),
-        asc => "1",
-        mbf => Math::BigFloat -> new("1"),
-       },
-
-       {
-        dsc => "minus one",
-        bin => "1"
-             . "0" . ("1" x ($w - 1))
-             . "0" x ($p - 1),
-        asc => "-1",
-        mbf => Math::BigFloat -> new("-1"),
-       },
-
-       {
-        dsc => "two",
-        bin => "0"
-             . "1" . ("0" x ($w - 1))
-             . ("0" x ($p - 1)),
-        asc => "2",
-        mbf => Math::BigFloat -> new("2"),
-       },
-
-       {
-        dsc => "minus two",
-        bin => "1"
-             . "1" . ("0" x ($w - 1))
-             . ("0" x ($p - 1)),
-        asc => "-2",
-        mbf => Math::BigFloat -> new("-2"),
-       },
-
-       {
-        dsc => "positive zero",
-        bin => "0"
-             . ("0" x $w)
-             . ("0" x ($p - 1)),
-        asc => "+0",
-        mbf => Math::BigFloat -> new("0"),
-       },
-
-       {
-        dsc => "negative zero",
-        bin => "1"
-             . ("0" x $w)
-             . ("0" x ($p - 1)),
-        asc => "-0",
-        mbf => Math::BigFloat -> new("0"),
-       },
-
-       {
-        dsc => "positive infinity",
-        bin => "0"
-             . ("1" x $w)
-             . ("0" x ($p - 1)),
-        asc => "+inf",
-        mbf => Math::BigFloat -> new("inf"),
-       },
-
-       {
-        dsc => "negative infinity",
-        bin =>  "1"
-             . ("1" x $w)
-             . ("0" x ($p - 1)),
-        asc => "-inf",
-        mbf => Math::BigFloat -> new("-inf"),
-       },
-
-       {
-        dsc => "NaN (sNaN on most processors, such as x86 and ARM)",
-        bin => "0"
-             . ("1" x $w)
-             . ("0" x ($p - 2)) . "1",
-        asc => "sNaN",
-        mbf => Math::BigFloat -> new("NaN"),
-       },
-
-       {
-        dsc => "NaN (qNaN on most processors, such as x86 and ARM)",
-        bin => "0"
-             . ("1" x $w)
-             . "1" . ("0" x ($p - 3)) . "1",
-        asc => "qNaN",
-        mbf => Math::BigFloat -> new("NaN"),
-       },
-
-       {
-        dsc => "NaN (an alternative encoding)",
-        bin => "0"
-             . ("1" x $w)
-             . ("1" x ($p - 1)),
-        asc => "NaN",
-        mbf => Math::BigFloat -> new("NaN"),
-       },
-
-       {
-        dsc => "NaN (encoding used by Perl on Cygwin)",
-        bin => "1"
-             . ("1" x $w)
-             . ("1" . ("0" x ($p - 2))),
-        asc => "NaN",
-        mbf => Math::BigFloat -> new("NaN"),
-       },
-
-      ];
-
-    for my $entry (@$data) {
-        my $bin   = $entry -> {bin};
-        my $bytes = pack "B*", $bin;
-        my $hex   = unpack "H*", $bytes;
-
-        note("\n", $entry -> {dsc }, " (k = $k)\n\n");
-
-        my $expected = stringify($entry -> {mbf});
-        my ($got, $test);
-
-        $got = Math::BigFloat -> from_ieee754($bin, $format);
-        $got = stringify($got);
-        $test = qq|Math::BigFloat->from_ieee754("$bin")|;
-        is($got, $expected, $test);
-
-        $got = Math::BigFloat -> from_ieee754($hex, $format);
-        $got = stringify($got);
-        $test = qq|Math::BigFloat->from_ieee754("$hex")|;
-        is($got, $expected, $test);
-
-        $got = Math::BigFloat -> from_ieee754($bytes, $format);
-        $got = stringify($got);
-        (my $str = $hex) =~ s/(..)/\\x$1/g;
-        $test = qq|Math::BigFloat->from_ieee754("$str")|;
-        is($got, $expected, $test);
-    }
-}
-
-note("\nTest as class method vs. instance method.\n\n");
-
-# As class method.
-
-my $x = Math::BigFloat -> from_ieee754("4000000000000000", "binary64");
-is($x, 2, "class method");
-
-# As instance method, the invocand should be modified.
-
-$x -> from_ieee754("4008000000000000", "binary64");
-is($x, 3, "instance method modifies invocand");
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,137 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1401;
-
-my $class;
-
-BEGIN { $class = 'Math::BigFloat'; }
-BEGIN { use_ok($class, '1.999710'); }
-
-my @data;
-my $space = "\t\r\n ";
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-
-    push @data, [ $in0, $out0 ],
-                [ $in0 . $space, $out0 ],
-                [ $space . $in0, $out0 ],
-                [ $space . $in0 . $space, $out0 ];
-}
-
-for my $entry (@data) {
-    my ($in0, $out0) = @$entry;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_oct("$in0");|;
-
-        eval $test;
-        die $@ if $@;           # this should never happen
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out0, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|
-                     . qq| \$x -> from_oct("$in0");|;
-
-            eval $test;
-            die $@ if $@;       # this should never happen
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out0, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-# Without "0o" prefix.
-
-01p+0:1
-0.4p+1:1
-0.2p+2:1
-0.1p+3:1
-0.04p+4:1
-02p-1:1
-04p-2:1
-010p-3:1
-
--1p+0:-1
-
-0p+0:0
-0p+7:0
-0p-7:0
-0.p+0:0
-.0p+0:0
-0.0p+0:0
-
-145376:51966
-0145376:51966
-00145376:51966
-
-3.1p+2:12.5
-22.15p-1:9.1015625
--0.361152746757p+32:-2023406814.9375
-44.3212636115p+30:39093746765
-
-.p+0:NaN
-
-# With "0o" prefix.
-
-0o01p+0:1
-0o0.4p+1:1
-0o0.2p+2:1
-0o0.1p+3:1
-0o0.04p+4:1
-0o02p-1:1
-0o04p-2:1
-0o010p-3:1
-
--0o1p+0:-1
-
-0o0p+0:0
-0o0p+7:0
-0o0p-7:0
-0o0.p+0:0
-0o.0p+0:0
-0o0.0p+0:0
-
-0o145376:51966
-0O145376:51966
-o145376:51966
-O145376:51966
-
-0o3.1p+2:12.5
-0o22.15p-1:9.1015625
--0o0.361152746757p+32:-2023406814.9375
-0o44.3212636115p+30:39093746765
-
-0o.p+0:NaN
-
-NaN:NaN
-+inf:NaN
--inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/from_oct-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,186 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 2745;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-my @data;
-my $space = "\t\r\n ";
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-
-    push @data, [ $in0, $out0 ],
-                [ $in0 . $space, $out0 ],
-                [ $space . $in0, $out0 ],
-                [ $space . $in0 . $space, $out0 ];
-}
-
-for my $entry (@data) {
-    my ($in0, $out0) = @$entry;
-
-    # As class method.
-
-    {
-        my $x;
-        my $test = qq|\$x = $class -> from_oct("$in0");|;
-
-        eval $test;
-        die $@ if $@;           # this should never happen
-
-        subtest $test, sub {
-            plan tests => 2,
-
-            is(ref($x), $class, "output arg is a $class");
-            is($x, $out0, 'output arg has the right value');
-        };
-    }
-
-    # As instance method.
-
-    {
-        for my $str ("-1", "0", "1", "-inf", "+inf", "NaN") {
-            my $x;
-            my $test = qq|\$x = $class -> new("$str");|
-                     . qq| \$x -> from_oct("$in0");|;
-
-            eval $test;
-            die $@ if $@;       # this should never happen
-
-            subtest $test, sub {
-                plan tests => 2,
-
-                is(ref($x), $class, "output arg is a $class");
-                is($x, $out0, 'output arg has the right value');
-            };
-        }
-    }
-}
-
-__END__
-
-0:0
-1:1
-2:2
-3:3
-4:4
-5:5
-6:6
-7:7
-10:8
-11:9
-12:10
-13:11
-14:12
-15:13
-16:14
-17:15
-20:16
-21:17
-
-376:254
-377:255
-400:256
-401:257
-
-177776:65534
-177777:65535
-200000:65536
-200001:65537
-
-77777776:16777214
-77777777:16777215
-100000000:16777216
-100000001:16777217
-
-37777777776:4294967294
-37777777777:4294967295
-40000000000:4294967296
-40000000001:4294967297
-
-17777777777776:1099511627774
-17777777777777:1099511627775
-20000000000000:1099511627776
-20000000000001:1099511627777
-
-7777777777777776:281474976710654
-7777777777777777:281474976710655
-10000000000000000:281474976710656
-10000000000000001:281474976710657
-
-3777777777777777776:72057594037927934
-3777777777777777777:72057594037927935
-4000000000000000000:72057594037927936
-4000000000000000001:72057594037927937
-
-0o0:0
-0o1:1
-0o2:2
-0o3:3
-0o4:4
-0o5:5
-0o6:6
-0o7:7
-0o10:8
-0o11:9
-0o12:10
-0o13:11
-0o14:12
-0o15:13
-0o16:14
-0o17:15
-0o20:16
-0o21:17
-
-0o376:254
-0o377:255
-0o400:256
-0o401:257
-
-0o177776:65534
-0o177777:65535
-0o200000:65536
-0o200001:65537
-
-0o77777776:16777214
-0o77777777:16777215
-0o100000000:16777216
-0o100000001:16777217
-
-0o37777777776:4294967294
-0o37777777777:4294967295
-0o40000000000:4294967296
-0o40000000001:4294967297
-
-0o17777777777776:1099511627774
-0o17777777777777:1099511627775
-0o20000000000000:1099511627776
-0o20000000000001:1099511627777
-
-0o7777777777777776:281474976710654
-0o7777777777777777:281474976710655
-0o10000000000000000:281474976710656
-0o10000000000000001:281474976710657
-
-0o3777777777777777776:72057594037927934
-0o3777777777777777777:72057594037927935
-0o4000000000000000000:72057594037927936
-0o4000000000000000001:72057594037927937
-
-0O10:8
-o10:8
-O10:8
-
-NaN:NaN
-+inf:NaN
--inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/inf_nan.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/inf_nan.t,v
diff -u -p -a -u -p -r1.4 inf_nan.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/inf_nan.t	15 Feb 2023 01:36:20 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/inf_nan.t	21 Feb 2024 15:47:01 -0000
@@ -1,13 +1,12 @@
 # -*- mode: perl; -*-
 
 # test inf/NaN handling all in one place
-# Thanx to Jarkko for the excellent explanations and the tables
 
 use strict;
 use warnings;
 use lib 't';
 
-use Test::More tests => 2052;
+use Test::More tests => 1044;
 
 use Math::BigInt;
 use Math::BigFloat;
@@ -17,7 +16,7 @@ use Math::BigFloat::Subclass;
 my @biclasses = qw/ Math::BigInt   Math::BigInt::Subclass   /;
 my @bfclasses = qw/ Math::BigFloat Math::BigFloat::Subclass /;
 
-my (@args, $x, $y, $z);
+my (@args, $x, $y, $z, $test);
 
 # +
 
@@ -75,13 +74,25 @@ foreach (qw/
 {
     @args = split /:/, $_;
     for my $class (@biclasses, @bfclasses) {
+        $args[2] = '0' if $args[2] eq '-0';     # Math::Big* has no -0
         $x = $class->new($args[0]);
         $y = $class->new($args[1]);
-        $args[2] = '0' if $args[2] eq '-0'; # Math::Big(Int|Float) has no -0
-        my $r = $x->badd($y);
+        $z = $x->badd($y);
 
-        is($x->bstr(), $args[2], "x $class $args[0] + $args[1]");
-        is($x->bstr(), $args[2], "r $class $args[0] + $args[1]");
+        $test = qq|\$x = $class->new("$args[0]"); |
+              . qq|\$y = $class->new("$args[1]"); |
+              . qq|\$z = \$x->badd(\$y);|;
+
+        subtest $test => sub {
+            plan tests => 6;
+
+            is(ref($x), $class, "\$x is a $class");
+            is(ref($y), $class, "\$y is still a $class");
+            is(ref($z), $class, "\$z is a $class");
+            is($x->bstr(), $args[2], 'value of $x');
+            is($y->bstr(), $args[1], 'value of $y');
+            is($z->bstr(), $args[2], 'value of $z');
+        };
     }
 }
 
@@ -141,13 +152,25 @@ foreach (qw/
 {
     @args = split /:/, $_;
     for my $class (@biclasses, @bfclasses) {
+        $args[2] = '0' if $args[2] eq '-0';     # Math::Big* has no -0
         $x = $class->new($args[0]);
         $y = $class->new($args[1]);
-        $args[2] = '0' if $args[2] eq '-0'; # Math::Big(Int|Float) has no -0
-        my $r = $x->bsub($y);
+        $z = $x->bsub($y);
 
-        is($x->bstr(), $args[2], "x $class $args[0] - $args[1]");
-        is($r->bstr(), $args[2], "r $class $args[0] - $args[1]");
+        $test = qq|\$x = $class->new("$args[0]"); |
+              . qq|\$y = $class->new("$args[1]"); |
+              . qq|\$z = \$x->bsub(\$y);|;
+
+        subtest $test => sub {
+            plan tests => 6;
+
+            is(ref($x), $class, "\$x is a $class");
+            is(ref($y), $class, "\$y is still a $class");
+            is(ref($z), $class, "\$z is a $class");
+            is($x->bstr(), $args[2], 'value of $x');
+            is($y->bstr(), $args[1], 'value of $y');
+            is($z->bstr(), $args[2], 'value of $z');
+        };
     }
 }
 
@@ -207,13 +230,25 @@ foreach (qw/
 {
     @args = split /:/, $_;
     for my $class (@biclasses, @bfclasses) {
+        $args[2] = '0' if $args[2] eq '-0';     # Math::Big* has no -0
         $x = $class->new($args[0]);
         $y = $class->new($args[1]);
-        $args[2] = '0' if $args[2] eq '-0'; # Math::Big(Int|Float) has no -0
-        my $r = $x->bmul($y);
+        $z = $x->bmul($y);
 
-        is($x->bstr(), $args[2], "x $class $args[0] * $args[1]");
-        is($r->bstr(), $args[2], "r $class $args[0] * $args[1]");
+        $test = qq|\$x = $class->new("$args[0]"); |
+              . qq|\$y = $class->new("$args[1]"); |
+              . qq|\$z = \$x->bmul(\$y);|;
+
+        subtest $test => sub {
+            plan tests => 6;
+
+            is(ref($x), $class, "\$x is a $class");
+            is(ref($y), $class, "\$y is still a $class");
+            is(ref($z), $class, "\$z is a $class");
+            is($x->bstr(), $args[2], 'value of $x');
+            is($y->bstr(), $args[1], 'value of $y');
+            is($z->bstr(), $args[2], 'value of $z');
+        };
     }
 }
 
@@ -273,34 +308,80 @@ foreach (qw/
 {
     @args = split /:/, $_;
     for my $class (@biclasses, @bfclasses) {
-        $x = $class->new($args[0]);
-        $y = $class->new($args[1]);
-        $args[2] = '0' if $args[2] eq '-0'; # Math::Big(Int|Float) has no -0
+        $args[2] = '0' if $args[2] eq '-0';     # Math::Big* has no -0
 
-        my $t = $x->copy();
-        my $tmod = $t->copy();
+        my ($q, $r);
 
         # bdiv in scalar context
+
+        $x = $class->new($args[0]);
+        $y = $class->new($args[1]);
+
         unless ($class =~ /^Math::BigFloat/) {
-            my $r = $x->bdiv($y);
-            is($x->bstr(), $args[2], "x $class $args[0] / $args[1]");
-            is($r->bstr(), $args[2], "r $class $args[0] / $args[1]");
+            $q = $x->bdiv($y);
+
+            $test = qq|\$x = $class->new("$args[0]"); |
+                  . qq|\$y = $class->new("$args[1]"); |
+                  . qq|\$q = \$x->bdiv(\$y);|;
+
+            subtest $test => sub {
+                plan tests => 6;
+
+                is(ref($x), $class, "\$x is a $class");
+                is(ref($y), $class, "\$y is still a $class");
+                is(ref($q), $class, "\$q is a $class");
+                is($x->bstr(), $args[2], 'value of $x');
+                is($y->bstr(), $args[1], 'value of $y');
+                is($q->bstr(), $args[2], 'value of $q');
+            };
         }
 
         # bmod and bdiv in list context
-        my ($d, $rem) = $t->bdiv($y);
+
+        $x = $class->new($args[0]);
+        $y = $class->new($args[1]);
+
+        ($q, $r) = $x->bdiv($y);
 
         # bdiv in list context
-        is($t->bstr(), $args[2], "t $class $args[0] / $args[1]");
-        is($d->bstr(), $args[2], "d $class $args[0] / $args[1]");
+
+        $test = qq|\$x = $class->new("$args[0]"); |
+              . qq|\$y = $class->new("$args[1]"); |
+              . qq|(\$q, \$r) = \$x->bdiv(\$y);|;
+
+        subtest $test => sub {
+            plan tests => 7;
+
+            is(ref($x), $class, "\$x is a $class");
+            is(ref($y), $class, "\$y is still a $class");
+            is(ref($q), $class, "\$q is a $class");
+            is(ref($r), $class, "\$r is a $class");
+            is($x->bstr(), $args[2], 'value of $x');
+            is($y->bstr(), $args[1], 'value of $y');
+            is($q->bstr(), $args[2], 'value of $q');
+        };
 
         # bmod
-        my $m = $tmod->bmod($y);
 
-        # bmod() agrees with bdiv?
-        is($m->bstr(), $rem->bstr(), "m $class $args[0] % $args[1]");
-        # bmod() return agrees with set value?
-        is($tmod->bstr(), $m->bstr(), "o $class $args[0] % $args[1]");
+        $x = $class->new($args[0]);
+        $y = $class->new($args[1]);
+
+        my $m = $x->bmod($y);
+
+        $test = qq|\$x = $class->new("$args[0]"); |
+              . qq|\$y = $class->new("$args[1]"); |
+              . qq|\$m = \$x->bmod(\$y);|;
+
+        subtest $test => sub {
+            plan tests => 6;
+
+            is(ref($x), $class, "\$x is a $class");
+            is(ref($y), $class, "\$y is still a $class");
+            is(ref($m), $class, "\$m is a $class");
+            is($x->bstr(), $r->bstr(), 'value of $x');
+            is($y->bstr(), $args[1], 'value of $y');
+            is($m->bstr(), $r->bstr(), 'value of $m');
+        };
     }
 }
 
@@ -360,17 +441,25 @@ foreach (qw/
 {
     @args = split /:/, $_;
     for my $class (@bfclasses) {
+        $args[2] = '0' if $args[2] eq '-0';     # Math::Big* has no -0
         $x = $class->new($args[0]);
         $y = $class->new($args[1]);
-        $args[2] = '0' if $args[2] eq '-0'; # Math::Big(Int|Float) has no -0
+        $z = $x->bdiv($y);
 
-        my $t = $x->copy();
-        my $tmod = $t->copy();
-
-        # bdiv in scalar context
-        my $r = $x->bdiv($y);
-        is($x->bstr(), $args[2], "x $class $args[0] / $args[1]");
-        is($r->bstr(), $args[2], "r $class $args[0] / $args[1]");
+        $test = qq|\$x = $class->new("$args[0]"); |
+              . qq|\$y = $class->new("$args[1]"); |
+              . qq|\$z = \$x->bdiv(\$y);|;
+
+        subtest $test => sub {
+            plan tests => 6;
+
+            is(ref($x), $class, "\$x is a $class");
+            is(ref($y), $class, "\$y is still a $class");
+            is(ref($z), $class, "\$z is a $class");
+            is($x->bstr(), $args[2], 'value of $x');
+            is($y->bstr(), $args[1], 'value of $y');
+            is($z->bstr(), $args[2], 'value of $z');
+        };
     }
 }
 
@@ -378,9 +467,9 @@ foreach (qw/
 # overloaded comparisons
 
 foreach my $c (@biclasses, @bfclasses) {
-    my $x = $c->bnan();
-    my $y = $c->bnan();         # test with two different objects, too
-    my $z = $c->bzero();
+    $x = $c->bnan();
+    $y = $c->bnan();            # test with two different objects, too
+    $z = $c->bzero();
 
     is($x == $y, '', 'NaN == NaN: ""');
     is($x != $y, 1,  'NaN != NaN: 1');
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbf-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbf-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbf-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbf-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,72 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-
-use lib "t";
-
-# First load Math::BigFloat with Math::BigInt::Calc.
-
-use Math::BigFloat lib => "Calc";
-
-is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc",
-   'Math::BigFloat -> config("lib")');
-
-is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc",
-   'ref Math::BigFloat -> bzero() -> {_m}');
-
-# Math::BigInt will know that we loaded Math::BigInt::Calc.
-
-require Math::BigInt;
-
-is(Math::BigInt -> config("lib"), "Math::BigInt::Calc",
-   'Math::BigInt -> config("lib")');
-
-is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc",
-   "ref Math::BigInt -> bzero() -> {value}");
-
-# Now load Math::BigFloat again with a different lib.
-
-Math::BigFloat -> import(lib => "BareCalc");
-
-is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc",
-   'Math::BigFloat -> config("lib")');
-
-is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc",
-   'ref Math::BigFloat -> bzero() -> {_m}');
-
-# See if Math::BigInt knows about Math::BigInt::BareCalc.
-
-is(Math::BigInt -> config("lib"), "Math::BigInt::Calc",
-   "Math::BigInt is using library Math::BigInt::Calc");
-
-is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc",
-   "ref Math::BigInt -> bzero() -> {value}");
-
-# See that Math::BigInt supports "only".
-
-eval { Math::BigInt -> import("only" => "Calc") };
-subtest 'Math::BigInt -> import("only" => "Calc")' => sub {
-    plan tests => 3;
-
-    is($@, "", '$@ is empty');
-    is(Math::BigInt -> config("lib"), "Math::BigInt::Calc",
-       'Math::BigInt -> config("lib")');
-    is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc",
-       "ref Math::BigInt -> bzero() -> {value}");
-};
-
-# See that Math::BigInt supports "try".
-
-eval { Math::BigInt -> import("try" => "BareCalc") };
-subtest 'Math::BigInt -> import("try" => "BareCalc")' => sub {
-    plan tests => 3;
-
-    is($@, "", '$@ is empty');
-    is(Math::BigInt -> config("lib"), "Math::BigInt::Calc",
-       'Math::BigInt -> config("lib")');
-    is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc",
-       "ref Math::BigInt -> bzero() -> {value}");
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbi-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbi-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbi-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/lib_load-mbi-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,72 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-
-use lib "t";
-
-# First load Math::BigInt with Math::BigInt::Calc.
-
-use Math::BigInt lib => "Calc";
-
-is(Math::BigInt -> config("lib"), "Math::BigInt::Calc",
-   'Math::BigInt -> config("lib")');
-
-is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc",
-   'ref Math::BigInt -> bzero() -> {value}');
-
-# Math::BigFloat will know that we loaded Math::BigInt::Calc.
-
-require Math::BigFloat;
-
-is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc",
-   'Math::BigFloat -> config("lib")');
-
-is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc",
-   "ref Math::BigFloat -> bzero() -> {_m}");
-
-# Now load Math::BigInt again with a different lib.
-
-Math::BigInt -> import(lib => "BareCalc");
-
-is(Math::BigInt -> config("lib"), "Math::BigInt::Calc",
-   'Math::BigInt -> config("lib")');
-
-is(ref Math::BigInt -> bzero() -> {value}, "Math::BigInt::Calc",
-   'ref Math::BigInt -> bzero() -> {value}');
-
-# See if Math::BigFloat knows about Math::BigInt::BareCalc.
-
-is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc",
-   "Math::BigFloat is using library Math::BigInt::Calc");
-
-is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc",
-   "ref Math::BigFloat -> bzero() -> {_m}");
-
-# See that Math::BigFloat supports "only".
-
-eval { Math::BigFloat -> import("only" => "Calc") };
-subtest 'Math::BigFloat -> import("only" => "Calc")' => sub {
-    plan tests => 3;
-
-    is($@, "", '$@ is empty');
-    is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc",
-       'Math::BigFloat -> config("lib")');
-    is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc",
-       "ref Math::BigFloat -> bzero() -> {_m}");
-};
-
-# See that Math::BigFloat supports "try".
-
-eval { Math::BigFloat -> import("try" => "BareCalc") };
-subtest 'Math::BigFloat -> import("try" => "BareCalc")' => sub {
-    plan tests => 3;
-
-    is($@, "", '$@ is empty');
-    is(Math::BigFloat -> config("lib"), "Math::BigInt::Calc",
-       'Math::BigFloat -> config("lib")');
-    is(ref Math::BigFloat -> bzero() -> {_m}, "Math::BigInt::Calc",
-       "ref Math::BigFloat -> bzero() -> {_m}");
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc,v
diff -u -p -a -u -p -r1.6 mbimbf.inc
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc	15 Feb 2023 01:36:20 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/mbimbf.inc	21 Feb 2024 15:47:01 -0000
@@ -417,17 +417,15 @@ $x = $mbi->new(123400);
 $x->{_a} = 4;
 is($x->bnot(), -123400, q|$x->bnot()|);         # not -1234001
 
-# both babs() and bneg() don't need to round, since the input will already
-# be rounded (either as $x or via new($string)), and they don't change the
-# value. The two tests below peek at this by using _a (illegally) directly
+# to be consistent with other methods, babs() and bneg() also support rounding
 
 $x = $mbi->new(-123401);
 $x->{_a} = 4;
-is($x->babs(), 123401, q|$x->babs()|);
+is($x->babs(), 123400, q|$x->babs()|);
 
 $x = $mbi->new(-123401);
 $x->{_a} = 4;
-is($x->bneg(), 123401, q|$x->bneg()|);
+is($x->bneg(), 123400, q|$x->bneg()|);
 
 # test bdiv rounding to A and R (bug in v1.48 and maybe earlier versions)
 
@@ -1293,7 +1291,7 @@ while (<DATA>) {
     $try .= qq| \$y->accuracy($ya);|  if $ya ne '';
     $try .= qq| \$y->precision($yp);| if $yp ne '';
 
-    $try .= ' $x->$f($y);';
+    $try .= ' $x->' . $f . '($y);';
 
     # print "trying $try\n";
     $rc = eval $try;
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,303 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 112;
-
-use Scalar::Util qw< refaddr >;
-
-my $class;
-
-BEGIN { $class = 'Math::BigFloat'; }
-BEGIN { use_ok($class, '1.999821'); }
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-    my $x;
-
-    my $test = qq|\$x = $class -> new("$in0");|;
-    my $desc = $test;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $desc, sub {
-        plan tests => 2,
-
-        # Check output.
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x, $out0, 'output arg has the right value');
-    };
-
-}
-
-# new()
-
-{
-    my $x = $class -> new();
-    subtest qq|\$x = $class -> new();|, => sub {
-        plan tests => 2;
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x, "0", 'output arg has the right value');
-    };
-}
-
-# new("")
-
-{
-    no warnings "numeric";
-    my $x = $class -> new("");
-    subtest qq|\$x = $class -> new("");|, => sub {
-        plan tests => 2;
-
-        is(ref($x), $class, "output arg is a $class");
-#        is($x, "0", 'output arg has the right value');
-        is($x, "NaN", 'output arg has the right value');
-    };
-}
-
-# new(undef)
-
-{
-    no warnings "uninitialized";
-    my $x = $class -> new(undef);
-    subtest qq|\$x = $class -> new(undef);|, => sub {
-        plan tests => 2;
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x, "0", 'output arg has the right value');
-    };
-}
-
-# new($x)
-#
-# In this case, when $x isa Math::BigFloat, only the sign and value should be
-# copied from $x, not the accuracy or precision.
-
-SKIP: {
-    skip "This test reveals a bug that has not been fixed yet", 2;
-
-    my ($a, $p, $x, $y);
-
-    $a = $class -> accuracy();          # get original
-    $class -> accuracy(4711);           # set new global value
-    $x = $class -> new("314");          # create object
-    $x -> accuracy(41);                 # set instance value
-    $y = $class -> new($x);             # create new object
-    is($y -> accuracy(), 4711, 'object has the global accuracy');
-    $class -> accuracy($a);             # reset
-
-    $p = $class -> precision();         # get original
-    $class -> precision(4711);          # set new global value
-    $x = $class -> new("314");          # create object
-    $x -> precision(41);                # set instance value
-    $y = $class -> new($x);             # create new object
-    is($y -> precision(), 4711, 'object has the global precision');
-    $class -> precision($p);            # reset
-}
-
-# Make sure that library thingies are indeed copied.
-
-{
-    my ($x, $y);
-
-    $x = $class -> new("314");          # create object
-    $y = $class -> new($x);             # create new object
-    subtest 'library thingy is copied' => sub {
-        my @keys = ('_m', '_e');
-        plan tests => scalar @keys;
-        for my $key (@keys) {
-            isnt(refaddr($y -> {$key}), refaddr($x -> {$key}),
-                 'library thingy is a copy');
-        }
-    };
-}
-
-# Other tests where we must use the scientific notation in the output.
-
-for my $str (qw/
-                   1e+4294967296
-                   1e+18446744073709551616
-                   1e+79228162514264337593543950336
-                   1e+340282366920938463463374607431768211456
-                   1e+1461501637330902918203684832716283019655932542976
-                   1e+6277101735386680763835789423207666416102355444464034512896
-               /)
-{
-    my $x;
-    $x = $class -> new($str);
-    subtest $str, sub {
-        plan tests => 2,
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x -> bnstr(), $str, 'output arg has the right value');
-    }
-}
-
-__END__
-
-NaN:NaN
-inf:inf
-infinity:inf
-+inf:inf
-+infinity:inf
--inf:-inf
--infinity:-inf
-
-# This is the same data as in from_bin-mbf.t, except that some of them are
-# commented out, since new() only treats input as binary if it has a "0b" or
-# "0B" prefix, possibly with a leading "+" or "-" sign. Duplicates from above
-# are also commented out.
-
-0b1p+0:1
-0b.1p+1:1
-0b.01p+2:1
-0b.001p+3:1
-0b.0001p+4:1
-0b10p-1:1
-0b100p-2:1
-0b1000p-3:1
-
--0b1p+0:-1
-
-0b0p+0:0
-0b0p+7:0
-0b0p-7:0
-0b0.p+0:0
-0b.0p+0:0
-0b0.0p+0:0
-
-0b1100101011111110:51966
-0B1100101011111110:51966
-b1100101011111110:51966
-B1100101011111110:51966
-#1100101011111110:51966
-
-0b1.1001p+3:12.5
-0b10010.001101p-1:9.1015625
--0b.11110001001101010111100110111101111p+31:-2023406814.9375
-0b10.0100011010001010110011110001001101p+34:39093746765
-
-0b.p+0:NaN
-
-#NaN:NaN
-#+inf:NaN
-#-inf:NaN
-
-# This is more or less the same data as in from_oct-mbf.t, except that some of
-# them are commented out, since new() does not consider a number with just a
-# leading zero to be an octal number. Duplicates from above are also commented
-# out.
-
-# Without "0o" prefix.
-
-001p+0:1
-00.4p+1:1
-00.2p+2:1
-00.1p+3:1
-00.04p+4:1
-02p-1:1
-04p-2:1
-010p-3:1
-
--01p+0:-1
-
-00p+0:0
-00p+7:0
-00p-7:0
-00.p+0:0
-00.0p+0:0
-
-#145376:51966
-#0145376:51966
-#00145376:51966
-
-03.1p+2:12.5
-022.15p-1:9.1015625
--00.361152746757p+32:-2023406814.9375
-044.3212636115p+30:39093746765
-
-0.p+0:NaN
-.p+0:NaN
-
-# With "0o" prefix.
-
-0o01p+0:1
-0o0.4p+1:1
-0o0.2p+2:1
-0o0.1p+3:1
-0o0.04p+4:1
-0o02p-1:1
-0o04p-2:1
-0o010p-3:1
-
--0o1p+0:-1
-
-0o0p+0:0
-0o0p+7:0
-0o0p-7:0
-0o0.p+0:0
-0o.0p+0:0
-0o0.0p+0:0
-
-0o145376:51966
-0O145376:51966
-o145376:51966
-O145376:51966
-
-0o3.1p+2:12.5
-0o22.15p-1:9.1015625
--0o0.361152746757p+32:-2023406814.9375
-0o44.3212636115p+30:39093746765
-
-0o.p+0:NaN
-
-#NaN:NaN
-#+inf:NaN
-#-inf:NaN
-
-# This is the same data as in from_hex-mbf.t, except that some of them are
-# commented out, since new() only treats input as hexadecimal if it has a "0x"
-# or "0X" prefix, possibly with a leading "+" or "-" sign.
-
-0x1p+0:1
-0x.8p+1:1
-0x.4p+2:1
-0x.2p+3:1
-0x.1p+4:1
-0x2p-1:1
-0x4p-2:1
-0x8p-3:1
-
--0x1p+0:-1
-
-0x0p+0:0
-0x0p+7:0
-0x0p-7:0
-0x0.p+0:0
-0x.0p+0:0
-0x0.0p+0:0
-
-0xcafe:51966
-0Xcafe:51966
-xcafe:51966
-Xcafe:51966
-#cafe:51966
-
-0x1.9p+3:12.5
-0x12.34p-1:9.1015625
--0x.789abcdefp+32:-2023406814.9375
-0x12.3456789ap+31:39093746765
-
-0x.p+0:NaN
-
-#NaN:NaN
-#+inf:NaN
-#-inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/new-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,279 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 106;
-
-use Scalar::Util qw< refaddr >;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my ($in0, $out0) = split /:/;
-    my $x;
-    my $test = qq|\$x = $class -> new("$in0");|;
-    my $desc = $test;
-
-    eval $test;
-    die $@ if $@;       # this should never happen
-
-    subtest $desc, sub {
-        plan tests => 2,
-
-        # Check output.
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x, $out0, 'output arg has the right value');
-    };
-
-}
-
-# new()
-
-{
-    my $x = $class -> new();
-    subtest qq|\$x = $class -> new();|, => sub {
-        plan tests => 2;
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x, "0", 'output arg has the right value');
-    };
-}
-
-# new("")
-
-{
-    no warnings "numeric";
-    my $x = $class -> new("");
-    subtest qq|\$x = $class -> new("");|, => sub {
-        plan tests => 2;
-
-        is(ref($x), $class, "output arg is a $class");
-        #is($x, "0", 'output arg has the right value');
-        is($x, "NaN", 'output arg has the right value');
-    };
-}
-
-# new(undef)
-
-{
-    no warnings "uninitialized";
-    my $x = $class -> new(undef);
-    subtest qq|\$x = $class -> new(undef);|, => sub {
-        plan tests => 2;
-
-        is(ref($x), $class, "output arg is a $class");
-        is($x, "0", 'output arg has the right value');
-    };
-}
-
-# new($x)
-#
-# In this case, when $x isa Math::BigInt, only the sign and value should be
-# copied from $x, not the accuracy or precision.
-
-{
-    my ($a, $p, $x, $y);
-
-    $a = $class -> accuracy();          # get original
-    $class -> accuracy(4711);           # set new global value
-    $x = $class -> new("314");          # create object
-    $x -> accuracy(41);                 # set instance value
-    $y = $class -> new($x);             # create new object
-    is($y -> accuracy(), 4711, 'object has the global accuracy');
-    $class -> accuracy($a);             # reset
-
-    $p = $class -> precision();         # get original
-    $class -> precision(4711);          # set new global value
-    $x = $class -> new("314");          # create object
-    $x -> precision(41);                # set instance value
-    $y = $class -> new($x);             # create new object
-    is($y -> precision(), 4711, 'object has the global precision');
-    $class -> precision($p);            # reset
-}
-
-# Make sure that library thingies are indeed copied.
-
-{
-    my ($x, $y);
-
-    $x = $class -> new("314");          # create object
-    $y = $class -> new($x);             # create new object
-    subtest 'library thingy is copied' => sub {
-        my @keys = ('value');
-        plan tests => scalar @keys;
-        for my $key (@keys) {
-            isnt(refaddr($y -> {$key}), refaddr($x -> {$key}),
-                 'library thingy is a copy');
-        }
-    };
-}
-
-__END__
-
-NaN:NaN
-inf:inf
-infinity:inf
-+inf:inf
-+infinity:inf
--inf:-inf
--infinity:-inf
-
-# This is the same data as in from_bin-mbf.t, except that some of them are
-# commented out, since new() only treats input as binary if it has a "0b" or
-# "0B" prefix, possibly with a leading "+" or "-" sign. Duplicates from above
-# are also commented out.
-
-0b1p+0:1
-0b.1p+1:1
-0b.01p+2:1
-0b.001p+3:1
-0b.0001p+4:1
-0b10p-1:1
-0b100p-2:1
-0b1000p-3:1
-
--0b1p+0:-1
-
-0b0p+0:0
-0b0p+7:0
-0b0p-7:0
-0b0.p+0:0
-0b.0p+0:0
-0b0.0p+0:0
-
-0b1100101011111110:51966
-0B1100101011111110:51966
-b1100101011111110:51966
-B1100101011111110:51966
-#1100101011111110:51966
-
-0b1.1001p+3:NaN
-0b10010.001101p-1:NaN
--0b.11110001001101010111100110111101111p+31:NaN
-0b10.0100011010001010110011110001001101p+34:39093746765
-
-0b.p+0:NaN
-
-#NaN:NaN
-#+inf:NaN
-#-inf:NaN
-
-# This is more or less the same data as in from_oct-mbf.t, except that some of
-# them are commented out, since new() does not consider a number with just a
-# leading zero to be an octal number. Duplicates from above are also commented
-# out.
-
-# Without "0o" prefix.
-
-001p+0:1
-00.4p+1:1
-00.2p+2:1
-00.1p+3:1
-00.04p+4:1
-02p-1:1
-04p-2:1
-010p-3:1
-
--01p+0:-1
-
-00p+0:0
-00p+7:0
-00p-7:0
-00.p+0:0
-00.0p+0:0
-
-#145376:51966
-#0145376:51966
-#00145376:51966
-
-03.1p+2:NaN
-022.15p-1:NaN
--00.361152746757p+32:NaN
-044.3212636115p+30:39093746765
-
-0.p+0:NaN
-.p+0:NaN
-
-# With "0o" prefix.
-
-0o01p+0:1
-0o0.4p+1:1
-0o0.2p+2:1
-0o0.1p+3:1
-0o0.04p+4:1
-0o02p-1:1
-0o04p-2:1
-0o010p-3:1
-
--0o1p+0:-1
-
-0o0p+0:0
-0o0p+7:0
-0o0p-7:0
-0o0.p+0:0
-0o.0p+0:0
-0o0.0p+0:0
-
-0o145376:51966
-0O145376:51966
-o145376:51966
-O145376:51966
-
-0o3.1p+2:NaN
-0o22.15p-1:NaN
--0o0.361152746757p+32:NaN
-0o44.3212636115p+30:39093746765
-
-0o.p+0:NaN
-
-#NaN:NaN
-#+inf:NaN
-#-inf:NaN
-
-# This is the same data as in from_hex-mbf.t, except that some of them are
-# commented out, since new() only treats input as hexadecimal if it has a "0x"
-# or "0X" prefix, possibly with a leading "+" or "-" sign.
-
-0x1p+0:1
-0x.8p+1:1
-0x.4p+2:1
-0x.2p+3:1
-0x.1p+4:1
-0x2p-1:1
-0x4p-2:1
-0x8p-3:1
-
--0x1p+0:-1
-
-0x0p+0:0
-0x0p+7:0
-0x0p-7:0
-0x0.p+0:0
-0x.0p+0:0
-0x0.0p+0:0
-
-0xcafe:51966
-0Xcafe:51966
-xcafe:51966
-Xcafe:51966
-#cafe:51966
-
-0x1.9p+3:NaN
-0x12.34p-1:NaN
--0x.789abcdefp+32:NaN
-0x12.3456789ap+31:39093746765
-
-0x.p+0:NaN
-
-#NaN:NaN
-#+inf:NaN
-#-inf:NaN
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,294 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1840;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $mant_str, $expo_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| (\$m, \$e) = \$x -> nparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my ($mant_got, $expo_got) = $x -> nparts();
-
-        isa_ok($mant_got, "Math::BigFloat");
-        isa_ok($expo_got, "Math::BigFloat");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($expo_got, $expo_str, "value of exponent");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| \$m = \$x -> nparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my $mant_got = $x -> nparts();
-
-        isa_ok($mant_got, "Math::BigFloat");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:inf
--inf:-inf:inf
-
-0:0:0
-
-# positive numbers
-
-0.000000000001:1:-12
-0.00000000001:1:-11
-0.0000000001:1:-10
-0.000000001:1:-9
-0.00000001:1:-8
-0.0000001:1:-7
-0.000001:1:-6
-0.00001:1:-5
-0.0001:1:-4
-0.001:1:-3
-0.01:1:-2
-0.1:1:-1
-1:1:0
-10:1:1
-100:1:2
-1000:1:3
-10000:1:4
-100000:1:5
-1000000:1:6
-10000000:1:7
-100000000:1:8
-1000000000:1:9
-10000000000:1:10
-100000000000:1:11
-1000000000000:1:12
-
-0.0000000000012:1.2:-12
-0.000000000012:1.2:-11
-0.00000000012:1.2:-10
-0.0000000012:1.2:-9
-0.000000012:1.2:-8
-0.00000012:1.2:-7
-0.0000012:1.2:-6
-0.000012:1.2:-5
-0.00012:1.2:-4
-0.0012:1.2:-3
-0.012:1.2:-2
-0.12:1.2:-1
-1.2:1.2:0
-12:1.2:1
-120:1.2:2
-1200:1.2:3
-12000:1.2:4
-120000:1.2:5
-1200000:1.2:6
-12000000:1.2:7
-120000000:1.2:8
-1200000000:1.2:9
-12000000000:1.2:10
-120000000000:1.2:11
-1200000000000:1.2:12
-
-0.00000000000123:1.23:-12
-0.0000000000123:1.23:-11
-0.000000000123:1.23:-10
-0.00000000123:1.23:-9
-0.0000000123:1.23:-8
-0.000000123:1.23:-7
-0.00000123:1.23:-6
-0.0000123:1.23:-5
-0.000123:1.23:-4
-0.00123:1.23:-3
-0.0123:1.23:-2
-0.123:1.23:-1
-1.23:1.23:0
-12.3:1.23:1
-123:1.23:2
-1230:1.23:3
-12300:1.23:4
-123000:1.23:5
-1230000:1.23:6
-12300000:1.23:7
-123000000:1.23:8
-1230000000:1.23:9
-12300000000:1.23:10
-123000000000:1.23:11
-1230000000000:1.23:12
-
-0.000000000001234:1.234:-12
-0.00000000001234:1.234:-11
-0.0000000001234:1.234:-10
-0.000000001234:1.234:-9
-0.00000001234:1.234:-8
-0.0000001234:1.234:-7
-0.000001234:1.234:-6
-0.00001234:1.234:-5
-0.0001234:1.234:-4
-0.001234:1.234:-3
-0.01234:1.234:-2
-0.1234:1.234:-1
-1.234:1.234:0
-12.34:1.234:1
-123.4:1.234:2
-1234:1.234:3
-12340:1.234:4
-123400:1.234:5
-1234000:1.234:6
-12340000:1.234:7
-123400000:1.234:8
-1234000000:1.234:9
-12340000000:1.234:10
-123400000000:1.234:11
-1234000000000:1.234:12
-
-0.000003141592:3.141592:-6
-0.00003141592:3.141592:-5
-0.0003141592:3.141592:-4
-0.003141592:3.141592:-3
-0.03141592:3.141592:-2
-0.3141592:3.141592:-1
-3.141592:3.141592:0
-31.41592:3.141592:1
-314.1592:3.141592:2
-3141.592:3.141592:3
-31415.92:3.141592:4
-314159.2:3.141592:5
-3141592:3.141592:6
-
-# negativ: numbers
-
--0.000000000001:-1:-12
--0.00000000001:-1:-11
--0.0000000001:-1:-10
--0.000000001:-1:-9
--0.00000001:-1:-8
--0.0000001:-1:-7
--0.000001:-1:-6
--0.00001:-1:-5
--0.0001:-1:-4
--0.001:-1:-3
--0.01:-1:-2
--0.1:-1:-1
--1:-1:0
--10:-1:1
--100:-1:2
--1000:-1:3
--10000:-1:4
--100000:-1:5
--1000000:-1:6
--10000000:-1:7
--100000000:-1:8
--1000000000:-1:9
--10000000000:-1:10
--100000000000:-1:11
--1000000000000:-1:12
-
--0.0000000000012:-1.2:-12
--0.000000000012:-1.2:-11
--0.00000000012:-1.2:-10
--0.0000000012:-1.2:-9
--0.000000012:-1.2:-8
--0.00000012:-1.2:-7
--0.0000012:-1.2:-6
--0.000012:-1.2:-5
--0.00012:-1.2:-4
--0.0012:-1.2:-3
--0.012:-1.2:-2
--0.12:-1.2:-1
--1.2:-1.2:0
--12:-1.2:1
--120:-1.2:2
--1200:-1.2:3
--12000:-1.2:4
--120000:-1.2:5
--1200000:-1.2:6
--12000000:-1.2:7
--120000000:-1.2:8
--1200000000:-1.2:9
--12000000000:-1.2:10
--120000000000:-1.2:11
--1200000000000:-1.2:12
-
--0.00000000000123:-1.23:-12
--0.0000000000123:-1.23:-11
--0.000000000123:-1.23:-10
--0.00000000123:-1.23:-9
--0.0000000123:-1.23:-8
--0.000000123:-1.23:-7
--0.00000123:-1.23:-6
--0.0000123:-1.23:-5
--0.000123:-1.23:-4
--0.00123:-1.23:-3
--0.0123:-1.23:-2
--0.123:-1.23:-1
--1.23:-1.23:0
--12.3:-1.23:1
--123:-1.23:2
--1230:-1.23:3
--12300:-1.23:4
--123000:-1.23:5
--1230000:-1.23:6
--12300000:-1.23:7
--123000000:-1.23:8
--1230000000:-1.23:9
--12300000000:-1.23:10
--123000000000:-1.23:11
--1230000000000:-1.23:12
-
--0.000000000001234:-1.234:-12
--0.00000000001234:-1.234:-11
--0.0000000001234:-1.234:-10
--0.000000001234:-1.234:-9
--0.00000001234:-1.234:-8
--0.0000001234:-1.234:-7
--0.000001234:-1.234:-6
--0.00001234:-1.234:-5
--0.0001234:-1.234:-4
--0.001234:-1.234:-3
--0.01234:-1.234:-2
--0.1234:-1.234:-1
--1.234:-1.234:0
--12.34:-1.234:1
--123.4:-1.234:2
--1234:-1.234:3
--12340:-1.234:4
--123400:-1.234:5
--1234000:-1.234:6
--12340000:-1.234:7
--123400000:-1.234:8
--1234000000:-1.234:9
--12340000000:-1.234:10
--123400000000:-1.234:11
--1234000000000:-1.234:12
-
--0.000003141592:-3.141592:-6
--0.00003141592:-3.141592:-5
--0.0003141592:-3.141592:-4
--0.003141592:-3.141592:-3
--0.03141592:-3.141592:-2
--0.3141592:-3.141592:-1
--3.141592:-3.141592:0
--31.41592:-3.141592:1
--314.1592:-3.141592:2
--3141.592:-3.141592:3
--31415.92:-3.141592:4
--314159.2:-3.141592:5
--3141592:-3.141592:6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/nparts-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,162 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 784;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $mant_str, $expo_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| (\$m, \$e) = \$x -> nparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my ($mant_got, $expo_got) = $x -> nparts();
-
-        isa_ok($mant_got, "Math::BigInt");
-        isa_ok($expo_got, "Math::BigInt");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($expo_got, $expo_str, "value of exponent");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| \$m = \$x -> nparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my $mant_got = $x -> nparts();
-
-        isa_ok($mant_got, "Math::BigInt");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:inf
--inf:-inf:inf
-
-0:0:0
-
-# positive numbers
-
-1:1:0
-10:1:1
-100:1:2
-1000:1:3
-10000:1:4
-100000:1:5
-1000000:1:6
-10000000:1:7
-100000000:1:8
-1000000000:1:9
-10000000000:1:10
-100000000000:1:11
-1000000000000:1:12
-
-12:NaN:1
-120:NaN:2
-1200:NaN:3
-12000:NaN:4
-120000:NaN:5
-1200000:NaN:6
-12000000:NaN:7
-120000000:NaN:8
-1200000000:NaN:9
-12000000000:NaN:10
-120000000000:NaN:11
-1200000000000:NaN:12
-
-123:NaN:2
-1230:NaN:3
-12300:NaN:4
-123000:NaN:5
-1230000:NaN:6
-12300000:NaN:7
-123000000:NaN:8
-1230000000:NaN:9
-12300000000:NaN:10
-123000000000:NaN:11
-1230000000000:NaN:12
-
-1234:NaN:3
-12340:NaN:4
-123400:NaN:5
-1234000:NaN:6
-12340000:NaN:7
-123400000:NaN:8
-1234000000:NaN:9
-12340000000:NaN:10
-123400000000:NaN:11
-1234000000000:NaN:12
-
-3141592:NaN:6
-
-# negativ: numbers
-
--1:-1:0
--10:-1:1
--100:-1:2
--1000:-1:3
--10000:-1:4
--100000:-1:5
--1000000:-1:6
--10000000:-1:7
--100000000:-1:8
--1000000000:-1:9
--10000000000:-1:10
--100000000000:-1:11
--1000000000000:-1:12
-
--12:NaN:1
--120:NaN:2
--1200:NaN:3
--12000:NaN:4
--120000:NaN:5
--1200000:NaN:6
--12000000:NaN:7
--120000000:NaN:8
--1200000000:NaN:9
--12000000000:NaN:10
--120000000000:NaN:11
--1200000000000:NaN:12
-
--123:NaN:2
--1230:NaN:3
--12300:NaN:4
--123000:NaN:5
--1230000:NaN:6
--12300000:NaN:7
--123000000:NaN:8
--1230000000:NaN:9
--12300000000:NaN:10
--123000000000:NaN:11
--1230000000000:NaN:12
-
--1234:NaN:3
--12340:NaN:4
--123400:NaN:5
--1234000:NaN:6
--12340000:NaN:7
--123400000:NaN:8
--1234000000:NaN:9
--12340000000:NaN:10
--123400000000:NaN:11
--1234000000000:NaN:12
-
--3141592:NaN:6
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbf.t	15 Feb 2023 01:36:20 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,99 +0,0 @@
-# -*- mode: perl; -*-
-#
-# Verify that objectify() is able to convert a "foreign" object into what we
-# want, when what we want is Math::BigFloat or subclass thereof.
-
-use strict;
-use warnings;
-
-package main;
-
-use Test::More tests => 6;
-
-use Math::BigFloat;
-
-###############################################################################
-
-for my $class ('Math::BigFloat', 'Math::BigFloat::Subclass') {
-
-    # This object defines what we want.
-
-    my $float = $class -> new(10);
-
-    # Create various objects that should work with the object above after
-    # objectify() has done its thing.
-
-    my $float_percent1 = My::Percent::Float1 -> new(100);
-    is($float * $float_percent1, 10,
-       qq|\$float = $class -> new(10);|
-       . q| $float_percent1 = My::Percent::Float1 -> new(100);|
-       . q| $float * $float_percent1;|);
-
-    my $float_percent2 = My::Percent::Float2 -> new(100);
-    is($float * $float_percent2, 10,
-       qq|\$float = $class -> new(10);|
-       . q| $float_percent2 = My::Percent::Float2 -> new(100);|
-       . q| $float * $float_percent2;|);
-
-    my $float_percent3 = My::Percent::Float3 -> new(100);
-    is($float * $float_percent3, 10,
-       qq|\$float = $class -> new(10);|
-       . q| $float_percent3 = My::Percent::Float3 -> new(100);|
-       . q| $float * $float_percent3;|);
-}
-
-###############################################################################
-# Class supports as_float(), which returns a Math::BigFloat.
-
-package My::Percent::Float1;
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_float {
-    my $self = shift;
-    return Math::BigFloat -> new($$self / 100);
-}
-
-###############################################################################
-# Class supports as_float(), which returns a scalar.
-
-package My::Percent::Float2;
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_float {
-    my $self = shift;
-    return $$self / 100;
-}
-
-###############################################################################
-# Class does not support as_float().
-
-package My::Percent::Float3;
-
-use overload '""' => sub { $_[0] -> as_string(); };
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_string {
-    my $self = shift;
-    return $$self / 100;
-}
-
-###############################################################################
-
-package Math::BigFloat::Subclass;
-
-use base 'Math::BigFloat';
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/objectify_mbi.t	15 Feb 2023 01:36:20 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,145 +0,0 @@
-# -*- mode: perl; -*-
-#
-# Verify that objectify() is able to convert a "foreign" object into what we
-# want, when what we want is Math::BigInt or subclass thereof.
-
-use strict;
-use warnings;
-
-package main;
-
-use Test::More tests => 10;
-
-use Math::BigInt;
-
-###############################################################################
-
-for my $class ('Math::BigInt', 'Math::BigInt::Subclass') {
-
-    # This object defines what we want.
-
-    my $int = $class -> new(10);
-
-    # Create various objects that should work with the object above after
-    # objectify() has done its thing.
-
-    my $int_percent1 = My::Percent::Int1 -> new(100);
-    is($int * $int_percent1, 10,
-       qq|\$class -> new(10);|
-       . q| $int_percent1 = My::Percent::Int1 -> new(100);|
-       . q| $int * $int_percent1|);
-
-    my $int_percent2 = My::Percent::Int2 -> new(100);
-    is($int * $int_percent2, 10,
-       qq|\$class -> new(10);|
-       . q| $int_percent2 = My::Percent::Int2 -> new(100);|
-       . q| $int * $int_percent2|);
-
-    my $int_percent3 = My::Percent::Int3 -> new(100);
-    is($int * $int_percent3, 10,
-       qq|\$class -> new(10);|
-       . q| $int_percent3 = My::Percent::Int3 -> new(100);|
-       . q| $int * $int_percent3|);
-
-    my $int_percent4 = My::Percent::Int4 -> new(100);
-    is($int * $int_percent4, 10,
-       qq|\$class -> new(10);|
-       . q| $int_percent4 = My::Percent::Int4 -> new(100);|
-       . q| $int * $int_percent4|);
-
-    my $int_percent5 = My::Percent::Int5 -> new(100);
-    is($int * $int_percent5, 10,
-       qq|\$class -> new(10);|
-       . q| $int_percent5 = My::Percent::Int5 -> new(100);|
-       . q| $int * $int_percent5|);
-}
-
-###############################################################################
-# Class supports as_int(), which returns a Math::BigInt.
-
-package My::Percent::Int1;
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_int {
-    my $self = shift;
-    return Math::BigInt -> new($$self / 100);
-}
-
-###############################################################################
-# Class supports as_int(), which returns a scalar.
-
-package My::Percent::Int2;
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_int {
-    my $self = shift;
-    return $$self / 100;
-}
-
-###############################################################################
-# Class does not support as_int(), but supports as_number(), which returns a
-# Math::BigInt.
-
-package My::Percent::Int3;
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_number {
-    my $self = shift;
-    return Math::BigInt -> new($$self / 100);
-}
-
-###############################################################################
-# Class does  not support as_int(),  but supports as_number(), which  returns a
-# scalar.
-
-package My::Percent::Int4;
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_number {
-    my $self = shift;
-    return $$self / 100;
-}
-
-###############################################################################
-# Class supports neither as_int() or as_number().
-
-package My::Percent::Int5;
-
-use overload '""' => sub { $_[0] -> as_string(); };
-
-sub new {
-    my $class = shift;
-    my $num = shift;
-    return bless \$num, $class;
-}
-
-sub as_string {
-    my $self = shift;
-    return $$self / 100;
-}
-
-###############################################################################
-
-package Math::BigInt::Subclass;
-
-use base 'Math::BigInt';
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,325 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 1848;
-
-use Math::BigFloat;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $mant_str, $expo_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| (\$m, \$e) = \$x -> sparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my ($mant_got, $expo_got) = $x -> sparts();
-
-        isa_ok($mant_got, "Math::BigFloat");
-        isa_ok($expo_got, "Math::BigFloat");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($expo_got, $expo_str, "value of exponent");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigFloat -> new("$x_str");|,
-         qq| \$m = \$x -> sparts();\n\n|);
-
-    {
-        my $x = Math::BigFloat -> new($x_str);
-        my $mant_got = $x -> sparts();
-
-        isa_ok($mant_got, "Math::BigFloat");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-}
-
-# Verify that the accuracy of the significand and the exponent depends on the
-# accuracy of the invocand, if set, not the class.
-
-note(qq|\nVerify that accuracy depends on invocand, not class.\n\n|);
-
-{
-    Math::BigFloat -> accuracy(20);
-    my $x = Math::BigFloat -> new("3"); # accuray is 20
-    $x -> accuracy(10);                 # reduce accuray to 10
-
-    my ($mant, $expo) = $x -> sparts();
-    cmp_ok($mant, '==', 3, "value of significand");
-    cmp_ok($expo, '==', 0, "value of exponent");
-    cmp_ok($mant -> accuracy(), '==', 10, "accuracy of significand");
-    cmp_ok($expo -> accuracy(), '==', 20, "accuracy of exponent");
-}
-
-note(qq|\nVerify that precision depends on invocand, not class.\n\n|);
-
-{
-    Math::BigFloat -> precision(20);
-    my $x = Math::BigFloat -> new("3"); # precision is 20
-    $x -> precision(10);                # reduce precision to 10
-
-    my ($mant, $expo) = $x -> sparts();
-    cmp_ok($mant, '==', 3, "value of significand");
-    cmp_ok($expo, '==', 0, "value of exponent");
-    cmp_ok($mant -> precision(), '==', 10, "precision of significand");
-    cmp_ok($expo -> precision(), '==', 20, "precision of exponent");
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:inf
--inf:-inf:inf
-
-0:0:0
-
-# positive numbers
-
-0.000000000001:1:-12
-0.00000000001:1:-11
-0.0000000001:1:-10
-0.000000001:1:-9
-0.00000001:1:-8
-0.0000001:1:-7
-0.000001:1:-6
-0.00001:1:-5
-0.0001:1:-4
-0.001:1:-3
-0.01:1:-2
-0.1:1:-1
-1:1:0
-10:1:1
-100:1:2
-1000:1:3
-10000:1:4
-100000:1:5
-1000000:1:6
-10000000:1:7
-100000000:1:8
-1000000000:1:9
-10000000000:1:10
-100000000000:1:11
-1000000000000:1:12
-
-0.0000000000012:12:-13
-0.000000000012:12:-12
-0.00000000012:12:-11
-0.0000000012:12:-10
-0.000000012:12:-9
-0.00000012:12:-8
-0.0000012:12:-7
-0.000012:12:-6
-0.00012:12:-5
-0.0012:12:-4
-0.012:12:-3
-0.12:12:-2
-1.2:12:-1
-12:12:0
-120:12:1
-1200:12:2
-12000:12:3
-120000:12:4
-1200000:12:5
-12000000:12:6
-120000000:12:7
-1200000000:12:8
-12000000000:12:9
-120000000000:12:10
-1200000000000:12:11
-
-0.00000000000123:123:-14
-0.0000000000123:123:-13
-0.000000000123:123:-12
-0.00000000123:123:-11
-0.0000000123:123:-10
-0.000000123:123:-9
-0.00000123:123:-8
-0.0000123:123:-7
-0.000123:123:-6
-0.00123:123:-5
-0.0123:123:-4
-0.123:123:-3
-1.23:123:-2
-12.3:123:-1
-123:123:0
-1230:123:1
-12300:123:2
-123000:123:3
-1230000:123:4
-12300000:123:5
-123000000:123:6
-1230000000:123:7
-12300000000:123:8
-123000000000:123:9
-1230000000000:123:10
-
-0.000000000001234:1234:-15
-0.00000000001234:1234:-14
-0.0000000001234:1234:-13
-0.000000001234:1234:-12
-0.00000001234:1234:-11
-0.0000001234:1234:-10
-0.000001234:1234:-9
-0.00001234:1234:-8
-0.0001234:1234:-7
-0.001234:1234:-6
-0.01234:1234:-5
-0.1234:1234:-4
-1.234:1234:-3
-12.34:1234:-2
-123.4:1234:-1
-1234:1234:0
-12340:1234:1
-123400:1234:2
-1234000:1234:3
-12340000:1234:4
-123400000:1234:5
-1234000000:1234:6
-12340000000:1234:7
-123400000000:1234:8
-1234000000000:1234:9
-
-0.000003141592:3141592:-12
-0.00003141592:3141592:-11
-0.0003141592:3141592:-10
-0.003141592:3141592:-9
-0.03141592:3141592:-8
-0.3141592:3141592:-7
-3.141592:3141592:-6
-31.41592:3141592:-5
-314.1592:3141592:-4
-3141.592:3141592:-3
-31415.92:3141592:-2
-314159.2:3141592:-1
-3141592:3141592:0
-
-# negativ: numbers
-
--0.000000000001:-1:-12
--0.00000000001:-1:-11
--0.0000000001:-1:-10
--0.000000001:-1:-9
--0.00000001:-1:-8
--0.0000001:-1:-7
--0.000001:-1:-6
--0.00001:-1:-5
--0.0001:-1:-4
--0.001:-1:-3
--0.01:-1:-2
--0.1:-1:-1
--1:-1:0
--10:-1:1
--100:-1:2
--1000:-1:3
--10000:-1:4
--100000:-1:5
--1000000:-1:6
--10000000:-1:7
--100000000:-1:8
--1000000000:-1:9
--10000000000:-1:10
--100000000000:-1:11
--1000000000000:-1:12
-
--0.0000000000012:-12:-13
--0.000000000012:-12:-12
--0.00000000012:-12:-11
--0.0000000012:-12:-10
--0.000000012:-12:-9
--0.00000012:-12:-8
--0.0000012:-12:-7
--0.000012:-12:-6
--0.00012:-12:-5
--0.0012:-12:-4
--0.012:-12:-3
--0.12:-12:-2
--1.2:-12:-1
--12:-12:0
--120:-12:1
--1200:-12:2
--12000:-12:3
--120000:-12:4
--1200000:-12:5
--12000000:-12:6
--120000000:-12:7
--1200000000:-12:8
--12000000000:-12:9
--120000000000:-12:10
--1200000000000:-12:11
-
--0.00000000000123:-123:-14
--0.0000000000123:-123:-13
--0.000000000123:-123:-12
--0.00000000123:-123:-11
--0.0000000123:-123:-10
--0.000000123:-123:-9
--0.00000123:-123:-8
--0.0000123:-123:-7
--0.000123:-123:-6
--0.00123:-123:-5
--0.0123:-123:-4
--0.123:-123:-3
--1.23:-123:-2
--12.3:-123:-1
--123:-123:0
--1230:-123:1
--12300:-123:2
--123000:-123:3
--1230000:-123:4
--12300000:-123:5
--123000000:-123:6
--1230000000:-123:7
--12300000000:-123:8
--123000000000:-123:9
--1230000000000:-123:10
-
--0.000000000001234:-1234:-15
--0.00000000001234:-1234:-14
--0.0000000001234:-1234:-13
--0.000000001234:-1234:-12
--0.00000001234:-1234:-11
--0.0000001234:-1234:-10
--0.000001234:-1234:-9
--0.00001234:-1234:-8
--0.0001234:-1234:-7
--0.001234:-1234:-6
--0.01234:-1234:-5
--0.1234:-1234:-4
--1.234:-1234:-3
--12.34:-1234:-2
--123.4:-1234:-1
--1234:-1234:0
--12340:-1234:1
--123400:-1234:2
--1234000:-1234:3
--12340000:-1234:4
--123400000:-1234:5
--1234000000:-1234:6
--12340000000:-1234:7
--123400000000:-1234:8
--1234000000000:-1234:9
-
--0.000003141592:-3141592:-12
--0.00003141592:-3141592:-11
--0.0003141592:-3141592:-10
--0.003141592:-3141592:-9
--0.03141592:-3141592:-8
--0.3141592:-3141592:-7
--3.141592:-3141592:-6
--31.41592:-3141592:-5
--314.1592:-3141592:-4
--3141.592:-3141592:-3
--31415.92:-3141592:-2
--314159.2:-3141592:-1
--3141592:-3141592:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/sparts-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,193 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 792;
-
-use Math::BigInt;
-
-while (<DATA>) {
-    s/#.*$//;                   # remove comments
-    s/\s+$//;                   # remove trailing whitespace
-    next unless length;         # skip empty lines
-
-    my ($x_str, $mant_str, $expo_str) = split /:/;
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| (\$m, \$e) = \$x -> sparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my ($mant_got, $expo_got) = $x -> sparts();
-
-        isa_ok($mant_got, "Math::BigInt");
-        isa_ok($expo_got, "Math::BigInt");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($expo_got, $expo_str, "value of exponent");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-    note(qq|\n\$x = Math::BigInt -> new("$x_str");|,
-         qq| \$m = \$x -> sparts();\n\n|);
-
-    {
-        my $x = Math::BigInt -> new($x_str);
-        my $mant_got = $x -> sparts();
-
-        isa_ok($mant_got, "Math::BigInt");
-
-        is($mant_got, $mant_str, "value of mantissa");
-        is($x,        $x_str,    "input is unmodified");
-    }
-
-}
-
-# Verify that the accuracy of the significand and the exponent depends on the
-# accuracy of the invocand, if set, not the class.
-
-note(qq|\nVerify that accuracy depends on invocand, not class.\n\n|);
-
-{
-    Math::BigInt -> accuracy(20);
-    my $x = Math::BigInt -> new("3");   # accuracy is 20
-    $x -> accuracy(10);                 # reduce accuracy to 10
-
-    my ($mant, $expo) = $x -> sparts();
-    cmp_ok($mant, '==', 3, "value of significand");
-    cmp_ok($expo, '==', 0, "value of exponent");
-    cmp_ok($mant -> accuracy(), '==', 10, "accuracy of significand");
-    cmp_ok($expo -> accuracy(), '==', 20, "accuracy of exponent");
-}
-
-note(qq|\nVerify that precision depends on invocand, not class.\n\n|);
-
-{
-    Math::BigInt -> precision(20);
-    my $x = Math::BigInt -> new("3");   # precision is 20
-    $x -> precision(10);                # reduce precision to 10
-
-    my ($mant, $expo) = $x -> sparts();
-    cmp_ok($mant, '==', 3, "value of significand");
-    cmp_ok($expo, '==', 0, "value of exponent");
-    cmp_ok($mant -> precision(), '==', 10, "precision of significand");
-    cmp_ok($expo -> precision(), '==', 20, "precision of exponent");
-}
-
-__DATA__
-
-NaN:NaN:NaN
-
-inf:inf:inf
--inf:-inf:inf
-
-0:0:0
-
-# positive numbers
-
-1:1:0
-10:1:1
-100:1:2
-1000:1:3
-10000:1:4
-100000:1:5
-1000000:1:6
-10000000:1:7
-100000000:1:8
-1000000000:1:9
-10000000000:1:10
-100000000000:1:11
-1000000000000:1:12
-
-12:12:0
-120:12:1
-1200:12:2
-12000:12:3
-120000:12:4
-1200000:12:5
-12000000:12:6
-120000000:12:7
-1200000000:12:8
-12000000000:12:9
-120000000000:12:10
-1200000000000:12:11
-
-123:123:0
-1230:123:1
-12300:123:2
-123000:123:3
-1230000:123:4
-12300000:123:5
-123000000:123:6
-1230000000:123:7
-12300000000:123:8
-123000000000:123:9
-1230000000000:123:10
-
-1234:1234:0
-12340:1234:1
-123400:1234:2
-1234000:1234:3
-12340000:1234:4
-123400000:1234:5
-1234000000:1234:6
-12340000000:1234:7
-123400000000:1234:8
-1234000000000:1234:9
-
-3141592:3141592:0
-
-# negativ: numbers
-
--1:-1:0
--10:-1:1
--100:-1:2
--1000:-1:3
--10000:-1:4
--100000:-1:5
--1000000:-1:6
--10000000:-1:7
--100000000:-1:8
--1000000000:-1:9
--10000000000:-1:10
--100000000000:-1:11
--1000000000000:-1:12
-
--12:-12:0
--120:-12:1
--1200:-12:2
--12000:-12:3
--120000:-12:4
--1200000:-12:5
--12000000:-12:6
--120000000:-12:7
--1200000000:-12:8
--12000000000:-12:9
--120000000000:-12:10
--1200000000000:-12:11
-
--123:-123:0
--1230:-123:1
--12300:-123:2
--123000:-123:3
--1230000:-123:4
--12300000:-123:5
--123000000:-123:6
--1230000000:-123:7
--12300000000:-123:8
--123000000000:-123:9
--1230000000000:-123:10
-
--1234:-1234:0
--12340:-1234:1
--123400:-1234:2
--1234000:-1234:3
--12340000:-1234:4
--123400000:-1234:5
--1234000000:-1234:6
--12340000000:-1234:7
--123400000000:-1234:8
--1234000000000:-1234:9
-
--3141592:-3141592:0
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t,v
diff -u -p -a -u -p -r1.7 sub_mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbf.t	21 Feb 2024 15:47:01 -0000
@@ -25,7 +25,7 @@ is($ms->{_custom}, 1, '$ms has custom at
 # Check that subclass is a Math::BigFloat, but not a Math::Bigint
 isa_ok($ms, 'Math::BigFloat');
 ok(!$ms->isa('Math::BigInt'),
-   "An object of class '" . ref($ms) . "' isn't a 'Math::BigFloat'");
+   "An object of class '" . ref($ms) . "' isn't a 'Math::BigInt'");
 
 use Math::BigFloat;
 
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t,v
diff -u -p -a -u -p -r1.7 sub_mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/sub_mbi.t	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 4280            # tests in require'd file
+use Test::More tests => 4278            # tests in require'd file
                          + 7;           # tests in this file
 
 use lib 't';
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,100 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 30;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-while (<DATA>) {
-    s/#.*$//;           # remove comments
-    s/\s+$//;           # remove trailing whitespace
-    next unless length; # skip empty lines
-
-    my @in = split /:/;
-    my $out = pop @in;
-
-    my ($x, $xo, $y);
-    my $test = qq|\$x = $class -> new("$in[0]");|;
-    $test .= qq| \$xo = \$x -> copy();|;
-    $test .= qq| \$y = \$x -> to_base($in[1]|;
-    $test .= qq|, "$in[2]"| if @in == 3;
-    $test .= qq|);|;
-
-    eval $test;
-    #die $@ if $@;       # this should never happen
-    die "\nThe following test died when eval()'ed. This indicates a ",
-      "broken test\n\n    $test\n\nThe error message was\n\n    $@\n"
-      if $@;
-
-    subtest $test, sub {
-        plan tests => 2,
-
-        is($x, $xo, "invocand object was not changed");
-        is($y, $out, 'output arg has the right value');
-    };
-}
-
-__END__
-
-# Base 2
-
-0:2:0
-1:2:1
-2:2:10
-0:2:ab:a
-1:2:ab:b
-2:2:ab:ba
-
-250:2:11111010
-250:2:01:11111010
-
-# Base 8
-
-250:8:372
-250:8:01234567:372
-
-# Base 10 (in the last case, use a truncted collation sequence that does not
-# include unused characters)
-
-250:10:250
-250:10:0123456789:250
-250:10:012345:250
-
-# Base 16
-
-250:16:FA
-250:16:0123456789abcdef:fa
-250:16:0123456789abcdef:fa
-
-# Base 3
-
-250:3:100021
-250:3:012:100021
-
-15:3:-/|:/|-
-
-# Base 4
-
-250:4:3322
-250:4:0123:3322
-
-# Base 5
-
-250:5:2000
-250:5:01234:2000
-250:5:abcde:caaa
-
-# Other bases
-
-250:36:6Y
-
-250:37:6S
-
-16:3:121
-44027:36:XYZ
-125734:62:Why
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base_num-mbi.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base_num-mbi.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base_num-mbi.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/to_base_num-mbi.t	15 Feb 2023 01:32:40 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,63 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 14;
-
-my $class;
-
-BEGIN { $class = 'Math::BigInt'; }
-BEGIN { use_ok($class); }
-
-# For simplicity, we use the same data in the test programs for to_base_num() and
-# from_base_num().
-
-my @data =
-  (
-   [ 0, 2, [ 0 ] ],
-   [ 1, 2, [ 1 ] ],
-   [ 2, 2, [ 1, 0 ] ],
-   [ 3, 2, [ 1, 1, ] ],
-   [ 4, 2, [ 1, 0, 0 ] ],
-
-   [ 0, 10, [ 0 ] ],
-   [ 1, 10, [ 1 ] ],
-   [ 12, 10, [ 1, 2 ] ],
-   [ 123, 10, [ 1, 2, 3 ] ],
-   [ 1230, 10, [ 1, 2, 3, 0 ] ],
-
-   [ "123456789", 100, [ 1, 23, 45, 67, 89 ] ],
-
-   [ "1234567890" x 3,
-     "987654321",
-     [ "128", "142745769", "763888804", "574845669" ]],
-
-   [ "1234567890" x 5,
-     "987654321" x 3,
-     [ "12499999874843750102814", "447551941015330718793208596" ]],
-  );
-
-for (my $i = 0 ; $i <= $#data ; ++ $i) {
-    my @in = ($data[$i][0], $data[$i][1]);
-    my $out = $data[$i][2];
-
-    my ($x, $xo, $y);
-    my $test = qq|\$x = $class -> new("$in[0]");|;
-    $test .= qq| \$xo = \$x -> copy();|;
-    $test .= qq| \$y = \$x -> to_base_num("$in[1]")|;
-
-    eval $test;
-    die "\nThe following test died when eval()'ed. This indicates a ",
-      "broken test\n\n    $test\n\nThe error message was\n\n    $@\n"
-      if $@;
-
-    subtest $test, sub {
-        plan tests => 4,
-
-        is($x, $xo, "invocand object was not changed");
-        is(ref($y), 'ARRAY', "output arg is an ARRAY ref");
-        ok(! grep(ref() ne $class, @$y), "every array element is a $class");
-        is_deeply($y, $out, 'every array element has the right value');
-    };
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/to_ieee754-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-BigInt/t/to_ieee754-mbf.t
diff -N gnu/usr.bin/perl/cpan/Math-BigInt/t/to_ieee754-mbf.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/to_ieee754-mbf.t	15 Feb 2023 01:32:40 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,303 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 66;
-
-use Math::BigFloat;
-
-my @k = (16, 32, 64, 128);
-
-sub stringify {
-    my $x = shift;
-    return "$x" unless $x -> is_finite();
-    my $nstr = $x -> bnstr();
-    my $sstr = $x -> bsstr();
-    return length($nstr) < length($sstr) ? $nstr : $sstr;
-}
-
-for my $k (@k) {
-
-    # Parameters specific to this format:
-
-    my $b = 2;
-    my $p = $k == 16 ? 11
-          : $k == 32 ? 24
-          : $k == 64 ? 53
-          : $k - sprintf("%.0f", 4 * log($k)/log(2)) + 13;
-
-    $b = Math::BigFloat -> new($b);
-    $k = Math::BigFloat -> new($k);
-    $p = Math::BigFloat -> new($p);
-    my $w = $k - $p;
-
-    my $emax = 2 ** ($w - 1) - 1;
-    my $emin = 1 - $emax;
-
-    my $format = 'binary' . $k;
-
-    note("\nComputing test data for k = $k ...\n\n");
-
-    my $binv = Math::BigFloat -> new("0.5");
-
-    my $data =
-      [
-
-       {
-        dsc => "smallest positive subnormal number",
-        bin => "0"
-             . ("0" x $w)
-             . ("0" x ($p - 2)) . "1",
-        asc => "$b ** ($emin) * $b ** (" . (1 - $p) . ") "
-             . "= $b ** (" . ($emin + 1 - $p) . ")",
-        mbf => $binv ** ($p - 1 - $emin),
-       },
-
-       {
-        dsc => "largest subnormal number",
-        bin => "0"
-             . ("0" x $w)
-             . ("1" x ($p - 1)),
-        asc => "$b ** ($emin) * (1 - $b ** (" . (1 - $p) . "))",
-        mbf => $binv ** (-$emin) * (1 - $binv ** ($p - 1)),
-       },
-
-       {
-        dsc => "smallest positive normal number",
-        bin => "0"
-             . ("0" x ($w - 1)) . "1"
-             . ("0" x ($p - 1)),
-        asc => "$b ** ($emin)",
-        mbf => $binv ** (-$emin),
-       },
-
-       {
-        dsc => "largest normal number",
-        bin => "0"
-             . ("1" x ($w - 1)) . "0"
-             . "1" x ($p - 1),
-        asc => "$b ** $emax * ($b - $b ** (" . (1 - $p) . "))",
-        mbf => $b ** $emax * ($b - $binv ** ($p - 1)),
-       },
-
-       {
-        dsc => "largest number less than one",
-        bin => "0"
-             . "0" . ("1" x ($w - 2)) . "0"
-             . "1" x ($p - 1),
-        asc => "1 - $b ** (-$p)",
-        mbf => 1 - $binv ** $p,
-       },
-
-       {
-        dsc => "smallest number larger than one",
-        bin => "0"
-             . "0" . ("1" x ($w - 1))
-             . ("0" x ($p - 2)) . "1",
-        asc => "1 + $b ** (" . (1 - $p) . ")",
-        mbf => 1 + $binv ** ($p - 1),
-       },
-
-       {
-        dsc => "second smallest number larger than one",
-        bin => "0"
-             . "0" . ("1" x ($w - 1))
-             . ("0" x ($p - 3)) . "10",
-        asc => "1 + $b ** (" . (2 - $p) . ")",
-        mbf => 1 + $binv ** ($p - 2),
-       },
-
-       {
-        dsc => "one",
-        bin => "0"
-             . "0" . ("1" x ($w - 1))
-             . "0" x ($p - 1),
-        asc => "1",
-        mbf => Math::BigFloat -> new("1"),
-       },
-
-       {
-        dsc => "minus one",
-        bin => "1"
-             . "0" . ("1" x ($w - 1))
-             . "0" x ($p - 1),
-        asc => "-1",
-        mbf => Math::BigFloat -> new("-1"),
-       },
-
-       {
-        dsc => "two",
-        bin => "0"
-             . "1" . ("0" x ($w - 1))
-             . ("0" x ($p - 1)),
-        asc => "2",
-        mbf => Math::BigFloat -> new("2"),
-       },
-
-       {
-        dsc => "minus two",
-        bin => "1"
-             . "1" . ("0" x ($w - 1))
-             . ("0" x ($p - 1)),
-        asc => "-2",
-        mbf => Math::BigFloat -> new("-2"),
-       },
-
-       {
-        dsc => "positive zero",
-        bin => "0"
-             . ("0" x $w)
-             . ("0" x ($p - 1)),
-        asc => "+0",
-        mbf => Math::BigFloat -> new("0"),
-       },
-
-       {
-        dsc => "positive infinity",
-        bin => "0"
-             . ("1" x $w)
-             . ("0" x ($p - 1)),
-        asc => "+inf",
-        mbf => Math::BigFloat -> new("inf"),
-       },
-
-       {
-        dsc => "negative infinity",
-        bin =>  "1"
-             . ("1" x $w)
-             . ("0" x ($p - 1)),
-        asc => "-inf",
-        mbf => Math::BigFloat -> new("-inf"),
-       },
-
-       {
-        dsc => "NaN (encoding used by Perl on Cygwin)",
-        bin => "1"
-             . ("1" x $w)
-             . ("1" . ("0" x ($p - 2))),
-        asc => "NaN",
-        mbf => Math::BigFloat -> new("NaN"),
-       },
-
-      ];
-
-    for my $entry (@$data) {
-        my $bin   = $entry -> {bin};
-        my $bytes = pack "B*", $bin;
-        my $hex   = unpack "H*", $bytes;
-
-        note("\n", $entry -> {dsc}, " (k = $k): ", $entry -> {asc}, "\n\n");
-
-        my $x = $entry -> {mbf};
-
-        my $test = qq|Math::BigFloat -> new("| . stringify($x)
-                 . qq|") -> to_ieee754("$format")|;
-
-        my $got_bytes = $x -> to_ieee754($format);
-        my $got_hex = unpack "H*", $got_bytes;
-        $got_hex =~ s/(..)/\\x$1/g;
-
-        my $expected_hex = $hex;
-        $expected_hex =~ s/(..)/\\x$1/g;
-
-        is($got_hex, $expected_hex);
-    }
-}
-
-# These tests verify fixing CPAN RT #139960.
-
-# binary16
-
-{
-    # largest subnormal number
-    my $lo = Math::BigFloat -> from_ieee754("03ff", "binary16");
-
-    # smallest normal number
-    my $hi = Math::BigFloat -> from_ieee754("0400", "binary16");
-
-    # compute an average weighted towards the larger of the two
-    my $x = 0.25 * $lo + 0.75 * $hi;
-
-    my $got = unpack "H*", $x -> to_ieee754("binary16");
-    is($got, "0400",
-       "6.102025508880615234375e-5 -> 0x0400");
-}
-
-{
-    # largest number smaller than one
-    my $lo = Math::BigFloat -> from_ieee754("3bff", "binary16");
-
-    # one
-    my $hi = Math::BigFloat -> from_ieee754("3c00", "binary16");
-
-    # compute an average weighted towards the larger of the two
-    my $x = 0.25 * $lo + 0.75 * $hi;
-
-    my $got = unpack "H*", $x -> to_ieee754("binary16");
-    is($got, "3c00", "9.998779296875e-1 -> 0x3c00");
-}
-
-# binary32
-
-{
-    # largest subnormal number
-    my $lo = Math::BigFloat -> from_ieee754("007fffff", "binary32");
-
-    # smallest normal number
-    my $hi = Math::BigFloat -> from_ieee754("00800000", "binary32");
-
-    # compute an average weighted towards the larger of the two
-    my $x = 0.25 * $lo + 0.75 * $hi;
-
-    my $got = unpack "H*", $x -> to_ieee754("binary32");
-    is($got, "00800000",
-       "1.1754943157898258998483097641290060955707622747...e-38 -> 0x00800000");
-}
-
-{
-    # largest number smaller than one
-    my $lo = Math::BigFloat -> from_ieee754("3f7fffff", "binary32");
-
-    # one
-    my $hi = Math::BigFloat -> from_ieee754("3f800000", "binary32");
-
-    # compute an average weighted towards the larger of the two
-    my $x = 0.25 * $lo + 0.75 * $hi;
-
-    my $got = unpack "H*", $x -> to_ieee754("binary32");
-    is($got, "3f800000",
-       "9.9999998509883880615234375e-1 -> 0x3f800000");
-}
-
-# binary64
-
-{
-    # largest subnormal number
-    my $lo = Math::BigFloat -> from_ieee754("000fffffffffffff", "binary64");
-
-    # smallest normal number
-    my $hi = Math::BigFloat -> from_ieee754("0010000000000000", "binary64");
-
-    # compute an average weighted towards the larger of the two
-    my $x = 0.25 * $lo + 0.75 * $hi;
-
-    my $got = unpack "H*", $x -> to_ieee754("binary64");
-    is($got, "0010000000000000",
-       "2.2250738585072012595738212570207680200...e-308 -> 0x0010000000000000");
-}
-
-{
-    # largest number smaller than one
-    my $lo = Math::BigFloat -> from_ieee754("3fefffffffffffff", "binary64");
-
-    # one
-    my $hi = Math::BigFloat -> from_ieee754("3ff0000000000000", "binary64");
-
-    # compute an average weighted towards the larger of the two
-    my $x = 0.25 * $lo + 0.75 * $hi;
-
-    my $got = unpack "H*", $x -> to_ieee754("binary64");
-    is($got, "3ff0000000000000",
-       "9.999999999999999722444243843710864894092...e-1 -> 0x3ff0000000000000");
-}
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc,v
diff -u -p -a -u -p -r1.7 upgrade.inc
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.inc	21 Feb 2024 15:47:01 -0000
@@ -25,7 +25,7 @@ our ($CLASS, $LIB, $EXPECTED_CLASS);
 package Math::Foo;
 
 use Math::BigInt lib => $main::LIB;
-our @ISA = (qw/Math::BigInt/);
+our @ISA = ('Math::BigInt');
 
 use overload
   # customized overload for sub, since original does not use swap there
@@ -573,7 +573,7 @@ boneNaN:+:1
 &binf
 1:+:inf
 2:-:-inf
-3:abc:inf
+3:+inf:inf
 
 &is_nan
 123:0
@@ -620,14 +620,14 @@ abc:abc:NaN
 -1234:0:10:-1234
 +1234:0:10:1234
 +200:2:10:2
-+1234:3:10:1
-+1234:2:10:12
++1234:3:10:1.234
++1234:2:10:12.34
 +1234:-3:10:NaN
 310000:4:10:31
 12300000:5:10:123
 1230000000000:10:10:123
-09876123456789067890:12:10:9876123
-1234561234567890123:13:10:123456
+09876123456789067890:12:10:9876123.45678906789
+1234561234567890123:13:10:123456.1234567890123
 
 &bsstr
 1e+34:1e+34
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t,v
diff -u -p -a -u -p -r1.7 upgrade.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t	15 Feb 2023 01:36:20 -0000	1.7
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade.t	21 Feb 2024 15:47:01 -0000
@@ -33,8 +33,8 @@ $EXPECTED_CLASS = "Math::BigFloat";
 $LIB            = "Math::BigInt::Calc";         # backend
 
 is(Math::BigInt->upgrade(), "Math::BigFloat",
-   qq/Math::BigInt->upgrade()/);
-is(Math::BigInt->downgrade() || "", "",
-   qq/Math::BigInt->downgrade() || ""/);
+   "Math::BigInt->upgrade()");
+is(Math::BigInt->downgrade(), undef,
+   "Math::BigInt->downgrade()");
 
 require './t/upgrade.inc';      # all tests here for sharing
Index: gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade2.t,v
diff -u -p -a -u -p -r1.2 upgrade2.t
--- gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade2.t	15 Feb 2023 01:36:20 -0000	1.2
+++ gnu/usr.bin/perl/cpan/Math-BigInt/t/upgrade2.t	21 Feb 2024 15:47:01 -0000
@@ -12,6 +12,7 @@ use Math::BigFloat upgrade => 'Math::Big
 
 no warnings 'once';
 @Math::BigMouse::ISA = 'Math::BigFloat';
+sub Math::BigMouse::bsqrt {};
 
 () = sqrt Math::BigInt->new(2);
 pass('sqrt on a big int does not segv if there are 2 upgrade levels');
Index: gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm,v
diff -u -p -a -u -p -r1.5 FastCalc.pm
--- gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm	15 Feb 2023 01:36:20 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/lib/Math/BigInt/FastCalc.pm	21 Feb 2024 15:47:01 -0000
@@ -12,7 +12,7 @@ BEGIN {
     our @ISA = qw< Math::BigInt::Calc >;
 }
 
-our $VERSION = '0.5012';
+our $VERSION = '0.5013';
 
 my $MAX_EXP_F;      # the maximum possible base 10 exponent with "no integer"
 my $MAX_EXP_I;      # the maximum possible base 10 exponent with "use integer"
Index: gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/biglog.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/biglog.t,v
diff -u -p -a -u -p -r1.1.1.3 biglog.t
--- gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/biglog.t	15 Feb 2023 01:32:38 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/Math-BigInt-FastCalc/t/biglog.t	21 Feb 2024 15:47:01 -0000
@@ -36,7 +36,6 @@ is($class->new(2)->bexp(), '7',  "$class
 is($class->new(3)->bexp(), '20', "$class->new(3)->bexp()");
 
 ###############################################################################
-###############################################################################
 # Math::BigFloat tests
 
 ###############################################################################
@@ -146,7 +145,7 @@ is($class->new("10")->bpow("0.6", 10), "
    qq|$class->new("10")->bpow("0.6", 10)|);
 
 # blog should handle bigint input
-is(Math::BigFloat::blog(Math::BigInt->new(100), 10), 2, "blog(100)");
+is(Math::BigFloat->blog(Math::BigInt->new(100), 10), 2, "blog(100)");
 
 ###############################################################################
 # some integer results
@@ -190,9 +189,9 @@ test_bpow('9.86902225', '0.5', undef, '3
 
 test_bpow('0.2', '0.41', 10, '0.5169187652');
 
-is($class->new("0.01")->bpow("28.4", 40)->bsstr(),
-   '1584893192461113485202101373391507013269e-96',
-   qq|$class->new("0.01")->bpow("28.4", 40)->bsstr()|);
+is($class->new("0.1")->bpow("28.4", 40)->bsstr(),
+   '3981071705534972507702523050877520434877e-68',
+   qq|$class->new("0.1")->bpow("28.4", 40)->bsstr()|);
 
 # The following test takes too long.
 #is($class->new("2")->bpow("-1034.5", 40)->bsstr(),
@@ -230,8 +229,6 @@ is($class->new("-394.84010945715266885")
    qq|$class->new("-118.5")->bexp(20)->bsstr()|);
 
 # all done
-
-1;
 
 ###############################################################################
 
Index: gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm,v
diff -u -p -a -u -p -r1.6 BigRat.pm
--- gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm	15 Feb 2023 01:36:20 -0000	1.6
+++ gnu/usr.bin/perl/cpan/Math-BigRat/lib/Math/BigRat.pm	21 Feb 2024 15:47:01 -0000
@@ -21,7 +21,7 @@ use Scalar::Util qw< blessed >;
 
 use Math::BigFloat ();
 
-our $VERSION = '0.2621';
+our $VERSION = '0.2624';
 
 our @ISA = qw(Math::BigFloat);
 
@@ -200,12 +200,6 @@ use overload
 BEGIN {
     *objectify = \&Math::BigInt::objectify;  # inherit this from BigInt
     *AUTOLOAD  = \&Math::BigFloat::AUTOLOAD; # can't inherit AUTOLOAD
-    # We inherit these from BigFloat because currently it is not possible that
-    # Math::BigFloat has a different $LIB variable than we, because
-    # Math::BigFloat also uses Math::BigInt::config->('lib') (there is always
-    # only one library loaded)
-    *_e_add = \&Math::BigFloat::_e_add;
-    *_e_sub = \&Math::BigFloat::_e_sub;
     *as_number = \&as_int;
     *is_pos = \&is_positive;
     *is_neg = \&is_negative;
@@ -307,7 +301,8 @@ sub new {
     unless (defined $d) {
         #return $n -> copy($n)               if $n -> isa('Math::BigRat');
         if ($n -> isa('Math::BigRat')) {
-            return $downgrade -> new($n) if defined($downgrade) && $n -> is_int();
+            return $downgrade -> new($n)
+              if defined($downgrade) && $n -> is_int();
             return $class -> copy($n);
         }
 
@@ -320,7 +315,8 @@ sub new {
         }
 
         if ($n -> isa('Math::BigInt')) {
-            $self -> {_n}   = $LIB -> _new($n -> copy() -> babs() -> bstr());
+            $self -> {_n}   = $LIB -> _new($n -> copy() -> babs(undef, undef)
+                                              -> bstr());
             $self -> {_d}   = $LIB -> _one();
             $self -> {sign} = $n -> sign();
             return $downgrade -> new($n) if defined $downgrade;
@@ -328,8 +324,8 @@ sub new {
         }
 
         if ($n -> isa('Math::BigFloat')) {
-            my $m = $n -> mantissa() -> babs();
-            my $e = $n -> exponent();
+            my $m = $n -> mantissa(undef, undef) -> babs(undef, undef);
+            my $e = $n -> exponent(undef, undef);
             $self -> {_n} = $LIB -> _new($m -> bstr());
             $self -> {_d} = $LIB -> _one();
 
@@ -340,7 +336,8 @@ sub new {
                 $self -> {_d} = $LIB -> _lsft($self -> {_d},
                                               $LIB -> _new(-$e -> bstr()), 10);
 
-                my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}), $self -> {_d});
+                my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}),
+                                       $self -> {_d});
                 if (!$LIB -> _is_one($gcd)) {
                     $self -> {_n} = $LIB -> _div($self->{_n}, $gcd);
                     $self -> {_d} = $LIB -> _div($self->{_d}, $gcd);
@@ -348,7 +345,8 @@ sub new {
             }
 
             $self -> {sign} = $n -> sign();
-            return $downgrade -> new($n) if defined($downgrade) && $n -> is_int();
+            return $downgrade -> new($n, undef, undef)
+              if defined($downgrade) && $n -> is_int();
             return $self;
         }
 
@@ -677,36 +675,86 @@ sub config {
     $cfg;
 }
 
-##############################################################################
+###############################################################################
+# String conversion methods
+###############################################################################
 
 sub bstr {
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    if ($x->{sign} !~ /^[+-]$/) {               # inf, NaN etc
-        my $s = $x->{sign};
-        $s =~ s/^\+//;                          # +inf => inf
-        return $s;
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+        return 'inf';                                  # +inf
     }
 
+    # Upgrade?
+
+    return $upgrade -> bstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
     my $s = '';
     $s = $x->{sign} if $x->{sign} ne '+';       # '+3/2' => '3/2'
 
-    return $s . $LIB->_str($x->{_n}) if $LIB->_is_one($x->{_d});
-    $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+    my $str = $x->{sign} eq '-' ? '-' : '';
+    $str .= $LIB->_str($x->{_n});
+    $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d});
+    return $str;
 }
 
 sub bsstr {
-    my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
 
-    if ($x->{sign} !~ /^[+-]$/) {               # inf, NaN etc
-        my $s = $x->{sign};
-        $s =~ s/^\+//;                          # +inf => inf
-        return $s;
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
     }
 
-    my $s = '';
-    $s = $x->{sign} if $x->{sign} ne '+';       # +3 vs 3
-    $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+    # Upgrade?
+
+    return $upgrade -> bsstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    my $str = $x->{sign} eq '-' ? '-' : '';
+    $str .= $LIB->_str($x->{_n});
+    $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d});
+    return $str;
+}
+
+sub bfstr {
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+    carp "Rounding is not supported for ", (caller(0))[3], "()" if @r;
+
+    # Inf and NaN
+
+    if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+        return $x->{sign} unless $x->{sign} eq '+inf';  # -inf, NaN
+        return 'inf';                                   # +inf
+    }
+
+    # Upgrade?
+
+    return $upgrade -> bfstr($x, @r)
+      if defined($upgrade) && !$x -> isa($class);
+
+    # Finite number
+
+    my $str = $x->{sign} eq '-' ? '-' : '';
+    $str .= $LIB->_str($x->{_n});
+    $str .= '/' . $LIB->_str($x->{_d}) unless $LIB -> _is_one($x->{_d});
+    return $str;
 }
 
 sub bnorm {
@@ -737,7 +785,7 @@ sub bnorm {
 
     # n/1
     if ($LIB->_is_one($x->{_d})) {
-        return $downgrade -> new($LIB -> _str($x->{_d})) if defined($downgrade);
+        return $downgrade -> new($x) if defined($downgrade);
         return $x;               # no need to reduce
     }
 
@@ -765,61 +813,12 @@ sub bneg {
     $x->{sign} =~ tr/+-/-+/
       unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_n}));
 
-    return $downgrade -> new($LIB -> _str($x->{_n}))
+    return $downgrade -> new($x)
       if defined($downgrade) && $LIB -> _is_one($x->{_d});
     $x;
 }
 
 ##############################################################################
-# special values
-
-sub _bnan {
-    # used by parent class bnan() to initialize number to NaN
-    my $self = shift;
-
-    if ($_trap_nan) {
-        my $class = ref($self);
-        # "$self" below will stringify the object, this blows up if $self is a
-        # partial object (happens under trap_nan), so fix it beforehand
-        $self->{_d} = $LIB->_zero() unless defined $self->{_d};
-        $self->{_n} = $LIB->_zero() unless defined $self->{_n};
-        croak ("Tried to set $self to NaN in $class\::_bnan()");
-    }
-    $self->{_n} = $LIB->_zero();
-    $self->{_d} = $LIB->_zero();
-}
-
-sub _binf {
-    # used by parent class bone() to initialize number to +inf/-inf
-    my $self = shift;
-
-    if ($_trap_inf) {
-        my $class = ref($self);
-        # "$self" below will stringify the object, this blows up if $self is a
-        # partial object (happens under trap_nan), so fix it beforehand
-        $self->{_d} = $LIB->_zero() unless defined $self->{_d};
-        $self->{_n} = $LIB->_zero() unless defined $self->{_n};
-        croak ("Tried to set $self to inf in $class\::_binf()");
-    }
-    $self->{_n} = $LIB->_zero();
-    $self->{_d} = $LIB->_zero();
-}
-
-sub _bone {
-    # used by parent class bone() to initialize number to +1/-1
-    my $self = shift;
-    $self->{_n} = $LIB->_one();
-    $self->{_d} = $LIB->_one();
-}
-
-sub _bzero {
-    # used by parent class bzero() to initialize number to 0
-    my $self = shift;
-    $self->{_n} = $LIB->_zero();
-    $self->{_d} = $LIB->_one();
-}
-
-##############################################################################
 # mul/add/div etc
 
 sub badd {
@@ -866,7 +865,7 @@ sub badd {
     my $m = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
 
     # 5 * 3 + 7 * 4
-    ($x->{_n}, $x->{sign}) = _e_add($x->{_n}, $m, $x->{sign}, $y->{sign});
+    ($x->{_n}, $x->{sign}) = $LIB -> _sadd($x->{_n}, $x->{sign}, $m, $y->{sign});
 
     # 4 * 3
     $x->{_d} = $LIB->_mul($x->{_d}, $y->{_d});
@@ -887,10 +886,10 @@ sub bsub {
 
     # flip sign of $x, call badd(), then flip sign of result
     $x->{sign} =~ tr/+-/-+/
-      unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
-    $x->badd($y, @r);           # does norm and round
+      unless $x->{sign} eq '+' && $x -> is_zero();      # not -0
+    $x = $x->badd($y, @r);           # does norm and round
     $x->{sign} =~ tr/+-/-+/
-      unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
+      unless $x->{sign} eq '+' && $x -> is_zero();      # not -0
 
     $x->bnorm();
 }
@@ -919,10 +918,13 @@ sub bmul {
     }
 
     # x == 0  # also: or y == 1 or y == -1
-    return wantarray ? ($x, $class->bzero()) : $x if $x -> is_zero();
+    if ($x -> is_zero()) {
+        $x = $downgrade -> bzero($x) if defined $downgrade;
+        return wantarray ? ($x, $class->bzero()) : $x;
+    }
 
     if ($y -> is_zero()) {
-        $x -> bzero();
+        $x = defined($downgrade) ? $downgrade -> bzero($x) : $x -> bzero();
         return wantarray ? ($x, $class->bzero()) : $x;
     }
 
@@ -971,11 +973,11 @@ sub bdiv {
     if ($x -> is_nan() || $y -> is_nan()) {
         if ($wantarray) {
             return $downgrade -> bnan(), $downgrade -> bnan()
-              if defined($downgrade) && $LIB -> _is_one($x->{_d});
+              if defined($downgrade);
             return $x -> bnan(), $class -> bnan();
         } else {
             return $downgrade -> bnan()
-              if defined($downgrade) && $LIB -> _is_one($x->{_d});
+              if defined($downgrade);
             return $x -> bnan();
         }
     }
@@ -1387,6 +1389,7 @@ sub bceil {
     $x->{_d} = $LIB->_one();                    # d => 1
     $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '+';   # +22/7 => 4/1
     $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_zero($x->{_n}); # -0 => 0
+    return $downgrade -> new($x) if defined $downgrade;
     $x;
 }
 
@@ -1403,6 +1406,7 @@ sub bfloor {
     $x->{_n} = $LIB->_div($x->{_n}, $x->{_d});  # 22/7 => 3/1 w/ truncate
     $x->{_d} = $LIB->_one();                    # d => 1
     $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '-';   # -22/7 => -4/1
+    return $downgrade -> new($x) if defined $downgrade;
     $x;
 }
 
@@ -1419,6 +1423,7 @@ sub bint {
     $x->{_n} = $LIB->_div($x->{_n}, $x->{_d});  # 22/7 => 3/1 w/ truncate
     $x->{_d} = $LIB->_one();                    # d => 1
     $x->{sign} = '+' if $x->{sign} eq '-' && $LIB -> _is_zero($x->{_n});
+    return $downgrade -> new($x) if defined $downgrade;
     return $x;
 }
 
@@ -1587,18 +1592,30 @@ sub blog {
         }
     }
 
-    # At this point we are done handling all exception cases and trivial cases.
-
-    $base = Math::BigFloat -> new($base) if defined $base;
+    # disable upgrading and downgrading
 
-    my $xn = Math::BigFloat -> new($LIB -> _str($x->{_n}));
-    my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+    require Math::BigFloat;
+    my $upg = Math::BigFloat -> upgrade();
+    my $dng = Math::BigFloat -> downgrade();
+    Math::BigFloat -> upgrade(undef);
+    Math::BigFloat -> downgrade(undef);
 
-    my $xtmp = Math::BigRat -> new($xn -> bdiv($xd) -> blog($base, @r) -> bsstr());
+    # At this point we are done handling all exception cases and trivial cases.
 
-    $x -> {sign} = $xtmp -> {sign};
-    $x -> {_n}   = $xtmp -> {_n};
-    $x -> {_d}   = $xtmp -> {_d};
+    $base = Math::BigFloat -> new($base) if defined $base;
+    my $xnum = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+    my $xden = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+    my $xstr = $xnum -> bdiv($xden) -> blog($base, @r) -> bsstr();
+
+    # reset upgrading and downgrading
+
+    Math::BigFloat -> upgrade($upg);
+    Math::BigFloat -> downgrade($dng);
+
+    my $xobj = Math::BigRat -> new($xstr);
+    $x -> {sign} = $xobj -> {sign};
+    $x -> {_n}   = $xobj -> {_n};
+    $x -> {_d}   = $xobj -> {_d};
 
     return $neg ? $x -> bneg() : $x;
 }
@@ -1976,19 +1993,22 @@ sub bnot {
 
 sub round {
     my $x = shift;
-    $x = $downgrade -> new($x) if defined($downgrade) && $x -> is_int();
+    return $downgrade -> new($x) if defined($downgrade) &&
+      ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
     $x;
 }
 
 sub bround {
     my $x = shift;
-    $x = $downgrade -> new($x) if defined($downgrade) && $x -> is_int();
+    return $downgrade -> new($x) if defined($downgrade) &&
+      ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
     $x;
 }
 
 sub bfround {
     my $x = shift;
-    $x = $downgrade -> new($x) if defined($downgrade) && $x -> is_int();
+    return $downgrade -> new($x) if defined($downgrade) &&
+      ($x -> is_int() || $x -> is_inf() || $x -> is_nan());
     $x;
 }
 
@@ -2171,37 +2191,70 @@ sub numify {
 }
 
 sub as_int {
-    my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+    my ($class, $x) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+    return $x -> copy() if $x -> isa("Math::BigInt");
 
-    # NaN, inf etc
-    return Math::BigInt->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+    # disable upgrading and downgrading
 
-    my $u = Math::BigInt->bzero();
-    $u->{value} = $LIB->_div($LIB->_copy($x->{_n}), $x->{_d}); # 22/7 => 3
-    $u->bneg if $x->{sign} eq '-'; # no negative zero
-    $u;
+    require Math::BigInt;
+    my $upg = Math::BigInt -> upgrade();
+    my $dng = Math::BigInt -> downgrade();
+    Math::BigInt -> upgrade(undef);
+    Math::BigInt -> downgrade(undef);
+
+    my $y;
+    if ($x -> is_inf()) {
+        $y = Math::BigInt -> binf($x->sign());
+    } elsif ($x -> is_nan()) {
+        $y = Math::BigInt -> bnan();
+    } else {
+        my $int = $LIB -> _div($LIB -> _copy($x->{_n}), $x->{_d});  # 22/7 => 3
+        $y = Math::BigInt -> new($LIB -> _str($int));
+        $y = $y -> bneg() if $x -> is_neg();
+    }
+
+    # reset upgrading and downgrading
+
+    Math::BigInt -> upgrade($upg);
+    Math::BigInt -> downgrade($dng);
+
+    return $y;
 }
 
 sub as_float {
-    # return N/D as Math::BigFloat
+    my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
 
-    # set up parameters
-    my ($class, $x, @r) = (ref($_[0]), @_);
-    # objectify is costly, so avoid it
-    ($class, $x, @r) = objectify(1, @_) unless ref $_[0];
+    return $x -> copy() if $x -> isa("Math::BigFloat");
 
-    # NaN, inf etc
-    return Math::BigFloat->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+    # disable upgrading and downgrading
 
-    my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n}));
-    $xflt -> {sign} = $x -> {sign};
+    require Math::BigFloat;
+    my $upg = Math::BigFloat -> upgrade();
+    my $dng = Math::BigFloat -> downgrade();
+    Math::BigFloat -> upgrade(undef);
+    Math::BigFloat -> downgrade(undef);
 
-    unless ($LIB -> _is_one($x->{_d})) {
-        my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
-        $xflt -> bdiv($xd, @r);
+    my $y;
+    if ($x -> is_inf()) {
+        $y = Math::BigFloat -> binf($x->sign());
+    } elsif ($x -> is_nan()) {
+        $y = Math::BigFloat -> bnan();
+    } else {
+        $y = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+        $y -> {sign} = $x -> {sign};
+        unless ($LIB -> _is_one($x->{_d})) {
+            my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+            $y -> bdiv($xd, @r);
+        }
     }
 
-    return $xflt;
+    # reset upgrading and downgrading
+
+    Math::BigFloat -> upgrade($upg);
+    Math::BigFloat -> downgrade($dng);
+
+    return $y;
 }
 
 sub as_bin {
Index: gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t,v
diff -u -p -a -u -p -r1.5 bigrat.t
--- gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t	15 Feb 2023 01:36:20 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Math-BigRat/t/bigrat.t	21 Feb 2024 15:47:01 -0000
@@ -19,90 +19,92 @@ my $mbf = 'Math::BigFloat';
 my ($x, $y, $z);
 
 $x = Math::BigRat->new(1234);
-is($x, 1234);
+is($x, 1234, 'value of $x');
 isa_ok($x, 'Math::BigRat');
-is($x->isa('Math::BigFloat'), 0);
-is($x->isa('Math::BigInt'), 0);
+ok(!$x->isa('Math::BigInt'),
+   "An object of class '" . ref($x) . "' isn't a 'Math::BigInt'");
+ok(!$x->isa('Math::BigFloat'),
+   "An object of class '" . ref($x) . "' isn't a 'Math::BigFloat'");
 
 ##############################################################################
 # new and bnorm()
 
-foreach my $func (qw/ new bnorm /) {
-    $x = $mbr->$func(1234);
-    is($x, 1234, qq|\$x = $mbr->$func(1234)|);
+foreach my $method (qw/ new bnorm /) {
+    $x = $mbr->$method(1234);
+    is($x, 1234, qq|\$x = $mbr->$method(1234)|);
 
-    $x = $mbr->$func("1234/1");
-    is($x, 1234, qq|\$x = $mbr->$func("1234/1")|);
+    $x = $mbr->$method("1234/1");
+    is($x, 1234, qq|\$x = $mbr->$method("1234/1")|);
 
-    $x = $mbr->$func("1234/2");
-    is($x, 617, qq|\$x = $mbr->$func("1234/2")|);
+    $x = $mbr->$method("1234/2");
+    is($x, 617, qq|\$x = $mbr->$method("1234/2")|);
 
-    $x = $mbr->$func("100/1.0");
-    is($x, 100, qq|\$x = $mbr->$func("100/1.0")|);
+    $x = $mbr->$method("100/1.0");
+    is($x, 100, qq|\$x = $mbr->$method("100/1.0")|);
 
-    $x = $mbr->$func("10.0/1.0");
-    is($x, 10, qq|\$x = $mbr->$func("10.0/1.0")|);
+    $x = $mbr->$method("10.0/1.0");
+    is($x, 10, qq|\$x = $mbr->$method("10.0/1.0")|);
 
-    $x = $mbr->$func("0.1/10");
-    is($x, "1/100", qq|\$x = $mbr->$func("0.1/10")|);
+    $x = $mbr->$method("0.1/10");
+    is($x, "1/100", qq|\$x = $mbr->$method("0.1/10")|);
 
-    $x = $mbr->$func("0.1/0.1");
-    is($x, "1", qq|\$x = $mbr->$func("0.1/0.1")|);
+    $x = $mbr->$method("0.1/0.1");
+    is($x, "1", qq|\$x = $mbr->$method("0.1/0.1")|);
 
-    $x = $mbr->$func("1e2/10");
-    is($x, 10, qq|\$x = $mbr->$func("1e2/10")|);
+    $x = $mbr->$method("1e2/10");
+    is($x, 10, qq|\$x = $mbr->$method("1e2/10")|);
 
-    $x = $mbr->$func("5/1e2");
-    is($x, "1/20", qq|\$x = $mbr->$func("5/1e2")|);
+    $x = $mbr->$method("5/1e2");
+    is($x, "1/20", qq|\$x = $mbr->$method("5/1e2")|);
 
-    $x = $mbr->$func("1e2/1e1");
-    is($x, 10, qq|\$x = $mbr->$func("1e2/1e1")|);
+    $x = $mbr->$method("1e2/1e1");
+    is($x, 10, qq|\$x = $mbr->$method("1e2/1e1")|);
 
-    $x = $mbr->$func("1 / 3");
-    is($x, "1/3", qq|\$x = $mbr->$func("1 / 3")|);
+    $x = $mbr->$method("1 / 3");
+    is($x, "1/3", qq|\$x = $mbr->$method("1 / 3")|);
 
-    $x = $mbr->$func("-1 / 3");
-    is($x, "-1/3", qq|\$x = $mbr->$func("-1 / 3")|);
+    $x = $mbr->$method("-1 / 3");
+    is($x, "-1/3", qq|\$x = $mbr->$method("-1 / 3")|);
 
-    $x = $mbr->$func("NaN");
-    is($x, "NaN", qq|\$x = $mbr->$func("NaN")|);
+    $x = $mbr->$method("NaN");
+    is($x, "NaN", qq|\$x = $mbr->$method("NaN")|);
 
-    $x = $mbr->$func("inf");
-    is($x, "inf", qq|\$x = $mbr->$func("inf")|);
+    $x = $mbr->$method("inf");
+    is($x, "inf", qq|\$x = $mbr->$method("inf")|);
 
-    $x = $mbr->$func("-inf");
-    is($x, "-inf", qq|\$x = $mbr->$func("-inf")|);
+    $x = $mbr->$method("-inf");
+    is($x, "-inf", qq|\$x = $mbr->$method("-inf")|);
 
-    $x = $mbr->$func("1/");
-    is($x, "NaN", qq|\$x = $mbr->$func("1/")|);
+    $x = $mbr->$method("1/");
+    is($x, "NaN", qq|\$x = $mbr->$method("1/")|);
 
-    $x = $mbr->$func("0x7e");
-    is($x, 126, qq|\$x = $mbr->$func("0x7e")|);
+    $x = $mbr->$method("0x7e");
+    is($x, 126, qq|\$x = $mbr->$method("0x7e")|);
 
     # input ala "1+1/3" isn"t parsed ok yet
-    $x = $mbr->$func("1+1/3");
-    is($x, "NaN", qq|\$x = $mbr->$func("1+1/3")|);
+    $x = $mbr->$method("1+1/3");
+    is($x, "NaN", qq|\$x = $mbr->$method("1+1/3")|);
 
-    $x = $mbr->$func("1/1.2");
-    is($x, "5/6", qq|\$x = $mbr->$func("1/1.2")|);
+    $x = $mbr->$method("1/1.2");
+    is($x, "5/6", qq|\$x = $mbr->$method("1/1.2")|);
 
-    $x = $mbr->$func("1.3/1.2");
-    is($x, "13/12", qq|\$x = $mbr->$func("1.3/1.2")|);
+    $x = $mbr->$method("1.3/1.2");
+    is($x, "13/12", qq|\$x = $mbr->$method("1.3/1.2")|);
 
-    $x = $mbr->$func("1.2/1");
-    is($x, "6/5", qq|\$x = $mbr->$func("1.2/1")|);
+    $x = $mbr->$method("1.2/1");
+    is($x, "6/5", qq|\$x = $mbr->$method("1.2/1")|);
 
     ############################################################################
     # other classes as input
 
-    $x = $mbr->$func($mbi->new(1231));
-    is($x, "1231", qq|\$x = $mbr->$func($mbi->new(1231))|);
+    $x = $mbr->$method($mbi->new(1231));
+    is($x, "1231", qq|\$x = $mbr->$method($mbi->new(1231))|);
 
-    $x = $mbr->$func($mbf->new(1232));
-    is($x, "1232", qq|\$x = $mbr->$func($mbf->new(1232))|);
+    $x = $mbr->$method($mbf->new(1232));
+    is($x, "1232", qq|\$x = $mbr->$method($mbf->new(1232))|);
 
-    $x = $mbr->$func($mbf->new(1232.3));
-    is($x, "12323/10", qq|\$x = $mbr->$func($mbf->new(1232.3))|);
+    $x = $mbr->$method($mbf->new(1232.3));
+    is($x, "12323/10", qq|\$x = $mbr->$method($mbf->new(1232.3))|);
 }
 
 my $n = 'numerator';
@@ -322,14 +324,19 @@ is($x, 'NaN');
 ##############################################################################
 # binc/bdec
 
+note("binc()");
 $x = $mbr->new('3/2');
 is($x->binc(), '5/2');
+
+note("bdec()");
+
 $x = $mbr->new('15/6');
 is($x->bdec(), '3/2');
 
 ##############################################################################
-# bfloor/bceil
+# bfloor
 
+note("bfloor()");
 $x = $mbr->new('-7/7');
 is($x->$n(), '-1');
 is($x->$d(), '1');
@@ -426,6 +433,8 @@ subtest qq|$mbr -> new("NaN") -> numify(
 ##############################################################################
 # as_hex(), as_bin(), as_oct()
 
+note("as_hex(), as_bin(), as_oct()");
+
 $x = $mbr->new('8/8');
 is($x->as_hex(), '0x1');
 is($x->as_bin(), '0b1');
@@ -439,32 +448,36 @@ is($x->as_oct(), '012');
 ##############################################################################
 # broot(), blog(), bmodpow() and bmodinv()
 
+note("broot(), blog(), bmodpow(), bmodinv()");
+
 $x = $mbr->new(2) ** 32;
 $y = $mbr->new(4);
 $z = $mbr->new(3);
 
 is($x->copy()->broot($y), 2 ** 8);
-is(ref($x->copy()->broot($y)), $mbr);
+is(ref($x->copy()->broot($y)), $mbr, "\$x is a $mbr");
 
 is($x->copy()->bmodpow($y, $z), 1);
-is(ref($x->copy()->bmodpow($y, $z)), $mbr);
+is(ref($x->copy()->bmodpow($y, $z)), $mbr, "\$x is a $mbr");
 
 $x = $mbr->new(8);
 $y = $mbr->new(5033);
 $z = $mbr->new(4404);
 
 is($x->copy()->bmodinv($y), $z);
-is(ref($x->copy()->bmodinv($y)), $mbr);
+is(ref($x->copy()->bmodinv($y)), $mbr, "\$x is a $mbr");
 
 # square root with exact result
 $x = $mbr->new('1.44');
 is($x->copy()->broot(2), '6/5');
-is(ref($x->copy()->broot(2)), $mbr);
+is(ref($x->copy()->broot(2)), $mbr, "\$x is a $mbr");
 
 # log with exact result
 $x = $mbr->new('256.1');
-is($x->copy()->blog(2), '8000563442710106079310294693803606983661/1000000000000000000000000000000000000000');
-is(ref($x->copy()->blog(2)), $mbr);
+is($x->copy()->blog(2),
+   '8000563442710106079310294693803606983661/1000000000000000000000000000000000000000',
+   "\$x = $mbr->new('256.1')->blog(2)");
+is(ref($x->copy()->blog(2)), $mbr, "\$x is a $mbr");
 
 $x = $mbr->new(144);
 is($x->copy()->broot('2'), 12, 'v/144 = 12');
@@ -474,6 +487,8 @@ is($x->copy()->broot('3'), 12, '(12*12*1
 
 ##############################################################################
 # from_hex(), from_bin(), from_oct()
+
+note("from_hex(), from_bin(), from_oct()");
 
 $x = Math::BigRat->from_hex('0x100');
 is($x, '256', 'from_hex');
Index: gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.inc,v
diff -u -p -a -u -p -r1.5 bigratpm.inc
--- gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.inc	15 Feb 2023 01:36:20 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Math-BigRat/t/bigratpm.inc	21 Feb 2024 15:47:01 -0000
@@ -339,8 +339,8 @@ abc::1
 +inf:inf
 -inf:-inf
 abcfsstr:NaN
-1:1/1
-3/1:3/1
+1:1
+3/1:3
 0.1:1/10
 
 &bnorm
Index: gnu/usr.bin/perl/cpan/Math-BigRat/t/downgrade.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Math-BigRat/t/downgrade.t,v
diff -u -p -a -u -p -r1.1.1.1 downgrade.t
--- gnu/usr.bin/perl/cpan/Math-BigRat/t/downgrade.t	15 Feb 2023 01:32:35 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Math-BigRat/t/downgrade.t	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 33;
+use Test::More tests => 141;
 
 use Math::BigInt upgrade   => 'Math::BigRat';
 use Math::BigRat downgrade => 'Math::BigInt';
@@ -105,3 +105,326 @@ is(ref $four, "Math::BigRat", "Creating 
 is(ref $zero, "Math::BigRat", "Creating a 0 does not downgrade");
 is(ref $inf,  "Math::BigRat", "Creating an Inf does not downgrade");
 is(ref $nan,  "Math::BigRat", "Creating a NaN does not downgrade");
+
+################################################################################
+# Verify that other methods downgrade when they should.
+
+Math::BigRat -> downgrade("Math::BigInt");
+
+note("bneg()");
+
+$x = $zero -> copy() -> bneg();
+cmp_ok($x, "==", 0, "-(0) = 0");
+is(ref($x), "Math::BigInt", "-(0) => Math::BigInt");
+
+$x = $four -> copy() -> bneg();
+cmp_ok($x, "==", -4, "-(4) = -4");
+is(ref($x), "Math::BigInt", "-(4) => Math::BigInt");
+
+$x = $inf -> copy() -> bneg();
+cmp_ok($x, "==", "-inf", "-(Inf) = -Inf");
+is(ref($x), "Math::BigInt", "-(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bneg();
+is($x, "NaN", "-(NaN) = NaN");
+is(ref($x), "Math::BigInt", "-(NaN) => Math::BigInt");
+
+note("bnorm()");
+
+$x = $zero -> copy() -> bnorm();
+cmp_ok($x, "==", 0, "bnorm(0)");
+is(ref($x), "Math::BigInt", "bnorm(0) => Math::BigInt");
+
+$x = $four -> copy() -> bnorm();
+cmp_ok($x, "==", 4, "bnorm(4)");
+is(ref($x), "Math::BigInt", "bnorm(4) => Math::BigInt");
+
+$x = $inf -> copy() -> bnorm();
+cmp_ok($x, "==", "inf", "bnorm(Inf)");
+is(ref($x), "Math::BigInt", "bnorm(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bnorm();
+is($x, "NaN", "bnorm(NaN)");
+is(ref($x), "Math::BigInt", "bnorm(NaN) => Math::BigInt");
+
+note("binc()");
+
+$x = $zero -> copy() -> binc();
+cmp_ok($x, "==", 1, "binc(0)");
+is(ref($x), "Math::BigInt", "binc(0) => Math::BigInt");
+
+$x = $four -> copy() -> binc();
+cmp_ok($x, "==", 5, "binc(4)");
+is(ref($x), "Math::BigInt", "binc(4) => Math::BigInt");
+
+$x = $inf -> copy() -> binc();
+cmp_ok($x, "==", "inf", "binc(Inf)");
+is(ref($x), "Math::BigInt", "binc(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> binc();
+is($x, "NaN", "binc(NaN)");
+is(ref($x), "Math::BigInt", "binc(NaN) => Math::BigInt");
+
+note("bdec()");
+
+$x = $zero -> copy() -> bdec();
+cmp_ok($x, "==", -1, "bdec(0)");
+is(ref($x), "Math::BigInt", "bdec(0) => Math::BigInt");
+
+$x = $four -> copy() -> bdec();
+cmp_ok($x, "==", 3, "bdec(4)");
+is(ref($x), "Math::BigInt", "bdec(4) => Math::BigInt");
+
+$x = $inf -> copy() -> bdec();
+cmp_ok($x, "==", "inf", "bdec(Inf)");
+is(ref($x), "Math::BigInt", "bdec(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bdec();
+is($x, "NaN", "bdec(NaN)");
+is(ref($x), "Math::BigInt", "bdec(NaN) => Math::BigInt");
+
+note("badd()");
+
+$x = $half -> copy() -> badd($nan);
+is($x, "NaN", "0.5 + NaN = NaN");
+is(ref($x), "Math::BigInt", "0.5 + NaN => Math::BigInt");
+
+$x = $half -> copy() -> badd($inf);
+cmp_ok($x, "==", "+Inf", "0.5 + Inf = Inf");
+is(ref($x), "Math::BigInt", "2.5 + Inf => Math::BigInt");
+
+$x = $half -> copy() -> badd($half);
+cmp_ok($x, "==", 1, "0.5 + 0.5 = 1");
+is(ref($x), "Math::BigInt", "0.5 + 0.5 => Math::BigInt");
+
+$x = $half -> copy() -> badd($half -> copy() -> bneg());
+cmp_ok($x, "==", 0, "0.5 + -0.5 = 0");
+is(ref($x), "Math::BigInt", "0.5 + -0.5 => Math::BigInt");
+
+$x = $four -> copy() -> badd($zero);
+cmp_ok($x, "==", 4, "4 + 0 = 4");
+is(ref($x), "Math::BigInt", "4 + 0 => Math::BigInt");
+
+$x = $zero -> copy() -> badd($four);
+cmp_ok($x, "==", 4, "0 + 4 = 4");
+is(ref($x), "Math::BigInt", "0 + 4 => Math::BigInt");
+
+$x = $inf -> copy() -> badd($four);
+cmp_ok($x, "==", "+Inf", "Inf + 4 = Inf");
+is(ref($x), "Math::BigInt", "Inf + 4 => Math::BigInt");
+
+$x = $nan -> copy() -> badd($four);
+is($x, "NaN", "NaN + 4 = NaN");
+is(ref($x), "Math::BigInt", "NaN + 4 => Math::BigInt");
+
+note("bsub()");
+
+$x = $half -> copy() -> bsub($nan);
+is($x, "NaN", "0.5 - NaN = NaN");
+is(ref($x), "Math::BigInt", "0.5 - NaN => Math::BigInt");
+
+$x = $half -> copy() -> bsub($inf);
+cmp_ok($x, "==", "-Inf", "2.5 - Inf = -Inf");
+is(ref($x), "Math::BigInt", "2.5 - Inf => Math::BigInt");
+
+$x = $half -> copy() -> bsub($half);
+cmp_ok($x, "==", 0, "0.5 - 0.5 = 0");
+is(ref($x), "Math::BigInt", "0.5 - 0.5 => Math::BigInt");
+
+$x = $half -> copy() -> bsub($half -> copy() -> bneg());
+cmp_ok($x, "==", 1, "0.5 - -0.5 = 1");
+is(ref($x), "Math::BigInt", "0.5 - -0.5 => Math::BigInt");
+
+$x = $four -> copy() -> bsub($zero);
+cmp_ok($x, "==", 4, "4 - 0 = 4");
+is(ref($x), "Math::BigInt", "4 - 0 => Math::BigInt");
+
+$x = $zero -> copy() -> bsub($four);
+cmp_ok($x, "==", -4, "0 - 4 = -4");
+is(ref($x), "Math::BigInt", "0 - 4 => Math::BigInt");
+
+$x = $inf -> copy() -> bsub($four);
+cmp_ok($x, "==", "Inf", "Inf - 4 = Inf");
+is(ref($x), "Math::BigInt", "Inf - 4 => Math::BigInt");
+
+$x = $nan -> copy() -> bsub($four);
+is($x, "NaN", "NaN - 4 = NaN");
+is(ref($x), "Math::BigInt", "NaN - 4 => Math::BigInt");
+
+note("bmul()");
+
+$x = $zero -> copy() -> bmul($four);
+cmp_ok($x, "==", 0, "bmul(0, 4) = 0");
+is(ref($x), "Math::BigInt", "bmul(0, 4) => Math::BigInt");
+
+$x = $four -> copy() -> bmul($four);
+cmp_ok($x, "==", 16, "bmul(4, 4) = 16");
+is(ref($x), "Math::BigInt", "bmul(4, 4) => Math::BigInt");
+
+$x = $inf -> copy() -> bmul($four);
+cmp_ok($x, "==", "inf", "bmul(Inf, 4) = Inf");
+is(ref($x), "Math::BigInt", "bmul(Inf, 4) => Math::BigInt");
+
+$x = $nan -> copy() -> bmul($four);
+is($x, "NaN", "bmul(NaN, 4) = NaN");
+is(ref($x), "Math::BigInt", "bmul(NaN, 4) => Math::BigInt");
+
+$x = $four -> copy() -> bmul("0.5");
+cmp_ok($x, "==", 2, "bmul(4, 0.5) = 2");
+is(ref($x), "Math::BigInt", "bmul(4, 0.5) => Math::BigInt");
+
+# bmuladd()
+
+note("bdiv()");
+
+note("bmod()");
+
+note("bmodpow()");
+
+note("bpow()");
+
+note("blog()");
+
+note("bexp()");
+
+note("bnok()");
+
+note("bsin()");
+
+note("bcos()");
+
+note("batan()");
+
+note("batan()");
+
+note("bsqrt()");
+
+note("broot()");
+
+note("bfac()");
+
+note("bdfac()");
+
+note("btfac()");
+
+note("bmfac()");
+
+note("blsft()");
+
+note("brsft()");
+
+note("band()");
+
+note("bior()");
+
+note("bxor()");
+
+note("bnot()");
+
+note("bround()");
+
+# Add tests for rounding a non-integer to an integer. Fixme!
+
+$x = $zero -> copy() -> bround();
+cmp_ok($x, "==", 0, "bround(0)");
+is(ref($x), "Math::BigInt", "bround(0) => Math::BigInt");
+
+$x = $four -> copy() -> bround();
+cmp_ok($x, "==", 4, "bround(4)");
+is(ref($x), "Math::BigInt", "bround(4) => Math::BigInt");
+
+$x = $inf -> copy() -> bround();
+cmp_ok($x, "==", "inf", "bround(Inf)");
+is(ref($x), "Math::BigInt", "bround(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bround();
+is($x, "NaN", "bround(NaN)");
+is(ref($x), "Math::BigInt", "bround(NaN) => Math::BigInt");
+
+note("bfround()");
+
+# Add tests for rounding a non-integer to an integer. Fixme!
+
+$x = $zero -> copy() -> bfround();
+cmp_ok($x, "==", 0, "bfround(0)");
+is(ref($x), "Math::BigInt", "bfround(0) => Math::BigInt");
+
+$x = $four -> copy() -> bfround();
+cmp_ok($x, "==", 4, "bfround(4)");
+is(ref($x), "Math::BigInt", "bfround(4) => Math::BigInt");
+
+$x = $inf -> copy() -> bfround();
+cmp_ok($x, "==", "inf", "bfround(Inf)");
+is(ref($x), "Math::BigInt", "bfround(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bfround();
+is($x, "NaN", "bfround(NaN)");
+is(ref($x), "Math::BigInt", "bfround(NaN) => Math::BigInt");
+
+note("bfloor()");
+
+$x = $half -> copy() -> bfloor();
+cmp_ok($x, "==", 0, "bfloor(0)");
+is(ref($x), "Math::BigInt", "bfloor(0) => Math::BigInt");
+
+$x = $inf -> copy() -> bfloor();
+cmp_ok($x, "==", "Inf", "bfloor(Inf)");
+is(ref($x), "Math::BigInt", "bfloor(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bfloor();
+is($x, "NaN", "bfloor(NaN)");
+is(ref($x), "Math::BigInt", "bfloor(NaN) => Math::BigInt");
+
+note("bceil()");
+
+$x = $half -> copy() -> bceil();
+cmp_ok($x, "==", 1, "bceil(0)");
+is(ref($x), "Math::BigInt", "bceil(0) => Math::BigInt");
+
+$x = $inf -> copy() -> bceil();
+cmp_ok($x, "==", "Inf", "bceil(Inf)");
+is(ref($x), "Math::BigInt", "bceil(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bceil();
+is($x, "NaN", "bceil(NaN)");
+is(ref($x), "Math::BigInt", "bceil(NaN) => Math::BigInt");
+
+note("bint()");
+
+$x = $half -> copy() -> bint();
+cmp_ok($x, "==", 0, "bint(0)");
+is(ref($x), "Math::BigInt", "bint(0) => Math::BigInt");
+
+$x = $inf -> copy() -> bint();
+cmp_ok($x, "==", "Inf", "bint(Inf)");
+is(ref($x), "Math::BigInt", "bint(Inf) => Math::BigInt");
+
+$x = $nan -> copy() -> bint();
+is($x, "NaN", "bint(NaN)");
+is(ref($x), "Math::BigInt", "bint(NaN) => Math::BigInt");
+
+note("bgcd()");
+
+note("blcm()");
+
+# mantissa() ?
+
+# exponent() ?
+
+# parts() ?
+
+# sparts()
+
+# nparts()
+
+# eparts()
+
+# dparts()
+
+# fparts()
+
+# numerator()
+
+# denominator()
+
+#require 'upgrade.inc'; # all tests here for sharing
Index: gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Complex.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Complex.pm
diff -N gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Complex.pm
--- gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Complex.pm	15 Feb 2023 01:32:43 -0000	1.1.1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,2132 +0,0 @@
-#
-# Complex numbers and associated mathematical functions
-# -- Raphael Manfredi	Since Sep 1996
-# -- Jarkko Hietaniemi	Since Mar 1997
-# -- Daniel S. Lewart	Since Sep 1997
-#
-
-package Math::Complex;
-
-{ use 5.006; }
-use strict;
-
-our $VERSION = 1.59_02;
-
-use Config;
-
-our ($Inf, $ExpInf);
-our ($vax_float, $has_inf, $has_nan);
-
-BEGIN {
-    $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
-    $has_inf   = !$vax_float;
-    $has_nan   = !$vax_float;
-
-    unless ($has_inf) {
-      # For example in vax, there is no Inf,
-      # and just mentioning the DBL_MAX (1.70141183460469229e+38)
-      # causes SIGFPE.
-
-      # These are pretty useless without a real infinity,
-      # but setting them makes for less warnings about their
-      # undefined values.
-      $Inf = "Inf";
-      $ExpInf = "Inf";
-      return;
-    }
-
-    my %DBL_MAX =  # These are IEEE 754 maxima.
-	(
-	  4  => '1.70141183460469229e+38',
-	  8  => '1.7976931348623157e+308',
-	 # AFAICT the 10, 12, and 16-byte long doubles
-	 # all have the same maximum.
-	 10 => '1.1897314953572317650857593266280070162E+4932',
-	 12 => '1.1897314953572317650857593266280070162E+4932',
-	 16 => '1.1897314953572317650857593266280070162E+4932',
-	);
-
-    my $nvsize = $Config{nvsize} ||
-	        ($Config{uselongdouble} && $Config{longdblsize}) ||
-                 $Config{doublesize};
-    die "Math::Complex: Could not figure out nvsize\n"
-	unless defined $nvsize;
-    die "Math::Complex: Cannot not figure out max nv (nvsize = $nvsize)\n"
-	unless defined $DBL_MAX{$nvsize};
-    my $DBL_MAX = eval $DBL_MAX{$nvsize};
-    die "Math::Complex: Could not figure out max nv (nvsize = $nvsize)\n"
-	unless defined $DBL_MAX;
-    my $BIGGER_THAN_THIS = 1e30;  # Must find something bigger than this.
-    if ($^O eq 'unicosmk') {
-	$Inf = $DBL_MAX;
-    } else {
-	local $SIG{FPE} = sub { };
-        local $!;
-	# We do want an arithmetic overflow, Inf INF inf Infinity.
-	for my $t (
-	    'exp(99999)',  # Enough even with 128-bit long doubles.
-	    'inf',
-	    'Inf',
-	    'INF',
-	    'infinity',
-	    'Infinity',
-	    'INFINITY',
-	    '1e99999',
-	    ) {
-	    local $^W = 0;
-	    my $i = eval "$t+1.0";
-	    if (defined $i && $i > $BIGGER_THAN_THIS) {
-		$Inf = $i;
-		last;
-	    }
-          }
-	$Inf = $DBL_MAX unless defined $Inf;  # Oh well, close enough.
-	die "Math::Complex: Could not get Infinity"
-	    unless $Inf > $BIGGER_THAN_THIS;
-	$ExpInf = eval 'exp(99999)';
-      }
-    # print "# On this machine, Inf = '$Inf'\n";
-}
-
-use Scalar::Util qw(set_prototype);
-
-use warnings;
-no warnings 'syntax';  # To avoid the (_) warnings.
-
-BEGIN {
-    # For certain functions that we override, in 5.10 or better
-    # we can set a smarter prototype that will handle the lexical $_
-    # (also a 5.10+ feature).
-    if ($] >= 5.010000) {
-        set_prototype \&abs, '_';
-        set_prototype \&cos, '_';
-        set_prototype \&exp, '_';
-        set_prototype \&log, '_';
-        set_prototype \&sin, '_';
-        set_prototype \&sqrt, '_';
-    }
-}
-
-my $i;
-my %LOGN;
-
-# Regular expression for floating point numbers.
-# These days we could use Scalar::Util::lln(), I guess.
-my $gre = qr'\s*([\+\-]?(?:(?:(?:\d+(?:_\d+)*(?:\.\d*(?:_\d+)*)?|\.\d+(?:_\d+)*)(?:[eE][\+\-]?\d+(?:_\d+)*)?))|inf)'i;
-
-require Exporter;
-
-our @ISA = qw(Exporter);
-
-my @trig = qw(
-	      pi
-	      tan
-	      csc cosec sec cot cotan
-	      asin acos atan
-	      acsc acosec asec acot acotan
-	      sinh cosh tanh
-	      csch cosech sech coth cotanh
-	      asinh acosh atanh
-	      acsch acosech asech acoth acotanh
-	     );
-
-our @EXPORT = (qw(
-	     i Re Im rho theta arg
-	     sqrt log ln
-	     log10 logn cbrt root
-	     cplx cplxe
-	     atan2
-	     ),
-	   @trig);
-
-my @pi = qw(pi pi2 pi4 pip2 pip4 Inf);
-
-our @EXPORT_OK = @pi;
-
-our %EXPORT_TAGS = (
-    'trig' => [@trig],
-    'pi' => [@pi],
-);
-
-use overload
-	'='	=> \&_copy,
-	'+='	=> \&_plus,
-	'+'	=> \&_plus,
-	'-='	=> \&_minus,
-	'-'	=> \&_minus,
-	'*='	=> \&_multiply,
-	'*'	=> \&_multiply,
-	'/='	=> \&_divide,
-	'/'	=> \&_divide,
-	'**='	=> \&_power,
-	'**'	=> \&_power,
-	'=='	=> \&_numeq,
-	'<=>'	=> \&_spaceship,
-	'neg'	=> \&_negate,
-	'~'	=> \&_conjugate,
-	'abs'	=> \&abs,
-	'sqrt'	=> \&sqrt,
-	'exp'	=> \&exp,
-	'log'	=> \&log,
-	'sin'	=> \&sin,
-	'cos'	=> \&cos,
-	'atan2'	=> \&atan2,
-        '""'    => \&_stringify;
-
-#
-# Package "privates"
-#
-
-my %DISPLAY_FORMAT = ('style' => 'cartesian',
-		      'polar_pretty_print' => 1);
-my $eps            = 1e-14;		# Epsilon
-
-#
-# Object attributes (internal):
-#	cartesian	[real, imaginary] -- cartesian form
-#	polar		[rho, theta] -- polar form
-#	c_dirty		cartesian form not up-to-date
-#	p_dirty		polar form not up-to-date
-#	display		display format (package's global when not set)
-#
-
-# Die on bad *make() arguments.
-
-sub _cannot_make {
-    die "@{[(caller(1))[3]]}: Cannot take $_[0] of '$_[1]'.\n";
-}
-
-sub _make {
-    my $arg = shift;
-    my ($p, $q);
-
-    if ($arg =~ /^$gre$/) {
-	($p, $q) = ($1, 0);
-    } elsif ($arg =~ /^(?:$gre)?$gre\s*i\s*$/) {
-	($p, $q) = ($1 || 0, $2);
-    } elsif ($arg =~ /^\s*\(\s*$gre\s*(?:,\s*$gre\s*)?\)\s*$/) {
-	($p, $q) = ($1, $2 || 0);
-    }
-
-    if (defined $p) {
-	$p =~ s/^\+//;
-	$p =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
-	$q =~ s/^\+//;
-	$q =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
-    }
-
-    return ($p, $q);
-}
-
-sub _emake {
-    my $arg = shift;
-    my ($p, $q);
-
-    if ($arg =~ /^\s*\[\s*$gre\s*(?:,\s*$gre\s*)?\]\s*$/) {
-	($p, $q) = ($1, $2 || 0);
-    } elsif ($arg =~ m!^\s*\[\s*$gre\s*(?:,\s*([-+]?\d*\s*)?pi(?:/\s*(\d+))?\s*)?\]\s*$!) {
-	($p, $q) = ($1, ($2 eq '-' ? -1 : ($2 || 1)) * pi() / ($3 || 1));
-    } elsif ($arg =~ /^\s*\[\s*$gre\s*\]\s*$/) {
-	($p, $q) = ($1, 0);
-    } elsif ($arg =~ /^\s*$gre\s*$/) {
-	($p, $q) = ($1, 0);
-    }
-
-    if (defined $p) {
-	$p =~ s/^\+//;
-	$q =~ s/^\+//;
-	$p =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
-	$q =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
-    }
-
-    return ($p, $q);
-}
-
-sub _copy {
-    my $self = shift;
-    my $clone = {%$self};
-    if ($self->{'cartesian'}) {
-	$clone->{'cartesian'} = [@{$self->{'cartesian'}}];
-    }
-    if ($self->{'polar'}) {
-	$clone->{'polar'} = [@{$self->{'polar'}}];
-    }
-    bless $clone,__PACKAGE__;
-    return $clone;
-}
-
-#
-# ->make
-#
-# Create a new complex number (cartesian form)
-#
-sub make {
-    my $self = bless {}, shift;
-    my ($re, $im);
-    if (@_ == 0) {
-	($re, $im) = (0, 0);
-    } elsif (@_ == 1) {
-	return (ref $self)->emake($_[0])
-	    if ($_[0] =~ /^\s*\[/);
-	($re, $im) = _make($_[0]);
-    } elsif (@_ == 2) {
-	($re, $im) = @_;
-    }
-    if (defined $re) {
-	_cannot_make("real part",      $re) unless $re =~ /^$gre$/;
-    }
-    $im ||= 0;
-    _cannot_make("imaginary part", $im) unless $im =~ /^$gre$/;
-    $self->_set_cartesian([$re, $im ]);
-    $self->display_format('cartesian');
-
-    return $self;
-}
-
-#
-# ->emake
-#
-# Create a new complex number (exponential form)
-#
-sub emake {
-    my $self = bless {}, shift;
-    my ($rho, $theta);
-    if (@_ == 0) {
-	($rho, $theta) = (0, 0);
-    } elsif (@_ == 1) {
-	return (ref $self)->make($_[0])
-	    if ($_[0] =~ /^\s*\(/ || $_[0] =~ /i\s*$/);
-	($rho, $theta) = _emake($_[0]);
-    } elsif (@_ == 2) {
-	($rho, $theta) = @_;
-    }
-    if (defined $rho && defined $theta) {
-	if ($rho < 0) {
-	    $rho   = -$rho;
-	    $theta = ($theta <= 0) ? $theta + pi() : $theta - pi();
-	}
-    }
-    if (defined $rho) {
-	_cannot_make("rho",   $rho)   unless $rho   =~ /^$gre$/;
-    }
-    $theta ||= 0;
-    _cannot_make("theta", $theta) unless $theta =~ /^$gre$/;
-    $self->_set_polar([$rho, $theta]);
-    $self->display_format('polar');
-
-    return $self;
-}
-
-sub new { &make }		# For backward compatibility only.
-
-#
-# cplx
-#
-# Creates a complex number from a (re, im) tuple.
-# This avoids the burden of writing Math::Complex->make(re, im).
-#
-sub cplx {
-	return __PACKAGE__->make(@_);
-}
-
-#
-# cplxe
-#
-# Creates a complex number from a (rho, theta) tuple.
-# This avoids the burden of writing Math::Complex->emake(rho, theta).
-#
-sub cplxe {
-	return __PACKAGE__->emake(@_);
-}
-
-#
-# pi
-#
-# The number defined as pi = 180 degrees
-#
-sub pi () { 4 * CORE::atan2(1, 1) }
-
-#
-# pi2
-#
-# The full circle
-#
-sub pi2 () { 2 * pi }
-
-#
-# pi4
-#
-# The full circle twice.
-#
-sub pi4 () { 4 * pi }
-
-#
-# pip2
-#
-# The quarter circle
-#
-sub pip2 () { pi / 2 }
-
-#
-# pip4
-#
-# The eighth circle.
-#
-sub pip4 () { pi / 4 }
-
-#
-# _uplog10
-#
-# Used in log10().
-#
-sub _uplog10 () { 1 / CORE::log(10) }
-
-#
-# i
-#
-# The number defined as i*i = -1;
-#
-sub i () {
-        return $i if ($i);
-	$i = bless {};
-	$i->{'cartesian'} = [0, 1];
-	$i->{'polar'}     = [1, pip2];
-	$i->{c_dirty} = 0;
-	$i->{p_dirty} = 0;
-	return $i;
-}
-
-#
-# _ip2
-#
-# Half of i.
-#
-sub _ip2 () { i / 2 }
-
-#
-# Attribute access/set routines
-#
-
-sub _cartesian {$_[0]->{c_dirty} ?
-		   $_[0]->_update_cartesian : $_[0]->{'cartesian'}}
-sub _polar     {$_[0]->{p_dirty} ?
-		   $_[0]->_update_polar : $_[0]->{'polar'}}
-
-sub _set_cartesian { $_[0]->{p_dirty}++; $_[0]->{c_dirty} = 0;
-		     $_[0]->{'cartesian'} = $_[1] }
-sub _set_polar     { $_[0]->{c_dirty}++; $_[0]->{p_dirty} = 0;
-		     $_[0]->{'polar'} = $_[1] }
-
-#
-# ->_update_cartesian
-#
-# Recompute and return the cartesian form, given accurate polar form.
-#
-sub _update_cartesian {
-	my $self = shift;
-	my ($r, $t) = @{$self->{'polar'}};
-	$self->{c_dirty} = 0;
-	return $self->{'cartesian'} = [$r * CORE::cos($t), $r * CORE::sin($t)];
-}
-
-#
-#
-# ->_update_polar
-#
-# Recompute and return the polar form, given accurate cartesian form.
-#
-sub _update_polar {
-	my $self = shift;
-	my ($x, $y) = @{$self->{'cartesian'}};
-	$self->{p_dirty} = 0;
-	return $self->{'polar'} = [0, 0] if $x == 0 && $y == 0;
-	return $self->{'polar'} = [CORE::sqrt($x*$x + $y*$y),
-				   CORE::atan2($y, $x)];
-}
-
-#
-# (_plus)
-#
-# Computes z1+z2.
-#
-sub _plus {
-	my ($z1, $z2, $regular) = @_;
-	my ($re1, $im1) = @{$z1->_cartesian};
-	$z2 = cplx($z2) unless ref $z2;
-	my ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
-	unless (defined $regular) {
-		$z1->_set_cartesian([$re1 + $re2, $im1 + $im2]);
-		return $z1;
-	}
-	return (ref $z1)->make($re1 + $re2, $im1 + $im2);
-}
-
-#
-# (_minus)
-#
-# Computes z1-z2.
-#
-sub _minus {
-	my ($z1, $z2, $inverted) = @_;
-	my ($re1, $im1) = @{$z1->_cartesian};
-	$z2 = cplx($z2) unless ref $z2;
-	my ($re2, $im2) = @{$z2->_cartesian};
-	unless (defined $inverted) {
-		$z1->_set_cartesian([$re1 - $re2, $im1 - $im2]);
-		return $z1;
-	}
-	return $inverted ?
-		(ref $z1)->make($re2 - $re1, $im2 - $im1) :
-		(ref $z1)->make($re1 - $re2, $im1 - $im2);
-
-}
-
-#
-# (_multiply)
-#
-# Computes z1*z2.
-#
-sub _multiply {
-        my ($z1, $z2, $regular) = @_;
-	if ($z1->{p_dirty} == 0 and ref $z2 and $z2->{p_dirty} == 0) {
-	    # if both polar better use polar to avoid rounding errors
-	    my ($r1, $t1) = @{$z1->_polar};
-	    my ($r2, $t2) = @{$z2->_polar};
-	    my $t = $t1 + $t2;
-	    if    ($t >   pi()) { $t -= pi2 }
-	    elsif ($t <= -pi()) { $t += pi2 }
-	    unless (defined $regular) {
-		$z1->_set_polar([$r1 * $r2, $t]);
-		return $z1;
-	    }
-	    return (ref $z1)->emake($r1 * $r2, $t);
-	} else {
-	    my ($x1, $y1) = @{$z1->_cartesian};
-	    if (ref $z2) {
-		my ($x2, $y2) = @{$z2->_cartesian};
-		return (ref $z1)->make($x1*$x2-$y1*$y2, $x1*$y2+$y1*$x2);
-	    } else {
-		return (ref $z1)->make($x1*$z2, $y1*$z2);
-	    }
-	}
-}
-
-#
-# _divbyzero
-#
-# Die on division by zero.
-#
-sub _divbyzero {
-    my $mess = "$_[0]: Division by zero.\n";
-
-    if (defined $_[1]) {
-	$mess .= "(Because in the definition of $_[0], the divisor ";
-	$mess .= "$_[1] " unless ("$_[1]" eq '0');
-	$mess .= "is 0)\n";
-    }
-
-    my @up = caller(1);
-
-    $mess .= "Died at $up[1] line $up[2].\n";
-
-    die $mess;
-}
-
-#
-# (_divide)
-#
-# Computes z1/z2.
-#
-sub _divide {
-	my ($z1, $z2, $inverted) = @_;
-	if ($z1->{p_dirty} == 0 and ref $z2 and $z2->{p_dirty} == 0) {
-	    # if both polar better use polar to avoid rounding errors
-	    my ($r1, $t1) = @{$z1->_polar};
-	    my ($r2, $t2) = @{$z2->_polar};
-	    my $t;
-	    if ($inverted) {
-		_divbyzero "$z2/0" if ($r1 == 0);
-		$t = $t2 - $t1;
-		if    ($t >   pi()) { $t -= pi2 }
-		elsif ($t <= -pi()) { $t += pi2 }
-		return (ref $z1)->emake($r2 / $r1, $t);
-	    } else {
-		_divbyzero "$z1/0" if ($r2 == 0);
-		$t = $t1 - $t2;
-		if    ($t >   pi()) { $t -= pi2 }
-		elsif ($t <= -pi()) { $t += pi2 }
-		return (ref $z1)->emake($r1 / $r2, $t);
-	    }
-	} else {
-	    my ($d, $x2, $y2);
-	    if ($inverted) {
-		($x2, $y2) = @{$z1->_cartesian};
-		$d = $x2*$x2 + $y2*$y2;
-		_divbyzero "$z2/0" if $d == 0;
-		return (ref $z1)->make(($x2*$z2)/$d, -($y2*$z2)/$d);
-	    } else {
-		my ($x1, $y1) = @{$z1->_cartesian};
-		if (ref $z2) {
-		    ($x2, $y2) = @{$z2->_cartesian};
-		    $d = $x2*$x2 + $y2*$y2;
-		    _divbyzero "$z1/0" if $d == 0;
-		    my $u = ($x1*$x2 + $y1*$y2)/$d;
-		    my $v = ($y1*$x2 - $x1*$y2)/$d;
-		    return (ref $z1)->make($u, $v);
-		} else {
-		    _divbyzero "$z1/0" if $z2 == 0;
-		    return (ref $z1)->make($x1/$z2, $y1/$z2);
-		}
-	    }
-	}
-}
-
-#
-# (_power)
-#
-# Computes z1**z2 = exp(z2 * log z1)).
-#
-sub _power {
-	my ($z1, $z2, $inverted) = @_;
-	if ($inverted) {
-	    return 1 if $z1 == 0 || $z2 == 1;
-	    return 0 if $z2 == 0 && Re($z1) > 0;
-	} else {
-	    return 1 if $z2 == 0 || $z1 == 1;
-	    return 0 if $z1 == 0 && Re($z2) > 0;
-	}
-	my $w = $inverted ? &exp($z1 * &log($z2))
-	                  : &exp($z2 * &log($z1));
-	# If both arguments cartesian, return cartesian, else polar.
-	return $z1->{c_dirty} == 0 &&
-	       (not ref $z2 or $z2->{c_dirty} == 0) ?
-	       cplx(@{$w->_cartesian}) : $w;
-}
-
-#
-# (_spaceship)
-#
-# Computes z1 <=> z2.
-# Sorts on the real part first, then on the imaginary part. Thus 2-4i < 3+8i.
-#
-sub _spaceship {
-	my ($z1, $z2, $inverted) = @_;
-	my ($re1, $im1) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
-	my ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
-	my $sgn = $inverted ? -1 : 1;
-	return $sgn * ($re1 <=> $re2) if $re1 != $re2;
-	return $sgn * ($im1 <=> $im2);
-}
-
-#
-# (_numeq)
-#
-# Computes z1 == z2.
-#
-# (Required in addition to _spaceship() because of NaNs.)
-sub _numeq {
-	my ($z1, $z2, $inverted) = @_;
-	my ($re1, $im1) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
-	my ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
-	return $re1 == $re2 && $im1 == $im2 ? 1 : 0;
-}
-
-#
-# (_negate)
-#
-# Computes -z.
-#
-sub _negate {
-	my ($z) = @_;
-	if ($z->{c_dirty}) {
-		my ($r, $t) = @{$z->_polar};
-		$t = ($t <= 0) ? $t + pi : $t - pi;
-		return (ref $z)->emake($r, $t);
-	}
-	my ($re, $im) = @{$z->_cartesian};
-	return (ref $z)->make(-$re, -$im);
-}
-
-#
-# (_conjugate)
-#
-# Compute complex's _conjugate.
-#
-sub _conjugate {
-	my ($z) = @_;
-	if ($z->{c_dirty}) {
-		my ($r, $t) = @{$z->_polar};
-		return (ref $z)->emake($r, -$t);
-	}
-	my ($re, $im) = @{$z->_cartesian};
-	return (ref $z)->make($re, -$im);
-}
-
-#
-# (abs)
-#
-# Compute or set complex's norm (rho).
-#
-sub abs {
-	my ($z, $rho) = @_ ? @_ : $_;
-	unless (ref $z) {
-	    if (@_ == 2) {
-		$_[0] = $_[1];
-	    } else {
-		return CORE::abs($z);
-	    }
-	}
-	if (defined $rho) {
-	    $z->{'polar'} = [ $rho, ${$z->_polar}[1] ];
-	    $z->{p_dirty} = 0;
-	    $z->{c_dirty} = 1;
-	    return $rho;
-	} else {
-	    return ${$z->_polar}[0];
-	}
-}
-
-sub _theta {
-    my $theta = $_[0];
-
-    if    ($$theta >   pi()) { $$theta -= pi2 }
-    elsif ($$theta <= -pi()) { $$theta += pi2 }
-}
-
-#
-# arg
-#
-# Compute or set complex's argument (theta).
-#
-sub arg {
-	my ($z, $theta) = @_;
-	return $z unless ref $z;
-	if (defined $theta) {
-	    _theta(\$theta);
-	    $z->{'polar'} = [ ${$z->_polar}[0], $theta ];
-	    $z->{p_dirty} = 0;
-	    $z->{c_dirty} = 1;
-	} else {
-	    $theta = ${$z->_polar}[1];
-	    _theta(\$theta);
-	}
-	return $theta;
-}
-
-#
-# (sqrt)
-#
-# Compute sqrt(z).
-#
-# It is quite tempting to use wantarray here so that in list context
-# sqrt() would return the two solutions.  This, however, would
-# break things like
-#
-#	print "sqrt(z) = ", sqrt($z), "\n";
-#
-# The two values would be printed side by side without no intervening
-# whitespace, quite confusing.
-# Therefore if you want the two solutions use the root().
-#
-sub sqrt {
-	my ($z) = @_ ? $_[0] : $_;
-	my ($re, $im) = ref $z ? @{$z->_cartesian} : ($z, 0);
-	return $re < 0 ? cplx(0, CORE::sqrt(-$re)) : CORE::sqrt($re)
-	    if $im == 0;
-	my ($r, $t) = @{$z->_polar};
-	return (ref $z)->emake(CORE::sqrt($r), $t/2);
-}
-
-#
-# cbrt
-#
-# Compute cbrt(z) (cubic root).
-#
-# Why are we not returning three values?  The same answer as for sqrt().
-#
-sub cbrt {
-	my ($z) = @_;
-	return $z < 0 ?
-	    -CORE::exp(CORE::log(-$z)/3) :
-		($z > 0 ? CORE::exp(CORE::log($z)/3): 0)
-	    unless ref $z;
-	my ($r, $t) = @{$z->_polar};
-	return 0 if $r == 0;
-	return (ref $z)->emake(CORE::exp(CORE::log($r)/3), $t/3);
-}
-
-#
-# _rootbad
-#
-# Die on bad root.
-#
-sub _rootbad {
-    my $mess = "Root '$_[0]' illegal, root rank must be positive integer.\n";
-
-    my @up = caller(1);
-
-    $mess .= "Died at $up[1] line $up[2].\n";
-
-    die $mess;
-}
-
-#
-# root
-#
-# Computes all nth root for z, returning an array whose size is n.
-# `n' must be a positive integer.
-#
-# The roots are given by (for k = 0..n-1):
-#
-# z^(1/n) = r^(1/n) (cos ((t+2 k pi)/n) + i sin ((t+2 k pi)/n))
-#
-sub root {
-	my ($z, $n, $k) = @_;
-	_rootbad($n) if ($n < 1 or int($n) != $n);
-	my ($r, $t) = ref $z ?
-	    @{$z->_polar} : (CORE::abs($z), $z >= 0 ? 0 : pi);
-	my $theta_inc = pi2 / $n;
-	my $rho = $r ** (1/$n);
-	my $cartesian = ref $z && $z->{c_dirty} == 0;
-	if (@_ == 2) {
-	    my @root;
-	    for (my $i = 0, my $theta = $t / $n;
-		 $i < $n;
-		 $i++, $theta += $theta_inc) {
-		my $w = cplxe($rho, $theta);
-		# Yes, $cartesian is loop invariant.
-		push @root, $cartesian ? cplx(@{$w->_cartesian}) : $w;
-	    }
-	    return @root;
-	} elsif (@_ == 3) {
-	    my $w = cplxe($rho, $t / $n + $k * $theta_inc);
-	    return $cartesian ? cplx(@{$w->_cartesian}) : $w;
-	}
-}
-
-#
-# Re
-#
-# Return or set Re(z).
-#
-sub Re {
-	my ($z, $Re) = @_;
-	return $z unless ref $z;
-	if (defined $Re) {
-	    $z->{'cartesian'} = [ $Re, ${$z->_cartesian}[1] ];
-	    $z->{c_dirty} = 0;
-	    $z->{p_dirty} = 1;
-	} else {
-	    return ${$z->_cartesian}[0];
-	}
-}
-
-#
-# Im
-#
-# Return or set Im(z).
-#
-sub Im {
-	my ($z, $Im) = @_;
-	return 0 unless ref $z;
-	if (defined $Im) {
-	    $z->{'cartesian'} = [ ${$z->_cartesian}[0], $Im ];
-	    $z->{c_dirty} = 0;
-	    $z->{p_dirty} = 1;
-	} else {
-	    return ${$z->_cartesian}[1];
-	}
-}
-
-#
-# rho
-#
-# Return or set rho(w).
-#
-sub rho {
-    Math::Complex::abs(@_);
-}
-
-#
-# theta
-#
-# Return or set theta(w).
-#
-sub theta {
-    Math::Complex::arg(@_);
-}
-
-#
-# (exp)
-#
-# Computes exp(z).
-#
-sub exp {
-    my ($z) = @_ ? @_ : $_;
-    return CORE::exp($z) unless ref $z;
-    my ($x, $y) = @{$z->_cartesian};
-    return (ref $z)->emake(CORE::exp($x), $y);
-}
-
-#
-# _logofzero
-#
-# Die on logarithm of zero.
-#
-sub _logofzero {
-    my $mess = "$_[0]: Logarithm of zero.\n";
-
-    if (defined $_[1]) {
-	$mess .= "(Because in the definition of $_[0], the argument ";
-	$mess .= "$_[1] " unless ($_[1] eq '0');
-	$mess .= "is 0)\n";
-    }
-
-    my @up = caller(1);
-
-    $mess .= "Died at $up[1] line $up[2].\n";
-
-    die $mess;
-}
-
-#
-# (log)
-#
-# Compute log(z).
-#
-sub log {
-	my ($z) = @_ ? @_ : $_;
-	unless (ref $z) {
-	    _logofzero("log") if $z == 0;
-	    return $z > 0 ? CORE::log($z) : cplx(CORE::log(-$z), pi);
-	}
-	my ($r, $t) = @{$z->_polar};
-	_logofzero("log") if $r == 0;
-	if    ($t >   pi()) { $t -= pi2 }
-	elsif ($t <= -pi()) { $t += pi2 }
-	return (ref $z)->make(CORE::log($r), $t);
-}
-
-#
-# ln
-#
-# Alias for log().
-#
-sub ln { Math::Complex::log(@_) }
-
-#
-# log10
-#
-# Compute log10(z).
-#
-
-sub log10 {
-	return Math::Complex::log($_[0]) * _uplog10;
-}
-
-#
-# logn
-#
-# Compute logn(z,n) = log(z) / log(n)
-#
-sub logn {
-	my ($z, $n) = @_;
-	$z = cplx($z, 0) unless ref $z;
-	my $logn = $LOGN{$n};
-	$logn = $LOGN{$n} = CORE::log($n) unless defined $logn;	# Cache log(n)
-	return &log($z) / $logn;
-}
-
-#
-# (cos)
-#
-# Compute cos(z) = (exp(iz) + exp(-iz))/2.
-#
-sub cos {
-	my ($z) = @_ ? @_ : $_;
-	return CORE::cos($z) unless ref $z;
-	my ($x, $y) = @{$z->_cartesian};
-	my $ey = CORE::exp($y);
-	my $sx = CORE::sin($x);
-	my $cx = CORE::cos($x);
-	my $ey_1 = $ey ? 1 / $ey : Inf();
-	return (ref $z)->make($cx * ($ey + $ey_1)/2,
-			      $sx * ($ey_1 - $ey)/2);
-}
-
-#
-# (sin)
-#
-# Compute sin(z) = (exp(iz) - exp(-iz))/2.
-#
-sub sin {
-	my ($z) = @_ ? @_ : $_;
-	return CORE::sin($z) unless ref $z;
-	my ($x, $y) = @{$z->_cartesian};
-	my $ey = CORE::exp($y);
-	my $sx = CORE::sin($x);
-	my $cx = CORE::cos($x);
-	my $ey_1 = $ey ? 1 / $ey : Inf();
-	return (ref $z)->make($sx * ($ey + $ey_1)/2,
-			      $cx * ($ey - $ey_1)/2);
-}
-
-#
-# tan
-#
-# Compute tan(z) = sin(z) / cos(z).
-#
-sub tan {
-	my ($z) = @_;
-	my $cz = &cos($z);
-	_divbyzero "tan($z)", "cos($z)" if $cz == 0;
-	return &sin($z) / $cz;
-}
-
-#
-# sec
-#
-# Computes the secant sec(z) = 1 / cos(z).
-#
-sub sec {
-	my ($z) = @_;
-	my $cz = &cos($z);
-	_divbyzero "sec($z)", "cos($z)" if ($cz == 0);
-	return 1 / $cz;
-}
-
-#
-# csc
-#
-# Computes the cosecant csc(z) = 1 / sin(z).
-#
-sub csc {
-	my ($z) = @_;
-	my $sz = &sin($z);
-	_divbyzero "csc($z)", "sin($z)" if ($sz == 0);
-	return 1 / $sz;
-}
-
-#
-# cosec
-#
-# Alias for csc().
-#
-sub cosec { Math::Complex::csc(@_) }
-
-#
-# cot
-#
-# Computes cot(z) = cos(z) / sin(z).
-#
-sub cot {
-	my ($z) = @_;
-	my $sz = &sin($z);
-	_divbyzero "cot($z)", "sin($z)" if ($sz == 0);
-	return &cos($z) / $sz;
-}
-
-#
-# cotan
-#
-# Alias for cot().
-#
-sub cotan { Math::Complex::cot(@_) }
-
-#
-# acos
-#
-# Computes the arc cosine acos(z) = -i log(z + sqrt(z*z-1)).
-#
-sub acos {
-	my $z = $_[0];
-	return CORE::atan2(CORE::sqrt(1-$z*$z), $z)
-	    if (! ref $z) && CORE::abs($z) <= 1;
-	$z = cplx($z, 0) unless ref $z;
-	my ($x, $y) = @{$z->_cartesian};
-	return 0 if $x == 1 && $y == 0;
-	my $t1 = CORE::sqrt(($x+1)*($x+1) + $y*$y);
-	my $t2 = CORE::sqrt(($x-1)*($x-1) + $y*$y);
-	my $alpha = ($t1 + $t2)/2;
-	my $beta  = ($t1 - $t2)/2;
-	$alpha = 1 if $alpha < 1;
-	if    ($beta >  1) { $beta =  1 }
-	elsif ($beta < -1) { $beta = -1 }
-	my $u = CORE::atan2(CORE::sqrt(1-$beta*$beta), $beta);
-	my $v = CORE::log($alpha + CORE::sqrt($alpha*$alpha-1));
-	$v = -$v if $y > 0 || ($y == 0 && $x < -1);
-	return (ref $z)->make($u, $v);
-}
-
-#
-# asin
-#
-# Computes the arc sine asin(z) = -i log(iz + sqrt(1-z*z)).
-#
-sub asin {
-	my $z = $_[0];
-	return CORE::atan2($z, CORE::sqrt(1-$z*$z))
-	    if (! ref $z) && CORE::abs($z) <= 1;
-	$z = cplx($z, 0) unless ref $z;
-	my ($x, $y) = @{$z->_cartesian};
-	return 0 if $x == 0 && $y == 0;
-	my $t1 = CORE::sqrt(($x+1)*($x+1) + $y*$y);
-	my $t2 = CORE::sqrt(($x-1)*($x-1) + $y*$y);
-	my $alpha = ($t1 + $t2)/2;
-	my $beta  = ($t1 - $t2)/2;
-	$alpha = 1 if $alpha < 1;
-	if    ($beta >  1) { $beta =  1 }
-	elsif ($beta < -1) { $beta = -1 }
-	my $u =  CORE::atan2($beta, CORE::sqrt(1-$beta*$beta));
-	my $v = -CORE::log($alpha + CORE::sqrt($alpha*$alpha-1));
-	$v = -$v if $y > 0 || ($y == 0 && $x < -1);
-	return (ref $z)->make($u, $v);
-}
-
-#
-# atan
-#
-# Computes the arc tangent atan(z) = i/2 log((i+z) / (i-z)).
-#
-sub atan {
-	my ($z) = @_;
-	return CORE::atan2($z, 1) unless ref $z;
-	my ($x, $y) = ref $z ? @{$z->_cartesian} : ($z, 0);
-	return 0 if $x == 0 && $y == 0;
-	_divbyzero "atan(i)"  if ( $z == i);
-	_logofzero "atan(-i)" if (-$z == i); # -i is a bad file test...
-	my $log = &log((i + $z) / (i - $z));
-	return _ip2 * $log;
-}
-
-#
-# asec
-#
-# Computes the arc secant asec(z) = acos(1 / z).
-#
-sub asec {
-	my ($z) = @_;
-	_divbyzero "asec($z)", $z if ($z == 0);
-	return acos(1 / $z);
-}
-
-#
-# acsc
-#
-# Computes the arc cosecant acsc(z) = asin(1 / z).
-#
-sub acsc {
-	my ($z) = @_;
-	_divbyzero "acsc($z)", $z if ($z == 0);
-	return asin(1 / $z);
-}
-
-#
-# acosec
-#
-# Alias for acsc().
-#
-sub acosec { Math::Complex::acsc(@_) }
-
-#
-# acot
-#
-# Computes the arc cotangent acot(z) = atan(1 / z)
-#
-sub acot {
-	my ($z) = @_;
-	_divbyzero "acot(0)"  if $z == 0;
-	return ($z >= 0) ? CORE::atan2(1, $z) : CORE::atan2(-1, -$z)
-	    unless ref $z;
-	_divbyzero "acot(i)"  if ($z - i == 0);
-	_logofzero "acot(-i)" if ($z + i == 0);
-	return atan(1 / $z);
-}
-
-#
-# acotan
-#
-# Alias for acot().
-#
-sub acotan { Math::Complex::acot(@_) }
-
-#
-# cosh
-#
-# Computes the hyperbolic cosine cosh(z) = (exp(z) + exp(-z))/2.
-#
-sub cosh {
-	my ($z) = @_;
-	my $ex;
-	unless (ref $z) {
-	    $ex = CORE::exp($z);
-            return $ex ? ($ex == $ExpInf ? Inf() : ($ex + 1/$ex)/2) : Inf();
-	}
-	my ($x, $y) = @{$z->_cartesian};
-	$ex = CORE::exp($x);
-	my $ex_1 = $ex ? 1 / $ex : Inf();
-	return (ref $z)->make(CORE::cos($y) * ($ex + $ex_1)/2,
-			      CORE::sin($y) * ($ex - $ex_1)/2);
-}
-
-#
-# sinh
-#
-# Computes the hyperbolic sine sinh(z) = (exp(z) - exp(-z))/2.
-#
-sub sinh {
-	my ($z) = @_;
-	my $ex;
-	unless (ref $z) {
-	    return 0 if $z == 0;
-	    $ex = CORE::exp($z);
-            return $ex ? ($ex == $ExpInf ? Inf() : ($ex - 1/$ex)/2) : -Inf();
-	}
-	my ($x, $y) = @{$z->_cartesian};
-	my $cy = CORE::cos($y);
-	my $sy = CORE::sin($y);
-	$ex = CORE::exp($x);
-	my $ex_1 = $ex ? 1 / $ex : Inf();
-	return (ref $z)->make(CORE::cos($y) * ($ex - $ex_1)/2,
-			      CORE::sin($y) * ($ex + $ex_1)/2);
-}
-
-#
-# tanh
-#
-# Computes the hyperbolic tangent tanh(z) = sinh(z) / cosh(z).
-#
-sub tanh {
-	my ($z) = @_;
-	my $cz = cosh($z);
-	_divbyzero "tanh($z)", "cosh($z)" if ($cz == 0);
-	my $sz = sinh($z);
-	return  1 if $cz ==  $sz;
-	return -1 if $cz == -$sz;
-	return $sz / $cz;
-}
-
-#
-# sech
-#
-# Computes the hyperbolic secant sech(z) = 1 / cosh(z).
-#
-sub sech {
-	my ($z) = @_;
-	my $cz = cosh($z);
-	_divbyzero "sech($z)", "cosh($z)" if ($cz == 0);
-	return 1 / $cz;
-}
-
-#
-# csch
-#
-# Computes the hyperbolic cosecant csch(z) = 1 / sinh(z).
-#
-sub csch {
-	my ($z) = @_;
-	my $sz = sinh($z);
-	_divbyzero "csch($z)", "sinh($z)" if ($sz == 0);
-	return 1 / $sz;
-}
-
-#
-# cosech
-#
-# Alias for csch().
-#
-sub cosech { Math::Complex::csch(@_) }
-
-#
-# coth
-#
-# Computes the hyperbolic cotangent coth(z) = cosh(z) / sinh(z).
-#
-sub coth {
-	my ($z) = @_;
-	my $sz = sinh($z);
-	_divbyzero "coth($z)", "sinh($z)" if $sz == 0;
-	my $cz = cosh($z);
-	return  1 if $cz ==  $sz;
-	return -1 if $cz == -$sz;
-	return $cz / $sz;
-}
-
-#
-# cotanh
-#
-# Alias for coth().
-#
-sub cotanh { Math::Complex::coth(@_) }
-
-#
-# acosh
-#
-# Computes the area/inverse hyperbolic cosine acosh(z) = log(z + sqrt(z*z-1)).
-#
-sub acosh {
-	my ($z) = @_;
-	unless (ref $z) {
-	    $z = cplx($z, 0);
-	}
-	my ($re, $im) = @{$z->_cartesian};
-	if ($im == 0) {
-	    return CORE::log($re + CORE::sqrt($re*$re - 1))
-		if $re >= 1;
-	    return cplx(0, CORE::atan2(CORE::sqrt(1 - $re*$re), $re))
-		if CORE::abs($re) < 1;
-	}
-	my $t = &sqrt($z * $z - 1) + $z;
-	# Try Taylor if looking bad (this usually means that
-	# $z was large negative, therefore the sqrt is really
-	# close to abs(z), summing that with z...)
-	$t = 1/(2 * $z) - 1/(8 * $z**3) + 1/(16 * $z**5) - 5/(128 * $z**7)
-	    if $t == 0;
-	my $u = &log($t);
-	$u->Im(-$u->Im) if $re < 0 && $im == 0;
-	return $re < 0 ? -$u : $u;
-}
-
-#
-# asinh
-#
-# Computes the area/inverse hyperbolic sine asinh(z) = log(z + sqrt(z*z+1))
-#
-sub asinh {
-	my ($z) = @_;
-	unless (ref $z) {
-	    my $t = $z + CORE::sqrt($z*$z + 1);
-	    return CORE::log($t) if $t;
-	}
-	my $t = &sqrt($z * $z + 1) + $z;
-	# Try Taylor if looking bad (this usually means that
-	# $z was large negative, therefore the sqrt is really
-	# close to abs(z), summing that with z...)
-	$t = 1/(2 * $z) - 1/(8 * $z**3) + 1/(16 * $z**5) - 5/(128 * $z**7)
-	    if $t == 0;
-	return &log($t);
-}
-
-#
-# atanh
-#
-# Computes the area/inverse hyperbolic tangent atanh(z) = 1/2 log((1+z) / (1-z)).
-#
-sub atanh {
-	my ($z) = @_;
-	unless (ref $z) {
-	    return CORE::log((1 + $z)/(1 - $z))/2 if CORE::abs($z) < 1;
-	    $z = cplx($z, 0);
-	}
-	_divbyzero 'atanh(1)',  "1 - $z" if (1 - $z == 0);
-	_logofzero 'atanh(-1)'           if (1 + $z == 0);
-	return 0.5 * &log((1 + $z) / (1 - $z));
-}
-
-#
-# asech
-#
-# Computes the area/inverse hyperbolic secant asech(z) = acosh(1 / z).
-#
-sub asech {
-	my ($z) = @_;
-	_divbyzero 'asech(0)', "$z" if ($z == 0);
-	return acosh(1 / $z);
-}
-
-#
-# acsch
-#
-# Computes the area/inverse hyperbolic cosecant acsch(z) = asinh(1 / z).
-#
-sub acsch {
-	my ($z) = @_;
-	_divbyzero 'acsch(0)', $z if ($z == 0);
-	return asinh(1 / $z);
-}
-
-#
-# acosech
-#
-# Alias for acosh().
-#
-sub acosech { Math::Complex::acsch(@_) }
-
-#
-# acoth
-#
-# Computes the area/inverse hyperbolic cotangent acoth(z) = 1/2 log((1+z) / (z-1)).
-#
-sub acoth {
-	my ($z) = @_;
-	_divbyzero 'acoth(0)'            if ($z == 0);
-	unless (ref $z) {
-	    return CORE::log(($z + 1)/($z - 1))/2 if CORE::abs($z) > 1;
-	    $z = cplx($z, 0);
-	}
-	_divbyzero 'acoth(1)',  "$z - 1" if ($z - 1 == 0);
-	_logofzero 'acoth(-1)', "1 + $z" if (1 + $z == 0);
-	return &log((1 + $z) / ($z - 1)) / 2;
-}
-
-#
-# acotanh
-#
-# Alias for acot().
-#
-sub acotanh { Math::Complex::acoth(@_) }
-
-#
-# (atan2)
-#
-# Compute atan(z1/z2), minding the right quadrant.
-#
-sub atan2 {
-	my ($z1, $z2, $inverted) = @_;
-	my ($re1, $im1, $re2, $im2);
-	if ($inverted) {
-	    ($re1, $im1) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
-	    ($re2, $im2) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
-	} else {
-	    ($re1, $im1) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
-	    ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
-	}
-	if ($im1 || $im2) {
-	    # In MATLAB the imaginary parts are ignored.
-	    # warn "atan2: Imaginary parts ignored";
-	    # http://documents.wolfram.com/mathematica/functions/ArcTan
-	    # NOTE: Mathematica ArcTan[x,y] while atan2(y,x)
-	    my $s = $z1 * $z1 + $z2 * $z2;
-	    _divbyzero("atan2") if $s == 0;
-	    my $i = &i;
-	    my $r = $z2 + $z1 * $i;
-	    return -$i * &log($r / &sqrt( $s ));
-	}
-	return CORE::atan2($re1, $re2);
-}
-
-#
-# display_format
-# ->display_format
-#
-# Set (get if no argument) the display format for all complex numbers that
-# don't happen to have overridden it via ->display_format
-#
-# When called as an object method, this actually sets the display format for
-# the current object.
-#
-# Valid object formats are 'c' and 'p' for cartesian and polar. The first
-# letter is used actually, so the type can be fully spelled out for clarity.
-#
-sub display_format {
-	my $self  = shift;
-	my %display_format = %DISPLAY_FORMAT;
-
-	if (ref $self) {			# Called as an object method
-	    if (exists $self->{display_format}) {
-		my %obj = %{$self->{display_format}};
-		@display_format{keys %obj} = values %obj;
-	    }
-	}
-	if (@_ == 1) {
-	    $display_format{style} = shift;
-	} else {
-	    my %new = @_;
-	    @display_format{keys %new} = values %new;
-	}
-
-	if (ref $self) { # Called as an object method
-	    $self->{display_format} = { %display_format };
-	    return
-		wantarray ?
-		    %{$self->{display_format}} :
-		    $self->{display_format}->{style};
-	}
-
-        # Called as a class method
-	%DISPLAY_FORMAT = %display_format;
-	return
-	    wantarray ?
-		%DISPLAY_FORMAT :
-		    $DISPLAY_FORMAT{style};
-}
-
-#
-# (_stringify)
-#
-# Show nicely formatted complex number under its cartesian or polar form,
-# depending on the current display format:
-#
-# . If a specific display format has been recorded for this object, use it.
-# . Otherwise, use the generic current default for all complex numbers,
-#   which is a package global variable.
-#
-sub _stringify {
-	my ($z) = shift;
-
-	my $style = $z->display_format;
-
-	$style = $DISPLAY_FORMAT{style} unless defined $style;
-
-	return $z->_stringify_polar if $style =~ /^p/i;
-	return $z->_stringify_cartesian;
-}
-
-#
-# ->_stringify_cartesian
-#
-# Stringify as a cartesian representation 'a+bi'.
-#
-sub _stringify_cartesian {
-	my $z  = shift;
-	my ($x, $y) = @{$z->_cartesian};
-	my ($re, $im);
-
-	my %format = $z->display_format;
-	my $format = $format{format};
-
-	if ($x) {
-	    if ($x =~ /^NaN[QS]?$/i) {
-		$re = $x;
-	    } else {
-		if ($x =~ /^-?\Q$Inf\E$/oi) {
-		    $re = $x;
-		} else {
-		    $re = defined $format ? sprintf($format, $x) : $x;
-		}
-	    }
-	} else {
-	    undef $re;
-	}
-
-	if ($y) {
-	    if ($y =~ /^(NaN[QS]?)$/i) {
-		$im = $y;
-	    } else {
-		if ($y =~ /^-?\Q$Inf\E$/oi) {
-		    $im = $y;
-		} else {
-		    $im =
-			defined $format ?
-			    sprintf($format, $y) :
-			    ($y == 1 ? "" : ($y == -1 ? "-" : $y));
-		}
-	    }
-	    $im .= "i";
-	} else {
-	    undef $im;
-	}
-
-	my $str = $re;
-
-	if (defined $im) {
-	    if ($y < 0) {
-		$str .= $im;
-	    } elsif ($y > 0 || $im =~ /^NaN[QS]?i$/i)  {
-		$str .= "+" if defined $re;
-		$str .= $im;
-	    }
-	} elsif (!defined $re) {
-	    $str = "0";
-	}
-
-	return $str;
-}
-
-
-#
-# ->_stringify_polar
-#
-# Stringify as a polar representation '[r,t]'.
-#
-sub _stringify_polar {
-	my $z  = shift;
-	my ($r, $t) = @{$z->_polar};
-	my $theta;
-
-	my %format = $z->display_format;
-	my $format = $format{format};
-
-	if ($t =~ /^NaN[QS]?$/i || $t =~ /^-?\Q$Inf\E$/oi) {
-	    $theta = $t; 
-	} elsif ($t == pi) {
-	    $theta = "pi";
-	} elsif ($r == 0 || $t == 0) {
-	    $theta = defined $format ? sprintf($format, $t) : $t;
-	}
-
-	return "[$r,$theta]" if defined $theta;
-
-	#
-	# Try to identify pi/n and friends.
-	#
-
-	$t -= int(CORE::abs($t) / pi2) * pi2;
-
-	if ($format{polar_pretty_print} && $t) {
-	    my ($a, $b);
-	    for $a (2..9) {
-		$b = $t * $a / pi;
-		if ($b =~ /^-?\d+$/) {
-		    $b = $b < 0 ? "-" : "" if CORE::abs($b) == 1;
-		    $theta = "${b}pi/$a";
-		    last;
-		}
-	    }
-	}
-
-        if (defined $format) {
-	    $r     = sprintf($format, $r);
-	    $theta = sprintf($format, $t) unless defined $theta;
-	} else {
-	    $theta = $t unless defined $theta;
-	}
-
-	return "[$r,$theta]";
-}
-
-sub Inf {
-    return $Inf;
-}
-
-1;
-__END__
-
-=pod
-
-=head1 NAME
-
-Math::Complex - complex numbers and associated mathematical functions
-
-=head1 SYNOPSIS
-
-	use Math::Complex;
-
-	$z = Math::Complex->make(5, 6);
-	$t = 4 - 3*i + $z;
-	$j = cplxe(1, 2*pi/3);
-
-=head1 DESCRIPTION
-
-This package lets you create and manipulate complex numbers. By default,
-I<Perl> limits itself to real numbers, but an extra C<use> statement brings
-full complex support, along with a full set of mathematical functions
-typically associated with and/or extended to complex numbers.
-
-If you wonder what complex numbers are, they were invented to be able to solve
-the following equation:
-
-	x*x = -1
-
-and by definition, the solution is noted I<i> (engineers use I<j> instead since
-I<i> usually denotes an intensity, but the name does not matter). The number
-I<i> is a pure I<imaginary> number.
-
-The arithmetics with pure imaginary numbers works just like you would expect
-it with real numbers... you just have to remember that
-
-	i*i = -1
-
-so you have:
-
-	5i + 7i = i * (5 + 7) = 12i
-	4i - 3i = i * (4 - 3) = i
-	4i * 2i = -8
-	6i / 2i = 3
-	1 / i = -i
-
-Complex numbers are numbers that have both a real part and an imaginary
-part, and are usually noted:
-
-	a + bi
-
-where C<a> is the I<real> part and C<b> is the I<imaginary> part. The
-arithmetic with complex numbers is straightforward. You have to
-keep track of the real and the imaginary parts, but otherwise the
-rules used for real numbers just apply:
-
-	(4 + 3i) + (5 - 2i) = (4 + 5) + i(3 - 2) = 9 + i
-	(2 + i) * (4 - i) = 2*4 + 4i -2i -i*i = 8 + 2i + 1 = 9 + 2i
-
-A graphical representation of complex numbers is possible in a plane
-(also called the I<complex plane>, but it's really a 2D plane).
-The number
-
-	z = a + bi
-
-is the point whose coordinates are (a, b). Actually, it would
-be the vector originating from (0, 0) to (a, b). It follows that the addition
-of two complex numbers is a vectorial addition.
-
-Since there is a bijection between a point in the 2D plane and a complex
-number (i.e. the mapping is unique and reciprocal), a complex number
-can also be uniquely identified with polar coordinates:
-
-	[rho, theta]
-
-where C<rho> is the distance to the origin, and C<theta> the angle between
-the vector and the I<x> axis. There is a notation for this using the
-exponential form, which is:
-
-	rho * exp(i * theta)
-
-where I<i> is the famous imaginary number introduced above. Conversion
-between this form and the cartesian form C<a + bi> is immediate:
-
-	a = rho * cos(theta)
-	b = rho * sin(theta)
-
-which is also expressed by this formula:
-
-	z = rho * exp(i * theta) = rho * (cos theta + i * sin theta)
-
-In other words, it's the projection of the vector onto the I<x> and I<y>
-axes. Mathematicians call I<rho> the I<norm> or I<modulus> and I<theta>
-the I<argument> of the complex number. The I<norm> of C<z> is
-marked here as C<abs(z)>.
-
-The polar notation (also known as the trigonometric representation) is
-much more handy for performing multiplications and divisions of
-complex numbers, whilst the cartesian notation is better suited for
-additions and subtractions. Real numbers are on the I<x> axis, and
-therefore I<y> or I<theta> is zero or I<pi>.
-
-All the common operations that can be performed on a real number have
-been defined to work on complex numbers as well, and are merely
-I<extensions> of the operations defined on real numbers. This means
-they keep their natural meaning when there is no imaginary part, provided
-the number is within their definition set.
-
-For instance, the C<sqrt> routine which computes the square root of
-its argument is only defined for non-negative real numbers and yields a
-non-negative real number (it is an application from B<R+> to B<R+>).
-If we allow it to return a complex number, then it can be extended to
-negative real numbers to become an application from B<R> to B<C> (the
-set of complex numbers):
-
-	sqrt(x) = x >= 0 ? sqrt(x) : sqrt(-x)*i
-
-It can also be extended to be an application from B<C> to B<C>,
-whilst its restriction to B<R> behaves as defined above by using
-the following definition:
-
-	sqrt(z = [r,t]) = sqrt(r) * exp(i * t/2)
-
-Indeed, a negative real number can be noted C<[x,pi]> (the modulus
-I<x> is always non-negative, so C<[x,pi]> is really C<-x>, a negative
-number) and the above definition states that
-
-	sqrt([x,pi]) = sqrt(x) * exp(i*pi/2) = [sqrt(x),pi/2] = sqrt(x)*i
-
-which is exactly what we had defined for negative real numbers above.
-The C<sqrt> returns only one of the solutions: if you want the both,
-use the C<root> function.
-
-All the common mathematical functions defined on real numbers that
-are extended to complex numbers share that same property of working
-I<as usual> when the imaginary part is zero (otherwise, it would not
-be called an extension, would it?).
-
-A I<new> operation possible on a complex number that is
-the identity for real numbers is called the I<conjugate>, and is noted
-with a horizontal bar above the number, or C<~z> here.
-
-	 z = a + bi
-	~z = a - bi
-
-Simple... Now look:
-
-	z * ~z = (a + bi) * (a - bi) = a*a + b*b
-
-We saw that the norm of C<z> was noted C<abs(z)> and was defined as the
-distance to the origin, also known as:
-
-	rho = abs(z) = sqrt(a*a + b*b)
-
-so
-
-	z * ~z = abs(z) ** 2
-
-If z is a pure real number (i.e. C<b == 0>), then the above yields:
-
-	a * a = abs(a) ** 2
-
-which is true (C<abs> has the regular meaning for real number, i.e. stands
-for the absolute value). This example explains why the norm of C<z> is
-noted C<abs(z)>: it extends the C<abs> function to complex numbers, yet
-is the regular C<abs> we know when the complex number actually has no
-imaginary part... This justifies I<a posteriori> our use of the C<abs>
-notation for the norm.
-
-=head1 OPERATIONS
-
-Given the following notations:
-
-	z1 = a + bi = r1 * exp(i * t1)
-	z2 = c + di = r2 * exp(i * t2)
-	z = <any complex or real number>
-
-the following (overloaded) operations are supported on complex numbers:
-
-	z1 + z2 = (a + c) + i(b + d)
-	z1 - z2 = (a - c) + i(b - d)
-	z1 * z2 = (r1 * r2) * exp(i * (t1 + t2))
-	z1 / z2 = (r1 / r2) * exp(i * (t1 - t2))
-	z1 ** z2 = exp(z2 * log z1)
-	~z = a - bi
-	abs(z) = r1 = sqrt(a*a + b*b)
-	sqrt(z) = sqrt(r1) * exp(i * t/2)
-	exp(z) = exp(a) * exp(i * b)
-	log(z) = log(r1) + i*t
-	sin(z) = 1/2i (exp(i * z1) - exp(-i * z))
-	cos(z) = 1/2 (exp(i * z1) + exp(-i * z))
-	atan2(y, x) = atan(y / x) # Minding the right quadrant, note the order.
-
-The definition used for complex arguments of atan2() is
-
-       -i log((x + iy)/sqrt(x*x+y*y))
-
-Note that atan2(0, 0) is not well-defined.
-
-The following extra operations are supported on both real and complex
-numbers:
-
-	Re(z) = a
-	Im(z) = b
-	arg(z) = t
-	abs(z) = r
-
-	cbrt(z) = z ** (1/3)
-	log10(z) = log(z) / log(10)
-	logn(z, n) = log(z) / log(n)
-
-	tan(z) = sin(z) / cos(z)
-
-	csc(z) = 1 / sin(z)
-	sec(z) = 1 / cos(z)
-	cot(z) = 1 / tan(z)
-
-	asin(z) = -i * log(i*z + sqrt(1-z*z))
-	acos(z) = -i * log(z + i*sqrt(1-z*z))
-	atan(z) = i/2 * log((i+z) / (i-z))
-
-	acsc(z) = asin(1 / z)
-	asec(z) = acos(1 / z)
-	acot(z) = atan(1 / z) = -i/2 * log((i+z) / (z-i))
-
-	sinh(z) = 1/2 (exp(z) - exp(-z))
-	cosh(z) = 1/2 (exp(z) + exp(-z))
-	tanh(z) = sinh(z) / cosh(z) = (exp(z) - exp(-z)) / (exp(z) + exp(-z))
-
-	csch(z) = 1 / sinh(z)
-	sech(z) = 1 / cosh(z)
-	coth(z) = 1 / tanh(z)
-
-	asinh(z) = log(z + sqrt(z*z+1))
-	acosh(z) = log(z + sqrt(z*z-1))
-	atanh(z) = 1/2 * log((1+z) / (1-z))
-
-	acsch(z) = asinh(1 / z)
-	asech(z) = acosh(1 / z)
-	acoth(z) = atanh(1 / z) = 1/2 * log((1+z) / (z-1))
-
-I<arg>, I<abs>, I<log>, I<csc>, I<cot>, I<acsc>, I<acot>, I<csch>,
-I<coth>, I<acosech>, I<acotanh>, have aliases I<rho>, I<theta>, I<ln>,
-I<cosec>, I<cotan>, I<acosec>, I<acotan>, I<cosech>, I<cotanh>,
-I<acosech>, I<acotanh>, respectively.  C<Re>, C<Im>, C<arg>, C<abs>,
-C<rho>, and C<theta> can be used also as mutators.  The C<cbrt>
-returns only one of the solutions: if you want all three, use the
-C<root> function.
-
-The I<root> function is available to compute all the I<n>
-roots of some complex, where I<n> is a strictly positive integer.
-There are exactly I<n> such roots, returned as a list. Getting the
-number mathematicians call C<j> such that:
-
-	1 + j + j*j = 0;
-
-is a simple matter of writing:
-
-	$j = ((root(1, 3))[1];
-
-The I<k>th root for C<z = [r,t]> is given by:
-
-	(root(z, n))[k] = r**(1/n) * exp(i * (t + 2*k*pi)/n)
-
-You can return the I<k>th root directly by C<root(z, n, k)>,
-indexing starting from I<zero> and ending at I<n - 1>.
-
-The I<spaceship> numeric comparison operator, E<lt>=E<gt>, is also
-defined. In order to ensure its restriction to real numbers is conform
-to what you would expect, the comparison is run on the real part of
-the complex number first, and imaginary parts are compared only when
-the real parts match.
-
-=head1 CREATION
-
-To create a complex number, use either:
-
-	$z = Math::Complex->make(3, 4);
-	$z = cplx(3, 4);
-
-if you know the cartesian form of the number, or
-
-	$z = 3 + 4*i;
-
-if you like. To create a number using the polar form, use either:
-
-	$z = Math::Complex->emake(5, pi/3);
-	$x = cplxe(5, pi/3);
-
-instead. The first argument is the modulus, the second is the angle
-(in radians, the full circle is 2*pi).  (Mnemonic: C<e> is used as a
-notation for complex numbers in the polar form).
-
-It is possible to write:
-
-	$x = cplxe(-3, pi/4);
-
-but that will be silently converted into C<[3,-3pi/4]>, since the
-modulus must be non-negative (it represents the distance to the origin
-in the complex plane).
-
-It is also possible to have a complex number as either argument of the
-C<make>, C<emake>, C<cplx>, and C<cplxe>: the appropriate component of
-the argument will be used.
-
-	$z1 = cplx(-2,  1);
-	$z2 = cplx($z1, 4);
-
-The C<new>, C<make>, C<emake>, C<cplx>, and C<cplxe> will also
-understand a single (string) argument of the forms
-
-    	2-3i
-    	-3i
-	[2,3]
-	[2,-3pi/4]
-	[2]
-
-in which case the appropriate cartesian and exponential components
-will be parsed from the string and used to create new complex numbers.
-The imaginary component and the theta, respectively, will default to zero.
-
-The C<new>, C<make>, C<emake>, C<cplx>, and C<cplxe> will also
-understand the case of no arguments: this means plain zero or (0, 0).
-
-=head1 DISPLAYING
-
-When printed, a complex number is usually shown under its cartesian
-style I<a+bi>, but there are legitimate cases where the polar style
-I<[r,t]> is more appropriate.  The process of converting the complex
-number into a string that can be displayed is known as I<stringification>.
-
-By calling the class method C<Math::Complex::display_format> and
-supplying either C<"polar"> or C<"cartesian"> as an argument, you
-override the default display style, which is C<"cartesian">. Not
-supplying any argument returns the current settings.
-
-This default can be overridden on a per-number basis by calling the
-C<display_format> method instead. As before, not supplying any argument
-returns the current display style for this number. Otherwise whatever you
-specify will be the new display style for I<this> particular number.
-
-For instance:
-
-	use Math::Complex;
-
-	Math::Complex::display_format('polar');
-	$j = (root(1, 3))[1];
-	print "j = $j\n";		# Prints "j = [1,2pi/3]"
-	$j->display_format('cartesian');
-	print "j = $j\n";		# Prints "j = -0.5+0.866025403784439i"
-
-The polar style attempts to emphasize arguments like I<k*pi/n>
-(where I<n> is a positive integer and I<k> an integer within [-9, +9]),
-this is called I<polar pretty-printing>.
-
-For the reverse of stringifying, see the C<make> and C<emake>.
-
-=head2 CHANGED IN PERL 5.6
-
-The C<display_format> class method and the corresponding
-C<display_format> object method can now be called using
-a parameter hash instead of just a one parameter.
-
-The old display format style, which can have values C<"cartesian"> or
-C<"polar">, can be changed using the C<"style"> parameter.
-
-	$j->display_format(style => "polar");
-
-The one parameter calling convention also still works.
-
-	$j->display_format("polar");
-
-There are two new display parameters.
-
-The first one is C<"format">, which is a sprintf()-style format string
-to be used for both numeric parts of the complex number(s).  The is
-somewhat system-dependent but most often it corresponds to C<"%.15g">.
-You can revert to the default by setting the C<format> to C<undef>.
-
-	# the $j from the above example
-
-	$j->display_format('format' => '%.5f');
-	print "j = $j\n";		# Prints "j = -0.50000+0.86603i"
-	$j->display_format('format' => undef);
-	print "j = $j\n";		# Prints "j = -0.5+0.86603i"
-
-Notice that this affects also the return values of the
-C<display_format> methods: in list context the whole parameter hash
-will be returned, as opposed to only the style parameter value.
-This is a potential incompatibility with earlier versions if you
-have been calling the C<display_format> method in list context.
-
-The second new display parameter is C<"polar_pretty_print">, which can
-be set to true or false, the default being true.  See the previous
-section for what this means.
-
-=head1 USAGE
-
-Thanks to overloading, the handling of arithmetics with complex numbers
-is simple and almost transparent.
-
-Here are some examples:
-
-	use Math::Complex;
-
-	$j = cplxe(1, 2*pi/3);	# $j ** 3 == 1
-	print "j = $j, j**3 = ", $j ** 3, "\n";
-	print "1 + j + j**2 = ", 1 + $j + $j**2, "\n";
-
-	$z = -16 + 0*i;			# Force it to be a complex
-	print "sqrt($z) = ", sqrt($z), "\n";
-
-	$k = exp(i * 2*pi/3);
-	print "$j - $k = ", $j - $k, "\n";
-
-	$z->Re(3);			# Re, Im, arg, abs,
-	$j->arg(2);			# (the last two aka rho, theta)
-					# can be used also as mutators.
-
-=head1 CONSTANTS
-
-=head2 PI
-
-The constant C<pi> and some handy multiples of it (pi2, pi4,
-and pip2 (pi/2) and pip4 (pi/4)) are also available if separately
-exported:
-
-    use Math::Complex ':pi'; 
-    $third_of_circle = pi2 / 3;
-
-=head2 Inf
-
-The floating point infinity can be exported as a subroutine Inf():
-
-    use Math::Complex qw(Inf sinh);
-    my $AlsoInf = Inf() + 42;
-    my $AnotherInf = sinh(1e42);
-    print "$AlsoInf is $AnotherInf\n" if $AlsoInf == $AnotherInf;
-
-Note that the stringified form of infinity varies between platforms:
-it can be for example any of
-
-   inf
-   infinity
-   INF
-   1.#INF
-
-or it can be something else. 
-
-Also note that in some platforms trying to use the infinity in
-arithmetic operations may result in Perl crashing because using
-an infinity causes SIGFPE or its moral equivalent to be sent.
-The way to ignore this is
-
-  local $SIG{FPE} = sub { };
-
-=head1 ERRORS DUE TO DIVISION BY ZERO OR LOGARITHM OF ZERO
-
-The division (/) and the following functions
-
-	log	ln	log10	logn
-	tan	sec	csc	cot
-	atan	asec	acsc	acot
-	tanh	sech	csch	coth
-	atanh	asech	acsch	acoth
-
-cannot be computed for all arguments because that would mean dividing
-by zero or taking logarithm of zero. These situations cause fatal
-runtime errors looking like this
-
-	cot(0): Division by zero.
-	(Because in the definition of cot(0), the divisor sin(0) is 0)
-	Died at ...
-
-or
-
-	atanh(-1): Logarithm of zero.
-	Died at...
-
-For the C<csc>, C<cot>, C<asec>, C<acsc>, C<acot>, C<csch>, C<coth>,
-C<asech>, C<acsch>, the argument cannot be C<0> (zero).  For the
-logarithmic functions and the C<atanh>, C<acoth>, the argument cannot
-be C<1> (one).  For the C<atanh>, C<acoth>, the argument cannot be
-C<-1> (minus one).  For the C<atan>, C<acot>, the argument cannot be
-C<i> (the imaginary unit).  For the C<atan>, C<acoth>, the argument
-cannot be C<-i> (the negative imaginary unit).  For the C<tan>,
-C<sec>, C<tanh>, the argument cannot be I<pi/2 + k * pi>, where I<k>
-is any integer.  atan2(0, 0) is undefined, and if the complex arguments
-are used for atan2(), a division by zero will happen if z1**2+z2**2 == 0.
-
-Note that because we are operating on approximations of real numbers,
-these errors can happen when merely `too close' to the singularities
-listed above.
-
-=head1 ERRORS DUE TO INDIGESTIBLE ARGUMENTS
-
-The C<make> and C<emake> accept both real and complex arguments.
-When they cannot recognize the arguments they will die with error
-messages like the following
-
-    Math::Complex::make: Cannot take real part of ...
-    Math::Complex::make: Cannot take real part of ...
-    Math::Complex::emake: Cannot take rho of ...
-    Math::Complex::emake: Cannot take theta of ...
-
-=head1 BUGS
-
-Saying C<use Math::Complex;> exports many mathematical routines in the
-caller environment and even overrides some (C<sqrt>, C<log>, C<atan2>).
-This is construed as a feature by the Authors, actually... ;-)
-
-All routines expect to be given real or complex numbers. Don't attempt to
-use BigFloat, since Perl has currently no rule to disambiguate a '+'
-operation (for instance) between two overloaded entities.
-
-In Cray UNICOS there is some strange numerical instability that results
-in root(), cos(), sin(), cosh(), sinh(), losing accuracy fast.  Beware.
-The bug may be in UNICOS math libs, in UNICOS C compiler, in Math::Complex.
-Whatever it is, it does not manifest itself anywhere else where Perl runs.
-
-=head1 SEE ALSO
-
-L<Math::Trig>
-
-=head1 AUTHORS
-
-Daniel S. Lewart <F<lewart!at!uiuc.edu>>,
-Jarkko Hietaniemi <F<jhi!at!iki.fi>>,
-Raphael Manfredi <F<Raphael_Manfredi!at!pobox.com>>,
-Zefram <zefram@fysh.org>
-
-=head1 LICENSE
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself. 
-
-=cut
-
-1;
-
-# eof
Index: gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Trig.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Trig.pm
diff -N gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Trig.pm
--- gnu/usr.bin/perl/cpan/Math-Complex/lib/Math/Trig.pm	25 Mar 2013 20:07:50 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,761 +0,0 @@
-#
-# Trigonometric functions, mostly inherited from Math::Complex.
-# -- Jarkko Hietaniemi, since April 1997
-# -- Raphael Manfredi, September 1996 (indirectly: because of Math::Complex)
-#
-
-package Math::Trig;
-
-{ use 5.006; }
-use strict;
-
-use Math::Complex 1.59;
-use Math::Complex qw(:trig :pi);
-require Exporter;
-
-our @ISA = qw(Exporter);
-
-our $VERSION = 1.23;
-
-my @angcnv = qw(rad2deg rad2grad
-		deg2rad deg2grad
-		grad2rad grad2deg);
-
-my @areal = qw(asin_real acos_real);
-
-our @EXPORT = (@{$Math::Complex::EXPORT_TAGS{'trig'}},
-	   @angcnv, @areal);
-
-my @rdlcnv = qw(cartesian_to_cylindrical
-		cartesian_to_spherical
-		cylindrical_to_cartesian
-		cylindrical_to_spherical
-		spherical_to_cartesian
-		spherical_to_cylindrical);
-
-my @greatcircle = qw(
-		     great_circle_distance
-		     great_circle_direction
-		     great_circle_bearing
-		     great_circle_waypoint
-		     great_circle_midpoint
-		     great_circle_destination
-		    );
-
-my @pi = qw(pi pi2 pi4 pip2 pip4);
-
-our @EXPORT_OK = (@rdlcnv, @greatcircle, @pi, 'Inf');
-
-# See e.g. the following pages:
-# http://www.movable-type.co.uk/scripts/LatLong.html
-# http://williams.best.vwh.net/avform.htm
-
-our %EXPORT_TAGS = ('radial' => [ @rdlcnv ],
-	        'great_circle' => [ @greatcircle ],
-	        'pi'     => [ @pi ]);
-
-sub _DR  () { pi2/360 }
-sub _RD  () { 360/pi2 }
-sub _DG  () { 400/360 }
-sub _GD  () { 360/400 }
-sub _RG  () { 400/pi2 }
-sub _GR  () { pi2/400 }
-
-#
-# Truncating remainder.
-#
-
-sub _remt ($$) {
-    # Oh yes, POSIX::fmod() would be faster. Possibly. If it is available.
-    $_[0] - $_[1] * int($_[0] / $_[1]);
-}
-
-#
-# Angle conversions.
-#
-
-sub rad2rad($)     { _remt($_[0], pi2) }
-
-sub deg2deg($)     { _remt($_[0], 360) }
-
-sub grad2grad($)   { _remt($_[0], 400) }
-
-sub rad2deg ($;$)  { my $d = _RD * $_[0]; $_[1] ? $d : deg2deg($d) }
-
-sub deg2rad ($;$)  { my $d = _DR * $_[0]; $_[1] ? $d : rad2rad($d) }
-
-sub grad2deg ($;$) { my $d = _GD * $_[0]; $_[1] ? $d : deg2deg($d) }
-
-sub deg2grad ($;$) { my $d = _DG * $_[0]; $_[1] ? $d : grad2grad($d) }
-
-sub rad2grad ($;$) { my $d = _RG * $_[0]; $_[1] ? $d : grad2grad($d) }
-
-sub grad2rad ($;$) { my $d = _GR * $_[0]; $_[1] ? $d : rad2rad($d) }
-
-#
-# acos and asin functions which always return a real number
-#
-
-sub acos_real {
-    return 0  if $_[0] >=  1;
-    return pi if $_[0] <= -1;
-    return acos($_[0]);
-}
-
-sub asin_real {
-    return  &pip2 if $_[0] >=  1;
-    return -&pip2 if $_[0] <= -1;
-    return asin($_[0]);
-}
-
-sub cartesian_to_spherical {
-    my ( $x, $y, $z ) = @_;
-
-    my $rho = sqrt( $x * $x + $y * $y + $z * $z );
-
-    return ( $rho,
-             atan2( $y, $x ),
-             $rho ? acos_real( $z / $rho ) : 0 );
-}
-
-sub spherical_to_cartesian {
-    my ( $rho, $theta, $phi ) = @_;
-
-    return ( $rho * cos( $theta ) * sin( $phi ),
-             $rho * sin( $theta ) * sin( $phi ),
-             $rho * cos( $phi   ) );
-}
-
-sub spherical_to_cylindrical {
-    my ( $x, $y, $z ) = spherical_to_cartesian( @_ );
-
-    return ( sqrt( $x * $x + $y * $y ), $_[1], $z );
-}
-
-sub cartesian_to_cylindrical {
-    my ( $x, $y, $z ) = @_;
-
-    return ( sqrt( $x * $x + $y * $y ), atan2( $y, $x ), $z );
-}
-
-sub cylindrical_to_cartesian {
-    my ( $rho, $theta, $z ) = @_;
-
-    return ( $rho * cos( $theta ), $rho * sin( $theta ), $z );
-}
-
-sub cylindrical_to_spherical {
-    return ( cartesian_to_spherical( cylindrical_to_cartesian( @_ ) ) );
-}
-
-sub great_circle_distance {
-    my ( $theta0, $phi0, $theta1, $phi1, $rho ) = @_;
-
-    $rho = 1 unless defined $rho; # Default to the unit sphere.
-
-    my $lat0 = pip2 - $phi0;
-    my $lat1 = pip2 - $phi1;
-
-    return $rho *
-	acos_real( cos( $lat0 ) * cos( $lat1 ) * cos( $theta0 - $theta1 ) +
-		   sin( $lat0 ) * sin( $lat1 ) );
-}
-
-sub great_circle_direction {
-    my ( $theta0, $phi0, $theta1, $phi1 ) = @_;
-
-    my $lat0 = pip2 - $phi0;
-    my $lat1 = pip2 - $phi1;
-
-    return rad2rad(pi2 -
-	atan2(sin($theta0-$theta1) * cos($lat1),
-		cos($lat0) * sin($lat1) -
-		    sin($lat0) * cos($lat1) * cos($theta0-$theta1)));
-}
-
-*great_circle_bearing         = \&great_circle_direction;
-
-sub great_circle_waypoint {
-    my ( $theta0, $phi0, $theta1, $phi1, $point ) = @_;
-
-    $point = 0.5 unless defined $point;
-
-    my $d = great_circle_distance( $theta0, $phi0, $theta1, $phi1 );
-
-    return undef if $d == pi;
-
-    my $sd = sin($d);
-
-    return ($theta0, $phi0) if $sd == 0;
-
-    my $A = sin((1 - $point) * $d) / $sd;
-    my $B = sin(     $point  * $d) / $sd;
-
-    my $lat0 = pip2 - $phi0;
-    my $lat1 = pip2 - $phi1;
-
-    my $x = $A * cos($lat0) * cos($theta0) + $B * cos($lat1) * cos($theta1);
-    my $y = $A * cos($lat0) * sin($theta0) + $B * cos($lat1) * sin($theta1);
-    my $z = $A * sin($lat0)                + $B * sin($lat1);
-
-    my $theta = atan2($y, $x);
-    my $phi   = acos_real($z);
-
-    return ($theta, $phi);
-}
-
-sub great_circle_midpoint {
-    great_circle_waypoint(@_[0..3], 0.5);
-}
-
-sub great_circle_destination {
-    my ( $theta0, $phi0, $dir0, $dst ) = @_;
-
-    my $lat0 = pip2 - $phi0;
-
-    my $phi1   = asin_real(sin($lat0)*cos($dst) +
-			   cos($lat0)*sin($dst)*cos($dir0));
-
-    my $theta1 = $theta0 + atan2(sin($dir0)*sin($dst)*cos($lat0),
-				 cos($dst)-sin($lat0)*sin($phi1));
-
-    my $dir1 = great_circle_bearing($theta1, $phi1, $theta0, $phi0) + pi;
-
-    $dir1 -= pi2 if $dir1 > pi2;
-
-    return ($theta1, $phi1, $dir1);
-}
-
-1;
-
-__END__
-=pod
-
-=head1 NAME
-
-Math::Trig - trigonometric functions
-
-=head1 SYNOPSIS
-
-    use Math::Trig;
-
-    $x = tan(0.9);
-    $y = acos(3.7);
-    $z = asin(2.4);
-
-    $halfpi = pi/2;
-
-    $rad = deg2rad(120);
-
-    # Import constants pi2, pip2, pip4 (2*pi, pi/2, pi/4).
-    use Math::Trig ':pi';
-
-    # Import the conversions between cartesian/spherical/cylindrical.
-    use Math::Trig ':radial';
-
-        # Import the great circle formulas.
-    use Math::Trig ':great_circle';
-
-=head1 DESCRIPTION
-
-C<Math::Trig> defines many trigonometric functions not defined by the
-core Perl which defines only the C<sin()> and C<cos()>.  The constant
-B<pi> is also defined as are a few convenience functions for angle
-conversions, and I<great circle formulas> for spherical movement.
-
-=head1 TRIGONOMETRIC FUNCTIONS
-
-The tangent
-
-=over 4
-
-=item B<tan>
-
-=back
-
-The cofunctions of the sine, cosine, and tangent (cosec/csc and cotan/cot
-are aliases)
-
-B<csc>, B<cosec>, B<sec>, B<sec>, B<cot>, B<cotan>
-
-The arcus (also known as the inverse) functions of the sine, cosine,
-and tangent
-
-B<asin>, B<acos>, B<atan>
-
-The principal value of the arc tangent of y/x
-
-B<atan2>(y, x)
-
-The arcus cofunctions of the sine, cosine, and tangent (acosec/acsc
-and acotan/acot are aliases).  Note that atan2(0, 0) is not well-defined.
-
-B<acsc>, B<acosec>, B<asec>, B<acot>, B<acotan>
-
-The hyperbolic sine, cosine, and tangent
-
-B<sinh>, B<cosh>, B<tanh>
-
-The cofunctions of the hyperbolic sine, cosine, and tangent (cosech/csch
-and cotanh/coth are aliases)
-
-B<csch>, B<cosech>, B<sech>, B<coth>, B<cotanh>
-
-The area (also known as the inverse) functions of the hyperbolic
-sine, cosine, and tangent
-
-B<asinh>, B<acosh>, B<atanh>
-
-The area cofunctions of the hyperbolic sine, cosine, and tangent
-(acsch/acosech and acoth/acotanh are aliases)
-
-B<acsch>, B<acosech>, B<asech>, B<acoth>, B<acotanh>
-
-The trigonometric constant B<pi> and some of handy multiples
-of it are also defined.
-
-B<pi, pi2, pi4, pip2, pip4>
-
-=head2 ERRORS DUE TO DIVISION BY ZERO
-
-The following functions
-
-    acoth
-    acsc
-    acsch
-    asec
-    asech
-    atanh
-    cot
-    coth
-    csc
-    csch
-    sec
-    sech
-    tan
-    tanh
-
-cannot be computed for all arguments because that would mean dividing
-by zero or taking logarithm of zero. These situations cause fatal
-runtime errors looking like this
-
-    cot(0): Division by zero.
-    (Because in the definition of cot(0), the divisor sin(0) is 0)
-    Died at ...
-
-or
-
-    atanh(-1): Logarithm of zero.
-    Died at...
-
-For the C<csc>, C<cot>, C<asec>, C<acsc>, C<acot>, C<csch>, C<coth>,
-C<asech>, C<acsch>, the argument cannot be C<0> (zero).  For the
-C<atanh>, C<acoth>, the argument cannot be C<1> (one).  For the
-C<atanh>, C<acoth>, the argument cannot be C<-1> (minus one).  For the
-C<tan>, C<sec>, C<tanh>, C<sech>, the argument cannot be I<pi/2 + k *
-pi>, where I<k> is any integer.
-
-Note that atan2(0, 0) is not well-defined.
-
-=head2 SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS
-
-Please note that some of the trigonometric functions can break out
-from the B<real axis> into the B<complex plane>. For example
-C<asin(2)> has no definition for plain real numbers but it has
-definition for complex numbers.
-
-In Perl terms this means that supplying the usual Perl numbers (also
-known as scalars, please see L<perldata>) as input for the
-trigonometric functions might produce as output results that no more
-are simple real numbers: instead they are complex numbers.
-
-The C<Math::Trig> handles this by using the C<Math::Complex> package
-which knows how to handle complex numbers, please see L<Math::Complex>
-for more information. In practice you need not to worry about getting
-complex numbers as results because the C<Math::Complex> takes care of
-details like for example how to display complex numbers. For example:
-
-    print asin(2), "\n";
-
-should produce something like this (take or leave few last decimals):
-
-    1.5707963267949-1.31695789692482i
-
-That is, a complex number with the real part of approximately C<1.571>
-and the imaginary part of approximately C<-1.317>.
-
-=head1 PLANE ANGLE CONVERSIONS
-
-(Plane, 2-dimensional) angles may be converted with the following functions.
-
-=over
-
-=item deg2rad
-
-    $radians  = deg2rad($degrees);
-
-=item grad2rad
-
-    $radians  = grad2rad($gradians);
-
-=item rad2deg
-
-    $degrees  = rad2deg($radians);
-
-=item grad2deg
-
-    $degrees  = grad2deg($gradians);
-
-=item deg2grad
-
-    $gradians = deg2grad($degrees);
-
-=item rad2grad
-
-    $gradians = rad2grad($radians);
-
-=back
-
-The full circle is 2 I<pi> radians or I<360> degrees or I<400> gradians.
-The result is by default wrapped to be inside the [0, {2pi,360,400}[ circle.
-If you don't want this, supply a true second argument:
-
-    $zillions_of_radians  = deg2rad($zillions_of_degrees, 1);
-    $negative_degrees     = rad2deg($negative_radians, 1);
-
-You can also do the wrapping explicitly by rad2rad(), deg2deg(), and
-grad2grad().
-
-=over 4
-
-=item rad2rad
-
-    $radians_wrapped_by_2pi = rad2rad($radians);
-
-=item deg2deg
-
-    $degrees_wrapped_by_360 = deg2deg($degrees);
-
-=item grad2grad
-
-    $gradians_wrapped_by_400 = grad2grad($gradians);
-
-=back
-
-=head1 RADIAL COORDINATE CONVERSIONS
-
-B<Radial coordinate systems> are the B<spherical> and the B<cylindrical>
-systems, explained shortly in more detail.
-
-You can import radial coordinate conversion functions by using the
-C<:radial> tag:
-
-    use Math::Trig ':radial';
-
-    ($rho, $theta, $z)     = cartesian_to_cylindrical($x, $y, $z);
-    ($rho, $theta, $phi)   = cartesian_to_spherical($x, $y, $z);
-    ($x, $y, $z)           = cylindrical_to_cartesian($rho, $theta, $z);
-    ($rho_s, $theta, $phi) = cylindrical_to_spherical($rho_c, $theta, $z);
-    ($x, $y, $z)           = spherical_to_cartesian($rho, $theta, $phi);
-    ($rho_c, $theta, $z)   = spherical_to_cylindrical($rho_s, $theta, $phi);
-
-B<All angles are in radians>.
-
-=head2 COORDINATE SYSTEMS
-
-B<Cartesian> coordinates are the usual rectangular I<(x, y, z)>-coordinates.
-
-Spherical coordinates, I<(rho, theta, pi)>, are three-dimensional
-coordinates which define a point in three-dimensional space.  They are
-based on a sphere surface.  The radius of the sphere is B<rho>, also
-known as the I<radial> coordinate.  The angle in the I<xy>-plane
-(around the I<z>-axis) is B<theta>, also known as the I<azimuthal>
-coordinate.  The angle from the I<z>-axis is B<phi>, also known as the
-I<polar> coordinate.  The North Pole is therefore I<0, 0, rho>, and
-the Gulf of Guinea (think of the missing big chunk of Africa) I<0,
-pi/2, rho>.  In geographical terms I<phi> is latitude (northward
-positive, southward negative) and I<theta> is longitude (eastward
-positive, westward negative).
-
-B<BEWARE>: some texts define I<theta> and I<phi> the other way round,
-some texts define the I<phi> to start from the horizontal plane, some
-texts use I<r> in place of I<rho>.
-
-Cylindrical coordinates, I<(rho, theta, z)>, are three-dimensional
-coordinates which define a point in three-dimensional space.  They are
-based on a cylinder surface.  The radius of the cylinder is B<rho>,
-also known as the I<radial> coordinate.  The angle in the I<xy>-plane
-(around the I<z>-axis) is B<theta>, also known as the I<azimuthal>
-coordinate.  The third coordinate is the I<z>, pointing up from the
-B<theta>-plane.
-
-=head2 3-D ANGLE CONVERSIONS
-
-Conversions to and from spherical and cylindrical coordinates are
-available.  Please notice that the conversions are not necessarily
-reversible because of the equalities like I<pi> angles being equal to
-I<-pi> angles.
-
-=over 4
-
-=item cartesian_to_cylindrical
-
-    ($rho, $theta, $z) = cartesian_to_cylindrical($x, $y, $z);
-
-=item cartesian_to_spherical
-
-    ($rho, $theta, $phi) = cartesian_to_spherical($x, $y, $z);
-
-=item cylindrical_to_cartesian
-
-    ($x, $y, $z) = cylindrical_to_cartesian($rho, $theta, $z);
-
-=item cylindrical_to_spherical
-
-    ($rho_s, $theta, $phi) = cylindrical_to_spherical($rho_c, $theta, $z);
-
-Notice that when C<$z> is not 0 C<$rho_s> is not equal to C<$rho_c>.
-
-=item spherical_to_cartesian
-
-    ($x, $y, $z) = spherical_to_cartesian($rho, $theta, $phi);
-
-=item spherical_to_cylindrical
-
-    ($rho_c, $theta, $z) = spherical_to_cylindrical($rho_s, $theta, $phi);
-
-Notice that when C<$z> is not 0 C<$rho_c> is not equal to C<$rho_s>.
-
-=back
-
-=head1 GREAT CIRCLE DISTANCES AND DIRECTIONS
-
-A great circle is section of a circle that contains the circle
-diameter: the shortest distance between two (non-antipodal) points on
-the spherical surface goes along the great circle connecting those two
-points.
-
-=head2 great_circle_distance
-
-You can compute spherical distances, called B<great circle distances>,
-by importing the great_circle_distance() function:
-
-  use Math::Trig 'great_circle_distance';
-
-  $distance = great_circle_distance($theta0, $phi0, $theta1, $phi1, [, $rho]);
-
-The I<great circle distance> is the shortest distance between two
-points on a sphere.  The distance is in C<$rho> units.  The C<$rho> is
-optional, it defaults to 1 (the unit sphere), therefore the distance
-defaults to radians.
-
-If you think geographically the I<theta> are longitudes: zero at the
-Greenwhich meridian, eastward positive, westward negative -- and the
-I<phi> are latitudes: zero at the North Pole, northward positive,
-southward negative.  B<NOTE>: this formula thinks in mathematics, not
-geographically: the I<phi> zero is at the North Pole, not at the
-Equator on the west coast of Africa (Bay of Guinea).  You need to
-subtract your geographical coordinates from I<pi/2> (also known as 90
-degrees).
-
-  $distance = great_circle_distance($lon0, pi/2 - $lat0,
-                                    $lon1, pi/2 - $lat1, $rho);
-
-=head2 great_circle_direction
-
-The direction you must follow the great circle (also known as I<bearing>)
-can be computed by the great_circle_direction() function:
-
-  use Math::Trig 'great_circle_direction';
-
-  $direction = great_circle_direction($theta0, $phi0, $theta1, $phi1);
-
-=head2 great_circle_bearing
-
-Alias 'great_circle_bearing' for 'great_circle_direction' is also available.
-
-  use Math::Trig 'great_circle_bearing';
-
-  $direction = great_circle_bearing($theta0, $phi0, $theta1, $phi1);
-
-The result of great_circle_direction is in radians, zero indicating
-straight north, pi or -pi straight south, pi/2 straight west, and
--pi/2 straight east.
-
-=head2 great_circle_destination
-
-You can inversely compute the destination if you know the
-starting point, direction, and distance:
-
-  use Math::Trig 'great_circle_destination';
-
-  # $diro is the original direction,
-  # for example from great_circle_bearing().
-  # $distance is the angular distance in radians,
-  # for example from great_circle_distance().
-  # $thetad and $phid are the destination coordinates,
-  # $dird is the final direction at the destination.
-
-  ($thetad, $phid, $dird) =
-    great_circle_destination($theta, $phi, $diro, $distance);
-
-or the midpoint if you know the end points:
-
-=head2 great_circle_midpoint
-
-  use Math::Trig 'great_circle_midpoint';
-
-  ($thetam, $phim) =
-    great_circle_midpoint($theta0, $phi0, $theta1, $phi1);
-
-The great_circle_midpoint() is just a special case of
-
-=head2 great_circle_waypoint
-
-  use Math::Trig 'great_circle_waypoint';
-
-  ($thetai, $phii) =
-    great_circle_waypoint($theta0, $phi0, $theta1, $phi1, $way);
-
-Where the $way is a value from zero ($theta0, $phi0) to one ($theta1,
-$phi1).  Note that antipodal points (where their distance is I<pi>
-radians) do not have waypoints between them (they would have an an
-"equator" between them), and therefore C<undef> is returned for
-antipodal points.  If the points are the same and the distance
-therefore zero and all waypoints therefore identical, the first point
-(either point) is returned.
-
-The thetas, phis, direction, and distance in the above are all in radians.
-
-You can import all the great circle formulas by
-
-  use Math::Trig ':great_circle';
-
-Notice that the resulting directions might be somewhat surprising if
-you are looking at a flat worldmap: in such map projections the great
-circles quite often do not look like the shortest routes --  but for
-example the shortest possible routes from Europe or North America to
-Asia do often cross the polar regions.  (The common Mercator projection
-does B<not> show great circles as straight lines: straight lines in the
-Mercator projection are lines of constant bearing.)
-
-=head1 EXAMPLES
-
-To calculate the distance between London (51.3N 0.5W) and Tokyo
-(35.7N 139.8E) in kilometers:
-
-    use Math::Trig qw(great_circle_distance deg2rad);
-
-    # Notice the 90 - latitude: phi zero is at the North Pole.
-    sub NESW { deg2rad($_[0]), deg2rad(90 - $_[1]) }
-    my @L = NESW( -0.5, 51.3);
-    my @T = NESW(139.8, 35.7);
-    my $km = great_circle_distance(@L, @T, 6378); # About 9600 km.
-
-The direction you would have to go from London to Tokyo (in radians,
-straight north being zero, straight east being pi/2).
-
-    use Math::Trig qw(great_circle_direction);
-
-    my $rad = great_circle_direction(@L, @T); # About 0.547 or 0.174 pi.
-
-The midpoint between London and Tokyo being
-
-    use Math::Trig qw(great_circle_midpoint);
-
-    my @M = great_circle_midpoint(@L, @T);
-
-or about 69 N 89 E, in the frozen wastes of Siberia.
-
-B<NOTE>: you B<cannot> get from A to B like this:
-
-   Dist = great_circle_distance(A, B)
-   Dir  = great_circle_direction(A, B)
-   C    = great_circle_destination(A, Dist, Dir)
-
-and expect C to be B, because the bearing constantly changes when
-going from A to B (except in some special case like the meridians or
-the circles of latitudes) and in great_circle_destination() one gives
-a B<constant> bearing to follow.
-
-=head2 CAVEAT FOR GREAT CIRCLE FORMULAS
-
-The answers may be off by few percentages because of the irregular
-(slightly aspherical) form of the Earth.  The errors are at worst
-about 0.55%, but generally below 0.3%.
-
-=head2 Real-valued asin and acos
-
-For small inputs asin() and acos() may return complex numbers even
-when real numbers would be enough and correct, this happens because of
-floating-point inaccuracies.  You can see these inaccuracies for
-example by trying theses:
-
-  print cos(1e-6)**2+sin(1e-6)**2 - 1,"\n";
-  printf "%.20f", cos(1e-6)**2+sin(1e-6)**2,"\n";
-
-which will print something like this
-
-  -1.11022302462516e-16
-  0.99999999999999988898
-
-even though the expected results are of course exactly zero and one.
-The formulas used to compute asin() and acos() are quite sensitive to
-this, and therefore they might accidentally slip into the complex
-plane even when they should not.  To counter this there are two
-interfaces that are guaranteed to return a real-valued output.
-
-=over 4
-
-=item asin_real
-
-    use Math::Trig qw(asin_real);
-
-    $real_angle = asin_real($input_sin);
-
-Return a real-valued arcus sine if the input is between [-1, 1],
-B<inclusive> the endpoints.  For inputs greater than one, pi/2
-is returned.  For inputs less than minus one, -pi/2 is returned.
-
-=item acos_real
-
-    use Math::Trig qw(acos_real);
-
-    $real_angle = acos_real($input_cos);
-
-Return a real-valued arcus cosine if the input is between [-1, 1],
-B<inclusive> the endpoints.  For inputs greater than one, zero
-is returned.  For inputs less than minus one, pi is returned.
-
-=back
-
-=head1 BUGS
-
-Saying C<use Math::Trig;> exports many mathematical routines in the
-caller environment and even overrides some (C<sin>, C<cos>).  This is
-construed as a feature by the Authors, actually... ;-)
-
-The code is not optimized for speed, especially because we use
-C<Math::Complex> and thus go quite near complex numbers while doing
-the computations even when the arguments are not. This, however,
-cannot be completely avoided if we want things like C<asin(2)> to give
-an answer instead of giving a fatal runtime error.
-
-Do not attempt navigation using these formulas.
-
-L<Math::Complex>
-
-=head1 AUTHORS
-
-Jarkko Hietaniemi <F<jhi!at!iki.fi>>,
-Raphael Manfredi <F<Raphael_Manfredi!at!pobox.com>>,
-Zefram <zefram@fysh.org>
-
-=head1 LICENSE
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself. 
-
-=cut
-
-# eof
Index: gnu/usr.bin/perl/cpan/Math-Complex/t/Complex.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-Complex/t/Complex.t
diff -N gnu/usr.bin/perl/cpan/Math-Complex/t/Complex.t
--- gnu/usr.bin/perl/cpan/Math-Complex/t/Complex.t	15 Feb 2023 01:32:43 -0000	1.1.1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1160 +0,0 @@
-#!./perl
-
-#
-# Regression tests for the Math::Complex pacakge
-# -- Raphael Manfredi	since Sep 1996
-# -- Jarkko Hietaniemi	since Mar 1997
-# -- Daniel S. Lewart	since Sep 1997
-
-use strict;
-use warnings;
-
-use Math::Complex 1.54;
-
-# they are used later in the test and not exported by Math::Complex
-*_stringify_cartesian = \&Math::Complex::_stringify_cartesian;
-*_stringify_polar     = \&Math::Complex::_stringify_polar;
-
-our $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
-our $has_inf   = !$vax_float;
-
-my ($args, $op, $target, $test, $test_set, $try, $val, $zvalue, @set, @val);
-my ($bad, $z);
-
-$test = 0;
-$| = 1;
-my @script = (
-    'my ($res, $s0,$s1,$s2,$s3,$s4,$s5,$s6,$s7,$s8,$s9,$s10,$z0,$z1,$z2);' .
-	"\n\n"
-);
-my $eps = 1e-13;
-
-if ($^O eq 'unicos') { 	# For some reason root() produces very inaccurate
-    $eps = 1e-10;	# results in Cray UNICOS, and occasionally also
-}			# cos(), sin(), cosh(), sinh().  The division
-			# of doubles is the current suspect.
-
-$test++;
-push @script, "{ my \$t=$test; ".q{
-    my $a = Math::Complex->new(1);
-    my $b = $a;
-    $a += 2;
-    print "not " unless "$a" eq "3" && "$b" eq "1";
-    print "ok $t\n";
-}."}";
-
-while (<DATA>) {
-	s/^\s+//;
-	next if $_ eq '' || /^\#/;
-	chomp;
-	$test_set = 0;		# Assume not a test over a set of values
-	if (/^&(.+)/) {
-		$op = $1;
-		next;
-	}
-	elsif (/^\{(.+)\}/) {
-		set($1, \@set, \@val);
-		next;
-	}
-	elsif (s/^\|//) {
-		$test_set = 1;	# Requests we loop over the set...
-	}
-	my @args = split(/:/);
-	if ($test_set == 1) {
-		my $i;
-		for ($i = 0; $i < @set; $i++) {
-			# complex number
-			$target = $set[$i];
-			# textual value as found in set definition
-			$zvalue = $val[$i];
-			test($zvalue, $target, @args);
-		}
-	} else {
-		test($op, undef, @args);
-	}
-}
-
-#
-
-sub test_mutators {
-    my $op;
-
-    $test++;
-push(@script, <<'EOT');
-{
-    my $z = cplx(  1,  1);
-    $z->Re(2);
-    $z->Im(3);
-    print "# $test Re(z) = ",$z->Re(), " Im(z) = ", $z->Im(), " z = $z\n";
-    print 'not ' unless Re($z) == 2 and Im($z) == 3;
-EOT
-    push(@script, qq(print "ok $test\\n"}\n));
-
-    $test++;
-push(@script, <<'EOT');
-{
-    my $z = cplx(  1,  1);
-    $z->abs(3 * sqrt(2));
-    print "# $test Re(z) = ",$z->Re(), " Im(z) = ", $z->Im(), " z = $z\n";
-    print 'not ' unless (abs($z) - 3 * sqrt(2)) < $eps and
-                        (arg($z) - pi / 4     ) < $eps and
-                        (Re($z) - 3           ) < $eps and
-                        (Im($z) - 3           ) < $eps;
-EOT
-    push(@script, qq(print "ok $test\\n"}\n));
-
-    $test++;
-push(@script, <<'EOT');
-{
-    my $z = cplx(  1,  1);
-    $z->arg(-3 / 4 * pi);
-    print "# $test Re(z) = ",$z->Re(), " Im(z) = ", $z->Im(), " z = $z\n";
-    print 'not ' unless (arg($z) + 3 / 4 * pi) < $eps and
-                        (abs($z) - sqrt(2)   ) < $eps and
-                        (Re($z) + 1          ) < $eps and
-                        (Im($z) + 1          ) < $eps;
-EOT
-    push(@script, qq(print "ok $test\\n"}\n));
-}
-
-test_mutators();
-
-my $constants = '
-my $i    = cplx(0,  1);
-my $pi   = cplx(pi, 0);
-my $pii  = cplx(0, pi);
-my $pip2 = cplx(pi/2, 0);
-my $pip4 = cplx(pi/4, 0);
-my $zero = cplx(0, 0);
-';
-
-if ($has_inf) {
-    $constants .= <<'EOF';
-my $inf  = 9**9**9;
-EOF
-}
-
-push(@script, $constants);
-
-
-# test the divbyzeros
-
-sub test_dbz {
-    for my $op (@_) {
-	$test++;
-	push(@script, <<EOT);
-	eval '$op';
-	(\$bad) = (\$@ =~ /(.+)/);
-	print "# $test op = $op divbyzero? \$bad...\n";
-	print 'not ' unless (\$@ =~ /Division by zero/);
-EOT
-        push(@script, qq(print "ok $test\\n";\n));
-    }
-}
-
-# test the logofzeros
-
-sub test_loz {
-    for my $op (@_) {
-	$test++;
-	push(@script, <<EOT);
-	eval '$op';
-	(\$bad) = (\$@ =~ /(.+)/);
-	print "# $test op = $op logofzero? \$bad...\n";
-	print 'not ' unless (\$@ =~ /Logarithm of zero/);
-EOT
-        push(@script, qq(print "ok $test\\n";\n));
-    }
-}
-
-test_dbz(
-	 'i/0',
-	 'acot(0)',
-	 'acot(+$i)',
-#	 'acoth(-1)',	# Log of zero.
-	 'acoth(0)',
-	 'acoth(+1)',
-	 'acsc(0)',
-	 'acsch(0)',
-	 'asec(0)',
-	 'asech(0)',
-	 'atan($i)',
-#	 'atanh(-1)',	# Log of zero.
-	 'atanh(+1)',
-	 'cot(0)',
-	 'coth(0)',
-	 'csc(0)',
-	 'csch(0)',
-	 'atan(cplx(0, 1), cplx(1, 0))',
-	);
-
-test_loz(
-	 'log($zero)',
-	 'atan(-$i)',
-	 'acot(-$i)',
-	 'atanh(-1)',
-	 'acoth(-1)',
-	);
-
-# test the bad roots
-
-sub test_broot {
-    for my $op (@_) {
-	$test++;
-	push(@script, <<EOT);
-	eval 'root(2, $op)';
-	(\$bad) = (\$@ =~ /(.+)/);
-	print "# $test op = $op badroot? \$bad...\n";
-	print 'not ' unless (\$@ =~ /root rank must be/);
-EOT
-        push(@script, qq(print "ok $test\\n";\n));
-    }
-}
-
-test_broot(qw(-3 -2.1 0 0.99));
-
-sub test_display_format {
-    $test++;
-    push @script, <<EOS;
-    print "# package display_format cartesian?\n";
-    print "not " unless Math::Complex->display_format eq 'cartesian';
-    print "ok $test\n";
-EOS
-
-    push @script, <<EOS;
-    my \$j = (root(1,3))[1];
-
-    \$j->display_format('polar');
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j display_format polar?\n";
-    print "not " unless \$j->display_format eq 'polar';
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j = \$j\n";
-    print "not " unless "\$j" eq "[1,2pi/3]";
-    print "ok $test\n";
-
-    my %display_format;
-
-    %display_format = \$j->display_format;
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# display_format{style} polar?\n";
-    print "not " unless \$display_format{style} eq 'polar';
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# keys %display_format == 2?\n";
-    print "not " unless keys %display_format == 2;
-    print "ok $test\n";
-
-    \$j->display_format('style' => 'cartesian', 'format' => '%.5f');
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j = \$j\n";
-    print "not " unless "\$j" eq "-0.50000+0.86603i";
-    print "ok $test\n";
-
-    %display_format = \$j->display_format;
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# display_format{format} %.5f?\n";
-    print "not " unless \$display_format{format} eq '%.5f';
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# keys %display_format == 3?\n";
-    print "not " unless keys %display_format == 3;
-    print "ok $test\n";
-
-    \$j->display_format('format' => undef);
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j = \$j\n";
-    print "not " unless "\$j" =~ /^-0(?:\\.5(?:0000\\d+)?|\\.49999\\d+)\\+0.86602540\\d+i\$/;
-    print "ok $test\n";
-
-    \$j->display_format('style' => 'polar', 'polar_pretty_print' => 0);
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j = \$j\n";
-    print "not " unless "\$j" =~ /^\\[1,2\\.09439510\\d+\\]\$/;
-    print "ok $test\n";
-
-    \$j->display_format('style' => 'polar', 'format' => "%.4g");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j = \$j\n";
-    print "not " unless "\$j" =~ /^\\[1,2\\.094\\]\$/;
-    print "ok $test\n";
-
-    \$j->display_format('style' => 'cartesian', 'format' => '(%.5g)');
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j = \$j\n";
-    print "not " unless "\$j" eq "(-0.5)+(0.86603)i";
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# j display_format cartesian?\n";
-    print "not " unless \$j->display_format eq 'cartesian';
-    print "ok $test\n";
-EOS
-}
-
-test_display_format();
-
-sub test_remake {
-    $test++;
-    push @script, <<EOS;
-    print "# remake 2+3i\n";
-    \$z = cplx('2+3i');
-    print "not " unless \$z == Math::Complex->make(2,3);
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# make 3i\n";
-    \$z = Math::Complex->make('3i');
-    print "not " unless \$z == cplx(0,3);
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# emake [2,3]\n";
-    \$z = Math::Complex->emake('[2,3]');
-    print "not " unless \$z == cplxe(2,3);
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# make (2,3)\n";
-    \$z = Math::Complex->make('(2,3)');
-    print "not " unless \$z == cplx(2,3);
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# emake [2,3pi/8]\n";
-    \$z = Math::Complex->emake('[2,3pi/8]');
-    print "not " unless \$z == cplxe(2,3*\$pi/8);
-    print "ok $test\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print "# emake [2]\n";
-    \$z = Math::Complex->emake('[2]');
-    print "not " unless \$z == cplxe(2);
-    print "ok $test\n";
-EOS
-}
-
-sub test_no_args {
-    push @script, <<'EOS';
-{
-    print "# cplx, cplxe, make, emake without arguments\n";
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    my \$z0 = cplx();
-    print ((\$z0->Re()  == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print ((\$z0->Im()  == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    my \$z1 = cplxe();
-    print ((\$z1->rho()   == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print ((\$z1->theta() == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    my \$z2 = Math::Complex->make();
-    print ((\$z2->Re()  == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print ((\$z2->Im()  == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    my \$z3 = Math::Complex->emake();
-    print ((\$z3->rho()   == 0) ? "ok $test\n" : "not ok $test\n");
-EOS
-
-    $test++;
-    push @script, <<EOS;
-    print ((\$z3->theta() == 0) ? "ok $test\n" : "not ok $test\n");
-}
-EOS
-}
-
-sub test_atan2 {
-    push @script, <<'EOS';
-print "# atan2() with some real arguments\n";
-EOS
-    my @real = (-1, 0, 1);
-    for my $x (@real) {
-	for my $y (@real) {
-	    next if $x == 0 && $y == 0;
-	    $test++;
-	    push @script, <<EOS;
-print ((Math::Complex::atan2($y, $x) == CORE::atan2($y, $x)) ? "ok $test\n" : "not ok $test\n");
-EOS
-        }
-    }
-    push @script, <<'EOS';
-    print "# atan2() with some complex arguments\n";
-EOS
-    $test++;
-    push @script, <<EOS;
-    print (abs(atan2(0, cplx(0, 1))) < $eps ? "ok $test\n" : "not ok $test\n");
-EOS
-    $test++;
-    push @script, <<EOS;
-    print (abs(atan2(cplx(0, 1), 0) - \$pip2) < $eps ? "ok $test\n" : "not ok $test\n");
-EOS
-    $test++;
-    push @script, <<EOS;
-    print (abs(atan2(cplx(0, 1), cplx(0, 1)) - \$pip4) < $eps ? "ok $test\n" : "not ok $test\n");
-EOS
-    $test++;
-    push @script, <<EOS;
-    print (abs(atan2(cplx(0, 1), cplx(1, 1)) - cplx(0.553574358897045, 0.402359478108525)) < $eps ? "ok $test\n" : "not ok $test\n");
-EOS
-}
-
-sub test_decplx {
-}
-
-test_remake();
-
-test_no_args();
-
-test_atan2();
-
-test_decplx();
-
-print "1..$test\n";
-#print @script, "\n";
-eval join '', @script;
-die $@ if $@;
-
-sub abop {
-	my ($op) = @_;
-
-	push(@script, qq(print "# $op=\n";));
-}
-
-sub test {
-	my ($op, $z, @args) = @_;
-	my ($baop) = 0;
-	$test++;
-	my $i;
-	$baop = 1 if ($op =~ s/;=$//);
-	for ($i = 0; $i < @args; $i++) {
-		$val = value($args[$i]);
-		push @script, "\$z$i = $val;\n";
-	}
-	if (defined $z) {
-		$args = "'$op'";		# Really the value
-		$try = "abs(\$z0 - \$z1) <= $eps ? \$z1 : \$z0";
-		push @script, "\$res = $try; ";
-		push @script, "check($test, $args[0], \$res, \$z$#args, $args);\n";
-	} else {
-		my ($try, $args);
-		if (@args == 2) {
-			$try = "$op \$z0";
-			$args = "'$args[0]'";
-		} else {
-			$try = ($op =~ /^\w/) ? "$op(\$z0, \$z1)" : "\$z0 $op \$z1";
-			$args = "'$args[0]', '$args[1]'";
-		}
-		push @script, "\$res = $try; ";
-		push @script, "check($test, '$try', \$res, \$z$#args, $args);\n";
-		if (@args > 2 and $baop) { # binary assignment ops
-			$test++;
-			# check the op= works
-			push @script, <<EOB;
-{
-	my \$za = cplx(ref \$z0 ? \@{\$z0->_cartesian} : (\$z0, 0));
-
-	my (\$z1r, \$z1i) = ref \$z1 ? \@{\$z1->_cartesian} : (\$z1, 0);
-
-	my \$zb = cplx(\$z1r, \$z1i);
-
-	\$za $op= \$zb;
-	my (\$zbr, \$zbi) = \@{\$zb->_cartesian};
-
-	check($test, '\$z0 $op= \$z1', \$za, \$z$#args, $args);
-EOB
-			$test++;
-			# check that the rhs has not changed
-			push @script, qq(print "not " unless (\$zbr == \$z1r and \$zbi == \$z1i););
-			push @script, qq(print "ok $test\\n";\n);
-			push @script, "}\n";
-		}
-	}
-}
-
-sub set {
-	my ($set, $setref, $valref) = @_;
-	@{$setref} = ();
-	@{$valref} = ();
-	my @set = split(/;\s*/, $set);
-	my @res;
-	my $i;
-	for ($i = 0; $i < @set; $i++) {
-		push(@{$valref}, $set[$i]);
-		my $val = value($set[$i]);
-		push @script, "\$s$i = $val;\n";
-		push @{$setref}, "\$s$i";
-	}
-}
-
-sub value {
-	local ($_) = @_;
-	if (/^\s*\((.*),(.*)\)/) {
-		return "cplx($1,$2)";
-	}
-	elsif (/^\s*([\-\+]?(?:\d+(\.\d+)?|\.\d+)(?:[e[\-\+]\d+])?)/) {
-		return "cplx($1,0)";
-	}
-	elsif (/^\s*\[(.*),(.*)\]/) {
-		return "cplxe($1,$2)";
-	}
-	elsif (/^\s*'(.*)'/) {
-		my $ex = $1;
-		$ex =~ s/\bz\b/$target/g;
-		$ex =~ s/\br\b/abs($target)/g;
-		$ex =~ s/\bt\b/arg($target)/g;
-		$ex =~ s/\ba\b/Re($target)/g;
-		$ex =~ s/\bb\b/Im($target)/g;
-		return $ex;
-	}
-	elsif (/^\s*"(.*)"/) {
-		return "\"$1\"";
-	}
-	return $_;
-}
-
-sub check {
-	my ($test, $try, $got, $expected, @z) = @_;
-
-	print "# @_\n";
-
-	if ("$got" eq "$expected"
-	    ||
-	    ($expected =~ /^-?\d/ && $got == $expected)
-	    ||
-	    (abs(Math::Complex->make($got) - Math::Complex->make($expected)) < $eps)
-	    ||
-	    (abs($got - $expected) < $eps)
-	    ) {
-		print "ok $test\n";
-	} else {
-		print "not ok $test\n";
-		my $args = (@z == 1) ? "z = $z[0]" : "z0 = $z[0], z1 = $z[1]";
-		print "# '$try' expected: '$expected' got: '$got' for $args\n";
-	}
-}
-
-sub addsq {
-    my ($z1, $z2) = @_;
-    return ($z1 + i*$z2) * ($z1 - i*$z2);
-}
-
-sub subsq {
-    my ($z1, $z2) = @_;
-    return ($z1 + $z2) * ($z1 - $z2);
-}
-
-__END__
-&+;=
-(3,4):(3,4):(6,8)
-(-3,4):(3,-4):(0,0)
-(3,4):-3:(0,4)
-1:(4,2):(5,2)
-[2,0]:[2,pi]:(0,0)
-
-&++
-(2,1):(3,1)
-
-&-;=
-(2,3):(-2,-3)
-[2,pi/2]:[2,-(pi)/2]
-2:[2,0]:(0,0)
-[3,0]:2:(1,0)
-3:(4,5):(-1,-5)
-(4,5):3:(1,5)
-(2,1):(3,5):(-1,-4)
-
-&--
-(1,2):(0,2)
-[2,pi]:[3,pi]
-
-&*;=
-(0,1):(0,1):(-1,0)
-(4,5):(1,0):(4,5)
-[2,2*pi/3]:(1,0):[2,2*pi/3]
-2:(0,1):(0,2)
-(0,1):3:(0,3)
-(0,1):(4,1):(-1,4)
-(2,1):(4,-1):(9,2)
-
-&/;=
-(3,4):(3,4):(1,0)
-(4,-5):1:(4,-5)
-1:(0,1):(0,-1)
-(0,6):(0,2):(3,0)
-(9,2):(4,-1):(2,1)
-[4,pi]:[2,pi/2]:[2,pi/2]
-[2,pi/2]:[4,pi]:[0.5,-(pi)/2]
-
-&**;=
-(2,0):(3,0):(8,0)
-(3,0):(2,0):(9,0)
-(2,3):(4,0):(-119,-120)
-(0,0):(1,0):(0,0)
-(0,0):(2,3):(0,0)
-(1,0):(0,0):(1,0)
-(1,0):(1,0):(1,0)
-(1,0):(2,3):(1,0)
-(2,3):(0,0):(1,0)
-(2,3):(1,0):(2,3)
-(0,0):(0,0):(1,0)
-
-&Re
-(3,4):3
-(-3,4):-3
-[1,pi/2]:0
-
-&Im
-(3,4):4
-(3,-4):-4
-[1,pi/2]:1
-
-&abs
-(3,4):5
-(-3,4):5
-
-&arg
-[2,0]:0
-[-2,0]:pi
-
-&~
-(4,5):(4,-5)
-(-3,4):(-3,-4)
-[2,pi/2]:[2,-(pi)/2]
-
-&<
-(3,4):(1,2):0
-(3,4):(3,2):0
-(3,4):(3,8):1
-(4,4):(5,129):1
-
-&==
-(3,4):(4,5):0
-(3,4):(3,5):0
-(3,4):(2,4):0
-(3,4):(3,4):1
-
-&sqrt
--9:(0,3)
-(-100,0):(0,10)
-(16,-30):(5,-3)
-
-&_stringify_cartesian
-(-100,0):"-100"
-(0,1):"i"
-(4,-3):"4-3i"
-(4,0):"4"
-(-4,0):"-4"
-(-2,4):"-2+4i"
-(-2,-1):"-2-i"
-
-&_stringify_polar
-[-1, 0]:"[1,pi]"
-[1, pi/3]:"[1,pi/3]"
-[6, -2*pi/3]:"[6,-2pi/3]"
-[0.5, -9*pi/11]:"[0.5,-9pi/11]"
-[1, 0.5]:"[1, 0.5]"
-
-{ (4,3); [3,2]; (-3,4); (0,2); [2,1] }
-
-|'z + ~z':'2*Re(z)'
-|'z - ~z':'2*i*Im(z)'
-|'z * ~z':'abs(z) * abs(z)'
-
-{ (0.5, 0); (-0.5, 0); (2,3); [3,2]; (-3,2); (0,2); 3; 1.2; (-3, 0); (-2, -1); [2,1] }
-
-|'(root(z, 4))[1] ** 4':'z'
-|'(root(z, 5))[3] ** 5':'z'
-|'(root(z, 8))[7] ** 8':'z'
-|'(root(z, 8, 0)) ** 8':'z'
-|'(root(z, 8, 7)) ** 8':'z'
-|'abs(z)':'r'
-|'acot(z)':'acotan(z)'
-|'acsc(z)':'acosec(z)'
-|'acsc(z)':'asin(1 / z)'
-|'asec(z)':'acos(1 / z)'
-|'cbrt(z)':'cbrt(r) * exp(i * t/3)'
-|'cos(acos(z))':'z'
-|'addsq(cos(z), sin(z))':1
-|'cos(z)':'cosh(i*z)'
-|'subsq(cosh(z), sinh(z))':1
-|'cot(acot(z))':'z'
-|'cot(z)':'1 / tan(z)'
-|'cot(z)':'cotan(z)'
-|'csc(acsc(z))':'z'
-|'csc(z)':'1 / sin(z)'
-|'csc(z)':'cosec(z)'
-|'exp(log(z))':'z'
-|'exp(z)':'exp(a) * exp(i * b)'
-|'ln(z)':'log(z)'
-|'log(exp(z))':'z'
-|'log(z)':'log(r) + i*t'
-|'log10(z)':'log(z) / log(10)'
-|'logn(z, 2)':'log(z) / log(2)'
-|'logn(z, 3)':'log(z) / log(3)'
-|'sec(asec(z))':'z'
-|'sec(z)':'1 / cos(z)'
-|'sin(asin(z))':'z'
-|'sin(i * z)':'i * sinh(z)'
-|'sqrt(z) * sqrt(z)':'z'
-|'sqrt(z)':'sqrt(r) * exp(i * t/2)'
-|'tan(atan(z))':'z'
-|'z**z':'exp(z * log(z))'
-
-{ (1,1); [1,0.5]; (-2, -1); 2; -3; (-1,0.5); (0,0.5); 0.5; (2, 0); (-1, -2) }
-
-|'cosh(acosh(z))':'z'
-|'coth(acoth(z))':'z'
-|'coth(z)':'1 / tanh(z)'
-|'coth(z)':'cotanh(z)'
-|'csch(acsch(z))':'z'
-|'csch(z)':'1 / sinh(z)'
-|'csch(z)':'cosech(z)'
-|'sech(asech(z))':'z'
-|'sech(z)':'1 / cosh(z)'
-|'sinh(asinh(z))':'z'
-|'tanh(atanh(z))':'z'
-
-{ (0.2,-0.4); [1,0.5]; -1.2; (-1,0.5); 0.5; (1.1, 0) }
-
-|'acos(cos(z)) ** 2':'z * z'
-|'acosh(cosh(z)) ** 2':'z * z'
-|'acoth(z)':'acotanh(z)'
-|'acoth(z)':'atanh(1 / z)'
-|'acsch(z)':'acosech(z)'
-|'acsch(z)':'asinh(1 / z)'
-|'asech(z)':'acosh(1 / z)'
-|'asin(sin(z))':'z'
-|'asinh(sinh(z))':'z'
-|'atan(tan(z))':'z'
-|'atanh(tanh(z))':'z'
-
-&log
-(-2.0,0):(   0.69314718055995,  3.14159265358979)
-(-1.0,0):(   0               ,  3.14159265358979)
-(-0.5,0):(  -0.69314718055995,  3.14159265358979)
-( 0.5,0):(  -0.69314718055995,  0               )
-( 1.0,0):(   0               ,  0               )
-( 2.0,0):(   0.69314718055995,  0               )
-
-&log
-( 2, 3):(    1.28247467873077,  0.98279372324733)
-(-2, 3):(    1.28247467873077,  2.15879893034246)
-(-2,-3):(    1.28247467873077, -2.15879893034246)
-( 2,-3):(    1.28247467873077, -0.98279372324733)
-
-&sin
-(-2.0,0):(  -0.90929742682568,  0               )
-(-1.0,0):(  -0.84147098480790,  0               )
-(-0.5,0):(  -0.47942553860420,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.47942553860420,  0               )
-( 1.0,0):(   0.84147098480790,  0               )
-( 2.0,0):(   0.90929742682568,  0               )
-
-&sin
-( 2, 3):(  9.15449914691143, -4.16890695996656)
-(-2, 3):( -9.15449914691143, -4.16890695996656)
-(-2,-3):( -9.15449914691143,  4.16890695996656)
-( 2,-3):(  9.15449914691143,  4.16890695996656)
-
-&cos
-(-2.0,0):(  -0.41614683654714,  0               )
-(-1.0,0):(   0.54030230586814,  0               )
-(-0.5,0):(   0.87758256189037,  0               )
-( 0.0,0):(   1               ,  0               )
-( 0.5,0):(   0.87758256189037,  0               )
-( 1.0,0):(   0.54030230586814,  0               )
-( 2.0,0):(  -0.41614683654714,  0               )
-
-&cos
-( 2, 3):( -4.18962569096881, -9.10922789375534)
-(-2, 3):( -4.18962569096881,  9.10922789375534)
-(-2,-3):( -4.18962569096881, -9.10922789375534)
-( 2,-3):( -4.18962569096881,  9.10922789375534)
-
-&tan
-(-2.0,0):(   2.18503986326152,  0               )
-(-1.0,0):(  -1.55740772465490,  0               )
-(-0.5,0):(  -0.54630248984379,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.54630248984379,  0               )
-( 1.0,0):(   1.55740772465490,  0               )
-( 2.0,0):(  -2.18503986326152,  0               )
-
-&tan
-( 2, 3):( -0.00376402564150,  1.00323862735361)
-(-2, 3):(  0.00376402564150,  1.00323862735361)
-(-2,-3):(  0.00376402564150, -1.00323862735361)
-( 2,-3):( -0.00376402564150, -1.00323862735361)
-
-&sec
-(-2.0,0):(  -2.40299796172238,  0               )
-(-1.0,0):(   1.85081571768093,  0               )
-(-0.5,0):(   1.13949392732455,  0               )
-( 0.0,0):(   1               ,  0               )
-( 0.5,0):(   1.13949392732455,  0               )
-( 1.0,0):(   1.85081571768093,  0               )
-( 2.0,0):(  -2.40299796172238,  0               )
-
-&sec
-( 2, 3):( -0.04167496441114,  0.09061113719624)
-(-2, 3):( -0.04167496441114, -0.09061113719624)
-(-2,-3):( -0.04167496441114,  0.09061113719624)
-( 2,-3):( -0.04167496441114, -0.09061113719624)
-
-&csc
-(-2.0,0):(  -1.09975017029462,  0               )
-(-1.0,0):(  -1.18839510577812,  0               )
-(-0.5,0):(  -2.08582964293349,  0               )
-( 0.5,0):(   2.08582964293349,  0               )
-( 1.0,0):(   1.18839510577812,  0               )
-( 2.0,0):(   1.09975017029462,  0               )
-
-&csc
-( 2, 3):(  0.09047320975321,  0.04120098628857)
-(-2, 3):( -0.09047320975321,  0.04120098628857)
-(-2,-3):( -0.09047320975321, -0.04120098628857)
-( 2,-3):(  0.09047320975321, -0.04120098628857)
-
-&cot
-(-2.0,0):(   0.45765755436029,  0               )
-(-1.0,0):(  -0.64209261593433,  0               )
-(-0.5,0):(  -1.83048772171245,  0               )
-( 0.5,0):(   1.83048772171245,  0               )
-( 1.0,0):(   0.64209261593433,  0               )
-( 2.0,0):(  -0.45765755436029,  0               )
-
-&cot
-( 2, 3):( -0.00373971037634, -0.99675779656936)
-(-2, 3):(  0.00373971037634, -0.99675779656936)
-(-2,-3):(  0.00373971037634,  0.99675779656936)
-( 2,-3):( -0.00373971037634,  0.99675779656936)
-
-&asin
-(-2.0,0):(  -1.57079632679490,  1.31695789692482)
-(-1.0,0):(  -1.57079632679490,  0               )
-(-0.5,0):(  -0.52359877559830,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.52359877559830,  0               )
-( 1.0,0):(   1.57079632679490,  0               )
-( 2.0,0):(   1.57079632679490, -1.31695789692482)
-
-&asin
-( 2, 3):(  0.57065278432110,  1.98338702991654)
-(-2, 3):( -0.57065278432110,  1.98338702991654)
-(-2,-3):( -0.57065278432110, -1.98338702991654)
-( 2,-3):(  0.57065278432110, -1.98338702991654)
-
-&acos
-(-2.0,0):(   3.14159265358979, -1.31695789692482)
-(-1.0,0):(   3.14159265358979,  0               )
-(-0.5,0):(   2.09439510239320,  0               )
-( 0.0,0):(   1.57079632679490,  0               )
-( 0.5,0):(   1.04719755119660,  0               )
-( 1.0,0):(   0               ,  0               )
-( 2.0,0):(   0               ,  1.31695789692482)
-
-&acos
-( 2, 3):(  1.00014354247380, -1.98338702991654)
-(-2, 3):(  2.14144911111600, -1.98338702991654)
-(-2,-3):(  2.14144911111600,  1.98338702991654)
-( 2,-3):(  1.00014354247380,  1.98338702991654)
-
-&atan
-(-2.0,0):(  -1.10714871779409,  0               )
-(-1.0,0):(  -0.78539816339745,  0               )
-(-0.5,0):(  -0.46364760900081,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.46364760900081,  0               )
-( 1.0,0):(   0.78539816339745,  0               )
-( 2.0,0):(   1.10714871779409,  0               )
-
-&atan
-( 2, 3):(  1.40992104959658,  0.22907268296854)
-(-2, 3):( -1.40992104959658,  0.22907268296854)
-(-2,-3):( -1.40992104959658, -0.22907268296854)
-( 2,-3):(  1.40992104959658, -0.22907268296854)
-
-&asec
-(-2.0,0):(   2.09439510239320,  0               )
-(-1.0,0):(   3.14159265358979,  0               )
-(-0.5,0):(   3.14159265358979, -1.31695789692482)
-( 0.5,0):(   0               ,  1.31695789692482)
-( 1.0,0):(   0               ,  0               )
-( 2.0,0):(   1.04719755119660,  0               )
-
-&asec
-( 2, 3):(  1.42041072246703,  0.23133469857397)
-(-2, 3):(  1.72118193112276,  0.23133469857397)
-(-2,-3):(  1.72118193112276, -0.23133469857397)
-( 2,-3):(  1.42041072246703, -0.23133469857397)
-
-&acsc
-(-2.0,0):(  -0.52359877559830,  0               )
-(-1.0,0):(  -1.57079632679490,  0               )
-(-0.5,0):(  -1.57079632679490,  1.31695789692482)
-( 0.5,0):(   1.57079632679490, -1.31695789692482)
-( 1.0,0):(   1.57079632679490,  0               )
-( 2.0,0):(   0.52359877559830,  0               )
-
-&acsc
-( 2, 3):(  0.15038560432786, -0.23133469857397)
-(-2, 3):( -0.15038560432786, -0.23133469857397)
-(-2,-3):( -0.15038560432786,  0.23133469857397)
-( 2,-3):(  0.15038560432786,  0.23133469857397)
-
-&acot
-(-2.0,0):(  -0.46364760900081,  0               )
-(-1.0,0):(  -0.78539816339745,  0               )
-(-0.5,0):(  -1.10714871779409,  0               )
-( 0.5,0):(   1.10714871779409,  0               )
-( 1.0,0):(   0.78539816339745,  0               )
-( 2.0,0):(   0.46364760900081,  0               )
-
-&acot
-( 2, 3):(  0.16087527719832, -0.22907268296854)
-(-2, 3):( -0.16087527719832, -0.22907268296854)
-(-2,-3):( -0.16087527719832,  0.22907268296854)
-( 2,-3):(  0.16087527719832,  0.22907268296854)
-
-&sinh
-(-2.0,0):(  -3.62686040784702,  0               )
-(-1.0,0):(  -1.17520119364380,  0               )
-(-0.5,0):(  -0.52109530549375,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.52109530549375,  0               )
-( 1.0,0):(   1.17520119364380,  0               )
-( 2.0,0):(   3.62686040784702,  0               )
-
-&sinh
-( 2, 3):( -3.59056458998578,  0.53092108624852)
-(-2, 3):(  3.59056458998578,  0.53092108624852)
-(-2,-3):(  3.59056458998578, -0.53092108624852)
-( 2,-3):( -3.59056458998578, -0.53092108624852)
-
-&cosh
-(-2.0,0):(   3.76219569108363,  0               )
-(-1.0,0):(   1.54308063481524,  0               )
-(-0.5,0):(   1.12762596520638,  0               )
-( 0.0,0):(   1               ,  0               )
-( 0.5,0):(   1.12762596520638,  0               )
-( 1.0,0):(   1.54308063481524,  0               )
-( 2.0,0):(   3.76219569108363,  0               )
-
-&cosh
-( 2, 3):( -3.72454550491532,  0.51182256998738)
-(-2, 3):( -3.72454550491532, -0.51182256998738)
-(-2,-3):( -3.72454550491532,  0.51182256998738)
-( 2,-3):( -3.72454550491532, -0.51182256998738)
-
-&tanh
-(-2.0,0):(  -0.96402758007582,  0               )
-(-1.0,0):(  -0.76159415595576,  0               )
-(-0.5,0):(  -0.46211715726001,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.46211715726001,  0               )
-( 1.0,0):(   0.76159415595576,  0               )
-( 2.0,0):(   0.96402758007582,  0               )
-
-&tanh
-( 2, 3):(  0.96538587902213, -0.00988437503832)
-(-2, 3):( -0.96538587902213, -0.00988437503832)
-(-2,-3):( -0.96538587902213,  0.00988437503832)
-( 2,-3):(  0.96538587902213,  0.00988437503832)
-
-&sech
-(-2.0,0):(   0.26580222883408,  0               )
-(-1.0,0):(   0.64805427366389,  0               )
-(-0.5,0):(   0.88681888397007,  0               )
-( 0.0,0):(   1               ,  0               )
-( 0.5,0):(   0.88681888397007,  0               )
-( 1.0,0):(   0.64805427366389,  0               )
-( 2.0,0):(   0.26580222883408,  0               )
-
-&sech
-( 2, 3):( -0.26351297515839, -0.03621163655877)
-(-2, 3):( -0.26351297515839,  0.03621163655877)
-(-2,-3):( -0.26351297515839, -0.03621163655877)
-( 2,-3):( -0.26351297515839,  0.03621163655877)
-
-&csch
-(-2.0,0):(  -0.27572056477178,  0               )
-(-1.0,0):(  -0.85091812823932,  0               )
-(-0.5,0):(  -1.91903475133494,  0               )
-( 0.5,0):(   1.91903475133494,  0               )
-( 1.0,0):(   0.85091812823932,  0               )
-( 2.0,0):(   0.27572056477178,  0               )
-
-&csch
-( 2, 3):( -0.27254866146294, -0.04030057885689)
-(-2, 3):(  0.27254866146294, -0.04030057885689)
-(-2,-3):(  0.27254866146294,  0.04030057885689)
-( 2,-3):( -0.27254866146294,  0.04030057885689)
-
-&coth
-(-2.0,0):(  -1.03731472072755,  0               )
-(-1.0,0):(  -1.31303528549933,  0               )
-(-0.5,0):(  -2.16395341373865,  0               )
-( 0.5,0):(   2.16395341373865,  0               )
-( 1.0,0):(   1.31303528549933,  0               )
-( 2.0,0):(   1.03731472072755,  0               )
-
-&coth
-( 2, 3):(  1.03574663776500,  0.01060478347034)
-(-2, 3):( -1.03574663776500,  0.01060478347034)
-(-2,-3):( -1.03574663776500, -0.01060478347034)
-( 2,-3):(  1.03574663776500, -0.01060478347034)
-
-&asinh
-(-2.0,0):(  -1.44363547517881,  0               )
-(-1.0,0):(  -0.88137358701954,  0               )
-(-0.5,0):(  -0.48121182505960,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.48121182505960,  0               )
-( 1.0,0):(   0.88137358701954,  0               )
-( 2.0,0):(   1.44363547517881,  0               )
-
-&asinh
-( 2, 3):(  1.96863792579310,  0.96465850440760)
-(-2, 3):( -1.96863792579310,  0.96465850440761)
-(-2,-3):( -1.96863792579310, -0.96465850440761)
-( 2,-3):(  1.96863792579310, -0.96465850440760)
-
-&acosh
-(-2.0,0):(   1.31695789692482,  3.14159265358979)
-(-1.0,0):(   0,                 3.14159265358979)
-(-0.5,0):(   0,                 2.09439510239320)
-( 0.0,0):(   0,                 1.57079632679490)
-( 0.5,0):(   0,                 1.04719755119660)
-( 1.0,0):(   0               ,  0               )
-( 2.0,0):(   1.31695789692482,  0               )
-
-&acosh
-( 2, 3):(  1.98338702991654,  1.00014354247380)
-(-2, 3):(  1.98338702991653,  2.14144911111600)
-(-2,-3):(  1.98338702991653, -2.14144911111600)
-( 2,-3):(  1.98338702991654, -1.00014354247380)
-
-&atanh
-(-2.0,0):(  -0.54930614433405,  1.57079632679490)
-(-0.5,0):(  -0.54930614433405,  0               )
-( 0.0,0):(   0               ,  0               )
-( 0.5,0):(   0.54930614433405,  0               )
-( 2.0,0):(   0.54930614433405,  1.57079632679490)
-
-&atanh
-( 2, 3):(  0.14694666622553,  1.33897252229449)
-(-2, 3):( -0.14694666622553,  1.33897252229449)
-(-2,-3):( -0.14694666622553, -1.33897252229449)
-( 2,-3):(  0.14694666622553, -1.33897252229449)
-
-&asech
-(-2.0,0):(   0               , 2.09439510239320)
-(-1.0,0):(   0               , 3.14159265358979)
-(-0.5,0):(   1.31695789692482, 3.14159265358979)
-( 0.5,0):(   1.31695789692482, 0               )
-( 1.0,0):(   0               , 0               )
-( 2.0,0):(   0               , 1.04719755119660)
-
-&asech
-( 2, 3):(  0.23133469857397, -1.42041072246703)
-(-2, 3):(  0.23133469857397, -1.72118193112276)
-(-2,-3):(  0.23133469857397,  1.72118193112276)
-( 2,-3):(  0.23133469857397,  1.42041072246703)
-
-&acsch
-(-2.0,0):(  -0.48121182505960, 0               )
-(-1.0,0):(  -0.88137358701954, 0               )
-(-0.5,0):(  -1.44363547517881, 0               )
-( 0.5,0):(   1.44363547517881, 0               )
-( 1.0,0):(   0.88137358701954, 0               )
-( 2.0,0):(   0.48121182505960, 0               )
-
-&acsch
-( 2, 3):(  0.15735549884499, -0.22996290237721)
-(-2, 3):( -0.15735549884499, -0.22996290237721)
-(-2,-3):( -0.15735549884499,  0.22996290237721)
-( 2,-3):(  0.15735549884499,  0.22996290237721)
-
-&acoth
-(-2.0,0):(  -0.54930614433405, 0               )
-(-0.5,0):(  -0.54930614433405, 1.57079632679490)
-( 0.5,0):(   0.54930614433405, 1.57079632679490)
-( 2.0,0):(   0.54930614433405, 0               )
-
-&acoth
-( 2, 3):(  0.14694666622553, -0.23182380450040)
-(-2, 3):( -0.14694666622553, -0.23182380450040)
-(-2,-3):( -0.14694666622553,  0.23182380450040)
-( 2,-3):(  0.14694666622553,  0.23182380450040)
-
-# eof
Index: gnu/usr.bin/perl/cpan/Math-Complex/t/Trig.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-Complex/t/Trig.t
diff -N gnu/usr.bin/perl/cpan/Math-Complex/t/Trig.t
--- gnu/usr.bin/perl/cpan/Math-Complex/t/Trig.t	15 Feb 2023 01:32:43 -0000	1.1.1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,387 +0,0 @@
-#!./perl
-
-#
-# Regression tests for the Math::Trig package
-#
-# The tests here are quite modest as the Math::Complex tests exercise
-# these interfaces quite vigorously.
-# 
-# -- Jarkko Hietaniemi, April 1997
-
-use strict;
-use warnings;
-use Test::More tests => 153;
-
-use Math::Trig 1.18;
-use Math::Trig 1.18 qw(:pi Inf);
-
-our $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
-our $has_inf   = !$vax_float;
-
-my $pip2 = pi / 2;
-
-use strict;
-
-our($x, $y, $z);
-
-my $eps = 1e-11;
-
-if ($^O eq 'unicos') { # See lib/Math/Complex.pm and t/lib/complex.t.
-    $eps = 1e-10;
-}
-
-sub near {
-    my $e = defined $_[2] ? $_[2] : $eps;
-    my $d = $_[1] ? abs($_[0]/$_[1] - 1) : abs($_[0]);
-    print "# near? $_[0] $_[1] : $d : $e\n";
-    $_[1] ? ($d < $e) : abs($_[0]) < $e;
-}
-
-print "# Sanity checks\n";
-
-ok(near(sin(1), 0.841470984807897));
-ok(near(cos(1), 0.54030230586814));
-ok(near(tan(1), 1.5574077246549));
-
-ok(near(sec(1), 1.85081571768093));
-ok(near(csc(1), 1.18839510577812));
-ok(near(cot(1), 0.642092615934331));
-
-ok(near(asin(1), 1.5707963267949));
-ok(near(acos(1), 0));
-ok(near(atan(1), 0.785398163397448));
-
-ok(near(asec(1), 0));
-ok(near(acsc(1), 1.5707963267949));
-ok(near(acot(1), 0.785398163397448));
-
-ok(near(sinh(1), 1.1752011936438));
-ok(near(cosh(1), 1.54308063481524));
-ok(near(tanh(1), 0.761594155955765));
-
-ok(near(sech(1), 0.648054273663885));
-ok(near(csch(1), 0.850918128239322));
-ok(near(coth(1), 1.31303528549933));
-
-ok(near(asinh(1), 0.881373587019543));
-ok(near(acosh(1), 0));
-ok(near(atanh(0.9), 1.47221948958322)); # atanh(1.0) would be an error.
-
-ok(near(asech(0.9), 0.467145308103262));
-ok(near(acsch(2), 0.481211825059603));
-ok(near(acoth(2), 0.549306144334055));
-
-print "# Basics\n";
-
-$x = 0.9;
-ok(near(tan($x), sin($x) / cos($x)));
-
-ok(near(sinh(2), 3.62686040784702));
-
-ok(near(acsch(0.1), 2.99822295029797));
-
-$x = asin(2);
-is(ref $x, 'Math::Complex');
-
-# avoid using Math::Complex here
-$x =~ /^([^-]+)(-[^i]+)i$/;
-($y, $z) = ($1, $2);
-ok(near($y,  1.5707963267949));
-ok(near($z, -1.31695789692482));
-
-ok(near(deg2rad(90), pi/2));
-
-ok(near(rad2deg(pi), 180));
-
-use Math::Trig ':radial';
-
-{
-    my ($r,$t,$z) = cartesian_to_cylindrical(1,1,1);
-
-    ok(near($r, sqrt(2)));
-    ok(near($t, deg2rad(45)));
-    ok(near($z, 1));
-
-    ($x,$y,$z) = cylindrical_to_cartesian($r, $t, $z);
-
-    ok(near($x, 1));
-    ok(near($y, 1));
-    ok(near($z, 1));
-
-    ($r,$t,$z) = cartesian_to_cylindrical(1,1,0);
-
-    ok(near($r, sqrt(2)));
-    ok(near($t, deg2rad(45)));
-    ok(near($z, 0));
-
-    ($x,$y,$z) = cylindrical_to_cartesian($r, $t, $z);
-
-    ok(near($x, 1));
-    ok(near($y, 1));
-    ok(near($z, 0));
-}
-
-{
-    my ($r,$t,$f) = cartesian_to_spherical(1,1,1);
-
-    ok(near($r, sqrt(3)));
-    ok(near($t, deg2rad(45)));
-    ok(near($f, atan2(sqrt(2), 1)));
-
-    ($x,$y,$z) = spherical_to_cartesian($r, $t, $f);
-
-    ok(near($x, 1));
-    ok(near($y, 1));
-    ok(near($z, 1));
-       
-    ($r,$t,$f) = cartesian_to_spherical(1,1,0);
-
-    ok(near($r, sqrt(2)));
-    ok(near($t, deg2rad(45)));
-    ok(near($f, deg2rad(90)));
-
-    ($x,$y,$z) = spherical_to_cartesian($r, $t, $f);
-
-    ok(near($x, 1));
-    ok(near($y, 1));
-    ok(near($z, 0));
-}
-
-{
-    my ($r,$t,$z) = cylindrical_to_spherical(spherical_to_cylindrical(1,1,1));
-
-    ok(near($r, 1));
-    ok(near($t, 1));
-    ok(near($z, 1));
-
-    ($r,$t,$z) = spherical_to_cylindrical(cylindrical_to_spherical(1,1,1));
-
-    ok(near($r, 1));
-    ok(near($t, 1));
-    ok(near($z, 1));
-}
-
-{
-    use Math::Trig 'great_circle_distance';
-
-    ok(near(great_circle_distance(0, 0, 0, pi/2), pi/2));
-
-    ok(near(great_circle_distance(0, 0, pi, pi), pi));
-
-    # London to Tokyo.
-    my @L = (deg2rad(-0.5),  deg2rad(90 - 51.3));
-    my @T = (deg2rad(139.8), deg2rad(90 - 35.7));
-
-    my $km = great_circle_distance(@L, @T, 6378);
-
-    ok(near($km, 9605.26637021388));
-}
-
-{
-    my $R2D = 57.295779513082320876798154814169;
-
-    sub frac { $_[0] - int($_[0]) }
-
-    my $lotta_radians = deg2rad(1E+20, 1);
-    ok(near($lotta_radians,  1E+20/$R2D));
-
-    my $negat_degrees = rad2deg(-1E20, 1);
-    ok(near($negat_degrees, -1E+20*$R2D));
-
-    my $posit_degrees = rad2deg(-10000, 1);
-    ok(near($posit_degrees, -10000*$R2D));
-}
-
-{
-    use Math::Trig 'great_circle_direction';
-
-    ok(near(great_circle_direction(0, 0, 0, pi/2), pi));
-
-# Retired test: Relies on atan2(0, 0), which is not portable.
-#	ok(near(great_circle_direction(0, 0, pi, pi), -pi()/2));
-
-    my @London  = (deg2rad(  -0.167), deg2rad(90 - 51.3));
-    my @Tokyo   = (deg2rad( 139.5),   deg2rad(90 - 35.7));
-    my @Berlin  = (deg2rad ( 13.417), deg2rad(90 - 52.533));
-    my @Paris   = (deg2rad (  2.333), deg2rad(90 - 48.867));
-
-    ok(near(rad2deg(great_circle_direction(@London, @Tokyo)),
-	    31.791945393073));
-
-    ok(near(rad2deg(great_circle_direction(@Tokyo, @London)),
-	    336.069766430326));
-
-    ok(near(rad2deg(great_circle_direction(@Berlin, @Paris)),
-	    246.800348034667));
-    
-    ok(near(rad2deg(great_circle_direction(@Paris, @Berlin)),
-	    58.2079877553156));
-
-    use Math::Trig 'great_circle_bearing';
-
-    ok(near(rad2deg(great_circle_bearing(@Paris, @Berlin)),
-	    58.2079877553156));
-
-    use Math::Trig 'great_circle_waypoint';
-    use Math::Trig 'great_circle_midpoint';
-
-    my ($lon, $lat);
-
-    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.0);
-
-    ok(near($lon, $London[0]));
-
-    ok(near($lat, $London[1]));
-
-    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 1.0);
-
-    ok(near($lon, $Tokyo[0]));
-
-    ok(near($lat, $Tokyo[1]));
-
-    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.5);
-
-    ok(near($lon, 1.55609593577679)); # 89.16 E
-
-    ok(near($lat, 0.36783532946162)); # 68.93 N
-
-    ($lon, $lat) = great_circle_midpoint(@London, @Tokyo);
-
-    ok(near($lon, 1.55609593577679)); # 89.16 E
-
-    ok(near($lat, 0.367835329461615)); # 68.93 N
-
-    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.25);
-
-    ok(near($lon, 0.516073562850837)); # 29.57 E
-
-    ok(near($lat, 0.400231313403387)); # 67.07 N
-
-    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.75);
-
-    ok(near($lon, 2.17494903805952)); # 124.62 E
-
-    ok(near($lat, 0.617809294053591)); # 54.60 N
-
-    use Math::Trig 'great_circle_destination';
-
-    my $dir1 = great_circle_direction(@London, @Tokyo);
-    my $dst1 = great_circle_distance(@London,  @Tokyo);
-
-    ($lon, $lat) = great_circle_destination(@London, $dir1, $dst1);
-
-    ok(near($lon, $Tokyo[0]));
-
-    ok(near($lat, $pip2 - $Tokyo[1]));
-
-    my $dir2 = great_circle_direction(@Tokyo, @London);
-    my $dst2 = great_circle_distance(@Tokyo,  @London);
-
-    ($lon, $lat) = great_circle_destination(@Tokyo, $dir2, $dst2);
-
-    ok(near($lon, $London[0]));
-
-    ok(near($lat, $pip2 - $London[1]));
-
-    my $dir3 = (great_circle_destination(@London, $dir1, $dst1))[2];
-
-    ok(near($dir3, 2.69379263839118)); # about 154.343 deg
-
-    my $dir4 = (great_circle_destination(@Tokyo,  $dir2, $dst2))[2];
-
-    ok(near($dir4, 3.6993902625701)); # about 211.959 deg
-
-    ok(near($dst1, $dst2));
-}
-
-SKIP: {
-# With netbsd-vax (or any vax) there is neither Inf, nor 1e40.
-skip("different float range", 42) if $vax_float;
-skip("no inf",                42) unless $has_inf;
-
-print "# Infinity\n";
-
-my $BigDouble = eval '1e40';
-
-# E.g. netbsd-alpha core dumps on Inf arith without this.
-local $SIG{FPE} = sub { };
-
-ok(Inf() > $BigDouble);  # This passes in netbsd-alpha.
-ok(Inf() + $BigDouble > $BigDouble); # This coredumps in netbsd-alpha.
-ok(Inf() + $BigDouble == Inf());
-ok(Inf() - $BigDouble > $BigDouble);
-ok(Inf() - $BigDouble == Inf());
-ok(Inf() * $BigDouble > $BigDouble);
-ok(Inf() * $BigDouble == Inf());
-ok(Inf() / $BigDouble > $BigDouble);
-ok(Inf() / $BigDouble == Inf());
-
-ok(-Inf() < -$BigDouble);
-ok(-Inf() + $BigDouble < $BigDouble);
-ok(-Inf() + $BigDouble == -Inf());
-ok(-Inf() - $BigDouble < -$BigDouble);
-ok(-Inf() - $BigDouble == -Inf());
-ok(-Inf() * $BigDouble < -$BigDouble);
-ok(-Inf() * $BigDouble == -Inf());
-ok(-Inf() / $BigDouble < -$BigDouble);
-ok(-Inf() / $BigDouble == -Inf());
-
-print "# sinh/sech/cosh/csch/tanh/coth unto infinity\n";
-
-ok(near(sinh(100), eval '1.3441e+43', 1e-3));
-ok(near(sech(100), eval '7.4402e-44', 1e-3));
-ok(near(cosh(100), eval '1.3441e+43', 1e-3));
-ok(near(csch(100), eval '7.4402e-44', 1e-3));
-ok(near(tanh(100), 1));
-ok(near(coth(100), 1));
-
-ok(near(sinh(-100), eval '-1.3441e+43', 1e-3));
-ok(near(sech(-100), eval ' 7.4402e-44', 1e-3));
-ok(near(cosh(-100), eval ' 1.3441e+43', 1e-3));
-ok(near(csch(-100), eval '-7.4402e-44', 1e-3));
-ok(near(tanh(-100), -1));
-ok(near(coth(-100), -1));
-
-cmp_ok(sinh(1e5), '==', Inf());
-cmp_ok(sech(1e5), '==', 0);
-cmp_ok(cosh(1e5), '==', Inf());
-cmp_ok(csch(1e5), '==', 0);
-cmp_ok(tanh(1e5), '==', 1);
-cmp_ok(coth(1e5), '==', 1);
-
-cmp_ok(sinh(-1e5), '==', -Inf());
-cmp_ok(sech(-1e5), '==', 0);
-cmp_ok(cosh(-1e5), '==', Inf());
-cmp_ok(csch(-1e5), '==', 0);
-cmp_ok(tanh(-1e5), '==', -1);
-cmp_ok(coth(-1e5), '==', -1);
-
-}
-
-print "# great_circle_distance with small angles\n";
-
-for my $e (qw(1e-2 1e-3 1e-4 1e-5)) {
-    # Can't assume == 0 because of floating point fuzz,
-    # but let's hope for at least < $e.
-    cmp_ok(great_circle_distance(0, $e, 0, $e), '<', $e);
-}
-
-print "# asin_real, acos_real\n";
-
-is(acos_real(-2.0), pi);
-is(acos_real(-1.0), pi);
-is(acos_real(-0.5), acos(-0.5));
-is(acos_real( 0.0), acos( 0.0));
-is(acos_real( 0.5), acos( 0.5));
-is(acos_real( 1.0), 0);
-is(acos_real( 2.0), 0);
-
-is(asin_real(-2.0), -&pip2);
-is(asin_real(-1.0), -&pip2);
-is(asin_real(-0.5), asin(-0.5));
-is(asin_real( 0.0), asin( 0.0));
-is(asin_real( 0.5), asin( 0.5));
-is(asin_real( 1.0),  pip2);
-is(asin_real( 2.0),  pip2);
-
-# eof
Index: gnu/usr.bin/perl/cpan/Math-Complex/t/underbar.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Math-Complex/t/underbar.t
diff -N gnu/usr.bin/perl/cpan/Math-Complex/t/underbar.t
--- gnu/usr.bin/perl/cpan/Math-Complex/t/underbar.t	15 Feb 2023 01:32:43 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-#
-# Tests that the standard Perl 5 functions that we override
-# that operate on the $_ will work correctly [perl #62412]
-#
-
-use Test::More;
-
-use strict;
-use warnings;
-
-my @f = qw(abs cos exp log sin sqrt);
-
-plan tests => scalar @f;
-
-use Math::Complex;
-
-my %CORE;
-
-for my $f (@f) {
-    local $_ = 0.5;
-    $CORE{$f} = eval "CORE::$f";
-}
-
-for my $f (@f) {
-    local $_ = 0.5;
-    is(eval "Math::Complex::$f", $CORE{$f}, $f);
-}
-
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/Memoize.pm,v
diff -u -p -a -u -p -r1.5 Memoize.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize.pm	25 Jul 2016 10:53:02 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Memoize/Memoize.pm	21 Feb 2024 15:47:01 -0000
@@ -1,207 +1,120 @@
 # -*- mode: perl; perl-indent-level: 2; -*-
+# vim: ts=8 sw=2 sts=2 noexpandtab
+
 # Memoize.pm
 #
-# Transparent memoization of idempotent functions
-#
 # Copyright 1998, 1999, 2000, 2001, 2012 M. J. Dominus.
 # You may copy and distribute this program under the
-# same terms as Perl itself.  If in doubt, 
-# write to mjd-perl-memoize+@plover.com for a license.
-
-package Memoize;
-$VERSION = '1.03_01';
-
-# Compile-time constants
-sub SCALAR () { 0 } 
-sub LIST () { 1 } 
+# same terms as Perl itself.
 
+use strict; use warnings;
 
-#
-# Usage memoize(functionname/ref,
-#               { NORMALIZER => coderef, INSTALL => name,
-#                 LIST_CACHE => descriptor, SCALAR_CACHE => descriptor }
-#
+package Memoize;
+our $VERSION = '1.16';
 
 use Carp;
-use Exporter;
-use vars qw($DEBUG);
-use Config;                     # Dammit.
-@ISA = qw(Exporter);
-@EXPORT = qw(memoize);
-@EXPORT_OK = qw(unmemoize flush_cache);
-use strict;
+use Scalar::Util 1.11 (); # for set_prototype
 
-my %memotable;
-my %revmemotable;
-my @CONTEXT_TAGS = qw(MERGE TIE MEMORY FAULT HASH);
-my %IS_CACHE_TAG = map {($_ => 1)} @CONTEXT_TAGS;
+BEGIN { require Exporter; *import = \&Exporter::import }
+our @EXPORT = qw(memoize);
+our @EXPORT_OK = qw(unmemoize flush_cache);
 
-# Raise an error if the user tries to specify one of thesepackage as a
-# tie for LIST_CACHE
+my %memotable;
 
-my %scalar_only = map {($_ => 1)} qw(DB_File GDBM_File SDBM_File ODBM_File NDBM_File);
+sub CLONE {
+  my @info = values %memotable;
+  %memotable = map +($_->{WRAPPER} => $_), @info;
+}
 
 sub memoize {
   my $fn = shift;
   my %options = @_;
-  my $options = \%options;
-  
+
   unless (defined($fn) && 
 	  (ref $fn eq 'CODE' || ref $fn eq '')) {
     croak "Usage: memoize 'functionname'|coderef {OPTIONS}";
   }
 
   my $uppack = caller;		# TCL me Elmo!
-  my $cref;			# Code reference to original function
   my $name = (ref $fn ? undef : $fn);
-
-  # Convert function names to code references
-  $cref = &_make_cref($fn, $uppack);
-
-  # Locate function prototype, if any
-  my $proto = prototype $cref;
-  if (defined $proto) { $proto = "($proto)" }
-  else { $proto = "" }
-
-  # I would like to get rid of the eval, but there seems not to be any
-  # other way to set the prototype properly.  The switch here for
-  # 'usethreads' works around a bug in threadperl having to do with
-  # magic goto.  It would be better to fix the bug and use the magic
-  # goto version everywhere.
-  my $wrapper = 
-      $Config{usethreads} 
-        ? eval "sub $proto { &_memoizer(\$cref, \@_); }" 
-        : eval "sub $proto { unshift \@_, \$cref; goto &_memoizer; }";
+  my $cref = _make_cref($fn, $uppack);
 
   my $normalizer = $options{NORMALIZER};
   if (defined $normalizer  && ! ref $normalizer) {
     $normalizer = _make_cref($normalizer, $uppack);
   }
-  
-  my $install_name;
-  if (defined $options->{INSTALL}) {
-    # INSTALL => name
-    $install_name = $options->{INSTALL};
-  } elsif (! exists $options->{INSTALL}) {
-    # No INSTALL option provided; use original name if possible
-    $install_name = $name;
-  } else {
-    # INSTALL => undef  means don't install
-  }
+
+  my $install_name = exists $options{INSTALL}
+    ? $options{INSTALL} # use given name (or, if undef: do not install)
+    : $name; # no INSTALL option provided: default to original name if possible
 
   if (defined $install_name) {
     $install_name = $uppack . '::' . $install_name
 	unless $install_name =~ /::/;
-    no strict;
-    local($^W) = 0;	       # ``Subroutine $install_name redefined at ...''
-    *{$install_name} = $wrapper; # Install memoized version
   }
 
-  $revmemotable{$wrapper} = "" . $cref; # Turn code ref into hash key
+  # convert LIST_CACHE => MERGE to SCALAR_CACHE => MERGE
+  # to ensure TIE/HASH will always be checked by _check_suitable
+  if (($options{LIST_CACHE} || '') eq 'MERGE') {
+    $options{LIST_CACHE} = $options{SCALAR_CACHE};
+    $options{SCALAR_CACHE} = 'MERGE';
+  }
 
   # These will be the caches
   my %caches;
-  for my $context (qw(SCALAR LIST)) {
-    # suppress subsequent 'uninitialized value' warnings
-    $options{"${context}_CACHE"} ||= ''; 
-
-    my $cache_opt = $options{"${context}_CACHE"};
-    my @cache_opt_args;
-    if (ref $cache_opt) {
-      @cache_opt_args = @$cache_opt;
-      $cache_opt = shift @cache_opt_args;
-    }
+  for my $context (qw(LIST SCALAR)) { # SCALAR_CACHE must be last, to process MERGE
+    my $fullopt = $options{"${context}_CACHE"} ||= 'MEMORY';
+    my ($cache_opt, @cache_opt_args) = ref $fullopt ? @$fullopt : $fullopt;
     if ($cache_opt eq 'FAULT') { # no cache
       $caches{$context} = undef;
     } elsif ($cache_opt eq 'HASH') { # user-supplied hash
       my $cache = $cache_opt_args[0];
-      my $package = ref(tied %$cache);
-      if ($context eq 'LIST' && $scalar_only{$package}) {
-        croak("You can't use $package for LIST_CACHE because it can only store scalars");
-      }
+      _check_suitable($context, ref tied %$cache);
       $caches{$context} = $cache;
-    } elsif ($cache_opt eq '' ||  $IS_CACHE_TAG{$cache_opt}) {
-      # default is that we make up an in-memory hash
+    } elsif ($cache_opt eq 'TIE') {
+      carp("TIE option to memoize() is deprecated; use HASH instead")
+        if warnings::enabled('all');
+      my $module = shift(@cache_opt_args) || '';
+      _check_suitable($context, $module);
+      my $hash = $caches{$context} = {};
+      (my $modulefile = $module . '.pm') =~ s{::}{/}g;
+      require $modulefile;
+      tie(%$hash, $module, @cache_opt_args)
+        or croak "Couldn't tie memoize hash to `$module': $!";
+    } elsif ($cache_opt eq 'MEMORY') {
       $caches{$context} = {};
-      # (this might get tied later, or MERGEd away)
+    } elsif ($cache_opt eq 'MERGE' and not ref $fullopt) { # ['MERGE'] was never supported
+      die "cannot MERGE $context\_CACHE" if $context ne 'SCALAR'; # should never happen
+      die 'bad cache setup order' if not exists $caches{LIST}; # should never happen
+      $options{MERGED} = 1;
+      $caches{SCALAR} = $caches{LIST};
     } else {
-      croak "Unrecognized option to `${context}_CACHE': `$cache_opt' should be one of (@CONTEXT_TAGS); aborting";
+      croak "Unrecognized option to `${context}_CACHE': `$cache_opt' should be one of (MERGE TIE MEMORY FAULT HASH)";
     }
   }
 
-  # Perhaps I should check here that you didn't supply *both* merge
-  # options.  But if you did, it does do something reasonable: They
-  # both get merged to the same in-memory hash.
-  if ($options{SCALAR_CACHE} eq 'MERGE' || $options{LIST_CACHE} eq 'MERGE') {
-    $options{MERGED} = 1;
-    $caches{SCALAR} = $caches{LIST};
-  }
+  my $wrapper = _wrap($install_name, $cref, $normalizer, $options{MERGED}, \%caches);
 
-  # Now deal with the TIE options
-  {
-    my $context;
-    foreach $context (qw(SCALAR LIST)) {
-      # If the relevant option wasn't `TIE', this call does nothing.
-      _my_tie($context, $caches{$context}, $options);  # Croaks on failure
-    }
+  if (defined $install_name) {
+    no strict;
+    no warnings 'redefine';
+    *{$install_name} = $wrapper;
   }
-  
-  # We should put some more stuff in here eventually.
-  # We've been saying that for serveral versions now.
-  # And you know what?  More stuff keeps going in!
-  $memotable{$cref} = 
-  {
-    O => $options,  # Short keys here for things we need to access frequently
-    N => $normalizer,
+
+  $memotable{$wrapper} = {
+    L => $caches{LIST},
+    S => $caches{SCALAR},
     U => $cref,
-    MEMOIZED => $wrapper,
-    PACKAGE => $uppack,
     NAME => $install_name,
-    S => $caches{SCALAR},
-    L => $caches{LIST},
+    WRAPPER => $wrapper,
   };
 
   $wrapper			# Return just memoized version
 }
 
-# This function tries to load a tied hash class and tie the hash to it.
-sub _my_tie {
-  my ($context, $hash, $options) = @_;
-  my $fullopt = $options->{"${context}_CACHE"};
-
-  # We already checked to make sure that this works.
-  my $shortopt = (ref $fullopt) ? $fullopt->[0] : $fullopt;
-  
-  return unless defined $shortopt && $shortopt eq 'TIE';
-  carp("TIE option to memoize() is deprecated; use HASH instead")
-      if $^W;
-
-  my @args = ref $fullopt ? @$fullopt : ();
-  shift @args;
-  my $module = shift @args;
-  if ($context eq 'LIST' && $scalar_only{$module}) {
-    croak("You can't use $module for LIST_CACHE because it can only store scalars");
-  }
-  my $modulefile = $module . '.pm';
-  $modulefile =~ s{::}{/}g;
-  eval {
-    local @INC = @INC;
-    pop @INC if $INC[-1] eq '.';
-    require $modulefile
-  };
-  if ($@) {
-    croak "Memoize: Couldn't load hash tie module `$module': $@; aborting";
-  }
-  my $rc = (tie %$hash => $module, @args);
-  unless ($rc) {
-    croak "Memoize: Couldn't tie hash to `$module': $!; aborting";
-  }
-  1;
-}
-
 sub flush_cache {
   my $func = _make_cref($_[0], scalar caller);
-  my $info = $memotable{$revmemotable{$func}};
+  my $info = $memotable{$func};
   die "$func not memoized" unless defined $info;
   for my $context (qw(S L)) {
     my $cache = $info->{$context};
@@ -216,58 +129,39 @@ sub flush_cache {
   }
 }
 
-# This is the function that manages the memo tables.
-sub _memoizer {
-  my $orig = shift;		# stringized version of ref to original func.
-  my $info = $memotable{$orig};
-  my $normalizer = $info->{N};
-  
-  my $argstr;
-  my $context = (wantarray() ? LIST : SCALAR);
-
-  if (defined $normalizer) { 
-    no strict;
-    if ($context == SCALAR) {
-      $argstr = &{$normalizer}(@_);
-    } elsif ($context == LIST) {
-      ($argstr) = &{$normalizer}(@_);
-    } else {
-      croak "Internal error \#41; context was neither LIST nor SCALAR\n";
-    }
-  } else {                      # Default normalizer
-    local $^W = 0;
-    $argstr = join chr(28),@_;  
-  }
-
-  if ($context == SCALAR) {
-    my $cache = $info->{S};
-    _crap_out($info->{NAME}, 'scalar') unless $cache;
-    if (exists $cache->{$argstr}) { 
-      return $info->{O}{MERGED}
-        ? $cache->{$argstr}[0] : $cache->{$argstr};
+sub _wrap {
+  my ($name, $orig, $normalizer, $merged, $caches) = @_;
+  my ($cache_L, $cache_S) = @$caches{qw(LIST SCALAR)};
+  undef $caches; # keep the pad from keeping the hash alive forever
+  Scalar::Util::set_prototype(sub {
+    my $argstr = do {
+      no warnings 'uninitialized';
+      defined $normalizer
+        ? ( wantarray ? ( $normalizer->( @_ ) )[0] : $normalizer->( @_ ) )
+          . '' # coerce undef to string while the warning is off
+        : join chr(28), @_;
+    };
+
+    if (wantarray) {
+      _crap_out($name, 'list') unless $cache_L;
+      exists $cache_L->{$argstr} ? (
+        @{$cache_L->{$argstr}}
+      ) : do {
+        my @q = do { no warnings 'recursion'; &$orig };
+        $cache_L->{$argstr} = \@q;
+        @q;
+      };
     } else {
-      my $val = &{$info->{U}}(@_);
-      # Scalars are considered to be lists; store appropriately
-      if ($info->{O}{MERGED}) {
-	$cache->{$argstr} = [$val];
-      } else {
-	$cache->{$argstr} = $val;
-      }
-      $val;
+      _crap_out($name, 'scalar') unless $cache_S;
+      exists $cache_S->{$argstr} ? (
+        $merged ? $cache_S->{$argstr}[0] : $cache_S->{$argstr}
+      ) : do {
+        my $val = do { no warnings 'recursion'; &$orig };
+        $cache_S->{$argstr} = $merged ? [$val] : $val;
+        $val;
+      };
     }
-  } elsif ($context == LIST) {
-    my $cache = $info->{L};
-    _crap_out($info->{NAME}, 'list') unless $cache;
-    if (exists $cache->{$argstr}) {
-      return @{$cache->{$argstr}};
-    } else {
-      my @q = &{$info->{U}}(@_);
-      $cache->{$argstr} = \@q;
-      @q;
-    }
-  } else {
-    croak "Internal error \#42; context was neither LIST nor SCALAR\n";
-  }
+  }, prototype $orig);
 }
 
 sub unmemoize {
@@ -275,35 +169,21 @@ sub unmemoize {
   my $uppack = caller;
   my $cref = _make_cref($f, $uppack);
 
-  unless (exists $revmemotable{$cref}) {
+  unless (exists $memotable{$cref}) {
     croak "Could not unmemoize function `$f', because it was not memoized to begin with";
   }
-  
-  my $tabent = $memotable{$revmemotable{$cref}};
+
+  my $tabent = $memotable{$cref};
   unless (defined $tabent) {
     croak "Could not figure out how to unmemoize function `$f'";
   }
   my $name = $tabent->{NAME};
   if (defined $name) {
     no strict;
-    local($^W) = 0;	       # ``Subroutine $install_name redefined at ...''
+    no warnings 'redefine';
     *{$name} = $tabent->{U}; # Replace with original function
   }
-  undef $memotable{$revmemotable{$cref}};
-  undef $revmemotable{$cref};
-
-  # This removes the last reference to the (possibly tied) memo tables
-  # my ($old_function, $memotabs) = @{$tabent}{'U','S','L'};
-  # undef $tabent; 
-
-#  # Untie the memo tables if they were tied.
-#  my $i;
-#  for $i (0,1) {
-#    if (tied %{$memotabs->[$i]}) {
-#      warn "Untying hash #$i\n";
-#      untie %{$memotabs->[$i]};
-#    }
-#  }
+  delete $memotable{$cref};
 
   $tabent->{U};
 }
@@ -332,7 +212,7 @@ sub _make_cref {
     my $parent = (caller(1))[3]; # Function that called _make_cref
     croak "Usage: argument 1 to `$parent' must be a function name or reference.\n";
   }
-  $DEBUG and warn "${name}($fn) => $cref in _make_cref\n";
+  our $DEBUG and warn "${name}($fn) => $cref in _make_cref\n";
   $cref;
 }
 
@@ -345,11 +225,20 @@ sub _crap_out {
   }
 }
 
-1;
-
+# Raise an error if the user tries to specify one of these packages as a
+# tie for LIST_CACHE
+my %scalar_only = map {($_ => 1)} qw(DB_File GDBM_File SDBM_File ODBM_File), map +($_, "Memoize::$_"), qw(AnyDBM_File NDBM_File);
+sub _check_suitable {
+  my ($context, $package) = @_;
+  croak "You can't use $package for LIST_CACHE because it can only store scalars"
+    if $context eq 'LIST' and $scalar_only{$package};
+}
 
+1;
 
+__END__
 
+=pod
 
 =head1 NAME
 
@@ -357,7 +246,6 @@ Memoize - Make functions faster by tradi
 
 =head1 SYNOPSIS
 
-        # This is the documentation for Memoize 1.03
 	use Memoize;
 	memoize('slow_function');
 	slow_function(arguments);    # Is faster than it was before
@@ -384,12 +272,14 @@ Options include:
 
 =head1 DESCRIPTION
 
-`Memoizing' a function makes it faster by trading space for time.  It
+I<Memoizing> a function makes it faster by trading space for time. It
 does this by caching the return values of the function in a table.
 If you call the function again with the same arguments, C<memoize>
 jumps in and gives you the value out of the table, instead of letting
 the function compute the value all over again.
 
+=head1 EXAMPLE
+
 Here is an extreme example.  Consider the Fibonacci sequence, defined
 by the following function:
 
@@ -412,14 +302,14 @@ run---fib(14) makes 1,200 extra recursiv
 and recompute things that it already computed.
 
 This function is a good candidate for memoization.  If you memoize the
-`fib' function above, it will compute fib(14) exactly once, the first
+C<fib> function above, it will compute fib(14) exactly once, the first
 time it needs to, and then save the result in a table.  Then if you
 ask for fib(14) again, it gives you the result out of the table.
 While computing fib(14), instead of computing fib(12) twice, it does
 it once; the second time it needs the value it gets it from the table.
 It doesn't compute fib(11) four times; it computes it once, getting it
 from the table the next three times.  Instead of making 1,200
-recursive calls to `fib', it makes 15.  This makes the function about
+recursive calls to C<fib>, it makes 15. This makes the function about
 150 times faster.
 
 You could do the memoization yourself, by rewriting the function, like
@@ -446,8 +336,8 @@ This makes it easy to turn memoizing on 
 
 Here's an even simpler example: I wrote a simple ray tracer; the
 program would look in a certain direction, figure out what it was
-looking at, and then convert the `color' value (typically a string
-like `red') of that object to a red, green, and blue pixel value, like
+looking at, and then convert the C<color> value (typically a string
+like C<red>) of that object to a red, green, and blue pixel value, like
 this:
 
     for ($direction = 0; $direction < 300; $direction++) {
@@ -718,7 +608,7 @@ should abort the program.  The error mes
 =item C<MERGE>
 
 C<MERGE> normally means that the memoized function does not
-distinguish between list and sclar context, and that return values in
+distinguish between list and scalar context, and that return values in
 both contexts should be stored together.  Both C<LIST_CACHE =E<gt>
 MERGE> and C<SCALAR_CACHE =E<gt> MERGE> mean the same thing.
 
@@ -740,7 +630,7 @@ if C<complicated> is memoized:
     $z = complicated(142);
 
 The first call will cache the result, say 37, in the scalar cache; the
-second will cach the list C<(37)> in the list cache.  The third call
+second will cache the list C<(37)> in the list cache.  The third call
 doesn't call the real C<complicated> function; it gets the value 37
 from the scalar cache.
 
@@ -749,9 +639,11 @@ storing its return value is a waste of s
 =E<gt> MERGE> will make C<memoize> use the same cache for scalar and
 list context return values, so that the second call uses the scalar
 cache that was populated by the first call.  C<complicated> ends up
-being called only once, and both subsequent calls return C<3> from the
+being called only once, and both subsequent calls return C<37> from the
 cache, regardless of the calling context.
 
+=back
+
 =head3 List values in scalar context
 
 Consider this function:
@@ -783,7 +675,8 @@ stored in the same disk file; this saves
 two disk files instead of one.  You can use a normalizer function to
 keep the two sets of return values separate.  For example:
 
-        tie my %cache => 'MLDBM', 'DB_File', $filename, ...;
+        local $MLDBM::UseDB = 'DB_File';
+        tie my %cache => 'MLDBM', $filename, ...;
 
 	memoize 'myfunc',
 	  NORMALIZER => 'n',
@@ -801,8 +694,6 @@ This normalizer function will store scal
 the disk file under keys that begin with C<S:>, and list context
 return values under keys that begin with C<L:>.
 
-=back
-
 =head1 OTHER FACILITIES
 
 =head2 C<unmemoize>
@@ -877,7 +768,7 @@ Do not memoize a function with side effe
 	}
 
 This function accepts two arguments, adds them, and prints their sum.
-Its return value is the numuber of characters it printed, but you
+Its return value is the number of characters it printed, but you
 probably didn't care about that.  But C<Memoize> doesn't understand
 that.  If you memoize this function, you will get the result you
 expect the first time you ask it to print the sum of 2 and 3, but
@@ -984,8 +875,8 @@ function (or when your program exits):
         tie my %cache => 'Memoize::Storable', $filename, 'nstore';
 	memoize 'function', SCALAR_CACHE => [HASH => \%cache];
 
-Include the `nstore' option to have the C<Storable> database written
-in `network order'.  (See L<Storable> for more details about this.)
+Include the C<nstore> option to have the C<Storable> database written
+in I<network order>. (See L<Storable> for more details about this.)
 
 The C<flush_cache()> function will raise a run-time error unless the
 tied package provides a C<CLEAR> method.
@@ -1016,38 +907,17 @@ C<f()> (C<f> called with no arguments) w
 is a big problem, you can supply a normalizer function that prepends
 C<"x"> to every key.
 
-=head1 MAILING LIST
-
-To join a very low-traffic mailing list for announcements about
-C<Memoize>, send an empty note to C<mjd-perl-memoize-request@plover.com>.
-
-=head1 AUTHOR
+=head1 SEE ALSO
 
-Mark-Jason Dominus (C<mjd-perl-memoize+@plover.com>), Plover Systems co.
-
-See the C<Memoize.pm> Page at http://perl.plover.com/Memoize/
-for news and upgrades.  Near this page, at
-http://perl.plover.com/MiniMemoize/ there is an article about
+At L<https://perl.plover.com/MiniMemoize/> there is an article about
 memoization and about the internals of Memoize that appeared in The
-Perl Journal, issue #13.  (This article is also included in the
-Memoize distribution as `article.html'.)
+Perl Journal, issue #13.
 
-The author's book I<Higher-Order Perl> (2005, ISBN 1558607013, published
+Mark-Jason Dominus's book I<Higher-Order Perl> (2005, ISBN 1558607013,
+published
 by Morgan Kaufmann) discusses memoization (and many other 
 topics) in tremendous detail. It is available on-line for free.
-For more information, visit http://hop.perl.plover.com/ .
-
-To join a mailing list for announcements about C<Memoize>, send an
-empty message to C<mjd-perl-memoize-request@plover.com>.  This mailing
-list is for announcements only and has extremely low traffic---fewer than
-two messages per year.
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 1998, 1999, 2000, 2001, 2012  by Mark Jason Dominus
-
-This library is free software; you may redistribute it and/or modify
-it under the same terms as Perl itself.
+For more information, visit L<https://hop.perl.plover.com/>.
 
 =head1 THANK YOU
 
@@ -1073,5 +943,16 @@ being a light in the world.
 Special thanks to Jarkko Hietaniemi, the 5.8.0 pumpking, for including
 this module in the core and for his patient and helpful guidance
 during the integration process.
+
+=head1 AUTHOR
+
+Mark Jason Dominus
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2012 by Mark Jason Dominus.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
 
 =cut
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/AnyDBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/Memoize/AnyDBM_File.pm,v
diff -u -p -a -u -p -r1.3 AnyDBM_File.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/AnyDBM_File.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Memoize/Memoize/AnyDBM_File.pm	21 Feb 2024 15:47:01 -0000
@@ -1,4 +1,26 @@
+use strict; use warnings;
+
 package Memoize::AnyDBM_File;
+our $VERSION = '1.16';
+
+our @ISA = qw(DB_File GDBM_File Memoize::NDBM_File SDBM_File ODBM_File) unless @ISA;
+
+for my $mod (@ISA) {
+  if (eval "require $mod") {
+    $mod = 'NDBM_File'
+		if $mod eq 'Memoize::NDBM_File'
+		and eval { NDBM_File->VERSION( '1.16' ) };
+    print STDERR "AnyDBM_File => Selected $mod.\n" if our $Verbose;
+    @ISA = $mod;
+    return 1;
+  }
+}
+
+die "No DBM package was successfully found or installed";
+
+__END__
+
+=pod
 
 =head1 NAME
 
@@ -6,26 +28,10 @@ Memoize::AnyDBM_File - glue to provide E
 
 =head1 DESCRIPTION
 
-See L<Memoize>.
+This class does the same thing as L<AnyDBM_File>, except that instead of
+L<NDBM_File> itself it loads L<Memoize::NDBM_File> if L<NDBM_File> lacks
+L<EXISTS|perltie/C<EXISTS>> support.
 
-=cut
+Code which requires perl 5.37.3 or newer should simply use L<AnyBDM_File> directly.
 
-use vars qw(@ISA $VERSION);
-$VERSION = '1.03';
-@ISA = qw(DB_File GDBM_File Memoize::NDBM_File Memoize::SDBM_File ODBM_File) unless @ISA;
-
-my $verbose = 1;
-
-my $mod;
-for $mod (@ISA) {
-#  (my $truemod = $mod) =~ s/^Memoize:://;
-#  my $file = "$mod.pm";
-#  $file =~ s{::}{/}g;
-  if (eval "require $mod") {
-    print STDERR "AnyDBM_File => Selected $mod.\n" if $Verbose;
-    @ISA = ($mod);	# if we leave @ISA alone, warnings abound
-    return 1;
-  }
-}
-
-die "No DBM package was successfully found or installed";
+=cut
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/Expire.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/Memoize/Expire.pm,v
diff -u -p -a -u -p -r1.3 Expire.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/Expire.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Memoize/Memoize/Expire.pm	21 Feb 2024 15:47:01 -0000
@@ -1,23 +1,16 @@
+use strict; use warnings;
 
 package Memoize::Expire;
-# require 5.00556;
+our $VERSION = '1.16';
+
 use Carp;
-$DEBUG = 0;
-$VERSION = '1.03';
+our $DEBUG;
 
-# This package will implement expiration by prepending a fixed-length header
-# to the font of the cached data.  The format of the header will be:
+# The format of the metadata is:
 # (4-byte number of last-access-time)  (For LRU when I implement it)
 # (4-byte expiration time: unsigned seconds-since-unix-epoch)
 # (2-byte number-of-uses-before-expire)
 
-sub _header_fmt () { "N N n" }
-sub _header_size () { length(_header_fmt) }
-
-# Usage:  memoize func 
-#         TIE => [Memoize::Expire, LIFETIME => sec, NUM_USES => n,
-#                 TIE => [...] ]
-
 BEGIN {
   eval {require Time::HiRes};
   unless ($@) {
@@ -43,7 +36,7 @@ sub TIEHASH {
   }
   $args{LIFETIME} ||= 0;
   $args{NUM_USES} ||= 0;
-  $args{C} = \%cache;
+  $args{C} = delete $args{HASH} || \%cache;
   bless \%args => $package;
 }
 
@@ -54,27 +47,25 @@ sub STORE {
   # The call that results in a value to store into the cache is the
   # first of the NUM_USES allowed calls.
   my $header = _make_header(time, $expire_time, $self->{NUM_USES}-1);
-  $self->{C}{$key} = $header . $value;
+  @{$self->{C}}{"H$key", "V$key"} = ($header, $value);
   $value;
 }
 
 sub FETCH {
   $DEBUG and print STDERR " >> Fetch cached value for $_[1]\n";
-  my ($data, $last_access, $expire_time, $num_uses_left) = _get_item($_[0]{C}{$_[1]});
+  my ($last_access, $expire_time, $num_uses_left) = _get_header($_[0]{C}{"H$_[1]"});
   $DEBUG and print STDERR " >>   (ttl: ", ($expire_time-time()), ", nuses: $num_uses_left)\n";
-  $num_uses_left--;
-  $last_access = time;
-  _set_header(@_, $data, $last_access, $expire_time, $num_uses_left);
-  $data;
+  $_[0]{C}{"H$_[1]"} = _make_header(time, $expire_time, --$num_uses_left);
+  $_[0]{C}{"V$_[1]"};
 }
 
 sub EXISTS {
   $DEBUG and print STDERR " >> Exists $_[1]\n";
-  unless (exists $_[0]{C}{$_[1]}) {
+  unless (exists $_[0]{C}{"V$_[1]"}) {
     $DEBUG and print STDERR "    Not in underlying hash at all.\n";
     return 0;
   }
-  my $item = $_[0]{C}{$_[1]};
+  my $item = $_[0]{C}{"H$_[1]"};
   my ($last_access, $expire_time, $num_uses_left) = _get_header($item);
   my $ttl = $expire_time - time;
   if ($DEBUG) {
@@ -91,26 +82,21 @@ sub EXISTS {
   }
 }
 
-# Arguments: last access time, expire time, number of uses remaining
-sub _make_header {
-  pack "N N n", @_;
+sub FIRSTKEY {
+  scalar keys %{$_[0]{C}};
+  &NEXTKEY;
 }
 
-sub _strip_header {
-  substr($_[0], 10);
+sub NEXTKEY {
+  while (defined(my $key = each %{$_[0]{C}})) {
+    return substr $key, 1 if 'V' eq substr $key, 0, 1;
+  }
+  undef;
 }
 
 # Arguments: last access time, expire time, number of uses remaining
-sub _set_header {
-  my ($self, $key, $data, @header) = @_;
-  $self->{C}{$key} = _make_header(@header) . $data;
-}
-
-sub _get_item {
-  my $data = substr($_[0], 10);
-  my @header = unpack "N N n", substr($_[0], 0, 10);
-#  print STDERR " >> _get_item: $data => $data @header\n";
-  ($data, @header);
+sub _make_header {
+  pack "N N n", @_;
 }
 
 # Return last access time, expire time, number of uses remaining
@@ -120,6 +106,10 @@ sub _get_header  {
 
 1;
 
+__END__
+
+=pod
+
 =head1 NAME 
 
 Memoize::Expire - Plug-in module for automatic expiration of memoized values
@@ -249,7 +239,7 @@ the cache, and it should return the cach
 For example, MyExpirePolicy::TIEHASH might create an object that
 contains a regular Perl hash (which it will to store the cached
 values) and some extra information about the arguments and how old the
-data is and things like that.  Let us call this object `C'.
+data is and things like that. Let us call this object I<C<C>>.
 
 When Memoize needs to check to see if an entry is in the cache
 already, it will invoke C<< C->EXISTS(key) >>.  C<key> is the normalized
@@ -282,7 +272,7 @@ cache item after ten seconds.
               $cache->{$key}{EXPIRE_TIME} > time) {
 	    return 1
 	  } else {
-	    return 0;  # Do NOT return `undef' here.
+	    return 0;  # Do NOT return undef here
 	  }
 	}
 
@@ -318,11 +308,10 @@ See the documentation for details.
 
 =head1 ALTERNATIVES
 
-Brent Powers has a C<Memoize::ExpireLRU> module that was designed to
+Brent Powers has a L<Memoize::ExpireLRU> module that was designed to
 work with Memoize and provides expiration of least-recently-used data.
 The cache is held at a fixed number of entries, and when new data
-comes in, the least-recently used data is expired.  See
-L<http://search.cpan.org/search?mode=module&query=ExpireLRU>.
+comes in, the least-recently used data is expired.
 
 Joshua Chamas's Tie::Cache module may be useful as an expiration
 manager.  (If you try this, let me know how it works out.)
@@ -349,7 +338,7 @@ C<Time::HiRes> installed.
 
 =head1 AUTHOR
 
-Mark-Jason Dominus (mjd-perl-memoize+@plover.com)
+Mark-Jason Dominus
 
 Mike Cariaso provided valuable insight into the best way to solve this
 problem.
@@ -359,12 +348,5 @@ problem.
 perl(1)
 
 The Memoize man page.
-
-http://www.plover.com/~mjd/perl/Memoize/  (for news and updates)
-
-I maintain a mailing list on which I occasionally announce new
-versions of Memoize.  The list is for announcements only, not
-discussion.  To join, send an empty message to
-mjd-perl-memoize-request@Plover.com.
 
 =cut
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireFile.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireFile.pm
diff -N gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireFile.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireFile.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-package Memoize::ExpireFile;
-
-=head1 NAME
-
-Memoize::ExpireFile - test for Memoize expiration semantics
-
-=head1 DESCRIPTION
-
-See L<Memoize::Expire>.
-
-=cut
-
-$VERSION = '1.03';
-use Carp;
-
-my $Zero = pack("N", 0);
-
-sub TIEHASH {
-  my ($package, %args) = @_;
-  my $cache = $args{HASH} || {};
-  bless {ARGS => \%args, C => $cache} => $package;
-}
-
-
-sub STORE {
-#  print "Expiry manager STORE handler\n";
-  my ($self, $key, $data) = @_;
-  my $cache = $self->{C};
-  my $cur_date = pack("N", (stat($key))[9]);
-  $cache->{"C$key"} = $data;
-  $cache->{"T$key"} = $cur_date;
-}
-
-sub FETCH {
-  my ($self, $key) = @_;
-  $self->{C}{"C$key"};
-}
-
-sub EXISTS {
-#  print "Expiry manager EXISTS handler\n";
-  my ($self, $key) = @_;
-  my $cache_date = $self->{C}{"T$key"} || $Zero;
-  my $file_date = pack("N", (stat($key))[9]);#
-#  if ($self->{ARGS}{CHECK_DATE} && $old_date gt $cur_date) {
-#    return $self->{ARGS}{CHECK_DATE}->($key, $old_date, $cur_date);
-#  } 
-  my $res = $cache_date ge $file_date;
-#  print $res ? "... still good\n" : "... expired\n";
-  $res;
-}
-
-1;
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireTest.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireTest.pm
diff -N gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireTest.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/ExpireTest.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,49 +0,0 @@
-package Memoize::ExpireTest;
-
-=head1 NAME
-
-Memoize::ExpireTest - test for Memoize expiration semantics
-
-=head1 DESCRIPTION
-
-This module is just for testing expiration semantics.  It's not a very
-good example of how to write an expiration module.
-
-If you are looking for an example, I recommend that you look at the
-simple example in the Memoize::Expire documentation, or at the code
-for Memoize::Expire itself.
-
-If you have questions, I will be happy to answer them if you send them
-to mjd-perl-memoize+@plover.com.
-
-=cut
-
-$VERSION = '1.03';
-my %cache;
-
-sub TIEHASH {	
-  my ($pack) = @_;
-  bless \%cache => $pack;
-}
-
-sub EXISTS {
-  my ($cache, $key) = @_;
-  exists $cache->{$key} ? 1 : 0;
-}
-
-sub FETCH {
-  my ($cache, $key) = @_;
-  $cache->{$key};
-}
-
-sub STORE {
-  my ($cache, $key, $val) = @_;
-  $cache->{$key} = $val;
-}
-
-sub expire {
-  my ($key) = @_;
-  delete $cache{$key};
-}
-
-1;
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/NDBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/Memoize/NDBM_File.pm,v
diff -u -p -a -u -p -r1.3 NDBM_File.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/NDBM_File.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Memoize/Memoize/NDBM_File.pm	21 Feb 2024 15:47:01 -0000
@@ -1,77 +1,38 @@
-package Memoize::NDBM_File;
-
-=head1 NAME
-
-Memoize::NDBM_File - glue to provide EXISTS for NDBM_File for Storable use
-
-=head1 DESCRIPTION
+use strict; use warnings;
 
-See L<Memoize>.
-
-=cut
+package Memoize::NDBM_File;
+our $VERSION = '1.16';
 
 use NDBM_File;
-@ISA = qw(NDBM_File);
-$VERSION = '1.03';
-
-$Verbose = 0;
+our @ISA = qw(NDBM_File);
 
-sub AUTOLOAD {
-  warn "Nonexistent function $AUTOLOAD invoked in Memoize::NDBM_File\n";
-}
-
-sub import {
-  warn "Importing Memoize::NDBM_File\n" if $Verbose;
+# NDBM_File cannot store undef and will store an empty string if you try
+# but it does return undef if you try to read a non-existent key
+# so we can emulate exists() using defined()
+sub EXISTS {
+	defined shift->FETCH(@_);
 }
 
+# Perl 5.37.3 adds this EXISTS emulation to NDBM_File itself
+delete $Memoize::NDBM_File::{'EXISTS'}
+	if eval { NDBM_File->VERSION( '1.16' ) };
 
-my %keylist;
-
-# This is so ridiculous...
-sub _backhash {
-  my $self = shift;
-  my %fakehash;
-  my $k; 
-  for ($k = $self->FIRSTKEY(); defined $k; $k = $self->NEXTKEY($k)) {
-    $fakehash{$k} = undef;
-  }
-  $keylist{$self} = \%fakehash;
-}
-
-sub EXISTS {
-  warn "Memoize::NDBM_File EXISTS (@_)\n" if $Verbose;
-  my $self = shift;
-  _backhash($self)  unless exists $keylist{$self};
-  my $r = exists $keylist{$self}{$_[0]};
-  warn "Memoize::NDBM_File EXISTS (@_) ==> $r\n" if $Verbose;
-  $r;
-}
+1;
 
-sub DEFINED {
-  warn "Memoize::NDBM_File DEFINED (@_)\n" if $Verbose;
-  my $self = shift;
-  _backhash($self)  unless exists $keylist{$self};
-  defined $keylist{$self}{$_[0]};
-}
+__END__
 
-sub DESTROY {
-  warn "Memoize::NDBM_File DESTROY (@_)\n" if $Verbose;
-  my $self = shift;
-  delete $keylist{$self};   # So much for reference counting...
-  $self->SUPER::DESTROY(@_);
-}
+=pod
 
-# Maybe establish the keylist at TIEHASH time instead?
+=head1 NAME
 
-sub STORE {
-  warn "Memoize::NDBM_File STORE (@_)\n" if $VERBOSE;
-  my $self = shift;
-  $keylist{$self}{$_[0]} = undef;
-  $self->SUPER::STORE(@_);
-}
+Memoize::NDBM_File - glue to provide EXISTS for NDBM_File for Storable use
 
+=head1 DESCRIPTION
 
+This class provides L<EXISTS|perltie/C<EXISTS>> support for L<NDBM_File>.
 
-# Inherit FETCH and TIEHASH
+L<In Perl 5.37.3|https://github.com/Perl/perl5/commit/c0a1a377c02ed789f5eff667f46a2314a05c5a4c>,
+support for C<EXISTS> was added to L<NDBM_File> itself.
+Code which requires such a perl should simply use L<NBDM_File> directly.
 
-1;
+=cut
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/SDBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/Memoize/SDBM_File.pm,v
diff -u -p -a -u -p -r1.3 SDBM_File.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/SDBM_File.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Memoize/Memoize/SDBM_File.pm	21 Feb 2024 15:47:01 -0000
@@ -1,75 +1,27 @@
+use strict; use warnings;
+
 package Memoize::SDBM_File;
+our $VERSION = '1.16';
 
-=head1 NAME
+use SDBM_File 1.01; # for EXISTS support
+our @ISA = qw(SDBM_File);
 
-Memoize::SDBM_File - glue to provide EXISTS for SDBM_File for Storable use
+1;
 
-=head1 DESCRIPTION
+__END__
 
-See L<Memoize>.
+=pod
 
-=cut
+=head1 NAME
 
-use SDBM_File;
-@ISA = qw(SDBM_File);
-$VERSION = '1.03';
-
-$Verbose = 0;
-
-sub AUTOLOAD {
-  warn "Nonexistent function $AUTOLOAD invoked in Memoize::SDBM_File\n";
-}
-
-sub import {
-  warn "Importing Memoize::SDBM_File\n" if $Verbose;
-}
-
-
-my %keylist;
-
-# This is so ridiculous...
-sub _backhash {
-  my $self = shift;
-  my %fakehash;
-  my $k; 
-  for ($k = $self->FIRSTKEY(); defined $k; $k = $self->NEXTKEY($k)) {
-    $fakehash{$k} = undef;
-  }
-  $keylist{$self} = \%fakehash;
-}
-
-sub EXISTS {
-  warn "Memoize::SDBM_File EXISTS (@_)\n" if $Verbose;
-  my $self = shift;
-  _backhash($self)  unless exists $keylist{$self};
-  my $r = exists $keylist{$self}{$_[0]};
-  warn "Memoize::SDBM_File EXISTS (@_) ==> $r\n" if $Verbose;
-  $r;
-}
-
-sub DEFINED {
-  warn "Memoize::SDBM_File DEFINED (@_)\n" if $Verbose;
-  my $self = shift;
-  _backhash($self)  unless exists $keylist{$self};
-  defined $keylist{$self}{$_[0]};
-}
-
-sub DESTROY {
-  warn "Memoize::SDBM_File DESTROY (@_)\n" if $Verbose;
-  my $self = shift;
-  delete $keylist{$self};   # So much for reference counting...
-  $self->SUPER::DESTROY(@_);
-}
-
-# Maybe establish the keylist at TIEHASH time instead?
-
-sub STORE {
-  warn "Memoize::SDBM_File STORE (@_)\n" if $VERBOSE;
-  my $self = shift;
-  $keylist{$self}{$_[0]} = undef;
-  $self->SUPER::STORE(@_);
-}
+Memoize::SDBM_File - DEPRECATED compability shim
 
-# Inherit FETCH and TIEHASH
+=head1 DESCRIPTION
 
-1;
+This class used to provide L<EXISTS|perltie/C<EXISTS>> support for L<SDBM_File>
+before support for C<EXISTS> was added to L<SDBM_File> itself
+L<in Perl 5.6.0|perl56delta/SDBM_File>.
+
+Any code still using this class should be rewritten to use L<SBDM_File> directly.
+
+=cut
Index: gnu/usr.bin/perl/cpan/Memoize/Memoize/Storable.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/Memoize/Storable.pm,v
diff -u -p -a -u -p -r1.3 Storable.pm
--- gnu/usr.bin/perl/cpan/Memoize/Memoize/Storable.pm	5 Feb 2017 00:32:01 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Memoize/Memoize/Storable.pm	21 Feb 2024 15:47:01 -0000
@@ -1,27 +1,19 @@
-package Memoize::Storable;
-
-=head1 NAME
-
-Memoize::Storable - store Memoized data in Storable database
-
-=head1 DESCRIPTION
+use strict; use warnings;
 
-See L<Memoize>.
+package Memoize::Storable;
+our $VERSION = '1.16';
 
-=cut
+use Storable 1.002 (); # for lock_* function variants
 
-use Storable ();
-$VERSION = '1.03';
-$Verbose = 0;
+our $Verbose;
 
 sub TIEHASH {
-  require Carp if $Verbose;
   my $package = shift;
   my $filename = shift;
-  my $truehash = (-e $filename) ? Storable::retrieve($filename) : {};
+  my $truehash = (-e $filename) ? Storable::lock_retrieve($filename) : {};
   my %options;
   print STDERR "Memoize::Storable::TIEHASH($filename, @_)\n" if $Verbose;
-  @options{@_} = ();
+  @options{@_} = (1) x @_;
   my $self = 
     {FILENAME => $filename, 
      H => $truehash, 
@@ -31,34 +23,30 @@ sub TIEHASH {
 }
 
 sub STORE {
-  require Carp if $Verbose;
   my $self = shift;
   print STDERR "Memoize::Storable::STORE(@_)\n" if $Verbose;
   $self->{H}{$_[0]} = $_[1];
 }
 
 sub FETCH {
-  require Carp if $Verbose;
   my $self = shift;
   print STDERR "Memoize::Storable::FETCH(@_)\n" if $Verbose;
   $self->{H}{$_[0]};
 }
 
 sub EXISTS {
-  require Carp if $Verbose;
   my $self = shift;
   print STDERR "Memoize::Storable::EXISTS(@_)\n" if $Verbose;
   exists $self->{H}{$_[0]};
 }
 
 sub DESTROY {
-  require Carp if $Verbose;
   my $self= shift;
   print STDERR "Memoize::Storable::DESTROY(@_)\n" if $Verbose;
   if ($self->{OPTIONS}{'nstore'}) {
-    Storable::nstore($self->{H}, $self->{FILENAME});
+    Storable::lock_nstore($self->{H}, $self->{FILENAME});
   } else {
-    Storable::store($self->{H}, $self->{FILENAME});
+    Storable::lock_store($self->{H}, $self->{FILENAME});
   }
 }
 
@@ -69,4 +57,19 @@ sub FIRSTKEY {
 sub NEXTKEY {
   undef;
 }
+
 1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Memoize::Storable - store Memoized data in Storable database
+
+=head1 DESCRIPTION
+
+See L<Memoize>.
+
+=cut
Index: gnu/usr.bin/perl/cpan/Memoize/t/array.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/array.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/array.t
--- gnu/usr.bin/perl/cpan/Memoize/t/array.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,68 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-
-
-print "1..11\n";
-
-sub timelist {
-  return (time) x $_[0];
-}
-
-memoize('timelist');
-
-@t1 = &timelist(1);
-sleep 2;
-@u1 = &timelist(1);
-print ((("@t1" eq "@u1") ? '' : 'not '), "ok 1\n");
-
-@t7 = &timelist(7);
-print (((@t7 == 7) ? '' : 'not '), "ok 2\n");
-$BAD = 0;
-for ($i = 1; $i < 7; $i++) {
-  $BAD++ unless $t7[$i-1] == $t7[$i];
-}
-print (($BAD ? 'not ' : ''), "ok 3\n");
-
-sleep 2;
-@u7 = &timelist(7);
-print (((@u7 == 7) ? '' : 'not '), "ok 4\n");
-$BAD = 0;
-for ($i = 1; $i < 7; $i++) {
-  $BAD++ unless $u7[$i-1] == $u7[$i];
-}
-print (($BAD ? 'not ' : ''), "ok 5\n");
-# Properly memoized?
-print ((("@t7" eq "@u7") ? '' : 'not '), "ok 6\n");
-
-sub con {
-  return wantarray()
-}
-
-# Same arguments yield different results in different contexts?
-memoize('con');
-$s = con(1);
-@a = con(1);
-print ((($s == $a[0]) ? 'not ' : ''), "ok 7\n");
-
-# Context propagated correctly?
-print ((($s eq '') ? '' : 'not '), "ok 8\n"); # Scalar context
-print ((("@a" eq '1' && @a == 1) ? '' : 'not '), "ok 9\n"); # List context
-
-# Context propagated correctly to normalizer?
-sub n {
-  my $arg = shift;
-  my $test = shift;
-  if (wantarray) {
-    print ((($arg eq ARRAY) ? '' : 'not '), "ok $test\n"); # List context
-  } else {
-    print ((($arg eq SCALAR) ? '' : 'not '), "ok $test\n"); # Scalar context
-  }
-}
-
-sub f { 1 }
-memoize('f', NORMALIZER => 'n');
-$s = f('SCALAR', 10);		# Test 10
-@a = f('ARRAY' , 11);		# Test 11
-
Index: gnu/usr.bin/perl/cpan/Memoize/t/array_confusion.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/array_confusion.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/array_confusion.t
--- gnu/usr.bin/perl/cpan/Memoize/t/array_confusion.t	24 Mar 2014 14:58:55 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize 'memoize', 'unmemoize';
-use Test::More;
-
-sub reff {
-  return [1,2,3];
-
-}
-
-sub listf {
-  return (1,2,3);
-}
-
-sub f17 { return 17 }
-
-plan tests => 7;
-
-memoize 'reff', LIST_CACHE => 'MERGE';
-memoize 'listf';
-
-$s = reff();
-@a = reff();
-is(scalar(@a), 1, "reff list context");
-
-$s = listf();
-@a = listf();
-is(scalar(@a), 3, "listf list context");
-
-unmemoize 'reff';
-memoize 'reff', LIST_CACHE => 'MERGE';
-unmemoize 'listf';
-memoize 'listf';
-
-@a = reff();
-$s = reff();
-is(scalar @a, 1, "reff list context");
-
-@a = listf();
-$s = listf();
-is(scalar @a, 3, "listf list context");
-
-memoize 'f17', SCALAR_CACHE => 'MERGE';
-is(f17(), 17, "f17 first call");
-is(f17(), 17, "f17 second call");
-is(scalar(f17()), 17, "f17 scalar context call");
Index: gnu/usr.bin/perl/cpan/Memoize/t/basic.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/basic.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/basic.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/basic.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,90 @@
+use strict; use warnings;
+use Memoize;
+use Test::More tests => 27;
+
+# here we test memoize() itself i.e. whether it sets everything up as requested
+# (except for the (LIST|SCALAR)_CACHE options which are tested elsewhere)
+
+my ( $sub, $wrapped );
+
+sub dummy {1}
+$sub = \&dummy;
+$wrapped = memoize 'dummy';
+isnt \&dummy, $sub, 'memoizing replaces the sub';
+is ref $wrapped, 'CODE', '... and returns a coderef';
+is \&dummy, $wrapped, '... which is the replacement';
+
+sub dummy_i {1}
+$sub = \&dummy_i;
+$wrapped = memoize 'dummy_i', INSTALL => 'another';
+is \&dummy_i, $sub, 'INSTALL does not replace the sub';
+is \&another, $wrapped, '... but installs the memoized version where requested';
+
+sub dummy_p {1}
+$sub = \&dummy_p;
+$wrapped = memoize 'dummy_p', INSTALL => 'another::package::too';
+is \&another::package::too, $wrapped, '... even if that is a whole other package';
+
+sub find_sub {
+	my ( $needle, $symtbl ) = ( @_, *main::{'HASH'} );
+	while ( my ( $name, $glob ) = each %$symtbl ) {
+		if ( $name =~ /::\z/ ) {
+			find_sub( $needle, *$glob{'HASH'} ) unless *$glob{'HASH'} == $symtbl;
+		} elsif ( defined( my $sub = eval { *$glob{'CODE'} } ) ) {
+			return 1 if $needle == $sub;
+		}
+	}
+	return !1;
+}
+
+sub dummy_u {1}
+$sub = \&dummy_u;
+$wrapped = memoize 'dummy_u', INSTALL => undef;
+is \&dummy_u, $sub, '... unless the passed name is undef';
+ok !find_sub( $wrapped ), '... which does not install the memoized version anywhere';
+
+$sub = sub {1};
+$wrapped = memoize $sub;
+is ref $wrapped, 'CODE', 'memoizing a $coderef wraps it';
+ok !find_sub( $wrapped ), '... without installing the memoized version anywhere';
+
+$sub = sub {1};
+$wrapped = memoize $sub, INSTALL => 'another';
+is \&another, $wrapped, '... unless requested using INSTALL';
+
+my $num_args;
+sub fake_normalize { $num_args = @_ }
+$wrapped = memoize sub {1}, NORMALIZER => 'fake_normalize';
+$wrapped->( ('x') x 7 );
+is $num_args, 7, 'NORMALIZER installs the requested normalizer; both by name';
+$wrapped = memoize sub {1}, NORMALIZER => \&fake_normalize;
+$wrapped->( ('x') x 23 );
+is $num_args, 23, '... as well as by reference';
+
+$wrapped = eval { memoize 'dummy_none' };
+is $wrapped, undef, 'memoizing a non-existent function fails';
+like $@, qr/^Cannot operate on nonexistent function `dummy_none'/, '... with the expected error';
+
+for my $nonsub ({}, [], \my $x) {
+	is eval { memoize $nonsub }, undef, "memoizing ${\ref $nonsub} ref fails";
+	like $@, qr/^Usage: memoize 'functionname'\|coderef \{OPTIONS\}/, '... with the expected error';
+}
+
+sub no_warnings_ok (&$) {
+	my $w;
+	local $SIG{'__WARN__'} = sub { push @$w, @_; &diag };
+	shift->();
+	local $Test::Builder::Level = $Test::Builder::Level + 1;
+	is( $w, undef, shift ) or diag join '', @$w;
+}
+
+sub q1 ($) { $_[0] + 1 }
+sub q2 ()  { time }
+sub q3     { join "--", @_ }
+
+no_warnings_ok { memoize 'q1' } 'no warnings with $ protype';
+no_warnings_ok { memoize 'q2' } 'no warnings with empty protype';
+no_warnings_ok { memoize 'q3' } 'no warnings without protype';
+is q1(@{['a'..'z']}), 27, '$ prototype is honored';
+is eval('q2("test")'), undef, 'empty prototype is honored';
+like $@, qr/^Too many arguments for main::q2 /, '... with the expected error';
Index: gnu/usr.bin/perl/cpan/Memoize/t/cache.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/cache.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/cache.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/cache.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,148 @@
+use strict; use warnings;
+use Memoize 0.45 qw(memoize unmemoize);
+use Fcntl;
+use Test::More tests => 65;
+
+sub list { wantarray ? @_ : $_[-1] }
+
+# Test FAULT
+sub ns {}
+sub na {}
+ok eval { memoize 'ns', SCALAR_CACHE => 'FAULT'; 1 }, 'SCALAR_CACHE => FAULT';
+ok eval { memoize 'na', LIST_CACHE => 'FAULT'; 1 }, 'LIST_CACHE => FAULT';
+is eval { scalar(ns()) }, undef, 'exception in scalar context';
+is eval { list(na()) }, undef, 'exception in list context';
+
+# Test FAULT/FAULT
+sub dummy {1}
+for ([qw(FAULT FAULT)], [qw(FAULT MERGE)], [qw(MERGE FAULT)]) {
+	my ($l_opt, $s_opt) = @$_;
+	my $memodummy = memoize 'dummy', LIST_CACHE => $l_opt, SCALAR_CACHE => $s_opt, INSTALL => undef;
+	my ($ret, $e);
+	{ local $@; $ret = eval { scalar $memodummy->() }; $e = $@ }
+	is $ret, undef, "scalar context fails under $l_opt/$s_opt";
+	like $e, qr/^Anonymous function called in forbidden scalar context/, '... with the right error message';
+	{ local $@; $ret = eval { +($memodummy->())[0] }; $e = $@ }
+	is $ret, undef, "list context fails under $l_opt/$s_opt";
+	like $e, qr/^Anonymous function called in forbidden list context/, '... with the right error message';
+	unmemoize $memodummy;
+}
+
+# Test HASH
+my (%s, %l);
+sub nul {}
+ok eval { memoize 'nul', SCALAR_CACHE => [HASH => \%s], LIST_CACHE => [HASH => \%l]; 1 }, '*_CACHE => HASH';
+nul('x');
+nul('y');
+is_deeply [sort keys %s], [qw(x y)], 'scalar context calls populate SCALAR_CACHE';
+is_deeply \%l, {}, '... and does not touch the LIST_CACHE';
+%s = ();
+() = nul('p');
+() = nul('q');
+is_deeply [sort keys %l], [qw(p q)], 'list context calls populate LIST_CACHE';
+is_deeply \%s, {}, '... and does not touch the SCALAR_CACHE';
+
+# Test MERGE
+sub xx { wantarray }
+ok !scalar(xx()), 'false in scalar context';
+ok list(xx()), 'true in list context';
+ok eval { memoize 'xx', LIST_CACHE => 'MERGE'; 1 }, 'LIST_CACHE => MERGE';
+ok !scalar(xx()), 'false in scalar context again';
+# Should return cached false value from previous invocation
+ok !list(xx()), 'still false in list context';
+
+sub reff { [1,2,3] }
+sub listf { (1,2,3) }
+
+memoize 'reff', LIST_CACHE => 'MERGE';
+memoize 'listf';
+
+scalar reff();
+is_deeply [reff()], [[1,2,3]], 'reff list context after scalar context';
+
+scalar listf();
+is_deeply [listf()], [1,2,3], 'listf list context after scalar context';
+
+unmemoize 'reff';
+memoize 'reff', LIST_CACHE => 'MERGE';
+unmemoize 'listf';
+memoize 'listf';
+
+is_deeply [reff()], [[1,2,3]], 'reff list context';
+
+is_deeply [listf()], [1,2,3], 'listf list context';
+
+sub f17 { return 17 }
+memoize 'f17', SCALAR_CACHE => 'MERGE';
+is_deeply [f17()], [17], 'f17 first call';
+is_deeply [f17()], [17], 'f17 second call';
+is scalar(f17()), 17, 'f17 scalar context call';
+
+my (%cache, $num_cache_misses);
+sub cacheit {
+	++$num_cache_misses;
+	"cacheit result";
+}
+sub test_cacheit {
+	is scalar(cacheit()), 'cacheit result', 'scalar context';
+	is $num_cache_misses, 1, 'function called once';
+
+	is +(cacheit())[0], 'cacheit result', 'list context';
+	is $num_cache_misses, 1, 'function not called again';
+
+	is_deeply [values %cache], [['cacheit result']], 'expected cached value';
+
+	%cache = ();
+
+	is +(cacheit())[0], 'cacheit result', 'list context';
+	is $num_cache_misses, 2, 'function again called after clearing the cache';
+
+	is scalar(cacheit()), 'cacheit result', 'scalar context';
+	is $num_cache_misses, 2, 'function not called again';
+}
+
+memoize 'cacheit', LIST_CACHE => [HASH => \%cache], SCALAR_CACHE => 'MERGE';
+test_cacheit;
+unmemoize 'cacheit';
+( $num_cache_misses, %cache ) = ();
+memoize 'cacheit', SCALAR_CACHE => [HASH => \%cache], LIST_CACHE => 'MERGE';
+test_cacheit;
+
+# Test errors
+my @w;
+my $sub = eval {
+	local $SIG{'__WARN__'} = sub { push @w, @_ };
+	memoize(sub {}, LIST_CACHE => ['TIE', 'WuggaWugga']);
+};
+is $sub, undef, 'bad TIE fails';
+like $@, qr/^Can't locate WuggaWugga.pm in \@INC/, '... with the expected error';
+like $w[0], qr/^TIE option to memoize\(\) is deprecated; use HASH instead/, '... and the expected deprecation warning';
+is @w, 1, '... and no other warnings';
+
+is eval { memoize sub {}, LIST_CACHE => 'YOB GORGLE' }, undef, 'bad LIST_CACHE fails';
+like $@, qr/^Unrecognized option to `LIST_CACHE': `YOB GORGLE'/, '... with the expected error';
+
+is eval { memoize sub {}, SCALAR_CACHE => ['YOB GORGLE'] }, undef, 'bad SCALAR_CACHE fails';
+like $@, qr/^Unrecognized option to `SCALAR_CACHE': `YOB GORGLE'/, '... with the expected error';
+
+for my $option (qw(LIST_CACHE SCALAR_CACHE)) {
+	is eval { memoize sub {}, $option => ['MERGE'] }, undef, "$option=>['MERGE'] fails";
+	like $@, qr/^Unrecognized option to `$option': `MERGE'/, '... with the expected error';
+}
+
+# this test needs a DBM which
+# a) Memoize knows is scalar-only
+# b) is always available (on all platforms, perl configs etc)
+# c) never fails to load
+# so we use AnyDBM_File (which fulfills (a) & (b))
+# on top of a fake dummy DBM (ditto (b) & (c))
+sub DummyDBM::TIEHASH { bless {}, shift }
+$INC{'DummyDBM.pm'} = 1;
+@AnyDBM_File::ISA = 'DummyDBM';
+$sub = eval {
+	no warnings;
+	memoize sub {}, SCALAR_CACHE => [ TIE => 'AnyDBM_File' ], LIST_CACHE => 'MERGE';
+};
+is $sub, undef, 'smuggling in a scalar-only LIST_CACHE via MERGE fails';
+like $@, qr/^You can't use AnyDBM_File for LIST_CACHE because it can only store scalars/,
+	'... with the expected error';
Index: gnu/usr.bin/perl/cpan/Memoize/t/correctness.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/correctness.t,v
diff -u -p -a -u -p -r1.1.1.1 correctness.t
--- gnu/usr.bin/perl/cpan/Memoize/t/correctness.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/correctness.t	21 Feb 2024 15:47:01 -0000
@@ -1,129 +1,103 @@
-#!/usr/bin/perl
-
-use lib '..';
+use strict; use warnings;
 use Memoize;
+use Test::More tests => 17;
 
-print "1..25\n";
-
-print "# Basic\n";
-
-# A function that should only be called once.
-{ my $COUNT = 0;
-  sub no_args {	
-    $FAIL++ if $COUNT++;
-    11;
-  }
-}
-
-# 
-memoize('no_args');
-
-$c1 = &no_args();
-print (($c1 == 11) ? "ok 1\n" : "not ok 1\n");
-$c2 = &no_args();
-print (($c2 == 11) ? "ok 2\n" : "not ok 2\n");
-print $FAIL ? "not ok 3\n" : "ok 3\n";	# Was it really memoized?
-
-$FAIL = 0;
-$f = do { my $COUNT = 0; sub { $FAIL++ if $COUNT++; 12 } };
-$fm = memoize($f);
-
-$c1 = &$fm();
-print (($c1 == 12) ? "ok 4\n" : "not ok 4\n");
-$c2 = &$fm();
-print (($c2 == 12) ? "ok 5\n" : "not ok 5\n");
-print $FAIL ? "not ok 6\n" : "ok 6\n";	# Was it really memoized?
-
-$f = do { my $COUNT = 0; sub { $FAIL++ if $COUNT++; 13 } };
-$fm = memoize($f, INSTALL => 'another');
-
-$c1 = &another();  # Was it really installed?
-print (($c1 == 13) ? "ok 7\n" : "not ok 7\n");
-$c2 = &another();  
-print (($c2 == 13) ? "ok 8\n" : "not ok 8\n");
-print $FAIL ? "not ok 9\n" : "ok 9\n";	# Was it really memoized?
-$c3 = &$fm();			# Call memoized version through returned ref
-print (($c3 == 13) ? "ok 10\n" : "not ok 10\n");
-print $FAIL ? "not ok 11\n" : "ok 11\n";	# Was it really memoized?
-$c4 = &$f();			# Call original version again
-print (($c4 == 13) ? "ok 12\n" : "not ok 12\n");
-print $FAIL ? "ok 13\n" : "not ok 13\n";	# Did we get the original?
-
-print "# Fibonacci\n";
-
-sub mt1 {			# Fibonacci
-  my $n = shift;
-  return $n if $n < 2;
-  mt1($n-1) + mt2($n-2);
-}
-sub mt2 {		
-  my $n = shift;
-  return $n if $n < 2;
-  mt1($n-1) + mt2($n-2);
-}
-
-@f1 = map { mt1($_) } (0 .. 15);
-@f2 = map { mt2($_) } (0 .. 15);
-memoize('mt1');
-@f3 = map { mt1($_) } (0 .. 15);
-@f4 = map { mt1($_) } (0 .. 15);
-@arrays = (\@f1, \@f2, \@f3, \@f4); 
-$n = 13;
-for ($i=0; $i<3; $i++) {
-  for ($j=$i+1; $j<3; $j++) {
-    $n++;
-    print ((@{$arrays[$i]} == @{$arrays[$j]}) ? "ok $n\n" : "not ok $n\n");
-    $n++;
-    for ($k=0; $k < @{$arrays[$i]}; $k++) {
-      (print "not ok $n\n", next)  if $arrays[$i][$k] != $arrays[$j][$k];
-    }
-    print "ok $n\n";
-  }
-}
-
-
-
-print "# Normalizers\n";
-
-sub fake_normalize {
-  return '';
-}
+# here we test whether memoization actually has the desired effect
 
-sub f1 {
-  return shift;
+my ($fib, $ns1_calls, $ns2_calls, $total_calls) = ([0,1], 1, 1, 1+1);
+while (@$fib < 23) {
+	push @$fib, $$fib[-1] + $$fib[-2];
+	my $n_calls = 1 + $ns1_calls + $ns2_calls;
+	$total_calls += $n_calls;
+	($ns2_calls, $ns1_calls) = ($ns1_calls, $n_calls);
+}
+
+my $num_calls;
+sub fib {
+	++$num_calls;
+	my $n = shift;
+	return $n if $n < 2;
+	fib($n-1) + fib($n-2);
+}
+
+my @s1 = map 0+fib($_), 0 .. $#$fib;
+is_deeply \@s1, $fib, 'unmemoized Fibonacci works';
+is $num_calls, $total_calls, '... with the expected amount of calls';
+
+undef $num_calls;
+memoize 'fib';
+
+my @f1 = map 0+fib($_), 0 .. $#$fib;
+my @f2 = map 0+fib($_), 0 .. $#$fib;
+is_deeply \@f1, $fib, 'memoized Fibonacci works';
+is $num_calls, @$fib, '... with a minimal amount of calls';
+
+########################################################################
+
+my $timestamp;
+sub timelist { (++$timestamp) x $_[0] }
+
+memoize('timelist');
+
+my $t1 = [timelist(1)];
+is_deeply [timelist(1)], $t1, 'memoizing a volatile function makes it stable';
+my $t7 = [timelist(7)];
+isnt @$t1, @$t7, '... unless the arguments change';
+is_deeply $t7, [($$t7[0]) x 7], '... which leads to the expected new return value';
+is_deeply [timelist(7)], $t7, '... which then also stays stable';
+
+sub con { wantarray ? 'list' : 'scalar' }
+memoize('con');
+is scalar(con(1)), 'scalar', 'scalar context propgates properly';
+is_deeply [con(1)], ['list'], 'list context propgates properly';
+
+########################################################################
+
+my %underlying;
+sub ExpireTest::TIEHASH { bless \%underlying, shift }
+sub ExpireTest::EXISTS  { exists $_[0]{$_[1]} }
+sub ExpireTest::FETCH   { $_[0]{$_[1]} }
+sub ExpireTest::STORE   { $_[0]{$_[1]} = $_[2] }
+
+my %CALLS;
+sub id {
+	my($arg) = @_;
+	++$CALLS{$arg};
+	$arg;
+}
+
+tie my %cache => 'ExpireTest';
+memoize 'id',
+	SCALAR_CACHE => [HASH => \%cache],
+	LIST_CACHE => 'FAULT';
+
+my $arg = [1..3, 1, 2, 1];
+is_deeply [map scalar(id($_)), @$arg], $arg, 'memoized function sanity check';
+is_deeply \%CALLS, {1=>1,2=>1,3=>1}, 'amount of initial calls per arg as expected';
+
+delete $underlying{1};
+$arg = [1..3];
+is_deeply [map scalar(id($_)), @$arg], $arg, 'memoized function sanity check';
+is_deeply \%CALLS, {1=>2,2=>1,3=>1}, 'amount of calls per arg after expiring 1 as expected';
+
+delete @underlying{1,2};
+is_deeply [map scalar(id($_)), @$arg], $arg, 'memoized function sanity check';
+is_deeply \%CALLS, {1=>3,2=>2,3=>1}, 'amount of calls per arg after expiring 1 & 2 as expected';
+
+########################################################################
+
+my $fail;
+$SIG{__WARN__} = sub { if ( $_[0] =~ /^Deep recursion/ ) { $fail = 1 } else { warn $_[0] } };
+
+my $limit;
+sub deep_probe { deep_probe() if ++$limit < 100_000 and not $fail }
+sub deep_test { no warnings "recursion"; deep_test() if $limit-- > 0 }
+memoize "deep_test";
+
+SKIP: {
+	deep_probe();
+	skip "no warning after $limit recursive calls (maybe PERL_SUB_DEPTH_WARN was raised?)", 1 if not $fail;
+	undef $fail;
+	deep_test();
+	ok !$fail, 'no recursion warning thrown from Memoize';
 }
-sub f2 {
-  return shift;
-}
-sub f3 {
-  return shift;
-}
-&memoize('f1');
-&memoize('f2', NORMALIZER => 'fake_normalize');
-&memoize('f3', NORMALIZER => \&fake_normalize);
-@f1r = map { f1($_) } (1 .. 10);
-@f2r = map { f2($_) } (1 .. 10);
-@f3r = map { f3($_) } (1 .. 10);
-$n++;
-print (("@f1r" eq "1 2 3 4 5 6 7 8 9 10") ? "ok $n\n" : "not ok $n\n");
-$n++;
-print (("@f2r" eq "1 1 1 1 1 1 1 1 1 1") ? "ok $n\n" : "not ok $n\n");
-$n++;
-print (("@f3r" eq "1 1 1 1 1 1 1 1 1 1") ? "ok $n\n" : "not ok $n\n");
-
-print "# INSTALL => undef option.\n";
-{ my $i = 1;
-  sub u1 { $i++ }
-}
-my $um = memoize('u1', INSTALL => undef);
-@umr = (&$um, &$um, &$um);
-@u1r = (&u1,  &u1,  &u1 );	# Did *not* clobber &u1
-$n++;
-print (("@umr" eq "1 1 1") ? "ok $n\n" : "not ok $n\n"); # Increment once
-$n++;
-print (("@u1r" eq "2 3 4") ? "ok $n\n" : "not ok $n\n"); # Increment thrice
-$n++;
-print ((defined &{"undef"}) ? "not ok $n\n" : "ok $n\n"); # Just in case
-
-print "# $n tests in all.\n";
-
Index: gnu/usr.bin/perl/cpan/Memoize/t/errors.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/errors.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/errors.t
--- gnu/usr.bin/perl/cpan/Memoize/t/errors.t	15 Feb 2023 01:32:38 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,55 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-use Config;
-
-$|=1;
-print "1..11\n";
-
-eval { memoize({}) };
-print $@ ? "ok 1\n" : "not ok 1 # $@\n";
-
-eval { memoize([]) };
-print $@ ? "ok 2\n" : "not ok 2 # $@\n";
-
-eval { my $x; memoize(\$x) };
-print $@ ? "ok 3\n" : "not ok 3 # $@\n";
-
-# 4--8
-$n = 4;
-my $dummyfile = './dummydb';
-use Fcntl;
-my %args = ( DB_File => [],
-             GDBM_File => [$dummyfile, \&GDBM_File::GDBM_NEWDB, 0666],
-             ODBM_File => [$dummyfile, O_RDWR|O_CREAT, 0666],
-             NDBM_File => [$dummyfile, O_RDWR|O_CREAT, 0666],
-             SDBM_File => [$dummyfile, O_RDWR|O_CREAT, 0666],
-           );
-for $mod (qw(DB_File GDBM_File SDBM_File ODBM_File NDBM_File)) {
-  eval {
-    require "$mod.pm";
-    tie my %cache => $mod, map { (ref($_) eq 'CODE') ? &$_ : $_ } @{$args{$mod}};
-    memoize(sub {}, LIST_CACHE => [HASH => \%cache ]);
-  };
-  print $@ =~ /can only store scalars/
-     || $@ =~ /Can't locate.*in \@INC/
-     || $@ =~ /Can't load '.*?' for module/ ? "ok $n\n" : "not ok $n # $@\n";
-  1 while unlink $dummyfile, "$dummyfile.dir", "$dummyfile.pag", "$dummyfile.db";
-  $n++;
-}
-
-# 9
-eval { local $^W = 0;
-       memoize(sub {}, LIST_CACHE => ['TIE', 'WuggaWugga']) 
-     };
-print $@ ? "ok 9\n" : "not ok 9 # $@\n";
-
-# 10
-eval { memoize(sub {}, LIST_CACHE => 'YOB GORGLE') };
-print $@ ? "ok 10\n" : "not ok 10 # $@\n";
-
-# 11
-eval { memoize(sub {}, SCALAR_CACHE => ['YOB GORGLE']) };
-print $@ ? "ok 11\n" : "not ok 11 # $@\n";
-
Index: gnu/usr.bin/perl/cpan/Memoize/t/expfile.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/expfile.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/expfile.t
--- gnu/usr.bin/perl/cpan/Memoize/t/expfile.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-
-my $n = 0;
-$|=1;
-
-
-if (-e '.fast') {
-  print "1..0\n";
-  exit 0;
-}
-
-print "1..12\n";
-# (1)
-++$n; print "ok $n\n";
-
-my $READFILE_CALLS = 0;
-my $FILE = './TESTFILE';
-
-sub writefile {
-  my $FILE = shift;
-  open F, "> $FILE" or die "Couldn't write temporary file $FILE: $!";
-  print F scalar(localtime), "\n";
-  close F;
-}
-
-sub readfile {
-  $READFILE_CALLS++;
-  my $FILE = shift;
-  open F, "< $FILE" or die "Couldn't write temporary file $FILE: $!";
-  my $data = <F>;
-  close F;
-  $data;
-}
-
-require Memoize::ExpireFile;
-# (2)
-++$n; print "ok $n\n";
-
-tie my %cache => 'Memoize::ExpireFile';
-memoize 'readfile',
-    SCALAR_CACHE => [HASH => \%cache],
-    LIST_CACHE => 'FAULT'
-    ;
-
-# (3)
-++$n; print "ok $n\n";
-
-# (4)
-writefile($FILE);
-++$n; print "ok $n\n";
-sleep 4;
-
-# (5-6)
-my $t1 = readfile($FILE);
-++$n; print "ok $n\n";
-++$n; print ((($READFILE_CALLS == 1) ? '' : 'not '), "ok $n\n");
-
-# (7-9)
-my $t2 = readfile($FILE);
-++$n; print "ok $n\n";  
-++$n; print ((($READFILE_CALLS == 1) ? '' : 'not '), "ok $n\n");
-++$n; print ((($t1 eq $t2) ? '' : 'not '), "ok $n\n");
-
-# (10-12)
-sleep 4;
-writefile($FILE);
-my $t3 = readfile($FILE);
-++$n; print "ok $n\n";
-++$n; print ((($READFILE_CALLS == 2) ? '' : 'not '), "ok $n\n");
-++$n; print ((($t1 ne $t3) ? '' : 'not '), "ok $n\n");
-
-END { 1 while unlink $FILE }
Index: gnu/usr.bin/perl/cpan/Memoize/t/expire.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/expire.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/expire.t
--- gnu/usr.bin/perl/cpan/Memoize/t/expire.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,72 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-use Memoize::ExpireTest;
-
-my $n = 0;
-
-print "1..17\n";
-
-$n++; print "ok $n\n";
-
-my %CALLS;
-sub id {	
-  my($arg) = @_;
-  ++$CALLS{$arg};
-  $arg;
-}
-
-tie my %cache => 'Memoize::ExpireTest';
-memoize 'id', 
-  SCALAR_CACHE => [HASH => \%cache], 
-  LIST_CACHE => 'FAULT';
-$n++; print "ok $n\n";
-
-for $i (1, 2, 3, 1, 2, 1) {
-  $n++;
-  unless ($i == id($i)) {
-    print "not ";
-  }
-  print "ok $n\n";
-}
-
-for $i (1, 2, 3) {
-  $n++;
-  unless ($CALLS{$i} == 1) {
-    print "not ";
-  }
-  print "ok $n\n";
-}
-
-Memoize::ExpireTest::expire(1);
-
-for $i (1, 2, 3) {
-  my $v = id($i);
-}
-
-for $i (1, 2, 3) {
-  $n++;
-  unless ($CALLS{$i} == 1 + ($i == 1)) {
-    print "not ";
-  }
-  print "ok $n\n";
-}
-
-Memoize::ExpireTest::expire(1);
-Memoize::ExpireTest::expire(2);
-
-for $i (1, 2, 3) {
-  my $v = id($i);
-}
-
-for $i (1, 2, 3) {
-  $n++;
-  unless ($CALLS{$i} == 4 - $i) {
-    print "not ";
-  }
-  print "ok $n\n";
-}
-
-exit 0;
-
Index: gnu/usr.bin/perl/cpan/Memoize/t/expmod.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/expmod.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/expmod.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/expmod.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,57 @@
+use strict; use warnings;
+use Memoize;
+use Memoize::Expire;
+use Test::More tests => 22;
+
+tie my %h => 'Memoize::Expire', HASH => \my %backing;
+
+$h{foo} = 1;
+my $num_keys = keys %backing;
+my $num_refs = grep ref, values %backing;
+
+is $h{foo}, 1, 'setting and getting a plain scalar value works';
+cmp_ok $num_keys, '>', 0, 'HASH option is effective';
+is $num_refs, 0, 'backing storage contains only plain scalars';
+
+$h{bar} = my $bar = {};
+my $num_keys_step2 = keys %backing;
+$num_refs = grep ref, values %backing;
+
+is ref($h{bar}), ref($bar), 'setting and getting a reference value works';
+cmp_ok $num_keys, '<', $num_keys_step2, 'HASH option is effective';
+is $num_refs, 1, 'backing storage contains only one reference';
+
+my $contents = eval { +{ %h } };
+
+ok defined $contents, 'dumping the tied hash works';
+is_deeply $contents, { foo => 1, bar => $bar }, ' ... with the expected contents';
+
+########################################################################
+
+my $RETURN = 1;
+my %CALLS;
+
+tie my %cache => 'Memoize::Expire', NUM_USES => 2;
+memoize sub { ++$CALLS{$_[0]}; $RETURN },
+	SCALAR_CACHE => [ HASH => \%cache ],
+	LIST_CACHE => 'FAULT',
+	INSTALL => 'call';
+
+is call($_), 1, "$_ gets new val" for 0..3;
+
+is_deeply \%CALLS, {0=>1,1=>1,2=>1,3=>1}, 'memoized function called once per argument';
+
+$RETURN = 2;
+is call(1), 1, '1 expires';
+is call(1), 2, '1 gets new val';
+is call(2), 1, '2 expires';
+
+is_deeply \%CALLS, {0=>1,1=>2,2=>1,3=>1}, 'memoized function called for expired argument';
+
+$RETURN = 3;
+is call(0), 1, '0 expires';
+is call(1), 2, '1 expires';
+is call(2), 3, '2 gets new val';
+is call(3), 1, '3 expires';
+
+is_deeply \%CALLS, {0=>1,1=>2,2=>2,3=>1}, 'memoized function called for other expired argument';
Index: gnu/usr.bin/perl/cpan/Memoize/t/expmod_n.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/expmod_n.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/expmod_n.t
--- gnu/usr.bin/perl/cpan/Memoize/t/expmod_n.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-
-my $n = 0;
-
-
-print "1..22\n";
-
-++$n; print "ok $n\n";
-
-$RETURN = 1;
-
-%CALLS = ();
-sub call {
-#  print "CALL $_[0] => $RETURN\n";
-  ++$CALLS{$_[0]};
-  $RETURN;
-}
-
-require Memoize::Expire;
-++$n; print "ok $n\n";
-
-tie my %cache => 'Memoize::Expire', NUM_USES => 2;
-memoize 'call',
-    SCALAR_CACHE => [HASH => \%cache],
-    LIST_CACHE => 'FAULT';
-
-# $Memoize::Expire::DEBUG = 1;
-++$n; print "ok $n\n";
-
-# 3--6
-for (0,1,2,3) {
-  print "not " unless call($_) == 1;
-  ++$n; print "ok $n\n";
-}
-
-# 7--10
-for (keys %CALLS) {
-  print "not " unless $CALLS{$_} == (1,1,1,1)[$_];
-  ++$n; print "ok $n\n";
-}
-
-# 11--13
-$RETURN = 2;
-++$n; print ((call(1) == 1 ? '' : 'not '), "ok $n\n"); # 1 expires
-++$n; print ((call(1) == 2 ? '' : 'not '), "ok $n\n"); # 1 gets new val
-++$n; print ((call(2) == 1 ? '' : 'not '), "ok $n\n"); # 2 expires
-
-# 14--17
-$RETURN = 3;
-for (0,1,2,3) {
-  # 0 expires, 1 expires, 2 gets new val, 3 expires
-  print "not " unless call($_) == (1,2,3,1)[$_];
-  ++$n; print "ok $n\n";
-}
-
-for (0,1,2,3) {
-  print "not " unless $CALLS{$_} == (1,2,2,1)[$_];
-  ++$n; print "ok $n\n";
-}
Index: gnu/usr.bin/perl/cpan/Memoize/t/expmod_t.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/expmod_t.t,v
diff -u -p -a -u -p -r1.1.1.2 expmod_t.t
--- gnu/usr.bin/perl/cpan/Memoize/t/expmod_t.t	1 Mar 2021 23:15:31 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Memoize/t/expmod_t.t	21 Feb 2024 15:47:01 -0000
@@ -1,9 +1,6 @@
-#!/usr/bin/perl
-
-# test caching timeout
-
-use lib '..';
+use strict; use warnings;
 use Memoize;
+use Memoize::Expire;
 
 my $DEBUG = 0;
 my $LIFETIME = 15;
@@ -11,32 +8,21 @@ my $LIFETIME = 15;
 my $test = 0;
 $| = 1;
 
-if (-e '.fast') {
-  print "1..0\n";
+if ($ENV{PERL_MEMOIZE_TESTS_FAST_ONLY}) {
+  print "1..0 # Skipped: Slow tests disabled\n";
   exit 0;
 }
 
 print "# Testing the timed expiration policy.\n";
 print "# This will take about thirty seconds.\n";
 
-print "1..26\n";
-
-require Memoize::Expire;
-++$test; print "ok $test - Expire loaded\n";
-
-sub now {
-#  print "NOW: @_ ", time(), "\n";
-  time;
-}
+print "1..24\n";
 
 tie my %cache => 'Memoize::Expire', LIFETIME => $LIFETIME;
-
-memoize 'now',
-    SCALAR_CACHE => [HASH => \%cache ],
-    LIST_CACHE => 'FAULT'
-    ;
-
-++$test; print "ok $test - function memoized\n";
+memoize sub { time },
+    SCALAR_CACHE => [ HASH => \%cache ],
+    LIST_CACHE => 'FAULT',
+    INSTALL => 'now';
 
 my (@before, @after, @now);
 
Index: gnu/usr.bin/perl/cpan/Memoize/t/flush.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/flush.t,v
diff -u -p -a -u -p -r1.1.1.1 flush.t
--- gnu/usr.bin/perl/cpan/Memoize/t/flush.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/flush.t	21 Feb 2024 15:47:01 -0000
@@ -1,42 +1,24 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize 'flush_cache', 'memoize';
-print "1..8\n";
-print "ok 1\n";
-
-
+use strict; use warnings;
+use Memoize qw(flush_cache memoize);
+use Test::More tests => 9;
 
 my $V = 100;
 sub VAL { $V }
 
-memoize 'VAL';
-print "ok 2\n";
-
-my $c1 = VAL();
-print (($c1 == 100) ? "ok 3\n" : "not ok 3\n");
+ok eval { memoize('VAL'); 1 }, 'memozing the test function';
 
+is VAL(), 100, '... with the expected return value';
 $V = 200;
-$c1 = VAL();
-print (($c1 == 100) ? "ok 4\n" : "not ok 4\n");
+is VAL(), 100, '... which is expectedly sticky';
 
-flush_cache('VAL');
-$c1 = VAL();
-print (($c1 == 200) ? "ok 5\n" : "not ok 5\n");
+ok eval { flush_cache('VAL'); 1 }, 'flusing the cache by name works';
 
+is VAL(), 200, '... with the expected new return value';
 $V = 300;
-$c1 = VAL();
-print (($c1 == 200) ? "ok 6\n" : "not ok 6\n");
+is VAL(), 200, '... which is expectedly sticky';
 
-flush_cache(\&VAL);
-$c1 = VAL();
-print (($c1 == 300) ? "ok 7\n" : "not ok 7\n");
+ok eval { flush_cache(\&VAL); 1 }, 'flusing the cache by name works';
 
+is VAL(), 300, '... with the expected new return value';
 $V = 400;
-$c1 = VAL();
-print (($c1 == 300) ? "ok 8\n" : "not ok 8\n");
-
-
-
-
-
+is VAL(), 300, '... which is expectedly sticky';
Index: gnu/usr.bin/perl/cpan/Memoize/t/normalize.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/normalize.t,v
diff -u -p -a -u -p -r1.1.1.1 normalize.t
--- gnu/usr.bin/perl/cpan/Memoize/t/normalize.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/normalize.t	21 Feb 2024 15:47:01 -0000
@@ -1,10 +1,6 @@
-#!/usr/bin/perl
-
-use lib '..';
+use strict; use warnings;
 use Memoize;
-
-print "1..7\n";
-
+use Test::More tests => 11;
 
 sub n_null { '' }
 
@@ -24,34 +20,47 @@ my $a_normal =  memoize('a1', INSTALL =>
 my $a_nomemo =  memoize('a2', INSTALL => undef, NORMALIZER => 'n_diff');
 my $a_allmemo = memoize('a3', INSTALL => undef, NORMALIZER => 'n_null');
 
+my @ARGS;
 @ARGS = (1, 2, 3, 2, 1);
 
-@res  = map { &$a_normal($_) } @ARGS;
-print ((("@res" eq "1-1 2-2 3-3 2-2 1-1") ? '' : 'not '), "ok 1\n");
-
-@res  = map { &$a_nomemo($_) } @ARGS;
-print ((("@res" eq "1-1 2-2 3-3 2-4 1-5") ? '' : 'not '), "ok 2\n");
+is_deeply [map $a_normal->($_),  @ARGS], [qw(1-1 2-2 3-3 2-2 1-1)], 'no normalizer';
+is_deeply [map $a_nomemo->($_),  @ARGS], [qw(1-1 2-2 3-3 2-4 1-5)], 'n_diff';
+is_deeply [map $a_allmemo->($_), @ARGS], [qw(1-1 1-1 1-1 1-1 1-1)], 'n_null';
 
-@res = map { &$a_allmemo($_) } @ARGS;
-print ((("@res" eq "1-1 1-1 1-1 1-1 1-1") ? '' : 'not '), "ok 3\n");
-
-		
-       
 # Test fully-qualified name and installation
+my $COUNT;
 $COUNT = 0;
 sub parity { $COUNT++; $_[0] % 2 }
 sub parnorm { $_[0] % 2 }
 memoize('parity', NORMALIZER =>  'main::parnorm');
-@res = map { &parity($_) } @ARGS;
-print ((("@res" eq "1 0 1 0 1") ? '' : 'not '), "ok 4\n");
-print (( ($COUNT == 2) ? '' : 'not '), "ok 5\n");
+is_deeply [map parity($_), @ARGS], [qw(1 0 1 0 1)], 'parity normalizer';
+is $COUNT, 2, '... with the expected number of calls';
 
 # Test normalization with reference to normalizer function
 $COUNT = 0;
 sub par2 { $COUNT++; $_[0] % 2 }
 memoize('par2', NORMALIZER =>  \&parnorm);
-@res = map { &par2($_) } @ARGS;
-print ((("@res" eq "1 0 1 0 1") ? '' : 'not '), "ok 6\n");
-print (( ($COUNT == 2) ? '' : 'not '), "ok 7\n");
-
+is_deeply [map par2($_), @ARGS], [qw(1 0 1 0 1)], '... also installable by coderef';
+is $COUNT, 2, '... still with the expected number of calls';
 
+$COUNT = 0;
+sub count_uninitialized { $COUNT += join('', @_) =~ /\AUse of uninitialized value / }
+my $war1 = memoize(sub {1}, NORMALIZER => sub {undef});
+{ local $SIG{__WARN__} = \&count_uninitialized; $war1->() }
+is $COUNT, 0, 'no warning when normalizer returns undef';
+
+# Context propagated correctly to normalizer?
+sub n {
+  my $which = wantarray ? 'list' : 'scalar';
+  local $Test::Builder::Level = $Test::Builder::Level + 2;
+  is $_[0], $which, "$which context propagates properly";
+}
+sub f { 1 }
+memoize('f', NORMALIZER => 'n');
+my $s = f 'scalar';
+my @a = f 'list';
+
+sub args { scalar @_ }
+sub null_args { join chr(28), splice @_ }
+memoize('args', NORMALIZER => 'null_args');
+ok args(1), 'original @_ is protected from normalizer';
Index: gnu/usr.bin/perl/cpan/Memoize/t/prototype.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/prototype.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/prototype.t
--- gnu/usr.bin/perl/cpan/Memoize/t/prototype.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-$EXPECTED_WARNING = '(no warning expected)';
-
-
-print "1..4\n";
-
-sub q1 ($) { $_[0] + 1 }
-sub q2 ()  { time }
-sub q3     { join "--", @_ }
-
-$SIG{__WARN__} = \&handle_warnings;
-
-$RES = 'ok';
-memoize 'q1';
-print "$RES 1\n";
-
-$RES = 'ok';
-memoize 'q2';
-print "$RES 2\n";
-
-$RES = 'ok';
-memoize 'q3';
-print "$RES 3\n";
-
-# Let's see if the prototype is actually honored
-@q = (1..5);
-$r = q1(@q); 
-print (($r == 6) ? '' : 'not ', "ok 4\n");
-
-sub handle_warnings {
-  print $_[0];
-  $RES = 'not ok' unless $_[0] eq $EXPECTED_WARNING;
-}
Index: gnu/usr.bin/perl/cpan/Memoize/t/speed.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/speed.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/speed.t
--- gnu/usr.bin/perl/cpan/Memoize/t/speed.t	1 Mar 2021 23:15:31 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,108 +0,0 @@
-#!/usr/bin/perl
-
-use lib '..';
-use Memoize;
-
-if (-e '.fast') {
-  print "1..0\n";
-  exit 0;
-}
-$| = 1;
-
-# If we don't say anything, maybe nobody will notice.
-# print STDERR "\nWarning: I'm testing the speedup.  This might take up to thirty seconds.\n                    ";
-
-my $COARSE_TIME = 1;
-
-sub times_to_time { my ($u) = times; $u; }
-if ($^O eq 'riscos') {
-  eval {require Time::HiRes; *my_time = \&Time::HiRes::time };
-  if ($@) { *my_time = sub { time }; $COARSE_TIME = 1 }
-} else {
-  *my_time = \&times_to_time;
-}
-
-
-print "1..6\n";
-
-
-
-# This next test finds an example that takes a long time to run, then
-# checks to make sure that the run is actually speeded up by memoization.
-# In some sense, this is the most essential correctness test in the package.  
-#
-# We do this by running the fib() function with successfily larger
-# arguments until we find one that tales at least $LONG_RUN seconds
-# to execute.  Then we memoize fib() and run the same call cagain.  If
-# it doesn't produce the same test in less than one-tenth the time,
-# something is seriously wrong.
-#
-# $LONG_RUN is the number of seconds that the function call must last
-# in order for the call to be considered sufficiently long.
-
-
-sub fib {
-  my $n = shift;
-  $COUNT++;
-  return $n if $n < 2;
-  fib($n-1) + fib($n-2);
-}
-
-sub max { $_[0] > $_[1] ? 
-          $_[0] : $_[1] 
-        }
-
-$N = 1;
-
-$ELAPSED = 0;
-
-my $LONG_RUN = 11;
-
-while (1) {
-  my $start = time;
-  $COUNT=0;
-  $RESULT = fib($N);
-  $ELAPSED = time - $start;
-  last if $ELAPSED >= $LONG_RUN;
-  if ($ELAPSED > 1) {
-      print "# fib($N) took $ELAPSED seconds.\n" if $N % 1 == 0;
-      # we'd expect that fib(n+1) takes about 1.618 times as long as fib(n)
-      # so now that we have a longish run, let's estimate the value of $N
-      # that will get us a sufficiently long run.
-      $N += 1 + int(log($LONG_RUN/$ELAPSED)/log(1.618));
-      print "# OK, N=$N ought to do it.\n";
-      # It's important not to overshoot here because the running time
-      # is exponential in $N.  If we increase $N too aggressively,
-      # the user will be forced to wait a very long time.
-  } else {
-      $N++; 
-  }
-}
-
-print "# OK, fib($N) was slow enough; it took $ELAPSED seconds.\n";
-print "# Total calls: $COUNT.\n";
-
-&memoize('fib');
-
-$COUNT=0;
-$start = time;
-$RESULT2 = fib($N);
-$ELAPSED2 = time - $start + .001; # prevent division by 0 errors
-print (($RESULT == $RESULT2) ? "ok 1\n" : "not ok 1\n");
-# If it's not ten times as fast, something is seriously wrong.
-print "# ELAPSED2=$ELAPSED2 seconds.\n";
-print (($ELAPSED/$ELAPSED2 > 10) ? "ok 2\n" : "not ok 2\n");
-
-# If it called the function more than $N times, it wasn't memoized properly
-print (($COUNT > $N) ? "ok 3\n" : "not ok 3\n");
-
-# Do it again. Should be even faster this time.
-$COUNT = 0;
-$start = time;
-$RESULT2 = fib($N);
-$ELAPSED2 = time - $start + .001; # prevent division by 0 errors
-print (($RESULT == $RESULT2) ? "ok 4\n" : "not ok 4\n");
-print "# ELAPSED2=$ELAPSED2 seconds.\n";
-print (($ELAPSED/$ELAPSED2 > 10) ? "ok 5\n" : "not ok 5\n");
-# This time it shouldn't have called the function at all.
-print ($COUNT == 0 ? "ok 6\n" : "not ok 6\n");
Index: gnu/usr.bin/perl/cpan/Memoize/t/st_concurrency
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/st_concurrency
diff -N gnu/usr.bin/perl/cpan/Memoize/t/st_concurrency
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/st_concurrency	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# running this script intermittently yields
+#
+#     Magic number checking on storable file failed at ...
+#
+# but it is difficult to trigger this error 100% reliably
+# as would be needed to turn this script into an actual test
+
+perl -I. -x t/st_concurrency st_shared &
+perl -I. -x t/st_concurrency st_shared &
+perl -I. -x t/st_concurrency st_shared &
+perl -I. -x t/st_concurrency st_shared &
+wait && exec rm st_shared
+
+#!perl
+use strict; use warnings;
+
+use Memoize::Storable;
+use Fcntl 'LOCK_EX';
+
+sub rand32 () { int rand 1<<32 }
+
+# the script locks itself to increase the likelihood of the error:
+# after releasing the lock, the first process writes to the file
+# just as another process acquires the lock and starts to read it
+# (but this still does not trigger the error reliably)
+
+open my $fh, $0 or die $!;
+flock $fh, LOCK_EX or die $!;
+
+tie my %cache => 'Memoize::Storable', $ARGV[0];
+$cache{(rand32)} = rand32;
+
+close $fh;
+# vim: ft=perl
Index: gnu/usr.bin/perl/cpan/Memoize/t/threadsafe.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/threadsafe.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/threadsafe.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/threadsafe.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,37 @@
+use strict; use warnings;
+
+use Memoize qw(memoize unmemoize);
+use Test::More
+	("$]" < 5.009 || "$]" >= 5.010001) && eval { require threads; 1 }
+		? ( tests => 8 )
+		: ( skip_all => $@ );
+
+my $i;
+sub count_up { ++$i }
+
+memoize('count_up');
+my $cached = count_up();
+
+is count_up(), $cached, 'count_up() is memoized';
+
+my $got = threads->new(sub {
+	local $@ = '';
+	my $v = eval { count_up() };
+	+{ E => $@, V => $v };
+})->join;
+
+is $got->{E}, '', 'calling count_up() in another thread works';
+is $got->{V}, $cached, '... and returns the same result';
+is count_up(), $cached, '... whereas count_up() on the main thread is unaffected';
+
+$got = threads->new(sub {
+	local $@ = '';
+	my $u = eval { unmemoize('count_up') };
+	my $v = eval { count_up() };
+	+{ E => $@, U => $u, V => $v };
+})->join;
+
+is $got->{E}, '', 'unmemoizing count_up() in another thread works';
+is ref($got->{U}), 'CODE', '... and returns a coderef as expected';
+is $got->{V}, 1+$cached, '... and does in fact unmemoize the function';
+is count_up(), $cached, '... whereas count_up() on the main thread is unaffected';
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/tie.t,v
diff -u -p -a -u -p -r1.1.1.1 tie.t
--- gnu/usr.bin/perl/cpan/Memoize/t/tie.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie.t	21 Feb 2024 15:47:01 -0000
@@ -1,80 +1,8 @@
-#!/usr/bin/perl
-
-use lib qw(. ..);
-use Memoize 0.52 qw(memoize unmemoize);
+use strict; use warnings;
 use Fcntl;
-eval {require Memoize::AnyDBM_File};
-if ($@) {
-  print "1..0\n";
-  exit 0;
-}
-
-
-
-print "1..4\n";
-
-sub i {
-  $_[0];
-}
-
-$ARG = 'Keith Bostic is a pinhead';
-
-sub c119 { 119 }
-sub c7 { 7 }
-sub c43 { 43 }
-sub c23 { 23 }
-sub c5 { 5 }
-
-sub n {
-  $_[0]+1;
-}
-
-$file = "md$$";
-@files = ($file, "$file.db", "$file.dir", "$file.pag");
-1 while unlink @files;
-
-
-tryout('Memoize::AnyDBM_File', $file, 1);  # Test 1..4
-# tryout('DB_File', $file, 1);  # Test 1..4
-1 while unlink $file, "$file.dir", "$file.pag";
-
-sub tryout {
-  my ($tiepack, $file, $testno) = @_;
-
-  tie my %cache => $tiepack, $file, O_RDWR | O_CREAT, 0666
-    or die $!;
-
-  memoize 'c5', 
-    SCALAR_CACHE => [HASH => \%cache],
-    LIST_CACHE => 'FAULT'
-    ;
 
-  my $t1 = c5($ARG);	
-  my $t2 = c5($ARG);	
-  print (($t1 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t2 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c5';
-  
-  # Now something tricky---we'll memoize c23 with the wrong table that
-  # has the 5 already cached.
-  memoize 'c23', 
-  SCALAR_CACHE => ['HASH', \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-  
-  my $t3 = c23($ARG);
-  my $t4 = c23($ARG);
-  $testno++;
-  print (($t3 == 5) ? "ok $testno\n" : "not ok $testno  #   Result $t3\n");
-  $testno++;
-  print (($t4 == 5) ? "ok $testno\n" : "not ok $testno  #   Result $t4\n");
-  unmemoize 'c23';
-}
+use lib 't/lib';
+use DBMTest 'Memoize::AnyDBM_File', is_scalar_only => 1;
 
-{ 
-  my @present = grep -e, @files;
-  if (@present && (@failed = grep { not unlink } @present)) {
-    warn "Can't unlink @failed!  ($!)";
-  }
-}
+test_dbm $file, O_RDWR | O_CREAT, 0666;
+cleanup;
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie_db.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/tie_db.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/tie_db.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie_db.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,8 @@
+use strict; use warnings;
+use Fcntl;
+
+use lib 't/lib';
+use DBMTest 'DB_File', is_scalar_only => 1;
+
+test_dbm $file, O_RDWR | O_CREAT, 0666;
+cleanup;
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie_gdbm.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/tie_gdbm.t,v
diff -u -p -a -u -p -r1.1.1.2 tie_gdbm.t
--- gnu/usr.bin/perl/cpan/Memoize/t/tie_gdbm.t	15 Feb 2023 01:32:38 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie_gdbm.t	21 Feb 2024 15:47:01 -0000
@@ -1,68 +1,8 @@
-#!/usr/bin/perl
-
-use lib qw(. ..);
-use Memoize 0.45 qw(memoize unmemoize);
+use strict; use warnings;
 use Fcntl;
 
-sub i {
-  $_[0];
-}
-
-sub c119 { 119 }
-sub c7 { 7 }
-sub c43 { 43 }
-sub c23 { 23 }
-sub c5 { 5 }
-
-sub n {
-  $_[0]+1;
-}
-
-eval {require GDBM_File};
-if ($@) {
-  print "1..0\n";
-  exit 0;
-}
-
-print "1..4\n";
-
-$file = "md$$";
-1 while unlink $file, "$file.dir", "$file.pag";
-tryout('GDBM_File', $file, 1);  # Test 1..4
-1 while unlink $file, "$file.dir", "$file.pag";
-
-sub tryout {
-  require GDBM_File;
-  my ($tiepack, $file, $testno) = @_;
-
-  tie my %cache => $tiepack, $file, &GDBM_File::GDBM_NEWDB, 0666
-    or die $!;
-
-  memoize 'c5', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-
-  my $t1 = c5();	
-  my $t2 = c5();	
-  print (($t1 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t2 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c5';
-  
-  # Now something tricky---we'll memoize c23 with the wrong table that
-  # has the 5 already cached.
-  memoize 'c23', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-  
-  my $t3 = c23();
-  my $t4 = c23();
-  $testno++;
-  print (($t3 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t4 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c23';
-}
+use lib 't/lib';
+use DBMTest 'GDBM_File', is_scalar_only => 1;
 
+test_dbm $file, &GDBM_File::GDBM_WRCREAT, 0666;
+cleanup;
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie_ndbm.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/tie_ndbm.t,v
diff -u -p -a -u -p -r1.1.1.1 tie_ndbm.t
--- gnu/usr.bin/perl/cpan/Memoize/t/tie_ndbm.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie_ndbm.t	21 Feb 2024 15:47:01 -0000
@@ -1,70 +1,8 @@
-#!/usr/bin/perl
-
-use lib qw(. ..);
-use Memoize 0.45 qw(memoize unmemoize);
+use strict; use warnings;
 use Fcntl;
-# use Memoize::NDBM_File;
-# $Memoize::NDBM_File::Verbose = 0;
-
-sub i {
-  $_[0];
-}
-
-sub c119 { 119 }
-sub c7 { 7 }
-sub c43 { 43 }
-sub c23 { 23 }
-sub c5 { 5 }
-
-sub n {
-  $_[0]+1;
-}
-
-eval {require Memoize::NDBM_File};
-if ($@) {
-  print "1..0\n";
-  exit 0;
-}
-
-print "1..4\n";
-
-$file = "md$$";
-1 while unlink $file, "$file.dir", "$file.pag", "$file.db";
-tryout('Memoize::NDBM_File', $file, 1);  # Test 1..4
-1 while unlink $file, "$file.dir", "$file.pag", "$file.db";
-
-sub tryout {
-  my ($tiepack, $file, $testno) = @_;
-
-
-  tie my %cache => $tiepack, $file, O_RDWR | O_CREAT, 0666
-    or die $!;
-
-  memoize 'c5', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
 
-  my $t1 = c5();	
-  my $t2 = c5();	
-  print (($t1 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t2 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c5';
-  
-  # Now something tricky---we'll memoize c23 with the wrong table that
-  # has the 5 already cached.
-  memoize 'c23', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-  
-  my $t3 = c23();
-  my $t4 = c23();
-  $testno++;
-  print (($t3 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t4 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c23';
-}
+use lib 't/lib';
+use DBMTest 'Memoize::NDBM_File', is_scalar_only => 1;
 
+test_dbm $file, O_RDWR | O_CREAT, 0666;
+cleanup;
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie_odbm.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/tie_odbm.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/tie_odbm.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie_odbm.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,8 @@
+use strict; use warnings;
+use Fcntl;
+
+use lib 't/lib';
+use DBMTest 'ODBM_File', is_scalar_only => 1;
+
+test_dbm $file, O_RDWR | O_CREAT, 0666;
+cleanup;
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie_sdbm.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/tie_sdbm.t,v
diff -u -p -a -u -p -r1.1.1.1 tie_sdbm.t
--- gnu/usr.bin/perl/cpan/Memoize/t/tie_sdbm.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie_sdbm.t	21 Feb 2024 15:47:01 -0000
@@ -1,75 +1,8 @@
-#!/usr/bin/perl
-
-use lib qw(. ..);
-use Memoize 0.45 qw(memoize unmemoize);
+use strict; use warnings;
 use Fcntl;
-# use Memoize::SDBM_File;
-# $Memoize::GDBM_File::Verbose = 0;
-
-sub i {
-  $_[0];
-}
-
-sub c119 { 119 }
-sub c7 { 7 }
-sub c43 { 43 }
-sub c23 { 23 }
-sub c5 { 5 }
-
-sub n {
-  $_[0]+1;
-}
-
-eval {require Memoize::SDBM_File};
-if ($@) {
-  print "1..0\n";
-  exit 0;
-}
-
-print "1..4\n";
-
-$file = "md$$";
-1 while unlink $file, "$file.dir", "$file.pag";
-if ( $^O eq 'VMS' ) {
-    1 while unlink "$file.sdbm_dir";
-}
-tryout('Memoize::SDBM_File', $file, 1);  # Test 1..4
-1 while unlink $file, "$file.dir", "$file.pag";
-if ( $^O eq 'VMS' ) {
-    1 while unlink "$file.sdbm_dir";
-}
-
-sub tryout {
-  my ($tiepack, $file, $testno) = @_;
-
-  tie my %cache => $tiepack, $file, O_RDWR | O_CREAT, 0666
-    or die $!;
-
-  memoize 'c5', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
 
-  my $t1 = c5();	
-  my $t2 = c5();	
-  print (($t1 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t2 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c5';
-  
-  # Now something tricky---we'll memoize c23 with the wrong table that
-  # has the 5 already cached.
-  memoize 'c23', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-  
-  my $t3 = c23();
-  my $t4 = c23();
-  $testno++;
-  print (($t3 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t4 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c23';
-}
+use lib 't/lib';
+use DBMTest 'SDBM_File', is_scalar_only => 1;
 
+test_dbm $file, O_RDWR | O_CREAT, 0666;
+cleanup;
Index: gnu/usr.bin/perl/cpan/Memoize/t/tie_storable.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/tie_storable.t,v
diff -u -p -a -u -p -r1.1.1.1 tie_storable.t
--- gnu/usr.bin/perl/cpan/Memoize/t/tie_storable.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/tie_storable.t	21 Feb 2024 15:47:01 -0000
@@ -1,76 +1,16 @@
-#!/usr/bin/perl
-# -*- mode: perl; perl-indent-level: 2 -*-
+use strict; use warnings;
+use Test::More;
 
-use lib qw(. ..);
-use Memoize 0.45 qw(memoize unmemoize);
-# $Memoize::Storable::Verbose = 0;
+use lib 't/lib';
+use DBMTest 'Memoize::Storable', extra_tests => 1;
 
-eval {require Memoize::Storable};
-if ($@) {
-  print "1..0\n";
-  exit 0;
-}
-
-sub i {
-  $_[0];
-}
-
-sub c119 { 119 }
-sub c7 { 7 }
-sub c43 { 43 }
-sub c23 { 23 }
-sub c5 { 5 }
+test_dbm $file;
+cleanup;
 
-sub n {
-  $_[0]+1;
+SKIP: {
+	skip "skip Storable $Storable::VERSION too old for last_op_in_netorder", 1
+		unless eval { Storable->VERSION('0.609') };
+	{ tie my %cache, 'Memoize::Storable', $file, 'nstore' or die $! }
+	ok Storable::last_op_in_netorder(), 'nstore option works';
+	cleanup;
 }
-
-eval {require Storable};
-if ($@) {
-  print "1..0\n";
-  exit 0;
-}
-
-print "1..4\n";
-
-$file = "storable$$";
-1 while unlink $file;
-tryout('Memoize::Storable', $file, 1);  # Test 1..4
-1 while unlink $file;
-
-sub tryout {
-  my ($tiepack, $file, $testno) = @_;
-
-  tie my %cache => $tiepack, $file
-    or die $!;
-
-  memoize 'c5', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-
-  my $t1 = c5();	
-  my $t2 = c5();	
-  print (($t1 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t2 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c5';
-  1;
-  1;
-
-  # Now something tricky---we'll memoize c23 with the wrong table that
-  # has the 5 already cached.
-  memoize 'c23', 
-  SCALAR_CACHE => [HASH => \%cache],
-  LIST_CACHE => 'FAULT'
-    ;
-  
-  my $t3 = c23();
-  my $t4 = c23();
-  $testno++;
-  print (($t3 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  $testno++;
-  print (($t4 == 5) ? "ok $testno\n" : "not ok $testno\n");
-  unmemoize 'c23';
-}
-
Index: gnu/usr.bin/perl/cpan/Memoize/t/tiefeatures.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/tiefeatures.t
diff -N gnu/usr.bin/perl/cpan/Memoize/t/tiefeatures.t
--- gnu/usr.bin/perl/cpan/Memoize/t/tiefeatures.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-#!/usr/bin/perl
-
-use lib 'blib/lib';
-use Memoize 0.45 qw(memoize unmemoize);
-use Fcntl;
-
-# print STDERR $INC{'Memoize.pm'}, "\n";
-
-print "1..10\n";
-
-# Test MERGE
-sub xx {
-  wantarray();
-}
-
-my $s = xx();
-print ((!$s) ? "ok 1\n" : "not ok 1\n");
-my ($a) = xx();
-print (($a) ? "ok 2\n" : "not ok 2\n");
-memoize 'xx', LIST_CACHE => MERGE;
-$s = xx();
-print ((!$s) ? "ok 3\n" : "not ok 3\n");
-($a) = xx();  # Should return cached false value from previous invocation
-print ((!$a) ? "ok 4\n" : "not ok 4\n");
-
-
-# Test FAULT
-sub ns {}
-sub na {}
-memoize 'ns', SCALAR_CACHE => FAULT;
-memoize 'na', LIST_CACHE => FAULT;
-eval { my $s = ns() };  # Should fault
-print (($@) ?  "ok 5\n" : "not ok 5\n");
-eval { my ($a) = na() };  # Should fault
-print (($@) ?  "ok 6\n" : "not ok 6\n");
-
-
-# Test HASH
-my (%s, %l);
-sub nul {}
-memoize 'nul', SCALAR_CACHE => [HASH => \%s], LIST_CACHE => [HASH => \%l];
-nul('x');
-nul('y');
-print ((join '', sort keys %s) eq 'xy' ? "ok 7\n" : "not ok 7\n");
-print ((join '', sort keys %l) eq ''   ? "ok 8\n" : "not ok 8\n");
-() = nul('p');
-() = nul('q');
-print ((join '', sort keys %s) eq 'xy' ? "ok 9\n" : "not ok 9\n");
-print ((join '', sort keys %l) eq 'pq' ? "ok 10\n" : "not ok 10\n");
-
Index: gnu/usr.bin/perl/cpan/Memoize/t/unmemoize.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Memoize/t/unmemoize.t,v
diff -u -p -a -u -p -r1.1.1.1 unmemoize.t
--- gnu/usr.bin/perl/cpan/Memoize/t/unmemoize.t	24 Sep 2010 14:49:01 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Memoize/t/unmemoize.t	21 Feb 2024 15:47:01 -0000
@@ -1,26 +1,51 @@
-#!/usr/bin/perl
-
-use lib '..';
+use strict; use warnings;
 use Memoize qw(memoize unmemoize);
+use Test::More tests => 26;
 
-print "1..5\n";
-
-eval { unmemoize('f') };	# Should fail
-print (($@ ? '' : 'not '), "ok 1\n");
-
-{ my $I = 0;
-  sub u { $I++ }
+is eval { unmemoize('u') }, undef, 'trying to unmemoize without memoizing fails';
+my $errx = qr/^Could not unmemoize function `u', because it was not memoized to begin with/;
+like $@, $errx, '... with the expected error';
+
+sub u {1}
+my $sub = \&u;
+my $wrapped = memoize('u');
+is \&u, $wrapped, 'trying to memoize succeeds';
+
+is eval { unmemoize('u') }, $sub, 'trying to unmemoize succeeds' or diag $@;
+
+is \&u, $sub, '... and does in fact unmemoize it';
+
+is eval { unmemoize('u') }, undef, 'trying to unmemoize it again fails';
+like $@, $errx, '... with the expected error';
+
+# Memoizing a function multiple times separately is not very useful
+# but it should not break unmemoize or make memoization lose its mind
+
+my $ret;
+my $dummy = sub { $ret };
+ok memoize $dummy, INSTALL => 'memo1';
+ok memoize $dummy, INSTALL => 'memo2';
+ok defined &memo1, 'memoized once';
+ok defined &memo2, 'memoized twice';
+$@ = '';
+ok eval { unmemoize 'memo1' }, 'unmemoized once';
+is $@, '', '... and no exception';
+$@ = '';
+ok eval { unmemoize 'memo2' }, 'unmemoized twice';
+is $@, '', '... and no exception';
+is \&memo1, $dummy, 'unmemoized installed once';
+is \&memo2, $dummy, 'unmemoized installed twice';
+
+my @quux = qw(foo bar baz);
+my %memo = map +($_ => memoize $dummy), @quux;
+for (@quux) { $ret = $_;  is $memo{$_}->(), $_, "\$memo{$_}->() returns $_" }
+for (@quux) { undef $ret; is $memo{$_}->(), $_, "\$memo{$_}->() returns $_" }
+
+my $destroyed = 0;
+sub Counted::DESTROY { ++$destroyed }
+{
+	my $memo = memoize $dummy, map +( "$_\_CACHE" => [ HASH => bless {}, 'Counted' ] ), qw(LIST SCALAR);
+	ok $memo, 'memoize anon';
+	ok eval { unmemoize $memo }, 'unmemoized anon';
 }
-memoize('u');
-my @ur = (&u, &u, &u);
-print (("@ur" eq "0 0 0") ? "ok 2\n" : "not ok 2\n");
-
-eval { unmemoize('u') };	# Should succeed
-print ($@ ? "not ok 3\n" : "ok 3\n");
-
-@ur = (&u, &u, &u);
-print (("@ur" eq "1 2 3") ? "ok 4\n" : "not ok 4\n");
-
-eval { unmemoize('u') };	# Should fail
-print ($@ ? "ok 5\n" : "not ok 5\n");
-
+is $destroyed, 2, 'no cyclic references';
Index: gnu/usr.bin/perl/cpan/Memoize/t/lib/DBMTest.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/Memoize/t/lib/DBMTest.pm
diff -N gnu/usr.bin/perl/cpan/Memoize/t/lib/DBMTest.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/Memoize/t/lib/DBMTest.pm	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,102 @@
+use strict; use warnings;
+
+package DBMTest;
+
+my ($module, $is_scalar_only);
+
+use Memoize qw(memoize unmemoize);
+use Test::More;
+
+sub errlines { split /\n/, $@ }
+
+my $ARG = 'Keith Bostic is a pinhead';
+
+sub c5 { 5 }
+sub c23 { 23 }
+
+sub test_dbm { SKIP: {
+	tie my %cache, $module, @_ or die $!;
+
+	my $sub = eval { unmemoize memoize sub {}, LIST_CACHE => [ HASH => \%cache ] };
+	my $errx = qr/^You can't use \Q$module\E for LIST_CACHE because it can only store scalars/;
+	if ($is_scalar_only) {
+		is $sub, undef, "use as LIST_CACHE fails";
+		like $@, $errx, '... with the expected error';
+	} else {
+		ok $sub, "use as LIST_CACHE succeeds";
+	}
+
+	$sub = eval { no warnings; unmemoize memoize sub {}, LIST_CACHE => [ TIE => $module, @_ ] };
+	if ($is_scalar_only) {
+		is $sub, undef, '... including under the TIE option';
+		like $@, $errx, '... with the expected error';
+	} else {
+		ok $sub, 'use as LIST_CACHE succeeds';
+	}
+
+	eval { exists $cache{'dummy'}; 1 }
+		or skip join("\n", 'exists() unsupported', errlines), 3;
+
+	memoize 'c5',
+		SCALAR_CACHE => [ HASH => \%cache ],
+		LIST_CACHE => 'FAULT';
+
+	is c5($ARG), 5, 'store value during first memoization';
+	unmemoize 'c5';
+
+	untie %cache;
+
+	tie %cache, $module, @_ or die $!;
+
+	# Now something tricky---we'll memoize c23 with the wrong table that
+	# has the 5 already cached.
+	memoize 'c23',
+		SCALAR_CACHE => [ HASH => \%cache ],
+		LIST_CACHE => 'FAULT';
+
+	is c23($ARG), 5, '... and find it still there after second memoization';
+	unmemoize 'c23';
+
+	untie %cache;
+
+	{ no warnings; memoize 'c23',
+		SCALAR_CACHE => [ TIE => $module, @_ ],
+		LIST_CACHE => 'FAULT';
+	}
+
+	is c23($ARG), 5, '... as well as a third memoization via TIE';
+	unmemoize 'c23';
+} }
+
+my @file;
+
+sub cleanup { 1 while unlink @file }
+
+sub import {
+	(undef, $module, my %arg) = (shift, @_);
+
+	$is_scalar_only = $arg{'is_scalar_only'} ? 2 : 0;
+	eval "require $module"
+		? plan tests => 5 + $is_scalar_only + ($arg{extra_tests}||0)
+		: plan skip_all => join "\n# ", "Could not load $module", errlines;
+
+	my ($basename) = map { s/.*:://; s/_file\z//; 'm_'.$_.$$ } lc $module;
+	my $dirfext = $^O eq 'VMS' ? '.sdbm_dir' : '.dir'; # copypaste from DBD::DBM
+	@file = map { $_, "$_.db", "$_.pag", $_.$dirfext } $basename;
+	cleanup;
+
+	my $pkg = caller;
+	no strict 'refs';
+	*{$pkg.'::'.$_} = \&$_ for qw(test_dbm cleanup);
+	*{$pkg.'::file'} = \$basename;
+}
+
+END {
+	cleanup;
+	if (my @failed = grep -e, @file) {
+		@failed = grep !unlink, @failed; # to set $!
+		warn "Can't unlink @failed! ($!)\n" if @failed;
+	}
+}
+
+1;
Index: gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/lib/PerlIO/via/QuotedPrint.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/lib/PerlIO/via/QuotedPrint.pm,v
diff -u -p -a -u -p -r1.3 QuotedPrint.pm
--- gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/lib/PerlIO/via/QuotedPrint.pm	15 Feb 2023 01:36:20 -0000	1.3
+++ gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/lib/PerlIO/via/QuotedPrint.pm	21 Feb 2024 15:47:01 -0000
@@ -12,7 +12,7 @@ use 5.008001;
 # be as strict as possible
 use strict;
 
-our $VERSION = '0.09';
+our $VERSION = '0.10';
 
 # modules that we need
 use MIME::QuotedPrint (); # no need to pollute this namespace
@@ -163,11 +163,11 @@ Public License or the Artistic License, 
 
 =head1 VERSION
 
-Version 0.09
+Version 0.10
 
 =head1 DATE
 
-08 Dec 2020
+22 May 2022
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t,v
diff -u -p -a -u -p -r1.1.1.3 QuotedPrint.t
--- gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t	15 Feb 2023 01:32:38 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/PerlIO-via-QuotedPrint/t/QuotedPrint.t	21 Feb 2024 15:47:01 -0000
@@ -10,6 +10,7 @@ BEGIN {                         # Magic 
     }
     if (ord("A") == 193) {
         print "1..0 # Skip: EBCDIC\n";
+        exit 0;
     }
 }
 
Index: gnu/usr.bin/perl/cpan/Pod-Checker/lib/Pod/Checker.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Pod-Checker/lib/Pod/Checker.pm,v
diff -u -p -a -u -p -r1.1.1.3 Checker.pm
--- gnu/usr.bin/perl/cpan/Pod-Checker/lib/Pod/Checker.pm	15 Feb 2023 01:32:43 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/Pod-Checker/lib/Pod/Checker.pm	21 Feb 2024 15:47:00 -0000
@@ -10,7 +10,7 @@ package Pod::Checker;
 use strict;
 use warnings;
 
-our $VERSION = '1.74';  ## Current version of this package
+our $VERSION = '1.75';  ## Current version of this package
 
 =head1 NAME
 
@@ -1112,7 +1112,10 @@ sub new {
 
     $self->{'-line'} ||= $caller->{'_line'};
     $self->{'-type'} ||= $simple_link->{'type'};
-
+    # preserve raw link text for additional checks
+    $self->{'-raw-link-text'} = (exists $simple_link->{'raw'})
+                                ? "$simple_link->{'raw'}"
+                                : "";
     # Force stringification of page and node.  (This expands any E<>.)
     $self->{'-page'} = exists $simple_link->{'to'} ? "$simple_link->{'to'}" : "";
     $self->{'-node'} = exists $simple_link->{'section'} ? "$simple_link->{'section'}" : "";
Index: gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm,v
diff -u -p -a -u -p -r1.4 Usage.pm
--- gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm	15 Feb 2023 01:36:21 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Pod-Usage/lib/Pod/Usage.pm	21 Feb 2024 15:47:00 -0000
@@ -18,7 +18,7 @@ use Config;
 use Exporter;
 use File::Spec;
 
-our $VERSION = '2.01';
+our $VERSION = '2.03';
 
 our @EXPORT = qw(&pod2usage);
 our @ISA;
Index: gnu/usr.bin/perl/cpan/Pod-Usage/t/inc/Pod/PlainText.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Pod-Usage/t/inc/Pod/PlainText.pm,v
diff -u -p -a -u -p -r1.1.1.2 PlainText.pm
--- gnu/usr.bin/perl/cpan/Pod-Usage/t/inc/Pod/PlainText.pm	15 Feb 2023 01:32:35 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Pod-Usage/t/inc/Pod/PlainText.pm	21 Feb 2024 15:47:00 -0000
@@ -37,6 +37,12 @@ BEGIN {
       require Symbol;
       Symbol->import;
    }
+   if ($] < 5.008 || ord "A" == 65) {
+      *to_native = sub { return chr shift; };
+   }
+   else {
+      *to_native = sub { return chr utf8::unicode_to_native(shift); };
+   }
 }
 
 ############################################################################
@@ -52,71 +58,71 @@ BEGIN {
     'gt'        =>    '>',      # right chevron, greater-than
     'quot'      =>    '"',      # double quote
 
-    "Aacute"    =>    "\xC1",   # capital A, acute accent
-    "aacute"    =>    "\xE1",   # small a, acute accent
-    "Acirc"     =>    "\xC2",   # capital A, circumflex accent
-    "acirc"     =>    "\xE2",   # small a, circumflex accent
-    "AElig"     =>    "\xC6",   # capital AE diphthong (ligature)
-    "aelig"     =>    "\xE6",   # small ae diphthong (ligature)
-    "Agrave"    =>    "\xC0",   # capital A, grave accent
-    "agrave"    =>    "\xE0",   # small a, grave accent
-    "Aring"     =>    "\xC5",   # capital A, ring
-    "aring"     =>    "\xE5",   # small a, ring
-    "Atilde"    =>    "\xC3",   # capital A, tilde
-    "atilde"    =>    "\xE3",   # small a, tilde
-    "Auml"      =>    "\xC4",   # capital A, dieresis or umlaut mark
-    "auml"      =>    "\xE4",   # small a, dieresis or umlaut mark
-    "Ccedil"    =>    "\xC7",   # capital C, cedilla
-    "ccedil"    =>    "\xE7",   # small c, cedilla
-    "Eacute"    =>    "\xC9",   # capital E, acute accent
-    "eacute"    =>    "\xE9",   # small e, acute accent
-    "Ecirc"     =>    "\xCA",   # capital E, circumflex accent
-    "ecirc"     =>    "\xEA",   # small e, circumflex accent
-    "Egrave"    =>    "\xC8",   # capital E, grave accent
-    "egrave"    =>    "\xE8",   # small e, grave accent
-    "ETH"       =>    "\xD0",   # capital Eth, Icelandic
-    "eth"       =>    "\xF0",   # small eth, Icelandic
-    "Euml"      =>    "\xCB",   # capital E, dieresis or umlaut mark
-    "euml"      =>    "\xEB",   # small e, dieresis or umlaut mark
-    "Iacute"    =>    "\xCD",   # capital I, acute accent
-    "iacute"    =>    "\xED",   # small i, acute accent
-    "Icirc"     =>    "\xCE",   # capital I, circumflex accent
-    "icirc"     =>    "\xEE",   # small i, circumflex accent
-    "Igrave"    =>    "\xCD",   # capital I, grave accent
-    "igrave"    =>    "\xED",   # small i, grave accent
-    "Iuml"      =>    "\xCF",   # capital I, dieresis or umlaut mark
-    "iuml"      =>    "\xEF",   # small i, dieresis or umlaut mark
-    "Ntilde"    =>    "\xD1",   # capital N, tilde
-    "ntilde"    =>    "\xF1",   # small n, tilde
-    "Oacute"    =>    "\xD3",   # capital O, acute accent
-    "oacute"    =>    "\xF3",   # small o, acute accent
-    "Ocirc"     =>    "\xD4",   # capital O, circumflex accent
-    "ocirc"     =>    "\xF4",   # small o, circumflex accent
-    "Ograve"    =>    "\xD2",   # capital O, grave accent
-    "ograve"    =>    "\xF2",   # small o, grave accent
-    "Oslash"    =>    "\xD8",   # capital O, slash
-    "oslash"    =>    "\xF8",   # small o, slash
-    "Otilde"    =>    "\xD5",   # capital O, tilde
-    "otilde"    =>    "\xF5",   # small o, tilde
-    "Ouml"      =>    "\xD6",   # capital O, dieresis or umlaut mark
-    "ouml"      =>    "\xF6",   # small o, dieresis or umlaut mark
-    "szlig"     =>    "\xDF",   # small sharp s, German (sz ligature)
-    "THORN"     =>    "\xDE",   # capital THORN, Icelandic
-    "thorn"     =>    "\xFE",   # small thorn, Icelandic
-    "Uacute"    =>    "\xDA",   # capital U, acute accent
-    "uacute"    =>    "\xFA",   # small u, acute accent
-    "Ucirc"     =>    "\xDB",   # capital U, circumflex accent
-    "ucirc"     =>    "\xFB",   # small u, circumflex accent
-    "Ugrave"    =>    "\xD9",   # capital U, grave accent
-    "ugrave"    =>    "\xF9",   # small u, grave accent
-    "Uuml"      =>    "\xDC",   # capital U, dieresis or umlaut mark
-    "uuml"      =>    "\xFC",   # small u, dieresis or umlaut mark
-    "Yacute"    =>    "\xDD",   # capital Y, acute accent
-    "yacute"    =>    "\xFD",   # small y, acute accent
-    "yuml"      =>    "\xFF",   # small y, dieresis or umlaut mark
+    "Aacute"    =>    to_native(0xC1),   # capital A, acute accent
+    "aacute"    =>    to_native(0xE1),   # small a, acute accent
+    "Acirc"     =>    to_native(0xC2),   # capital A, circumflex accent
+    "acirc"     =>    to_native(0xE2),   # small a, circumflex accent
+    "AElig"     =>    to_native(0xC6),   # capital AE diphthong (ligature)
+    "aelig"     =>    to_native(0xE6),   # small ae diphthong (ligature)
+    "Agrave"    =>    to_native(0xC0),   # capital A, grave accent
+    "agrave"    =>    to_native(0xE0),   # small a, grave accent
+    "Aring"     =>    to_native(0xC5),   # capital A, ring
+    "aring"     =>    to_native(0xE5),   # small a, ring
+    "Atilde"    =>    to_native(0xC3),   # capital A, tilde
+    "atilde"    =>    to_native(0xE3),   # small a, tilde
+    "Auml"      =>    to_native(0xC4),   # capital A, dieresis or umlaut mark
+    "auml"      =>    to_native(0xE4),   # small a, dieresis or umlaut mark
+    "Ccedil"    =>    to_native(0xC7),   # capital C, cedilla
+    "ccedil"    =>    to_native(0xE7),   # small c, cedilla
+    "Eacute"    =>    to_native(0xC9),   # capital E, acute accent
+    "eacute"    =>    to_native(0xE9),   # small e, acute accent
+    "Ecirc"     =>    to_native(0xCA),   # capital E, circumflex accent
+    "ecirc"     =>    to_native(0xEA),   # small e, circumflex accent
+    "Egrave"    =>    to_native(0xC8),   # capital E, grave accent
+    "egrave"    =>    to_native(0xE8),   # small e, grave accent
+    "ETH"       =>    to_native(0xD0),   # capital Eth, Icelandic
+    "eth"       =>    to_native(0xF0),   # small eth, Icelandic
+    "Euml"      =>    to_native(0xCB),   # capital E, dieresis or umlaut mark
+    "euml"      =>    to_native(0xEB),   # small e, dieresis or umlaut mark
+    "Iacute"    =>    to_native(0xCD),   # capital I, acute accent
+    "iacute"    =>    to_native(0xED),   # small i, acute accent
+    "Icirc"     =>    to_native(0xCE),   # capital I, circumflex accent
+    "icirc"     =>    to_native(0xEE),   # small i, circumflex accent
+    "Igrave"    =>    to_native(0xCD),   # capital I, grave accent
+    "igrave"    =>    to_native(0xED),   # small i, grave accent
+    "Iuml"      =>    to_native(0xCF),   # capital I, dieresis or umlaut mark
+    "iuml"      =>    to_native(0xEF),   # small i, dieresis or umlaut mark
+    "Ntilde"    =>    to_native(0xD1),   # capital N, tilde
+    "ntilde"    =>    to_native(0xF1),   # small n, tilde
+    "Oacute"    =>    to_native(0xD3),   # capital O, acute accent
+    "oacute"    =>    to_native(0xF3),   # small o, acute accent
+    "Ocirc"     =>    to_native(0xD4),   # capital O, circumflex accent
+    "ocirc"     =>    to_native(0xF4),   # small o, circumflex accent
+    "Ograve"    =>    to_native(0xD2),   # capital O, grave accent
+    "ograve"    =>    to_native(0xF2),   # small o, grave accent
+    "Oslash"    =>    to_native(0xD8),   # capital O, slash
+    "oslash"    =>    to_native(0xF8),   # small o, slash
+    "Otilde"    =>    to_native(0xD5),   # capital O, tilde
+    "otilde"    =>    to_native(0xF5),   # small o, tilde
+    "Ouml"      =>    to_native(0xD6),   # capital O, dieresis or umlaut mark
+    "ouml"      =>    to_native(0xF6),   # small o, dieresis or umlaut mark
+    "szlig"     =>    to_native(0xDF),   # small sharp s, German (sz ligature)
+    "THORN"     =>    to_native(0xDE),   # capital THORN, Icelandic
+    "thorn"     =>    to_native(0xFE),   # small thorn, Icelandic
+    "Uacute"    =>    to_native(0xDA),   # capital U, acute accent
+    "uacute"    =>    to_native(0xFA),   # small u, acute accent
+    "Ucirc"     =>    to_native(0xDB),   # capital U, circumflex accent
+    "ucirc"     =>    to_native(0xFB),   # small u, circumflex accent
+    "Ugrave"    =>    to_native(0xD9),   # capital U, grave accent
+    "ugrave"    =>    to_native(0xF9),   # small u, grave accent
+    "Uuml"      =>    to_native(0xDC),   # capital U, dieresis or umlaut mark
+    "uuml"      =>    to_native(0xFC),   # small u, dieresis or umlaut mark
+    "Yacute"    =>    to_native(0xDD),   # capital Y, acute accent
+    "yacute"    =>    to_native(0xFD),   # small y, acute accent
+    "yuml"      =>    to_native(0xFF),   # small y, dieresis or umlaut mark
 
-    "lchevron"  =>    "\xAB",   # left chevron (double less than)
-    "rchevron"  =>    "\xBB",   # right chevron (double greater than)
+    "lchevron"  =>    to_native(0xAB),   # left chevron (double less than)
+    "rchevron"  =>    to_native(0xBB),   # right chevron (double greater than)
 );
 
 
Index: gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t,v
diff -u -p -a -u -p -r1.4 pod2usage2.t
--- gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t	15 Feb 2023 01:36:21 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Pod-Usage/t/pod/pod2usage2.t	21 Feb 2024 15:47:00 -0000
@@ -361,6 +361,7 @@ like ($text, qr/frobnicate - do what I m
   *Pod::Usage::initialize = sub { 1; };
 }
 
+our $TODO;
 SKIP: {
     my $perldoc = $^X . 'doc';
     skip "Missing perldoc binary", 2 unless -x $perldoc;
@@ -378,8 +379,10 @@ SKIP: {
       } );
     is ($exit, 0,                 "Exit status pod2usage with special perldoc case");
     # output went to devnull
-    like ($text, qr/^\s*$/s, "Output test pod2usage with special perldoc case") or diag "Got:\n$text\n";
-
+    TODO: {
+        local $TODO = q[Can get output from stty view #14];
+        is( length($text), 0, "Output test pod2usage with special perldoc case") or diag "Got:\n$text\n";
+    }
 }
 
 # bad regexp syntax
Index: gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs,v
diff -u -p -a -u -p -r1.5 ListUtil.xs
--- gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Scalar-List-Utils/ListUtil.xs	21 Feb 2024 15:47:01 -0000
@@ -800,12 +800,12 @@ PPCODE:
         }
     }
 
-    if ( end < start ) {
+    if ( end <= start ) {
         XSRETURN(0);
     }
     else {
         EXTEND( SP, end - start );
-        for ( i = start; i <= end; i++ ) {
+        for ( i = start; i < end; i++ ) {
             PUSHs( sv_2mortal( newSVsv( ST(i) ) ) );
         }
         XSRETURN( end - start );
Index: gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm,v
diff -u -p -a -u -p -r1.5 Util.pm
--- gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util.pm	21 Feb 2024 15:47:01 -0000
@@ -16,7 +16,7 @@ our @EXPORT_OK  = qw(
   sample shuffle uniq uniqint uniqnum uniqstr zip zip_longest zip_shortest mesh mesh_longest mesh_shortest
   head tail pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst
 );
-our $VERSION    = "1.62";
+our $VERSION    = "1.63";
 our $XS_VERSION = $VERSION;
 $VERSION =~ tr/_//d;
 
Index: gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm,v
diff -u -p -a -u -p -r1.5 XS.pm
--- gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/List/Util/XS.pm	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use List::Util;
 
-our $VERSION = "1.62";       # FIXUP
+our $VERSION = "1.63";       # FIXUP
 $VERSION =~ tr/_//d;         # FIXUP
 
 1;
Index: gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm,v
diff -u -p -a -u -p -r1.5 Util.pm
--- gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Scalar/Util.pm	21 Feb 2024 15:47:01 -0000
@@ -17,7 +17,7 @@ our @EXPORT_OK = qw(
   dualvar isdual isvstring looks_like_number openhandle readonly set_prototype
   tainted
 );
-our $VERSION    = "1.62";
+our $VERSION    = "1.63";
 $VERSION =~ tr/_//d;
 
 require List::Util; # List::Util loads the XS
@@ -145,7 +145,7 @@ on these but C<reftype()> will return th
 C<"REGEXP"> in all capitals.
 
 I<Since Perl version 5.35.7> an equivalent function is available as
-C<builtin::refaddr>.
+C<builtin::reftype>.
 
 =head2 weaken
 
@@ -230,7 +230,7 @@ B<NOTE>: Copying a weak reference create
     $weak = isweak($copy);              # false
 
 I<Since Perl version 5.35.7> an equivalent function is available as
-C<builtin::isweak>.
+C<builtin::is_weak>.
 
 =head1 OTHER FUNCTIONS
 
Index: gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm,v
diff -u -p -a -u -p -r1.4 Util.pm
--- gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm	15 Feb 2023 01:36:21 -0000	1.4
+++ gnu/usr.bin/perl/cpan/Scalar-List-Utils/lib/Sub/Util.pm	21 Feb 2024 15:47:01 -0000
@@ -15,7 +15,7 @@ our @EXPORT_OK = qw(
   subname set_subname
 );
 
-our $VERSION    = "1.62";
+our $VERSION    = "1.63";
 $VERSION =~ tr/_//d;
 
 require List::Util; # as it has the XS
Index: gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/exotic_names.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/exotic_names.t,v
diff -u -p -a -u -p -r1.1.1.2 exotic_names.t
--- gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/exotic_names.t	1 Mar 2021 23:15:34 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Scalar-List-Utils/t/exotic_names.t	21 Feb 2024 15:47:01 -0000
@@ -40,8 +40,8 @@ sub caller3_ok {
         ),
         (
             $ord > 255                    ? unpack('H*', pack 'C0U', $ord )
-            : ($ord > 0x1f and $ord < 0x7f) ? sprintf "%c", $ord
-            :                                 sprintf '\%o', $ord
+            : (chr $ord =~ /[[:print:]]/) ? sprintf "%c", $ord
+            :                               sprintf '\%o', $ord
         ),
     );
 
Index: gnu/usr.bin/perl/cpan/Socket/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Socket/Makefile.PL,v
diff -u -p -a -u -p -r1.5 Makefile.PL
--- gnu/usr.bin/perl/cpan/Socket/Makefile.PL	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Socket/Makefile.PL	21 Feb 2024 15:47:00 -0000
@@ -219,13 +219,14 @@ my @names = (
 	SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BINDTODEVICE SO_BROADCAST
 	SO_BSDCOMPAT SO_BUSY_POLL SO_CHAMELEON SO_DEBUG SO_DETACH_FILTER
 	SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER SO_DONTROUTE SO_ERROR SO_FAMILY
-	SO_KEEPALIVE SO_LINGER SO_LOCK_FILTER SO_MARK SO_OOBINLINE SO_PASSCRED
-	SO_PASSIFNAME SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL
-	SO_PROTOTYPE SO_RCVBUF SO_RCVBUFFORCE SO_RCVLOWAT SO_RCVTIMEO
-	SO_REUSEADDR SO_REUSEPORT SO_RXQ_OVFL SO_SECURITY_AUTHENTICATION
-	SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT
-	SO_SNDBUF SO_SNDBUFFORCE SO_SNDLOWAT SO_SNDTIMEO SO_STATE SO_TIMESTAMP
-	SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
+	SO_INCOMING_CPU SO_INCOMING_NAPI_ID SO_KEEPALIVE SO_LINGER
+	SO_LOCK_FILTER SO_MARK SO_OOBINLINE SO_PASSCRED SO_PASSIFNAME
+	SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL SO_PROTOTYPE SO_RCVBUF
+	SO_RCVBUFFORCE SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT
+	SO_RXQ_OVFL SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK
+	SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDBUFFORCE SO_SNDLOWAT
+	SO_SNDTIMEO SO_STATE SO_TIMESTAMP SO_TYPE SO_USELOOPBACK SO_XOPEN
+	SO_XSE
 
 	TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT
 	TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT
Index: gnu/usr.bin/perl/cpan/Socket/Socket.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Socket/Socket.pm,v
diff -u -p -a -u -p -r1.5 Socket.pm
--- gnu/usr.bin/perl/cpan/Socket/Socket.pm	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Socket/Socket.pm	21 Feb 2024 15:47:00 -0000
@@ -3,7 +3,7 @@ package Socket;
 use strict;
 { use v5.6.1; }
 
-our $VERSION = '2.033';
+our $VERSION = '2.036';
 
 =head1 NAME
 
@@ -793,7 +793,8 @@ our @EXPORT_OK = qw(
 	IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT
 	IPV6_UNICAST_HOPS IPV6_V6ONLY
 
-	SO_LOCK_FILTER SO_RCVBUFFORCE SO_SNDBUFFORCE
+	SO_INCOMING_CPU SO_INCOMING_NAPI_ID SO_LOCK_FILTER SO_RCVBUFFORCE
+	SO_SNDBUFFORCE
 
 	pack_ip_mreq unpack_ip_mreq pack_ip_mreq_source unpack_ip_mreq_source
 
Index: gnu/usr.bin/perl/cpan/Socket/Socket.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Socket/Socket.xs,v
diff -u -p -a -u -p -r1.5 Socket.xs
--- gnu/usr.bin/perl/cpan/Socket/Socket.xs	15 Feb 2023 01:36:21 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Socket/Socket.xs	21 Feb 2024 15:47:00 -0000
@@ -98,6 +98,14 @@ struct sockaddr_un
 
 #endif
 
+/*
+ * The Windows implementations of inet_ntop and inet_pton are available
+ * whenever (and only when) InetNtopA is defined.
+ * Use those implementations whenever they are available.
+ * Else use the implementations provided below.
+*/
+#ifndef InetNtopA
+
 static int inet_pton(int af, const char *src, void *dst)
 {
   struct sockaddr_storage ss;
@@ -146,6 +154,8 @@ static const char *inet_ntop(int af, con
     return dst;
 }
 
+#endif /* InetNtopA  not defined */
+
 #define HAS_INETPTON
 #define HAS_INETNTOP
 #endif
@@ -224,10 +234,6 @@ static SV *my_newSVpvn_flags(pTHX_ const
 }
 #endif /* !newSVpvn_flags */
 
-#ifndef SvRV_set
-# define SvRV_set(sv, val) (SvRV(sv) = (val))
-#endif /* !SvRV_set */
-
 #ifndef SvPVbyte_nomg
 # define SvPVbyte_nomg SvPV
 #endif /* !SvPVbyte_nomg */
@@ -1191,13 +1197,14 @@ inet_ntop(af, ip_address_sv)
 	    break;
 #endif
 	  default:
-		croak("Bad address family for %s, got %d, should be"
 #ifdef AF_INET6
-		      " either AF_INET or AF_INET6",
+#    define WANT_FAMILY "either AF_INET or AF_INET6"
 #else
-		      " AF_INET",
+#    define WANT_FAMILY "AF_INET"
 #endif
+		croak("Bad address family for %s, got %d, should be " WANT_FAMILY,
 		      "Socket::inet_ntop", af);
+#undef WANT_FAMILY
 	}
 
 	if(addrlen < sizeof(addr)) {
@@ -1240,13 +1247,13 @@ inet_pton(af, host)
 	    break;
 #endif
 	  default:
-		croak("Bad address family for %s, got %d, should be"
 #ifdef AF_INET6
-		      " either AF_INET or AF_INET6",
+#    define WANT_FAMILY "either AF_INET or AF_INET6"
 #else
-		      " AF_INET",
+#    define WANT_FAMILY "AF_INET"
 #endif
-		      "Socket::inet_pton", af);
+		croak("Bad address family for %s, got %d, should be " WANT_FAMILY, "Socket::inet_pton", af);
+#undef WANT_FAMILY
 	}
 	ok = (*host != '\0') && inet_pton(af, host, &ip_address);
 
Index: gnu/usr.bin/perl/cpan/Socket/t/getnameinfo.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Socket/t/getnameinfo.t,v
diff -u -p -a -u -p -r1.3 getnameinfo.t
--- gnu/usr.bin/perl/cpan/Socket/t/getnameinfo.t	15 Feb 2023 01:36:21 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Socket/t/getnameinfo.t	21 Feb 2024 15:47:00 -0000
@@ -19,8 +19,8 @@ is( $host, undef, '$host is undef for NI
 is( $service, "80", '$service is 80 for NS, NIx_NOHOST' );
 
 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV, NIx_NOSERV );
-is( $host, "127.0.0.1", '$host is undef for NIx_NOSERV' );
-is( $service, undef, '$service is 80 for NS, NIx_NOSERV' );
+is( $host, "127.0.0.1", '$host is 127.0.0.1 for NIx_NOSERV' );
+is( $service, undef, '$service is undef for NS, NIx_NOSERV' );
 
 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICSERV );
 cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICSERV' );
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2.pm,v
diff -u -p -a -u -p -r1.1.1.4 Test2.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 1;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm,v
diff -u -p -a -u -p -r1.5 ok.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm	15 Feb 2023 01:36:23 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/ok.pm	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,5 @@
 package ok;
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use strict;
 use Test::More ();
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm,v
diff -u -p -a -u -p -r1.9 Builder.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm	15 Feb 2023 01:36:23 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN {
     if( $] < 5.008 ) {
@@ -1002,15 +1002,7 @@ END
             $self->_is_diag( $got, $type, $expect );
         }
         elsif( $type =~ /^(ne|!=)$/ ) {
-            no warnings;
-            my $eq = ($got eq $expect || $got == $expect)
-                && (
-                    (defined($got) xor defined($expect))
-                 || (length($got)  !=  length($expect))
-                );
-            use warnings;
-
-            if ($eq) {
+            if (defined($got) xor defined($expect)) {
                 $self->_cmp_diag( $got, $type, $expect );
             }
             else {
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm,v
diff -u -p -a -u -p -r1.9 More.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm	15 Feb 2023 01:36:23 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/More.pm	21 Feb 2024 15:47:01 -0000
@@ -17,7 +17,7 @@ sub _carp {
     return warn @_, " at $file line $line\n";
 }
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
@@ -394,8 +394,13 @@ different from some other value:
 
   isnt $obj, $clone, "clone() produces a different object";
 
-For those grammatical pedants out there, there's an C<isn't()>
-function which is an alias of C<isnt()>.
+Historically we supported an C<isn't()> function as an alias of
+C<isnt()>, however in Perl 5.37.9 support for the use of aprostrophe as
+a package separator was deprecated and by Perl 5.42.0 support for it
+will have been removed completely. Accordingly use of C<isn't()> is also
+deprecated, and will produce warnings when used unless 'deprecated'
+warnings are specifically disabled in the scope where it is used. You
+are strongly advised to migrate to using C<isnt()> instead.
 
 =cut
 
@@ -411,8 +416,25 @@ sub isnt ($$;$) {
     return $tb->isnt_eq(@_);
 }
 
-# make this available as isn't()
-*isn::t = \&isnt;
+# Historically it was possible to use apostrophes as a package
+# separator. make this available as isn't() for perl's that support it.
+# However in 5.37.9 the apostrophe as a package separator was
+# deprecated, so warn users of isn't() that they should use isnt()
+# instead. We assume that if they are calling isn::t() they are doing so
+# via isn't() as we have no way to be sure that they aren't spelling it
+# with a double colon. We only trigger the warning if deprecation
+# warnings are enabled, so the user can silence the warning if they
+# wish.
+sub isn::t {
+    local ($@, $!, $?);
+    if (warnings::enabled("deprecated")) {
+        _carp
+        "Use of apostrophe as package separator was deprecated in Perl 5.37.9,\n",
+        "and will be removed in Perl 5.42.0.  You should change code that uses\n",
+        "Test::More::isn't() to use Test::More::isnt() as a replacement";
+    }
+    goto &isnt;
+}
 
 =item B<like>
 
@@ -1770,8 +1792,8 @@ sub eq_set {
 Sometimes the Test::More interface isn't quite enough.  Fortunately,
 Test::More is built on top of L<Test::Builder> which provides a single,
 unified backend for any test library to use.  This means two test
-libraries which both use <Test::Builder> B<can> be used together in the
-same program>.
+libraries which both use L<Test::Builder> B<can> be used together in the
+same program.
 
 If you simply want to do a little tweaking of how the tests behave,
 you can access the underlying L<Test::Builder> object like so:
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm,v
diff -u -p -a -u -p -r1.9 Simple.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm	15 Feb 2023 01:36:23 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Simple.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use 5.006;
 
 use strict;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm,v
diff -u -p -a -u -p -r1.5 Tester.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm	15 Feb 2023 01:36:23 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester.pm	21 Feb 2024 15:47:01 -0000
@@ -18,7 +18,7 @@ require Exporter;
 
 use vars qw( @ISA @EXPORT );
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 @EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
 @ISA = qw( Exporter );
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Formatter.pm,v
diff -u -p -a -u -p -r1.1.1.4 Formatter.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Formatter.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Formatter.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test::Builder::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm,v
diff -u -p -a -u -p -r1.9 Module.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm	15 Feb 2023 01:36:23 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Module.pm	21 Feb 2024 15:47:01 -0000
@@ -7,7 +7,7 @@ use Test::Builder;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 =head1 NAME
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm,v
diff -u -p -a -u -p -r1.9 Tester.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm	15 Feb 2023 01:36:23 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester.pm	21 Feb 2024 15:47:01 -0000
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test::Builder;
 use Symbol;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm,v
diff -u -p -a -u -p -r1.1.1.4 TodoDiag.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test::Builder::TodoDiag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm,v
diff -u -p -a -u -p -r1.9 Color.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm	15 Feb 2023 01:36:23 -0000	1.9
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm	21 Feb 2024 15:47:01 -0000
@@ -1,7 +1,7 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 require Test::Builder::Tester;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm,v
diff -u -p -a -u -p -r1.5 Capture.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm	15 Feb 2023 01:36:23 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Capture.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ use strict;
 
 package Test::Tester::Capture;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Test::Builder;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm,v
diff -u -p -a -u -p -r1.5 CaptureRunner.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm	15 Feb 2023 01:36:23 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@ use strict;
 
 package Test::Tester::CaptureRunner;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Test::Tester::Capture;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm,v
diff -u -p -a -u -p -r1.5 Delegate.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm	15 Feb 2023 01:36:23 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/Tester/Delegate.pm	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@ use warnings;
 
 package Test::Tester::Delegate;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Scalar::Util();
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm,v
diff -u -p -a -u -p -r1.5 ok.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm	15 Feb 2023 01:36:23 -0000	1.5
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test/use/ok.pm	21 Feb 2024 15:47:01 -0000
@@ -1,7 +1,7 @@
 package Test::use::ok;
 use 5.005;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 __END__
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API.pm,v
diff -u -p -a -u -p -r1.1.1.4 API.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API.pm	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ BEGIN {
     $ENV{TEST2_ACTIVE} = 1;
 }
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 my $INST;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event.pm,v
diff -u -p -a -u -p -r1.1.1.4 Event.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Scalar::Util qw/blessed reftype/;
 use Carp qw/croak/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet.pm,v
diff -u -p -a -u -p -r1.1.1.4 EventFacet.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test2::Util::HashBase qw/-details/;
 use Carp qw/croak/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter.pm,v
diff -u -p -a -u -p -r1.1.1.4 Formatter.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 my %ADDED;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub.pm,v
diff -u -p -a -u -p -r1.1.1.4 Hub.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Hub;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Carp qw/carp croak confess/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC.pm,v
diff -u -p -a -u -p -r1.1.1.4 IPC.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::IPC;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Test2::API::Instance;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util.pm,v
diff -u -p -a -u -p -r1.1.1.4 Util.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util.pm	15 Feb 2023 01:32:38 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Util;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use POSIX();
 use Config qw/%Config/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Breakage.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Breakage.pm,v
diff -u -p -a -u -p -r1.1.1.4 Breakage.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Breakage.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Breakage.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::Breakage;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Test2::Util qw/pkg_to_file/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Context.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Context.pm,v
diff -u -p -a -u -p -r1.1.1.4 Context.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Context.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Context.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::Context;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Carp qw/confess croak/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Instance.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Instance.pm,v
diff -u -p -a -u -p -r1.1.1.4 Instance.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Instance.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Instance.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::Instance;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver Test2::Formatter/;
 use Carp qw/confess carp/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult.pm,v
diff -u -p -a -u -p -r1.1.1.1 InterceptResult.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult.pm	15 Feb 2023 01:32:39 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Scalar::Util qw/blessed/;
 use Test2::Util  qw/pkg_to_file/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Stack.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Stack.pm,v
diff -u -p -a -u -p -r1.1.1.4 Stack.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Stack.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/Stack.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::Stack;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Test2::Hub();
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Event.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Event.pm,v
diff -u -p -a -u -p -r1.1.1.1 Event.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Event.pm	15 Feb 2023 01:32:39 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Event.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Eve
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use List::Util   qw/first/;
 use Test2::Util  qw/pkg_to_file/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Facet.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Facet.pm,v
diff -u -p -a -u -p -r1.1.1.1 Facet.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Facet.pm	15 Feb 2023 01:32:39 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Facet.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Fac
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN {
     require Test2::EventFacet;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Hub.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Hub.pm,v
diff -u -p -a -u -p -r1.1.1.1 Hub.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Hub.pm	15 Feb 2023 01:32:39 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Hub.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Hub
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
 use Test2::Util::HashBase;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Squasher.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Squasher.pm,v
diff -u -p -a -u -p -r1.1.1.1 Squasher.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Squasher.pm	15 Feb 2023 01:32:39 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/API/InterceptResult/Squasher.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::API::InterceptResult::Squ
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Carp qw/croak/;
 use List::Util qw/first/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Bail.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Bail.pm,v
diff -u -p -a -u -p -r1.1.1.4 Bail.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Bail.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Bail.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Bail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Diag.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Diag.pm,v
diff -u -p -a -u -p -r1.1.1.4 Diag.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Diag.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Diag.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Diag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Encoding.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Encoding.pm,v
diff -u -p -a -u -p -r1.1.1.4 Encoding.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Encoding.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Encoding.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Encoding;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Carp qw/croak/;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Exception.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Exception.pm,v
diff -u -p -a -u -p -r1.1.1.4 Exception.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Exception.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Exception.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Exception;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Fail.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Fail.pm,v
diff -u -p -a -u -p -r1.1.1.4 Fail.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Fail.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Fail.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Fail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test2::EventFacet::Info;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Generic.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Generic.pm,v
diff -u -p -a -u -p -r1.1.1.4 Generic.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Generic.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Generic.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use warnings;
 use Carp qw/croak/;
 use Scalar::Util qw/reftype/;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
 use Test2::Util::HashBase;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Note.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Note.pm,v
diff -u -p -a -u -p -r1.1.1.4 Note.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Note.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Note.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Note;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Ok.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Ok.pm,v
diff -u -p -a -u -p -r1.1.1.4 Ok.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Ok.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Ok.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Ok;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Pass.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Pass.pm,v
diff -u -p -a -u -p -r1.1.1.4 Pass.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Pass.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Pass.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Pass;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test2::EventFacet::Info;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Plan.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Plan.pm,v
diff -u -p -a -u -p -r1.1.1.4 Plan.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Plan.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Plan.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Skip.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Skip.pm,v
diff -u -p -a -u -p -r1.1.1.4 Skip.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Skip.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Skip.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Skip;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Subtest.pm,v
diff -u -p -a -u -p -r1.1.1.4 Subtest.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Subtest.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Subtest.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
 use Test2::Util::HashBase qw{subevents buffered subtest_id subtest_uuid start_stamp stop_stamp};
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/V2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/V2.pm,v
diff -u -p -a -u -p -r1.1.1.4 V2.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/V2.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/V2.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::V2;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Scalar::Util qw/reftype/;
 use Carp qw/croak/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Waiting.pm,v
diff -u -p -a -u -p -r1.1.1.4 Waiting.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Waiting.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/Waiting.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::Waiting;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm,v
diff -u -p -a -u -p -r1.1.1.4 Version.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Event::TAP::Version;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Carp qw/croak/;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/About.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/About.pm,v
diff -u -p -a -u -p -r1.1.1.4 About.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/About.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/About.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::About;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -package -no_display -uuid -eid };
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm,v
diff -u -p -a -u -p -r1.1.1.4 Amnesty.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Amnesty;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 sub is_list { 1 }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm,v
diff -u -p -a -u -p -r1.1.1.4 Assert.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Assert;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -pass -no_debug -number };
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm,v
diff -u -p -a -u -p -r1.1.1.4 Control.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Control;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -global -terminate -halt -has_callback -encoding -phase };
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm,v
diff -u -p -a -u -p -r1.1.1.4 Error.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Error;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 sub facet_key { 'errors' }
 sub is_list { 1 }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm,v
diff -u -p -a -u -p -r1.1.1.4 Hub.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Hub;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 sub is_list { 1 }
 sub facet_key { 'hubs' }
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm,v
diff -u -p -a -u -p -r1.1.1.4 Info.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 sub is_list { 1 }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm,v
diff -u -p -a -u -p -r1.1.1.4 Meta.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Meta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use vars qw/$AUTOLOAD/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm,v
diff -u -p -a -u -p -r1.1.1.4 Parent.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Parent;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Carp qw/confess/;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm,v
diff -u -p -a -u -p -r1.1.1.4 Plan.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -count -skip -none };
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Render.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Render.pm,v
diff -u -p -a -u -p -r1.1.1.4 Render.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Render.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Render.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Render;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 sub is_list { 1 }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm,v
diff -u -p -a -u -p -r1.1.1.4 Trace.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Trace;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm,v
diff -u -p -a -u -p -r1.1.1.3 Table.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm	15 Feb 2023 01:32:39 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info::Table;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Carp qw/confess/;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm,v
diff -u -p -a -u -p -r1.1.1.4 TAP.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Formatter::TAP;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Test2::Util qw/clone_io/;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm,v
diff -u -p -a -u -p -r1.1.1.4 Interceptor.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Test2::Hub::Interceptor::Terminator();
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm,v
diff -u -p -a -u -p -r1.1.1.4 Subtest.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Hub::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
 use Test2::Util::HashBase qw/nested exit_code manual_skip_all/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm,v
diff -u -p -a -u -p -r1.1.1.4 Terminator.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor::Termina
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 1;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver.pm,v
diff -u -p -a -u -p -r1.1.1.4 Driver.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::IPC::Driver;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Carp qw/confess/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm,v
diff -u -p -a -u -p -r1.1.1.4 Files.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::IPC::Driver::Files;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm,v
diff -u -p -a -u -p -r1.1.1.4 Tiny.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm	21 Feb 2024 15:47:01 -0000
@@ -16,7 +16,7 @@ use Test2::API qw/context run_subtest te
 use Test2::Hub::Interceptor();
 use Test2::Hub::Interceptor::Terminator();
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 BEGIN { require Exporter; our @ISA = qw(Exporter) }
 our @EXPORT = qw{
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm,v
diff -u -p -a -u -p -r1.1.1.4 ExternalMeta.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Util::ExternalMeta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 
 use Carp qw/croak/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm,v
diff -u -p -a -u -p -r1.1.1.4 Facets2Legacy.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Util::Facets2Legacy;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 use Carp qw/croak confess/;
 use Scalar::Util qw/blessed/;
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/HashBase.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/HashBase.pm,v
diff -u -p -a -u -p -r1.1.1.4 HashBase.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/HashBase.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/HashBase.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Test2::Util::HashBase;
 use strict;
 use warnings;
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 #################################################################
 #                                                               #
Index: gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Trace.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Trace.pm,v
diff -u -p -a -u -p -r1.1.1.4 Trace.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Trace.pm	15 Feb 2023 01:32:39 -0000	1.1.1.4
+++ gnu/usr.bin/perl/cpan/Test-Simple/lib/Test2/Util/Trace.pm	21 Feb 2024 15:47:01 -0000
@@ -6,7 +6,7 @@ use strict;
 
 our @ISA = ('Test2::EventFacet::Trace');
 
-our $VERSION = '1.302190';
+our $VERSION = '1.302194';
 
 1;
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/More.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/More.t,v
diff -u -p -a -u -p -r1.1.1.2 More.t
--- gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/More.t	15 Feb 2023 01:32:38 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/More.t	21 Feb 2024 15:47:00 -0000
@@ -8,7 +8,7 @@ BEGIN {
 }
 
 use lib 't/lib';
-use Test::More tests => 54;
+use Test::More tests => 57;
 
 # Make sure we don't mess with $@ or $!.  Test at bottom.
 my $Err   = "this should not be touched";
@@ -24,7 +24,24 @@ require_ok('Test::More');
 ok( 2 eq 2,             'two is two is two is two' );
 is(   "foo", "foo",       'foo is foo' );
 isnt( "foo", "bar",     'foo isnt bar');
-isn::t("foo", "bar",     'foo isn\'t bar');
+{
+    use warnings;
+    my $warning;
+    local $SIG{__WARN__}= sub { $warning = $_[0] };
+    isn::t("foo", "bar",     'foo isn\'t bar');
+    is($warning, "Use of apostrophe as package separator was deprecated in Perl 5.37.9,\n"
+               . "and will be removed in Perl 5.42.0.  You should change code that uses\n"
+               . "Test::More::isn't() to use Test::More::isnt() as a replacement"
+               . " at t/Legacy/More.t line 31\n",
+            "Got expected warning from isn::t() under use warnings");
+}
+{
+    no warnings "deprecated";
+    my $warning;
+    local $SIG{__WARN__}= sub { $warning = $_[0] };
+    isn::t("foo", "bar",     'foo isn\'t bar');
+    is($warning, undef, "No warnings from isn::t() under no warnings deprecated");
+}
 
 #'#
 like("fooble", '/^foo/',    'foo is like fooble');
Index: gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/cmp_ok.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/cmp_ok.t,v
diff -u -p -a -u -p -r1.1.1.1 cmp_ok.t
--- gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/cmp_ok.t	13 Feb 2019 21:11:21 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/cmp_ok.t	21 Feb 2024 15:47:00 -0000
@@ -60,6 +60,7 @@ Test::More->builder->no_ending(1);
 require MyOverload;
 my $cmp = Overloaded::Compare->new("foo", 42);
 my $ify = Overloaded::Ify->new("bar", 23);
+my $part = Overloaded::Partial->new('baz', 0);
 
 my @Tests = (
     [1, '==', 1],
@@ -73,6 +74,8 @@ my @Tests = (
     [$cmp, 'eq', "foo"],
     [$ify, 'eq', "bar"],
     [$ify, "==", 23],
+
+    [$part, '!=', 0, 'expected: anything else'],
 
     [1, "=", 0,  "= is not a valid comparison operator in cmp_ok()"],
     [1, "+=", 0, "+= is not a valid comparison operator in cmp_ok()"],
Index: gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/fail-more.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/fail-more.t,v
diff -u -p -a -u -p -r1.1.1.2 fail-more.t
--- gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/fail-more.t	15 Feb 2023 01:32:38 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/fail-more.t	21 Feb 2024 15:47:00 -0000
@@ -26,7 +26,7 @@ package My::Test;
 # Test::Builder's own and the ending diagnostics don't come out right.
 require Test::Builder;
 my $TB = Test::Builder->create;
-$TB->plan(tests => 80);
+$TB->plan(tests => 81);
 
 sub like ($$;$) {
     $TB->like(@_);
@@ -41,6 +41,14 @@ sub main::out_ok ($$) {
     $TB->is_eq( $err->read, shift );
 }
 
+sub main::out_warn_ok ($$$) {
+    $TB->is_eq( $out->read, shift );
+    $TB->is_eq( $err->read, shift );
+    my $warning_expected = shift;
+    $warning_expected =~ s/^# //mg;
+    $TB->is_eq( $main::warning, $warning_expected );
+}
+
 sub main::out_like ($$) {
     my($output, $failure) = @_;
 
@@ -59,7 +67,7 @@ $out->read;  # clear the plan from $out
 
 # This should all work in the presence of a __DIE__ handler.
 local $SIG{__DIE__} = sub { $TB->ok(0, "DIE handler called: ".join "", @_); };
-
+local $SIG{__WARN__} = sub { $main::warning = $_[0]; };
 
 my $tb = Test::More->builder;
 $tb->use_numbers(0);
@@ -134,7 +142,7 @@ ERR
 
 #line 132
 isn::t("foo", "foo",'foo isn\'t foo?' );
-out_ok( <<OUT, <<ERR );
+out_warn_ok( <<OUT, <<ERR, <<WARN );
 not ok - foo isn't foo?
 OUT
 #   Failed test 'foo isn\'t foo?'
@@ -142,6 +150,10 @@ OUT
 #          got: 'foo'
 #     expected: anything else
 ERR
+# Use of apostrophe as package separator was deprecated in Perl 5.37.9,
+# and will be removed in Perl 5.42.0.  You should change code that uses
+# Test::More::isn't() to use Test::More::isnt() as a replacement at t/Legacy/fail-more.t line 132
+WARN
 
 #line 143
 isnt(undef, undef, 'undef isnt undef?');
Index: gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/Regression/870-experimental-warnings.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/Regression/870-experimental-warnings.t,v
diff -u -p -a -u -p -r1.1.1.1 870-experimental-warnings.t
--- gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/Regression/870-experimental-warnings.t	15 Feb 2023 01:32:38 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/Regression/870-experimental-warnings.t	21 Feb 2024 15:47:00 -0000
@@ -2,12 +2,16 @@ use strict;
 use warnings;
 use Test2::Tools::Tiny;
 
-BEGIN { skip_all "Only testing on 5.18+" if $] < 5.018 }
+BEGIN {
+    skip_all "Not testing before 5.18 or after 5.37.10"
+        if $] < 5.018 or $] >= 5.037010;
+}
 
 require Test::More;
 *cmp_ok = \&Test::More::cmp_ok;
 
 no warnings "experimental::smartmatch";
+no if !exists $warnings::Offsets{"experimental::smartmatch"}, warnings => 'deprecated';
 
 my $warnings = warnings { cmp_ok(1, "~~", 1) };
 
Index: gnu/usr.bin/perl/cpan/Test-Simple/t/lib/MyOverload.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Test-Simple/t/lib/MyOverload.pm,v
diff -u -p -a -u -p -r1.1.1.2 MyOverload.pm
--- gnu/usr.bin/perl/cpan/Test-Simple/t/lib/MyOverload.pm	15 Feb 2023 01:32:38 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Test-Simple/t/lib/MyOverload.pm	21 Feb 2024 15:47:01 -0000
@@ -33,4 +33,11 @@ use overload
     $_[0]->{num};
   };
 
+package Overloaded::Partial;
+
+our @ISA = qw(Overloaded);
+use overload
+  q{""} => sub { $_[0]->{string} },
+  q{!=} => sub { $_[0]->{num} != $_[1] };
+
 1;
Index: gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm,v
diff -u -p -a -u -p -r1.19 Balanced.pm
--- gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm	15 Feb 2023 01:36:23 -0000	1.19
+++ gnu/usr.bin/perl/cpan/Text-Balanced/lib/Text/Balanced.pm	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,7 @@
 # Copyright (C) 1997-2001 Damian Conway.  All rights reserved.
 # Copyright (C) 2009 Adam Kennedy.
-# Copyright (C) 2015 Steve Hay.  All rights reserved.
+# Copyright (C) 2015, 2022 Steve Hay and other contributors.  All rights
+# reserved.
 
 # This module is free software; you can redistribute it and/or modify it under
 # the same terms as Perl itself, i.e. under the terms of either the GNU General
@@ -17,7 +18,7 @@ use Exporter ();
 
 use vars qw { $VERSION @ISA %EXPORT_TAGS };
 BEGIN {
-    $VERSION     = '2.04';
+    $VERSION     = '2.06';
     @ISA         = 'Exporter';
     %EXPORT_TAGS = (
         ALL => [ qw{
@@ -37,14 +38,22 @@ BEGIN {
 
 Exporter::export_ok_tags('ALL');
 
-## no critic (Subroutines::ProhibitSubroutinePrototypes)
-
-# PROTOTYPES
+our $RE_PREREGEX_PAT = qr#(
+    [!=]~
+    | split|grep|map
+    | not|and|or|xor
+)#x;
+our $RE_EXPR_PAT = qr#(
+    (?:\*\*|&&|\|\||<<|>>|//|[-+*x%^&|.])=?
+    | /(?:[^/])
+    | =(?!>)
+    | return
+    | [\(\[]
+)#x;
+our $RE_NUM = qr/\s*[+\-.0-9][+\-.0-9e]*/i; # numerical constant
 
-sub _match_bracketed($$$$$$);
-sub _match_variable($$);
-sub _match_codeblock($$$$$$$);
-sub _match_quotelike($$$$);
+our %ref2slashvalid; # is quotelike /.../ pattern valid here for given textref?
+our %ref2qmarkvalid; # is quotelike ?...? pattern valid here for given textref?
 
 # HANDLE RETURN VALUES IN VARIOUS CONTEXTS
 
@@ -99,6 +108,7 @@ sub _succeed {
 }
 
 # BUILD A PATTERN MATCHING A SIMPLE DELIMITED STRING
+## no critic (Subroutines::ProhibitSubroutinePrototypes)
 
 sub gen_delimited_pat($;$)  # ($delimiters;$escapes)
 {
@@ -132,6 +142,7 @@ sub gen_delimited_pat($;$)  # ($delimite
 sub extract_delimited (;$$$$)
 {
     my $textref = defined $_[0] ? \$_[0] : \$_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
     my $wantarray = wantarray;
     my $del  = defined $_[1] ? $_[1] : qq{\'\"\`};
     my $pre  = defined $_[2] ? $_[2] : '\s*';
@@ -149,33 +160,45 @@ sub extract_delimited (;$$$$)
                     $startpos, $prelen;                         # PREFIX
 }
 
-sub extract_bracketed (;$$$)
-{
-    my $textref = defined $_[0] ? \$_[0] : \$_;
-    my $ldel = defined $_[1] ? $_[1] : '{([<';
-    my $pre  = defined $_[2] ? $_[2] : '\s*';
-    my $wantarray = wantarray;
+my %eb_delim_cache;
+sub _eb_delims {
+    my ($ldel_orig) = @_;
+    return @{ $eb_delim_cache{$ldel_orig} } if $eb_delim_cache{$ldel_orig};
     my $qdel = "";
     my $quotelike;
+    my $ldel = $ldel_orig;
     $ldel =~ s/'//g and $qdel .= q{'};
     $ldel =~ s/"//g and $qdel .= q{"};
     $ldel =~ s/`//g and $qdel .= q{`};
     $ldel =~ s/q//g and $quotelike = 1;
     $ldel =~ tr/[](){}<>\0-\377/[[(({{<</ds;
     my $rdel = $ldel;
-    unless ($rdel =~ tr/[({</])}>/)
+    return @{ $eb_delim_cache{$ldel_orig} = [] } unless $rdel =~ tr/[({</])}>/;
+    my $posbug = pos;
+    $ldel = join('|', map { quotemeta $_ } split('', $ldel));
+    $rdel = join('|', map { quotemeta $_ } split('', $rdel));
+    pos = $posbug;
+    @{ $eb_delim_cache{$ldel_orig} = [
+        qr/\G($ldel)/, $qdel && qr/\G([$qdel])/, $quotelike, qr/\G($rdel)/
+    ] };
+}
+sub extract_bracketed (;$$$)
+{
+    my $textref = defined $_[0] ? \$_[0] : \$_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
+    my $ldel = defined $_[1] ? $_[1] : '{([<';
+    my $pre  = defined $_[2] ? qr/\G$_[2]/ : qr/\G\s*/;
+    my $wantarray = wantarray;
+    my @ret = _eb_delims($ldel);
+    unless (@ret)
     {
         return _fail $wantarray, $textref,
                      "Did not find a suitable bracket in delimiter: \"$_[1]\"",
                      0;
     }
-    my $posbug = pos;
-    $ldel = join('|', map { quotemeta $_ } split('', $ldel));
-    $rdel = join('|', map { quotemeta $_ } split('', $rdel));
-    pos = $posbug;
 
     my $startpos = pos $$textref || 0;
-    my @match = _match_bracketed($textref,$pre, $ldel, $qdel, $quotelike, $rdel);
+    my @match = _match_bracketed($textref, $pre, @ret);
 
     return _fail ($wantarray, $textref) unless @match;
 
@@ -186,11 +209,11 @@ sub extract_bracketed (;$$$)
                     );
 }
 
-sub _match_bracketed($$$$$$)    # $textref, $pre, $ldel, $qdel, $quotelike, $rdel
+sub _match_bracketed    # $textref, $pre, $ldel, $qdel, $quotelike, $rdel
 {
     my ($textref, $pre, $ldel, $qdel, $quotelike, $rdel) = @_;
     my ($startpos, $ldelpos, $endpos) = (pos $$textref = pos $$textref||0);
-    unless ($$textref =~ m/\G$pre/gc)
+    unless ($$textref =~ m/$pre/gc)
     {
         _failmsg "Did not find prefix: /$pre/", $startpos;
         return;
@@ -198,7 +221,7 @@ sub _match_bracketed($$$$$$)    # $textr
 
     $ldelpos = pos $$textref;
 
-    unless ($$textref =~ m/\G($ldel)/gc)
+    unless ($$textref =~ m/$ldel/gc)
     {
         _failmsg "Did not find opening bracket after prefix: \"$pre\"",
                  pos $$textref;
@@ -212,11 +235,11 @@ sub _match_bracketed($$$$$$)    # $textr
     {
         next if $$textref =~ m/\G\\./gcs;
 
-        if ($$textref =~ m/\G($ldel)/gc)
+        if ($$textref =~ m/$ldel/gc)
         {
             push @nesting, $1;
         }
-        elsif ($$textref =~ m/\G($rdel)/gc)
+        elsif ($$textref =~ m/$rdel/gc)
         {
             my ($found, $brackettype) = ($1, $1);
             if ($#nesting < 0)
@@ -237,7 +260,7 @@ sub _match_bracketed($$$$$$)    # $textr
             }
             last if $#nesting < 0;
         }
-        elsif ($qdel && $$textref =~ m/\G([$qdel])/gc)
+        elsif ($qdel && $$textref =~ m/$qdel/gc)
         {
             $$textref =~ m/\G[^\\$1]*(?:\\.[^\\$1]*)*(\Q$1\E)/gsc and next;
             _failmsg "Unmatched embedded quote ($1)",
@@ -245,8 +268,9 @@ sub _match_bracketed($$$$$$)    # $textr
             pos $$textref = $startpos;
             return;
         }
-        elsif ($quotelike && _match_quotelike($textref,"",1,0))
+        elsif ($quotelike && _match_quotelike($textref,qr/\G()/,$ref2slashvalid{$textref},$ref2qmarkvalid{$textref}))
         {
+            $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1; # back-compat
             next;
         }
 
@@ -281,12 +305,14 @@ sub _revbracket($)
 
 my $XMLNAME = q{[a-zA-Z_:][a-zA-Z0-9_:.-]*};
 
+my $et_default_ldel = '<\w+(?:' . gen_delimited_pat(q{'"}) . '|[^>])*>';
 sub extract_tagged (;$$$$$) # ($text, $opentag, $closetag, $pre, \%options)
 {
     my $textref = defined $_[0] ? \$_[0] : \$_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
     my $ldel    = $_[1];
     my $rdel    = $_[2];
-    my $pre     = defined $_[3] ? $_[3] : '\s*';
+    my $pre     = defined $_[3] ? qr/\G$_[3]/ : qr/\G\s*/;
     my %options = defined $_[4] ? %{$_[4]} : ();
     my $omode   = defined $options{fail} ? $options{fail} : '';
     my $bad     = ref($options{reject}) eq 'ARRAY' ? join('|', @{$options{reject}})
@@ -298,7 +324,7 @@ sub extract_tagged (;$$$$$) # ($text, $o
                 :                                    ''
                 ;
 
-    if (!defined $ldel) { $ldel = '<\w+(?:' . gen_delimited_pat(q{'"}) . '|[^>])*>'; }
+    $ldel = $et_default_ldel if !defined $ldel;
     $@ = undef;
 
     my @match = _match_tagged($textref, $pre, $ldel, $rdel, $omode, $bad, $ignore);
@@ -316,7 +342,7 @@ sub _match_tagged       # ($$$$$$$)
 
     my ($startpos, $opentagpos, $textpos, $parapos, $closetagpos, $endpos) = ( pos($$textref) = pos($$textref)||0 );
 
-    unless ($$textref =~ m/\G($pre)/gc)
+    unless ($$textref =~ m/$pre/gc)
     {
         _failmsg "Did not find prefix: /$pre/", pos $$textref;
         goto failed;
@@ -433,7 +459,8 @@ sub extract_variable (;$$)
 {
     my $textref = defined $_[0] ? \$_[0] : \$_;
     return ("","","") unless defined $$textref;
-    my $pre  = defined $_[1] ? $_[1] : '\s*';
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
+    my $pre  = defined $_[1] ? qr/\G$_[1]/ : qr/\G\s*/;
 
     my @match = _match_variable($textref,$pre);
 
@@ -443,14 +470,14 @@ sub extract_variable (;$$)
                     @match[2..3,4..5,0..1];        # MATCH, REMAINDER, PREFIX
 }
 
-sub _match_variable($$)
+sub _match_variable
 {
 #  $#
 #  $^
 #  $$
     my ($textref, $pre) = @_;
     my $startpos = pos($$textref) = pos($$textref)||0;
-    unless ($$textref =~ m/\G($pre)/gc)
+    unless ($$textref =~ m/$pre/gc)
     {
         _failmsg "Did not find prefix: /$pre/", pos $$textref;
         return;
@@ -467,8 +494,9 @@ sub _match_variable($$)
         my $deref = $1;
 
         unless ($$textref =~ m/\G\s*(?:::|')?(?:[_a-z]\w*(?:::|'))*[_a-z]\w*/gci
-            or _match_codeblock($textref, "", '\{', '\}', '\{', '\}', 0)
-            or $deref eq '$#' or $deref eq '$$' )
+            or _match_codeblock($textref, qr/\G()/, '\{', qr/\G\s*(\})/, '\{', '\}', 0, 1)
+            or $deref eq '$#' or $deref eq '$$'
+            or pos($$textref) == length $$textref )
         {
             _failmsg "Bad identifier after dereferencer", pos $$textref;
             pos $$textref = $startpos;
@@ -480,16 +508,17 @@ sub _match_variable($$)
     {
         next if $$textref =~ m/\G\s*(?:->)?\s*[{]\w+[}]/gc;
         next if _match_codeblock($textref,
-                                 qr/\s*->\s*(?:[_a-zA-Z]\w+\s*)?/,
-                                 qr/[({[]/, qr/[)}\]]/,
-                                 qr/[({[]/, qr/[)}\]]/, 0);
+                                 qr/\G\s*->\s*(?:[_a-zA-Z]\w+\s*)?/,
+                                 qr/[({[]/, qr/\G\s*([)}\]])/,
+                                 qr/[({[]/, qr/[)}\]]/, 0, 1);
         next if _match_codeblock($textref,
-                                 qr/\s*/, qr/[{[]/, qr/[}\]]/,
-                                 qr/[{[]/, qr/[}\]]/, 0);
-        next if _match_variable($textref,'\s*->\s*');
+                                 qr/\G\s*/, qr/[{[]/, qr/\G\s*([}\]])/,
+                                 qr/[{[]/, qr/[}\]]/, 0, 1);
+        next if _match_variable($textref,qr/\G\s*->\s*/);
         next if $$textref =~ m/\G\s*->\s*\w+(?![{([])/gc;
         last;
     }
+    $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
 
     my $endpos = pos($$textref);
     return ($startpos, $varpos-$startpos,
@@ -498,14 +527,11 @@ sub _match_variable($$)
     );
 }
 
-sub extract_codeblock (;$$$$$)
-{
-    my $textref = defined $_[0] ? \$_[0] : \$_;
-    my $wantarray = wantarray;
-    my $ldel_inner = defined $_[1] ? $_[1] : '{';
-    my $pre        = defined $_[2] ? $_[2] : '\s*';
-    my $ldel_outer = defined $_[3] ? $_[3] : $ldel_inner;
-    my $rd         = $_[4];
+my %ec_delim_cache;
+sub _ec_delims {
+    my ($ldel_inner, $ldel_outer) = @_;
+    return @{ $ec_delim_cache{$ldel_outer}{$ldel_inner} }
+        if $ec_delim_cache{$ldel_outer}{$ldel_inner};
     my $rdel_inner = $ldel_inner;
     my $rdel_outer = $ldel_outer;
     my $posbug = pos;
@@ -516,23 +542,34 @@ sub extract_codeblock (;$$$$$)
         $_ = '('.join('|',map { quotemeta $_ } split('',$_)).')'
     }
     pos = $posbug;
+    @{ $ec_delim_cache{$ldel_outer}{$ldel_inner} = [
+        $ldel_outer, qr/\G\s*($rdel_outer)/, $ldel_inner, $rdel_inner
+    ] };
+}
+sub extract_codeblock (;$$$$$)
+{
+    my $textref = defined $_[0] ? \$_[0] : \$_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
+    my $wantarray = wantarray;
+    my $ldel_inner = defined $_[1] ? $_[1] : '{';
+    my $pre = !defined $_[2] ? qr/\G\s*/ : qr/\G$_[2]/;
+    my $ldel_outer = defined $_[3] ? $_[3] : $ldel_inner;
+    my $rd         = $_[4];
+    my @delims = _ec_delims($ldel_inner, $ldel_outer);
 
-    my @match = _match_codeblock($textref, $pre,
-                                 $ldel_outer, $rdel_outer,
-                                 $ldel_inner, $rdel_inner,
-                                 $rd);
+    my @match = _match_codeblock($textref, $pre, @delims, $rd, 1);
     return _fail($wantarray, $textref) unless @match;
     return _succeed($wantarray, $textref,
                     @match[2..3,4..5,0..1]    # MATCH, REMAINDER, PREFIX
     );
-
 }
 
-sub _match_codeblock($$$$$$$)
+sub _match_codeblock
 {
-    my ($textref, $pre, $ldel_outer, $rdel_outer, $ldel_inner, $rdel_inner, $rd) = @_;
+    my ($textref, $pre, $ldel_outer, $rdel_outer, $ldel_inner, $rdel_inner, $rd, $no_backcompat) = @_;
+    $rdel_outer = qr/\G\s*($rdel_outer)/ if !$no_backcompat; # Switch calls this func directly
     my $startpos = pos($$textref) = pos($$textref) || 0;
-    unless ($$textref =~ m/\G($pre)/gc)
+    unless ($$textref =~ m/$pre/gc)
     {
         _failmsg qq{Did not match prefix /$pre/ at"} .
                      substr($$textref,pos($$textref),20) .
@@ -553,13 +590,13 @@ sub _match_codeblock($$$$$$$)
     my $closing = $1;
        $closing =~ tr/([<{/)]>}/;
     my $matched;
-    my $patvalid = 1;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0
+      if !pos($$textref) or !defined $ref2slashvalid{$textref}; # default, or reset
     while (pos($$textref) < length($$textref))
     {
-        $matched = '';
         if ($rd && $$textref =~ m#\G(\Q(?)\E|\Q(s?)\E|\Q(s)\E)#gc)
         {
-            $patvalid = 0;
+            $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
             next;
         }
 
@@ -568,7 +605,7 @@ sub _match_codeblock($$$$$$$)
             next;
         }
 
-        if ($$textref =~ m/\G\s*($rdel_outer)/gc)
+        if ($$textref =~ m/$rdel_outer/gc)
         {
             unless ($matched = ($closing && $1 eq $closing) )
             {
@@ -581,31 +618,22 @@ sub _match_codeblock($$$$$$$)
             last;
         }
 
-        if (_match_variable($textref,'\s*') ||
-            _match_quotelike($textref,'\s*',$patvalid,$patvalid) )
+        if (_match_variable($textref,qr/\G\s*/) ||
+            _match_quotelike($textref,qr/\G\s*/,$ref2slashvalid{$textref},$ref2qmarkvalid{$textref}) )
         {
-            $patvalid = 0;
+            $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
             next;
         }
 
-
-        # NEED TO COVER MANY MORE CASES HERE!!!
-        if ($$textref =~ m#\G\s*(?!$ldel_inner)
-                                ( [-+*x/%^&|.]=?
-                                | [!=]~
-                                | =(?!>)
-                                | (\*\*|&&|\|\||<<|>>)=?
-                                | split|grep|map|return
-                                | [([]
-                                )#gcx)
+        if ($$textref =~ m#\G\s*(?!$ldel_inner)(?:$RE_PREREGEX_PAT|$RE_EXPR_PAT)#gc)
         {
-            $patvalid = 1;
+            $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1;
             next;
         }
 
-        if ( _match_codeblock($textref, '\s*', $ldel_inner, $rdel_inner, $ldel_inner, $rdel_inner, $rd) )
+        if ( _match_codeblock($textref, qr/\G\s*/, $ldel_inner, qr/\G\s*($rdel_inner)/, $ldel_inner, $rdel_inner, $rd, 1) )
         {
-            $patvalid = 1;
+            $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1;
             next;
         }
 
@@ -618,7 +646,7 @@ sub _match_codeblock($$$$$$$)
             last;
         }
 
-        $patvalid = 0;
+        $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
         $$textref =~ m/\G\s*(\w+|[-=>]>|.|\Z)/gc;
     }
     continue { $@ = undef }
@@ -630,6 +658,7 @@ sub _match_codeblock($$$$$$$)
         return;
     }
 
+    $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = undef;
     my $endpos = pos($$textref);
     return ( $startpos, $codepos-$startpos,
              $codepos, $endpos-$codepos,
@@ -654,10 +683,11 @@ my %mods   = (
 sub extract_quotelike (;$$)
 {
     my $textref = $_[0] ? \$_[0] : \$_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
     my $wantarray = wantarray;
-    my $pre  = defined $_[1] ? $_[1] : '\s*';
+    my $pre  = defined $_[1] ? qr/\G$_[1]/ : qr/\G\s*/;
 
-    my @match = _match_quotelike($textref,$pre,1,0);
+    my @match = _match_quotelike($textref,$pre,$ref2slashvalid{$textref},$ref2qmarkvalid{$textref});
     return _fail($wantarray, $textref) unless @match;
     return _succeed($wantarray, $textref,
                     $match[2], $match[18]-$match[2],    # MATCH
@@ -668,17 +698,19 @@ sub extract_quotelike (;$$)
     );
 };
 
-sub _match_quotelike($$$$)      # ($textref, $prepat, $allow_raw_match)
+my %maybe_quote = map +($_=>1), qw(" ' `);
+sub _match_quotelike
 {
-    my ($textref, $pre, $rawmatch, $qmark) = @_;
+    my ($textref, $pre, $allow_slash_match, $allow_qmark_match) = @_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0
+      if !pos($$textref) or !defined $ref2slashvalid{$textref}; # default, or reset
 
     my ($textlen,$startpos,
-        $oppos,
         $preld1pos,$ld1pos,$str1pos,$rd1pos,
         $preld2pos,$ld2pos,$str2pos,$rd2pos,
         $modpos) = ( length($$textref), pos($$textref) = pos($$textref) || 0 );
 
-    unless ($$textref =~ m/\G($pre)/gc)
+    unless ($$textref =~ m/$pre/gc)
     {
         _failmsg qq{Did not find prefix /$pre/ at "} .
                      substr($$textref, pos($$textref), 20) .
@@ -686,15 +718,13 @@ sub _match_quotelike($$$$)      # ($text
                  pos $$textref;
         return;
     }
-    $oppos = pos($$textref);
-
+    my $oppos = pos($$textref);
     my $initial = substr($$textref,$oppos,1);
-
-    if ($initial && $initial =~ m|^[\"\'\`]|
-                 || $rawmatch && $initial =~ m|^/|
-                 || $qmark && $initial =~ m|^\?|)
+    if ($initial && $maybe_quote{$initial}
+                 || $allow_slash_match && $initial eq '/'
+                 || $allow_qmark_match && $initial eq '?')
     {
-        unless ($$textref =~ m/ \Q$initial\E [^\\$initial]* (\\.[^\\$initial]*)* \Q$initial\E /gcsx)
+        unless ($$textref =~ m/\G \Q$initial\E [^\\$initial]* (\\.[^\\$initial]*)* \Q$initial\E /gcsx)
         {
             _failmsg qq{Did not find closing delimiter to match '$initial' at "} .
                          substr($$textref, $oppos, 20) .
@@ -712,6 +742,7 @@ sub _match_quotelike($$$$)      # ($text
         }
 
         my $endpos = pos($$textref);
+        $ref2qmarkvalid{$textref} = $ref2slashvalid{$textref} = 0;
         return (
             $startpos,  $oppos-$startpos,       # PREFIX
             $oppos,     0,                      # NO OPERATOR
@@ -726,7 +757,7 @@ sub _match_quotelike($$$$)      # ($text
         );
     }
 
-    unless ($$textref =~ m{\G(\b(?:m|s|qq|qx|qw|q|qr|tr|y)\b(?=\s*\S)|<<)}gc)
+    unless ($$textref =~ m{\G(\b(?:m|s|qq|qx|qw|q|qr|tr|y)\b(?=\s*\S)|<<(?=[a-zA-Z]|\s*['"`;,]))}gc)
     {
         _failmsg q{No quotelike operator found after prefix at "} .
                      substr($$textref, pos($$textref), 20) .
@@ -767,6 +798,7 @@ sub _match_quotelike($$$$)      # ($text
         $rd1pos = pos($$textref);
         $$textref =~ m{\Q$label\E\n}gc;
         $ld2pos = pos($$textref);
+        $ref2qmarkvalid{$textref} = $ref2slashvalid{$textref} = 0;
         return (
             $startpos,  $oppos-$startpos,       # PREFIX
             $oppos,     length($op),            # OPERATOR
@@ -786,19 +818,26 @@ sub _match_quotelike($$$$)      # ($text
     $ld1pos = pos($$textref);
     $str1pos = $ld1pos+1;
 
-    unless ($$textref =~ m/\G(\S)/gc)   # SHOULD USE LOOKAHEAD
+    if ($$textref !~ m/\G(\S)/gc)   # SHOULD USE LOOKAHEAD
     {
         _failmsg "No block delimiter found after quotelike $op",
                  pos $$textref;
         pos $$textref = $startpos;
         return;
     }
+    elsif (substr($$textref, $ld1pos, 2) eq '=>')
+    {
+        _failmsg "quotelike $op was actually quoted by '=>'",
+                 pos $$textref;
+        pos $$textref = $startpos;
+        return;
+    }
     pos($$textref) = $ld1pos;   # HAVE TO DO THIS BECAUSE LOOKAHEAD BROKEN
     my ($ldel1, $rdel1) = ("\Q$1","\Q$1");
     if ($ldel1 =~ /[[(<{]/)
     {
         $rdel1 =~ tr/[({</])}>/;
-        defined(_match_bracketed($textref,"",$ldel1,"","",$rdel1))
+        defined(_match_bracketed($textref,qr/\G/,qr/\G($ldel1)/,"","",qr/\G($rdel1)/))
             || do { pos $$textref = $startpos; return };
         $ld2pos = pos($$textref);
         $rd1pos = $ld2pos-1;
@@ -835,7 +874,7 @@ sub _match_quotelike($$$$)      # ($text
         if ($ldel2 =~ /[[(<{]/)
         {
             pos($$textref)--;   # OVERCOME BROKEN LOOKAHEAD
-            defined(_match_bracketed($textref,"",$ldel2,"","",$rdel2))
+            defined(_match_bracketed($textref,qr/\G/,qr/\G($ldel2)/,"","",qr/\G($rdel2)/))
                 || do { pos $$textref = $startpos; return };
         }
         else
@@ -854,6 +893,7 @@ sub _match_quotelike($$$$)      # ($text
 
     $$textref =~ m/\G($mods{$op})/gc;
     my $endpos = pos $$textref;
+    $ref2qmarkvalid{$textref} = $ref2slashvalid{$textref} = undef;
 
     return (
         $startpos,      $oppos-$startpos,       # PREFIX
@@ -874,10 +914,26 @@ my $def_func = [
     sub { extract_quotelike($_[0],'') },
     sub { extract_codeblock($_[0],'{}','') },
 ];
+my %ref_not_regex = map +($_=>1), qw(CODE Text::Balanced::Extractor);
 
+sub _update_patvalid {
+    my ($textref, $text) = @_;
+    if ($ref2slashvalid{$textref} && $text =~ m/(?:$RE_NUM|[\)\]])\s*$/)
+    {
+        $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 0;
+    } elsif (!$ref2slashvalid{$textref} && $text =~ m/$RE_PREREGEX_PAT\s*$/)
+    {
+        $ref2slashvalid{$textref} = $ref2qmarkvalid{$textref} = 1;
+    } elsif (!$ref2slashvalid{$textref} && $text =~ m/$RE_EXPR_PAT\s*$/)
+    {
+        $ref2slashvalid{$textref} = 1;
+        $ref2qmarkvalid{$textref} = 0;
+    }
+}
 sub extract_multiple (;$$$$)    # ($text, $functions_ref, $max_fields, $ignoreunknown)
 {
     my $textref = defined($_[0]) ? \$_[0] : \$_;
+    $ref2slashvalid{$textref} = 1, $ref2qmarkvalid{$textref} = 0 if !pos($$textref); # reset
     my $posbug = pos;
     my ($lastpos, $firstpos);
     my @fields = ();
@@ -898,39 +954,28 @@ sub extract_multiple (;$$$$)    # ($text
             $max = 1
         }
 
-        my $unkpos;
-        my $class;
-
         my @class;
         foreach my $func ( @func )
         {
-            if (ref($func) eq 'HASH')
-            {
-                push @class, (keys %$func)[0];
-                $func = (values %$func)[0];
-            }
-            else
-            {
-                push @class, undef;
-            }
+            push @class, undef;
+            ($class[-1], $func) = %$func if ref($func) eq 'HASH';
+            $func = qr/\G$func/ if !$ref_not_regex{ref $func};
         }
 
+        my $unkpos;
         FIELD: while (pos($$textref) < length($$textref))
         {
-            my ($field, $rem);
-            my @bits;
             foreach my $i ( 0..$#func )
             {
-                my $pref;
-                my $func = $func[$i];
-                $class = $class[$i];
+                my ($field, $pref);
+                my ($class, $func) = ($class[$i], $func[$i]);
                 $lastpos = pos $$textref;
                 if (ref($func) eq 'CODE')
-                    { ($field,$rem,$pref) = @bits = $func->($$textref) }
+                    { ($field,undef,$pref) = $func->($$textref) }
                 elsif (ref($func) eq 'Text::Balanced::Extractor')
-                    { @bits = $field = $func->extract($$textref) }
-                elsif( $$textref =~ m/\G$func/gc )
-                    { @bits = $field = defined($1)
+                    { $field = $func->extract($$textref) }
+                elsif( $$textref =~ m/$func[$i]/gc )
+                    { $field = defined($1)
                         ? $1
                         : substr($$textref, $-[0], $+[0] - $-[0])
                     }
@@ -948,9 +993,8 @@ sub extract_multiple (;$$$$)    # ($text
                             last FIELD if @fields == $max;
                         }
                     }
-                    push @fields, $class
-                            ? bless (\$field, $class)
-                            : $field;
+                    push @fields, $class ? bless(\$field, $class) : $field;
+                    _update_patvalid($textref, $fields[-1]);
                     $firstpos = $lastpos unless defined $firstpos;
                     $lastpos = pos $$textref;
                     last FIELD if @fields == $max;
@@ -961,6 +1005,7 @@ sub extract_multiple (;$$$$)    # ($text
             {
                 $unkpos = pos($$textref)-1
                     unless $igunk || defined $unkpos;
+                _update_patvalid($textref, substr $$textref, $unkpos, pos($$textref)-$unkpos);
             }
         }
 
@@ -986,7 +1031,7 @@ sub gen_extract_tagged # ($opentag, $clo
 {
     my $ldel    = $_[0];
     my $rdel    = $_[1];
-    my $pre     = defined $_[2] ? $_[2] : '\s*';
+    my $pre     = defined $_[2] ? qr/\G$_[2]/ : qr/\G\s*/;
     my %options = defined $_[3] ? %{$_[3]} : ();
     my $omode   = defined $options{fail} ? $options{fail} : '';
     my $bad     = ref($options{reject}) eq 'ARRAY' ? join('|', @{$options{reject}})
@@ -998,16 +1043,16 @@ sub gen_extract_tagged # ($opentag, $clo
                 :                                    ''
                 ;
 
-    if (!defined $ldel) { $ldel = '<\w+(?:' . gen_delimited_pat(q{'"}) . '|[^>])*>'; }
+    $ldel = $et_default_ldel if !defined $ldel;
 
     my $posbug = pos;
-    for ($ldel, $pre, $bad, $ignore) { $_ = qr/$_/ if $_ }
+    for ($ldel, $bad, $ignore) { $_ = qr/$_/ if $_ }
     pos = $posbug;
 
     my $closure = sub
     {
         my $textref = defined $_[0] ? \$_[0] : \$_;
-        my @match = Text::Balanced::_match_tagged($textref, $pre, $ldel, $rdel, $omode, $bad, $ignore);
+        my @match = _match_tagged($textref, $pre, $ldel, $rdel, $omode, $bad, $ignore);
 
         return _fail(wantarray, $textref) unless @match;
         return _succeed wantarray, $textref,
@@ -1027,7 +1072,9 @@ sub extract($$) # ($self, $text)
 
 package Text::Balanced::ErrorMsg;
 
-use overload '""' => sub { "$_[0]->{error}, detected at offset $_[0]->{pos}" };
+use overload
+    '""' => sub { "$_[0]->{error}, detected at offset $_[0]->{pos}" },
+    fallback => 1;
 
 1;
 
@@ -1450,7 +1497,7 @@ A string to be processed (C<$_> if the s
 
 =item 2.
 
-A string specifying a pattern to be matched as the opening tag.
+A string specifying a pattern (i.e. regex) to be matched as the opening tag.
 If the pattern string is omitted (or C<undef>) then a pattern
 that matches any standard XML tag is used.
 
@@ -1854,7 +1901,8 @@ C<"extract_quotelike">.
 C<extract_codeblock> takes the same initial three parameters as C<extract_bracketed>:
 a text to process, a set of delimiter brackets to look for, and a prefix to
 match first. It also takes an optional fourth parameter, which allows the
-outermost delimiter brackets to be specified separately (see below).
+outermost delimiter brackets to be specified separately (see below),
+and a fifth parameter used only by L<Parse::RecDescent>.
 
 Omitting the first argument (input text) means process C<$_> instead.
 Omitting the second argument (delimiter brackets) indicates that only C<'{'> is to be used.
@@ -2063,12 +2111,14 @@ operator (and removes it from $text):
 
 Finally, here is yet another way to do comma-separated value parsing:
 
+        $csv_text = "a,'x b',c";
         @fields = extract_multiple($csv_text,
                                   [
                                         sub { extract_delimited($_[0],q{'"}) },
-                                        qr/([^,]+)(.*)/,
+                                        qr/([^,]+)/,
                                   ],
                                   undef,1);
+        # @fields is now ('a', "'x b'", 'c')
 
 The list in the second argument means:
 I<"Try and extract a ' or " delimited string, otherwise extract anything up to a comma...">.
@@ -2084,7 +2134,7 @@ just make the last parameter undefined (
 =item C<gen_delimited_pat>
 
 The C<gen_delimited_pat> subroutine takes a single (string) argument and
-   > builds a Friedl-style optimized regex that matches a string delimited
+builds a Friedl-style optimized regex that matches a string delimited
 by any one of the characters in the single argument. For example:
 
         gen_delimited_pat(q{'"})
@@ -2360,7 +2410,8 @@ Copyright (C) 1997-2001 Damian Conway.  
 
 Copyright (C) 2009 Adam Kennedy.
 
-Copyright (C) 2015, 2020 Steve Hay.  All rights reserved.
+Copyright (C) 2015, 2020, 2022 Steve Hay and other contributors.  All rights
+reserved.
 
 =head1 LICENCE
 
@@ -2370,11 +2421,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 2.04
+Version 2.06
 
 =head1 DATE
 
-11 Dec 2020
+05 Jun 2022
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/01_compile.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/01_compile.t,v
diff -u -p -a -u -p -r1.1.1.2 01_compile.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/01_compile.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/01_compile.t	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,3 @@
-#!/usr/bin/perl
-
 use 5.008001;
 
 use strict;
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/02_extbrk.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/02_extbrk.t,v
diff -u -p -a -u -p -r1.1.1.2 02_extbrk.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/02_extbrk.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/02_extbrk.t	21 Feb 2024 15:47:01 -0000
@@ -1,27 +1,12 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..19\n"; }
-END {print "not ok 1\n" unless $loaded;}
+use Test::More;
 use Text::Balanced qw ( extract_bracketed );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-sub debug { print "\t>>>",@_ if $DEBUG }
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
 
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
@@ -34,6 +19,7 @@ while (defined($str = <DATA>))
     if ($str =~ s/\A# USING://) { $neg = 0; $cmd = $str; next; }
     elsif ($str =~ /\A# TH[EI]SE? SHOULD FAIL/) { $neg = 1; next; }
     elsif (!$str || $str =~ /\A#/) { $neg = 0; next }
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     debug "\tUsing: $cmd\n";
     debug "\t   on: [$str]\n";
@@ -41,21 +27,19 @@ while (defined($str = <DATA>))
     my $var = eval "() = $cmd";
     debug "\t list got: [$var]\n";
     debug "\t list left: [$str]\n";
-    print "not " if (substr($str,pos($str),1) eq ';')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
+    diag $@ if $@ && $DEBUG;
 
     pos $str = 0;
     $var = eval $cmd;
     $var = "<undef>" unless defined $var;
     debug "\t scalar got: [$var]\n";
     debug "\t scalar left: [$str]\n";
-    print "not " if ($str =~ '\A;')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
+    diag $@ if $@ && $DEBUG;
 }
+
+done_testing;
 
 __DATA__
 
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/03_extcbk.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/03_extcbk.t,v
diff -u -p -a -u -p -r1.1.1.2 03_extcbk.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/03_extcbk.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/03_extcbk.t	21 Feb 2024 15:47:01 -0000
@@ -1,27 +1,12 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..41\n"; }
-END {print "not ok 1\n" unless $loaded;}
+use Test::More;
 use Text::Balanced qw ( extract_codeblock );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-sub debug { print "\t>>>",@_ if $DEBUG }
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
 
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
@@ -34,30 +19,47 @@ while (defined($str = <DATA>))
     if ($str =~ s/\A# USING://) { $neg = 0; $cmd = $str; next; }
     elsif ($str =~ /\A# TH[EI]SE? SHOULD FAIL/) { $neg = 1; next; }
     elsif (!$str || $str =~ /\A#/) { $neg = 0; next }
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     debug "\tUsing: $cmd\n";
     debug "\t   on: [$str]\n";
 
     my @res;
     my $var = eval "\@res = $cmd";
-    debug "\t   Failed: $@ at " . $@+0 .")" if $@;
+    is $@, '', 'no error';
     debug "\t list got: [" . join("|", map {defined $_ ? $_ : '<undef>'} @res) . "]\n";
     debug "\t list left: [$str]\n";
-    print "not " if (substr($str,pos($str)||0,1) eq ';')==$neg;
-    print "ok ", $count++;
-    print "\n";
+    ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
 
     pos $str = 0;
     $var = eval $cmd;
+    is $@, '', 'no error';
     $var = "<undef>" unless defined $var;
     debug "\t scalar got: [$var]\n";
     debug "\t scalar left: [$str]\n";
-    print "not " if ($str =~ '\A;')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
 }
 
+my $grammar = <<'EOF';
+given 2 { when __ < 1 { ok(0) } else { ok(1) } }
+EOF
+pos $grammar = 8;
+my ($out) = Text::Balanced::_match_codeblock(\$grammar,qr/\s*/,qr/\{/,qr/\}/,qr/\{/,qr/\}/,undef);
+ok $out, 'Switch error from calling _match_codeblock';
+
+$grammar = <<'EOF';
+comment:  m/a/
+enum_list: (/b/)
+EOF
+pos $grammar = 10;
+($out) = Text::Balanced::extract_quotelike($grammar);
+is $out, 'm/a/', 'PRD error (setup for real error)';
+pos $grammar = 26;
+($out) = extract_codeblock($grammar,'{([',undef,'(',1);
+is $out, '(/b/)', 'PRD error';
+
+done_testing;
+
 __DATA__
 
 # USING: extract_codeblock($str,'(){}',undef,'()');
@@ -65,6 +67,13 @@ __DATA__
 
 # USING: extract_codeblock($str);
 { $data[4] =~ /['"]/; };
+{1<<2};
+{1<<2};\n
+{1<<2};\n\n
+{ $a = /\}/; };
+{ sub { $_[0] /= $_[1] } };  # / here
+{ 1; };
+{ $a = 1; };
 
 # USING: extract_codeblock($str,'<>');
 < %x = ( try => "this") >;
@@ -77,13 +86,9 @@ __DATA__
 # THIS SHOULD FAIL
 < %x = do { $try > 10 } >;
 
-# USING: extract_codeblock($str);
-
-{ $a = /\}/; };
-{ sub { $_[0] /= $_[1] } };  # / here
-{ 1; };
-{ $a = 1; };
-
+# USING: extract_codeblock($str, '()');
+(($x || 2)); split /z/, $y
+(($x // 2)); split /z/, $y
 
 # USING: extract_codeblock($str,undef,'=*');
 ========{$a=1};
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/04_extdel.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/04_extdel.t,v
diff -u -p -a -u -p -r1.1.1.2 04_extdel.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/04_extdel.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/04_extdel.t	21 Feb 2024 15:47:01 -0000
@@ -1,28 +1,13 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
+use Test::More;
+use Text::Balanced qw ( extract_delimited extract_multiple );
 
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..45\n"; }
-END {print "not ok 1\n" unless $loaded;}
-use Text::Balanced qw ( extract_delimited );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
+our $DEBUG;
 sub debug { print "\t>>>",@_ if $DEBUG }
 
-######################### End of black magic.
-
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
 my $cmd = "print";
@@ -34,28 +19,40 @@ while (defined($str = <DATA>))
     if ($str =~ s/\A# USING://) { $neg = 0; $cmd = $str; next; }
     elsif ($str =~ /\A# TH[EI]SE? SHOULD FAIL/) { $neg = 1; next; }
     elsif (!$str || $str =~ /\A#/) { $neg = 0; next }
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     debug "\tUsing: $cmd\n";
     debug "\t   on: [$str]\n";
 
     my $var = eval "() = $cmd";
+    is $@, '', 'no error';
     debug "\t list got: [$var]\n";
     debug "\t list left: [$str]\n";
-    print "not " if (substr($str,pos($str)||0,1) eq ';')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
 
     pos $str = 0;
     $var = eval $cmd;
+    is $@, '', 'no error';
     $var = "<undef>" unless defined $var;
     debug "\t scalar got: [$var]\n";
     debug "\t scalar left: [$str]\n";
-    print "not " if ($str =~ '\A;')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
 }
+
+my $text = 'while($a == "test"){ print "true";}';
+my ($extracted, $remainder) = extract_delimited($text, '#');
+ok '' ne $@, 'string overload should not crash';
+
+$text = "a,'x b',c";
+my @fields = extract_multiple($text,
+ [
+   sub { extract_delimited($_[0],q{'"}) },
+   qr/([^,]+)/,
+ ],
+ undef,1);
+is_deeply \@fields, ['a', "'x b'", 'c'] or diag 'got: ', explain \@fields;
+
+done_testing;
 
 __DATA__
 # USING: extract_delimited($str,'/#$',undef,'/#$');
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/05_extmul.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/05_extmul.t,v
diff -u -p -a -u -p -r1.1.1.2 05_extmul.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/05_extmul.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/05_extmul.t	21 Feb 2024 15:47:01 -0000
@@ -1,54 +1,20 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..86\n"; }
-END {print "not ok 1\n" unless $loaded;}
+use Test::More;
 use Text::Balanced qw ( :ALL );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-sub debug { print "\t>>>",@_ if $DEBUG }
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
 
 sub expect
 {
-    local $^W;
     my ($l1, $l2) = @_;
-
-    if (@$l1 != @$l2)
-    {
-        print "\@l1: ", join(", ", @$l1), "\n";
-        print "\@l2: ", join(", ", @$l2), "\n";
-        print "not ";
-    }
-    else
-    {
-        for (my $i = 0; $i < @$l1; $i++)
-        {
-            if ($l1->[$i] ne $l2->[$i])
-            {
-                print "field $i: '$l1->[$i]' ne '$l2->[$i]'\n";
-                print "not ";
-                last;
-            }
-        }
-    }
-
-    print "ok $count\n";
-    $count++;
+    is_deeply $l1, $l2 or do {
+        diag 'got:', explain $l1;
+        diag 'expected:', explain $l2;
+    };
 }
 
 sub divide
@@ -66,10 +32,8 @@ sub divide
 
 }
 
-
 my $stdtext1 = q{$var = do {"val" && $val;};};
 
-# TESTS 2-4
 my $text = $stdtext1;
 expect [ extract_multiple($text,undef,1) ],
        [ divide $stdtext1 => 4 ];
@@ -77,7 +41,6 @@ expect [ extract_multiple($text,undef,1)
 expect [ pos $text], [ 4 ];
 expect [ $text ], [ $stdtext1 ];
 
-# TESTS 5-7
 $text = $stdtext1;
 expect [ scalar extract_multiple($text,undef,1) ],
        [ divide $stdtext1 => 4 ];
@@ -86,7 +49,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext1,4) ];
 
 
-# TESTS 8-10
 $text = $stdtext1;
 expect [ extract_multiple($text,undef,2) ],
        [ divide($stdtext1 => 4, 10) ];
@@ -94,7 +56,6 @@ expect [ extract_multiple($text,undef,2)
 expect [ pos $text], [ 10 ];
 expect [ $text ], [ $stdtext1 ];
 
-# TESTS 11-13
 $text = $stdtext1;
 expect [ eval{local$^W;scalar extract_multiple($text,undef,2)} ],
        [ substr($stdtext1,0,4) ];
@@ -103,7 +64,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext1,4) ];
 
 
-# TESTS 14-16
 $text = $stdtext1;
 expect [ extract_multiple($text,undef,3) ],
        [ divide($stdtext1 => 4, 10, 26) ];
@@ -111,7 +71,6 @@ expect [ extract_multiple($text,undef,3)
 expect [ pos $text], [ 26 ];
 expect [ $text ], [ $stdtext1 ];
 
-# TESTS 17-19
 $text = $stdtext1;
 expect [ eval{local$^W;scalar extract_multiple($text,undef,3)} ],
        [ substr($stdtext1,0,4) ];
@@ -120,7 +79,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext1,4) ];
 
 
-# TESTS 20-22
 $text = $stdtext1;
 expect [ extract_multiple($text,undef,4) ],
        [ divide($stdtext1 => 4, 10, 26, 27) ];
@@ -128,7 +86,6 @@ expect [ extract_multiple($text,undef,4)
 expect [ pos $text], [ 27 ];
 expect [ $text ], [ $stdtext1 ];
 
-# TESTS 23-25
 $text = $stdtext1;
 expect [ eval{local$^W;scalar extract_multiple($text,undef,4)} ],
        [ substr($stdtext1,0,4) ];
@@ -137,7 +94,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext1,4) ];
 
 
-# TESTS 26-28
 $text = $stdtext1;
 expect [ extract_multiple($text,undef,5) ],
        [ divide($stdtext1 => 4, 10, 26, 27) ];
@@ -146,7 +102,6 @@ expect [ pos $text], [ 27 ];
 expect [ $text ], [ $stdtext1 ];
 
 
-# TESTS 29-31
 $text = $stdtext1;
 expect [ eval{local$^W;scalar extract_multiple($text,undef,5)} ],
        [ substr($stdtext1,0,4) ];
@@ -156,7 +111,6 @@ expect [ $text ], [ substr($stdtext1,4) 
 
 
 
-# TESTS 32-34
 my $stdtext2 = q{$var = "val" && (1,2,3);};
 
 $text = $stdtext2;
@@ -166,7 +120,6 @@ expect [ extract_multiple($text) ],
 expect [ pos $text], [ 24 ];
 expect [ $text ], [ $stdtext2 ];
 
-# TESTS 35-37
 $text = $stdtext2;
 expect [ scalar extract_multiple($text) ],
        [ substr($stdtext2,0,4) ];
@@ -175,7 +128,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext2,4) ];
 
 
-# TESTS 38-40
 $text = $stdtext2;
 expect [ extract_multiple($text,[\&extract_bracketed]) ],
        [ substr($stdtext2,0,16), substr($stdtext2,16,7), substr($stdtext2,23) ];
@@ -183,7 +135,6 @@ expect [ extract_multiple($text,[\&extra
 expect [ pos $text], [ 24 ];
 expect [ $text ], [ $stdtext2 ];
 
-# TESTS 41-43
 $text = $stdtext2;
 expect [ scalar extract_multiple($text,[\&extract_bracketed]) ],
        [ substr($stdtext2,0,16) ];
@@ -192,7 +143,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext2,15) ];
 
 
-# TESTS 44-46
 $text = $stdtext2;
 expect [ extract_multiple($text,[\&extract_variable]) ],
        [ substr($stdtext2,0,4), substr($stdtext2,4) ];
@@ -200,7 +150,6 @@ expect [ extract_multiple($text,[\&extra
 expect [ pos $text], [ length($text) ];
 expect [ $text ], [ $stdtext2 ];
 
-# TESTS 47-49
 $text = $stdtext2;
 expect [ scalar extract_multiple($text,[\&extract_variable]) ],
        [ substr($stdtext2,0,4) ];
@@ -209,7 +158,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext2,4) ];
 
 
-# TESTS 50-52
 $text = $stdtext2;
 expect [ extract_multiple($text,[\&extract_quotelike]) ],
        [ substr($stdtext2,0,7), substr($stdtext2,7,5), substr($stdtext2,12) ];
@@ -217,7 +165,6 @@ expect [ extract_multiple($text,[\&extra
 expect [ pos $text], [ length($text) ];
 expect [ $text ], [ $stdtext2 ];
 
-# TESTS 53-55
 $text = $stdtext2;
 expect [ scalar extract_multiple($text,[\&extract_quotelike]) ],
        [ substr($stdtext2,0,7) ];
@@ -226,7 +173,6 @@ expect [ pos $text], [ 0 ];
 expect [ $text ], [ substr($stdtext2,6) ];
 
 
-# TESTS 56-58
 $text = $stdtext2;
 expect [ extract_multiple($text,[\&extract_quotelike],2,1) ],
        [ substr($stdtext2,7,5) ];
@@ -234,7 +180,6 @@ expect [ extract_multiple($text,[\&extra
 expect [ pos $text], [ 23 ];
 expect [ $text ], [ $stdtext2 ];
 
-# TESTS 59-61
 $text = $stdtext2;
 expect [ eval{local$^W;scalar extract_multiple($text,[\&extract_quotelike],2,1)} ],
        [ substr($stdtext2,7,5) ];
@@ -243,7 +188,6 @@ expect [ pos $text], [ 6 ];
 expect [ $text ], [ substr($stdtext2,0,6). substr($stdtext2,12) ];
 
 
-# TESTS 62-64
 $text = $stdtext2;
 expect [ extract_multiple($text,[\&extract_quotelike],1,1) ],
        [ substr($stdtext2,7,5) ];
@@ -251,7 +195,6 @@ expect [ extract_multiple($text,[\&extra
 expect [ pos $text], [ 12 ];
 expect [ $text ], [ $stdtext2 ];
 
-# TESTS 65-67
 $text = $stdtext2;
 expect [ scalar extract_multiple($text,[\&extract_quotelike],1,1) ],
        [ substr($stdtext2,7,5) ];
@@ -259,7 +202,6 @@ expect [ scalar extract_multiple($text,[
 expect [ pos $text], [ 6 ];
 expect [ $text ], [ substr($stdtext2,0,6). substr($stdtext2,12) ];
 
-# TESTS 68-70
 my $stdtext3 = "a,b,c";
 
 $_ = $stdtext3;
@@ -269,8 +211,6 @@ expect [ extract_multiple(undef, [ sub {
 expect [ pos ], [ 5 ];
 expect [ $_ ], [ $stdtext3 ];
 
-# TESTS 71-73
-
 $_ = $stdtext3;
 expect [ scalar extract_multiple(undef, [ sub { /\G[a-z]/gc && $& } ]) ],
        [ divide($stdtext3 => 1) ];
@@ -278,9 +218,6 @@ expect [ scalar extract_multiple(undef, 
 expect [ pos ], [ 0 ];
 expect [ $_ ], [ substr($stdtext3,1) ];
 
-
-# TESTS 74-76
-
 $_ = $stdtext3;
 expect [ extract_multiple(undef, [ qr/\G[a-z]/ ]) ],
        [ divide($stdtext3 => 1,2,3,4,5) ];
@@ -288,8 +225,6 @@ expect [ extract_multiple(undef, [ qr/\G
 expect [ pos ], [ 5 ];
 expect [ $_ ], [ $stdtext3 ];
 
-# TESTS 77-79
-
 $_ = $stdtext3;
 expect [ scalar extract_multiple(undef, [ qr/\G[a-z]/ ]) ],
        [ divide($stdtext3 => 1) ];
@@ -297,9 +232,6 @@ expect [ scalar extract_multiple(undef, 
 expect [ pos ], [ 0 ];
 expect [ $_ ], [ substr($stdtext3,1) ];
 
-
-# TESTS 80-82
-
 $_ = $stdtext3;
 expect [ extract_multiple(undef, [ q/([a-z]),?/ ]) ],
        [ qw(a b c) ];
@@ -307,8 +239,6 @@ expect [ extract_multiple(undef, [ q/([a
 expect [ pos ], [ 5 ];
 expect [ $_ ], [ $stdtext3 ];
 
-# TESTS 83-85
-
 $_ = $stdtext3;
 expect [ scalar extract_multiple(undef, [ q/([a-z]),?/ ]) ],
        [ divide($stdtext3 => 1) ];
@@ -316,10 +246,134 @@ expect [ scalar extract_multiple(undef, 
 expect [ pos ], [ 0 ];
 expect [ $_ ], [ substr($stdtext3,2) ];
 
-
-# TEST 86
-
 # Fails in Text-Balanced-1.95 with result ['1 ', '""', '1234']
 $_ = q{ ""1234};
 expect [ extract_multiple(undef, [\&extract_quotelike]) ],
        [ ' ', '""', '1234' ];
+
+my $not_here_doc = "sub f {\n my \$pa <<= 2;\n}\n\n"; # wrong in 2.04
+expect [ extract_multiple($not_here_doc, [
+  { DONT_MATCH => \&extract_quotelike }
+]) ],
+       [ "sub f {\n my \$pa <<= 2;\n}\n\n" ];
+
+my $y_falsematch = <<'EOF'; # wrong in 2.04
+my $p = {y => 1};
+{ $pa=ones(3,3,3); my $f = do { my $i=1; my $v=$$p{y}-$i; $pb = $pa(,$i,) }; }
+EOF
+expect [ extract_multiple($y_falsematch, [
+  \&extract_variable,
+  { DONT_MATCH => \&extract_quotelike }
+]) ],
+  [ 'my ', '$p', " = {y => 1};\n{ ", '$pa', '=ones(3,3,3); my ', '$f',
+    ' = do { my ', '$i', '=1; my ', '$v', qw(= $$p{y} - $i), '; ', '$pb',
+    ' = ', '$pa', '(,', '$i', ",) }; }\n",
+  ];
+
+my $slashmatch = <<'EOF'; # wrong in 2.04
+my $var = 10 / 3; if ($var !~ /\./) { decimal() ;}
+EOF
+my @expect_slash = ('my ', '$var', ' = 10 / 3; if (', '$var', " !~ ",
+  '/\\./', ") { decimal() ;}\n"
+);
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable,
+  \&extract_quotelike,
+]) ],
+  \@expect_slash;
+
+$slashmatch = <<'EOF'; # wrong in 2.04
+my $var = 10 / 3; if ($var =~ /\./) { decimal() ;}
+EOF
+$expect_slash[4] = " =~ ";
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable,
+  \&extract_quotelike,
+]) ],
+  \@expect_slash;
+
+$slashmatch = <<'EOF'; # wrong in 2.04
+my $var = 10 / 3; if ($var =~
+  # a comment
+  /\./) { decimal() ;}
+EOF
+my $comment = qr/(?<![\$\@%])#.*/;
+my $id = qr/\b(?!([ysm]|q[rqxw]?|tr)\b)\w+/;
+expect [ extract_multiple($slashmatch, [
+  $comment,
+  \&extract_variable,
+  $id,
+  \&extract_quotelike,
+]) ],
+  [ 'my', ' ', '$var', ' = ', '10', ' / ', '3', '; ', 'if', ' (', '$var',
+    " =~\n  ", '# a comment', "\n  ", '/\\./', ') { ', 'decimal', "() ;}\n"
+  ];
+
+$slashmatch = <<'EOF'; # wrong in 2.04_01
+my $r=(1-$PCi)/1+czip(1, -1)/czip(1, 1);
+EOF
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable, $id, \&extract_quotelike,
+]) ],
+  [
+  'my', ' ', '$r', '=(', '1', '-', '$PCi', ')/', '1', '+',
+  'czip', '(', '1', ', -', '1', ')/',
+  'czip', '(', '1', ', ', '1', ");\n"
+  ];
+
+$slashmatch = <<'EOF'; # wrong in 2.04_01
+$ndim--; $min = $mdim <= $ndim ? 1 : 0; $min = $mdim < $ndim ? 1 : 0;
+EOF
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable, $id, \&extract_quotelike,
+]) ],
+  [
+  '$ndim', '--; ',
+  '$min', ' = ', '$mdim', ' <= ', '$ndim', ' ? ', '1', ' : ', '0', '; ',
+  '$min', ' = ', '$mdim', ' < ', '$ndim', ' ? ', '1', ' : ', '0', ";\n"
+  ];
+
+$slashmatch = <<'EOF'; # wrong in 2.04_01
+$x->t->(($a))->sever;
+wantarray ? 1 : 0; $min = $var ? 0;
+EOF
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable, $id, \&extract_quotelike,
+]) ],
+  [
+  '$x->t->(($a))->sever', ";\n",
+  'wantarray', ' ? ', '1', ' : ', '0', '; ',
+  '$min', ' = ', '$var', ' ? ', '0', ";\n",
+  ];
+
+$slashmatch = <<'EOF'; # wrong in 2.04_01
+$var //= 'default'; $x = 1 / 2;
+EOF
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable, \&extract_quotelike,
+]) ],
+  [
+  '$var', ' //= ', '\'default\'', '; ', '$x', " = 1 / 2;\n"
+  ];
+
+$slashmatch = <<'EOF'; # wrong in 2.04_01
+$m; return wantarray ? ($m, $i) : $var ? $m : 0;
+EOF
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable, \&extract_quotelike,
+]) ],
+  [
+  '$m',
+  '; return wantarray ? (', '$m', ', ', '$i', ') : ', '$var', ' ? ', '$m',
+  " : 0;\n"
+  ];
+
+$slashmatch = <<'EOF'; # wrong in 2.05
+$_ = 1 unless defined $_ and /\d\b/;
+EOF
+expect [ extract_multiple($slashmatch, [
+  \&extract_variable, \&extract_quotelike,
+]) ],
+  [ '$_', ' = 1 unless defined ', '$_', ' and ', '/\\d\\b/', ";\n" ];
+
+done_testing;
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/06_extqlk.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/06_extqlk.t,v
diff -u -p -a -u -p -r1.1.1.2 06_extqlk.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/06_extqlk.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/06_extqlk.t	21 Feb 2024 15:47:01 -0000
@@ -1,30 +1,13 @@
-#! /usr/local/bin/perl -ws
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..95\n"; }
-END {print "not ok 1\n" unless $loaded;}
+use Test::More;
 use Text::Balanced qw ( extract_quotelike );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-#$DEBUG=1;
-sub debug { print "\t>>>",@_ if $ENV{DEBUG} }
-sub esc   { my $x = shift||'<undef>'; $x =~ s/\n/\\n/gs; $x }
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
+sub esc   { my $x = shift||'<undef>'; $x =~ s/\n/\\n/gs; $x }
 
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
@@ -39,46 +22,49 @@ while (defined($str = <DATA>))
     elsif (!$str || $str =~ /\A#/)              { $neg = 0; next }
     my $setup_cmd = ($str =~ s/\A\{(.*)\}//) ? $1 : '';
     my $tests = 'sl';
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     my $orig = $str;
 
     eval $setup_cmd if $setup_cmd ne '';
+    is $@, '', 'no error';
     if($tests =~ /l/) {
         debug "\tUsing: $cmd\n";
         debug "\t   on: [" . esc($setup_cmd) . "][" . esc($str) . "]\n";
         my @res;
         eval qq{\@res = $cmd; };
+        is $@, '', 'no error';
         debug "\t  got:\n" . join "", map { "\t\t\t$_: [" . esc($res[$_]) . "]\n"} (0..$#res);
         debug "\t left: [" . esc($str) . "]\n";
         debug "\t  pos: [" . esc(substr($str,pos($str))) . "...]\n";
-        print "not " if (substr($str,pos($str),1) eq ';')==$neg;
-        print "ok ", $count++;
-        print "\n";
+        ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
     }
 
     eval $setup_cmd if $setup_cmd ne '';
+    is $@, '', 'no error';
     if($tests =~ /s/) {
         $str = $orig;
         debug "\tUsing: scalar $cmd\n";
         debug "\t   on: [" . esc($str) . "]\n";
         my $var = eval $cmd;
-        print " ($@)" if $@ && $DEBUG;
         $var = "<undef>" unless defined $var;
         debug "\t scalar got: [" . esc($var) . "]\n";
         debug "\t scalar left: [" . esc($str) . "]\n";
-        print "not " if ($str =~ '\A;')==$neg;
-        print "ok ", $count++;
-        print "\n";
+        ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
     }
 }
 
 # fails in Text::Balanced 1.95
 $_ = qq(s{}{});
 my @z = extract_quotelike();
-print "not " if $z[0] eq '';
-print "ok ", $count++;
-print "\n";
+isnt $z[0], '';
 
+@z = extract_quotelike("<<, 1; done()\nline1\nline2\n\n and next");
+like $z[1], qr/\A,/, 'implied heredoc with ,' or do {
+  diag "error: '$@'\ngot: ", explain \@z;
+};
+
+done_testing;
 
 __DATA__
 
@@ -88,7 +74,6 @@ __DATA__
 "a";
 'b';
 `cc`;
-
 
 <<EOHERE; done();\nline1\nline2\nEOHERE\n; next;
      <<EOHERE; done();\nline1\nline2\nEOHERE\n; next;
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/07_exttag.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/07_exttag.t,v
diff -u -p -a -u -p -r1.1.1.2 07_exttag.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/07_exttag.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/07_exttag.t	21 Feb 2024 15:47:01 -0000
@@ -1,27 +1,12 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..53\n"; }
-END {print "not ok 1\n" unless $loaded;}
+use Test::More;
 use Text::Balanced qw ( extract_tagged gen_extract_tagged );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-sub debug { print "\t>>>",@_ if $DEBUG }
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
 
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
@@ -34,29 +19,28 @@ while (defined($str = <DATA>))
     if ($str =~ s/\A# USING://) { $neg = 0; $cmd = $str; next; }
     elsif ($str =~ /\A# TH[EI]SE? SHOULD FAIL/) { $neg = 1; next; }
     elsif (!$str || $str =~ /\A#/) { $neg = 0; next }
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     debug "\tUsing: $cmd\n";
     debug "\t   on: [$str]\n";
 
     my @res;
     my $var = eval "\@res = $cmd";
+    is $@, '', 'no error';
     debug "\t list got: [" . join("|",map {defined $_ ? $_ : '<undef>'} @res) . "]\n";
     debug "\t list left: [$str]\n";
-    print "not " if (substr($str,pos($str)||0,1) eq ';')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
 
     pos $str = 0;
     $var = eval $cmd;
+    is $@, '', 'no error';
     $var = "<undef>" unless defined $var;
     debug "\t scalar got: [$var]\n";
     debug "\t scalar left: [$str]\n";
-    print "not " if ($str =~ '\A;')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
 }
+
+done_testing;
 
 __DATA__
 # USING: gen_extract_tagged("BEGIN([A-Z]+)",'END$1',"(?s).*?(?=BEGIN)")->($str);
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/08_extvar.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/08_extvar.t,v
diff -u -p -a -u -p -r1.1.1.2 08_extvar.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/08_extvar.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/08_extvar.t	21 Feb 2024 15:47:01 -0000
@@ -1,27 +1,12 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..183\n"; }
-END {print "not ok 1\n" unless $loaded;}
+use Test::More;
 use Text::Balanced qw ( extract_variable );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-sub debug { print "\t>>>",@_ if $DEBUG }
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
 
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
@@ -34,29 +19,31 @@ while (defined($str = <DATA>))
     if ($str =~ s/\A# USING://) { $neg = 0; $cmd = $str; next; }
     elsif ($str =~ /\A# TH[EI]SE? SHOULD FAIL/) { $neg = 1; next; }
     elsif (!$str || $str =~ /\A#/) { $neg = 0; next }
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     debug "\tUsing: $cmd\n";
     debug "\t   on: [$str]\n";
 
     my @res;
     my $var = eval "\@res = $cmd";
+    is $@, '', 'no error';
     debug "\t list got: [" . join("|",map {defined $_ ? $_ : '<undef>'} @res) . "]\n";
     debug "\t list left: [$str]\n";
-    print "not " if (substr($str,pos($str)||0,1) eq ';')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
 
     pos $str = 0;
     $var = eval $cmd;
+    is $@, '', 'no error';
     $var = "<undef>" unless defined $var;
     debug "\t scalar got: [$var]\n";
     debug "\t scalar left: [$str]\n";
-    print "not " if ($str =~ '\A;')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
 }
+
+my @res = extract_variable('${a}');
+is $res[0], '${a}' or diag "error was: $@";
+
+done_testing;
 
 __DATA__
 
Index: gnu/usr.bin/perl/cpan/Text-Balanced/t/09_gentag.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Text-Balanced/t/09_gentag.t,v
diff -u -p -a -u -p -r1.1.1.2 09_gentag.t
--- gnu/usr.bin/perl/cpan/Text-Balanced/t/09_gentag.t	15 Feb 2023 01:32:32 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/Text-Balanced/t/09_gentag.t	21 Feb 2024 15:47:01 -0000
@@ -1,27 +1,12 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
-
 use 5.008001;
 
 use strict;
 use warnings;
-
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
-
-my $loaded = 0;
-BEGIN { $| = 1; print "1..37\n"; }
-END {print "not ok 1\n" unless $loaded;}
 use Text::Balanced qw ( gen_extract_tagged );
-$loaded = 1;
-print "ok 1\n";
-my $count=2;
-use vars qw( $DEBUG );
-sub debug { print "\t>>>",@_ if $DEBUG }
+use Test::More;
 
-######################### End of black magic.
+our $DEBUG;
+sub debug { print "\t>>>",@_ if $DEBUG }
 
 ## no critic (BuiltinFunctions::ProhibitStringyEval)
 
@@ -31,6 +16,7 @@ my $str;
 while (defined($str = <DATA>))
 {
     chomp $str;
+    my $orig_str = $str;
     $str =~ s/\\n/\n/g;
     if ($str =~ s/\A# USING://)
     {
@@ -41,6 +27,7 @@ while (defined($str = <DATA>))
                 local $SIG{__WARN__} = sub { push @warnings, shift; };
                 *f = eval $str || die;
         };
+        is $@, '', 'no error';
         next;
     }
     elsif ($str =~ /\A# TH[EI]SE? SHOULD FAIL/) { $neg = 1; next; }
@@ -51,23 +38,21 @@ while (defined($str = <DATA>))
 
     my @res;
     my $var = eval { @res = f($str) };
+    is $@, '', 'no error';
     debug "\t list got: [" . join("|",map {defined $_ ? $_ : '<undef>'} @res) . "]\n";
     debug "\t list left: [$str]\n";
-    print "not " if (substr($str,pos($str)||0,1) eq ';')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&isnt : \&is)->(substr($str,pos($str)||0,1), ';', "$orig_str matched list");
 
     pos $str = 0;
     $var = eval { scalar f($str) };
+    is $@, '', 'no error';
     $var = "<undef>" unless defined $var;
     debug "\t scalar got: [$var]\n";
     debug "\t scalar left: [$str]\n";
-    print "not " if ($str =~ '\A;')==$neg;
-    print "ok ", $count++;
-    print " ($@)" if $@ && $DEBUG;
-    print "\n";
+    ($neg ? \&unlike : \&like)->( $str, qr/\A;/, "$orig_str matched scalar");
 }
+
+done_testing;
 
 __DATA__
 
Index: gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm,v
diff -u -p -a -u -p -r1.8 Piece.pm
--- gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm	1 Mar 2021 23:19:50 -0000	1.8
+++ gnu/usr.bin/perl/cpan/Time-Piece/Piece.pm	21 Feb 2024 15:47:00 -0000
@@ -19,7 +19,7 @@ our %EXPORT_TAGS = (
     ':override' => 'internal',
     );
 
-our $VERSION = '1.3401';
+our $VERSION = '1.3401_01';
 
 XSLoader::load( 'Time::Piece', $VERSION );
 
Index: gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs,v
diff -u -p -a -u -p -r1.3 Piece.xs
--- gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs	13 Feb 2019 21:15:16 -0000	1.3
+++ gnu/usr.bin/perl/cpan/Time-Piece/Piece.xs	21 Feb 2024 15:47:00 -0000
@@ -1,15 +1,8 @@
-#ifdef __cplusplus
-extern "C" {
-#endif
 #define PERL_NO_GET_CONTEXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
 #include <time.h>
-#ifdef __cplusplus
-}
-#endif
-
 
 #define    DAYS_PER_YEAR    365
 #define    DAYS_PER_QYEAR    (4*DAYS_PER_YEAR+1)
Index: gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm,v
diff -u -p -a -u -p -r1.4 Fatal.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm	15 Feb 2023 01:36:24 -0000	1.4
+++ gnu/usr.bin/perl/cpan/autodie/lib/Fatal.pm	21 Feb 2024 15:47:00 -0000
@@ -55,7 +55,7 @@ use constant ERROR_58_HINTS => q{Non-sub
 
 use constant MIN_IPC_SYS_SIMPLE_VER => 0.12;
 
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg::Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg::Version
 
 our $Debug ||= 0;
 
@@ -170,6 +170,8 @@ my %TAGS = (
     ':2.32'  => [qw(:default)],
     ':2.33'  => [qw(:default)],
     ':2.34'  => [qw(:default)],
+    ':2.35'  => [qw(:default)],
+    ':2.36'  => [qw(:default)],
 );
 
 
@@ -1088,6 +1090,7 @@ sub _one_invocation {
     my $code = qq[
         no warnings qw(unopened uninitialized numeric);
         no if \$\] >= 5.017011, warnings => "experimental::smartmatch";
+        no if \$warnings::Offsets{"deprecated::smartmatch"}, warnings => "deprecated";
 
         if (wantarray) {
             my \@results = $call(@argv);
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm,v
diff -u -p -a -u -p -r1.4 autodie.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm	15 Feb 2023 01:36:24 -0000	1.4
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie.pm	21 Feb 2024 15:47:00 -0000
@@ -9,7 +9,7 @@ our $VERSION;
 # ABSTRACT: Replace functions with ones that succeed or die with lexical scope
 
 BEGIN {
-    our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg::Version
+    our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg::Version
 }
 
 use constant ERROR_WRONG_FATAL => q{
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/Util.pm,v
diff -u -p -a -u -p -r1.3 Util.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/Util.pm	15 Feb 2023 01:36:24 -0000	1.3
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/Util.pm	21 Feb 2024 15:47:00 -0000
@@ -14,7 +14,7 @@ our @EXPORT_OK = qw(
   on_end_of_compile_scope
 );
 
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
 
 # ABSTRACT: Internal Utility subroutines for autodie and Fatal
 
@@ -179,7 +179,7 @@ autodie::Util - Internal Utility subrout
 
 =head1 DESCRIPTION
 
-Interal Utilities for autodie and Fatal!  This module is not a part of
+Internal Utilities for autodie and Fatal!  This module is not a part of
 autodie's public API.
 
 This module contains utility subroutines for abstracting away the
@@ -237,7 +237,7 @@ this subroutine.
 Given a package name and a hashref mapping names to a subroutine
 reference (or C<undef>), this subroutine will install said subroutines
 on their given name in that module.  If a name mapes to C<undef>, any
-subroutine with that name in the target module will be remove
+subroutine with that name in the target module will be removed
 (possibly "unshadowing" a CORE sub of same name).
 
 =head1 AUTHOR
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm,v
diff -u -p -a -u -p -r1.5 exception.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm	15 Feb 2023 01:36:24 -0000	1.5
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception.pm	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@ use Carp qw(croak);
 
 use Scalar::Util qw(blessed);
 
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
 # ABSTRACT: Exceptions from autodying functions.
 
 our $DEBUG = 0;
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm,v
diff -u -p -a -u -p -r1.5 hints.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm	15 Feb 2023 01:36:24 -0000	1.5
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/hints.pm	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 use constant PERL58 => ( $] < 5.009 );
 
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
 
 # ABSTRACT: Provide hints about user subroutines to autodie
 
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm,v
diff -u -p -a -u -p -r1.4 skip.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm	15 Feb 2023 01:36:24 -0000	1.4
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/skip.pm	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@ package autodie::skip;
 use strict;
 use warnings;
 
-our $VERSION = '2.34'; # VERSION
+our $VERSION = '2.36'; # VERSION
 
 # This package exists purely so people can inherit from it,
 # which isn't at all how roles are supposed to work, but it's
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/Guard.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/Guard.pm,v
diff -u -p -a -u -p -r1.3 Guard.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/Guard.pm	15 Feb 2023 01:36:24 -0000	1.3
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/Guard.pm	21 Feb 2024 15:47:00 -0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 
 # ABSTRACT: Wrapper class for calling subs at end of scope
-our $VERSION = '2.34'; # VERSION
+our $VERSION = '2.36'; # VERSION
 
 # This code schedules the cleanup of subroutines at the end of
 # scope.  It's directly inspired by chocolateboy's excellent
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/GuardStack.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/GuardStack.pm,v
diff -u -p -a -u -p -r1.3 GuardStack.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/GuardStack.pm	15 Feb 2023 01:36:24 -0000	1.3
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/Scope/GuardStack.pm	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@ use warnings;
 use autodie::Scope::Guard;
 
 # ABSTRACT: Hook stack for managing scopes via %^H
-our $VERSION = '2.34'; # VERSION
+our $VERSION = '2.36'; # VERSION
 
 my $H_KEY_STEM = __PACKAGE__ . '/guard';
 my $COUNTER = 0;
Index: gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm,v
diff -u -p -a -u -p -r1.4 system.pm
--- gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm	15 Feb 2023 01:36:24 -0000	1.4
+++ gnu/usr.bin/perl/cpan/autodie/lib/autodie/exception/system.pm	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@ use warnings;
 use parent 'autodie::exception';
 use Carp qw(croak);
 
-our $VERSION = '2.34'; # VERSION: Generated by DZP::OurPkg:Version
+our $VERSION = '2.36'; # VERSION: Generated by DZP::OurPkg:Version
 
 # ABSTRACT: Exceptions from autodying system().
 
Index: gnu/usr.bin/perl/cpan/autodie/t/exception_class.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/t/exception_class.t,v
diff -u -p -a -u -p -r1.1.1.1 exception_class.t
--- gnu/usr.bin/perl/cpan/autodie/t/exception_class.t	24 Sep 2010 14:49:05 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/autodie/t/exception_class.t	21 Feb 2024 15:47:00 -0000
@@ -43,7 +43,7 @@ like($@, qr/Bad exception class/, '$@ sh
 ### Tests with well-formed exception class (in Klingon)
 
 my $open_success3 = eval {
-    use pujHa'ghach qw(open);         #' <-- this makes my editor happy
+    use pujHa::ghach qw(open);
     open(my $fh, '<', NO_SUCH_FILE);
     1;
 };
@@ -52,6 +52,6 @@ is($open_success3,undef,"Open should fai
 
 isnt("$@","",'$@ should not be empty');
 
-isa_ok($@, "pujHa'ghach::Dotlh", '$@ should be a Klingon exception');
+isa_ok($@, "pujHa::ghach::Dotlh", '$@ should be a Klingon exception');
 
 like($@, qr/lujqu'/, '$@ should contain Klingon text');
Index: gnu/usr.bin/perl/cpan/autodie/t/exceptions.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/t/exceptions.t,v
diff -u -p -a -u -p -r1.3 exceptions.t
--- gnu/usr.bin/perl/cpan/autodie/t/exceptions.t	13 Feb 2019 21:15:18 -0000	1.3
+++ gnu/usr.bin/perl/cpan/autodie/t/exceptions.t	21 Feb 2024 15:47:00 -0000
@@ -8,8 +8,11 @@ BEGIN { plan skip_all => "Perl 5.10 only
 # Basic tests should go in basic_exceptions.t
 
 use 5.010;
+use warnings ();
 use constant NO_SUCH_FILE => 'this_file_had_better_not_exist_xyzzy';
 no if $] >= 5.017011, warnings => "experimental::smartmatch";
+no if exists $warnings::Offsets{"deprecated::smartmatch"},
+  warnings => "deprecated";
 
 plan 'no_plan';
 
Index: gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach.pm,v
diff -u -p -a -u -p -r1.2 ghach.pm
--- gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach.pm	5 Feb 2017 00:32:06 -0000	1.2
+++ gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach.pm	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,4 @@
-package pujHa'ghach;
+package pujHa::ghach;
 
 # Translator notes: reH Hegh is Kligon for "always dying".
 # It was the original name for this testing pragma, but
@@ -20,7 +20,7 @@ use warnings;
 use parent qw(autodie);
 
 sub exception_class {
-    return "pujHa'ghach::Dotlh";      # Dotlh - status
+    return "pujHa::ghach::Dotlh";      # Dotlh - status
 }
 
 1;
Index: gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm,v
diff -u -p -a -u -p -r1.2 Dotlh.pm
--- gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm	5 Feb 2017 00:32:06 -0000	1.2
+++ gnu/usr.bin/perl/cpan/autodie/t/lib/pujHa/ghach/Dotlh.pm	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,4 @@
-package pujHa'ghach::Dotlh;
+package pujHa::ghach::Dotlh;
 
 # Translator notes: Dotlh = status
 
Index: gnu/usr.bin/perl/cpan/bignum/lib/bigfloat.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/bigfloat.pm,v
diff -u -p -a -u -p -r1.1.1.1 bigfloat.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/bigfloat.pm	15 Feb 2023 01:32:43 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/bignum/lib/bigfloat.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 use Carp qw< carp croak >;
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use Exporter;
 our @ISA            = qw( Exporter );
Index: gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm,v
diff -u -p -a -u -p -r1.6 bigint.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm	15 Feb 2023 01:36:25 -0000	1.6
+++ gnu/usr.bin/perl/cpan/bignum/lib/bigint.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 use Carp qw< carp croak >;
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use Exporter;
 our @ISA            = qw( Exporter );
@@ -553,8 +553,8 @@ Load a different math lib, see L<Math Li
 
 Override the built-in hex() method with a version that can handle big numbers.
 This overrides it by exporting it to the current package. Under Perl v5.10.0 and
-higher, this is not so necessary, as hex() is lexically overridden in the
-current scope whenever the C<bigint> pragma is active.
+higher, this is not necessary, as hex() is lexically overridden in the current
+scope whenever the C<bigint> pragma is active.
 
 =item oct
 
@@ -800,8 +800,8 @@ Some cool command line examples to impre
 to compare them to the results under -Mbigfloat or -Mbigrat:
 
     perl -Mbigint -le 'print sqrt(33)'
-    perl -Mbigint -le 'print 2*255'
-    perl -Mbigint -le 'print 4.5+2*255'
+    perl -Mbigint -le 'print 2**255'
+    perl -Mbigint -le 'print 4.5+2**255'
     perl -Mbigint -le 'print 123->is_odd()'
     perl -Mbigint=l,GMP -le 'print 7 ** 7777'
 
Index: gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm,v
diff -u -p -a -u -p -r1.6 bignum.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm	15 Feb 2023 01:36:25 -0000	1.6
+++ gnu/usr.bin/perl/cpan/bignum/lib/bignum.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 use Carp qw< carp croak >;
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use Exporter;
 our @ISA            = qw( Exporter );
Index: gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm,v
diff -u -p -a -u -p -r1.6 bigrat.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm	15 Feb 2023 01:36:25 -0000	1.6
+++ gnu/usr.bin/perl/cpan/bignum/lib/bigrat.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 use Carp qw< carp croak >;
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use Exporter;
 our @ISA            = qw( Exporter );
Index: gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm,v
diff -u -p -a -u -p -r1.6 Trace.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm	15 Feb 2023 01:36:25 -0000	1.6
+++ gnu/usr.bin/perl/cpan/bignum/lib/Math/BigFloat/Trace.pm	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ use Math::BigFloat;
 
 our @ISA = qw(Exporter Math::BigFloat);
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use overload;                   # inherit overload from Math::BigFloat
 
Index: gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm,v
diff -u -p -a -u -p -r1.6 Trace.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm	15 Feb 2023 01:36:25 -0000	1.6
+++ gnu/usr.bin/perl/cpan/bignum/lib/Math/BigInt/Trace.pm	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ use Math::BigInt;
 
 our @ISA = qw(Exporter Math::BigInt);
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use overload;                   # inherit overload from Math::BigInt
 
Index: gnu/usr.bin/perl/cpan/bignum/lib/Math/BigRat/Trace.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/bignum/lib/Math/BigRat/Trace.pm,v
diff -u -p -a -u -p -r1.1.1.1 Trace.pm
--- gnu/usr.bin/perl/cpan/bignum/lib/Math/BigRat/Trace.pm	15 Feb 2023 01:32:43 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/bignum/lib/Math/BigRat/Trace.pm	21 Feb 2024 15:47:01 -0000
@@ -10,7 +10,7 @@ use Math::BigRat;
 
 our @ISA = qw(Exporter Math::BigRat);
 
-our $VERSION = '0.65';
+our $VERSION = '0.66';
 
 use overload;                   # inherit overload from Math::BigRat
 
Index: gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbf.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbf.t
diff -N gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbf.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbf.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,101 @@
+# -*- mode: perl; -*-
+
+use strict;
+use warnings;
+
+use Test::More tests => 66;
+
+# Default: upgrade => "Math::BigFloat", downgrade => "Math::BigInt";
+use bignum;
+
+my $class = "Math::BigInt";
+my $x;
+
+###############################################################################
+
+note("inf tests");
+
+$x = 1 + inf;
+note("\n\n" . $x . "\n\n");
+
+$x = 1 + inf;
+is(ref($x), $class, "\$x = 1 + inf makes a $class");
+is($x->bstr(), "inf", '$x = 1 + inf; $x->bstr() = "inf"');
+
+$x = 1 * inf;
+is(ref($x), $class, "\$x = 1 * inf makes a $class");
+is($x->bstr(), "inf", '$x = 1 * inf; $x->bstr() = "inf"');
+
+# these don't work without exporting inf()
+$x = inf;
+is(ref($x), $class, "\$x = inf makes a $class");
+is($x->bstr(), "inf", '$x = inf; $x->bstr() = "inf"');
+
+$x = inf + inf;
+is(ref($x), $class, "\$x = inf + inf makes a $class");
+is($x->bstr(), "inf", '$x = inf + inf; $x->bstr() = "inf"');
+
+$x = inf * inf;
+is(ref($x), $class, "\$x = inf * inf makes a $class");
+is($x->bstr(), "inf", '$x = inf * inf; $x->bstr() = "inf"');
+
+###############################################################################
+
+note("NaN tests");
+
+$x = 1 + NaN;
+is(ref($x), $class, "\$x = 1 + NaN makes a $class");
+is($x->bstr(), "NaN", '$x = 1 + NaN; $x->bstr() = "NaN"');
+
+$x = 1 * NaN;
+is(ref($x), $class, "\$x = 1 * NaN makes a $class");
+is($x->bstr(), "NaN", '$x = 1 * NaN; $x->bstr() = "NaN"');
+
+# these don't work without exporting NaN()
+$x = NaN;
+is(ref($x), $class, "\$x = NaN makes a $class");
+is($x->bstr(), "NaN", '$x = NaN; $x->bstr() = "NaN"');
+
+$x = NaN + NaN;
+is(ref($x), $class, "\$x = NaN + NaN makes a $class");
+is($x->bstr(), "NaN", '$x = NaN + NaN; $x->bstr() = "NaN"');
+
+$x = NaN * NaN;
+is(ref($x), $class, "\$x = NaN * NaN makes a $class");
+is($x->bstr(), "NaN", '$x = NaN * NaN; $x->bstr() = "NaN"');
+
+###############################################################################
+
+note("mixed tests");
+
+# these don't work without exporting NaN() or inf()
+
+$x = NaN + inf;
+is(ref($x), $class, "\$x = NaN + inf makes a $class");
+is($x->bstr(), "NaN", '$x = NaN + inf; $x->bstr() = "NaN"');
+
+$x = NaN * inf;
+is(ref($x), $class, "\$x = NaN * inf makes a $class");
+is($x->bstr(), "NaN", '$x = NaN * inf; $x->bstr() = "NaN"');
+
+$x = inf * NaN;
+is(ref($x), $class, "\$x = inf * NaN makes a $class");
+is($x->bstr(), "NaN", '$x = inf * NaN; $x->bstr() = "NaN"');
+
+###############################################################################
+# inf and NaN as strings.
+
+for my $nan (qw/ nan naN nAn nAN Nan NaN NAn NAN /) {
+    my $x = 1 + $nan;
+    is($x->bstr(), "NaN", qq|\$x = 1 + "$nan"|);
+    is(ref($x), $class, "\$x is a $class");
+}
+
+for my $inf (qw/ inf inF iNf iNF Inf InF INf INF
+                 infinity Infinity InFiNiTy iNfInItY
+               /)
+{
+    my $x = 1 + $inf;
+    is($x->bstr(), "inf", qq|\$x = 1 + "$inf"|);
+    is(ref($x), $class, "\$x is a $class");
+}
Index: gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbr.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbr.t
diff -N gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbr.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum-mbr.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,101 @@
+# -*- mode: perl; -*-
+
+use strict;
+use warnings;
+
+use Test::More tests => 66;
+
+# Default: upgrade => "Math::BigFloat", downgrade => "Math::BigInt";
+use bignum upgrade => "Math::BigRat";
+
+my $class = "Math::BigInt";
+my $x;
+
+###############################################################################
+
+note("inf tests");
+
+$x = 1 + inf;
+note("\n\n" . $x . "\n\n");
+
+$x = 1 + inf;
+is(ref($x), $class, "\$x = 1 + inf makes a $class");
+is($x->bstr(), "inf", '$x = 1 + inf; $x->bstr() = "inf"');
+
+$x = 1 * inf;
+is(ref($x), $class, "\$x = 1 * inf makes a $class");
+is($x->bstr(), "inf", '$x = 1 * inf; $x->bstr() = "inf"');
+
+# these don't work without exporting inf()
+$x = inf;
+is(ref($x), $class, "\$x = inf makes a $class");
+is($x->bstr(), "inf", '$x = inf; $x->bstr() = "inf"');
+
+$x = inf + inf;
+is(ref($x), $class, "\$x = inf + inf makes a $class");
+is($x->bstr(), "inf", '$x = inf + inf; $x->bstr() = "inf"');
+
+$x = inf * inf;
+is(ref($x), $class, "\$x = inf * inf makes a $class");
+is($x->bstr(), "inf", '$x = inf * inf; $x->bstr() = "inf"');
+
+###############################################################################
+
+note("NaN tests");
+
+$x = 1 + NaN;
+is(ref($x), $class, "\$x = 1 + NaN makes a $class");
+is($x->bstr(), "NaN", '$x = 1 + NaN; $x->bstr() = "NaN"');
+
+$x = 1 * NaN;
+is(ref($x), $class, "\$x = 1 * NaN makes a $class");
+is($x->bstr(), "NaN", '$x = 1 * NaN; $x->bstr() = "NaN"');
+
+# these don't work without exporting NaN()
+$x = NaN;
+is(ref($x), $class, "\$x = NaN makes a $class");
+is($x->bstr(), "NaN", '$x = NaN; $x->bstr() = "NaN"');
+
+$x = NaN + NaN;
+is(ref($x), $class, "\$x = NaN + NaN makes a $class");
+is($x->bstr(), "NaN", '$x = NaN + NaN; $x->bstr() = "NaN"');
+
+$x = NaN * NaN;
+is(ref($x), $class, "\$x = NaN * NaN makes a $class");
+is($x->bstr(), "NaN", '$x = NaN * NaN; $x->bstr() = "NaN"');
+
+###############################################################################
+
+note("mixed tests");
+
+# these don't work without exporting NaN() or inf()
+
+$x = NaN + inf;
+is(ref($x), $class, "\$x = NaN + inf makes a $class");
+is($x->bstr(), "NaN", '$x = NaN + inf; $x->bstr() = "NaN"');
+
+$x = NaN * inf;
+is(ref($x), $class, "\$x = NaN * inf makes a $class");
+is($x->bstr(), "NaN", '$x = NaN * inf; $x->bstr() = "NaN"');
+
+$x = inf * NaN;
+is(ref($x), $class, "\$x = inf * NaN makes a $class");
+is($x->bstr(), "NaN", '$x = inf * NaN; $x->bstr() = "NaN"');
+
+###############################################################################
+# inf and NaN as strings.
+
+for my $nan (qw/ nan naN nAn nAN Nan NaN NAn NAN /) {
+    my $x = 1 + $nan;
+    is($x->bstr(), "NaN", qq|\$x = 1 + "$nan"|);
+    is(ref($x), $class, "\$x is a $class");
+}
+
+for my $inf (qw/ inf inF iNf iNF Inf InF INf INF
+                 infinity Infinity InFiNiTy iNfInItY
+               /)
+{
+    my $x = 1 + $inf;
+    is($x->bstr(), "inf", qq|\$x = 1 + "$inf"|);
+    is(ref($x), $class, "\$x is a $class");
+}
Index: gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum.t
diff -N gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum.t
--- gnu/usr.bin/perl/cpan/bignum/t/infnan-bignum.t	15 Feb 2023 01:32:43 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,100 +0,0 @@
-# -*- mode: perl; -*-
-
-use strict;
-use warnings;
-
-use Test::More tests => 66;
-
-use bignum downgrade => undef;
-
-my $class = "Math::BigInt";
-my $x;
-
-###############################################################################
-
-note("inf tests");
-
-$x = 1 + inf;
-note("\n\n" . $x . "\n\n");
-
-$x = 1 + inf;
-is(ref($x), $class, "\$x = 1 + inf makes a $class");
-is($x->bstr(), "inf", '$x = 1 + inf; $x->bstr() = "inf"');
-
-$x = 1 * inf;
-is(ref($x), $class, "\$x = 1 * inf makes a $class");
-is($x->bstr(), "inf", '$x = 1 * inf; $x->bstr() = "inf"');
-
-# these don't work without exporting inf()
-$x = inf;
-is(ref($x), $class, "\$x = inf makes a $class");
-is($x->bstr(), "inf", '$x = inf; $x->bstr() = "inf"');
-
-$x = inf + inf;
-is(ref($x), $class, "\$x = inf + inf makes a $class");
-is($x->bstr(), "inf", '$x = inf + inf; $x->bstr() = "inf"');
-
-$x = inf * inf;
-is(ref($x), $class, "\$x = inf * inf makes a $class");
-is($x->bstr(), "inf", '$x = inf * inf; $x->bstr() = "inf"');
-
-###############################################################################
-
-note("NaN tests");
-
-$x = 1 + NaN;
-is(ref($x), $class, "\$x = 1 + NaN makes a $class");
-is($x->bstr(), "NaN", '$x = 1 + NaN; $x->bstr() = "NaN"');
-
-$x = 1 * NaN;
-is(ref($x), $class, "\$x = 1 * NaN makes a $class");
-is($x->bstr(), "NaN", '$x = 1 * NaN; $x->bstr() = "NaN"');
-
-# these don't work without exporting NaN()
-$x = NaN;
-is(ref($x), $class, "\$x = NaN makes a $class");
-is($x->bstr(), "NaN", '$x = NaN; $x->bstr() = "NaN"');
-
-$x = NaN + NaN;
-is(ref($x), $class, "\$x = NaN + NaN makes a $class");
-is($x->bstr(), "NaN", '$x = NaN + NaN; $x->bstr() = "NaN"');
-
-$x = NaN * NaN;
-is(ref($x), $class, "\$x = NaN * NaN makes a $class");
-is($x->bstr(), "NaN", '$x = NaN * NaN; $x->bstr() = "NaN"');
-
-###############################################################################
-
-note("mixed tests");
-
-# these don't work without exporting NaN() or inf()
-
-$x = NaN + inf;
-is(ref($x), $class, "\$x = NaN + inf makes a $class");
-is($x->bstr(), "NaN", '$x = NaN + inf; $x->bstr() = "NaN"');
-
-$x = NaN * inf;
-is(ref($x), $class, "\$x = NaN * inf makes a $class");
-is($x->bstr(), "NaN", '$x = NaN * inf; $x->bstr() = "NaN"');
-
-$x = inf * NaN;
-is(ref($x), $class, "\$x = inf * NaN makes a $class");
-is($x->bstr(), "NaN", '$x = inf * NaN; $x->bstr() = "NaN"');
-
-###############################################################################
-# inf and NaN as strings.
-
-for my $nan (qw/ nan naN nAn nAN Nan NaN NAn NAN /) {
-    my $x = 1 + $nan;
-    is($x->bstr(), "NaN", qq|\$x = 1 + "$nan"|);
-    is(ref($x), $class, "\$x is a $class");
-}
-
-for my $inf (qw/ inf inF iNf iNF Inf InF INf INF
-                 infinity Infinity InFiNiTy iNfInItY
-               /)
-{
-    my $x = 1 + $inf;
-    is($x->bstr(), "inf", qq|\$x = 1 + "$inf"|);
-    is(ref($x), $class, "\$x is a $class");
-}
Index: gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm,v
diff -u -p -a -u -p -r1.5 experimental.pm
--- gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm	15 Feb 2023 01:36:25 -0000	1.5
+++ gnu/usr.bin/perl/cpan/experimental/lib/experimental.pm	21 Feb 2024 15:47:00 -0000
@@ -1,5 +1,5 @@
 package experimental;
-$experimental::VERSION = '0.028';
+$experimental::VERSION = '0.031';
 use strict;
 use warnings;
 use version ();
@@ -8,6 +8,7 @@ BEGIN { eval { require feature } };
 use Carp qw/croak carp/;
 
 my %warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::Offsets;
+my %removed_warnings = map { $_ => 1 } grep { /^experimental::/ } keys %warnings::NoOp;
 my %features = map { $_ => 1 } $] > 5.015006 ? keys %feature::feature : do {
 	my @features;
 	if ($] >= 5.010) {
@@ -28,7 +29,7 @@ my %min_version = (
 	declared_refs   => '5.26.0',
 	defer           => '5.35.4',
 	evalbytes       => '5.16.0',
-        extra_paired_delims => '5.35.9',
+	extra_paired_delimiters => '5.35.9',
 	fc              => '5.16.0',
 	for_list        => '5.35.5',
 	isa             => '5.31.7',
@@ -73,6 +74,9 @@ sub _enable {
 		feature->import($pragma);
 		_enable(@{ $additional{$pragma} }) if $additional{$pragma};
 	}
+	elsif ($removed_warnings{"experimental::$pragma"}) {
+		_enable(@{ $additional{$pragma} }) if $additional{$pragma};
+	}
 	elsif (not exists $min_version{$pragma}) {
 		croak "Can't enable unknown feature $pragma";
 	}
@@ -136,7 +140,7 @@ experimental - Experimental features mad
 
 =head1 VERSION
 
-version 0.027
+version 0.031
 
 =head1 SYNOPSIS
 
@@ -201,6 +205,11 @@ This was added in perl 5.26.0.
 
 This was added in perl 5.36.0
 
+=item * C<extra_paired_delimiters> - enables the use of more paired string delimiters than the
+traditional four, S<C<< <  > >>>, S<C<( )>>, S<C<{ }>>, and S<C<[ ]>>.
+
+This was added in perl 5.36.
+
 =item * C<for_list> - allows iterating over multiple values at a time with C<for>
 
 This was added in perl 5.36.0
@@ -215,7 +224,7 @@ This was added in perl 5.10.0 and remove
 
 =item * C<lexical_subs> - allow the use of lexical subroutines.
 
-This was added in 5.18.0.
+This was added in 5.18.0, and became non-experimental (and always enabled) in 5.26.0.
 
 =item * C<postderef> - allow the use of postfix dereferencing expressions
 
@@ -246,9 +255,13 @@ This was added in perl 5.20.0.
 This was added in perl 5.10.0, but it should be noted there are significant
 incompatibilities between 5.10.0 and 5.10.1.
 
+The feature is going to be deprecated in perl 5.38.0, and removed in 5.42.0.
+
 =item * C<switch> - allow the use of C<~~>, given, and when
 
 This was added in perl 5.10.0.
+
+The feature is going to be deprecated in perl 5.38.0, and removed in 5.42.0.
 
 =item * C<try> - allow the use of C<try> and C<catch>
 
Index: gnu/usr.bin/perl/cpan/experimental/lib/stable.pm
===================================================================
RCS file: gnu/usr.bin/perl/cpan/experimental/lib/stable.pm
diff -N gnu/usr.bin/perl/cpan/experimental/lib/stable.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/experimental/lib/stable.pm	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,159 @@
+package stable;
+$stable::VERSION = '0.031';
+use strict;
+use warnings;
+use version ();
+
+use experimental ();
+use Carp qw/croak carp/;
+
+my %allow_at = (
+	bitwise       => 5.022000,
+	isa           => 5.032000,
+	lexical_subs  => 5.022000,
+	postderef     => 5.020000,
+);
+
+sub import {
+	my ($self, @pragmas) = @_;
+
+	for my $pragma (@pragmas) {
+		my $min_ver = $allow_at{$pragma};
+		croak "unknown stablized experiment $pragma" unless defined $min_ver;
+		croak "requested stablized experiment $pragma, which is stable at $min_ver but this is $]"
+			unless $] >= $min_ver;
+	}
+
+	experimental->import(@pragmas);
+	return;
+}
+
+sub unimport {
+	my ($self, @pragmas) = @_;
+
+	# Look, we could say "You can't unimport stable experiment 'bitwise' on
+	# 5.20" but it just seems weird. -- rjbs, 2022-03-05
+	experimental->unimport(@pragmas);
+	return;
+}
+
+1;
+
+#ABSTRACT: Experimental features made easy, once we know they're stable
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+stable - Experimental features made easy, once we know they're stable
+
+=head1 VERSION
+
+version 0.031
+
+=head1 SYNOPSIS
+
+	use stable 'lexical_subs', 'bitwise';
+	my sub is_odd($value) { $value & 1 }
+
+=head1 DESCRIPTION
+
+The L<experimental> pragma makes it easy to turn on experimental while turning
+off associated warnings.  You should read about it, if you don't already know
+what it does.
+
+Seeing C<use experimental> in code might be scary.  In fact, it probably should
+be!  Code that uses experimental features might break in the future if the perl
+development team decides that the experiment needs to be altered.  When
+experiments become stable, because the developers decide they're a success, the
+warnings associated with them go away.  When that happens, they can generally
+be turned on with C<use feature>.
+
+This is great, if you are using a version of perl where the feature you want is
+already stable.  If you're using an older perl, though, it might be the case
+that you want to use an experimental feature that still warns, even though
+there's no risk in using it, because subsequent versions of perl have that
+feature unchanged and now stable.
+
+Here's an example:  The C<postderef> feature was added in perl 5.20.0.  In perl
+5.24.0, it was marked stable.  Using it would no longer trigger a warning.  The
+behavior of the feature didn't change between 5.20.0 and 5.24.0.  That means
+that it's perfectly safe to use the feature on 5.20 or 5.22, even though
+there's a warning.
+
+In that case, you could very justifiably add C<use experimental 'postderef'>
+but the casual reader may still be worried at seeing that.  The C<stable>
+pragma exists to turn on experimental features only when it's known that
+their behavior in the running perl is their stable behavior.
+
+If you try to use an experimental feature that isn't stable or available on
+the running version of perl, an exception will be thrown.  You should also take
+care that you've required the version of C<stable> that you need!
+
+If it's not immediately obvious why, here's a bit of explanation:
+
+=over 4
+
+=item *
+
+C<stable> comes with perl, starting with perl v5.38.
+
+=item *
+
+Imagine that v5.38 adds a feature called "florps".  It will stop being
+experimental in v5.42.
+
+=item *
+
+The version of C<stable> that comes with perl v5.38 can't know that the
+I<florps> experiment will succeed, so you can't C<use stable 'florps'> on the
+version of stable ships with v5.38, because it can't see the future!
+
+=item *
+
+You'll need to write C<use stable 1.234 'florps'> to say that you need version
+1.234 of stable, which is when I<florps> became known to stable.
+
+=back
+
+Sure, it's a little weird, but it's worth it!  The documentation of this pragma
+will tell you what version of C<stable> you need to require in order to use
+various features.  See below.
+
+At present there are only a few "stable" features:
+
+=over 4
+
+=item * C<bitwise> - stable as of perl 5.22, available via stable 0.031
+
+=item * C<isa> - stable as of perl 5.32, available via stable 0.031
+
+=item * C<lexical_subs> - stable as of perl 5.22, available via stable 0.031
+
+Lexical subroutines were actually added in 5.18, and their design did not
+change, but significant bugs makes them unsafe to use before 5.22.
+
+=item * C<postderef> - stable as of perl 5.20, available via stable 0.031
+
+=back
+
+=head1 SEE ALSO
+
+L<perlexperiment|perlexperiment> contains more information about experimental features.
+
+=head1 AUTHOR
+
+Leon Timmermans <leont@cpan.org>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2013 by Leon Timmermans.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
Index: gnu/usr.bin/perl/cpan/experimental/t/basic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/experimental/t/basic.t,v
diff -u -p -a -u -p -r1.5 basic.t
--- gnu/usr.bin/perl/cpan/experimental/t/basic.t	15 Feb 2023 01:36:25 -0000	1.5
+++ gnu/usr.bin/perl/cpan/experimental/t/basic.t	21 Feb 2024 15:47:00 -0000
@@ -18,7 +18,9 @@ if ($] >= 5.010000) {
 END
 }
 
-if ($] >= 5.010001) {
+use warnings ();
+if ( $] >= 5.010001
+    && ( $] < 5.017011 || exists $warnings::Offsets{"experimental::smartmatch"} ) ) {
 	is (eval <<'END', 1, 'switch compiles') or diag $@;
 	use experimental 'switch';
 	sub bar { 1 };
@@ -34,7 +36,8 @@ if ($] >= 5.010001) {
 END
 }
 
-if ($] >= 5.010001) {
+if ( $] >= 5.010001
+    && ( $] < 5.017011 || exists $warnings::Offsets{"experimental::smartmatch"} ) ) {
 	is (eval <<'END', 1, 'smartmatch compiles') or diag $@;
 	use experimental 'smartmatch';
 	sub baz { 1 };
Index: gnu/usr.bin/perl/cpan/libnet/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/Makefile.PL,v
diff -u -p -a -u -p -r1.6 Makefile.PL
--- gnu/usr.bin/perl/cpan/libnet/Makefile.PL	15 Feb 2023 01:36:25 -0000	1.6
+++ gnu/usr.bin/perl/cpan/libnet/Makefile.PL	21 Feb 2024 15:47:00 -0000
@@ -66,7 +66,7 @@ MAIN: {
         ABSTRACT => 'Collection of network protocol modules',
         AUTHOR   => 'Graham Barr <gbarr@pobox.com>, Steve Hay <shay@cpan.org>',
         LICENSE  => 'perl_5',
-        VERSION  => '3.13',
+        VERSION  => '3.15',
 
         META_MERGE => {
             'meta-spec' => {
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/Cmd.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/Cmd.pm,v
diff -u -p -a -u -p -r1.3 Cmd.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/Cmd.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/Cmd.pm	21 Feb 2024 15:47:00 -0000
@@ -1,7 +1,7 @@
 # Net::Cmd.pm
 #
 # Copyright (C) 1995-2006 Graham Barr.  All rights reserved.
-# Copyright (C) 2013-2016, 2020 Steve Hay.  All rights reserved.
+# Copyright (C) 2013-2016, 2020, 2022 Steve Hay.  All rights reserved.
 # This module is free software; you can redistribute it and/or modify it under
 # the same terms as Perl itself, i.e. under the terms of either the GNU General
 # Public License or the Artistic License, as specified in the F<LICENCE> file.
@@ -26,7 +26,7 @@ BEGIN {
   }
 }
 
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 our @ISA     = qw(Exporter);
 our @EXPORT  = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING);
 
@@ -887,7 +887,7 @@ libnet as of version 1.22_02.
 
 Copyright (C) 1995-2006 Graham Barr.  All rights reserved.
 
-Copyright (C) 2013-2016, 2020 Steve Hay.  All rights reserved.
+Copyright (C) 2013-2016, 2020, 2022 Steve Hay.  All rights reserved.
 
 =head1 LICENCE
 
@@ -897,11 +897,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/Config.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/Config.pm,v
diff -u -p -a -u -p -r1.3 Config.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/Config.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/Config.pm	21 Feb 2024 15:47:00 -0000
@@ -18,7 +18,7 @@ use Socket qw(inet_aton inet_ntoa);
 
 our @EXPORT  = qw(%NetConfig);
 our @ISA     = qw(Net::LocalCfg Exporter);
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 our($CONFIGURE, $LIBNET_CFG);
 
@@ -368,11 +368,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/Domain.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/Domain.pm,v
diff -u -p -a -u -p -r1.3 Domain.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/Domain.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/Domain.pm	21 Feb 2024 15:47:00 -0000
@@ -19,7 +19,7 @@ use Net::Config;
 
 our @ISA       = qw(Exporter);
 our @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname);
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 my ($host, $domain, $fqdn) = (undef, undef, undef);
 
@@ -395,11 +395,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP.pm,v
diff -u -p -a -u -p -r1.3 FTP.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP.pm	21 Feb 2024 15:47:00 -0000
@@ -1,7 +1,7 @@
 # Net::FTP.pm
 #
 # Copyright (C) 1995-2004 Graham Barr.  All rights reserved.
-# Copyright (C) 2013-2017, 2020 Steve Hay.  All rights reserved.
+# Copyright (C) 2013-2017, 2020, 2022 Steve Hay.  All rights reserved.
 # This module is free software; you can redistribute it and/or modify it under
 # the same terms as Perl itself, i.e. under the terms of either the GNU General
 # Public License or the Artistic License, as specified in the F<LICENCE> file.
@@ -23,7 +23,7 @@ use Net::Config;
 use Socket;
 use Time::Local;
 
-our $VERSION = '3.14';
+our $VERSION = '3.15';
 
 our $IOCLASS;
 my $family_key;
@@ -1052,14 +1052,7 @@ sub _dataconn {
       Timeout   => $ftp->timeout,
       can_ssl() ? (
         SSL_startHandshake => 0,
-        $ftp->is_SSL ? (
-          SSL_reuse_ctx => $ftp,
-          SSL_verifycn_name => ${*$ftp}{net_ftp_tlsargs}{SSL_verifycn_name},
-          # This will cause the use of SNI if supported by IO::Socket::SSL.
-          $ftp->can_client_sni ? (
-            SSL_hostname  => ${*$ftp}{net_ftp_tlsargs}{SSL_hostname}
-          ):(),
-        ) :( %{${*$ftp}{net_ftp_tlsargs}} ),
+        %{${*$ftp}{net_ftp_tlsargs}},
       ):(),
     ) or return;
   } elsif (my $listen =  delete ${*$ftp}{net_ftp_listen}) {
@@ -1966,19 +1959,6 @@ Reinitialize the connection, flushing al
 
 =back
 
-=head1 EXAMPLES
-
-For an example of the use of Net::FTP see
-
-=over 4
-
-=item L<https://www.csh.rit.edu/~adam/Progs/>
-
-C<autoftp> is a program that can retrieve, send, or list files via
-the FTP protocol in a non-interactive manner.
-
-=back
-
 =head1 EXPORTS
 
 I<None>.
@@ -2034,7 +2014,7 @@ libnet as of version 1.22_02.
 
 Copyright (C) 1995-2004 Graham Barr.  All rights reserved.
 
-Copyright (C) 2013-2017, 2020 Steve Hay.  All rights reserved.
+Copyright (C) 2013-2017, 2020, 2022 Steve Hay.  All rights reserved.
 
 =head1 LICENCE
 
@@ -2044,11 +2024,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/NNTP.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/NNTP.pm,v
diff -u -p -a -u -p -r1.3 NNTP.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/NNTP.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/NNTP.pm	21 Feb 2024 15:47:00 -0000
@@ -19,7 +19,7 @@ use Net::Cmd;
 use Net::Config;
 use Time::Local;
 
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 # Code for detecting if we can use SSL
 my $ssl_class = eval {
@@ -1308,11 +1308,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/Netrc.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/Netrc.pm,v
diff -u -p -a -u -p -r1.3 Netrc.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/Netrc.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/Netrc.pm	21 Feb 2024 15:47:00 -0000
@@ -16,7 +16,7 @@ use warnings;
 use Carp;
 use FileHandle;
 
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 our $TESTING;
 
@@ -353,11 +353,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/POP3.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/POP3.pm,v
diff -u -p -a -u -p -r1.3 POP3.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/POP3.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/POP3.pm	21 Feb 2024 15:47:00 -0000
@@ -18,7 +18,7 @@ use IO::Socket;
 use Net::Cmd;
 use Net::Config;
 
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 # Code for detecting if we can use SSL
 my $ssl_class = eval {
@@ -869,11 +869,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/SMTP.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/SMTP.pm,v
diff -u -p -a -u -p -r1.3 SMTP.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/SMTP.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/SMTP.pm	21 Feb 2024 15:47:00 -0000
@@ -19,7 +19,7 @@ use Net::Cmd;
 use Net::Config;
 use Socket;
 
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 # Code for detecting if we can use SSL
 my $ssl_class = eval {
@@ -1052,11 +1052,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/Time.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/Time.pm,v
diff -u -p -a -u -p -r1.3 Time.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/Time.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/Time.pm	21 Feb 2024 15:47:00 -0000
@@ -22,7 +22,7 @@ use Net::Config;
 our @ISA       = qw(Exporter);
 our @EXPORT_OK = qw(inet_time inet_daytime);
 
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 our $TIMEOUT = 120;
 
@@ -190,11 +190,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/A.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/A.pm,v
diff -u -p -a -u -p -r1.3 A.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/A.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/A.pm	21 Feb 2024 15:47:00 -0000
@@ -13,7 +13,7 @@ use Carp;
 use Net::FTP::dataconn;
 
 our @ISA     = qw(Net::FTP::dataconn);
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 our $buf;
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/E.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/E.pm,v
diff -u -p -a -u -p -r1.3 E.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/E.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/E.pm	21 Feb 2024 15:47:00 -0000
@@ -8,6 +8,6 @@ use warnings;
 use Net::FTP::I;
 
 our @ISA = qw(Net::FTP::I);
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 1;
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/I.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/I.pm,v
diff -u -p -a -u -p -r1.3 I.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/I.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/I.pm	21 Feb 2024 15:47:00 -0000
@@ -13,7 +13,7 @@ use Carp;
 use Net::FTP::dataconn;
 
 our @ISA     = qw(Net::FTP::dataconn);
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 our $buf;
 
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/L.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/L.pm,v
diff -u -p -a -u -p -r1.3 L.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/L.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/L.pm	21 Feb 2024 15:47:00 -0000
@@ -8,6 +8,6 @@ use warnings;
 use Net::FTP::I;
 
 our @ISA = qw(Net::FTP::I);
-our $VERSION = "3.14";
+our $VERSION = "3.15";
 
 1;
Index: gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/dataconn.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/dataconn.pm,v
diff -u -p -a -u -p -r1.3 dataconn.pm
--- gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/dataconn.pm	15 Feb 2023 01:36:25 -0000	1.3
+++ gnu/usr.bin/perl/cpan/libnet/lib/Net/FTP/dataconn.pm	21 Feb 2024 15:47:00 -0000
@@ -13,7 +13,7 @@ use Carp;
 use Errno;
 use Net::Cmd;
 
-our $VERSION = '3.14';
+our $VERSION = '3.15';
 
 $Net::FTP::IOCLASS or die "please load Net::FTP before Net::FTP::dataconn";
 our @ISA = $Net::FTP::IOCLASS;
@@ -224,11 +224,11 @@ License or the Artistic License, as spec
 
 =head1 VERSION
 
-Version 3.14
+Version 3.15
 
 =head1 DATE
 
-23 Dec 2020
+20 March 2023
 
 =head1 HISTORY
 
Index: gnu/usr.bin/perl/cpan/parent/lib/parent.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/parent/lib/parent.pm,v
diff -u -p -a -u -p -r1.5 parent.pm
--- gnu/usr.bin/perl/cpan/parent/lib/parent.pm	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/parent/lib/parent.pm	21 Feb 2024 15:47:00 -0000
@@ -1,7 +1,7 @@
 package parent;
 use strict;
 
-our $VERSION = '0.238';
+our $VERSION = '0.241';
 
 sub import {
     my $class = shift;
Index: gnu/usr.bin/perl/cpan/parent/t/parent-classfromclassfile.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/parent/t/parent-classfromclassfile.t,v
diff -u -p -a -u -p -r1.1.1.1 parent-classfromclassfile.t
--- gnu/usr.bin/perl/cpan/parent/t/parent-classfromclassfile.t	24 Sep 2010 14:49:06 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/parent/t/parent-classfromclassfile.t	21 Feb 2024 15:47:00 -0000
@@ -18,4 +18,4 @@ use_ok('parent');
 # and does not get treated as a file:
 eval q{package Test1; require Dummy; use parent -norequire, 'Dummy::InlineChild'; };
 is $@, '', "Loading an unadorned class works";
-isn't $INC{"Dummy.pm"}, undef, 'We loaded Dummy.pm';
+isnt $INC{"Dummy.pm"}, undef, 'We loaded Dummy.pm';
Index: gnu/usr.bin/perl/cpan/parent/t/parent-classfromfile.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/parent/t/parent-classfromfile.t,v
diff -u -p -a -u -p -r1.1.1.1 parent-classfromfile.t
--- gnu/usr.bin/perl/cpan/parent/t/parent-classfromfile.t	24 Sep 2010 14:49:06 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/parent/t/parent-classfromfile.t	21 Feb 2024 15:47:00 -0000
@@ -20,6 +20,6 @@ my $base = './t';
 # and does not get treated as a file:
 eval sprintf q{package Test2; require '%s/lib/Dummy2.plugin'; use parent -norequire, 'Dummy2::InlineChild' }, $base;
 is $@, '', "Loading a class from a file works";
-isn't $INC{"$base/lib/Dummy2.plugin"}, undef, "We loaded the plugin file";
+isnt $INC{"$base/lib/Dummy2.plugin"}, undef, "We loaded the plugin file";
 my $o = bless {}, 'Test2';
 isa_ok $o, 'Dummy2::InlineChild';
Index: gnu/usr.bin/perl/cpan/parent/t/parent.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/parent/t/parent.t,v
diff -u -p -a -u -p -r1.3 parent.t
--- gnu/usr.bin/perl/cpan/parent/t/parent.t	30 Dec 2019 02:13:49 -0000	1.3
+++ gnu/usr.bin/perl/cpan/parent/t/parent.t	21 Feb 2024 15:47:00 -0000
@@ -56,8 +56,8 @@ is( $Eval1::VERSION, '1.01' );
 
 is( $Eval2::VERSION, '1.02' );
 
-my $expected= q{/^Can't locate reallyReAlLyNotexists.pm in \@INC \(\@INC contains:/};
-$expected= q{/^Can't locate reallyReAlLyNotexists.pm in \@INC \(you may need to install the reallyReAlLyNotexists module\) \(\@INC contains:/}
+my $expected= q{/^Can't locate reallyReAlLyNotexists.pm in \@INC \(\@INC[\w ]+:/};
+$expected= q{/^Can't locate reallyReAlLyNotexists.pm in \@INC \(you may need to install the reallyReAlLyNotexists module\) \(\@INC[\w ]+:/}
     if 5.017005 <= $];
 
 eval q{use parent 'reallyReAlLyNotexists'};
@@ -74,4 +74,3 @@ like( $@, $expected, '  still failing on
     use parent -norequire, 'Has::Version_0';
     ::is( $Has::Version_0::VERSION, 0, '$VERSION==0 preserved' );
 }
-
Index: gnu/usr.bin/perl/cpan/podlators/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/Makefile.PL,v
diff -u -p -a -u -p -r1.5 Makefile.PL
--- gnu/usr.bin/perl/cpan/podlators/Makefile.PL	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/Makefile.PL	21 Feb 2024 15:47:00 -0000
@@ -4,7 +4,7 @@
 # which only supports that build method, and because it is a dependency of
 # other build systems like Module::Build.
 #
-# Copyright 1999-2001, 2008, 2010, 2012, 2014-2016, 2018-2019
+# Copyright 1999-2001, 2008, 2010, 2012, 2014-2016, 2018-2019, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -30,7 +30,7 @@ sub dist_version {
     open(my $fh, '<', File::Spec->catfile('lib', 'Pod', 'Man.pm'))
       or die "$0: cannot open lib/Pod/Man.pm: $!\n";
     while (defined(my $line = <$fh>)) {
-        if ($line =~ m{ \A \$VERSION \s+ = \s+ '([^\']+)' }xms) {
+        if ($line =~ m{ \A (?:our \s+)? \$VERSION \s+ = \s+ '([^\']+)' }xms) {
             close($fh) or die "$0: cannot close lib/Pod/Man.pm\n";
             return $1;
         }
@@ -81,7 +81,8 @@ sub man1pod {
 # The hash of all the metadata.  This will be modified before WriteMakefile to
 # remove keys not supported by the local version of ExtUtils::MakeMaker.
 my $dist_version = dist_version();
-my %metadata     = (
+my %metadata = (
+    #<<<
     NAME             => 'Pod',
     DISTNAME         => 'podlators',
     ABSTRACT         => 'Convert POD data to various other formats',
@@ -89,7 +90,8 @@ my %metadata     = (
     LICENSE          => 'perl_5',
     EXE_FILES        => [scripts('pod2text', 'pod2man')],
     VERSION_FROM     => 'lib/Pod/Man.pm',
-    MIN_PERL_VERSION => '5.008',
+    MIN_PERL_VERSION => '5.010',
+    #>>>
 
     # Use *.PL files to generate the driver scripts so that we get the correct
     # invocation of Perl on non-UNIX platforms.
@@ -107,11 +109,11 @@ my %metadata     = (
     },
 
     # Clean some additional files.
-    clean     => { FILES => File::Spec->catdir('t',    'tmp') },
+    clean => { FILES => File::Spec->catdir('t', 'tmp') },
     realclean => { FILES => scalar(scripts('pod2text', 'pod2man')) },
 
     # Dependencies on other modules.
-    PREREQ_PM => { 'Pod::Simple' => 3.06 },
+    PREREQ_PM => { 'Pod::Simple' => 3.26 },
 
     # Older versions of ExtUtils::MakeMaker don't pick up nested test
     # directories by default.
@@ -125,41 +127,40 @@ my %metadata     = (
     # Additional metadata.
     META_ADD => {
         'meta-spec' => { version => 2 },
-        provides    => {
+        provides => {
             'Pod::Man' => {
-                file    => 'lib/Pod/Man.pm',
+                file => 'lib/Pod/Man.pm',
                 version => $dist_version,
             },
             'Pod::ParseLink' => {
-                file    => 'lib/Pod/ParseLink.pm',
+                file => 'lib/Pod/ParseLink.pm',
                 version => $dist_version,
             },
             'Pod::Text' => {
-                file    => 'lib/Pod/Text.pm',
+                file => 'lib/Pod/Text.pm',
                 version => $dist_version,
             },
             'Pod::Text::Color' => {
-                file    => 'lib/Pod/Text/Color.pm',
+                file => 'lib/Pod/Text/Color.pm',
                 version => $dist_version,
             },
             'Pod::Text::Overstrike' => {
-                file    => 'lib/Pod/Text/Overstrike.pm',
+                file => 'lib/Pod/Text/Overstrike.pm',
                 version => $dist_version,
             },
             'Pod::Text::Termcap' => {
-                file    => 'lib/Pod/Text/Termcap.pm',
+                file => 'lib/Pod/Text/Termcap.pm',
                 version => $dist_version,
             },
         },
         resources => {
             bugtracker => {
-                mailto => 'bug-podlators@rt.cpan.org',
-                web => 'https://rt.cpan.org/Dist/Display.html?Name=podlators',
+                web => 'https://github.com/rra/podlators/issues',
             },
-            homepage   => 'https://www.eyrie.org/~eagle/software/podlators/',
+            homepage => 'https://www.eyrie.org/~eagle/software/podlators/',
             repository => {
-                url  => 'https://github.com/rra/podlators.git',
-                web  => 'https://github.com/rra/podlators',
+                url => 'https://github.com/rra/podlators.git',
+                web => 'https://github.com/rra/podlators',
                 type => 'git',
             },
         },
@@ -169,8 +170,8 @@ my %metadata     = (
 # Remove keys that aren't supported by this version of ExtUtils::MakeMaker.
 # This hash maps keys to the minimum supported version.
 my %supported = (
-    LICENSE          => 6.31,
-    META_ADD         => 6.46,
+    LICENSE => 6.31,
+    META_ADD => 6.46,
     MIN_PERL_VERSION => 6.48,
 );
 for my $key (keys(%supported)) {
Index: gnu/usr.bin/perl/cpan/podlators/docs/docknot.yaml
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/docs/docknot.yaml
diff -N gnu/usr.bin/perl/cpan/podlators/docs/docknot.yaml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/docs/docknot.yaml	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,145 @@
+# Package metadata for podlators.
+#
+# This file contains configuration for DocKnot used to generate
+# documentation files (like README.md) and web pages.  Other documentation
+# in this package is generated automatically from these files as part of
+# the release process.  For more information, see DocKnot's documentation.
+#
+# DocKnot is available from <https://www.eyrie.org/~eagle/software/docknot/>.
+#
+# Copyright 1999-2010, 2012-2022 Russ Allbery <rra@cpan.org>
+#
+# SPDX-License-Identifier: MIT
+
+format: v1
+
+name: podlators
+maintainer: Russ Allbery <rra@cpan.org>
+version: '5.01'
+synopsis: format POD source into various output formats
+
+license:
+  name: Perl
+copyrights:
+  - holder: Russ Allbery <rra@cpan.org>
+    years: 1999-2010, 2012-2022
+
+build:
+  type: ExtUtils::MakeMaker
+distribution:
+  cpan: podlators
+  section: perl
+  tarname: podlators
+  version: podlators
+support:
+  email: rra@cpan.org
+  github: rra/podlators
+  web: https://www.eyrie.org/~eagle/software/podlators/
+vcs:
+  browse: https://git.eyrie.org/?p=perl/podlators.git
+  github: rra/podlators
+  openhub: https://www.openhub.net/p/podlators
+  status:
+    workflow: build
+  type: Git
+  url: https://git.eyrie.org/git/perl/podlators.git
+
+quote:
+  author: Robert Fripp
+  text: |
+    We move from making unnecessary efforts, the exertions of force, to making
+    necessary efforts: the direction of effortlessness.  In this the prime
+    maxim is: honor necessity, honor sufficiency.
+  work: '"The Road to Graceland"'
+docs:
+  api:
+    - name: pod-man
+      title: Pod::Man
+    - name: pod-text
+      title: Pod::Text
+    - name: pod-text-color
+      title: Pod::Text::Color
+    - name: pod-text-overstrike
+      title: Pod::Text::Overstrike
+    - name: pod-text-termcap
+      title: Pod::Text::Termcap
+  developer:
+    - name: todo
+      title: To-do list
+  user:
+    - name: perlpodstyle
+      title: POD style guide
+    - name: pod2man
+      title: pod2man documentation
+    - name: pod2text
+      title: pod2text documentation
+    - name: thanks
+      title: Thanks and credits
+
+blurb: |
+  podlators contains Pod::Man and Pod::Text modules which convert POD input to
+  *roff source output, suitable for man pages, or plain text.  It also
+  includes several subclasses of Pod::Text for formatted output to terminals
+  with various capabilities.  It is the source package for the Pod::Man and
+  Pod::Text modules included with Perl.
+
+description: |
+  POD is the Plain Old Documentation format, the documentation language used
+  for all of Perl's documentation.  I learned it to document Perl modules,
+  started using it for Perl scripts as well, and discovered it was the most
+  convenient way I've found to write program documentation.  It's extremely
+  simple, well-designed for writing Unix manual pages (and I'm a
+  traditionalist who thinks that any program should have a regular manual
+  page), and easily readable in the raw format by humans.
+
+  The translators into text and nroff (for manual pages) included in the Perl
+  distribution had various bugs, however, and used their own ad hoc parsers,
+  so when I started running into those bugs and when a new generic parser
+  (Pod::Parser) was written, I decided to rewrite the two translators that I
+  use the most and fix the bugs that were bothering me.  This package is the
+  result.
+
+  podlators contains two main modules, Pod::Man and Pod::Text.  The former
+  converts POD into nroff/troff source and the latter into plain text (with
+  various options controlling some of the formatting).  There are also several
+  subclasses of Pod::Text for generating slightly formatted text using color
+  or other terminal control escapes, and a general utility module,
+  Pod::ParseLink, for parsing the POD `L<>` formatting sequences.  Also
+  included in this package are the `pod2text` and `pod2man` driver scripts.
+
+  Both Pod::Text and Pod::Man provide a variety of options for fine-tuning
+  their output.  Pod::Man also tries to massage input text where appropriate
+  to produce better output when run through nroff or troff, such as
+  distinguishing between different types of hyphens.
+
+  As of Perl 5.6.0, my implementation was included in Perl core, and each
+  release of Perl will have the at-the-time most current version of podlators
+  included.  You therefore only need to install this package yourself if you
+  need a newer version than came with Perl (to get some bug fixes, for
+  example).
+
+requirements: |
+  This module requires Perl 5.10 or later and Pod::Simple 3.26 or later.
+  (Pod::Simple 3.26 was included in Perl 5.17.10.)
+
+  The troff/nroff generated by Pod::Man should be compatible with any troff or
+  nroff implementation with the `-man` macro set, including mandoc.  It is
+  primarily tested by me under GNU groff, but Perl users send bug reports for
+  a wide variety of implementations and Pod::Man is used to generate all of
+  Perl's own manual pages, so hopefully most of the bugs have been weeded out.
+
+test:
+  lancaster: true
+  suffix: |
+    The following additional Perl modules will be used by the test suite if
+    present:
+
+    * Test::CPAN::Changes (part of CPAN-Changes)
+    * Test::MinimumVersion
+    * Test::Pod
+    * Test::Spelling
+    * Test::Strict
+    * Test::Synopsis
+
+    All are available on CPAN.  Those tests will be skipped if the modules are
+    not available.
Index: gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm,v
diff -u -p -a -u -p -r1.22 Man.pm
--- gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm	15 Feb 2023 01:38:22 -0000	1.22
+++ gnu/usr.bin/perl/cpan/podlators/lib/Pod/Man.pm	21 Feb 2024 15:47:00 -0000
@@ -14,36 +14,33 @@
 
 package Pod::Man;
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
-use subs qw(makespace);
-use vars qw(@ISA %ESCAPES $PREAMBLE $VERSION);
-
 use Carp qw(carp croak);
 use Pod::Simple ();
 
 # Conditionally import Encode and set $HAS_ENCODE if it is available.  This is
 # required to support building as part of Perl core, since podlators is built
 # before Encode is.
-our $HAS_ENCODE;
+my $HAS_ENCODE;
 BEGIN {
     $HAS_ENCODE = eval { require Encode };
 }
 
-@ISA = qw(Pod::Simple);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Simple);
+our $VERSION = '5.01';
 
-# Set the debugging level.  If someone has inserted a debug function into this
-# class already, use that.  Otherwise, use any Pod::Simple debug function
-# that's defined, and failing that, define a debug level of 10.
-BEGIN {
-    my $parent = defined (&Pod::Simple::DEBUG) ? \&Pod::Simple::DEBUG : undef;
-    unless (defined &DEBUG) {
-        *DEBUG = $parent || sub () { 10 };
-    }
+# Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available.  Code
+# taken from Pod::Simple 3.32, but was only added in 3.30.
+my ($NBSP, $SHY);
+if ($Pod::Simple::VERSION ge 3.30) {
+    $NBSP = $Pod::Simple::nbsp;
+    $SHY  = $Pod::Simple::shy;
+} else {
+    $NBSP = chr utf8::unicode_to_native(0xA0);
+    $SHY  = chr utf8::unicode_to_native(0xAD);
 }
 
 # Import the ASCII constant from Pod::Simple.  This is true iff we're in an
@@ -51,15 +48,12 @@ BEGIN {
 # generally only false for EBCDIC.
 BEGIN { *ASCII = \&Pod::Simple::ASCII }
 
-# Pretty-print a data structure.  Only used for debugging.
-BEGIN { *pretty = \&Pod::Simple::pretty }
-
 # Formatting instructions for various types of blocks.  cleanup makes hyphens
 # hard, adds spaces between consecutive underscores, and escapes backslashes.
 # convert translates characters into escapes.  guesswork means to apply the
-# transformations done by the guesswork sub.  literal says to protect literal
-# quotes from being turned into UTF-8 quotes.  By default, all transformations
-# are on except literal, but some elements override.
+# transformations done by the guesswork sub (if enabled).  literal says to
+# protect literal quotes from being turned into UTF-8 quotes.  By default, all
+# transformations are on except literal, but some elements override.
 #
 # DEFAULT specifies the default settings.  All other elements should list only
 # those settings that they are overriding.  Data indicates =for roff blocks,
@@ -75,6 +69,98 @@ my %FORMATTING = (
     X        => { cleanup => 0,               guesswork => 0               },
 );
 
+# Try to map an encoding as understood by Perl Encode to an encoding
+# understood by groff's preconv.  Encode doesn't care about hyphens or
+# capitalization, but preconv does.  The key is the canonicalized Encode
+# encoding, and the value is something preconv might understand.
+#
+# FreeBSD mandoc only understands utf-8 and iso-latin-1 as of 2022-09-24.
+# groff preconv prefers iso-8859-1, but also understands iso-latin-1, so
+# convert ISO-8859-1 to iso-latin-1 for FreeBSD.
+my %ENCODINGS = (
+    ascii     => 'us-ascii',
+    big5      => 'big5',
+    big5eten  => 'big5',
+    cp950     => 'big5',
+    cp1047    => 'cp1047',
+    euccn     => 'gb2312',
+    eucjp     => 'euc-jp',
+    euckr     => 'euc-kr',
+    gb2312    => 'gb2312',
+    gb2312raw => 'gb2312',
+    iso88591  => 'iso-latin-1',
+    iso88592  => 'iso-8859-2',
+    iso88595  => 'iso-8859-5',
+    iso88597  => 'iso-8859-7',
+    iso88599  => 'iso-8859-9',
+    iso885913 => 'iso-8859-13',
+    iso885915 => 'iso-8859-15',
+    koi8r     => 'koi8-r',
+    latin1    => 'iso-8859-1',
+    usascii   => 'us-ascii',
+    utf8      => 'utf-8',
+    utf16     => 'utf-16',
+    utf16be   => 'utf-16be',
+    utf16le   => 'utf-16le',
+);
+
+##############################################################################
+# Translation tables
+##############################################################################
+
+# The following table is adapted from Tom Christiansen's pod2man.  It is only
+# used with roff output.  It assumes that the standard preamble has already
+# been printed, since that's what defines all of the accent marks.  We really
+# want to do something better than this when *roff actually supports other
+# character sets itself, since these results are pretty poor.
+#
+# This only works in an ASCII world.  What to do in a non-ASCII world is very
+# unclear, so we just output what we get and hope for the best.
+my %ESCAPES;
+@ESCAPES{0xA0 .. 0xFF} = (
+    $NBSP, undef, undef, undef,            undef, undef, undef, undef,
+    undef, undef, undef, undef,            undef, $SHY,  undef, undef,
+
+    undef, undef, undef, undef,            undef, undef, undef, undef,
+    undef, undef, undef, undef,            undef, undef, undef, undef,
+
+    "A\\*`",  "A\\*'", "A\\*^", "A\\*~",   "A\\*:", "A\\*o", "\\*(Ae", "C\\*,",
+    "E\\*`",  "E\\*'", "E\\*^", "E\\*:",   "I\\*`", "I\\*'", "I\\*^",  "I\\*:",
+
+    "\\*(D-", "N\\*~", "O\\*`", "O\\*'",   "O\\*^", "O\\*~", "O\\*:",  undef,
+    "O\\*/",  "U\\*`", "U\\*'", "U\\*^",   "U\\*:", "Y\\*'", "\\*(Th", "\\*8",
+
+    "a\\*`",  "a\\*'", "a\\*^", "a\\*~",   "a\\*:", "a\\*o", "\\*(ae", "c\\*,",
+    "e\\*`",  "e\\*'", "e\\*^", "e\\*:",   "i\\*`", "i\\*'", "i\\*^",  "i\\*:",
+
+    "\\*(d-", "n\\*~", "o\\*`", "o\\*'",   "o\\*^", "o\\*~", "o\\*:",  undef,
+    "o\\*/" , "u\\*`", "u\\*'", "u\\*^",   "u\\*:", "y\\*'", "\\*(th", "y\\*:",
+) if ASCII;
+
+##############################################################################
+# Utility functions
+##############################################################################
+
+# Quote an argument to a macro.
+#
+# $arg - Intended argument to the macro
+#
+# Returns: $arg suitably escaped and quoted
+sub _quote_macro_argument {
+    my ($arg) = @_;
+    if (length($arg) > 0 && $arg !~ m{ [\s\"] }xms) {
+        return $arg;
+    }
+    $arg =~ s{ \" }{""}xmsg;
+    return qq("$arg");
+}
+
+# Returns whether the given encoding needs a call to Encode::encode.
+sub _needs_encode {
+    my ($encoding) = @_;
+    return $encoding ne 'roff' && $encoding ne 'groff';
+}
+
 ##############################################################################
 # Object initialization
 ##############################################################################
@@ -88,9 +174,6 @@ sub new {
     my $class = shift;
     my $self = $class->SUPER::new;
 
-    # Tell Pod::Simple not to handle S<> by automatically inserting &nbsp;.
-    $self->nbsp_for_S (1);
-
     # Tell Pod::Simple to keep whitespace whenever possible.
     if (my $preserve_whitespace = $self->can ('preserve_whitespace')) {
         $self->$preserve_whitespace (1);
@@ -109,63 +192,84 @@ sub new {
     # to put them in our object as hash keys and values.  This could cause
     # problems if we ever clash with Pod::Simple's own internal class
     # variables.
-    %$self = (%$self, @_);
+    my %opts = @_;
+    my @opts = map { ("opt_$_", $opts{$_}) } keys %opts;
+    %$self = (%$self, @opts);
+
+    # Pod::Simple uses encoding internally, so we need to store it as
+    # ENCODING.  Set the default to UTF-8 if not specified.
+    #
+    # Degrade to the old roff encoding if Encode is not available.
+    #
+    # Suppress the warning message when PERL_CORE is set, indicating this is
+    # running as part of the core Perl build.  Perl builds podlators (and all
+    # pure Perl modules) before Encode and other XS modules, so Encode won't
+    # yet be available.  Rely on the Perl core build to generate man pages
+    # later, after all the modules are available, so that UTF-8 handling will
+    # be correct.
+    my %options = @_;
+    if (defined $self->{opt_encoding}) {
+        $$self{ENCODING} = $self->{opt_encoding};
+    } elsif (ASCII) {
+        $$self{ENCODING} = 'UTF-8';
+    } else {
+        $$self{ENCODING} = 'groff';
+    }
+    if (_needs_encode($$self{ENCODING}) && !$HAS_ENCODE) {
+        if (!$ENV{PERL_CORE}) {
+            carp ('encoding requested but Encode module not available,'
+                    . ' falling back to groff escapes');
+        }
+        $$self{ENCODING} = 'groff';
+    }
 
     # Send errors to stderr if requested.
-    if ($$self{stderr} and not $$self{errors}) {
-        $$self{errors} = 'stderr';
+    if ($self->{opt_stderr} and not $self->{opt_errors}) {
+        $self->{opt_errors} = 'stderr';
     }
-    delete $$self{stderr};
+    delete $self->{opt_stderr};
 
     # Validate the errors parameter and act on it.
-    if (not defined $$self{errors}) {
-        $$self{errors} = 'pod';
-    }
-    if ($$self{errors} eq 'stderr' || $$self{errors} eq 'die') {
+    $self->{opt_errors} //= 'pod';
+    if ($self->{opt_errors} eq 'stderr' || $self->{opt_errors} eq 'die') {
         $self->no_errata_section (1);
         $self->complain_stderr (1);
-        if ($$self{errors} eq 'die') {
-            $$self{complain_die} = 1;
+        if ($self->{opt_errors} eq 'die') {
+            $self->{complain_die} = 1;
         }
-    } elsif ($$self{errors} eq 'pod') {
+    } elsif ($self->{opt_errors} eq 'pod') {
         $self->no_errata_section (0);
         $self->complain_stderr (0);
-    } elsif ($$self{errors} eq 'none') {
+    } elsif ($self->{opt_errors} eq 'none') {
         $self->no_errata_section (1);
         $self->no_whining (1);
     } else {
-        croak (qq(Invalid errors setting: "$$self{errors}"));
-    }
-    delete $$self{errors};
-
-    # Degrade back to non-utf8 if Encode is not available.
-    #
-    # Suppress the warning message when PERL_CORE is set, indicating this is
-    # running as part of the core Perl build.  Perl builds podlators (and all
-    # pure Perl modules) before Encode and other XS modules, so Encode won't
-    # yet be available.  Rely on the Perl core build to generate man pages
-    # later, after all the modules are available, so that UTF-8 handling will
-    # be correct.
-    if ($$self{utf8} and !$HAS_ENCODE) {
-        if (!$ENV{PERL_CORE}) {
-            carp ('utf8 mode requested but Encode module not available,'
-                    . ' falling back to non-utf8');
-        }
-        delete $$self{utf8};
+        croak (qq(Invalid errors setting: "$self->{opt_errors}"));
     }
+    delete $self->{opt_errors};
 
     # Initialize various other internal constants based on our arguments.
     $self->init_fonts;
     $self->init_quotes;
     $self->init_page;
 
-    # For right now, default to turning on all of the magic.
-    $$self{MAGIC_CPP}       = 1;
-    $$self{MAGIC_EMDASH}    = 1;
-    $$self{MAGIC_FUNC}      = 1;
-    $$self{MAGIC_MANREF}    = 1;
-    $$self{MAGIC_SMALLCAPS} = 1;
-    $$self{MAGIC_VARS}      = 1;
+    # Configure guesswork based on options.
+    my $guesswork = $self->{opt_guesswork} || q{};
+    my %guesswork = map { $_ => 1 } split(m{,}xms, $guesswork);
+    if (!%guesswork || $guesswork{all}) {
+        #<<<
+        $$self{GUESSWORK} = {
+            functions => 1,
+            manref    => 1,
+            quoting   => 1,
+            variables => 1,
+        };
+        #>>>
+    } elsif ($guesswork{none}) {
+        $$self{GUESSWORK} = {};
+    } else {
+        $$self{GUESSWORK} = {%guesswork};
+    }
 
     return $self;
 }
@@ -182,29 +286,41 @@ sub init_fonts {
 
     # Figure out the fixed-width font.  If user-supplied, make sure that they
     # are the right length.
-    for (qw/fixed fixedbold fixeditalic fixedbolditalic/) {
-        my $font = $$self{$_};
-        if (defined ($font) && (length ($font) < 1 || length ($font) > 2)) {
-            croak qq(roff font should be 1 or 2 chars, not "$font");
+    for (qw(fixed fixedbold fixeditalic fixedbolditalic)) {
+        my $font = $self->{"opt_$_"};
+        if (defined($font) && (length($font) < 1 || length($font) > 2)) {
+            croak(qq(roff font should be 1 or 2 chars, not "$font"));
         }
     }
 
     # Set the default fonts.  We can't be sure portably across different
     # implementations what fixed bold-italic may be called (if it's even
     # available), so default to just bold.
-    $$self{fixed}           ||= 'CW';
-    $$self{fixedbold}       ||= 'CB';
-    $$self{fixeditalic}     ||= 'CI';
-    $$self{fixedbolditalic} ||= 'CB';
+    #<<<
+    $self->{opt_fixed}           ||= 'CW';
+    $self->{opt_fixedbold}       ||= 'CB';
+    $self->{opt_fixeditalic}     ||= 'CI';
+    $self->{opt_fixedbolditalic} ||= 'CB';
+    #>>>
 
     # Set up a table of font escapes.  First number is fixed-width, second is
     # bold, third is italic.
-    $$self{FONTS} = { '000' => '\fR', '001' => '\fI',
-                      '010' => '\fB', '011' => '\f(BI',
-                      '100' => toescape ($$self{fixed}),
-                      '101' => toescape ($$self{fixeditalic}),
-                      '110' => toescape ($$self{fixedbold}),
-                      '111' => toescape ($$self{fixedbolditalic}) };
+    $self->{FONTS} = {
+        '000' => '\fR',
+        '001' => '\fI',
+        '010' => '\fB',
+        '011' => '\f(BI',
+        '100' => toescape($self->{opt_fixed}),
+        '101' => toescape($self->{opt_fixeditalic}),
+        '110' => toescape($self->{opt_fixedbold}),
+        '111' => toescape($self->{opt_fixedbolditalic}),
+    };
+
+    # Precalculate a regex that matches all fixed-width fonts, which will be
+    # used later by switchquotes.
+    my @fixedpat = map { quotemeta($self->{FONTS}{$_}) } qw(100 101 110 111);
+    my $fixedpat = join('|', @fixedpat);
+    $self->{FIXEDPAT} = qr{ $fixedpat }xms;
 }
 
 # Initialize the quotes that we'll be using for C<> text.  This requires some
@@ -215,32 +331,28 @@ sub init_quotes {
     my ($self) = (@_);
 
     # Handle the quotes option first, which sets both quotes at once.
-    $$self{quotes} ||= '"';
-    if ($$self{quotes} eq 'none') {
+    $self->{opt_quotes} ||= '"';
+    if ($self->{opt_quotes} eq 'none') {
         $$self{LQUOTE} = $$self{RQUOTE} = '';
-    } elsif (length ($$self{quotes}) == 1) {
-        $$self{LQUOTE} = $$self{RQUOTE} = $$self{quotes};
-    } elsif (length ($$self{quotes}) % 2 == 0) {
-        my $length = length ($$self{quotes}) / 2;
-        $$self{LQUOTE} = substr ($$self{quotes}, 0, $length);
-        $$self{RQUOTE} = substr ($$self{quotes}, $length);
+    } elsif (length ($self->{opt_quotes}) == 1) {
+        $$self{LQUOTE} = $$self{RQUOTE} = $self->{opt_quotes};
+    } elsif (length ($self->{opt_quotes}) % 2 == 0) {
+        my $length = length ($self->{opt_quotes}) / 2;
+        $$self{LQUOTE} = substr ($self->{opt_quotes}, 0, $length);
+        $$self{RQUOTE} = substr ($self->{opt_quotes}, $length);
     } else {
-        croak(qq(Invalid quote specification "$$self{quotes}"))
+        croak(qq(Invalid quote specification "$self->{opt_quotes}"))
     }
 
     # Now handle the lquote and rquote options.
-    if (defined $$self{lquote}) {
-        $$self{LQUOTE} = $$self{lquote} eq 'none' ? q{} : $$self{lquote};
+    if (defined($self->{opt_lquote})) {
+        $self->{opt_lquote} = q{} if $self->{opt_lquote} eq 'none';
+        $$self{LQUOTE} = $self->{opt_lquote};
+    }
+    if (defined $self->{opt_rquote}) {
+        $self->{opt_rquote} = q{} if $self->{opt_rquote} eq 'none';
+        $$self{RQUOTE} = $self->{opt_rquote};
     }
-    if (defined $$self{rquote}) {
-        $$self{RQUOTE} = $$self{rquote} eq 'none' ? q{} : $$self{rquote};
-    }
-
-    # Double the first quote; note that this should not be s///g as two double
-    # quotes is represented in *roff as three double quotes, not four.  Weird,
-    # I know.
-    $$self{LQUOTE} =~ s/\"/\"\"/;
-    $$self{RQUOTE} =~ s/\"/\"\"/;
 }
 
 # Initialize the page title information and indentation from our arguments.
@@ -254,17 +366,9 @@ sub init_page {
 
     # Set the defaults for page titles and indentation if the user didn't
     # override anything.
-    $$self{center} = 'User Contributed Perl Documentation'
-        unless defined $$self{center};
-    $$self{release} = 'perl v' . $version
-        unless defined $$self{release};
-    $$self{indent} = 4
-        unless defined $$self{indent};
-
-    # Double quotes in things that will be quoted.
-    for (qw/center release/) {
-        $$self{$_} =~ s/\"/\"\"/g if $$self{$_};
-    }
+    $self->{opt_center}  //= 'User Contributed Perl Documentation';
+    $self->{opt_release} //= 'perl v' . $version;
+    $self->{opt_indent}  //= 4;
 }
 
 ##############################################################################
@@ -289,7 +393,6 @@ sub init_page {
 # according to the current formatting instructions as we do.
 sub _handle_text {
     my ($self, $text) = @_;
-    DEBUG > 3 and print "== $text\n";
     my $tag = $$self{PENDING}[-1];
     $$tag[2] .= $self->format_text ($$tag[1], $text);
 }
@@ -308,7 +411,6 @@ sub method_for_element {
 # text and nested elements.  Otherwise, if start_element is defined, call it.
 sub _handle_element_start {
     my ($self, $element, $attrs) = @_;
-    DEBUG > 3 and print "++ $element (<", join ('> <', %$attrs), ">)\n";
     my $method = $self->method_for_element ($element);
 
     # If we have a command handler, we need to accumulate the contents of the
@@ -316,7 +418,6 @@ sub _handle_element_start {
     # <Para> and the formatting codes so that IN_NAME isn't still set for the
     # first heading after the NAME heading.
     if ($self->can ("cmd_$method")) {
-        DEBUG > 2 and print "<$element> starts saving a tag\n";
         $$self{IN_NAME} = 0 if ($element ne 'Para' && length ($element) > 1);
 
         # How we're going to format embedded text blocks depends on the tag
@@ -328,11 +429,8 @@ sub _handle_element_start {
             %{ $FORMATTING{$element} || {} },
         };
         push (@{ $$self{PENDING} }, [ $attrs, $formatting, '' ]);
-        DEBUG > 4 and print "Pending: [", pretty ($$self{PENDING}), "]\n";
     } elsif (my $start_method = $self->can ("start_$method")) {
         $self->$start_method ($attrs, '');
-    } else {
-        DEBUG > 2 and print "No $method start method, skipping\n";
     }
 }
 
@@ -341,16 +439,12 @@ sub _handle_element_start {
 # an end_ method for the element, call that.
 sub _handle_element_end {
     my ($self, $element) = @_;
-    DEBUG > 3 and print "-- $element\n";
     my $method = $self->method_for_element ($element);
 
     # If we have a command handler, pull off the pending text and pass it to
     # the handler along with the saved attribute hash.
     if (my $cmd_method = $self->can ("cmd_$method")) {
-        DEBUG > 2 and print "</$element> stops saving a tag\n";
         my $tag = pop @{ $$self{PENDING} };
-        DEBUG > 4 and print "Popped: [", pretty ($tag), "]\n";
-        DEBUG > 4 and print "Pending: [", pretty ($$self{PENDING}), "]\n";
         my $text = $self->$cmd_method ($$tag[0], $$tag[2]);
         if (defined $text) {
             if (@{ $$self{PENDING} } > 1) {
@@ -361,8 +455,6 @@ sub _handle_element_end {
         }
     } elsif (my $end_method = $self->can ("end_$method")) {
         $self->$end_method ();
-    } else {
-        DEBUG > 2 and print "No $method end method, skipping\n";
     }
 }
 
@@ -381,31 +473,40 @@ sub format_text {
     my $literal = $$options{literal};
 
     # Cleanup just tidies up a few things, telling *roff that the hyphens are
-    # hard, putting a bit of space between consecutive underscores, and
-    # escaping backslashes.  Be careful not to mangle our character
-    # translations by doing this before processing character translation.
+    # hard, putting a bit of space between consecutive underscores, escaping
+    # backslashes, and converting zero-width spaces to zero-width break
+    # points.
     if ($cleanup) {
         $text =~ s/\\/\\e/g;
         $text =~ s/-/\\-/g;
         $text =~ s/_(?=_)/_\\|/g;
+        $text =~ s/\x{200B}/\\:/g;
     }
 
-    # Normally we do character translation, but we won't even do that in
-    # <Data> blocks or if UTF-8 output is desired.
-    if ($convert && !$$self{utf8} && ASCII) {
-        $text =~ s/([^\x00-\x7F])/$ESCAPES{ord ($1)} || "X"/eg;
+    # Except in <Data> blocks, if groff or roff encoding is requested and
+    # we're in an ASCII environment, do the encoding.  For EBCDIC, we just
+    # write what we get and hope for the best.  Leave non-breaking spaces and
+    # soft hyphens alone; we'll convert those at the last minute.
+    if ($convert) {
+        if (ASCII) {
+            if ($$self{ENCODING} eq 'groff') {
+                $text =~ s{ ([^\x00-\x7F\xA0\xAD]) }{
+                    '\\[u' . sprintf('%04X', ord($1)) . ']'
+                }xmsge;
+            } elsif ($$self{ENCODING} eq 'roff') {
+                $text =~ s/([^\x00-\x7F\xA0\xAD])/$ESCAPES{ord ($1)} || "X"/eg;
+            }
+        }
     }
 
     # Ensure that *roff doesn't convert literal quotes to UTF-8 single quotes,
-    # but don't mess up our accept escapes.
+    # but don't mess up accent escapes.
     if ($literal) {
         $text =~ s/(?<!\\\*)\'/\\*\(Aq/g;
         $text =~ s/(?<!\\\*)\`/\\\`/g;
     }
 
-    # If guesswork is asked for, do that.  This involves more substantial
-    # formatting based on various heuristics that may only be appropriate for
-    # particular documents.
+    # If guesswork is is viable for this block, do that.
     if ($guesswork) {
         $text = $self->guesswork ($text);
     }
@@ -420,31 +521,45 @@ sub quote_literal {
     my $self = shift;
     local $_ = shift;
 
+    # If in NAME section, just return an ASCII quoted string to avoid
+    # confusing tools like whatis.
+    if ($$self{IN_NAME}) {
+        return $self->{LQUOTE} . $_ . $self->{RQUOTE};
+    }
+
     # A regex that matches the portion of a variable reference that's the
     # array or hash index, separated out just because we want to use it in
     # several places in the following regex.
-    my $index = '(?: \[.*\] | \{.*\} )?';
-
-    # If in NAME section, just return an ASCII quoted string to avoid
-    # confusing tools like whatis.
-    return qq{"$_"} if $$self{IN_NAME};
+    my $index = '(?: \[[^]]+\] | \{[^}]+\} )?';
 
     # Check for things that we don't want to quote, and if we find any of
     # them, return the string with just a font change and no quoting.
+    #
+    # Traditionally, Pod::Man has not quoted Perl variables, functions,
+    # numbers, or hex constants, but this is not always desirable.  Make this
+    # optional on the quoting guesswork flag.
+    my $extra = qr{(?!)}xms;    # never matches
+    if ($$self{GUESSWORK}{quoting}) {
+        $extra = qr{
+             \$+ [\#^]? \S $index                    # special ($^F, $")
+           | [\$\@%&*]+ \#? [:\'\w]+ $index          # plain var or func
+           | [\$\@%&*]* [:\'\w]+
+             (?: \\-> )? \(\s*[^\s,\)]*\s*\)         # 0/1-arg func call
+           | (?: [+] || \\- )? ( \d[\d.]* | \.\d+ )
+             (?: [eE] (?: [+] || \\- )? \d+ )?       # a number
+           | 0x [a-fA-F\d]+                          # a hex constant
+         }xms;
+    }
     m{
       ^\s*
       (?:
-         ( [\'\`\"] ) .* \1                             # already quoted
-       | \\\*\(Aq .* \\\*\(Aq                           # quoted and escaped
-       | \\?\` .* ( \' | \\\*\(Aq )                     # `quoted'
-       | \$+ [\#^]? \S $index                           # special ($^Foo, $")
-       | [\$\@%&*]+ \#? [:\'\w]+ $index                 # plain var or func
-       | [\$\@%&*]* [:\'\w]+ (?: -> )? \(\s*[^\s,]\s*\) # 0/1-arg func call
-       | [-+]? ( \d[\d.]* | \.\d+ ) (?: [eE][-+]?\d+ )? # a number
-       | 0x [a-fA-F\d]+                                 # a hex constant
+         ( [\'\"] ) .* \1                    # already quoted
+       | \\\*\(Aq .* \\\*\(Aq                # quoted and escaped
+       | \\?\` .* ( \' | \\?\` | \\\*\(Aq )  # `quoted' or `quoted`
+       | $extra
       )
       \s*\z
-     }xso and return '\f(FS' . $_ . '\f(FE';
+     }xms and return '\f(FS' . $_ . '\f(FE';
 
     # If we didn't return, go ahead and quote the text.
     return '\f(FS\*(C`' . $_ . "\\*(C'\\f(FE";
@@ -453,10 +568,8 @@ sub quote_literal {
 # Takes a text block to perform guesswork on.  Returns the text block with
 # formatting codes added.  This is the code that marks up various Perl
 # constructs and things commonly used in man pages without requiring the user
-# to add any explicit markup, and is applied to all non-literal text.  We're
-# guaranteed that the text we're applying guesswork to does not contain any
-# *roff formatting codes.  Note that the inserted font sequences must be
-# treated later with mapfonts or textmapfonts.
+# to add any explicit markup, and is applied to all non-literal text.  Note
+# that the inserted font sequences must be treated later with mapfonts.
 #
 # This method is very fragile, both in the regular expressions it uses and in
 # the ordering of those modifications.  Care and testing is required when
@@ -464,7 +577,6 @@ sub quote_literal {
 sub guesswork {
     my $self = shift;
     local $_ = shift;
-    DEBUG > 5 and print "   Guesswork called on [$_]\n";
 
     # By the time we reach this point, all hyphens will be escaped by adding a
     # backslash.  We want to undo that escaping if they're part of regular
@@ -475,9 +587,9 @@ sub guesswork {
     # Note that this is not user-controllable; we pretty much have to do this
     # transformation or *roff will mangle the output in unacceptable ways.
     s{
-        ( (?:\G|^|\s) [\(\"]* [a-zA-Z] ) ( \\- )?
+        ( (?:\G|^|\s|$NBSP) [\(\"]* [a-zA-Z] ) ( \\- )?
         ( (?: [a-zA-Z\']+ \\-)+ )
-        ( [a-zA-Z\']+ ) (?= [\)\".?!,;:]* (?:\s|\Z|\\\ ) )
+        ( [a-zA-Z\']+ ) (?= [\)\".?!,;:]* (?:\s|$NBSP|\Z|\\\ ) )
         \b
     } {
         my ($prefix, $hyphen, $main, $suffix) = ($1, $2, $3, $4);
@@ -486,52 +598,17 @@ sub guesswork {
         $prefix . $hyphen . $main . $suffix;
     }egx;
 
-    # Translate "--" into a real em-dash if it's used like one.  This means
-    # that it's either surrounded by whitespace, it follows a regular word, or
-    # it occurs between two regular words.
-    if ($$self{MAGIC_EMDASH}) {
-        s{          (\s) \\-\\- (\s)                } { $1 . '\*(--' . $2 }egx;
-        s{ (\b[a-zA-Z]+) \\-\\- (\s|\Z|[a-zA-Z]+\b) } { $1 . '\*(--' . $2 }egx;
-    }
-
-    # Make words in all-caps a little bit smaller; they look better that way.
-    # However, we don't want to change Perl code (like @ARGV), nor do we want
-    # to fix the MIME in MIME-Version since it looks weird with the
-    # full-height V.
-    #
-    # We change only a string of all caps (2) either at the beginning of the
-    # line or following regular punctuation (like quotes) or whitespace (1),
-    # and followed by either similar punctuation, an em-dash, or the end of
-    # the line (3).
-    #
-    # Allow the text we're changing to small caps to include double quotes,
-    # commas, newlines, and periods as long as it doesn't otherwise interrupt
-    # the string of small caps and still fits the criteria.  This lets us turn
-    # entire warranty disclaimers in man page output into small caps.
-    if ($$self{MAGIC_SMALLCAPS}) {
-        s{
-            ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ]  )                           # (1)
-            ( [A-Z] [A-Z] (?: \s? [/A-Z+:\d_\$&] | \\- | \s? [.,\"] )* )  # (2)
-            (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ )            # (3)
-        } {
-            $1 . '\s-1' . $2 . '\s0'
-        }egx;
-    }
-
-    # Note that from this point forward, we have to adjust for \s-1 and \s-0
-    # strings inserted around things that we've made small-caps if later
-    # transforms should work on those strings.
-
     # Embolden functions in the form func(), including functions that are in
-    # all capitals, but don't embolden if there's anything between the parens.
+    # all capitals, but don't embolden if there's anything inside the parens.
     # The function must start with an alphabetic character or underscore and
     # then consist of word characters or colons.
-    if ($$self{MAGIC_FUNC}) {
+    if ($$self{GUESSWORK}{functions}) {
         s{
-            ( \b | \\s-1 )
-            ( [A-Za-z_] ([:\w] | \\s-?[01])+ \(\) )
+            (?<! \\ )
+            \b
+            ( [A-Za-z_] [:\w]+ \(\) )
         } {
-            $1 . '\f(BS' . $2 . '\f(BE'
+            '\f(BS' . $1 . '\f(BE'
         }egx;
     }
 
@@ -542,21 +619,21 @@ sub guesswork {
     # configuration file man pages), or colons, and n is a single digit,
     # optionally followed by some number of lowercase letters.  Note that this
     # does not recognize man page references like perl(l) or socket(3SOCKET).
-    if ($$self{MAGIC_MANREF}) {
+    if ($$self{GUESSWORK}{manref}) {
         s{
-            ( \b | \\s-1 )
-            (?<! \\ )                                   # rule out \s0(1)
-            ( [A-Za-z_] (?:[.:\w] | \\- | \\s-?[01])+ )
+            \b
+            (?<! \\ )                                   # rule out \e0(1)
+            ( [A-Za-z_] (?:[.:\w] | \\-)+ )
             ( \( \d [a-z]* \) )
         } {
-            $1 . '\f(BS' . $2 . '\f(BE\|' . $3
+            '\f(BS' . $1 . '\f(BE\|' . $2
         }egx;
     }
 
     # Convert simple Perl variable references to a fixed-width font.  Be
     # careful not to convert functions, though; there are too many subtleties
     # with them to want to perform this transformation.
-    if ($$self{MAGIC_VARS}) {
+    if ($$self{GUESSWORK}{variables}) {
         s{
            ( ^ | \s+ )
            ( [\$\@%] [\w:]+ )
@@ -566,19 +643,7 @@ sub guesswork {
         }egx;
     }
 
-    # Fix up double quotes.  Unfortunately, we miss this transformation if the
-    # quoted text contains any code with formatting codes and there's not much
-    # we can effectively do about that, which makes it somewhat unclear if
-    # this is really a good idea.
-    s{ \" ([^\"]+) \" } { '\*(L"' . $1 . '\*(R"' }egx;
-
-    # Make C++ into \*(C+, which is a squinched version.
-    if ($$self{MAGIC_CPP}) {
-        s{ \b C\+\+ } {\\*\(C+}gx;
-    }
-
     # Done.
-    DEBUG > 5 and print "   Guesswork returning [$_]\n";
     return $_;
 }
 
@@ -592,111 +657,106 @@ sub guesswork {
 # the right start and end codes.
 #
 # We add this level of complexity because the old pod2man didn't get code like
-# B<someI<thing> else> right; after I<> it switched back to normal text rather
-# than bold.  We take care of this by using variables that state whether bold,
-# italic, or fixed are turned on as a combined pointer to our current font
-# sequence, and set each to the number of current nestings of start tags for
-# that font.
+# B<< someI<thing> else>> right.  After I<> it switched back to normal text
+# rather than bold.  We take care of this by using variables that state
+# whether bold, italic, or fixed are turned on as a combined pointer to our
+# current font sequence, and set each to the number of current nestings of
+# start tags for that font.
+#
+# The base font must be either \fP or \fR.  \fP changes to the previous font,
+# but only one previous font is kept.  Unfortunately, there is a bug in
+# Solaris 2.6 nroff (not present in GNU groff) where the sequence
+# \fB\fP\f(CW\fP leaves the font set to B rather than R, presumably because
+# \f(CW doesn't actually do a font change.  Because of this, we prefer to use
+# \fR where possible.
+#
+# Unfortunately, this isn't possible for arguments to heading macros, since
+# there we don't know what the outside level font is.  In that case, arrange
+# things so that the outside font is always the "previous" font and end with
+# \fP instead of \fR.  Idea from Zack Weinberg.
 #
-# \fP changes to the previous font, but only one previous font is kept.  We
-# don't know what the outside level font is; normally it's R, but if we're
-# inside a heading it could be something else.  So arrange things so that the
-# outside font is always the "previous" font and end with \fP instead of \fR.
-# Idea from Zack Weinberg.
+# This function used to be much simpler outside of macro arguments because it
+# went directly from \fB to \f(CW and relied on \f(CW clearing bold since it
+# wasn't \f(CB.  Unfortunately, while this works for mandoc, this is not how
+# groff works; \fBfoo\f(CWbar still prints bar in bold.  Therefore, we force
+# the font back to the base font before each font change.
 sub mapfonts {
-    my ($self, $text) = @_;
+    my ($self, $text, $base) = @_;
+
+    # The closure used to process each font escape, expected to be called from
+    # the right-hand side of an s/// expression.
     my ($fixed, $bold, $italic) = (0, 0, 0);
     my %magic = (F => \$fixed, B => \$bold, I => \$italic);
     my $last = '\fR';
-    $text =~ s<
-        \\f\((.)(.)
-    > <
-        my $sequence = '';
-        my $f;
-        if ($last ne '\fR') { $sequence = '\fP' }
-        ${ $magic{$1} } += ($2 eq 'S') ? 1 : -1;
-        $f = $$self{FONTS}{ ($fixed && 1) . ($bold && 1) . ($italic && 1) };
-        if ($f eq $last) {
-            '';
-        } else {
-            if ($f ne '\fR') { $sequence .= $f }
-            $last = $f;
-            $sequence;
+    my $process = sub {
+        my ($style, $start_stop) = @_;
+        my $sequence = ($last ne '\fR') ? $base : q{};
+        ${ $magic{$style} } += ($start_stop eq 'S') ? 1 : -1;
+        my $f = $self->{FONTS}{($fixed && 1) . ($bold && 1) . ($italic && 1)};
+        return q{} if ($f eq $last);
+        if ($f ne '\fR') {
+            $sequence .= $f;
         }
-    >gxe;
-    return $text;
-}
+        $last = $f;
+        return $sequence;
+    };
+
+    # Now, do the actual work.
+    $text =~ s{ \\f\((.)(.) }{$process->($1, $2)}xmsge;
+
+    # We can do a bit of cleanup by collapsing sequences like \fR\fB\fR\fI
+    # into just \fI.
+    $text =~ s{ (?: \\fR )? (?: \\f (.|\(..) \\fR )+ }{\\fR}xms;
 
-# Unfortunately, there is a bug in Solaris 2.6 nroff (not present in GNU
-# groff) where the sequence \fB\fP\f(CW\fP leaves the font set to B rather
-# than R, presumably because \f(CW doesn't actually do a font change.  To work
-# around this, use a separate textmapfonts for text blocks where the default
-# font is always R and only use the smart mapfonts for headings.
-sub textmapfonts {
-    my ($self, $text) = @_;
-    my ($fixed, $bold, $italic) = (0, 0, 0);
-    my %magic = (F => \$fixed, B => \$bold, I => \$italic);
-    $text =~ s<
-        \\f\((.)(.)
-    > <
-        ${ $magic{$1} } += ($2 eq 'S') ? 1 : -1;
-        $$self{FONTS}{ ($fixed && 1) . ($bold && 1) . ($italic && 1) };
-    >gxe;
     return $text;
 }
 
 # Given a command and a single argument that may or may not contain double
-# quotes, handle double-quote formatting for it.  If there are no double
-# quotes, just return the command followed by the argument in double quotes.
-# If there are double quotes, use an if statement to test for nroff, and for
-# nroff output the command followed by the argument in double quotes with
-# embedded double quotes doubled.  For other formatters, remap paired double
-# quotes to LQUOTE and RQUOTE.
+# quotes and fixed-width text, handle double-quote formatting for it.  If
+# there is no fixed-width text, just return the command followed by the
+# argument with proper quoting.  If there is fixed-width text, work around a
+# Solaris nroff bug with fixed-width fonts by converting fixed-width to
+# regular fonts (nroff sees no difference).
 sub switchquotes {
     my ($self, $command, $text, $extra) = @_;
-    $text =~ s/\\\*\([LR]\"/\"/g;
 
-    # We also have to deal with \*C` and \*C', which are used to add the
-    # quotes around C<> text, since they may expand to " and if they do this
-    # confuses the .SH macros and the like no end.  Expand them ourselves.
-    # Also separate troff from nroff if there are any fixed-width fonts in use
-    # to work around problems with Solaris nroff.
-    my $c_is_quote = ($$self{LQUOTE} =~ /\"/) || ($$self{RQUOTE} =~ /\"/);
-    my $fixedpat = join '|', @{ $$self{FONTS} }{'100', '101', '110', '111'};
-    $fixedpat =~ s/\\/\\\\/g;
-    $fixedpat =~ s/\(/\\\(/g;
-    if ($text =~ m/\"/ || $text =~ m/$fixedpat/) {
-        $text =~ s/\"/\"\"/g;
+    # Separate troff from nroff if there are any fixed-width fonts in use to
+    # work around problems with Solaris nroff.
+    if ($text =~ $self->{FIXEDPAT}) {
         my $nroff = $text;
         my $troff = $text;
-        $troff =~ s/\"\"([^\"]*)\"\"/\`\`$1\'\'/g;
-        if ($c_is_quote and $text =~ m/\\\*\(C[\'\`]/) {
-            $nroff =~ s/\\\*\(C\`/$$self{LQUOTE}/g;
-            $nroff =~ s/\\\*\(C\'/$$self{RQUOTE}/g;
-            $troff =~ s/\\\*\(C[\'\`]//g;
-        }
-        $nroff = qq("$nroff") . ($extra ? " $extra" : '');
-        $troff = qq("$troff") . ($extra ? " $extra" : '');
 
         # Work around the Solaris nroff bug where \f(CW\fP leaves the font set
         # to Roman rather than the actual previous font when used in headings.
         # troff output may still be broken, but at least we can fix nroff by
         # just switching the font changes to the non-fixed versions.
-        my $font_end = "(?:\\f[PR]|\Q$$self{FONTS}{100}\E)";
-        $nroff =~ s/\Q$$self{FONTS}{100}\E(.*?)\\f([PR])/$1/g;
-        $nroff =~ s/\Q$$self{FONTS}{101}\E(.*?)$font_end/\\fI$1\\fP/g;
-        $nroff =~ s/\Q$$self{FONTS}{110}\E(.*?)$font_end/\\fB$1\\fP/g;
-        $nroff =~ s/\Q$$self{FONTS}{111}\E(.*?)$font_end/\\f\(BI$1\\fP/g;
+        my $font_end = qr{ (?: \\f[PR] | \Q$self->{FONTS}{100}\E ) }xms;
+        $nroff =~ s{\Q$self->{FONTS}{100}\E(.*?)\\f([PR])}{$1}xmsg;
+        $nroff =~ s{\Q$self->{FONTS}{101}\E}{\\fI}xmsg;
+        $nroff =~ s{\Q$self->{FONTS}{110}\E}{\\fB}xmsg;
+        $nroff =~ s{\Q$self->{FONTS}{111}\E}{\\f\(BI}xmsg;
+
+        # We have to deal with \*C` and \*C', which are used to add the quotes
+        # around C<> text, since they may expand to " and if they do this
+        # confuses the .SH macros and the like no end.  Expand them ourselves.
+        my $c_is_quote = index("$self->{LQUOTE}$self->{RQUOTE}", qq(\")) != -1;
+        if ($c_is_quote && $text =~ m{ \\[*]\(C[\'\`] }xms) {
+            $nroff =~ s{ \\[*]\(C\` }{$self->{LQUOTE}}xmsg;
+            $nroff =~ s{ \\[*]\(C\' }{$self->{RQUOTE}}xmsg;
+            $troff =~ s{ \\[*]\(C[\'\`] }{}xmsg;
+        }
 
         # Now finally output the command.  Bother with .ie only if the nroff
         # and troff output aren't the same.
+        $nroff = _quote_macro_argument($nroff) . ($extra ? " $extra" : '');
+        $troff = _quote_macro_argument($troff) . ($extra ? " $extra" : '');
         if ($nroff ne $troff) {
             return ".ie n $command $nroff\n.el $command $troff\n";
         } else {
             return "$command $nroff\n";
         }
     } else {
-        $text = qq("$text") . ($extra ? " $extra" : '');
+        $text = _quote_macro_argument($text) . ($extra ? " $extra" : '');
         return "$command $text\n";
     }
 }
@@ -761,10 +821,22 @@ sub outindex {
 # Output some text, without any additional changes.
 sub output {
     my ($self, @text) = @_;
-    if ($$self{ENCODE}) {
-        print { $$self{output_fh} } Encode::encode ('UTF-8', join ('', @text));
+    my $text = join('', @text);
+    $text =~ s{$NBSP}{\\ }g;
+    $text =~ s{$SHY}{\\%}g;
+
+    if ($$self{ENCODE} && _needs_encode($$self{ENCODING})) {
+        my $check = sub {
+            my ($char) = @_;
+            my $display = '"\x{' . hex($char) . '}"';
+            my $error = "$display does not map to $$self{ENCODING}";
+            $self->whine ($self->line_count(), $error);
+            return Encode::encode ($$self{ENCODING}, chr($char));
+        };
+        my $output = Encode::encode ($$self{ENCODING}, $text, $check);
+        print { $$self{output_fh} } $output;
     } else {
-        print { $$self{output_fh} } @text;
+        print { $$self{output_fh} } $text;
     }
 }
 
@@ -777,21 +849,20 @@ sub output {
 sub start_document {
     my ($self, $attrs) = @_;
     if ($$attrs{contentless} && !$$self{ALWAYS_EMIT_SOMETHING}) {
-        DEBUG and print "Document is contentless\n";
         $$self{CONTENTLESS} = 1;
     } else {
         delete $$self{CONTENTLESS};
     }
 
-    # When UTF-8 output is set, check whether our output file handle already
-    # has a PerlIO encoding layer set.  If it does not, we'll need to encode
-    # our output before printing it (handled in the output() sub).  Wrap the
-    # check in an eval to handle versions of Perl without PerlIO.
+    # When an encoding is requested, check whether our output file handle
+    # already has a PerlIO encoding layer set.  If it does not, we'll need to
+    # encode our output before printing it (handled in the output() sub).
+    # Wrap the check in an eval to handle versions of Perl without PerlIO.
     #
     # PerlIO::get_layers still requires its argument be a glob, so coerce the
     # file handle to a glob.
     $$self{ENCODE} = 0;
-    if ($$self{utf8}) {
+    if ($$self{ENCODING}) {
         $$self{ENCODE} = 1;
         eval {
             my @options = (output => 1, details => 1);
@@ -806,15 +877,15 @@ sub start_document {
     # document was content-free.
     if (!$$self{CONTENTLESS}) {
         my ($name, $section);
-        if (defined $$self{name}) {
-            $name = $$self{name};
-            $section = $$self{section} || 1;
+        if (defined $self->{opt_name}) {
+            $name = $self->{opt_name};
+            $section = $self->{opt_section} || 1;
         } else {
             ($name, $section) = $self->devise_title;
         }
-        my $date = defined($$self{date}) ? $$self{date} : $self->devise_date;
+        my $date = $self->{opt_date} // $self->devise_date();
         $self->preamble ($name, $section, $date)
-            unless $self->bare_output or DEBUG > 9;
+            unless $self->bare_output;
     }
 
     # Initialize a few per-document variables.
@@ -839,7 +910,6 @@ sub end_document {
     }
     return if $self->bare_output;
     return if ($$self{CONTENTLESS} && !$$self{ALWAYS_EMIT_SOMETHING});
-    $self->output (q(.\" [End document]) . "\n") if DEBUG;
 }
 
 # Try to figure out the name and section from the file name and return them as
@@ -848,8 +918,8 @@ sub end_document {
 sub devise_title {
     my ($self) = @_;
     my $name = $self->source_filename || '';
-    my $section = $$self{section} || 1;
-    $section = 3 if (!$$self{section} && $name =~ /\.pm\z/i);
+    my $section = $self->{opt_section} || 1;
+    $section = 3 if (!$self->{opt_section} && $name =~ /\.pm\z/i);
     $name =~ s/\.p(od|[lm])\z//i;
 
     # If Pod::Parser gave us an IO::File reference as the source file name,
@@ -983,34 +1053,53 @@ sub devise_date {
 # module, but this order is correct for both Solaris and Linux.
 sub preamble {
     my ($self, $name, $section, $date) = @_;
-    my $preamble = $self->preamble_template (!$$self{utf8});
-
-    # Build the index line and make sure that it will be syntactically valid.
-    my $index = "$name $section";
-    $index =~ s/\"/\"\"/g;
+    my $preamble = $self->preamble_template();
 
-    # If name or section contain spaces, quote them (section really never
-    # should, but we may as well be cautious).
-    for ($name, $section) {
-        if (/\s/) {
-            s/\"/\"\"/g;
-            $_ = '"' . $_ . '"';
+    # groff's preconv script will use this line to correctly determine the
+    # input encoding if the encoding is one of the ones it recognizes.  It
+    # must be the first or second line.
+    #
+    # If the output encoding is some version of Unicode, we could also add a
+    # Unicode Byte Order Mark to the start of the file, but the BOM is now
+    # deprecated and I am concerned that may break a *roff implementation that
+    # might otherwise cope with Unicode.  Revisit this if someone files a bug
+    # report about it.
+    if (_needs_encode($$self{ENCODING})) {
+        my $normalized = lc($$self{ENCODING});
+        $normalized =~ s{-}{}g;
+        my $coding = $ENCODINGS{$normalized} || lc($$self{ENCODING});
+        if ($coding ne 'us-ascii') {
+            $self->output(qq{.\\\" -*- mode: troff; coding: $coding -*-\n});
         }
     }
 
-    # Double quotes in date, since it will be quoted.
-    $date =~ s/\"/\"\"/g;
-
-    # Substitute into the preamble the configuration options.
-    $preamble =~ s/\@CFONT\@/$$self{fixed}/;
-    $preamble =~ s/\@LQUOTE\@/$$self{LQUOTE}/;
-    $preamble =~ s/\@RQUOTE\@/$$self{RQUOTE}/;
-    chomp $preamble;
+    # Substitute into the preamble the configuration options.  Because it's
+    # used as the argument to defining a string, any leading double quote (but
+    # no other double quotes) in LQUOTE and RQUOTE has to be doubled.
+    $preamble =~ s{ [@] CFONT [@] }{$self->{opt_fixed}}xms;
+    my $lquote = $self->{LQUOTE};
+    my $rquote = $self->{RQUOTE};
+    $lquote =~ s{ \A \" }{""}xms;
+    $rquote =~ s{ \A \" }{""}xms;
+    $preamble =~ s{ [@] LQUOTE [@] }{$lquote}xms;
+    $preamble =~ s{ [@] RQUOTE [@] }{$rquote}xms;
+    chomp($preamble);
 
     # Get the version information.
-    my $version = $self->version_report;
+    my $version = $self->version_report();
+
+    # Build the index line and make sure that it will be syntactically valid.
+    my $index = _quote_macro_argument("$name $section");
 
-    # Finally output everything.
+    # Quote the arguments to the .TH macro.  (Section should never require
+    # this, but we may as well be cautious.)
+    $name = _quote_macro_argument($name);
+    $section = _quote_macro_argument($section);
+    $date = _quote_macro_argument($date);
+    my $center = _quote_macro_argument($self->{opt_center});
+    my $release = _quote_macro_argument($self->{opt_release});
+
+    # Output the majority of the preamble.
     $self->output (<<"----END OF HEADER----");
 .\\" Automatically generated by $version
 .\\"
@@ -1019,14 +1108,19 @@ sub preamble {
 $preamble
 .\\" ========================================================================
 .\\"
-.IX Title "$index"
-.TH $name $section "$date" "$$self{release}" "$$self{center}"
+.IX Title $index
+.TH $name $section $date $release $center
 .\\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\\" way too many mistakes in technical documents.
 .if n .ad l
 .nh
 ----END OF HEADER----
-    $self->output (".\\\" [End of preamble]\n") if DEBUG;
+
+    # If the language was specified, output the language configuration.
+    if ($self->{opt_language}) {
+        $self->output(".mso $self->{opt_language}.tmac\n");
+        $self->output(".hla $self->{opt_language}\n");
+    }
 }
 
 ##############################################################################
@@ -1051,11 +1145,6 @@ sub cmd_para {
         $$self{SHIFTWAIT} = 0;
     }
 
-    # Add the line number for debugging, but not in the NAME section just in
-    # case the comment would confuse apropos.
-    $self->output (".\\\" [At source line $line]\n")
-        if defined ($line) && DEBUG && !$$self{IN_NAME};
-
     # Force exactly one newline at the end and strip unwanted trailing
     # whitespace at the end, but leave "\ " backslashed space from an S< > at
     # the end of a line.  Reverse the text first, to avoid having to scan the
@@ -1065,8 +1154,8 @@ sub cmd_para {
     $text = reverse $text;
 
     # Output the paragraph.
-    $self->output ($self->protect ($self->textmapfonts ($text)));
-    $self->outindex;
+    $self->output($self->protect($self->mapfonts($text, '\fR')));
+    $self->outindex();
     $$self{NEEDSPACE} = 1;
     return '';
 }
@@ -1078,45 +1167,44 @@ sub cmd_verbatim {
     my ($self, $attrs, $text) = @_;
 
     # Ignore an empty verbatim paragraph.
-    return unless $text =~ /\S/;
+    return if $text !~ m{ \S }xms;
 
     # Force exactly one newline at the end and strip unwanted trailing
-    # whitespace at the end.  Reverse the text first, to avoid having to scan
-    # the entire paragraph.
-    $text = reverse $text;
-    $text =~ s/\A\s*/\n/;
-    $text = reverse $text;
+    # whitespace at the end.
+    $text =~ s{ \s* \z }{\n}xms;
 
     # Get a count of the number of lines before the first blank line, which
     # we'll pass to .Vb as its parameter.  This tells *roff to keep that many
     # lines together.  We don't want to tell *roff to keep huge blocks
     # together.
-    my @lines = split (/\n/, $text);
+    my @lines = split (m{ \n }xms, $text);
     my $unbroken = 0;
-    for (@lines) {
-        last if /^\s*$/;
+    for my $line (@lines) {
+        last if $line =~ m{ \A \s* \z }xms;
         $unbroken++;
     }
-    $unbroken = 10 if ($unbroken > 12 && !$$self{MAGIC_VNOPAGEBREAK_LIMIT});
+    if ($unbroken > 12) {
+        $unbroken = 10;
+    }
 
-    # Prepend a null token to each line.
-    $text =~ s/^/\\&/gm;
+    # Prepend a null token to each line to preserve indentation.
+    $text =~ s{ ^ }{\\&}xmsg;
 
     # Output the results.
-    $self->makespace;
-    $self->output (".Vb $unbroken\n$text.Ve\n");
+    $self->makespace();
+    $self->output(".Vb $unbroken\n$text.Ve\n");
     $$self{NEEDSPACE} = 1;
-    return '';
+    return q{};
 }
 
 # Handle literal text (produced by =for and similar constructs).  Just output
 # it with the minimum of changes.
 sub cmd_data {
     my ($self, $attrs, $text) = @_;
-    $text =~ s/^\n+//;
-    $text =~ s/\n{0,2}$/\n/;
-    $self->output ($text);
-    return '';
+    $text =~ s{ \A \n+ }{}xms;
+    $text =~ s{ \n{0,2} \z }{\n}xms;
+    $self->output($text);
+    return q{};
 }
 
 ##############################################################################
@@ -1138,9 +1226,6 @@ sub heading_common {
         $self->output (".PD\n");
     }
 
-    # Output the current source line.
-    $self->output ( ".\\\" [At source line $line]\n" )
-        if defined ($line) && DEBUG;
     return $text;
 }
 
@@ -1153,7 +1238,7 @@ sub cmd_head1 {
     $text =~ s/\\s-?\d//g;
     $text = $self->heading_common ($text, $$attrs{start_line});
     my $isname = ($text eq 'NAME' || $text =~ /\(NAME\)/);
-    $self->output ($self->switchquotes ('.SH', $self->mapfonts ($text)));
+    $self->output($self->switchquotes('.SH', $self->mapfonts($text, '\fP')));
     $self->outindex ('Header', $text) unless $isname;
     $$self{NEEDSPACE} = 0;
     $$self{IN_NAME} = $isname;
@@ -1164,7 +1249,7 @@ sub cmd_head1 {
 sub cmd_head2 {
     my ($self, $attrs, $text) = @_;
     $text = $self->heading_common ($text, $$attrs{start_line});
-    $self->output ($self->switchquotes ('.SS', $self->mapfonts ($text)));
+    $self->output($self->switchquotes('.SS', $self->mapfonts($text, '\fP')));
     $self->outindex ('Subsection', $text);
     $$self{NEEDSPACE} = 0;
     return '';
@@ -1176,7 +1261,7 @@ sub cmd_head3 {
     my ($self, $attrs, $text) = @_;
     $text = $self->heading_common ($text, $$attrs{start_line});
     $self->makespace;
-    $self->output ($self->textmapfonts ('\f(IS' . $text . '\f(IE') . "\n");
+    $self->output($self->mapfonts('\f(IS' . $text . '\f(IE', '\fR') . "\n");
     $self->outindex ('Subsection', $text);
     $$self{NEEDSPACE} = 1;
     return '';
@@ -1188,7 +1273,7 @@ sub cmd_head4 {
     my ($self, $attrs, $text) = @_;
     $text = $self->heading_common ($text, $$attrs{start_line});
     $self->makespace;
-    $self->output ($self->textmapfonts ($text) . "\n");
+    $self->output($self->mapfonts($text, '\fR') . "\n");
     $self->outindex ('Subsection', $text);
     $$self{NEEDSPACE} = 1;
     return '';
@@ -1205,6 +1290,13 @@ sub cmd_i { return $_[0]->{IN_NAME} ? $_
 sub cmd_f { return $_[0]->{IN_NAME} ? $_[2] : '\f(IS' . $_[2] . '\f(IE' }
 sub cmd_c { return $_[0]->quote_literal ($_[2]) }
 
+# Convert all internal whitespace to $NBSP.
+sub cmd_s {
+    my ($self, $attrs, $text) = @_;
+    $text =~ s{ \s }{$NBSP}xmsg;
+    return $text;
+}
+
 # Index entries are just added to the pending entries.
 sub cmd_x {
     my ($self, $attrs, $text) = @_;
@@ -1226,7 +1318,7 @@ sub cmd_l {
         }
         if (not defined ($to) or $to eq $text) {
             return "<$text>";
-        } elsif ($$self{nourls}) {
+        } elsif ($self->{opt_nourls}) {
             return $text;
         } else {
             return "$text <$$attrs{to}>";
@@ -1247,12 +1339,10 @@ sub over_common_start {
     my ($self, $type, $attrs) = @_;
     my $line = $$attrs{start_line};
     my $indent = $$attrs{indent};
-    DEBUG > 3 and print " Starting =over $type (line $line, indent ",
-        ($indent || '?'), "\n";
 
     # Find the indentation level.
     unless (defined ($indent) && $indent =~ /^[-+]?\d{1,4}\s*$/) {
-        $indent = $$self{indent};
+        $indent = $self->{opt_indent};
     }
 
     # If we've gotten multiple indentations in a row, we need to emit the
@@ -1281,7 +1371,6 @@ sub over_common_start {
 # .RE and then a new .RS to unconfuse *roff.
 sub over_common_end {
     my ($self) = @_;
-    DEBUG > 3 and print " Ending =over\n";
     $$self{INDENT} = pop @{ $$self{INDENTS} };
     pop @{ $$self{ITEMTYPES} };
 
@@ -1320,7 +1409,6 @@ sub end_over_block  { $_[0]->over_common
 sub item_common {
     my ($self, $type, $attrs, $text) = @_;
     my $line = $$attrs{start_line};
-    DEBUG > 3 and print "  $type item (line $line): $text\n";
 
     # Clean up the text.  We want to end up with two variables, one ($text)
     # which contains any body text after taking out the item portion, and
@@ -1352,8 +1440,8 @@ sub item_common {
     $self->output (".PD 0\n") if ($$self{ITEMS} == 1);
 
     # Now, output the item tag itself.
-    $item = $self->textmapfonts ($item);
-    $self->output ($self->switchquotes ('.IP', $item, $$self{INDENT}));
+    $item = $self->mapfonts($item, '\fR');
+    $self->output($self->switchquotes('.IP', $item, $$self{INDENT}));
     $$self{NEEDSPACE} = 0;
     $$self{ITEMS}++;
     $$self{SHIFTWAIT} = 0;
@@ -1362,7 +1450,7 @@ sub item_common {
     if ($text) {
         $text =~ s/\s*$/\n/;
         $self->makespace;
-        $self->output ($self->protect ($self->textmapfonts ($text)));
+        $self->output($self->protect($self->mapfonts($text, '\fR')));
         $$self{NEEDSPACE} = 1;
     }
     $self->outindex ($index ? ('Item', $index) : ());
@@ -1450,48 +1538,15 @@ sub parse_string_document {
 }
 
 ##############################################################################
-# Translation tables
-##############################################################################
-
-# The following table is adapted from Tom Christiansen's pod2man.  It assumes
-# that the standard preamble has already been printed, since that's what
-# defines all of the accent marks.  We really want to do something better than
-# this when *roff actually supports other character sets itself, since these
-# results are pretty poor.
-#
-# This only works in an ASCII world.  What to do in a non-ASCII world is very
-# unclear -- hopefully we can assume UTF-8 and just leave well enough alone.
-@ESCAPES{0xA0 .. 0xFF} = (
-    "\\ ", undef, undef, undef,            undef, undef, undef, undef,
-    undef, undef, undef, undef,            undef, "\\%", undef, undef,
-
-    undef, undef, undef, undef,            undef, undef, undef, undef,
-    undef, undef, undef, undef,            undef, undef, undef, undef,
-
-    "A\\*`",  "A\\*'", "A\\*^", "A\\*~",   "A\\*:", "A\\*o", "\\*(Ae", "C\\*,",
-    "E\\*`",  "E\\*'", "E\\*^", "E\\*:",   "I\\*`", "I\\*'", "I\\*^",  "I\\*:",
-
-    "\\*(D-", "N\\*~", "O\\*`", "O\\*'",   "O\\*^", "O\\*~", "O\\*:",  undef,
-    "O\\*/",  "U\\*`", "U\\*'", "U\\*^",   "U\\*:", "Y\\*'", "\\*(Th", "\\*8",
-
-    "a\\*`",  "a\\*'", "a\\*^", "a\\*~",   "a\\*:", "a\\*o", "\\*(ae", "c\\*,",
-    "e\\*`",  "e\\*'", "e\\*^", "e\\*:",   "i\\*`", "i\\*'", "i\\*^",  "i\\*:",
-
-    "\\*(d-", "n\\*~", "o\\*`", "o\\*'",   "o\\*^", "o\\*~", "o\\*:",  undef,
-    "o\\*/" , "u\\*`", "u\\*'", "u\\*^",   "u\\*:", "y\\*'", "\\*(th", "y\\*:",
-) if ASCII;
-
-##############################################################################
 # Premable
 ##############################################################################
 
-# The following is the static preamble which starts all *roff output we
-# generate.  Most is static except for the font to use as a fixed-width font,
-# which is designed by @CFONT@, and the left and right quotes to use for C<>
-# text, designated by @LQOUTE@ and @RQUOTE@.  However, the second part, which
-# defines the accent marks, is only used if $escapes is set to true.
+# The preamble which starts all *roff output we generate.  Most is static
+# except for the font to use as a fixed-width font (designed by @CFONT@), and
+# the left and right quotes to use for C<> text (designated by @LQOUTE@ and
+# @RQUOTE@).  Accent marks are only defined if the output encoding is roff.
 sub preamble_template {
-    my ($self, $accents) = @_;
+    my ($self) = @_;
     my $preamble = <<'----END OF PREAMBLE----';
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
@@ -1506,29 +1561,12 @@ sub preamble_template {
 .ft R
 .fi
 ..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
 .ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
 .    ds C` @LQUOTE@
 .    ds C' @RQUOTE@
 'br\}
 .el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
 .    ds C`
 .    ds C'
 'br\}
@@ -1562,7 +1600,7 @@ sub preamble_template {
 ----END OF PREAMBLE----
 #'# for cperl-mode
 
-    if ($accents) {
+    if ($$self{ENCODING} eq 'roff') {
         $preamble .= <<'----END OF PREAMBLE----'
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
@@ -1592,7 +1630,7 @@ sub preamble_template {
 .    ds /
 .\}
 .if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h'|\\n:u'
 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
@@ -1639,10 +1677,13 @@ sub preamble_template {
 1;
 __END__
 
+=encoding UTF-8
+
 =for stopwords
 en em ALLCAPS teeny fixedbold fixeditalic fixedbolditalic stderr utf8 UTF-8
 Allbery Sean Burke Ossanna Solaris formatters troff uppercased Christiansen
-nourls parsers Kernighan lquote rquote
+nourls parsers Kernighan lquote rquote unrepresentable mandoc NetBSD PostScript
+SMP macOS EBCDIC fallbacks manref reflowed reflowing FH overridable
 
 =head1 NAME
 
@@ -1668,100 +1709,197 @@ using L<nroff(1)>, normally via L<man(1)
 It is conventionally invoked using the driver script B<pod2man>, but it can
 also be used directly.
 
-As a derived class from Pod::Simple, Pod::Man supports the same methods and
-interfaces.  See L<Pod::Simple> for all the details.
+By default (on non-EBCDIC systems), Pod::Man outputs UTF-8.  Its output should
+work with the B<man> program on systems that use B<groff> (most Linux
+distributions) or B<mandoc> (most BSD variants), but may result in mangled
+output on older UNIX systems.  To choose a different, possibly more
+backward-compatible output mangling on such systems, set the C<encoding>
+option to C<roff> (the default in earlier Pod::Man versions).  See the
+C<encoding> option and L</ENCODING> for more details.
+
+See L</COMPATIBILTY> for the versions of Pod::Man with significant
+backward-incompatible changes (other than constructor options, whose versions
+are documented below), and the versions of Perl that included them.
 
-new() can take options, in the form of key/value pairs that control the
-behavior of the parser.  See below for details.
+=head1 CLASS METHODS
 
-If no options are given, Pod::Man uses the name of the input file with any
-trailing C<.pod>, C<.pm>, or C<.pl> stripped as the man page title, to
-section 1 unless the file ended in C<.pm> in which case it defaults to
-section 3, to a centered title of "User Contributed Perl Documentation", to
-a centered footer of the Perl version it is run with, and to a left-hand
-footer of the modification date of its input (or the current date if given
-C<STDIN> for input).
-
-Pod::Man assumes that your *roff formatters have a fixed-width font named
-C<CW>.  If yours is called something else (like C<CR>), use the C<fixed>
-option to specify it.  This generally only matters for troff output for
-printing.  Similarly, you can set the fonts used for bold, italic, and
-bold italic fixed-width output.
-
-Besides the obvious pod conversions, Pod::Man also takes care of
-formatting func(), func(3), and simple variable references like $foo or
-@bar so you don't have to use code escapes for them; complex expressions
-like C<$fred{'stuff'}> will still need to be escaped, though.  It also
-translates dashes that aren't used as hyphens into en dashes, makes long
-dashes--like this--into proper em dashes, fixes "paired quotes," makes C++
-look right, puts a little space between double underscores, makes ALLCAPS
-a teeny bit smaller in B<troff>, and escapes stuff that *roff treats as
-special so that you don't have to.
+=over 4
 
-The recognized options to new() are as follows.  All options take a single
-argument.
+=item new(ARGS)
+
+Create a new Pod::Man object.  ARGS should be a list of key/value pairs, where
+the keys are chosen from the following.  Each option is annotated with the
+version of Pod::Man in which that option was added with its current meaning.
 
 =over 4
 
 =item center
 
-Sets the centered page header for the C<.TH> macro.  The default, if this
-option is not specified, is "User Contributed Perl Documentation".
+[1.00] Sets the centered page header for the C<.TH> macro.  The default, if
+this option is not specified, is C<User Contributed Perl Documentation>.
 
 =item date
 
-Sets the left-hand footer for the C<.TH> macro.  If this option is not set,
-the contents of the environment variable POD_MAN_DATE, if set, will be used.
-Failing that, the value of SOURCE_DATE_EPOCH, the modification date of the
-input file, or the current time if stat() can't find that file (which will be
-the case if the input is from C<STDIN>) will be used.  If obtained from the
-file modification date or the current time, the date will be formatted as
-C<YYYY-MM-DD> and will be based on UTC (so that the output will be
-reproducible regardless of local time zone).
+[4.00] Sets the left-hand footer for the C<.TH> macro.  If this option is not
+set, the contents of the environment variable POD_MAN_DATE, if set, will be
+used.  Failing that, the value of SOURCE_DATE_EPOCH, the modification date of
+the input file, or the current time if stat() can't find that file (which will
+be the case if the input is from C<STDIN>) will be used.  If taken from any
+source other than POD_MAN_DATE (which is used verbatim), the date will be
+formatted as C<YYYY-MM-DD> and will be based on UTC (so that the output will
+be reproducible regardless of local time zone).
+
+=item encoding
+
+[5.00] Specifies the encoding of the output.  The value must be an encoding
+recognized by the L<Encode> module (see L<Encode::Supported>), or the special
+values C<roff> or C<groff>.  The default on non-EBCDIC systems is UTF-8.
+
+If the output contains characters that cannot be represented in this encoding,
+that is an error that will be reported as configured by the C<errors> option.
+If error handling is other than C<die>, the unrepresentable character will be
+replaced with the Encode substitution character (normally C<?>).
+
+If the C<encoding> option is set to the special value C<groff> (the default on
+EBCDIC systems), or if the Encode module is not available and the encoding is
+set to anything other than C<roff>, Pod::Man will translate all non-ASCII
+characters to C<\[uNNNN]> Unicode escapes.  These are not traditionally part
+of the *roff language, but are supported by B<groff> and B<mandoc> and thus by
+the majority of manual page processors in use today.
+
+If the C<encoding> option is set to the special value C<roff>, Pod::Man will
+do its historic transformation of (some) ISO 8859-1 characters into *roff
+escapes that may be adequate in troff and may be readable (if ugly) in nroff.
+This was the default behavior of versions of Pod::Man before 5.00.  With this
+encoding, all other non-ASCII characters will be replaced with C<X>.  It may
+be required for very old troff and nroff implementations that do not support
+UTF-8, but its representation of any non-ASCII character is very poor and
+often specific to European languages.
+
+If the output file handle has a PerlIO encoding layer set, setting C<encoding>
+to anything other than C<groff> or C<roff> will be ignored and no encoding
+will be done by Pod::Man.  It will instead rely on the encoding layer to make
+whatever output encoding transformations are desired.
+
+WARNING: The input encoding of the POD source is independent from the output
+encoding, and setting this option does not affect the interpretation of the
+POD input.  Unless your POD source is US-ASCII, its encoding should be
+declared with the C<=encoding> command in the source.  If this is not done,
+Pod::Simple will will attempt to guess the encoding and may be successful if
+it's Latin-1 or UTF-8, but it will produce warnings.  See L<perlpod(1)> for
+more information.
 
 =item errors
 
-How to report errors.  C<die> says to throw an exception on any POD
-formatting error.  C<stderr> says to report errors on standard error, but
-not to throw an exception.  C<pod> says to include a POD ERRORS section
-in the resulting documentation summarizing the errors.  C<none> ignores
-POD errors entirely, as much as possible.
+[2.27] How to report errors.  C<die> says to throw an exception on any POD
+formatting error.  C<stderr> says to report errors on standard error, but not
+to throw an exception.  C<pod> says to include a POD ERRORS section in the
+resulting documentation summarizing the errors.  C<none> ignores POD errors
+entirely, as much as possible.
 
 The default is C<pod>.
 
 =item fixed
 
-The fixed-width font to use for verbatim text and code.  Defaults to
-C<CW>.  Some systems may want C<CR> instead.  Only matters for B<troff>
-output.
+[1.00] The fixed-width font to use for verbatim text and code.  Defaults to
+C<CW>.  Some systems prefer C<CR> instead.  Only matters for B<troff> output.
 
 =item fixedbold
 
-Bold version of the fixed-width font.  Defaults to C<CB>.  Only matters
+[1.00] Bold version of the fixed-width font.  Defaults to C<CB>.  Only matters
 for B<troff> output.
 
 =item fixeditalic
 
-Italic version of the fixed-width font (actually, something of a misnomer,
-since most fixed-width fonts only have an oblique version, not an italic
-version).  Defaults to C<CI>.  Only matters for B<troff> output.
+[1.00] Italic version of the fixed-width font (something of a misnomer, since
+most fixed-width fonts only have an oblique version, not an italic version).
+Defaults to C<CI>.  Only matters for B<troff> output.
 
 =item fixedbolditalic
 
-Bold italic (probably actually oblique) version of the fixed-width font.
-Pod::Man doesn't assume you have this, and defaults to C<CB>.  Some
-systems (such as Solaris) have this font available as C<CX>.  Only matters
-for B<troff> output.
+[1.00] Bold italic (in theory, probably oblique in practice) version of the
+fixed-width font.  Pod::Man doesn't assume you have this, and defaults to
+C<CB>.  Some systems (such as Solaris) have this font available as C<CX>.
+Only matters for B<troff> output.
+
+=item guesswork
+
+[5.00] By default, Pod::Man applies some default formatting rules based on
+guesswork and regular expressions that are intended to make writing Perl
+documentation easier and require less explicit markup.  These rules may not
+always be appropriate, particularly for documentation that isn't about Perl.
+This option allows turning all or some of it off.
+
+The special value C<all> enables all guesswork.  This is also the default for
+backward compatibility reasons.  The special value C<none> disables all
+guesswork.  Otherwise, the value of this option should be a comma-separated
+list of one or more of the following keywords:
+
+=over 4
+
+=item functions
+
+Convert function references like C<foo()> to bold even if they have no markup.
+The function name accepts valid Perl characters for function names (including
+C<:>), and the trailing parentheses must be present and empty.
+
+=item manref
+
+Make the first part (before the parentheses) of manual page references like
+C<foo(1)> bold even if they have no markup.  The section must be a single
+number optionally followed by lowercase letters.
+
+=item quoting
+
+If no guesswork is enabled, any text enclosed in CZ<><> is surrounded by
+double quotes in nroff (terminal) output unless the contents are already
+quoted.  When this guesswork is enabled, quote marks will also be suppressed
+for Perl variables, function names, function calls, numbers, and hex
+constants.
+
+=item variables
+
+Convert Perl variable names to a fixed-width font even if they have no markup.
+This transformation will only be apparent in troff output, or some other
+output format (unlike nroff terminal output) that supports fixed-width fonts.
+
+=back
+
+Any unknown guesswork name is silently ignored (for potential future
+compatibility), so be careful about spelling.
+
+=item language
+
+[5.00] Add commands telling B<groff> that the input file is in the given
+language.  The value of this setting must be a language abbreviation for which
+B<groff> provides supplemental configuration, such as C<ja> (for Japanese) or
+C<zh> (for Chinese).
+
+Specifically, this adds:
+
+    .mso <language>.tmac
+    .hla <language>
+
+to the start of the file, which configure correct line breaking for the
+specified language.  Without these commands, groff may not know how to add
+proper line breaks for Chinese and Japanese text if the manual page is
+installed into the normal manual page directory, such as F</usr/share/man>.
+
+On many systems, this will be done automatically if the manual page is
+installed into a language-specific manual page directory, such as
+F</usr/share/man/zh_CN>.  In that case, this option is not required.
+
+Unfortunately, the commands added with this option are specific to B<groff>
+and will not work with other B<troff> and B<nroff> implementations.
 
 =item lquote
 
 =item rquote
 
-Sets the quote marks used to surround CE<lt>> text.  C<lquote> sets the
-left quote mark and C<rquote> sets the right quote mark.  Either may also
-be set to the special value C<none>, in which case no quote mark is added
-on that side of CE<lt>> text (but the font is still changed for troff
-output).
+[4.08] Sets the quote marks used to surround CE<lt>> text.  C<lquote> sets the
+left quote mark and C<rquote> sets the right quote mark.  Either may also be
+set to the special value C<none>, in which case no quote mark is added on that
+side of CE<lt>> text (but the font is still changed for troff output).
 
 Also see the C<quotes> option, which can be used to set both quotes at once.
 If both C<quotes> and one of the other options is set, C<lquote> or C<rquote>
@@ -1769,21 +1907,21 @@ overrides C<quotes>.
 
 =item name
 
-Set the name of the manual page for the C<.TH> macro.  Without this
-option, the manual name is set to the uppercased base name of the file
-being converted unless the manual section is 3, in which case the path is
-parsed to see if it is a Perl module path.  If it is, a path like
-C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>.  This
-option, if given, overrides any automatic determination of the name.
+[4.08] Set the name of the manual page for the C<.TH> macro.  Without this
+option, the manual name is set to the uppercased base name of the file being
+converted unless the manual section is 3, in which case the path is parsed to
+see if it is a Perl module path.  If it is, a path like C<.../lib/Pod/Man.pm>
+is converted into a name like C<Pod::Man>.  This option, if given, overrides
+any automatic determination of the name.
 
 If generating a manual page from standard input, the name will be set to
-C<STDIN> if this option is not provided.  Providing this option is strongly
-recommended to set a meaningful manual page name.
+C<STDIN> if this option is not provided.  In this case, providing this option
+is strongly recommended to set a meaningful manual page name.
 
 =item nourls
 
-Normally, LZ<><> formatting codes with a URL but anchor text are formatted
-to show both the anchor text and the URL.  In other words:
+[2.27] Normally, LZ<><> formatting codes with a URL but anchor text are
+formatted to show both the anchor text and the URL.  In other words:
 
     L<foo|http://example.com/>
 
@@ -1798,10 +1936,10 @@ important.
 
 =item quotes
 
-Sets the quote marks used to surround CE<lt>> text.  If the value is a
-single character, it is used as both the left and right quote.  Otherwise,
-it is split in half, and the first half of the string is used as the left
-quote and the second is used as the right quote.
+[4.00] Sets the quote marks used to surround CE<lt>> text.  If the value is a
+single character, it is used as both the left and right quote.  Otherwise, it
+is split in half, and the first half of the string is used as the left quote
+and the second is used as the right quote.
 
 This may also be set to the special value C<none>, in which case no quote
 marks are added around CE<lt>> text (but the font is still changed for troff
@@ -1813,82 +1951,258 @@ options is set, C<lquote> or C<rquote> o
 
 =item release
 
-Set the centered footer for the C<.TH> macro.  By default, this is set to
-the version of Perl you run Pod::Man under.  Setting this to the empty
-string will cause some *roff implementations to use the system default
-value.
-
-Note that some system C<an> macro sets assume that the centered footer
-will be a modification date and will prepend something like "Last
-modified: ".  If this is the case for your target system, you may want to
-set C<release> to the last modified date and C<date> to the version
-number.
+[1.00] Set the centered footer for the C<.TH> macro.  By default, this is set
+to the version of Perl you run Pod::Man under.  Setting this to the empty
+string will cause some *roff implementations to use the system default value.
+
+Note that some system C<an> macro sets assume that the centered footer will be
+a modification date and will prepend something like C<Last modified: >.  If
+this is the case for your target system, you may want to set C<release> to the
+last modified date and C<date> to the version number.
 
 =item section
 
-Set the section for the C<.TH> macro.  The standard section numbering
-convention is to use 1 for user commands, 2 for system calls, 3 for
-functions, 4 for devices, 5 for file formats, 6 for games, 7 for
-miscellaneous information, and 8 for administrator commands.  There is a lot
-of variation here, however; some systems (like Solaris) use 4 for file
-formats, 5 for miscellaneous information, and 7 for devices.  Still others
-use 1m instead of 8, or some mix of both.  About the only section numbers
-that are reliably consistent are 1, 2, and 3.
+[1.00] Set the section for the C<.TH> macro.  The standard section numbering
+convention is to use 1 for user commands, 2 for system calls, 3 for functions,
+4 for devices, 5 for file formats, 6 for games, 7 for miscellaneous
+information, and 8 for administrator commands.  There is a lot of variation
+here, however; some systems (like Solaris) use 4 for file formats, 5 for
+miscellaneous information, and 7 for devices.  Still others use 1m instead of
+8, or some mix of both.  About the only section numbers that are reliably
+consistent are 1, 2, and 3.
 
 By default, section 1 will be used unless the file ends in C<.pm> in which
 case section 3 will be selected.
 
 =item stderr
 
-Send error messages about invalid POD to standard error instead of
-appending a POD ERRORS section to the generated *roff output.  This is
-equivalent to setting C<errors> to C<stderr> if C<errors> is not already
-set.  It is supported for backward compatibility.
+[2.19] If set to a true value, send error messages about invalid POD to
+standard error instead of appending a POD ERRORS section to the generated
+*roff output.  This is equivalent to setting C<errors> to C<stderr> if
+C<errors> is not already set.
+
+This option is for backward compatibility with Pod::Man versions that did not
+support C<errors>.  Normally, the C<errors> option should be used instead.
 
 =item utf8
 
-By default, Pod::Man produces the most conservative possible *roff output
-to try to ensure that it will work with as many different *roff
-implementations as possible.  Many *roff implementations cannot handle
-non-ASCII characters, so this means all non-ASCII characters are converted
-either to a *roff escape sequence that tries to create a properly accented
-character (at least for troff output) or to C<X>.
-
-If this option is set, Pod::Man will instead output UTF-8.  If your *roff
-implementation can handle it, this is the best output format to use and
-avoids corruption of documents containing non-ASCII characters.  However,
-be warned that *roff source with literal UTF-8 characters is not supported
-by many implementations and may even result in segfaults and other bad
-behavior.
-
-Be aware that, when using this option, the input encoding of your POD
-source should be properly declared unless it's US-ASCII.  Pod::Simple will
-attempt to guess the encoding and may be successful if it's Latin-1 or
-UTF-8, but it will produce warnings.  Use the C<=encoding> command to
-declare the encoding.  See L<perlpod(1)> for more information.
+[2.21] This option used to set the output encoding to UTF-8.  Since this is
+now the default, it is ignored and does nothing.
+
+=back
+
+=back
+
+=head1 INSTANCE METHODS
+
+As a derived class from Pod::Simple, Pod::Man supports the same methods and
+interfaces.  See L<Pod::Simple> for all the details.  This section summarizes
+the most-frequently-used methods and the ones added by Pod::Man.
+
+=over 4
+
+=item output_fh(FH)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the file handle FH instead of C<STDOUT>.
+
+=item output_string(REF)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the scalar variable pointed to by REF, rather than C<STDOUT>.  For example:
+
+    my $man = Pod::Man->new();
+    my $output;
+    $man->output_string(\$output);
+    $man->parse_file('/some/input/file');
+
+Be aware that the output in that variable will already be encoded in UTF-8.
+
+=item parse_file(PATH)
+
+Read the POD source from PATH and format it.  By default, the output is sent
+to C<STDOUT>, but this can be changed with the output_fh() or output_string()
+methods.
+
+=item parse_from_file(INPUT, OUTPUT)
+
+=item parse_from_filehandle(FH, OUTPUT)
+
+Read the POD source from INPUT, format it, and output the results to OUTPUT.
+
+parse_from_filehandle() is provided for backward compatibility with older
+versions of Pod::Man.  parse_from_file() should be used instead.
+
+=item parse_lines(LINES[, ...[, undef]])
+
+Parse the provided lines as POD source, writing the output to either C<STDOUT>
+or the file handle set with the output_fh() or output_string() methods.  This
+method can be called repeatedly to provide more input lines.  An explicit
+C<undef> should be passed to indicate the end of input.
+
+This method expects raw bytes, not decoded characters.
+
+=item parse_string_document(INPUT)
+
+Parse the provided scalar variable as POD source, writing the output to either
+C<STDOUT> or the file handle set with the output_fh() or output_string()
+methods.
+
+This method expects raw bytes, not decoded characters.
 
 =back
 
-The standard Pod::Simple method parse_file() takes one argument naming the
-POD file to read from.  By default, the output is sent to C<STDOUT>, but
-this can be changed with the output_fh() method.
-
-The standard Pod::Simple method parse_from_file() takes up to two
-arguments, the first being the input file to read POD from and the second
-being the file to write the formatted output to.
-
-You can also call parse_lines() to parse an array of lines or
-parse_string_document() to parse a document already in memory.  As with
-parse_file(), parse_lines() and parse_string_document() default to sending
-their output to C<STDOUT> unless changed with the output_fh() method.  Be
-aware that parse_lines() and parse_string_document() both expect raw bytes,
-not decoded characters.
+=head1 ENCODING
+
+As of Pod::Man 5.00, the default output encoding for Pod::Man is UTF-8.  This
+should work correctly on any modern system that uses either B<groff> (most
+Linux distributions) or B<mandoc> (Alpine Linux and most BSD variants,
+including macOS).
+
+The user will probably have to use a UTF-8 locale to see correct output.  This
+may be done by default; if not, set the LANG or LC_CTYPE environment variables
+to an appropriate local.  The locale C<C.UTF-8> is available on most systems
+if one wants correct output without changing the other things locales affect,
+such as collation.
+
+The backward-compatible output format used in Pod::Man versions before 5.00 is
+available by setting the C<encoding> option to C<roff>.  This may produce
+marginally nicer results on older UNIX versions that do not use B<groff> or
+B<mandoc>, but none of the available options will correctly render Unicode
+characters on those systems.
+
+Below are some additional details about how this choice was made and some
+discussion of alternatives.
+
+=head2 History
+
+The default output encoding for Pod::Man has been a long-standing problem.
+B<troff> and B<nroff> predate Unicode by a significant margin, and their
+implementations for many UNIX systems reflect that legacy.  It's common for
+Unicode to not be supported in any form.
+
+Because of this, versions of Pod::Man prior to 5.00 maintained the highly
+conservative output of the original pod2man, which output pure ASCII with
+complex macros to simulate common western European accented characters when
+processed with troff.  The nroff output was awkward and sometimes incorrect,
+and characters not used in western European scripts were replaced with C<X>.
+This choice maximized backwards compatibility with B<man> and
+B<nroff>/B<troff> implementations at the cost of incorrect rendering of many
+POD documents, particularly those containing people's names.
+
+The modern implementations, B<groff> (used in most Linux distributions) and
+B<mandoc> (used by most BSD variants), do now support Unicode.  Other UNIX
+systems often do not, but they're now a tiny minority of the systems people
+use on a daily basis.  It's increasingly common (for very good reasons) to use
+Unicode characters for POD documents rather than using ASCII conversions of
+people's names or avoiding non-English text, making the limitations in the old
+output format more apparent.
+
+Four options have been proposed to fix this:
+
+=over 2
+
+=item * 
+
+Optionally support UTF-8 output but don't change the default.  This is the
+approach taken since Pod::Man 2.1.0, which added the C<utf8> option.  Some
+Pod::Man users use this option for better output on platforms known to support
+Unicode, but since the defaults have not changed, people continued to
+encounter (and file bug reports about) the poor default rendering.
+
+=item *
+
+Convert characters to troff C<\(xx> escapes.  This requires maintaining a
+large translation table and addresses only a tiny part of the problem, since
+many Unicode characters have no standard troff name.  B<groff> has the largest
+list, but if one is willing to assume B<groff> is the formatter, the next
+option is better.
+
+=item *
+
+Convert characters to groff C<\[uNNNN]> escapes.  This is implemented as the
+C<groff> encoding for those who want to use it, and is supported by both
+B<groff> and B<mandoc>.  However, it is no better than UTF-8 output for
+portability to other implementations.  See L</Testing results> for more
+details.
+
+=item *
+
+Change the default output format to UTF-8 and ask those who want maximum
+backward compatibility to explicitly select the old encoding.  This fixes the
+issue for most users at the cost of backwards compatibility.  While the
+rendering of non-ASCII characters is different on older systems that don't
+support UTF-8, it's not always worse than the old output.
+
+=back
+
+Pod::Man 5.00 and later makes the last choice.  This arguably produces worse
+output when manual pages are formatted with B<troff> into PostScript or PDF,
+but doing this is rare and normally manual, so the encoding can be changed in
+those cases.  The older output encoding is available by setting C<encoding> to
+C<roff>.
+
+=head2 Testing results
+
+Here is the results of testing C<encoding> values of C<utf-8> and C<groff> on
+various operating systems.  The testing methodology was to create F<man/man1>
+in the current directory, copy F<encoding.utf8> or F<encoding.groff> from the
+podlators 5.00 distribution to F<man/man1/encoding.1>, and then run:
+
+    LANG=C.UTF-8 MANPATH=$(pwd)/man man 1 encoding
+
+If the locale is not explicitly set to one that includes UTF-8, the Unicode
+characters were usually converted to ASCII (by, for example, dropping an
+accent) or deleted or replaced with C<< <?> >> if there was no conversion.
+
+Tested on 2022-09-25.  Many thanks to the GCC Compile Farm project for access
+to testing hosts.
+
+    OS                   UTF-8      groff
+    ------------------   -------    -------
+    AIX 7.1              no [1]     no [2]
+    Alpine 3.15.0        yes        yes
+    CentOS 7.9           yes        yes
+    Debian 7             yes        yes
+    FreeBSD 13.0         yes        yes
+    NetBSD 9.2           yes        yes
+    OpenBSD 7.1          yes        yes
+    openSUSE Leap 15.4   yes        yes
+    Solaris 10           yes        no [2]
+    Solaris 11           no [3]     no [3]
+
+I did not have access to a macOS system for testing, but since it uses
+B<mandoc>, it's behavior is probably the same as the BSD hosts.
+
+Notes:
+
+=over 4
+
+=item [1]
+
+Unicode characters were converted to one or two random ASCII characters
+unrelated to the original character.
 
-To put the output from any parse method into a string instead of a file
-handle, call the output_string() method instead of output_fh().
+=item [2]
 
-See L<Pod::Simple> for more specific details on the methods available to
-all derived parsers.
+Unicode characters were shown as the body of the groff escape rather than the
+indicated character (in other words, text like C<[u00EF]>).
+
+=item [3]
+
+Unicode characters were deleted entirely, as if they weren't there.  Using
+C<nroff -man> instead of B<man> to format the page showed the same results as
+Solaris 10.  Using C<groff -k -man -Tutf8> to format the page produced the
+correct output.
+
+=back
+
+PostScript and PDF output using groff on a Debian 12 system do not support
+combining accent marks or SMP characters due to a lack of support in the
+default output font.
+
+Testing on additional platforms is welcome.  Please let the author know if you
+have additional results.
 
 =head1 DIAGNOSTICS
 
@@ -1924,9 +2238,9 @@ option was set to C<die>.
 
 =item PERL_CORE
 
-If set and Encode is not available, silently fall back to non-UTF-8 mode
-without complaining to standard error.  This environment variable is set
-during Perl core builds, which build Encode after podlators.  Encode is
+If set and Encode is not available, silently fall back to an encoding of
+C<groff> without complaining to standard error.  This environment variable is
+set during Perl core builds, which build Encode after podlators.  Encode is
 expected to not (yet) be available in that case.
 
 =item POD_MAN_DATE
@@ -1955,65 +2269,104 @@ reliable if this variable overrode the t
 
 =back
 
-=head1 BUGS
+=head1 COMPATIBILITY
 
-Encoding handling assumes that PerlIO is available and does not work
-properly if it isn't.  The C<utf8> option is therefore not supported
-unless Perl is built with PerlIO support.
-
-There is currently no way to turn off the guesswork that tries to format
-unmarked text appropriately, and sometimes it isn't wanted (particularly
-when using POD to document something other than Perl).  Most of the work
-toward fixing this has now been done, however, and all that's still needed
-is a user interface.
-
-The NAME section should be recognized specially and index entries emitted
-for everything in that section.  This would have to be deferred until the
-next section, since extraneous things in NAME tends to confuse various man
-page processors.  Currently, no index entries are emitted for anything in
-NAME.
+Pod::Man 1.02 (based on L<Pod::Parser>) was the first version included with
+Perl, in Perl 5.6.0.
 
-Pod::Man doesn't handle font names longer than two characters.  Neither do
-most B<troff> implementations, but GNU troff does as an extension.  It would
-be nice to support as an option for those who want to use it.
+The current API based on L<Pod::Simple> was added in Pod::Man 2.00.  Pod::Man
+2.04 was included in Perl 5.9.3, the first version of Perl to incorporate
+those changes.  This is the first version that correctly supports all modern
+POD syntax.  The parse_from_filehandle() method was re-added for backward
+compatibility in Pod::Man 2.09, included in Perl 5.9.4.
+
+Support for anchor text in LZ<><> links of type URL was added in Pod::Man
+2.23, included in Perl 5.11.5.
+
+parse_lines(), parse_string_document(), and parse_file() set a default output
+file handle of C<STDOUT> if one was not already set as of Pod::Man 2.28,
+included in Perl 5.19.5.
+
+Support for SOURCE_DATE_EPOCH and POD_MAN_DATE was added in Pod::Man 4.00,
+included in Perl 5.23.7, and generated dates were changed to use UTC instead
+of the local time zone.  This is also the first release that aligned the
+module version and the version of the podlators distribution.  All modules
+included in podlators, and the podlators distribution itself, share the same
+version number from this point forward.
+
+Pod::Man 4.10, included in Perl 5.27.8, changed the formatting for manual page
+references and function names to bold instead of italic, following the current
+Linux manual page standard.
+
+Pod::Man 5.00 changed the default output encoding to UTF-8, overridable with
+the new C<encoding> option.  It also fixed problems with bold or italic
+extending too far when used with CZ<><> escapes, and began converting Unicode
+zero-width spaces (U+200B) to the C<\:> *roff escape.  It also dropped
+attempts to add subtle formatting corrections in the output that would only be
+visible when typeset with B<troff>, which had previously been a significant
+source of bugs.
+
+=head1 BUGS
 
-The preamble added to each output file is rather verbose, and most of it
-is only necessary in the presence of non-ASCII characters.  It would
-ideally be nice if all of those definitions were only output if needed,
-perhaps on the fly as the characters are used.
+There are numerous bugs and language-specific assumptions in the nroff
+fallbacks for accented characters in the C<roff> encoding.  Since the point of
+this encoding is backward compatibility with the output from earlier versions
+of Pod::Man, and it is deprecated except when necessary to support old
+systems, those bugs are unlikely to ever be fixed.
 
-Pod::Man is excessively slow.
+Pod::Man doesn't handle font names longer than two characters.  Neither do
+most B<troff> implementations, but groff does as an extension.  It would be
+nice to support as an option for those who want to use it.
 
 =head1 CAVEATS
 
-If Pod::Man is given the C<utf8> option, the encoding of its output file
-handle will be forced to UTF-8 if possible, overriding any existing
-encoding.  This will be done even if the file handle is not created by
-Pod::Man and was passed in from outside.  This maintains consistency
-regardless of PERL_UNICODE and other settings.
-
-The handling of hyphens and em dashes is somewhat fragile, and one may get
-the wrong one under some circumstances.  This should only matter for
-B<troff> output.
-
-When and whether to use small caps is somewhat tricky, and Pod::Man doesn't
-necessarily get it right.
-
-Converting neutral double quotes to properly matched double quotes doesn't
-work unless there are no formatting codes between the quote marks.  This
-only matters for troff output.
+=head2 Sentence spacing
+
+Pod::Man copies the input spacing verbatim to the output *roff document.  This
+means your output will be affected by how B<nroff> generally handles sentence
+spacing.
+
+B<nroff> dates from an era in which it was standard to use two spaces after
+sentences, and will always add two spaces after a line-ending period (or
+similar punctuation) when reflowing text.  For example, the following input:
+
+    =pod
+
+    One sentence.
+    Another sentence.
+
+will result in two spaces after the period when the text is reflowed.  If you
+use two spaces after sentences anyway, this will be consistent, although you
+will have to be careful to not end a line with an abbreviation such as C<e.g.>
+or C<Ms.>.  Output will also be consistent if you use the *roff style guide
+(and L<XKCD 1285|https://xkcd.com/1285/>) recommendation of putting a line
+break after each sentence, although that will consistently produce two spaces
+after each sentence, which may not be what you want.
+
+If you prefer one space after sentences (which is the more modern style), you
+will unfortunately need to ensure that no line in the middle of a paragraph
+ends in a period or similar sentence-ending paragraph.  Otherwise, B<nroff>
+will add a two spaces after that sentence when reflowing, and your output
+document will have inconsistent spacing.
+
+=head2 Hyphens
+
+The handling of hyphens versus dashes is somewhat fragile, and one may get a
+the wrong one under some circumstances.  This will normally only matter for
+line breaking and possibly for troff output.
 
 =head1 AUTHOR
 
-Russ Allbery <rra@cpan.org>, based I<very> heavily on the original B<pod2man>
-by Tom Christiansen <tchrist@mox.perl.com>.  The modifications to work with
-Pod::Simple instead of Pod::Parser were originally contributed by Sean Burke
-<sburke@cpan.org> (but I've since hacked them beyond recognition and all bugs
-are mine).
+Written by Russ Allbery <rra@cpan.org>, based on the original B<pod2man> by
+Tom Christiansen <tchrist@mox.perl.com>.
+
+The modifications to work with Pod::Simple instead of Pod::Parser were
+contributed by Sean Burke <sburke@cpan.org>, but I've since hacked them beyond
+recognition and all bugs are mine.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 1999-2010, 2012-2019 Russ Allbery <rra@cpan.org>
+Copyright 1999-2010, 2012-2020, 2022 Russ Allbery <rra@cpan.org>
 
 Substantial contributions by Sean Burke <sburke@cpan.org>.
 
@@ -2022,18 +2375,19 @@ under the same terms as Perl itself.
 
 =head1 SEE ALSO
 
-L<Pod::Simple>, L<perlpod(1)>, L<pod2man(1)>, L<nroff(1)>, L<troff(1)>,
-L<man(1)>, L<man(7)>
+L<Encode::Supported>, L<Pod::Simple>, L<perlpod(1)>, L<pod2man(1)>,
+L<nroff(1)>, L<troff(1)>, L<man(1)>, L<man(7)>
 
 Ossanna, Joseph F., and Brian W. Kernighan.  "Troff User's Manual,"
 Computing Science Technical Report No. 54, AT&T Bell Laboratories.  This is
 the best documentation of standard B<nroff> and B<troff>.  At the time of
 this writing, it's available at L<http://www.troff.org/54.pdf>.
 
-The man page documenting the man macro set may be L<man(5)> instead of
-L<man(7)> on your system.  Also, please see L<pod2man(1)> for extensive
-documentation on writing manual pages if you've not done it before and
-aren't familiar with the conventions.
+The manual page documenting the man macro set may be L<man(5)> instead of
+L<man(7)> on your system.
+
+See L<perlpodstyle(1)> for documentation on writing manual pages in POD if
+you've not done it before and aren't familiar with the conventions.
 
 The current version of this module is always available from its web site at
 L<https://www.eyrie.org/~eagle/software/podlators/>.  It is also part of the
Index: gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm,v
diff -u -p -a -u -p -r1.5 ParseLink.pm
--- gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/lib/Pod/ParseLink.pm	21 Feb 2024 15:47:00 -0000
@@ -13,17 +13,15 @@
 
 package Pod::ParseLink;
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
-use vars qw(@EXPORT @ISA $VERSION);
-
 use Exporter;
-@ISA    = qw(Exporter);
-@EXPORT = qw(parselink);
 
-$VERSION = '4.14';
+our @ISA = qw(Exporter);
+our @EXPORT = qw(parselink);
+our $VERSION = '5.01';
 
 ##############################################################################
 # Implementation
@@ -171,7 +169,7 @@ Russ Allbery <rra@cpan.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2001, 2008, 2009, 2014, 2018-2019 Russ Allbery <rra@cpan.org>
+Copyright 2001, 2008, 2009, 2014, 2018-2019, 2022 Russ Allbery <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
 under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm,v
diff -u -p -a -u -p -r1.9 Text.pm
--- gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm	1 Mar 2021 23:19:51 -0000	1.9
+++ gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text.pm	21 Feb 2024 15:47:00 -0000
@@ -14,23 +14,20 @@
 
 package Pod::Text;
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
-use vars qw(@ISA @EXPORT %ESCAPES $VERSION);
-
 use Carp qw(carp croak);
 use Encode qw(encode);
 use Exporter ();
 use Pod::Simple ();
 
-@ISA = qw(Pod::Simple Exporter);
+our @ISA = qw(Pod::Simple Exporter);
+our $VERSION = '5.01';
 
 # We have to export pod2text for backward compatibility.
-@EXPORT = qw(pod2text);
-
-$VERSION = '4.14';
+our @EXPORT = qw(pod2text);
 
 # Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available.  Code
 # taken from Pod::Simple 3.32, but was only added in 3.30.
@@ -43,6 +40,11 @@ if ($Pod::Simple::VERSION ge 3.30) {
     $SHY  = chr utf8::unicode_to_native(0xAD);
 }
 
+# Import the ASCII constant from Pod::Simple.  This is true iff we're in an
+# ASCII-based universe (including such things as ISO 8859-1 and UTF-8), and is
+# generally only false for EBCDIC.
+BEGIN { *ASCII = \&Pod::Simple::ASCII }
+
 ##############################################################################
 # Initialization
 ##############################################################################
@@ -64,9 +66,6 @@ sub new {
     my $class = shift;
     my $self = $class->SUPER::new;
 
-    # Tell Pod::Simple to handle S<> by automatically inserting &nbsp;.
-    $self->nbsp_for_S (1);
-
     # Tell Pod::Simple to keep whitespace whenever possible.
     if ($self->can ('preserve_whitespace')) {
         $self->preserve_whitespace (1);
@@ -89,16 +88,20 @@ sub new {
     my @opts = map { ("opt_$_", $opts{$_}) } keys %opts;
     %$self = (%$self, @opts);
 
-    # Send errors to stderr if requested.
+    # Backwards-compatibility support for the stderr option.
     if ($$self{opt_stderr} and not $$self{opt_errors}) {
         $$self{opt_errors} = 'stderr';
     }
     delete $$self{opt_stderr};
 
-    # Validate the errors parameter and act on it.
-    if (not defined $$self{opt_errors}) {
-        $$self{opt_errors} = 'pod';
+    # Backwards-compatibility support for the utf8 option.
+    if ($$self{opt_utf8} && !$$self{opt_encoding}) {
+        $$self{opt_encoding} = 'UTF-8';
     }
+    delete $$self{opt_utf8};
+
+    # Validate the errors parameter and act on it.
+    $$self{opt_errors} //= 'pod';
     if ($$self{opt_errors} eq 'stderr' || $$self{opt_errors} eq 'die') {
         $self->no_errata_section (1);
         $self->complain_stderr (1);
@@ -117,12 +120,12 @@ sub new {
     delete $$self{errors};
 
     # Initialize various things from our parameters.
-    $$self{opt_alt}      = 0  unless defined $$self{opt_alt};
-    $$self{opt_indent}   = 4  unless defined $$self{opt_indent};
-    $$self{opt_margin}   = 0  unless defined $$self{opt_margin};
-    $$self{opt_loose}    = 0  unless defined $$self{opt_loose};
-    $$self{opt_sentence} = 0  unless defined $$self{opt_sentence};
-    $$self{opt_width}    = 76 unless defined $$self{opt_width};
+    $$self{opt_alt}      //= 0;
+    $$self{opt_indent}   //= 4;
+    $$self{opt_margin}   //= 0;
+    $$self{opt_loose}    //= 0;
+    $$self{opt_sentence} //= 0;
+    $$self{opt_width}    //= 76;
 
     # Figure out what quotes we'll be using for C<> text.
     $$self{opt_quotes} ||= '"';
@@ -138,6 +141,17 @@ sub new {
         croak qq(Invalid quote specification "$$self{opt_quotes}");
     }
 
+    # Configure guesswork based on options.
+    my $guesswork = $self->{opt_guesswork} || q{};
+    my %guesswork = map { $_ => 1 } split(m{,}xms, $guesswork);
+    if (!%guesswork || $guesswork{all}) {
+        $$self{GUESSWORK} = {quoting => 1};
+    } elsif ($guesswork{none}) {
+        $$self{GUESSWORK} = {};
+    } else {
+        $$self{GUESSWORK} = {%guesswork};
+    }
+
     # If requested, do something with the non-POD text.
     $self->code_handler (\&handle_code) if $$self{opt_code};
 
@@ -272,9 +286,7 @@ sub reformat {
 }
 
 # Output text to the output device.  Replace non-breaking spaces with spaces
-# and soft hyphens with nothing, and then try to fix the output encoding if
-# necessary to match the input encoding unless UTF-8 output is forced.  This
-# preserves the traditional pass-through behavior of Pod::Text.
+# and soft hyphens with nothing, and then determine the output encoding.
 sub output {
     my ($self, @text) = @_;
     my $text = join ('', @text);
@@ -284,15 +296,39 @@ sub output {
     if ($SHY) {
         $text =~ s/$SHY//g;
     }
-    unless ($$self{opt_utf8}) {
-        my $encoding = $$self{encoding} || '';
-        if ($encoding && $encoding ne $$self{ENCODING}) {
-            $$self{ENCODING} = $encoding;
-            eval { binmode ($$self{output_fh}, ":encoding($encoding)") };
-        }
-    }
+
+    # The logic used here is described in the POD documentation.  Prefer the
+    # configured encoding, then the pass-through option of using the same
+    # encoding as the input, and then UTF-8, but commit to an encoding for the
+    # document.
+    #
+    # ENCODE says whether to encode or not and is turned off if there is a
+    # PerlIO encoding layer (in start_document).  ENCODING is the encoding
+    # that we previously committed to and is cleared at the start of each
+    # document.
     if ($$self{ENCODE}) {
-        print { $$self{output_fh} } encode ('UTF-8', $text);
+        my $encoding = $$self{ENCODING};
+        if (!$encoding) {
+            $encoding = $self->encoding();
+            if (!$encoding && ASCII && $text =~ /[^\x00-\x7F]/) {
+                $encoding = 'UTF-8';
+            }
+            if ($encoding) {
+                $$self{ENCODING} = $encoding;
+            }
+        }
+        if ($encoding) {
+            my $check = sub {
+                my ($char) = @_;
+                my $display = '"\x{' . hex($char) . '}"';
+                my $error = "$display does not map to $$self{ENCODING}";
+                $self->whine ($self->line_count(), $error);
+                return Encode::encode ($$self{ENCODING}, chr($char));
+            };
+            print { $$self{output_fh} } encode ($encoding, $text, $check);
+        } else {
+            print { $$self{output_fh} } $text;
+        }
     } else {
         print { $$self{output_fh} } $text;
     }
@@ -322,24 +358,18 @@ sub start_document {
     $$self{MARGIN}  = $margin;  # Default left margin.
     $$self{PENDING} = [[]];     # Pending output.
 
-    # We have to redo encoding handling for each document.
-    $$self{ENCODING} = '';
-
-    # When UTF-8 output is set, check whether our output file handle already
-    # has a PerlIO encoding layer set.  If it does not, we'll need to encode
-    # our output before printing it (handled in the output() sub).
-    $$self{ENCODE} = 0;
-    if ($$self{opt_utf8}) {
-        $$self{ENCODE} = 1;
-        eval {
-            my @options = (output => 1, details => 1);
-            my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1];
-            if ($flag && ($flag & PerlIO::F_UTF8 ())) {
-                $$self{ENCODE} = 0;
-                $$self{ENCODING} = 'UTF-8';
-            }
-        };
-    }
+    # We have to redo encoding handling for each document.  Check whether the
+    # output file handle already has a PerlIO encoding layer set and, if so,
+    # disable encoding.
+    $$self{ENCODE} = 1;
+    eval {
+        my @options = (output => 1, details => 1);
+        my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1];
+        if ($flag && ($flag & PerlIO::F_UTF8 ())) {
+            $$self{ENCODE} = 0;
+        }
+    };
+    $$self{ENCODING} = $$self{opt_encoding};
 
     return '';
 }
@@ -383,8 +413,7 @@ sub item {
 
     # Calculate the indentation and margin.  $fits is set to true if the tag
     # will fit into the margin of the paragraph given our indentation level.
-    my $indent = $$self{INDENTS}[-1];
-    $indent = $$self{opt_indent} unless defined $indent;
+    my $indent = $$self{INDENTS}[-1] // $$self{opt_indent};
     my $margin = ' ' x $$self{opt_margin};
     my $tag_length = length ($self->strip_format ($tag));
     my $fits = ($$self{MARGIN} - $indent >= $tag_length + 1);
@@ -588,6 +617,13 @@ sub cmd_f { return $_[0]{alt} ? "\"$_[2]
 sub cmd_i { return '*' . $_[2] . '*' }
 sub cmd_x { return '' }
 
+# Convert all internal whitespace to $NBSP.
+sub cmd_s {
+    my ($self, $attrs, $text) = @_;
+    $text =~ s{ \s }{$NBSP}xmsg;
+    return $text;
+}
+
 # Apply a whole bunch of messy heuristics to not quote things that don't
 # benefit from being quoted.  These originally come from Barrie Slaymaker and
 # largely duplicate code in Pod::Man.
@@ -597,23 +633,35 @@ sub cmd_c {
     # A regex that matches the portion of a variable reference that's the
     # array or hash index, separated out just because we want to use it in
     # several places in the following regex.
-    my $index = '(?: \[.*\] | \{.*\} )?';
+    my $index = '(?: \[[^]]+\] | \{[^}]+\} )?';
 
     # Check for things that we don't want to quote, and if we find any of
     # them, return the string with just a font change and no quoting.
+    #
+    # Traditionally, Pod::Text has not quoted Perl variables, functions,
+    # numbers, or hex constants, but this is not always desirable.  Make this
+    # optional on the quoting guesswork flag.
+    my $extra = qr{(?!)}xms;    # never matches
+    if ($$self{GUESSWORK}{quoting}) {
+        $extra = qr{
+             \$+ [\#^]? \S $index            # special ($^F, $")
+           | [\$\@%&*]+ \#? [:\'\w]+ $index  # plain var or func
+           | [\$\@%&*]* [:\'\w]+
+             (?: -> )? \(\s*[^\s,\)]*\s*\)   # 0/1-arg func call
+           | [+-]? ( \d[\d.]* | \.\d+ )
+             (?: [eE][+-]?\d+ )?             # a number
+           | 0x [a-fA-F\d]+                  # a hex constant
+         }xms;
+    }
     $text =~ m{
       ^\s*
       (?:
-         ( [\'\`\"] ) .* \1                             # already quoted
-       | \` .* \'                                       # `quoted'
-       | \$+ [\#^]? \S $index                           # special ($^Foo, $")
-       | [\$\@%&*]+ \#? [:\'\w]+ $index                 # plain var or func
-       | [\$\@%&*]* [:\'\w]+ (?: -> )? \(\s*[^\s,]\s*\) # 0/1-arg func call
-       | [+-]? ( \d[\d.]* | \.\d+ ) (?: [eE][+-]?\d+ )? # a number
-       | 0x [a-fA-F\d]+                                 # a hex constant
+         ( [\'\`\"] ) .* \1                  # already quoted
+       | \` .* \'                            # `quoted'
+       | $extra
       )
       \s*\z
-     }xo && return $text;
+     }xms and return $text;
 
     # If we didn't return, go ahead and quote the text.
     return $$self{opt_alt}
@@ -766,7 +814,7 @@ __END__
 
 =for stopwords
 alt stderr Allbery Sean Burke's Christiansen UTF-8 pre-Unicode utf8 nourls
-parsers
+parsers EBCDIC autodetecting superset unrepresentable FH NNN
 
 =head1 NAME
 
@@ -785,67 +833,180 @@ Pod::Text - Convert POD data to formatte
 
 =head1 DESCRIPTION
 
-Pod::Text is a module that can convert documentation in the POD format
-(the preferred language for documenting Perl) into formatted text.  It
-uses no special formatting controls or codes whatsoever, and its output is
-therefore suitable for nearly any device.
+Pod::Text is a module that can convert documentation in the POD format (the
+preferred language for documenting Perl) into formatted text.  It uses no
+special formatting controls or codes, and its output is therefore suitable for
+nearly any device.
 
-As a derived class from Pod::Simple, Pod::Text supports the same methods and
-interfaces.  See L<Pod::Simple> for all the details; briefly, one creates a
-new parser with C<< Pod::Text->new() >> and then normally calls parse_file().
+=head2 Encoding
+
+Pod::Text uses the following logic to choose an output encoding, in order:
+
+=over 4
+
+=item 1.
+
+If a PerlIO encoding layer is set on the output file handle, do not do any
+output encoding and will instead rely on the PerlIO encoding layer.
+
+=item 2.
+
+If the C<encoding> or C<utf8> options are set, use the output encoding
+specified by those options.
+
+=item 3.
+
+If the input encoding of the POD source file was explicitly specified (using
+C<=encoding>) or automatically detected by Pod::Simple, use that as the output
+encoding as well.
+
+=item 4.
+
+Otherwise, if running on a non-EBCDIC system, use UTF-8 as the output
+encoding.  Since this is a superset of ASCII, this will result in ASCII output
+unless the POD input contains non-ASCII characters without declaring or
+autodetecting an encoding (usually via EZ<><> escapes).
+
+=item 5.
+
+Otherwise, for EBCDIC systems, output without doing any encoding and hope
+this works.
+
+=back
+
+One caveat: Pod::Text has to commit to an output encoding the first time it
+outputs a non-ASCII character, and then has to stick with it for consistency.
+However, C<=encoding> commands don't have to be at the beginning of a POD
+document.  If someone uses a non-ASCII character early in a document with an
+escape, such as EZ<><0xEF>, and then puts C<=encoding iso-8859-1> later,
+ideally Pod::Text would follow rule 3 and output the entire document as ISO
+8859-1.  Instead, it will commit to UTF-8 following rule 4 as soon as it sees
+that escape, and then stick with that encoding for the rest of the document.
+
+Unfortunately, there's no universally good choice for an output encoding.
+Each choice will be incorrect in some circumstances.  This approach was chosen
+primarily for backwards compatibility.  Callers should consider forcing the
+output encoding via C<encoding> if they have any knowledge about what encoding
+the user may expect.
+
+In particular, consider importing the L<Encode::Locale> module, if available,
+and setting C<encoding> to C<locale> to use an output encoding appropriate to
+the user's locale.  But be aware that if the user is not using locales or is
+using a locale of C<C>, Encode::Locale will set the output encoding to
+US-ASCII.  This will cause all non-ASCII characters will be replaced with C<?>
+and produce a flurry of warnings about unsupported characters, which may or
+may not be what you want.
+
+=head1 CLASS METHODS
 
-new() can take options, in the form of key/value pairs, that control the
-behavior of the parser.  The currently recognized options are:
+=over 4
+
+=item new(ARGS)
+
+Create a new Pod::Text object.  ARGS should be a list of key/value pairs,
+where the keys are chosen from the following.  Each option is annotated with
+the version of Pod::Text in which that option was added with its current
+meaning.
 
 =over 4
 
 =item alt
 
-If set to a true value, selects an alternate output format that, among other
-things, uses a different heading style and marks C<=item> entries with a
+[2.00] If set to a true value, selects an alternate output format that, among
+other things, uses a different heading style and marks C<=item> entries with a
 colon in the left margin.  Defaults to false.
 
 =item code
 
-If set to a true value, the non-POD parts of the input file will be included
-in the output.  Useful for viewing code documented with POD blocks with the
-POD rendered and the code left intact.
+[2.13] If set to a true value, the non-POD parts of the input file will be
+included in the output.  Useful for viewing code documented with POD blocks
+with the POD rendered and the code left intact.
+
+=item encoding
+
+[5.00] Specifies the encoding of the output.  The value must be an encoding
+recognized by the L<Encode> module (see L<Encode::Supported>).  If the output
+contains characters that cannot be represented in this encoding, that is an
+error that will be reported as configured by the C<errors> option.  If error
+handling is other than C<die>, the unrepresentable character will be replaced
+with the Encode substitution character (normally C<?>).
+
+If the output file handle has a PerlIO encoding layer set, this parameter will
+be ignored and no encoding will be done by Pod::Man.  It will instead rely on
+the encoding layer to make whatever output encoding transformations are
+desired.
+
+WARNING: The input encoding of the POD source is independent from the output
+encoding, and setting this option does not affect the interpretation of the
+POD input.  Unless your POD source is US-ASCII, its encoding should be
+declared with the C<=encoding> command in the source, as near to the top of
+the file as possible.  If this is not done, Pod::Simple will will attempt to
+guess the encoding and may be successful if it's Latin-1 or UTF-8, but it will
+produce warnings.  See L<perlpod(1)> for more information.
 
 =item errors
 
-How to report errors.  C<die> says to throw an exception on any POD
-formatting error.  C<stderr> says to report errors on standard error, but
-not to throw an exception.  C<pod> says to include a POD ERRORS section
-in the resulting documentation summarizing the errors.  C<none> ignores
-POD errors entirely, as much as possible.
+[3.17] How to report errors.  C<die> says to throw an exception on any POD
+formatting error.  C<stderr> says to report errors on standard error, but not
+to throw an exception.  C<pod> says to include a POD ERRORS section in the
+resulting documentation summarizing the errors.  C<none> ignores POD errors
+entirely, as much as possible.
 
 The default is C<pod>.
 
+=item guesswork
+
+[5.01] By default, Pod::Text applies some default formatting rules based on
+guesswork and regular expressions that are intended to make writing Perl
+documentation easier and require less explicit markup.  These rules may not
+always be appropriate, particularly for documentation that isn't about Perl.
+This option allows turning all or some of it off.
+
+The special value C<all> enables all guesswork.  This is also the default for
+backward compatibility reasons.  The special value C<none> disables all
+guesswork.  Otherwise, the value of this option should be a comma-separated
+list of one or more of the following keywords:
+
+=over 4
+
+=item quoting
+
+If no guesswork is enabled, any text enclosed in CZ<><> is surrounded by
+double quotes in nroff (terminal) output unless the contents are already
+quoted.  When this guesswork is enabled, quote marks will also be suppressed
+for Perl variables, function names, function calls, numbers, and hex
+constants.
+
+=back
+
+Any unknown guesswork name is silently ignored (for potential future
+compatibility), so be careful about spelling.
+
 =item indent
 
-The number of spaces to indent regular text, and the default indentation for
-C<=over> blocks.  Defaults to 4.
+[2.00] The number of spaces to indent regular text, and the default
+indentation for C<=over> blocks.  Defaults to 4.
 
 =item loose
 
-If set to a true value, a blank line is printed after a C<=head1> heading.
-If set to false (the default), no blank line is printed after C<=head1>,
-although one is still printed after C<=head2>.  This is the default because
-it's the expected formatting for manual pages; if you're formatting
+[2.00] If set to a true value, a blank line is printed after a C<=head1>
+heading.  If set to false (the default), no blank line is printed after
+C<=head1>, although one is still printed after C<=head2>.  This is the default
+because it's the expected formatting for manual pages; if you're formatting
 arbitrary text documents, setting this to true may result in more pleasing
 output.
 
 =item margin
 
-The width of the left margin in spaces.  Defaults to 0.  This is the margin
-for all text, including headings, not the amount by which regular text is
-indented; for the latter, see the I<indent> option.  To set the right
+[2.21] The width of the left margin in spaces.  Defaults to 0.  This is the
+margin for all text, including headings, not the amount by which regular text
+is indented; for the latter, see the I<indent> option.  To set the right
 margin, see the I<width> option.
 
 =item nourls
 
-Normally, LZ<><> formatting codes with a URL but anchor text are formatted
-to show both the anchor text and the URL.  In other words:
+[3.17] Normally, LZ<><> formatting codes with a URL but anchor text are
+formatted to show both the anchor text and the URL.  In other words:
 
     L<foo|http://example.com/>
 
@@ -853,74 +1014,131 @@ is formatted as:
 
     foo <http://example.com/>
 
-This option, if set to a true value, suppresses the URL when anchor text
-is given, so this example would be formatted as just C<foo>.  This can
-produce less cluttered output in cases where the URLs are not particularly
-important.
+This option, if set to a true value, suppresses the URL when anchor text is
+given, so this example would be formatted as just C<foo>.  This can produce
+less cluttered output in cases where the URLs are not particularly important.
 
 =item quotes
 
-Sets the quote marks used to surround CE<lt>> text.  If the value is a
-single character, it is used as both the left and right quote.  Otherwise,
-it is split in half, and the first half of the string is used as the left
-quote and the second is used as the right quote.
+[4.00] Sets the quote marks used to surround CE<lt>> text.  If the value is a
+single character, it is used as both the left and right quote.  Otherwise, it
+is split in half, and the first half of the string is used as the left quote
+and the second is used as the right quote.
 
 This may also be set to the special value C<none>, in which case no quote
 marks are added around CE<lt>> text.
 
 =item sentence
 
-If set to a true value, Pod::Text will assume that each sentence ends in two
-spaces, and will try to preserve that spacing.  If set to false, all
-consecutive whitespace in non-verbatim paragraphs is compressed into a
-single space.  Defaults to false.
+[3.00] If set to a true value, Pod::Text will assume that each sentence ends
+in two spaces, and will try to preserve that spacing.  If set to false, all
+consecutive whitespace in non-verbatim paragraphs is compressed into a single
+space.  Defaults to false.
 
 =item stderr
 
-Send error messages about invalid POD to standard error instead of
-appending a POD ERRORS section to the generated output.  This is
-equivalent to setting C<errors> to C<stderr> if C<errors> is not already
-set.  It is supported for backward compatibility.
+[3.10] Send error messages about invalid POD to standard error instead of
+appending a POD ERRORS section to the generated output.  This is equivalent to
+setting C<errors> to C<stderr> if C<errors> is not already set.  It is
+supported for backward compatibility.
 
 =item utf8
 
-By default, Pod::Text uses the same output encoding as the input encoding
-of the POD source (provided that Perl was built with PerlIO; otherwise, it
-doesn't encode its output).  If this option is given, the output encoding
-is forced to UTF-8.
-
-Be aware that, when using this option, the input encoding of your POD
-source should be properly declared unless it's US-ASCII.  Pod::Simple will
-attempt to guess the encoding and may be successful if it's Latin-1 or
-UTF-8, but it will produce warnings.  Use the C<=encoding> command to
-declare the encoding.  See L<perlpod(1)> for more information.
+[3.12] If this option is set to a true value, the output encoding is set to
+UTF-8.  This is equivalent to setting C<encoding> to C<UTF-8> if C<encoding>
+is not already set.  It is supported for backward compatibility.
 
 =item width
 
-The column at which to wrap text on the right-hand side.  Defaults to 76.
+[2.00] The column at which to wrap text on the right-hand side.  Defaults to
+76.
+
+=back
+
+=back
+
+=head1 INSTANCE METHODS
+
+As a derived class from Pod::Simple, Pod::Text supports the same methods and
+interfaces.  See L<Pod::Simple> for all the details.  This section summarizes
+the most-frequently-used methods and the ones added by Pod::Text.
+
+=over 4
+
+=item output_fh(FH)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the file handle FH instead of C<STDOUT>.
+
+=item output_string(REF)
+
+Direct the output from parse_file(), parse_lines(), or parse_string_document()
+to the scalar variable pointed to by REF, rather than C<STDOUT>.  For example:
+
+    my $man = Pod::Man->new();
+    my $output;
+    $man->output_string(\$output);
+    $man->parse_file('/some/input/file');
+
+Be aware that the output in that variable will already be encoded (see
+L</Encoding>).
+
+=item parse_file(PATH)
+
+Read the POD source from PATH and format it.  By default, the output is sent
+to C<STDOUT>, but this can be changed with the output_fh() or output_string()
+methods.
+
+=item parse_from_file(INPUT, OUTPUT)
+
+=item parse_from_filehandle(FH, OUTPUT)
+
+Read the POD source from INPUT, format it, and output the results to OUTPUT.
+
+parse_from_filehandle() is provided for backward compatibility with older
+versions of Pod::Man.  parse_from_file() should be used instead.
+
+=item parse_lines(LINES[, ...[, undef]])
+
+Parse the provided lines as POD source, writing the output to either C<STDOUT>
+or the file handle set with the output_fh() or output_string() methods.  This
+method can be called repeatedly to provide more input lines.  An explicit
+C<undef> should be passed to indicate the end of input.
+
+This method expects raw bytes, not decoded characters.
+
+=item parse_string_document(INPUT)
+
+Parse the provided scalar variable as POD source, writing the output to either
+C<STDOUT> or the file handle set with the output_fh() or output_string()
+methods.
+
+This method expects raw bytes, not decoded characters.
 
 =back
 
-The standard Pod::Simple method parse_file() takes one argument naming the
-POD file to read from.  By default, the output is sent to C<STDOUT>, but
-this can be changed with the output_fh() method.
-
-The standard Pod::Simple method parse_from_file() takes up to two
-arguments, the first being the input file to read POD from and the second
-being the file to write the formatted output to.
-
-You can also call parse_lines() to parse an array of lines or
-parse_string_document() to parse a document already in memory.  As with
-parse_file(), parse_lines() and parse_string_document() default to sending
-their output to C<STDOUT> unless changed with the output_fh() method.  Be
-aware that parse_lines() and parse_string_document() both expect raw bytes,
-not decoded characters.
+=head1 FUNCTIONS
 
-To put the output from any parse method into a string instead of a file
-handle, call the output_string() method instead of output_fh().
+Pod::Text exports one function for backward compatibility with older versions.
+This function is deprecated; instead, use the object-oriented interface
+described above.
 
-See L<Pod::Simple> for more specific details on the methods available to
-all derived parsers.
+=over 4
+
+=item pod2text([[-a,] [-NNN,]] INPUT[, OUTPUT])
+
+Convert the POD source from INPUT to text and write it to OUTPUT.  If OUTPUT
+is not given, defaults to C<STDOUT>.  INPUT can be any expression supported as
+the second argument to two-argument open().
+
+If C<-a> is given as an initial argument, pass the C<alt> option to the
+Pod::Text constructor.  This enables alternative formatting.
+
+If C<-NNN> is given as an initial argument, pass the C<width> option to the
+Pod::Text constructor with the number C<NNN> as its argument.  This sets the
+wrap line width to NNN.
+
+=back
 
 =head1 DIAGNOSTICS
 
@@ -955,61 +1173,66 @@ option was set to C<die>.
 
 =back
 
-=head1 BUGS
+=head1 COMPATIBILITY
 
-Encoding handling assumes that PerlIO is available and does not work
-properly if it isn't.  The C<utf8> option is therefore not supported
-unless Perl is built with PerlIO support.
-
-=head1 CAVEATS
-
-If Pod::Text is given the C<utf8> option, the encoding of its output file
-handle will be forced to UTF-8 if possible, overriding any existing
-encoding.  This will be done even if the file handle is not created by
-Pod::Text and was passed in from outside.  This maintains consistency
-regardless of PERL_UNICODE and other settings.
-
-If the C<utf8> option is not given, the encoding of its output file handle
-will be forced to the detected encoding of the input POD, which preserves
-whatever the input text is.  This ensures backward compatibility with
-earlier, pre-Unicode versions of this module, without large numbers of
-Perl warnings.
-
-This is not ideal, but it seems to be the best compromise.  If it doesn't
-work for you, please let me know the details of how it broke.
-
-=head1 NOTES
-
-This is a replacement for an earlier Pod::Text module written by Tom
-Christiansen.  It has a revamped interface, since it now uses Pod::Simple,
-but an interface roughly compatible with the old Pod::Text::pod2text()
-function is still available.  Please change to the new calling convention,
-though.
-
-The original Pod::Text contained code to do formatting via termcap
-sequences, although it wasn't turned on by default and it was problematic to
-get it to work at all.  This rewrite doesn't even try to do that, but a
-subclass of it does.  Look for L<Pod::Text::Termcap>.
+Pod::Text 2.03 (based on L<Pod::Parser>) was the first version of this module
+included with Perl, in Perl 5.6.0.  Earlier versions of Perl had a different
+Pod::Text module, with a different API.
+
+The current API based on L<Pod::Simple> was added in Pod::Text 3.00.
+Pod::Text 3.01 was included in Perl 5.9.3, the first version of Perl to
+incorporate those changes.  This is the first version that correctly supports
+all modern POD syntax.  The parse_from_filehandle() method was re-added for
+backward compatibility in Pod::Text 3.07, included in Perl 5.9.4.
+
+Pod::Text 3.12, included in Perl 5.10.1, first implemented the current
+practice of attempting to match the default output encoding with the input
+encoding of the POD source, unless overridden by the C<utf8> option or (added
+later) the C<encoding> option.
+
+Support for anchor text in LZ<><> links of type URL was added in Pod::Text
+3.14, included in Perl 5.11.5.
+
+parse_lines(), parse_string_document(), and parse_file() set a default output
+file handle of C<STDOUT> if one was not already set as of Pod::Text 3.18,
+included in Perl 5.19.5.
+
+Pod::Text 4.00, included in Perl 5.23.7, aligned the module version and the
+version of the podlators distribution.  All modules included in podlators, and
+the podlators distribution itself, share the same version number from this
+point forward.
+
+Pod::Text 4.09, included in Perl 5.25.7, fixed a serious bug on EBCDIC
+systems, present in all versions back to 3.00, that would cause opening
+brackets to disappear.
+
+Pod::Text 5.00 now defaults, on non-EBCDIC systems, to UTF-8 encoding if it
+sees a non-ASCII character in the input and the input encoding is not
+specified.  It also commits to an encoding with the first non-ASCII character
+and does not change the output encoding if the input encoding changes.  The
+L<Encode> module is now used for all output encoding rather than PerlIO
+layers, which fixes earlier problems with output to scalars.
 
 =head1 AUTHOR
 
-Russ Allbery <rra@cpan.org>, based I<very> heavily on the original
-Pod::Text by Tom Christiansen <tchrist@mox.perl.com> and its conversion to
-Pod::Parser by Brad Appleton <bradapp@enteract.com>.  Sean Burke's initial
-conversion of Pod::Man to use Pod::Simple provided much-needed guidance on
-how to use Pod::Simple.
+Russ Allbery <rra@cpan.org>, based I<very> heavily on the original Pod::Text
+by Tom Christiansen <tchrist@mox.perl.com> and its conversion to Pod::Parser
+by Brad Appleton <bradapp@enteract.com>.  Sean Burke's initial conversion of
+Pod::Man to use Pod::Simple provided much-needed guidance on how to use
+Pod::Simple.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 1999-2002, 2004, 2006, 2008-2009, 2012-2016, 2018-2019 Russ Allbery
-<rra@cpan.org>
+Copyright 1999-2002, 2004, 2006, 2008-2009, 2012-2016, 2018-2019, 2022 Russ
+Allbery <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
 under the same terms as Perl itself.
 
 =head1 SEE ALSO
 
-L<Pod::Simple>, L<Pod::Text::Termcap>, L<perlpod(1)>, L<pod2text(1)>
+L<Encode::Locale>, L<Encode::Supproted>, L<Pod::Simple>,
+L<Pod::Text::Termcap>, L<perlpod(1)>, L<pod2text(1)>
 
 The current version of this module is always available from its web site at
 L<https://www.eyrie.org/~eagle/software/podlators/>.  It is also part of the
Index: gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm,v
diff -u -p -a -u -p -r1.5 Color.pm
--- gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Color.pm	21 Feb 2024 15:47:00 -0000
@@ -12,18 +12,15 @@
 
 package Pod::Text::Color;
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
 use Pod::Text ();
 use Term::ANSIColor qw(color colored);
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(Pod::Text);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Text);
+our $VERSION = '5.01';
 
 ##############################################################################
 # Overrides
@@ -170,11 +167,22 @@ options.
 Term::ANSIColor is used to get colors and therefore must be installed to use
 this module.
 
-=head1 BUGS
+=head1 COMPATIBILITY
+
+Pod::Text::Color 0.05 (based on L<Pod::Parser>) was the first version of this
+module included with Perl, in Perl 5.6.0.
 
-This is just a basic proof of concept.  It should be seriously expanded to
-support configurable coloration via options passed to the constructor, and
-B<pod2text> should be taught about those.
+The current API based on L<Pod::Simple> was added in Pod::Text::Color 2.00.
+Pod::Text::Color 2.01 was included in Perl 5.9.3, the first version of Perl to
+incorporate those changes.
+
+Several problems with wrapping and line length were fixed as recently as
+Pod::Text::Color 4.11, included in Perl 5.29.1.
+
+This module inherits its API and most behavior from Pod::Text, so the details
+in L<Pod::Text/COMPATIBILITY> also apply.  Pod::Text and Pod::Text::Color have
+had the same module version since 4.00, included in Perl 5.23.7.  (They
+unfortunately diverge in confusing ways prior to that.)
 
 =head1 AUTHOR
 
@@ -182,7 +190,7 @@ Russ Allbery <rra@cpan.org>.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 1999, 2001, 2004, 2006, 2008, 2009, 2018-2019 Russ Allbery
+Copyright 1999, 2001, 2004, 2006, 2008, 2009, 2018-2019, 2022 Russ Allbery
 <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
Index: gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm,v
diff -u -p -a -u -p -r1.5 Overstrike.pm
--- gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Overstrike.pm	21 Feb 2024 15:47:00 -0000
@@ -19,17 +19,14 @@
 
 package Pod::Text::Overstrike;
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
-use vars qw(@ISA $VERSION);
-
 use Pod::Text ();
 
-@ISA = qw(Pod::Text);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Text);
+our $VERSION = '5.01';
 
 ##############################################################################
 # Overrides
@@ -176,6 +173,22 @@ Currently, the outermost formatting inst
 underlined text inside a region of bold text is displayed as simply bold.
 There may be some better approach possible.
 
+=head1 COMPATIBILITY
+
+Pod::Text::Overstrike 1.01 (based on L<Pod::Parser>) was the first version of
+this module included with Perl, in Perl 5.6.1.
+
+The current API based on L<Pod::Simple> was added in Pod::Text::Overstrike
+2.00, included in Perl 5.9.3.
+
+Several problems with wrapping and line length were fixed as recently as
+Pod::Text::Overstrike 2.04, included in Perl 5.11.5.
+
+This module inherits its API and most behavior from Pod::Text, so the details
+in L<Pod::Text/COMPATIBILITY> also apply.  Pod::Text and Pod::Text::Overstrike
+have had the same module version since 4.00, included in Perl 5.23.7.  (They
+unfortunately diverge in confusing ways prior to that.)
+
 =head1 AUTHOR
 
 Originally written by Joe Smith <Joe.Smith@inwap.com>, using the framework
@@ -185,7 +198,7 @@ created by Russ Allbery <rra@cpan.org>. 
 
 Copyright 2000 by Joe Smith <Joe.Smith@inwap.com>
 
-Copyright 2001, 2004, 2008, 2014, 2018-2019 by Russ Allbery <rra@cpan.org>
+Copyright 2001, 2004, 2008, 2014, 2018-2019, 2022 by Russ Allbery <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
 under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm,v
diff -u -p -a -u -p -r1.5 Termcap.pm
--- gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/lib/Pod/Text/Termcap.pm	21 Feb 2024 15:47:00 -0000
@@ -12,7 +12,7 @@
 
 package Pod::Text::Termcap;
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -20,11 +20,8 @@ use Pod::Text ();
 use POSIX ();
 use Term::Cap;
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(Pod::Text);
-
-$VERSION = '4.14';
+our @ISA = qw(Pod::Text);
+our $VERSION = '5.01';
 
 ##############################################################################
 # Overrides
@@ -204,13 +201,13 @@ sub wrap {
 1;
 __END__
 
+=for stopwords
+ECMA-48 VT100 Allbery Solaris TERMPATH unformatted
+
 =head1 NAME
 
 Pod::Text::Termcap - Convert POD data to ASCII text with format escapes
 
-=for stopwords
-ECMA-48 VT100 Allbery Solaris TERMPATH
-
 =head1 SYNOPSIS
 
     use Pod::Text::Termcap;
@@ -235,14 +232,37 @@ and how to override that behavior if nec
 strings for bold and underscore formatting, that formatting is skipped,
 resulting in the same output as Pod::Text.
 
+=head1 COMPATIBILITY
+
+Pod::Text::Termcap 0.04 (based on L<Pod::Parser>) was the first version of
+this module included with Perl, in Perl 5.6.0.
+
+The current API based on L<Pod::Simple> was added in Pod::Text::Termcap 2.00.
+Pod::Text::Termcap 2.01 was included in Perl 5.9.3, the first version of Perl
+to incorporate those changes.
+
+Several problems with wrapping and line length were fixed as recently as
+Pod::Text::Termcap 4.11, included in Perl 5.29.1.
+
+Pod::Text::Termcap 4.13 stopped setting the TERMPATH environment variable
+during module load.  It also stopped falling back on VT100 escape sequences if
+Term::Cap was not able to find usable escape sequences, instead producing
+unformatted output for better results on dumb terminals.  The next version to
+be incorporated into Perl, 4.14, was included in Perl 5.31.8.
+
+This module inherits its API and most behavior from Pod::Text, so the details
+in L<Pod::Text/COMPATIBILITY> also apply.  Pod::Text and Pod::Text::Termcap
+have had the same module version since 4.00, included in Perl 5.23.7.  (They
+unfortunately diverge in confusing ways prior to that.)
+
 =head1 AUTHOR
 
 Russ Allbery <rra@cpan.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 1999, 2001-2002, 2004, 2006, 2008-2009, 2014-2015, 2018-2019 Russ
-Allbery <rra@cpan.org>
+Copyright 1999, 2001-2002, 2004, 2006, 2008-2009, 2014-2015, 2018-2019, 2022
+Russ Allbery <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
 under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL,v
diff -u -p -a -u -p -r1.17 pod2man.PL
--- gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL	15 Feb 2023 01:38:22 -0000	1.17
+++ gnu/usr.bin/perl/cpan/podlators/scripts/pod2man.PL	21 Feb 2024 15:47:00 -0000
@@ -38,7 +38,7 @@ print "Extracting $file (with variable s
 print {$out} <<"PREAMBLE" or die "Cannot write to $file: $!\n";
 $Config{startperl}
     eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
-        if \$running_under_some_shell;
+        if 0; # ^ Run only under a shell
 PREAMBLE
 
 # In the following, Perl variables are not expanded during extraction.
@@ -71,13 +71,12 @@ my $stdin;
 # Parse our options, trying to retain backward compatibility with pod2man but
 # allowing short forms as well.  --lax is currently ignored.
 my %options;
-$options{utf8} = 1;
 Getopt::Long::config ('bundling_override');
-GetOptions (\%options, 'center|c=s', 'date|d=s', 'errors=s', 'fixed=s',
-            'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'help|h',
-            'lax|l', 'lquote=s', 'name|n=s', 'nourls', 'official|o',
-            'quotes|q=s', 'release|r=s', 'rquote=s', 'section|s=s', 'stderr',
-            'verbose|v', 'utf8|u!')
+GetOptions (\%options, 'center|c=s', 'date|d=s', 'encoding|e=s', 'errors=s',
+            'fixed=s', 'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s',
+            'guesswork=s', 'help|h', 'lax|l', 'language=s', 'lquote=s',
+            'name|n=s', 'nourls', 'official|o', 'quotes|q=s', 'release|r=s',
+            'rquote=s', 'section|s=s', 'stderr', 'verbose|v', 'utf8|u')
     or exit 1;
 pod2usage (0) if $options{help};
 
@@ -127,9 +126,9 @@ exit $status;
 __END__
 
 =for stopwords
-en em --stderr stderr --no-utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris URL
+en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris URL
 troff troff-specific formatters uppercased Christiansen --nourls UTC prepend
-lquote rquote
+lquote rquote unrepresentable mandoc manref EBCDIC
 
 =head1 NAME
 
@@ -137,118 +136,221 @@ pod2man - Convert POD data to formatted 
 
 =head1 SYNOPSIS
 
-pod2man [B<--center>=I<string>] [B<--date>=I<string>] [B<--errors>=I<style>]
-    [B<--fixed>=I<font>] [B<--fixedbold>=I<font>] [B<--fixeditalic>=I<font>]
-    [B<--fixedbolditalic>=I<font>] [B<--name>=I<name>] [B<--nourls>]
-    [B<--official>] [B<--release>=I<version>] [B<--section>=I<manext>]
+pod2man [B<--center>=I<string>] [B<--date>=I<string>]
+    [B<--encoding>=I<encoding>] [B<--errors>=I<style>] [B<--fixed>=I<font>]
+    [B<--fixedbold>=I<font>] [B<--fixeditalic>=I<font>]
+    [B<--fixedbolditalic>=I<font>] [B<--guesswork>=I<rule>[,I<rule>...]]
+    [B<--name>=I<name>] [B<--nourls>] [B<--official>]
+    [B<--release>=I<version>] [B<--section>=I<manext>]
     [B<--quotes>=I<quotes>] [B<--lquote>=I<quote>] [B<--rquote>=I<quote>]
-    [B<--stderr>] [B<--no-utf8>] [B<--verbose>] [I<input> [I<output>] ...]
+    [B<--stderr>] [B<--utf8>] [B<--verbose>] [I<input> [I<output>] ...]
 
 pod2man B<--help>
 
 =head1 DESCRIPTION
 
-B<pod2man> is a front-end for Pod::Man, using it to generate *roff input
-from POD source.  The resulting *roff code is suitable for display on a
-terminal using nroff(1), normally via man(1), or printing using troff(1).
-
-I<input> is the file to read for POD source (the POD can be embedded in
-code).  If I<input> isn't given, it defaults to C<STDIN>.  I<output>, if
-given, is the file to which to write the formatted output.  If I<output>
-isn't given, the formatted output is written to C<STDOUT>.  Several POD
-files can be processed in the same B<pod2man> invocation (saving module
-load and compile times) by providing multiple pairs of I<input> and
-I<output> files on the command line.
-
-B<--section>, B<--release>, B<--center>, B<--date>, and B<--official> can
-be used to set the headers and footers to use; if not given, Pod::Man will
-assume various defaults.  See below or L<Pod::Man> for details.
-
-B<pod2man> assumes that your *roff formatters have a fixed-width font
-named C<CW>.  If yours is called something else (like C<CR>), use
-B<--fixed> to specify it.  This generally only matters for troff output
-for printing.  Similarly, you can set the fonts used for bold, italic, and
-bold italic fixed-width output.
-
-Besides the obvious pod conversions, Pod::Man, and therefore pod2man also
-takes care of formatting func(), func(n), and simple variable references
-like $foo or @bar so you don't have to use code escapes for them; complex
-expressions like C<$fred{'stuff'}> will still need to be escaped, though.
-It also translates dashes that aren't used as hyphens into en dashes, makes
-long dashes--like this--into proper em dashes, fixes "paired quotes," and
-takes care of several other troff-specific tweaks.  See L<Pod::Man> for
-complete information.
+B<pod2man> is a wrapper script around the L<Pod::Man> module, using it to
+generate *roff input from POD source.  The resulting *roff code is suitable
+for display on a terminal using L<nroff(1)>, normally via L<man(1)>, or
+printing using L<troff(1)>.
+
+By default (on non-EBCDIC systems), B<pod2man> outputs UTF-8 manual pages.
+Its output should work with the B<man> program on systems that use B<groff>
+(most Linux distributions) or B<mandoc> (most BSD variants), but may result in
+mangled output on older UNIX systems.  To choose a different, possibly more
+backward-compatible output mangling on such systems, use C<--encoding=roff>
+(the default in earlier Pod::Man versions).  See the B<--encoding> option and
+L<Pod::Man/ENCODING> for more details.
+
+I<input> is the file to read for POD source (the POD can be embedded in code).
+If I<input> isn't given, it defaults to C<STDIN>.  I<output>, if given, is the
+file to which to write the formatted output.  If I<output> isn't given, the
+formatted output is written to C<STDOUT>.  Several POD files can be processed
+in the same B<pod2man> invocation (saving module load and compile times) by
+providing multiple pairs of I<input> and I<output> files on the command line.
+
+B<--section>, B<--release>, B<--center>, B<--date>, and B<--official> can be
+used to set the headers and footers to use.  If not given, Pod::Man will
+assume various defaults.  See below for details.
 
 =head1 OPTIONS
 
+Each option is annotated with the version of podlators in which that option
+was added with its current meaning.
+
 =over 4
 
 =item B<-c> I<string>, B<--center>=I<string>
 
-Sets the centered page header for the C<.TH> macro to I<string>.  The
-default is "User Contributed Perl Documentation", but also see
-B<--official> below.
+[1.00] Sets the centered page header for the C<.TH> macro to I<string>.  The
+default is C<User Contributed Perl Documentation>, but also see B<--official>
+below.
 
 =item B<-d> I<string>, B<--date>=I<string>
 
-Set the left-hand footer string for the C<.TH> macro to I<string>.  By
-default, the modification date of the input file will be used, or the
-current date if input comes from C<STDIN>, and will be based on UTC (so
-that the output will be reproducible regardless of local time zone).
+[4.00] Set the left-hand footer string for the C<.TH> macro to I<string>.  By
+default, the first of POD_MAN_DATE, SOURCE_DATE_EPOCH, the modification date
+of the input file, or the current date (if input comes from C<STDIN>) will be
+used, and the date will be in UTC.  See L<Pod::Man/CLASS METHODS> for more
+details.
+
+=item B<-e> I<encoding>, B<--encoding>=I<encoding>
+
+[5.00] Specifies the encoding of the output.  I<encoding> must be an encoding
+recognized by the L<Encode> module (see L<Encode::Supported>).  The default on
+non-EBCDIC systems is UTF-8.
+
+If the output contains characters that cannot be represented in this encoding,
+that is an error that will be reported as configured by the B<--errors>
+option.  If error handling is other than C<die>, the unrepresentable character
+will be replaced with the Encode substitution character (normally C<?>).
+
+If the C<encoding> option is set to the special value C<groff> (the default on
+EBCDIC systems), or if the Encode module is not available and the encoding is
+set to anything other than C<roff> (see below), Pod::Man will translate all
+non-ASCII characters to C<\[uNNNN]> Unicode escapes.  These are not
+traditionally part of the *roff language, but are supported by B<groff> and
+B<mandoc> and thus by the majority of manual page processors in use today.
+
+If I<encoding> is set to the special value C<roff>, B<pod2man> will do its
+historic transformation of (some) ISO 8859-1 characters into *roff escapes
+that may be adequate in troff and may be readable (if ugly) in nroff.  This
+was the default behavior of versions of B<pod2man> before 5.00.  With this
+encoding, all other non-ASCII characters will be replaced with C<X>.  It may
+be required for very old troff and nroff implementations that do not support
+UTF-8, but its representation of any non-ASCII character is very poor and
+often specific to European languages.  Its use is discouraged.
+
+WARNING: The input encoding of the POD source is independent from the output
+encoding, and setting this option does not affect the interpretation of the
+POD input.  Unless your POD source is US-ASCII, its encoding should be
+declared with the C<=encoding> command in the source.  If this is not done,
+Pod::Simple will will attempt to guess the encoding and may be successful if
+it's Latin-1 or UTF-8, but it will produce warnings.  See L<perlpod(1)> for
+more information.
 
 =item B<--errors>=I<style>
 
-Set the error handling style.  C<die> says to throw an exception on any
-POD formatting error.  C<stderr> says to report errors on standard error,
-but not to throw an exception.  C<pod> says to include a POD ERRORS
-section in the resulting documentation summarizing the errors.  C<none>
-ignores POD errors entirely, as much as possible.
+[2.5.0] Set the error handling style.  C<die> says to throw an exception on
+any POD formatting error.  C<stderr> says to report errors on standard error,
+but not to throw an exception.  C<pod> says to include a POD ERRORS section in
+the resulting documentation summarizing the errors.  C<none> ignores POD
+errors entirely, as much as possible.
 
 The default is C<die>.
 
 =item B<--fixed>=I<font>
 
-The fixed-width font to use for verbatim text and code.  Defaults to
-C<CW>.  Some systems may want C<CR> instead.  Only matters for troff(1)
+[1.0] The fixed-width font to use for verbatim text and code.  Defaults to
+C<CW>.  Some systems may want C<CR> instead.  Only matters for B<troff>
 output.
 
 =item B<--fixedbold>=I<font>
 
-Bold version of the fixed-width font.  Defaults to C<CB>.  Only matters
-for troff(1) output.
+[1.0] Bold version of the fixed-width font.  Defaults to C<CB>.  Only matters
+for B<troff> output.
 
 =item B<--fixeditalic>=I<font>
 
-Italic version of the fixed-width font (actually, something of a misnomer,
-since most fixed-width fonts only have an oblique version, not an italic
-version).  Defaults to C<CI>.  Only matters for troff(1) output.
+[1.0] Italic version of the fixed-width font (something of a misnomer, since
+most fixed-width fonts only have an oblique version, not an italic version).
+Defaults to C<CI>.  Only matters for B<troff> output.
 
 =item B<--fixedbolditalic>=I<font>
 
-Bold italic (probably actually oblique) version of the fixed-width font.
-Pod::Man doesn't assume you have this, and defaults to C<CB>.  Some
-systems (such as Solaris) have this font available as C<CX>.  Only matters
-for troff(1) output.
+[1.0] Bold italic (in theory, probably oblique in practice) version of the
+fixed-width font.  Pod::Man doesn't assume you have this, and defaults to
+C<CB>.  Some systems (such as Solaris) have this font available as C<CX>.
+Only matters for B<troff> output.
+
+=item B<--guesswork>=I<rule>[,I<rule>...]
+
+[5.00] By default, B<pod2man> applies some default formatting rules based on
+guesswork and regular expressions that are intended to make writing Perl
+documentation easier and require less explicit markup.  These rules may not
+always be appropriate, particularly for documentation that isn't about Perl.
+This option allows turning all or some of it off.
+
+The special rule C<all> enables all guesswork.  This is also the default for
+backward compatibility reasons.  The special rule C<none> disables all
+guesswork.  Otherwise, the value of this option should be a comma-separated
+list of one or more of the following keywords:
+
+=over 4
+
+=item functions
+
+Convert function references like C<foo()> to bold even if they have no markup.
+The function name accepts valid Perl characters for function names (including
+C<:>), and the trailing parentheses must be present and empty.
+
+=item manref
+
+Make the first part (before the parentheses) of man page references like
+C<foo(1)> bold even if they have no markup.  The section must be a single
+number optionally followed by lowercase letters.
+
+=item quoting
+
+If no guesswork is enabled, any text enclosed in CZ<><> is surrounded by
+double quotes in nroff (terminal) output unless the contents are already
+quoted.  When this guesswork is enabled, quote marks will also be suppressed
+for Perl variables, function names, function calls, numbers, and hex
+constants.
+
+=item variables
+
+Convert Perl variable names to a fixed-width font even if they have no markup.
+This transformation will only be apparent in troff output, or some other
+output format (unlike nroff terminal output) that supports fixed-width fonts.
+
+=back
+
+Any unknown guesswork name is silently ignored (for potential future
+compatibility), so be careful about spelling.
 
 =item B<-h>, B<--help>
 
-Print out usage information.
+[1.00] Print out usage information.
 
 =item B<-l>, B<--lax>
 
-No longer used.  B<pod2man> used to check its input for validity as a
+[1.00] No longer used.  B<pod2man> used to check its input for validity as a
 manual page, but this should now be done by L<podchecker(1)> instead.
 Accepted for backward compatibility; this option no longer does anything.
 
+=item B<--language>=I<language>
+
+[5.00] Add commands telling B<groff> that the input file is in the given
+language.  The value of this setting must be a language abbreviation for which
+B<groff> provides supplemental configuration, such as C<ja> (for Japanese) or
+C<zh> (for Chinese).
+
+This adds:
+
+    .mso <language>.tmac
+    .hla <language>
+
+to the start of the file, which configure correct line breaking for the
+specified language.  Without these commands, groff may not know how to add
+proper line breaks for Chinese and Japanese text if the man page is installed
+into the normal man page directory, such as F</usr/share/man>.
+
+On many systems, this will be done automatically if the man page is installed
+into a language-specific man page directory, such as F</usr/share/man/zh_CN>.
+In that case, this option is not required.
+
+Unfortunately, the commands added with this option are specific to B<groff>
+and will not work with other B<troff> and B<nroff> implementations.
+
 =item B<--lquote>=I<quote>
 
 =item B<--rquote>=I<quote>
 
-Sets the quote marks used to surround CE<lt>> text.  B<--lquote> sets the
-left quote mark and B<--rquote> sets the right quote mark.  Either may also
-be set to the special value C<none>, in which case no quote mark is added
-on that side of CE<lt>> text (but the font is still changed for troff
-output).
+[4.08] Sets the quote marks used to surround CE<lt>> text.  B<--lquote> sets
+the left quote mark and B<--rquote> sets the right quote mark.  Either may
+also be set to the special value C<none>, in which case no quote mark is added
+on that side of CE<lt>> text (but the font is still changed for troff output).
 
 Also see the B<--quotes> option, which can be used to set both quotes at once.
 If both B<--quotes> and one of the other options is set, B<--lquote> or
@@ -256,19 +358,19 @@ B<--rquote> overrides B<--quotes>.
 
 =item B<-n> I<name>, B<--name>=I<name>
 
-Set the name of the manual page for the C<.TH> macro to I<name>.  Without
-this option, the manual name is set to the uppercased base name of the
-file being converted unless the manual section is 3, in which case the
-path is parsed to see if it is a Perl module path.  If it is, a path like
-C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>.  This
-option, if given, overrides any automatic determination of the name.
+[4.08] Set the name of the manual page for the C<.TH> macro to I<name>.
+Without this option, the manual name is set to the uppercased base name of the
+file being converted unless the manual section is 3, in which case the path is
+parsed to see if it is a Perl module path.  If it is, a path like
+C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>.  This option,
+if given, overrides any automatic determination of the name.
 
 Although one does not have to follow this convention, be aware that the
-convention for UNIX man pages for commands is for the man page title to be
-in all-uppercase, even if the command isn't.
+convention for UNIX manual pages is for the title to be in all-uppercase, even
+if the command isn't.  (Perl modules traditionally use mixed case for the
+manual page title, however.)
 
-This option is probably not useful when converting multiple POD files at
-once.
+This option is probably not useful when converting multiple POD files at once.
 
 When converting POD source from standard input, the name will be set to
 C<STDIN> if this option is not provided.  Providing this option is strongly
@@ -276,8 +378,8 @@ recommended to set a meaningful manual p
 
 =item B<--nourls>
 
-Normally, LZ<><> formatting codes with a URL but anchor text are formatted
-to show both the anchor text and the URL.  In other words:
+[2.5.0] Normally, LZ<><> formatting codes with a URL but anchor text are
+formatted to show both the anchor text and the URL.  In other words:
 
     L<foo|http://example.com/>
 
@@ -291,19 +393,19 @@ cluttered output in cases where the URLs
 
 =item B<-o>, B<--official>
 
-Set the default header to indicate that this page is part of the standard
-Perl release, if B<--center> is not also given.
+[1.00] Set the default header to indicate that this page is part of the
+standard Perl release, if B<--center> is not also given.
 
 =item B<-q> I<quotes>, B<--quotes>=I<quotes>
 
-Sets the quote marks used to surround CE<lt>> text to I<quotes>.  If
-I<quotes> is a single character, it is used as both the left and right
-quote.  Otherwise, it is split in half, and the first half of the string
-is used as the left quote and the second is used as the right quote.
-
-I<quotes> may also be set to the special value C<none>, in which case no
-quote marks are added around CE<lt>> text (but the font is still changed for
-troff output).
+[4.00] Sets the quote marks used to surround CE<lt>> text to I<quotes>.  If
+I<quotes> is a single character, it is used as both the left and right quote.
+Otherwise, it is split in half, and the first half of the string is used as
+the left quote and the second is used as the right quote.
+
+I<quotes> may also be set to the special value C<none>, in which case no quote
+marks are added around CE<lt>> text (but the font is still changed for troff
+output).
 
 Also see the B<--lquote> and B<--rquote> options, which can be used to set the
 left and right quotes independently.  If both B<--quotes> and one of the other
@@ -311,67 +413,57 @@ options is set, B<--lquote> or B<--rquot
 
 =item B<-r> I<version>, B<--release>=I<version>
 
-Set the centered footer for the C<.TH> macro to I<version>.  By default,
-this is set to the version of Perl you run B<pod2man> under.  Setting this
-to the empty string will cause some *roff implementations to use the
+[1.00] Set the centered footer for the C<.TH> macro to I<version>.  By
+default, this is set to the version of Perl you run B<pod2man> under.  Setting
+this to the empty string will cause some *roff implementations to use the
 system default value.
 
-Note that some system C<an> macro sets assume that the centered footer
-will be a modification date and will prepend something like "Last
-modified: ".  If this is the case for your target system, you may want to
-set B<--release> to the last modified date and B<--date> to the version
-number.
+Note that some system C<an> macro sets assume that the centered footer will be
+a modification date and will prepend something like C<Last modified: >.  If
+this is the case for your target system, you may want to set B<--release> to
+the last modified date and B<--date> to the version number.
 
 =item B<-s> I<string>, B<--section>=I<string>
 
-Set the section for the C<.TH> macro.  The standard section numbering
-convention is to use 1 for user commands, 2 for system calls, 3 for
-functions, 4 for devices, 5 for file formats, 6 for games, 7 for
-miscellaneous information, and 8 for administrator commands.  There is a lot
-of variation here, however; some systems (like Solaris) use 4 for file
-formats, 5 for miscellaneous information, and 7 for devices.  Still others
-use 1m instead of 8, or some mix of both.  About the only section numbers
-that are reliably consistent are 1, 2, and 3.
+[1.00] Set the section for the C<.TH> macro.  The standard section numbering
+convention is to use 1 for user commands, 2 for system calls, 3 for functions,
+4 for devices, 5 for file formats, 6 for games, 7 for miscellaneous
+information, and 8 for administrator commands.  There is a lot of variation
+here, however; some systems (like Solaris) use 4 for file formats, 5 for
+miscellaneous information, and 7 for devices.  Still others use 1m instead of
+8, or some mix of both.  About the only section numbers that are reliably
+consistent are 1, 2, and 3.
 
-By default, section 1 will be used unless the file ends in C<.pm>, in
-which case section 3 will be selected.
+By default, section 1 will be used unless the file ends in C<.pm>, in which
+case section 3 will be selected.
 
 =item B<--stderr>
 
-By default, B<pod2man> dies if any errors are detected in the POD input.
-If B<--stderr> is given and no B<--errors> flag is present, errors are
-sent to standard error, but B<pod2man> does not abort.  This is equivalent
-to C<--errors=stderr> and is supported for backward compatibility.
+[2.1.3] By default, B<pod2man> dies if any errors are detected in the POD
+input.  If B<--stderr> is given and no B<--errors> flag is present, errors are
+sent to standard error, but B<pod2man> does not abort.  This is equivalent to
+C<--errors=stderr> and is supported for backward compatibility.
 
 =item B<-u>, B<--utf8>
 
-This option allows B<pod2man> to output literal UTF-8 characters.
-On OpenBSD, it is enabled by default and can be disabled with
-B<--no-utf8>, in which case non-ASCII characters are converted
-either to *roff escape sequences or to C<X>.
-
-Be aware that, when using this option, the input encoding of your POD
-source should be properly declared unless it's US-ASCII.  Pod::Simple will
-attempt to guess the encoding and may be successful if it's Latin-1 or
-UTF-8, but it will warn, which by default results in a B<pod2man> failure.
-Use the C<=encoding> command to declare the encoding.  See L<perlpod(1)>
-for more information.
+[2.1.0] This option used to tell B<pod2man> to produce UTF-8 output.  Since
+this is now the default as of version 5.00, it is ignored and does nothing.
 
 =item B<-v>, B<--verbose>
 
-Print out the name of each output file as it is being generated.
+[1.11] Print out the name of each output file as it is being generated.
 
 =back
 
 =head1 EXIT STATUS
 
-As long as all documents processed result in some output, even if that
-output includes errata (a C<POD ERRORS> section generated with
-C<--errors=pod>), B<pod2man> will exit with status 0.  If any of the
-documents being processed do not result in an output document, B<pod2man>
-will exit with status 1.  If there are syntax errors in a POD document
-being processed and the error handling style is set to the default of
-C<die>, B<pod2man> will abort immediately with exit status 255.
+As long as all documents processed result in some output, even if that output
+includes errata (a C<POD ERRORS> section generated with C<--errors=pod>),
+B<pod2man> will exit with status 0.  If any of the documents being processed
+do not result in an output document, B<pod2man> will exit with status 1.  If
+there are syntax errors in a POD document being processed and the error
+handling style is set to the default of C<die>, B<pod2man> will abort
+immediately with exit status 255.
 
 =head1 DIAGNOSTICS
 
@@ -394,22 +486,17 @@ To get index entries on C<STDERR>, turn 
 
     troff -man -rF1 perl.1
 
-The indexing merely outputs messages via C<.tm> for each major page,
-section, subsection, item, and any C<XE<lt>E<gt>> directives.  See
-L<Pod::Man> for more details.
-
-=head1 BUGS
-
-Lots of this documentation is duplicated from L<Pod::Man>.
+The indexing merely outputs messages via C<.tm> for each major page, section,
+subsection, item, and any C<XE<lt>E<gt>> directives.
 
 =head1 AUTHOR
 
-Russ Allbery <rra@cpan.org>, based I<very> heavily on the original
-B<pod2man> by Larry Wall and Tom Christiansen.
+Russ Allbery <rra@cpan.org>, based on the original B<pod2man> by Larry Wall
+and Tom Christiansen.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 1999-2001, 2004, 2006, 2008, 2010, 2012-2019 Russ Allbery
+Copyright 1999-2001, 2004, 2006, 2008, 2010, 2012-2019, 2022 Russ Allbery
 <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
Index: gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL,v
diff -u -p -a -u -p -r1.5 pod2text.PL
--- gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL	1 Mar 2021 23:19:51 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/scripts/pod2text.PL	21 Feb 2024 15:47:00 -0000
@@ -38,7 +38,7 @@ print "Extracting $file (with variable s
 print {$out} <<"PREAMBLE" or die "Cannot write to $file: $!\n";
 $Config{startperl}
     eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
-        if \$running_under_some_shell;
+        if 0; # ^ Run only under a shell
 PREAMBLE
 
 # In the following, Perl variables are not expanded during extraction.
@@ -81,10 +81,10 @@ my $stdin;
 # Parse our options.  Use the same names as Pod::Text for simplicity.
 my %options;
 Getopt::Long::config ('bundling');
-GetOptions (\%options, 'alt|a', 'code', 'color|c', 'errors=s', 'help|h',
-            'indent|i=i', 'loose|l', 'margin|left-margin|m=i', 'nourls',
-            'overstrike|o', 'quotes|q=s', 'sentence|s', 'stderr', 'termcap|t',
-            'utf8|u', 'width|w=i')
+GetOptions (\%options, 'alt|a', 'code', 'color|c', 'encoding|e=s', 'errors=s',
+            'guesswork=s', 'help|h', 'indent|i=i', 'loose|l',
+            'margin|left-margin|m=i', 'nourls', 'overstrike|o', 'quotes|q=s',
+            'sentence|s', 'stderr', 'termcap|t', 'utf8|u', 'width|w=i')
     or exit 1;
 pod2usage (1) if $options{help};
 
@@ -133,7 +133,7 @@ __END__
 
 =for stopwords
 -aclostu --alt --stderr Allbery --overstrike overstrike --termcap --utf8
-UTF-8 subclasses --nourls
+UTF-8 subclasses --nourls EBCDIC unrepresentable
 
 =head1 NAME
 
@@ -141,82 +141,138 @@ pod2text - Convert POD data to formatted
 
 =head1 SYNOPSIS
 
-pod2text [B<-aclostu>] [B<--code>] [B<--errors>=I<style>] [B<-i> I<indent>]
-    S<[B<-q> I<quotes>]> [B<--nourls>] [B<--stderr>] S<[B<-w> I<width>]>
-    [I<input> [I<output> ...]]
+pod2text [B<-aclostu>] [B<--code>] S<[B<-e> I<encoding>]>
+    [B<--errors>=I<style>] [B<--guesswork>=I<rule>[,I<rule>...]]
+    S<[B<-i> I<indent>]> S<[B<-q> I<quotes>]>
+    [B<--nourls>] [B<--stderr>] S<[B<-w> I<width>]> [I<input> [I<output> ...]]
 
 pod2text B<-h>
 
 =head1 DESCRIPTION
 
-B<pod2text> is a front-end for Pod::Text and its subclasses.  It uses them
-to generate formatted ASCII text from POD source.  It can optionally use
-either termcap sequences or ANSI color escape sequences to format the text.
-
-I<input> is the file to read for POD source (the POD can be embedded in
-code).  If I<input> isn't given, it defaults to C<STDIN>.  I<output>, if
-given, is the file to which to write the formatted output.  If I<output>
-isn't given, the formatted output is written to C<STDOUT>.  Several POD
-files can be processed in the same B<pod2text> invocation (saving module
-load and compile times) by providing multiple pairs of I<input> and
-I<output> files on the command line.
+B<pod2text> is a wrapper script around the L<Pod::Text> and its subclasses.
+It uses them to generate formatted text from POD source.  It can optionally
+use either termcap sequences or ANSI color escape sequences to format the
+text.
+
+I<input> is the file to read for POD source (the POD can be embedded in code).
+If I<input> isn't given, it defaults to C<STDIN>.  I<output>, if given, is the
+file to which to write the formatted output.  If I<output> isn't given, the
+formatted output is written to C<STDOUT>.  Several POD files can be processed
+in the same B<pod2text> invocation (saving module load and compile times) by
+providing multiple pairs of I<input> and I<output> files on the command line.
+
+By default, the output encoding is the same as the encoding of the input file,
+or UTF-8 if that encoding is not set (except on EBCDIC systems).  See the
+B<-e> option to explicitly set the output encoding and L<Pod::Text/Encoding>
+for more discussion.
 
 =head1 OPTIONS
 
+Each option is annotated with the version of podlators in which that option
+was added with its current meaning.
+
 =over 4
 
 =item B<-a>, B<--alt>
 
-Use an alternate output format that, among other things, uses a different
-heading style and marks C<=item> entries with a colon in the left margin.
+[1.00] Use an alternate output format that, among other things, uses a
+different heading style and marks C<=item> entries with a colon in the left
+margin.
 
 =item B<--code>
 
-Include any non-POD text from the input file in the output as well.  Useful
-for viewing code documented with POD blocks with the POD rendered and the
-code left intact.
+[1.11] Include any non-POD text from the input file in the output as well.
+Useful for viewing code documented with POD blocks with the POD rendered and
+the code left intact.
 
 =item B<-c>, B<--color>
 
-Format the output with ANSI color escape sequences.  Using this option
+[1.00] Format the output with ANSI color escape sequences.  Using this option
 requires that Term::ANSIColor be installed on your system.
 
+=item B<-e> I<encoding>, B<--encoding>=I<encoding>
+
+[5.00] Specifies the encoding of the output.  I<encoding> must be an encoding
+recognized by the L<Encode> module (see L<Encode::Supported>).  If the output
+contains characters that cannot be represented in this encoding, that is an
+error that will be reported as configured by the C<errors> option.  If error
+handling is other than C<die>, the unrepresentable character will be replaced
+with the Encode substitution character (normally C<?>).
+
+WARNING: The input encoding of the POD source is independent from the output
+encoding, and setting this option does not affect the interpretation of the
+POD input.  Unless your POD source is US-ASCII, its encoding should be
+declared with the C<=encoding> command in the source, as near to the top of
+the file as possible.  If this is not done, Pod::Simple will will attempt to
+guess the encoding and may be successful if it's Latin-1 or UTF-8, but it will
+produce warnings.  See L<perlpod(1)> for more information.
+
 =item B<--errors>=I<style>
 
-Set the error handling style.  C<die> says to throw an exception on any
-POD formatting error.  C<stderr> says to report errors on standard error,
-but not to throw an exception.  C<pod> says to include a POD ERRORS
-section in the resulting documentation summarizing the errors.  C<none>
-ignores POD errors entirely, as much as possible.
+[2.5.0] Set the error handling style.  C<die> says to throw an exception on
+any POD formatting error.  C<stderr> says to report errors on standard error,
+but not to throw an exception.  C<pod> says to include a POD ERRORS section in
+the resulting documentation summarizing the errors.  C<none> ignores POD
+errors entirely, as much as possible.
 
 The default is C<die>.
 
+=item B<--guesswork>=I<rule>[,I<rule>...]
+
+[5.01] By default, B<pod2text> applies some default formatting rules based on
+guesswork and regular expressions that are intended to make writing Perl
+documentation easier and require less explicit markup.  These rules may not
+always be appropriate, particularly for documentation that isn't about Perl.
+This option allows turning all or some of it off.
+
+The special rule C<all> enables all guesswork.  This is also the default for
+backward compatibility reasons.  The special rule C<none> disables all
+guesswork.  Otherwise, the value of this option should be a comma-separated
+list of one or more of the following keywords:
+
+=over 4
+
+=item quoting
+
+If no guesswork is enabled, any text enclosed in CZ<><> is surrounded by
+double quotes in nroff (terminal) output unless the contents are already
+quoted.  When this guesswork is enabled, quote marks will also be suppressed
+for Perl variables, function names, function calls, numbers, and hex
+constants.
+
+=back
+
+Any unknown guesswork name is silently ignored (for potential future
+compatibility), so be careful about spelling.
+
 =item B<-i> I<indent>, B<--indent=>I<indent>
 
-Set the number of spaces to indent regular text, and the default indentation
-for C<=over> blocks.  Defaults to 4 spaces if this option isn't given.
+[1.00] Set the number of spaces to indent regular text, and the default
+indentation for C<=over> blocks.  Defaults to 4 spaces if this option isn't
+given.
 
 =item B<-h>, B<--help>
 
-Print out usage information and exit.
+[1.00] Print out usage information and exit.
 
 =item B<-l>, B<--loose>
 
-Print a blank line after a C<=head1> heading.  Normally, no blank line is
-printed after C<=head1>, although one is still printed after C<=head2>,
-because this is the expected formatting for manual pages; if you're
-formatting arbitrary text documents, using this option is recommended.
+[1.00] Print a blank line after a C<=head1> heading.  Normally, no blank line
+is printed after C<=head1>, although one is still printed after C<=head2>,
+because this is the expected formatting for manual pages; if you're formatting
+arbitrary text documents, using this option is recommended.
 
 =item B<-m> I<width>, B<--left-margin>=I<width>, B<--margin>=I<width>
 
-The width of the left margin in spaces.  Defaults to 0.  This is the margin
-for all text, including headings, not the amount by which regular text is
-indented; for the latter, see B<-i> option.
+[1.24] The width of the left margin in spaces.  Defaults to 0.  This is the
+margin for all text, including headings, not the amount by which regular text
+is indented; for the latter, see B<-i> option.
 
 =item B<--nourls>
 
-Normally, LZ<><> formatting codes with a URL but anchor text are formatted
-to show both the anchor text and the URL.  In other words:
+[2.5.0] Normally, LZ<><> formatting codes with a URL but anchor text are
+formatted to show both the anchor text and the URL.  In other words:
 
     L<foo|http://example.com/>
 
@@ -225,80 +281,71 @@ is formatted as:
     foo <http://example.com/>
 
 This flag, if given, suppresses the URL when anchor text is given, so this
-example would be formatted as just C<foo>.  This can produce less
-cluttered output in cases where the URLs are not particularly important.
+example would be formatted as just C<foo>.  This can produce less cluttered
+output in cases where the URLs are not particularly important.
 
 =item B<-o>, B<--overstrike>
 
-Format the output with overstrike printing.  Bold text is rendered as
+[1.06] Format the output with overstrike printing.  Bold text is rendered as
 character, backspace, character.  Italics and file names are rendered as
-underscore, backspace, character.  Many pagers, such as B<less>, know how
-to convert this to bold or underlined text.
+underscore, backspace, character.  Many pagers, such as B<less>, know how to
+convert this to bold or underlined text.
 
 =item B<-q> I<quotes>, B<--quotes>=I<quotes>
 
-Sets the quote marks used to surround CE<lt>> text to I<quotes>.  If
-I<quotes> is a single character, it is used as both the left and right
-quote.  Otherwise, it is split in half, and the first half of the string
-is used as the left quote and the second is used as the right quote.
+[4.00] Sets the quote marks used to surround CE<lt>> text to I<quotes>.  If
+I<quotes> is a single character, it is used as both the left and right quote.
+Otherwise, it is split in half, and the first half of the string is used as
+the left quote and the second is used as the right quote.
 
-I<quotes> may also be set to the special value C<none>, in which case no
-quote marks are added around CE<lt>> text.
+I<quotes> may also be set to the special value C<none>, in which case no quote
+marks are added around CE<lt>> text.
 
 =item B<-s>, B<--sentence>
 
-Assume each sentence ends with two spaces and try to preserve that spacing.
-Without this option, all consecutive whitespace in non-verbatim paragraphs
-is compressed into a single space.
+[1.00] Assume each sentence ends with two spaces and try to preserve that
+spacing.  Without this option, all consecutive whitespace in non-verbatim
+paragraphs is compressed into a single space.
 
 =item B<--stderr>
 
-By default, B<pod2text> dies if any errors are detected in the POD input.
-If B<--stderr> is given and no B<--errors> flag is present, errors are
-sent to standard error, but B<pod2text> does not abort.  This is
-equivalent to C<--errors=stderr> and is supported for backward
-compatibility.
+[2.1.3] By default, B<pod2text> dies if any errors are detected in the POD
+input.  If B<--stderr> is given and no B<--errors> flag is present, errors are
+sent to standard error, but B<pod2text> does not abort.  This is equivalent to
+C<--errors=stderr> and is supported for backward compatibility.
 
 =item B<-t>, B<--termcap>
 
-Try to determine the width of the screen and the bold and underline
+[1.00] Try to determine the width of the screen and the bold and underline
 sequences for the terminal from termcap, and use that information in
 formatting the output.  Output will be wrapped at two columns less than the
 width of your terminal device.  Using this option requires that your system
 have a termcap file somewhere where Term::Cap can find it and requires that
-your system support termios.  With this option, the output of B<pod2text>
-will contain terminal control sequences for your current terminal type.
+your system support termios.  With this option, the output of B<pod2text> will
+contain terminal control sequences for your current terminal type.
 
 =item B<-u>, B<--utf8>
 
-By default, B<pod2text> tries to use the same output encoding as its input
-encoding (to be backward-compatible with older versions).  This option
-says to instead force the output encoding to UTF-8.
-
-Be aware that, when using this option, the input encoding of your POD
-source should be properly declared unless it's US-ASCII.  Pod::Simple
-will attempt to guess the encoding and may be successful if it's
-Latin-1 or UTF-8, but it will warn, which by default results in a
-B<pod2text> failure.  Use the C<=encoding> command to declare the
-encoding.  See L<perlpod(1)> for more information.
+[2.2.0] Set the output encoding to UTF-8.  This is equivalent to
+C<--encoding=UTF-8> and is supported for backward compatibility.
 
 =item B<-w>, B<--width=>I<width>, B<->I<width>
 
-The column at which to wrap text on the right-hand side.  Defaults to 76,
-unless B<-t> is given, in which case it's two columns less than the width of
-your terminal device.
+[1.00] The column at which to wrap text on the right-hand side.  Defaults to
+76, unless B<-t> is given, in which case it's two columns less than the width
+of your terminal device.
 
 =back
 
 =head1 EXIT STATUS
 
-As long as all documents processed result in some output, even if that
-output includes errata (a C<POD ERRORS> section generated with
-C<--errors=pod>), B<pod2text> will exit with status 0.  If any of the
-documents being processed do not result in an output document, B<pod2text>
-will exit with status 1.  If there are syntax errors in a POD document
-being processed and the error handling style is set to the default of
-C<die>, B<pod2text> will abort immediately with exit status 255.
+As long as all documents processed result in some output, even if that output
+includes errata (a C<POD ERRORS> section generated with C<--errors=pod>),
+B<pod2text> will exit with status 0.  If any of the documents being processed
+do not result in an output document, B<pod2text> will exit with status 1.  If
+there are syntax errors in a POD document being processed and the error
+handling style is set to the default of C<die>, B<pod2text> will abort
+immediately with exit status 255.
 
 =head1 DIAGNOSTICS
 
@@ -310,8 +357,7 @@ produce the following diagnostics:
 
 =item -c (--color) requires Term::ANSIColor be installed
 
-(F) B<-c> or B<--color> were given, but Term::ANSIColor could not be
-loaded.
+(F) B<-c> or B<--color> were given, but Term::ANSIColor could not be loaded.
 
 =item Unknown option: %s
 
@@ -328,8 +374,8 @@ command-line options.
 
 =item COLUMNS
 
-If B<-t> is given, B<pod2text> will take the current width of your screen
-from this environment variable, if available.  It overrides terminal width
+If B<-t> is given, B<pod2text> will take the current width of your screen from
+this environment variable, if available.  It overrides terminal width
 information in TERMCAP.
 
 =item TERMCAP
@@ -346,7 +392,7 @@ Russ Allbery <rra@cpan.org>.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 1999-2001, 2004, 2006, 2008, 2010, 2012-2019 Russ Allbery
+Copyright 1999-2001, 2004, 2006, 2008, 2010, 2012-2019, 2022 Russ Allbery
 <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
@@ -354,8 +400,8 @@ under the same terms as Perl itself.
 
 =head1 SEE ALSO
 
-L<Pod::Text>, L<Pod::Text::Color>, L<Pod::Text::Overstrike>,
-L<Pod::Text::Termcap>, L<Pod::Simple>, L<perlpod(1)>
+L<Encode::Supported>, L<Pod::Text>, L<Pod::Text::Color>,
+L<Pod::Text::Overstrike>, L<Pod::Text::Termcap>, L<Pod::Simple>, L<perlpod(1)>
 
 The current version of this script is always available from its web site at
 L<https://www.eyrie.org/~eagle/software/podlators/>.  It is also part of the
Index: gnu/usr.bin/perl/cpan/podlators/t/data/basic.cap
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/basic.cap,v
diff -u -p -a -u -p -r1.3 basic.cap
--- gnu/usr.bin/perl/cpan/podlators/t/data/basic.cap	30 Dec 2019 02:13:49 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/data/basic.cap	21 Feb 2024 15:47:00 -0000
@@ -160,7 +160,7 @@
 ␛[1mFORMATTING CODES␛[m
     Another test taken from Pod::Parser.
 
-    This is a test to see if I can do not only $self and "method()", but also
+    This is a test to see if I can do not only $self and method(), but also
     "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar" without
     resorting to escape sequences. If I want to refer to the right-shift
     operator I can do something like "$x >> 3" or even "$y >> 5".
Index: gnu/usr.bin/perl/cpan/podlators/t/data/basic.clr
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/basic.clr,v
diff -u -p -a -u -p -r1.3 basic.clr
--- gnu/usr.bin/perl/cpan/podlators/t/data/basic.clr	30 Dec 2019 02:13:49 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/data/basic.clr	21 Feb 2024 15:47:00 -0000
@@ -160,11 +160,10 @@
 ␛[1mFORMATTING CODES␛[0m
     Another test taken from Pod::Parser.
 
-    This is a test to see if I can do not only $self and "method()", but
-    also "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar"
-    without resorting to escape sequences. If I want to refer to the
-    right-shift operator I can do something like "$x >> 3" or even "$y >>
-    5".
+    This is a test to see if I can do not only $self and method(), but also
+    "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar" without
+    resorting to escape sequences. If I want to refer to the right-shift
+    operator I can do something like "$x >> 3" or even "$y >> 5".
 
     Now for the grand finale of "$self->method()->{FIELDNAME} = {FOO=>BAR}".
     And I also want to make sure that newlines work like this
Index: gnu/usr.bin/perl/cpan/podlators/t/data/basic.man
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/basic.man,v
diff -u -p -a -u -p -r1.3 basic.man
--- gnu/usr.bin/perl/cpan/podlators/t/data/basic.man	30 Dec 2019 02:13:49 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/data/basic.man	21 Feb 2024 15:47:00 -0000
@@ -1,15 +1,15 @@
-.SH "NAME"
+.SH NAME
 basic.pod \- Test of various basic POD features in translators.
-.SH "HEADINGS"
+.SH HEADINGS
 .IX Header "HEADINGS"
 Try a few different levels of headings, with embedded formatting codes and
 other interesting bits.
 .ie n .SH "This ""is"" a ""level 1"" heading"
-.el .SH "This \f(CWis\fP a ``level 1'' heading"
-.IX Header "This is a level 1 heading"
+.el .SH "This \f(CWis\fP a ""level 1"" heading"
+.IX Header "This is a ""level 1"" heading"
 .SS "``Level'' ""2 \fIheading\fP"
 .IX Subsection "``Level'' ""2 heading"
-\fILevel 3 \f(BIheading \f(BIwith \f(CB\*(C`weird \f(CBstuff "" (double quote)\f(CB\*(C'\f(BI\f(BI\fI\fR
+\fILevel 3 \fR\f(BIheading with \fR\f(CB\*(C`weird stuff "" (double quote)\*(C'\fR
 .IX Subsection "Level 3 heading with weird stuff """" (double quote)"
 .PP
 Level "4 \f(CW\*(C`heading\*(C'\fR
@@ -17,14 +17,14 @@ Level "4 \f(CW\*(C`heading\*(C'\fR
 .PP
 Now try again with \fBintermixed\fR \fItext\fR.
 .ie n .SH "This ""is"" a ""level 1"" heading"
-.el .SH "This \f(CWis\fP a ``level 1'' heading"
-.IX Header "This is a level 1 heading"
+.el .SH "This \f(CWis\fP a ""level 1"" heading"
+.IX Header "This is a ""level 1"" heading"
 Text.
 .SS "``Level'' 2 \fIheading\fP"
 .IX Subsection "``Level'' 2 heading"
 Text.
 .PP
-\fILevel 3 \f(BIheading \f(BIwith \f(CB\*(C`weird \f(CBstuff\f(CB\*(C'\f(BI\f(BI\fI\fR
+\fILevel 3 \fR\f(BIheading with \fR\f(CB\*(C`weird stuff\*(C'\fR
 .IX Subsection "Level 3 heading with weird stuff"
 .PP
 Text.
@@ -33,19 +33,19 @@ Level "4 \f(CW\*(C`heading\*(C'\fR
 .IX Subsection "Level ""4 heading"
 .PP
 Text.
-.SH "LINKS"
+.SH LINKS
 .IX Header "LINKS"
 These are all taken from the Pod::Parser tests.
 .PP
-Try out \fI\s-1LOTS\s0\fR of different ways of specifying references:
+Try out \fILOTS\fR of different ways of specifying references:
 .PP
-Reference the \*(L"section\*(R" in manpage
+Reference the "section" in manpage
 .PP
-Reference the \*(L"section\*(R" in \*(L"manpage\*(R"
+Reference the "section" in "manpage"
 .PP
-Reference the \*(L"section\*(R" in manpage
+Reference the "section" in manpage
 .PP
-Now try it using the new \*(L"|\*(R" stuff ...
+Now try it using the new "|" stuff ...
 .PP
 Reference the thistext|
 .PP
@@ -65,23 +65,23 @@ foo
 .PP
 foo
 .PP
-\&\*(L"bar\*(R" in foo
+"bar" in foo
 .PP
-\&\*(L"baz boo\*(R" in foo
+"baz boo" in foo
 .PP
-\&\*(L"bar\*(R"
+"bar"
 .PP
-\&\*(L"baz boo\*(R"
+"baz boo"
 .PP
-\&\*(L"baz boo\*(R"
+"baz boo"
 .PP
-\&\*(L"baz boo\*(R" in foo bar
+"baz boo" in foo bar
 .PP
-\&\*(L"boo var baz\*(R"
+"boo var baz"
 .PP
-\&\*(L"bar baz\*(R"
+"bar baz"
 .PP
-\&\*(L"boo\*(R", \*(L"bar\*(R", and \*(L"baz\*(R"
+"boo", "bar", and "baz"
 .PP
 foobar
 .PP
@@ -89,7 +89,7 @@ Testing \fIitalics\fR
 .PP
 "\fIItalic\fR text" in foo
 .PP
-"Section \f(CW\*(C`with\*(C'\fR \fI\f(BIother\fI markup\fR" in foo|bar
+"Section \f(CW\*(C`with\*(C'\fR \fR\f(BIother\fR\fI markup\fR" in foo|bar
 .SH "OVER AND ITEMS"
 .IX Header "OVER AND ITEMS"
 Taken from Pod::Parser tests, this is a test to ensure that multiline
@@ -101,31 +101,31 @@ There should be whitespace now before th
 .PP
 Taken from Pod::Parser tests, this is a test to ensure the nested =item
 paragraphs get indented appropriately.
-.IP "1." 2
+.IP 1. 2
 First section.
 .RS 2
-.IP "a" 2
+.IP a 2
 .IX Item "a"
 this is item a
-.IP "b" 2
+.IP b 2
 .IX Item "b"
 this is item b
 .RE
 .RS 2
 .RE
-.IP "2." 2
+.IP 2. 2
 Second section.
 .RS 2
-.IP "a" 2
+.IP a 2
 .IX Item "a"
 this is item a
-.IP "b" 2
+.IP b 2
 .IX Item "b"
 this is item b
-.IP "c" 2
+.IP c 2
 .IX Item "c"
 .PD 0
-.IP "d" 2
+.IP d 2
 .IX Item "d"
 .PD
 This is item c & d.
@@ -135,14 +135,13 @@ This is item c & d.
 .PP
 Now some additional weirdness of our own.  Make sure that multiple tags
 for one paragraph are properly compacted.
-.ie n .IP """foo""" 4
-.el .IP "``foo''" 4
-.IX Item "foo"
+.IP """foo""" 4
+.IX Item """foo"""
 .PD 0
-.IP "\fBbar\fR" 4
+.IP \fBbar\fR 4
 .IX Item "bar"
 .ie n .IP """baz""" 4
-.el .IP "\f(CWbaz\fR" 4
+.el .IP \f(CWbaz\fR 4
 .IX Item "baz"
 .PD
 There shouldn't be any spaces between any of these item tags; this idiom
@@ -155,7 +154,7 @@ few lines).
 .Sp
 Let's also make it multiple paragraphs to be sure that works.
 .PP
-Test use of =over without =item as a block \*(L"quote\*(R" or block paragraph.
+Test use of =over without =item as a block "quote" or block paragraph.
 .Sp
 .RS 4
 This should be indented four spaces but otherwise formatted the same as
@@ -174,9 +173,9 @@ This paragraph should be doubly indented
 .RS 4
 .Sp
 This paragraph should only be singly indented.
-.IP "\(bu" 4
+.IP \(bu 4
 This is an item in the middle of a block-quote, which should be allowed.
-.IP "\(bu" 4
+.IP \(bu 4
 We're also testing tagless item commands.
 .RE
 .RS 4
@@ -187,22 +186,22 @@ Should be back to the single level of in
 Should be back to regular indentation.
 .PP
 Now also check the transformation of * into real bullets for man pages.
-.IP "\(bu" 4
+.IP \(bu 4
 An item.  We're also testing using =over without a number, and making sure
 that item text wraps properly.
-.IP "\(bu" 4
+.IP \(bu 4
 Another item.
 .PP
 and now test the numbering of item blocks.
-.IP "1." 4
+.IP 1. 4
 First item.
-.IP "2." 4
+.IP 2. 4
 Second item.
 .SH "FORMATTING CODES"
 .IX Header "FORMATTING CODES"
 Another test taken from Pod::Parser.
 .PP
-This is a test to see if I can do not only \f(CW$self\fR and \f(CW\*(C`method()\*(C'\fR, but
+This is a test to see if I can do not only \f(CW$self\fR and \f(CWmethod()\fR, but
 also \f(CW\*(C`$self\->method()\*(C'\fR and \f(CW\*(C`$self\->{FIELDNAME}\*(C'\fR and
 \&\f(CW\*(C`$Foo <=> $Bar\*(C'\fR without resorting to escape sequences. If 
 I want to refer to the right-shift operator I can do something
@@ -221,14 +220,14 @@ Don't forget \f(CW\*(C`$self\->method()\
 And make sure that \f(CW0\fR works too!
 .PP
 Now, if I use << or >> as my delimiters, then I have to use whitespace.
-So things like \f(CW\*(C`<$self\-\*(C'\fR\fBmethod()\fR>> and \f(CW\*(C`<$self\-\*(C'\fR{\s-1FIELDNAME\s0}>> won't end
+So things like \f(CW\*(C`<$self\-\*(C'\fR\fBmethod()\fR>> and \f(CW\*(C`<$self\-\*(C'\fR{FIELDNAME}>> won't end
 up doing what you might expect since the first > will still terminate
 the first < seen.
 .PP
 Lets make sure these work for empty ones too, like \f(CW\*(C`\*(C'\fR and \f(CW\*(C`>>\*(C'\fR
 (just to be obnoxious)
 .PP
-The statement: \f(CW\*(C`This is dog kind\*(Aqs \f(CIfinest\f(CW hour!\*(C'\fR is a parody of a
+The statement: \f(CW\*(C`This is dog kind\*(Aqs \fR\f(CIfinest\fR\f(CW hour!\*(C'\fR is a parody of a
 quotation from Winston Churchill.
 .PP
 The following tests are added to those:
@@ -236,17 +235,17 @@ The following tests are added to those:
 Make sure that a few other odd \fIthings\fR still work.  This should be
 a vertical bar:  |.  Here's a test of a few more special escapes
 that have to be supported:
-.IP "&" 3
+.IP & 3
 An ampersand.
-.IP "'" 3
+.IP ' 3
 An apostrophe.
-.IP "<" 3
+.IP < 3
 A less-than sign.
-.IP ">" 3
+.IP > 3
 A greater-than sign.
 .IP """" 3
 A double quotation mark.
-.IP "/" 3
+.IP / 3
 A forward slash.
 .PP
 Try to get this bit of text over towards the edge so |that\ all\ of\ this\ text\ inside\ S<>\ won't| be wrapped.  Also test the
@@ -256,7 +255,7 @@ There is a soft hy\%phen in hyphen at hy
 .PP
 This is a test of an index entry.
 .IX Xref "index entry"
-.SH "VERBATIM"
+.SH VERBATIM
 .IX Header "VERBATIM"
 Throw in a few verbatim paragraphs.
 .PP
@@ -314,7 +313,7 @@ up.)
 \&    visually inspect the nroff output when run on the generated *roff
 \&    text, unfortunately.)
 .Ve
-.SH "CONCLUSION"
+.SH CONCLUSION
 .IX Header "CONCLUSION"
 That's all, folks!
 .SH "COPYRIGHT AND LICENSE"
@@ -326,4 +325,4 @@ permitted in any medium without royalty 
 this notice are preserved.  This file is offered as-is, without any
 warranty.
 .PP
-SPDX-License-Identifier: \s-1FSFAP\s0
+SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/basic.ovr
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/basic.ovr,v
diff -u -p -a -u -p -r1.3 basic.ovr
--- gnu/usr.bin/perl/cpan/podlators/t/data/basic.ovr	30 Dec 2019 02:13:50 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/data/basic.ovr	21 Feb 2024 15:47:00 -0000
@@ -160,11 +160,10 @@ O␈OV␈VE␈ER␈R ␈ A␈AN␈ND␈D ␈ I␈IT␈TE␈EM␈MS
 F␈FO␈OR␈RM␈MA␈AT␈TT␈TI␈IN␈NG␈G ␈ C␈CO␈OD␈DE␈ES␈S
     Another test taken from Pod::Parser.
 
-    This is a test to see if I can do not only $self and "method()", but
-    also "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar"
-    without resorting to escape sequences. If I want to refer to the
-    right-shift operator I can do something like "$x >> 3" or even "$y >>
-    5".
+    This is a test to see if I can do not only $self and method(), but also
+    "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar" without
+    resorting to escape sequences. If I want to refer to the right-shift
+    operator I can do something like "$x >> 3" or even "$y >> 5".
 
     Now for the grand finale of "$self->method()->{FIELDNAME} = {FOO=>BAR}".
     And I also want to make sure that newlines work like this
Index: gnu/usr.bin/perl/cpan/podlators/t/data/basic.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/basic.txt,v
diff -u -p -a -u -p -r1.3 basic.txt
--- gnu/usr.bin/perl/cpan/podlators/t/data/basic.txt	30 Dec 2019 02:13:50 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/data/basic.txt	21 Feb 2024 15:47:00 -0000
@@ -160,11 +160,10 @@ OVER AND ITEMS
 FORMATTING CODES
     Another test taken from Pod::Parser.
 
-    This is a test to see if I can do not only $self and "method()", but
-    also "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar"
-    without resorting to escape sequences. If I want to refer to the
-    right-shift operator I can do something like "$x >> 3" or even "$y >>
-    5".
+    This is a test to see if I can do not only $self and method(), but also
+    "$self->method()" and "$self->{FIELDNAME}" and "$Foo <=> $Bar" without
+    resorting to escape sequences. If I want to refer to the right-shift
+    operator I can do something like "$x >> 3" or even "$y >> 5".
 
     Now for the grand finale of "$self->method()->{FIELDNAME} = {FOO=>BAR}".
     And I also want to make sure that newlines work like this
Index: gnu/usr.bin/perl/cpan/podlators/t/data/perl.conf
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/perl.conf,v
diff -u -p -a -u -p -r1.2 perl.conf
--- gnu/usr.bin/perl/cpan/podlators/t/data/perl.conf	1 Mar 2021 23:19:51 -0000	1.2
+++ gnu/usr.bin/perl/cpan/podlators/t/data/perl.conf	21 Feb 2024 15:47:00 -0000
@@ -1,7 +1,20 @@
 # Configuration for Perl tests.  -*- perl -*-
 
+# Not all of the modules have been converted to my current coding standard
+# yet.
+@CRITIC_IGNORE = qw(
+    blib/lib/Pod/Man.pm
+    blib/lib/Pod/ParseLink.pm
+    blib/lib/Pod/Text.pm
+    blib/lib/Pod/Text/Color.pm
+    blib/lib/Pod/Text/Overstrike.pm
+    blib/lib/Pod/Text/Termcap.pm
+    blib/script/pod2man
+    blib/script/pod2text
+);
+
 # Default minimum version requirement.
-$MINIMUM_VERSION = '5.008';
+$MINIMUM_VERSION = '5.010';
 
 # File must end with this line.
 1;
Index: gnu/usr.bin/perl/cpan/podlators/t/data/perlcriticrc
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/perlcriticrc
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/perlcriticrc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/perlcriticrc	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,125 @@
+# -*- conf -*-
+#
+# Default configuration for perlcritic.  Be sure to copy this into the source
+# for packages that run perlcritic tests automatically during the build for
+# reproducible test results.
+#
+# This file has been updated to match perlcritic 1.134.
+#
+# The canonical version of this file is maintained in the rra-c-util package,
+# which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
+#
+# Written by Russ Allbery <eagle@eyrie.org>
+# Copyright 2018-2022 Russ Allbery <eagle@eyrie.org>
+# Copyright 2011-2013
+#     The Board of Trustees of the Leland Stanford Junior University
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+# SPDX-License-Identifier: MIT
+
+severity = 1
+verbose  = %f:%l:%c: [%p] %m (%e, Severity: %s)\n
+
+# I prefer this policy (a lot, actually), but other people in my group at
+# Stanford really didn't like it, so this is my compromise to agree with a
+# group coding style.
+[-CodeLayout::ProhibitParensWithBuiltins]
+
+# This conflicts with Subroutines::ProhibitExplicitReturnUndef and
+# Subroutines::RequireFinalReturn, and I prefer the brevity of the simple
+# return statement.  I don't think the empty list versus undef behavior is
+# that confusing.
+#
+# This should be Community::EmptyReturn, which is the new name of the module,
+# but currently ignores have to use the Freenode::EmptyReturn name instead.
+[-Community::EmptyReturn]
+[-Freenode::EmptyReturn]
+
+# This recommends using given/when, but Perl has marked those as experimental
+# and cautions against using when.
+[-ControlStructures::ProhibitCascadingIfElse]
+
+# Stanford's coding style allows postfix unless for flow control.  There
+# doesn't appear to be any way to allow it only for flow control (the logic
+# for "if" and "when" appears to be special-cased), so we have to allow unless
+# globally.
+[ControlStructures::ProhibitPostfixControls]
+allow = unless
+
+# This is handled with a separate test case that uses Test::Spelling.
+[-Documentation::PodSpelling]
+
+# The POD sections Perl::Critic wants are incompatible with the POD template
+# from perlpodstyle, which is what I use for my POD documentation.
+[-Documentation::RequirePodSections]
+
+# This problem was fixed in Perl 5.14, which now properly preserves the value
+# of $@ even if destructors run at exit from the eval block.
+[-ErrorHandling::RequireCheckingReturnValueOfEval]
+
+# The default of 9 is too small and forces weird code contortions.  After some
+# experimentation, I've never found this helpful in driving useful refactors.
+[-InputOutput::RequireBriefOpen]
+
+# This is correct 80% of the time, but it isn't correct for a lot of scripts
+# inside packages, where maintaining $VERSION isn't worth the effort.
+# Unfortunately, there's no way to override it, so it gets turned off
+# globally.
+[-Modules::RequireVersionVar]
+
+# This sounds interesting but is actually useless.  Any large blocks of
+# literal text, which does not add to the complexity of the regex, will set it
+# off.
+[-RegularExpressions::ProhibitComplexRegexes]
+
+# Produces false positives currently with postfix dereferencing (introduced in
+# Perl 5.20).  See https://github.com/Perl-Critic/Perl-Critic/issues/578.
+[-References::ProhibitDoubleSigils]
+
+# Five arguments to a method has seemed reasonable at least once: a pair of
+# input file data and path, a pair of output file descriptor and path, and
+# a dict of additional arguments.
+[Subroutines::ProhibitManyArgs]
+skip_object = 1
+
+# I generally don't want to require Readonly as a prerequisite for all my Perl
+# modules.
+[-ValuesAndExpressions::ProhibitConstantPragma]
+
+# A good idea, but there are too many places where this would be more
+# confusing than helpful.  Pull out numbers if one might change them
+# independent of the algorithm, but don't do so for mathematical formulae.
+[-ValuesAndExpressions::ProhibitMagicNumbers]
+
+# This has never triggered on anything useful and keeps telling me to add
+# underscores to UNIX timestamps and port numbers, which is just silly.
+[-ValuesAndExpressions::RequireNumberSeparators]
+
+# IO::Uncompress::Gunzip puts the error message in a package variable.
+# Text::Wrap has a broken interface that requires use of package variables.
+# YAML::XS also cannot be configured without package variables.
+[Variables::ProhibitPackageVars]
+add_packages = IO::Uncompress::Gunzip Text::Wrap YAML::XS
+
+# use English was one of the worst ideas in the history of Perl.  It makes the
+# code slightly more readable for amateurs at the cost of confusing
+# experienced Perl programmers and sending people in futile quests for where
+# these magical global variables are defined.
+[-Variables::ProhibitPunctuationVars]
Index: gnu/usr.bin/perl/cpan/podlators/t/data/perltidyrc
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/perltidyrc
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/perltidyrc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/perltidyrc	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,30 @@
+# -*- conf -*-
+#
+# Default options for perltidy for proper Perl code reformatting.
+#
+# The canonical version of this file is maintained in the rra-c-util package,
+# which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
+#
+# Written by Russ Allbery <eagle@eyrie.org>
+# Copyright 2021-2022 Russ Allbery <eagle@eyrie.org>
+# Copyright 2012-2013
+#     The Board of Trustees of the Leland Stanford Junior University
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice and
+# this notice are preserved.  This file is offered as-is, without any
+# warranty.
+#
+# SPDX-License-Identifier: FSFAP
+
+-bbao           # put line breaks before any operator
+-nbbc           # don't force blank lines before comments (bad for else blocks)
+-boc            # do not re-break lists, since perltidy is awful at this
+-ce             # cuddle braces around else
+-l=79           # usually use 78, but don't want 79-long lines reformatted
+-nlop           # disable vertical alignment of logical and ternary expressions
+-pt=2           # don't add extra whitespace around parentheses
+-sbt=2          # ...or square brackets
+-nsfs           # no space before semicolon in for (not that I use this form)
+-nvc            # disable vertical alignment of = and similar symbols
+-xci            # improve indentation of nested structures
Index: gnu/usr.bin/perl/cpan/podlators/t/data/regenerate-data
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/regenerate-data
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/regenerate-data
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/regenerate-data	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,108 @@
+#!/usr/bin/perl
+#
+# Development helper program to regenerate test data.
+#
+# The snippet tests are designed to keep the output fairly stable, but there
+# are a few tests that use complete output with some customization.  This
+# helper program regenerates those files using the local installation of
+# podlators.  The output can then be reviewed with normal Git tools.
+#
+# Copyright 2022 Russ Allbery <rra@cpan.org>
+#
+# This program is free software; you may redistribute it and/or modify it
+# under the same terms as Perl itself.
+#
+# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
+
+use 5.008;
+use strict;
+use warnings;
+
+use lib 'blib/lib';
+
+use File::Spec;
+use Pod::Man;
+use Pod::Text;
+use Pod::Text::Color;
+use Pod::Text::Overstrike;
+use Pod::Text::Termcap;
+
+# Hard-code configuration for Term::Cap to get predictable results.
+#<<<
+local $ENV{COLUMNS}  = 80;
+local $ENV{TERM}     = 'xterm';
+local $ENV{TERMPATH} = File::Spec->catfile('t', 'data', 'termcap');
+local $ENV{TERMCAP}  = 'xterm:co=#80:do=^J:md=\\E[1m:us=\\E[4m:me=\\E[m';
+#>>>
+
+# Map of translators to the file containing the formatted output for the
+# general/basic.t test.
+#<<<
+my %output = (
+    'Pod::Man'              => File::Spec->catfile('t', 'data', 'basic.man'),
+    'Pod::Text'             => File::Spec->catfile('t', 'data', 'basic.txt'),
+    'Pod::Text::Color'      => File::Spec->catfile('t', 'data', 'basic.clr'),
+    'Pod::Text::Overstrike' => File::Spec->catfile('t', 'data', 'basic.ovr'),
+    'Pod::Text::Termcap'    => File::Spec->catfile('t', 'data', 'basic.cap'),
+);
+#>>>
+
+# Regenerate those output files.
+my $input = File::Spec->catfile('t', 'data', 'basic.pod');
+for my $module (keys(%output)) {
+    my $parser = $module->new();
+
+    # Run the formatting module.
+    my $output;
+    $parser->output_string(\$output);
+    $parser->parse_file($input);
+
+    # If the test module is Pod::Man, strip off the header.  This test does
+    # not attempt to compare it, since it contains version numbers that
+    # change.
+    if ($module eq 'Pod::Man') {
+        $output =~ s{ \A .* \n [.]nh \n }{}xms;
+    }
+
+    # Overwrite the output.
+    open(my $fh, '>', $output{$module})
+      or die "cannot create $output{$module}: $!\n";
+    print {$fh} $output
+      or die "cannot write to $output{$module}: $!\n";
+    close($fh)
+      or die "cannot write to $output{$module}: $!\n";
+}
+
+# Now switch to the files for the man/encoding.t test.
+$input = File::Spec->catfile('t', 'data', 'man', 'encoding.pod');
+#<<<
+%output = (
+    groff => File::Spec->catfile('t', 'data', 'man', 'encoding.groff'),
+    roff  => File::Spec->catfile('t', 'data', 'man', 'encoding.roff'),
+    utf8  => File::Spec->catfile('t', 'data', 'man', 'encoding.utf8'),
+);
+#>>>
+
+# For each encoding, load the input, generate the output, and check that the
+# output matches.
+for my $encoding (keys(%output)) {
+    my $parser = Pod::Man->new(
+        encoding => $encoding,
+        center => 'podlators',
+        release => 'testing',
+    );
+    my $output;
+    $parser->output_string(\$output);
+    $parser->parse_file($input);
+
+    # Strip off the version line.
+    $output =~ s{ ^ [^\n]+ Automatically [ ] generated [ ] by [^\n]+ \n }{}xms;
+
+    # Overwrite the output.
+    open(my $fh, '>', $output{$encoding})
+      or die "cannot create $output{$encoding}: $!\n";
+    print {$fh} $output
+      or die "cannot write to $output{$encoding}: $!\n";
+    close($fh)
+      or die "cannot write to $output{$encoding}: $!\n";
+}
Index: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.groff
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.groff
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.groff
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.groff	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,87 @@
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds C`
+.    ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
+..
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
+.    \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "ENCODING 1"
+.TH ENCODING 1 2022-09-25 testing podlators
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "ENCODING TESTS"
+.IX Header "ENCODING TESTS"
+This POD source is intended to test encoding behavior with different
+pod2man encoding options.  The resulting *roff output files can be copied
+to various systems to test with the local nroff or man implementations.
+.PP
+ISO 8859\-1 character: na\[u00EF]ve
+.PP
+ISO 8859\-1 escape: na\[u00EF]ve, na\[u00EF]ve
+.PP
+Combining accent: nai\[u0308]ve
+.PP
+SMP plane character: \[u1F600]
+.PP
+Non-breaking space: foo\ bar, foo\ bar
+.PP
+Soft hyphen: fac\%tory
+.SH LICENSE
+.IX Header "LICENSE"
+Copyright 2022 Russ Allbery <rra@cpan.org>
+.PP
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice and
+this notice are preserved.  This file is offered as-is, without any
+warranty.
+.PP
+SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.pod
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.pod
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.pod	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,30 @@
+=encoding utf-8
+
+=head1 ENCODING TESTS
+
+This POD source is intended to test encoding behavior with different
+pod2man encoding options.  The resulting *roff output files can be copied
+to various systems to test with the local nroff or man implementations.
+
+ISO 8859-1 character: naïve
+
+ISO 8859-1 escape: naE<iuml>ve, naE<0xEF>ve
+
+Combining accent: naïve
+
+SMP plane character: 😀
+
+Non-breaking space: foo bar, S<foo bar>
+
+Soft hyphen: fac­tory
+
+=head1 LICENSE
+
+Copyright 2022 Russ Allbery <rra@cpan.org>
+
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice and
+this notice are preserved.  This file is offered as-is, without any
+warranty.
+
+SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.roff
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.roff
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.roff
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.roff	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,149 @@
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds C`
+.    ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
+..
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
+.    \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h'|\\n:u'
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "ENCODING 1"
+.TH ENCODING 1 2022-09-25 testing podlators
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "ENCODING TESTS"
+.IX Header "ENCODING TESTS"
+This POD source is intended to test encoding behavior with different
+pod2man encoding options.  The resulting *roff output files can be copied
+to various systems to test with the local nroff or man implementations.
+.PP
+ISO 8859\-1 character: nai\*:ve
+.PP
+ISO 8859\-1 escape: nai\*:ve, nai\*:ve
+.PP
+Combining accent: naiXve
+.PP
+SMP plane character: X
+.PP
+Non-breaking space: foo\ bar, foo\ bar
+.PP
+Soft hyphen: fac\%tory
+.SH LICENSE
+.IX Header "LICENSE"
+Copyright 2022 Russ Allbery <rra@cpan.org>
+.PP
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice and
+this notice are preserved.  This file is offered as-is, without any
+warranty.
+.PP
+SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.utf8
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.utf8
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.utf8
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/man/encoding.utf8	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,88 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds C`
+.    ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+.    if \nF \{\
+.        de IX
+.        tm Index:\\$1\t\\n%\t"\\$2"
+..
+.        if !\nF==2 \{\
+.            nr % 0
+.            nr F 2
+.        \}
+.    \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "ENCODING 1"
+.TH ENCODING 1 2022-09-25 testing podlators
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "ENCODING TESTS"
+.IX Header "ENCODING TESTS"
+This POD source is intended to test encoding behavior with different
+pod2man encoding options.  The resulting *roff output files can be copied
+to various systems to test with the local nroff or man implementations.
+.PP
+ISO 8859\-1 character: naïve
+.PP
+ISO 8859\-1 escape: naïve, naïve
+.PP
+Combining accent: naïve
+.PP
+SMP plane character: 😀
+.PP
+Non-breaking space: foo\ bar, foo\ bar
+.PP
+Soft hyphen: fac\%tory
+.SH LICENSE
+.IX Header "LICENSE"
+Copyright 2022 Russ Allbery <rra@cpan.org>
+.PP
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice and
+this notice are preserved.  This file is offered as-is, without any
+warranty.
+.PP
+SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README	30 Dec 2019 02:13:50 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-The files in this directory are used by the test suite to exercise various
-behavior of Pod::Man or Pod::Text.  They use a pseudo-ini-file syntax with
-free-form sections, normally an input and an output section and possibly
-others.
-
-Sections start with the section type in [].  The contents are normally
-just free-form.  The exception is an [options] section, where the contents
-are key/value pairs, where the key is separated from the value with
-whitespace.
-
-Valid sections are:
-
-    [name]
-    The name of this test for status reporting
-    
-    [options]
-    key value
-    key value
-    
-    [input]
-    POD input source.
-    
-    [output]
-    The results of running some formatter on the input.
-    
-    [errors]
-    Errors reported to standard error when running some formatter on the
-    input.
-    
-    [exception]
-    The text of an exception (with the file and line number information
-    stripped) thrown by running some formatter on the input.
-
-Files are organized into subdirectories named after the formatter, namely
-man (Pod::Man), text (Pod::Text), color (Pod::Text::Color), overstrike
-(Pod::Text::Overstrike), and termcap (Pod::Text::Termcap).
-
------
-
-Copyright 2015, 2018 Russ Allbery <rra@cpan.org>
-
-Copying and distribution of this file, with or without modification, are
-permitted in any medium without royalty provided the copyright notice and
-this notice are preserved.  This file is offered as-is, without any
-warranty.
-
-SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README.md
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README.md
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README.md
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/README.md	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,51 @@
+# Test snippets
+
+The files in this directory are used by the test suite to exercise various
+behavior of Pod::Man or Pod::Text.  They use a pseudo-ini-file syntax with
+free-form sections, normally an input and an output section and possibly
+others.
+
+Sections start with the section type in `[]`.  The contents are normally
+free-form text.  The exception is an `[options]` section, where the
+contents are key/value pairs, where the key is separated from the value
+with whitespace.
+
+Valid sections are:
+
+```
+    [name]
+    The name of this test for status reporting
+    
+    [options]
+    key value
+    key value
+    
+    [input]
+    POD input source.
+    
+    [output]
+    The results of running some formatter on the input.
+    
+    [errors]
+    Errors reported to standard error when running some formatter on the
+    input.
+    
+    [exception]
+    The text of an exception (with the file and line number information
+    stripped) thrown by running some formatter on the input.
+```
+
+Files are organized into subdirectories named after the formatter, namely
+man (Pod::Man), text (Pod::Text), color (Pod::Text::Color), overstrike
+(Pod::Text::Overstrike), and termcap (Pod::Text::Termcap).
+
+## Copyright and license
+
+Copyright 2015, 2018, 2022 Russ Allbery <rra@cpan.org>
+
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice and
+this notice are preserved.  This file is offered as-is, without any
+warranty.
+
+SPDX-License-Identifier: FSFAP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/agrave
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/agrave,v
diff -u -p -a -u -p -r1.1.1.1 agrave
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/agrave	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/agrave	21 Feb 2024 15:47:00 -0000
@@ -1,12 +1,15 @@
 [name]
 E<agrave>
 
+[options]
+encoding roff
+
 [input]
 =head1 agrave
 
 Open E<agrave> la shell. Previous versions mapped it wrong.
 
 [output]
-.SH "agrave"
+.SH agrave
 .IX Header "agrave"
 Open a\*` la shell. Previous versions mapped it wrong.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet,v
diff -u -p -a -u -p -r1.1.1.1 bullet-after-nonbullet
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet	21 Feb 2024 15:47:00 -0000
@@ -18,8 +18,8 @@ Also not a bullet.
 =back
 
 [output]
-.IP "foo" 4
+.IP foo 4
 .IX Item "foo"
 Not a bullet.
-.IP "*" 4
+.IP * 4
 Also not a bullet.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullets
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullets,v
diff -u -p -a -u -p -r1.1.1.1 bullets
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullets	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/bullets	21 Feb 2024 15:47:00 -0000
@@ -17,9 +17,9 @@ Another bullet.
 =back
 
 [output]
-.IP "\(bu" 4
+.IP \(bu 4
 A bullet.
-.IP "\(bu" 4
+.IP \(bu 4
 Another bullet.
-.IP "\(bu" 4
+.IP \(bu 4
 Also a bullet.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/c-in-name
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/c-in-name,v
diff -u -p -a -u -p -r1.1.1.1 c-in-name
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/c-in-name	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/c-in-name	21 Feb 2024 15:47:00 -0000
@@ -7,5 +7,5 @@ C<> in NAME
 test - C<test>
 
 [output]
-.SH "NAME"
+.SH NAME
 test \- "test"
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/cpp
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/cpp,v
diff -u -p -a -u -p -r1.1 cpp
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/cpp	5 Feb 2017 00:32:07 -0000	1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/cpp	21 Feb 2024 15:47:00 -0000
@@ -13,8 +13,8 @@ Other mentions of C++.
 =cut
 
 [output]
-.SH "NAME"
+.SH NAME
 gcc \- GNU project C and C++ compiler
-.SH "\*(C+ NOTES"
-.IX Header " NOTES"
-Other mentions of \*(C+.
+.SH "C++ NOTES"
+.IX Header "C++ NOTES"
+Other mentions of C++.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/dollar-magic
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/dollar-magic,v
diff -u -p -a -u -p -r1.1.1.1 dollar-magic
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/dollar-magic	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/dollar-magic	21 Feb 2024 15:47:00 -0000
@@ -17,8 +17,8 @@ price is $100."
 .IX Header "MAGIC MONEY"
 These should be identical.
 .PP
-Bippity boppity boo \*(L"The
-price is \f(CW$100\fR.\*(R"
+Bippity boppity boo "The
+price is \f(CW$100\fR."
 .PP
-Bippity boppity boo \*(L"The
-price is \f(CW$100\fR.\*(R"
+Bippity boppity boo "The
+price is \f(CW$100\fR."
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-die
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-die,v
diff -u -p -a -u -p -r1.1.1.1 error-die
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-die	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-die	21 Feb 2024 15:47:00 -0000
@@ -14,10 +14,10 @@ Bar.
 =head1 NEXT
 
 [output]
-.IP "Foo" 4
+.IP Foo 4
 .IX Item "Foo"
 Bar.
-.SH "NEXT"
+.SH NEXT
 .IX Header "NEXT"
 
 [errors]
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-none
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-none,v
diff -u -p -a -u -p -r1.1.1.2 error-none
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-none	30 Dec 2019 02:10:37 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-none	21 Feb 2024 15:47:00 -0000
@@ -16,8 +16,8 @@ Bar.
 =head1 NEXT
 
 [output]
-.IP "Foo" 4
+.IP Foo 4
 .IX Item "Foo"
 Bar.
-.SH "NEXT"
+.SH NEXT
 .IX Header "NEXT"
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-normal
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-normal,v
diff -u -p -a -u -p -r1.1.1.1 error-normal
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-normal	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-normal	21 Feb 2024 15:47:00 -0000
@@ -11,10 +11,10 @@ Bar.
 =head1 NEXT
 
 [output]
-.IP "Foo" 4
+.IP Foo 4
 .IX Item "Foo"
 Bar.
-.SH "NEXT"
+.SH NEXT
 .IX Header "NEXT"
 .SH "POD ERRORS"
 .IX Header "POD ERRORS"
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-pod,v
diff -u -p -a -u -p -r1.1.1.1 error-pod
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-pod	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-pod	21 Feb 2024 15:47:00 -0000
@@ -14,10 +14,10 @@ Bar.
 =head1 NEXT
 
 [output]
-.IP "Foo" 4
+.IP Foo 4
 .IX Item "Foo"
 Bar.
-.SH "NEXT"
+.SH NEXT
 .IX Header "NEXT"
 .SH "POD ERRORS"
 .IX Header "POD ERRORS"
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr,v
diff -u -p -a -u -p -r1.1.1.1 error-stderr
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr	21 Feb 2024 15:47:00 -0000
@@ -14,10 +14,10 @@ Bar.
 =head1 NEXT
 
 [output]
-.IP "Foo" 4
+.IP Foo 4
 .IX Item "Foo"
 Bar.
-.SH "NEXT"
+.SH NEXT
 .IX Header "NEXT"
 
 [errors]
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr-opt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr-opt,v
diff -u -p -a -u -p -r1.1.1.1 error-stderr-opt
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr-opt	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/error-stderr-opt	21 Feb 2024 15:47:00 -0000
@@ -14,10 +14,10 @@ Bar.
 =head1 NEXT
 
 [output]
-.IP "Foo" 4
+.IP Foo 4
 .IX Item "Foo"
 Bar.
-.SH "NEXT"
+.SH NEXT
 .IX Header "NEXT"
 
 [errors]
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/eth
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/eth,v
diff -u -p -a -u -p -r1.1.1.1 eth
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/eth	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/eth	21 Feb 2024 15:47:00 -0000
@@ -1,6 +1,9 @@
 [name]
 E<eth>
 
+[options]
+encoding roff
+
 [input]
 =pod
 
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font,v
diff -u -p -a -u -p -r1.1.1.1 fixed-font
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font	21 Feb 2024 15:47:00 -0000
@@ -15,4 +15,4 @@ C<foo B<bar I<baz>> I<bay>>
 [output]
 .SH "FIXED FONTS"
 .IX Header "FIXED FONTS"
-\&\f(CR\*(C`foo \f(CYbar \f(CXbaz\f(CY\f(CR \f(CWbay\f(CR\*(C'\fR
+\&\f(CR\*(C`foo \fR\f(CYbar \fR\f(CXbaz\fR\f(CR \fR\f(CWbay\fR\f(CR\*(C'\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font-in-item
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font-in-item,v
diff -u -p -a -u -p -r1.1.1.1 fixed-font-in-item
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font-in-item	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/fixed-font-in-item	21 Feb 2024 15:47:00 -0000
@@ -4,8 +4,8 @@ Fixed-width font in item
 [input]
 =head1 Fixed-width Fonts in =item
 
-The nroff portion should not use fixed-width fonts.  In podlators 4.06 and
-earlier, italic was terminated with \f(CW, which didn't properly stop italic.
+In podlators 4.06 and earlier, italic was terminated with \f(CW, which
+didn't properly stop italic.
 
 =over 2
 
@@ -18,12 +18,12 @@ earlier, italic was terminated with \f(C
 [output]
 .SH "Fixed-width Fonts in =item"
 .IX Header "Fixed-width Fonts in =item"
-The nroff portion should not use fixed-width fonts.  In podlators 4.06 and
-earlier, italic was terminated with \ef(\s-1CW,\s0 which didn't properly stop italic.
-.ie n .IP """tar \fIoption\fP... [\fIname\fP]...""" 2
-.el .IP "\f(CWtar \f(CIoption\f(CW... [\f(CIname\f(CW]...\fR" 2
+In podlators 4.06 and earlier, italic was terminated with \ef(CW, which
+didn't properly stop italic.
+.ie n .IP """tar \fIoption\fR... [\fIname\fR]...""" 2
+.el .IP "\f(CWtar \fR\f(CIoption\fR\f(CW... [\fR\f(CIname\fR\f(CW]...\fR" 2
 .IX Item "tar option... [name]..."
 .PD 0
-.ie n .IP """tar \fIletter\fP... [\fIargument\fP]... [\fIoption\fP]... [\fIname\fP]...""" 2
-.el .IP "\f(CWtar \f(CIletter\f(CW... [\f(CIargument\f(CW]... [\f(CIoption\f(CW]... [\f(CIname\f(CW]...\fR" 2
+.ie n .IP """tar \fIletter\fR... [\fIargument\fR]... [\fIoption\fR]... [\fIname\fR]...""" 2
+.el .IP "\f(CWtar \fR\f(CIletter\fR\f(CW... [\fR\f(CIargument\fR\f(CW]... [\fR\f(CIoption\fR\f(CW]... [\fR\f(CIname\fR\f(CW]...\fR" 2
 .IX Item "tar letter... [argument]... [option]... [name]..."
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,24 @@
+[name]
+Non-quoting guesswork applied by default
+
+[input]
+=head1 GUESSWORK
+
+The hyphens-in-compound-words shouldn't be escaped, but e-mail should be.
+
+Function: foo(), bar::baz(), _private::_stuff()
+
+Manpage: foo(1), Pod::Man(3perl), git-rebase(1)
+
+Variables: $foo, @bar::baz, %Pod::Blah
+
+[output]
+.SH GUESSWORK
+.IX Header "GUESSWORK"
+The hyphens-in-compound-words shouldn't be escaped, but e\-mail should be.
+.PP
+Function: \fBfoo()\fR, \fBbar::baz()\fR, \fB_private::_stuff()\fR
+.PP
+Manpage: \fBfoo\fR\|(1), \fBPod::Man\fR\|(3perl), \fBgit\-rebase\fR\|(1)
+.PP
+Variables: \f(CW$foo\fR, \f(CW@bar::baz\fR, \f(CW%Pod::Blah\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-all
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-all
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-all
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-all	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,27 @@
+[name]
+Guesswork with all
+
+[options]
+guesswork all
+
+[input]
+=head1 GUESSWORK
+
+The hyphens-in-compound-words shouldn't be escaped, but e-mail should be.
+
+Function: foo(), bar::baz(), _private::_stuff()
+
+Manpage: foo(1), Pod::Man(3perl), git-rebase(1)
+
+Variables: $foo, @bar::baz, %Pod::Blah
+
+[output]
+.SH GUESSWORK
+.IX Header "GUESSWORK"
+The hyphens-in-compound-words shouldn't be escaped, but e\-mail should be.
+.PP
+Function: \fBfoo()\fR, \fBbar::baz()\fR, \fB_private::_stuff()\fR
+.PP
+Manpage: \fBfoo\fR\|(1), \fBPod::Man\fR\|(3perl), \fBgit\-rebase\fR\|(1)
+.PP
+Variables: \f(CW$foo\fR, \f(CW@bar::baz\fR, \f(CW%Pod::Blah\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-no-quoting
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-no-quoting
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-no-quoting
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-no-quoting	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,57 @@
+[name]
+Disable quoting guesswork
+
+[options]
+guesswork none
+
+[input]
+=head1 QUOTING
+
+Suppress quotes:
+C<"foo">,
+C<'foo'>,
+C<`foo`>,
+C<`foo'>,
+
+All these should now be quoted:
+C<$#f>,
+C<$foo[4]>,
+C<$foo{bar}>,
+C<%foo>,
+C<@foo>,
+C<&foo>,
+C<*foo>,
+C<< $foo->("bar") >>,
+C<&foo::baz("bar")>,
+C<&foo()>,
+C<foo( "bar" )>,
+C<-1000>,
+C<132.123>,
+C<5e-7>,
+C<0xdeadbeef>
+
+[output]
+.SH QUOTING
+.IX Header "QUOTING"
+Suppress quotes:
+\&\f(CW"foo"\fR,
+\&\f(CW\*(Aqfoo\*(Aq\fR,
+\&\f(CW\`foo\`\fR,
+\&\f(CW\`foo\*(Aq\fR,
+.PP
+All these should now be quoted:
+\&\f(CW\*(C`$#f\*(C'\fR,
+\&\f(CW\*(C`$foo[4]\*(C'\fR,
+\&\f(CW\*(C`$foo{bar}\*(C'\fR,
+\&\f(CW\*(C`%foo\*(C'\fR,
+\&\f(CW\*(C`@foo\*(C'\fR,
+\&\f(CW\*(C`&foo\*(C'\fR,
+\&\f(CW\*(C`*foo\*(C'\fR,
+\&\f(CW\*(C`$foo\->("bar")\*(C'\fR,
+\&\f(CW\*(C`&foo::baz("bar")\*(C'\fR,
+\&\f(CW\*(C`&foo()\*(C'\fR,
+\&\f(CW\*(C`foo( "bar" )\*(C'\fR,
+\&\f(CW\*(C`\-1000\*(C'\fR,
+\&\f(CW\*(C`132.123\*(C'\fR,
+\&\f(CW\*(C`5e\-7\*(C'\fR,
+\&\f(CW\*(C`0xdeadbeef\*(C'\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-none
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-none
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-none
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-none	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,27 @@
+[name]
+Non-quoting guesswork disabled
+
+[options]
+guesswork none
+
+[input]
+=head1 GUESSWORK
+
+The hyphens-in-compound-words shouldn't be escaped, but e-mail should be.
+
+Function: foo(), bar::baz(), _private::_stuff()
+
+Manpage: foo(1), Pod::Man(3perl), git-rebase(1)
+
+Variables: $foo, @bar::baz, %Pod::Blah
+
+[output]
+.SH GUESSWORK
+.IX Header "GUESSWORK"
+The hyphens-in-compound-words shouldn't be escaped, but e\-mail should be.
+.PP
+Function: foo(), bar::baz(), _private::_stuff()
+.PP
+Manpage: foo(1), Pod::Man(3perl), git\-rebase(1)
+.PP
+Variables: $foo, @bar::baz, %Pod::Blah
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-partial
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-partial
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-partial
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-partial	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,27 @@
+[name]
+Some guesswork configured
+
+[options]
+guesswork functions,variables
+
+[input]
+=head1 GUESSWORK
+
+The hyphens-in-compound-words shouldn't be escaped, but e-mail should be.
+
+Function: foo(), bar::baz(), _private::_stuff()
+
+Manpage: foo(1), Pod::Man(3perl), git-rebase(1)
+
+Variables: $foo, @bar::baz, %Pod::Blah
+
+[output]
+.SH GUESSWORK
+.IX Header "GUESSWORK"
+The hyphens-in-compound-words shouldn't be escaped, but e\-mail should be.
+.PP
+Function: \fBfoo()\fR, \fBbar::baz()\fR, \fB_private::_stuff()\fR
+.PP
+Manpage: foo(1), Pod::Man(3perl), git\-rebase(1)
+.PP
+Variables: \f(CW$foo\fR, \f(CW@bar::baz\fR, \f(CW%Pod::Blah\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-quoting
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-quoting
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-quoting
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/guesswork-quoting	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,54 @@
+[name]
+Quoting guesswork applied by default
+
+[input]
+=head1 QUOTING
+
+Suppress quotes:
+C<"foo">,
+C<'foo'>,
+C<`foo`>,
+C<`foo'>,
+C<$^F>,
+C<$">,
+C<$#f>,
+C<$foo[4]>,
+C<$foo{bar}>,
+C<%foo>,
+C<@foo>,
+C<&foo>,
+C<*foo>,
+C<< $foo->("bar") >>,
+C<&foo::baz("bar")>,
+C<&foo()>,
+C<foo( "bar" )>,
+C<-1000>,
+C<132.123>,
+C<5e-7>,
+C<0xdeadbeef>
+
+[output]
+.SH QUOTING
+.IX Header "QUOTING"
+Suppress quotes:
+\&\f(CW"foo"\fR,
+\&\f(CW\*(Aqfoo\*(Aq\fR,
+\&\f(CW\`foo\`\fR,
+\&\f(CW\`foo\*(Aq\fR,
+\&\f(CW$^F\fR,
+\&\f(CW$"\fR,
+\&\f(CW$#f\fR,
+\&\f(CW$foo[4]\fR,
+\&\f(CW$foo{bar}\fR,
+\&\f(CW%foo\fR,
+\&\f(CW@foo\fR,
+\&\f(CW&foo\fR,
+\&\f(CW*foo\fR,
+\&\f(CW$foo\->("bar")\fR,
+\&\f(CW&foo::baz("bar")\fR,
+\&\f(CW&foo()\fR,
+\&\f(CWfoo( "bar" )\fR,
+\&\f(CW\-1000\fR,
+\&\f(CW132.123\fR,
+\&\f(CW5e\-7\fR,
+\&\f(CW0xdeadbeef\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/hyphen-in-s
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/hyphen-in-s,v
diff -u -p -a -u -p -r1.1.1.1 hyphen-in-s
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/hyphen-in-s	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/hyphen-in-s	21 Feb 2024 15:47:00 -0000
@@ -10,5 +10,5 @@ $-0.13 should have a real hyphen.
 [output]
 .SH "Hyphen in S<>"
 .IX Header "Hyphen in S<>"
-Don't transform\ even-this\ hyphen.  This \*(L"one's-fine!\*(R", as well.  However,
+Don't transform\ even-this\ hyphen.  This "one's-fine!", as well.  However,
 $\-0.13 should have a real hyphen.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1,v
diff -u -p -a -u -p -r1.1.1.1 iso-8859-1
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1	21 Feb 2024 15:47:00 -0000
@@ -1,6 +1,9 @@
 [name]
 ISO-8859-1 encoding
 
+[options]
+encoding iso-8859-1
+
 [input]
 =encoding iso-8859-1
 
@@ -15,14 +18,14 @@ Beyoncé!  Beyoncé!  Beyoncé!!
 Older versions didn't convert Beyoncé in verbatim.
 
 [output]
-.SH "ACCENTS"
+.SH ACCENTS
 .IX Header "ACCENTS"
-Beyonce\*'!  Beyonce\*'!  Beyonce\*'!!
+Beyoncé!  Beyoncé!  Beyoncé!!
 .PP
 .Vb 3
-\&    Beyonce\*'!  Beyonce\*'!
-\&      Beyonce\*'!  Beyonce\*'!
-\&        Beyonce\*'!  Beyonce\*'!
+\&    Beyoncé!  Beyoncé!
+\&      Beyoncé!  Beyoncé!
+\&        Beyoncé!  Beyoncé!
 .Ve
 .PP
-Older versions didn't convert Beyonce\*' in verbatim.
+Older versions didn't convert Beyoncé in verbatim.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-die
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-die
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-die
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-die	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,30 @@
+[name]
+ISO-8859-1 encoding with invalid character (die)
+
+[options]
+errors die
+encoding iso-8859-1
+
+[input]
+=encoding UTF-8
+
+=head1 INVALID
+
+This character cannot be represented in ISO-8859-1, so should produce an
+error.
+
+☺
+
+[output]
+.SH INVALID
+.IX Header "INVALID"
+This character cannot be represented in ISO\-8859\-1, so should produce an
+error.
+.PP
+?
+
+[errors]
+Pod input around line 8: "\x{38790}" does not map to iso-8859-1
+
+[exception]
+POD document had syntax errors
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-pod
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-pod
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-error-pod	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,29 @@
+[name]
+ISO-8859-1 encoding with invalid character
+
+[options]
+encoding iso-8859-1
+
+[input]
+=encoding UTF-8
+
+=head1 INVALID
+
+This character cannot be represented in ISO-8859-1, so should produce an
+error.
+
+☺
+
+[output]
+.SH INVALID
+.IX Header "INVALID"
+This character cannot be represented in ISO\-8859\-1, so should produce an
+error.
+.PP
+?
+.SH "POD ERRORS"
+.IX Header "POD ERRORS"
+Hey! \fBThe above document had some coding errors, which are explained below:\fR
+.IP "Around line 8:" 4
+.IX Item "Around line 8:"
+"\ex{38790}" does not map to iso\-8859\-1
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-roff
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-roff
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-roff
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/iso-8859-1-roff	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,31 @@
+[name]
+ISO-8859-1 encoding with *roff output
+
+[options]
+encoding roff
+
+[input]
+=encoding iso-8859-1
+
+=head1 ACCENTS
+
+Beyoncé!  Beyoncé!  Beyoncé!!
+
+    Beyoncé!  Beyoncé!
+      Beyoncé!  Beyoncé!
+        Beyoncé!  Beyoncé!
+
+Older versions didn't convert Beyoncé in verbatim.
+
+[output]
+.SH ACCENTS
+.IX Header "ACCENTS"
+Beyonce\*'!  Beyonce\*'!  Beyonce\*'!!
+.PP
+.Vb 3
+\&    Beyonce\*'!  Beyonce\*'!
+\&      Beyonce\*'!  Beyonce\*'!
+\&        Beyonce\*'!  Beyonce\*'!
+.Ve
+.PP
+Older versions didn't convert Beyonce\*' in verbatim.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/language
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/language
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/language
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/language	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,19 @@
+[name]
+Hyphenation language
+
+[options]
+language ja
+
+[input]
+=encoding utf-8
+
+=head1 JAPANESE
+
+Perl 自身は Unicode で動作します。Perl スクリプト内の文字列リテラルや正規表現は Unicode を前提としています。そして入出力のためには、これまで使われてきたさまざまな文字コードに対応するモジュール、「 Encode 」が標準装備されており、Unicode とこれらの文字コードの相互変換も簡単に行えるようになっています。
+
+[output]
+.mso ja.tmac
+.hla ja
+.SH JAPANESE
+.IX Header "JAPANESE"
+Perl 自身は Unicode で動作します。Perl スクリプト内の文字列リテラルや正規表現は Unicode を前提としています。そして入出力のためには、これまで使われてきたさまざまな文字コードに対応するモジュール、「 Encode 」が標準装備されており、Unicode とこれらの文字コードの相互変換も簡単に行えるようになっています。
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/link-to-url
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/link-to-url,v
diff -u -p -a -u -p -r1.1.1.1 link-to-url
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/link-to-url	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/link-to-url	21 Feb 2024 15:47:00 -0000
@@ -16,7 +16,7 @@ L<[perl #12345]|https://rt.cpan.org/1234
 [output]
 .SH "LINK TO URL"
 .IX Header "LINK TO URL"
-This is a link <http://www.example.com/> to a \s-1URL.\s0
+This is a link <http://www.example.com/> to a URL.
 .PP
 The newest version of this document is also available on the World Wide Web at
 <http://pod.tst.eu/http://cvs.schmorp.de/rxvt\-unicode/doc/rxvt.7.pod>.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/long-quote
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/long-quote,v
diff -u -p -a -u -p -r1.1.1.1 long-quote
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/long-quote	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/long-quote	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 Long quotes option
 
 [options]
-quotes \(lq"\(rq"
+quotes "\(lq\(rq"
 
 [input]
 =head1 FOO C<BAR> BAZ
@@ -10,7 +10,7 @@ quotes \(lq"\(rq"
 Foo C<bar> baz.
 
 [output]
-.ie n .SH "FOO \(lq""BAR\(rq"" BAZ"
+.ie n .SH "FOO ""\(lqBAR\(rq"" BAZ"
 .el .SH "FOO \f(CWBAR\fP BAZ"
 .IX Header "FOO BAR BAZ"
 Foo \f(CW\*(C`bar\*(C'\fR baz.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/markup-in-name
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/markup-in-name,v
diff -u -p -a -u -p -r1.1.1.1 markup-in-name
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/markup-in-name	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/markup-in-name	21 Feb 2024 15:47:00 -0000
@@ -7,5 +7,5 @@ Various markup in NAME
 test - B<test> I<italics> F<file>
 
 [output]
-.SH "NAME"
+.SH NAME
 test \- test italics file
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,14 @@
+[name]
+Handling of E<> Unicode escape
+
+[input]
+=head1 perlfaq4 SNIPPET
+
+The trick to this problem is avoiding accidental autovivification. If
+you want to check three keys deep, you might naE<0xEF>vely try this:
+
+[output]
+.SH "perlfaq4 SNIPPET"
+.IX Header "perlfaq4 SNIPPET"
+The trick to this problem is avoiding accidental autovivification. If
+you want to check three keys deep, you might naïvely try this:
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive-groff
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive-groff
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive-groff
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/naive-groff	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,17 @@
+[name]
+Handling of E<> Unicode escape
+
+[options]
+encoding groff
+
+[input]
+=head1 perlfaq4 SNIPPET
+
+The trick to this problem is avoiding accidental autovivification. If
+you want to check three keys deep, you might naE<0xEF>vely try this:
+
+[output]
+.SH "perlfaq4 SNIPPET"
+.IX Header "perlfaq4 SNIPPET"
+The trick to this problem is avoiding accidental autovivification. If
+you want to check three keys deep, you might na\[u00EF]vely try this:
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-guesswork
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-guesswork,v
diff -u -p -a -u -p -r1.1.1.1 name-guesswork
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-guesswork	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-guesswork	21 Feb 2024 15:47:00 -0000
@@ -4,15 +4,15 @@ No guesswork in NAME
 [input]
 =head1 NAME
 
-"Stuff" (no guesswork)
+function() - man(1) $variable
 
 =head2 THINGS
 
-Oboy, is this C++ "fun" yet! (guesswork)
+function() - man(1) $variable
 
 [output]
-.SH "NAME"
-"Stuff" (no guesswork)
-.SS "\s-1THINGS\s0"
+.SH NAME
+function() \- man(1) $variable
+.SS THINGS
 .IX Subsection "THINGS"
-Oboy, is this \*(C+ \*(L"fun\*(R" yet! (guesswork)
+\&\fBfunction()\fR \- \fBman\fR\|(1) \f(CW$variable\fR
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,15 @@
+[name]
+Honor quote settings in NAME
+
+[options]
+lquote '
+rquote '
+
+[input]
+=head1 NAME
+
+C</etc/blah> - config file for I<blah(1)>
+
+[output]
+.SH NAME
+\&'/etc/blah' \- config file for blah(1)
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes-none
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes-none
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes-none
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/name-quotes-none	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,14 @@
+[name]
+Honor quote settings in NAME
+
+[options]
+quotes none
+
+[input]
+=head1 NAME
+
+C</etc/blah> - config file for I<blah(1)>
+
+[output]
+.SH NAME
+/etc/blah \- config file for blah(1)
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nested-lists
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nested-lists,v
diff -u -p -a -u -p -r1.1.1.1 nested-lists
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nested-lists	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nested-lists	21 Feb 2024 15:47:00 -0000
@@ -23,7 +23,7 @@ Should be a bullet.
 .IX Item "First level"
 Blah blah blah....
 .RS 4
-.IP "\(bu" 4
+.IP \(bu 4
 Should be a bullet.
 .RE
 .RS 4
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/non-ascii
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/non-ascii,v
diff -u -p -a -u -p -r1.1.1.1 non-ascii
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/non-ascii	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/non-ascii	21 Feb 2024 15:47:00 -0000
@@ -1,12 +1,15 @@
 [name]
 Non-ASCII character
 
+[options]
+encoding roff
+
 [input]
 =head1 YEN
 
 It cost me E<165>12345! That should be an X.
 
 [output]
-.SH "YEN"
+.SH YEN
 .IX Header "YEN"
 It cost me X12345! That should be an X.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nonbreaking-space-l
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nonbreaking-space-l
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nonbreaking-space-l
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/nonbreaking-space-l	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,28 @@
+[name]
+S<> wrapping L<>
+
+[input]
+=head1 URLS
+
+SZ<><> wrapping LZ<><> should make the space between the anchor and URL
+non-breaking and thus keep them together.
+
+L<perl> L<Net::DNS> L<Net::DNS::RR> L<Net::DNS::SEC>
+S<L<RFC2535|https://tools.ietf.org/html/rfc2535>>
+S<L<RFC2536|https://tools.ietf.org/html/rfc2536>>
+S<L<RFC2931|https://tools.ietf.org/html/rfc2931>>
+S<L<RFC3110|https://tools.ietf.org/html/rfc3110>>
+S<L<RFC4034|https://tools.ietf.org/html/rfc4034>>
+
+[output]
+.SH URLS
+.IX Header "URLS"
+S<> wrapping L<> should make the space between the anchor and URL
+non-breaking and thus keep them together.
+.PP
+perl Net::DNS Net::DNS::RR Net::DNS::SEC
+RFC2535\ <https://tools.ietf.org/html/rfc2535>
+RFC2536\ <https://tools.ietf.org/html/rfc2536>
+RFC2931\ <https://tools.ietf.org/html/rfc2931>
+RFC3110\ <https://tools.ietf.org/html/rfc3110>
+RFC4034\ <https://tools.ietf.org/html/rfc4034>
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/not-bullet
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/not-bullet,v
diff -u -p -a -u -p -r1.1.1.1 not-bullet
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/not-bullet	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/not-bullet	21 Feb 2024 15:47:00 -0000
@@ -11,5 +11,5 @@ Not bullet.
 =back
 
 [output]
-.IP "*" 4
+.IP * 4
 Not bullet.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/paired-quotes
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/paired-quotes
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/paired-quotes
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/paired-quotes	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-[name]
-Paired quotes
-
-[input]
-=head1 SEQS
-
-"=over ... Z<>=back"
-
-"SE<lt>...E<gt>"
-
-The quotes should be converted in the above to paired quotes.
-
-[output]
-.SH "SEQS"
-.IX Header "SEQS"
-\&\*(L"=over ... =back\*(R"
-.PP
-\&\*(L"S<...>\*(R"
-.PP
-The quotes should be converted in the above to paired quotes.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/periods
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/periods,v
diff -u -p -a -u -p -r1.1.1.1 periods
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/periods	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/periods	21 Feb 2024 15:47:00 -0000
@@ -7,6 +7,6 @@ Quoted periods
 This C<.> should be quoted.
 
 [output]
-.SH "PERIODS"
+.SH PERIODS
 .IX Header "PERIODS"
 This \f(CW\*(C`.\*(C'\fR should be quoted.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/small-caps-magic
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/small-caps-magic
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/small-caps-magic
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/small-caps-magic	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-[name]
-Small caps and unbreakable magic
-
-[input]
-=head1 SE<lt>E<gt> MAGIC
-
-Magic should be applied S<RISC OS> to that.
-
-[output]
-.SH "S<> MAGIC"
-.IX Header "S<> MAGIC"
-Magic should be applied \s-1RISC\s0\ \s-1OS\s0 to that.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/true-false
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/true-false,v
diff -u -p -a -u -p -r1.1.1.1 true-false
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/true-false	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/true-false	21 Feb 2024 15:47:00 -0000
@@ -11,6 +11,6 @@ code and got it wrong.
 [output]
 .SH "TRUE (1)"
 .IX Header "TRUE (1)"
-podlators prior to 4.08 misrendered \s-1TRUE\s0 (1) and \s-1FALSE\s0 (0) with escaped nroff
+podlators prior to 4.08 misrendered TRUE (1) and FALSE (0) with escaped nroff
 in the output because it tried to apply both small caps and man page reference
 code and got it wrong.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/uppercase-license
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/uppercase-license
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/uppercase-license
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/uppercase-license	30 Dec 2019 02:10:37 -0000	1.1.1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-[name]
-Uppercase license text
-
-[input]
-=head1 Uppercase License
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-SPDX-License-Identifier: MIT
-
-[output]
-.SH "Uppercase License"
-.IX Header "Uppercase License"
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the \*(L"Software\*(R"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-.PP
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-.PP
-\&\s-1THE SOFTWARE IS PROVIDED \*(L"AS IS\*(R", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\s0
-.PP
-SPDX-License-Identifier: \s-1MIT\s0
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-nonbreaking
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-nonbreaking,v
diff -u -p -a -u -p -r1.1 utf8-nonbreaking
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-nonbreaking	5 Feb 2017 00:32:07 -0000	1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-nonbreaking	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 UTF-8 non-breaking space
 
 [options]
-utf8 1
+encoding utf-8
 
 [input]
 =encoding utf-8
@@ -14,4 +14,4 @@ This is S<non-breaking output>.
 [output]
 .SH "S<> output with UTF\-8"
 .IX Header "S<> output with UTF-8"
-This is non-breaking output.
+This is non-breaking\ output.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-verbatim
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-verbatim,v
diff -u -p -a -u -p -r1.1 utf8-verbatim
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-verbatim	5 Feb 2017 00:32:07 -0000	1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/utf8-verbatim	21 Feb 2024 15:47:00 -0000
@@ -18,7 +18,7 @@ Beyoncé!  Beyoncé!  Beyoncé!!
 Older versions did not convert Beyoncé in verbatim.
 
 [output]
-.SH "BEYONCÉ"
+.SH BEYONCÉ
 .IX Header "BEYONCÉ"
 Beyoncé!  Beyoncé!  Beyoncé!!
 .PP
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/x-whitespace-entry
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/x-whitespace-entry,v
diff -u -p -a -u -p -r1.1.1.1 x-whitespace-entry
--- gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/x-whitespace-entry	13 Feb 2019 21:11:20 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/x-whitespace-entry	21 Feb 2024 15:47:00 -0000
@@ -7,7 +7,7 @@ X<> matching whitespace
 Index entry matching a whitespace escape.X<\n>
 
 [output]
-.SH "INDEX"
+.SH INDEX
 .IX Header "INDEX"
 Index entry matching a whitespace escape.
 .IX Xref "\\n"
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/zero-width-space
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/zero-width-space
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/zero-width-space
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/man/zero-width-space	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,10 @@
+[name]
+Zero-width spaces
+
+[input]
+=pod
+
+B<DEF:>I<E<lt>vnameE<gt>>=I<E<lt>rrdfileE<gt>>:I<E<lt>ds-nameE<gt>>:I<E<lt>CFE<gt>>[:step=I<E<lt>stepE<gt>>][:start=I<E<lt>timeE<gt>>]E<0x200B>[:end=I<E<lt>timeE<gt>>]E<0x200B>[:reduce=I<E<lt>B<CF>E<gt>>]E<0x200B>[:daemon=I<E<lt>addressE<gt>>]
+
+[output]
+\&\fBDEF:\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds\-name>\fR:\fI<CF>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR]\:[:end=\fI<time>\fR]\:[:reduce=\fI<\fR\f(BICF\fR\fI>\fR]\:[:daemon=\fI<address>\fR]
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-no-quoting
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-no-quoting
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-no-quoting
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-no-quoting	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,39 @@
+[name]
+Disable quoting guesswork
+
+[options]
+guesswork none
+
+[input]
+=head1 QUOTING
+
+Suppress quotes:
+C<"foo">,
+C<'foo'>,
+C<`foo`>,
+C<`foo'>
+
+All these should now be quoted:
+C<$#f>,
+C<$foo[4]>,
+C<$foo{bar}>,
+C<%foo>,
+C<@foo>,
+C<&foo>,
+C<*foo>,
+C<< $foo->("bar") >>,
+C<&foo::baz("bar")>,
+C<&foo()>,
+C<foo( "bar" )>,
+C<-1000>,
+C<132.123>,
+C<5e-7>,
+C<0xdeadbeef>
+
+[output]
+QUOTING
+    Suppress quotes: "foo", 'foo', `foo`, `foo'
+
+    All these should now be quoted: "$#f", "$foo[4]", "$foo{bar}", "%foo",
+    "@foo", "&foo", "*foo", "$foo->("bar")", "&foo::baz("bar")", "&foo()",
+    "foo( "bar" )", "-1000", "132.123", "5e-7", "0xdeadbeef"
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-quoting
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-quoting
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-quoting
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/guesswork-quoting	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,34 @@
+[name]
+Quoting guesswork applied by default
+
+[input]
+=head1 QUOTING
+
+Suppress quotes:
+C<"foo">,
+C<'foo'>,
+C<`foo`>,
+C<`foo'>,
+C<$^F>,
+C<$">,
+C<$#f>,
+C<$foo[4]>,
+C<$foo{bar}>,
+C<%foo>,
+C<@foo>,
+C<&foo>,
+C<*foo>,
+C<< $foo->("bar") >>,
+C<&foo::baz("bar")>,
+C<&foo()>,
+C<foo( "bar" )>,
+C<-1000>,
+C<132.123>,
+C<5e-7>,
+C<0xdeadbeef>
+
+[output]
+QUOTING
+    Suppress quotes: "foo", 'foo', `foo`, `foo', $^F, $", $#f, $foo[4],
+    $foo{bar}, %foo, @foo, &foo, *foo, $foo->("bar"), &foo::baz("bar"),
+    &foo(), foo( "bar" ), -1000, 132.123, 5e-7, 0xdeadbeef
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-die
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-die
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-die
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-die	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,29 @@
+[name]
+ISO-8859-1 encoding
+
+[options]
+errors die
+encoding iso-8859-1
+
+[input]
+=encoding UTF-8
+
+=head1 INVALID
+
+This character cannot be represented in ISO-8859-1, so should produce an
+error.
+
+☺
+
+[output]
+INVALID
+    This character cannot be represented in ISO-8859-1, so should produce an
+    error.
+
+    ?
+
+[errors]
+Pod input around line 8: "\x{38790}" does not map to iso-8859-1
+
+[exception]
+POD document had syntax errors
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-pod
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-pod
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-error-pod	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,29 @@
+[name]
+ISO-8859-1 encoding
+
+[options]
+encoding iso-8859-1
+
+[input]
+=encoding UTF-8
+
+=head1 INVALID
+
+This character cannot be represented in ISO-8859-1, so should produce an
+error.
+
+☺
+
+[output]
+INVALID
+    This character cannot be represented in ISO-8859-1, so should produce an
+    error.
+
+    ?
+
+POD ERRORS
+    Hey! The above document had some coding errors, which are explained
+    below:
+
+    Around line 8:
+        "\x{38790}" does not map to iso-8859-1
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-utf8
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-utf8
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-utf8
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/iso-8859-1-utf8	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,28 @@
+[name]
+ISO-8859-1 encoding
+
+[options]
+encoding utf-8
+
+[input]
+=encoding iso-8859-1
+
+=head1 ACCENTS
+
+Beyoncé!  Beyoncé!  Beyoncé!!
+
+    Beyoncé!  Beyoncé!
+      Beyoncé!  Beyoncé!
+        Beyoncé!  Beyoncé!
+
+Older versions didn't convert Beyoncé in verbatim.
+
+[output]
+ACCENTS
+    Beyoncé! Beyoncé! Beyoncé!!
+
+        Beyoncé!  Beyoncé!
+          Beyoncé!  Beyoncé!
+            Beyoncé!  Beyoncé!
+
+    Older versions didn't convert Beyoncé in verbatim.
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/naive
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/naive
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/naive
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/naive	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,13 @@
+[name]
+Handling of E<> Unicode escape
+
+[input]
+=head1 perlfaq4 SNIPPET
+
+The trick to this problem is avoiding accidental autovivification. If
+you want to check three keys deep, you might naE<0xEF>vely try this:
+
+[output]
+perlfaq4 SNIPPET
+    The trick to this problem is avoiding accidental autovivification. If
+    you want to check three keys deep, you might naïvely try this:
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,14 @@
+[name]
+Honor quote settings in NAME
+
+[options]
+quotes ''
+
+[input]
+=head1 NAME
+
+C</etc/blah> - config file for I<blah(1)>
+
+[output]
+NAME
+    '/etc/blah' - config file for *blah(1)*
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes-none
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes-none
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes-none
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/name-quotes-none	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,14 @@
+[name]
+Honor quote settings in NAME
+
+[options]
+quotes none
+
+[input]
+=head1 NAME
+
+C</etc/blah> - config file for I<blah(1)>
+
+[output]
+NAME
+    /etc/blah - config file for *blah(1)*
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/non-latin
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/non-latin
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/non-latin
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/non-latin	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,30 @@
+[name]
+E<> escapes outside of ISO 8859-1 range
+
+[input]
+=head1 BACKGROUND
+
+Taken from an older version of ack (see podlators bug #102631), this was
+seen in an input file with no =encoding and characers outside of the ISO
+8859-1 range.
+
+=head1 ACKNOWLEDGEMENTS
+
+...
+SE<eacute>bastien FeugE<egrave>re,
+RaE<uacute>l GundE<iacute>n,
+RaE<aacute>l GundE<aacute>n,
+GE<aacute>bor SzabE<oacute>,
+E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason,
+Ask BjE<oslash>rn Hansen,
+Slaven ReziE<0x107>,
+
+[output]
+BACKGROUND
+    Taken from an older version of ack (see podlators bug #102631), this was
+    seen in an input file with no =encoding and characers outside of the ISO
+    8859-1 range.
+
+ACKNOWLEDGEMENTS
+    ... Sébastien Feugère, Raúl Gundín, Raál Gundán, Gábor Szabó, Ævar
+    Arnfjörð Bjarmason, Ask Bjørn Hansen, Slaven Rezić,
Index: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/nonbreaking-space-l
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/nonbreaking-space-l
diff -N gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/nonbreaking-space-l
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/data/snippets/text/nonbreaking-space-l	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,27 @@
+[name]
+S<> wrapping L<>
+
+[input]
+=head1 URLS
+
+SZ<><> wrapping LZ<><> should make the space between the anchor and URL
+non-breaking and thus keep them together.
+
+L<perl> L<Net::DNS> L<Net::DNS::RR> L<Net::DNS::SEC>
+S<L<RFC2535|https://tools.ietf.org/html/rfc2535>>
+S<L<RFC2536|https://tools.ietf.org/html/rfc2536>>
+S<L<RFC2931|https://tools.ietf.org/html/rfc2931>>
+S<L<RFC3110|https://tools.ietf.org/html/rfc3110>>
+S<L<RFC4034|https://tools.ietf.org/html/rfc4034>>
+
+[output]
+URLS
+    S<> wrapping L<> should make the space between the anchor and URL
+    non-breaking and thus keep them together.
+
+    perl Net::DNS Net::DNS::RR Net::DNS::SEC
+    RFC2535 <https://tools.ietf.org/html/rfc2535>
+    RFC2536 <https://tools.ietf.org/html/rfc2536>
+    RFC2931 <https://tools.ietf.org/html/rfc2931>
+    RFC3110 <https://tools.ietf.org/html/rfc3110>
+    RFC4034 <https://tools.ietf.org/html/rfc4034>
Index: gnu/usr.bin/perl/cpan/podlators/t/docs/changes.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/docs/changes.t
diff -N gnu/usr.bin/perl/cpan/podlators/t/docs/changes.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/docs/changes.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+#
+# Check Changes file for compliance with CPAN::Changes::Spec.
+#
+# The canonical version of this file is maintained in the rra-c-util package,
+# which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
+#
+# Copyright 2021 Russ Allbery <eagle@eyrie.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+# SPDX-License-Identifier: MIT
+
+use 5.010;
+use strict;
+use warnings;
+
+use lib 't/lib';
+
+use Test::RRA qw(skip_unless_automated use_prereq);
+
+use Test::More;
+
+# Skip this test for normal user installs.
+skip_unless_automated('Changes format tests');
+
+# Load prerequisite modules.
+use_prereq('Test::CPAN::Changes');
+
+# Run the tests.
+changes_ok();
Index: gnu/usr.bin/perl/cpan/podlators/t/docs/pod-spelling.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/docs/pod-spelling.t,v
diff -u -p -a -u -p -r1.4 pod-spelling.t
--- gnu/usr.bin/perl/cpan/podlators/t/docs/pod-spelling.t	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/docs/pod-spelling.t	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
 # Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2019, 2021 Russ Allbery <eagle@eyrie.org>
 # Copyright 2013-2014
 #     The Board of Trustees of the Leland Stanford Junior University
 #
@@ -30,7 +30,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -47,12 +47,15 @@ skip_unless_author('Spelling tests');
 # Load prerequisite modules.
 use_prereq('Test::Spelling');
 
-# Check all POD in the Perl distribution.  Add the examples directory if it
-# exists.  Also add any files in usr/bin or usr/sbin, which are widely used in
-# Stanford-internal packages.
+# Check all POD in the Perl distribution.  Add the examples and t/lib
+# directories if they exist.  Also add any files in usr/bin or usr/sbin, which
+# are widely used in Stanford-internal packages.
 my @files = all_pod_files();
 if (-d 'examples') {
     push(@files, all_pod_files('examples'));
+}
+if (-d File::Spec->catfile('t', 'lib')) {
+    push(@files, all_pod_files(File::Spec->catfile('t', 'lib')));
 }
 for my $dir (qw(usr/bin usr/sbin)) {
     if (-d $dir) {
Index: gnu/usr.bin/perl/cpan/podlators/t/docs/pod.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/docs/pod.t,v
diff -u -p -a -u -p -r1.4 pod.t
--- gnu/usr.bin/perl/cpan/podlators/t/docs/pod.t	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/docs/pod.t	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
 # Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2019, 2021 Russ Allbery <eagle@eyrie.org>
 # Copyright 2012-2014
 #     The Board of Trustees of the Leland Stanford Junior University
 #
@@ -30,7 +30,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -46,12 +46,15 @@ skip_unless_automated('POD syntax tests'
 # Load prerequisite modules.
 use_prereq('Test::Pod');
 
-# Check all POD in the Perl distribution.  Add the examples directory if it
-# exists.  Also add any files in usr/bin or usr/sbin, which are widely used in
-# Stanford-internal packages.
+# Check all POD in the Perl distribution.  Add the examples and t/lib
+# directories if they exist.  Also add any files in usr/bin or usr/sbin,
+# which are widely used in Stanford-internal packages.
 my @files = all_pod_files();
 if (-d 'examples') {
     push(@files, all_pod_files('examples'));
+}
+if (-d File::Spec->catfile('t', 'lib')) {
+    push(@files, all_pod_files(File::Spec->catfile('t', 'lib')));
 }
 for my $dir (qw(usr/bin usr/sbin)) {
     if (-d $dir) {
Index: gnu/usr.bin/perl/cpan/podlators/t/docs/spdx-license.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/docs/spdx-license.t,v
diff -u -p -a -u -p -r1.1.1.2 spdx-license.t
--- gnu/usr.bin/perl/cpan/podlators/t/docs/spdx-license.t	1 Mar 2021 23:15:34 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/podlators/t/docs/spdx-license.t	21 Feb 2024 15:47:00 -0000
@@ -9,7 +9,7 @@
 # The canonical version of this file is maintained in the rra-c-util package,
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
-# Copyright 2018-2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2018-2021 Russ Allbery <eagle@eyrie.org>
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -45,8 +45,9 @@ use Test::More;
 # File name (the file without any directory component) and path patterns to
 # skip for this check.
 ## no critic (RegularExpressions::ProhibitFixedStringMatches)
+#<<<
 my @IGNORE = (
-    qr{ \A Build ( [.] (?!PL) .* )? \z }ixms,    # Generated file from Build.PL
+    qr{ \A Build ( [.] (?!PL) .* )? \z }ixms,  # Generated file from Build.PL
     qr{ \A LICENSE \z }xms,                 # Generated file, no license itself
     qr{ \A (Changes|NEWS|THANKS) \z }xms,   # Package license should be fine
     qr{ \A TODO \z }xms,                    # Package license should be fine
@@ -55,20 +56,24 @@ my @IGNORE = (
     qr{ \A (MY)? META [.] .* }xms,          # Generated file, no license itself
     qr{ [.] output \z }xms,                 # Test data
     qr{ pod2htm . [.] tmp \z }xms,          # Windows pod2html output
+    qr{ ~ \z }xms,                          # Backup files
 );
 my @IGNORE_PATHS = (
-    qr{ \A [.] / [.] git/ }xms,               # Version control files
-    qr{ \A [.] /_build/ }xms,                 # Module::Build metadata
-    qr{ \A [.] /blib/ }xms,                   # Perl build system artifacts
-    qr{ \A [.] /cover_db/ }xms,               # Artifacts from coverage testing
-    qr{ \A [.] /debian/ }xms,                 # Found in debian/* branches
-    qr{ \A [.] /docs/metadata/ }xms,          # Package license should be fine
-    qr{ \A [.] /README ( [.] .* )? \z }xms,   # Package license should be fine
-    qr{ \A [.] /share/ }xms,                  # Package license should be fine
-    qr{ \A [.] /t/data .* /metadata/ }xms,    # Test metadata
-    qr{ \A [.] /t/data .* /output/ }xms,      # Test output
-    qr{ \A [.] /t/data .* [.] json \z }xms,   # Test metadata
+    qr{ \A [.] / [.] git/ }xms,             # Version control files
+    qr{ \A [.] / [.] pc/ }xms,              # quilt metadata files
+    qr{ \A [.] /_build/ }xms,               # Module::Build metadata
+    qr{ \A [.] /blib/ }xms,                 # Perl build system artifacts
+    qr{ \A [.] /cover_db/ }xms,             # Artifacts from coverage testing
+    qr{ \A [.] /debian/ }xms,               # Found in debian/* branches
+    qr{ \A [.] /docs/metadata/ }xms,        # Package license should be fine
+    qr{ \A [.] /README ( [.] .* )? \z }xms, # Package license should be fine
+    qr{ \A [.] /share/ }xms,                # Package license should be fine
+    qr{ \A [.] /t/data/generate/ }xms,      # Test metadata
+    qr{ \A [.] /t/data/spin/ }xms,          # Test metadata
+    qr{ \A [.] /t/data/update/ }xms,        # Test output
+    qr{ \A [.] /t/data .* [.] json \z }xms, # Test metadata
 );
+#>>>
 ## use critic
 
 # Only run this test during automated testing, since failure doesn't indicate
@@ -82,7 +87,7 @@ skip_unless_automated('SPDX identifier t
 # Returns: undef
 sub check_file {
     my $filename = $_;
-    my $path     = $File::Find::name;
+    my $path = $File::Find::name;
 
     # Ignore files in the whitelist and binary files.
     for my $pattern (@IGNORE) {
Index: gnu/usr.bin/perl/cpan/podlators/t/docs/synopsis.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/docs/synopsis.t,v
diff -u -p -a -u -p -r1.4 synopsis.t
--- gnu/usr.bin/perl/cpan/podlators/t/docs/synopsis.t	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/docs/synopsis.t	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
 # Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2019, 2021 Russ Allbery <eagle@eyrie.org>
 # Copyright 2013-2014
 #     The Board of Trustees of the Leland Stanford Junior University
 #
@@ -30,7 +30,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
Index: gnu/usr.bin/perl/cpan/podlators/t/general/basic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/general/basic.t,v
diff -u -p -a -u -p -r1.4 basic.t
--- gnu/usr.bin/perl/cpan/podlators/t/general/basic.t	15 Feb 2023 01:36:25 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/general/basic.t	21 Feb 2024 15:47:00 -0000
@@ -12,7 +12,7 @@
 # the machinery to run small POD snippets through the specific formatter being
 # tested should probably be used instead.
 #
-# Copyright 2001-2002, 2004, 2006, 2009, 2012, 2014-2015, 2018-2019
+# Copyright 2001-2002, 2004, 2006, 2009, 2012, 2014-2015, 2018-2019, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -43,27 +43,31 @@ BEGIN {
 local $| = 1;
 
 # Hard-code configuration for Term::Cap to get predictable results.
+#<<<
 local $ENV{COLUMNS}  = 80;
 local $ENV{TERM}     = 'xterm';
 local $ENV{TERMPATH} = File::Spec->catfile('t', 'data', 'termcap');
 local $ENV{TERMCAP}  = 'xterm:co=#80:do=^J:md=\\E[1m:us=\\E[4m:me=\\E[m';
+#>>>
 
 # Find the source of the test file.
-my $INPUT = File::Spec->catfile('t', 'data', 'basic.pod');
+my $input = File::Spec->catfile('t', 'data', 'basic.pod');
 
 # Map of translators to the file containing the formatted output to compare
 # against.
-my %OUTPUT = (
+#<<<
+my %output = (
     'Pod::Man'              => File::Spec->catfile('t', 'data', 'basic.man'),
     'Pod::Text'             => File::Spec->catfile('t', 'data', 'basic.txt'),
     'Pod::Text::Color'      => File::Spec->catfile('t', 'data', 'basic.clr'),
     'Pod::Text::Overstrike' => File::Spec->catfile('t', 'data', 'basic.ovr'),
     'Pod::Text::Termcap'    => File::Spec->catfile('t', 'data', 'basic.cap'),
 );
+#>>>
 
 # Walk through teach of the modules and format the sample file, checking to
 # ensure the results match the pre-generated file.
-for my $module (sort keys %OUTPUT) {
+for my $module (sort keys %output) {
     my $parser = $module->new();
     isa_ok($parser, $module, 'parser object');
 
@@ -71,7 +75,7 @@ for my $module (sort keys %OUTPUT) {
     # instead of a file.
     my $got;
     $parser->output_string(\$got);
-    $parser->parse_file($INPUT);
+    $parser->parse_file($input);
 
     # If the test module is Pod::Man, strip off the header.  This test does
     # not attempt to compare it, since it contains version numbers that
@@ -81,15 +85,15 @@ for my $module (sort keys %OUTPUT) {
     }
 
     # Try to convert on EBCDIC boxes so that the test still works.
-    if (ord "A" == 193 && $module eq 'Pod::Text::Termcap') {
+    if (ord('A') == 193 && $module eq 'Pod::Text::Termcap') {
         $got =~ tr{\033}{\047};
     }
 
     # Check the output.  If it doesn't match, save the erroneous output in a
     # file for later inspection.
-    my $expected = slurp($OUTPUT{$module});
+    my $expected = slurp($output{$module});
     if (!ok($got eq $expected, "$module output is correct")) {
-        my ($suffix) = ($OUTPUT{$module} =~ m{ [.] ([^.]+) \z }xms);
+        my ($suffix) = ($output{$module} =~ m{ [.] ([^.]+) \z }xms);
         my $tmpdir = File::Spec->catdir('t', 'tmp');
         if (!-d $tmpdir) {
             mkdir($tmpdir, 0777);
Index: gnu/usr.bin/perl/cpan/podlators/t/general/filehandle.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/general/filehandle.t,v
diff -u -p -a -u -p -r1.3 filehandle.t
--- gnu/usr.bin/perl/cpan/podlators/t/general/filehandle.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/general/filehandle.t	21 Feb 2024 15:47:00 -0000
@@ -38,7 +38,7 @@ if (!-d $tmpdir) {
 }
 
 # Load the tests.
-my $man_data_ref  = read_snippet('man/cpp');
+my $man_data_ref = read_snippet('man/cpp');
 my $text_data_ref = read_snippet('text/cpp');
 
 # Write the POD source to a temporary file for the input file handle.
@@ -50,11 +50,11 @@ close($input) or BAIL_OUT("cannot write 
 
 # Write the Pod::Man output to a file.
 my $outfile = File::Spec->catfile('t', 'tmp', "tmp$$.man");
-open($input,     '<', $infile)  or BAIL_OUT("cannot open $infile: $!");
+open($input, '<', $infile) or BAIL_OUT("cannot open $infile: $!");
 open(my $output, '>', $outfile) or BAIL_OUT("cannot open $outfile: $!");
 my $parser = Pod::Man->new;
 $parser->parse_from_filehandle($input, $output);
-close($input)  or BAIL_OUT("cannot read from $infile: $!");
+close($input) or BAIL_OUT("cannot read from $infile: $!");
 close($output) or BAIL_OUT("cannot write to $outfile: $!");
 
 # Read the output back in and compare it.
@@ -66,11 +66,11 @@ unlink($outfile);
 
 # Now, do the same drill with Pod::Text.  Parse the input to a temporary file.
 $outfile = File::Spec->catfile('t', 'tmp', "tmp$$.txt");
-open($input,  '<', $infile)  or BAIL_OUT("cannot open $infile: $!");
+open($input, '<', $infile) or BAIL_OUT("cannot open $infile: $!");
 open($output, '>', $outfile) or BAIL_OUT("cannot open $outfile: $!");
 $parser = Pod::Text->new;
 $parser->parse_from_filehandle($input, $output);
-close($input)  or BAIL_OUT("cannot read from $infile: $!");
+close($input) or BAIL_OUT("cannot read from $infile: $!");
 close($output) or BAIL_OUT("cannot write to $outfile: $!");
 
 # Read the output back in and compare it.  Pod::Text adds a trailing blank
Index: gnu/usr.bin/perl/cpan/podlators/t/general/pod-parser.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/general/pod-parser.t,v
diff -u -p -a -u -p -r1.3 pod-parser.t
--- gnu/usr.bin/perl/cpan/podlators/t/general/pod-parser.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/general/pod-parser.t	21 Feb 2024 15:47:00 -0000
@@ -71,8 +71,8 @@ close($input) or BAIL_OUT("cannot write 
 
 # Now test the pod2text function with a single output.  This will send the
 # results to standard output, so we need to redirect that to a file.
-open($output,         '>',  $outfile) or BAIL_OUT("cannot open $outfile: $!");
-open(my $save_stdout, '>&', STDOUT)   or BAIL_OUT("cannot dup stdout: $!");
+open($output, '>', $outfile) or BAIL_OUT("cannot open $outfile: $!");
+open(my $save_stdout, '>&', STDOUT) or BAIL_OUT("cannot dup stdout: $!");
 open(STDOUT, '>&', $output) or BAIL_OUT("cannot redirect stdout: $!");
 pod2text($infile);
 close($output) or BAIL_OUT("cannot write to $outfile: $!");
Index: gnu/usr.bin/perl/cpan/podlators/t/lib/Test/Podlators.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/lib/Test/Podlators.pm,v
diff -u -p -a -u -p -r1.4 Podlators.pm
--- gnu/usr.bin/perl/cpan/podlators/t/lib/Test/Podlators.pm	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/lib/Test/Podlators.pm	21 Feb 2024 15:47:00 -0000
@@ -8,7 +8,8 @@
 
 package Test::Podlators;
 
-use 5.008;
+use 5.010;
+use base qw(Exporter);
 use strict;
 use warnings;
 
@@ -17,22 +18,12 @@ use Exporter;
 use File::Spec;
 use Test::More;
 
-# For Perl 5.006 compatibility.
-## no critic (ClassHierarchies::ProhibitExplicitISA)
+our $VERSION = '2.01';
 
-# Declare variables that should be set in BEGIN for robustness.
-our (@EXPORT_OK, @ISA, $VERSION);
-
-# Set $VERSION and everything export-related in a BEGIN block for robustness
-# against circular module loading (not that we load any modules, but
-# consistency is good).
-BEGIN {
-    @ISA       = qw(Exporter);
-    $VERSION   = '2.01';
-    @EXPORT_OK = qw(
-      read_snippet read_test_data slurp test_snippet test_snippet_with_io
-    );
-}
+# Export the test helper functions.
+our @EXPORT_OK = qw(
+    read_snippet read_test_data slurp test_snippet test_snippet_with_io
+);
 
 # The file handle used to capture STDERR while we mess with file descriptors.
 my $OLD_STDERR;
@@ -45,7 +36,7 @@ my $SAVED_STDERR;
 # scripts trying to create the temporary directory when running tests in
 # parallel.
 sub _stderr_cleanup {
-    if ($SAVED_STDERR && -f $SAVED_STDERR) {
+    if ($SAVED_STDERR && -e $SAVED_STDERR) {
         unlink($SAVED_STDERR);
     }
     return;
@@ -64,12 +55,8 @@ sub _stderr_save {
         mkdir($tmpdir, 0777) or BAIL_OUT("cannot create $tmpdir: $!");
     }
     my $path = File::Spec->catfile($tmpdir, "out$$.err");
-
-    ## no critic(InputOutput::RequireBriefOpen)
     open($OLD_STDERR, '>&', STDERR) or BAIL_OUT("cannot dup STDERR: $!");
     open(STDERR, '>', $path) or BAIL_OUT("cannot redirect STDERR: $!");
-    ## use critic
-
     $SAVED_STDERR = $path;
     return;
 }
@@ -88,7 +75,7 @@ sub _stderr_restore {
 }
 
 # Read one test snippet from the provided relative file name and return it.
-# For the format, see t/data/snippets/README.
+# For the format, see t/data/snippets/README.md.
 #
 # $path     - Relative path to read test data from
 #
@@ -249,13 +236,10 @@ sub slurp {
 sub test_snippet {
     my ($class, $snippet, $options_ref) = @_;
     my $data_ref = read_snippet($snippet);
+    $options_ref //= {};
 
     # Determine the encoding to expect for the output portion of the snippet.
-    my $encoding;
-    if (defined($options_ref)) {
-        $encoding = $options_ref->{encoding};
-    }
-    $encoding ||= 'UTF-8';
+    my $encoding = $options_ref->{encoding} // 'UTF-8';
 
     # Create the formatter object.
     my $parser = $class->new(%{ $data_ref->{options} }, name => 'TEST');
@@ -268,7 +252,7 @@ sub test_snippet {
     $parser->output_string(\$got);
     eval { $parser->parse_string_document($data_ref->{input}) };
     my $exception = $@;
-    my $stderr    = _stderr_restore();
+    my $stderr = _stderr_restore();
 
     # If we were testing Pod::Man, strip off everything prior to .nh from the
     # output so that we aren't testing the generated header.
@@ -280,8 +264,7 @@ sub test_snippet {
     $got =~ s{ \n\s+ \z }{\n}xms;
 
     # Check the output, errors, and any exception.
-    my $expected = decode($encoding, $data_ref->{output});
-    is($got, $expected, "$data_ref->{name}: output");
+    is($got, $data_ref->{output}, "$data_ref->{name}: output");
     if ($data_ref->{errors} || $stderr) {
         is($stderr, $data_ref->{errors} || q{}, "$data_ref->{name}: errors");
     }
@@ -294,6 +277,45 @@ sub test_snippet {
     return;
 }
 
+# Helper function to check the preamble of Pod::Man output.
+#
+# $name     - Name of the test
+# $fh       - File handle with results
+# $encoding - Expected encoding
+#
+# Returns: True if the preamble contains accent definitions
+sub _check_man_preamble {
+    my ($name, $fh, $encoding) = @_;
+    $encoding = lc($encoding);
+
+    # Check the encoding line.
+    my $line = <$fh>;
+    if ($encoding eq 'ascii') {
+        unlike(
+            $line, qr{ mode: [ ] troff }xms,
+            "$name: no preconv coding line",
+        );
+    } else {
+        is(
+            $line,
+            ".\\\" -*- mode: troff; coding: $encoding -*-\n",
+            "$name: preconv coding line",
+        );
+    }
+
+    # Consume the rest of the preamble and check for accent definitions.
+    my $saw_accents;
+    while (defined($line = <$fh>)) {
+        $line = decode($encoding, $line);
+        if ($line =~ m{ Accent [ ] mark [ ] definitions }xms) {
+            $saw_accents = 1;
+        }
+        last if $line =~ m{ \A [.]nh }xms;
+    }
+
+    return $saw_accents;
+}
+
 # Test a formatter with I/O streams on a particular POD snippet.  This does
 # all the work of loading the snippet, creating the formatter, running it, and
 # checking the results, and reports those results with Test::More.  It's
@@ -304,17 +326,25 @@ sub test_snippet {
 # $snippet     - Path to the snippet file defining the test
 # $options_ref - Hash of options with the following keys:
 #   encoding    - Expect the snippet to be in this non-standard encoding
-#   perlio_utf8 - Set to 1 to set a PerlIO UTF-8 encoding on the output file
+#   perlio_utf8 - Set to 1 to set PerlIO UTF-8 encoding on the output file
+#   perlio_iso  - Set to 1 to set PerlIO ISO 8859-1 encoding on the output file
+#   output      - Expect the output to be in this non-standard encoding
 sub test_snippet_with_io {
     my ($class, $snippet, $options_ref) = @_;
+    $options_ref //= {};
     my $data_ref = read_snippet($snippet);
 
     # Determine the encoding to expect for the output portion of the snippet.
-    my $encoding;
-    if (defined($options_ref)) {
-        $encoding = $options_ref->{encoding};
+    my $encoding = $options_ref->{encoding} // 'UTF-8';
+
+    # Determine the encoding to expect for the actual output.
+    my $outencoding = $options_ref->{output} // 'UTF-8';
+
+    # Additional test output based on whether we're using PerlIO.
+    my $perlio = q{};
+    if ($options_ref->{perlio_utf8} || $options_ref->{perlio_iso}) {
+        $perlio = ' (PerlIO)';
     }
-    $encoding ||= 'UTF-8';
 
     # Create the formatter object.
     my $parser = $class->new(%{ $data_ref->{options} }, name => 'TEST');
@@ -342,28 +372,29 @@ sub test_snippet_with_io {
         ## no critic (ValuesAndExpressions::RequireInterpolationOfMetachars)
         eval 'binmode($output, ":encoding(utf-8)")';
         ## use critic
+    } elsif ($options_ref->{perlio_iso}) {
+        ## no critic (BuiltinFunctions::ProhibitStringyEval)
+        ## no critic (ValuesAndExpressions::RequireInterpolationOfMetachars)
+        eval 'binmode($output, ":encoding(iso-8859-1)")';
+        ## use critic
     }
 
     # Parse the input file into the output file.
     $parser->parse_from_file($input_file, $output);
     close($output) or BAIL_OUT("cannot flush output to $output_file: $!");
 
-    # Read back in the results.  For Pod::Man, also ensure that we didn't
-    # output the accent definitions if we wrote UTF-8 output.
+    # Read back in the results.  For Pod::Man, also check the coding line, and
+    # ensure that we didn't output the accent definitions if we wrote UTF-8
+    # output.
     open(my $results, '<', $output_file)
       or BAIL_OUT("cannot open $output_file: $!");
-    my ($line, $saw_accents);
+    my $saw_accents;
     if ($class eq 'Pod::Man') {
-        while (defined($line = <$results>)) {
-            $line = decode('UTF-8', $line);
-            if ($line =~ m{ Accent [ ] mark [ ] definitions }xms) {
-                $saw_accents = 1;
-            }
-            last if $line =~ m{ \A [.]nh }xms;
-        }
+        my $name = $data_ref->{name};
+        $saw_accents = _check_man_preamble($name, $results, $outencoding);
     }
     my $saw = do { local $/ = undef; <$results> };
-    $saw = decode('UTF-8', $saw);
+    $saw = decode($outencoding, $saw);
     $saw =~ s{ \n\s+ \z }{\n}xms;
     close($results) or BAIL_OUT("cannot close output file: $!");
 
@@ -371,18 +402,17 @@ sub test_snippet_with_io {
     unlink($input_file, $output_file);
 
     # Check the accent definitions and the output.
-    my $perlio = $options_ref->{perlio_utf8} ? ' (PerlIO)' : q{};
     if ($class eq 'Pod::Man') {
         is(
             $saw_accents,
-            $data_ref->{options}{utf8} ? undef : 1,
-            "$data_ref->{name}: accent definitions$perlio"
+            ($data_ref->{options}{encoding} || q{}) eq 'roff' ? 1 : undef,
+            "$data_ref->{name}: accent definitions$perlio",
         );
     }
     is(
         $saw,
         decode($encoding, $data_ref->{output}),
-        "$data_ref->{name}: output$perlio"
+        "$data_ref->{name}: output$perlio",
     );
     return;
 }
@@ -513,11 +543,34 @@ the output portion of the snippet.
 
 The same as test_snippet(), except, rather than parsing the input into a
 string buffer, this function uses real, temporary input and output files.
-This can be used to test I/O layer handling and proper encoding.
+This can be used to test I/O layer handling and proper encoding.  It also
+does additional tests for the preamble to the *roff output.
+
+OPTIONS, if present, is a reference to a hash of options chosen from the
+following:
+
+=over 4
+
+=item encoding
 
-OPTIONS, if present, is a reference to a hash of options.  Currently, only one
-key is supported: C<perlio_utf8>, which, if set to true, will set a PerlIO
-UTF-8 encoding layer on the output file before writing to it.
+The encoding to expect from the snippet file.  Default if not specified is
+UTF-8.
+
+=item output
+
+The encoding to expect from the output.  Default if not specified is UTF-8.
+
+=item perlio_iso
+
+If set to true, set a PerlIO ISO-8859-1 encoding layer on the output file
+before writing to it.
+
+=item perlio_utf8
+
+If set to true, set a PerlIO UTF-8 encoding layer on the output file before
+writing to it.
+
+=back
 
 =back
 
@@ -527,7 +580,7 @@ Russ Allbery <rra@cpan.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2015-2016, 2018-2020 Russ Allbery <rra@cpan.org>
+Copyright 2015-2016, 2018-2020, 2022 Russ Allbery <rra@cpan.org>
 
 This program is free software; you may redistribute it and/or modify it
 under the same terms as Perl itself.
Index: gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA.pm,v
diff -u -p -a -u -p -r1.4 RRA.pm
--- gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA.pm	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA.pm	21 Feb 2024 15:47:00 -0000
@@ -10,7 +10,7 @@
 
 package Test::RRA;
 
-use 5.008;
+use 5.010;
 use base qw(Exporter);
 use strict;
 use warnings;
@@ -46,13 +46,13 @@ our (@EXPORT_OK, $VERSION);
 # consistency is good).
 BEGIN {
     @EXPORT_OK = qw(
-      is_file_contents skip_unless_author skip_unless_automated use_prereq
+        is_file_contents skip_unless_author skip_unless_automated use_prereq
     );
 
     # This version should match the corresponding rra-c-util release, but with
     # two digits for the minor version, including a leading zero if necessary,
     # so that it will sort properly.
-    $VERSION = '8.01';
+    $VERSION = '10.03';
 }
 
 # Compare a string to the contents of a file, similar to the standard is()
@@ -83,11 +83,11 @@ sub is_file_contents {
     eval {
         require IPC::System::Simple;
 
-        my $tmp     = File::Temp->new();
+        my $tmp = File::Temp->new();
         my $tmpname = $tmp->filename;
         print {$tmp} $got or BAIL_OUT("Cannot write to $tmpname: $!\n");
         my @command = ('diff', '-u', $expected, $tmpname);
-        my $diff    = IPC::System::Simple::capturex([0 .. 1], @command);
+        my $diff = IPC::System::Simple::capturex([0 .. 1], @command);
         diag($diff);
     };
     if ($@) {
@@ -165,15 +165,15 @@ sub use_prereq {
     ## no critic (ValuesAndExpressions::ProhibitImplicitNewlines)
     my ($result, $error, $sigdie);
     {
-        local $@            = undef;
-        local $!            = undef;
+        local $@ = undef;
+        local $! = undef;
         local $SIG{__DIE__} = undef;
         $result = eval qq{
             package $package;
             use $module $version \@imports;
             1;
         };
-        $error  = $@;
+        $error = $@;
         $sigdie = $SIG{__DIE__} || undef;
     }
 
@@ -196,7 +196,7 @@ __END__
 
 =for stopwords
 Allbery Allbery's DESC bareword sublicense MERCHANTABILITY NONINFRINGEMENT
-rra-c-util CPAN
+rra-c-util CPAN diff
 
 =head1 NAME
 
@@ -238,6 +238,14 @@ should be explicitly imported.
 
 =over 4
 
+=item is_file_contents(GOT, EXPECTED, MESSAGE)
+
+Check a string against the contents of a file, showing the differences if any
+using diff (if IPC::System::Simple and diff are available).  GOT is the output
+the test received.  EXPECTED is the path to a file containing the expected
+output (not the output itself).  MESSAGE is a message to display alongside the
+test results.
+
 =item skip_unless_author(DESC)
 
 Checks whether AUTHOR_TESTING is set in the environment and skips the whole
@@ -275,7 +283,7 @@ Russ Allbery <eagle@eyrie.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2016, 2018-2019 Russ Allbery <eagle@eyrie.org>
+Copyright 2016, 2018-2019, 2021 Russ Allbery <eagle@eyrie.org>
 
 Copyright 2013-2014 The Board of Trustees of the Leland Stanford Junior
 University
Index: gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/Config.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/Config.pm,v
diff -u -p -a -u -p -r1.4 Config.pm
--- gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/Config.pm	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/Config.pm	21 Feb 2024 15:47:00 -0000
@@ -9,7 +9,7 @@
 
 package Test::RRA::Config;
 
-use 5.008;
+use 5.010;
 use base qw(Exporter);
 use strict;
 use warnings;
@@ -24,15 +24,15 @@ our (@EXPORT_OK, $VERSION);
 # consistency is good).
 BEGIN {
     @EXPORT_OK = qw(
-      $COVERAGE_LEVEL @COVERAGE_SKIP_TESTS @CRITIC_IGNORE $LIBRARY_PATH
-      $MINIMUM_VERSION %MINIMUM_VERSION @MODULE_VERSION_IGNORE
-      @POD_COVERAGE_EXCLUDE @STRICT_IGNORE @STRICT_PREREQ
+        $COVERAGE_LEVEL @COVERAGE_SKIP_TESTS @CRITIC_IGNORE $LIBRARY_PATH
+        $MINIMUM_VERSION %MINIMUM_VERSION @MODULE_VERSION_IGNORE
+        @POD_COVERAGE_EXCLUDE @STRICT_IGNORE @STRICT_PREREQ
     );
 
     # This version should match the corresponding rra-c-util release, but with
     # two digits for the minor version, including a leading zero if necessary,
     # so that it will sort properly.
-    $VERSION = '8.01';
+    $VERSION = '10.03';
 }
 
 # If C_TAP_BUILD or C_TAP_SOURCE are set in the environment, look for
@@ -58,7 +58,7 @@ our $COVERAGE_LEVEL = 100;
 our @COVERAGE_SKIP_TESTS;
 our @CRITIC_IGNORE;
 our $LIBRARY_PATH;
-our $MINIMUM_VERSION = '5.008';
+our $MINIMUM_VERSION = '5.010';
 our %MINIMUM_VERSION;
 our @MODULE_VERSION_IGNORE;
 our @POD_COVERAGE_EXCLUDE;
@@ -121,9 +121,9 @@ this setting.
 
 =item @CRITIC_IGNORE
 
-Additional directories to ignore when doing recursive perlcritic testing.  The
-contents of this directory must be either top-level directory names or
-directory names starting with F<tests/>.
+Additional files or directories to ignore when doing recursive perlcritic
+testing.  To ignore files that will be installed, the path should start with
+F<blib>.
 
 =item $LIBRARY_PATH
 
@@ -135,7 +135,7 @@ that Perl scripts can pass a syntax chec
 =item $MINIMUM_VERSION
 
 Default minimum version requirement for included Perl scripts.  If not given,
-defaults to 5.008.
+defaults to 5.010.
 
 =item %MINIMUM_VERSION
 
@@ -183,7 +183,7 @@ Russ Allbery <eagle@eyrie.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2015-2016, 2019 Russ Allbery <eagle@eyrie.org>
+Copyright 2015-2016, 2019, 2021 Russ Allbery <eagle@eyrie.org>
 
 Copyright 2013-2014 The Board of Trustees of the Leland Stanford Junior
 University
Index: gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm,v
diff -u -p -a -u -p -r1.4 ModuleVersion.pm
--- gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm	21 Feb 2024 15:47:00 -0000
@@ -8,7 +8,7 @@
 
 package Test::RRA::ModuleVersion;
 
-use 5.008;
+use 5.010;
 use base qw(Exporter);
 use strict;
 use warnings;
@@ -29,7 +29,7 @@ BEGIN {
     # This version should match the corresponding rra-c-util release, but with
     # two digits for the minor version, including a leading zero if necessary,
     # so that it will sort properly.
-    $VERSION = '8.01';
+    $VERSION = '10.03';
 }
 
 # A regular expression matching the version string for a module using the
@@ -103,9 +103,7 @@ sub _module_version {
     my ($file) = @_;
     open(my $data, q{<}, $file) or die "$0: cannot open $file: $!\n";
     while (defined(my $line = <$data>)) {
-        if (   $line =~ $REGEX_VERSION_PACKAGE
-            || $line =~ $REGEX_VERSION_OLD)
-        {
+        if ($line =~ $REGEX_VERSION_PACKAGE || $line =~ $REGEX_VERSION_OLD) {
             my ($prefix, $version, $suffix) = ($1, $2, $3);
             close($data) or die "$0: error reading from $file: $!\n";
             return $version;
@@ -135,13 +133,13 @@ sub _update_module_version {
     }
 
     # Scan for the version and replace it.
-    open(my $in,  q{<}, $file) or die "$0: cannot open $file: $!\n";
+    open(my $in, q{<}, $file) or die "$0: cannot open $file: $!\n";
     open(my $out, q{>}, "$file.new")
       or die "$0: cannot create $file.new: $!\n";
   SCAN:
     while (defined(my $line = <$in>)) {
-        if (   $line =~ s{ $REGEX_VERSION_PACKAGE }{$1$version$3}xms
-            || $line =~ s{ $REGEX_VERSION_OLD     }{$1$old_version$3}xms)
+        if ($line =~ s{ $REGEX_VERSION_PACKAGE }{$1$version$3}xms
+            || $line =~ s{ $REGEX_VERSION_OLD }{$1$old_version$3}xms)
         {
             print {$out} $line or die "$0: cannot write to $file.new: $!\n";
             last SCAN;
@@ -151,8 +149,8 @@ sub _update_module_version {
 
     # Copy the rest of the input file to the output file.
     print {$out} <$in> or die "$0: cannot write to $file.new: $!\n";
-    close($out)        or die "$0: cannot flush $file.new: $!\n";
-    close($in)         or die "$0: error reading from $file: $!\n";
+    close($out) or die "$0: cannot flush $file.new: $!\n";
+    close($in) or die "$0: error reading from $file: $!\n";
 
     # All done.  Rename the new file over top of the old file.
     rename("$file.new", $file)
@@ -265,7 +263,7 @@ Russ Allbery <eagle@eyrie.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2016, 2018-2019 Russ Allbery <eagle@eyrie.org>
+Copyright 2016, 2018-2020, 2022 Russ Allbery <eagle@eyrie.org>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
Index: gnu/usr.bin/perl/cpan/podlators/t/man/devise-date.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/devise-date.t,v
diff -u -p -a -u -p -r1.3 devise-date.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/devise-date.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/man/devise-date.t	21 Feb 2024 15:47:00 -0000
@@ -5,7 +5,7 @@
 # that it's identical.  It also tests special handling of the POD_MAN_DATE
 # and SOURCE_DATE_EPOCH environment variables.
 #
-# Copyright 2009, 2014-2015, 2018-2019 Russ Allbery <rra@cpan.org>
+# Copyright 2009, 2014-2015, 2018-2019, 2022 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -22,8 +22,8 @@ use POSIX qw(strftime);
 use Test::More tests => 6;
 
 # Start with environment variables affecting the date stripped.
-local $ENV{SOURCE_DATE_EPOCH};
-local $ENV{POD_MAN_DATE};
+local $ENV{SOURCE_DATE_EPOCH} = undef;
+local $ENV{POD_MAN_DATE} = undef;
 
 # Check that the results of device_date matches strftime.  There is no input
 # file name, so this will use the current time.
@@ -31,7 +31,7 @@ my $parser = Pod::Man->new;
 is(
     $parser->devise_date,
     strftime('%Y-%m-%d', gmtime()),
-    'devise_date matches strftime'
+    'devise_date matches strftime',
 );
 
 # Set the override environment variable and ensure that it's honored.
@@ -43,21 +43,23 @@ local $ENV{POD_MAN_DATE} = q{};
 is($parser->devise_date, q{}, 'devise_date honors empty POD_MAN_DATE');
 
 # Set another environment variable and ensure that it's honored.
-local $ENV{POD_MAN_DATE};
+local $ENV{POD_MAN_DATE} = undef;
 local $ENV{SOURCE_DATE_EPOCH} = 1439390140;
 is($parser->devise_date, '2015-08-12', 'devise_date honors SOURCE_DATE_EPOCH');
 
 # Check that POD_MAN_DATE overrides SOURCE_DATE_EPOCH
-local $ENV{POD_MAN_DATE}      = '2013-01-01';
+local $ENV{POD_MAN_DATE} = '2013-01-01';
 local $ENV{SOURCE_DATE_EPOCH} = 1482676620;
-is($parser->devise_date, '2013-01-01',
-   'devise_date honors POD_MAN_DATE over SOURCE_DATE_EPOCH');
+is(
+    $parser->devise_date, '2013-01-01',
+    'devise_date honors POD_MAN_DATE over SOURCE_DATE_EPOCH',
+);
 
 # Check that an invalid SOURCE_DATE_EPOCH is not accepted
-local $ENV{POD_MAN_DATE};
+local $ENV{POD_MAN_DATE} = undef;
 local $ENV{SOURCE_DATE_EPOCH} = '1482676620B';
 is(
     $parser->devise_date,
     strftime('%Y-%m-%d', gmtime()),
-    'devise_date ignores invalid SOURCE_DATE_EPOCH'
+    'devise_date ignores invalid SOURCE_DATE_EPOCH',
 );
Index: gnu/usr.bin/perl/cpan/podlators/t/man/empty.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/empty.t,v
diff -u -p -a -u -p -r1.5 empty.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/empty.t	15 Feb 2023 01:36:26 -0000	1.5
+++ gnu/usr.bin/perl/cpan/podlators/t/man/empty.t	21 Feb 2024 15:47:00 -0000
@@ -2,14 +2,14 @@
 #
 # Test Pod::Man with a document that produces only errors.
 #
-# Copyright 2013, 2016, 2018-2019 Russ Allbery <rra@cpan.org>
+# Copyright 2013, 2016, 2018-2019, 2022 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
 #
 # SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -31,12 +31,12 @@ local $SIG{__WARN__} = sub { croak($_[0]
 
 # Try a POD document where the only command is invalid.  Make sure it succeeds
 # and doesn't throw an exception.
-## no critic (ValuesAndExpressions::ProhibitEscapedCharacters)
-my $invalid_char = chr utf8::unicode_to_native(0xa0);
-ok(eval { $parser->parse_string_document("=$invalid_char") },
-    'Parsed invalid document');
+my $invalid_char = chr(utf8::unicode_to_native(0xa0));
+ok(
+    eval { $parser->parse_string_document("=$invalid_char") },
+    'Parsed invalid document',
+);
 is($@, q{}, '...with no errors');
-## use critic
 
 # With recent Pod::Simple, there will be a POD ERRORS section.  With older
 # versions of Pod::Simple, we have to skip the test since it doesn't trigger
@@ -48,7 +48,7 @@ SKIP: {
     like(
         $output,
         qr{ [.]SH [ ] "POD [ ] ERRORS" }xms,
-        '...and output contains a POD ERRORS section'
+        '...and output contains a POD ERRORS section',
     );
 }
 
@@ -64,6 +64,6 @@ SKIP: {
     like(
         $output,
         qr{ [.]SH [ ] "POD [ ] ERRORS" }xms,
-        '...and output contains a POD ERRORS section'
+        '...and output contains a POD ERRORS section',
     );
 }
Index: gnu/usr.bin/perl/cpan/podlators/t/man/encoding.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/man/encoding.t
diff -N gnu/usr.bin/perl/cpan/podlators/t/man/encoding.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/man/encoding.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+#
+# Encoding tests for Pod::Man.
+#
+# This test uses a single test file with UTF-8 characters and escapes and
+# processes it with different encoding configurations for Pod::Man, comparing
+# it with pre-generated and hand-checked output files.
+#
+# The primary purpose of these test files is for portability testing on
+# different operating systems, but this test ensures that they remain accurate
+# for any changes to Pod::Man.  It doubles as a test that the preamble is
+# emitted correctly.
+#
+# Copyright 2022 Russ Allbery <rra@cpan.org>
+#
+# This program is free software; you may redistribute it and/or modify it
+# under the same terms as Perl itself.
+#
+# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
+
+use 5.008;
+use strict;
+use warnings;
+
+use lib 't/lib';
+
+use File::Spec;
+use Test::More tests => 4;
+use Test::Podlators qw(slurp);
+
+BEGIN {
+    use_ok('Pod::Man');
+}
+
+# Force the timestamp on the input file since it will otherwise depend on the
+# checkout.
+local $ENV{SOURCE_DATE_EPOCH} = 1664146047;
+
+# Get the path to the input and output files.
+my $input = File::Spec->catfile('t', 'data', 'man', 'encoding.pod');
+#<<<
+my %output = (
+    groff => File::Spec->catfile('t', 'data', 'man', 'encoding.groff'),
+    roff  => File::Spec->catfile('t', 'data', 'man', 'encoding.roff'),
+    utf8  => File::Spec->catfile('t', 'data', 'man', 'encoding.utf8'),
+);
+#>>>
+
+# For each encoding, load the input, generate the output, and check that the
+# output matches.
+for my $encoding (sort(keys(%output))) {
+    my $parser = Pod::Man->new(
+        encoding => $encoding,
+        center => 'podlators',
+        release => 'testing',
+    );
+    my $got;
+    $parser->output_string(\$got);
+    $parser->parse_file($input);
+
+    # Strip off the version line.
+    $got =~ s{ ^ [^\n]+ Automatically [ ] generated [ ] by [^\n]+ \n }{}xms;
+
+    # Check the output.  If it doesn't match, save the erroneous output in a
+    # file for later inspection.
+    my $expected = slurp($output{$encoding});
+    if (!ok($got eq $expected, "encoding.pod output with $encoding")) {
+        my $tmpdir = File::Spec->catdir('t', 'tmp');
+        if (!-d $tmpdir) {
+            mkdir($tmpdir, 0777);
+        }
+        my $outfile = File::Spec->catfile('t', 'tmp', "encoding$$.$encoding");
+        open(my $output, '>', $outfile)
+          or BAIL_OUT("cannot create $outfile for failed output: $!");
+        print {$output} $got
+          or BAIL_OUT("cannot write failed output to $outfile: $!");
+        close($output)
+          or BAIL_OUT("cannot write failed output to $outfile: $!");
+        diag("Non-matching output left in $outfile");
+    }
+}
Index: gnu/usr.bin/perl/cpan/podlators/t/man/heading.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/heading.t,v
diff -u -p -a -u -p -r1.3 heading.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/heading.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/man/heading.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Additional tests for Pod::Man heading generation.
 #
-# Copyright 2002, 2004, 2006, 2008-2009, 2012, 2015, 2018-2019
+# Copyright 2002, 2004, 2006, 2008-2009, 2012, 2015, 2018-2019, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -16,7 +16,7 @@ use warnings;
 
 use lib 't/lib';
 
-use Test::More tests => 9;
+use Test::More tests => 11;
 use Test::Podlators qw(read_test_data);
 
 BEGIN {
@@ -25,6 +25,7 @@ BEGIN {
 
 # Loop through all the test data, generate output, and compare it to the
 # desired output data.
+my $testnum = 1;
 while (defined(my $data = read_test_data(\*DATA, { options => 1 }))) {
     my $parser = Pod::Man->new(%{ $data->{options} });
     isa_ok($parser, 'Pod::Man', 'Parser object');
@@ -38,7 +39,8 @@ while (defined(my $data = read_test_data
     my ($heading) = ($got =~ m{^ ([.]TH [^\n]+ \n)}xms);
 
     # Compare the results.
-    is($heading, $data->{output});
+    is($heading, $data->{output}, "Test $testnum");
+    $testnum++;
 }
 
 # Below the marker are sets of options, the input data, and the corresponding
@@ -55,7 +57,7 @@ release 1.0
 
 test - Test man page
 ###
-.TH STDIN 1 "2009-01-17" "1.0" "User Contributed Perl Documentation"
+.TH STDIN 1 2009-01-17 1.0 "User Contributed Perl Documentation"
 ###
 
 ###
@@ -68,7 +70,7 @@ release 2.0-beta
 
 test - Test man page
 ###
-.TH TEST 8 "2009-01-17" "2.0-beta" "User Contributed Perl Documentation"
+.TH TEST 8 2009-01-17 2.0-beta "User Contributed Perl Documentation"
 ###
 
 ###
@@ -80,7 +82,7 @@ center Testing Documentation
 
 test - Test man page
 ###
-.TH STDIN 1 "2009-01-17" "1.0" "Testing Documentation"
+.TH STDIN 1 2009-01-17 1.0 "Testing Documentation"
 ###
 
 ###
@@ -93,4 +95,18 @@ center
 test - Test man page
 ###
 .TH STDIN 1 "" "" ""
+###
+
+###
+date foo ""bar""
+release "quoted"
+section 4"
+name "BAR
+center Something
+###
+=head1 NAME
+
+test - Test man page
+###
+.TH """BAR" "4""" "foo """"bar""""" """quoted""" Something
 ###
Index: gnu/usr.bin/perl/cpan/podlators/t/man/iso-8859-1.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/iso-8859-1.t,v
diff -u -p -a -u -p -r1.1.1.2 iso-8859-1.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/iso-8859-1.t	1 Mar 2021 23:15:34 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/podlators/t/man/iso-8859-1.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Man ISO-8859-1 handling
 #
-# Copyright 2016, 2019 Russ Allbery <rra@cpan.org>
+# Copyright 2016, 2019, 2022 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -15,13 +15,41 @@ use warnings;
 
 use lib 't/lib';
 
-use Test::More tests => 3;
-use Test::Podlators qw(test_snippet);
+use Test::More tests => 19;
+use Test::Podlators qw(test_snippet test_snippet_with_io);
 
 # Load the module.
 BEGIN {
     use_ok('Pod::Man');
 }
 
-# Test the snippet with the proper encoding.
-test_snippet('Pod::Man', 'man/iso-8859-1');
+# Test the snippet with the old-school roff encoding.  Use _with_io to check
+# that we correctly add the accents preamble.
+test_snippet_with_io('Pod::Man', 'man/iso-8859-1-roff', { output => 'ascii' });
+
+# Test error handling when there are characters that cannot be represented in
+# the output character set.
+test_snippet('Pod::Man', 'man/iso-8859-1-error-die');
+test_snippet('Pod::Man', 'man/iso-8859-1-error-pod');
+
+# Force ISO 8859-1 on all relevant file handles.  Hide this in a string eval
+# so that older versions of Perl don't croak and minimum-version tests still
+# pass.
+#
+## no critic (BuiltinFunctions::ProhibitStringyEval)
+## no critic (ValuesAndExpressions::RequireInterpolationOfMetachars)
+eval 'binmode(\*STDOUT, ":encoding(iso-8859-1)")';
+my $builder = Test::More->builder;
+eval 'binmode($builder->output, ":encoding(iso-8859-1)")';
+eval 'binmode($builder->failure_output, ":encoding(iso-8859-1)")';
+## use critic
+
+# Test the snippet with ISO 8859-1 output, with and without PerlIO layers.
+test_snippet_with_io(
+    'Pod::Man', 'man/iso-8859-1',
+    { encoding => 'iso-8859-1', output => 'iso-latin-1' },
+);
+test_snippet_with_io(
+    'Pod::Man', 'man/iso-8859-1',
+    { encoding => 'iso-8859-1', perlio_iso => 1, output => 'iso-latin-1' },
+);
Index: gnu/usr.bin/perl/cpan/podlators/t/man/no-encode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/no-encode.t,v
diff -u -p -a -u -p -r1.4 no-encode.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/no-encode.t	15 Feb 2023 01:36:26 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/man/no-encode.t	21 Feb 2024 15:47:00 -0000
@@ -1,20 +1,22 @@
 #!/usr/bin/perl
 #
-# Test for graceful degradation to non-utf8 output without Encode module.
+# Test for graceful degradation to non-UTF-8 output without Encode module.
 #
 # Copyright 2016 Niko Tyni <ntyni@iki.fi>
-# Copyright 2016, 2018-2019 Russ Allbery <rra@cpan.org>
+# Copyright 2016, 2018-2019, 2022 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
 #
 # SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
-use Test::More tests => 5;
+use Carp qw(croak);
+
+use Test::More tests => 8;
 
 # Remove the record of the Encode module being loaded if it already was (it
 # may have been loaded before the test suite runs), and then make it
@@ -24,7 +26,7 @@ BEGIN {
     delete $INC{'Encode.pm'};
     my $reject_encode = sub {
         if ($_[1] eq 'Encode.pm') {
-            die "refusing to load Encode\n";
+            croak('refusing to load Encode');
         }
     };
     unshift(@INC, $reject_encode);
@@ -38,41 +40,70 @@ BEGIN {
 
 # Ensure we don't get warnings by throwing an exception if we see any.  This
 # is overridden below when we enable utf8 and do expect a warning.
-local $SIG{__WARN__} = sub { die join("\n",
-                                      "No warnings expected; instead got:",
-                                      @_);
-                           };
-# First, check that everything works properly when utf8 isn't set.  We expect
-# to get accent-mangled ASCII output.  Don't use Test::Podlators, since it
-# wants to import Encode.
-#
-## no critic (ValuesAndExpressions::ProhibitEscapedCharacters)
-my $pod = "=encoding latin1\n\n=head1 NAME\n\nBeyonc"
-        . chr(utf8::unicode_to_native(0xE9))
-        . "!";
-my $parser = Pod::Man->new(utf8 => 0, name => 'test');
+local $SIG{__WARN__} = sub {
+    my @warnings = @_;
+    croak(join("\n", 'No warnings expected; instead got:', @warnings));
+};
+
+# First, check that everything works properly if an encoding of roff is set.
+# We expect to get accent-mangled ASCII output.  Don't use Test::Podlators,
+# since it wants to import Encode.
+my $invalid_char = chr(utf8::unicode_to_native(0xE9));
+my $pod = "=encoding latin1\n\n=head1 NAME\n\nBeyonc${invalid_char}!";
+my $parser = Pod::Man->new(name => 'test', encoding => 'roff');
 my $output;
 $parser->output_string(\$output);
 $parser->parse_string_document($pod);
 like(
     $output,
     qr{ Beyonce\\[*]\' }xms,
-    'Works without Encode for non-utf8 output'
+    'Works without Encode for roff encoding',
 );
 
-# Now, try with the utf8 option set.  We should then get a warning that we're
-# falling back to non-utf8 output.
+# Likewise for an encoding of groff.
+$parser = Pod::Man->new(name => 'test', encoding => 'groff');
+my $output_groff = q{};
+$parser->output_string(\$output_groff);
+$parser->parse_string_document($pod);
+like(
+    $output_groff,
+    qr{ Beyonc\\\[u00E9\] }xms,
+    'Works without Encode for groff encoding',
+);
+
+# The default output format is UTF-8, so it should produce an error message
+# and then degrade to groff.
+{
+    local $SIG{__WARN__} = sub {
+        like(
+            $_[0],
+            qr{ falling [ ] back [ ] to [ ] groff [ ] escapes }xms,
+            'Pod::Man warns with no Encode module',
+        );
+    };
+    $parser = Pod::Man->new(name => 'test');
+}
+$output = q{};
+$parser->output_string(\$output);
+$parser->parse_string_document($pod);
+is($output, $output_groff, 'Degraded gracefull to groff output');
+
+# Now try with an explicit output encoding, which should produce an error
+# message and then degrade to groff.
 {
     local $SIG{__WARN__} = sub {
         like(
             $_[0],
-            qr{ falling [ ] back [ ] to [ ] non-utf8 }xms,
-            'Pod::Man warns on utf8 option with no Encode module'
+            qr{ falling [ ] back [ ] to [ ] groff [ ] escapes }xms,
+            'Pod::Man warns with no Encode module',
         );
     };
-    $parser = Pod::Man->new(utf8 => 1, name => 'test');
+    $parser = Pod::Man->new(name => 'test', encoding => 'iso-8859-1');
 }
-my $output_fallback;
-$parser->output_string(\$output_fallback);
+$output = q{};
+$parser->output_string(\$output);
 $parser->parse_string_document($pod);
-is($output_fallback, $output, 'Degraded gracefully to non-utf8 output');
+is(
+    $output, $output_groff,
+    'Explicit degraded gracefully to groff output',
+);
Index: gnu/usr.bin/perl/cpan/podlators/t/man/snippets.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/snippets.t,v
diff -u -p -a -u -p -r1.1.1.3 snippets.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/snippets.t	1 Mar 2021 23:15:34 -0000	1.1.1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/man/snippets.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Man behavior with various snippets.
 #
-# Copyright 2002, 2004, 2006, 2008-2009, 2012-2013, 2015-2016, 2018-2019
+# Copyright 2002, 2004, 2006, 2008-2009, 2012-2013, 2015-2016, 2018-2020, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -16,7 +16,7 @@ use warnings;
 
 use lib 't/lib';
 
-use Test::More tests => 93;
+use Test::More tests => 113;
 use Test::Podlators qw(test_snippet);
 
 # Load the module.
@@ -26,15 +26,17 @@ BEGIN {
 
 # List of snippets run by this test.
 my @snippets = qw(
-  agrave backslash-man-ref bullet-after-nonbullet bullets c-in-header
-  c-in-name dollar-magic error-die error-none error-normal
-  error-pod error-stderr error-stderr-opt eth fixed-font fixed-font-in-item
-  for-blocks hyphen-in-s item-fonts link-quoting link-to-url long-quote
-  lquote-and-quote lquote-rquote markup-in-name multiline-x name-guesswork
-  nested-lists newlines-in-c non-ascii not-bullet not-numbers nourls
-  paired-quotes periods quote-escaping rquote-none small-caps-magic
-  soft-hyphens trailing-space true-false uppercase-license x-whitespace
-  x-whitespace-entry
+    agrave backslash-man-ref bullet-after-nonbullet bullets c-in-header
+    c-in-name dollar-magic error-die error-none error-normal error-pod
+    error-stderr error-stderr-opt eth fixed-font fixed-font-in-item for-blocks
+    guesswork guesswork-all guesswork-no-quoting guesswork-none
+    guesswork-partial guesswork-quoting hyphen-in-s item-fonts language
+    link-quoting link-to-url long-quote lquote-and-quote lquote-rquote
+    markup-in-name multiline-x naive naive-groff name-guesswork name-quotes
+    name-quotes-none nested-lists newlines-in-c non-ascii nonbreaking-space-l
+    not-bullet not-numbers nourls periods quote-escaping rquote-none
+    soft-hyphens trailing-space true-false x-whitespace x-whitespace-entry
+    zero-width-space
 );
 
 # Run all the tests.
Index: gnu/usr.bin/perl/cpan/podlators/t/man/utf8-io.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/man/utf8-io.t,v
diff -u -p -a -u -p -r1.3 utf8-io.t
--- gnu/usr.bin/perl/cpan/podlators/t/man/utf8-io.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/man/utf8-io.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Man UTF-8 handling, with and without PerlIO.
 #
-# Copyright 2002, 2004, 2006, 2008-2010, 2012, 2014-2015, 2018-2020
+# Copyright 2002, 2004, 2006, 2008-2010, 2012, 2014-2015, 2018-2020, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -16,7 +16,7 @@ use warnings;
 
 use lib 't/lib';
 
-use Test::More tests => 13;
+use Test::More tests => 17;
 use Test::Podlators qw(test_snippet_with_io);
 
 # Load the module.
Index: gnu/usr.bin/perl/cpan/podlators/t/parselink/basic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/parselink/basic.t,v
diff -u -p -a -u -p -r1.3 basic.t
--- gnu/usr.bin/perl/cpan/podlators/t/parselink/basic.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/parselink/basic.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Tests for Pod::ParseLink.
 #
-# Copyright 2001, 2009, 2018, 2020 by Russ Allbery <rra@cpan.org>
+# Copyright 2001, 2009, 2018, 2020, 2022 by Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -21,6 +21,7 @@ BEGIN {
 
 # The format of each entry in this array is the L<> text followed by the
 # five-element parse returned by parselink.
+#<<<
 our @TESTS = (
     ['foo'           => (undef, 'foo',              'foo', undef,     'pod')],
     ['foo|bar'       => ('foo', 'foo',              'bar', undef,     'pod')],
@@ -28,18 +29,18 @@ our @TESTS = (
     ['foo/"baz boo"' => (undef, '"baz boo" in foo', 'foo', 'baz boo', 'pod')],
     ['/bar'          => (undef, '"bar"',            undef, 'bar',     'pod')],
     ['/"baz boo"'    => (undef, '"baz boo"',        undef, 'baz boo', 'pod')],
-    ['/baz boo',     => (undef, '"baz boo"',        undef, 'baz boo', 'pod')],
+    ['/baz boo'      => (undef, '"baz boo"',        undef, 'baz boo', 'pod')],
     [
         'foo bar/baz boo' =>
-          (undef, '"baz boo" in foo bar', 'foo bar', 'baz boo', 'pod')
+          (undef, '"baz boo" in foo bar', 'foo bar', 'baz boo', 'pod'),
     ],
     [
         'foo bar  /  baz boo' =>
-          (undef, '"baz boo" in foo bar', 'foo bar', 'baz boo', 'pod')
+          (undef, '"baz boo" in foo bar', 'foo bar', 'baz boo', 'pod'),
     ],
     [
         "foo\nbar\nbaz\n/\nboo" =>
-          (undef, '"boo" in foo bar baz', 'foo bar baz', 'boo', 'pod')
+          (undef, '"boo" in foo bar baz', 'foo bar baz', 'boo', 'pod'),
     ],
     ['anchor|name/section' => qw(anchor anchor name section pod)],
     ['"boo var baz"' => (undef, '"boo var baz"', undef, 'boo var baz', 'pod')],
@@ -49,16 +50,16 @@ our @TESTS = (
             undef, '"boo bar baz / baz boo"',
             undef, 'boo bar baz / baz boo',
             'pod',
-        )
+        ),
     ],
     ['fooZ<>bar' => (undef, 'fooZ<>bar', 'fooZ<>bar', undef, 'pod')],
     [
         'Testing I<italics>|foo/bar' =>
-          ('Testing I<italics>', 'Testing I<italics>', 'foo', 'bar', 'pod')
+          ('Testing I<italics>', 'Testing I<italics>', 'foo', 'bar', 'pod'),
     ],
     [
         'foo/I<Italic> text' =>
-          (undef, '"I<Italic> text" in foo', 'foo', 'I<Italic> text', 'pod')
+          (undef, '"I<Italic> text" in foo', 'foo', 'I<Italic> text', 'pod'),
     ],
     [
         'fooE<verbar>barZ<>/Section C<with> I<B<other> markup' => (
@@ -67,29 +68,29 @@ our @TESTS = (
             'fooE<verbar>barZ<>',
             'Section C<with> I<B<other> markup',
             'pod',
-        )
+        ),
     ],
     [
         'Nested L<http://www.perl.org/>|fooE<sol>bar' => (
             'Nested L<http://www.perl.org/>',
             'Nested L<http://www.perl.org/>',
             'fooE<sol>bar', undef, 'pod',
-        )
+        ),
     ],
     ['ls(1)' => (undef, 'ls(1)', 'ls(1)', undef, 'man')],
     [
         '  perlfunc(1)/open  ' =>
-          (undef, '"open" in perlfunc(1)', 'perlfunc(1)', 'open', 'man')
+          (undef, '"open" in perlfunc(1)', 'perlfunc(1)', 'open', 'man'),
     ],
     [
         'some manual page|perl(1)' =>
-          ('some manual page', 'some manual page', 'perl(1)', undef, 'man')
+          ('some manual page', 'some manual page', 'perl(1)', undef, 'man'),
     ],
     [
         'http://www.perl.org/' => (
             undef, 'http://www.perl.org/', 'http://www.perl.org/', undef,
             'url',
-        )
+        ),
     ],
     [
         'news:yld72axzc8.fsf@windlord.stanford.edu' => (
@@ -97,24 +98,25 @@ our @TESTS = (
             'news:yld72axzc8.fsf@windlord.stanford.edu',
             'news:yld72axzc8.fsf@windlord.stanford.edu',
             undef, 'url',
-        )
+        ),
     ],
     [
         'link|http://www.perl.org/' =>
-          ('link', 'link', 'http://www.perl.org/', undef, 'url')
+          ('link', 'link', 'http://www.perl.org/', undef, 'url'),
     ],
     [
         '0|http://www.perl.org/' =>
-          ('0', '0', 'http://www.perl.org/', undef, 'url')
+          ('0', '0', 'http://www.perl.org/', undef, 'url'),
     ],
     ['0|Pod::Parser' => ('0', '0', 'Pod::Parser', undef, 'pod')],
 );
+#>>>
 
 # Run all of the tests.
 for my $test (@TESTS) {
     my ($link, @expected) = @$test;
     my @results = parselink($link);
-    my $pretty  = $link;
+    my $pretty = $link;
     $pretty =~ s{\n}{\\n}xmsg;
     is_deeply(\@results, \@expected, $pretty);
 }
Index: gnu/usr.bin/perl/cpan/podlators/t/style/critic.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/style/critic.t
diff -N gnu/usr.bin/perl/cpan/podlators/t/style/critic.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/style/critic.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+#
+# Check for perlcritic errors in all code.
+#
+# If author tests are enabled, check all Perl code in blib/lib, examples, usr,
+# t, and Build.PL for problems uncovered by perlcritic, ignoring template
+# files, junk, and any files explicitly configured to be ignored.
+#
+# Written by Russ Allbery <eagle@eyrie.org>
+# Copyright 2019-2022 Russ Allbery <eagle@eyrie.org>
+# Copyright 2013-2014
+#     The Board of Trustees of the Leland Stanford Junior University
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+# SPDX-License-Identifier: MIT
+
+use 5.010;
+use strict;
+use warnings;
+
+use lib 't/lib';
+
+use Test::RRA qw(skip_unless_author use_prereq);
+use Test::RRA::Config qw(@CRITIC_IGNORE);
+
+use Test::More;
+
+# Skip tests unless we're running author tests since this test is too
+# sensitive to the exact version of Perl::Critic to be generally useful.
+skip_unless_author('Coding style tests');
+
+# Load prerequisite modules.
+use_prereq('Perl::Critic::Utils');
+use_prereq('Test::Perl::Critic');
+
+# Force the embedded Perl::Tidy check to use the correct configuration.
+local $ENV{PERLTIDY} = 't/data/perltidyrc';
+
+# Import the configuration file.
+Test::Perl::Critic->import(-profile => 't/data/perlcriticrc');
+
+# By default, Test::Perl::Critic only checks blib.  We also want to check t,
+# Build.PL, and examples.
+my @files = Perl::Critic::Utils::all_perl_files('blib');
+if (!@files) {
+    @files = Perl::Critic::Utils::all_perl_files('lib');
+}
+if (-e 'Build.PL') {
+    push(@files, 'Build.PL');
+}
+for my $dir (qw(examples usr t)) {
+    if (-d $dir) {
+        push(@files, Perl::Critic::Utils::all_perl_files($dir));
+    }
+}
+
+# Strip out Autoconf templates or left-over perltidy files.
+@files = grep { !m{ [.](?:in|tdy) }xms } @files;
+
+# Strip out ignored files.
+my %ignore = map { $_ => 1 } @CRITIC_IGNORE;
+@files = grep { !$ignore{$_} } @files;
+
+# Declare a plan now that we know what we're testing.
+plan tests => scalar @files;
+
+# Run the actual tests.
+for my $file (@files) {
+    critic_ok($file);
+}
Index: gnu/usr.bin/perl/cpan/podlators/t/style/kwalitee.t
===================================================================
RCS file: gnu/usr.bin/perl/cpan/podlators/t/style/kwalitee.t
diff -N gnu/usr.bin/perl/cpan/podlators/t/style/kwalitee.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/cpan/podlators/t/style/kwalitee.t	21 Feb 2024 15:47:00 -0000
@@ -0,0 +1,56 @@
+#!/usr/bin/perl
+#
+# Test Perl code using the Kwalitee metrics from CPANTS.
+#
+# The canonical version of this file is maintained in the rra-c-util package,
+# which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
+#
+# Written by Russ Allbery <eagle@eyrie.org>
+# Copyright 2022 Russ Allbery <eagle@eyrie.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+# SPDX-License-Identifier: MIT
+
+use 5.010;
+use strict;
+use warnings;
+
+use lib 't/lib';
+
+use Test::RRA qw(skip_unless_author use_prereq);
+
+use Test::More;
+
+# Skip tests unless we're running author tests.
+skip_unless_author('Distribution style tests');
+
+# Load prerequisite module.
+use_prereq('Test::Kwalitee', 'kwalitee_ok');
+
+# Do the testing.  Disable testing for use strict, since that's done as part
+# of a separate test.  Disable testing for META.yml if it's not present, since
+# it's generated as part of the distribution process but isn't normally
+# present in a development tree.
+my @options = qw(-use_strict);
+if (!-e 'META.yml') {
+    push(@options, '-has_meta_yml');
+}
+kwalitee_ok(@options);
+done_testing();
Index: gnu/usr.bin/perl/cpan/podlators/t/style/minimum-version.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/style/minimum-version.t,v
diff -u -p -a -u -p -r1.4 minimum-version.t
--- gnu/usr.bin/perl/cpan/podlators/t/style/minimum-version.t	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/style/minimum-version.t	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
 # Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2019, 2021 Russ Allbery <eagle@eyrie.org>
 # Copyright 2013-2014
 #     The Board of Trustees of the Leland Stanford Junior University
 #
@@ -30,7 +30,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
Index: gnu/usr.bin/perl/cpan/podlators/t/style/module-version.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/style/module-version.t,v
diff -u -p -a -u -p -r1.4 module-version.t
--- gnu/usr.bin/perl/cpan/podlators/t/style/module-version.t	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/style/module-version.t	21 Feb 2024 15:47:00 -0000
@@ -11,7 +11,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -42,9 +42,9 @@ if (@ARGV) {
 # Throws: Text exception if MYMETA.json is not found or doesn't contain a
 #         version
 sub dist_version {
-    my $json     = JSON::PP->new->utf8(1);
+    my $json = JSON::PP->new->utf8(1);
     my $metadata = $json->decode(scalar(slurp('MYMETA.json')));
-    my $version  = $metadata->{version};
+    my $version = $metadata->{version};
     if (!defined($version)) {
         die "$0: cannot find version number in MYMETA.json\n";
     }
@@ -81,9 +81,9 @@ B<module-version.t> [B<--update>]
 
 =head1 REQUIREMENTS
 
-Perl 5.6.0 or later, the Perl6::Slurp module, and the JSON::PP Perl module,
-both of which are available from CPAN.  JSON::PP is also included in Perl core
-in Perl 5.14 and later.
+Perl 5.8 or later, the Perl6::Slurp module, and the JSON::PP Perl module, both
+of which are available from CPAN.  JSON::PP is also included in Perl core in
+Perl 5.14 and later.
 
 =head1 DESCRIPTION
 
@@ -121,7 +121,7 @@ Russ Allbery <eagle@eyrie.org>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2014-2016, 2019 Russ Allbery <eagle@eyrie.org>
+Copyright 2014-2016, 2019-2021 Russ Allbery <eagle@eyrie.org>
 
 Copyright 2013-2014 The Board of Trustees of the Leland Stanford Junior
 University
Index: gnu/usr.bin/perl/cpan/podlators/t/style/obsolete-strings.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/style/obsolete-strings.t,v
diff -u -p -a -u -p -r1.1.1.1 obsolete-strings.t
--- gnu/usr.bin/perl/cpan/podlators/t/style/obsolete-strings.t	1 Mar 2021 23:15:34 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/style/obsolete-strings.t	21 Feb 2024 15:47:00 -0000
@@ -9,7 +9,7 @@
 # The canonical version of this file is maintained in the rra-c-util package,
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
-# Copyright 2016, 2018-2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2016, 2018-2021 Russ Allbery <eagle@eyrie.org>
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the "Software"),
@@ -31,7 +31,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -48,7 +48,7 @@ my @BAD_STRINGS = qw(rra@stanford.edu RR
 
 # File or directory names to always skip.
 my %SKIP = map { $_ => 1 } qw(
-  .git Changes _build blib cover_db obsolete-strings.t
+    .git .pc Changes _build blib changelog cover_db obsolete-strings.t
 );
 
 # Only run this test during automated testing, since failure doesn't indicate
Index: gnu/usr.bin/perl/cpan/podlators/t/style/strict.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/style/strict.t,v
diff -u -p -a -u -p -r1.4 strict.t
--- gnu/usr.bin/perl/cpan/podlators/t/style/strict.t	1 Mar 2021 23:19:52 -0000	1.4
+++ gnu/usr.bin/perl/cpan/podlators/t/style/strict.t	21 Feb 2024 15:47:00 -0000
@@ -6,7 +6,7 @@
 # which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>.
 #
 # Written by Russ Allbery <eagle@eyrie.org>
-# Copyright 2016, 2018-2019 Russ Allbery <eagle@eyrie.org>
+# Copyright 2016, 2018-2021 Russ Allbery <eagle@eyrie.org>
 # Copyright 2013-2014
 #     The Board of Trustees of the Leland Stanford Junior University
 #
@@ -30,7 +30,7 @@
 #
 # SPDX-License-Identifier: MIT
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -59,7 +59,7 @@ my %EXCLUDE = map { $_ => 1 } qw(.git bl
 # Returns: 1 if it should be checked, undef otherwise.
 sub should_check {
     my ($file) = @_;
-    return   if $EXCLUDE{$file};
+    return if $EXCLUDE{$file};
     return 1 if -d $file;
     return 1 if $file =~ m{ [.] PL \z }xms;
     return;
Index: gnu/usr.bin/perl/cpan/podlators/t/text/invalid.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/text/invalid.t,v
diff -u -p -a -u -p -r1.1.1.2 invalid.t
--- gnu/usr.bin/perl/cpan/podlators/t/text/invalid.t	15 Feb 2023 01:32:39 -0000	1.1.1.2
+++ gnu/usr.bin/perl/cpan/podlators/t/text/invalid.t	21 Feb 2024 15:47:00 -0000
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
 #
 # Test Pod::Text with a document that produces only errors.
 #
@@ -6,14 +6,14 @@
 # section, which previously led to internal errors because state variables
 # weren't properly initialized.  See CPAN RT #88724.
 #
-# Copyright 2013, 2018, 2020 Russ Allbery <rra@cpan.org>
+# Copyright 2013, 2018, 2020, 2022 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
 #
 # SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
 
-use 5.008;
+use 5.010;
 use strict;
 use warnings;
 
@@ -54,8 +54,7 @@ sub check_document {
 }
 
 # Document whose only content is an invalid command.
-## no critic (ValuesAndExpressions::ProhibitEscapedCharacters)
-my $invalid_char = chr utf8::unicode_to_native(0xa0);
+my $invalid_char = chr(utf8::unicode_to_native(0xa0));
 check_document("=$invalid_char", 'invalid command');
 
 # Document containing only a =cut.
Index: gnu/usr.bin/perl/cpan/podlators/t/text/iso-8859-1.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/text/iso-8859-1.t,v
diff -u -p -a -u -p -r1.1.1.1 iso-8859-1.t
--- gnu/usr.bin/perl/cpan/podlators/t/text/iso-8859-1.t	1 Mar 2021 23:15:34 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/text/iso-8859-1.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Text ISO-8859-1 handling
 #
-# Copyright 2016, 2019 Russ Allbery <rra@cpan.org>
+# Copyright 2016, 2019, 2022 Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -15,8 +15,8 @@ use warnings;
 
 use lib 't/lib';
 
-use Test::More tests => 3;
-use Test::Podlators qw(test_snippet);
+use Test::More tests => 13;
+use Test::Podlators qw(test_snippet test_snippet_with_io);
 
 # Load the module.
 BEGIN {
@@ -25,3 +25,30 @@ BEGIN {
 
 # Test the snippet with the proper encoding.
 test_snippet('Pod::Text', 'text/iso-8859-1', { encoding => 'iso-8859-1' });
+
+# Test error handling when there are characters that cannot be represented in
+# the output character set.
+test_snippet('Pod::Text', 'text/iso-8859-1-error-die');
+test_snippet('Pod::Text', 'text/iso-8859-1-error-pod');
+
+# Force ISO 8859-1 on all relevant file handles.  Hide this in a string eval
+# so that older versions of Perl don't croak and minimum-version tests still
+# pass.
+#
+## no critic (BuiltinFunctions::ProhibitStringyEval)
+## no critic (ValuesAndExpressions::RequireInterpolationOfMetachars)
+eval 'binmode(\*STDOUT, ":encoding(iso-8859-1)")';
+my $builder = Test::More->builder;
+eval 'binmode($builder->output, ":encoding(iso-8859-1)")';
+eval 'binmode($builder->failure_output, ":encoding(iso-8859-1)")';
+## use critic
+
+# Test the snippet with ISO 8859-1 output with a PerlIO layer.
+test_snippet_with_io(
+    'Pod::Text', 'text/iso-8859-1',
+    { encoding => 'iso-8859-1', output => 'iso-8859-1', perlio_iso => 1 },
+);
+
+# Test the snippet with ISO 8859-1 input but an encoding forcing output to
+# UTF-8.
+test_snippet('Pod::Text', 'text/iso-8859-1-utf8');
Index: gnu/usr.bin/perl/cpan/podlators/t/text/snippets.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/text/snippets.t,v
diff -u -p -a -u -p -r1.1.1.1 snippets.t
--- gnu/usr.bin/perl/cpan/podlators/t/text/snippets.t	1 Mar 2021 23:15:34 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/text/snippets.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Text behavior with various snippets.
 #
-# Copyright 2002, 2004, 2006-2009, 2012, 2018-2020
+# Copyright 2002, 2004, 2006-2009, 2012, 2018-2020, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -16,7 +16,7 @@ use warnings;
 
 use lib 't/lib';
 
-use Test::More tests => 53;
+use Test::More tests => 67;
 use Test::Podlators qw(test_snippet);
 
 # Load the module.
@@ -26,10 +26,12 @@ BEGIN {
 
 # List of snippets run by this test.
 my @snippets = qw(
-  alt c-with-spaces code cpp empty error-die error-none error-normal error-pod
-  error-stderr error-stderr-opt for late-encoding link-rt link-url margin
-  nonbreaking-space nourls periods quotes-opt s-whitespace sentence-spacing
-  utf8 verbatim
+    alt c-with-spaces code cpp empty error-die error-none error-normal
+    error-pod error-stderr error-stderr-opt for guesswork-quoting
+    guesswork-no-quoting late-encoding link-rt link-url margin naive
+    name-quotes name-quotes-none non-latin nonbreaking-space
+    nonbreaking-space-l nourls periods quotes-opt s-whitespace
+    sentence-spacing utf8 verbatim
 );
 
 # Run all the tests.
Index: gnu/usr.bin/perl/cpan/podlators/t/text/termcap.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/text/termcap.t,v
diff -u -p -a -u -p -r1.3 termcap.t
--- gnu/usr.bin/perl/cpan/podlators/t/text/termcap.t	1 Mar 2021 23:19:52 -0000	1.3
+++ gnu/usr.bin/perl/cpan/podlators/t/text/termcap.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Text::Termcap behavior with various snippets.
 #
-# Copyright 2002, 2004, 2006, 2009, 2012-2014, 2018-2019
+# Copyright 2002, 2004, 2006, 2009, 2012-2014, 2018-2019, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -25,10 +25,10 @@ BEGIN {
 }
 
 # Hard-code a few values to try to get reproducible results.
-$ENV{COLUMNS}  = 80;
-$ENV{TERM}     = 'xterm';
-$ENV{TERMPATH} = File::Spec->catfile('t', 'data', 'termcap');
-$ENV{TERMCAP}  = 'xterm:co=#80:do=^J:md=\E[1m:us=\E[4m:me=\E[m';
+local $ENV{COLUMNS} = 80;
+local $ENV{TERM} = 'xterm';
+local $ENV{TERMPATH} = File::Spec->catfile('t', 'data', 'termcap');
+local $ENV{TERMCAP} = 'xterm:co=#80:do=^J:md=\\E[1m:us=\\E[4m:me=\\E[m';
 
 # Check the regex that matches a single formatting character.
 my $parser = Pod::Text::Termcap->new();
@@ -43,13 +43,13 @@ for my $snippet (@snippets) {
 }
 
 # Now test with an unknown terminal type.
-$ENV{TERM}    = 'unknown';
-$ENV{TERMCAP} = 'unknown:co=#80:do=^J';
+local $ENV{TERM} = 'unknown';
+local $ENV{TERMCAP} = 'unknown:co=#80:do=^J';
 test_snippet('Pod::Text::Termcap', 'termcap/term-unknown');
 
 # Test the character regex with a fake terminal type that only provides bold
 # and normal, not underline.
-$ENV{TERM}    = 'fake-test-terminal';
-$ENV{TERMCAP} = 'fake-test-terminal:md=\E[1m:me=\E[m';
+local $ENV{TERM} = 'fake-test-terminal';
+local $ENV{TERMCAP} = 'fake-test-terminal:md=\\E[1m:me=\\E[m';
 $parser = Pod::Text::Termcap->new();
 is($parser->format_regex(), "\\\e\\[1m|\\\e\\[m", 'Limited character regex');
Index: gnu/usr.bin/perl/cpan/podlators/t/text/utf8-io.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/podlators/t/text/utf8-io.t,v
diff -u -p -a -u -p -r1.1.1.1 utf8-io.t
--- gnu/usr.bin/perl/cpan/podlators/t/text/utf8-io.t	1 Mar 2021 23:15:34 -0000	1.1.1.1
+++ gnu/usr.bin/perl/cpan/podlators/t/text/utf8-io.t	21 Feb 2024 15:47:00 -0000
@@ -2,7 +2,7 @@
 #
 # Test Pod::Text UTF-8 handling, with and without PerlIO.
 #
-# Copyright 2002, 2004, 2006-2010, 2012, 2014, 2018, 2020
+# Copyright 2002, 2004, 2006-2010, 2012, 2014, 2018, 2020, 2022
 #     Russ Allbery <rra@cpan.org>
 #
 # This program is free software; you may redistribute it and/or modify it
@@ -42,7 +42,11 @@ for my $snippet (qw(late-encoding s-whit
 }
 
 # Load a snippet in ISO 8859-1 that forces the output to be in UTF-8.
-test_snippet_with_io('Pod::Text', 'text/utf8-iso',
-    { encoding => 'iso-8859-1' });
-test_snippet_with_io('Pod::Text', 'text/utf8-iso',
-    { encoding => 'iso-8859-1', perlio_utf8 => 1 });
+test_snippet_with_io(
+    'Pod::Text', 'text/utf8-iso',
+    { encoding => 'iso-8859-1' },
+);
+test_snippet_with_io(
+    'Pod::Text', 'text/utf8-iso',
+    { encoding => 'iso-8859-1', perlio_utf8 => 1, output => 'utf-8' },
+);
Index: gnu/usr.bin/perl/cpan/version/t/07locale.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cpan/version/t/07locale.t,v
diff -u -p -a -u -p -r1.5 07locale.t
--- gnu/usr.bin/perl/cpan/version/t/07locale.t	15 Feb 2023 01:36:26 -0000	1.5
+++ gnu/usr.bin/perl/cpan/version/t/07locale.t	21 Feb 2024 15:47:00 -0000
@@ -18,6 +18,8 @@ SKIP: {
 	skip 'No locale testing for Perl < 5.6.0', 7 if $] < 5.006;
 	skip 'No locale testing without d_setlocale', 7
 	    if(!$Config{d_setlocale});
+	skip 'No locale testing without LC_NUMERIC', 7
+	    if($Config{ccflags}) =~ /-DNO_LOCALE_NUMERIC\b/;
 
 	# test locale handling
 	my $warning = '';
Index: gnu/usr.bin/perl/cygwin/cygwin.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/cygwin/cygwin.c,v
diff -u -p -a -u -p -r1.5 cygwin.c
--- gnu/usr.bin/perl/cygwin/cygwin.c	15 Feb 2023 01:36:26 -0000	1.5
+++ gnu/usr.bin/perl/cygwin/cygwin.c	21 Feb 2024 15:47:01 -0000
@@ -19,6 +19,8 @@
 #include <wchar.h>
 #endif
 
+#define PATH_LEN_GUESS (260 + 1001)
+
 /*
  * pp_system() implemented via spawn()
  * - more efficient and useful when embedding Perl in non-Cygwin apps
@@ -158,57 +160,50 @@ leave:
 
 #if (CYGWIN_VERSION_API_MINOR >= 181)
 char*
-wide_to_utf8(const wchar_t *wbuf)
+wide_to_utf8(const wchar_t *wsrc)
 {
-    char *buf;
-    int wlen = 0;
-    char *oldlocale;
-
-    /* Here and elsewhere in this file, we have a critical section to prevent
-     * another thread from changing the locale out from under us.  XXX But why
-     * not just use uvchr_to_utf8? */
-    SETLOCALE_LOCK;
-
-    oldlocale = setlocale(LC_CTYPE, NULL);
-    setlocale(LC_CTYPE, "utf-8");
+    dTHX;
+    const Size_t wlen = (wcslen(wsrc) + 1) * sizeof(wchar_t);
 
-    /* uvchr_to_utf8(buf, chr) or Encoding::_bytes_to_utf8(sv, "UCS-2BE"); */
-    wlen = wcsrtombs(NULL, (const wchar_t **)&wbuf, wlen, NULL);
-    buf = (char *) safemalloc(wlen+1);
-    wcsrtombs(buf, (const wchar_t **)&wbuf, wlen, NULL);
+    /* Max expansion factor is 3/2 */
+    Size_t blen = wlen * 3 / 2;
 
-    if (oldlocale) setlocale(LC_CTYPE, oldlocale);
-    else setlocale(LC_CTYPE, "C");
+    char *buf = (char *) safemalloc(blen);
 
-    SETLOCALE_UNLOCK;
+    utf16_to_utf8((U8 *) wsrc, buf, wlen, &blen);
 
     return buf;
 }
 
 wchar_t*
-utf8_to_wide(const char *buf)
+utf8_to_wide_extra_len(const char *buf, Size_t *extra_len)
 {
-    wchar_t *wbuf;
-    mbstate_t mbs;
-    char *oldlocale;
-    int wlen = sizeof(wchar_t)*strlen(buf);
+    /* Return the conversion to UTF-16 of the UTF-8 string 'buf'
+     * (terminated by a NUL), making sure to have space for at least *extra_len
+     * extra (wide) characters in the result.  The result must be freed by the
+     * caller when no longer needed */
 
-    SETLOCALE_LOCK;
+    dTHX;
+    Size_t len = strlen(buf) + extra_len + 1;
+
+    /* Max expansion factor is sizeof(wchar_t) */
+    Size_t wlen = sizeof(wchar_t) * len;
 
-    oldlocale = setlocale(LC_CTYPE, NULL);
+    wchar_t* wsrc = (wchar_t *) safemalloc(wlen);
 
-    setlocale(LC_CTYPE, "utf-8");
-    wbuf = (wchar_t *) safemalloc(wlen);
-    /* utf8_to_uvchr_buf(pathname, pathname + wlen, wpath) or Encoding::_utf8_to_bytes(sv, "UCS-2BE"); */
-    wlen = mbsrtowcs(wbuf, (const char**)&buf, wlen, &mbs);
+    utf8_to_utf16(buf, (U8 *) wsrc, len, &wlen);
 
-    if (oldlocale) setlocale(LC_CTYPE, oldlocale);
-    else setlocale(LC_CTYPE, "C");
+    return wsrc;
+}
 
-    SETLOCALE_UNLOCK;
+wchar_t*
+utf8_to_wide(const char *buf)
+{
+    Size_t extra_len = 0;
 
-    return wbuf;
+    return utf8_to_wide_extra_len(buf, &extra_len);
 }
+
 #endif /* cygwin 1.7 */
 
 /* see also Cwd.pm */
@@ -272,21 +267,35 @@ XS(XS_Cygwin_winpid_to_pid)
     XSRETURN_UNDEF;
 }
 
-XS(XS_Cygwin_win_to_posix_path)
+/* The conversion between Posix and Windows paths is essentially the same in
+ * either direction, so a common function is used, with which direction passed
+ * in.
+ *
+ * These numbers are chosen so can be or'd with absolute flag to get 0..3 */
+typedef enum {
+    to_posix = 0,
+    to_win   = 2
+} direction_t;
 
+static void
+S_convert_path_common(pTHX_ const direction_t direction)
 {
     dXSARGS;
-    int absolute_flag = 0;
+    bool absolute_flag = 0;
     STRLEN len;
     int err = 0;
     char *src_path;
-    char *posix_path;
+    char *converted_path;
     int isutf8 = 0;
 
-    if (items < 1 || items > 2)
-        Perl_croak(aTHX_ "Usage: Cygwin::win_to_posix_path(pathname, [absolute])");
+    if (items < 1 || items > 2) {
+        char *name = (direction == to_posix)
+                     ? "win::win_to_posix_path"
+                     : "posix_to_win_path";
+        Perl_croak(aTHX_ "Usage: Cygwin::%s(pathname, [absolute])", name);
+    }
 
-    src_path = SvPV(ST(0), len);
+    src_path = SvPVx(ST(0), len);
     if (items == 2)
         absolute_flag = SvTRUE(ST(1));
 
@@ -299,163 +308,100 @@ XS(XS_Cygwin_win_to_posix_path)
        Size calculation: On overflow let cygwin_conv_path calculate the final size.
      */
     if (isutf8) {
-        int what = absolute_flag ? CCP_WIN_W_TO_POSIX : CCP_WIN_W_TO_POSIX | CCP_RELATIVE;
-        STRLEN wlen = sizeof(wchar_t)*(len + 260 + 1001);
-        wchar_t *wpath = (wchar_t *) safemalloc(sizeof(wchar_t)*len);
-        wchar_t *wbuf = (wchar_t *) safemalloc(wlen);
-        if (!IN_BYTES) {
-            mbstate_t mbs;
-            char *oldlocale;
-
-            SETLOCALE_LOCK;
-
-            oldlocale = setlocale(LC_CTYPE, NULL);
-            setlocale(LC_CTYPE, "utf-8");
-            /* utf8_to_uvchr_buf(src_path, src_path + wlen, wpath) or Encoding::_utf8_to_bytes(sv, "UCS-2BE"); */
-            wlen = mbsrtowcs(wpath, (const char**)&src_path, wlen, &mbs);
-            if (wlen > 0)
-                err = cygwin_conv_path(what, wpath, wbuf, wlen);
-            if (oldlocale) setlocale(LC_CTYPE, oldlocale);
-            else setlocale(LC_CTYPE, "C");
-
-            SETLOCALE_UNLOCK;
-        } else { /* use bytes; assume already ucs-2 encoded bytestream */
-            err = cygwin_conv_path(what, src_path, wbuf, wlen);
+        int what =  ((absolute_flag) ? 0 : CCP_RELATIVE)
+                  | ((direction == to_posix)
+                     ? CCP_WIN_W_TO_POSIX
+                     : CCP_POSIX_TO_WIN_W);
+        STRLEN wlen;
+        wchar_t *wsrc = NULL;       /* The source, as a wchar_t */
+        wchar_t *wconverted = NULL; /* wsrc, converted to the destination */
+
+        /* ptr to either wsrc, or under BYTES, the src_path so can have common
+         * code below */
+        wchar_t *which_src = (wchar_t *) src_path;
+
+        if (LIKELY(! IN_BYTES)) {    /* Normal case, convert UTF-8 to UTF-16 */
+            wlen = PATH_LEN_GUESS;
+            wsrc = utf8_to_wide_extra_len(src_path, &wlen);
+            which_src = wsrc;
+        }
+        else { /* use bytes; assume already UTF-16 encoded bytestream */
+            wlen = sizeof(wchar_t) * (len + PATH_LEN_GUESS);
+        }
+
+        if (LIKELY(wlen > 0)) { /* Make sure didn't get an error */
+            wconverted = (wchar_t *) safemalloc(wlen);
+            err = cygwin_conv_path(what, which_src, wconverted, wlen);
         }
+
         if (err == ENOSPC) { /* our space assumption was wrong, not enough space */
-            int newlen = cygwin_conv_path(what, wpath, wbuf, 0);
-            wbuf = (wchar_t *) realloc(&wbuf, newlen);
-            err = cygwin_conv_path(what, wpath, wbuf, newlen);
-            wlen = newlen;
+            int newlen = cygwin_conv_path(what, which_src, wconverted, 0);
+            wconverted = (wchar_t *) realloc(&wconverted, newlen);
+            err = cygwin_conv_path(what, which_src, wconverted, newlen);
         }
-        /* utf16_to_utf8(*p, *d, bytlen, *newlen) */
-        posix_path = (char *) safemalloc(wlen*3);
-        Perl_utf16_to_utf8(aTHX_ (U8*)&wpath, (U8*)posix_path, wlen*2, &len);
-        /*
-        wlen = wcsrtombs(NULL, (const wchar_t **)&wbuf, wlen, NULL);
-        posix_path = (char *) safemalloc(wlen+1);
-        wcsrtombs(posix_path, (const wchar_t **)&wbuf, wlen, NULL);
-        */
+
+        converted_path = wide_to_utf8(wconverted);
+
+        safefree(wconverted);
+        safefree(wsrc);
     } else {
-        int what = absolute_flag ? CCP_WIN_A_TO_POSIX : CCP_WIN_A_TO_POSIX | CCP_RELATIVE;
-        posix_path = (char *) safemalloc (len + 260 + 1001);
-        err = cygwin_conv_path(what, src_path, posix_path, len + 260 + 1001);
+        int what =  ((absolute_flag) ? 0 : CCP_RELATIVE)
+                  | ((direction == to_posix)
+                     ? CCP_WIN_A_TO_POSIX
+                     : CCP_POSIX_TO_WIN_A);
+
+        converted_path = (char *) safemalloc (len + PATH_LEN_GUESS);
+        err = cygwin_conv_path(what, src_path, converted_path, len + PATH_LEN_GUESS);
         if (err == ENOSPC) { /* our space assumption was wrong, not enough space */
-            int newlen = cygwin_conv_path(what, src_path, posix_path, 0);
-            posix_path = (char *) realloc(&posix_path, newlen);
-            err = cygwin_conv_path(what, src_path, posix_path, newlen);
+            int newlen = cygwin_conv_path(what, src_path, converted_path, 0);
+            converted_path = (char *) realloc(&converted_path, newlen);
+            err = cygwin_conv_path(what, src_path, converted_path, newlen);
         }
     }
+
 #else
-    posix_path = (char *) safemalloc (len + 260 + 1001);
-    if (absolute_flag)
-        err = cygwin_conv_to_full_posix_path(src_path, posix_path);
-    else
-        err = cygwin_conv_to_posix_path(src_path, posix_path);
+    converted_path = (char *) safemalloc (len + PATH_LEN_GUESS);
+
+    switch (absolute_flag | direction) {
+      case (1|to_posix):
+        err = cygwin_conv_to_full_posix_path(src_path, converted_path);
+        break;
+      case (0|to_posix):
+        err = cygwin_conv_to_posix_path(src_path, converted_path);
+        break;
+      case (1|to_win):
+        err = cygwin_conv_to_full_win32_path(src_path, converted_path);
+        break;
+      case (0|to_win):
+        err = cygwin_conv_to_win32_path(src_path, converted_path);
+        break;
+    }
+
 #endif
+
     if (!err) {
         EXTEND(SP, 1);
-        ST(0) = sv_2mortal(newSVpv(posix_path, 0));
+        ST(0) = sv_2mortal(newSVpv(converted_path, 0));
         if (isutf8) { /* src was utf-8, so result should also */
             /* TODO: convert ANSI (local windows encoding) to utf-8 on cygwin-1.5 */
             SvUTF8_on(ST(0));
         }
-        safefree(posix_path);
+        safefree(converted_path);
         XSRETURN(1);
     } else {
-        safefree(posix_path);
+        safefree(converted_path);
         XSRETURN_UNDEF;
     }
 }
 
-XS(XS_Cygwin_posix_to_win_path)
+XS(XS_Cygwin_win_to_posix_path)
 {
-    dXSARGS;
-    int absolute_flag = 0;
-    STRLEN len;
-    int err = 0;
-    char *src_path, *win_path;
-    int isutf8 = 0;
-
-    if (items < 1 || items > 2)
-        Perl_croak(aTHX_ "Usage: Cygwin::posix_to_win_path(pathname, [absolute])");
-
-    src_path = SvPVx(ST(0), len);
-    if (items == 2)
-        absolute_flag = SvTRUE(ST(1));
-
-    if (!len)
-        Perl_croak(aTHX_ "can't convert empty path");
-    isutf8 = SvUTF8(ST(0));
-#if (CYGWIN_VERSION_API_MINOR >= 181)
-    /* Check utf8 flag and use wide api then.
-       Size calculation: On overflow let cygwin_conv_path calculate the final size.
-     */
-    if (isutf8) {
-        int what = absolute_flag ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_W | CCP_RELATIVE;
-        int wlen = sizeof(wchar_t)*(len + 260 + 1001);
-        wchar_t *wpath = (wchar_t *) safemalloc(sizeof(wchar_t)*len);
-        wchar_t *wbuf = (wchar_t *) safemalloc(wlen);
-        char *oldlocale;
-
-        SETLOCALE_LOCK;
-
-        oldlocale = setlocale(LC_CTYPE, NULL);
-        setlocale(LC_CTYPE, "utf-8");
-        if (!IN_BYTES) {
-            mbstate_t mbs;
-            /* utf8_to_uvchr_buf(src_path, src_path + wlen, wpath) or Encoding::_utf8_to_bytes(sv, "UCS-2BE"); */
-            wlen = mbsrtowcs(wpath, (const char**)&src_path, wlen, &mbs);
-            if (wlen > 0)
-                err = cygwin_conv_path(what, wpath, wbuf, wlen);
-        } else { /* use bytes; assume already ucs-2 encoded bytestream */
-            err = cygwin_conv_path(what, src_path, wbuf, wlen);
-        }
-        if (err == ENOSPC) { /* our space assumption was wrong, not enough space */
-            int newlen = cygwin_conv_path(what, wpath, wbuf, 0);
-            wbuf = (wchar_t *) realloc(&wbuf, newlen);
-            err = cygwin_conv_path(what, wpath, wbuf, newlen);
-            wlen = newlen;
-        }
-        /* also see utf8.c: Perl_utf16_to_utf8() or Encoding::_bytes_to_utf8(sv, "UCS-2BE"); */
-        wlen = wcsrtombs(NULL, (const wchar_t **)&wbuf, wlen, NULL);
-        win_path = (char *) safemalloc(wlen+1);
-        wcsrtombs(win_path, (const wchar_t **)&wbuf, wlen, NULL);
-        if (oldlocale) setlocale(LC_CTYPE, oldlocale);
-        else setlocale(LC_CTYPE, "C");
+    S_convert_path_common(aTHX_ to_posix);
+}
 
-        SETLOCALE_UNLOCK;
-    } else {
-        int what = absolute_flag ? CCP_POSIX_TO_WIN_A : CCP_POSIX_TO_WIN_A | CCP_RELATIVE;
-        win_path = (char *) safemalloc(len + 260 + 1001);
-        err = cygwin_conv_path(what, src_path, win_path, len + 260 + 1001);
-        if (err == ENOSPC) { /* our space assumption was wrong, not enough space */
-            int newlen = cygwin_conv_path(what, src_path, win_path, 0);
-            win_path = (char *) realloc(&win_path, newlen);
-            err = cygwin_conv_path(what, src_path, win_path, newlen);
-        }
-    }
-#else
-    if (isutf8)
-        Perl_warn(aTHX_ "can't convert utf8 path");
-    win_path = (char *) safemalloc(len + 260 + 1001);
-    if (absolute_flag)
-        err = cygwin_conv_to_full_win32_path(src_path, win_path);
-    else
-        err = cygwin_conv_to_win32_path(src_path, win_path);
-#endif
-    if (!err) {
-        EXTEND(SP, 1);
-        ST(0) = sv_2mortal(newSVpv(win_path, 0));
-        if (isutf8) {
-            SvUTF8_on(ST(0));
-        }
-        safefree(win_path);
-        XSRETURN(1);
-    } else {
-        safefree(win_path);
-        XSRETURN_UNDEF;
-    }
+XS(XS_Cygwin_posix_to_win_path)
+{
+    S_convert_path_common(aTHX_ to_win);
 }
 
 XS(XS_Cygwin_mount_table)
Index: gnu/usr.bin/perl/dist/Attribute-Handlers/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Attribute-Handlers/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Attribute-Handlers/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Attribute-Handlers/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,24 @@
+use 5.006;
+use strict;
+use ExtUtils::MakeMaker;
+WriteMakefile(
+  NAME          => 'Attribute::Handlers',
+  VERSION_FROM  => 'lib/Attribute/Handlers.pm',
+  ABSTRACT_FROM => 'lib/Attribute/Handlers.pm',
+  INSTALLDIRS   => ( $] < 5.011 ? 'perl' : 'site' ),
+  LICENSE       => 'perl_5',
+  PREREQ_PM => {
+    'parent' => 0,
+  },
+  AUTHOR        => 'Damian Conway',
+  META_MERGE => {
+    resources => {
+      repository  => 'https://github.com/perl/perl5.git',
+      bugtracker  => 'https://github.com/perl/perl5/issues',
+      MailingList => 'https://lists.perl.org/list/perl5-porters.html',
+    },
+    no_index => {
+      directory => [ 'demo' ],
+    },
+  },
+);
Index: gnu/usr.bin/perl/dist/Attribute-Handlers/lib/Attribute/Handlers.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Attribute-Handlers/lib/Attribute/Handlers.pm,v
diff -u -p -a -u -p -r1.4 Handlers.pm
--- gnu/usr.bin/perl/dist/Attribute-Handlers/lib/Attribute/Handlers.pm	15 Feb 2023 01:36:26 -0000	1.4
+++ gnu/usr.bin/perl/dist/Attribute-Handlers/lib/Attribute/Handlers.pm	21 Feb 2024 15:47:01 -0000
@@ -4,9 +4,9 @@ use Carp;
 use warnings;
 use strict;
 our $AUTOLOAD;
-our $VERSION = '1.02'; # remember to update version in POD!
+our $VERSION = '1.03'; # remember to update version in POD!
 # $DB::single=1;
-
+my $debug= $ENV{DEBUG_ATTRIBUTE_HANDLERS} || 0;
 my %symcache;
 sub findsym {
 	my ($pkg, $ref, $type) = @_;
@@ -241,7 +241,8 @@ sub _apply_handler_AH_ {
 	my ($declaration, $phase) = @_;
 	my ($pkg, $ref, $attr, $data, $raw, $handlerphase, $filename, $linenum) = @$declaration;
 	return unless $handlerphase->{$phase};
-	# print STDERR "Handling $attr on $ref in $phase with [$data]\n";
+        print STDERR "Handling $attr on $ref in $phase with [$data]\n"
+            if $debug;
 	my $type = ref $ref;
 	my $handler = "_ATTR_${type}_${attr}";
 	my $sym = findsym($pkg, $ref);
@@ -249,12 +250,29 @@ sub _apply_handler_AH_ {
 	no warnings;
 	if (!$raw && defined($data)) {
 	    if ($data ne '') {
-		my $evaled = eval("package $pkg; no warnings; no strict;
-				   local \$SIG{__WARN__}=sub{die}; [$data]");
-		$data = $evaled unless $@;
+                # keeping the minimum amount of code inside the eval string
+                # makes debugging perl internals issues with this logic easier.
+                my $code= "package $pkg; my \$ref= [$data]; \$data= \$ref; 1";
+                print STDERR "Evaling: '$code'\n"
+                    if $debug;
+                local $SIG{__WARN__} = sub{ die };
+                no strict;
+                no warnings;
+                # Note in production we do not need to use the return value from
+                # the eval or even consult $@ after the eval - if the evaled code
+                # compiles and runs successfully then it will update $data with
+                # the compiled form, if it fails then $data stays unchanged. The
+                # return value and $@ are only used for debugging purposes.
+                # IOW we could just replace the following with eval($code);
+                eval($code) or do {
+                    print STDERR "Eval failed: $@"
+                        if $debug;
+                };
 	    }
 	    else { $data = undef }
 	}
+
+        # now call the handler with the $data decoded (maybe)
 	$pkg->$handler($sym,
 		       (ref $sym eq 'GLOB' ? *{$sym}{ref $ref}||$ref : $ref),
 		       $attr,
@@ -300,7 +318,7 @@ Attribute::Handlers - Simpler definition
 
 =head1 VERSION
 
-This document describes version 1.02 of Attribute::Handlers.
+This document describes version 1.03 of Attribute::Handlers.
 
 =head1 SYNOPSIS
 
Index: gnu/usr.bin/perl/dist/Carp/lib/Carp.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Carp/lib/Carp.pm,v
diff -u -p -a -u -p -r1.4 Carp.pm
--- gnu/usr.bin/perl/dist/Carp/lib/Carp.pm	15 Feb 2023 01:36:26 -0000	1.4
+++ gnu/usr.bin/perl/dist/Carp/lib/Carp.pm	21 Feb 2024 15:47:01 -0000
@@ -179,7 +179,7 @@ BEGIN {
             ? do { require "overload.pm"; _fetch_sub overload => 'mycan' }
             : \&UNIVERSAL::can;
 
-        # _blessed is either UNIVERAL::isa(...), or, in the presence of an
+        # _blessed is either UNIVERSAL::isa(...), or, in the presence of an
         # override, a hideous, but fairly reliable, workaround.
         *_blessed = $isa
             ? sub { &$isa($_[0], "UNIVERSAL") }
@@ -211,7 +211,7 @@ BEGIN {
 }
 
 
-our $VERSION = '1.52';
+our $VERSION = '1.54';
 $VERSION =~ tr/_//d;
 
 our $MaxEvalLen = 0;
@@ -776,8 +776,8 @@ Carp - alternative warn and die for modu
     # cluck, longmess and shortmess not exported by default
     use Carp qw(cluck longmess shortmess);
     cluck "This is how we got here!"; # warn with stack backtrace
-    $long_message   = longmess( "message from cluck() or confess()" );
-    $short_message  = shortmess( "message from carp() or croak()" );
+    my $long_message   = longmess( "message from cluck() or confess()" );
+    my $short_message  = shortmess( "message from carp() or croak()" );
 
 =head1 DESCRIPTION
 
@@ -802,7 +802,7 @@ Of course, C<Carp> can't guarantee the l
 
 You can also alter the way the output and logic of C<Carp> works, by
 changing some global variables in the C<Carp> namespace. See the
-section on C<GLOBAL VARIABLES> below.
+section on L</GLOBAL VARIABLES> below.
 
 Here is a more complete description of how C<carp> and C<croak> work.
 What they do is search the call-stack for a function call stack where
@@ -868,7 +868,7 @@ or by including the string C<-MCarp=verb
 environment variable.
 
 Alternately, you can set the global variable C<$Carp::Verbose> to true.
-See the C<GLOBAL VARIABLES> section below.
+See the L</GLOBAL VARIABLES> section below.
 
 =head2 Stack Trace formatting
 
Index: gnu/usr.bin/perl/dist/Carp/lib/Carp/Heavy.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Carp/lib/Carp/Heavy.pm,v
diff -u -p -a -u -p -r1.4 Heavy.pm
--- gnu/usr.bin/perl/dist/Carp/lib/Carp/Heavy.pm	15 Feb 2023 01:36:26 -0000	1.4
+++ gnu/usr.bin/perl/dist/Carp/lib/Carp/Heavy.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package Carp::Heavy;
 
 use Carp ();
 
-our $VERSION = '1.52';
+our $VERSION = '1.54';
 $VERSION =~ tr/_//d;
 
 # Carp::Heavy was merged into Carp in version 1.12.  Any mismatched versions
Index: gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm,v
diff -u -p -a -u -p -r1.10 Dumper.pm
--- gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm	15 Feb 2023 01:36:26 -0000	1.10
+++ gnu/usr.bin/perl/dist/Data-Dumper/Dumper.pm	21 Feb 2024 15:47:01 -0000
@@ -18,6 +18,7 @@ use 5.008_001;
 require Exporter;
 
 use constant IS_PRE_516_PERL => $] < 5.016;
+use constant SUPPORTS_CORE_BOOLS => defined &builtin::is_bool;
 
 use Carp ();
 
@@ -29,7 +30,7 @@ our ( $Indent, $Trailingcomma, $Purity, 
 our ( @ISA, @EXPORT, @EXPORT_OK, $VERSION );
 
 BEGIN {
-    $VERSION = '2.184'; # Don't forget to set version and release
+    $VERSION = '2.188'; # Don't forget to set version and release
                         # date in POD below!
 
     @ISA = qw(Exporter);
@@ -551,6 +552,12 @@ sub _dump {
     elsif (!defined($val)) {
       $out .= "undef";
     }
+    elsif (SUPPORTS_CORE_BOOLS && do {
+      BEGIN { SUPPORTS_CORE_BOOLS and warnings->unimport("experimental::builtin") }
+      builtin::is_bool($val)
+    }) {
+      $out .= $val ? '!!1' : '!!0';
+    }
     # This calls the XSUB _vstring (if the XS code is loaded). I'm not *sure* if
     # if belongs in the "Pure Perl" implementation. It sort of depends on what
     # was meant by "Pure Perl", as this subroutine already relies Scalar::Util
@@ -859,7 +866,7 @@ Data::Dumper - stringified perl data str
     }
 
     # OO usage
-    $d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
+    my $d = Data::Dumper->new([$foo, $bar], [qw(foo *ary)]);
        ...
     print $d->Dump;
        ...
@@ -884,7 +891,7 @@ to substructures within C<$VAR>I<n> will
 notation.  You can specify names for individual values to be dumped if you
 use the C<Dump()> method, or you can change the default C<$VAR> prefix to
 something else.  See C<$Data::Dumper::Varname> and C<$Data::Dumper::Terse>
-below.
+in L</Configuration Variables or Methods> below.
 
 The default output of self-referential structures can be C<eval>ed, but the
 nested references to C<$VAR>I<n> will be undefined, since a recursive
@@ -1448,7 +1455,7 @@ modify it under the same terms as Perl i
 
 =head1 VERSION
 
-Version 2.184
+Version 2.188
 
 =head1 SEE ALSO
 
Index: gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs,v
diff -u -p -a -u -p -r1.10 Dumper.xs
--- gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs	15 Feb 2023 01:36:26 -0000	1.10
+++ gnu/usr.bin/perl/dist/Data-Dumper/Dumper.xs	21 Feb 2024 15:47:01 -0000
@@ -2,13 +2,11 @@
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
-#ifdef USE_PPPORT_H
-#  define NEED_my_snprintf
-#  define NEED_my_sprintf
-#  define NEED_sv_2pv_flags
-#  define NEED_utf8_to_uvchr_buf
-#  include "ppport.h"
-#endif
+#define NEED_my_snprintf
+#define NEED_my_sprintf
+#define NEED_sv_2pv_flags
+#define NEED_utf8_to_uvchr_buf
+#include "ppport.h"
 
 #ifndef strlcpy
 #  ifdef my_strlcpy
@@ -1279,6 +1277,17 @@ DD_dump(pTHX_ SV *val, const char *name,
 	    }
 	}
 
+#ifdef SvIsBOOL
+	if (SvIsBOOL(val)) {
+		if (SvTRUE(val)) {
+			sv_catpvs(retval, "!!1");
+		}
+		else {
+			sv_catpvs(retval, "!!0");
+		}
+	}
+    else
+#endif
         if (DD_is_integer(val)) {
             STRLEN len;
 	    if (SvIsUV(val))
@@ -1315,7 +1324,7 @@ DD_dump(pTHX_ SV *val, const char *name,
 		SvCUR_set(retval, SvCUR(retval)+2);
                 i = 3 + esc_q_utf8(aTHX_ retval, c, i,
 #ifdef GvNAMEUTF8
-			!!GvNAMEUTF8(val), style->useqq
+			cBOOL(GvNAMEUTF8(val)), style->useqq
 #else
 			0, style->useqq || globname_supra_ascii(c, i)
 #endif
Index: gnu/usr.bin/perl/dist/Data-Dumper/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Data-Dumper/Makefile.PL,v
diff -u -p -a -u -p -r1.1.1.1 Makefile.PL
--- gnu/usr.bin/perl/dist/Data-Dumper/Makefile.PL	15 Feb 2023 01:32:54 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/Data-Dumper/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -18,6 +18,5 @@ WriteMakefile(
     VERSION_FROM  => 'Dumper.pm',
     ABSTRACT_FROM => 'Dumper.pm',
     $] <= 5.011000 ? ( INSTALLDIRS => 'perl' ) : (),
-    ((grep { $_ eq 'PERL_CORE=1' } @ARGV) ? () : ('DEFINE' => '-DUSE_PPPORT_H')),
     @extra,
 );
Index: gnu/usr.bin/perl/dist/Data-Dumper/t/dumper.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Data-Dumper/t/dumper.t,v
diff -u -p -a -u -p -r1.6 dumper.t
--- gnu/usr.bin/perl/dist/Data-Dumper/t/dumper.t	15 Feb 2023 01:36:26 -0000	1.6
+++ gnu/usr.bin/perl/dist/Data-Dumper/t/dumper.t	21 Feb 2024 15:47:01 -0000
@@ -1524,6 +1524,26 @@ EOT
 
 #############
 {
+  if (!Data::Dumper::SUPPORTS_CORE_BOOLS) {
+      SKIP_BOTH("Core booleans not supported on older perls");
+      last;
+  }
+  my $want = <<'EOT';
+#$VAR1 = [
+#  !!1,
+#  !!0
+#];
+EOT
+
+  $foo = [ !!1, !!0 ];
+  TEST_BOTH(q(Data::Dumper::DumperX($foo)),
+            'Booleans',
+            $want);
+}
+
+
+#############
+{
   # If XS cannot load, the pure-Perl version cannot deparse vstrings with
   # underscores properly.
   # Says the original comment. However, the story is more complex than that.
Index: gnu/usr.bin/perl/dist/Devel-PPPort/PPPort_pm.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/PPPort_pm.PL,v
diff -u -p -a -u -p -r1.3 PPPort_pm.PL
--- gnu/usr.bin/perl/dist/Devel-PPPort/PPPort_pm.PL	15 Feb 2023 01:36:26 -0000	1.3
+++ gnu/usr.bin/perl/dist/Devel-PPPort/PPPort_pm.PL	21 Feb 2024 15:47:01 -0000
@@ -747,7 +747,7 @@ modify it under the same terms as Perl i
 
 =head1 SEE ALSO
 
-See L<h2xs>, L<ppport.h>.
+See L<h2xs>, F<ppport.h>.
 
 =cut
 
@@ -756,7 +756,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = '3.68';
+$VERSION = '3.71';
 
 sub _init_data
 {
Index: gnu/usr.bin/perl/dist/Devel-PPPort/module3.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/module3.c,v
diff -u -p -a -u -p -r1.1.1.1 module3.c
--- gnu/usr.bin/perl/dist/Devel-PPPort/module3.c	13 Feb 2019 21:11:26 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/Devel-PPPort/module3.c	21 Feb 2024 15:47:01 -0000
@@ -67,5 +67,5 @@ int dummy_parser_warning(void)
   my_p_bufptr = &PL_bufptr;
   PL_bufptr = my_bufptr;
   PL_bufptr = *my_p_bufptr;
-  return &PL_bufptr != NULL;
+  return my_p_bufptr != NULL;
 }
Index: gnu/usr.bin/perl/dist/Devel-PPPort/parts/embed.fnc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/parts/embed.fnc,v
diff -u -p -a -u -p -r1.3 embed.fnc
--- gnu/usr.bin/perl/dist/Devel-PPPort/parts/embed.fnc	15 Feb 2023 01:36:26 -0000	1.3
+++ gnu/usr.bin/perl/dist/Devel-PPPort/parts/embed.fnc	21 Feb 2024 15:47:01 -0000
@@ -523,7 +523,7 @@
 :
 :   U  autodoc.pl will not output a usage example
 :
-:   W  Add a _pDEPTH argument to function prototypes, and an _aDEPTH
+:   W  Add a comma_pDEPTH argument to function prototypes, and a comma_aDEPTH
 :      argument to the function calls. This means that under DEBUGGING
 :      a depth argument is added to the functions, which is used for
 :      example by the regex engine for debugging and trace output.
@@ -1943,7 +1943,7 @@ Apd	|bool	|sv_streq_flags	|NULLOK SV* sv
 CpMdb	|void	|sv_taint	|NN SV* sv
 CpdR	|bool	|sv_tainted	|NN SV *const sv
 Apd	|int	|sv_unmagic	|NN SV *const sv|const int type
-Apd	|int	|sv_unmagicext	|NN SV *const sv|const int type|NULLOK MGVTBL *vtbl
+Apd	|int	|sv_unmagicext	|NN SV *const sv|const int type|NULLOK const MGVTBL *vtbl
 ApdMb	|void	|sv_unref	|NN SV* sv
 Apd	|void	|sv_unref_flags	|NN SV *const ref|const U32 flags
 Cpd	|void	|sv_untaint	|NN SV *const sv
Index: gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5003007
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5003007,v
diff -u -p -a -u -p -r1.3 5003007
--- gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5003007	15 Feb 2023 01:36:26 -0000	1.3
+++ gnu/usr.bin/perl/dist/Devel-PPPort/parts/base/5003007	21 Feb 2024 15:47:01 -0000
@@ -962,7 +962,7 @@ newSVsv                        # T
 newUNOP                        # T
 Newz                           # Z added by devel/scanprov
 nextargv                       # F added by devel/scanprov
-NEXTOPER                       # Z added by devel/scanprov
+REGNODE_AFTER                       # Z added by devel/scanprov
 ninstr                         # T
 NofAMmeth                      # Z added by devel/scanprov
 no_fh_allowed                  # F added by devel/scanprov
@@ -1113,7 +1113,7 @@ pop_scope                      # T
 PP                             # Z added by devel/scanprov
 pregexec                       # T
 pregfree                       # T
-PREVOPER                       # Z added by devel/scanprov
+REGNODE_BEFORE                       # Z added by devel/scanprov
 printf                         # Z added by devel/scanprov
 PRIVLIB                        # K added by devel/scanprov
 PRIVLIB_EXP                    # K added by devel/scanprov
Index: gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/magic
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/magic,v
diff -u -p -a -u -p -r1.3 magic
--- gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/magic	15 Feb 2023 01:36:26 -0000	1.3
+++ gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/magic	21 Feb 2024 15:47:01 -0000
@@ -211,7 +211,7 @@ mg_findext(const SV * sv, int type, cons
 #if { NEED sv_unmagicext }
 
 int
-sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
+sv_unmagicext(pTHX_ SV *const sv, const int type, const MGVTBL *vtbl)
 {
     MAGIC* mg;
     MAGIC** mgp;
Index: gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/mess
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/mess,v
diff -u -p -a -u -p -r1.2 mess
--- gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/mess	10 Feb 2022 14:37:50 -0000	1.2
+++ gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/mess	21 Feb 2024 15:47:01 -0000
@@ -58,17 +58,18 @@ NEED_vmess
 #  else
 #    define D_PPP_FIX_UTF8_ERRSV_FOR_SV(sv) STMT_START {} STMT_END
 #  endif
-#  define croak_sv(sv)                         \
-    STMT_START {                               \
-        SV *_sv = (sv);                        \
-        if (SvROK(_sv)) {                      \
-            sv_setsv(ERRSV, _sv);              \
-            croak(NULL);                       \
-        } else {                               \
-            D_PPP_FIX_UTF8_ERRSV_FOR_SV(_sv);  \
-            croak("%" SVf, SVfARG(_sv));       \
-        }                                      \
-    } STMT_END
+PERL_STATIC_INLINE void D_PPP_croak_sv(SV *sv) {
+    dTHX;
+    SV *_sv = (sv);
+    if (SvROK(_sv)) {
+        sv_setsv(ERRSV, _sv);
+        croak(NULL);
+    } else {
+        D_PPP_FIX_UTF8_ERRSV_FOR_SV(_sv);
+        croak("%" SVf, SVfARG(_sv));
+    }
+}
+#  define croak_sv(sv) D_PPP_croak_sv(sv)
 #elif { VERSION >= 5.4.0 }
 #  define croak_sv(sv) croak("%" SVf, SVfARG(sv))
 #else
Index: gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/misc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/misc,v
diff -u -p -a -u -p -r1.4 misc
--- gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/misc	15 Feb 2023 01:36:26 -0000	1.4
+++ gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc/misc	21 Feb 2024 15:47:01 -0000
@@ -299,17 +299,12 @@ __UNDEF_NOT_PROVIDED__  PERL_GCC_BRACE_G
 
 #undef STMT_START
 #undef STMT_END
-#if defined(VOIDFLAGS) && defined(PERL_USE_GCC_BRACE_GROUPS)
-#  define STMT_START    (void)( /* gcc supports ``({ STATEMENTS; })'' */
-#  define STMT_END      )
-#else
-#  if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
+#if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
 #    define STMT_START  if (1)
 #    define STMT_END    else (void)0
-#  else
+#else
 #    define STMT_START  do
 #    define STMT_END    while (0)
-#  endif
 #endif
 
 __UNDEFINED__  boolSV(b)    ((b) ? &PL_sv_yes : &PL_sv_no)
@@ -1180,10 +1175,10 @@ newXS("Devel::PPPort::dAXMARK", XS_Devel
 int
 OpSIBLING_tests()
 	PREINIT:
-		OP *x;
-		OP *kid;
-		OP *middlekid;
-		OP *lastkid;
+		OP *x = NULL;
+		OP *kid = NULL;
+		OP *middlekid = NULL;
+		OP *lastkid = NULL;
 		int count = 0;
 		int failures = 0;
 		int i;
@@ -1439,8 +1434,8 @@ check_HeUTF8(utf8_key)
                 hash = newHV();
 
                 key = SvPV(utf8_key, klen);
-                if (SvUTF8(utf8_key)) klen *= -1;
-                hv_store(hash, key, klen, newSVpvs("string"), 0);
+                hv_store(hash, key, SvUTF8(utf8_key) ? -klen : klen,
+                    newSVpvs("string"), 0);
                 hv_iterinit(hash);
                 ent = hv_iternext(hash);
                 assert(ent);
Index: gnu/usr.bin/perl/dist/Env/lib/Env.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Env/lib/Env.pm,v
diff -u -p -a -u -p -r1.1.1.3 Env.pm
--- gnu/usr.bin/perl/dist/Env/lib/Env.pm	15 Feb 2023 01:32:56 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Env/lib/Env.pm	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 package Env;
 
-our $VERSION = '1.05';
+our $VERSION = '1.06';
 
 =head1 NAME
 
@@ -75,7 +75,7 @@ Gregor N. Purdy E<lt>F<gregor@focusresea
 =cut
 
 sub import {
-    my ($callpack) = caller(0);
+    my $callpack = caller(0);
     my $pack = shift;
     my @vars = grep /^[\$\@]?[A-Za-z_]\w*$/, (@_ ? @_ : keys(%ENV));
     return unless @vars;
Index: gnu/usr.bin/perl/dist/Exporter/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/Exporter/Changes
diff -N gnu/usr.bin/perl/dist/Exporter/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Exporter/Changes	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,105 @@
+Revision history for Perl extension Exporter.
+
+5.77 Mon January 23 2023
+     - Document non-inheriting as default mechanism
+     - Make Exporter strict and warnings compliant
+
+5.74 Mon January 20 2020
+     - Fix leading spaces in Exporter error message
+     - Switch to github actions for pre-release actions
+     - Point to github repo and issues for support
+
+5.73 Fri September 21 2018
+     - Slight doc patches mostly involving the use of our.
+
+5.72 Tue June 9 2015
+     - rename anonymous list -> array in docs from blead
+
+5.70 Sun Apr 13 2014
+     - Bump for release to CPAN
+
+5.70_01 Wed Apr 9 2014 Todd Rinaldo
+    - perl #  39739 - Exporter::Heavy ignores custom $SIG{__WARN__} handlers
+    - perl # 119673 - Documentation fixes.
+
+5.68 Wed Mar 27 2013 Todd Rinaldo
+    - Fix erroneous INSTALLDIRS on perls < 5.8 - allows one to
+      upgrade Exporter on perl 5.6 again
+
+5.67 Thu Sep 20 2012 Todd Rinaldo
+    - Documentation changes from p5p.
+    - Fix logic to install to site after perl 5.11
+
+5.66 Wed Dec 23 2011 Todd Rinaldo
+    - No changes. Production release after CPAN testers cleared.
+
+5.65_01 Wed Dec 14 2011 Todd Rinaldo
+    - Updaate Exporter from blead. Bump to dev version for release testing.
+    - Remove local $_ from Exporter - The changes in that commit did
+      not necessitate the addition of
+      local  $_.  So the localisation is wasting CPU cycles.  Worse, it
+      causes  bugs in 5.12 and earlier.  (local $_ is always wrong if you
+      don’t control what is in $_ already, because it could be a read-only
+      tied variable.)  Actually, it causes bugs in 5.14-15 still, because
+      it seems that the changes to ‘local $_’ still weren’t sufficient (it
+      still calls FETCH, but not STORE).  That itself needs fixing, but that
+      should not obviate the need for this change, as Exporter has been liv-
+      ing a double life.
+
+5.65 Tue Aug 30 2011 Todd Rinaldo
+    - No changes. Tests clean. Bumping to production release.
+
+5.64_04 Wed Aug 24 2011 Todd Rinaldo
+    - Re-vamp module to work in Git.
+    - Update Makefile.PL with extra META bits.
+    - Point bugs to perl's RT.
+    - Add a README from Exporter.pm perldoc.
+    - Depend on Carp 1.05 now we're assuming a fix from 1.05
+
+5.64_03 Wed Aug 24 2011 (Cumulative)
+    - Fix RT #74472 Exporter.pm blocks Signal handling
+    - Avoid creating @EXPORT_FAIL in every package using Exporter.
+    - Test exported arrays and hashes without using defined()
+    - Carp 1.05 shipped with 5.8.8. Remove work-around for pre 1.05
+
+5.63    Sat Jul 19 2008
+    - fix doc bugs (pointed by Philippe Bricout at
+      CPAN RT #33546)
+    - reconciliate Exporter with Carp older than 1.05
+      (thanks to Anno Siegel, perlbug RT #57079)
+
+5.62    Fri Dec  9 2007
+    - no code change
+    - fix typo in section link
+    - mention Exporter::Easy
+
+5.61    Fri Dec  9 2007
+    - no code change
+    - sync with changes 32596 (fixes by rgs)
+      and 32599 (typo spotted by Matt Kraai)
+
+5.60_01 Thu Dec  6 2007
+    - "use 5.006" in Makefile.PL
+    - no code change
+    - doc patch: new section SEE ALSO (Exporter is not alone)
+    - doc patch: new section Good Practices - mentions
+      "our" and "use vars", "base" and "parent"
+      and advocates against exporting variables
+
+5.60    Sat Mar 10 2007
+    - Bump Exporter's $VERSION (change 30525)
+    - Don't swallow up other warnings in Exporter's test. Remove a needless
+      eval that happened to generate 4 warnings. (change 30531)
+    - Make Exporter::Heavy correctly not warn when exporting a symbol only
+      declared in the export specification. Ensure that the test actually
+      tests this. (change 30529)
+    - added t/use.t and t/pod.t
+
+5.59   Wed Sep 6 2006
+    - Dual life began. (perl-current @ 28789)
+
+5.59    ? Jan 7 2005
+    - Exporter can finally live w/o Carp (change 23768)
+
+5.58    ? Jan 26 2004
+    - Document change 22192 (change 22224)
Index: gnu/usr.bin/perl/dist/Exporter/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Exporter/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Exporter/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Exporter/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,29 @@
+use 5.006;
+use ExtUtils::MakeMaker;
+
+my $EUMM_VERSION = $ExtUtils::MakeMaker::VERSION;
+$EUMM_VERSION =~ s/_//g;
+
+WriteMakefile(
+    NAME         => 'Exporter',
+    VERSION_FROM => 'lib/Exporter.pm',
+    ( $] > 5.011 ) ? () : ( INSTALLDIRS => 'perl' ),    # CPAN sourced versions should now install to site
+    PREREQ_PM => {
+        'Carp' => '1.05',
+    },
+    ABSTRACT_FROM => 'lib/Exporter.pm',
+    ( $EUMM_VERSION >= 6.31 ? ( LICENSE => 'perl_5' ) : () ),
+    dist       => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+    META_MERGE => {
+        recommends => {
+            'Test::Pod'           => 1.18,
+            'Test::Pod::Coverage' => 1.04
+        },
+        resources => {
+            license     => 'http://dev.perl.org/licenses/',
+            bugtracker  => 'https://github.com/Perl/perl5/issues',
+            repository  => 'https://github.com/Perl/perl5/tree/blead/dist/Exporter',
+            MailingList => 'http://lists.perl.org/list/perl5-porters.html',
+        },
+    },
+);
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/Changes
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/Changes,v
diff -u -p -a -u -p -r1.6 Changes
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/Changes	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/Changes	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,19 @@
 Revision history for Perl extension ExtUtils::CBuilder.
 
+0.280238
+
+  Fix:
+
+  - use -isyswithroot option for the CORE directory for the system perl on darwin.
+    The compiler would fail to find EXTERN.h with -I.
+    Came up while working on a fix for the similar issue in
+    https://github.com/Perl/perl5/issues/20362
+
+0.280237 - 2022-05-09
+
+  - when not set to quiet, print commands being run in a usable form.
+    https://github.com/Perl/perl5/pull/19701
+
 0.280236 - 2021-02-12
 
   Fix:
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm,v
diff -u -p -a -u -p -r1.6 CBuilder.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm	21 Feb 2024 15:47:01 -0000
@@ -7,7 +7,7 @@ use Perl::OSType qw/os_type/;
 
 use warnings;
 use strict;
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA;
 
 # We only use this once - don't waste a symbol table entry on it.
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm,v
diff -u -p -a -u -p -r1.6 Base.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm	21 Feb 2024 15:47:01 -0000
@@ -9,7 +9,7 @@ use Text::ParseWords;
 use IPC::Cmd qw(can_run);
 use File::Temp qw(tempfile);
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 
 # More details about C/C++ compilers:
 # http://developers.sun.com/sunstudio/documentation/product/compiler.jsp
@@ -335,10 +335,24 @@ sub _do_link {
   return wantarray ? ($out, @temp_files) : $out;
 }
 
+sub quote_literal {
+  my ($self, $string) = @_;
+
+  if (length $string && $string !~ /[^a-zA-Z0-9,._+@%\/-]/) {
+    return $string;
+  }
+
+  $string =~ s{'}{'\\''}g;
+
+  return "'$string'";
+}
 
 sub do_system {
   my ($self, @cmd) = @_;
-  print "@cmd\n" if !$self->{quiet};
+  if (!$self->{quiet}) {
+    my $full = join ' ', map $self->quote_literal($_), @cmd;
+    print $full . "\n";
+  }
   return !system(@cmd);
 }
 
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm,v
diff -u -p -a -u -p -r1.6 Unix.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use ExtUtils::CBuilder::Base;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Base);
 
 sub link_executable {
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm,v
diff -u -p -a -u -p -r1.6 VMS.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use ExtUtils::CBuilder::Base;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Base);
 
 use File::Spec::Functions qw(catfile catdir);
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm,v
diff -u -p -a -u -p -r1.6 Windows.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm	21 Feb 2024 15:47:01 -0000
@@ -8,7 +8,7 @@ use File::Spec;
 use ExtUtils::CBuilder::Base;
 use IO::File;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Base);
 
 =begin comment
@@ -51,6 +51,22 @@ sub _compiler_type {
 	  : 'GCC');
 }
 
+# native quoting, not shell quoting
+sub quote_literal {
+  my ($self, $string) = @_;
+
+  # some of these characters don't need to be quoted for "native" quoting, but
+  # quote them anyway so they are more likely to make it through cmd.exe
+  if (length $string && $string !~ /[ \t\n\x0b"|<>%]/) {
+    return $string;
+  }
+
+  $string =~ s{(\\*)(?="|\z)}{$1$1}g;
+  $string =~ s{"}{\\"}g;
+
+  return qq{"$string"};
+}
+
 sub split_like_shell {
   # Since Windows will pass the whole command string (not an argument
   # array) to the target program and make the program parse it itself,
@@ -65,10 +81,15 @@ sub split_like_shell {
 sub do_system {
   # See above
   my $self = shift;
-  my $cmd = join(" ",
-		 grep length,
-		 map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a}
-		 grep defined, @_);
+  my $cmd = join ' ',
+    grep length,
+    map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a}
+    grep defined, @_;
+
+  if (!$self->{quiet}) {
+    print $cmd . "\n";
+  }
+  local $self->{quiet} = 1;
   return $self->SUPER::do_system($cmd);
 }
 
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm,v
diff -u -p -a -u -p -r1.6 aix.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 use File::Spec;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub need_prelink { 1 }
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm,v
diff -u -p -a -u -p -r1.6 android.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm	21 Feb 2024 15:47:01 -0000
@@ -6,7 +6,7 @@ use File::Spec;
 use ExtUtils::CBuilder::Platform::Unix;
 use Config;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 # The Android linker will not recognize symbols from
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm,v
diff -u -p -a -u -p -r1.6 cygwin.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use strict;
 use File::Spec;
 use ExtUtils::CBuilder::Platform::Unix;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 # TODO: If a specific exe_file name is requested, if the exe created
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm,v
diff -u -p -a -u -p -r1.6 darwin.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm	21 Feb 2024 15:47:01 -0000
@@ -3,10 +3,14 @@ package ExtUtils::CBuilder::Platform::da
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Platform::Unix;
+use Config;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
+my ($osver) = split /\./, $Config{osvers};
+my $apple_cor = $^X eq "/usr/bin/perl" && $osver >= 18;
+
 sub compile {
   my $self = shift;
   my $cf = $self->{config};
@@ -22,5 +26,18 @@ sub compile {
   $self->SUPER::compile(@_);
 }
 
+sub arg_include_dirs {
+    my $self = shift;
+
+    if ($apple_cor) {
+        my $perl_inc = $self->perl_inc;
+        return map {
+           $_ eq $perl_inc ? ("-iwithsysroot", $_ ) : "-I$_"
+        } @_;
+    }
+    else {
+        return $self->SUPER::arg_include_dirs(@_);
+    }
+}
 
 1;
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm,v
diff -u -p -a -u -p -r1.6 dec_osf.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 use File::Spec;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub link_executable {
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm,v
diff -u -p -a -u -p -r1.6 os2.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use warnings;
 use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub need_prelink { 1 }
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm,v
diff -u -p -a -u -p -r1.6 BCC.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 package ExtUtils::CBuilder::Platform::Windows::BCC;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 
 use strict;
 use warnings;
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm,v
diff -u -p -a -u -p -r1.6 GCC.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 package ExtUtils::CBuilder::Platform::Windows::GCC;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 
 use warnings;
 use strict;
Index: gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm,v
diff -u -p -a -u -p -r1.6 MSVC.pm
--- gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm	21 Feb 2024 15:47:01 -0000
@@ -1,6 +1,6 @@
 package ExtUtils::CBuilder::Platform::Windows::MSVC;
 
-our $VERSION = '0.280236'; # VERSION
+our $VERSION = '0.280238'; # VERSION
 
 use warnings;
 use strict;
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/perlxs.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/perlxs.pod,v
diff -u -p -a -u -p -r1.5 perlxs.pod
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/perlxs.pod	15 Feb 2023 01:36:27 -0000	1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/perlxs.pod	21 Feb 2024 15:47:01 -0000
@@ -1332,6 +1332,46 @@ C<BAR::getit()> for this function.
         OUTPUT:
           timep
 
+A warning will be produced when you create more than one alias to the same
+value. This may be worked around in a backwards compatible way by creating
+multiple defines which resolve to the same value, or with a modern version
+of ExtUtils::ParseXS you can use a symbolic alias, which are denoted with
+a C<< => >> instead of a C<< = >>. For instance you could change the above
+so that the alias section looked like this:
+
+	ALIAS:
+	    FOO::gettime = 1
+	    BAR::getit = 2
+            BAZ::gettime => FOO::gettime
+
+this would have the same effect as this:
+
+	ALIAS:
+	    FOO::gettime = 1
+	    BAR::getit = 2
+            BAZ::gettime = 1
+
+except that the latter will produce warnings during the build process. A
+mechanism that would work in a backwards compatible way with older
+versions of our tool chain would be to do this:
+
+    #define FOO_GETTIME 1
+    #define BAR_GETIT 2
+    #define BAZ_GETTIME 1
+
+    bool_t
+    rpcb_gettime(host,timep)
+          char *host
+          time_t &timep
+	ALIAS:
+	    FOO::gettime = FOO_GETTIME
+	    BAR::getit = BAR_GETIT
+            BAZ::gettime = BAZ_GETTIME
+	INIT:
+	  printf("# ix = %d\n", ix );
+        OUTPUT:
+          timep
+
 =head2 The OVERLOAD: Keyword
 
 Instead of writing an overloaded interface using pure Perl, you
@@ -2369,7 +2409,18 @@ or use the methods given in L<perlcall>.
 =head1 XS VERSION
 
 This document covers features supported by C<ExtUtils::ParseXS>
-(also known as C<xsubpp>) 3.13_01.
+(also known as C<xsubpp>) 3.51
+
+=head1 AUTHOR DIAGNOSTICS
+
+As of version 3.49 certain warnings are disabled by default. While developing
+you can set C<$ENV{AUTHOR_WARNINGS}> to true in your environment or in your
+Makefile.PL, or set C<$ExtUtils::ParseXS::AUTHOR_WARNINGS> to true via code, or
+pass C<< author_warnings=>1 >> into process_file() explicitly.  Currently this will
+enable stricter alias checking but more warnings might be added in the future.
+The kind of warnings this will enable are only helpful to the author of the XS
+file, and the diagnostics produced will not include installation specific
+details so they are only useful to the maintainer of the XS code itself.
 
 =head1 AUTHOR
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm,v
diff -u -p -a -u -p -r1.6 ParseXS.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm	15 Feb 2023 01:36:27 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm	21 Feb 2024 15:47:01 -0000
@@ -11,7 +11,7 @@ use Symbol;
 
 our $VERSION;
 BEGIN {
-  $VERSION = '3.45';
+  $VERSION = '3.51';
   require ExtUtils::ParseXS::Constants; ExtUtils::ParseXS::Constants->VERSION($VERSION);
   require ExtUtils::ParseXS::CountLines; ExtUtils::ParseXS::CountLines->VERSION($VERSION);
   require ExtUtils::ParseXS::Utilities; ExtUtils::ParseXS::Utilities->VERSION($VERSION);
@@ -31,6 +31,7 @@ use ExtUtils::ParseXS::Utilities qw(
   analyze_preprocessor_statements
   set_cond
   Warn
+  WarnHint
   current_line_number
   blurt
   death
@@ -47,7 +48,10 @@ our @EXPORT_OK = qw(
 
 ##############################
 # A number of "constants"
-
+our $DIE_ON_ERROR;
+our $AUTHOR_WARNINGS;
+$AUTHOR_WARNINGS = ($ENV{AUTHOR_WARNINGS} || 0)
+    unless defined $AUTHOR_WARNINGS;
 our ($C_group_rex, $C_arg);
 # Group in C (no support for comments or literals)
 $C_group_rex = qr/ [({\[]
@@ -103,6 +107,8 @@ sub process_file {
     typemap         => [],
     versioncheck    => 1,
     FH              => Symbol::gensym(),
+    die_on_error    => $DIE_ON_ERROR, # if true we die() and not exit() after errors
+    author_warnings    => $AUTHOR_WARNINGS,
     %options,
   );
   $args{except} = $args{except} ? ' TRY' : '';
@@ -133,6 +139,9 @@ sub process_file {
   $self->{WantLineNumbers} = $args{linenumbers};
   $self->{IncludedFiles} = {};
 
+  $self->{die_on_error} = $args{die_on_error};
+  $self->{author_warnings} = $args{author_warnings};
+
   die "Missing required parameter 'filename'" unless $args{filename};
   $self->{filepathname} = $args{filename};
   ($self->{dir}, $self->{filename}) =
@@ -627,7 +636,16 @@ EOF
           $self->print_section();
           $self->death("PPCODE must be last thing") if @{ $self->{line} };
           print "\tLEAVE;\n" if $self->{ScopeThisXSUB};
+          print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+                "#pragma diag_suppress 2111\n",
+                "#endif\n"
+            if $^O eq "hpux";
           print "\tPUTBACK;\n\treturn;\n";
+          print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+                "#pragma diag_default 2111\n",
+                "#endif\n"
+            if $^O eq "hpux";
+
         }
         elsif ($self->check_keyword("CODE")) {
           my $consumed_code = $self->print_section();
@@ -789,6 +807,10 @@ EOF
 #    if (errbuf[0])
 #    Perl_croak(aTHX_ errbuf);
 EOF
+    print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+          "#pragma diag_suppress 2128\n",
+          "#endif\n"
+      if $^O eq "hpux";
 
     if ($xsreturn) {
       print Q(<<"EOF") unless $PPCODE;
@@ -800,6 +822,10 @@ EOF
 #    XSRETURN_EMPTY;
 EOF
     }
+    print "#if defined(__HP_cc) || defined(__HP_aCC)\n",
+          "#pragma diag_default 2128\n",
+          "#endif\n"
+      if $^O eq "hpux";
 
     print Q(<<"EOF");
 #]]
@@ -873,7 +899,7 @@ EOF
        "        (void)$self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n");
     }
 
-    for my $operator (keys %{ $self->{OverloadsThisXSUB} }) {
+    for my $operator (sort keys %{ $self->{OverloadsThisXSUB} }) {
       $self->{Overloaded}->{$self->{Package}} = $self->{Packid};
       my $overload = "$self->{Package}\::($operator";
       push(@{ $self->{InitFileCode} },
@@ -881,7 +907,7 @@ EOF
     }
   } # END 'PARAGRAPH' 'while' loop
 
-  for my $package (keys %{ $self->{Overloaded} }) { # make them findable with fetchmethod
+  for my $package (sort keys %{ $self->{Overloaded} }) { # make them findable with fetchmethod
     my $packid = $self->{Overloaded}->{$package};
     print Q(<<"EOF");
 #XS_EUPXS(XS_${packid}_nil); /* prototype to pass -Wmissing-prototypes */
@@ -905,7 +931,7 @@ MAKE_FETCHMETHOD_WORK
 
   print Q(<<"EOF");
 ##ifdef __cplusplus
-#extern "C"
+#extern "C" {
 ##endif
 EOF
 
@@ -968,7 +994,7 @@ EOF
 #
 EOF
 
-  if (%{ $self->{Overloaded} }) {
+  if (keys %{ $self->{Overloaded} }) {
     # once if any overloads
     print Q(<<"EOF");
 #    /* register the overloading (type 'A') magic */
@@ -976,7 +1002,7 @@ EOF
 #    PL_amagic_generation++;
 ##endif
 EOF
-    for my $package (keys %{ $self->{Overloaded} }) {
+    for my $package (sort keys %{ $self->{Overloaded} }) {
       # once for each package with overloads
       my $fallback = $self->{Fallback}->{$package} || "&PL_sv_undef";
       print Q(<<"EOF");
@@ -1016,6 +1042,9 @@ EOF
 ##endif
 #]]
 #
+##ifdef __cplusplus
+#}
+##endif
 EOF
 
   warn("Please specify prototyping behavior for $self->{filename} (see perlxs manual)\n")
@@ -1310,26 +1339,89 @@ sub get_aliases {
   my ($line) = @_;
   my ($orig) = $line;
 
+  # we use this later for symbolic aliases
+  my $fname = $self->{Packprefix} . $self->{func_name};
+
   # Parse alias definitions
   # format is
-  #    alias = value alias = value ...
+  #    alias = value Pack::alias = value ...
+  # or
+  #    alias => other
+  # or
+  #    alias => Pack::other
+  # or
+  #    Pack::alias => Other::alias
 
-  while ($line =~ s/^\s*([\w:]+)\s*=\s*(\w+)\s*//) {
-    my ($alias, $value) = ($1, $2);
+  while ($line =~ s/^\s*([\w:]+)\s*=(>?)\s*([\w:]+)\s*//) {
+    my ($alias, $is_symbolic, $value) = ($1, $2, $3);
     my $orig_alias = $alias;
 
+    blurt( $self, "Error: In alias definition for '$alias' the value may not"
+                  . " contain ':' unless it is symbolic.")
+        if !$is_symbolic and $value=~/:/;
+
     # check for optional package definition in the alias
     $alias = $self->{Packprefix} . $alias if $alias !~ /::/;
 
+    if ($is_symbolic) {
+      my $orig_value = $value;
+      $value = $self->{Packprefix} . $value if $value !~ /::/;
+      if (defined $self->{XsubAliases}->{$value}) {
+        $value = $self->{XsubAliases}->{$value};
+      } elsif ($value eq $fname) {
+        $value = 0;
+      } else {
+        blurt( $self, "Error: Unknown alias '$value' in symbolic definition for '$orig_alias'");
+      }
+    }
+
     # check for duplicate alias name & duplicate value
-    Warn( $self, "Warning: Ignoring duplicate alias '$orig_alias'")
-      if defined $self->{XsubAliases}->{$alias};
+    my $prev_value = $self->{XsubAliases}->{$alias};
+    if (defined $prev_value) {
+      if ($prev_value eq $value) {
+        Warn( $self, "Warning: Ignoring duplicate alias '$orig_alias'")
+      } else {
+        Warn( $self, "Warning: Conflicting duplicate alias '$orig_alias'"
+                     . " changes definition from '$prev_value' to '$value'");
+        delete $self->{XsubAliasValues}->{$prev_value}{$alias};
+      }
+    }
 
-    Warn( $self, "Warning: Aliases '$orig_alias' and '$self->{XsubAliasValues}->{$value}' have identical values")
-      if $self->{XsubAliasValues}->{$value};
+    # Check and see if this alias results in two aliases having the same
+    # value, we only check non-symbolic definitions as the whole point of
+    # symbolic definitions is to say we want to duplicate the value and
+    # it is NOT a mistake.
+    unless ($is_symbolic) {
+      my @keys= sort keys %{$self->{XsubAliasValues}->{$value}||{}};
+      # deal with an alias of 0, which might not be in the XsubAlias dataset
+      # yet as 0 is the default for the base function ($fname)
+      push @keys, $fname
+        if $value eq "0" and !defined $self->{XsubAlias}{$fname};
+      if (@keys and $self->{author_warnings}) {
+        # We do not warn about value collisions unless author_warnings
+        # are enabled. They aren't helpful to a module consumer, only
+        # the module author.
+        @keys= map { "'$_'" }
+               map { my $copy= $_;
+                     $copy=~s/^$self->{Packprefix}//;
+                     $copy
+                   } @keys;
+        WarnHint( $self,
+                  "Warning: Aliases '$orig_alias' and "
+                  . join(", ", @keys)
+                  . " have identical values of $value"
+                  . ( $value eq "0"
+                      ? " - the base function"
+                      : "" ),
+                  !$self->{XsubAliasValueClashHinted}++
+                  ? "If this is deliberate use a symbolic alias instead."
+                  : undef
+        );
+      }
+    }
 
     $self->{XsubAliases}->{$alias} = $value;
-    $self->{XsubAliasValues}->{$value} = $orig_alias;
+    $self->{XsubAliasValues}->{$value}{$alias}++;
   }
 
   blurt( $self, "Error: Cannot parse ALIAS definitions from '$orig'")
@@ -1800,11 +1892,17 @@ sub fetch_para {
     $self->_process_module_xs_line($1, $2, $3);
   }
 
+  # count how many #ifdef levels we see in this paragraph
+  # decrementing when we see an endif. if we see an elsif
+  # or endif without a corresponding #ifdef then we dont
+  # consider it part of this paragraph.
+  my $if_level = 0;
   for (;;) {
     $self->_maybe_skip_pod;
 
     $self->_maybe_parse_typemap_block;
 
+    my $final;
     if ($self->{lastline} !~ /^\s*#/ # not a CPP directive
         # CPP directives:
         #    ANSI:    if ifdef ifndef elif else endif define undef
@@ -1814,7 +1912,7 @@ sub fetch_para {
         #   others:    ident (gcc notes that some cpps have this one)
         || $self->{lastline} =~ /^\#[ \t]*
                                   (?:
-                                        (?:if|ifn?def|elif|else|endif|
+                                        (?:if|ifn?def|elif|else|endif|elifn?def|
                                            define|undef|pragma|error|
                                            warning|line\s+\d+|ident)
                                         \b
@@ -1825,6 +1923,31 @@ sub fetch_para {
     )
     {
       last if $self->{lastline} =~ /^\S/ && @{ $self->{line} } && $self->{line}->[-1] eq "";
+      if ($self->{lastline}=~/^#[ \t]*(if|ifn?def|elif|else|endif|elifn?def)\b/) {
+        my $type = $1; # highest defined capture buffer, "if" for any if like condition
+        if ($type =~ /^if/) {
+          if (@{$self->{line}}) {
+            # increment level
+            $if_level++;
+          } else {
+            $final = 1;
+          }
+        } elsif ($type eq "endif") {
+          if ($if_level) { # are we in an if that was started in this paragraph?
+            $if_level--;   # yep- so decrement to end this if block
+          } else {
+            $final = 1;
+          }
+        } elsif (!$if_level) {
+          # not in an #ifdef from this paragraph, thus
+          # this directive should not be part of this paragraph.
+          $final = 1;
+        }
+      }
+      if ($final and @{$self->{line}}) {
+        return 1;
+      }
+
       push(@{ $self->{line} }, $self->{lastline});
       push(@{ $self->{line_no} }, $self->{lastline_no});
     }
@@ -1838,6 +1961,9 @@ sub fetch_para {
 
     chomp $self->{lastline};
     $self->{lastline} =~ s/^\s+$//;
+    if ($final) {
+      last;
+    }
   }
 
   # Nuke trailing "line" entries until there's one that's not empty
@@ -2043,8 +2169,9 @@ sub generate_output {
     (my $ntype = $type) =~ s/\s*\*/Ptr/g;
     $ntype =~ s/\(\)//g;
     (my $subtype = $ntype) =~ s/(?:Array)?(?:Ptr)?$//;
+    $type =~ tr/:/_/ unless $self->{RetainCplusplusHierarchicalTypes};
 
-    my $eval_vars = {%$argsref, subtype => $subtype, ntype => $ntype, arg => $arg};
+    my $eval_vars = {%$argsref, subtype => $subtype, ntype => $ntype, arg => $arg, type => $type };
     my $expr = $outputmap->cleaned_code;
     if ($expr =~ /DO_ARRAY_ELEM/) {
       my $subtypemap = $typemaps->get_typemap(ctype => $subtype);
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pod,v
diff -u -p -a -u -p -r1.1.1.3 ParseXS.pod
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pod	13 Feb 2019 21:11:26 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pod	21 Feb 2024 15:47:01 -0000
@@ -19,6 +19,7 @@ ExtUtils::ParseXS - converts Perl XS cod
                       linenumbers => 1,
                       optimize => 1,
                       prototypes => 1,
+                      die_on_error => 0,
                     );
 
   # Legacy non-OO interface using a singleton:
@@ -118,6 +119,15 @@ Default is true.
 =item B<s>
 
 I<Maintainer note:> I have no clue what this does.  Strips function prefixes?
+
+=item B<die_on_error>
+
+Normally ExtUtils::ParseXS will terminate the program with an C<exit(1)> after
+printing the details of the exception to STDERR via (warn). This can be awkward
+when it is used programmatically and not via xsubpp, so this option can be used
+to cause it to die instead by providing a true value. When not provided this
+defaults to the value of C<$ExtUtils::ParseXS::DIE_ON_ERROR> which in turn
+defaults to false.
 
 =back
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm,v
diff -u -p -a -u -p -r1.5 Typemaps.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm	15 Feb 2023 01:36:27 -0000	1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 require ExtUtils::ParseXS;
 require ExtUtils::ParseXS::Constants;
@@ -378,7 +378,7 @@ sub remove_inputmap {
   return $self->_remove($xstype, $self->{input_section}, $self->{input_lookup});
 }
 
-=head2 remove_inputmap
+=head2 remove_outputmap
 
 Removes an C<OUTPUT> entry from the typemap.
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm,v
diff -u -p -a -u -p -r1.6 Constants.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm	15 Feb 2023 01:36:28 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use Symbol;
 
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm,v
diff -u -p -a -u -p -r1.6 CountLines.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm	15 Feb 2023 01:36:28 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm	21 Feb 2024 15:47:01 -0000
@@ -1,7 +1,7 @@
 package ExtUtils::ParseXS::CountLines;
 use strict;
 
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 our $SECTION_END_MARKER;
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm,v
diff -u -p -a -u -p -r1.6 Eval.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm	15 Feb 2023 01:36:28 -0000	1.6
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
 use strict;
 use warnings;
 
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm,v
diff -u -p -a -u -p -r1.12 Utilities.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm	15 Feb 2023 01:36:28 -0000	1.12
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use Exporter;
 use File::Spec;
 use ExtUtils::ParseXS::Constants ();
 
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 our (@ISA, @EXPORT_OK);
 @ISA = qw(Exporter);
@@ -21,6 +21,7 @@ our (@ISA, @EXPORT_OK);
   analyze_preprocessor_statements
   set_cond
   Warn
+  WarnHint
   current_line_number
   blurt
   death
@@ -654,18 +655,85 @@ sub current_line_number {
 
 =item * Purpose
 
+Print warnings with line number details at the end.
+
 =item * Arguments
 
+List of text to output.
+
 =item * Return Value
 
+None.
+
 =back
 
 =cut
 
 sub Warn {
+  my ($self)=shift;
+  $self->WarnHint(@_,undef);
+}
+
+=head2 C<WarnHint()>
+
+=over 4
+
+=item * Purpose
+
+Prints warning with line number details. The last argument is assumed
+to be a hint string.
+
+=item * Arguments
+
+List of strings to warn, followed by one argument representing a hint.
+If that argument is defined then it will be split on newlines and output
+line by line after the main warning.
+
+=item * Return Value
+
+None.
+
+=back
+
+=cut
+
+sub WarnHint {
+  warn _MsgHint(@_);
+}
+
+=head2 C<_MsgHint()>
+
+=over 4
+
+=item * Purpose
+
+Constructs an exception message with line number details. The last argument is
+assumed to be a hint string.
+
+=item * Arguments
+
+List of strings to warn, followed by one argument representing a hint.
+If that argument is defined then it will be split on newlines and concatenated
+line by line (parenthesized) after the main message.
+
+=item * Return Value
+
+The constructed string.
+
+=back
+
+=cut
+
+
+sub _MsgHint {
   my $self = shift;
+  my $hint = pop;
   my $warn_line_number = $self->current_line_number();
-  print STDERR "@_ in $self->{filename}, line $warn_line_number\n";
+  my $ret = join("",@_) . " in $self->{filename}, line $warn_line_number\n";
+  if ($hint) {
+    $ret .= "    ($_)\n" for split /\n/, $hint;
+  }
+  return $ret;
 }
 
 =head2 C<blurt()>
@@ -703,8 +771,13 @@ sub blurt {
 =cut
 
 sub death {
-  my $self = shift;
-  $self->Warn(@_);
+  my ($self) = (@_);
+  my $message = _MsgHint(@_,"");
+  if ($self->{die_on_error}) {
+    die $message;
+  } else {
+    warn $message;
+  }
   exit 1;
 }
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm,v
diff -u -p -a -u -p -r1.5 Cmd.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm	15 Feb 2023 01:36:28 -0000	1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 use ExtUtils::Typemaps;
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm,v
diff -u -p -a -u -p -r1.5 InputMap.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm	15 Feb 2023 01:36:28 -0000	1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm,v
diff -u -p -a -u -p -r1.5 OutputMap.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm	15 Feb 2023 01:36:28 -0000	1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm	21 Feb 2024 15:47:01 -0000
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm,v
diff -u -p -a -u -p -r1.5 Type.pm
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm	15 Feb 2023 01:36:28 -0000	1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 require ExtUtils::Typemaps;
 
-our $VERSION = '3.45';
+our $VERSION = '3.51';
 
 =head1 NAME
 
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/001-basic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/001-basic.t,v
diff -u -p -a -u -p -r1.1.1.4 001-basic.t
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/001-basic.t	15 Feb 2023 01:32:55 -0000	1.1.1.4
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/001-basic.t	21 Feb 2024 15:47:01 -0000
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 
 use strict;
-use Test::More tests => 18;
+use Test::More tests => 30;
 use Config;
 use DynaLoader;
 use ExtUtils::CBuilder;
@@ -15,7 +15,10 @@ require_ok( 'ExtUtils::ParseXS' );
 chdir('t') if -d 't';
 push @INC, '.';
 
-use Carp; $SIG{__WARN__} = \&Carp::cluck;
+$ExtUtils::ParseXS::DIE_ON_ERROR = 1;
+$ExtUtils::ParseXS::AUTHOR_WARNINGS = 1;
+
+use Carp; #$SIG{__WARN__} = \&Carp::cluck;
 
 # The linker on some platforms doesn't like loading libraries using relative
 # paths. Android won't find relative paths, and system perl on macOS will
@@ -91,6 +94,7 @@ is( $seen, 1, "Line numbers created in o
     local $/ = undef;
     seek($IN, 0, 0);
     my $filecontents = <$IN>;
+    $filecontents =~ s/^#if defined\(__HP_cc\).*\n#.*\n#endif\n//gm;
     my $good_T_BOOL_re =
 qr|\QXS_EUPXS(XS_XSTest_T_BOOL)\E
 .+?
@@ -188,6 +192,182 @@ my $stderr = PrimitiveCapture::capture_s
 });
 like $stderr, '/No INPUT definition/', "Exercise typemap error";
 }
+#####################################################################
+
+{ # fourth block: https://github.com/Perl/perl5/issues/19661
+  my $pxs = ExtUtils::ParseXS->new;
+  tie *FH, 'Foo';
+  my ($stderr, $filename);
+  {
+    $filename = 'XSFalsePositive.xs';
+    $stderr = PrimitiveCapture::capture_stderr(sub {
+      $pxs->process_file(filename => $filename, output => \*FH, prototypes => 1);
+    });
+    TODO: {
+      local $TODO = 'GH 19661';
+      unlike $stderr,
+        qr/Warning: duplicate function definition 'do' detected in \Q$filename\E/,
+        "No 'duplicate function definition' warning observed in $filename";
+    }
+  }
+  {
+    $filename = 'XSFalsePositive2.xs';
+    $stderr = PrimitiveCapture::capture_stderr(sub {
+      $pxs->process_file(filename => $filename, output => \*FH, prototypes => 1);
+    });
+    TODO: {
+      local $TODO = 'GH 19661';
+      unlike $stderr,
+        qr/Warning: duplicate function definition 'do' detected in \Q$filename\E/,
+        "No 'duplicate function definition' warning observed in $filename";
+      }
+  }
+}
+
+#####################################################################
+
+{ # tight cpp directives
+  my $pxs = ExtUtils::ParseXS->new;
+  tie *FH, 'Foo';
+  my $stderr = PrimitiveCapture::capture_stderr(sub { eval {
+    $pxs->process_file(
+      filename => 'XSTightDirectives.xs',
+      output => \*FH,
+      prototypes => 1);
+  } or warn $@ });
+  my $content = tied(*FH)->{buf};
+  my $count = 0;
+  $count++ while $content=~/^XS_EUPXS\(XS_My_do\)\n\{/mg;
+  is $stderr, undef, "No error expected from TightDirectives.xs";
+  is $count, 2, "Saw XS_MY_do definition the expected number of times";
+}
+
+{ # Alias check
+  my $pxs = ExtUtils::ParseXS->new;
+  tie *FH, 'Foo';
+  my $stderr = PrimitiveCapture::capture_stderr(sub {
+    $pxs->process_file(
+      filename => 'XSAlias.xs',
+      output => \*FH,
+      prototypes => 1);
+  });
+  my $content = tied(*FH)->{buf};
+  my $count = 0;
+  $count++ while $content=~/^XS_EUPXS\(XS_My_do\)\n\{/mg;
+  is $stderr,
+    "Warning: Aliases 'pox' and 'dox', 'lox' have"
+    . " identical values of 1 in XSAlias.xs, line 9\n"
+    . "    (If this is deliberate use a symbolic alias instead.)\n"
+    . "Warning: Conflicting duplicate alias 'pox' changes"
+    . " definition from '1' to '2' in XSAlias.xs, line 10\n"
+    . "Warning: Aliases 'docks' and 'dox', 'lox' have"
+    . " identical values of 1 in XSAlias.xs, line 11\n"
+    . "Warning: Aliases 'xunx' and 'do' have identical values"
+    . " of 0 - the base function in XSAlias.xs, line 13\n",
+    "Saw expected warnings from XSAlias.xs in AUTHOR_WARNINGS mode";
+
+  my $expect = quotemeta(<<'EOF_CONTENT');
+         cv = newXSproto_portable("My::dachs", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::do", XS_My_do, file, "$");
+         XSANY.any_i32 = 0;
+         cv = newXSproto_portable("My::docks", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::dox", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::lox", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::pox", XS_My_do, file, "$");
+         XSANY.any_i32 = 2;
+         cv = newXSproto_portable("My::xukes", XS_My_do, file, "$");
+         XSANY.any_i32 = 0;
+         cv = newXSproto_portable("My::xunx", XS_My_do, file, "$");
+         XSANY.any_i32 = 0;
+EOF_CONTENT
+  $expect=~s/(?:\\[ ])+/\\s+/g;
+  $expect=qr/$expect/;
+  like $content, $expect, "Saw expected alias initialization";
+
+  #diag $content;
+}
+{ # Alias check with no dev warnings.
+  my $pxs = ExtUtils::ParseXS->new;
+  tie *FH, 'Foo';
+  my $stderr = PrimitiveCapture::capture_stderr(sub {
+    $pxs->process_file(
+      filename => 'XSAlias.xs',
+      output => \*FH,
+      prototypes => 1,
+      author_warnings => 0);
+  });
+  my $content = tied(*FH)->{buf};
+  my $count = 0;
+  $count++ while $content=~/^XS_EUPXS\(XS_My_do\)\n\{/mg;
+  is $stderr,
+    "Warning: Conflicting duplicate alias 'pox' changes"
+    . " definition from '1' to '2' in XSAlias.xs, line 10\n",
+    "Saw expected warnings from XSAlias.xs";
+
+  my $expect = quotemeta(<<'EOF_CONTENT');
+         cv = newXSproto_portable("My::dachs", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::do", XS_My_do, file, "$");
+         XSANY.any_i32 = 0;
+         cv = newXSproto_portable("My::docks", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::dox", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::lox", XS_My_do, file, "$");
+         XSANY.any_i32 = 1;
+         cv = newXSproto_portable("My::pox", XS_My_do, file, "$");
+         XSANY.any_i32 = 2;
+         cv = newXSproto_portable("My::xukes", XS_My_do, file, "$");
+         XSANY.any_i32 = 0;
+         cv = newXSproto_portable("My::xunx", XS_My_do, file, "$");
+         XSANY.any_i32 = 0;
+EOF_CONTENT
+  $expect=~s/(?:\\[ ])+/\\s+/g;
+  $expect=qr/$expect/;
+  like $content, $expect, "Saw expected alias initialization";
+
+  #diag $content;
+}
+{
+    my $file = $INC{"ExtUtils/ParseXS.pm"};
+    $file=~s!ExtUtils/ParseXS\.pm\z!perlxs.pod!;
+    open my $fh, "<", $file
+        or die "Failed to open '$file' for read:$!";
+    my $pod_version = "";
+    while (defined(my $line= readline($fh))) {
+        if ($line=~/\(also known as C<xsubpp>\)\s+(\d+\.\d+)/) {
+            $pod_version = $1;
+            last;
+        }
+    }
+    close $fh;
+    ok($pod_version, "Found the version from perlxs.pod");
+    is($pod_version, $ExtUtils::ParseXS::VERSION,
+        "The version in perlxs.pod should match the version of ExtUtils::ParseXS");
+}
+
+{
+    my $pxs = ExtUtils::ParseXS->new;
+    tie *FH, 'Foo';
+    my $exception;
+    my $stderr = PrimitiveCapture::capture_stderr(sub {
+        eval {
+            $pxs->process_file(
+                filename => "XSNoMap.xs",
+                output => \*FH,
+               );
+            1;
+        } or $exception = $@;
+    });
+    is($stderr, undef, "should fail to parse");
+    like($exception, qr/Could not find a typemap for C type 'S \*'/,
+         "check we throw rather than trying to deref '2'");
+}
+
 #####################################################################
 
 sub Foo::TIEHANDLE { bless {}, 'Foo' }
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/002-more.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/002-more.t,v
diff -u -p -a -u -p -r1.1.1.5 002-more.t
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/002-more.t	15 Feb 2023 01:32:55 -0000	1.1.1.5
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/002-more.t	21 Feb 2024 15:47:01 -0000
@@ -19,7 +19,7 @@ ExtUtils::ParseXS->import('process_file'
 chdir 't' if -d 't';
 push @INC, '.';
 
-use Carp; $SIG{__WARN__} = \&Carp::cluck;
+use Carp; #$SIG{__WARN__} = \&Carp::cluck;
 
 # See the comments about this in 001-basics.t
 @INC = map { File::Spec->rel2abs($_) } @INC;
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/003-usage.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/003-usage.t,v
diff -u -p -a -u -p -r1.1.1.4 003-usage.t
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/003-usage.t	15 Feb 2023 01:32:55 -0000	1.1.1.4
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/003-usage.t	21 Feb 2024 15:47:01 -0000
@@ -20,7 +20,7 @@ require_ok( 'ExtUtils::ParseXS' );
 chdir('t') if -d 't';
 push @INC, '.';
 
-use Carp; $SIG{__WARN__} = \&Carp::cluck;
+use Carp; #$SIG{__WARN__} = \&Carp::cluck;
 
 # See the comments about this in 001-basics.t
 @INC = map { File::Spec->rel2abs($_) } @INC;
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSAlias.xs
===================================================================
RCS file: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSAlias.xs
diff -N gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSAlias.xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSAlias.xs	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,19 @@
+MODULE = My PACKAGE = My
+
+void
+do(dbh)
+   SV *dbh
+ALIAS:
+    dox = 1
+    lox => dox
+    pox = 1
+    pox = 2
+    docks = 1
+    dachs => lox
+    xunx = 0
+    xukes => do
+CODE:
+{
+   int x;
+   ++x;
+}
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive.xs
===================================================================
RCS file: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive.xs
diff -N gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive.xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive.xs	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,23 @@
+MODULE = My PACKAGE = My
+
+#ifdef MYDEF123
+
+void
+do(dbh)
+   SV *dbh
+CODE:
+{
+   int x;
+   ++x;
+}
+
+#endif
+
+void
+do(dbh)
+   SV *dbh
+CODE:
+{
+   int x;
+   ++x;
+}
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive2.xs
===================================================================
RCS file: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive2.xs
diff -N gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive2.xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSFalsePositive2.xs	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,23 @@
+MODULE = My PACKAGE = My
+
+#ifdef MYDEF123
+
+void
+do(xdbh)
+   SV *xdbh
+CODE:
+{
+   int x;
+   ++x;
+}
+
+#endif
+
+void
+do(dbh)
+   SV *dbh
+CODE:
+{
+   int x;
+   ++x;
+}
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSMore.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSMore.xs,v
diff -u -p -a -u -p -r1.1.1.3 XSMore.xs
--- gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSMore.xs	15 Feb 2023 01:32:55 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSMore.xs	21 Feb 2024 15:47:01 -0000
@@ -30,6 +30,10 @@ This parts are ignored.
 #  define PERL_UNUSED_VAR(x) ((void)x)
 #endif
 
+/* Newx was introduced in 5.8.8, would also be in ppport.h */
+#ifndef Newx
+#  define Newx(v,n,t)                    New(0,v,n,t)
+#endif
 
 
 STATIC void
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSNoMap.xs
===================================================================
RCS file: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSNoMap.xs
diff -N gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSNoMap.xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSNoMap.xs	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,16 @@
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+typedef struct { int a; } S;
+
+static void
+xsnomap_unknown(S* p) {
+}
+
+MODULE = XSNoMap		PACKAGE = XSNoMap	PREFIX = xsnomap_
+
+PROTOTYPES: DISABLE
+
+void
+xsnomap_unknown(S *arg)
Index: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSTightDirectives.xs
===================================================================
RCS file: gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSTightDirectives.xs
diff -N gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSTightDirectives.xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/ExtUtils-ParseXS/t/XSTightDirectives.xs	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,21 @@
+MODULE = My PACKAGE = My
+
+#ifdef MYDEF123
+void
+do(dbh)
+   SV *dbh
+CODE:
+{
+   int x;
+   ++x;
+}
+#else
+void
+do(dbh)
+   SV *dbh
+CODE:
+{
+   int x;
+   ++x;
+}
+#endif
Index: gnu/usr.bin/perl/dist/Filter-Simple/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/Filter-Simple/Changes
diff -N gnu/usr.bin/perl/dist/Filter-Simple/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Filter-Simple/Changes	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,158 @@
+Revision history for Perl extension Filter::Simple
+
+0.01  Tue Sep 19 20:18:44 2000
+	- original version; created by h2xs 1.18
+
+0.01	Tue Sep 26 09:30:14 2000
+
+	- Changed module name to Filter::Simple
+
+
+0.60	Wed May  2 07:38:18 2001
+
+	- Fixed POD nit (thanks Dean)
+
+	- Added optional second argument to import to allow
+	  terminator to be changed (thanks Brad)
+
+	- Fixed bug when empty filtered text was appended to (thanks Brad)
+
+	- Added FILTER as the normal mechanism for specifying filters
+
+
+0.61	Mon Sep  3 08:25:21 2001
+
+	- Added a real test suite (thanks Jarkko)
+
+	- Changed licence to facilitate inclusion in
+	  core distribution
+
+	- Added documentation for using F::S and Exporter together
+
+
+0.70	Wed Nov 14 23:36:18 2001
+
+	- Added FILTER_ONLY for fine-grained filtering of code,
+	  strings, or regexes
+
+	- Fixed document snafu regarding optional terminators
+
+	- Fixed bug so that FILTER now receives *all* import args
+	  (i.e. including the class name in $_[0])
+
+	- Allowed default terminator to allow comments embedded in it
+	  (thanks, Christian) and to handle __DATA__ and __END__
+
+	- Fixed handling of __DATA__ and *DATA
+
+
+0.75	Fri Nov 16 14:36:07 2001
+
+	- Corified tests (thanks Jarkko)
+
+	- Added automatic preservation of existing &import subroutines
+
+	- Added automatic preservation of Exporter semantics 
+
+
+0.76	Fri Nov 16 15:08:42 2001
+
+	- Modified call to explicit &import so as to be invoked in original 
+	  call context
+
+
+0.77	Sat Nov 24 06:48:47 2001
+
+	- Re-allowed user-defined terminators to be regexes
+
+
+0.78	Fri May 17 09:38:56 2002
+
+	- Re-corified test modules in line with Jarkko's new scheme
+
+	- Various POD nits unknitted (thanks Autrijus)
+
+	- Added the missing DotsForArrows.pm demo file (thanks Autrijus)
+
+	- Added support for Perl 5.005
+
+	- added prereq for Text::Balanced in Makefile.PL
+
+	- Added note about use of /m flag when using ^ or $ in filter regexes
+
+0.79    Sat Sep 20 21:56:24 2003
+
+        - Fixed tests to use t/lib modules so F::S is testable without
+          a previous version of F::S installed. (schwern)
+
+0.80    Sun May 29 23:19:54 2005
+
+    - Added Sarathy's patch for \r\n newlinery (thanks Jarkko)
+
+    - Added recognition of comments as whitespace (thanks Jeff)
+    
+    - Added @components variable (thanks Dean)
+
+    - Fixed handling of vars in FILTER_ONLY code=>... (thanks Lasse)
+
+    - Fixed spurious extra filter at end of file (thanks Dean)
+
+    - Added INSTALLDIRS=>core to Makefile.PL
+
+    
+0.82    Mon Jun 27 02:31:06 GMT 2005
+    
+    - Fixed INSTALLDIRS=>perl in Makefile.PL (thanks all)
+
+    - Fixed other problems caused by de-schwernification
+
+
+0.83    Sat Oct 18 18:51:51 CET 2008
+    
+    - Updated contact details: Maintained by the Perl5-Porters.
+    - Some tiny distribution fixes.
+
+
+0.84    Tue Jan  6 12:58:12 CET 2009
+
+    - Explicit dependency on Text::Balanced 1.97 because that fixed
+      a problem with HERE-docs. (RT #27326)
+
+0.85    Sun Sep  5 16:03:00 CET 2010
+
+    - Port changes from core: Remove unnecessary PERL_CORE check
+      from tests.
+
+0.86
+    - Never released to CPAN (only part of the perl core 5.14.0)
+
+0.87    Fri May 20 20:00:00 CET 2011
+
+    - Port changes from core: Whitespace fix that is significant for
+      POD correctness.
+
+0.88    Mon Dec 19 18:26:00 CET 2011
+
+    - [perl #92436] Make Filter::Simple match variables better
+      (Father Chrysostomos)
+
+    - [perl #92436] Filter::Simple can’t find end of POD
+      (Father Chrysostomos)
+
+0.91    Fri Mar  7 08:30:00 CET 2014
+
+    - Various small documentation fixes.
+
+    - Swap out base.pm use for parent.pm.
+
+0.94    Thu Aug  3 18:00:00 CET 2017
+
+    - Remove use of deprecated \C regex feature.
+
+    - Filter::Simple was erroneously signalling eof if it encountered a
+      ‘no MyFilter’ right after ‘use’:
+        use MyFilter;
+        no MyFilter;
+      In this case it should simply not filter anything.
+
+
Index: gnu/usr.bin/perl/dist/Filter-Simple/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Filter-Simple/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Filter-Simple/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Filter-Simple/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,16 @@
+require 5.006; # uses 'our'
+use strict;
+use ExtUtils::MakeMaker;
+WriteMakefile(
+    'NAME'          => 'Filter::Simple',
+    'VERSION_FROM'  => 'lib/Filter/Simple.pm',
+    'INSTALLDIRS'   => 'perl',
+    'LICENSE'       => 'perl_5',
+    'INSTALLDIRS'   => ( $] < 5.011 ? 'perl' : 'site' ),
+    'ABSTRACT_FROM' => 'lib/Filter/Simple.pm',
+    'AUTHOR'        => 'Damian Conway',
+    'PREREQ_PM'     => {
+        'Text::Balanced'     => '1.97',
+        'Filter::Util::Call' => 0,
+    },
+);
Index: gnu/usr.bin/perl/dist/FindBin/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/FindBin/Changes
diff -N gnu/usr.bin/perl/dist/FindBin/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/FindBin/Changes	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,7 @@
+Revision history for Perl dual life module FindBin.
+
+1.53 2023-01-23
+ - Update bug reporting location.
+
+1.52 2020-12-10
+ - Initial release to CPAN as a dual life module.
Index: gnu/usr.bin/perl/dist/FindBin/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/FindBin/Makefile.PL
diff -N gnu/usr.bin/perl/dist/FindBin/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/FindBin/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,41 @@
+use strict;
+use warnings;
+
+use 5.006;
+use ExtUtils::MakeMaker;
+
+my %WriteMakefile_args = (
+    'NAME'             => 'FindBin',
+    'VERSION_FROM'     => 'lib/FindBin.pm',
+    'ABSTRACT_FROM'    => 'lib/FindBin.pm',
+    'LICENSE'          => 'perl_5',
+    'INSTALLDIRS'      => ($] >= '5.011' ? 'site' : 'perl'),
+    'MIN_PERL_VERSION' => '5.006',
+    'PREREQ_PM'        => {
+        'Exporter'       => '0',
+        'Carp'           => '0',
+        'Cwd'            => '0',
+        'File::Basename' => '0',
+        'File::Spec'     => '0',
+    },
+    'dist'       => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+    'META_MERGE' => {
+        'meta-spec'      => { 'version' => 2 },
+        'dynamic_config' => 0,
+        'resources'      => {
+            'license'    => ['http://dev.perl.org/licenses/'],
+            'bugtracker' => { 'web' => 'https://github.com/perl/perl5/issues' },
+            'repository' => {
+                'type' => 'git',
+                'url'  => 'https://github.com/perl/perl5.git',
+                'web'  => 'https://github.com/perl/perl5',
+            },
+        }
+    },
+);
+
+delete $WriteMakefile_args{LICENSE}          unless eval { ExtUtils::MakeMaker->VERSION('6.31') };
+delete $WriteMakefile_args{META_MERGE}       unless eval { ExtUtils::MakeMaker->VERSION('6.46') };
+delete $WriteMakefile_args{MIN_PERL_VERSION} unless eval { ExtUtils::MakeMaker->VERSION('6.48') };
+
+WriteMakefile(%WriteMakefile_args);
Index: gnu/usr.bin/perl/dist/I18N-LangTags/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/I18N-LangTags/Makefile.PL
diff -N gnu/usr.bin/perl/dist/I18N-LangTags/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/I18N-LangTags/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,27 @@
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+
+WriteMakefile(
+    'NAME'	    => 'I18N::LangTags',
+    'VERSION_FROM'  => 'lib/I18N/LangTags.pm', # finds $VERSION
+    'ABSTRACT_FROM' => 'lib/I18N/LangTags.pm', # 
+    'dist'          => { COMPRESS => 'gzip -6f', SUFFIX => 'gz', },
+    'PREREQ_PM'     => {	
+                         $^O =~ m/Win32/i ? (
+			    'Win32::Locale' => 0.01,
+					   ) : (),
+	               },
+    'INSTALLDIRS'   => ( $] < 5.011 ? 'perl' : 'site' ),
+);
+
+package MY;
+
+sub libscan
+{ # Determine things that should *not* be installed
+    my($self, $path) = @_;
+    return '' if $path =~ m/~/;
+    $path;
+}
+
+__END__
Index: gnu/usr.bin/perl/dist/I18N-LangTags/lib/I18N/LangTags/List.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/I18N-LangTags/lib/I18N/LangTags/List.pm,v
diff -u -p -a -u -p -r1.4 List.pm
--- gnu/usr.bin/perl/dist/I18N-LangTags/lib/I18N/LangTags/List.pm	13 Feb 2019 21:15:20 -0000	1.4
+++ gnu/usr.bin/perl/dist/I18N-LangTags/lib/I18N/LangTags/List.pm	21 Feb 2024 15:47:01 -0000
@@ -4,7 +4,7 @@ package I18N::LangTags::List;
 #  Time-stamp: "2004-10-06 23:26:21 ADT"
 use strict;
 our (%Name, %Is_Disrec, $Debug);
-our $VERSION = '0.40';
+our $VERSION = '0.41';
 # POD at the end.
 
 #----------------------------------------------------------------------
@@ -353,9 +353,9 @@ eq Zend
 eq Azeri
 
 Notable forms:
-{az-Arab} Azerbaijani in Arabic script;
-{az-Cyrl} Azerbaijani in Cyrillic script;
-{az-Latn} Azerbaijani in Latin script.
+{az-arab} Azerbaijani in Arabic script;
+{az-cyrl} Azerbaijani in Cyrillic script;
+{az-latn} Azerbaijani in Latin script.
 
 =item {ban} : Balinese
 
@@ -473,8 +473,8 @@ eq Nyanja.  eq Chinyanja.
 
 Many forms are mutually un-intelligible in spoken media.
 Notable forms:
-{zh-Hans} Chinese, in simplified script;
-{zh-Hant} Chinese, in traditional script;
+{zh-hans} Chinese, in simplified script;
+{zh-hant} Chinese, in traditional script;
 {zh-tw} Taiwan Chinese;
 {zh-cn} PRC Chinese;
 {zh-sg} Singapore Chinese;
@@ -1370,8 +1370,8 @@ NOT Scots Gaelic!
 eq Serb.  NOT Sorbian.
 
 Notable forms:
-{sr-Cyrl} : Serbian in Cyrillic script;
-{sr-Latn} : Serbian in Latin script.
+{sr-cyrl} : Serbian in Cyrillic script;
+{sr-latn} : Serbian in Latin script.
 
 =item {srr} : Serer
 
@@ -1612,8 +1612,8 @@ Not a tag for normal use.
 eq E<Ouml>zbek
 
 Notable forms:
-{uz-Cyrl} Uzbek in Cyrillic script;
-{uz-Latn} Uzbek in Latin script.
+{uz-cyrl} Uzbek in Cyrillic script;
+{uz-latn} Uzbek in Latin script.
 
 =item {vai} : Vai
 
Index: gnu/usr.bin/perl/dist/I18N-LangTags/t/05_main.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/I18N-LangTags/t/05_main.t,v
diff -u -p -a -u -p -r1.1.1.2 05_main.t
--- gnu/usr.bin/perl/dist/I18N-LangTags/t/05_main.t	25 Mar 2013 20:08:36 -0000	1.1.1.2
+++ gnu/usr.bin/perl/dist/I18N-LangTags/t/05_main.t	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,5 @@
 use strict;
-use Test::More tests => 64;
+use Test::More tests => 67;
 BEGIN {use_ok('I18N::LangTags', ':ALL');}
 
 note("Perl v$], I18N::LangTags v$I18N::LangTags::VERSION");
@@ -25,20 +25,36 @@ foreach (['', 0],
     $note = $note ? " # $note" : '';
     is(is_language_tag($tag), $expect, "is_language_tag('$tag')$note");
 }
-is(same_language_tag('x-borg-prot5123', 'i-BORG-Prot5123'), 1);
-is(same_language_tag('en', 'en-us'), 0);
+foreach (
+    [ [ 'x-borg-prot5123', 'i-BORG-Prot5123' ], 1],
+    [ [ 'en', 'en-us' ], 0],
+) {
+    my ($tags, $expect, $note) = @$_;
+    $note = $note ? " # $note" : '';
+    is(same_language_tag(@{$tags}), $expect, "same_language_tag('@{$tags}')$note");
+}
 
-is(similarity_language_tag('en-ca', 'fr-ca'), 0);
-is(similarity_language_tag('en-ca', 'en-us'), 1);
-is(similarity_language_tag('en-us-southern', 'en-us-western'), 2);
-is(similarity_language_tag('en-us-southern', 'en-us'), 2);
-
-ok grep $_ eq 'hi', panic_languages('kok');
-ok grep $_ eq 'en', panic_languages('x-woozle-wuzzle');
-ok ! grep $_ eq 'mr', panic_languages('it');
-ok grep $_ eq 'es', panic_languages('it');
-ok grep $_ eq 'it', panic_languages('es');
+foreach (
+    [ [ 'en-ca', 'fr-ca' ], 0 ],
+    [ [ 'en-ca', 'en-us' ], 1 ],
+    [ [ 'en-us-southern', 'en-us-western' ], 2 ],
+    [ [ 'en-us-southern', 'en-us' ], 2 ],
+) {
+    my ($tags, $expect, $note) = @$_;
+    $note = $note ? " # $note" : '';
+    is(similarity_language_tag(@{$tags}), $expect, "similarity_language_tag('@{$tags}')$note");
+}
 
+ok ((grep $_ eq 'hi', panic_languages('kok')),
+    "'hi' is a panic language for 'kok'");
+ok ((grep $_ eq 'en', panic_languages('x-woozle-wuzzle')),
+    "'en' is a panic language for 'x-woozle-wuzzle'");
+ok ((! grep $_ eq 'mr', panic_languages('it')),
+    "'mr' is not a panic language for 'it'");
+ok ((grep $_ eq 'es', panic_languages('it')),
+    "'es' is a panic language for 'it'");
+ok ((grep $_ eq 'it', panic_languages('es')),
+    "'it' is a panic language for 'es'");
 
 note("Now the ::List tests...");
 note("# Perl v$], I18N::LangTags::List v$I18N::LangTags::List::VERSION");
@@ -81,7 +97,14 @@ foreach my $lt (qw(
  cr-syllabic-western
  cr-western
  cr-latin
+ az-latin
 )) {
   my $name = I18N::LangTags::List::name($lt);
   isnt($name, undef, "I18N::LangTags::List::name('$lt')");
 }
+
+my $correct = 'Azerbaijani in Latin script';
+is(I18N::LangTags::List::name('az-Latn'), $correct,
+   "Properly recognize 'az-latin' (with script subcomponent): # #16500");
+is(I18N::LangTags::List::name('az-latn'), $correct,
+   "Properly recognize 'az-latin' (with script subcomponent): # #16500");
Index: gnu/usr.bin/perl/dist/IO/ChangeLog
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/ChangeLog,v
diff -u -p -a -u -p -r1.1.1.5 ChangeLog
--- gnu/usr.bin/perl/dist/IO/ChangeLog	15 Feb 2023 01:32:55 -0000	1.1.1.5
+++ gnu/usr.bin/perl/dist/IO/ChangeLog	21 Feb 2024 15:47:02 -0000
@@ -1,3 +1,17 @@
+IO 1.52
+    * Replace "define<tab>" with "define<space>" in poll.h
+
+IO 1.51
+    * #20201 bump dist/IO to v1.51, due to PR 19663
+    * [doc] Update IO::Handle synopsis. Add `my` to examples for better practice.
+    * Update IO::File synopsis. Add `my` to examples for better practice.
+    * Update IO::Dir synopsis. Add `my` to examples for better practice.
+    * IO::Socket::UNIX: Add proper hyperlink in pod
+    * IO::Socket::INET: Use proper hyperlink in pod
+    * IO::Pipe: Use proper hyperlink in pod
+    * IO::Handle: Use proper hyperlink in pod
+    * Fix dist/IO/poll.h for mingw-w64 runtimes 9.0 and later
+
 IO 1.50
    * Bump to 1.50 after cpantesters run.
 
Index: gnu/usr.bin/perl/dist/IO/IO.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/IO.pm,v
diff -u -p -a -u -p -r1.7 IO.pm
--- gnu/usr.bin/perl/dist/IO/IO.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/IO.pm	21 Feb 2024 15:47:02 -0000
@@ -7,7 +7,7 @@ use Carp;
 use strict;
 use warnings;
 
-our $VERSION = "1.50";
+our $VERSION = "1.52";
 XSLoader::load 'IO', $VERSION;
 
 sub import {
Index: gnu/usr.bin/perl/dist/IO/poll.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/poll.h,v
diff -u -p -a -u -p -r1.2 poll.h
--- gnu/usr.bin/perl/dist/IO/poll.h	5 Feb 2017 00:32:09 -0000	1.2
+++ gnu/usr.bin/perl/dist/IO/poll.h	21 Feb 2024 15:47:02 -0000
@@ -10,7 +10,7 @@
 #ifndef POLL_H
 #  define POLL_H
 
-#if (defined(HAS_POLL) && defined(I_POLL)) || defined(POLLWRBAND)
+#if (defined(HAS_POLL) && defined(I_POLL)) || (defined(POLLWRBAND) && !defined(_WIN32))
 #  include <poll.h>
 #elif (defined(HAS_POLL) && defined(I_SYS_POLL))
 #  include <sys/poll.h>
@@ -22,31 +22,38 @@
 
 #define EMULATE_POLL_WITH_SELECT
 
+#ifdef _WIN32
+#  include <winsock2.h>
+#endif
+
 #ifdef poll
 # undef poll
 #endif
 #define poll Perl_my_poll
 
+#if WINVER < 0x0600
 typedef struct pollfd {
     int fd;
     short events;
     short revents;
 } pollfd_t;
 
-#define	POLLIN		0x0001
-#define	POLLPRI		0x0002
-#define	POLLOUT		0x0004
-#define	POLLRDNORM	0x0040
-#define	POLLWRNORM	POLLOUT
-#define	POLLRDBAND	0x0080
-#define	POLLWRBAND	0x0100
-#define	POLLNORM	POLLRDNORM
+#define POLLIN          0x0001
+#define POLLPRI         0x0002
+#define POLLOUT         0x0004
+#define POLLRDNORM      0x0040
+#define POLLWRNORM      POLLOUT
+#define POLLRDBAND      0x0080
+#define POLLWRBAND      0x0100
+#define POLLNORM        POLLRDNORM
 
 /* Return ONLY events (NON testable) */
 
-#define	POLLERR		0x0008
-#define	POLLHUP		0x0010
-#define	POLLNVAL	0x0020
+#define POLLERR         0x0008
+#define POLLHUP         0x0010
+#define POLLNVAL        0x0020
+
+#endif
 
 int poll (struct pollfd *, unsigned long, int);
 
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Dir.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Dir.pm,v
diff -u -p -a -u -p -r1.7 Dir.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Dir.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Dir.pm	21 Feb 2024 15:47:02 -0000
@@ -18,7 +18,7 @@ use File::stat;
 use File::Spec;
 
 our @ISA = qw(Tie::Hash Exporter);
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 our @EXPORT_OK = qw(DIR_UNLINK);
 
@@ -153,7 +153,7 @@ IO::Dir - supply object methods for dire
 =head1 SYNOPSIS
 
     use IO::Dir;
-    $d = IO::Dir->new(".");
+    my $d = IO::Dir->new(".");
     if (defined $d) {
         while (defined($_ = $d->read)) { something($_); }
         $d->rewind;
@@ -161,7 +161,7 @@ IO::Dir - supply object methods for dire
         undef $d;
     }
 
-    tie %dir, 'IO::Dir', ".";
+    tie my %dir, 'IO::Dir', ".";
     foreach (keys %dir) {
 	print $_, " " , $dir{$_}->size,"\n";
     }
Index: gnu/usr.bin/perl/dist/IO/lib/IO/File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/File.pm,v
diff -u -p -a -u -p -r1.7 File.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/File.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/File.pm	21 Feb 2024 15:47:02 -0000
@@ -10,29 +10,29 @@ IO::File - supply object methods for fil
 
     use IO::File;
 
-    $fh = IO::File->new();
+    my $fh = IO::File->new();
     if ($fh->open("< file")) {
         print <$fh>;
         $fh->close;
     }
 
-    $fh = IO::File->new("> file");
+    my $fh = IO::File->new("> file");
     if (defined $fh) {
         print $fh "bar\n";
         $fh->close;
     }
 
-    $fh = IO::File->new("file", "r");
+    my $fh = IO::File->new("file", "r");
     if (defined $fh) {
         print <$fh>;
         undef $fh;       # automatically closes the file
     }
 
-    $fh = IO::File->new("file", O_WRONLY|O_APPEND);
+    my $fh = IO::File->new("file", O_WRONLY|O_APPEND);
     if (defined $fh) {
         print $fh "corge\n";
 
-        $pos = $fh->getpos;
+        my $pos = $fh->getpos;
         $fh->setpos($pos);
 
         undef $fh;       # automatically closes the file
@@ -135,7 +135,7 @@ require Exporter;
 
 our @ISA = qw(IO::Handle IO::Seekable Exporter);
 
-our $VERSION = "1.48";
+our $VERSION = "1.52";
 
 our @EXPORT = @IO::Seekable::EXPORT;
 
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Handle.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Handle.pm,v
diff -u -p -a -u -p -r1.8 Handle.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Handle.pm	15 Feb 2023 01:36:28 -0000	1.8
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Handle.pm	21 Feb 2024 15:47:02 -0000
@@ -8,20 +8,20 @@ IO::Handle - supply object methods for I
 
     use IO::Handle;
 
-    $io = IO::Handle->new();
+    my $io = IO::Handle->new();
     if ($io->fdopen(fileno(STDIN),"r")) {
         print $io->getline;
         $io->close;
     }
 
-    $io = IO::Handle->new();
+    my $io = IO::Handle->new();
     if ($io->fdopen(fileno(STDOUT),"w")) {
         $io->print("Some text\n");
     }
 
     # setvbuf is not available by default on Perls 5.8.0 and later.
     use IO::Handle '_IOLBF';
-    $io->setvbuf($buffer_var, _IOLBF, 1024);
+    $io->setvbuf(my $buffer_var, _IOLBF, 1024);
 
     undef $io;       # automatically closes the file if it's open
 
@@ -234,7 +234,7 @@ the taint-clean flag failed. (eg invalid
 =head1 NOTE
 
 An C<IO::Handle> object is a reference to a symbol/GLOB reference (see
-the C<Symbol> package).  Some modules that
+the L<Symbol> package).  Some modules that
 inherit from C<IO::Handle> may want to keep object related variables
 in the hash table part of the GLOB. In an attempt to prevent modules
 trampling on each other I propose the that any such module should prefix
@@ -270,7 +270,7 @@ use IO ();	# Load the XS module
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = "1.48";
+our $VERSION = "1.52";
 
 our @EXPORT_OK = qw(
     autoflush
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Pipe.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Pipe.pm,v
diff -u -p -a -u -p -r1.7 Pipe.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Pipe.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Pipe.pm	21 Feb 2024 15:47:02 -0000
@@ -13,7 +13,7 @@ use strict;
 use Carp;
 use Symbol;
 
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 sub new {
     my $type = shift;
@@ -203,7 +203,7 @@ processes.
 =item new ( [READER, WRITER] )
 
 Creates an C<IO::Pipe>, which is a reference to a newly created symbol
-(see the C<Symbol> package). C<IO::Pipe::new> optionally takes two
+(see the L<Symbol> package). C<IO::Pipe::new> optionally takes two
 arguments, which should be objects blessed into C<IO::Handle>, or a
 subclass thereof. These two objects will be used for the system call
 to C<pipe>. If no arguments are given then method C<handles> is called
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Poll.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Poll.pm,v
diff -u -p -a -u -p -r1.8 Poll.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Poll.pm	15 Feb 2023 01:36:28 -0000	1.8
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Poll.pm	21 Feb 2024 15:47:02 -0000
@@ -12,7 +12,7 @@ use IO::Handle;
 use Exporter ();
 
 our @ISA = qw(Exporter);
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 our @EXPORT = qw( POLLIN
 	      POLLOUT
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Seekable.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Seekable.pm,v
diff -u -p -a -u -p -r1.7 Seekable.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Seekable.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Seekable.pm	21 Feb 2024 15:47:02 -0000
@@ -106,7 +106,7 @@ require Exporter;
 our @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
 our @ISA = qw(Exporter);
 
-our $VERSION = "1.48";
+our $VERSION = "1.52";
 
 sub seek {
     @_ == 3 or croak 'usage: $io->seek(POS, WHENCE)';
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Select.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Select.pm,v
diff -u -p -a -u -p -r1.7 Select.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Select.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Select.pm	21 Feb 2024 15:47:02 -0000
@@ -10,7 +10,7 @@ use     strict;
 use warnings::register;
 require Exporter;
 
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 our @ISA = qw(Exporter); # This is only so we can do version checking
 
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Socket.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Socket.pm,v
diff -u -p -a -u -p -r1.7 Socket.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Socket.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Socket.pm	21 Feb 2024 15:47:02 -0000
@@ -23,7 +23,7 @@ require IO::Socket::UNIX if ($^O ne 'epo
 
 our @ISA = qw(IO::Handle);
 
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 our @EXPORT_OK = qw(sockatmark);
 
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Socket/INET.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Socket/INET.pm,v
diff -u -p -a -u -p -r1.7 INET.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Socket/INET.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Socket/INET.pm	21 Feb 2024 15:47:02 -0000
@@ -14,7 +14,7 @@ use Exporter;
 use Errno;
 
 our @ISA = qw(IO::Socket);
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 my $EINVAL = exists(&Errno::EINVAL) ? Errno::EINVAL() : 1;
 
@@ -330,7 +330,7 @@ inherits all the methods defined by L<IO
 =item new ( [ARGS] )
 
 Creates an C<IO::Socket::INET> object, which is a reference to a
-newly created symbol (see the C<Symbol> package). C<new>
+newly created symbol (see the L<Symbol> package). C<new>
 optionally takes arguments, these arguments are in key-value pairs.
 
 In addition to the key-value pairs accepted by L<IO::Socket>,
Index: gnu/usr.bin/perl/dist/IO/lib/IO/Socket/UNIX.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/IO/lib/IO/Socket/UNIX.pm,v
diff -u -p -a -u -p -r1.7 UNIX.pm
--- gnu/usr.bin/perl/dist/IO/lib/IO/Socket/UNIX.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/IO/lib/IO/Socket/UNIX.pm	21 Feb 2024 15:47:02 -0000
@@ -11,7 +11,7 @@ use IO::Socket;
 use Carp;
 
 our @ISA = qw(IO::Socket);
-our $VERSION = "1.49";
+our $VERSION = "1.52";
 
 IO::Socket::UNIX->register_domain( AF_UNIX );
 
@@ -111,7 +111,7 @@ inherits all the methods defined by L<IO
 =item new ( [ARGS] )
 
 Creates an C<IO::Socket::UNIX> object, which is a reference to a
-newly created symbol (see the C<Symbol> package). C<new>
+newly created symbol (see the L<Symbol> package). C<new>
 optionally takes arguments, these arguments are in key-value pairs.
 
 In addition to the key-value pairs accepted by L<IO::Socket>,
Index: gnu/usr.bin/perl/dist/Locale-Maketext/ChangeLog
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Locale-Maketext/ChangeLog,v
diff -u -p -a -u -p -r1.5 ChangeLog
--- gnu/usr.bin/perl/dist/Locale-Maketext/ChangeLog	15 Feb 2023 01:36:28 -0000	1.5
+++ gnu/usr.bin/perl/dist/Locale-Maketext/ChangeLog	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,9 @@
 Revision history for Perl suite Locale::Maketext
 
+2022-08-22
+   * Release 1.32 to CPAN
+   * Fix Makefile.PL logic for default install destination on 5.008 up to 5.011
+
 2022-04-14
    * Release 1.31 to CPAN
    * White space cleanup.
Index: gnu/usr.bin/perl/dist/Locale-Maketext/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Locale-Maketext/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Locale-Maketext/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Locale-Maketext/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,52 @@
+require 5.006; # uses 'our'
+use strict;
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+    NAME          => 'Locale::Maketext',
+    VERSION_FROM  => 'lib/Locale/Maketext.pm',
+    ABSTRACT_FROM => 'lib/Locale/Maketext.pod',
+    PREREQ_PM     => {
+        'I18N::LangTags'         => 0.31,
+        'I18N::LangTags::Detect' => 0,
+        'Test::More'             => 0,
+        'parent'                 => 0,      # For testing t/30_eval_dollar_at.t
+    },
+    dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+    ( $ExtUtils::MakeMaker::VERSION >= 6.3002 ? ( 'LICENSE' => 'perl', ) : () ),
+    INSTALLDIRS => ( $] < 5.011 ? 'perl' : 'site' ),
+
+    # If under a version with Maketext in core, overwrite that core file.
+    META_MERGE => {
+        resources => {
+            license     => 'http://dev.perl.org/licenses/',
+            bugtracker  => 'https://github.com/perl/perl5/issues',
+            repository  => 'https://github.com/Perl/perl5/tree/blead/dist/Locale-Maketext',
+            MailingList => 'http://lists.perl.org/list/perl5-porters.html',
+        },
+    },
+);
+
+sub MY::postamble {
+    # .PHONY is not portable
+    my $self = shift;
+    my $phony_line = $self->can('is_make_type')
+                     && ($self->is_make_type('gmake')
+                         || $self->is_make_type('bsdmake'))
+                     ? '.PHONY: tags critic'
+                     : '';
+
+    return "$phony_line\n\n" . <<'MAKE_FRAG';
+
+tags:
+	ctags -f tags --recurse --totals \
+		--exclude=blib \
+		--exclude=.svn \
+		--exclude='*~' \
+		--languages=Perl --langmap=Perl:+.t \
+
+critic:
+	perlcritic -1 -q -profile perlcriticrc -statistics lib/ t/
+
+MAKE_FRAG
+}
Index: gnu/usr.bin/perl/dist/Locale-Maketext/lib/Locale/Maketext.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Locale-Maketext/lib/Locale/Maketext.pm,v
diff -u -p -a -u -p -r1.5 Maketext.pm
--- gnu/usr.bin/perl/dist/Locale-Maketext/lib/Locale/Maketext.pm	15 Feb 2023 01:36:28 -0000	1.5
+++ gnu/usr.bin/perl/dist/Locale-Maketext/lib/Locale/Maketext.pm	21 Feb 2024 15:47:01 -0000
@@ -25,7 +25,7 @@ BEGIN {
 }
 
 
-our $VERSION = '1.31';
+our $VERSION = '1.33';
 our @ISA = ();
 
 our $MATCH_SUPERS = 1;
Index: gnu/usr.bin/perl/dist/Math-Complex/ChangeLog
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/ChangeLog
diff -N gnu/usr.bin/perl/dist/Math-Complex/ChangeLog
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/ChangeLog	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,521 @@
+2012-02-01  Zefram  <zefram@fysh.org>
+
+	* Don't declare "tan" operator overloading on Math::Complex
+	  objects, because there is no such overloading type [rt.cpan.org
+	  #74288].
+
+	* Remove execute bit from test scripts in CPAN tarball.
+
+	* Release Math::Complex 1.59 + Math::Trig 1.23.
+
+2011-06-21  Zefram  <zefram@fysh.org>
+
+	* Declare package variables with "our" rather than "use vars".
+
+	* Corresponding to "our" usage, check for minimum Perl version
+	  5.006.
+
+	* Remove $ENV{PERL_CORE} logic from test suite, which is no
+	  longer desired in the core.
+
+	* In test suite, remove obsolete and now-incomplete handling of
+	  unavailability of Test::More.
+
+	* Declare module dependencies.
+
+	* Release Math::Complex 1.58 + Math::Trig 1.22.
+
+2011-05-03  Zefram  <zefram@fysh.org>
+
+	* Add copy constructor and arrange for it to be called
+	  appropriately, problem found by David Madore and Alexandr
+	  Ciornii.
+
+	* Correctly format polarwise when a numeric format specifier is
+	  given, problem found by TomC.
+
+	* More stable great_circle_direction algorithm, problem found
+	  by Daniel Burr.
+
+	* Release Math::Complex 1.57 + Math::Trig 1.21.
+
+2009-02-08  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Fix qw(abs cos exp log sin sqrt) without argument, problem
+	  found by Steffen Mueller, 5.10-aware (lexical $_) fix by Abigail.
+	
+	* Release Math::Complex 1.56 + Math::Trig 1.20.
+	
+2008-12-27  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Resolve rt.cpan.org report: 
+	  "#39045: great_circle_direction gives wrong answer if 5th argument is supplied"
+	  by calling great_circle_distance() with an explicit argument
+	  list in great_circle_direction().
+	
+	* Release Math::Complex 1.55 + Math::Trig 1.19.
+	
+2008-04-04  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* The SIGFPE catcher in Complex.pm and Trig.t was { }, not sub { }.
+
+	* Shuffle the Inf-guessing guesses a bit to try infinities first,
+	  and also 2**99999 before exp(99999), seems to be more reliable
+	  for generating the infinity for some odd reason (the ** is
+	  implemented via exp() anyway?)
+	
+	* In cosh() and sinh() more robustly produce Inf() when needed,
+	  even when exp() seems to "stick" into DBL_MAX and not go to Inf.
+	
+	* Release Math::Complex 1.54 + Math::Trig 1.18.
+	
+2008-04-01  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Resolved rt.cpan.org report:
+	  "#34605: Math::Trig(3pm) man page feedback"
+	  (Trig.pm talked of "arcus hyperbolic sine", which is wrong,
+	   it is either "area hyperbolic sine" or "inverse hyperbolic sine")
+
+	* Tweaked also the code comments a bit to speak consistently of
+	  "area/inverse hyperbolic ..."
+
+	* Resolved rt.cpan.org report:
+	  "#34269: Math::Trig::great_circle_destination"
+	  (One cannot combine the results great_circle_distance(A, B) and
+	   great_circle_direction(A, B) to get great_circle_destination(A, ...)
+	   to return B, because the bearing keeps changing in the general case)
+	
+	* Release Math::Complex 1.53 + Math::Trig 1.17.
+	
+2008-02-11  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Duh. Forgot 128-bit option from the %DBL_MAX table.
+
+	* Release Math::Complex 1.52 + Math::Trig 1.16.
+	
+2008-02-10  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Make the nv max detection to work also with
+	  long doubles, reported by Nicholas Clark
+	  [core perl change #33268]
+
+	* Release Math::Complex 1.51 + Math::Trig 1.15.
+	  (1.50 skipped because of "1.5" idiocy.)
+	
+2008-04-04  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* The debugging output in Complex.pm BEGIN was not nice:
+	  remove that, resolving rt.cpan.org #32919.
+
+	* Make the detecting of Infinity even more relaxed:
+	  just be happy with defined() and "big enough".
+	  (Switch the '1e999' as last resort, though.)
+	
+	* Release Math::Complex 1.49 + Math::Trig 1.14.
+	
+2008-01-29  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* In HP-UX the infinity is stringified as "++" and
+	  the negative infinity as "--", fix from H. Merijn Brand.
+	
+	* Release Math::Complex 1.48 + Math::Trig 1.13.
+	
+2008-01-16  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* The great circle tests with small angles didn't work
+	  with long doubles in Mac OS X, reported by conrad.
+	  Oh, the joy of floating point.  Fudged the test hopefully enough.
+	  Could special case going from point A to point A,
+	  but that would be cheating.  (For really small movements
+	  could also just do Pythagorean plane distance.)
+	
+	* Release Math::Complex 1.47 + Math::Trig 1.12.
+	
+2008-01-16  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Fix a typo in the asin_real/acos_real documentation
+	  noticed by Alexej Sveshnikov.
+	
+	* Release Math::Complex 1.46 + Math::Trig 1.11.
+	
+2008-01-15  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Address [rt.cpan.org #32291] Wrong (Math::Complex) results in great_circle family of functions
+	  Fix gratefully received from the reporter of the bug,
+	  Alexej Sveshnikov.
+
+	* Added the two new interfaces added by the fix for the
+	  rt.cpan.org #32291, asin_real() and acos_real(), also
+	  to the public interface.
+	
+	* Release Math::Complex 1.45 + Math::Trig 1.10.
+	
+2008-01-11  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Address rt.cpan.org #27186: Shadowed By the Core Version
+	  by adding INSTALLDIRS => 'perl' to Makefile.PL.
+	
+	* Ignore SIGFPE in Trig.t when doing arithmetics with
+	  infinities (avoids a coredump in netbsd-alpha, found
+	  by David Cantrell).  Document this fun.
+
+	* Make Math::Complex and Math::Trig documentations to
+	  refer to each other.
+	
+	* Release Math::Complex 1.44 + Math::Trig 1.09.
+	
+2008-01-09  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* sinh(1e4) was not enough to go to infinity in AMD64
+	  with long doubles (sinh(1e5) was), and test.pl:is()
+	  didn't work for infinities (subtle overloading issue.)
+	  Fix from Nicholas Clark.
+	
+	* Release Math::Complex 1.43 + Math::Trig 1.08.
+	
+2008-01-07  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* The infinity detection was wrong for Microsoft libc,
+	  there infinity is '1.#INF'.  Now made the detection
+	  hopefully much more robust.
+	
+	* Release Math::Complex 1.42 + Math::Trig 1.07.
+	
+2008-01-06  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* PAUSE upload had some issues which messed up 1.39 upload,
+	  reissue after reviewing (and fixing) the diffs.
+	
+	* Release Math::Complex 1.41 (1.40 skipped because
+	  of silly "1.4.tar.gz" feature) + Math::Trig 1.07.
+	  [deleted from CPAN because broken in Win32]
+	
+2008-01-06  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Add the standard "same terms as Perl itself" license
+	  to both Complex.pm and Trig.pm.
+
+	* Add Inf() as an exportable sub, it returns the infinity
+	  (or the best floating double imitation of it).
+
+	* Make the BEGIN block of Complex.pm croak if it cannot
+	  find an infinity.  This may be deadly on some platforms
+	  but then again, Complex.pm has returned infinities for
+	  quite some time now.
+	
+	* tanh(a big enough number) was returning NaN in Unix and 1+NaN
+	  in Windows when the right answer is 1 (for IEEE doubles
+	  the limit seemed to be 709 vs 710).  Added tests for
+	  sinh/cosh/tanh/sech/csch for 100/-100, and for sinh/cosh
+	  with 1e4 returning Inf().  Reported by Roberto Congiu.
+
+	* Added sanity check tests to Trig.t for all the trigonometric
+	  and hyperbolic functions (staying in real axis, not going to
+	  complex plane).
+	
+	* Release Math::Complex 1.39 + Math::Trig 1.06.
+	  [deleted from CPAN because of PAUSE upload problems]
+	
+2007-12-30  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* The example for great_circle_waypoint() had latitude and
+	  longitude switched; reported by Chris Heys.
+	
+	* Cosmetic changes in test files.
+	
+	* Release Math::Complex 1.38 + Math::Trig 1.05.
+	
+2007-01-21  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* great_circle_waypoint() was broken (the latitudes
+	  were garbage); report and fix by Uwe Girlich.
+	
+	* local()ize $! in the BEGIN block when looking for Inf.
+	
+	* Release Math::Complex 1.37.
+	
+2006-07-04  Jarkko Hietaniemi  <jhi@iki.fi>
+
+	* Move the pi-constants from Math::Trig to Math::Complex.
+
+	* Hide some of the internal-use-only functions/methods
+	  by prepending an underscore to the names.
+
+	* Update Dan Lewart's email address.
+	
+	* Introduce pod.t and pod-coverage.t; make the tests
+	  to be correctly skipped if Test::More or Test::Pod::Coverage
+	  are not available.
+
+	* Tiny doc tweaks.
+
+	* Add a TODO file.
+	
+	* Grab the Math::Complex and Math::Trig changes from
+	  the Perl 5 Perforce repository (see below).
+	
+	* CPAN release Math::Complex 1.36 + Math::Trig 1.04. 
+	
+Changes below this are changes of the Perl 5 Perforce repository
+that somehow touched Math::Complex, Math::Trig, and/or their tests.	
+They brought Math::Complex to 1.35 and Math::Trig to 1.03,
+after which Math::Complex and Math::Trig were CPANized as 1.36 and 1.04.
+	
+	[26219] on 2005/11/28 by stevep@stevep-mccoy
+
+	Subject: [PATCH] Math::Trig: blead and maint (doc patch only): s/Bay/Gulf/ and do away with bad quotes
+	From: jhi@cc.hut.fi (Jarkko Hietaniemi)
+	Date: Sun, 27 Nov 2005 23:04:31 +0200 (EET)
+	Message-Id: <20051127210431.F1D2C6CF55@ugli.hut.fi>
+	
+	[25414] on 2005/09/14 by rgs@bloom
+
+	Subject: [PATCH] Math::Complex and Math::Trig updates (Re: [perl #37117] Math::Complex atan2 bug)
+	From: Jarkko Hietaniemi <jhietaniemi@gmail.com>
+	Date: Wed, 14 Sep 2005 09:26:11 +0300
+	Message-ID: <4327C283.80706@gmail.com>
+	
+	[19376] on 2003/05/02 by jhi@kosh
+
+	great_circle_direction() was broken,
+	reported by Alexander Becher.
+	
+	[18412] on 2003/01/03 by hv@hv-crypt.org
+
+	Integrate from maint-5.8 #18348:
+	Make Math::Trig a little bit more better behaved module citizen.
+	
+	[17197] on 2002/06/12 by jhi@alpha
+
+	Test relying on undefined behaviour of atan2(0, 0)
+	(valiantly debugged by Mark Lutz).
+	
+	[14508] on 2002/01/31 by jhi@alpha
+
+	Daniel S. Lewart adopts the Math::Complex.
+	
+	[14507] on 2002/01/31 by jhi@alpha
+
+	More Complex DWIMmery.
+	
+	[12954] on 2001/11/12 by jhi@alpha
+
+	Subject: [PATCH] a few typo fixes 
+	From: Jeffrey Friedl <jfriedl@yahoo.com>
+	Date: Sun, 11 Nov 2001 21:15:18 -0800 (PST)
+	Message-Id: <200111120515.fAC5FIc74795@ventrue.corp.yahoo.com>
+	
+	Patching README.foo instead of pod/perlfoo.pod,
+	not patching Math::BigInt (Tels will take care of that),
+	dropping broken hv.c and sv.h patches, patching libnetcfg.PL
+	and perldoc.PL instead of libnetcfg and perldoc, patching
+	ext/Digest/MD5/t/files.t since MD5.pm was changed.
+	
+	[12113] on 2001/09/21 by ams@ams-lustre
+
+	Subject: [PATCH] avoid v-strings with require/use
+	From: Ronald J Kimball <rjk@linguist.Thayer.dartmouth.edu>
+	Date: Fri, 21 Sep 2001 12:34:40 -0400
+	Message-Id: <20010921123440.A148500@linguist.thayer.dartmouth.edu>
+	
+	[12041] on 2001/09/16 by jhi@alpha
+
+	Change use|require 5.005_64 to use|require 5.6.1.
+	
+	[11016] on 2001/06/29 by jhi@alpha
+
+	Bump up the VERSIONs of modules that have changed since 5.6.0,
+	the modules found using a script written by Larry Schatzer Jr.
+	
+	[10676] on 2001/06/18 by jhi@alpha
+
+	The Grand Trek: move the *.t files from t/ to lib/ and ext/.
+	No doubt I made some mistakes like missed some files or
+	misnamed some files.  The naming rules were more or less:
+	(1) if the module is from CPAN, follows its ways, be it
+	    t/*.t or test.pl.
+	(2) otherwise if there are multiple tests for a module
+	    put them in a t/
+	(3) otherwise if there's only one test put it in Module.t
+	(4) helper files go to module/ (locale, strict, warnings)
+	(5) use longer filenames now that we can (but e.g. the
+	    compat-0.6.t and the Text::Balanced test files still
+	    were renamed to be more civil against the 8.3 people)
+	installperl was updated appropriately not to install the
+	*.t files or the help files from under lib.
+	
+	TODO: some helper files still remain under t/ that could
+	follow their 'masters'.	 UPDATE: On second thoughts, why
+	should they.  They can continue to live under t/lib, and
+	in fact the locale/strict/warnings helpers that were moved
+	could be moved back.  This way the amount of non-installable
+	stuff under lib/ stays smaller.
+	
+	[9504] on 2001/04/01 by jhi@alpha
+
+	Add great_circle_direction().
+	
+	[9007] on 2001/03/03 by jhi@alpha
+
+	Integrate change #9006 from maintperl to mainline,
+	more robust quest for the infinite.
+	
+	[8722] on 2001/02/09 by jhi@alpha
+
+	The Im() function wasn't returning zero for non-Math::Complex
+	arguments.  The bug reported by John Gamble.
+	
+	[7561] on 2000/11/05 by jhi@alpha
+
+	Add =pod to be tidy.
+	
+	[6857] on 2000/08/28 by jhi@alpha
+
+	display_format used as a class method without arguments was broken,
+	reported in
+	
+	Subject: Math::Complex->display_format() sets style to 'Math::Complex'
+	From: Yasushi Nakajima <sey@san.p.kyoto.jkc.co.jp>
+	Date: Mon, 28 Aug 2000 16:38:08 +0900 (JST)
+	Message-Id: <200008280738.QAA00215@san.p.kyoto.jkc.co.jp>
+	
+	[6750] on 2000/08/21 by jhi@alpha
+
+	Unicos/mk requires elaborate paranoia.
+	
+	[6689] on 2000/08/18 by jhi@alpha
+
+	Fix the lib/complex failure of
+	
+	       From: abigail@foad.org
+	       Subject: [ID 20000814.005] Not OK: perl v5.6.0 on i686-linux-64int 2.2.13       
+	       Date: 15 Aug 2000 04:06:38 -0000
+	       Message-Id: <20000815040638.8524.qmail@foad.org> 
+	
+	Linux long double accuracy issue: something that
+	when printed with %g looks like "2" but int() of it is 1.
+	
+	[6827] on 2000/08/25 by jhi@alpha
+
+	Support preserving extremely big/small angles.
+	
+	[6076] on 2000/05/06 by gsar@auger
+
+	integrate cfgperl contents into mainline
+	
+	[5974] on 2000/04/27 by gsar@auger
+
+	change#4197 somehow missed initializing PL_errors, meaning
+	sytax error queueing wasn't working outside eval"" at all;
+	also fixed eval"" to localize PL_error_count, so that compile-time
+	eval's don't clobber the error state of the outer context
+	
+	[5954] on 2000/04/26 by gsar@auger
+
+	integrate cfgperl contents into mainline
+	
+	[5641] on 2000/03/11 by gsar@auger
+
+	integrate cfgperl contents into mainline
+	
+	[5611] on 2000/03/08 by gsar@auger
+
+	integrate cfgperl changes into mainline
+	
+	[5507] on 2000/03/04 by gsar@auger
+
+	more whitespace removal (from Michael G Schwern)
+	
+	[4874] on 2000/01/24 by gsar@auger
+
+	fix typos; avoid use constant for lowercase constants (produces
+	warnings now)
+	
+	[4860] on 2000/01/23 by gsar@auger
+
+	s/use vars/our/g modules that aren't independently maintained on CPAN
+	
+	[4604] on 1999/12/01 by gsar@auger
+
+	email address changes
+	
+	[4008] on 1999/08/20 by gsar@auger
+
+	integrate cfgperl contents into mainline
+	
+	[2830] on 1999/02/08 by gsar@sparc26
+
+	integrate cfgperl changes into mainline
+
+	
+	[2620] on 1999/01/17 by gsar@aatma
+
+	integrate cfgperl changes into mainline, fix conflicts
+	
+	[2219] on 1998/11/08 by gsar@aatma
+
+	integrate cfgperl changes into mainline
+	
+	[1760] on 1998/08/08 by gsar@aatma
+
+	integrate maint-5.005 changes into mainline
+	
+	[1357] on 1998/07/07 by gsar@aatma
+
+	doc tweaks suggested by Abigail, M.J.T. Guy, and Larry Wall
+	
+	[1267] on 1998/06/30 by gsar@aatma
+
+	add patch to integrate Math::Trig::Radial into Math::Trig
+		From: Jarkko Hietaniemi <jhi@iki.fi>
+		Date: Mon, 29 Jun 1998 16:28:53 +0300 (EET DST)
+		Message-Id: <199806291328.QAA16916@alpha.hut.fi>
+		Subject: [PATCH] 5.004_68 (or 5.004_04): radial trig
+	
+	[1235] on 1998/06/28 by gsar@aatma
+
+	Complex.pm update
+		From: Jarkko Hietaniemi <jhi@iki.fi>
+		Date: Wed, 24 Jun 1998 15:19:05 +0300 (EET DST)
+		Message-Id: <199806241219.PAA04061@alpha.hut.fi>
+		Subject: [PATCH] 5.004_68: Complex.pm, complex.t
+	
+	[476] on 1998/02/06 by mbeattie@localhost
+
+	From: Jarkko Hietaniemi <jhi@iki.fi>
+	Subject: [PATCH] almost OK: perl 5.00457 on i386-freebsd-thread 3.0
+	Date: Wed, 4 Feb 1998 12:59:47 +0200 (EET)
+	Subject: Re: [PATCH] 5.004_04 and 5.004_57: Complex.pm and complex.t 
+	Date: Thu, 5 Feb 1998 18:08:20 +0200 (EET)
+	
+	[439] on 1998/01/27 by mbeattie@localhost
+
+	Integrate ansi branch into mainline (resolve -ay).
+	
+	[296] on 1997/11/25 by mbeattie@localhost
+
+	Integrate from ansi branch to mainline.
+	
+	[137] on 1997/10/16 by mbeattie@localhost
+
+	Merge maint-5.004 branch (5.004_04) with mainline.
+	
+	[114] on 1997/10/08 by mbeattie@localhost
+
+	Merge maint-5.004 branch (5.004_03) with mainline.
+	MANIFEST is out of sync.
+	
+	[77] on 1997/09/29 by mbeattie@localhost
+
+	Start merge with maint-5.004 branch by creating an ancestral
+	branch point via a fake resolution with the maint-merge branch.
+	See Perforce Tech Note 9 for details.
+	
+	[18] on 1997/05/25 by mbeattie@localhost
+
+	First stab at 5.003 -> 5.004 integration.
+	
+	[1] on 1997/03/28 by mbeattie@localhost
+
+	Perl 5.003 check-in
+
Index: gnu/usr.bin/perl/dist/Math-Complex/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Math-Complex/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,22 @@
+{ use 5.006; }
+
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+	      NAME            => 'Math::Complex',
+	      VERSION_FROM    => 'lib/Math/Complex.pm',
+              INSTALLDIRS     => ( $] < 5.011 ? 'perl' : 'site' ),
+	      PREREQ_PM	      =>
+	      	{
+		    'Config'		=> 0,
+		    'Exporter'		=> 0,
+		    'ExtUtils::MakeMaker' => 0,
+		    'Scalar::Util'	=> '1.11',
+		    'Test::More'	=> 0,
+		    'overload'		=> 0,
+		    'strict'		=> 0,
+		    'warnings'		=> 0,
+		},
+              ($ExtUtils::MakeMaker::VERSION >= 6.3002 ?
+	       ('LICENSE'=> 'perl_5', ) : ()),
+	     );
Index: gnu/usr.bin/perl/dist/Math-Complex/TODO
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/TODO
diff -N gnu/usr.bin/perl/dist/Math-Complex/TODO
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/TODO	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1 @@
+- possible to make Math::Complex and bignum (Math::BigFloat) to play well?
Index: gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Complex.pm
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Complex.pm
diff -N gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Complex.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Complex.pm	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,2132 @@
+#
+# Complex numbers and associated mathematical functions
+# -- Raphael Manfredi	Since Sep 1996
+# -- Jarkko Hietaniemi	Since Mar 1997
+# -- Daniel S. Lewart	Since Sep 1997
+#
+
+package Math::Complex;
+
+{ use 5.006; }
+use strict;
+
+our $VERSION = 1.62;
+
+use Config;
+
+our ($Inf, $ExpInf);
+our ($vax_float, $has_inf, $has_nan);
+
+BEGIN {
+    $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
+    $has_inf   = !$vax_float;
+    $has_nan   = !$vax_float;
+
+    unless ($has_inf) {
+      # For example in vax, there is no Inf,
+      # and just mentioning the DBL_MAX (1.70141183460469229e+38)
+      # causes SIGFPE.
+
+      # These are pretty useless without a real infinity,
+      # but setting them makes for less warnings about their
+      # undefined values.
+      $Inf = "Inf";
+      $ExpInf = "Inf";
+      return;
+    }
+
+    my %DBL_MAX =  # These are IEEE 754 maxima.
+	(
+	  4  => '1.70141183460469229e+38',
+	  8  => '1.7976931348623157e+308',
+	 # AFAICT the 10, 12, and 16-byte long doubles
+	 # all have the same maximum.
+	 10 => '1.1897314953572317650857593266280070162E+4932',
+	 12 => '1.1897314953572317650857593266280070162E+4932',
+	 16 => '1.1897314953572317650857593266280070162E+4932',
+	);
+
+    my $nvsize = $Config{nvsize} ||
+	        ($Config{uselongdouble} && $Config{longdblsize}) ||
+                 $Config{doublesize};
+    die "Math::Complex: Could not figure out nvsize\n"
+	unless defined $nvsize;
+    die "Math::Complex: Cannot not figure out max nv (nvsize = $nvsize)\n"
+	unless defined $DBL_MAX{$nvsize};
+    my $DBL_MAX = eval $DBL_MAX{$nvsize};
+    die "Math::Complex: Could not figure out max nv (nvsize = $nvsize)\n"
+	unless defined $DBL_MAX;
+    my $BIGGER_THAN_THIS = 1e30;  # Must find something bigger than this.
+    if ($^O eq 'unicosmk') {
+	$Inf = $DBL_MAX;
+    } else {
+	local $SIG{FPE} = sub { };
+        local $!;
+	# We do want an arithmetic overflow, Inf INF inf Infinity.
+	for my $t (
+	    'exp(99999)',  # Enough even with 128-bit long doubles.
+	    'inf',
+	    'Inf',
+	    'INF',
+	    'infinity',
+	    'Infinity',
+	    'INFINITY',
+	    '1e99999',
+	    ) {
+	    local $^W = 0;
+	    my $i = eval "$t+1.0";
+	    if (defined $i && $i > $BIGGER_THAN_THIS) {
+		$Inf = $i;
+		last;
+	    }
+          }
+	$Inf = $DBL_MAX unless defined $Inf;  # Oh well, close enough.
+	die "Math::Complex: Could not get Infinity"
+	    unless $Inf > $BIGGER_THAN_THIS;
+	$ExpInf = eval 'exp(99999)';
+      }
+    # print "# On this machine, Inf = '$Inf'\n";
+}
+
+use Scalar::Util qw(set_prototype);
+
+use warnings;
+no warnings 'syntax';  # To avoid the (_) warnings.
+
+BEGIN {
+    # For certain functions that we override, in 5.10 or better
+    # we can set a smarter prototype that will handle the lexical $_
+    # (also a 5.10+ feature).
+    if ($] >= 5.010000) {
+        set_prototype \&abs, '_';
+        set_prototype \&cos, '_';
+        set_prototype \&exp, '_';
+        set_prototype \&log, '_';
+        set_prototype \&sin, '_';
+        set_prototype \&sqrt, '_';
+    }
+}
+
+my $i;
+my %LOGN;
+
+# Regular expression for floating point numbers.
+# These days we could use Scalar::Util::lln(), I guess.
+my $gre = qr'\s*([\+\-]?(?:(?:(?:\d+(?:_\d+)*(?:\.\d*(?:_\d+)*)?|\.\d+(?:_\d+)*)(?:[eE][\+\-]?\d+(?:_\d+)*)?))|inf)'i;
+
+require Exporter;
+
+our @ISA = qw(Exporter);
+
+my @trig = qw(
+	      pi
+	      tan
+	      csc cosec sec cot cotan
+	      asin acos atan
+	      acsc acosec asec acot acotan
+	      sinh cosh tanh
+	      csch cosech sech coth cotanh
+	      asinh acosh atanh
+	      acsch acosech asech acoth acotanh
+	     );
+
+our @EXPORT = (qw(
+	     i Re Im rho theta arg
+	     sqrt log ln
+	     log10 logn cbrt root
+	     cplx cplxe
+	     atan2
+	     ),
+	   @trig);
+
+my @pi = qw(pi pi2 pi4 pip2 pip4 Inf);
+
+our @EXPORT_OK = @pi;
+
+our %EXPORT_TAGS = (
+    'trig' => [@trig],
+    'pi' => [@pi],
+);
+
+use overload
+	'='	=> \&_copy,
+	'+='	=> \&_plus,
+	'+'	=> \&_plus,
+	'-='	=> \&_minus,
+	'-'	=> \&_minus,
+	'*='	=> \&_multiply,
+	'*'	=> \&_multiply,
+	'/='	=> \&_divide,
+	'/'	=> \&_divide,
+	'**='	=> \&_power,
+	'**'	=> \&_power,
+	'=='	=> \&_numeq,
+	'<=>'	=> \&_spaceship,
+	'neg'	=> \&_negate,
+	'~'	=> \&_conjugate,
+	'abs'	=> \&abs,
+	'sqrt'	=> \&sqrt,
+	'exp'	=> \&exp,
+	'log'	=> \&log,
+	'sin'	=> \&sin,
+	'cos'	=> \&cos,
+	'atan2'	=> \&atan2,
+        '""'    => \&_stringify;
+
+#
+# Package "privates"
+#
+
+my %DISPLAY_FORMAT = ('style' => 'cartesian',
+		      'polar_pretty_print' => 1);
+my $eps            = 1e-14;		# Epsilon
+
+#
+# Object attributes (internal):
+#	cartesian	[real, imaginary] -- cartesian form
+#	polar		[rho, theta] -- polar form
+#	c_dirty		cartesian form not up-to-date
+#	p_dirty		polar form not up-to-date
+#	display		display format (package's global when not set)
+#
+
+# Die on bad *make() arguments.
+
+sub _cannot_make {
+    die "@{[(caller(1))[3]]}: Cannot take $_[0] of '$_[1]'.\n";
+}
+
+sub _make {
+    my $arg = shift;
+    my ($p, $q);
+
+    if ($arg =~ /^$gre$/) {
+	($p, $q) = ($1, 0);
+    } elsif ($arg =~ /^(?:$gre)?$gre\s*i\s*$/) {
+	($p, $q) = ($1 || 0, $2);
+    } elsif ($arg =~ /^\s*\(\s*$gre\s*(?:,\s*$gre\s*)?\)\s*$/) {
+	($p, $q) = ($1, $2 || 0);
+    }
+
+    if (defined $p) {
+	$p =~ s/^\+//;
+	$p =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
+	$q =~ s/^\+//;
+	$q =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
+    }
+
+    return ($p, $q);
+}
+
+sub _emake {
+    my $arg = shift;
+    my ($p, $q);
+
+    if ($arg =~ /^\s*\[\s*$gre\s*(?:,\s*$gre\s*)?\]\s*$/) {
+	($p, $q) = ($1, $2 || 0);
+    } elsif ($arg =~ m!^\s*\[\s*$gre\s*(?:,\s*([-+]?\d*\s*)?pi(?:/\s*(\d+))?\s*)?\]\s*$!) {
+	($p, $q) = ($1, ($2 eq '-' ? -1 : ($2 || 1)) * pi() / ($3 || 1));
+    } elsif ($arg =~ /^\s*\[\s*$gre\s*\]\s*$/) {
+	($p, $q) = ($1, 0);
+    } elsif ($arg =~ /^\s*$gre\s*$/) {
+	($p, $q) = ($1, 0);
+    }
+
+    if (defined $p) {
+	$p =~ s/^\+//;
+	$q =~ s/^\+//;
+	$p =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
+	$q =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
+    }
+
+    return ($p, $q);
+}
+
+sub _copy {
+    my $self = shift;
+    my $clone = {%$self};
+    if ($self->{'cartesian'}) {
+	$clone->{'cartesian'} = [@{$self->{'cartesian'}}];
+    }
+    if ($self->{'polar'}) {
+	$clone->{'polar'} = [@{$self->{'polar'}}];
+    }
+    bless $clone,__PACKAGE__;
+    return $clone;
+}
+
+#
+# ->make
+#
+# Create a new complex number (cartesian form)
+#
+sub make {
+    my $self = bless {}, shift;
+    my ($re, $im);
+    if (@_ == 0) {
+	($re, $im) = (0, 0);
+    } elsif (@_ == 1) {
+	return (ref $self)->emake($_[0])
+	    if ($_[0] =~ /^\s*\[/);
+	($re, $im) = _make($_[0]);
+    } elsif (@_ == 2) {
+	($re, $im) = @_;
+    }
+    if (defined $re) {
+	_cannot_make("real part",      $re) unless $re =~ /^$gre$/;
+    }
+    $im ||= 0;
+    _cannot_make("imaginary part", $im) unless $im =~ /^$gre$/;
+    $self->_set_cartesian([$re, $im ]);
+    $self->display_format('cartesian');
+
+    return $self;
+}
+
+#
+# ->emake
+#
+# Create a new complex number (exponential form)
+#
+sub emake {
+    my $self = bless {}, shift;
+    my ($rho, $theta);
+    if (@_ == 0) {
+	($rho, $theta) = (0, 0);
+    } elsif (@_ == 1) {
+	return (ref $self)->make($_[0])
+	    if ($_[0] =~ /^\s*\(/ || $_[0] =~ /i\s*$/);
+	($rho, $theta) = _emake($_[0]);
+    } elsif (@_ == 2) {
+	($rho, $theta) = @_;
+    }
+    if (defined $rho && defined $theta) {
+	if ($rho < 0) {
+	    $rho   = -$rho;
+	    $theta = ($theta <= 0) ? $theta + pi() : $theta - pi();
+	}
+    }
+    if (defined $rho) {
+	_cannot_make("rho",   $rho)   unless $rho   =~ /^$gre$/;
+    }
+    $theta ||= 0;
+    _cannot_make("theta", $theta) unless $theta =~ /^$gre$/;
+    $self->_set_polar([$rho, $theta]);
+    $self->display_format('polar');
+
+    return $self;
+}
+
+sub new { &make }		# For backward compatibility only.
+
+#
+# cplx
+#
+# Creates a complex number from a (re, im) tuple.
+# This avoids the burden of writing Math::Complex->make(re, im).
+#
+sub cplx {
+	return __PACKAGE__->make(@_);
+}
+
+#
+# cplxe
+#
+# Creates a complex number from a (rho, theta) tuple.
+# This avoids the burden of writing Math::Complex->emake(rho, theta).
+#
+sub cplxe {
+	return __PACKAGE__->emake(@_);
+}
+
+#
+# pi
+#
+# The number defined as pi = 180 degrees
+#
+sub pi () { 4 * CORE::atan2(1, 1) }
+
+#
+# pi2
+#
+# The full circle
+#
+sub pi2 () { 2 * pi }
+
+#
+# pi4
+#
+# The full circle twice.
+#
+sub pi4 () { 4 * pi }
+
+#
+# pip2
+#
+# The quarter circle
+#
+sub pip2 () { pi / 2 }
+
+#
+# pip4
+#
+# The eighth circle.
+#
+sub pip4 () { pi / 4 }
+
+#
+# _uplog10
+#
+# Used in log10().
+#
+sub _uplog10 () { 1 / CORE::log(10) }
+
+#
+# i
+#
+# The number defined as i*i = -1;
+#
+sub i () {
+        return $i if ($i);
+	$i = bless {};
+	$i->{'cartesian'} = [0, 1];
+	$i->{'polar'}     = [1, pip2];
+	$i->{c_dirty} = 0;
+	$i->{p_dirty} = 0;
+	return $i;
+}
+
+#
+# _ip2
+#
+# Half of i.
+#
+sub _ip2 () { i / 2 }
+
+#
+# Attribute access/set routines
+#
+
+sub _cartesian {$_[0]->{c_dirty} ?
+		   $_[0]->_update_cartesian : $_[0]->{'cartesian'}}
+sub _polar     {$_[0]->{p_dirty} ?
+		   $_[0]->_update_polar : $_[0]->{'polar'}}
+
+sub _set_cartesian { $_[0]->{p_dirty}++; $_[0]->{c_dirty} = 0;
+		     $_[0]->{'cartesian'} = $_[1] }
+sub _set_polar     { $_[0]->{c_dirty}++; $_[0]->{p_dirty} = 0;
+		     $_[0]->{'polar'} = $_[1] }
+
+#
+# ->_update_cartesian
+#
+# Recompute and return the cartesian form, given accurate polar form.
+#
+sub _update_cartesian {
+	my $self = shift;
+	my ($r, $t) = @{$self->{'polar'}};
+	$self->{c_dirty} = 0;
+	return $self->{'cartesian'} = [$r * CORE::cos($t), $r * CORE::sin($t)];
+}
+
+#
+#
+# ->_update_polar
+#
+# Recompute and return the polar form, given accurate cartesian form.
+#
+sub _update_polar {
+	my $self = shift;
+	my ($x, $y) = @{$self->{'cartesian'}};
+	$self->{p_dirty} = 0;
+	return $self->{'polar'} = [0, 0] if $x == 0 && $y == 0;
+	return $self->{'polar'} = [CORE::sqrt($x*$x + $y*$y),
+				   CORE::atan2($y, $x)];
+}
+
+#
+# (_plus)
+#
+# Computes z1+z2.
+#
+sub _plus {
+	my ($z1, $z2, $regular) = @_;
+	my ($re1, $im1) = @{$z1->_cartesian};
+	$z2 = cplx($z2) unless ref $z2;
+	my ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
+	unless (defined $regular) {
+		$z1->_set_cartesian([$re1 + $re2, $im1 + $im2]);
+		return $z1;
+	}
+	return (ref $z1)->make($re1 + $re2, $im1 + $im2);
+}
+
+#
+# (_minus)
+#
+# Computes z1-z2.
+#
+sub _minus {
+	my ($z1, $z2, $inverted) = @_;
+	my ($re1, $im1) = @{$z1->_cartesian};
+	$z2 = cplx($z2) unless ref $z2;
+	my ($re2, $im2) = @{$z2->_cartesian};
+	unless (defined $inverted) {
+		$z1->_set_cartesian([$re1 - $re2, $im1 - $im2]);
+		return $z1;
+	}
+	return $inverted ?
+		(ref $z1)->make($re2 - $re1, $im2 - $im1) :
+		(ref $z1)->make($re1 - $re2, $im1 - $im2);
+
+}
+
+#
+# (_multiply)
+#
+# Computes z1*z2.
+#
+sub _multiply {
+        my ($z1, $z2, $regular) = @_;
+	if ($z1->{p_dirty} == 0 and ref $z2 and $z2->{p_dirty} == 0) {
+	    # if both polar better use polar to avoid rounding errors
+	    my ($r1, $t1) = @{$z1->_polar};
+	    my ($r2, $t2) = @{$z2->_polar};
+	    my $t = $t1 + $t2;
+	    if    ($t >   pi()) { $t -= pi2 }
+	    elsif ($t <= -pi()) { $t += pi2 }
+	    unless (defined $regular) {
+		$z1->_set_polar([$r1 * $r2, $t]);
+		return $z1;
+	    }
+	    return (ref $z1)->emake($r1 * $r2, $t);
+	} else {
+	    my ($x1, $y1) = @{$z1->_cartesian};
+	    if (ref $z2) {
+		my ($x2, $y2) = @{$z2->_cartesian};
+		return (ref $z1)->make($x1*$x2-$y1*$y2, $x1*$y2+$y1*$x2);
+	    } else {
+		return (ref $z1)->make($x1*$z2, $y1*$z2);
+	    }
+	}
+}
+
+#
+# _divbyzero
+#
+# Die on division by zero.
+#
+sub _divbyzero {
+    my $mess = "$_[0]: Division by zero.\n";
+
+    if (defined $_[1]) {
+	$mess .= "(Because in the definition of $_[0], the divisor ";
+	$mess .= "$_[1] " unless ("$_[1]" eq '0');
+	$mess .= "is 0)\n";
+    }
+
+    my @up = caller(1);
+
+    $mess .= "Died at $up[1] line $up[2].\n";
+
+    die $mess;
+}
+
+#
+# (_divide)
+#
+# Computes z1/z2.
+#
+sub _divide {
+	my ($z1, $z2, $inverted) = @_;
+	if ($z1->{p_dirty} == 0 and ref $z2 and $z2->{p_dirty} == 0) {
+	    # if both polar better use polar to avoid rounding errors
+	    my ($r1, $t1) = @{$z1->_polar};
+	    my ($r2, $t2) = @{$z2->_polar};
+	    my $t;
+	    if ($inverted) {
+		_divbyzero "$z2/0" if ($r1 == 0);
+		$t = $t2 - $t1;
+		if    ($t >   pi()) { $t -= pi2 }
+		elsif ($t <= -pi()) { $t += pi2 }
+		return (ref $z1)->emake($r2 / $r1, $t);
+	    } else {
+		_divbyzero "$z1/0" if ($r2 == 0);
+		$t = $t1 - $t2;
+		if    ($t >   pi()) { $t -= pi2 }
+		elsif ($t <= -pi()) { $t += pi2 }
+		return (ref $z1)->emake($r1 / $r2, $t);
+	    }
+	} else {
+	    my ($d, $x2, $y2);
+	    if ($inverted) {
+		($x2, $y2) = @{$z1->_cartesian};
+		$d = $x2*$x2 + $y2*$y2;
+		_divbyzero "$z2/0" if $d == 0;
+		return (ref $z1)->make(($x2*$z2)/$d, -($y2*$z2)/$d);
+	    } else {
+		my ($x1, $y1) = @{$z1->_cartesian};
+		if (ref $z2) {
+		    ($x2, $y2) = @{$z2->_cartesian};
+		    $d = $x2*$x2 + $y2*$y2;
+		    _divbyzero "$z1/0" if $d == 0;
+		    my $u = ($x1*$x2 + $y1*$y2)/$d;
+		    my $v = ($y1*$x2 - $x1*$y2)/$d;
+		    return (ref $z1)->make($u, $v);
+		} else {
+		    _divbyzero "$z1/0" if $z2 == 0;
+		    return (ref $z1)->make($x1/$z2, $y1/$z2);
+		}
+	    }
+	}
+}
+
+#
+# (_power)
+#
+# Computes z1**z2 = exp(z2 * log z1)).
+#
+sub _power {
+	my ($z1, $z2, $inverted) = @_;
+	if ($inverted) {
+	    return 1 if $z1 == 0 || $z2 == 1;
+	    return 0 if $z2 == 0 && Re($z1) > 0;
+	} else {
+	    return 1 if $z2 == 0 || $z1 == 1;
+	    return 0 if $z1 == 0 && Re($z2) > 0;
+	}
+	my $w = $inverted ? &exp($z1 * &log($z2))
+	                  : &exp($z2 * &log($z1));
+	# If both arguments cartesian, return cartesian, else polar.
+	return $z1->{c_dirty} == 0 &&
+	       (not ref $z2 or $z2->{c_dirty} == 0) ?
+	       cplx(@{$w->_cartesian}) : $w;
+}
+
+#
+# (_spaceship)
+#
+# Computes z1 <=> z2.
+# Sorts on the real part first, then on the imaginary part. Thus 2-4i < 3+8i.
+#
+sub _spaceship {
+	my ($z1, $z2, $inverted) = @_;
+	my ($re1, $im1) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
+	my ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
+	my $sgn = $inverted ? -1 : 1;
+	return $sgn * ($re1 <=> $re2) if $re1 != $re2;
+	return $sgn * ($im1 <=> $im2);
+}
+
+#
+# (_numeq)
+#
+# Computes z1 == z2.
+#
+# (Required in addition to _spaceship() because of NaNs.)
+sub _numeq {
+	my ($z1, $z2, $inverted) = @_;
+	my ($re1, $im1) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
+	my ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
+	return $re1 == $re2 && $im1 == $im2 ? 1 : 0;
+}
+
+#
+# (_negate)
+#
+# Computes -z.
+#
+sub _negate {
+	my ($z) = @_;
+	if ($z->{c_dirty}) {
+		my ($r, $t) = @{$z->_polar};
+		$t = ($t <= 0) ? $t + pi : $t - pi;
+		return (ref $z)->emake($r, $t);
+	}
+	my ($re, $im) = @{$z->_cartesian};
+	return (ref $z)->make(-$re, -$im);
+}
+
+#
+# (_conjugate)
+#
+# Compute complex's _conjugate.
+#
+sub _conjugate {
+	my ($z) = @_;
+	if ($z->{c_dirty}) {
+		my ($r, $t) = @{$z->_polar};
+		return (ref $z)->emake($r, -$t);
+	}
+	my ($re, $im) = @{$z->_cartesian};
+	return (ref $z)->make($re, -$im);
+}
+
+#
+# (abs)
+#
+# Compute or set complex's norm (rho).
+#
+sub abs {
+	my ($z, $rho) = @_ ? @_ : $_;
+	unless (ref $z) {
+	    if (@_ == 2) {
+		$_[0] = $_[1];
+	    } else {
+		return CORE::abs($z);
+	    }
+	}
+	if (defined $rho) {
+	    $z->{'polar'} = [ $rho, ${$z->_polar}[1] ];
+	    $z->{p_dirty} = 0;
+	    $z->{c_dirty} = 1;
+	    return $rho;
+	} else {
+	    return ${$z->_polar}[0];
+	}
+}
+
+sub _theta {
+    my $theta = $_[0];
+
+    if    ($$theta >   pi()) { $$theta -= pi2 }
+    elsif ($$theta <= -pi()) { $$theta += pi2 }
+}
+
+#
+# arg
+#
+# Compute or set complex's argument (theta).
+#
+sub arg {
+	my ($z, $theta) = @_;
+	return $z unless ref $z;
+	if (defined $theta) {
+	    _theta(\$theta);
+	    $z->{'polar'} = [ ${$z->_polar}[0], $theta ];
+	    $z->{p_dirty} = 0;
+	    $z->{c_dirty} = 1;
+	} else {
+	    $theta = ${$z->_polar}[1];
+	    _theta(\$theta);
+	}
+	return $theta;
+}
+
+#
+# (sqrt)
+#
+# Compute sqrt(z).
+#
+# It is quite tempting to use wantarray here so that in list context
+# sqrt() would return the two solutions.  This, however, would
+# break things like
+#
+#	print "sqrt(z) = ", sqrt($z), "\n";
+#
+# The two values would be printed side by side without no intervening
+# whitespace, quite confusing.
+# Therefore if you want the two solutions use the root().
+#
+sub sqrt {
+	my ($z) = @_ ? $_[0] : $_;
+	my ($re, $im) = ref $z ? @{$z->_cartesian} : ($z, 0);
+	return $re < 0 ? cplx(0, CORE::sqrt(-$re)) : CORE::sqrt($re)
+	    if $im == 0;
+	my ($r, $t) = @{$z->_polar};
+	return (ref $z)->emake(CORE::sqrt($r), $t/2);
+}
+
+#
+# cbrt
+#
+# Compute cbrt(z) (cubic root).
+#
+# Why are we not returning three values?  The same answer as for sqrt().
+#
+sub cbrt {
+	my ($z) = @_;
+	return $z < 0 ?
+	    -CORE::exp(CORE::log(-$z)/3) :
+		($z > 0 ? CORE::exp(CORE::log($z)/3): 0)
+	    unless ref $z;
+	my ($r, $t) = @{$z->_polar};
+	return 0 if $r == 0;
+	return (ref $z)->emake(CORE::exp(CORE::log($r)/3), $t/3);
+}
+
+#
+# _rootbad
+#
+# Die on bad root.
+#
+sub _rootbad {
+    my $mess = "Root '$_[0]' illegal, root rank must be positive integer.\n";
+
+    my @up = caller(1);
+
+    $mess .= "Died at $up[1] line $up[2].\n";
+
+    die $mess;
+}
+
+#
+# root
+#
+# Computes all nth root for z, returning an array whose size is n.
+# `n' must be a positive integer.
+#
+# The roots are given by (for k = 0..n-1):
+#
+# z^(1/n) = r^(1/n) (cos ((t+2 k pi)/n) + i sin ((t+2 k pi)/n))
+#
+sub root {
+	my ($z, $n, $k) = @_;
+	_rootbad($n) if ($n < 1 or int($n) != $n);
+	my ($r, $t) = ref $z ?
+	    @{$z->_polar} : (CORE::abs($z), $z >= 0 ? 0 : pi);
+	my $theta_inc = pi2 / $n;
+	my $rho = $r ** (1/$n);
+	my $cartesian = ref $z && $z->{c_dirty} == 0;
+	if (@_ == 2) {
+	    my @root;
+	    for (my $i = 0, my $theta = $t / $n;
+		 $i < $n;
+		 $i++, $theta += $theta_inc) {
+		my $w = cplxe($rho, $theta);
+		# Yes, $cartesian is loop invariant.
+		push @root, $cartesian ? cplx(@{$w->_cartesian}) : $w;
+	    }
+	    return @root;
+	} elsif (@_ == 3) {
+	    my $w = cplxe($rho, $t / $n + $k * $theta_inc);
+	    return $cartesian ? cplx(@{$w->_cartesian}) : $w;
+	}
+}
+
+#
+# Re
+#
+# Return or set Re(z).
+#
+sub Re {
+	my ($z, $Re) = @_;
+	return $z unless ref $z;
+	if (defined $Re) {
+	    $z->{'cartesian'} = [ $Re, ${$z->_cartesian}[1] ];
+	    $z->{c_dirty} = 0;
+	    $z->{p_dirty} = 1;
+	} else {
+	    return ${$z->_cartesian}[0];
+	}
+}
+
+#
+# Im
+#
+# Return or set Im(z).
+#
+sub Im {
+	my ($z, $Im) = @_;
+	return 0 unless ref $z;
+	if (defined $Im) {
+	    $z->{'cartesian'} = [ ${$z->_cartesian}[0], $Im ];
+	    $z->{c_dirty} = 0;
+	    $z->{p_dirty} = 1;
+	} else {
+	    return ${$z->_cartesian}[1];
+	}
+}
+
+#
+# rho
+#
+# Return or set rho(w).
+#
+sub rho {
+    Math::Complex::abs(@_);
+}
+
+#
+# theta
+#
+# Return or set theta(w).
+#
+sub theta {
+    Math::Complex::arg(@_);
+}
+
+#
+# (exp)
+#
+# Computes exp(z).
+#
+sub exp {
+    my ($z) = @_ ? @_ : $_;
+    return CORE::exp($z) unless ref $z;
+    my ($x, $y) = @{$z->_cartesian};
+    return (ref $z)->emake(CORE::exp($x), $y);
+}
+
+#
+# _logofzero
+#
+# Die on logarithm of zero.
+#
+sub _logofzero {
+    my $mess = "$_[0]: Logarithm of zero.\n";
+
+    if (defined $_[1]) {
+	$mess .= "(Because in the definition of $_[0], the argument ";
+	$mess .= "$_[1] " unless ($_[1] eq '0');
+	$mess .= "is 0)\n";
+    }
+
+    my @up = caller(1);
+
+    $mess .= "Died at $up[1] line $up[2].\n";
+
+    die $mess;
+}
+
+#
+# (log)
+#
+# Compute log(z).
+#
+sub log {
+	my ($z) = @_ ? @_ : $_;
+	unless (ref $z) {
+	    _logofzero("log") if $z == 0;
+	    return $z > 0 ? CORE::log($z) : cplx(CORE::log(-$z), pi);
+	}
+	my ($r, $t) = @{$z->_polar};
+	_logofzero("log") if $r == 0;
+	if    ($t >   pi()) { $t -= pi2 }
+	elsif ($t <= -pi()) { $t += pi2 }
+	return (ref $z)->make(CORE::log($r), $t);
+}
+
+#
+# ln
+#
+# Alias for log().
+#
+sub ln { Math::Complex::log(@_) }
+
+#
+# log10
+#
+# Compute log10(z).
+#
+
+sub log10 {
+	return Math::Complex::log($_[0]) * _uplog10;
+}
+
+#
+# logn
+#
+# Compute logn(z,n) = log(z) / log(n)
+#
+sub logn {
+	my ($z, $n) = @_;
+	$z = cplx($z, 0) unless ref $z;
+	my $logn = $LOGN{$n};
+	$logn = $LOGN{$n} = CORE::log($n) unless defined $logn;	# Cache log(n)
+	return &log($z) / $logn;
+}
+
+#
+# (cos)
+#
+# Compute cos(z) = (exp(iz) + exp(-iz))/2.
+#
+sub cos {
+	my ($z) = @_ ? @_ : $_;
+	return CORE::cos($z) unless ref $z;
+	my ($x, $y) = @{$z->_cartesian};
+	my $ey = CORE::exp($y);
+	my $sx = CORE::sin($x);
+	my $cx = CORE::cos($x);
+	my $ey_1 = $ey ? 1 / $ey : Inf();
+	return (ref $z)->make($cx * ($ey + $ey_1)/2,
+			      $sx * ($ey_1 - $ey)/2);
+}
+
+#
+# (sin)
+#
+# Compute sin(z) = (exp(iz) - exp(-iz))/2.
+#
+sub sin {
+	my ($z) = @_ ? @_ : $_;
+	return CORE::sin($z) unless ref $z;
+	my ($x, $y) = @{$z->_cartesian};
+	my $ey = CORE::exp($y);
+	my $sx = CORE::sin($x);
+	my $cx = CORE::cos($x);
+	my $ey_1 = $ey ? 1 / $ey : Inf();
+	return (ref $z)->make($sx * ($ey + $ey_1)/2,
+			      $cx * ($ey - $ey_1)/2);
+}
+
+#
+# tan
+#
+# Compute tan(z) = sin(z) / cos(z).
+#
+sub tan {
+	my ($z) = @_;
+	my $cz = &cos($z);
+	_divbyzero "tan($z)", "cos($z)" if $cz == 0;
+	return &sin($z) / $cz;
+}
+
+#
+# sec
+#
+# Computes the secant sec(z) = 1 / cos(z).
+#
+sub sec {
+	my ($z) = @_;
+	my $cz = &cos($z);
+	_divbyzero "sec($z)", "cos($z)" if ($cz == 0);
+	return 1 / $cz;
+}
+
+#
+# csc
+#
+# Computes the cosecant csc(z) = 1 / sin(z).
+#
+sub csc {
+	my ($z) = @_;
+	my $sz = &sin($z);
+	_divbyzero "csc($z)", "sin($z)" if ($sz == 0);
+	return 1 / $sz;
+}
+
+#
+# cosec
+#
+# Alias for csc().
+#
+sub cosec { Math::Complex::csc(@_) }
+
+#
+# cot
+#
+# Computes cot(z) = cos(z) / sin(z).
+#
+sub cot {
+	my ($z) = @_;
+	my $sz = &sin($z);
+	_divbyzero "cot($z)", "sin($z)" if ($sz == 0);
+	return &cos($z) / $sz;
+}
+
+#
+# cotan
+#
+# Alias for cot().
+#
+sub cotan { Math::Complex::cot(@_) }
+
+#
+# acos
+#
+# Computes the arc cosine acos(z) = -i log(z + sqrt(z*z-1)).
+#
+sub acos {
+	my $z = $_[0];
+	return CORE::atan2(CORE::sqrt(1-$z*$z), $z)
+	    if (! ref $z) && CORE::abs($z) <= 1;
+	$z = cplx($z, 0) unless ref $z;
+	my ($x, $y) = @{$z->_cartesian};
+	return 0 if $x == 1 && $y == 0;
+	my $t1 = CORE::sqrt(($x+1)*($x+1) + $y*$y);
+	my $t2 = CORE::sqrt(($x-1)*($x-1) + $y*$y);
+	my $alpha = ($t1 + $t2)/2;
+	my $beta  = ($t1 - $t2)/2;
+	$alpha = 1 if $alpha < 1;
+	if    ($beta >  1) { $beta =  1 }
+	elsif ($beta < -1) { $beta = -1 }
+	my $u = CORE::atan2(CORE::sqrt(1-$beta*$beta), $beta);
+	my $v = CORE::log($alpha + CORE::sqrt($alpha*$alpha-1));
+	$v = -$v if $y > 0 || ($y == 0 && $x < -1);
+	return (ref $z)->make($u, $v);
+}
+
+#
+# asin
+#
+# Computes the arc sine asin(z) = -i log(iz + sqrt(1-z*z)).
+#
+sub asin {
+	my $z = $_[0];
+	return CORE::atan2($z, CORE::sqrt(1-$z*$z))
+	    if (! ref $z) && CORE::abs($z) <= 1;
+	$z = cplx($z, 0) unless ref $z;
+	my ($x, $y) = @{$z->_cartesian};
+	return 0 if $x == 0 && $y == 0;
+	my $t1 = CORE::sqrt(($x+1)*($x+1) + $y*$y);
+	my $t2 = CORE::sqrt(($x-1)*($x-1) + $y*$y);
+	my $alpha = ($t1 + $t2)/2;
+	my $beta  = ($t1 - $t2)/2;
+	$alpha = 1 if $alpha < 1;
+	if    ($beta >  1) { $beta =  1 }
+	elsif ($beta < -1) { $beta = -1 }
+	my $u =  CORE::atan2($beta, CORE::sqrt(1-$beta*$beta));
+	my $v = -CORE::log($alpha + CORE::sqrt($alpha*$alpha-1));
+	$v = -$v if $y > 0 || ($y == 0 && $x < -1);
+	return (ref $z)->make($u, $v);
+}
+
+#
+# atan
+#
+# Computes the arc tangent atan(z) = i/2 log((i+z) / (i-z)).
+#
+sub atan {
+	my ($z) = @_;
+	return CORE::atan2($z, 1) unless ref $z;
+	my ($x, $y) = ref $z ? @{$z->_cartesian} : ($z, 0);
+	return 0 if $x == 0 && $y == 0;
+	_divbyzero "atan(i)"  if ( $z == i);
+	_logofzero "atan(-i)" if (-$z == i); # -i is a bad file test...
+	my $log = &log((i + $z) / (i - $z));
+	return _ip2 * $log;
+}
+
+#
+# asec
+#
+# Computes the arc secant asec(z) = acos(1 / z).
+#
+sub asec {
+	my ($z) = @_;
+	_divbyzero "asec($z)", $z if ($z == 0);
+	return acos(1 / $z);
+}
+
+#
+# acsc
+#
+# Computes the arc cosecant acsc(z) = asin(1 / z).
+#
+sub acsc {
+	my ($z) = @_;
+	_divbyzero "acsc($z)", $z if ($z == 0);
+	return asin(1 / $z);
+}
+
+#
+# acosec
+#
+# Alias for acsc().
+#
+sub acosec { Math::Complex::acsc(@_) }
+
+#
+# acot
+#
+# Computes the arc cotangent acot(z) = atan(1 / z)
+#
+sub acot {
+	my ($z) = @_;
+	_divbyzero "acot(0)"  if $z == 0;
+	return ($z >= 0) ? CORE::atan2(1, $z) : CORE::atan2(-1, -$z)
+	    unless ref $z;
+	_divbyzero "acot(i)"  if ($z - i == 0);
+	_logofzero "acot(-i)" if ($z + i == 0);
+	return atan(1 / $z);
+}
+
+#
+# acotan
+#
+# Alias for acot().
+#
+sub acotan { Math::Complex::acot(@_) }
+
+#
+# cosh
+#
+# Computes the hyperbolic cosine cosh(z) = (exp(z) + exp(-z))/2.
+#
+sub cosh {
+	my ($z) = @_;
+	my $ex;
+	unless (ref $z) {
+	    $ex = CORE::exp($z);
+            return $ex ? ($ex == $ExpInf ? Inf() : ($ex + 1/$ex)/2) : Inf();
+	}
+	my ($x, $y) = @{$z->_cartesian};
+	$ex = CORE::exp($x);
+	my $ex_1 = $ex ? 1 / $ex : Inf();
+	return (ref $z)->make(CORE::cos($y) * ($ex + $ex_1)/2,
+			      CORE::sin($y) * ($ex - $ex_1)/2);
+}
+
+#
+# sinh
+#
+# Computes the hyperbolic sine sinh(z) = (exp(z) - exp(-z))/2.
+#
+sub sinh {
+	my ($z) = @_;
+	my $ex;
+	unless (ref $z) {
+	    return 0 if $z == 0;
+	    $ex = CORE::exp($z);
+            return $ex ? ($ex == $ExpInf ? Inf() : ($ex - 1/$ex)/2) : -Inf();
+	}
+	my ($x, $y) = @{$z->_cartesian};
+	my $cy = CORE::cos($y);
+	my $sy = CORE::sin($y);
+	$ex = CORE::exp($x);
+	my $ex_1 = $ex ? 1 / $ex : Inf();
+	return (ref $z)->make(CORE::cos($y) * ($ex - $ex_1)/2,
+			      CORE::sin($y) * ($ex + $ex_1)/2);
+}
+
+#
+# tanh
+#
+# Computes the hyperbolic tangent tanh(z) = sinh(z) / cosh(z).
+#
+sub tanh {
+	my ($z) = @_;
+	my $cz = cosh($z);
+	_divbyzero "tanh($z)", "cosh($z)" if ($cz == 0);
+	my $sz = sinh($z);
+	return  1 if $cz ==  $sz;
+	return -1 if $cz == -$sz;
+	return $sz / $cz;
+}
+
+#
+# sech
+#
+# Computes the hyperbolic secant sech(z) = 1 / cosh(z).
+#
+sub sech {
+	my ($z) = @_;
+	my $cz = cosh($z);
+	_divbyzero "sech($z)", "cosh($z)" if ($cz == 0);
+	return 1 / $cz;
+}
+
+#
+# csch
+#
+# Computes the hyperbolic cosecant csch(z) = 1 / sinh(z).
+#
+sub csch {
+	my ($z) = @_;
+	my $sz = sinh($z);
+	_divbyzero "csch($z)", "sinh($z)" if ($sz == 0);
+	return 1 / $sz;
+}
+
+#
+# cosech
+#
+# Alias for csch().
+#
+sub cosech { Math::Complex::csch(@_) }
+
+#
+# coth
+#
+# Computes the hyperbolic cotangent coth(z) = cosh(z) / sinh(z).
+#
+sub coth {
+	my ($z) = @_;
+	my $sz = sinh($z);
+	_divbyzero "coth($z)", "sinh($z)" if $sz == 0;
+	my $cz = cosh($z);
+	return  1 if $cz ==  $sz;
+	return -1 if $cz == -$sz;
+	return $cz / $sz;
+}
+
+#
+# cotanh
+#
+# Alias for coth().
+#
+sub cotanh { Math::Complex::coth(@_) }
+
+#
+# acosh
+#
+# Computes the area/inverse hyperbolic cosine acosh(z) = log(z + sqrt(z*z-1)).
+#
+sub acosh {
+	my ($z) = @_;
+	unless (ref $z) {
+	    $z = cplx($z, 0);
+	}
+	my ($re, $im) = @{$z->_cartesian};
+	if ($im == 0) {
+	    return CORE::log($re + CORE::sqrt($re*$re - 1))
+		if $re >= 1;
+	    return cplx(0, CORE::atan2(CORE::sqrt(1 - $re*$re), $re))
+		if CORE::abs($re) < 1;
+	}
+	my $t = &sqrt($z * $z - 1) + $z;
+	# Try Taylor if looking bad (this usually means that
+	# $z was large negative, therefore the sqrt is really
+	# close to abs(z), summing that with z...)
+	$t = 1/(2 * $z) - 1/(8 * $z**3) + 1/(16 * $z**5) - 5/(128 * $z**7)
+	    if $t == 0;
+	my $u = &log($t);
+	$u->Im(-$u->Im) if $re < 0 && $im == 0;
+	return $re < 0 ? -$u : $u;
+}
+
+#
+# asinh
+#
+# Computes the area/inverse hyperbolic sine asinh(z) = log(z + sqrt(z*z+1))
+#
+sub asinh {
+	my ($z) = @_;
+	unless (ref $z) {
+	    my $t = $z + CORE::sqrt($z*$z + 1);
+	    return CORE::log($t) if $t;
+	}
+	my $t = &sqrt($z * $z + 1) + $z;
+	# Try Taylor if looking bad (this usually means that
+	# $z was large negative, therefore the sqrt is really
+	# close to abs(z), summing that with z...)
+	$t = 1/(2 * $z) - 1/(8 * $z**3) + 1/(16 * $z**5) - 5/(128 * $z**7)
+	    if $t == 0;
+	return &log($t);
+}
+
+#
+# atanh
+#
+# Computes the area/inverse hyperbolic tangent atanh(z) = 1/2 log((1+z) / (1-z)).
+#
+sub atanh {
+	my ($z) = @_;
+	unless (ref $z) {
+	    return CORE::log((1 + $z)/(1 - $z))/2 if CORE::abs($z) < 1;
+	    $z = cplx($z, 0);
+	}
+	_divbyzero 'atanh(1)',  "1 - $z" if (1 - $z == 0);
+	_logofzero 'atanh(-1)'           if (1 + $z == 0);
+	return 0.5 * &log((1 + $z) / (1 - $z));
+}
+
+#
+# asech
+#
+# Computes the area/inverse hyperbolic secant asech(z) = acosh(1 / z).
+#
+sub asech {
+	my ($z) = @_;
+	_divbyzero 'asech(0)', "$z" if ($z == 0);
+	return acosh(1 / $z);
+}
+
+#
+# acsch
+#
+# Computes the area/inverse hyperbolic cosecant acsch(z) = asinh(1 / z).
+#
+sub acsch {
+	my ($z) = @_;
+	_divbyzero 'acsch(0)', $z if ($z == 0);
+	return asinh(1 / $z);
+}
+
+#
+# acosech
+#
+# Alias for acosh().
+#
+sub acosech { Math::Complex::acsch(@_) }
+
+#
+# acoth
+#
+# Computes the area/inverse hyperbolic cotangent acoth(z) = 1/2 log((1+z) / (z-1)).
+#
+sub acoth {
+	my ($z) = @_;
+	_divbyzero 'acoth(0)'            if ($z == 0);
+	unless (ref $z) {
+	    return CORE::log(($z + 1)/($z - 1))/2 if CORE::abs($z) > 1;
+	    $z = cplx($z, 0);
+	}
+	_divbyzero 'acoth(1)',  "$z - 1" if ($z - 1 == 0);
+	_logofzero 'acoth(-1)', "1 + $z" if (1 + $z == 0);
+	return &log((1 + $z) / ($z - 1)) / 2;
+}
+
+#
+# acotanh
+#
+# Alias for acot().
+#
+sub acotanh { Math::Complex::acoth(@_) }
+
+#
+# (atan2)
+#
+# Compute atan(z1/z2), minding the right quadrant.
+#
+sub atan2 {
+	my ($z1, $z2, $inverted) = @_;
+	my ($re1, $im1, $re2, $im2);
+	if ($inverted) {
+	    ($re1, $im1) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
+	    ($re2, $im2) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
+	} else {
+	    ($re1, $im1) = ref $z1 ? @{$z1->_cartesian} : ($z1, 0);
+	    ($re2, $im2) = ref $z2 ? @{$z2->_cartesian} : ($z2, 0);
+	}
+	if ($im1 || $im2) {
+	    # In MATLAB the imaginary parts are ignored.
+	    # warn "atan2: Imaginary parts ignored";
+	    # http://documents.wolfram.com/mathematica/functions/ArcTan
+	    # NOTE: Mathematica ArcTan[x,y] while atan2(y,x)
+	    my $s = $z1 * $z1 + $z2 * $z2;
+	    _divbyzero("atan2") if $s == 0;
+	    my $i = &i;
+	    my $r = $z2 + $z1 * $i;
+	    return -$i * &log($r / &sqrt( $s ));
+	}
+	return CORE::atan2($re1, $re2);
+}
+
+#
+# display_format
+# ->display_format
+#
+# Set (get if no argument) the display format for all complex numbers that
+# don't happen to have overridden it via ->display_format
+#
+# When called as an object method, this actually sets the display format for
+# the current object.
+#
+# Valid object formats are 'c' and 'p' for cartesian and polar. The first
+# letter is used actually, so the type can be fully spelled out for clarity.
+#
+sub display_format {
+	my $self  = shift;
+	my %display_format = %DISPLAY_FORMAT;
+
+	if (ref $self) {			# Called as an object method
+	    if (exists $self->{display_format}) {
+		my %obj = %{$self->{display_format}};
+		@display_format{keys %obj} = values %obj;
+	    }
+	}
+	if (@_ == 1) {
+	    $display_format{style} = shift;
+	} else {
+	    my %new = @_;
+	    @display_format{keys %new} = values %new;
+	}
+
+	if (ref $self) { # Called as an object method
+	    $self->{display_format} = { %display_format };
+	    return
+		wantarray ?
+		    %{$self->{display_format}} :
+		    $self->{display_format}->{style};
+	}
+
+        # Called as a class method
+	%DISPLAY_FORMAT = %display_format;
+	return
+	    wantarray ?
+		%DISPLAY_FORMAT :
+		    $DISPLAY_FORMAT{style};
+}
+
+#
+# (_stringify)
+#
+# Show nicely formatted complex number under its cartesian or polar form,
+# depending on the current display format:
+#
+# . If a specific display format has been recorded for this object, use it.
+# . Otherwise, use the generic current default for all complex numbers,
+#   which is a package global variable.
+#
+sub _stringify {
+	my ($z) = shift;
+
+	my $style = $z->display_format;
+
+	$style = $DISPLAY_FORMAT{style} unless defined $style;
+
+	return $z->_stringify_polar if $style =~ /^p/i;
+	return $z->_stringify_cartesian;
+}
+
+#
+# ->_stringify_cartesian
+#
+# Stringify as a cartesian representation 'a+bi'.
+#
+sub _stringify_cartesian {
+	my $z  = shift;
+	my ($x, $y) = @{$z->_cartesian};
+	my ($re, $im);
+
+	my %format = $z->display_format;
+	my $format = $format{format};
+
+	if ($x) {
+	    if ($x =~ /^NaN[QS]?$/i) {
+		$re = $x;
+	    } else {
+		if ($x =~ /^-?\Q$Inf\E$/oi) {
+		    $re = $x;
+		} else {
+		    $re = defined $format ? sprintf($format, $x) : $x;
+		}
+	    }
+	} else {
+	    undef $re;
+	}
+
+	if ($y) {
+	    if ($y =~ /^(NaN[QS]?)$/i) {
+		$im = $y;
+	    } else {
+		if ($y =~ /^-?\Q$Inf\E$/oi) {
+		    $im = $y;
+		} else {
+		    $im =
+			defined $format ?
+			    sprintf($format, $y) :
+			    ($y == 1 ? "" : ($y == -1 ? "-" : $y));
+		}
+	    }
+	    $im .= "i";
+	} else {
+	    undef $im;
+	}
+
+	my $str = $re;
+
+	if (defined $im) {
+	    if ($y < 0) {
+		$str .= $im;
+	    } elsif ($y > 0 || $im =~ /^NaN[QS]?i$/i)  {
+		$str .= "+" if defined $re;
+		$str .= $im;
+	    }
+	} elsif (!defined $re) {
+	    $str = "0";
+	}
+
+	return $str;
+}
+
+
+#
+# ->_stringify_polar
+#
+# Stringify as a polar representation '[r,t]'.
+#
+sub _stringify_polar {
+	my $z  = shift;
+	my ($r, $t) = @{$z->_polar};
+	my $theta;
+
+	my %format = $z->display_format;
+	my $format = $format{format};
+
+	if ($t =~ /^NaN[QS]?$/i || $t =~ /^-?\Q$Inf\E$/oi) {
+	    $theta = $t; 
+	} elsif ($t == pi) {
+	    $theta = "pi";
+	} elsif ($r == 0 || $t == 0) {
+	    $theta = defined $format ? sprintf($format, $t) : $t;
+	}
+
+	return "[$r,$theta]" if defined $theta;
+
+	#
+	# Try to identify pi/n and friends.
+	#
+
+	$t -= int(CORE::abs($t) / pi2) * pi2;
+
+	if ($format{polar_pretty_print} && $t) {
+	    my ($a, $b);
+	    for $a (2..9) {
+		$b = $t * $a / pi;
+		if ($b =~ /^-?\d+$/) {
+		    $b = $b < 0 ? "-" : "" if CORE::abs($b) == 1;
+		    $theta = "${b}pi/$a";
+		    last;
+		}
+	    }
+	}
+
+        if (defined $format) {
+	    $r     = sprintf($format, $r);
+	    $theta = sprintf($format, $t) unless defined $theta;
+	} else {
+	    $theta = $t unless defined $theta;
+	}
+
+	return "[$r,$theta]";
+}
+
+sub Inf {
+    return $Inf;
+}
+
+1;
+__END__
+
+=pod
+
+=head1 NAME
+
+Math::Complex - complex numbers and associated mathematical functions
+
+=head1 SYNOPSIS
+
+	use Math::Complex;
+
+	$z = Math::Complex->make(5, 6);
+	$t = 4 - 3*i + $z;
+	$j = cplxe(1, 2*pi/3);
+
+=head1 DESCRIPTION
+
+This package lets you create and manipulate complex numbers. By default,
+I<Perl> limits itself to real numbers, but an extra C<use> statement brings
+full complex support, along with a full set of mathematical functions
+typically associated with and/or extended to complex numbers.
+
+If you wonder what complex numbers are, they were invented to be able to solve
+the following equation:
+
+	x*x = -1
+
+and by definition, the solution is noted I<i> (engineers use I<j> instead since
+I<i> usually denotes an intensity, but the name does not matter). The number
+I<i> is a pure I<imaginary> number.
+
+The arithmetics with pure imaginary numbers works just like you would expect
+it with real numbers... you just have to remember that
+
+	i*i = -1
+
+so you have:
+
+	5i + 7i = i * (5 + 7) = 12i
+	4i - 3i = i * (4 - 3) = i
+	4i * 2i = -8
+	6i / 2i = 3
+	1 / i = -i
+
+Complex numbers are numbers that have both a real part and an imaginary
+part, and are usually noted:
+
+	a + bi
+
+where C<a> is the I<real> part and C<b> is the I<imaginary> part. The
+arithmetic with complex numbers is straightforward. You have to
+keep track of the real and the imaginary parts, but otherwise the
+rules used for real numbers just apply:
+
+	(4 + 3i) + (5 - 2i) = (4 + 5) + i(3 - 2) = 9 + i
+	(2 + i) * (4 - i) = 2*4 + 4i -2i -i*i = 8 + 2i + 1 = 9 + 2i
+
+A graphical representation of complex numbers is possible in a plane
+(also called the I<complex plane>, but it's really a 2D plane).
+The number
+
+	z = a + bi
+
+is the point whose coordinates are (a, b). Actually, it would
+be the vector originating from (0, 0) to (a, b). It follows that the addition
+of two complex numbers is a vectorial addition.
+
+Since there is a bijection between a point in the 2D plane and a complex
+number (i.e. the mapping is unique and reciprocal), a complex number
+can also be uniquely identified with polar coordinates:
+
+	[rho, theta]
+
+where C<rho> is the distance to the origin, and C<theta> the angle between
+the vector and the I<x> axis. There is a notation for this using the
+exponential form, which is:
+
+	rho * exp(i * theta)
+
+where I<i> is the famous imaginary number introduced above. Conversion
+between this form and the cartesian form C<a + bi> is immediate:
+
+	a = rho * cos(theta)
+	b = rho * sin(theta)
+
+which is also expressed by this formula:
+
+	z = rho * exp(i * theta) = rho * (cos theta + i * sin theta)
+
+In other words, it's the projection of the vector onto the I<x> and I<y>
+axes. Mathematicians call I<rho> the I<norm> or I<modulus> and I<theta>
+the I<argument> of the complex number. The I<norm> of C<z> is
+marked here as C<abs(z)>.
+
+The polar notation (also known as the trigonometric representation) is
+much more handy for performing multiplications and divisions of
+complex numbers, whilst the cartesian notation is better suited for
+additions and subtractions. Real numbers are on the I<x> axis, and
+therefore I<y> or I<theta> is zero or I<pi>.
+
+All the common operations that can be performed on a real number have
+been defined to work on complex numbers as well, and are merely
+I<extensions> of the operations defined on real numbers. This means
+they keep their natural meaning when there is no imaginary part, provided
+the number is within their definition set.
+
+For instance, the C<sqrt> routine which computes the square root of
+its argument is only defined for non-negative real numbers and yields a
+non-negative real number (it is an application from B<R+> to B<R+>).
+If we allow it to return a complex number, then it can be extended to
+negative real numbers to become an application from B<R> to B<C> (the
+set of complex numbers):
+
+	sqrt(x) = x >= 0 ? sqrt(x) : sqrt(-x)*i
+
+It can also be extended to be an application from B<C> to B<C>,
+whilst its restriction to B<R> behaves as defined above by using
+the following definition:
+
+	sqrt(z = [r,t]) = sqrt(r) * exp(i * t/2)
+
+Indeed, a negative real number can be noted C<[x,pi]> (the modulus
+I<x> is always non-negative, so C<[x,pi]> is really C<-x>, a negative
+number) and the above definition states that
+
+	sqrt([x,pi]) = sqrt(x) * exp(i*pi/2) = [sqrt(x),pi/2] = sqrt(x)*i
+
+which is exactly what we had defined for negative real numbers above.
+The C<sqrt> returns only one of the solutions: if you want the both,
+use the C<root> function.
+
+All the common mathematical functions defined on real numbers that
+are extended to complex numbers share that same property of working
+I<as usual> when the imaginary part is zero (otherwise, it would not
+be called an extension, would it?).
+
+A I<new> operation possible on a complex number that is
+the identity for real numbers is called the I<conjugate>, and is noted
+with a horizontal bar above the number, or C<~z> here.
+
+	 z = a + bi
+	~z = a - bi
+
+Simple... Now look:
+
+	z * ~z = (a + bi) * (a - bi) = a*a + b*b
+
+We saw that the norm of C<z> was noted C<abs(z)> and was defined as the
+distance to the origin, also known as:
+
+	rho = abs(z) = sqrt(a*a + b*b)
+
+so
+
+	z * ~z = abs(z) ** 2
+
+If z is a pure real number (i.e. C<b == 0>), then the above yields:
+
+	a * a = abs(a) ** 2
+
+which is true (C<abs> has the regular meaning for real number, i.e. stands
+for the absolute value). This example explains why the norm of C<z> is
+noted C<abs(z)>: it extends the C<abs> function to complex numbers, yet
+is the regular C<abs> we know when the complex number actually has no
+imaginary part... This justifies I<a posteriori> our use of the C<abs>
+notation for the norm.
+
+=head1 OPERATIONS
+
+Given the following notations:
+
+	z1 = a + bi = r1 * exp(i * t1)
+	z2 = c + di = r2 * exp(i * t2)
+	z = <any complex or real number>
+
+the following (overloaded) operations are supported on complex numbers:
+
+	z1 + z2 = (a + c) + i(b + d)
+	z1 - z2 = (a - c) + i(b - d)
+	z1 * z2 = (r1 * r2) * exp(i * (t1 + t2))
+	z1 / z2 = (r1 / r2) * exp(i * (t1 - t2))
+	z1 ** z2 = exp(z2 * log z1)
+	~z = a - bi
+	abs(z) = r1 = sqrt(a*a + b*b)
+	sqrt(z) = sqrt(r1) * exp(i * t/2)
+	exp(z) = exp(a) * exp(i * b)
+	log(z) = log(r1) + i*t
+	sin(z) = 1/2i (exp(i * z1) - exp(-i * z))
+	cos(z) = 1/2 (exp(i * z1) + exp(-i * z))
+	atan2(y, x) = atan(y / x) # Minding the right quadrant, note the order.
+
+The definition used for complex arguments of atan2() is
+
+       -i log((x + iy)/sqrt(x*x+y*y))
+
+Note that atan2(0, 0) is not well-defined.
+
+The following extra operations are supported on both real and complex
+numbers:
+
+	Re(z) = a
+	Im(z) = b
+	arg(z) = t
+	abs(z) = r
+
+	cbrt(z) = z ** (1/3)
+	log10(z) = log(z) / log(10)
+	logn(z, n) = log(z) / log(n)
+
+	tan(z) = sin(z) / cos(z)
+
+	csc(z) = 1 / sin(z)
+	sec(z) = 1 / cos(z)
+	cot(z) = 1 / tan(z)
+
+	asin(z) = -i * log(i*z + sqrt(1-z*z))
+	acos(z) = -i * log(z + i*sqrt(1-z*z))
+	atan(z) = i/2 * log((i+z) / (i-z))
+
+	acsc(z) = asin(1 / z)
+	asec(z) = acos(1 / z)
+	acot(z) = atan(1 / z) = -i/2 * log((i+z) / (z-i))
+
+	sinh(z) = 1/2 (exp(z) - exp(-z))
+	cosh(z) = 1/2 (exp(z) + exp(-z))
+	tanh(z) = sinh(z) / cosh(z) = (exp(z) - exp(-z)) / (exp(z) + exp(-z))
+
+	csch(z) = 1 / sinh(z)
+	sech(z) = 1 / cosh(z)
+	coth(z) = 1 / tanh(z)
+
+	asinh(z) = log(z + sqrt(z*z+1))
+	acosh(z) = log(z + sqrt(z*z-1))
+	atanh(z) = 1/2 * log((1+z) / (1-z))
+
+	acsch(z) = asinh(1 / z)
+	asech(z) = acosh(1 / z)
+	acoth(z) = atanh(1 / z) = 1/2 * log((1+z) / (z-1))
+
+I<arg>, I<abs>, I<log>, I<csc>, I<cot>, I<acsc>, I<acot>, I<csch>,
+I<coth>, I<acosech>, I<acotanh>, have aliases I<rho>, I<theta>, I<ln>,
+I<cosec>, I<cotan>, I<acosec>, I<acotan>, I<cosech>, I<cotanh>,
+I<acosech>, I<acotanh>, respectively.  C<Re>, C<Im>, C<arg>, C<abs>,
+C<rho>, and C<theta> can be used also as mutators.  The C<cbrt>
+returns only one of the solutions: if you want all three, use the
+C<root> function.
+
+The I<root> function is available to compute all the I<n>
+roots of some complex, where I<n> is a strictly positive integer.
+There are exactly I<n> such roots, returned as a list. Getting the
+number mathematicians call C<j> such that:
+
+	1 + j + j*j = 0;
+
+is a simple matter of writing:
+
+	$j = (root(1, 3))[1];
+
+The I<k>th root for C<z = [r,t]> is given by:
+
+	(root(z, n))[k] = r**(1/n) * exp(i * (t + 2*k*pi)/n)
+
+You can return the I<k>th root directly by C<root(z, n, k)>,
+indexing starting from I<zero> and ending at I<n - 1>.
+
+The I<spaceship> numeric comparison operator, E<lt>=E<gt>, is also
+defined. In order to ensure its restriction to real numbers is conform
+to what you would expect, the comparison is run on the real part of
+the complex number first, and imaginary parts are compared only when
+the real parts match.
+
+=head1 CREATION
+
+To create a complex number, use either:
+
+	$z = Math::Complex->make(3, 4);
+	$z = cplx(3, 4);
+
+if you know the cartesian form of the number, or
+
+	$z = 3 + 4*i;
+
+if you like. To create a number using the polar form, use either:
+
+	$z = Math::Complex->emake(5, pi/3);
+	$x = cplxe(5, pi/3);
+
+instead. The first argument is the modulus, the second is the angle
+(in radians, the full circle is 2*pi).  (Mnemonic: C<e> is used as a
+notation for complex numbers in the polar form).
+
+It is possible to write:
+
+	$x = cplxe(-3, pi/4);
+
+but that will be silently converted into C<[3,-3pi/4]>, since the
+modulus must be non-negative (it represents the distance to the origin
+in the complex plane).
+
+It is also possible to have a complex number as either argument of the
+C<make>, C<emake>, C<cplx>, and C<cplxe>: the appropriate component of
+the argument will be used.
+
+	$z1 = cplx(-2,  1);
+	$z2 = cplx($z1, 4);
+
+The C<new>, C<make>, C<emake>, C<cplx>, and C<cplxe> will also
+understand a single (string) argument of the forms
+
+    	2-3i
+    	-3i
+	[2,3]
+	[2,-3pi/4]
+	[2]
+
+in which case the appropriate cartesian and exponential components
+will be parsed from the string and used to create new complex numbers.
+The imaginary component and the theta, respectively, will default to zero.
+
+The C<new>, C<make>, C<emake>, C<cplx>, and C<cplxe> will also
+understand the case of no arguments: this means plain zero or (0, 0).
+
+=head1 DISPLAYING
+
+When printed, a complex number is usually shown under its cartesian
+style I<a+bi>, but there are legitimate cases where the polar style
+I<[r,t]> is more appropriate.  The process of converting the complex
+number into a string that can be displayed is known as I<stringification>.
+
+By calling the class method C<Math::Complex::display_format> and
+supplying either C<"polar"> or C<"cartesian"> as an argument, you
+override the default display style, which is C<"cartesian">. Not
+supplying any argument returns the current settings.
+
+This default can be overridden on a per-number basis by calling the
+C<display_format> method instead. As before, not supplying any argument
+returns the current display style for this number. Otherwise whatever you
+specify will be the new display style for I<this> particular number.
+
+For instance:
+
+	use Math::Complex;
+
+	Math::Complex::display_format('polar');
+	$j = (root(1, 3))[1];
+	print "j = $j\n";		# Prints "j = [1,2pi/3]"
+	$j->display_format('cartesian');
+	print "j = $j\n";		# Prints "j = -0.5+0.866025403784439i"
+
+The polar style attempts to emphasize arguments like I<k*pi/n>
+(where I<n> is a positive integer and I<k> an integer within [-9, +9]),
+this is called I<polar pretty-printing>.
+
+For the reverse of stringifying, see the C<make> and C<emake>.
+
+=head2 CHANGED IN PERL 5.6
+
+The C<display_format> class method and the corresponding
+C<display_format> object method can now be called using
+a parameter hash instead of just a one parameter.
+
+The old display format style, which can have values C<"cartesian"> or
+C<"polar">, can be changed using the C<"style"> parameter.
+
+	$j->display_format(style => "polar");
+
+The one parameter calling convention also still works.
+
+	$j->display_format("polar");
+
+There are two new display parameters.
+
+The first one is C<"format">, which is a sprintf()-style format string
+to be used for both numeric parts of the complex number(s).  The is
+somewhat system-dependent but most often it corresponds to C<"%.15g">.
+You can revert to the default by setting the C<format> to C<undef>.
+
+	# the $j from the above example
+
+	$j->display_format('format' => '%.5f');
+	print "j = $j\n";		# Prints "j = -0.50000+0.86603i"
+	$j->display_format('format' => undef);
+	print "j = $j\n";		# Prints "j = -0.5+0.86603i"
+
+Notice that this affects also the return values of the
+C<display_format> methods: in list context the whole parameter hash
+will be returned, as opposed to only the style parameter value.
+This is a potential incompatibility with earlier versions if you
+have been calling the C<display_format> method in list context.
+
+The second new display parameter is C<"polar_pretty_print">, which can
+be set to true or false, the default being true.  See the previous
+section for what this means.
+
+=head1 USAGE
+
+Thanks to overloading, the handling of arithmetics with complex numbers
+is simple and almost transparent.
+
+Here are some examples:
+
+	use Math::Complex;
+
+	$j = cplxe(1, 2*pi/3);	# $j ** 3 == 1
+	print "j = $j, j**3 = ", $j ** 3, "\n";
+	print "1 + j + j**2 = ", 1 + $j + $j**2, "\n";
+
+	$z = -16 + 0*i;			# Force it to be a complex
+	print "sqrt($z) = ", sqrt($z), "\n";
+
+	$k = exp(i * 2*pi/3);
+	print "$j - $k = ", $j - $k, "\n";
+
+	$z->Re(3);			# Re, Im, arg, abs,
+	$j->arg(2);			# (the last two aka rho, theta)
+					# can be used also as mutators.
+
+=head1 CONSTANTS
+
+=head2 PI
+
+The constant C<pi> and some handy multiples of it (pi2, pi4,
+and pip2 (pi/2) and pip4 (pi/4)) are also available if separately
+exported:
+
+    use Math::Complex ':pi'; 
+    $third_of_circle = pi2 / 3;
+
+=head2 Inf
+
+The floating point infinity can be exported as a subroutine Inf():
+
+    use Math::Complex qw(Inf sinh);
+    my $AlsoInf = Inf() + 42;
+    my $AnotherInf = sinh(1e42);
+    print "$AlsoInf is $AnotherInf\n" if $AlsoInf == $AnotherInf;
+
+Note that the stringified form of infinity varies between platforms:
+it can be for example any of
+
+   inf
+   infinity
+   INF
+   1.#INF
+
+or it can be something else. 
+
+Also note that in some platforms trying to use the infinity in
+arithmetic operations may result in Perl crashing because using
+an infinity causes SIGFPE or its moral equivalent to be sent.
+The way to ignore this is
+
+  local $SIG{FPE} = sub { };
+
+=head1 ERRORS DUE TO DIVISION BY ZERO OR LOGARITHM OF ZERO
+
+The division (/) and the following functions
+
+	log	ln	log10	logn
+	tan	sec	csc	cot
+	atan	asec	acsc	acot
+	tanh	sech	csch	coth
+	atanh	asech	acsch	acoth
+
+cannot be computed for all arguments because that would mean dividing
+by zero or taking logarithm of zero. These situations cause fatal
+runtime errors looking like this
+
+	cot(0): Division by zero.
+	(Because in the definition of cot(0), the divisor sin(0) is 0)
+	Died at ...
+
+or
+
+	atanh(-1): Logarithm of zero.
+	Died at...
+
+For the C<csc>, C<cot>, C<asec>, C<acsc>, C<acot>, C<csch>, C<coth>,
+C<asech>, C<acsch>, the argument cannot be C<0> (zero).  For the
+logarithmic functions and the C<atanh>, C<acoth>, the argument cannot
+be C<1> (one).  For the C<atanh>, C<acoth>, the argument cannot be
+C<-1> (minus one).  For the C<atan>, C<acot>, the argument cannot be
+C<i> (the imaginary unit).  For the C<atan>, C<acoth>, the argument
+cannot be C<-i> (the negative imaginary unit).  For the C<tan>,
+C<sec>, C<tanh>, the argument cannot be I<pi/2 + k * pi>, where I<k>
+is any integer.  atan2(0, 0) is undefined, and if the complex arguments
+are used for atan2(), a division by zero will happen if z1**2+z2**2 == 0.
+
+Note that because we are operating on approximations of real numbers,
+these errors can happen when merely `too close' to the singularities
+listed above.
+
+=head1 ERRORS DUE TO INDIGESTIBLE ARGUMENTS
+
+The C<make> and C<emake> accept both real and complex arguments.
+When they cannot recognize the arguments they will die with error
+messages like the following
+
+    Math::Complex::make: Cannot take real part of ...
+    Math::Complex::make: Cannot take real part of ...
+    Math::Complex::emake: Cannot take rho of ...
+    Math::Complex::emake: Cannot take theta of ...
+
+=head1 BUGS
+
+Saying C<use Math::Complex;> exports many mathematical routines in the
+caller environment and even overrides some (C<sqrt>, C<log>, C<atan2>).
+This is construed as a feature by the Authors, actually... ;-)
+
+All routines expect to be given real or complex numbers. Don't attempt to
+use BigFloat, since Perl has currently no rule to disambiguate a '+'
+operation (for instance) between two overloaded entities.
+
+In Cray UNICOS there is some strange numerical instability that results
+in root(), cos(), sin(), cosh(), sinh(), losing accuracy fast.  Beware.
+The bug may be in UNICOS math libs, in UNICOS C compiler, in Math::Complex.
+Whatever it is, it does not manifest itself anywhere else where Perl runs.
+
+=head1 SEE ALSO
+
+L<Math::Trig>
+
+=head1 AUTHORS
+
+Daniel S. Lewart <F<lewart!at!uiuc.edu>>,
+Jarkko Hietaniemi <F<jhi!at!iki.fi>>,
+Raphael Manfredi <F<Raphael_Manfredi!at!pobox.com>>,
+Zefram <zefram@fysh.org>
+
+=head1 LICENSE
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=cut
+
+1;
+
+# eof
Index: gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Trig.pm
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Trig.pm
diff -N gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Trig.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/lib/Math/Trig.pm	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,773 @@
+#
+# Trigonometric functions, mostly inherited from Math::Complex.
+# -- Jarkko Hietaniemi, since April 1997
+# -- Raphael Manfredi, September 1996 (indirectly: because of Math::Complex)
+#
+
+package Math::Trig;
+
+{ use 5.006; }
+use strict;
+
+use Math::Complex 1.59;
+use Math::Complex qw(:trig :pi);
+require Exporter;
+
+our @ISA = qw(Exporter);
+
+our $VERSION = 1.62;
+
+my @angcnv = qw(rad2deg rad2grad
+		deg2rad deg2grad
+		grad2rad grad2deg);
+
+my @areal = qw(asin_real acos_real);
+
+our @EXPORT = (@{$Math::Complex::EXPORT_TAGS{'trig'}},
+	   @angcnv, @areal);
+
+my @rdlcnv = qw(cartesian_to_cylindrical
+		cartesian_to_spherical
+		cylindrical_to_cartesian
+		cylindrical_to_spherical
+		spherical_to_cartesian
+		spherical_to_cylindrical);
+
+my @greatcircle = qw(
+		     great_circle_distance
+		     great_circle_direction
+		     great_circle_bearing
+		     great_circle_waypoint
+		     great_circle_midpoint
+		     great_circle_destination
+		    );
+
+my @pi = qw(pi pi2 pi4 pip2 pip4);
+
+our @EXPORT_OK = (@rdlcnv, @greatcircle, @pi, 'Inf');
+
+# See e.g. the following pages:
+# https://www.movable-type.co.uk/scripts/latlong.html
+# https://edwilliams.org/avform.htm
+# https://en.wikipedia.org/wiki/Great-circle_distance
+
+our %EXPORT_TAGS = ('radial' => [ @rdlcnv ],
+	        'great_circle' => [ @greatcircle ],
+	        'pi'     => [ @pi ]);
+
+sub _DR  () { pi2/360 }
+sub _RD  () { 360/pi2 }
+sub _DG  () { 400/360 }
+sub _GD  () { 360/400 }
+sub _RG  () { 400/pi2 }
+sub _GR  () { pi2/400 }
+
+#
+# Truncating remainder.
+#
+
+sub _remt ($$) {
+    # Oh yes, POSIX::fmod() would be faster. Possibly. If it is available.
+    $_[0] - $_[1] * int($_[0] / $_[1]);
+}
+
+#
+# Angle conversions.
+#
+
+sub rad2rad($)     { _remt($_[0], pi2) }
+
+sub deg2deg($)     { _remt($_[0], 360) }
+
+sub grad2grad($)   { _remt($_[0], 400) }
+
+sub rad2deg ($;$)  { my $d = _RD * $_[0]; $_[1] ? $d : deg2deg($d) }
+
+sub deg2rad ($;$)  { my $d = _DR * $_[0]; $_[1] ? $d : rad2rad($d) }
+
+sub grad2deg ($;$) { my $d = _GD * $_[0]; $_[1] ? $d : deg2deg($d) }
+
+sub deg2grad ($;$) { my $d = _DG * $_[0]; $_[1] ? $d : grad2grad($d) }
+
+sub rad2grad ($;$) { my $d = _RG * $_[0]; $_[1] ? $d : grad2grad($d) }
+
+sub grad2rad ($;$) { my $d = _GR * $_[0]; $_[1] ? $d : rad2rad($d) }
+
+#
+# acos and asin functions which always return a real number
+#
+
+sub acos_real {
+    return 0  if $_[0] >=  1;
+    return pi if $_[0] <= -1;
+    return acos($_[0]);
+}
+
+sub asin_real {
+    return  &pip2 if $_[0] >=  1;
+    return -&pip2 if $_[0] <= -1;
+    return asin($_[0]);
+}
+
+sub cartesian_to_spherical {
+    my ( $x, $y, $z ) = @_;
+
+    my $rho = sqrt( $x * $x + $y * $y + $z * $z );
+
+    return ( $rho,
+             atan2( $y, $x ),
+             $rho ? acos_real( $z / $rho ) : 0 );
+}
+
+sub spherical_to_cartesian {
+    my ( $rho, $theta, $phi ) = @_;
+
+    return ( $rho * cos( $theta ) * sin( $phi ),
+             $rho * sin( $theta ) * sin( $phi ),
+             $rho * cos( $phi   ) );
+}
+
+sub spherical_to_cylindrical {
+    my ( $x, $y, $z ) = spherical_to_cartesian( @_ );
+
+    return ( sqrt( $x * $x + $y * $y ), $_[1], $z );
+}
+
+sub cartesian_to_cylindrical {
+    my ( $x, $y, $z ) = @_;
+
+    return ( sqrt( $x * $x + $y * $y ), atan2( $y, $x ), $z );
+}
+
+sub cylindrical_to_cartesian {
+    my ( $rho, $theta, $z ) = @_;
+
+    return ( $rho * cos( $theta ), $rho * sin( $theta ), $z );
+}
+
+sub cylindrical_to_spherical {
+    return ( cartesian_to_spherical( cylindrical_to_cartesian( @_ ) ) );
+}
+
+sub great_circle_distance {
+    my ( $theta0, $phi0, $theta1, $phi1, $rho ) = @_;
+
+    $rho = 1 unless defined $rho; # Default to the unit sphere.
+
+    my $dphi   = $phi1 - $phi0;
+    my $dtheta = $theta1 - $theta0;
+
+    # A formula that is accurate for all distances is the following special
+    # case of the Vincenty formula for an ellipsoid with equal major and minor
+    # axes.  See
+    # https://en.wikipedia.org/wiki/Great-circle_distance#Computational_formulas
+
+    my $c1 = sin($phi1) * sin($dtheta);
+    my $c2 = sin($phi1) * cos($dtheta);
+    my $c3 = sin($phi0) * cos($phi1) - cos($phi0) * $c2;
+    my $c4 = cos($phi0) * cos($phi1) + sin($phi0) * $c2;
+    return $rho * atan2(sqrt($c1 * $c1 + $c3 * $c3), $c4);
+}
+
+sub great_circle_direction {
+    my ( $theta0, $phi0, $theta1, $phi1 ) = @_;
+
+    my $lat0 = pip2 - $phi0;
+    my $lat1 = pip2 - $phi1;
+
+    return rad2rad(pi2 -
+	atan2(sin($theta0-$theta1) * cos($lat1),
+		cos($lat0) * sin($lat1) -
+		    sin($lat0) * cos($lat1) * cos($theta0-$theta1)));
+}
+
+*great_circle_bearing         = \&great_circle_direction;
+
+sub great_circle_waypoint {
+    my ( $theta0, $phi0, $theta1, $phi1, $point ) = @_;
+
+    $point = 0.5 unless defined $point;
+
+    my $d = great_circle_distance( $theta0, $phi0, $theta1, $phi1 );
+
+    return undef if $d == pi;
+
+    my $sd = sin($d);
+
+    return ($theta0, $phi0) if $sd == 0;
+
+    my $A = sin((1 - $point) * $d) / $sd;
+    my $B = sin(     $point  * $d) / $sd;
+
+    my $lat0 = pip2 - $phi0;
+    my $lat1 = pip2 - $phi1;
+
+    my $x = $A * cos($lat0) * cos($theta0) + $B * cos($lat1) * cos($theta1);
+    my $y = $A * cos($lat0) * sin($theta0) + $B * cos($lat1) * sin($theta1);
+    my $z = $A * sin($lat0)                + $B * sin($lat1);
+
+    my $theta = atan2($y, $x);
+    my $phi   = acos_real($z);
+
+    return ($theta, $phi);
+}
+
+sub great_circle_midpoint {
+    great_circle_waypoint(@_[0..3], 0.5);
+}
+
+sub great_circle_destination {
+    my ( $theta0, $phi0, $dir0, $dst ) = @_;
+
+    my $lat0 = pip2 - $phi0;
+
+    my $phi1   = asin_real(sin($lat0)*cos($dst) +
+			   cos($lat0)*sin($dst)*cos($dir0));
+
+    my $theta1 = $theta0 + atan2(sin($dir0)*sin($dst)*cos($lat0),
+				 cos($dst)-sin($lat0)*sin($phi1));
+
+    my $dir1 = great_circle_bearing($theta1, $phi1, $theta0, $phi0) + pi;
+
+    $dir1 -= pi2 if $dir1 > pi2;
+
+    return ($theta1, $phi1, $dir1);
+}
+
+1;
+
+__END__
+=pod
+
+=head1 NAME
+
+Math::Trig - trigonometric functions
+
+=head1 SYNOPSIS
+
+    use Math::Trig;
+
+    $x = tan(0.9);
+    $y = acos(3.7);
+    $z = asin(2.4);
+
+    $halfpi = pi/2;
+
+    $rad = deg2rad(120);
+
+    # Import constants pi2, pi4, pip2, pip4 (2*pi, 4*pi, pi/2, pi/4).
+    use Math::Trig ':pi';
+
+    # Import the conversions between cartesian/spherical/cylindrical.
+    use Math::Trig ':radial';
+
+        # Import the great circle formulas.
+    use Math::Trig ':great_circle';
+
+=head1 DESCRIPTION
+
+C<Math::Trig> defines many trigonometric functions not defined by the
+core Perl which defines only the C<sin()> and C<cos()>.  The constant
+B<pi> is also defined as are a few convenience functions for angle
+conversions, and I<great circle formulas> for spherical movement.
+
+=head1 TRIGONOMETRIC FUNCTIONS
+
+The tangent
+
+=over 4
+
+=item B<tan>
+
+=back
+
+The cofunctions of the sine, cosine, and tangent (cosec/csc and cotan/cot
+are aliases)
+
+B<csc>, B<cosec>, B<sec>, B<sec>, B<cot>, B<cotan>
+
+The arcus (also known as the inverse) functions of the sine, cosine,
+and tangent
+
+B<asin>, B<acos>, B<atan>
+
+The principal value of the arc tangent of y/x
+
+B<atan2>(y, x)
+
+The arcus cofunctions of the sine, cosine, and tangent (acosec/acsc
+and acotan/acot are aliases).  Note that atan2(0, 0) is not well-defined.
+
+B<acsc>, B<acosec>, B<asec>, B<acot>, B<acotan>
+
+The hyperbolic sine, cosine, and tangent
+
+B<sinh>, B<cosh>, B<tanh>
+
+The cofunctions of the hyperbolic sine, cosine, and tangent (cosech/csch
+and cotanh/coth are aliases)
+
+B<csch>, B<cosech>, B<sech>, B<coth>, B<cotanh>
+
+The area (also known as the inverse) functions of the hyperbolic
+sine, cosine, and tangent
+
+B<asinh>, B<acosh>, B<atanh>
+
+The area cofunctions of the hyperbolic sine, cosine, and tangent
+(acsch/acosech and acoth/acotanh are aliases)
+
+B<acsch>, B<acosech>, B<asech>, B<acoth>, B<acotanh>
+
+The trigonometric constant B<pi> and some of handy multiples
+of it are also defined.
+
+B<pi, pi2, pi4, pip2, pip4>
+
+=head2 ERRORS DUE TO DIVISION BY ZERO
+
+The following functions
+
+    acoth
+    acsc
+    acsch
+    asec
+    asech
+    atanh
+    cot
+    coth
+    csc
+    csch
+    sec
+    sech
+    tan
+    tanh
+
+cannot be computed for all arguments because that would mean dividing
+by zero or taking logarithm of zero. These situations cause fatal
+runtime errors looking like this
+
+    cot(0): Division by zero.
+    (Because in the definition of cot(0), the divisor sin(0) is 0)
+    Died at ...
+
+or
+
+    atanh(-1): Logarithm of zero.
+    Died at...
+
+For the C<csc>, C<cot>, C<asec>, C<acsc>, C<acot>, C<csch>, C<coth>,
+C<asech>, C<acsch>, the argument cannot be C<0> (zero).  For the
+C<atanh>, C<acoth>, the argument cannot be C<1> (one).  For the
+C<atanh>, C<acoth>, the argument cannot be C<-1> (minus one).  For the
+C<tan>, C<sec>, C<tanh>, C<sech>, the argument cannot be I<pi/2 + k *
+pi>, where I<k> is any integer.
+
+Note that atan2(0, 0) is not well-defined.
+
+=head2 SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS
+
+Please note that some of the trigonometric functions can break out
+from the B<real axis> into the B<complex plane>. For example
+C<asin(2)> has no definition for plain real numbers but it has
+definition for complex numbers.
+
+In Perl terms this means that supplying the usual Perl numbers (also
+known as scalars, please see L<perldata>) as input for the
+trigonometric functions might produce as output results that no more
+are simple real numbers: instead they are complex numbers.
+
+The C<Math::Trig> handles this by using the C<Math::Complex> package
+which knows how to handle complex numbers, please see L<Math::Complex>
+for more information. In practice you need not to worry about getting
+complex numbers as results because the C<Math::Complex> takes care of
+details like for example how to display complex numbers. For example:
+
+    print asin(2), "\n";
+
+should produce something like this (take or leave few last decimals):
+
+    1.5707963267949-1.31695789692482i
+
+That is, a complex number with the real part of approximately C<1.571>
+and the imaginary part of approximately C<-1.317>.
+
+=head1 PLANE ANGLE CONVERSIONS
+
+(Plane, 2-dimensional) angles may be converted with the following functions.
+
+=over
+
+=item deg2rad
+
+    $radians  = deg2rad($degrees);
+
+=item grad2rad
+
+    $radians  = grad2rad($gradians);
+
+=item rad2deg
+
+    $degrees  = rad2deg($radians);
+
+=item grad2deg
+
+    $degrees  = grad2deg($gradians);
+
+=item deg2grad
+
+    $gradians = deg2grad($degrees);
+
+=item rad2grad
+
+    $gradians = rad2grad($radians);
+
+=back
+
+The full circle is 2 I<pi> radians or I<360> degrees or I<400> gradians.
+The result is by default wrapped to be inside the [0, {2pi,360,400}] circle.
+If you don't want this, supply a true second argument:
+
+    $zillions_of_radians  = deg2rad($zillions_of_degrees, 1);
+    $negative_degrees     = rad2deg($negative_radians, 1);
+
+You can also do the wrapping explicitly by rad2rad(), deg2deg(), and
+grad2grad().
+
+=over 4
+
+=item rad2rad
+
+    $radians_wrapped_by_2pi = rad2rad($radians);
+
+=item deg2deg
+
+    $degrees_wrapped_by_360 = deg2deg($degrees);
+
+=item grad2grad
+
+    $gradians_wrapped_by_400 = grad2grad($gradians);
+
+=back
+
+=head1 RADIAL COORDINATE CONVERSIONS
+
+B<Radial coordinate systems> are the B<spherical> and the B<cylindrical>
+systems, explained shortly in more detail.
+
+You can import radial coordinate conversion functions by using the
+C<:radial> tag:
+
+    use Math::Trig ':radial';
+
+    ($rho, $theta, $z)     = cartesian_to_cylindrical($x, $y, $z);
+    ($rho, $theta, $phi)   = cartesian_to_spherical($x, $y, $z);
+    ($x, $y, $z)           = cylindrical_to_cartesian($rho, $theta, $z);
+    ($rho_s, $theta, $phi) = cylindrical_to_spherical($rho_c, $theta, $z);
+    ($x, $y, $z)           = spherical_to_cartesian($rho, $theta, $phi);
+    ($rho_c, $theta, $z)   = spherical_to_cylindrical($rho_s, $theta, $phi);
+
+B<All angles are in radians>.
+
+=head2 COORDINATE SYSTEMS
+
+B<Cartesian> coordinates are the usual rectangular I<(x, y, z)>-coordinates.
+
+Spherical coordinates, I<(rho, theta, phi)>, are three-dimensional
+coordinates which define a point in three-dimensional space.  They are
+based on a sphere surface.  The radius of the sphere is B<rho>, also
+known as the I<radial> coordinate.  The angle in the I<xy>-plane
+(around the I<z>-axis) is B<theta>, also known as the I<azimuthal>
+coordinate.  The angle from the I<z>-axis is B<phi>, also known as the
+I<polar> coordinate.  The North Pole is therefore I<rho, 0, 0>, and
+the Gulf of Guinea (think of the missing big chunk of Africa) I<rho,
+0, pi/2>.  In geographical terms I<phi> is latitude (northward
+positive, southward negative) and I<theta> is longitude (eastward
+positive, westward negative).
+
+B<BEWARE>: some texts define I<theta> and I<phi> the other way round,
+some texts define the I<phi> to start from the horizontal plane, some
+texts use I<r> in place of I<rho>.
+
+Cylindrical coordinates, I<(rho, theta, z)>, are three-dimensional
+coordinates which define a point in three-dimensional space.  They are
+based on a cylinder surface.  The radius of the cylinder is B<rho>,
+also known as the I<radial> coordinate.  The angle in the I<xy>-plane
+(around the I<z>-axis) is B<theta>, also known as the I<azimuthal>
+coordinate.  The third coordinate is the I<z>, pointing up from the
+B<theta>-plane.
+
+=head2 3-D ANGLE CONVERSIONS
+
+Conversions to and from spherical and cylindrical coordinates are
+available.  Please notice that the conversions are not necessarily
+reversible because of the equalities like I<pi> angles being equal to
+I<-pi> angles.
+
+=over 4
+
+=item cartesian_to_cylindrical
+
+    ($rho, $theta, $z) = cartesian_to_cylindrical($x, $y, $z);
+
+=item cartesian_to_spherical
+
+    ($rho, $theta, $phi) = cartesian_to_spherical($x, $y, $z);
+
+=item cylindrical_to_cartesian
+
+    ($x, $y, $z) = cylindrical_to_cartesian($rho, $theta, $z);
+
+=item cylindrical_to_spherical
+
+    ($rho_s, $theta, $phi) = cylindrical_to_spherical($rho_c, $theta, $z);
+
+Notice that when C<$z> is not 0 C<$rho_s> is not equal to C<$rho_c>.
+
+=item spherical_to_cartesian
+
+    ($x, $y, $z) = spherical_to_cartesian($rho, $theta, $phi);
+
+=item spherical_to_cylindrical
+
+    ($rho_c, $theta, $z) = spherical_to_cylindrical($rho_s, $theta, $phi);
+
+Notice that when C<$z> is not 0 C<$rho_c> is not equal to C<$rho_s>.
+
+=back
+
+=head1 GREAT CIRCLE DISTANCES AND DIRECTIONS
+
+A great circle is section of a circle that contains the circle
+diameter: the shortest distance between two (non-antipodal) points on
+the spherical surface goes along the great circle connecting those two
+points.
+
+=head2 great_circle_distance
+
+Returns the great circle distance between two points on a sphere.
+
+    $distance = great_circle_distance($theta0, $phi0, $theta1, $phi1, [, $rho]);
+
+Where ($theta0, $phi0) and ($theta1, $phi1) are the spherical coordinates of
+the two points, respectively. The distance is in C<$rho> units. The C<$rho>
+is optional. It defaults to 1 (the unit sphere).
+
+If you are using geographic coordinates, latitude and longitude, you need to
+adjust for the fact that latitude is zero at the equator increasing towards
+the north and decreasing towards the south. Assuming ($lat0, $lon0) and
+($lat1, $lon1) are the geographic coordinates in radians of the two points,
+the distance can be computed with
+
+  $distance = great_circle_distance($lon0, pi/2 - $lat0,
+                                    $lon1, pi/2 - $lat1, $rho);
+
+=head2 great_circle_direction
+
+The direction you must follow the great circle (also known as I<bearing>)
+can be computed by the great_circle_direction() function:
+
+  use Math::Trig 'great_circle_direction';
+
+  $direction = great_circle_direction($theta0, $phi0, $theta1, $phi1);
+
+=head2 great_circle_bearing
+
+Alias 'great_circle_bearing' for 'great_circle_direction' is also available.
+
+  use Math::Trig 'great_circle_bearing';
+
+  $direction = great_circle_bearing($theta0, $phi0, $theta1, $phi1);
+
+The result of great_circle_direction is in radians, zero indicating
+straight north, pi or -pi straight south, pi/2 straight west, and
+-pi/2 straight east.
+
+=head2 great_circle_destination
+
+You can inversely compute the destination if you know the
+starting point, direction, and distance:
+
+  use Math::Trig 'great_circle_destination';
+
+  # $diro is the original direction,
+  # for example from great_circle_bearing().
+  # $distance is the angular distance in radians,
+  # for example from great_circle_distance().
+  # $thetad and $phid are the destination coordinates,
+  # $dird is the final direction at the destination.
+
+  ($thetad, $phid, $dird) =
+    great_circle_destination($theta, $phi, $diro, $distance);
+
+or the midpoint if you know the end points:
+
+=head2 great_circle_midpoint
+
+  use Math::Trig 'great_circle_midpoint';
+
+  ($thetam, $phim) =
+    great_circle_midpoint($theta0, $phi0, $theta1, $phi1);
+
+The great_circle_midpoint() is just a special case of
+
+=head2 great_circle_waypoint
+
+  use Math::Trig 'great_circle_waypoint';
+
+  ($thetai, $phii) =
+    great_circle_waypoint($theta0, $phi0, $theta1, $phi1, $way);
+
+Where $way indicates the position of the waypoint along the great
+circle arc through the starting point ($theta0, $phi0) and the end
+point ($theta1, $phi1) relative to the distance from the starting
+point to the end point. So $way = 0 gives the starting point, $way = 1
+gives the end point, $way < 0 gives a point "behind" the starting
+point, and $way > 1 gives a point beyond the end point. $way defaults
+to 0.5 if not given.
+
+Note that antipodal points (where their distance is I<pi> radians) do
+not have unique waypoints between them, and therefore C<undef> is
+returned in such cases.  If the points are the same, so the distance
+between them is zero, all waypoints are identical to the starting/end
+point.
+
+The thetas, phis, direction, and distance in the above are all in
+radians.
+
+You can import all the great circle formulas by
+
+  use Math::Trig ':great_circle';
+
+Notice that the resulting directions might be somewhat surprising if
+you are looking at a flat worldmap: in such map projections the great
+circles quite often do not look like the shortest routes --  but for
+example the shortest possible routes from Europe or North America to
+Asia do often cross the polar regions.  (The common Mercator projection
+does B<not> show great circles as straight lines: straight lines in the
+Mercator projection are lines of constant bearing.)
+
+=head1 EXAMPLES
+
+To calculate the distance between London (51.3N 0.5W) and Tokyo
+(35.7N 139.8E) in kilometers:
+
+    use Math::Trig qw(great_circle_distance deg2rad);
+
+    # Notice the 90 - latitude: phi zero is at the North Pole.
+    sub NESW { deg2rad($_[0]), deg2rad(90 - $_[1]) }
+    my @L = NESW( -0.5, 51.3);
+    my @T = NESW(139.8, 35.7);
+    my $km = great_circle_distance(@L, @T, 6378); # About 9600 km.
+
+The direction you would have to go from London to Tokyo (in radians,
+straight north being zero, straight east being pi/2).
+
+    use Math::Trig qw(great_circle_direction);
+
+    my $rad = great_circle_direction(@L, @T); # About 0.547 or 0.174 pi.
+
+The midpoint between London and Tokyo being
+
+    use Math::Trig qw(great_circle_midpoint rad2deg);
+
+    my @M = great_circle_midpoint(@L, @T);
+    sub SWNE { rad2deg( $_[0] ), 90 - rad2deg( $_[1] ) }
+    my @lonlat = SWNE(@M);
+
+or about 69 N 89 E, on the Putorana Plateau of Siberia.
+
+B<NOTE>: you B<cannot> get from A to B like this:
+
+   Dist = great_circle_distance(A, B)
+   Dir  = great_circle_direction(A, B)
+   C    = great_circle_destination(A, Dist, Dir)
+
+and expect C to be B, because the bearing constantly changes when
+going from A to B (except in some special case like the meridians or
+the circles of latitudes) and in great_circle_destination() one gives
+a B<constant> bearing to follow.
+
+=head2 CAVEAT FOR GREAT CIRCLE FORMULAS
+
+The answers may be off by few percentages because of the irregular
+(slightly aspherical) form of the Earth.  The errors are at worst
+about 0.55%, but generally below 0.3%.
+
+=head2 Real-valued asin and acos
+
+For small inputs asin() and acos() may return complex numbers even
+when real numbers would be enough and correct, this happens because of
+floating-point inaccuracies.  You can see these inaccuracies for
+example by trying theses:
+
+  print cos(1e-6)**2+sin(1e-6)**2 - 1,"\n";
+  printf "%.20f", cos(1e-6)**2+sin(1e-6)**2,"\n";
+
+which will print something like this
+
+  -1.11022302462516e-16
+  0.99999999999999988898
+
+even though the expected results are of course exactly zero and one.
+The formulas used to compute asin() and acos() are quite sensitive to
+this, and therefore they might accidentally slip into the complex
+plane even when they should not.  To counter this there are two
+interfaces that are guaranteed to return a real-valued output.
+
+=over 4
+
+=item asin_real
+
+    use Math::Trig qw(asin_real);
+
+    $real_angle = asin_real($input_sin);
+
+Return a real-valued arcus sine if the input is between [-1, 1],
+B<inclusive> the endpoints.  For inputs greater than one, pi/2
+is returned.  For inputs less than minus one, -pi/2 is returned.
+
+=item acos_real
+
+    use Math::Trig qw(acos_real);
+
+    $real_angle = acos_real($input_cos);
+
+Return a real-valued arcus cosine if the input is between [-1, 1],
+B<inclusive> the endpoints.  For inputs greater than one, zero
+is returned.  For inputs less than minus one, pi is returned.
+
+=back
+
+=head1 BUGS
+
+Saying C<use Math::Trig;> exports many mathematical routines in the
+caller environment and even overrides some (C<sin>, C<cos>).  This is
+construed as a feature by the Authors, actually... ;-)
+
+The code is not optimized for speed, especially because we use
+C<Math::Complex> and thus go quite near complex numbers while doing
+the computations even when the arguments are not. This, however,
+cannot be completely avoided if we want things like C<asin(2)> to give
+an answer instead of giving a fatal runtime error.
+
+Do not attempt navigation using these formulas.
+
+=head1 SEE ALSO
+
+L<Math::Complex>
+
+=head1 AUTHORS
+
+Jarkko Hietaniemi <F<jhi!at!iki.fi>>,
+Raphael Manfredi <F<Raphael_Manfredi!at!pobox.com>>,
+Zefram <zefram@fysh.org>
+
+=head1 LICENSE
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=cut
+
+# eof
Index: gnu/usr.bin/perl/dist/Math-Complex/t/Complex.t
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/t/Complex.t
diff -N gnu/usr.bin/perl/dist/Math-Complex/t/Complex.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/t/Complex.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,1160 @@
+#!./perl
+
+#
+# Regression tests for the Math::Complex pacakge
+# -- Raphael Manfredi	since Sep 1996
+# -- Jarkko Hietaniemi	since Mar 1997
+# -- Daniel S. Lewart	since Sep 1997
+
+use strict;
+use warnings;
+
+use Math::Complex 1.54;
+
+# they are used later in the test and not exported by Math::Complex
+*_stringify_cartesian = \&Math::Complex::_stringify_cartesian;
+*_stringify_polar     = \&Math::Complex::_stringify_polar;
+
+our $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
+our $has_inf   = !$vax_float;
+
+my ($args, $op, $target, $test, $test_set, $try, $val, $zvalue, @set, @val);
+my ($bad, $z);
+
+$test = 0;
+$| = 1;
+my @script = (
+    'my ($res, $s0,$s1,$s2,$s3,$s4,$s5,$s6,$s7,$s8,$s9,$s10,$z0,$z1,$z2);' .
+	"\n\n"
+);
+my $eps = 1e-13;
+
+if ($^O eq 'unicos') { 	# For some reason root() produces very inaccurate
+    $eps = 1e-10;	# results in Cray UNICOS, and occasionally also
+}			# cos(), sin(), cosh(), sinh().  The division
+			# of doubles is the current suspect.
+
+$test++;
+push @script, "{ my \$t=$test; ".q{
+    my $a = Math::Complex->new(1);
+    my $b = $a;
+    $a += 2;
+    print "not " unless "$a" eq "3" && "$b" eq "1";
+    print "ok $t\n";
+}."}";
+
+while (<DATA>) {
+	s/^\s+//;
+	next if $_ eq '' || /^\#/;
+	chomp;
+	$test_set = 0;		# Assume not a test over a set of values
+	if (/^&(.+)/) {
+		$op = $1;
+		next;
+	}
+	elsif (/^\{(.+)\}/) {
+		set($1, \@set, \@val);
+		next;
+	}
+	elsif (s/^\|//) {
+		$test_set = 1;	# Requests we loop over the set...
+	}
+	my @args = split(/:/);
+	if ($test_set == 1) {
+		my $i;
+		for ($i = 0; $i < @set; $i++) {
+			# complex number
+			$target = $set[$i];
+			# textual value as found in set definition
+			$zvalue = $val[$i];
+			test($zvalue, $target, @args);
+		}
+	} else {
+		test($op, undef, @args);
+	}
+}
+
+#
+
+sub test_mutators {
+    my $op;
+
+    $test++;
+push(@script, <<'EOT');
+{
+    my $z = cplx(  1,  1);
+    $z->Re(2);
+    $z->Im(3);
+    print "# $test Re(z) = ",$z->Re(), " Im(z) = ", $z->Im(), " z = $z\n";
+    print 'not ' unless Re($z) == 2 and Im($z) == 3;
+EOT
+    push(@script, qq(print "ok $test\\n"}\n));
+
+    $test++;
+push(@script, <<'EOT');
+{
+    my $z = cplx(  1,  1);
+    $z->abs(3 * sqrt(2));
+    print "# $test Re(z) = ",$z->Re(), " Im(z) = ", $z->Im(), " z = $z\n";
+    print 'not ' unless (abs($z) - 3 * sqrt(2)) < $eps and
+                        (arg($z) - pi / 4     ) < $eps and
+                        (Re($z) - 3           ) < $eps and
+                        (Im($z) - 3           ) < $eps;
+EOT
+    push(@script, qq(print "ok $test\\n"}\n));
+
+    $test++;
+push(@script, <<'EOT');
+{
+    my $z = cplx(  1,  1);
+    $z->arg(-3 / 4 * pi);
+    print "# $test Re(z) = ",$z->Re(), " Im(z) = ", $z->Im(), " z = $z\n";
+    print 'not ' unless (arg($z) + 3 / 4 * pi) < $eps and
+                        (abs($z) - sqrt(2)   ) < $eps and
+                        (Re($z) + 1          ) < $eps and
+                        (Im($z) + 1          ) < $eps;
+EOT
+    push(@script, qq(print "ok $test\\n"}\n));
+}
+
+test_mutators();
+
+my $constants = '
+my $i    = cplx(0,  1);
+my $pi   = cplx(pi, 0);
+my $pii  = cplx(0, pi);
+my $pip2 = cplx(pi/2, 0);
+my $pip4 = cplx(pi/4, 0);
+my $zero = cplx(0, 0);
+';
+
+if ($has_inf) {
+    $constants .= <<'EOF';
+my $inf  = 9**9**9;
+EOF
+}
+
+push(@script, $constants);
+
+
+# test the divbyzeros
+
+sub test_dbz {
+    for my $op (@_) {
+	$test++;
+	push(@script, <<EOT);
+	eval '$op';
+	(\$bad) = (\$@ =~ /(.+)/);
+	print "# $test op = $op divbyzero? \$bad...\n";
+	print 'not ' unless (\$@ =~ /Division by zero/);
+EOT
+        push(@script, qq(print "ok $test\\n";\n));
+    }
+}
+
+# test the logofzeros
+
+sub test_loz {
+    for my $op (@_) {
+	$test++;
+	push(@script, <<EOT);
+	eval '$op';
+	(\$bad) = (\$@ =~ /(.+)/);
+	print "# $test op = $op logofzero? \$bad...\n";
+	print 'not ' unless (\$@ =~ /Logarithm of zero/);
+EOT
+        push(@script, qq(print "ok $test\\n";\n));
+    }
+}
+
+test_dbz(
+	 'i/0',
+	 'acot(0)',
+	 'acot(+$i)',
+#	 'acoth(-1)',	# Log of zero.
+	 'acoth(0)',
+	 'acoth(+1)',
+	 'acsc(0)',
+	 'acsch(0)',
+	 'asec(0)',
+	 'asech(0)',
+	 'atan($i)',
+#	 'atanh(-1)',	# Log of zero.
+	 'atanh(+1)',
+	 'cot(0)',
+	 'coth(0)',
+	 'csc(0)',
+	 'csch(0)',
+	 'atan(cplx(0, 1), cplx(1, 0))',
+	);
+
+test_loz(
+	 'log($zero)',
+	 'atan(-$i)',
+	 'acot(-$i)',
+	 'atanh(-1)',
+	 'acoth(-1)',
+	);
+
+# test the bad roots
+
+sub test_broot {
+    for my $op (@_) {
+	$test++;
+	push(@script, <<EOT);
+	eval 'root(2, $op)';
+	(\$bad) = (\$@ =~ /(.+)/);
+	print "# $test op = $op badroot? \$bad...\n";
+	print 'not ' unless (\$@ =~ /root rank must be/);
+EOT
+        push(@script, qq(print "ok $test\\n";\n));
+    }
+}
+
+test_broot(qw(-3 -2.1 0 0.99));
+
+sub test_display_format {
+    $test++;
+    push @script, <<EOS;
+    print "# package display_format cartesian?\n";
+    print "not " unless Math::Complex->display_format eq 'cartesian';
+    print "ok $test\n";
+EOS
+
+    push @script, <<EOS;
+    my \$j = (root(1,3))[1];
+
+    \$j->display_format('polar');
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j display_format polar?\n";
+    print "not " unless \$j->display_format eq 'polar';
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j = \$j\n";
+    print "not " unless "\$j" eq "[1,2pi/3]";
+    print "ok $test\n";
+
+    my %display_format;
+
+    %display_format = \$j->display_format;
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# display_format{style} polar?\n";
+    print "not " unless \$display_format{style} eq 'polar';
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# keys %display_format == 2?\n";
+    print "not " unless keys %display_format == 2;
+    print "ok $test\n";
+
+    \$j->display_format('style' => 'cartesian', 'format' => '%.5f');
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j = \$j\n";
+    print "not " unless "\$j" eq "-0.50000+0.86603i";
+    print "ok $test\n";
+
+    %display_format = \$j->display_format;
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# display_format{format} %.5f?\n";
+    print "not " unless \$display_format{format} eq '%.5f';
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# keys %display_format == 3?\n";
+    print "not " unless keys %display_format == 3;
+    print "ok $test\n";
+
+    \$j->display_format('format' => undef);
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j = \$j\n";
+    print "not " unless "\$j" =~ /^-0(?:\\.5(?:0000\\d+)?|\\.49999\\d+)\\+0.86602540\\d+i\$/;
+    print "ok $test\n";
+
+    \$j->display_format('style' => 'polar', 'polar_pretty_print' => 0);
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j = \$j\n";
+    print "not " unless "\$j" =~ /^\\[1,2\\.09439510\\d+\\]\$/;
+    print "ok $test\n";
+
+    \$j->display_format('style' => 'polar', 'format' => "%.4g");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j = \$j\n";
+    print "not " unless "\$j" =~ /^\\[1,2\\.094\\]\$/;
+    print "ok $test\n";
+
+    \$j->display_format('style' => 'cartesian', 'format' => '(%.5g)');
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j = \$j\n";
+    print "not " unless "\$j" eq "(-0.5)+(0.86603)i";
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# j display_format cartesian?\n";
+    print "not " unless \$j->display_format eq 'cartesian';
+    print "ok $test\n";
+EOS
+}
+
+test_display_format();
+
+sub test_remake {
+    $test++;
+    push @script, <<EOS;
+    print "# remake 2+3i\n";
+    \$z = cplx('2+3i');
+    print "not " unless \$z == Math::Complex->make(2,3);
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# make 3i\n";
+    \$z = Math::Complex->make('3i');
+    print "not " unless \$z == cplx(0,3);
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# emake [2,3]\n";
+    \$z = Math::Complex->emake('[2,3]');
+    print "not " unless \$z == cplxe(2,3);
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# make (2,3)\n";
+    \$z = Math::Complex->make('(2,3)');
+    print "not " unless \$z == cplx(2,3);
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# emake [2,3pi/8]\n";
+    \$z = Math::Complex->emake('[2,3pi/8]');
+    print "not " unless \$z == cplxe(2,3*\$pi/8);
+    print "ok $test\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print "# emake [2]\n";
+    \$z = Math::Complex->emake('[2]');
+    print "not " unless \$z == cplxe(2);
+    print "ok $test\n";
+EOS
+}
+
+sub test_no_args {
+    push @script, <<'EOS';
+{
+    print "# cplx, cplxe, make, emake without arguments\n";
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    my \$z0 = cplx();
+    print ((\$z0->Re()  == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print ((\$z0->Im()  == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    my \$z1 = cplxe();
+    print ((\$z1->rho()   == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print ((\$z1->theta() == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    my \$z2 = Math::Complex->make();
+    print ((\$z2->Re()  == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print ((\$z2->Im()  == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    my \$z3 = Math::Complex->emake();
+    print ((\$z3->rho()   == 0) ? "ok $test\n" : "not ok $test\n");
+EOS
+
+    $test++;
+    push @script, <<EOS;
+    print ((\$z3->theta() == 0) ? "ok $test\n" : "not ok $test\n");
+}
+EOS
+}
+
+sub test_atan2 {
+    push @script, <<'EOS';
+print "# atan2() with some real arguments\n";
+EOS
+    my @real = (-1, 0, 1);
+    for my $x (@real) {
+	for my $y (@real) {
+	    next if $x == 0 && $y == 0;
+	    $test++;
+	    push @script, <<EOS;
+print ((Math::Complex::atan2($y, $x) == CORE::atan2($y, $x)) ? "ok $test\n" : "not ok $test\n");
+EOS
+        }
+    }
+    push @script, <<'EOS';
+    print "# atan2() with some complex arguments\n";
+EOS
+    $test++;
+    push @script, <<EOS;
+    print (abs(atan2(0, cplx(0, 1))) < $eps ? "ok $test\n" : "not ok $test\n");
+EOS
+    $test++;
+    push @script, <<EOS;
+    print (abs(atan2(cplx(0, 1), 0) - \$pip2) < $eps ? "ok $test\n" : "not ok $test\n");
+EOS
+    $test++;
+    push @script, <<EOS;
+    print (abs(atan2(cplx(0, 1), cplx(0, 1)) - \$pip4) < $eps ? "ok $test\n" : "not ok $test\n");
+EOS
+    $test++;
+    push @script, <<EOS;
+    print (abs(atan2(cplx(0, 1), cplx(1, 1)) - cplx(0.553574358897045, 0.402359478108525)) < $eps ? "ok $test\n" : "not ok $test\n");
+EOS
+}
+
+sub test_decplx {
+}
+
+test_remake();
+
+test_no_args();
+
+test_atan2();
+
+test_decplx();
+
+print "1..$test\n";
+#print @script, "\n";
+eval join '', @script;
+die $@ if $@;
+
+sub abop {
+	my ($op) = @_;
+
+	push(@script, qq(print "# $op=\n";));
+}
+
+sub test {
+	my ($op, $z, @args) = @_;
+	my ($baop) = 0;
+	$test++;
+	my $i;
+	$baop = 1 if ($op =~ s/;=$//);
+	for ($i = 0; $i < @args; $i++) {
+		$val = value($args[$i]);
+		push @script, "\$z$i = $val;\n";
+	}
+	if (defined $z) {
+		$args = "'$op'";		# Really the value
+		$try = "abs(\$z0 - \$z1) <= $eps ? \$z1 : \$z0";
+		push @script, "\$res = $try; ";
+		push @script, "check($test, $args[0], \$res, \$z$#args, $args);\n";
+	} else {
+		my ($try, $args);
+		if (@args == 2) {
+			$try = "$op \$z0";
+			$args = "'$args[0]'";
+		} else {
+			$try = ($op =~ /^\w/) ? "$op(\$z0, \$z1)" : "\$z0 $op \$z1";
+			$args = "'$args[0]', '$args[1]'";
+		}
+		push @script, "\$res = $try; ";
+		push @script, "check($test, '$try', \$res, \$z$#args, $args);\n";
+		if (@args > 2 and $baop) { # binary assignment ops
+			$test++;
+			# check the op= works
+			push @script, <<EOB;
+{
+	my \$za = cplx(ref \$z0 ? \@{\$z0->_cartesian} : (\$z0, 0));
+
+	my (\$z1r, \$z1i) = ref \$z1 ? \@{\$z1->_cartesian} : (\$z1, 0);
+
+	my \$zb = cplx(\$z1r, \$z1i);
+
+	\$za $op= \$zb;
+	my (\$zbr, \$zbi) = \@{\$zb->_cartesian};
+
+	check($test, '\$z0 $op= \$z1', \$za, \$z$#args, $args);
+EOB
+			$test++;
+			# check that the rhs has not changed
+			push @script, qq(print "not " unless (\$zbr == \$z1r and \$zbi == \$z1i););
+			push @script, qq(print "ok $test\\n";\n);
+			push @script, "}\n";
+		}
+	}
+}
+
+sub set {
+	my ($set, $setref, $valref) = @_;
+	@{$setref} = ();
+	@{$valref} = ();
+	my @set = split(/;\s*/, $set);
+	my @res;
+	my $i;
+	for ($i = 0; $i < @set; $i++) {
+		push(@{$valref}, $set[$i]);
+		my $val = value($set[$i]);
+		push @script, "\$s$i = $val;\n";
+		push @{$setref}, "\$s$i";
+	}
+}
+
+sub value {
+	local ($_) = @_;
+	if (/^\s*\((.*),(.*)\)/) {
+		return "cplx($1,$2)";
+	}
+	elsif (/^\s*([\-\+]?(?:\d+(\.\d+)?|\.\d+)(?:[e[\-\+]\d+])?)/) {
+		return "cplx($1,0)";
+	}
+	elsif (/^\s*\[(.*),(.*)\]/) {
+		return "cplxe($1,$2)";
+	}
+	elsif (/^\s*'(.*)'/) {
+		my $ex = $1;
+		$ex =~ s/\bz\b/$target/g;
+		$ex =~ s/\br\b/abs($target)/g;
+		$ex =~ s/\bt\b/arg($target)/g;
+		$ex =~ s/\ba\b/Re($target)/g;
+		$ex =~ s/\bb\b/Im($target)/g;
+		return $ex;
+	}
+	elsif (/^\s*"(.*)"/) {
+		return "\"$1\"";
+	}
+	return $_;
+}
+
+sub check {
+	my ($test, $try, $got, $expected, @z) = @_;
+
+	print "# @_\n";
+
+	if ("$got" eq "$expected"
+	    ||
+	    ($expected =~ /^-?\d/ && $got == $expected)
+	    ||
+	    (abs(Math::Complex->make($got) - Math::Complex->make($expected)) < $eps)
+	    ||
+	    (abs($got - $expected) < $eps)
+	    ) {
+		print "ok $test\n";
+	} else {
+		print "not ok $test\n";
+		my $args = (@z == 1) ? "z = $z[0]" : "z0 = $z[0], z1 = $z[1]";
+		print "# '$try' expected: '$expected' got: '$got' for $args\n";
+	}
+}
+
+sub addsq {
+    my ($z1, $z2) = @_;
+    return ($z1 + i*$z2) * ($z1 - i*$z2);
+}
+
+sub subsq {
+    my ($z1, $z2) = @_;
+    return ($z1 + $z2) * ($z1 - $z2);
+}
+
+__END__
+&+;=
+(3,4):(3,4):(6,8)
+(-3,4):(3,-4):(0,0)
+(3,4):-3:(0,4)
+1:(4,2):(5,2)
+[2,0]:[2,pi]:(0,0)
+
+&++
+(2,1):(3,1)
+
+&-;=
+(2,3):(-2,-3)
+[2,pi/2]:[2,-(pi)/2]
+2:[2,0]:(0,0)
+[3,0]:2:(1,0)
+3:(4,5):(-1,-5)
+(4,5):3:(1,5)
+(2,1):(3,5):(-1,-4)
+
+&--
+(1,2):(0,2)
+[2,pi]:[3,pi]
+
+&*;=
+(0,1):(0,1):(-1,0)
+(4,5):(1,0):(4,5)
+[2,2*pi/3]:(1,0):[2,2*pi/3]
+2:(0,1):(0,2)
+(0,1):3:(0,3)
+(0,1):(4,1):(-1,4)
+(2,1):(4,-1):(9,2)
+
+&/;=
+(3,4):(3,4):(1,0)
+(4,-5):1:(4,-5)
+1:(0,1):(0,-1)
+(0,6):(0,2):(3,0)
+(9,2):(4,-1):(2,1)
+[4,pi]:[2,pi/2]:[2,pi/2]
+[2,pi/2]:[4,pi]:[0.5,-(pi)/2]
+
+&**;=
+(2,0):(3,0):(8,0)
+(3,0):(2,0):(9,0)
+(2,3):(4,0):(-119,-120)
+(0,0):(1,0):(0,0)
+(0,0):(2,3):(0,0)
+(1,0):(0,0):(1,0)
+(1,0):(1,0):(1,0)
+(1,0):(2,3):(1,0)
+(2,3):(0,0):(1,0)
+(2,3):(1,0):(2,3)
+(0,0):(0,0):(1,0)
+
+&Re
+(3,4):3
+(-3,4):-3
+[1,pi/2]:0
+
+&Im
+(3,4):4
+(3,-4):-4
+[1,pi/2]:1
+
+&abs
+(3,4):5
+(-3,4):5
+
+&arg
+[2,0]:0
+[-2,0]:pi
+
+&~
+(4,5):(4,-5)
+(-3,4):(-3,-4)
+[2,pi/2]:[2,-(pi)/2]
+
+&<
+(3,4):(1,2):0
+(3,4):(3,2):0
+(3,4):(3,8):1
+(4,4):(5,129):1
+
+&==
+(3,4):(4,5):0
+(3,4):(3,5):0
+(3,4):(2,4):0
+(3,4):(3,4):1
+
+&sqrt
+-9:(0,3)
+(-100,0):(0,10)
+(16,-30):(5,-3)
+
+&_stringify_cartesian
+(-100,0):"-100"
+(0,1):"i"
+(4,-3):"4-3i"
+(4,0):"4"
+(-4,0):"-4"
+(-2,4):"-2+4i"
+(-2,-1):"-2-i"
+
+&_stringify_polar
+[-1, 0]:"[1,pi]"
+[1, pi/3]:"[1,pi/3]"
+[6, -2*pi/3]:"[6,-2pi/3]"
+[0.5, -9*pi/11]:"[0.5,-9pi/11]"
+[1, 0.5]:"[1, 0.5]"
+
+{ (4,3); [3,2]; (-3,4); (0,2); [2,1] }
+
+|'z + ~z':'2*Re(z)'
+|'z - ~z':'2*i*Im(z)'
+|'z * ~z':'abs(z) * abs(z)'
+
+{ (0.5, 0); (-0.5, 0); (2,3); [3,2]; (-3,2); (0,2); 3; 1.2; (-3, 0); (-2, -1); [2,1] }
+
+|'(root(z, 4))[1] ** 4':'z'
+|'(root(z, 5))[3] ** 5':'z'
+|'(root(z, 8))[7] ** 8':'z'
+|'(root(z, 8, 0)) ** 8':'z'
+|'(root(z, 8, 7)) ** 8':'z'
+|'abs(z)':'r'
+|'acot(z)':'acotan(z)'
+|'acsc(z)':'acosec(z)'
+|'acsc(z)':'asin(1 / z)'
+|'asec(z)':'acos(1 / z)'
+|'cbrt(z)':'cbrt(r) * exp(i * t/3)'
+|'cos(acos(z))':'z'
+|'addsq(cos(z), sin(z))':1
+|'cos(z)':'cosh(i*z)'
+|'subsq(cosh(z), sinh(z))':1
+|'cot(acot(z))':'z'
+|'cot(z)':'1 / tan(z)'
+|'cot(z)':'cotan(z)'
+|'csc(acsc(z))':'z'
+|'csc(z)':'1 / sin(z)'
+|'csc(z)':'cosec(z)'
+|'exp(log(z))':'z'
+|'exp(z)':'exp(a) * exp(i * b)'
+|'ln(z)':'log(z)'
+|'log(exp(z))':'z'
+|'log(z)':'log(r) + i*t'
+|'log10(z)':'log(z) / log(10)'
+|'logn(z, 2)':'log(z) / log(2)'
+|'logn(z, 3)':'log(z) / log(3)'
+|'sec(asec(z))':'z'
+|'sec(z)':'1 / cos(z)'
+|'sin(asin(z))':'z'
+|'sin(i * z)':'i * sinh(z)'
+|'sqrt(z) * sqrt(z)':'z'
+|'sqrt(z)':'sqrt(r) * exp(i * t/2)'
+|'tan(atan(z))':'z'
+|'z**z':'exp(z * log(z))'
+
+{ (1,1); [1,0.5]; (-2, -1); 2; -3; (-1,0.5); (0,0.5); 0.5; (2, 0); (-1, -2) }
+
+|'cosh(acosh(z))':'z'
+|'coth(acoth(z))':'z'
+|'coth(z)':'1 / tanh(z)'
+|'coth(z)':'cotanh(z)'
+|'csch(acsch(z))':'z'
+|'csch(z)':'1 / sinh(z)'
+|'csch(z)':'cosech(z)'
+|'sech(asech(z))':'z'
+|'sech(z)':'1 / cosh(z)'
+|'sinh(asinh(z))':'z'
+|'tanh(atanh(z))':'z'
+
+{ (0.2,-0.4); [1,0.5]; -1.2; (-1,0.5); 0.5; (1.1, 0) }
+
+|'acos(cos(z)) ** 2':'z * z'
+|'acosh(cosh(z)) ** 2':'z * z'
+|'acoth(z)':'acotanh(z)'
+|'acoth(z)':'atanh(1 / z)'
+|'acsch(z)':'acosech(z)'
+|'acsch(z)':'asinh(1 / z)'
+|'asech(z)':'acosh(1 / z)'
+|'asin(sin(z))':'z'
+|'asinh(sinh(z))':'z'
+|'atan(tan(z))':'z'
+|'atanh(tanh(z))':'z'
+
+&log
+(-2.0,0):(   0.69314718055995,  3.14159265358979)
+(-1.0,0):(   0               ,  3.14159265358979)
+(-0.5,0):(  -0.69314718055995,  3.14159265358979)
+( 0.5,0):(  -0.69314718055995,  0               )
+( 1.0,0):(   0               ,  0               )
+( 2.0,0):(   0.69314718055995,  0               )
+
+&log
+( 2, 3):(    1.28247467873077,  0.98279372324733)
+(-2, 3):(    1.28247467873077,  2.15879893034246)
+(-2,-3):(    1.28247467873077, -2.15879893034246)
+( 2,-3):(    1.28247467873077, -0.98279372324733)
+
+&sin
+(-2.0,0):(  -0.90929742682568,  0               )
+(-1.0,0):(  -0.84147098480790,  0               )
+(-0.5,0):(  -0.47942553860420,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.47942553860420,  0               )
+( 1.0,0):(   0.84147098480790,  0               )
+( 2.0,0):(   0.90929742682568,  0               )
+
+&sin
+( 2, 3):(  9.15449914691143, -4.16890695996656)
+(-2, 3):( -9.15449914691143, -4.16890695996656)
+(-2,-3):( -9.15449914691143,  4.16890695996656)
+( 2,-3):(  9.15449914691143,  4.16890695996656)
+
+&cos
+(-2.0,0):(  -0.41614683654714,  0               )
+(-1.0,0):(   0.54030230586814,  0               )
+(-0.5,0):(   0.87758256189037,  0               )
+( 0.0,0):(   1               ,  0               )
+( 0.5,0):(   0.87758256189037,  0               )
+( 1.0,0):(   0.54030230586814,  0               )
+( 2.0,0):(  -0.41614683654714,  0               )
+
+&cos
+( 2, 3):( -4.18962569096881, -9.10922789375534)
+(-2, 3):( -4.18962569096881,  9.10922789375534)
+(-2,-3):( -4.18962569096881, -9.10922789375534)
+( 2,-3):( -4.18962569096881,  9.10922789375534)
+
+&tan
+(-2.0,0):(   2.18503986326152,  0               )
+(-1.0,0):(  -1.55740772465490,  0               )
+(-0.5,0):(  -0.54630248984379,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.54630248984379,  0               )
+( 1.0,0):(   1.55740772465490,  0               )
+( 2.0,0):(  -2.18503986326152,  0               )
+
+&tan
+( 2, 3):( -0.00376402564150,  1.00323862735361)
+(-2, 3):(  0.00376402564150,  1.00323862735361)
+(-2,-3):(  0.00376402564150, -1.00323862735361)
+( 2,-3):( -0.00376402564150, -1.00323862735361)
+
+&sec
+(-2.0,0):(  -2.40299796172238,  0               )
+(-1.0,0):(   1.85081571768093,  0               )
+(-0.5,0):(   1.13949392732455,  0               )
+( 0.0,0):(   1               ,  0               )
+( 0.5,0):(   1.13949392732455,  0               )
+( 1.0,0):(   1.85081571768093,  0               )
+( 2.0,0):(  -2.40299796172238,  0               )
+
+&sec
+( 2, 3):( -0.04167496441114,  0.09061113719624)
+(-2, 3):( -0.04167496441114, -0.09061113719624)
+(-2,-3):( -0.04167496441114,  0.09061113719624)
+( 2,-3):( -0.04167496441114, -0.09061113719624)
+
+&csc
+(-2.0,0):(  -1.09975017029462,  0               )
+(-1.0,0):(  -1.18839510577812,  0               )
+(-0.5,0):(  -2.08582964293349,  0               )
+( 0.5,0):(   2.08582964293349,  0               )
+( 1.0,0):(   1.18839510577812,  0               )
+( 2.0,0):(   1.09975017029462,  0               )
+
+&csc
+( 2, 3):(  0.09047320975321,  0.04120098628857)
+(-2, 3):( -0.09047320975321,  0.04120098628857)
+(-2,-3):( -0.09047320975321, -0.04120098628857)
+( 2,-3):(  0.09047320975321, -0.04120098628857)
+
+&cot
+(-2.0,0):(   0.45765755436029,  0               )
+(-1.0,0):(  -0.64209261593433,  0               )
+(-0.5,0):(  -1.83048772171245,  0               )
+( 0.5,0):(   1.83048772171245,  0               )
+( 1.0,0):(   0.64209261593433,  0               )
+( 2.0,0):(  -0.45765755436029,  0               )
+
+&cot
+( 2, 3):( -0.00373971037634, -0.99675779656936)
+(-2, 3):(  0.00373971037634, -0.99675779656936)
+(-2,-3):(  0.00373971037634,  0.99675779656936)
+( 2,-3):( -0.00373971037634,  0.99675779656936)
+
+&asin
+(-2.0,0):(  -1.57079632679490,  1.31695789692482)
+(-1.0,0):(  -1.57079632679490,  0               )
+(-0.5,0):(  -0.52359877559830,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.52359877559830,  0               )
+( 1.0,0):(   1.57079632679490,  0               )
+( 2.0,0):(   1.57079632679490, -1.31695789692482)
+
+&asin
+( 2, 3):(  0.57065278432110,  1.98338702991654)
+(-2, 3):( -0.57065278432110,  1.98338702991654)
+(-2,-3):( -0.57065278432110, -1.98338702991654)
+( 2,-3):(  0.57065278432110, -1.98338702991654)
+
+&acos
+(-2.0,0):(   3.14159265358979, -1.31695789692482)
+(-1.0,0):(   3.14159265358979,  0               )
+(-0.5,0):(   2.09439510239320,  0               )
+( 0.0,0):(   1.57079632679490,  0               )
+( 0.5,0):(   1.04719755119660,  0               )
+( 1.0,0):(   0               ,  0               )
+( 2.0,0):(   0               ,  1.31695789692482)
+
+&acos
+( 2, 3):(  1.00014354247380, -1.98338702991654)
+(-2, 3):(  2.14144911111600, -1.98338702991654)
+(-2,-3):(  2.14144911111600,  1.98338702991654)
+( 2,-3):(  1.00014354247380,  1.98338702991654)
+
+&atan
+(-2.0,0):(  -1.10714871779409,  0               )
+(-1.0,0):(  -0.78539816339745,  0               )
+(-0.5,0):(  -0.46364760900081,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.46364760900081,  0               )
+( 1.0,0):(   0.78539816339745,  0               )
+( 2.0,0):(   1.10714871779409,  0               )
+
+&atan
+( 2, 3):(  1.40992104959658,  0.22907268296854)
+(-2, 3):( -1.40992104959658,  0.22907268296854)
+(-2,-3):( -1.40992104959658, -0.22907268296854)
+( 2,-3):(  1.40992104959658, -0.22907268296854)
+
+&asec
+(-2.0,0):(   2.09439510239320,  0               )
+(-1.0,0):(   3.14159265358979,  0               )
+(-0.5,0):(   3.14159265358979, -1.31695789692482)
+( 0.5,0):(   0               ,  1.31695789692482)
+( 1.0,0):(   0               ,  0               )
+( 2.0,0):(   1.04719755119660,  0               )
+
+&asec
+( 2, 3):(  1.42041072246703,  0.23133469857397)
+(-2, 3):(  1.72118193112276,  0.23133469857397)
+(-2,-3):(  1.72118193112276, -0.23133469857397)
+( 2,-3):(  1.42041072246703, -0.23133469857397)
+
+&acsc
+(-2.0,0):(  -0.52359877559830,  0               )
+(-1.0,0):(  -1.57079632679490,  0               )
+(-0.5,0):(  -1.57079632679490,  1.31695789692482)
+( 0.5,0):(   1.57079632679490, -1.31695789692482)
+( 1.0,0):(   1.57079632679490,  0               )
+( 2.0,0):(   0.52359877559830,  0               )
+
+&acsc
+( 2, 3):(  0.15038560432786, -0.23133469857397)
+(-2, 3):( -0.15038560432786, -0.23133469857397)
+(-2,-3):( -0.15038560432786,  0.23133469857397)
+( 2,-3):(  0.15038560432786,  0.23133469857397)
+
+&acot
+(-2.0,0):(  -0.46364760900081,  0               )
+(-1.0,0):(  -0.78539816339745,  0               )
+(-0.5,0):(  -1.10714871779409,  0               )
+( 0.5,0):(   1.10714871779409,  0               )
+( 1.0,0):(   0.78539816339745,  0               )
+( 2.0,0):(   0.46364760900081,  0               )
+
+&acot
+( 2, 3):(  0.16087527719832, -0.22907268296854)
+(-2, 3):( -0.16087527719832, -0.22907268296854)
+(-2,-3):( -0.16087527719832,  0.22907268296854)
+( 2,-3):(  0.16087527719832,  0.22907268296854)
+
+&sinh
+(-2.0,0):(  -3.62686040784702,  0               )
+(-1.0,0):(  -1.17520119364380,  0               )
+(-0.5,0):(  -0.52109530549375,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.52109530549375,  0               )
+( 1.0,0):(   1.17520119364380,  0               )
+( 2.0,0):(   3.62686040784702,  0               )
+
+&sinh
+( 2, 3):( -3.59056458998578,  0.53092108624852)
+(-2, 3):(  3.59056458998578,  0.53092108624852)
+(-2,-3):(  3.59056458998578, -0.53092108624852)
+( 2,-3):( -3.59056458998578, -0.53092108624852)
+
+&cosh
+(-2.0,0):(   3.76219569108363,  0               )
+(-1.0,0):(   1.54308063481524,  0               )
+(-0.5,0):(   1.12762596520638,  0               )
+( 0.0,0):(   1               ,  0               )
+( 0.5,0):(   1.12762596520638,  0               )
+( 1.0,0):(   1.54308063481524,  0               )
+( 2.0,0):(   3.76219569108363,  0               )
+
+&cosh
+( 2, 3):( -3.72454550491532,  0.51182256998738)
+(-2, 3):( -3.72454550491532, -0.51182256998738)
+(-2,-3):( -3.72454550491532,  0.51182256998738)
+( 2,-3):( -3.72454550491532, -0.51182256998738)
+
+&tanh
+(-2.0,0):(  -0.96402758007582,  0               )
+(-1.0,0):(  -0.76159415595576,  0               )
+(-0.5,0):(  -0.46211715726001,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.46211715726001,  0               )
+( 1.0,0):(   0.76159415595576,  0               )
+( 2.0,0):(   0.96402758007582,  0               )
+
+&tanh
+( 2, 3):(  0.96538587902213, -0.00988437503832)
+(-2, 3):( -0.96538587902213, -0.00988437503832)
+(-2,-3):( -0.96538587902213,  0.00988437503832)
+( 2,-3):(  0.96538587902213,  0.00988437503832)
+
+&sech
+(-2.0,0):(   0.26580222883408,  0               )
+(-1.0,0):(   0.64805427366389,  0               )
+(-0.5,0):(   0.88681888397007,  0               )
+( 0.0,0):(   1               ,  0               )
+( 0.5,0):(   0.88681888397007,  0               )
+( 1.0,0):(   0.64805427366389,  0               )
+( 2.0,0):(   0.26580222883408,  0               )
+
+&sech
+( 2, 3):( -0.26351297515839, -0.03621163655877)
+(-2, 3):( -0.26351297515839,  0.03621163655877)
+(-2,-3):( -0.26351297515839, -0.03621163655877)
+( 2,-3):( -0.26351297515839,  0.03621163655877)
+
+&csch
+(-2.0,0):(  -0.27572056477178,  0               )
+(-1.0,0):(  -0.85091812823932,  0               )
+(-0.5,0):(  -1.91903475133494,  0               )
+( 0.5,0):(   1.91903475133494,  0               )
+( 1.0,0):(   0.85091812823932,  0               )
+( 2.0,0):(   0.27572056477178,  0               )
+
+&csch
+( 2, 3):( -0.27254866146294, -0.04030057885689)
+(-2, 3):(  0.27254866146294, -0.04030057885689)
+(-2,-3):(  0.27254866146294,  0.04030057885689)
+( 2,-3):( -0.27254866146294,  0.04030057885689)
+
+&coth
+(-2.0,0):(  -1.03731472072755,  0               )
+(-1.0,0):(  -1.31303528549933,  0               )
+(-0.5,0):(  -2.16395341373865,  0               )
+( 0.5,0):(   2.16395341373865,  0               )
+( 1.0,0):(   1.31303528549933,  0               )
+( 2.0,0):(   1.03731472072755,  0               )
+
+&coth
+( 2, 3):(  1.03574663776500,  0.01060478347034)
+(-2, 3):( -1.03574663776500,  0.01060478347034)
+(-2,-3):( -1.03574663776500, -0.01060478347034)
+( 2,-3):(  1.03574663776500, -0.01060478347034)
+
+&asinh
+(-2.0,0):(  -1.44363547517881,  0               )
+(-1.0,0):(  -0.88137358701954,  0               )
+(-0.5,0):(  -0.48121182505960,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.48121182505960,  0               )
+( 1.0,0):(   0.88137358701954,  0               )
+( 2.0,0):(   1.44363547517881,  0               )
+
+&asinh
+( 2, 3):(  1.96863792579310,  0.96465850440760)
+(-2, 3):( -1.96863792579310,  0.96465850440761)
+(-2,-3):( -1.96863792579310, -0.96465850440761)
+( 2,-3):(  1.96863792579310, -0.96465850440760)
+
+&acosh
+(-2.0,0):(   1.31695789692482,  3.14159265358979)
+(-1.0,0):(   0,                 3.14159265358979)
+(-0.5,0):(   0,                 2.09439510239320)
+( 0.0,0):(   0,                 1.57079632679490)
+( 0.5,0):(   0,                 1.04719755119660)
+( 1.0,0):(   0               ,  0               )
+( 2.0,0):(   1.31695789692482,  0               )
+
+&acosh
+( 2, 3):(  1.98338702991654,  1.00014354247380)
+(-2, 3):(  1.98338702991653,  2.14144911111600)
+(-2,-3):(  1.98338702991653, -2.14144911111600)
+( 2,-3):(  1.98338702991654, -1.00014354247380)
+
+&atanh
+(-2.0,0):(  -0.54930614433405,  1.57079632679490)
+(-0.5,0):(  -0.54930614433405,  0               )
+( 0.0,0):(   0               ,  0               )
+( 0.5,0):(   0.54930614433405,  0               )
+( 2.0,0):(   0.54930614433405,  1.57079632679490)
+
+&atanh
+( 2, 3):(  0.14694666622553,  1.33897252229449)
+(-2, 3):( -0.14694666622553,  1.33897252229449)
+(-2,-3):( -0.14694666622553, -1.33897252229449)
+( 2,-3):(  0.14694666622553, -1.33897252229449)
+
+&asech
+(-2.0,0):(   0               , 2.09439510239320)
+(-1.0,0):(   0               , 3.14159265358979)
+(-0.5,0):(   1.31695789692482, 3.14159265358979)
+( 0.5,0):(   1.31695789692482, 0               )
+( 1.0,0):(   0               , 0               )
+( 2.0,0):(   0               , 1.04719755119660)
+
+&asech
+( 2, 3):(  0.23133469857397, -1.42041072246703)
+(-2, 3):(  0.23133469857397, -1.72118193112276)
+(-2,-3):(  0.23133469857397,  1.72118193112276)
+( 2,-3):(  0.23133469857397,  1.42041072246703)
+
+&acsch
+(-2.0,0):(  -0.48121182505960, 0               )
+(-1.0,0):(  -0.88137358701954, 0               )
+(-0.5,0):(  -1.44363547517881, 0               )
+( 0.5,0):(   1.44363547517881, 0               )
+( 1.0,0):(   0.88137358701954, 0               )
+( 2.0,0):(   0.48121182505960, 0               )
+
+&acsch
+( 2, 3):(  0.15735549884499, -0.22996290237721)
+(-2, 3):( -0.15735549884499, -0.22996290237721)
+(-2,-3):( -0.15735549884499,  0.22996290237721)
+( 2,-3):(  0.15735549884499,  0.22996290237721)
+
+&acoth
+(-2.0,0):(  -0.54930614433405, 0               )
+(-0.5,0):(  -0.54930614433405, 1.57079632679490)
+( 0.5,0):(   0.54930614433405, 1.57079632679490)
+( 2.0,0):(   0.54930614433405, 0               )
+
+&acoth
+( 2, 3):(  0.14694666622553, -0.23182380450040)
+(-2, 3):( -0.14694666622553, -0.23182380450040)
+(-2,-3):( -0.14694666622553,  0.23182380450040)
+( 2,-3):(  0.14694666622553,  0.23182380450040)
+
+# eof
Index: gnu/usr.bin/perl/dist/Math-Complex/t/Trig.t
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/t/Trig.t
diff -N gnu/usr.bin/perl/dist/Math-Complex/t/Trig.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/t/Trig.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,395 @@
+#!./perl
+
+#
+# Regression tests for the Math::Trig package
+#
+# The tests here are quite modest as the Math::Complex tests exercise
+# these interfaces quite vigorously.
+# 
+# -- Jarkko Hietaniemi, April 1997
+
+use strict;
+use warnings;
+use Test::More tests => 157;
+
+use Math::Trig 1.18;
+use Math::Trig 1.18 qw(:pi Inf);
+
+our $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
+our $has_inf   = !$vax_float;
+
+my $pip2 = pi / 2;
+
+use strict;
+
+our($x, $y, $z);
+
+my $eps = 1e-11;
+
+if ($^O eq 'unicos') { # See lib/Math/Complex.pm and t/lib/complex.t.
+    $eps = 1e-10;
+}
+
+sub near {
+    my $e = defined $_[2] ? $_[2] : $eps;
+    my $d = $_[1] ? abs($_[0]/$_[1] - 1) : abs($_[0]);
+    print "# near? $_[0] $_[1] : $d : $e\n";
+    $_[1] ? ($d < $e) : abs($_[0]) < $e;
+}
+
+print "# Sanity checks\n";
+
+ok(near(sin(1), 0.841470984807897));
+ok(near(cos(1), 0.54030230586814));
+ok(near(tan(1), 1.5574077246549));
+
+ok(near(sec(1), 1.85081571768093));
+ok(near(csc(1), 1.18839510577812));
+ok(near(cot(1), 0.642092615934331));
+
+ok(near(asin(1), 1.5707963267949));
+ok(near(acos(1), 0));
+ok(near(atan(1), 0.785398163397448));
+
+ok(near(asec(1), 0));
+ok(near(acsc(1), 1.5707963267949));
+ok(near(acot(1), 0.785398163397448));
+
+ok(near(sinh(1), 1.1752011936438));
+ok(near(cosh(1), 1.54308063481524));
+ok(near(tanh(1), 0.761594155955765));
+
+ok(near(sech(1), 0.648054273663885));
+ok(near(csch(1), 0.850918128239322));
+ok(near(coth(1), 1.31303528549933));
+
+ok(near(asinh(1), 0.881373587019543));
+ok(near(acosh(1), 0));
+ok(near(atanh(0.9), 1.47221948958322)); # atanh(1.0) would be an error.
+
+ok(near(asech(0.9), 0.467145308103262));
+ok(near(acsch(2), 0.481211825059603));
+ok(near(acoth(2), 0.549306144334055));
+
+print "# Basics\n";
+
+$x = 0.9;
+ok(near(tan($x), sin($x) / cos($x)));
+
+ok(near(sinh(2), 3.62686040784702));
+
+ok(near(acsch(0.1), 2.99822295029797));
+
+$x = asin(2);
+is(ref $x, 'Math::Complex');
+
+# avoid using Math::Complex here
+$x =~ /^([^-]+)(-[^i]+)i$/;
+($y, $z) = ($1, $2);
+ok(near($y,  1.5707963267949));
+ok(near($z, -1.31695789692482));
+
+ok(near(deg2rad(90), pi/2));
+
+ok(near(rad2deg(pi), 180));
+
+use Math::Trig ':radial';
+
+{
+    my ($r,$t,$z) = cartesian_to_cylindrical(1,1,1);
+
+    ok(near($r, sqrt(2)));
+    ok(near($t, deg2rad(45)));
+    ok(near($z, 1));
+
+    ($x,$y,$z) = cylindrical_to_cartesian($r, $t, $z);
+
+    ok(near($x, 1));
+    ok(near($y, 1));
+    ok(near($z, 1));
+
+    ($r,$t,$z) = cartesian_to_cylindrical(1,1,0);
+
+    ok(near($r, sqrt(2)));
+    ok(near($t, deg2rad(45)));
+    ok(near($z, 0));
+
+    ($x,$y,$z) = cylindrical_to_cartesian($r, $t, $z);
+
+    ok(near($x, 1));
+    ok(near($y, 1));
+    ok(near($z, 0));
+}
+
+{
+    my ($r,$t,$f) = cartesian_to_spherical(1,1,1);
+
+    ok(near($r, sqrt(3)));
+    ok(near($t, deg2rad(45)));
+    ok(near($f, atan2(sqrt(2), 1)));
+
+    ($x,$y,$z) = spherical_to_cartesian($r, $t, $f);
+
+    ok(near($x, 1));
+    ok(near($y, 1));
+    ok(near($z, 1));
+       
+    ($r,$t,$f) = cartesian_to_spherical(1,1,0);
+
+    ok(near($r, sqrt(2)));
+    ok(near($t, deg2rad(45)));
+    ok(near($f, deg2rad(90)));
+
+    ($x,$y,$z) = spherical_to_cartesian($r, $t, $f);
+
+    ok(near($x, 1));
+    ok(near($y, 1));
+    ok(near($z, 0));
+}
+
+{
+    my ($r,$t,$z) = cylindrical_to_spherical(spherical_to_cylindrical(1,1,1));
+
+    ok(near($r, 1));
+    ok(near($t, 1));
+    ok(near($z, 1));
+
+    ($r,$t,$z) = spherical_to_cylindrical(cylindrical_to_spherical(1,1,1));
+
+    ok(near($r, 1));
+    ok(near($t, 1));
+    ok(near($z, 1));
+}
+
+{
+    use Math::Trig 'great_circle_distance';
+
+    ok(near(great_circle_distance(0, 0, 0, pi/2), pi/2));
+
+    ok(near(great_circle_distance(0, 0, pi, pi), pi));
+
+    # London to Tokyo.
+    my @L = (deg2rad(-0.5),  deg2rad(90 - 51.3));
+    my @T = (deg2rad(139.8), deg2rad(90 - 35.7));
+
+    my $km = great_circle_distance(@L, @T, 6378);
+
+    ok(near($km, 9605.26637021388));
+}
+
+{
+    my $R2D = 57.295779513082320876798154814169;
+
+    sub frac { $_[0] - int($_[0]) }
+
+    my $lotta_radians = deg2rad(1E+20, 1);
+    ok(near($lotta_radians,  1E+20/$R2D));
+
+    my $negat_degrees = rad2deg(-1E20, 1);
+    ok(near($negat_degrees, -1E+20*$R2D));
+
+    my $posit_degrees = rad2deg(-10000, 1);
+    ok(near($posit_degrees, -10000*$R2D));
+}
+
+{
+    use Math::Trig 'great_circle_direction';
+
+    ok(near(great_circle_direction(0, 0, 0, pi/2), pi));
+
+# Retired test: Relies on atan2(0, 0), which is not portable.
+#	ok(near(great_circle_direction(0, 0, pi, pi), -pi()/2));
+
+    my @London  = (deg2rad(  -0.167), deg2rad(90 - 51.3));
+    my @Tokyo   = (deg2rad( 139.5),   deg2rad(90 - 35.7));
+    my @Berlin  = (deg2rad ( 13.417), deg2rad(90 - 52.533));
+    my @Paris   = (deg2rad (  2.333), deg2rad(90 - 48.867));
+
+    ok(near(rad2deg(great_circle_direction(@London, @Tokyo)),
+	    31.791945393073));
+
+    ok(near(rad2deg(great_circle_direction(@Tokyo, @London)),
+	    336.069766430326));
+
+    ok(near(rad2deg(great_circle_direction(@Berlin, @Paris)),
+	    246.800348034667));
+    
+    ok(near(rad2deg(great_circle_direction(@Paris, @Berlin)),
+	    58.2079877553156));
+
+    use Math::Trig 'great_circle_bearing';
+
+    ok(near(rad2deg(great_circle_bearing(@Paris, @Berlin)),
+	    58.2079877553156));
+
+    use Math::Trig 'great_circle_waypoint';
+    use Math::Trig 'great_circle_midpoint';
+
+    my ($lon, $lat);
+
+    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.0);
+
+    ok(near($lon, $London[0]));
+
+    ok(near($lat, $London[1]));
+
+    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 1.0);
+
+    ok(near($lon, $Tokyo[0]));
+
+    ok(near($lat, $Tokyo[1]));
+
+    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.5);
+
+    ok(near($lon, 1.55609593577679)); # 89.16 E
+
+    ok(near($lat, 0.36783532946162)); # 68.93 N
+
+    ($lon, $lat) = great_circle_midpoint(@London, @Tokyo);
+
+    ok(near($lon, 1.55609593577679)); # 89.16 E
+
+    ok(near($lat, 0.367835329461615)); # 68.93 N
+
+    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.25);
+
+    ok(near($lon, 0.516073562850837)); # 29.57 E
+
+    ok(near($lat, 0.400231313403387)); # 67.07 N
+
+    ($lon, $lat) = great_circle_waypoint(@London, @Tokyo, 0.75);
+
+    ok(near($lon, 2.17494903805952)); # 124.62 E
+
+    ok(near($lat, 0.617809294053591)); # 54.60 N
+
+    use Math::Trig 'great_circle_destination';
+
+    my $dir1 = great_circle_direction(@London, @Tokyo);
+    my $dst1 = great_circle_distance(@London,  @Tokyo);
+
+    ($lon, $lat) = great_circle_destination(@London, $dir1, $dst1);
+
+    ok(near($lon, $Tokyo[0]));
+
+    ok(near($lat, $pip2 - $Tokyo[1]));
+
+    my $dir2 = great_circle_direction(@Tokyo, @London);
+    my $dst2 = great_circle_distance(@Tokyo,  @London);
+
+    ($lon, $lat) = great_circle_destination(@Tokyo, $dir2, $dst2);
+
+    ok(near($lon, $London[0]));
+
+    ok(near($lat, $pip2 - $London[1]));
+
+    my $dir3 = (great_circle_destination(@London, $dir1, $dst1))[2];
+
+    ok(near($dir3, 2.69379263839118)); # about 154.343 deg
+
+    my $dir4 = (great_circle_destination(@Tokyo,  $dir2, $dst2))[2];
+
+    ok(near($dir4, 3.6993902625701)); # about 211.959 deg
+
+    ok(near($dst1, $dst2));
+}
+
+SKIP: {
+# With netbsd-vax (or any vax) there is neither Inf, nor 1e40.
+skip("different float range", 42) if $vax_float;
+skip("no inf",                42) unless $has_inf;
+
+print "# Infinity\n";
+
+my $BigDouble = eval '1e40';
+
+# E.g. netbsd-alpha core dumps on Inf arith without this.
+local $SIG{FPE} = sub { };
+
+ok(Inf() > $BigDouble);  # This passes in netbsd-alpha.
+ok(Inf() + $BigDouble > $BigDouble); # This coredumps in netbsd-alpha.
+ok(Inf() + $BigDouble == Inf());
+ok(Inf() - $BigDouble > $BigDouble);
+ok(Inf() - $BigDouble == Inf());
+ok(Inf() * $BigDouble > $BigDouble);
+ok(Inf() * $BigDouble == Inf());
+ok(Inf() / $BigDouble > $BigDouble);
+ok(Inf() / $BigDouble == Inf());
+
+ok(-Inf() < -$BigDouble);
+ok(-Inf() + $BigDouble < $BigDouble);
+ok(-Inf() + $BigDouble == -Inf());
+ok(-Inf() - $BigDouble < -$BigDouble);
+ok(-Inf() - $BigDouble == -Inf());
+ok(-Inf() * $BigDouble < -$BigDouble);
+ok(-Inf() * $BigDouble == -Inf());
+ok(-Inf() / $BigDouble < -$BigDouble);
+ok(-Inf() / $BigDouble == -Inf());
+
+print "# sinh/sech/cosh/csch/tanh/coth unto infinity\n";
+
+ok(near(sinh(100), eval '1.3441e+43', 1e-3));
+ok(near(sech(100), eval '7.4402e-44', 1e-3));
+ok(near(cosh(100), eval '1.3441e+43', 1e-3));
+ok(near(csch(100), eval '7.4402e-44', 1e-3));
+ok(near(tanh(100), 1));
+ok(near(coth(100), 1));
+
+ok(near(sinh(-100), eval '-1.3441e+43', 1e-3));
+ok(near(sech(-100), eval ' 7.4402e-44', 1e-3));
+ok(near(cosh(-100), eval ' 1.3441e+43', 1e-3));
+ok(near(csch(-100), eval '-7.4402e-44', 1e-3));
+ok(near(tanh(-100), -1));
+ok(near(coth(-100), -1));
+
+cmp_ok(sinh(1e5), '==', Inf());
+cmp_ok(sech(1e5), '==', 0);
+cmp_ok(cosh(1e5), '==', Inf());
+cmp_ok(csch(1e5), '==', 0);
+cmp_ok(tanh(1e5), '==', 1);
+cmp_ok(coth(1e5), '==', 1);
+
+cmp_ok(sinh(-1e5), '==', -Inf());
+cmp_ok(sech(-1e5), '==', 0);
+cmp_ok(cosh(-1e5), '==', Inf());
+cmp_ok(csch(-1e5), '==', 0);
+cmp_ok(tanh(-1e5), '==', -1);
+cmp_ok(coth(-1e5), '==', -1);
+
+}
+
+print "# great_circle_distance with small angles\n";
+
+for my $e (qw(1e-2 1e-3 1e-4 1e-5)) {
+    # Can't assume == 0 because of floating point fuzz,
+    # but let's hope for at least < $e.
+    cmp_ok(great_circle_distance(0, $e, 0, $e), '<', $e,
+           "great_circle_distance(0, $e, 0, $e) < $e");
+}
+
+for my $e (qw(1e-5 1e-6 1e-7 1e-8)) {
+    # Verify that the distance is positive for points close together. A poor
+    # algorithm is likely to give a distance of zero in some of these cases.
+    cmp_ok(great_circle_distance(2, 2, 2, 2+$e), '>', 0,
+           "great_circle_distance(2, 2, 2, " . (2+$e) . ") > 0");
+}
+
+print "# asin_real, acos_real\n";
+
+is(acos_real(-2.0), pi);
+is(acos_real(-1.0), pi);
+is(acos_real(-0.5), acos(-0.5));
+is(acos_real( 0.0), acos( 0.0));
+is(acos_real( 0.5), acos( 0.5));
+is(acos_real( 1.0), 0);
+is(acos_real( 2.0), 0);
+
+is(asin_real(-2.0), -&pip2);
+is(asin_real(-1.0), -&pip2);
+is(asin_real(-0.5), asin(-0.5));
+is(asin_real( 0.0), asin( 0.0));
+is(asin_real( 0.5), asin( 0.5));
+is(asin_real( 1.0),  pip2);
+is(asin_real( 2.0),  pip2);
+
+# eof
Index: gnu/usr.bin/perl/dist/Math-Complex/t/underbar.t
===================================================================
RCS file: gnu/usr.bin/perl/dist/Math-Complex/t/underbar.t
diff -N gnu/usr.bin/perl/dist/Math-Complex/t/underbar.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Math-Complex/t/underbar.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,28 @@
+#
+# Tests that the standard Perl 5 functions that we override
+# that operate on the $_ will work correctly [perl #62412]
+#
+
+use Test::More;
+
+use strict;
+use warnings;
+
+my @f = qw(abs cos exp log sin sqrt);
+
+plan tests => scalar @f;
+
+use Math::Complex;
+
+my %CORE;
+
+for my $f (@f) {
+    local $_ = 0.5;
+    $CORE{$f} = eval "CORE::$f";
+}
+
+for my $f (@f) {
+    local $_ = 0.5;
+    is(eval "Math::Complex::$f", $CORE{$f}, $f);
+}
+
Index: gnu/usr.bin/perl/dist/Net-Ping/Changes
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/Changes,v
diff -u -p -a -u -p -r1.1.1.7 Changes
--- gnu/usr.bin/perl/dist/Net-Ping/Changes	15 Feb 2023 01:32:56 -0000	1.1.1.7
+++ gnu/usr.bin/perl/dist/Net-Ping/Changes	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,14 @@
 CHANGES
 -------
+2.75  2022-09-01 12:44:03 rurban
+      Minor
+      - Modernized the synopsis (PR #31)
+      - Fixed a link in a comment (PR #25)
+      META Changes
+      - Remove some TEST_REQUIRES (PR #23)
+      Test fixes
+      - Support NO_NETWORK_TESTING=1 (PR #24)
+      - Fix non-routable addresses for negative tests (PR #24)
 2.74  2020-09-09 09:21:39 rurban
       Features
       - Add ICMPv6_NI_REPLY support.
Index: gnu/usr.bin/perl/dist/Net-Ping/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Net-Ping/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Net-Ping/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Net-Ping/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,75 @@
+use strict;
+use warnings;
+use v5.002; # not using our in the CPAN release
+use ExtUtils::MakeMaker;
+
+my @extras = ();
+my $EUMM_VER = $ExtUtils::MakeMaker::VERSION;
+my @AUTHORS = (
+      'Reini Urban <rurban@cpan.org>',
+      'Steve Peters <steve@fisharerojo.org>',
+      'Matthew Musgrove <mr.muskrat@gmail.com>',
+      'Karl Williamson <khw@cpan.org>',
+      'Brian Fraser <fraserbn@gmail.com>',
+      'Mark Gardner <mjgardner@cpan.org>',
+  );
+
+push @extras,
+  AUTHOR => join(", ", @AUTHORS)
+  if $EUMM_VER gt '5.4301' and $EUMM_VER lt '6.57_02';
+push @extras,
+  AUTHOR => [ @AUTHORS ]
+  if $EUMM_VER ge '6.57_02';
+push @extras, SIGN => 1
+  if $EUMM_VER ge '6.18';
+push @extras, LICENSE => 'perl_5'
+  if $EUMM_VER ge '6.31' and $EUMM_VER le '6.46';
+push @extras,
+  META_MERGE => {
+      'meta-spec' => { version => 2 },
+        resources   => {
+            # TODO: 26 old issues still open at RT
+            # https://rt.cpan.org/Public/Dist/Display.html?Name=Net-Ping
+            bugtracker  => 'https://github.com/Perl/perl5/issues',
+            repository  => {
+                type => 'git',
+                url => 'https://github.com/Perl/perl5.git',
+                web => 'https://github.com/Perl/perl5',
+            },
+            license     => [ 'http://dev.perl.org/licenses/' ],
+        },
+        release_status => 'stable',
+  }
+  if $EUMM_VER gt '6.46';
+
+WriteMakefile(
+  NAME   => 'Net::Ping',
+  VERSION_FROM  => 'lib/Net/Ping.pm',
+  ABSTRACT_FROM => 'lib/Net/Ping.pm',
+  PREREQ_PM     => {
+    'Socket'      => '2.007',
+    'Test::More'  => 0,
+    'Time::HiRes' => 0,
+  },
+  TEST_REQUIRES => {
+    'Test::Pod'           => '1.22',
+    'Test::More'          => 0,
+  },
+  INSTALLDIRS => ( $] < 5.011 ? 'perl' : 'site' ),
+  clean      => { FILES => 'Net-Ping-*' },
+  @extras
+);
+
+package MY;
+
+sub depend {
+  "
+README : lib/Net/Ping.pm
+	pod2text lib/Net/Ping.pm > README
+release : dist
+	git tag \$(VERSION)
+	cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
+	git push
+	git push --tags
+"
+}
Index: gnu/usr.bin/perl/dist/Net-Ping/TODO
===================================================================
RCS file: gnu/usr.bin/perl/dist/Net-Ping/TODO
diff -N gnu/usr.bin/perl/dist/Net-Ping/TODO
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Net-Ping/TODO	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,34 @@
+TODO list for Net::Ping (in case anyone is looking for things to do)
+
+- More IPv6 support
+Some options like IP_TOS and IP_TTL are not available on IPv6
+
+- POD rewriting
+Some things, such as the return from $p->ping(), are cryptic.  The location of the
+source is off as well.
+
+- Device
+Setting the device uses SO_BINDTODEVICE.  This is Linux-only and should not work anywhere
+else.  I think deprecating this is probably the right thing to do.
+
+-TOS
+The incoming TOS value can be just about anything from my testing.  This valid values are
+supposed to be (in decimal) 0, 1, 2, 4, and 8 assuming we aren't talking DS and ECN.
+I don't know right now if this is a bug in Socket, Darwin (tesing on Mac OS X currently)
+or if that's just the way it is.  Time for some C level testing for this one.
+P.S. TOS is IPv4 only.
+
+- Tests
+Nicholas Clark converted the tests to Test::More which is a good start.  The tests need some
+cleanup and modernizing.  Below is the current test coverage when testing as root.
+
+----------------------------------- ------ ------ ------ ------ ------ ------
+File                                  stmt   bran   cond    sub   time  total
+----------------------------------- ------ ------ ------ ------ ------ ------
+blib/lib/Net/Ping.pm                  62.6   42.8   33.0   76.9  100.0   52.6
+Total                                 62.6   42.8   33.0   76.9  100.0   52.6
+----------------------------------- ------ ------ ------ ------ ------ ------
+
+This needs to be quite a bit higher all around to make me comfortable with a refactor.
+
+
Index: gnu/usr.bin/perl/dist/Net-Ping/lib/Net/Ping.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/lib/Net/Ping.pm,v
diff -u -p -a -u -p -r1.10 Ping.pm
--- gnu/usr.bin/perl/dist/Net-Ping/lib/Net/Ping.pm	15 Feb 2023 01:36:28 -0000	1.10
+++ gnu/usr.bin/perl/dist/Net-Ping/lib/Net/Ping.pm	21 Feb 2024 15:47:01 -0000
@@ -22,7 +22,7 @@ use Time::HiRes;
 @ISA = qw(Exporter);
 @EXPORT = qw(pingecho);
 @EXPORT_OK = qw(wakeonlan);
-$VERSION = "2.74";
+$VERSION = "2.76";
 
 # Globals
 
@@ -1081,8 +1081,7 @@ sub tcp_connect
 
 sub DESTROY {
   my $self = shift;
-  if ($self->{'proto'} eq 'tcp' &&
-      $self->{'tcp_chld'}) {
+  if ($self->{'proto'} && ($self->{'proto'} eq 'tcp') && $self->{'tcp_chld'}) {
     # Put that choking client out of its misery
     kill "KILL", $self->{'tcp_chld'};
     # Clean off the zombie
@@ -2004,13 +2003,13 @@ Net::Ping - check a remote host for reac
 
     use Net::Ping;
 
-    $p = Net::Ping->new();
+    my $p = Net::Ping->new();
     print "$host is alive.\n" if $p->ping($host);
     $p->close();
 
-    $p = Net::Ping->new("icmp");
+    my $p = Net::Ping->new("icmp");
     $p->bind($my_addr); # Specify source interface of pings
-    foreach $host (@host_array)
+    foreach my $host (@host_array)
     {
         print "$host is ";
         print "NOT " unless $p->ping($host, 2);
@@ -2019,11 +2018,11 @@ Net::Ping - check a remote host for reac
     }
     $p->close();
 
-    $p = Net::Ping->new("icmpv6");
-    $ip = "[fd00:dead:beef::4e]";
+    my $p = Net::Ping->new("icmpv6");
+    my $ip = "[fd00:dead:beef::4e]";
     print "$ip is alive.\n" if $p->ping($ip);
 
-    $p = Net::Ping->new("tcp", 2);
+    my $p = Net::Ping->new("tcp", 2);
     # Try connecting to the www port instead of the echo port
     $p->port_number(scalar(getservbyname("http", "tcp")));
     while ($stop_time > time())
@@ -2035,19 +2034,19 @@ Net::Ping - check a remote host for reac
     undef($p);
 
     # Like tcp protocol, but with many hosts
-    $p = Net::Ping->new("syn");
+    my $p = Net::Ping->new("syn");
     $p->port_number(getservbyname("http", "tcp"));
-    foreach $host (@host_array) {
+    foreach my $host (@host_array) {
       $p->ping($host);
     }
-    while (($host,$rtt,$ip) = $p->ack) {
+    while (my ($host, $rtt, $ip) = $p->ack) {
       print "HOST: $host [$ip] ACKed in $rtt seconds.\n";
     }
 
     # High precision syntax (requires Time::HiRes)
-    $p = Net::Ping->new();
+    my $p = Net::Ping->new();
     $p->hires();
-    ($ret, $duration, $ip) = $p->ping($host, 5.5);
+    my ($ret, $duration, $ip) = $p->ping($host, 5.5);
     printf("$host [ip: $ip] is alive (packet return time: %.2f ms)\n",
             1000 * $duration)
       if $ret;
Index: gnu/usr.bin/perl/dist/Net-Ping/t/010_pingecho.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/010_pingecho.t,v
diff -u -p -a -u -p -r1.1.1.2 010_pingecho.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/010_pingecho.t	1 Mar 2021 23:15:49 -0000	1.1.1.2
+++ gnu/usr.bin/perl/dist/Net-Ping/t/010_pingecho.t	21 Feb 2024 15:47:01 -0000
@@ -19,7 +19,6 @@ BEGIN {use_ok('Net::Ping')};
 TODO: {
     local $TODO = "Not working on os390 smoker; may be a permissions problem"
       if $^O eq 'os390';
-    $TODO = "Not working on freebsd" if $^O eq 'freebsd';
     my $result = pingecho("127.0.0.1");
     is($result, 1, "pingecho 127.0.0.1 works");
 }
Index: gnu/usr.bin/perl/dist/Net-Ping/t/190_alarm.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/190_alarm.t,v
diff -u -p -a -u -p -r1.1.1.3 190_alarm.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/190_alarm.t	30 Dec 2019 02:10:47 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Net-Ping/t/190_alarm.t	21 Feb 2024 15:47:01 -0000
@@ -4,11 +4,10 @@
 # Based on code written by radu@netsoft.ro (Radu Greab).
 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 \# Skip: network dependent test\n";
-        exit;
-    }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE}) && !$ENV{PERL_TEST_Net_Ping}) {
+    print "1..0 \# Skip: network dependent test\n";
+    exit;
   } 
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
@@ -29,7 +28,7 @@ use Test::More tests => 6;
 BEGIN {use_ok 'Net::Ping'};
 
 # Hopefully this is never a routeable host
-my $fail_ip = $ENV{NET_PING_FAIL_IP} || "172.29.249.249";
+my $fail_ip = $ENV{NET_PING_FAIL_IP} || "192.0.2.0";
 
 eval {
   my $timeout = 11;
Index: gnu/usr.bin/perl/dist/Net-Ping/t/200_ping_tcp.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/200_ping_tcp.t,v
diff -u -p -a -u -p -r1.1.1.6 200_ping_tcp.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/200_ping_tcp.t	15 Feb 2023 01:32:56 -0000	1.1.1.6
+++ gnu/usr.bin/perl/dist/Net-Ping/t/200_ping_tcp.t	21 Feb 2024 15:47:01 -0000
@@ -1,11 +1,10 @@
 use strict;
 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 # Skip: network dependent test\n";
-        exit;
-    }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE}) && !$ENV{PERL_TEST_Net_Ping}) {
+    print "1..0 # Skip: network dependent test\n";
+    exit;
   }
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
@@ -18,7 +17,7 @@ BEGIN {
 }
 
 # Hopefully this is never a routeable host
-my $fail_ip = $ENV{NET_PING_FAIL_IP} || "172.29.249.249";
+my $fail_ip = $ENV{NET_PING_FAIL_IP} || "192.0.2.0";
 
 # Remote network test using tcp protocol.
 #
Index: gnu/usr.bin/perl/dist/Net-Ping/t/250_ping_hires.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/250_ping_hires.t,v
diff -u -p -a -u -p -r1.1.1.4 250_ping_hires.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/250_ping_hires.t	1 Mar 2021 23:15:49 -0000	1.1.1.4
+++ gnu/usr.bin/perl/dist/Net-Ping/t/250_ping_hires.t	21 Feb 2024 15:47:01 -0000
@@ -3,12 +3,11 @@
 use strict;
 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 # Skip: network dependent test\n";
-        exit;
-    }
-  }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE}) && !$ENV{PERL_TEST_Net_Ping}) {
+    print "1..0 \# Skip: network dependent test\n";
+    exit;
+  } 
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
     exit;
Index: gnu/usr.bin/perl/dist/Net-Ping/t/300_ping_stream.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/300_ping_stream.t,v
diff -u -p -a -u -p -r1.1.1.4 300_ping_stream.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/300_ping_stream.t	1 Mar 2021 23:15:49 -0000	1.1.1.4
+++ gnu/usr.bin/perl/dist/Net-Ping/t/300_ping_stream.t	21 Feb 2024 15:47:01 -0000
@@ -1,11 +1,10 @@
 use strict; 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 # Skip: network dependent test\n";
-        exit;
-    }
-  }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE}) && !$ENV{PERL_TEST_Net_Ping}) {
+    print "1..0 \# Skip: network dependent test\n";
+    exit;
+  } 
   if ($^O eq 'freebsd') {
     print "1..0 \# Skip: unreliable localhost resolver on $^O\n";
     exit;
Index: gnu/usr.bin/perl/dist/Net-Ping/t/400_ping_syn.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/400_ping_syn.t,v
diff -u -p -a -u -p -r1.1.1.5 400_ping_syn.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/400_ping_syn.t	30 Dec 2019 02:10:47 -0000	1.1.1.5
+++ gnu/usr.bin/perl/dist/Net-Ping/t/400_ping_syn.t	21 Feb 2024 15:47:01 -0000
@@ -1,11 +1,10 @@
 use strict;
 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 # Skip: network dependent test\n";
-      exit;
-    }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE} && !$ENV{PERL_TEST_Net_Ping})) {
+    print "1..0 # Skip: network dependent test\n";
+    exit;
   }
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
@@ -30,10 +29,10 @@ BEGIN {
 #   connection to remote networks, but you still want the tests
 #   to pass, use the following:
 #
-# $ PERL_CORE=1 make test
+# $ NO_NETWORK_TESTING=1 make test
 
 # Hopefully this is never a routeable host
-my $fail_ip = $ENV{NET_PING_FAIL_IP} || "172.29.249.249";
+my $fail_ip = $ENV{NET_PING_FAIL_IP} || "192.0.2.0";
 
 # Try a few remote servers
 my %webs = (
Index: gnu/usr.bin/perl/dist/Net-Ping/t/410_syn_host.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/410_syn_host.t,v
diff -u -p -a -u -p -r1.1.1.5 410_syn_host.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/410_syn_host.t	30 Dec 2019 02:10:47 -0000	1.1.1.5
+++ gnu/usr.bin/perl/dist/Net-Ping/t/410_syn_host.t	21 Feb 2024 15:47:01 -0000
@@ -2,11 +2,10 @@
 use strict;
 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 # Skip: network dependent test\n";
-        exit;
-    }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE} && !$ENV{PERL_TEST_Net_Ping})) {
+    print "1..0 # Skip: network dependent test\n";
+    exit;
   }
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
@@ -31,13 +30,13 @@ BEGIN {
 #   connection to remote networks, but you still want the tests
 #   to pass, use the following:
 #
-# $ PERL_CORE=1 make test
+# $ NO_NETWORK_TESTING=1 make test
 
 # Try a few remote servers
 my %webs;
 BEGIN {
   # Hopefully this is never a routeable host
-  my $fail_ip = $ENV{NET_PING_FAIL_IP} || "172.29.249.249";
+  my $fail_ip = $ENV{NET_PING_FAIL_IP} || "192.0.2.0";
 
   %webs = (
   $fail_ip => 0,
Index: gnu/usr.bin/perl/dist/Net-Ping/t/420_ping_syn_port.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/420_ping_syn_port.t,v
diff -u -p -a -u -p -r1.1.1.1 420_ping_syn_port.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/420_ping_syn_port.t	30 Dec 2019 02:10:47 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/Net-Ping/t/420_ping_syn_port.t	21 Feb 2024 15:47:01 -0000
@@ -2,11 +2,10 @@
 use strict;
 
 BEGIN {
-  if ($ENV{PERL_CORE}) {
-    unless ($ENV{PERL_TEST_Net_Ping}) {
-      print "1..0 # Skip: network dependent test\n";
-        exit;
-    }
+  if ($ENV{NO_NETWORK_TESTING} ||
+      ($ENV{PERL_CORE} && !$ENV{PERL_TEST_Net_Ping})) {
+    print "1..0 # Skip: network dependent test\n";
+    exit;
   }
   unless (eval "require Socket") {
     print "1..0 \# Skip: no Socket\n";
@@ -31,10 +30,10 @@ BEGIN {
 #   connection to remote networks, but you still want the tests
 #   to pass, use the following:
 #
-# $ PERL_CORE=1 make test
+# $ NO_NETWORK_TESTING=1 make test
 
 # Hopefully this is never a routeable host
-my $fail_ip = $ENV{NET_PING_FAIL_IP} || "172.29.249.249";
+my $fail_ip = $ENV{NET_PING_FAIL_IP} || "192.0.2.0";
 
 # Try a few remote servers
 my %webs;
Index: gnu/usr.bin/perl/dist/Net-Ping/t/450_service.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Net-Ping/t/450_service.t,v
diff -u -p -a -u -p -r1.4 450_service.t
--- gnu/usr.bin/perl/dist/Net-Ping/t/450_service.t	15 Feb 2023 01:36:28 -0000	1.4
+++ gnu/usr.bin/perl/dist/Net-Ping/t/450_service.t	21 Feb 2024 15:47:01 -0000
@@ -78,7 +78,7 @@ is($p->ping("127.0.0.1"), 1, 'first port
 $p->{port_num} = $port2;
 
 {
-    local $TODO = "Believed not to work on $^O" if $^O =~ /^(?:hpux|MSWin32|os390|freebsd)$/;
+    local $TODO = "Believed not to work on $^O" if $^O =~ /^(?:MSWin32|os390)$/;
     is($p->ping("127.0.0.1"), 1, 'second port is reachable');
 }
 
@@ -133,7 +133,7 @@ SKIP: {
 
   {
     local $TODO = "Believed not to work on $^O"
-      if $^O =~ /^(?:hpux|MSWin32|os390|freebsd)$/;
+      if $^O =~ /^(?:MSWin32|os390)$/;
     is($p->ack(), '127.0.0.1', 'IP should be reachable');
   }
 }
Index: gnu/usr.bin/perl/dist/PathTools/Changes
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/Changes,v
diff -u -p -a -u -p -r1.4 Changes
--- gnu/usr.bin/perl/dist/PathTools/Changes	15 Feb 2023 01:36:28 -0000	1.4
+++ gnu/usr.bin/perl/dist/PathTools/Changes	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,29 @@
 Revision history for Perl distribution PathTools.
 
+3.87-3.88
+
+- Fix handling of empty path, VMS fixes.
+
+3.86
+
+- Fix compilation warning on illumos based platforms
+
+3.85
+
+- Fix issue related to tainting empty PATH
+
+3.84
+
+- Add PerlIO_readlink backcompat defines to Cws.xs
+
+3.83
+
+- More bugtracker changes, document maintainer is the Perl-5 Porters
+
+3.82
+
+- Change to build so bugreports go to GitHub
+
 3.81
 
 - compare inode numbers as strings (github #18788)
Index: gnu/usr.bin/perl/dist/PathTools/Cwd.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/Cwd.pm,v
diff -u -p -a -u -p -r1.7 Cwd.pm
--- gnu/usr.bin/perl/dist/PathTools/Cwd.pm	15 Feb 2023 01:36:28 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/Cwd.pm	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@ use strict;
 use Exporter;
 
 
-our $VERSION = '3.84';
+our $VERSION = '3.89';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//d;
 
@@ -192,8 +192,14 @@ sub _backtick_pwd {
     # Localize %ENV entries in a way that won't create new hash keys.
     # Under AmigaOS we don't want to localize as it stops perl from
     # finding 'sh' in the PATH.
-    my @localize = grep exists $ENV{$_}, qw(PATH IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos";
+    my @localize = grep exists $ENV{$_}, qw(IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos";
     local @ENV{@localize} if @localize;
+    # empty PATH is the same as "." on *nix, so localize it to /something/
+    # we won't *use* the path as code above turns $pwd_cmd into a specific
+    # executable, but it will blow up anyway under taint. We could set it to
+    # anything absolute. Perhaps "/" would be better.
+    local $ENV{PATH}= "/usr/bin"
+        if $^O ne "amigaos";
     
     my $cwd = `$pwd_cmd`;
     # Belt-and-suspenders in case someone said "undef $/".
Index: gnu/usr.bin/perl/dist/PathTools/Cwd.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/Cwd.xs,v
diff -u -p -a -u -p -r1.6 Cwd.xs
--- gnu/usr.bin/perl/dist/PathTools/Cwd.xs	15 Feb 2023 01:36:28 -0000	1.6
+++ gnu/usr.bin/perl/dist/PathTools/Cwd.xs	21 Feb 2024 15:47:02 -0000
@@ -7,13 +7,11 @@
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
-#ifndef NO_PPPORT_H
-#  define NEED_croak_xs_usage
-#  define NEED_sv_2pv_flags
-#  define NEED_my_strlcpy
-#  define NEED_my_strlcat
-#  include "ppport.h"
-#endif
+#define NEED_croak_xs_usage
+#define NEED_sv_2pv_flags
+#define NEED_my_strlcpy
+#define NEED_my_strlcat
+#include "ppport.h"
 
 #if defined(HAS_READLINK) && !defined(PerlLIO_readlink)
 #define PerlLIO_readlink readlink
@@ -24,8 +22,10 @@
 #endif
 
 /* For special handling of os390 sysplexed systems */
+#ifdef OS390
 #define SYSNAME "$SYSNAME"
 #define SYSNAME_LEN (sizeof(SYSNAME) - 1)
+#endif
 
 /* The realpath() implementation from OpenBSD 3.9 to 4.2 (realpath.c 1.13)
  * Renamed here to bsd_realpath() to avoid library conflicts.
@@ -202,7 +202,7 @@ bsd_realpath(const char *path, char reso
                     if (slen < 0)
                         return (NULL);
                     symlink[slen] = '\0';
-#  ifdef EBCDIC /* XXX Probably this should be only os390 */
+#  ifdef OS390
                     /* Replace all instances of $SYSNAME/foo simply by /foo */
                     if (slen > SYSNAME_LEN + strlen(next_token)
                         && strnEQ(symlink, SYSNAME, SYSNAME_LEN)
@@ -245,7 +245,7 @@ bsd_realpath(const char *path, char reso
                     }
                     remaining_len = my_strlcpy(remaining, symlink, sizeof(remaining));
                 }
-#  ifdef EBCDIC
+#  ifdef OS390
               not_symlink: ;
 #  endif
             }
Index: gnu/usr.bin/perl/dist/PathTools/META.json
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/META.json,v
diff -u -p -a -u -p -r1.1.1.1 META.json
--- gnu/usr.bin/perl/dist/PathTools/META.json	13 Feb 2019 21:11:27 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/PathTools/META.json	21 Feb 2024 15:47:01 -0000
@@ -50,6 +50,6 @@
          "url" : "git://perl5.git.perl.org/perl.git"
       }
    },
-   "version" : "3.73",
+   "version" : "3.86",
    "x_serialization_backend" : "JSON::PP version 2.27400_02"
 }
Index: gnu/usr.bin/perl/dist/PathTools/META.yml
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/META.yml,v
diff -u -p -a -u -p -r1.1.1.1 META.yml
--- gnu/usr.bin/perl/dist/PathTools/META.yml	13 Feb 2019 21:11:27 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/PathTools/META.yml	21 Feb 2024 15:47:01 -0000
@@ -26,5 +26,5 @@ resources:
   bugtracker: https://rt.perl.org/rt3/
   homepage: http://dev.perl.org/
   repository: git://perl5.git.perl.org/perl.git
-version: '3.73'
+version: '3.86'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
Index: gnu/usr.bin/perl/dist/PathTools/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/Makefile.PL,v
diff -u -p -a -u -p -r1.4 Makefile.PL
--- gnu/usr.bin/perl/dist/PathTools/Makefile.PL	15 Feb 2023 01:36:28 -0000	1.4
+++ gnu/usr.bin/perl/dist/PathTools/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -29,10 +29,7 @@ WriteMakefile
           'VERSION_FROM' => 'Cwd.pm',
           'ABSTRACT' => 'Tools for working with directory and file names',
           'AUTHOR' => 'Perl 5 Porters',
-          'DEFINE' => join(" ",
-                "-DDOUBLE_SLASHES_SPECIAL=@{[$^O eq q(qnx) || $^O eq q(nto) ? 1 : 0]}",
-                ((grep { $_ eq 'PERL_CORE=1' } @ARGV) ? '-DNO_PPPORT_H' : ()),
-          ),
+          'DEFINE' => "-DDOUBLE_SLASHES_SPECIAL=@{[$^O eq q(qnx) || $^O eq q(nto) ? 1 : 0]}",
           'PREREQ_PM' => {
                            'Carp' => '0',
                            'File::Basename' => '0',
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec.pm,v
diff -u -p -a -u -p -r1.7 Spec.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package File::Spec;
 
 use strict;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 my %module = (
@@ -33,13 +33,13 @@ File::Spec - portably perform operations
 
 	use File::Spec;
 
-	$x=File::Spec->catfile('a', 'b', 'c');
+	my $x = File::Spec->catfile('a', 'b', 'c');
 
 which returns 'a/b/c' under Unix. Or:
 
 	use File::Spec::Functions;
 
-	$x = catfile('a', 'b', 'c');
+	my $x = catfile('a', 'b', 'c');
 
 =head1 DESCRIPTION
 
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/AmigaOS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/AmigaOS.pm,v
diff -u -p -a -u -p -r1.4 AmigaOS.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/AmigaOS.pm	15 Feb 2023 01:36:29 -0000	1.4
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/AmigaOS.pm	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@ package File::Spec::AmigaOS;
 use strict;
 require File::Spec::Unix;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Cygwin.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Cygwin.pm,v
diff -u -p -a -u -p -r1.7 Cygwin.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Cygwin.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Cygwin.pm	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@ package File::Spec::Cygwin;
 use strict;
 require File::Spec::Unix;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Epoc.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Epoc.pm,v
diff -u -p -a -u -p -r1.7 Epoc.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Epoc.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Epoc.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package File::Spec::Epoc;
 
 use strict;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 require File::Spec::Unix;
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Functions.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Functions.pm,v
diff -u -p -a -u -p -r1.7 Functions.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Functions.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Functions.pm	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@ package File::Spec::Functions;
 use File::Spec;
 use strict;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 require Exporter;
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Mac.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Mac.pm,v
diff -u -p -a -u -p -r1.7 Mac.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Mac.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Mac.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/OS2.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/OS2.pm,v
diff -u -p -a -u -p -r1.7 OS2.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/OS2.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/OS2.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Unix.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Unix.pm,v
diff -u -p -a -u -p -r1.7 Unix.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Unix.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Unix.pm	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@ package File::Spec::Unix;
 use strict;
 use Cwd ();
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 =head1 NAME
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/VMS.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/VMS.pm,v
diff -u -p -a -u -p -r1.7 VMS.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/VMS.pm	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/VMS.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
Index: gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Win32.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Win32.pm,v
diff -u -p -a -u -p -r1.8 Win32.pm
--- gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Win32.pm	15 Feb 2023 01:36:29 -0000	1.8
+++ gnu/usr.bin/perl/dist/PathTools/lib/File/Spec/Win32.pm	21 Feb 2024 15:47:02 -0000
@@ -5,7 +5,7 @@ use strict;
 use Cwd ();
 require File::Spec::Unix;
 
-our $VERSION = '3.84';
+our $VERSION = '3.88';
 $VERSION =~ tr/_//d;
 
 our @ISA = qw(File::Spec::Unix);
Index: gnu/usr.bin/perl/dist/PathTools/t/cwd_enoent.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/t/cwd_enoent.t,v
diff -u -p -a -u -p -r1.1.1.3 cwd_enoent.t
--- gnu/usr.bin/perl/dist/PathTools/t/cwd_enoent.t	15 Feb 2023 01:32:57 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/PathTools/t/cwd_enoent.t	21 Feb 2024 15:47:02 -0000
@@ -28,8 +28,10 @@ foreach my $type (qw(regular perl)) {
 
         # https://github.com/Perl/perl5/issues/16525
         # https://bugs.dragonflybsd.org/issues/3250
+        my @vlist = ($Config{osvers} =~ /(\d+)/g);
+        my $osver = sprintf("%d%03d", map { defined() ? $_ : '0' } @vlist[0,1]);
 	skip "getcwd() doesn't fail on non-existent directories on this platform", 4
-	    if $type eq 'regular' && $^O eq 'dragonfly';
+	    if $type eq 'regular' && $^O eq 'dragonfly' && $osver < 6002;
 
 	skip "getcwd() doesn't fail on non-existent directories on this platform", 4
 	    if $type eq 'regular' && $^O eq 'haiku';
Index: gnu/usr.bin/perl/dist/PathTools/t/tmpdir.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/PathTools/t/tmpdir.t,v
diff -u -p -a -u -p -r1.1.1.1 tmpdir.t
--- gnu/usr.bin/perl/dist/PathTools/t/tmpdir.t	17 Nov 2014 20:53:04 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/PathTools/t/tmpdir.t	21 Feb 2024 15:47:02 -0000
@@ -43,7 +43,7 @@ for ('File::Spec', "File::Spec::Win32") 
     -d $ENV{TMPDIR} && -w _
        or skip "Can't create usable TMPDIR env var", 1;
     my $tmpdir2 = $_->tmpdir;
-    isn't $tmpdir2, $tmpdir1, "$_->tmpdir works with changing env";
+    isnt $tmpdir2, $tmpdir1, "$_->tmpdir works with changing env";
   }
 }
 
Index: gnu/usr.bin/perl/dist/Safe/Safe.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Safe/Safe.pm,v
diff -u -p -a -u -p -r1.5 Safe.pm
--- gnu/usr.bin/perl/dist/Safe/Safe.pm	15 Feb 2023 01:36:29 -0000	1.5
+++ gnu/usr.bin/perl/dist/Safe/Safe.pm	21 Feb 2024 15:47:01 -0000
@@ -3,7 +3,7 @@ package Safe;
 use 5.003_11;
 use Scalar::Util qw(reftype refaddr);
 
-$Safe::VERSION = "2.43";
+$Safe::VERSION = "2.44";
 
 # *** Don't declare any lexicals above this point ***
 #
Index: gnu/usr.bin/perl/dist/Safe/t/safeload.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Safe/t/safeload.t,v
diff -u -p -a -u -p -r1.1.1.3 safeload.t
--- gnu/usr.bin/perl/dist/Safe/t/safeload.t	24 Mar 2014 14:59:00 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Safe/t/safeload.t	21 Feb 2024 15:47:01 -0000
@@ -21,7 +21,7 @@ use Safe;
 plan(tests => 3);
 
 my $c = new Safe;
-$c->permit(qw(require caller entereval unpack));
+$c->permit(qw(require caller entereval unpack rand));
 my $r = $c->reval(q{ use version; 1 });
 ok( defined $r, "Can load version.pm in a Safe compartment" ) or diag $@;
 
Index: gnu/usr.bin/perl/dist/Safe/t/safeops.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Safe/t/safeops.t,v
diff -u -p -a -u -p -r1.3 safeops.t
--- gnu/usr.bin/perl/dist/Safe/t/safeops.t	13 Feb 2019 21:15:21 -0000	1.3
+++ gnu/usr.bin/perl/dist/Safe/t/safeops.t	21 Feb 2024 15:47:01 -0000
@@ -453,7 +453,7 @@ dor		$x // $y
 dorassign	$x //= $y
 once		SKIP {use feature 'state'; state $foo = 42;}
 say		SKIP {use feature 'say'; say "foo";}
-smartmatch	no warnings 'experimental::smartmatch'; $x ~~ $y
+smartmatch	no warnings 'deprecated'; $x ~~ $y
 aeach		SKIP each @t
 akeys		SKIP keys @t
 avalues		SKIP values @t
Index: gnu/usr.bin/perl/dist/SelfLoader/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/SelfLoader/Changes
diff -N gnu/usr.bin/perl/dist/SelfLoader/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/SelfLoader/Changes	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,43 @@
+Revision history for Perl extension SelfLoader
+
+1.24    Thu Aug  3 18:00 2017
+  - Fix minor POD issues.
+
+1.20    Mon Dec 19 20:03 2011
+  - Update FSF address also in separate license file, duh.
+
+1.19    Mon Dec 19 20:00 2011
+  - Update FSF address.
+
+1.18    Sat Nov 20 01:30 2010
+  - port commit a3a44df66ac2cb0beb603b3dd9697fd81cfcfb30
+    from core:
+     [perl #72062] Untaint DATA after it's reopened
+     DATA handle is untainted on startup, but as we close and reopen it it
+     gets the taint flag. It's safe to untaint it though, since we still hold
+     the file descriptor open and don't reassign it to another file.
+     
+     This was probably broken by changeset 29606, (c96b2385 in perl git).
+
+1.17     Thu Oct 23 20:12 2008
+  - Tiny fix in error messages: Use $! instead of $1.
+
+1.16     Sat Aug  2 17:29 2008
+  - Report the location of warnings and errors. (perl ticket #5298,
+    Marc Gauthier)
+
+1.15     Thu Jan 17 17:43 2008
+  - Fix non-critical warning in the test suite. (Jerry D. Hedden)
+
+1.14     Wed Jan 16 16:26 2008
+  - No failures reported, promote to stable version.
+
+1.13_03  Fri Dec 28 11:28 2007
+  - Doc patch. This is SelfLoader, not AutoLoader.
+
+1.13_02  Wed Dec 26 16:03 2007
+  - Fixed the README.
+
+1.13_01  Wed Dec 26 12:38 2007
+  - Initial dual-lived CPAN release
+
Index: gnu/usr.bin/perl/dist/SelfLoader/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/SelfLoader/Makefile.PL
diff -N gnu/usr.bin/perl/dist/SelfLoader/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/SelfLoader/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,19 @@
+## This -*- perl -*- script writes the Makefile for SelfLoader
+# You should read "perldoc perlmodinstall" for instructions on
+#  how to install modules like this.
+
+require 5.008;
+use strict;
+use ExtUtils::MakeMaker;
+WriteMakefile(
+  'NAME' => 'SelfLoader',
+  'VERSION_FROM' => 'lib/SelfLoader.pm', # finds $VERSION
+  'LICENSE' => 'perl_5',
+  'PREREQ_PM' => {},
+  'ABSTRACT_FROM' => 'lib/SelfLoader.pm',
+  'AUTHOR' => 'Steffen Mueller <smueller@cpan.org>',
+  'INSTALLDIRS' => ( $] < 5.011 ? 'perl' : 'site' ),
+);
+
+__END__
+
Index: gnu/usr.bin/perl/dist/SelfLoader/t/03taint.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/SelfLoader/t/03taint.t,v
diff -u -p -a -u -p -r1.1.1.1 03taint.t
--- gnu/usr.bin/perl/dist/SelfLoader/t/03taint.t	25 Mar 2013 20:08:39 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/SelfLoader/t/03taint.t	21 Feb 2024 15:47:01 -0000
@@ -2,6 +2,6 @@
 
 # This runs 01SelfLoader.t under taint.
 
-my $file = __FILE__ =~ s/[\w.]+\z/01SelfLoader.t/r;
+(my $file = __FILE__) =~ s/[\w.]+\z/01SelfLoader.t/;
 unshift @INC, ".";
 do $file or die "Cannot run $file: ", $@||$!;
Index: gnu/usr.bin/perl/dist/Storable/ChangeLog
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Storable/ChangeLog,v
diff -u -p -a -u -p -r1.6 ChangeLog
--- gnu/usr.bin/perl/dist/Storable/ChangeLog	15 Feb 2023 01:36:29 -0000	1.6
+++ gnu/usr.bin/perl/dist/Storable/ChangeLog	21 Feb 2024 15:47:01 -0000
@@ -1,3 +1,32 @@
+2023-05-26 21:36:00 demerphq
+    version 3.32
+        * Update security advisory to be more clear
+
+2023-02-26 00:31:32 demerphq
+    version 3.31
+        * Fixup for ppport fix in 3.30
+
+2023-02-22 09:56:27 leont
+    version 3.30
+        * Use ppport for all modules in dist.
+
+2023-01-04 17:33:24 iabyn
+    version 3.29
+        * Store code fixes identified from refcounted stack patch
+
+2022-11-08 10:12:46 tony
+    version 3.28
+        * Store hook error reporting improvements
+	* Store hook handles regex objects properly.
+
+2022-06-20 20:32:29 toddr
+    version 3.27
+        * Use cBOOL instead of !! in xs code
+
+2022-04-18 17:36:00 toddr
+    version 3.26
+        * Conform to ppport.h 3.68 recommendations
+
 2021-08-30 07:46:52 nwclark
     version 3.25
         * No changes from previous version
Index: gnu/usr.bin/perl/dist/Storable/Storable.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Storable/Storable.pm,v
diff -u -p -a -u -p -r1.6 Storable.pm
--- gnu/usr.bin/perl/dist/Storable/Storable.pm	15 Feb 2023 01:36:29 -0000	1.6
+++ gnu/usr.bin/perl/dist/Storable/Storable.pm	21 Feb 2024 15:47:01 -0000
@@ -28,7 +28,7 @@ our @EXPORT_OK = qw(
 our ($canonical, $forgive_me);
 
 BEGIN {
-  our $VERSION = '3.26';
+  our $VERSION = '3.32';
 }
 
 our $recursion_limit;
@@ -1197,11 +1197,16 @@ compartment:
 
 =head1 SECURITY WARNING
 
-B<Do not accept Storable documents from untrusted sources!>
+B<Do not accept Storable documents from untrusted sources!> There is
+B<no> way to configure Storable so that it can be used safely to process
+untrusted data.  While there I<are> various options that can be used to
+mitigate specific security issues these options do I<not> comprise a
+complete safety net for the user, and processing untrusted data may
+result in segmentation faults, remote code execution, or privilege
+escalation.  The following lists some known features which represent
+security issues that should be considered by users of this module.
 
-Some features of Storable can lead to security vulnerabilities if you
-accept Storable documents from untrusted sources with the default
-flags. Most obviously, the optional (off by default) CODE reference
+Most obviously, the optional (off by default) CODE reference
 serialization feature allows transfer of code to the deserializing
 process. Furthermore, any serialized object will cause Storable to
 helpfully load the module corresponding to the class of the object in
@@ -1224,12 +1229,15 @@ With the default setting of C<$Storable:
 random objects, even renamed objects can be controlled by an attacker.
 See CVE-2015-1592 and its metasploit module.
 
-If your application requires accepting data from untrusted sources,
-you are best off with a less powerful and more-likely safe
-serialization format and implementation. If your data is sufficiently
-simple, L<Cpanel::JSON::XS>, L<Data::MessagePack> or L<Sereal> are the best
-choices and offer maximum interoperability, but note that Sereal is
-L<unsafe by default|Sereal::Decoder/ROBUSTNESS>.
+If your application requires accepting data from untrusted sources, you
+are best off with a less powerful and more-likely safe serialization
+format and implementation.  If your data is sufficiently simple,
+L<Cpanel::JSON::XS> or L<Data::MessagePack> are fine alternatives.  For
+more complex data structures containing various Perl specific data types
+like regular expressions or aliased data L<Sereal> is the best
+alternative and offers maximum interoperability.  Note that Sereal is
+L<unsafe by default|Sereal::Decoder/ROBUSTNESS>, but you can configure
+the encoder and decoder to mitigate any security issues.
 
 =head1 WARNING
 
Index: gnu/usr.bin/perl/dist/Storable/Storable.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Storable/Storable.xs,v
diff -u -p -a -u -p -r1.7 Storable.xs
--- gnu/usr.bin/perl/dist/Storable/Storable.xs	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/Storable/Storable.xs	21 Feb 2024 15:47:01 -0000
@@ -16,18 +16,13 @@
 #include <perl.h>
 #include <XSUB.h>
 
-#ifndef PERL_VERSION_LT
-# if !defined(PERL_VERSION) || !defined(PERL_REVISION) || ( PERL_REVISION == 5 && ( PERL_VERSION < 10 || (PERL_VERSION == 10 && PERL_SUBVERSION < 1) ) )
-#   define NEED_PL_parser
-#   define NEED_sv_2pv_flags
-#   define NEED_load_module
-#   define NEED_vload_module
-#   define NEED_newCONSTSUB
-#   define NEED_newSVpvn_flags
-#   define NEED_newRV_noinc
-# endif
+#define NEED_sv_2pv_flags
+#define NEED_load_module
+#define NEED_vload_module
+#define NEED_newCONSTSUB
+#define NEED_newSVpvn_flags
+#define NEED_newRV_noinc
 #include "ppport.h"             /* handle old perls */
-#endif
 
 #ifdef DEBUGGING
 #define DEBUGME /* Debug mode, turns assertions on as well */
@@ -176,7 +171,9 @@
 #define SX_SVUNDEF_ELEM	C(31)	/* array element set to &PL_sv_undef */
 #define SX_REGEXP	C(32)	/* Regexp */
 #define SX_LOBJECT	C(33)	/* Large object: string, array or hash (size >2G) */
-#define SX_LAST		C(34)	/* invalid. marker only */
+#define SX_BOOLEAN_TRUE	C(34)	/* Boolean true */
+#define SX_BOOLEAN_FALSE	C(35)	/* Boolean false */
+#define SX_LAST		C(36)	/* invalid. marker only */
 
 /*
  * Those are only used to retrieve "old" pre-0.6 binary images.
@@ -975,7 +972,7 @@ static const char byteorderstr_56[] = {B
 #endif
 
 #define STORABLE_BIN_MAJOR	2		/* Binary major "version" */
-#define STORABLE_BIN_MINOR	11		/* Binary minor "version" */
+#define STORABLE_BIN_MINOR	12		/* Binary minor "version" */
 
 #if !defined (SvVOK)
 /*
@@ -1454,6 +1451,8 @@ static const sv_retrieve_t sv_old_retrie
     (sv_retrieve_t)retrieve_other,	/* SX_SVUNDEF_ELEM not supported */
     (sv_retrieve_t)retrieve_other,	/* SX_REGEXP */
     (sv_retrieve_t)retrieve_other,  	/* SX_LOBJECT not supported */
+    (sv_retrieve_t)retrieve_other,	/* SX_BOOLEAN_TRUE not supported */
+    (sv_retrieve_t)retrieve_other,	/* SX_BOOLEAN_FALSE not supported */
     (sv_retrieve_t)retrieve_other,  	/* SX_LAST */
 };
 
@@ -1477,6 +1476,8 @@ static SV *retrieve_weakoverloaded(pTHX_
 static SV *retrieve_vstring(pTHX_ stcxt_t *cxt, const char *cname);
 static SV *retrieve_lvstring(pTHX_ stcxt_t *cxt, const char *cname);
 static SV *retrieve_svundef_elem(pTHX_ stcxt_t *cxt, const char *cname);
+static SV *retrieve_boolean_true(pTHX_ stcxt_t *cxt, const char *cname);
+static SV *retrieve_boolean_false(pTHX_ stcxt_t *cxt, const char *cname);
 
 static const sv_retrieve_t sv_retrieve[] = {
     0,					/* SX_OBJECT -- entry unused dynamically */
@@ -1513,6 +1514,8 @@ static const sv_retrieve_t sv_retrieve[]
     (sv_retrieve_t)retrieve_svundef_elem,/* SX_SVUNDEF_ELEM */
     (sv_retrieve_t)retrieve_regexp,	/* SX_REGEXP */
     (sv_retrieve_t)retrieve_lobject,	/* SX_LOBJECT */
+    (sv_retrieve_t)retrieve_boolean_true,	/* SX_BOOLEAN_TRUE */
+    (sv_retrieve_t)retrieve_boolean_false,	/* SX_BOOLEAN_FALSE */
     (sv_retrieve_t)retrieve_other,  	/* SX_LAST */
 };
 
@@ -2454,6 +2457,16 @@ static int store_scalar(pTHX_ stcxt_t *c
             pv = SvPV(sv, len);		/* We know it's SvPOK */
             goto string;			/* Share code below */
         }
+#ifdef SvIsBOOL
+    } else if (SvIsBOOL(sv)) {
+        TRACEME(("mortal boolean"));
+        if (SvTRUE_nomg_NN(sv)) {
+            PUTMARK(SX_BOOLEAN_TRUE);
+        }
+        else {
+            PUTMARK(SX_BOOLEAN_FALSE);
+        }
+#endif
     } else if (flags & SVf_POK) {
         /* public string - go direct to string read.  */
         goto string_readlen;
@@ -3250,6 +3263,7 @@ static int store_code(pTHX_ stcxt_t *cxt
         CROAK(("Unexpected return value from B::Deparse::coderef2text\n"));
 
     text = POPs;
+    PUTBACK;
     len = SvCUR(text);
     reallen = strlen(SvPV_nolen(text));
 
@@ -3567,7 +3581,10 @@ static int store_hook(
     int need_large_oids = 0;
 #endif
 
-    TRACEME(("store_hook, classname \"%s\", tagged #%d", HvNAME_get(pkg), (int)cxt->tagnum));
+    classname = HvNAME_get(pkg);
+    len = strlen(classname);
+
+    TRACEME(("store_hook, classname \"%s\", tagged #%d", classname, (int)cxt->tagnum));
 
     /*
      * Determine object type on 2 bits.
@@ -3576,6 +3593,7 @@ static int store_hook(
     switch (type) {
     case svis_REF:
     case svis_SCALAR:
+    case svis_REGEXP:
         obj_type = SHT_SCALAR;
         break;
     case svis_ARRAY:
@@ -3615,13 +3633,20 @@ static int store_hook(
         }
         break;
     default:
-        CROAK(("Unexpected object type (%d) in store_hook()", type));
+        {
+            /* pkg_can() always returns a ref to a CV on success */
+            CV *cv = (CV*)SvRV(hook);
+            const GV * const gv = CvGV(cv);
+            const char *gvname = GvNAME(gv);
+            const HV * const stash = GvSTASH(gv);
+            const char *hvname = stash ? HvNAME(stash) : NULL;
+
+            CROAK(("Unexpected object type (%s) of class '%s' in store_hook() calling %s::%s",
+                   sv_reftype(sv, FALSE), classname, hvname, gvname));
+        }
     }
     flags = SHF_NEED_RECURSE | obj_type;
 
-    classname = HvNAME_get(pkg);
-    len = strlen(classname);
-
     /*
      * To call the hook, we need to fake a call like:
      *
@@ -5883,6 +5908,50 @@ static SV *retrieve_integer(pTHX_ stcxt_
 }
 
 /*
+ * retrieve_boolean_true
+ *
+ * Retrieve boolean true copy.
+ */
+static SV *retrieve_boolean_true(pTHX_ stcxt_t *cxt, const char *cname)
+{
+    SV *sv;
+    HV *stash;
+
+    TRACEME(("retrieve_boolean_true (#%d)", (int)cxt->tagnum));
+
+    sv = newSVsv(&PL_sv_yes);
+    stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
+    SEEN_NN(sv, stash, 0);  /* Associate this new scalar with tag "tagnum" */
+
+    TRACEME(("boolean true"));
+    TRACEME(("ok (retrieve_boolean_true at 0x%" UVxf ")", PTR2UV(sv)));
+
+    return sv;
+}
+
+/*
+ * retrieve_boolean_false
+ *
+ * Retrieve boolean false copy.
+ */
+static SV *retrieve_boolean_false(pTHX_ stcxt_t *cxt, const char *cname)
+{
+    SV *sv;
+    HV *stash;
+
+    TRACEME(("retrieve_boolean_false (#%d)", (int)cxt->tagnum));
+
+    sv = newSVsv(&PL_sv_no);
+    stash = cname ? gv_stashpv(cname, GV_ADD) : 0;
+    SEEN_NN(sv, stash, 0);  /* Associate this new scalar with tag "tagnum" */
+
+    TRACEME(("boolean false"));
+    TRACEME(("ok (retrieve_boolean_false at 0x%" UVxf ")", PTR2UV(sv)));
+
+    return sv;
+}
+
+/*
  * retrieve_lobject
  *
  * Retrieve overlong scalar, array or hash.
@@ -7774,7 +7843,7 @@ CODE:
         assert(cxt);
         result = cxt->entry && (cxt->optype & ix) ? TRUE : FALSE;
     } else {
-        result = !!last_op_in_netorder(aTHX);
+        result = cBOOL(last_op_in_netorder(aTHX));
     }
     ST(0) = boolSV(result);
 
Index: gnu/usr.bin/perl/dist/Storable/t/blessed.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Storable/t/blessed.t,v
diff -u -p -a -u -p -r1.1.1.4 blessed.t
--- gnu/usr.bin/perl/dist/Storable/t/blessed.t	13 Feb 2019 21:11:28 -0000	1.1.1.4
+++ gnu/usr.bin/perl/dist/Storable/t/blessed.t	21 Feb 2024 15:47:01 -0000
@@ -44,7 +44,7 @@ use Storable qw(freeze thaw store retrie
    'long VSTRING' => \(my $lvstring = eval "v" . 0 x 300),
    LVALUE         => \(my $substr  = substr((my $str = "foo"), 0, 3)));
 
-my $test = 13;
+my $test = 18;
 my $tests = $test + 41 + (2 * 6 * keys %::immortals) + (3 * keys %::weird_refs);
 plan(tests => $tests);
 
@@ -413,4 +413,55 @@ is(ref $t, 'STRESS_THE_STACK');
     ok(ref $@, "and a ref thrown");
 
     unlink("store$$");
+}
+
+{
+    # trying to freeze a glob via STORABLE_freeze
+    {
+        package GlobHookedBase;
+
+        sub STORABLE_freeze {
+            return \1;
+        }
+
+        package GlobHooked;
+        our @ISA = "GlobHookedBase";
+    }
+    use Symbol ();
+    my $glob = bless Symbol::gensym(), "GlobHooked";
+    eval {
+        my $data = freeze($glob);
+    };
+    my $msg = $@;
+    like($msg, qr/Unexpected object type \(GLOB\) of class 'GlobHooked' in store_hook\(\) calling GlobHookedBase::STORABLE_freeze/,
+         "check we get the verbose message");
+}
+
+SKIP:
+{
+    $] < 5.012
+      and skip "Can't assign regexps directly before 5.12", 4;
+    my $hook_called;
+    # store regexp via hook
+    {
+        package RegexpHooked;
+        sub STORABLE_freeze {
+            ++$hook_called;
+            "$_[0]";
+        }
+        sub STORABLE_thaw {
+            my ($obj, $cloning, $serialized) = @_;
+            ++$hook_called;
+            $$obj = ${ qr/$serialized/ };
+        }
+    }
+
+    my $obj = bless qr/abc/, "RegexpHooked";
+    my $data = freeze($obj);
+    ok($data, "froze regexp blessed into hooked class");
+    ok($hook_called, "and the hook was actually called");
+    $hook_called = 0;
+    my $obj_thawed = thaw($data);
+    ok($hook_called, "hook called for thaw");
+    like("abc", $obj_thawed, "check the regexp");
 }
Index: gnu/usr.bin/perl/dist/Storable/t/boolean.t
===================================================================
RCS file: gnu/usr.bin/perl/dist/Storable/t/boolean.t
diff -N gnu/usr.bin/perl/dist/Storable/t/boolean.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Storable/t/boolean.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,84 @@
+use strict;
+use warnings;
+
+my $true_ref;
+my $false_ref;
+BEGIN {
+    $true_ref = \!!1;
+    $false_ref = \!!0;
+}
+
+BEGIN {
+    unshift @INC, 't';
+    unshift @INC, 't/compat' if $] < 5.006002;
+    require Config;
+    if ($ENV{PERL_CORE} and $Config::Config{'extensions'} !~ /\bStorable\b/) {
+        print "1..0 # Skip: Storable was not built\n";
+        exit 0;
+    }
+}
+
+use Test::More tests => 12;
+use Storable qw(thaw freeze);
+
+use constant CORE_BOOLS => defined &builtin::is_bool;
+
+{
+  my $x = $true_ref;
+  my $y = ${thaw freeze \$x};
+  is($y, $x);
+  eval {
+    $$y = 2;
+  };
+  isnt $@, '',
+    'immortal true maintained as immortal';
+}
+
+{
+  my $x = $false_ref;
+  my $y = ${thaw freeze \$x};
+  is($y, $x);
+  eval {
+    $$y = 2;
+  };
+  isnt $@, '',
+    'immortal false maintained as immortal';
+}
+
+{
+  my $true = $$true_ref;
+  my $x = \$true;
+  my $y = ${thaw freeze \$x};
+  is($$y, $$x);
+  is($$y, '1');
+  SKIP: {
+    skip "perl $] does not support tracking boolean values", 1
+      unless CORE_BOOLS;
+    BEGIN { CORE_BOOLS and warnings->unimport('experimental::builtin') }
+    ok builtin::is_bool($$y);
+  }
+  eval {
+    $$y = 2;
+  };
+  is $@, '',
+    'mortal true maintained as mortal';
+}
+
+{
+  my $false = $$false_ref;
+  my $x = \$false;
+  my $y = ${thaw freeze \$x};
+  is($$y, $$x);
+  is($$y, '');
+  SKIP: {
+    skip "perl $] does not support tracking boolean values", 1
+      unless CORE_BOOLS;
+    BEGIN { CORE_BOOLS and warnings->unimport('experimental::builtin') }
+    ok builtin::is_bool($$y);
+  }
+  eval {
+    $$y = 2;
+  };
+  is $@, '',
+    'mortal true maintained as mortal';
+}
Index: gnu/usr.bin/perl/dist/Storable/t/malice.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Storable/t/malice.t,v
diff -u -p -a -u -p -r1.1.1.6 malice.t
--- gnu/usr.bin/perl/dist/Storable/t/malice.t	15 Feb 2023 01:32:55 -0000	1.1.1.6
+++ gnu/usr.bin/perl/dist/Storable/t/malice.t	21 Feb 2024 15:47:01 -0000
@@ -32,7 +32,7 @@ our $file_magic_str = 'pst0';
 our $other_magic = 7 + length $byteorder;
 our $network_magic = 2;
 our $major = 2;
-our $minor = 11;
+our $minor = 12;
 our $minor_write = $] >= 5.019 ? 11 : $] > 5.008 ? 9 : $] > 5.005_50 ? 8 : 4;
 
 use Test::More;
@@ -206,7 +206,7 @@ sub test_things {
     $where = $file_magic + $network_magic;
   }
 
-  # Just the header and a tag 255. As 33 is currently the highest tag, this
+  # Just the header and a tag 255. As 34 is currently the highest tag, this
   # is "unexpected"
   $copy = substr ($contents, 0, $where) . chr 255;
 
@@ -226,7 +226,7 @@ sub test_things {
   # local $Storable::DEBUGME = 1;
   # This is the delayed croak
   test_corrupt ($copy, $sub,
-                "/^Storable binary image v$header->{major}.$minor6 contains data of type 255. This Storable is v$header->{major}.$minor and can only handle data types up to 33/",
+                "/^Storable binary image v$header->{major}.$minor6 contains data of type 255. This Storable is v$header->{major}.$minor and can only handle data types up to 35/",
                 "bogus tag, minor plus 4");
   # And check again that this croak is not delayed:
   {
Index: gnu/usr.bin/perl/dist/Test/ChangeLog
===================================================================
RCS file: gnu/usr.bin/perl/dist/Test/ChangeLog
diff -N gnu/usr.bin/perl/dist/Test/ChangeLog
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Test/ChangeLog	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,151 @@
+# ChangeLog for Test.pm dist
+
+1.26    2013-01-16  Jesse R Vincent <jesse@bestpractical.com>
+	* Bump version to a stable number. No functional changes
+
+1.25_02 2009-06-08  Jesse R Vincent <jesse@bestpractical.com>
+	* Typo fixes from Perl core
+	* README updated
+	* Ancient TODO removed
+	* New Maintainer
+
+2004-04-24  Sean M. Burke <sburke@cpan.org>
+	* Release 1.25
+	* added some new tests
+	* Gisle Aas kindly contributes a bunch of new code that diffs
+	multiline result and expectation
+	* corrected some doc typoes to do with skip()
+	
+2003-04-18  Sean M. Burke <sburke@cpan.org>
+	* Release 1.24
+	* Two cosmetic fixes:  Ken Williams spotted the typo (tr/[...]//d
+	for tr/...//d) that was deleting brackets in program source
+	lines.  Fixed.
+	* And Rob Nagler noticed that I was reporting the MacPerl
+	"verison" instead of "version".  Fixed.  That's all.
+
+2002-10-11  Sean M. Burke <sburke@cpan.org>
+	* Release 1.23
+	* Dermot Musgrove notes that I switched localtime and gmtime in
+	the last dist!  Fixed.  That is all.
+
+2002-08-28  Sean M. Burke <sburke@cpan.org>
+	* Release 1.22
+	* Doc note about the danger of "ok Foo->can('bar');", as helpfully
+	noted by Schwern
+	* Applied Schwern's fix for false positives with "ok 1, undef;"
+	
+2002-08-26  Sean M. Burke <sburke@cpan.org>
+	* Release 1.21
+	* I take over maintenance.
+	* Lots of doc improvement and examples added.
+	* More comment lines are sent to STDERR/STDOUT, noting Perl
+	version and platform, noting content of line where error occurred
+	when it looks interesting, etc.
+	* A bit more DWIM with skip().
+	* Noted in the docs that this modules is indeed being developed.
+	
+2002-02-07  Michael G Schwern <schwern@pobox.com>
+	* Release 1.20
+	* Failure diagnostics now go to STDERR so they show up
+	  in 'make test'.
+	- noted in the docs that this module is no longer being
+	  developed.
+
+2001-12-17  Michael G Schwern <schwern@pobox.com>
+	* Release 1.19
+	- Resetting globals for mod_perl testing (thanks to Stas Bekman)
+ 	- License change to be same as perl's
+
+2001-07-20  Michael G Schwern <schwern@pobox.com>
+	* Release 1.18
+	* Now recommending Test::Simple/More in the docs
+	* Removed warning about skip interface, it was a mistake
+	- added mention of Pod::Tests and SelfTest
+	- Test's tests no longer report "UNEXPECTEDLY SUCCEEDED"
+
+2001-05-29  Michael G Schwern <schwern@pobox.com>
+	* Release 1.17
+	- protected against stray $/ and $,
+	* documented ok()
+	* made the regex diagnostics a bit more obvious
+ 	* Backported to 5.004 (if you're using the new Test::Harness)
+	* Included the VMS fix for ok()
+
+2001-02-16  Michael G Schwern <schwern@pobox.com>
+
+	* Release 1.16
+
+	* Taken over maintenance from Joshua.  Altered AUTHOR appropriately.
+	  Blame me.
+
+	* t/fail.t was failing on Windows because the filename was
+	  hardcoded in the test (its t\fail.t on Windows).  NOT A BUG!
+
+2000-11-22  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.15.
+
+	* Fix documentation. (crt@kiski.net)
+
+1999-06-21  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.14.
+
+	* Port back to 5.004_05.
+
+1999-05-07  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.13.
+
+	* Handle undef without triggering warnings.  Added tests.
+
+1998-11-29  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.122.
+
+	* Make Test.pm 7-bit clean.  (Sarathy)
+
+1998-11-23  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Allow customization of 'skip' reason.  Improved tests.
+
+1998-11-17  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.11.
+
+	* Add 5.005 dependency to Makefile.PL.
+
+1998-11-12  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.10.
+
+	* Support qr//.
+
+1998-10-15  Joshua Pritikin  <joshua.pritikin@db.com>
+
+	* Release 1.09.
+
+	* Better diagnostics for failed todo tests.
+
+	* Document return value.
+
+1998-08-21  Joshua Pritikin  <joshua@eq1062.wks.na.deuba.com>
+
+	* Version 1.08.
+
+	* Documentation tweaks.
+
+1998-08-21  Joshua Pritikin  <joshua@eq1062.wks.na.deuba.com>
+
+	* Version 1.07.
+
+	* Send all output to $TESTOUT.
+
+	* Removed all failures from the test suite.  More work is still
+ 	needed but this is a start.
+
+	* Moved $ntest to @EXPORT_OK from @EXPORT.
+
+	* Instead of printing bits to STDERR, now all output goes to
+ 	STDOUT.
Index: gnu/usr.bin/perl/dist/Test/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Test/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Test/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Test/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,40 @@
+require 5.004;
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+    NAME		=> 'Test',
+    VERSION_FROM	=> './lib/Test.pm',
+    ABSTRACT_FROM	=> './lib/Test.pm',
+    PREREQ_PM	  	=> {
+        'Test::Harness'  => 1.1601,
+        'File::Spec'     => 0,
+    },
+    INSTALLDIRS        => ( $] < 5.011 ? 'perl' : 'site' ),
+);
+
+{
+    package MY;
+
+    sub test_via_harness {
+        my($self, $orig_perl, $tests) = @_;
+
+        my @perls = ($orig_perl);
+        # XXX: This should probably be updated to something more modern,
+        # or removed outright. - Yves
+        push @perls, qw(bleadperl 
+                        perl5.6.1
+                        perl5.6.0
+                        perl5.005_03 
+                        perl5.004_05 
+                        perl5.004_04
+                        perl5.004)
+          if $ENV{PERL_TEST_ALL};
+
+        my $out;
+        foreach my $perl (@perls) {
+            $out .= $self->SUPER::test_via_harness($perl, $tests);
+        }
+
+        return $out;
+    }
+}
Index: gnu/usr.bin/perl/dist/Thread-Queue/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Queue/Changes
diff -N gnu/usr.bin/perl/dist/Thread-Queue/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Queue/Changes	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,79 @@
+Revision history for Perl extension Thread::Queue.
+
+3.13 Wed Jul 18 02:00:03 2018
+	- [rt.cpan.org #125868] Fix tests for Test::Simple 1.302138
+
+3.12 Thu Feb  9 18:42:45 2017
+	- Fix deadlock caused by combination of dequeue_nb, enqueue and
+		queue size limit (Bug #120157 - fix by Chad Fox)
+	- Prevent calling dequeue methods with COUNT > LIMIT
+
+3.11 Fri May 20 18:33:00 2016
+	- Removed use of detached threads in tests (Bug #114468)
+
+3.09 Sat Apr 30 21:33:54 2016
+	- Sync with blead
+
+3.07 Fri Oct 23 23:54:18 2015
+	- Edge-case fix to queue limit feature
+
+3.06 Sat Aug 22 20:33:23 2015
+	- Added queue limit feature as per suggestion by Mark Zealey
+
+3.05 Thu Mar 20 21:39:32 2014
+	- Sync with blead
+
+3.04 Tue Mar 11 19:29:00 2014
+	- Fix for reporting correct location of validation error
+
+3.03 Thu Mar  6 20:50:41 2014
+	- Conversion of internal functions to methods to permit sub-classing
+
+3.02 Tue Feb 19 18:22:15 2013
+	- Timed dequeue as per suggestion by Andreas Huber
+
+3.01 Tue Oct 23 22:44:30 EDT 2012
+	- Added ->end() as per suggestion by Michael G. Schwern
+	- Major version bump because of change in structure of queue objects
+
+2.12 Fri Dec 24 17:52:51 2010
+	- Install in 'site' for Perl >= 5.011
+	- Test file changes for core
+	- Added new example (examples/callback.pl) to distribution
+	- POD update
+
+2.11 Thu Jun 12 13:41:45 2008
+	- End all tests with exit(0) and fix SKIPs
+
+2.09 Fri May 30 16:31:48 2008
+	- Check for 'undef' for counts and indices
+
+2.08 Wed May 14 15:24:53 2008
+	- Use threads::shared::shared_clone() for complex data
+
+2.07 Wed May  7 18:48:46 2008
+	- Properly clone complex structures with circular references
+
+2.06 Fri Feb 22 22:08:38 2008
+	- Allow installation on non-threaded Perls
+
+2.05 Wed Feb 20 17:21:25 2008
+	- Build/test updates
+
+2.04 Mon Feb 18 12:31:30 2008
+	- Install under 'perl' dir
+
+2.03 Fri Feb 15 18:54:15 2008
+	- Support queuing refs of refs
+
+2.02 Fri Feb 15 15:18:11 2008
+	- Fix tests to work under Perl 5.8.0
+
+2.01 Thu Feb 14 18:11:00 2008
+	- Added 'count' option to dequeue and dequeue_nb
+	- Added peek, insert and extract methods
+	- Support queuing of complex data structures
+
+2.00 Jul 12 16:31:00 2002
+	- Released as part of Perl 5.8.0
+
Index: gnu/usr.bin/perl/dist/Thread-Queue/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Queue/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Thread-Queue/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Queue/Makefile.PL	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,41 @@
+# Module makefile for Thread::Queue (using ExtUtils::MakeMaker)
+
+require 5.008;
+
+use strict;
+use warnings;
+
+use ExtUtils::MakeMaker;
+
+# Construct make file
+WriteMakefile(
+    'NAME'          => 'Thread::Queue',
+    'AUTHOR'        => 'Jerry D. Hedden <jdhedden AT cpan DOT org>',
+    'VERSION_FROM'  => 'lib/Thread/Queue.pm',
+    'ABSTRACT_FROM' => 'lib/Thread/Queue.pm',
+    'PREREQ_PM'     => {
+        'threads::shared'   => 1.21,
+        'Scalar::Util'      => 1.10,
+        'Test::More'        => 0.50,
+        'Thread::Semaphore' => 0,
+    },
+    'INSTALLDIRS'   => (($] < 5.011) ? 'perl' : 'site'),
+
+    ((ExtUtils::MakeMaker->VERSION() lt '6.25') ?
+        ('PL_FILES' => { })            : ()),
+    ((ExtUtils::MakeMaker->VERSION() gt '6.30') ?
+        ('LICENSE'  => 'perl_5')       : ()),
+);
+
+# Additional 'make' targets
+sub MY::postamble
+{
+    return <<'_EXTRAS_';
+fixfiles:
+	@dos2unix `cat MANIFEST`
+	@$(CHMOD) 644 `cat MANIFEST`
+	@$(CHMOD) 755 examples/*.pl
+_EXTRAS_
+}
+
+# EOF
Index: gnu/usr.bin/perl/dist/Thread-Queue/examples/callback.pl
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Queue/examples/callback.pl
diff -N gnu/usr.bin/perl/dist/Thread-Queue/examples/callback.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Queue/examples/callback.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,123 @@
+#!/usr/bin/perl
+
+# Simplified example illustrating event handling and callback threads
+
+# Callback threads register their queues with the event handler thread.
+# Events are passed to the event handler via a queue.
+# The event handler then disseminates the event to the appropriately
+#   registered thread.
+
+use strict;
+use warnings;
+
+use threads;
+use Thread::Queue;
+
+MAIN:
+{
+    # Queue for registering callbacks
+    my $regis_q = Thread::Queue->new();
+
+    # Queue for disseminating events
+    my $event_q = Thread::Queue->new();
+
+    # Create callback threads
+    threads->create('CallBack', 'USR1', $regis_q)->detach();
+    threads->create('CallBack', 'USR2', $regis_q)->detach();
+    threads->create('CallBack', 'HUP', $regis_q)->detach();
+    threads->create('CallBack', 'ALRM', $regis_q)->detach();
+
+    # Create event handler thread
+    threads->create('EventHandler', $regis_q, $event_q)->detach();
+
+    # Capture SIGUSR1 events
+    $SIG{'USR1'} = sub {
+        $event_q->enqueue('USR1');  # Send to event handler
+    };
+
+    # Capture SIGUSR1 events
+    $SIG{'USR2'} = sub {
+        $event_q->enqueue('USR2');  # Send to event handler
+    };
+
+    # Capture SIGHUP events
+    $SIG{'HUP'} = sub {
+        $event_q->enqueue('HUP');  # Send to event handler
+    };
+
+    # Capture SIGHUP events
+    $SIG{'ALRM'} = sub {
+        $event_q->enqueue('ALRM');  # Send to event handler
+        alarm(5);                   # Reset alarm
+    };
+
+    # Ready
+    print(<<_MSG_);
+Send signals to PID = $$
+  (e.g., 'kill -USR1 $$')
+Use ^C (or 'kill -INT $$') to terminate
+_MSG_
+
+    # Set initial alarm
+    alarm(5);
+
+    # Just hang around
+    while (1) {
+        sleep(10);
+    }
+}
+
+### Subroutines ###
+
+sub EventHandler
+{
+    my ($regis_q, $event_q) = @_;
+
+    my %callbacks;   # Registered callback queues
+
+    while (1) {
+        # Check for any registrations
+        while (my ($event_type, $q) = $regis_q->dequeue_nb(2)) {
+            if ($q) {
+                $callbacks{$event_type} = $q;
+            } else {
+                warn("BUG: Bad callback registration for event type $event_type\n");
+            }
+        }
+
+        # Wait for event
+        if (my $event = $event_q->dequeue()) {
+            # Send event to appropriate queue
+            if (exists($callbacks{$event})) {
+                $callbacks{$event}->enqueue($event);
+            } else {
+                warn("WARNING: No callback for event type $event\n");
+            }
+        }
+    }
+}
+
+
+sub CallBack
+{
+    my $event_type = shift;   # The type of event I'm handling
+    my $regis_q    = shift;
+
+    # Announce registration
+    my $tid = threads->tid();
+    print("Callback thread $tid registering for $event_type events\n");
+
+    # Register my queue for my type of event
+    my $q = Thread::Queue->new();
+    $regis_q->enqueue($event_type, $q);
+
+    # Process loop
+    while (1) {
+        # Wait for event callback
+        my $item = $q->dequeue();
+        # Process event
+        print("Callback thread $tid notified of $item event\n") if $item;
+    }
+}
+
+# EOF
Index: gnu/usr.bin/perl/dist/Thread-Queue/examples/queue.pl
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Queue/examples/queue.pl
diff -N gnu/usr.bin/perl/dist/Thread-Queue/examples/queue.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Queue/examples/queue.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,56 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use threads;
+use Thread::Queue 3.01;
+
+# Create a work queue for sending data to a 'worker' thread
+#   Prepopulate it with a few work items
+my $work_q = Thread::Queue->new(qw/foo bar baz/);
+
+# Create a status queue to get reports from the thread
+my $status_q = Thread::Queue->new();
+
+# Create a detached thread to process items from the queue
+threads->create(sub {
+                    # Keep grabbing items off the work queue
+                    while (defined(my $item = $work_q->dequeue())) {
+                        # Process the item from the queue
+                        print("Thread got '$item'\n");
+
+                        # Ask for more work when the queue is empty
+                        if (! $work_q->pending()) {
+                            print("\nThread waiting for more work\n\n");
+                            $status_q->enqueue('more');
+                        }
+                    }
+
+                    # Final report
+                    print("Thread done\n");
+                    $status_q->enqueue('done');
+
+                })->detach();
+
+# More work for the thread
+my @work = (
+    [ 'bippity', 'boppity', 'boo' ],
+    [ 'ping', 'pong' ],
+    [ 'dit', 'dot', 'dit' ],
+);
+
+# Send work to the thread
+while ($status_q->dequeue() eq 'more') {
+    last if (! @work);   # No more work
+    $work_q->enqueue(@{shift(@work)});
+}
+
+# Signal that there is no more work
+$work_q->end();
+# Wait for thread to terminate
+$status_q->dequeue();
+# Good-bye
+print("Done\n");
+
+# EOF
Index: gnu/usr.bin/perl/dist/Thread-Semaphore/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Semaphore/Changes
diff -N gnu/usr.bin/perl/dist/Thread-Semaphore/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Semaphore/Changes	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,45 @@
+Revision history for Perl extension Thread::Semaphore.
+
+2.13 Sat Aug 27 13:00:00 2016
+	- Added ->down_timed()
+
+2.12 Fri Dec 24 17:48:48 2010
+	- POD update
+
+2.11 Thu Jun 11 02:14:41 2010
+	- Added ->down_nb() and ->down_force()
+	- Skip argument validation when no argument
+	- Install in 'site' for Perl >= 5.011
+	- Test file changes for core
+
+2.09 Thu Jun 12 13:40:19 2008
+	- End all tests with exit(0) and fix SKIPs
+
+2.08 Mon May 19 17:03:33 2008
+	- Check for undef args
+
+2.07 Fri Feb 22 21:36:54 2008
+	- Allow installation on non-threaded Perls
+
+2.06 Wed Feb 20 17:19:31 2008
+	- Build/test updates
+
+2.05 Mon Feb 18 12:23:15 2008
+	- Install under 'perl' dir
+
+2.04 Fri Feb 15 15:14:30 2008
+	- Fix tests to work under Perl 5.8.0
+
+2.03 Thu Feb 14 20:05:30 2008
+	- Fix test failure
+
+2.02 Thu Feb 14 15:27:00 2008
+	- Argument validation
+	- Test suite
+
+2.01 Sep 02 06:40:00 2003
+	- Minor doc update
+
+2.00 Jul 12 16:32:00 2002
+	- Released as part of Perl 5.8.0
+
Index: gnu/usr.bin/perl/dist/Thread-Semaphore/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Semaphore/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Thread-Semaphore/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Semaphore/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,40 @@
+# Module makefile for Thread::Semaphore (using ExtUtils::MakeMaker)
+
+require 5.008;
+
+use strict;
+use warnings;
+
+use ExtUtils::MakeMaker;
+
+# Construct make file
+WriteMakefile(
+    'NAME'          => 'Thread::Semaphore',
+    'AUTHOR'        => 'Jerry D. Hedden <jdhedden AT cpan DOT org>',
+    'VERSION_FROM'  => 'lib/Thread/Semaphore.pm',
+    'ABSTRACT_FROM' => 'lib/Thread/Semaphore.pm',
+    'PREREQ_PM'     => {
+        'threads::shared' => 0,
+        'Scalar::Util'    => 1.10,
+        'Test::More'      => 0.50,
+    },
+    'INSTALLDIRS'   => (($] < 5.011) ? 'perl' : 'site'),
+
+    ((ExtUtils::MakeMaker->VERSION() lt '6.25') ?
+        ('PL_FILES' => { })            : ()),
+    ((ExtUtils::MakeMaker->VERSION() gt '6.30') ?
+        ('LICENSE'  => 'perl_5')       : ()),
+);
+
+# Additional 'make' targets
+sub MY::postamble
+{
+    return <<'_EXTRAS_';
+fixfiles:
+	@dos2unix `cat MANIFEST`
+	@$(CHMOD) 644 `cat MANIFEST`
+	@$(CHMOD) 755 examples/*.pl
+_EXTRAS_
+}
+
+# EOF
Index: gnu/usr.bin/perl/dist/Thread-Semaphore/examples/semaphore.pl
===================================================================
RCS file: gnu/usr.bin/perl/dist/Thread-Semaphore/examples/semaphore.pl
diff -N gnu/usr.bin/perl/dist/Thread-Semaphore/examples/semaphore.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Thread-Semaphore/examples/semaphore.pl	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use threads;
+use Thread::Semaphore;
+
+MAIN:
+{
+    # Create semaphore with count of 0
+    my $s = Thread::Semaphore->new(0);
+
+    # Create detached thread
+    threads->create(sub {
+            # Thread is blocked until released by main
+            $s->down();
+
+            # Thread does work
+            # ...
+
+            # Tell main that thread is finished
+            $s->up();
+    })->detach();
+
+    # Release thread to do work
+    $s->up();
+
+    # Wait for thread to finish
+    $s->down();
+}
+
+exit(0);
+
+# EOF
Index: gnu/usr.bin/perl/dist/Tie-File/ChangeLog
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Tie-File/ChangeLog,v
diff -u -p -a -u -p -r1.1.1.1 ChangeLog
--- gnu/usr.bin/perl/dist/Tie-File/ChangeLog	1 Mar 2021 23:15:50 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/Tie-File/ChangeLog	21 Feb 2024 15:47:01 -0000
@@ -1,5 +1,14 @@
+1.07 - 2023-02-20 - Todd Rinaldo
+ - t/29a_upcopy.t - under parallel builds allow more time for test
+ - t/29_downcopy.t: Correct typo in inline comment
+
 What's new in version 1.06
  - Correct misleading entries in SYNOPSIS
+ - undef Tie::File objects before untie-ing arrays
+ - Tie-File: report test timeouts to STDERR
+ - t/29a_upcopy.t add test descriptions
+ - t/29a_upcopy.t: double timeout to 10
+ - t/29_downcopy.t: Correct typo in inline comment
 
 What's new in version 1.05
  - Remove unnecessary version change test
Index: gnu/usr.bin/perl/dist/Tie-File/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/Tie-File/Makefile.PL
diff -N gnu/usr.bin/perl/dist/Tie-File/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/Tie-File/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,33 @@
+## This -*- perl -*- script writes the Makefile for Tie::File
+# You should read "perldoc perlmodinstall" for instructions on
+#  how to install modules like this.
+
+require 5.006; # module uses 'our'
+use strict;
+use ExtUtils::MakeMaker;
+WriteMakefile(
+    'NAME' => 'Tie::File',
+    'VERSION_FROM'    => 'lib/Tie/File.pm',
+    'ABSTRACT_FROM'   => 'lib/Tie/File.pm',
+    'AUTHOR'          => 'Mark Jason Dominus <MJD@cpan.org>',
+    'dist'=> { COMPRESS => 'gzip -6f', SUFFIX => 'gz', },
+    INSTALLDIRS => ($] >= 5.007 && $] < 5.012) ? 'perl' : 'site',
+    DIR => [],
+    META_MERGE  => {
+        resources => {
+            license     => 'http://dev.perl.org/licenses/',
+            bugtracker  => 'https://github.com/Perl/perl5/issues',
+            repository  => 'https://github.com/Perl/perl5/tree/blead/dist/Tie-File',
+            MailingList => 'http://lists.perl.org/list/perl5-porters.html',
+        },
+    },
+);
+# generated by Makepmdist (mkpmdist) v1.01
+
+sub libscan { # Determine what shouldn't get installed
+  my($self, $path) = @_;
+  return '' if $path =~ m/~/;
+  return $path;
+}
+__END__
+
Index: gnu/usr.bin/perl/dist/Tie-File/lib/Tie/File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Tie-File/lib/Tie/File.pm,v
diff -u -p -a -u -p -r1.3 File.pm
--- gnu/usr.bin/perl/dist/Tie-File/lib/Tie/File.pm	1 Mar 2021 23:19:54 -0000	1.3
+++ gnu/usr.bin/perl/dist/Tie-File/lib/Tie/File.pm	21 Feb 2024 15:47:01 -0000
@@ -11,7 +11,7 @@ use Fcntl 'O_CREAT', 'O_RDWR', 'LOCK_EX'
 sub O_ACCMODE () { O_RDONLY | O_RDWR | O_WRONLY }
 
 
-our $VERSION = "1.06";
+our $VERSION = "1.07";
 my $DEFAULT_MEMORY_SIZE = 1<<21;    # 2 megabytes
 my $DEFAULT_AUTODEFER_THRESHHOLD = 3; # 3 records
 my $DEFAULT_AUTODEFER_FILELEN_THRESHHOLD = 65536; # 16 disk blocksful
Index: gnu/usr.bin/perl/dist/Tie-File/t/24_cache_loop.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Tie-File/t/24_cache_loop.t,v
diff -u -p -a -u -p -r1.1.1.3 24_cache_loop.t
--- gnu/usr.bin/perl/dist/Tie-File/t/24_cache_loop.t	1 Mar 2021 23:15:51 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Tie-File/t/24_cache_loop.t	21 Feb 2024 15:47:01 -0000
@@ -44,8 +44,11 @@ $N++;
 #   will then try to flush the read cache---but the read cache is
 #   already empty, so you're stuck in an infinite loop.
 #
-# Five seconds should be plenty of time for it to complete if it works.
-alarm 5 unless $^P;
+# Ten seconds should be plenty of time for it to complete if it works
+# on an unloaded box. Using 20 under parallel builds seems prudent.
+my $alarm_time = $ENV{TEST_JOBS} || $ENV{HARNESS_OPTIONS} ? 20 : 10;
+local $SIG{ALRM} = sub { die "$0 Timeout after $alarm_time seconds at test 3\n" };
+alarm $alarm_time unless $^P;
 @a = "record0" .. "record9";
 print "ok 3\n";
 alarm 0;
@@ -55,6 +58,3 @@ END {
   untie @a;
   1 while unlink $file;
 }
-
-
-
Index: gnu/usr.bin/perl/dist/Tie-File/t/29_downcopy.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Tie-File/t/29_downcopy.t,v
diff -u -p -a -u -p -r1.1.1.3 29_downcopy.t
--- gnu/usr.bin/perl/dist/Tie-File/t/29_downcopy.t	1 Mar 2021 23:15:51 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Tie-File/t/29_downcopy.t	21 Feb 2024 15:47:01 -0000
@@ -245,7 +245,7 @@ sub try {
   binmode F;
 
   # The record has exactly 17 characters.  This will help ensure that
-  # even if _downcoopy screws up, the data doesn't coincidentally
+  # even if _downcopy screws up, the data doesn't coincidentally
   # look good because the remainder accidentally lines up.
   my $d = substr("0123456789abcdef$:", -17);
   my $recs = defined($FLEN) ?
@@ -274,13 +274,15 @@ sub try {
   }
 
   my $o = tie my @lines, 'Tie::File', $file or die $!;
+  # allocate more time when are running tests in parallel
+  my $alarm_time = $ENV{TEST_JOBS} || $ENV{HARNESS_OPTIONS} ? 20 : 10;
   local $SIG{ALRM} = sub { die "Alarm clock" };
-  my $a_retval = eval { alarm(5) unless $^P; $o->_downcopy($newdata, $pos, $len) };
+  my $a_retval = eval { alarm($alarm_time) unless $^P; $o->_downcopy($newdata, $pos, $len) };
   my $err = $@;
   undef $o; untie @lines; alarm(0);
   if ($err) {
     if ($err =~ /^Alarm clock/) {
-      print "# Timeout\n";
+      print STDERR "# $0 Timeout after $alarm_time seconds at test $N\n";
       print "not ok $N\n"; $N++;
       print "not ok $N\n"; $N++;
       if (defined $len) {
Index: gnu/usr.bin/perl/dist/Tie-File/t/29a_upcopy.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Tie-File/t/29a_upcopy.t,v
diff -u -p -a -u -p -r1.1.1.3 29a_upcopy.t
--- gnu/usr.bin/perl/dist/Tie-File/t/29a_upcopy.t	1 Mar 2021 23:15:51 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Tie-File/t/29a_upcopy.t	21 Feb 2024 15:47:01 -0000
@@ -130,13 +130,15 @@ sub try {
   }
 
   my $o = tie my @lines, 'Tie::File', $file or die $!;
+  # allocate more time for the test if we are running parallel tests
+  my $alarm_time = ($ENV{TEST_JOBS} || $ENV{HARNESS_OPTIONS}) ? 20 : 10;
   local $SIG{ALRM} = sub { die "Alarm clock" };
-  my $a_retval = eval { alarm(5) unless $^P; $o->_upcopy($src, $dst, $len) };
+  my $a_retval = eval { alarm($alarm_time) unless $^P; $o->_upcopy($src, $dst, $len) };
   my $err = $@;
   undef $o; untie @lines; alarm(0);
   if ($err) {
     if ($err =~ /^Alarm clock/) {
-      print "# Timeout\n";
+      print STDERR "# $0 Timeout after $alarm_time seconds at test $N\n";
       print "not ok $N\n"; $N++;
       return;
     } else {
@@ -157,7 +159,9 @@ sub try {
   unless ($alen == $xlen) {
     print "# try(@_) expected file length $xlen, actual $alen!\n";
   }
-  print $actual eq $expected ? "ok $N\n" : "not ok $N\n";
+  my $desc = sprintf "try(%d, %d, %s)",
+                $src, $dst, (defined $len ? $len : "undef");
+  print $actual eq $expected ? "ok $N - $desc\n" : "not ok $N - $desc\n";
   $N++;
 }
 
@@ -171,4 +175,3 @@ sub ctrlfix {
 END {
   1 while unlink $file;
 }
-
Index: gnu/usr.bin/perl/dist/Time-HiRes/Changes
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Time-HiRes/Changes,v
diff -u -p -a -u -p -r1.6 Changes
--- gnu/usr.bin/perl/dist/Time-HiRes/Changes	15 Feb 2023 01:36:29 -0000	1.6
+++ gnu/usr.bin/perl/dist/Time-HiRes/Changes	21 Feb 2024 15:47:02 -0000
@@ -4,6 +4,19 @@ Revision history for the Perl extension 
 
  - Remove obsolete vms code
  - Use core version compare
+ - Use GIMME_V instead of the deprecated GIMME
+ - t/utime.t: dragonflybsd has only microsecond precision
+ - t/utime.t: dragonflybsd is noatime by default
+ - t/stat.t: skip testing access times on HaikuOS, it doesn't support
+   atime
+ - darwin: make sure the compiler can find the system perl headers
+   https://github.com/Perl/perl5/issues/20362
+ - darwin: make sure PERL_DARWIN is defined on darwin.
+ - don't compare stat and lstat atime if PERL_FILE_ATIME_CHANGES is set in
+   the environment.
+   https://github.com/Perl/perl5/issues/19321
+ - don't use C++ guards around the perl header files, it caused C++
+   build failures with MSVC.
 
 1.9764 [2020-08-10]
  - Fix a bunch of repeated-word typos
Index: gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm,v
diff -u -p -a -u -p -r1.9 HiRes.pm
--- gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm	15 Feb 2023 01:36:29 -0000	1.9
+++ gnu/usr.bin/perl/dist/Time-HiRes/HiRes.pm	21 Feb 2024 15:47:02 -0000
@@ -50,7 +50,7 @@ our @EXPORT_OK = qw (usleep sleep ualarm
                  stat lstat utime
                 );
 
-our $VERSION = '1.9770';
+our $VERSION = '1.9775';
 our $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
Index: gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs,v
diff -u -p -a -u -p -r1.9 HiRes.xs
--- gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs	15 Feb 2023 01:36:29 -0000	1.9
+++ gnu/usr.bin/perl/dist/Time-HiRes/HiRes.xs	21 Feb 2024 15:47:02 -0000
@@ -11,18 +11,15 @@
  * it under the same terms as Perl itself.
  */
 
-#ifdef __cplusplus
-extern "C" {
-#endif
 #define PERL_NO_GET_CONTEXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
 #include "reentr.h"
-#ifdef USE_PPPORT_H
+#if !defined(IS_SAFE_PATHNAME) && defined(TIME_HIRES_UTIME) && defined(HAS_UTIMENSAT)
 #define NEED_ck_warner
-#  include "ppport.h"
 #endif
+#include "ppport.h"
 #if defined(__CYGWIN__) && defined(HAS_W32API_WINDOWS_H)
 #  include <w32api/windows.h>
 #  define CYGWIN_WITH_W32API
@@ -40,9 +37,6 @@ extern "C" {
 #if defined(TIME_HIRES_CLOCK_GETTIME_SYSCALL) || defined(TIME_HIRES_CLOCK_GETRES_SYSCALL)
 #  include <syscall.h>
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 #ifndef GCC_DIAG_IGNORE
 #  define GCC_DIAG_IGNORE(x)
@@ -263,8 +257,6 @@ _gettimeofday(pTHX_ struct timeval *tp, 
 static int
 _clock_gettime(pTHX_ clockid_t clock_id, struct timespec *tp)
 {
-    FT_t ft;
-
     switch (clock_id) {
     case CLOCK_REALTIME: {
         FT_t ft;
@@ -1193,7 +1185,7 @@ gettimeofday()
         int status;
         status = gettimeofday (&Tp, NULL);
         if (status == 0) {
-            if (GIMME == G_LIST) {
+            if (GIMME_V == G_LIST) {
                 EXTEND(sp, 2);
                 PUSHs(sv_2mortal(newSViv(Tp.tv_sec)));
                 PUSHs(sv_2mortal(newSViv(Tp.tv_usec)));
@@ -1250,7 +1242,7 @@ setitimer(which, seconds, interval = 0)
         if (setitimer(which, &newit, &oldit) == 0) {
             EXTEND(sp, 1);
             PUSHs(sv_2mortal(newSVnv(TV2NV(oldit.it_value))));
-            if (GIMME == G_LIST) {
+            if (GIMME_V == G_LIST) {
                 EXTEND(sp, 1);
                 PUSHs(sv_2mortal(newSVnv(TV2NV(oldit.it_interval))));
             }
@@ -1270,7 +1262,7 @@ getitimer(which)
         if (getitimer(which, &nowit) == 0) {
             EXTEND(sp, 1);
             PUSHs(sv_2mortal(newSVnv(TV2NV(nowit.it_value))));
-            if (GIMME == G_LIST) {
+            if (GIMME_V == G_LIST) {
                 EXTEND(sp, 1);
                 PUSHs(sv_2mortal(newSVnv(TV2NV(nowit.it_interval))));
             }
Index: gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL,v
diff -u -p -a -u -p -r1.9 Makefile.PL
--- gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL	15 Feb 2023 01:36:29 -0000	1.9
+++ gnu/usr.bin/perl/dist/Time-HiRes/Makefile.PL	21 Feb 2024 15:47:02 -0000
@@ -68,11 +68,20 @@ __EOD__
             }
         }
 
-        my $ccflags = $Config{'ccflags'} . ' ' . "-I$COREincdir"
-         . ' -DPERL_NO_INLINE_FUNCTIONS';
+        my $ccflags = $Config{'ccflags'} . ' ';
+        my @osvers = split /\./, $Config{osvers};
+        if ($^O eq "darwin"
+            && $^X eq "/usr/bin/perl"
+            && $osvers[0] >= 18) {
+            $ccflags .= qq(-iwithsysroot "$COREincdir");
+        }
+        else {
+            $ccflags .= "-I$COREincdir"
+        }
+        $ccflags .= ' -DPERL_NO_INLINE_FUNCTIONS';
 
         if ($^O eq 'VMS') {
-            $cccmd = "$Config{'cc'} /include=($COREincdir) $tmp.c";
+            $cccmd = "$Config{'cc'} $Config{'ccflags'} /include=($COREincdir) $tmp.c";
         }
 
         if ($args{silent} || !$VERBOSE) {
@@ -841,6 +850,11 @@ EOM
             print "NOT found.\n";
         }
     }
+    if ($^O eq "darwin") {
+        # the system perl on darwin doesn't seem to include -DPERL_DARWIN
+        # which breaks setting up emulation
+        DEFINE("PERL_DARWIN");
+    }
 
     if ($DEFINE) {
         $DEFINE =~ s/^\s+//;
@@ -853,8 +867,6 @@ EOM
 
 sub doMakefile {
     my @makefileopts = ();
-
-    DEFINE('USE_PPPORT_H') unless $ENV{PERL_CORE};
 
     push (@makefileopts,
         'NAME'  => 'Time::HiRes',
Index: gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t,v
diff -u -p -a -u -p -r1.7 stat.t
--- gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t	15 Feb 2023 01:36:29 -0000	1.7
+++ gnu/usr.bin/perl/dist/Time-HiRes/t/stat.t	21 Feb 2024 15:47:02 -0000
@@ -36,7 +36,11 @@ for (1..5) {
     SKIP: {
         if($^O eq "haiku") {
             skip "testing stat access time on Haiku", 2;
-        }  
+        }
+        if ($ENV{PERL_FILE_ATIME_CHANGES}) {
+            # something else might access the file, changing atime
+            $lstat->[8] = $stat->[8];
+        }
         is_deeply $lstat, $stat, "write: stat and lstat returned same values";
         Time::HiRes::sleep(rand(0.1) + 0.1);
         open(X, '<', $$);
Index: gnu/usr.bin/perl/dist/Unicode-Normalize/Normalize.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/Unicode-Normalize/Normalize.pm,v
diff -u -p -a -u -p -r1.1.1.3 Normalize.pm
--- gnu/usr.bin/perl/dist/Unicode-Normalize/Normalize.pm	15 Feb 2023 01:32:55 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Unicode-Normalize/Normalize.pm	21 Feb 2024 15:47:01 -0000
@@ -7,7 +7,7 @@ use Carp;
 
 no warnings 'utf8';
 
-our $VERSION = '1.31';
+our $VERSION = '1.32';
 our $PACKAGE = __PACKAGE__;
 
 our @EXPORT = qw( NFC NFD NFKC NFKD );
@@ -376,7 +376,7 @@ Note that C<$unprocessed> will be modifi
 
 =head2 Quick Check
 
-(see Annex 8, UAX #15; and F<DerivedNormalizationProps.txt>)
+(see Annex 8, UAX #15; and F<lib/unicore/DerivedNormalizationProps.txt>)
 
 The following functions check whether the string is in that normalization form.
 
@@ -604,8 +604,10 @@ so one could cause Unicode 3.2 to be use
 
 In older Unicode versions, a small number of characters (all of which are
 CJK compatibility ideographs as far as they have been found) may have
-an erroneous decomposition mapping (see F<NormalizationCorrections.txt>).
-Anyhow, this module will neither refer to F<NormalizationCorrections.txt>
+an erroneous decomposition mapping (see
+F<lib/unicore/NormalizationCorrections.txt>).
+Anyhow, this module will neither refer to
+F<lib/unicore/NormalizationCorrections.txt>
 nor provide any specific version of normalization. Therefore this module
 running on an older perl with an older Unicode database may use
 the erroneous decomposition mapping blindly conforming to the Unicode database.
Index: gnu/usr.bin/perl/dist/XSLoader/XSLoader_pm.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/XSLoader/XSLoader_pm.PL,v
diff -u -p -a -u -p -r1.5 XSLoader_pm.PL
--- gnu/usr.bin/perl/dist/XSLoader/XSLoader_pm.PL	15 Feb 2023 01:36:29 -0000	1.5
+++ gnu/usr.bin/perl/dist/XSLoader/XSLoader_pm.PL	21 Feb 2024 15:47:01 -0000
@@ -16,7 +16,7 @@ no strict 'refs';
 
 package XSLoader;
 
-our $VERSION = "0.31"; # remember to update version in POD!
+our $VERSION = "0.32"; # remember to update version in POD!
 
 package DynaLoader;
 
@@ -207,7 +207,7 @@ XSLoader - Dynamically load C libraries 
 
 =head1 VERSION
 
-Version 0.31
+Version 0.32
 
 =head1 SYNOPSIS
 
Index: gnu/usr.bin/perl/dist/XSLoader/t/XSLoader.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/XSLoader/t/XSLoader.t,v
diff -u -p -a -u -p -r1.5 XSLoader.t
--- gnu/usr.bin/perl/dist/XSLoader/t/XSLoader.t	15 Feb 2023 01:36:29 -0000	1.5
+++ gnu/usr.bin/perl/dist/XSLoader/t/XSLoader.t	21 Feb 2024 15:47:01 -0000
@@ -7,11 +7,6 @@ use Config;
 
 my $db_file;
 BEGIN {
-    if (not eval "use Test::More; 1") {
-        print "1..0 # Skip: Test::More not available\n";
-        die "Test::More not available\n";
-    }
-
     use Config;
     foreach (qw/SDBM_File GDBM_File ODBM_File NDBM_File DB_File/) {
         if ($Config{extensions} =~ /\b$_\b/) {
@@ -21,6 +16,106 @@ BEGIN {
     }
 }
 
+# mini test implementation. We're going to be playing with the XS bits of
+# various modules that may be used by Test::More, so it's best to avoid. Since
+# XSLoader is dual life, we can't use something like perl's t/test.pl
+my $planned_tests;
+my $tests;
+my $passed_tests;
+sub ok ($;$) {
+    my ($ok, $name) = @_;
+    $tests++;
+    $passed_tests += 1 if $ok;
+    print STDOUT "not "
+        if !$ok;
+    print STDOUT "ok $tests";
+    print STDOUT " - $name"
+        if defined $name;
+    print "\n";
+    return $ok;
+}
+sub is ($$;$) {
+    my ($got, $want, $name) = @_;
+
+    my $ok
+        = !defined $want && !defined $got
+        || defined $want && defined $got && $got eq $want;
+
+    defined $_ or $_ = '[undef]'
+        for $got, $want;
+
+    ok($ok, $name)
+        or diag("Got: $got\nExpected: $want");
+
+    return $ok;
+}
+sub can_ok ($@) {
+    my ($inv, @methods) = @_;
+    die "only supports one method"
+        if @methods != 1;
+    ok $inv->can($methods[0]), "$inv->can('$methods[0]')";
+}
+sub skip ($$) {
+    my ($message, $count) = @_;
+    die "bad skip"
+        if !$count || $count =~ /[^0-9]/;
+    for (1..$count) {
+        $tests++;
+        print STDOUT "ok $tests # skip $message\n";
+    }
+    $passed_tests += $count;
+    no warnings 'exiting';
+    last SKIP;
+}
+sub like ($$;$) {
+    my ($got, $want_re, $name) = @_;
+    if (!ref $want_re) {
+        $want_re =~ m{\A/(.*)/([a-z]*)\z}
+            or die "bad regex $want_re";
+        $want_re = (length $2 ? "(?$2)" : '') . $1;
+    }
+    my $ok = $got =~ $want_re;
+    ok($ok, $name)
+        or diag("Got: $got\nExpected: $want_re");
+    return $ok;
+}
+sub diag {
+    my ($message) = @_;
+    $message =~ s/\n?\z/\n/;
+    $message =~ s/^/# /gm;
+    print STDERR $message;
+}
+END {
+    if (!defined $planned_tests) {
+        print STDERR "# No plan was declared!\n";
+        $? = 254;
+        return;
+    }
+
+    if ($tests != $planned_tests) {
+        print STDERR "# Looks like you planned $planned_tests test but ran $tests.\n";
+        $? = abs($planned_tests - $tests);
+    }
+    elsif ($passed_tests != $tests) {
+        my $failed = $tests - $passed_tests;
+        print STDERR "# Looks like you failed $failed test but ran $tests.\n";
+    }
+}
+sub plan {
+    my %opts = @_;
+    die "already planned"
+        if defined $planned_tests;
+    if (my $skip_all = $opts{skip_all}) {
+        print STDOUT "1..0 # SKIP $skip_all\n";
+        $planned_tests = 0;
+        exit 0;
+    }
+    elsif ($planned_tests = $opts{tests}) {
+        print STDOUT "1..$planned_tests\n";
+    }
+}
+
+###
 
 my %modules = (
     # ModuleName  => q|code to check that it was loaded|,
@@ -33,10 +128,9 @@ my %modules = (
     'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep'  ) |,  # 5.7.3
 );
 
-plan tests => keys(%modules) * 3 + 10;
+plan tests => keys(%modules) * 3 + 9;
 
-# Try to load the module
-use_ok( 'XSLoader' );
+use XSLoader;
 
 # Check functions
 can_ok( 'XSLoader' => 'load' );
Index: gnu/usr.bin/perl/dist/constant/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/constant/Changes
diff -N gnu/usr.bin/perl/dist/constant/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/constant/Changes	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,128 @@
+Revision history for constant
+
+1.33    2015.04.30    RJBS (Ricardo SIGNES)
+        [CODE] Updated from bleadperl:
+        - Stop using vars.pm
+        - Allow package name in ‘use constant’ constants
+        - Remove bug-inducing compile-time checking of constant values
+        - Make elements of list consts read-only
+
+1.27    2013.03.21    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Updated from bleadperl:
+         - Remove a reference to a non-existent module (Karl Williamson)
+         - Make utf8 downgrading version dependent in order to avoid
+           unconditional loading of utf8_heavy.pl (Brad Gilbert)
+
+1.25    2013.01.19    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Updated from bleadperl:
+         - Remove 5.6-isms (Sébastien Aperghis-Tramoni)
+
+1.24    2013.01.07    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Updated from bleadperl:
+         - Disable the UTF8 downgrade when unnecessary (Father Chrysostomos)
+         - Restore compatibility with Perl 5.8 (Sébastien Aperghis-Tramoni)
+         - Skip t/utf8.t on Perl before 5.8.4 (Sébastien Aperghis-Tramoni)
+        [DIST] Perl-RT #114050: Added meta-information in Makefile.PL to
+        reflect that the module is maintained by P5P.
+
+1.21    2011.04.18    SAPER (Sébastien Aperghis-Tramoni) #PerlQA2011
+        [CODE] Updated from bleadperl:
+         - Make Unicode constants under use utf8 work again (Father Chrysostomos)
+        [TESTS] Make tests pass under old Perls.
+
+1.20    2011.04.16    SAPER (Sébastien Aperghis-Tramoni) #PerlQA2011
+        [CODE] Updated from bleadperl:
+         - [perl #68640] Wrong error for undef constant name (Zefram).
+        [DIST] CPAN-RT #66727: Add explicit configure_requires to Build.PL
+        (David Golden).
+
+1.19    2009.09.12    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Optimisation: Avoid unnecessary flushing of the caller
+        package's MRO cache (Nicholas Clark).
+        [CODE] Optimisation: Use the internal constant _CAN_PCS to optimise
+        out things that can't happen pre 5.10 (Nicholas Clark).
+
+1.18    2009.08.18    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Optimisation: Generate perl version-dependent regexps once,
+        rather than every call to import (Nicholas Clark).
+        [CODE] Optimisation: Convert perl version check in import() from
+        run time to compile time (Nicholas Clark).
+        [TESTS] Re-added pseudohashes tests that were removed at some point
+        from bleadperl (Nicholas Clark).
+
+1.17    2008.10.29    SAPER (Sébastien Aperghis-Tramoni)
+        [TESTS] Moved the TRAILING test from t/constant.t to t/more-tests.t
+        in order to avoid FAIL reports when executed with Test::More 0.82+
+
+1.16    2008.09.21    SAPER (Sébastien Aperghis-Tramoni)
+        [DOC] The copyright section is also the license.
+        [DOC] Added a SEE ALSO section.
+        [DOC] Converted files to UTF-8.
+        [DOC] Improved the description in README.
+
+1.15    2007.12.31    SAPER (Sébastien Aperghis-Tramoni)
+        [TEST] Adjusted t/constant.t to how empty prototypes are reported
+        among different versions of Perl (thus fixing the FAIL reports for
+        Perl 5.8.0 to 5.8.3).
+
+1.14    2007.12.27    SAPER (Sébastien Aperghis-Tramoni)
+        [DIST] CPAN-RT#31627: Specify core install dir in Build.PL.
+        Thanks to Michael G Schwern.
+
+1.13    2007.12.27    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Merged changed blead@32338: UNITCHECK is only a keyword
+        post 5.009 (Nicholas Clark).
+        [DIST] Copied the sysnopsis into eg/
+
+1.12    2007.11.06    SAPER (Sébastien Aperghis-Tramoni)
+        [DIST] CPAN-RT#30460: The module must be installed in core, not in
+        site (because it get shadowed). Thanks to Imacat.
+
+1.11    2007.09.25    SAPER (Sébastien Aperghis-Tramoni)
+        [CODE] Fixed code and tests so everything work under Perl 5.005.
+        [DOC] Some Pod nits. Added information about current maintainers.
+
+1.10    2007.04.19
+        blead@30980: C3 MRO support (Brandon L Black).
+        blead@30824: Small fix for Symbian (Jarkko Hietaniemi).
+
+1.09    2007.03.13
+        blead@30561: Inform constant.pm about UNITCHECK (Joshua ben Jore).
+
+1.08    2007.02.13
+        blead@30255: Remove some debugging code (Nicholas Clark).
+        blead@26502: Use Internals::inc_sub_generation() to invalidate
+          cached methods (Nicholas Clark).
+
+1.07    2005.12.26
+        blead@26487: Rework constant.pm to take advantage of the space
+          savings of proxy constant subroutines whenever it can (Nicholas Clark).
+        blead@26485: Factore caller() call out of the loop (Nicholas Clark).
+
+1.06    2005.12.24
+        blead@26483: Using a hash reference rather than a hash can save a
+          hash copy (Nicholas Clark).
+
+1.05    2004.11.12
+        blead@23497: Silence an unnecessary warning (Anno Siegel).
+
+1.04    2001.07.29
+        blead@12097, 11473: Major POD rewrite (Ilmari Karonen).
+
+1.03    2001.06.29
+        blead@8240: Declare multiple constants at once (Casey West).
+
+1.02    2000.03.13
+        blead@5702: Use warnings::register (Paul Marquess).
+        blead@5463: Relax restrictions on constant names a bit (M J T Guy).
+        blead@4905: STOP blocks have been renamed to CHECK (Gurusamy Sarathy).
+
+1.01    1999.12.28
+        blead@4718: New version of constant.pm from Tom Phoenix; added Tom's
+          notes to perldelta; added STOP, DESTROY and AUTOLOAD to specials list
+        blead@2029: Restore sanity to "constant" references (Gurusamy Sarathy).
+
+
+Full history:
+    http://public.activestate.com/cgi-bin/perlbrowse/l/lib/constant.pm
+
Index: gnu/usr.bin/perl/dist/constant/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/constant/Makefile.PL
diff -N gnu/usr.bin/perl/dist/constant/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/constant/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,30 @@
+use 5.006;
+use strict;
+use ExtUtils::MakeMaker;
+
+my %prereq = (
+    "Test::More" => 0,
+);
+
+WriteMakefile(
+    NAME            => 'constant',
+    LICENSE         => 'perl',
+    AUTHOR          => 'Sebastien Aperghis-Tramoni <sebastien@aperghis.net>',
+    VERSION_FROM    => 'lib/constant.pm',
+    ABSTRACT_FROM   => 'lib/constant.pm',
+    INSTALLDIRS     => ( $] < 5.011 ? 'perl' : 'site' ),
+    PL_FILES        => {},
+    PREREQ_PM       => \%prereq,
+    META_MERGE          => {
+        resources       => {
+            repository  => 'https://github.com/Perl/perl5.git',
+            license     => 'http://dev.perl.org/licenses/',
+            homepage    => 'https://metacpan.org/module/constant',
+            irc         => 'irc://irc.perl.org/#p5p',
+            mailinglist => 'http://lists.perl.org/list/perl5-porters.html',
+            bugtracker  => 'https://github.com/Perl/perl5/issues',
+        },
+    },
+    dist            => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+    clean           => { FILES => 'constant-*' },
+);
Index: gnu/usr.bin/perl/dist/encoding-warnings/Changes
===================================================================
RCS file: gnu/usr.bin/perl/dist/encoding-warnings/Changes
diff -N gnu/usr.bin/perl/dist/encoding-warnings/Changes
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/encoding-warnings/Changes	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,41 @@
+Change log for encoding-warnings
+
+  - Converted Makefile.PL from using Module::Install to ExtUtils::MakeMaker
+
+0.14 - 2022-05-16
+
+  - Convert tests from Test.pm to Test::More
+
+0.13 - 2016-06-20
+
+  - Disable module on perl 5.26 and newer. Using it will be a no-op, but will
+    issue warnings.
+  - Skip tests on EBCDIC systems
+
+0.11 - 2007-06-05
+
+  - This module's effect is now lexical for Perl 5.9.5 and later.
+  - "no encoding::warnings" is made more inefficient by doing away
+    with an empty encoding handler.
+    Contributed by: Rafaël Garcia-Suarez
+
+0.04 - 2004-03-16
+
+  - This be 0.04, from the YAPC::Taipei::2004 release party.
+  - Various POD grammar updates.
+  - Mentions that we will be making encoding.pm to be lexical during 5.9.
+
+0.03 - 2004-03-15
+
+  - Fixes various typo and punctuations.
+  - Unified terminology to use "byte-string" and "unicode-string".
+
+0.02 - 2004-03-14
+
+  - Added lots of documentations, as well as explained the subtlety of
+    "use encoding" better.  Prompted by Ton Hospel.
+  - Do not bother decoding a string twice if it is us-ascii.
+
+0.01 - 2004-03-14
+
+  - Initial release on CPAN.
Index: gnu/usr.bin/perl/dist/encoding-warnings/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/encoding-warnings/Makefile.PL
diff -N gnu/usr.bin/perl/dist/encoding-warnings/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/encoding-warnings/Makefile.PL	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+use ExtUtils::MakeMaker;
+WriteMakefile(
+  NAME          => 'encoding::warnings',
+  VERSION_FROM  => 'lib/encoding/warnings.pm',
+  ABSTRACT_FROM => 'lib/encoding/warnings.pm',
+  INSTALLDIRS   => ( $] >= 5.009002 && $] < 5.011 ? 'perl' : 'site' ),
+  LICENSE       => 'perl_5',
+  TEST_REQUIRES => {
+    'Test::More' => 0,
+  },
+  PREREQ_PM     => {},
+  AUTHOR        => 'Audrey Tang <cpan@audreyt.org>',
+  META_MERGE    => {
+    resources => {
+      repository  => 'https://github.com/perl/perl5.git',
+      bugtracker  => 'https://github.com/perl/perl5/issues',
+      MailingList => 'https://lists.perl.org/list/perl5-porters.html',
+    },
+  },
+);
Index: gnu/usr.bin/perl/dist/encoding-warnings/lib/encoding/warnings.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/encoding-warnings/lib/encoding/warnings.pm,v
diff -u -p -a -u -p -r1.2 warnings.pm
--- gnu/usr.bin/perl/dist/encoding-warnings/lib/encoding/warnings.pm	13 Feb 2019 21:15:21 -0000	1.2
+++ gnu/usr.bin/perl/dist/encoding-warnings/lib/encoding/warnings.pm	21 Feb 2024 15:47:02 -0000
@@ -1,5 +1,5 @@
 package encoding::warnings;
-$encoding::warnings::VERSION = '0.13';
+$encoding::warnings::VERSION = '0.14';
 
 use strict;
 use 5.007;
@@ -32,7 +32,7 @@ thereafter.
     use encoding::warnings; # or 'FATAL' to raise fatal exceptions
 
     utf8::encode($a = chr(20000));  # a byte-string (raw bytes)
-    $b = chr(20000);		    # a unicode-string (wide characters)
+    $b = chr(20000);                # a unicode-string (wide characters)
 
     # "Bytes implicitly upgraded into wide characters as iso-8859-1"
     $c = $a . $b;
@@ -133,9 +133,9 @@ some people:
     use encoding 'big5';
 
     my $byte_string = pack("C*", 0xA4, 0x40);
-    print length $a;	# 2 here.
-    $a .= "";		# concatenating with a unicode string...
-    print length $a;	# 1 here!
+    print length $a;    # 2 here.
+    $a .= "";           # concatenating with a unicode string...
+    print length $a;    # 1 here!
 
 In other words, do not C<use encoding> unless you are certain that the
 program will not deal with any raw, 8-bit binary data at all.
@@ -162,11 +162,11 @@ sub FATAL  () { 2 }
 
 sub import {
     if ($] >= 5.025003) {
-	require Carp;
-	Carp::cluck(
-	    "encoding::warnings is not supported on Perl 5.26.0 and later"
-	);
-	return;
+        require Carp;
+        Carp::cluck(
+            "encoding::warnings is not supported on Perl 5.26.0 and later"
+        );
+        return;
     }
 
     # Install a ${^ENCODING} handler if no other one are already in place.
@@ -185,11 +185,11 @@ sub import {
 
     # Install a warning handler for decode()
     my $decoder = bless(
-	[
-	    $ascii,
-	    $latin1,
-	    (($fatal eq 'FATAL') ? 'Carp::croak' : 'Carp::carp'),
-	], $class,
+        [
+            $ascii,
+            $latin1,
+            (($fatal eq 'FATAL') ? 'Carp::croak' : 'Carp::carp'),
+        ], $class,
     );
 
     no warnings 'deprecated';
Index: gnu/usr.bin/perl/dist/encoding-warnings/t/1-warning.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/encoding-warnings/t/1-warning.t,v
diff -u -p -a -u -p -r1.2 1-warning.t
--- gnu/usr.bin/perl/dist/encoding-warnings/t/1-warning.t	13 Feb 2019 21:15:22 -0000	1.2
+++ gnu/usr.bin/perl/dist/encoding-warnings/t/1-warning.t	21 Feb 2024 15:47:02 -0000
@@ -4,30 +4,31 @@
 
 BEGIN {
     if (ord("A") != 65) {
-      print "1..0 # Skip: Encode not working on EBCDIC\n";
-      exit 0;
+        print "1..0 # Skip: Encode not working on EBCDIC\n";
+        exit 0;
     }
     unless (eval { require Encode } ) {
-	print "1..0 # Skip: no Encode\n";
-	exit 0;
+        print "1..0 # Skip: no Encode\n";
+        exit 0;
     }
 }
 
-use Test;
 use strict;
+use warnings;
+use Test::More;
 
 BEGIN {
     if ("$]" >= 5.025) {
-	# Test the new almost-noop behaviour in new perls.
-	plan tests => 3;
-	my $w;
-	$SIG{__WARN__} = sub { $w .= shift };
-	require encoding::warnings;
-	ok $w, undef, 'no warning from requiring encoding::warnings';
-	ok(encoding::warnings->VERSION);
-	encoding::warnings->import;
-	ok $w, qr/^encoding::warnings is not supported /, 'import warning';
-	exit;
+        # Test the new almost-noop behaviour in new perls.
+        plan tests => 3;
+        my $w;
+        $SIG{__WARN__} = sub { $w .= shift };
+        require encoding::warnings;
+        is $w, undef, 'no warning from requiring encoding::warnings';
+        ok(encoding::warnings->VERSION);
+        encoding::warnings->import;
+        like $w, qr/^encoding::warnings is not supported /, 'import warning';
+        exit;
     }
     # else continue with your usual scheduled testing...
     plan tests => 2;
Index: gnu/usr.bin/perl/dist/encoding-warnings/t/2-fatal.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/encoding-warnings/t/2-fatal.t,v
diff -u -p -a -u -p -r1.2 2-fatal.t
--- gnu/usr.bin/perl/dist/encoding-warnings/t/2-fatal.t	13 Feb 2019 21:15:22 -0000	1.2
+++ gnu/usr.bin/perl/dist/encoding-warnings/t/2-fatal.t	21 Feb 2024 15:47:02 -0000
@@ -4,23 +4,23 @@
 
 BEGIN {
     if ("$]" >= 5.025) {
-      print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
-      exit 0;
+        print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
+        exit 0;
     }
     if (ord("A") != 65) {
-      print "1..0 # Skip: Encode not working on EBCDIC\n";
-      exit 0;
+        print "1..0 # Skip: Encode not working on EBCDIC\n";
+        exit 0;
     }
     unless (eval { require Encode } ) {
-	print "1..0 # Skip: no Encode\n";
-	exit 0;
+        print "1..0 # Skip: no Encode\n";
+        exit 0;
     }
 }
 
-use Test;
-BEGIN { plan tests => 2 }
+use Test::More tests => 2;
 
 use strict;
+use warnings;
 use encoding::warnings 'FATAL';
 ok(encoding::warnings->VERSION);
 
Index: gnu/usr.bin/perl/dist/encoding-warnings/t/3-normal.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/encoding-warnings/t/3-normal.t,v
diff -u -p -a -u -p -r1.2 3-normal.t
--- gnu/usr.bin/perl/dist/encoding-warnings/t/3-normal.t	13 Feb 2019 21:15:22 -0000	1.2
+++ gnu/usr.bin/perl/dist/encoding-warnings/t/3-normal.t	21 Feb 2024 15:47:02 -0000
@@ -1,14 +1,14 @@
 BEGIN {
     if ("$]" >= 5.025) {
-      print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
-      exit 0;
+        print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
+        exit 0;
     }
 }
 
-use Test;
-BEGIN { plan tests => 2 }
+use Test::More tests => 2;
 
 use strict;
+use warnings;
 use encoding::warnings 'FATAL';
 ok(encoding::warnings->VERSION);
 
Index: gnu/usr.bin/perl/dist/encoding-warnings/t/4-lexical.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/encoding-warnings/t/4-lexical.t,v
diff -u -p -a -u -p -r1.2 4-lexical.t
--- gnu/usr.bin/perl/dist/encoding-warnings/t/4-lexical.t	13 Feb 2019 21:15:22 -0000	1.2
+++ gnu/usr.bin/perl/dist/encoding-warnings/t/4-lexical.t	21 Feb 2024 15:47:02 -0000
@@ -1,22 +1,23 @@
 use strict;
-use Test;
+use warnings;
 BEGIN {
     if ("$]" >= 5.025) {
-      print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
-      exit 0;
+        print "1..0 # Skip: encoding::warnings not supported on perl 5.26\n";
+        exit 0;
     }
     if (ord("A") != 65) {
-      print "1..0 # Skip: Encode not working on EBCDIC\n";
-      exit 0;
+        print "1..0 # Skip: Encode not working on EBCDIC\n";
+        exit 0;
     }
     use Config;
     if ($Config::Config{'extensions'} !~ /\bEncode\b/) {
-      print "1..0 # Skip: Encode was not built\n";
-      exit 0;
+        print "1..0 # Skip: Encode was not built\n";
+        exit 0;
     }
 
-    plan tests => 3;
 }
+
+use Test::More tests => 3;
 
 {
     use encoding::warnings;
Index: gnu/usr.bin/perl/dist/if/Makefile.PL
===================================================================
RCS file: gnu/usr.bin/perl/dist/if/Makefile.PL
diff -N gnu/usr.bin/perl/dist/if/Makefile.PL
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/if/Makefile.PL	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,27 @@
+use ExtUtils::MakeMaker;
+WriteMakefile(
+    NAME            => 'if',
+    VERSION_FROM    => 'if.pm', # finds $VERSION
+    ABSTRACT_FROM   => 'if.pm',
+    # core since 5.7.3
+    (($] >= 5.007003 && $] < 5.011 ) ? (
+        'INSTALLDIRS'  => 'perl') : ()
+    ),
+    AUTHOR  => 'Ilya Zakharevich <ilyaz@cpan.org>',
+    LICENSE => 'perl_5',
+
+    META_MERGE => {
+        'meta-spec' => { version => 2 },
+        dynamic_config => 0,
+        resources => {
+            repository => {
+                type => 'git',
+                url => 'https://github.com/perl/perl5.git',
+                web => 'https://github.com/perl/perl5',
+            },
+            bugtracker => {
+                web => 'https://github.com/Perl/perl5/issues',
+            },
+        },
+    },
+);
Index: gnu/usr.bin/perl/dist/threads/threads.h
===================================================================
RCS file: gnu/usr.bin/perl/dist/threads/threads.h
diff -N gnu/usr.bin/perl/dist/threads/threads.h
Index: gnu/usr.bin/perl/dist/threads/threads.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/threads/threads.xs,v
diff -u -p -a -u -p -r1.5 threads.xs
--- gnu/usr.bin/perl/dist/threads/threads.xs	15 Feb 2023 01:36:29 -0000	1.5
+++ gnu/usr.bin/perl/dist/threads/threads.xs	21 Feb 2024 15:47:01 -0000
@@ -15,18 +15,20 @@
 #    define setjmp(x) _setjmp(x)
 #  endif
 #  if defined(__MINGW64__)
+#    include <intrin.h>
 #    define setjmp(x) _setjmpex((x), mingw_getsp())
 #  endif
 #endif
-#ifdef HAS_PPPORT_H
-#  define NEED_PL_signals
-#  define NEED_sv_2pv_flags
-#  include "ppport.h"
-#  include "threads.h"
-#endif
+#define NEED_PL_signals
+#define NEED_sv_2pv_flags
+#include "ppport.h"
+#include "threads.h"
 #ifndef sv_dup_inc
 #  define sv_dup_inc(s,t) SvREFCNT_inc(sv_dup(s,t))
 #endif
+#ifndef SvREFCNT_dec_NN
+#  define SvREFCNT_dec_NN(x)  SvREFCNT_dec(x)
+#endif
 #ifndef PERL_UNUSED_RESULT
 #  if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT)
 #    define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END
@@ -91,8 +93,8 @@ typedef perl_os_thread pthread_t;
 typedef struct _ithread {
     struct _ithread *next;      /* Next thread in the list */
     struct _ithread *prev;      /* Prev thread in the list */
-    PerlInterpreter *interp;    /* The threads interpreter */
-    UV tid;                     /* Threads module's thread id */
+    PerlInterpreter *interp;    /* The thread's interpreter */
+    UV tid;                     /* Thread's module's thread id */
     perl_mutex mutex;           /* Mutex for updating things in this struct */
     int count;                  /* Reference count. See S_ithread_create. */
     int state;                  /* Detached, joined, finished, etc. */
@@ -203,6 +205,9 @@ S_ithread_set(pTHX_ ithread *thread)
 {
     dMY_CXT;
     MY_CXT.context = thread;
+#ifdef PERL_SET_NON_tTHX_CONTEXT
+    PERL_SET_NON_tTHX_CONTEXT(thread->interp);
+#endif
 }
 
 STATIC ithread *
@@ -241,18 +246,31 @@ S_ithread_clear(pTHX_ ithread *thread)
     S_block_most_signals(&origmask);
 #endif
 
+#if PERL_VERSION_GE(5, 37, 5)
+    int save_veto = PL_veto_switch_non_tTHX_context;
+#endif
+
     interp = thread->interp;
     if (interp) {
         dTHXa(interp);
 
+        /* We will pretend to be a thread that we are not by switching tTHX,
+         * which doesn't work with things that don't rely on tTHX during
+         * tear-down, as they will tend to rely on a mapping from the tTHX
+         * structure, and that structure is being destroyed. */
+#if PERL_VERSION_GE(5, 37, 5)
+        PL_veto_switch_non_tTHX_context = true;
+#endif
+
         PERL_SET_CONTEXT(interp);
+
         S_ithread_set(aTHX_ thread);
 
         SvREFCNT_dec(thread->params);
         thread->params = NULL;
 
         if (thread->err) {
-            SvREFCNT_dec(thread->err);
+            SvREFCNT_dec_NN(thread->err);
             thread->err = Nullsv;
         }
 
@@ -262,6 +280,10 @@ S_ithread_clear(pTHX_ ithread *thread)
     }
 
     PERL_SET_CONTEXT(aTHX);
+#if PERL_VERSION_GE(5, 37, 5)
+    PL_veto_switch_non_tTHX_context = save_veto;
+#endif
+
 #ifdef THREAD_SIGNAL_BLOCKING
     S_set_sigmask(&origmask);
 #endif
@@ -807,6 +829,7 @@ S_ithread_create(
     thread->gimme = gimme;
     thread->state = exit_opt;
 
+
     /* "Clone" our interpreter into the thread's interpreter.
      * This gives thread access to "static data" and code.
      */
@@ -1034,10 +1057,10 @@ S_ithread_create(
     MUTEX_UNLOCK(&my_pool->create_destruct_mutex);
     return (thread);
 
-    CLANG_DIAG_IGNORE_STMT(-Wthread-safety);
+    CLANG_DIAG_IGNORE(-Wthread-safety)
     /* warning: mutex 'thread->mutex' is not held on every path through here [-Wthread-safety-analysis] */
 }
-CLANG_DIAG_RESTORE_DECL;
+CLANG_DIAG_RESTORE
 
 #endif /* USE_ITHREADS */
 
@@ -1171,6 +1194,7 @@ ithread_create(...)
         if (! thread) {
             XSRETURN_UNDEF;     /* Mutex already unlocked */
         }
+        PERL_SRAND_OVERRIDE_NEXT_PARENT();
         ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, FALSE));
 
         /* Let thread run. */
@@ -1179,7 +1203,6 @@ ithread_create(...)
         /* warning: releasing mutex 'thread->mutex' that was not held [-Wthread-safety-analysis] */
         MUTEX_UNLOCK(&thread->mutex);
         CLANG_DIAG_RESTORE_STMT;
-
         /* XSRETURN(1); - implied */
 
 
Index: gnu/usr.bin/perl/dist/threads/lib/threads.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/threads/lib/threads.pm,v
diff -u -p -a -u -p -r1.5 threads.pm
--- gnu/usr.bin/perl/dist/threads/lib/threads.pm	15 Feb 2023 01:36:29 -0000	1.5
+++ gnu/usr.bin/perl/dist/threads/lib/threads.pm	21 Feb 2024 15:47:01 -0000
@@ -5,7 +5,7 @@ use 5.008;
 use strict;
 use warnings;
 
-our $VERSION = '2.27';      # remember to update version in POD!
+our $VERSION = '2.36';      # remember to update version in POD!
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
 
 =head1 VERSION
 
-This document describes threads version 2.27
+This document describes threads version 2.36
 
 =head1 WARNING
 
@@ -1026,7 +1026,7 @@ signalling behavior is only in effect in
 
 =over 4
 
-=item * Perl has been built with C<PERL_OLD_SIGNALS> (see C<perl -V>).
+=item * Perl has been built with C<PERL_OLD_SIGNALS> (see S<C<perl -V>>).
 
 =item * The environment variable C<PERL_SIGNALS> is set to C<unsafe>
 (see L<perlrun/"PERL_SIGNALS">).
Index: gnu/usr.bin/perl/dist/threads/t/libc.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/threads/t/libc.t,v
diff -u -p -a -u -p -r1.1.1.2 libc.t
--- gnu/usr.bin/perl/dist/threads/t/libc.t	15 Feb 2023 01:32:56 -0000	1.1.1.2
+++ gnu/usr.bin/perl/dist/threads/t/libc.t	21 Feb 2024 15:47:01 -0000
@@ -9,11 +9,8 @@ BEGIN {
         skip_all(q/Perl not compiled with 'useithreads'/);
     }
 
-    my $time_out_factor = $ENV{PERL_TEST_TIME_OUT_FACTOR} || 1;
-    $time_out_factor = 1 if $time_out_factor < 1;
-
     # Guard against bugs that result in deadlock
-    watchdog(1 * 60 * $time_out_factor);
+    watchdog(1 * 60);
 
     plan(11);
 }
Index: gnu/usr.bin/perl/dist/threads/t/thread.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/threads/t/thread.t,v
diff -u -p -a -u -p -r1.3 thread.t
--- gnu/usr.bin/perl/dist/threads/t/thread.t	13 Feb 2019 21:15:22 -0000	1.3
+++ gnu/usr.bin/perl/dist/threads/t/thread.t	21 Feb 2024 15:47:01 -0000
@@ -11,6 +11,7 @@ BEGIN {
 }
 
 use ExtUtils::testlib;
+use Data::Dumper;
 
 use threads;
 
@@ -156,7 +157,8 @@ package main;
     rand(10);
     threads->create( sub { $rand{int(rand(10000000000))}++ } ) foreach 1..25;
     $_->join foreach threads->list;
-    ok((keys %rand >= 23), "Check that rand() is randomized in new threads");
+    ok((keys %rand >= 23), "Check that rand() is randomized in new threads")
+        or diag Dumper(\%rand);
 }
 
 # bugid #24165
Index: gnu/usr.bin/perl/dist/threads/t/version.t
===================================================================
RCS file: gnu/usr.bin/perl/dist/threads/t/version.t
diff -N gnu/usr.bin/perl/dist/threads/t/version.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/dist/threads/t/version.t	21 Feb 2024 15:47:01 -0000
@@ -0,0 +1,31 @@
+use strict;
+use warnings;
+use Test::More;
+
+BEGIN {
+    use Config;
+    if (! $Config{'useithreads'}) {
+        print("1..0 # SKIP Perl not compiled with 'useithreads'\n");
+        exit(0);
+    }
+}
+
+use threads;
+
+# test that the version documented in threads.pm pod matches
+# that of the code.
+
+open my $fh, "<", $INC{"threads.pm"}
+    or die qq(Failed to open '$INC{"threads.pm"}': $!);
+my $file= do { local $/; <$fh> };
+close $fh;
+my $pod_version = 0; 
+if ($file=~/This document describes threads version (\d.\d+)/) {
+    $pod_version = $1;
+}
+is($pod_version, $threads::VERSION, 
+   "Check that pod and \$threads::VERSION match");
+done_testing();
+
+
+    
Index: gnu/usr.bin/perl/dist/threads-shared/shared.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/threads-shared/shared.xs,v
diff -u -p -a -u -p -r1.6 shared.xs
--- gnu/usr.bin/perl/dist/threads-shared/shared.xs	15 Feb 2023 01:36:29 -0000	1.6
+++ gnu/usr.bin/perl/dist/threads-shared/shared.xs	21 Feb 2024 15:47:02 -0000
@@ -40,7 +40,7 @@
  * proxy PVLV element with attached element magic.
  *
  * Pointers to the shared SV are squirrelled away in the mg->mg_ptr field
- * of magic (with mg_len == 0), and in the IV2PTR(SvIV(sv)) field of tied
+ * of magic (with mg_len == 0), and in the INT2PTR(SvIV(sv)) field of tied
  * object SVs. These pointers have to be hidden like this because they
  * cross interpreter boundaries, and we don't want sv_clear() and friends
  * following them.
@@ -130,14 +130,11 @@
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
-#ifdef HAS_PPPORT_H
-#  define NEED_sv_2pv_flags
-#  define NEED_vnewSVpvf
-#  define NEED_warner
-#  define NEED_newSVpvn_flags
-#  include "ppport.h"
-#  include "shared.h"
-#endif
+#define NEED_sv_2pv_flags
+#define NEED_vnewSVpvf
+#define NEED_warner
+#define NEED_newSVpvn_flags
+#include "ppport.h"
 
 #ifndef CLANG_DIAG_IGNORE
 # define CLANG_DIAG_IGNORE(x)
@@ -704,10 +701,10 @@ Perl_sharedsv_cond_timedwait(perl_cond *
     abs -= (NV)ts.tv_sec;
     ts.tv_nsec = (long)(abs * 1000000000.0);
 
-    CLANG_DIAG_IGNORE_STMT(-Wthread-safety);
+    CLANG_DIAG_IGNORE(-Wthread-safety)
     /* warning: calling function 'pthread_cond_timedwait' requires holding mutex 'mut' exclusively [-Wthread-safety-analysis] */
     switch (pthread_cond_timedwait(cond, mut, &ts)) {
-	CLANG_DIAG_RESTORE_STMT;
+	CLANG_DIAG_RESTORE
 
         case 0:         got_it = 1; break;
         case ETIMEDOUT:             break;
@@ -1145,7 +1142,7 @@ sharedsv_array_mg_CLEAR(pTHX_ SV *sv, MA
             I32 items = isav ? AvFILLp((AV *)ssv) + 1 : 0;
             HE *iter;
             if (!isav) hv_iterinit((HV *)ssv);
-            while (isav ? items-- : !!(iter = hv_iternext((HV *)ssv))) {
+            while (isav ? items-- : cBOOL(iter = hv_iternext((HV *)ssv))) {
                 SV *sv = isav ? *svp++ : HeVAL(iter);
                 if (!sv) continue;
                 if ( (SvOBJECT(sv) || (SvROK(sv) && (sv = SvRV(sv))))
Index: gnu/usr.bin/perl/dist/threads-shared/lib/threads/shared.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/dist/threads-shared/lib/threads/shared.pm,v
diff -u -p -a -u -p -r1.6 shared.pm
--- gnu/usr.bin/perl/dist/threads-shared/lib/threads/shared.pm	15 Feb 2023 01:36:29 -0000	1.6
+++ gnu/usr.bin/perl/dist/threads-shared/lib/threads/shared.pm	21 Feb 2024 15:47:02 -0000
@@ -8,7 +8,7 @@ use Config;
 
 use Scalar::Util qw(reftype refaddr blessed);
 
-our $VERSION = '1.64'; # Please update the pod, too.
+our $VERSION = '1.68'; # Please update the pod, too.
 my $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
@@ -196,7 +196,7 @@ threads::shared - Perl extension for sha
 
 =head1 VERSION
 
-This document describes threads::shared version 1.64
+This document describes threads::shared version 1.68
 
 =head1 SYNOPSIS
 
Index: gnu/usr.bin/perl/ext/B/B.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/B.pm,v
diff -u -p -a -u -p -r1.6 B.pm
--- gnu/usr.bin/perl/ext/B/B.pm	15 Feb 2023 01:36:30 -0000	1.6
+++ gnu/usr.bin/perl/ext/B/B.pm	21 Feb 2024 15:47:02 -0000
@@ -20,7 +20,7 @@ sub import {
 # walkoptree comes from B.xs
 
 BEGIN {
-    $B::VERSION = '1.83';
+    $B::VERSION = '1.88';
     @B::EXPORT_OK = ();
 
     # Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
@@ -62,6 +62,7 @@ push @B::EXPORT_OK, (qw(minus_c ppname s
 @B::CV::ISA = 'B::PVMG';
 @B::IO::ISA = 'B::PVMG';
 @B::FM::ISA = 'B::CV';
+@B::OBJ::ISA = 'B::PVMG';
 
 @B::OP::ISA = 'B::OBJECT';
 @B::UNOP::ISA = 'B::OP';
@@ -88,6 +89,12 @@ our @specialsv_name = qw(Nullsv &PL_sv_u
 			(SV*)pWARN_ALL (SV*)pWARN_NONE (SV*)pWARN_STD
                         &PL_sv_zero);
 
+# Back-compat
+{
+    no warnings 'once';
+    *CVf_METHOD = \&CVf_NOWARN_AMBIGUOUS;
+}
+
 {
     # Stop "-w" from complaining about the lack of a real B::OBJECT class
     package B::OBJECT;
@@ -299,7 +306,7 @@ B - The Perl Compiler Backend
 The C<B> module supplies classes which allow a Perl program to delve
 into its own innards.  It is the module used to implement the
 "backends" of the Perl compiler.  Usage of the compiler does not
-require knowledge of this module: see the F<O> module for the
+require knowledge of this module: see the L<O> module for the
 user-visible part.  The C<B> module is of use to those who want to
 write new compiler backends.  This documentation assumes that the
 reader knows a fair amount about perl's internals including such
@@ -593,6 +600,26 @@ C<REFCNT> (corresponding to the C functi
 
 =item FLAGS
 
+=item IsBOOL
+
+Returns true if the SV is a boolean (true or false).
+You can then use C<TRUE> to check if the value is true or false.
+
+    my $something = ( 1 == 1 ) # boolean true
+                 || ( 1 == 0 ) # boolean false
+                 || 42         # IV true
+                 || 0;         # IV false
+    my $sv = B::svref_2object(\$something);
+
+    say q[Not a boolean value]
+        if ! $sv->IsBOOL;
+
+    say q[This is a boolean with value: true]
+        if   $sv->IsBOOL && $sv->TRUE_nomg;
+
+    say q[This is a boolean with value: false]
+        if   $sv->IsBOOL && ! $sv->TRUE_nomg;
+
 =item object_2svref
 
 Returns a reference to the regular scalar corresponding to this
@@ -601,6 +628,24 @@ to the svref_2object() subroutine.  This
 at should be considered read-only: modifying them is neither safe nor
 guaranteed to have a sensible effect.
 
+=item TRUE
+
+Returns a boolean indicating hether Perl would evaluate the SV as true or
+false.
+
+B<Warning> this call performs 'get' magic. If you only want to check the
+nature of this SV use C<TRUE_nomg> helper.
+
+This is an alias for C<SvTRUE($sv)>.
+
+=item TRUE_nomg
+
+Check if the value is true (do not perform 'get' magic).
+Returns a boolean indicating whether Perl would evaluate the SV as true or
+false.
+
+This is an alias for C<SvTRUE_nomg($sv)>.
+
 =back
 
 =head2 B::IV Methods
@@ -1313,6 +1358,8 @@ pointers and B::PADNAME objects otherwis
 
 =item REFCNT
 
+=item GEN
+
 =item FLAGS
 
 For backward-compatibility, if the PADNAMEt_OUTER flag is set, the FLAGS
@@ -1348,6 +1395,10 @@ Only meaningful if PADNAMEt_OUTER is set
 =item PARENT_FAKELEX_FLAGS
 
 Only meaningful if PADNAMEt_OUTER is set.
+
+=item IsUndef
+
+Returns a boolean value to check if the padname is PL_padname_undef.
 
 =back
 
Index: gnu/usr.bin/perl/ext/B/B.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/B.xs,v
diff -u -p -a -u -p -r1.6 B.xs
--- gnu/usr.bin/perl/ext/B/B.xs	15 Feb 2023 01:36:30 -0000	1.6
+++ gnu/usr.bin/perl/ext/B/B.xs	21 Feb 2024 15:47:02 -0000
@@ -40,6 +40,7 @@ static const char* const svclassnames[] 
     "B::CV",
     "B::FM",
     "B::IO",
+    "B::OBJ",
 };
 
 
@@ -188,7 +189,7 @@ make_temp_object(pTHX_ SV *temp)
 static SV *
 make_warnings_object(pTHX_ const COP *const cop)
 {
-    const STRLEN *const warnings = cop->cop_warnings;
+    const char *const warnings = cop->cop_warnings;
     const char *type = 0;
     dMY_CXT;
     IV iv = sizeof(specialsv_list)/sizeof(SV*);
@@ -210,7 +211,7 @@ make_warnings_object(pTHX_ const COP *co
     } else {
 	/* B assumes that warnings are a regular SV. Seems easier to keep it
 	   happy by making them into a regular SV.  */
-	return make_temp_object(aTHX_ newSVpvn((char *)(warnings + 1), *warnings));
+        return make_temp_object(aTHX_ newSVpvn(warnings, RCPV_LEN(warnings)));
     }
 }
 
@@ -547,7 +548,7 @@ static const struct OP_methods {
 #ifdef USE_ITHREADS
   { STR_WITH_LEN("pmoffset"),IVp,     STRUCT_OFFSET(struct pmop, op_pmoffset),},/*20*/
   { STR_WITH_LEN("filegv"),  op_offset_special, 0,                     },/*21*/
-  { STR_WITH_LEN("file"),    char_pp, STRUCT_OFFSET(struct cop, cop_file),  },/*22*/
+  { STR_WITH_LEN("file"),    char_pp, STRUCT_OFFSET(struct cop, cop_file),  }, /*22*/
   { STR_WITH_LEN("stash"),   op_offset_special, 0,                     },/*23*/
   { STR_WITH_LEN("stashpv"), op_offset_special, 0,                     },/*24*/
   { STR_WITH_LEN("stashoff"),PADOFFSETp,STRUCT_OFFSET(struct cop,cop_stashoff),},/*25*/
@@ -703,8 +704,8 @@ walkoptree_debug(...)
     CODE:
 	dMY_CXT;
 	RETVAL = walkoptree_debug;
-	if (items > 0 && SvTRUE(ST(1)))
-	    walkoptree_debug = 1;
+	if (items > 0)
+	    walkoptree_debug = SvTRUE(ST(0));
     OUTPUT:
 	RETVAL
 
@@ -902,11 +903,9 @@ next(o)
 		ret = make_sv_object(aTHX_ (SV *)CopFILEGV((COP*)o));
 		break;
 #endif
-#ifndef USE_ITHREADS
 	    case 22: /* B::COP::file */
 		ret = sv_2mortal(newSVpv(CopFILE((COP*)o), 0));
 		break;
-#endif
 #ifdef USE_ITHREADS
 	    case 23: /* B::COP::stash */
 		ret = make_sv_object(aTHX_ (SV *)CopSTASH((COP*)o));
@@ -1072,13 +1071,13 @@ next(o)
                  */
 		ret = make_op_object(aTHX_
                             o->op_type == OP_METHOD
-                                ? cMETHOPx(o)->op_u.op_first : NULL);
+                                ? cMETHOPo->op_u.op_first : NULL);
 		break;
 	    case 54: /* B::METHOP::meth_sv */
                 /* see comment above about METHOP */
 		ret = make_sv_object(aTHX_
                             o->op_type == OP_METHOD
-                                ? NULL : cMETHOPx(o)->op_u.op_meth_sv);
+                                ? NULL : cMETHOPo->op_u.op_meth_sv);
 		break;
 	    case 55: /* B::PMOP::pmregexp */
 		ret = make_sv_object(aTHX_ (SV *)PM_GETRE(cPMOPo));
@@ -1088,13 +1087,13 @@ next(o)
 		ret = sv_2mortal(newSVuv(
 		    (o->op_type == OP_METHOD_REDIR ||
 		     o->op_type == OP_METHOD_REDIR_SUPER) ?
-		      cMETHOPx(o)->op_rclass_targ : 0
+		      cMETHOPo->op_rclass_targ : 0
 		));
 #else
 		ret = make_sv_object(aTHX_
 		    (o->op_type == OP_METHOD_REDIR ||
 		     o->op_type == OP_METHOD_REDIR_SUPER) ?
-		      cMETHOPx(o)->op_rclass_sv : NULL
+		      cMETHOPo->op_rclass_sv : NULL
 		);
 #endif
 		break;
@@ -1398,12 +1397,12 @@ aux_list(o, cv)
 
 
 
-MODULE = B	PACKAGE = B::SV
+MODULE = B	PACKAGE = B::SV         PREFIX = Sv
 
 #define MAGICAL_FLAG_BITS (SVs_GMG|SVs_SMG|SVs_RMG)
 
 U32
-REFCNT(sv)
+SvREFCNT(sv)
 	B::SV	sv
     ALIAS:
 	FLAGS = 0xFFFFFFFF
@@ -1417,11 +1416,23 @@ REFCNT(sv)
 	RETVAL
 
 void
-object_2svref(sv)
+Svobject_2svref(sv)
 	B::SV	sv
     PPCODE:
 	ST(0) = sv_2mortal(newRV(sv));
 	XSRETURN(1);
+
+bool
+SvIsBOOL(sv)
+    B::SV   sv
+
+bool
+SvTRUE(sv)
+    B::SV   sv
+
+bool
+SvTRUE_nomg(sv)
+    B::SV   sv
 	
 MODULE = B	PACKAGE = B::IV		PREFIX = Sv
 
@@ -2252,6 +2263,8 @@ MODULE = B	PACKAGE = B::PADNAME	PREFIX =
 	sv_U32p | STRUCT_OFFSET(struct padname, xpadn_low)
 #define PN_cop_seq_range_high_ix \
 	sv_U32p | STRUCT_OFFSET(struct padname, xpadn_high)
+#define PN_xpadn_gen_ix \
+	sv_I32p | STRUCT_OFFSET(struct padname, xpadn_gen)
 #define PNL_refcnt_ix \
 	sv_U32p | STRUCT_OFFSET(struct padnamelist, xpadnl_refcnt)
 #define PL_id_ix \
@@ -2259,7 +2272,6 @@ MODULE = B	PACKAGE = B::PADNAME	PREFIX =
 #define PL_outid_ix \
 	sv_U32p | STRUCT_OFFSET(struct padlist, xpadl_outid)
 
-
 void
 PadnameTYPE(pn)
 	B::PADNAME	pn
@@ -2270,6 +2282,7 @@ PadnameTYPE(pn)
 	B::PADNAME::REFCNT	= PN_refcnt_ix
 	B::PADNAME::COP_SEQ_RANGE_LOW	 = PN_cop_seq_range_low_ix
 	B::PADNAME::COP_SEQ_RANGE_HIGH	 = PN_cop_seq_range_high_ix
+	B::PADNAME::GEN		= PN_xpadn_gen_ix
 	B::PADNAMELIST::REFCNT	= PNL_refcnt_ix
 	B::PADLIST::id		= PL_id_ix
 	B::PADLIST::outid	= PL_outid_ix
@@ -2305,6 +2318,14 @@ PadnamePV(pn)
 	SvUTF8_on(TARG);
 	XPUSHTARG;
 
+bool
+PadnameIsUndef(padn)
+       B::PADNAME      padn
+    CODE:
+        RETVAL = padn == &PL_padname_undef;
+    OUTPUT:
+       RETVAL
+
 BOOT:
 {
     /* Uses less memory than an ALIAS.  */
@@ -2329,7 +2350,7 @@ PadnameFLAGS(pn)
 	RETVAL = PadnameFLAGS(pn);
 	/* backward-compatibility hack, which should be removed if the
 	   flags field becomes large enough to hold SVf_FAKE (and
-	   PADNAMEt_OUTER should be renumbered to match SVf_FAKE) */
+	   PADNAMEf_OUTER should be renumbered to match SVf_FAKE) */
 	STATIC_ASSERT_STMT(SVf_FAKE >= 1<<(sizeof(PadnameFLAGS((B__PADNAME)NULL)) * 8));
 	if (PadnameOUTER(pn))
 	    RETVAL |= SVf_FAKE;
Index: gnu/usr.bin/perl/ext/B/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/Makefile.PL,v
diff -u -p -a -u -p -r1.3 Makefile.PL
--- gnu/usr.bin/perl/ext/B/Makefile.PL	15 Feb 2023 01:36:30 -0000	1.3
+++ gnu/usr.bin/perl/ext/B/Makefile.PL	21 Feb 2024 15:47:02 -0000
@@ -30,7 +30,7 @@ foreach my $tuple (['cop.h'],
                    ['op.h'],
                    ['opcode.h', 'OPp'],
                    ['op_reg_common.h','(?:(?:RXf_)?PMf_)'],
-                   ['pad.h','PADNAMEt_'],
+                   ['pad.h','PADNAMEf_'],
                    ['regexp.h','RXf_'],
                    ['sv.h', 'SV(?:[fps]|pad)_'],
                   ) {
Index: gnu/usr.bin/perl/ext/B/B/Concise.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/B/Concise.pm,v
diff -u -p -a -u -p -r1.16 Concise.pm
--- gnu/usr.bin/perl/ext/B/B/Concise.pm	15 Feb 2023 01:36:30 -0000	1.16
+++ gnu/usr.bin/perl/ext/B/B/Concise.pm	21 Feb 2024 15:47:02 -0000
@@ -14,7 +14,7 @@ use warnings; # uses #3 and #4, since wa
 
 use Exporter 'import'; # use #5
 
-our $VERSION   = "1.006";
+our $VERSION   = "1.007";
 our @EXPORT_OK = qw( set_style set_style_standard add_callback
 		     concise_subref concise_cv concise_main
 		     add_style walk_output compile reset_sequence );
@@ -1488,6 +1488,11 @@ Private flags, if any are set for an opc
 They're opcode specific, and occur less often than the public ones, so
 they're represented by short mnemonics instead of single-chars; see
 B::Op_private and F<regen/op_private> for more details.
+
+Note that a number after a '/' often indicates the number of arguments.
+In the I<sassign> example above, the OP takes 2 arguments. These values
+are sometimes used at runtime: in particular, the MAXARG macro makes use
+of them.
 
 =head1 FORMATTING SPECIFICATIONS
 
Index: gnu/usr.bin/perl/ext/B/t/b.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/t/b.t,v
diff -u -p -a -u -p -r1.5 b.t
--- gnu/usr.bin/perl/ext/B/t/b.t	1 Mar 2021 23:19:55 -0000	1.5
+++ gnu/usr.bin/perl/ext/B/t/b.t	21 Feb 2024 15:47:02 -0000
@@ -306,7 +306,7 @@ is(B::opnumber("pp_null"), 0, "Testing o
 
 is(B::class(bless {}, "Wibble::Bibble"), "Bibble", "Testing B::class()");
 is(B::cast_I32(3.14), 3, "Testing B::cast_I32()");
-is(B::opnumber("chop"), 38, "Testing opnumber with opname (chop)");
+is(B::opnumber("chop"), 39, "Testing opnumber with opname (chop)");
 
 {
     no warnings 'once';
Index: gnu/usr.bin/perl/ext/B/t/bool.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/B/t/bool.t
diff -N gnu/usr.bin/perl/ext/B/t/bool.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/B/t/bool.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,59 @@
+#!./perl
+
+BEGIN {
+    unshift @INC, 't';
+    require Config;
+    if (($Config::Config{'extensions'} !~ /\bB\b/) ){
+        print "1..0 # Skip -- Perl configured without B module\n";
+        exit 0;
+    }
+}
+
+use strict;
+use warnings;
+
+use B;
+use Test::More;
+
+$|  = 1;
+
+{
+    note "testing true";
+    my $bool = ( 1 == 1 );
+    my $sv = B::svref_2object(\$bool);
+    ok $sv->IsBOOL, "got a boolean";
+    ok $sv->TRUE_nomg, "TRUE_nomg is true";
+    ok $sv->TRUE, "TRUE is true";
+}
+
+{
+    note "testing false";
+    my $bool = ( 1 == 0 );
+    my $sv = B::svref_2object(\$bool);
+
+    ok $sv->IsBOOL, "got a boolean";
+    ok !$sv->TRUE_nomg, "TRUE_nomg is false";
+    ok !$sv->TRUE, "TRUE is false";
+}
+
+{
+    note "not a boolean";
+    my $iv = 42;
+    my $sv = B::svref_2object(\$iv);
+
+    ok !$sv->IsBOOL, "not a boolean";
+    ok $sv->TRUE_nomg, "TRUE_nomg is true";
+    ok $sv->TRUE, "TRUE is true";
+}
+
+{
+    note "not a boolean";
+    my $iv = 0;
+    my $sv = B::svref_2object(\$iv);
+
+    ok !$sv->IsBOOL, "not a boolean";
+    ok !$sv->TRUE_nomg, "TRUE_nomg is false";
+    ok !$sv->TRUE, "TRUE is false";
+}
+
+done_testing();
Index: gnu/usr.bin/perl/ext/B/t/optree_concise.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/t/optree_concise.t,v
diff -u -p -a -u -p -r1.5 optree_concise.t
--- gnu/usr.bin/perl/ext/B/t/optree_concise.t	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/B/t/optree_concise.t	21 Feb 2024 15:47:02 -0000
@@ -178,13 +178,13 @@ checkOptree ( name	=> "terse basic",
 UNOP (0x82b0918) leavesub [1] 
     LISTOP (0x82b08d8) lineseq 
         COP (0x82b0880) nextstate 
-        UNOP (0x82b0860) null [14] 
+        UNOP (0x82b0860) null [15] 
             PADOP (0x82b0840) gvsv  GV (0x82a818c) *a 
 EOT_EOT
 # UNOP (0x8282310) leavesub [1] 
 #     LISTOP (0x82822f0) lineseq 
 #         COP (0x82822b8) nextstate 
-#         UNOP (0x812fc20) null [14] 
+#         UNOP (0x812fc20) null [15] 
 #             SVOP (0x812fc00) gvsv  GV (0x814692c) *a 
 EONT_EONT
 
Index: gnu/usr.bin/perl/ext/B/t/optree_samples.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/t/optree_samples.t,v
diff -u -p -a -u -p -r1.5 optree_samples.t
--- gnu/usr.bin/perl/ext/B/t/optree_samples.t	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/B/t/optree_samples.t	21 Feb 2024 15:47:02 -0000
@@ -67,49 +67,49 @@ checkOptree ( name	=> '-basic (see above
 			     },
 	      strip_open_hints => 1,
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
-# b  <1> leavesub[1 ref] K/REFC,1 ->(end)
-# -     <@> lineseq KP ->b
+# a  <1> leavesub[1 ref] K/REFC,1 ->(end)
+# -     <@> lineseq KP ->a
 # 1        <;> nextstate(main 666 optree_samples.t:70) v:>,<,% ->2
-# 4        <2> sassign vKS/2 ->5
+# 3        <1> padsv_store[$a:666,670] vKS/LVINTRO ->4
 # 2           <0> shift s* ->3
-# 3           <0> padsv[$a:666,670] sRM*/LVINTRO ->4
-# 5        <;> nextstate(main 670 optree_samples.t:71) v:>,<,% ->6
+# -           <0> ex-padsv sRM*/LVINTRO ->3
+# 4        <;> nextstate(main 670 optree_samples.t:71) v:>,<,% ->5
 # -        <1> null K/1 ->-
-# 7           <|> cond_expr(other->8) K/1 ->c
-# 6              <0> padsv[$a:666,670] s ->7
+# 6           <|> cond_expr(other->7) K/1 ->b
+# 5              <0> padsv[$a:666,670] s ->6
 # -              <@> scope K ->-
-# -                 <;> ex-nextstate(main 1603 optree_samples.t:70) v:>,<,% ->8
-# a                 <@> print sK ->b
-# 8                    <0> pushmark s ->9
-# 9                    <$> const[PV "foo"] s ->a
-# h              <@> leave KP ->b
-# c                 <0> enter ->d
-# d                 <;> nextstate(main 668 optree_samples.t:72) v:>,<,% ->e
-# g                 <@> print sK ->h
-# e                    <0> pushmark s ->f
-# f                    <$> const[PV "bar"] s ->g
+# -                 <;> ex-nextstate(main 1510 optree_samples.t:66) v:>,<,% ->7
+# 9                 <@> print sK ->a
+# 7                    <0> pushmark s ->8
+# 8                    <$> const[PV "foo"] s ->9
+# g              <@> leave KP ->a
+# b                 <0> enter ->c
+# c                 <;> nextstate(main 1510 optree_samples.t:66) v:>,<,% ->d
+# f                 <@> print sK ->g
+# d                    <0> pushmark s ->e
+# e                    <$> const[PV "bar"] s ->f
 EOT_EOT
-# b  <1> leavesub[1 ref] K/REFC,1 ->(end)
-# -     <@> lineseq KP ->b
-# 1        <;> nextstate(main 666 optree_samples.t:72) v:>,<,% ->2
-# 4        <2> sassign vKS/2 ->5
+# a  <1> leavesub[1 ref] K/REFC,1 ->(end)
+# -     <@> lineseq KP ->a
+# 1        <;> nextstate(main 666 optree_samples.t:70) v:>,<,% ->2
+# 3        <1> padsv_store[$a:666,670] vKS/LVINTRO ->4
 # 2           <0> shift s* ->3
-# 3           <0> padsv[$a:666,670] sRM*/LVINTRO ->4
-# 5        <;> nextstate(main 670 optree_samples.t:73) v:>,<,% ->6
+# -           <0> ex-padsv sRM*/LVINTRO ->3
+# 4        <;> nextstate(main 670 optree_samples.t:71) v:>,<,% ->5
 # -        <1> null K/1 ->-
-# 7           <|> cond_expr(other->8) K/1 ->c
-# 6              <0> padsv[$a:666,670] s ->7
+# 6           <|> cond_expr(other->7) K/1 ->b
+# 5              <0> padsv[$a:666,670] s ->6
 # -              <@> scope K ->-
-# -                 <;> ex-nextstate(main 1603 optree_samples.t:70) v:>,<,% ->8
-# a                 <@> print sK ->b
-# 8                    <0> pushmark s ->9
-# 9                    <$> const(PV "foo") s ->a
-# h              <@> leave KP ->b
-# c                 <0> enter ->d
-# d                 <;> nextstate(main 668 optree_samples.t:74) v:>,<,% ->e
-# g                 <@> print sK ->h
-# e                    <0> pushmark s ->f
-# f                    <$> const(PV "bar") s ->g
+# -                 <;> ex-nextstate(main 1510 optree_samples.t:70) v:>,<,% ->7
+# 9                 <@> print sK ->a
+# 7                    <0> pushmark s ->8
+# 8                    <$> const(PV "foo") s ->9
+# g              <@> leave KP ->a
+# b                 <0> enter ->c
+# c                 <;> nextstate(main 668 optree_samples.t:72) v:>,<,% ->d
+# f                 <@> print sK ->g
+# d                    <0> pushmark s ->e
+# e                    <$> const(PV "bar") s ->f
 EONT_EONT
 
 checkOptree ( name	=> '-exec sub {if shift print then,else}',
@@ -160,41 +160,39 @@ checkOptree ( name	=> '-exec (see above,
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
 # 1  <;> nextstate(main 675 optree_samples.t:165) v:>,<,%
 # 2  <0> shift s*
-# 3  <0> padsv[$a:675,679] sRM*/LVINTRO
-# 4  <2> sassign vKS/2
-# 5  <;> nextstate(main 679 optree_samples.t:166) v:>,<,%
-# 6  <0> padsv[$a:675,679] s
-# 7  <|> cond_expr(other->8) K/1
-# 8      <0> pushmark s
-# 9      <$> const[PV "foo"] s
-# a      <@> print sK
-#            goto b
-# c  <0> enter 
-# d  <;> nextstate(main 677 optree_samples.t:167) v:>,<,%
-# e  <0> pushmark s
-# f  <$> const[PV "bar"] s
-# g  <@> print sK
-# h  <@> leave KP
-# b  <1> leavesub[1 ref] K/REFC,1
+# 3  <1> padsv_store[$a:1522,1529] vKS/LVINTRO
+# 4  <;> nextstate(main 679 optree_samples.t:166) v:>,<,%
+# 5  <0> padsv[$a:675,679] s
+# 6  <|> cond_expr(other->7) K/1
+# 7      <0> pushmark s
+# 8      <$> const[PV "foo"] s
+# 9      <@> print sK
+#            goto a
+# b  <0> enter 
+# c  <;> nextstate(main 677 optree_samples.t:167) v:>,<,%
+# d  <0> pushmark s
+# e  <$> const[PV "bar"] s
+# f  <@> print sK
+# g  <@> leave KP
+# a  <1> leavesub[1 ref] K/REFC,1
 EOT_EOT
 # 1  <;> nextstate(main 675 optree_samples.t:171) v:>,<,%
 # 2  <0> shift s*
-# 3  <0> padsv[$a:675,679] sRM*/LVINTRO
-# 4  <2> sassign vKS/2
-# 5  <;> nextstate(main 679 optree_samples.t:172) v:>,<,%
-# 6  <0> padsv[$a:675,679] s
-# 7  <|> cond_expr(other->8) K/1
-# 8      <0> pushmark s
-# 9      <$> const(PV "foo") s
-# a      <@> print sK
-#            goto b
-# c  <0> enter 
-# d  <;> nextstate(main 677 optree_samples.t:173) v:>,<,%
-# e  <0> pushmark s
-# f  <$> const(PV "bar") s
-# g  <@> print sK
-# h  <@> leave KP
-# b  <1> leavesub[1 ref] K/REFC,1
+# 3  <1> padsv_store[$a:1522,1529] vKS/LVINTRO
+# 4  <;> nextstate(main 679 optree_samples.t:172) v:>,<,%
+# 5  <0> padsv[$a:675,679] s
+# 6  <|> cond_expr(other->7) K/1
+# 7      <0> pushmark s
+# 8      <$> const(PV "foo") s
+# 9      <@> print sK
+#            goto a
+# b  <0> enter 
+# c  <;> nextstate(main 677 optree_samples.t:173) v:>,<,%
+# d  <0> pushmark s
+# e  <$> const(PV "bar") s
+# f  <@> print sK
+# g  <@> leave KP
+# a  <1> leavesub[1 ref] K/REFC,1
 EONT_EONT
 
 checkOptree ( name	=> '-exec sub { print (shift) ? "foo" : "bar" }',
Index: gnu/usr.bin/perl/ext/B/t/optree_specials.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/t/optree_specials.t,v
diff -u -p -a -u -p -r1.4 optree_specials.t
--- gnu/usr.bin/perl/ext/B/t/optree_specials.t	15 Feb 2023 01:36:30 -0000	1.4
+++ gnu/usr.bin/perl/ext/B/t/optree_specials.t	21 Feb 2024 15:47:02 -0000
@@ -53,7 +53,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(Exporter::Heavy -1410 Heavy.pm:4) v:*,&,{,x*,x&,x$,$ ->4
 # -        <@> lineseq K ->-
 # 4           <;> nextstate(Exporter::Heavy -1410 Heavy.pm:4) :*,&,{,x*,x&,x$,$ ->5
-# 9           <1> entersub[t1] KRS*/TARG,STRICT ->a
+# 9           <1> entersub[t1] KRS/TARG,STRICT ->a
 # 5              <0> pushmark s ->6
 # 6              <$> const[PV "strict"] sM ->7
 # 7              <$> const[PV "refs"] sM ->8
@@ -67,7 +67,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(Exporter::Heavy -1251 Heavy.pm:202) v:*,&,{,x*,x&,x$ ->e
 # -        <@> lineseq K ->-
 # e           <;> nextstate(Exporter::Heavy -1251 Heavy.pm:202) :*,&,{,x*,x&,x$ ->f
-# j           <1> entersub[t1] KRS*/TARG ->k
+# j           <1> entersub[t1] KRS/TARG ->k
 # f              <0> pushmark s ->g
 # g              <$> const[PV "warnings"] sM ->h
 # h              <$> const[PV "once"] sM ->i
@@ -92,7 +92,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(B::Concise -1134 Concise.pm:183) v:*,&,x*,x&,x$,$ ->v
 # -        <@> lineseq K ->-
 # v           <;> nextstate(B::Concise -1134 Concise.pm:183) :*,&,x*,x&,x$,$ ->w
-# 10          <1> entersub[t1] KRS*/TARG,STRICT ->11
+# 10          <1> entersub[t1] KRS/TARG,STRICT ->11
 # w              <0> pushmark s ->x
 # x              <$> const[PV "strict"] sM ->y
 # y              <$> const[PV "refs"] sM ->z
@@ -106,7 +106,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(B::Concise -1031 Concise.pm:305) v:*,&,x*,x&,x$,$ ->15
 # -        <@> lineseq K ->-
 # 15          <;> nextstate(B::Concise -1031 Concise.pm:305) :*,&,x*,x&,x$,$ ->16
-# 1a          <1> entersub[t1] KRS*/TARG,STRICT ->1b
+# 1a          <1> entersub[t1] KRS/TARG,STRICT ->1b
 # 16             <0> pushmark s ->17
 # 17             <$> const[PV "strict"] sM ->18
 # 18             <$> const[PV "refs"] sM ->19
@@ -120,7 +120,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(B::Concise -984 Concise.pm:370) v:*,&,{,x*,x&,x$,$ ->1f
 # -        <@> lineseq K ->-
 # 1f          <;> nextstate(B::Concise -984 Concise.pm:370) :*,&,{,x*,x&,x$,$ ->1g
-# 1k          <1> entersub[t1] KRS*/TARG,STRICT ->1l
+# 1k          <1> entersub[t1] KRS/TARG,STRICT ->1l
 # 1g             <0> pushmark s ->1h
 # 1h             <$> const[PV "strict"] sM ->1i
 # 1i             <$> const[PV "refs"] sM ->1j
@@ -134,7 +134,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(B::Concise -959 Concise.pm:390) v:*,&,x*,x&,x$,$ ->1p
 # -        <@> lineseq K ->-
 # 1p          <;> nextstate(B::Concise -959 Concise.pm:390) :*,&,x*,x&,x$,$ ->1q
-# 1u          <1> entersub[t1] KRS*/TARG,STRICT ->1v
+# 1u          <1> entersub[t1] KRS/TARG,STRICT ->1v
 # 1q             <0> pushmark s ->1r
 # 1r             <$> const[PV "strict"] sM ->1s
 # 1s             <$> const[PV "refs"] sM ->1t
@@ -148,7 +148,7 @@ checkOptree ( name	=> 'BEGIN',
 # -        <;> ex-nextstate(B::Concise -945 Concise.pm:410) v:*,&,{,x*,x&,x$,$ ->1z
 # -        <@> lineseq K ->-
 # 1z          <;> nextstate(B::Concise -945 Concise.pm:410) :*,&,{,x*,x&,x$,$ ->20
-# 24          <1> entersub[t1] KRS*/TARG,STRICT ->25
+# 24          <1> entersub[t1] KRS/TARG,STRICT ->25
 # 20             <0> pushmark s ->21
 # 21             <$> const[PV "warnings"] sM ->22
 # 22             <$> const[PV "qw"] sM ->23
@@ -170,7 +170,7 @@ EOT_EOT
 # -        <;> ex-nextstate(Exporter::Heavy -1410 Heavy.pm:4) v:*,&,{,x*,x&,x$,$ ->4
 # -        <@> lineseq K ->-
 # 4           <;> nextstate(Exporter::Heavy -1410 Heavy.pm:4) :*,&,{,x*,x&,x$,$ ->5
-# 9           <1> entersub[t1] KRS*/TARG,STRICT ->a
+# 9           <1> entersub[t1] KRS/TARG,STRICT ->a
 # 5              <0> pushmark s ->6
 # 6              <$> const(PV "strict") sM ->7
 # 7              <$> const(PV "refs") sM ->8
@@ -184,7 +184,7 @@ EOT_EOT
 # -        <;> ex-nextstate(Exporter::Heavy -1251 Heavy.pm:202) v:*,&,{,x*,x&,x$ ->e
 # -        <@> lineseq K ->-
 # e           <;> nextstate(Exporter::Heavy -1251 Heavy.pm:202) :*,&,{,x*,x&,x$ ->f
-# j           <1> entersub[t1] KRS*/TARG ->k
+# j           <1> entersub[t1] KRS/TARG ->k
 # f              <0> pushmark s ->g
 # g              <$> const(PV "warnings") sM ->h
 # h              <$> const(PV "once") sM ->i
@@ -209,7 +209,7 @@ EOT_EOT
 # -        <;> ex-nextstate(B::Concise -1134 Concise.pm:183) v:*,&,x*,x&,x$,$ ->v
 # -        <@> lineseq K ->-
 # v           <;> nextstate(B::Concise -1134 Concise.pm:183) :*,&,x*,x&,x$,$ ->w
-# 10          <1> entersub[t1] KRS*/TARG,STRICT ->11
+# 10          <1> entersub[t1] KRS/TARG,STRICT ->11
 # w              <0> pushmark s ->x
 # x              <$> const(PV "strict") sM ->y
 # y              <$> const(PV "refs") sM ->z
@@ -223,7 +223,7 @@ EOT_EOT
 # -        <;> ex-nextstate(B::Concise -1031 Concise.pm:305) v:*,&,x*,x&,x$,$ ->15
 # -        <@> lineseq K ->-
 # 15          <;> nextstate(B::Concise -1031 Concise.pm:305) :*,&,x*,x&,x$,$ ->16
-# 1a          <1> entersub[t1] KRS*/TARG,STRICT ->1b
+# 1a          <1> entersub[t1] KRS/TARG,STRICT ->1b
 # 16             <0> pushmark s ->17
 # 17             <$> const(PV "strict") sM ->18
 # 18             <$> const(PV "refs") sM ->19
@@ -237,7 +237,7 @@ EOT_EOT
 # -        <;> ex-nextstate(B::Concise -984 Concise.pm:370) v:*,&,{,x*,x&,x$,$ ->1f
 # -        <@> lineseq K ->-
 # 1f          <;> nextstate(B::Concise -984 Concise.pm:370) :*,&,{,x*,x&,x$,$ ->1g
-# 1k          <1> entersub[t1] KRS*/TARG,STRICT ->1l
+# 1k          <1> entersub[t1] KRS/TARG,STRICT ->1l
 # 1g             <0> pushmark s ->1h
 # 1h             <$> const(PV "strict") sM ->1i
 # 1i             <$> const(PV "refs") sM ->1j
@@ -251,7 +251,7 @@ EOT_EOT
 # -        <;> ex-nextstate(B::Concise -959 Concise.pm:390) v:*,&,x*,x&,x$,$ ->1p
 # -        <@> lineseq K ->-
 # 1p          <;> nextstate(B::Concise -959 Concise.pm:390) :*,&,x*,x&,x$,$ ->1q
-# 1u          <1> entersub[t1] KRS*/TARG,STRICT ->1v
+# 1u          <1> entersub[t1] KRS/TARG,STRICT ->1v
 # 1q             <0> pushmark s ->1r
 # 1r             <$> const(PV "strict") sM ->1s
 # 1s             <$> const(PV "refs") sM ->1t
@@ -265,7 +265,7 @@ EOT_EOT
 # -        <;> ex-nextstate(B::Concise -945 Concise.pm:410) v:*,&,{,x*,x&,x$,$ ->1z
 # -        <@> lineseq K ->-
 # 1z          <;> nextstate(B::Concise -945 Concise.pm:410) :*,&,{,x*,x&,x$,$ ->20
-# 24          <1> entersub[t1] KRS*/TARG,STRICT ->25
+# 24          <1> entersub[t1] KRS/TARG,STRICT ->25
 # 20             <0> pushmark s ->21
 # 21             <$> const(PV "warnings") sM ->22
 # 22             <$> const(PV "qw") sM ->23
@@ -382,7 +382,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # 6  <$> const[PV "strict"] sM
 # 7  <$> const[PV "refs"] sM
 # 8  <.> method_named[PV "unimport"] 
-# 9  <1> entersub[t1] KRS*/TARG,STRICT
+# 9  <1> entersub[t1] KRS/TARG,STRICT
 # a  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 2:
 # b  <;> nextstate(Exporter::Heavy -1251 Heavy.pm:202) v:*,&,{,x*,x&,x$
@@ -393,7 +393,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # g  <$> const[PV "warnings"] sM
 # h  <$> const[PV "once"] sM
 # i  <.> method_named[PV "unimport"] 
-# j  <1> entersub[t1] KRS*/TARG
+# j  <1> entersub[t1] KRS/TARG
 # k  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 3:
 # l  <;> nextstate(B::Concise -1175 Concise.pm:117) v:*,&,{,x*,x&,x$,$
@@ -412,7 +412,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # x  <$> const[PV "strict"] sM
 # y  <$> const[PV "refs"] sM
 # z  <.> method_named[PV "unimport"] 
-# 10 <1> entersub[t1] KRS*/TARG,STRICT
+# 10 <1> entersub[t1] KRS/TARG,STRICT
 # 11 <1> leavesub[1 ref] K/REFC,1
 # BEGIN 5:
 # 12 <;> nextstate(B::Concise -1031 Concise.pm:305) v:*,&,x*,x&,x$,$
@@ -423,7 +423,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # 17 <$> const[PV "strict"] sM
 # 18 <$> const[PV "refs"] sM
 # 19 <.> method_named[PV "unimport"] 
-# 1a <1> entersub[t1] KRS*/TARG,STRICT
+# 1a <1> entersub[t1] KRS/TARG,STRICT
 # 1b <1> leavesub[1 ref] K/REFC,1
 # BEGIN 6:
 # 1c <;> nextstate(B::Concise -984 Concise.pm:370) v:*,&,{,x*,x&,x$,$
@@ -434,7 +434,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # 1h <$> const[PV "strict"] sM
 # 1i <$> const[PV "refs"] sM
 # 1j <.> method_named[PV "unimport"] 
-# 1k <1> entersub[t1] KRS*/TARG,STRICT
+# 1k <1> entersub[t1] KRS/TARG,STRICT
 # 1l <1> leavesub[1 ref] K/REFC,1
 # BEGIN 7:
 # 1m <;> nextstate(B::Concise -959 Concise.pm:390) v:*,&,x*,x&,x$,$
@@ -445,7 +445,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # 1r <$> const[PV "strict"] sM
 # 1s <$> const[PV "refs"] sM
 # 1t <.> method_named[PV "unimport"] 
-# 1u <1> entersub[t1] KRS*/TARG,STRICT
+# 1u <1> entersub[t1] KRS/TARG,STRICT
 # 1v <1> leavesub[1 ref] K/REFC,1
 # BEGIN 8:
 # 1w <;> nextstate(B::Concise -945 Concise.pm:410) v:*,&,{,x*,x&,x$,$
@@ -456,7 +456,7 @@ checkOptree ( name	=> 'all of BEGIN END 
 # 21 <$> const[PV "warnings"] sM
 # 22 <$> const[PV "qw"] sM
 # 23 <.> method_named[PV "unimport"] 
-# 24 <1> entersub[t1] KRS*/TARG,STRICT
+# 24 <1> entersub[t1] KRS/TARG,STRICT
 # 25 <1> leavesub[1 ref] K/REFC,1
 # BEGIN 9:
 # 26 <;> nextstate(main 3 -e:1) v:{
@@ -493,7 +493,7 @@ EOT_EOT
 # 6  <$> const(PV "strict") sM
 # 7  <$> const(PV "refs") sM
 # 8  <.> method_named(PV "unimport") 
-# 9  <1> entersub[t1] KRS*/TARG,STRICT
+# 9  <1> entersub[t1] KRS/TARG,STRICT
 # a  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 2:
 # b  <;> nextstate(Exporter::Heavy -1251 Heavy.pm:202) v:*,&,{,x*,x&,x$
@@ -504,7 +504,7 @@ EOT_EOT
 # g  <$> const(PV "warnings") sM
 # h  <$> const(PV "once") sM
 # i  <.> method_named(PV "unimport") 
-# j  <1> entersub[t1] KRS*/TARG
+# j  <1> entersub[t1] KRS/TARG
 # k  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 3:
 # l  <;> nextstate(B::Concise -1175 Concise.pm:117) v:*,&,{,x*,x&,x$,$
@@ -523,7 +523,7 @@ EOT_EOT
 # x  <$> const(PV "strict") sM
 # y  <$> const(PV "refs") sM
 # z  <.> method_named(PV "unimport") 
-# 10 <1> entersub[t1] KRS*/TARG,STRICT
+# 10 <1> entersub[t1] KRS/TARG,STRICT
 # 11 <1> leavesub[1 ref] K/REFC,1
 # BEGIN 5:
 # 12 <;> nextstate(B::Concise -1031 Concise.pm:305) v:*,&,x*,x&,x$,$
@@ -534,7 +534,7 @@ EOT_EOT
 # 17 <$> const(PV "strict") sM
 # 18 <$> const(PV "refs") sM
 # 19 <.> method_named(PV "unimport") 
-# 1a <1> entersub[t1] KRS*/TARG,STRICT
+# 1a <1> entersub[t1] KRS/TARG,STRICT
 # 1b <1> leavesub[1 ref] K/REFC,1
 # BEGIN 6:
 # 1c <;> nextstate(B::Concise -984 Concise.pm:370) v:*,&,{,x*,x&,x$,$
@@ -545,7 +545,7 @@ EOT_EOT
 # 1h <$> const(PV "strict") sM
 # 1i <$> const(PV "refs") sM
 # 1j <.> method_named(PV "unimport") 
-# 1k <1> entersub[t1] KRS*/TARG,STRICT
+# 1k <1> entersub[t1] KRS/TARG,STRICT
 # 1l <1> leavesub[1 ref] K/REFC,1
 # BEGIN 7:
 # 1m <;> nextstate(B::Concise -959 Concise.pm:390) v:*,&,x*,x&,x$,$
@@ -556,7 +556,7 @@ EOT_EOT
 # 1r <$> const(PV "strict") sM
 # 1s <$> const(PV "refs") sM
 # 1t <.> method_named(PV "unimport") 
-# 1u <1> entersub[t1] KRS*/TARG,STRICT
+# 1u <1> entersub[t1] KRS/TARG,STRICT
 # 1v <1> leavesub[1 ref] K/REFC,1
 # BEGIN 8:
 # 1w <;> nextstate(B::Concise -945 Concise.pm:410) v:*,&,{,x*,x&,x$,$
@@ -567,7 +567,7 @@ EOT_EOT
 # 21 <$> const(PV "warnings") sM
 # 22 <$> const(PV "qw") sM
 # 23 <.> method_named(PV "unimport") 
-# 24 <1> entersub[t1] KRS*/TARG,STRICT
+# 24 <1> entersub[t1] KRS/TARG,STRICT
 # 25 <1> leavesub[1 ref] K/REFC,1
 # BEGIN 9:
 # 26 <;> nextstate(main 3 -e:1) v:{
@@ -611,7 +611,7 @@ checkOptree ( name	=> 'regression test f
 # 6  <$> const[PV "strict"] sM
 # 7  <$> const[PV "refs"] sM
 # 8  <.> method_named[PV "unimport"] 
-# 9  <1> entersub[t1] KRS*/TARG,STRICT
+# 9  <1> entersub[t1] KRS/TARG,STRICT
 # a  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 2:
 # b  <;> nextstate(Exporter::Heavy -1251 Heavy.pm:202) v:*,&,{,x*,x&,x$
@@ -622,7 +622,7 @@ checkOptree ( name	=> 'regression test f
 # g  <$> const[PV "warnings"] sM
 # h  <$> const[PV "once"] sM
 # i  <.> method_named[PV "unimport"] 
-# j  <1> entersub[t1] KRS*/TARG
+# j  <1> entersub[t1] KRS/TARG
 # k  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 3:
 # l  <;> nextstate(B::Concise -1175 Concise.pm:117) v:*,&,{,x*,x&,x$,$
@@ -641,7 +641,7 @@ checkOptree ( name	=> 'regression test f
 # x  <$> const[PV "strict"] sM
 # y  <$> const[PV "refs"] sM
 # z  <.> method_named[PV "unimport"] 
-# 10 <1> entersub[t1] KRS*/TARG,STRICT
+# 10 <1> entersub[t1] KRS/TARG,STRICT
 # 11 <1> leavesub[1 ref] K/REFC,1
 # BEGIN 5:
 # 12 <;> nextstate(B::Concise -1031 Concise.pm:305) v:*,&,x*,x&,x$,$
@@ -652,7 +652,7 @@ checkOptree ( name	=> 'regression test f
 # 17 <$> const[PV "strict"] sM
 # 18 <$> const[PV "refs"] sM
 # 19 <.> method_named[PV "unimport"] 
-# 1a <1> entersub[t1] KRS*/TARG,STRICT
+# 1a <1> entersub[t1] KRS/TARG,STRICT
 # 1b <1> leavesub[1 ref] K/REFC,1
 # BEGIN 6:
 # 1c <;> nextstate(B::Concise -984 Concise.pm:370) v:*,&,{,x*,x&,x$,$
@@ -663,7 +663,7 @@ checkOptree ( name	=> 'regression test f
 # 1h <$> const[PV "strict"] sM
 # 1i <$> const[PV "refs"] sM
 # 1j <.> method_named[PV "unimport"] 
-# 1k <1> entersub[t1] KRS*/TARG,STRICT
+# 1k <1> entersub[t1] KRS/TARG,STRICT
 # 1l <1> leavesub[1 ref] K/REFC,1
 # BEGIN 7:
 # 1m <;> nextstate(B::Concise -959 Concise.pm:390) v:*,&,x*,x&,x$,$
@@ -674,7 +674,7 @@ checkOptree ( name	=> 'regression test f
 # 1r <$> const[PV "strict"] sM
 # 1s <$> const[PV "refs"] sM
 # 1t <.> method_named[PV "unimport"] 
-# 1u <1> entersub[t1] KRS*/TARG,STRICT
+# 1u <1> entersub[t1] KRS/TARG,STRICT
 # 1v <1> leavesub[1 ref] K/REFC,1
 # BEGIN 8:
 # 1w <;> nextstate(B::Concise -945 Concise.pm:410) v:*,&,{,x*,x&,x$,$
@@ -685,7 +685,7 @@ checkOptree ( name	=> 'regression test f
 # 21 <$> const[PV "warnings"] sM
 # 22 <$> const[PV "qw"] sM
 # 23 <.> method_named[PV "unimport"] 
-# 24 <1> entersub[t1] KRS*/TARG,STRICT
+# 24 <1> entersub[t1] KRS/TARG,STRICT
 # 25 <1> leavesub[1 ref] K/REFC,1
 EOT_EOT
 # BEGIN 1:
@@ -697,7 +697,7 @@ EOT_EOT
 # 6  <$> const(PV "strict") sM
 # 7  <$> const(PV "refs") sM
 # 8  <.> method_named(PV "unimport") 
-# 9  <1> entersub[t1] KRS*/TARG,STRICT
+# 9  <1> entersub[t1] KRS/TARG,STRICT
 # a  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 2:
 # b  <;> nextstate(Exporter::Heavy -1251 Heavy.pm:202) v:*,&,{,x*,x&,x$
@@ -708,7 +708,7 @@ EOT_EOT
 # g  <$> const(PV "warnings") sM
 # h  <$> const(PV "once") sM
 # i  <.> method_named(PV "unimport") 
-# j  <1> entersub[t1] KRS*/TARG
+# j  <1> entersub[t1] KRS/TARG
 # k  <1> leavesub[1 ref] K/REFC,1
 # BEGIN 3:
 # l  <;> nextstate(B::Concise -1175 Concise.pm:117) v:*,&,{,x*,x&,x$,$
@@ -727,7 +727,7 @@ EOT_EOT
 # x  <$> const(PV "strict") sM
 # y  <$> const(PV "refs") sM
 # z  <.> method_named(PV "unimport") 
-# 10 <1> entersub[t1] KRS*/TARG,STRICT
+# 10 <1> entersub[t1] KRS/TARG,STRICT
 # 11 <1> leavesub[1 ref] K/REFC,1
 # BEGIN 5:
 # 12 <;> nextstate(B::Concise -1031 Concise.pm:305) v:*,&,x*,x&,x$,$
@@ -738,7 +738,7 @@ EOT_EOT
 # 17 <$> const(PV "strict") sM
 # 18 <$> const(PV "refs") sM
 # 19 <.> method_named(PV "unimport") 
-# 1a <1> entersub[t1] KRS*/TARG,STRICT
+# 1a <1> entersub[t1] KRS/TARG,STRICT
 # 1b <1> leavesub[1 ref] K/REFC,1
 # BEGIN 6:
 # 1c <;> nextstate(B::Concise -984 Concise.pm:370) v:*,&,{,x*,x&,x$,$
@@ -749,7 +749,7 @@ EOT_EOT
 # 1h <$> const(PV "strict") sM
 # 1i <$> const(PV "refs") sM
 # 1j <.> method_named(PV "unimport") 
-# 1k <1> entersub[t1] KRS*/TARG,STRICT
+# 1k <1> entersub[t1] KRS/TARG,STRICT
 # 1l <1> leavesub[1 ref] K/REFC,1
 # BEGIN 7:
 # 1m <;> nextstate(B::Concise -959 Concise.pm:390) v:*,&,x*,x&,x$,$
@@ -760,7 +760,7 @@ EOT_EOT
 # 1r <$> const(PV "strict") sM
 # 1s <$> const(PV "refs") sM
 # 1t <.> method_named(PV "unimport") 
-# 1u <1> entersub[t1] KRS*/TARG,STRICT
+# 1u <1> entersub[t1] KRS/TARG,STRICT
 # 1v <1> leavesub[1 ref] K/REFC,1
 # BEGIN 8:
 # 1w <;> nextstate(B::Concise -945 Concise.pm:410) v:*,&,{,x*,x&,x$,$
@@ -771,6 +771,6 @@ EOT_EOT
 # 21 <$> const(PV "warnings") sM
 # 22 <$> const(PV "qw") sM
 # 23 <.> method_named(PV "unimport") 
-# 24 <1> entersub[t1] KRS*/TARG,STRICT
+# 24 <1> entersub[t1] KRS/TARG,STRICT
 # 25 <1> leavesub[1 ref] K/REFC,1
 EONT_EONT
Index: gnu/usr.bin/perl/ext/B/t/optree_varinit.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/t/optree_varinit.t,v
diff -u -p -a -u -p -r1.5 optree_varinit.t
--- gnu/usr.bin/perl/ext/B/t/optree_varinit.t	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/B/t/optree_varinit.t	21 Feb 2024 15:47:02 -0000
@@ -129,19 +129,19 @@ checkOptree ( name	=> 'sub {my $a=undef}
 	      bcopts	=> '-basic',
 	      strip_open_hints => 1,
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
-5  <1> leavesub[1 ref] K/REFC,1 ->(end)
--     <@> lineseq KP ->5
-1        <;> nextstate(main 641 optree_varinit.t:130) v:>,<,% ->2
-4        <2> sassign sKS/2 ->5
-2           <0> undef s ->3
-3           <0> padsv[$a:641,642] sRM*/LVINTRO ->4
-EOT_EOT
-# 5  <1> leavesub[1 ref] K/REFC,1 ->(end)
-# -     <@> lineseq KP ->5
-# 1        <;> nextstate(main 641 optree_varinit.t:130) v:>,<,% ->2
-# 4        <2> sassign sKS/2 ->5
-# 2           <0> undef s ->3
-# 3           <0> padsv[$a:641,642] sRM*/LVINTRO ->4
+3  <1> leavesub[1 ref] K/REFC,1 ->(end)
+-     <@> lineseq KP ->3
+1        <;> nextstate(main 1517 optree_varinit.t:128) v ->2
+-        <1> ex-sassign sKS/2 ->-
+2           <0> undef[$a:1517,1518] s/LVINTRO,KEEP_PV,TARGMY ->3
+-           <0> ex-padsv sRM*/LVINTRO ->-
+EOT_EOT
+# 3  <1> leavesub[1 ref] K/REFC,1 ->(end)
+# -     <@> lineseq KP ->3
+# 1        <;> nextstate(main 1517 optree_varinit.t:128) v ->2
+# -        <1> ex-sassign sKS/2 ->-
+# 2           <0> undef[$a:1517,1518] s/LVINTRO,KEEP_PV,TARGMY ->3
+# -           <0> ex-padsv sRM*/LVINTRO ->-
 EONT_EONT
 
 checkOptree ( name	=> 'sub {our $a=undef}',
@@ -152,7 +152,7 @@ checkOptree ( name	=> 'sub {our $a=undef
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
 5  <1> leavesub[1 ref] K/REFC,1 ->(end)
 -     <@> lineseq KP ->5
-1        <;> nextstate(main 26 optree.t:109) v:>,<,%,{ ->2
+1        <;> nextstate(main 1520 optree_varinit.t:148) v:{ ->2
 4        <2> sassign sKS/2 ->5
 2           <0> undef s ->3
 -           <1> ex-rv2sv sKRM*/OURINTR,1 ->4
@@ -160,7 +160,7 @@ checkOptree ( name	=> 'sub {our $a=undef
 EOT_EOT
 # 5  <1> leavesub[1 ref] K/REFC,1 ->(end)
 # -     <@> lineseq KP ->5
-# 1        <;> nextstate(main 446 optree_varinit.t:137) v:>,<,%,{ ->2
+# 1        <;> nextstate(main 1520 optree_varinit.t:148) v:{ ->2
 # 4        <2> sassign sKS/2 ->5
 # 2           <0> undef s ->3
 # -           <1> ex-rv2sv sKRM*/OURINTR,1 ->4
@@ -175,7 +175,7 @@ checkOptree ( name	=> 'sub {local $a=und
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
 5  <1> leavesub[1 ref] K/REFC,1 ->(end)
 -     <@> lineseq KP ->5
-1        <;> nextstate(main 28 optree.t:122) v:>,<,%,{ ->2
+1        <;> nextstate(main 1523 optree_varinit.t:171) v:{ ->2
 4        <2> sassign sKS/2 ->5
 2           <0> undef s ->3
 -           <1> ex-rv2sv sKRM*/LVINTRO,1 ->4
@@ -183,7 +183,7 @@ checkOptree ( name	=> 'sub {local $a=und
 EOT_EOT
 # 5  <1> leavesub[1 ref] K/REFC,1 ->(end)
 # -     <@> lineseq KP ->5
-# 1        <;> nextstate(main 58 optree.t:141) v:>,<,%,{ ->2
+# 1        <;> nextstate(main 1523 optree_varinit.t:171) v:{ ->2
 # 4        <2> sassign sKS/2 ->5
 # 2           <0> undef s ->3
 # -           <1> ex-rv2sv sKRM*/LVINTRO,1 ->4
@@ -195,19 +195,19 @@ checkOptree ( name	=> 'my $a=undef',
 	      bcopts	=> '-basic',
 	      strip_open_hints => 1,
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
-6  <@> leave[1 ref] vKP/REFC ->(end)
+4  <@> leave[1 ref] vKP/REFC ->(end)
 1     <0> enter v ->2
-2     <;> nextstate(main 1 -e:1) v:>,<,%,{ ->3
-5     <2> sassign vKS/2 ->6
-3        <0> undef s ->4
-4        <0> padsv[$a:1,2] sRM*/LVINTRO ->5
+2     <;> nextstate(main 1 -e:1) v:{ ->3
+-     <1> ex-sassign vKS/2 ->4
+3        <0> undef[$a:1,2] s/LVINTRO,KEEP_PV,TARGMY ->4
+-        <0> ex-padsv sRM*/LVINTRO ->-
 EOT_EOT
-# 6  <@> leave[1 ref] vKP/REFC ->(end)
+# 4  <@> leave[1 ref] vKP/REFC ->(end)
 # 1     <0> enter v ->2
-# 2     <;> nextstate(main 1 -e:1) v:>,<,%,{ ->3
-# 5     <2> sassign vKS/2 ->6
-# 3        <0> undef s ->4
-# 4        <0> padsv[$a:1,2] sRM*/LVINTRO ->5
+# 2     <;> nextstate(main 1 -e:1) v:{ ->3
+# -     <1> ex-sassign vKS/2 ->4
+# 3        <0> undef[$a:1,2] s/LVINTRO,KEEP_PV,TARGMY ->4
+# -        <0> ex-padsv sRM*/LVINTRO ->-
 EONT_EONT
 
 checkOptree ( name	=> 'our $a=undef',
@@ -218,7 +218,7 @@ checkOptree ( name	=> 'our $a=undef',
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
 6  <@> leave[1 ref] vKP/REFC ->(end)
 1     <0> enter v ->2
-2     <;> nextstate(main 1 -e:1) v:>,<,%,{ ->3
+2     <;> nextstate(main 1 -e:1) v:{ ->3
 5     <2> sassign vKS/2 ->6
 3        <0> undef s ->4
 -        <1> ex-rv2sv sKRM*/OURINTR,1 ->5
@@ -226,7 +226,7 @@ checkOptree ( name	=> 'our $a=undef',
 EOT_EOT
 # 6  <@> leave[1 ref] vKP/REFC ->(end)
 # 1     <0> enter v ->2
-# 2     <;> nextstate(main 1 -e:1) v:>,<,%,{ ->3
+# 2     <;> nextstate(main 1 -e:1) v:{ ->3
 # 5     <2> sassign vKS/2 ->6
 # 3        <0> undef s ->4
 # -        <1> ex-rv2sv sKRM*/OURINTR,1 ->5
@@ -242,7 +242,7 @@ checkOptree ( name	=> 'local $c=undef',
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
 6  <@> leave[1 ref] vKP/REFC ->(end)
 1     <0> enter v ->2
-2     <;> nextstate(main 1 -e:1) v:>,<,%,{ ->3
+2     <;> nextstate(main 1 -e:1) v:{ ->3
 5     <2> sassign vKS/2 ->6
 3        <0> undef s ->4
 -        <1> ex-rv2sv sKRM*/LVINTRO,1 ->5
@@ -250,7 +250,7 @@ checkOptree ( name	=> 'local $c=undef',
 EOT_EOT
 # 6  <@> leave[1 ref] vKP/REFC ->(end)
 # 1     <0> enter v ->2
-# 2     <;> nextstate(main 1 -e:1) v:>,<,%,{ ->3
+# 2     <;> nextstate(main 1 -e:1) v:{ ->3
 # 5     <2> sassign vKS/2 ->6
 # 3        <0> undef s ->4
 # -        <1> ex-rv2sv sKRM*/LVINTRO,1 ->5
@@ -264,15 +264,13 @@ checkOptree ( name	=> 'sub {my $a=()}',
 	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');
 1  <;> nextstate(main -439 optree.t:105) v:>,<,%
 2  <0> stub sP
-3  <0> padsv[$a:-439,-438] sRM*/LVINTRO
-4  <2> sassign sKS/2
-5  <1> leavesub[1 ref] K/REFC,1
+3  <1> padsv_store[$a:1516,1517] sKS/LVINTRO
+4  <1> leavesub[1 ref] K/REFC,1
 EOT_EOT
 # 1  <;> nextstate(main 438 optree_varinit.t:247) v:>,<,%
 # 2  <0> stub sP
-# 3  <0> padsv[$a:438,439] sRM*/LVINTRO
-# 4  <2> sassign sKS/2
-# 5  <1> leavesub[1 ref] K/REFC,1
+# 3  <1> padsv_store[$a:1516,1517] sKS/LVINTRO
+# 4  <1> leavesub[1 ref] K/REFC,1
 EONT_EONT
 
 checkOptree ( name	=> 'sub {our $a=()}',
@@ -321,16 +319,14 @@ checkOptree ( name	=> 'my $a=()',
 1  <0> enter v
 2  <;> nextstate(main 1 -e:1) v:>,<,%,{
 3  <0> stub sP
-4  <0> padsv[$a:1,2] sRM*/LVINTRO
-5  <2> sassign vKS/2
-6  <@> leave[1 ref] vKP/REFC
+4  <1> padsv_store[$a:1516,1517] vKS/LVINTRO
+5  <@> leave[1 ref] vKP/REFC
 EOT_EOT
 # 1  <0> enter v
 # 2  <;> nextstate(main 1 -e:1) v:>,<,%,{
 # 3  <0> stub sP
-# 4  <0> padsv[$a:1,2] sRM*/LVINTRO
-# 5  <2> sassign vKS/2
-# 6  <@> leave[1 ref] vKP/REFC
+# 4  <1> padsv_store[$a:1516,1517] vKS/LVINTRO
+# 5  <@> leave[1 ref] vKP/REFC
 EONT_EONT
 
 checkOptree ( name	=> 'our $a=()',
Index: gnu/usr.bin/perl/ext/B/t/walkoptree.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/B/t/walkoptree.t,v
diff -u -p -a -u -p -r1.1.1.4 walkoptree.t
--- gnu/usr.bin/perl/ext/B/t/walkoptree.t	1 Mar 2021 23:15:52 -0000	1.1.1.4
+++ gnu/usr.bin/perl/ext/B/t/walkoptree.t	21 Feb 2024 15:47:02 -0000
@@ -48,7 +48,11 @@ foreach (qw(substcont split leavesub)) {
 is_deeply ([keys %debug], [], 'walkoptree_debug was not called');
 
 B::walkoptree_debug(2);
-is (B::walkoptree_debug, 1, 'walkoptree_debug() is 1');
+is (B::walkoptree_debug(), 1, 'walkoptree_debug() is 1');
+B::walkoptree_debug(0);
+is (B::walkoptree_debug(), 0, 'walkoptree_debug() is 0');
+B::walkoptree_debug(1);
+is (B::walkoptree_debug(), 1, 'walkoptree_debug() is 1 again');
 %seen = ();
 
 B::walkoptree(B::svref_2object($victim)->ROOT, "pie");
Index: gnu/usr.bin/perl/ext/Devel-Peek/Peek.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Devel-Peek/Peek.pm,v
diff -u -p -a -u -p -r1.5 Peek.pm
--- gnu/usr.bin/perl/ext/Devel-Peek/Peek.pm	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/Devel-Peek/Peek.pm	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@
 
 package Devel::Peek;
 
-$VERSION = '1.32';
+$VERSION = '1.33';
 $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 
Index: gnu/usr.bin/perl/ext/Devel-Peek/t/Peek.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Devel-Peek/t/Peek.t,v
diff -u -p -a -u -p -r1.6 Peek.t
--- gnu/usr.bin/perl/ext/Devel-Peek/t/Peek.t	15 Feb 2023 01:36:30 -0000	1.6
+++ gnu/usr.bin/perl/ext/Devel-Peek/t/Peek.t	21 Feb 2024 15:47:02 -0000
@@ -392,7 +392,6 @@ do_test('reference to named subroutine w
       \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$dump2"
     OUTSIDE = $ADDR \\(MAIN\\)');
 
-if ($] >= 5.011) {
 # note the conditionals on ENGINE and INTFLAGS were introduced in 5.19.9
 do_test('reference to regexp',
         qr(tic),
@@ -406,14 +405,16 @@ do_test('reference to regexp',
     PV = $ADDR "\\(\\?\\^:tic\\)"
     CUR = 8
     LEN = 0
-    STASH = $ADDR\\t"Regexp"'
-. ($] < 5.013 ? '' :
-'
-    COMPFLAGS = 0x0 \(\)
-    EXTFLAGS = 0x680000 \(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\)
-(?:    ENGINE = $ADDR \(STANDARD\)
-)?    INTFLAGS = 0x0(?: \(\))?
+    STASH = $ADDR\\s+"Regexp"
+    COMPFLAGS = 0x0 \\(\\)
+    EXTFLAGS = 0x680000 \\(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\\)
+    ENGINE = $ADDR \\(STANDARD\\)
+    INTFLAGS = 0x0 \\(\\)
     NPARENS = 0
+    LOGICAL_NPARENS = 0
+    LOGICAL_TO_PARNO = 0x0
+    PARNO_TO_LOGICAL = 0x0
+    PARNO_TO_LOGICAL_NEXT = 0x0
     LASTPAREN = 0
     LASTCLOSEPAREN = 0
     MINLEN = 3
@@ -424,20 +425,29 @@ do_test('reference to regexp',
     SUBOFFSET = 0
     SUBCOFFSET = 0
     SUBBEG = 0x0
-(?:    ENGINE = $ADDR
-)?    MOTHER_RE = $ADDR'
-. ($] < 5.019003 ? '' : '
-    SV = REGEXP\($ADDR\) at $ADDR
+    PAREN_NAMES = 0x0
+    SUBSTRS = $ADDR
+    PPRIVATE = $ADDR
+    OFFS = $ADDR
+      \\[ 0:0 \\]
+    QR_ANONCV = 0x0
+    SAVED_COPY = 0x0
+    MOTHER_RE = $ADDR
+    SV = REGEXP\\($ADDR\\) at $ADDR
       REFCNT = 2
-      FLAGS = \(POK,pPOK\)
-      PV = $ADDR "\(\?\^:tic\)"
+      FLAGS = \\(POK,pPOK\\)
+      PV = $ADDR "\\(\\?\\^:tic\\)"
       CUR = 8
-      LEN = \d+
-      COMPFLAGS = 0x0 \(\)
-      EXTFLAGS = 0x680000 \(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\)
-(?:      ENGINE = $ADDR \(STANDARD\)
-)?      INTFLAGS = 0x0(?: \(\))?
+      LEN = \\d+
+      COMPFLAGS = 0x0 \\(\\)
+      EXTFLAGS = 0x680000 \\(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\\)
+      ENGINE = $ADDR \\(STANDARD\\)
+      INTFLAGS = 0x0 \\(\\)
       NPARENS = 0
+      LOGICAL_NPARENS = 0
+      LOGICAL_TO_PARNO = 0x0
+      PARNO_TO_LOGICAL = 0x0
+      PARNO_TO_LOGICAL_NEXT = 0x0
       LASTPAREN = 0
       LASTCLOSEPAREN = 0
       MINLEN = 3
@@ -448,42 +458,15 @@ do_test('reference to regexp',
       SUBOFFSET = 0
       SUBCOFFSET = 0
       SUBBEG = 0x0
-(?:    ENGINE = $ADDR
-)?      MOTHER_RE = 0x0
       PAREN_NAMES = 0x0
       SUBSTRS = $ADDR
       PPRIVATE = $ADDR
       OFFS = $ADDR
-      QR_ANONCV = 0x0(?:
-      SAVED_COPY = 0x0)?') . '
-    PAREN_NAMES = 0x0
-    SUBSTRS = $ADDR
-    PPRIVATE = $ADDR
-    OFFS = $ADDR
-    QR_ANONCV = 0x0(?:
-    SAVED_COPY = 0x0)?'
-));
-} else {
-do_test('reference to regexp',
-        qr(tic),
-'SV = $RV\\($ADDR\\) at $ADDR
-  REFCNT = 1
-  FLAGS = \\(ROK\\)
-  RV = $ADDR
-  SV = PVMG\\($ADDR\\) at $ADDR
-    REFCNT = 1
-    FLAGS = \\(OBJECT,SMG\\)
-    IV = 0
-    NV = 0
-    PV = 0
-    MAGIC = $ADDR
-      MG_VIRTUAL = $ADDR
-      MG_TYPE = PERL_MAGIC_qr\(r\)
-      MG_OBJ = $ADDR
-        PAT = "\(\?^:tic\)"
-        REFCNT = 2
-    STASH = $ADDR\\t"Regexp"');
-}
+        \\[ 0:0 \\]
+      QR_ANONCV = 0x0
+      SAVED_COPY = 0x0
+      MOTHER_RE = 0x0
+');
 
 do_test('reference to blessed hash',
         (bless {}, "Tac"),
@@ -1200,22 +1183,26 @@ unless ($Config{useithreads}) {
 # note the conditionals on ENGINE and INTFLAGS were introduced in 5.19.9
 do_test('UTF-8 in a regular expression',
         qr/\x{100}/,
-'SV = IV\($ADDR\) at $ADDR
+'SV = IV\\($ADDR\\) at $ADDR
   REFCNT = 1
-  FLAGS = \(ROK\)
+  FLAGS = \\(ROK\\)
   RV = $ADDR
-  SV = REGEXP\($ADDR\) at $ADDR
+  SV = REGEXP\\($ADDR\\) at $ADDR
     REFCNT = 1
     FLAGS = \(OBJECT,POK,FAKE,pPOK,UTF8\)
-    PV = $ADDR "\(\?\^u:\\\\\\\\x\{100\}\)" \[UTF8 "\(\?\^u:\\\\\\\\x\{100\}\)"\]
+    PV = $ADDR "\\(\\?\\^u:\\\\\\\\x\\{100\\}\\)" \\[UTF8 "\\(\\?\\^u:\\\\\\\\x\\{100\\}\\)"\\]
     CUR = 13
     LEN = 0
-    STASH = $ADDR	"Regexp"
-    COMPFLAGS = 0x0 \(\)
-    EXTFLAGS = $ADDR \(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\)
-(?:    ENGINE = $ADDR \(STANDARD\)
-)?    INTFLAGS = 0x0(?: \(\))?
+    STASH = $ADDR\\s+"Regexp"
+    COMPFLAGS = 0x0 \\(\\)
+    EXTFLAGS = $ADDR \\(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\\)
+(?:    ENGINE = $ADDR \\(STANDARD\\)
+)?    INTFLAGS = 0x0(?: \\(\\))?
     NPARENS = 0
+    LOGICAL_NPARENS = 0
+    LOGICAL_TO_PARNO = 0x0
+    PARNO_TO_LOGICAL = 0x0
+    PARNO_TO_LOGICAL_NEXT = 0x0
     LASTPAREN = 0
     LASTCLOSEPAREN = 0
     MINLEN = 1
@@ -1226,20 +1213,29 @@ do_test('UTF-8 in a regular expression',
     SUBOFFSET = 0
     SUBCOFFSET = 0
     SUBBEG = 0x0
-(?:    ENGINE = $ADDR
-)?    MOTHER_RE = $ADDR'
-. ($] < 5.019003 ? '' : '
-    SV = REGEXP\($ADDR\) at $ADDR
+    PAREN_NAMES = 0x0
+    SUBSTRS = $ADDR
+    PPRIVATE = $ADDR
+    OFFS = $ADDR
+      \\[ 0:0 \\]
+    QR_ANONCV = 0x0
+    SAVED_COPY = 0x0
+    MOTHER_RE = $ADDR
+    SV = REGEXP\\($ADDR\\) at $ADDR
       REFCNT = 2
-      FLAGS = \(POK,pPOK,UTF8\)
-      PV = $ADDR "\(\?\^u:\\\\\\\\x\{100\}\)" \[UTF8 "\(\?\^u:\\\\\\\\x\{100\}\)"\]
+      FLAGS = \\(POK,pPOK,UTF8\\)
+      PV = $ADDR "\\(\\?\\^u:\\\\\\\\x\\{100\\}\\)" \\[UTF8 "\\(\\?\\^u:\\\\\\\\x\\{100\\}\\)"\\]
       CUR = 13
-      LEN = \d+
-      COMPFLAGS = 0x0 \(\)
-      EXTFLAGS = $ADDR \(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\)
-(?:      ENGINE = $ADDR \(STANDARD\)
-)?      INTFLAGS = 0x0(?: \(\))?
+      LEN = \\d+
+      COMPFLAGS = 0x0 \\(\\)
+      EXTFLAGS = 0x680100 \\(CHECK_ALL,USE_INTUIT_NOML,USE_INTUIT_ML\\)
+      ENGINE = $ADDR \\(STANDARD\\)
+      INTFLAGS = 0x0 \\(\\)
       NPARENS = 0
+      LOGICAL_NPARENS = 0
+      LOGICAL_TO_PARNO = 0x0
+      PARNO_TO_LOGICAL = 0x0
+      PARNO_TO_LOGICAL_NEXT = 0x0
       LASTPAREN = 0
       LASTCLOSEPAREN = 0
       MINLEN = 1
@@ -1250,22 +1246,98 @@ do_test('UTF-8 in a regular expression',
       SUBOFFSET = 0
       SUBCOFFSET = 0
       SUBBEG = 0x0
-(?:    ENGINE = $ADDR
-)?      MOTHER_RE = 0x0
       PAREN_NAMES = 0x0
       SUBSTRS = $ADDR
       PPRIVATE = $ADDR
       OFFS = $ADDR
-      QR_ANONCV = 0x0(?:
-      SAVED_COPY = 0x0)?') . '
+        \\[ 0:0 \\]
+      QR_ANONCV = 0x0
+      SAVED_COPY = 0x0
+      MOTHER_RE = 0x0
+');
+
+do_test('Branch Reset regexp',
+        qr/(?|(foo)|(bar))(?|(baz)|(bop))/,
+'SV = IV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = REGEXP\\($ADDR\\) at $ADDR
+    REFCNT = 1
+    FLAGS = \\(OBJECT,POK,FAKE,pPOK\\)
+    PV = $ADDR "\\(\\?\\^:\\(\\?\\|\\(foo\\)\\|\\(bar\\)\\)\\(\\?\\|\\(baz\\)\\|\\(bop\\)\\)\\)"
+    CUR = 35
+    LEN = 0
+    STASH = $ADDR\\s+"Regexp"
+    COMPFLAGS = 0x0 \\(\\)
+    EXTFLAGS = 0x0 \\(\\)
+    ENGINE = $ADDR \\(STANDARD\\)
+    INTFLAGS = 0x0 \\(\\)
+    NPARENS = 4
+    LOGICAL_NPARENS = 2
+    LOGICAL_TO_PARNO = $ADDR
+      \\{ 0, 1, 3 \\}
+    PARNO_TO_LOGICAL = $ADDR
+      \\{ 0, 1, 1, 2, 2 \\}
+    PARNO_TO_LOGICAL_NEXT = $ADDR
+      \\{ 0, 2, 0, 4, 0 \\}
+    LASTPAREN = 0
+    LASTCLOSEPAREN = 0
+    MINLEN = 6
+    MINLENRET = 6
+    GOFS = 0
+    PRE_PREFIX = 4
+    SUBLEN = 0
+    SUBOFFSET = 0
+    SUBCOFFSET = 0
+    SUBBEG = 0x0
     PAREN_NAMES = 0x0
     SUBSTRS = $ADDR
     PPRIVATE = $ADDR
     OFFS = $ADDR
-    QR_ANONCV = 0x0(?:
-    SAVED_COPY = 0x0)?
+      \\[ 0:0, 0:0, 0:0, 0:0, 0:0 \\]
+    QR_ANONCV = 0x0
+    SAVED_COPY = 0x0
+    MOTHER_RE = $ADDR
+    SV = REGEXP\\($ADDR\\) at $ADDR
+      REFCNT = 2
+      FLAGS = \\(POK,pPOK\\)
+      PV = $ADDR "\\(\\?\\^:\\(\\?\\|\\(foo\\)\\|\\(bar\\)\\)\\(\\?\\|\\(baz\\)\\|\\(bop\\)\\)\\)"
+      CUR = 35
+      LEN = \\d+
+      COMPFLAGS = 0x0 \\(\\)
+      EXTFLAGS = 0x0 \\(\\)
+      ENGINE = $ADDR \\(STANDARD\\)
+      INTFLAGS = 0x0 \\(\\)
+      NPARENS = 4
+      LOGICAL_NPARENS = 2
+      LOGICAL_TO_PARNO = $ADDR
+        \\{ 0, 1, 3 \\}
+      PARNO_TO_LOGICAL = $ADDR
+        \\{ 0, 1, 1, 2, 2 \\}
+      PARNO_TO_LOGICAL_NEXT = $ADDR
+        \\{ 0, 2, 0, 4, 0 \\}
+      LASTPAREN = 0
+      LASTCLOSEPAREN = 0
+      MINLEN = 6
+      MINLENRET = 6
+      GOFS = 0
+      PRE_PREFIX = 4
+      SUBLEN = 0
+      SUBOFFSET = 0
+      SUBCOFFSET = 0
+      SUBBEG = 0x0
+      PAREN_NAMES = 0x0
+      SUBSTRS = $ADDR
+      PPRIVATE = $ADDR
+      OFFS = $ADDR
+        \\[ 0:0, 0:0, 0:0, 0:0, 0:0 \\]
+      QR_ANONCV = 0x0
+      SAVED_COPY = 0x0
+      MOTHER_RE = 0x0
 ');
 
+
 { # perl #117793: Extend SvREFCNT* to work on any perl variable type
   my %hash;
   my $base_count = Devel::Peek::SvREFCNT(%hash);
@@ -1516,6 +1588,7 @@ dumpindent is 4 at -e line 1.
      |   FLAGS = (VOID,SLABBED,MORESIB)
      |   LINE = 1
      |   PACKAGE = "t"
+     |   HINTS = 00000100
      |     |   
 5    +--entersub UNOP(0xNNN) ===> 1 [leave 0xNNN]
          TARG = 1
Index: gnu/usr.bin/perl/ext/DynaLoader/DynaLoader_pm.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/DynaLoader/DynaLoader_pm.PL,v
diff -u -p -a -u -p -r1.5 DynaLoader_pm.PL
--- gnu/usr.bin/perl/ext/DynaLoader/DynaLoader_pm.PL	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/DynaLoader/DynaLoader_pm.PL	21 Feb 2024 15:47:02 -0000
@@ -90,7 +90,7 @@ package DynaLoader;
 # Tim.Bunce@ig.co.uk, August 1994
 
 BEGIN {
-    our $VERSION = '1.52';
+    our $VERSION = '1.54';
 }
 
 # Note: in almost any other piece of code "our" would have been a better
Index: gnu/usr.bin/perl/ext/DynaLoader/dl_dyld.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/DynaLoader/dl_dyld.xs,v
diff -u -p -a -u -p -r1.2 dl_dyld.xs
--- gnu/usr.bin/perl/ext/DynaLoader/dl_dyld.xs	5 Feb 2017 00:32:12 -0000	1.2
+++ gnu/usr.bin/perl/ext/DynaLoader/dl_dyld.xs	21 Feb 2024 15:47:02 -0000
@@ -104,7 +104,7 @@ static void TranslateError
     sv_setpv(MY_CXT.x_dl_last_error, error);
 }
 
-static char *dlopen(char *path, int mode /* mode is ignored */)
+static char *dlopen(char *path)
 {
     int dyld_result;
     NSObjectFileImage ofile;
@@ -159,13 +159,11 @@ void *
 dl_load_file(filename, flags=0)
     char *	filename
     int		flags
-    PREINIT:
-    int mode = 1;
     CODE:
     DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
     if (flags & 0x01)
 	Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
-    RETVAL = dlopen(filename, mode) ;
+    RETVAL = dlopen(filename);
     DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
Index: gnu/usr.bin/perl/ext/DynaLoader/dl_win32.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/DynaLoader/dl_win32.xs,v
diff -u -p -a -u -p -r1.3 dl_win32.xs
--- gnu/usr.bin/perl/ext/DynaLoader/dl_win32.xs	13 Feb 2019 21:15:22 -0000	1.3
+++ gnu/usr.bin/perl/ext/DynaLoader/dl_win32.xs	21 Feb 2024 15:47:02 -0000
@@ -188,7 +188,7 @@ void
 dl_install_xsub(perl_name, symref, filename="$Package")
     char *		perl_name
     void *		symref 
-    char *		filename
+    const char *	filename
     CODE:
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"dl_install_xsub(name=%s, symref=%x)\n",
 		      perl_name, symref));
Index: gnu/usr.bin/perl/ext/Errno/Errno_pm.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Errno/Errno_pm.PL,v
diff -u -p -a -u -p -r1.6 Errno_pm.PL
--- gnu/usr.bin/perl/ext/Errno/Errno_pm.PL	15 Feb 2023 01:36:30 -0000	1.6
+++ gnu/usr.bin/perl/ext/Errno/Errno_pm.PL	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
 use Config;
 use strict;
 
-our $VERSION = "1.36";
+our $VERSION = "1.37";
 
 my %err = ();
 
@@ -18,18 +18,11 @@ if ($Config{gccversion} ne '' && $^O eq 
     # MinGW complains "warning: #pragma system_header ignored outside include
     # file" if the header files are processed individually, so include them
     # all in .c file and process that instead.
-    my %seen;
     open INCS, '>', 'includes.c' or
 	die "Cannot open includes.c";
     foreach $file (@files) {
 	next if $file eq 'errno.c';
 	next unless -f $file;
-	if ( $file eq 'avx512vpopcntdqvlintrin.h' || $file eq 'avx512bwintrin.h' ) {
-		# "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead."
-		# "Never use <avx512vpopcntdqvlintrin.h> directly; include <immintrin.h> instead."
-		$file = 'immintrin.h';
-	}
-	next if ++$seen{$file} > 1;
 	print INCS qq[#include "$file"\n];
     }
     close INCS;
@@ -114,7 +107,7 @@ sub default_cpp {
 }
 
 sub get_files {
-    my %file = ();
+    my @file;
     # When cross-compiling we may store a path for gcc's "sysroot" option:
     my $sysroot = $Config{sysroot} || '';
     my $linux_errno_h;
@@ -128,19 +121,19 @@ sub get_files {
 
     # VMS keeps its include files in system libraries
     if ($^O eq 'VMS') {
-	$file{'Sys$Library:DECC$RTLDEF.TLB'} = 1;
+	push(@file, 'Sys$Library:DECC$RTLDEF.TLB');
     } elsif ($^O eq 'os390') {
 	# OS/390 C compiler doesn't generate #file or #line directives
         # and it does not tag the header as 1047 (EBCDIC), so make a local
         # copy and tag it
         my $cp = `cp /usr/include/errno.h ./errno.h`;
         my $chtag = `chtag -t -cIBM-1047 ./errno.h`;
-	$file{'./errno.h'} = 1;
+	push(@file, './errno.h');
     } elsif ($Config{archname} eq 'arm-riscos') {
 	# Watch out for cross compiling for RISC OS
 	my $dep = `echo "#include <errno.h>" | gcc -E -M -`;
 	if ($dep =~ /(\S+errno\.h)/) {
-	     $file{$1} = 1;
+	     push(@file, $1);
 	}
     } elsif ($^O eq 'linux' &&
 	      $Config{gccversion} ne '' && 
@@ -148,14 +141,14 @@ sub get_files {
 	      # might be using, say, Intel's icc
 	      $linux_errno_h
 	     ) {
-	$file{$linux_errno_h} = 1;
+	push(@file, $linux_errno_h);
     } elsif ($^O eq 'haiku') {
 	# hidden in a special place
-	$file{'/boot/system/develop/headers/posix/errno.h'} = 1;
+	push(@file, '/boot/system/develop/headers/posix/errno.h');
 
     } elsif ($^O eq 'vos') {
 	# avoid problem where cpp returns non-POSIX pathnames
-	$file{'/system/include_library/errno.h'} = 1;
+	push(@file, '/system/include_library/errno.h');
     } else {
 	open(CPPI, '>', 'errno.c') or
 	    die "Cannot open errno.c";
@@ -183,16 +176,28 @@ sub get_files {
 		if (/$pat/o) {
 		   my $f = $1;
 		   $f =~ s,\\\\,/,g;
-		   $file{$f} = 1;
+		   push(@file, $f);
 		}
 	    }
 	    else {
-		$file{$1} = 1 if /$pat/o;
+		push(@file, $1) if /$pat/o;
 	    }
 	}
 	close(CPPO);
     }
-    return keys %file;
+    return uniq(@file);
+}
+
+# 
+#
+sub uniq
+{
+	# At this point List::Util::uniq appears not to be usable so
+	# roll our own.
+	#
+	# Returns a list with unique values, while keeping the order
+	#
+	return do { my %seen; grep { !$seen{$_}++ } @_ };
 }
 
 sub write_errno_pm {
@@ -364,7 +369,7 @@ ESQ
 
     if ($IsMSWin32) {
 	print "    WINSOCK => [qw(\n";
-	$k = join(" ", grep { /^WSAE/ } keys %err);
+	$k = join(" ", grep { /^WSAE/ } sort keys %err);
 	$k =~ s/(.{50,70})\s/$1\n\t/g;
 	print "\t",$k,"\n    )],\n";
     }
Index: gnu/usr.bin/perl/ext/Errno/t/Errno.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Errno/t/Errno.t,v
diff -u -p -a -u -p -r1.1.1.5 Errno.t
--- gnu/usr.bin/perl/ext/Errno/t/Errno.t	25 Mar 2013 20:08:44 -0000	1.1.1.5
+++ gnu/usr.bin/perl/ext/Errno/t/Errno.t	21 Feb 2024 15:47:02 -0000
@@ -14,29 +14,33 @@ BAIL_OUT("No errno's are exported") unle
 my $err = $Errno::EXPORT_OK[0];
 my $num = &{"Errno::$err"};
 
-is($num, &{"Errno::$err"});
+is($num, &{"Errno::$err"},
+    'element in @Errno::EXPORT_OK found via sub call');
 
 $! = $num;
-ok(exists $!{$err});
+ok(exists $!{$err}, 'entry in %! reflects current value of $!');
 
 $! = 0;
-ok(! $!{$err});
+ok(! $!{$err}, 'entry in %! reflects the current value of $!');
 
-ok(join(",",sort keys(%!)) eq join(",",sort @Errno::EXPORT_OK));
+ok(join(",",sort keys(%!)) eq join(",",sort @Errno::EXPORT_OK),
+    'keys of %! match keys of @Errno::EXPORT_OK');
 
 eval { exists $!{[]} };
-ok(! $@);
+ok(! $@, "no exception recorded in %! when element's key is '[]'");
 
 eval {$!{$err} = "qunckkk" };
-like($@, qr/^ERRNO hash is read only!/);
+like($@, qr/^ERRNO hash is read only!/,
+    "can't assign to ERRNO hash: 'ERRNO hash is read only!'");
 
 eval {delete $!{$err}};
-like($@, qr/^ERRNO hash is read only!/);
+like($@, qr/^ERRNO hash is read only!/,
+    "can't delete from ERRNO hash: 'ERRNO hash is read only!'");
 
 # The following tests are in trouble if some OS picks errno values
 # through Acme::MetaSyntactic::batman
-is($!{EFLRBBB}, "");
-ok(! exists($!{EFLRBBB}));
+is($!{EFLRBBB}, "", "non-existent entry in ERRNO hash");
+ok(! exists($!{EFLRBBB}), "non-existent entry in ERRNO hash");
 
 SKIP: {
     skip("Errno does not have EINVAL", 1)
Index: gnu/usr.bin/perl/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm,v
diff -u -p -a -u -p -r1.5 Miniperl.pm
--- gnu/usr.bin/perl/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm	21 Feb 2024 15:47:02 -0000
@@ -5,7 +5,7 @@ use Exporter 'import';
 use ExtUtils::Embed 1.31, qw(xsi_header xsi_protos xsi_body);
 
 our @EXPORT = qw(writemain);
-our $VERSION = '1.11';
+our $VERSION = '1.13';
 
 # blead will run this with miniperl, hence we can't use autodie or File::Temp
 my $temp;
@@ -99,9 +99,6 @@ main(int argc, char **argv, char **env)
 #ifndef NO_ENV_ARRAY_IN_MAIN
     PERL_UNUSED_ARG(env);
 #endif
-#ifndef PERL_USE_SAFE_PUTENV
-    PL_use_safe_putenv = FALSE;
-#endif /* PERL_USE_SAFE_PUTENV */
 
     /* if user wants control of gprof profiling off by default */
     /* noop unless Configure is given -Accflags=-DPERL_GPROF_CONTROL */
@@ -138,8 +135,29 @@ main(int argc, char **argv, char **env)
 	PL_perl_destruct_level = 0;
     }
     PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
-    if (!perl_parse(my_perl, xs_init, argc, argv, (char **)NULL))
+    if (!perl_parse(my_perl, xs_init, argc, argv, (char **)NULL)) {
+
+        /* perl_parse() may end up starting its own run loops, which
+         * might end up "leaking" PL_restartop from the parse phase into
+         * the run phase which then ends up confusing run_body(). This
+         * leakage shouldn't happen and if it does its a bug.
+         *
+         * Note we do not do this assert in perl_run() or perl_parse()
+         * as there are modules out there which explicitly set
+         * PL_restartop before calling perl_run() directly from XS code
+         * (Coro), and it is conceivable PL_restartop could be set prior
+         * to calling perl_parse() by XS code as well.
+         *
+         * What we want to check is that the top level perl_parse(),
+         * perl_run() pairing does not allow a leaking PL_restartop, as
+         * that indicates a bug in perl. By putting the assert here we
+         * can validate that Perl itself is operating correctly without
+         * risking breakage to XS code under DEBUGGING. - Yves
+         */
+        assert(!PL_restartop);
+
         perl_run(my_perl);
+    }
 
 #ifndef PERL_MICRO
     /* Unregister our signal handler before destroying my_perl */
@@ -153,19 +171,6 @@ main(int argc, char **argv, char **env)
     exitstatus = perl_destruct(my_perl);
 
     perl_free(my_perl);
-
-#if defined(USE_ENVIRON_ARRAY) && defined(PERL_TRACK_MEMPOOL) && !defined(NO_ENV_ARRAY_IN_MAIN)
-    /*
-     * The old environment may have been freed by perl_free()
-     * when PERL_TRACK_MEMPOOL is defined, but without having
-     * been restored by perl_destruct() before (this is only
-     * done if destruct_level > 0).
-     *
-     * It is important to have a valid environment for atexit()
-     * routines that are eventually called.
-     */
-    environ = env;
-#endif
 
     PERL_SYS_TERM();
 
Index: gnu/usr.bin/perl/ext/File-Find/lib/File/Find.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Find/lib/File/Find.pm,v
diff -u -p -a -u -p -r1.5 Find.pm
--- gnu/usr.bin/perl/ext/File-Find/lib/File/Find.pm	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/File-Find/lib/File/Find.pm	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@ use 5.006;
 use strict;
 use warnings;
 use warnings::register;
-our $VERSION = '1.40';
+our $VERSION = '1.43';
 use Exporter 'import';
 require Cwd;
 
@@ -43,25 +43,35 @@ sub contract_name {
     return $abs_name;
 }
 
+sub _is_absolute {
+    return $_[0] =~ m|^(?:[A-Za-z]:)?/| if $Is_Win32;
+    return substr($_[0], 0, 1) eq '/';
+}
+
+sub _is_root {
+    return $_[0] =~ m|^(?:[A-Za-z]:)?/\z| if $Is_Win32;
+    return $_[0] eq '/';
+}
+
 sub PathCombine($$) {
     my ($Base,$Name) = @_;
     my $AbsName;
 
-    if (substr($Name,0,1) eq '/') {
-	$AbsName= $Name;
+    if (_is_absolute($Name)) {
+        $AbsName= $Name;
     }
     else {
-	$AbsName= contract_name($Base,$Name);
+        $AbsName= contract_name($Base,$Name);
     }
 
     # (simple) check for recursion
     my $newlen= length($AbsName);
     if ($newlen <= length($Base)) {
-	if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/')
-	    && $AbsName eq substr($Base,0,$newlen))
-	{
-	    return undef;
-	}
+        if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/')
+            && $AbsName eq substr($Base,0,$newlen))
+        {
+            return undef;
+        }
     }
     return $AbsName;
 }
@@ -73,37 +83,40 @@ sub Follow_SymLink($) {
     ($DEV, $INO)= lstat $AbsName;
 
     while (-l _) {
-	if ($SLnkSeen{$DEV, $INO}++) {
-	    if ($follow_skip < 2) {
-		die "$AbsName is encountered a second time";
-	    }
-	    else {
-		return undef;
-	    }
-	}
-	$NewName= PathCombine($AbsName, readlink($AbsName));
-	unless(defined $NewName) {
-	    if ($follow_skip < 2) {
-		die "$AbsName is a recursive symbolic link";
-	    }
-	    else {
-		return undef;
-	    }
-	}
-	else {
-	    $AbsName= $NewName;
-	}
-	($DEV, $INO) = lstat($AbsName);
-	return undef unless defined $DEV;  #  dangling symbolic link
+        if ($SLnkSeen{$DEV, $INO}++) {
+            if ($follow_skip < 2) {
+                die "$AbsName is encountered a second time";
+            }
+            else {
+                return undef;
+            }
+        }
+        my $Link = readlink($AbsName);
+        # canonicalize directory separators
+        $Link =~ s|\\|/|g if $Is_Win32;
+        $NewName= PathCombine($AbsName, $Link);
+        unless(defined $NewName) {
+            if ($follow_skip < 2) {
+                die "$AbsName is a recursive symbolic link";
+            }
+            else {
+                return undef;
+            }
+        }
+        else {
+            $AbsName= $NewName;
+        }
+        ($DEV, $INO) = lstat($AbsName);
+        return undef unless defined $DEV;  #  dangling symbolic link
     }
 
     if ($full_check && defined $DEV && $SLnkSeen{$DEV, $INO}++) {
-	if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) {
-	    die "$AbsName encountered a second time";
-	}
-	else {
-	    return undef;
-	}
+        if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) {
+            die "$AbsName encountered a second time";
+        }
+        else {
+            return undef;
+        }
     }
 
     return $AbsName;
@@ -123,6 +136,7 @@ sub is_tainted_pp {
     return length($@) != 0;
 }
 
+
 sub _find_opt {
     my $wanted = shift;
     return unless @_;
@@ -133,25 +147,25 @@ sub _find_opt {
 
     local %SLnkSeen;
     local ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow,
-	$follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat,
-	$pre_process, $post_process, $dangling_symlinks);
+        $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat,
+        $pre_process, $post_process, $dangling_symlinks);
     local($dir, $name, $fullname, $prune);
     local *_ = \my $a;
 
     my $cwd            = $wanted->{bydepth} ? Cwd::fastcwd() : Cwd::getcwd();
     if ($Is_VMS) {
-	# VMS returns this by default in VMS format which just doesn't
-	# work for the rest of this module.
-	$cwd = VMS::Filespec::unixpath($cwd);
-
-	# Apparently this is not expected to have a trailing space.
-	# To attempt to make VMS/UNIX conversions mostly reversible,
-	# a trailing slash is needed.  The run-time functions ignore the
-	# resulting double slash, but it causes the perl tests to fail.
+        # VMS returns this by default in VMS format which just doesn't
+        # work for the rest of this module.
+        $cwd = VMS::Filespec::unixpath($cwd);
+
+        # Apparently this is not expected to have a trailing space.
+        # To attempt to make VMS/UNIX conversions mostly reversible,
+        # a trailing slash is needed.  The run-time functions ignore the
+        # resulting double slash, but it causes the perl tests to fail.
         $cwd =~ s#/\z##;
 
-	# This comes up in upper case now, but should be lower.
-	# In the future this could be exact case, no need to change.
+        # This comes up in upper case now, but should be lower.
+        # In the future this could be exact case, no need to change.
     }
     my $cwd_untainted  = $cwd;
     my $check_t_cwd    = 1;
@@ -178,109 +192,107 @@ sub _find_opt {
 
     Proc_Top_Item:
     foreach my $TOP (@_) {
-	my $top_item = $TOP;
-	$top_item = VMS::Filespec::unixify($top_item) if $Is_VMS;
+        my $top_item = $TOP;
+        $top_item = VMS::Filespec::unixify($top_item) if $Is_VMS;
 
-	($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
+        ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item;
 
-	if ($Is_Win32) {
-	    $top_item =~ s|[/\\]\z||
-	      unless $top_item =~ m{^(?:\w:)?[/\\]$};
-	}
-	else {
-	    $top_item =~ s|/\z|| unless $top_item eq '/';
-	}
-
-	$Is_Dir= 0;
-
-	if ($follow) {
-
-	    if (substr($top_item,0,1) eq '/') {
-		$abs_dir = $top_item;
-	    }
-	    elsif ($top_item eq $File::Find::current_dir) {
-		$abs_dir = $cwd;
-	    }
-	    else {  # care about any  ../
-		$top_item =~ s/\.dir\z//i if $Is_VMS;
-		$abs_dir = contract_name("$cwd/",$top_item);
-	    }
-	    $abs_dir= Follow_SymLink($abs_dir);
-	    unless (defined $abs_dir) {
-		if ($dangling_symlinks) {
-		    if (ref $dangling_symlinks eq 'CODE') {
-			$dangling_symlinks->($top_item, $cwd);
-		    } else {
-			warnings::warnif "$top_item is a dangling symbolic link\n";
-		    }
-		}
-		next Proc_Top_Item;
-	    }
-
-	    if (-d _) {
-		$top_item =~ s/\.dir\z//i if $Is_VMS;
-		_find_dir_symlnk($wanted, $abs_dir, $top_item);
-		$Is_Dir= 1;
-	    }
-	}
-	else { # no follow
-	    $topdir = $top_item;
-	    unless (defined $topnlink) {
-		warnings::warnif "Can't stat $top_item: $!\n";
-		next Proc_Top_Item;
-	    }
-	    if (-d _) {
-		$top_item =~ s/\.dir\z//i if $Is_VMS;
-		_find_dir($wanted, $top_item, $topnlink);
-		$Is_Dir= 1;
-	    }
-	    else {
-		$abs_dir= $top_item;
-	    }
-	}
-
-	unless ($Is_Dir) {
-	    unless (($_,$dir) = File::Basename::fileparse($abs_dir)) {
-		($dir,$_) = ('./', $top_item);
-	    }
-
-	    $abs_dir = $dir;
-	    if (( $untaint ) && (is_tainted($dir) )) {
-		( $abs_dir ) = $dir =~ m|$untaint_pat|;
-		unless (defined $abs_dir) {
-		    if ($untaint_skip == 0) {
-			die "directory $dir is still tainted";
-		    }
-		    else {
-			next Proc_Top_Item;
-		    }
-		}
-	    }
-
-	    unless ($no_chdir || chdir $abs_dir) {
-		warnings::warnif "Couldn't chdir $abs_dir: $!\n";
-		next Proc_Top_Item;
-	    }
-
-	    $name = $abs_dir . $_; # $File::Find::name
-	    $_ = $name if $no_chdir;
-
-	    { $wanted_callback->() }; # protect against wild "next"
-
-	}
-
-	unless ( $no_chdir ) {
-	    if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) {
-		( $cwd_untainted ) = $cwd =~ m|$untaint_pat|;
-		unless (defined $cwd_untainted) {
-		    die "insecure cwd in find(depth)";
-		}
-		$check_t_cwd = 0;
-	    }
-	    unless (chdir $cwd_untainted) {
-		die "Can't cd to $cwd: $!\n";
-	    }
-	}
+        # canonicalize directory separators
+        $top_item =~ s|[/\\]|/|g if $Is_Win32;
+
+        # no trailing / unless path is root
+        $top_item =~ s|/\z|| unless _is_root($top_item);
+
+        $Is_Dir= 0;
+
+        if ($follow) {
+
+            if (_is_absolute($top_item)) {
+                $abs_dir = $top_item;
+            }
+            elsif ($top_item eq $File::Find::current_dir) {
+                $abs_dir = $cwd;
+            }
+            else {  # care about any  ../
+                $top_item =~ s/\.dir\z//i if $Is_VMS;
+                $abs_dir = contract_name("$cwd/",$top_item);
+            }
+            $abs_dir= Follow_SymLink($abs_dir);
+            unless (defined $abs_dir) {
+                if ($dangling_symlinks) {
+                    if (ref $dangling_symlinks eq 'CODE') {
+                        $dangling_symlinks->($top_item, $cwd);
+                    } else {
+                        warnings::warnif "$top_item is a dangling symbolic link\n";
+                    }
+                }
+                next Proc_Top_Item;
+            }
+
+            if (-d _) {
+                $top_item =~ s/\.dir\z//i if $Is_VMS;
+                _find_dir_symlnk($wanted, $abs_dir, $top_item);
+                $Is_Dir= 1;
+            }
+        }
+        else { # no follow
+            $topdir = $top_item;
+            unless (defined $topnlink) {
+                warnings::warnif "Can't stat $top_item: $!\n";
+                next Proc_Top_Item;
+            }
+            if (-d _) {
+                $top_item =~ s/\.dir\z//i if $Is_VMS;
+                _find_dir($wanted, $top_item, $topnlink);
+                $Is_Dir= 1;
+            }
+            else {
+                $abs_dir= $top_item;
+            }
+        }
+
+        unless ($Is_Dir) {
+            unless (($_,$dir) = File::Basename::fileparse($abs_dir)) {
+                ($dir,$_) = ('./', $top_item);
+            }
+
+            $abs_dir = $dir;
+            if (( $untaint ) && (is_tainted($dir) )) {
+                ( $abs_dir ) = $dir =~ m|$untaint_pat|;
+                unless (defined $abs_dir) {
+                    if ($untaint_skip == 0) {
+                        die "directory $dir is still tainted";
+                    }
+                    else {
+                        next Proc_Top_Item;
+                    }
+                }
+            }
+
+            unless ($no_chdir || chdir $abs_dir) {
+                warnings::warnif "Couldn't chdir $abs_dir: $!\n";
+                next Proc_Top_Item;
+            }
+
+            $name = $abs_dir . $_; # $File::Find::name
+            $_ = $name if $no_chdir;
+
+            { $wanted_callback->() }; # protect against wild "next"
+
+        }
+
+        unless ( $no_chdir ) {
+            if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) {
+                ( $cwd_untainted ) = $cwd =~ m|$untaint_pat|;
+                unless (defined $cwd_untainted) {
+                    die "insecure cwd in find(depth)";
+                }
+                $check_t_cwd = 0;
+            }
+            unless (chdir $cwd_untainted) {
+                die "Can't cd to $cwd: $!\n";
+            }
+        }
     }
 }
 
@@ -304,179 +316,170 @@ sub _find_dir($$$) {
     my $tainted = 0;
     my $no_nlink;
 
-    if ($Is_Win32) {
-	$dir_pref
-	  = ($p_dir =~ m{^(?:\w:[/\\]?|[/\\])$} ? $p_dir : "$p_dir/" );
-    } elsif ($Is_VMS) {
-
-	#	VMS is returning trailing .dir on directories
-	#	and trailing . on files and symbolic links
-	#	in UNIX syntax.
-	#
+    if ($Is_VMS) {
+        # VMS is returning trailing .dir on directories
+        # and trailing . on files and symbolic links
+        # in UNIX syntax.
+        #
 
-	$p_dir =~ s/\.(dir)?$//i unless $p_dir eq '.';
+        $p_dir =~ s/\.(dir)?$//i unless $p_dir eq '.';
 
-	$dir_pref = ($p_dir =~ m/[\]>]+$/ ? $p_dir : "$p_dir/" );
+        $dir_pref = ($p_dir =~ m/[\]>]+$/ ? $p_dir : "$p_dir/" );
     }
     else {
-	$dir_pref= ( $p_dir eq '/' ? '/' : "$p_dir/" );
+        $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/";
     }
 
     local ($dir, $name, $prune);
 
     unless ( $no_chdir || ($p_dir eq $File::Find::current_dir)) {
-	my $udir = $p_dir;
-	if (( $untaint ) && (is_tainted($p_dir) )) {
-	    ( $udir ) = $p_dir =~ m|$untaint_pat|;
-	    unless (defined $udir) {
-		if ($untaint_skip == 0) {
-		    die "directory $p_dir is still tainted";
-		}
-		else {
-		    return;
-		}
-	    }
-	}
-	unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
-	    warnings::warnif "Can't cd to $udir: $!\n";
-	    return;
-	}
+        my $udir = $p_dir;
+        if (( $untaint ) && (is_tainted($p_dir) )) {
+            ( $udir ) = $p_dir =~ m|$untaint_pat|;
+            unless (defined $udir) {
+                if ($untaint_skip == 0) {
+                    die "directory $p_dir is still tainted";
+                }
+                else {
+                    return;
+                }
+            }
+        }
+        unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
+            warnings::warnif "Can't cd to $udir: $!\n";
+            return;
+        }
     }
 
     # push the starting directory
     push @Stack,[$CdLvl,$p_dir,$dir_rel,-1]  if  $bydepth;
 
     while (defined $SE) {
-	unless ($bydepth) {
-	    $dir= $p_dir; # $File::Find::dir
-	    $name= $dir_name; # $File::Find::name
-	    $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
-	    # prune may happen here
-	    $prune= 0;
-	    { $wanted_callback->() };	# protect against wild "next"
-	    next if $prune;
-	}
-
-	# change to that directory
-	unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
-	    my $udir= $dir_rel;
-	    if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) {
-		( $udir ) = $dir_rel =~ m|$untaint_pat|;
-		unless (defined $udir) {
-		    if ($untaint_skip == 0) {
-			die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted";
-		    } else { # $untaint_skip == 1
-			next;
-		    }
-		}
-	    }
-	    unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
-		warnings::warnif "Can't cd to (" .
-		    ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n";
-		next;
-	    }
-	    $CdLvl++;
-	}
-
-	$dir= $dir_name; # $File::Find::dir
-
-	# Get the list of files in the current directory.
-    my $dh;
-	unless (opendir $dh, ($no_chdir ? $dir_name : $File::Find::current_dir)) {
-	    warnings::warnif "Can't opendir($dir_name): $!\n";
-	    next;
-	}
-	@filenames = readdir $dh;
-	closedir($dh);
-	@filenames = $pre_process->(@filenames) if $pre_process;
-	push @Stack,[$CdLvl,$dir_name,"",-2]   if $post_process;
+        unless ($bydepth) {
+            $dir= $p_dir; # $File::Find::dir
+            $name= $dir_name; # $File::Find::name
+            $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
+            # prune may happen here
+            $prune= 0;
+            { $wanted_callback->() };   # protect against wild "next"
+            next if $prune;
+        }
+
+        # change to that directory
+        unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
+            my $udir= $dir_rel;
+            if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) {
+                ( $udir ) = $dir_rel =~ m|$untaint_pat|;
+                unless (defined $udir) {
+                    if ($untaint_skip == 0) {
+                        die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted";
+                    } else { # $untaint_skip == 1
+                        next;
+                    }
+                }
+            }
+            unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) {
+                warnings::warnif "Can't cd to (" .
+                    ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n";
+                next;
+            }
+            $CdLvl++;
+        }
+
+        $dir= $dir_name; # $File::Find::dir
+
+        # Get the list of files in the current directory.
+        my $dh;
+        unless (opendir $dh, ($no_chdir ? $dir_name : $File::Find::current_dir)) {
+            warnings::warnif "Can't opendir($dir_name): $!\n";
+            next;
+        }
+        @filenames = readdir $dh;
+        closedir($dh);
+        @filenames = $pre_process->(@filenames) if $pre_process;
+        push @Stack,[$CdLvl,$dir_name,"",-2]   if $post_process;
 
-	# default: use whatever was specified
+        # default: use whatever was specified
         # (if $nlink >= 2, and $avoid_nlink == 0, this will switch back)
         $no_nlink = $avoid_nlink;
         # if dir has wrong nlink count, force switch to slower stat method
         $no_nlink = 1 if ($nlink < 2);
 
-	if ($nlink == 2 && !$no_nlink) {
-	    # This dir has no subdirectories.
-	    for my $FN (@filenames) {
-		if ($Is_VMS) {
-		# Big hammer here - Compensate for VMS trailing . and .dir
-		# No win situation until this is changed, but this
-		# will handle the majority of the cases with breaking the fewest
-
-		    $FN =~ s/\.dir\z//i;
-		    $FN =~ s#\.$## if ($FN ne '.');
-		}
-		next if $FN =~ $File::Find::skip_pattern;
-		
-		$name = $dir_pref . $FN; # $File::Find::name
-		$_ = ($no_chdir ? $name : $FN); # $_
-		{ $wanted_callback->() }; # protect against wild "next"
-	    }
-
-	}
-	else {
-	    # This dir has subdirectories.
-	    $subcount = $nlink - 2;
-
-	    # HACK: insert directories at this position, so as to preserve
-	    # the user pre-processed ordering of files (thus ensuring
-	    # directory traversal is in user sorted order, not at random).
+        if ($nlink == 2 && !$no_nlink) {
+            # This dir has no subdirectories.
+            for my $FN (@filenames) {
+                if ($Is_VMS) {
+                    # Big hammer here - Compensate for VMS trailing . and .dir
+                    # No win situation until this is changed, but this
+                    # will handle the majority of the cases with breaking the fewest
+
+                    $FN =~ s/\.dir\z//i;
+                    $FN =~ s#\.$## if ($FN ne '.');
+                }
+                next if $FN =~ $File::Find::skip_pattern;
+
+                $name = $dir_pref . $FN; # $File::Find::name
+                $_ = ($no_chdir ? $name : $FN); # $_
+                { $wanted_callback->() }; # protect against wild "next"
+            }
+
+        }
+        else {
+            # This dir has subdirectories.
+            $subcount = $nlink - 2;
+
+            # HACK: insert directories at this position, so as to preserve
+            # the user pre-processed ordering of files (thus ensuring
+            # directory traversal is in user sorted order, not at random).
             my $stack_top = @Stack;
 
-	    for my $FN (@filenames) {
-		next if $FN =~ $File::Find::skip_pattern;
-		if ($subcount > 0 || $no_nlink) {
-		    # Seen all the subdirs?
-		    # check for directoriness.
-		    # stat is faster for a file in the current directory
-		    $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3];
-
-		    if (-d _) {
-			--$subcount;
-			$FN =~ s/\.dir\z//i if $Is_VMS;
-			# HACK: replace push to preserve dir traversal order
-			#push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink];
-			splice @Stack, $stack_top, 0,
-			         [$CdLvl,$dir_name,$FN,$sub_nlink];
-		    }
-		    else {
-			$name = $dir_pref . $FN; # $File::Find::name
-			$_= ($no_chdir ? $name : $FN); # $_
-			{ $wanted_callback->() }; # protect against wild "next"
-		    }
-		}
-		else {
-		    $name = $dir_pref . $FN; # $File::Find::name
-		    $_= ($no_chdir ? $name : $FN); # $_
-		    { $wanted_callback->() }; # protect against wild "next"
-		}
-	    }
-	}
+            for my $FN (@filenames) {
+                next if $FN =~ $File::Find::skip_pattern;
+                if ($subcount > 0 || $no_nlink) {
+                    # Seen all the subdirs?
+                    # check for directoriness.
+                    # stat is faster for a file in the current directory
+                    $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3];
+
+                    if (-d _) {
+                        --$subcount;
+                        $FN =~ s/\.dir\z//i if $Is_VMS;
+                        # HACK: replace push to preserve dir traversal order
+                        #push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink];
+                        splice @Stack, $stack_top, 0,
+                                 [$CdLvl,$dir_name,$FN,$sub_nlink];
+                    }
+                    else {
+                        $name = $dir_pref . $FN; # $File::Find::name
+                        $_= ($no_chdir ? $name : $FN); # $_
+                        { $wanted_callback->() }; # protect against wild "next"
+                    }
+                }
+                else {
+                    $name = $dir_pref . $FN; # $File::Find::name
+                    $_= ($no_chdir ? $name : $FN); # $_
+                    { $wanted_callback->() }; # protect against wild "next"
+                }
+            }
+        }
     }
     continue {
-	while ( defined ($SE = pop @Stack) ) {
-	    ($Level, $p_dir, $dir_rel, $nlink) = @$SE;
-	    if ($CdLvl > $Level && !$no_chdir) {
-		my $tmp;
-		if ($Is_VMS) {
-		    $tmp = '[' . ('-' x ($CdLvl-$Level)) . ']';
-		}
-		else {
-		    $tmp = join('/',('..') x ($CdLvl-$Level));
-		}
-		die "Can't cd to $tmp from $dir_name: $!"
-		    unless chdir ($tmp);
-		$CdLvl = $Level;
-	    }
-
-	    if ($Is_Win32) {
-		$dir_name = ($p_dir =~ m{^(?:\w:[/\\]?|[/\\])$}
-		    ? "$p_dir$dir_rel" : "$p_dir/$dir_rel");
-		$dir_pref = "$dir_name/";
-	    }
-	    elsif ($^O eq 'VMS') {
+        while ( defined ($SE = pop @Stack) ) {
+            ($Level, $p_dir, $dir_rel, $nlink) = @$SE;
+            if ($CdLvl > $Level && !$no_chdir) {
+                my $tmp;
+                if ($Is_VMS) {
+                    $tmp = '[' . ('-' x ($CdLvl-$Level)) . ']';
+                }
+                else {
+                    $tmp = join('/',('..') x ($CdLvl-$Level));
+                }
+                die "Can't cd to $tmp from $dir_name: $!"
+                    unless chdir ($tmp);
+                $CdLvl = $Level;
+            }
+
+            if ($^O eq 'VMS') {
                 if ($p_dir =~ m/[\]>]+$/) {
                     $dir_name = $p_dir;
                     $dir_name =~ s/([\]>]+)$/.$dir_rel$1/;
@@ -486,34 +489,34 @@ sub _find_dir($$$) {
                     $dir_name = "$p_dir/$dir_rel";
                     $dir_pref = "$dir_name/";
                 }
-	    }
-	    else {
-		$dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
-		$dir_pref = "$dir_name/";
-	    }
+            }
+            else {
+                $dir_name = _is_root($p_dir) ? "$p_dir$dir_rel" : "$p_dir/$dir_rel";
+                $dir_pref = "$dir_name/";
+            }
 
-	    if ( $nlink == -2 ) {
-		$name = $dir = $p_dir; # $File::Find::name / dir
+            if ( $nlink == -2 ) {
+                $name = $dir = $p_dir; # $File::Find::name / dir
                 $_ = $File::Find::current_dir;
-		$post_process->();		# End-of-directory processing
-	    }
-	    elsif ( $nlink < 0 ) {  # must be finddepth, report dirname now
-		$name = $dir_name;
-		if ( substr($name,-2) eq '/.' ) {
-		    substr($name, length($name) == 2 ? -1 : -2) = '';
-		}
-		$dir = $p_dir;
-		$_ = ($no_chdir ? $dir_name : $dir_rel );
-		if ( substr($_,-2) eq '/.' ) {
-		    substr($_, length($_) == 2 ? -1 : -2) = '';
-		}
-		{ $wanted_callback->() }; # protect against wild "next"
-	     }
-	     else {
-		push @Stack,[$CdLvl,$p_dir,$dir_rel,-1]  if  $bydepth;
-		last;
-	    }
-	}
+                $post_process->();              # End-of-directory processing
+            }
+            elsif ( $nlink < 0 ) {  # must be finddepth, report dirname now
+                $name = $dir_name;
+                if ( substr($name,-2) eq '/.' ) {
+                    substr($name, length($name) == 2 ? -1 : -2) = '';
+                }
+                $dir = $p_dir;
+                $_ = ($no_chdir ? $dir_name : $dir_rel );
+                if ( substr($_,-2) eq '/.' ) {
+                    substr($_, length($_) == 2 ? -1 : -2) = '';
+                }
+                { $wanted_callback->() }; # protect against wild "next"
+             }
+             else {
+                push @Stack,[$CdLvl,$p_dir,$dir_rel,-1]  if  $bydepth;
+                last;
+            }
+        }
     }
 }
 
@@ -540,172 +543,172 @@ sub _find_dir_symlnk($$$) {
     my $tainted = 0;
     my $ok = 1;
 
-    $dir_pref = ( $p_dir   eq '/' ? '/' : "$p_dir/" );
-    $loc_pref = ( $dir_loc eq '/' ? '/' : "$dir_loc/" );
+    $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/";
+    $loc_pref = _is_root($dir_loc) ? $dir_loc : "$dir_loc/";
 
     local ($dir, $name, $fullname, $prune);
 
     unless ($no_chdir) {
-	# untaint the topdir
-	if (( $untaint ) && (is_tainted($dir_loc) )) {
-	    ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted
-	     # once untainted, $updir_loc is pushed on the stack (as parent directory);
-	    # hence, we don't need to untaint the parent directory every time we chdir
-	    # to it later
-	    unless (defined $updir_loc) {
-		if ($untaint_skip == 0) {
-		    die "directory $dir_loc is still tainted";
-		}
-		else {
-		    return;
-		}
-	    }
-	}
-	$ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir);
-	unless ($ok) {
-	    warnings::warnif "Can't cd to $updir_loc: $!\n";
-	    return;
-	}
+        # untaint the topdir
+        if (( $untaint ) && (is_tainted($dir_loc) )) {
+            ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted
+            # once untainted, $updir_loc is pushed on the stack (as parent directory);
+            # hence, we don't need to untaint the parent directory every time we chdir
+            # to it later
+            unless (defined $updir_loc) {
+                if ($untaint_skip == 0) {
+                    die "directory $dir_loc is still tainted";
+                }
+                else {
+                    return;
+                }
+            }
+        }
+        $ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir);
+        unless ($ok) {
+            warnings::warnif "Can't cd to $updir_loc: $!\n";
+            return;
+        }
     }
 
     push @Stack,[$dir_loc,$updir_loc,$p_dir,$dir_rel,-1]  if  $bydepth;
 
     while (defined $SE) {
 
-	unless ($bydepth) {
-	    # change (back) to parent directory (always untainted)
-	    unless ($no_chdir) {
-		unless (chdir $updir_loc) {
-		    warnings::warnif "Can't cd to $updir_loc: $!\n";
-		    next;
-		}
-	    }
-	    $dir= $p_dir; # $File::Find::dir
-	    $name= $dir_name; # $File::Find::name
-	    $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
-	    $fullname= $dir_loc; # $File::Find::fullname
-	    # prune may happen here
-	    $prune= 0;
-	    lstat($_); # make sure  file tests with '_' work
-	    { $wanted_callback->() }; # protect against wild "next"
-	    next if $prune;
-	}
-
-	# change to that directory
-	unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
-	    $updir_loc = $dir_loc;
-	    if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) {
-		# untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir
-		( $updir_loc ) = $dir_loc =~ m|$untaint_pat|;
-		unless (defined $updir_loc) {
-		    if ($untaint_skip == 0) {
-			die "directory $dir_loc is still tainted";
-		    }
-		    else {
-			next;
-		    }
-		}
-	    }
-	    unless (chdir $updir_loc) {
-		warnings::warnif "Can't cd to $updir_loc: $!\n";
-		next;
-	    }
-	}
-
-	$dir = $dir_name; # $File::Find::dir
-
-	# Get the list of files in the current directory.
-    my $dh;
-	unless (opendir $dh, ($no_chdir ? $dir_loc : $File::Find::current_dir)) {
-	    warnings::warnif "Can't opendir($dir_loc): $!\n";
-	    next;
-	}
-	@filenames = readdir $dh;
-	closedir($dh);
-
-	for my $FN (@filenames) {
-	    if ($Is_VMS) {
-	    # Big hammer here - Compensate for VMS trailing . and .dir
-	    # No win situation until this is changed, but this
-	    # will handle the majority of the cases with breaking the fewest.
-
-		$FN =~ s/\.dir\z//i;
-		$FN =~ s#\.$## if ($FN ne '.');
-	    }
-	    next if $FN =~ $File::Find::skip_pattern;
-
-	    # follow symbolic links / do an lstat
-	    $new_loc = Follow_SymLink($loc_pref.$FN);
-
-	    # ignore if invalid symlink
-	    unless (defined $new_loc) {
-	        if (!defined -l _ && $dangling_symlinks) {
+        unless ($bydepth) {
+            # change (back) to parent directory (always untainted)
+            unless ($no_chdir) {
+                unless (chdir $updir_loc) {
+                    warnings::warnif "Can't cd to $updir_loc: $!\n";
+                    next;
+                }
+            }
+            $dir= $p_dir; # $File::Find::dir
+            $name= $dir_name; # $File::Find::name
+            $_= ($no_chdir ? $dir_name : $dir_rel ); # $_
+            $fullname= $dir_loc; # $File::Find::fullname
+            # prune may happen here
+            $prune= 0;
+            lstat($_); # make sure  file tests with '_' work
+            { $wanted_callback->() }; # protect against wild "next"
+            next if $prune;
+        }
+
+        # change to that directory
+        unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
+            $updir_loc = $dir_loc;
+            if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) {
+                # untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir
+                ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|;
+                unless (defined $updir_loc) {
+                    if ($untaint_skip == 0) {
+                        die "directory $dir_loc is still tainted";
+                    }
+                    else {
+                        next;
+                    }
+                }
+            }
+            unless (chdir $updir_loc) {
+                warnings::warnif "Can't cd to $updir_loc: $!\n";
+                next;
+            }
+        }
+
+        $dir = $dir_name; # $File::Find::dir
+
+        # Get the list of files in the current directory.
+        my $dh;
+        unless (opendir $dh, ($no_chdir ? $dir_loc : $File::Find::current_dir)) {
+            warnings::warnif "Can't opendir($dir_loc): $!\n";
+            next;
+        }
+        @filenames = readdir $dh;
+        closedir($dh);
+
+        for my $FN (@filenames) {
+            if ($Is_VMS) {
+                # Big hammer here - Compensate for VMS trailing . and .dir
+                # No win situation until this is changed, but this
+                # will handle the majority of the cases with breaking the fewest.
+
+                $FN =~ s/\.dir\z//i;
+                $FN =~ s#\.$## if ($FN ne '.');
+            }
+            next if $FN =~ $File::Find::skip_pattern;
+
+            # follow symbolic links / do an lstat
+            $new_loc = Follow_SymLink($loc_pref.$FN);
+
+            # ignore if invalid symlink
+            unless (defined $new_loc) {
+                if (!defined -l _ && $dangling_symlinks) {
                 $fullname = undef;
-	            if (ref $dangling_symlinks eq 'CODE') {
-	                $dangling_symlinks->($FN, $dir_pref);
-	            } else {
-	                warnings::warnif "$dir_pref$FN is a dangling symbolic link\n";
-	            }
-	        }
+                    if (ref $dangling_symlinks eq 'CODE') {
+                        $dangling_symlinks->($FN, $dir_pref);
+                    } else {
+                        warnings::warnif "$dir_pref$FN is a dangling symbolic link\n";
+                    }
+                }
             else {
                 $fullname = $loc_pref . $FN;
             }
-	        $name = $dir_pref . $FN;
-	        $_ = ($no_chdir ? $name : $FN);
-	        { $wanted_callback->() };
-	        next;
-	    }
-
-	    if (-d _) {
-		if ($Is_VMS) {
-		    $FN =~ s/\.dir\z//i;
-		    $FN =~ s#\.$## if ($FN ne '.');
-		    $new_loc =~ s/\.dir\z//i;
-		    $new_loc =~ s#\.$## if ($new_loc ne '.');
-		}
-		push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1];
-	    }
-	    else {
-		$fullname = $new_loc; # $File::Find::fullname
-		$name = $dir_pref . $FN; # $File::Find::name
-		$_ = ($no_chdir ? $name : $FN); # $_
-		{ $wanted_callback->() }; # protect against wild "next"
-	    }
-	}
+                $name = $dir_pref . $FN;
+                $_ = ($no_chdir ? $name : $FN);
+                { $wanted_callback->() };
+                next;
+            }
+
+            if (-d _) {
+                if ($Is_VMS) {
+                    $FN =~ s/\.dir\z//i;
+                    $FN =~ s#\.$## if ($FN ne '.');
+                    $new_loc =~ s/\.dir\z//i;
+                    $new_loc =~ s#\.$## if ($new_loc ne '.');
+                }
+                push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1];
+            }
+            else {
+                $fullname = $new_loc; # $File::Find::fullname
+                $name = $dir_pref . $FN; # $File::Find::name
+                $_ = ($no_chdir ? $name : $FN); # $_
+                { $wanted_callback->() }; # protect against wild "next"
+            }
+        }
 
     }
     continue {
-	while (defined($SE = pop @Stack)) {
-	    ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE;
-	    $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel");
-	    $dir_pref = "$dir_name/";
-	    $loc_pref = "$dir_loc/";
-	    if ( $byd_flag < 0 ) {  # must be finddepth, report dirname now
-		unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
-		    unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted
-			warnings::warnif "Can't cd to $updir_loc: $!\n";
-			next;
-		    }
-		}
-		$fullname = $dir_loc; # $File::Find::fullname
-		$name = $dir_name; # $File::Find::name
-		if ( substr($name,-2) eq '/.' ) {
-		    substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name
-		}
-		$dir = $p_dir; # $File::Find::dir
-		$_ = ($no_chdir ? $dir_name : $dir_rel); # $_
-		if ( substr($_,-2) eq '/.' ) {
-		    substr($_, length($_) == 2 ? -1 : -2) = '';
-		}
-
-		lstat($_); # make sure file tests with '_' work
-		{ $wanted_callback->() }; # protect against wild "next"
-	    }
-	    else {
-		push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1]  if  $bydepth;
-		last;
-	    }
-	}
+        while (defined($SE = pop @Stack)) {
+            ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE;
+            $dir_name = _is_root($p_dir) ? "$p_dir$dir_rel" : "$p_dir/$dir_rel";
+            $dir_pref = "$dir_name/";
+            $loc_pref = "$dir_loc/";
+            if ( $byd_flag < 0 ) {  # must be finddepth, report dirname now
+                unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) {
+                    unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted
+                        warnings::warnif "Can't cd to $updir_loc: $!\n";
+                        next;
+                    }
+                }
+                $fullname = $dir_loc; # $File::Find::fullname
+                $name = $dir_name; # $File::Find::name
+                if ( substr($name,-2) eq '/.' ) {
+                    substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name
+                }
+                $dir = $p_dir; # $File::Find::dir
+                $_ = ($no_chdir ? $dir_name : $dir_rel); # $_
+                if ( substr($_,-2) eq '/.' ) {
+                    substr($_, length($_) == 2 ? -1 : -2) = '';
+                }
+
+                lstat($_); # make sure file tests with '_' work
+                { $wanted_callback->() }; # protect against wild "next"
+            }
+            else {
+                push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1]  if  $bydepth;
+                last;
+            }
+        }
     }
 }
 
@@ -913,8 +916,6 @@ a dangling symbolic link, then fullname 
 
 =back
 
-This is a no-op on Win32.
-
 =item C<follow_fast>
 
 This is similar to I<follow> except that it may report some files more
@@ -922,8 +923,6 @@ than once.  It does detect cycles, howev
 have to be hashed, this is much cheaper both in space and time.  If
 processing a file more than once (by the user's C<wanted()> function)
 is worse than just taking time, the option I<follow> should be used.
-
-This is also a no-op on Win32.
 
 =item C<follow_skip>
 
Index: gnu/usr.bin/perl/ext/File-Find/t/correct-absolute-path-with-follow.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/File-Find/t/correct-absolute-path-with-follow.t
diff -N gnu/usr.bin/perl/ext/File-Find/t/correct-absolute-path-with-follow.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/File-Find/t/correct-absolute-path-with-follow.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,63 @@
+#!./perl
+
+use strict;
+use warnings;
+
+use File::Find qw( find finddepth );
+use File::Temp qw();
+use Test::More;
+
+my $warn_msg;
+
+BEGIN {
+    $SIG{'__WARN__'} = sub {
+        $warn_msg = $_[0];
+        warn "# $_[0]";
+        return;
+    }
+}
+
+sub test_find_correct_paths_with_follow {
+    $warn_msg = '';
+    my $dir = File::Temp->newdir('file-find-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+
+    find(
+        {
+            follow => 1,
+            wanted => sub { return },
+        },
+        $dir,
+    );
+
+    unlike(
+        $warn_msg,
+        qr/Couldn't chdir/,
+        'find: Derive absolute path correctly with follow => 1',
+    );
+}
+
+sub test_finddepth_correct_paths_with_follow {
+    $warn_msg = '';
+    my $dir = File::Temp->newdir('file-find-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+
+    finddepth(
+        {
+            follow => 1,
+            wanted => sub { return },
+        },
+        $dir,
+    );
+
+    unlike(
+        $warn_msg,
+        qr/Couldn't chdir/,
+        'finddepth: Derive absolute path correctly with follow => 1',
+    );
+}
+sub run {
+    test_find_correct_paths_with_follow;
+    test_finddepth_correct_paths_with_follow;
+    done_testing;
+}
+
+run();
Index: gnu/usr.bin/perl/ext/File-Find/t/find.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Find/t/find.t,v
diff -u -p -a -u -p -r1.5 find.t
--- gnu/usr.bin/perl/ext/File-Find/t/find.t	15 Feb 2023 01:36:30 -0000	1.5
+++ gnu/usr.bin/perl/ext/File-Find/t/find.t	21 Feb 2024 15:47:02 -0000
@@ -33,15 +33,21 @@ use Testing qw(
     symlink_ok
     dir_path
     file_path
+    _cleanup_start
 );
 use Errno ();
+use File::Temp qw(tempdir);
 
 my %Expect_File = (); # what we expect for $_
 my %Expect_Name = (); # what we expect for $File::Find::name/fullname
 my %Expect_Dir  = (); # what we expect for $File::Find::dir
 my (@files);
 
-my $orig_dir = cwd();
+my $test_root_dir = cwd();
+ok($test_root_dir,"We were able to determine our starting directory");
+my $test_temp_dir = tempdir("FF_find_t_XXXXXX",CLEANUP=>1);
+ok($test_temp_dir,"We were able to set up a temp directory");
+
 
 # Uncomment this to see where File::Find is chdir-ing to.  Helpful for
 # debugging its little jaunts around the filesystem.
@@ -59,8 +65,6 @@ my $orig_dir = cwd();
 #     };
 # }
 
-cleanup();
-
 ##### Sanity checks #####
 # Do find() and finddepth() work correctly with an empty list of
 # directories?
@@ -73,23 +77,34 @@ cleanup();
 }
 
 # Do find() and finddepth() work correctly in the directory
-# from which we start?  (Test presumes the presence of 'taint.t' in same
+# from which we start?  (Test presumes the presence of 'find.t' in same
 # directory as this test file.)
 
-$::count_taint = 0;
-find({wanted => sub { ++$::count_taint if $_ eq 'taint.t'; } },
+my $count_found = 0;
+find({wanted => sub { ++$count_found if $_ eq 'find.t'; } },
    File::Spec->curdir);
-is($::count_taint, 1, "'find' found exactly 1 file named 'taint.t'");
+is($count_found, 1, "'find' found exactly 1 file named 'find.t'");
 
-$::count_taint = 0;
-finddepth({wanted => sub { ++$::count_taint if $_ eq 'taint.t'; } },
+$count_found = 0;
+finddepth({wanted => sub { ++$count_found if $_ eq 'find.t'; } },
     File::Spec->curdir);
-is($::count_taint, 1, "'finddepth' found exactly 1 file named 'taint.t'");
+is($count_found, 1, "'finddepth' found exactly 1 file named 'find.t'");
 
 my $FastFileTests_OK = 0;
 
+my $chdir_error = "";
+chdir($test_temp_dir)
+    or $chdir_error = "Failed to chdir to '$test_temp_dir': $!";
+is($chdir_error,"","chdir to temp dir '$test_temp_dir' successful")
+    or die $chdir_error;
+
 sub cleanup {
-    chdir($orig_dir);
+    # the following chdirs into $test_root_dir/$test_temp_dir but
+    # handles various possible edge case errors cleanly. If it returns
+    # false then we bail out of the cleanup.
+    _cleanup_start($test_root_dir, $test_temp_dir)
+        or return;
+
     my $need_updir = 0;
     if (-d dir_path('for_find')) {
         $need_updir = 1 if chdir(dir_path('for_find'));
@@ -138,6 +153,7 @@ sub cleanup {
     if (-d dir_path('for_find')) {
         rmdir dir_path('for_find') or print "# Can't rmdir for_find: $!\n";
     }
+    chdir($test_root_dir) or die "Failed to chdir to '$test_root_dir': $!";
 }
 
 END {
@@ -235,7 +251,6 @@ sub my_postprocess {
 *file_path_name = \&file_path;
 
 ##### Create directories, files and symlinks used in testing #####
-
 mkdir_ok( dir_path('for_find'), 0770 );
 ok( chdir( dir_path('for_find')), "Able to chdir to 'for_find'")
     or die("Unable to chdir to 'for_find'");
@@ -865,7 +880,7 @@ if ( $symlink_exists ) {
 
 if ($^O eq 'MSWin32') {
     require File::Spec::Win32;
-    my ($volume) = File::Spec::Win32->splitpath($orig_dir, 1);
+    my ($volume) = File::Spec::Win32->splitpath($test_root_dir, 1);
     print STDERR "VOLUME = $volume\n";
 
     ##### #####
@@ -1023,7 +1038,7 @@ if ($^O eq 'MSWin32') {
     # Check F:F:f correctly handles a root directory path.
     # Rather than processing the entire drive (!), simply test that the
     # first file passed to the wanted routine is correct and then bail out.
-    $orig_dir =~ /^(\w:)/ or die "expected a drive: $orig_dir";
+    $test_root_dir =~ /^(\w:)/ or die "expected a drive: $test_root_dir";
     my $drive = $1;
 
     # Determine the file in the root directory which would be
@@ -1050,7 +1065,7 @@ if ($^O eq 'MSWin32') {
         # Run F:F:f with/without no_chdir for each possible style of root path.
         # NB. If HOME were "/", then an inadvertent chdir('') would fluke the
         # expected result, so ensure it is something else:
-        local $ENV{HOME} = $orig_dir;
+        local $ENV{HOME} = $test_root_dir;
         foreach my $no_chdir (0, 1) {
             foreach my $root_dir ("/", "\\", "$drive/", "$drive\\") {
                 eval {
@@ -1060,7 +1075,7 @@ if ($^O eq 'MSWin32') {
                             'wanted' => sub {
                                 -f or return; # the first call is for $root_dir itself.
                                 my $got = $File::Find::name;
-                                my $exp = "$root_dir$expected_first_file";
+                                (my $exp = "$root_dir$expected_first_file") =~ s|\\|/|g;
                                 print "# no_chdir=$no_chdir $root_dir '$got'\n";
                                 is($got, $exp,
                                    "Win32: Run 'find' with 'no_chdir' set to $no_chdir" );
@@ -1111,5 +1126,4 @@ if ($^O eq 'MSWin32') {
     like($@, qr/invalid top directory/,
         "find() correctly died due to undefined top directory");
 }
-
 done_testing();
Index: gnu/usr.bin/perl/ext/File-Find/t/taint.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Find/t/taint.t,v
diff -u -p -a -u -p -r1.1.1.3 taint.t
--- gnu/usr.bin/perl/ext/File-Find/t/taint.t	15 Feb 2023 01:32:58 -0000	1.1.1.3
+++ gnu/usr.bin/perl/ext/File-Find/t/taint.t	21 Feb 2024 15:47:02 -0000
@@ -1,5 +1,6 @@
 #!./perl -T
 use strict;
+use lib qw( ./t/lib );
 
 BEGIN {
     require File::Spec;
@@ -7,7 +8,6 @@ BEGIN {
         # May be doing dynamic loading while @INC is all relative
         @INC = map { $_ = File::Spec->rel2abs($_); /(.*)/; $1 } @INC;
     }
-
     if ($^O eq 'MSWin32' || $^O eq 'cygwin' || $^O eq 'VMS') {
         # This is a hack - at present File::Find does not produce native names
         # on Win32 or VMS, so force File::Spec to use Unix names.
@@ -18,24 +18,29 @@ BEGIN {
     require File::Find;
     import File::Find;
 }
-
 use Test::More;
-BEGIN {
-    plan(
-        ${^TAINT}
-        ? (tests => 45)
-        : (skip_all => "A perl without taint support") 
-    );
-}
-use lib qw( ./t/lib );
+use File::Find;
+use File::Spec;
+use Cwd;
 use Testing qw(
     create_file_ok
     mkdir_ok
     symlink_ok
     dir_path
     file_path
+    _cleanup_start
 );
 use Errno ();
+use Config;
+use File::Temp qw(tempdir);
+
+BEGIN {
+    plan(
+        ${^TAINT}
+        ? (tests => 48)
+        : (skip_all => "A perl without taint support")
+    );
+}
 
 my %Expect_File = (); # what we expect for $_
 my %Expect_Name = (); # what we expect for $File::Find::name/fullname
@@ -43,20 +48,10 @@ my %Expect_Dir  = (); # what we expect f
 my ($cwd, $cwd_untainted);
 
 BEGIN {
-    require File::Spec;
-    if ($ENV{PERL_CORE}) {
-        # May be doing dynamic loading while @INC is all relative
-        @INC = map { $_ = File::Spec->rel2abs($_); /(.*)/; $1 } @INC;
-    }
-}
-
-use Config;
-
-BEGIN {
     if ($^O ne 'VMS') {
-	for (keys %ENV) { # untaint ENV
-	    ($ENV{$_}) = $ENV{$_} =~ /(.*)/;
-	}
+        for (keys %ENV) { # untaint ENV
+            ($ENV{$_}) = $ENV{$_} =~ /(.*)/;
+        }
     }
 
     # Remove insecure directories from PATH
@@ -64,32 +59,34 @@ BEGIN {
     my $sep = $Config{path_sep};
     foreach my $dir (split(/\Q$sep/,$ENV{'PATH'}))
     {
-	##
-	## Match the directory taint tests in mg.c::Perl_magic_setenv()
-	##
-	push(@path,$dir) unless (length($dir) >= 256
-				 or
-				 substr($dir,0,1) ne "/"
-				 or
-				 (stat $dir)[2] & 002);
+        ##
+        ## Match the directory taint tests in mg.c::Perl_magic_setenv()
+        ##
+        push(@path,$dir) unless (length($dir) >= 256
+                                 or
+                                 substr($dir,0,1) ne "/"
+                                 or
+                                 (stat $dir)[2] & 002);
     }
     $ENV{'PATH'} = join($sep,@path);
 }
 
 my $symlink_exists = eval { symlink("",""); 1 };
 
-use File::Find;
-use File::Spec;
-use Cwd;
-
-my $orig_dir = cwd();
-( my $orig_dir_untainted ) = $orig_dir =~ m|^(.+)$|; # untaint it
-
-cleanup();
+my $test_root_dir; # where we are when this test starts
+my $test_root_dir_tainted = cwd();
+if ($test_root_dir_tainted =~ /^(.*)$/) {
+    $test_root_dir = $1;
+} else {
+    die "Failed to untaint root dir of test";
+}
+ok($test_root_dir,"test_root_dir is set up as expected");
+my $test_temp_dir = tempdir("FF_taint_t_XXXXXX",CLEANUP=>1);
+ok($test_temp_dir,"test_temp_dir is set up as expected");
 
 my $found;
 find({wanted => sub { ++$found if $_ eq 'taint.t' },
-		untaint => 1, untaint_pattern => qr|^(.+)$|}, File::Spec->curdir);
+                untaint => 1, untaint_pattern => qr|^(.+)$|}, File::Spec->curdir);
 
 is($found, 1, 'taint.t found once');
 $found = 0;
@@ -102,34 +99,46 @@ is($found, 1, 'taint.t found once again'
 my $case = 2;
 my $FastFileTests_OK = 0;
 
+my $chdir_error = "";
+chdir($test_temp_dir)
+    or $chdir_error = "Failed to chdir to '$test_temp_dir': $!";
+is($chdir_error,"","chdir to temp dir '$test_temp_dir' successful")
+    or die $chdir_error;
+
 sub cleanup {
-    chdir($orig_dir_untainted);
+    # the following chdirs into $test_root_dir/$test_temp_dir but
+    # handles various possible edge case errors cleanly. If it returns
+    # false then we bail out of the cleanup.
+    _cleanup_start($test_root_dir, $test_temp_dir)
+        or return;
+
     my $need_updir = 0;
     if (-d dir_path('for_find_taint')) {
         $need_updir = 1 if chdir(dir_path('for_find_taint'));
     }
     if (-d dir_path('fa_taint')) {
-	unlink file_path('fa_taint', 'fa_ord'),
-	       file_path('fa_taint', 'fsl'),
-	       file_path('fa_taint', 'faa', 'faa_ord'),
-	       file_path('fa_taint', 'fab', 'fab_ord'),
-	       file_path('fa_taint', 'fab', 'faba', 'faba_ord'),
-	       file_path('fb_taint', 'fb_ord'),
-	       file_path('fb_taint', 'fba', 'fba_ord');
-	rmdir dir_path('fa_taint', 'faa');
-	rmdir dir_path('fa_taint', 'fab', 'faba');
-	rmdir dir_path('fa_taint', 'fab');
-	rmdir dir_path('fa_taint');
-	rmdir dir_path('fb_taint', 'fba');
-	rmdir dir_path('fb_taint');
+        unlink file_path('fa_taint', 'fa_ord'),
+               file_path('fa_taint', 'fsl'),
+               file_path('fa_taint', 'faa', 'faa_ord'),
+               file_path('fa_taint', 'fab', 'fab_ord'),
+               file_path('fa_taint', 'fab', 'faba', 'faba_ord'),
+               file_path('fb_taint', 'fb_ord'),
+               file_path('fb_taint', 'fba', 'fba_ord');
+        rmdir dir_path('fa_taint', 'faa');
+        rmdir dir_path('fa_taint', 'fab', 'faba');
+        rmdir dir_path('fa_taint', 'fab');
+        rmdir dir_path('fa_taint');
+        rmdir dir_path('fb_taint', 'fba');
+        rmdir dir_path('fb_taint');
     }
     if ($need_updir) {
         my $updir = $^O eq 'VMS' ? File::Spec::VMS->updir() : File::Spec->updir;
         chdir($updir);
     }
     if (-d dir_path('for_find_taint')) {
-	rmdir dir_path('for_find_taint') or print "# Can't rmdir for_find_taint: $!\n";
+        rmdir dir_path('for_find_taint') or print "# Can't rmdir for_find_taint: $!\n";
     }
+    chdir($test_root_dir) or die "Failed to chdir to '$test_root_dir': $!";
 }
 
 END {
@@ -176,7 +185,7 @@ sub simple_wanted {
 
 *file_path_name = \&file_path;
 
-
+##### Create directories, files and symlinks used in testing #####
 mkdir_ok( dir_path('for_find_taint'), 0770 );
 ok( chdir( dir_path('for_find_taint')), 'successful chdir() to for_find_taint' );
 
@@ -232,7 +241,7 @@ delete $Expect_File{ file_path('fsl') } 
 delete @Expect_Dir{ dir_path('fb_taint'), dir_path('fba') } unless $symlink_exists;
 
 File::Find::find( {wanted => \&wanted_File_Dir_prune, untaint => 1,
-		   untaint_pattern => qr|^(.+)$|}, topdir('fa_taint') );
+                   untaint_pattern => qr|^(.+)$|}, topdir('fa_taint') );
 
 is(scalar keys %Expect_File, 0, 'Found all expected files')
     or diag "Not found " . join(" ", sort keys %Expect_File);
@@ -284,8 +293,8 @@ SKIP: {
     # no_chdir is in effect, hence we use file_path_name to specify the expected paths for %Expect_File
 
     %Expect_File = (file_path_name('fa_taint') => 1,
-		    file_path_name('fa_taint','fa_ord') => 1,
-		    file_path_name('fa_taint', 'fsl') => 1,
+                    file_path_name('fa_taint','fa_ord') => 1,
+                    file_path_name('fa_taint', 'fsl') => 1,
                     file_path_name('fa_taint', 'fsl', 'fb_ord') => 1,
                     file_path_name('fa_taint', 'fsl', 'fba') => 1,
                     file_path_name('fa_taint', 'fsl', 'fba', 'fba_ord') => 1,
@@ -299,11 +308,11 @@ SKIP: {
     %Expect_Name = ();
 
     %Expect_Dir = (dir_path('fa_taint') => 1,
-		   dir_path('fa_taint', 'faa') => 1,
+                   dir_path('fa_taint', 'faa') => 1,
                    dir_path('fa_taint', 'fab') => 1,
-		   dir_path('fa_taint', 'fab', 'faba') => 1,
-		   dir_path('fb_taint') => 1,
-		   dir_path('fb_taint', 'fba') => 1);
+                   dir_path('fa_taint', 'fab', 'faba') => 1,
+                   dir_path('fb_taint') => 1,
+                   dir_path('fb_taint', 'fba') => 1);
 
     File::Find::find( {wanted => \&wanted_File_Dir, follow_fast => 1,
                        no_chdir => 1, untaint => 1, untaint_pattern =>
@@ -316,7 +325,7 @@ SKIP: {
     undef $@;
 
     eval {File::Find::find( {wanted => \&simple_wanted, follow => 1},
-			    topdir('fa_taint') );};
+                            topdir('fa_taint') );};
 
     like( $@, qr|Insecure dependency|, 'Not untainting causes death (good)' );
     chdir($cwd_untainted);
Index: gnu/usr.bin/perl/ext/File-Find/t/lib/Testing.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Find/t/lib/Testing.pm,v
diff -u -p -a -u -p -r1.1.1.2 Testing.pm
--- gnu/usr.bin/perl/ext/File-Find/t/lib/Testing.pm	15 Feb 2023 01:32:58 -0000	1.1.1.2
+++ gnu/usr.bin/perl/ext/File-Find/t/lib/Testing.pm	21 Feb 2024 15:47:02 -0000
@@ -9,6 +9,7 @@ our @EXPORT_OK = qw(
     symlink_ok
     dir_path
     file_path
+    _cleanup_start
 );
 
 # Wrappers around Test::More::ok() for creation of files, directories and
@@ -53,16 +54,16 @@ sub dir_path {
     my $first_arg = shift @_;
 
     if ($first_arg eq '.') {
-	    return './' unless @_;
-	    my $path = File::Spec->catdir(@_);
-	    # add leading "./"
-	    $path = "./$path";
-	    return $path;
+        return './' unless @_;
+        my $path = File::Spec->catdir(@_);
+        # add leading "./"
+        $path = "./$path";
+        return $path;
     }
     else { # $first_arg ne '.'
         return $first_arg unless @_; # return plain filename
-	    my $fname = File::Spec->catdir($first_arg, @_); # relative path
-	    $fname = VMS::Filespec::unixpath($fname) if $^O eq 'VMS';
+            my $fname = File::Spec->catdir($first_arg, @_); # relative path
+            $fname = VMS::Filespec::unixpath($fname) if $^O eq 'VMS';
         return $fname;
     }
 }
@@ -82,18 +83,58 @@ sub file_path {
     my $first_arg = shift @_;
 
     if ($first_arg eq '.') {
-	    return './' unless @_;
-	    my $path = File::Spec->catfile(@_);
-	    # add leading "./"
-	    $path = "./$path";
-	    return $path;
+        return './' unless @_;
+        my $path = File::Spec->catfile(@_);
+        # add leading "./"
+        $path = "./$path";
+        return $path;
     }
     else { # $first_arg ne '.'
         return $first_arg unless @_; # return plain filename
-	    my $fname = File::Spec->catfile($first_arg, @_); # relative path
-	    $fname = VMS::Filespec::unixify($fname) if $^O eq 'VMS';
+            my $fname = File::Spec->catfile($first_arg, @_); # relative path
+            $fname = VMS::Filespec::unixify($fname) if $^O eq 'VMS';
         return $fname;
     }
+}
+
+sub _something_wrong {
+    my ($message) = @_;
+    warn "in cleanup: $message\n" .
+         "Something seems to be very wrong. Possibly the directory\n" .
+         "we are testing in has been removed or wiped while we ran?\n";
+    return 0;
+}
+
+sub _cleanup_start {
+    my ($test_root_dir, $test_temp_dir)= @_;
+
+    # doing the following two chdirs (and their validation) in two
+    # distinct steps avoids the need to know about directory separators,
+    # or other FS specifics, which is helpful as the test files that use
+    # this function overrides the File::Spec heirarchy, so we can't ask it
+    # to help us here.
+
+    # chdir into the $test_root_dir to start the cleanup. But first validate.
+    if (!$test_root_dir) {
+        return _something_wrong("No test_root_dir?");
+    }
+    if (!-d $test_root_dir) {
+        return _something_wrong("test_root_dir '$test_root_dir' seems to have disappeared!");
+    }
+    chdir($test_root_dir)
+        or return _something_wrong("Failed to chdir to '$test_root_dir': $!");
+
+    # chdir into the $test_temp_dir to start the cleanup. But first validate.
+    if (!$test_temp_dir) {
+        return _something_wrong("No test_temp_dir?");
+    }
+    if (!-d $test_temp_dir) {
+        return _something_wrong("test_temp_dir '$test_temp_dir' seems to have disappeared!");
+    }
+    chdir($test_temp_dir)
+        or return _wrong("Failed to chdir to '$test_temp_dir': $!");
+
+    return 1;
 }
 
 1;
Index: gnu/usr.bin/perl/ext/File-Glob/Glob.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Glob/Glob.pm,v
diff -u -p -a -u -p -r1.6 Glob.pm
--- gnu/usr.bin/perl/ext/File-Glob/Glob.pm	15 Feb 2023 01:36:31 -0000	1.6
+++ gnu/usr.bin/perl/ext/File-Glob/Glob.pm	21 Feb 2024 15:47:02 -0000
@@ -33,7 +33,7 @@ $EXPORT_TAGS{bsd_glob} = [@{$EXPORT_TAGS
 
 our @EXPORT_OK   = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
 
-our $VERSION = '1.37';
+our $VERSION = '1.40';
 
 sub import {
     require Exporter;
Index: gnu/usr.bin/perl/ext/File-Glob/Glob.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Glob/Glob.xs,v
diff -u -p -a -u -p -r1.4 Glob.xs
--- gnu/usr.bin/perl/ext/File-Glob/Glob.xs	15 Feb 2023 01:36:31 -0000	1.4
+++ gnu/usr.bin/perl/ext/File-Glob/Glob.xs	21 Feb 2024 15:47:02 -0000
@@ -99,7 +99,7 @@ iterate(pTHX_ bool(*globber)(pTHX_ AV *e
         }
         else {
             pat = SvPV_nomg(patsv,len);
-            is_utf8 = !!SvUTF8(patsv);
+            is_utf8 = cBOOL(SvUTF8(patsv));
             /* the lower-level code expects a null-terminated string */
             if (!SvPOK(patsv) || pat != SvPVX(patsv) || pat[len] != '\0') {
                 SV *newpatsv = newSVpvn_flags(pat, len, SVs_TEMP);
@@ -451,11 +451,13 @@ BOOT:
     {
 	dMY_CXT;
 	MY_CXT.x_GLOB_ENTRIES = NULL;
-	MY_CXT.x_GLOB_OLD_OPHOOK = PL_opfreehook;
 #ifdef USE_ITHREADS
         MY_CXT.interp = aTHX;
 #endif
-	PL_opfreehook = glob_ophook;
+	if(!MY_CXT.x_GLOB_OLD_OPHOOK) {
+	    MY_CXT.x_GLOB_OLD_OPHOOK = PL_opfreehook;
+	    PL_opfreehook = glob_ophook;
+	}
     }  
 }
 
Index: gnu/usr.bin/perl/ext/File-Glob/bsd_glob.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Glob/bsd_glob.c,v
diff -u -p -a -u -p -r1.10 bsd_glob.c
--- gnu/usr.bin/perl/ext/File-Glob/bsd_glob.c	15 Feb 2023 01:36:31 -0000	1.10
+++ gnu/usr.bin/perl/ext/File-Glob/bsd_glob.c	21 Feb 2024 15:47:02 -0000
@@ -81,9 +81,9 @@ static char sscsid[]=  "$OpenBSD: glob.c
 
 #ifndef MAXPATHLEN
 #  ifdef PATH_MAX
-#    define	MAXPATHLEN	PATH_MAX
+#    define MAXPATHLEN  PATH_MAX
 #  else
-#    define	MAXPATHLEN	1024
+#    define MAXPATHLEN  1024
 #  endif
 #endif
 
@@ -91,71 +91,71 @@ static char sscsid[]=  "$OpenBSD: glob.c
 
 #ifndef ARG_MAX
 #  ifdef _SC_ARG_MAX
-#    define		ARG_MAX		(sysconf(_SC_ARG_MAX))
+#    define     ARG_MAX         (sysconf(_SC_ARG_MAX))
 #  else
 #    ifdef _POSIX_ARG_MAX
-#      define		ARG_MAX		_POSIX_ARG_MAX
+#      define   ARG_MAX         _POSIX_ARG_MAX
 #    else
 #      ifdef WIN32
-#        define	ARG_MAX		14500	/* from VC's limits.h */
+#        define ARG_MAX         14500   /* from VC's limits.h */
 #      else
-#        define	ARG_MAX		4096	/* from POSIX, be conservative */
+#        define ARG_MAX         4096    /* from POSIX, be conservative */
 #      endif
 #    endif
 #  endif
 #endif
 
-#define	BG_DOLLAR	'$'
-#define	BG_DOT		'.'
-#define	BG_EOS		'\0'
-#define	BG_LBRACKET	'['
-#define	BG_NOT		'!'
-#define	BG_QUESTION	'?'
-#define	BG_QUOTE	'\\'
-#define	BG_RANGE	'-'
-#define	BG_RBRACKET	']'
-#define	BG_SEP	'/'
+#define BG_DOLLAR       '$'
+#define BG_DOT          '.'
+#define BG_EOS          '\0'
+#define BG_LBRACKET     '['
+#define BG_NOT          '!'
+#define BG_QUESTION     '?'
+#define BG_QUOTE        '\\'
+#define BG_RANGE        '-'
+#define BG_RBRACKET     ']'
+#define BG_SEP  '/'
 #ifdef DOSISH
 #define BG_SEP2		'\\'
 #endif
-#define	BG_STAR		'*'
-#define	BG_TILDE	'~'
-#define	BG_UNDERSCORE	'_'
-#define	BG_LBRACE	'{'
-#define	BG_RBRACE	'}'
-#define	BG_SLASH	'/'
-#define	BG_COMMA	','
+#define BG_STAR         '*'
+#define BG_TILDE        '~'
+#define BG_UNDERSCORE   '_'
+#define BG_LBRACE       '{'
+#define BG_RBRACE       '}'
+#define BG_SLASH        '/'
+#define BG_COMMA        ','
 
 #ifndef GLOB_DEBUG
 
-#define	M_QUOTE		0x8000
-#define	M_PROTECT	0x4000
-#define	M_MASK		0xffff
-#define	M_ASCII		0x00ff
+#define M_QUOTE         0x8000
+#define M_PROTECT       0x4000
+#define M_MASK          0xffff
+#define M_ASCII         0x00ff
 
 typedef U16 Char;
 
 #else
 
-#define	M_QUOTE		0x80
-#define	M_PROTECT	0x40
-#define	M_MASK		0xff
-#define	M_ASCII		0x7f
+#define M_QUOTE         0x80
+#define M_PROTECT       0x40
+#define M_MASK          0xff
+#define M_ASCII         0x7f
 
 typedef U8 Char;
 
 #endif /* !GLOB_DEBUG */
 
 
-#define	CHAR(c)		((Char)((c)&M_ASCII))
-#define	META(c)		((Char)((c)|M_QUOTE))
-#define	M_ALL		META('*')
-#define	M_END		META(']')
-#define	M_NOT		META('!')
-#define	M_ONE		META('?')
-#define	M_RNG		META('-')
-#define	M_SET		META('[')
-#define	ismeta(c)	(((c)&M_QUOTE) != 0)
+#define CHAR(c)         ((Char)((c)&M_ASCII))
+#define META(c)         ((Char)((c)|M_QUOTE))
+#define M_ALL           META('*')
+#define M_END           META(']')
+#define M_NOT           META('!')
+#define M_ONE           META('?')
+#define M_RNG           META('-')
+#define M_SET           META('[')
+#define ismeta(c)       (((c)&M_QUOTE) != 0)
 
 
 static int	 compare(const void *, const void *);
@@ -204,7 +204,7 @@ my_readdir(DIR *d)
 }
 #   else
 
-#       define	my_readdir	readdir
+#       define my_readdir       readdir
 
 #   endif
 
Index: gnu/usr.bin/perl/ext/File-Glob/bsd_glob.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/File-Glob/bsd_glob.h,v
diff -u -p -a -u -p -r1.1.1.3 bsd_glob.h
--- gnu/usr.bin/perl/ext/File-Glob/bsd_glob.h	15 Feb 2023 01:32:58 -0000	1.1.1.3
+++ gnu/usr.bin/perl/ext/File-Glob/bsd_glob.h	21 Feb 2024 15:47:02 -0000
@@ -34,7 +34,7 @@
  */
 
 #ifndef _BSD_GLOB_H_
-#define	_BSD_GLOB_H_
+#define _BSD_GLOB_H_
 
 /* #include <sys/cdefs.h> */
 
@@ -59,26 +59,26 @@ typedef struct {
         int (*gl_stat)(const char *, Stat_t *);
 } glob_t;
 
-#define	GLOB_APPEND	0x0001	/* Append to output from previous call. */
-#define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */
-#define	GLOB_ERR	0x0004	/* Return on error. */
-#define	GLOB_MARK	0x0008	/* Append / to matching directories. */
-#define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */
-#define	GLOB_NOSORT	0x0020	/* Don't sort. */
-
-#define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */
-#define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */
-#define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */
-#define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */
-#define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */
-#define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */
-#define	GLOB_NOCASE	0x1000	/* Treat filenames without regard for case. */
-#define	GLOB_ALPHASORT	0x2000	/* Alphabetic, not ASCII sort, like csh. */
-#define	GLOB_LIMIT	0x4000	/* Limit pattern match output to ARG_MAX
+#define GLOB_APPEND     0x0001  /* Append to output from previous call. */
+#define GLOB_DOOFFS     0x0002  /* Use gl_offs. */
+#define GLOB_ERR        0x0004  /* Return on error. */
+#define GLOB_MARK       0x0008  /* Append / to matching directories. */
+#define GLOB_NOCHECK    0x0010  /* Return pattern itself if nothing matches. */
+#define GLOB_NOSORT     0x0020  /* Don't sort. */
+
+#define GLOB_ALTDIRFUNC 0x0040  /* Use alternately specified directory funcs. */
+#define GLOB_BRACE      0x0080  /* Expand braces ala csh. */
+#define GLOB_MAGCHAR    0x0100  /* Pattern had globbing characters. */
+#define GLOB_NOMAGIC    0x0200  /* GLOB_NOCHECK without magic chars (csh). */
+#define GLOB_QUOTE      0x0400  /* Quote special chars with \. */
+#define GLOB_TILDE      0x0800  /* Expand tilde names from the passwd file. */
+#define GLOB_NOCASE     0x1000  /* Treat filenames without regard for case. */
+#define GLOB_ALPHASORT  0x2000  /* Alphabetic, not ASCII sort, like csh. */
+#define GLOB_LIMIT      0x4000  /* Limit pattern match output to ARG_MAX
                                    (usually from limits.h). */
 
-#define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */
-#define	GLOB_ABEND	(-2)	/* Unignored error. */
+#define GLOB_NOSPACE    (-1)    /* Malloc call failed. */
+#define GLOB_ABEND      (-2)    /* Unignored error. */
 
 int	bsd_glob(const char *, int, int (*)(const char *, int), glob_t *);
 void	bsd_globfree(glob_t *);
Index: gnu/usr.bin/perl/ext/FileCache/t/01open.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/FileCache/t/01open.t,v
diff -u -p -a -u -p -r1.1.1.2 01open.t
--- gnu/usr.bin/perl/ext/FileCache/t/01open.t	13 Feb 2019 21:11:30 -0000	1.1.1.2
+++ gnu/usr.bin/perl/ext/FileCache/t/01open.t	21 Feb 2024 15:47:02 -0000
@@ -3,7 +3,7 @@
 use FileCache;
 
 our @files;
-BEGIN { @files = qw(foo bar baz quux Foo_Bar) }
+BEGIN { @files = map { "open_$_" } qw(foo bar baz quux Foo_Bar) }
 END   { 1 while unlink @files }
 
 use Test::More tests => 1;
Index: gnu/usr.bin/perl/ext/FileCache/t/02maxopen.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/FileCache/t/02maxopen.t,v
diff -u -p -a -u -p -r1.1.1.2 02maxopen.t
--- gnu/usr.bin/perl/ext/FileCache/t/02maxopen.t	13 Feb 2019 21:11:30 -0000	1.1.1.2
+++ gnu/usr.bin/perl/ext/FileCache/t/02maxopen.t	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@
 
 use FileCache maxopen => 2;
 our @files;
-BEGIN { @files = qw(foo bar baz quux) }
+BEGIN { @files = map { "max_$_" } qw(foo bar baz quux) }
 END { 1 while unlink @files }
 
 use Test::More tests => 5;
@@ -15,7 +15,7 @@ use Test::More tests => 5;
   
   my @cat;
   for my $path ( @files ){
-    ok(fileno($path) || $path =~ /^(?:foo|bar)$/);
+    ok(fileno($path) || $path =~ /^max_(?:foo|bar)$/);
     next unless fileno($path);
     print $path "$path 2\n";
     close($path);
@@ -24,5 +24,5 @@ use Test::More tests => 5;
     push @cat, <$path>;
     close($path);
   }
-  ok( grep(/^(?:baz|quux) 2$/, @cat) == 2 );
+  ok( grep(/^max_(?:baz|quux) 2$/, @cat) == 2 );
 }
Index: gnu/usr.bin/perl/ext/FileCache/t/03append.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/FileCache/t/03append.t,v
diff -u -p -a -u -p -r1.1.1.2 03append.t
--- gnu/usr.bin/perl/ext/FileCache/t/03append.t	13 Feb 2019 21:11:30 -0000	1.1.1.2
+++ gnu/usr.bin/perl/ext/FileCache/t/03append.t	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@
 
 use FileCache maxopen => 2;
 our @files;
-BEGIN { @files = qw(foo bar baz quux Foo_Bar) }
+BEGIN { @files = map { "append_$_" } qw(foo bar baz quux Foo_Bar) }
 END   { 1 while unlink @files }
 
 use Test::More tests => 2;
Index: gnu/usr.bin/perl/ext/FileCache/t/04twoarg.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/FileCache/t/04twoarg.t,v
diff -u -p -a -u -p -r1.1.1.1 04twoarg.t
--- gnu/usr.bin/perl/ext/FileCache/t/04twoarg.t	24 Sep 2010 14:48:49 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/FileCache/t/04twoarg.t	21 Feb 2024 15:47:02 -0000
@@ -2,16 +2,16 @@
 
 use FileCache;
 
-END { unlink('foo') }
+END { unlink('foo_2arg') }
 
 use Test::More tests => 1;
 
 {# Test 4: that 2 arg format works, and that we cycle on mode change
-     cacheout '>', "foo";
-     print foo "foo 4\n";
-     cacheout '+>', "foo";
-     print foo "foo 44\n";
-     seek(foo, 0, 0);
-     ok(<foo> eq "foo 44\n");
-     close foo;
+     cacheout '>', "foo_2arg";
+     print foo_2arg "foo 4\n";
+     cacheout '+>', "foo_2arg";
+     print foo_2arg "foo 44\n";
+     seek(foo_2arg, 0, 0);
+     ok(<foo_2arg> eq "foo 44\n");
+     close foo_2arg;
 }
Index: gnu/usr.bin/perl/ext/FileCache/t/05override.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/FileCache/t/05override.t,v
diff -u -p -a -u -p -r1.1.1.1 05override.t
--- gnu/usr.bin/perl/ext/FileCache/t/05override.t	24 Sep 2010 14:48:49 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/FileCache/t/05override.t	21 Feb 2024 15:47:02 -0000
@@ -2,12 +2,12 @@
 
 use FileCache;
 
-END { unlink("Foo_Bar") }
+END { unlink("Foo_Bar_ov") }
 
 use Test::More tests => 1;
 
 {# Test 5: that close is overridden properly within the caller
-     cacheout local $_ = "Foo_Bar";
+     cacheout local $_ = "Foo_Bar_ov";
      print $_ "Hello World\n";
      close($_);
      ok(!fileno($_));
Index: gnu/usr.bin/perl/ext/FileCache/t/07noimport.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/FileCache/t/07noimport.t,v
diff -u -p -a -u -p -r1.1.1.1 07noimport.t
--- gnu/usr.bin/perl/ext/FileCache/t/07noimport.t	24 Sep 2010 14:48:49 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/FileCache/t/07noimport.t	21 Feb 2024 15:47:02 -0000
@@ -8,7 +8,7 @@ use Test::More tests => 1;
     package Y;
     use FileCache ();
 
-    my $file = 'foo';
+    my $file = 'foo_noimp';
     END { unlink $file }
     FileCache::cacheout($file);
     print $file "bar";
Index: gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.pm,v
diff -u -p -a -u -p -r1.15 GDBM_File.pm
--- gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.pm	15 Feb 2023 01:36:31 -0000	1.15
+++ gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.pm	21 Feb 2024 15:47:02 -0000
@@ -733,7 +733,7 @@ require XSLoader;
 );
 
 # This module isn't dual life, so no need for dev version numbers.
-$VERSION = '1.23';
+$VERSION = '1.24';
 
 our $gdbm_errno;
 
Index: gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.xs,v
diff -u -p -a -u -p -r1.1.1.12 GDBM_File.xs
--- gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.xs	15 Feb 2023 01:32:58 -0000	1.1.1.12
+++ gnu/usr.bin/perl/ext/GDBM_File/GDBM_File.xs	21 Feb 2024 15:47:02 -0000
@@ -878,7 +878,7 @@ gdbm_flags(db, ...)       
     PREINIT:
         int opcode = -1;
         int c_iv;
-        unsigned c_uv;
+        size_t c_uv;
         char *c_cv;
         OPTVALPTR vptr = (OPTVALPTR) &c_iv;
         size_t vsiz = sizeof(c_iv);
Index: gnu/usr.bin/perl/ext/GDBM_File/t/opt.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/GDBM_File/t/opt.t,v
diff -u -p -a -u -p -r1.1.1.1 opt.t
--- gnu/usr.bin/perl/ext/GDBM_File/t/opt.t	15 Feb 2023 01:32:58 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/GDBM_File/t/opt.t	21 Feb 2024 15:47:02 -0000
@@ -14,7 +14,7 @@ BEGIN {
     plan(skip_all => "GDBM_File is flaky in $^O")
         if $^O =~ /darwin/;
 
-    plan(tests => 8);
+    plan(tests => 9);
     use_ok('GDBM_File');
 }
 
@@ -25,7 +25,7 @@ my $db = tie(%h, 'GDBM_File', $dbname, G
 isa_ok($db, 'GDBM_File');
 SKIP: {
      my $name = eval { $db->dbname } or do {
-         skip "gdbm_setopt GET calls not implemented", 6
+         skip "gdbm_setopt GET calls not implemented", 7
              if $@ =~ /GDBM_File::dbname not implemented/;
      };
      is($db->dbname, $dbname, 'get dbname');
@@ -34,4 +34,9 @@ SKIP: {
      is($db->sync_mode, 0, 'get sync_mode');
      is($db->sync_mode(1), 1, 'set sync_mode');
      is($db->sync_mode, 1, 'get sync_mode');
+   SKIP: {
+         my ($maj, $min) = GDBM_File->GDBM_version;
+         skip "gdbm too old", 1 if $maj != 1 || $maj == 1 && $min < 9;
+         isnt($db->mmapsize, 0, "get mmapsize");
+     }
 }
Index: gnu/usr.bin/perl/ext/Hash-Util/Util.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Hash-Util/Util.xs,v
diff -u -p -a -u -p -r1.4 Util.xs
--- gnu/usr.bin/perl/ext/Hash-Util/Util.xs	15 Feb 2023 01:36:31 -0000	1.4
+++ gnu/usr.bin/perl/ext/Hash-Util/Util.xs	21 Feb 2024 15:47:02 -0000
@@ -115,7 +115,7 @@ hash_traversal_mask(rhv, ...)
         if (items>1) {
             hv_rand_set(hv, SvUV(ST(1)));
         }
-        if (SvOOK(hv)) {
+        if (HvHasAUX(hv)) {
             XSRETURN_UV(HvRAND_get(hv));
         } else {
             XSRETURN_UNDEF;
Index: gnu/usr.bin/perl/ext/Hash-Util/lib/Hash/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Hash-Util/lib/Hash/Util.pm,v
diff -u -p -a -u -p -r1.5 Util.pm
--- gnu/usr.bin/perl/ext/Hash-Util/lib/Hash/Util.pm	15 Feb 2023 01:36:31 -0000	1.5
+++ gnu/usr.bin/perl/ext/Hash-Util/lib/Hash/Util.pm	21 Feb 2024 15:47:02 -0000
@@ -42,7 +42,7 @@ our @EXPORT_OK  = qw(
 BEGIN {
     # make sure all our XS routines are available early so their prototypes
     # are correctly applied in the following code.
-    our $VERSION = '0.28';
+    our $VERSION = '0.30';
     require XSLoader;
     XSLoader::load();
 }
@@ -92,7 +92,7 @@ Hash::Util - A selection of general-util
                      hash_traversal_mask
                    );
 
-  %hash = (foo => 42, bar => 23);
+  my %hash = (foo => 42, bar => 23);
   # Ways to restrict a hash
   lock_keys(%hash);
   lock_keys(%hash, @keyset);
Index: gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.pm,v
diff -u -p -a -u -p -r1.6 Langinfo.pm
--- gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.pm	15 Feb 2023 01:36:31 -0000	1.6
+++ gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.pm	21 Feb 2024 15:47:02 -0000
@@ -70,7 +70,7 @@ our @EXPORT_OK = qw(
 	YESSTR
 );
 
-our $VERSION = '0.21';
+our $VERSION = '0.22';
 
 XSLoader::load();
 
@@ -180,8 +180,11 @@ For the eras based on typically some rul
 
 =head2 For systems without C<nl_langinfo>
 
-Starting in Perl 5.28, this module is available even on systems that lack a
-native C<nl_langinfo>.  On such systems, it uses various methods to construct
+This module originally was just a wrapper for the libc C<nl_langinfo>
+function, and did not work on systems lacking it, such as Windows.
+
+Starting in Perl 5.28, this module works on all platforms.  When
+C<nl_langinfo> is not available, it uses various methods to construct
 what that function, if present, would return.  But there are potential
 glitches.  These are the items that could be different:
 
@@ -193,8 +196,11 @@ Unimplemented, so returns C<"">.
 
 =item C<CODESET>
 
-Unimplemented, except on Windows, due to the vagaries of vendor locale names,
-returning C<""> on non-Windows.
+This should work properly for Windows platforms.  On almost all other modern
+platforms, it will reliably return "UTF-8" if that is the code set.
+Otherwise, it depends on the locale's name.  If that is of the form
+C<foo.bar>, it will assume C<bar> is the code set; and it also knows about the
+two locales "C" and "POSIX".  If none of those apply it returns C<"">.
 
 =item C<YESEXPR>
 
@@ -271,8 +277,6 @@ workaround for this; patches welcome: se
 =head1 SEE ALSO
 
 L<perllocale>, L<POSIX/localeconv>, L<POSIX/setlocale>, L<nl_langinfo(3)>.
-
-The langinfo() function is just a wrapper for the C nl_langinfo() interface.
 
 =head1 AUTHOR
 
Index: gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.xs,v
diff -u -p -a -u -p -r1.3 Langinfo.xs
--- gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.xs	13 Feb 2019 21:15:23 -0000	1.3
+++ gnu/usr.bin/perl/ext/I18N-Langinfo/Langinfo.xs	21 Feb 2024 15:47:02 -0000
@@ -25,8 +25,8 @@ SV*
 langinfo(code)
 	int	code
   PREINIT:
-        const   char * value;
-        STRLEN  len;
+        const char * value;
+        utf8ness_t   is_utf8;
   PROTOTYPE: _
   CODE:
 #ifdef HAS_NL_LANGINFO
@@ -36,64 +36,8 @@ langinfo(code)
 	} else
 #endif
         {
-            value = Perl_langinfo(code);
-            len = strlen(value);
-            RETVAL = newSVpvn(Perl_langinfo(code), len);
-
-            /* Now see if the UTF-8 flag should be turned on */
-#ifdef USE_LOCALE_CTYPE     /* No utf8 strings if not using LC_CTYPE */
-
-            /* If 'value' is ASCII or not legal UTF-8, the flag doesn't get
-             * turned on, so skip the followin code */
-            if (is_utf8_non_invariant_string((U8 *) value, len)) {
-                int category;
-
-                /* Check if the locale is a UTF-8 one.  The returns from
-                 * Perl_langinfo() are in different locale categories, so check the
-                 * category corresponding to this item */
-                switch (code) {
-
-                    /* This should always return ASCII, so we could instead
-                     * legitimately panic here, but soldier on */
-                    case CODESET:
-                        category = LC_CTYPE;
-                        break;
-
-                    case RADIXCHAR:
-                    case THOUSEP:
-#  ifdef USE_LOCALE_NUMERIC
-                        category = LC_NUMERIC;
-#  else
-                        /* Not ideal, but the best we can do on such a platform */
-                        category = LC_CTYPE;
-#  endif
-                        break;
-
-                    case CRNCYSTR:
-#  ifdef USE_LOCALE_MONETARY
-                        category = LC_MONETARY;
-#  else
-                        category = LC_CTYPE;
-#  endif
-                        break;
-
-                    default:
-#  ifdef USE_LOCALE_TIME
-                        category = LC_TIME;
-#  else
-                        category = LC_CTYPE;
-#  endif
-                        break;
-                }
-
-                /* Here the return is legal UTF-8.  Turn on that flag if the
-                 * locale is UTF-8.  (Otherwise, could just be a coincidence.)
-                 * */
-                if (_is_cur_LC_category_utf8(category)) {
-                    SvUTF8_on(RETVAL);
-                }
-            }
-#endif /* USE_LOCALE_CTYPE */
+            value = Perl_langinfo8(code, &is_utf8);
+            RETVAL = newSVpvn_utf8(value, strlen(value), is_utf8 == UTF8NESS_YES);
         }
 
   OUTPUT:
Index: gnu/usr.bin/perl/ext/I18N-Langinfo/t/Langinfo.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/I18N-Langinfo/t/Langinfo.t,v
diff -u -p -a -u -p -r1.1.1.3 Langinfo.t
--- gnu/usr.bin/perl/ext/I18N-Langinfo/t/Langinfo.t	13 Feb 2019 21:11:30 -0000	1.1.1.3
+++ gnu/usr.bin/perl/ext/I18N-Langinfo/t/Langinfo.t	21 Feb 2024 15:47:02 -0000
@@ -14,13 +14,12 @@ my @constants = qw(ABDAY_1 DAY_1 ABMON_1
                    D_FMT T_FMT);
 push @constants, @times;
 
-my %want =
-    (
-        RADIXCHAR	=> ".",
-        THOUSEP	=> "",
-     );
+my %want = (    RADIXCHAR => ".",
+                THOUSEP	  => "",
+           );
 
-# Abbreviated and full are swapped in many locales in early netbsd
+# Abbreviated and full are swapped in many locales in early netbsd.  Skip
+# them.
 if (   $Config{osname} !~ / netbsd /ix
     || $Config{osvers} !~ / ^ [1-6] \. /x)
 {
@@ -30,14 +29,129 @@ if (   $Config{osname} !~ / netbsd /ix
     $want{MON_1}   = "January";
 }
 
-my @want = sort keys %want;
+sub disp_str ($) {
+    my $string = shift;
 
-plan tests => 1 + 3 * @constants + keys(@want) + 1 + 2;
+    # Displays the string unambiguously.  ASCII printables are always output
+    # as-is, though perhaps separated by blanks from other characters.  If
+    # entirely printable ASCII, just returns the string.  Otherwise if valid
+    # UTF-8 it uses the character names for non-printable-ASCII.  Otherwise it
+    # outputs hex for each non-ASCII-printable byte.
+
+    return $string if $string =~ / ^ [[:print:]]* $/xa;
+
+    my $result = "";
+    my $prev_was_punct = 1; # Beginning is considered punct
+    if (utf8::valid($string) && utf8::is_utf8($string)) {
+        use charnames ();
+        foreach my $char (split "", $string) {
+
+            # Keep punctuation adjacent to other characters; otherwise
+            # separate them with a blank
+            if ($char =~ /[[:punct:]]/a) {
+                $result .= $char;
+                $prev_was_punct = 1;
+            }
+            elsif ($char =~ /[[:print:]]/a) {
+                $result .= "  " unless $prev_was_punct;
+                $result .= $char;
+                $prev_was_punct = 0;
+            }
+            else {
+                $result .= "  " unless $prev_was_punct;
+                my $name = charnames::viacode(ord $char);
+                $result .= (defined $name) ? $name : ':unknown:';
+                $prev_was_punct = 0;
+            }
+        }
+    }
+    else {
+        use bytes;
+        foreach my $char (split "", $string) {
+            if ($char =~ /[[:punct:]]/a) {
+                $result .= $char;
+                $prev_was_punct = 1;
+            }
+            elsif ($char =~ /[[:print:]]/a) {
+                $result .= " " unless $prev_was_punct;
+                $result .= $char;
+                $prev_was_punct = 0;
+            }
+            else {
+                $result .= " " unless $prev_was_punct;
+                $result .= sprintf("%02X", ord $char);
+                $prev_was_punct = 0;
+            }
+        }
+    }
+
+    return $result;
+}
+
+sub check_utf8_validity($$$) {
+
+    # Looks for a definitive result for testing perl code on UTF-8 locales.
+    # Returns 1 if definitive (one way or another).
+    # Returns 0 if the input is all ASCII.
+    # Returns -1 if it looks to be a system error
+
+    my ($string, $item, $locale) = @_;
+    my $msg_details = "The name for '$item' in $locale";
+
+    return 0 unless $string =~ /\P{ASCII}/;
+
+    if (utf8::is_utf8($string)) {
+        if (utf8::valid($string )) {
+            pass("$msg_details is a UTF8 string.  Got:\n" . disp_str($string));
+            return 1;
+        }
+
+        # Here, marked as UTF-8, but is malformed, so shouldn't have been
+        # marked thus
+        fail("$msg_details is marked as UTF8 but is malformed.  Got:\n"
+           . disp_str($string));
+        return 1;
+    }
+
+    # Here, not marked as UTF-8.  Since this is a UTF-8 locale, and contains
+    # non-ASCII, something is wrong.  It may be us, or it may be libc.  Use
+    # decode to see if the bytes form legal UTF-8.  If they did, it means
+    # perl wrongly returned the string as not UTF-8.
+    my $copy = $string;
+    my $is_valid_utf8;
+    {
+        use bytes;
+        $is_valid_utf8 = utf8::decode($copy);
+    }
+
+    if ($is_valid_utf8) {
+        fail("$msg_details should have been marked as a UTF8 string.  Got:\n"
+           . disp_str($string));
+        return 1;
+    }
+
+    # Here, the string returned wasn't marked as UTF-8 and isn't valid UTF-8.
+    # This means perl did its job and kept malformed text from being marked
+    # UTF-8.  And it means a system bug since the locale was UTF-8.
+    return -1;
+}
+
+my @want = sort keys %want;
+my @illegal_utf8;
 
 use_ok('I18N::Langinfo', 'langinfo', @constants, 'CRNCYSTR');
 
 use POSIX;
-setlocale(LC_ALL, "C");
+
+if (locales_enabled('LC_ALL')) {
+    setlocale(LC_ALL, "C");
+}
+else { # If no LC_ALL, make sure the categories used in Langinfo are in C
+    setlocale(LC_CTYPE, "C")    if locales_enabled('LC_CTYPE');
+    setlocale(LC_MONETARY, "C") if locales_enabled('LC_MONETARY');
+    setlocale(LC_NUMERIC, "C")  if locales_enabled('LC_NUMERIC');
+    setlocale(LC_TIME, "C")     if locales_enabled('LC_TIME');
+}
 
 for my $constant (@constants) {
     SKIP: {
@@ -60,14 +174,14 @@ for my $i (1..@want) {
 }
 
 my $comma_locale;
-for (find_locales( [ 'LC_NUMERIC' ] )) {
+for my $locale (find_locales( 'LC_NUMERIC' )) {
     use POSIX;
     use locale;
-    setlocale(LC_NUMERIC, $_) or next;
+    setlocale(LC_NUMERIC, $locale) or next;
     my $in = 4.2; # avoid any constant folding bugs
     my $s = sprintf("%g", $in);
     if ($s eq "4,2")  {
-        $comma_locale = $_;
+        $comma_locale = $locale;
         last;
     }
 }
@@ -85,9 +199,9 @@ SKIP: {
 
     my $found_time = 0;
     my $found_monetary = 0;
-    my @locales = find_locales( [ 'LC_TIME', 'LC_CTYPE', 'LC_MONETARY' ]);
 
-    while (defined (my $utf8_locale = find_utf8_ctype_locale(\@locales))) {
+    my @locales = find_locales( [ qw(LC_TIME LC_CTYPE LC_MONETARY) ] );
+    foreach my $utf8_locale (find_utf8_ctype_locales(\@locales)) {
         if (! $found_time) {
             setlocale(&LC_TIME, $utf8_locale);
             foreach my $time_item (@times) {
@@ -95,22 +209,33 @@ SKIP: {
                 my $time_name = eval $eval_string;
                 if ($@) {
                     fail("'$eval_string' failed: $@");
-                    last SKIP;
+
+                    # If this or the next two tests fail, any other items or
+                    # locales will likely fail too, so skip testing them.
+                    $found_time = 1;
+                    last;
                 }
                 if (! defined $time_name) {
                     fail("'$eval_string' returned undef");
-                    last SKIP;
+                    $found_time = 1;
+                    last;
                 }
                 if ($time_name eq "") {
                     fail("'$eval_string' returned an empty name");
-                    last SKIP;
+                    $found_time = 1;
+                    last;
                 }
 
-                if ($time_name =~ /\P{ASCII}/) {
-                    ok(utf8::is_utf8($time_name), "The name for '$time_item' in $utf8_locale is a UTF8 string");
+                my $ret = check_utf8_validity($time_name, $time_item, $utf8_locale);
+                if ($ret > 0) {
                     $found_time = 1;
                     last;
                 }
+
+                if ($ret < 0) { # < 0 means a system error
+                    push @illegal_utf8, "$utf8_locale: $time_item:"
+                                     .  disp_str($time_name);
+                }
             }
         }
 
@@ -120,23 +245,25 @@ SKIP: {
             my $symbol = eval $eval_string;
             if ($@) {
                 fail("'$eval_string' failed: $@");
-                last SKIP;
+                $found_monetary = 1;
+                next;
             }
             if (! defined $symbol) {
                 fail("'$eval_string' returned undef");
-                last SKIP;
+                next;
             }
-            if ($symbol =~ /\P{ASCII}/) {
-                ok(utf8::is_utf8($symbol), "The name for 'CRNCYSTR' in $utf8_locale is a UTF8 string");
+
+            my $ret = check_utf8_validity($symbol, 'CRNCY', $utf8_locale);
+            if ($ret > 0) {
                 $found_monetary = 1;
             }
+            elsif ($ret < 0) { # < 0 means a system error
+                push @illegal_utf8, "$utf8_locale: CRNCY:"
+                                 .  disp_str($symbol);
+            }
         }
 
         last if $found_monetary && $found_time;
-
-        # Remove this locale from the list, and loop to find another utf8
-        # locale
-        @locales = grep { $_ ne $utf8_locale } @locales;
     }
 
     if ($found_time + $found_monetary < 2) {
@@ -149,3 +276,9 @@ SKIP: {
         skip("Couldn't find a locale with a non-ascii $message", 2 - $found_time - $found_monetary);
     }
 }
+
+if (@illegal_utf8) {
+    diag join "\n", "The following are illegal UTF-8", @illegal_utf8;
+}
+
+done_testing();
Index: gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.pm,v
diff -u -p -a -u -p -r1.13 NDBM_File.pm
--- gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.pm	30 Dec 2019 02:13:53 -0000	1.13
+++ gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.pm	21 Feb 2024 15:47:02 -0000
@@ -7,7 +7,7 @@ require Tie::Hash;
 require XSLoader;
 
 our @ISA = qw(Tie::Hash);
-our $VERSION = "1.15";
+our $VERSION = "1.16";
 
 XSLoader::load();
 
Index: gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.xs,v
diff -u -p -a -u -p -r1.2 NDBM_File.xs
--- gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.xs	5 Feb 2017 00:32:13 -0000	1.2
+++ gnu/usr.bin/perl/ext/NDBM_File/NDBM_File.xs	21 Feb 2024 15:47:02 -0000
@@ -97,6 +97,12 @@ ndbm_FETCH(db, key)
 	NDBM_File	db
 	datum_key	key
 
+#define ndbm_EXISTS(db,key)			dbm_fetch(db->dbp,key).dptr
+bool
+ndbm_EXISTS(db, key)
+	NDBM_File	db
+	datum_key	key
+
 #define ndbm_STORE(db,key,value,flags)		dbm_store(db->dbp,key,value,flags)
 int
 ndbm_STORE(db, key, value, flags = DBM_REPLACE)
Index: gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm,v
diff -u -p -a -u -p -r1.14 ODBM_File.pm
--- gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm	15 Feb 2023 01:36:31 -0000	1.14
+++ gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.pm	21 Feb 2024 15:47:02 -0000
@@ -7,7 +7,7 @@ require Tie::Hash;
 require XSLoader;
 
 our @ISA = qw(Tie::Hash);
-our $VERSION = "1.17";
+our $VERSION = "1.18";
 
 XSLoader::load();
 
Index: gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs,v
diff -u -p -a -u -p -r1.14 ODBM_File.xs
--- gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs	15 Feb 2023 01:36:31 -0000	1.14
+++ gnu/usr.bin/perl/ext/ODBM_File/ODBM_File.xs	21 Feb 2024 15:47:02 -0000
@@ -28,13 +28,13 @@ datum	nextkey(datum key);
 
 #ifdef DBM_BUG_DUPLICATE_FREE 
 /*
- * DBM on at least Ultrix and HPUX call dbmclose() from dbminit(),
+ * DBM on at least HPUX call dbmclose() from dbminit(),
  * resulting in duplicate free() because dbmclose() does *not*
  * check if it has already been called for this DBM.
  * If some malloc/free calls have been done between dbmclose() and
  * the next dbminit(), the memory might be used for something else when
  * it is freed.
- * Verified to work on ultrix4.3.  Probably will work on HP/UX.
+ * Probably will work on HP/UX.
  * Set DBM_BUG_DUPLICATE_FREE in the extension hint file.
  */
 /* Close the previous dbm, and fail to open a new dbm */
Index: gnu/usr.bin/perl/ext/ODBM_File/hints/ultrix.pl
===================================================================
RCS file: gnu/usr.bin/perl/ext/ODBM_File/hints/ultrix.pl
diff -N gnu/usr.bin/perl/ext/ODBM_File/hints/ultrix.pl
--- gnu/usr.bin/perl/ext/ODBM_File/hints/ultrix.pl	3 Dec 2003 03:02:32 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
-#  Try to work around "bad free" messages.  See note in ODBM_File.xs.
-#   Andy Dougherty  <doughera@lafayette.edu>
-#   Sun Sep  8 12:57:52 EDT 1996
-$self->{CCFLAGS} = $Config{ccflags} . ' -DDBM_BUG_DUPLICATE_FREE' ;
Index: gnu/usr.bin/perl/ext/Opcode/Opcode.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Opcode/Opcode.pm,v
diff -u -p -a -u -p -r1.15 Opcode.pm
--- gnu/usr.bin/perl/ext/Opcode/Opcode.pm	15 Feb 2023 01:36:31 -0000	1.15
+++ gnu/usr.bin/perl/ext/Opcode/Opcode.pm	21 Feb 2024 15:47:02 -0000
@@ -1,31 +1,21 @@
-package Opcode;
-
-use 5.006_001;
+package Opcode 1.64;
 
 use strict;
 
-our($VERSION, @ISA, @EXPORT_OK);
-
-$VERSION = "1.57";
-
 use Carp;
 use Exporter 'import';
 use XSLoader;
 
-BEGIN {
-    @EXPORT_OK = qw(
+sub opset (;@);
+sub opset_to_hex ($);
+sub opdump (;$);
+use subs our @EXPORT_OK = qw(
 	opset ops_to_opset
 	opset_to_ops opset_to_hex invert_opset
 	empty_opset full_opset
 	opdesc opcodes opmask define_optag
 	opmask_add verify_opset opdump
-    );
-}
-
-sub opset (;@);
-sub opset_to_hex ($);
-sub opdump (;$);
-use subs @EXPORT_OK;
+);
 
 XSLoader::load();
 
@@ -312,10 +302,10 @@ invert_opset function.
 
     null stub scalar pushmark wantarray const defined undef
 
-    rv2sv sassign
+    rv2sv sassign padsv_store
 
     rv2av aassign aelem aelemfast aelemfast_lex aslice kvaslice
-    av2arylen
+    av2arylen aelemfastlex_store
 
     rv2hv helem hslice kvhslice each values keys exists delete
     aeach akeys avalues multideref argelem argdefelem argcheck
@@ -342,10 +332,12 @@ invert_opset function.
     list lslice splice push pop shift unshift reverse
 
     cond_expr flip flop andassign orassign dorassign and or dor xor
+    helemexistsor
 
     warn die lineseq nextstate scope enter leave
 
     rv2cv anoncode prototype coreargs avhvswitch anonconst
+    emptyavhv
 
     entersub leavesub leavesublv return method method_named
     method_super method_redir method_redir_super
@@ -359,6 +351,8 @@ invert_opset function.
     leaveeval -- needed for Safe to operate, is safe
 		 without entereval
 
+    methstart initfield
+
 =item :base_mem
 
 These memory related ops are not included in :base_core because they
@@ -450,6 +444,8 @@ These are a hotchpotch of opcodes still 
     custom -- where should this go
 
     ceil floor
+
+    is_tainted
 
 =item :base_math
 
Index: gnu/usr.bin/perl/ext/Opcode/Opcode.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Opcode/Opcode.xs,v
diff -u -p -a -u -p -r1.16 Opcode.xs
--- gnu/usr.bin/perl/ext/Opcode/Opcode.xs	15 Feb 2023 01:36:31 -0000	1.16
+++ gnu/usr.bin/perl/ext/Opcode/Opcode.xs	21 Feb 2024 15:47:02 -0000
@@ -12,7 +12,6 @@
 typedef struct {
     HV *	x_op_named_bits;	/* cache shared for whole process */
     SV *	x_opset_all;		/* mask with all bits set	*/
-    IV		x_opset_len;		/* length of opmasks in bytes	*/
 #ifdef OPCODE_DEBUG
     int		x_opcode_debug;		/* unused warn() emitting debugging code */
 #endif
@@ -20,9 +19,11 @@ typedef struct {
 
 START_MY_CXT
 
+/* length of opmasks in bytes */
+static const STRLEN opset_len = (PL_maxo + 7) / 8;
+
 #define op_named_bits		(MY_CXT.x_op_named_bits)
 #define opset_all		(MY_CXT.x_opset_all)
-#define opset_len		(MY_CXT.x_opset_len)
 #ifdef OPCODE_DEBUG
 #  define opcode_debug		(MY_CXT.x_opcode_debug)
 #else
@@ -50,13 +51,13 @@ op_names_init(pTHX)
 {
     int i;
     STRLEN len;
-    char **op_names;
+    const char *const *op_names;
     U8 *bitmap;
     dMY_CXT;
 
     op_named_bits = newHV();
     hv_ksplit(op_named_bits, PL_maxo);
-    op_names = get_op_names();
+    op_names = PL_op_name;
     for(i=0; i < PL_maxo; ++i) {
 	SV * const sv = newSViv(i);
 	SvREADONLY_on(sv);
@@ -128,7 +129,6 @@ static SV *
 new_opset(pTHX_ SV *old_opset)
 {
     SV *opset;
-    dMY_CXT;
 
     if (old_opset) {
 	verify_opset(aTHX_ old_opset,1);
@@ -149,11 +149,10 @@ static int
 verify_opset(pTHX_ SV *opset, int fatal)
 {
     const char *err = NULL;
-    dMY_CXT;
 
     if      (!SvOK(opset))              err = "undefined";
     else if (!SvPOK(opset))             err = "wrong type";
-    else if (SvCUR(opset) != (STRLEN)opset_len) err = "wrong size";
+    else if (SvCUR(opset) != opset_len) err = "wrong size";
     if (err && fatal) {
 	croak("Invalid opset: %s", err);
     }
@@ -164,8 +163,6 @@ verify_opset(pTHX_ SV *opset, int fatal)
 static void
 set_opset_bits(pTHX_ char *bitmap, SV *bitspec, int on, const char *opname)
 {
-    dMY_CXT;
-
     if (SvIOK(bitspec)) {
 	const int myopcode = SvIV(bitspec);
 	const int offset = myopcode >> 3;
@@ -180,7 +177,7 @@ set_opset_bits(pTHX_ char *bitmap, SV *b
 	else
 	    bitmap[offset] &= ~(1 << bit);
     }
-    else if (SvPOK(bitspec) && SvCUR(bitspec) == (STRLEN)opset_len) {
+    else if (SvPOK(bitspec) && SvCUR(bitspec) == opset_len) {
 
 	STRLEN len;
 	const char * const specbits = SvPV(bitspec, len);
@@ -200,11 +197,10 @@ set_opset_bits(pTHX_ char *bitmap, SV *b
 static void
 opmask_add(pTHX_ SV *opset)	/* THE ONLY FUNCTION TO EDIT PL_op_mask ITSELF	*/
 {
-    int i,j;
+    int j;
     char *bitmask;
     STRLEN len;
     int myopcode = 0;
-    dMY_CXT;
 
     verify_opset(aTHX_ opset,1);		/* croaks on bad opset	*/
 
@@ -214,7 +210,7 @@ opmask_add(pTHX_ SV *opset)	/* THE ONLY 
     /* OPCODES ALREADY MASKED ARE NEVER UNMASKED. See opmask_addlocal()	*/
 
     bitmask = SvPV(opset, len);
-    for (i=0; i < opset_len; i++) {
+    for (STRLEN i=0; i < opset_len; i++) {
 	const U16 bits = bitmask[i];
 	if (!bits) {	/* optimise for sparse masks */
 	    myopcode += 8;
@@ -258,7 +254,6 @@ BOOT:
 {
     MY_CXT_INIT;
     STATIC_ASSERT_STMT(PL_maxo < OP_MASK_BUF_SIZE);
-    opset_len = (PL_maxo + 7) / 8;
     if (opcode_debug >= 1)
 	warn("opset_len %ld\n", (long)opset_len);
     op_names_init(aTHX);
@@ -353,7 +348,6 @@ invert_opset(opset)
 CODE:
     {
     char *bitmap;
-    dMY_CXT;
     STRLEN len = opset_len;
 
     opset = sv_2mortal(new_opset(aTHX_ opset));	/* verify and clone opset */
@@ -374,10 +368,10 @@ opset_to_ops(opset, desc = 0)
 PPCODE:
     {
     STRLEN len;
-    int i, j, myopcode;
+    STRLEN i;
+    int j, myopcode;
     const char * const bitmap = SvPV(opset, len);
-    char **names = (desc) ? get_op_descs() : get_op_names();
-    dMY_CXT;
+    const char *const *names = (desc) ? PL_op_desc : PL_op_name;
 
     verify_opset(aTHX_ opset,1);
     for (myopcode=0, i=0; i < opset_len; i++) {
@@ -467,8 +461,7 @@ PPCODE:
     int i;
     STRLEN len;
     SV **args;
-    char **op_desc = get_op_descs(); 
-    dMY_CXT;
+    const char *const *op_desc = PL_op_desc;
 
     /* copy args to a scratch area since we may push output values onto	*/
     /* the stack faster than we read values off it if masks are used.	*/
@@ -483,8 +476,9 @@ PPCODE:
 	    XPUSHs(newSVpvn_flags(op_desc[myopcode], strlen(op_desc[myopcode]),
 				  SVs_TEMP));
 	}
-	else if (SvPOK(bitspec) && SvCUR(bitspec) == (STRLEN)opset_len) {
-	    int b, j;
+        else if (SvPOK(bitspec) && SvCUR(bitspec) == opset_len) {
+            STRLEN b;
+            int j;
 	    const char * const bitmap = SvPV_nolen_const(bitspec);
 	    int myopcode = 0;
 	    for (b=0; b < opset_len; b++) {
Index: gnu/usr.bin/perl/ext/POSIX/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/POSIX/Makefile.PL,v
diff -u -p -a -u -p -r1.4 Makefile.PL
--- gnu/usr.bin/perl/ext/POSIX/Makefile.PL	15 Feb 2023 01:36:31 -0000	1.4
+++ gnu/usr.bin/perl/ext/POSIX/Makefile.PL	21 Feb 2024 15:47:02 -0000
@@ -51,7 +51,7 @@ my @names =
       EUSERS EWOULDBLOCK EXDEV FILENAME_MAX F_OK HUPCL ICANON ICRNL IEXTEN
       IGNBRK IGNCR IGNPAR INLCR INPCK INT_MAX INT_MIN ISIG ISTRIP IXOFF IXON
       LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT
-      LC_MESSAGES LC_MONETARY LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME
+      LC_MESSAGES LC_MONETARY LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_NAME
       LINK_MAX LONG_MAX LONG_MIN L_ctermid L_cuserid MAX_CANON
       MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
       MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST
Index: gnu/usr.bin/perl/ext/POSIX/POSIX.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/POSIX/POSIX.xs,v
diff -u -p -a -u -p -r1.28 POSIX.xs
--- gnu/usr.bin/perl/ext/POSIX/POSIX.xs	15 Feb 2023 01:36:31 -0000	1.28
+++ gnu/usr.bin/perl/ext/POSIX/POSIX.xs	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,9 @@
 #define PERL_EXT_POSIX
 #define PERL_EXT
 
+#if defined(_WIN32) && defined(__GNUC__) /* mingw compiler */
+#define _POSIX_
+#endif
 #define PERL_NO_GET_CONTEXT
 
 #include "EXTERN.h"
@@ -1018,7 +1021,7 @@ static NV my_log2(NV x)
 /* XXX nexttoward */
 
 /* GCC's FLT_ROUNDS is (wrongly) hardcoded to 1 (at least up to 11.x) */
-#if defined(PERL_IS_GCC) /* && __GNUC__ < XXX */
+#if defined(PERL_IS_GCC) /* && __GNUC__ < XXX */ || (defined(__clang__) && defined(__s390x__))
 #  define BROKEN_FLT_ROUNDS
 #endif
 
@@ -1341,9 +1344,6 @@ static NV_PAYLOAD_TYPE S_getpayload(NV n
 #include <termios.h>
 #endif
 #include <stdlib.h>
-#ifndef __ultrix__
-#include <string.h>
-#endif
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <time.h>
@@ -1560,77 +1560,6 @@ END_EXTERN_C
 #endif
 #endif
 
-#if ! defined(HAS_LOCALECONV) && ! defined(HAS_LOCALECONV_L)
-#   define localeconv() not_here("localeconv")
-#else
-struct lconv_offset {
-    const char *name;
-    size_t offset;
-};
-
-static const struct lconv_offset lconv_strings[] = {
-#ifdef USE_LOCALE_NUMERIC
-    {"decimal_point",     STRUCT_OFFSET(struct lconv, decimal_point)},
-    {"thousands_sep",     STRUCT_OFFSET(struct lconv, thousands_sep)},
-#  ifndef NO_LOCALECONV_GROUPING
-    {"grouping",          STRUCT_OFFSET(struct lconv, grouping)},
-#  endif
-#endif
-#ifdef USE_LOCALE_MONETARY
-    {"int_curr_symbol",   STRUCT_OFFSET(struct lconv, int_curr_symbol)},
-    {"currency_symbol",   STRUCT_OFFSET(struct lconv, currency_symbol)},
-    {"mon_decimal_point", STRUCT_OFFSET(struct lconv, mon_decimal_point)},
-#  ifndef NO_LOCALECONV_MON_THOUSANDS_SEP
-    {"mon_thousands_sep", STRUCT_OFFSET(struct lconv, mon_thousands_sep)},
-#  endif
-#  ifndef NO_LOCALECONV_MON_GROUPING
-    {"mon_grouping",      STRUCT_OFFSET(struct lconv, mon_grouping)},
-#  endif
-    {"positive_sign",     STRUCT_OFFSET(struct lconv, positive_sign)},
-    {"negative_sign",     STRUCT_OFFSET(struct lconv, negative_sign)},
-#endif
-    {NULL, 0}
-};
-
-#ifdef USE_LOCALE_NUMERIC
-
-/* The Linux man pages say these are the field names for the structure
- * components that are LC_NUMERIC; the rest being LC_MONETARY */
-#   define isLC_NUMERIC_STRING(name) (   strEQ(name, "decimal_point")   \
-                                      || strEQ(name, "thousands_sep")   \
-                                                                        \
-                                      /* There should be no harm done   \
-                                       * checking for this, even if     \
-                                       * NO_LOCALECONV_GROUPING */      \
-                                      || strEQ(name, "grouping"))
-#else
-#   define isLC_NUMERIC_STRING(name) (0)
-#endif
-
-static const struct lconv_offset lconv_integers[] = {
-#ifdef USE_LOCALE_MONETARY
-    {"int_frac_digits",   STRUCT_OFFSET(struct lconv, int_frac_digits)},
-    {"frac_digits",       STRUCT_OFFSET(struct lconv, frac_digits)},
-    {"p_cs_precedes",     STRUCT_OFFSET(struct lconv, p_cs_precedes)},
-    {"p_sep_by_space",    STRUCT_OFFSET(struct lconv, p_sep_by_space)},
-    {"n_cs_precedes",     STRUCT_OFFSET(struct lconv, n_cs_precedes)},
-    {"n_sep_by_space",    STRUCT_OFFSET(struct lconv, n_sep_by_space)},
-    {"p_sign_posn",       STRUCT_OFFSET(struct lconv, p_sign_posn)},
-    {"n_sign_posn",       STRUCT_OFFSET(struct lconv, n_sign_posn)},
-#ifdef HAS_LC_MONETARY_2008
-    {"int_p_cs_precedes",  STRUCT_OFFSET(struct lconv, int_p_cs_precedes)},
-    {"int_p_sep_by_space", STRUCT_OFFSET(struct lconv, int_p_sep_by_space)},
-    {"int_n_cs_precedes",  STRUCT_OFFSET(struct lconv, int_n_cs_precedes)},
-    {"int_n_sep_by_space", STRUCT_OFFSET(struct lconv, int_n_sep_by_space)},
-    {"int_p_sign_posn",    STRUCT_OFFSET(struct lconv, int_p_sign_posn)},
-    {"int_n_sign_posn",    STRUCT_OFFSET(struct lconv, int_n_sign_posn)},
-#endif
-#endif
-    {NULL, 0}
-};
-
-#endif /* HAS_LOCALECONV */
-
 #ifdef HAS_LONG_DOUBLE
 #  if LONG_DOUBLESIZE > NVSIZE
 #    undef HAS_LONG_DOUBLE  /* XXX until we figure out how to use them */
@@ -1819,7 +1748,12 @@ my_tzset(pTHX)
 #endif
         fix_win32_tzenv();
 #endif
+    TZSET_LOCK;
     tzset();
+    TZSET_UNLOCK;
+    /* After the unlock, another thread could change things, but this is a
+     * problem with the Posix API generally, not Perl; and the result will be
+     * self-consistent */
 }
 
 MODULE = SigSet		PACKAGE = POSIX::SigSet		PREFIX = sig
@@ -2124,138 +2058,10 @@ HV *
 localeconv()
     CODE:
 #ifndef HAS_LOCALECONV
-	localeconv(); /* A stub to call not_here(). */
+        RETVAL = NULL;
+        not_here("localeconv");
 #else
-	struct lconv *lcbuf;
-#  if defined(USE_ITHREADS)                                             \
-   && defined(HAS_POSIX_2008_LOCALE)                                    \
-   && defined(HAS_LOCALECONV_L) /* Prefer this thread-safe version */
-        bool do_free = FALSE;
-        locale_t cur = NULL;
-#  elif defined(TS_W32_BROKEN_LOCALECONV)
-        const char * save_global;
-        const char * save_thread;
-#  endif
-        DECLARATION_FOR_LC_NUMERIC_MANIPULATION;
-
-        /* localeconv() deals with both LC_NUMERIC and LC_MONETARY, but
-         * LC_MONETARY is already in the correct locale */
-#  ifdef USE_LOCALE_MONETARY
-
-        const bool is_monetary_utf8 = _is_cur_LC_category_utf8(LC_MONETARY);
-#  endif
-#  ifdef USE_LOCALE_NUMERIC
-
-        bool is_numeric_utf8;
-
-        STORE_LC_NUMERIC_FORCE_TO_UNDERLYING();
-
-        is_numeric_utf8 = _is_cur_LC_category_utf8(LC_NUMERIC);
-#  endif
-
-	RETVAL = newHV();
-	sv_2mortal((SV*)RETVAL);
-#  if defined(USE_ITHREADS)                         \
-   && defined(HAS_POSIX_2008_LOCALE)                \
-   && defined(HAS_LOCALECONV_L)
-
-        cur = uselocale((locale_t) 0);
-        if (cur == LC_GLOBAL_LOCALE) {
-            cur = duplocale(LC_GLOBAL_LOCALE);
-            do_free = TRUE;
-        }
-
-        lcbuf = localeconv_l(cur);
-#  else
-        LOCALECONV_LOCK;    /* Prevent interference with other threads using
-                               localeconv() */
-#    ifdef TS_W32_BROKEN_LOCALECONV
-        /* This is a workaround for a Windows bug prior to VS 15, in which
-         * localeconv only looks at the global locale.  We toggle to the global
-         * locale; populate the return; then toggle back.  We have to use
-         * LC_ALL instead of the individual ones because of another bug in
-         * Windows */
-
-        save_thread  = savepv(Perl_setlocale(LC_NUMERIC, NULL));
-
-        _configthreadlocale(_DISABLE_PER_THREAD_LOCALE);
-
-        save_global  = savepv(Perl_setlocale(LC_ALL, NULL));
-
-        Perl_setlocale(LC_ALL,  save_thread);
-#    endif
-        lcbuf = localeconv();
-#  endif
-	if (lcbuf) {
-	    const struct lconv_offset *strings = lconv_strings;
-	    const struct lconv_offset *integers = lconv_integers;
-	    const char *ptr = (const char *) lcbuf;
-
-	    while (strings->name) {
-                /* This string may be controlled by either LC_NUMERIC, or
-                 * LC_MONETARY */
-                const bool is_utf8_locale =
-#  if defined(USE_LOCALE_NUMERIC) && defined(USE_LOCALE_MONETARY)
-                                        (isLC_NUMERIC_STRING(strings->name))
-                                        ? is_numeric_utf8
-                                        : is_monetary_utf8;
-#  elif defined(USE_LOCALE_NUMERIC)
-                                        is_numeric_utf8;
-#  elif defined(USE_LOCALE_MONETARY)
-                                        is_monetary_utf8;
-#  else
-                                        FALSE;
-#  endif
-
-		const char *value = *((const char **)(ptr + strings->offset));
-
-		if (value && *value) {
-                    const STRLEN value_len = strlen(value);
-
-                    /* We mark it as UTF-8 if a utf8 locale and is valid and
-                     * variant under UTF-8 */
-                    const bool is_utf8 = is_utf8_locale
-                                     &&  is_utf8_non_invariant_string(
-                                                                (U8*) value,
-                                                                value_len);
-		    (void) hv_store(RETVAL,
-                                    strings->name,
-                                    strlen(strings->name),
-                                    newSVpvn_utf8(value, value_len, is_utf8),
-                                    0);
-            }
-                strings++;
-	    }
-
-	    while (integers->name) {
-		const char value = *((const char *)(ptr + integers->offset));
-
-		if (value != CHAR_MAX)
-		    (void) hv_store(RETVAL, integers->name,
-				    strlen(integers->name), newSViv(value), 0);
-                integers++;
-            }
-	}
-#  if defined(USE_ITHREADS)                         \
-   && defined(HAS_POSIX_2008_LOCALE)                \
-   && defined(HAS_LOCALECONV_L)
-        if (do_free) {
-            freelocale(cur);
-        }
-#  else
-#    ifdef TS_W32_BROKEN_LOCALECONV
-        Perl_setlocale(LC_ALL, save_global);
-
-        _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
-
-        Perl_setlocale(LC_ALL, save_thread);
-
-        Safefree(save_global);
-        Safefree(save_thread);
-#    endif
-        LOCALECONV_UNLOCK;
-#  endif
-        RESTORE_LC_NUMERIC();
+        RETVAL = Perl_localeconv(aTHX);
 #endif  /* HAS_LOCALECONV */
     OUTPUT:
 	RETVAL
@@ -3383,9 +3189,9 @@ mblen(s, n = ~0)
             memzero(&PL_mbrlen_ps, sizeof(PL_mbrlen_ps));
             RETVAL = 0;
 #else
-            MBLEN_LOCK;
+            MBLEN_LOCK_;
             RETVAL = mblen(NULL, 0);
-            MBLEN_UNLOCK;
+            MBLEN_UNLOCK_;
 #endif
         }
         else {  /* Not resetting state */
@@ -3396,51 +3202,45 @@ mblen(s, n = ~0)
             }
             else {
                 size_t len;
-                char * string = SvPV(byte_s, len);
+                char * string = SvPVbyte(byte_s, len);
                 if (n < len) len = n;
 #ifdef USE_MBRLEN
+                MBRLEN_LOCK_;
                 RETVAL = (SSize_t) mbrlen(string, len, &PL_mbrlen_ps);
+                MBRLEN_UNLOCK_;
                 if (RETVAL < 0) RETVAL = -1;    /* Use mblen() ret code for
                                                    transparency */
 #else
                 /* Locking prevents races, but locales can be switched out
                  * without locking, so this isn't a cure all */
-                MBLEN_LOCK;
+                MBLEN_LOCK_;
                 RETVAL = mblen(string, len);
-                MBLEN_UNLOCK;
+                MBLEN_UNLOCK_;
 #endif
             }
         }
     OUTPUT:
         RETVAL
 
-#if defined(HAS_MBRTOWC) && (defined(USE_ITHREADS) || ! defined(HAS_MBTOWC))
-#  define USE_MBRTOWC
-#else
-#  undef USE_MBRTOWC
-#endif
-
 int
 mbtowc(pwc, s, n = ~0)
 	SV *	        pwc
 	SV *		s
 	size_t		n
     CODE:
+        RETVAL = -1;
+#if ! defined(HAS_MBTOWC) && ! defined(HAS_MBRTOWC)
+        PERL_UNUSED_ARG(pwc);
+        PERL_UNUSED_ARG(s);
+        PERL_UNUSED_ARG(n);
+#else
         errno = 0;
         SvGETMAGIC(s);
         if (! SvOK(s)) { /* Initialize state */
-#ifdef USE_MBRTOWC
-            /* Initialize the shift state to all zeros in PL_mbrtowc_ps. */
-            memzero(&PL_mbrtowc_ps, sizeof(PL_mbrtowc_ps));
-            RETVAL = 0;
-#else
-            MBTOWC_LOCK;
-            RETVAL = mbtowc(NULL, NULL, 0);
-            MBTOWC_UNLOCK;
-#endif
+            mbtowc_(NULL, NULL, 0);
         }
         else {  /* Not resetting state */
-            wchar_t wc;
+            wchar_t wc = 0;
             SV * byte_s = sv_2mortal(newSVsv_nomg(s));
             if (! sv_utf8_downgrade_nomg(byte_s, TRUE)) {
                 SETERRNO(EINVAL, LIB_INVARG);
@@ -3448,17 +3248,9 @@ mbtowc(pwc, s, n = ~0)
             }
             else {
                 size_t len;
-                char * string = SvPV(byte_s, len);
+                char * string = SvPVbyte(byte_s, len);
                 if (n < len) len = n;
-#ifdef USE_MBRTOWC
-                RETVAL = (SSize_t) mbrtowc(&wc, string, len, &PL_mbrtowc_ps);
-#else
-                /* Locking prevents races, but locales can be switched out
-                 * without locking, so this isn't a cure all */
-                MBTOWC_LOCK;
-                RETVAL = mbtowc(&wc, string, len);
-                MBTOWC_UNLOCK;
-#endif
+                RETVAL = mbtowc_(&wc, string, len);
                 if (RETVAL >= 0) {
                     sv_setiv_mg(pwc, wc);
                 }
@@ -3467,6 +3259,7 @@ mbtowc(pwc, s, n = ~0)
                 }
             }
         }
+#endif
     OUTPUT:
         RETVAL
 
@@ -3487,23 +3280,27 @@ wctomb(s, wchar)
 #ifdef USE_WCRTOMB
             /* The man pages khw looked at are in agreement that this works.
              * But probably memzero would too */
+            WCRTOMB_LOCK_;
             RETVAL = wcrtomb(NULL, L'\0', &PL_wcrtomb_ps);
+            WCRTOMB_UNLOCK_;
 #else
-            WCTOMB_LOCK;
+            WCTOMB_LOCK_;
             RETVAL = wctomb(NULL, L'\0');
-            WCTOMB_UNLOCK;
+            WCTOMB_UNLOCK_;
 #endif
         }
         else {  /* Not resetting state */
             char buffer[MB_LEN_MAX];
 #ifdef USE_WCRTOMB
+            WCRTOMB_LOCK_;
             RETVAL = wcrtomb(buffer, wchar, &PL_wcrtomb_ps);
+            WCRTOMB_UNLOCK_;
 #else
             /* Locking prevents races, but locales can be switched out without
              * locking, so this isn't a cure all */
-            WCTOMB_LOCK;
+            WCTOMB_LOCK_;
             RETVAL = wctomb(buffer, wchar);
-            WCTOMB_UNLOCK;
+            WCTOMB_UNLOCK_;
 #endif
             if (RETVAL >= 0) {
                 sv_setpvn_mg(s, buffer, RETVAL);
@@ -3516,6 +3313,12 @@ int
 strcoll(s1, s2)
 	char *		s1
 	char *		s2
+    CODE:
+        LC_COLLATE_LOCK;
+        RETVAL = strcoll(s1, s2);
+        LC_COLLATE_UNLOCK;
+    OUTPUT:
+        RETVAL
 
 void
 strtod(str)
@@ -3631,24 +3434,11 @@ void
 strxfrm(src)
 	SV *		src
     CODE:
-	{
-          STRLEN srclen;
-          STRLEN dstlen;
-          STRLEN buflen;
-          char *p = SvPV(src,srclen);
-          srclen++;
-          buflen = srclen * 4 + 1;
-          ST(0) = sv_2mortal(newSV(buflen));
-          dstlen = strxfrm(SvPVX(ST(0)), p, (size_t)buflen);
-          if (dstlen >= buflen) {
-              dstlen++;
-              SvGROW(ST(0), dstlen);
-              strxfrm(SvPVX(ST(0)), p, (size_t)dstlen);
-              dstlen--;
-          }
-          SvCUR_set(ST(0), dstlen);
-	    SvPOK_only(ST(0));
-	}
+#ifdef USE_LOCALE_COLLATE
+      ST(0) = Perl_strxfrm(aTHX_ src);
+#else
+      ST(0) = src;
+#endif
 
 SysRet
 mkfifo(filename, mode)
@@ -3730,7 +3520,10 @@ asctime(sec, min, hour, mday, mon, year,
 	    mytm.tm_yday = yday;
 	    mytm.tm_isdst = isdst;
 	    if (ix) {
-	        const time_t result = mktime(&mytm);
+	        time_t result;
+                MKTIME_LOCK;
+	        result = mktime(&mytm);
+                MKTIME_UNLOCK;
 		if (result == (time_t)-1)
 		    SvOK_off(TARG);
 		else if (result == 0)
@@ -3738,7 +3531,9 @@ asctime(sec, min, hour, mday, mon, year,
 		else
 		    sv_setiv(TARG, (IV)result);
 	    } else {
+                ASCTIME_LOCK;
 		sv_setpv(TARG, asctime(&mytm));
+                ASCTIME_UNLOCK;
 	    }
 	    ST(0) = TARG;
 	    XSRETURN(1);
@@ -3788,29 +3583,19 @@ strftime(fmt, sec, min, hour, mday, mon,
 	{
 	    char *buf;
             SV *sv;
+            utf8ness_t is_utf8;
 
             /* allowing user-supplied (rather than literal) formats
              * is normally frowned upon as a potential security risk;
              * but this is part of the API so we have to allow it */
             GCC_DIAG_IGNORE_STMT(-Wformat-nonliteral);
-	    buf = my_strftime(SvPV_nolen(fmt), sec, min, hour, mday, mon, year, wday, yday, isdst);
+	    buf = my_strftime8_temp(SvPV_nolen(fmt), sec, min, hour, mday, mon, year, wday, yday, isdst, &is_utf8);
             GCC_DIAG_RESTORE_STMT;
             sv = sv_newmortal();
 	    if (buf) {
                 STRLEN len = strlen(buf);
 		sv_usepvn_flags(sv, buf, len, SV_HAS_TRAILING_NUL);
-		if (       SvUTF8(fmt)
-                    || (   is_utf8_non_invariant_string((U8*) buf, len)
-#ifdef USE_LOCALE_TIME
-                        && _is_cur_LC_category_utf8(LC_TIME)
-#else   /* If can't check directly, at least can see if script is consistent,
-           under UTF-8, which gives us an extra measure of confidence. */
-
-                        && isSCRIPT_RUN((const U8 *) buf,
-                                        (const U8 *) buf + len,
-                                        TRUE) /* Means assume UTF-8 */
-#endif
-                )) {
+		if (SvUTF8(fmt) || is_utf8 == UTF8NESS_YES) {
 		    SvUTF8_on(sv);
 		}
             }
@@ -3835,8 +3620,12 @@ void
 tzname()
     PPCODE:
 	EXTEND(SP,2);
+        /* It is undefined behavior if another thread is changing this while
+         * its being read */
+        ENVr_LOCALEr_LOCK;
 	PUSHs(newSVpvn_flags(tzname[0], strlen(tzname[0]), SVs_TEMP));
 	PUSHs(newSVpvn_flags(tzname[1], strlen(tzname[1]), SVs_TEMP));
+        ENVr_LOCALEr_UNLOCK;
 
 char *
 ctermid(s = 0)
Index: gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pm,v
diff -u -p -a -u -p -r1.7 POSIX.pm
--- gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pm	15 Feb 2023 01:36:31 -0000	1.7
+++ gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use warnings;
 
 our ($AUTOLOAD, %SIGRT);
 
-our $VERSION = '2.03';
+our $VERSION = '2.13';
 
 require XSLoader;
 
@@ -12,7 +12,7 @@ use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD 
 	     F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
 	     O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
 	     O_WRONLY SEEK_CUR SEEK_END SEEK_SET
-	     S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
+	     S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISLNK S_ISREG S_ISSOCK
 	     S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
 	     S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
 
@@ -278,7 +278,7 @@ my %default_export_tags = ( # cf. export
 		creat
 		SEEK_CUR SEEK_END SEEK_SET
 		S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
-		S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID
+		S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK S_ISUID
 		S_IWGRP S_IWOTH S_IWUSR)],
 
     float_h =>	[qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG
@@ -307,7 +307,7 @@ my %default_export_tags = ( # cf. export
 
     locale_h =>	[qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
 		    LC_MONETARY LC_NUMERIC LC_TIME LC_IDENTIFICATION
-                    LC_MEASUREMENT LC_PAPER LC_TELEPHONE LC_ADDRESS
+                    LC_MEASUREMENT LC_PAPER LC_TELEPHONE LC_ADDRESS LC_NAME
                     LC_SYNTAX LC_TOD NULL
 		    localeconv setlocale)],
 
@@ -357,7 +357,7 @@ my %default_export_tags = ( # cf. export
 		strtok strxfrm)],
 
     sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU
-		S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG
+		S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK
 		S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR
 		fstat mkfifo)],
 
Index: gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod,v
diff -u -p -a -u -p -r1.11 POSIX.pod
--- gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod	15 Feb 2023 01:36:31 -0000	1.11
+++ gnu/usr.bin/perl/ext/POSIX/lib/POSIX.pod	21 Feb 2024 15:47:02 -0000
@@ -10,9 +10,9 @@ POSIX - Perl interface to IEEE Std 1003.
 
     printf "EINTR is %d\n", EINTR;
 
-    $sess_id = POSIX::setsid();
+    my $sess_id = POSIX::setsid();
 
-    $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
+    my $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
 	# note: that's a filedescriptor, *NOT* a filehandle
 
 =head1 DESCRIPTION
@@ -501,7 +501,7 @@ than the explicit two operations [C99]. 
 Maximum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
 Added in Perl v5.22.
 
- my $min = POSIX::fmax($x, $y);
+ my $max = POSIX::fmax($x, $y);
 
 =item C<fmin>
 
@@ -1015,6 +1015,18 @@ Here is how to query the database for th
 The members whose names begin with C<int_p_> and C<int_n_> were added by
 POSIX.1-2008 and are only available on systems that support them.
 
+A value of -1 returned for numeric entries indicates that the field is
+not applicable to the locale.  This is rare except in the C and related
+locales, which don't have most monetary values defined.  It can also
+happen, quirkily, in fields that are otherwise boolean to indicate that
+the value is kind of neither true nor false.  This happens in C<p_cs_precedes>
+and C<int_p_cs_precedes> when the currency symbol neither precedes nor
+succeeds a positive value but is infixed, by replacing the radix
+character.
+
+Prior to Perl v5.37.7, empty string fields and numeric fields with value
+-1 were omittted from the returned hash.
+
 =item C<localtime>
 
 This is identical to Perl's builtin C<localtime()> function for
@@ -1134,9 +1146,10 @@ parameter is stored.  The optional third
 larger than the actual length of the second parameter string.
 
 Use C<undef> as the second parameter to this function to get the effect
-of passing NULL as the second parameter to C<mbtowc>.  This resets any
-shift state to its initial value.  The return value is undefined if
-C<mbrtowc> was substituted, so you should never rely on it.
+of passing NULL as the second parameter to C<mbtowc>.  This ignores the
+first parameter, and resets any shift state to its initial value.  The
+return value is undefined if C<mbrtowc> was substituted, so you should
+never rely on it.
 
 When the second parameter is a scalar containing a value that either is
 a PV string or can be forced into one, the return value is the number of
@@ -1827,7 +1840,7 @@ about these and the other arguments.
 
 If you want your code to be portable, your format (C<fmt>) argument
 should use only the conversion specifiers defined by the ANSI C
-standard (C89, to play safe).  These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
+standard (C99, to play safe).  These are C<aAbBcdHIjmMpSUwWxXyYZ%>.
 But even then, the B<results> of some of the conversion specifiers are
 non-portable.  For example, the specifiers C<aAbBcpZ> change according
 to the locale settings of the user, and both how to set locales (the
@@ -1972,9 +1985,14 @@ Used with C<eq> or C<cmp> as an alternat
 Not really needed since Perl can do this transparently, see
 L<perllocale>.
 
-Beware that in a UTF-8 locale, anything you pass to this function must
-be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
-UTF-8 encoded.
+Unlike the libc C<strxfrm>, this allows NUL characters in the input
+C<$src>.
+
+It doesn't make sense for a string to be encoded in one locale (say,
+ISO-8859-6, Arabic) and to collate it based on another (like ISO-8859-7,
+Greek).  Perl assumes that the current C<LC_CTYPE> locale correctly
+represents the encoding of C<$src>, and ignores the value of
+C<LC_COLLATE>.
 
 =item C<sysconf>
 
@@ -2197,9 +2215,10 @@ L</mblen> and L</mbtowc> may be used to 
 of other types of multi-byte locales.
 
 Use C<undef> as the first parameter to this function to get the effect
-of passing NULL as the first parameter to C<wctomb>.  This resets any
-shift state to its initial value.  The return value is undefined if
-C<wcrtomb> was substituted, so you should never rely on it.
+of passing NULL as the first parameter to C<wctomb>.  This ignores the
+second parameter, and resets any shift state to its initial value.  The
+return value is undefined if C<wcrtomb> was substituted, so you should
+never rely on it.
 
 When the first parameter is a scalar, the code point contained in the
 scalar second parameter is converted into a multi-byte string and stored
@@ -2740,7 +2759,7 @@ C<S_IWUSR> C<S_IXGRP> C<S_IXOTH> C<S_IXU
 
 =item Macros
 
-C<S_ISBLK> C<S_ISCHR> C<S_ISDIR> C<S_ISFIFO> C<S_ISREG>
+C<S_ISBLK> C<S_ISCHR> C<S_ISDIR> C<S_ISFIFO> C<S_ISLNK> C<S_ISREG> C<S_ISSOCK>
 
 =back
 
Index: gnu/usr.bin/perl/ext/POSIX/t/export.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/POSIX/t/export.t,v
diff -u -p -a -u -p -r1.4 export.t
--- gnu/usr.bin/perl/ext/POSIX/t/export.t	15 Feb 2023 01:36:31 -0000	1.4
+++ gnu/usr.bin/perl/ext/POSIX/t/export.t	21 Feb 2024 15:47:02 -0000
@@ -48,7 +48,7 @@ my %expect = (
             INT_MAX INT_MIN ISIG ISTRIP IXOFF IXON
             LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION
             LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NUMERIC LC_PAPER
-            LC_TELEPHONE LC_TIME LC_SYNTAX LC_TOD LDBL_DIG
+            LC_TELEPHONE LC_TIME LC_NAME LC_SYNTAX LC_TOD LDBL_DIG
             LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX LDBL_MAX_10_EXP
             LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP LINK_MAX
             LONG_MAX LONG_MIN L_ctermid L_cuserid MAX_CANON
@@ -66,7 +66,7 @@ my %expect = (
             SIG_IGN SIG_SETMASK SIG_UNBLOCK SSIZE_MAX STDERR_FILENO
             STDIN_FILENO STDOUT_FILENO STREAM_MAX S_IRGRP S_IROTH S_IRUSR
             S_IRWXG S_IRWXO S_IRWXU S_ISBLK S_ISCHR S_ISDIR S_ISFIFO
-            S_ISGID S_ISREG S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP
+            S_ISGID S_ISLNK S_ISREG S_ISSOCK S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP
             S_IXOTH S_IXUSR TCIFLUSH TCIOFF TCIOFLUSH TCION TCOFLUSH
             TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW TMP_MAX TOSTOP
             TZNAME_MAX UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX VEOF VEOL
Index: gnu/usr.bin/perl/ext/POSIX/t/posix.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/POSIX/t/posix.t,v
diff -u -p -a -u -p -r1.10 posix.t
--- gnu/usr.bin/perl/ext/POSIX/t/posix.t	15 Feb 2023 01:36:31 -0000	1.10
+++ gnu/usr.bin/perl/ext/POSIX/t/posix.t	21 Feb 2024 15:47:02 -0000
@@ -373,10 +373,9 @@ SKIP: {
 		currency_symbol mon_decimal_point mon_thousands_sep
 		mon_grouping positive_sign negative_sign)) {
     SKIP: {
-	    skip("localeconv has no result for $_", 1)
-		unless exists $conv->{$_};
-	    unlike(delete $conv->{$_}, qr/\A\z/,
-		   "localeconv returned a non-empty string for $_");
+	    my $value = delete $conv->{$_};
+	    skip("localeconv '$_' may be empty", 1) if $_ ne 'decimal_point';
+	    isnt($value, "", "localeconv returned a non-empty string for $_");
 	}
     }
 
@@ -399,8 +398,6 @@ SKIP: {
 
     foreach (@lconv) {
     SKIP: {
-	    skip("localeconv has no result for $_", 1)
-		unless exists $conv->{$_};
 	    like(delete $conv->{$_}, qr/\A-?\d+\z/,
 		 "localeconv returned an integer for $_");
 	}
Index: gnu/usr.bin/perl/ext/Pod-Functions/t/Functions.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Pod-Functions/t/Functions.t,v
diff -u -p -a -u -p -r1.3 Functions.t
--- gnu/usr.bin/perl/ext/Pod-Functions/t/Functions.t	15 Feb 2023 01:36:32 -0000	1.3
+++ gnu/usr.bin/perl/ext/Pod-Functions/t/Functions.t	21 Feb 2024 15:47:02 -0000
@@ -115,10 +115,11 @@ Functions for filehandles, files, or dir
 Keywords related to the control flow of your Perl program:
      __FILE__, __LINE__, __PACKAGE__, __SUB__, break, caller,
      continue, die, do, dump, eval, evalbytes, exit, goto,
-     last, next, redo, return, sub, wantarray
+     last, method, next, redo, return, sub, wantarray
 
 Keywords related to scoping:
-     caller, import, local, my, our, package, state, use
+     caller, class, field, import, local, my, our, package,
+     state, use
 
 Miscellaneous functions:
      defined, formline, lock, prototype, reset, scalar, undef
@@ -132,8 +133,8 @@ Keywords related to Perl modules:
      do, import, no, package, require, use
 
 Keywords related to classes and object-orientation:
-     bless, dbmclose, dbmopen, package, ref, tie, tied, untie,
-     use
+     bless, class, dbmclose, dbmopen, field, method, package,
+     ref, tie, tied, untie, use
 
 Low-level socket functions:
      accept, bind, connect, getpeername, getsockname,
Index: gnu/usr.bin/perl/ext/Pod-Html/bin/pod2html
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Pod-Html/bin/pod2html,v
diff -u -p -a -u -p -r1.2 pod2html
--- gnu/usr.bin/perl/ext/Pod-Html/bin/pod2html	25 Jul 2016 10:53:04 -0000	1.2
+++ gnu/usr.bin/perl/ext/Pod-Html/bin/pod2html	21 Feb 2024 15:47:02 -0000
@@ -25,6 +25,43 @@ pod2html takes the following arguments:
 
 =over 4
 
+=item backlink
+
+  --backlink
+  --nobacklink
+
+Turn =head1 directives into links pointing to the top of the HTML file.
+--nobacklink (which is the default behavior) does not create these backlinks.
+
+=item cachedir
+
+  --cachedir=name
+
+Specify which directory is used for storing cache. Default directory is the
+current working directory.
+
+=item css
+
+  --css=URL
+
+Specify the URL of cascading style sheet to link from resulting HTML file.
+Default is none style sheet.
+
+=item flush
+
+  --flush
+
+Flush the cache.
+
+=item header
+
+  --header
+  --noheader
+
+Create header and footer blocks containing the text of the "NAME" section.
+--noheader -- which is the default behavior -- does not create header or footer
+blocks.
+
 =item help
 
   --help
@@ -53,6 +90,22 @@ Do not use this if relative links are de
 
 Do not pass both this and --htmldir to pod2html; they are mutually exclusive.
 
+=item index
+
+  --index
+
+Generate an index at the top of the HTML file (default behaviour).
+
+=over 4
+
+=item noindex
+
+  --noindex
+
+Do not generate an index at the top of the HTML file.
+
+=back
+
 =item infile
 
   --infile=name
@@ -67,11 +120,14 @@ infile is specified.
 Specify the HTML file to create.  Output goes to STDOUT if no outfile
 is specified.
 
-=item podroot
+=item poderrors
 
-  --podroot=name
+  --poderrors
+  --nopoderrors
 
-Specify the base directory for finding library pods.
+Include a "POD ERRORS" section in the outfile if there were any POD errors in
+the infile (default behaviour).  --nopoderrors does not create this "POD
+ERRORS" section.
 
 =item podpath
 
@@ -80,90 +136,28 @@ Specify the base directory for finding l
 Specify which subdirectories of the podroot contain pod files whose
 HTML converted forms can be linked-to in cross-references.
 
-=item cachedir
-
-  --cachedir=name
-
-Specify which directory is used for storing cache. Default directory is the
-current working directory.
-
-=item flush
-
-  --flush
-
-Flush the cache.
-
-=item backlink
-
-  --backlink
-
-Turn =head1 directives into links pointing to the top of the HTML file.
-
-=item nobacklink
-
-  --nobacklink
-
-Do not turn =head1 directives into links pointing to the top of the HTML file
-(default behaviour).
-
-=item header
-
-  --header
-
-Create header and footer blocks containing the text of the "NAME" section.
-
-=item noheader
-
-  --noheader
-
-Do not create header and footer blocks containing the text of the "NAME"
-section (default behaviour).
-
-=item poderrors
-
-  --poderrors
-
-Include a "POD ERRORS" section in the outfile if there were any POD errors in
-the infile (default behaviour).
-
-=item nopoderrors
-
-  --nopoderrors
-
-Do not include a "POD ERRORS" section in the outfile if there were any POD
-errors in the infile.
-
-=item index
-
-  --index
+=item podroot
 
-Generate an index at the top of the HTML file (default behaviour).
+  --podroot=name
 
-=item noindex
+Specify the base directory for finding library pods.
 
-  --noindex
+=item quiet
 
-Do not generate an index at the top of the HTML file.
+  --quiet
+  --noquiet
 
+Don't display mostly harmless warning messages.  --noquiet -- which is the
+default behavior -- I<does> display these mostly harmless warning messages (but
+this is not the same as "verbose" mode).
 
 =item recurse
 
   --recurse
-
-Recurse into subdirectories specified in podpath (default behaviour).
-
-=item norecurse
-
   --norecurse
 
-Do not recurse into subdirectories specified in podpath.
-
-=item css
-
-  --css=URL
-
-Specify the URL of cascading style sheet to link from resulting HTML file.
-Default is none style sheet.
+Recurse into subdirectories specified in podpath (default behaviour).
+--norecurse does not recurse into these subdirectories.
 
 =item title
 
@@ -171,30 +165,13 @@ Default is none style sheet.
 
 Specify the title of the resulting HTML file.
 
-=item quiet
-
-  --quiet
-
-Don't display mostly harmless warning messages.
-
-=item noquiet
-
-  --noquiet
-
-Display mostly harmless warning messages (default behaviour). But this is not
-the same as "verbose" mode.
-
 =item verbose
 
   --verbose
-
-Display progress messages.
-
-=item noverbose
-
   --noverbose
 
-Do not display progress messages (default behaviour).
+Display progress messages. --noverbose -- which is the default behavior --
+does not display these progress messages.
 
 =back
 
Index: gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html.pm,v
diff -u -p -a -u -p -r1.6 Html.pm
--- gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html.pm	15 Feb 2023 01:36:32 -0000	1.6
+++ gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html.pm	21 Feb 2024 15:47:02 -0000
@@ -2,10 +2,9 @@ package Pod::Html;
 use strict;
 use Exporter 'import';
 
-our $VERSION = 1.33;
+our $VERSION = 1.34;
 $VERSION = eval $VERSION;
-our @EXPORT = qw(pod2html htmlify);
-our @EXPORT_OK = qw(anchorify relativize_url);
+our @EXPORT = qw(pod2html);
 
 use Config;
 use Cwd;
@@ -195,7 +194,7 @@ Display progress messages.  By default, 
 
 =back
 
-=head2 Auxiliary Functions
+=head2 Formerly Exported Auxiliary Functions
 
 Prior to perl-5.36, the following three functions were exported by
 F<Pod::Html>, either by default or on request:
@@ -213,10 +212,8 @@ F<Pod::Html>, either by default or on re
 The definition and documentation of these functions have been moved to
 F<Pod::Html::Util>, viewable via C<perldoc Pod::Html::Util>.
 
-In perl-5.36, these functions will be importable from either F<Pod::Html> or
-F<Pod::Html::Util>.  However, beginning with perl-5.38 they will only be
-importable, upon request, from F<Pod::Html::Util>.  Please modify your code as
-needed.
+Beginning with perl-5.38 these functions must be explicitly imported from
+F<Pod::Html::Util>.  Please modify your code as needed.
 
 =head1 ENVIRONMENT
 
Index: gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html/Util.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html/Util.pm,v
diff -u -p -a -u -p -r1.1.1.1 Util.pm
--- gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html/Util.pm	15 Feb 2023 01:32:58 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/Pod-Html/lib/Pod/Html/Util.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package Pod::Html::Util;
 use strict;
 use Exporter 'import';
 
-our $VERSION = 1.33; # Please keep in synch with lib/Pod/Html.pm
+our $VERSION = 1.34; # Please keep in synch with lib/Pod/Html.pm
 $VERSION = eval $VERSION;
 our @EXPORT_OK = qw(
     anchorify
Index: gnu/usr.bin/perl/ext/Pod-Html/t/anchorify-536.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/Pod-Html/t/anchorify-536.t
diff -N gnu/usr.bin/perl/ext/Pod-Html/t/anchorify-536.t
--- gnu/usr.bin/perl/ext/Pod-Html/t/anchorify-536.t	15 Feb 2023 01:32:58 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,114 +0,0 @@
-use strict;
-use warnings;
-use Pod::Html qw( anchorify relativize_url );
-my ($revision,$version,$subversion) = split /\./, sprintf("%vd",$^V);
-use Test::More;
-unless ($version == 35 or $version == 36) {
-    plan skip_all => "Needed only during 5.36";
-}
-
-my @filedata;
-{
-    local $/ = '';
-    @filedata = <DATA>;
-}
-
-my (@poddata, $i, $j);
-for ($i = 0, $j = -1; $i <= $#filedata; $i++) {
-    $j++ if ($filedata[$i] =~ /^\s*=head[1-6]/);
-    if ($j >= 0) {
-        $poddata[$j]  = "" unless defined $poddata[$j];
-        $poddata[$j] .= "\n$filedata[$i]" if $j >= 0;
-    }
-}
-
-my %heads = ();
-foreach $i (0..$#poddata) {
-    $heads{anchorify($1)} = 1 if $poddata[$i] =~ /=head[1-6]\s+(.*)/;
-}
-my %expected = map { $_ => 1 } qw(
-    NAME
-    DESCRIPTION
-    Subroutine
-    Error
-    Method
-    Has_A_Wordspace
-    HasTrailingWordspace
-    HasLeadingWordspace
-    Has_Extra_InternalWordspace
-    Has_Quotes
-    Has_QuestionMark
-    Has_Hyphen_And_Space
-);
-is_deeply(
-    \%heads,
-    \%expected,
-    "Got expected POD heads"
-);
-
-{
-    # adapted from 'installhtml'
-    my $file = '/home/username/tmp/installhtml/pod/perlipc';
-    my $capture = 'NAME';
-    my $expected_url = '/home/username/tmp/installhtml/pod/perlipc/NAME.html';
-    my $expected_relativized_url = 'perlipc/NAME.html';
-    my $url = "$file/@{[anchorify(qq($capture))]}.html" ;
-    is($url, $expected_url, "anchorify() returned expected value");
-    my $relativized_url = relativize_url( $url, "$file.html" );
-    is($relativized_url, $expected_relativized_url, "relativize_url() returned expected value");
-}
-
-done_testing;
-
-__DATA__
-=head1 NAME
-
-anchorify - Test C<Pod::Html::Util::anchorify()>
-
-=head1 DESCRIPTION
-
-alpha
-
-=head2 Subroutine
-
-beta
-
-=head3 Error
-
-gamma
-
-=head4 Method
-
-delta
-
-=head4 Has A Wordspace
-
-delta
-
-=head4 HasTrailingWordspace  
-
-epsilon
-
-=head4    HasLeadingWordspace
-
-zeta
-
-=head4 Has	Extra  InternalWordspace
-
-eta
-
-=head4 Has"Quotes"
-
-theta
-
-=head4 Has?QuestionMark
-
-iota
-
-=head4 Has-Hyphen And Space
-
-kappa
-
-=cut
-
-__END__
Index: gnu/usr.bin/perl/ext/Pod-Html/t/lib/Testing.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Pod-Html/t/lib/Testing.pm,v
diff -u -p -a -u -p -r1.1.1.1 Testing.pm
--- gnu/usr.bin/perl/ext/Pod-Html/t/lib/Testing.pm	15 Feb 2023 01:32:58 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/Pod-Html/t/lib/Testing.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package Testing;
 use 5.10.0;
 use warnings;
 use Exporter 'import';
-our $VERSION = 1.33; # Let's keep this same as lib/Pod/Html.pm
+our $VERSION = 1.34; # Let's keep this same as lib/Pod/Html.pm
 $VERSION = eval $VERSION;
 our @EXPORT_OK = qw(
     setup_testing_dir
@@ -121,7 +121,7 @@ underlying operating system, I<e.g.,> wi
 we cannot hard-code the expected HTML output into the C<DATA> template or any
 place else.  We have to allow C<Pod::Html::pod2html()> to massage the template
 data to get an "expected output" against which we match the "actual output"
-which come from running C<Pod::Html::pod2html()> over the text originally
+which comes from running C<Pod::Html::pod2html()> over the text originally
 slurped into memory from the F<t/*.pod> file.
 
 Granted, there is a certain amount of circularity in this testing regimen.  On
@@ -139,7 +139,8 @@ that we get consistent results out of C<
 Here we continue to focus on those test programs which make use of the testing
 functions exported by F<Testing> and which take a F<t/*.pod> file as input.
 
-We assume that we begin our tests from the top level of the Perl 5 core distribution and are using F<t/harness>.  Hence, to run the test files we say:
+We assume that we begin our tests from the top level of the Perl 5 core
+distribution and are using F<t/harness>.  Hence, to run the test files we say:
 
     cd t; ./perl harness ../ext/Pod-Html/t/*.t; cd -
 
@@ -147,15 +148,15 @@ The program then slurps contents of the 
 
 The program then calls C<setup_testing_dir()> from this module to create a
 temporary directory and populate it as needed.  C<setup_testing_dir()> returns
-the absolute path to that directory, but at the point of return you are
-actually located two levels beneath the temporary directory in a directory whose relative path is
-F<ext/Pod-Html/>.  (This is equivalent to being in F<toplevel/ext/Pod-Html/>
-for tests in versions of Pod-Html distributed with earlier versions of
-F<perl>.)
-
-Note that this means that at the end of the program you will have to
-switch back to your starting directory so that the tempdir can automatically
-be cleaned up.  We automate this via an C<END> block.
+the absolute path to that directory, but at the point where that subroutine
+returns you are actually located two levels beneath the temporary directory in
+a directory whose relative path is F<ext/Pod-Html/>.  (This is equivalent to
+being in F<toplevel/ext/Pod-Html/> for tests in versions of Pod-Html
+distributed with earlier versions of F<perl>.)
+
+Note that this means that at the end of the program you will have to switch
+back to your starting directory so that the tempdir can automatically be
+cleaned up.  We automate this via an C<END> block.
 
 You then prepare arguments for our principal testing function, C<xconvert()>
 (which supersedes the former C<convert_n_test()>.  These arguments take the
@@ -433,10 +434,16 @@ Not explicitly defined, but should retur
 
 =item * Comment
 
-This function essentially asks, "Are we getting the same HTML output the last time we tinkered with the code in this distribution?"  Hence, it is dependent on the particular parsing and HTML composition functionality found within C<Pod::Html::pod2html()>, which is a somewhat customized subclass of F<Pod::Simple::XHTML>.  If, in the future, we offer functionality based on other parsing classes, then the C<DATA> sections of the F<t/*.t> files will have to be revised and perhaps the guts of C<xconvert()> as well.
+This function essentially asks, "Are we getting the same HTML output the last
+time we tinkered with the code in this distribution?"  Hence, it is dependent
+on the particular parsing and HTML composition functionality found within
+C<Pod::Html::pod2html()>, which is a somewhat customized subclass of
+F<Pod::Simple::XHTML>.  If, in the future, we offer functionality based on
+other parsing classes, then the C<DATA> sections of the F<t/*.t> files will
+have to be revised and perhaps the guts of C<xconvert()> as well.
 
-This function is roughly equivalent to test helper function C<convert_n_test()> in earlier
-versions of Pod-Html.
+This function is roughly equivalent to test helper function
+C<convert_n_test()> in earlier versions of Pod-Html.
 
 =back
 
Index: gnu/usr.bin/perl/ext/SDBM_File/SDBM_File.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/SDBM_File/SDBM_File.pm,v
diff -u -p -a -u -p -r1.11 SDBM_File.pm
--- gnu/usr.bin/perl/ext/SDBM_File/SDBM_File.pm	30 Dec 2019 02:13:53 -0000	1.11
+++ gnu/usr.bin/perl/ext/SDBM_File/SDBM_File.pm	21 Feb 2024 15:47:02 -0000
@@ -7,7 +7,7 @@ require Tie::Hash;
 require XSLoader;
 
 our @ISA = qw(Tie::Hash);
-our $VERSION = "1.15";
+our $VERSION = "1.17";
 
 our @EXPORT_OK = qw(PAGFEXT DIRFEXT PAIRMAX);
 use Exporter "import";
Index: gnu/usr.bin/perl/ext/SDBM_File/dbu.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/SDBM_File/dbu.c,v
diff -u -p -a -u -p -r1.3 dbu.c
--- gnu/usr.bin/perl/ext/SDBM_File/dbu.c	15 Feb 2023 01:36:32 -0000	1.3
+++ gnu/usr.bin/perl/ext/SDBM_File/dbu.c	21 Feb 2024 15:47:02 -0000
@@ -20,7 +20,7 @@ static char *usage = "%s [-R] cat | look
 #define DLOOK	1
 #define DINSERT	2
 #define DDELETE 3
-#define	DCAT	4
+#define DCAT    4
 #define DBUILD	5
 #define DPRESS	6
 #define DCREAT	7
Index: gnu/usr.bin/perl/ext/SDBM_File/sdbm.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/SDBM_File/sdbm.c,v
diff -u -p -a -u -p -r1.4 sdbm.c
--- gnu/usr.bin/perl/ext/SDBM_File/sdbm.c	15 Feb 2023 01:36:32 -0000	1.4
+++ gnu/usr.bin/perl/ext/SDBM_File/sdbm.c	21 Feb 2024 15:47:02 -0000
@@ -43,6 +43,11 @@ extern Free_t free(Malloc_t);
 
 const datum nullitem = {0, 0};
 
+#ifdef WIN32
+#  undef lseek
+#  define lseek _lseeki64
+#endif
+
 /*
  * forward
  */
@@ -59,8 +64,8 @@ static int makroom(DBM *, long, int);
 #define exhash(item)	sdbm_hash((item).dptr, (item).dsize)
 #define ioerr(db)	((db)->flags |= DBM_IOERR)
 
-#define OFF_PAG(off)	(long) (off) * PBLKSIZ
-#define OFF_DIR(off)	(long) (off) * DBLKSIZ
+#define OFF_PAG(off)	(Off_t) (off) * PBLKSIZ
+#define OFF_DIR(off)	(Off_t) (off) * DBLKSIZ
 
 static const long masks[] = {
         000000000000, 000000000001, 000000000003, 000000000007,
@@ -291,7 +296,7 @@ makroom(DBM *db, long int hash, int need
         char twin[PBLKSIZ];
 #if defined(DOSISH) || defined(WIN32)
         char zer[PBLKSIZ];
-        long oldtail;
+        Off_t oldtail;
 #endif
         char *pag = db->pagbuf;
         char *New = twin;
Index: gnu/usr.bin/perl/ext/Sys-Hostname/Hostname.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/Sys-Hostname/Hostname.pm,v
diff -u -p -a -u -p -r1.5 Hostname.pm
--- gnu/usr.bin/perl/ext/Sys-Hostname/Hostname.pm	15 Feb 2023 01:36:32 -0000	1.5
+++ gnu/usr.bin/perl/ext/Sys-Hostname/Hostname.pm	21 Feb 2024 15:47:02 -0000
@@ -15,7 +15,7 @@ use warnings ();
 our $host;
 
 BEGIN {
-    $VERSION = '1.24';
+    $VERSION = '1.25';
     {
 	local $SIG{__DIE__};
 	eval {
@@ -131,7 +131,7 @@ Sys::Hostname - Try every conceivable wa
 =head1 SYNOPSIS
 
     use Sys::Hostname;
-    $host = hostname;
+    my $host = hostname;
 
 =head1 DESCRIPTION
 
Index: gnu/usr.bin/perl/ext/XS-APItest/APItest.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/APItest.pm,v
diff -u -p -a -u -p -r1.6 APItest.pm
--- gnu/usr.bin/perl/ext/XS-APItest/APItest.pm	15 Feb 2023 01:36:32 -0000	1.6
+++ gnu/usr.bin/perl/ext/XS-APItest/APItest.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use Carp;
 
-our $VERSION = '1.22';
+our $VERSION = '1.32';
 
 require XSLoader;
 
Index: gnu/usr.bin/perl/ext/XS-APItest/APItest.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/APItest.xs,v
diff -u -p -a -u -p -r1.6 APItest.xs
--- gnu/usr.bin/perl/ext/XS-APItest/APItest.xs	15 Feb 2023 01:36:32 -0000	1.6
+++ gnu/usr.bin/perl/ext/XS-APItest/APItest.xs	21 Feb 2024 15:47:02 -0000
@@ -23,6 +23,16 @@ typedef PerlIO * OutputStream;
 #define croak_fail_nep(h, w) croak("fail %p!=%p at " __FILE__ " line %d", (h), (w), __LINE__)
 #define croak_fail_nei(h, w) croak("fail %d!=%d at " __FILE__ " line %d", (int)(h), (int)(w), __LINE__)
 
+/* assumes that there is a 'failed' variable in scope */
+#define TEST_EXPR(s) STMT_START {           \
+    if (s) {                                \
+        printf("# ok: %s\n", #s);           \
+    } else {                                \
+        printf("# not ok: %s\n", #s);       \
+        failed++;                           \
+    }                                       \
+} STMT_END
+
 #if IVSIZE == 8
 #  define TEST_64BIT 1
 #else
@@ -115,8 +125,19 @@ S_myset_set(pTHX_ SV* sv, MAGIC* mg)
     return 0;
 }
 
+static int
+S_myset_set_dies(pTHX_ SV* sv, MAGIC* mg)
+{
+    PERL_UNUSED_ARG(sv);
+    PERL_UNUSED_ARG(mg);
+    croak("in S_myset_set_dies");
+    return 0;
+}
+
+
 static MGVTBL vtbl_foo, vtbl_bar;
 static MGVTBL vtbl_myset = { 0, S_myset_set, 0, 0, 0, 0, 0, 0 };
+static MGVTBL vtbl_myset_dies = { 0, S_myset_set_dies, 0, 0, 0, 0, 0, 0 };
 
 static int
 S_mycopy_copy(pTHX_ SV *sv, MAGIC* mg, SV *nsv, const char *name, I32 namlen) {
@@ -1443,8 +1464,62 @@ my_ck_rv2cv(pTHX_ OP *o)
     return old_ck_rv2cv(aTHX_ o);
 }
 
+#define test_bool_internals_macro(true_sv, false_sv) \
+    test_bool_internals_func(true_sv, false_sv,\
+        #true_sv " and " #false_sv)
+
+U32
+test_bool_internals_func(SV *true_sv, SV *false_sv, const char *msg) {
+    U32 failed = 0;
+    printf("# Testing '%s'\n", msg);
+    TEST_EXPR(SvCUR(true_sv) == 1);
+    TEST_EXPR(SvCUR(false_sv) == 0);
+    TEST_EXPR(SvLEN(true_sv) == 0);
+    TEST_EXPR(SvLEN(false_sv) == 0);
+    TEST_EXPR(SvIV(true_sv) == 1);
+    TEST_EXPR(SvIV(false_sv) == 0);
+    TEST_EXPR(SvIsCOW(true_sv));
+    TEST_EXPR(SvIsCOW(false_sv));
+    TEST_EXPR(strEQ(SvPV_nolen(true_sv),"1"));
+    TEST_EXPR(strEQ(SvPV_nolen(false_sv),""));
+    TEST_EXPR(SvIOK(true_sv));
+    TEST_EXPR(SvIOK(false_sv));
+    TEST_EXPR(SvPOK(true_sv));
+    TEST_EXPR(SvPOK(false_sv));
+    TEST_EXPR(SvBoolFlagsOK(true_sv));
+    TEST_EXPR(SvBoolFlagsOK(false_sv));
+    TEST_EXPR(SvTYPE(true_sv) >= SVt_PVNV);
+    TEST_EXPR(SvTYPE(false_sv) >= SVt_PVNV);
+    TEST_EXPR(SvBoolFlagsOK(true_sv) && BOOL_INTERNALS_sv_isbool(true_sv));
+    TEST_EXPR(SvBoolFlagsOK(false_sv) && BOOL_INTERNALS_sv_isbool(false_sv));
+    TEST_EXPR(SvBoolFlagsOK(true_sv) && BOOL_INTERNALS_sv_isbool_true(true_sv));
+    TEST_EXPR(SvBoolFlagsOK(false_sv) && BOOL_INTERNALS_sv_isbool_false(false_sv));
+    TEST_EXPR(SvBoolFlagsOK(true_sv) && !BOOL_INTERNALS_sv_isbool_false(true_sv));
+    TEST_EXPR(SvBoolFlagsOK(false_sv) && !BOOL_INTERNALS_sv_isbool_true(false_sv));
+    TEST_EXPR(SvTRUE(true_sv));
+    TEST_EXPR(!SvTRUE(false_sv));
+    if (failed) {
+        PerlIO_printf(Perl_debug_log, "# '%s' the tested true_sv:\n", msg);
+        sv_dump(true_sv);
+        PerlIO_printf(Perl_debug_log, "# PL_sv_yes:\n");
+        sv_dump(&PL_sv_yes);
+        PerlIO_printf(Perl_debug_log, "# '%s' tested false_sv:\n",msg);
+        sv_dump(false_sv);
+        PerlIO_printf(Perl_debug_log, "# PL_sv_no:\n");
+        sv_dump(&PL_sv_no);
+    }
+    fflush(stdout);
+    SvREFCNT_dec(true_sv);
+    SvREFCNT_dec(false_sv);
+    return failed;
+}
 #include "const-c.inc"
 
+void
+destruct_test(pTHX_ void *p) {
+    warn("In destruct_test: %" SVf "\n", (SV*)p);
+}
+
 MODULE = XS::APItest            PACKAGE = XS::APItest
 
 INCLUDE: const-xs.inc
@@ -1658,6 +1733,18 @@ test_uvchr_to_utf8_flags_msgs(uv, flags)
 MODULE = XS::APItest:Overload   PACKAGE = XS::APItest::Overload
 
 void
+does_amagic_apply(sv, method, flags)
+    SV *sv
+    int method
+    int flags
+    PPCODE:
+        if(Perl_amagic_applies(aTHX_ sv, method, flags))
+            XSRETURN_YES;
+        else
+            XSRETURN_NO;
+
+
+void
 amagic_deref_call(sv, what)
         SV *sv
         int what
@@ -2404,7 +2491,7 @@ mpushp()
         EXTEND(SP, 3);
         mPUSHp("one", 3);
         mPUSHp("two", 3);
-        mPUSHp("three", 5);
+        mPUSHpvs("three");
         XSRETURN(3);
 
 void
@@ -2439,7 +2526,7 @@ mxpushp()
         PPCODE:
         mXPUSHp("one", 3);
         mXPUSHp("two", 3);
-        mXPUSHp("three", 5);
+        mXPUSHpvs("three");
         XSRETURN(3);
 
 void
@@ -2484,19 +2571,27 @@ test_EXTEND(max_offset, nsv, use_ss)
     SV  *nsv;
     bool use_ss;
 PREINIT:
-    SV **sp = PL_stack_max + max_offset;
+    SV **new_sp = PL_stack_max + max_offset;
+    SSize_t new_offset = new_sp - PL_stack_base;
 PPCODE:
     if (use_ss) {
         SSize_t n = (SSize_t)SvIV(nsv);
-        EXTEND(sp, n);
-        *(sp + n) = NULL;
+        EXTEND(new_sp, n);
+        new_sp = PL_stack_base + new_offset;
+        assert(new_sp + n <= PL_stack_max);
+        if ((new_sp + n) > PL_stack_sp)
+            *(new_sp + n) = NULL;
     }
     else {
         IV n = SvIV(nsv);
-        EXTEND(sp, n);
-        *(sp + n) = NULL;
+        EXTEND(new_sp, n);
+        new_sp = PL_stack_base + new_offset;
+        assert(new_sp + n <= PL_stack_max);
+        if ((new_sp + n) > PL_stack_sp)
+            *(new_sp + n) = NULL;
     }
-    *PL_stack_max = NULL;
+    if (PL_stack_max > PL_stack_sp)
+        *PL_stack_max = NULL;
 
 
 void
@@ -4251,7 +4346,7 @@ CODE:
 SV *
 HvENAME(HV *hv)
 CODE:
-    RETVAL = hv && HvENAME(hv)
+    RETVAL = hv && HvHasENAME(hv)
               ? newSVpvn_flags(
                   HvENAME(hv),HvENAMELEN(hv),
                   (HvENAMEUTF8(hv) ? SVf_UTF8 : 0)
@@ -4281,30 +4376,44 @@ OUTPUT:
     RETVAL
 
 char *
-SvPVbyte(SV *sv)
+SvPVbyte(SV *sv, OUT STRLEN len)
+CODE:
+    RETVAL = SvPVbyte(sv, len);
+OUTPUT:
+    RETVAL
+
+char *
+SvPVbyte_nolen(SV *sv)
 CODE:
     RETVAL = SvPVbyte_nolen(sv);
 OUTPUT:
     RETVAL
 
 char *
-SvPVbyte_nomg(SV *sv)
+SvPVbyte_nomg(SV *sv, OUT STRLEN len)
 CODE:
-    RETVAL = SvPVbyte_nomg(sv, PL_na);
+    RETVAL = SvPVbyte_nomg(sv, len);
 OUTPUT:
     RETVAL
 
 char *
-SvPVutf8(SV *sv)
+SvPVutf8(SV *sv, OUT STRLEN len)
+CODE:
+    RETVAL = SvPVutf8(sv, len);
+OUTPUT:
+    RETVAL
+
+char *
+SvPVutf8_nolen(SV *sv)
 CODE:
     RETVAL = SvPVutf8_nolen(sv);
 OUTPUT:
     RETVAL
 
 char *
-SvPVutf8_nomg(SV *sv)
+SvPVutf8_nomg(SV *sv, OUT STRLEN len)
 CODE:
-    RETVAL = SvPVutf8_nomg(sv, PL_na);
+    RETVAL = SvPVutf8_nomg(sv, len);
 OUTPUT:
     RETVAL
 
@@ -4418,6 +4527,20 @@ sv_mortalcopy(SV *sv)
 SV *
 newRV(SV *sv)
 
+SV *
+newAVav(AV *av)
+    CODE:
+        RETVAL = newRV_noinc((SV *)newAVav(av));
+    OUTPUT:
+        RETVAL
+
+SV *
+newAVhv(HV *hv)
+    CODE:
+        RETVAL = newRV_noinc((SV *)newAVhv(hv));
+    OUTPUT:
+        RETVAL
+
 void
 alias_av(AV *av, IV ix, SV *sv)
     CODE:
@@ -4577,6 +4700,27 @@ test_MAX_types()
     OUTPUT:
         RETVAL
 
+SV *
+test_HvNAMEf(sv)
+    SV *sv
+    CODE:
+        if (!sv_isobject(sv)) XSRETURN_UNDEF;
+        HV *pkg = SvSTASH(SvRV(sv));
+        RETVAL = newSVpvf("class='%" HvNAMEf "'", pkg);
+    OUTPUT:
+        RETVAL
+
+SV *
+test_HvNAMEf_QUOTEDPREFIX(sv)
+    SV *sv
+    CODE:
+        if (!sv_isobject(sv)) XSRETURN_UNDEF;
+        HV *pkg = SvSTASH(SvRV(sv));
+        RETVAL = newSVpvf("class=%" HvNAMEf_QUOTEDPREFIX, pkg);
+    OUTPUT:
+        RETVAL
+
+
 bool
 sv_numeq(SV *sv1, SV *sv2)
     CODE:
@@ -4637,16 +4781,22 @@ void
 sv_magic_foo(SV *sv, SV *thingy)
 ALIAS:
     sv_magic_bar = 1
+    sv_magic_baz = 2
 CODE:
-    sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo, (const char *)thingy, 0);
+    sv_magicext(sv, NULL, ix == 2 ? PERL_MAGIC_extvalue : PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo, (const char *)thingy, 0);
 
 SV *
 mg_find_foo(SV *sv)
 ALIAS:
     mg_find_bar = 1
+    mg_find_baz = 2
 CODE:
-    MAGIC *mg = mg_findext(SvRV(sv), PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo);
-    RETVAL = mg ? SvREFCNT_inc((SV *)mg->mg_ptr) : &PL_sv_undef;
+	RETVAL = &PL_sv_undef;
+	if (SvTYPE(sv) >= SVt_PVMG) {
+		MAGIC *mg = mg_findext(sv, ix == 2 ? PERL_MAGIC_extvalue : PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo);
+		if (mg)
+			RETVAL = SvREFCNT_inc((SV *)mg->mg_ptr);
+	}
 OUTPUT:
     RETVAL
 
@@ -4654,13 +4804,14 @@ void
 sv_unmagic_foo(SV *sv)
 ALIAS:
     sv_unmagic_bar = 1
+    sv_unmagic_baz = 2
 CODE:
-    sv_unmagicext(SvRV(sv), PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo);
+    sv_unmagicext(sv, ix == 2 ? PERL_MAGIC_extvalue : PERL_MAGIC_ext, ix ? &vtbl_bar : &vtbl_foo);
 
 void
 sv_magic(SV *sv, SV *thingy)
 CODE:
-    sv_magic(SvRV(sv), NULL, PERL_MAGIC_ext, (const char *)thingy, 0);
+    sv_magic(sv, NULL, PERL_MAGIC_ext, (const char *)thingy, 0);
 
 UV
 test_get_vtbl()
@@ -4712,6 +4863,13 @@ test_get_vtbl()
     # where that magic's job is to increment thingy
 
 void
+sv_magic_myset_dies(SV *rsv, SV *thingy)
+CODE:
+    sv_magicext(SvRV(rsv), NULL, PERL_MAGIC_ext, &vtbl_myset_dies,
+        (const char *)thingy, 0);
+
+
+void
 sv_magic_myset(SV *rsv, SV *thingy)
 CODE:
     sv_magicext(SvRV(rsv), NULL, PERL_MAGIC_ext, &vtbl_myset,
@@ -4736,6 +4894,43 @@ sv_magic_mycopy_count(SV *rsv)
     OUTPUT:
         RETVAL
 
+int
+my_av_store(SV *rsv, IV i, SV *sv)
+    CODE:
+        if (av_store((AV*)SvRV(rsv), i, sv)) {
+            SvREFCNT_inc(sv);
+            RETVAL = 1;
+        } else {
+            RETVAL = 0;
+        }
+    OUTPUT:
+        RETVAL
+
+STRLEN
+sv_refcnt(SV *sv)
+    CODE:
+        RETVAL = SvREFCNT(sv);
+    OUTPUT:
+        RETVAL
+
+void
+test_mortal_destructor_sv(SV *coderef, SV *args)
+    CODE:
+        MORTALDESTRUCTOR_SV(coderef,args);
+
+void
+test_mortal_destructor_av(SV *coderef, AV *args)
+    CODE:
+        /* passing in an AV cast to SV is different from a SV ref to an AV */
+        MORTALDESTRUCTOR_SV(coderef, (SV *)args);
+
+void
+test_mortal_svfunc_x(SV *args)
+    CODE:
+        MORTALSVFUNC_X(&destruct_test,args);
+
+
+
 
 MODULE = XS::APItest            PACKAGE = XS::APItest
 
@@ -6553,14 +6748,14 @@ test_is_utf8_fixed_width_buf_loclen_flag
         RETVAL
 
 IV
-test_utf8_hop_safe(SV *s_sv, STRLEN s_off, IV off)
+test_utf8_hop_safe(SV *s_sv, STRLEN s_off, IV hop)
     PREINIT:
         STRLEN len;
         U8 *p;
         U8 *r;
     CODE:
         p = (U8 *)SvPV(s_sv, len);
-        r = utf8_hop_safe(p + s_off, off, p, p + len);
+        r = utf8_hop_safe(p + s_off, hop, p, p + len);
         RETVAL = r - p;
     OUTPUT:
         RETVAL
@@ -6992,6 +7187,19 @@ test_Perl_langinfo(SV * item)
     OUTPUT:
         RETVAL
 
+SV *
+gimme()
+    CODE:
+        /* facilitate tests that GIMME_V gives the right result
+         * in XS calls */
+        int gimme = GIMME_V;
+        SV* sv = get_sv("XS::APItest::GIMME_V", GV_ADD);
+        sv_setiv_mg(sv, (IV)gimme);
+        RETVAL = &PL_sv_undef;
+    OUTPUT:
+        RETVAL
+
+
 MODULE = XS::APItest            PACKAGE = XS::APItest::Backrefs
 
 void
@@ -7432,9 +7640,9 @@ test_siphash24()
             if (hash32 != vectors_32[i]) {
                 failed++;
                 printf( "Error in 32 bit result on test vector of length %d for siphash24\n"
-                        "    have: 0x%08x\n"
-                        "    want: 0x%08x\n",
-                    i, hash32, vectors_32[i]);
+                        "    have: 0x%08" UVxf "\n"
+                        "    want: 0x%08" UVxf "\n",
+                    i, (UV)hash32, (UV)vectors_32[i]);
             }
         }
         RETVAL= failed;
@@ -7653,9 +7861,9 @@ test_siphash13()
             if (hash32 != vectors_32[i]) {
                 failed++;
                 printf( "Error in 32 bit result on test vector of length %d for siphash13\n"
-                        "    have: 0x%08x\n"
-                        "    want: 0x%08x\n",
-                    i, hash32, vectors_32[i]);
+                        "    have: 0x%08" UVxf"\n"
+                        "    want: 0x%08" UVxf"\n",
+                    i, (UV)hash32, (UV)vectors_32[i]);
             }
         }
         RETVAL= failed;
@@ -7663,4 +7871,103 @@ test_siphash13()
     OUTPUT:
         RETVAL
 
-#endif
+#endif /* END 64 BIT SIPHASH TESTS */
+
+MODULE = XS::APItest            PACKAGE = XS::APItest::BoolInternals
+
+UV
+test_bool_internals()
+    CODE:
+    {
+        U32 failed = 0;
+        SV *true_sv_setsv = newSV(0);
+        SV *false_sv_setsv = newSV(0);
+        SV *true_sv_set_true = newSV(0);
+        SV *false_sv_set_false = newSV(0);
+        SV *true_sv_set_bool = newSV(0);
+        SV *false_sv_set_bool = newSV(0);
+        SV *sviv = newSViv(1);
+        SV *svpv = newSVpvs("whatever");
+        TEST_EXPR(SvIOK(sviv) && !SvIandPOK(sviv));
+        TEST_EXPR(SvPOK(svpv) && !SvIandPOK(svpv));
+        TEST_EXPR(SvIOK(sviv) && !SvBoolFlagsOK(sviv));
+        TEST_EXPR(SvPOK(svpv) && !SvBoolFlagsOK(svpv));
+        sv_setsv(true_sv_setsv, &PL_sv_yes);
+        sv_setsv(false_sv_setsv, &PL_sv_no);
+        sv_set_true(true_sv_set_true);
+        sv_set_false(false_sv_set_false);
+        sv_set_bool(true_sv_set_bool, true);
+        sv_set_bool(false_sv_set_bool, false);
+        /* note that test_bool_internals_macro() SvREFCNT_dec's its arguments
+         * after the tests */
+        failed += test_bool_internals_macro(newSVsv(&PL_sv_yes), newSVsv(&PL_sv_no));
+        failed += test_bool_internals_macro(newSV_true(), newSV_false());
+        failed += test_bool_internals_macro(newSVbool(1), newSVbool(0));
+        failed += test_bool_internals_macro(true_sv_setsv, false_sv_setsv);
+        failed += test_bool_internals_macro(true_sv_set_true, false_sv_set_false);
+        failed += test_bool_internals_macro(true_sv_set_bool, false_sv_set_bool);
+        SvREFCNT_dec(sviv);
+        SvREFCNT_dec(svpv);
+        RETVAL = failed;
+    }
+    OUTPUT:
+        RETVAL
+
+MODULE = XS::APItest            PACKAGE = XS::APItest::CvREFCOUNTED_ANYSV
+
+UV
+test_CvREFCOUNTED_ANYSV()
+    CODE:
+    {
+        U32 failed = 0;
+
+        /* Doesn't matter what actual function we wrap because we're never
+         * actually going to call it. */
+        CV *cv = newXS("XS::APItest::(test-cv-1)", XS_XS__APItest__XSUB_XS_VERSION_undef, __FILE__);
+        SV *sv = newSV(0);
+        CvXSUBANY(cv).any_sv = SvREFCNT_inc(sv);
+        CvREFCOUNTED_ANYSV_on(cv);
+        TEST_EXPR(SvREFCNT(sv) == 2);
+
+        SvREFCNT_dec((SV *)cv);
+        TEST_EXPR(SvREFCNT(sv) == 1);
+
+        SvREFCNT_dec(sv);
+
+        RETVAL = failed;
+    }
+    OUTPUT:
+        RETVAL
+
+MODULE = XS::APItest            PACKAGE = XS::APItest::global_locale
+
+char *
+switch_to_global_and_setlocale(int category, const char * locale)
+    CODE:
+        switch_to_global_locale();
+        RETVAL = setlocale(category, locale);
+    OUTPUT:
+        RETVAL
+
+bool
+sync_locale()
+    CODE:
+        RETVAL = sync_locale();
+    OUTPUT:
+        RETVAL
+
+NV
+newSvNV(const char * string)
+    CODE:
+        RETVAL = SvNV(newSVpv(string, 0));
+    OUTPUT:
+        RETVAL
+
+MODULE = XS::APItest            PACKAGE = XS::APItest::savestack
+
+IV
+get_savestack_ix()
+    CODE:
+        RETVAL = PL_savestack_ix;
+    OUTPUT:
+        RETVAL
Index: gnu/usr.bin/perl/ext/XS-APItest/core_or_not.inc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/core_or_not.inc,v
diff -u -p -a -u -p -r1.3 core_or_not.inc
--- gnu/usr.bin/perl/ext/XS-APItest/core_or_not.inc	13 Feb 2019 21:15:24 -0000	1.3
+++ gnu/usr.bin/perl/ext/XS-APItest/core_or_not.inc	21 Feb 2024 15:47:02 -0000
@@ -24,7 +24,7 @@ CAT2(sv_setsv_cow_hashkey_, SUFFIX) () {
 
     sv_setsv(destination, source);
 
-    result = !!SvIsCOW(destination);
+    result = cBOOL(SvIsCOW(destination));
 
     SvREFCNT_dec(source);
     SvREFCNT_dec(destination);
Index: gnu/usr.bin/perl/ext/XS-APItest/t/boolean-thr.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/boolean-thr.t,v
diff -u -p -a -u -p -r1.1.1.1 boolean-thr.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/boolean-thr.t	15 Feb 2023 01:32:59 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/XS-APItest/t/boolean-thr.t	21 Feb 2024 15:47:02 -0000
@@ -35,4 +35,6 @@ ok(SvIsBOOL(threads->create( sub { retur
         ':shared variable is bool inside thread');
 }
 
+is(test_bool_internals(), 0, "Bulk test internal bool related APIs");
+
 done_testing;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/boolean.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/boolean.t,v
diff -u -p -a -u -p -r1.1.1.1 boolean.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/boolean.t	15 Feb 2023 01:32:59 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/XS-APItest/t/boolean.t	21 Feb 2024 15:47:02 -0000
@@ -43,4 +43,8 @@ use XS::APItest;
     # We won't test AELEM but it's likely to be the same
 }
 
+
+is(test_bool_internals(), 0, "Bulk test internal bool related APIs");
+
+
 done_testing;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/call.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/call.t,v
diff -u -p -a -u -p -r1.5 call.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/call.t	15 Feb 2023 01:36:32 -0000	1.5
+++ gnu/usr.bin/perl/ext/XS-APItest/t/call.t	21 Feb 2024 15:47:02 -0000
@@ -14,7 +14,7 @@ BEGIN {
     plan(538);
     use_ok('XS::APItest')
 };
-
+use Config;
 #########################
 
 # f(): general test sub to be called by call_sv() etc.
@@ -343,8 +343,11 @@ for my $fn_type (qw(eval_pv eval_sv call
 # DAPM 9-Aug-04. A taint test in eval_sv() could die after setting up
 # a new jump level but before pushing an eval context, leading to
 # stack corruption
+SKIP: {
+    skip("Your perl was built without taint support", 1)
+        unless $Config{taint_support};
 
-fresh_perl_is(<<'EOF', "x=2", { switches => ['-T', '-I../../lib'] }, 'eval_sv() taint');
+    fresh_perl_is(<<'EOF', "x=2", { switches => ['-T', '-I../../lib'] }, 'eval_sv() taint');
 use XS::APItest;
 
 my $x = 0;
@@ -357,4 +360,4 @@ sub f {
 eval { my @a = sort f 2, 1;  $x++};
 print "x=$x\n";
 EOF
-
+}
Index: gnu/usr.bin/perl/ext/XS-APItest/t/cv_refcounted_anysv.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/XS-APItest/t/cv_refcounted_anysv.t
diff -N gnu/usr.bin/perl/ext/XS-APItest/t/cv_refcounted_anysv.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/XS-APItest/t/cv_refcounted_anysv.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,18 @@
+#!./perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use XS::APItest;
+
+is(test_CvREFCOUNTED_ANYSV(), 0, "Bulk test internal CvREFCOUNTED_ANYSV API");
+
+# TODO: A test of operating via cv_clone()
+#   Unfortunately that's very difficult to arrange, because cv_clone() itself
+#   requires the CV to have a CvPADLIST, and that macro requires !CvISXSUB.
+#   We could instead go via cv_clone_into() but that isn't exposed outside of
+#   perl core.
+#   I don't know how to unit-test that one.
+
+done_testing;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/locale.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/locale.t,v
diff -u -p -a -u -p -r1.3 locale.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/locale.t	15 Feb 2023 01:36:32 -0000	1.3
+++ gnu/usr.bin/perl/ext/XS-APItest/t/locale.t	21 Feb 2024 15:47:02 -0000
@@ -6,30 +6,61 @@ BEGIN {
 use XS::APItest;
 use Config;
 
-skip_all("locales not available") unless locales_enabled('LC_NUMERIC');
+skip_all("locales not available") unless locales_enabled();
 
 my @locales = eval { find_locales( &LC_NUMERIC ) };
-skip_all("no LC_NUMERIC locales available") unless @locales;
-
-my $non_dot_locale;
-for (@locales) {
+my $comma_locale;
+for my $locale (@locales) {
+    use POSIX;
     use locale;
-    setlocale(LC_NUMERIC, $_) or next;
+    setlocale(LC_NUMERIC, $locale) or next;
     my $in = 4.2; # avoid any constant folding bugs
-    if (sprintf("%g", $in) ne "4.2") {
-        $non_dot_locale = $_;
+    my $s = sprintf("%g", $in);
+    if ($s eq "4,2")  {
+        $comma_locale = $locale;
         last;
     }
 }
 
-
 SKIP: {
-      if ($Config{usequadmath}) {
-            skip "no gconvert with usequadmath", 2;
+          if ($Config{usequadmath}) {
+              skip "no gconvert with usequadmath", 2;
+          }
+          is(test_Gconvert(4.179, 2), "4.2", "Gconvert doesn't recognize underlying locale outside 'use locale'");
+          use locale;
+          is(test_Gconvert(4.179, 2), "4.2", "Gconvert doesn't recognize underlying locale inside 'use locale'");
       }
-      is(test_Gconvert(4.179, 2), "4.2", "Gconvert doesn't recognize underlying locale outside 'use locale'");
-      use locale;
-      is(test_Gconvert(4.179, 2), "4.2", "Gconvert doesn't recognize underlying locale inside 'use locale'");
+
+sub check_in_bounds($$$) {
+    my ($value, $lower, $upper) = @_;
+
+    $value >= $lower && $value <= $upper
+}
+
+SKIP: {
+    # This checks that when switching to the global locale, the service that
+    # Perl provides of transparently dealing with locales that have a non-dot
+    # radix is turned off, but gets turned on again after a sync_locale();
+
+    skip "no locale with a comma radix available", 5 unless $comma_locale;
+
+    my $global_locale = switch_to_global_and_setlocale(LC_NUMERIC,
+                                                       $comma_locale);
+    # Can't do a compare of $global_locale and $comma_locale because what the
+    # system returns may be an alias.  ALl we can do is test for
+    # success/failure
+    ok($global_locale, "Successfully switched to $comma_locale");
+    is(newSvNV("4.888"), 4, "dot not recognized in global comma locale for SvNV");
+
+    no warnings 'numeric';  # Otherwise get "Argument isn't numeric in
+                            # subroutine entry"
+
+    is(check_in_bounds(newSvNV("4,888"), 4.88, 4.89), 1,
+       "comma recognized in global comma locale for SvNV");
+    isnt(sync_locale, 0, "sync_locale() returns that was in the global locale");
+
+    is(check_in_bounds(newSvNV("4.888"), 4.88, 4.89), 1,
+    "dot recognized in perl-controlled comma locale for SvNV");
 }
 
 my %correct_C_responses = (
@@ -98,7 +129,7 @@ open my $fh, "<", $hdr;
 $|=1;
 
 SKIP: {
-    skip "No LC_ALL", 1 unless find_locales( &LC_ALL );
+    skip "No LC_ALL", 1 unless locales_enabled('LC_ALL');
 
     use POSIX;
     setlocale(LC_ALL, "C");
@@ -118,7 +149,7 @@ SKIP: {
         chomp;
         next unless / - \d+ $ /x;
         s/ ^ \# \s* define \s*//x;
-        m/ (.*) \  (.*) /x;
+        m/ (\S+) \s+ (.*) /x;
         $items{$1} = ($has_nl_langinfo)
                      ? $1       # Yields 'YESSTR'
                      : $2;      # Yields -54
@@ -144,6 +175,27 @@ SKIP: {
             else {
                 fail("Returned undef for $formal_item");
             }
+        }
+    }
+}
+
+@locales = eval { find_locales( &LC_TIME ) };
+
+SKIP: {
+    skip("no LC_TIME locales available") unless @locales;
+
+    for my $locale (@locales) {
+        use POSIX 'strftime';
+        use locale;
+        setlocale(LC_TIME, $locale) or next;
+
+        # This isn't guaranteed to find failing locales, as it is impractical
+        # to test all possible dates.  But it is much better than no test at
+        # all
+        if (strftime('%c', 0, 0, , 12, 18, 11, 87) eq "") {
+            fail('strftime() built-in expansion factor works for all locales');
+            diag("Failed for locale $locale");
+            last;
         }
     }
 }
Index: gnu/usr.bin/perl/ext/XS-APItest/t/magic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/magic.t,v
diff -u -p -a -u -p -r1.4 magic.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/magic.t	15 Feb 2023 01:36:32 -0000	1.4
+++ gnu/usr.bin/perl/ext/XS-APItest/t/magic.t	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use Test::More;
 
 use XS::APItest;
 
-my $sv = bless {}, 'Moo';
+our $sv = 'Moo';
 my $foo = 'affe';
 my $bar = 'tiger';
 
@@ -15,6 +15,13 @@ sv_magic_foo($sv, $foo);
 is mg_find_foo($sv), $foo, 'foo magic attached';
 ok !mg_find_bar($sv), '... but still no bar magic';
 
+{
+	local $sv = 'Emu';
+	sv_magic_foo($sv, $foo);
+	is mg_find_foo($sv), $foo, 'foo magic attached to localized value';
+	ok !mg_find_bar($sv), '... but still no bar magic to localized value';
+}
+
 sv_magic_bar($sv, $bar);
 is mg_find_foo($sv), $foo, 'foo magic still attached';
 is mg_find_bar($sv), $bar, '... and bar magic is there too';
@@ -27,6 +34,14 @@ sv_unmagic_bar($sv);
 ok !mg_find_foo($sv), 'foo magic still removed';
 ok !mg_find_bar($sv), '... and bar magic is removed too';
 
+sv_magic_baz($sv, $bar);
+is mg_find_baz($sv), $bar, 'baz magic attached';
+ok !mg_find_bar($sv), '';
+{
+	local $sv = 'Emu';
+	ok !mg_find_baz($sv), '';
+}
+
 is(test_get_vtbl(), 0, 'get_vtbl(-1) returns NULL');
 
 eval { sv_magic(\!0, $foo) };
@@ -59,6 +74,61 @@ is $@, "", 'PERL_MAGIC_ext is permitted 
     $i = 0;
     %h = qw();
     is($i, 0, "hash () with set magic");
+}
+
+{
+    # check if set magic triggered by av_store() via aassign results in
+    # unreferenced scalars being freed. IOW, results in a double store
+    # without a corresponding refcount bump. If things work properly this
+    # should not warn. If there is an issue it will.
+    my @warn;
+    local $SIG{__WARN__}= sub { push @warn, $_[0] };
+    {
+        my (@a, $i);
+        sv_magic_myset_dies(\@a, $i);
+        eval {
+            $i = 0;
+            @a = (1);
+        };
+    }
+    is(0+@warn, 0,
+        "If AV set magic dies via aassign it should not warn about double free");
+    @warn = ();
+    {
+        my (@a, $i, $j);
+        sv_magic_myset_dies(\@a, $i);
+        eval {
+            $j = "blorp";
+            my_av_store(\@a,0,$j);
+        };
+
+        # Evaluate this boolean as a separate statement, so the two
+        # temporary \ refs are freed before we start comparing reference
+        # counts
+        my $is_same_SV = \$a[0] == \$j;
+
+        if ($is_same_SV) {
+            # in this case we expect to have 2 refcounts,
+            # one from $a[0] and one from $j itself.
+            is( sv_refcnt($j), 2,
+                "\$a[0] is \$j, so refcount(\$j) should be 2");
+        } else {
+            # Note this branch isn't exercised. Whether by design
+            # or not. I leave it here because it is a possible valid
+            # outcome. It is marked TODO so if we start going down
+            # this path we do so knowingly.
+            diag "av_store has changed behavior - please review this test";
+            TODO:{
+                local $TODO = "av_store bug stores even if it dies during magic";
+                # in this case we expect to have only 1 refcount,
+                # from $j itself.
+                is( sv_refcnt($j), 1,
+                    "\$a[0] is not \$j, so refcount(\$j) should be 1");
+            }
+        }
+    }
+    is(0+@warn, 0,
+        "AV set magic that dies via av_store should not warn about double free");
 }
 
 done_testing;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/mortal_destructor.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/XS-APItest/t/mortal_destructor.t
diff -N gnu/usr.bin/perl/ext/XS-APItest/t/mortal_destructor.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/XS-APItest/t/mortal_destructor.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,30 @@
+use XS::APItest;
+use Test::More tests => 1;
+use Data::Dumper;
+my $warnings = "";
+$SIG{__WARN__} = sub { $warnings .= $_[0]; };
+
+warn "Before test_mortal_destructor_sv\n";
+test_mortal_destructor_sv(sub { warn "in perl callback: ", $_[0],"\n" }, {});
+warn "After test_mortal_destructor_sv\n";
+
+warn "Before test_mortal_destructor_av\n";
+test_mortal_destructor_av(sub { warn "in perl callback: @_\n" }, ["a","b","c"]);
+warn "After test_mortal_destructor_av\n";
+
+warn "Before test_mortal_destructor_x\n";
+test_mortal_svfunc_x("this is an argument");
+warn "After test_mortal_destructor_x\n";
+
+$warnings=~s/0x[A-Fa-f0-9]+/0xDEADBEEF/g;
+is($warnings, <<'EXPECT');
+Before test_mortal_destructor_sv
+in perl callback: HASH(0xDEADBEEF)
+After test_mortal_destructor_sv
+Before test_mortal_destructor_av
+in perl callback: a b c
+After test_mortal_destructor_av
+Before test_mortal_destructor_x
+In destruct_test: this is an argument
+After test_mortal_destructor_x
+EXPECT
Index: gnu/usr.bin/perl/ext/XS-APItest/t/newAV.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/XS-APItest/t/newAV.t
diff -N gnu/usr.bin/perl/ext/XS-APItest/t/newAV.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/XS-APItest/t/newAV.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,49 @@
+#!perl
+
+use v5.36;
+use Test::More;
+
+use XS::APItest;
+
+my $plain_av = [1,2,3];
+is_deeply newAVav($plain_av), [1,2,3], 'newAVav on plain array';
+
+newAVav($plain_av)->[0]++;
+is $plain_av->[0], 1, 'newAVav returns fresh storage';
+
+{
+    package TiedArray {
+        sub TIEARRAY  { return bless [], "TiedArray"; }
+
+        sub FETCHSIZE { return 3; }
+        sub FETCH     { return $_[1] + 4; }
+    }
+    tie my @tied_av, "TiedArray";
+
+    is_deeply newAVav(\@tied_av), [4,5,6], 'newAVav on tied array';
+}
+
+# Just use one key at first so order doesn't matter
+my $plain_hv = {key => "value"};
+is_deeply newAVhv($plain_hv), [key => "value"], 'newAVhv on plain hash';
+
+newAVhv($plain_hv)->[1] .= "X";
+is $plain_hv->{key}, "value", 'newAVhv returns fresh storage';
+
+is_deeply [ sort +newAVhv({a => 1, b => 2, c => 3})->@* ], [ 1, 2, 3, "a", "b", "c" ],
+    'newAVhv on multiple keys';
+
+{
+    package TiedHash {
+        sub TIEHASH  { return bless [], "TiedHash"; }
+
+        sub FETCH    { return $_[1] eq "k" ? "v" : undef }
+        sub FIRSTKEY { return "k" }
+        sub NEXTKEY  { return; }
+    }
+    tie my %tied_hv, "TiedHash";
+
+    is_deeply newAVhv(\%tied_hv), [k => "v"], 'newAVhv on tied hash';
+}
+
+done_testing;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/overload.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/overload.t,v
diff -u -p -a -u -p -r1.1.1.1 overload.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/overload.t	25 Mar 2013 20:08:47 -0000	1.1.1.1
+++ gnu/usr.bin/perl/ext/XS-APItest/t/overload.t	21 Feb 2024 15:47:02 -0000
@@ -88,4 +88,65 @@ while (my ($type, $enum) = each %types) 
     }
 }
 
+{
+    package String;
+    use overload q("")=>sub { return $_[0]->val };
+    sub is_string_amg { 1 }
+    sub val { "string" }
+}
+{
+    package Num;
+    sub is_string_amg { 1 }
+    use overload q(0+) => sub { return $_[0]->val };
+    sub val { 12345 };
+}
+{
+    package NumNoFallback;
+    sub is_string_amg { undef }
+    use overload q(0+) => sub { return $_[0]->val }, fallback=>0;
+    sub val { 1234 };
+}
+{
+    package NumWithFallback;
+    sub is_string_amg { 1 }
+    use overload q(0+)=>sub { return $_[0]->val }, fallback=>1;
+    sub val { 123456 };
+}
+{
+    package NoMethod;
+    use overload q(nomethod)=> sub { $_[0]->val };
+    sub is_string_amg { 1 }
+    sub val { return(ref($_[0])||$_[0]); };
+}
+{
+    package NoOverload;
+    sub is_string_amg { 0 }
+}
+
+
+{
+    # these should be false
+
+    my $string_amg = 0x0a;
+    my $unary= 8;
+
+    foreach my $class (
+        "String",
+        "Num",
+        "NumNoFallback",
+        "NumWithFallback",
+        "NoMethod",
+        "NoOverload",
+    ) {
+        my $item= bless {}, $class;
+        my $str= eval { "$item" };
+        my $std_str= overload::StrVal($item);
+        my $ok= does_amagic_apply($item, $string_amg, $unary);
+        my $want = $class->is_string_amg;
+        is(0+$ok, $want//0, "amagic_applies($class,string_amg,AMGf_unary) works as expected");
+        is($str, $want ? $class->val : defined ($want) ? $std_str : undef,
+            "Stringified var matches amagic_applies()");
+    }
+}
+
 done_testing;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/savestack.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/XS-APItest/t/savestack.t
diff -N gnu/usr.bin/perl/ext/XS-APItest/t/savestack.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/XS-APItest/t/savestack.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,37 @@
+#!perl -w
+
+use strict;
+use warnings;
+use Test::More;
+
+use XS::APItest;
+
+my %ix;
+sub showix {
+    diag join ", ", map { $ix{$_} > 1 ? "$_ x $ix{$_}" : $_ } sort { $a <=> $b } keys %ix;
+}
+my $len = 100;
+my $str= "a" x $len;
+my $pat= join "|", map { "a" x $_ } 1 .. $len;
+
+$str=~/^($pat)(??{ $ix{get_savestack_ix()}++; "(?!)" })/;
+my $keys= 0+keys %ix;
+cmp_ok($keys,">",0, "We expect at least one key in %ix for (??{ ... }) test");
+cmp_ok($keys,"<=", 2, "We expect no more than two keys in %ix if (??{ ... }) does not leak")
+    or showix();
+
+%ix= ();
+$str=~/^($pat)(?{ $ix{my $x=get_savestack_ix()}++; })(?!)/;
+$keys= 0+keys %ix;
+cmp_ok($keys,">",0, "We expect at least one key in %ix for (?{ ...  }) test");
+cmp_ok($keys, "<=", 2, "We expect no more than two keys in %ix if (?{ ... }) does not leak")
+    or showix();
+
+%ix= ();
+$str=~/^($pat)(?(?{ $ix{my $x=get_savestack_ix()}++; })x|y)(?!)/;
+$keys= 0+keys %ix;
+cmp_ok($keys,">",0, "We expect at least one key in %ix for (?(?{ ... })yes|no) test");
+cmp_ok($keys, "<=", 2, "We expect no more than two keys in %ix if (?(?{ ... })yes|no) does not leak")
+    or showix();
+
+done_testing();
Index: gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t,v
diff -u -p -a -u -p -r1.2 svcatpvf.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t	24 May 2019 21:33:55 -0000	1.2
+++ gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t	21 Feb 2024 15:47:02 -0000
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 4;
+use Test::More tests => 6;
 
 use XS::APItest;
 
@@ -19,3 +19,13 @@ for my $case (@cases) {
     like($exn, qr/\b\QCannot yet reorder sv_vcatpvfn() arguments from va_list\E\b/,
          "explicit $what index forbidden in va_list arguments");
 }
+
+# these actually test newSVpvf() but it is the same underlying logic.
+is(test_HvNAMEf(bless {}, "Whatever::You::Like"),
+    "class='Whatever::You::Like'");
+is(test_HvNAMEf_QUOTEDPREFIX(bless {}, "x" x 1000),
+    'class="xxxxxxxxxxxxxxxxxxxxxxxxxx'.
+    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.
+    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"..."xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.
+    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.
+    'xxxxxxxxxxxxxxxxxxxxx"');
Index: gnu/usr.bin/perl/ext/XS-APItest/t/svpv.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/svpv.t,v
diff -u -p -a -u -p -r1.1.1.3 svpv.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/svpv.t	1 Mar 2021 23:15:55 -0000	1.1.1.3
+++ gnu/usr.bin/perl/ext/XS-APItest/t/svpv.t	21 Feb 2024 15:47:02 -0000
@@ -2,11 +2,11 @@
 
 BEGIN { require 'charset_tools.pl'; }
 
-use Test::More tests => 35;
+use Test::More tests => 43;
 
 use XS::APItest;
 
-for my $func ('SvPVbyte', 'SvPVutf8') {
+for my $func ('SvPVbyte_nolen', 'SvPVutf8_nolen') {
  $g = *glob;
  $r = \1;
  is &$func($g), '*main::glob', "$func(\$glob_copy)";
@@ -30,10 +30,14 @@ tie my $scalar_bin, 'TieScalarCounter', 
 do { my $fetch = $scalar_bin };
 is tied($scalar_bin)->{fetch}, 1;
 is tied($scalar_bin)->{store}, 0;
-is SvPVutf8_nomg($scalar_bin), $individual_B6_utf8_bytes;
+my $len;
+is SvPVutf8_nomg($scalar_bin, $len), $individual_B6_utf8_bytes;
+is $len, length($individual_B6_utf8_bytes), "check len set by SvPVutf8_nomg";
 is tied($scalar_bin)->{fetch}, 1;
 is tied($scalar_bin)->{store}, 0;
-is SvPVbyte_nomg($scalar_bin), $B6;
+undef $len;
+is SvPVbyte_nomg($scalar_bin, $len), $B6;
+is $len, length($B6), "check len set by SvPVbyte_nomg";
 is tied($scalar_bin)->{fetch}, 1;
 is tied($scalar_bin)->{store}, 0;
 
@@ -43,23 +47,34 @@ tie my $scalar_uni, 'TieScalarCounter', 
 do { my $fetch = $scalar_uni };
 is tied($scalar_uni)->{fetch}, 1;
 is tied($scalar_uni)->{store}, 0;
-is SvPVbyte_nomg($scalar_uni), $B6;
+undef $len;
+is SvPVbyte_nomg($scalar_uni, $len), $B6;
+is $len, length($B6), "cheeck len set by SvPVbyte_nomg";
 is tied($scalar_uni)->{fetch}, 1;
 is tied($scalar_uni)->{store}, 0;
-is SvPVutf8_nomg($scalar_uni), $individual_B6_utf8_bytes;
+undef $len;
+is SvPVutf8_nomg($scalar_uni, $len), $individual_B6_utf8_bytes;
+is $len, length($individual_B6_utf8_bytes), "check len set by SvPVutf8_nomg";
 is tied($scalar_uni)->{fetch}, 1;
 is tied($scalar_uni)->{store}, 0;
 
-eval 'SvPVbyte(*{chr 256})';
-like $@, qr/^Wide character/, 'SvPVbyte fails on Unicode glob';
+undef $len;
+is SvPVutf8($scalar_bin, $len), $individual_B6_utf8_bytes;
+is $len, length $individual_B6_utf8_bytes;
+undef $len;
+is SvPVutf8($scalar_uni, $len), $individual_B6_utf8_bytes;
+is $len, length $individual_B6_utf8_bytes, "check len set by SvPVutf8";
+
+eval 'SvPVbyte_nolen(*{chr 256})';
+like $@, qr/^Wide character/, 'SvPVbyte_nolen fails on Unicode glob';
 package r { use overload '""' => sub { substr "\x{100}\xff", -1 } }
-is SvPVbyte(bless [], r::), "\xff",
-  'SvPVbyte on ref returning downgradable utf8 string';
+is SvPVbyte_nolen(bless [], r::), "\xff",
+  'SvPVbyte_nolen on ref returning downgradable utf8 string';
 
 sub TIESCALAR { bless \(my $thing = pop), shift }
 sub FETCH { ${ +shift } }
 tie $tyre, main => bless [], r::;
-is SvPVbyte($tyre), "\xff",
+is SvPVbyte_nolen($tyre), "\xff",
   'SvPVbyte on tie returning ref that returns downgradable utf8 string';
 
 package TieScalarCounter;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/svpv_magic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/svpv_magic.t,v
diff -u -p -a -u -p -r1.2 svpv_magic.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/svpv_magic.t	5 Feb 2017 00:32:14 -0000	1.2
+++ gnu/usr.bin/perl/ext/XS-APItest/t/svpv_magic.t	21 Feb 2024 15:47:02 -0000
@@ -33,7 +33,7 @@ is(eval { XS::APItest::first_byte($1) } 
 sub TIESCALAR { bless [], shift }
 sub FETCH { ++$f; *{chr utf8::unicode_to_native(255)} }
 tie $t, "main";
-is SvPVutf8($t), "*main::" . byte_utf8a_to_utf8n("\xc3\xbf"),
+is SvPVutf8_nolen($t), "*main::" . byte_utf8a_to_utf8n("\xc3\xbf"),
   'SvPVutf8 works with get-magic changing the SV type';
 is $f, 1, 'SvPVutf8 calls get-magic once';
 
@@ -44,7 +44,7 @@ package t {
 }
 tie $t, "t";
 undef $f;
-is SvPVutf8($t), byte_utf8a_to_utf8n("\xc3\xbf"),
+is SvPVutf8_nolen($t), byte_utf8a_to_utf8n("\xc3\xbf"),
   'SvPVutf8 works with get-magic downgrading the SV';
 is $f, 1, 'SvPVutf8 calls get-magic once';
 ()="$t";
Index: gnu/usr.bin/perl/ext/XS-APItest/t/utf8.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/utf8.t,v
diff -u -p -a -u -p -r1.4 utf8.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/utf8.t	15 Feb 2023 01:36:32 -0000	1.4
+++ gnu/usr.bin/perl/ext/XS-APItest/t/utf8.t	21 Feb 2024 15:47:02 -0000
@@ -1183,10 +1183,9 @@ for my $restriction (sort keys %restrict
 
 SKIP:
 {
-    isASCII
-      or skip "These tests probably break on non-ASCII", 1;
     my $simple = join "", "A" .. "J";
-    my $utf_ch = "\x{7fffffff}";
+    my $utf_ch = "\x{3f_ffff}";     # Highest code point that is same number
+                                    # of bytes on ASCII and EBCDIC: 5
     utf8::encode($utf_ch);
     my $utf_ch_len = length $utf_ch;
     note "utf_ch_len $utf_ch_len";
@@ -1195,10 +1194,9 @@ SKIP:
     # $bad_end ends with a start byte and a single continuation
     my $bad_end = substr($utf, 0, length($utf)-$utf_ch_len+2);
 
-    # WARNING: all offsets are *byte* offsets
     my @hop_tests =
-      (
-       # string      s                off        expected         name
+      (  #           start byte      chars
+       # string      in 'string'     to hop      expected         name
        [ $simple,    0,               5,         5,               "simple in range, forward" ],
        [ $simple,    10,              -5,        5,               "simple in range, backward" ],
        [ $simple,    5,               10,        10,              "simple out of range, forward" ],
@@ -1209,9 +1207,10 @@ SKIP:
        [ $utf,       $utf_ch_len * 5, -4,        $utf_ch_len,     "utf in range b, backward" ],
        [ $utf,       $utf_ch_len * 5, 6,         length($utf),    "utf out of range, forward" ],
        [ $utf,       $utf_ch_len * 5, -6,        0,               "utf out of range, backward"  ],
-       [ $bad_start, 0,               1,         1,               "bad start, forward 1 from 0" ],
-       [ $bad_start, 0,               $utf_ch_len-1, $utf_ch_len-1, "bad start, forward ch_len-1 from 0" ],
-       [ $bad_start, 0,               $utf_ch_len, $utf_ch_len*2-1, "bad start, forward ch_len from 0" ],
+       [ $bad_start, 0,               1,         $utf_ch_len-1,   "bad start, forward 1 from 0" ],
+       [ $bad_start, 0,               5,         5 * $utf_ch_len-1, "bad start, forward 5 chars from 0" ],
+       [ $bad_start, 0,                9,        length($bad_start)-$utf_ch_len, "bad start, forward 9 chars from 0" ],
+       [ $bad_start, 0,               10,        length $bad_start, "bad start, forward 10 chars from 0" ],
        [ $bad_start, $utf_ch_len-1,   -1,        0,                "bad start, back 1 from first start byte" ],
        [ $bad_start, $utf_ch_len-2,   -1,        0,                "bad start, back 1 from before first start byte" ],
        [ $bad_start, 0,               -1,        0,                "bad start, back 1 from 0" ],
@@ -1221,8 +1220,8 @@ SKIP:
        );
 
     for my $test (@hop_tests) {
-        my ($str, $s_off, $off, $want, $name) = @$test;
-        my $result = test_utf8_hop_safe($str, $s_off, $off);
+        my ($str, $s_off, $hop, $want, $name) = @$test;
+        my $result = test_utf8_hop_safe($str, $s_off, $hop);
         is($result, $want, "utf8_hop_safe: $name");
     }
 }
Index: gnu/usr.bin/perl/ext/attributes/attributes.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/attributes/attributes.pm,v
diff -u -p -a -u -p -r1.4 attributes.pm
--- gnu/usr.bin/perl/ext/attributes/attributes.pm	15 Feb 2023 01:36:33 -0000	1.4
+++ gnu/usr.bin/perl/ext/attributes/attributes.pm	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 package attributes;
 
-our $VERSION = 0.34;
+our $VERSION = 0.35;
 
 @EXPORT_OK = qw(get reftype);
 @EXPORT = ();
Index: gnu/usr.bin/perl/ext/attributes/attributes.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/attributes/attributes.xs,v
diff -u -p -a -u -p -r1.4 attributes.xs
--- gnu/usr.bin/perl/ext/attributes/attributes.xs	15 Feb 2023 01:36:33 -0000	1.4
+++ gnu/usr.bin/perl/ext/attributes/attributes.xs	21 Feb 2024 15:47:02 -0000
@@ -78,9 +78,9 @@ modify_SV_attributes(pTHX_ SV *sv, SV **
 		case 'h':
 		    if (memEQs(name, 6, "method")) {
 			if (negated)
-			    CvFLAGS(MUTABLE_CV(sv)) &= ~CVf_METHOD;
+			    CvFLAGS(MUTABLE_CV(sv)) &= ~CVf_NOWARN_AMBIGUOUS;
 			else
-			    CvFLAGS(MUTABLE_CV(sv)) |= CVf_METHOD;
+			    CvFLAGS(MUTABLE_CV(sv)) |= CVf_NOWARN_AMBIGUOUS;
 			continue;
 		    }
 		    break;
@@ -173,7 +173,7 @@ usage:
 	cvflags = CvFLAGS((const CV *)sv);
 	if (cvflags & CVf_LVALUE)
 	    XPUSHs(newSVpvs_flags("lvalue", SVs_TEMP));
-	if (cvflags & CVf_METHOD)
+	if (cvflags & CVf_NOWARN_AMBIGUOUS)
 	    XPUSHs(newSVpvs_flags("method", SVs_TEMP));
 	break;
     default:
Index: gnu/usr.bin/perl/ext/mro/mro.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/mro/mro.pm,v
diff -u -p -a -u -p -r1.5 mro.pm
--- gnu/usr.bin/perl/ext/mro/mro.pm	15 Feb 2023 01:36:33 -0000	1.5
+++ gnu/usr.bin/perl/ext/mro/mro.pm	21 Feb 2024 15:47:02 -0000
@@ -12,7 +12,7 @@ use warnings;
 
 # mro.pm versions < 1.00 reserved for MRO::Compat
 #  for partial back-compat to 5.[68].x
-our $VERSION = '1.26';
+our $VERSION = '1.28';
 
 require XSLoader;
 XSLoader::load('mro');
Index: gnu/usr.bin/perl/ext/mro/mro.xs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/mro/mro.xs,v
diff -u -p -a -u -p -r1.4 mro.xs
--- gnu/usr.bin/perl/ext/mro/mro.xs	15 Feb 2023 01:36:33 -0000	1.4
+++ gnu/usr.bin/perl/ext/mro/mro.xs	21 Feb 2024 15:47:02 -0000
@@ -14,7 +14,8 @@ static const struct mro_alg c3_alg =
 =for apidoc mro_get_linear_isa_c3
 
 Returns the C3 linearization of C<@ISA>
-the given stash.  The return value is a read-only AV*.
+the given stash.  The return value is a read-only AV*
+whose values are string SVs giving class names.
 C<level> should be 0 (it is used internally in this
 function's recursion).
 
@@ -504,7 +505,6 @@ mro__nextcan(...)
         cxix = __dopoptosub_at(ccstack, cxix);
         for (;;) {
 	    GV* cvgv;
-	    STRLEN fq_subname_len;
 
             /* we may be in a higher stacklevel, so dig down deeper */
             while (cxix < 0) {
@@ -545,19 +545,14 @@ mro__nextcan(...)
 
 	    if(SvPOK(sv)) {
 		fq_subname = SvPVX(sv);
-		fq_subname_len = SvCUR(sv);
-
-                subname_utf8 = SvUTF8(sv) ? 1 : 0;
 		subname = strrchr(fq_subname, ':');
-	    } else {
-		subname = NULL;
-	    }
-
+            }
             if(!subname)
                 Perl_croak(aTHX_ "next::method/next::can/maybe::next::method cannot find enclosing method");
 
+            subname_utf8 = SvUTF8(sv) ? 1 : 0;
             subname++;
-            subname_len = fq_subname_len - (subname - fq_subname);
+            subname_len = SvCUR(sv) - (subname - fq_subname);
             if(memEQs(subname, subname_len, "__ANON__")) {
                 cxix = __dopoptosub_at(ccstack, cxix - 1);
                 continue;
Index: gnu/usr.bin/perl/ext/re/Makefile.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/re/Makefile.PL,v
diff -u -p -a -u -p -r1.3 Makefile.PL
--- gnu/usr.bin/perl/ext/re/Makefile.PL	1 Mar 2021 23:19:57 -0000	1.3
+++ gnu/usr.bin/perl/ext/re/Makefile.PL	21 Feb 2024 15:47:02 -0000
@@ -1,8 +1,31 @@
+use strict;
+use warnings;
 use ExtUtils::MakeMaker;
 use File::Spec;
 use Config;
+#   [ src => @deps ]
+our @files = (
+    # compiler files ########################################
+    ['regcomp.c'        => 'dquote.c', 'invlist_inline.h'   ],
+    ['regcomp_invlist.c' => 'invlist_inline.h'              ],
+    ['regcomp_study.c'                                      ],
+    ['regcomp_trie.c'                                       ],
+    ['regcomp_debug.c'                                      ],
+    # execution engine files ################################
+    ['regexec.c'        => 'invlist_inline.h'               ],
+    # misc files ############################################
+    ['dquote.c'                                             ],
+    ['invlist_inline.h'                                     ],
+    #########################################################
+);
 
-my $object = 're_exec$(OBJ_EXT) re_comp$(OBJ_EXT) re$(OBJ_EXT)';
+my @objects = 're$(OBJ_EXT)';
+foreach my $tuple (@files) {
+    my $src_file = $tuple->[0];
+    if ($src_file=~s/reg/re_/ and $src_file=~s/\.c/\$(OBJ_EXT)/) {
+        push @objects, $src_file;
+    }
+}
 
 my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT';
 
@@ -15,45 +38,41 @@ WriteMakefile(
     @libs ? ( 'LIBS' => [ join(" ", map { "-l$_" } @libs) ] ) : (),
     VERSION_FROM	=> 're.pm',
     XSPROTOARG		=> '-noprototypes',
-    OBJECT		=> $object,
+    OBJECT		=> "@objects",
     DEFINE             => $defines,
     clean		=> { FILES => '*$(OBJ_EXT) invlist_inline.h *.c ../../lib/re.pm' },
 );
 
 package MY;
-
 sub upupfile {
     File::Spec->catfile(File::Spec->updir, File::Spec->updir, $_[0]);
 }
 
 sub postamble {
-    my $regcomp_c = upupfile('regcomp.c');
-    my $regexec_c = upupfile('regexec.c');
-    my $dquote_c = upupfile('dquote.c');
-    my $invlist_inline_h = upupfile('invlist_inline.h');
+    my $postamble = "";
 
+    foreach my $tuple (@::files) {
+        my ($file, @deps) = @$tuple;
+        my $src_file = upupfile($file);
+        my $target = $file;
+        $target =~ s/^reg/re_/;
+        $postamble .=
     <<EOF;
-re_comp.c : $regcomp_c
-	- \$(RM_F) re_comp.c
-	\$(CP) $regcomp_c re_comp.c
-
-re_comp\$(OBJ_EXT) : re_comp.c dquote.c invlist_inline.h
+$target : $src_file
+	- \$(RM_F) $target
+	\$(CP) $src_file $target
 
-re_exec.c : $regexec_c
-	- \$(RM_F) re_exec.c
-	\$(CP) $regexec_c re_exec.c
-
-re_exec\$(OBJ_EXT) : re_exec.c invlist_inline.h
-
-dquote.c : $dquote_c
-	- \$(RM_F) dquote.c
-	\$(CP) $dquote_c dquote.c
-
-invlist_inline.h : $invlist_inline_h
-	- \$(RM_F) invlist_inline.h
-	\$(CP) $invlist_inline_h invlist_inline.h
+EOF
+        next if $target eq $file;
+        my $base_name = $target;
+        if ($base_name=~s/\.c\z//) {
+            $postamble .= <<EOF
+$base_name\$(OBJ_EXT) : $target @deps
 
 EOF
+        }
+    }
+    return $postamble
 }
 
 sub MY::c_o {
Index: gnu/usr.bin/perl/ext/re/re.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/re/re.pm,v
diff -u -p -a -u -p -r1.6 re.pm
--- gnu/usr.bin/perl/ext/re/re.pm	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/ext/re/re.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ package re;
 use strict;
 use warnings;
 
-our $VERSION     = "0.43";
+our $VERSION     = "0.44";
 our @ISA         = qw(Exporter);
 our @EXPORT_OK   = qw{
 	is_regexp regexp_pattern
Index: gnu/usr.bin/perl/ext/re/t/intflags.pl
===================================================================
RCS file: gnu/usr.bin/perl/ext/re/t/intflags.pl
diff -N gnu/usr.bin/perl/ext/re/t/intflags.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/re/t/intflags.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,16 @@
+use re 'Debug' => qw(DUMP FLAGS);
+our $count;
+my $code= '(?{$count++})';
+my @p= (
+    qr/(foo)(?1)?/,
+    qr/\Gfoo/,
+    qr/.*foo/,
+    qr/^foo/,
+    qr/(foo(*THEN)bar|food)/,
+    qr/a.*b.*/,
+    qr/a{1,4}\Gfoo/,
+    qr/a+/,
+    do { use re 'eval'; qr/a$code/},
+);
+
+print STDERR "-OK-\n";
Index: gnu/usr.bin/perl/ext/re/t/intflags.t
===================================================================
RCS file: gnu/usr.bin/perl/ext/re/t/intflags.t
diff -N gnu/usr.bin/perl/ext/re/t/intflags.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/ext/re/t/intflags.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,25 @@
+#!./perl
+
+BEGIN {
+    require Config;
+    if (($Config::Config{'extensions'} !~ /\bre\b/) ){
+	print "1..0 # Skip -- Perl configured without re module\n";
+	exit 0;
+    }
+}
+
+use strict;
+
+# must use a BEGIN or the prototypes wont be respected meaning
+# tests could pass that shouldn't.
+BEGIN { require "../../t/test.pl"; }
+my $out = runperl(progfile => "t/intflags.pl", stderr => 1 );
+like($out,qr/-OK-\n/, "intflags.pl ran to completion");
+
+my %seen;
+foreach my $line (split /\n/, $out) {
+    $line=~s/^r->intflags:\s+// or next;
+    length($_) and $seen{$_}++ for split /\s+/, $line;
+}
+is(0+keys %seen,14);
+done_testing;
Index: gnu/usr.bin/perl/ext/re/t/lexical_debug.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/ext/re/t/lexical_debug.t,v
diff -u -p -a -u -p -r1.2 lexical_debug.t
--- gnu/usr.bin/perl/ext/re/t/lexical_debug.t	5 Feb 2017 00:32:14 -0000	1.2
+++ gnu/usr.bin/perl/ext/re/t/lexical_debug.t	21 Feb 2024 15:47:02 -0000
@@ -11,7 +11,7 @@ BEGIN {
 use strict;
 
 # must use a BEGIN or the prototypes wont be respected meaning 
-    # tests could pass that shouldn't
+# tests could pass that shouldn't
 BEGIN { require "../../t/test.pl"; }
 my $out = runperl(progfile => "t/lexical_debug.pl", stderr => 1 );
 
Index: gnu/usr.bin/perl/hints/README.hints
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/README.hints,v
diff -u -p -a -u -p -r1.11 README.hints
--- gnu/usr.bin/perl/hints/README.hints	1 Mar 2021 23:19:57 -0000	1.11
+++ gnu/usr.bin/perl/hints/README.hints	21 Feb 2024 15:47:02 -0000
@@ -1,3 +1,5 @@
+# vim: syntax=pod
+
 =head1 NAME
 
 README.hints - hint files used by Configure
Index: gnu/usr.bin/perl/hints/aix.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/aix.sh,v
diff -u -p -a -u -p -r1.18 aix.sh
--- gnu/usr.bin/perl/hints/aix.sh	15 Feb 2023 01:36:33 -0000	1.18
+++ gnu/usr.bin/perl/hints/aix.sh	21 Feb 2024 15:47:02 -0000
@@ -670,7 +670,7 @@ EOF
            $cc -q64 -qlongdouble -o fmodl$$ fmodl$$.c -lm
            case `./fmodl$$` in
            2147483648)
-             echo "The -q64 did the trick, will use it." >& 4
+             echo "The -q64 did the trick, will use it." >&4
              ccflags="`echo $ccflags | sed -e 's@-q32@@g'`"
              ldflags="`echo $ldflags | sed -e 's@-q32@@g'`"
              ccflags="$ccflags -q64"
Index: gnu/usr.bin/perl/hints/catamount.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/catamount.sh,v
diff -u -p -a -u -p -r1.14 catamount.sh
--- gnu/usr.bin/perl/hints/catamount.sh	23 Dec 2023 21:02:21 -0000	1.14
+++ gnu/usr.bin/perl/hints/catamount.sh	21 Feb 2024 15:47:02 -0000
@@ -31,11 +31,11 @@
 # mkdir -p /opt/perl-catamount
 # mkdir -p /opt/perl-catamount/include
 # mkdir -p /opt/perl-catamount/lib
-# mkdir -p /opt/perl-catamount/lib/perl5/5.36.3
+# mkdir -p /opt/perl-catamount/lib/perl5/5.38.2
 # mkdir -p /opt/perl-catamount/bin
 # cp *.h /opt/perl-catamount/include
 # cp libperl.a /opt/perl-catamount/lib
-# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.36.3
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.38.2
 # cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
 #
 # With the headers and the libperl.a you can embed Perl to your Catamount
Index: gnu/usr.bin/perl/hints/cygwin.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/cygwin.sh,v
diff -u -p -a -u -p -r1.1.1.11 cygwin.sh
--- gnu/usr.bin/perl/hints/cygwin.sh	15 Feb 2023 01:33:10 -0000	1.1.1.11
+++ gnu/usr.bin/perl/hints/cygwin.sh	21 Feb 2024 15:47:02 -0000
@@ -25,13 +25,22 @@ libswanted=`echo " $libswanted " | sed -
 libswanted=`echo " $libswanted " | sed -e 's/ m / /g'`
 # - eliminate -lutil, symbols are all in libcygwin.a
 libswanted=`echo " $libswanted " | sed -e 's/ util / /g'`
+test -z "$ignore_versioned_solibs" && ignore_versioned_solibs='y'
+test -z "$usenm" && usenm='no'
+test -z "$libc" && libc='/usr/lib/libcygwin.a'
+test -z "$loclibpth" && loclibpth=' '
+test -z "$glibpth" && glibpth=' '
+test -z "$plibpth" && plibpth=' '
+test -z "$libpth" && libpth=' '
+PATH='.:/usr/bin/'
 # - add libgdbm_compat $libswanted
 libswanted="$libswanted gdbm_compat"
 test -z "$optimize" && optimize='-O3'
 man3ext='3pm'
 test -z "$use64bitint" && use64bitint='define'
 test -z "$useithreads" && useithreads='define'
-ccflags="$ccflags -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -D_GNU_SOURCE"
+test -z "$usemymalloc" && usemymalloc='undef'
+ccflags="$ccflags -U__STRICT_ANSI__ -D_GNU_SOURCE"
 # - otherwise i686-cygwin
 archname='cygwin'
 
@@ -86,3 +95,6 @@ lddlflags="$lddlflags $ldflags"
 # it still doesn't work, despite our probes looking good:
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64697
 d_thread_local=undef
+
+# Broken: https://sourceware.org/pipermail/cygwin/2022-August/252043.html */
+d_newlocale=undef
Index: gnu/usr.bin/perl/hints/darwin.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/darwin.sh,v
diff -u -p -a -u -p -r1.7 darwin.sh
--- gnu/usr.bin/perl/hints/darwin.sh	15 Feb 2023 01:36:33 -0000	1.7
+++ gnu/usr.bin/perl/hints/darwin.sh	21 Feb 2024 15:47:02 -0000
@@ -357,6 +357,9 @@ EOM
         esac
     fi
 
+    # The OS is buggy with respect to this.
+    ccflags="$ccflags -DNO_POSIX_2008_LOCALE"
+
    lddlflags="${ldflags} -bundle -undefined dynamic_lookup"
    ;;
 esac
@@ -508,16 +511,6 @@ esac
 # makefile in the same place.  Since Darwin uses GNU make, this dodges
 # the problem.
 firstmakefile=GNUmakefile;
-
-# Parts of the system call setenv(), in particular in an atfork handler.
-# This causes problems when the child tries to clean up environ[], so
-# let libc manage environ[].
-cat >> config.over <<'EOOVER'
-if test "$d_unsetenv" = "$define" -a \
-    `expr "$ccflags" : '.*-DPERL_USE_SAFE_PUTENV'` -eq 0; then
-        ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
-fi
-EOOVER
 
 # if you use a newer toolchain before OS X 10.9 these functions may be
 # incorrectly detected, so disable them
Index: gnu/usr.bin/perl/hints/dec_osf.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/dec_osf.sh,v
diff -u -p -a -u -p -r1.15 dec_osf.sh
--- gnu/usr.bin/perl/hints/dec_osf.sh	30 Dec 2019 02:13:54 -0000	1.15
+++ gnu/usr.bin/perl/hints/dec_osf.sh	21 Feb 2024 15:47:02 -0000
@@ -487,7 +487,7 @@ esac
 for p in $loclibpth
 do
 	if test -d $p; then
-	    echo "Appending $p to LD_LIBRARY_PATH." >& 4
+	    echo "Appending $p to LD_LIBRARY_PATH." >&4
 	    case "$LD_LIBRARY_PATH" in
 	    '') LD_LIBRARY_PATH=$p                  ;;
 	    *)  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$p ;;
@@ -496,7 +496,7 @@ do
 done
 case "$LD_LIBRARY_PATH" in
 "$old_LD_LIBRARY_PATH") ;;
-*) echo "LD_LIBRARY_PATH is now $LD_LIBRARY_PATH." >& 4 ;;
+*) echo "LD_LIBRARY_PATH is now $LD_LIBRARY_PATH." >&4 ;;
 esac
 case "$LD_LIBRARY_PATH" in
 '') ;;
Index: gnu/usr.bin/perl/hints/freebsd.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/freebsd.sh,v
diff -u -p -a -u -p -r1.16 freebsd.sh
--- gnu/usr.bin/perl/hints/freebsd.sh	1 Mar 2021 23:19:57 -0000	1.16
+++ gnu/usr.bin/perl/hints/freebsd.sh	21 Feb 2024 15:47:02 -0000
@@ -352,3 +352,25 @@ arm|mips)
   test "$optimize" || optimize='-O2'
   ;;
 esac
+
+# don't modify a supplied -Darchname
+case "$archname" in
+'')
+  cat > UU/archname.cbu <<'EOCBU'
+unamem=`uname -m`
+case "$archname" in
+"$unamem"-*)
+  arch=`uname -p`
+  archname=`echo "$archname" | sed -e "s/^$unamem-/$arch-/"`
+  ;;
+esac
+EOCBU
+  ;;
+esac
+
+# This function on this box has weird behavior.  See
+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255646
+d_querylocale='undef'
+
+# See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265950
+d_duplocale='undef'
Index: gnu/usr.bin/perl/hints/hpux.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/hpux.sh,v
diff -u -p -a -u -p -r1.18 hpux.sh
--- gnu/usr.bin/perl/hints/hpux.sh	1 Mar 2021 23:19:57 -0000	1.18
+++ gnu/usr.bin/perl/hints/hpux.sh	21 Feb 2024 15:47:02 -0000
@@ -805,13 +805,15 @@ case "$d_oldpthreads" in
 # and it seems to be buggy in HP-UX anyway.
 i_dbm=undef
 
-# In HP-UXes prior to 11.23 strtold() returned a HP-UX
-# specific union called long_double, not a C99 long double.
-case "`grep 'double strtold.const' /usr/include/stdlib.h`" in
-*"long double strtold"*) ;; # strtold should be safe.
-*) echo "Looks like your strtold() is non-standard..." >&4
-   d_strtold=undef ;;
-esac
+if [ "$xxOsRevMajor" -lt 11 ] || [ "$xxOsRevMajor" -eq 11 ] && [ "$xxOsRevMinor" -lt 23 ]; then
+    # In HP-UXes prior to 11.23 strtold() returned a HP-UX
+    # specific union called long_double, not a C99 long double.
+    case "`grep 'double strtold.const' /usr/include/stdlib.h`" in
+        *"long double strtold"*) ;; # strtold should be safe.
+        *) echo "Looks like your strtold() is non-standard..." >&4
+        d_strtold=undef ;;
+    esac
+fi
 
 # In pre-11 HP-UXes there really isn't isfinite(), despite what
 # Configure might think. (There is finite(), though.)
Index: gnu/usr.bin/perl/hints/linux.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/linux.sh,v
diff -u -p -a -u -p -r1.20 linux.sh
--- gnu/usr.bin/perl/hints/linux.sh	1 Mar 2021 23:19:57 -0000	1.20
+++ gnu/usr.bin/perl/hints/linux.sh	21 Feb 2024 15:47:02 -0000
@@ -154,7 +154,7 @@ esac
 # (such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
 # where to look.  We don't want gcc's own libraries, however, so we
 # filter those out.
-# This could be conditional on Unbuntu, but other distributions may
+# This could be conditional on Ubuntu, but other distributions may
 # follow suit, and this scheme seems to work even on rather old gcc's.
 # This unconditionally uses gcc because even if the user is using another
 # compiler, we still need to find the math library and friends, and I don't
Index: gnu/usr.bin/perl/hints/os390.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/os390.sh,v
diff -u -p -a -u -p -r1.12 os390.sh
--- gnu/usr.bin/perl/hints/os390.sh	15 Feb 2023 01:36:33 -0000	1.12
+++ gnu/usr.bin/perl/hints/os390.sh	21 Feb 2024 15:47:02 -0000
@@ -63,8 +63,6 @@ myfirstchar=$(od -A n -N 1 -t x $me | xa
 if [ "${myfirstchar}" = "23" ]; then # 23 is '#' in ASCII
   unset ebcdic
   def_os390_cflags="$def_os390_cflags -qascii"
-  # ensure that 'safe' putenv is used and avoid direct environ manipulation
-  def_os390_defs="$def_os390_defs -DPERL_USE_SAFE_PUTENV";
 else
   ebcdic=true
 fi
Index: gnu/usr.bin/perl/hints/riscos.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/riscos.sh,v
diff -u -p -a -u -p -r1.1.1.1 riscos.sh
--- gnu/usr.bin/perl/hints/riscos.sh	29 Sep 2008 17:18:28 -0000	1.1.1.1
+++ gnu/usr.bin/perl/hints/riscos.sh	21 Feb 2024 15:47:02 -0000
@@ -5,7 +5,7 @@
 
 cc='gcc'
 locincpth=""
-ccflags="-mpoke-function-name -DDYNAMIC_ENV_FETCH -DPERL_USE_SAFE_PUTENV"
+ccflags="-mpoke-function-name -DDYNAMIC_ENV_FETCH"
 prefix='/<Perl$Dir>'
 osname='riscos'
 libpth=' '
Index: gnu/usr.bin/perl/hints/solaris_2.sh
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/hints/solaris_2.sh,v
diff -u -p -a -u -p -r1.17 solaris_2.sh
--- gnu/usr.bin/perl/hints/solaris_2.sh	1 Mar 2021 23:19:57 -0000	1.17
+++ gnu/usr.bin/perl/hints/solaris_2.sh	21 Feb 2024 15:47:02 -0000
@@ -63,6 +63,10 @@ esac
 set `echo " $libswanted " | sed -e 's@ ld @ @' -e 's@ malloc @ @' -e 's@ ucb @ @' -e 's@ sec @ @' -e 's@ crypt @ @'`
 libswanted="$*"
 
+# Add libnsl for networking support
+set `echo " $libswanted " | sed -e 's@ inet @ inet nsl @'`
+libswanted="$*"
+
 # Look for architecture name.  We want to suggest a useful default.
 case "$archname" in
 '')
@@ -693,21 +697,6 @@ EOM
 	;;
 esac
 EOCBU
-
-#
-# If unsetenv is available, use it in conjunction with PERL_USE_SAFE_PUTENV to
-# work around Sun bugid 6333830.  Both unsetenv and 6333830 only appear in
-# Solaris 10, so we don't need to probe explicitly for an OS version.  We have
-# to append this test to the end of config.over as it needs to run after
-# Configure has probed for unsetenv, and this hints file is processed before
-# that has happened.
-#
-cat >> config.over <<'EOOVER'
-if test "$d_unsetenv" = "$define" -a \
-    `expr "$ccflags" : '.*-DPERL_USE_SAFE_PUTENV'` -eq 0; then
-        ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
-fi
-EOOVER
 
 rm -f try.c try.o try a.out
 
Index: gnu/usr.bin/perl/hints/ultrix_4.sh
===================================================================
RCS file: gnu/usr.bin/perl/hints/ultrix_4.sh
diff -N gnu/usr.bin/perl/hints/ultrix_4.sh
--- gnu/usr.bin/perl/hints/ultrix_4.sh	13 Feb 2019 21:15:24 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-# hints/ultrix_4.sh
-# Last updated by Andy Dougherty  <doughera@lafayette.edu>
-# Fri Feb 10 10:04:51 EST 1995
-#
-# Use   Configure -Dcc=gcc   to use gcc.
-#
-# This used to use -g, but that pulls in -DDEBUGGING by default.
-case "$optimize" in
-'')
-	# recent versions have a working compiler.
-	case "$osvers" in
-	*4.[45]*)	optimize='-O2' ;;
-	*)		optimize='none' ;;
-	esac
-	;;
-esac
-
-# Some users have reported Configure runs *much* faster if you 
-# replace all occurrences of /bin/sh by /bin/sh5
-# Something like:
-#   sed 's!/bin/sh!/bin/sh5!g' Configure > Configure.sh5
-# Then run "sh5 Configure.sh5 [your options]"
-
-case "$myuname" in
-*risc*) cat <<EOF >&4
-Note that there is a bug in some versions of NFS on the DECStation that
-may cause utime() to work incorrectly.  If so, regression test io/fs
-may fail if run under NFS.  Ignore the failure.
-EOF
-esac
-
-# Compiler flags that depend on osversion:
-case "$cc" in
-*gcc*) ;;
-*)
-    case "$osvers" in
-    *4.1*)	ccflags="$ccflags -DLANGUAGE_C -Olimit 3800" ;;
-    *4.2*)	ccflags="$ccflags -DLANGUAGE_C -Olimit 3800"
-		# Prototypes sometimes cause compilation errors in 4.2.
-		prototype=undef   
-    *4.3*)	ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3800" ;;
-    *)	ccflags="$ccflags -std -Olimit 3800" ;;
-    esac
-    ;;
-esac
-
-# Other settings that depend on $osvers:
-case "$osvers" in
-*4.1*)	;;
-*4.2*)	libswanted=`echo $libswanted | sed 's/ malloc / /'` ;;
-*4.3*)	;;
-*)	ranlib='ranlib' ;;
-esac
-
-# Settings that don't depend on $osvers:
-
-util_cflags='ccflags="$ccflags -DLOCALE_ENVIRON_REQUIRED"'
-groupstype='int'
-# The configure test should be beefed up to try using the field when
-# it can't find any of the standardly-named fields.
-d_dirnamlen='define'
-
-# Ultrix can mmap only character devices, not regular files,
-# which is rather useless state of things for Perl.
-d_mmap='undef'
-
-# There simply isn't dynaloading in Ultrix.
-usedl='undef'
-
Index: gnu/usr.bin/perl/lib/Benchmark.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Benchmark.pm,v
diff -u -p -a -u -p -r1.17 Benchmark.pm
--- gnu/usr.bin/perl/lib/Benchmark.pm	1 Mar 2021 23:19:57 -0000	1.17
+++ gnu/usr.bin/perl/lib/Benchmark.pm	21 Feb 2024 15:47:02 -0000
@@ -482,7 +482,7 @@ our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_T
 	      clearcache clearallcache disablecache enablecache);
 %EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ;
 
-$VERSION = 1.23;
+$VERSION = 1.24;
 
 # --- ':hireswallclock' special handling
 
@@ -683,9 +683,9 @@ sub runloop {
     my($t0, $t1, $td); # before, after, difference
 
     # find package of caller so we can execute code there
-    my($curpack) = caller(0);
+    my $curpack = caller(0);
     my($i, $pack)= 0;
-    while (($pack) = caller(++$i)) {
+    while ($pack = caller(++$i)) {
 	last if $pack ne $curpack;
     }
 
Index: gnu/usr.bin/perl/lib/Benchmark.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Benchmark.t,v
diff -u -p -a -u -p -r1.4 Benchmark.t
--- gnu/usr.bin/perl/lib/Benchmark.t	15 Feb 2023 01:36:33 -0000	1.4
+++ gnu/usr.bin/perl/lib/Benchmark.t	21 Feb 2024 15:47:02 -0000
@@ -40,6 +40,89 @@ sub cmp_delta {
     return $max/$min <= (1+$delta);
 }
 
+sub splatter {
+    my ($message) = @_;
+    my $splatter = <<~'EOF_SPLATTER';
+    Please file a ticket to report this. Our bug tracker can be found at
+
+        https://github.com/Perl/perl5/issues
+
+    Make sure you include the full output of perl -V, also uname -a,
+    and the version details for the C compiler you are using are
+    very helpful.
+
+    Please also try compiling and running the C program that can
+    be found at
+
+        https://github.com/Perl/perl5/issues/20839#issuecomment-1439286875
+
+    and provide the results (or compile errors) as part of your
+    bug report.
+
+    EOF_SPLATTER
+
+    if ( $message =~ s/\.\.\.//) {
+        $splatter =~ s/Please/please/;
+    }
+    die $message, $splatter;
+}
+
+{
+    # Benchmark may end up "looping forever" if time() or times() are
+    # broken such that they do not return different values over time.
+    # The following crude test is intended to ensure that we can rely
+    # on them and be confident that we won't infinite loop in the
+    # following tests.
+    #
+    # You can simulate a broken time or times() function by setting
+    # the appropriate env var to a true value:
+    #
+    #   time()    -> SIMULATE_BROKEN_TIME_FUNCTION
+    #   times()   -> SIMULATE_BROKEN_TIMES_FUNCTION
+    #
+    # If you have a very fast box you may need to set the FAST_CPU env
+    # var to a number larger than 1 to require these tests to perform
+    # more iterations to see the time actually tick over. (You could
+    # also set it to a value between 0 and 1 to speed this up, but I
+    # don't see why you would...)
+    #
+    # See https://github.com/Perl/perl5/issues/20839 for the ticket
+    # that motivated this test. - Yves
+
+    my @times0;
+    for ( 1 .. 3 ) {
+        my $end_time = time + 1;
+        my $count = 0;
+        my $scale = $ENV{FAST_CPU} || 1;
+        my $count_threshold = 20_000;
+        while ( $ENV{SIMULATE_BROKEN_TIME_FUNCTION} || time < $end_time ) {
+            my $x = 0.0;
+            for ( 1 .. 10_000 ) {
+                $x += sqrt(time);
+            }
+            if (++$count > $count_threshold * $scale) {
+                last;
+            }
+        }
+        cmp_ok($count,"<",$count_threshold * $scale,
+            "expecting \$count < ($count_threshold * $scale)")
+        or splatter(<<~'EOF_SPLATTER');
+        Either this system is extremely fast, or the time() function
+        is broken.
+
+        If you think this system is extremely fast you may scale up the
+        number of iterations allowed by this test by setting FAST_CPU=N
+        in the environment. Higher N will allow more ops-per-second
+        before we decide time() is broken.
+
+        If setting a higher FAST_CPU value does not fix this problem then ...
+        EOF_SPLATTER
+        push @times0, $ENV{SIMULATE_BROKEN_TIMES_FUNCTION} ? 0 : (times)[0];
+    }
+    isnt("@times0", "0 0 0", "Make sure times() does not always return 0.")
+        or splatter("It appears you have a broken a times() function.\n\n");
+}
+
 my $t0 = new Benchmark;
 isa_ok ($t0, 'Benchmark', "Ensure we can create a benchmark object");
 
Index: gnu/usr.bin/perl/lib/Config.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Config.t,v
diff -u -p -a -u -p -r1.8 Config.t
--- gnu/usr.bin/perl/lib/Config.t	15 Feb 2023 01:36:33 -0000	1.8
+++ gnu/usr.bin/perl/lib/Config.t	21 Feb 2024 15:47:02 -0000
@@ -51,6 +51,39 @@ ok( exists $Config{d_fork},  "has d_fork
 
 ok(!exists $Config{d_bork},  "has no d_bork");
 
+{
+    # check taint_support and tain_disabled are set up as expected.
+
+    ok( exists $Config{taint_support}, "has taint_support");
+
+    ok( exists $Config{taint_disabled}, "has taint_disabled");
+
+    is( $Config{taint_support}, ($Config{taint_disabled} ? "" : "define"),
+        "taint_support = !taint_disabled");
+
+    ok( ($Config{taint_support} eq "" or $Config{taint_support} eq "define"),
+        "taint_support is a valid value");
+
+    ok( ( $Config{taint_disabled} eq "" or $Config{taint_disabled} eq "silent" or
+        $Config{taint_disabled} eq "define"),
+        "taint_disabled is a valid value");
+
+    my @opts = Config::non_bincompat_options();
+    my @want_taint_disabled = ("", "define", "silent");
+    my @want_taint_support = ("define", "", "");
+    my ($silent_no_taint_support) = grep $_ eq "SILENT_NO_TAINT_SUPPORT", @opts;
+    my ($no_taint_support) = grep $_ eq "NO_TAINT_SUPPORT", @opts;
+    my $no_taint_support_count = 0 + grep /NO_TAINT_SUPPORT/, @opts;
+    my $want_count = $silent_no_taint_support ? 2 : $no_taint_support ? 1 : 0;
+
+    is ($no_taint_support_count, $want_count,
+        "non_bincompat_options info on taint support is as expected");
+    is( $Config{taint_disabled}, $want_taint_disabled[$no_taint_support_count],
+        "taint_disabled is aligned with non_bincompat_options() data");
+    is( $Config{taint_support}, $want_taint_support[$no_taint_support_count],
+        "taint_support is aligned with non_bincompat_options() data");
+}
+
 like($Config{ivsize}, qr/^(4|8)$/, "ivsize is 4 or 8 (it is $Config{ivsize})");
 
 # byteorder is virtual, but it has rules.
Index: gnu/usr.bin/perl/lib/FileHandle.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/FileHandle.pm,v
diff -u -p -a -u -p -r1.7 FileHandle.pm
--- gnu/usr.bin/perl/lib/FileHandle.pm	13 Feb 2019 21:15:24 -0000	1.7
+++ gnu/usr.bin/perl/lib/FileHandle.pm	21 Feb 2024 15:47:02 -0000
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 our($VERSION, @ISA, @EXPORT, @EXPORT_OK);
 
-$VERSION = "2.03";
+$VERSION = "2.05";
 
 require IO::File;
 @ISA = qw(IO::File);
@@ -111,36 +111,36 @@ FileHandle - supply object methods for f
 
     use FileHandle;
 
-    $fh = FileHandle->new;
+    my $fh = FileHandle->new;
     if ($fh->open("< file")) {
         print <$fh>;
         $fh->close;
     }
 
-    $fh = FileHandle->new("> FOO");
+    my $fh = FileHandle->new("> FOO");
     if (defined $fh) {
         print $fh "bar\n";
         $fh->close;
     }
 
-    $fh = FileHandle->new("file", "r");
+    my $fh = FileHandle->new("file", "r");
     if (defined $fh) {
         print <$fh>;
         undef $fh;       # automatically closes the file
     }
 
-    $fh = FileHandle->new("file", O_WRONLY|O_APPEND);
+    my $fh = FileHandle->new("file", O_WRONLY|O_APPEND);
     if (defined $fh) {
         print $fh "corge\n";
         undef $fh;       # automatically closes the file
     }
 
-    $pos = $fh->getpos;
+    my $pos = $fh->getpos;
     $fh->setpos($pos);
 
-    $fh->setvbuf($buffer_var, _IOLBF, 1024);
+    $fh->setvbuf(my $buffer_var, _IOLBF, 1024);
 
-    ($readfh, $writefh) = FileHandle::pipe;
+    my ($readfh, $writefh) = FileHandle::pipe;
 
     autoflush STDOUT 1;
 
@@ -149,7 +149,7 @@ FileHandle - supply object methods for f
 NOTE: This class is now a front-end to the IO::* classes.
 
 C<FileHandle::new> creates a C<FileHandle>, which is a reference to a
-newly created symbol (see the C<Symbol> package).  If it receives any
+newly created symbol (see the L<Symbol> package).  If it receives any
 parameters, they are passed to C<FileHandle::open>; if the open fails,
 the C<FileHandle> object is destroyed.  Otherwise, it is returned to
 the caller.
Index: gnu/usr.bin/perl/lib/UNIVERSAL.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/UNIVERSAL.pm,v
diff -u -p -a -u -p -r1.10 UNIVERSAL.pm
--- gnu/usr.bin/perl/lib/UNIVERSAL.pm	15 Feb 2023 01:36:33 -0000	1.10
+++ gnu/usr.bin/perl/lib/UNIVERSAL.pm	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 package UNIVERSAL;
 
-our $VERSION = '1.14';
+our $VERSION = '1.15';
 
 # UNIVERSAL should not contain any extra subs/methods beyond those
 # that it exists to define. The existence of import() below is a historical
@@ -24,21 +24,21 @@ UNIVERSAL - base class for ALL classes (
 
 =head1 SYNOPSIS
 
-    $is_io    = $fd->isa("IO::Handle");
-    $is_io    = Class->isa("IO::Handle");
+    my $obj_is_io    = $fd->isa("IO::Handle");
+    my $cls_is_io    = Class->isa("IO::Handle");
 
-    $does_log = $obj->DOES("Logger");
-    $does_log = Class->DOES("Logger");
+    my $obj_does_log = $obj->DOES("Logger");
+    my $cls_does_log = Class->DOES("Logger");
 
-    $sub      = $obj->can("print");
-    $sub      = Class->can("print");
+    my $obj_sub      = $obj->can("print");
+    my $cls_sub      = Class->can("print");
 
-    $sub      = eval { $ref->can("fandango") };
-    $ver      = $obj->VERSION;
+    my $eval_sub     = eval { $ref->can("fandango") };
+    my $ver          = $obj->VERSION;
 
     # but never do this!
-    $is_io    = UNIVERSAL::isa($fd, "IO::Handle");
-    $sub      = UNIVERSAL::can($obj, "print");
+    my $is_io        = UNIVERSAL::isa($fd, "IO::Handle");
+    my $sub          = UNIVERSAL::can($obj, "print");
 
 =head1 DESCRIPTION
 
Index: gnu/usr.bin/perl/lib/builtin.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/builtin.pm,v
diff -u -p -a -u -p -r1.1.1.1 builtin.pm
--- gnu/usr.bin/perl/lib/builtin.pm	15 Feb 2023 01:33:05 -0000	1.1.1.1
+++ gnu/usr.bin/perl/lib/builtin.pm	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-package builtin 0.006;
+package builtin 0.008;
 
 use strict;
 use warnings;
@@ -22,7 +22,10 @@ builtin - Perl pragma to import built-in
         blessed refaddr reftype
         created_as_string created_as_number
         ceil floor
+        indexed
         trim
+        is_tainted
+        export_lexically
     );
 
 =head1 DESCRIPTION
@@ -280,8 +283,41 @@ C<trim> is equivalent to:
 For Perl versions where this feature is not available look at the
 L<String::Util> module for a comparable implementation.
 
+=head2 is_tainted
+
+    $bool = is_tainted($var);
+
+Returns true when given a tainted variable.
+
+=head2 export_lexically
+
+    export_lexically($name1, $ref1, $name2, $ref2, ...)
+
+Exports new lexical names into the scope currently being compiled. Names given
+by the first of each pair of values will refer to the corresponding item whose
+reference is given by the second. Types of item that are permitted are
+subroutines, and scalar, array, and hash variables. If the item is a
+subroutine, the name may optionally be prefixed with the C<&> sigil, but for
+convenience it doesn't have to. For items that are variables the sigil is
+required, and must match the type of the variable.
+
+    export_lexically func    => \&func,
+                     '&func' => \&func;  # same as above
+
+    export_lexically '$scalar' => \my $var;
+
+Z<>
+
+    # The following are not permitted
+    export_lexically '$var' => \@arr;   # sigil does not match
+    export_lexically name => \$scalar;  # implied '&' sigil does not match
+
+    export_lexically '*name' => \*globref;  # globrefs are not supported
+
+This must be called at compile time; which typically means during a C<BEGIN>
+block. Usually this would be used as part of an C<import> method of a module,
+when invoked as part of a C<use ...> statement.
+
 =head1 SEE ALSO
 
 L<perlop>, L<perlfunc>, L<Scalar::Util>
-
-=cut
Index: gnu/usr.bin/perl/lib/builtin.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/builtin.t,v
diff -u -p -a -u -p -r1.1.1.1 builtin.t
--- gnu/usr.bin/perl/lib/builtin.t	15 Feb 2023 01:33:04 -0000	1.1.1.1
+++ gnu/usr.bin/perl/lib/builtin.t	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-#!./perl
+#!./perl -T
 
 BEGIN {
     chdir 't' if -d 't';
@@ -6,15 +6,14 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-use strict;
-use warnings;
+use v5.36;
 no warnings 'experimental::builtin';
 
 package FetchStoreCounter {
-    sub new { my $class = shift; return bless [@_], $class }
-    sub TIESCALAR { return shift->new(@_) }
-    sub FETCH { ${shift->[0]}++ }
-    sub STORE { ${shift->[1]}++ }
+    sub TIESCALAR($class, @args) { bless \@args, $class }
+
+    sub FETCH($self)    { $self->[0]->$*++ }
+    sub STORE($self, $) { $self->[1]->$*++ }
 }
 
 # booleans
@@ -47,7 +46,9 @@ package FetchStoreCounter {
     is($fetchcount, 1, 'is_bool() invokes FETCH magic');
 
     $tied = is_bool(false);
-    is($storecount, 1, 'is_bool() TARG invokes STORE magic');
+    is($storecount, 1, 'is_bool() invokes STORE magic');
+
+    is(prototype(\&builtin::is_bool), '$', 'is_bool prototype');
 }
 
 # weakrefs
@@ -68,6 +69,10 @@ package FetchStoreCounter {
     weaken($ref);
     undef $arr;
     is($ref, undef, 'ref is now undef after arr is cleared');
+
+    is(prototype(\&builtin::weaken), '$', 'weaken prototype');
+    is(prototype(\&builtin::unweaken), '$', 'unweaken prototype');
+    is(prototype(\&builtin::is_weak), '$', 'is_weak prototype');
 }
 
 # reference queries
@@ -92,6 +97,10 @@ package FetchStoreCounter {
 
     # blessed() appears false as a boolean on package "0"
     is(blessed(bless [], "0") ? "YES" : "NO", "NO", 'blessed in boolean context handles "0" cornercase');
+
+    is(prototype(\&builtin::blessed), '$', 'blessed prototype');
+    is(prototype(\&builtin::refaddr), '$', 'refaddr prototype');
+    is(prototype(\&builtin::reftype), '$', 'reftype prototype');
 }
 
 # created_as_...
@@ -159,6 +168,9 @@ package FetchStoreCounter {
     local $1;
     "hello" =~ m/(.*)/;
     ok(created_as_string($1), 'magic string');
+
+    is(prototype(\&builtin::created_as_string), '$', 'created_as_string prototype');
+    is(prototype(\&builtin::created_as_number), '$', 'created_as_number prototype');
 }
 
 # ceil, floor
@@ -186,6 +198,9 @@ package FetchStoreCounter {
 
     $tied = floor(1.1);
     is($storecount, 1, 'floor() TARG invokes STORE magic');
+
+    is(prototype(\&builtin::ceil), '$', 'ceil prototype');
+    is(prototype(\&builtin::floor), '$', 'floor prototype');
 }
 
 # imports are lexical; should not be visible here
@@ -290,24 +305,26 @@ package FetchStoreCounter {
 {
     use builtin qw( trim );
 
-    is(trim("    Hello world!   ")      , "Hello world!"  , 'Trim spaces');
-    is(trim("\tHello world!\t")         , "Hello world!"  , 'Trim tabs');
-    is(trim("\n\n\nHello\nworld!\n")    , "Hello\nworld!" , 'Trim \n');
-    is(trim("\t\n\n\nHello world!\n \t"), "Hello world!"  , 'Trim all three');
-    is(trim("Perl")                     , "Perl"          , 'Trim nothing');
-    is(trim('')                         , ""              , 'Trim empty string');
+    is(trim("    Hello world!   ")      , "Hello world!"  , 'trim spaces');
+    is(trim("\tHello world!\t")         , "Hello world!"  , 'trim tabs');
+    is(trim("\n\n\nHello\nworld!\n")    , "Hello\nworld!" , 'trim \n');
+    is(trim("\t\n\n\nHello world!\n \t"), "Hello world!"  , 'trim all three');
+    is(trim("Perl")                     , "Perl"          , 'trim nothing');
+    is(trim('')                         , ""              , 'trim empty string');
+
+    is(prototype(\&builtin::trim), '$', 'trim prototype');
 }
 
 TODO: {
     my $warn = '';
     local $SIG{__WARN__} = sub { $warn .= join "", @_; };
 
-    is(builtin::trim(undef), "", 'Trim undef');
+    is(builtin::trim(undef), "", 'trim undef');
     like($warn    , qr/^Use of uninitialized value in subroutine entry at/,
-         'Trim undef triggers warning');
+         'trim undef triggers warning');
     local $main::TODO = "Currently uses generic value for the name of non-opcode builtins";
     like($warn    , qr/^Use of uninitialized value in trim at/,
-         'Trim undef triggers warning using actual name of builtin');
+         'trim undef triggers warning using actual name of builtin');
 }
 
 # Fancier trim tests against a regexp and unicode
@@ -315,10 +332,10 @@ TODO: {
     use builtin qw( trim );
     my $nbsp = chr utf8::unicode_to_native(0xA0);
 
-    is(trim("   \N{U+2603}       "), "\N{U+2603}", 'Trim with unicode content');
+    is(trim("   \N{U+2603}       "), "\N{U+2603}", 'trim with unicode content');
     is(trim("\N{U+2029}foobar\x{2028} "), "foobar",
-            'Trim with unicode whitespace');
-    is(trim("$nbsp foobar$nbsp    "), "foobar", 'Trim with latin1 whitespace');
+            'trim with unicode whitespace');
+    is(trim("$nbsp foobar$nbsp    "), "foobar", 'trim with latin1 whitespace');
 }
 
 # Test on a magical fetching variable
@@ -327,7 +344,7 @@ TODO: {
 
     my $str3 = "   Hello world!\t";
     $str3 =~ m/(.+Hello)/;
-    is(trim($1), "Hello", "Trim on a magical variable");
+    is(trim($1), "Hello", "trim on a magical variable");
 }
 
 # Inplace edit, my, our variables
@@ -336,10 +353,64 @@ TODO: {
 
     my $str4 = "\t\tHello world!\n\n";
     $str4 = trim($str4);
-    is($str4, "Hello world!", "Trim on an inplace variable");
+    is($str4, "Hello world!", "trim on an inplace variable");
 
     our $str2 = "\t\nHello world!\t  ";
-    is(trim($str2), "Hello world!", "Trim on an our \$var");
+    is(trim($str2), "Hello world!", "trim on an our \$var");
+}
+
+# is_tainted
+{
+    use builtin qw( is_tainted );
+
+    is(is_tainted($0), !!${^TAINT}, "\$0 is tainted (if tainting is supported)");
+    ok(!is_tainted($1), "\$1 isn't tainted");
+
+    # Invokes magic
+    tie my $tied, FetchStoreCounter => (\my $fetchcount, \my $storecount);
+
+    my $_dummy = is_tainted($tied);
+    is($fetchcount, 1, 'is_tainted() invokes FETCH magic');
+
+    $tied = is_tainted($0);
+    is($storecount, 1, 'is_tainted() invokes STORE magic');
+
+    is(prototype(\&builtin::is_tainted), '$', 'is_tainted prototype');
+}
+
+# Lexical export
+{
+    my $name;
+    BEGIN {
+        use builtin qw( export_lexically );
+
+        $name = "message";
+        export_lexically $name => sub { "Hello, world" };
+    }
+
+    is(message(), "Hello, world", 'Lexically exported sub is callable');
+    ok(!__PACKAGE__->can("message"), 'Exported sub is not visible via ->can');
+
+    is($name, "message", '$name argument was not modified by export_lexically');
+
+    our ( $scalar, @array, %hash );
+    BEGIN {
+        use builtin qw( export_lexically );
+
+        export_lexically
+            '$SCALAR' => \$scalar,
+            '@ARRAY'  => \@array,
+            '%HASH'   => \%hash;
+    }
+
+    $::scalar = "value";
+    is($SCALAR, "value", 'Lexically exported scalar is accessible');
+
+    @::array = ('a' .. 'e');
+    is(scalar @ARRAY, 5, 'Lexically exported array is accessible');
+
+    %::hash = (key => "val");
+    is($HASH{key}, "val", 'Lexically exported hash is accessible');
 }
 
 # vim: tabstop=4 shiftwidth=4 expandtab autoindent softtabstop=4
Index: gnu/usr.bin/perl/lib/feature.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/feature.pm,v
diff -u -p -a -u -p -r1.6 feature.pm
--- gnu/usr.bin/perl/lib/feature.pm	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/lib/feature.pm	21 Feb 2024 15:47:02 -0000
@@ -1,17 +1,17 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is built by regen/feature.pl.
 # Any changes made here will be lost!
 
 package feature;
-
-our $VERSION = '1.72';
+our $VERSION = '1.82';
 
 our %feature = (
     fc                      => 'feature_fc',
     isa                     => 'feature_isa',
     say                     => 'feature_say',
     try                     => 'feature_try',
+    class                   => 'feature_class',
     defer                   => 'feature_defer',
     state                   => 'feature_state',
     switch                  => 'feature_switch',
@@ -20,6 +20,7 @@ our %feature = (
     evalbytes               => 'feature_evalbytes',
     signatures              => 'feature_signatures',
     current_sub             => 'feature___SUB__',
+    module_true             => 'feature_module_true',
     refaliasing             => 'feature_refaliasing',
     postderef_qq            => 'feature_postderef_qq',
     unicode_eval            => 'feature_unieval',
@@ -37,7 +38,8 @@ our %feature_bundle = (
     "5.23"    => [qw(bareword_filehandles current_sub evalbytes fc indirect multidimensional postderef_qq say state switch unicode_eval unicode_strings)],
     "5.27"    => [qw(bareword_filehandles bitwise current_sub evalbytes fc indirect multidimensional postderef_qq say state switch unicode_eval unicode_strings)],
     "5.35"    => [qw(bareword_filehandles bitwise current_sub evalbytes fc isa postderef_qq say signatures state unicode_eval unicode_strings)],
-    "all"     => [qw(bareword_filehandles bitwise current_sub declared_refs defer evalbytes extra_paired_delimiters fc indirect isa multidimensional postderef_qq refaliasing say signatures state switch try unicode_eval unicode_strings)],
+    "5.37"    => [qw(bitwise current_sub evalbytes fc isa module_true postderef_qq say signatures state unicode_eval unicode_strings)],
+    "all"     => [qw(bareword_filehandles bitwise class current_sub declared_refs defer evalbytes extra_paired_delimiters fc indirect isa module_true multidimensional postderef_qq refaliasing say signatures state switch try unicode_eval unicode_strings)],
     "default" => [qw(bareword_filehandles indirect multidimensional)],
 );
 
@@ -62,6 +64,7 @@ $feature_bundle{"5.32"} = $feature_bundl
 $feature_bundle{"5.33"} = $feature_bundle{"5.27"};
 $feature_bundle{"5.34"} = $feature_bundle{"5.27"};
 $feature_bundle{"5.36"} = $feature_bundle{"5.35"};
+$feature_bundle{"5.38"} = $feature_bundle{"5.37"};
 $feature_bundle{"5.9.5"} = $feature_bundle{"5.10"};
 my %noops = (
     postderef => 1,
@@ -73,7 +76,7 @@ my %removed = (
 
 our $hint_shift   = 26;
 our $hint_mask    = 0x3c000000;
-our @hint_bundles = qw( default 5.10 5.11 5.15 5.23 5.27 5.35 );
+our @hint_bundles = qw( default 5.10 5.11 5.15 5.23 5.27 5.35 5.37 );
 
 # This gets set (for now) in $^H as well as in %^H,
 # for runtime speed of the uc/lc/ucfirst/lcfirst functions.
@@ -98,13 +101,13 @@ feature - Perl pragma to enable new feat
     say "The case-folded version of $x is: " . fc $x;
 
 
-    # set features to match the :5.10 bundle, which may turn off or on
-    # multiple features (see below)
-    use feature ':5.10';
+    # set features to match the :5.36 bundle, which may turn off or on
+    # multiple features (see "FEATURE BUNDLES" below)
+    use feature ':5.36';
 
 
-    # implicitly loads :5.10 feature bundle
-    use v5.10;
+    # implicitly loads :5.36 feature bundle
+    use v5.36;
 
 =head1 DESCRIPTION
 
@@ -146,6 +149,8 @@ disable I<all> features (an unusual requ
 
 =head1 AVAILABLE FEATURES
 
+Read L</"FEATURE BUNDLES"> for the feature cheat sheet summary.
+
 =head2 The 'say' feature
 
 C<use feature 'say'> tells the compiler to enable the Raku-inspired
@@ -178,6 +183,9 @@ given/when construct.
 See L<perlsyn/"Switch Statements"> for details.
 
 This feature is available starting with Perl 5.10.
+It is deprecated starting with Perl 5.38, and using
+C<given>, C<when> or smartmatch will throw a warning.
+It will be removed in Perl 5.42.
 
 =head2 The 'unicode_strings' feature
 
@@ -268,9 +276,10 @@ regardless of what feature declarations 
 =head2 The 'postderef' and 'postderef_qq' features
 
 The 'postderef_qq' feature extends the applicability of L<postfix
-dereference syntax|perlref/Postfix Dereference Syntax> so that postfix array
-and scalar dereference are available in double-quotish interpolations. For
-example, it makes the following two statements equivalent:
+dereference syntax|perlref/Postfix Dereference Syntax> so that
+postfix array dereference, postfix scalar dereference, and
+postfix array highest index access are available in double-quotish interpolations.
+For example, it makes the following two statements equivalent:
 
   my $s = "[@{ $h->{a} }]";
   my $s = "[$h->{a}->@*]";
@@ -361,7 +370,7 @@ warn when you use the feature, unless yo
     no warnings "experimental::declared_refs";
 
 This allows a reference to a variable to be declared with C<my>, C<state>,
-our C<our>, or localized with C<local>.  It is intended mainly for use in
+or C<our>, or localized with C<local>.  It is intended mainly for use in
 conjunction with the "refaliasing" feature.  See L<perlref/Declaring a
 Reference to a Variable> for examples.
 
@@ -413,7 +422,7 @@ previous versions, it was simply on all 
 You can use the L<multidimensional> module on CPAN to disable
 multidimensional array emulation for older versions of Perl.
 
-=head2 The 'bareword_filehandles' feature.
+=head2 The 'bareword_filehandles' feature
 
 This feature enables bareword filehandles for builtin functions
 operations, a generally discouraged practice.  It is enabled by
@@ -429,7 +438,7 @@ previous versions it was simply on all t
 You can use the L<bareword::filehandles> module on CPAN to disable
 bareword filehandles for older versions of perl.
 
-=head2 The 'try' feature.
+=head2 The 'try' feature
 
 B<WARNING>: This feature is still experimental and the implementation may
 change or be removed in future versions of Perl.  For this reason, Perl will
@@ -467,6 +476,10 @@ This feature enables the use of more pai
 traditional four, S<C<< <  > >>>, S<C<( )>>, S<C<{ }>>, and S<C<[ ]>>.  When
 this feature is on, for example, you can say S<C<qrE<171>patE<187>>>.
 
+As with any usage of non-ASCII delimiters in a UTF-8-encoded source file, you
+will want to ensure the parser will decode the source code from UTF-8 bytes
+with a declaration such as C<use utf8>.
+
 This feature is available starting in Perl 5.36.
 
 The complete list of accepted paired delimiters as of Unicode 14.0 is:
@@ -859,6 +872,25 @@ The complete list of accepted paired del
  🢫  🢪    U+1F8AB, U+1F8AA RIGHT/LEFTWARDS FRONT-TILTED SHADOWED WHITE
                           ARROW
 
+=head2 The 'module_true' feature
+
+This feature removes the need to return a true value at the end of a module
+loaded with C<require> or C<use>. Any errors during compilation will cause
+failures, but reaching the end of the module when this feature is in effect
+will prevent C<perl> from throwing an exception that the module "did not return
+a true value".
+
+=head2 The 'class' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change or be removed in future versions of Perl.  For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the warning:
+
+    no warnings "experimental::class";
+
+This feature enables the C<class> block syntax and other associated keywords
+which implement the "new" object system, previously codenamed "Corinna".
+
 =head1 FEATURE BUNDLES
 
 It's possible to load multiple features together, using
@@ -935,6 +967,10 @@ The following feature bundles are availa
             evalbytes fc isa postderef_qq say signatures
             state unicode_eval unicode_strings
 
+  :5.38     bitwise current_sub evalbytes fc isa
+            module_true postderef_qq say signatures
+            state unicode_eval unicode_strings
+
 The C<:default> bundle represents the feature set that is enabled before
 any C<use feature> or C<no feature> declaration.
 
@@ -964,12 +1000,12 @@ main compilation unit (that is, the one-
 By explicitly requiring a minimum Perl version number for your program, with
 the C<use VERSION> construct.  That is,
 
-    use v5.10.0;
+    use v5.36.0;
 
 will do an implicit
 
     no feature ':all';
-    use feature ':5.10';
+    use feature ':5.36';
 
 and so on.  Note how the trailing sub-version
 is automatically stripped from the
@@ -977,7 +1013,7 @@ version.
 
 But to avoid portability warnings (see L<perlfunc/use>), you may prefer:
 
-    use 5.010;
+    use 5.036;
 
 with the same effect.
 
@@ -1211,4 +1247,4 @@ sub feature_bundle {
 
 1;
 
-# ex: set ro:
+# ex: set ro ft=perl:
Index: gnu/usr.bin/perl/lib/locale.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/locale.t,v
diff -u -p -a -u -p -r1.11 locale.t
--- gnu/usr.bin/perl/lib/locale.t	15 Feb 2023 01:36:33 -0000	1.11
+++ gnu/usr.bin/perl/lib/locale.t	21 Feb 2024 15:47:02 -0000
@@ -58,21 +58,18 @@ BEGIN {
 }
 
 use feature 'fc';
+use I18N::Langinfo qw(langinfo CODESET CRNCYSTR RADIXCHAR);
 
 # =1 adds debugging output; =2 increases the verbosity somewhat
 our $debug = $ENV{PERL_DEBUG_FULL_TEST} // 0;
 
 # Certain tests have been shown to be problematical for a few locales.  Don't
 # fail them unless at least this percentage of the tested locales fail.
-# On AIX machines, many locales call a no-break space a graphic.
-# (There aren't 1000 locales currently in existence, so 99.9 works)
 # EBCDIC os390 has more locales fail than normal, because it has locales that
 # move various critical characters like '['.
-my $acceptable_failure_percentage = ($os =~ / ^ ( aix ) $ /x)
-                                     ? 99.9
-                                     : ($os =~ / ^ ( os390 ) $ /x)
-                                       ? 10
-                                       : 5;
+my $acceptable_failure_percentage = ($os =~ / ^ ( os390 ) $ /x)
+                                    ? 10
+                                    : 5;
 
 # The list of test numbers of the problematic tests.
 my %problematical_tests;
@@ -792,18 +789,24 @@ my $final_without_setlocale = $test_num;
 debug "Scanning for locales...\n";
 
 require POSIX; import POSIX ':locale_h';
-
 my $categories = [ 'LC_CTYPE', 'LC_NUMERIC', 'LC_ALL' ];
-debug "Scanning for just compatible";
-my @Locale = find_locales($categories);
-debug "Scanning for even incompatible";
-my @include_incompatible_locales = find_locales($categories,
-                                                'even incompatible locales');
-
+my @Locale;
+my @include_incompatible_locales;
+if ($^O eq "aix"
+    and version->new(($Config{osvers} =~ /^(\d+(\.\d+))/)[0]) < 7) {
+    # https://www.ibm.com/support/pages/apar/IV22097
+    skip("setlocale broken on old AIX");
+}
+else {
+    debug "Scanning for just compatible";
+    @Locale = find_locales($categories);
+    debug "Scanning for even incompatible";
+    @include_incompatible_locales = find_locales($categories,
+                                              'even incompatible locales');
+}
 # The locales included in the incompatible list that aren't in the compatible
 # one.
 my @incompatible_locales;
-
 if (@Locale < @include_incompatible_locales) {
     my %seen;
     @seen{@Locale} = ();
@@ -1058,9 +1061,12 @@ foreach my $Locale (@Locale) {
 
     my $is_utf8_locale = is_locale_utf8($Locale);
 
-    debug "is utf8 locale? = $is_utf8_locale\n";
-
-    debug "radix = " . disp_str(localeconv()->{decimal_point}) . "\n";
+    if ($debug) {
+        debug "code set = " . langinfo(CODESET);
+        debug "is utf8 locale? = $is_utf8_locale\n";
+        debug "radix = " . disp_str(langinfo(RADIXCHAR)) . "\n";
+        debug "currency = " . disp_str(langinfo(CRNCYSTR));
+    }
 
     if (! $is_utf8_locale) {
         use locale;
@@ -2136,19 +2142,22 @@ foreach my $Locale (@Locale) {
     }
 
     $ok19 = $ok20 = 1;
-    if (setlocale(&POSIX::LC_TIME, $Locale)) { # These tests aren't affected by
-                                               # :not_characters
-        my @times = CORE::localtime();
+    if (locales_enabled('LC_TIME')) {
+        if (setlocale(&POSIX::LC_TIME, $Locale)) { # These tests aren't
+                                                   # affected by
+                                                   # :not_characters
+            my @times = CORE::localtime();
 
-        use locale;
-        $ok19 = POSIX::strftime("%p", @times) ne "%p"; # [perl #119425]
-        my $date = POSIX::strftime("'%A'  '%B'  '%Z'  '%p'", @times);
-        debug("'Day' 'Month' 'TZ' 'am/pm' = ", disp_str($date));
-
-        # If there is any non-ascii, it better be UTF-8 in a UTF-8 locale, and
-        # not UTF-8 if the locale isn't UTF-8.
-        $ok20 = $date =~ / ^ \p{ASCII}+ $ /x
-                || $is_utf8_locale == utf8::is_utf8($date);
+            use locale;
+            $ok19 = POSIX::strftime("%p", @times) ne "%p"; # [perl #119425]
+            my $date = POSIX::strftime("'%A'  '%B'  '%Z'  '%p'", @times);
+            debug("'Day' 'Month' 'TZ' 'am/pm' = ", disp_str($date));
+
+            # If there is any non-ascii, it better be UTF-8 in a UTF-8 locale,
+            # and not UTF-8 if the locale isn't UTF-8.
+            $ok20 = $date =~ / ^ \p{ASCII}+ $ /x
+                    || $is_utf8_locale == utf8::is_utf8($date);
+        }
     }
 
     $ok21 = 1;
@@ -2435,7 +2444,7 @@ foreach my $Locale (@Locale) {
         $test_names{$locales_test_number} = 'Verify atof with locale radix and negative exponent';
         $problematical_tests{$locales_test_number} = 1;
 
-        my $radix = POSIX::localeconv()->{decimal_point};
+        my $radix = langinfo(RADIXCHAR);
         my @nums = (
              "3.14e+9",  "3${radix}14e+9",  "3.14e-9",  "3${radix}14e-9",
             "-3.14e+9", "-3${radix}14e+9", "-3.14e-9", "-3${radix}14e-9",
Index: gnu/usr.bin/perl/lib/locale_threads.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/locale_threads.t,v
diff -u -p -a -u -p -r1.1.1.1 locale_threads.t
--- gnu/usr.bin/perl/lib/locale_threads.t	13 Feb 2019 21:11:32 -0000	1.1.1.1
+++ gnu/usr.bin/perl/lib/locale_threads.t	21 Feb 2024 15:47:02 -0000
@@ -70,7 +70,8 @@ SKIP: {
         if ((my $s = sprintf("%g", $in)) eq "4.2")  {
             $dot ||= $_;
         } else {
-            my $radix = localeconv()->{decimal_point};
+            use I18N::Langinfo qw(langinfo RADIXCHAR);
+            my $radix = langinfo(RADIXCHAR);
             $comma ||= $_ if $radix eq ',';
         }
 
Index: gnu/usr.bin/perl/lib/overload.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/overload.pm,v
diff -u -p -a -u -p -r1.18 overload.pm
--- gnu/usr.bin/perl/lib/overload.pm	15 Feb 2023 01:36:33 -0000	1.18
+++ gnu/usr.bin/perl/lib/overload.pm	21 Feb 2024 15:47:02 -0000
@@ -2,9 +2,8 @@ package overload;
 
 use strict;
 no strict 'refs';
-no warnings 'experimental::builtin';
 
-our $VERSION = '1.35';
+our $VERSION = '1.37';
 
 our %ops = (
     with_assign         => "+ - * / % ** << >> x .",
@@ -30,152 +29,151 @@ my %ops_seen;
 sub nil {}
 
 sub OVERLOAD {
-  my $package = shift;
-  my %arg = @_;
-  my $sub;
-  *{$package . "::(("} = \&nil; # Make it findable via fetchmethod.
-  for (keys %arg) {
-    if ($_ eq 'fallback') {
-      for my $sym (*{$package . "::()"}) {
-	*$sym = \&nil; # Make it findable via fetchmethod.
-	$$sym = $arg{$_};
-      }
-    } else {
-      warnings::warnif("overload arg '$_' is invalid")
-        unless exists $ops_seen{$_};
-      $sub = $arg{$_};
-      if (not ref $sub) {
-	$ {$package . "::(" . $_} = $sub;
-	$sub = \&nil;
-      }
-      #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n";
-      *{$package . "::(" . $_} = \&{ $sub };
+    my $package = shift;
+    my %arg = @_;
+    my $sub;
+    *{$package . "::(("} = \&nil; # Make it findable via fetchmethod.
+    for (keys %arg) {
+        if ($_ eq 'fallback') {
+            for my $sym (*{$package . "::()"}) {
+              *$sym = \&nil; # Make it findable via fetchmethod.
+              $$sym = $arg{$_};
+            }
+        } else {
+            warnings::warnif("overload arg '$_' is invalid")
+                unless exists $ops_seen{$_};
+            $sub = $arg{$_};
+            if (not ref $sub) {
+                $ {$package . "::(" . $_} = $sub;
+                $sub = \&nil;
+            }
+            #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n";
+            *{$package . "::(" . $_} = \&{ $sub };
+        }
     }
-  }
 }
 
 sub import {
-  my $package = (caller())[0];
-  # *{$package . "::OVERLOAD"} = \&OVERLOAD;
-  shift;
-  $package->overload::OVERLOAD(@_);
+    my $package = caller();
+    # *{$package . "::OVERLOAD"} = \&OVERLOAD;
+    shift;
+    $package->overload::OVERLOAD(@_);
 }
 
 sub unimport {
-  my $package = (caller())[0];
-  shift;
-  *{$package . "::(("} = \&nil;
-  for (@_) {
-      warnings::warnif("overload arg '$_' is invalid")
-        unless exists $ops_seen{$_};
-      delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_};
-  }
+    my $package = caller();
+    shift;
+    *{$package . "::(("} = \&nil;
+    for (@_) {
+        warnings::warnif("overload arg '$_' is invalid")
+            unless exists $ops_seen{$_};
+        delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_};
+    }
 }
 
 sub Overloaded {
-  my $package = shift;
-  $package = ref $package if ref $package;
-  mycan ($package, '()') || mycan ($package, '((');
+    my $package = shift;
+    $package = ref $package if ref $package;
+    mycan ($package, '()') || mycan ($package, '((');
 }
 
 sub ov_method {
-  my $globref = shift;
-  return undef unless $globref;
-  my $sub = \&{*$globref};
-  no overloading;
-  return $sub if $sub != \&nil;
-  return shift->can($ {*$globref});
+    my $globref = shift;
+    return undef unless $globref;
+    my $sub = \&{*$globref};
+    no overloading;
+    return $sub if $sub != \&nil;
+    return shift->can($ {*$globref});
 }
 
 sub OverloadedStringify {
-  my $package = shift;
-  $package = ref $package if ref $package;
-  #$package->can('(""')
-  ov_method mycan($package, '(""'), $package
-    or ov_method mycan($package, '(0+'), $package
-    or ov_method mycan($package, '(bool'), $package
-    or ov_method mycan($package, '(nomethod'), $package;
+    my $package = shift;
+    $package = ref $package if ref $package;
+    #$package->can('(""')
+    ov_method mycan($package, '(""'), $package
+        or ov_method mycan($package, '(0+'), $package
+        or ov_method mycan($package, '(bool'), $package
+        or ov_method mycan($package, '(nomethod'), $package;
 }
 
 sub Method {
-  my $package = shift;
-  if(ref $package) {
-    local $@;
-    local $!;
-    $package = builtin::blessed($package);
-    return undef if !defined $package;
-  }
-  #my $meth = $package->can('(' . shift);
-  ov_method mycan($package, '(' . shift), $package;
-  #return $meth if $meth ne \&nil;
-  #return $ {*{$meth}};
+    my $package = shift;
+    if (ref $package) {
+        no warnings 'experimental::builtin';
+        $package = builtin::blessed($package);
+        return undef if !defined $package;
+    }
+    #my $meth = $package->can('(' . shift);
+    ov_method mycan($package, '(' . shift), $package;
+    #return $meth if $meth ne \&nil;
+    #return $ {*{$meth}};
 }
 
 sub AddrRef {
-  no overloading;
-  "$_[0]";
+    no overloading;
+    "$_[0]";
 }
 
 *StrVal = *AddrRef;
 
-sub mycan {				# Real can would leave stubs.
-  my ($package, $meth) = @_;
+sub mycan {                   # Real can would leave stubs.
+    my ($package, $meth) = @_;
+
+    local $@;
+    local $!;
+    require mro;
 
-  local $@;
-  local $!;
-  require mro;
-
-  my $mro = mro::get_linear_isa($package);
-  foreach my $p (@$mro) {
-    my $fqmeth = $p . q{::} . $meth;
-    return \*{$fqmeth} if defined &{$fqmeth};
-  }
+    my $mro = mro::get_linear_isa($package);
+    foreach my $p (@$mro) {
+        my $fqmeth = $p . q{::} . $meth;
+        return \*{$fqmeth} if defined &{$fqmeth};
+    }
 
-  return undef;
+    return undef;
 }
 
 my %constants = (
-	      'integer'	  =>  0x1000, # HINT_NEW_INTEGER
-	      'float'	  =>  0x2000, # HINT_NEW_FLOAT
-	      'binary'	  =>  0x4000, # HINT_NEW_BINARY
-	      'q'	  =>  0x8000, # HINT_NEW_STRING
-	      'qr'	  => 0x10000, # HINT_NEW_RE
-	     );
+    'integer'   =>  0x1000, # HINT_NEW_INTEGER
+    'float'     =>  0x2000, # HINT_NEW_FLOAT
+    'binary'    =>  0x4000, # HINT_NEW_BINARY
+    'q'         =>  0x8000, # HINT_NEW_STRING
+    'qr'        => 0x10000, # HINT_NEW_RE
+);
 
 use warnings::register;
 sub constant {
-  # Arguments: what, sub
-  while (@_) {
-    if (@_ == 1) {
-        warnings::warnif ("Odd number of arguments for overload::constant");
-        last;
-    }
-    elsif (!exists $constants {$_ [0]}) {
-        warnings::warnif ("'$_[0]' is not an overloadable type");
-    }
-    elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) {
-        # Can't use C<ref $_[1] eq "CODE"> above as code references can be
-        # blessed, and C<ref> would return the package the ref is blessed into.
-        if (warnings::enabled) {
-            $_ [1] = "undef" unless defined $_ [1];
-            warnings::warn ("'$_[1]' is not a code reference");
+    # Arguments: what, sub
+    while (@_) {
+        if (@_ == 1) {
+            warnings::warnif ("Odd number of arguments for overload::constant");
+            last;
         }
+        elsif (!exists $constants {$_ [0]}) {
+            warnings::warnif ("'$_[0]' is not an overloadable type");
+        }
+        elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) {
+            # Can't use C<ref $_[1] eq "CODE"> above as code references can be
+            # blessed, and C<ref> would return the package the ref is blessed into.
+            if (warnings::enabled) {
+                $_ [1] = "undef" unless defined $_ [1];
+                warnings::warn ("'$_[1]' is not a code reference");
+            }
+        }
+        else {
+            $^H{$_[0]} = $_[1];
+            $^H |= $constants{$_[0]};
+        }
+        shift, shift;
     }
-    else {
-        $^H{$_[0]} = $_[1];
-        $^H |= $constants{$_[0]};
-    }
-    shift, shift;
-  }
 }
 
 sub remove_constant {
-  # Arguments: what, sub
-  while (@_) {
-    delete $^H{$_[0]};
-    $^H &= ~ $constants{$_[0]};
-    shift, shift;
-  }
+    # Arguments: what, sub
+    while (@_) {
+        delete $^H{$_[0]};
+        $^H &= ~ $constants{$_[0]};
+        shift, shift;
+    }
 }
 
 1;
@@ -191,9 +189,9 @@ overload - Package for overloading Perl 
     package SomeThing;
 
     use overload
-	'+' => \&myadd,
-	'-' => \&mysub;
-	# etc
+        '+' => \&myadd,
+        '-' => \&mysub;
+        # etc
     ...
 
     package main;
@@ -365,21 +363,21 @@ The complete list of keys that can be sp
 directive are given, separated by spaces, in the values of the
 hash C<%overload::ops>:
 
- with_assign	  => '+ - * / % ** << >> x .',
- assign		  => '+= -= *= /= %= **= <<= >>= x= .=',
- num_comparison	  => '< <= > >= == !=',
- '3way_comparison'=> '<=> cmp',
- str_comparison	  => 'lt le gt ge eq ne',
- binary		  => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
- unary		  => 'neg ! ~ ~.',
- mutators	  => '++ --',
- func		  => 'atan2 cos sin exp abs log sqrt int',
- conversion	  => 'bool "" 0+ qr',
- iterators	  => '<>',
- filetest         => '-X',
- dereferencing	  => '${} @{} %{} &{} *{}',
- matching	  => '~~',
- special	  => 'nomethod fallback ='
+    with_assign         => '+ - * / % ** << >> x .',
+    assign              => '+= -= *= /= %= **= <<= >>= x= .=',
+    num_comparison      => '< <= > >= == !=',
+    '3way_comparison'   => '<=> cmp',
+    str_comparison      => 'lt le gt ge eq ne',
+    binary              => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=',
+    unary               => 'neg ! ~ ~.',
+    mutators            => '++ --',
+    func                => 'atan2 cos sin exp abs log sqrt int',
+    conversion          => 'bool "" 0+ qr',
+    iterators           => '<>',
+    filetest            => '-X',
+    dereferencing       => '${} @{} %{} &{} *{}',
+    matching            => '~~',
+    special             => 'nomethod fallback =',
 
 Most of the overloadable operators map one-to-one to these keys.
 Exceptions, including additional overloadable operations not
@@ -922,7 +920,7 @@ Inheritance interacts with overloading i
 
 If C<value> in
 
-  use overload key => value;
+    use overload key => value;
 
 is a string, it is interpreted as a method name - which may
 (in the usual way) be inherited from another class.
@@ -943,7 +941,7 @@ be called to implement operation C<+> fo
 =back
 
 Note that in Perl version prior to 5.18 inheritance of the C<fallback> key
-was not governed by the above rules.  The value of C<fallback> in the first 
+was not governed by the above rules.  The value of C<fallback> in the first
 overloaded ancestor was used.  This was fixed in 5.18 to follow the usual
 rules of inheritance.
 
@@ -1044,10 +1042,10 @@ and overload::remove_constant() from any
 From these methods they may be called as
 
     sub import {
-       shift;
-       return unless @_;
-       die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant';
-       overload::constant integer => sub {Math::BigInt->new(shift)};
+        shift;
+        return unless @_;
+        die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant';
+        overload::constant integer => sub {Math::BigInt->new(shift)};
     }
 
 =head1 IMPLEMENTATION
@@ -1085,66 +1083,66 @@ Please add examples to what follows!
 
 Put this in F<two_face.pm> in your Perl library directory:
 
-  package two_face;		# Scalars with separate string and
-                                # numeric values.
-  sub new { my $p = shift; bless [@_], $p }
-  use overload '""' => \&str, '0+' => \&num, fallback => 1;
-  sub num {shift->[1]}
-  sub str {shift->[0]}
+    package two_face;             # Scalars with separate string and
+                                  # numeric values.
+    sub new { my $p = shift; bless [@_], $p }
+    use overload '""' => \&str, '0+' => \&num, fallback => 1;
+    sub num {shift->[1]}
+    sub str {shift->[0]}
 
 Use it as follows:
 
-  require two_face;
-  my $seven = two_face->new("vii", 7);
-  printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1;
-  print "seven contains 'i'\n" if $seven =~ /i/;
+    require two_face;
+    my $seven = two_face->new("vii", 7);
+    printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1;
+    print "seven contains 'i'\n" if $seven =~ /i/;
 
 (The second line creates a scalar which has both a string value, and a
 numeric value.)  This prints:
 
-  seven=vii, seven=7, eight=8
-  seven contains 'i'
+    seven=vii, seven=7, eight=8
+    seven contains 'i'
 
 =head2 Two-face References
 
 Suppose you want to create an object which is accessible as both an
 array reference and a hash reference.
 
-  package two_refs;
-  use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} };
-  sub new {
-    my $p = shift;
-    bless \ [@_], $p;
-  }
-  sub gethash {
-    my %h;
-    my $self = shift;
-    tie %h, ref $self, $self;
-    \%h;
-  }
-
-  sub TIEHASH { my $p = shift; bless \ shift, $p }
-  my %fields;
-  my $i = 0;
-  $fields{$_} = $i++ foreach qw{zero one two three};
-  sub STORE {
-    my $self = ${shift()};
-    my $key = $fields{shift()};
-    defined $key or die "Out of band access";
-    $$self->[$key] = shift;
-  }
-  sub FETCH {
-    my $self = ${shift()};
-    my $key = $fields{shift()};
-    defined $key or die "Out of band access";
-    $$self->[$key];
-  }
+    package two_refs;
+    use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} };
+    sub new {
+        my $p = shift;
+        bless \ [@_], $p;
+    }
+    sub gethash {
+        my %h;
+        my $self = shift;
+        tie %h, ref $self, $self;
+        \%h;
+    }
+
+    sub TIEHASH { my $p = shift; bless \ shift, $p }
+    my %fields;
+    my $i = 0;
+    $fields{$_} = $i++ foreach qw{zero one two three};
+    sub STORE {
+        my $self = ${shift()};
+        my $key = $fields{shift()};
+        defined $key or die "Out of band access";
+        $$self->[$key] = shift;
+    }
+    sub FETCH {
+        my $self = ${shift()};
+        my $key = $fields{shift()};
+        defined $key or die "Out of band access";
+        $$self->[$key];
+    }
 
 Now one can access an object using both the array and hash syntax:
 
-  my $bar = two_refs->new(3,4,5,6);
-  $bar->[2] = 11;
-  $bar->{two} == 11 or die 'bad hash fetch';
+    my $bar = two_refs->new(3,4,5,6);
+    $bar->[2] = 11;
+    $bar->{two} == 11 or die 'bad hash fetch';
 
 Note several important features of this example.  First of all, the
 I<actual> type of $bar is a scalar reference, and we do not overload
@@ -1163,51 +1161,53 @@ hash itself, the only problem one has to
 this I<actual> hash (as opposed to the I<virtual> hash exhibited by the
 overloaded dereference operator).  Here is one possible fetching routine:
 
-  sub access_hash {
-    my ($self, $key) = (shift, shift);
-    my $class = ref $self;
-    bless $self, 'overload::dummy'; # Disable overloading of %{}
-    my $out = $self->{$key};
-    bless $self, $class;	# Restore overloading
-    $out;
-  }
+    sub access_hash {
+        my ($self, $key) = (shift, shift);
+        my $class = ref $self;
+        bless $self, 'overload::dummy'; # Disable overloading of %{}
+        my $out = $self->{$key};
+        bless $self, $class;            # Restore overloading
+        $out;
+    }
 
 To remove creation of the tied hash on each access, one may an extra
 level of indirection which allows a non-circular structure of references:
 
-  package two_refs1;
-  use overload '%{}' => sub { ${shift()}->[1] },
-               '@{}' => sub { ${shift()}->[0] };
-  sub new {
-    my $p = shift;
-    my $a = [@_];
-    my %h;
-    tie %h, $p, $a;
-    bless \ [$a, \%h], $p;
-  }
-  sub gethash {
-    my %h;
-    my $self = shift;
-    tie %h, ref $self, $self;
-    \%h;
-  }
-
-  sub TIEHASH { my $p = shift; bless \ shift, $p }
-  my %fields;
-  my $i = 0;
-  $fields{$_} = $i++ foreach qw{zero one two three};
-  sub STORE {
-    my $a = ${shift()};
-    my $key = $fields{shift()};
-    defined $key or die "Out of band access";
-    $a->[$key] = shift;
-  }
-  sub FETCH {
-    my $a = ${shift()};
-    my $key = $fields{shift()};
-    defined $key or die "Out of band access";
-    $a->[$key];
-  }
+    package two_refs1;
+    use overload
+        '%{}' => sub { ${shift()}->[1] },
+        '@{}' => sub { ${shift()}->[0] };
+
+    sub new {
+        my $p = shift;
+        my $a = [@_];
+        my %h;
+        tie %h, $p, $a;
+        bless \ [$a, \%h], $p;
+    }
+    sub gethash {
+        my %h;
+        my $self = shift;
+        tie %h, ref $self, $self;
+        \%h;
+    }
+
+    sub TIEHASH { my $p = shift; bless \ shift, $p }
+    my %fields;
+    my $i = 0;
+    $fields{$_} = $i++ foreach qw{zero one two three};
+    sub STORE {
+        my $a = ${shift()};
+        my $key = $fields{shift()};
+        defined $key or die "Out of band access";
+        $a->[$key] = shift;
+    }
+    sub FETCH {
+        my $a = ${shift()};
+        my $key = $fields{shift()};
+        defined $key or die "Out of band access";
+        $a->[$key];
+    }
 
 Now if $baz is overloaded like this, then C<$baz> is a reference to a
 reference to the intermediate array, which keeps a reference to an
@@ -1233,15 +1233,15 @@ overloaded operations.
 
 Put this in F<symbolic.pm> in your Perl library directory:
 
-  package symbolic;		# Primitive symbolic calculator
-  use overload nomethod => \&wrap;
+    package symbolic;           # Primitive symbolic calculator
+    use overload nomethod => \&wrap;
 
-  sub new { shift; bless ['n', @_] }
-  sub wrap {
-    my ($obj, $other, $inv, $meth) = @_;
-    ($obj, $other) = ($other, $obj) if $inv;
-    bless [$meth, $obj, $other];
-  }
+    sub new { shift; bless ['n', @_] }
+    sub wrap {
+        my ($obj, $other, $inv, $meth) = @_;
+        ($obj, $other) = ($other, $obj) if $inv;
+        bless [$meth, $obj, $other];
+    }
 
 This module is very unusual as overloaded modules go: it does not
 provide any usual overloaded operators, instead it provides an
@@ -1253,20 +1253,20 @@ symbolic->new(3) >> contains C<['+', 2, 
 Here is an example of the script which "calculates" the side of
 circumscribed octagon using the above package:
 
-  require symbolic;
-  my $iter = 1;			# 2**($iter+2) = 8
-  my $side = symbolic->new(1);
-  my $cnt = $iter;
-
-  while ($cnt--) {
-    $side = (sqrt(1 + $side**2) - 1)/$side;
-  }
-  print "OK\n";
+    require symbolic;
+    my $iter = 1;                   # 2**($iter+2) = 8
+    my $side = symbolic->new(1);
+    my $cnt = $iter;
+
+    while ($cnt--) {
+        $side = (sqrt(1 + $side**2) - 1)/$side;
+    }
+    print "OK\n";
 
 The value of $side is
 
-  ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]],
-	               undef], 1], ['n', 1]]
+    ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]],
+                        undef], 1], ['n', 1]]
 
 Note that while we obtained this value using a nice little script,
 there is no simple way to I<use> this value.  In fact this value may
@@ -1280,18 +1280,18 @@ again of type C<symbolic>, which will le
 
 Add a pretty-printer method to the module F<symbolic.pm>:
 
-  sub pretty {
-    my ($meth, $a, $b) = @{+shift};
-    $a = 'u' unless defined $a;
-    $b = 'u' unless defined $b;
-    $a = $a->pretty if ref $a;
-    $b = $b->pretty if ref $b;
-    "[$meth $a $b]";
-  }
+    sub pretty {
+        my ($meth, $a, $b) = @{+shift};
+        $a = 'u' unless defined $a;
+        $b = 'u' unless defined $b;
+        $a = $a->pretty if ref $a;
+        $b = $b->pretty if ref $b;
+        "[$meth $a $b]";
+    }
 
 Now one can finish the script by
 
-  print "side = ", $side->pretty, "\n";
+    print "side = ", $side->pretty, "\n";
 
 The method C<pretty> is doing object-to-string conversion, so it
 is natural to overload the operator C<""> using this method.  However,
@@ -1302,21 +1302,21 @@ and $b.  If these components use overloa
 will look for an overloaded operator C<.>; if not present, it will
 look for an overloaded operator C<"">.  Thus it is enough to use
 
-  use overload nomethod => \&wrap, '""' => \&str;
-  sub str {
-    my ($meth, $a, $b) = @{+shift};
-    $a = 'u' unless defined $a;
-    $b = 'u' unless defined $b;
-    "[$meth $a $b]";
-  }
+    use overload nomethod => \&wrap, '""' => \&str;
+    sub str {
+        my ($meth, $a, $b) = @{+shift};
+        $a = 'u' unless defined $a;
+        $b = 'u' unless defined $b;
+        "[$meth $a $b]";
+    }
 
 Now one can change the last line of the script to
 
-  print "side = $side\n";
+    print "side = $side\n";
 
 which outputs
 
-  side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]]
+    side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]]
 
 and one can inspect the value in debugger using all the possible
 methods.
@@ -1335,41 +1335,42 @@ conversion routine.
 Here is the text of F<symbolic.pm> with such a routine added (and
 slightly modified str()):
 
-  package symbolic;		# Primitive symbolic calculator
-  use overload
-    nomethod => \&wrap, '""' => \&str, '0+' => \&num;
-
-  sub new { shift; bless ['n', @_] }
-  sub wrap {
-    my ($obj, $other, $inv, $meth) = @_;
-    ($obj, $other) = ($other, $obj) if $inv;
-    bless [$meth, $obj, $other];
-  }
-  sub str {
-    my ($meth, $a, $b) = @{+shift};
-    $a = 'u' unless defined $a;
-    if (defined $b) {
-      "[$meth $a $b]";
-    } else {
-      "[$meth $a]";
-    }
-  }
-  my %subr = ( n => sub {$_[0]},
-	       sqrt => sub {sqrt $_[0]},
-	       '-' => sub {shift() - shift()},
-	       '+' => sub {shift() + shift()},
-	       '/' => sub {shift() / shift()},
-	       '*' => sub {shift() * shift()},
-	       '**' => sub {shift() ** shift()},
-	     );
-  sub num {
-    my ($meth, $a, $b) = @{+shift};
-    my $subr = $subr{$meth}
-      or die "Do not know how to ($meth) in symbolic";
-    $a = $a->num if ref $a eq __PACKAGE__;
-    $b = $b->num if ref $b eq __PACKAGE__;
-    $subr->($a,$b);
-  }
+    package symbolic;           # Primitive symbolic calculator
+    use overload
+        nomethod => \&wrap, '""' => \&str, '0+' => \&num;
+
+    sub new { shift; bless ['n', @_] }
+    sub wrap {
+        my ($obj, $other, $inv, $meth) = @_;
+        ($obj, $other) = ($other, $obj) if $inv;
+        bless [$meth, $obj, $other];
+    }
+    sub str {
+        my ($meth, $a, $b) = @{+shift};
+        $a = 'u' unless defined $a;
+        if (defined $b) {
+            "[$meth $a $b]";
+        } else {
+            "[$meth $a]";
+        }
+    }
+    my %subr = (
+        n => sub {$_[0]},
+        sqrt => sub {sqrt $_[0]},
+        '-' => sub {shift() - shift()},
+        '+' => sub {shift() + shift()},
+        '/' => sub {shift() / shift()},
+        '*' => sub {shift() * shift()},
+        '**' => sub {shift() ** shift()},
+    );
+    sub num {
+        my ($meth, $a, $b) = @{+shift};
+        my $subr = $subr{$meth}
+        or die "Do not know how to ($meth) in symbolic";
+        $a = $a->num if ref $a eq __PACKAGE__;
+        $b = $b->num if ref $b eq __PACKAGE__;
+        $subr->($a,$b);
+    }
 
 All the work of numeric conversion is done in %subr and num().  Of
 course, %subr is not complete, it contains only operators used in the
@@ -1378,24 +1379,24 @@ explicit recursion in num()?  (Answer is
 
 Use this module like this:
 
-  require symbolic;
-  my $iter = symbolic->new(2);	# 16-gon
-  my $side = symbolic->new(1);
-  my $cnt = $iter;
-
-  while ($cnt) {
-    $cnt = $cnt - 1;		# Mutator '--' not implemented
-    $side = (sqrt(1 + $side**2) - 1)/$side;
-  }
-  printf "%s=%f\n", $side, $side;
-  printf "pi=%f\n", $side*(2**($iter+2));
+    require symbolic;
+    my $iter = symbolic->new(2);        # 16-gon
+    my $side = symbolic->new(1);
+    my $cnt = $iter;
+
+    while ($cnt) {
+        $cnt = $cnt - 1;                # Mutator '--' not implemented
+        $side = (sqrt(1 + $side**2) - 1)/$side;
+    }
+    printf "%s=%f\n", $side, $side;
+    printf "pi=%f\n", $side*(2**($iter+2));
 
 It prints (without so many line breaks)
 
-  [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1]
-			  [n 1]] 2]]] 1]
-     [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912
-  pi=3.182598
+    [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1]
+                            [n 1]] 2]]] 1]
+    [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912
+    pi=3.182598
 
 The above module is very primitive.  It does not implement
 mutator methods (C<++>, C<-=> and so on), does not do deep copying
@@ -1405,18 +1406,18 @@ operations which are used in the example
 To implement most arithmetic operations is easy; one should just use
 the tables of operations, and change the code which fills %subr to
 
-  my %subr = ( 'n' => sub {$_[0]} );
-  foreach my $op (split " ", $overload::ops{with_assign}) {
-    $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
-  }
-  my @bins = qw(binary 3way_comparison num_comparison str_comparison);
-  foreach my $op (split " ", "@overload::ops{ @bins }") {
-    $subr{$op} = eval "sub {shift() $op shift()}";
-  }
-  foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
-    print "defining '$op'\n";
-    $subr{$op} = eval "sub {$op shift()}";
-  }
+    my %subr = ( 'n' => sub {$_[0]} );
+    foreach my $op (split " ", $overload::ops{with_assign}) {
+        $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
+    }
+    my @bins = qw(binary 3way_comparison num_comparison str_comparison);
+    foreach my $op (split " ", "@overload::ops{ @bins }") {
+        $subr{$op} = eval "sub {shift() $op shift()}";
+    }
+    foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
+        print "defining '$op'\n";
+        $subr{$op} = eval "sub {$op shift()}";
+    }
 
 Since subroutines implementing assignment operators are not required
 to modify their operands (see L</Overloadable Operations> above),
@@ -1430,42 +1431,42 @@ To implement a copy constructor, add C<<
 line, and code (this code assumes that mutators change things one level
 deep only, so recursive copying is not needed):
 
-  sub cpy {
-    my $self = shift;
-    bless [@$self], ref $self;
-  }
+    sub cpy {
+        my $self = shift;
+        bless [@$self], ref $self;
+    }
 
 To make C<++> and C<--> work, we need to implement actual mutators,
 either directly, or in C<nomethod>.  We continue to do things inside
 C<nomethod>, thus add
 
     if ($meth eq '++' or $meth eq '--') {
-      @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference
-      return $obj;
+        @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference
+        return $obj;
     }
 
 after the first line of wrap().  This is not a most effective
 implementation, one may consider
 
-  sub inc { $_[0] = bless ['++', shift, 1]; }
+    sub inc { $_[0] = bless ['++', shift, 1]; }
 
 instead.
 
 As a final remark, note that one can fill %subr by
 
-  my %subr = ( 'n' => sub {$_[0]} );
-  foreach my $op (split " ", $overload::ops{with_assign}) {
-    $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
-  }
-  my @bins = qw(binary 3way_comparison num_comparison str_comparison);
-  foreach my $op (split " ", "@overload::ops{ @bins }") {
-    $subr{$op} = eval "sub {shift() $op shift()}";
-  }
-  foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
-    $subr{$op} = eval "sub {$op shift()}";
-  }
-  $subr{'++'} = $subr{'+'};
-  $subr{'--'} = $subr{'-'};
+    my %subr = ( 'n' => sub {$_[0]} );
+    foreach my $op (split " ", $overload::ops{with_assign}) {
+        $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}";
+    }
+    my @bins = qw(binary 3way_comparison num_comparison str_comparison);
+    foreach my $op (split " ", "@overload::ops{ @bins }") {
+        $subr{$op} = eval "sub {shift() $op shift()}";
+    }
+    foreach my $op (split " ", "@overload::ops{qw(unary func)}") {
+        $subr{$op} = eval "sub {$op shift()}";
+    }
+    $subr{'++'} = $subr{'+'};
+    $subr{'--'} = $subr{'-'};
 
 This finishes implementation of a primitive symbolic calculator in
 50 lines of Perl code.  Since the numeric values of subexpressions
@@ -1494,21 +1495,21 @@ until the value is I<used>.
 
 To see it in action, add a method
 
-  sub STORE {
-    my $obj = shift;
-    $#$obj = 1;
-    @$obj->[0,1] = ('=', shift);
-  }
+    sub STORE {
+        my $obj = shift;
+        $#$obj = 1;
+        @$obj->[0,1] = ('=', shift);
+    }
 
 to the package C<symbolic>.  After this change one can do
 
-  my $a = symbolic->new(3);
-  my $b = symbolic->new(4);
-  my $c = sqrt($a**2 + $b**2);
+    my $a = symbolic->new(3);
+    my $b = symbolic->new(4);
+    my $c = sqrt($a**2 + $b**2);
 
 and the numeric value of $c becomes 5.  However, after calling
 
-  $a->STORE(12);  $b->STORE(5);
+    $a->STORE(12);  $b->STORE(5);
 
 the numeric value of $c becomes 13.  There is no doubt now that the module
 symbolic provides a I<symbolic> calculator indeed.
@@ -1516,35 +1517,35 @@ symbolic provides a I<symbolic> calculat
 To hide the rough edges under the hood, provide a tie()d interface to the
 package C<symbolic>.  Add methods
 
-  sub TIESCALAR { my $pack = shift; $pack->new(@_) }
-  sub FETCH { shift }
-  sub nop {  }		# Around a bug
+    sub TIESCALAR { my $pack = shift; $pack->new(@_) }
+    sub FETCH { shift }
+    sub nop {  }                # Around a bug
 
 (the bug, fixed in Perl 5.14, is described in L<"BUGS">).  One can use this
 new interface as
 
-  tie $a, 'symbolic', 3;
-  tie $b, 'symbolic', 4;
-  $a->nop;  $b->nop;	# Around a bug
+    tie $a, 'symbolic', 3;
+    tie $b, 'symbolic', 4;
+    $a->nop;  $b->nop;          # Around a bug
 
-  my $c = sqrt($a**2 + $b**2);
+    my $c = sqrt($a**2 + $b**2);
 
 Now numeric value of $c is 5.  After C<$a = 12; $b = 5> the numeric value
 of $c becomes 13.  To insulate the user of the module add a method
 
-  sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; }
+    sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; }
 
 Now
 
-  my ($a, $b);
-  symbolic->vars($a, $b);
-  my $c = sqrt($a**2 + $b**2);
+    my ($a, $b);
+    symbolic->vars($a, $b);
+    my $c = sqrt($a**2 + $b**2);
 
-  $a = 3; $b = 4;
-  printf "c5  %s=%f\n", $c, $c;
+    $a = 3; $b = 4;
+    printf "c5  %s=%f\n", $c, $c;
 
-  $a = 12; $b = 5;
-  printf "c13  %s=%f\n", $c, $c;
+    $a = 12; $b = 5;
+    printf "c13  %s=%f\n", $c, $c;
 
 shows that the numeric value of $c follows changes to the values of $a
 and $b.
@@ -1607,11 +1608,11 @@ A pitfall when fallback is TRUE and Perl
 implementation of an operator is that some operators have more
 than one semantic, for example C<|>:
 
-        use overload '0+' => sub { $_[0]->{n}; },
-            fallback => 1;
-        my $x = bless { n => 4 }, "main";
-        my $y = bless { n => 8 }, "main";
-        print $x | $y, "\n";
+    use overload '0+' => sub { $_[0]->{n}; },
+        fallback => 1;
+    my $x = bless { n => 4 }, "main";
+    my $y = bless { n => 8 }, "main";
+    print $x | $y, "\n";
 
 You might expect this to output "12".
 In fact, it prints "<": the ASCII result of treating "|"
@@ -1697,3 +1698,4 @@ The range operator C<..> cannot be overl
 
 =cut
 
+# ex: set ts=8 sts=4 sw=4 et:
Index: gnu/usr.bin/perl/lib/overload.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/overload.t,v
diff -u -p -a -u -p -r1.6 overload.t
--- gnu/usr.bin/perl/lib/overload.t	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/lib/overload.t	21 Feb 2024 15:47:02 -0000
@@ -1100,7 +1100,7 @@ is("a$utfvar", "a".200.2.1); # 224 - ove
 # were to eval the overload code in the caller's namespace, the privatisation
 # would be quite transparent.
 package Hderef;
-use overload '%{}' => sub { (caller(0))[0] eq 'Foo' ? $_[0] : die "zap" };
+use overload '%{}' => sub { caller(0) eq 'Foo' ? $_[0] : die "zap" };
 package Foo;
 @Foo::ISA = 'Hderef';
 sub new { bless {}, shift }
@@ -1906,11 +1906,11 @@ foreach my $op (qw(<=> == != < <= > >=))
 
 	# eval should do tie, overload on its arg before checking taint */
 	push @tests, [ '1;', 'eval q(eval %s); $@ =~ /Insecure/',
-		'("")', '("")', [ 1, 2, 0 ], 0 ];
+		'("")', '("")', [ 1, 1, 0 ], 0 ];
 
 
 	for my $sub (keys %subs) {
-	    no warnings 'experimental::smartmatch';
+	    no warnings 'deprecated';
 	    my $term = $subs{$sub};
 	    my $t = sprintf $term, '$_[0][0]';
 	    my $e ="sub { \$funcs .= '($sub)'; my \$r; if (\$use_int) {"
@@ -1952,7 +1952,7 @@ foreach my $op (qw(<=> == != < <= > >=))
 				    ? "-\$_[0][0]"
 				    : "$_[3](\$_[0][0])";
 			my $r;
-			no warnings 'experimental::smartmatch';
+			no warnings 'deprecated';
 			if ($use_int) {
 			    use integer; $r = eval $e;
 			}
@@ -1999,7 +1999,7 @@ foreach my $op (qw(<=> == != < <= > >=))
 	    $use_int = ($int ne '');
 	    my $plain = $tainted_val;
 	    my $plain_term = $int . sprintf $sub_term, '$plain';
-	    my $exp = do {no warnings 'experimental::smartmatch'; eval $plain_term };
+	    my $exp = do {no warnings 'deprecated'; eval $plain_term };
 	    diag("eval of plain_term <$plain_term> gave <$@>") if $@;
 	    SKIP: {
 		is_if_taint_supported(tainted($exp), $exp_taint,
@@ -2029,7 +2029,7 @@ foreach my $op (qw(<=> == != < <= > >=))
 
 		    my $res_term  = $int . sprintf $sub_term, $var;
 		    my $desc =  "<$res_term> $ov_pkg" ;
-		    my $res = do { no warnings 'experimental::smartmatch'; eval $res_term };
+		    my $res = do { no warnings 'deprecated'; eval $res_term };
 		    diag("eval of res_term $desc gave <$@>") if $@;
 		    # uniquely, the inc/dec ops return the original
 		    # ref rather than a copy, so stringify it to
Index: gnu/usr.bin/perl/lib/perl5db.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/perl5db.pl,v
diff -u -p -a -u -p -r1.27 perl5db.pl
--- gnu/usr.bin/perl/lib/perl5db.pl	15 Feb 2023 01:38:22 -0000	1.27
+++ gnu/usr.bin/perl/lib/perl5db.pl	21 Feb 2024 15:47:02 -0000
@@ -532,7 +532,7 @@ BEGIN {
 use vars qw($VERSION $header);
 
 # bump to X.XX in blead, only use X.XX_XX in maint
-$VERSION = '1.73';
+$VERSION = '1.77';
 
 $header = "perl5db.pl version $VERSION";
 
@@ -3272,7 +3272,7 @@ deal with them instead of processing the
 =head4 C<y> - List lexicals in higher scope
 
 Uses C<PadWalker> to find the lexicals supplied as arguments in a scope
-above the current one and then displays then using C<dumpvar.pl>.
+above the current one and then displays them using F<dumpvar.pl>.
 
 =head3 COMMANDS NOT WORKING AFTER PROGRAM ENDS
 
@@ -3504,7 +3504,9 @@ again.
 =cut
 
         # No more commands? Quit.
-        $fall_off_end = 1 unless defined $cmd;    # Emulate 'q' on EOF
+        unless (defined $cmd) {
+            DB::Obj::_do_quit();
+        }
 
         # Evaluate post-prompt commands.
         foreach $evalarg (@$post) {
@@ -4308,13 +4310,17 @@ sub _handle_x_command {
     return;
 }
 
+sub _do_quit {
+    $fall_off_end = 1;
+    DB::clean_ENV();
+    exit $?;
+}
+
 sub _handle_q_command {
     my $self = shift;
 
     if ($self->_is_full('q')) {
-        $fall_off_end = 1;
-        DB::clean_ENV();
-        exit $?;
+        _do_quit();
     }
 
     return;
@@ -8202,7 +8208,7 @@ B<|>I<dbcmd>        Run debugger command
 B<||>I<dbcmd>        Same as B<|>I<dbcmd> but DB::OUT is temporarily select()ed as well.
 B<\=> [I<alias> I<value>]    Define a command alias, or list current aliases.
 I<command>        Execute as a perl statement in current package.
-B<R>        Pure-man-restart of debugger, some of debugger state
+B<R>        Poor man's restart of the debugger, some of debugger state
         and command-line options may be lost.
         Currently the following settings are preserved:
         history, breakpoints and actions, debugger B<O>ptions
@@ -8378,7 +8384,7 @@ B<||>I<dbcmd>        Same as B<|>I<dbcmd
 B<\=> [I<alias> I<value>]    Define a command alias, or list current aliases.
 I<command>        Execute as a perl statement in current package.
 B<v>        Show versions of loaded modules.
-B<R>        Pure-man-restart of debugger, some of debugger state
+B<R>        Poor man's restart of the debugger, some of debugger state
         and command-line options may be lost.
         Currently the following settings are preserved:
         history, breakpoints and actions, debugger B<O>ptions
@@ -10388,7 +10394,8 @@ sub cmd_prepost {
 
 Contains the C<at_exit> routine that the debugger uses to issue the
 C<Debugged program terminated ...> message after the program completes. See
-the C<END> block documentation for more details.
+the L<C<END>|/END PROCESSING - THE END BLOCK> block documentation for more
+details.
 
 =cut
 
Index: gnu/usr.bin/perl/lib/perl5db.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/perl5db.t,v
diff -u -p -a -u -p -r1.6 perl5db.t
--- gnu/usr.bin/perl/lib/perl5db.t	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/lib/perl5db.t	21 Feb 2024 15:47:02 -0000
@@ -404,9 +404,11 @@ results.
 
 =head1 DESCRIPTION
 
-DebugWrap is a simple class that executes a set of debugger commands
-against a program under the debugger and provides some simple methods
-to examine the results.
+DebugWrap is a simple class used when testing the Perl debugger that
+executes a set of debugger commands against a program under the
+debugger and provides some simple methods to examine the results.
+
+It is not installed to your system.
 
 =head2 Creating a DebugWrap object
 
@@ -459,7 +461,7 @@ include the output from the program unde
 Test that the debugger output matches the given regular expression
 object (as with qr//).
 
-Equivelent to:
+Equivalent to:
 
   like($wrapper->get_contents, $re, $test_name);
 
@@ -468,7 +470,7 @@ Equivelent to:
 Test that the debugger output does not match the given regular
 expression object (as with qr//).
 
-Equivelent to:
+Equivalent to:
 
   unlike($wrapper->get_contents, $re, $test_name);
 
@@ -484,7 +486,7 @@ capturing stderr.
 Test that the program output matches the given regular expression
 object (as with qr//).
 
-Equivelent to:
+Equivalent to:
 
   like($wrapper->get_output, $re, $test_name);
 
@@ -493,7 +495,7 @@ Equivelent to:
 Test that the program output does not match the given regular
 expression object (as with qr//).
 
-Equivelent to:
+Equivalent to:
 
   unlike($wrapper->get_output, $re, $test_name);
 
Index: gnu/usr.bin/perl/lib/perlbug.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/perlbug.t,v
diff -u -p -a -u -p -r1.1.1.2 perlbug.t
--- gnu/usr.bin/perl/lib/perlbug.t	1 Mar 2021 23:15:57 -0000	1.1.1.2
+++ gnu/usr.bin/perl/lib/perlbug.t	21 Feb 2024 15:47:02 -0000
@@ -148,7 +148,12 @@ my $maxlen1 = 0; # body
 my $maxlen2 = 0; # attachment
 for (split(/\n/, $contents)) {
         my $len = length;
-        $maxlen1 = $len if $len > $maxlen1 and !/$B/;
+        # content lines setting path-like environment variables like PATH, PERLBREW_PATH, MANPATH,...
+        #  will start "\s*xxxxPATH=" where "xxx" is zero or more non white space characters. These lines can
+        #  easily get over 1000 characters (see ok-test below) with no internal spaces, so they
+        #  will not get wrapped at white space.
+        # See also https://github.com/perl/perl5/issues/15544 for more information
+        $maxlen1 = $len if $len > $maxlen1 and !/(?:$B|^\s*\S*PATH=)/;
         $maxlen2 = $len if $len > $maxlen2 and  /$B/;
 }
 ok($maxlen1 < 1000, "[perl #128020] long body lines are wrapped: maxlen $maxlen1");
Index: gnu/usr.bin/perl/lib/utf8.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/utf8.pm,v
diff -u -p -a -u -p -r1.5 utf8.pm
--- gnu/usr.bin/perl/lib/utf8.pm	15 Feb 2023 01:36:33 -0000	1.5
+++ gnu/usr.bin/perl/lib/utf8.pm	21 Feb 2024 15:47:02 -0000
@@ -5,7 +5,7 @@ use warnings;
 
 our $hint_bits = 0x00800000;
 
-our $VERSION = '1.24';
+our $VERSION = '1.25';
 our $AUTOLOAD;
 
 sub import {
@@ -114,6 +114,8 @@ sequence in the native encoding (Latin-1
 logical character sequence itself is unchanged.  If I<$string> is already
 upgraded, then this is a no-op. Returns the
 number of octets necessary to represent the string as UTF-8.
+Since Perl v5.38, if C<$string> is C<undef> no action is taken; prior to that,
+it would be converted to be defined and zero-length.
 
 If your code needs to be compatible with versions of perl without
 C<use feature 'unicode_strings';>, you can force Unicode semantics on
Index: gnu/usr.bin/perl/lib/utf8.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/utf8.t,v
diff -u -p -a -u -p -r1.11 utf8.t
--- gnu/usr.bin/perl/lib/utf8.t	13 Feb 2019 21:15:25 -0000	1.11
+++ gnu/usr.bin/perl/lib/utf8.t	21 Feb 2024 15:47:02 -0000
@@ -669,6 +669,9 @@ for(__PACKAGE__) {
 	eval { utf8::upgrade($_) };
 	is $@, "", 'no error with utf8::upgrade on read-only COW';
 }
+
+is(utf8::upgrade(undef), undef, "Returns undef for undef input"); # GH #20419
+
 # This one croaks, but not because the scalar is read-only
 eval "package \x{100};\n" . <<'END'
     for(__PACKAGE__) {
Index: gnu/usr.bin/perl/lib/warnings.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/warnings.pm,v
diff -u -p -a -u -p -r1.6 warnings.pm
--- gnu/usr.bin/perl/lib/warnings.pm	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/lib/warnings.pm	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is built by regen/warnings.pl.
 # Any changes made here will be lost!
 
 package warnings;
 
-our $VERSION = "1.58";
+our $VERSION = "1.65";
 
 # Verify that we're called correctly so that warnings will work.
 # Can't use Carp, since Carp uses us!
@@ -68,57 +68,69 @@ our %Offsets = (
     'imprecision'			=> 92,
     'illegalproto'			=> 94,
 
+    # Warnings Categories added in Perl 5.011003
+    'deprecated::goto_construct'	=> 96,
+    'deprecated::unicode_property_name'	=> 98,
+
     # Warnings Categories added in Perl 5.013
-    'non_unicode'			=> 96,
-    'nonchar'				=> 98,
-    'surrogate'				=> 100,
+    'non_unicode'			=> 100,
+    'nonchar'				=> 102,
+    'surrogate'				=> 104,
 
     # Warnings Categories added in Perl 5.017
-    'experimental'			=> 102,
-    'experimental::lexical_subs'	=> 104,
-    'experimental::regex_sets'		=> 106,
-    'experimental::smartmatch'		=> 108,
+    'experimental'			=> 106,
+    'experimental::regex_sets'		=> 108,
 
     # Warnings Categories added in Perl 5.019
-    'experimental::postderef'		=> 110,
-    'experimental::signatures'		=> 112,
-    'syscalls'				=> 114,
+    'syscalls'				=> 110,
 
     # Warnings Categories added in Perl 5.021
-    'experimental::bitwise'		=> 116,
-    'experimental::const_attr'		=> 118,
-    'experimental::re_strict'		=> 120,
-    'experimental::refaliasing'		=> 122,
-    'locale'				=> 124,
-    'missing'				=> 126,
-    'redundant'				=> 128,
+    'experimental::const_attr'		=> 112,
+    'experimental::re_strict'		=> 114,
+    'experimental::refaliasing'		=> 116,
+    'locale'				=> 118,
+    'missing'				=> 120,
+    'redundant'				=> 122,
 
     # Warnings Categories added in Perl 5.025
-    'experimental::declared_refs'	=> 130,
+    'experimental::declared_refs'	=> 124,
+
+    # Warnings Categories added in Perl 5.025011
+    'deprecated::dot_in_inc'		=> 126,
 
     # Warnings Categories added in Perl 5.027
-    'experimental::alpha_assertions'	=> 132,
-    'experimental::script_run'		=> 134,
-    'shadow'				=> 136,
+    'shadow'				=> 128,
 
     # Warnings Categories added in Perl 5.029
-    'experimental::private_use'		=> 138,
-    'experimental::uniprop_wildcards'	=> 140,
-    'experimental::vlb'			=> 142,
-
-    # Warnings Categories added in Perl 5.031
-    'experimental::isa'			=> 144,
+    'experimental::private_use'		=> 130,
+    'experimental::uniprop_wildcards'	=> 132,
+    'experimental::vlb'			=> 134,
 
     # Warnings Categories added in Perl 5.033
-    'experimental::try'			=> 146,
+    'experimental::try'			=> 136,
 
     # Warnings Categories added in Perl 5.035
-    'experimental::args_array_with_signatures'=> 148,
-    'experimental::builtin'		=> 150,
-    'experimental::defer'		=> 152,
-    'experimental::extra_paired_delimiters'=> 154,
-    'experimental::for_list'		=> 156,
-    'scalar'				=> 158,
+    'experimental::args_array_with_signatures'=> 138,
+    'experimental::builtin'		=> 140,
+    'experimental::defer'		=> 142,
+    'experimental::extra_paired_delimiters'=> 144,
+    'experimental::for_list'		=> 146,
+    'scalar'				=> 148,
+
+    # Warnings Categories added in Perl 5.035009
+    'deprecated::version_downgrade'	=> 150,
+
+    # Warnings Categories added in Perl 5.03501
+    'deprecated::delimiter_will_be_paired'=> 152,
+
+    # Warnings Categories added in Perl 5.037
+    'experimental::class'		=> 154,
+
+    # Warnings Categories added in Perl 5.037009
+    'deprecated::apostrophe_as_package_separator'=> 156,
+
+    # Warnings Categories added in Perl 5.03701
+    'deprecated::smartmatch'		=> 158,
 );
 
 our %Bits = (
@@ -128,47 +140,47 @@ our %Bits = (
     'closed'				=> "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
     'closure'				=> "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
     'debugging'				=> "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
-    'deprecated'			=> "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'deprecated'			=> "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x40\x00\x00\x40\x51", # [2,48,49,63,75,76,78,79]
+    'deprecated::apostrophe_as_package_separator'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [78]
+    'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [76]
+    'deprecated::dot_in_inc'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [63]
+    'deprecated::goto_construct'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [48]
+    'deprecated::smartmatch'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [79]
+    'deprecated::unicode_property_name'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [49]
+    'deprecated::version_downgrade'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [75]
     'digit'				=> "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
     'exec'				=> "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
     'exiting'				=> "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'experimental'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x51\x05\x54\x54\x55\x15", # [51..56,58..61,65..67,69..78]
-    'experimental::alpha_assertions'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [66]
-    'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [74]
-    'experimental::bitwise'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [58]
-    'experimental::builtin'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [75]
-    'experimental::const_attr'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [59]
-    'experimental::declared_refs'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [65]
-    'experimental::defer'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [76]
-    'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [77]
-    'experimental::for_list'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [78]
-    'experimental::isa'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [72]
-    'experimental::lexical_subs'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [52]
-    'experimental::postderef'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [55]
-    'experimental::private_use'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [69]
-    'experimental::re_strict'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [60]
-    'experimental::refaliasing'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [61]
-    'experimental::regex_sets'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [53]
-    'experimental::script_run'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [67]
-    'experimental::signatures'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [56]
-    'experimental::smartmatch'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [54]
-    'experimental::try'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [73]
-    'experimental::uniprop_wildcards'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [70]
-    'experimental::vlb'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [71]
+    'experimental'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x15\x10\x54\x55\x05\x04", # [53,54,56..58,62,65..73,77]
+    'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [69]
+    'experimental::builtin'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [70]
+    'experimental::class'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [77]
+    'experimental::const_attr'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [56]
+    'experimental::declared_refs'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [62]
+    'experimental::defer'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [71]
+    'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [72]
+    'experimental::for_list'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [73]
+    'experimental::private_use'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [65]
+    'experimental::re_strict'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [57]
+    'experimental::refaliasing'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [58]
+    'experimental::regex_sets'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [54]
+    'experimental::try'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [68]
+    'experimental::uniprop_wildcards'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [66]
+    'experimental::vlb'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [67]
     'glob'				=> "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
     'illegalproto'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [47]
     'imprecision'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [46]
     'inplace'				=> "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
     'internal'				=> "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
-    'io'				=> "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [5..11,57]
+    'io'				=> "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [5..11,55]
     'layer'				=> "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'locale'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [62]
+    'locale'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [59]
     'malloc'				=> "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
     'misc'				=> "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'missing'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [63]
+    'missing'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [60]
     'newline'				=> "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'non_unicode'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [48]
-    'nonchar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [49]
+    'non_unicode'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [50]
+    'nonchar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [51]
     'numeric'				=> "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
     'once'				=> "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
     'overflow'				=> "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
@@ -182,25 +194,25 @@ our %Bits = (
     'qw'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [36]
     'recursion'				=> "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
     'redefine'				=> "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
-    'redundant'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [64]
+    'redundant'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [61]
     'regexp'				=> "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
     'reserved'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [37]
-    'scalar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [79]
+    'scalar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [74]
     'semicolon'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [38]
     'severe'				=> "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
-    'shadow'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [68]
+    'shadow'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [64]
     'signal'				=> "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
     'substr'				=> "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
-    'surrogate'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [50]
+    'surrogate'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [52]
     'syntax'				=> "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47]
-    'syscalls'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [57]
+    'syscalls'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [55]
     'taint'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [39]
     'threads'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [40]
     'uninitialized'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [41]
     'unopened'				=> "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
     'unpack'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [42]
     'untie'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [43]
-    'utf8'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00\x00\x00\x00\x00", # [44,48..50]
+    'utf8'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x50\x01\x00\x00\x00\x00\x00\x00", # [44,50..52]
     'void'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [45]
 );
 
@@ -211,47 +223,47 @@ our %DeadBits = (
     'closed'				=> "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
     'closure'				=> "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
     'debugging'				=> "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
-    'deprecated'			=> "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'deprecated'			=> "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x80\x00\x00\x80\xa2", # [2,48,49,63,75,76,78,79]
+    'deprecated::apostrophe_as_package_separator'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [78]
+    'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [76]
+    'deprecated::dot_in_inc'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [63]
+    'deprecated::goto_construct'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [48]
+    'deprecated::smartmatch'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [79]
+    'deprecated::unicode_property_name'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [49]
+    'deprecated::version_downgrade'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [75]
     'digit'				=> "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
     'exec'				=> "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
     'exiting'				=> "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'experimental'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\xa2\x0a\xa8\xa8\xaa\x2a", # [51..56,58..61,65..67,69..78]
-    'experimental::alpha_assertions'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [66]
-    'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [74]
-    'experimental::bitwise'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [58]
-    'experimental::builtin'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [75]
-    'experimental::const_attr'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [59]
-    'experimental::declared_refs'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [65]
-    'experimental::defer'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [76]
-    'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [77]
-    'experimental::for_list'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [78]
-    'experimental::isa'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [72]
-    'experimental::lexical_subs'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [52]
-    'experimental::postderef'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [55]
-    'experimental::private_use'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [69]
-    'experimental::re_strict'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [60]
-    'experimental::refaliasing'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [61]
-    'experimental::regex_sets'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [53]
-    'experimental::script_run'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [67]
-    'experimental::signatures'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [56]
-    'experimental::smartmatch'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [54]
-    'experimental::try'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [73]
-    'experimental::uniprop_wildcards'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [70]
-    'experimental::vlb'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [71]
+    'experimental'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x2a\x20\xa8\xaa\x0a\x08", # [53,54,56..58,62,65..73,77]
+    'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [69]
+    'experimental::builtin'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [70]
+    'experimental::class'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [77]
+    'experimental::const_attr'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [56]
+    'experimental::declared_refs'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [62]
+    'experimental::defer'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [71]
+    'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [72]
+    'experimental::for_list'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [73]
+    'experimental::private_use'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [65]
+    'experimental::re_strict'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [57]
+    'experimental::refaliasing'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [58]
+    'experimental::regex_sets'		=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [54]
+    'experimental::try'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [68]
+    'experimental::uniprop_wildcards'	=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [66]
+    'experimental::vlb'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [67]
     'glob'				=> "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
     'illegalproto'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [47]
     'imprecision'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [46]
     'inplace'				=> "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
     'internal'				=> "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24]
-    'io'				=> "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [5..11,57]
+    'io'				=> "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [5..11,55]
     'layer'				=> "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'locale'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [62]
+    'locale'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [59]
     'malloc'				=> "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25]
     'misc'				=> "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'missing'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [63]
+    'missing'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [60]
     'newline'				=> "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'non_unicode'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [48]
-    'nonchar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [49]
+    'non_unicode'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [50]
+    'nonchar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [51]
     'numeric'				=> "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
     'once'				=> "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
     'overflow'				=> "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
@@ -265,31 +277,42 @@ our %DeadBits = (
     'qw'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [36]
     'recursion'				=> "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
     'redefine'				=> "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
-    'redundant'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [64]
+    'redundant'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [61]
     'regexp'				=> "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
     'reserved'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [37]
-    'scalar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [79]
+    'scalar'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [74]
     'semicolon'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [38]
     'severe'				=> "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25]
-    'shadow'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [68]
+    'shadow'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [64]
     'signal'				=> "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26]
     'substr'				=> "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27]
-    'surrogate'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [50]
+    'surrogate'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [52]
     'syntax'				=> "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47]
-    'syscalls'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [57]
+    'syscalls'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [55]
     'taint'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [39]
     'threads'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [40]
     'uninitialized'			=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [41]
     'unopened'				=> "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
     'unpack'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [42]
     'untie'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [43]
-    'utf8'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00\x00\x00\x00\x00", # [44,48..50]
+    'utf8'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xa0\x02\x00\x00\x00\x00\x00\x00", # [44,50..52]
     'void'				=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [45]
 );
 
+our %NoOp = (
+    'experimental::alpha_assertions'	=> 1,
+    'experimental::bitwise'		=> 1,
+    'experimental::isa'			=> 1,
+    'experimental::lexical_subs'	=> 1,
+    'experimental::postderef'		=> 1,
+    'experimental::script_run'		=> 1,
+    'experimental::signatures'		=> 1,
+    'experimental::smartmatch'		=> 1,
+);
+
 # These are used by various things, including our own tests
 our $NONE				=  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-our $DEFAULT				=  "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x51\x51\x15\x54\x54\x55\x15"; # [2,4,22,23,25,52,54..56,58..62,65..67,69..78]
+our $DEFAULT				=  "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x05\x00\x55\x50\x54\x55\x45\x55"; # [2,4,22,23,25,48,49,56..59,62,63,65..73,75..79]
 our $LAST_BIT				=  160 ;
 our $BYTES				=  20 ;
 
@@ -328,6 +351,7 @@ sub _bits {
 
     $mask = _expand_bits($mask);
     foreach my $word ( @_ ) {
+        next if $NoOp{$word};
         if ($word eq 'FATAL') {
             $fatal = 1;
             $no_fatal = 0;
@@ -389,6 +413,7 @@ sub unimport
 
     $mask = _expand_bits($mask);
     foreach my $word ( @_ ) {
+        next if $NoOp{$word};
         if ($word eq 'FATAL') {
             next;
         }
@@ -449,7 +474,7 @@ sub __chk
             unless defined $offset;
     }
     else {
-        $category = (caller(1))[0] ;
+        $category = caller(1);
         $offset = $Offsets{$category};
         Croaker("package '$category' not registered for warnings")
             unless defined $offset ;
@@ -732,6 +757,13 @@ which is equivalent to:
     no warnings  'experimental';
     use warnings 'experimental::somefeature';
 
+As experimental features become regular features of Perl,
+the corresponding warnings are not printed anymore.
+They also stop being listed in the L</Category Hierarchy> below.
+
+It is still possible to request turning on or off these warnings,
+but doing so has no effect.
+
 =head2 What's wrong with B<-w> and C<$^W>
 
 Although very useful, the big problem with using B<-w> on the command
@@ -882,20 +914,32 @@ The current hierarchy is:
          |
          +- closure
          |
-         +- deprecated
+         +- deprecated ----+
+         |                 |
+         |                 +- deprecated::apostrophe_as_package_separator
+         |                 |
+         |                 +- deprecated::delimiter_will_be_paired
+         |                 |
+         |                 +- deprecated::dot_in_inc
+         |                 |
+         |                 +- deprecated::goto_construct
+         |                 |
+         |                 +- deprecated::smartmatch
+         |                 |
+         |                 +- deprecated::unicode_property_name
+         |                 |
+         |                 +- deprecated::version_downgrade
          |
          +- exiting
          |
          +- experimental --+
          |                 |
-         |                 +- experimental::alpha_assertions
-         |                 |
          |                 +- experimental::args_array_with_signatures
          |                 |
-         |                 +- experimental::bitwise
-         |                 |
          |                 +- experimental::builtin
          |                 |
+         |                 +- experimental::class
+         |                 |
          |                 +- experimental::const_attr
          |                 |
          |                 +- experimental::declared_refs
@@ -906,12 +950,6 @@ The current hierarchy is:
          |                 |
          |                 +- experimental::for_list
          |                 |
-         |                 +- experimental::isa
-         |                 |
-         |                 +- experimental::lexical_subs
-         |                 |
-         |                 +- experimental::postderef
-         |                 |
          |                 +- experimental::private_use
          |                 |
          |                 +- experimental::re_strict
@@ -920,12 +958,6 @@ The current hierarchy is:
          |                 |
          |                 +- experimental::regex_sets
          |                 |
-         |                 +- experimental::script_run
-         |                 |
-         |                 +- experimental::signatures
-         |                 |
-         |                 +- experimental::smartmatch
-         |                 |
          |                 +- experimental::try
          |                 |
          |                 +- experimental::uniprop_wildcards
@@ -1460,4 +1492,4 @@ See also L<perlmodlib/Pragmatic Modules>
 
 =cut
 
-# ex: set ro:
+# ex: set ro ft=perl:
Index: gnu/usr.bin/perl/lib/B/Deparse-core.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/B/Deparse-core.t,v
diff -u -p -a -u -p -r1.5 Deparse-core.t
--- gnu/usr.bin/perl/lib/B/Deparse-core.t	15 Feb 2023 01:36:33 -0000	1.5
+++ gnu/usr.bin/perl/lib/B/Deparse-core.t	21 Feb 2024 15:47:02 -0000
@@ -354,6 +354,7 @@ my %not_tested = map { $_ => 1} qw(
     __FILE__
     __LINE__
     __PACKAGE__
+    ADJUST
     AUTOLOAD
     BEGIN
     CHECK
@@ -363,10 +364,12 @@ my %not_tested = map { $_ => 1} qw(
     INIT
     UNITCHECK
     catch
+    class
     default
     defer
     else
     elsif
+    field
     finally
     for
     foreach
@@ -374,6 +377,7 @@ my %not_tested = map { $_ => 1} qw(
     given
     if
     m
+    method
     no
     package
     q
Index: gnu/usr.bin/perl/lib/B/Deparse.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/B/Deparse.pm,v
diff -u -p -a -u -p -r1.6 Deparse.pm
--- gnu/usr.bin/perl/lib/B/Deparse.pm	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/lib/B/Deparse.pm	21 Feb 2024 15:47:02 -0000
@@ -7,14 +7,14 @@
 # This is based on the module of the same name by Malcolm Beattie,
 # but essentially none of his code remains.
 
-package B::Deparse;
+package B::Deparse 1.74;
 use strict;
 use Carp;
 use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
 	 OPf_WANT OPf_WANT_VOID OPf_WANT_SCALAR OPf_WANT_LIST
 	 OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL OPf_MOD OPf_PARENS
 	 OPpLVAL_INTRO OPpOUR_INTRO OPpENTERSUB_AMPER OPpSLICE OPpKVSLICE
-         OPpCONST_BARE
+         OPpCONST_BARE OPpEMPTYAVHV_IS_HV
 	 OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
 	 OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER OPpREPEAT_DOLIST
 	 OPpSORT_REVERSE OPpMULTIDEREF_EXISTS OPpMULTIDEREF_DELETE
@@ -23,12 +23,13 @@ use B qw(class main_root main_start main
          OPpCONCAT_NESTED
          OPpMULTICONCAT_APPEND OPpMULTICONCAT_STRINGIFY OPpMULTICONCAT_FAKE
          OPpTRUEBOOL OPpINDEX_BOOLNEG OPpDEFER_FINALLY
-	 SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG SVs_SMG
-	 SVs_PADTMP SVpad_TYPED
-         CVf_METHOD CVf_LVALUE
+         OPpARG_IF_UNDEF OPpARG_IF_FALSE
+	 SVf_IOK SVf_NOK SVf_ROK SVf_POK SVf_FAKE SVs_RMG SVs_SMG
+	 SVs_PADTMP
+         CVf_NOWARN_AMBIGUOUS CVf_LVALUE
 	 PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE
 	 PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED PMf_EXTENDED_MORE
-	 PADNAMEt_OUTER
+	 PADNAMEf_OUTER PADNAMEf_OUR PADNAMEf_TYPED
         MDEREF_reload
         MDEREF_AV_pop_rv2av_aelem
         MDEREF_AV_gvsv_vivify_rv2av_aelem
@@ -53,7 +54,6 @@ use B qw(class main_root main_start main
         MDEREF_SHIFT
     );
 
-our $VERSION = '1.64';
 our $AUTOLOAD;
 use warnings ();
 require feature;
@@ -450,7 +450,7 @@ sub next_todo {
 	my $flags = $name->FLAGS;
         my $category =
 	    !$cv || $seq <= $name->COP_SEQ_RANGE_LOW
-		? $self->keyword($flags & SVpad_OUR
+		? $self->keyword($flags & PADNAMEf_OUR
 				    ? "our"
 				    : $flags & SVpad_STATE
 					? "state"
@@ -1121,8 +1121,8 @@ sub pad_subs {
 	if (defined $name && $name =~ /^&./) {
 	    my $low = $_->COP_SEQ_RANGE_LOW;
 	    my $flags = $_->FLAGS;
-	    my $outer = $flags & PADNAMEt_OUTER;
-	    if ($flags & SVpad_OUR) {
+	    my $outer = $flags & PADNAMEf_OUTER;
+	    if ($flags & PADNAMEf_OUR) {
 		push @todo, [$low, undef, 0, $_]
 		          # [seq, no cv, not format, padname]
 		    unless $outer;
@@ -1135,7 +1135,7 @@ sub pad_subs {
 		my $flags = $flags;
 		my $cv = $cv;
 		my $name = $_;
-		while ($flags & PADNAMEt_OUTER && class ($protocv) ne 'CV')
+		while ($flags & PADNAMEf_OUTER && class ($protocv) ne 'CV')
 		{
 		    $cv = $cv->OUTSIDE;
 		    next PADENTRY if class($cv) eq 'SPECIAL'; # XXX freed?
@@ -1152,7 +1152,7 @@ sub pad_subs {
 		my $other = $protocv->PADLIST;
 		$$other && $other->outid == $padlist->id;
 	    };
-	    if ($flags & PADNAMEt_OUTER) {
+	    if ($flags & PADNAMEf_OUTER) {
 		next unless $defined_in_this_sub;
 		push @todo, [$protocv->OUTSIDE_SEQ, $protocv, 0, $_];
 		next;
@@ -1262,7 +1262,10 @@ sub deparse_argops {
                 return unless $$kid and $kid->name eq 'argdefelem';
                 my $def = $self->deparse($kid->first, 7);
                 $def = "($def)" if $kid->first->flags & OPf_PARENS;
-                $var .= " = $def";
+                my $assign = "=";
+                $assign = "//=" if $kid->private & OPpARG_IF_UNDEF;
+                $assign = "||=" if $kid->private & OPpARG_IF_FALSE;
+                $var .= " $assign $def";
             }
             push @sig, $var;
         }
@@ -1313,7 +1316,7 @@ Carp::confess("NULL in deparse_sub") if 
 Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
     local $self->{'curcop'} = $self->{'curcop'};
 
-    my $has_sig = $self->{hinthash}{feature_signatures};
+    my $has_sig = $self->feature_enabled('signatures');
     if ($cv->FLAGS & SVf_POK) {
 	my $myproto = $cv->PV;
 	if ($has_sig) {
@@ -1323,9 +1326,9 @@ Carp::confess("SPECIAL in deparse_sub") 
             $proto = $myproto;
         }
     }
-    if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
+    if ($cv->CvFLAGS & (CVf_NOWARN_AMBIGUOUS|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
         push @attrs, "lvalue" if $cv->CvFLAGS & CVf_LVALUE;
-        push @attrs, "method" if $cv->CvFLAGS & CVf_METHOD;
+        push @attrs, "method" if $cv->CvFLAGS & CVf_NOWARN_AMBIGUOUS;
         push @attrs, "const"  if $cv->CvFLAGS & CVf_ANONCONST;
     }
 
@@ -1551,7 +1554,7 @@ sub maybe_parens_func {
     if ($prec <= $cx or substr($text, 0, 1) eq "(" or $self->{'parens'}) {
 	return "$func($text)";
     } else {
-	return "$func $text";
+        return $func . (length($text) ? " $text" : "");
     }
 }
 
@@ -1561,7 +1564,7 @@ sub find_our_type {
     my $seq = $self->{'curcop'} ? $self->{'curcop'}->cop_seq : 0;
     for my $a (@{$self->{'curcvlex'}{"o$name"}}) {
 	my ($st, undef, $padname) = @$a;
-	if ($st >= $seq && $padname->FLAGS & SVpad_TYPED) {
+	if ($st >= $seq && $padname->FLAGS & PADNAMEf_TYPED) {
 	    return $padname->SvSTASH->NAME;
 	}
     }
@@ -1647,7 +1650,7 @@ sub maybe_my {
 	# because enteriter ops do not carry the flag.
 	my $my =
 	    $self->keyword($padname->FLAGS & SVpad_STATE ? "state" : "my");
-	if ($padname->FLAGS & SVpad_TYPED) {
+	if ($padname->FLAGS & PADNAMEf_TYPED) {
 	    $my .= ' ' . $padname->SvSTASH->NAME;
 	}
 	if ($need_parens) {
@@ -1987,7 +1990,7 @@ sub populate_curcvlex {
 		    : ($ns[$i]->COP_SEQ_RANGE_LOW, $ns[$i]->COP_SEQ_RANGE_HIGH);
 
 	    push @{$self->{'curcvlex'}{
-			($ns[$i]->FLAGS & SVpad_OUR ? 'o' : 'm') . $name
+			($ns[$i]->FLAGS & PADNAMEf_OUR ? 'o' : 'm') . $name
 		  }}, [$seq_st, $seq_en, $ns[$i]];
 	}
     }
@@ -2331,6 +2334,7 @@ my %feature_keywords = (
    catch    => 'try',
    finally  => 'try',
    defer    => 'defer',
+   signatures => 'signatures',
 );
 
 # keywords that are strong and also have a prototype
@@ -2514,7 +2518,21 @@ sub pp_chomp { maybe_targmy(@_, \&unop, 
 sub pp_schop { maybe_targmy(@_, \&unop, "chop") }
 sub pp_schomp { maybe_targmy(@_, \&unop, "chomp") }
 sub pp_defined { unop(@_, "defined") }
-sub pp_undef { unop(@_, "undef") }
+sub pp_undef {
+    if ($_[1]->private & OPpTARGET_MY) {
+        my $targ = $_[1]->targ;
+        my $var = $_[0]->maybe_my($_[1], $_[2], $_[0]->padname($targ),
+            $_[0]->padname_sv($targ),
+            1);
+        my $func = unop(@_, "undef");
+        if ($func =~ /\s/) {
+            return unop(@_, "undef").$var;
+        } else {
+            return "$var = undef";
+        }
+    }
+    unop(@_, "undef") 
+}
 sub pp_study { unop(@_, "study") }
 sub pp_ref { unop(@_, "ref") }
 sub pp_pos { maybe_local(@_, unop(@_, "pos")) }
@@ -2772,19 +2790,40 @@ sub pp_anonlist {
 
 *pp_anonhash = \&pp_anonlist;
 
+sub pp_emptyavhv {
+    my $self = shift;
+    my ($op, $cx, $forbid_parens) = @_;
+    my $val = ($op->private & OPpEMPTYAVHV_IS_HV) ? '{}' : '[]';
+    if ($op->private & OPpTARGET_MY) {
+        my $targ = $op->targ;
+        my $var = $self->maybe_my($op, $cx, $self->padname($targ),
+                           $self->padname_sv($targ),
+                           $forbid_parens);
+        return $self->maybe_parens("$var = $val", $cx, 7);
+    } else {
+        return $val;
+    }
+}
+
 sub pp_refgen {
     my $self = shift;	
     my($op, $cx) = @_;
     my $kid = $op->first;
     if ($kid->name eq "null") {
 	my $anoncode = $kid = $kid->first;
+
+	# Perl no longer generates this, but XS modules might:
 	if ($anoncode->name eq "anonconst") {
 	    $anoncode = $anoncode->first->first->sibling;
 	}
+
+	# Same as with `anonconst`:
 	if ($anoncode->name eq "anoncode"
 	 or !null($anoncode = $kid->sibling) and
 		 $anoncode->name eq "anoncode") {
             return $self->e_anoncode({ code => $self->padval($anoncode->targ) });
+
+	# Perl still generates this:
 	} elsif ($kid->name eq "pushmark") {
             my $sib_name = $kid->sibling->name;
             if ($sib_name eq 'entersub') {
@@ -2806,6 +2845,18 @@ sub e_anoncode {
     return $self->keyword("sub") . " $text";
 }
 
+sub pp_anoncode {
+    my ($self, $anoncode) = @_;
+
+    return $self->e_anoncode( { code => $self->padval($anoncode->targ) } );
+}
+
+sub pp_anonconst {
+    my ($self, $anonconst) = @_;
+
+    return $self->pp_anoncode( $anonconst->first->first->sibling );
+}
+
 sub pp_srefgen { pp_refgen(@_) }
 
 sub pp_readline {
@@ -3093,6 +3144,18 @@ sub pp_isa { binop(@_, "isa", 15) }
 sub pp_sassign { binop(@_, "=", 7, SWAP_CHILDREN) }
 sub pp_aassign { binop(@_, "=", 7, SWAP_CHILDREN | LIST_CONTEXT) }
 
+sub pp_padsv_store {
+    my $self = shift;
+    my ($op, $cx, $forbid_parens, @args) = @_;
+    my $targ = $op->targ;
+    my $var = $self->maybe_my($op, $cx, $self->padname($targ),
+                           $self->padname_sv($targ),
+                           $forbid_parens);
+
+    my $val = $self->deparse($op->first, 7);
+    return $self->maybe_parens("$var = $val", $cx, 7);
+}
+
 sub pp_smartmatch {
     my ($self, $op, $cx) = @_;
     if (($op->flags & OPf_SPECIAL) && $self->{expand} < 2) {
@@ -3694,7 +3757,7 @@ sub maybe_var_attr {
             return unless $loppriv & OPpLVAL_INTRO;
 
             my $padname = $self->padname_sv($lop->targ);
-            my $thisclass = ($padname->FLAGS & SVpad_TYPED)
+            my $thisclass = ($padname->FLAGS & PADNAMEf_TYPED)
                                 ? $padname->SvSTASH->NAME : 'main';
 
             # all pad vars must be in the same class
@@ -3813,9 +3876,12 @@ sub pp_list {
 		$local = "my";
 	    }
 	    my $padname = $self->padname_sv($lop->targ);
-	    if ($padname->FLAGS & SVpad_TYPED) {
+	    if ($padname->FLAGS & PADNAMEf_TYPED) {
 		$newtype = $padname->SvSTASH->NAME;
 	    }
+	} elsif ($lopname eq 'padsv_store') {
+            # don't interpret as my (list) if it has an implicit assign
+            $local = "";
 	} elsif ($lopname =~ /^(?:gv|rv2)([ash])v$/
 			&& $loppriv & OPpOUR_INTRO
 		or $lopname eq "null" && class($lop) eq 'UNOP'
@@ -4280,6 +4346,17 @@ sub pp_gv {
     return $self->maybe_qualify("", $self->gv_name($gv));
 }
 
+sub pp_aelemfastlex_store {
+    my $self = shift;
+    my($op, $cx) = @_;
+    my $name = $self->padname($op->targ);
+    $name =~ s/^@/\$/;
+    my $i = $op->private;
+    $i -= 256 if $i > 127;
+    my $val = $self->deparse($op->first, 7);
+    return $self->maybe_parens("${name}[$i] = $val", $cx, 7);
+}
+
 sub pp_aelemfast_lex {
     my $self = shift;
     my($op, $cx) = @_;
@@ -4977,78 +5054,92 @@ sub e_method {
 sub check_proto {
     my $self = shift;
     return "&" if $self->{'noproto'};
-    my($proto, @args) = @_;
-    my($arg, $real);
+    my ($proto, @args) = @_;
     my $doneok = 0;
     my @reals;
-    # An unbackslashed @ or % gobbles up the rest of the args
-    1 while $proto =~ s/(?<!\\)([@%])[^\]]+$/$1/;
-    $proto =~ s/^\s*//;
-    while ($proto) {
-	$proto =~ s/^(\\?[\$\@&%*_]|\\\[[\$\@&%*]+\]|;|)\s*//;
+    $proto =~ s/^\s+//;
+    while (length $proto) {
+        $proto =~ s/^(\\?[\$\@&%*]|\\\[[\$\@&%*]+\]|[_+;])\s*//
+            or return "&";  # malformed prototype
 	my $chr = $1;
-	if ($chr eq "") {
-	    return "&" if @args;
-	} elsif ($chr eq ";") {
+        if ($chr eq ";") {
 	    $doneok = 1;
-	} elsif ($chr eq "@" or $chr eq "%") {
+        } elsif ($chr eq '@' or $chr eq '%') {
+            # An unbackslashed @ or % gobbles up the rest of the args
 	    push @reals, map($self->deparse($_, 6), @args);
 	    @args = ();
+            $proto = '';
+        } elsif (!@args) {
+            last if $doneok;
+            return "&"; # too few args and no ';'
 	} else {
-	    $arg = shift @args;
-	    last unless $arg;
-	    if ($chr eq "\$" || $chr eq "_") {
+            my $arg = shift @args;
+            if ($chr eq '$' || $chr eq '_') {
 		if (want_scalar $arg) {
 		    push @reals, $self->deparse($arg, 6);
 		} else {
 		    return "&";
 		}
 	    } elsif ($chr eq "&") {
-		if ($arg->name =~ /^(s?refgen|undef)$/) {
+                if ($arg->name =~ /^(?:s?refgen|undef)\z/) {
 		    push @reals, $self->deparse($arg, 6);
 		} else {
 		    return "&";
 		}
 	    } elsif ($chr eq "*") {
-		if ($arg->name =~ /^s?refgen$/
+                if ($arg->name =~ /^s?refgen\z/
 		    and $arg->first->first->name eq "rv2gv")
-		  {
-		      $real = $arg->first->first; # skip refgen, null
-		      if ($real->first->name eq "gv") {
-			  push @reals, $self->deparse($real, 6);
-		      } else {
-			  push @reals, $self->deparse($real->first, 6);
-		      }
-		  } else {
-		      return "&";
-		  }
+                {
+                    my $real = $arg->first->first; # skip refgen, null
+                    if ($real->first->name eq "gv") {
+                        push @reals, $self->deparse($real, 6);
+                    } else {
+                        push @reals, $self->deparse($real->first, 6);
+                    }
+                } else {
+                    return "&";
+                }
+            } elsif ($chr eq "+") {
+                my $real;
+                if ($arg->name =~ /^s?refgen\z/ and
+                    !null($real = $arg->first) and
+                    !null($real->first) and
+                    $real->first->name =~ /^(?:rv2|pad)[ah]v\z/)
+                {
+                    push @reals, $self->deparse($real, 6);
+                } elsif (want_scalar $arg) {
+                    push @reals, $self->deparse($arg, 6);
+                } else {
+                    return "&";
+                }
 	    } elsif (substr($chr, 0, 1) eq "\\") {
 		$chr =~ tr/\\[]//d;
-		if ($arg->name =~ /^s?refgen$/ and
+                my $real;
+                if ($arg->name =~ /^s?refgen\z/ and
 		    !null($real = $arg->first) and
 		    ($chr =~ /\$/ && is_scalar($real->first)
 		     or ($chr =~ /@/
-			 && class($real->first->sibling) ne 'NULL'
-			 && $real->first->sibling->name
-			 =~ /^(rv2|pad)av$/)
+                         && !null($real->first)
+                         && $real->first->name =~ /^(?:rv2|pad)av\z/)
 		     or ($chr =~ /%/
-			 && class($real->first->sibling) ne 'NULL'
-			 && $real->first->sibling->name
-			 =~ /^(rv2|pad)hv$/)
+                         && !null($real->first)
+                         && $real->first->name =~ /^(?:rv2|pad)hv\z/)
 		     #or ($chr =~ /&/ # This doesn't work
 		     #   && $real->first->name eq "rv2cv")
 		     or ($chr =~ /\*/
 			 && $real->first->name eq "rv2gv")))
-		  {
-		      push @reals, $self->deparse($real, 6);
-		  } else {
-		      return "&";
-		  }
-	    }
-       }
+                {
+                    push @reals, $self->deparse($real, 6);
+                } else {
+                    return "&";
+                }
+            } else {
+                # should not happen
+                return "&";
+            }
+        }
     }
-    return "&" if $proto and !$doneok; # too few args and no ';'
-    return "&" if @args;               # too many args
+    return "&" if @args; # too many args
     return ("", join ", ", @reals);
 }
 
@@ -5093,7 +5184,7 @@ sub retscalar {
                  |msgrcv|semop|semget|semctl|hintseval|shostent|snetent
                  |sprotoent|sservent|ehostent|enetent|eprotoent|eservent
                  |spwent|epwent|sgrent|egrent|getlogin|syscall|lock|runcv
-                 |fc)\z/x
+                 |fc|padsv_store)\z/x
 }
 
 sub pp_entersub {
@@ -5104,9 +5195,7 @@ sub pp_entersub {
     my $prefix = "";
     my $amper = "";
     my($kid, @exprs);
-    if ($op->flags & OPf_SPECIAL && !($op->flags & OPf_MOD)) {
-	$prefix = "do ";
-    } elsif ($op->private & OPpENTERSUB_AMPER) {
+    if ($op->private & OPpENTERSUB_AMPER) {
 	$amper = "&";
     }
     $kid = $op->first;
@@ -5230,19 +5319,23 @@ sub pp_entersub {
 	# it back.
 	$kid =~ s/^CORE::GLOBAL:://;
 
-	my $dproto = defined($proto) ? $proto : "undefined";
-	my $scalar_proto = $dproto =~ /^;*(?:[\$*_+]|\\.|\\\[[^]]\])\z/;
         if (!$declared) {
 	    return "$kid(" . $args . ")";
-	} elsif ($dproto =~ /^\s*\z/) {
+        }
+
+        my $dproto = defined($proto) ? $proto : "undefined";
+        if ($dproto =~ /^\s*\z/) {
 	    return $kid;
-	} elsif ($scalar_proto and is_scalar($exprs[0])) {
+        }
+
+        my $scalar_proto = $dproto =~ /^ \s* (?: ;\s* )* (?: [\$*_+] |\\ \s* (?: [\$\@%&*] | \[ [^\]]+ \] ) ) \s* \z/x;
+        if ($scalar_proto and !@exprs || is_scalar($exprs[0])) {
 	    # is_scalar is an excessively conservative test here:
 	    # really, we should be comparing to the precedence of the
 	    # top operator of $exprs[0] (ala unop()), but that would
 	    # take some major code restructuring to do right.
 	    return $self->maybe_parens_func($kid, $args, $cx, 16);
-	} elsif (not $scalar_proto and defined($proto) || $simple) { #'
+        } elsif (not $scalar_proto and defined($proto) || $simple) {
 	    return $self->maybe_parens_func($kid, $args, $cx, 5);
 	} else {
 	    return "$kid(" . $args . ")";
@@ -6317,9 +6410,7 @@ sub matchop {
 					     ->sibling #   entersub
 					     ->first   #     ex-list
 					     ->first   #       pushmark
-					     ->sibling #       srefgen
-					     ->first   #         ex-list
-					     ->first   #           anoncode
+					     ->sibling #       anoncode
 					     ->targ
 				     )
 				   : undef);
@@ -6660,15 +6751,16 @@ sub builtin1 {
     return "builtin::$name($arg)";
 }
 
-sub pp_is_bool  { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "is_bool"); }
-sub pp_is_weak  { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "is_weak"); }
-sub pp_weaken   { builtin1(@_, "weaken"); }
-sub pp_unweaken { builtin1(@_, "unweaken"); }
-sub pp_blessed  { builtin1(@_, "blessed"); }
-sub pp_refaddr  { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "refaddr"); }
-sub pp_reftype  { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "reftype"); }
-sub pp_ceil     { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "ceil"); }
-sub pp_floor    { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "floor"); }
+sub pp_is_bool    { builtin1(@_, "is_bool"); }
+sub pp_is_weak    { builtin1(@_, "is_weak"); }
+sub pp_weaken     { builtin1(@_, "weaken"); }
+sub pp_unweaken   { builtin1(@_, "unweaken"); }
+sub pp_blessed    { builtin1(@_, "blessed"); }
+sub pp_refaddr    { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "refaddr"); }
+sub pp_reftype    { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "reftype"); }
+sub pp_ceil       { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "ceil"); }
+sub pp_floor      { $_[0]->maybe_targmy(@_[1,2], \&builtin1, "floor"); }
+sub pp_is_tainted { builtin1(@_, "is_tainted"); }
 
 1;
 __END__
Index: gnu/usr.bin/perl/lib/B/Deparse.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/B/Deparse.t,v
diff -u -p -a -u -p -r1.6 Deparse.t
--- gnu/usr.bin/perl/lib/B/Deparse.t	15 Feb 2023 01:36:33 -0000	1.6
+++ gnu/usr.bin/perl/lib/B/Deparse.t	21 Feb 2024 15:47:02 -0000
@@ -307,14 +307,19 @@ x(); z()
 .
 EOCODH
 
-is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path, '-T' ],
+SKIP: {
+    skip("Your perl was built without taint support", 1)
+        unless $Config::Config{taint_support};
+
+    is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path, '-T' ],
            prog => "format =\n\@\n\$;\n.\n"),
-   <<'EOCODM', '$; on format line';
-format STDOUT =
-@
-$;
-.
-EOCODM
+        <<~'EOCODM', '$; on format line';
+        format STDOUT =
+        @
+        $;
+        .
+        EOCODM
+}
 
 is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse,-l', $path ],
            prog => "format =\n\@\n\$foo\n.\n"),
@@ -537,10 +542,14 @@ is runperl(stderr => 1, switches => [ '-
    "sub BEGIN {\n    \$main::{'f'} = \\!0;\n}\n",
    '&PL_sv_yes constant (used to croak)';
 
-is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path, '-T' ],
+SKIP: {
+    skip("Your perl was built without taint support", 1)
+        unless $Config::Config{taint_support};
+    is runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path, '-T' ],
            prog => '$x =~ (1?/$a/:0)'),
-  '$x =~ ($_ =~ /$a/);'."\n",
-  '$foo =~ <branch-folded match> under taint mode';
+        '$x =~ ($_ =~ /$a/);'."\n",
+        '$foo =~ <branch-folded match> under taint mode';
+}
 
 unlike runperl(stderr => 1, switches => [ '-MO=-qq,Deparse', $path, '-w' ],
                prog => 'BEGIN { undef &foo }'),
@@ -877,6 +886,13 @@ my $f = sub {
     +{[]};
 } ;
 ####
+# anonconst
+# CONTEXT no warnings 'experimental::const_attr';
+my $f = sub : const {
+    123;
+}
+;
+####
 # bug #43010
 '!@$%'->();
 ####
@@ -1054,7 +1070,7 @@ my $c = [];
 my $d = \[];
 ####
 # SKIP ?$] < 5.010 && "smartmatch and given/when not implemented on this Perl version"
-# CONTEXT use feature ':5.10'; no warnings 'experimental::smartmatch';
+# CONTEXT use feature ':5.10'; no warnings 'deprecated';
 # implicit smartmatch in given/when
 given ('foo') {
     when ('bar') { continue; }
@@ -1617,7 +1633,7 @@ my @a;
 $a[0] = 1;
 ####
 # feature features without feature
-# CONTEXT no warnings 'experimental::smartmatch';
+# CONTEXT no warnings 'deprecated';
 CORE::state $x;
 CORE::say $x;
 CORE::given ($x) {
@@ -1633,7 +1649,7 @@ CORE::evalbytes '';
 () = CORE::fc $x;
 ####
 # feature features when feature has been disabled by use VERSION
-# CONTEXT no warnings 'experimental::smartmatch';
+# CONTEXT no warnings 'deprecated';
 use feature (sprintf(":%vd", $^V));
 use 1;
 CORE::say $_;
@@ -1663,7 +1679,7 @@ CORE::evalbytes '';
 () = CORE::__SUB__;
 ####
 # (the above test with CONTEXT, and the output is equivalent but different)
-# CONTEXT use feature ':5.10'; no warnings 'experimental::smartmatch';
+# CONTEXT use feature ':5.10'; no warnings 'deprecated';
 # feature features when feature has been disabled by use VERSION
 use feature (sprintf(":%vd", $^V));
 use 1;
@@ -1697,7 +1713,7 @@ CORE::evalbytes '';
 ####
 # SKIP ?$] < 5.017004 && "lexical subs not implemented on this Perl version"
 # lexical subroutines and keywords of the same name
-# CONTEXT use feature 'lexical_subs', 'switch'; no warnings 'experimental';
+# CONTEXT use feature 'lexical_subs', 'switch'; no warnings 'experimental'; no warnings 'deprecated';
 my sub default;
 my sub else;
 my sub elsif;
@@ -2101,7 +2117,6 @@ no warnings "experimental::lexical_subs"
 my sub f {}
 print f();
 >>>>
-BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x55\x55\x55\x55"}
 my sub f {
     
 }
@@ -2114,7 +2129,6 @@ no warnings 'experimental::lexical_subs'
 state sub f {}
 print f();
 >>>>
-BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x54\x55\x55\x55\x55\x55\x55\x55"}
 state sub f {
     
 }
@@ -2129,7 +2143,7 @@ print f();
     {
       foo();
       my sub b;
-      b ;
+      b;
       main::b();
       &main::b;
       &main::b();
@@ -2145,7 +2159,7 @@ print f();
 ();
 state sub sb2;
 sub sb2 {
-    sb2 ;
+    sb2;
 }
 ####
 # lexical subroutine with outer declaration and inner definition
@@ -2231,6 +2245,14 @@ optoptwack($a = $b);
 wackbrack($a = $b);
 optwackbrack($a = $b);
 optoptwackbrack($a = $b);
+optbar;
+optoptbar;
+optplus;
+optoptplus;
+optwack;
+optoptwack;
+optwackbrack;
+optoptwackbrack;
 >>>>
 package prototest;
 dollar($a < $b);
@@ -2242,15 +2264,91 @@ optoptdollar($a < $b);
 bar($a < $b);
 optbar($a < $b);
 optoptbar($a < $b);
-&plus($a < $b);
-&optplus($a < $b);
-&optoptplus($a < $b);
+plus($a < $b);
+optplus($a < $b);
+optoptplus($a < $b);
 &wack(\($a = $b));
 &optwack(\($a = $b));
 &optoptwack(\($a = $b));
 &wackbrack(\($a = $b));
 &optwackbrack(\($a = $b));
 &optoptwackbrack(\($a = $b));
+optbar;
+optoptbar;
+optplus;
+optoptplus;
+optwack;
+optoptwack;
+optwackbrack;
+optoptwackbrack;
+####
+# enreferencing prototypes: @
+# CONTEXT sub wackat(\@) {} sub optwackat(;\@) {} sub wackbrackat(\[@]) {} sub optwackbrackat(;\[@]) {}
+wackat(my @a0);
+wackat(@a0);
+wackat(@ARGV);
+wackat(@{['t'];});
+optwackat;
+optwackat(my @a1);
+optwackat(@a1);
+optwackat(@ARGV);
+optwackat(@{['t'];});
+wackbrackat(my @a2);
+wackbrackat(@a2);
+wackbrackat(@ARGV);
+wackbrackat(@{['t'];});
+optwackbrackat;
+optwackbrackat(my @a3);
+optwackbrackat(@a3);
+optwackbrackat(@ARGV);
+optwackbrackat(@{['t'];});
+####
+# enreferencing prototypes: %
+# CONTEXT sub wackperc(\%) {} sub optwackperc(;\%) {} sub wackbrackperc(\[%]) {} sub optwackbrackperc(;\[%]) {}
+wackperc(my %a0);
+wackperc(%a0);
+wackperc(%ARGV);
+wackperc(%{+{'t', 1};});
+optwackperc;
+optwackperc(my %a1);
+optwackperc(%a1);
+optwackperc(%ARGV);
+optwackperc(%{+{'t', 1};});
+wackbrackperc(my %a2);
+wackbrackperc(%a2);
+wackbrackperc(%ARGV);
+wackbrackperc(%{+{'t', 1};});
+optwackbrackperc;
+optwackbrackperc(my %a3);
+optwackbrackperc(%a3);
+optwackbrackperc(%ARGV);
+optwackbrackperc(%{+{'t', 1};});
+####
+# enreferencing prototypes: +
+# CONTEXT sub plus(+) {} sub optplus(;+) {}
+plus('hi');
+plus(my @a0);
+plus(my %h0);
+plus(\@a0);
+plus(\%h0);
+optplus;
+optplus('hi');
+optplus(my @a1);
+optplus(my %h1);
+optplus(\@a1);
+optplus(\%h1);
+>>>>
+plus('hi');
+plus(my @a0);
+plus(my %h0);
+plus(@a0);
+plus(%h0);
+optplus;
+optplus('hi');
+optplus(my @a1);
+optplus(my %h1);
+optplus(@a1);
+optplus(%h1);
 ####
 # ensure aelemfast works in the range -128..127 and that there's no
 # funky edge cases
@@ -2747,6 +2845,22 @@ sub ($a, $=) {
 }
 ;
 ####
+# defined-or default
+no warnings;
+use feature 'signatures';
+sub ($a //= 'default') {
+    $a;
+}
+;
+####
+# logical-or default
+no warnings;
+use feature 'signatures';
+sub ($a ||= 'default') {
+    $a;
+}
+;
+####
 # padrange op within pattern code blocks
 /(?{ my($x, $y) = (); })/;
 my $a;
@@ -3221,6 +3335,7 @@ $x = builtin::refaddr(undef);
 $x = builtin::reftype(undef);
 $x = builtin::ceil($x);
 $x = builtin::floor($x);
+$x = builtin::is_tainted($x);
 ####
 # boolean true preserved
 my $x = !0;
@@ -3230,3 +3345,10 @@ my $x = !1;
 ####
 # const NV: NV-ness preserved
 my(@x) = (-2.0, -1.0, -0.0, 0.0, 1.0, 2.0);
+####
+# PADSV_STORE optimised my should be handled
+() = (my $s = 1);
+####
+# PADSV_STORE optimised state should be handled
+# CONTEXT use feature "state";
+() = (state $s = 1);
Index: gnu/usr.bin/perl/lib/B/Op_private.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/B/Op_private.pm,v
diff -u -p -a -u -p -r1.12 Op_private.pm
--- gnu/usr.bin/perl/lib/B/Op_private.pm	23 Dec 2023 21:02:21 -0000	1.12
+++ gnu/usr.bin/perl/lib/B/Op_private.pm	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
 #
 #    lib/B/Op_private.pm
 #
@@ -118,7 +118,7 @@ package B::Op_private;
 our %bits;
 
 
-our $VERSION = "5.036003";
+our $VERSION = "5.038002";
 
 $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
 $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
@@ -134,7 +134,7 @@ $bits{$_}{6} = 'OPpINDEX_BOOLNEG' for qw
 $bits{$_}{1} = 'OPpITER_REVERSED' for qw(enteriter iter);
 $bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop);
 $bits{$_}{6} = 'OPpLVAL_DEFER' for qw(aelem helem multideref);
-$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split);
+$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete emptyavhv enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv padsv_store pushmark refassign rv2av rv2gv rv2hv rv2sv split undef);
 $bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign);
 $bits{$_}{3} = 'OPpLVREF_ITER' for qw(lvref refassign);
 $bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr values vec);
@@ -145,11 +145,11 @@ $bits{$_}{4} = 'OPpOPEN_IN_RAW' for qw(b
 $bits{$_}{7} = 'OPpOPEN_OUT_CRLF' for qw(backtick open);
 $bits{$_}{6} = 'OPpOPEN_OUT_RAW' for qw(backtick open);
 $bits{$_}{6} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv split);
-$bits{$_}{6} = 'OPpPAD_STATE' for qw(lvavref lvref padav padhv padsv pushmark refassign);
+$bits{$_}{6} = 'OPpPAD_STATE' for qw(emptyavhv lvavref lvref padav padhv padsv padsv_store pushmark refassign undef);
 $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
 $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv leavewrite);
 $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
-$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 ceil chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock floor getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int is_bool is_weak kill left_shift length link log mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand refaddr reftype rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid);
+$bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 ceil chdir chmod chomp chown chr chroot concat cos crypt divide emptyavhv exec exp flock floor getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand refaddr reftype rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time undef unlink unshift utime wait waitpid);
 $bits{$_}{0} = 'OPpTRANS_CAN_FORCE_UTF8' for qw(trans transr);
 $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
 $bits{$_}{7} = 'OPpTRANS_DELETE' for qw(trans transr);
@@ -254,6 +254,7 @@ $bits{aeach}{0} = $bf[0];
 @{$bits{aelem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
 @{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
 @{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
+@{$bits{aelemfastlex_store}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
 $bits{akeys}{0} = $bf[0];
 $bits{alarm}{0} = $bf[0];
 $bits{and}{0} = $bf[0];
@@ -262,7 +263,7 @@ $bits{anonconst}{0} = $bf[0];
 @{$bits{anonhash}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 @{$bits{anonlist}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 $bits{argcheck}{0} = $bf[0];
-$bits{argdefelem}{0} = $bf[0];
+@{$bits{argdefelem}}{7,6,0} = ('OPpARG_IF_UNDEF', 'OPpARG_IF_FALSE', $bf[0]);
 @{$bits{argelem}}{2,1,0} = ($bf[7], $bf[7], $bf[0]);
 @{$bits{atan2}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 $bits{av2arylen}{0} = $bf[0];
@@ -305,7 +306,8 @@ $bits{dor}{0} = $bf[0];
 $bits{dorassign}{0} = $bf[0];
 $bits{dump}{0} = $bf[0];
 $bits{each}{0} = $bf[0];
-@{$bits{entereval}}{5,4,3,2,1,0} = ('OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]);
+@{$bits{emptyavhv}}{5,3,2,1,0} = ('OPpEMPTYAVHV_IS_HV', $bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{entereval}}{6,5,4,3,2,1,0} = ('OPpEVAL_EVALSV', 'OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]);
 $bits{entergiven}{0} = $bf[0];
 $bits{enteriter}{3} = 'OPpITER_DEF';
 @{$bits{entersub}}{5,4,0} = ($bf[8], $bf[8], 'OPpENTERSUB_INARGS');
@@ -382,6 +384,7 @@ $bits{grepwhile}{0} = $bf[0];
 @{$bits{gt}}{1,0} = ($bf[1], $bf[1]);
 $bits{gv}{5} = 'OPpEARLY_CV';
 @{$bits{helem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
+@{$bits{helemexistsor}}{7,0} = ('OPpHELEMEXISTSOR_DELETE', $bf[0]);
 $bits{hex}{0} = $bf[0];
 @{$bits{i_add}}{1,0} = ($bf[1], $bf[1]);
 @{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]);
@@ -401,9 +404,11 @@ $bits{i_predec}{0} = $bf[0];
 $bits{i_preinc}{0} = $bf[0];
 @{$bits{i_subtract}}{1,0} = ($bf[1], $bf[1]);
 @{$bits{index}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{initfield}}{2,1,0} = ('OPpINITFIELD_HV', 'OPpINITFIELD_AV', $bf[0]);
 $bits{int}{0} = $bf[0];
 @{$bits{ioctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 $bits{is_bool}{0} = $bf[0];
+$bits{is_tainted}{0} = $bf[0];
 $bits{is_weak}{0} = $bf[0];
 @{$bits{isa}}{1,0} = ($bf[1], $bf[1]);
 @{$bits{join}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@@ -439,6 +444,7 @@ $bits{method_named}{0} = $bf[0];
 $bits{method_redir}{0} = $bf[0];
 $bits{method_redir_super}{0} = $bf[0];
 $bits{method_super}{0} = $bf[0];
+@{$bits{methstart}}{7,0} = ('OPpINITFIELDS', $bf[0]);
 @{$bits{mkdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 @{$bits{modulo}}{1,0} = ($bf[1], $bf[1]);
 @{$bits{msgctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@@ -464,6 +470,7 @@ $bits{ord}{0} = $bf[0];
 $bits{padhv}{0} = 'OPpPADHV_ISKEYS';
 @{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
 @{$bits{padsv}}{5,4} = ($bf[8], $bf[8]);
+$bits{padsv_store}{0} = $bf[0];
 @{$bits{pipe_op}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 $bits{pop}{0} = $bf[0];
 $bits{pos}{0} = $bf[0];
@@ -571,7 +578,7 @@ $bits{tied}{0} = $bf[0];
 $bits{uc}{0} = $bf[0];
 $bits{ucfirst}{0} = $bf[0];
 @{$bits{umask}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
-$bits{undef}{0} = $bf[0];
+@{$bits{undef}}{5,0} = ('OPpUNDEF_KEEP_PV', $bf[0]);
 @{$bits{unlink}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 @{$bits{unpack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
 @{$bits{unshift}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@@ -596,6 +603,8 @@ our %defines = (
     OPpARGELEM_HV            =>   4,
     OPpARGELEM_MASK          =>   6,
     OPpARGELEM_SV            =>   0,
+    OPpARG_IF_FALSE          =>  64,
+    OPpARG_IF_UNDEF          => 128,
     OPpASSIGN_BACKWARDS      =>  64,
     OPpASSIGN_COMMON_AGG     =>  16,
     OPpASSIGN_COMMON_RC1     =>  32,
@@ -620,6 +629,7 @@ our %defines = (
     OPpDEREF_SV              =>  48,
     OPpDONT_INIT_GV          =>   4,
     OPpEARLY_CV              =>  32,
+    OPpEMPTYAVHV_IS_HV       =>  32,
     OPpENTERSUB_AMPER        =>   8,
     OPpENTERSUB_DB           =>  64,
     OPpENTERSUB_HASTARG      =>   4,
@@ -627,6 +637,7 @@ our %defines = (
     OPpENTERSUB_NOPAREN      => 128,
     OPpEVAL_BYTES            =>   8,
     OPpEVAL_COPHH            =>  16,
+    OPpEVAL_EVALSV           =>  64,
     OPpEVAL_HAS_HH           =>   2,
     OPpEVAL_RE_REPARSING     =>  32,
     OPpEVAL_UNICODE          =>   4,
@@ -636,9 +647,13 @@ our %defines = (
     OPpFT_AFTER_t            =>  16,
     OPpFT_STACKED            =>   4,
     OPpFT_STACKING           =>   8,
+    OPpHELEMEXISTSOR_DELETE  => 128,
     OPpHINT_STRICT_REFS      =>   2,
     OPpHUSH_VMSISH           =>  32,
     OPpINDEX_BOOLNEG         =>  64,
+    OPpINITFIELDS            => 128,
+    OPpINITFIELD_AV          =>   2,
+    OPpINITFIELD_HV          =>   4,
     OPpITER_DEF              =>   8,
     OPpITER_REVERSED         =>   2,
     OPpKVSLICE               =>  32,
@@ -696,6 +711,7 @@ our %defines = (
     OPpTRANS_SQUASH          =>   8,
     OPpTRANS_USE_SVOP        =>   2,
     OPpTRUEBOOL              =>  32,
+    OPpUNDEF_KEEP_PV         =>  32,
     OPpUSEINT                =>   4,
 );
 
@@ -704,6 +720,8 @@ our %labels = (
     OPpARGELEM_AV            => 'AV',
     OPpARGELEM_HV            => 'HV',
     OPpARGELEM_SV            => 'SV',
+    OPpARG_IF_FALSE          => 'IF_FALSE',
+    OPpARG_IF_UNDEF          => 'IF_UNDEF',
     OPpASSIGN_BACKWARDS      => 'BKWARD',
     OPpASSIGN_COMMON_AGG     => 'COM_AGG',
     OPpASSIGN_COMMON_RC1     => 'COM_RC1',
@@ -726,6 +744,7 @@ our %labels = (
     OPpDEREF_SV              => 'DREFSV',
     OPpDONT_INIT_GV          => 'NOINIT',
     OPpEARLY_CV              => 'EARLYCV',
+    OPpEMPTYAVHV_IS_HV       => 'ANONHASH',
     OPpENTERSUB_AMPER        => 'AMPER',
     OPpENTERSUB_DB           => 'DBG',
     OPpENTERSUB_HASTARG      => 'TARG',
@@ -733,6 +752,7 @@ our %labels = (
     OPpENTERSUB_NOPAREN      => 'NO()',
     OPpEVAL_BYTES            => 'BYTES',
     OPpEVAL_COPHH            => 'COPHH',
+    OPpEVAL_EVALSV           => 'EVALSV',
     OPpEVAL_HAS_HH           => 'HAS_HH',
     OPpEVAL_RE_REPARSING     => 'REPARSE',
     OPpEVAL_UNICODE          => 'UNI',
@@ -742,9 +762,13 @@ our %labels = (
     OPpFT_AFTER_t            => 'FTAFTERt',
     OPpFT_STACKED            => 'FTSTACKED',
     OPpFT_STACKING           => 'FTSTACKING',
+    OPpHELEMEXISTSOR_DELETE  => 'DELETE',
     OPpHINT_STRICT_REFS      => 'STRICT',
     OPpHUSH_VMSISH           => 'HUSH',
     OPpINDEX_BOOLNEG         => 'NEG',
+    OPpINITFIELDS            => 'INITFIELDS',
+    OPpINITFIELD_AV          => 'INITFIELD_AV',
+    OPpINITFIELD_HV          => 'INITFIELD_HV',
     OPpITER_DEF              => 'DEF',
     OPpITER_REVERSED         => 'REVERSED',
     OPpKVSLICE               => 'KVSLICE',
@@ -799,12 +823,14 @@ our %labels = (
     OPpTRANS_SQUASH          => 'SQUASH',
     OPpTRANS_USE_SVOP        => 'USE_SVOP',
     OPpTRUEBOOL              => 'BOOL',
+    OPpUNDEF_KEEP_PV         => 'KEEP_PV',
     OPpUSEINT                => 'USEINT',
 );
 
 
 our %ops_using = (
     OPpALLOW_FAKE            => [qw(rv2gv)],
+    OPpARG_IF_FALSE          => [qw(argdefelem)],
     OPpASSIGN_BACKWARDS      => [qw(sassign)],
     OPpASSIGN_COMMON_AGG     => [qw(aassign)],
     OPpCONCAT_NESTED         => [qw(concat)],
@@ -812,6 +838,7 @@ our %ops_using = (
     OPpCOREARGS_DEREF1       => [qw(coreargs)],
     OPpDEFER_FINALLY         => [qw(pushdefer)],
     OPpEARLY_CV              => [qw(gv)],
+    OPpEMPTYAVHV_IS_HV       => [qw(emptyavhv)],
     OPpENTERSUB_AMPER        => [qw(entersub rv2cv)],
     OPpENTERSUB_INARGS       => [qw(entersub)],
     OPpENTERSUB_NOPAREN      => [qw(rv2cv)],
@@ -820,16 +847,19 @@ our %ops_using = (
     OPpFLIP_LINENUM          => [qw(flip flop)],
     OPpFT_ACCESS             => [qw(fteexec fteread ftewrite ftrexec ftrread ftrwrite)],
     OPpFT_AFTER_t            => [qw(ftatime ftbinary ftblk ftchr ftctime ftdir fteexec fteowned fteread ftewrite ftfile ftis ftlink ftmtime ftpipe ftrexec ftrowned ftrread ftrwrite ftsgid ftsize ftsock ftsuid ftsvtx fttext fttty ftzero)],
+    OPpHELEMEXISTSOR_DELETE  => [qw(helemexistsor)],
     OPpHINT_STRICT_REFS      => [qw(entersub multideref rv2av rv2cv rv2gv rv2hv rv2sv)],
     OPpHUSH_VMSISH           => [qw(dbstate nextstate)],
     OPpINDEX_BOOLNEG         => [qw(index rindex)],
+    OPpINITFIELDS            => [qw(methstart)],
+    OPpINITFIELD_AV          => [qw(initfield)],
     OPpITER_DEF              => [qw(enteriter)],
     OPpITER_REVERSED         => [qw(enteriter iter)],
     OPpKVSLICE               => [qw(delete)],
     OPpLIST_GUESSED          => [qw(list)],
     OPpLVALUE                => [qw(leave leaveloop)],
     OPpLVAL_DEFER            => [qw(aelem helem multideref)],
-    OPpLVAL_INTRO            => [qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split)],
+    OPpLVAL_INTRO            => [qw(aelem aslice cond_expr delete emptyavhv enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multiconcat multideref padav padhv padrange padsv padsv_store pushmark refassign rv2av rv2gv rv2hv rv2sv split undef)],
     OPpLVREF_ELEM            => [qw(lvref refassign)],
     OPpMAYBE_LVSUB           => [qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr values vec)],
     OPpMAYBE_TRUEBOOL        => [qw(blessed padhv ref rv2hv)],
@@ -839,7 +869,7 @@ our %ops_using = (
     OPpOPEN_IN_CRLF          => [qw(backtick open)],
     OPpOUR_INTRO             => [qw(enteriter gvsv rv2av rv2hv rv2sv split)],
     OPpPADHV_ISKEYS          => [qw(padhv)],
-    OPpPAD_STATE             => [qw(lvavref lvref padav padhv padsv pushmark refassign)],
+    OPpPAD_STATE             => [qw(emptyavhv lvavref lvref padav padhv padsv padsv_store pushmark refassign undef)],
     OPpPV_IS_UTF8            => [qw(dump goto last next redo)],
     OPpREFCOUNTED            => [qw(leave leaveeval leavesub leavesublv leavewrite)],
     OPpREPEAT_DOLIST         => [qw(repeat)],
@@ -849,12 +879,14 @@ our %ops_using = (
     OPpSORT_DESCEND          => [qw(sort)],
     OPpSPLIT_ASSIGN          => [qw(split)],
     OPpSUBSTR_REPL_FIRST     => [qw(substr)],
-    OPpTARGET_MY             => [qw(abs add atan2 ceil chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock floor getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int is_bool is_weak kill left_shift length link log mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand refaddr reftype rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid)],
+    OPpTARGET_MY             => [qw(abs add atan2 ceil chdir chmod chomp chown chr chroot concat cos crypt divide emptyavhv exec exp flock floor getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiconcat multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand refaddr reftype rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time undef unlink unshift utime wait waitpid)],
     OPpTRANS_CAN_FORCE_UTF8  => [qw(trans transr)],
     OPpTRUEBOOL              => [qw(blessed grepwhile index length padav padhv pos ref rindex rv2av rv2hv subst)],
+    OPpUNDEF_KEEP_PV         => [qw(undef)],
     OPpUSEINT                => [qw(bit_and bit_or bit_xor complement left_shift nbit_and nbit_or nbit_xor ncomplement right_shift sbit_and sbit_or sbit_xor)],
 );
 
+$ops_using{OPpARG_IF_UNDEF} = $ops_using{OPpARG_IF_FALSE};
 $ops_using{OPpASSIGN_COMMON_RC1} = $ops_using{OPpASSIGN_COMMON_AGG};
 $ops_using{OPpASSIGN_COMMON_SCALAR} = $ops_using{OPpASSIGN_COMMON_AGG};
 $ops_using{OPpASSIGN_CV_TO_GV} = $ops_using{OPpASSIGN_BACKWARDS};
@@ -870,11 +902,13 @@ $ops_using{OPpDONT_INIT_GV} = $ops_using
 $ops_using{OPpENTERSUB_DB} = $ops_using{OPpENTERSUB_AMPER};
 $ops_using{OPpENTERSUB_HASTARG} = $ops_using{OPpENTERSUB_AMPER};
 $ops_using{OPpEVAL_COPHH} = $ops_using{OPpEVAL_BYTES};
+$ops_using{OPpEVAL_EVALSV} = $ops_using{OPpEVAL_BYTES};
 $ops_using{OPpEVAL_HAS_HH} = $ops_using{OPpEVAL_BYTES};
 $ops_using{OPpEVAL_RE_REPARSING} = $ops_using{OPpEVAL_BYTES};
 $ops_using{OPpEVAL_UNICODE} = $ops_using{OPpEVAL_BYTES};
 $ops_using{OPpFT_STACKED} = $ops_using{OPpFT_AFTER_t};
 $ops_using{OPpFT_STACKING} = $ops_using{OPpFT_AFTER_t};
+$ops_using{OPpINITFIELD_HV} = $ops_using{OPpINITFIELD_AV};
 $ops_using{OPpLVREF_ITER} = $ops_using{OPpLVREF_ELEM};
 $ops_using{OPpMAY_RETURN_CONSTANT} = $ops_using{OPpENTERSUB_NOPAREN};
 $ops_using{OPpMULTICONCAT_FAKE} = $ops_using{OPpMULTICONCAT_APPEND};
@@ -897,4 +931,4 @@ $ops_using{OPpTRANS_IDENTICAL} = $ops_us
 $ops_using{OPpTRANS_SQUASH} = $ops_using{OPpTRANS_CAN_FORCE_UTF8};
 $ops_using{OPpTRANS_USE_SVOP} = $ops_using{OPpTRANS_CAN_FORCE_UTF8};
 
-# ex: set ro:
+# ex: set ro ft=perl:
Index: gnu/usr.bin/perl/lib/Class/Struct.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Class/Struct.pm,v
diff -u -p -a -u -p -r1.9 Struct.pm
--- gnu/usr.bin/perl/lib/Class/Struct.pm	1 Mar 2021 23:19:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/Class/Struct.pm	21 Feb 2024 15:47:02 -0000
@@ -14,7 +14,7 @@ require Exporter;
 @ISA = qw(Exporter);
 @EXPORT = qw(struct);
 
-$VERSION = '0.66';
+$VERSION = '0.68';
 
 my $print = 0;
 sub printem {
@@ -84,7 +84,7 @@ sub struct {
     }
     else {
         $base_type = 'ARRAY';
-        $class = (caller())[0];
+        $class = caller();
         @decls = @_;
     }
 
@@ -275,24 +275,24 @@ Class::Struct - declare struct-like data
             # declare struct with four types of elements:
     struct( s => '$', a => '@', h => '%', c => 'My_Other_Class' );
 
-    $obj = new Myobj;               # constructor
+    my $obj = Myobj->new;               # constructor
 
                                     # scalar type accessor:
-    $element_value = $obj->s;           # element value
+    my $element_value = $obj->s;           # element value
     $obj->s('new value');               # assign to element
 
                                     # array type accessor:
-    $ary_ref = $obj->a;                 # reference to whole array
-    $ary_element_value = $obj->a(2);    # array element value
+    my $ary_ref = $obj->a;                 # reference to whole array
+    my $ary_element_value = $obj->a(2);    # array element value
     $obj->a(2, 'new value');            # assign to array element
 
                                     # hash type accessor:
-    $hash_ref = $obj->h;                # reference to whole hash
-    $hash_element_value = $obj->h('x'); # hash element value
+    my $hash_ref = $obj->h;                # reference to whole hash
+    my $hash_element_value = $obj->h('x'); # hash element value
     $obj->h('x', 'new value');          # assign to hash element
 
                                     # class type accessor:
-    $element_value = $obj->c;           # object reference
+    my $element_value = $obj->c;           # object reference
     $obj->c->method(...);               # call method of object
     $obj->c(new My_Other_Class);        # assign a new object
 
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/01error.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/01error.t,v
diff -u -p -a -u -p -r1.1.1.4 01error.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/01error.t	15 Feb 2023 01:33:05 -0000	1.1.1.4
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/01error.t	21 Feb 2024 15:47:02 -0000
@@ -1,16 +1,20 @@
 use strict;
 use warnings;
-use Carp;
 
 BEGIN {
     chdir 't' if -d 't';
     @INC = qw(. ../lib);
 }
 
-our $db ;
+use Carp;
+use File::Temp qw(tempdir);
 
+my $tempdir;
 {
-    chdir 't' if -d 't';
+    $tempdir = tempdir( "./DBMFXXXXXXXX", CLEANUP => 1);
+    push @INC, $tempdir;
+    chdir $tempdir or die "Failed to chdir to '$tempdir': $!";
+    @INC[-1] = "../../lib";
     if ( ! -d 'DBM_Filter')
     {
         mkdir 'DBM_Filter', 0777 
@@ -18,7 +22,9 @@ our $db ;
     }
 }
 
-END { rmdir 'DBM_Filter' }
+##### Keep above code identical to 02core.t #####
+
+our $db;
 
 sub writeFile
 {
@@ -34,7 +40,7 @@ sub runFilter
     my $name = shift ;
     my $filter = shift ;
 
-print "# runFilter $name\n" ;
+    #print "# runFilter $name\n" ;
     my $filename = "DBM_Filter/$name.pm";
     $filter = "package DBM_Filter::$name ;\n$filter"
         unless $filter =~ /^\s*package/ ;
@@ -61,12 +67,12 @@ BEGIN {
 };
 BEGIN { use_ok('Fcntl') };
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <errOp_dbmx*>;
+END { unlink <errOp_dbmx*>; }
 
 my %h1 = () ;
 my %h2 = () ;
-$db = tie(%h1, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+$db = tie(%h1, $db_file,'errOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db, "tied to $db_file ok";
 
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/02core.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/02core.t,v
diff -u -p -a -u -p -r1.1.1.4 02core.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/02core.t	15 Feb 2023 01:33:05 -0000	1.1.1.4
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/02core.t	21 Feb 2024 15:47:02 -0000
@@ -1,14 +1,20 @@
-
 use strict;
 use warnings;
-use Carp;
 
-my %files = ();
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = qw(. ../lib);
+}
 
-use lib '.';
+use Carp;
+use File::Temp qw(tempdir);
 
+my $tempdir;
 {
-    chdir 't' if -d 't';
+    $tempdir = tempdir( "./DBMFXXXXXXXX", CLEANUP => 1);
+    push @INC, $tempdir;
+    chdir $tempdir or die "Failed to chdir to '$tempdir': $!";
+    @INC[-1] = "../../lib";
     if ( ! -d 'DBM_Filter')
     {
         mkdir 'DBM_Filter', 0777 
@@ -16,7 +22,10 @@ use lib '.';
     }
 }
 
-END { rmdir 'DBM_Filter' }
+##### Keep above code identical to 01error.t #####
+
+our $db;
+my %files = ();
 
 sub writeFile
 {
@@ -28,8 +37,6 @@ sub writeFile
     $files{"DBM_Filter/$filename.pm"} ++;
 }
 
-END { unlink keys %files if keys %files }
-
 use Test::More;
 
 BEGIN { use_ok('DBM_Filter') };
@@ -46,8 +53,8 @@ BEGIN {
 };
 BEGIN { use_ok('Fcntl') };
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <coreOp_dbmx*>;
+END { unlink <coreOp_dbmx*>; }
 
 writeFile('times_ten', <<'EOM');
     package DBM_Filter::times_ten;
@@ -161,7 +168,7 @@ sub checkRaw
     my %h;
 
     # read the dbm file without the filter
-    ok tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640), "tied to $db_file";
+    ok tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640), "tied to $db_file";
 
     my %bad = ();
     while (my ($k, $v) = each %h) {
@@ -191,14 +198,14 @@ sub checkRaw
         eval { untie %h };
         is $@, '', "untie without inner references" ;
     }
-    unlink <Op_dbmx*>;
+    unlink <coreOp_dbmx*>;
 }
 
 {
     #diag "Test Set: Key and Value Filter, no stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -215,7 +222,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'A'	=> 'A',
@@ -228,7 +235,7 @@ sub checkRaw
     #diag "Test Set: Key Only Filter, no stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -245,7 +252,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'A'	=> '',
@@ -258,7 +265,7 @@ sub checkRaw
     #diag "Test Set: Value Only Filter, no stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -275,7 +282,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    ''	=> 'A',
@@ -288,7 +295,7 @@ sub checkRaw
     #diag "Test Set: Key and Value Filter, with stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -308,7 +315,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'AB'	=> 'AB',
@@ -321,7 +328,7 @@ sub checkRaw
     #diag "Test Set: Key Filter != Value Filter, with stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -347,7 +354,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'BD'	=> 'AC',
@@ -360,7 +367,7 @@ sub checkRaw
     #diag "Test Set: Key only Filter, with stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -380,7 +387,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'BD'	=> '',
@@ -393,7 +400,7 @@ sub checkRaw
     #diag "Test Set: Value only Filter, with stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -413,7 +420,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    ''	=> 'AC',
@@ -426,7 +433,7 @@ sub checkRaw
     #diag "Test Set: Combination Key/Value + Key Filter != Value Filter, with stacking, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -449,7 +456,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'AD'	=> 'AC',
@@ -462,7 +469,7 @@ sub checkRaw
     #diag "Test Set: Combination Key/Value + Key + Key/Value, no closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -485,7 +492,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'ABC'	=> 'AC',
@@ -498,7 +505,7 @@ sub checkRaw
     #diag "Test Set: Combination Key/Value + Key + Key/Value, with closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -521,7 +528,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'ABC'	=> 'AC',
@@ -534,7 +541,7 @@ sub checkRaw
     #diag "Test Set: Combination Key/Value + Key + Key/Value, immediate";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -566,7 +573,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'ABC'	=> 'AC',
@@ -579,7 +586,7 @@ sub checkRaw
     #diag "Test Set: Combination Key/Value + Key + Key/Value, immediate, closure";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -605,7 +612,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'ABC'	=> 'AC',
@@ -618,7 +625,7 @@ sub checkRaw
     #diag "Test Set: Filtered & Filter_Pop";
 
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -679,7 +686,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'ABC'	=> 'AC',
@@ -702,7 +709,7 @@ sub checkRaw
     }
     
     my %h = () ;
-    my $db = tie(%h, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+    my $db = tie(%h, $db_file,'coreOp_dbmx', O_RDWR|O_CREAT, 0640) ;
     ok $db, "tied to $db_file";
     
     doPreData(\%h);
@@ -719,7 +726,7 @@ sub checkRaw
         is $@, '', "untie without inner references" ;
     }
 
-    checkRaw 'Op_dbmx', 
+    checkRaw 'coreOp_dbmx',
 	    'abc'	=> 'def',
 	    '123'	=> '456',
 	    'X'  	=> 'X',
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/compress.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/compress.t,v
diff -u -p -a -u -p -r1.1.1.3 compress.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/compress.t	15 Feb 2023 01:33:05 -0000	1.1.1.3
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/compress.t	21 Feb 2024 15:47:02 -0000
@@ -31,11 +31,11 @@ BEGIN {
 BEGIN { use_ok('Fcntl') };
 BEGIN { use_ok('Compress::Zlib') };
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <cmpOp_dbmx*>;
+END { unlink <cmpOp_dbmx*>; }
 
 my %h1 = () ;
-my $db1 = tie(%h1, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db1 = tie(%h1, $db_file,'cmpOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db1, "tied to $db_file";
 
@@ -90,7 +90,7 @@ undef $db1;
 
 # read the dbm file without the filter
 my %h2 = () ;
-my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db2 = tie(%h2, $db_file,'cmpOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/encode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/encode.t,v
diff -u -p -a -u -p -r1.4 encode.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/encode.t	15 Feb 2023 01:36:33 -0000	1.4
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/encode.t	21 Feb 2024 15:47:02 -0000
@@ -38,11 +38,11 @@ BEGIN { use_ok('charnames', qw{greek})};
 
 use charnames qw{greek};
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <encOp_dbmx*>;
+END { unlink <encOp_dbmx*>; }
 
 my %h1 = () ;
-my $db1 = tie(%h1, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db1 = tie(%h1, $db_file,'encOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db1, "tied to $db_file";
 
@@ -101,7 +101,7 @@ undef $db1;
 
 # read the dbm file without the filter
 my %h2 = () ;
-my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db2 = tie(%h2, $db_file,'encOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/int32.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/int32.t,v
diff -u -p -a -u -p -r1.1.1.4 int32.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/int32.t	15 Feb 2023 01:33:05 -0000	1.1.1.4
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/int32.t	21 Feb 2024 15:47:02 -0000
@@ -21,11 +21,11 @@ BEGIN {
 };
 BEGIN { use_ok('Fcntl') };
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <intOp_dbmx*>;
+END { unlink <intOp_dbmx*>; }
 
 my %h1 = () ;
-my $db1 = tie(%h1, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db1 = tie(%h1, $db_file,'intOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db1, "tied to $db_file";
 
@@ -72,7 +72,7 @@ undef $db1;
 
 # read the dbm file without the filter
 my %h2 = () ;
-my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db2 = tie(%h2, $db_file,'intOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/null.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/null.t,v
diff -u -p -a -u -p -r1.1.1.3 null.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/null.t	15 Feb 2023 01:33:05 -0000	1.1.1.3
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/null.t	21 Feb 2024 15:47:02 -0000
@@ -21,11 +21,11 @@ BEGIN {
 };
 BEGIN { use_ok('Fcntl') };
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <nullOp_dbmx*>;
+END { unlink <nullOp_dbmx*>; }
 
 my %h1 = () ;
-my $db1 = tie(%h1, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db1 = tie(%h1, $db_file,'nullOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db1, "tied to $db_file";
 
@@ -76,7 +76,7 @@ undef $db1;
 
 # read the dbm file without the filter, check for null termination
 my %h2 = () ;
-my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db2 = tie(%h2, $db_file,'nullOp_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
Index: gnu/usr.bin/perl/lib/DBM_Filter/t/utf8.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/DBM_Filter/t/utf8.t,v
diff -u -p -a -u -p -r1.3 utf8.t
--- gnu/usr.bin/perl/lib/DBM_Filter/t/utf8.t	15 Feb 2023 01:36:33 -0000	1.3
+++ gnu/usr.bin/perl/lib/DBM_Filter/t/utf8.t	21 Feb 2024 15:47:02 -0000
@@ -37,11 +37,11 @@ BEGIN { use_ok('charnames', qw{greek})};
 
 use charnames qw{greek};
 
-unlink <Op_dbmx*>;
-END { unlink <Op_dbmx*>; }
+unlink <utf8Op_dbmx*>;
+END { unlink <utf8Op_dbmx*>; }
 
 my %h1 = () ;
-my $db1 = tie(%h1, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db1 = tie(%h1, $db_file,'utf8Op_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db1, "tied to $db_file";
 
@@ -77,7 +77,7 @@ undef $db1;
 
 # read the dbm file without the filter
 my %h2 = () ;
-my $db2 = tie(%h2, $db_file,'Op_dbmx', O_RDWR|O_CREAT, 0640) ;
+my $db2 = tie(%h2, $db_file,'utf8Op_dbmx', O_RDWR|O_CREAT, 0640) ;
 
 ok $db2, "tied to $db_file";
 
Index: gnu/usr.bin/perl/lib/File/Basename.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/File/Basename.pm,v
diff -u -p -a -u -p -r1.14 Basename.pm
--- gnu/usr.bin/perl/lib/File/Basename.pm	17 Nov 2014 20:57:06 -0000	1.14
+++ gnu/usr.bin/perl/lib/File/Basename.pm	21 Feb 2024 15:47:02 -0000
@@ -6,11 +6,11 @@ File::Basename - Parse file paths into d
 
     use File::Basename;
 
-    ($name,$path,$suffix) = fileparse($fullname,@suffixlist);
-    $name = fileparse($fullname,@suffixlist);
+    my ($name, $path, $suffix) = fileparse($fullname, @suffixlist);
+    my $name = fileparse($fullname, @suffixlist);
 
-    $basename = basename($fullname,@suffixlist);
-    $dirname  = dirname($fullname);
+    my $basename = basename($fullname, @suffixlist);
+    my $dirname  = dirname($fullname);
 
 
 =head1 DESCRIPTION
@@ -54,7 +54,7 @@ our(@ISA, @EXPORT, $VERSION, $Fileparse_
 require Exporter;
 @ISA = qw(Exporter);
 @EXPORT = qw(fileparse fileparse_set_fstype basename dirname);
-$VERSION = "2.85";
+$VERSION = "2.86";
 
 fileparse_set_fstype($^O);
 
Index: gnu/usr.bin/perl/lib/File/Copy.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/File/Copy.pm,v
diff -u -p -a -u -p -r1.21 Copy.pm
--- gnu/usr.bin/perl/lib/File/Copy.pm	15 Feb 2023 01:36:33 -0000	1.21
+++ gnu/usr.bin/perl/lib/File/Copy.pm	21 Feb 2024 15:47:02 -0000
@@ -23,7 +23,7 @@ sub syscopy;
 sub cp;
 sub mv;
 
-$VERSION = '2.39';
+$VERSION = '2.41';
 
 require Exporter;
 @ISA = qw(Exporter);
@@ -339,14 +339,14 @@ File::Copy - Copy files or filehandles
 
 	use File::Copy;
 
-	copy("sourcefile","destinationfile") or die "Copy failed: $!";
-	copy("Copy.pm",\*STDOUT);
-	move("/dev1/sourcefile","/dev2/destinationfile");
+	copy("sourcefile", "destinationfile") or die "Copy failed: $!";
+	copy("Copy.pm", \*STDOUT);
+	move("/dev1/sourcefile", "/dev2/destinationfile");
 
 	use File::Copy "cp";
 
-	$n = FileHandle->new("/a/file","r");
-	cp($n,"x");
+	my $n = FileHandle->new("/a/file", "r");
+	cp($n, "x");
 
 =head1 DESCRIPTION
 
@@ -395,9 +395,12 @@ You may use the syntax C<use File::Copy 
 alias for this function. The syntax is I<exactly> the same.  The
 behavior is nearly the same as well: as of version 2.15, C<cp> will
 preserve the source file's permission bits like the shell utility
-C<cp(1)> would do, while C<copy> uses the default permissions for the
-target file (which may depend on the process' C<umask>, file
-ownership, inherited ACLs, etc.).  If an error occurs in setting
+C<cp(1)> would do with default options, while C<copy> uses the default
+permissions for the target file (which may depend on the process'
+C<umask>, file ownership, inherited ACLs, etc.).  That is, if the
+destination file already exists, C<cp> will leave its permissions
+unchanged; otherwise the permissions are taken from the source file
+and modified by the C<umask>.  If an error occurs in setting
 permissions, C<cp> will return 0, regardless of whether the file was
 successfully copied.
 
Index: gnu/usr.bin/perl/lib/File/stat.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/File/stat.pm,v
diff -u -p -a -u -p -r1.10 stat.pm
--- gnu/usr.bin/perl/lib/File/stat.pm	15 Feb 2023 01:36:33 -0000	1.10
+++ gnu/usr.bin/perl/lib/File/stat.pm	21 Feb 2024 15:47:02 -0000
@@ -11,7 +11,7 @@ BEGIN { *warnif = \&warnings::warnif }
 
 our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 
-our $VERSION = '1.12';
+our $VERSION = '1.13';
 
 our @fields;
 our ( $st_dev, $st_ino, $st_mode,
@@ -233,7 +233,7 @@ File::stat - by-name interface to Perl's
 =head1 SYNOPSIS
 
  use File::stat;
- $st = stat($file) or die "No $file: $!";
+ my $st = stat($file) or die "No $file: $!";
  if ( ($st->mode & 0111) && ($st->nlink > 1) ) {
      print "$file is executable with lotsa links\n";
  } 
Index: gnu/usr.bin/perl/lib/Net/protoent.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Net/protoent.pm,v
diff -u -p -a -u -p -r1.5 protoent.pm
--- gnu/usr.bin/perl/lib/Net/protoent.pm	13 Feb 2019 21:15:25 -0000	1.5
+++ gnu/usr.bin/perl/lib/Net/protoent.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package Net::protoent;
 use strict;
 
 use 5.006_001;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
 our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 our ( $p_name, @p_aliases, $p_proto );
 BEGIN { 
@@ -51,7 +51,7 @@ Net::protoent - by-name interface to Per
 =head1 SYNOPSIS
 
  use Net::protoent;
- $p = getprotobyname(shift || 'tcp') || die "no proto";
+ my $p = getprotobyname(shift || 'tcp') || die "no proto";
  printf "proto for %s is %d, aliases are %s\n",
     $p->name, $p->proto, "@{$p->aliases}";
 
Index: gnu/usr.bin/perl/lib/Net/servent.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Net/servent.pm,v
diff -u -p -a -u -p -r1.5 servent.pm
--- gnu/usr.bin/perl/lib/Net/servent.pm	13 Feb 2019 21:15:25 -0000	1.5
+++ gnu/usr.bin/perl/lib/Net/servent.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package Net::servent;
 use strict;
 
 use 5.006_001;
-our $VERSION = '1.02';
+our $VERSION = '1.03';
 our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 our ( $s_name, @s_aliases, $s_port, $s_proto );
 BEGIN {
@@ -53,7 +53,7 @@ Net::servent - by-name interface to Perl
 =head1 SYNOPSIS
 
  use Net::servent;
- $s = getservbyname(shift || 'ftp') || die "no service";
+ my $s = getservbyname(shift || 'ftp') || die "no service";
  printf "port for %s is %s, aliases are %s\n",
     $s->name, $s->port, "@{$s->aliases}";
 
Index: gnu/usr.bin/perl/lib/Unicode/UCD.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/Unicode/UCD.t,v
diff -u -p -a -u -p -r1.6 UCD.t
--- gnu/usr.bin/perl/lib/Unicode/UCD.t	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/Unicode/UCD.t	21 Feb 2024 15:47:02 -0000
@@ -19,7 +19,7 @@ use Test::More;
 
 use Unicode::UCD qw(charinfo charprop charprops_all);
 
-my $expected_version = '14.0.0';
+my $expected_version = '15.0.0';
 my $current_version = Unicode::UCD::UnicodeVersion;
 my $v_unicode_version = pack "C*", split /\./, $current_version;
 my $unknown_script = ($v_unicode_version lt v5.0.0)
@@ -786,7 +786,7 @@ SKIP:
         skip("Latin range count will be wrong when using older Unicode release",
              2) if $current_version lt $expected_version;
         my $n1 = @$r1;
-        is($n1, 38, "number of ranges in Latin script (Unicode $expected_version)") if $::IS_ASCII;
+        is($n1, 39, "number of ranges in Latin script (Unicode $expected_version)") if $::IS_ASCII;
         shift @$r1 while @$r1;
         my $r2 = charscript('Latin');
         is(@$r2, $n1, "modifying results should not mess up internal caches");
Index: gnu/usr.bin/perl/lib/Unicode/testnorm.t
===================================================================
RCS file: gnu/usr.bin/perl/lib/Unicode/testnorm.t
diff -N gnu/usr.bin/perl/lib/Unicode/testnorm.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/Unicode/testnorm.t	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,26 @@
+use strict;
+use warnings;
+
+BEGIN {
+    chdir 't' if -d 't';
+}
+
+# This is a wrapper for a generated file.  Assumes being run from 't'
+# directory.
+
+if (! $ENV{PERL_DEBUG_FULL_TEST}) {
+    print "1..0 # skipped: Lengthy Tests Disabled; to enable set environment",
+          "variable \$ENV{PERL_DEBUG_FULL_TEST} to a true value\n";
+    0
+}
+else {
+    my $file = '../lib/unicore/TestNorm.pl';
+    if (-e $file) {
+        do $file;
+    }
+    else {
+        print "1..0 # Skip $file not built (perhaps build options don't"
+            . " build it)\n";
+        0
+    }
+}
Index: gnu/usr.bin/perl/lib/User/grent.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/User/grent.pm,v
diff -u -p -a -u -p -r1.7 grent.pm
--- gnu/usr.bin/perl/lib/User/grent.pm	30 Dec 2019 02:13:54 -0000	1.7
+++ gnu/usr.bin/perl/lib/User/grent.pm	21 Feb 2024 15:47:02 -0000
@@ -2,7 +2,7 @@ package User::grent;
 use strict;
 
 use 5.006_001;
-our $VERSION = '1.03';
+our $VERSION = '1.04';
 our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 our ($gr_name, $gr_gid, $gr_passwd, @gr_members);
 BEGIN { 
@@ -46,7 +46,7 @@ User::grent - by-name interface to Perl'
 =head1 SYNOPSIS
 
  use User::grent;
- $gr = getgrgid(0) or die "No group zero";
+ my $gr = getgrgid(0) or die "No group zero";
  if ( $gr->name eq 'wheel' && @{$gr->members} > 1 ) {
      print "gid zero name wheel, with other members";
  } 
@@ -57,7 +57,7 @@ User::grent - by-name interface to Perl'
      print "gid zero name wheel, with other members";
  } 
 
- $gr = getgr($whoever);
+ my $gr = getgr($whoever);
 
 =head1 DESCRIPTION
 
Index: gnu/usr.bin/perl/lib/User/pwent.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/User/pwent.pm,v
diff -u -p -a -u -p -r1.5 pwent.pm
--- gnu/usr.bin/perl/lib/User/pwent.pm	13 Feb 2019 21:15:25 -0000	1.5
+++ gnu/usr.bin/perl/lib/User/pwent.pm	21 Feb 2024 15:47:02 -0000
@@ -1,7 +1,7 @@
 package User::pwent;
 
 use 5.006;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
 
 use strict;
 use warnings;
@@ -189,14 +189,14 @@ User::pwent - by-name interface to Perl'
 =head1 SYNOPSIS
 
  use User::pwent;
- $pw = getpwnam('daemon')       || die "No daemon user";
+ my $pw = getpwnam('daemon')       || die "No daemon user";
  if ( $pw->uid == 1 && $pw->dir =~ m#^/(bin|tmp)?\z#s ) {
      print "gid 1 on root dir";
  }
 
- $real_shell = $pw->shell || '/bin/sh';
+ my $real_shell = $pw->shell || '/bin/sh';
 
- for (($fullname, $office, $workphone, $homephone) =
+ for (my ($fullname, $office, $workphone, $homephone) =
         split /\s*,\s*/, $pw->gecos)
  {
     s/&/ucfirst(lc($pw->name))/ge;
@@ -208,7 +208,7 @@ User::pwent - by-name interface to Perl'
      print "gid 1 on root dir";
  }
 
- $pw = getpw($whoever);
+ my $pw = getpw($whoever);
 
  use User::pwent qw/:DEFAULT pw_has/;
  if (pw_has(qw[gecos expire quota])) { .... }
Index: gnu/usr.bin/perl/lib/overload/numbers.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/overload/numbers.pm,v
diff -u -p -a -u -p -r1.2 numbers.pm
--- gnu/usr.bin/perl/lib/overload/numbers.pm	5 Feb 2017 00:32:15 -0000	1.2
+++ gnu/usr.bin/perl/lib/overload/numbers.pm	21 Feb 2024 15:47:02 -0000
@@ -1,4 +1,4 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
 #
 #    lib/overload/numbers.pm
 #
@@ -173,4 +173,4 @@ our @enums = qw#
 
 { my $i = 0; our %enums = map { $_ => $i++ } @enums }
 
-# ex: set ro:
+# ex: set ro ft=perl:
Index: gnu/usr.bin/perl/lib/unicore/ArabicShaping.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/ArabicShaping.txt,v
diff -u -p -a -u -p -r1.6 ArabicShaping.txt
--- gnu/usr.bin/perl/lib/unicore/ArabicShaping.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/ArabicShaping.txt	21 Feb 2024 15:47:02 -0000
@@ -1,8 +1,8 @@
-# ArabicShaping-14.0.0.txt
-# Date: 2021-05-21, 01:54:00 GMT [KW, RP]
-# © 2021 Unicode®, Inc.
+# ArabicShaping-15.0.0.txt
+# Date: 2022-02-14, 18:50:00 GMT [KW, RP]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
Index: gnu/usr.bin/perl/lib/unicore/BidiBrackets.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/BidiBrackets.txt,v
diff -u -p -a -u -p -r1.6 BidiBrackets.txt
--- gnu/usr.bin/perl/lib/unicore/BidiBrackets.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/BidiBrackets.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# BidiBrackets-14.0.0.txt
-# Date: 2021-06-30, 23:59:00 GMT [AG, LI, KW]
-# © 2021 Unicode®, Inc.
+# BidiBrackets-15.0.0.txt
+# Date: 2022-05-03, 18:42:00 GMT [AG, LI, KW]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
Index: gnu/usr.bin/perl/lib/unicore/BidiMirroring.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/BidiMirroring.txt,v
diff -u -p -a -u -p -r1.6 BidiMirroring.txt
--- gnu/usr.bin/perl/lib/unicore/BidiMirroring.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/BidiMirroring.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# BidiMirroring-14.0.0.txt
-# Date: 2021-08-08, 22:55:00 GMT [KW, RP]
-# © 2021 Unicode®, Inc.
+# BidiMirroring-15.0.0.txt
+# Date: 2022-05-03, 18:47:00 GMT [KW, RP]
+# © 2022 Unicode®, Inc.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
@@ -15,7 +15,7 @@
 # value, for which there is another Unicode character that typically has a glyph
 # that is the mirror image of the original character's glyph.
 #
-# The repertoire covered by the file is Unicode 14.0.0.
+# The repertoire covered by the file is Unicode 15.0.0.
 #
 # The file contains a list of lines with mappings from one code point
 # to another one for character-based mirroring.
Index: gnu/usr.bin/perl/lib/unicore/Blocks.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Blocks.txt,v
diff -u -p -a -u -p -r1.6 Blocks.txt
--- gnu/usr.bin/perl/lib/unicore/Blocks.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/Blocks.txt	21 Feb 2024 15:47:02 -0000
@@ -1,10 +1,10 @@
-# Blocks-14.0.0.txt
-# Date: 2021-01-22, 23:29:00 GMT [KW]
-# © 2021 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Blocks-15.0.0.txt
+# Date: 2022-01-28, 20:58:00 GMT [KW]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Format:
 # Start Code..End Code; Block Name
@@ -15,7 +15,7 @@
 #         and underbars are ignored.
 #         For example, "Latin Extended-A" and "latin extended a" are equivalent.
 #         For more information on the comparison of property values,
-#            see UAX #44: http://www.unicode.org/reports/tr44/
+#            see UAX #44: https://www.unicode.org/reports/tr44/
 #
 #  All block ranges start with a value where (cp MOD 16) = 0,
 #  and end with a value where (cp MOD 16) = 15. In other words,
@@ -241,6 +241,7 @@ FFF0..FFFF; Specials
 10D00..10D3F; Hanifi Rohingya
 10E60..10E7F; Rumi Numeral Symbols
 10E80..10EBF; Yezidi
+10EC0..10EFF; Arabic Extended-C
 10F00..10F2F; Old Sogdian
 10F30..10F6F; Sogdian
 10F70..10FAF; Old Uyghur
@@ -272,11 +273,13 @@ FFF0..FFFF; Specials
 11A50..11AAF; Soyombo
 11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
 11AC0..11AFF; Pau Cin Hau
+11B00..11B5F; Devanagari Extended-A
 11C00..11C6F; Bhaiksuki
 11C70..11CBF; Marchen
 11D00..11D5F; Masaram Gondi
 11D60..11DAF; Gunjala Gondi
 11EE0..11EFF; Makasar
+11F00..11F5F; Kawi
 11FB0..11FBF; Lisu Supplement
 11FC0..11FFF; Tamil Supplement
 12000..123FF; Cuneiform
@@ -284,7 +287,7 @@ FFF0..FFFF; Specials
 12480..1254F; Early Dynastic Cuneiform
 12F90..12FFF; Cypro-Minoan
 13000..1342F; Egyptian Hieroglyphs
-13430..1343F; Egyptian Hieroglyph Format Controls
+13430..1345F; Egyptian Hieroglyph Format Controls
 14400..1467F; Anatolian Hieroglyphs
 16800..16A3F; Bamum Supplement
 16A40..16A6F; Mro
@@ -309,6 +312,7 @@ FFF0..FFFF; Specials
 1D000..1D0FF; Byzantine Musical Symbols
 1D100..1D1FF; Musical Symbols
 1D200..1D24F; Ancient Greek Musical Notation
+1D2C0..1D2DF; Kaktovik Numerals
 1D2E0..1D2FF; Mayan Numerals
 1D300..1D35F; Tai Xuan Jing Symbols
 1D360..1D37F; Counting Rod Numerals
@@ -316,9 +320,11 @@ FFF0..FFFF; Specials
 1D800..1DAAF; Sutton SignWriting
 1DF00..1DFFF; Latin Extended-G
 1E000..1E02F; Glagolitic Supplement
+1E030..1E08F; Cyrillic Extended-D
 1E100..1E14F; Nyiakeng Puachue Hmong
 1E290..1E2BF; Toto
 1E2C0..1E2FF; Wancho
+1E4D0..1E4FF; Nag Mundari
 1E7E0..1E7FF; Ethiopic Extended-B
 1E800..1E8DF; Mende Kikakui
 1E900..1E95F; Adlam
@@ -348,6 +354,7 @@ FFF0..FFFF; Specials
 2CEB0..2EBEF; CJK Unified Ideographs Extension F
 2F800..2FA1F; CJK Compatibility Ideographs Supplement
 30000..3134F; CJK Unified Ideographs Extension G
+31350..323AF; CJK Unified Ideographs Extension H
 E0000..E007F; Tags
 E0100..E01EF; Variation Selectors Supplement
 F0000..FFFFF; Supplementary Private Use Area-A
Index: gnu/usr.bin/perl/lib/unicore/CJKRadicals.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/CJKRadicals.txt,v
diff -u -p -a -u -p -r1.6 CJKRadicals.txt
--- gnu/usr.bin/perl/lib/unicore/CJKRadicals.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/CJKRadicals.txt	21 Feb 2024 15:47:02 -0000
@@ -1,10 +1,10 @@
-# CJKRadicals-14.0.0.txt
-# Date: 2021-03-16, 21:39:00 GMT [RC, KW, LI]
-# © 2021 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# CJKRadicals-15.0.0.txt
+# Date: 2022-05-03, 18:49:00 GMT [RC, KW, LI]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Mapping from CJK radical numbers to characters
 #
@@ -23,7 +23,7 @@
 # and in particular they can end with a U+0027 ' APOSTROPHE.
 #
 # For more information, see UAX #38: Unicode Han Database (Unihan),
-# at http://www.unicode.org/reports/tr38/
+# at https://www.unicode.org/reports/tr38/
 #
 # This file was created for Unicode 5.2 by Richard Cook.
 # Updated for Unicode 6.0 by Richard Cook.
Index: gnu/usr.bin/perl/lib/unicore/CaseFolding.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/CaseFolding.txt,v
diff -u -p -a -u -p -r1.6 CaseFolding.txt
--- gnu/usr.bin/perl/lib/unicore/CaseFolding.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/CaseFolding.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# CaseFolding-14.0.0.txt
-# Date: 2021-03-08, 19:35:41 GMT
-# © 2021 Unicode®, Inc.
+# CaseFolding-15.0.0.txt
+# Date: 2022-02-02, 23:35:35 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Case Folding Properties
 #
Index: gnu/usr.bin/perl/lib/unicore/CombiningClass.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/CombiningClass.pl,v
diff -u -p -a -u -p -r1.12 CombiningClass.pl
--- gnu/usr.bin/perl/lib/unicore/CombiningClass.pl	15 Feb 2023 01:39:49 -0000	1.12
+++ gnu/usr.bin/perl/lib/unicore/CombiningClass.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -325,6 +325,7 @@ FE2E	FE2F	230
 10AE6		220
 10D24	10D27	230
 10EAB	10EAC	230
+10EFD	10EFF	220
 10F46	10F47	220
 10F48	10F4A	230
 10F4B		220
@@ -375,6 +376,7 @@ FE2E	FE2F	230
 11D42		7
 11D44	11D45	9
 11D97		9
+11F41	11F42	9
 16AF0	16AF4	1
 16B30	16B36	230
 16FF0	16FF1	6
@@ -393,9 +395,13 @@ FE2E	FE2F	230
 1E01B	1E021	230
 1E023	1E024	230
 1E026	1E02A	230
+1E08F		230
 1E130	1E136	230
 1E2AE		230
 1E2EC	1E2EF	230
+1E4EC	1E4ED	232
+1E4EE		220
+1E4EF		230
 1E8D0	1E8D6	220
 1E944	1E949	230
 1E94A		7
Index: gnu/usr.bin/perl/lib/unicore/CompositionExclusions.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/CompositionExclusions.txt,v
diff -u -p -a -u -p -r1.6 CompositionExclusions.txt
--- gnu/usr.bin/perl/lib/unicore/CompositionExclusions.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/CompositionExclusions.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# CompositionExclusions-14.0.0.txt
-# Date: 2021-03-30, 23:59:00 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
+# CompositionExclusions-15.0.0.txt
+# Date: 2022-05-03, 18:50:00 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
Index: gnu/usr.bin/perl/lib/unicore/DAge.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/DAge.txt,v
diff -u -p -a -u -p -r1.6 DAge.txt
--- gnu/usr.bin/perl/lib/unicore/DAge.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/DAge.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedAge-14.0.0.txt
-# Date: 2021-07-10, 00:35:00 GMT
-# © 2021 Unicode®, Inc.
+# DerivedAge-15.0.0.txt
+# Date: 2022-04-26, 23:14:23 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Unicode Character Database: Derived Property Data
 # This file shows when various code points were first assigned in Unicode.
@@ -1948,5 +1948,47 @@ FDFE..FDFF    ; 14.0 #   [2] ARABIC LIGA
 2B735..2B738  ; 14.0 #   [4] CJK UNIFIED IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738
 
 # Total code points: 838
+
+# ================================================
+
+# Age=V15_0
+
+# Newly assigned in Unicode 15.0.0 (September, 2022)
+
+0CF3          ; 15.0 #       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+0ECE          ; 15.0 #       LAO YAMAKKAN
+10EFD..10EFF  ; 15.0 #   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+1123F..11241  ; 15.0 #   [3] KHOJKI LETTER QA..KHOJKI VOWEL SIGN VOCALIC R
+11B00..11B09  ; 15.0 #  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+11F00..11F10  ; 15.0 #  [17] KAWI SIGN CANDRABINDU..KAWI LETTER O
+11F12..11F3A  ; 15.0 #  [41] KAWI LETTER KA..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F59  ; 15.0 #  [28] KAWI VOWEL SIGN E..KAWI DIGIT NINE
+1342F         ; 15.0 #       EGYPTIAN HIEROGLYPH V011D
+13439..1343F  ; 15.0 #   [7] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440..13455  ; 15.0 #  [22] EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+1B132         ; 15.0 #       HIRAGANA LETTER SMALL KO
+1B155         ; 15.0 #       KATAKANA LETTER SMALL KO
+1D2C0..1D2D3  ; 15.0 #  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
+1DF25..1DF2A  ; 15.0 #   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; 15.0 #  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; 15.0 #       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E4D0..1E4F9  ; 15.0 #  [42] NAG MUNDARI LETTER O..NAG MUNDARI DIGIT NINE
+1F6DC         ; 15.0 #       WIRELESS
+1F774..1F776  ; 15.0 #   [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F77B..1F77F  ; 15.0 #   [5] HAUMEA..ORCUS
+1F7D9         ; 15.0 #       NINE POINTED WHITE STAR
+1FA75..1FA77  ; 15.0 #   [3] LIGHT BLUE HEART..PINK HEART
+1FA87..1FA88  ; 15.0 #   [2] MARACAS..FLUTE
+1FAAD..1FAAF  ; 15.0 #   [3] FOLDING HAND FAN..KHANDA
+1FABB..1FABD  ; 15.0 #   [3] HYACINTH..WING
+1FABF         ; 15.0 #       GOOSE
+1FACE..1FACF  ; 15.0 #   [2] MOOSE..DONKEY
+1FADA..1FADB  ; 15.0 #   [2] GINGER ROOT..PEA POD
+1FAE8         ; 15.0 #       SHAKING FACE
+1FAF7..1FAF8  ; 15.0 #   [2] LEFTWARDS PUSHING HAND..RIGHTWARDS PUSHING HAND
+2B739         ; 15.0 #       CJK UNIFIED IDEOGRAPH-2B739
+31350..323AF  ; 15.0 # [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+
+# Total code points: 4489
 
 # EOF
Index: gnu/usr.bin/perl/lib/unicore/DCoreProperties.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/DCoreProperties.txt,v
diff -u -p -a -u -p -r1.6 DCoreProperties.txt
--- gnu/usr.bin/perl/lib/unicore/DCoreProperties.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/DCoreProperties.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedCoreProperties-14.0.0.txt
-# Date: 2021-08-12, 23:12:53 GMT
-# © 2021 Unicode®, Inc.
+# DerivedCoreProperties-15.0.0.txt
+# Date: 2022-08-05, 22:17:05 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -462,6 +462,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
 0BD7          ; Alphabetic # Mc       TAMIL AU LENGTH MARK
 0C00          ; Alphabetic # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Alphabetic # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04          ; Alphabetic # Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE
 0C05..0C0C    ; Alphabetic # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
 0C0E..0C10    ; Alphabetic # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI
 0C12..0C28    ; Alphabetic # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA
@@ -497,6 +498,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
 0CE0..0CE1    ; Alphabetic # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
 0CE2..0CE3    ; Alphabetic # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CF1..0CF2    ; Alphabetic # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; Alphabetic # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; Alphabetic # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Alphabetic # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; Alphabetic # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -552,7 +554,7 @@ FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
 0F49..0F6C    ; Alphabetic # Lo  [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
 0F71..0F7E    ; Alphabetic # Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
 0F7F          ; Alphabetic # Mc       TIBETAN SIGN RNAM BCAD
-0F80..0F81    ; Alphabetic # Mn   [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II
+0F80..0F83    ; Alphabetic # Mn   [4] TIBETAN VOWEL SIGN REVERSED I..TIBETAN SIGN SNA LDAN
 0F88..0F8C    ; Alphabetic # Lo   [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
 0F8D..0F97    ; Alphabetic # Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
 0F99..0FBC    ; Alphabetic # Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
@@ -1053,6 +1055,7 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 11071..11072  ; Alphabetic # Lo   [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
 11073..11074  ; Alphabetic # Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
 11075         ; Alphabetic # Lo       BRAHMI LETTER OLD TAMIL LLA
+11080..11081  ; Alphabetic # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
 11082         ; Alphabetic # Mc       KAITHI SIGN VISARGA
 11083..110AF  ; Alphabetic # Lo  [45] KAITHI LETTER A..KAITHI LETTER HA
 110B0..110B2  ; Alphabetic # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
@@ -1089,6 +1092,8 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 11234         ; Alphabetic # Mn       KHOJKI SIGN ANUSVARA
 11237         ; Alphabetic # Mn       KHOJKI SIGN SHADDA
 1123E         ; Alphabetic # Mn       KHOJKI SIGN SUKUN
+1123F..11240  ; Alphabetic # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241         ; Alphabetic # Mn       KHOJKI VOWEL SIGN VOCALIC R
 11280..11286  ; Alphabetic # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; Alphabetic # Lo       MULTANI LETTER GHA
 1128A..1128D  ; Alphabetic # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1243,12 +1248,22 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 11EE0..11EF2  ; Alphabetic # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
 11EF3..11EF4  ; Alphabetic # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; Alphabetic # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; Alphabetic # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; Alphabetic # Lo       KAWI SIGN REPHA
+11F03         ; Alphabetic # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; Alphabetic # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; Alphabetic # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; Alphabetic # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; Alphabetic # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; Alphabetic # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; Alphabetic # Mn       KAWI VOWEL SIGN EU
 11FB0         ; Alphabetic # Lo       LISU LETTER YHA
 12000..12399  ; Alphabetic # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; Alphabetic # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; Alphabetic # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; Alphabetic # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; Alphabetic # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; Alphabetic # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; Alphabetic # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; Alphabetic # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; Alphabetic # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; Alphabetic # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -1275,7 +1290,9 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 1AFF5..1AFFB  ; Alphabetic # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; Alphabetic # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; Alphabetic # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; Alphabetic # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; Alphabetic # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; Alphabetic # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Alphabetic # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; Alphabetic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; Alphabetic # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -1316,16 +1333,21 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 1DF00..1DF09  ; Alphabetic # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; Alphabetic # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; Alphabetic # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Alphabetic # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006  ; Alphabetic # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018  ; Alphabetic # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021  ; Alphabetic # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Alphabetic # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Alphabetic # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D  ; Alphabetic # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; Alphabetic # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C  ; Alphabetic # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; Alphabetic # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E14E         ; Alphabetic # Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E290..1E2AD  ; Alphabetic # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; Alphabetic # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; Alphabetic # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; Alphabetic # Lm       NAG MUNDARI SIGN OJOD
 1E7E0..1E7E6  ; Alphabetic # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; Alphabetic # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; Alphabetic # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1371,14 +1393,15 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 1F150..1F169  ; Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
 1F170..1F189  ; Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 20000..2A6DF  ; Alphabetic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; Alphabetic # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; Alphabetic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Alphabetic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Alphabetic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 133396
+# Total code points: 137765
 
 # ================================================
 
@@ -1663,6 +1686,7 @@ FFDA..FFDC    ; Alphabetic # Lo   [3] HA
 052F          ; Lowercase # L&       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0560..0588    ; Lowercase # L&  [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
 10D0..10FA    ; Lowercase # L&  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FC          ; Lowercase # Lm       MODIFIER LETTER GEORGIAN NAR
 10FD..10FF    ; Lowercase # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
 13F8..13FD    ; Lowercase # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
 1C80..1C88    ; Lowercase # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
@@ -2012,12 +2036,14 @@ A7D3          ; Lowercase # L&       LAT
 A7D5          ; Lowercase # L&       LATIN SMALL LETTER DOUBLE WYNN
 A7D7          ; Lowercase # L&       LATIN SMALL LETTER MIDDLE SCOTS S
 A7D9          ; Lowercase # L&       LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4    ; Lowercase # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
 A7F6          ; Lowercase # L&       LATIN SMALL LETTER REVERSED HALF H
 A7F8..A7F9    ; Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Lowercase # L&       LATIN LETTER SMALL CAPITAL TURNED M
 AB30..AB5A    ; Lowercase # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
 AB5C..AB5F    ; Lowercase # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 AB60..AB68    ; Lowercase # L&   [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69          ; Lowercase # Lm       MODIFIER LETTER SMALL TURNED W
 AB70..ABBF    ; Lowercase # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
 FB00..FB06    ; Lowercase # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Lowercase # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -2065,9 +2091,11 @@ FF41..FF5A    ; Lowercase # L&  [26] FUL
 1D7CB         ; Lowercase # L&       MATHEMATICAL BOLD SMALL DIGAMMA
 1DF00..1DF09  ; Lowercase # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0B..1DF1E  ; Lowercase # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Lowercase # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; Lowercase # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E922..1E943  ; Lowercase # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
 
-# Total code points: 2471
+# Total code points: 2544
 
 # ================================================
 
@@ -2767,6 +2795,7 @@ FF21..FF3A    ; Uppercase # L&  [26] FUL
 10C7          ; Cased # L&       GEORGIAN CAPITAL LETTER YN
 10CD          ; Cased # L&       GEORGIAN CAPITAL LETTER AEN
 10D0..10FA    ; Cased # L&  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FC          ; Cased # Lm       MODIFIER LETTER GEORGIAN NAR
 10FD..10FF    ; Cased # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
 13A0..13F5    ; Cased # L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
 13F8..13FD    ; Cased # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
@@ -2837,12 +2866,14 @@ A790..A7CA    ; Cased # L&  [59] LATIN C
 A7D0..A7D1    ; Cased # L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
 A7D3          ; Cased # L&       LATIN SMALL LETTER DOUBLE THORN
 A7D5..A7D9    ; Cased # L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4    ; Cased # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
 A7F5..A7F6    ; Cased # L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
 A7F8..A7F9    ; Cased # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Cased # L&       LATIN LETTER SMALL CAPITAL TURNED M
 AB30..AB5A    ; Cased # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
 AB5C..AB5F    ; Cased # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 AB60..AB68    ; Cased # L&   [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69          ; Cased # Lm       MODIFIER LETTER SMALL TURNED W
 AB70..ABBF    ; Cased # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
 FB00..FB06    ; Cased # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Cased # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -2899,12 +2930,14 @@ FF41..FF5A    ; Cased # L&  [26] FULLWID
 1D7C4..1D7CB  ; Cased # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1DF00..1DF09  ; Cased # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0B..1DF1E  ; Cased # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Cased # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; Cased # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E900..1E943  ; Cased # L&  [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
 1F130..1F149  ; Cased # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
 1F150..1F169  ; Cased # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
 1F170..1F189  ; Cased # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 4453
+# Total code points: 4526
 
 # ================================================
 
@@ -3054,7 +3087,7 @@ FF41..FF5A    ; Cased # L&  [26] FULLWID
 0EB1          ; Case_Ignorable # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; Case_Ignorable # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
 0EC6          ; Case_Ignorable # Lm       LAO KO LA
-0EC8..0ECD    ; Case_Ignorable # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Case_Ignorable # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; Case_Ignorable # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; Case_Ignorable # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Case_Ignorable # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -3263,6 +3296,7 @@ FFF9..FFFB    ; Case_Ignorable # Cf   [3
 10AE5..10AE6  ; Case_Ignorable # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; Case_Ignorable # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; Case_Ignorable # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; Case_Ignorable # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Case_Ignorable # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Case_Ignorable # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11001         ; Case_Ignorable # Mn       BRAHMI SIGN ANUSVARA
@@ -3287,6 +3321,7 @@ FFF9..FFFB    ; Case_Ignorable # Cf   [3
 11234         ; Case_Ignorable # Mn       KHOJKI SIGN ANUSVARA
 11236..11237  ; Case_Ignorable # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; Case_Ignorable # Mn       KHOJKI SIGN SUKUN
+11241         ; Case_Ignorable # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Case_Ignorable # Mn       KHUDAWADI SIGN ANUSVARA
 112E3..112EA  ; Case_Ignorable # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
 11300..11301  ; Case_Ignorable # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -3348,7 +3383,13 @@ FFF9..FFFB    ; Case_Ignorable # Cf   [3
 11D95         ; Case_Ignorable # Mn       GUNJALA GONDI SIGN ANUSVARA
 11D97         ; Case_Ignorable # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; Case_Ignorable # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
-13430..13438  ; Case_Ignorable # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+11F00..11F01  ; Case_Ignorable # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A  ; Case_Ignorable # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40         ; Case_Ignorable # Mn       KAWI VOWEL SIGN EU
+11F42         ; Case_Ignorable # Mn       KAWI CONJOINER
+13430..1343F  ; Case_Ignorable # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440         ; Case_Ignorable # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; Case_Ignorable # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Case_Ignorable # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Case_Ignorable # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16B40..16B43  ; Case_Ignorable # Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
@@ -3382,10 +3423,14 @@ FFF9..FFFB    ; Case_Ignorable # Cf   [3
 1E01B..1E021  ; Case_Ignorable # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Case_Ignorable # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Case_Ignorable # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D  ; Case_Ignorable # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; Case_Ignorable # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; Case_Ignorable # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D  ; Case_Ignorable # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E2AE         ; Case_Ignorable # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Case_Ignorable # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EB         ; Case_Ignorable # Lm       NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF  ; Case_Ignorable # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; Case_Ignorable # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; Case_Ignorable # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 1E94B         ; Case_Ignorable # Lm       ADLAM NASALIZATION MARK
@@ -3394,7 +3439,7 @@ E0001         ; Case_Ignorable # Cf     
 E0020..E007F  ; Case_Ignorable # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2602
+# Total code points: 2707
 
 # ================================================
 
@@ -6617,6 +6662,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 111DC         ; ID_Start # Lo       SHARADA HEADSTROKE
 11200..11211  ; ID_Start # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
 11213..1122B  ; ID_Start # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240  ; ID_Start # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; ID_Start # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; ID_Start # Lo       MULTANI LETTER GHA
 1128A..1128D  ; ID_Start # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -6679,12 +6725,16 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 11D6A..11D89  ; ID_Start # Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
 11D98         ; ID_Start # Lo       GUNJALA GONDI OM
 11EE0..11EF2  ; ID_Start # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02         ; ID_Start # Lo       KAWI SIGN REPHA
+11F04..11F10  ; ID_Start # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; ID_Start # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
 11FB0         ; ID_Start # Lo       LISU LETTER YHA
 12000..12399  ; ID_Start # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; ID_Start # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; ID_Start # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; ID_Start # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; ID_Start # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; ID_Start # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; ID_Start # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; ID_Start # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; ID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; ID_Start # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -6707,7 +6757,9 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 1AFF5..1AFFB  ; ID_Start # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; ID_Start # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; ID_Start # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; ID_Start # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; ID_Start # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; ID_Start # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; ID_Start # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; ID_Start # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; ID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -6747,11 +6799,15 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 1DF00..1DF09  ; ID_Start # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; ID_Start # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; ID_Start # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; ID_Start # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; ID_Start # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; ID_Start # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; ID_Start # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E14E         ; ID_Start # Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E290..1E2AD  ; ID_Start # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; ID_Start # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; ID_Start # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; ID_Start # Lm       NAG MUNDARI SIGN OJOD
 1E7E0..1E7E6  ; ID_Start # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; ID_Start # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; ID_Start # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -6793,14 +6849,15 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 1EEA5..1EEA9  ; ID_Start # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
 1EEAB..1EEBB  ; ID_Start # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 20000..2A6DF  ; ID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; ID_Start # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; ID_Start # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; ID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; ID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 131997
+# Total code points: 136345
 
 # ================================================
 
@@ -7083,6 +7140,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 0CE2..0CE3    ; ID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; ID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; ID_Continue # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; ID_Continue # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; ID_Continue # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; ID_Continue # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; ID_Continue # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -7136,7 +7194,7 @@ FFDA..FFDC    ; ID_Start # Lo   [3] HALF
 0EBD          ; ID_Continue # Lo       LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4    ; ID_Continue # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; ID_Continue # Lm       LAO KO LA
-0EC8..0ECD    ; ID_Continue # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; ID_Continue # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9    ; ID_Continue # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF    ; ID_Continue # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00          ; ID_Continue # Lo       TIBETAN SYLLABLE OM
@@ -7719,6 +7777,7 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 10E80..10EA9  ; ID_Continue # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
 10EAB..10EAC  ; ID_Continue # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
 10EB0..10EB1  ; ID_Continue # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF  ; ID_Continue # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F00..10F1C  ; ID_Continue # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F27         ; ID_Continue # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
 10F30..10F45  ; ID_Continue # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
@@ -7781,6 +7840,8 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 11235         ; ID_Continue # Mc       KHOJKI SIGN VIRAMA
 11236..11237  ; ID_Continue # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; ID_Continue # Mn       KHOJKI SIGN SUKUN
+1123F..11240  ; ID_Continue # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241         ; ID_Continue # Mn       KHOJKI VOWEL SIGN VOCALIC R
 11280..11286  ; ID_Continue # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; ID_Continue # Lo       MULTANI LETTER GHA
 1128A..1128D  ; ID_Continue # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -7963,12 +8024,27 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 11EE0..11EF2  ; ID_Continue # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
 11EF3..11EF4  ; ID_Continue # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; ID_Continue # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; ID_Continue # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; ID_Continue # Lo       KAWI SIGN REPHA
+11F03         ; ID_Continue # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; ID_Continue # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; ID_Continue # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; ID_Continue # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; ID_Continue # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; ID_Continue # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; ID_Continue # Mn       KAWI VOWEL SIGN EU
+11F41         ; ID_Continue # Mc       KAWI SIGN KILLER
+11F42         ; ID_Continue # Mn       KAWI CONJOINER
+11F50..11F59  ; ID_Continue # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0         ; ID_Continue # Lo       LISU LETTER YHA
 12000..12399  ; ID_Continue # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; ID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; ID_Continue # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; ID_Continue # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; ID_Continue # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; ID_Continue # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13440         ; ID_Continue # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446  ; ID_Continue # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455  ; ID_Continue # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..14646  ; ID_Continue # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; ID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; ID_Continue # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -8001,7 +8077,9 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 1AFF5..1AFFB  ; ID_Continue # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; ID_Continue # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; ID_Continue # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; ID_Continue # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; ID_Continue # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; ID_Continue # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; ID_Continue # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; ID_Continue # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; ID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -8058,11 +8136,14 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 1DF00..1DF09  ; ID_Continue # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; ID_Continue # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; ID_Continue # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; ID_Continue # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006  ; ID_Continue # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018  ; ID_Continue # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021  ; ID_Continue # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; ID_Continue # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; ID_Continue # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D  ; ID_Continue # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; ID_Continue # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C  ; ID_Continue # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E130..1E136  ; ID_Continue # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D  ; ID_Continue # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -8073,6 +8154,10 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 1E2C0..1E2EB  ; ID_Continue # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
 1E2EC..1E2EF  ; ID_Continue # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
 1E2F0..1E2F9  ; ID_Continue # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4D0..1E4EA  ; ID_Continue # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; ID_Continue # Lm       NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF  ; ID_Continue # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9  ; ID_Continue # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6  ; ID_Continue # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; ID_Continue # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; ID_Continue # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -8118,15 +8203,16 @@ FFDA..FFDC    ; ID_Continue # Lo   [3] H
 1EEAB..1EEBB  ; ID_Continue # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 1FBF0..1FBF9  ; ID_Continue # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 20000..2A6DF  ; ID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; ID_Continue # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; ID_Continue # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; ID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; ID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; ID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; ID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; ID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 135072
+# Total code points: 139482
 
 # ================================================
 
@@ -8685,6 +8771,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 111DC         ; XID_Start # Lo       SHARADA HEADSTROKE
 11200..11211  ; XID_Start # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
 11213..1122B  ; XID_Start # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240  ; XID_Start # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; XID_Start # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; XID_Start # Lo       MULTANI LETTER GHA
 1128A..1128D  ; XID_Start # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -8747,12 +8834,16 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 11D6A..11D89  ; XID_Start # Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
 11D98         ; XID_Start # Lo       GUNJALA GONDI OM
 11EE0..11EF2  ; XID_Start # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02         ; XID_Start # Lo       KAWI SIGN REPHA
+11F04..11F10  ; XID_Start # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; XID_Start # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
 11FB0         ; XID_Start # Lo       LISU LETTER YHA
 12000..12399  ; XID_Start # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; XID_Start # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; XID_Start # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; XID_Start # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; XID_Start # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; XID_Start # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; XID_Start # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; XID_Start # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; XID_Start # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; XID_Start # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -8775,7 +8866,9 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 1AFF5..1AFFB  ; XID_Start # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; XID_Start # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; XID_Start # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; XID_Start # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; XID_Start # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; XID_Start # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; XID_Start # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; XID_Start # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; XID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -8815,11 +8908,15 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 1DF00..1DF09  ; XID_Start # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; XID_Start # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; XID_Start # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; XID_Start # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; XID_Start # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; XID_Start # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; XID_Start # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E14E         ; XID_Start # Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E290..1E2AD  ; XID_Start # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; XID_Start # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; XID_Start # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; XID_Start # Lm       NAG MUNDARI SIGN OJOD
 1E7E0..1E7E6  ; XID_Start # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; XID_Start # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; XID_Start # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -8861,14 +8958,15 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 1EEA5..1EEA9  ; XID_Start # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
 1EEAB..1EEBB  ; XID_Start # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 20000..2A6DF  ; XID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; XID_Start # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; XID_Start # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; XID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; XID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 131974
+# Total code points: 136322
 
 # ================================================
 
@@ -9147,6 +9245,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 0CE2..0CE3    ; XID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; XID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; XID_Continue # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; XID_Continue # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; XID_Continue # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; XID_Continue # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; XID_Continue # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -9200,7 +9299,7 @@ FFDA..FFDC    ; XID_Start # Lo   [3] HAL
 0EBD          ; XID_Continue # Lo       LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4    ; XID_Continue # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; XID_Continue # Lm       LAO KO LA
-0EC8..0ECD    ; XID_Continue # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; XID_Continue # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9    ; XID_Continue # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF    ; XID_Continue # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00          ; XID_Continue # Lo       TIBETAN SYLLABLE OM
@@ -9788,6 +9887,7 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 10E80..10EA9  ; XID_Continue # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
 10EAB..10EAC  ; XID_Continue # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
 10EB0..10EB1  ; XID_Continue # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF  ; XID_Continue # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F00..10F1C  ; XID_Continue # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F27         ; XID_Continue # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
 10F30..10F45  ; XID_Continue # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
@@ -9850,6 +9950,8 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 11235         ; XID_Continue # Mc       KHOJKI SIGN VIRAMA
 11236..11237  ; XID_Continue # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; XID_Continue # Mn       KHOJKI SIGN SUKUN
+1123F..11240  ; XID_Continue # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241         ; XID_Continue # Mn       KHOJKI VOWEL SIGN VOCALIC R
 11280..11286  ; XID_Continue # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; XID_Continue # Lo       MULTANI LETTER GHA
 1128A..1128D  ; XID_Continue # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -10032,12 +10134,27 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 11EE0..11EF2  ; XID_Continue # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
 11EF3..11EF4  ; XID_Continue # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; XID_Continue # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; XID_Continue # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; XID_Continue # Lo       KAWI SIGN REPHA
+11F03         ; XID_Continue # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; XID_Continue # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; XID_Continue # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; XID_Continue # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; XID_Continue # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; XID_Continue # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; XID_Continue # Mn       KAWI VOWEL SIGN EU
+11F41         ; XID_Continue # Mc       KAWI SIGN KILLER
+11F42         ; XID_Continue # Mn       KAWI CONJOINER
+11F50..11F59  ; XID_Continue # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0         ; XID_Continue # Lo       LISU LETTER YHA
 12000..12399  ; XID_Continue # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; XID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; XID_Continue # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; XID_Continue # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; XID_Continue # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; XID_Continue # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13440         ; XID_Continue # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446  ; XID_Continue # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455  ; XID_Continue # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..14646  ; XID_Continue # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; XID_Continue # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; XID_Continue # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -10070,7 +10187,9 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 1AFF5..1AFFB  ; XID_Continue # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; XID_Continue # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; XID_Continue # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; XID_Continue # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; XID_Continue # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; XID_Continue # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; XID_Continue # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; XID_Continue # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; XID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -10127,11 +10246,14 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 1DF00..1DF09  ; XID_Continue # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; XID_Continue # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; XID_Continue # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; XID_Continue # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006  ; XID_Continue # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018  ; XID_Continue # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021  ; XID_Continue # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; XID_Continue # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; XID_Continue # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D  ; XID_Continue # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; XID_Continue # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C  ; XID_Continue # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E130..1E136  ; XID_Continue # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D  ; XID_Continue # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -10142,6 +10264,10 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 1E2C0..1E2EB  ; XID_Continue # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
 1E2EC..1E2EF  ; XID_Continue # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
 1E2F0..1E2F9  ; XID_Continue # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4D0..1E4EA  ; XID_Continue # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; XID_Continue # Lm       NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF  ; XID_Continue # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9  ; XID_Continue # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6  ; XID_Continue # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; XID_Continue # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; XID_Continue # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -10187,15 +10313,16 @@ FFDA..FFDC    ; XID_Continue # Lo   [3] 
 1EEAB..1EEBB  ; XID_Continue # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 1FBF0..1FBF9  ; XID_Continue # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 20000..2A6DF  ; XID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; XID_Continue # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; XID_Continue # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; XID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; XID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; XID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; XID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; XID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 135053
+# Total code points: 139463
 
 # ================================================
 
@@ -10206,7 +10333,7 @@ E0100..E01EF  ; XID_Continue # Mn [240] 
 #  + Variation_Selector
 #  - White_Space
 #  - FFF9..FFFB (Interlinear annotation format characters)
-#  - 13430..13438 (Egyptian hieroglyph format characters)
+#  - 13430..13440 (Egyptian hieroglyph format characters)
 #  - Prepended_Concatenation_Mark (Exceptional format characters that should be visible)
 
 00AD          ; Default_Ignorable_Code_Point # Cf       SOFT HYPHEN
@@ -10351,7 +10478,7 @@ E01F0..E0FFF  ; Default_Ignorable_Code_P
 0E47..0E4E    ; Grapheme_Extend # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; Grapheme_Extend # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; Grapheme_Extend # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; Grapheme_Extend # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Grapheme_Extend # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; Grapheme_Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; Grapheme_Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Grapheme_Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -10490,6 +10617,7 @@ FF9E..FF9F    ; Grapheme_Extend # Lm   [
 10AE5..10AE6  ; Grapheme_Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; Grapheme_Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; Grapheme_Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; Grapheme_Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Grapheme_Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Grapheme_Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11001         ; Grapheme_Extend # Mn       BRAHMI SIGN ANUSVARA
@@ -10512,6 +10640,7 @@ FF9E..FF9F    ; Grapheme_Extend # Lm   [
 11234         ; Grapheme_Extend # Mn       KHOJKI SIGN ANUSVARA
 11236..11237  ; Grapheme_Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; Grapheme_Extend # Mn       KHOJKI SIGN SUKUN
+11241         ; Grapheme_Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Grapheme_Extend # Mn       KHUDAWADI SIGN ANUSVARA
 112E3..112EA  ; Grapheme_Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
 11300..11301  ; Grapheme_Extend # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -10579,6 +10708,12 @@ FF9E..FF9F    ; Grapheme_Extend # Lm   [
 11D95         ; Grapheme_Extend # Mn       GUNJALA GONDI SIGN ANUSVARA
 11D97         ; Grapheme_Extend # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; Grapheme_Extend # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11F00..11F01  ; Grapheme_Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A  ; Grapheme_Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40         ; Grapheme_Extend # Mn       KAWI VOWEL SIGN EU
+11F42         ; Grapheme_Extend # Mn       KAWI CONJOINER
+13440         ; Grapheme_Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; Grapheme_Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Grapheme_Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Grapheme_Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; Grapheme_Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -10605,15 +10740,17 @@ FF9E..FF9F    ; Grapheme_Extend # Lm   [
 1E01B..1E021  ; Grapheme_Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Grapheme_Extend # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Grapheme_Extend # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; Grapheme_Extend # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; Grapheme_Extend # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; Grapheme_Extend # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Grapheme_Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; Grapheme_Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; Grapheme_Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; Grapheme_Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 E0020..E007F  ; Grapheme_Extend # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2090
+# Total code points: 2125
 
 # ================================================
 
@@ -10913,6 +11050,7 @@ E0100..E01EF  ; Grapheme_Extend # Mn [24
 0CE0..0CE1    ; Grapheme_Base # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
 0CE6..0CEF    ; Grapheme_Base # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; Grapheme_Base # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; Grapheme_Base # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D02..0D03    ; Grapheme_Base # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; Grapheme_Base # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; Grapheme_Base # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -11965,6 +12103,7 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 11232..11233  ; Grapheme_Base # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
 11235         ; Grapheme_Base # Mc       KHOJKI SIGN VIRAMA
 11238..1123D  ; Grapheme_Base # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+1123F..11240  ; Grapheme_Base # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; Grapheme_Base # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; Grapheme_Base # Lo       MULTANI LETTER GHA
 1128A..1128D  ; Grapheme_Base # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -12080,6 +12219,7 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 11A9D         ; Grapheme_Base # Lo       SOYOMBO MARK PLUTA
 11A9E..11AA2  ; Grapheme_Base # Po   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
 11AB0..11AF8  ; Grapheme_Base # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09  ; Grapheme_Base # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08  ; Grapheme_Base # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E  ; Grapheme_Base # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F         ; Grapheme_Base # Mc       BHAIKSUKI VOWEL SIGN AA
@@ -12109,6 +12249,15 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 11EE0..11EF2  ; Grapheme_Base # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
 11EF5..11EF6  ; Grapheme_Base # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8  ; Grapheme_Base # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F02         ; Grapheme_Base # Lo       KAWI SIGN REPHA
+11F03         ; Grapheme_Base # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; Grapheme_Base # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; Grapheme_Base # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; Grapheme_Base # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F3E..11F3F  ; Grapheme_Base # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F41         ; Grapheme_Base # Mc       KAWI SIGN KILLER
+11F43..11F4F  ; Grapheme_Base # Po  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59  ; Grapheme_Base # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0         ; Grapheme_Base # Lo       LISU LETTER YHA
 11FC0..11FD4  ; Grapheme_Base # No  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC  ; Grapheme_Base # So   [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -12121,7 +12270,8 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 12480..12543  ; Grapheme_Base # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; Grapheme_Base # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 12FF1..12FF2  ; Grapheme_Base # Po   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E  ; Grapheme_Base # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; Grapheme_Base # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; Grapheme_Base # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; Grapheme_Base # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; Grapheme_Base # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; Grapheme_Base # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -12159,7 +12309,9 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 1AFF5..1AFFB  ; Grapheme_Base # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; Grapheme_Base # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; Grapheme_Base # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; Grapheme_Base # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; Grapheme_Base # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; Grapheme_Base # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Grapheme_Base # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; Grapheme_Base # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; Grapheme_Base # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -12180,6 +12332,7 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 1D1AE..1D1EA  ; Grapheme_Base # So  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
 1D200..1D241  ; Grapheme_Base # So  [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D245         ; Grapheme_Base # So       GREEK MUSICAL LEIMMA
+1D2C0..1D2D3  ; Grapheme_Base # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; Grapheme_Base # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356  ; Grapheme_Base # So  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378  ; Grapheme_Base # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -12233,6 +12386,8 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 1DF00..1DF09  ; Grapheme_Base # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; Grapheme_Base # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; Grapheme_Base # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Grapheme_Base # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; Grapheme_Base # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; Grapheme_Base # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; Grapheme_Base # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E140..1E149  ; Grapheme_Base # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
@@ -12242,6 +12397,9 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 1E2C0..1E2EB  ; Grapheme_Base # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
 1E2F0..1E2F9  ; Grapheme_Base # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
 1E2FF         ; Grapheme_Base # Sc       WANCHO NGUN SIGN
+1E4D0..1E4EA  ; Grapheme_Base # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; Grapheme_Base # Lm       NAG MUNDARI SIGN OJOD
+1E4F0..1E4F9  ; Grapheme_Base # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6  ; Grapheme_Base # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; Grapheme_Base # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; Grapheme_Base # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -12310,10 +12468,10 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 1F300..1F3FA  ; Grapheme_Base # So [251] CYCLONE..AMPHORA
 1F3FB..1F3FF  ; Grapheme_Base # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 1F400..1F6D7  ; Grapheme_Base # So [728] RAT..ELEVATOR
-1F6DD..1F6EC  ; Grapheme_Base # So  [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6DC..1F6EC  ; Grapheme_Base # So  [17] WIRELESS..AIRPLANE ARRIVING
 1F6F0..1F6FC  ; Grapheme_Base # So  [13] SATELLITE..ROLLER SKATE
-1F700..1F773  ; Grapheme_Base # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8  ; Grapheme_Base # So  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776  ; Grapheme_Base # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9  ; Grapheme_Base # So  [95] HAUMEA..NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; Grapheme_Base # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0         ; Grapheme_Base # So       HEAVY EQUALS SIGN
 1F800..1F80B  ; Grapheme_Base # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -12324,27 +12482,26 @@ FFFC..FFFD    ; Grapheme_Base # So   [2]
 1F8B0..1F8B1  ; Grapheme_Base # So   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
 1F900..1FA53  ; Grapheme_Base # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
 1FA60..1FA6D  ; Grapheme_Base # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74  ; Grapheme_Base # So   [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C  ; Grapheme_Base # So   [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86  ; Grapheme_Base # So   [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC  ; Grapheme_Base # So  [29] RINGED PLANET..HAMSA
-1FAB0..1FABA  ; Grapheme_Base # So  [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5  ; Grapheme_Base # So   [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9  ; Grapheme_Base # So  [10] BLUEBERRIES..JAR
-1FAE0..1FAE7  ; Grapheme_Base # So   [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6  ; Grapheme_Base # So   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C  ; Grapheme_Base # So  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; Grapheme_Base # So   [9] YO-YO..FLUTE
+1FA90..1FABD  ; Grapheme_Base # So  [46] RINGED PLANET..WING
+1FABF..1FAC5  ; Grapheme_Base # So   [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB  ; Grapheme_Base # So  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; Grapheme_Base # So   [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8  ; Grapheme_Base # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 1FB00..1FB92  ; Grapheme_Base # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; Grapheme_Base # So  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 1FBF0..1FBF9  ; Grapheme_Base # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 20000..2A6DF  ; Grapheme_Base # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; Grapheme_Base # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; Grapheme_Base # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Grapheme_Base # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Grapheme_Base # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; Grapheme_Base # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Grapheme_Base # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 142539
+# Total code points: 146986
 
 # ================================================
 
@@ -12410,7 +12567,9 @@ ABED          ; Grapheme_Link # Mn      
 11C3F         ; Grapheme_Link # Mn       BHAIKSUKI SIGN VIRAMA
 11D44..11D45  ; Grapheme_Link # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
 11D97         ; Grapheme_Link # Mn       GUNJALA GONDI VIRAMA
+11F41         ; Grapheme_Link # Mc       KAWI SIGN KILLER
+11F42         ; Grapheme_Link # Mn       KAWI CONJOINER
 
-# Total code points: 63
+# Total code points: 65
 
 # EOF
Index: gnu/usr.bin/perl/lib/unicore/DNormalizationProps.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/DNormalizationProps.txt,v
diff -u -p -a -u -p -r1.6 DNormalizationProps.txt
--- gnu/usr.bin/perl/lib/unicore/DNormalizationProps.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/DNormalizationProps.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedNormalizationProps-14.0.0.txt
-# Date: 2021-06-04, 02:19:20 GMT
-# © 2021 Unicode®, Inc.
+# DerivedNormalizationProps-15.0.0.txt
+# Date: 2022-04-02, 01:29:03 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -1652,6 +1652,7 @@ FFED..FFEE    ; NFKD_QC; N # So   [2] HA
 1D7C3         ; NFKD_QC; N # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; NFKD_QC; N # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; NFKD_QC; N # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D  ; NFKD_QC; N # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1EE00..1EE03  ; NFKD_QC; N # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; NFKD_QC; N # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; NFKD_QC; N # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1697,7 +1698,7 @@ FFED..FFEE    ; NFKD_QC; N # So   [2] HA
 1FBF0..1FBF9  ; NFKD_QC; N # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 2F800..2FA1D  ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 16967
+# Total code points: 17029
 
 # ================================================
 
@@ -2060,6 +2061,7 @@ FFED..FFEE    ; NFKC_QC; N # So   [2] HA
 1D7C3         ; NFKC_QC; N # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; NFKC_QC; N # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; NFKC_QC; N # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D  ; NFKC_QC; N # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1EE00..1EE03  ; NFKC_QC; N # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; NFKC_QC; N # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; NFKC_QC; N # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2105,7 +2107,7 @@ FFED..FFEE    ; NFKC_QC; N # So   [2] HA
 1FBF0..1FBF9  ; NFKC_QC; N # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 2F800..2FA1D  ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 4866
+# Total code points: 4928
 
 # ================================================
 
@@ -8076,6 +8078,68 @@ FFF0..FFF8    ; NFKC_CF;                
 1D7FD         ; NFKC_CF; 0037           # Nd       MATHEMATICAL MONOSPACE DIGIT SEVEN
 1D7FE         ; NFKC_CF; 0038           # Nd       MATHEMATICAL MONOSPACE DIGIT EIGHT
 1D7FF         ; NFKC_CF; 0039           # Nd       MATHEMATICAL MONOSPACE DIGIT NINE
+1E030         ; NFKC_CF; 0430           # Lm       MODIFIER LETTER CYRILLIC SMALL A
+1E031         ; NFKC_CF; 0431           # Lm       MODIFIER LETTER CYRILLIC SMALL BE
+1E032         ; NFKC_CF; 0432           # Lm       MODIFIER LETTER CYRILLIC SMALL VE
+1E033         ; NFKC_CF; 0433           # Lm       MODIFIER LETTER CYRILLIC SMALL GHE
+1E034         ; NFKC_CF; 0434           # Lm       MODIFIER LETTER CYRILLIC SMALL DE
+1E035         ; NFKC_CF; 0435           # Lm       MODIFIER LETTER CYRILLIC SMALL IE
+1E036         ; NFKC_CF; 0436           # Lm       MODIFIER LETTER CYRILLIC SMALL ZHE
+1E037         ; NFKC_CF; 0437           # Lm       MODIFIER LETTER CYRILLIC SMALL ZE
+1E038         ; NFKC_CF; 0438           # Lm       MODIFIER LETTER CYRILLIC SMALL I
+1E039         ; NFKC_CF; 043A           # Lm       MODIFIER LETTER CYRILLIC SMALL KA
+1E03A         ; NFKC_CF; 043B           # Lm       MODIFIER LETTER CYRILLIC SMALL EL
+1E03B         ; NFKC_CF; 043C           # Lm       MODIFIER LETTER CYRILLIC SMALL EM
+1E03C         ; NFKC_CF; 043E           # Lm       MODIFIER LETTER CYRILLIC SMALL O
+1E03D         ; NFKC_CF; 043F           # Lm       MODIFIER LETTER CYRILLIC SMALL PE
+1E03E         ; NFKC_CF; 0440           # Lm       MODIFIER LETTER CYRILLIC SMALL ER
+1E03F         ; NFKC_CF; 0441           # Lm       MODIFIER LETTER CYRILLIC SMALL ES
+1E040         ; NFKC_CF; 0442           # Lm       MODIFIER LETTER CYRILLIC SMALL TE
+1E041         ; NFKC_CF; 0443           # Lm       MODIFIER LETTER CYRILLIC SMALL U
+1E042         ; NFKC_CF; 0444           # Lm       MODIFIER LETTER CYRILLIC SMALL EF
+1E043         ; NFKC_CF; 0445           # Lm       MODIFIER LETTER CYRILLIC SMALL HA
+1E044         ; NFKC_CF; 0446           # Lm       MODIFIER LETTER CYRILLIC SMALL TSE
+1E045         ; NFKC_CF; 0447           # Lm       MODIFIER LETTER CYRILLIC SMALL CHE
+1E046         ; NFKC_CF; 0448           # Lm       MODIFIER LETTER CYRILLIC SMALL SHA
+1E047         ; NFKC_CF; 044B           # Lm       MODIFIER LETTER CYRILLIC SMALL YERU
+1E048         ; NFKC_CF; 044D           # Lm       MODIFIER LETTER CYRILLIC SMALL E
+1E049         ; NFKC_CF; 044E           # Lm       MODIFIER LETTER CYRILLIC SMALL YU
+1E04A         ; NFKC_CF; A689           # Lm       MODIFIER LETTER CYRILLIC SMALL DZZE
+1E04B         ; NFKC_CF; 04D9           # Lm       MODIFIER LETTER CYRILLIC SMALL SCHWA
+1E04C         ; NFKC_CF; 0456           # Lm       MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+1E04D         ; NFKC_CF; 0458           # Lm       MODIFIER LETTER CYRILLIC SMALL JE
+1E04E         ; NFKC_CF; 04E9           # Lm       MODIFIER LETTER CYRILLIC SMALL BARRED O
+1E04F         ; NFKC_CF; 04AF           # Lm       MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+1E050         ; NFKC_CF; 04CF           # Lm       MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E051         ; NFKC_CF; 0430           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER A
+1E052         ; NFKC_CF; 0431           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER BE
+1E053         ; NFKC_CF; 0432           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER VE
+1E054         ; NFKC_CF; 0433           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER GHE
+1E055         ; NFKC_CF; 0434           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER DE
+1E056         ; NFKC_CF; 0435           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER IE
+1E057         ; NFKC_CF; 0436           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+1E058         ; NFKC_CF; 0437           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER ZE
+1E059         ; NFKC_CF; 0438           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER I
+1E05A         ; NFKC_CF; 043A           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER KA
+1E05B         ; NFKC_CF; 043B           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER EL
+1E05C         ; NFKC_CF; 043E           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER O
+1E05D         ; NFKC_CF; 043F           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER PE
+1E05E         ; NFKC_CF; 0441           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER ES
+1E05F         ; NFKC_CF; 0443           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER U
+1E060         ; NFKC_CF; 0444           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER EF
+1E061         ; NFKC_CF; 0445           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER HA
+1E062         ; NFKC_CF; 0446           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER TSE
+1E063         ; NFKC_CF; 0447           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER CHE
+1E064         ; NFKC_CF; 0448           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER SHA
+1E065         ; NFKC_CF; 044A           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+1E066         ; NFKC_CF; 044B           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER YERU
+1E067         ; NFKC_CF; 0491           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+1E068         ; NFKC_CF; 0456           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E069         ; NFKC_CF; 0455           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER DZE
+1E06A         ; NFKC_CF; 045F           # Lm       CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+1E06B         ; NFKC_CF; 04AB           # Lm       MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+1E06C         ; NFKC_CF; A651           # Lm       MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+1E06D         ; NFKC_CF; 04B1           # Lm       MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E900         ; NFKC_CF; 1E922          # L&       ADLAM CAPITAL LETTER ALIF
 1E901         ; NFKC_CF; 1E923          # L&       ADLAM CAPITAL LETTER DAALI
 1E902         ; NFKC_CF; 1E924          # L&       ADLAM CAPITAL LETTER LAAM
@@ -8937,7 +9001,7 @@ E0080..E00FF  ; NFKC_CF;                
 E0100..E01EF  ; NFKC_CF;                # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 E01F0..E0FFF  ; NFKC_CF;                # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 10429
+# Total code points: 10491
 
 # ================================================
 
@@ -9895,6 +9959,7 @@ FFF0..FFF8    ; Changes_When_NFKC_Casefo
 1D7C3         ; Changes_When_NFKC_Casefolded # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
 1D7C4..1D7CB  ; Changes_When_NFKC_Casefolded # L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; Changes_When_NFKC_Casefolded # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D  ; Changes_When_NFKC_Casefolded # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E900..1E921  ; Changes_When_NFKC_Casefolded # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
 1EE00..1EE03  ; Changes_When_NFKC_Casefolded # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; Changes_When_NFKC_Casefolded # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
@@ -9948,6 +10013,6 @@ E0080..E00FF  ; Changes_When_NFKC_Casefo
 E0100..E01EF  ; Changes_When_NFKC_Casefolded # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 E01F0..E0FFF  ; Changes_When_NFKC_Casefolded # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 10429
+# Total code points: 10491
 
 # EOF
Index: gnu/usr.bin/perl/lib/unicore/Decomposition.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Decomposition.pl,v
diff -u -p -a -u -p -r1.12 Decomposition.pl
--- gnu/usr.bin/perl/lib/unicore/Decomposition.pl	15 Feb 2023 01:39:49 -0000	1.12
+++ gnu/usr.bin/perl/lib/unicore/Decomposition.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -4957,6 +4957,68 @@ FFEE		<narrow> 25CB
 1D7FD		<font> 0037
 1D7FE		<font> 0038
 1D7FF		<font> 0039
+1E030		<super> 0430
+1E031		<super> 0431
+1E032		<super> 0432
+1E033		<super> 0433
+1E034		<super> 0434
+1E035		<super> 0435
+1E036		<super> 0436
+1E037		<super> 0437
+1E038		<super> 0438
+1E039		<super> 043A
+1E03A		<super> 043B
+1E03B		<super> 043C
+1E03C		<super> 043E
+1E03D		<super> 043F
+1E03E		<super> 0440
+1E03F		<super> 0441
+1E040		<super> 0442
+1E041		<super> 0443
+1E042		<super> 0444
+1E043		<super> 0445
+1E044		<super> 0446
+1E045		<super> 0447
+1E046		<super> 0448
+1E047		<super> 044B
+1E048		<super> 044D
+1E049		<super> 044E
+1E04A		<super> A689
+1E04B		<super> 04D9
+1E04C		<super> 0456
+1E04D		<super> 0458
+1E04E		<super> 04E9
+1E04F		<super> 04AF
+1E050		<super> 04CF
+1E051		<sub> 0430
+1E052		<sub> 0431
+1E053		<sub> 0432
+1E054		<sub> 0433
+1E055		<sub> 0434
+1E056		<sub> 0435
+1E057		<sub> 0436
+1E058		<sub> 0437
+1E059		<sub> 0438
+1E05A		<sub> 043A
+1E05B		<sub> 043B
+1E05C		<sub> 043E
+1E05D		<sub> 043F
+1E05E		<sub> 0441
+1E05F		<sub> 0443
+1E060		<sub> 0444
+1E061		<sub> 0445
+1E062		<sub> 0446
+1E063		<sub> 0447
+1E064		<sub> 0448
+1E065		<sub> 044A
+1E066		<sub> 044B
+1E067		<sub> 0491
+1E068		<sub> 0456
+1E069		<sub> 0455
+1E06A		<sub> 045F
+1E06B		<super> 04AB
+1E06C		<super> A651
+1E06D		<super> 04B1
 1EE00		<font> 0627
 1EE01		<font> 0628
 1EE02		<font> 062C
Index: gnu/usr.bin/perl/lib/unicore/EastAsianWidth.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/EastAsianWidth.txt,v
diff -u -p -a -u -p -r1.6 EastAsianWidth.txt
--- gnu/usr.bin/perl/lib/unicore/EastAsianWidth.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/EastAsianWidth.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# EastAsianWidth-14.0.0.txt
-# Date: 2021-07-06, 09:58:53 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
+# EastAsianWidth-15.0.0.txt
+# Date: 2022-05-24, 17:40:20 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
@@ -534,6 +534,7 @@
 0CE2..0CE3;N     # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF;N     # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2;N     # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3;N           # Mc         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01;N     # Mn     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03;N     # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C;N     # Lo     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -595,7 +596,7 @@
 0EBD;N           # Lo         LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4;N     # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6;N           # Lm         LAO KO LA
-0EC8..0ECD;N     # Mn     [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE;N     # Mn     [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9;N     # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF;N     # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00;N           # Lo         TIBETAN SYLLABLE OM
@@ -1946,6 +1947,7 @@ FFFD;A           # So         REPLACEMEN
 10EAB..10EAC;N   # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
 10EAD;N          # Pd         YEZIDI HYPHENATION MARK
 10EB0..10EB1;N   # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF;N   # Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F00..10F1C;N   # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F1D..10F26;N   # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
 10F27;N          # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
@@ -2028,6 +2030,8 @@ FFFD;A           # So         REPLACEMEN
 11236..11237;N   # Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 11238..1123D;N   # Po     [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
 1123E;N          # Mn         KHOJKI SIGN SUKUN
+1123F..11240;N   # Lo     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241;N          # Mn         KHOJKI VOWEL SIGN VOCALIC R
 11280..11286;N   # Lo     [7] MULTANI LETTER A..MULTANI LETTER GA
 11288;N          # Lo         MULTANI LETTER GHA
 1128A..1128D;N   # Lo     [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -2190,6 +2194,7 @@ FFFD;A           # So         REPLACEMEN
 11A9E..11AA2;N   # Po     [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
 11AB0..11ABF;N   # Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
 11AC0..11AF8;N   # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09;N   # Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08;N   # Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E;N   # Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F;N          # Mc         BHAIKSUKI VOWEL SIGN AA
@@ -2235,6 +2240,19 @@ FFFD;A           # So         REPLACEMEN
 11EF3..11EF4;N   # Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6;N   # Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8;N   # Po     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01;N   # Mn     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02;N          # Lo         KAWI SIGN REPHA
+11F03;N          # Mc         KAWI SIGN VISARGA
+11F04..11F10;N   # Lo    [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33;N   # Lo    [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35;N   # Mc     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A;N   # Mn     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F;N   # Mc     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40;N          # Mn         KAWI VOWEL SIGN EU
+11F41;N          # Mc         KAWI SIGN KILLER
+11F42;N          # Mn         KAWI CONJOINER
+11F43..11F4F;N   # Po    [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59;N   # Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0;N          # Lo         LISU LETTER YHA
 11FC0..11FD4;N   # No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC;N   # So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -2247,8 +2265,11 @@ FFFD;A           # So         REPLACEMEN
 12480..12543;N   # Lo   [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0;N   # Lo    [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 12FF1..12FF2;N   # Po     [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E;N   # Lo  [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438;N   # Cf     [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F;N   # Lo  [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F;N   # Cf    [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440;N          # Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446;N   # Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455;N   # Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..14646;N   # Lo   [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38;N   # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E;N   # Lo    [31] MRO LETTER TA..MRO LETTER TEK
@@ -2293,7 +2314,9 @@ FFFD;A           # So         REPLACEMEN
 1AFFD..1AFFE;W   # Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B0FF;W   # Lo   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
 1B100..1B122;W   # Lo    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
+1B132;W          # Lo         HIRAGANA LETTER SMALL KO
 1B150..1B152;W   # Lo     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155;W          # Lo         KATAKANA LETTER SMALL KO
 1B164..1B167;W   # Lo     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB;W   # Lo   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A;N   # Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -2324,6 +2347,7 @@ FFFD;A           # So         REPLACEMEN
 1D200..1D241;N   # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D242..1D244;N   # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
 1D245;N          # So         GREEK MUSICAL LEIMMA
+1D2C0..1D2D3;N   # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3;N   # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356;N   # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378;N   # No    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -2383,11 +2407,14 @@ FFFD;A           # So         REPLACEMEN
 1DF00..1DF09;N   # Ll    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A;N          # Lo         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E;N   # Ll    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A;N   # Ll     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006;N   # Mn     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018;N   # Mn    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021;N   # Mn     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024;N   # Mn     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A;N   # Mn     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D;N   # Lm    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F;N          # Mn         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C;N   # Lo    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E130..1E136;N   # Mn     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D;N   # Lm     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -2400,6 +2427,10 @@ FFFD;A           # So         REPLACEMEN
 1E2EC..1E2EF;N   # Mn     [4] WANCHO TONE TUP..WANCHO TONE KOINI
 1E2F0..1E2F9;N   # Nd    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
 1E2FF;N          # Sc         WANCHO NGUN SIGN
+1E4D0..1E4EA;N   # Lo    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB;N          # Lm         NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF;N   # Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9;N   # Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6;N   # Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB;N   # Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE;N   # Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -2528,13 +2559,14 @@ FFFD;A           # So         REPLACEMEN
 1F6D0..1F6D2;W   # So     [3] PLACE OF WORSHIP..SHOPPING TROLLEY
 1F6D3..1F6D4;N   # So     [2] STUPA..PAGODA
 1F6D5..1F6D7;W   # So     [3] HINDU TEMPLE..ELEVATOR
-1F6DD..1F6DF;W   # So     [3] PLAYGROUND SLIDE..RING BUOY
+1F6DC..1F6DF;W   # So     [4] WIRELESS..RING BUOY
 1F6E0..1F6EA;N   # So    [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
 1F6EB..1F6EC;W   # So     [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
 1F6F0..1F6F3;N   # So     [4] SATELLITE..PASSENGER SHIP
 1F6F4..1F6FC;W   # So     [9] SCOOTER..ROLLER SKATE
-1F700..1F773;N   # So   [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8;N   # So    [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776;N   # So   [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F77F;N   # So     [5] HAUMEA..ORCUS
+1F780..1F7D9;N   # So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
 1F7E0..1F7EB;W   # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0;W          # So         HEAVY EQUALS SIGN
 1F800..1F80B;N   # So    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -2551,22 +2583,20 @@ FFFD;A           # So         REPLACEMEN
 1F947..1F9FF;W   # So   [185] FIRST PLACE MEDAL..NAZAR AMULET
 1FA00..1FA53;N   # So    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
 1FA60..1FA6D;N   # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74;W   # So     [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C;W   # So     [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86;W   # So     [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC;W   # So    [29] RINGED PLANET..HAMSA
-1FAB0..1FABA;W   # So    [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5;W   # So     [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9;W   # So    [10] BLUEBERRIES..JAR
-1FAE0..1FAE7;W   # So     [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6;W   # So     [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C;W   # So    [13] BALLET SHOES..CRUTCH
+1FA80..1FA88;W   # So     [9] YO-YO..FLUTE
+1FA90..1FABD;W   # So    [46] RINGED PLANET..WING
+1FABF..1FAC5;W   # So     [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB;W   # So    [14] MOOSE..PEA POD
+1FAE0..1FAE8;W   # So     [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8;W   # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 1FB00..1FB92;N   # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA;N   # So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 1FBF0..1FBF9;N   # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 20000..2A6DF;W   # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
 2A6E0..2A6FF;W   # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738;W   # Lo  [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F;W   # Cn     [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739;W   # Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F;W   # Cn     [6] <reserved-2B73A>..<reserved-2B73F>
 2B740..2B81D;W   # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B81E..2B81F;W   # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
 2B820..2CEA1;W   # Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
@@ -2577,7 +2607,9 @@ FFFD;A           # So         REPLACEMEN
 2FA1E..2FA1F;W   # Cn     [2] <reserved-2FA1E>..<reserved-2FA1F>
 2FA20..2FFFD;W   # Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>
 30000..3134A;W   # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD;W   # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
+3134B..3134F;W   # Cn     [5] <reserved-3134B>..<reserved-3134F>
+31350..323AF;W   # Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD;W   # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
 E0001;N          # Cf         LANGUAGE TAG
 E0020..E007F;N   # Cf    [96] TAG SPACE..CANCEL TAG
 E0100..E01EF;A   # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
Index: gnu/usr.bin/perl/lib/unicore/EmojiSources.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/EmojiSources.txt,v
diff -u -p -a -u -p -r1.6 EmojiSources.txt
--- gnu/usr.bin/perl/lib/unicore/EmojiSources.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/EmojiSources.txt	21 Feb 2024 15:47:02 -0000
@@ -1,10 +1,10 @@
-# EmojiSources-14.0.0.txt
-# Date: 2021-03-16, 21:39:00 GMT [MS, KW]
-# © 2021 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# EmojiSources-15.0.0.txt
+# Date: 2022-05-03, 18:51:00 GMT [MS, KW]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
 #
 # This file provides historical mappings between Unicode code points and sequences on one hand
 # and Shift-JIS codes for cell phone carrier symbols on the other hand.
@@ -34,7 +34,7 @@
 # in these mappings do not include variation selectors for emoji presentation.
 # Thus they do not match the named character sequences with keycaps listed in
 # NamedSequences.txt.
-# For modern data used in emoji support, see http://www.unicode.org/Public/emoji/latest/
+# For modern data used in emoji support, see https://www.unicode.org/Public/emoji/latest/
 
 0023 20E3;F985;F489;F7B0
 0030 20E3;F990;F7C9;F7C5
Index: gnu/usr.bin/perl/lib/unicore/EquivalentUnifiedIdeograph.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/EquivalentUnifiedIdeograph.txt,v
diff -u -p -a -u -p -r1.1.1.3 EquivalentUnifiedIdeograph.txt
--- gnu/usr.bin/perl/lib/unicore/EquivalentUnifiedIdeograph.txt	15 Feb 2023 01:33:06 -0000	1.1.1.3
+++ gnu/usr.bin/perl/lib/unicore/EquivalentUnifiedIdeograph.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# EquivalentUnifiedIdeograph-14.0.0.txt
-# Date: 2021-03-16, 21:41:00 GMT [KL, KW]
-# © 2021 Unicode®, Inc.
+# EquivalentUnifiedIdeograph-15.0.0.txt
+# Date: 2022-04-26, 20:42:00 GMT [KL, KW]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # For documentation, see UAX #44: Unicode Character Database,
-# at http://www.unicode.org/reports/tr44/
+# at https://www.unicode.org/reports/tr44/
 #
 # This file defines the following property:
 #
@@ -62,7 +62,7 @@
 2E92       ; 5DF3  #     CJK RADICAL SNAKE
 2E93       ; 5E7A  #     CJK RADICAL THREAD
 2E94       ; 5F51  #     CJK RADICAL SNOUT ONE
-2E95       ; 5F50  #     CJK RADICAL SNOUT TWO
+2E95       ; 2B739 #     CJK RADICAL SNOUT TWO
 2E96       ; 5FC4  #     CJK RADICAL HEART ONE
 2E97       ; 5FC3  #     CJK RADICAL HEART TWO
 2E98       ; 624C  #     CJK RADICAL HAND
Index: gnu/usr.bin/perl/lib/unicore/HangulSyllableType.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/HangulSyllableType.txt,v
diff -u -p -a -u -p -r1.6 HangulSyllableType.txt
--- gnu/usr.bin/perl/lib/unicore/HangulSyllableType.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/HangulSyllableType.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# HangulSyllableType-14.0.0.txt
-# Date: 2021-03-08, 19:35:46 GMT
-# © 2021 Unicode®, Inc.
+# HangulSyllableType-15.0.0.txt
+# Date: 2022-02-02, 23:35:41 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/IdStatus.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/IdStatus.txt,v
diff -u -p -a -u -p -r1.1.1.2 IdStatus.txt
--- gnu/usr.bin/perl/lib/unicore/IdStatus.txt	15 Feb 2023 01:33:06 -0000	1.1.1.2
+++ gnu/usr.bin/perl/lib/unicore/IdStatus.txt	21 Feb 2024 15:47:02 -0000
@@ -1,13 +1,13 @@
 # IdentifierStatus.txt
-# Date: 2021-08-12, 01:13:34 GMT
-# © 2021 Unicode®, Inc.
+# Date: 2022-05-18, 21:51:57 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Security Mechanisms for UTS #39
-# Version: 14.0.0
+# Version: 15.0.0
 #
-# For documentation and usage, see http://www.unicode.org/reports/tr39
+# For documentation and usage, see https://www.unicode.org/reports/tr39
 #
 # Format
 #
@@ -284,6 +284,7 @@
 0CE2..0CE3    ; Allowed    # 5.0    [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; Allowed    # 1.1   [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; Allowed    # 5.0    [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; Allowed    # 15.0       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00          ; Allowed    # 10.0       MALAYALAM SIGN COMBINING ANUSVARA ABOVE
 0D02..0D03    ; Allowed    # 1.1    [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; Allowed    # 1.1    [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
@@ -345,6 +346,7 @@
 0EC0..0EC4    ; Allowed    # 1.1    [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; Allowed    # 1.1        LAO KO LA
 0EC8..0ECD    ; Allowed    # 1.1    [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ECE          ; Allowed    # 15.0       LAO YAMAKKAN
 0ED0..0ED9    ; Allowed    # 1.1   [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDE..0EDF    ; Allowed    # 6.1    [2] LAO LETTER KHMU GO..LAO LETTER KHMU NYO
 0F00          ; Allowed    # 2.0        TIBETAN SYLLABLE OM
@@ -483,7 +485,6 @@
 1FF6..1FF8    ; Allowed    # 1.1    [3] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMICRON WITH VARIA
 1FFA          ; Allowed    # 1.1        GREEK CAPITAL LETTER OMEGA WITH VARIA
 1FFC          ; Allowed    # 1.1        GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-200C..200D    ; Allowed    # 1.1    [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 2010          ; Allowed    # 1.1        HYPHEN
 2019          ; Allowed    # 1.1        RIGHT SINGLE QUOTATION MARK
 2027          ; Allowed    # 1.1        HYPHENATION POINT
@@ -562,9 +563,13 @@ FA27..FA29    ; Allowed    # 1.1    [3] 
 1133C         ; Allowed    # 7.0        GRANTHA SIGN NUKTA
 16FF0..16FF1  ; Allowed    # 13.0   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
 1B11F..1B122  ; Allowed    # 14.0   [4] HIRAGANA LETTER ARCHAIC WU..KATAKANA LETTER ARCHAIC WU
+1B132         ; Allowed    # 15.0       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; Allowed    # 12.0   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; Allowed    # 15.0       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Allowed    # 12.0   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1DF00..1DF1E  ; Allowed    # 14.0  [31] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Allowed    # 15.0   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E08F         ; Allowed    # 15.0       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E7E0..1E7E6  ; Allowed    # 14.0   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; Allowed    # 14.0   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; Allowed    # 14.0   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -574,9 +579,11 @@ FA27..FA29    ; Allowed    # 1.1    [3] 
 2A6DE..2A6DF  ; Allowed    # 14.0   [2] CJK UNIFIED IDEOGRAPH-2A6DE..CJK UNIFIED IDEOGRAPH-2A6DF
 2A700..2B734  ; Allowed    # 5.2 [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B735..2B738  ; Allowed    # 14.0   [4] CJK UNIFIED IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738
+2B739         ; Allowed    # 15.0       CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Allowed    # 6.0  [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Allowed    # 8.0 [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Allowed    # 10.0 [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 30000..3134A  ; Allowed    # 13.0 [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Allowed    # 15.0 [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 107957
+# Total code points: 112159
Index: gnu/usr.bin/perl/lib/unicore/IdType.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/IdType.txt,v
diff -u -p -a -u -p -r1.1.1.2 IdType.txt
--- gnu/usr.bin/perl/lib/unicore/IdType.txt	15 Feb 2023 01:33:06 -0000	1.1.1.2
+++ gnu/usr.bin/perl/lib/unicore/IdType.txt	21 Feb 2024 15:47:02 -0000
@@ -1,13 +1,13 @@
 # IdentifierType.txt
-# Date: 2021-08-12, 01:13:33 GMT
-# © 2021 Unicode®, Inc.
+# Date: 2022-05-18, 21:51:56 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Security Mechanisms for UTS #39
-# Version: 14.0.0
+# Version: 15.0.0
 #
-# For documentation and usage, see http://www.unicode.org/reports/tr39
+# For documentation and usage, see https://www.unicode.org/reports/tr39
 #
 # Format
 #
@@ -281,6 +281,7 @@
 0CE2..0CE3    ; Recommended                    # 5.0    [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; Recommended                    # 1.1   [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; Recommended                    # 5.0    [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; Recommended                    # 15.0       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00          ; Recommended                    # 10.0       MALAYALAM SIGN COMBINING ANUSVARA ABOVE
 0D02..0D03    ; Recommended                    # 1.1    [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D05..0D0C    ; Recommended                    # 1.1    [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
@@ -342,6 +343,7 @@
 0EC0..0EC4    ; Recommended                    # 1.1    [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; Recommended                    # 1.1        LAO KO LA
 0EC8..0ECD    ; Recommended                    # 1.1    [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ECE          ; Recommended                    # 15.0       LAO YAMAKKAN
 0ED0..0ED9    ; Recommended                    # 1.1   [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDE..0EDF    ; Recommended                    # 6.1    [2] LAO LETTER KHMU GO..LAO LETTER KHMU NYO
 0F00          ; Recommended                    # 2.0        TIBETAN SYLLABLE OM
@@ -554,9 +556,13 @@ FA27..FA29    ; Recommended             
 1133C         ; Recommended                    # 7.0        GRANTHA SIGN NUKTA
 16FF0..16FF1  ; Recommended                    # 13.0   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
 1B11F..1B122  ; Recommended                    # 14.0   [4] HIRAGANA LETTER ARCHAIC WU..KATAKANA LETTER ARCHAIC WU
+1B132         ; Recommended                    # 15.0       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; Recommended                    # 12.0   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; Recommended                    # 15.0       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Recommended                    # 12.0   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1DF00..1DF1E  ; Recommended                    # 14.0  [31] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Recommended                    # 15.0   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E08F         ; Recommended                    # 15.0       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E7E0..1E7E6  ; Recommended                    # 14.0   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; Recommended                    # 14.0   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; Recommended                    # 14.0   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -566,12 +572,14 @@ FA27..FA29    ; Recommended             
 2A6DE..2A6DF  ; Recommended                    # 14.0   [2] CJK UNIFIED IDEOGRAPH-2A6DE..CJK UNIFIED IDEOGRAPH-2A6DF
 2A700..2B734  ; Recommended                    # 5.2 [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
 2B735..2B738  ; Recommended                    # 14.0   [4] CJK UNIFIED IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738
+2B739         ; Recommended                    # 15.0       CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Recommended                    # 6.0  [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Recommended                    # 8.0 [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Recommended                    # 10.0 [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 30000..3134A  ; Recommended                    # 13.0 [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Recommended                    # 15.0 [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 107938
+# Total code points: 112142
 
 #	Identifier_Type:	Inclusion
 
@@ -584,14 +592,13 @@ FA27..FA29    ; Recommended             
 05F3..05F4    ; Inclusion                      # 1.1    [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
 06FD..06FE    ; Inclusion                      # 3.0    [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
 0F0B          ; Inclusion                      # 2.0        TIBETAN MARK INTERSYLLABIC TSHEG
-200C..200D    ; Inclusion                      # 1.1    [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
 2010          ; Inclusion                      # 1.1        HYPHEN
 2019          ; Inclusion                      # 1.1        RIGHT SINGLE QUOTATION MARK
 2027          ; Inclusion                      # 1.1        HYPHENATION POINT
 30A0          ; Inclusion                      # 3.2        KATAKANA-HIRAGANA DOUBLE HYPHEN
 30FB          ; Inclusion                      # 1.1        KATAKANA MIDDLE DOT
 
-# Total code points: 19
+# Total code points: 17
 
 #	Identifier_Type:	Limited_Use
 
@@ -853,11 +860,12 @@ A78F          ; Uncommon_Use            
 A7B2..A7B7    ; Uncommon_Use                   # 8.0    [6] LATIN CAPITAL LETTER J WITH CROSSED-TAIL..LATIN SMALL LETTER OMEGA
 AB60..AB63    ; Uncommon_Use                   # 8.0    [4] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER UO
 10780         ; Uncommon_Use                   # 14.0       MODIFIER LETTER SMALL CAPITAL AA
+10EFD..10EFF  ; Uncommon_Use                   # 15.0   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 1AFF0..1AFF3  ; Uncommon_Use                   # 14.0   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
 1AFF5..1AFFB  ; Uncommon_Use                   # 14.0   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; Uncommon_Use                   # 14.0   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 
-# Total code points: 308
+# Total code points: 311
 
 #	Identifier_Type:	Uncommon_Use Technical
 
@@ -1222,6 +1230,7 @@ A930..A953    ; Exclusion               
 11200..11211  ; Exclusion                      # 7.0   [18] KHOJKI LETTER A..KHOJKI LETTER JJA
 11213..11237  ; Exclusion                      # 7.0   [37] KHOJKI LETTER NYA..KHOJKI SIGN SHADDA
 1123E         ; Exclusion                      # 9.0        KHOJKI SIGN SUKUN
+1123F..11241  ; Exclusion                      # 15.0   [3] KHOJKI LETTER QA..KHOJKI VOWEL SIGN VOCALIC R
 11280..11286  ; Exclusion                      # 8.0    [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; Exclusion                      # 8.0        MULTANI LETTER GHA
 1128A..1128D  ; Exclusion                      # 8.0    [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1299,6 +1308,10 @@ A930..A953    ; Exclusion               
 11D3F..11D47  ; Exclusion                      # 10.0   [9] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI RA-KARA
 11D50..11D59  ; Exclusion                      # 10.0  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11EE0..11EF6  ; Exclusion                      # 11.0  [23] MAKASAR LETTER KA..MAKASAR VOWEL SIGN O
+11F00..11F10  ; Exclusion                      # 15.0  [17] KAWI SIGN CANDRABINDU..KAWI LETTER O
+11F12..11F3A  ; Exclusion                      # 15.0  [41] KAWI LETTER KA..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F42  ; Exclusion                      # 15.0   [5] KAWI VOWEL SIGN E..KAWI CONJOINER
+11F50..11F59  ; Exclusion                      # 15.0  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 12000..1236E  ; Exclusion                      # 5.0  [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
 1236F..12398  ; Exclusion                      # 7.0   [42] CUNEIFORM SIGN KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME
 12399         ; Exclusion                      # 8.0        CUNEIFORM SIGN U U
@@ -1307,6 +1320,8 @@ A930..A953    ; Exclusion               
 12480..12543  ; Exclusion                      # 8.0  [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; Exclusion                      # 14.0  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 13000..1342E  ; Exclusion                      # 5.2 [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+1342F         ; Exclusion                      # 15.0       EGYPTIAN HIEROGLYPH V011D
+13440..13455  ; Exclusion                      # 15.0  [22] EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..14646  ; Exclusion                      # 8.0  [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16A70..16ABE  ; Exclusion                      # 14.0  [79] TANGSA LETTER OZ..TANGSA LETTER ZA
 16AC0..16AC9  ; Exclusion                      # 14.0  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
@@ -1345,10 +1360,11 @@ A930..A953    ; Exclusion               
 1E023..1E024  ; Exclusion                      # 9.0    [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Exclusion                      # 9.0    [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
 1E290..1E2AE  ; Exclusion                      # 14.0  [31] TOTO LETTER PA..TOTO SIGN RISING TONE
+1E4D0..1E4F9  ; Exclusion                      # 15.0  [42] NAG MUNDARI LETTER O..NAG MUNDARI DIGIT NINE
 1E800..1E8C4  ; Exclusion                      # 7.0  [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
 1E8D0..1E8D6  ; Exclusion                      # 7.0    [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 
-# Total code points: 15930
+# Total code points: 16071
 
 #	Identifier_Type:	Exclusion Not_XID
 
@@ -1429,10 +1445,12 @@ A95F          ; Exclusion Not_XID       
 11C5A..11C6C  ; Exclusion Not_XID              # 9.0   [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
 11C70..11C71  ; Exclusion Not_XID              # 9.0    [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
 11EF7..11EF8  ; Exclusion Not_XID              # 11.0   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F4F  ; Exclusion Not_XID              # 15.0  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
 12470..12473  ; Exclusion Not_XID              # 5.0    [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
 12474         ; Exclusion Not_XID              # 7.0        CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 12FF1..12FF2  ; Exclusion Not_XID              # 14.0   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
 13430..13438  ; Exclusion Not_XID              # 12.0   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13439..1343F  ; Exclusion Not_XID              # 15.0   [7] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
 16A6E..16A6F  ; Exclusion Not_XID              # 7.0    [2] MRO DANDA..MRO DOUBLE DANDA
 16AF5         ; Exclusion Not_XID              # 7.0        BASSA VAH FULL STOP
 16B37..16B3F  ; Exclusion Not_XID              # 7.0    [9] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN XYEEM FAIB
@@ -1448,7 +1466,7 @@ A95F          ; Exclusion Not_XID       
 1DA85..1DA8B  ; Exclusion Not_XID              # 8.0    [7] SIGNWRITING LOCATION TORSO..SIGNWRITING PARENTHESIS
 1E8C7..1E8CF  ; Exclusion Not_XID              # 7.0    [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
 
-# Total code points: 1105
+# Total code points: 1125
 
 #	Identifier_Type:	Obsolete
 
@@ -1903,9 +1921,11 @@ FFFD          ; Not_XID                 
 101A0         ; Not_XID                        # 7.0        GREEK SYMBOL TAU RHO
 10E60..10E7E  ; Not_XID                        # 5.2   [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
 111E1..111F4  ; Not_XID                        # 7.0   [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11B00..11B09  ; Not_XID                        # 15.0  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11FC0..11FF1  ; Not_XID                        # 12.0  [50] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL SIGN VAKAIYARAA
 11FFF         ; Not_XID                        # 12.0       TAMIL PUNCTUATION END OF TEXT
 16FE2         ; Not_XID                        # 12.0       OLD CHINESE HOOK MARK
+1D2C0..1D2D3  ; Not_XID                        # 15.0  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; Not_XID                        # 11.0  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D360..1D371  ; Not_XID                        # 5.0   [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
 1D372..1D378  ; Not_XID                        # 11.0   [7] IDEOGRAPHIC TALLY MARK ONE..TALLY MARK FIVE
@@ -2016,6 +2036,7 @@ FFFD          ; Not_XID                 
 1F6D3..1F6D4  ; Not_XID                        # 10.0   [2] STUPA..PAGODA
 1F6D5         ; Not_XID                        # 12.0       HINDU TEMPLE
 1F6D6..1F6D7  ; Not_XID                        # 13.0   [2] HUT..ELEVATOR
+1F6DC         ; Not_XID                        # 15.0       WIRELESS
 1F6DD..1F6DF  ; Not_XID                        # 14.0   [3] PLAYGROUND SLIDE..RING BUOY
 1F6E0..1F6EC  ; Not_XID                        # 7.0   [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
 1F6F0..1F6F3  ; Not_XID                        # 7.0    [4] SATELLITE..PASSENGER SHIP
@@ -2025,8 +2046,11 @@ FFFD          ; Not_XID                 
 1F6FA         ; Not_XID                        # 12.0       AUTO RICKSHAW
 1F6FB..1F6FC  ; Not_XID                        # 13.0   [2] PICKUP TRUCK..ROLLER SKATE
 1F700..1F773  ; Not_XID                        # 6.0  [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F774..1F776  ; Not_XID                        # 15.0   [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F77B..1F77F  ; Not_XID                        # 15.0   [5] HAUMEA..ORCUS
 1F780..1F7D4  ; Not_XID                        # 7.0   [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
 1F7D5..1F7D8  ; Not_XID                        # 11.0   [4] CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7D9         ; Not_XID                        # 15.0       NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; Not_XID                        # 12.0  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0         ; Not_XID                        # 14.0       HEAVY EQUALS SIGN
 1F800..1F80B  ; Not_XID                        # 7.0   [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -2083,25 +2107,34 @@ FFFD          ; Not_XID                 
 1FA60..1FA6D  ; Not_XID                        # 11.0  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
 1FA70..1FA73  ; Not_XID                        # 12.0   [4] BALLET SHOES..SHORTS
 1FA74         ; Not_XID                        # 13.0       THONG SANDAL
+1FA75..1FA77  ; Not_XID                        # 15.0   [3] LIGHT BLUE HEART..PINK HEART
 1FA78..1FA7A  ; Not_XID                        # 12.0   [3] DROP OF BLOOD..STETHOSCOPE
 1FA7B..1FA7C  ; Not_XID                        # 14.0   [2] X-RAY..CRUTCH
 1FA80..1FA82  ; Not_XID                        # 12.0   [3] YO-YO..PARACHUTE
 1FA83..1FA86  ; Not_XID                        # 13.0   [4] BOOMERANG..NESTING DOLLS
+1FA87..1FA88  ; Not_XID                        # 15.0   [2] MARACAS..FLUTE
 1FA90..1FA95  ; Not_XID                        # 12.0   [6] RINGED PLANET..BANJO
 1FA96..1FAA8  ; Not_XID                        # 13.0  [19] MILITARY HELMET..ROCK
 1FAA9..1FAAC  ; Not_XID                        # 14.0   [4] MIRROR BALL..HAMSA
+1FAAD..1FAAF  ; Not_XID                        # 15.0   [3] FOLDING HAND FAN..KHANDA
 1FAB0..1FAB6  ; Not_XID                        # 13.0   [7] FLY..FEATHER
 1FAB7..1FABA  ; Not_XID                        # 14.0   [4] LOTUS..NEST WITH EGGS
+1FABB..1FABD  ; Not_XID                        # 15.0   [3] HYACINTH..WING
+1FABF         ; Not_XID                        # 15.0       GOOSE
 1FAC0..1FAC2  ; Not_XID                        # 13.0   [3] ANATOMICAL HEART..PEOPLE HUGGING
 1FAC3..1FAC5  ; Not_XID                        # 14.0   [3] PREGNANT MAN..PERSON WITH CROWN
+1FACE..1FACF  ; Not_XID                        # 15.0   [2] MOOSE..DONKEY
 1FAD0..1FAD6  ; Not_XID                        # 13.0   [7] BLUEBERRIES..TEAPOT
 1FAD7..1FAD9  ; Not_XID                        # 14.0   [3] POURING LIQUID..JAR
+1FADA..1FADB  ; Not_XID                        # 15.0   [2] GINGER ROOT..PEA POD
 1FAE0..1FAE7  ; Not_XID                        # 14.0   [8] MELTING FACE..BUBBLES
+1FAE8         ; Not_XID                        # 15.0       SHAKING FACE
 1FAF0..1FAF6  ; Not_XID                        # 14.0   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FAF7..1FAF8  ; Not_XID                        # 15.0   [2] LEFTWARDS PUSHING HAND..RIGHTWARDS PUSHING HAND
 1FB00..1FB92  ; Not_XID                        # 13.0 [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; Not_XID                        # 13.0  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 
-# Total code points: 5640
+# Total code points: 5699
 
 #	Identifier_Type:	Not_NFKC
 
@@ -2352,6 +2385,7 @@ FFE8..FFEE    ; Not_NFKC                
 1D6A8..1D7C9  ; Not_NFKC                       # 3.1  [290] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
 1D7CA..1D7CB  ; Not_NFKC                       # 5.0    [2] MATHEMATICAL BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA
 1D7CE..1D7FF  ; Not_NFKC                       # 3.1   [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D  ; Not_NFKC                       # 15.0  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1EE00..1EE03  ; Not_NFKC                       # 6.1    [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; Not_NFKC                       # 6.1   [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; Not_NFKC                       # 6.1    [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2413,7 +2447,7 @@ FFE8..FFEE    ; Not_NFKC                
 1FBF0..1FBF9  ; Not_NFKC                       # 13.0  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 2F800..2FA1D  ; Not_NFKC                       # 3.1  [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 
-# Total code points: 4859
+# Total code points: 4921
 
 #	Identifier_Type:	Default_Ignorable
 
@@ -2425,8 +2459,7 @@ FFE8..FFEE    ; Not_NFKC                
 180B..180D    ; Default_Ignorable              # 3.0    [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
 180E          ; Default_Ignorable              # 3.0        MONGOLIAN VOWEL SEPARATOR
 180F          ; Default_Ignorable              # 14.0       MONGOLIAN FREE VARIATION SELECTOR FOUR
-200B          ; Default_Ignorable              # 1.1        ZERO WIDTH SPACE
-200E..200F    ; Default_Ignorable              # 1.1    [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+200B..200F    ; Default_Ignorable              # 1.1    [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
 202A..202E    ; Default_Ignorable              # 1.1    [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
 2060..2063    ; Default_Ignorable              # 3.2    [4] WORD JOINER..INVISIBLE SEPARATOR
 2064          ; Default_Ignorable              # 5.1        INVISIBLE PLUS
@@ -2440,7 +2473,7 @@ FFA0          ; Default_Ignorable       
 E0020..E007F  ; Default_Ignorable              # 3.1   [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Default_Ignorable              # 4.0  [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 396
+# Total code points: 398
 
 #	Identifier_Type:	Deprecated
 
Index: gnu/usr.bin/perl/lib/unicore/Index.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Index.txt,v
diff -u -p -a -u -p -r1.6 Index.txt
--- gnu/usr.bin/perl/lib/unicore/Index.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/Index.txt	21 Feb 2024 15:47:02 -0000
@@ -270,6 +270,7 @@ ARABIC LETTER HEH WITH YEH ABOVE	06C0
 ARABIC LETTER MARK	061C
 Arabic Letters, Extended	0671
 Arabic Letters, Extended	0750
+Arabic Letters, Extended	10EC0
 ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM	FDFD
 Arabic Ligatures	FBEA
 Arabic Mathematical Alphabetic Symbols	1EE00
@@ -387,7 +388,7 @@ ASTERISM	2042
 Astrological Signs	26B3
 Astrological Signs, Tibetan	0F15
 Astrological Symbols	263D
-Astrological Symbols	28D3
+Astrological Symbols	2BD3
 Astrological Symbols, Weather and	2600
 asymptotic to	2248
 ASYMPTOTICALLY EQUAL TO	2243
@@ -953,6 +954,7 @@ CJK Unified Ideographs Extension D	2B740
 CJK Unified Ideographs Extension E	2B820
 CJK Unified Ideographs Extension F	2CEB0
 CJK Unified Ideographs Extension G	30000
+CJK Unified Ideographs Extension H	31350
 CLAPPING HANDS SIGN	1F44F
 claudian antisigma	2183
 claudian digamma inversum	2132
@@ -1374,6 +1376,7 @@ Cyrillic Combining Characters	0483
 Cyrillic Extended-A	2DE0
 Cyrillic Extended-B	A640
 Cyrillic Extended-C	1C80
+Cyrillic Extended-D	1E030
 Cyrillic Extensions	0450
 Cyrillic Extensions	048A
 Cyrillic Historic Letters	0460
@@ -1467,6 +1470,7 @@ Devanagari Dependent Vowel Signs	093E
 Devanagari Digits	0966
 DEVANAGARI DOUBLE DANDA	0965
 Devanagari Extended	A8E0
+Devanagari Extended-A	11B00
 Devanagari Extensions	0951
 Devanagari Independent Vowels	0904
 DEVANAGARI OM	0950
@@ -1626,6 +1630,7 @@ DOLPHIN	1F42C
 domain restriction	25C1
 Domino Tiles	1F030
 DONG SIGN	20AB
+DONKEY	1FACF
 dot	002E
 DOT ABOVE	02D9
 DOT ABOVE RIGHT, COMBINING	0358
@@ -2042,6 +2047,7 @@ factory	26ED
 FAHRENHEIT, DEGREE	2109
 Fairy Tale Symbols	1F478
 FAMILY	1F46A
+FAN, FOLDING HAND	1FAAD
 fast cursor down	21A1
 fast cursor left	219E
 fast cursor right	21A0
@@ -2250,6 +2256,7 @@ GETA MARK	3013
 ghana currency	20B5
 GHOST	1F47B
 GIMEL SYMBOL	2137
+GINGER ROOT	1FADA
 GIRL	1F467
 Glagolitic	2C00
 Glagolitic Supplement	1E000
@@ -2272,6 +2279,7 @@ GOBLIN, JAPANESE	1F47A
 gold medal	1F947
 Golden Numbers, Runic	16EE
 golf course	26F3
+GOOSE	1FABF
 Gothic	10330
 Grantha	11300
 GRAPHEME JOINER, COMBINING	034F
@@ -2563,6 +2571,7 @@ ht	0009
 Hungarian, Old	10C80
 HV, LATIN SMALL LETTER	0195
 HWAIR, LATIN CAPITAL LETTER	01F6
+HYACINTH	1FABB
 HYPHEN	2010
 HYPHEN BULLET	2043
 hyphen or minus sign	002D
@@ -2647,6 +2656,7 @@ Ideographs Extension D, CJK Unified	2B74
 Ideographs Extension E, CJK Unified	2B820
 Ideographs Extension F, CJK Unified	2CEB0
 Ideographs Extension G, CJK Unified	30000
+Ideographs Extension H, CJK Unified	31350
 Ideographs Supplement, CJK Compatibility	2F800
 Ideographs, Circled	3280
 Ideographs, CJK Compatibility	F900
@@ -2830,6 +2840,7 @@ Japanese Katakana Words, Squared	3300
 Japanese Katakana, Circled	32D0
 japanese kome	203B
 Javanese	A980
+JELLYFISH	1FABC
 JERUSALEM, CROSS OF	2629
 jis composition circle	20DD
 JIS X 0213 Compatibility Ideographs	FA30
@@ -2853,6 +2864,7 @@ K, LATIN SUBSCRIPT SMALL LETTER	2096
 KA, HIRAGANA LETTER SMALL	3095
 kabusiki-gaisya	337F
 Kaithi	11080
+Kaktovik Numerals	1D2C0
 Kana Extended-A	1B100
 Kana Extension, Small	1B130
 Kana Repeat Marks	3031
@@ -2877,6 +2889,7 @@ Katakana Words, Squared	3300
 Katakana, Circled	32D0
 KATAKANA-HIRAGANA DOUBLE HYPHEN	30A0
 KATAKANA-HIRAGANA PROLONGED SOUND MARK	30FC
+Kawi	11F00
 Kayah Li	A900
 KELVIN SIGN	212A
 ket	27E9
@@ -2894,7 +2907,9 @@ Keyboard Symbols	2324
 Keyboard Symbols	2380
 Keyboard Symbols	2396
 KEYCAP, COMBINING ENCLOSING	20E3
+KHANDA	1FAAF
 khanda, gurmukhi	262C
+khanda ta, bangla	09CE
 Kharoshthi	10A00
 Kharoshthi Digits	10A40
 Khitan Small Script	18B00
@@ -3537,6 +3552,7 @@ MOON, CRESCENT	1F319
 MOON, FIRST QUARTER	263D
 MOON, LAST QUARTER	263E
 Moon, Sun, and Star Symbols	1F311
+MOOSE	1FACE
 mortarboard	1F393
 most positive	223E
 MOTORWAY	1F6E3
@@ -3622,6 +3638,7 @@ N-ARY WHITE VERTICAL BAR	2AFF
 naal, tamil	0BF3
 Nabataean	10880
 NABLA	2207
+Nag Mundari	1E4D0
 NAIRA SIGN	20A6
 NAND	22BC
 Nandinagari	119A0
@@ -3737,6 +3754,7 @@ Numbers, Runic Golden	16EE
 Numbers, Tamil	0BE7
 Numbers, White on Black Circled	24EB
 Numerals, Hangzhou	3021
+Numerals, Kaktovik	1D2C0
 Numerals, Mayan	1D2E0
 Numerals, Old Italic	10320
 Numerals, Roman	2160
@@ -4100,6 +4118,8 @@ plaintiff	226C
 PLANCK CONSTANT	210E
 PLANCK CONSTANT OVER TWO PI	210F
 Planet Symbols	263F
+Planets, Symbols for Minor	26B3
+Planets, Symbols for Minor	1F77B
 Plant Symbols	1F330
 Plastics Recycling Symbols	2673
 Playing Card Suits	2660
@@ -5985,6 +6005,7 @@ WHITE VERTICAL BAR, N-ARY	2AFF
 WIDE BRIDGE ABOVE, COMBINING	20E9
 Wiggly Fences	29D8
 WIGGLY VERTICAL LINE	2E3E
+WING	1FABD
 wj	2060
 WOLF FACE	1F43A
 WOMAN	1F469
Index: gnu/usr.bin/perl/lib/unicore/IndicPositionalCategory.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/IndicPositionalCategory.txt,v
diff -u -p -a -u -p -r1.5 IndicPositionalCategory.txt
--- gnu/usr.bin/perl/lib/unicore/IndicPositionalCategory.txt	15 Feb 2023 01:36:34 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/IndicPositionalCategory.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# IndicPositionalCategory-14.0.0.txt
-# Date: 2021-05-22, 01:01:00 GMT [KW, RP]
-# © 2021 Unicode®, Inc.
+# IndicPositionalCategory-15.0.0.txt
+# Date: 2022-05-26, 02:18:00 GMT [KW, RP]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # For documentation, see UAX #44: Unicode Character Database,
-# at http://www.unicode.org/reports/tr44/
+# at https://www.unicode.org/reports/tr44/
 #
 # This file defines the following property:
 #
@@ -68,13 +68,13 @@
 #
 # Ahom, Balinese, Batak, Bengali, Bhaiksuki, Brahmi, Buginese, Buhid,
 # Chakma, Cham, Devanagari, Dives Akuru, Dogra, Grantha, Gujarati,
-# Gunjala Gondi, Gurmukhi, Hanunoo, Javanese, Kaithi, Kannada,
-# Kharoshthi, Khmer, Khojki, Khudawadi, Lao, Lepcha, Limbu, Makasar,
-# Malayalam, Marchen, Masaram Gondi, Meetei Mayek, Modi, Myanmar,
-# Nandinagari, Newa, New Tai Lue, Oriya, Rejang, Saurashtra, Sharada,
-# Siddham, Sinhala, Soyombo, Sundanese, Syloti Nagri, Tagalog,
-# Tagbanwa, Tai Tham, Tai Viet, Takri, Tamil, Telugu, Thai, Tibetan,
-# Tirhuta, and Zanabazar Square.
+# Gunjala Gondi, Gurmukhi, Hanunoo, Javanese, Kaithi, Kannada, Kawi,
+# Kayah Li, Kharoshthi, Khmer, Khojki, Khudawadi, Lao, Lepcha, Limbu,
+# Makasar, Malayalam, Marchen, Masaram Gondi, Meetei Mayek, Modi,
+# Myanmar, Nandinagari, Newa, New Tai Lue, Oriya, Rejang, Saurashtra,
+# Sharada, Siddham, Sinhala, Soyombo, Sundanese, Syloti Nagri,
+# Tagalog, Tagbanwa, Tai Tham, Tai Viet, Takri, Tamil, Telugu, Thai,
+# Tibetan, Tirhuta, and Zanabazar Square.
 #
 # All characters for all other scripts not in that list
 # take the default value for this property.
@@ -158,6 +158,7 @@
 0CBE          ; Right # Mc       KANNADA VOWEL SIGN AA
 0CC1..0CC4    ; Right # Mc   [4] KANNADA VOWEL SIGN U..KANNADA VOWEL SIGN VOCALIC RR
 0CD5..0CD6    ; Right # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CF3          ; Right # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D02..0D03    ; Right # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; Right # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D41..0D42    ; Right # Mn   [2] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN UU
@@ -296,6 +297,9 @@ ABEC          ; Right # Mc       MEETEI 
 11D93..11D94  ; Right # Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
 11D96         ; Right # Mc       GUNJALA GONDI SIGN VISARGA
 11EF6         ; Right # Mc       MAKASAR VOWEL SIGN O
+11F03         ; Right # Mc       KAWI SIGN VISARGA
+11F34..11F35  ; Right # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F41         ; Right # Mc       KAWI SIGN KILLER
 
 # Indic_Positional_Category=Left
 
@@ -346,6 +350,7 @@ AAEE          ; Left # Mc       MEETEI M
 119E4         ; Left # Mc       NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
 11CB1         ; Left # Mc       MARCHEN VOWEL SIGN I
 11EF5         ; Left # Mc       MAKASAR VOWEL SIGN E
+11F3E..11F3F  ; Left # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
 
 # Indic_Positional_Category=Visual_Order_Left
 
@@ -388,7 +393,7 @@ AABB..AABC    ; Visual_Order_Left # Lo  
 093A          ; Top # Mn       DEVANAGARI VOWEL SIGN OE
 0945..0948    ; Top # Mn   [4] DEVANAGARI VOWEL SIGN CANDRA E..DEVANAGARI VOWEL SIGN AI
 0951          ; Top # Mn       DEVANAGARI STRESS SIGN UDATTA
-0953..0955    ; Top # Mn   [3] DEVANAGARI GRAVE ACCENT..DEVANAGARI VOWEL SIGN CANDRA LONG E
+0955          ; Top # Mn       DEVANAGARI VOWEL SIGN CANDRA LONG E
 0981          ; Top # Mn       BENGALI SIGN CANDRABINDU
 09FE          ; Top # Mn       BENGALI SANDHI MARK
 0A01..0A02    ; Top # Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
@@ -428,7 +433,7 @@ AABB..AABC    ; Visual_Order_Left # Lo  
 0EB1          ; Top # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EB7    ; Top # Mn   [4] LAO VOWEL SIGN I..LAO VOWEL SIGN YY
 0EBB          ; Top # Mn       LAO VOWEL SIGN MAI KON
-0EC8..0ECD    ; Top # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Top # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F39          ; Top # Mn       TIBETAN MARK TSA -PHRU
 0F72          ; Top # Mn       TIBETAN VOWEL SIGN I
 0F7A..0F7E    ; Top # Mn   [5] TIBETAN VOWEL SIGN E..TIBETAN SIGN RJES SU NGA RO
@@ -488,6 +493,7 @@ A826          ; Top # Mn       SYLOTI NA
 A8C5          ; Top # Mn       SAURASHTRA SIGN CANDRABINDU
 A8E0..A8F1    ; Top # Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
 A8FF          ; Top # Mn       DEVANAGARI VOWEL SIGN AY
+A926..A92A    ; Top # Mn   [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
 A94A          ; Top # Mn       REJANG VOWEL SIGN AI
 A94F..A951    ; Top # Mn   [3] REJANG CONSONANT SIGN NG..REJANG CONSONANT SIGN R
 A980..A982    ; Top # Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
@@ -580,6 +586,10 @@ ABE5          ; Top # Mn       MEETEI MA
 11D90..11D91  ; Top # Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
 11D95         ; Top # Mn       GUNJALA GONDI SIGN ANUSVARA
 11EF3         ; Top # Mn       MAKASAR VOWEL SIGN I
+11F00..11F01  ; Top # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; Top # Lo       KAWI SIGN REPHA
+11F36..11F37  ; Top # Mn   [2] KAWI VOWEL SIGN I..KAWI VOWEL SIGN II
+11F40         ; Top # Mn       KAWI VOWEL SIGN EU
 
 # Indic_Positional_Category=Bottom
 
@@ -688,6 +698,7 @@ ABED          ; Bottom # Mn       MEETEI
 111C9..111CA  ; Bottom # Mn   [2] SHARADA SANDHI MARK..SHARADA SIGN NUKTA
 111CC         ; Bottom # Mn       SHARADA EXTRA SHORT VOWEL MARK
 1122F         ; Bottom # Mn       KHOJKI VOWEL SIGN U
+11241         ; Bottom # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112E3..112E4  ; Bottom # Mn   [2] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN UU
 112E9..112EA  ; Bottom # Mn   [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
 1133B..1133C  ; Bottom # Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
@@ -728,6 +739,7 @@ ABED          ; Bottom # Mn       MEETEI
 11D44         ; Bottom # Mn       MASARAM GONDI SIGN HALANTA
 11D47         ; Bottom # Mn       MASARAM GONDI RA-KARA
 11EF4         ; Bottom # Mn       MAKASAR VOWEL SIGN U
+11F38..11F3A  ; Bottom # Mn   [3] KAWI VOWEL SIGN U..KAWI VOWEL SIGN VOCALIC R
 
 # Indic_Positional_Category=Top_And_Bottom
 
Index: gnu/usr.bin/perl/lib/unicore/IndicSyllabicCategory.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/IndicSyllabicCategory.txt,v
diff -u -p -a -u -p -r1.6 IndicSyllabicCategory.txt
--- gnu/usr.bin/perl/lib/unicore/IndicSyllabicCategory.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/IndicSyllabicCategory.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# IndicSyllabicCategory-14.0.0.txt
-# Date: 2021-05-22, 01:01:00 GMT [KW, RP]
-# © 2021 Unicode®, Inc.
+# IndicSyllabicCategory-15.0.0.txt
+# Date: 2022-05-26, 02:18:00 GMT [KW, RP]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # For documentation, see UAX #44: Unicode Character Database,
-# at http://www.unicode.org/reports/tr44/
+# at https://www.unicode.org/reports/tr44/
 #
 # This file defines the following property:
 #
@@ -37,7 +37,7 @@
 #
 # Ahom, Balinese, Batak, Bengali, Bhaiksuki, Brahmi, Buginese, Buhid,
 # Chakma, Cham, Devanagari, Dives Akuru, Dogra, Grantha, Gujarati,
-# Gunjala Gondi, Gurmukhi, Hanunoo, Javanese, Kaithi, Kannada,
+# Gunjala Gondi, Gurmukhi, Hanunoo, Javanese, Kaithi, Kannada, Kawi,
 # Kayah Li, Kharoshthi, Khmer, Khojki, Khudawadi, Lao, Lepcha, Limbu,
 # Mahajani, Makasar, Malayalam, Marchen, Masaram Gondi, Meetei Mayek,
 # Modi, Multani, Myanmar, Nandinagari, Newa, New Tai Lue, Oriya,
@@ -84,6 +84,7 @@
 0C80          ; Bindu # Lo       KANNADA SIGN SPACING CANDRABINDU
 0C81          ; Bindu # Mn       KANNADA SIGN CANDRABINDU
 0C82          ; Bindu # Mc       KANNADA SIGN ANUSVARA
+0CF3          ; Bindu # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; Bindu # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02          ; Bindu # Mc       MALAYALAM SIGN ANUSVARA
 0D04          ; Bindu # Lo       MALAYALAM LETTER VEDIC ANUSVARA
@@ -133,6 +134,7 @@ A980..A981    ; Bindu # Mn   [2] JAVANES
 11CB5..11CB6  ; Bindu # Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
 11D40         ; Bindu # Mn       MASARAM GONDI SIGN ANUSVARA
 11D95         ; Bindu # Mn       GUNJALA GONDI SIGN ANUSVARA
+11F00..11F01  ; Bindu # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
 
 # ================================================
 
@@ -179,6 +181,7 @@ AAF5          ; Visarga # Mc       MEETE
 11C3E         ; Visarga # Mc       BHAIKSUKI SIGN VISARGA
 11D41         ; Visarga # Mn       MASARAM GONDI SIGN VISARGA
 11D96         ; Visarga # Mc       GUNJALA GONDI SIGN VISARGA
+11F03         ; Visarga # Mc       KAWI SIGN VISARGA
 
 # ================================================
 
@@ -320,6 +323,7 @@ ABED          ; Pure_Killer # Mn       M
 1193D         ; Pure_Killer # Mc       DIVES AKURU SIGN HALANTA
 11A34         ; Pure_Killer # Mn       ZANABAZAR SQUARE SIGN VIRAMA
 11D44         ; Pure_Killer # Mn       MASARAM GONDI SIGN HALANTA
+11F41         ; Pure_Killer # Mc       KAWI SIGN KILLER
 
 # ================================================
 
@@ -346,6 +350,7 @@ AAF6          ; Invisible_Stacker # Mn  
 11A99         ; Invisible_Stacker # Mn       SOYOMBO SUBJOINER
 11D45         ; Invisible_Stacker # Mn       MASARAM GONDI VIRAMA
 11D97         ; Invisible_Stacker # Mn       GUNJALA GONDI VIRAMA
+11F42         ; Invisible_Stacker # Mn       KAWI CONJOINER
 
 # ================================================
 
@@ -416,6 +421,7 @@ ABD1          ; Vowel_Independent # Lo  
 11103..11106  ; Vowel_Independent # Lo   [4] CHAKMA LETTER AA..CHAKMA LETTER E
 11183..11190  ; Vowel_Independent # Lo  [14] SHARADA LETTER A..SHARADA LETTER AU
 11200..11207  ; Vowel_Independent # Lo   [8] KHOJKI LETTER A..KHOJKI LETTER AU
+11240         ; Vowel_Independent # Lo       KHOJKI LETTER SHORT I
 11280..11283  ; Vowel_Independent # Lo   [4] MULTANI LETTER A..MULTANI LETTER E
 112B0..112B9  ; Vowel_Independent # Lo  [10] KHUDAWADI LETTER A..KHUDAWADI LETTER AU
 11305..1130C  ; Vowel_Independent # Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
@@ -443,6 +449,7 @@ ABD1          ; Vowel_Independent # Lo  
 11D60..11D65  ; Vowel_Independent # Lo   [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
 11D67..11D68  ; Vowel_Independent # Lo   [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
 11D6A..11D6B  ; Vowel_Independent # Lo   [2] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER AU
+11F04..11F10  ; Vowel_Independent # Lo  [13] KAWI LETTER A..KAWI LETTER O
 
 # ================================================
 
@@ -638,6 +645,7 @@ ABE9..ABEA    ; Vowel_Dependent # Mc   [
 1122C..1122E  ; Vowel_Dependent # Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
 1122F..11231  ; Vowel_Dependent # Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
 11232..11233  ; Vowel_Dependent # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11241         ; Vowel_Dependent # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112E0..112E2  ; Vowel_Dependent # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
 112E3..112E8  ; Vowel_Dependent # Mn   [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
 1133E..1133F  ; Vowel_Dependent # Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
@@ -700,6 +708,10 @@ ABE9..ABEA    ; Vowel_Dependent # Mc   [
 11D93..11D94  ; Vowel_Dependent # Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
 11EF3..11EF4  ; Vowel_Dependent # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; Vowel_Dependent # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F34..11F35  ; Vowel_Dependent # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; Vowel_Dependent # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; Vowel_Dependent # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; Vowel_Dependent # Mn       KAWI VOWEL SIGN EU
 
 # ================================================
 
@@ -878,6 +890,7 @@ ABD2..ABDA    ; Consonant # Lo   [9] MEE
 11191..111B2  ; Consonant # Lo  [34] SHARADA LETTER KA..SHARADA LETTER HA
 11208..11211  ; Consonant # Lo  [10] KHOJKI LETTER KA..KHOJKI LETTER JJA
 11213..1122B  ; Consonant # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F         ; Consonant # Lo       KHOJKI LETTER QA
 11284..11286  ; Consonant # Lo   [3] MULTANI LETTER KA..MULTANI LETTER GA
 11288         ; Consonant # Lo       MULTANI LETTER GHA
 1128A..1128D  ; Consonant # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -908,6 +921,7 @@ ABD2..ABDA    ; Consonant # Lo   [9] MEE
 11D0C..11D30  ; Consonant # Lo  [37] MASARAM GONDI LETTER KA..MASARAM GONDI LETTER TRA
 11D6C..11D89  ; Consonant # Lo  [30] GUNJALA GONDI LETTER YA..GUNJALA GONDI LETTER SA
 11EE0..11EF1  ; Consonant # Lo  [18] MAKASAR LETTER KA..MAKASAR LETTER A
+11F12..11F33  ; Consonant # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
 
 # ================================================
 
@@ -963,6 +977,7 @@ ABD2..ABDA    ; Consonant # Lo   [9] MEE
 0D4E          ; Consonant_Preceding_Repha # Lo       MALAYALAM LETTER DOT REPH
 11941         ; Consonant_Preceding_Repha # Lo       DIVES AKURU INITIAL RA
 11D46         ; Consonant_Preceding_Repha # Lo       MASARAM GONDI REPHA
+11F02         ; Consonant_Preceding_Repha # Lo       KAWI SIGN REPHA
 
 # ================================================
 
@@ -1132,10 +1147,14 @@ ABEC          ; Tone_Mark # Mc       MEE
 # Indic_Syllabic_Category=Gemination_Mark
 
 # Gemination Mark (doubling of the preceding or following consonant)
+#
+# U+0A71 GURMUKHI ADDAK precedes the consonant it geminates, while the
+# others follow the consonant they geminate.
 
 # [Not derivable]
 
 0A71          ; Gemination_Mark # Mn       GURMUKHI ADDAK
+0AFB          ; Gemination_Mark # Mn       GUJARATI SIGN SHADDA
 11237         ; Gemination_Mark # Mn       KHOJKI SIGN SHADDA
 11A98         ; Gemination_Mark # Mn       SOYOMBO GEMINATION MARK
 
@@ -1149,7 +1168,8 @@ ABEC          ; Tone_Mark # Mc       MEE
 
 0951..0952    ; Cantillation_Mark # Mn   [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
 0A51          ; Cantillation_Mark # Mn       GURMUKHI SIGN UDAAT
-0AFA..0AFC    ; Cantillation_Mark # Mn   [3] GUJARATI SIGN SUKUN..GUJARATI SIGN MADDAH
+0AFA          ; Cantillation_Mark # Mn       GUJARATI SIGN SUKUN
+0AFC          ; Cantillation_Mark # Mn       GUJARATI SIGN MADDAH
 1CD0..1CD2    ; Cantillation_Mark # Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
 1CD4..1CE0    ; Cantillation_Mark # Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
 1CE1          ; Cantillation_Mark # Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
@@ -1177,12 +1197,13 @@ A8E0..A8F1    ; Cantillation_Mark # Mn  
 # Indic_Syllabic_Category=Syllable_Modifier
 
 # Syllable Modifier (miscellaneous combining characters that modify
-# something in the orthographic syllable they succeed)
+# something in the orthographic syllable they succeed or appear in)
 
 # [Not derivable]
 
 00B2..00B3    ; Syllable_Modifier # No   [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
 09FE          ; Syllable_Modifier # Mn       BENGALI SANDHI MARK
+0ECE          ; Syllable_Modifier # Mn       LAO YAMAKKAN
 0F35          ; Syllable_Modifier # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Syllable_Modifier # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
 0FC6          ; Syllable_Modifier # Mn       TIBETAN SYMBOL PADMA GDAN
@@ -1304,14 +1325,20 @@ ABF0..ABF9    ; Number # Nd  [10] MEETEI
 11C5A..11C6C  ; Number # No  [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
 11D50..11D59  ; Number # Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11DA0..11DA9  ; Number # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59  ; Number # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 
 # ================================================
 
 # Indic_Syllabic_Category=Brahmi_Joining_Number
 
-# Brahmi Joining Number (similar to Number in that in can be used as
-# vowel-holders like Consonant_Placeholder, but may also be joined by
-# a Number_Joiner of the same script, e.g. in Brahmi)
+# Brahmi Joining Number (may be joined by a Number_Joiner of the same
+# script, e.g. in Brahmi)
+#
+# Note: These are different from Numbers, in the way that there is no known
+# evidence of Brahmi Joining Numbers taking vowels or subjoined consonants. 
+# Until such evidence is found, implementations may assume that Brahmi
+# Joining Numbers only participate in shaping with other Brahmi Joining
+# Numbers.
 
 # [Not derivable]
 
Index: gnu/usr.bin/perl/lib/unicore/Jamo.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Jamo.txt,v
diff -u -p -a -u -p -r1.6 Jamo.txt
--- gnu/usr.bin/perl/lib/unicore/Jamo.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/Jamo.txt	21 Feb 2024 15:47:02 -0000
@@ -1,14 +1,14 @@
-# Jamo-14.0.0.txt
-# Date: 2021-03-16, 21:43:00 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Jamo-15.0.0.txt
+# Date: 2022-05-03, 18:52:00 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
 #
 # This file defines the Jamo_Short_Name property.
 #
-# See Section 3.12 of The Unicode Standard, Version 14.0
+# See Section 3.12 of The Unicode Standard, Version 15.0
 # for more information.
 #
 # Each line contains two fields, separated by a semicolon.
Index: gnu/usr.bin/perl/lib/unicore/LineBreak.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/LineBreak.txt,v
diff -u -p -a -u -p -r1.6 LineBreak.txt
--- gnu/usr.bin/perl/lib/unicore/LineBreak.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/LineBreak.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# LineBreak-14.0.0.txt
-# Date: 2021-07-06, 09:58:55 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
+# LineBreak-15.0.0.txt
+# Date: 2022-07-28, 09:20:42 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
@@ -481,6 +481,7 @@
 0CE2..0CE3;CM     # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF;NU     # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2;AL     # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3;CM           # Mc         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01;CM     # Mn     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03;CM     # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C;AL     # Lo     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -542,7 +543,7 @@
 0EBD;SA           # Lo         LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4;SA     # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6;SA           # Lm         LAO KO LA
-0EC8..0ECD;SA     # Mn     [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE;SA     # Mn     [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9;NU     # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF;SA     # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00;AL           # Lo         TIBETAN SYLLABLE OM
@@ -855,7 +856,11 @@
 1D79..1D7F;AL     # Ll     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
 1D80..1D9A;AL     # Ll    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
 1D9B..1DBF;AL     # Lm    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DFF;CM     # Mn    [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DCC;CM     # Mn    [13] COMBINING DOTTED GRAVE ACCENT..COMBINING MACRON-BREVE
+1DCD;GL           # Mn         COMBINING DOUBLE CIRCUMFLEX ABOVE
+1DCE..1DFB;CM     # Mn    [46] COMBINING OGONEK ABOVE..COMBINING DELETION MARK
+1DFC;GL           # Mn         COMBINING DOUBLE INVERTED BREVE BELOW
+1DFD..1DFF;CM     # Mn     [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 1E00..1EFF;AL     # L&   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
 1F00..1F15;AL     # L&    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
 1F18..1F1D;AL     # Lu     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
@@ -931,7 +936,7 @@
 2054;AL           # Pc         INVERTED UNDERTIE
 2055;AL           # Po         FLOWER PUNCTUATION MARK
 2056;BA           # Po         THREE DOT PUNCTUATION
-2057;AL           # Po         QUADRUPLE PRIME
+2057;PO           # Po         QUADRUPLE PRIME
 2058..205B;BA     # Po     [4] FOUR DOT PUNCTUATION..FOUR DOT MARK
 205C;AL           # Po         DOTTED CROSS
 205D..205E;BA     # Po     [2] TRICOLON..VERTICAL FOUR DOTS
@@ -2793,6 +2798,7 @@ FFFD;AI           # So         REPLACEME
 10EAB..10EAC;CM   # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
 10EAD;BA          # Pd         YEZIDI HYPHENATION MARK
 10EB0..10EB1;AL   # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF;CM   # Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F00..10F1C;AL   # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F1D..10F26;AL   # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
 10F27;AL          # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
@@ -2882,6 +2888,8 @@ FFFD;AI           # So         REPLACEME
 1123B..1123C;BA   # Po     [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
 1123D;AL          # Po         KHOJKI ABBREVIATION SIGN
 1123E;CM          # Mn         KHOJKI SIGN SUKUN
+1123F..11240;AL   # Lo     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241;CM          # Mn         KHOJKI VOWEL SIGN VOCALIC R
 11280..11286;AL   # Lo     [7] MULTANI LETTER A..MULTANI LETTER GA
 11288;AL          # Lo         MULTANI LETTER GHA
 1128A..1128D;AL   # Lo     [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -3055,6 +3063,7 @@ FFFD;AI           # So         REPLACEME
 11AA1..11AA2;BA   # Po     [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2
 11AB0..11ABF;AL   # Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
 11AC0..11AF8;AL   # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09;BB   # Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08;AL   # Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E;AL   # Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F;CM          # Mc         BHAIKSUKI VOWEL SIGN AA
@@ -3101,6 +3110,20 @@ FFFD;AI           # So         REPLACEME
 11EF3..11EF4;CM   # Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6;CM   # Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8;AL   # Po     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01;CM   # Mn     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02;AL          # Lo         KAWI SIGN REPHA
+11F03;CM          # Mc         KAWI SIGN VISARGA
+11F04..11F10;AL   # Lo    [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33;AL   # Lo    [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35;CM   # Mc     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A;CM   # Mn     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F;CM   # Mc     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40;CM          # Mn         KAWI VOWEL SIGN EU
+11F41;CM          # Mc         KAWI SIGN KILLER
+11F42;CM          # Mn         KAWI CONJOINER
+11F43..11F44;BA   # Po     [2] KAWI DANDA..KAWI DOUBLE DANDA
+11F45..11F4F;ID   # Po    [11] KAWI PUNCTUATION SECTION MARKER..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59;NU   # Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0;AL          # Lo         LISU LETTER YHA
 11FC0..11FD4;AL   # No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC;AL   # So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -3126,10 +3149,18 @@ FFFD;AI           # So         REPLACEME
 1328A..13378;AL   # Lo   [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
 13379;OP          # Lo         EGYPTIAN HIEROGLYPH V011A
 1337A..1337B;CL   # Lo     [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
-1337C..1342E;AL   # Lo   [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
+1337C..1342F;AL   # Lo   [180] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH V011D
 13430..13436;GL   # Cf     [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
 13437;OP          # Cf         EGYPTIAN HIEROGLYPH BEGIN SEGMENT
 13438;CL          # Cf         EGYPTIAN HIEROGLYPH END SEGMENT
+13439..1343B;GL   # Cf     [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+1343C;OP          # Cf         EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+1343D;CL          # Cf         EGYPTIAN HIEROGLYPH END ENCLOSURE
+1343E;OP          # Cf         EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
+1343F;CL          # Cf         EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440;CM          # Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446;AL   # Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455;CM   # Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..145CD;AL   # Lo   [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409
 145CE;OP          # Lo         ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
 145CF;CL          # Lo         ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
@@ -3179,7 +3210,9 @@ FFFD;AI           # So         REPLACEME
 1AFFD..1AFFE;AL   # Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B0FF;ID   # Lo   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
 1B100..1B122;ID   # Lo    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
+1B132;CJ          # Lo         HIRAGANA LETTER SMALL KO
 1B150..1B152;CJ   # Lo     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155;CJ          # Lo         KATAKANA LETTER SMALL KO
 1B164..1B167;CJ   # Lo     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB;ID   # Lo   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A;AL   # Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -3210,6 +3243,7 @@ FFFD;AI           # So         REPLACEME
 1D200..1D241;AL   # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D242..1D244;CM   # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
 1D245;AL          # So         GREEK MUSICAL LEIMMA
+1D2C0..1D2D3;AL   # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3;AL   # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356;AL   # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378;AL   # No    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -3270,11 +3304,14 @@ FFFD;AI           # So         REPLACEME
 1DF00..1DF09;AL   # Ll    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A;AL          # Lo         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E;AL   # Ll    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A;AL   # Ll     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006;CM   # Mn     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018;CM   # Mn    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021;CM   # Mn     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024;CM   # Mn     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A;CM   # Mn     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D;AL   # Lm    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F;CM          # Mn         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C;AL   # Lo    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E130..1E136;CM   # Mn     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D;AL   # Lm     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -3287,6 +3324,10 @@ FFFD;AI           # So         REPLACEME
 1E2EC..1E2EF;CM   # Mn     [4] WANCHO TONE TUP..WANCHO TONE KOINI
 1E2F0..1E2F9;NU   # Nd    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
 1E2FF;PR          # Sc         WANCHO NGUN SIGN
+1E4D0..1E4EA;AL   # Lo    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB;AL          # Lm         NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF;CM   # Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9;NU   # Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6;AL   # Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB;AL   # Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE;AL   # Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -3454,16 +3495,18 @@ FFFD;AI           # So         REPLACEME
 1F6C1..1F6CB;ID   # So    [11] BATHTUB..COUCH AND LAMP
 1F6CC;EB          # So         SLEEPING ACCOMMODATION
 1F6CD..1F6D7;ID   # So    [11] SHOPPING BAGS..ELEVATOR
-1F6D8..1F6DC;ID   # Cn     [5] <reserved-1F6D8>..<reserved-1F6DC>
-1F6DD..1F6EC;ID   # So    [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6D8..1F6DB;ID   # Cn     [4] <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC..1F6EC;ID   # So    [17] WIRELESS..AIRPLANE ARRIVING
 1F6ED..1F6EF;ID   # Cn     [3] <reserved-1F6ED>..<reserved-1F6EF>
 1F6F0..1F6FC;ID   # So    [13] SATELLITE..ROLLER SKATE
 1F6FD..1F6FF;ID   # Cn     [3] <reserved-1F6FD>..<reserved-1F6FF>
 1F700..1F773;AL   # So   [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F774..1F77F;ID   # Cn    [12] <reserved-1F774>..<reserved-1F77F>
+1F774..1F776;ID   # So     [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F777..1F77A;ID   # Cn     [4] <reserved-1F777>..<reserved-1F77A>
+1F77B..1F77F;ID   # So     [5] HAUMEA..ORCUS
 1F780..1F7D4;AL   # So    [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
-1F7D5..1F7D8;ID   # So     [4] CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
-1F7D9..1F7DF;ID   # Cn     [7] <reserved-1F7D9>..<reserved-1F7DF>
+1F7D5..1F7D9;ID   # So     [5] CIRCLED TRIANGLE..NINE POINTED WHITE STAR
+1F7DA..1F7DF;ID   # Cn     [6] <reserved-1F7DA>..<reserved-1F7DF>
 1F7E0..1F7EB;ID   # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7EC..1F7EF;ID   # Cn     [4] <reserved-1F7EC>..<reserved-1F7EF>
 1F7F0;ID          # So         HEAVY EQUALS SIGN
@@ -3509,33 +3552,29 @@ FFFD;AI           # So         REPLACEME
 1FA54..1FA5F;ID   # Cn    [12] <reserved-1FA54>..<reserved-1FA5F>
 1FA60..1FA6D;ID   # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
 1FA6E..1FA6F;ID   # Cn     [2] <reserved-1FA6E>..<reserved-1FA6F>
-1FA70..1FA74;ID   # So     [5] BALLET SHOES..THONG SANDAL
-1FA75..1FA77;ID   # Cn     [3] <reserved-1FA75>..<reserved-1FA77>
-1FA78..1FA7C;ID   # So     [5] DROP OF BLOOD..CRUTCH
+1FA70..1FA7C;ID   # So    [13] BALLET SHOES..CRUTCH
 1FA7D..1FA7F;ID   # Cn     [3] <reserved-1FA7D>..<reserved-1FA7F>
-1FA80..1FA86;ID   # So     [7] YO-YO..NESTING DOLLS
-1FA87..1FA8F;ID   # Cn     [9] <reserved-1FA87>..<reserved-1FA8F>
-1FA90..1FAAC;ID   # So    [29] RINGED PLANET..HAMSA
-1FAAD..1FAAF;ID   # Cn     [3] <reserved-1FAAD>..<reserved-1FAAF>
-1FAB0..1FABA;ID   # So    [11] FLY..NEST WITH EGGS
-1FABB..1FABF;ID   # Cn     [5] <reserved-1FABB>..<reserved-1FABF>
-1FAC0..1FAC2;ID   # So     [3] ANATOMICAL HEART..PEOPLE HUGGING
+1FA80..1FA88;ID   # So     [9] YO-YO..FLUTE
+1FA89..1FA8F;ID   # Cn     [7] <reserved-1FA89>..<reserved-1FA8F>
+1FA90..1FABD;ID   # So    [46] RINGED PLANET..WING
+1FABE;ID          # Cn         <reserved-1FABE>
+1FABF..1FAC2;ID   # So     [4] GOOSE..PEOPLE HUGGING
 1FAC3..1FAC5;EB   # So     [3] PREGNANT MAN..PERSON WITH CROWN
-1FAC6..1FACF;ID   # Cn    [10] <reserved-1FAC6>..<reserved-1FACF>
-1FAD0..1FAD9;ID   # So    [10] BLUEBERRIES..JAR
-1FADA..1FADF;ID   # Cn     [6] <reserved-1FADA>..<reserved-1FADF>
-1FAE0..1FAE7;ID   # So     [8] MELTING FACE..BUBBLES
-1FAE8..1FAEF;ID   # Cn     [8] <reserved-1FAE8>..<reserved-1FAEF>
-1FAF0..1FAF6;EB   # So     [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
-1FAF7..1FAFF;ID   # Cn     [9] <reserved-1FAF7>..<reserved-1FAFF>
+1FAC6..1FACD;ID   # Cn     [8] <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FADB;ID   # So    [14] MOOSE..PEA POD
+1FADC..1FADF;ID   # Cn     [4] <reserved-1FADC>..<reserved-1FADF>
+1FAE0..1FAE8;ID   # So     [9] MELTING FACE..SHAKING FACE
+1FAE9..1FAEF;ID   # Cn     [7] <reserved-1FAE9>..<reserved-1FAEF>
+1FAF0..1FAF8;EB   # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
+1FAF9..1FAFF;ID   # Cn     [7] <reserved-1FAF9>..<reserved-1FAFF>
 1FB00..1FB92;AL   # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA;AL   # So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 1FBF0..1FBF9;NU   # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 1FC00..1FFFD;ID   # Cn  [1022] <reserved-1FC00>..<reserved-1FFFD>
 20000..2A6DF;ID   # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
 2A6E0..2A6FF;ID   # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738;ID   # Lo  [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F;ID   # Cn     [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739;ID   # Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F;ID   # Cn     [6] <reserved-2B73A>..<reserved-2B73F>
 2B740..2B81D;ID   # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B81E..2B81F;ID   # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
 2B820..2CEA1;ID   # Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
@@ -3546,7 +3585,9 @@ FFFD;AI           # So         REPLACEME
 2FA1E..2FA1F;ID   # Cn     [2] <reserved-2FA1E>..<reserved-2FA1F>
 2FA20..2FFFD;ID   # Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>
 30000..3134A;ID   # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD;ID   # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
+3134B..3134F;ID   # Cn     [5] <reserved-3134B>..<reserved-3134F>
+31350..323AF;ID   # Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD;ID   # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
 E0001;CM          # Cf         LANGUAGE TAG
 E0020..E007F;CM   # Cf    [96] TAG SPACE..CANCEL TAG
 E0100..E01EF;CM   # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
Index: gnu/usr.bin/perl/lib/unicore/Name.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Name.pl,v
diff -u -p -a -u -p -r1.12 Name.pl
--- gnu/usr.bin/perl/lib/unicore/Name.pl	15 Feb 2023 01:39:49 -0000	1.12
+++ gnu/usr.bin/perl/lib/unicore/Name.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -200,6 +200,9 @@ CAN
 END OF MEDIUM
 
 00019
+EM
+
+00019
 EOM
 
 0001A
@@ -4871,6 +4874,9 @@ ARABIC SIGN TAKHALLUS
 ARABIC SMALL HIGH TAH
 
 00616
+ARABIC SMALL HIGH LIGATURE ALEF WITH YEH BARREE
+
+00616
 ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
 
 00617
@@ -9250,6 +9256,9 @@ KANNADA SIGN JIHVAMULIYA
 00CF2
 KANNADA SIGN UPADHMANIYA
 
+00CF3
+KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+
 00D00
 MALAYALAM SIGN COMBINING ANUSVARA ABOVE
 
@@ -10354,6 +10363,9 @@ LAO CANCELLATION MARK
 00ECD
 LAO NIGGAHITA
 
+00ECE
+LAO YAMAKKAN
+
 00ED0
 LAO DIGIT ZERO
 
@@ -19325,6 +19337,9 @@ SUNDANESE LETTER REU
 SUNDANESE LETTER LEU
 
 01BBD
+SUNDANESE LETTER ARCHAIC I
+
+01BBD
 SUNDANESE LETTER BHA
 
 01BBE
@@ -57220,6 +57235,15 @@ YEZIDI LETTER LAM WITH DOT ABOVE
 10EB1
 YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
 
+10EFD
+ARABIC SMALL LOW WORD SAKTA
+
+10EFE
+ARABIC SMALL LOW WORD QASR
+
+10EFF
+ARABIC SMALL LOW WORD MADDA
+
 10F00
 OLD SOGDIAN LETTER ALEPH
 
@@ -59215,6 +59239,15 @@ KHOJKI ABBREVIATION SIGN
 1123E
 KHOJKI SIGN SUKUN
 
+1123F
+KHOJKI LETTER QA
+
+11240
+KHOJKI LETTER SHORT I
+
+11241
+KHOJKI VOWEL SIGN VOCALIC R
+
 11280
 MULTANI LETTER A
 
@@ -62809,6 +62842,36 @@ PAU CIN HAU LOW-FALLING TONE FINAL
 11AF8
 PAU CIN HAU GLOTTAL STOP FINAL
 
+11B00
+DEVANAGARI HEAD MARK
+
+11B01
+DEVANAGARI HEAD MARK WITH HEADSTROKE
+
+11B02
+DEVANAGARI SIGN BHALE
+
+11B03
+DEVANAGARI SIGN BHALE WITH HOOK
+
+11B04
+DEVANAGARI SIGN EXTENDED BHALE
+
+11B05
+DEVANAGARI SIGN EXTENDED BHALE WITH HOOK
+
+11B06
+DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE
+
+11B07
+DEVANAGARI SIGN WESTERN NINE-LIKE BHALE
+
+11B08
+DEVANAGARI SIGN REVERSED NINE-LIKE BHALE
+
+11B09
+DEVANAGARI SIGN MINDU
+
 11C00
 BHAIKSUKI LETTER A
 
@@ -63793,6 +63856,264 @@ MAKASAR PASSIMBANG
 11EF8
 MAKASAR END OF SECTION
 
+11F00
+KAWI SIGN CANDRABINDU
+
+11F01
+KAWI SIGN ANUSVARA
+
+11F02
+KAWI SIGN REPHA
+
+11F03
+KAWI SIGN VISARGA
+
+11F04
+KAWI LETTER A
+
+11F05
+KAWI LETTER AA
+
+11F06
+KAWI LETTER I
+
+11F07
+KAWI LETTER II
+
+11F08
+KAWI LETTER U
+
+11F09
+KAWI LETTER UU
+
+11F0A
+KAWI LETTER VOCALIC R
+
+11F0B
+KAWI LETTER VOCALIC RR
+
+11F0C
+KAWI LETTER VOCALIC L
+
+11F0D
+KAWI LETTER VOCALIC LL
+
+11F0E
+KAWI LETTER E
+
+11F0F
+KAWI LETTER AI
+
+11F10
+KAWI LETTER O
+
+11F12
+KAWI LETTER KA
+
+11F13
+KAWI LETTER KHA
+
+11F14
+KAWI LETTER GA
+
+11F15
+KAWI LETTER GHA
+
+11F16
+KAWI LETTER NGA
+
+11F17
+KAWI LETTER CA
+
+11F18
+KAWI LETTER CHA
+
+11F19
+KAWI LETTER JA
+
+11F1A
+KAWI LETTER JHA
+
+11F1B
+KAWI LETTER NYA
+
+11F1C
+KAWI LETTER TTA
+
+11F1D
+KAWI LETTER TTHA
+
+11F1E
+KAWI LETTER DDA
+
+11F1F
+KAWI LETTER DDHA
+
+11F20
+KAWI LETTER NNA
+
+11F21
+KAWI LETTER TA
+
+11F22
+KAWI LETTER THA
+
+11F23
+KAWI LETTER DA
+
+11F24
+KAWI LETTER DHA
+
+11F25
+KAWI LETTER NA
+
+11F26
+KAWI LETTER PA
+
+11F27
+KAWI LETTER PHA
+
+11F28
+KAWI LETTER BA
+
+11F29
+KAWI LETTER BHA
+
+11F2A
+KAWI LETTER MA
+
+11F2B
+KAWI LETTER YA
+
+11F2C
+KAWI LETTER RA
+
+11F2D
+KAWI LETTER LA
+
+11F2E
+KAWI LETTER WA
+
+11F2F
+KAWI LETTER SHA
+
+11F30
+KAWI LETTER SSA
+
+11F31
+KAWI LETTER SA
+
+11F32
+KAWI LETTER HA
+
+11F33
+KAWI LETTER JNYA
+
+11F34
+KAWI VOWEL SIGN AA
+
+11F35
+KAWI VOWEL SIGN ALTERNATE AA
+
+11F36
+KAWI VOWEL SIGN I
+
+11F37
+KAWI VOWEL SIGN II
+
+11F38
+KAWI VOWEL SIGN U
+
+11F39
+KAWI VOWEL SIGN UU
+
+11F3A
+KAWI VOWEL SIGN VOCALIC R
+
+11F3E
+KAWI VOWEL SIGN E
+
+11F3F
+KAWI VOWEL SIGN AI
+
+11F40
+KAWI VOWEL SIGN EU
+
+11F41
+KAWI SIGN KILLER
+
+11F42
+KAWI CONJOINER
+
+11F43
+KAWI DANDA
+
+11F44
+KAWI DOUBLE DANDA
+
+11F45
+KAWI PUNCTUATION SECTION MARKER
+
+11F46
+KAWI PUNCTUATION ALTERNATE SECTION MARKER
+
+11F47
+KAWI PUNCTUATION FLOWER
+
+11F48
+KAWI PUNCTUATION SPACE FILLER
+
+11F49
+KAWI PUNCTUATION DOT
+
+11F4A
+KAWI PUNCTUATION DOUBLE DOT
+
+11F4B
+KAWI PUNCTUATION TRIPLE DOT
+
+11F4C
+KAWI PUNCTUATION CIRCLE
+
+11F4D
+KAWI PUNCTUATION FILLED CIRCLE
+
+11F4E
+KAWI PUNCTUATION SPIRAL
+
+11F4F
+KAWI PUNCTUATION CLOSING SPIRAL
+
+11F50
+KAWI DIGIT ZERO
+
+11F51
+KAWI DIGIT ONE
+
+11F52
+KAWI DIGIT TWO
+
+11F53
+KAWI DIGIT THREE
+
+11F54
+KAWI DIGIT FOUR
+
+11F55
+KAWI DIGIT FIVE
+
+11F56
+KAWI DIGIT SIX
+
+11F57
+KAWI DIGIT SEVEN
+
+11F58
+KAWI DIGIT EIGHT
+
+11F59
+KAWI DIGIT NINE
+
 11FB0
 LISU LETTER YHA
 
@@ -71167,6 +71488,9 @@ EGYPTIAN HIEROGLYPH AA031
 1342E
 EGYPTIAN HIEROGLYPH AA032
 
+1342F
+EGYPTIAN HIEROGLYPH V011D
+
 13430
 EGYPTIAN HIEROGLYPH VERTICAL JOINER
 
@@ -71194,6 +71518,93 @@ EGYPTIAN HIEROGLYPH BEGIN SEGMENT
 13438
 EGYPTIAN HIEROGLYPH END SEGMENT
 
+13439
+EGYPTIAN HIEROGLYPH INSERT AT MIDDLE
+
+1343A
+EGYPTIAN HIEROGLYPH INSERT AT TOP
+
+1343B
+EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+
+1343C
+EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+
+1343D
+EGYPTIAN HIEROGLYPH END ENCLOSURE
+
+1343E
+EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
+
+1343F
+EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+
+13440
+EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+
+13441
+EGYPTIAN HIEROGLYPH FULL BLANK
+
+13442
+EGYPTIAN HIEROGLYPH HALF BLANK
+
+13443
+EGYPTIAN HIEROGLYPH LOST SIGN
+
+13444
+EGYPTIAN HIEROGLYPH HALF LOST SIGN
+
+13445
+EGYPTIAN HIEROGLYPH TALL LOST SIGN
+
+13446
+EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+
+13447
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START
+
+13448
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START
+
+13449
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START
+
+1344A
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END
+
+1344B
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP
+
+1344C
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END
+
+1344D
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP
+
+1344E
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END
+
+1344F
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END
+
+13450
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM
+
+13451
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM
+
+13452
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END
+
+13453
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END
+
+13454
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END
+
+13455
+EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+
 14400
 ANATOLIAN HIEROGLYPH A001
 
@@ -79507,6 +79918,9 @@ KATAKANA LETTER ARCHAIC YE
 1B122
 KATAKANA LETTER ARCHAIC WU
 
+1B132
+HIRAGANA LETTER SMALL KO
+
 1B150
 HIRAGANA LETTER SMALL WI
 
@@ -79516,6 +79930,9 @@ HIRAGANA LETTER SMALL WE
 1B152
 HIRAGANA LETTER SMALL WO
 
+1B155
+KATAKANA LETTER SMALL KO
+
 1B164
 KATAKANA LETTER SMALL WI
 
@@ -82174,6 +82591,66 @@ COMBINING GREEK MUSICAL PENTASEME
 1D245
 GREEK MUSICAL LEIMMA
 
+1D2C0
+KAKTOVIK NUMERAL ZERO
+
+1D2C1
+KAKTOVIK NUMERAL ONE
+
+1D2C2
+KAKTOVIK NUMERAL TWO
+
+1D2C3
+KAKTOVIK NUMERAL THREE
+
+1D2C4
+KAKTOVIK NUMERAL FOUR
+
+1D2C5
+KAKTOVIK NUMERAL FIVE
+
+1D2C6
+KAKTOVIK NUMERAL SIX
+
+1D2C7
+KAKTOVIK NUMERAL SEVEN
+
+1D2C8
+KAKTOVIK NUMERAL EIGHT
+
+1D2C9
+KAKTOVIK NUMERAL NINE
+
+1D2CA
+KAKTOVIK NUMERAL TEN
+
+1D2CB
+KAKTOVIK NUMERAL ELEVEN
+
+1D2CC
+KAKTOVIK NUMERAL TWELVE
+
+1D2CD
+KAKTOVIK NUMERAL THIRTEEN
+
+1D2CE
+KAKTOVIK NUMERAL FOURTEEN
+
+1D2CF
+KAKTOVIK NUMERAL FIFTEEN
+
+1D2D0
+KAKTOVIK NUMERAL SIXTEEN
+
+1D2D1
+KAKTOVIK NUMERAL SEVENTEEN
+
+1D2D2
+KAKTOVIK NUMERAL EIGHTEEN
+
+1D2D3
+KAKTOVIK NUMERAL NINETEEN
+
 1D2E0
 MAYAN NUMERAL ZERO
 
@@ -87667,6 +88144,24 @@ LATIN SMALL LETTER C WITH RETROFLEX HOOK
 1DF1E
 LATIN SMALL LETTER S WITH CURL
 
+1DF25
+LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK
+
+1DF26
+LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK
+
+1DF27
+LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK
+
+1DF28
+LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK
+
+1DF29
+LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK
+
+1DF2A
+LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+
 1E000
 COMBINING GLAGOLITIC LETTER AZU
 
@@ -87781,6 +88276,195 @@ COMBINING GLAGOLITIC LETTER IOTATED BIG 
 1E02A
 COMBINING GLAGOLITIC LETTER FITA
 
+1E030
+MODIFIER LETTER CYRILLIC SMALL A
+
+1E031
+MODIFIER LETTER CYRILLIC SMALL BE
+
+1E032
+MODIFIER LETTER CYRILLIC SMALL VE
+
+1E033
+MODIFIER LETTER CYRILLIC SMALL GHE
+
+1E034
+MODIFIER LETTER CYRILLIC SMALL DE
+
+1E035
+MODIFIER LETTER CYRILLIC SMALL IE
+
+1E036
+MODIFIER LETTER CYRILLIC SMALL ZHE
+
+1E037
+MODIFIER LETTER CYRILLIC SMALL ZE
+
+1E038
+MODIFIER LETTER CYRILLIC SMALL I
+
+1E039
+MODIFIER LETTER CYRILLIC SMALL KA
+
+1E03A
+MODIFIER LETTER CYRILLIC SMALL EL
+
+1E03B
+MODIFIER LETTER CYRILLIC SMALL EM
+
+1E03C
+MODIFIER LETTER CYRILLIC SMALL O
+
+1E03D
+MODIFIER LETTER CYRILLIC SMALL PE
+
+1E03E
+MODIFIER LETTER CYRILLIC SMALL ER
+
+1E03F
+MODIFIER LETTER CYRILLIC SMALL ES
+
+1E040
+MODIFIER LETTER CYRILLIC SMALL TE
+
+1E041
+MODIFIER LETTER CYRILLIC SMALL U
+
+1E042
+MODIFIER LETTER CYRILLIC SMALL EF
+
+1E043
+MODIFIER LETTER CYRILLIC SMALL HA
+
+1E044
+MODIFIER LETTER CYRILLIC SMALL TSE
+
+1E045
+MODIFIER LETTER CYRILLIC SMALL CHE
+
+1E046
+MODIFIER LETTER CYRILLIC SMALL SHA
+
+1E047
+MODIFIER LETTER CYRILLIC SMALL YERU
+
+1E048
+MODIFIER LETTER CYRILLIC SMALL E
+
+1E049
+MODIFIER LETTER CYRILLIC SMALL YU
+
+1E04A
+MODIFIER LETTER CYRILLIC SMALL DZZE
+
+1E04B
+MODIFIER LETTER CYRILLIC SMALL SCHWA
+
+1E04C
+MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+
+1E04D
+MODIFIER LETTER CYRILLIC SMALL JE
+
+1E04E
+MODIFIER LETTER CYRILLIC SMALL BARRED O
+
+1E04F
+MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+
+1E050
+MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+
+1E051
+CYRILLIC SUBSCRIPT SMALL LETTER A
+
+1E052
+CYRILLIC SUBSCRIPT SMALL LETTER BE
+
+1E053
+CYRILLIC SUBSCRIPT SMALL LETTER VE
+
+1E054
+CYRILLIC SUBSCRIPT SMALL LETTER GHE
+
+1E055
+CYRILLIC SUBSCRIPT SMALL LETTER DE
+
+1E056
+CYRILLIC SUBSCRIPT SMALL LETTER IE
+
+1E057
+CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+
+1E058
+CYRILLIC SUBSCRIPT SMALL LETTER ZE
+
+1E059
+CYRILLIC SUBSCRIPT SMALL LETTER I
+
+1E05A
+CYRILLIC SUBSCRIPT SMALL LETTER KA
+
+1E05B
+CYRILLIC SUBSCRIPT SMALL LETTER EL
+
+1E05C
+CYRILLIC SUBSCRIPT SMALL LETTER O
+
+1E05D
+CYRILLIC SUBSCRIPT SMALL LETTER PE
+
+1E05E
+CYRILLIC SUBSCRIPT SMALL LETTER ES
+
+1E05F
+CYRILLIC SUBSCRIPT SMALL LETTER U
+
+1E060
+CYRILLIC SUBSCRIPT SMALL LETTER EF
+
+1E061
+CYRILLIC SUBSCRIPT SMALL LETTER HA
+
+1E062
+CYRILLIC SUBSCRIPT SMALL LETTER TSE
+
+1E063
+CYRILLIC SUBSCRIPT SMALL LETTER CHE
+
+1E064
+CYRILLIC SUBSCRIPT SMALL LETTER SHA
+
+1E065
+CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+
+1E066
+CYRILLIC SUBSCRIPT SMALL LETTER YERU
+
+1E067
+CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+
+1E068
+CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+
+1E069
+CYRILLIC SUBSCRIPT SMALL LETTER DZE
+
+1E06A
+CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+
+1E06B
+MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+
+1E06C
+MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+
+1E06D
+MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+
+1E08F
+COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+
 1E100
 NYIAKENG PUACHUE HMONG LETTER MA
 
@@ -88264,6 +88948,132 @@ WANCHO DIGIT NINE
 1E2FF
 WANCHO NGUN SIGN
 
+1E4D0
+NAG MUNDARI LETTER O
+
+1E4D1
+NAG MUNDARI LETTER OP
+
+1E4D2
+NAG MUNDARI LETTER OL
+
+1E4D3
+NAG MUNDARI LETTER OY
+
+1E4D4
+NAG MUNDARI LETTER ONG
+
+1E4D5
+NAG MUNDARI LETTER A
+
+1E4D6
+NAG MUNDARI LETTER AJ
+
+1E4D7
+NAG MUNDARI LETTER AB
+
+1E4D8
+NAG MUNDARI LETTER ANY
+
+1E4D9
+NAG MUNDARI LETTER AH
+
+1E4DA
+NAG MUNDARI LETTER I
+
+1E4DB
+NAG MUNDARI LETTER IS
+
+1E4DC
+NAG MUNDARI LETTER IDD
+
+1E4DD
+NAG MUNDARI LETTER IT
+
+1E4DE
+NAG MUNDARI LETTER IH
+
+1E4DF
+NAG MUNDARI LETTER U
+
+1E4E0
+NAG MUNDARI LETTER UC
+
+1E4E1
+NAG MUNDARI LETTER UD
+
+1E4E2
+NAG MUNDARI LETTER UK
+
+1E4E3
+NAG MUNDARI LETTER UR
+
+1E4E4
+NAG MUNDARI LETTER E
+
+1E4E5
+NAG MUNDARI LETTER ENN
+
+1E4E6
+NAG MUNDARI LETTER EG
+
+1E4E7
+NAG MUNDARI LETTER EM
+
+1E4E8
+NAG MUNDARI LETTER EN
+
+1E4E9
+NAG MUNDARI LETTER ETT
+
+1E4EA
+NAG MUNDARI LETTER ELL
+
+1E4EB
+NAG MUNDARI SIGN OJOD
+
+1E4EC
+NAG MUNDARI SIGN MUHOR
+
+1E4ED
+NAG MUNDARI SIGN TOYOR
+
+1E4EE
+NAG MUNDARI SIGN IKIR
+
+1E4EF
+NAG MUNDARI SIGN SUTUH
+
+1E4F0
+NAG MUNDARI DIGIT ZERO
+
+1E4F1
+NAG MUNDARI DIGIT ONE
+
+1E4F2
+NAG MUNDARI DIGIT TWO
+
+1E4F3
+NAG MUNDARI DIGIT THREE
+
+1E4F4
+NAG MUNDARI DIGIT FOUR
+
+1E4F5
+NAG MUNDARI DIGIT FIVE
+
+1E4F6
+NAG MUNDARI DIGIT SIX
+
+1E4F7
+NAG MUNDARI DIGIT SEVEN
+
+1E4F8
+NAG MUNDARI DIGIT EIGHT
+
+1E4F9
+NAG MUNDARI DIGIT NINE
+
 1E7E0
 ETHIOPIC SYLLABLE HHYA
 
@@ -94489,6 +95299,9 @@ HUT
 1F6D7
 ELEVATOR
 
+1F6DC
+WIRELESS
+
 1F6DD
 PLAYGROUND SLIDE
 
@@ -94924,6 +95737,30 @@ ALCHEMICAL SYMBOL FOR HALF DRAM
 1F773
 ALCHEMICAL SYMBOL FOR HALF OUNCE
 
+1F774
+LOT OF FORTUNE
+
+1F775
+OCCULTATION
+
+1F776
+LUNAR ECLIPSE
+
+1F77B
+HAUMEA
+
+1F77C
+MAKEMAKE
+
+1F77D
+GONGGONG
+
+1F77E
+QUAOAR
+
+1F77F
+ORCUS
+
 1F780
 BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
 
@@ -95191,6 +96028,9 @@ CIRCLED SQUARE
 1F7D8
 NEGATIVE CIRCLED SQUARE
 
+1F7D9
+NINE POINTED WHITE STAR
+
 1F7E0
 LARGE ORANGE CIRCLE
 
@@ -96757,6 +97597,15 @@ SHORTS
 1FA74
 THONG SANDAL
 
+1FA75
+LIGHT BLUE HEART
+
+1FA76
+GREY HEART
+
+1FA77
+PINK HEART
+
 1FA78
 DROP OF BLOOD
 
@@ -96793,6 +97642,12 @@ PINATA
 1FA86
 NESTING DOLLS
 
+1FA87
+MARACAS
+
+1FA88
+FLUTE
+
 1FA90
 RINGED PLANET
 
@@ -96880,6 +97735,15 @@ LOW BATTERY
 1FAAC
 HAMSA
 
+1FAAD
+FOLDING HAND FAN
+
+1FAAE
+HAIR PICK
+
+1FAAF
+KHANDA
+
 1FAB0
 FLY
 
@@ -96913,6 +97777,18 @@ EMPTY NEST
 1FABA
 NEST WITH EGGS
 
+1FABB
+HYACINTH
+
+1FABC
+JELLYFISH
+
+1FABD
+WING
+
+1FABF
+GOOSE
+
 1FAC0
 ANATOMICAL HEART
 
@@ -96931,6 +97807,12 @@ PREGNANT PERSON
 1FAC5
 PERSON WITH CROWN
 
+1FACE
+MOOSE
+
+1FACF
+DONKEY
+
 1FAD0
 BLUEBERRIES
 
@@ -96961,6 +97843,12 @@ BEANS
 1FAD9
 JAR
 
+1FADA
+GINGER ROOT
+
+1FADB
+PEA POD
+
 1FAE0
 MELTING FACE
 
@@ -96985,6 +97873,9 @@ BITING LIP
 1FAE7
 BUBBLES
 
+1FAE8
+SHAKING FACE
+
 1FAF0
 HAND WITH INDEX FINGER AND THUMB CROSSED
 
@@ -97005,6 +97896,12 @@ INDEX POINTING AT THE VIEWER
 
 1FAF6
 HEART HANDS
+
+1FAF7
+LEFTWARDS PUSHING HAND
+
+1FAF8
+RIGHTWARDS PUSHING HAND
 
 1FB00
 BLOCK SEXTANT-1
Index: gnu/usr.bin/perl/lib/unicore/Name.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Name.pm,v
diff -u -p -a -u -p -r1.8 Name.pm
--- gnu/usr.bin/perl/lib/unicore/Name.pm	15 Feb 2023 01:39:49 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/Name.pm	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
@@ -10,10 +10,6 @@
 # base.
 
 
-=head1 NAME -- Internal generated file for use by charnames
-
-=cut
-
 
 package charnames;
 
@@ -59,11 +55,12 @@ package charnames;
 19903,
 40959,
 173791,
-177976,
+177977,
 178205,
 183969,
 191456,
 201546,
+205743,
 ],
 'low' => 
 [
@@ -75,6 +72,7 @@ package charnames;
 178208,
 183984,
 196608,
+201552,
 ],
 },
 'KHITAN SMALL SCRIPT CHARACTER' => 
@@ -149,11 +147,12 @@ package charnames;
 19903,
 40959,
 173791,
-177976,
+177977,
 178205,
 183969,
 191456,
 201546,
+205743,
 ],
 'low' => 
 [
@@ -165,6 +164,7 @@ package charnames;
 178208,
 183984,
 196608,
+201552,
 ],
 },
 'KHITANSMALLSCRIPTCHARACTER' => 
@@ -291,7 +291,7 @@ package charnames;
 'name' => 'CJK UNIFIED IDEOGRAPH',
 },
 {
-'high' => 177976,
+'high' => 177977,
 'legal' => 
 '
  -0123456789ABCDEFGHIJKNOPRU',
@@ -336,6 +336,14 @@ package charnames;
 '
  -0123456789ABCDEFGHIJKNOPRU',
 'low' => 196608,
+'name' => 'CJK UNIFIED IDEOGRAPH',
+},
+{
+'high' => 205743,
+'legal' => 
+'
+ -0123456789ABCDEFGHIJKNOPRU',
+'low' => 201552,
 'name' => 'CJK UNIFIED IDEOGRAPH',
 },
 ,
Index: gnu/usr.bin/perl/lib/unicore/NameAliases.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/NameAliases.txt,v
diff -u -p -a -u -p -r1.6 NameAliases.txt
--- gnu/usr.bin/perl/lib/unicore/NameAliases.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/NameAliases.txt	21 Feb 2024 15:47:02 -0000
@@ -1,10 +1,10 @@
-# NameAliases-14.0.0.txt
-# Date: 2020-10-21, 22:28:00 GMT [KW, LI]
-# © 2020 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# NameAliases-15.0.0.txt
+# Date: 2022-07-26, 20:13:00 GMT [KW]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
@@ -40,7 +40,7 @@
 # control codes (which for historical reasons have no Unicode character name)
 # or for format characters.
 #
-# For documentation, see NamesList.html and http://www.unicode.org/reports/tr44/
+# For documentation, see NamesList.html and https://www.unicode.org/reports/tr44/
 #
 # FORMAT
 #
@@ -135,6 +135,7 @@
 0018;CAN;abbreviation
 0019;END OF MEDIUM;control
 0019;EOM;abbreviation
+0019;EM;abbreviation
 001A;SUBSTITUTE;control
 001A;SUB;abbreviation
 001B;ESCAPE;control
@@ -163,7 +164,7 @@
 # (and corresponding abbreviations) for these code
 # points are included here because these names leaked
 # out from the draft documents and were published in
-# at least one RFC whose names for code points was
+# at least one RFC whose names for code points were
 # implemented in Perl regex expressions.
 
 0080;PADDING CHARACTER;figment
@@ -254,6 +255,7 @@
 01A2;LATIN CAPITAL LETTER GHA;correction
 01A3;LATIN SMALL LETTER GHA;correction
 034F;CGJ;abbreviation
+0616;ARABIC SMALL HIGH LIGATURE ALEF WITH YEH BARREE;correction
 061C;ALM;abbreviation
 0709;SYRIAC SUBLINEAR COLON SKEWED LEFT;correction
 0CDE;KANNADA LETTER LLLA;correction
@@ -271,6 +273,7 @@
 180D;FVS3;abbreviation
 180E;MVS;abbreviation
 180F;FVS4;abbreviation
+1BBD;SUNDANESE LETTER ARCHAIC I;correction
 200B;ZWSP;abbreviation
 200C;ZWNJ;abbreviation
 200D;ZWJ;abbreviation
Index: gnu/usr.bin/perl/lib/unicore/NamedSequences.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/NamedSequences.txt,v
diff -u -p -a -u -p -r1.6 NamedSequences.txt
--- gnu/usr.bin/perl/lib/unicore/NamedSequences.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/NamedSequences.txt	21 Feb 2024 15:47:02 -0000
@@ -1,5 +1,5 @@
-# NamedSequences-14.0.0.txt
-# Date: 2021-08-03, 23:04:00 GMT [KW]
+# NamedSequences-15.0.0.txt
+# Date: 2021-12-07, 17:18:00 GMT [KW]
 # © 2021 Unicode®, Inc.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
Index: gnu/usr.bin/perl/lib/unicore/NamedSqProv.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/NamedSqProv.txt,v
diff -u -p -a -u -p -r1.6 NamedSqProv.txt
--- gnu/usr.bin/perl/lib/unicore/NamedSqProv.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/NamedSqProv.txt	21 Feb 2024 15:47:02 -0000
@@ -1,5 +1,5 @@
-# NamedSequencesProv-14.0.0.txt
-# Date: 2021-08-03, 23:04:00 GMT [KW]
+# NamedSequencesProv-15.0.0.txt
+# Date: 2021-12-07, 17:17:00 GMT [KW]
 # © 2021 Unicode®, Inc.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
Index: gnu/usr.bin/perl/lib/unicore/NamesList.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/NamesList.txt,v
diff -u -p -a -u -p -r1.6 NamesList.txt
--- gnu/usr.bin/perl/lib/unicore/NamesList.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/NamesList.txt	21 Feb 2024 15:47:02 -0000
@@ -1,14 +1,14 @@
 ; charset=UTF-8
-@@@	The Unicode Standard 14.0.0
-@@@+	U14M210804.lst
-	Unicode 14.0.0 final names list.
+@@@	The Unicode Standard 15.0.0
+@@@+	U15M220815.lst
+	Unicode 15.0.0 final names list.
 	This file is semi-automatically derived from UnicodeData.txt and
 	a set of manually created annotations using a script to select
 	or suppress information from the data file. The rules used
 	for this process are aimed at readability for the human reader,
 	at the expense of some details; therefore, this file should not
 	be parsed for machine-readable information.
-@+		© 2021 Unicode®, Inc.
+@+		© 2022 Unicode®, Inc.
 	For terms of use, see https://www.unicode.org/terms_of_use.html
 @@	0000	C0 Controls and Basic Latin (Basic Latin)	007F
 @@+
@@ -238,7 +238,7 @@
 	x (stenographic full stop - 2E3C)
 	x (ideographic full stop - 3002)
 002F	SOLIDUS
-	= slash,forward slash, virgule
+	= slash, forward slash, virgule
 	x (combining long solidus overlay - 0338)
 	x (fraction slash - 2044)
 	x (division slash - 2215)
@@ -3558,7 +3558,7 @@
 @+		These are obsolete letters attested in a 19th century grammar of Komi.
 052A	CYRILLIC CAPITAL LETTER DZZHE
 052B	CYRILLIC SMALL LETTER DZZHE
-	* also used for Ossetian until 1924
+@+	* also used for Ossetian until 1924
 052C	CYRILLIC CAPITAL LETTER DCHE
 052D	CYRILLIC SMALL LETTER DCHE
 @		Khanty letters
@@ -3885,6 +3885,7 @@
 	* should not be confused with the small TAH sign used as a diacritic for some letters such as 0679
 @		Extended Arabic mark
 0616	ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
+	% ARABIC SMALL HIGH LIGATURE ALEF WITH YEH BARREE
 	* early Persian
 @		Quranic annotation signs
 0617	ARABIC SMALL HIGH ZAIN
@@ -4069,14 +4070,18 @@
 	* Kazakh, Jawi
 	* forms digraphs
 @		Digraphic letters for Kazakh
-@+		Use of these characters is discouraged. They were encoded for Kazakh digraphs, but their decompositions do not reflect the preferred order of representation.
+@+		These characters were encoded for Kazakh digraphs, but their compatibility decompositions do not reflect the preferred order of representation. Accordingly, the representation of these Kazakh digraphs should instead use the preferred two-character spellings with the correct order of elements.
 0675	ARABIC LETTER HIGH HAMZA ALEF
+	* preferred spelling is 0674 0627
 	# 0627 0674
 0676	ARABIC LETTER HIGH HAMZA WAW
+	* preferred spelling is 0674 0648
 	# 0648 0674
 0677	ARABIC LETTER U WITH HAMZA ABOVE
+	* preferred spelling is 0674 06C7
 	# 06C7 0674
 0678	ARABIC LETTER HIGH HAMZA YEH
+	* preferred spelling is 0674 0649
 	# 064A 0674
 @		Extended Arabic letters
 0679	ARABIC LETTER TTEH
@@ -4195,7 +4200,7 @@
 	* Uyghur, Kazakh, Moroccan Arabic, early Jawi, early Persian, ...
 06AE	ARABIC LETTER KAF WITH THREE DOTS BELOW
 	* Berber, early Persian
-	* Pegon alternative for 068A
+	* Pegon alternative for 08B4
 06AF	ARABIC LETTER GAF
 	* Persian, Urdu, ...
 06B0	ARABIC LETTER GAF WITH RING
@@ -5009,6 +5014,7 @@
 08DB	ARABIC SMALL HIGH WORD AS-SAJDA
 08DC	ARABIC SMALL HIGH WORD AN-NISF
 08DD	ARABIC SMALL HIGH WORD SAKTA
+	x (arabic small low word sakta - 10EFD)
 08DE	ARABIC SMALL HIGH WORD QIF
 08DF	ARABIC SMALL HIGH WORD WAQFA
 08E0	ARABIC SMALL HIGH FOOTNOTE MARKER
@@ -6087,6 +6093,7 @@
 0C80	KANNADA SIGN SPACING CANDRABINDU
 0C81	KANNADA SIGN CANDRABINDU
 0C82	KANNADA SIGN ANUSVARA
+	* used in Konkani, Havyaka Kannada (Havigannada) and Awadhi texts to indicate regular anusvara
 0C83	KANNADA SIGN VISARGA
 0C84	KANNADA SIGN SIDDHAM
 	= siddhirastu
@@ -6209,6 +6216,8 @@
 	x (vedic sign jihvamuliya - 1CF5)
 0CF2	KANNADA SIGN UPADHMANIYA
 	x (vedic sign upadhmaniya - 1CF6)
+0CF3	KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+	* used in Konkani, Havyaka Kannada (Havigannada) and Awadhi texts to indicate anunāsikā
 @@	0D00	Malayalam	0D7F
 @		Various signs
 0D00	MALAYALAM SIGN COMBINING ANUSVARA ABOVE
@@ -6715,6 +6724,7 @@
 	= nikkhahit
 	* final nasal
 0E4E	THAI CHARACTER YAMAKKAN
+	x (lao yamakkan - 0ECE)
 0E4F	THAI CHARACTER FONGMAN
 	* used as a bullet
 	x (khmer sign phnaek muan - 17D9)
@@ -6858,6 +6868,9 @@
 0ECC	LAO CANCELLATION MARK
 0ECD	LAO NIGGAHITA
 	* final nasal or long o vowel
+0ECE	LAO YAMAKKAN
+	* marks a consonant that is simultaneously a part of two consonant clusters in Pali text
+	x (thai character yamakkan - 0E4E)
 @		Digits
 0ED0	LAO DIGIT ZERO
 0ED1	LAO DIGIT ONE
@@ -10130,18 +10143,22 @@
 19AA	NEW TAI LUE LETTER HIGH SUA
 19AB	NEW TAI LUE LETTER LOW SUA
 	* a labialized consonant cluster
-@		Vowel signs
+@		Vowels
 19B0	NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
 19B1	NEW TAI LUE VOWEL SIGN AA
 19B2	NEW TAI LUE VOWEL SIGN II
 19B3	NEW TAI LUE VOWEL SIGN U
 19B4	NEW TAI LUE VOWEL SIGN UU
 19B5	NEW TAI LUE VOWEL SIGN E
+	* precedes consonant in visual order
 19B6	NEW TAI LUE VOWEL SIGN AE
+	* precedes consonant in visual order
 19B7	NEW TAI LUE VOWEL SIGN O
+	* precedes consonant in visual order
 19B8	NEW TAI LUE VOWEL SIGN OA
 19B9	NEW TAI LUE VOWEL SIGN UE
 19BA	NEW TAI LUE VOWEL SIGN AY
+	* precedes consonant in visual order
 19BB	NEW TAI LUE VOWEL SIGN AAY
 19BC	NEW TAI LUE VOWEL SIGN UY
 19BD	NEW TAI LUE VOWEL SIGN OY
@@ -10771,14 +10788,19 @@
 1BB9	SUNDANESE DIGIT NINE
 @		Sign
 1BBA	SUNDANESE AVAGRAHA
+	= gemination mark
 @		Historic letters
 1BBB	SUNDANESE LETTER REU
 	* vocalic r
 1BBC	SUNDANESE LETTER LEU
 	* vocalic l
 1BBD	SUNDANESE LETTER BHA
+	% SUNDANESE LETTER ARCHAIC I
+	* character was originally misidentified, so its name is a misnomer
 1BBE	SUNDANESE LETTER FINAL K
 1BBF	SUNDANESE LETTER FINAL M
+	* used in a 21st century document
+	* for actual final m, use the sequence 1B99 1BAA
 @@	1BC0	Batak	1BFF
 @		Letters
 @+		Annotations for letters indicate different usage among the various alphabets sharing the Batak script.
@@ -13002,7 +13024,7 @@
 	x (asterisk - 002A)
 	x (combining asterisk below - 0359)
 204F	REVERSED SEMICOLON
-	* also used in Sindhi
+	* used occasionally in Sindhi when Sindhi is written in the Arabic script
 	x (semicolon - 003B)
 	x (arabic semicolon - 061B)
 2050	CLOSE UP
@@ -13357,6 +13379,9 @@
 20E6	COMBINING DOUBLE VERTICAL STROKE OVERLAY
 	= z notation finite function diacritic
 	x (double vertical line - 2016)
+	x (rightwards arrow with double vertical stroke - 21FB)
+	x (rightwards two-headed arrow with double vertical stroke - 2901)
+	x (rightwards arrow with tail with double vertical stroke - 2915)
 20E7	COMBINING ANNUITY SYMBOL
 	= actuarial bend
 	x (right ceiling - 2309)
@@ -13387,7 +13412,7 @@
 	= the set of complex numbers
 	# <font> 0043 latin capital letter c
 2103	DEGREE CELSIUS
-	= degrees Centigrade
+	= degrees centigrade
 	# 00B0 0043
 2104	CENTRE LINE SYMBOL
 	= clone
@@ -14330,6 +14355,7 @@
 	x (circled crossing lanes - 26D2)
 	x (n-ary circled times operator - 2A02)
 	x (circled x - 2BBE)
+	x (lot of fortune - 1F774)
 	~ 2297 FE00 with white rim
 2298	CIRCLED DIVISION SLASH
 2299	CIRCLED DOT OPERATOR
@@ -14607,7 +14633,7 @@
 231B	HOURGLASS
 	= alchemical symbol for hour
 @		Quine corners
-@+		These form a set of four quine corners, for quincuncial arrangement. They are also used in upper and lower pairs in mathematic, or more rarely in editorial usage as alternatives to half brackets.
+@+		These form a set of four quine corners, for quincuncial arrangement. They are also used in upper and lower pairs in mathematics, or more rarely in editorial usage as alternatives to half brackets.
 231C	TOP LEFT CORNER
 	x (right angle substitution marker - 2E00)
 	x (top left half bracket - 2E22)
@@ -15876,7 +15902,9 @@
 	x (alchemical symbol for purify - 1F763)
 260C	CONJUNCTION
 	= alchemical symbol for day
+	x (occultation - 1F775)
 260D	OPPOSITION
+	x (lunar eclipse - 1F776)
 @		Miscellaneous symbols
 260E	BLACK TELEPHONE
 	x (telephone sign - 2121)
@@ -15962,6 +15990,7 @@
 262C	ADI SHAKTI
 	= khanda
 	* Sikh religious symbol
+	x (khanda - 1FAAF)
 262D	HAMMER AND SICKLE
 262E	PEACE SYMBOL
 262F	YIN YANG
@@ -16240,7 +16269,7 @@
 	= heterosexuality
 26A5	MALE AND FEMALE SIGN
 	= intersex, androgynous
-	= hermaphrodite (in entomology)
+	= hermaphroditic (in botany)
 26A6	MALE WITH STROKE SIGN
 	= transgender
 	= alchemical symbol for iron or crocus of iron
@@ -19288,7 +19317,8 @@
 	x (modifier letter short equals sign - A78A)
 @		Reversed punctuation
 2E41	REVERSED COMMA
-	* also used in Sindhi
+	* Old Hungarian
+	* used occasionally in Sindhi when Sindhi is written in the Arabic script
 	x (comma - 002C)
 	x (arabic comma - 060C)
 2E42	DOUBLE LOW-REVERSED-9 QUOTATION MARK
@@ -19325,7 +19355,7 @@
 	x (paragraphos - 2E0F)
 	x (capitulum - 2E3F)
 2E4E	PUNCTUS ELEVATUS MARK
-@+		This mark indicates a major intermediate pause where the sensus is complete but the sentence is not; this is similar in some regards to the modern use of a semicolon.
+@+		* This mark indicates a major intermediate pause where the sensus is complete but the sentence is not; this is similar in some regards to the modern use of a semicolon.
 2E4F	CORNISH VERSE DIVIDER
 2E50	CROSS PATTY WITH RIGHT CROSSBAR
 	x (maltese cross - 2720)
@@ -19414,7 +19444,9 @@
 2E94	CJK RADICAL SNOUT ONE
 	x 5F51
 2E95	CJK RADICAL SNOUT TWO
+	* actually a form of the radical for hand, despite its resemblance in shape to the radical for snout
 	x 5F50
+	x 2B739
 2E96	CJK RADICAL HEART ONE
 	* form used on left side
 	x 5FC4
@@ -22067,6 +22099,7 @@
 33D6	SQUARE MOL
 	# <square> 006D 006F 006C
 33D7	SQUARE PH
+	* casing inconsistency in the compatibility decomposition is a known anomaly dating from glyph presentations in very early versions of the standard
 	# <square> 0050 0048
 33D8	SQUARE PM
 	# <square> 0070 002E 006D 002E
@@ -24914,11 +24947,13 @@ A91E	KAYAH LI LETTER THA
 A91F	KAYAH LI LETTER HA
 A920	KAYAH LI LETTER VA
 A921	KAYAH LI LETTER CA
+@		Vowels
 A922	KAYAH LI LETTER A
+	* serves as a vowel carrier for vowels indicated with combining marks
 A923	KAYAH LI LETTER OE
+	* also serves as a vowel carrier
 A924	KAYAH LI LETTER I
 A925	KAYAH LI LETTER OO
-@		Vowels
 A926	KAYAH LI VOWEL UE
 A927	KAYAH LI VOWEL E
 A928	KAYAH LI VOWEL U
@@ -25517,6 +25552,7 @@ AB2E	ETHIOPIC SYLLABLE BBO
 @@	AB30	Latin Extended-E	AB6F
 @		Letters for German dialectology
 AB30	LATIN SMALL LETTER BARRED ALPHA
+@+		* This letter is a Latin alpha with a horizontal strikethrough bar. In some font designs, the bar might not extend beyond the edge of the letter, and in such cases, the letter should not be confused with a ligature of epsilon and iota.
 AB31	LATIN SMALL LETTER A REVERSED-SCHWA
 AB32	LATIN SMALL LETTER BLACKLETTER E
 AB33	LATIN SMALL LETTER BARRED E
@@ -32300,6 +32336,7 @@ FFFF	<not a character>
 10C47	OLD TURKIC LETTER ORKHON OT
 10C48	OLD TURKIC LETTER ORKHON BASH
 @@	10C80	Old Hungarian	10CFF
+@+		This script has contemporary usage in Hungary, where users often prefer the name Szekely-Hungarian Rovas.
 @		Uppercase letters
 @+		The use of uppercase letters is a modern innovation.
 10C80	OLD HUNGARIAN CAPITAL LETTER A
@@ -32487,6 +32524,7 @@ FFFF	<not a character>
 	* in earlier literature called "tprus" (later recognized as an abbreviation for "temperius")
 10CF2	OLD HUNGARIAN SMALL LETTER US
 @		Numbers
+@+		The numbers for one, five, and ten have a clear relationship to Roman numerals.
 10CFA	OLD HUNGARIAN NUMBER ONE
 10CFB	OLD HUNGARIAN NUMBER FIVE
 10CFC	OLD HUNGARIAN NUMBER TEN
@@ -32652,6 +32690,12 @@ FFFF	<not a character>
 @		Historical letters with diacritics
 10EB0	YEZIDI LETTER LAM WITH DOT ABOVE
 10EB1	YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+@@	10EC0	Arabic Extended-C	10EFF
+@		Quranic marks used in Turkey
+10EFD	ARABIC SMALL LOW WORD SAKTA
+	x (arabic small high word sakta - 08DD)
+10EFE	ARABIC SMALL LOW WORD QASR
+10EFF	ARABIC SMALL LOW WORD MADDA
 @@	10F00	Old Sogdian	10F2F
 @+		This block unifies the scripts used in the Ancient Letters and the Kultobe and Upper Indus inscriptions.
 @		Letters
@@ -33465,6 +33509,12 @@ FFFF	<not a character>
 @		Sign
 1123E	KHOJKI SIGN SUKUN
 	* used for Arabic transliteration
+@		Consonant
+1123F	KHOJKI LETTER QA
+@		Independent vowel
+11240	KHOJKI LETTER SHORT I
+@		Dependent vowel sign
+11241	KHOJKI VOWEL SIGN VOCALIC R
 @@	11280	Multani	112AF
 @		Vowels
 11280	MULTANI LETTER A
@@ -34956,6 +35006,22 @@ FFFF	<not a character>
 11AF6	PAU CIN HAU LOW-FALLING TONE LONG FINAL
 11AF7	PAU CIN HAU LOW-FALLING TONE FINAL
 11AF8	PAU CIN HAU GLOTTAL STOP FINAL
+@@	11B00	Devanagari Extended-A	11B5F
+@		Head marks
+11B00	DEVANAGARI HEAD MARK
+	x (devanagari double danda - 0965)
+11B01	DEVANAGARI HEAD MARK WITH HEADSTROKE
+@		Auspicious signs
+@+		These are used for representing bhale mīndu signs.
+11B02	DEVANAGARI SIGN BHALE
+11B03	DEVANAGARI SIGN BHALE WITH HOOK
+11B04	DEVANAGARI SIGN EXTENDED BHALE
+11B05	DEVANAGARI SIGN EXTENDED BHALE WITH HOOK
+11B06	DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE
+11B07	DEVANAGARI SIGN WESTERN NINE-LIKE BHALE
+11B08	DEVANAGARI SIGN REVERSED NINE-LIKE BHALE
+11B09	DEVANAGARI SIGN MINDU
+	x (devanagari digit zero - 0966)
 @@	11C00	Bhaiksuki	11C6F
 @		Independent vowels
 11C00	BHAIKSUKI LETTER A
@@ -35330,6 +35396,106 @@ FFFF	<not a character>
 @		Punctuation
 11EF7	MAKASAR PASSIMBANG
 11EF8	MAKASAR END OF SECTION
+@@	11F00	Kawi	11F5F
+@		Signs
+11F00	KAWI SIGN CANDRABINDU
+11F01	KAWI SIGN ANUSVARA
+11F02	KAWI SIGN REPHA
+	* cluster-initial form of 11F2C
+	* also used as final r
+11F03	KAWI SIGN VISARGA
+@		Independent vowels
+11F04	KAWI LETTER A
+11F05	KAWI LETTER AA
+11F06	KAWI LETTER I
+11F07	KAWI LETTER II
+11F08	KAWI LETTER U
+11F09	KAWI LETTER UU
+11F0A	KAWI LETTER VOCALIC R
+11F0B	KAWI LETTER VOCALIC RR
+11F0C	KAWI LETTER VOCALIC L
+11F0D	KAWI LETTER VOCALIC LL
+11F0E	KAWI LETTER E
+11F0F	KAWI LETTER AI
+11F10	KAWI LETTER O
+@		Consonants
+11F12	KAWI LETTER KA
+11F13	KAWI LETTER KHA
+11F14	KAWI LETTER GA
+11F15	KAWI LETTER GHA
+11F16	KAWI LETTER NGA
+11F17	KAWI LETTER CA
+11F18	KAWI LETTER CHA
+11F19	KAWI LETTER JA
+11F1A	KAWI LETTER JHA
+11F1B	KAWI LETTER NYA
+11F1C	KAWI LETTER TTA
+11F1D	KAWI LETTER TTHA
+11F1E	KAWI LETTER DDA
+11F1F	KAWI LETTER DDHA
+11F20	KAWI LETTER NNA
+11F21	KAWI LETTER TA
+11F22	KAWI LETTER THA
+11F23	KAWI LETTER DA
+11F24	KAWI LETTER DHA
+11F25	KAWI LETTER NA
+11F26	KAWI LETTER PA
+11F27	KAWI LETTER PHA
+11F28	KAWI LETTER BA
+11F29	KAWI LETTER BHA
+11F2A	KAWI LETTER MA
+11F2B	KAWI LETTER YA
+11F2C	KAWI LETTER RA
+11F2D	KAWI LETTER LA
+11F2E	KAWI LETTER WA
+11F2F	KAWI LETTER SHA
+11F30	KAWI LETTER SSA
+11F31	KAWI LETTER SA
+11F32	KAWI LETTER HA
+11F33	KAWI LETTER JNYA
+@		Dependent vowel signs
+11F34	KAWI VOWEL SIGN AA
+11F35	KAWI VOWEL SIGN ALTERNATE AA
+11F36	KAWI VOWEL SIGN I
+11F37	KAWI VOWEL SIGN II
+11F38	KAWI VOWEL SIGN U
+11F39	KAWI VOWEL SIGN UU
+11F3A	KAWI VOWEL SIGN VOCALIC R
+11F3E	KAWI VOWEL SIGN E
+11F3F	KAWI VOWEL SIGN AI
+11F40	KAWI VOWEL SIGN EU
+	* represents schwa [ə]
+@		Viramas
+11F41	KAWI SIGN KILLER
+	* vowel killer, always rendered visibly
+11F42	KAWI CONJOINER
+	* used for producing below-base and post-base conjunct forms
+@		Punctuation
+11F43	KAWI DANDA
+11F44	KAWI DOUBLE DANDA
+11F45	KAWI PUNCTUATION SECTION MARKER
+11F46	KAWI PUNCTUATION ALTERNATE SECTION MARKER
+11F47	KAWI PUNCTUATION FLOWER
+11F48	KAWI PUNCTUATION SPACE FILLER
+11F49	KAWI PUNCTUATION DOT
+11F4A	KAWI PUNCTUATION DOUBLE DOT
+11F4B	KAWI PUNCTUATION TRIPLE DOT
+11F4C	KAWI PUNCTUATION CIRCLE
+11F4D	KAWI PUNCTUATION FILLED CIRCLE
+11F4E	KAWI PUNCTUATION SPIRAL
+11F4F	KAWI PUNCTUATION CLOSING SPIRAL
+@		Digits
+11F50	KAWI DIGIT ZERO
+11F51	KAWI DIGIT ONE
+11F52	KAWI DIGIT TWO
+	* also used as letter ro
+11F53	KAWI DIGIT THREE
+11F54	KAWI DIGIT FOUR
+11F55	KAWI DIGIT FIVE
+11F56	KAWI DIGIT SIX
+11F57	KAWI DIGIT SEVEN
+11F58	KAWI DIGIT EIGHT
+11F59	KAWI DIGIT NINE
 @@	11FB0	Lisu Supplement	11FBF
 @		Letter
 11FB0	LISU LETTER YHA
@@ -36988,8 +37154,11 @@ FFFF	<not a character>
 1308F	EGYPTIAN HIEROGLYPH D025
 13090	EGYPTIAN HIEROGLYPH D026
 13091	EGYPTIAN HIEROGLYPH D027
+	~ 13091 FE00 rotated 90 degrees
 13092	EGYPTIAN HIEROGLYPH D027A
+	~ 13092 FE00 rotated 90 degrees
 13093	EGYPTIAN HIEROGLYPH D028
+	~ 13093 FE01 rotated 180 degrees
 13094	EGYPTIAN HIEROGLYPH D029
 13095	EGYPTIAN HIEROGLYPH D030
 13096	EGYPTIAN HIEROGLYPH D031
@@ -37016,6 +37185,7 @@ FFFF	<not a character>
 	* transliterated as d
 130A8	EGYPTIAN HIEROGLYPH D046A
 130A9	EGYPTIAN HIEROGLYPH D047
+	~ 130A9 FE01 rotated 180 degrees
 130AA	EGYPTIAN HIEROGLYPH D048
 130AB	EGYPTIAN HIEROGLYPH D048A
 130AC	EGYPTIAN HIEROGLYPH D049
@@ -37154,6 +37324,7 @@ FFFF	<not a character>
 1310D	EGYPTIAN HIEROGLYPH F014
 1310E	EGYPTIAN HIEROGLYPH F015
 1310F	EGYPTIAN HIEROGLYPH F016
+	~ 1310F FE00 rotated 90 degrees
 13110	EGYPTIAN HIEROGLYPH F017
 13111	EGYPTIAN HIEROGLYPH F018
 13112	EGYPTIAN HIEROGLYPH F019
@@ -37163,12 +37334,14 @@ FFFF	<not a character>
 	* from hieratic
 13116	EGYPTIAN HIEROGLYPH F022
 13117	EGYPTIAN HIEROGLYPH F023
+	~ 13117 FE02 rotated 270 degrees
 13118	EGYPTIAN HIEROGLYPH F024
 	* mirrored version of 13117
 13119	EGYPTIAN HIEROGLYPH F025
 1311A	EGYPTIAN HIEROGLYPH F026
 1311B	EGYPTIAN HIEROGLYPH F027
 1311C	EGYPTIAN HIEROGLYPH F028
+	~ 1311C FE00 rotated 90 degrees
 1311D	EGYPTIAN HIEROGLYPH F029
 1311E	EGYPTIAN HIEROGLYPH F030
 1311F	EGYPTIAN HIEROGLYPH F031
@@ -37176,12 +37349,14 @@ FFFF	<not a character>
 	* cursive variant of 1311F
 13121	EGYPTIAN HIEROGLYPH F032
 	* transliterated as 1E96
+	~ 13121 FE00 rotated 90 degrees
 13122	EGYPTIAN HIEROGLYPH F033
 13123	EGYPTIAN HIEROGLYPH F034
 13124	EGYPTIAN HIEROGLYPH F035
 13125	EGYPTIAN HIEROGLYPH F036
 13126	EGYPTIAN HIEROGLYPH F037
 13127	EGYPTIAN HIEROGLYPH F037A
+	~ 13127 FE00 rotated 90 degrees
 13128	EGYPTIAN HIEROGLYPH F038
 13129	EGYPTIAN HIEROGLYPH F038A
 1312A	EGYPTIAN HIEROGLYPH F039
@@ -37204,6 +37379,8 @@ FFFF	<not a character>
 	* mirrored version of 13136
 13138	EGYPTIAN HIEROGLYPH F050
 13139	EGYPTIAN HIEROGLYPH F051
+	~ 13139 FE00 rotated 90 degrees
+	~ 13139 FE02 rotated 270 degrees
 1313A	EGYPTIAN HIEROGLYPH F051A
 1313B	EGYPTIAN HIEROGLYPH F051B
 	* variant of 1313A
@@ -37295,11 +37472,13 @@ FFFF	<not a character>
 13181	EGYPTIAN HIEROGLYPH H003
 13182	EGYPTIAN HIEROGLYPH H004
 13183	EGYPTIAN HIEROGLYPH H005
+	~ 13183 FE02 rotated 270 degrees
 13184	EGYPTIAN HIEROGLYPH H006
 13185	EGYPTIAN HIEROGLYPH H006A
 	* from hieratic
 13186	EGYPTIAN HIEROGLYPH H007
 13187	EGYPTIAN HIEROGLYPH H008
+	~ 13187 FE01 rotated 180 degrees
 @		I. Amphibious animals, reptiles, etc.
 13188	EGYPTIAN HIEROGLYPH I001
 13189	EGYPTIAN HIEROGLYPH I002
@@ -37330,6 +37509,8 @@ FFFF	<not a character>
 1319E	EGYPTIAN HIEROGLYPH K004
 1319F	EGYPTIAN HIEROGLYPH K005
 131A0	EGYPTIAN HIEROGLYPH K006
+	~ 131A0 FE00 rotated 90 degrees
+	~ 131A0 FE02 rotated 270 degrees
 131A1	EGYPTIAN HIEROGLYPH K007
 131A2	EGYPTIAN HIEROGLYPH K008
 @		L. Invertebrata and lesser animals
@@ -37350,6 +37531,8 @@ FFFF	<not a character>
 131AF	EGYPTIAN HIEROGLYPH M001B
 131B0	EGYPTIAN HIEROGLYPH M002
 131B1	EGYPTIAN HIEROGLYPH M003
+	~ 131B1 FE00 rotated 90 degrees
+	~ 131B1 FE01 rotated 180 degrees
 131B2	EGYPTIAN HIEROGLYPH M003A
 131B3	EGYPTIAN HIEROGLYPH M004
 131B4	EGYPTIAN HIEROGLYPH M005
@@ -37357,8 +37540,11 @@ FFFF	<not a character>
 131B6	EGYPTIAN HIEROGLYPH M007
 131B7	EGYPTIAN HIEROGLYPH M008
 131B8	EGYPTIAN HIEROGLYPH M009
+	~ 131B8 FE00 rotated 90 degrees
 131B9	EGYPTIAN HIEROGLYPH M010
+	~ 131B9 FE00 rotated 90 degrees
 131BA	EGYPTIAN HIEROGLYPH M010A
+	~ 131BA FE02 rotated 270 degrees
 131BB	EGYPTIAN HIEROGLYPH M011
 131BC	EGYPTIAN HIEROGLYPH M012
 	* 1,000
@@ -37389,6 +37575,7 @@ FFFF	<not a character>
 	* transliterated as A7BD
 	x (hebrew letter yod - 05D9)
 	x (arabic letter yeh - 064A)
+	~ 131CB FE00 rotated 90 degrees
 131CC	EGYPTIAN HIEROGLYPH M017A
 	* phonogram 'y'
 	x (egyptian hieroglyph z004 - 133ED)
@@ -37435,6 +37622,8 @@ FFFF	<not a character>
 131EE	EGYPTIAN HIEROGLYPH M044
 	* thorn
 	* not to be confused with 133DA
+	~ 131EE FE01 rotated 180 degrees
+	~ 131EE FE02 rotated 270 degrees
 @		N. Sky, earth, water
 131EF	EGYPTIAN HIEROGLYPH N001
 131F0	EGYPTIAN HIEROGLYPH N002
@@ -37451,8 +37640,13 @@ FFFF	<not a character>
 	* variant of 131F8
 131F8	EGYPTIAN HIEROGLYPH N010
 	* variant of 131F7
+	~ 131F8 FE01 rotated 180 degrees
 131F9	EGYPTIAN HIEROGLYPH N011
+	~ 131F9 FE00 rotated 90 degrees
+	~ 131F9 FE01 rotated 180 degrees
 131FA	EGYPTIAN HIEROGLYPH N012
+	~ 131FA FE00 rotated 90 degrees
+	~ 131FA FE01 rotated 180 degrees
 131FB	EGYPTIAN HIEROGLYPH N013
 131FC	EGYPTIAN HIEROGLYPH N014
 131FD	EGYPTIAN HIEROGLYPH N015
@@ -37498,6 +37692,7 @@ FFFF	<not a character>
 	* stylistic variant, use of 13214 is preferred
 13216	EGYPTIAN HIEROGLYPH N035
 	* transliterated as n
+	~ 13216 FE02 rotated 270 degrees
 13217	EGYPTIAN HIEROGLYPH N035A
 	* classifier 'liquid'
 13218	EGYPTIAN HIEROGLYPH N036
@@ -37578,6 +37773,7 @@ FFFF	<not a character>
 13256	EGYPTIAN HIEROGLYPH O005A
 	* mirrored version of 13255
 13257	EGYPTIAN HIEROGLYPH O006
+	~ 13257 FE01 rotated 180 degrees
 13258	EGYPTIAN HIEROGLYPH O006A
 	* beginning of hwt or serekh enclosure
 	x (egyptian hieroglyph o033a - 13282)
@@ -37621,6 +37817,7 @@ FFFF	<not a character>
 13279	EGYPTIAN HIEROGLYPH O027
 1327A	EGYPTIAN HIEROGLYPH O028
 1327B	EGYPTIAN HIEROGLYPH O029
+	~ 1327B FE02 rotated 270 degrees
 1327C	EGYPTIAN HIEROGLYPH O029A
 	* rotated variant of 1327B
 1327D	EGYPTIAN HIEROGLYPH O030
@@ -37628,6 +37825,8 @@ FFFF	<not a character>
 	* not to be confused with 13361
 1327E	EGYPTIAN HIEROGLYPH O030A
 1327F	EGYPTIAN HIEROGLYPH O031
+	~ 1327F FE00 rotated 90 degrees
+	~ 1327F FE01 rotated 180 degrees
 13280	EGYPTIAN HIEROGLYPH O032
 13281	EGYPTIAN HIEROGLYPH O033
 	* classifier 'serekh'
@@ -37639,6 +37838,7 @@ FFFF	<not a character>
 	x (egyptian hieroglyph s029 - 132F4)
 13284	EGYPTIAN HIEROGLYPH O035
 13285	EGYPTIAN HIEROGLYPH O036
+	~ 13285 FE00 rotated 90 degrees
 13286	EGYPTIAN HIEROGLYPH O036A
 	* beginning of fortified wall cartouche
 13287	EGYPTIAN HIEROGLYPH O036B
@@ -37652,6 +37852,7 @@ FFFF	<not a character>
 1328C	EGYPTIAN HIEROGLYPH O039
 	* stone, brick
 	* not to be confused with 13219
+	~ 1328C FE00 rotated 90 degrees
 1328D	EGYPTIAN HIEROGLYPH O040
 1328E	EGYPTIAN HIEROGLYPH O041
 1328F	EGYPTIAN HIEROGLYPH O042
@@ -37683,6 +37884,8 @@ FFFF	<not a character>
 132A2	EGYPTIAN HIEROGLYPH P006
 132A3	EGYPTIAN HIEROGLYPH P007
 132A4	EGYPTIAN HIEROGLYPH P008
+	~ 132A4 FE01 rotated 180 degrees
+	~ 132A4 FE02 rotated 270 degrees
 132A5	EGYPTIAN HIEROGLYPH P009
 132A6	EGYPTIAN HIEROGLYPH P010
 132A7	EGYPTIAN HIEROGLYPH P011
@@ -37693,6 +37896,7 @@ FFFF	<not a character>
 132A9	EGYPTIAN HIEROGLYPH Q002
 132AA	EGYPTIAN HIEROGLYPH Q003
 	* transliterated as p
+	~ 132AA FE00 rotated 90 degrees
 132AB	EGYPTIAN HIEROGLYPH Q004
 132AC	EGYPTIAN HIEROGLYPH Q005
 132AD	EGYPTIAN HIEROGLYPH Q006
@@ -37727,6 +37931,7 @@ FFFF	<not a character>
 132C9	EGYPTIAN HIEROGLYPH R022
 132CA	EGYPTIAN HIEROGLYPH R023
 132CB	EGYPTIAN HIEROGLYPH R024
+	~ 132CB FE00 rotated 90 degrees
 132CC	EGYPTIAN HIEROGLYPH R025
 132CD	EGYPTIAN HIEROGLYPH R026
 132CE	EGYPTIAN HIEROGLYPH R027
@@ -37745,6 +37950,7 @@ FFFF	<not a character>
 132DA	EGYPTIAN HIEROGLYPH S008
 132DB	EGYPTIAN HIEROGLYPH S009
 132DC	EGYPTIAN HIEROGLYPH S010
+	~ 132DC FE00 rotated 90 degrees
 132DD	EGYPTIAN HIEROGLYPH S011
 132DE	EGYPTIAN HIEROGLYPH S012
 132DF	EGYPTIAN HIEROGLYPH S013
@@ -37756,8 +37962,11 @@ FFFF	<not a character>
 132E5	EGYPTIAN HIEROGLYPH S017
 132E6	EGYPTIAN HIEROGLYPH S017A
 132E7	EGYPTIAN HIEROGLYPH S018
+	~ 132E7 FE00 rotated 90 degrees
+	~ 132E7 FE02 rotated 270 degrees
 132E8	EGYPTIAN HIEROGLYPH S019
 132E9	EGYPTIAN HIEROGLYPH S020
+	~ 132E9 FE02 rotated 270 degrees
 132EA	EGYPTIAN HIEROGLYPH S021
 132EB	EGYPTIAN HIEROGLYPH S022
 132EC	EGYPTIAN HIEROGLYPH S023
@@ -37777,6 +37986,7 @@ FFFF	<not a character>
 132F6	EGYPTIAN HIEROGLYPH S031
 132F7	EGYPTIAN HIEROGLYPH S032
 132F8	EGYPTIAN HIEROGLYPH S033
+	~ 132F8 FE02 rotated 270 degrees
 132F9	EGYPTIAN HIEROGLYPH S034
 132FA	EGYPTIAN HIEROGLYPH S035
 132FB	EGYPTIAN HIEROGLYPH S035A
@@ -37784,6 +37994,7 @@ FFFF	<not a character>
 132FC	EGYPTIAN HIEROGLYPH S036
 	* older variant of 132FA
 132FD	EGYPTIAN HIEROGLYPH S037
+	~ 132FD FE02 rotated 270 degrees
 132FE	EGYPTIAN HIEROGLYPH S038
 132FF	EGYPTIAN HIEROGLYPH S039
 13300	EGYPTIAN HIEROGLYPH S040
@@ -37791,14 +38002,18 @@ FFFF	<not a character>
 13301	EGYPTIAN HIEROGLYPH S041
 	* phonogram 'ḏꜣm'
 13302	EGYPTIAN HIEROGLYPH S042
+	~ 13302 FE02 rotated 270 degrees
 13303	EGYPTIAN HIEROGLYPH S043
+	~ 13303 FE02 rotated 270 degrees
 13304	EGYPTIAN HIEROGLYPH S044
 13305	EGYPTIAN HIEROGLYPH S045
 13306	EGYPTIAN HIEROGLYPH S046
 @		T. Warfare, hunting, butchery
 13307	EGYPTIAN HIEROGLYPH T001
+	~ 13307 FE00 rotated 90 degrees
 13308	EGYPTIAN HIEROGLYPH T002
 	* classifier 'striking, hitting'
+	~ 13308 FE01 rotated 180 degrees
 13309	EGYPTIAN HIEROGLYPH T003
 	* classifier 'mace'
 1330A	EGYPTIAN HIEROGLYPH T003A
@@ -37809,11 +38024,19 @@ FFFF	<not a character>
 1330F	EGYPTIAN HIEROGLYPH T007A
 13310	EGYPTIAN HIEROGLYPH T008
 	* older variant of 13311
+	~ 13310 FE02 rotated 270 degrees
 13311	EGYPTIAN HIEROGLYPH T008A
+	~ 13311 FE02 rotated 270 degrees
 13312	EGYPTIAN HIEROGLYPH T009
+	~ 13312 FE01 rotated 180 degrees
+	~ 13312 FE02 rotated 270 degrees
 13313	EGYPTIAN HIEROGLYPH T009A
 	* older variant of 13312
+	~ 13313 FE01 rotated 180 degrees
+	~ 13313 FE02 rotated 270 degrees
 13314	EGYPTIAN HIEROGLYPH T010
+	~ 13314 FE01 rotated 180 degrees
+	~ 13314 FE02 rotated 270 degrees
 13315	EGYPTIAN HIEROGLYPH T011
 13316	EGYPTIAN HIEROGLYPH T011A
 13317	EGYPTIAN HIEROGLYPH T012
@@ -37822,14 +38045,21 @@ FFFF	<not a character>
 1331A	EGYPTIAN HIEROGLYPH T015
 	* older variant of 13319
 1331B	EGYPTIAN HIEROGLYPH T016
+	~ 1331B FE00 rotated 90 degrees
+	~ 1331B FE01 rotated 180 degrees
 1331C	EGYPTIAN HIEROGLYPH T016A
+	~ 1331C FE02 rotated 270 degrees
 1331D	EGYPTIAN HIEROGLYPH T017
 1331E	EGYPTIAN HIEROGLYPH T018
 1331F	EGYPTIAN HIEROGLYPH T019
 13320	EGYPTIAN HIEROGLYPH T020
 	* older variant of 1331F
 13321	EGYPTIAN HIEROGLYPH T021
+	~ 13321 FE01 rotated 180 degrees
+	~ 13321 FE02 rotated 270 degrees
 13322	EGYPTIAN HIEROGLYPH T022
+	~ 13322 FE00 rotated 90 degrees
+	~ 13322 FE01 rotated 180 degrees
 13323	EGYPTIAN HIEROGLYPH T023
 	* more recent variant of 13322
 13324	EGYPTIAN HIEROGLYPH T024
@@ -37851,6 +38081,8 @@ FFFF	<not a character>
 13330	EGYPTIAN HIEROGLYPH T034
 13331	EGYPTIAN HIEROGLYPH T035
 	* variant of 13330
+	~ 13331 FE01 rotated 180 degrees
+	~ 13331 FE02 rotated 270 degrees
 13332	EGYPTIAN HIEROGLYPH T036
 @		U. Agriculture, crafts, and professions
 13333	EGYPTIAN HIEROGLYPH U001
@@ -37867,8 +38099,10 @@ FFFF	<not a character>
 	* mirrored version of 13339
 1333B	EGYPTIAN HIEROGLYPH U007
 	* variant of 13338
+	~ 1333B FE00 rotated 90 degrees
 1333C	EGYPTIAN HIEROGLYPH U008
 	* variant of 1333B
+	~ 1333C FE00 rotated 90 degrees
 1333D	EGYPTIAN HIEROGLYPH U009
 1333E	EGYPTIAN HIEROGLYPH U010
 1333F	EGYPTIAN HIEROGLYPH U011
@@ -37885,6 +38119,7 @@ FFFF	<not a character>
 	* older variant of 13347
 13349	EGYPTIAN HIEROGLYPH U021
 1334A	EGYPTIAN HIEROGLYPH U022
+	~ 1334A FE02 rotated 270 degrees
 1334B	EGYPTIAN HIEROGLYPH U023
 1334C	EGYPTIAN HIEROGLYPH U023A
 	* stylistic variant of 1334B
@@ -37915,6 +38150,7 @@ FFFF	<not a character>
 13361	EGYPTIAN HIEROGLYPH U042
 	* pitchfork
 	* not to be confused with 1327D
+	~ 13361 FE02 rotated 270 degrees
 @		V. Rope, fiber, baskets, bags, etc.
 13362	EGYPTIAN HIEROGLYPH V001
 	* 100
@@ -37948,13 +38184,17 @@ FFFF	<not a character>
 13372	EGYPTIAN HIEROGLYPH V007
 	* phonogram 'šn'
 13373	EGYPTIAN HIEROGLYPH V007A
+	~ 13373 FE02 rotated 270 degrees
 13374	EGYPTIAN HIEROGLYPH V007B
 13375	EGYPTIAN HIEROGLYPH V008
 13376	EGYPTIAN HIEROGLYPH V009
 13377	EGYPTIAN HIEROGLYPH V010
 	* logogram 'name'
+	~ 13377 FE00 rotated 90 degrees
 13378	EGYPTIAN HIEROGLYPH V011
 	* classifier 'restrain, split'
+	x (egyptian hieroglyph v011d - 1342F)
+	~ 13378 FE00 rotated 90 degrees
 13379	EGYPTIAN HIEROGLYPH V011A
 	* beginning of cartouche
 1337A	EGYPTIAN HIEROGLYPH V011B
@@ -37963,6 +38203,7 @@ FFFF	<not a character>
 	* end of knotless cartouche
 1337C	EGYPTIAN HIEROGLYPH V012
 1337D	EGYPTIAN HIEROGLYPH V012A
+	~ 1337D FE02 rotated 270 degrees
 1337E	EGYPTIAN HIEROGLYPH V012B
 1337F	EGYPTIAN HIEROGLYPH V013
 	* transliterated as 1E6F
@@ -37974,6 +38215,7 @@ FFFF	<not a character>
 13384	EGYPTIAN HIEROGLYPH V018
 	* older variant of 13383
 13385	EGYPTIAN HIEROGLYPH V019
+	~ 13385 FE02 rotated 270 degrees
 13386	EGYPTIAN HIEROGLYPH V020
 	* 10
 	* not to be confused with 133AD
@@ -38015,8 +38257,10 @@ FFFF	<not a character>
 13398	EGYPTIAN HIEROGLYPH V025
 	* more recent variant of 13397
 13399	EGYPTIAN HIEROGLYPH V026
+	~ 13399 FE00 rotated 90 degrees
 1339A	EGYPTIAN HIEROGLYPH V027
 	* older variant of 13399
+	~ 1339A FE00 rotated 90 degrees
 1339B	EGYPTIAN HIEROGLYPH V028
 	* transliterated as 1E25
 	x (arabic letter hah - 062D)
@@ -38053,7 +38297,9 @@ FFFF	<not a character>
 	* not to be confused with 13387
 @		W. Vessels of stone and earthenware
 133AF	EGYPTIAN HIEROGLYPH W001
+	~ 133AF FE02 rotated 270 degrees
 133B0	EGYPTIAN HIEROGLYPH W002
+	~ 133B0 FE02 rotated 270 degrees
 133B1	EGYPTIAN HIEROGLYPH W003
 133B2	EGYPTIAN HIEROGLYPH W003A
 	* stylistic variant, use of 133B1 is preferred
@@ -38073,6 +38319,7 @@ FFFF	<not a character>
 	* older variant of 133BC
 133BE	EGYPTIAN HIEROGLYPH W013
 133BF	EGYPTIAN HIEROGLYPH W014
+	~ 133BF FE02 rotated 270 degrees
 133C0	EGYPTIAN HIEROGLYPH W014A
 133C1	EGYPTIAN HIEROGLYPH W015
 133C2	EGYPTIAN HIEROGLYPH W016
@@ -38089,9 +38336,9 @@ FFFF	<not a character>
 133CA	EGYPTIAN HIEROGLYPH W022
 133CB	EGYPTIAN HIEROGLYPH W023
 133CC	EGYPTIAN HIEROGLYPH W024
-	* phonogramm 'nw'
+	* phonogram 'nw'
 133CD	EGYPTIAN HIEROGLYPH W024A
-	* monogramm 'nw(n)' or 'nww'
+	* monogram 'nw(n)' or 'nww'
 133CE	EGYPTIAN HIEROGLYPH W025
 @		X. Loaves and cakes
 133CF	EGYPTIAN HIEROGLYPH X001
@@ -38102,6 +38349,7 @@ FFFF	<not a character>
 133D2	EGYPTIAN HIEROGLYPH X004
 133D3	EGYPTIAN HIEROGLYPH X004A
 	* variant of 133D2
+	~ 133D3 FE00 rotated 90 degrees
 133D4	EGYPTIAN HIEROGLYPH X004B
 	* cake
 	* variant of 133D2
@@ -38125,6 +38373,7 @@ FFFF	<not a character>
 	* rotated variant of 133DB
 133DD	EGYPTIAN HIEROGLYPH Y002
 	* older variant of 133DB
+	~ 133DD FE02 rotated 270 degrees
 133DE	EGYPTIAN HIEROGLYPH Y003
 133DF	EGYPTIAN HIEROGLYPH Y004
 	* mirrored version of 133DE
@@ -38136,7 +38385,7 @@ FFFF	<not a character>
 133E4	EGYPTIAN HIEROGLYPH Z001
 	* semogram index
 	* classifier 'single'
-	* not to be confuse with 133FA
+	* not to be confused with 133FA
 133E5	EGYPTIAN HIEROGLYPH Z002
 	* classifier 'plural'
 	* not to be confused with 133FC
@@ -38171,13 +38420,16 @@ FFFF	<not a character>
 133F2	EGYPTIAN HIEROGLYPH Z007
 	* phonogram 'w'
 	* not to be confused with 13362
+	~ 133F2 FE00 rotated 90 degrees
 133F3	EGYPTIAN HIEROGLYPH Z008
 	* oval
 	* not to be confused with 13200, 132F0, or 133D4
 133F4	EGYPTIAN HIEROGLYPH Z009
 133F5	EGYPTIAN HIEROGLYPH Z010
 	* older variant of 133F4
+	~ 133F5 FE00 rotated 90 degrees
 133F6	EGYPTIAN HIEROGLYPH Z011
+	~ 133F6 FE00 rotated 90 degrees
 133F7	EGYPTIAN HIEROGLYPH Z012
 	* hieratic
 133F8	EGYPTIAN HIEROGLYPH Z013
@@ -38209,6 +38461,7 @@ FFFF	<not a character>
 	* 9
 13403	EGYPTIAN HIEROGLYPH Z015I
 	* 5
+	~ 13403 FE00 rotated 90 degrees
 13404	EGYPTIAN HIEROGLYPH Z016
 	* 1 in dates
 13405	EGYPTIAN HIEROGLYPH Z016A
@@ -38241,11 +38494,16 @@ FFFF	<not a character>
 	* mirrored version of 13413
 13415	EGYPTIAN HIEROGLYPH AA007B
 13416	EGYPTIAN HIEROGLYPH AA008
+	~ 13416 FE00 rotated 90 degrees
 13417	EGYPTIAN HIEROGLYPH AA009
 13418	EGYPTIAN HIEROGLYPH AA010
 13419	EGYPTIAN HIEROGLYPH AA011
+	~ 13419 FE00 rotated 90 degrees
+	~ 13419 FE01 rotated 180 degrees
+	~ 13419 FE02 rotated 270 degrees
 1341A	EGYPTIAN HIEROGLYPH AA012
 	* older variant of 13419
+	~ 1341A FE00 rotated 90 degrees
 1341B	EGYPTIAN HIEROGLYPH AA013
 1341C	EGYPTIAN HIEROGLYPH AA014
 	* older variant of 1341B
@@ -38258,6 +38516,7 @@ FFFF	<not a character>
 13421	EGYPTIAN HIEROGLYPH AA019
 13422	EGYPTIAN HIEROGLYPH AA020
 13423	EGYPTIAN HIEROGLYPH AA021
+	~ 13423 FE00 rotated 90 degrees
 13424	EGYPTIAN HIEROGLYPH AA022
 13425	EGYPTIAN HIEROGLYPH AA023
 13426	EGYPTIAN HIEROGLYPH AA024
@@ -38271,11 +38530,19 @@ FFFF	<not a character>
 1342B	EGYPTIAN HIEROGLYPH AA029
 	* older variant of 1342A
 1342C	EGYPTIAN HIEROGLYPH AA030
+	~ 1342C FE02 rotated 270 degrees
 1342D	EGYPTIAN HIEROGLYPH AA031
 	* older variant of 1342C
 1342E	EGYPTIAN HIEROGLYPH AA032
-@@	13430	Egyptian Hieroglyph Format Controls	1343F
-@+		These format controls are used to render Egyptian hieroglyphic quadrats.
+	~ 1342E FE02 rotated 270 degrees
+@		Addition to group V
+@+		This is part of the cartouche set: 13379, 1337A, 1337B, and 1342F.
+1342F	EGYPTIAN HIEROGLYPH V011D
+	* knotted beginning of cartouche
+	* not to be confused with 13378
+@~	!
+@@	13430	Egyptian Hieroglyph Format Controls	1345F
+@+		These format controls are used to render Egyptian hieroglyphic spatial arrangements, including quadrats, overlays, insertions, and blank, lost or damaged sections.
 @		Joiners
 13430	EGYPTIAN HIEROGLYPH VERTICAL JOINER
 	= sign separator: subordination (Manuel de Codage)
@@ -38291,6 +38558,45 @@ FFFF	<not a character>
 @		Segment scoping delimiters
 13437	EGYPTIAN HIEROGLYPH BEGIN SEGMENT
 13438	EGYPTIAN HIEROGLYPH END SEGMENT
+@		Sign insertion controls
+13439	EGYPTIAN HIEROGLYPH INSERT AT MIDDLE
+1343A	EGYPTIAN HIEROGLYPH INSERT AT TOP
+1343B	EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+@		Enclosure controls
+1343C	EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+1343D	EGYPTIAN HIEROGLYPH END ENCLOSURE
+1343E	EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
+1343F	EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+@		Mirror control
+13440	EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+@		Blank and lost signs
+13441	EGYPTIAN HIEROGLYPH FULL BLANK
+13442	EGYPTIAN HIEROGLYPH HALF BLANK
+13443	EGYPTIAN HIEROGLYPH LOST SIGN
+	~ 13443 FE00 expanded 
+13444	EGYPTIAN HIEROGLYPH HALF LOST SIGN
+	~ 13444 FE00 expanded 
+13445	EGYPTIAN HIEROGLYPH TALL LOST SIGN
+	~ 13445 FE00 expanded 
+13446	EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+	~ 13446 FE00 expanded 
+@		Damage modifiers
+13447	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START
+13448	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START
+13449	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START
+1344A	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END
+1344B	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP
+1344C	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END
+1344D	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP
+1344E	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END
+1344F	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END
+13450	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM
+13451	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM
+13452	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END
+13453	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END
+13454	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END
+13455	EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+@~	!
 @@	14400	Anatolian Hieroglyphs	1467F
 @+		In the names list, most of the comments are in Latin. Those which have a Luwian phonetic value are identified as syllabic.
 @		A. The human body and clothing
@@ -41710,6 +42016,7 @@ FFFF	<not a character>
 18BDC	KHITAN SMALL SCRIPT CHARACTER-18BDC
 18BDD	KHITAN SMALL SCRIPT CHARACTER-18BDD
 18BDE	KHITAN SMALL SCRIPT CHARACTER-18BDE
+	x (khitan small script character-18cca - 18CCA)
 18BDF	KHITAN SMALL SCRIPT CHARACTER-18BDF
 18BE0	KHITAN SMALL SCRIPT CHARACTER-18BE0
 18BE1	KHITAN SMALL SCRIPT CHARACTER-18BE1
@@ -41958,6 +42265,7 @@ FFFF	<not a character>
 18CC8	KHITAN SMALL SCRIPT CHARACTER-18CC8
 18CC9	KHITAN SMALL SCRIPT CHARACTER-18CC9
 18CCA	KHITAN SMALL SCRIPT CHARACTER-18CCA
+	x (khitan small script character-18bde - 18BDE)
 18CCB	KHITAN SMALL SCRIPT CHARACTER-18CCB
 @		Radical-19
 18CCC	KHITAN SMALL SCRIPT CHARACTER-18CCC
@@ -42578,10 +42886,12 @@ FFFF	<not a character>
 1B122	KATAKANA LETTER ARCHAIC WU
 @@	1B130	Small Kana Extension	1B16F
 @		Historic small hiragana letters
+1B132	HIRAGANA LETTER SMALL KO
 1B150	HIRAGANA LETTER SMALL WI
 1B151	HIRAGANA LETTER SMALL WE
 1B152	HIRAGANA LETTER SMALL WO
 @		Historic small katakana letters
+1B155	KATAKANA LETTER SMALL KO
 1B164	KATAKANA LETTER SMALL WI
 1B165	KATAKANA LETTER SMALL WE
 1B166	KATAKANA LETTER SMALL WO
@@ -44467,6 +44777,28 @@ FFFF	<not a character>
 1D244	COMBINING GREEK MUSICAL PENTASEME
 	x (metrical pentaseme - 23D9)
 1D245	GREEK MUSICAL LEIMMA
+@@	1D2C0	Kaktovik Numerals	1D2DF
+@		Numerals
+1D2C0	KAKTOVIK NUMERAL ZERO
+1D2C1	KAKTOVIK NUMERAL ONE
+1D2C2	KAKTOVIK NUMERAL TWO
+1D2C3	KAKTOVIK NUMERAL THREE
+1D2C4	KAKTOVIK NUMERAL FOUR
+1D2C5	KAKTOVIK NUMERAL FIVE
+1D2C6	KAKTOVIK NUMERAL SIX
+1D2C7	KAKTOVIK NUMERAL SEVEN
+1D2C8	KAKTOVIK NUMERAL EIGHT
+1D2C9	KAKTOVIK NUMERAL NINE
+1D2CA	KAKTOVIK NUMERAL TEN
+1D2CB	KAKTOVIK NUMERAL ELEVEN
+1D2CC	KAKTOVIK NUMERAL TWELVE
+1D2CD	KAKTOVIK NUMERAL THIRTEEN
+1D2CE	KAKTOVIK NUMERAL FOURTEEN
+1D2CF	KAKTOVIK NUMERAL FIFTEEN
+1D2D0	KAKTOVIK NUMERAL SIXTEEN
+1D2D1	KAKTOVIK NUMERAL SEVENTEEN
+1D2D2	KAKTOVIK NUMERAL EIGHTEEN
+1D2D3	KAKTOVIK NUMERAL NINETEEN
 @@	1D2E0	Mayan Numerals	1D2FF
 @		Mayan numerals
 1D2E0	MAYAN NUMERAL ZERO
@@ -47482,6 +47814,13 @@ FFFF	<not a character>
 1DF1D	LATIN SMALL LETTER C WITH RETROFLEX HOOK
 @		IPA extension
 1DF1E	LATIN SMALL LETTER S WITH CURL
+@		Letters for Malayalam transliteration
+1DF25	LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK
+1DF26	LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK
+1DF27	LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK
+1DF28	LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK
+1DF29	LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK
+1DF2A	LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 @@	1E000	Glagolitic Supplement	1E02F
 @		Combining letters
 1E000	COMBINING GLAGOLITIC LETTER AZU
@@ -47522,6 +47861,140 @@ FFFF	<not a character>
 1E028	COMBINING GLAGOLITIC LETTER BIG YUS
 1E029	COMBINING GLAGOLITIC LETTER IOTATED BIG YUS
 1E02A	COMBINING GLAGOLITIC LETTER FITA
+@@	1E030	Cyrillic Extended-D	1E08F
+@+		These are phonetic extensions, used in a manner analogous to IPA. Additional Cyrillic modifier letters are found in other blocks.
+	x (modifier letter cyrillic en - 1D78)
+	x (modifier letter cyrillic hard sign - A69C)
+	x (modifier letter cyrillic soft sign - A69D)
+@		Superscript modifier letters
+1E030	MODIFIER LETTER CYRILLIC SMALL A
+	# <super> 0430
+1E031	MODIFIER LETTER CYRILLIC SMALL BE
+	# <super> 0431
+1E032	MODIFIER LETTER CYRILLIC SMALL VE
+	# <super> 0432
+1E033	MODIFIER LETTER CYRILLIC SMALL GHE
+	# <super> 0433
+1E034	MODIFIER LETTER CYRILLIC SMALL DE
+	# <super> 0434
+1E035	MODIFIER LETTER CYRILLIC SMALL IE
+	# <super> 0435
+1E036	MODIFIER LETTER CYRILLIC SMALL ZHE
+	# <super> 0436
+1E037	MODIFIER LETTER CYRILLIC SMALL ZE
+	# <super> 0437
+1E038	MODIFIER LETTER CYRILLIC SMALL I
+	# <super> 0438
+1E039	MODIFIER LETTER CYRILLIC SMALL KA
+	# <super> 043A
+1E03A	MODIFIER LETTER CYRILLIC SMALL EL
+	# <super> 043B
+1E03B	MODIFIER LETTER CYRILLIC SMALL EM
+	# <super> 043C
+1E03C	MODIFIER LETTER CYRILLIC SMALL O
+	# <super> 043E
+1E03D	MODIFIER LETTER CYRILLIC SMALL PE
+	# <super> 043F
+1E03E	MODIFIER LETTER CYRILLIC SMALL ER
+	# <super> 0440
+1E03F	MODIFIER LETTER CYRILLIC SMALL ES
+	# <super> 0441
+1E040	MODIFIER LETTER CYRILLIC SMALL TE
+	# <super> 0442
+1E041	MODIFIER LETTER CYRILLIC SMALL U
+	# <super> 0443
+1E042	MODIFIER LETTER CYRILLIC SMALL EF
+	# <super> 0444
+1E043	MODIFIER LETTER CYRILLIC SMALL HA
+	# <super> 0445
+1E044	MODIFIER LETTER CYRILLIC SMALL TSE
+	# <super> 0446
+1E045	MODIFIER LETTER CYRILLIC SMALL CHE
+	# <super> 0447
+1E046	MODIFIER LETTER CYRILLIC SMALL SHA
+	# <super> 0448
+1E047	MODIFIER LETTER CYRILLIC SMALL YERU
+	# <super> 044B
+1E048	MODIFIER LETTER CYRILLIC SMALL E
+	# <super> 044D
+1E049	MODIFIER LETTER CYRILLIC SMALL YU
+	# <super> 044E
+1E04A	MODIFIER LETTER CYRILLIC SMALL DZZE
+	# <super> A689
+1E04B	MODIFIER LETTER CYRILLIC SMALL SCHWA
+	# <super> 04D9
+1E04C	MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+	# <super> 0456
+1E04D	MODIFIER LETTER CYRILLIC SMALL JE
+	# <super> 0458
+1E04E	MODIFIER LETTER CYRILLIC SMALL BARRED O
+	# <super> 04E9
+1E04F	MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+	# <super> 04AF
+1E050	MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+	# <super> 04CF
+@		Subscript modifier letters
+1E051	CYRILLIC SUBSCRIPT SMALL LETTER A
+	# <sub> 0430
+1E052	CYRILLIC SUBSCRIPT SMALL LETTER BE
+	# <sub> 0431
+1E053	CYRILLIC SUBSCRIPT SMALL LETTER VE
+	# <sub> 0432
+1E054	CYRILLIC SUBSCRIPT SMALL LETTER GHE
+	# <sub> 0433
+1E055	CYRILLIC SUBSCRIPT SMALL LETTER DE
+	# <sub> 0434
+1E056	CYRILLIC SUBSCRIPT SMALL LETTER IE
+	# <sub> 0435
+1E057	CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+	# <sub> 0436
+1E058	CYRILLIC SUBSCRIPT SMALL LETTER ZE
+	# <sub> 0437
+1E059	CYRILLIC SUBSCRIPT SMALL LETTER I
+	# <sub> 0438
+1E05A	CYRILLIC SUBSCRIPT SMALL LETTER KA
+	# <sub> 043A
+1E05B	CYRILLIC SUBSCRIPT SMALL LETTER EL
+	# <sub> 043B
+1E05C	CYRILLIC SUBSCRIPT SMALL LETTER O
+	# <sub> 043E
+1E05D	CYRILLIC SUBSCRIPT SMALL LETTER PE
+	# <sub> 043F
+1E05E	CYRILLIC SUBSCRIPT SMALL LETTER ES
+	# <sub> 0441
+1E05F	CYRILLIC SUBSCRIPT SMALL LETTER U
+	# <sub> 0443
+1E060	CYRILLIC SUBSCRIPT SMALL LETTER EF
+	# <sub> 0444
+1E061	CYRILLIC SUBSCRIPT SMALL LETTER HA
+	# <sub> 0445
+1E062	CYRILLIC SUBSCRIPT SMALL LETTER TSE
+	# <sub> 0446
+1E063	CYRILLIC SUBSCRIPT SMALL LETTER CHE
+	# <sub> 0447
+1E064	CYRILLIC SUBSCRIPT SMALL LETTER SHA
+	# <sub> 0448
+1E065	CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+	# <sub> 044A
+1E066	CYRILLIC SUBSCRIPT SMALL LETTER YERU
+	# <sub> 044B
+1E067	CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+	# <sub> 0491
+1E068	CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+	# <sub> 0456
+1E069	CYRILLIC SUBSCRIPT SMALL LETTER DZE
+	# <sub> 0455
+1E06A	CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+	# <sub> 045F
+@		Superscript modifier letters
+1E06B	MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+	# <super> 04AB
+1E06C	MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+	# <super> A651
+1E06D	MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+	# <super> 04B1
+@		Diacritical mark
+1E08F	COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 @@	1E100	Nyiakeng Puachue Hmong	1E14F
 @+		The Nyiakeng Puachue Hmong script (Nyiaj Keeb Puaj Txwm in RPA orthography) is also known as Pa Dao (Paj Ntaub) and Chervang script (Txawj Vaag).
 @		Consonant onsets
@@ -47740,6 +48213,58 @@ FFFF	<not a character>
 1E2FF	WANCHO NGUN SIGN
 	= rupee
 	x (indian rupee sign - 20B9)
+@@	1E4D0	Nag Mundari	1E4FF
+@		Letters
+1E4D0	NAG MUNDARI LETTER O
+1E4D1	NAG MUNDARI LETTER OP
+1E4D2	NAG MUNDARI LETTER OL
+1E4D3	NAG MUNDARI LETTER OY
+1E4D4	NAG MUNDARI LETTER ONG
+1E4D5	NAG MUNDARI LETTER A
+1E4D6	NAG MUNDARI LETTER AJ
+1E4D7	NAG MUNDARI LETTER AB
+1E4D8	NAG MUNDARI LETTER ANY
+1E4D9	NAG MUNDARI LETTER AH
+1E4DA	NAG MUNDARI LETTER I
+1E4DB	NAG MUNDARI LETTER IS
+1E4DC	NAG MUNDARI LETTER IDD
+1E4DD	NAG MUNDARI LETTER IT
+1E4DE	NAG MUNDARI LETTER IH
+1E4DF	NAG MUNDARI LETTER U
+1E4E0	NAG MUNDARI LETTER UC
+1E4E1	NAG MUNDARI LETTER UD
+1E4E2	NAG MUNDARI LETTER UK
+1E4E3	NAG MUNDARI LETTER UR
+1E4E4	NAG MUNDARI LETTER E
+1E4E5	NAG MUNDARI LETTER ENN
+1E4E6	NAG MUNDARI LETTER EG
+1E4E7	NAG MUNDARI LETTER EM
+1E4E8	NAG MUNDARI LETTER EN
+1E4E9	NAG MUNDARI LETTER ETT
+1E4EA	NAG MUNDARI LETTER ELL
+@		Various signs
+1E4EB	NAG MUNDARI SIGN OJOD
+	* precedes modified letters such as AB or UD
+	* may indicate consonant gemination
+1E4EC	NAG MUNDARI SIGN MUHOR
+	* vowel nasalization
+1E4ED	NAG MUNDARI SIGN TOYOR
+	* indicates a long vowel
+1E4EE	NAG MUNDARI SIGN IKIR
+	* vowel preceded by the 'w' sound
+1E4EF	NAG MUNDARI SIGN SUTUH
+	* mostly used for close transliteration of other languages
+@		Digits
+1E4F0	NAG MUNDARI DIGIT ZERO
+1E4F1	NAG MUNDARI DIGIT ONE
+1E4F2	NAG MUNDARI DIGIT TWO
+1E4F3	NAG MUNDARI DIGIT THREE
+1E4F4	NAG MUNDARI DIGIT FOUR
+1E4F5	NAG MUNDARI DIGIT FIVE
+1E4F6	NAG MUNDARI DIGIT SIX
+1E4F7	NAG MUNDARI DIGIT SEVEN
+1E4F8	NAG MUNDARI DIGIT EIGHT
+1E4F9	NAG MUNDARI DIGIT NINE
 @@	1E7E0	Ethiopic Extended-B	1E7FF
 @		Syllables for Gurage
 1E7E0	ETHIOPIC SYLLABLE HHYA
@@ -50331,6 +50856,7 @@ FFFF	<not a character>
 	x (heavy black heart - 2764)
 	x (white heart - 1F90D)
 	x (orange heart - 1F9E1)
+	x (light blue heart - 1FA75)
 1F49A	GREEN HEART
 1F49B	YELLOW HEART
 1F49C	PURPLE HEART
@@ -51341,6 +51867,7 @@ FFFF	<not a character>
 1F6D6	HUT
 1F6D7	ELEVATOR
 @		Miscellaneous symbols
+1F6DC	WIRELESS
 1F6DD	PLAYGROUND SLIDE
 1F6DE	WHEEL
 1F6DF	RING BUOY
@@ -51475,8 +52002,9 @@ FFFF	<not a character>
 	x (alchemical symbol for sal-ammoniac - 1F739)
 1F728	ALCHEMICAL SYMBOL FOR VERDIGRIS
 	= aes viride, copper subacetate
-	= early astronomical symbol for earth
+	= astronomical symbol for earth
 	x (circled plus - 2295)
+	x (earth - 2641)
 @		Symbols for tin and lead ore
 1F729	ALCHEMICAL SYMBOL FOR TIN ORE
 	x (jupiter - 2643)
@@ -51615,10 +52143,27 @@ FFFF	<not a character>
 @		Measures
 1F772	ALCHEMICAL SYMBOL FOR HALF DRAM
 	= drachma semis
+	* handwritten ligature of 0292 + 00DF, typically spelled out as ʒss
 	x (latin small letter ezh - 0292)
 1F773	ALCHEMICAL SYMBOL FOR HALF OUNCE
 	= uncia semis
+	* handwritten ligature of 2125 + 00DF, typically spelled out as 2125 ss
 	x (ounce sign - 2125)
+@		Other symbol
+1F774	LOT OF FORTUNE
+	= pars fortunae
+	x (circled times - 2297)
+@		Eclipse symbols
+1F775	OCCULTATION
+	x (conjunction - 260C)
+1F776	LUNAR ECLIPSE
+	x (opposition - 260D)
+@		Symbols for dwarf planets
+1F77B	HAUMEA
+1F77C	MAKEMAKE
+1F77D	GONGGONG
+1F77E	QUAOAR
+1F77F	ORCUS
 @@	1F780	Geometric Shapes Extended	1F7FF
 @+		These geometric shapes originate from the Webdings/Wingdings collections.
 @		Isosceles right triangles
@@ -51772,6 +52317,9 @@ FFFF	<not a character>
 1F7D6	NEGATIVE CIRCLED TRIANGLE
 1F7D7	CIRCLED SQUARE
 1F7D8	NEGATIVE CIRCLED SQUARE
+@		Nine pointed star
+1F7D9	NINE POINTED WHITE STAR
+	* commonly used by members of the Bahá'í faith
 @		Colored circles
 @+		For use with emoji. Constitute a set as follows: 26AA, 26AB, 1F534, 1F535, 1F7E0-1F7E4
 1F7E0	LARGE ORANGE CIRCLE
@@ -51999,7 +52547,7 @@ FFFF	<not a character>
 @		Hand symbol
 1F90C	PINCHED FINGERS
 @		Colored heart symbols
-@+		For use with emoji. Constitute a set as follows: 2764, 1F499-1F49C, 1F5A4, 1F90D, 1F90E, and 1F9E1.
+@+		For use with emoji. Constitute a set as follows: 2764, 1F499-1F49C, 1F5A4, 1F90D, 1F90E, 1F9E1, and 1FA75-1FA77.
 1F90D	WHITE HEART
 1F90E	BROWN HEART
 @		Hand symbol
@@ -52519,6 +53067,11 @@ FFFF	<not a character>
 1FA73	SHORTS
 1FA74	THONG SANDAL
 	= flip flop
+@		Colored heart symbols
+@+		For use with emoji. Constitute a set as follows: 2764, 1F499-1F49C, 1F5A4, 1F90D, 1F90E, 1F9E1, and 1FA75-1FA77.
+1FA75	LIGHT BLUE HEART
+1FA76	GREY HEART
+1FA77	PINK HEART
 @		Medical symbols
 1FA78	DROP OF BLOOD
 	x (droplet - 1F4A7)
@@ -52534,6 +53087,9 @@ FFFF	<not a character>
 1FA84	MAGIC WAND
 1FA85	PINATA
 1FA86	NESTING DOLLS
+@		Musical instruments
+1FA87	MARACAS
+1FA88	FLUTE
 @		Miscellaneous objects
 1FA90	RINGED PLANET
 1FA91	CHAIR
@@ -52566,6 +53122,11 @@ FFFF	<not a character>
 1FAAB	LOW BATTERY
 	x (battery - 1F50B)
 1FAAC	HAMSA
+1FAAD	FOLDING HAND FAN
+1FAAE	HAIR PICK
+@		Religious symbol
+1FAAF	KHANDA
+	x (adi shakti - 262C)
 @		Animals and nature
 1FAB0	FLY
 1FAB1	WORM
@@ -52578,6 +53139,10 @@ FFFF	<not a character>
 1FAB8	CORAL
 1FAB9	EMPTY NEST
 1FABA	NEST WITH EGGS
+1FABB	HYACINTH
+1FABC	JELLYFISH
+1FABD	WING
+1FABF	GOOSE
 @		Body parts
 1FAC0	ANATOMICAL HEART
 1FAC1	LUNGS
@@ -52588,6 +53153,9 @@ FFFF	<not a character>
 	x (pregnant woman - 1F930)
 1FAC5	PERSON WITH CROWN
 	x (princess - 1F478)
+@		Animals and nature
+1FACE	MOOSE
+1FACF	DONKEY
 @		Food and drink
 1FAD0	BLUEBERRIES
 1FAD1	BELL PEPPER
@@ -52600,6 +53168,8 @@ FFFF	<not a character>
 	x (glass of milk - 1F95B)
 1FAD8	BEANS
 1FAD9	JAR
+1FADA	GINGER ROOT
+1FADB	PEA POD
 @		Faces
 1FAE0	MELTING FACE
 1FAE1	SALUTING FACE
@@ -52611,6 +53181,8 @@ FFFF	<not a character>
 1FAE6	BITING LIP
 	x (lips - 1F5E2)
 1FAE7	BUBBLES
+@		Face
+1FAE8	SHAKING FACE
 @		Hand symbols
 1FAF0	HAND WITH INDEX FINGER AND THUMB CROSSED
 	x (hand with index and middle fingers crossed - 1F91E)
@@ -52620,6 +53192,8 @@ FFFF	<not a character>
 1FAF4	PALM UP HAND
 1FAF5	INDEX POINTING AT THE VIEWER
 1FAF6	HEART HANDS
+1FAF7	LEFTWARDS PUSHING HAND
+1FAF8	RIGHTWARDS PUSHING HAND
 @@	1FB00	Symbols for Legacy Computing	1FBFF
 @		Block mosaic terminal graphic characters
 @+		The term "sextant" refers to block mosaics divided into six parts.
@@ -52936,7 +53510,7 @@ FFFF	<not a character>
 1FFFE	<not a character>
 1FFFF	<not a character>
 @@	20000	CJK Unified Ideographs Extension B	2A6DF
-@@	2A700	CJK Unified Ideographs Extension C	2B738
+@@	2A700	CJK Unified Ideographs Extension C	2B739
 @@	2B740	CJK Unified Ideographs Extension D	2B81D
 @@	2B820	CJK Unified Ideographs Extension E	2CEA1
 @@	2CEB0	CJK Unified Ideographs Extension F	2EBE0
@@ -54057,6 +54631,7 @@ FFFF	<not a character>
 2FFFE	<not a character>
 2FFFF	<not a character>
 @@	30000	CJK Unified Ideographs Extension G	3134A
+@@	31350	CJK Unified Ideographs Extension H	323AF
 @@	3FF80	Unassigned	3FFFF
 @		Noncharacters
 @+		These codes are intended for process-internal uses.
Index: gnu/usr.bin/perl/lib/unicore/NormTest.txt
===================================================================
RCS file: gnu/usr.bin/perl/lib/unicore/NormTest.txt
diff -N gnu/usr.bin/perl/lib/unicore/NormTest.txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/unicore/NormTest.txt	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,19129 @@
+# NormalizationTest-15.0.0.txt
+# Date: 2022-04-02, 01:29:09 GMT
+# © 2022 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+#   For documentation, see https://www.unicode.org/reports/tr44/
+#
+# Normalization Test Suite
+# Format:
+#
+#   Columns (c1, c2,...) are separated by semicolons
+#   They have the following meaning:
+#      source; NFC; NFD; NFKC; NFKD
+#   Comments are indicated with hash marks
+#   Each of the columns may have one or more code points.
+#
+# CONFORMANCE:
+# 1. The following invariants must be true for all conformant implementations
+#
+#    NFC
+#      c2 ==  toNFC(c1) ==  toNFC(c2) ==  toNFC(c3)
+#      c4 ==  toNFC(c4) ==  toNFC(c5)
+#
+#    NFD
+#      c3 ==  toNFD(c1) ==  toNFD(c2) ==  toNFD(c3)
+#      c5 ==  toNFD(c4) ==  toNFD(c5)
+#
+#    NFKC
+#      c4 == toNFKC(c1) == toNFKC(c2) == toNFKC(c3) == toNFKC(c4) == toNFKC(c5)
+#
+#    NFKD
+#      c5 == toNFKD(c1) == toNFKD(c2) == toNFKD(c3) == toNFKD(c4) == toNFKD(c5)
+#
+# 2. For every code point X assigned in this version of Unicode that is not specifically
+#    listed in Part 1, the following invariants must be true for all conformant
+#    implementations:
+#
+#      X == toNFC(X) == toNFD(X) == toNFKC(X) == toNFKD(X)
+#
+@Part0 # Specific cases
+#
+1E0A;1E0A;0044 0307;1E0A;0044 0307; # (Ḋ; Ḋ; D◌̇; Ḋ; D◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0C;1E0C;0044 0323;1E0C;0044 0323; # (Ḍ; Ḍ; D◌̣; Ḍ; D◌̣; ) LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0A 0323;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307; # (Ḋ◌̣; Ḍ◌̇; D◌̣◌̇; Ḍ◌̇; D◌̣◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE, COMBINING DOT BELOW
+1E0C 0307;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307; # (Ḍ◌̇; Ḍ◌̇; D◌̣◌̇; Ḍ◌̇; D◌̣◌̇; ) LATIN CAPITAL LETTER D WITH DOT BELOW, COMBINING DOT ABOVE
+0044 0307 0323;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307; # (D◌̇◌̣; Ḍ◌̇; D◌̣◌̇; Ḍ◌̇; D◌̣◌̇; ) LATIN CAPITAL LETTER D, COMBINING DOT ABOVE, COMBINING DOT BELOW
+0044 0323 0307;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307; # (D◌̣◌̇; Ḍ◌̇; D◌̣◌̇; Ḍ◌̇; D◌̣◌̇; ) LATIN CAPITAL LETTER D, COMBINING DOT BELOW, COMBINING DOT ABOVE
+1E0A 031B;1E0A 031B;0044 031B 0307;1E0A 031B;0044 031B 0307; # (Ḋ◌̛; Ḋ◌̛; D◌̛◌̇; Ḋ◌̛; D◌̛◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE, COMBINING HORN
+1E0C 031B;1E0C 031B;0044 031B 0323;1E0C 031B;0044 031B 0323; # (Ḍ◌̛; Ḍ◌̛; D◌̛◌̣; Ḍ◌̛; D◌̛◌̣; ) LATIN CAPITAL LETTER D WITH DOT BELOW, COMBINING HORN
+1E0A 031B 0323;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307; # (Ḋ◌̛◌̣; Ḍ◌̛◌̇; D◌̛◌̣◌̇; Ḍ◌̛◌̇; D◌̛◌̣◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE, COMBINING HORN, COMBINING DOT BELOW
+1E0C 031B 0307;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307; # (Ḍ◌̛◌̇; Ḍ◌̛◌̇; D◌̛◌̣◌̇; Ḍ◌̛◌̇; D◌̛◌̣◌̇; ) LATIN CAPITAL LETTER D WITH DOT BELOW, COMBINING HORN, COMBINING DOT ABOVE
+0044 031B 0307 0323;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307; # (D◌̛◌̇◌̣; Ḍ◌̛◌̇; D◌̛◌̣◌̇; Ḍ◌̛◌̇; D◌̛◌̣◌̇; ) LATIN CAPITAL LETTER D, COMBINING HORN, COMBINING DOT ABOVE, COMBINING DOT BELOW
+0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307; # (D◌̛◌̣◌̇; Ḍ◌̛◌̇; D◌̛◌̣◌̇; Ḍ◌̛◌̇; D◌̛◌̣◌̇; ) LATIN CAPITAL LETTER D, COMBINING HORN, COMBINING DOT BELOW, COMBINING DOT ABOVE
+00C8;00C8;0045 0300;00C8;0045 0300; # (È; È; E◌̀; È; E◌̀; ) LATIN CAPITAL LETTER E WITH GRAVE
+0112;0112;0045 0304;0112;0045 0304; # (Ē; Ē; E◌̄; Ē; E◌̄; ) LATIN CAPITAL LETTER E WITH MACRON
+0045 0300;00C8;0045 0300;00C8;0045 0300; # (E◌̀; È; E◌̀; È; E◌̀; ) LATIN CAPITAL LETTER E, COMBINING GRAVE ACCENT
+0045 0304;0112;0045 0304;0112;0045 0304; # (E◌̄; Ē; E◌̄; Ē; E◌̄; ) LATIN CAPITAL LETTER E, COMBINING MACRON
+1E14;1E14;0045 0304 0300;1E14;0045 0304 0300; # (Ḕ; Ḕ; E◌̄◌̀; Ḕ; E◌̄◌̀; ) LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+0112 0300;1E14;0045 0304 0300;1E14;0045 0304 0300; # (Ē◌̀; Ḕ; E◌̄◌̀; Ḕ; E◌̄◌̀; ) LATIN CAPITAL LETTER E WITH MACRON, COMBINING GRAVE ACCENT
+1E14 0304;1E14 0304;0045 0304 0300 0304;1E14 0304;0045 0304 0300 0304; # (Ḕ◌̄; Ḕ◌̄; E◌̄◌̀◌̄; Ḕ◌̄; E◌̄◌̀◌̄; ) LATIN CAPITAL LETTER E WITH MACRON AND GRAVE, COMBINING MACRON
+0045 0304 0300;1E14;0045 0304 0300;1E14;0045 0304 0300; # (E◌̄◌̀; Ḕ; E◌̄◌̀; Ḕ; E◌̄◌̀; ) LATIN CAPITAL LETTER E, COMBINING MACRON, COMBINING GRAVE ACCENT
+0045 0300 0304;00C8 0304;0045 0300 0304;00C8 0304;0045 0300 0304; # (E◌̀◌̄; È◌̄; E◌̀◌̄; È◌̄; E◌̀◌̄; ) LATIN CAPITAL LETTER E, COMBINING GRAVE ACCENT, COMBINING MACRON
+05B8 05B9 05B1 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F; # (◌ָ◌ֹ◌ֱ◌֑׃◌ְ◌֬◌֟; ◌ֱ◌ָ◌ֹ◌֑׃◌ְ◌֬◌֟; ◌ֱ◌ָ◌ֹ◌֑׃◌ְ◌֬◌֟; ◌ֱ◌ָ◌ֹ◌֑׃◌ְ◌֬◌֟; ◌ֱ◌ָ◌ֹ◌֑׃◌ְ◌֬◌֟; ) HEBREW POINT QAMATS, HEBREW POINT HOLAM, HEBREW POINT HATAF SEGOL, HEBREW ACCENT ETNAHTA, HEBREW PUNCTUATION SOF PASUQ, HEBREW POINT SHEVA, HEBREW ACCENT ILUY, HEBREW ACCENT QARNEY PARA
+0592 05B7 05BC 05A5 05B0 05C0 05C4 05AD;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4; # (◌֒◌ַ◌ּ◌֥◌ְ׀◌ׄ◌֭; ◌ְ◌ַ◌ּ◌֥◌֒׀◌֭◌ׄ; ◌ְ◌ַ◌ּ◌֥◌֒׀◌֭◌ׄ; ◌ְ◌ַ◌ּ◌֥◌֒׀◌֭◌ׄ; ◌ְ◌ַ◌ּ◌֥◌֒׀◌֭◌ׄ; ) HEBREW ACCENT SEGOL, HEBREW POINT PATAH, HEBREW POINT DAGESH OR MAPIQ, HEBREW ACCENT MERKHA, HEBREW POINT SHEVA, HEBREW PUNCTUATION PASEQ, HEBREW MARK UPPER DOT, HEBREW ACCENT DEHI
+1100 AC00 11A8;1100 AC01;1100 1100 1161 11A8;1100 AC01;1100 1100 1161 11A8; # (ᄀ각; ᄀ각; ᄀ각; ᄀ각; ᄀ각; ) HANGUL CHOSEONG KIYEOK, HANGUL SYLLABLE GA, HANGUL JONGSEONG KIYEOK
+1100 AC00 11A8 11A8;1100 AC01 11A8;1100 1100 1161 11A8 11A8;1100 AC01 11A8;1100 1100 1161 11A8 11A8; # (ᄀ각ᆨ; ᄀ각ᆨ; ᄀ각ᆨ; ᄀ각ᆨ; ᄀ각ᆨ; ) HANGUL CHOSEONG KIYEOK, HANGUL SYLLABLE GA, HANGUL JONGSEONG KIYEOK, HANGUL JONGSEONG KIYEOK
+#
+@Part1 # Character by character test
+# All characters not explicitly occurring in c1 of Part 1 have identical NFC, D, KC, KD forms.
+#
+00A0;00A0;00A0;0020;0020; # ( ;  ;  ;  ;  ; ) NO-BREAK SPACE
+00A8;00A8;00A8;0020 0308;0020 0308; # (¨; ¨; ¨;  ◌̈;  ◌̈; ) DIAERESIS
+00AA;00AA;00AA;0061;0061; # (ª; ª; ª; a; a; ) FEMININE ORDINAL INDICATOR
+00AF;00AF;00AF;0020 0304;0020 0304; # (¯; ¯; ¯;  ◌̄;  ◌̄; ) MACRON
+00B2;00B2;00B2;0032;0032; # (²; ²; ²; 2; 2; ) SUPERSCRIPT TWO
+00B3;00B3;00B3;0033;0033; # (³; ³; ³; 3; 3; ) SUPERSCRIPT THREE
+00B4;00B4;00B4;0020 0301;0020 0301; # (´; ´; ´;  ◌́;  ◌́; ) ACUTE ACCENT
+00B5;00B5;00B5;03BC;03BC; # (µ; µ; µ; μ; μ; ) MICRO SIGN
+00B8;00B8;00B8;0020 0327;0020 0327; # (¸; ¸; ¸;  ◌̧;  ◌̧; ) CEDILLA
+00B9;00B9;00B9;0031;0031; # (¹; ¹; ¹; 1; 1; ) SUPERSCRIPT ONE
+00BA;00BA;00BA;006F;006F; # (º; º; º; o; o; ) MASCULINE ORDINAL INDICATOR
+00BC;00BC;00BC;0031 2044 0034;0031 2044 0034; # (¼; ¼; ¼; 1⁄4; 1⁄4; ) VULGAR FRACTION ONE QUARTER
+00BD;00BD;00BD;0031 2044 0032;0031 2044 0032; # (½; ½; ½; 1⁄2; 1⁄2; ) VULGAR FRACTION ONE HALF
+00BE;00BE;00BE;0033 2044 0034;0033 2044 0034; # (¾; ¾; ¾; 3⁄4; 3⁄4; ) VULGAR FRACTION THREE QUARTERS
+00C0;00C0;0041 0300;00C0;0041 0300; # (À; À; A◌̀; À; A◌̀; ) LATIN CAPITAL LETTER A WITH GRAVE
+00C1;00C1;0041 0301;00C1;0041 0301; # (Á; Á; A◌́; Á; A◌́; ) LATIN CAPITAL LETTER A WITH ACUTE
+00C2;00C2;0041 0302;00C2;0041 0302; # (Â; Â; A◌̂; Â; A◌̂; ) LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00C3;00C3;0041 0303;00C3;0041 0303; # (Ã; Ã; A◌̃; Ã; A◌̃; ) LATIN CAPITAL LETTER A WITH TILDE
+00C4;00C4;0041 0308;00C4;0041 0308; # (Ä; Ä; A◌̈; Ä; A◌̈; ) LATIN CAPITAL LETTER A WITH DIAERESIS
+00C5;00C5;0041 030A;00C5;0041 030A; # (Å; Å; A◌̊; Å; A◌̊; ) LATIN CAPITAL LETTER A WITH RING ABOVE
+00C7;00C7;0043 0327;00C7;0043 0327; # (Ç; Ç; C◌̧; Ç; C◌̧; ) LATIN CAPITAL LETTER C WITH CEDILLA
+00C8;00C8;0045 0300;00C8;0045 0300; # (È; È; E◌̀; È; E◌̀; ) LATIN CAPITAL LETTER E WITH GRAVE
+00C9;00C9;0045 0301;00C9;0045 0301; # (É; É; E◌́; É; E◌́; ) LATIN CAPITAL LETTER E WITH ACUTE
+00CA;00CA;0045 0302;00CA;0045 0302; # (Ê; Ê; E◌̂; Ê; E◌̂; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00CB;00CB;0045 0308;00CB;0045 0308; # (Ë; Ë; E◌̈; Ë; E◌̈; ) LATIN CAPITAL LETTER E WITH DIAERESIS
+00CC;00CC;0049 0300;00CC;0049 0300; # (Ì; Ì; I◌̀; Ì; I◌̀; ) LATIN CAPITAL LETTER I WITH GRAVE
+00CD;00CD;0049 0301;00CD;0049 0301; # (Í; Í; I◌́; Í; I◌́; ) LATIN CAPITAL LETTER I WITH ACUTE
+00CE;00CE;0049 0302;00CE;0049 0302; # (Î; Î; I◌̂; Î; I◌̂; ) LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF;00CF;0049 0308;00CF;0049 0308; # (Ï; Ï; I◌̈; Ï; I◌̈; ) LATIN CAPITAL LETTER I WITH DIAERESIS
+00D1;00D1;004E 0303;00D1;004E 0303; # (Ñ; Ñ; N◌̃; Ñ; N◌̃; ) LATIN CAPITAL LETTER N WITH TILDE
+00D2;00D2;004F 0300;00D2;004F 0300; # (Ò; Ò; O◌̀; Ò; O◌̀; ) LATIN CAPITAL LETTER O WITH GRAVE
+00D3;00D3;004F 0301;00D3;004F 0301; # (Ó; Ó; O◌́; Ó; O◌́; ) LATIN CAPITAL LETTER O WITH ACUTE
+00D4;00D4;004F 0302;00D4;004F 0302; # (Ô; Ô; O◌̂; Ô; O◌̂; ) LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00D5;00D5;004F 0303;00D5;004F 0303; # (Õ; Õ; O◌̃; Õ; O◌̃; ) LATIN CAPITAL LETTER O WITH TILDE
+00D6;00D6;004F 0308;00D6;004F 0308; # (Ö; Ö; O◌̈; Ö; O◌̈; ) LATIN CAPITAL LETTER O WITH DIAERESIS
+00D9;00D9;0055 0300;00D9;0055 0300; # (Ù; Ù; U◌̀; Ù; U◌̀; ) LATIN CAPITAL LETTER U WITH GRAVE
+00DA;00DA;0055 0301;00DA;0055 0301; # (Ú; Ú; U◌́; Ú; U◌́; ) LATIN CAPITAL LETTER U WITH ACUTE
+00DB;00DB;0055 0302;00DB;0055 0302; # (Û; Û; U◌̂; Û; U◌̂; ) LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00DC;00DC;0055 0308;00DC;0055 0308; # (Ü; Ü; U◌̈; Ü; U◌̈; ) LATIN CAPITAL LETTER U WITH DIAERESIS
+00DD;00DD;0059 0301;00DD;0059 0301; # (Ý; Ý; Y◌́; Ý; Y◌́; ) LATIN CAPITAL LETTER Y WITH ACUTE
+00E0;00E0;0061 0300;00E0;0061 0300; # (à; à; a◌̀; à; a◌̀; ) LATIN SMALL LETTER A WITH GRAVE
+00E1;00E1;0061 0301;00E1;0061 0301; # (á; á; a◌́; á; a◌́; ) LATIN SMALL LETTER A WITH ACUTE
+00E2;00E2;0061 0302;00E2;0061 0302; # (â; â; a◌̂; â; a◌̂; ) LATIN SMALL LETTER A WITH CIRCUMFLEX
+00E3;00E3;0061 0303;00E3;0061 0303; # (ã; ã; a◌̃; ã; a◌̃; ) LATIN SMALL LETTER A WITH TILDE
+00E4;00E4;0061 0308;00E4;0061 0308; # (ä; ä; a◌̈; ä; a◌̈; ) LATIN SMALL LETTER A WITH DIAERESIS
+00E5;00E5;0061 030A;00E5;0061 030A; # (å; å; a◌̊; å; a◌̊; ) LATIN SMALL LETTER A WITH RING ABOVE
+00E7;00E7;0063 0327;00E7;0063 0327; # (ç; ç; c◌̧; ç; c◌̧; ) LATIN SMALL LETTER C WITH CEDILLA
+00E8;00E8;0065 0300;00E8;0065 0300; # (è; è; e◌̀; è; e◌̀; ) LATIN SMALL LETTER E WITH GRAVE
+00E9;00E9;0065 0301;00E9;0065 0301; # (é; é; e◌́; é; e◌́; ) LATIN SMALL LETTER E WITH ACUTE
+00EA;00EA;0065 0302;00EA;0065 0302; # (ê; ê; e◌̂; ê; e◌̂; ) LATIN SMALL LETTER E WITH CIRCUMFLEX
+00EB;00EB;0065 0308;00EB;0065 0308; # (ë; ë; e◌̈; ë; e◌̈; ) LATIN SMALL LETTER E WITH DIAERESIS
+00EC;00EC;0069 0300;00EC;0069 0300; # (ì; ì; i◌̀; ì; i◌̀; ) LATIN SMALL LETTER I WITH GRAVE
+00ED;00ED;0069 0301;00ED;0069 0301; # (í; í; i◌́; í; i◌́; ) LATIN SMALL LETTER I WITH ACUTE
+00EE;00EE;0069 0302;00EE;0069 0302; # (î; î; i◌̂; î; i◌̂; ) LATIN SMALL LETTER I WITH CIRCUMFLEX
+00EF;00EF;0069 0308;00EF;0069 0308; # (ï; ï; i◌̈; ï; i◌̈; ) LATIN SMALL LETTER I WITH DIAERESIS
+00F1;00F1;006E 0303;00F1;006E 0303; # (ñ; ñ; n◌̃; ñ; n◌̃; ) LATIN SMALL LETTER N WITH TILDE
+00F2;00F2;006F 0300;00F2;006F 0300; # (ò; ò; o◌̀; ò; o◌̀; ) LATIN SMALL LETTER O WITH GRAVE
+00F3;00F3;006F 0301;00F3;006F 0301; # (ó; ó; o◌́; ó; o◌́; ) LATIN SMALL LETTER O WITH ACUTE
+00F4;00F4;006F 0302;00F4;006F 0302; # (ô; ô; o◌̂; ô; o◌̂; ) LATIN SMALL LETTER O WITH CIRCUMFLEX
+00F5;00F5;006F 0303;00F5;006F 0303; # (õ; õ; o◌̃; õ; o◌̃; ) LATIN SMALL LETTER O WITH TILDE
+00F6;00F6;006F 0308;00F6;006F 0308; # (ö; ö; o◌̈; ö; o◌̈; ) LATIN SMALL LETTER O WITH DIAERESIS
+00F9;00F9;0075 0300;00F9;0075 0300; # (ù; ù; u◌̀; ù; u◌̀; ) LATIN SMALL LETTER U WITH GRAVE
+00FA;00FA;0075 0301;00FA;0075 0301; # (ú; ú; u◌́; ú; u◌́; ) LATIN SMALL LETTER U WITH ACUTE
+00FB;00FB;0075 0302;00FB;0075 0302; # (û; û; u◌̂; û; u◌̂; ) LATIN SMALL LETTER U WITH CIRCUMFLEX
+00FC;00FC;0075 0308;00FC;0075 0308; # (ü; ü; u◌̈; ü; u◌̈; ) LATIN SMALL LETTER U WITH DIAERESIS
+00FD;00FD;0079 0301;00FD;0079 0301; # (ý; ý; y◌́; ý; y◌́; ) LATIN SMALL LETTER Y WITH ACUTE
+00FF;00FF;0079 0308;00FF;0079 0308; # (ÿ; ÿ; y◌̈; ÿ; y◌̈; ) LATIN SMALL LETTER Y WITH DIAERESIS
+0100;0100;0041 0304;0100;0041 0304; # (Ā; Ā; A◌̄; Ā; A◌̄; ) LATIN CAPITAL LETTER A WITH MACRON
+0101;0101;0061 0304;0101;0061 0304; # (ā; ā; a◌̄; ā; a◌̄; ) LATIN SMALL LETTER A WITH MACRON
+0102;0102;0041 0306;0102;0041 0306; # (Ă; Ă; A◌̆; Ă; A◌̆; ) LATIN CAPITAL LETTER A WITH BREVE
+0103;0103;0061 0306;0103;0061 0306; # (ă; ă; a◌̆; ă; a◌̆; ) LATIN SMALL LETTER A WITH BREVE
+0104;0104;0041 0328;0104;0041 0328; # (Ą; Ą; A◌̨; Ą; A◌̨; ) LATIN CAPITAL LETTER A WITH OGONEK
+0105;0105;0061 0328;0105;0061 0328; # (ą; ą; a◌̨; ą; a◌̨; ) LATIN SMALL LETTER A WITH OGONEK
+0106;0106;0043 0301;0106;0043 0301; # (Ć; Ć; C◌́; Ć; C◌́; ) LATIN CAPITAL LETTER C WITH ACUTE
+0107;0107;0063 0301;0107;0063 0301; # (ć; ć; c◌́; ć; c◌́; ) LATIN SMALL LETTER C WITH ACUTE
+0108;0108;0043 0302;0108;0043 0302; # (Ĉ; Ĉ; C◌̂; Ĉ; C◌̂; ) LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109;0109;0063 0302;0109;0063 0302; # (ĉ; ĉ; c◌̂; ĉ; c◌̂; ) LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A;010A;0043 0307;010A;0043 0307; # (Ċ; Ċ; C◌̇; Ċ; C◌̇; ) LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B;010B;0063 0307;010B;0063 0307; # (ċ; ċ; c◌̇; ċ; c◌̇; ) LATIN SMALL LETTER C WITH DOT ABOVE
+010C;010C;0043 030C;010C;0043 030C; # (Č; Č; C◌̌; Č; C◌̌; ) LATIN CAPITAL LETTER C WITH CARON
+010D;010D;0063 030C;010D;0063 030C; # (č; č; c◌̌; č; c◌̌; ) LATIN SMALL LETTER C WITH CARON
+010E;010E;0044 030C;010E;0044 030C; # (Ď; Ď; D◌̌; Ď; D◌̌; ) LATIN CAPITAL LETTER D WITH CARON
+010F;010F;0064 030C;010F;0064 030C; # (ď; ď; d◌̌; ď; d◌̌; ) LATIN SMALL LETTER D WITH CARON
+0112;0112;0045 0304;0112;0045 0304; # (Ē; Ē; E◌̄; Ē; E◌̄; ) LATIN CAPITAL LETTER E WITH MACRON
+0113;0113;0065 0304;0113;0065 0304; # (ē; ē; e◌̄; ē; e◌̄; ) LATIN SMALL LETTER E WITH MACRON
+0114;0114;0045 0306;0114;0045 0306; # (Ĕ; Ĕ; E◌̆; Ĕ; E◌̆; ) LATIN CAPITAL LETTER E WITH BREVE
+0115;0115;0065 0306;0115;0065 0306; # (ĕ; ĕ; e◌̆; ĕ; e◌̆; ) LATIN SMALL LETTER E WITH BREVE
+0116;0116;0045 0307;0116;0045 0307; # (Ė; Ė; E◌̇; Ė; E◌̇; ) LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117;0117;0065 0307;0117;0065 0307; # (ė; ė; e◌̇; ė; e◌̇; ) LATIN SMALL LETTER E WITH DOT ABOVE
+0118;0118;0045 0328;0118;0045 0328; # (Ę; Ę; E◌̨; Ę; E◌̨; ) LATIN CAPITAL LETTER E WITH OGONEK
+0119;0119;0065 0328;0119;0065 0328; # (ę; ę; e◌̨; ę; e◌̨; ) LATIN SMALL LETTER E WITH OGONEK
+011A;011A;0045 030C;011A;0045 030C; # (Ě; Ě; E◌̌; Ě; E◌̌; ) LATIN CAPITAL LETTER E WITH CARON
+011B;011B;0065 030C;011B;0065 030C; # (ě; ě; e◌̌; ě; e◌̌; ) LATIN SMALL LETTER E WITH CARON
+011C;011C;0047 0302;011C;0047 0302; # (Ĝ; Ĝ; G◌̂; Ĝ; G◌̂; ) LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D;011D;0067 0302;011D;0067 0302; # (ĝ; ĝ; g◌̂; ĝ; g◌̂; ) LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E;011E;0047 0306;011E;0047 0306; # (Ğ; Ğ; G◌̆; Ğ; G◌̆; ) LATIN CAPITAL LETTER G WITH BREVE
+011F;011F;0067 0306;011F;0067 0306; # (ğ; ğ; g◌̆; ğ; g◌̆; ) LATIN SMALL LETTER G WITH BREVE
+0120;0120;0047 0307;0120;0047 0307; # (Ġ; Ġ; G◌̇; Ġ; G◌̇; ) LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121;0121;0067 0307;0121;0067 0307; # (ġ; ġ; g◌̇; ġ; g◌̇; ) LATIN SMALL LETTER G WITH DOT ABOVE
+0122;0122;0047 0327;0122;0047 0327; # (Ģ; Ģ; G◌̧; Ģ; G◌̧; ) LATIN CAPITAL LETTER G WITH CEDILLA
+0123;0123;0067 0327;0123;0067 0327; # (ģ; ģ; g◌̧; ģ; g◌̧; ) LATIN SMALL LETTER G WITH CEDILLA
+0124;0124;0048 0302;0124;0048 0302; # (Ĥ; Ĥ; H◌̂; Ĥ; H◌̂; ) LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125;0125;0068 0302;0125;0068 0302; # (ĥ; ĥ; h◌̂; ĥ; h◌̂; ) LATIN SMALL LETTER H WITH CIRCUMFLEX
+0128;0128;0049 0303;0128;0049 0303; # (Ĩ; Ĩ; I◌̃; Ĩ; I◌̃; ) LATIN CAPITAL LETTER I WITH TILDE
+0129;0129;0069 0303;0129;0069 0303; # (ĩ; ĩ; i◌̃; ĩ; i◌̃; ) LATIN SMALL LETTER I WITH TILDE
+012A;012A;0049 0304;012A;0049 0304; # (Ī; Ī; I◌̄; Ī; I◌̄; ) LATIN CAPITAL LETTER I WITH MACRON
+012B;012B;0069 0304;012B;0069 0304; # (ī; ī; i◌̄; ī; i◌̄; ) LATIN SMALL LETTER I WITH MACRON
+012C;012C;0049 0306;012C;0049 0306; # (Ĭ; Ĭ; I◌̆; Ĭ; I◌̆; ) LATIN CAPITAL LETTER I WITH BREVE
+012D;012D;0069 0306;012D;0069 0306; # (ĭ; ĭ; i◌̆; ĭ; i◌̆; ) LATIN SMALL LETTER I WITH BREVE
+012E;012E;0049 0328;012E;0049 0328; # (Į; Į; I◌̨; Į; I◌̨; ) LATIN CAPITAL LETTER I WITH OGONEK
+012F;012F;0069 0328;012F;0069 0328; # (į; į; i◌̨; į; i◌̨; ) LATIN SMALL LETTER I WITH OGONEK
+0130;0130;0049 0307;0130;0049 0307; # (İ; İ; I◌̇; İ; I◌̇; ) LATIN CAPITAL LETTER I WITH DOT ABOVE
+0132;0132;0132;0049 004A;0049 004A; # (IJ; IJ; IJ; IJ; IJ; ) LATIN CAPITAL LIGATURE IJ
+0133;0133;0133;0069 006A;0069 006A; # (ij; ij; ij; ij; ij; ) LATIN SMALL LIGATURE IJ
+0134;0134;004A 0302;0134;004A 0302; # (Ĵ; Ĵ; J◌̂; Ĵ; J◌̂; ) LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135;0135;006A 0302;0135;006A 0302; # (ĵ; ĵ; j◌̂; ĵ; j◌̂; ) LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136;0136;004B 0327;0136;004B 0327; # (Ķ; Ķ; K◌̧; Ķ; K◌̧; ) LATIN CAPITAL LETTER K WITH CEDILLA
+0137;0137;006B 0327;0137;006B 0327; # (ķ; ķ; k◌̧; ķ; k◌̧; ) LATIN SMALL LETTER K WITH CEDILLA
+0139;0139;004C 0301;0139;004C 0301; # (Ĺ; Ĺ; L◌́; Ĺ; L◌́; ) LATIN CAPITAL LETTER L WITH ACUTE
+013A;013A;006C 0301;013A;006C 0301; # (ĺ; ĺ; l◌́; ĺ; l◌́; ) LATIN SMALL LETTER L WITH ACUTE
+013B;013B;004C 0327;013B;004C 0327; # (Ļ; Ļ; L◌̧; Ļ; L◌̧; ) LATIN CAPITAL LETTER L WITH CEDILLA
+013C;013C;006C 0327;013C;006C 0327; # (ļ; ļ; l◌̧; ļ; l◌̧; ) LATIN SMALL LETTER L WITH CEDILLA
+013D;013D;004C 030C;013D;004C 030C; # (Ľ; Ľ; L◌̌; Ľ; L◌̌; ) LATIN CAPITAL LETTER L WITH CARON
+013E;013E;006C 030C;013E;006C 030C; # (ľ; ľ; l◌̌; ľ; l◌̌; ) LATIN SMALL LETTER L WITH CARON
+013F;013F;013F;004C 00B7;004C 00B7; # (Ŀ; Ŀ; Ŀ; L·; L·; ) LATIN CAPITAL LETTER L WITH MIDDLE DOT
+0140;0140;0140;006C 00B7;006C 00B7; # (ŀ; ŀ; ŀ; l·; l·; ) LATIN SMALL LETTER L WITH MIDDLE DOT
+0143;0143;004E 0301;0143;004E 0301; # (Ń; Ń; N◌́; Ń; N◌́; ) LATIN CAPITAL LETTER N WITH ACUTE
+0144;0144;006E 0301;0144;006E 0301; # (ń; ń; n◌́; ń; n◌́; ) LATIN SMALL LETTER N WITH ACUTE
+0145;0145;004E 0327;0145;004E 0327; # (Ņ; Ņ; N◌̧; Ņ; N◌̧; ) LATIN CAPITAL LETTER N WITH CEDILLA
+0146;0146;006E 0327;0146;006E 0327; # (ņ; ņ; n◌̧; ņ; n◌̧; ) LATIN SMALL LETTER N WITH CEDILLA
+0147;0147;004E 030C;0147;004E 030C; # (Ň; Ň; N◌̌; Ň; N◌̌; ) LATIN CAPITAL LETTER N WITH CARON
+0148;0148;006E 030C;0148;006E 030C; # (ň; ň; n◌̌; ň; n◌̌; ) LATIN SMALL LETTER N WITH CARON
+0149;0149;0149;02BC 006E;02BC 006E; # (ʼn; ʼn; ʼn; ʼn; ʼn; ) LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014C;014C;004F 0304;014C;004F 0304; # (Ō; Ō; O◌̄; Ō; O◌̄; ) LATIN CAPITAL LETTER O WITH MACRON
+014D;014D;006F 0304;014D;006F 0304; # (ō; ō; o◌̄; ō; o◌̄; ) LATIN SMALL LETTER O WITH MACRON
+014E;014E;004F 0306;014E;004F 0306; # (Ŏ; Ŏ; O◌̆; Ŏ; O◌̆; ) LATIN CAPITAL LETTER O WITH BREVE
+014F;014F;006F 0306;014F;006F 0306; # (ŏ; ŏ; o◌̆; ŏ; o◌̆; ) LATIN SMALL LETTER O WITH BREVE
+0150;0150;004F 030B;0150;004F 030B; # (Ő; Ő; O◌̋; Ő; O◌̋; ) LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151;0151;006F 030B;0151;006F 030B; # (ő; ő; o◌̋; ő; o◌̋; ) LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0154;0154;0052 0301;0154;0052 0301; # (Ŕ; Ŕ; R◌́; Ŕ; R◌́; ) LATIN CAPITAL LETTER R WITH ACUTE
+0155;0155;0072 0301;0155;0072 0301; # (ŕ; ŕ; r◌́; ŕ; r◌́; ) LATIN SMALL LETTER R WITH ACUTE
+0156;0156;0052 0327;0156;0052 0327; # (Ŗ; Ŗ; R◌̧; Ŗ; R◌̧; ) LATIN CAPITAL LETTER R WITH CEDILLA
+0157;0157;0072 0327;0157;0072 0327; # (ŗ; ŗ; r◌̧; ŗ; r◌̧; ) LATIN SMALL LETTER R WITH CEDILLA
+0158;0158;0052 030C;0158;0052 030C; # (Ř; Ř; R◌̌; Ř; R◌̌; ) LATIN CAPITAL LETTER R WITH CARON
+0159;0159;0072 030C;0159;0072 030C; # (ř; ř; r◌̌; ř; r◌̌; ) LATIN SMALL LETTER R WITH CARON
+015A;015A;0053 0301;015A;0053 0301; # (Ś; Ś; S◌́; Ś; S◌́; ) LATIN CAPITAL LETTER S WITH ACUTE
+015B;015B;0073 0301;015B;0073 0301; # (ś; ś; s◌́; ś; s◌́; ) LATIN SMALL LETTER S WITH ACUTE
+015C;015C;0053 0302;015C;0053 0302; # (Ŝ; Ŝ; S◌̂; Ŝ; S◌̂; ) LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D;015D;0073 0302;015D;0073 0302; # (ŝ; ŝ; s◌̂; ŝ; s◌̂; ) LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E;015E;0053 0327;015E;0053 0327; # (Ş; Ş; S◌̧; Ş; S◌̧; ) LATIN CAPITAL LETTER S WITH CEDILLA
+015F;015F;0073 0327;015F;0073 0327; # (ş; ş; s◌̧; ş; s◌̧; ) LATIN SMALL LETTER S WITH CEDILLA
+0160;0160;0053 030C;0160;0053 030C; # (Š; Š; S◌̌; Š; S◌̌; ) LATIN CAPITAL LETTER S WITH CARON
+0161;0161;0073 030C;0161;0073 030C; # (š; š; s◌̌; š; s◌̌; ) LATIN SMALL LETTER S WITH CARON
+0162;0162;0054 0327;0162;0054 0327; # (Ţ; Ţ; T◌̧; Ţ; T◌̧; ) LATIN CAPITAL LETTER T WITH CEDILLA
+0163;0163;0074 0327;0163;0074 0327; # (ţ; ţ; t◌̧; ţ; t◌̧; ) LATIN SMALL LETTER T WITH CEDILLA
+0164;0164;0054 030C;0164;0054 030C; # (Ť; Ť; T◌̌; Ť; T◌̌; ) LATIN CAPITAL LETTER T WITH CARON
+0165;0165;0074 030C;0165;0074 030C; # (ť; ť; t◌̌; ť; t◌̌; ) LATIN SMALL LETTER T WITH CARON
+0168;0168;0055 0303;0168;0055 0303; # (Ũ; Ũ; U◌̃; Ũ; U◌̃; ) LATIN CAPITAL LETTER U WITH TILDE
+0169;0169;0075 0303;0169;0075 0303; # (ũ; ũ; u◌̃; ũ; u◌̃; ) LATIN SMALL LETTER U WITH TILDE
+016A;016A;0055 0304;016A;0055 0304; # (Ū; Ū; U◌̄; Ū; U◌̄; ) LATIN CAPITAL LETTER U WITH MACRON
+016B;016B;0075 0304;016B;0075 0304; # (ū; ū; u◌̄; ū; u◌̄; ) LATIN SMALL LETTER U WITH MACRON
+016C;016C;0055 0306;016C;0055 0306; # (Ŭ; Ŭ; U◌̆; Ŭ; U◌̆; ) LATIN CAPITAL LETTER U WITH BREVE
+016D;016D;0075 0306;016D;0075 0306; # (ŭ; ŭ; u◌̆; ŭ; u◌̆; ) LATIN SMALL LETTER U WITH BREVE
+016E;016E;0055 030A;016E;0055 030A; # (Ů; Ů; U◌̊; Ů; U◌̊; ) LATIN CAPITAL LETTER U WITH RING ABOVE
+016F;016F;0075 030A;016F;0075 030A; # (ů; ů; u◌̊; ů; u◌̊; ) LATIN SMALL LETTER U WITH RING ABOVE
+0170;0170;0055 030B;0170;0055 030B; # (Ű; Ű; U◌̋; Ű; U◌̋; ) LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171;0171;0075 030B;0171;0075 030B; # (ű; ű; u◌̋; ű; u◌̋; ) LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172;0172;0055 0328;0172;0055 0328; # (Ų; Ų; U◌̨; Ų; U◌̨; ) LATIN CAPITAL LETTER U WITH OGONEK
+0173;0173;0075 0328;0173;0075 0328; # (ų; ų; u◌̨; ų; u◌̨; ) LATIN SMALL LETTER U WITH OGONEK
+0174;0174;0057 0302;0174;0057 0302; # (Ŵ; Ŵ; W◌̂; Ŵ; W◌̂; ) LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175;0175;0077 0302;0175;0077 0302; # (ŵ; ŵ; w◌̂; ŵ; w◌̂; ) LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176;0176;0059 0302;0176;0059 0302; # (Ŷ; Ŷ; Y◌̂; Ŷ; Y◌̂; ) LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177;0177;0079 0302;0177;0079 0302; # (ŷ; ŷ; y◌̂; ŷ; y◌̂; ) LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178;0178;0059 0308;0178;0059 0308; # (Ÿ; Ÿ; Y◌̈; Ÿ; Y◌̈; ) LATIN CAPITAL LETTER Y WITH DIAERESIS
+0179;0179;005A 0301;0179;005A 0301; # (Ź; Ź; Z◌́; Ź; Z◌́; ) LATIN CAPITAL LETTER Z WITH ACUTE
+017A;017A;007A 0301;017A;007A 0301; # (ź; ź; z◌́; ź; z◌́; ) LATIN SMALL LETTER Z WITH ACUTE
+017B;017B;005A 0307;017B;005A 0307; # (Ż; Ż; Z◌̇; Ż; Z◌̇; ) LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C;017C;007A 0307;017C;007A 0307; # (ż; ż; z◌̇; ż; z◌̇; ) LATIN SMALL LETTER Z WITH DOT ABOVE
+017D;017D;005A 030C;017D;005A 030C; # (Ž; Ž; Z◌̌; Ž; Z◌̌; ) LATIN CAPITAL LETTER Z WITH CARON
+017E;017E;007A 030C;017E;007A 030C; # (ž; ž; z◌̌; ž; z◌̌; ) LATIN SMALL LETTER Z WITH CARON
+017F;017F;017F;0073;0073; # (ſ; ſ; ſ; s; s; ) LATIN SMALL LETTER LONG S
+01A0;01A0;004F 031B;01A0;004F 031B; # (Ơ; Ơ; O◌̛; Ơ; O◌̛; ) LATIN CAPITAL LETTER O WITH HORN
+01A1;01A1;006F 031B;01A1;006F 031B; # (ơ; ơ; o◌̛; ơ; o◌̛; ) LATIN SMALL LETTER O WITH HORN
+01AF;01AF;0055 031B;01AF;0055 031B; # (Ư; Ư; U◌̛; Ư; U◌̛; ) LATIN CAPITAL LETTER U WITH HORN
+01B0;01B0;0075 031B;01B0;0075 031B; # (ư; ư; u◌̛; ư; u◌̛; ) LATIN SMALL LETTER U WITH HORN
+01C4;01C4;01C4;0044 017D;0044 005A 030C; # (DŽ; DŽ; DŽ; DŽ; DZ◌̌; ) LATIN CAPITAL LETTER DZ WITH CARON
+01C5;01C5;01C5;0044 017E;0044 007A 030C; # (Dž; Dž; Dž; Dž; Dz◌̌; ) LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C6;01C6;01C6;0064 017E;0064 007A 030C; # (dž; dž; dž; dž; dz◌̌; ) LATIN SMALL LETTER DZ WITH CARON
+01C7;01C7;01C7;004C 004A;004C 004A; # (LJ; LJ; LJ; LJ; LJ; ) LATIN CAPITAL LETTER LJ
+01C8;01C8;01C8;004C 006A;004C 006A; # (Lj; Lj; Lj; Lj; Lj; ) LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01C9;01C9;01C9;006C 006A;006C 006A; # (lj; lj; lj; lj; lj; ) LATIN SMALL LETTER LJ
+01CA;01CA;01CA;004E 004A;004E 004A; # (NJ; NJ; NJ; NJ; NJ; ) LATIN CAPITAL LETTER NJ
+01CB;01CB;01CB;004E 006A;004E 006A; # (Nj; Nj; Nj; Nj; Nj; ) LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01CC;01CC;01CC;006E 006A;006E 006A; # (nj; nj; nj; nj; nj; ) LATIN SMALL LETTER NJ
+01CD;01CD;0041 030C;01CD;0041 030C; # (Ǎ; Ǎ; A◌̌; Ǎ; A◌̌; ) LATIN CAPITAL LETTER A WITH CARON
+01CE;01CE;0061 030C;01CE;0061 030C; # (ǎ; ǎ; a◌̌; ǎ; a◌̌; ) LATIN SMALL LETTER A WITH CARON
+01CF;01CF;0049 030C;01CF;0049 030C; # (Ǐ; Ǐ; I◌̌; Ǐ; I◌̌; ) LATIN CAPITAL LETTER I WITH CARON
+01D0;01D0;0069 030C;01D0;0069 030C; # (ǐ; ǐ; i◌̌; ǐ; i◌̌; ) LATIN SMALL LETTER I WITH CARON
+01D1;01D1;004F 030C;01D1;004F 030C; # (Ǒ; Ǒ; O◌̌; Ǒ; O◌̌; ) LATIN CAPITAL LETTER O WITH CARON
+01D2;01D2;006F 030C;01D2;006F 030C; # (ǒ; ǒ; o◌̌; ǒ; o◌̌; ) LATIN SMALL LETTER O WITH CARON
+01D3;01D3;0055 030C;01D3;0055 030C; # (Ǔ; Ǔ; U◌̌; Ǔ; U◌̌; ) LATIN CAPITAL LETTER U WITH CARON
+01D4;01D4;0075 030C;01D4;0075 030C; # (ǔ; ǔ; u◌̌; ǔ; u◌̌; ) LATIN SMALL LETTER U WITH CARON
+01D5;01D5;0055 0308 0304;01D5;0055 0308 0304; # (Ǖ; Ǖ; U◌̈◌̄; Ǖ; U◌̈◌̄; ) LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6;01D6;0075 0308 0304;01D6;0075 0308 0304; # (ǖ; ǖ; u◌̈◌̄; ǖ; u◌̈◌̄; ) LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7;01D7;0055 0308 0301;01D7;0055 0308 0301; # (Ǘ; Ǘ; U◌̈◌́; Ǘ; U◌̈◌́; ) LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8;01D8;0075 0308 0301;01D8;0075 0308 0301; # (ǘ; ǘ; u◌̈◌́; ǘ; u◌̈◌́; ) LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9;01D9;0055 0308 030C;01D9;0055 0308 030C; # (Ǚ; Ǚ; U◌̈◌̌; Ǚ; U◌̈◌̌; ) LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA;01DA;0075 0308 030C;01DA;0075 0308 030C; # (ǚ; ǚ; u◌̈◌̌; ǚ; u◌̈◌̌; ) LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB;01DB;0055 0308 0300;01DB;0055 0308 0300; # (Ǜ; Ǜ; U◌̈◌̀; Ǜ; U◌̈◌̀; ) LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC;01DC;0075 0308 0300;01DC;0075 0308 0300; # (ǜ; ǜ; u◌̈◌̀; ǜ; u◌̈◌̀; ) LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DE;01DE;0041 0308 0304;01DE;0041 0308 0304; # (Ǟ; Ǟ; A◌̈◌̄; Ǟ; A◌̈◌̄; ) LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF;01DF;0061 0308 0304;01DF;0061 0308 0304; # (ǟ; ǟ; a◌̈◌̄; ǟ; a◌̈◌̄; ) LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E0;01E0;0041 0307 0304;01E0;0041 0307 0304; # (Ǡ; Ǡ; A◌̇◌̄; Ǡ; A◌̇◌̄; ) LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1;01E1;0061 0307 0304;01E1;0061 0307 0304; # (ǡ; ǡ; a◌̇◌̄; ǡ; a◌̇◌̄; ) LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2;01E2;00C6 0304;01E2;00C6 0304; # (Ǣ; Ǣ; Æ◌̄; Ǣ; Æ◌̄; ) LATIN CAPITAL LETTER AE WITH MACRON
+01E3;01E3;00E6 0304;01E3;00E6 0304; # (ǣ; ǣ; æ◌̄; ǣ; æ◌̄; ) LATIN SMALL LETTER AE WITH MACRON
+01E6;01E6;0047 030C;01E6;0047 030C; # (Ǧ; Ǧ; G◌̌; Ǧ; G◌̌; ) LATIN CAPITAL LETTER G WITH CARON
+01E7;01E7;0067 030C;01E7;0067 030C; # (ǧ; ǧ; g◌̌; ǧ; g◌̌; ) LATIN SMALL LETTER G WITH CARON
+01E8;01E8;004B 030C;01E8;004B 030C; # (Ǩ; Ǩ; K◌̌; Ǩ; K◌̌; ) LATIN CAPITAL LETTER K WITH CARON
+01E9;01E9;006B 030C;01E9;006B 030C; # (ǩ; ǩ; k◌̌; ǩ; k◌̌; ) LATIN SMALL LETTER K WITH CARON
+01EA;01EA;004F 0328;01EA;004F 0328; # (Ǫ; Ǫ; O◌̨; Ǫ; O◌̨; ) LATIN CAPITAL LETTER O WITH OGONEK
+01EB;01EB;006F 0328;01EB;006F 0328; # (ǫ; ǫ; o◌̨; ǫ; o◌̨; ) LATIN SMALL LETTER O WITH OGONEK
+01EC;01EC;004F 0328 0304;01EC;004F 0328 0304; # (Ǭ; Ǭ; O◌̨◌̄; Ǭ; O◌̨◌̄; ) LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED;01ED;006F 0328 0304;01ED;006F 0328 0304; # (ǭ; ǭ; o◌̨◌̄; ǭ; o◌̨◌̄; ) LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE;01EE;01B7 030C;01EE;01B7 030C; # (Ǯ; Ǯ; Ʒ◌̌; Ǯ; Ʒ◌̌; ) LATIN CAPITAL LETTER EZH WITH CARON
+01EF;01EF;0292 030C;01EF;0292 030C; # (ǯ; ǯ; ʒ◌̌; ǯ; ʒ◌̌; ) LATIN SMALL LETTER EZH WITH CARON
+01F0;01F0;006A 030C;01F0;006A 030C; # (ǰ; ǰ; j◌̌; ǰ; j◌̌; ) LATIN SMALL LETTER J WITH CARON
+01F1;01F1;01F1;0044 005A;0044 005A; # (DZ; DZ; DZ; DZ; DZ; ) LATIN CAPITAL LETTER DZ
+01F2;01F2;01F2;0044 007A;0044 007A; # (Dz; Dz; Dz; Dz; Dz; ) LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+01F3;01F3;01F3;0064 007A;0064 007A; # (dz; dz; dz; dz; dz; ) LATIN SMALL LETTER DZ
+01F4;01F4;0047 0301;01F4;0047 0301; # (Ǵ; Ǵ; G◌́; Ǵ; G◌́; ) LATIN CAPITAL LETTER G WITH ACUTE
+01F5;01F5;0067 0301;01F5;0067 0301; # (ǵ; ǵ; g◌́; ǵ; g◌́; ) LATIN SMALL LETTER G WITH ACUTE
+01F8;01F8;004E 0300;01F8;004E 0300; # (Ǹ; Ǹ; N◌̀; Ǹ; N◌̀; ) LATIN CAPITAL LETTER N WITH GRAVE
+01F9;01F9;006E 0300;01F9;006E 0300; # (ǹ; ǹ; n◌̀; ǹ; n◌̀; ) LATIN SMALL LETTER N WITH GRAVE
+01FA;01FA;0041 030A 0301;01FA;0041 030A 0301; # (Ǻ; Ǻ; A◌̊◌́; Ǻ; A◌̊◌́; ) LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB;01FB;0061 030A 0301;01FB;0061 030A 0301; # (ǻ; ǻ; a◌̊◌́; ǻ; a◌̊◌́; ) LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC;01FC;00C6 0301;01FC;00C6 0301; # (Ǽ; Ǽ; Æ◌́; Ǽ; Æ◌́; ) LATIN CAPITAL LETTER AE WITH ACUTE
+01FD;01FD;00E6 0301;01FD;00E6 0301; # (ǽ; ǽ; æ◌́; ǽ; æ◌́; ) LATIN SMALL LETTER AE WITH ACUTE
+01FE;01FE;00D8 0301;01FE;00D8 0301; # (Ǿ; Ǿ; Ø◌́; Ǿ; Ø◌́; ) LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF;01FF;00F8 0301;01FF;00F8 0301; # (ǿ; ǿ; ø◌́; ǿ; ø◌́; ) LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0200;0200;0041 030F;0200;0041 030F; # (Ȁ; Ȁ; A◌̏; Ȁ; A◌̏; ) LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201;0201;0061 030F;0201;0061 030F; # (ȁ; ȁ; a◌̏; ȁ; a◌̏; ) LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202;0202;0041 0311;0202;0041 0311; # (Ȃ; Ȃ; A◌̑; Ȃ; A◌̑; ) LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203;0203;0061 0311;0203;0061 0311; # (ȃ; ȃ; a◌̑; ȃ; a◌̑; ) LATIN SMALL LETTER A WITH INVERTED BREVE
+0204;0204;0045 030F;0204;0045 030F; # (Ȅ; Ȅ; E◌̏; Ȅ; E◌̏; ) LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205;0205;0065 030F;0205;0065 030F; # (ȅ; ȅ; e◌̏; ȅ; e◌̏; ) LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206;0206;0045 0311;0206;0045 0311; # (Ȇ; Ȇ; E◌̑; Ȇ; E◌̑; ) LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207;0207;0065 0311;0207;0065 0311; # (ȇ; ȇ; e◌̑; ȇ; e◌̑; ) LATIN SMALL LETTER E WITH INVERTED BREVE
+0208;0208;0049 030F;0208;0049 030F; # (Ȉ; Ȉ; I◌̏; Ȉ; I◌̏; ) LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209;0209;0069 030F;0209;0069 030F; # (ȉ; ȉ; i◌̏; ȉ; i◌̏; ) LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A;020A;0049 0311;020A;0049 0311; # (Ȋ; Ȋ; I◌̑; Ȋ; I◌̑; ) LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B;020B;0069 0311;020B;0069 0311; # (ȋ; ȋ; i◌̑; ȋ; i◌̑; ) LATIN SMALL LETTER I WITH INVERTED BREVE
+020C;020C;004F 030F;020C;004F 030F; # (Ȍ; Ȍ; O◌̏; Ȍ; O◌̏; ) LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D;020D;006F 030F;020D;006F 030F; # (ȍ; ȍ; o◌̏; ȍ; o◌̏; ) LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E;020E;004F 0311;020E;004F 0311; # (Ȏ; Ȏ; O◌̑; Ȏ; O◌̑; ) LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F;020F;006F 0311;020F;006F 0311; # (ȏ; ȏ; o◌̑; ȏ; o◌̑; ) LATIN SMALL LETTER O WITH INVERTED BREVE
+0210;0210;0052 030F;0210;0052 030F; # (Ȑ; Ȑ; R◌̏; Ȑ; R◌̏; ) LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211;0211;0072 030F;0211;0072 030F; # (ȑ; ȑ; r◌̏; ȑ; r◌̏; ) LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212;0212;0052 0311;0212;0052 0311; # (Ȓ; Ȓ; R◌̑; Ȓ; R◌̑; ) LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213;0213;0072 0311;0213;0072 0311; # (ȓ; ȓ; r◌̑; ȓ; r◌̑; ) LATIN SMALL LETTER R WITH INVERTED BREVE
+0214;0214;0055 030F;0214;0055 030F; # (Ȕ; Ȕ; U◌̏; Ȕ; U◌̏; ) LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215;0215;0075 030F;0215;0075 030F; # (ȕ; ȕ; u◌̏; ȕ; u◌̏; ) LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216;0216;0055 0311;0216;0055 0311; # (Ȗ; Ȗ; U◌̑; Ȗ; U◌̑; ) LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217;0217;0075 0311;0217;0075 0311; # (ȗ; ȗ; u◌̑; ȗ; u◌̑; ) LATIN SMALL LETTER U WITH INVERTED BREVE
+0218;0218;0053 0326;0218;0053 0326; # (Ș; Ș; S◌̦; Ș; S◌̦; ) LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219;0219;0073 0326;0219;0073 0326; # (ș; ș; s◌̦; ș; s◌̦; ) LATIN SMALL LETTER S WITH COMMA BELOW
+021A;021A;0054 0326;021A;0054 0326; # (Ț; Ț; T◌̦; Ț; T◌̦; ) LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B;021B;0074 0326;021B;0074 0326; # (ț; ț; t◌̦; ț; t◌̦; ) LATIN SMALL LETTER T WITH COMMA BELOW
+021E;021E;0048 030C;021E;0048 030C; # (Ȟ; Ȟ; H◌̌; Ȟ; H◌̌; ) LATIN CAPITAL LETTER H WITH CARON
+021F;021F;0068 030C;021F;0068 030C; # (ȟ; ȟ; h◌̌; ȟ; h◌̌; ) LATIN SMALL LETTER H WITH CARON
+0226;0226;0041 0307;0226;0041 0307; # (Ȧ; Ȧ; A◌̇; Ȧ; A◌̇; ) LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227;0227;0061 0307;0227;0061 0307; # (ȧ; ȧ; a◌̇; ȧ; a◌̇; ) LATIN SMALL LETTER A WITH DOT ABOVE
+0228;0228;0045 0327;0228;0045 0327; # (Ȩ; Ȩ; E◌̧; Ȩ; E◌̧; ) LATIN CAPITAL LETTER E WITH CEDILLA
+0229;0229;0065 0327;0229;0065 0327; # (ȩ; ȩ; e◌̧; ȩ; e◌̧; ) LATIN SMALL LETTER E WITH CEDILLA
+022A;022A;004F 0308 0304;022A;004F 0308 0304; # (Ȫ; Ȫ; O◌̈◌̄; Ȫ; O◌̈◌̄; ) LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B;022B;006F 0308 0304;022B;006F 0308 0304; # (ȫ; ȫ; o◌̈◌̄; ȫ; o◌̈◌̄; ) LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C;022C;004F 0303 0304;022C;004F 0303 0304; # (Ȭ; Ȭ; O◌̃◌̄; Ȭ; O◌̃◌̄; ) LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D;022D;006F 0303 0304;022D;006F 0303 0304; # (ȭ; ȭ; o◌̃◌̄; ȭ; o◌̃◌̄; ) LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E;022E;004F 0307;022E;004F 0307; # (Ȯ; Ȯ; O◌̇; Ȯ; O◌̇; ) LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F;022F;006F 0307;022F;006F 0307; # (ȯ; ȯ; o◌̇; ȯ; o◌̇; ) LATIN SMALL LETTER O WITH DOT ABOVE
+0230;0230;004F 0307 0304;0230;004F 0307 0304; # (Ȱ; Ȱ; O◌̇◌̄; Ȱ; O◌̇◌̄; ) LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231;0231;006F 0307 0304;0231;006F 0307 0304; # (ȱ; ȱ; o◌̇◌̄; ȱ; o◌̇◌̄; ) LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232;0232;0059 0304;0232;0059 0304; # (Ȳ; Ȳ; Y◌̄; Ȳ; Y◌̄; ) LATIN CAPITAL LETTER Y WITH MACRON
+0233;0233;0079 0304;0233;0079 0304; # (ȳ; ȳ; y◌̄; ȳ; y◌̄; ) LATIN SMALL LETTER Y WITH MACRON
+02B0;02B0;02B0;0068;0068; # (ʰ; ʰ; ʰ; h; h; ) MODIFIER LETTER SMALL H
+02B1;02B1;02B1;0266;0266; # (ʱ; ʱ; ʱ; ɦ; ɦ; ) MODIFIER LETTER SMALL H WITH HOOK
+02B2;02B2;02B2;006A;006A; # (ʲ; ʲ; ʲ; j; j; ) MODIFIER LETTER SMALL J
+02B3;02B3;02B3;0072;0072; # (ʳ; ʳ; ʳ; r; r; ) MODIFIER LETTER SMALL R
+02B4;02B4;02B4;0279;0279; # (ʴ; ʴ; ʴ; ɹ; ɹ; ) MODIFIER LETTER SMALL TURNED R
+02B5;02B5;02B5;027B;027B; # (ʵ; ʵ; ʵ; ɻ; ɻ; ) MODIFIER LETTER SMALL TURNED R WITH HOOK
+02B6;02B6;02B6;0281;0281; # (ʶ; ʶ; ʶ; ʁ; ʁ; ) MODIFIER LETTER SMALL CAPITAL INVERTED R
+02B7;02B7;02B7;0077;0077; # (ʷ; ʷ; ʷ; w; w; ) MODIFIER LETTER SMALL W
+02B8;02B8;02B8;0079;0079; # (ʸ; ʸ; ʸ; y; y; ) MODIFIER LETTER SMALL Y
+02D8;02D8;02D8;0020 0306;0020 0306; # (˘; ˘; ˘;  ◌̆;  ◌̆; ) BREVE
+02D9;02D9;02D9;0020 0307;0020 0307; # (˙; ˙; ˙;  ◌̇;  ◌̇; ) DOT ABOVE
+02DA;02DA;02DA;0020 030A;0020 030A; # (˚; ˚; ˚;  ◌̊;  ◌̊; ) RING ABOVE
+02DB;02DB;02DB;0020 0328;0020 0328; # (˛; ˛; ˛;  ◌̨;  ◌̨; ) OGONEK
+02DC;02DC;02DC;0020 0303;0020 0303; # (˜; ˜; ˜;  ◌̃;  ◌̃; ) SMALL TILDE
+02DD;02DD;02DD;0020 030B;0020 030B; # (˝; ˝; ˝;  ◌̋;  ◌̋; ) DOUBLE ACUTE ACCENT
+02E0;02E0;02E0;0263;0263; # (ˠ; ˠ; ˠ; ɣ; ɣ; ) MODIFIER LETTER SMALL GAMMA
+02E1;02E1;02E1;006C;006C; # (ˡ; ˡ; ˡ; l; l; ) MODIFIER LETTER SMALL L
+02E2;02E2;02E2;0073;0073; # (ˢ; ˢ; ˢ; s; s; ) MODIFIER LETTER SMALL S
+02E3;02E3;02E3;0078;0078; # (ˣ; ˣ; ˣ; x; x; ) MODIFIER LETTER SMALL X
+02E4;02E4;02E4;0295;0295; # (ˤ; ˤ; ˤ; ʕ; ʕ; ) MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+0340;0300;0300;0300;0300; # (◌̀; ◌̀; ◌̀; ◌̀; ◌̀; ) COMBINING GRAVE TONE MARK
+0341;0301;0301;0301;0301; # (◌́; ◌́; ◌́; ◌́; ◌́; ) COMBINING ACUTE TONE MARK
+0343;0313;0313;0313;0313; # (◌̓; ◌̓; ◌̓; ◌̓; ◌̓; ) COMBINING GREEK KORONIS
+0344;0308 0301;0308 0301;0308 0301;0308 0301; # (◌̈́; ◌̈◌́; ◌̈◌́; ◌̈◌́; ◌̈◌́; ) COMBINING GREEK DIALYTIKA TONOS
+0374;02B9;02B9;02B9;02B9; # (ʹ; ʹ; ʹ; ʹ; ʹ; ) GREEK NUMERAL SIGN
+037A;037A;037A;0020 0345;0020 0345; # (ͺ; ͺ; ͺ;  ◌ͅ;  ◌ͅ; ) GREEK YPOGEGRAMMENI
+037E;003B;003B;003B;003B; # (;; ;; ;; ;; ;; ) GREEK QUESTION MARK
+0384;0384;0384;0020 0301;0020 0301; # (΄; ΄; ΄;  ◌́;  ◌́; ) GREEK TONOS
+0385;0385;00A8 0301;0020 0308 0301;0020 0308 0301; # (΅; ΅; ¨◌́;  ◌̈◌́;  ◌̈◌́; ) GREEK DIALYTIKA TONOS
+0386;0386;0391 0301;0386;0391 0301; # (Ά; Ά; Α◌́; Ά; Α◌́; ) GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;00B7;00B7;00B7;00B7; # (·; ·; ·; ·; ·; ) GREEK ANO TELEIA
+0388;0388;0395 0301;0388;0395 0301; # (Έ; Έ; Ε◌́; Έ; Ε◌́; ) GREEK CAPITAL LETTER EPSILON WITH TONOS
+0389;0389;0397 0301;0389;0397 0301; # (Ή; Ή; Η◌́; Ή; Η◌́; ) GREEK CAPITAL LETTER ETA WITH TONOS
+038A;038A;0399 0301;038A;0399 0301; # (Ί; Ί; Ι◌́; Ί; Ι◌́; ) GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;038C;039F 0301;038C;039F 0301; # (Ό; Ό; Ο◌́; Ό; Ο◌́; ) GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E;038E;03A5 0301;038E;03A5 0301; # (Ύ; Ύ; Υ◌́; Ύ; Υ◌́; ) GREEK CAPITAL LETTER UPSILON WITH TONOS
+038F;038F;03A9 0301;038F;03A9 0301; # (Ώ; Ώ; Ω◌́; Ώ; Ω◌́; ) GREEK CAPITAL LETTER OMEGA WITH TONOS
+0390;0390;03B9 0308 0301;0390;03B9 0308 0301; # (ΐ; ΐ; ι◌̈◌́; ΐ; ι◌̈◌́; ) GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03AA;03AA;0399 0308;03AA;0399 0308; # (Ϊ; Ϊ; Ι◌̈; Ϊ; Ι◌̈; ) GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+03AB;03AB;03A5 0308;03AB;03A5 0308; # (Ϋ; Ϋ; Υ◌̈; Ϋ; Υ◌̈; ) GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC;03AC;03B1 0301;03AC;03B1 0301; # (ά; ά; α◌́; ά; α◌́; ) GREEK SMALL LETTER ALPHA WITH TONOS
+03AD;03AD;03B5 0301;03AD;03B5 0301; # (έ; έ; ε◌́; έ; ε◌́; ) GREEK SMALL LETTER EPSILON WITH TONOS
+03AE;03AE;03B7 0301;03AE;03B7 0301; # (ή; ή; η◌́; ή; η◌́; ) GREEK SMALL LETTER ETA WITH TONOS
+03AF;03AF;03B9 0301;03AF;03B9 0301; # (ί; ί; ι◌́; ί; ι◌́; ) GREEK SMALL LETTER IOTA WITH TONOS
+03B0;03B0;03C5 0308 0301;03B0;03C5 0308 0301; # (ΰ; ΰ; υ◌̈◌́; ΰ; υ◌̈◌́; ) GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03CA;03CA;03B9 0308;03CA;03B9 0308; # (ϊ; ϊ; ι◌̈; ϊ; ι◌̈; ) GREEK SMALL LETTER IOTA WITH DIALYTIKA
+03CB;03CB;03C5 0308;03CB;03C5 0308; # (ϋ; ϋ; υ◌̈; ϋ; υ◌̈; ) GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+03CC;03CC;03BF 0301;03CC;03BF 0301; # (ό; ό; ο◌́; ό; ο◌́; ) GREEK SMALL LETTER OMICRON WITH TONOS
+03CD;03CD;03C5 0301;03CD;03C5 0301; # (ύ; ύ; υ◌́; ύ; υ◌́; ) GREEK SMALL LETTER UPSILON WITH TONOS
+03CE;03CE;03C9 0301;03CE;03C9 0301; # (ώ; ώ; ω◌́; ώ; ω◌́; ) GREEK SMALL LETTER OMEGA WITH TONOS
+03D0;03D0;03D0;03B2;03B2; # (ϐ; ϐ; ϐ; β; β; ) GREEK BETA SYMBOL
+03D1;03D1;03D1;03B8;03B8; # (ϑ; ϑ; ϑ; θ; θ; ) GREEK THETA SYMBOL
+03D2;03D2;03D2;03A5;03A5; # (ϒ; ϒ; ϒ; Υ; Υ; ) GREEK UPSILON WITH HOOK SYMBOL
+03D3;03D3;03D2 0301;038E;03A5 0301; # (ϓ; ϓ; ϒ◌́; Ύ; Υ◌́; ) GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4;03D4;03D2 0308;03AB;03A5 0308; # (ϔ; ϔ; ϒ◌̈; Ϋ; Υ◌̈; ) GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D5;03D5;03D5;03C6;03C6; # (ϕ; ϕ; ϕ; φ; φ; ) GREEK PHI SYMBOL
+03D6;03D6;03D6;03C0;03C0; # (ϖ; ϖ; ϖ; π; π; ) GREEK PI SYMBOL
+03F0;03F0;03F0;03BA;03BA; # (ϰ; ϰ; ϰ; κ; κ; ) GREEK KAPPA SYMBOL
+03F1;03F1;03F1;03C1;03C1; # (ϱ; ϱ; ϱ; ρ; ρ; ) GREEK RHO SYMBOL
+03F2;03F2;03F2;03C2;03C2; # (ϲ; ϲ; ϲ; ς; ς; ) GREEK LUNATE SIGMA SYMBOL
+03F4;03F4;03F4;0398;0398; # (ϴ; ϴ; ϴ; Θ; Θ; ) GREEK CAPITAL THETA SYMBOL
+03F5;03F5;03F5;03B5;03B5; # (ϵ; ϵ; ϵ; ε; ε; ) GREEK LUNATE EPSILON SYMBOL
+03F9;03F9;03F9;03A3;03A3; # (Ϲ; Ϲ; Ϲ; Σ; Σ; ) GREEK CAPITAL LUNATE SIGMA SYMBOL
+0400;0400;0415 0300;0400;0415 0300; # (Ѐ; Ѐ; Е◌̀; Ѐ; Е◌̀; ) CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401;0401;0415 0308;0401;0415 0308; # (Ё; Ё; Е◌̈; Ё; Е◌̈; ) CYRILLIC CAPITAL LETTER IO
+0403;0403;0413 0301;0403;0413 0301; # (Ѓ; Ѓ; Г◌́; Ѓ; Г◌́; ) CYRILLIC CAPITAL LETTER GJE
+0407;0407;0406 0308;0407;0406 0308; # (Ї; Ї; І◌̈; Ї; І◌̈; ) CYRILLIC CAPITAL LETTER YI
+040C;040C;041A 0301;040C;041A 0301; # (Ќ; Ќ; К◌́; Ќ; К◌́; ) CYRILLIC CAPITAL LETTER KJE
+040D;040D;0418 0300;040D;0418 0300; # (Ѝ; Ѝ; И◌̀; Ѝ; И◌̀; ) CYRILLIC CAPITAL LETTER I WITH GRAVE
+040E;040E;0423 0306;040E;0423 0306; # (Ў; Ў; У◌̆; Ў; У◌̆; ) CYRILLIC CAPITAL LETTER SHORT U
+0419;0419;0418 0306;0419;0418 0306; # (Й; Й; И◌̆; Й; И◌̆; ) CYRILLIC CAPITAL LETTER SHORT I
+0439;0439;0438 0306;0439;0438 0306; # (й; й; и◌̆; й; и◌̆; ) CYRILLIC SMALL LETTER SHORT I
+0450;0450;0435 0300;0450;0435 0300; # (ѐ; ѐ; е◌̀; ѐ; е◌̀; ) CYRILLIC SMALL LETTER IE WITH GRAVE
+0451;0451;0435 0308;0451;0435 0308; # (ё; ё; е◌̈; ё; е◌̈; ) CYRILLIC SMALL LETTER IO
+0453;0453;0433 0301;0453;0433 0301; # (ѓ; ѓ; г◌́; ѓ; г◌́; ) CYRILLIC SMALL LETTER GJE
+0457;0457;0456 0308;0457;0456 0308; # (ї; ї; і◌̈; ї; і◌̈; ) CYRILLIC SMALL LETTER YI
+045C;045C;043A 0301;045C;043A 0301; # (ќ; ќ; к◌́; ќ; к◌́; ) CYRILLIC SMALL LETTER KJE
+045D;045D;0438 0300;045D;0438 0300; # (ѝ; ѝ; и◌̀; ѝ; и◌̀; ) CYRILLIC SMALL LETTER I WITH GRAVE
+045E;045E;0443 0306;045E;0443 0306; # (ў; ў; у◌̆; ў; у◌̆; ) CYRILLIC SMALL LETTER SHORT U
+0476;0476;0474 030F;0476;0474 030F; # (Ѷ; Ѷ; Ѵ◌̏; Ѷ; Ѵ◌̏; ) CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477;0477;0475 030F;0477;0475 030F; # (ѷ; ѷ; ѵ◌̏; ѷ; ѵ◌̏; ) CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+04C1;04C1;0416 0306;04C1;0416 0306; # (Ӂ; Ӂ; Ж◌̆; Ӂ; Ж◌̆; ) CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2;04C2;0436 0306;04C2;0436 0306; # (ӂ; ӂ; ж◌̆; ӂ; ж◌̆; ) CYRILLIC SMALL LETTER ZHE WITH BREVE
+04D0;04D0;0410 0306;04D0;0410 0306; # (Ӑ; Ӑ; А◌̆; Ӑ; А◌̆; ) CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1;04D1;0430 0306;04D1;0430 0306; # (ӑ; ӑ; а◌̆; ӑ; а◌̆; ) CYRILLIC SMALL LETTER A WITH BREVE
+04D2;04D2;0410 0308;04D2;0410 0308; # (Ӓ; Ӓ; А◌̈; Ӓ; А◌̈; ) CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3;04D3;0430 0308;04D3;0430 0308; # (ӓ; ӓ; а◌̈; ӓ; а◌̈; ) CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D6;04D6;0415 0306;04D6;0415 0306; # (Ӗ; Ӗ; Е◌̆; Ӗ; Е◌̆; ) CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7;04D7;0435 0306;04D7;0435 0306; # (ӗ; ӗ; е◌̆; ӗ; е◌̆; ) CYRILLIC SMALL LETTER IE WITH BREVE
+04DA;04DA;04D8 0308;04DA;04D8 0308; # (Ӛ; Ӛ; Ә◌̈; Ӛ; Ә◌̈; ) CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB;04DB;04D9 0308;04DB;04D9 0308; # (ӛ; ӛ; ә◌̈; ӛ; ә◌̈; ) CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC;04DC;0416 0308;04DC;0416 0308; # (Ӝ; Ӝ; Ж◌̈; Ӝ; Ж◌̈; ) CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD;04DD;0436 0308;04DD;0436 0308; # (ӝ; ӝ; ж◌̈; ӝ; ж◌̈; ) CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE;04DE;0417 0308;04DE;0417 0308; # (Ӟ; Ӟ; З◌̈; Ӟ; З◌̈; ) CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF;04DF;0437 0308;04DF;0437 0308; # (ӟ; ӟ; з◌̈; ӟ; з◌̈; ) CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E2;04E2;0418 0304;04E2;0418 0304; # (Ӣ; Ӣ; И◌̄; Ӣ; И◌̄; ) CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3;04E3;0438 0304;04E3;0438 0304; # (ӣ; ӣ; и◌̄; ӣ; и◌̄; ) CYRILLIC SMALL LETTER I WITH MACRON
+04E4;04E4;0418 0308;04E4;0418 0308; # (Ӥ; Ӥ; И◌̈; Ӥ; И◌̈; ) CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5;04E5;0438 0308;04E5;0438 0308; # (ӥ; ӥ; и◌̈; ӥ; и◌̈; ) CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6;04E6;041E 0308;04E6;041E 0308; # (Ӧ; Ӧ; О◌̈; Ӧ; О◌̈; ) CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7;04E7;043E 0308;04E7;043E 0308; # (ӧ; ӧ; о◌̈; ӧ; о◌̈; ) CYRILLIC SMALL LETTER O WITH DIAERESIS
+04EA;04EA;04E8 0308;04EA;04E8 0308; # (Ӫ; Ӫ; Ө◌̈; Ӫ; Ө◌̈; ) CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB;04EB;04E9 0308;04EB;04E9 0308; # (ӫ; ӫ; ө◌̈; ӫ; ө◌̈; ) CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC;04EC;042D 0308;04EC;042D 0308; # (Ӭ; Ӭ; Э◌̈; Ӭ; Э◌̈; ) CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED;04ED;044D 0308;04ED;044D 0308; # (ӭ; ӭ; э◌̈; ӭ; э◌̈; ) CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE;04EE;0423 0304;04EE;0423 0304; # (Ӯ; Ӯ; У◌̄; Ӯ; У◌̄; ) CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF;04EF;0443 0304;04EF;0443 0304; # (ӯ; ӯ; у◌̄; ӯ; у◌̄; ) CYRILLIC SMALL LETTER U WITH MACRON
+04F0;04F0;0423 0308;04F0;0423 0308; # (Ӱ; Ӱ; У◌̈; Ӱ; У◌̈; ) CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1;04F1;0443 0308;04F1;0443 0308; # (ӱ; ӱ; у◌̈; ӱ; у◌̈; ) CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2;04F2;0423 030B;04F2;0423 030B; # (Ӳ; Ӳ; У◌̋; Ӳ; У◌̋; ) CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3;04F3;0443 030B;04F3;0443 030B; # (ӳ; ӳ; у◌̋; ӳ; у◌̋; ) CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4;04F4;0427 0308;04F4;0427 0308; # (Ӵ; Ӵ; Ч◌̈; Ӵ; Ч◌̈; ) CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5;04F5;0447 0308;04F5;0447 0308; # (ӵ; ӵ; ч◌̈; ӵ; ч◌̈; ) CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F8;04F8;042B 0308;04F8;042B 0308; # (Ӹ; Ӹ; Ы◌̈; Ӹ; Ы◌̈; ) CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9;04F9;044B 0308;04F9;044B 0308; # (ӹ; ӹ; ы◌̈; ӹ; ы◌̈; ) CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+0587;0587;0587;0565 0582;0565 0582; # (և; և; և; եւ; եւ; ) ARMENIAN SMALL LIGATURE ECH YIWN
+0622;0622;0627 0653;0622;0627 0653; # (آ; آ; ا◌ٓ; آ; ا◌ٓ; ) ARABIC LETTER ALEF WITH MADDA ABOVE
+0623;0623;0627 0654;0623;0627 0654; # (أ; أ; ا◌ٔ; أ; ا◌ٔ; ) ARABIC LETTER ALEF WITH HAMZA ABOVE
+0624;0624;0648 0654;0624;0648 0654; # (ؤ; ؤ; و◌ٔ; ؤ; و◌ٔ; ) ARABIC LETTER WAW WITH HAMZA ABOVE
+0625;0625;0627 0655;0625;0627 0655; # (إ; إ; ا◌ٕ; إ; ا◌ٕ; ) ARABIC LETTER ALEF WITH HAMZA BELOW
+0626;0626;064A 0654;0626;064A 0654; # (ئ; ئ; ي◌ٔ; ئ; ي◌ٔ; ) ARABIC LETTER YEH WITH HAMZA ABOVE
+0675;0675;0675;0627 0674;0627 0674; # (ٵ; ٵ; ٵ; اٴ; اٴ; ) ARABIC LETTER HIGH HAMZA ALEF
+0676;0676;0676;0648 0674;0648 0674; # (ٶ; ٶ; ٶ; وٴ; وٴ; ) ARABIC LETTER HIGH HAMZA WAW
+0677;0677;0677;06C7 0674;06C7 0674; # (ٷ; ٷ; ٷ; ۇٴ; ۇٴ; ) ARABIC LETTER U WITH HAMZA ABOVE
+0678;0678;0678;064A 0674;064A 0674; # (ٸ; ٸ; ٸ; يٴ; يٴ; ) ARABIC LETTER HIGH HAMZA YEH
+06C0;06C0;06D5 0654;06C0;06D5 0654; # (ۀ; ۀ; ە◌ٔ; ۀ; ە◌ٔ; ) ARABIC LETTER HEH WITH YEH ABOVE
+06C2;06C2;06C1 0654;06C2;06C1 0654; # (ۂ; ۂ; ہ◌ٔ; ۂ; ہ◌ٔ; ) ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06D3;06D3;06D2 0654;06D3;06D2 0654; # (ۓ; ۓ; ے◌ٔ; ۓ; ے◌ٔ; ) ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+0929;0929;0928 093C;0929;0928 093C; # (ऩ; ऩ; न◌़; ऩ; न◌़; ) DEVANAGARI LETTER NNNA
+0931;0931;0930 093C;0931;0930 093C; # (ऱ; ऱ; र◌़; ऱ; र◌़; ) DEVANAGARI LETTER RRA
+0934;0934;0933 093C;0934;0933 093C; # (ऴ; ऴ; ळ◌़; ऴ; ळ◌़; ) DEVANAGARI LETTER LLLA
+0958;0915 093C;0915 093C;0915 093C;0915 093C; # (क़; क◌़; क◌़; क◌़; क◌़; ) DEVANAGARI LETTER QA
+0959;0916 093C;0916 093C;0916 093C;0916 093C; # (ख़; ख◌़; ख◌़; ख◌़; ख◌़; ) DEVANAGARI LETTER KHHA
+095A;0917 093C;0917 093C;0917 093C;0917 093C; # (ग़; ग◌़; ग◌़; ग◌़; ग◌़; ) DEVANAGARI LETTER GHHA
+095B;091C 093C;091C 093C;091C 093C;091C 093C; # (ज़; ज◌़; ज◌़; ज◌़; ज◌़; ) DEVANAGARI LETTER ZA
+095C;0921 093C;0921 093C;0921 093C;0921 093C; # (ड़; ड◌़; ड◌़; ड◌़; ड◌़; ) DEVANAGARI LETTER DDDHA
+095D;0922 093C;0922 093C;0922 093C;0922 093C; # (ढ़; ढ◌़; ढ◌़; ढ◌़; ढ◌़; ) DEVANAGARI LETTER RHA
+095E;092B 093C;092B 093C;092B 093C;092B 093C; # (फ़; फ◌़; फ◌़; फ◌़; फ◌़; ) DEVANAGARI LETTER FA
+095F;092F 093C;092F 093C;092F 093C;092F 093C; # (य़; य◌़; य◌़; य◌़; य◌़; ) DEVANAGARI LETTER YYA
+09CB;09CB;09C7 09BE;09CB;09C7 09BE; # (ো; ো; ো; ো; ো; ) BENGALI VOWEL SIGN O
+09CC;09CC;09C7 09D7;09CC;09C7 09D7; # (ৌ; ৌ; ৌ; ৌ; ৌ; ) BENGALI VOWEL SIGN AU
+09DC;09A1 09BC;09A1 09BC;09A1 09BC;09A1 09BC; # (ড়; ড◌়; ড◌়; ড◌়; ড◌়; ) BENGALI LETTER RRA
+09DD;09A2 09BC;09A2 09BC;09A2 09BC;09A2 09BC; # (ঢ়; ঢ◌়; ঢ◌়; ঢ◌়; ঢ◌়; ) BENGALI LETTER RHA
+09DF;09AF 09BC;09AF 09BC;09AF 09BC;09AF 09BC; # (য়; য◌়; য◌়; য◌়; য◌়; ) BENGALI LETTER YYA
+0A33;0A32 0A3C;0A32 0A3C;0A32 0A3C;0A32 0A3C; # (ਲ਼; ਲ◌਼; ਲ◌਼; ਲ◌਼; ਲ◌਼; ) GURMUKHI LETTER LLA
+0A36;0A38 0A3C;0A38 0A3C;0A38 0A3C;0A38 0A3C; # (ਸ਼; ਸ◌਼; ਸ◌਼; ਸ◌਼; ਸ◌਼; ) GURMUKHI LETTER SHA
+0A59;0A16 0A3C;0A16 0A3C;0A16 0A3C;0A16 0A3C; # (ਖ਼; ਖ◌਼; ਖ◌਼; ਖ◌਼; ਖ◌਼; ) GURMUKHI LETTER KHHA
+0A5A;0A17 0A3C;0A17 0A3C;0A17 0A3C;0A17 0A3C; # (ਗ਼; ਗ◌਼; ਗ◌਼; ਗ◌਼; ਗ◌਼; ) GURMUKHI LETTER GHHA
+0A5B;0A1C 0A3C;0A1C 0A3C;0A1C 0A3C;0A1C 0A3C; # (ਜ਼; ਜ◌਼; ਜ◌਼; ਜ◌਼; ਜ◌਼; ) GURMUKHI LETTER ZA
+0A5E;0A2B 0A3C;0A2B 0A3C;0A2B 0A3C;0A2B 0A3C; # (ਫ਼; ਫ◌਼; ਫ◌਼; ਫ◌਼; ਫ◌਼; ) GURMUKHI LETTER FA
+0B48;0B48;0B47 0B56;0B48;0B47 0B56; # (ୈ; ୈ; େ◌ୖ; ୈ; େ◌ୖ; ) ORIYA VOWEL SIGN AI
+0B4B;0B4B;0B47 0B3E;0B4B;0B47 0B3E; # (ୋ; ୋ; ୋ; ୋ; ୋ; ) ORIYA VOWEL SIGN O
+0B4C;0B4C;0B47 0B57;0B4C;0B47 0B57; # (ୌ; ୌ; ୌ; ୌ; ୌ; ) ORIYA VOWEL SIGN AU
+0B5C;0B21 0B3C;0B21 0B3C;0B21 0B3C;0B21 0B3C; # (ଡ଼; ଡ◌଼; ଡ◌଼; ଡ◌଼; ଡ◌଼; ) ORIYA LETTER RRA
+0B5D;0B22 0B3C;0B22 0B3C;0B22 0B3C;0B22 0B3C; # (ଢ଼; ଢ◌଼; ଢ◌଼; ଢ◌଼; ଢ◌଼; ) ORIYA LETTER RHA
+0B94;0B94;0B92 0BD7;0B94;0B92 0BD7; # (ஔ; ஔ; ஔ; ஔ; ஔ; ) TAMIL LETTER AU
+0BCA;0BCA;0BC6 0BBE;0BCA;0BC6 0BBE; # (ொ; ொ; ொ; ொ; ொ; ) TAMIL VOWEL SIGN O
+0BCB;0BCB;0BC7 0BBE;0BCB;0BC7 0BBE; # (ோ; ோ; ோ; ோ; ோ; ) TAMIL VOWEL SIGN OO
+0BCC;0BCC;0BC6 0BD7;0BCC;0BC6 0BD7; # (ௌ; ௌ; ௌ; ௌ; ௌ; ) TAMIL VOWEL SIGN AU
+0C48;0C48;0C46 0C56;0C48;0C46 0C56; # (◌ై; ◌ై; ◌ె◌ౖ; ◌ై; ◌ె◌ౖ; ) TELUGU VOWEL SIGN AI
+0CC0;0CC0;0CBF 0CD5;0CC0;0CBF 0CD5; # (ೀ; ೀ; ◌ೀ; ೀ; ◌ೀ; ) KANNADA VOWEL SIGN II
+0CC7;0CC7;0CC6 0CD5;0CC7;0CC6 0CD5; # (ೇ; ೇ; ◌ೇ; ೇ; ◌ೇ; ) KANNADA VOWEL SIGN EE
+0CC8;0CC8;0CC6 0CD6;0CC8;0CC6 0CD6; # (ೈ; ೈ; ◌ೈ; ೈ; ◌ೈ; ) KANNADA VOWEL SIGN AI
+0CCA;0CCA;0CC6 0CC2;0CCA;0CC6 0CC2; # (ೊ; ೊ; ◌ೊ; ೊ; ◌ೊ; ) KANNADA VOWEL SIGN O
+0CCB;0CCB;0CC6 0CC2 0CD5;0CCB;0CC6 0CC2 0CD5; # (ೋ; ೋ; ◌ೋ; ೋ; ◌ೋ; ) KANNADA VOWEL SIGN OO
+0D4A;0D4A;0D46 0D3E;0D4A;0D46 0D3E; # (ൊ; ൊ; ൊ; ൊ; ൊ; ) MALAYALAM VOWEL SIGN O
+0D4B;0D4B;0D47 0D3E;0D4B;0D47 0D3E; # (ോ; ോ; ോ; ോ; ോ; ) MALAYALAM VOWEL SIGN OO
+0D4C;0D4C;0D46 0D57;0D4C;0D46 0D57; # (ൌ; ൌ; ൌ; ൌ; ൌ; ) MALAYALAM VOWEL SIGN AU
+0DDA;0DDA;0DD9 0DCA;0DDA;0DD9 0DCA; # (ේ; ේ; ෙ◌්; ේ; ෙ◌්; ) SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDC;0DDC;0DD9 0DCF;0DDC;0DD9 0DCF; # (ො; ො; ො; ො; ො; ) SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDD;0DDD;0DD9 0DCF 0DCA;0DDD;0DD9 0DCF 0DCA; # (ෝ; ෝ; ො◌්; ෝ; ො◌්; ) SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDE;0DDE;0DD9 0DDF;0DDE;0DD9 0DDF; # (ෞ; ෞ; ෞ; ෞ; ෞ; ) SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0E33;0E33;0E33;0E4D 0E32;0E4D 0E32; # (ำ; ำ; ำ; ◌ํา; ◌ํา; ) THAI CHARACTER SARA AM
+0EB3;0EB3;0EB3;0ECD 0EB2;0ECD 0EB2; # (ຳ; ຳ; ຳ; ◌ໍາ; ◌ໍາ; ) LAO VOWEL SIGN AM
+0EDC;0EDC;0EDC;0EAB 0E99;0EAB 0E99; # (ໜ; ໜ; ໜ; ຫນ; ຫນ; ) LAO HO NO
+0EDD;0EDD;0EDD;0EAB 0EA1;0EAB 0EA1; # (ໝ; ໝ; ໝ; ຫມ; ຫມ; ) LAO HO MO
+0F0C;0F0C;0F0C;0F0B;0F0B; # (༌; ༌; ༌; ་; ་; ) TIBETAN MARK DELIMITER TSHEG BSTAR
+0F43;0F42 0FB7;0F42 0FB7;0F42 0FB7;0F42 0FB7; # (གྷ; ག◌ྷ; ག◌ྷ; ག◌ྷ; ག◌ྷ; ) TIBETAN LETTER GHA
+0F4D;0F4C 0FB7;0F4C 0FB7;0F4C 0FB7;0F4C 0FB7; # (ཌྷ; ཌ◌ྷ; ཌ◌ྷ; ཌ◌ྷ; ཌ◌ྷ; ) TIBETAN LETTER DDHA
+0F52;0F51 0FB7;0F51 0FB7;0F51 0FB7;0F51 0FB7; # (དྷ; ད◌ྷ; ད◌ྷ; ད◌ྷ; ད◌ྷ; ) TIBETAN LETTER DHA
+0F57;0F56 0FB7;0F56 0FB7;0F56 0FB7;0F56 0FB7; # (བྷ; བ◌ྷ; བ◌ྷ; བ◌ྷ; བ◌ྷ; ) TIBETAN LETTER BHA
+0F5C;0F5B 0FB7;0F5B 0FB7;0F5B 0FB7;0F5B 0FB7; # (ཛྷ; ཛ◌ྷ; ཛ◌ྷ; ཛ◌ྷ; ཛ◌ྷ; ) TIBETAN LETTER DZHA
+0F69;0F40 0FB5;0F40 0FB5;0F40 0FB5;0F40 0FB5; # (ཀྵ; ཀ◌ྵ; ཀ◌ྵ; ཀ◌ྵ; ཀ◌ྵ; ) TIBETAN LETTER KSSA
+0F73;0F71 0F72;0F71 0F72;0F71 0F72;0F71 0F72; # (◌ཱི; ◌ཱ◌ི; ◌ཱ◌ི; ◌ཱ◌ི; ◌ཱ◌ི; ) TIBETAN VOWEL SIGN II
+0F75;0F71 0F74;0F71 0F74;0F71 0F74;0F71 0F74; # (◌ཱུ; ◌ཱ◌ུ; ◌ཱ◌ུ; ◌ཱ◌ུ; ◌ཱ◌ུ; ) TIBETAN VOWEL SIGN UU
+0F76;0FB2 0F80;0FB2 0F80;0FB2 0F80;0FB2 0F80; # (◌ྲྀ; ◌ྲ◌ྀ; ◌ྲ◌ྀ; ◌ྲ◌ྀ; ◌ྲ◌ྀ; ) TIBETAN VOWEL SIGN VOCALIC R
+0F77;0F77;0F77;0FB2 0F71 0F80;0FB2 0F71 0F80; # (◌ཷ; ◌ཷ; ◌ཷ; ◌ྲ◌ཱ◌ྀ; ◌ྲ◌ཱ◌ྀ; ) TIBETAN VOWEL SIGN VOCALIC RR
+0F78;0FB3 0F80;0FB3 0F80;0FB3 0F80;0FB3 0F80; # (◌ླྀ; ◌ླ◌ྀ; ◌ླ◌ྀ; ◌ླ◌ྀ; ◌ླ◌ྀ; ) TIBETAN VOWEL SIGN VOCALIC L
+0F79;0F79;0F79;0FB3 0F71 0F80;0FB3 0F71 0F80; # (◌ཹ; ◌ཹ; ◌ཹ; ◌ླ◌ཱ◌ྀ; ◌ླ◌ཱ◌ྀ; ) TIBETAN VOWEL SIGN VOCALIC LL
+0F81;0F71 0F80;0F71 0F80;0F71 0F80;0F71 0F80; # (◌ཱྀ; ◌ཱ◌ྀ; ◌ཱ◌ྀ; ◌ཱ◌ྀ; ◌ཱ◌ྀ; ) TIBETAN VOWEL SIGN REVERSED II
+0F93;0F92 0FB7;0F92 0FB7;0F92 0FB7;0F92 0FB7; # (◌ྒྷ; ◌ྒ◌ྷ; ◌ྒ◌ྷ; ◌ྒ◌ྷ; ◌ྒ◌ྷ; ) TIBETAN SUBJOINED LETTER GHA
+0F9D;0F9C 0FB7;0F9C 0FB7;0F9C 0FB7;0F9C 0FB7; # (◌ྜྷ; ◌ྜ◌ྷ; ◌ྜ◌ྷ; ◌ྜ◌ྷ; ◌ྜ◌ྷ; ) TIBETAN SUBJOINED LETTER DDHA
+0FA2;0FA1 0FB7;0FA1 0FB7;0FA1 0FB7;0FA1 0FB7; # (◌ྡྷ; ◌ྡ◌ྷ; ◌ྡ◌ྷ; ◌ྡ◌ྷ; ◌ྡ◌ྷ; ) TIBETAN SUBJOINED LETTER DHA
+0FA7;0FA6 0FB7;0FA6 0FB7;0FA6 0FB7;0FA6 0FB7; # (◌ྦྷ; ◌ྦ◌ྷ; ◌ྦ◌ྷ; ◌ྦ◌ྷ; ◌ྦ◌ྷ; ) TIBETAN SUBJOINED LETTER BHA
+0FAC;0FAB 0FB7;0FAB 0FB7;0FAB 0FB7;0FAB 0FB7; # (◌ྫྷ; ◌ྫ◌ྷ; ◌ྫ◌ྷ; ◌ྫ◌ྷ; ◌ྫ◌ྷ; ) TIBETAN SUBJOINED LETTER DZHA
+0FB9;0F90 0FB5;0F90 0FB5;0F90 0FB5;0F90 0FB5; # (◌ྐྵ; ◌ྐ◌ྵ; ◌ྐ◌ྵ; ◌ྐ◌ྵ; ◌ྐ◌ྵ; ) TIBETAN SUBJOINED LETTER KSSA
+1026;1026;1025 102E;1026;1025 102E; # (ဦ; ဦ; ဥ◌ီ; ဦ; ဥ◌ီ; ) MYANMAR LETTER UU
+10FC;10FC;10FC;10DC;10DC; # (ჼ; ჼ; ჼ; ნ; ნ; ) MODIFIER LETTER GEORGIAN NAR
+1B06;1B06;1B05 1B35;1B06;1B05 1B35; # (ᬆ; ᬆ; ᬆ; ᬆ; ᬆ; ) BALINESE LETTER AKARA TEDUNG
+1B08;1B08;1B07 1B35;1B08;1B07 1B35; # (ᬈ; ᬈ; ᬈ; ᬈ; ᬈ; ) BALINESE LETTER IKARA TEDUNG
+1B0A;1B0A;1B09 1B35;1B0A;1B09 1B35; # (ᬊ; ᬊ; ᬊ; ᬊ; ᬊ; ) BALINESE LETTER UKARA TEDUNG
+1B0C;1B0C;1B0B 1B35;1B0C;1B0B 1B35; # (ᬌ; ᬌ; ᬌ; ᬌ; ᬌ; ) BALINESE LETTER RA REPA TEDUNG
+1B0E;1B0E;1B0D 1B35;1B0E;1B0D 1B35; # (ᬎ; ᬎ; ᬎ; ᬎ; ᬎ; ) BALINESE LETTER LA LENGA TEDUNG
+1B12;1B12;1B11 1B35;1B12;1B11 1B35; # (ᬒ; ᬒ; ᬒ; ᬒ; ᬒ; ) BALINESE LETTER OKARA TEDUNG
+1B3B;1B3B;1B3A 1B35;1B3B;1B3A 1B35; # (ᬻ; ᬻ; ◌ᬻ; ᬻ; ◌ᬻ; ) BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D;1B3D;1B3C 1B35;1B3D;1B3C 1B35; # (ᬽ; ᬽ; ◌ᬽ; ᬽ; ◌ᬽ; ) BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B40;1B40;1B3E 1B35;1B40;1B3E 1B35; # (ᭀ; ᭀ; ᭀ; ᭀ; ᭀ; ) BALINESE VOWEL SIGN TALING TEDUNG
+1B41;1B41;1B3F 1B35;1B41;1B3F 1B35; # (ᭁ; ᭁ; ᭁ; ᭁ; ᭁ; ) BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43;1B43;1B42 1B35;1B43;1B42 1B35; # (ᭃ; ᭃ; ◌ᭃ; ᭃ; ◌ᭃ; ) BALINESE VOWEL SIGN PEPET TEDUNG
+1D2C;1D2C;1D2C;0041;0041; # (ᴬ; ᴬ; ᴬ; A; A; ) MODIFIER LETTER CAPITAL A
+1D2D;1D2D;1D2D;00C6;00C6; # (ᴭ; ᴭ; ᴭ; Æ; Æ; ) MODIFIER LETTER CAPITAL AE
+1D2E;1D2E;1D2E;0042;0042; # (ᴮ; ᴮ; ᴮ; B; B; ) MODIFIER LETTER CAPITAL B
+1D30;1D30;1D30;0044;0044; # (ᴰ; ᴰ; ᴰ; D; D; ) MODIFIER LETTER CAPITAL D
+1D31;1D31;1D31;0045;0045; # (ᴱ; ᴱ; ᴱ; E; E; ) MODIFIER LETTER CAPITAL E
+1D32;1D32;1D32;018E;018E; # (ᴲ; ᴲ; ᴲ; Ǝ; Ǝ; ) MODIFIER LETTER CAPITAL REVERSED E
+1D33;1D33;1D33;0047;0047; # (ᴳ; ᴳ; ᴳ; G; G; ) MODIFIER LETTER CAPITAL G
+1D34;1D34;1D34;0048;0048; # (ᴴ; ᴴ; ᴴ; H; H; ) MODIFIER LETTER CAPITAL H
+1D35;1D35;1D35;0049;0049; # (ᴵ; ᴵ; ᴵ; I; I; ) MODIFIER LETTER CAPITAL I
+1D36;1D36;1D36;004A;004A; # (ᴶ; ᴶ; ᴶ; J; J; ) MODIFIER LETTER CAPITAL J
+1D37;1D37;1D37;004B;004B; # (ᴷ; ᴷ; ᴷ; K; K; ) MODIFIER LETTER CAPITAL K
+1D38;1D38;1D38;004C;004C; # (ᴸ; ᴸ; ᴸ; L; L; ) MODIFIER LETTER CAPITAL L
+1D39;1D39;1D39;004D;004D; # (ᴹ; ᴹ; ᴹ; M; M; ) MODIFIER LETTER CAPITAL M
+1D3A;1D3A;1D3A;004E;004E; # (ᴺ; ᴺ; ᴺ; N; N; ) MODIFIER LETTER CAPITAL N
+1D3C;1D3C;1D3C;004F;004F; # (ᴼ; ᴼ; ᴼ; O; O; ) MODIFIER LETTER CAPITAL O
+1D3D;1D3D;1D3D;0222;0222; # (ᴽ; ᴽ; ᴽ; Ȣ; Ȣ; ) MODIFIER LETTER CAPITAL OU
+1D3E;1D3E;1D3E;0050;0050; # (ᴾ; ᴾ; ᴾ; P; P; ) MODIFIER LETTER CAPITAL P
+1D3F;1D3F;1D3F;0052;0052; # (ᴿ; ᴿ; ᴿ; R; R; ) MODIFIER LETTER CAPITAL R
+1D40;1D40;1D40;0054;0054; # (ᵀ; ᵀ; ᵀ; T; T; ) MODIFIER LETTER CAPITAL T
+1D41;1D41;1D41;0055;0055; # (ᵁ; ᵁ; ᵁ; U; U; ) MODIFIER LETTER CAPITAL U
+1D42;1D42;1D42;0057;0057; # (ᵂ; ᵂ; ᵂ; W; W; ) MODIFIER LETTER CAPITAL W
+1D43;1D43;1D43;0061;0061; # (ᵃ; ᵃ; ᵃ; a; a; ) MODIFIER LETTER SMALL A
+1D44;1D44;1D44;0250;0250; # (ᵄ; ᵄ; ᵄ; ɐ; ɐ; ) MODIFIER LETTER SMALL TURNED A
+1D45;1D45;1D45;0251;0251; # (ᵅ; ᵅ; ᵅ; ɑ; ɑ; ) MODIFIER LETTER SMALL ALPHA
+1D46;1D46;1D46;1D02;1D02; # (ᵆ; ᵆ; ᵆ; ᴂ; ᴂ; ) MODIFIER LETTER SMALL TURNED AE
+1D47;1D47;1D47;0062;0062; # (ᵇ; ᵇ; ᵇ; b; b; ) MODIFIER LETTER SMALL B
+1D48;1D48;1D48;0064;0064; # (ᵈ; ᵈ; ᵈ; d; d; ) MODIFIER LETTER SMALL D
+1D49;1D49;1D49;0065;0065; # (ᵉ; ᵉ; ᵉ; e; e; ) MODIFIER LETTER SMALL E
+1D4A;1D4A;1D4A;0259;0259; # (ᵊ; ᵊ; ᵊ; ə; ə; ) MODIFIER LETTER SMALL SCHWA
+1D4B;1D4B;1D4B;025B;025B; # (ᵋ; ᵋ; ᵋ; ɛ; ɛ; ) MODIFIER LETTER SMALL OPEN E
+1D4C;1D4C;1D4C;025C;025C; # (ᵌ; ᵌ; ᵌ; ɜ; ɜ; ) MODIFIER LETTER SMALL TURNED OPEN E
+1D4D;1D4D;1D4D;0067;0067; # (ᵍ; ᵍ; ᵍ; g; g; ) MODIFIER LETTER SMALL G
+1D4F;1D4F;1D4F;006B;006B; # (ᵏ; ᵏ; ᵏ; k; k; ) MODIFIER LETTER SMALL K
+1D50;1D50;1D50;006D;006D; # (ᵐ; ᵐ; ᵐ; m; m; ) MODIFIER LETTER SMALL M
+1D51;1D51;1D51;014B;014B; # (ᵑ; ᵑ; ᵑ; ŋ; ŋ; ) MODIFIER LETTER SMALL ENG
+1D52;1D52;1D52;006F;006F; # (ᵒ; ᵒ; ᵒ; o; o; ) MODIFIER LETTER SMALL O
+1D53;1D53;1D53;0254;0254; # (ᵓ; ᵓ; ᵓ; ɔ; ɔ; ) MODIFIER LETTER SMALL OPEN O
+1D54;1D54;1D54;1D16;1D16; # (ᵔ; ᵔ; ᵔ; ᴖ; ᴖ; ) MODIFIER LETTER SMALL TOP HALF O
+1D55;1D55;1D55;1D17;1D17; # (ᵕ; ᵕ; ᵕ; ᴗ; ᴗ; ) MODIFIER LETTER SMALL BOTTOM HALF O
+1D56;1D56;1D56;0070;0070; # (ᵖ; ᵖ; ᵖ; p; p; ) MODIFIER LETTER SMALL P
+1D57;1D57;1D57;0074;0074; # (ᵗ; ᵗ; ᵗ; t; t; ) MODIFIER LETTER SMALL T
+1D58;1D58;1D58;0075;0075; # (ᵘ; ᵘ; ᵘ; u; u; ) MODIFIER LETTER SMALL U
+1D59;1D59;1D59;1D1D;1D1D; # (ᵙ; ᵙ; ᵙ; ᴝ; ᴝ; ) MODIFIER LETTER SMALL SIDEWAYS U
+1D5A;1D5A;1D5A;026F;026F; # (ᵚ; ᵚ; ᵚ; ɯ; ɯ; ) MODIFIER LETTER SMALL TURNED M
+1D5B;1D5B;1D5B;0076;0076; # (ᵛ; ᵛ; ᵛ; v; v; ) MODIFIER LETTER SMALL V
+1D5C;1D5C;1D5C;1D25;1D25; # (ᵜ; ᵜ; ᵜ; ᴥ; ᴥ; ) MODIFIER LETTER SMALL AIN
+1D5D;1D5D;1D5D;03B2;03B2; # (ᵝ; ᵝ; ᵝ; β; β; ) MODIFIER LETTER SMALL BETA
+1D5E;1D5E;1D5E;03B3;03B3; # (ᵞ; ᵞ; ᵞ; γ; γ; ) MODIFIER LETTER SMALL GREEK GAMMA
+1D5F;1D5F;1D5F;03B4;03B4; # (ᵟ; ᵟ; ᵟ; δ; δ; ) MODIFIER LETTER SMALL DELTA
+1D60;1D60;1D60;03C6;03C6; # (ᵠ; ᵠ; ᵠ; φ; φ; ) MODIFIER LETTER SMALL GREEK PHI
+1D61;1D61;1D61;03C7;03C7; # (ᵡ; ᵡ; ᵡ; χ; χ; ) MODIFIER LETTER SMALL CHI
+1D62;1D62;1D62;0069;0069; # (ᵢ; ᵢ; ᵢ; i; i; ) LATIN SUBSCRIPT SMALL LETTER I
+1D63;1D63;1D63;0072;0072; # (ᵣ; ᵣ; ᵣ; r; r; ) LATIN SUBSCRIPT SMALL LETTER R
+1D64;1D64;1D64;0075;0075; # (ᵤ; ᵤ; ᵤ; u; u; ) LATIN SUBSCRIPT SMALL LETTER U
+1D65;1D65;1D65;0076;0076; # (ᵥ; ᵥ; ᵥ; v; v; ) LATIN SUBSCRIPT SMALL LETTER V
+1D66;1D66;1D66;03B2;03B2; # (ᵦ; ᵦ; ᵦ; β; β; ) GREEK SUBSCRIPT SMALL LETTER BETA
+1D67;1D67;1D67;03B3;03B3; # (ᵧ; ᵧ; ᵧ; γ; γ; ) GREEK SUBSCRIPT SMALL LETTER GAMMA
+1D68;1D68;1D68;03C1;03C1; # (ᵨ; ᵨ; ᵨ; ρ; ρ; ) GREEK SUBSCRIPT SMALL LETTER RHO
+1D69;1D69;1D69;03C6;03C6; # (ᵩ; ᵩ; ᵩ; φ; φ; ) GREEK SUBSCRIPT SMALL LETTER PHI
+1D6A;1D6A;1D6A;03C7;03C7; # (ᵪ; ᵪ; ᵪ; χ; χ; ) GREEK SUBSCRIPT SMALL LETTER CHI
+1D78;1D78;1D78;043D;043D; # (ᵸ; ᵸ; ᵸ; н; н; ) MODIFIER LETTER CYRILLIC EN
+1D9B;1D9B;1D9B;0252;0252; # (ᶛ; ᶛ; ᶛ; ɒ; ɒ; ) MODIFIER LETTER SMALL TURNED ALPHA
+1D9C;1D9C;1D9C;0063;0063; # (ᶜ; ᶜ; ᶜ; c; c; ) MODIFIER LETTER SMALL C
+1D9D;1D9D;1D9D;0255;0255; # (ᶝ; ᶝ; ᶝ; ɕ; ɕ; ) MODIFIER LETTER SMALL C WITH CURL
+1D9E;1D9E;1D9E;00F0;00F0; # (ᶞ; ᶞ; ᶞ; ð; ð; ) MODIFIER LETTER SMALL ETH
+1D9F;1D9F;1D9F;025C;025C; # (ᶟ; ᶟ; ᶟ; ɜ; ɜ; ) MODIFIER LETTER SMALL REVERSED OPEN E
+1DA0;1DA0;1DA0;0066;0066; # (ᶠ; ᶠ; ᶠ; f; f; ) MODIFIER LETTER SMALL F
+1DA1;1DA1;1DA1;025F;025F; # (ᶡ; ᶡ; ᶡ; ɟ; ɟ; ) MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+1DA2;1DA2;1DA2;0261;0261; # (ᶢ; ᶢ; ᶢ; ɡ; ɡ; ) MODIFIER LETTER SMALL SCRIPT G
+1DA3;1DA3;1DA3;0265;0265; # (ᶣ; ᶣ; ᶣ; ɥ; ɥ; ) MODIFIER LETTER SMALL TURNED H
+1DA4;1DA4;1DA4;0268;0268; # (ᶤ; ᶤ; ᶤ; ɨ; ɨ; ) MODIFIER LETTER SMALL I WITH STROKE
+1DA5;1DA5;1DA5;0269;0269; # (ᶥ; ᶥ; ᶥ; ɩ; ɩ; ) MODIFIER LETTER SMALL IOTA
+1DA6;1DA6;1DA6;026A;026A; # (ᶦ; ᶦ; ᶦ; ɪ; ɪ; ) MODIFIER LETTER SMALL CAPITAL I
+1DA7;1DA7;1DA7;1D7B;1D7B; # (ᶧ; ᶧ; ᶧ; ᵻ; ᵻ; ) MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+1DA8;1DA8;1DA8;029D;029D; # (ᶨ; ᶨ; ᶨ; ʝ; ʝ; ) MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+1DA9;1DA9;1DA9;026D;026D; # (ᶩ; ᶩ; ᶩ; ɭ; ɭ; ) MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+1DAA;1DAA;1DAA;1D85;1D85; # (ᶪ; ᶪ; ᶪ; ᶅ; ᶅ; ) MODIFIER LETTER SMALL L WITH PALATAL HOOK
+1DAB;1DAB;1DAB;029F;029F; # (ᶫ; ᶫ; ᶫ; ʟ; ʟ; ) MODIFIER LETTER SMALL CAPITAL L
+1DAC;1DAC;1DAC;0271;0271; # (ᶬ; ᶬ; ᶬ; ɱ; ɱ; ) MODIFIER LETTER SMALL M WITH HOOK
+1DAD;1DAD;1DAD;0270;0270; # (ᶭ; ᶭ; ᶭ; ɰ; ɰ; ) MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+1DAE;1DAE;1DAE;0272;0272; # (ᶮ; ᶮ; ᶮ; ɲ; ɲ; ) MODIFIER LETTER SMALL N WITH LEFT HOOK
+1DAF;1DAF;1DAF;0273;0273; # (ᶯ; ᶯ; ᶯ; ɳ; ɳ; ) MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+1DB0;1DB0;1DB0;0274;0274; # (ᶰ; ᶰ; ᶰ; ɴ; ɴ; ) MODIFIER LETTER SMALL CAPITAL N
+1DB1;1DB1;1DB1;0275;0275; # (ᶱ; ᶱ; ᶱ; ɵ; ɵ; ) MODIFIER LETTER SMALL BARRED O
+1DB2;1DB2;1DB2;0278;0278; # (ᶲ; ᶲ; ᶲ; ɸ; ɸ; ) MODIFIER LETTER SMALL PHI
+1DB3;1DB3;1DB3;0282;0282; # (ᶳ; ᶳ; ᶳ; ʂ; ʂ; ) MODIFIER LETTER SMALL S WITH HOOK
+1DB4;1DB4;1DB4;0283;0283; # (ᶴ; ᶴ; ᶴ; ʃ; ʃ; ) MODIFIER LETTER SMALL ESH
+1DB5;1DB5;1DB5;01AB;01AB; # (ᶵ; ᶵ; ᶵ; ƫ; ƫ; ) MODIFIER LETTER SMALL T WITH PALATAL HOOK
+1DB6;1DB6;1DB6;0289;0289; # (ᶶ; ᶶ; ᶶ; ʉ; ʉ; ) MODIFIER LETTER SMALL U BAR
+1DB7;1DB7;1DB7;028A;028A; # (ᶷ; ᶷ; ᶷ; ʊ; ʊ; ) MODIFIER LETTER SMALL UPSILON
+1DB8;1DB8;1DB8;1D1C;1D1C; # (ᶸ; ᶸ; ᶸ; ᴜ; ᴜ; ) MODIFIER LETTER SMALL CAPITAL U
+1DB9;1DB9;1DB9;028B;028B; # (ᶹ; ᶹ; ᶹ; ʋ; ʋ; ) MODIFIER LETTER SMALL V WITH HOOK
+1DBA;1DBA;1DBA;028C;028C; # (ᶺ; ᶺ; ᶺ; ʌ; ʌ; ) MODIFIER LETTER SMALL TURNED V
+1DBB;1DBB;1DBB;007A;007A; # (ᶻ; ᶻ; ᶻ; z; z; ) MODIFIER LETTER SMALL Z
+1DBC;1DBC;1DBC;0290;0290; # (ᶼ; ᶼ; ᶼ; ʐ; ʐ; ) MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+1DBD;1DBD;1DBD;0291;0291; # (ᶽ; ᶽ; ᶽ; ʑ; ʑ; ) MODIFIER LETTER SMALL Z WITH CURL
+1DBE;1DBE;1DBE;0292;0292; # (ᶾ; ᶾ; ᶾ; ʒ; ʒ; ) MODIFIER LETTER SMALL EZH
+1DBF;1DBF;1DBF;03B8;03B8; # (ᶿ; ᶿ; ᶿ; θ; θ; ) MODIFIER LETTER SMALL THETA
+1E00;1E00;0041 0325;1E00;0041 0325; # (Ḁ; Ḁ; A◌̥; Ḁ; A◌̥; ) LATIN CAPITAL LETTER A WITH RING BELOW
+1E01;1E01;0061 0325;1E01;0061 0325; # (ḁ; ḁ; a◌̥; ḁ; a◌̥; ) LATIN SMALL LETTER A WITH RING BELOW
+1E02;1E02;0042 0307;1E02;0042 0307; # (Ḃ; Ḃ; B◌̇; Ḃ; B◌̇; ) LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03;1E03;0062 0307;1E03;0062 0307; # (ḃ; ḃ; b◌̇; ḃ; b◌̇; ) LATIN SMALL LETTER B WITH DOT ABOVE
+1E04;1E04;0042 0323;1E04;0042 0323; # (Ḅ; Ḅ; B◌̣; Ḅ; B◌̣; ) LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05;1E05;0062 0323;1E05;0062 0323; # (ḅ; ḅ; b◌̣; ḅ; b◌̣; ) LATIN SMALL LETTER B WITH DOT BELOW
+1E06;1E06;0042 0331;1E06;0042 0331; # (Ḇ; Ḇ; B◌̱; Ḇ; B◌̱; ) LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07;1E07;0062 0331;1E07;0062 0331; # (ḇ; ḇ; b◌̱; ḇ; b◌̱; ) LATIN SMALL LETTER B WITH LINE BELOW
+1E08;1E08;0043 0327 0301;1E08;0043 0327 0301; # (Ḉ; Ḉ; C◌̧◌́; Ḉ; C◌̧◌́; ) LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09;1E09;0063 0327 0301;1E09;0063 0327 0301; # (ḉ; ḉ; c◌̧◌́; ḉ; c◌̧◌́; ) LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A;1E0A;0044 0307;1E0A;0044 0307; # (Ḋ; Ḋ; D◌̇; Ḋ; D◌̇; ) LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B;1E0B;0064 0307;1E0B;0064 0307; # (ḋ; ḋ; d◌̇; ḋ; d◌̇; ) LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C;1E0C;0044 0323;1E0C;0044 0323; # (Ḍ; Ḍ; D◌̣; Ḍ; D◌̣; ) LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D;1E0D;0064 0323;1E0D;0064 0323; # (ḍ; ḍ; d◌̣; ḍ; d◌̣; ) LATIN SMALL LETTER D WITH DOT BELOW
+1E0E;1E0E;0044 0331;1E0E;0044 0331; # (Ḏ; Ḏ; D◌̱; Ḏ; D◌̱; ) LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F;1E0F;0064 0331;1E0F;0064 0331; # (ḏ; ḏ; d◌̱; ḏ; d◌̱; ) LATIN SMALL LETTER D WITH LINE BELOW
+1E10;1E10;0044 0327;1E10;0044 0327; # (Ḑ; Ḑ; D◌̧; Ḑ; D◌̧; ) LATIN CAPITAL LETTER D WITH CEDILLA
+1E11;1E11;0064 0327;1E11;0064 0327; # (ḑ; ḑ; d◌̧; ḑ; d◌̧; ) LATIN SMALL LETTER D WITH CEDILLA
+1E12;1E12;0044 032D;1E12;0044 032D; # (Ḓ; Ḓ; D◌̭; Ḓ; D◌̭; ) LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13;1E13;0064 032D;1E13;0064 032D; # (ḓ; ḓ; d◌̭; ḓ; d◌̭; ) LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14;1E14;0045 0304 0300;1E14;0045 0304 0300; # (Ḕ; Ḕ; E◌̄◌̀; Ḕ; E◌̄◌̀; ) LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15;1E15;0065 0304 0300;1E15;0065 0304 0300; # (ḕ; ḕ; e◌̄◌̀; ḕ; e◌̄◌̀; ) LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16;1E16;0045 0304 0301;1E16;0045 0304 0301; # (Ḗ; Ḗ; E◌̄◌́; Ḗ; E◌̄◌́; ) LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17;1E17;0065 0304 0301;1E17;0065 0304 0301; # (ḗ; ḗ; e◌̄◌́; ḗ; e◌̄◌́; ) LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18;1E18;0045 032D;1E18;0045 032D; # (Ḙ; Ḙ; E◌̭; Ḙ; E◌̭; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19;1E19;0065 032D;1E19;0065 032D; # (ḙ; ḙ; e◌̭; ḙ; e◌̭; ) LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A;1E1A;0045 0330;1E1A;0045 0330; # (Ḛ; Ḛ; E◌̰; Ḛ; E◌̰; ) LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B;1E1B;0065 0330;1E1B;0065 0330; # (ḛ; ḛ; e◌̰; ḛ; e◌̰; ) LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C;1E1C;0045 0327 0306;1E1C;0045 0327 0306; # (Ḝ; Ḝ; E◌̧◌̆; Ḝ; E◌̧◌̆; ) LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D;1E1D;0065 0327 0306;1E1D;0065 0327 0306; # (ḝ; ḝ; e◌̧◌̆; ḝ; e◌̧◌̆; ) LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E;1E1E;0046 0307;1E1E;0046 0307; # (Ḟ; Ḟ; F◌̇; Ḟ; F◌̇; ) LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F;1E1F;0066 0307;1E1F;0066 0307; # (ḟ; ḟ; f◌̇; ḟ; f◌̇; ) LATIN SMALL LETTER F WITH DOT ABOVE
+1E20;1E20;0047 0304;1E20;0047 0304; # (Ḡ; Ḡ; G◌̄; Ḡ; G◌̄; ) LATIN CAPITAL LETTER G WITH MACRON
+1E21;1E21;0067 0304;1E21;0067 0304; # (ḡ; ḡ; g◌̄; ḡ; g◌̄; ) LATIN SMALL LETTER G WITH MACRON
+1E22;1E22;0048 0307;1E22;0048 0307; # (Ḣ; Ḣ; H◌̇; Ḣ; H◌̇; ) LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23;1E23;0068 0307;1E23;0068 0307; # (ḣ; ḣ; h◌̇; ḣ; h◌̇; ) LATIN SMALL LETTER H WITH DOT ABOVE
+1E24;1E24;0048 0323;1E24;0048 0323; # (Ḥ; Ḥ; H◌̣; Ḥ; H◌̣; ) LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25;1E25;0068 0323;1E25;0068 0323; # (ḥ; ḥ; h◌̣; ḥ; h◌̣; ) LATIN SMALL LETTER H WITH DOT BELOW
+1E26;1E26;0048 0308;1E26;0048 0308; # (Ḧ; Ḧ; H◌̈; Ḧ; H◌̈; ) LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27;1E27;0068 0308;1E27;0068 0308; # (ḧ; ḧ; h◌̈; ḧ; h◌̈; ) LATIN SMALL LETTER H WITH DIAERESIS
+1E28;1E28;0048 0327;1E28;0048 0327; # (Ḩ; Ḩ; H◌̧; Ḩ; H◌̧; ) LATIN CAPITAL LETTER H WITH CEDILLA
+1E29;1E29;0068 0327;1E29;0068 0327; # (ḩ; ḩ; h◌̧; ḩ; h◌̧; ) LATIN SMALL LETTER H WITH CEDILLA
+1E2A;1E2A;0048 032E;1E2A;0048 032E; # (Ḫ; Ḫ; H◌̮; Ḫ; H◌̮; ) LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B;1E2B;0068 032E;1E2B;0068 032E; # (ḫ; ḫ; h◌̮; ḫ; h◌̮; ) LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C;1E2C;0049 0330;1E2C;0049 0330; # (Ḭ; Ḭ; I◌̰; Ḭ; I◌̰; ) LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D;1E2D;0069 0330;1E2D;0069 0330; # (ḭ; ḭ; i◌̰; ḭ; i◌̰; ) LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E;1E2E;0049 0308 0301;1E2E;0049 0308 0301; # (Ḯ; Ḯ; I◌̈◌́; Ḯ; I◌̈◌́; ) LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F;1E2F;0069 0308 0301;1E2F;0069 0308 0301; # (ḯ; ḯ; i◌̈◌́; ḯ; i◌̈◌́; ) LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E30;1E30;004B 0301;1E30;004B 0301; # (Ḱ; Ḱ; K◌́; Ḱ; K◌́; ) LATIN CAPITAL LETTER K WITH ACUTE
+1E31;1E31;006B 0301;1E31;006B 0301; # (ḱ; ḱ; k◌́; ḱ; k◌́; ) LATIN SMALL LETTER K WITH ACUTE
+1E32;1E32;004B 0323;1E32;004B 0323; # (Ḳ; Ḳ; K◌̣; Ḳ; K◌̣; ) LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33;1E33;006B 0323;1E33;006B 0323; # (ḳ; ḳ; k◌̣; ḳ; k◌̣; ) LATIN SMALL LETTER K WITH DOT BELOW
+1E34;1E34;004B 0331;1E34;004B 0331; # (Ḵ; Ḵ; K◌̱; Ḵ; K◌̱; ) LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35;1E35;006B 0331;1E35;006B 0331; # (ḵ; ḵ; k◌̱; ḵ; k◌̱; ) LATIN SMALL LETTER K WITH LINE BELOW
+1E36;1E36;004C 0323;1E36;004C 0323; # (Ḷ; Ḷ; L◌̣; Ḷ; L◌̣; ) LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37;1E37;006C 0323;1E37;006C 0323; # (ḷ; ḷ; l◌̣; ḷ; l◌̣; ) LATIN SMALL LETTER L WITH DOT BELOW
+1E38;1E38;004C 0323 0304;1E38;004C 0323 0304; # (Ḹ; Ḹ; L◌̣◌̄; Ḹ; L◌̣◌̄; ) LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39;1E39;006C 0323 0304;1E39;006C 0323 0304; # (ḹ; ḹ; l◌̣◌̄; ḹ; l◌̣◌̄; ) LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A;1E3A;004C 0331;1E3A;004C 0331; # (Ḻ; Ḻ; L◌̱; Ḻ; L◌̱; ) LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B;1E3B;006C 0331;1E3B;006C 0331; # (ḻ; ḻ; l◌̱; ḻ; l◌̱; ) LATIN SMALL LETTER L WITH LINE BELOW
+1E3C;1E3C;004C 032D;1E3C;004C 032D; # (Ḽ; Ḽ; L◌̭; Ḽ; L◌̭; ) LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D;1E3D;006C 032D;1E3D;006C 032D; # (ḽ; ḽ; l◌̭; ḽ; l◌̭; ) LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E;1E3E;004D 0301;1E3E;004D 0301; # (Ḿ; Ḿ; M◌́; Ḿ; M◌́; ) LATIN CAPITAL LETTER M WITH ACUTE
+1E3F;1E3F;006D 0301;1E3F;006D 0301; # (ḿ; ḿ; m◌́; ḿ; m◌́; ) LATIN SMALL LETTER M WITH ACUTE
+1E40;1E40;004D 0307;1E40;004D 0307; # (Ṁ; Ṁ; M◌̇; Ṁ; M◌̇; ) LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41;1E41;006D 0307;1E41;006D 0307; # (ṁ; ṁ; m◌̇; ṁ; m◌̇; ) LATIN SMALL LETTER M WITH DOT ABOVE
+1E42;1E42;004D 0323;1E42;004D 0323; # (Ṃ; Ṃ; M◌̣; Ṃ; M◌̣; ) LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43;1E43;006D 0323;1E43;006D 0323; # (ṃ; ṃ; m◌̣; ṃ; m◌̣; ) LATIN SMALL LETTER M WITH DOT BELOW
+1E44;1E44;004E 0307;1E44;004E 0307; # (Ṅ; Ṅ; N◌̇; Ṅ; N◌̇; ) LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45;1E45;006E 0307;1E45;006E 0307; # (ṅ; ṅ; n◌̇; ṅ; n◌̇; ) LATIN SMALL LETTER N WITH DOT ABOVE
+1E46;1E46;004E 0323;1E46;004E 0323; # (Ṇ; Ṇ; N◌̣; Ṇ; N◌̣; ) LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47;1E47;006E 0323;1E47;006E 0323; # (ṇ; ṇ; n◌̣; ṇ; n◌̣; ) LATIN SMALL LETTER N WITH DOT BELOW
+1E48;1E48;004E 0331;1E48;004E 0331; # (Ṉ; Ṉ; N◌̱; Ṉ; N◌̱; ) LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49;1E49;006E 0331;1E49;006E 0331; # (ṉ; ṉ; n◌̱; ṉ; n◌̱; ) LATIN SMALL LETTER N WITH LINE BELOW
+1E4A;1E4A;004E 032D;1E4A;004E 032D; # (Ṋ; Ṋ; N◌̭; Ṋ; N◌̭; ) LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B;1E4B;006E 032D;1E4B;006E 032D; # (ṋ; ṋ; n◌̭; ṋ; n◌̭; ) LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C;1E4C;004F 0303 0301;1E4C;004F 0303 0301; # (Ṍ; Ṍ; O◌̃◌́; Ṍ; O◌̃◌́; ) LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D;1E4D;006F 0303 0301;1E4D;006F 0303 0301; # (ṍ; ṍ; o◌̃◌́; ṍ; o◌̃◌́; ) LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E;1E4E;004F 0303 0308;1E4E;004F 0303 0308; # (Ṏ; Ṏ; O◌̃◌̈; Ṏ; O◌̃◌̈; ) LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F;1E4F;006F 0303 0308;1E4F;006F 0303 0308; # (ṏ; ṏ; o◌̃◌̈; ṏ; o◌̃◌̈; ) LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E50;1E50;004F 0304 0300;1E50;004F 0304 0300; # (Ṑ; Ṑ; O◌̄◌̀; Ṑ; O◌̄◌̀; ) LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51;1E51;006F 0304 0300;1E51;006F 0304 0300; # (ṑ; ṑ; o◌̄◌̀; ṑ; o◌̄◌̀; ) LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52;1E52;004F 0304 0301;1E52;004F 0304 0301; # (Ṓ; Ṓ; O◌̄◌́; Ṓ; O◌̄◌́; ) LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53;1E53;006F 0304 0301;1E53;006F 0304 0301; # (ṓ; ṓ; o◌̄◌́; ṓ; o◌̄◌́; ) LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54;1E54;0050 0301;1E54;0050 0301; # (Ṕ; Ṕ; P◌́; Ṕ; P◌́; ) LATIN CAPITAL LETTER P WITH ACUTE
+1E55;1E55;0070 0301;1E55;0070 0301; # (ṕ; ṕ; p◌́; ṕ; p◌́; ) LATIN SMALL LETTER P WITH ACUTE
+1E56;1E56;0050 0307;1E56;0050 0307; # (Ṗ; Ṗ; P◌̇; Ṗ; P◌̇; ) LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57;1E57;0070 0307;1E57;0070 0307; # (ṗ; ṗ; p◌̇; ṗ; p◌̇; ) LATIN SMALL LETTER P WITH DOT ABOVE
+1E58;1E58;0052 0307;1E58;0052 0307; # (Ṙ; Ṙ; R◌̇; Ṙ; R◌̇; ) LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59;1E59;0072 0307;1E59;0072 0307; # (ṙ; ṙ; r◌̇; ṙ; r◌̇; ) LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A;1E5A;0052 0323;1E5A;0052 0323; # (Ṛ; Ṛ; R◌̣; Ṛ; R◌̣; ) LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B;1E5B;0072 0323;1E5B;0072 0323; # (ṛ; ṛ; r◌̣; ṛ; r◌̣; ) LATIN SMALL LETTER R WITH DOT BELOW
+1E5C;1E5C;0052 0323 0304;1E5C;0052 0323 0304; # (Ṝ; Ṝ; R◌̣◌̄; Ṝ; R◌̣◌̄; ) LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D;1E5D;0072 0323 0304;1E5D;0072 0323 0304; # (ṝ; ṝ; r◌̣◌̄; ṝ; r◌̣◌̄; ) LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E;1E5E;0052 0331;1E5E;0052 0331; # (Ṟ; Ṟ; R◌̱; Ṟ; R◌̱; ) LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F;1E5F;0072 0331;1E5F;0072 0331; # (ṟ; ṟ; r◌̱; ṟ; r◌̱; ) LATIN SMALL LETTER R WITH LINE BELOW
+1E60;1E60;0053 0307;1E60;0053 0307; # (Ṡ; Ṡ; S◌̇; Ṡ; S◌̇; ) LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61;1E61;0073 0307;1E61;0073 0307; # (ṡ; ṡ; s◌̇; ṡ; s◌̇; ) LATIN SMALL LETTER S WITH DOT ABOVE
+1E62;1E62;0053 0323;1E62;0053 0323; # (Ṣ; Ṣ; S◌̣; Ṣ; S◌̣; ) LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63;1E63;0073 0323;1E63;0073 0323; # (ṣ; ṣ; s◌̣; ṣ; s◌̣; ) LATIN SMALL LETTER S WITH DOT BELOW
+1E64;1E64;0053 0301 0307;1E64;0053 0301 0307; # (Ṥ; Ṥ; S◌́◌̇; Ṥ; S◌́◌̇; ) LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65;1E65;0073 0301 0307;1E65;0073 0301 0307; # (ṥ; ṥ; s◌́◌̇; ṥ; s◌́◌̇; ) LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66;1E66;0053 030C 0307;1E66;0053 030C 0307; # (Ṧ; Ṧ; S◌̌◌̇; Ṧ; S◌̌◌̇; ) LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67;1E67;0073 030C 0307;1E67;0073 030C 0307; # (ṧ; ṧ; s◌̌◌̇; ṧ; s◌̌◌̇; ) LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68;1E68;0053 0323 0307;1E68;0053 0323 0307; # (Ṩ; Ṩ; S◌̣◌̇; Ṩ; S◌̣◌̇; ) LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69;1E69;0073 0323 0307;1E69;0073 0323 0307; # (ṩ; ṩ; s◌̣◌̇; ṩ; s◌̣◌̇; ) LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A;1E6A;0054 0307;1E6A;0054 0307; # (Ṫ; Ṫ; T◌̇; Ṫ; T◌̇; ) LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B;1E6B;0074 0307;1E6B;0074 0307; # (ṫ; ṫ; t◌̇; ṫ; t◌̇; ) LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C;1E6C;0054 0323;1E6C;0054 0323; # (Ṭ; Ṭ; T◌̣; Ṭ; T◌̣; ) LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D;1E6D;0074 0323;1E6D;0074 0323; # (ṭ; ṭ; t◌̣; ṭ; t◌̣; ) LATIN SMALL LETTER T WITH DOT BELOW
+1E6E;1E6E;0054 0331;1E6E;0054 0331; # (Ṯ; Ṯ; T◌̱; Ṯ; T◌̱; ) LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F;1E6F;0074 0331;1E6F;0074 0331; # (ṯ; ṯ; t◌̱; ṯ; t◌̱; ) LATIN SMALL LETTER T WITH LINE BELOW
+1E70;1E70;0054 032D;1E70;0054 032D; # (Ṱ; Ṱ; T◌̭; Ṱ; T◌̭; ) LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71;1E71;0074 032D;1E71;0074 032D; # (ṱ; ṱ; t◌̭; ṱ; t◌̭; ) LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72;1E72;0055 0324;1E72;0055 0324; # (Ṳ; Ṳ; U◌̤; Ṳ; U◌̤; ) LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73;1E73;0075 0324;1E73;0075 0324; # (ṳ; ṳ; u◌̤; ṳ; u◌̤; ) LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74;1E74;0055 0330;1E74;0055 0330; # (Ṵ; Ṵ; U◌̰; Ṵ; U◌̰; ) LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75;1E75;0075 0330;1E75;0075 0330; # (ṵ; ṵ; u◌̰; ṵ; u◌̰; ) LATIN SMALL LETTER U WITH TILDE BELOW
+1E76;1E76;0055 032D;1E76;0055 032D; # (Ṷ; Ṷ; U◌̭; Ṷ; U◌̭; ) LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77;1E77;0075 032D;1E77;0075 032D; # (ṷ; ṷ; u◌̭; ṷ; u◌̭; ) LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78;1E78;0055 0303 0301;1E78;0055 0303 0301; # (Ṹ; Ṹ; U◌̃◌́; Ṹ; U◌̃◌́; ) LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79;1E79;0075 0303 0301;1E79;0075 0303 0301; # (ṹ; ṹ; u◌̃◌́; ṹ; u◌̃◌́; ) LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A;1E7A;0055 0304 0308;1E7A;0055 0304 0308; # (Ṻ; Ṻ; U◌̄◌̈; Ṻ; U◌̄◌̈; ) LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B;1E7B;0075 0304 0308;1E7B;0075 0304 0308; # (ṻ; ṻ; u◌̄◌̈; ṻ; u◌̄◌̈; ) LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C;1E7C;0056 0303;1E7C;0056 0303; # (Ṽ; Ṽ; V◌̃; Ṽ; V◌̃; ) LATIN CAPITAL LETTER V WITH TILDE
+1E7D;1E7D;0076 0303;1E7D;0076 0303; # (ṽ; ṽ; v◌̃; ṽ; v◌̃; ) LATIN SMALL LETTER V WITH TILDE
+1E7E;1E7E;0056 0323;1E7E;0056 0323; # (Ṿ; Ṿ; V◌̣; Ṿ; V◌̣; ) LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F;1E7F;0076 0323;1E7F;0076 0323; # (ṿ; ṿ; v◌̣; ṿ; v◌̣; ) LATIN SMALL LETTER V WITH DOT BELOW
+1E80;1E80;0057 0300;1E80;0057 0300; # (Ẁ; Ẁ; W◌̀; Ẁ; W◌̀; ) LATIN CAPITAL LETTER W WITH GRAVE
+1E81;1E81;0077 0300;1E81;0077 0300; # (ẁ; ẁ; w◌̀; ẁ; w◌̀; ) LATIN SMALL LETTER W WITH GRAVE
+1E82;1E82;0057 0301;1E82;0057 0301; # (Ẃ; Ẃ; W◌́; Ẃ; W◌́; ) LATIN CAPITAL LETTER W WITH ACUTE
+1E83;1E83;0077 0301;1E83;0077 0301; # (ẃ; ẃ; w◌́; ẃ; w◌́; ) LATIN SMALL LETTER W WITH ACUTE
+1E84;1E84;0057 0308;1E84;0057 0308; # (Ẅ; Ẅ; W◌̈; Ẅ; W◌̈; ) LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85;1E85;0077 0308;1E85;0077 0308; # (ẅ; ẅ; w◌̈; ẅ; w◌̈; ) LATIN SMALL LETTER W WITH DIAERESIS
+1E86;1E86;0057 0307;1E86;0057 0307; # (Ẇ; Ẇ; W◌̇; Ẇ; W◌̇; ) LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87;1E87;0077 0307;1E87;0077 0307; # (ẇ; ẇ; w◌̇; ẇ; w◌̇; ) LATIN SMALL LETTER W WITH DOT ABOVE
+1E88;1E88;0057 0323;1E88;0057 0323; # (Ẉ; Ẉ; W◌̣; Ẉ; W◌̣; ) LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89;1E89;0077 0323;1E89;0077 0323; # (ẉ; ẉ; w◌̣; ẉ; w◌̣; ) LATIN SMALL LETTER W WITH DOT BELOW
+1E8A;1E8A;0058 0307;1E8A;0058 0307; # (Ẋ; Ẋ; X◌̇; Ẋ; X◌̇; ) LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B;1E8B;0078 0307;1E8B;0078 0307; # (ẋ; ẋ; x◌̇; ẋ; x◌̇; ) LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C;1E8C;0058 0308;1E8C;0058 0308; # (Ẍ; Ẍ; X◌̈; Ẍ; X◌̈; ) LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D;1E8D;0078 0308;1E8D;0078 0308; # (ẍ; ẍ; x◌̈; ẍ; x◌̈; ) LATIN SMALL LETTER X WITH DIAERESIS
+1E8E;1E8E;0059 0307;1E8E;0059 0307; # (Ẏ; Ẏ; Y◌̇; Ẏ; Y◌̇; ) LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F;1E8F;0079 0307;1E8F;0079 0307; # (ẏ; ẏ; y◌̇; ẏ; y◌̇; ) LATIN SMALL LETTER Y WITH DOT ABOVE
+1E90;1E90;005A 0302;1E90;005A 0302; # (Ẑ; Ẑ; Z◌̂; Ẑ; Z◌̂; ) LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91;1E91;007A 0302;1E91;007A 0302; # (ẑ; ẑ; z◌̂; ẑ; z◌̂; ) LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92;1E92;005A 0323;1E92;005A 0323; # (Ẓ; Ẓ; Z◌̣; Ẓ; Z◌̣; ) LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93;1E93;007A 0323;1E93;007A 0323; # (ẓ; ẓ; z◌̣; ẓ; z◌̣; ) LATIN SMALL LETTER Z WITH DOT BELOW
+1E94;1E94;005A 0331;1E94;005A 0331; # (Ẕ; Ẕ; Z◌̱; Ẕ; Z◌̱; ) LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95;1E95;007A 0331;1E95;007A 0331; # (ẕ; ẕ; z◌̱; ẕ; z◌̱; ) LATIN SMALL LETTER Z WITH LINE BELOW
+1E96;1E96;0068 0331;1E96;0068 0331; # (ẖ; ẖ; h◌̱; ẖ; h◌̱; ) LATIN SMALL LETTER H WITH LINE BELOW
+1E97;1E97;0074 0308;1E97;0074 0308; # (ẗ; ẗ; t◌̈; ẗ; t◌̈; ) LATIN SMALL LETTER T WITH DIAERESIS
+1E98;1E98;0077 030A;1E98;0077 030A; # (ẘ; ẘ; w◌̊; ẘ; w◌̊; ) LATIN SMALL LETTER W WITH RING ABOVE
+1E99;1E99;0079 030A;1E99;0079 030A; # (ẙ; ẙ; y◌̊; ẙ; y◌̊; ) LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A;1E9A;1E9A;0061 02BE;0061 02BE; # (ẚ; ẚ; ẚ; aʾ; aʾ; ) LATIN SMALL LETTER A WITH RIGHT HALF RING
+1E9B;1E9B;017F 0307;1E61;0073 0307; # (ẛ; ẛ; ſ◌̇; ṡ; s◌̇; ) LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1EA0;1EA0;0041 0323;1EA0;0041 0323; # (Ạ; Ạ; A◌̣; Ạ; A◌̣; ) LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1;1EA1;0061 0323;1EA1;0061 0323; # (ạ; ạ; a◌̣; ạ; a◌̣; ) LATIN SMALL LETTER A WITH DOT BELOW
+1EA2;1EA2;0041 0309;1EA2;0041 0309; # (Ả; Ả; A◌̉; Ả; A◌̉; ) LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3;1EA3;0061 0309;1EA3;0061 0309; # (ả; ả; a◌̉; ả; a◌̉; ) LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4;1EA4;0041 0302 0301;1EA4;0041 0302 0301; # (Ấ; Ấ; A◌̂◌́; Ấ; A◌̂◌́; ) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5;1EA5;0061 0302 0301;1EA5;0061 0302 0301; # (ấ; ấ; a◌̂◌́; ấ; a◌̂◌́; ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6;1EA6;0041 0302 0300;1EA6;0041 0302 0300; # (Ầ; Ầ; A◌̂◌̀; Ầ; A◌̂◌̀; ) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7;1EA7;0061 0302 0300;1EA7;0061 0302 0300; # (ầ; ầ; a◌̂◌̀; ầ; a◌̂◌̀; ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8;1EA8;0041 0302 0309;1EA8;0041 0302 0309; # (Ẩ; Ẩ; A◌̂◌̉; Ẩ; A◌̂◌̉; ) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9;1EA9;0061 0302 0309;1EA9;0061 0302 0309; # (ẩ; ẩ; a◌̂◌̉; ẩ; a◌̂◌̉; ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA;1EAA;0041 0302 0303;1EAA;0041 0302 0303; # (Ẫ; Ẫ; A◌̂◌̃; Ẫ; A◌̂◌̃; ) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB;1EAB;0061 0302 0303;1EAB;0061 0302 0303; # (ẫ; ẫ; a◌̂◌̃; ẫ; a◌̂◌̃; ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC;1EAC;0041 0323 0302;1EAC;0041 0323 0302; # (Ậ; Ậ; A◌̣◌̂; Ậ; A◌̣◌̂; ) LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD;1EAD;0061 0323 0302;1EAD;0061 0323 0302; # (ậ; ậ; a◌̣◌̂; ậ; a◌̣◌̂; ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE;1EAE;0041 0306 0301;1EAE;0041 0306 0301; # (Ắ; Ắ; A◌̆◌́; Ắ; A◌̆◌́; ) LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF;1EAF;0061 0306 0301;1EAF;0061 0306 0301; # (ắ; ắ; a◌̆◌́; ắ; a◌̆◌́; ) LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB0;1EB0;0041 0306 0300;1EB0;0041 0306 0300; # (Ằ; Ằ; A◌̆◌̀; Ằ; A◌̆◌̀; ) LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1;1EB1;0061 0306 0300;1EB1;0061 0306 0300; # (ằ; ằ; a◌̆◌̀; ằ; a◌̆◌̀; ) LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2;1EB2;0041 0306 0309;1EB2;0041 0306 0309; # (Ẳ; Ẳ; A◌̆◌̉; Ẳ; A◌̆◌̉; ) LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3;1EB3;0061 0306 0309;1EB3;0061 0306 0309; # (ẳ; ẳ; a◌̆◌̉; ẳ; a◌̆◌̉; ) LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4;1EB4;0041 0306 0303;1EB4;0041 0306 0303; # (Ẵ; Ẵ; A◌̆◌̃; Ẵ; A◌̆◌̃; ) LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5;1EB5;0061 0306 0303;1EB5;0061 0306 0303; # (ẵ; ẵ; a◌̆◌̃; ẵ; a◌̆◌̃; ) LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6;1EB6;0041 0323 0306;1EB6;0041 0323 0306; # (Ặ; Ặ; A◌̣◌̆; Ặ; A◌̣◌̆; ) LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7;1EB7;0061 0323 0306;1EB7;0061 0323 0306; # (ặ; ặ; a◌̣◌̆; ặ; a◌̣◌̆; ) LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8;1EB8;0045 0323;1EB8;0045 0323; # (Ẹ; Ẹ; E◌̣; Ẹ; E◌̣; ) LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9;1EB9;0065 0323;1EB9;0065 0323; # (ẹ; ẹ; e◌̣; ẹ; e◌̣; ) LATIN SMALL LETTER E WITH DOT BELOW
+1EBA;1EBA;0045 0309;1EBA;0045 0309; # (Ẻ; Ẻ; E◌̉; Ẻ; E◌̉; ) LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB;1EBB;0065 0309;1EBB;0065 0309; # (ẻ; ẻ; e◌̉; ẻ; e◌̉; ) LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC;1EBC;0045 0303;1EBC;0045 0303; # (Ẽ; Ẽ; E◌̃; Ẽ; E◌̃; ) LATIN CAPITAL LETTER E WITH TILDE
+1EBD;1EBD;0065 0303;1EBD;0065 0303; # (ẽ; ẽ; e◌̃; ẽ; e◌̃; ) LATIN SMALL LETTER E WITH TILDE
+1EBE;1EBE;0045 0302 0301;1EBE;0045 0302 0301; # (Ế; Ế; E◌̂◌́; Ế; E◌̂◌́; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF;1EBF;0065 0302 0301;1EBF;0065 0302 0301; # (ế; ế; e◌̂◌́; ế; e◌̂◌́; ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0;1EC0;0045 0302 0300;1EC0;0045 0302 0300; # (Ề; Ề; E◌̂◌̀; Ề; E◌̂◌̀; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1;1EC1;0065 0302 0300;1EC1;0065 0302 0300; # (ề; ề; e◌̂◌̀; ề; e◌̂◌̀; ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2;1EC2;0045 0302 0309;1EC2;0045 0302 0309; # (Ể; Ể; E◌̂◌̉; Ể; E◌̂◌̉; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3;1EC3;0065 0302 0309;1EC3;0065 0302 0309; # (ể; ể; e◌̂◌̉; ể; e◌̂◌̉; ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4;1EC4;0045 0302 0303;1EC4;0045 0302 0303; # (Ễ; Ễ; E◌̂◌̃; Ễ; E◌̂◌̃; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5;1EC5;0065 0302 0303;1EC5;0065 0302 0303; # (ễ; ễ; e◌̂◌̃; ễ; e◌̂◌̃; ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6;1EC6;0045 0323 0302;1EC6;0045 0323 0302; # (Ệ; Ệ; E◌̣◌̂; Ệ; E◌̣◌̂; ) LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7;1EC7;0065 0323 0302;1EC7;0065 0323 0302; # (ệ; ệ; e◌̣◌̂; ệ; e◌̣◌̂; ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8;1EC8;0049 0309;1EC8;0049 0309; # (Ỉ; Ỉ; I◌̉; Ỉ; I◌̉; ) LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9;1EC9;0069 0309;1EC9;0069 0309; # (ỉ; ỉ; i◌̉; ỉ; i◌̉; ) LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA;1ECA;0049 0323;1ECA;0049 0323; # (Ị; Ị; I◌̣; Ị; I◌̣; ) LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB;1ECB;0069 0323;1ECB;0069 0323; # (ị; ị; i◌̣; ị; i◌̣; ) LATIN SMALL LETTER I WITH DOT BELOW
+1ECC;1ECC;004F 0323;1ECC;004F 0323; # (Ọ; Ọ; O◌̣; Ọ; O◌̣; ) LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD;1ECD;006F 0323;1ECD;006F 0323; # (ọ; ọ; o◌̣; ọ; o◌̣; ) LATIN SMALL LETTER O WITH DOT BELOW
+1ECE;1ECE;004F 0309;1ECE;004F 0309; # (Ỏ; Ỏ; O◌̉; Ỏ; O◌̉; ) LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF;1ECF;006F 0309;1ECF;006F 0309; # (ỏ; ỏ; o◌̉; ỏ; o◌̉; ) LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED0;1ED0;004F 0302 0301;1ED0;004F 0302 0301; # (Ố; Ố; O◌̂◌́; Ố; O◌̂◌́; ) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1;1ED1;006F 0302 0301;1ED1;006F 0302 0301; # (ố; ố; o◌̂◌́; ố; o◌̂◌́; ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2;1ED2;004F 0302 0300;1ED2;004F 0302 0300; # (Ồ; Ồ; O◌̂◌̀; Ồ; O◌̂◌̀; ) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3;1ED3;006F 0302 0300;1ED3;006F 0302 0300; # (ồ; ồ; o◌̂◌̀; ồ; o◌̂◌̀; ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4;1ED4;004F 0302 0309;1ED4;004F 0302 0309; # (Ổ; Ổ; O◌̂◌̉; Ổ; O◌̂◌̉; ) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5;1ED5;006F 0302 0309;1ED5;006F 0302 0309; # (ổ; ổ; o◌̂◌̉; ổ; o◌̂◌̉; ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6;1ED6;004F 0302 0303;1ED6;004F 0302 0303; # (Ỗ; Ỗ; O◌̂◌̃; Ỗ; O◌̂◌̃; ) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7;1ED7;006F 0302 0303;1ED7;006F 0302 0303; # (ỗ; ỗ; o◌̂◌̃; ỗ; o◌̂◌̃; ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8;1ED8;004F 0323 0302;1ED8;004F 0323 0302; # (Ộ; Ộ; O◌̣◌̂; Ộ; O◌̣◌̂; ) LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9;1ED9;006F 0323 0302;1ED9;006F 0323 0302; # (ộ; ộ; o◌̣◌̂; ộ; o◌̣◌̂; ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA;1EDA;004F 031B 0301;1EDA;004F 031B 0301; # (Ớ; Ớ; O◌̛◌́; Ớ; O◌̛◌́; ) LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB;1EDB;006F 031B 0301;1EDB;006F 031B 0301; # (ớ; ớ; o◌̛◌́; ớ; o◌̛◌́; ) LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC;1EDC;004F 031B 0300;1EDC;004F 031B 0300; # (Ờ; Ờ; O◌̛◌̀; Ờ; O◌̛◌̀; ) LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD;1EDD;006F 031B 0300;1EDD;006F 031B 0300; # (ờ; ờ; o◌̛◌̀; ờ; o◌̛◌̀; ) LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE;1EDE;004F 031B 0309;1EDE;004F 031B 0309; # (Ở; Ở; O◌̛◌̉; Ở; O◌̛◌̉; ) LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF;1EDF;006F 031B 0309;1EDF;006F 031B 0309; # (ở; ở; o◌̛◌̉; ở; o◌̛◌̉; ) LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE0;1EE0;004F 031B 0303;1EE0;004F 031B 0303; # (Ỡ; Ỡ; O◌̛◌̃; Ỡ; O◌̛◌̃; ) LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1;1EE1;006F 031B 0303;1EE1;006F 031B 0303; # (ỡ; ỡ; o◌̛◌̃; ỡ; o◌̛◌̃; ) LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2;1EE2;004F 031B 0323;1EE2;004F 031B 0323; # (Ợ; Ợ; O◌̛◌̣; Ợ; O◌̛◌̣; ) LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3;1EE3;006F 031B 0323;1EE3;006F 031B 0323; # (ợ; ợ; o◌̛◌̣; ợ; o◌̛◌̣; ) LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4;1EE4;0055 0323;1EE4;0055 0323; # (Ụ; Ụ; U◌̣; Ụ; U◌̣; ) LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5;1EE5;0075 0323;1EE5;0075 0323; # (ụ; ụ; u◌̣; ụ; u◌̣; ) LATIN SMALL LETTER U WITH DOT BELOW
+1EE6;1EE6;0055 0309;1EE6;0055 0309; # (Ủ; Ủ; U◌̉; Ủ; U◌̉; ) LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7;1EE7;0075 0309;1EE7;0075 0309; # (ủ; ủ; u◌̉; ủ; u◌̉; ) LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8;1EE8;0055 031B 0301;1EE8;0055 031B 0301; # (Ứ; Ứ; U◌̛◌́; Ứ; U◌̛◌́; ) LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9;1EE9;0075 031B 0301;1EE9;0075 031B 0301; # (ứ; ứ; u◌̛◌́; ứ; u◌̛◌́; ) LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA;1EEA;0055 031B 0300;1EEA;0055 031B 0300; # (Ừ; Ừ; U◌̛◌̀; Ừ; U◌̛◌̀; ) LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB;1EEB;0075 031B 0300;1EEB;0075 031B 0300; # (ừ; ừ; u◌̛◌̀; ừ; u◌̛◌̀; ) LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC;1EEC;0055 031B 0309;1EEC;0055 031B 0309; # (Ử; Ử; U◌̛◌̉; Ử; U◌̛◌̉; ) LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED;1EED;0075 031B 0309;1EED;0075 031B 0309; # (ử; ử; u◌̛◌̉; ử; u◌̛◌̉; ) LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE;1EEE;0055 031B 0303;1EEE;0055 031B 0303; # (Ữ; Ữ; U◌̛◌̃; Ữ; U◌̛◌̃; ) LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF;1EEF;0075 031B 0303;1EEF;0075 031B 0303; # (ữ; ữ; u◌̛◌̃; ữ; u◌̛◌̃; ) LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF0;1EF0;0055 031B 0323;1EF0;0055 031B 0323; # (Ự; Ự; U◌̛◌̣; Ự; U◌̛◌̣; ) LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1;1EF1;0075 031B 0323;1EF1;0075 031B 0323; # (ự; ự; u◌̛◌̣; ự; u◌̛◌̣; ) LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2;1EF2;0059 0300;1EF2;0059 0300; # (Ỳ; Ỳ; Y◌̀; Ỳ; Y◌̀; ) LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3;1EF3;0079 0300;1EF3;0079 0300; # (ỳ; ỳ; y◌̀; ỳ; y◌̀; ) LATIN SMALL LETTER Y WITH GRAVE
+1EF4;1EF4;0059 0323;1EF4;0059 0323; # (Ỵ; Ỵ; Y◌̣; Ỵ; Y◌̣; ) LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5;1EF5;0079 0323;1EF5;0079 0323; # (ỵ; ỵ; y◌̣; ỵ; y◌̣; ) LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6;1EF6;0059 0309;1EF6;0059 0309; # (Ỷ; Ỷ; Y◌̉; Ỷ; Y◌̉; ) LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7;1EF7;0079 0309;1EF7;0079 0309; # (ỷ; ỷ; y◌̉; ỷ; y◌̉; ) LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8;1EF8;0059 0303;1EF8;0059 0303; # (Ỹ; Ỹ; Y◌̃; Ỹ; Y◌̃; ) LATIN CAPITAL LETTER Y WITH TILDE
+1EF9;1EF9;0079 0303;1EF9;0079 0303; # (ỹ; ỹ; y◌̃; ỹ; y◌̃; ) LATIN SMALL LETTER Y WITH TILDE
+1F00;1F00;03B1 0313;1F00;03B1 0313; # (ἀ; ἀ; α◌̓; ἀ; α◌̓; ) GREEK SMALL LETTER ALPHA WITH PSILI
+1F01;1F01;03B1 0314;1F01;03B1 0314; # (ἁ; ἁ; α◌̔; ἁ; α◌̔; ) GREEK SMALL LETTER ALPHA WITH DASIA
+1F02;1F02;03B1 0313 0300;1F02;03B1 0313 0300; # (ἂ; ἂ; α◌̓◌̀; ἂ; α◌̓◌̀; ) GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+1F03;1F03;03B1 0314 0300;1F03;03B1 0314 0300; # (ἃ; ἃ; α◌̔◌̀; ἃ; α◌̔◌̀; ) GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+1F04;1F04;03B1 0313 0301;1F04;03B1 0313 0301; # (ἄ; ἄ; α◌̓◌́; ἄ; α◌̓◌́; ) GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+1F05;1F05;03B1 0314 0301;1F05;03B1 0314 0301; # (ἅ; ἅ; α◌̔◌́; ἅ; α◌̔◌́; ) GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+1F06;1F06;03B1 0313 0342;1F06;03B1 0313 0342; # (ἆ; ἆ; α◌̓◌͂; ἆ; α◌̓◌͂; ) GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F07;1F07;03B1 0314 0342;1F07;03B1 0314 0342; # (ἇ; ἇ; α◌̔◌͂; ἇ; α◌̔◌͂; ) GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08;1F08;0391 0313;1F08;0391 0313; # (Ἀ; Ἀ; Α◌̓; Ἀ; Α◌̓; ) GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F09;1F09;0391 0314;1F09;0391 0314; # (Ἁ; Ἁ; Α◌̔; Ἁ; Α◌̔; ) GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F0A;1F0A;0391 0313 0300;1F0A;0391 0313 0300; # (Ἂ; Ἂ; Α◌̓◌̀; Ἂ; Α◌̓◌̀; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F0B;1F0B;0391 0314 0300;1F0B;0391 0314 0300; # (Ἃ; Ἃ; Α◌̔◌̀; Ἃ; Α◌̔◌̀; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F0C;1F0C;0391 0313 0301;1F0C;0391 0313 0301; # (Ἄ; Ἄ; Α◌̓◌́; Ἄ; Α◌̓◌́; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F0D;1F0D;0391 0314 0301;1F0D;0391 0314 0301; # (Ἅ; Ἅ; Α◌̔◌́; Ἅ; Α◌̔◌́; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F0E;1F0E;0391 0313 0342;1F0E;0391 0313 0342; # (Ἆ; Ἆ; Α◌̓◌͂; Ἆ; Α◌̓◌͂; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F;1F0F;0391 0314 0342;1F0F;0391 0314 0342; # (Ἇ; Ἇ; Α◌̔◌͂; Ἇ; Α◌̔◌͂; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10;1F10;03B5 0313;1F10;03B5 0313; # (ἐ; ἐ; ε◌̓; ἐ; ε◌̓; ) GREEK SMALL LETTER EPSILON WITH PSILI
+1F11;1F11;03B5 0314;1F11;03B5 0314; # (ἑ; ἑ; ε◌̔; ἑ; ε◌̔; ) GREEK SMALL LETTER EPSILON WITH DASIA
+1F12;1F12;03B5 0313 0300;1F12;03B5 0313 0300; # (ἒ; ἒ; ε◌̓◌̀; ἒ; ε◌̓◌̀; ) GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+1F13;1F13;03B5 0314 0300;1F13;03B5 0314 0300; # (ἓ; ἓ; ε◌̔◌̀; ἓ; ε◌̔◌̀; ) GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+1F14;1F14;03B5 0313 0301;1F14;03B5 0313 0301; # (ἔ; ἔ; ε◌̓◌́; ἔ; ε◌̓◌́; ) GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+1F15;1F15;03B5 0314 0301;1F15;03B5 0314 0301; # (ἕ; ἕ; ε◌̔◌́; ἕ; ε◌̔◌́; ) GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18;1F18;0395 0313;1F18;0395 0313; # (Ἐ; Ἐ; Ε◌̓; Ἐ; Ε◌̓; ) GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F19;1F19;0395 0314;1F19;0395 0314; # (Ἑ; Ἑ; Ε◌̔; Ἑ; Ε◌̔; ) GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F1A;1F1A;0395 0313 0300;1F1A;0395 0313 0300; # (Ἒ; Ἒ; Ε◌̓◌̀; Ἒ; Ε◌̓◌̀; ) GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F1B;1F1B;0395 0314 0300;1F1B;0395 0314 0300; # (Ἓ; Ἓ; Ε◌̔◌̀; Ἓ; Ε◌̔◌̀; ) GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+1F1C;1F1C;0395 0313 0301;1F1C;0395 0313 0301; # (Ἔ; Ἔ; Ε◌̓◌́; Ἔ; Ε◌̓◌́; ) GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F1D;1F1D;0395 0314 0301;1F1D;0395 0314 0301; # (Ἕ; Ἕ; Ε◌̔◌́; Ἕ; Ε◌̔◌́; ) GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20;1F20;03B7 0313;1F20;03B7 0313; # (ἠ; ἠ; η◌̓; ἠ; η◌̓; ) GREEK SMALL LETTER ETA WITH PSILI
+1F21;1F21;03B7 0314;1F21;03B7 0314; # (ἡ; ἡ; η◌̔; ἡ; η◌̔; ) GREEK SMALL LETTER ETA WITH DASIA
+1F22;1F22;03B7 0313 0300;1F22;03B7 0313 0300; # (ἢ; ἢ; η◌̓◌̀; ἢ; η◌̓◌̀; ) GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+1F23;1F23;03B7 0314 0300;1F23;03B7 0314 0300; # (ἣ; ἣ; η◌̔◌̀; ἣ; η◌̔◌̀; ) GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+1F24;1F24;03B7 0313 0301;1F24;03B7 0313 0301; # (ἤ; ἤ; η◌̓◌́; ἤ; η◌̓◌́; ) GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+1F25;1F25;03B7 0314 0301;1F25;03B7 0314 0301; # (ἥ; ἥ; η◌̔◌́; ἥ; η◌̔◌́; ) GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+1F26;1F26;03B7 0313 0342;1F26;03B7 0313 0342; # (ἦ; ἦ; η◌̓◌͂; ἦ; η◌̓◌͂; ) GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+1F27;1F27;03B7 0314 0342;1F27;03B7 0314 0342; # (ἧ; ἧ; η◌̔◌͂; ἧ; η◌̔◌͂; ) GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28;1F28;0397 0313;1F28;0397 0313; # (Ἠ; Ἠ; Η◌̓; Ἠ; Η◌̓; ) GREEK CAPITAL LETTER ETA WITH PSILI
+1F29;1F29;0397 0314;1F29;0397 0314; # (Ἡ; Ἡ; Η◌̔; Ἡ; Η◌̔; ) GREEK CAPITAL LETTER ETA WITH DASIA
+1F2A;1F2A;0397 0313 0300;1F2A;0397 0313 0300; # (Ἢ; Ἢ; Η◌̓◌̀; Ἢ; Η◌̓◌̀; ) GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F2B;1F2B;0397 0314 0300;1F2B;0397 0314 0300; # (Ἣ; Ἣ; Η◌̔◌̀; Ἣ; Η◌̔◌̀; ) GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F2C;1F2C;0397 0313 0301;1F2C;0397 0313 0301; # (Ἤ; Ἤ; Η◌̓◌́; Ἤ; Η◌̓◌́; ) GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F2D;1F2D;0397 0314 0301;1F2D;0397 0314 0301; # (Ἥ; Ἥ; Η◌̔◌́; Ἥ; Η◌̔◌́; ) GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F2E;1F2E;0397 0313 0342;1F2E;0397 0313 0342; # (Ἦ; Ἦ; Η◌̓◌͂; Ἦ; Η◌̓◌͂; ) GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F;1F2F;0397 0314 0342;1F2F;0397 0314 0342; # (Ἧ; Ἧ; Η◌̔◌͂; Ἧ; Η◌̔◌͂; ) GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30;1F30;03B9 0313;1F30;03B9 0313; # (ἰ; ἰ; ι◌̓; ἰ; ι◌̓; ) GREEK SMALL LETTER IOTA WITH PSILI
+1F31;1F31;03B9 0314;1F31;03B9 0314; # (ἱ; ἱ; ι◌̔; ἱ; ι◌̔; ) GREEK SMALL LETTER IOTA WITH DASIA
+1F32;1F32;03B9 0313 0300;1F32;03B9 0313 0300; # (ἲ; ἲ; ι◌̓◌̀; ἲ; ι◌̓◌̀; ) GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+1F33;1F33;03B9 0314 0300;1F33;03B9 0314 0300; # (ἳ; ἳ; ι◌̔◌̀; ἳ; ι◌̔◌̀; ) GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+1F34;1F34;03B9 0313 0301;1F34;03B9 0313 0301; # (ἴ; ἴ; ι◌̓◌́; ἴ; ι◌̓◌́; ) GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+1F35;1F35;03B9 0314 0301;1F35;03B9 0314 0301; # (ἵ; ἵ; ι◌̔◌́; ἵ; ι◌̔◌́; ) GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+1F36;1F36;03B9 0313 0342;1F36;03B9 0313 0342; # (ἶ; ἶ; ι◌̓◌͂; ἶ; ι◌̓◌͂; ) GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F37;1F37;03B9 0314 0342;1F37;03B9 0314 0342; # (ἷ; ἷ; ι◌̔◌͂; ἷ; ι◌̔◌͂; ) GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38;1F38;0399 0313;1F38;0399 0313; # (Ἰ; Ἰ; Ι◌̓; Ἰ; Ι◌̓; ) GREEK CAPITAL LETTER IOTA WITH PSILI
+1F39;1F39;0399 0314;1F39;0399 0314; # (Ἱ; Ἱ; Ι◌̔; Ἱ; Ι◌̔; ) GREEK CAPITAL LETTER IOTA WITH DASIA
+1F3A;1F3A;0399 0313 0300;1F3A;0399 0313 0300; # (Ἲ; Ἲ; Ι◌̓◌̀; Ἲ; Ι◌̓◌̀; ) GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F3B;1F3B;0399 0314 0300;1F3B;0399 0314 0300; # (Ἳ; Ἳ; Ι◌̔◌̀; Ἳ; Ι◌̔◌̀; ) GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F3C;1F3C;0399 0313 0301;1F3C;0399 0313 0301; # (Ἴ; Ἴ; Ι◌̓◌́; Ἴ; Ι◌̓◌́; ) GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F3D;1F3D;0399 0314 0301;1F3D;0399 0314 0301; # (Ἵ; Ἵ; Ι◌̔◌́; Ἵ; Ι◌̔◌́; ) GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F3E;1F3E;0399 0313 0342;1F3E;0399 0313 0342; # (Ἶ; Ἶ; Ι◌̓◌͂; Ἶ; Ι◌̓◌͂; ) GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F;1F3F;0399 0314 0342;1F3F;0399 0314 0342; # (Ἷ; Ἷ; Ι◌̔◌͂; Ἷ; Ι◌̔◌͂; ) GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40;1F40;03BF 0313;1F40;03BF 0313; # (ὀ; ὀ; ο◌̓; ὀ; ο◌̓; ) GREEK SMALL LETTER OMICRON WITH PSILI
+1F41;1F41;03BF 0314;1F41;03BF 0314; # (ὁ; ὁ; ο◌̔; ὁ; ο◌̔; ) GREEK SMALL LETTER OMICRON WITH DASIA
+1F42;1F42;03BF 0313 0300;1F42;03BF 0313 0300; # (ὂ; ὂ; ο◌̓◌̀; ὂ; ο◌̓◌̀; ) GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+1F43;1F43;03BF 0314 0300;1F43;03BF 0314 0300; # (ὃ; ὃ; ο◌̔◌̀; ὃ; ο◌̔◌̀; ) GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+1F44;1F44;03BF 0313 0301;1F44;03BF 0313 0301; # (ὄ; ὄ; ο◌̓◌́; ὄ; ο◌̓◌́; ) GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+1F45;1F45;03BF 0314 0301;1F45;03BF 0314 0301; # (ὅ; ὅ; ο◌̔◌́; ὅ; ο◌̔◌́; ) GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48;1F48;039F 0313;1F48;039F 0313; # (Ὀ; Ὀ; Ο◌̓; Ὀ; Ο◌̓; ) GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F49;1F49;039F 0314;1F49;039F 0314; # (Ὁ; Ὁ; Ο◌̔; Ὁ; Ο◌̔; ) GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F4A;1F4A;039F 0313 0300;1F4A;039F 0313 0300; # (Ὂ; Ὂ; Ο◌̓◌̀; Ὂ; Ο◌̓◌̀; ) GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F4B;1F4B;039F 0314 0300;1F4B;039F 0314 0300; # (Ὃ; Ὃ; Ο◌̔◌̀; Ὃ; Ο◌̔◌̀; ) GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+1F4C;1F4C;039F 0313 0301;1F4C;039F 0313 0301; # (Ὄ; Ὄ; Ο◌̓◌́; Ὄ; Ο◌̓◌́; ) GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F4D;1F4D;039F 0314 0301;1F4D;039F 0314 0301; # (Ὅ; Ὅ; Ο◌̔◌́; Ὅ; Ο◌̔◌́; ) GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50;1F50;03C5 0313;1F50;03C5 0313; # (ὐ; ὐ; υ◌̓; ὐ; υ◌̓; ) GREEK SMALL LETTER UPSILON WITH PSILI
+1F51;1F51;03C5 0314;1F51;03C5 0314; # (ὑ; ὑ; υ◌̔; ὑ; υ◌̔; ) GREEK SMALL LETTER UPSILON WITH DASIA
+1F52;1F52;03C5 0313 0300;1F52;03C5 0313 0300; # (ὒ; ὒ; υ◌̓◌̀; ὒ; υ◌̓◌̀; ) GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F53;1F53;03C5 0314 0300;1F53;03C5 0314 0300; # (ὓ; ὓ; υ◌̔◌̀; ὓ; υ◌̔◌̀; ) GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+1F54;1F54;03C5 0313 0301;1F54;03C5 0313 0301; # (ὔ; ὔ; υ◌̓◌́; ὔ; υ◌̓◌́; ) GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F55;1F55;03C5 0314 0301;1F55;03C5 0314 0301; # (ὕ; ὕ; υ◌̔◌́; ὕ; υ◌̔◌́; ) GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+1F56;1F56;03C5 0313 0342;1F56;03C5 0313 0342; # (ὖ; ὖ; υ◌̓◌͂; ὖ; υ◌̓◌͂; ) GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1F57;1F57;03C5 0314 0342;1F57;03C5 0314 0342; # (ὗ; ὗ; υ◌̔◌͂; ὗ; υ◌̔◌͂; ) GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;1F59;03A5 0314;1F59;03A5 0314; # (Ὑ; Ὑ; Υ◌̔; Ὑ; Υ◌̔; ) GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;1F5B;03A5 0314 0300;1F5B;03A5 0314 0300; # (Ὓ; Ὓ; Υ◌̔◌̀; Ὓ; Υ◌̔◌̀; ) GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;1F5D;03A5 0314 0301;1F5D;03A5 0314 0301; # (Ὕ; Ὕ; Υ◌̔◌́; Ὕ; Υ◌̔◌́; ) GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F;1F5F;03A5 0314 0342;1F5F;03A5 0314 0342; # (Ὗ; Ὗ; Υ◌̔◌͂; Ὗ; Υ◌̔◌͂; ) GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60;1F60;03C9 0313;1F60;03C9 0313; # (ὠ; ὠ; ω◌̓; ὠ; ω◌̓; ) GREEK SMALL LETTER OMEGA WITH PSILI
+1F61;1F61;03C9 0314;1F61;03C9 0314; # (ὡ; ὡ; ω◌̔; ὡ; ω◌̔; ) GREEK SMALL LETTER OMEGA WITH DASIA
+1F62;1F62;03C9 0313 0300;1F62;03C9 0313 0300; # (ὢ; ὢ; ω◌̓◌̀; ὢ; ω◌̓◌̀; ) GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+1F63;1F63;03C9 0314 0300;1F63;03C9 0314 0300; # (ὣ; ὣ; ω◌̔◌̀; ὣ; ω◌̔◌̀; ) GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+1F64;1F64;03C9 0313 0301;1F64;03C9 0313 0301; # (ὤ; ὤ; ω◌̓◌́; ὤ; ω◌̓◌́; ) GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+1F65;1F65;03C9 0314 0301;1F65;03C9 0314 0301; # (ὥ; ὥ; ω◌̔◌́; ὥ; ω◌̔◌́; ) GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+1F66;1F66;03C9 0313 0342;1F66;03C9 0313 0342; # (ὦ; ὦ; ω◌̓◌͂; ὦ; ω◌̓◌͂; ) GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F67;1F67;03C9 0314 0342;1F67;03C9 0314 0342; # (ὧ; ὧ; ω◌̔◌͂; ὧ; ω◌̔◌͂; ) GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68;1F68;03A9 0313;1F68;03A9 0313; # (Ὠ; Ὠ; Ω◌̓; Ὠ; Ω◌̓; ) GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F69;1F69;03A9 0314;1F69;03A9 0314; # (Ὡ; Ὡ; Ω◌̔; Ὡ; Ω◌̔; ) GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F6A;1F6A;03A9 0313 0300;1F6A;03A9 0313 0300; # (Ὢ; Ὢ; Ω◌̓◌̀; Ὢ; Ω◌̓◌̀; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1F6B;1F6B;03A9 0314 0300;1F6B;03A9 0314 0300; # (Ὣ; Ὣ; Ω◌̔◌̀; Ὣ; Ω◌̔◌̀; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1F6C;1F6C;03A9 0313 0301;1F6C;03A9 0313 0301; # (Ὤ; Ὤ; Ω◌̓◌́; Ὤ; Ω◌̓◌́; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1F6D;1F6D;03A9 0314 0301;1F6D;03A9 0314 0301; # (Ὥ; Ὥ; Ω◌̔◌́; Ὥ; Ω◌̔◌́; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1F6E;1F6E;03A9 0313 0342;1F6E;03A9 0313 0342; # (Ὦ; Ὦ; Ω◌̓◌͂; Ὦ; Ω◌̓◌͂; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F;1F6F;03A9 0314 0342;1F6F;03A9 0314 0342; # (Ὧ; Ὧ; Ω◌̔◌͂; Ὧ; Ω◌̔◌͂; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70;1F70;03B1 0300;1F70;03B1 0300; # (ὰ; ὰ; α◌̀; ὰ; α◌̀; ) GREEK SMALL LETTER ALPHA WITH VARIA
+1F71;03AC;03B1 0301;03AC;03B1 0301; # (ά; ά; α◌́; ά; α◌́; ) GREEK SMALL LETTER ALPHA WITH OXIA
+1F72;1F72;03B5 0300;1F72;03B5 0300; # (ὲ; ὲ; ε◌̀; ὲ; ε◌̀; ) GREEK SMALL LETTER EPSILON WITH VARIA
+1F73;03AD;03B5 0301;03AD;03B5 0301; # (έ; έ; ε◌́; έ; ε◌́; ) GREEK SMALL LETTER EPSILON WITH OXIA
+1F74;1F74;03B7 0300;1F74;03B7 0300; # (ὴ; ὴ; η◌̀; ὴ; η◌̀; ) GREEK SMALL LETTER ETA WITH VARIA
+1F75;03AE;03B7 0301;03AE;03B7 0301; # (ή; ή; η◌́; ή; η◌́; ) GREEK SMALL LETTER ETA WITH OXIA
+1F76;1F76;03B9 0300;1F76;03B9 0300; # (ὶ; ὶ; ι◌̀; ὶ; ι◌̀; ) GREEK SMALL LETTER IOTA WITH VARIA
+1F77;03AF;03B9 0301;03AF;03B9 0301; # (ί; ί; ι◌́; ί; ι◌́; ) GREEK SMALL LETTER IOTA WITH OXIA
+1F78;1F78;03BF 0300;1F78;03BF 0300; # (ὸ; ὸ; ο◌̀; ὸ; ο◌̀; ) GREEK SMALL LETTER OMICRON WITH VARIA
+1F79;03CC;03BF 0301;03CC;03BF 0301; # (ό; ό; ο◌́; ό; ο◌́; ) GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A;1F7A;03C5 0300;1F7A;03C5 0300; # (ὺ; ὺ; υ◌̀; ὺ; υ◌̀; ) GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B;03CD;03C5 0301;03CD;03C5 0301; # (ύ; ύ; υ◌́; ύ; υ◌́; ) GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C;1F7C;03C9 0300;1F7C;03C9 0300; # (ὼ; ὼ; ω◌̀; ὼ; ω◌̀; ) GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D;03CE;03C9 0301;03CE;03C9 0301; # (ώ; ώ; ω◌́; ώ; ω◌́; ) GREEK SMALL LETTER OMEGA WITH OXIA
+1F80;1F80;03B1 0313 0345;1F80;03B1 0313 0345; # (ᾀ; ᾀ; α◌̓◌ͅ; ᾀ; α◌̓◌ͅ; ) GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81;1F81;03B1 0314 0345;1F81;03B1 0314 0345; # (ᾁ; ᾁ; α◌̔◌ͅ; ᾁ; α◌̔◌ͅ; ) GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82;1F82;03B1 0313 0300 0345;1F82;03B1 0313 0300 0345; # (ᾂ; ᾂ; α◌̓◌̀◌ͅ; ᾂ; α◌̓◌̀◌ͅ; ) GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83;1F83;03B1 0314 0300 0345;1F83;03B1 0314 0300 0345; # (ᾃ; ᾃ; α◌̔◌̀◌ͅ; ᾃ; α◌̔◌̀◌ͅ; ) GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84;1F84;03B1 0313 0301 0345;1F84;03B1 0313 0301 0345; # (ᾄ; ᾄ; α◌̓◌́◌ͅ; ᾄ; α◌̓◌́◌ͅ; ) GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85;1F85;03B1 0314 0301 0345;1F85;03B1 0314 0301 0345; # (ᾅ; ᾅ; α◌̔◌́◌ͅ; ᾅ; α◌̔◌́◌ͅ; ) GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86;1F86;03B1 0313 0342 0345;1F86;03B1 0313 0342 0345; # (ᾆ; ᾆ; α◌̓◌͂◌ͅ; ᾆ; α◌̓◌͂◌ͅ; ) GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87;1F87;03B1 0314 0342 0345;1F87;03B1 0314 0342 0345; # (ᾇ; ᾇ; α◌̔◌͂◌ͅ; ᾇ; α◌̔◌͂◌ͅ; ) GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88;1F88;0391 0313 0345;1F88;0391 0313 0345; # (ᾈ; ᾈ; Α◌̓◌ͅ; ᾈ; Α◌̓◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89;1F89;0391 0314 0345;1F89;0391 0314 0345; # (ᾉ; ᾉ; Α◌̔◌ͅ; ᾉ; Α◌̔◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A;1F8A;0391 0313 0300 0345;1F8A;0391 0313 0300 0345; # (ᾊ; ᾊ; Α◌̓◌̀◌ͅ; ᾊ; Α◌̓◌̀◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B;1F8B;0391 0314 0300 0345;1F8B;0391 0314 0300 0345; # (ᾋ; ᾋ; Α◌̔◌̀◌ͅ; ᾋ; Α◌̔◌̀◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C;1F8C;0391 0313 0301 0345;1F8C;0391 0313 0301 0345; # (ᾌ; ᾌ; Α◌̓◌́◌ͅ; ᾌ; Α◌̓◌́◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D;1F8D;0391 0314 0301 0345;1F8D;0391 0314 0301 0345; # (ᾍ; ᾍ; Α◌̔◌́◌ͅ; ᾍ; Α◌̔◌́◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E;1F8E;0391 0313 0342 0345;1F8E;0391 0313 0342 0345; # (ᾎ; ᾎ; Α◌̓◌͂◌ͅ; ᾎ; Α◌̓◌͂◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F;1F8F;0391 0314 0342 0345;1F8F;0391 0314 0342 0345; # (ᾏ; ᾏ; Α◌̔◌͂◌ͅ; ᾏ; Α◌̔◌͂◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F90;1F90;03B7 0313 0345;1F90;03B7 0313 0345; # (ᾐ; ᾐ; η◌̓◌ͅ; ᾐ; η◌̓◌ͅ; ) GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91;1F91;03B7 0314 0345;1F91;03B7 0314 0345; # (ᾑ; ᾑ; η◌̔◌ͅ; ᾑ; η◌̔◌ͅ; ) GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92;1F92;03B7 0313 0300 0345;1F92;03B7 0313 0300 0345; # (ᾒ; ᾒ; η◌̓◌̀◌ͅ; ᾒ; η◌̓◌̀◌ͅ; ) GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93;1F93;03B7 0314 0300 0345;1F93;03B7 0314 0300 0345; # (ᾓ; ᾓ; η◌̔◌̀◌ͅ; ᾓ; η◌̔◌̀◌ͅ; ) GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94;1F94;03B7 0313 0301 0345;1F94;03B7 0313 0301 0345; # (ᾔ; ᾔ; η◌̓◌́◌ͅ; ᾔ; η◌̓◌́◌ͅ; ) GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95;1F95;03B7 0314 0301 0345;1F95;03B7 0314 0301 0345; # (ᾕ; ᾕ; η◌̔◌́◌ͅ; ᾕ; η◌̔◌́◌ͅ; ) GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96;1F96;03B7 0313 0342 0345;1F96;03B7 0313 0342 0345; # (ᾖ; ᾖ; η◌̓◌͂◌ͅ; ᾖ; η◌̓◌͂◌ͅ; ) GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97;1F97;03B7 0314 0342 0345;1F97;03B7 0314 0342 0345; # (ᾗ; ᾗ; η◌̔◌͂◌ͅ; ᾗ; η◌̔◌͂◌ͅ; ) GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98;1F98;0397 0313 0345;1F98;0397 0313 0345; # (ᾘ; ᾘ; Η◌̓◌ͅ; ᾘ; Η◌̓◌ͅ; ) GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99;1F99;0397 0314 0345;1F99;0397 0314 0345; # (ᾙ; ᾙ; Η◌̔◌ͅ; ᾙ; Η◌̔◌ͅ; ) GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A;1F9A;0397 0313 0300 0345;1F9A;0397 0313 0300 0345; # (ᾚ; ᾚ; Η◌̓◌̀◌ͅ; ᾚ; Η◌̓◌̀◌ͅ; ) GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B;1F9B;0397 0314 0300 0345;1F9B;0397 0314 0300 0345; # (ᾛ; ᾛ; Η◌̔◌̀◌ͅ; ᾛ; Η◌̔◌̀◌ͅ; ) GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C;1F9C;0397 0313 0301 0345;1F9C;0397 0313 0301 0345; # (ᾜ; ᾜ; Η◌̓◌́◌ͅ; ᾜ; Η◌̓◌́◌ͅ; ) GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D;1F9D;0397 0314 0301 0345;1F9D;0397 0314 0301 0345; # (ᾝ; ᾝ; Η◌̔◌́◌ͅ; ᾝ; Η◌̔◌́◌ͅ; ) GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E;1F9E;0397 0313 0342 0345;1F9E;0397 0313 0342 0345; # (ᾞ; ᾞ; Η◌̓◌͂◌ͅ; ᾞ; Η◌̓◌͂◌ͅ; ) GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F;1F9F;0397 0314 0342 0345;1F9F;0397 0314 0342 0345; # (ᾟ; ᾟ; Η◌̔◌͂◌ͅ; ᾟ; Η◌̔◌͂◌ͅ; ) GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0;1FA0;03C9 0313 0345;1FA0;03C9 0313 0345; # (ᾠ; ᾠ; ω◌̓◌ͅ; ᾠ; ω◌̓◌ͅ; ) GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1;1FA1;03C9 0314 0345;1FA1;03C9 0314 0345; # (ᾡ; ᾡ; ω◌̔◌ͅ; ᾡ; ω◌̔◌ͅ; ) GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2;1FA2;03C9 0313 0300 0345;1FA2;03C9 0313 0300 0345; # (ᾢ; ᾢ; ω◌̓◌̀◌ͅ; ᾢ; ω◌̓◌̀◌ͅ; ) GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3;1FA3;03C9 0314 0300 0345;1FA3;03C9 0314 0300 0345; # (ᾣ; ᾣ; ω◌̔◌̀◌ͅ; ᾣ; ω◌̔◌̀◌ͅ; ) GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4;1FA4;03C9 0313 0301 0345;1FA4;03C9 0313 0301 0345; # (ᾤ; ᾤ; ω◌̓◌́◌ͅ; ᾤ; ω◌̓◌́◌ͅ; ) GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5;1FA5;03C9 0314 0301 0345;1FA5;03C9 0314 0301 0345; # (ᾥ; ᾥ; ω◌̔◌́◌ͅ; ᾥ; ω◌̔◌́◌ͅ; ) GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6;1FA6;03C9 0313 0342 0345;1FA6;03C9 0313 0342 0345; # (ᾦ; ᾦ; ω◌̓◌͂◌ͅ; ᾦ; ω◌̓◌͂◌ͅ; ) GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7;1FA7;03C9 0314 0342 0345;1FA7;03C9 0314 0342 0345; # (ᾧ; ᾧ; ω◌̔◌͂◌ͅ; ᾧ; ω◌̔◌͂◌ͅ; ) GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8;1FA8;03A9 0313 0345;1FA8;03A9 0313 0345; # (ᾨ; ᾨ; Ω◌̓◌ͅ; ᾨ; Ω◌̓◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9;1FA9;03A9 0314 0345;1FA9;03A9 0314 0345; # (ᾩ; ᾩ; Ω◌̔◌ͅ; ᾩ; Ω◌̔◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA;1FAA;03A9 0313 0300 0345;1FAA;03A9 0313 0300 0345; # (ᾪ; ᾪ; Ω◌̓◌̀◌ͅ; ᾪ; Ω◌̓◌̀◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB;1FAB;03A9 0314 0300 0345;1FAB;03A9 0314 0300 0345; # (ᾫ; ᾫ; Ω◌̔◌̀◌ͅ; ᾫ; Ω◌̔◌̀◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC;1FAC;03A9 0313 0301 0345;1FAC;03A9 0313 0301 0345; # (ᾬ; ᾬ; Ω◌̓◌́◌ͅ; ᾬ; Ω◌̓◌́◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD;1FAD;03A9 0314 0301 0345;1FAD;03A9 0314 0301 0345; # (ᾭ; ᾭ; Ω◌̔◌́◌ͅ; ᾭ; Ω◌̔◌́◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE;1FAE;03A9 0313 0342 0345;1FAE;03A9 0313 0342 0345; # (ᾮ; ᾮ; Ω◌̓◌͂◌ͅ; ᾮ; Ω◌̓◌͂◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF;1FAF;03A9 0314 0342 0345;1FAF;03A9 0314 0342 0345; # (ᾯ; ᾯ; Ω◌̔◌͂◌ͅ; ᾯ; Ω◌̔◌͂◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0;1FB0;03B1 0306;1FB0;03B1 0306; # (ᾰ; ᾰ; α◌̆; ᾰ; α◌̆; ) GREEK SMALL LETTER ALPHA WITH VRACHY
+1FB1;1FB1;03B1 0304;1FB1;03B1 0304; # (ᾱ; ᾱ; α◌̄; ᾱ; α◌̄; ) GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2;1FB2;03B1 0300 0345;1FB2;03B1 0300 0345; # (ᾲ; ᾲ; α◌̀◌ͅ; ᾲ; α◌̀◌ͅ; ) GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB3;1FB3;03B1 0345;1FB3;03B1 0345; # (ᾳ; ᾳ; α◌ͅ; ᾳ; α◌ͅ; ) GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FB4;1FB4;03B1 0301 0345;1FB4;03B1 0301 0345; # (ᾴ; ᾴ; α◌́◌ͅ; ᾴ; α◌́◌ͅ; ) GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6;1FB6;03B1 0342;1FB6;03B1 0342; # (ᾶ; ᾶ; α◌͂; ᾶ; α◌͂; ) GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7;1FB7;03B1 0342 0345;1FB7;03B1 0342 0345; # (ᾷ; ᾷ; α◌͂◌ͅ; ᾷ; α◌͂◌ͅ; ) GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB8;1FB8;0391 0306;1FB8;0391 0306; # (Ᾰ; Ᾰ; Α◌̆; Ᾰ; Α◌̆; ) GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB9;1FB9;0391 0304;1FB9;0391 0304; # (Ᾱ; Ᾱ; Α◌̄; Ᾱ; Α◌̄; ) GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FBA;1FBA;0391 0300;1FBA;0391 0300; # (Ὰ; Ὰ; Α◌̀; Ὰ; Α◌̀; ) GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FBB;0386;0391 0301;0386;0391 0301; # (Ά; Ά; Α◌́; Ά; Α◌́; ) GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBC;1FBC;0391 0345;1FBC;0391 0345; # (ᾼ; ᾼ; Α◌ͅ; ᾼ; Α◌ͅ; ) GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;1FBD;1FBD;0020 0313;0020 0313; # (᾽; ᾽; ᾽;  ◌̓;  ◌̓; ) GREEK KORONIS
+1FBE;03B9;03B9;03B9;03B9; # (ι; ι; ι; ι; ι; ) GREEK PROSGEGRAMMENI
+1FBF;1FBF;1FBF;0020 0313;0020 0313; # (᾿; ᾿; ᾿;  ◌̓;  ◌̓; ) GREEK PSILI
+1FC0;1FC0;1FC0;0020 0342;0020 0342; # (῀; ῀; ῀;  ◌͂;  ◌͂; ) GREEK PERISPOMENI
+1FC1;1FC1;00A8 0342;0020 0308 0342;0020 0308 0342; # (῁; ῁; ¨◌͂;  ◌̈◌͂;  ◌̈◌͂; ) GREEK DIALYTIKA AND PERISPOMENI
+1FC2;1FC2;03B7 0300 0345;1FC2;03B7 0300 0345; # (ῂ; ῂ; η◌̀◌ͅ; ῂ; η◌̀◌ͅ; ) GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC3;1FC3;03B7 0345;1FC3;03B7 0345; # (ῃ; ῃ; η◌ͅ; ῃ; η◌ͅ; ) GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FC4;1FC4;03B7 0301 0345;1FC4;03B7 0301 0345; # (ῄ; ῄ; η◌́◌ͅ; ῄ; η◌́◌ͅ; ) GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6;1FC6;03B7 0342;1FC6;03B7 0342; # (ῆ; ῆ; η◌͂; ῆ; η◌͂; ) GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7;1FC7;03B7 0342 0345;1FC7;03B7 0342 0345; # (ῇ; ῇ; η◌͂◌ͅ; ῇ; η◌͂◌ͅ; ) GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC8;1FC8;0395 0300;1FC8;0395 0300; # (Ὲ; Ὲ; Ε◌̀; Ὲ; Ε◌̀; ) GREEK CAPITAL LETTER EPSILON WITH VARIA
+1FC9;0388;0395 0301;0388;0395 0301; # (Έ; Έ; Ε◌́; Έ; Ε◌́; ) GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCA;1FCA;0397 0300;1FCA;0397 0300; # (Ὴ; Ὴ; Η◌̀; Ὴ; Η◌̀; ) GREEK CAPITAL LETTER ETA WITH VARIA
+1FCB;0389;0397 0301;0389;0397 0301; # (Ή; Ή; Η◌́; Ή; Η◌́; ) GREEK CAPITAL LETTER ETA WITH OXIA
+1FCC;1FCC;0397 0345;1FCC;0397 0345; # (ῌ; ῌ; Η◌ͅ; ῌ; Η◌ͅ; ) GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD;1FCD;1FBF 0300;0020 0313 0300;0020 0313 0300; # (῍; ῍; ᾿◌̀;  ◌̓◌̀;  ◌̓◌̀; ) GREEK PSILI AND VARIA
+1FCE;1FCE;1FBF 0301;0020 0313 0301;0020 0313 0301; # (῎; ῎; ᾿◌́;  ◌̓◌́;  ◌̓◌́; ) GREEK PSILI AND OXIA
+1FCF;1FCF;1FBF 0342;0020 0313 0342;0020 0313 0342; # (῏; ῏; ᾿◌͂;  ◌̓◌͂;  ◌̓◌͂; ) GREEK PSILI AND PERISPOMENI
+1FD0;1FD0;03B9 0306;1FD0;03B9 0306; # (ῐ; ῐ; ι◌̆; ῐ; ι◌̆; ) GREEK SMALL LETTER IOTA WITH VRACHY
+1FD1;1FD1;03B9 0304;1FD1;03B9 0304; # (ῑ; ῑ; ι◌̄; ῑ; ι◌̄; ) GREEK SMALL LETTER IOTA WITH MACRON
+1FD2;1FD2;03B9 0308 0300;1FD2;03B9 0308 0300; # (ῒ; ῒ; ι◌̈◌̀; ῒ; ι◌̈◌̀; ) GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3;0390;03B9 0308 0301;0390;03B9 0308 0301; # (ΐ; ΐ; ι◌̈◌́; ΐ; ι◌̈◌́; ) GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6;1FD6;03B9 0342;1FD6;03B9 0342; # (ῖ; ῖ; ι◌͂; ῖ; ι◌͂; ) GREEK SMALL LETTER IOTA WITH PERISPOMENI
+1FD7;1FD7;03B9 0308 0342;1FD7;03B9 0308 0342; # (ῗ; ῗ; ι◌̈◌͂; ῗ; ι◌̈◌͂; ) GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8;1FD8;0399 0306;1FD8;0399 0306; # (Ῐ; Ῐ; Ι◌̆; Ῐ; Ι◌̆; ) GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD9;1FD9;0399 0304;1FD9;0399 0304; # (Ῑ; Ῑ; Ι◌̄; Ῑ; Ι◌̄; ) GREEK CAPITAL LETTER IOTA WITH MACRON
+1FDA;1FDA;0399 0300;1FDA;0399 0300; # (Ὶ; Ὶ; Ι◌̀; Ὶ; Ι◌̀; ) GREEK CAPITAL LETTER IOTA WITH VARIA
+1FDB;038A;0399 0301;038A;0399 0301; # (Ί; Ί; Ι◌́; Ί; Ι◌́; ) GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD;1FDD;1FFE 0300;0020 0314 0300;0020 0314 0300; # (῝; ῝; ῾◌̀;  ◌̔◌̀;  ◌̔◌̀; ) GREEK DASIA AND VARIA
+1FDE;1FDE;1FFE 0301;0020 0314 0301;0020 0314 0301; # (῞; ῞; ῾◌́;  ◌̔◌́;  ◌̔◌́; ) GREEK DASIA AND OXIA
+1FDF;1FDF;1FFE 0342;0020 0314 0342;0020 0314 0342; # (῟; ῟; ῾◌͂;  ◌̔◌͂;  ◌̔◌͂; ) GREEK DASIA AND PERISPOMENI
+1FE0;1FE0;03C5 0306;1FE0;03C5 0306; # (ῠ; ῠ; υ◌̆; ῠ; υ◌̆; ) GREEK SMALL LETTER UPSILON WITH VRACHY
+1FE1;1FE1;03C5 0304;1FE1;03C5 0304; # (ῡ; ῡ; υ◌̄; ῡ; υ◌̄; ) GREEK SMALL LETTER UPSILON WITH MACRON
+1FE2;1FE2;03C5 0308 0300;1FE2;03C5 0308 0300; # (ῢ; ῢ; υ◌̈◌̀; ῢ; υ◌̈◌̀; ) GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3;03B0;03C5 0308 0301;03B0;03C5 0308 0301; # (ΰ; ΰ; υ◌̈◌́; ΰ; υ◌̈◌́; ) GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4;1FE4;03C1 0313;1FE4;03C1 0313; # (ῤ; ῤ; ρ◌̓; ῤ; ρ◌̓; ) GREEK SMALL LETTER RHO WITH PSILI
+1FE5;1FE5;03C1 0314;1FE5;03C1 0314; # (ῥ; ῥ; ρ◌̔; ῥ; ρ◌̔; ) GREEK SMALL LETTER RHO WITH DASIA
+1FE6;1FE6;03C5 0342;1FE6;03C5 0342; # (ῦ; ῦ; υ◌͂; ῦ; υ◌͂; ) GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+1FE7;1FE7;03C5 0308 0342;1FE7;03C5 0308 0342; # (ῧ; ῧ; υ◌̈◌͂; ῧ; υ◌̈◌͂; ) GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8;1FE8;03A5 0306;1FE8;03A5 0306; # (Ῠ; Ῠ; Υ◌̆; Ῠ; Υ◌̆; ) GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE9;1FE9;03A5 0304;1FE9;03A5 0304; # (Ῡ; Ῡ; Υ◌̄; Ῡ; Υ◌̄; ) GREEK CAPITAL LETTER UPSILON WITH MACRON
+1FEA;1FEA;03A5 0300;1FEA;03A5 0300; # (Ὺ; Ὺ; Υ◌̀; Ὺ; Υ◌̀; ) GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FEB;038E;03A5 0301;038E;03A5 0301; # (Ύ; Ύ; Υ◌́; Ύ; Υ◌́; ) GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEC;1FEC;03A1 0314;1FEC;03A1 0314; # (Ῥ; Ῥ; Ρ◌̔; Ῥ; Ρ◌̔; ) GREEK CAPITAL LETTER RHO WITH DASIA
+1FED;1FED;00A8 0300;0020 0308 0300;0020 0308 0300; # (῭; ῭; ¨◌̀;  ◌̈◌̀;  ◌̈◌̀; ) GREEK DIALYTIKA AND VARIA
+1FEE;0385;00A8 0301;0020 0308 0301;0020 0308 0301; # (΅; ΅; ¨◌́;  ◌̈◌́;  ◌̈◌́; ) GREEK DIALYTIKA AND OXIA
+1FEF;0060;0060;0060;0060; # (`; `; `; `; `; ) GREEK VARIA
+1FF2;1FF2;03C9 0300 0345;1FF2;03C9 0300 0345; # (ῲ; ῲ; ω◌̀◌ͅ; ῲ; ω◌̀◌ͅ; ) GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF3;1FF3;03C9 0345;1FF3;03C9 0345; # (ῳ; ῳ; ω◌ͅ; ῳ; ω◌ͅ; ) GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FF4;1FF4;03C9 0301 0345;1FF4;03C9 0301 0345; # (ῴ; ῴ; ω◌́◌ͅ; ῴ; ω◌́◌ͅ; ) GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6;1FF6;03C9 0342;1FF6;03C9 0342; # (ῶ; ῶ; ω◌͂; ῶ; ω◌͂; ) GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7;1FF7;03C9 0342 0345;1FF7;03C9 0342 0345; # (ῷ; ῷ; ω◌͂◌ͅ; ῷ; ω◌͂◌ͅ; ) GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF8;1FF8;039F 0300;1FF8;039F 0300; # (Ὸ; Ὸ; Ο◌̀; Ὸ; Ο◌̀; ) GREEK CAPITAL LETTER OMICRON WITH VARIA
+1FF9;038C;039F 0301;038C;039F 0301; # (Ό; Ό; Ο◌́; Ό; Ο◌́; ) GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFA;1FFA;03A9 0300;1FFA;03A9 0300; # (Ὼ; Ὼ; Ω◌̀; Ὼ; Ω◌̀; ) GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FFB;038F;03A9 0301;038F;03A9 0301; # (Ώ; Ώ; Ω◌́; Ώ; Ω◌́; ) GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFC;1FFC;03A9 0345;1FFC;03A9 0345; # (ῼ; ῼ; Ω◌ͅ; ῼ; Ω◌ͅ; ) GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD;00B4;00B4;0020 0301;0020 0301; # (´; ´; ´;  ◌́;  ◌́; ) GREEK OXIA
+1FFE;1FFE;1FFE;0020 0314;0020 0314; # (῾; ῾; ῾;  ◌̔;  ◌̔; ) GREEK DASIA
+2000;2002;2002;0020;0020; # ( ;  ;  ;  ;  ; ) EN QUAD
+2001;2003;2003;0020;0020; # ( ;  ;  ;  ;  ; ) EM QUAD
+2002;2002;2002;0020;0020; # ( ;  ;  ;  ;  ; ) EN SPACE
+2003;2003;2003;0020;0020; # ( ;  ;  ;  ;  ; ) EM SPACE
+2004;2004;2004;0020;0020; # ( ;  ;  ;  ;  ; ) THREE-PER-EM SPACE
+2005;2005;2005;0020;0020; # ( ;  ;  ;  ;  ; ) FOUR-PER-EM SPACE
+2006;2006;2006;0020;0020; # ( ;  ;  ;  ;  ; ) SIX-PER-EM SPACE
+2007;2007;2007;0020;0020; # ( ;  ;  ;  ;  ; ) FIGURE SPACE
+2008;2008;2008;0020;0020; # ( ;  ;  ;  ;  ; ) PUNCTUATION SPACE
+2009;2009;2009;0020;0020; # ( ;  ;  ;  ;  ; ) THIN SPACE
+200A;200A;200A;0020;0020; # ( ;  ;  ;  ;  ; ) HAIR SPACE
+2011;2011;2011;2010;2010; # (‑; ‑; ‑; ‐; ‐; ) NON-BREAKING HYPHEN
+2017;2017;2017;0020 0333;0020 0333; # (‗; ‗; ‗;  ◌̳;  ◌̳; ) DOUBLE LOW LINE
+2024;2024;2024;002E;002E; # (․; ․; ․; .; .; ) ONE DOT LEADER
+2025;2025;2025;002E 002E;002E 002E; # (‥; ‥; ‥; ..; ..; ) TWO DOT LEADER
+2026;2026;2026;002E 002E 002E;002E 002E 002E; # (…; …; …; ...; ...; ) HORIZONTAL ELLIPSIS
+202F;202F;202F;0020;0020; # ( ;  ;  ;  ;  ; ) NARROW NO-BREAK SPACE
+2033;2033;2033;2032 2032;2032 2032; # (″; ″; ″; ′′; ′′; ) DOUBLE PRIME
+2034;2034;2034;2032 2032 2032;2032 2032 2032; # (‴; ‴; ‴; ′′′; ′′′; ) TRIPLE PRIME
+2036;2036;2036;2035 2035;2035 2035; # (‶; ‶; ‶; ‵‵; ‵‵; ) REVERSED DOUBLE PRIME
+2037;2037;2037;2035 2035 2035;2035 2035 2035; # (‷; ‷; ‷; ‵‵‵; ‵‵‵; ) REVERSED TRIPLE PRIME
+203C;203C;203C;0021 0021;0021 0021; # (‼; ‼; ‼; !!; !!; ) DOUBLE EXCLAMATION MARK
+203E;203E;203E;0020 0305;0020 0305; # (‾; ‾; ‾;  ◌̅;  ◌̅; ) OVERLINE
+2047;2047;2047;003F 003F;003F 003F; # (⁇; ⁇; ⁇; ??; ??; ) DOUBLE QUESTION MARK
+2048;2048;2048;003F 0021;003F 0021; # (⁈; ⁈; ⁈; ?!; ?!; ) QUESTION EXCLAMATION MARK
+2049;2049;2049;0021 003F;0021 003F; # (⁉; ⁉; ⁉; !?; !?; ) EXCLAMATION QUESTION MARK
+2057;2057;2057;2032 2032 2032 2032;2032 2032 2032 2032; # (⁗; ⁗; ⁗; ′′′′; ′′′′; ) QUADRUPLE PRIME
+205F;205F;205F;0020;0020; # ( ;  ;  ;  ;  ; ) MEDIUM MATHEMATICAL SPACE
+2070;2070;2070;0030;0030; # (⁰; ⁰; ⁰; 0; 0; ) SUPERSCRIPT ZERO
+2071;2071;2071;0069;0069; # (ⁱ; ⁱ; ⁱ; i; i; ) SUPERSCRIPT LATIN SMALL LETTER I
+2074;2074;2074;0034;0034; # (⁴; ⁴; ⁴; 4; 4; ) SUPERSCRIPT FOUR
+2075;2075;2075;0035;0035; # (⁵; ⁵; ⁵; 5; 5; ) SUPERSCRIPT FIVE
+2076;2076;2076;0036;0036; # (⁶; ⁶; ⁶; 6; 6; ) SUPERSCRIPT SIX
+2077;2077;2077;0037;0037; # (⁷; ⁷; ⁷; 7; 7; ) SUPERSCRIPT SEVEN
+2078;2078;2078;0038;0038; # (⁸; ⁸; ⁸; 8; 8; ) SUPERSCRIPT EIGHT
+2079;2079;2079;0039;0039; # (⁹; ⁹; ⁹; 9; 9; ) SUPERSCRIPT NINE
+207A;207A;207A;002B;002B; # (⁺; ⁺; ⁺; +; +; ) SUPERSCRIPT PLUS SIGN
+207B;207B;207B;2212;2212; # (⁻; ⁻; ⁻; −; −; ) SUPERSCRIPT MINUS
+207C;207C;207C;003D;003D; # (⁼; ⁼; ⁼; =; =; ) SUPERSCRIPT EQUALS SIGN
+207D;207D;207D;0028;0028; # (⁽; ⁽; ⁽; (; (; ) SUPERSCRIPT LEFT PARENTHESIS
+207E;207E;207E;0029;0029; # (⁾; ⁾; ⁾; ); ); ) SUPERSCRIPT RIGHT PARENTHESIS
+207F;207F;207F;006E;006E; # (ⁿ; ⁿ; ⁿ; n; n; ) SUPERSCRIPT LATIN SMALL LETTER N
+2080;2080;2080;0030;0030; # (₀; ₀; ₀; 0; 0; ) SUBSCRIPT ZERO
+2081;2081;2081;0031;0031; # (₁; ₁; ₁; 1; 1; ) SUBSCRIPT ONE
+2082;2082;2082;0032;0032; # (₂; ₂; ₂; 2; 2; ) SUBSCRIPT TWO
+2083;2083;2083;0033;0033; # (₃; ₃; ₃; 3; 3; ) SUBSCRIPT THREE
+2084;2084;2084;0034;0034; # (₄; ₄; ₄; 4; 4; ) SUBSCRIPT FOUR
+2085;2085;2085;0035;0035; # (₅; ₅; ₅; 5; 5; ) SUBSCRIPT FIVE
+2086;2086;2086;0036;0036; # (₆; ₆; ₆; 6; 6; ) SUBSCRIPT SIX
+2087;2087;2087;0037;0037; # (₇; ₇; ₇; 7; 7; ) SUBSCRIPT SEVEN
+2088;2088;2088;0038;0038; # (₈; ₈; ₈; 8; 8; ) SUBSCRIPT EIGHT
+2089;2089;2089;0039;0039; # (₉; ₉; ₉; 9; 9; ) SUBSCRIPT NINE
+208A;208A;208A;002B;002B; # (₊; ₊; ₊; +; +; ) SUBSCRIPT PLUS SIGN
+208B;208B;208B;2212;2212; # (₋; ₋; ₋; −; −; ) SUBSCRIPT MINUS
+208C;208C;208C;003D;003D; # (₌; ₌; ₌; =; =; ) SUBSCRIPT EQUALS SIGN
+208D;208D;208D;0028;0028; # (₍; ₍; ₍; (; (; ) SUBSCRIPT LEFT PARENTHESIS
+208E;208E;208E;0029;0029; # (₎; ₎; ₎; ); ); ) SUBSCRIPT RIGHT PARENTHESIS
+2090;2090;2090;0061;0061; # (ₐ; ₐ; ₐ; a; a; ) LATIN SUBSCRIPT SMALL LETTER A
+2091;2091;2091;0065;0065; # (ₑ; ₑ; ₑ; e; e; ) LATIN SUBSCRIPT SMALL LETTER E
+2092;2092;2092;006F;006F; # (ₒ; ₒ; ₒ; o; o; ) LATIN SUBSCRIPT SMALL LETTER O
+2093;2093;2093;0078;0078; # (ₓ; ₓ; ₓ; x; x; ) LATIN SUBSCRIPT SMALL LETTER X
+2094;2094;2094;0259;0259; # (ₔ; ₔ; ₔ; ə; ə; ) LATIN SUBSCRIPT SMALL LETTER SCHWA
+2095;2095;2095;0068;0068; # (ₕ; ₕ; ₕ; h; h; ) LATIN SUBSCRIPT SMALL LETTER H
+2096;2096;2096;006B;006B; # (ₖ; ₖ; ₖ; k; k; ) LATIN SUBSCRIPT SMALL LETTER K
+2097;2097;2097;006C;006C; # (ₗ; ₗ; ₗ; l; l; ) LATIN SUBSCRIPT SMALL LETTER L
+2098;2098;2098;006D;006D; # (ₘ; ₘ; ₘ; m; m; ) LATIN SUBSCRIPT SMALL LETTER M
+2099;2099;2099;006E;006E; # (ₙ; ₙ; ₙ; n; n; ) LATIN SUBSCRIPT SMALL LETTER N
+209A;209A;209A;0070;0070; # (ₚ; ₚ; ₚ; p; p; ) LATIN SUBSCRIPT SMALL LETTER P
+209B;209B;209B;0073;0073; # (ₛ; ₛ; ₛ; s; s; ) LATIN SUBSCRIPT SMALL LETTER S
+209C;209C;209C;0074;0074; # (ₜ; ₜ; ₜ; t; t; ) LATIN SUBSCRIPT SMALL LETTER T
+20A8;20A8;20A8;0052 0073;0052 0073; # (₨; ₨; ₨; Rs; Rs; ) RUPEE SIGN
+2100;2100;2100;0061 002F 0063;0061 002F 0063; # (℀; ℀; ℀; a/c; a/c; ) ACCOUNT OF
+2101;2101;2101;0061 002F 0073;0061 002F 0073; # (℁; ℁; ℁; a/s; a/s; ) ADDRESSED TO THE SUBJECT
+2102;2102;2102;0043;0043; # (ℂ; ℂ; ℂ; C; C; ) DOUBLE-STRUCK CAPITAL C
+2103;2103;2103;00B0 0043;00B0 0043; # (℃; ℃; ℃; °C; °C; ) DEGREE CELSIUS
+2105;2105;2105;0063 002F 006F;0063 002F 006F; # (℅; ℅; ℅; c/o; c/o; ) CARE OF
+2106;2106;2106;0063 002F 0075;0063 002F 0075; # (℆; ℆; ℆; c/u; c/u; ) CADA UNA
+2107;2107;2107;0190;0190; # (ℇ; ℇ; ℇ; Ɛ; Ɛ; ) EULER CONSTANT
+2109;2109;2109;00B0 0046;00B0 0046; # (℉; ℉; ℉; °F; °F; ) DEGREE FAHRENHEIT
+210A;210A;210A;0067;0067; # (ℊ; ℊ; ℊ; g; g; ) SCRIPT SMALL G
+210B;210B;210B;0048;0048; # (ℋ; ℋ; ℋ; H; H; ) SCRIPT CAPITAL H
+210C;210C;210C;0048;0048; # (ℌ; ℌ; ℌ; H; H; ) BLACK-LETTER CAPITAL H
+210D;210D;210D;0048;0048; # (ℍ; ℍ; ℍ; H; H; ) DOUBLE-STRUCK CAPITAL H
+210E;210E;210E;0068;0068; # (ℎ; ℎ; ℎ; h; h; ) PLANCK CONSTANT
+210F;210F;210F;0127;0127; # (ℏ; ℏ; ℏ; ħ; ħ; ) PLANCK CONSTANT OVER TWO PI
+2110;2110;2110;0049;0049; # (ℐ; ℐ; ℐ; I; I; ) SCRIPT CAPITAL I
+2111;2111;2111;0049;0049; # (ℑ; ℑ; ℑ; I; I; ) BLACK-LETTER CAPITAL I
+2112;2112;2112;004C;004C; # (ℒ; ℒ; ℒ; L; L; ) SCRIPT CAPITAL L
+2113;2113;2113;006C;006C; # (ℓ; ℓ; ℓ; l; l; ) SCRIPT SMALL L
+2115;2115;2115;004E;004E; # (ℕ; ℕ; ℕ; N; N; ) DOUBLE-STRUCK CAPITAL N
+2116;2116;2116;004E 006F;004E 006F; # (№; №; №; No; No; ) NUMERO SIGN
+2119;2119;2119;0050;0050; # (ℙ; ℙ; ℙ; P; P; ) DOUBLE-STRUCK CAPITAL P
+211A;211A;211A;0051;0051; # (ℚ; ℚ; ℚ; Q; Q; ) DOUBLE-STRUCK CAPITAL Q
+211B;211B;211B;0052;0052; # (ℛ; ℛ; ℛ; R; R; ) SCRIPT CAPITAL R
+211C;211C;211C;0052;0052; # (ℜ; ℜ; ℜ; R; R; ) BLACK-LETTER CAPITAL R
+211D;211D;211D;0052;0052; # (ℝ; ℝ; ℝ; R; R; ) DOUBLE-STRUCK CAPITAL R
+2120;2120;2120;0053 004D;0053 004D; # (℠; ℠; ℠; SM; SM; ) SERVICE MARK
+2121;2121;2121;0054 0045 004C;0054 0045 004C; # (℡; ℡; ℡; TEL; TEL; ) TELEPHONE SIGN
+2122;2122;2122;0054 004D;0054 004D; # (™; ™; ™; TM; TM; ) TRADE MARK SIGN
+2124;2124;2124;005A;005A; # (ℤ; ℤ; ℤ; Z; Z; ) DOUBLE-STRUCK CAPITAL Z
+2126;03A9;03A9;03A9;03A9; # (Ω; Ω; Ω; Ω; Ω; ) OHM SIGN
+2128;2128;2128;005A;005A; # (ℨ; ℨ; ℨ; Z; Z; ) BLACK-LETTER CAPITAL Z
+212A;004B;004B;004B;004B; # (K; K; K; K; K; ) KELVIN SIGN
+212B;00C5;0041 030A;00C5;0041 030A; # (Å; Å; A◌̊; Å; A◌̊; ) ANGSTROM SIGN
+212C;212C;212C;0042;0042; # (ℬ; ℬ; ℬ; B; B; ) SCRIPT CAPITAL B
+212D;212D;212D;0043;0043; # (ℭ; ℭ; ℭ; C; C; ) BLACK-LETTER CAPITAL C
+212F;212F;212F;0065;0065; # (ℯ; ℯ; ℯ; e; e; ) SCRIPT SMALL E
+2130;2130;2130;0045;0045; # (ℰ; ℰ; ℰ; E; E; ) SCRIPT CAPITAL E
+2131;2131;2131;0046;0046; # (ℱ; ℱ; ℱ; F; F; ) SCRIPT CAPITAL F
+2133;2133;2133;004D;004D; # (ℳ; ℳ; ℳ; M; M; ) SCRIPT CAPITAL M
+2134;2134;2134;006F;006F; # (ℴ; ℴ; ℴ; o; o; ) SCRIPT SMALL O
+2135;2135;2135;05D0;05D0; # (ℵ; ℵ; ℵ; א; א; ) ALEF SYMBOL
+2136;2136;2136;05D1;05D1; # (ℶ; ℶ; ℶ; ב; ב; ) BET SYMBOL
+2137;2137;2137;05D2;05D2; # (ℷ; ℷ; ℷ; ג; ג; ) GIMEL SYMBOL
+2138;2138;2138;05D3;05D3; # (ℸ; ℸ; ℸ; ד; ד; ) DALET SYMBOL
+2139;2139;2139;0069;0069; # (ℹ; ℹ; ℹ; i; i; ) INFORMATION SOURCE
+213B;213B;213B;0046 0041 0058;0046 0041 0058; # (℻; ℻; ℻; FAX; FAX; ) FACSIMILE SIGN
+213C;213C;213C;03C0;03C0; # (ℼ; ℼ; ℼ; π; π; ) DOUBLE-STRUCK SMALL PI
+213D;213D;213D;03B3;03B3; # (ℽ; ℽ; ℽ; γ; γ; ) DOUBLE-STRUCK SMALL GAMMA
+213E;213E;213E;0393;0393; # (ℾ; ℾ; ℾ; Γ; Γ; ) DOUBLE-STRUCK CAPITAL GAMMA
+213F;213F;213F;03A0;03A0; # (ℿ; ℿ; ℿ; Π; Π; ) DOUBLE-STRUCK CAPITAL PI
+2140;2140;2140;2211;2211; # (⅀; ⅀; ⅀; ∑; ∑; ) DOUBLE-STRUCK N-ARY SUMMATION
+2145;2145;2145;0044;0044; # (ⅅ; ⅅ; ⅅ; D; D; ) DOUBLE-STRUCK ITALIC CAPITAL D
+2146;2146;2146;0064;0064; # (ⅆ; ⅆ; ⅆ; d; d; ) DOUBLE-STRUCK ITALIC SMALL D
+2147;2147;2147;0065;0065; # (ⅇ; ⅇ; ⅇ; e; e; ) DOUBLE-STRUCK ITALIC SMALL E
+2148;2148;2148;0069;0069; # (ⅈ; ⅈ; ⅈ; i; i; ) DOUBLE-STRUCK ITALIC SMALL I
+2149;2149;2149;006A;006A; # (ⅉ; ⅉ; ⅉ; j; j; ) DOUBLE-STRUCK ITALIC SMALL J
+2150;2150;2150;0031 2044 0037;0031 2044 0037; # (⅐; ⅐; ⅐; 1⁄7; 1⁄7; ) VULGAR FRACTION ONE SEVENTH
+2151;2151;2151;0031 2044 0039;0031 2044 0039; # (⅑; ⅑; ⅑; 1⁄9; 1⁄9; ) VULGAR FRACTION ONE NINTH
+2152;2152;2152;0031 2044 0031 0030;0031 2044 0031 0030; # (⅒; ⅒; ⅒; 1⁄10; 1⁄10; ) VULGAR FRACTION ONE TENTH
+2153;2153;2153;0031 2044 0033;0031 2044 0033; # (⅓; ⅓; ⅓; 1⁄3; 1⁄3; ) VULGAR FRACTION ONE THIRD
+2154;2154;2154;0032 2044 0033;0032 2044 0033; # (⅔; ⅔; ⅔; 2⁄3; 2⁄3; ) VULGAR FRACTION TWO THIRDS
+2155;2155;2155;0031 2044 0035;0031 2044 0035; # (⅕; ⅕; ⅕; 1⁄5; 1⁄5; ) VULGAR FRACTION ONE FIFTH
+2156;2156;2156;0032 2044 0035;0032 2044 0035; # (⅖; ⅖; ⅖; 2⁄5; 2⁄5; ) VULGAR FRACTION TWO FIFTHS
+2157;2157;2157;0033 2044 0035;0033 2044 0035; # (⅗; ⅗; ⅗; 3⁄5; 3⁄5; ) VULGAR FRACTION THREE FIFTHS
+2158;2158;2158;0034 2044 0035;0034 2044 0035; # (⅘; ⅘; ⅘; 4⁄5; 4⁄5; ) VULGAR FRACTION FOUR FIFTHS
+2159;2159;2159;0031 2044 0036;0031 2044 0036; # (⅙; ⅙; ⅙; 1⁄6; 1⁄6; ) VULGAR FRACTION ONE SIXTH
+215A;215A;215A;0035 2044 0036;0035 2044 0036; # (⅚; ⅚; ⅚; 5⁄6; 5⁄6; ) VULGAR FRACTION FIVE SIXTHS
+215B;215B;215B;0031 2044 0038;0031 2044 0038; # (⅛; ⅛; ⅛; 1⁄8; 1⁄8; ) VULGAR FRACTION ONE EIGHTH
+215C;215C;215C;0033 2044 0038;0033 2044 0038; # (⅜; ⅜; ⅜; 3⁄8; 3⁄8; ) VULGAR FRACTION THREE EIGHTHS
+215D;215D;215D;0035 2044 0038;0035 2044 0038; # (⅝; ⅝; ⅝; 5⁄8; 5⁄8; ) VULGAR FRACTION FIVE EIGHTHS
+215E;215E;215E;0037 2044 0038;0037 2044 0038; # (⅞; ⅞; ⅞; 7⁄8; 7⁄8; ) VULGAR FRACTION SEVEN EIGHTHS
+215F;215F;215F;0031 2044;0031 2044; # (⅟; ⅟; ⅟; 1⁄; 1⁄; ) FRACTION NUMERATOR ONE
+2160;2160;2160;0049;0049; # (Ⅰ; Ⅰ; Ⅰ; I; I; ) ROMAN NUMERAL ONE
+2161;2161;2161;0049 0049;0049 0049; # (Ⅱ; Ⅱ; Ⅱ; II; II; ) ROMAN NUMERAL TWO
+2162;2162;2162;0049 0049 0049;0049 0049 0049; # (Ⅲ; Ⅲ; Ⅲ; III; III; ) ROMAN NUMERAL THREE
+2163;2163;2163;0049 0056;0049 0056; # (Ⅳ; Ⅳ; Ⅳ; IV; IV; ) ROMAN NUMERAL FOUR
+2164;2164;2164;0056;0056; # (Ⅴ; Ⅴ; Ⅴ; V; V; ) ROMAN NUMERAL FIVE
+2165;2165;2165;0056 0049;0056 0049; # (Ⅵ; Ⅵ; Ⅵ; VI; VI; ) ROMAN NUMERAL SIX
+2166;2166;2166;0056 0049 0049;0056 0049 0049; # (Ⅶ; Ⅶ; Ⅶ; VII; VII; ) ROMAN NUMERAL SEVEN
+2167;2167;2167;0056 0049 0049 0049;0056 0049 0049 0049; # (Ⅷ; Ⅷ; Ⅷ; VIII; VIII; ) ROMAN NUMERAL EIGHT
+2168;2168;2168;0049 0058;0049 0058; # (Ⅸ; Ⅸ; Ⅸ; IX; IX; ) ROMAN NUMERAL NINE
+2169;2169;2169;0058;0058; # (Ⅹ; Ⅹ; Ⅹ; X; X; ) ROMAN NUMERAL TEN
+216A;216A;216A;0058 0049;0058 0049; # (Ⅺ; Ⅺ; Ⅺ; XI; XI; ) ROMAN NUMERAL ELEVEN
+216B;216B;216B;0058 0049 0049;0058 0049 0049; # (Ⅻ; Ⅻ; Ⅻ; XII; XII; ) ROMAN NUMERAL TWELVE
+216C;216C;216C;004C;004C; # (Ⅼ; Ⅼ; Ⅼ; L; L; ) ROMAN NUMERAL FIFTY
+216D;216D;216D;0043;0043; # (Ⅽ; Ⅽ; Ⅽ; C; C; ) ROMAN NUMERAL ONE HUNDRED
+216E;216E;216E;0044;0044; # (Ⅾ; Ⅾ; Ⅾ; D; D; ) ROMAN NUMERAL FIVE HUNDRED
+216F;216F;216F;004D;004D; # (Ⅿ; Ⅿ; Ⅿ; M; M; ) ROMAN NUMERAL ONE THOUSAND
+2170;2170;2170;0069;0069; # (ⅰ; ⅰ; ⅰ; i; i; ) SMALL ROMAN NUMERAL ONE
+2171;2171;2171;0069 0069;0069 0069; # (ⅱ; ⅱ; ⅱ; ii; ii; ) SMALL ROMAN NUMERAL TWO
+2172;2172;2172;0069 0069 0069;0069 0069 0069; # (ⅲ; ⅲ; ⅲ; iii; iii; ) SMALL ROMAN NUMERAL THREE
+2173;2173;2173;0069 0076;0069 0076; # (ⅳ; ⅳ; ⅳ; iv; iv; ) SMALL ROMAN NUMERAL FOUR
+2174;2174;2174;0076;0076; # (ⅴ; ⅴ; ⅴ; v; v; ) SMALL ROMAN NUMERAL FIVE
+2175;2175;2175;0076 0069;0076 0069; # (ⅵ; ⅵ; ⅵ; vi; vi; ) SMALL ROMAN NUMERAL SIX
+2176;2176;2176;0076 0069 0069;0076 0069 0069; # (ⅶ; ⅶ; ⅶ; vii; vii; ) SMALL ROMAN NUMERAL SEVEN
+2177;2177;2177;0076 0069 0069 0069;0076 0069 0069 0069; # (ⅷ; ⅷ; ⅷ; viii; viii; ) SMALL ROMAN NUMERAL EIGHT
+2178;2178;2178;0069 0078;0069 0078; # (ⅸ; ⅸ; ⅸ; ix; ix; ) SMALL ROMAN NUMERAL NINE
+2179;2179;2179;0078;0078; # (ⅹ; ⅹ; ⅹ; x; x; ) SMALL ROMAN NUMERAL TEN
+217A;217A;217A;0078 0069;0078 0069; # (ⅺ; ⅺ; ⅺ; xi; xi; ) SMALL ROMAN NUMERAL ELEVEN
+217B;217B;217B;0078 0069 0069;0078 0069 0069; # (ⅻ; ⅻ; ⅻ; xii; xii; ) SMALL ROMAN NUMERAL TWELVE
+217C;217C;217C;006C;006C; # (ⅼ; ⅼ; ⅼ; l; l; ) SMALL ROMAN NUMERAL FIFTY
+217D;217D;217D;0063;0063; # (ⅽ; ⅽ; ⅽ; c; c; ) SMALL ROMAN NUMERAL ONE HUNDRED
+217E;217E;217E;0064;0064; # (ⅾ; ⅾ; ⅾ; d; d; ) SMALL ROMAN NUMERAL FIVE HUNDRED
+217F;217F;217F;006D;006D; # (ⅿ; ⅿ; ⅿ; m; m; ) SMALL ROMAN NUMERAL ONE THOUSAND
+2189;2189;2189;0030 2044 0033;0030 2044 0033; # (↉; ↉; ↉; 0⁄3; 0⁄3; ) VULGAR FRACTION ZERO THIRDS
+219A;219A;2190 0338;219A;2190 0338; # (↚; ↚; ←◌̸; ↚; ←◌̸; ) LEFTWARDS ARROW WITH STROKE
+219B;219B;2192 0338;219B;2192 0338; # (↛; ↛; →◌̸; ↛; →◌̸; ) RIGHTWARDS ARROW WITH STROKE
+21AE;21AE;2194 0338;21AE;2194 0338; # (↮; ↮; ↔◌̸; ↮; ↔◌̸; ) LEFT RIGHT ARROW WITH STROKE
+21CD;21CD;21D0 0338;21CD;21D0 0338; # (⇍; ⇍; ⇐◌̸; ⇍; ⇐◌̸; ) LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE;21CE;21D4 0338;21CE;21D4 0338; # (⇎; ⇎; ⇔◌̸; ⇎; ⇔◌̸; ) LEFT RIGHT DOUBLE ARROW WITH STROKE
+21CF;21CF;21D2 0338;21CF;21D2 0338; # (⇏; ⇏; ⇒◌̸; ⇏; ⇒◌̸; ) RIGHTWARDS DOUBLE ARROW WITH STROKE
+2204;2204;2203 0338;2204;2203 0338; # (∄; ∄; ∃◌̸; ∄; ∃◌̸; ) THERE DOES NOT EXIST
+2209;2209;2208 0338;2209;2208 0338; # (∉; ∉; ∈◌̸; ∉; ∈◌̸; ) NOT AN ELEMENT OF
+220C;220C;220B 0338;220C;220B 0338; # (∌; ∌; ∋◌̸; ∌; ∋◌̸; ) DOES NOT CONTAIN AS MEMBER
+2224;2224;2223 0338;2224;2223 0338; # (∤; ∤; ∣◌̸; ∤; ∣◌̸; ) DOES NOT DIVIDE
+2226;2226;2225 0338;2226;2225 0338; # (∦; ∦; ∥◌̸; ∦; ∥◌̸; ) NOT PARALLEL TO
+222C;222C;222C;222B 222B;222B 222B; # (∬; ∬; ∬; ∫∫; ∫∫; ) DOUBLE INTEGRAL
+222D;222D;222D;222B 222B 222B;222B 222B 222B; # (∭; ∭; ∭; ∫∫∫; ∫∫∫; ) TRIPLE INTEGRAL
+222F;222F;222F;222E 222E;222E 222E; # (∯; ∯; ∯; ∮∮; ∮∮; ) SURFACE INTEGRAL
+2230;2230;2230;222E 222E 222E;222E 222E 222E; # (∰; ∰; ∰; ∮∮∮; ∮∮∮; ) VOLUME INTEGRAL
+2241;2241;223C 0338;2241;223C 0338; # (≁; ≁; ∼◌̸; ≁; ∼◌̸; ) NOT TILDE
+2244;2244;2243 0338;2244;2243 0338; # (≄; ≄; ≃◌̸; ≄; ≃◌̸; ) NOT ASYMPTOTICALLY EQUAL TO
+2247;2247;2245 0338;2247;2245 0338; # (≇; ≇; ≅◌̸; ≇; ≅◌̸; ) NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2249;2249;2248 0338;2249;2248 0338; # (≉; ≉; ≈◌̸; ≉; ≈◌̸; ) NOT ALMOST EQUAL TO
+2260;2260;003D 0338;2260;003D 0338; # (≠; ≠; =◌̸; ≠; =◌̸; ) NOT EQUAL TO
+2262;2262;2261 0338;2262;2261 0338; # (≢; ≢; ≡◌̸; ≢; ≡◌̸; ) NOT IDENTICAL TO
+226D;226D;224D 0338;226D;224D 0338; # (≭; ≭; ≍◌̸; ≭; ≍◌̸; ) NOT EQUIVALENT TO
+226E;226E;003C 0338;226E;003C 0338; # (≮; ≮; <◌̸; ≮; <◌̸; ) NOT LESS-THAN
+226F;226F;003E 0338;226F;003E 0338; # (≯; ≯; >◌̸; ≯; >◌̸; ) NOT GREATER-THAN
+2270;2270;2264 0338;2270;2264 0338; # (≰; ≰; ≤◌̸; ≰; ≤◌̸; ) NEITHER LESS-THAN NOR EQUAL TO
+2271;2271;2265 0338;2271;2265 0338; # (≱; ≱; ≥◌̸; ≱; ≥◌̸; ) NEITHER GREATER-THAN NOR EQUAL TO
+2274;2274;2272 0338;2274;2272 0338; # (≴; ≴; ≲◌̸; ≴; ≲◌̸; ) NEITHER LESS-THAN NOR EQUIVALENT TO
+2275;2275;2273 0338;2275;2273 0338; # (≵; ≵; ≳◌̸; ≵; ≳◌̸; ) NEITHER GREATER-THAN NOR EQUIVALENT TO
+2278;2278;2276 0338;2278;2276 0338; # (≸; ≸; ≶◌̸; ≸; ≶◌̸; ) NEITHER LESS-THAN NOR GREATER-THAN
+2279;2279;2277 0338;2279;2277 0338; # (≹; ≹; ≷◌̸; ≹; ≷◌̸; ) NEITHER GREATER-THAN NOR LESS-THAN
+2280;2280;227A 0338;2280;227A 0338; # (⊀; ⊀; ≺◌̸; ⊀; ≺◌̸; ) DOES NOT PRECEDE
+2281;2281;227B 0338;2281;227B 0338; # (⊁; ⊁; ≻◌̸; ⊁; ≻◌̸; ) DOES NOT SUCCEED
+2284;2284;2282 0338;2284;2282 0338; # (⊄; ⊄; ⊂◌̸; ⊄; ⊂◌̸; ) NOT A SUBSET OF
+2285;2285;2283 0338;2285;2283 0338; # (⊅; ⊅; ⊃◌̸; ⊅; ⊃◌̸; ) NOT A SUPERSET OF
+2288;2288;2286 0338;2288;2286 0338; # (⊈; ⊈; ⊆◌̸; ⊈; ⊆◌̸; ) NEITHER A SUBSET OF NOR EQUAL TO
+2289;2289;2287 0338;2289;2287 0338; # (⊉; ⊉; ⊇◌̸; ⊉; ⊇◌̸; ) NEITHER A SUPERSET OF NOR EQUAL TO
+22AC;22AC;22A2 0338;22AC;22A2 0338; # (⊬; ⊬; ⊢◌̸; ⊬; ⊢◌̸; ) DOES NOT PROVE
+22AD;22AD;22A8 0338;22AD;22A8 0338; # (⊭; ⊭; ⊨◌̸; ⊭; ⊨◌̸; ) NOT TRUE
+22AE;22AE;22A9 0338;22AE;22A9 0338; # (⊮; ⊮; ⊩◌̸; ⊮; ⊩◌̸; ) DOES NOT FORCE
+22AF;22AF;22AB 0338;22AF;22AB 0338; # (⊯; ⊯; ⊫◌̸; ⊯; ⊫◌̸; ) NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22E0;22E0;227C 0338;22E0;227C 0338; # (⋠; ⋠; ≼◌̸; ⋠; ≼◌̸; ) DOES NOT PRECEDE OR EQUAL
+22E1;22E1;227D 0338;22E1;227D 0338; # (⋡; ⋡; ≽◌̸; ⋡; ≽◌̸; ) DOES NOT SUCCEED OR EQUAL
+22E2;22E2;2291 0338;22E2;2291 0338; # (⋢; ⋢; ⊑◌̸; ⋢; ⊑◌̸; ) NOT SQUARE IMAGE OF OR EQUAL TO
+22E3;22E3;2292 0338;22E3;2292 0338; # (⋣; ⋣; ⊒◌̸; ⋣; ⊒◌̸; ) NOT SQUARE ORIGINAL OF OR EQUAL TO
+22EA;22EA;22B2 0338;22EA;22B2 0338; # (⋪; ⋪; ⊲◌̸; ⋪; ⊲◌̸; ) NOT NORMAL SUBGROUP OF
+22EB;22EB;22B3 0338;22EB;22B3 0338; # (⋫; ⋫; ⊳◌̸; ⋫; ⊳◌̸; ) DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC;22EC;22B4 0338;22EC;22B4 0338; # (⋬; ⋬; ⊴◌̸; ⋬; ⊴◌̸; ) NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED;22ED;22B5 0338;22ED;22B5 0338; # (⋭; ⋭; ⊵◌̸; ⋭; ⊵◌̸; ) DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+2329;3008;3008;3008;3008; # (〈; 〈; 〈; 〈; 〈; ) LEFT-POINTING ANGLE BRACKET
+232A;3009;3009;3009;3009; # (〉; 〉; 〉; 〉; 〉; ) RIGHT-POINTING ANGLE BRACKET
+2460;2460;2460;0031;0031; # (①; ①; ①; 1; 1; ) CIRCLED DIGIT ONE
+2461;2461;2461;0032;0032; # (②; ②; ②; 2; 2; ) CIRCLED DIGIT TWO
+2462;2462;2462;0033;0033; # (③; ③; ③; 3; 3; ) CIRCLED DIGIT THREE
+2463;2463;2463;0034;0034; # (④; ④; ④; 4; 4; ) CIRCLED DIGIT FOUR
+2464;2464;2464;0035;0035; # (⑤; ⑤; ⑤; 5; 5; ) CIRCLED DIGIT FIVE
+2465;2465;2465;0036;0036; # (⑥; ⑥; ⑥; 6; 6; ) CIRCLED DIGIT SIX
+2466;2466;2466;0037;0037; # (⑦; ⑦; ⑦; 7; 7; ) CIRCLED DIGIT SEVEN
+2467;2467;2467;0038;0038; # (⑧; ⑧; ⑧; 8; 8; ) CIRCLED DIGIT EIGHT
+2468;2468;2468;0039;0039; # (⑨; ⑨; ⑨; 9; 9; ) CIRCLED DIGIT NINE
+2469;2469;2469;0031 0030;0031 0030; # (⑩; ⑩; ⑩; 10; 10; ) CIRCLED NUMBER TEN
+246A;246A;246A;0031 0031;0031 0031; # (⑪; ⑪; ⑪; 11; 11; ) CIRCLED NUMBER ELEVEN
+246B;246B;246B;0031 0032;0031 0032; # (⑫; ⑫; ⑫; 12; 12; ) CIRCLED NUMBER TWELVE
+246C;246C;246C;0031 0033;0031 0033; # (⑬; ⑬; ⑬; 13; 13; ) CIRCLED NUMBER THIRTEEN
+246D;246D;246D;0031 0034;0031 0034; # (⑭; ⑭; ⑭; 14; 14; ) CIRCLED NUMBER FOURTEEN
+246E;246E;246E;0031 0035;0031 0035; # (⑮; ⑮; ⑮; 15; 15; ) CIRCLED NUMBER FIFTEEN
+246F;246F;246F;0031 0036;0031 0036; # (⑯; ⑯; ⑯; 16; 16; ) CIRCLED NUMBER SIXTEEN
+2470;2470;2470;0031 0037;0031 0037; # (⑰; ⑰; ⑰; 17; 17; ) CIRCLED NUMBER SEVENTEEN
+2471;2471;2471;0031 0038;0031 0038; # (⑱; ⑱; ⑱; 18; 18; ) CIRCLED NUMBER EIGHTEEN
+2472;2472;2472;0031 0039;0031 0039; # (⑲; ⑲; ⑲; 19; 19; ) CIRCLED NUMBER NINETEEN
+2473;2473;2473;0032 0030;0032 0030; # (⑳; ⑳; ⑳; 20; 20; ) CIRCLED NUMBER TWENTY
+2474;2474;2474;0028 0031 0029;0028 0031 0029; # (⑴; ⑴; ⑴; (1); (1); ) PARENTHESIZED DIGIT ONE
+2475;2475;2475;0028 0032 0029;0028 0032 0029; # (⑵; ⑵; ⑵; (2); (2); ) PARENTHESIZED DIGIT TWO
+2476;2476;2476;0028 0033 0029;0028 0033 0029; # (⑶; ⑶; ⑶; (3); (3); ) PARENTHESIZED DIGIT THREE
+2477;2477;2477;0028 0034 0029;0028 0034 0029; # (⑷; ⑷; ⑷; (4); (4); ) PARENTHESIZED DIGIT FOUR
+2478;2478;2478;0028 0035 0029;0028 0035 0029; # (⑸; ⑸; ⑸; (5); (5); ) PARENTHESIZED DIGIT FIVE
+2479;2479;2479;0028 0036 0029;0028 0036 0029; # (⑹; ⑹; ⑹; (6); (6); ) PARENTHESIZED DIGIT SIX
+247A;247A;247A;0028 0037 0029;0028 0037 0029; # (⑺; ⑺; ⑺; (7); (7); ) PARENTHESIZED DIGIT SEVEN
+247B;247B;247B;0028 0038 0029;0028 0038 0029; # (⑻; ⑻; ⑻; (8); (8); ) PARENTHESIZED DIGIT EIGHT
+247C;247C;247C;0028 0039 0029;0028 0039 0029; # (⑼; ⑼; ⑼; (9); (9); ) PARENTHESIZED DIGIT NINE
+247D;247D;247D;0028 0031 0030 0029;0028 0031 0030 0029; # (⑽; ⑽; ⑽; (10); (10); ) PARENTHESIZED NUMBER TEN
+247E;247E;247E;0028 0031 0031 0029;0028 0031 0031 0029; # (⑾; ⑾; ⑾; (11); (11); ) PARENTHESIZED NUMBER ELEVEN
+247F;247F;247F;0028 0031 0032 0029;0028 0031 0032 0029; # (⑿; ⑿; ⑿; (12); (12); ) PARENTHESIZED NUMBER TWELVE
+2480;2480;2480;0028 0031 0033 0029;0028 0031 0033 0029; # (⒀; ⒀; ⒀; (13); (13); ) PARENTHESIZED NUMBER THIRTEEN
+2481;2481;2481;0028 0031 0034 0029;0028 0031 0034 0029; # (⒁; ⒁; ⒁; (14); (14); ) PARENTHESIZED NUMBER FOURTEEN
+2482;2482;2482;0028 0031 0035 0029;0028 0031 0035 0029; # (⒂; ⒂; ⒂; (15); (15); ) PARENTHESIZED NUMBER FIFTEEN
+2483;2483;2483;0028 0031 0036 0029;0028 0031 0036 0029; # (⒃; ⒃; ⒃; (16); (16); ) PARENTHESIZED NUMBER SIXTEEN
+2484;2484;2484;0028 0031 0037 0029;0028 0031 0037 0029; # (⒄; ⒄; ⒄; (17); (17); ) PARENTHESIZED NUMBER SEVENTEEN
+2485;2485;2485;0028 0031 0038 0029;0028 0031 0038 0029; # (⒅; ⒅; ⒅; (18); (18); ) PARENTHESIZED NUMBER EIGHTEEN
+2486;2486;2486;0028 0031 0039 0029;0028 0031 0039 0029; # (⒆; ⒆; ⒆; (19); (19); ) PARENTHESIZED NUMBER NINETEEN
+2487;2487;2487;0028 0032 0030 0029;0028 0032 0030 0029; # (⒇; ⒇; ⒇; (20); (20); ) PARENTHESIZED NUMBER TWENTY
+2488;2488;2488;0031 002E;0031 002E; # (⒈; ⒈; ⒈; 1.; 1.; ) DIGIT ONE FULL STOP
+2489;2489;2489;0032 002E;0032 002E; # (⒉; ⒉; ⒉; 2.; 2.; ) DIGIT TWO FULL STOP
+248A;248A;248A;0033 002E;0033 002E; # (⒊; ⒊; ⒊; 3.; 3.; ) DIGIT THREE FULL STOP
+248B;248B;248B;0034 002E;0034 002E; # (⒋; ⒋; ⒋; 4.; 4.; ) DIGIT FOUR FULL STOP
+248C;248C;248C;0035 002E;0035 002E; # (⒌; ⒌; ⒌; 5.; 5.; ) DIGIT FIVE FULL STOP
+248D;248D;248D;0036 002E;0036 002E; # (⒍; ⒍; ⒍; 6.; 6.; ) DIGIT SIX FULL STOP
+248E;248E;248E;0037 002E;0037 002E; # (⒎; ⒎; ⒎; 7.; 7.; ) DIGIT SEVEN FULL STOP
+248F;248F;248F;0038 002E;0038 002E; # (⒏; ⒏; ⒏; 8.; 8.; ) DIGIT EIGHT FULL STOP
+2490;2490;2490;0039 002E;0039 002E; # (⒐; ⒐; ⒐; 9.; 9.; ) DIGIT NINE FULL STOP
+2491;2491;2491;0031 0030 002E;0031 0030 002E; # (⒑; ⒑; ⒑; 10.; 10.; ) NUMBER TEN FULL STOP
+2492;2492;2492;0031 0031 002E;0031 0031 002E; # (⒒; ⒒; ⒒; 11.; 11.; ) NUMBER ELEVEN FULL STOP
+2493;2493;2493;0031 0032 002E;0031 0032 002E; # (⒓; ⒓; ⒓; 12.; 12.; ) NUMBER TWELVE FULL STOP
+2494;2494;2494;0031 0033 002E;0031 0033 002E; # (⒔; ⒔; ⒔; 13.; 13.; ) NUMBER THIRTEEN FULL STOP
+2495;2495;2495;0031 0034 002E;0031 0034 002E; # (⒕; ⒕; ⒕; 14.; 14.; ) NUMBER FOURTEEN FULL STOP
+2496;2496;2496;0031 0035 002E;0031 0035 002E; # (⒖; ⒖; ⒖; 15.; 15.; ) NUMBER FIFTEEN FULL STOP
+2497;2497;2497;0031 0036 002E;0031 0036 002E; # (⒗; ⒗; ⒗; 16.; 16.; ) NUMBER SIXTEEN FULL STOP
+2498;2498;2498;0031 0037 002E;0031 0037 002E; # (⒘; ⒘; ⒘; 17.; 17.; ) NUMBER SEVENTEEN FULL STOP
+2499;2499;2499;0031 0038 002E;0031 0038 002E; # (⒙; ⒙; ⒙; 18.; 18.; ) NUMBER EIGHTEEN FULL STOP
+249A;249A;249A;0031 0039 002E;0031 0039 002E; # (⒚; ⒚; ⒚; 19.; 19.; ) NUMBER NINETEEN FULL STOP
+249B;249B;249B;0032 0030 002E;0032 0030 002E; # (⒛; ⒛; ⒛; 20.; 20.; ) NUMBER TWENTY FULL STOP
+249C;249C;249C;0028 0061 0029;0028 0061 0029; # (⒜; ⒜; ⒜; (a); (a); ) PARENTHESIZED LATIN SMALL LETTER A
+249D;249D;249D;0028 0062 0029;0028 0062 0029; # (⒝; ⒝; ⒝; (b); (b); ) PARENTHESIZED LATIN SMALL LETTER B
+249E;249E;249E;0028 0063 0029;0028 0063 0029; # (⒞; ⒞; ⒞; (c); (c); ) PARENTHESIZED LATIN SMALL LETTER C
+249F;249F;249F;0028 0064 0029;0028 0064 0029; # (⒟; ⒟; ⒟; (d); (d); ) PARENTHESIZED LATIN SMALL LETTER D
+24A0;24A0;24A0;0028 0065 0029;0028 0065 0029; # (⒠; ⒠; ⒠; (e); (e); ) PARENTHESIZED LATIN SMALL LETTER E
+24A1;24A1;24A1;0028 0066 0029;0028 0066 0029; # (⒡; ⒡; ⒡; (f); (f); ) PARENTHESIZED LATIN SMALL LETTER F
+24A2;24A2;24A2;0028 0067 0029;0028 0067 0029; # (⒢; ⒢; ⒢; (g); (g); ) PARENTHESIZED LATIN SMALL LETTER G
+24A3;24A3;24A3;0028 0068 0029;0028 0068 0029; # (⒣; ⒣; ⒣; (h); (h); ) PARENTHESIZED LATIN SMALL LETTER H
+24A4;24A4;24A4;0028 0069 0029;0028 0069 0029; # (⒤; ⒤; ⒤; (i); (i); ) PARENTHESIZED LATIN SMALL LETTER I
+24A5;24A5;24A5;0028 006A 0029;0028 006A 0029; # (⒥; ⒥; ⒥; (j); (j); ) PARENTHESIZED LATIN SMALL LETTER J
+24A6;24A6;24A6;0028 006B 0029;0028 006B 0029; # (⒦; ⒦; ⒦; (k); (k); ) PARENTHESIZED LATIN SMALL LETTER K
+24A7;24A7;24A7;0028 006C 0029;0028 006C 0029; # (⒧; ⒧; ⒧; (l); (l); ) PARENTHESIZED LATIN SMALL LETTER L
+24A8;24A8;24A8;0028 006D 0029;0028 006D 0029; # (⒨; ⒨; ⒨; (m); (m); ) PARENTHESIZED LATIN SMALL LETTER M
+24A9;24A9;24A9;0028 006E 0029;0028 006E 0029; # (⒩; ⒩; ⒩; (n); (n); ) PARENTHESIZED LATIN SMALL LETTER N
+24AA;24AA;24AA;0028 006F 0029;0028 006F 0029; # (⒪; ⒪; ⒪; (o); (o); ) PARENTHESIZED LATIN SMALL LETTER O
+24AB;24AB;24AB;0028 0070 0029;0028 0070 0029; # (⒫; ⒫; ⒫; (p); (p); ) PARENTHESIZED LATIN SMALL LETTER P
+24AC;24AC;24AC;0028 0071 0029;0028 0071 0029; # (⒬; ⒬; ⒬; (q); (q); ) PARENTHESIZED LATIN SMALL LETTER Q
+24AD;24AD;24AD;0028 0072 0029;0028 0072 0029; # (⒭; ⒭; ⒭; (r); (r); ) PARENTHESIZED LATIN SMALL LETTER R
+24AE;24AE;24AE;0028 0073 0029;0028 0073 0029; # (⒮; ⒮; ⒮; (s); (s); ) PARENTHESIZED LATIN SMALL LETTER S
+24AF;24AF;24AF;0028 0074 0029;0028 0074 0029; # (⒯; ⒯; ⒯; (t); (t); ) PARENTHESIZED LATIN SMALL LETTER T
+24B0;24B0;24B0;0028 0075 0029;0028 0075 0029; # (⒰; ⒰; ⒰; (u); (u); ) PARENTHESIZED LATIN SMALL LETTER U
+24B1;24B1;24B1;0028 0076 0029;0028 0076 0029; # (⒱; ⒱; ⒱; (v); (v); ) PARENTHESIZED LATIN SMALL LETTER V
+24B2;24B2;24B2;0028 0077 0029;0028 0077 0029; # (⒲; ⒲; ⒲; (w); (w); ) PARENTHESIZED LATIN SMALL LETTER W
+24B3;24B3;24B3;0028 0078 0029;0028 0078 0029; # (⒳; ⒳; ⒳; (x); (x); ) PARENTHESIZED LATIN SMALL LETTER X
+24B4;24B4;24B4;0028 0079 0029;0028 0079 0029; # (⒴; ⒴; ⒴; (y); (y); ) PARENTHESIZED LATIN SMALL LETTER Y
+24B5;24B5;24B5;0028 007A 0029;0028 007A 0029; # (⒵; ⒵; ⒵; (z); (z); ) PARENTHESIZED LATIN SMALL LETTER Z
+24B6;24B6;24B6;0041;0041; # (Ⓐ; Ⓐ; Ⓐ; A; A; ) CIRCLED LATIN CAPITAL LETTER A
+24B7;24B7;24B7;0042;0042; # (Ⓑ; Ⓑ; Ⓑ; B; B; ) CIRCLED LATIN CAPITAL LETTER B
+24B8;24B8;24B8;0043;0043; # (Ⓒ; Ⓒ; Ⓒ; C; C; ) CIRCLED LATIN CAPITAL LETTER C
+24B9;24B9;24B9;0044;0044; # (Ⓓ; Ⓓ; Ⓓ; D; D; ) CIRCLED LATIN CAPITAL LETTER D
+24BA;24BA;24BA;0045;0045; # (Ⓔ; Ⓔ; Ⓔ; E; E; ) CIRCLED LATIN CAPITAL LETTER E
+24BB;24BB;24BB;0046;0046; # (Ⓕ; Ⓕ; Ⓕ; F; F; ) CIRCLED LATIN CAPITAL LETTER F
+24BC;24BC;24BC;0047;0047; # (Ⓖ; Ⓖ; Ⓖ; G; G; ) CIRCLED LATIN CAPITAL LETTER G
+24BD;24BD;24BD;0048;0048; # (Ⓗ; Ⓗ; Ⓗ; H; H; ) CIRCLED LATIN CAPITAL LETTER H
+24BE;24BE;24BE;0049;0049; # (Ⓘ; Ⓘ; Ⓘ; I; I; ) CIRCLED LATIN CAPITAL LETTER I
+24BF;24BF;24BF;004A;004A; # (Ⓙ; Ⓙ; Ⓙ; J; J; ) CIRCLED LATIN CAPITAL LETTER J
+24C0;24C0;24C0;004B;004B; # (Ⓚ; Ⓚ; Ⓚ; K; K; ) CIRCLED LATIN CAPITAL LETTER K
+24C1;24C1;24C1;004C;004C; # (Ⓛ; Ⓛ; Ⓛ; L; L; ) CIRCLED LATIN CAPITAL LETTER L
+24C2;24C2;24C2;004D;004D; # (Ⓜ; Ⓜ; Ⓜ; M; M; ) CIRCLED LATIN CAPITAL LETTER M
+24C3;24C3;24C3;004E;004E; # (Ⓝ; Ⓝ; Ⓝ; N; N; ) CIRCLED LATIN CAPITAL LETTER N
+24C4;24C4;24C4;004F;004F; # (Ⓞ; Ⓞ; Ⓞ; O; O; ) CIRCLED LATIN CAPITAL LETTER O
+24C5;24C5;24C5;0050;0050; # (Ⓟ; Ⓟ; Ⓟ; P; P; ) CIRCLED LATIN CAPITAL LETTER P
+24C6;24C6;24C6;0051;0051; # (Ⓠ; Ⓠ; Ⓠ; Q; Q; ) CIRCLED LATIN CAPITAL LETTER Q
+24C7;24C7;24C7;0052;0052; # (Ⓡ; Ⓡ; Ⓡ; R; R; ) CIRCLED LATIN CAPITAL LETTER R
+24C8;24C8;24C8;0053;0053; # (Ⓢ; Ⓢ; Ⓢ; S; S; ) CIRCLED LATIN CAPITAL LETTER S
+24C9;24C9;24C9;0054;0054; # (Ⓣ; Ⓣ; Ⓣ; T; T; ) CIRCLED LATIN CAPITAL LETTER T
+24CA;24CA;24CA;0055;0055; # (Ⓤ; Ⓤ; Ⓤ; U; U; ) CIRCLED LATIN CAPITAL LETTER U
+24CB;24CB;24CB;0056;0056; # (Ⓥ; Ⓥ; Ⓥ; V; V; ) CIRCLED LATIN CAPITAL LETTER V
+24CC;24CC;24CC;0057;0057; # (Ⓦ; Ⓦ; Ⓦ; W; W; ) CIRCLED LATIN CAPITAL LETTER W
+24CD;24CD;24CD;0058;0058; # (Ⓧ; Ⓧ; Ⓧ; X; X; ) CIRCLED LATIN CAPITAL LETTER X
+24CE;24CE;24CE;0059;0059; # (Ⓨ; Ⓨ; Ⓨ; Y; Y; ) CIRCLED LATIN CAPITAL LETTER Y
+24CF;24CF;24CF;005A;005A; # (Ⓩ; Ⓩ; Ⓩ; Z; Z; ) CIRCLED LATIN CAPITAL LETTER Z
+24D0;24D0;24D0;0061;0061; # (ⓐ; ⓐ; ⓐ; a; a; ) CIRCLED LATIN SMALL LETTER A
+24D1;24D1;24D1;0062;0062; # (ⓑ; ⓑ; ⓑ; b; b; ) CIRCLED LATIN SMALL LETTER B
+24D2;24D2;24D2;0063;0063; # (ⓒ; ⓒ; ⓒ; c; c; ) CIRCLED LATIN SMALL LETTER C
+24D3;24D3;24D3;0064;0064; # (ⓓ; ⓓ; ⓓ; d; d; ) CIRCLED LATIN SMALL LETTER D
+24D4;24D4;24D4;0065;0065; # (ⓔ; ⓔ; ⓔ; e; e; ) CIRCLED LATIN SMALL LETTER E
+24D5;24D5;24D5;0066;0066; # (ⓕ; ⓕ; ⓕ; f; f; ) CIRCLED LATIN SMALL LETTER F
+24D6;24D6;24D6;0067;0067; # (ⓖ; ⓖ; ⓖ; g; g; ) CIRCLED LATIN SMALL LETTER G
+24D7;24D7;24D7;0068;0068; # (ⓗ; ⓗ; ⓗ; h; h; ) CIRCLED LATIN SMALL LETTER H
+24D8;24D8;24D8;0069;0069; # (ⓘ; ⓘ; ⓘ; i; i; ) CIRCLED LATIN SMALL LETTER I
+24D9;24D9;24D9;006A;006A; # (ⓙ; ⓙ; ⓙ; j; j; ) CIRCLED LATIN SMALL LETTER J
+24DA;24DA;24DA;006B;006B; # (ⓚ; ⓚ; ⓚ; k; k; ) CIRCLED LATIN SMALL LETTER K
+24DB;24DB;24DB;006C;006C; # (ⓛ; ⓛ; ⓛ; l; l; ) CIRCLED LATIN SMALL LETTER L
+24DC;24DC;24DC;006D;006D; # (ⓜ; ⓜ; ⓜ; m; m; ) CIRCLED LATIN SMALL LETTER M
+24DD;24DD;24DD;006E;006E; # (ⓝ; ⓝ; ⓝ; n; n; ) CIRCLED LATIN SMALL LETTER N
+24DE;24DE;24DE;006F;006F; # (ⓞ; ⓞ; ⓞ; o; o; ) CIRCLED LATIN SMALL LETTER O
+24DF;24DF;24DF;0070;0070; # (ⓟ; ⓟ; ⓟ; p; p; ) CIRCLED LATIN SMALL LETTER P
+24E0;24E0;24E0;0071;0071; # (ⓠ; ⓠ; ⓠ; q; q; ) CIRCLED LATIN SMALL LETTER Q
+24E1;24E1;24E1;0072;0072; # (ⓡ; ⓡ; ⓡ; r; r; ) CIRCLED LATIN SMALL LETTER R
+24E2;24E2;24E2;0073;0073; # (ⓢ; ⓢ; ⓢ; s; s; ) CIRCLED LATIN SMALL LETTER S
+24E3;24E3;24E3;0074;0074; # (ⓣ; ⓣ; ⓣ; t; t; ) CIRCLED LATIN SMALL LETTER T
+24E4;24E4;24E4;0075;0075; # (ⓤ; ⓤ; ⓤ; u; u; ) CIRCLED LATIN SMALL LETTER U
+24E5;24E5;24E5;0076;0076; # (ⓥ; ⓥ; ⓥ; v; v; ) CIRCLED LATIN SMALL LETTER V
+24E6;24E6;24E6;0077;0077; # (ⓦ; ⓦ; ⓦ; w; w; ) CIRCLED LATIN SMALL LETTER W
+24E7;24E7;24E7;0078;0078; # (ⓧ; ⓧ; ⓧ; x; x; ) CIRCLED LATIN SMALL LETTER X
+24E8;24E8;24E8;0079;0079; # (ⓨ; ⓨ; ⓨ; y; y; ) CIRCLED LATIN SMALL LETTER Y
+24E9;24E9;24E9;007A;007A; # (ⓩ; ⓩ; ⓩ; z; z; ) CIRCLED LATIN SMALL LETTER Z
+24EA;24EA;24EA;0030;0030; # (⓪; ⓪; ⓪; 0; 0; ) CIRCLED DIGIT ZERO
+2A0C;2A0C;2A0C;222B 222B 222B 222B;222B 222B 222B 222B; # (⨌; ⨌; ⨌; ∫∫∫∫; ∫∫∫∫; ) QUADRUPLE INTEGRAL OPERATOR
+2A74;2A74;2A74;003A 003A 003D;003A 003A 003D; # (⩴; ⩴; ⩴; ::=; ::=; ) DOUBLE COLON EQUAL
+2A75;2A75;2A75;003D 003D;003D 003D; # (⩵; ⩵; ⩵; ==; ==; ) TWO CONSECUTIVE EQUALS SIGNS
+2A76;2A76;2A76;003D 003D 003D;003D 003D 003D; # (⩶; ⩶; ⩶; ===; ===; ) THREE CONSECUTIVE EQUALS SIGNS
+2ADC;2ADD 0338;2ADD 0338;2ADD 0338;2ADD 0338; # (⫝̸; ⫝◌̸; ⫝◌̸; ⫝◌̸; ⫝◌̸; ) FORKING
+2C7C;2C7C;2C7C;006A;006A; # (ⱼ; ⱼ; ⱼ; j; j; ) LATIN SUBSCRIPT SMALL LETTER J
+2C7D;2C7D;2C7D;0056;0056; # (ⱽ; ⱽ; ⱽ; V; V; ) MODIFIER LETTER CAPITAL V
+2D6F;2D6F;2D6F;2D61;2D61; # (ⵯ; ⵯ; ⵯ; ⵡ; ⵡ; ) TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2E9F;2E9F;2E9F;6BCD;6BCD; # (⺟; ⺟; ⺟; 母; 母; ) CJK RADICAL MOTHER
+2EF3;2EF3;2EF3;9F9F;9F9F; # (⻳; ⻳; ⻳; 龟; 龟; ) CJK RADICAL C-SIMPLIFIED TURTLE
+2F00;2F00;2F00;4E00;4E00; # (⼀; ⼀; ⼀; 一; 一; ) KANGXI RADICAL ONE
+2F01;2F01;2F01;4E28;4E28; # (⼁; ⼁; ⼁; 丨; 丨; ) KANGXI RADICAL LINE
+2F02;2F02;2F02;4E36;4E36; # (⼂; ⼂; ⼂; 丶; 丶; ) KANGXI RADICAL DOT
+2F03;2F03;2F03;4E3F;4E3F; # (⼃; ⼃; ⼃; 丿; 丿; ) KANGXI RADICAL SLASH
+2F04;2F04;2F04;4E59;4E59; # (⼄; ⼄; ⼄; 乙; 乙; ) KANGXI RADICAL SECOND
+2F05;2F05;2F05;4E85;4E85; # (⼅; ⼅; ⼅; 亅; 亅; ) KANGXI RADICAL HOOK
+2F06;2F06;2F06;4E8C;4E8C; # (⼆; ⼆; ⼆; 二; 二; ) KANGXI RADICAL TWO
+2F07;2F07;2F07;4EA0;4EA0; # (⼇; ⼇; ⼇; 亠; 亠; ) KANGXI RADICAL LID
+2F08;2F08;2F08;4EBA;4EBA; # (⼈; ⼈; ⼈; 人; 人; ) KANGXI RADICAL MAN
+2F09;2F09;2F09;513F;513F; # (⼉; ⼉; ⼉; 儿; 儿; ) KANGXI RADICAL LEGS
+2F0A;2F0A;2F0A;5165;5165; # (⼊; ⼊; ⼊; 入; 入; ) KANGXI RADICAL ENTER
+2F0B;2F0B;2F0B;516B;516B; # (⼋; ⼋; ⼋; 八; 八; ) KANGXI RADICAL EIGHT
+2F0C;2F0C;2F0C;5182;5182; # (⼌; ⼌; ⼌; 冂; 冂; ) KANGXI RADICAL DOWN BOX
+2F0D;2F0D;2F0D;5196;5196; # (⼍; ⼍; ⼍; 冖; 冖; ) KANGXI RADICAL COVER
+2F0E;2F0E;2F0E;51AB;51AB; # (⼎; ⼎; ⼎; 冫; 冫; ) KANGXI RADICAL ICE
+2F0F;2F0F;2F0F;51E0;51E0; # (⼏; ⼏; ⼏; 几; 几; ) KANGXI RADICAL TABLE
+2F10;2F10;2F10;51F5;51F5; # (⼐; ⼐; ⼐; 凵; 凵; ) KANGXI RADICAL OPEN BOX
+2F11;2F11;2F11;5200;5200; # (⼑; ⼑; ⼑; 刀; 刀; ) KANGXI RADICAL KNIFE
+2F12;2F12;2F12;529B;529B; # (⼒; ⼒; ⼒; 力; 力; ) KANGXI RADICAL POWER
+2F13;2F13;2F13;52F9;52F9; # (⼓; ⼓; ⼓; 勹; 勹; ) KANGXI RADICAL WRAP
+2F14;2F14;2F14;5315;5315; # (⼔; ⼔; ⼔; 匕; 匕; ) KANGXI RADICAL SPOON
+2F15;2F15;2F15;531A;531A; # (⼕; ⼕; ⼕; 匚; 匚; ) KANGXI RADICAL RIGHT OPEN BOX
+2F16;2F16;2F16;5338;5338; # (⼖; ⼖; ⼖; 匸; 匸; ) KANGXI RADICAL HIDING ENCLOSURE
+2F17;2F17;2F17;5341;5341; # (⼗; ⼗; ⼗; 十; 十; ) KANGXI RADICAL TEN
+2F18;2F18;2F18;535C;535C; # (⼘; ⼘; ⼘; 卜; 卜; ) KANGXI RADICAL DIVINATION
+2F19;2F19;2F19;5369;5369; # (⼙; ⼙; ⼙; 卩; 卩; ) KANGXI RADICAL SEAL
+2F1A;2F1A;2F1A;5382;5382; # (⼚; ⼚; ⼚; 厂; 厂; ) KANGXI RADICAL CLIFF
+2F1B;2F1B;2F1B;53B6;53B6; # (⼛; ⼛; ⼛; 厶; 厶; ) KANGXI RADICAL PRIVATE
+2F1C;2F1C;2F1C;53C8;53C8; # (⼜; ⼜; ⼜; 又; 又; ) KANGXI RADICAL AGAIN
+2F1D;2F1D;2F1D;53E3;53E3; # (⼝; ⼝; ⼝; 口; 口; ) KANGXI RADICAL MOUTH
+2F1E;2F1E;2F1E;56D7;56D7; # (⼞; ⼞; ⼞; 囗; 囗; ) KANGXI RADICAL ENCLOSURE
+2F1F;2F1F;2F1F;571F;571F; # (⼟; ⼟; ⼟; 土; 土; ) KANGXI RADICAL EARTH
+2F20;2F20;2F20;58EB;58EB; # (⼠; ⼠; ⼠; 士; 士; ) KANGXI RADICAL SCHOLAR
+2F21;2F21;2F21;5902;5902; # (⼡; ⼡; ⼡; 夂; 夂; ) KANGXI RADICAL GO
+2F22;2F22;2F22;590A;590A; # (⼢; ⼢; ⼢; 夊; 夊; ) KANGXI RADICAL GO SLOWLY
+2F23;2F23;2F23;5915;5915; # (⼣; ⼣; ⼣; 夕; 夕; ) KANGXI RADICAL EVENING
+2F24;2F24;2F24;5927;5927; # (⼤; ⼤; ⼤; 大; 大; ) KANGXI RADICAL BIG
+2F25;2F25;2F25;5973;5973; # (⼥; ⼥; ⼥; 女; 女; ) KANGXI RADICAL WOMAN
+2F26;2F26;2F26;5B50;5B50; # (⼦; ⼦; ⼦; 子; 子; ) KANGXI RADICAL CHILD
+2F27;2F27;2F27;5B80;5B80; # (⼧; ⼧; ⼧; 宀; 宀; ) KANGXI RADICAL ROOF
+2F28;2F28;2F28;5BF8;5BF8; # (⼨; ⼨; ⼨; 寸; 寸; ) KANGXI RADICAL INCH
+2F29;2F29;2F29;5C0F;5C0F; # (⼩; ⼩; ⼩; 小; 小; ) KANGXI RADICAL SMALL
+2F2A;2F2A;2F2A;5C22;5C22; # (⼪; ⼪; ⼪; 尢; 尢; ) KANGXI RADICAL LAME
+2F2B;2F2B;2F2B;5C38;5C38; # (⼫; ⼫; ⼫; 尸; 尸; ) KANGXI RADICAL CORPSE
+2F2C;2F2C;2F2C;5C6E;5C6E; # (⼬; ⼬; ⼬; 屮; 屮; ) KANGXI RADICAL SPROUT
+2F2D;2F2D;2F2D;5C71;5C71; # (⼭; ⼭; ⼭; 山; 山; ) KANGXI RADICAL MOUNTAIN
+2F2E;2F2E;2F2E;5DDB;5DDB; # (⼮; ⼮; ⼮; 巛; 巛; ) KANGXI RADICAL RIVER
+2F2F;2F2F;2F2F;5DE5;5DE5; # (⼯; ⼯; ⼯; 工; 工; ) KANGXI RADICAL WORK
+2F30;2F30;2F30;5DF1;5DF1; # (⼰; ⼰; ⼰; 己; 己; ) KANGXI RADICAL ONESELF
+2F31;2F31;2F31;5DFE;5DFE; # (⼱; ⼱; ⼱; 巾; 巾; ) KANGXI RADICAL TURBAN
+2F32;2F32;2F32;5E72;5E72; # (⼲; ⼲; ⼲; 干; 干; ) KANGXI RADICAL DRY
+2F33;2F33;2F33;5E7A;5E7A; # (⼳; ⼳; ⼳; 幺; 幺; ) KANGXI RADICAL SHORT THREAD
+2F34;2F34;2F34;5E7F;5E7F; # (⼴; ⼴; ⼴; 广; 广; ) KANGXI RADICAL DOTTED CLIFF
+2F35;2F35;2F35;5EF4;5EF4; # (⼵; ⼵; ⼵; 廴; 廴; ) KANGXI RADICAL LONG STRIDE
+2F36;2F36;2F36;5EFE;5EFE; # (⼶; ⼶; ⼶; 廾; 廾; ) KANGXI RADICAL TWO HANDS
+2F37;2F37;2F37;5F0B;5F0B; # (⼷; ⼷; ⼷; 弋; 弋; ) KANGXI RADICAL SHOOT
+2F38;2F38;2F38;5F13;5F13; # (⼸; ⼸; ⼸; 弓; 弓; ) KANGXI RADICAL BOW
+2F39;2F39;2F39;5F50;5F50; # (⼹; ⼹; ⼹; 彐; 彐; ) KANGXI RADICAL SNOUT
+2F3A;2F3A;2F3A;5F61;5F61; # (⼺; ⼺; ⼺; 彡; 彡; ) KANGXI RADICAL BRISTLE
+2F3B;2F3B;2F3B;5F73;5F73; # (⼻; ⼻; ⼻; 彳; 彳; ) KANGXI RADICAL STEP
+2F3C;2F3C;2F3C;5FC3;5FC3; # (⼼; ⼼; ⼼; 心; 心; ) KANGXI RADICAL HEART
+2F3D;2F3D;2F3D;6208;6208; # (⼽; ⼽; ⼽; 戈; 戈; ) KANGXI RADICAL HALBERD
+2F3E;2F3E;2F3E;6236;6236; # (⼾; ⼾; ⼾; 戶; 戶; ) KANGXI RADICAL DOOR
+2F3F;2F3F;2F3F;624B;624B; # (⼿; ⼿; ⼿; 手; 手; ) KANGXI RADICAL HAND
+2F40;2F40;2F40;652F;652F; # (⽀; ⽀; ⽀; 支; 支; ) KANGXI RADICAL BRANCH
+2F41;2F41;2F41;6534;6534; # (⽁; ⽁; ⽁; 攴; 攴; ) KANGXI RADICAL RAP
+2F42;2F42;2F42;6587;6587; # (⽂; ⽂; ⽂; 文; 文; ) KANGXI RADICAL SCRIPT
+2F43;2F43;2F43;6597;6597; # (⽃; ⽃; ⽃; 斗; 斗; ) KANGXI RADICAL DIPPER
+2F44;2F44;2F44;65A4;65A4; # (⽄; ⽄; ⽄; 斤; 斤; ) KANGXI RADICAL AXE
+2F45;2F45;2F45;65B9;65B9; # (⽅; ⽅; ⽅; 方; 方; ) KANGXI RADICAL SQUARE
+2F46;2F46;2F46;65E0;65E0; # (⽆; ⽆; ⽆; 无; 无; ) KANGXI RADICAL NOT
+2F47;2F47;2F47;65E5;65E5; # (⽇; ⽇; ⽇; 日; 日; ) KANGXI RADICAL SUN
+2F48;2F48;2F48;66F0;66F0; # (⽈; ⽈; ⽈; 曰; 曰; ) KANGXI RADICAL SAY
+2F49;2F49;2F49;6708;6708; # (⽉; ⽉; ⽉; 月; 月; ) KANGXI RADICAL MOON
+2F4A;2F4A;2F4A;6728;6728; # (⽊; ⽊; ⽊; 木; 木; ) KANGXI RADICAL TREE
+2F4B;2F4B;2F4B;6B20;6B20; # (⽋; ⽋; ⽋; 欠; 欠; ) KANGXI RADICAL LACK
+2F4C;2F4C;2F4C;6B62;6B62; # (⽌; ⽌; ⽌; 止; 止; ) KANGXI RADICAL STOP
+2F4D;2F4D;2F4D;6B79;6B79; # (⽍; ⽍; ⽍; 歹; 歹; ) KANGXI RADICAL DEATH
+2F4E;2F4E;2F4E;6BB3;6BB3; # (⽎; ⽎; ⽎; 殳; 殳; ) KANGXI RADICAL WEAPON
+2F4F;2F4F;2F4F;6BCB;6BCB; # (⽏; ⽏; ⽏; 毋; 毋; ) KANGXI RADICAL DO NOT
+2F50;2F50;2F50;6BD4;6BD4; # (⽐; ⽐; ⽐; 比; 比; ) KANGXI RADICAL COMPARE
+2F51;2F51;2F51;6BDB;6BDB; # (⽑; ⽑; ⽑; 毛; 毛; ) KANGXI RADICAL FUR
+2F52;2F52;2F52;6C0F;6C0F; # (⽒; ⽒; ⽒; 氏; 氏; ) KANGXI RADICAL CLAN
+2F53;2F53;2F53;6C14;6C14; # (⽓; ⽓; ⽓; 气; 气; ) KANGXI RADICAL STEAM
+2F54;2F54;2F54;6C34;6C34; # (⽔; ⽔; ⽔; 水; 水; ) KANGXI RADICAL WATER
+2F55;2F55;2F55;706B;706B; # (⽕; ⽕; ⽕; 火; 火; ) KANGXI RADICAL FIRE
+2F56;2F56;2F56;722A;722A; # (⽖; ⽖; ⽖; 爪; 爪; ) KANGXI RADICAL CLAW
+2F57;2F57;2F57;7236;7236; # (⽗; ⽗; ⽗; 父; 父; ) KANGXI RADICAL FATHER
+2F58;2F58;2F58;723B;723B; # (⽘; ⽘; ⽘; 爻; 爻; ) KANGXI RADICAL DOUBLE X
+2F59;2F59;2F59;723F;723F; # (⽙; ⽙; ⽙; 爿; 爿; ) KANGXI RADICAL HALF TREE TRUNK
+2F5A;2F5A;2F5A;7247;7247; # (⽚; ⽚; ⽚; 片; 片; ) KANGXI RADICAL SLICE
+2F5B;2F5B;2F5B;7259;7259; # (⽛; ⽛; ⽛; 牙; 牙; ) KANGXI RADICAL FANG
+2F5C;2F5C;2F5C;725B;725B; # (⽜; ⽜; ⽜; 牛; 牛; ) KANGXI RADICAL COW
+2F5D;2F5D;2F5D;72AC;72AC; # (⽝; ⽝; ⽝; 犬; 犬; ) KANGXI RADICAL DOG
+2F5E;2F5E;2F5E;7384;7384; # (⽞; ⽞; ⽞; 玄; 玄; ) KANGXI RADICAL PROFOUND
+2F5F;2F5F;2F5F;7389;7389; # (⽟; ⽟; ⽟; 玉; 玉; ) KANGXI RADICAL JADE
+2F60;2F60;2F60;74DC;74DC; # (⽠; ⽠; ⽠; 瓜; 瓜; ) KANGXI RADICAL MELON
+2F61;2F61;2F61;74E6;74E6; # (⽡; ⽡; ⽡; 瓦; 瓦; ) KANGXI RADICAL TILE
+2F62;2F62;2F62;7518;7518; # (⽢; ⽢; ⽢; 甘; 甘; ) KANGXI RADICAL SWEET
+2F63;2F63;2F63;751F;751F; # (⽣; ⽣; ⽣; 生; 生; ) KANGXI RADICAL LIFE
+2F64;2F64;2F64;7528;7528; # (⽤; ⽤; ⽤; 用; 用; ) KANGXI RADICAL USE
+2F65;2F65;2F65;7530;7530; # (⽥; ⽥; ⽥; 田; 田; ) KANGXI RADICAL FIELD
+2F66;2F66;2F66;758B;758B; # (⽦; ⽦; ⽦; 疋; 疋; ) KANGXI RADICAL BOLT OF CLOTH
+2F67;2F67;2F67;7592;7592; # (⽧; ⽧; ⽧; 疒; 疒; ) KANGXI RADICAL SICKNESS
+2F68;2F68;2F68;7676;7676; # (⽨; ⽨; ⽨; 癶; 癶; ) KANGXI RADICAL DOTTED TENT
+2F69;2F69;2F69;767D;767D; # (⽩; ⽩; ⽩; 白; 白; ) KANGXI RADICAL WHITE
+2F6A;2F6A;2F6A;76AE;76AE; # (⽪; ⽪; ⽪; 皮; 皮; ) KANGXI RADICAL SKIN
+2F6B;2F6B;2F6B;76BF;76BF; # (⽫; ⽫; ⽫; 皿; 皿; ) KANGXI RADICAL DISH
+2F6C;2F6C;2F6C;76EE;76EE; # (⽬; ⽬; ⽬; 目; 目; ) KANGXI RADICAL EYE
+2F6D;2F6D;2F6D;77DB;77DB; # (⽭; ⽭; ⽭; 矛; 矛; ) KANGXI RADICAL SPEAR
+2F6E;2F6E;2F6E;77E2;77E2; # (⽮; ⽮; ⽮; 矢; 矢; ) KANGXI RADICAL ARROW
+2F6F;2F6F;2F6F;77F3;77F3; # (⽯; ⽯; ⽯; 石; 石; ) KANGXI RADICAL STONE
+2F70;2F70;2F70;793A;793A; # (⽰; ⽰; ⽰; 示; 示; ) KANGXI RADICAL SPIRIT
+2F71;2F71;2F71;79B8;79B8; # (⽱; ⽱; ⽱; 禸; 禸; ) KANGXI RADICAL TRACK
+2F72;2F72;2F72;79BE;79BE; # (⽲; ⽲; ⽲; 禾; 禾; ) KANGXI RADICAL GRAIN
+2F73;2F73;2F73;7A74;7A74; # (⽳; ⽳; ⽳; 穴; 穴; ) KANGXI RADICAL CAVE
+2F74;2F74;2F74;7ACB;7ACB; # (⽴; ⽴; ⽴; 立; 立; ) KANGXI RADICAL STAND
+2F75;2F75;2F75;7AF9;7AF9; # (⽵; ⽵; ⽵; 竹; 竹; ) KANGXI RADICAL BAMBOO
+2F76;2F76;2F76;7C73;7C73; # (⽶; ⽶; ⽶; 米; 米; ) KANGXI RADICAL RICE
+2F77;2F77;2F77;7CF8;7CF8; # (⽷; ⽷; ⽷; 糸; 糸; ) KANGXI RADICAL SILK
+2F78;2F78;2F78;7F36;7F36; # (⽸; ⽸; ⽸; 缶; 缶; ) KANGXI RADICAL JAR
+2F79;2F79;2F79;7F51;7F51; # (⽹; ⽹; ⽹; 网; 网; ) KANGXI RADICAL NET
+2F7A;2F7A;2F7A;7F8A;7F8A; # (⽺; ⽺; ⽺; 羊; 羊; ) KANGXI RADICAL SHEEP
+2F7B;2F7B;2F7B;7FBD;7FBD; # (⽻; ⽻; ⽻; 羽; 羽; ) KANGXI RADICAL FEATHER
+2F7C;2F7C;2F7C;8001;8001; # (⽼; ⽼; ⽼; 老; 老; ) KANGXI RADICAL OLD
+2F7D;2F7D;2F7D;800C;800C; # (⽽; ⽽; ⽽; 而; 而; ) KANGXI RADICAL AND
+2F7E;2F7E;2F7E;8012;8012; # (⽾; ⽾; ⽾; 耒; 耒; ) KANGXI RADICAL PLOW
+2F7F;2F7F;2F7F;8033;8033; # (⽿; ⽿; ⽿; 耳; 耳; ) KANGXI RADICAL EAR
+2F80;2F80;2F80;807F;807F; # (⾀; ⾀; ⾀; 聿; 聿; ) KANGXI RADICAL BRUSH
+2F81;2F81;2F81;8089;8089; # (⾁; ⾁; ⾁; 肉; 肉; ) KANGXI RADICAL MEAT
+2F82;2F82;2F82;81E3;81E3; # (⾂; ⾂; ⾂; 臣; 臣; ) KANGXI RADICAL MINISTER
+2F83;2F83;2F83;81EA;81EA; # (⾃; ⾃; ⾃; 自; 自; ) KANGXI RADICAL SELF
+2F84;2F84;2F84;81F3;81F3; # (⾄; ⾄; ⾄; 至; 至; ) KANGXI RADICAL ARRIVE
+2F85;2F85;2F85;81FC;81FC; # (⾅; ⾅; ⾅; 臼; 臼; ) KANGXI RADICAL MORTAR
+2F86;2F86;2F86;820C;820C; # (⾆; ⾆; ⾆; 舌; 舌; ) KANGXI RADICAL TONGUE
+2F87;2F87;2F87;821B;821B; # (⾇; ⾇; ⾇; 舛; 舛; ) KANGXI RADICAL OPPOSE
+2F88;2F88;2F88;821F;821F; # (⾈; ⾈; ⾈; 舟; 舟; ) KANGXI RADICAL BOAT
+2F89;2F89;2F89;826E;826E; # (⾉; ⾉; ⾉; 艮; 艮; ) KANGXI RADICAL STOPPING
+2F8A;2F8A;2F8A;8272;8272; # (⾊; ⾊; ⾊; 色; 色; ) KANGXI RADICAL COLOR
+2F8B;2F8B;2F8B;8278;8278; # (⾋; ⾋; ⾋; 艸; 艸; ) KANGXI RADICAL GRASS
+2F8C;2F8C;2F8C;864D;864D; # (⾌; ⾌; ⾌; 虍; 虍; ) KANGXI RADICAL TIGER
+2F8D;2F8D;2F8D;866B;866B; # (⾍; ⾍; ⾍; 虫; 虫; ) KANGXI RADICAL INSECT
+2F8E;2F8E;2F8E;8840;8840; # (⾎; ⾎; ⾎; 血; 血; ) KANGXI RADICAL BLOOD
+2F8F;2F8F;2F8F;884C;884C; # (⾏; ⾏; ⾏; 行; 行; ) KANGXI RADICAL WALK ENCLOSURE
+2F90;2F90;2F90;8863;8863; # (⾐; ⾐; ⾐; 衣; 衣; ) KANGXI RADICAL CLOTHES
+2F91;2F91;2F91;897E;897E; # (⾑; ⾑; ⾑; 襾; 襾; ) KANGXI RADICAL WEST
+2F92;2F92;2F92;898B;898B; # (⾒; ⾒; ⾒; 見; 見; ) KANGXI RADICAL SEE
+2F93;2F93;2F93;89D2;89D2; # (⾓; ⾓; ⾓; 角; 角; ) KANGXI RADICAL HORN
+2F94;2F94;2F94;8A00;8A00; # (⾔; ⾔; ⾔; 言; 言; ) KANGXI RADICAL SPEECH
+2F95;2F95;2F95;8C37;8C37; # (⾕; ⾕; ⾕; 谷; 谷; ) KANGXI RADICAL VALLEY
+2F96;2F96;2F96;8C46;8C46; # (⾖; ⾖; ⾖; 豆; 豆; ) KANGXI RADICAL BEAN
+2F97;2F97;2F97;8C55;8C55; # (⾗; ⾗; ⾗; 豕; 豕; ) KANGXI RADICAL PIG
+2F98;2F98;2F98;8C78;8C78; # (⾘; ⾘; ⾘; 豸; 豸; ) KANGXI RADICAL BADGER
+2F99;2F99;2F99;8C9D;8C9D; # (⾙; ⾙; ⾙; 貝; 貝; ) KANGXI RADICAL SHELL
+2F9A;2F9A;2F9A;8D64;8D64; # (⾚; ⾚; ⾚; 赤; 赤; ) KANGXI RADICAL RED
+2F9B;2F9B;2F9B;8D70;8D70; # (⾛; ⾛; ⾛; 走; 走; ) KANGXI RADICAL RUN
+2F9C;2F9C;2F9C;8DB3;8DB3; # (⾜; ⾜; ⾜; 足; 足; ) KANGXI RADICAL FOOT
+2F9D;2F9D;2F9D;8EAB;8EAB; # (⾝; ⾝; ⾝; 身; 身; ) KANGXI RADICAL BODY
+2F9E;2F9E;2F9E;8ECA;8ECA; # (⾞; ⾞; ⾞; 車; 車; ) KANGXI RADICAL CART
+2F9F;2F9F;2F9F;8F9B;8F9B; # (⾟; ⾟; ⾟; 辛; 辛; ) KANGXI RADICAL BITTER
+2FA0;2FA0;2FA0;8FB0;8FB0; # (⾠; ⾠; ⾠; 辰; 辰; ) KANGXI RADICAL MORNING
+2FA1;2FA1;2FA1;8FB5;8FB5; # (⾡; ⾡; ⾡; 辵; 辵; ) KANGXI RADICAL WALK
+2FA2;2FA2;2FA2;9091;9091; # (⾢; ⾢; ⾢; 邑; 邑; ) KANGXI RADICAL CITY
+2FA3;2FA3;2FA3;9149;9149; # (⾣; ⾣; ⾣; 酉; 酉; ) KANGXI RADICAL WINE
+2FA4;2FA4;2FA4;91C6;91C6; # (⾤; ⾤; ⾤; 釆; 釆; ) KANGXI RADICAL DISTINGUISH
+2FA5;2FA5;2FA5;91CC;91CC; # (⾥; ⾥; ⾥; 里; 里; ) KANGXI RADICAL VILLAGE
+2FA6;2FA6;2FA6;91D1;91D1; # (⾦; ⾦; ⾦; 金; 金; ) KANGXI RADICAL GOLD
+2FA7;2FA7;2FA7;9577;9577; # (⾧; ⾧; ⾧; 長; 長; ) KANGXI RADICAL LONG
+2FA8;2FA8;2FA8;9580;9580; # (⾨; ⾨; ⾨; 門; 門; ) KANGXI RADICAL GATE
+2FA9;2FA9;2FA9;961C;961C; # (⾩; ⾩; ⾩; 阜; 阜; ) KANGXI RADICAL MOUND
+2FAA;2FAA;2FAA;96B6;96B6; # (⾪; ⾪; ⾪; 隶; 隶; ) KANGXI RADICAL SLAVE
+2FAB;2FAB;2FAB;96B9;96B9; # (⾫; ⾫; ⾫; 隹; 隹; ) KANGXI RADICAL SHORT TAILED BIRD
+2FAC;2FAC;2FAC;96E8;96E8; # (⾬; ⾬; ⾬; 雨; 雨; ) KANGXI RADICAL RAIN
+2FAD;2FAD;2FAD;9751;9751; # (⾭; ⾭; ⾭; 靑; 靑; ) KANGXI RADICAL BLUE
+2FAE;2FAE;2FAE;975E;975E; # (⾮; ⾮; ⾮; 非; 非; ) KANGXI RADICAL WRONG
+2FAF;2FAF;2FAF;9762;9762; # (⾯; ⾯; ⾯; 面; 面; ) KANGXI RADICAL FACE
+2FB0;2FB0;2FB0;9769;9769; # (⾰; ⾰; ⾰; 革; 革; ) KANGXI RADICAL LEATHER
+2FB1;2FB1;2FB1;97CB;97CB; # (⾱; ⾱; ⾱; 韋; 韋; ) KANGXI RADICAL TANNED LEATHER
+2FB2;2FB2;2FB2;97ED;97ED; # (⾲; ⾲; ⾲; 韭; 韭; ) KANGXI RADICAL LEEK
+2FB3;2FB3;2FB3;97F3;97F3; # (⾳; ⾳; ⾳; 音; 音; ) KANGXI RADICAL SOUND
+2FB4;2FB4;2FB4;9801;9801; # (⾴; ⾴; ⾴; 頁; 頁; ) KANGXI RADICAL LEAF
+2FB5;2FB5;2FB5;98A8;98A8; # (⾵; ⾵; ⾵; 風; 風; ) KANGXI RADICAL WIND
+2FB6;2FB6;2FB6;98DB;98DB; # (⾶; ⾶; ⾶; 飛; 飛; ) KANGXI RADICAL FLY
+2FB7;2FB7;2FB7;98DF;98DF; # (⾷; ⾷; ⾷; 食; 食; ) KANGXI RADICAL EAT
+2FB8;2FB8;2FB8;9996;9996; # (⾸; ⾸; ⾸; 首; 首; ) KANGXI RADICAL HEAD
+2FB9;2FB9;2FB9;9999;9999; # (⾹; ⾹; ⾹; 香; 香; ) KANGXI RADICAL FRAGRANT
+2FBA;2FBA;2FBA;99AC;99AC; # (⾺; ⾺; ⾺; 馬; 馬; ) KANGXI RADICAL HORSE
+2FBB;2FBB;2FBB;9AA8;9AA8; # (⾻; ⾻; ⾻; 骨; 骨; ) KANGXI RADICAL BONE
+2FBC;2FBC;2FBC;9AD8;9AD8; # (⾼; ⾼; ⾼; 高; 高; ) KANGXI RADICAL TALL
+2FBD;2FBD;2FBD;9ADF;9ADF; # (⾽; ⾽; ⾽; 髟; 髟; ) KANGXI RADICAL HAIR
+2FBE;2FBE;2FBE;9B25;9B25; # (⾾; ⾾; ⾾; 鬥; 鬥; ) KANGXI RADICAL FIGHT
+2FBF;2FBF;2FBF;9B2F;9B2F; # (⾿; ⾿; ⾿; 鬯; 鬯; ) KANGXI RADICAL SACRIFICIAL WINE
+2FC0;2FC0;2FC0;9B32;9B32; # (⿀; ⿀; ⿀; 鬲; 鬲; ) KANGXI RADICAL CAULDRON
+2FC1;2FC1;2FC1;9B3C;9B3C; # (⿁; ⿁; ⿁; 鬼; 鬼; ) KANGXI RADICAL GHOST
+2FC2;2FC2;2FC2;9B5A;9B5A; # (⿂; ⿂; ⿂; 魚; 魚; ) KANGXI RADICAL FISH
+2FC3;2FC3;2FC3;9CE5;9CE5; # (⿃; ⿃; ⿃; 鳥; 鳥; ) KANGXI RADICAL BIRD
+2FC4;2FC4;2FC4;9E75;9E75; # (⿄; ⿄; ⿄; 鹵; 鹵; ) KANGXI RADICAL SALT
+2FC5;2FC5;2FC5;9E7F;9E7F; # (⿅; ⿅; ⿅; 鹿; 鹿; ) KANGXI RADICAL DEER
+2FC6;2FC6;2FC6;9EA5;9EA5; # (⿆; ⿆; ⿆; 麥; 麥; ) KANGXI RADICAL WHEAT
+2FC7;2FC7;2FC7;9EBB;9EBB; # (⿇; ⿇; ⿇; 麻; 麻; ) KANGXI RADICAL HEMP
+2FC8;2FC8;2FC8;9EC3;9EC3; # (⿈; ⿈; ⿈; 黃; 黃; ) KANGXI RADICAL YELLOW
+2FC9;2FC9;2FC9;9ECD;9ECD; # (⿉; ⿉; ⿉; 黍; 黍; ) KANGXI RADICAL MILLET
+2FCA;2FCA;2FCA;9ED1;9ED1; # (⿊; ⿊; ⿊; 黑; 黑; ) KANGXI RADICAL BLACK
+2FCB;2FCB;2FCB;9EF9;9EF9; # (⿋; ⿋; ⿋; 黹; 黹; ) KANGXI RADICAL EMBROIDERY
+2FCC;2FCC;2FCC;9EFD;9EFD; # (⿌; ⿌; ⿌; 黽; 黽; ) KANGXI RADICAL FROG
+2FCD;2FCD;2FCD;9F0E;9F0E; # (⿍; ⿍; ⿍; 鼎; 鼎; ) KANGXI RADICAL TRIPOD
+2FCE;2FCE;2FCE;9F13;9F13; # (⿎; ⿎; ⿎; 鼓; 鼓; ) KANGXI RADICAL DRUM
+2FCF;2FCF;2FCF;9F20;9F20; # (⿏; ⿏; ⿏; 鼠; 鼠; ) KANGXI RADICAL RAT
+2FD0;2FD0;2FD0;9F3B;9F3B; # (⿐; ⿐; ⿐; 鼻; 鼻; ) KANGXI RADICAL NOSE
+2FD1;2FD1;2FD1;9F4A;9F4A; # (⿑; ⿑; ⿑; 齊; 齊; ) KANGXI RADICAL EVEN
+2FD2;2FD2;2FD2;9F52;9F52; # (⿒; ⿒; ⿒; 齒; 齒; ) KANGXI RADICAL TOOTH
+2FD3;2FD3;2FD3;9F8D;9F8D; # (⿓; ⿓; ⿓; 龍; 龍; ) KANGXI RADICAL DRAGON
+2FD4;2FD4;2FD4;9F9C;9F9C; # (⿔; ⿔; ⿔; 龜; 龜; ) KANGXI RADICAL TURTLE
+2FD5;2FD5;2FD5;9FA0;9FA0; # (⿕; ⿕; ⿕; 龠; 龠; ) KANGXI RADICAL FLUTE
+3000;3000;3000;0020;0020; # ( ;  ;  ;  ;  ; ) IDEOGRAPHIC SPACE
+3036;3036;3036;3012;3012; # (〶; 〶; 〶; 〒; 〒; ) CIRCLED POSTAL MARK
+3038;3038;3038;5341;5341; # (〸; 〸; 〸; 十; 十; ) HANGZHOU NUMERAL TEN
+3039;3039;3039;5344;5344; # (〹; 〹; 〹; 卄; 卄; ) HANGZHOU NUMERAL TWENTY
+303A;303A;303A;5345;5345; # (〺; 〺; 〺; 卅; 卅; ) HANGZHOU NUMERAL THIRTY
+304C;304C;304B 3099;304C;304B 3099; # (が; が; か◌゙; が; か◌゙; ) HIRAGANA LETTER GA
+304E;304E;304D 3099;304E;304D 3099; # (ぎ; ぎ; き◌゙; ぎ; き◌゙; ) HIRAGANA LETTER GI
+3050;3050;304F 3099;3050;304F 3099; # (ぐ; ぐ; く◌゙; ぐ; く◌゙; ) HIRAGANA LETTER GU
+3052;3052;3051 3099;3052;3051 3099; # (げ; げ; け◌゙; げ; け◌゙; ) HIRAGANA LETTER GE
+3054;3054;3053 3099;3054;3053 3099; # (ご; ご; こ◌゙; ご; こ◌゙; ) HIRAGANA LETTER GO
+3056;3056;3055 3099;3056;3055 3099; # (ざ; ざ; さ◌゙; ざ; さ◌゙; ) HIRAGANA LETTER ZA
+3058;3058;3057 3099;3058;3057 3099; # (じ; じ; し◌゙; じ; し◌゙; ) HIRAGANA LETTER ZI
+305A;305A;3059 3099;305A;3059 3099; # (ず; ず; す◌゙; ず; す◌゙; ) HIRAGANA LETTER ZU
+305C;305C;305B 3099;305C;305B 3099; # (ぜ; ぜ; せ◌゙; ぜ; せ◌゙; ) HIRAGANA LETTER ZE
+305E;305E;305D 3099;305E;305D 3099; # (ぞ; ぞ; そ◌゙; ぞ; そ◌゙; ) HIRAGANA LETTER ZO
+3060;3060;305F 3099;3060;305F 3099; # (だ; だ; た◌゙; だ; た◌゙; ) HIRAGANA LETTER DA
+3062;3062;3061 3099;3062;3061 3099; # (ぢ; ぢ; ち◌゙; ぢ; ち◌゙; ) HIRAGANA LETTER DI
+3065;3065;3064 3099;3065;3064 3099; # (づ; づ; つ◌゙; づ; つ◌゙; ) HIRAGANA LETTER DU
+3067;3067;3066 3099;3067;3066 3099; # (で; で; て◌゙; で; て◌゙; ) HIRAGANA LETTER DE
+3069;3069;3068 3099;3069;3068 3099; # (ど; ど; と◌゙; ど; と◌゙; ) HIRAGANA LETTER DO
+3070;3070;306F 3099;3070;306F 3099; # (ば; ば; は◌゙; ば; は◌゙; ) HIRAGANA LETTER BA
+3071;3071;306F 309A;3071;306F 309A; # (ぱ; ぱ; は◌゚; ぱ; は◌゚; ) HIRAGANA LETTER PA
+3073;3073;3072 3099;3073;3072 3099; # (び; び; ひ◌゙; び; ひ◌゙; ) HIRAGANA LETTER BI
+3074;3074;3072 309A;3074;3072 309A; # (ぴ; ぴ; ひ◌゚; ぴ; ひ◌゚; ) HIRAGANA LETTER PI
+3076;3076;3075 3099;3076;3075 3099; # (ぶ; ぶ; ふ◌゙; ぶ; ふ◌゙; ) HIRAGANA LETTER BU
+3077;3077;3075 309A;3077;3075 309A; # (ぷ; ぷ; ふ◌゚; ぷ; ふ◌゚; ) HIRAGANA LETTER PU
+3079;3079;3078 3099;3079;3078 3099; # (べ; べ; へ◌゙; べ; へ◌゙; ) HIRAGANA LETTER BE
+307A;307A;3078 309A;307A;3078 309A; # (ぺ; ぺ; へ◌゚; ぺ; へ◌゚; ) HIRAGANA LETTER PE
+307C;307C;307B 3099;307C;307B 3099; # (ぼ; ぼ; ほ◌゙; ぼ; ほ◌゙; ) HIRAGANA LETTER BO
+307D;307D;307B 309A;307D;307B 309A; # (ぽ; ぽ; ほ◌゚; ぽ; ほ◌゚; ) HIRAGANA LETTER PO
+3094;3094;3046 3099;3094;3046 3099; # (ゔ; ゔ; う◌゙; ゔ; う◌゙; ) HIRAGANA LETTER VU
+309B;309B;309B;0020 3099;0020 3099; # (゛; ゛; ゛;  ◌゙;  ◌゙; ) KATAKANA-HIRAGANA VOICED SOUND MARK
+309C;309C;309C;0020 309A;0020 309A; # (゜; ゜; ゜;  ◌゚;  ◌゚; ) KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309E;309E;309D 3099;309E;309D 3099; # (ゞ; ゞ; ゝ◌゙; ゞ; ゝ◌゙; ) HIRAGANA VOICED ITERATION MARK
+309F;309F;309F;3088 308A;3088 308A; # (ゟ; ゟ; ゟ; より; より; ) HIRAGANA DIGRAPH YORI
+30AC;30AC;30AB 3099;30AC;30AB 3099; # (ガ; ガ; カ◌゙; ガ; カ◌゙; ) KATAKANA LETTER GA
+30AE;30AE;30AD 3099;30AE;30AD 3099; # (ギ; ギ; キ◌゙; ギ; キ◌゙; ) KATAKANA LETTER GI
+30B0;30B0;30AF 3099;30B0;30AF 3099; # (グ; グ; ク◌゙; グ; ク◌゙; ) KATAKANA LETTER GU
+30B2;30B2;30B1 3099;30B2;30B1 3099; # (ゲ; ゲ; ケ◌゙; ゲ; ケ◌゙; ) KATAKANA LETTER GE
+30B4;30B4;30B3 3099;30B4;30B3 3099; # (ゴ; ゴ; コ◌゙; ゴ; コ◌゙; ) KATAKANA LETTER GO
+30B6;30B6;30B5 3099;30B6;30B5 3099; # (ザ; ザ; サ◌゙; ザ; サ◌゙; ) KATAKANA LETTER ZA
+30B8;30B8;30B7 3099;30B8;30B7 3099; # (ジ; ジ; シ◌゙; ジ; シ◌゙; ) KATAKANA LETTER ZI
+30BA;30BA;30B9 3099;30BA;30B9 3099; # (ズ; ズ; ス◌゙; ズ; ス◌゙; ) KATAKANA LETTER ZU
+30BC;30BC;30BB 3099;30BC;30BB 3099; # (ゼ; ゼ; セ◌゙; ゼ; セ◌゙; ) KATAKANA LETTER ZE
+30BE;30BE;30BD 3099;30BE;30BD 3099; # (ゾ; ゾ; ソ◌゙; ゾ; ソ◌゙; ) KATAKANA LETTER ZO
+30C0;30C0;30BF 3099;30C0;30BF 3099; # (ダ; ダ; タ◌゙; ダ; タ◌゙; ) KATAKANA LETTER DA
+30C2;30C2;30C1 3099;30C2;30C1 3099; # (ヂ; ヂ; チ◌゙; ヂ; チ◌゙; ) KATAKANA LETTER DI
+30C5;30C5;30C4 3099;30C5;30C4 3099; # (ヅ; ヅ; ツ◌゙; ヅ; ツ◌゙; ) KATAKANA LETTER DU
+30C7;30C7;30C6 3099;30C7;30C6 3099; # (デ; デ; テ◌゙; デ; テ◌゙; ) KATAKANA LETTER DE
+30C9;30C9;30C8 3099;30C9;30C8 3099; # (ド; ド; ト◌゙; ド; ト◌゙; ) KATAKANA LETTER DO
+30D0;30D0;30CF 3099;30D0;30CF 3099; # (バ; バ; ハ◌゙; バ; ハ◌゙; ) KATAKANA LETTER BA
+30D1;30D1;30CF 309A;30D1;30CF 309A; # (パ; パ; ハ◌゚; パ; ハ◌゚; ) KATAKANA LETTER PA
+30D3;30D3;30D2 3099;30D3;30D2 3099; # (ビ; ビ; ヒ◌゙; ビ; ヒ◌゙; ) KATAKANA LETTER BI
+30D4;30D4;30D2 309A;30D4;30D2 309A; # (ピ; ピ; ヒ◌゚; ピ; ヒ◌゚; ) KATAKANA LETTER PI
+30D6;30D6;30D5 3099;30D6;30D5 3099; # (ブ; ブ; フ◌゙; ブ; フ◌゙; ) KATAKANA LETTER BU
+30D7;30D7;30D5 309A;30D7;30D5 309A; # (プ; プ; フ◌゚; プ; フ◌゚; ) KATAKANA LETTER PU
+30D9;30D9;30D8 3099;30D9;30D8 3099; # (ベ; ベ; ヘ◌゙; ベ; ヘ◌゙; ) KATAKANA LETTER BE
+30DA;30DA;30D8 309A;30DA;30D8 309A; # (ペ; ペ; ヘ◌゚; ペ; ヘ◌゚; ) KATAKANA LETTER PE
+30DC;30DC;30DB 3099;30DC;30DB 3099; # (ボ; ボ; ホ◌゙; ボ; ホ◌゙; ) KATAKANA LETTER BO
+30DD;30DD;30DB 309A;30DD;30DB 309A; # (ポ; ポ; ホ◌゚; ポ; ホ◌゚; ) KATAKANA LETTER PO
+30F4;30F4;30A6 3099;30F4;30A6 3099; # (ヴ; ヴ; ウ◌゙; ヴ; ウ◌゙; ) KATAKANA LETTER VU
+30F7;30F7;30EF 3099;30F7;30EF 3099; # (ヷ; ヷ; ワ◌゙; ヷ; ワ◌゙; ) KATAKANA LETTER VA
+30F8;30F8;30F0 3099;30F8;30F0 3099; # (ヸ; ヸ; ヰ◌゙; ヸ; ヰ◌゙; ) KATAKANA LETTER VI
+30F9;30F9;30F1 3099;30F9;30F1 3099; # (ヹ; ヹ; ヱ◌゙; ヹ; ヱ◌゙; ) KATAKANA LETTER VE
+30FA;30FA;30F2 3099;30FA;30F2 3099; # (ヺ; ヺ; ヲ◌゙; ヺ; ヲ◌゙; ) KATAKANA LETTER VO
+30FE;30FE;30FD 3099;30FE;30FD 3099; # (ヾ; ヾ; ヽ◌゙; ヾ; ヽ◌゙; ) KATAKANA VOICED ITERATION MARK
+30FF;30FF;30FF;30B3 30C8;30B3 30C8; # (ヿ; ヿ; ヿ; コト; コト; ) KATAKANA DIGRAPH KOTO
+3131;3131;3131;1100;1100; # (ㄱ; ㄱ; ㄱ; ᄀ; ᄀ; ) HANGUL LETTER KIYEOK
+3132;3132;3132;1101;1101; # (ㄲ; ㄲ; ㄲ; ᄁ; ᄁ; ) HANGUL LETTER SSANGKIYEOK
+3133;3133;3133;11AA;11AA; # (ㄳ; ㄳ; ㄳ; ᆪ; ᆪ; ) HANGUL LETTER KIYEOK-SIOS
+3134;3134;3134;1102;1102; # (ㄴ; ㄴ; ㄴ; ᄂ; ᄂ; ) HANGUL LETTER NIEUN
+3135;3135;3135;11AC;11AC; # (ㄵ; ㄵ; ㄵ; ᆬ; ᆬ; ) HANGUL LETTER NIEUN-CIEUC
+3136;3136;3136;11AD;11AD; # (ㄶ; ㄶ; ㄶ; ᆭ; ᆭ; ) HANGUL LETTER NIEUN-HIEUH
+3137;3137;3137;1103;1103; # (ㄷ; ㄷ; ㄷ; ᄃ; ᄃ; ) HANGUL LETTER TIKEUT
+3138;3138;3138;1104;1104; # (ㄸ; ㄸ; ㄸ; ᄄ; ᄄ; ) HANGUL LETTER SSANGTIKEUT
+3139;3139;3139;1105;1105; # (ㄹ; ㄹ; ㄹ; ᄅ; ᄅ; ) HANGUL LETTER RIEUL
+313A;313A;313A;11B0;11B0; # (ㄺ; ㄺ; ㄺ; ᆰ; ᆰ; ) HANGUL LETTER RIEUL-KIYEOK
+313B;313B;313B;11B1;11B1; # (ㄻ; ㄻ; ㄻ; ᆱ; ᆱ; ) HANGUL LETTER RIEUL-MIEUM
+313C;313C;313C;11B2;11B2; # (ㄼ; ㄼ; ㄼ; ᆲ; ᆲ; ) HANGUL LETTER RIEUL-PIEUP
+313D;313D;313D;11B3;11B3; # (ㄽ; ㄽ; ㄽ; ᆳ; ᆳ; ) HANGUL LETTER RIEUL-SIOS
+313E;313E;313E;11B4;11B4; # (ㄾ; ㄾ; ㄾ; ᆴ; ᆴ; ) HANGUL LETTER RIEUL-THIEUTH
+313F;313F;313F;11B5;11B5; # (ㄿ; ㄿ; ㄿ; ᆵ; ᆵ; ) HANGUL LETTER RIEUL-PHIEUPH
+3140;3140;3140;111A;111A; # (ㅀ; ㅀ; ㅀ; ᄚ; ᄚ; ) HANGUL LETTER RIEUL-HIEUH
+3141;3141;3141;1106;1106; # (ㅁ; ㅁ; ㅁ; ᄆ; ᄆ; ) HANGUL LETTER MIEUM
+3142;3142;3142;1107;1107; # (ㅂ; ㅂ; ㅂ; ᄇ; ᄇ; ) HANGUL LETTER PIEUP
+3143;3143;3143;1108;1108; # (ㅃ; ㅃ; ㅃ; ᄈ; ᄈ; ) HANGUL LETTER SSANGPIEUP
+3144;3144;3144;1121;1121; # (ㅄ; ㅄ; ㅄ; ᄡ; ᄡ; ) HANGUL LETTER PIEUP-SIOS
+3145;3145;3145;1109;1109; # (ㅅ; ㅅ; ㅅ; ᄉ; ᄉ; ) HANGUL LETTER SIOS
+3146;3146;3146;110A;110A; # (ㅆ; ㅆ; ㅆ; ᄊ; ᄊ; ) HANGUL LETTER SSANGSIOS
+3147;3147;3147;110B;110B; # (ㅇ; ㅇ; ㅇ; ᄋ; ᄋ; ) HANGUL LETTER IEUNG
+3148;3148;3148;110C;110C; # (ㅈ; ㅈ; ㅈ; ᄌ; ᄌ; ) HANGUL LETTER CIEUC
+3149;3149;3149;110D;110D; # (ㅉ; ㅉ; ㅉ; ᄍ; ᄍ; ) HANGUL LETTER SSANGCIEUC
+314A;314A;314A;110E;110E; # (ㅊ; ㅊ; ㅊ; ᄎ; ᄎ; ) HANGUL LETTER CHIEUCH
+314B;314B;314B;110F;110F; # (ㅋ; ㅋ; ㅋ; ᄏ; ᄏ; ) HANGUL LETTER KHIEUKH
+314C;314C;314C;1110;1110; # (ㅌ; ㅌ; ㅌ; ᄐ; ᄐ; ) HANGUL LETTER THIEUTH
+314D;314D;314D;1111;1111; # (ㅍ; ㅍ; ㅍ; ᄑ; ᄑ; ) HANGUL LETTER PHIEUPH
+314E;314E;314E;1112;1112; # (ㅎ; ㅎ; ㅎ; ᄒ; ᄒ; ) HANGUL LETTER HIEUH
+314F;314F;314F;1161;1161; # (ㅏ; ㅏ; ㅏ; ᅡ; ᅡ; ) HANGUL LETTER A
+3150;3150;3150;1162;1162; # (ㅐ; ㅐ; ㅐ; ᅢ; ᅢ; ) HANGUL LETTER AE
+3151;3151;3151;1163;1163; # (ㅑ; ㅑ; ㅑ; ᅣ; ᅣ; ) HANGUL LETTER YA
+3152;3152;3152;1164;1164; # (ㅒ; ㅒ; ㅒ; ᅤ; ᅤ; ) HANGUL LETTER YAE
+3153;3153;3153;1165;1165; # (ㅓ; ㅓ; ㅓ; ᅥ; ᅥ; ) HANGUL LETTER EO
+3154;3154;3154;1166;1166; # (ㅔ; ㅔ; ㅔ; ᅦ; ᅦ; ) HANGUL LETTER E
+3155;3155;3155;1167;1167; # (ㅕ; ㅕ; ㅕ; ᅧ; ᅧ; ) HANGUL LETTER YEO
+3156;3156;3156;1168;1168; # (ㅖ; ㅖ; ㅖ; ᅨ; ᅨ; ) HANGUL LETTER YE
+3157;3157;3157;1169;1169; # (ㅗ; ㅗ; ㅗ; ᅩ; ᅩ; ) HANGUL LETTER O
+3158;3158;3158;116A;116A; # (ㅘ; ㅘ; ㅘ; ᅪ; ᅪ; ) HANGUL LETTER WA
+3159;3159;3159;116B;116B; # (ㅙ; ㅙ; ㅙ; ᅫ; ᅫ; ) HANGUL LETTER WAE
+315A;315A;315A;116C;116C; # (ㅚ; ㅚ; ㅚ; ᅬ; ᅬ; ) HANGUL LETTER OE
+315B;315B;315B;116D;116D; # (ㅛ; ㅛ; ㅛ; ᅭ; ᅭ; ) HANGUL LETTER YO
+315C;315C;315C;116E;116E; # (ㅜ; ㅜ; ㅜ; ᅮ; ᅮ; ) HANGUL LETTER U
+315D;315D;315D;116F;116F; # (ㅝ; ㅝ; ㅝ; ᅯ; ᅯ; ) HANGUL LETTER WEO
+315E;315E;315E;1170;1170; # (ㅞ; ㅞ; ㅞ; ᅰ; ᅰ; ) HANGUL LETTER WE
+315F;315F;315F;1171;1171; # (ㅟ; ㅟ; ㅟ; ᅱ; ᅱ; ) HANGUL LETTER WI
+3160;3160;3160;1172;1172; # (ㅠ; ㅠ; ㅠ; ᅲ; ᅲ; ) HANGUL LETTER YU
+3161;3161;3161;1173;1173; # (ㅡ; ㅡ; ㅡ; ᅳ; ᅳ; ) HANGUL LETTER EU
+3162;3162;3162;1174;1174; # (ㅢ; ㅢ; ㅢ; ᅴ; ᅴ; ) HANGUL LETTER YI
+3163;3163;3163;1175;1175; # (ㅣ; ㅣ; ㅣ; ᅵ; ᅵ; ) HANGUL LETTER I
+3164;3164;3164;1160;1160; # (ㅤ; ㅤ; ㅤ; ᅠ; ᅠ; ) HANGUL FILLER
+3165;3165;3165;1114;1114; # (ㅥ; ㅥ; ㅥ; ᄔ; ᄔ; ) HANGUL LETTER SSANGNIEUN
+3166;3166;3166;1115;1115; # (ㅦ; ㅦ; ㅦ; ᄕ; ᄕ; ) HANGUL LETTER NIEUN-TIKEUT
+3167;3167;3167;11C7;11C7; # (ㅧ; ㅧ; ㅧ; ᇇ; ᇇ; ) HANGUL LETTER NIEUN-SIOS
+3168;3168;3168;11C8;11C8; # (ㅨ; ㅨ; ㅨ; ᇈ; ᇈ; ) HANGUL LETTER NIEUN-PANSIOS
+3169;3169;3169;11CC;11CC; # (ㅩ; ㅩ; ㅩ; ᇌ; ᇌ; ) HANGUL LETTER RIEUL-KIYEOK-SIOS
+316A;316A;316A;11CE;11CE; # (ㅪ; ㅪ; ㅪ; ᇎ; ᇎ; ) HANGUL LETTER RIEUL-TIKEUT
+316B;316B;316B;11D3;11D3; # (ㅫ; ㅫ; ㅫ; ᇓ; ᇓ; ) HANGUL LETTER RIEUL-PIEUP-SIOS
+316C;316C;316C;11D7;11D7; # (ㅬ; ㅬ; ㅬ; ᇗ; ᇗ; ) HANGUL LETTER RIEUL-PANSIOS
+316D;316D;316D;11D9;11D9; # (ㅭ; ㅭ; ㅭ; ᇙ; ᇙ; ) HANGUL LETTER RIEUL-YEORINHIEUH
+316E;316E;316E;111C;111C; # (ㅮ; ㅮ; ㅮ; ᄜ; ᄜ; ) HANGUL LETTER MIEUM-PIEUP
+316F;316F;316F;11DD;11DD; # (ㅯ; ㅯ; ㅯ; ᇝ; ᇝ; ) HANGUL LETTER MIEUM-SIOS
+3170;3170;3170;11DF;11DF; # (ㅰ; ㅰ; ㅰ; ᇟ; ᇟ; ) HANGUL LETTER MIEUM-PANSIOS
+3171;3171;3171;111D;111D; # (ㅱ; ㅱ; ㅱ; ᄝ; ᄝ; ) HANGUL LETTER KAPYEOUNMIEUM
+3172;3172;3172;111E;111E; # (ㅲ; ㅲ; ㅲ; ᄞ; ᄞ; ) HANGUL LETTER PIEUP-KIYEOK
+3173;3173;3173;1120;1120; # (ㅳ; ㅳ; ㅳ; ᄠ; ᄠ; ) HANGUL LETTER PIEUP-TIKEUT
+3174;3174;3174;1122;1122; # (ㅴ; ㅴ; ㅴ; ᄢ; ᄢ; ) HANGUL LETTER PIEUP-SIOS-KIYEOK
+3175;3175;3175;1123;1123; # (ㅵ; ㅵ; ㅵ; ᄣ; ᄣ; ) HANGUL LETTER PIEUP-SIOS-TIKEUT
+3176;3176;3176;1127;1127; # (ㅶ; ㅶ; ㅶ; ᄧ; ᄧ; ) HANGUL LETTER PIEUP-CIEUC
+3177;3177;3177;1129;1129; # (ㅷ; ㅷ; ㅷ; ᄩ; ᄩ; ) HANGUL LETTER PIEUP-THIEUTH
+3178;3178;3178;112B;112B; # (ㅸ; ㅸ; ㅸ; ᄫ; ᄫ; ) HANGUL LETTER KAPYEOUNPIEUP
+3179;3179;3179;112C;112C; # (ㅹ; ㅹ; ㅹ; ᄬ; ᄬ; ) HANGUL LETTER KAPYEOUNSSANGPIEUP
+317A;317A;317A;112D;112D; # (ㅺ; ㅺ; ㅺ; ᄭ; ᄭ; ) HANGUL LETTER SIOS-KIYEOK
+317B;317B;317B;112E;112E; # (ㅻ; ㅻ; ㅻ; ᄮ; ᄮ; ) HANGUL LETTER SIOS-NIEUN
+317C;317C;317C;112F;112F; # (ㅼ; ㅼ; ㅼ; ᄯ; ᄯ; ) HANGUL LETTER SIOS-TIKEUT
+317D;317D;317D;1132;1132; # (ㅽ; ㅽ; ㅽ; ᄲ; ᄲ; ) HANGUL LETTER SIOS-PIEUP
+317E;317E;317E;1136;1136; # (ㅾ; ㅾ; ㅾ; ᄶ; ᄶ; ) HANGUL LETTER SIOS-CIEUC
+317F;317F;317F;1140;1140; # (ㅿ; ㅿ; ㅿ; ᅀ; ᅀ; ) HANGUL LETTER PANSIOS
+3180;3180;3180;1147;1147; # (ㆀ; ㆀ; ㆀ; ᅇ; ᅇ; ) HANGUL LETTER SSANGIEUNG
+3181;3181;3181;114C;114C; # (ㆁ; ㆁ; ㆁ; ᅌ; ᅌ; ) HANGUL LETTER YESIEUNG
+3182;3182;3182;11F1;11F1; # (ㆂ; ㆂ; ㆂ; ᇱ; ᇱ; ) HANGUL LETTER YESIEUNG-SIOS
+3183;3183;3183;11F2;11F2; # (ㆃ; ㆃ; ㆃ; ᇲ; ᇲ; ) HANGUL LETTER YESIEUNG-PANSIOS
+3184;3184;3184;1157;1157; # (ㆄ; ㆄ; ㆄ; ᅗ; ᅗ; ) HANGUL LETTER KAPYEOUNPHIEUPH
+3185;3185;3185;1158;1158; # (ㆅ; ㆅ; ㆅ; ᅘ; ᅘ; ) HANGUL LETTER SSANGHIEUH
+3186;3186;3186;1159;1159; # (ㆆ; ㆆ; ㆆ; ᅙ; ᅙ; ) HANGUL LETTER YEORINHIEUH
+3187;3187;3187;1184;1184; # (ㆇ; ㆇ; ㆇ; ᆄ; ᆄ; ) HANGUL LETTER YO-YA
+3188;3188;3188;1185;1185; # (ㆈ; ㆈ; ㆈ; ᆅ; ᆅ; ) HANGUL LETTER YO-YAE
+3189;3189;3189;1188;1188; # (ㆉ; ㆉ; ㆉ; ᆈ; ᆈ; ) HANGUL LETTER YO-I
+318A;318A;318A;1191;1191; # (ㆊ; ㆊ; ㆊ; ᆑ; ᆑ; ) HANGUL LETTER YU-YEO
+318B;318B;318B;1192;1192; # (ㆋ; ㆋ; ㆋ; ᆒ; ᆒ; ) HANGUL LETTER YU-YE
+318C;318C;318C;1194;1194; # (ㆌ; ㆌ; ㆌ; ᆔ; ᆔ; ) HANGUL LETTER YU-I
+318D;318D;318D;119E;119E; # (ㆍ; ㆍ; ㆍ; ᆞ; ᆞ; ) HANGUL LETTER ARAEA
+318E;318E;318E;11A1;11A1; # (ㆎ; ㆎ; ㆎ; ᆡ; ᆡ; ) HANGUL LETTER ARAEAE
+3192;3192;3192;4E00;4E00; # (㆒; ㆒; ㆒; 一; 一; ) IDEOGRAPHIC ANNOTATION ONE MARK
+3193;3193;3193;4E8C;4E8C; # (㆓; ㆓; ㆓; 二; 二; ) IDEOGRAPHIC ANNOTATION TWO MARK
+3194;3194;3194;4E09;4E09; # (㆔; ㆔; ㆔; 三; 三; ) IDEOGRAPHIC ANNOTATION THREE MARK
+3195;3195;3195;56DB;56DB; # (㆕; ㆕; ㆕; 四; 四; ) IDEOGRAPHIC ANNOTATION FOUR MARK
+3196;3196;3196;4E0A;4E0A; # (㆖; ㆖; ㆖; 上; 上; ) IDEOGRAPHIC ANNOTATION TOP MARK
+3197;3197;3197;4E2D;4E2D; # (㆗; ㆗; ㆗; 中; 中; ) IDEOGRAPHIC ANNOTATION MIDDLE MARK
+3198;3198;3198;4E0B;4E0B; # (㆘; ㆘; ㆘; 下; 下; ) IDEOGRAPHIC ANNOTATION BOTTOM MARK
+3199;3199;3199;7532;7532; # (㆙; ㆙; ㆙; 甲; 甲; ) IDEOGRAPHIC ANNOTATION FIRST MARK
+319A;319A;319A;4E59;4E59; # (㆚; ㆚; ㆚; 乙; 乙; ) IDEOGRAPHIC ANNOTATION SECOND MARK
+319B;319B;319B;4E19;4E19; # (㆛; ㆛; ㆛; 丙; 丙; ) IDEOGRAPHIC ANNOTATION THIRD MARK
+319C;319C;319C;4E01;4E01; # (㆜; ㆜; ㆜; 丁; 丁; ) IDEOGRAPHIC ANNOTATION FOURTH MARK
+319D;319D;319D;5929;5929; # (㆝; ㆝; ㆝; 天; 天; ) IDEOGRAPHIC ANNOTATION HEAVEN MARK
+319E;319E;319E;5730;5730; # (㆞; ㆞; ㆞; 地; 地; ) IDEOGRAPHIC ANNOTATION EARTH MARK
+319F;319F;319F;4EBA;4EBA; # (㆟; ㆟; ㆟; 人; 人; ) IDEOGRAPHIC ANNOTATION MAN MARK
+3200;3200;3200;0028 1100 0029;0028 1100 0029; # (㈀; ㈀; ㈀; (ᄀ); (ᄀ); ) PARENTHESIZED HANGUL KIYEOK
+3201;3201;3201;0028 1102 0029;0028 1102 0029; # (㈁; ㈁; ㈁; (ᄂ); (ᄂ); ) PARENTHESIZED HANGUL NIEUN
+3202;3202;3202;0028 1103 0029;0028 1103 0029; # (㈂; ㈂; ㈂; (ᄃ); (ᄃ); ) PARENTHESIZED HANGUL TIKEUT
+3203;3203;3203;0028 1105 0029;0028 1105 0029; # (㈃; ㈃; ㈃; (ᄅ); (ᄅ); ) PARENTHESIZED HANGUL RIEUL
+3204;3204;3204;0028 1106 0029;0028 1106 0029; # (㈄; ㈄; ㈄; (ᄆ); (ᄆ); ) PARENTHESIZED HANGUL MIEUM
+3205;3205;3205;0028 1107 0029;0028 1107 0029; # (㈅; ㈅; ㈅; (ᄇ); (ᄇ); ) PARENTHESIZED HANGUL PIEUP
+3206;3206;3206;0028 1109 0029;0028 1109 0029; # (㈆; ㈆; ㈆; (ᄉ); (ᄉ); ) PARENTHESIZED HANGUL SIOS
+3207;3207;3207;0028 110B 0029;0028 110B 0029; # (㈇; ㈇; ㈇; (ᄋ); (ᄋ); ) PARENTHESIZED HANGUL IEUNG
+3208;3208;3208;0028 110C 0029;0028 110C 0029; # (㈈; ㈈; ㈈; (ᄌ); (ᄌ); ) PARENTHESIZED HANGUL CIEUC
+3209;3209;3209;0028 110E 0029;0028 110E 0029; # (㈉; ㈉; ㈉; (ᄎ); (ᄎ); ) PARENTHESIZED HANGUL CHIEUCH
+320A;320A;320A;0028 110F 0029;0028 110F 0029; # (㈊; ㈊; ㈊; (ᄏ); (ᄏ); ) PARENTHESIZED HANGUL KHIEUKH
+320B;320B;320B;0028 1110 0029;0028 1110 0029; # (㈋; ㈋; ㈋; (ᄐ); (ᄐ); ) PARENTHESIZED HANGUL THIEUTH
+320C;320C;320C;0028 1111 0029;0028 1111 0029; # (㈌; ㈌; ㈌; (ᄑ); (ᄑ); ) PARENTHESIZED HANGUL PHIEUPH
+320D;320D;320D;0028 1112 0029;0028 1112 0029; # (㈍; ㈍; ㈍; (ᄒ); (ᄒ); ) PARENTHESIZED HANGUL HIEUH
+320E;320E;320E;0028 AC00 0029;0028 1100 1161 0029; # (㈎; ㈎; ㈎; (가); (가); ) PARENTHESIZED HANGUL KIYEOK A
+320F;320F;320F;0028 B098 0029;0028 1102 1161 0029; # (㈏; ㈏; ㈏; (나); (나); ) PARENTHESIZED HANGUL NIEUN A
+3210;3210;3210;0028 B2E4 0029;0028 1103 1161 0029; # (㈐; ㈐; ㈐; (다); (다); ) PARENTHESIZED HANGUL TIKEUT A
+3211;3211;3211;0028 B77C 0029;0028 1105 1161 0029; # (㈑; ㈑; ㈑; (라); (라); ) PARENTHESIZED HANGUL RIEUL A
+3212;3212;3212;0028 B9C8 0029;0028 1106 1161 0029; # (㈒; ㈒; ㈒; (마); (마); ) PARENTHESIZED HANGUL MIEUM A
+3213;3213;3213;0028 BC14 0029;0028 1107 1161 0029; # (㈓; ㈓; ㈓; (바); (바); ) PARENTHESIZED HANGUL PIEUP A
+3214;3214;3214;0028 C0AC 0029;0028 1109 1161 0029; # (㈔; ㈔; ㈔; (사); (사); ) PARENTHESIZED HANGUL SIOS A
+3215;3215;3215;0028 C544 0029;0028 110B 1161 0029; # (㈕; ㈕; ㈕; (아); (아); ) PARENTHESIZED HANGUL IEUNG A
+3216;3216;3216;0028 C790 0029;0028 110C 1161 0029; # (㈖; ㈖; ㈖; (자); (자); ) PARENTHESIZED HANGUL CIEUC A
+3217;3217;3217;0028 CC28 0029;0028 110E 1161 0029; # (㈗; ㈗; ㈗; (차); (차); ) PARENTHESIZED HANGUL CHIEUCH A
+3218;3218;3218;0028 CE74 0029;0028 110F 1161 0029; # (㈘; ㈘; ㈘; (카); (카); ) PARENTHESIZED HANGUL KHIEUKH A
+3219;3219;3219;0028 D0C0 0029;0028 1110 1161 0029; # (㈙; ㈙; ㈙; (타); (타); ) PARENTHESIZED HANGUL THIEUTH A
+321A;321A;321A;0028 D30C 0029;0028 1111 1161 0029; # (㈚; ㈚; ㈚; (파); (파); ) PARENTHESIZED HANGUL PHIEUPH A
+321B;321B;321B;0028 D558 0029;0028 1112 1161 0029; # (㈛; ㈛; ㈛; (하); (하); ) PARENTHESIZED HANGUL HIEUH A
+321C;321C;321C;0028 C8FC 0029;0028 110C 116E 0029; # (㈜; ㈜; ㈜; (주); (주); ) PARENTHESIZED HANGUL CIEUC U
+321D;321D;321D;0028 C624 C804 0029;0028 110B 1169 110C 1165 11AB 0029; # (㈝; ㈝; ㈝; (오전); (오전); ) PARENTHESIZED KOREAN CHARACTER OJEON
+321E;321E;321E;0028 C624 D6C4 0029;0028 110B 1169 1112 116E 0029; # (㈞; ㈞; ㈞; (오후); (오후); ) PARENTHESIZED KOREAN CHARACTER O HU
+3220;3220;3220;0028 4E00 0029;0028 4E00 0029; # (㈠; ㈠; ㈠; (一); (一); ) PARENTHESIZED IDEOGRAPH ONE
+3221;3221;3221;0028 4E8C 0029;0028 4E8C 0029; # (㈡; ㈡; ㈡; (二); (二); ) PARENTHESIZED IDEOGRAPH TWO
+3222;3222;3222;0028 4E09 0029;0028 4E09 0029; # (㈢; ㈢; ㈢; (三); (三); ) PARENTHESIZED IDEOGRAPH THREE
+3223;3223;3223;0028 56DB 0029;0028 56DB 0029; # (㈣; ㈣; ㈣; (四); (四); ) PARENTHESIZED IDEOGRAPH FOUR
+3224;3224;3224;0028 4E94 0029;0028 4E94 0029; # (㈤; ㈤; ㈤; (五); (五); ) PARENTHESIZED IDEOGRAPH FIVE
+3225;3225;3225;0028 516D 0029;0028 516D 0029; # (㈥; ㈥; ㈥; (六); (六); ) PARENTHESIZED IDEOGRAPH SIX
+3226;3226;3226;0028 4E03 0029;0028 4E03 0029; # (㈦; ㈦; ㈦; (七); (七); ) PARENTHESIZED IDEOGRAPH SEVEN
+3227;3227;3227;0028 516B 0029;0028 516B 0029; # (㈧; ㈧; ㈧; (八); (八); ) PARENTHESIZED IDEOGRAPH EIGHT
+3228;3228;3228;0028 4E5D 0029;0028 4E5D 0029; # (㈨; ㈨; ㈨; (九); (九); ) PARENTHESIZED IDEOGRAPH NINE
+3229;3229;3229;0028 5341 0029;0028 5341 0029; # (㈩; ㈩; ㈩; (十); (十); ) PARENTHESIZED IDEOGRAPH TEN
+322A;322A;322A;0028 6708 0029;0028 6708 0029; # (㈪; ㈪; ㈪; (月); (月); ) PARENTHESIZED IDEOGRAPH MOON
+322B;322B;322B;0028 706B 0029;0028 706B 0029; # (㈫; ㈫; ㈫; (火); (火); ) PARENTHESIZED IDEOGRAPH FIRE
+322C;322C;322C;0028 6C34 0029;0028 6C34 0029; # (㈬; ㈬; ㈬; (水); (水); ) PARENTHESIZED IDEOGRAPH WATER
+322D;322D;322D;0028 6728 0029;0028 6728 0029; # (㈭; ㈭; ㈭; (木); (木); ) PARENTHESIZED IDEOGRAPH WOOD
+322E;322E;322E;0028 91D1 0029;0028 91D1 0029; # (㈮; ㈮; ㈮; (金); (金); ) PARENTHESIZED IDEOGRAPH METAL
+322F;322F;322F;0028 571F 0029;0028 571F 0029; # (㈯; ㈯; ㈯; (土); (土); ) PARENTHESIZED IDEOGRAPH EARTH
+3230;3230;3230;0028 65E5 0029;0028 65E5 0029; # (㈰; ㈰; ㈰; (日); (日); ) PARENTHESIZED IDEOGRAPH SUN
+3231;3231;3231;0028 682A 0029;0028 682A 0029; # (㈱; ㈱; ㈱; (株); (株); ) PARENTHESIZED IDEOGRAPH STOCK
+3232;3232;3232;0028 6709 0029;0028 6709 0029; # (㈲; ㈲; ㈲; (有); (有); ) PARENTHESIZED IDEOGRAPH HAVE
+3233;3233;3233;0028 793E 0029;0028 793E 0029; # (㈳; ㈳; ㈳; (社); (社); ) PARENTHESIZED IDEOGRAPH SOCIETY
+3234;3234;3234;0028 540D 0029;0028 540D 0029; # (㈴; ㈴; ㈴; (名); (名); ) PARENTHESIZED IDEOGRAPH NAME
+3235;3235;3235;0028 7279 0029;0028 7279 0029; # (㈵; ㈵; ㈵; (特); (特); ) PARENTHESIZED IDEOGRAPH SPECIAL
+3236;3236;3236;0028 8CA1 0029;0028 8CA1 0029; # (㈶; ㈶; ㈶; (財); (財); ) PARENTHESIZED IDEOGRAPH FINANCIAL
+3237;3237;3237;0028 795D 0029;0028 795D 0029; # (㈷; ㈷; ㈷; (祝); (祝); ) PARENTHESIZED IDEOGRAPH CONGRATULATION
+3238;3238;3238;0028 52B4 0029;0028 52B4 0029; # (㈸; ㈸; ㈸; (労); (労); ) PARENTHESIZED IDEOGRAPH LABOR
+3239;3239;3239;0028 4EE3 0029;0028 4EE3 0029; # (㈹; ㈹; ㈹; (代); (代); ) PARENTHESIZED IDEOGRAPH REPRESENT
+323A;323A;323A;0028 547C 0029;0028 547C 0029; # (㈺; ㈺; ㈺; (呼); (呼); ) PARENTHESIZED IDEOGRAPH CALL
+323B;323B;323B;0028 5B66 0029;0028 5B66 0029; # (㈻; ㈻; ㈻; (学); (学); ) PARENTHESIZED IDEOGRAPH STUDY
+323C;323C;323C;0028 76E3 0029;0028 76E3 0029; # (㈼; ㈼; ㈼; (監); (監); ) PARENTHESIZED IDEOGRAPH SUPERVISE
+323D;323D;323D;0028 4F01 0029;0028 4F01 0029; # (㈽; ㈽; ㈽; (企); (企); ) PARENTHESIZED IDEOGRAPH ENTERPRISE
+323E;323E;323E;0028 8CC7 0029;0028 8CC7 0029; # (㈾; ㈾; ㈾; (資); (資); ) PARENTHESIZED IDEOGRAPH RESOURCE
+323F;323F;323F;0028 5354 0029;0028 5354 0029; # (㈿; ㈿; ㈿; (協); (協); ) PARENTHESIZED IDEOGRAPH ALLIANCE
+3240;3240;3240;0028 796D 0029;0028 796D 0029; # (㉀; ㉀; ㉀; (祭); (祭); ) PARENTHESIZED IDEOGRAPH FESTIVAL
+3241;3241;3241;0028 4F11 0029;0028 4F11 0029; # (㉁; ㉁; ㉁; (休); (休); ) PARENTHESIZED IDEOGRAPH REST
+3242;3242;3242;0028 81EA 0029;0028 81EA 0029; # (㉂; ㉂; ㉂; (自); (自); ) PARENTHESIZED IDEOGRAPH SELF
+3243;3243;3243;0028 81F3 0029;0028 81F3 0029; # (㉃; ㉃; ㉃; (至); (至); ) PARENTHESIZED IDEOGRAPH REACH
+3244;3244;3244;554F;554F; # (㉄; ㉄; ㉄; 問; 問; ) CIRCLED IDEOGRAPH QUESTION
+3245;3245;3245;5E7C;5E7C; # (㉅; ㉅; ㉅; 幼; 幼; ) CIRCLED IDEOGRAPH KINDERGARTEN
+3246;3246;3246;6587;6587; # (㉆; ㉆; ㉆; 文; 文; ) CIRCLED IDEOGRAPH SCHOOL
+3247;3247;3247;7B8F;7B8F; # (㉇; ㉇; ㉇; 箏; 箏; ) CIRCLED IDEOGRAPH KOTO
+3250;3250;3250;0050 0054 0045;0050 0054 0045; # (㉐; ㉐; ㉐; PTE; PTE; ) PARTNERSHIP SIGN
+3251;3251;3251;0032 0031;0032 0031; # (㉑; ㉑; ㉑; 21; 21; ) CIRCLED NUMBER TWENTY ONE
+3252;3252;3252;0032 0032;0032 0032; # (㉒; ㉒; ㉒; 22; 22; ) CIRCLED NUMBER TWENTY TWO
+3253;3253;3253;0032 0033;0032 0033; # (㉓; ㉓; ㉓; 23; 23; ) CIRCLED NUMBER TWENTY THREE
+3254;3254;3254;0032 0034;0032 0034; # (㉔; ㉔; ㉔; 24; 24; ) CIRCLED NUMBER TWENTY FOUR
+3255;3255;3255;0032 0035;0032 0035; # (㉕; ㉕; ㉕; 25; 25; ) CIRCLED NUMBER TWENTY FIVE
+3256;3256;3256;0032 0036;0032 0036; # (㉖; ㉖; ㉖; 26; 26; ) CIRCLED NUMBER TWENTY SIX
+3257;3257;3257;0032 0037;0032 0037; # (㉗; ㉗; ㉗; 27; 27; ) CIRCLED NUMBER TWENTY SEVEN
+3258;3258;3258;0032 0038;0032 0038; # (㉘; ㉘; ㉘; 28; 28; ) CIRCLED NUMBER TWENTY EIGHT
+3259;3259;3259;0032 0039;0032 0039; # (㉙; ㉙; ㉙; 29; 29; ) CIRCLED NUMBER TWENTY NINE
+325A;325A;325A;0033 0030;0033 0030; # (㉚; ㉚; ㉚; 30; 30; ) CIRCLED NUMBER THIRTY
+325B;325B;325B;0033 0031;0033 0031; # (㉛; ㉛; ㉛; 31; 31; ) CIRCLED NUMBER THIRTY ONE
+325C;325C;325C;0033 0032;0033 0032; # (㉜; ㉜; ㉜; 32; 32; ) CIRCLED NUMBER THIRTY TWO
+325D;325D;325D;0033 0033;0033 0033; # (㉝; ㉝; ㉝; 33; 33; ) CIRCLED NUMBER THIRTY THREE
+325E;325E;325E;0033 0034;0033 0034; # (㉞; ㉞; ㉞; 34; 34; ) CIRCLED NUMBER THIRTY FOUR
+325F;325F;325F;0033 0035;0033 0035; # (㉟; ㉟; ㉟; 35; 35; ) CIRCLED NUMBER THIRTY FIVE
+3260;3260;3260;1100;1100; # (㉠; ㉠; ㉠; ᄀ; ᄀ; ) CIRCLED HANGUL KIYEOK
+3261;3261;3261;1102;1102; # (㉡; ㉡; ㉡; ᄂ; ᄂ; ) CIRCLED HANGUL NIEUN
+3262;3262;3262;1103;1103; # (㉢; ㉢; ㉢; ᄃ; ᄃ; ) CIRCLED HANGUL TIKEUT
+3263;3263;3263;1105;1105; # (㉣; ㉣; ㉣; ᄅ; ᄅ; ) CIRCLED HANGUL RIEUL
+3264;3264;3264;1106;1106; # (㉤; ㉤; ㉤; ᄆ; ᄆ; ) CIRCLED HANGUL MIEUM
+3265;3265;3265;1107;1107; # (㉥; ㉥; ㉥; ᄇ; ᄇ; ) CIRCLED HANGUL PIEUP
+3266;3266;3266;1109;1109; # (㉦; ㉦; ㉦; ᄉ; ᄉ; ) CIRCLED HANGUL SIOS
+3267;3267;3267;110B;110B; # (㉧; ㉧; ㉧; ᄋ; ᄋ; ) CIRCLED HANGUL IEUNG
+3268;3268;3268;110C;110C; # (㉨; ㉨; ㉨; ᄌ; ᄌ; ) CIRCLED HANGUL CIEUC
+3269;3269;3269;110E;110E; # (㉩; ㉩; ㉩; ᄎ; ᄎ; ) CIRCLED HANGUL CHIEUCH
+326A;326A;326A;110F;110F; # (㉪; ㉪; ㉪; ᄏ; ᄏ; ) CIRCLED HANGUL KHIEUKH
+326B;326B;326B;1110;1110; # (㉫; ㉫; ㉫; ᄐ; ᄐ; ) CIRCLED HANGUL THIEUTH
+326C;326C;326C;1111;1111; # (㉬; ㉬; ㉬; ᄑ; ᄑ; ) CIRCLED HANGUL PHIEUPH
+326D;326D;326D;1112;1112; # (㉭; ㉭; ㉭; ᄒ; ᄒ; ) CIRCLED HANGUL HIEUH
+326E;326E;326E;AC00;1100 1161; # (㉮; ㉮; ㉮; 가; 가; ) CIRCLED HANGUL KIYEOK A
+326F;326F;326F;B098;1102 1161; # (㉯; ㉯; ㉯; 나; 나; ) CIRCLED HANGUL NIEUN A
+3270;3270;3270;B2E4;1103 1161; # (㉰; ㉰; ㉰; 다; 다; ) CIRCLED HANGUL TIKEUT A
+3271;3271;3271;B77C;1105 1161; # (㉱; ㉱; ㉱; 라; 라; ) CIRCLED HANGUL RIEUL A
+3272;3272;3272;B9C8;1106 1161; # (㉲; ㉲; ㉲; 마; 마; ) CIRCLED HANGUL MIEUM A
+3273;3273;3273;BC14;1107 1161; # (㉳; ㉳; ㉳; 바; 바; ) CIRCLED HANGUL PIEUP A
+3274;3274;3274;C0AC;1109 1161; # (㉴; ㉴; ㉴; 사; 사; ) CIRCLED HANGUL SIOS A
+3275;3275;3275;C544;110B 1161; # (㉵; ㉵; ㉵; 아; 아; ) CIRCLED HANGUL IEUNG A
+3276;3276;3276;C790;110C 1161; # (㉶; ㉶; ㉶; 자; 자; ) CIRCLED HANGUL CIEUC A
+3277;3277;3277;CC28;110E 1161; # (㉷; ㉷; ㉷; 차; 차; ) CIRCLED HANGUL CHIEUCH A
+3278;3278;3278;CE74;110F 1161; # (㉸; ㉸; ㉸; 카; 카; ) CIRCLED HANGUL KHIEUKH A
+3279;3279;3279;D0C0;1110 1161; # (㉹; ㉹; ㉹; 타; 타; ) CIRCLED HANGUL THIEUTH A
+327A;327A;327A;D30C;1111 1161; # (㉺; ㉺; ㉺; 파; 파; ) CIRCLED HANGUL PHIEUPH A
+327B;327B;327B;D558;1112 1161; # (㉻; ㉻; ㉻; 하; 하; ) CIRCLED HANGUL HIEUH A
+327C;327C;327C;CC38 ACE0;110E 1161 11B7 1100 1169; # (㉼; ㉼; ㉼; 참고; 참고; ) CIRCLED KOREAN CHARACTER CHAMKO
+327D;327D;327D;C8FC C758;110C 116E 110B 1174; # (㉽; ㉽; ㉽; 주의; 주의; ) CIRCLED KOREAN CHARACTER JUEUI
+327E;327E;327E;C6B0;110B 116E; # (㉾; ㉾; ㉾; 우; 우; ) CIRCLED HANGUL IEUNG U
+3280;3280;3280;4E00;4E00; # (㊀; ㊀; ㊀; 一; 一; ) CIRCLED IDEOGRAPH ONE
+3281;3281;3281;4E8C;4E8C; # (㊁; ㊁; ㊁; 二; 二; ) CIRCLED IDEOGRAPH TWO
+3282;3282;3282;4E09;4E09; # (㊂; ㊂; ㊂; 三; 三; ) CIRCLED IDEOGRAPH THREE
+3283;3283;3283;56DB;56DB; # (㊃; ㊃; ㊃; 四; 四; ) CIRCLED IDEOGRAPH FOUR
+3284;3284;3284;4E94;4E94; # (㊄; ㊄; ㊄; 五; 五; ) CIRCLED IDEOGRAPH FIVE
+3285;3285;3285;516D;516D; # (㊅; ㊅; ㊅; 六; 六; ) CIRCLED IDEOGRAPH SIX
+3286;3286;3286;4E03;4E03; # (㊆; ㊆; ㊆; 七; 七; ) CIRCLED IDEOGRAPH SEVEN
+3287;3287;3287;516B;516B; # (㊇; ㊇; ㊇; 八; 八; ) CIRCLED IDEOGRAPH EIGHT
+3288;3288;3288;4E5D;4E5D; # (㊈; ㊈; ㊈; 九; 九; ) CIRCLED IDEOGRAPH NINE
+3289;3289;3289;5341;5341; # (㊉; ㊉; ㊉; 十; 十; ) CIRCLED IDEOGRAPH TEN
+328A;328A;328A;6708;6708; # (㊊; ㊊; ㊊; 月; 月; ) CIRCLED IDEOGRAPH MOON
+328B;328B;328B;706B;706B; # (㊋; ㊋; ㊋; 火; 火; ) CIRCLED IDEOGRAPH FIRE
+328C;328C;328C;6C34;6C34; # (㊌; ㊌; ㊌; 水; 水; ) CIRCLED IDEOGRAPH WATER
+328D;328D;328D;6728;6728; # (㊍; ㊍; ㊍; 木; 木; ) CIRCLED IDEOGRAPH WOOD
+328E;328E;328E;91D1;91D1; # (㊎; ㊎; ㊎; 金; 金; ) CIRCLED IDEOGRAPH METAL
+328F;328F;328F;571F;571F; # (㊏; ㊏; ㊏; 土; 土; ) CIRCLED IDEOGRAPH EARTH
+3290;3290;3290;65E5;65E5; # (㊐; ㊐; ㊐; 日; 日; ) CIRCLED IDEOGRAPH SUN
+3291;3291;3291;682A;682A; # (㊑; ㊑; ㊑; 株; 株; ) CIRCLED IDEOGRAPH STOCK
+3292;3292;3292;6709;6709; # (㊒; ㊒; ㊒; 有; 有; ) CIRCLED IDEOGRAPH HAVE
+3293;3293;3293;793E;793E; # (㊓; ㊓; ㊓; 社; 社; ) CIRCLED IDEOGRAPH SOCIETY
+3294;3294;3294;540D;540D; # (㊔; ㊔; ㊔; 名; 名; ) CIRCLED IDEOGRAPH NAME
+3295;3295;3295;7279;7279; # (㊕; ㊕; ㊕; 特; 特; ) CIRCLED IDEOGRAPH SPECIAL
+3296;3296;3296;8CA1;8CA1; # (㊖; ㊖; ㊖; 財; 財; ) CIRCLED IDEOGRAPH FINANCIAL
+3297;3297;3297;795D;795D; # (㊗; ㊗; ㊗; 祝; 祝; ) CIRCLED IDEOGRAPH CONGRATULATION
+3298;3298;3298;52B4;52B4; # (㊘; ㊘; ㊘; 労; 労; ) CIRCLED IDEOGRAPH LABOR
+3299;3299;3299;79D8;79D8; # (㊙; ㊙; ㊙; 秘; 秘; ) CIRCLED IDEOGRAPH SECRET
+329A;329A;329A;7537;7537; # (㊚; ㊚; ㊚; 男; 男; ) CIRCLED IDEOGRAPH MALE
+329B;329B;329B;5973;5973; # (㊛; ㊛; ㊛; 女; 女; ) CIRCLED IDEOGRAPH FEMALE
+329C;329C;329C;9069;9069; # (㊜; ㊜; ㊜; 適; 適; ) CIRCLED IDEOGRAPH SUITABLE
+329D;329D;329D;512A;512A; # (㊝; ㊝; ㊝; 優; 優; ) CIRCLED IDEOGRAPH EXCELLENT
+329E;329E;329E;5370;5370; # (㊞; ㊞; ㊞; 印; 印; ) CIRCLED IDEOGRAPH PRINT
+329F;329F;329F;6CE8;6CE8; # (㊟; ㊟; ㊟; 注; 注; ) CIRCLED IDEOGRAPH ATTENTION
+32A0;32A0;32A0;9805;9805; # (㊠; ㊠; ㊠; 項; 項; ) CIRCLED IDEOGRAPH ITEM
+32A1;32A1;32A1;4F11;4F11; # (㊡; ㊡; ㊡; 休; 休; ) CIRCLED IDEOGRAPH REST
+32A2;32A2;32A2;5199;5199; # (㊢; ㊢; ㊢; 写; 写; ) CIRCLED IDEOGRAPH COPY
+32A3;32A3;32A3;6B63;6B63; # (㊣; ㊣; ㊣; 正; 正; ) CIRCLED IDEOGRAPH CORRECT
+32A4;32A4;32A4;4E0A;4E0A; # (㊤; ㊤; ㊤; 上; 上; ) CIRCLED IDEOGRAPH HIGH
+32A5;32A5;32A5;4E2D;4E2D; # (㊥; ㊥; ㊥; 中; 中; ) CIRCLED IDEOGRAPH CENTRE
+32A6;32A6;32A6;4E0B;4E0B; # (㊦; ㊦; ㊦; 下; 下; ) CIRCLED IDEOGRAPH LOW
+32A7;32A7;32A7;5DE6;5DE6; # (㊧; ㊧; ㊧; 左; 左; ) CIRCLED IDEOGRAPH LEFT
+32A8;32A8;32A8;53F3;53F3; # (㊨; ㊨; ㊨; 右; 右; ) CIRCLED IDEOGRAPH RIGHT
+32A9;32A9;32A9;533B;533B; # (㊩; ㊩; ㊩; 医; 医; ) CIRCLED IDEOGRAPH MEDICINE
+32AA;32AA;32AA;5B97;5B97; # (㊪; ㊪; ㊪; 宗; 宗; ) CIRCLED IDEOGRAPH RELIGION
+32AB;32AB;32AB;5B66;5B66; # (㊫; ㊫; ㊫; 学; 学; ) CIRCLED IDEOGRAPH STUDY
+32AC;32AC;32AC;76E3;76E3; # (㊬; ㊬; ㊬; 監; 監; ) CIRCLED IDEOGRAPH SUPERVISE
+32AD;32AD;32AD;4F01;4F01; # (㊭; ㊭; ㊭; 企; 企; ) CIRCLED IDEOGRAPH ENTERPRISE
+32AE;32AE;32AE;8CC7;8CC7; # (㊮; ㊮; ㊮; 資; 資; ) CIRCLED IDEOGRAPH RESOURCE
+32AF;32AF;32AF;5354;5354; # (㊯; ㊯; ㊯; 協; 協; ) CIRCLED IDEOGRAPH ALLIANCE
+32B0;32B0;32B0;591C;591C; # (㊰; ㊰; ㊰; 夜; 夜; ) CIRCLED IDEOGRAPH NIGHT
+32B1;32B1;32B1;0033 0036;0033 0036; # (㊱; ㊱; ㊱; 36; 36; ) CIRCLED NUMBER THIRTY SIX
+32B2;32B2;32B2;0033 0037;0033 0037; # (㊲; ㊲; ㊲; 37; 37; ) CIRCLED NUMBER THIRTY SEVEN
+32B3;32B3;32B3;0033 0038;0033 0038; # (㊳; ㊳; ㊳; 38; 38; ) CIRCLED NUMBER THIRTY EIGHT
+32B4;32B4;32B4;0033 0039;0033 0039; # (㊴; ㊴; ㊴; 39; 39; ) CIRCLED NUMBER THIRTY NINE
+32B5;32B5;32B5;0034 0030;0034 0030; # (㊵; ㊵; ㊵; 40; 40; ) CIRCLED NUMBER FORTY
+32B6;32B6;32B6;0034 0031;0034 0031; # (㊶; ㊶; ㊶; 41; 41; ) CIRCLED NUMBER FORTY ONE
+32B7;32B7;32B7;0034 0032;0034 0032; # (㊷; ㊷; ㊷; 42; 42; ) CIRCLED NUMBER FORTY TWO
+32B8;32B8;32B8;0034 0033;0034 0033; # (㊸; ㊸; ㊸; 43; 43; ) CIRCLED NUMBER FORTY THREE
+32B9;32B9;32B9;0034 0034;0034 0034; # (㊹; ㊹; ㊹; 44; 44; ) CIRCLED NUMBER FORTY FOUR
+32BA;32BA;32BA;0034 0035;0034 0035; # (㊺; ㊺; ㊺; 45; 45; ) CIRCLED NUMBER FORTY FIVE
+32BB;32BB;32BB;0034 0036;0034 0036; # (㊻; ㊻; ㊻; 46; 46; ) CIRCLED NUMBER FORTY SIX
+32BC;32BC;32BC;0034 0037;0034 0037; # (㊼; ㊼; ㊼; 47; 47; ) CIRCLED NUMBER FORTY SEVEN
+32BD;32BD;32BD;0034 0038;0034 0038; # (㊽; ㊽; ㊽; 48; 48; ) CIRCLED NUMBER FORTY EIGHT
+32BE;32BE;32BE;0034 0039;0034 0039; # (㊾; ㊾; ㊾; 49; 49; ) CIRCLED NUMBER FORTY NINE
+32BF;32BF;32BF;0035 0030;0035 0030; # (㊿; ㊿; ㊿; 50; 50; ) CIRCLED NUMBER FIFTY
+32C0;32C0;32C0;0031 6708;0031 6708; # (㋀; ㋀; ㋀; 1月; 1月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+32C1;32C1;32C1;0032 6708;0032 6708; # (㋁; ㋁; ㋁; 2月; 2月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+32C2;32C2;32C2;0033 6708;0033 6708; # (㋂; ㋂; ㋂; 3月; 3月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+32C3;32C3;32C3;0034 6708;0034 6708; # (㋃; ㋃; ㋃; 4月; 4月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+32C4;32C4;32C4;0035 6708;0035 6708; # (㋄; ㋄; ㋄; 5月; 5月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+32C5;32C5;32C5;0036 6708;0036 6708; # (㋅; ㋅; ㋅; 6月; 6月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+32C6;32C6;32C6;0037 6708;0037 6708; # (㋆; ㋆; ㋆; 7月; 7月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+32C7;32C7;32C7;0038 6708;0038 6708; # (㋇; ㋇; ㋇; 8月; 8月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+32C8;32C8;32C8;0039 6708;0039 6708; # (㋈; ㋈; ㋈; 9月; 9月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9;32C9;32C9;0031 0030 6708;0031 0030 6708; # (㋉; ㋉; ㋉; 10月; 10月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+32CA;32CA;32CA;0031 0031 6708;0031 0031 6708; # (㋊; ㋊; ㋊; 11月; 11月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+32CB;32CB;32CB;0031 0032 6708;0031 0032 6708; # (㋋; ㋋; ㋋; 12月; 12月; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32CC;32CC;32CC;0048 0067;0048 0067; # (㋌; ㋌; ㋌; Hg; Hg; ) SQUARE HG
+32CD;32CD;32CD;0065 0072 0067;0065 0072 0067; # (㋍; ㋍; ㋍; erg; erg; ) SQUARE ERG
+32CE;32CE;32CE;0065 0056;0065 0056; # (㋎; ㋎; ㋎; eV; eV; ) SQUARE EV
+32CF;32CF;32CF;004C 0054 0044;004C 0054 0044; # (㋏; ㋏; ㋏; LTD; LTD; ) LIMITED LIABILITY SIGN
+32D0;32D0;32D0;30A2;30A2; # (㋐; ㋐; ㋐; ア; ア; ) CIRCLED KATAKANA A
+32D1;32D1;32D1;30A4;30A4; # (㋑; ㋑; ㋑; イ; イ; ) CIRCLED KATAKANA I
+32D2;32D2;32D2;30A6;30A6; # (㋒; ㋒; ㋒; ウ; ウ; ) CIRCLED KATAKANA U
+32D3;32D3;32D3;30A8;30A8; # (㋓; ㋓; ㋓; エ; エ; ) CIRCLED KATAKANA E
+32D4;32D4;32D4;30AA;30AA; # (㋔; ㋔; ㋔; オ; オ; ) CIRCLED KATAKANA O
+32D5;32D5;32D5;30AB;30AB; # (㋕; ㋕; ㋕; カ; カ; ) CIRCLED KATAKANA KA
+32D6;32D6;32D6;30AD;30AD; # (㋖; ㋖; ㋖; キ; キ; ) CIRCLED KATAKANA KI
+32D7;32D7;32D7;30AF;30AF; # (㋗; ㋗; ㋗; ク; ク; ) CIRCLED KATAKANA KU
+32D8;32D8;32D8;30B1;30B1; # (㋘; ㋘; ㋘; ケ; ケ; ) CIRCLED KATAKANA KE
+32D9;32D9;32D9;30B3;30B3; # (㋙; ㋙; ㋙; コ; コ; ) CIRCLED KATAKANA KO
+32DA;32DA;32DA;30B5;30B5; # (㋚; ㋚; ㋚; サ; サ; ) CIRCLED KATAKANA SA
+32DB;32DB;32DB;30B7;30B7; # (㋛; ㋛; ㋛; シ; シ; ) CIRCLED KATAKANA SI
+32DC;32DC;32DC;30B9;30B9; # (㋜; ㋜; ㋜; ス; ス; ) CIRCLED KATAKANA SU
+32DD;32DD;32DD;30BB;30BB; # (㋝; ㋝; ㋝; セ; セ; ) CIRCLED KATAKANA SE
+32DE;32DE;32DE;30BD;30BD; # (㋞; ㋞; ㋞; ソ; ソ; ) CIRCLED KATAKANA SO
+32DF;32DF;32DF;30BF;30BF; # (㋟; ㋟; ㋟; タ; タ; ) CIRCLED KATAKANA TA
+32E0;32E0;32E0;30C1;30C1; # (㋠; ㋠; ㋠; チ; チ; ) CIRCLED KATAKANA TI
+32E1;32E1;32E1;30C4;30C4; # (㋡; ㋡; ㋡; ツ; ツ; ) CIRCLED KATAKANA TU
+32E2;32E2;32E2;30C6;30C6; # (㋢; ㋢; ㋢; テ; テ; ) CIRCLED KATAKANA TE
+32E3;32E3;32E3;30C8;30C8; # (㋣; ㋣; ㋣; ト; ト; ) CIRCLED KATAKANA TO
+32E4;32E4;32E4;30CA;30CA; # (㋤; ㋤; ㋤; ナ; ナ; ) CIRCLED KATAKANA NA
+32E5;32E5;32E5;30CB;30CB; # (㋥; ㋥; ㋥; ニ; ニ; ) CIRCLED KATAKANA NI
+32E6;32E6;32E6;30CC;30CC; # (㋦; ㋦; ㋦; ヌ; ヌ; ) CIRCLED KATAKANA NU
+32E7;32E7;32E7;30CD;30CD; # (㋧; ㋧; ㋧; ネ; ネ; ) CIRCLED KATAKANA NE
+32E8;32E8;32E8;30CE;30CE; # (㋨; ㋨; ㋨; ノ; ノ; ) CIRCLED KATAKANA NO
+32E9;32E9;32E9;30CF;30CF; # (㋩; ㋩; ㋩; ハ; ハ; ) CIRCLED KATAKANA HA
+32EA;32EA;32EA;30D2;30D2; # (㋪; ㋪; ㋪; ヒ; ヒ; ) CIRCLED KATAKANA HI
+32EB;32EB;32EB;30D5;30D5; # (㋫; ㋫; ㋫; フ; フ; ) CIRCLED KATAKANA HU
+32EC;32EC;32EC;30D8;30D8; # (㋬; ㋬; ㋬; ヘ; ヘ; ) CIRCLED KATAKANA HE
+32ED;32ED;32ED;30DB;30DB; # (㋭; ㋭; ㋭; ホ; ホ; ) CIRCLED KATAKANA HO
+32EE;32EE;32EE;30DE;30DE; # (㋮; ㋮; ㋮; マ; マ; ) CIRCLED KATAKANA MA
+32EF;32EF;32EF;30DF;30DF; # (㋯; ㋯; ㋯; ミ; ミ; ) CIRCLED KATAKANA MI
+32F0;32F0;32F0;30E0;30E0; # (㋰; ㋰; ㋰; ム; ム; ) CIRCLED KATAKANA MU
+32F1;32F1;32F1;30E1;30E1; # (㋱; ㋱; ㋱; メ; メ; ) CIRCLED KATAKANA ME
+32F2;32F2;32F2;30E2;30E2; # (㋲; ㋲; ㋲; モ; モ; ) CIRCLED KATAKANA MO
+32F3;32F3;32F3;30E4;30E4; # (㋳; ㋳; ㋳; ヤ; ヤ; ) CIRCLED KATAKANA YA
+32F4;32F4;32F4;30E6;30E6; # (㋴; ㋴; ㋴; ユ; ユ; ) CIRCLED KATAKANA YU
+32F5;32F5;32F5;30E8;30E8; # (㋵; ㋵; ㋵; ヨ; ヨ; ) CIRCLED KATAKANA YO
+32F6;32F6;32F6;30E9;30E9; # (㋶; ㋶; ㋶; ラ; ラ; ) CIRCLED KATAKANA RA
+32F7;32F7;32F7;30EA;30EA; # (㋷; ㋷; ㋷; リ; リ; ) CIRCLED KATAKANA RI
+32F8;32F8;32F8;30EB;30EB; # (㋸; ㋸; ㋸; ル; ル; ) CIRCLED KATAKANA RU
+32F9;32F9;32F9;30EC;30EC; # (㋹; ㋹; ㋹; レ; レ; ) CIRCLED KATAKANA RE
+32FA;32FA;32FA;30ED;30ED; # (㋺; ㋺; ㋺; ロ; ロ; ) CIRCLED KATAKANA RO
+32FB;32FB;32FB;30EF;30EF; # (㋻; ㋻; ㋻; ワ; ワ; ) CIRCLED KATAKANA WA
+32FC;32FC;32FC;30F0;30F0; # (㋼; ㋼; ㋼; ヰ; ヰ; ) CIRCLED KATAKANA WI
+32FD;32FD;32FD;30F1;30F1; # (㋽; ㋽; ㋽; ヱ; ヱ; ) CIRCLED KATAKANA WE
+32FE;32FE;32FE;30F2;30F2; # (㋾; ㋾; ㋾; ヲ; ヲ; ) CIRCLED KATAKANA WO
+32FF;32FF;32FF;4EE4 548C;4EE4 548C; # (㋿; ㋿; ㋿; 令和; 令和; ) SQUARE ERA NAME REIWA
+3300;3300;3300;30A2 30D1 30FC 30C8;30A2 30CF 309A 30FC 30C8; # (㌀; ㌀; ㌀; アパート; アハ◌゚ート; ) SQUARE APAATO
+3301;3301;3301;30A2 30EB 30D5 30A1;30A2 30EB 30D5 30A1; # (㌁; ㌁; ㌁; アルファ; アルファ; ) SQUARE ARUHUA
+3302;3302;3302;30A2 30F3 30DA 30A2;30A2 30F3 30D8 309A 30A2; # (㌂; ㌂; ㌂; アンペア; アンヘ◌゚ア; ) SQUARE ANPEA
+3303;3303;3303;30A2 30FC 30EB;30A2 30FC 30EB; # (㌃; ㌃; ㌃; アール; アール; ) SQUARE AARU
+3304;3304;3304;30A4 30CB 30F3 30B0;30A4 30CB 30F3 30AF 3099; # (㌄; ㌄; ㌄; イニング; イニンク◌゙; ) SQUARE ININGU
+3305;3305;3305;30A4 30F3 30C1;30A4 30F3 30C1; # (㌅; ㌅; ㌅; インチ; インチ; ) SQUARE INTI
+3306;3306;3306;30A6 30A9 30F3;30A6 30A9 30F3; # (㌆; ㌆; ㌆; ウォン; ウォン; ) SQUARE UON
+3307;3307;3307;30A8 30B9 30AF 30FC 30C9;30A8 30B9 30AF 30FC 30C8 3099; # (㌇; ㌇; ㌇; エスクード; エスクート◌゙; ) SQUARE ESUKUUDO
+3308;3308;3308;30A8 30FC 30AB 30FC;30A8 30FC 30AB 30FC; # (㌈; ㌈; ㌈; エーカー; エーカー; ) SQUARE EEKAA
+3309;3309;3309;30AA 30F3 30B9;30AA 30F3 30B9; # (㌉; ㌉; ㌉; オンス; オンス; ) SQUARE ONSU
+330A;330A;330A;30AA 30FC 30E0;30AA 30FC 30E0; # (㌊; ㌊; ㌊; オーム; オーム; ) SQUARE OOMU
+330B;330B;330B;30AB 30A4 30EA;30AB 30A4 30EA; # (㌋; ㌋; ㌋; カイリ; カイリ; ) SQUARE KAIRI
+330C;330C;330C;30AB 30E9 30C3 30C8;30AB 30E9 30C3 30C8; # (㌌; ㌌; ㌌; カラット; カラット; ) SQUARE KARATTO
+330D;330D;330D;30AB 30ED 30EA 30FC;30AB 30ED 30EA 30FC; # (㌍; ㌍; ㌍; カロリー; カロリー; ) SQUARE KARORII
+330E;330E;330E;30AC 30ED 30F3;30AB 3099 30ED 30F3; # (㌎; ㌎; ㌎; ガロン; カ◌゙ロン; ) SQUARE GARON
+330F;330F;330F;30AC 30F3 30DE;30AB 3099 30F3 30DE; # (㌏; ㌏; ㌏; ガンマ; カ◌゙ンマ; ) SQUARE GANMA
+3310;3310;3310;30AE 30AC;30AD 3099 30AB 3099; # (㌐; ㌐; ㌐; ギガ; キ◌゙カ◌゙; ) SQUARE GIGA
+3311;3311;3311;30AE 30CB 30FC;30AD 3099 30CB 30FC; # (㌑; ㌑; ㌑; ギニー; キ◌゙ニー; ) SQUARE GINII
+3312;3312;3312;30AD 30E5 30EA 30FC;30AD 30E5 30EA 30FC; # (㌒; ㌒; ㌒; キュリー; キュリー; ) SQUARE KYURII
+3313;3313;3313;30AE 30EB 30C0 30FC;30AD 3099 30EB 30BF 3099 30FC; # (㌓; ㌓; ㌓; ギルダー; キ◌゙ルタ◌゙ー; ) SQUARE GIRUDAA
+3314;3314;3314;30AD 30ED;30AD 30ED; # (㌔; ㌔; ㌔; キロ; キロ; ) SQUARE KIRO
+3315;3315;3315;30AD 30ED 30B0 30E9 30E0;30AD 30ED 30AF 3099 30E9 30E0; # (㌕; ㌕; ㌕; キログラム; キロク◌゙ラム; ) SQUARE KIROGURAMU
+3316;3316;3316;30AD 30ED 30E1 30FC 30C8 30EB;30AD 30ED 30E1 30FC 30C8 30EB; # (㌖; ㌖; ㌖; キロメートル; キロメートル; ) SQUARE KIROMEETORU
+3317;3317;3317;30AD 30ED 30EF 30C3 30C8;30AD 30ED 30EF 30C3 30C8; # (㌗; ㌗; ㌗; キロワット; キロワット; ) SQUARE KIROWATTO
+3318;3318;3318;30B0 30E9 30E0;30AF 3099 30E9 30E0; # (㌘; ㌘; ㌘; グラム; ク◌゙ラム; ) SQUARE GURAMU
+3319;3319;3319;30B0 30E9 30E0 30C8 30F3;30AF 3099 30E9 30E0 30C8 30F3; # (㌙; ㌙; ㌙; グラムトン; ク◌゙ラムトン; ) SQUARE GURAMUTON
+331A;331A;331A;30AF 30EB 30BC 30A4 30ED;30AF 30EB 30BB 3099 30A4 30ED; # (㌚; ㌚; ㌚; クルゼイロ; クルセ◌゙イロ; ) SQUARE KURUZEIRO
+331B;331B;331B;30AF 30ED 30FC 30CD;30AF 30ED 30FC 30CD; # (㌛; ㌛; ㌛; クローネ; クローネ; ) SQUARE KUROONE
+331C;331C;331C;30B1 30FC 30B9;30B1 30FC 30B9; # (㌜; ㌜; ㌜; ケース; ケース; ) SQUARE KEESU
+331D;331D;331D;30B3 30EB 30CA;30B3 30EB 30CA; # (㌝; ㌝; ㌝; コルナ; コルナ; ) SQUARE KORUNA
+331E;331E;331E;30B3 30FC 30DD;30B3 30FC 30DB 309A; # (㌞; ㌞; ㌞; コーポ; コーホ◌゚; ) SQUARE KOOPO
+331F;331F;331F;30B5 30A4 30AF 30EB;30B5 30A4 30AF 30EB; # (㌟; ㌟; ㌟; サイクル; サイクル; ) SQUARE SAIKURU
+3320;3320;3320;30B5 30F3 30C1 30FC 30E0;30B5 30F3 30C1 30FC 30E0; # (㌠; ㌠; ㌠; サンチーム; サンチーム; ) SQUARE SANTIIMU
+3321;3321;3321;30B7 30EA 30F3 30B0;30B7 30EA 30F3 30AF 3099; # (㌡; ㌡; ㌡; シリング; シリンク◌゙; ) SQUARE SIRINGU
+3322;3322;3322;30BB 30F3 30C1;30BB 30F3 30C1; # (㌢; ㌢; ㌢; センチ; センチ; ) SQUARE SENTI
+3323;3323;3323;30BB 30F3 30C8;30BB 30F3 30C8; # (㌣; ㌣; ㌣; セント; セント; ) SQUARE SENTO
+3324;3324;3324;30C0 30FC 30B9;30BF 3099 30FC 30B9; # (㌤; ㌤; ㌤; ダース; タ◌゙ース; ) SQUARE DAASU
+3325;3325;3325;30C7 30B7;30C6 3099 30B7; # (㌥; ㌥; ㌥; デシ; テ◌゙シ; ) SQUARE DESI
+3326;3326;3326;30C9 30EB;30C8 3099 30EB; # (㌦; ㌦; ㌦; ドル; ト◌゙ル; ) SQUARE DORU
+3327;3327;3327;30C8 30F3;30C8 30F3; # (㌧; ㌧; ㌧; トン; トン; ) SQUARE TON
+3328;3328;3328;30CA 30CE;30CA 30CE; # (㌨; ㌨; ㌨; ナノ; ナノ; ) SQUARE NANO
+3329;3329;3329;30CE 30C3 30C8;30CE 30C3 30C8; # (㌩; ㌩; ㌩; ノット; ノット; ) SQUARE NOTTO
+332A;332A;332A;30CF 30A4 30C4;30CF 30A4 30C4; # (㌪; ㌪; ㌪; ハイツ; ハイツ; ) SQUARE HAITU
+332B;332B;332B;30D1 30FC 30BB 30F3 30C8;30CF 309A 30FC 30BB 30F3 30C8; # (㌫; ㌫; ㌫; パーセント; ハ◌゚ーセント; ) SQUARE PAASENTO
+332C;332C;332C;30D1 30FC 30C4;30CF 309A 30FC 30C4; # (㌬; ㌬; ㌬; パーツ; ハ◌゚ーツ; ) SQUARE PAATU
+332D;332D;332D;30D0 30FC 30EC 30EB;30CF 3099 30FC 30EC 30EB; # (㌭; ㌭; ㌭; バーレル; ハ◌゙ーレル; ) SQUARE BAARERU
+332E;332E;332E;30D4 30A2 30B9 30C8 30EB;30D2 309A 30A2 30B9 30C8 30EB; # (㌮; ㌮; ㌮; ピアストル; ヒ◌゚アストル; ) SQUARE PIASUTORU
+332F;332F;332F;30D4 30AF 30EB;30D2 309A 30AF 30EB; # (㌯; ㌯; ㌯; ピクル; ヒ◌゚クル; ) SQUARE PIKURU
+3330;3330;3330;30D4 30B3;30D2 309A 30B3; # (㌰; ㌰; ㌰; ピコ; ヒ◌゚コ; ) SQUARE PIKO
+3331;3331;3331;30D3 30EB;30D2 3099 30EB; # (㌱; ㌱; ㌱; ビル; ヒ◌゙ル; ) SQUARE BIRU
+3332;3332;3332;30D5 30A1 30E9 30C3 30C9;30D5 30A1 30E9 30C3 30C8 3099; # (㌲; ㌲; ㌲; ファラッド; ファラット◌゙; ) SQUARE HUARADDO
+3333;3333;3333;30D5 30A3 30FC 30C8;30D5 30A3 30FC 30C8; # (㌳; ㌳; ㌳; フィート; フィート; ) SQUARE HUIITO
+3334;3334;3334;30D6 30C3 30B7 30A7 30EB;30D5 3099 30C3 30B7 30A7 30EB; # (㌴; ㌴; ㌴; ブッシェル; フ◌゙ッシェル; ) SQUARE BUSSYERU
+3335;3335;3335;30D5 30E9 30F3;30D5 30E9 30F3; # (㌵; ㌵; ㌵; フラン; フラン; ) SQUARE HURAN
+3336;3336;3336;30D8 30AF 30BF 30FC 30EB;30D8 30AF 30BF 30FC 30EB; # (㌶; ㌶; ㌶; ヘクタール; ヘクタール; ) SQUARE HEKUTAARU
+3337;3337;3337;30DA 30BD;30D8 309A 30BD; # (㌷; ㌷; ㌷; ペソ; ヘ◌゚ソ; ) SQUARE PESO
+3338;3338;3338;30DA 30CB 30D2;30D8 309A 30CB 30D2; # (㌸; ㌸; ㌸; ペニヒ; ヘ◌゚ニヒ; ) SQUARE PENIHI
+3339;3339;3339;30D8 30EB 30C4;30D8 30EB 30C4; # (㌹; ㌹; ㌹; ヘルツ; ヘルツ; ) SQUARE HERUTU
+333A;333A;333A;30DA 30F3 30B9;30D8 309A 30F3 30B9; # (㌺; ㌺; ㌺; ペンス; ヘ◌゚ンス; ) SQUARE PENSU
+333B;333B;333B;30DA 30FC 30B8;30D8 309A 30FC 30B7 3099; # (㌻; ㌻; ㌻; ページ; ヘ◌゚ーシ◌゙; ) SQUARE PEEZI
+333C;333C;333C;30D9 30FC 30BF;30D8 3099 30FC 30BF; # (㌼; ㌼; ㌼; ベータ; ヘ◌゙ータ; ) SQUARE BEETA
+333D;333D;333D;30DD 30A4 30F3 30C8;30DB 309A 30A4 30F3 30C8; # (㌽; ㌽; ㌽; ポイント; ホ◌゚イント; ) SQUARE POINTO
+333E;333E;333E;30DC 30EB 30C8;30DB 3099 30EB 30C8; # (㌾; ㌾; ㌾; ボルト; ホ◌゙ルト; ) SQUARE BORUTO
+333F;333F;333F;30DB 30F3;30DB 30F3; # (㌿; ㌿; ㌿; ホン; ホン; ) SQUARE HON
+3340;3340;3340;30DD 30F3 30C9;30DB 309A 30F3 30C8 3099; # (㍀; ㍀; ㍀; ポンド; ホ◌゚ント◌゙; ) SQUARE PONDO
+3341;3341;3341;30DB 30FC 30EB;30DB 30FC 30EB; # (㍁; ㍁; ㍁; ホール; ホール; ) SQUARE HOORU
+3342;3342;3342;30DB 30FC 30F3;30DB 30FC 30F3; # (㍂; ㍂; ㍂; ホーン; ホーン; ) SQUARE HOON
+3343;3343;3343;30DE 30A4 30AF 30ED;30DE 30A4 30AF 30ED; # (㍃; ㍃; ㍃; マイクロ; マイクロ; ) SQUARE MAIKURO
+3344;3344;3344;30DE 30A4 30EB;30DE 30A4 30EB; # (㍄; ㍄; ㍄; マイル; マイル; ) SQUARE MAIRU
+3345;3345;3345;30DE 30C3 30CF;30DE 30C3 30CF; # (㍅; ㍅; ㍅; マッハ; マッハ; ) SQUARE MAHHA
+3346;3346;3346;30DE 30EB 30AF;30DE 30EB 30AF; # (㍆; ㍆; ㍆; マルク; マルク; ) SQUARE MARUKU
+3347;3347;3347;30DE 30F3 30B7 30E7 30F3;30DE 30F3 30B7 30E7 30F3; # (㍇; ㍇; ㍇; マンション; マンション; ) SQUARE MANSYON
+3348;3348;3348;30DF 30AF 30ED 30F3;30DF 30AF 30ED 30F3; # (㍈; ㍈; ㍈; ミクロン; ミクロン; ) SQUARE MIKURON
+3349;3349;3349;30DF 30EA;30DF 30EA; # (㍉; ㍉; ㍉; ミリ; ミリ; ) SQUARE MIRI
+334A;334A;334A;30DF 30EA 30D0 30FC 30EB;30DF 30EA 30CF 3099 30FC 30EB; # (㍊; ㍊; ㍊; ミリバール; ミリハ◌゙ール; ) SQUARE MIRIBAARU
+334B;334B;334B;30E1 30AC;30E1 30AB 3099; # (㍋; ㍋; ㍋; メガ; メカ◌゙; ) SQUARE MEGA
+334C;334C;334C;30E1 30AC 30C8 30F3;30E1 30AB 3099 30C8 30F3; # (㍌; ㍌; ㍌; メガトン; メカ◌゙トン; ) SQUARE MEGATON
+334D;334D;334D;30E1 30FC 30C8 30EB;30E1 30FC 30C8 30EB; # (㍍; ㍍; ㍍; メートル; メートル; ) SQUARE MEETORU
+334E;334E;334E;30E4 30FC 30C9;30E4 30FC 30C8 3099; # (㍎; ㍎; ㍎; ヤード; ヤート◌゙; ) SQUARE YAADO
+334F;334F;334F;30E4 30FC 30EB;30E4 30FC 30EB; # (㍏; ㍏; ㍏; ヤール; ヤール; ) SQUARE YAARU
+3350;3350;3350;30E6 30A2 30F3;30E6 30A2 30F3; # (㍐; ㍐; ㍐; ユアン; ユアン; ) SQUARE YUAN
+3351;3351;3351;30EA 30C3 30C8 30EB;30EA 30C3 30C8 30EB; # (㍑; ㍑; ㍑; リットル; リットル; ) SQUARE RITTORU
+3352;3352;3352;30EA 30E9;30EA 30E9; # (㍒; ㍒; ㍒; リラ; リラ; ) SQUARE RIRA
+3353;3353;3353;30EB 30D4 30FC;30EB 30D2 309A 30FC; # (㍓; ㍓; ㍓; ルピー; ルヒ◌゚ー; ) SQUARE RUPII
+3354;3354;3354;30EB 30FC 30D6 30EB;30EB 30FC 30D5 3099 30EB; # (㍔; ㍔; ㍔; ルーブル; ルーフ◌゙ル; ) SQUARE RUUBURU
+3355;3355;3355;30EC 30E0;30EC 30E0; # (㍕; ㍕; ㍕; レム; レム; ) SQUARE REMU
+3356;3356;3356;30EC 30F3 30C8 30B2 30F3;30EC 30F3 30C8 30B1 3099 30F3; # (㍖; ㍖; ㍖; レントゲン; レントケ◌゙ン; ) SQUARE RENTOGEN
+3357;3357;3357;30EF 30C3 30C8;30EF 30C3 30C8; # (㍗; ㍗; ㍗; ワット; ワット; ) SQUARE WATTO
+3358;3358;3358;0030 70B9;0030 70B9; # (㍘; ㍘; ㍘; 0点; 0点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+3359;3359;3359;0031 70B9;0031 70B9; # (㍙; ㍙; ㍙; 1点; 1点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+335A;335A;335A;0032 70B9;0032 70B9; # (㍚; ㍚; ㍚; 2点; 2点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+335B;335B;335B;0033 70B9;0033 70B9; # (㍛; ㍛; ㍛; 3点; 3点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+335C;335C;335C;0034 70B9;0034 70B9; # (㍜; ㍜; ㍜; 4点; 4点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+335D;335D;335D;0035 70B9;0035 70B9; # (㍝; ㍝; ㍝; 5点; 5点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+335E;335E;335E;0036 70B9;0036 70B9; # (㍞; ㍞; ㍞; 6点; 6点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+335F;335F;335F;0037 70B9;0037 70B9; # (㍟; ㍟; ㍟; 7点; 7点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+3360;3360;3360;0038 70B9;0038 70B9; # (㍠; ㍠; ㍠; 8点; 8点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361;3361;3361;0039 70B9;0039 70B9; # (㍡; ㍡; ㍡; 9点; 9点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+3362;3362;3362;0031 0030 70B9;0031 0030 70B9; # (㍢; ㍢; ㍢; 10点; 10点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+3363;3363;3363;0031 0031 70B9;0031 0031 70B9; # (㍣; ㍣; ㍣; 11点; 11点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364;3364;3364;0031 0032 70B9;0031 0032 70B9; # (㍤; ㍤; ㍤; 12点; 12点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365;3365;3365;0031 0033 70B9;0031 0033 70B9; # (㍥; ㍥; ㍥; 13点; 13点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366;3366;3366;0031 0034 70B9;0031 0034 70B9; # (㍦; ㍦; ㍦; 14点; 14点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367;3367;3367;0031 0035 70B9;0031 0035 70B9; # (㍧; ㍧; ㍧; 15点; 15点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368;3368;3368;0031 0036 70B9;0031 0036 70B9; # (㍨; ㍨; ㍨; 16点; 16点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369;3369;3369;0031 0037 70B9;0031 0037 70B9; # (㍩; ㍩; ㍩; 17点; 17点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A;336A;336A;0031 0038 70B9;0031 0038 70B9; # (㍪; ㍪; ㍪; 18点; 18点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B;336B;336B;0031 0039 70B9;0031 0039 70B9; # (㍫; ㍫; ㍫; 19点; 19点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C;336C;336C;0032 0030 70B9;0032 0030 70B9; # (㍬; ㍬; ㍬; 20点; 20点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D;336D;336D;0032 0031 70B9;0032 0031 70B9; # (㍭; ㍭; ㍭; 21点; 21点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E;336E;336E;0032 0032 70B9;0032 0032 70B9; # (㍮; ㍮; ㍮; 22点; 22点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F;336F;336F;0032 0033 70B9;0032 0033 70B9; # (㍯; ㍯; ㍯; 23点; 23点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3370;3370;3370;0032 0034 70B9;0032 0034 70B9; # (㍰; ㍰; ㍰; 24点; 24点; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371;3371;3371;0068 0050 0061;0068 0050 0061; # (㍱; ㍱; ㍱; hPa; hPa; ) SQUARE HPA
+3372;3372;3372;0064 0061;0064 0061; # (㍲; ㍲; ㍲; da; da; ) SQUARE DA
+3373;3373;3373;0041 0055;0041 0055; # (㍳; ㍳; ㍳; AU; AU; ) SQUARE AU
+3374;3374;3374;0062 0061 0072;0062 0061 0072; # (㍴; ㍴; ㍴; bar; bar; ) SQUARE BAR
+3375;3375;3375;006F 0056;006F 0056; # (㍵; ㍵; ㍵; oV; oV; ) SQUARE OV
+3376;3376;3376;0070 0063;0070 0063; # (㍶; ㍶; ㍶; pc; pc; ) SQUARE PC
+3377;3377;3377;0064 006D;0064 006D; # (㍷; ㍷; ㍷; dm; dm; ) SQUARE DM
+3378;3378;3378;0064 006D 0032;0064 006D 0032; # (㍸; ㍸; ㍸; dm2; dm2; ) SQUARE DM SQUARED
+3379;3379;3379;0064 006D 0033;0064 006D 0033; # (㍹; ㍹; ㍹; dm3; dm3; ) SQUARE DM CUBED
+337A;337A;337A;0049 0055;0049 0055; # (㍺; ㍺; ㍺; IU; IU; ) SQUARE IU
+337B;337B;337B;5E73 6210;5E73 6210; # (㍻; ㍻; ㍻; 平成; 平成; ) SQUARE ERA NAME HEISEI
+337C;337C;337C;662D 548C;662D 548C; # (㍼; ㍼; ㍼; 昭和; 昭和; ) SQUARE ERA NAME SYOUWA
+337D;337D;337D;5927 6B63;5927 6B63; # (㍽; ㍽; ㍽; 大正; 大正; ) SQUARE ERA NAME TAISYOU
+337E;337E;337E;660E 6CBB;660E 6CBB; # (㍾; ㍾; ㍾; 明治; 明治; ) SQUARE ERA NAME MEIZI
+337F;337F;337F;682A 5F0F 4F1A 793E;682A 5F0F 4F1A 793E; # (㍿; ㍿; ㍿; 株式会社; 株式会社; ) SQUARE CORPORATION
+3380;3380;3380;0070 0041;0070 0041; # (㎀; ㎀; ㎀; pA; pA; ) SQUARE PA AMPS
+3381;3381;3381;006E 0041;006E 0041; # (㎁; ㎁; ㎁; nA; nA; ) SQUARE NA
+3382;3382;3382;03BC 0041;03BC 0041; # (㎂; ㎂; ㎂; μA; μA; ) SQUARE MU A
+3383;3383;3383;006D 0041;006D 0041; # (㎃; ㎃; ㎃; mA; mA; ) SQUARE MA
+3384;3384;3384;006B 0041;006B 0041; # (㎄; ㎄; ㎄; kA; kA; ) SQUARE KA
+3385;3385;3385;004B 0042;004B 0042; # (㎅; ㎅; ㎅; KB; KB; ) SQUARE KB
+3386;3386;3386;004D 0042;004D 0042; # (㎆; ㎆; ㎆; MB; MB; ) SQUARE MB
+3387;3387;3387;0047 0042;0047 0042; # (㎇; ㎇; ㎇; GB; GB; ) SQUARE GB
+3388;3388;3388;0063 0061 006C;0063 0061 006C; # (㎈; ㎈; ㎈; cal; cal; ) SQUARE CAL
+3389;3389;3389;006B 0063 0061 006C;006B 0063 0061 006C; # (㎉; ㎉; ㎉; kcal; kcal; ) SQUARE KCAL
+338A;338A;338A;0070 0046;0070 0046; # (㎊; ㎊; ㎊; pF; pF; ) SQUARE PF
+338B;338B;338B;006E 0046;006E 0046; # (㎋; ㎋; ㎋; nF; nF; ) SQUARE NF
+338C;338C;338C;03BC 0046;03BC 0046; # (㎌; ㎌; ㎌; μF; μF; ) SQUARE MU F
+338D;338D;338D;03BC 0067;03BC 0067; # (㎍; ㎍; ㎍; μg; μg; ) SQUARE MU G
+338E;338E;338E;006D 0067;006D 0067; # (㎎; ㎎; ㎎; mg; mg; ) SQUARE MG
+338F;338F;338F;006B 0067;006B 0067; # (㎏; ㎏; ㎏; kg; kg; ) SQUARE KG
+3390;3390;3390;0048 007A;0048 007A; # (㎐; ㎐; ㎐; Hz; Hz; ) SQUARE HZ
+3391;3391;3391;006B 0048 007A;006B 0048 007A; # (㎑; ㎑; ㎑; kHz; kHz; ) SQUARE KHZ
+3392;3392;3392;004D 0048 007A;004D 0048 007A; # (㎒; ㎒; ㎒; MHz; MHz; ) SQUARE MHZ
+3393;3393;3393;0047 0048 007A;0047 0048 007A; # (㎓; ㎓; ㎓; GHz; GHz; ) SQUARE GHZ
+3394;3394;3394;0054 0048 007A;0054 0048 007A; # (㎔; ㎔; ㎔; THz; THz; ) SQUARE THZ
+3395;3395;3395;03BC 006C;03BC 006C; # (㎕; ㎕; ㎕; μl; μl; ) SQUARE MU L
+3396;3396;3396;006D 006C;006D 006C; # (㎖; ㎖; ㎖; ml; ml; ) SQUARE ML
+3397;3397;3397;0064 006C;0064 006C; # (㎗; ㎗; ㎗; dl; dl; ) SQUARE DL
+3398;3398;3398;006B 006C;006B 006C; # (㎘; ㎘; ㎘; kl; kl; ) SQUARE KL
+3399;3399;3399;0066 006D;0066 006D; # (㎙; ㎙; ㎙; fm; fm; ) SQUARE FM
+339A;339A;339A;006E 006D;006E 006D; # (㎚; ㎚; ㎚; nm; nm; ) SQUARE NM
+339B;339B;339B;03BC 006D;03BC 006D; # (㎛; ㎛; ㎛; μm; μm; ) SQUARE MU M
+339C;339C;339C;006D 006D;006D 006D; # (㎜; ㎜; ㎜; mm; mm; ) SQUARE MM
+339D;339D;339D;0063 006D;0063 006D; # (㎝; ㎝; ㎝; cm; cm; ) SQUARE CM
+339E;339E;339E;006B 006D;006B 006D; # (㎞; ㎞; ㎞; km; km; ) SQUARE KM
+339F;339F;339F;006D 006D 0032;006D 006D 0032; # (㎟; ㎟; ㎟; mm2; mm2; ) SQUARE MM SQUARED
+33A0;33A0;33A0;0063 006D 0032;0063 006D 0032; # (㎠; ㎠; ㎠; cm2; cm2; ) SQUARE CM SQUARED
+33A1;33A1;33A1;006D 0032;006D 0032; # (㎡; ㎡; ㎡; m2; m2; ) SQUARE M SQUARED
+33A2;33A2;33A2;006B 006D 0032;006B 006D 0032; # (㎢; ㎢; ㎢; km2; km2; ) SQUARE KM SQUARED
+33A3;33A3;33A3;006D 006D 0033;006D 006D 0033; # (㎣; ㎣; ㎣; mm3; mm3; ) SQUARE MM CUBED
+33A4;33A4;33A4;0063 006D 0033;0063 006D 0033; # (㎤; ㎤; ㎤; cm3; cm3; ) SQUARE CM CUBED
+33A5;33A5;33A5;006D 0033;006D 0033; # (㎥; ㎥; ㎥; m3; m3; ) SQUARE M CUBED
+33A6;33A6;33A6;006B 006D 0033;006B 006D 0033; # (㎦; ㎦; ㎦; km3; km3; ) SQUARE KM CUBED
+33A7;33A7;33A7;006D 2215 0073;006D 2215 0073; # (㎧; ㎧; ㎧; m∕s; m∕s; ) SQUARE M OVER S
+33A8;33A8;33A8;006D 2215 0073 0032;006D 2215 0073 0032; # (㎨; ㎨; ㎨; m∕s2; m∕s2; ) SQUARE M OVER S SQUARED
+33A9;33A9;33A9;0050 0061;0050 0061; # (㎩; ㎩; ㎩; Pa; Pa; ) SQUARE PA
+33AA;33AA;33AA;006B 0050 0061;006B 0050 0061; # (㎪; ㎪; ㎪; kPa; kPa; ) SQUARE KPA
+33AB;33AB;33AB;004D 0050 0061;004D 0050 0061; # (㎫; ㎫; ㎫; MPa; MPa; ) SQUARE MPA
+33AC;33AC;33AC;0047 0050 0061;0047 0050 0061; # (㎬; ㎬; ㎬; GPa; GPa; ) SQUARE GPA
+33AD;33AD;33AD;0072 0061 0064;0072 0061 0064; # (㎭; ㎭; ㎭; rad; rad; ) SQUARE RAD
+33AE;33AE;33AE;0072 0061 0064 2215 0073;0072 0061 0064 2215 0073; # (㎮; ㎮; ㎮; rad∕s; rad∕s; ) SQUARE RAD OVER S
+33AF;33AF;33AF;0072 0061 0064 2215 0073 0032;0072 0061 0064 2215 0073 0032; # (㎯; ㎯; ㎯; rad∕s2; rad∕s2; ) SQUARE RAD OVER S SQUARED
+33B0;33B0;33B0;0070 0073;0070 0073; # (㎰; ㎰; ㎰; ps; ps; ) SQUARE PS
+33B1;33B1;33B1;006E 0073;006E 0073; # (㎱; ㎱; ㎱; ns; ns; ) SQUARE NS
+33B2;33B2;33B2;03BC 0073;03BC 0073; # (㎲; ㎲; ㎲; μs; μs; ) SQUARE MU S
+33B3;33B3;33B3;006D 0073;006D 0073; # (㎳; ㎳; ㎳; ms; ms; ) SQUARE MS
+33B4;33B4;33B4;0070 0056;0070 0056; # (㎴; ㎴; ㎴; pV; pV; ) SQUARE PV
+33B5;33B5;33B5;006E 0056;006E 0056; # (㎵; ㎵; ㎵; nV; nV; ) SQUARE NV
+33B6;33B6;33B6;03BC 0056;03BC 0056; # (㎶; ㎶; ㎶; μV; μV; ) SQUARE MU V
+33B7;33B7;33B7;006D 0056;006D 0056; # (㎷; ㎷; ㎷; mV; mV; ) SQUARE MV
+33B8;33B8;33B8;006B 0056;006B 0056; # (㎸; ㎸; ㎸; kV; kV; ) SQUARE KV
+33B9;33B9;33B9;004D 0056;004D 0056; # (㎹; ㎹; ㎹; MV; MV; ) SQUARE MV MEGA
+33BA;33BA;33BA;0070 0057;0070 0057; # (㎺; ㎺; ㎺; pW; pW; ) SQUARE PW
+33BB;33BB;33BB;006E 0057;006E 0057; # (㎻; ㎻; ㎻; nW; nW; ) SQUARE NW
+33BC;33BC;33BC;03BC 0057;03BC 0057; # (㎼; ㎼; ㎼; μW; μW; ) SQUARE MU W
+33BD;33BD;33BD;006D 0057;006D 0057; # (㎽; ㎽; ㎽; mW; mW; ) SQUARE MW
+33BE;33BE;33BE;006B 0057;006B 0057; # (㎾; ㎾; ㎾; kW; kW; ) SQUARE KW
+33BF;33BF;33BF;004D 0057;004D 0057; # (㎿; ㎿; ㎿; MW; MW; ) SQUARE MW MEGA
+33C0;33C0;33C0;006B 03A9;006B 03A9; # (㏀; ㏀; ㏀; kΩ; kΩ; ) SQUARE K OHM
+33C1;33C1;33C1;004D 03A9;004D 03A9; # (㏁; ㏁; ㏁; MΩ; MΩ; ) SQUARE M OHM
+33C2;33C2;33C2;0061 002E 006D 002E;0061 002E 006D 002E; # (㏂; ㏂; ㏂; a.m.; a.m.; ) SQUARE AM
+33C3;33C3;33C3;0042 0071;0042 0071; # (㏃; ㏃; ㏃; Bq; Bq; ) SQUARE BQ
+33C4;33C4;33C4;0063 0063;0063 0063; # (㏄; ㏄; ㏄; cc; cc; ) SQUARE CC
+33C5;33C5;33C5;0063 0064;0063 0064; # (㏅; ㏅; ㏅; cd; cd; ) SQUARE CD
+33C6;33C6;33C6;0043 2215 006B 0067;0043 2215 006B 0067; # (㏆; ㏆; ㏆; C∕kg; C∕kg; ) SQUARE C OVER KG
+33C7;33C7;33C7;0043 006F 002E;0043 006F 002E; # (㏇; ㏇; ㏇; Co.; Co.; ) SQUARE CO
+33C8;33C8;33C8;0064 0042;0064 0042; # (㏈; ㏈; ㏈; dB; dB; ) SQUARE DB
+33C9;33C9;33C9;0047 0079;0047 0079; # (㏉; ㏉; ㏉; Gy; Gy; ) SQUARE GY
+33CA;33CA;33CA;0068 0061;0068 0061; # (㏊; ㏊; ㏊; ha; ha; ) SQUARE HA
+33CB;33CB;33CB;0048 0050;0048 0050; # (㏋; ㏋; ㏋; HP; HP; ) SQUARE HP
+33CC;33CC;33CC;0069 006E;0069 006E; # (㏌; ㏌; ㏌; in; in; ) SQUARE IN
+33CD;33CD;33CD;004B 004B;004B 004B; # (㏍; ㏍; ㏍; KK; KK; ) SQUARE KK
+33CE;33CE;33CE;004B 004D;004B 004D; # (㏎; ㏎; ㏎; KM; KM; ) SQUARE KM CAPITAL
+33CF;33CF;33CF;006B 0074;006B 0074; # (㏏; ㏏; ㏏; kt; kt; ) SQUARE KT
+33D0;33D0;33D0;006C 006D;006C 006D; # (㏐; ㏐; ㏐; lm; lm; ) SQUARE LM
+33D1;33D1;33D1;006C 006E;006C 006E; # (㏑; ㏑; ㏑; ln; ln; ) SQUARE LN
+33D2;33D2;33D2;006C 006F 0067;006C 006F 0067; # (㏒; ㏒; ㏒; log; log; ) SQUARE LOG
+33D3;33D3;33D3;006C 0078;006C 0078; # (㏓; ㏓; ㏓; lx; lx; ) SQUARE LX
+33D4;33D4;33D4;006D 0062;006D 0062; # (㏔; ㏔; ㏔; mb; mb; ) SQUARE MB SMALL
+33D5;33D5;33D5;006D 0069 006C;006D 0069 006C; # (㏕; ㏕; ㏕; mil; mil; ) SQUARE MIL
+33D6;33D6;33D6;006D 006F 006C;006D 006F 006C; # (㏖; ㏖; ㏖; mol; mol; ) SQUARE MOL
+33D7;33D7;33D7;0050 0048;0050 0048; # (㏗; ㏗; ㏗; PH; PH; ) SQUARE PH
+33D8;33D8;33D8;0070 002E 006D 002E;0070 002E 006D 002E; # (㏘; ㏘; ㏘; p.m.; p.m.; ) SQUARE PM
+33D9;33D9;33D9;0050 0050 004D;0050 0050 004D; # (㏙; ㏙; ㏙; PPM; PPM; ) SQUARE PPM
+33DA;33DA;33DA;0050 0052;0050 0052; # (㏚; ㏚; ㏚; PR; PR; ) SQUARE PR
+33DB;33DB;33DB;0073 0072;0073 0072; # (㏛; ㏛; ㏛; sr; sr; ) SQUARE SR
+33DC;33DC;33DC;0053 0076;0053 0076; # (㏜; ㏜; ㏜; Sv; Sv; ) SQUARE SV
+33DD;33DD;33DD;0057 0062;0057 0062; # (㏝; ㏝; ㏝; Wb; Wb; ) SQUARE WB
+33DE;33DE;33DE;0056 2215 006D;0056 2215 006D; # (㏞; ㏞; ㏞; V∕m; V∕m; ) SQUARE V OVER M
+33DF;33DF;33DF;0041 2215 006D;0041 2215 006D; # (㏟; ㏟; ㏟; A∕m; A∕m; ) SQUARE A OVER M
+33E0;33E0;33E0;0031 65E5;0031 65E5; # (㏠; ㏠; ㏠; 1日; 1日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+33E1;33E1;33E1;0032 65E5;0032 65E5; # (㏡; ㏡; ㏡; 2日; 2日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+33E2;33E2;33E2;0033 65E5;0033 65E5; # (㏢; ㏢; ㏢; 3日; 3日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+33E3;33E3;33E3;0034 65E5;0034 65E5; # (㏣; ㏣; ㏣; 4日; 4日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+33E4;33E4;33E4;0035 65E5;0035 65E5; # (㏤; ㏤; ㏤; 5日; 5日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+33E5;33E5;33E5;0036 65E5;0036 65E5; # (㏥; ㏥; ㏥; 6日; 6日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+33E6;33E6;33E6;0037 65E5;0037 65E5; # (㏦; ㏦; ㏦; 7日; 7日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7;33E7;33E7;0038 65E5;0038 65E5; # (㏧; ㏧; ㏧; 8日; 8日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8;33E8;33E8;0039 65E5;0039 65E5; # (㏨; ㏨; ㏨; 9日; 9日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+33E9;33E9;33E9;0031 0030 65E5;0031 0030 65E5; # (㏩; ㏩; ㏩; 10日; 10日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+33EA;33EA;33EA;0031 0031 65E5;0031 0031 65E5; # (㏪; ㏪; ㏪; 11日; 11日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB;33EB;33EB;0031 0032 65E5;0031 0032 65E5; # (㏫; ㏫; ㏫; 12日; 12日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC;33EC;33EC;0031 0033 65E5;0031 0033 65E5; # (㏬; ㏬; ㏬; 13日; 13日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED;33ED;33ED;0031 0034 65E5;0031 0034 65E5; # (㏭; ㏭; ㏭; 14日; 14日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE;33EE;33EE;0031 0035 65E5;0031 0035 65E5; # (㏮; ㏮; ㏮; 15日; 15日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF;33EF;33EF;0031 0036 65E5;0031 0036 65E5; # (㏯; ㏯; ㏯; 16日; 16日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+33F0;33F0;33F0;0031 0037 65E5;0031 0037 65E5; # (㏰; ㏰; ㏰; 17日; 17日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1;33F1;33F1;0031 0038 65E5;0031 0038 65E5; # (㏱; ㏱; ㏱; 18日; 18日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2;33F2;33F2;0031 0039 65E5;0031 0039 65E5; # (㏲; ㏲; ㏲; 19日; 19日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3;33F3;33F3;0032 0030 65E5;0032 0030 65E5; # (㏳; ㏳; ㏳; 20日; 20日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4;33F4;33F4;0032 0031 65E5;0032 0031 65E5; # (㏴; ㏴; ㏴; 21日; 21日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5;33F5;33F5;0032 0032 65E5;0032 0032 65E5; # (㏵; ㏵; ㏵; 22日; 22日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6;33F6;33F6;0032 0033 65E5;0032 0033 65E5; # (㏶; ㏶; ㏶; 23日; 23日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7;33F7;33F7;0032 0034 65E5;0032 0034 65E5; # (㏷; ㏷; ㏷; 24日; 24日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8;33F8;33F8;0032 0035 65E5;0032 0035 65E5; # (㏸; ㏸; ㏸; 25日; 25日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9;33F9;33F9;0032 0036 65E5;0032 0036 65E5; # (㏹; ㏹; ㏹; 26日; 26日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA;33FA;33FA;0032 0037 65E5;0032 0037 65E5; # (㏺; ㏺; ㏺; 27日; 27日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB;33FB;33FB;0032 0038 65E5;0032 0038 65E5; # (㏻; ㏻; ㏻; 28日; 28日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC;33FC;33FC;0032 0039 65E5;0032 0039 65E5; # (㏼; ㏼; ㏼; 29日; 29日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD;33FD;33FD;0033 0030 65E5;0033 0030 65E5; # (㏽; ㏽; ㏽; 30日; 30日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE;33FE;33FE;0033 0031 65E5;0033 0031 65E5; # (㏾; ㏾; ㏾; 31日; 31日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33FF;33FF;33FF;0067 0061 006C;0067 0061 006C; # (㏿; ㏿; ㏿; gal; gal; ) SQUARE GAL
+A69C;A69C;A69C;044A;044A; # (ꚜ; ꚜ; ꚜ; ъ; ъ; ) MODIFIER LETTER CYRILLIC HARD SIGN
+A69D;A69D;A69D;044C;044C; # (ꚝ; ꚝ; ꚝ; ь; ь; ) MODIFIER LETTER CYRILLIC SOFT SIGN
+A770;A770;A770;A76F;A76F; # (ꝰ; ꝰ; ꝰ; ꝯ; ꝯ; ) MODIFIER LETTER US
+A7F2;A7F2;A7F2;0043;0043; # (ꟲ; ꟲ; ꟲ; C; C; ) MODIFIER LETTER CAPITAL C
+A7F3;A7F3;A7F3;0046;0046; # (ꟳ; ꟳ; ꟳ; F; F; ) MODIFIER LETTER CAPITAL F
+A7F4;A7F4;A7F4;0051;0051; # (ꟴ; ꟴ; ꟴ; Q; Q; ) MODIFIER LETTER CAPITAL Q
+A7F8;A7F8;A7F8;0126;0126; # (ꟸ; ꟸ; ꟸ; Ħ; Ħ; ) MODIFIER LETTER CAPITAL H WITH STROKE
+A7F9;A7F9;A7F9;0153;0153; # (ꟹ; ꟹ; ꟹ; œ; œ; ) MODIFIER LETTER SMALL LIGATURE OE
+AB5C;AB5C;AB5C;A727;A727; # (ꭜ; ꭜ; ꭜ; ꜧ; ꜧ; ) MODIFIER LETTER SMALL HENG
+AB5D;AB5D;AB5D;AB37;AB37; # (ꭝ; ꭝ; ꭝ; ꬷ; ꬷ; ) MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+AB5E;AB5E;AB5E;026B;026B; # (ꭞ; ꭞ; ꭞ; ɫ; ɫ; ) MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB5F;AB5F;AB5F;AB52;AB52; # (ꭟ; ꭟ; ꭟ; ꭒ; ꭒ; ) MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB69;AB69;AB69;028D;028D; # (ꭩ; ꭩ; ꭩ; ʍ; ʍ; ) MODIFIER LETTER SMALL TURNED W
+AC00;AC00;1100 1161;AC00;1100 1161; # (가; 가; 가; 가; 가; ) HANGUL SYLLABLE GA
+AC01;AC01;1100 1161 11A8;AC01;1100 1161 11A8; # (각; 각; 각; 각; 각; ) HANGUL SYLLABLE GAG
+AC02;AC02;1100 1161 11A9;AC02;1100 1161 11A9; # (갂; 갂; 갂; 갂; 갂; ) HANGUL SYLLABLE GAGG
+AC03;AC03;1100 1161 11AA;AC03;1100 1161 11AA; # (갃; 갃; 갃; 갃; 갃; ) HANGUL SYLLABLE GAGS
+AC04;AC04;1100 1161 11AB;AC04;1100 1161 11AB; # (간; 간; 간; 간; 간; ) HANGUL SYLLABLE GAN
+AC05;AC05;1100 1161 11AC;AC05;1100 1161 11AC; # (갅; 갅; 갅; 갅; 갅; ) HANGUL SYLLABLE GANJ
+AC06;AC06;1100 1161 11AD;AC06;1100 1161 11AD; # (갆; 갆; 갆; 갆; 갆; ) HANGUL SYLLABLE GANH
+AC07;AC07;1100 1161 11AE;AC07;1100 1161 11AE; # (갇; 갇; 갇; 갇; 갇; ) HANGUL SYLLABLE GAD
+AC08;AC08;1100 1161 11AF;AC08;1100 1161 11AF; # (갈; 갈; 갈; 갈; 갈; ) HANGUL SYLLABLE GAL
+AC09;AC09;1100 1161 11B0;AC09;1100 1161 11B0; # (갉; 갉; 갉; 갉; 갉; ) HANGUL SYLLABLE GALG
+AC0A;AC0A;1100 1161 11B1;AC0A;1100 1161 11B1; # (갊; 갊; 갊; 갊; 갊; ) HANGUL SYLLABLE GALM
+AC0B;AC0B;1100 1161 11B2;AC0B;1100 1161 11B2; # (갋; 갋; 갋; 갋; 갋; ) HANGUL SYLLABLE GALB
+AC0C;AC0C;1100 1161 11B3;AC0C;1100 1161 11B3; # (갌; 갌; 갌; 갌; 갌; ) HANGUL SYLLABLE GALS
+AC0D;AC0D;1100 1161 11B4;AC0D;1100 1161 11B4; # (갍; 갍; 갍; 갍; 갍; ) HANGUL SYLLABLE GALT
+AC0E;AC0E;1100 1161 11B5;AC0E;1100 1161 11B5; # (갎; 갎; 갎; 갎; 갎; ) HANGUL SYLLABLE GALP
+AC0F;AC0F;1100 1161 11B6;AC0F;1100 1161 11B6; # (갏; 갏; 갏; 갏; 갏; ) HANGUL SYLLABLE GALH
+AC10;AC10;1100 1161 11B7;AC10;1100 1161 11B7; # (감; 감; 감; 감; 감; ) HANGUL SYLLABLE GAM
+AC11;AC11;1100 1161 11B8;AC11;1100 1161 11B8; # (갑; 갑; 갑; 갑; 갑; ) HANGUL SYLLABLE GAB
+AC12;AC12;1100 1161 11B9;AC12;1100 1161 11B9; # (값; 값; 값; 값; 값; ) HANGUL SYLLABLE GABS
+AC13;AC13;1100 1161 11BA;AC13;1100 1161 11BA; # (갓; 갓; 갓; 갓; 갓; ) HANGUL SYLLABLE GAS
+AC14;AC14;1100 1161 11BB;AC14;1100 1161 11BB; # (갔; 갔; 갔; 갔; 갔; ) HANGUL SYLLABLE GASS
+AC15;AC15;1100 1161 11BC;AC15;1100 1161 11BC; # (강; 강; 강; 강; 강; ) HANGUL SYLLABLE GANG
+AC16;AC16;1100 1161 11BD;AC16;1100 1161 11BD; # (갖; 갖; 갖; 갖; 갖; ) HANGUL SYLLABLE GAJ
+AC17;AC17;1100 1161 11BE;AC17;1100 1161 11BE; # (갗; 갗; 갗; 갗; 갗; ) HANGUL SYLLABLE GAC
+AC18;AC18;1100 1161 11BF;AC18;1100 1161 11BF; # (갘; 갘; 갘; 갘; 갘; ) HANGUL SYLLABLE GAK
+AC19;AC19;1100 1161 11C0;AC19;1100 1161 11C0; # (같; 같; 같; 같; 같; ) HANGUL SYLLABLE GAT
+AC1A;AC1A;1100 1161 11C1;AC1A;1100 1161 11C1; # (갚; 갚; 갚; 갚; 갚; ) HANGUL SYLLABLE GAP
+AC1B;AC1B;1100 1161 11C2;AC1B;1100 1161 11C2; # (갛; 갛; 갛; 갛; 갛; ) HANGUL SYLLABLE GAH
+AC1C;AC1C;1100 1162;AC1C;1100 1162; # (개; 개; 개; 개; 개; ) HANGUL SYLLABLE GAE
+AC1D;AC1D;1100 1162 11A8;AC1D;1100 1162 11A8; # (객; 객; 객; 객; 객; ) HANGUL SYLLABLE GAEG
+AC1E;AC1E;1100 1162 11A9;AC1E;1100 1162 11A9; # (갞; 갞; 갞; 갞; 갞; ) HANGUL SYLLABLE GAEGG
+AC1F;AC1F;1100 1162 11AA;AC1F;1100 1162 11AA; # (갟; 갟; 갟; 갟; 갟; ) HANGUL SYLLABLE GAEGS
+AC20;AC20;1100 1162 11AB;AC20;1100 1162 11AB; # (갠; 갠; 갠; 갠; 갠; ) HANGUL SYLLABLE GAEN
+AC21;AC21;1100 1162 11AC;AC21;1100 1162 11AC; # (갡; 갡; 갡; 갡; 갡; ) HANGUL SYLLABLE GAENJ
+AC22;AC22;1100 1162 11AD;AC22;1100 1162 11AD; # (갢; 갢; 갢; 갢; 갢; ) HANGUL SYLLABLE GAENH
+AC23;AC23;1100 1162 11AE;AC23;1100 1162 11AE; # (갣; 갣; 갣; 갣; 갣; ) HANGUL SYLLABLE GAED
+AC24;AC24;1100 1162 11AF;AC24;1100 1162 11AF; # (갤; 갤; 갤; 갤; 갤; ) HANGUL SYLLABLE GAEL
+AC25;AC25;1100 1162 11B0;AC25;1100 1162 11B0; # (갥; 갥; 갥; 갥; 갥; ) HANGUL SYLLABLE GAELG
+AC26;AC26;1100 1162 11B1;AC26;1100 1162 11B1; # (갦; 갦; 갦; 갦; 갦; ) HANGUL SYLLABLE GAELM
+AC27;AC27;1100 1162 11B2;AC27;1100 1162 11B2; # (갧; 갧; 갧; 갧; 갧; ) HANGUL SYLLABLE GAELB
+AC28;AC28;1100 1162 11B3;AC28;1100 1162 11B3; # (갨; 갨; 갨; 갨; 갨; ) HANGUL SYLLABLE GAELS
+AC29;AC29;1100 1162 11B4;AC29;1100 1162 11B4; # (갩; 갩; 갩; 갩; 갩; ) HANGUL SYLLABLE GAELT
+AC2A;AC2A;1100 1162 11B5;AC2A;1100 1162 11B5; # (갪; 갪; 갪; 갪; 갪; ) HANGUL SYLLABLE GAELP
+AC2B;AC2B;1100 1162 11B6;AC2B;1100 1162 11B6; # (갫; 갫; 갫; 갫; 갫; ) HANGUL SYLLABLE GAELH
+AC2C;AC2C;1100 1162 11B7;AC2C;1100 1162 11B7; # (갬; 갬; 갬; 갬; 갬; ) HANGUL SYLLABLE GAEM
+AC2D;AC2D;1100 1162 11B8;AC2D;1100 1162 11B8; # (갭; 갭; 갭; 갭; 갭; ) HANGUL SYLLABLE GAEB
+AC2E;AC2E;1100 1162 11B9;AC2E;1100 1162 11B9; # (갮; 갮; 갮; 갮; 갮; ) HANGUL SYLLABLE GAEBS
+AC2F;AC2F;1100 1162 11BA;AC2F;1100 1162 11BA; # (갯; 갯; 갯; 갯; 갯; ) HANGUL SYLLABLE GAES
+AC30;AC30;1100 1162 11BB;AC30;1100 1162 11BB; # (갰; 갰; 갰; 갰; 갰; ) HANGUL SYLLABLE GAESS
+AC31;AC31;1100 1162 11BC;AC31;1100 1162 11BC; # (갱; 갱; 갱; 갱; 갱; ) HANGUL SYLLABLE GAENG
+AC32;AC32;1100 1162 11BD;AC32;1100 1162 11BD; # (갲; 갲; 갲; 갲; 갲; ) HANGUL SYLLABLE GAEJ
+AC33;AC33;1100 1162 11BE;AC33;1100 1162 11BE; # (갳; 갳; 갳; 갳; 갳; ) HANGUL SYLLABLE GAEC
+AC34;AC34;1100 1162 11BF;AC34;1100 1162 11BF; # (갴; 갴; 갴; 갴; 갴; ) HANGUL SYLLABLE GAEK
+AC35;AC35;1100 1162 11C0;AC35;1100 1162 11C0; # (갵; 갵; 갵; 갵; 갵; ) HANGUL SYLLABLE GAET
+AC36;AC36;1100 1162 11C1;AC36;1100 1162 11C1; # (갶; 갶; 갶; 갶; 갶; ) HANGUL SYLLABLE GAEP
+AC37;AC37;1100 1162 11C2;AC37;1100 1162 11C2; # (갷; 갷; 갷; 갷; 갷; ) HANGUL SYLLABLE GAEH
+AC38;AC38;1100 1163;AC38;1100 1163; # (갸; 갸; 갸; 갸; 갸; ) HANGUL SYLLABLE GYA
+AC39;AC39;1100 1163 11A8;AC39;1100 1163 11A8; # (갹; 갹; 갹; 갹; 갹; ) HANGUL SYLLABLE GYAG
+AC3A;AC3A;1100 1163 11A9;AC3A;1100 1163 11A9; # (갺; 갺; 갺; 갺; 갺; ) HANGUL SYLLABLE GYAGG
+AC3B;AC3B;1100 1163 11AA;AC3B;1100 1163 11AA; # (갻; 갻; 갻; 갻; 갻; ) HANGUL SYLLABLE GYAGS
+AC3C;AC3C;1100 1163 11AB;AC3C;1100 1163 11AB; # (갼; 갼; 갼; 갼; 갼; ) HANGUL SYLLABLE GYAN
+AC3D;AC3D;1100 1163 11AC;AC3D;1100 1163 11AC; # (갽; 갽; 갽; 갽; 갽; ) HANGUL SYLLABLE GYANJ
+AC3E;AC3E;1100 1163 11AD;AC3E;1100 1163 11AD; # (갾; 갾; 갾; 갾; 갾; ) HANGUL SYLLABLE GYANH
+AC3F;AC3F;1100 1163 11AE;AC3F;1100 1163 11AE; # (갿; 갿; 갿; 갿; 갿; ) HANGUL SYLLABLE GYAD
+AC40;AC40;1100 1163 11AF;AC40;1100 1163 11AF; # (걀; 걀; 걀; 걀; 걀; ) HANGUL SYLLABLE GYAL
+AC41;AC41;1100 1163 11B0;AC41;1100 1163 11B0; # (걁; 걁; 걁; 걁; 걁; ) HANGUL SYLLABLE GYALG
+AC42;AC42;1100 1163 11B1;AC42;1100 1163 11B1; # (걂; 걂; 걂; 걂; 걂; ) HANGUL SYLLABLE GYALM
+AC43;AC43;1100 1163 11B2;AC43;1100 1163 11B2; # (걃; 걃; 걃; 걃; 걃; ) HANGUL SYLLABLE GYALB
+AC44;AC44;1100 1163 11B3;AC44;1100 1163 11B3; # (걄; 걄; 걄; 걄; 걄; ) HANGUL SYLLABLE GYALS
+AC45;AC45;1100 1163 11B4;AC45;1100 1163 11B4; # (걅; 걅; 걅; 걅; 걅; ) HANGUL SYLLABLE GYALT
+AC46;AC46;1100 1163 11B5;AC46;1100 1163 11B5; # (걆; 걆; 걆; 걆; 걆; ) HANGUL SYLLABLE GYALP
+AC47;AC47;1100 1163 11B6;AC47;1100 1163 11B6; # (걇; 걇; 걇; 걇; 걇; ) HANGUL SYLLABLE GYALH
+AC48;AC48;1100 1163 11B7;AC48;1100 1163 11B7; # (걈; 걈; 걈; 걈; 걈; ) HANGUL SYLLABLE GYAM
+AC49;AC49;1100 1163 11B8;AC49;1100 1163 11B8; # (걉; 걉; 걉; 걉; 걉; ) HANGUL SYLLABLE GYAB
+AC4A;AC4A;1100 1163 11B9;AC4A;1100 1163 11B9; # (걊; 걊; 걊; 걊; 걊; ) HANGUL SYLLABLE GYABS
+AC4B;AC4B;1100 1163 11BA;AC4B;1100 1163 11BA; # (걋; 걋; 걋; 걋; 걋; ) HANGUL SYLLABLE GYAS
+AC4C;AC4C;1100 1163 11BB;AC4C;1100 1163 11BB; # (걌; 걌; 걌; 걌; 걌; ) HANGUL SYLLABLE GYASS
+AC4D;AC4D;1100 1163 11BC;AC4D;1100 1163 11BC; # (걍; 걍; 걍; 걍; 걍; ) HANGUL SYLLABLE GYANG
+AC4E;AC4E;1100 1163 11BD;AC4E;1100 1163 11BD; # (걎; 걎; 걎; 걎; 걎; ) HANGUL SYLLABLE GYAJ
+AC4F;AC4F;1100 1163 11BE;AC4F;1100 1163 11BE; # (걏; 걏; 걏; 걏; 걏; ) HANGUL SYLLABLE GYAC
+AC50;AC50;1100 1163 11BF;AC50;1100 1163 11BF; # (걐; 걐; 걐; 걐; 걐; ) HANGUL SYLLABLE GYAK
+AC51;AC51;1100 1163 11C0;AC51;1100 1163 11C0; # (걑; 걑; 걑; 걑; 걑; ) HANGUL SYLLABLE GYAT
+AC52;AC52;1100 1163 11C1;AC52;1100 1163 11C1; # (걒; 걒; 걒; 걒; 걒; ) HANGUL SYLLABLE GYAP
+AC53;AC53;1100 1163 11C2;AC53;1100 1163 11C2; # (걓; 걓; 걓; 걓; 걓; ) HANGUL SYLLABLE GYAH
+AC54;AC54;1100 1164;AC54;1100 1164; # (걔; 걔; 걔; 걔; 걔; ) HANGUL SYLLABLE GYAE
+AC55;AC55;1100 1164 11A8;AC55;1100 1164 11A8; # (걕; 걕; 걕; 걕; 걕; ) HANGUL SYLLABLE GYAEG
+AC56;AC56;1100 1164 11A9;AC56;1100 1164 11A9; # (걖; 걖; 걖; 걖; 걖; ) HANGUL SYLLABLE GYAEGG
+AC57;AC57;1100 1164 11AA;AC57;1100 1164 11AA; # (걗; 걗; 걗; 걗; 걗; ) HANGUL SYLLABLE GYAEGS
+AC58;AC58;1100 1164 11AB;AC58;1100 1164 11AB; # (걘; 걘; 걘; 걘; 걘; ) HANGUL SYLLABLE GYAEN
+AC59;AC59;1100 1164 11AC;AC59;1100 1164 11AC; # (걙; 걙; 걙; 걙; 걙; ) HANGUL SYLLABLE GYAENJ
+AC5A;AC5A;1100 1164 11AD;AC5A;1100 1164 11AD; # (걚; 걚; 걚; 걚; 걚; ) HANGUL SYLLABLE GYAENH
+AC5B;AC5B;1100 1164 11AE;AC5B;1100 1164 11AE; # (걛; 걛; 걛; 걛; 걛; ) HANGUL SYLLABLE GYAED
+AC5C;AC5C;1100 1164 11AF;AC5C;1100 1164 11AF; # (걜; 걜; 걜; 걜; 걜; ) HANGUL SYLLABLE GYAEL
+AC5D;AC5D;1100 1164 11B0;AC5D;1100 1164 11B0; # (걝; 걝; 걝; 걝; 걝; ) HANGUL SYLLABLE GYAELG
+AC5E;AC5E;1100 1164 11B1;AC5E;1100 1164 11B1; # (걞; 걞; 걞; 걞; 걞; ) HANGUL SYLLABLE GYAELM
+AC5F;AC5F;1100 1164 11B2;AC5F;1100 1164 11B2; # (걟; 걟; 걟; 걟; 걟; ) HANGUL SYLLABLE GYAELB
+AC60;AC60;1100 1164 11B3;AC60;1100 1164 11B3; # (걠; 걠; 걠; 걠; 걠; ) HANGUL SYLLABLE GYAELS
+AC61;AC61;1100 1164 11B4;AC61;1100 1164 11B4; # (걡; 걡; 걡; 걡; 걡; ) HANGUL SYLLABLE GYAELT
+AC62;AC62;1100 1164 11B5;AC62;1100 1164 11B5; # (걢; 걢; 걢; 걢; 걢; ) HANGUL SYLLABLE GYAELP
+AC63;AC63;1100 1164 11B6;AC63;1100 1164 11B6; # (걣; 걣; 걣; 걣; 걣; ) HANGUL SYLLABLE GYAELH
+AC64;AC64;1100 1164 11B7;AC64;1100 1164 11B7; # (걤; 걤; 걤; 걤; 걤; ) HANGUL SYLLABLE GYAEM
+AC65;AC65;1100 1164 11B8;AC65;1100 1164 11B8; # (걥; 걥; 걥; 걥; 걥; ) HANGUL SYLLABLE GYAEB
+AC66;AC66;1100 1164 11B9;AC66;1100 1164 11B9; # (걦; 걦; 걦; 걦; 걦; ) HANGUL SYLLABLE GYAEBS
+AC67;AC67;1100 1164 11BA;AC67;1100 1164 11BA; # (걧; 걧; 걧; 걧; 걧; ) HANGUL SYLLABLE GYAES
+AC68;AC68;1100 1164 11BB;AC68;1100 1164 11BB; # (걨; 걨; 걨; 걨; 걨; ) HANGUL SYLLABLE GYAESS
+AC69;AC69;1100 1164 11BC;AC69;1100 1164 11BC; # (걩; 걩; 걩; 걩; 걩; ) HANGUL SYLLABLE GYAENG
+AC6A;AC6A;1100 1164 11BD;AC6A;1100 1164 11BD; # (걪; 걪; 걪; 걪; 걪; ) HANGUL SYLLABLE GYAEJ
+AC6B;AC6B;1100 1164 11BE;AC6B;1100 1164 11BE; # (걫; 걫; 걫; 걫; 걫; ) HANGUL SYLLABLE GYAEC
+AC6C;AC6C;1100 1164 11BF;AC6C;1100 1164 11BF; # (걬; 걬; 걬; 걬; 걬; ) HANGUL SYLLABLE GYAEK
+AC6D;AC6D;1100 1164 11C0;AC6D;1100 1164 11C0; # (걭; 걭; 걭; 걭; 걭; ) HANGUL SYLLABLE GYAET
+AC6E;AC6E;1100 1164 11C1;AC6E;1100 1164 11C1; # (걮; 걮; 걮; 걮; 걮; ) HANGUL SYLLABLE GYAEP
+AC6F;AC6F;1100 1164 11C2;AC6F;1100 1164 11C2; # (걯; 걯; 걯; 걯; 걯; ) HANGUL SYLLABLE GYAEH
+AC70;AC70;1100 1165;AC70;1100 1165; # (거; 거; 거; 거; 거; ) HANGUL SYLLABLE GEO
+AC71;AC71;1100 1165 11A8;AC71;1100 1165 11A8; # (걱; 걱; 걱; 걱; 걱; ) HANGUL SYLLABLE GEOG
+AC72;AC72;1100 1165 11A9;AC72;1100 1165 11A9; # (걲; 걲; 걲; 걲; 걲; ) HANGUL SYLLABLE GEOGG
+AC73;AC73;1100 1165 11AA;AC73;1100 1165 11AA; # (걳; 걳; 걳; 걳; 걳; ) HANGUL SYLLABLE GEOGS
+AC74;AC74;1100 1165 11AB;AC74;1100 1165 11AB; # (건; 건; 건; 건; 건; ) HANGUL SYLLABLE GEON
+AC75;AC75;1100 1165 11AC;AC75;1100 1165 11AC; # (걵; 걵; 걵; 걵; 걵; ) HANGUL SYLLABLE GEONJ
+AC76;AC76;1100 1165 11AD;AC76;1100 1165 11AD; # (걶; 걶; 걶; 걶; 걶; ) HANGUL SYLLABLE GEONH
+AC77;AC77;1100 1165 11AE;AC77;1100 1165 11AE; # (걷; 걷; 걷; 걷; 걷; ) HANGUL SYLLABLE GEOD
+AC78;AC78;1100 1165 11AF;AC78;1100 1165 11AF; # (걸; 걸; 걸; 걸; 걸; ) HANGUL SYLLABLE GEOL
+AC79;AC79;1100 1165 11B0;AC79;1100 1165 11B0; # (걹; 걹; 걹; 걹; 걹; ) HANGUL SYLLABLE GEOLG
+AC7A;AC7A;1100 1165 11B1;AC7A;1100 1165 11B1; # (걺; 걺; 걺; 걺; 걺; ) HANGUL SYLLABLE GEOLM
+AC7B;AC7B;1100 1165 11B2;AC7B;1100 1165 11B2; # (걻; 걻; 걻; 걻; 걻; ) HANGUL SYLLABLE GEOLB
+AC7C;AC7C;1100 1165 11B3;AC7C;1100 1165 11B3; # (걼; 걼; 걼; 걼; 걼; ) HANGUL SYLLABLE GEOLS
+AC7D;AC7D;1100 1165 11B4;AC7D;1100 1165 11B4; # (걽; 걽; 걽; 걽; 걽; ) HANGUL SYLLABLE GEOLT
+AC7E;AC7E;1100 1165 11B5;AC7E;1100 1165 11B5; # (걾; 걾; 걾; 걾; 걾; ) HANGUL SYLLABLE GEOLP
+AC7F;AC7F;1100 1165 11B6;AC7F;1100 1165 11B6; # (걿; 걿; 걿; 걿; 걿; ) HANGUL SYLLABLE GEOLH
+AC80;AC80;1100 1165 11B7;AC80;1100 1165 11B7; # (검; 검; 검; 검; 검; ) HANGUL SYLLABLE GEOM
+AC81;AC81;1100 1165 11B8;AC81;1100 1165 11B8; # (겁; 겁; 겁; 겁; 겁; ) HANGUL SYLLABLE GEOB
+AC82;AC82;1100 1165 11B9;AC82;1100 1165 11B9; # (겂; 겂; 겂; 겂; 겂; ) HANGUL SYLLABLE GEOBS
+AC83;AC83;1100 1165 11BA;AC83;1100 1165 11BA; # (것; 것; 것; 것; 것; ) HANGUL SYLLABLE GEOS
+AC84;AC84;1100 1165 11BB;AC84;1100 1165 11BB; # (겄; 겄; 겄; 겄; 겄; ) HANGUL SYLLABLE GEOSS
+AC85;AC85;1100 1165 11BC;AC85;1100 1165 11BC; # (겅; 겅; 겅; 겅; 겅; ) HANGUL SYLLABLE GEONG
+AC86;AC86;1100 1165 11BD;AC86;1100 1165 11BD; # (겆; 겆; 겆; 겆; 겆; ) HANGUL SYLLABLE GEOJ
+AC87;AC87;1100 1165 11BE;AC87;1100 1165 11BE; # (겇; 겇; 겇; 겇; 겇; ) HANGUL SYLLABLE GEOC
+AC88;AC88;1100 1165 11BF;AC88;1100 1165 11BF; # (겈; 겈; 겈; 겈; 겈; ) HANGUL SYLLABLE GEOK
+AC89;AC89;1100 1165 11C0;AC89;1100 1165 11C0; # (겉; 겉; 겉; 겉; 겉; ) HANGUL SYLLABLE GEOT
+AC8A;AC8A;1100 1165 11C1;AC8A;1100 1165 11C1; # (겊; 겊; 겊; 겊; 겊; ) HANGUL SYLLABLE GEOP
+AC8B;AC8B;1100 1165 11C2;AC8B;1100 1165 11C2; # (겋; 겋; 겋; 겋; 겋; ) HANGUL SYLLABLE GEOH
+AC8C;AC8C;1100 1166;AC8C;1100 1166; # (게; 게; 게; 게; 게; ) HANGUL SYLLABLE GE
+AC8D;AC8D;1100 1166 11A8;AC8D;1100 1166 11A8; # (겍; 겍; 겍; 겍; 겍; ) HANGUL SYLLABLE GEG
+AC8E;AC8E;1100 1166 11A9;AC8E;1100 1166 11A9; # (겎; 겎; 겎; 겎; 겎; ) HANGUL SYLLABLE GEGG
+AC8F;AC8F;1100 1166 11AA;AC8F;1100 1166 11AA; # (겏; 겏; 겏; 겏; 겏; ) HANGUL SYLLABLE GEGS
+AC90;AC90;1100 1166 11AB;AC90;1100 1166 11AB; # (겐; 겐; 겐; 겐; 겐; ) HANGUL SYLLABLE GEN
+AC91;AC91;1100 1166 11AC;AC91;1100 1166 11AC; # (겑; 겑; 겑; 겑; 겑; ) HANGUL SYLLABLE GENJ
+AC92;AC92;1100 1166 11AD;AC92;1100 1166 11AD; # (겒; 겒; 겒; 겒; 겒; ) HANGUL SYLLABLE GENH
+AC93;AC93;1100 1166 11AE;AC93;1100 1166 11AE; # (겓; 겓; 겓; 겓; 겓; ) HANGUL SYLLABLE GED
+AC94;AC94;1100 1166 11AF;AC94;1100 1166 11AF; # (겔; 겔; 겔; 겔; 겔; ) HANGUL SYLLABLE GEL
+AC95;AC95;1100 1166 11B0;AC95;1100 1166 11B0; # (겕; 겕; 겕; 겕; 겕; ) HANGUL SYLLABLE GELG
+AC96;AC96;1100 1166 11B1;AC96;1100 1166 11B1; # (겖; 겖; 겖; 겖; 겖; ) HANGUL SYLLABLE GELM
+AC97;AC97;1100 1166 11B2;AC97;1100 1166 11B2; # (겗; 겗; 겗; 겗; 겗; ) HANGUL SYLLABLE GELB
+AC98;AC98;1100 1166 11B3;AC98;1100 1166 11B3; # (겘; 겘; 겘; 겘; 겘; ) HANGUL SYLLABLE GELS
+AC99;AC99;1100 1166 11B4;AC99;1100 1166 11B4; # (겙; 겙; 겙; 겙; 겙; ) HANGUL SYLLABLE GELT
+AC9A;AC9A;1100 1166 11B5;AC9A;1100 1166 11B5; # (겚; 겚; 겚; 겚; 겚; ) HANGUL SYLLABLE GELP
+AC9B;AC9B;1100 1166 11B6;AC9B;1100 1166 11B6; # (겛; 겛; 겛; 겛; 겛; ) HANGUL SYLLABLE GELH
+AC9C;AC9C;1100 1166 11B7;AC9C;1100 1166 11B7; # (겜; 겜; 겜; 겜; 겜; ) HANGUL SYLLABLE GEM
+AC9D;AC9D;1100 1166 11B8;AC9D;1100 1166 11B8; # (겝; 겝; 겝; 겝; 겝; ) HANGUL SYLLABLE GEB
+AC9E;AC9E;1100 1166 11B9;AC9E;1100 1166 11B9; # (겞; 겞; 겞; 겞; 겞; ) HANGUL SYLLABLE GEBS
+AC9F;AC9F;1100 1166 11BA;AC9F;1100 1166 11BA; # (겟; 겟; 겟; 겟; 겟; ) HANGUL SYLLABLE GES
+ACA0;ACA0;1100 1166 11BB;ACA0;1100 1166 11BB; # (겠; 겠; 겠; 겠; 겠; ) HANGUL SYLLABLE GESS
+ACA1;ACA1;1100 1166 11BC;ACA1;1100 1166 11BC; # (겡; 겡; 겡; 겡; 겡; ) HANGUL SYLLABLE GENG
+ACA2;ACA2;1100 1166 11BD;ACA2;1100 1166 11BD; # (겢; 겢; 겢; 겢; 겢; ) HANGUL SYLLABLE GEJ
+ACA3;ACA3;1100 1166 11BE;ACA3;1100 1166 11BE; # (겣; 겣; 겣; 겣; 겣; ) HANGUL SYLLABLE GEC
+ACA4;ACA4;1100 1166 11BF;ACA4;1100 1166 11BF; # (겤; 겤; 겤; 겤; 겤; ) HANGUL SYLLABLE GEK
+ACA5;ACA5;1100 1166 11C0;ACA5;1100 1166 11C0; # (겥; 겥; 겥; 겥; 겥; ) HANGUL SYLLABLE GET
+ACA6;ACA6;1100 1166 11C1;ACA6;1100 1166 11C1; # (겦; 겦; 겦; 겦; 겦; ) HANGUL SYLLABLE GEP
+ACA7;ACA7;1100 1166 11C2;ACA7;1100 1166 11C2; # (겧; 겧; 겧; 겧; 겧; ) HANGUL SYLLABLE GEH
+ACA8;ACA8;1100 1167;ACA8;1100 1167; # (겨; 겨; 겨; 겨; 겨; ) HANGUL SYLLABLE GYEO
+ACA9;ACA9;1100 1167 11A8;ACA9;1100 1167 11A8; # (격; 격; 격; 격; 격; ) HANGUL SYLLABLE GYEOG
+ACAA;ACAA;1100 1167 11A9;ACAA;1100 1167 11A9; # (겪; 겪; 겪; 겪; 겪; ) HANGUL SYLLABLE GYEOGG
+ACAB;ACAB;1100 1167 11AA;ACAB;1100 1167 11AA; # (겫; 겫; 겫; 겫; 겫; ) HANGUL SYLLABLE GYEOGS
+ACAC;ACAC;1100 1167 11AB;ACAC;1100 1167 11AB; # (견; 견; 견; 견; 견; ) HANGUL SYLLABLE GYEON
+ACAD;ACAD;1100 1167 11AC;ACAD;1100 1167 11AC; # (겭; 겭; 겭; 겭; 겭; ) HANGUL SYLLABLE GYEONJ
+ACAE;ACAE;1100 1167 11AD;ACAE;1100 1167 11AD; # (겮; 겮; 겮; 겮; 겮; ) HANGUL SYLLABLE GYEONH
+ACAF;ACAF;1100 1167 11AE;ACAF;1100 1167 11AE; # (겯; 겯; 겯; 겯; 겯; ) HANGUL SYLLABLE GYEOD
+ACB0;ACB0;1100 1167 11AF;ACB0;1100 1167 11AF; # (결; 결; 결; 결; 결; ) HANGUL SYLLABLE GYEOL
+ACB1;ACB1;1100 1167 11B0;ACB1;1100 1167 11B0; # (겱; 겱; 겱; 겱; 겱; ) HANGUL SYLLABLE GYEOLG
+ACB2;ACB2;1100 1167 11B1;ACB2;1100 1167 11B1; # (겲; 겲; 겲; 겲; 겲; ) HANGUL SYLLABLE GYEOLM
+ACB3;ACB3;1100 1167 11B2;ACB3;1100 1167 11B2; # (겳; 겳; 겳; 겳; 겳; ) HANGUL SYLLABLE GYEOLB
+ACB4;ACB4;1100 1167 11B3;ACB4;1100 1167 11B3; # (겴; 겴; 겴; 겴; 겴; ) HANGUL SYLLABLE GYEOLS
+ACB5;ACB5;1100 1167 11B4;ACB5;1100 1167 11B4; # (겵; 겵; 겵; 겵; 겵; ) HANGUL SYLLABLE GYEOLT
+ACB6;ACB6;1100 1167 11B5;ACB6;1100 1167 11B5; # (겶; 겶; 겶; 겶; 겶; ) HANGUL SYLLABLE GYEOLP
+ACB7;ACB7;1100 1167 11B6;ACB7;1100 1167 11B6; # (겷; 겷; 겷; 겷; 겷; ) HANGUL SYLLABLE GYEOLH
+ACB8;ACB8;1100 1167 11B7;ACB8;1100 1167 11B7; # (겸; 겸; 겸; 겸; 겸; ) HANGUL SYLLABLE GYEOM
+ACB9;ACB9;1100 1167 11B8;ACB9;1100 1167 11B8; # (겹; 겹; 겹; 겹; 겹; ) HANGUL SYLLABLE GYEOB
+ACBA;ACBA;1100 1167 11B9;ACBA;1100 1167 11B9; # (겺; 겺; 겺; 겺; 겺; ) HANGUL SYLLABLE GYEOBS
+ACBB;ACBB;1100 1167 11BA;ACBB;1100 1167 11BA; # (겻; 겻; 겻; 겻; 겻; ) HANGUL SYLLABLE GYEOS
+ACBC;ACBC;1100 1167 11BB;ACBC;1100 1167 11BB; # (겼; 겼; 겼; 겼; 겼; ) HANGUL SYLLABLE GYEOSS
+ACBD;ACBD;1100 1167 11BC;ACBD;1100 1167 11BC; # (경; 경; 경; 경; 경; ) HANGUL SYLLABLE GYEONG
+ACBE;ACBE;1100 1167 11BD;ACBE;1100 1167 11BD; # (겾; 겾; 겾; 겾; 겾; ) HANGUL SYLLABLE GYEOJ
+ACBF;ACBF;1100 1167 11BE;ACBF;1100 1167 11BE; # (겿; 겿; 겿; 겿; 겿; ) HANGUL SYLLABLE GYEOC
+ACC0;ACC0;1100 1167 11BF;ACC0;1100 1167 11BF; # (곀; 곀; 곀; 곀; 곀; ) HANGUL SYLLABLE GYEOK
+ACC1;ACC1;1100 1167 11C0;ACC1;1100 1167 11C0; # (곁; 곁; 곁; 곁; 곁; ) HANGUL SYLLABLE GYEOT
+ACC2;ACC2;1100 1167 11C1;ACC2;1100 1167 11C1; # (곂; 곂; 곂; 곂; 곂; ) HANGUL SYLLABLE GYEOP
+ACC3;ACC3;1100 1167 11C2;ACC3;1100 1167 11C2; # (곃; 곃; 곃; 곃; 곃; ) HANGUL SYLLABLE GYEOH
+ACC4;ACC4;1100 1168;ACC4;1100 1168; # (계; 계; 계; 계; 계; ) HANGUL SYLLABLE GYE
+ACC5;ACC5;1100 1168 11A8;ACC5;1100 1168 11A8; # (곅; 곅; 곅; 곅; 곅; ) HANGUL SYLLABLE GYEG
+ACC6;ACC6;1100 1168 11A9;ACC6;1100 1168 11A9; # (곆; 곆; 곆; 곆; 곆; ) HANGUL SYLLABLE GYEGG
+ACC7;ACC7;1100 1168 11AA;ACC7;1100 1168 11AA; # (곇; 곇; 곇; 곇; 곇; ) HANGUL SYLLABLE GYEGS
+ACC8;ACC8;1100 1168 11AB;ACC8;1100 1168 11AB; # (곈; 곈; 곈; 곈; 곈; ) HANGUL SYLLABLE GYEN
+ACC9;ACC9;1100 1168 11AC;ACC9;1100 1168 11AC; # (곉; 곉; 곉; 곉; 곉; ) HANGUL SYLLABLE GYENJ
+ACCA;ACCA;1100 1168 11AD;ACCA;1100 1168 11AD; # (곊; 곊; 곊; 곊; 곊; ) HANGUL SYLLABLE GYENH
+ACCB;ACCB;1100 1168 11AE;ACCB;1100 1168 11AE; # (곋; 곋; 곋; 곋; 곋; ) HANGUL SYLLABLE GYED
+ACCC;ACCC;1100 1168 11AF;ACCC;1100 1168 11AF; # (곌; 곌; 곌; 곌; 곌; ) HANGUL SYLLABLE GYEL
+ACCD;ACCD;1100 1168 11B0;ACCD;1100 1168 11B0; # (곍; 곍; 곍; 곍; 곍; ) HANGUL SYLLABLE GYELG
+ACCE;ACCE;1100 1168 11B1;ACCE;1100 1168 11B1; # (곎; 곎; 곎; 곎; 곎; ) HANGUL SYLLABLE GYELM
+ACCF;ACCF;1100 1168 11B2;ACCF;1100 1168 11B2; # (곏; 곏; 곏; 곏; 곏; ) HANGUL SYLLABLE GYELB
+ACD0;ACD0;1100 1168 11B3;ACD0;1100 1168 11B3; # (곐; 곐; 곐; 곐; 곐; ) HANGUL SYLLABLE GYELS
+ACD1;ACD1;1100 1168 11B4;ACD1;1100 1168 11B4; # (곑; 곑; 곑; 곑; 곑; ) HANGUL SYLLABLE GYELT
+ACD2;ACD2;1100 1168 11B5;ACD2;1100 1168 11B5; # (곒; 곒; 곒; 곒; 곒; ) HANGUL SYLLABLE GYELP
+ACD3;ACD3;1100 1168 11B6;ACD3;1100 1168 11B6; # (곓; 곓; 곓; 곓; 곓; ) HANGUL SYLLABLE GYELH
+ACD4;ACD4;1100 1168 11B7;ACD4;1100 1168 11B7; # (곔; 곔; 곔; 곔; 곔; ) HANGUL SYLLABLE GYEM
+ACD5;ACD5;1100 1168 11B8;ACD5;1100 1168 11B8; # (곕; 곕; 곕; 곕; 곕; ) HANGUL SYLLABLE GYEB
+ACD6;ACD6;1100 1168 11B9;ACD6;1100 1168 11B9; # (곖; 곖; 곖; 곖; 곖; ) HANGUL SYLLABLE GYEBS
+ACD7;ACD7;1100 1168 11BA;ACD7;1100 1168 11BA; # (곗; 곗; 곗; 곗; 곗; ) HANGUL SYLLABLE GYES
+ACD8;ACD8;1100 1168 11BB;ACD8;1100 1168 11BB; # (곘; 곘; 곘; 곘; 곘; ) HANGUL SYLLABLE GYESS
+ACD9;ACD9;1100 1168 11BC;ACD9;1100 1168 11BC; # (곙; 곙; 곙; 곙; 곙; ) HANGUL SYLLABLE GYENG
+ACDA;ACDA;1100 1168 11BD;ACDA;1100 1168 11BD; # (곚; 곚; 곚; 곚; 곚; ) HANGUL SYLLABLE GYEJ
+ACDB;ACDB;1100 1168 11BE;ACDB;1100 1168 11BE; # (곛; 곛; 곛; 곛; 곛; ) HANGUL SYLLABLE GYEC
+ACDC;ACDC;1100 1168 11BF;ACDC;1100 1168 11BF; # (곜; 곜; 곜; 곜; 곜; ) HANGUL SYLLABLE GYEK
+ACDD;ACDD;1100 1168 11C0;ACDD;1100 1168 11C0; # (곝; 곝; 곝; 곝; 곝; ) HANGUL SYLLABLE GYET
+ACDE;ACDE;1100 1168 11C1;ACDE;1100 1168 11C1; # (곞; 곞; 곞; 곞; 곞; ) HANGUL SYLLABLE GYEP
+ACDF;ACDF;1100 1168 11C2;ACDF;1100 1168 11C2; # (곟; 곟; 곟; 곟; 곟; ) HANGUL SYLLABLE GYEH
+ACE0;ACE0;1100 1169;ACE0;1100 1169; # (고; 고; 고; 고; 고; ) HANGUL SYLLABLE GO
+ACE1;ACE1;1100 1169 11A8;ACE1;1100 1169 11A8; # (곡; 곡; 곡; 곡; 곡; ) HANGUL SYLLABLE GOG
+ACE2;ACE2;1100 1169 11A9;ACE2;1100 1169 11A9; # (곢; 곢; 곢; 곢; 곢; ) HANGUL SYLLABLE GOGG
+ACE3;ACE3;1100 1169 11AA;ACE3;1100 1169 11AA; # (곣; 곣; 곣; 곣; 곣; ) HANGUL SYLLABLE GOGS
+ACE4;ACE4;1100 1169 11AB;ACE4;1100 1169 11AB; # (곤; 곤; 곤; 곤; 곤; ) HANGUL SYLLABLE GON
+ACE5;ACE5;1100 1169 11AC;ACE5;1100 1169 11AC; # (곥; 곥; 곥; 곥; 곥; ) HANGUL SYLLABLE GONJ
+ACE6;ACE6;1100 1169 11AD;ACE6;1100 1169 11AD; # (곦; 곦; 곦; 곦; 곦; ) HANGUL SYLLABLE GONH
+ACE7;ACE7;1100 1169 11AE;ACE7;1100 1169 11AE; # (곧; 곧; 곧; 곧; 곧; ) HANGUL SYLLABLE GOD
+ACE8;ACE8;1100 1169 11AF;ACE8;1100 1169 11AF; # (골; 골; 골; 골; 골; ) HANGUL SYLLABLE GOL
+ACE9;ACE9;1100 1169 11B0;ACE9;1100 1169 11B0; # (곩; 곩; 곩; 곩; 곩; ) HANGUL SYLLABLE GOLG
+ACEA;ACEA;1100 1169 11B1;ACEA;1100 1169 11B1; # (곪; 곪; 곪; 곪; 곪; ) HANGUL SYLLABLE GOLM
+ACEB;ACEB;1100 1169 11B2;ACEB;1100 1169 11B2; # (곫; 곫; 곫; 곫; 곫; ) HANGUL SYLLABLE GOLB
+ACEC;ACEC;1100 1169 11B3;ACEC;1100 1169 11B3; # (곬; 곬; 곬; 곬; 곬; ) HANGUL SYLLABLE GOLS
+ACED;ACED;1100 1169 11B4;ACED;1100 1169 11B4; # (곭; 곭; 곭; 곭; 곭; ) HANGUL SYLLABLE GOLT
+ACEE;ACEE;1100 1169 11B5;ACEE;1100 1169 11B5; # (곮; 곮; 곮; 곮; 곮; ) HANGUL SYLLABLE GOLP
+ACEF;ACEF;1100 1169 11B6;ACEF;1100 1169 11B6; # (곯; 곯; 곯; 곯; 곯; ) HANGUL SYLLABLE GOLH
+ACF0;ACF0;1100 1169 11B7;ACF0;1100 1169 11B7; # (곰; 곰; 곰; 곰; 곰; ) HANGUL SYLLABLE GOM
+ACF1;ACF1;1100 1169 11B8;ACF1;1100 1169 11B8; # (곱; 곱; 곱; 곱; 곱; ) HANGUL SYLLABLE GOB
+ACF2;ACF2;1100 1169 11B9;ACF2;1100 1169 11B9; # (곲; 곲; 곲; 곲; 곲; ) HANGUL SYLLABLE GOBS
+ACF3;ACF3;1100 1169 11BA;ACF3;1100 1169 11BA; # (곳; 곳; 곳; 곳; 곳; ) HANGUL SYLLABLE GOS
+ACF4;ACF4;1100 1169 11BB;ACF4;1100 1169 11BB; # (곴; 곴; 곴; 곴; 곴; ) HANGUL SYLLABLE GOSS
+ACF5;ACF5;1100 1169 11BC;ACF5;1100 1169 11BC; # (공; 공; 공; 공; 공; ) HANGUL SYLLABLE GONG
+ACF6;ACF6;1100 1169 11BD;ACF6;1100 1169 11BD; # (곶; 곶; 곶; 곶; 곶; ) HANGUL SYLLABLE GOJ
+ACF7;ACF7;1100 1169 11BE;ACF7;1100 1169 11BE; # (곷; 곷; 곷; 곷; 곷; ) HANGUL SYLLABLE GOC
+ACF8;ACF8;1100 1169 11BF;ACF8;1100 1169 11BF; # (곸; 곸; 곸; 곸; 곸; ) HANGUL SYLLABLE GOK
+ACF9;ACF9;1100 1169 11C0;ACF9;1100 1169 11C0; # (곹; 곹; 곹; 곹; 곹; ) HANGUL SYLLABLE GOT
+ACFA;ACFA;1100 1169 11C1;ACFA;1100 1169 11C1; # (곺; 곺; 곺; 곺; 곺; ) HANGUL SYLLABLE GOP
+ACFB;ACFB;1100 1169 11C2;ACFB;1100 1169 11C2; # (곻; 곻; 곻; 곻; 곻; ) HANGUL SYLLABLE GOH
+ACFC;ACFC;1100 116A;ACFC;1100 116A; # (과; 과; 과; 과; 과; ) HANGUL SYLLABLE GWA
+ACFD;ACFD;1100 116A 11A8;ACFD;1100 116A 11A8; # (곽; 곽; 곽; 곽; 곽; ) HANGUL SYLLABLE GWAG
+ACFE;ACFE;1100 116A 11A9;ACFE;1100 116A 11A9; # (곾; 곾; 곾; 곾; 곾; ) HANGUL SYLLABLE GWAGG
+ACFF;ACFF;1100 116A 11AA;ACFF;1100 116A 11AA; # (곿; 곿; 곿; 곿; 곿; ) HANGUL SYLLABLE GWAGS
+AD00;AD00;1100 116A 11AB;AD00;1100 116A 11AB; # (관; 관; 관; 관; 관; ) HANGUL SYLLABLE GWAN
+AD01;AD01;1100 116A 11AC;AD01;1100 116A 11AC; # (괁; 괁; 괁; 괁; 괁; ) HANGUL SYLLABLE GWANJ
+AD02;AD02;1100 116A 11AD;AD02;1100 116A 11AD; # (괂; 괂; 괂; 괂; 괂; ) HANGUL SYLLABLE GWANH
+AD03;AD03;1100 116A 11AE;AD03;1100 116A 11AE; # (괃; 괃; 괃; 괃; 괃; ) HANGUL SYLLABLE GWAD
+AD04;AD04;1100 116A 11AF;AD04;1100 116A 11AF; # (괄; 괄; 괄; 괄; 괄; ) HANGUL SYLLABLE GWAL
+AD05;AD05;1100 116A 11B0;AD05;1100 116A 11B0; # (괅; 괅; 괅; 괅; 괅; ) HANGUL SYLLABLE GWALG
+AD06;AD06;1100 116A 11B1;AD06;1100 116A 11B1; # (괆; 괆; 괆; 괆; 괆; ) HANGUL SYLLABLE GWALM
+AD07;AD07;1100 116A 11B2;AD07;1100 116A 11B2; # (괇; 괇; 괇; 괇; 괇; ) HANGUL SYLLABLE GWALB
+AD08;AD08;1100 116A 11B3;AD08;1100 116A 11B3; # (괈; 괈; 괈; 괈; 괈; ) HANGUL SYLLABLE GWALS
+AD09;AD09;1100 116A 11B4;AD09;1100 116A 11B4; # (괉; 괉; 괉; 괉; 괉; ) HANGUL SYLLABLE GWALT
+AD0A;AD0A;1100 116A 11B5;AD0A;1100 116A 11B5; # (괊; 괊; 괊; 괊; 괊; ) HANGUL SYLLABLE GWALP
+AD0B;AD0B;1100 116A 11B6;AD0B;1100 116A 11B6; # (괋; 괋; 괋; 괋; 괋; ) HANGUL SYLLABLE GWALH
+AD0C;AD0C;1100 116A 11B7;AD0C;1100 116A 11B7; # (괌; 괌; 괌; 괌; 괌; ) HANGUL SYLLABLE GWAM
+AD0D;AD0D;1100 116A 11B8;AD0D;1100 116A 11B8; # (괍; 괍; 괍; 괍; 괍; ) HANGUL SYLLABLE GWAB
+AD0E;AD0E;1100 116A 11B9;AD0E;1100 116A 11B9; # (괎; 괎; 괎; 괎; 괎; ) HANGUL SYLLABLE GWABS
+AD0F;AD0F;1100 116A 11BA;AD0F;1100 116A 11BA; # (괏; 괏; 괏; 괏; 괏; ) HANGUL SYLLABLE GWAS
+AD10;AD10;1100 116A 11BB;AD10;1100 116A 11BB; # (괐; 괐; 괐; 괐; 괐; ) HANGUL SYLLABLE GWASS
+AD11;AD11;1100 116A 11BC;AD11;1100 116A 11BC; # (광; 광; 광; 광; 광; ) HANGUL SYLLABLE GWANG
+AD12;AD12;1100 116A 11BD;AD12;1100 116A 11BD; # (괒; 괒; 괒; 괒; 괒; ) HANGUL SYLLABLE GWAJ
+AD13;AD13;1100 116A 11BE;AD13;1100 116A 11BE; # (괓; 괓; 괓; 괓; 괓; ) HANGUL SYLLABLE GWAC
+AD14;AD14;1100 116A 11BF;AD14;1100 116A 11BF; # (괔; 괔; 괔; 괔; 괔; ) HANGUL SYLLABLE GWAK
+AD15;AD15;1100 116A 11C0;AD15;1100 116A 11C0; # (괕; 괕; 괕; 괕; 괕; ) HANGUL SYLLABLE GWAT
+AD16;AD16;1100 116A 11C1;AD16;1100 116A 11C1; # (괖; 괖; 괖; 괖; 괖; ) HANGUL SYLLABLE GWAP
+AD17;AD17;1100 116A 11C2;AD17;1100 116A 11C2; # (괗; 괗; 괗; 괗; 괗; ) HANGUL SYLLABLE GWAH
+AD18;AD18;1100 116B;AD18;1100 116B; # (괘; 괘; 괘; 괘; 괘; ) HANGUL SYLLABLE GWAE
+AD19;AD19;1100 116B 11A8;AD19;1100 116B 11A8; # (괙; 괙; 괙; 괙; 괙; ) HANGUL SYLLABLE GWAEG
+AD1A;AD1A;1100 116B 11A9;AD1A;1100 116B 11A9; # (괚; 괚; 괚; 괚; 괚; ) HANGUL SYLLABLE GWAEGG
+AD1B;AD1B;1100 116B 11AA;AD1B;1100 116B 11AA; # (괛; 괛; 괛; 괛; 괛; ) HANGUL SYLLABLE GWAEGS
+AD1C;AD1C;1100 116B 11AB;AD1C;1100 116B 11AB; # (괜; 괜; 괜; 괜; 괜; ) HANGUL SYLLABLE GWAEN
+AD1D;AD1D;1100 116B 11AC;AD1D;1100 116B 11AC; # (괝; 괝; 괝; 괝; 괝; ) HANGUL SYLLABLE GWAENJ
+AD1E;AD1E;1100 116B 11AD;AD1E;1100 116B 11AD; # (괞; 괞; 괞; 괞; 괞; ) HANGUL SYLLABLE GWAENH
+AD1F;AD1F;1100 116B 11AE;AD1F;1100 116B 11AE; # (괟; 괟; 괟; 괟; 괟; ) HANGUL SYLLABLE GWAED
+AD20;AD20;1100 116B 11AF;AD20;1100 116B 11AF; # (괠; 괠; 괠; 괠; 괠; ) HANGUL SYLLABLE GWAEL
+AD21;AD21;1100 116B 11B0;AD21;1100 116B 11B0; # (괡; 괡; 괡; 괡; 괡; ) HANGUL SYLLABLE GWAELG
+AD22;AD22;1100 116B 11B1;AD22;1100 116B 11B1; # (괢; 괢; 괢; 괢; 괢; ) HANGUL SYLLABLE GWAELM
+AD23;AD23;1100 116B 11B2;AD23;1100 116B 11B2; # (괣; 괣; 괣; 괣; 괣; ) HANGUL SYLLABLE GWAELB
+AD24;AD24;1100 116B 11B3;AD24;1100 116B 11B3; # (괤; 괤; 괤; 괤; 괤; ) HANGUL SYLLABLE GWAELS
+AD25;AD25;1100 116B 11B4;AD25;1100 116B 11B4; # (괥; 괥; 괥; 괥; 괥; ) HANGUL SYLLABLE GWAELT
+AD26;AD26;1100 116B 11B5;AD26;1100 116B 11B5; # (괦; 괦; 괦; 괦; 괦; ) HANGUL SYLLABLE GWAELP
+AD27;AD27;1100 116B 11B6;AD27;1100 116B 11B6; # (괧; 괧; 괧; 괧; 괧; ) HANGUL SYLLABLE GWAELH
+AD28;AD28;1100 116B 11B7;AD28;1100 116B 11B7; # (괨; 괨; 괨; 괨; 괨; ) HANGUL SYLLABLE GWAEM
+AD29;AD29;1100 116B 11B8;AD29;1100 116B 11B8; # (괩; 괩; 괩; 괩; 괩; ) HANGUL SYLLABLE GWAEB
+AD2A;AD2A;1100 116B 11B9;AD2A;1100 116B 11B9; # (괪; 괪; 괪; 괪; 괪; ) HANGUL SYLLABLE GWAEBS
+AD2B;AD2B;1100 116B 11BA;AD2B;1100 116B 11BA; # (괫; 괫; 괫; 괫; 괫; ) HANGUL SYLLABLE GWAES
+AD2C;AD2C;1100 116B 11BB;AD2C;1100 116B 11BB; # (괬; 괬; 괬; 괬; 괬; ) HANGUL SYLLABLE GWAESS
+AD2D;AD2D;1100 116B 11BC;AD2D;1100 116B 11BC; # (괭; 괭; 괭; 괭; 괭; ) HANGUL SYLLABLE GWAENG
+AD2E;AD2E;1100 116B 11BD;AD2E;1100 116B 11BD; # (괮; 괮; 괮; 괮; 괮; ) HANGUL SYLLABLE GWAEJ
+AD2F;AD2F;1100 116B 11BE;AD2F;1100 116B 11BE; # (괯; 괯; 괯; 괯; 괯; ) HANGUL SYLLABLE GWAEC
+AD30;AD30;1100 116B 11BF;AD30;1100 116B 11BF; # (괰; 괰; 괰; 괰; 괰; ) HANGUL SYLLABLE GWAEK
+AD31;AD31;1100 116B 11C0;AD31;1100 116B 11C0; # (괱; 괱; 괱; 괱; 괱; ) HANGUL SYLLABLE GWAET
+AD32;AD32;1100 116B 11C1;AD32;1100 116B 11C1; # (괲; 괲; 괲; 괲; 괲; ) HANGUL SYLLABLE GWAEP
+AD33;AD33;1100 116B 11C2;AD33;1100 116B 11C2; # (괳; 괳; 괳; 괳; 괳; ) HANGUL SYLLABLE GWAEH
+AD34;AD34;1100 116C;AD34;1100 116C; # (괴; 괴; 괴; 괴; 괴; ) HANGUL SYLLABLE GOE
+AD35;AD35;1100 116C 11A8;AD35;1100 116C 11A8; # (괵; 괵; 괵; 괵; 괵; ) HANGUL SYLLABLE GOEG
+AD36;AD36;1100 116C 11A9;AD36;1100 116C 11A9; # (괶; 괶; 괶; 괶; 괶; ) HANGUL SYLLABLE GOEGG
+AD37;AD37;1100 116C 11AA;AD37;1100 116C 11AA; # (괷; 괷; 괷; 괷; 괷; ) HANGUL SYLLABLE GOEGS
+AD38;AD38;1100 116C 11AB;AD38;1100 116C 11AB; # (괸; 괸; 괸; 괸; 괸; ) HANGUL SYLLABLE GOEN
+AD39;AD39;1100 116C 11AC;AD39;1100 116C 11AC; # (괹; 괹; 괹; 괹; 괹; ) HANGUL SYLLABLE GOENJ
+AD3A;AD3A;1100 116C 11AD;AD3A;1100 116C 11AD; # (괺; 괺; 괺; 괺; 괺; ) HANGUL SYLLABLE GOENH
+AD3B;AD3B;1100 116C 11AE;AD3B;1100 116C 11AE; # (괻; 괻; 괻; 괻; 괻; ) HANGUL SYLLABLE GOED
+AD3C;AD3C;1100 116C 11AF;AD3C;1100 116C 11AF; # (괼; 괼; 괼; 괼; 괼; ) HANGUL SYLLABLE GOEL
+AD3D;AD3D;1100 116C 11B0;AD3D;1100 116C 11B0; # (괽; 괽; 괽; 괽; 괽; ) HANGUL SYLLABLE GOELG
+AD3E;AD3E;1100 116C 11B1;AD3E;1100 116C 11B1; # (괾; 괾; 괾; 괾; 괾; ) HANGUL SYLLABLE GOELM
+AD3F;AD3F;1100 116C 11B2;AD3F;1100 116C 11B2; # (괿; 괿; 괿; 괿; 괿; ) HANGUL SYLLABLE GOELB
+AD40;AD40;1100 116C 11B3;AD40;1100 116C 11B3; # (굀; 굀; 굀; 굀; 굀; ) HANGUL SYLLABLE GOELS
+AD41;AD41;1100 116C 11B4;AD41;1100 116C 11B4; # (굁; 굁; 굁; 굁; 굁; ) HANGUL SYLLABLE GOELT
+AD42;AD42;1100 116C 11B5;AD42;1100 116C 11B5; # (굂; 굂; 굂; 굂; 굂; ) HANGUL SYLLABLE GOELP
+AD43;AD43;1100 116C 11B6;AD43;1100 116C 11B6; # (굃; 굃; 굃; 굃; 굃; ) HANGUL SYLLABLE GOELH
+AD44;AD44;1100 116C 11B7;AD44;1100 116C 11B7; # (굄; 굄; 굄; 굄; 굄; ) HANGUL SYLLABLE GOEM
+AD45;AD45;1100 116C 11B8;AD45;1100 116C 11B8; # (굅; 굅; 굅; 굅; 굅; ) HANGUL SYLLABLE GOEB
+AD46;AD46;1100 116C 11B9;AD46;1100 116C 11B9; # (굆; 굆; 굆; 굆; 굆; ) HANGUL SYLLABLE GOEBS
+AD47;AD47;1100 116C 11BA;AD47;1100 116C 11BA; # (굇; 굇; 굇; 굇; 굇; ) HANGUL SYLLABLE GOES
+AD48;AD48;1100 116C 11BB;AD48;1100 116C 11BB; # (굈; 굈; 굈; 굈; 굈; ) HANGUL SYLLABLE GOESS
+AD49;AD49;1100 116C 11BC;AD49;1100 116C 11BC; # (굉; 굉; 굉; 굉; 굉; ) HANGUL SYLLABLE GOENG
+AD4A;AD4A;1100 116C 11BD;AD4A;1100 116C 11BD; # (굊; 굊; 굊; 굊; 굊; ) HANGUL SYLLABLE GOEJ
+AD4B;AD4B;1100 116C 11BE;AD4B;1100 116C 11BE; # (굋; 굋; 굋; 굋; 굋; ) HANGUL SYLLABLE GOEC
+AD4C;AD4C;1100 116C 11BF;AD4C;1100 116C 11BF; # (굌; 굌; 굌; 굌; 굌; ) HANGUL SYLLABLE GOEK
+AD4D;AD4D;1100 116C 11C0;AD4D;1100 116C 11C0; # (굍; 굍; 굍; 굍; 굍; ) HANGUL SYLLABLE GOET
+AD4E;AD4E;1100 116C 11C1;AD4E;1100 116C 11C1; # (굎; 굎; 굎; 굎; 굎; ) HANGUL SYLLABLE GOEP
+AD4F;AD4F;1100 116C 11C2;AD4F;1100 116C 11C2; # (굏; 굏; 굏; 굏; 굏; ) HANGUL SYLLABLE GOEH
+AD50;AD50;1100 116D;AD50;1100 116D; # (교; 교; 교; 교; 교; ) HANGUL SYLLABLE GYO
+AD51;AD51;1100 116D 11A8;AD51;1100 116D 11A8; # (굑; 굑; 굑; 굑; 굑; ) HANGUL SYLLABLE GYOG
+AD52;AD52;1100 116D 11A9;AD52;1100 116D 11A9; # (굒; 굒; 굒; 굒; 굒; ) HANGUL SYLLABLE GYOGG
+AD53;AD53;1100 116D 11AA;AD53;1100 116D 11AA; # (굓; 굓; 굓; 굓; 굓; ) HANGUL SYLLABLE GYOGS
+AD54;AD54;1100 116D 11AB;AD54;1100 116D 11AB; # (굔; 굔; 굔; 굔; 굔; ) HANGUL SYLLABLE GYON
+AD55;AD55;1100 116D 11AC;AD55;1100 116D 11AC; # (굕; 굕; 굕; 굕; 굕; ) HANGUL SYLLABLE GYONJ
+AD56;AD56;1100 116D 11AD;AD56;1100 116D 11AD; # (굖; 굖; 굖; 굖; 굖; ) HANGUL SYLLABLE GYONH
+AD57;AD57;1100 116D 11AE;AD57;1100 116D 11AE; # (굗; 굗; 굗; 굗; 굗; ) HANGUL SYLLABLE GYOD
+AD58;AD58;1100 116D 11AF;AD58;1100 116D 11AF; # (굘; 굘; 굘; 굘; 굘; ) HANGUL SYLLABLE GYOL
+AD59;AD59;1100 116D 11B0;AD59;1100 116D 11B0; # (굙; 굙; 굙; 굙; 굙; ) HANGUL SYLLABLE GYOLG
+AD5A;AD5A;1100 116D 11B1;AD5A;1100 116D 11B1; # (굚; 굚; 굚; 굚; 굚; ) HANGUL SYLLABLE GYOLM
+AD5B;AD5B;1100 116D 11B2;AD5B;1100 116D 11B2; # (굛; 굛; 굛; 굛; 굛; ) HANGUL SYLLABLE GYOLB
+AD5C;AD5C;1100 116D 11B3;AD5C;1100 116D 11B3; # (굜; 굜; 굜; 굜; 굜; ) HANGUL SYLLABLE GYOLS
+AD5D;AD5D;1100 116D 11B4;AD5D;1100 116D 11B4; # (굝; 굝; 굝; 굝; 굝; ) HANGUL SYLLABLE GYOLT
+AD5E;AD5E;1100 116D 11B5;AD5E;1100 116D 11B5; # (굞; 굞; 굞; 굞; 굞; ) HANGUL SYLLABLE GYOLP
+AD5F;AD5F;1100 116D 11B6;AD5F;1100 116D 11B6; # (굟; 굟; 굟; 굟; 굟; ) HANGUL SYLLABLE GYOLH
+AD60;AD60;1100 116D 11B7;AD60;1100 116D 11B7; # (굠; 굠; 굠; 굠; 굠; ) HANGUL SYLLABLE GYOM
+AD61;AD61;1100 116D 11B8;AD61;1100 116D 11B8; # (굡; 굡; 굡; 굡; 굡; ) HANGUL SYLLABLE GYOB
+AD62;AD62;1100 116D 11B9;AD62;1100 116D 11B9; # (굢; 굢; 굢; 굢; 굢; ) HANGUL SYLLABLE GYOBS
+AD63;AD63;1100 116D 11BA;AD63;1100 116D 11BA; # (굣; 굣; 굣; 굣; 굣; ) HANGUL SYLLABLE GYOS
+AD64;AD64;1100 116D 11BB;AD64;1100 116D 11BB; # (굤; 굤; 굤; 굤; 굤; ) HANGUL SYLLABLE GYOSS
+AD65;AD65;1100 116D 11BC;AD65;1100 116D 11BC; # (굥; 굥; 굥; 굥; 굥; ) HANGUL SYLLABLE GYONG
+AD66;AD66;1100 116D 11BD;AD66;1100 116D 11BD; # (굦; 굦; 굦; 굦; 굦; ) HANGUL SYLLABLE GYOJ
+AD67;AD67;1100 116D 11BE;AD67;1100 116D 11BE; # (굧; 굧; 굧; 굧; 굧; ) HANGUL SYLLABLE GYOC
+AD68;AD68;1100 116D 11BF;AD68;1100 116D 11BF; # (굨; 굨; 굨; 굨; 굨; ) HANGUL SYLLABLE GYOK
+AD69;AD69;1100 116D 11C0;AD69;1100 116D 11C0; # (굩; 굩; 굩; 굩; 굩; ) HANGUL SYLLABLE GYOT
+AD6A;AD6A;1100 116D 11C1;AD6A;1100 116D 11C1; # (굪; 굪; 굪; 굪; 굪; ) HANGUL SYLLABLE GYOP
+AD6B;AD6B;1100 116D 11C2;AD6B;1100 116D 11C2; # (굫; 굫; 굫; 굫; 굫; ) HANGUL SYLLABLE GYOH
+AD6C;AD6C;1100 116E;AD6C;1100 116E; # (구; 구; 구; 구; 구; ) HANGUL SYLLABLE GU
+AD6D;AD6D;1100 116E 11A8;AD6D;1100 116E 11A8; # (국; 국; 국; 국; 국; ) HANGUL SYLLABLE GUG
+AD6E;AD6E;1100 116E 11A9;AD6E;1100 116E 11A9; # (굮; 굮; 굮; 굮; 굮; ) HANGUL SYLLABLE GUGG
+AD6F;AD6F;1100 116E 11AA;AD6F;1100 116E 11AA; # (굯; 굯; 굯; 굯; 굯; ) HANGUL SYLLABLE GUGS
+AD70;AD70;1100 116E 11AB;AD70;1100 116E 11AB; # (군; 군; 군; 군; 군; ) HANGUL SYLLABLE GUN
+AD71;AD71;1100 116E 11AC;AD71;1100 116E 11AC; # (굱; 굱; 굱; 굱; 굱; ) HANGUL SYLLABLE GUNJ
+AD72;AD72;1100 116E 11AD;AD72;1100 116E 11AD; # (굲; 굲; 굲; 굲; 굲; ) HANGUL SYLLABLE GUNH
+AD73;AD73;1100 116E 11AE;AD73;1100 116E 11AE; # (굳; 굳; 굳; 굳; 굳; ) HANGUL SYLLABLE GUD
+AD74;AD74;1100 116E 11AF;AD74;1100 116E 11AF; # (굴; 굴; 굴; 굴; 굴; ) HANGUL SYLLABLE GUL
+AD75;AD75;1100 116E 11B0;AD75;1100 116E 11B0; # (굵; 굵; 굵; 굵; 굵; ) HANGUL SYLLABLE GULG
+AD76;AD76;1100 116E 11B1;AD76;1100 116E 11B1; # (굶; 굶; 굶; 굶; 굶; ) HANGUL SYLLABLE GULM
+AD77;AD77;1100 116E 11B2;AD77;1100 116E 11B2; # (굷; 굷; 굷; 굷; 굷; ) HANGUL SYLLABLE GULB
+AD78;AD78;1100 116E 11B3;AD78;1100 116E 11B3; # (굸; 굸; 굸; 굸; 굸; ) HANGUL SYLLABLE GULS
+AD79;AD79;1100 116E 11B4;AD79;1100 116E 11B4; # (굹; 굹; 굹; 굹; 굹; ) HANGUL SYLLABLE GULT
+AD7A;AD7A;1100 116E 11B5;AD7A;1100 116E 11B5; # (굺; 굺; 굺; 굺; 굺; ) HANGUL SYLLABLE GULP
+AD7B;AD7B;1100 116E 11B6;AD7B;1100 116E 11B6; # (굻; 굻; 굻; 굻; 굻; ) HANGUL SYLLABLE GULH
+AD7C;AD7C;1100 116E 11B7;AD7C;1100 116E 11B7; # (굼; 굼; 굼; 굼; 굼; ) HANGUL SYLLABLE GUM
+AD7D;AD7D;1100 116E 11B8;AD7D;1100 116E 11B8; # (굽; 굽; 굽; 굽; 굽; ) HANGUL SYLLABLE GUB
+AD7E;AD7E;1100 116E 11B9;AD7E;1100 116E 11B9; # (굾; 굾; 굾; 굾; 굾; ) HANGUL SYLLABLE GUBS
+AD7F;AD7F;1100 116E 11BA;AD7F;1100 116E 11BA; # (굿; 굿; 굿; 굿; 굿; ) HANGUL SYLLABLE GUS
+AD80;AD80;1100 116E 11BB;AD80;1100 116E 11BB; # (궀; 궀; 궀; 궀; 궀; ) HANGUL SYLLABLE GUSS
+AD81;AD81;1100 116E 11BC;AD81;1100 116E 11BC; # (궁; 궁; 궁; 궁; 궁; ) HANGUL SYLLABLE GUNG
+AD82;AD82;1100 116E 11BD;AD82;1100 116E 11BD; # (궂; 궂; 궂; 궂; 궂; ) HANGUL SYLLABLE GUJ
+AD83;AD83;1100 116E 11BE;AD83;1100 116E 11BE; # (궃; 궃; 궃; 궃; 궃; ) HANGUL SYLLABLE GUC
+AD84;AD84;1100 116E 11BF;AD84;1100 116E 11BF; # (궄; 궄; 궄; 궄; 궄; ) HANGUL SYLLABLE GUK
+AD85;AD85;1100 116E 11C0;AD85;1100 116E 11C0; # (궅; 궅; 궅; 궅; 궅; ) HANGUL SYLLABLE GUT
+AD86;AD86;1100 116E 11C1;AD86;1100 116E 11C1; # (궆; 궆; 궆; 궆; 궆; ) HANGUL SYLLABLE GUP
+AD87;AD87;1100 116E 11C2;AD87;1100 116E 11C2; # (궇; 궇; 궇; 궇; 궇; ) HANGUL SYLLABLE GUH
+AD88;AD88;1100 116F;AD88;1100 116F; # (궈; 궈; 궈; 궈; 궈; ) HANGUL SYLLABLE GWEO
+AD89;AD89;1100 116F 11A8;AD89;1100 116F 11A8; # (궉; 궉; 궉; 궉; 궉; ) HANGUL SYLLABLE GWEOG
+AD8A;AD8A;1100 116F 11A9;AD8A;1100 116F 11A9; # (궊; 궊; 궊; 궊; 궊; ) HANGUL SYLLABLE GWEOGG
+AD8B;AD8B;1100 116F 11AA;AD8B;1100 116F 11AA; # (궋; 궋; 궋; 궋; 궋; ) HANGUL SYLLABLE GWEOGS
+AD8C;AD8C;1100 116F 11AB;AD8C;1100 116F 11AB; # (권; 권; 권; 권; 권; ) HANGUL SYLLABLE GWEON
+AD8D;AD8D;1100 116F 11AC;AD8D;1100 116F 11AC; # (궍; 궍; 궍; 궍; 궍; ) HANGUL SYLLABLE GWEONJ
+AD8E;AD8E;1100 116F 11AD;AD8E;1100 116F 11AD; # (궎; 궎; 궎; 궎; 궎; ) HANGUL SYLLABLE GWEONH
+AD8F;AD8F;1100 116F 11AE;AD8F;1100 116F 11AE; # (궏; 궏; 궏; 궏; 궏; ) HANGUL SYLLABLE GWEOD
+AD90;AD90;1100 116F 11AF;AD90;1100 116F 11AF; # (궐; 궐; 궐; 궐; 궐; ) HANGUL SYLLABLE GWEOL
+AD91;AD91;1100 116F 11B0;AD91;1100 116F 11B0; # (궑; 궑; 궑; 궑; 궑; ) HANGUL SYLLABLE GWEOLG
+AD92;AD92;1100 116F 11B1;AD92;1100 116F 11B1; # (궒; 궒; 궒; 궒; 궒; ) HANGUL SYLLABLE GWEOLM
+AD93;AD93;1100 116F 11B2;AD93;1100 116F 11B2; # (궓; 궓; 궓; 궓; 궓; ) HANGUL SYLLABLE GWEOLB
+AD94;AD94;1100 116F 11B3;AD94;1100 116F 11B3; # (궔; 궔; 궔; 궔; 궔; ) HANGUL SYLLABLE GWEOLS
+AD95;AD95;1100 116F 11B4;AD95;1100 116F 11B4; # (궕; 궕; 궕; 궕; 궕; ) HANGUL SYLLABLE GWEOLT
+AD96;AD96;1100 116F 11B5;AD96;1100 116F 11B5; # (궖; 궖; 궖; 궖; 궖; ) HANGUL SYLLABLE GWEOLP
+AD97;AD97;1100 116F 11B6;AD97;1100 116F 11B6; # (궗; 궗; 궗; 궗; 궗; ) HANGUL SYLLABLE GWEOLH
+AD98;AD98;1100 116F 11B7;AD98;1100 116F 11B7; # (궘; 궘; 궘; 궘; 궘; ) HANGUL SYLLABLE GWEOM
+AD99;AD99;1100 116F 11B8;AD99;1100 116F 11B8; # (궙; 궙; 궙; 궙; 궙; ) HANGUL SYLLABLE GWEOB
+AD9A;AD9A;1100 116F 11B9;AD9A;1100 116F 11B9; # (궚; 궚; 궚; 궚; 궚; ) HANGUL SYLLABLE GWEOBS
+AD9B;AD9B;1100 116F 11BA;AD9B;1100 116F 11BA; # (궛; 궛; 궛; 궛; 궛; ) HANGUL SYLLABLE GWEOS
+AD9C;AD9C;1100 116F 11BB;AD9C;1100 116F 11BB; # (궜; 궜; 궜; 궜; 궜; ) HANGUL SYLLABLE GWEOSS
+AD9D;AD9D;1100 116F 11BC;AD9D;1100 116F 11BC; # (궝; 궝; 궝; 궝; 궝; ) HANGUL SYLLABLE GWEONG
+AD9E;AD9E;1100 116F 11BD;AD9E;1100 116F 11BD; # (궞; 궞; 궞; 궞; 궞; ) HANGUL SYLLABLE GWEOJ
+AD9F;AD9F;1100 116F 11BE;AD9F;1100 116F 11BE; # (궟; 궟; 궟; 궟; 궟; ) HANGUL SYLLABLE GWEOC
+ADA0;ADA0;1100 116F 11BF;ADA0;1100 116F 11BF; # (궠; 궠; 궠; 궠; 궠; ) HANGUL SYLLABLE GWEOK
+ADA1;ADA1;1100 116F 11C0;ADA1;1100 116F 11C0; # (궡; 궡; 궡; 궡; 궡; ) HANGUL SYLLABLE GWEOT
+ADA2;ADA2;1100 116F 11C1;ADA2;1100 116F 11C1; # (궢; 궢; 궢; 궢; 궢; ) HANGUL SYLLABLE GWEOP
+ADA3;ADA3;1100 116F 11C2;ADA3;1100 116F 11C2; # (궣; 궣; 궣; 궣; 궣; ) HANGUL SYLLABLE GWEOH
+ADA4;ADA4;1100 1170;ADA4;1100 1170; # (궤; 궤; 궤; 궤; 궤; ) HANGUL SYLLABLE GWE
+ADA5;ADA5;1100 1170 11A8;ADA5;1100 1170 11A8; # (궥; 궥; 궥; 궥; 궥; ) HANGUL SYLLABLE GWEG
+ADA6;ADA6;1100 1170 11A9;ADA6;1100 1170 11A9; # (궦; 궦; 궦; 궦; 궦; ) HANGUL SYLLABLE GWEGG
+ADA7;ADA7;1100 1170 11AA;ADA7;1100 1170 11AA; # (궧; 궧; 궧; 궧; 궧; ) HANGUL SYLLABLE GWEGS
+ADA8;ADA8;1100 1170 11AB;ADA8;1100 1170 11AB; # (궨; 궨; 궨; 궨; 궨; ) HANGUL SYLLABLE GWEN
+ADA9;ADA9;1100 1170 11AC;ADA9;1100 1170 11AC; # (궩; 궩; 궩; 궩; 궩; ) HANGUL SYLLABLE GWENJ
+ADAA;ADAA;1100 1170 11AD;ADAA;1100 1170 11AD; # (궪; 궪; 궪; 궪; 궪; ) HANGUL SYLLABLE GWENH
+ADAB;ADAB;1100 1170 11AE;ADAB;1100 1170 11AE; # (궫; 궫; 궫; 궫; 궫; ) HANGUL SYLLABLE GWED
+ADAC;ADAC;1100 1170 11AF;ADAC;1100 1170 11AF; # (궬; 궬; 궬; 궬; 궬; ) HANGUL SYLLABLE GWEL
+ADAD;ADAD;1100 1170 11B0;ADAD;1100 1170 11B0; # (궭; 궭; 궭; 궭; 궭; ) HANGUL SYLLABLE GWELG
+ADAE;ADAE;1100 1170 11B1;ADAE;1100 1170 11B1; # (궮; 궮; 궮; 궮; 궮; ) HANGUL SYLLABLE GWELM
+ADAF;ADAF;1100 1170 11B2;ADAF;1100 1170 11B2; # (궯; 궯; 궯; 궯; 궯; ) HANGUL SYLLABLE GWELB
+ADB0;ADB0;1100 1170 11B3;ADB0;1100 1170 11B3; # (궰; 궰; 궰; 궰; 궰; ) HANGUL SYLLABLE GWELS
+ADB1;ADB1;1100 1170 11B4;ADB1;1100 1170 11B4; # (궱; 궱; 궱; 궱; 궱; ) HANGUL SYLLABLE GWELT
+ADB2;ADB2;1100 1170 11B5;ADB2;1100 1170 11B5; # (궲; 궲; 궲; 궲; 궲; ) HANGUL SYLLABLE GWELP
+ADB3;ADB3;1100 1170 11B6;ADB3;1100 1170 11B6; # (궳; 궳; 궳; 궳; 궳; ) HANGUL SYLLABLE GWELH
+ADB4;ADB4;1100 1170 11B7;ADB4;1100 1170 11B7; # (궴; 궴; 궴; 궴; 궴; ) HANGUL SYLLABLE GWEM
+ADB5;ADB5;1100 1170 11B8;ADB5;1100 1170 11B8; # (궵; 궵; 궵; 궵; 궵; ) HANGUL SYLLABLE GWEB
+ADB6;ADB6;1100 1170 11B9;ADB6;1100 1170 11B9; # (궶; 궶; 궶; 궶; 궶; ) HANGUL SYLLABLE GWEBS
+ADB7;ADB7;1100 1170 11BA;ADB7;1100 1170 11BA; # (궷; 궷; 궷; 궷; 궷; ) HANGUL SYLLABLE GWES
+ADB8;ADB8;1100 1170 11BB;ADB8;1100 1170 11BB; # (궸; 궸; 궸; 궸; 궸; ) HANGUL SYLLABLE GWESS
+ADB9;ADB9;1100 1170 11BC;ADB9;1100 1170 11BC; # (궹; 궹; 궹; 궹; 궹; ) HANGUL SYLLABLE GWENG
+ADBA;ADBA;1100 1170 11BD;ADBA;1100 1170 11BD; # (궺; 궺; 궺; 궺; 궺; ) HANGUL SYLLABLE GWEJ
+ADBB;ADBB;1100 1170 11BE;ADBB;1100 1170 11BE; # (궻; 궻; 궻; 궻; 궻; ) HANGUL SYLLABLE GWEC
+ADBC;ADBC;1100 1170 11BF;ADBC;1100 1170 11BF; # (궼; 궼; 궼; 궼; 궼; ) HANGUL SYLLABLE GWEK
+ADBD;ADBD;1100 1170 11C0;ADBD;1100 1170 11C0; # (궽; 궽; 궽; 궽; 궽; ) HANGUL SYLLABLE GWET
+ADBE;ADBE;1100 1170 11C1;ADBE;1100 1170 11C1; # (궾; 궾; 궾; 궾; 궾; ) HANGUL SYLLABLE GWEP
+ADBF;ADBF;1100 1170 11C2;ADBF;1100 1170 11C2; # (궿; 궿; 궿; 궿; 궿; ) HANGUL SYLLABLE GWEH
+ADC0;ADC0;1100 1171;ADC0;1100 1171; # (귀; 귀; 귀; 귀; 귀; ) HANGUL SYLLABLE GWI
+ADC1;ADC1;1100 1171 11A8;ADC1;1100 1171 11A8; # (귁; 귁; 귁; 귁; 귁; ) HANGUL SYLLABLE GWIG
+ADC2;ADC2;1100 1171 11A9;ADC2;1100 1171 11A9; # (귂; 귂; 귂; 귂; 귂; ) HANGUL SYLLABLE GWIGG
+ADC3;ADC3;1100 1171 11AA;ADC3;1100 1171 11AA; # (귃; 귃; 귃; 귃; 귃; ) HANGUL SYLLABLE GWIGS
+ADC4;ADC4;1100 1171 11AB;ADC4;1100 1171 11AB; # (귄; 귄; 귄; 귄; 귄; ) HANGUL SYLLABLE GWIN
+ADC5;ADC5;1100 1171 11AC;ADC5;1100 1171 11AC; # (귅; 귅; 귅; 귅; 귅; ) HANGUL SYLLABLE GWINJ
+ADC6;ADC6;1100 1171 11AD;ADC6;1100 1171 11AD; # (귆; 귆; 귆; 귆; 귆; ) HANGUL SYLLABLE GWINH
+ADC7;ADC7;1100 1171 11AE;ADC7;1100 1171 11AE; # (귇; 귇; 귇; 귇; 귇; ) HANGUL SYLLABLE GWID
+ADC8;ADC8;1100 1171 11AF;ADC8;1100 1171 11AF; # (귈; 귈; 귈; 귈; 귈; ) HANGUL SYLLABLE GWIL
+ADC9;ADC9;1100 1171 11B0;ADC9;1100 1171 11B0; # (귉; 귉; 귉; 귉; 귉; ) HANGUL SYLLABLE GWILG
+ADCA;ADCA;1100 1171 11B1;ADCA;1100 1171 11B1; # (귊; 귊; 귊; 귊; 귊; ) HANGUL SYLLABLE GWILM
+ADCB;ADCB;1100 1171 11B2;ADCB;1100 1171 11B2; # (귋; 귋; 귋; 귋; 귋; ) HANGUL SYLLABLE GWILB
+ADCC;ADCC;1100 1171 11B3;ADCC;1100 1171 11B3; # (귌; 귌; 귌; 귌; 귌; ) HANGUL SYLLABLE GWILS
+ADCD;ADCD;1100 1171 11B4;ADCD;1100 1171 11B4; # (귍; 귍; 귍; 귍; 귍; ) HANGUL SYLLABLE GWILT
+ADCE;ADCE;1100 1171 11B5;ADCE;1100 1171 11B5; # (귎; 귎; 귎; 귎; 귎; ) HANGUL SYLLABLE GWILP
+ADCF;ADCF;1100 1171 11B6;ADCF;1100 1171 11B6; # (귏; 귏; 귏; 귏; 귏; ) HANGUL SYLLABLE GWILH
+ADD0;ADD0;1100 1171 11B7;ADD0;1100 1171 11B7; # (귐; 귐; 귐; 귐; 귐; ) HANGUL SYLLABLE GWIM
+ADD1;ADD1;1100 1171 11B8;ADD1;1100 1171 11B8; # (귑; 귑; 귑; 귑; 귑; ) HANGUL SYLLABLE GWIB
+ADD2;ADD2;1100 1171 11B9;ADD2;1100 1171 11B9; # (귒; 귒; 귒; 귒; 귒; ) HANGUL SYLLABLE GWIBS
+ADD3;ADD3;1100 1171 11BA;ADD3;1100 1171 11BA; # (귓; 귓; 귓; 귓; 귓; ) HANGUL SYLLABLE GWIS
+ADD4;ADD4;1100 1171 11BB;ADD4;1100 1171 11BB; # (귔; 귔; 귔; 귔; 귔; ) HANGUL SYLLABLE GWISS
+ADD5;ADD5;1100 1171 11BC;ADD5;1100 1171 11BC; # (귕; 귕; 귕; 귕; 귕; ) HANGUL SYLLABLE GWING
+ADD6;ADD6;1100 1171 11BD;ADD6;1100 1171 11BD; # (귖; 귖; 귖; 귖; 귖; ) HANGUL SYLLABLE GWIJ
+ADD7;ADD7;1100 1171 11BE;ADD7;1100 1171 11BE; # (귗; 귗; 귗; 귗; 귗; ) HANGUL SYLLABLE GWIC
+ADD8;ADD8;1100 1171 11BF;ADD8;1100 1171 11BF; # (귘; 귘; 귘; 귘; 귘; ) HANGUL SYLLABLE GWIK
+ADD9;ADD9;1100 1171 11C0;ADD9;1100 1171 11C0; # (귙; 귙; 귙; 귙; 귙; ) HANGUL SYLLABLE GWIT
+ADDA;ADDA;1100 1171 11C1;ADDA;1100 1171 11C1; # (귚; 귚; 귚; 귚; 귚; ) HANGUL SYLLABLE GWIP
+ADDB;ADDB;1100 1171 11C2;ADDB;1100 1171 11C2; # (귛; 귛; 귛; 귛; 귛; ) HANGUL SYLLABLE GWIH
+ADDC;ADDC;1100 1172;ADDC;1100 1172; # (규; 규; 규; 규; 규; ) HANGUL SYLLABLE GYU
+ADDD;ADDD;1100 1172 11A8;ADDD;1100 1172 11A8; # (귝; 귝; 귝; 귝; 귝; ) HANGUL SYLLABLE GYUG
+ADDE;ADDE;1100 1172 11A9;ADDE;1100 1172 11A9; # (귞; 귞; 귞; 귞; 귞; ) HANGUL SYLLABLE GYUGG
+ADDF;ADDF;1100 1172 11AA;ADDF;1100 1172 11AA; # (귟; 귟; 귟; 귟; 귟; ) HANGUL SYLLABLE GYUGS
+ADE0;ADE0;1100 1172 11AB;ADE0;1100 1172 11AB; # (균; 균; 균; 균; 균; ) HANGUL SYLLABLE GYUN
+ADE1;ADE1;1100 1172 11AC;ADE1;1100 1172 11AC; # (귡; 귡; 귡; 귡; 귡; ) HANGUL SYLLABLE GYUNJ
+ADE2;ADE2;1100 1172 11AD;ADE2;1100 1172 11AD; # (귢; 귢; 귢; 귢; 귢; ) HANGUL SYLLABLE GYUNH
+ADE3;ADE3;1100 1172 11AE;ADE3;1100 1172 11AE; # (귣; 귣; 귣; 귣; 귣; ) HANGUL SYLLABLE GYUD
+ADE4;ADE4;1100 1172 11AF;ADE4;1100 1172 11AF; # (귤; 귤; 귤; 귤; 귤; ) HANGUL SYLLABLE GYUL
+ADE5;ADE5;1100 1172 11B0;ADE5;1100 1172 11B0; # (귥; 귥; 귥; 귥; 귥; ) HANGUL SYLLABLE GYULG
+ADE6;ADE6;1100 1172 11B1;ADE6;1100 1172 11B1; # (귦; 귦; 귦; 귦; 귦; ) HANGUL SYLLABLE GYULM
+ADE7;ADE7;1100 1172 11B2;ADE7;1100 1172 11B2; # (귧; 귧; 귧; 귧; 귧; ) HANGUL SYLLABLE GYULB
+ADE8;ADE8;1100 1172 11B3;ADE8;1100 1172 11B3; # (귨; 귨; 귨; 귨; 귨; ) HANGUL SYLLABLE GYULS
+ADE9;ADE9;1100 1172 11B4;ADE9;1100 1172 11B4; # (귩; 귩; 귩; 귩; 귩; ) HANGUL SYLLABLE GYULT
+ADEA;ADEA;1100 1172 11B5;ADEA;1100 1172 11B5; # (귪; 귪; 귪; 귪; 귪; ) HANGUL SYLLABLE GYULP
+ADEB;ADEB;1100 1172 11B6;ADEB;1100 1172 11B6; # (귫; 귫; 귫; 귫; 귫; ) HANGUL SYLLABLE GYULH
+ADEC;ADEC;1100 1172 11B7;ADEC;1100 1172 11B7; # (귬; 귬; 귬; 귬; 귬; ) HANGUL SYLLABLE GYUM
+ADED;ADED;1100 1172 11B8;ADED;1100 1172 11B8; # (귭; 귭; 귭; 귭; 귭; ) HANGUL SYLLABLE GYUB
+ADEE;ADEE;1100 1172 11B9;ADEE;1100 1172 11B9; # (귮; 귮; 귮; 귮; 귮; ) HANGUL SYLLABLE GYUBS
+ADEF;ADEF;1100 1172 11BA;ADEF;1100 1172 11BA; # (귯; 귯; 귯; 귯; 귯; ) HANGUL SYLLABLE GYUS
+ADF0;ADF0;1100 1172 11BB;ADF0;1100 1172 11BB; # (귰; 귰; 귰; 귰; 귰; ) HANGUL SYLLABLE GYUSS
+ADF1;ADF1;1100 1172 11BC;ADF1;1100 1172 11BC; # (귱; 귱; 귱; 귱; 귱; ) HANGUL SYLLABLE GYUNG
+ADF2;ADF2;1100 1172 11BD;ADF2;1100 1172 11BD; # (귲; 귲; 귲; 귲; 귲; ) HANGUL SYLLABLE GYUJ
+ADF3;ADF3;1100 1172 11BE;ADF3;1100 1172 11BE; # (귳; 귳; 귳; 귳; 귳; ) HANGUL SYLLABLE GYUC
+ADF4;ADF4;1100 1172 11BF;ADF4;1100 1172 11BF; # (귴; 귴; 귴; 귴; 귴; ) HANGUL SYLLABLE GYUK
+ADF5;ADF5;1100 1172 11C0;ADF5;1100 1172 11C0; # (귵; 귵; 귵; 귵; 귵; ) HANGUL SYLLABLE GYUT
+ADF6;ADF6;1100 1172 11C1;ADF6;1100 1172 11C1; # (귶; 귶; 귶; 귶; 귶; ) HANGUL SYLLABLE GYUP
+ADF7;ADF7;1100 1172 11C2;ADF7;1100 1172 11C2; # (귷; 귷; 귷; 귷; 귷; ) HANGUL SYLLABLE GYUH
+ADF8;ADF8;1100 1173;ADF8;1100 1173; # (그; 그; 그; 그; 그; ) HANGUL SYLLABLE GEU
+ADF9;ADF9;1100 1173 11A8;ADF9;1100 1173 11A8; # (극; 극; 극; 극; 극; ) HANGUL SYLLABLE GEUG
+ADFA;ADFA;1100 1173 11A9;ADFA;1100 1173 11A9; # (귺; 귺; 귺; 귺; 귺; ) HANGUL SYLLABLE GEUGG
+ADFB;ADFB;1100 1173 11AA;ADFB;1100 1173 11AA; # (귻; 귻; 귻; 귻; 귻; ) HANGUL SYLLABLE GEUGS
+ADFC;ADFC;1100 1173 11AB;ADFC;1100 1173 11AB; # (근; 근; 근; 근; 근; ) HANGUL SYLLABLE GEUN
+ADFD;ADFD;1100 1173 11AC;ADFD;1100 1173 11AC; # (귽; 귽; 귽; 귽; 귽; ) HANGUL SYLLABLE GEUNJ
+ADFE;ADFE;1100 1173 11AD;ADFE;1100 1173 11AD; # (귾; 귾; 귾; 귾; 귾; ) HANGUL SYLLABLE GEUNH
+ADFF;ADFF;1100 1173 11AE;ADFF;1100 1173 11AE; # (귿; 귿; 귿; 귿; 귿; ) HANGUL SYLLABLE GEUD
+AE00;AE00;1100 1173 11AF;AE00;1100 1173 11AF; # (글; 글; 글; 글; 글; ) HANGUL SYLLABLE GEUL
+AE01;AE01;1100 1173 11B0;AE01;1100 1173 11B0; # (긁; 긁; 긁; 긁; 긁; ) HANGUL SYLLABLE GEULG
+AE02;AE02;1100 1173 11B1;AE02;1100 1173 11B1; # (긂; 긂; 긂; 긂; 긂; ) HANGUL SYLLABLE GEULM
+AE03;AE03;1100 1173 11B2;AE03;1100 1173 11B2; # (긃; 긃; 긃; 긃; 긃; ) HANGUL SYLLABLE GEULB
+AE04;AE04;1100 1173 11B3;AE04;1100 1173 11B3; # (긄; 긄; 긄; 긄; 긄; ) HANGUL SYLLABLE GEULS
+AE05;AE05;1100 1173 11B4;AE05;1100 1173 11B4; # (긅; 긅; 긅; 긅; 긅; ) HANGUL SYLLABLE GEULT
+AE06;AE06;1100 1173 11B5;AE06;1100 1173 11B5; # (긆; 긆; 긆; 긆; 긆; ) HANGUL SYLLABLE GEULP
+AE07;AE07;1100 1173 11B6;AE07;1100 1173 11B6; # (긇; 긇; 긇; 긇; 긇; ) HANGUL SYLLABLE GEULH
+AE08;AE08;1100 1173 11B7;AE08;1100 1173 11B7; # (금; 금; 금; 금; 금; ) HANGUL SYLLABLE GEUM
+AE09;AE09;1100 1173 11B8;AE09;1100 1173 11B8; # (급; 급; 급; 급; 급; ) HANGUL SYLLABLE GEUB
+AE0A;AE0A;1100 1173 11B9;AE0A;1100 1173 11B9; # (긊; 긊; 긊; 긊; 긊; ) HANGUL SYLLABLE GEUBS
+AE0B;AE0B;1100 1173 11BA;AE0B;1100 1173 11BA; # (긋; 긋; 긋; 긋; 긋; ) HANGUL SYLLABLE GEUS
+AE0C;AE0C;1100 1173 11BB;AE0C;1100 1173 11BB; # (긌; 긌; 긌; 긌; 긌; ) HANGUL SYLLABLE GEUSS
+AE0D;AE0D;1100 1173 11BC;AE0D;1100 1173 11BC; # (긍; 긍; 긍; 긍; 긍; ) HANGUL SYLLABLE GEUNG
+AE0E;AE0E;1100 1173 11BD;AE0E;1100 1173 11BD; # (긎; 긎; 긎; 긎; 긎; ) HANGUL SYLLABLE GEUJ
+AE0F;AE0F;1100 1173 11BE;AE0F;1100 1173 11BE; # (긏; 긏; 긏; 긏; 긏; ) HANGUL SYLLABLE GEUC
+AE10;AE10;1100 1173 11BF;AE10;1100 1173 11BF; # (긐; 긐; 긐; 긐; 긐; ) HANGUL SYLLABLE GEUK
+AE11;AE11;1100 1173 11C0;AE11;1100 1173 11C0; # (긑; 긑; 긑; 긑; 긑; ) HANGUL SYLLABLE GEUT
+AE12;AE12;1100 1173 11C1;AE12;1100 1173 11C1; # (긒; 긒; 긒; 긒; 긒; ) HANGUL SYLLABLE GEUP
+AE13;AE13;1100 1173 11C2;AE13;1100 1173 11C2; # (긓; 긓; 긓; 긓; 긓; ) HANGUL SYLLABLE GEUH
+AE14;AE14;1100 1174;AE14;1100 1174; # (긔; 긔; 긔; 긔; 긔; ) HANGUL SYLLABLE GYI
+AE15;AE15;1100 1174 11A8;AE15;1100 1174 11A8; # (긕; 긕; 긕; 긕; 긕; ) HANGUL SYLLABLE GYIG
+AE16;AE16;1100 1174 11A9;AE16;1100 1174 11A9; # (긖; 긖; 긖; 긖; 긖; ) HANGUL SYLLABLE GYIGG
+AE17;AE17;1100 1174 11AA;AE17;1100 1174 11AA; # (긗; 긗; 긗; 긗; 긗; ) HANGUL SYLLABLE GYIGS
+AE18;AE18;1100 1174 11AB;AE18;1100 1174 11AB; # (긘; 긘; 긘; 긘; 긘; ) HANGUL SYLLABLE GYIN
+AE19;AE19;1100 1174 11AC;AE19;1100 1174 11AC; # (긙; 긙; 긙; 긙; 긙; ) HANGUL SYLLABLE GYINJ
+AE1A;AE1A;1100 1174 11AD;AE1A;1100 1174 11AD; # (긚; 긚; 긚; 긚; 긚; ) HANGUL SYLLABLE GYINH
+AE1B;AE1B;1100 1174 11AE;AE1B;1100 1174 11AE; # (긛; 긛; 긛; 긛; 긛; ) HANGUL SYLLABLE GYID
+AE1C;AE1C;1100 1174 11AF;AE1C;1100 1174 11AF; # (긜; 긜; 긜; 긜; 긜; ) HANGUL SYLLABLE GYIL
+AE1D;AE1D;1100 1174 11B0;AE1D;1100 1174 11B0; # (긝; 긝; 긝; 긝; 긝; ) HANGUL SYLLABLE GYILG
+AE1E;AE1E;1100 1174 11B1;AE1E;1100 1174 11B1; # (긞; 긞; 긞; 긞; 긞; ) HANGUL SYLLABLE GYILM
+AE1F;AE1F;1100 1174 11B2;AE1F;1100 1174 11B2; # (긟; 긟; 긟; 긟; 긟; ) HANGUL SYLLABLE GYILB
+AE20;AE20;1100 1174 11B3;AE20;1100 1174 11B3; # (긠; 긠; 긠; 긠; 긠; ) HANGUL SYLLABLE GYILS
+AE21;AE21;1100 1174 11B4;AE21;1100 1174 11B4; # (긡; 긡; 긡; 긡; 긡; ) HANGUL SYLLABLE GYILT
+AE22;AE22;1100 1174 11B5;AE22;1100 1174 11B5; # (긢; 긢; 긢; 긢; 긢; ) HANGUL SYLLABLE GYILP
+AE23;AE23;1100 1174 11B6;AE23;1100 1174 11B6; # (긣; 긣; 긣; 긣; 긣; ) HANGUL SYLLABLE GYILH
+AE24;AE24;1100 1174 11B7;AE24;1100 1174 11B7; # (긤; 긤; 긤; 긤; 긤; ) HANGUL SYLLABLE GYIM
+AE25;AE25;1100 1174 11B8;AE25;1100 1174 11B8; # (긥; 긥; 긥; 긥; 긥; ) HANGUL SYLLABLE GYIB
+AE26;AE26;1100 1174 11B9;AE26;1100 1174 11B9; # (긦; 긦; 긦; 긦; 긦; ) HANGUL SYLLABLE GYIBS
+AE27;AE27;1100 1174 11BA;AE27;1100 1174 11BA; # (긧; 긧; 긧; 긧; 긧; ) HANGUL SYLLABLE GYIS
+AE28;AE28;1100 1174 11BB;AE28;1100 1174 11BB; # (긨; 긨; 긨; 긨; 긨; ) HANGUL SYLLABLE GYISS
+AE29;AE29;1100 1174 11BC;AE29;1100 1174 11BC; # (긩; 긩; 긩; 긩; 긩; ) HANGUL SYLLABLE GYING
+AE2A;AE2A;1100 1174 11BD;AE2A;1100 1174 11BD; # (긪; 긪; 긪; 긪; 긪; ) HANGUL SYLLABLE GYIJ
+AE2B;AE2B;1100 1174 11BE;AE2B;1100 1174 11BE; # (긫; 긫; 긫; 긫; 긫; ) HANGUL SYLLABLE GYIC
+AE2C;AE2C;1100 1174 11BF;AE2C;1100 1174 11BF; # (긬; 긬; 긬; 긬; 긬; ) HANGUL SYLLABLE GYIK
+AE2D;AE2D;1100 1174 11C0;AE2D;1100 1174 11C0; # (긭; 긭; 긭; 긭; 긭; ) HANGUL SYLLABLE GYIT
+AE2E;AE2E;1100 1174 11C1;AE2E;1100 1174 11C1; # (긮; 긮; 긮; 긮; 긮; ) HANGUL SYLLABLE GYIP
+AE2F;AE2F;1100 1174 11C2;AE2F;1100 1174 11C2; # (긯; 긯; 긯; 긯; 긯; ) HANGUL SYLLABLE GYIH
+AE30;AE30;1100 1175;AE30;1100 1175; # (기; 기; 기; 기; 기; ) HANGUL SYLLABLE GI
+AE31;AE31;1100 1175 11A8;AE31;1100 1175 11A8; # (긱; 긱; 긱; 긱; 긱; ) HANGUL SYLLABLE GIG
+AE32;AE32;1100 1175 11A9;AE32;1100 1175 11A9; # (긲; 긲; 긲; 긲; 긲; ) HANGUL SYLLABLE GIGG
+AE33;AE33;1100 1175 11AA;AE33;1100 1175 11AA; # (긳; 긳; 긳; 긳; 긳; ) HANGUL SYLLABLE GIGS
+AE34;AE34;1100 1175 11AB;AE34;1100 1175 11AB; # (긴; 긴; 긴; 긴; 긴; ) HANGUL SYLLABLE GIN
+AE35;AE35;1100 1175 11AC;AE35;1100 1175 11AC; # (긵; 긵; 긵; 긵; 긵; ) HANGUL SYLLABLE GINJ
+AE36;AE36;1100 1175 11AD;AE36;1100 1175 11AD; # (긶; 긶; 긶; 긶; 긶; ) HANGUL SYLLABLE GINH
+AE37;AE37;1100 1175 11AE;AE37;1100 1175 11AE; # (긷; 긷; 긷; 긷; 긷; ) HANGUL SYLLABLE GID
+AE38;AE38;1100 1175 11AF;AE38;1100 1175 11AF; # (길; 길; 길; 길; 길; ) HANGUL SYLLABLE GIL
+AE39;AE39;1100 1175 11B0;AE39;1100 1175 11B0; # (긹; 긹; 긹; 긹; 긹; ) HANGUL SYLLABLE GILG
+AE3A;AE3A;1100 1175 11B1;AE3A;1100 1175 11B1; # (긺; 긺; 긺; 긺; 긺; ) HANGUL SYLLABLE GILM
+AE3B;AE3B;1100 1175 11B2;AE3B;1100 1175 11B2; # (긻; 긻; 긻; 긻; 긻; ) HANGUL SYLLABLE GILB
+AE3C;AE3C;1100 1175 11B3;AE3C;1100 1175 11B3; # (긼; 긼; 긼; 긼; 긼; ) HANGUL SYLLABLE GILS
+AE3D;AE3D;1100 1175 11B4;AE3D;1100 1175 11B4; # (긽; 긽; 긽; 긽; 긽; ) HANGUL SYLLABLE GILT
+AE3E;AE3E;1100 1175 11B5;AE3E;1100 1175 11B5; # (긾; 긾; 긾; 긾; 긾; ) HANGUL SYLLABLE GILP
+AE3F;AE3F;1100 1175 11B6;AE3F;1100 1175 11B6; # (긿; 긿; 긿; 긿; 긿; ) HANGUL SYLLABLE GILH
+AE40;AE40;1100 1175 11B7;AE40;1100 1175 11B7; # (김; 김; 김; 김; 김; ) HANGUL SYLLABLE GIM
+AE41;AE41;1100 1175 11B8;AE41;1100 1175 11B8; # (깁; 깁; 깁; 깁; 깁; ) HANGUL SYLLABLE GIB
+AE42;AE42;1100 1175 11B9;AE42;1100 1175 11B9; # (깂; 깂; 깂; 깂; 깂; ) HANGUL SYLLABLE GIBS
+AE43;AE43;1100 1175 11BA;AE43;1100 1175 11BA; # (깃; 깃; 깃; 깃; 깃; ) HANGUL SYLLABLE GIS
+AE44;AE44;1100 1175 11BB;AE44;1100 1175 11BB; # (깄; 깄; 깄; 깄; 깄; ) HANGUL SYLLABLE GISS
+AE45;AE45;1100 1175 11BC;AE45;1100 1175 11BC; # (깅; 깅; 깅; 깅; 깅; ) HANGUL SYLLABLE GING
+AE46;AE46;1100 1175 11BD;AE46;1100 1175 11BD; # (깆; 깆; 깆; 깆; 깆; ) HANGUL SYLLABLE GIJ
+AE47;AE47;1100 1175 11BE;AE47;1100 1175 11BE; # (깇; 깇; 깇; 깇; 깇; ) HANGUL SYLLABLE GIC
+AE48;AE48;1100 1175 11BF;AE48;1100 1175 11BF; # (깈; 깈; 깈; 깈; 깈; ) HANGUL SYLLABLE GIK
+AE49;AE49;1100 1175 11C0;AE49;1100 1175 11C0; # (깉; 깉; 깉; 깉; 깉; ) HANGUL SYLLABLE GIT
+AE4A;AE4A;1100 1175 11C1;AE4A;1100 1175 11C1; # (깊; 깊; 깊; 깊; 깊; ) HANGUL SYLLABLE GIP
+AE4B;AE4B;1100 1175 11C2;AE4B;1100 1175 11C2; # (깋; 깋; 깋; 깋; 깋; ) HANGUL SYLLABLE GIH
+AE4C;AE4C;1101 1161;AE4C;1101 1161; # (까; 까; 까; 까; 까; ) HANGUL SYLLABLE GGA
+AE4D;AE4D;1101 1161 11A8;AE4D;1101 1161 11A8; # (깍; 깍; 깍; 깍; 깍; ) HANGUL SYLLABLE GGAG
+AE4E;AE4E;1101 1161 11A9;AE4E;1101 1161 11A9; # (깎; 깎; 깎; 깎; 깎; ) HANGUL SYLLABLE GGAGG
+AE4F;AE4F;1101 1161 11AA;AE4F;1101 1161 11AA; # (깏; 깏; 깏; 깏; 깏; ) HANGUL SYLLABLE GGAGS
+AE50;AE50;1101 1161 11AB;AE50;1101 1161 11AB; # (깐; 깐; 깐; 깐; 깐; ) HANGUL SYLLABLE GGAN
+AE51;AE51;1101 1161 11AC;AE51;1101 1161 11AC; # (깑; 깑; 깑; 깑; 깑; ) HANGUL SYLLABLE GGANJ
+AE52;AE52;1101 1161 11AD;AE52;1101 1161 11AD; # (깒; 깒; 깒; 깒; 깒; ) HANGUL SYLLABLE GGANH
+AE53;AE53;1101 1161 11AE;AE53;1101 1161 11AE; # (깓; 깓; 깓; 깓; 깓; ) HANGUL SYLLABLE GGAD
+AE54;AE54;1101 1161 11AF;AE54;1101 1161 11AF; # (깔; 깔; 깔; 깔; 깔; ) HANGUL SYLLABLE GGAL
+AE55;AE55;1101 1161 11B0;AE55;1101 1161 11B0; # (깕; 깕; 깕; 깕; 깕; ) HANGUL SYLLABLE GGALG
+AE56;AE56;1101 1161 11B1;AE56;1101 1161 11B1; # (깖; 깖; 깖; 깖; 깖; ) HANGUL SYLLABLE GGALM
+AE57;AE57;1101 1161 11B2;AE57;1101 1161 11B2; # (깗; 깗; 깗; 깗; 깗; ) HANGUL SYLLABLE GGALB
+AE58;AE58;1101 1161 11B3;AE58;1101 1161 11B3; # (깘; 깘; 깘; 깘; 깘; ) HANGUL SYLLABLE GGALS
+AE59;AE59;1101 1161 11B4;AE59;1101 1161 11B4; # (깙; 깙; 깙; 깙; 깙; ) HANGUL SYLLABLE GGALT
+AE5A;AE5A;1101 1161 11B5;AE5A;1101 1161 11B5; # (깚; 깚; 깚; 깚; 깚; ) HANGUL SYLLABLE GGALP
+AE5B;AE5B;1101 1161 11B6;AE5B;1101 1161 11B6; # (깛; 깛; 깛; 깛; 깛; ) HANGUL SYLLABLE GGALH
+AE5C;AE5C;1101 1161 11B7;AE5C;1101 1161 11B7; # (깜; 깜; 깜; 깜; 깜; ) HANGUL SYLLABLE GGAM
+AE5D;AE5D;1101 1161 11B8;AE5D;1101 1161 11B8; # (깝; 깝; 깝; 깝; 깝; ) HANGUL SYLLABLE GGAB
+AE5E;AE5E;1101 1161 11B9;AE5E;1101 1161 11B9; # (깞; 깞; 깞; 깞; 깞; ) HANGUL SYLLABLE GGABS
+AE5F;AE5F;1101 1161 11BA;AE5F;1101 1161 11BA; # (깟; 깟; 깟; 깟; 깟; ) HANGUL SYLLABLE GGAS
+AE60;AE60;1101 1161 11BB;AE60;1101 1161 11BB; # (깠; 깠; 깠; 깠; 깠; ) HANGUL SYLLABLE GGASS
+AE61;AE61;1101 1161 11BC;AE61;1101 1161 11BC; # (깡; 깡; 깡; 깡; 깡; ) HANGUL SYLLABLE GGANG
+AE62;AE62;1101 1161 11BD;AE62;1101 1161 11BD; # (깢; 깢; 깢; 깢; 깢; ) HANGUL SYLLABLE GGAJ
+AE63;AE63;1101 1161 11BE;AE63;1101 1161 11BE; # (깣; 깣; 깣; 깣; 깣; ) HANGUL SYLLABLE GGAC
+AE64;AE64;1101 1161 11BF;AE64;1101 1161 11BF; # (깤; 깤; 깤; 깤; 깤; ) HANGUL SYLLABLE GGAK
+AE65;AE65;1101 1161 11C0;AE65;1101 1161 11C0; # (깥; 깥; 깥; 깥; 깥; ) HANGUL SYLLABLE GGAT
+AE66;AE66;1101 1161 11C1;AE66;1101 1161 11C1; # (깦; 깦; 깦; 깦; 깦; ) HANGUL SYLLABLE GGAP
+AE67;AE67;1101 1161 11C2;AE67;1101 1161 11C2; # (깧; 깧; 깧; 깧; 깧; ) HANGUL SYLLABLE GGAH
+AE68;AE68;1101 1162;AE68;1101 1162; # (깨; 깨; 깨; 깨; 깨; ) HANGUL SYLLABLE GGAE
+AE69;AE69;1101 1162 11A8;AE69;1101 1162 11A8; # (깩; 깩; 깩; 깩; 깩; ) HANGUL SYLLABLE GGAEG
+AE6A;AE6A;1101 1162 11A9;AE6A;1101 1162 11A9; # (깪; 깪; 깪; 깪; 깪; ) HANGUL SYLLABLE GGAEGG
+AE6B;AE6B;1101 1162 11AA;AE6B;1101 1162 11AA; # (깫; 깫; 깫; 깫; 깫; ) HANGUL SYLLABLE GGAEGS
+AE6C;AE6C;1101 1162 11AB;AE6C;1101 1162 11AB; # (깬; 깬; 깬; 깬; 깬; ) HANGUL SYLLABLE GGAEN
+AE6D;AE6D;1101 1162 11AC;AE6D;1101 1162 11AC; # (깭; 깭; 깭; 깭; 깭; ) HANGUL SYLLABLE GGAENJ
+AE6E;AE6E;1101 1162 11AD;AE6E;1101 1162 11AD; # (깮; 깮; 깮; 깮; 깮; ) HANGUL SYLLABLE GGAENH
+AE6F;AE6F;1101 1162 11AE;AE6F;1101 1162 11AE; # (깯; 깯; 깯; 깯; 깯; ) HANGUL SYLLABLE GGAED
+AE70;AE70;1101 1162 11AF;AE70;1101 1162 11AF; # (깰; 깰; 깰; 깰; 깰; ) HANGUL SYLLABLE GGAEL
+AE71;AE71;1101 1162 11B0;AE71;1101 1162 11B0; # (깱; 깱; 깱; 깱; 깱; ) HANGUL SYLLABLE GGAELG
+AE72;AE72;1101 1162 11B1;AE72;1101 1162 11B1; # (깲; 깲; 깲; 깲; 깲; ) HANGUL SYLLABLE GGAELM
+AE73;AE73;1101 1162 11B2;AE73;1101 1162 11B2; # (깳; 깳; 깳; 깳; 깳; ) HANGUL SYLLABLE GGAELB
+AE74;AE74;1101 1162 11B3;AE74;1101 1162 11B3; # (깴; 깴; 깴; 깴; 깴; ) HANGUL SYLLABLE GGAELS
+AE75;AE75;1101 1162 11B4;AE75;1101 1162 11B4; # (깵; 깵; 깵; 깵; 깵; ) HANGUL SYLLABLE GGAELT
+AE76;AE76;1101 1162 11B5;AE76;1101 1162 11B5; # (깶; 깶; 깶; 깶; 깶; ) HANGUL SYLLABLE GGAELP
+AE77;AE77;1101 1162 11B6;AE77;1101 1162 11B6; # (깷; 깷; 깷; 깷; 깷; ) HANGUL SYLLABLE GGAELH
+AE78;AE78;1101 1162 11B7;AE78;1101 1162 11B7; # (깸; 깸; 깸; 깸; 깸; ) HANGUL SYLLABLE GGAEM
+AE79;AE79;1101 1162 11B8;AE79;1101 1162 11B8; # (깹; 깹; 깹; 깹; 깹; ) HANGUL SYLLABLE GGAEB
+AE7A;AE7A;1101 1162 11B9;AE7A;1101 1162 11B9; # (깺; 깺; 깺; 깺; 깺; ) HANGUL SYLLABLE GGAEBS
+AE7B;AE7B;1101 1162 11BA;AE7B;1101 1162 11BA; # (깻; 깻; 깻; 깻; 깻; ) HANGUL SYLLABLE GGAES
+AE7C;AE7C;1101 1162 11BB;AE7C;1101 1162 11BB; # (깼; 깼; 깼; 깼; 깼; ) HANGUL SYLLABLE GGAESS
+AE7D;AE7D;1101 1162 11BC;AE7D;1101 1162 11BC; # (깽; 깽; 깽; 깽; 깽; ) HANGUL SYLLABLE GGAENG
+AE7E;AE7E;1101 1162 11BD;AE7E;1101 1162 11BD; # (깾; 깾; 깾; 깾; 깾; ) HANGUL SYLLABLE GGAEJ
+AE7F;AE7F;1101 1162 11BE;AE7F;1101 1162 11BE; # (깿; 깿; 깿; 깿; 깿; ) HANGUL SYLLABLE GGAEC
+AE80;AE80;1101 1162 11BF;AE80;1101 1162 11BF; # (꺀; 꺀; 꺀; 꺀; 꺀; ) HANGUL SYLLABLE GGAEK
+AE81;AE81;1101 1162 11C0;AE81;1101 1162 11C0; # (꺁; 꺁; 꺁; 꺁; 꺁; ) HANGUL SYLLABLE GGAET
+AE82;AE82;1101 1162 11C1;AE82;1101 1162 11C1; # (꺂; 꺂; 꺂; 꺂; 꺂; ) HANGUL SYLLABLE GGAEP
+AE83;AE83;1101 1162 11C2;AE83;1101 1162 11C2; # (꺃; 꺃; 꺃; 꺃; 꺃; ) HANGUL SYLLABLE GGAEH
+AE84;AE84;1101 1163;AE84;1101 1163; # (꺄; 꺄; 꺄; 꺄; 꺄; ) HANGUL SYLLABLE GGYA
+AE85;AE85;1101 1163 11A8;AE85;1101 1163 11A8; # (꺅; 꺅; 꺅; 꺅; 꺅; ) HANGUL SYLLABLE GGYAG
+AE86;AE86;1101 1163 11A9;AE86;1101 1163 11A9; # (꺆; 꺆; 꺆; 꺆; 꺆; ) HANGUL SYLLABLE GGYAGG
+AE87;AE87;1101 1163 11AA;AE87;1101 1163 11AA; # (꺇; 꺇; 꺇; 꺇; 꺇; ) HANGUL SYLLABLE GGYAGS
+AE88;AE88;1101 1163 11AB;AE88;1101 1163 11AB; # (꺈; 꺈; 꺈; 꺈; 꺈; ) HANGUL SYLLABLE GGYAN
+AE89;AE89;1101 1163 11AC;AE89;1101 1163 11AC; # (꺉; 꺉; 꺉; 꺉; 꺉; ) HANGUL SYLLABLE GGYANJ
+AE8A;AE8A;1101 1163 11AD;AE8A;1101 1163 11AD; # (꺊; 꺊; 꺊; 꺊; 꺊; ) HANGUL SYLLABLE GGYANH
+AE8B;AE8B;1101 1163 11AE;AE8B;1101 1163 11AE; # (꺋; 꺋; 꺋; 꺋; 꺋; ) HANGUL SYLLABLE GGYAD
+AE8C;AE8C;1101 1163 11AF;AE8C;1101 1163 11AF; # (꺌; 꺌; 꺌; 꺌; 꺌; ) HANGUL SYLLABLE GGYAL
+AE8D;AE8D;1101 1163 11B0;AE8D;1101 1163 11B0; # (꺍; 꺍; 꺍; 꺍; 꺍; ) HANGUL SYLLABLE GGYALG
+AE8E;AE8E;1101 1163 11B1;AE8E;1101 1163 11B1; # (꺎; 꺎; 꺎; 꺎; 꺎; ) HANGUL SYLLABLE GGYALM
+AE8F;AE8F;1101 1163 11B2;AE8F;1101 1163 11B2; # (꺏; 꺏; 꺏; 꺏; 꺏; ) HANGUL SYLLABLE GGYALB
+AE90;AE90;1101 1163 11B3;AE90;1101 1163 11B3; # (꺐; 꺐; 꺐; 꺐; 꺐; ) HANGUL SYLLABLE GGYALS
+AE91;AE91;1101 1163 11B4;AE91;1101 1163 11B4; # (꺑; 꺑; 꺑; 꺑; 꺑; ) HANGUL SYLLABLE GGYALT
+AE92;AE92;1101 1163 11B5;AE92;1101 1163 11B5; # (꺒; 꺒; 꺒; 꺒; 꺒; ) HANGUL SYLLABLE GGYALP
+AE93;AE93;1101 1163 11B6;AE93;1101 1163 11B6; # (꺓; 꺓; 꺓; 꺓; 꺓; ) HANGUL SYLLABLE GGYALH
+AE94;AE94;1101 1163 11B7;AE94;1101 1163 11B7; # (꺔; 꺔; 꺔; 꺔; 꺔; ) HANGUL SYLLABLE GGYAM
+AE95;AE95;1101 1163 11B8;AE95;1101 1163 11B8; # (꺕; 꺕; 꺕; 꺕; 꺕; ) HANGUL SYLLABLE GGYAB
+AE96;AE96;1101 1163 11B9;AE96;1101 1163 11B9; # (꺖; 꺖; 꺖; 꺖; 꺖; ) HANGUL SYLLABLE GGYABS
+AE97;AE97;1101 1163 11BA;AE97;1101 1163 11BA; # (꺗; 꺗; 꺗; 꺗; 꺗; ) HANGUL SYLLABLE GGYAS
+AE98;AE98;1101 1163 11BB;AE98;1101 1163 11BB; # (꺘; 꺘; 꺘; 꺘; 꺘; ) HANGUL SYLLABLE GGYASS
+AE99;AE99;1101 1163 11BC;AE99;1101 1163 11BC; # (꺙; 꺙; 꺙; 꺙; 꺙; ) HANGUL SYLLABLE GGYANG
+AE9A;AE9A;1101 1163 11BD;AE9A;1101 1163 11BD; # (꺚; 꺚; 꺚; 꺚; 꺚; ) HANGUL SYLLABLE GGYAJ
+AE9B;AE9B;1101 1163 11BE;AE9B;1101 1163 11BE; # (꺛; 꺛; 꺛; 꺛; 꺛; ) HANGUL SYLLABLE GGYAC
+AE9C;AE9C;1101 1163 11BF;AE9C;1101 1163 11BF; # (꺜; 꺜; 꺜; 꺜; 꺜; ) HANGUL SYLLABLE GGYAK
+AE9D;AE9D;1101 1163 11C0;AE9D;1101 1163 11C0; # (꺝; 꺝; 꺝; 꺝; 꺝; ) HANGUL SYLLABLE GGYAT
+AE9E;AE9E;1101 1163 11C1;AE9E;1101 1163 11C1; # (꺞; 꺞; 꺞; 꺞; 꺞; ) HANGUL SYLLABLE GGYAP
+AE9F;AE9F;1101 1163 11C2;AE9F;1101 1163 11C2; # (꺟; 꺟; 꺟; 꺟; 꺟; ) HANGUL SYLLABLE GGYAH
+AEA0;AEA0;1101 1164;AEA0;1101 1164; # (꺠; 꺠; 꺠; 꺠; 꺠; ) HANGUL SYLLABLE GGYAE
+AEA1;AEA1;1101 1164 11A8;AEA1;1101 1164 11A8; # (꺡; 꺡; 꺡; 꺡; 꺡; ) HANGUL SYLLABLE GGYAEG
+AEA2;AEA2;1101 1164 11A9;AEA2;1101 1164 11A9; # (꺢; 꺢; 꺢; 꺢; 꺢; ) HANGUL SYLLABLE GGYAEGG
+AEA3;AEA3;1101 1164 11AA;AEA3;1101 1164 11AA; # (꺣; 꺣; 꺣; 꺣; 꺣; ) HANGUL SYLLABLE GGYAEGS
+AEA4;AEA4;1101 1164 11AB;AEA4;1101 1164 11AB; # (꺤; 꺤; 꺤; 꺤; 꺤; ) HANGUL SYLLABLE GGYAEN
+AEA5;AEA5;1101 1164 11AC;AEA5;1101 1164 11AC; # (꺥; 꺥; 꺥; 꺥; 꺥; ) HANGUL SYLLABLE GGYAENJ
+AEA6;AEA6;1101 1164 11AD;AEA6;1101 1164 11AD; # (꺦; 꺦; 꺦; 꺦; 꺦; ) HANGUL SYLLABLE GGYAENH
+AEA7;AEA7;1101 1164 11AE;AEA7;1101 1164 11AE; # (꺧; 꺧; 꺧; 꺧; 꺧; ) HANGUL SYLLABLE GGYAED
+AEA8;AEA8;1101 1164 11AF;AEA8;1101 1164 11AF; # (꺨; 꺨; 꺨; 꺨; 꺨; ) HANGUL SYLLABLE GGYAEL
+AEA9;AEA9;1101 1164 11B0;AEA9;1101 1164 11B0; # (꺩; 꺩; 꺩; 꺩; 꺩; ) HANGUL SYLLABLE GGYAELG
+AEAA;AEAA;1101 1164 11B1;AEAA;1101 1164 11B1; # (꺪; 꺪; 꺪; 꺪; 꺪; ) HANGUL SYLLABLE GGYAELM
+AEAB;AEAB;1101 1164 11B2;AEAB;1101 1164 11B2; # (꺫; 꺫; 꺫; 꺫; 꺫; ) HANGUL SYLLABLE GGYAELB
+AEAC;AEAC;1101 1164 11B3;AEAC;1101 1164 11B3; # (꺬; 꺬; 꺬; 꺬; 꺬; ) HANGUL SYLLABLE GGYAELS
+AEAD;AEAD;1101 1164 11B4;AEAD;1101 1164 11B4; # (꺭; 꺭; 꺭; 꺭; 꺭; ) HANGUL SYLLABLE GGYAELT
+AEAE;AEAE;1101 1164 11B5;AEAE;1101 1164 11B5; # (꺮; 꺮; 꺮; 꺮; 꺮; ) HANGUL SYLLABLE GGYAELP
+AEAF;AEAF;1101 1164 11B6;AEAF;1101 1164 11B6; # (꺯; 꺯; 꺯; 꺯; 꺯; ) HANGUL SYLLABLE GGYAELH
+AEB0;AEB0;1101 1164 11B7;AEB0;1101 1164 11B7; # (꺰; 꺰; 꺰; 꺰; 꺰; ) HANGUL SYLLABLE GGYAEM
+AEB1;AEB1;1101 1164 11B8;AEB1;1101 1164 11B8; # (꺱; 꺱; 꺱; 꺱; 꺱; ) HANGUL SYLLABLE GGYAEB
+AEB2;AEB2;1101 1164 11B9;AEB2;1101 1164 11B9; # (꺲; 꺲; 꺲; 꺲; 꺲; ) HANGUL SYLLABLE GGYAEBS
+AEB3;AEB3;1101 1164 11BA;AEB3;1101 1164 11BA; # (꺳; 꺳; 꺳; 꺳; 꺳; ) HANGUL SYLLABLE GGYAES
+AEB4;AEB4;1101 1164 11BB;AEB4;1101 1164 11BB; # (꺴; 꺴; 꺴; 꺴; 꺴; ) HANGUL SYLLABLE GGYAESS
+AEB5;AEB5;1101 1164 11BC;AEB5;1101 1164 11BC; # (꺵; 꺵; 꺵; 꺵; 꺵; ) HANGUL SYLLABLE GGYAENG
+AEB6;AEB6;1101 1164 11BD;AEB6;1101 1164 11BD; # (꺶; 꺶; 꺶; 꺶; 꺶; ) HANGUL SYLLABLE GGYAEJ
+AEB7;AEB7;1101 1164 11BE;AEB7;1101 1164 11BE; # (꺷; 꺷; 꺷; 꺷; 꺷; ) HANGUL SYLLABLE GGYAEC
+AEB8;AEB8;1101 1164 11BF;AEB8;1101 1164 11BF; # (꺸; 꺸; 꺸; 꺸; 꺸; ) HANGUL SYLLABLE GGYAEK
+AEB9;AEB9;1101 1164 11C0;AEB9;1101 1164 11C0; # (꺹; 꺹; 꺹; 꺹; 꺹; ) HANGUL SYLLABLE GGYAET
+AEBA;AEBA;1101 1164 11C1;AEBA;1101 1164 11C1; # (꺺; 꺺; 꺺; 꺺; 꺺; ) HANGUL SYLLABLE GGYAEP
+AEBB;AEBB;1101 1164 11C2;AEBB;1101 1164 11C2; # (꺻; 꺻; 꺻; 꺻; 꺻; ) HANGUL SYLLABLE GGYAEH
+AEBC;AEBC;1101 1165;AEBC;1101 1165; # (꺼; 꺼; 꺼; 꺼; 꺼; ) HANGUL SYLLABLE GGEO
+AEBD;AEBD;1101 1165 11A8;AEBD;1101 1165 11A8; # (꺽; 꺽; 꺽; 꺽; 꺽; ) HANGUL SYLLABLE GGEOG
+AEBE;AEBE;1101 1165 11A9;AEBE;1101 1165 11A9; # (꺾; 꺾; 꺾; 꺾; 꺾; ) HANGUL SYLLABLE GGEOGG
+AEBF;AEBF;1101 1165 11AA;AEBF;1101 1165 11AA; # (꺿; 꺿; 꺿; 꺿; 꺿; ) HANGUL SYLLABLE GGEOGS
+AEC0;AEC0;1101 1165 11AB;AEC0;1101 1165 11AB; # (껀; 껀; 껀; 껀; 껀; ) HANGUL SYLLABLE GGEON
+AEC1;AEC1;1101 1165 11AC;AEC1;1101 1165 11AC; # (껁; 껁; 껁; 껁; 껁; ) HANGUL SYLLABLE GGEONJ
+AEC2;AEC2;1101 1165 11AD;AEC2;1101 1165 11AD; # (껂; 껂; 껂; 껂; 껂; ) HANGUL SYLLABLE GGEONH
+AEC3;AEC3;1101 1165 11AE;AEC3;1101 1165 11AE; # (껃; 껃; 껃; 껃; 껃; ) HANGUL SYLLABLE GGEOD
+AEC4;AEC4;1101 1165 11AF;AEC4;1101 1165 11AF; # (껄; 껄; 껄; 껄; 껄; ) HANGUL SYLLABLE GGEOL
+AEC5;AEC5;1101 1165 11B0;AEC5;1101 1165 11B0; # (껅; 껅; 껅; 껅; 껅; ) HANGUL SYLLABLE GGEOLG
+AEC6;AEC6;1101 1165 11B1;AEC6;1101 1165 11B1; # (껆; 껆; 껆; 껆; 껆; ) HANGUL SYLLABLE GGEOLM
+AEC7;AEC7;1101 1165 11B2;AEC7;1101 1165 11B2; # (껇; 껇; 껇; 껇; 껇; ) HANGUL SYLLABLE GGEOLB
+AEC8;AEC8;1101 1165 11B3;AEC8;1101 1165 11B3; # (껈; 껈; 껈; 껈; 껈; ) HANGUL SYLLABLE GGEOLS
+AEC9;AEC9;1101 1165 11B4;AEC9;1101 1165 11B4; # (껉; 껉; 껉; 껉; 껉; ) HANGUL SYLLABLE GGEOLT
+AECA;AECA;1101 1165 11B5;AECA;1101 1165 11B5; # (껊; 껊; 껊; 껊; 껊; ) HANGUL SYLLABLE GGEOLP
+AECB;AECB;1101 1165 11B6;AECB;1101 1165 11B6; # (껋; 껋; 껋; 껋; 껋; ) HANGUL SYLLABLE GGEOLH
+AECC;AECC;1101 1165 11B7;AECC;1101 1165 11B7; # (껌; 껌; 껌; 껌; 껌; ) HANGUL SYLLABLE GGEOM
+AECD;AECD;1101 1165 11B8;AECD;1101 1165 11B8; # (껍; 껍; 껍; 껍; 껍; ) HANGUL SYLLABLE GGEOB
+AECE;AECE;1101 1165 11B9;AECE;1101 1165 11B9; # (껎; 껎; 껎; 껎; 껎; ) HANGUL SYLLABLE GGEOBS
+AECF;AECF;1101 1165 11BA;AECF;1101 1165 11BA; # (껏; 껏; 껏; 껏; 껏; ) HANGUL SYLLABLE GGEOS
+AED0;AED0;1101 1165 11BB;AED0;1101 1165 11BB; # (껐; 껐; 껐; 껐; 껐; ) HANGUL SYLLABLE GGEOSS
+AED1;AED1;1101 1165 11BC;AED1;1101 1165 11BC; # (껑; 껑; 껑; 껑; 껑; ) HANGUL SYLLABLE GGEONG
+AED2;AED2;1101 1165 11BD;AED2;1101 1165 11BD; # (껒; 껒; 껒; 껒; 껒; ) HANGUL SYLLABLE GGEOJ
+AED3;AED3;1101 1165 11BE;AED3;1101 1165 11BE; # (껓; 껓; 껓; 껓; 껓; ) HANGUL SYLLABLE GGEOC
+AED4;AED4;1101 1165 11BF;AED4;1101 1165 11BF; # (껔; 껔; 껔; 껔; 껔; ) HANGUL SYLLABLE GGEOK
+AED5;AED5;1101 1165 11C0;AED5;1101 1165 11C0; # (껕; 껕; 껕; 껕; 껕; ) HANGUL SYLLABLE GGEOT
+AED6;AED6;1101 1165 11C1;AED6;1101 1165 11C1; # (껖; 껖; 껖; 껖; 껖; ) HANGUL SYLLABLE GGEOP
+AED7;AED7;1101 1165 11C2;AED7;1101 1165 11C2; # (껗; 껗; 껗; 껗; 껗; ) HANGUL SYLLABLE GGEOH
+AED8;AED8;1101 1166;AED8;1101 1166; # (께; 께; 께; 께; 께; ) HANGUL SYLLABLE GGE
+AED9;AED9;1101 1166 11A8;AED9;1101 1166 11A8; # (껙; 껙; 껙; 껙; 껙; ) HANGUL SYLLABLE GGEG
+AEDA;AEDA;1101 1166 11A9;AEDA;1101 1166 11A9; # (껚; 껚; 껚; 껚; 껚; ) HANGUL SYLLABLE GGEGG
+AEDB;AEDB;1101 1166 11AA;AEDB;1101 1166 11AA; # (껛; 껛; 껛; 껛; 껛; ) HANGUL SYLLABLE GGEGS
+AEDC;AEDC;1101 1166 11AB;AEDC;1101 1166 11AB; # (껜; 껜; 껜; 껜; 껜; ) HANGUL SYLLABLE GGEN
+AEDD;AEDD;1101 1166 11AC;AEDD;1101 1166 11AC; # (껝; 껝; 껝; 껝; 껝; ) HANGUL SYLLABLE GGENJ
+AEDE;AEDE;1101 1166 11AD;AEDE;1101 1166 11AD; # (껞; 껞; 껞; 껞; 껞; ) HANGUL SYLLABLE GGENH
+AEDF;AEDF;1101 1166 11AE;AEDF;1101 1166 11AE; # (껟; 껟; 껟; 껟; 껟; ) HANGUL SYLLABLE GGED
+AEE0;AEE0;1101 1166 11AF;AEE0;1101 1166 11AF; # (껠; 껠; 껠; 껠; 껠; ) HANGUL SYLLABLE GGEL
+AEE1;AEE1;1101 1166 11B0;AEE1;1101 1166 11B0; # (껡; 껡; 껡; 껡; 껡; ) HANGUL SYLLABLE GGELG
+AEE2;AEE2;1101 1166 11B1;AEE2;1101 1166 11B1; # (껢; 껢; 껢; 껢; 껢; ) HANGUL SYLLABLE GGELM
+AEE3;AEE3;1101 1166 11B2;AEE3;1101 1166 11B2; # (껣; 껣; 껣; 껣; 껣; ) HANGUL SYLLABLE GGELB
+AEE4;AEE4;1101 1166 11B3;AEE4;1101 1166 11B3; # (껤; 껤; 껤; 껤; 껤; ) HANGUL SYLLABLE GGELS
+AEE5;AEE5;1101 1166 11B4;AEE5;1101 1166 11B4; # (껥; 껥; 껥; 껥; 껥; ) HANGUL SYLLABLE GGELT
+AEE6;AEE6;1101 1166 11B5;AEE6;1101 1166 11B5; # (껦; 껦; 껦; 껦; 껦; ) HANGUL SYLLABLE GGELP
+AEE7;AEE7;1101 1166 11B6;AEE7;1101 1166 11B6; # (껧; 껧; 껧; 껧; 껧; ) HANGUL SYLLABLE GGELH
+AEE8;AEE8;1101 1166 11B7;AEE8;1101 1166 11B7; # (껨; 껨; 껨; 껨; 껨; ) HANGUL SYLLABLE GGEM
+AEE9;AEE9;1101 1166 11B8;AEE9;1101 1166 11B8; # (껩; 껩; 껩; 껩; 껩; ) HANGUL SYLLABLE GGEB
+AEEA;AEEA;1101 1166 11B9;AEEA;1101 1166 11B9; # (껪; 껪; 껪; 껪; 껪; ) HANGUL SYLLABLE GGEBS
+AEEB;AEEB;1101 1166 11BA;AEEB;1101 1166 11BA; # (껫; 껫; 껫; 껫; 껫; ) HANGUL SYLLABLE GGES
+AEEC;AEEC;1101 1166 11BB;AEEC;1101 1166 11BB; # (껬; 껬; 껬; 껬; 껬; ) HANGUL SYLLABLE GGESS
+AEED;AEED;1101 1166 11BC;AEED;1101 1166 11BC; # (껭; 껭; 껭; 껭; 껭; ) HANGUL SYLLABLE GGENG
+AEEE;AEEE;1101 1166 11BD;AEEE;1101 1166 11BD; # (껮; 껮; 껮; 껮; 껮; ) HANGUL SYLLABLE GGEJ
+AEEF;AEEF;1101 1166 11BE;AEEF;1101 1166 11BE; # (껯; 껯; 껯; 껯; 껯; ) HANGUL SYLLABLE GGEC
+AEF0;AEF0;1101 1166 11BF;AEF0;1101 1166 11BF; # (껰; 껰; 껰; 껰; 껰; ) HANGUL SYLLABLE GGEK
+AEF1;AEF1;1101 1166 11C0;AEF1;1101 1166 11C0; # (껱; 껱; 껱; 껱; 껱; ) HANGUL SYLLABLE GGET
+AEF2;AEF2;1101 1166 11C1;AEF2;1101 1166 11C1; # (껲; 껲; 껲; 껲; 껲; ) HANGUL SYLLABLE GGEP
+AEF3;AEF3;1101 1166 11C2;AEF3;1101 1166 11C2; # (껳; 껳; 껳; 껳; 껳; ) HANGUL SYLLABLE GGEH
+AEF4;AEF4;1101 1167;AEF4;1101 1167; # (껴; 껴; 껴; 껴; 껴; ) HANGUL SYLLABLE GGYEO
+AEF5;AEF5;1101 1167 11A8;AEF5;1101 1167 11A8; # (껵; 껵; 껵; 껵; 껵; ) HANGUL SYLLABLE GGYEOG
+AEF6;AEF6;1101 1167 11A9;AEF6;1101 1167 11A9; # (껶; 껶; 껶; 껶; 껶; ) HANGUL SYLLABLE GGYEOGG
+AEF7;AEF7;1101 1167 11AA;AEF7;1101 1167 11AA; # (껷; 껷; 껷; 껷; 껷; ) HANGUL SYLLABLE GGYEOGS
+AEF8;AEF8;1101 1167 11AB;AEF8;1101 1167 11AB; # (껸; 껸; 껸; 껸; 껸; ) HANGUL SYLLABLE GGYEON
+AEF9;AEF9;1101 1167 11AC;AEF9;1101 1167 11AC; # (껹; 껹; 껹; 껹; 껹; ) HANGUL SYLLABLE GGYEONJ
+AEFA;AEFA;1101 1167 11AD;AEFA;1101 1167 11AD; # (껺; 껺; 껺; 껺; 껺; ) HANGUL SYLLABLE GGYEONH
+AEFB;AEFB;1101 1167 11AE;AEFB;1101 1167 11AE; # (껻; 껻; 껻; 껻; 껻; ) HANGUL SYLLABLE GGYEOD
+AEFC;AEFC;1101 1167 11AF;AEFC;1101 1167 11AF; # (껼; 껼; 껼; 껼; 껼; ) HANGUL SYLLABLE GGYEOL
+AEFD;AEFD;1101 1167 11B0;AEFD;1101 1167 11B0; # (껽; 껽; 껽; 껽; 껽; ) HANGUL SYLLABLE GGYEOLG
+AEFE;AEFE;1101 1167 11B1;AEFE;1101 1167 11B1; # (껾; 껾; 껾; 껾; 껾; ) HANGUL SYLLABLE GGYEOLM
+AEFF;AEFF;1101 1167 11B2;AEFF;1101 1167 11B2; # (껿; 껿; 껿; 껿; 껿; ) HANGUL SYLLABLE GGYEOLB
+AF00;AF00;1101 1167 11B3;AF00;1101 1167 11B3; # (꼀; 꼀; 꼀; 꼀; 꼀; ) HANGUL SYLLABLE GGYEOLS
+AF01;AF01;1101 1167 11B4;AF01;1101 1167 11B4; # (꼁; 꼁; 꼁; 꼁; 꼁; ) HANGUL SYLLABLE GGYEOLT
+AF02;AF02;1101 1167 11B5;AF02;1101 1167 11B5; # (꼂; 꼂; 꼂; 꼂; 꼂; ) HANGUL SYLLABLE GGYEOLP
+AF03;AF03;1101 1167 11B6;AF03;1101 1167 11B6; # (꼃; 꼃; 꼃; 꼃; 꼃; ) HANGUL SYLLABLE GGYEOLH
+AF04;AF04;1101 1167 11B7;AF04;1101 1167 11B7; # (꼄; 꼄; 꼄; 꼄; 꼄; ) HANGUL SYLLABLE GGYEOM
+AF05;AF05;1101 1167 11B8;AF05;1101 1167 11B8; # (꼅; 꼅; 꼅; 꼅; 꼅; ) HANGUL SYLLABLE GGYEOB
+AF06;AF06;1101 1167 11B9;AF06;1101 1167 11B9; # (꼆; 꼆; 꼆; 꼆; 꼆; ) HANGUL SYLLABLE GGYEOBS
+AF07;AF07;1101 1167 11BA;AF07;1101 1167 11BA; # (꼇; 꼇; 꼇; 꼇; 꼇; ) HANGUL SYLLABLE GGYEOS
+AF08;AF08;1101 1167 11BB;AF08;1101 1167 11BB; # (꼈; 꼈; 꼈; 꼈; 꼈; ) HANGUL SYLLABLE GGYEOSS
+AF09;AF09;1101 1167 11BC;AF09;1101 1167 11BC; # (꼉; 꼉; 꼉; 꼉; 꼉; ) HANGUL SYLLABLE GGYEONG
+AF0A;AF0A;1101 1167 11BD;AF0A;1101 1167 11BD; # (꼊; 꼊; 꼊; 꼊; 꼊; ) HANGUL SYLLABLE GGYEOJ
+AF0B;AF0B;1101 1167 11BE;AF0B;1101 1167 11BE; # (꼋; 꼋; 꼋; 꼋; 꼋; ) HANGUL SYLLABLE GGYEOC
+AF0C;AF0C;1101 1167 11BF;AF0C;1101 1167 11BF; # (꼌; 꼌; 꼌; 꼌; 꼌; ) HANGUL SYLLABLE GGYEOK
+AF0D;AF0D;1101 1167 11C0;AF0D;1101 1167 11C0; # (꼍; 꼍; 꼍; 꼍; 꼍; ) HANGUL SYLLABLE GGYEOT
+AF0E;AF0E;1101 1167 11C1;AF0E;1101 1167 11C1; # (꼎; 꼎; 꼎; 꼎; 꼎; ) HANGUL SYLLABLE GGYEOP
+AF0F;AF0F;1101 1167 11C2;AF0F;1101 1167 11C2; # (꼏; 꼏; 꼏; 꼏; 꼏; ) HANGUL SYLLABLE GGYEOH
+AF10;AF10;1101 1168;AF10;1101 1168; # (꼐; 꼐; 꼐; 꼐; 꼐; ) HANGUL SYLLABLE GGYE
+AF11;AF11;1101 1168 11A8;AF11;1101 1168 11A8; # (꼑; 꼑; 꼑; 꼑; 꼑; ) HANGUL SYLLABLE GGYEG
+AF12;AF12;1101 1168 11A9;AF12;1101 1168 11A9; # (꼒; 꼒; 꼒; 꼒; 꼒; ) HANGUL SYLLABLE GGYEGG
+AF13;AF13;1101 1168 11AA;AF13;1101 1168 11AA; # (꼓; 꼓; 꼓; 꼓; 꼓; ) HANGUL SYLLABLE GGYEGS
+AF14;AF14;1101 1168 11AB;AF14;1101 1168 11AB; # (꼔; 꼔; 꼔; 꼔; 꼔; ) HANGUL SYLLABLE GGYEN
+AF15;AF15;1101 1168 11AC;AF15;1101 1168 11AC; # (꼕; 꼕; 꼕; 꼕; 꼕; ) HANGUL SYLLABLE GGYENJ
+AF16;AF16;1101 1168 11AD;AF16;1101 1168 11AD; # (꼖; 꼖; 꼖; 꼖; 꼖; ) HANGUL SYLLABLE GGYENH
+AF17;AF17;1101 1168 11AE;AF17;1101 1168 11AE; # (꼗; 꼗; 꼗; 꼗; 꼗; ) HANGUL SYLLABLE GGYED
+AF18;AF18;1101 1168 11AF;AF18;1101 1168 11AF; # (꼘; 꼘; 꼘; 꼘; 꼘; ) HANGUL SYLLABLE GGYEL
+AF19;AF19;1101 1168 11B0;AF19;1101 1168 11B0; # (꼙; 꼙; 꼙; 꼙; 꼙; ) HANGUL SYLLABLE GGYELG
+AF1A;AF1A;1101 1168 11B1;AF1A;1101 1168 11B1; # (꼚; 꼚; 꼚; 꼚; 꼚; ) HANGUL SYLLABLE GGYELM
+AF1B;AF1B;1101 1168 11B2;AF1B;1101 1168 11B2; # (꼛; 꼛; 꼛; 꼛; 꼛; ) HANGUL SYLLABLE GGYELB
+AF1C;AF1C;1101 1168 11B3;AF1C;1101 1168 11B3; # (꼜; 꼜; 꼜; 꼜; 꼜; ) HANGUL SYLLABLE GGYELS
+AF1D;AF1D;1101 1168 11B4;AF1D;1101 1168 11B4; # (꼝; 꼝; 꼝; 꼝; 꼝; ) HANGUL SYLLABLE GGYELT
+AF1E;AF1E;1101 1168 11B5;AF1E;1101 1168 11B5; # (꼞; 꼞; 꼞; 꼞; 꼞; ) HANGUL SYLLABLE GGYELP
+AF1F;AF1F;1101 1168 11B6;AF1F;1101 1168 11B6; # (꼟; 꼟; 꼟; 꼟; 꼟; ) HANGUL SYLLABLE GGYELH
+AF20;AF20;1101 1168 11B7;AF20;1101 1168 11B7; # (꼠; 꼠; 꼠; 꼠; 꼠; ) HANGUL SYLLABLE GGYEM
+AF21;AF21;1101 1168 11B8;AF21;1101 1168 11B8; # (꼡; 꼡; 꼡; 꼡; 꼡; ) HANGUL SYLLABLE GGYEB
+AF22;AF22;1101 1168 11B9;AF22;1101 1168 11B9; # (꼢; 꼢; 꼢; 꼢; 꼢; ) HANGUL SYLLABLE GGYEBS
+AF23;AF23;1101 1168 11BA;AF23;1101 1168 11BA; # (꼣; 꼣; 꼣; 꼣; 꼣; ) HANGUL SYLLABLE GGYES
+AF24;AF24;1101 1168 11BB;AF24;1101 1168 11BB; # (꼤; 꼤; 꼤; 꼤; 꼤; ) HANGUL SYLLABLE GGYESS
+AF25;AF25;1101 1168 11BC;AF25;1101 1168 11BC; # (꼥; 꼥; 꼥; 꼥; 꼥; ) HANGUL SYLLABLE GGYENG
+AF26;AF26;1101 1168 11BD;AF26;1101 1168 11BD; # (꼦; 꼦; 꼦; 꼦; 꼦; ) HANGUL SYLLABLE GGYEJ
+AF27;AF27;1101 1168 11BE;AF27;1101 1168 11BE; # (꼧; 꼧; 꼧; 꼧; 꼧; ) HANGUL SYLLABLE GGYEC
+AF28;AF28;1101 1168 11BF;AF28;1101 1168 11BF; # (꼨; 꼨; 꼨; 꼨; 꼨; ) HANGUL SYLLABLE GGYEK
+AF29;AF29;1101 1168 11C0;AF29;1101 1168 11C0; # (꼩; 꼩; 꼩; 꼩; 꼩; ) HANGUL SYLLABLE GGYET
+AF2A;AF2A;1101 1168 11C1;AF2A;1101 1168 11C1; # (꼪; 꼪; 꼪; 꼪; 꼪; ) HANGUL SYLLABLE GGYEP
+AF2B;AF2B;1101 1168 11C2;AF2B;1101 1168 11C2; # (꼫; 꼫; 꼫; 꼫; 꼫; ) HANGUL SYLLABLE GGYEH
+AF2C;AF2C;1101 1169;AF2C;1101 1169; # (꼬; 꼬; 꼬; 꼬; 꼬; ) HANGUL SYLLABLE GGO
+AF2D;AF2D;1101 1169 11A8;AF2D;1101 1169 11A8; # (꼭; 꼭; 꼭; 꼭; 꼭; ) HANGUL SYLLABLE GGOG
+AF2E;AF2E;1101 1169 11A9;AF2E;1101 1169 11A9; # (꼮; 꼮; 꼮; 꼮; 꼮; ) HANGUL SYLLABLE GGOGG
+AF2F;AF2F;1101 1169 11AA;AF2F;1101 1169 11AA; # (꼯; 꼯; 꼯; 꼯; 꼯; ) HANGUL SYLLABLE GGOGS
+AF30;AF30;1101 1169 11AB;AF30;1101 1169 11AB; # (꼰; 꼰; 꼰; 꼰; 꼰; ) HANGUL SYLLABLE GGON
+AF31;AF31;1101 1169 11AC;AF31;1101 1169 11AC; # (꼱; 꼱; 꼱; 꼱; 꼱; ) HANGUL SYLLABLE GGONJ
+AF32;AF32;1101 1169 11AD;AF32;1101 1169 11AD; # (꼲; 꼲; 꼲; 꼲; 꼲; ) HANGUL SYLLABLE GGONH
+AF33;AF33;1101 1169 11AE;AF33;1101 1169 11AE; # (꼳; 꼳; 꼳; 꼳; 꼳; ) HANGUL SYLLABLE GGOD
+AF34;AF34;1101 1169 11AF;AF34;1101 1169 11AF; # (꼴; 꼴; 꼴; 꼴; 꼴; ) HANGUL SYLLABLE GGOL
+AF35;AF35;1101 1169 11B0;AF35;1101 1169 11B0; # (꼵; 꼵; 꼵; 꼵; 꼵; ) HANGUL SYLLABLE GGOLG
+AF36;AF36;1101 1169 11B1;AF36;1101 1169 11B1; # (꼶; 꼶; 꼶; 꼶; 꼶; ) HANGUL SYLLABLE GGOLM
+AF37;AF37;1101 1169 11B2;AF37;1101 1169 11B2; # (꼷; 꼷; 꼷; 꼷; 꼷; ) HANGUL SYLLABLE GGOLB
+AF38;AF38;1101 1169 11B3;AF38;1101 1169 11B3; # (꼸; 꼸; 꼸; 꼸; 꼸; ) HANGUL SYLLABLE GGOLS
+AF39;AF39;1101 1169 11B4;AF39;1101 1169 11B4; # (꼹; 꼹; 꼹; 꼹; 꼹; ) HANGUL SYLLABLE GGOLT
+AF3A;AF3A;1101 1169 11B5;AF3A;1101 1169 11B5; # (꼺; 꼺; 꼺; 꼺; 꼺; ) HANGUL SYLLABLE GGOLP
+AF3B;AF3B;1101 1169 11B6;AF3B;1101 1169 11B6; # (꼻; 꼻; 꼻; 꼻; 꼻; ) HANGUL SYLLABLE GGOLH
+AF3C;AF3C;1101 1169 11B7;AF3C;1101 1169 11B7; # (꼼; 꼼; 꼼; 꼼; 꼼; ) HANGUL SYLLABLE GGOM
+AF3D;AF3D;1101 1169 11B8;AF3D;1101 1169 11B8; # (꼽; 꼽; 꼽; 꼽; 꼽; ) HANGUL SYLLABLE GGOB
+AF3E;AF3E;1101 1169 11B9;AF3E;1101 1169 11B9; # (꼾; 꼾; 꼾; 꼾; 꼾; ) HANGUL SYLLABLE GGOBS
+AF3F;AF3F;1101 1169 11BA;AF3F;1101 1169 11BA; # (꼿; 꼿; 꼿; 꼿; 꼿; ) HANGUL SYLLABLE GGOS
+AF40;AF40;1101 1169 11BB;AF40;1101 1169 11BB; # (꽀; 꽀; 꽀; 꽀; 꽀; ) HANGUL SYLLABLE GGOSS
+AF41;AF41;1101 1169 11BC;AF41;1101 1169 11BC; # (꽁; 꽁; 꽁; 꽁; 꽁; ) HANGUL SYLLABLE GGONG
+AF42;AF42;1101 1169 11BD;AF42;1101 1169 11BD; # (꽂; 꽂; 꽂; 꽂; 꽂; ) HANGUL SYLLABLE GGOJ
+AF43;AF43;1101 1169 11BE;AF43;1101 1169 11BE; # (꽃; 꽃; 꽃; 꽃; 꽃; ) HANGUL SYLLABLE GGOC
+AF44;AF44;1101 1169 11BF;AF44;1101 1169 11BF; # (꽄; 꽄; 꽄; 꽄; 꽄; ) HANGUL SYLLABLE GGOK
+AF45;AF45;1101 1169 11C0;AF45;1101 1169 11C0; # (꽅; 꽅; 꽅; 꽅; 꽅; ) HANGUL SYLLABLE GGOT
+AF46;AF46;1101 1169 11C1;AF46;1101 1169 11C1; # (꽆; 꽆; 꽆; 꽆; 꽆; ) HANGUL SYLLABLE GGOP
+AF47;AF47;1101 1169 11C2;AF47;1101 1169 11C2; # (꽇; 꽇; 꽇; 꽇; 꽇; ) HANGUL SYLLABLE GGOH
+AF48;AF48;1101 116A;AF48;1101 116A; # (꽈; 꽈; 꽈; 꽈; 꽈; ) HANGUL SYLLABLE GGWA
+AF49;AF49;1101 116A 11A8;AF49;1101 116A 11A8; # (꽉; 꽉; 꽉; 꽉; 꽉; ) HANGUL SYLLABLE GGWAG
+AF4A;AF4A;1101 116A 11A9;AF4A;1101 116A 11A9; # (꽊; 꽊; 꽊; 꽊; 꽊; ) HANGUL SYLLABLE GGWAGG
+AF4B;AF4B;1101 116A 11AA;AF4B;1101 116A 11AA; # (꽋; 꽋; 꽋; 꽋; 꽋; ) HANGUL SYLLABLE GGWAGS
+AF4C;AF4C;1101 116A 11AB;AF4C;1101 116A 11AB; # (꽌; 꽌; 꽌; 꽌; 꽌; ) HANGUL SYLLABLE GGWAN
+AF4D;AF4D;1101 116A 11AC;AF4D;1101 116A 11AC; # (꽍; 꽍; 꽍; 꽍; 꽍; ) HANGUL SYLLABLE GGWANJ
+AF4E;AF4E;1101 116A 11AD;AF4E;1101 116A 11AD; # (꽎; 꽎; 꽎; 꽎; 꽎; ) HANGUL SYLLABLE GGWANH
+AF4F;AF4F;1101 116A 11AE;AF4F;1101 116A 11AE; # (꽏; 꽏; 꽏; 꽏; 꽏; ) HANGUL SYLLABLE GGWAD
+AF50;AF50;1101 116A 11AF;AF50;1101 116A 11AF; # (꽐; 꽐; 꽐; 꽐; 꽐; ) HANGUL SYLLABLE GGWAL
+AF51;AF51;1101 116A 11B0;AF51;1101 116A 11B0; # (꽑; 꽑; 꽑; 꽑; 꽑; ) HANGUL SYLLABLE GGWALG
+AF52;AF52;1101 116A 11B1;AF52;1101 116A 11B1; # (꽒; 꽒; 꽒; 꽒; 꽒; ) HANGUL SYLLABLE GGWALM
+AF53;AF53;1101 116A 11B2;AF53;1101 116A 11B2; # (꽓; 꽓; 꽓; 꽓; 꽓; ) HANGUL SYLLABLE GGWALB
+AF54;AF54;1101 116A 11B3;AF54;1101 116A 11B3; # (꽔; 꽔; 꽔; 꽔; 꽔; ) HANGUL SYLLABLE GGWALS
+AF55;AF55;1101 116A 11B4;AF55;1101 116A 11B4; # (꽕; 꽕; 꽕; 꽕; 꽕; ) HANGUL SYLLABLE GGWALT
+AF56;AF56;1101 116A 11B5;AF56;1101 116A 11B5; # (꽖; 꽖; 꽖; 꽖; 꽖; ) HANGUL SYLLABLE GGWALP
+AF57;AF57;1101 116A 11B6;AF57;1101 116A 11B6; # (꽗; 꽗; 꽗; 꽗; 꽗; ) HANGUL SYLLABLE GGWALH
+AF58;AF58;1101 116A 11B7;AF58;1101 116A 11B7; # (꽘; 꽘; 꽘; 꽘; 꽘; ) HANGUL SYLLABLE GGWAM
+AF59;AF59;1101 116A 11B8;AF59;1101 116A 11B8; # (꽙; 꽙; 꽙; 꽙; 꽙; ) HANGUL SYLLABLE GGWAB
+AF5A;AF5A;1101 116A 11B9;AF5A;1101 116A 11B9; # (꽚; 꽚; 꽚; 꽚; 꽚; ) HANGUL SYLLABLE GGWABS
+AF5B;AF5B;1101 116A 11BA;AF5B;1101 116A 11BA; # (꽛; 꽛; 꽛; 꽛; 꽛; ) HANGUL SYLLABLE GGWAS
+AF5C;AF5C;1101 116A 11BB;AF5C;1101 116A 11BB; # (꽜; 꽜; 꽜; 꽜; 꽜; ) HANGUL SYLLABLE GGWASS
+AF5D;AF5D;1101 116A 11BC;AF5D;1101 116A 11BC; # (꽝; 꽝; 꽝; 꽝; 꽝; ) HANGUL SYLLABLE GGWANG
+AF5E;AF5E;1101 116A 11BD;AF5E;1101 116A 11BD; # (꽞; 꽞; 꽞; 꽞; 꽞; ) HANGUL SYLLABLE GGWAJ
+AF5F;AF5F;1101 116A 11BE;AF5F;1101 116A 11BE; # (꽟; 꽟; 꽟; 꽟; 꽟; ) HANGUL SYLLABLE GGWAC
+AF60;AF60;1101 116A 11BF;AF60;1101 116A 11BF; # (꽠; 꽠; 꽠; 꽠; 꽠; ) HANGUL SYLLABLE GGWAK
+AF61;AF61;1101 116A 11C0;AF61;1101 116A 11C0; # (꽡; 꽡; 꽡; 꽡; 꽡; ) HANGUL SYLLABLE GGWAT
+AF62;AF62;1101 116A 11C1;AF62;1101 116A 11C1; # (꽢; 꽢; 꽢; 꽢; 꽢; ) HANGUL SYLLABLE GGWAP
+AF63;AF63;1101 116A 11C2;AF63;1101 116A 11C2; # (꽣; 꽣; 꽣; 꽣; 꽣; ) HANGUL SYLLABLE GGWAH
+AF64;AF64;1101 116B;AF64;1101 116B; # (꽤; 꽤; 꽤; 꽤; 꽤; ) HANGUL SYLLABLE GGWAE
+AF65;AF65;1101 116B 11A8;AF65;1101 116B 11A8; # (꽥; 꽥; 꽥; 꽥; 꽥; ) HANGUL SYLLABLE GGWAEG
+AF66;AF66;1101 116B 11A9;AF66;1101 116B 11A9; # (꽦; 꽦; 꽦; 꽦; 꽦; ) HANGUL SYLLABLE GGWAEGG
+AF67;AF67;1101 116B 11AA;AF67;1101 116B 11AA; # (꽧; 꽧; 꽧; 꽧; 꽧; ) HANGUL SYLLABLE GGWAEGS
+AF68;AF68;1101 116B 11AB;AF68;1101 116B 11AB; # (꽨; 꽨; 꽨; 꽨; 꽨; ) HANGUL SYLLABLE GGWAEN
+AF69;AF69;1101 116B 11AC;AF69;1101 116B 11AC; # (꽩; 꽩; 꽩; 꽩; 꽩; ) HANGUL SYLLABLE GGWAENJ
+AF6A;AF6A;1101 116B 11AD;AF6A;1101 116B 11AD; # (꽪; 꽪; 꽪; 꽪; 꽪; ) HANGUL SYLLABLE GGWAENH
+AF6B;AF6B;1101 116B 11AE;AF6B;1101 116B 11AE; # (꽫; 꽫; 꽫; 꽫; 꽫; ) HANGUL SYLLABLE GGWAED
+AF6C;AF6C;1101 116B 11AF;AF6C;1101 116B 11AF; # (꽬; 꽬; 꽬; 꽬; 꽬; ) HANGUL SYLLABLE GGWAEL
+AF6D;AF6D;1101 116B 11B0;AF6D;1101 116B 11B0; # (꽭; 꽭; 꽭; 꽭; 꽭; ) HANGUL SYLLABLE GGWAELG
+AF6E;AF6E;1101 116B 11B1;AF6E;1101 116B 11B1; # (꽮; 꽮; 꽮; 꽮; 꽮; ) HANGUL SYLLABLE GGWAELM
+AF6F;AF6F;1101 116B 11B2;AF6F;1101 116B 11B2; # (꽯; 꽯; 꽯; 꽯; 꽯; ) HANGUL SYLLABLE GGWAELB
+AF70;AF70;1101 116B 11B3;AF70;1101 116B 11B3; # (꽰; 꽰; 꽰; 꽰; 꽰; ) HANGUL SYLLABLE GGWAELS
+AF71;AF71;1101 116B 11B4;AF71;1101 116B 11B4; # (꽱; 꽱; 꽱; 꽱; 꽱; ) HANGUL SYLLABLE GGWAELT
+AF72;AF72;1101 116B 11B5;AF72;1101 116B 11B5; # (꽲; 꽲; 꽲; 꽲; 꽲; ) HANGUL SYLLABLE GGWAELP
+AF73;AF73;1101 116B 11B6;AF73;1101 116B 11B6; # (꽳; 꽳; 꽳; 꽳; 꽳; ) HANGUL SYLLABLE GGWAELH
+AF74;AF74;1101 116B 11B7;AF74;1101 116B 11B7; # (꽴; 꽴; 꽴; 꽴; 꽴; ) HANGUL SYLLABLE GGWAEM
+AF75;AF75;1101 116B 11B8;AF75;1101 116B 11B8; # (꽵; 꽵; 꽵; 꽵; 꽵; ) HANGUL SYLLABLE GGWAEB
+AF76;AF76;1101 116B 11B9;AF76;1101 116B 11B9; # (꽶; 꽶; 꽶; 꽶; 꽶; ) HANGUL SYLLABLE GGWAEBS
+AF77;AF77;1101 116B 11BA;AF77;1101 116B 11BA; # (꽷; 꽷; 꽷; 꽷; 꽷; ) HANGUL SYLLABLE GGWAES
+AF78;AF78;1101 116B 11BB;AF78;1101 116B 11BB; # (꽸; 꽸; 꽸; 꽸; 꽸; ) HANGUL SYLLABLE GGWAESS
+AF79;AF79;1101 116B 11BC;AF79;1101 116B 11BC; # (꽹; 꽹; 꽹; 꽹; 꽹; ) HANGUL SYLLABLE GGWAENG
+AF7A;AF7A;1101 116B 11BD;AF7A;1101 116B 11BD; # (꽺; 꽺; 꽺; 꽺; 꽺; ) HANGUL SYLLABLE GGWAEJ
+AF7B;AF7B;1101 116B 11BE;AF7B;1101 116B 11BE; # (꽻; 꽻; 꽻; 꽻; 꽻; ) HANGUL SYLLABLE GGWAEC
+AF7C;AF7C;1101 116B 11BF;AF7C;1101 116B 11BF; # (꽼; 꽼; 꽼; 꽼; 꽼; ) HANGUL SYLLABLE GGWAEK
+AF7D;AF7D;1101 116B 11C0;AF7D;1101 116B 11C0; # (꽽; 꽽; 꽽; 꽽; 꽽; ) HANGUL SYLLABLE GGWAET
+AF7E;AF7E;1101 116B 11C1;AF7E;1101 116B 11C1; # (꽾; 꽾; 꽾; 꽾; 꽾; ) HANGUL SYLLABLE GGWAEP
+AF7F;AF7F;1101 116B 11C2;AF7F;1101 116B 11C2; # (꽿; 꽿; 꽿; 꽿; 꽿; ) HANGUL SYLLABLE GGWAEH
+AF80;AF80;1101 116C;AF80;1101 116C; # (꾀; 꾀; 꾀; 꾀; 꾀; ) HANGUL SYLLABLE GGOE
+AF81;AF81;1101 116C 11A8;AF81;1101 116C 11A8; # (꾁; 꾁; 꾁; 꾁; 꾁; ) HANGUL SYLLABLE GGOEG
+AF82;AF82;1101 116C 11A9;AF82;1101 116C 11A9; # (꾂; 꾂; 꾂; 꾂; 꾂; ) HANGUL SYLLABLE GGOEGG
+AF83;AF83;1101 116C 11AA;AF83;1101 116C 11AA; # (꾃; 꾃; 꾃; 꾃; 꾃; ) HANGUL SYLLABLE GGOEGS
+AF84;AF84;1101 116C 11AB;AF84;1101 116C 11AB; # (꾄; 꾄; 꾄; 꾄; 꾄; ) HANGUL SYLLABLE GGOEN
+AF85;AF85;1101 116C 11AC;AF85;1101 116C 11AC; # (꾅; 꾅; 꾅; 꾅; 꾅; ) HANGUL SYLLABLE GGOENJ
+AF86;AF86;1101 116C 11AD;AF86;1101 116C 11AD; # (꾆; 꾆; 꾆; 꾆; 꾆; ) HANGUL SYLLABLE GGOENH
+AF87;AF87;1101 116C 11AE;AF87;1101 116C 11AE; # (꾇; 꾇; 꾇; 꾇; 꾇; ) HANGUL SYLLABLE GGOED
+AF88;AF88;1101 116C 11AF;AF88;1101 116C 11AF; # (꾈; 꾈; 꾈; 꾈; 꾈; ) HANGUL SYLLABLE GGOEL
+AF89;AF89;1101 116C 11B0;AF89;1101 116C 11B0; # (꾉; 꾉; 꾉; 꾉; 꾉; ) HANGUL SYLLABLE GGOELG
+AF8A;AF8A;1101 116C 11B1;AF8A;1101 116C 11B1; # (꾊; 꾊; 꾊; 꾊; 꾊; ) HANGUL SYLLABLE GGOELM
+AF8B;AF8B;1101 116C 11B2;AF8B;1101 116C 11B2; # (꾋; 꾋; 꾋; 꾋; 꾋; ) HANGUL SYLLABLE GGOELB
+AF8C;AF8C;1101 116C 11B3;AF8C;1101 116C 11B3; # (꾌; 꾌; 꾌; 꾌; 꾌; ) HANGUL SYLLABLE GGOELS
+AF8D;AF8D;1101 116C 11B4;AF8D;1101 116C 11B4; # (꾍; 꾍; 꾍; 꾍; 꾍; ) HANGUL SYLLABLE GGOELT
+AF8E;AF8E;1101 116C 11B5;AF8E;1101 116C 11B5; # (꾎; 꾎; 꾎; 꾎; 꾎; ) HANGUL SYLLABLE GGOELP
+AF8F;AF8F;1101 116C 11B6;AF8F;1101 116C 11B6; # (꾏; 꾏; 꾏; 꾏; 꾏; ) HANGUL SYLLABLE GGOELH
+AF90;AF90;1101 116C 11B7;AF90;1101 116C 11B7; # (꾐; 꾐; 꾐; 꾐; 꾐; ) HANGUL SYLLABLE GGOEM
+AF91;AF91;1101 116C 11B8;AF91;1101 116C 11B8; # (꾑; 꾑; 꾑; 꾑; 꾑; ) HANGUL SYLLABLE GGOEB
+AF92;AF92;1101 116C 11B9;AF92;1101 116C 11B9; # (꾒; 꾒; 꾒; 꾒; 꾒; ) HANGUL SYLLABLE GGOEBS
+AF93;AF93;1101 116C 11BA;AF93;1101 116C 11BA; # (꾓; 꾓; 꾓; 꾓; 꾓; ) HANGUL SYLLABLE GGOES
+AF94;AF94;1101 116C 11BB;AF94;1101 116C 11BB; # (꾔; 꾔; 꾔; 꾔; 꾔; ) HANGUL SYLLABLE GGOESS
+AF95;AF95;1101 116C 11BC;AF95;1101 116C 11BC; # (꾕; 꾕; 꾕; 꾕; 꾕; ) HANGUL SYLLABLE GGOENG
+AF96;AF96;1101 116C 11BD;AF96;1101 116C 11BD; # (꾖; 꾖; 꾖; 꾖; 꾖; ) HANGUL SYLLABLE GGOEJ
+AF97;AF97;1101 116C 11BE;AF97;1101 116C 11BE; # (꾗; 꾗; 꾗; 꾗; 꾗; ) HANGUL SYLLABLE GGOEC
+AF98;AF98;1101 116C 11BF;AF98;1101 116C 11BF; # (꾘; 꾘; 꾘; 꾘; 꾘; ) HANGUL SYLLABLE GGOEK
+AF99;AF99;1101 116C 11C0;AF99;1101 116C 11C0; # (꾙; 꾙; 꾙; 꾙; 꾙; ) HANGUL SYLLABLE GGOET
+AF9A;AF9A;1101 116C 11C1;AF9A;1101 116C 11C1; # (꾚; 꾚; 꾚; 꾚; 꾚; ) HANGUL SYLLABLE GGOEP
+AF9B;AF9B;1101 116C 11C2;AF9B;1101 116C 11C2; # (꾛; 꾛; 꾛; 꾛; 꾛; ) HANGUL SYLLABLE GGOEH
+AF9C;AF9C;1101 116D;AF9C;1101 116D; # (꾜; 꾜; 꾜; 꾜; 꾜; ) HANGUL SYLLABLE GGYO
+AF9D;AF9D;1101 116D 11A8;AF9D;1101 116D 11A8; # (꾝; 꾝; 꾝; 꾝; 꾝; ) HANGUL SYLLABLE GGYOG
+AF9E;AF9E;1101 116D 11A9;AF9E;1101 116D 11A9; # (꾞; 꾞; 꾞; 꾞; 꾞; ) HANGUL SYLLABLE GGYOGG
+AF9F;AF9F;1101 116D 11AA;AF9F;1101 116D 11AA; # (꾟; 꾟; 꾟; 꾟; 꾟; ) HANGUL SYLLABLE GGYOGS
+AFA0;AFA0;1101 116D 11AB;AFA0;1101 116D 11AB; # (꾠; 꾠; 꾠; 꾠; 꾠; ) HANGUL SYLLABLE GGYON
+AFA1;AFA1;1101 116D 11AC;AFA1;1101 116D 11AC; # (꾡; 꾡; 꾡; 꾡; 꾡; ) HANGUL SYLLABLE GGYONJ
+AFA2;AFA2;1101 116D 11AD;AFA2;1101 116D 11AD; # (꾢; 꾢; 꾢; 꾢; 꾢; ) HANGUL SYLLABLE GGYONH
+AFA3;AFA3;1101 116D 11AE;AFA3;1101 116D 11AE; # (꾣; 꾣; 꾣; 꾣; 꾣; ) HANGUL SYLLABLE GGYOD
+AFA4;AFA4;1101 116D 11AF;AFA4;1101 116D 11AF; # (꾤; 꾤; 꾤; 꾤; 꾤; ) HANGUL SYLLABLE GGYOL
+AFA5;AFA5;1101 116D 11B0;AFA5;1101 116D 11B0; # (꾥; 꾥; 꾥; 꾥; 꾥; ) HANGUL SYLLABLE GGYOLG
+AFA6;AFA6;1101 116D 11B1;AFA6;1101 116D 11B1; # (꾦; 꾦; 꾦; 꾦; 꾦; ) HANGUL SYLLABLE GGYOLM
+AFA7;AFA7;1101 116D 11B2;AFA7;1101 116D 11B2; # (꾧; 꾧; 꾧; 꾧; 꾧; ) HANGUL SYLLABLE GGYOLB
+AFA8;AFA8;1101 116D 11B3;AFA8;1101 116D 11B3; # (꾨; 꾨; 꾨; 꾨; 꾨; ) HANGUL SYLLABLE GGYOLS
+AFA9;AFA9;1101 116D 11B4;AFA9;1101 116D 11B4; # (꾩; 꾩; 꾩; 꾩; 꾩; ) HANGUL SYLLABLE GGYOLT
+AFAA;AFAA;1101 116D 11B5;AFAA;1101 116D 11B5; # (꾪; 꾪; 꾪; 꾪; 꾪; ) HANGUL SYLLABLE GGYOLP
+AFAB;AFAB;1101 116D 11B6;AFAB;1101 116D 11B6; # (꾫; 꾫; 꾫; 꾫; 꾫; ) HANGUL SYLLABLE GGYOLH
+AFAC;AFAC;1101 116D 11B7;AFAC;1101 116D 11B7; # (꾬; 꾬; 꾬; 꾬; 꾬; ) HANGUL SYLLABLE GGYOM
+AFAD;AFAD;1101 116D 11B8;AFAD;1101 116D 11B8; # (꾭; 꾭; 꾭; 꾭; 꾭; ) HANGUL SYLLABLE GGYOB
+AFAE;AFAE;1101 116D 11B9;AFAE;1101 116D 11B9; # (꾮; 꾮; 꾮; 꾮; 꾮; ) HANGUL SYLLABLE GGYOBS
+AFAF;AFAF;1101 116D 11BA;AFAF;1101 116D 11BA; # (꾯; 꾯; 꾯; 꾯; 꾯; ) HANGUL SYLLABLE GGYOS
+AFB0;AFB0;1101 116D 11BB;AFB0;1101 116D 11BB; # (꾰; 꾰; 꾰; 꾰; 꾰; ) HANGUL SYLLABLE GGYOSS
+AFB1;AFB1;1101 116D 11BC;AFB1;1101 116D 11BC; # (꾱; 꾱; 꾱; 꾱; 꾱; ) HANGUL SYLLABLE GGYONG
+AFB2;AFB2;1101 116D 11BD;AFB2;1101 116D 11BD; # (꾲; 꾲; 꾲; 꾲; 꾲; ) HANGUL SYLLABLE GGYOJ
+AFB3;AFB3;1101 116D 11BE;AFB3;1101 116D 11BE; # (꾳; 꾳; 꾳; 꾳; 꾳; ) HANGUL SYLLABLE GGYOC
+AFB4;AFB4;1101 116D 11BF;AFB4;1101 116D 11BF; # (꾴; 꾴; 꾴; 꾴; 꾴; ) HANGUL SYLLABLE GGYOK
+AFB5;AFB5;1101 116D 11C0;AFB5;1101 116D 11C0; # (꾵; 꾵; 꾵; 꾵; 꾵; ) HANGUL SYLLABLE GGYOT
+AFB6;AFB6;1101 116D 11C1;AFB6;1101 116D 11C1; # (꾶; 꾶; 꾶; 꾶; 꾶; ) HANGUL SYLLABLE GGYOP
+AFB7;AFB7;1101 116D 11C2;AFB7;1101 116D 11C2; # (꾷; 꾷; 꾷; 꾷; 꾷; ) HANGUL SYLLABLE GGYOH
+AFB8;AFB8;1101 116E;AFB8;1101 116E; # (꾸; 꾸; 꾸; 꾸; 꾸; ) HANGUL SYLLABLE GGU
+AFB9;AFB9;1101 116E 11A8;AFB9;1101 116E 11A8; # (꾹; 꾹; 꾹; 꾹; 꾹; ) HANGUL SYLLABLE GGUG
+AFBA;AFBA;1101 116E 11A9;AFBA;1101 116E 11A9; # (꾺; 꾺; 꾺; 꾺; 꾺; ) HANGUL SYLLABLE GGUGG
+AFBB;AFBB;1101 116E 11AA;AFBB;1101 116E 11AA; # (꾻; 꾻; 꾻; 꾻; 꾻; ) HANGUL SYLLABLE GGUGS
+AFBC;AFBC;1101 116E 11AB;AFBC;1101 116E 11AB; # (꾼; 꾼; 꾼; 꾼; 꾼; ) HANGUL SYLLABLE GGUN
+AFBD;AFBD;1101 116E 11AC;AFBD;1101 116E 11AC; # (꾽; 꾽; 꾽; 꾽; 꾽; ) HANGUL SYLLABLE GGUNJ
+AFBE;AFBE;1101 116E 11AD;AFBE;1101 116E 11AD; # (꾾; 꾾; 꾾; 꾾; 꾾; ) HANGUL SYLLABLE GGUNH
+AFBF;AFBF;1101 116E 11AE;AFBF;1101 116E 11AE; # (꾿; 꾿; 꾿; 꾿; 꾿; ) HANGUL SYLLABLE GGUD
+AFC0;AFC0;1101 116E 11AF;AFC0;1101 116E 11AF; # (꿀; 꿀; 꿀; 꿀; 꿀; ) HANGUL SYLLABLE GGUL
+AFC1;AFC1;1101 116E 11B0;AFC1;1101 116E 11B0; # (꿁; 꿁; 꿁; 꿁; 꿁; ) HANGUL SYLLABLE GGULG
+AFC2;AFC2;1101 116E 11B1;AFC2;1101 116E 11B1; # (꿂; 꿂; 꿂; 꿂; 꿂; ) HANGUL SYLLABLE GGULM
+AFC3;AFC3;1101 116E 11B2;AFC3;1101 116E 11B2; # (꿃; 꿃; 꿃; 꿃; 꿃; ) HANGUL SYLLABLE GGULB
+AFC4;AFC4;1101 116E 11B3;AFC4;1101 116E 11B3; # (꿄; 꿄; 꿄; 꿄; 꿄; ) HANGUL SYLLABLE GGULS
+AFC5;AFC5;1101 116E 11B4;AFC5;1101 116E 11B4; # (꿅; 꿅; 꿅; 꿅; 꿅; ) HANGUL SYLLABLE GGULT
+AFC6;AFC6;1101 116E 11B5;AFC6;1101 116E 11B5; # (꿆; 꿆; 꿆; 꿆; 꿆; ) HANGUL SYLLABLE GGULP
+AFC7;AFC7;1101 116E 11B6;AFC7;1101 116E 11B6; # (꿇; 꿇; 꿇; 꿇; 꿇; ) HANGUL SYLLABLE GGULH
+AFC8;AFC8;1101 116E 11B7;AFC8;1101 116E 11B7; # (꿈; 꿈; 꿈; 꿈; 꿈; ) HANGUL SYLLABLE GGUM
+AFC9;AFC9;1101 116E 11B8;AFC9;1101 116E 11B8; # (꿉; 꿉; 꿉; 꿉; 꿉; ) HANGUL SYLLABLE GGUB
+AFCA;AFCA;1101 116E 11B9;AFCA;1101 116E 11B9; # (꿊; 꿊; 꿊; 꿊; 꿊; ) HANGUL SYLLABLE GGUBS
+AFCB;AFCB;1101 116E 11BA;AFCB;1101 116E 11BA; # (꿋; 꿋; 꿋; 꿋; 꿋; ) HANGUL SYLLABLE GGUS
+AFCC;AFCC;1101 116E 11BB;AFCC;1101 116E 11BB; # (꿌; 꿌; 꿌; 꿌; 꿌; ) HANGUL SYLLABLE GGUSS
+AFCD;AFCD;1101 116E 11BC;AFCD;1101 116E 11BC; # (꿍; 꿍; 꿍; 꿍; 꿍; ) HANGUL SYLLABLE GGUNG
+AFCE;AFCE;1101 116E 11BD;AFCE;1101 116E 11BD; # (꿎; 꿎; 꿎; 꿎; 꿎; ) HANGUL SYLLABLE GGUJ
+AFCF;AFCF;1101 116E 11BE;AFCF;1101 116E 11BE; # (꿏; 꿏; 꿏; 꿏; 꿏; ) HANGUL SYLLABLE GGUC
+AFD0;AFD0;1101 116E 11BF;AFD0;1101 116E 11BF; # (꿐; 꿐; 꿐; 꿐; 꿐; ) HANGUL SYLLABLE GGUK
+AFD1;AFD1;1101 116E 11C0;AFD1;1101 116E 11C0; # (꿑; 꿑; 꿑; 꿑; 꿑; ) HANGUL SYLLABLE GGUT
+AFD2;AFD2;1101 116E 11C1;AFD2;1101 116E 11C1; # (꿒; 꿒; 꿒; 꿒; 꿒; ) HANGUL SYLLABLE GGUP
+AFD3;AFD3;1101 116E 11C2;AFD3;1101 116E 11C2; # (꿓; 꿓; 꿓; 꿓; 꿓; ) HANGUL SYLLABLE GGUH
+AFD4;AFD4;1101 116F;AFD4;1101 116F; # (꿔; 꿔; 꿔; 꿔; 꿔; ) HANGUL SYLLABLE GGWEO
+AFD5;AFD5;1101 116F 11A8;AFD5;1101 116F 11A8; # (꿕; 꿕; 꿕; 꿕; 꿕; ) HANGUL SYLLABLE GGWEOG
+AFD6;AFD6;1101 116F 11A9;AFD6;1101 116F 11A9; # (꿖; 꿖; 꿖; 꿖; 꿖; ) HANGUL SYLLABLE GGWEOGG
+AFD7;AFD7;1101 116F 11AA;AFD7;1101 116F 11AA; # (꿗; 꿗; 꿗; 꿗; 꿗; ) HANGUL SYLLABLE GGWEOGS
+AFD8;AFD8;1101 116F 11AB;AFD8;1101 116F 11AB; # (꿘; 꿘; 꿘; 꿘; 꿘; ) HANGUL SYLLABLE GGWEON
+AFD9;AFD9;1101 116F 11AC;AFD9;1101 116F 11AC; # (꿙; 꿙; 꿙; 꿙; 꿙; ) HANGUL SYLLABLE GGWEONJ
+AFDA;AFDA;1101 116F 11AD;AFDA;1101 116F 11AD; # (꿚; 꿚; 꿚; 꿚; 꿚; ) HANGUL SYLLABLE GGWEONH
+AFDB;AFDB;1101 116F 11AE;AFDB;1101 116F 11AE; # (꿛; 꿛; 꿛; 꿛; 꿛; ) HANGUL SYLLABLE GGWEOD
+AFDC;AFDC;1101 116F 11AF;AFDC;1101 116F 11AF; # (꿜; 꿜; 꿜; 꿜; 꿜; ) HANGUL SYLLABLE GGWEOL
+AFDD;AFDD;1101 116F 11B0;AFDD;1101 116F 11B0; # (꿝; 꿝; 꿝; 꿝; 꿝; ) HANGUL SYLLABLE GGWEOLG
+AFDE;AFDE;1101 116F 11B1;AFDE;1101 116F 11B1; # (꿞; 꿞; 꿞; 꿞; 꿞; ) HANGUL SYLLABLE GGWEOLM
+AFDF;AFDF;1101 116F 11B2;AFDF;1101 116F 11B2; # (꿟; 꿟; 꿟; 꿟; 꿟; ) HANGUL SYLLABLE GGWEOLB
+AFE0;AFE0;1101 116F 11B3;AFE0;1101 116F 11B3; # (꿠; 꿠; 꿠; 꿠; 꿠; ) HANGUL SYLLABLE GGWEOLS
+AFE1;AFE1;1101 116F 11B4;AFE1;1101 116F 11B4; # (꿡; 꿡; 꿡; 꿡; 꿡; ) HANGUL SYLLABLE GGWEOLT
+AFE2;AFE2;1101 116F 11B5;AFE2;1101 116F 11B5; # (꿢; 꿢; 꿢; 꿢; 꿢; ) HANGUL SYLLABLE GGWEOLP
+AFE3;AFE3;1101 116F 11B6;AFE3;1101 116F 11B6; # (꿣; 꿣; 꿣; 꿣; 꿣; ) HANGUL SYLLABLE GGWEOLH
+AFE4;AFE4;1101 116F 11B7;AFE4;1101 116F 11B7; # (꿤; 꿤; 꿤; 꿤; 꿤; ) HANGUL SYLLABLE GGWEOM
+AFE5;AFE5;1101 116F 11B8;AFE5;1101 116F 11B8; # (꿥; 꿥; 꿥; 꿥; 꿥; ) HANGUL SYLLABLE GGWEOB
+AFE6;AFE6;1101 116F 11B9;AFE6;1101 116F 11B9; # (꿦; 꿦; 꿦; 꿦; 꿦; ) HANGUL SYLLABLE GGWEOBS
+AFE7;AFE7;1101 116F 11BA;AFE7;1101 116F 11BA; # (꿧; 꿧; 꿧; 꿧; 꿧; ) HANGUL SYLLABLE GGWEOS
+AFE8;AFE8;1101 116F 11BB;AFE8;1101 116F 11BB; # (꿨; 꿨; 꿨; 꿨; 꿨; ) HANGUL SYLLABLE GGWEOSS
+AFE9;AFE9;1101 116F 11BC;AFE9;1101 116F 11BC; # (꿩; 꿩; 꿩; 꿩; 꿩; ) HANGUL SYLLABLE GGWEONG
+AFEA;AFEA;1101 116F 11BD;AFEA;1101 116F 11BD; # (꿪; 꿪; 꿪; 꿪; 꿪; ) HANGUL SYLLABLE GGWEOJ
+AFEB;AFEB;1101 116F 11BE;AFEB;1101 116F 11BE; # (꿫; 꿫; 꿫; 꿫; 꿫; ) HANGUL SYLLABLE GGWEOC
+AFEC;AFEC;1101 116F 11BF;AFEC;1101 116F 11BF; # (꿬; 꿬; 꿬; 꿬; 꿬; ) HANGUL SYLLABLE GGWEOK
+AFED;AFED;1101 116F 11C0;AFED;1101 116F 11C0; # (꿭; 꿭; 꿭; 꿭; 꿭; ) HANGUL SYLLABLE GGWEOT
+AFEE;AFEE;1101 116F 11C1;AFEE;1101 116F 11C1; # (꿮; 꿮; 꿮; 꿮; 꿮; ) HANGUL SYLLABLE GGWEOP
+AFEF;AFEF;1101 116F 11C2;AFEF;1101 116F 11C2; # (꿯; 꿯; 꿯; 꿯; 꿯; ) HANGUL SYLLABLE GGWEOH
+AFF0;AFF0;1101 1170;AFF0;1101 1170; # (꿰; 꿰; 꿰; 꿰; 꿰; ) HANGUL SYLLABLE GGWE
+AFF1;AFF1;1101 1170 11A8;AFF1;1101 1170 11A8; # (꿱; 꿱; 꿱; 꿱; 꿱; ) HANGUL SYLLABLE GGWEG
+AFF2;AFF2;1101 1170 11A9;AFF2;1101 1170 11A9; # (꿲; 꿲; 꿲; 꿲; 꿲; ) HANGUL SYLLABLE GGWEGG
+AFF3;AFF3;1101 1170 11AA;AFF3;1101 1170 11AA; # (꿳; 꿳; 꿳; 꿳; 꿳; ) HANGUL SYLLABLE GGWEGS
+AFF4;AFF4;1101 1170 11AB;AFF4;1101 1170 11AB; # (꿴; 꿴; 꿴; 꿴; 꿴; ) HANGUL SYLLABLE GGWEN
+AFF5;AFF5;1101 1170 11AC;AFF5;1101 1170 11AC; # (꿵; 꿵; 꿵; 꿵; 꿵; ) HANGUL SYLLABLE GGWENJ
+AFF6;AFF6;1101 1170 11AD;AFF6;1101 1170 11AD; # (꿶; 꿶; 꿶; 꿶; 꿶; ) HANGUL SYLLABLE GGWENH
+AFF7;AFF7;1101 1170 11AE;AFF7;1101 1170 11AE; # (꿷; 꿷; 꿷; 꿷; 꿷; ) HANGUL SYLLABLE GGWED
+AFF8;AFF8;1101 1170 11AF;AFF8;1101 1170 11AF; # (꿸; 꿸; 꿸; 꿸; 꿸; ) HANGUL SYLLABLE GGWEL
+AFF9;AFF9;1101 1170 11B0;AFF9;1101 1170 11B0; # (꿹; 꿹; 꿹; 꿹; 꿹; ) HANGUL SYLLABLE GGWELG
+AFFA;AFFA;1101 1170 11B1;AFFA;1101 1170 11B1; # (꿺; 꿺; 꿺; 꿺; 꿺; ) HANGUL SYLLABLE GGWELM
+AFFB;AFFB;1101 1170 11B2;AFFB;1101 1170 11B2; # (꿻; 꿻; 꿻; 꿻; 꿻; ) HANGUL SYLLABLE GGWELB
+AFFC;AFFC;1101 1170 11B3;AFFC;1101 1170 11B3; # (꿼; 꿼; 꿼; 꿼; 꿼; ) HANGUL SYLLABLE GGWELS
+AFFD;AFFD;1101 1170 11B4;AFFD;1101 1170 11B4; # (꿽; 꿽; 꿽; 꿽; 꿽; ) HANGUL SYLLABLE GGWELT
+AFFE;AFFE;1101 1170 11B5;AFFE;1101 1170 11B5; # (꿾; 꿾; 꿾; 꿾; 꿾; ) HANGUL SYLLABLE GGWELP
+AFFF;AFFF;1101 1170 11B6;AFFF;1101 1170 11B6; # (꿿; 꿿; 꿿; 꿿; 꿿; ) HANGUL SYLLABLE GGWELH
+B000;B000;1101 1170 11B7;B000;1101 1170 11B7; # (뀀; 뀀; 뀀; 뀀; 뀀; ) HANGUL SYLLABLE GGWEM
+B001;B001;1101 1170 11B8;B001;1101 1170 11B8; # (뀁; 뀁; 뀁; 뀁; 뀁; ) HANGUL SYLLABLE GGWEB
+B002;B002;1101 1170 11B9;B002;1101 1170 11B9; # (뀂; 뀂; 뀂; 뀂; 뀂; ) HANGUL SYLLABLE GGWEBS
+B003;B003;1101 1170 11BA;B003;1101 1170 11BA; # (뀃; 뀃; 뀃; 뀃; 뀃; ) HANGUL SYLLABLE GGWES
+B004;B004;1101 1170 11BB;B004;1101 1170 11BB; # (뀄; 뀄; 뀄; 뀄; 뀄; ) HANGUL SYLLABLE GGWESS
+B005;B005;1101 1170 11BC;B005;1101 1170 11BC; # (뀅; 뀅; 뀅; 뀅; 뀅; ) HANGUL SYLLABLE GGWENG
+B006;B006;1101 1170 11BD;B006;1101 1170 11BD; # (뀆; 뀆; 뀆; 뀆; 뀆; ) HANGUL SYLLABLE GGWEJ
+B007;B007;1101 1170 11BE;B007;1101 1170 11BE; # (뀇; 뀇; 뀇; 뀇; 뀇; ) HANGUL SYLLABLE GGWEC
+B008;B008;1101 1170 11BF;B008;1101 1170 11BF; # (뀈; 뀈; 뀈; 뀈; 뀈; ) HANGUL SYLLABLE GGWEK
+B009;B009;1101 1170 11C0;B009;1101 1170 11C0; # (뀉; 뀉; 뀉; 뀉; 뀉; ) HANGUL SYLLABLE GGWET
+B00A;B00A;1101 1170 11C1;B00A;1101 1170 11C1; # (뀊; 뀊; 뀊; 뀊; 뀊; ) HANGUL SYLLABLE GGWEP
+B00B;B00B;1101 1170 11C2;B00B;1101 1170 11C2; # (뀋; 뀋; 뀋; 뀋; 뀋; ) HANGUL SYLLABLE GGWEH
+B00C;B00C;1101 1171;B00C;1101 1171; # (뀌; 뀌; 뀌; 뀌; 뀌; ) HANGUL SYLLABLE GGWI
+B00D;B00D;1101 1171 11A8;B00D;1101 1171 11A8; # (뀍; 뀍; 뀍; 뀍; 뀍; ) HANGUL SYLLABLE GGWIG
+B00E;B00E;1101 1171 11A9;B00E;1101 1171 11A9; # (뀎; 뀎; 뀎; 뀎; 뀎; ) HANGUL SYLLABLE GGWIGG
+B00F;B00F;1101 1171 11AA;B00F;1101 1171 11AA; # (뀏; 뀏; 뀏; 뀏; 뀏; ) HANGUL SYLLABLE GGWIGS
+B010;B010;1101 1171 11AB;B010;1101 1171 11AB; # (뀐; 뀐; 뀐; 뀐; 뀐; ) HANGUL SYLLABLE GGWIN
+B011;B011;1101 1171 11AC;B011;1101 1171 11AC; # (뀑; 뀑; 뀑; 뀑; 뀑; ) HANGUL SYLLABLE GGWINJ
+B012;B012;1101 1171 11AD;B012;1101 1171 11AD; # (뀒; 뀒; 뀒; 뀒; 뀒; ) HANGUL SYLLABLE GGWINH
+B013;B013;1101 1171 11AE;B013;1101 1171 11AE; # (뀓; 뀓; 뀓; 뀓; 뀓; ) HANGUL SYLLABLE GGWID
+B014;B014;1101 1171 11AF;B014;1101 1171 11AF; # (뀔; 뀔; 뀔; 뀔; 뀔; ) HANGUL SYLLABLE GGWIL
+B015;B015;1101 1171 11B0;B015;1101 1171 11B0; # (뀕; 뀕; 뀕; 뀕; 뀕; ) HANGUL SYLLABLE GGWILG
+B016;B016;1101 1171 11B1;B016;1101 1171 11B1; # (뀖; 뀖; 뀖; 뀖; 뀖; ) HANGUL SYLLABLE GGWILM
+B017;B017;1101 1171 11B2;B017;1101 1171 11B2; # (뀗; 뀗; 뀗; 뀗; 뀗; ) HANGUL SYLLABLE GGWILB
+B018;B018;1101 1171 11B3;B018;1101 1171 11B3; # (뀘; 뀘; 뀘; 뀘; 뀘; ) HANGUL SYLLABLE GGWILS
+B019;B019;1101 1171 11B4;B019;1101 1171 11B4; # (뀙; 뀙; 뀙; 뀙; 뀙; ) HANGUL SYLLABLE GGWILT
+B01A;B01A;1101 1171 11B5;B01A;1101 1171 11B5; # (뀚; 뀚; 뀚; 뀚; 뀚; ) HANGUL SYLLABLE GGWILP
+B01B;B01B;1101 1171 11B6;B01B;1101 1171 11B6; # (뀛; 뀛; 뀛; 뀛; 뀛; ) HANGUL SYLLABLE GGWILH
+B01C;B01C;1101 1171 11B7;B01C;1101 1171 11B7; # (뀜; 뀜; 뀜; 뀜; 뀜; ) HANGUL SYLLABLE GGWIM
+B01D;B01D;1101 1171 11B8;B01D;1101 1171 11B8; # (뀝; 뀝; 뀝; 뀝; 뀝; ) HANGUL SYLLABLE GGWIB
+B01E;B01E;1101 1171 11B9;B01E;1101 1171 11B9; # (뀞; 뀞; 뀞; 뀞; 뀞; ) HANGUL SYLLABLE GGWIBS
+B01F;B01F;1101 1171 11BA;B01F;1101 1171 11BA; # (뀟; 뀟; 뀟; 뀟; 뀟; ) HANGUL SYLLABLE GGWIS
+B020;B020;1101 1171 11BB;B020;1101 1171 11BB; # (뀠; 뀠; 뀠; 뀠; 뀠; ) HANGUL SYLLABLE GGWISS
+B021;B021;1101 1171 11BC;B021;1101 1171 11BC; # (뀡; 뀡; 뀡; 뀡; 뀡; ) HANGUL SYLLABLE GGWING
+B022;B022;1101 1171 11BD;B022;1101 1171 11BD; # (뀢; 뀢; 뀢; 뀢; 뀢; ) HANGUL SYLLABLE GGWIJ
+B023;B023;1101 1171 11BE;B023;1101 1171 11BE; # (뀣; 뀣; 뀣; 뀣; 뀣; ) HANGUL SYLLABLE GGWIC
+B024;B024;1101 1171 11BF;B024;1101 1171 11BF; # (뀤; 뀤; 뀤; 뀤; 뀤; ) HANGUL SYLLABLE GGWIK
+B025;B025;1101 1171 11C0;B025;1101 1171 11C0; # (뀥; 뀥; 뀥; 뀥; 뀥; ) HANGUL SYLLABLE GGWIT
+B026;B026;1101 1171 11C1;B026;1101 1171 11C1; # (뀦; 뀦; 뀦; 뀦; 뀦; ) HANGUL SYLLABLE GGWIP
+B027;B027;1101 1171 11C2;B027;1101 1171 11C2; # (뀧; 뀧; 뀧; 뀧; 뀧; ) HANGUL SYLLABLE GGWIH
+B028;B028;1101 1172;B028;1101 1172; # (뀨; 뀨; 뀨; 뀨; 뀨; ) HANGUL SYLLABLE GGYU
+B029;B029;1101 1172 11A8;B029;1101 1172 11A8; # (뀩; 뀩; 뀩; 뀩; 뀩; ) HANGUL SYLLABLE GGYUG
+B02A;B02A;1101 1172 11A9;B02A;1101 1172 11A9; # (뀪; 뀪; 뀪; 뀪; 뀪; ) HANGUL SYLLABLE GGYUGG
+B02B;B02B;1101 1172 11AA;B02B;1101 1172 11AA; # (뀫; 뀫; 뀫; 뀫; 뀫; ) HANGUL SYLLABLE GGYUGS
+B02C;B02C;1101 1172 11AB;B02C;1101 1172 11AB; # (뀬; 뀬; 뀬; 뀬; 뀬; ) HANGUL SYLLABLE GGYUN
+B02D;B02D;1101 1172 11AC;B02D;1101 1172 11AC; # (뀭; 뀭; 뀭; 뀭; 뀭; ) HANGUL SYLLABLE GGYUNJ
+B02E;B02E;1101 1172 11AD;B02E;1101 1172 11AD; # (뀮; 뀮; 뀮; 뀮; 뀮; ) HANGUL SYLLABLE GGYUNH
+B02F;B02F;1101 1172 11AE;B02F;1101 1172 11AE; # (뀯; 뀯; 뀯; 뀯; 뀯; ) HANGUL SYLLABLE GGYUD
+B030;B030;1101 1172 11AF;B030;1101 1172 11AF; # (뀰; 뀰; 뀰; 뀰; 뀰; ) HANGUL SYLLABLE GGYUL
+B031;B031;1101 1172 11B0;B031;1101 1172 11B0; # (뀱; 뀱; 뀱; 뀱; 뀱; ) HANGUL SYLLABLE GGYULG
+B032;B032;1101 1172 11B1;B032;1101 1172 11B1; # (뀲; 뀲; 뀲; 뀲; 뀲; ) HANGUL SYLLABLE GGYULM
+B033;B033;1101 1172 11B2;B033;1101 1172 11B2; # (뀳; 뀳; 뀳; 뀳; 뀳; ) HANGUL SYLLABLE GGYULB
+B034;B034;1101 1172 11B3;B034;1101 1172 11B3; # (뀴; 뀴; 뀴; 뀴; 뀴; ) HANGUL SYLLABLE GGYULS
+B035;B035;1101 1172 11B4;B035;1101 1172 11B4; # (뀵; 뀵; 뀵; 뀵; 뀵; ) HANGUL SYLLABLE GGYULT
+B036;B036;1101 1172 11B5;B036;1101 1172 11B5; # (뀶; 뀶; 뀶; 뀶; 뀶; ) HANGUL SYLLABLE GGYULP
+B037;B037;1101 1172 11B6;B037;1101 1172 11B6; # (뀷; 뀷; 뀷; 뀷; 뀷; ) HANGUL SYLLABLE GGYULH
+B038;B038;1101 1172 11B7;B038;1101 1172 11B7; # (뀸; 뀸; 뀸; 뀸; 뀸; ) HANGUL SYLLABLE GGYUM
+B039;B039;1101 1172 11B8;B039;1101 1172 11B8; # (뀹; 뀹; 뀹; 뀹; 뀹; ) HANGUL SYLLABLE GGYUB
+B03A;B03A;1101 1172 11B9;B03A;1101 1172 11B9; # (뀺; 뀺; 뀺; 뀺; 뀺; ) HANGUL SYLLABLE GGYUBS
+B03B;B03B;1101 1172 11BA;B03B;1101 1172 11BA; # (뀻; 뀻; 뀻; 뀻; 뀻; ) HANGUL SYLLABLE GGYUS
+B03C;B03C;1101 1172 11BB;B03C;1101 1172 11BB; # (뀼; 뀼; 뀼; 뀼; 뀼; ) HANGUL SYLLABLE GGYUSS
+B03D;B03D;1101 1172 11BC;B03D;1101 1172 11BC; # (뀽; 뀽; 뀽; 뀽; 뀽; ) HANGUL SYLLABLE GGYUNG
+B03E;B03E;1101 1172 11BD;B03E;1101 1172 11BD; # (뀾; 뀾; 뀾; 뀾; 뀾; ) HANGUL SYLLABLE GGYUJ
+B03F;B03F;1101 1172 11BE;B03F;1101 1172 11BE; # (뀿; 뀿; 뀿; 뀿; 뀿; ) HANGUL SYLLABLE GGYUC
+B040;B040;1101 1172 11BF;B040;1101 1172 11BF; # (끀; 끀; 끀; 끀; 끀; ) HANGUL SYLLABLE GGYUK
+B041;B041;1101 1172 11C0;B041;1101 1172 11C0; # (끁; 끁; 끁; 끁; 끁; ) HANGUL SYLLABLE GGYUT
+B042;B042;1101 1172 11C1;B042;1101 1172 11C1; # (끂; 끂; 끂; 끂; 끂; ) HANGUL SYLLABLE GGYUP
+B043;B043;1101 1172 11C2;B043;1101 1172 11C2; # (끃; 끃; 끃; 끃; 끃; ) HANGUL SYLLABLE GGYUH
+B044;B044;1101 1173;B044;1101 1173; # (끄; 끄; 끄; 끄; 끄; ) HANGUL SYLLABLE GGEU
+B045;B045;1101 1173 11A8;B045;1101 1173 11A8; # (끅; 끅; 끅; 끅; 끅; ) HANGUL SYLLABLE GGEUG
+B046;B046;1101 1173 11A9;B046;1101 1173 11A9; # (끆; 끆; 끆; 끆; 끆; ) HANGUL SYLLABLE GGEUGG
+B047;B047;1101 1173 11AA;B047;1101 1173 11AA; # (끇; 끇; 끇; 끇; 끇; ) HANGUL SYLLABLE GGEUGS
+B048;B048;1101 1173 11AB;B048;1101 1173 11AB; # (끈; 끈; 끈; 끈; 끈; ) HANGUL SYLLABLE GGEUN
+B049;B049;1101 1173 11AC;B049;1101 1173 11AC; # (끉; 끉; 끉; 끉; 끉; ) HANGUL SYLLABLE GGEUNJ
+B04A;B04A;1101 1173 11AD;B04A;1101 1173 11AD; # (끊; 끊; 끊; 끊; 끊; ) HANGUL SYLLABLE GGEUNH
+B04B;B04B;1101 1173 11AE;B04B;1101 1173 11AE; # (끋; 끋; 끋; 끋; 끋; ) HANGUL SYLLABLE GGEUD
+B04C;B04C;1101 1173 11AF;B04C;1101 1173 11AF; # (끌; 끌; 끌; 끌; 끌; ) HANGUL SYLLABLE GGEUL
+B04D;B04D;1101 1173 11B0;B04D;1101 1173 11B0; # (끍; 끍; 끍; 끍; 끍; ) HANGUL SYLLABLE GGEULG
+B04E;B04E;1101 1173 11B1;B04E;1101 1173 11B1; # (끎; 끎; 끎; 끎; 끎; ) HANGUL SYLLABLE GGEULM
+B04F;B04F;1101 1173 11B2;B04F;1101 1173 11B2; # (끏; 끏; 끏; 끏; 끏; ) HANGUL SYLLABLE GGEULB
+B050;B050;1101 1173 11B3;B050;1101 1173 11B3; # (끐; 끐; 끐; 끐; 끐; ) HANGUL SYLLABLE GGEULS
+B051;B051;1101 1173 11B4;B051;1101 1173 11B4; # (끑; 끑; 끑; 끑; 끑; ) HANGUL SYLLABLE GGEULT
+B052;B052;1101 1173 11B5;B052;1101 1173 11B5; # (끒; 끒; 끒; 끒; 끒; ) HANGUL SYLLABLE GGEULP
+B053;B053;1101 1173 11B6;B053;1101 1173 11B6; # (끓; 끓; 끓; 끓; 끓; ) HANGUL SYLLABLE GGEULH
+B054;B054;1101 1173 11B7;B054;1101 1173 11B7; # (끔; 끔; 끔; 끔; 끔; ) HANGUL SYLLABLE GGEUM
+B055;B055;1101 1173 11B8;B055;1101 1173 11B8; # (끕; 끕; 끕; 끕; 끕; ) HANGUL SYLLABLE GGEUB
+B056;B056;1101 1173 11B9;B056;1101 1173 11B9; # (끖; 끖; 끖; 끖; 끖; ) HANGUL SYLLABLE GGEUBS
+B057;B057;1101 1173 11BA;B057;1101 1173 11BA; # (끗; 끗; 끗; 끗; 끗; ) HANGUL SYLLABLE GGEUS
+B058;B058;1101 1173 11BB;B058;1101 1173 11BB; # (끘; 끘; 끘; 끘; 끘; ) HANGUL SYLLABLE GGEUSS
+B059;B059;1101 1173 11BC;B059;1101 1173 11BC; # (끙; 끙; 끙; 끙; 끙; ) HANGUL SYLLABLE GGEUNG
+B05A;B05A;1101 1173 11BD;B05A;1101 1173 11BD; # (끚; 끚; 끚; 끚; 끚; ) HANGUL SYLLABLE GGEUJ
+B05B;B05B;1101 1173 11BE;B05B;1101 1173 11BE; # (끛; 끛; 끛; 끛; 끛; ) HANGUL SYLLABLE GGEUC
+B05C;B05C;1101 1173 11BF;B05C;1101 1173 11BF; # (끜; 끜; 끜; 끜; 끜; ) HANGUL SYLLABLE GGEUK
+B05D;B05D;1101 1173 11C0;B05D;1101 1173 11C0; # (끝; 끝; 끝; 끝; 끝; ) HANGUL SYLLABLE GGEUT
+B05E;B05E;1101 1173 11C1;B05E;1101 1173 11C1; # (끞; 끞; 끞; 끞; 끞; ) HANGUL SYLLABLE GGEUP
+B05F;B05F;1101 1173 11C2;B05F;1101 1173 11C2; # (끟; 끟; 끟; 끟; 끟; ) HANGUL SYLLABLE GGEUH
+B060;B060;1101 1174;B060;1101 1174; # (끠; 끠; 끠; 끠; 끠; ) HANGUL SYLLABLE GGYI
+B061;B061;1101 1174 11A8;B061;1101 1174 11A8; # (끡; 끡; 끡; 끡; 끡; ) HANGUL SYLLABLE GGYIG
+B062;B062;1101 1174 11A9;B062;1101 1174 11A9; # (끢; 끢; 끢; 끢; 끢; ) HANGUL SYLLABLE GGYIGG
+B063;B063;1101 1174 11AA;B063;1101 1174 11AA; # (끣; 끣; 끣; 끣; 끣; ) HANGUL SYLLABLE GGYIGS
+B064;B064;1101 1174 11AB;B064;1101 1174 11AB; # (끤; 끤; 끤; 끤; 끤; ) HANGUL SYLLABLE GGYIN
+B065;B065;1101 1174 11AC;B065;1101 1174 11AC; # (끥; 끥; 끥; 끥; 끥; ) HANGUL SYLLABLE GGYINJ
+B066;B066;1101 1174 11AD;B066;1101 1174 11AD; # (끦; 끦; 끦; 끦; 끦; ) HANGUL SYLLABLE GGYINH
+B067;B067;1101 1174 11AE;B067;1101 1174 11AE; # (끧; 끧; 끧; 끧; 끧; ) HANGUL SYLLABLE GGYID
+B068;B068;1101 1174 11AF;B068;1101 1174 11AF; # (끨; 끨; 끨; 끨; 끨; ) HANGUL SYLLABLE GGYIL
+B069;B069;1101 1174 11B0;B069;1101 1174 11B0; # (끩; 끩; 끩; 끩; 끩; ) HANGUL SYLLABLE GGYILG
+B06A;B06A;1101 1174 11B1;B06A;1101 1174 11B1; # (끪; 끪; 끪; 끪; 끪; ) HANGUL SYLLABLE GGYILM
+B06B;B06B;1101 1174 11B2;B06B;1101 1174 11B2; # (끫; 끫; 끫; 끫; 끫; ) HANGUL SYLLABLE GGYILB
+B06C;B06C;1101 1174 11B3;B06C;1101 1174 11B3; # (끬; 끬; 끬; 끬; 끬; ) HANGUL SYLLABLE GGYILS
+B06D;B06D;1101 1174 11B4;B06D;1101 1174 11B4; # (끭; 끭; 끭; 끭; 끭; ) HANGUL SYLLABLE GGYILT
+B06E;B06E;1101 1174 11B5;B06E;1101 1174 11B5; # (끮; 끮; 끮; 끮; 끮; ) HANGUL SYLLABLE GGYILP
+B06F;B06F;1101 1174 11B6;B06F;1101 1174 11B6; # (끯; 끯; 끯; 끯; 끯; ) HANGUL SYLLABLE GGYILH
+B070;B070;1101 1174 11B7;B070;1101 1174 11B7; # (끰; 끰; 끰; 끰; 끰; ) HANGUL SYLLABLE GGYIM
+B071;B071;1101 1174 11B8;B071;1101 1174 11B8; # (끱; 끱; 끱; 끱; 끱; ) HANGUL SYLLABLE GGYIB
+B072;B072;1101 1174 11B9;B072;1101 1174 11B9; # (끲; 끲; 끲; 끲; 끲; ) HANGUL SYLLABLE GGYIBS
+B073;B073;1101 1174 11BA;B073;1101 1174 11BA; # (끳; 끳; 끳; 끳; 끳; ) HANGUL SYLLABLE GGYIS
+B074;B074;1101 1174 11BB;B074;1101 1174 11BB; # (끴; 끴; 끴; 끴; 끴; ) HANGUL SYLLABLE GGYISS
+B075;B075;1101 1174 11BC;B075;1101 1174 11BC; # (끵; 끵; 끵; 끵; 끵; ) HANGUL SYLLABLE GGYING
+B076;B076;1101 1174 11BD;B076;1101 1174 11BD; # (끶; 끶; 끶; 끶; 끶; ) HANGUL SYLLABLE GGYIJ
+B077;B077;1101 1174 11BE;B077;1101 1174 11BE; # (끷; 끷; 끷; 끷; 끷; ) HANGUL SYLLABLE GGYIC
+B078;B078;1101 1174 11BF;B078;1101 1174 11BF; # (끸; 끸; 끸; 끸; 끸; ) HANGUL SYLLABLE GGYIK
+B079;B079;1101 1174 11C0;B079;1101 1174 11C0; # (끹; 끹; 끹; 끹; 끹; ) HANGUL SYLLABLE GGYIT
+B07A;B07A;1101 1174 11C1;B07A;1101 1174 11C1; # (끺; 끺; 끺; 끺; 끺; ) HANGUL SYLLABLE GGYIP
+B07B;B07B;1101 1174 11C2;B07B;1101 1174 11C2; # (끻; 끻; 끻; 끻; 끻; ) HANGUL SYLLABLE GGYIH
+B07C;B07C;1101 1175;B07C;1101 1175; # (끼; 끼; 끼; 끼; 끼; ) HANGUL SYLLABLE GGI
+B07D;B07D;1101 1175 11A8;B07D;1101 1175 11A8; # (끽; 끽; 끽; 끽; 끽; ) HANGUL SYLLABLE GGIG
+B07E;B07E;1101 1175 11A9;B07E;1101 1175 11A9; # (끾; 끾; 끾; 끾; 끾; ) HANGUL SYLLABLE GGIGG
+B07F;B07F;1101 1175 11AA;B07F;1101 1175 11AA; # (끿; 끿; 끿; 끿; 끿; ) HANGUL SYLLABLE GGIGS
+B080;B080;1101 1175 11AB;B080;1101 1175 11AB; # (낀; 낀; 낀; 낀; 낀; ) HANGUL SYLLABLE GGIN
+B081;B081;1101 1175 11AC;B081;1101 1175 11AC; # (낁; 낁; 낁; 낁; 낁; ) HANGUL SYLLABLE GGINJ
+B082;B082;1101 1175 11AD;B082;1101 1175 11AD; # (낂; 낂; 낂; 낂; 낂; ) HANGUL SYLLABLE GGINH
+B083;B083;1101 1175 11AE;B083;1101 1175 11AE; # (낃; 낃; 낃; 낃; 낃; ) HANGUL SYLLABLE GGID
+B084;B084;1101 1175 11AF;B084;1101 1175 11AF; # (낄; 낄; 낄; 낄; 낄; ) HANGUL SYLLABLE GGIL
+B085;B085;1101 1175 11B0;B085;1101 1175 11B0; # (낅; 낅; 낅; 낅; 낅; ) HANGUL SYLLABLE GGILG
+B086;B086;1101 1175 11B1;B086;1101 1175 11B1; # (낆; 낆; 낆; 낆; 낆; ) HANGUL SYLLABLE GGILM
+B087;B087;1101 1175 11B2;B087;1101 1175 11B2; # (낇; 낇; 낇; 낇; 낇; ) HANGUL SYLLABLE GGILB
+B088;B088;1101 1175 11B3;B088;1101 1175 11B3; # (낈; 낈; 낈; 낈; 낈; ) HANGUL SYLLABLE GGILS
+B089;B089;1101 1175 11B4;B089;1101 1175 11B4; # (낉; 낉; 낉; 낉; 낉; ) HANGUL SYLLABLE GGILT
+B08A;B08A;1101 1175 11B5;B08A;1101 1175 11B5; # (낊; 낊; 낊; 낊; 낊; ) HANGUL SYLLABLE GGILP
+B08B;B08B;1101 1175 11B6;B08B;1101 1175 11B6; # (낋; 낋; 낋; 낋; 낋; ) HANGUL SYLLABLE GGILH
+B08C;B08C;1101 1175 11B7;B08C;1101 1175 11B7; # (낌; 낌; 낌; 낌; 낌; ) HANGUL SYLLABLE GGIM
+B08D;B08D;1101 1175 11B8;B08D;1101 1175 11B8; # (낍; 낍; 낍; 낍; 낍; ) HANGUL SYLLABLE GGIB
+B08E;B08E;1101 1175 11B9;B08E;1101 1175 11B9; # (낎; 낎; 낎; 낎; 낎; ) HANGUL SYLLABLE GGIBS
+B08F;B08F;1101 1175 11BA;B08F;1101 1175 11BA; # (낏; 낏; 낏; 낏; 낏; ) HANGUL SYLLABLE GGIS
+B090;B090;1101 1175 11BB;B090;1101 1175 11BB; # (낐; 낐; 낐; 낐; 낐; ) HANGUL SYLLABLE GGISS
+B091;B091;1101 1175 11BC;B091;1101 1175 11BC; # (낑; 낑; 낑; 낑; 낑; ) HANGUL SYLLABLE GGING
+B092;B092;1101 1175 11BD;B092;1101 1175 11BD; # (낒; 낒; 낒; 낒; 낒; ) HANGUL SYLLABLE GGIJ
+B093;B093;1101 1175 11BE;B093;1101 1175 11BE; # (낓; 낓; 낓; 낓; 낓; ) HANGUL SYLLABLE GGIC
+B094;B094;1101 1175 11BF;B094;1101 1175 11BF; # (낔; 낔; 낔; 낔; 낔; ) HANGUL SYLLABLE GGIK
+B095;B095;1101 1175 11C0;B095;1101 1175 11C0; # (낕; 낕; 낕; 낕; 낕; ) HANGUL SYLLABLE GGIT
+B096;B096;1101 1175 11C1;B096;1101 1175 11C1; # (낖; 낖; 낖; 낖; 낖; ) HANGUL SYLLABLE GGIP
+B097;B097;1101 1175 11C2;B097;1101 1175 11C2; # (낗; 낗; 낗; 낗; 낗; ) HANGUL SYLLABLE GGIH
+B098;B098;1102 1161;B098;1102 1161; # (나; 나; 나; 나; 나; ) HANGUL SYLLABLE NA
+B099;B099;1102 1161 11A8;B099;1102 1161 11A8; # (낙; 낙; 낙; 낙; 낙; ) HANGUL SYLLABLE NAG
+B09A;B09A;1102 1161 11A9;B09A;1102 1161 11A9; # (낚; 낚; 낚; 낚; 낚; ) HANGUL SYLLABLE NAGG
+B09B;B09B;1102 1161 11AA;B09B;1102 1161 11AA; # (낛; 낛; 낛; 낛; 낛; ) HANGUL SYLLABLE NAGS
+B09C;B09C;1102 1161 11AB;B09C;1102 1161 11AB; # (난; 난; 난; 난; 난; ) HANGUL SYLLABLE NAN
+B09D;B09D;1102 1161 11AC;B09D;1102 1161 11AC; # (낝; 낝; 낝; 낝; 낝; ) HANGUL SYLLABLE NANJ
+B09E;B09E;1102 1161 11AD;B09E;1102 1161 11AD; # (낞; 낞; 낞; 낞; 낞; ) HANGUL SYLLABLE NANH
+B09F;B09F;1102 1161 11AE;B09F;1102 1161 11AE; # (낟; 낟; 낟; 낟; 낟; ) HANGUL SYLLABLE NAD
+B0A0;B0A0;1102 1161 11AF;B0A0;1102 1161 11AF; # (날; 날; 날; 날; 날; ) HANGUL SYLLABLE NAL
+B0A1;B0A1;1102 1161 11B0;B0A1;1102 1161 11B0; # (낡; 낡; 낡; 낡; 낡; ) HANGUL SYLLABLE NALG
+B0A2;B0A2;1102 1161 11B1;B0A2;1102 1161 11B1; # (낢; 낢; 낢; 낢; 낢; ) HANGUL SYLLABLE NALM
+B0A3;B0A3;1102 1161 11B2;B0A3;1102 1161 11B2; # (낣; 낣; 낣; 낣; 낣; ) HANGUL SYLLABLE NALB
+B0A4;B0A4;1102 1161 11B3;B0A4;1102 1161 11B3; # (낤; 낤; 낤; 낤; 낤; ) HANGUL SYLLABLE NALS
+B0A5;B0A5;1102 1161 11B4;B0A5;1102 1161 11B4; # (낥; 낥; 낥; 낥; 낥; ) HANGUL SYLLABLE NALT
+B0A6;B0A6;1102 1161 11B5;B0A6;1102 1161 11B5; # (낦; 낦; 낦; 낦; 낦; ) HANGUL SYLLABLE NALP
+B0A7;B0A7;1102 1161 11B6;B0A7;1102 1161 11B6; # (낧; 낧; 낧; 낧; 낧; ) HANGUL SYLLABLE NALH
+B0A8;B0A8;1102 1161 11B7;B0A8;1102 1161 11B7; # (남; 남; 남; 남; 남; ) HANGUL SYLLABLE NAM
+B0A9;B0A9;1102 1161 11B8;B0A9;1102 1161 11B8; # (납; 납; 납; 납; 납; ) HANGUL SYLLABLE NAB
+B0AA;B0AA;1102 1161 11B9;B0AA;1102 1161 11B9; # (낪; 낪; 낪; 낪; 낪; ) HANGUL SYLLABLE NABS
+B0AB;B0AB;1102 1161 11BA;B0AB;1102 1161 11BA; # (낫; 낫; 낫; 낫; 낫; ) HANGUL SYLLABLE NAS
+B0AC;B0AC;1102 1161 11BB;B0AC;1102 1161 11BB; # (났; 났; 났; 났; 났; ) HANGUL SYLLABLE NASS
+B0AD;B0AD;1102 1161 11BC;B0AD;1102 1161 11BC; # (낭; 낭; 낭; 낭; 낭; ) HANGUL SYLLABLE NANG
+B0AE;B0AE;1102 1161 11BD;B0AE;1102 1161 11BD; # (낮; 낮; 낮; 낮; 낮; ) HANGUL SYLLABLE NAJ
+B0AF;B0AF;1102 1161 11BE;B0AF;1102 1161 11BE; # (낯; 낯; 낯; 낯; 낯; ) HANGUL SYLLABLE NAC
+B0B0;B0B0;1102 1161 11BF;B0B0;1102 1161 11BF; # (낰; 낰; 낰; 낰; 낰; ) HANGUL SYLLABLE NAK
+B0B1;B0B1;1102 1161 11C0;B0B1;1102 1161 11C0; # (낱; 낱; 낱; 낱; 낱; ) HANGUL SYLLABLE NAT
+B0B2;B0B2;1102 1161 11C1;B0B2;1102 1161 11C1; # (낲; 낲; 낲; 낲; 낲; ) HANGUL SYLLABLE NAP
+B0B3;B0B3;1102 1161 11C2;B0B3;1102 1161 11C2; # (낳; 낳; 낳; 낳; 낳; ) HANGUL SYLLABLE NAH
+B0B4;B0B4;1102 1162;B0B4;1102 1162; # (내; 내; 내; 내; 내; ) HANGUL SYLLABLE NAE
+B0B5;B0B5;1102 1162 11A8;B0B5;1102 1162 11A8; # (낵; 낵; 낵; 낵; 낵; ) HANGUL SYLLABLE NAEG
+B0B6;B0B6;1102 1162 11A9;B0B6;1102 1162 11A9; # (낶; 낶; 낶; 낶; 낶; ) HANGUL SYLLABLE NAEGG
+B0B7;B0B7;1102 1162 11AA;B0B7;1102 1162 11AA; # (낷; 낷; 낷; 낷; 낷; ) HANGUL SYLLABLE NAEGS
+B0B8;B0B8;1102 1162 11AB;B0B8;1102 1162 11AB; # (낸; 낸; 낸; 낸; 낸; ) HANGUL SYLLABLE NAEN
+B0B9;B0B9;1102 1162 11AC;B0B9;1102 1162 11AC; # (낹; 낹; 낹; 낹; 낹; ) HANGUL SYLLABLE NAENJ
+B0BA;B0BA;1102 1162 11AD;B0BA;1102 1162 11AD; # (낺; 낺; 낺; 낺; 낺; ) HANGUL SYLLABLE NAENH
+B0BB;B0BB;1102 1162 11AE;B0BB;1102 1162 11AE; # (낻; 낻; 낻; 낻; 낻; ) HANGUL SYLLABLE NAED
+B0BC;B0BC;1102 1162 11AF;B0BC;1102 1162 11AF; # (낼; 낼; 낼; 낼; 낼; ) HANGUL SYLLABLE NAEL
+B0BD;B0BD;1102 1162 11B0;B0BD;1102 1162 11B0; # (낽; 낽; 낽; 낽; 낽; ) HANGUL SYLLABLE NAELG
+B0BE;B0BE;1102 1162 11B1;B0BE;1102 1162 11B1; # (낾; 낾; 낾; 낾; 낾; ) HANGUL SYLLABLE NAELM
+B0BF;B0BF;1102 1162 11B2;B0BF;1102 1162 11B2; # (낿; 낿; 낿; 낿; 낿; ) HANGUL SYLLABLE NAELB
+B0C0;B0C0;1102 1162 11B3;B0C0;1102 1162 11B3; # (냀; 냀; 냀; 냀; 냀; ) HANGUL SYLLABLE NAELS
+B0C1;B0C1;1102 1162 11B4;B0C1;1102 1162 11B4; # (냁; 냁; 냁; 냁; 냁; ) HANGUL SYLLABLE NAELT
+B0C2;B0C2;1102 1162 11B5;B0C2;1102 1162 11B5; # (냂; 냂; 냂; 냂; 냂; ) HANGUL SYLLABLE NAELP
+B0C3;B0C3;1102 1162 11B6;B0C3;1102 1162 11B6; # (냃; 냃; 냃; 냃; 냃; ) HANGUL SYLLABLE NAELH
+B0C4;B0C4;1102 1162 11B7;B0C4;1102 1162 11B7; # (냄; 냄; 냄; 냄; 냄; ) HANGUL SYLLABLE NAEM
+B0C5;B0C5;1102 1162 11B8;B0C5;1102 1162 11B8; # (냅; 냅; 냅; 냅; 냅; ) HANGUL SYLLABLE NAEB
+B0C6;B0C6;1102 1162 11B9;B0C6;1102 1162 11B9; # (냆; 냆; 냆; 냆; 냆; ) HANGUL SYLLABLE NAEBS
+B0C7;B0C7;1102 1162 11BA;B0C7;1102 1162 11BA; # (냇; 냇; 냇; 냇; 냇; ) HANGUL SYLLABLE NAES
+B0C8;B0C8;1102 1162 11BB;B0C8;1102 1162 11BB; # (냈; 냈; 냈; 냈; 냈; ) HANGUL SYLLABLE NAESS
+B0C9;B0C9;1102 1162 11BC;B0C9;1102 1162 11BC; # (냉; 냉; 냉; 냉; 냉; ) HANGUL SYLLABLE NAENG
+B0CA;B0CA;1102 1162 11BD;B0CA;1102 1162 11BD; # (냊; 냊; 냊; 냊; 냊; ) HANGUL SYLLABLE NAEJ
+B0CB;B0CB;1102 1162 11BE;B0CB;1102 1162 11BE; # (냋; 냋; 냋; 냋; 냋; ) HANGUL SYLLABLE NAEC
+B0CC;B0CC;1102 1162 11BF;B0CC;1102 1162 11BF; # (냌; 냌; 냌; 냌; 냌; ) HANGUL SYLLABLE NAEK
+B0CD;B0CD;1102 1162 11C0;B0CD;1102 1162 11C0; # (냍; 냍; 냍; 냍; 냍; ) HANGUL SYLLABLE NAET
+B0CE;B0CE;1102 1162 11C1;B0CE;1102 1162 11C1; # (냎; 냎; 냎; 냎; 냎; ) HANGUL SYLLABLE NAEP
+B0CF;B0CF;1102 1162 11C2;B0CF;1102 1162 11C2; # (냏; 냏; 냏; 냏; 냏; ) HANGUL SYLLABLE NAEH
+B0D0;B0D0;1102 1163;B0D0;1102 1163; # (냐; 냐; 냐; 냐; 냐; ) HANGUL SYLLABLE NYA
+B0D1;B0D1;1102 1163 11A8;B0D1;1102 1163 11A8; # (냑; 냑; 냑; 냑; 냑; ) HANGUL SYLLABLE NYAG
+B0D2;B0D2;1102 1163 11A9;B0D2;1102 1163 11A9; # (냒; 냒; 냒; 냒; 냒; ) HANGUL SYLLABLE NYAGG
+B0D3;B0D3;1102 1163 11AA;B0D3;1102 1163 11AA; # (냓; 냓; 냓; 냓; 냓; ) HANGUL SYLLABLE NYAGS
+B0D4;B0D4;1102 1163 11AB;B0D4;1102 1163 11AB; # (냔; 냔; 냔; 냔; 냔; ) HANGUL SYLLABLE NYAN
+B0D5;B0D5;1102 1163 11AC;B0D5;1102 1163 11AC; # (냕; 냕; 냕; 냕; 냕; ) HANGUL SYLLABLE NYANJ
+B0D6;B0D6;1102 1163 11AD;B0D6;1102 1163 11AD; # (냖; 냖; 냖; 냖; 냖; ) HANGUL SYLLABLE NYANH
+B0D7;B0D7;1102 1163 11AE;B0D7;1102 1163 11AE; # (냗; 냗; 냗; 냗; 냗; ) HANGUL SYLLABLE NYAD
+B0D8;B0D8;1102 1163 11AF;B0D8;1102 1163 11AF; # (냘; 냘; 냘; 냘; 냘; ) HANGUL SYLLABLE NYAL
+B0D9;B0D9;1102 1163 11B0;B0D9;1102 1163 11B0; # (냙; 냙; 냙; 냙; 냙; ) HANGUL SYLLABLE NYALG
+B0DA;B0DA;1102 1163 11B1;B0DA;1102 1163 11B1; # (냚; 냚; 냚; 냚; 냚; ) HANGUL SYLLABLE NYALM
+B0DB;B0DB;1102 1163 11B2;B0DB;1102 1163 11B2; # (냛; 냛; 냛; 냛; 냛; ) HANGUL SYLLABLE NYALB
+B0DC;B0DC;1102 1163 11B3;B0DC;1102 1163 11B3; # (냜; 냜; 냜; 냜; 냜; ) HANGUL SYLLABLE NYALS
+B0DD;B0DD;1102 1163 11B4;B0DD;1102 1163 11B4; # (냝; 냝; 냝; 냝; 냝; ) HANGUL SYLLABLE NYALT
+B0DE;B0DE;1102 1163 11B5;B0DE;1102 1163 11B5; # (냞; 냞; 냞; 냞; 냞; ) HANGUL SYLLABLE NYALP
+B0DF;B0DF;1102 1163 11B6;B0DF;1102 1163 11B6; # (냟; 냟; 냟; 냟; 냟; ) HANGUL SYLLABLE NYALH
+B0E0;B0E0;1102 1163 11B7;B0E0;1102 1163 11B7; # (냠; 냠; 냠; 냠; 냠; ) HANGUL SYLLABLE NYAM
+B0E1;B0E1;1102 1163 11B8;B0E1;1102 1163 11B8; # (냡; 냡; 냡; 냡; 냡; ) HANGUL SYLLABLE NYAB
+B0E2;B0E2;1102 1163 11B9;B0E2;1102 1163 11B9; # (냢; 냢; 냢; 냢; 냢; ) HANGUL SYLLABLE NYABS
+B0E3;B0E3;1102 1163 11BA;B0E3;1102 1163 11BA; # (냣; 냣; 냣; 냣; 냣; ) HANGUL SYLLABLE NYAS
+B0E4;B0E4;1102 1163 11BB;B0E4;1102 1163 11BB; # (냤; 냤; 냤; 냤; 냤; ) HANGUL SYLLABLE NYASS
+B0E5;B0E5;1102 1163 11BC;B0E5;1102 1163 11BC; # (냥; 냥; 냥; 냥; 냥; ) HANGUL SYLLABLE NYANG
+B0E6;B0E6;1102 1163 11BD;B0E6;1102 1163 11BD; # (냦; 냦; 냦; 냦; 냦; ) HANGUL SYLLABLE NYAJ
+B0E7;B0E7;1102 1163 11BE;B0E7;1102 1163 11BE; # (냧; 냧; 냧; 냧; 냧; ) HANGUL SYLLABLE NYAC
+B0E8;B0E8;1102 1163 11BF;B0E8;1102 1163 11BF; # (냨; 냨; 냨; 냨; 냨; ) HANGUL SYLLABLE NYAK
+B0E9;B0E9;1102 1163 11C0;B0E9;1102 1163 11C0; # (냩; 냩; 냩; 냩; 냩; ) HANGUL SYLLABLE NYAT
+B0EA;B0EA;1102 1163 11C1;B0EA;1102 1163 11C1; # (냪; 냪; 냪; 냪; 냪; ) HANGUL SYLLABLE NYAP
+B0EB;B0EB;1102 1163 11C2;B0EB;1102 1163 11C2; # (냫; 냫; 냫; 냫; 냫; ) HANGUL SYLLABLE NYAH
+B0EC;B0EC;1102 1164;B0EC;1102 1164; # (냬; 냬; 냬; 냬; 냬; ) HANGUL SYLLABLE NYAE
+B0ED;B0ED;1102 1164 11A8;B0ED;1102 1164 11A8; # (냭; 냭; 냭; 냭; 냭; ) HANGUL SYLLABLE NYAEG
+B0EE;B0EE;1102 1164 11A9;B0EE;1102 1164 11A9; # (냮; 냮; 냮; 냮; 냮; ) HANGUL SYLLABLE NYAEGG
+B0EF;B0EF;1102 1164 11AA;B0EF;1102 1164 11AA; # (냯; 냯; 냯; 냯; 냯; ) HANGUL SYLLABLE NYAEGS
+B0F0;B0F0;1102 1164 11AB;B0F0;1102 1164 11AB; # (냰; 냰; 냰; 냰; 냰; ) HANGUL SYLLABLE NYAEN
+B0F1;B0F1;1102 1164 11AC;B0F1;1102 1164 11AC; # (냱; 냱; 냱; 냱; 냱; ) HANGUL SYLLABLE NYAENJ
+B0F2;B0F2;1102 1164 11AD;B0F2;1102 1164 11AD; # (냲; 냲; 냲; 냲; 냲; ) HANGUL SYLLABLE NYAENH
+B0F3;B0F3;1102 1164 11AE;B0F3;1102 1164 11AE; # (냳; 냳; 냳; 냳; 냳; ) HANGUL SYLLABLE NYAED
+B0F4;B0F4;1102 1164 11AF;B0F4;1102 1164 11AF; # (냴; 냴; 냴; 냴; 냴; ) HANGUL SYLLABLE NYAEL
+B0F5;B0F5;1102 1164 11B0;B0F5;1102 1164 11B0; # (냵; 냵; 냵; 냵; 냵; ) HANGUL SYLLABLE NYAELG
+B0F6;B0F6;1102 1164 11B1;B0F6;1102 1164 11B1; # (냶; 냶; 냶; 냶; 냶; ) HANGUL SYLLABLE NYAELM
+B0F7;B0F7;1102 1164 11B2;B0F7;1102 1164 11B2; # (냷; 냷; 냷; 냷; 냷; ) HANGUL SYLLABLE NYAELB
+B0F8;B0F8;1102 1164 11B3;B0F8;1102 1164 11B3; # (냸; 냸; 냸; 냸; 냸; ) HANGUL SYLLABLE NYAELS
+B0F9;B0F9;1102 1164 11B4;B0F9;1102 1164 11B4; # (냹; 냹; 냹; 냹; 냹; ) HANGUL SYLLABLE NYAELT
+B0FA;B0FA;1102 1164 11B5;B0FA;1102 1164 11B5; # (냺; 냺; 냺; 냺; 냺; ) HANGUL SYLLABLE NYAELP
+B0FB;B0FB;1102 1164 11B6;B0FB;1102 1164 11B6; # (냻; 냻; 냻; 냻; 냻; ) HANGUL SYLLABLE NYAELH
+B0FC;B0FC;1102 1164 11B7;B0FC;1102 1164 11B7; # (냼; 냼; 냼; 냼; 냼; ) HANGUL SYLLABLE NYAEM
+B0FD;B0FD;1102 1164 11B8;B0FD;1102 1164 11B8; # (냽; 냽; 냽; 냽; 냽; ) HANGUL SYLLABLE NYAEB
+B0FE;B0FE;1102 1164 11B9;B0FE;1102 1164 11B9; # (냾; 냾; 냾; 냾; 냾; ) HANGUL SYLLABLE NYAEBS
+B0FF;B0FF;1102 1164 11BA;B0FF;1102 1164 11BA; # (냿; 냿; 냿; 냿; 냿; ) HANGUL SYLLABLE NYAES
+B100;B100;1102 1164 11BB;B100;1102 1164 11BB; # (넀; 넀; 넀; 넀; 넀; ) HANGUL SYLLABLE NYAESS
+B101;B101;1102 1164 11BC;B101;1102 1164 11BC; # (넁; 넁; 넁; 넁; 넁; ) HANGUL SYLLABLE NYAENG
+B102;B102;1102 1164 11BD;B102;1102 1164 11BD; # (넂; 넂; 넂; 넂; 넂; ) HANGUL SYLLABLE NYAEJ
+B103;B103;1102 1164 11BE;B103;1102 1164 11BE; # (넃; 넃; 넃; 넃; 넃; ) HANGUL SYLLABLE NYAEC
+B104;B104;1102 1164 11BF;B104;1102 1164 11BF; # (넄; 넄; 넄; 넄; 넄; ) HANGUL SYLLABLE NYAEK
+B105;B105;1102 1164 11C0;B105;1102 1164 11C0; # (넅; 넅; 넅; 넅; 넅; ) HANGUL SYLLABLE NYAET
+B106;B106;1102 1164 11C1;B106;1102 1164 11C1; # (넆; 넆; 넆; 넆; 넆; ) HANGUL SYLLABLE NYAEP
+B107;B107;1102 1164 11C2;B107;1102 1164 11C2; # (넇; 넇; 넇; 넇; 넇; ) HANGUL SYLLABLE NYAEH
+B108;B108;1102 1165;B108;1102 1165; # (너; 너; 너; 너; 너; ) HANGUL SYLLABLE NEO
+B109;B109;1102 1165 11A8;B109;1102 1165 11A8; # (넉; 넉; 넉; 넉; 넉; ) HANGUL SYLLABLE NEOG
+B10A;B10A;1102 1165 11A9;B10A;1102 1165 11A9; # (넊; 넊; 넊; 넊; 넊; ) HANGUL SYLLABLE NEOGG
+B10B;B10B;1102 1165 11AA;B10B;1102 1165 11AA; # (넋; 넋; 넋; 넋; 넋; ) HANGUL SYLLABLE NEOGS
+B10C;B10C;1102 1165 11AB;B10C;1102 1165 11AB; # (넌; 넌; 넌; 넌; 넌; ) HANGUL SYLLABLE NEON
+B10D;B10D;1102 1165 11AC;B10D;1102 1165 11AC; # (넍; 넍; 넍; 넍; 넍; ) HANGUL SYLLABLE NEONJ
+B10E;B10E;1102 1165 11AD;B10E;1102 1165 11AD; # (넎; 넎; 넎; 넎; 넎; ) HANGUL SYLLABLE NEONH
+B10F;B10F;1102 1165 11AE;B10F;1102 1165 11AE; # (넏; 넏; 넏; 넏; 넏; ) HANGUL SYLLABLE NEOD
+B110;B110;1102 1165 11AF;B110;1102 1165 11AF; # (널; 널; 널; 널; 널; ) HANGUL SYLLABLE NEOL
+B111;B111;1102 1165 11B0;B111;1102 1165 11B0; # (넑; 넑; 넑; 넑; 넑; ) HANGUL SYLLABLE NEOLG
+B112;B112;1102 1165 11B1;B112;1102 1165 11B1; # (넒; 넒; 넒; 넒; 넒; ) HANGUL SYLLABLE NEOLM
+B113;B113;1102 1165 11B2;B113;1102 1165 11B2; # (넓; 넓; 넓; 넓; 넓; ) HANGUL SYLLABLE NEOLB
+B114;B114;1102 1165 11B3;B114;1102 1165 11B3; # (넔; 넔; 넔; 넔; 넔; ) HANGUL SYLLABLE NEOLS
+B115;B115;1102 1165 11B4;B115;1102 1165 11B4; # (넕; 넕; 넕; 넕; 넕; ) HANGUL SYLLABLE NEOLT
+B116;B116;1102 1165 11B5;B116;1102 1165 11B5; # (넖; 넖; 넖; 넖; 넖; ) HANGUL SYLLABLE NEOLP
+B117;B117;1102 1165 11B6;B117;1102 1165 11B6; # (넗; 넗; 넗; 넗; 넗; ) HANGUL SYLLABLE NEOLH
+B118;B118;1102 1165 11B7;B118;1102 1165 11B7; # (넘; 넘; 넘; 넘; 넘; ) HANGUL SYLLABLE NEOM
+B119;B119;1102 1165 11B8;B119;1102 1165 11B8; # (넙; 넙; 넙; 넙; 넙; ) HANGUL SYLLABLE NEOB
+B11A;B11A;1102 1165 11B9;B11A;1102 1165 11B9; # (넚; 넚; 넚; 넚; 넚; ) HANGUL SYLLABLE NEOBS
+B11B;B11B;1102 1165 11BA;B11B;1102 1165 11BA; # (넛; 넛; 넛; 넛; 넛; ) HANGUL SYLLABLE NEOS
+B11C;B11C;1102 1165 11BB;B11C;1102 1165 11BB; # (넜; 넜; 넜; 넜; 넜; ) HANGUL SYLLABLE NEOSS
+B11D;B11D;1102 1165 11BC;B11D;1102 1165 11BC; # (넝; 넝; 넝; 넝; 넝; ) HANGUL SYLLABLE NEONG
+B11E;B11E;1102 1165 11BD;B11E;1102 1165 11BD; # (넞; 넞; 넞; 넞; 넞; ) HANGUL SYLLABLE NEOJ
+B11F;B11F;1102 1165 11BE;B11F;1102 1165 11BE; # (넟; 넟; 넟; 넟; 넟; ) HANGUL SYLLABLE NEOC
+B120;B120;1102 1165 11BF;B120;1102 1165 11BF; # (넠; 넠; 넠; 넠; 넠; ) HANGUL SYLLABLE NEOK
+B121;B121;1102 1165 11C0;B121;1102 1165 11C0; # (넡; 넡; 넡; 넡; 넡; ) HANGUL SYLLABLE NEOT
+B122;B122;1102 1165 11C1;B122;1102 1165 11C1; # (넢; 넢; 넢; 넢; 넢; ) HANGUL SYLLABLE NEOP
+B123;B123;1102 1165 11C2;B123;1102 1165 11C2; # (넣; 넣; 넣; 넣; 넣; ) HANGUL SYLLABLE NEOH
+B124;B124;1102 1166;B124;1102 1166; # (네; 네; 네; 네; 네; ) HANGUL SYLLABLE NE
+B125;B125;1102 1166 11A8;B125;1102 1166 11A8; # (넥; 넥; 넥; 넥; 넥; ) HANGUL SYLLABLE NEG
+B126;B126;1102 1166 11A9;B126;1102 1166 11A9; # (넦; 넦; 넦; 넦; 넦; ) HANGUL SYLLABLE NEGG
+B127;B127;1102 1166 11AA;B127;1102 1166 11AA; # (넧; 넧; 넧; 넧; 넧; ) HANGUL SYLLABLE NEGS
+B128;B128;1102 1166 11AB;B128;1102 1166 11AB; # (넨; 넨; 넨; 넨; 넨; ) HANGUL SYLLABLE NEN
+B129;B129;1102 1166 11AC;B129;1102 1166 11AC; # (넩; 넩; 넩; 넩; 넩; ) HANGUL SYLLABLE NENJ
+B12A;B12A;1102 1166 11AD;B12A;1102 1166 11AD; # (넪; 넪; 넪; 넪; 넪; ) HANGUL SYLLABLE NENH
+B12B;B12B;1102 1166 11AE;B12B;1102 1166 11AE; # (넫; 넫; 넫; 넫; 넫; ) HANGUL SYLLABLE NED
+B12C;B12C;1102 1166 11AF;B12C;1102 1166 11AF; # (넬; 넬; 넬; 넬; 넬; ) HANGUL SYLLABLE NEL
+B12D;B12D;1102 1166 11B0;B12D;1102 1166 11B0; # (넭; 넭; 넭; 넭; 넭; ) HANGUL SYLLABLE NELG
+B12E;B12E;1102 1166 11B1;B12E;1102 1166 11B1; # (넮; 넮; 넮; 넮; 넮; ) HANGUL SYLLABLE NELM
+B12F;B12F;1102 1166 11B2;B12F;1102 1166 11B2; # (넯; 넯; 넯; 넯; 넯; ) HANGUL SYLLABLE NELB
+B130;B130;1102 1166 11B3;B130;1102 1166 11B3; # (넰; 넰; 넰; 넰; 넰; ) HANGUL SYLLABLE NELS
+B131;B131;1102 1166 11B4;B131;1102 1166 11B4; # (넱; 넱; 넱; 넱; 넱; ) HANGUL SYLLABLE NELT
+B132;B132;1102 1166 11B5;B132;1102 1166 11B5; # (넲; 넲; 넲; 넲; 넲; ) HANGUL SYLLABLE NELP
+B133;B133;1102 1166 11B6;B133;1102 1166 11B6; # (넳; 넳; 넳; 넳; 넳; ) HANGUL SYLLABLE NELH
+B134;B134;1102 1166 11B7;B134;1102 1166 11B7; # (넴; 넴; 넴; 넴; 넴; ) HANGUL SYLLABLE NEM
+B135;B135;1102 1166 11B8;B135;1102 1166 11B8; # (넵; 넵; 넵; 넵; 넵; ) HANGUL SYLLABLE NEB
+B136;B136;1102 1166 11B9;B136;1102 1166 11B9; # (넶; 넶; 넶; 넶; 넶; ) HANGUL SYLLABLE NEBS
+B137;B137;1102 1166 11BA;B137;1102 1166 11BA; # (넷; 넷; 넷; 넷; 넷; ) HANGUL SYLLABLE NES
+B138;B138;1102 1166 11BB;B138;1102 1166 11BB; # (넸; 넸; 넸; 넸; 넸; ) HANGUL SYLLABLE NESS
+B139;B139;1102 1166 11BC;B139;1102 1166 11BC; # (넹; 넹; 넹; 넹; 넹; ) HANGUL SYLLABLE NENG
+B13A;B13A;1102 1166 11BD;B13A;1102 1166 11BD; # (넺; 넺; 넺; 넺; 넺; ) HANGUL SYLLABLE NEJ
+B13B;B13B;1102 1166 11BE;B13B;1102 1166 11BE; # (넻; 넻; 넻; 넻; 넻; ) HANGUL SYLLABLE NEC
+B13C;B13C;1102 1166 11BF;B13C;1102 1166 11BF; # (넼; 넼; 넼; 넼; 넼; ) HANGUL SYLLABLE NEK
+B13D;B13D;1102 1166 11C0;B13D;1102 1166 11C0; # (넽; 넽; 넽; 넽; 넽; ) HANGUL SYLLABLE NET
+B13E;B13E;1102 1166 11C1;B13E;1102 1166 11C1; # (넾; 넾; 넾; 넾; 넾; ) HANGUL SYLLABLE NEP
+B13F;B13F;1102 1166 11C2;B13F;1102 1166 11C2; # (넿; 넿; 넿; 넿; 넿; ) HANGUL SYLLABLE NEH
+B140;B140;1102 1167;B140;1102 1167; # (녀; 녀; 녀; 녀; 녀; ) HANGUL SYLLABLE NYEO
+B141;B141;1102 1167 11A8;B141;1102 1167 11A8; # (녁; 녁; 녁; 녁; 녁; ) HANGUL SYLLABLE NYEOG
+B142;B142;1102 1167 11A9;B142;1102 1167 11A9; # (녂; 녂; 녂; 녂; 녂; ) HANGUL SYLLABLE NYEOGG
+B143;B143;1102 1167 11AA;B143;1102 1167 11AA; # (녃; 녃; 녃; 녃; 녃; ) HANGUL SYLLABLE NYEOGS
+B144;B144;1102 1167 11AB;B144;1102 1167 11AB; # (년; 년; 년; 년; 년; ) HANGUL SYLLABLE NYEON
+B145;B145;1102 1167 11AC;B145;1102 1167 11AC; # (녅; 녅; 녅; 녅; 녅; ) HANGUL SYLLABLE NYEONJ
+B146;B146;1102 1167 11AD;B146;1102 1167 11AD; # (녆; 녆; 녆; 녆; 녆; ) HANGUL SYLLABLE NYEONH
+B147;B147;1102 1167 11AE;B147;1102 1167 11AE; # (녇; 녇; 녇; 녇; 녇; ) HANGUL SYLLABLE NYEOD
+B148;B148;1102 1167 11AF;B148;1102 1167 11AF; # (녈; 녈; 녈; 녈; 녈; ) HANGUL SYLLABLE NYEOL
+B149;B149;1102 1167 11B0;B149;1102 1167 11B0; # (녉; 녉; 녉; 녉; 녉; ) HANGUL SYLLABLE NYEOLG
+B14A;B14A;1102 1167 11B1;B14A;1102 1167 11B1; # (녊; 녊; 녊; 녊; 녊; ) HANGUL SYLLABLE NYEOLM
+B14B;B14B;1102 1167 11B2;B14B;1102 1167 11B2; # (녋; 녋; 녋; 녋; 녋; ) HANGUL SYLLABLE NYEOLB
+B14C;B14C;1102 1167 11B3;B14C;1102 1167 11B3; # (녌; 녌; 녌; 녌; 녌; ) HANGUL SYLLABLE NYEOLS
+B14D;B14D;1102 1167 11B4;B14D;1102 1167 11B4; # (녍; 녍; 녍; 녍; 녍; ) HANGUL SYLLABLE NYEOLT
+B14E;B14E;1102 1167 11B5;B14E;1102 1167 11B5; # (녎; 녎; 녎; 녎; 녎; ) HANGUL SYLLABLE NYEOLP
+B14F;B14F;1102 1167 11B6;B14F;1102 1167 11B6; # (녏; 녏; 녏; 녏; 녏; ) HANGUL SYLLABLE NYEOLH
+B150;B150;1102 1167 11B7;B150;1102 1167 11B7; # (념; 념; 념; 념; 념; ) HANGUL SYLLABLE NYEOM
+B151;B151;1102 1167 11B8;B151;1102 1167 11B8; # (녑; 녑; 녑; 녑; 녑; ) HANGUL SYLLABLE NYEOB
+B152;B152;1102 1167 11B9;B152;1102 1167 11B9; # (녒; 녒; 녒; 녒; 녒; ) HANGUL SYLLABLE NYEOBS
+B153;B153;1102 1167 11BA;B153;1102 1167 11BA; # (녓; 녓; 녓; 녓; 녓; ) HANGUL SYLLABLE NYEOS
+B154;B154;1102 1167 11BB;B154;1102 1167 11BB; # (녔; 녔; 녔; 녔; 녔; ) HANGUL SYLLABLE NYEOSS
+B155;B155;1102 1167 11BC;B155;1102 1167 11BC; # (녕; 녕; 녕; 녕; 녕; ) HANGUL SYLLABLE NYEONG
+B156;B156;1102 1167 11BD;B156;1102 1167 11BD; # (녖; 녖; 녖; 녖; 녖; ) HANGUL SYLLABLE NYEOJ
+B157;B157;1102 1167 11BE;B157;1102 1167 11BE; # (녗; 녗; 녗; 녗; 녗; ) HANGUL SYLLABLE NYEOC
+B158;B158;1102 1167 11BF;B158;1102 1167 11BF; # (녘; 녘; 녘; 녘; 녘; ) HANGUL SYLLABLE NYEOK
+B159;B159;1102 1167 11C0;B159;1102 1167 11C0; # (녙; 녙; 녙; 녙; 녙; ) HANGUL SYLLABLE NYEOT
+B15A;B15A;1102 1167 11C1;B15A;1102 1167 11C1; # (녚; 녚; 녚; 녚; 녚; ) HANGUL SYLLABLE NYEOP
+B15B;B15B;1102 1167 11C2;B15B;1102 1167 11C2; # (녛; 녛; 녛; 녛; 녛; ) HANGUL SYLLABLE NYEOH
+B15C;B15C;1102 1168;B15C;1102 1168; # (녜; 녜; 녜; 녜; 녜; ) HANGUL SYLLABLE NYE
+B15D;B15D;1102 1168 11A8;B15D;1102 1168 11A8; # (녝; 녝; 녝; 녝; 녝; ) HANGUL SYLLABLE NYEG
+B15E;B15E;1102 1168 11A9;B15E;1102 1168 11A9; # (녞; 녞; 녞; 녞; 녞; ) HANGUL SYLLABLE NYEGG
+B15F;B15F;1102 1168 11AA;B15F;1102 1168 11AA; # (녟; 녟; 녟; 녟; 녟; ) HANGUL SYLLABLE NYEGS
+B160;B160;1102 1168 11AB;B160;1102 1168 11AB; # (녠; 녠; 녠; 녠; 녠; ) HANGUL SYLLABLE NYEN
+B161;B161;1102 1168 11AC;B161;1102 1168 11AC; # (녡; 녡; 녡; 녡; 녡; ) HANGUL SYLLABLE NYENJ
+B162;B162;1102 1168 11AD;B162;1102 1168 11AD; # (녢; 녢; 녢; 녢; 녢; ) HANGUL SYLLABLE NYENH
+B163;B163;1102 1168 11AE;B163;1102 1168 11AE; # (녣; 녣; 녣; 녣; 녣; ) HANGUL SYLLABLE NYED
+B164;B164;1102 1168 11AF;B164;1102 1168 11AF; # (녤; 녤; 녤; 녤; 녤; ) HANGUL SYLLABLE NYEL
+B165;B165;1102 1168 11B0;B165;1102 1168 11B0; # (녥; 녥; 녥; 녥; 녥; ) HANGUL SYLLABLE NYELG
+B166;B166;1102 1168 11B1;B166;1102 1168 11B1; # (녦; 녦; 녦; 녦; 녦; ) HANGUL SYLLABLE NYELM
+B167;B167;1102 1168 11B2;B167;1102 1168 11B2; # (녧; 녧; 녧; 녧; 녧; ) HANGUL SYLLABLE NYELB
+B168;B168;1102 1168 11B3;B168;1102 1168 11B3; # (녨; 녨; 녨; 녨; 녨; ) HANGUL SYLLABLE NYELS
+B169;B169;1102 1168 11B4;B169;1102 1168 11B4; # (녩; 녩; 녩; 녩; 녩; ) HANGUL SYLLABLE NYELT
+B16A;B16A;1102 1168 11B5;B16A;1102 1168 11B5; # (녪; 녪; 녪; 녪; 녪; ) HANGUL SYLLABLE NYELP
+B16B;B16B;1102 1168 11B6;B16B;1102 1168 11B6; # (녫; 녫; 녫; 녫; 녫; ) HANGUL SYLLABLE NYELH
+B16C;B16C;1102 1168 11B7;B16C;1102 1168 11B7; # (녬; 녬; 녬; 녬; 녬; ) HANGUL SYLLABLE NYEM
+B16D;B16D;1102 1168 11B8;B16D;1102 1168 11B8; # (녭; 녭; 녭; 녭; 녭; ) HANGUL SYLLABLE NYEB
+B16E;B16E;1102 1168 11B9;B16E;1102 1168 11B9; # (녮; 녮; 녮; 녮; 녮; ) HANGUL SYLLABLE NYEBS
+B16F;B16F;1102 1168 11BA;B16F;1102 1168 11BA; # (녯; 녯; 녯; 녯; 녯; ) HANGUL SYLLABLE NYES
+B170;B170;1102 1168 11BB;B170;1102 1168 11BB; # (녰; 녰; 녰; 녰; 녰; ) HANGUL SYLLABLE NYESS
+B171;B171;1102 1168 11BC;B171;1102 1168 11BC; # (녱; 녱; 녱; 녱; 녱; ) HANGUL SYLLABLE NYENG
+B172;B172;1102 1168 11BD;B172;1102 1168 11BD; # (녲; 녲; 녲; 녲; 녲; ) HANGUL SYLLABLE NYEJ
+B173;B173;1102 1168 11BE;B173;1102 1168 11BE; # (녳; 녳; 녳; 녳; 녳; ) HANGUL SYLLABLE NYEC
+B174;B174;1102 1168 11BF;B174;1102 1168 11BF; # (녴; 녴; 녴; 녴; 녴; ) HANGUL SYLLABLE NYEK
+B175;B175;1102 1168 11C0;B175;1102 1168 11C0; # (녵; 녵; 녵; 녵; 녵; ) HANGUL SYLLABLE NYET
+B176;B176;1102 1168 11C1;B176;1102 1168 11C1; # (녶; 녶; 녶; 녶; 녶; ) HANGUL SYLLABLE NYEP
+B177;B177;1102 1168 11C2;B177;1102 1168 11C2; # (녷; 녷; 녷; 녷; 녷; ) HANGUL SYLLABLE NYEH
+B178;B178;1102 1169;B178;1102 1169; # (노; 노; 노; 노; 노; ) HANGUL SYLLABLE NO
+B179;B179;1102 1169 11A8;B179;1102 1169 11A8; # (녹; 녹; 녹; 녹; 녹; ) HANGUL SYLLABLE NOG
+B17A;B17A;1102 1169 11A9;B17A;1102 1169 11A9; # (녺; 녺; 녺; 녺; 녺; ) HANGUL SYLLABLE NOGG
+B17B;B17B;1102 1169 11AA;B17B;1102 1169 11AA; # (녻; 녻; 녻; 녻; 녻; ) HANGUL SYLLABLE NOGS
+B17C;B17C;1102 1169 11AB;B17C;1102 1169 11AB; # (논; 논; 논; 논; 논; ) HANGUL SYLLABLE NON
+B17D;B17D;1102 1169 11AC;B17D;1102 1169 11AC; # (녽; 녽; 녽; 녽; 녽; ) HANGUL SYLLABLE NONJ
+B17E;B17E;1102 1169 11AD;B17E;1102 1169 11AD; # (녾; 녾; 녾; 녾; 녾; ) HANGUL SYLLABLE NONH
+B17F;B17F;1102 1169 11AE;B17F;1102 1169 11AE; # (녿; 녿; 녿; 녿; 녿; ) HANGUL SYLLABLE NOD
+B180;B180;1102 1169 11AF;B180;1102 1169 11AF; # (놀; 놀; 놀; 놀; 놀; ) HANGUL SYLLABLE NOL
+B181;B181;1102 1169 11B0;B181;1102 1169 11B0; # (놁; 놁; 놁; 놁; 놁; ) HANGUL SYLLABLE NOLG
+B182;B182;1102 1169 11B1;B182;1102 1169 11B1; # (놂; 놂; 놂; 놂; 놂; ) HANGUL SYLLABLE NOLM
+B183;B183;1102 1169 11B2;B183;1102 1169 11B2; # (놃; 놃; 놃; 놃; 놃; ) HANGUL SYLLABLE NOLB
+B184;B184;1102 1169 11B3;B184;1102 1169 11B3; # (놄; 놄; 놄; 놄; 놄; ) HANGUL SYLLABLE NOLS
+B185;B185;1102 1169 11B4;B185;1102 1169 11B4; # (놅; 놅; 놅; 놅; 놅; ) HANGUL SYLLABLE NOLT
+B186;B186;1102 1169 11B5;B186;1102 1169 11B5; # (놆; 놆; 놆; 놆; 놆; ) HANGUL SYLLABLE NOLP
+B187;B187;1102 1169 11B6;B187;1102 1169 11B6; # (놇; 놇; 놇; 놇; 놇; ) HANGUL SYLLABLE NOLH
+B188;B188;1102 1169 11B7;B188;1102 1169 11B7; # (놈; 놈; 놈; 놈; 놈; ) HANGUL SYLLABLE NOM
+B189;B189;1102 1169 11B8;B189;1102 1169 11B8; # (놉; 놉; 놉; 놉; 놉; ) HANGUL SYLLABLE NOB
+B18A;B18A;1102 1169 11B9;B18A;1102 1169 11B9; # (놊; 놊; 놊; 놊; 놊; ) HANGUL SYLLABLE NOBS
+B18B;B18B;1102 1169 11BA;B18B;1102 1169 11BA; # (놋; 놋; 놋; 놋; 놋; ) HANGUL SYLLABLE NOS
+B18C;B18C;1102 1169 11BB;B18C;1102 1169 11BB; # (놌; 놌; 놌; 놌; 놌; ) HANGUL SYLLABLE NOSS
+B18D;B18D;1102 1169 11BC;B18D;1102 1169 11BC; # (농; 농; 농; 농; 농; ) HANGUL SYLLABLE NONG
+B18E;B18E;1102 1169 11BD;B18E;1102 1169 11BD; # (놎; 놎; 놎; 놎; 놎; ) HANGUL SYLLABLE NOJ
+B18F;B18F;1102 1169 11BE;B18F;1102 1169 11BE; # (놏; 놏; 놏; 놏; 놏; ) HANGUL SYLLABLE NOC
+B190;B190;1102 1169 11BF;B190;1102 1169 11BF; # (놐; 놐; 놐; 놐; 놐; ) HANGUL SYLLABLE NOK
+B191;B191;1102 1169 11C0;B191;1102 1169 11C0; # (놑; 놑; 놑; 놑; 놑; ) HANGUL SYLLABLE NOT
+B192;B192;1102 1169 11C1;B192;1102 1169 11C1; # (높; 높; 높; 높; 높; ) HANGUL SYLLABLE NOP
+B193;B193;1102 1169 11C2;B193;1102 1169 11C2; # (놓; 놓; 놓; 놓; 놓; ) HANGUL SYLLABLE NOH
+B194;B194;1102 116A;B194;1102 116A; # (놔; 놔; 놔; 놔; 놔; ) HANGUL SYLLABLE NWA
+B195;B195;1102 116A 11A8;B195;1102 116A 11A8; # (놕; 놕; 놕; 놕; 놕; ) HANGUL SYLLABLE NWAG
+B196;B196;1102 116A 11A9;B196;1102 116A 11A9; # (놖; 놖; 놖; 놖; 놖; ) HANGUL SYLLABLE NWAGG
+B197;B197;1102 116A 11AA;B197;1102 116A 11AA; # (놗; 놗; 놗; 놗; 놗; ) HANGUL SYLLABLE NWAGS
+B198;B198;1102 116A 11AB;B198;1102 116A 11AB; # (놘; 놘; 놘; 놘; 놘; ) HANGUL SYLLABLE NWAN
+B199;B199;1102 116A 11AC;B199;1102 116A 11AC; # (놙; 놙; 놙; 놙; 놙; ) HANGUL SYLLABLE NWANJ
+B19A;B19A;1102 116A 11AD;B19A;1102 116A 11AD; # (놚; 놚; 놚; 놚; 놚; ) HANGUL SYLLABLE NWANH
+B19B;B19B;1102 116A 11AE;B19B;1102 116A 11AE; # (놛; 놛; 놛; 놛; 놛; ) HANGUL SYLLABLE NWAD
+B19C;B19C;1102 116A 11AF;B19C;1102 116A 11AF; # (놜; 놜; 놜; 놜; 놜; ) HANGUL SYLLABLE NWAL
+B19D;B19D;1102 116A 11B0;B19D;1102 116A 11B0; # (놝; 놝; 놝; 놝; 놝; ) HANGUL SYLLABLE NWALG
+B19E;B19E;1102 116A 11B1;B19E;1102 116A 11B1; # (놞; 놞; 놞; 놞; 놞; ) HANGUL SYLLABLE NWALM
+B19F;B19F;1102 116A 11B2;B19F;1102 116A 11B2; # (놟; 놟; 놟; 놟; 놟; ) HANGUL SYLLABLE NWALB
+B1A0;B1A0;1102 116A 11B3;B1A0;1102 116A 11B3; # (놠; 놠; 놠; 놠; 놠; ) HANGUL SYLLABLE NWALS
+B1A1;B1A1;1102 116A 11B4;B1A1;1102 116A 11B4; # (놡; 놡; 놡; 놡; 놡; ) HANGUL SYLLABLE NWALT
+B1A2;B1A2;1102 116A 11B5;B1A2;1102 116A 11B5; # (놢; 놢; 놢; 놢; 놢; ) HANGUL SYLLABLE NWALP
+B1A3;B1A3;1102 116A 11B6;B1A3;1102 116A 11B6; # (놣; 놣; 놣; 놣; 놣; ) HANGUL SYLLABLE NWALH
+B1A4;B1A4;1102 116A 11B7;B1A4;1102 116A 11B7; # (놤; 놤; 놤; 놤; 놤; ) HANGUL SYLLABLE NWAM
+B1A5;B1A5;1102 116A 11B8;B1A5;1102 116A 11B8; # (놥; 놥; 놥; 놥; 놥; ) HANGUL SYLLABLE NWAB
+B1A6;B1A6;1102 116A 11B9;B1A6;1102 116A 11B9; # (놦; 놦; 놦; 놦; 놦; ) HANGUL SYLLABLE NWABS
+B1A7;B1A7;1102 116A 11BA;B1A7;1102 116A 11BA; # (놧; 놧; 놧; 놧; 놧; ) HANGUL SYLLABLE NWAS
+B1A8;B1A8;1102 116A 11BB;B1A8;1102 116A 11BB; # (놨; 놨; 놨; 놨; 놨; ) HANGUL SYLLABLE NWASS
+B1A9;B1A9;1102 116A 11BC;B1A9;1102 116A 11BC; # (놩; 놩; 놩; 놩; 놩; ) HANGUL SYLLABLE NWANG
+B1AA;B1AA;1102 116A 11BD;B1AA;1102 116A 11BD; # (놪; 놪; 놪; 놪; 놪; ) HANGUL SYLLABLE NWAJ
+B1AB;B1AB;1102 116A 11BE;B1AB;1102 116A 11BE; # (놫; 놫; 놫; 놫; 놫; ) HANGUL SYLLABLE NWAC
+B1AC;B1AC;1102 116A 11BF;B1AC;1102 116A 11BF; # (놬; 놬; 놬; 놬; 놬; ) HANGUL SYLLABLE NWAK
+B1AD;B1AD;1102 116A 11C0;B1AD;1102 116A 11C0; # (놭; 놭; 놭; 놭; 놭; ) HANGUL SYLLABLE NWAT
+B1AE;B1AE;1102 116A 11C1;B1AE;1102 116A 11C1; # (놮; 놮; 놮; 놮; 놮; ) HANGUL SYLLABLE NWAP
+B1AF;B1AF;1102 116A 11C2;B1AF;1102 116A 11C2; # (놯; 놯; 놯; 놯; 놯; ) HANGUL SYLLABLE NWAH
+B1B0;B1B0;1102 116B;B1B0;1102 116B; # (놰; 놰; 놰; 놰; 놰; ) HANGUL SYLLABLE NWAE
+B1B1;B1B1;1102 116B 11A8;B1B1;1102 116B 11A8; # (놱; 놱; 놱; 놱; 놱; ) HANGUL SYLLABLE NWAEG
+B1B2;B1B2;1102 116B 11A9;B1B2;1102 116B 11A9; # (놲; 놲; 놲; 놲; 놲; ) HANGUL SYLLABLE NWAEGG
+B1B3;B1B3;1102 116B 11AA;B1B3;1102 116B 11AA; # (놳; 놳; 놳; 놳; 놳; ) HANGUL SYLLABLE NWAEGS
+B1B4;B1B4;1102 116B 11AB;B1B4;1102 116B 11AB; # (놴; 놴; 놴; 놴; 놴; ) HANGUL SYLLABLE NWAEN
+B1B5;B1B5;1102 116B 11AC;B1B5;1102 116B 11AC; # (놵; 놵; 놵; 놵; 놵; ) HANGUL SYLLABLE NWAENJ
+B1B6;B1B6;1102 116B 11AD;B1B6;1102 116B 11AD; # (놶; 놶; 놶; 놶; 놶; ) HANGUL SYLLABLE NWAENH
+B1B7;B1B7;1102 116B 11AE;B1B7;1102 116B 11AE; # (놷; 놷; 놷; 놷; 놷; ) HANGUL SYLLABLE NWAED
+B1B8;B1B8;1102 116B 11AF;B1B8;1102 116B 11AF; # (놸; 놸; 놸; 놸; 놸; ) HANGUL SYLLABLE NWAEL
+B1B9;B1B9;1102 116B 11B0;B1B9;1102 116B 11B0; # (놹; 놹; 놹; 놹; 놹; ) HANGUL SYLLABLE NWAELG
+B1BA;B1BA;1102 116B 11B1;B1BA;1102 116B 11B1; # (놺; 놺; 놺; 놺; 놺; ) HANGUL SYLLABLE NWAELM
+B1BB;B1BB;1102 116B 11B2;B1BB;1102 116B 11B2; # (놻; 놻; 놻; 놻; 놻; ) HANGUL SYLLABLE NWAELB
+B1BC;B1BC;1102 116B 11B3;B1BC;1102 116B 11B3; # (놼; 놼; 놼; 놼; 놼; ) HANGUL SYLLABLE NWAELS
+B1BD;B1BD;1102 116B 11B4;B1BD;1102 116B 11B4; # (놽; 놽; 놽; 놽; 놽; ) HANGUL SYLLABLE NWAELT
+B1BE;B1BE;1102 116B 11B5;B1BE;1102 116B 11B5; # (놾; 놾; 놾; 놾; 놾; ) HANGUL SYLLABLE NWAELP
+B1BF;B1BF;1102 116B 11B6;B1BF;1102 116B 11B6; # (놿; 놿; 놿; 놿; 놿; ) HANGUL SYLLABLE NWAELH
+B1C0;B1C0;1102 116B 11B7;B1C0;1102 116B 11B7; # (뇀; 뇀; 뇀; 뇀; 뇀; ) HANGUL SYLLABLE NWAEM
+B1C1;B1C1;1102 116B 11B8;B1C1;1102 116B 11B8; # (뇁; 뇁; 뇁; 뇁; 뇁; ) HANGUL SYLLABLE NWAEB
+B1C2;B1C2;1102 116B 11B9;B1C2;1102 116B 11B9; # (뇂; 뇂; 뇂; 뇂; 뇂; ) HANGUL SYLLABLE NWAEBS
+B1C3;B1C3;1102 116B 11BA;B1C3;1102 116B 11BA; # (뇃; 뇃; 뇃; 뇃; 뇃; ) HANGUL SYLLABLE NWAES
+B1C4;B1C4;1102 116B 11BB;B1C4;1102 116B 11BB; # (뇄; 뇄; 뇄; 뇄; 뇄; ) HANGUL SYLLABLE NWAESS
+B1C5;B1C5;1102 116B 11BC;B1C5;1102 116B 11BC; # (뇅; 뇅; 뇅; 뇅; 뇅; ) HANGUL SYLLABLE NWAENG
+B1C6;B1C6;1102 116B 11BD;B1C6;1102 116B 11BD; # (뇆; 뇆; 뇆; 뇆; 뇆; ) HANGUL SYLLABLE NWAEJ
+B1C7;B1C7;1102 116B 11BE;B1C7;1102 116B 11BE; # (뇇; 뇇; 뇇; 뇇; 뇇; ) HANGUL SYLLABLE NWAEC
+B1C8;B1C8;1102 116B 11BF;B1C8;1102 116B 11BF; # (뇈; 뇈; 뇈; 뇈; 뇈; ) HANGUL SYLLABLE NWAEK
+B1C9;B1C9;1102 116B 11C0;B1C9;1102 116B 11C0; # (뇉; 뇉; 뇉; 뇉; 뇉; ) HANGUL SYLLABLE NWAET
+B1CA;B1CA;1102 116B 11C1;B1CA;1102 116B 11C1; # (뇊; 뇊; 뇊; 뇊; 뇊; ) HANGUL SYLLABLE NWAEP
+B1CB;B1CB;1102 116B 11C2;B1CB;1102 116B 11C2; # (뇋; 뇋; 뇋; 뇋; 뇋; ) HANGUL SYLLABLE NWAEH
+B1CC;B1CC;1102 116C;B1CC;1102 116C; # (뇌; 뇌; 뇌; 뇌; 뇌; ) HANGUL SYLLABLE NOE
+B1CD;B1CD;1102 116C 11A8;B1CD;1102 116C 11A8; # (뇍; 뇍; 뇍; 뇍; 뇍; ) HANGUL SYLLABLE NOEG
+B1CE;B1CE;1102 116C 11A9;B1CE;1102 116C 11A9; # (뇎; 뇎; 뇎; 뇎; 뇎; ) HANGUL SYLLABLE NOEGG
+B1CF;B1CF;1102 116C 11AA;B1CF;1102 116C 11AA; # (뇏; 뇏; 뇏; 뇏; 뇏; ) HANGUL SYLLABLE NOEGS
+B1D0;B1D0;1102 116C 11AB;B1D0;1102 116C 11AB; # (뇐; 뇐; 뇐; 뇐; 뇐; ) HANGUL SYLLABLE NOEN
+B1D1;B1D1;1102 116C 11AC;B1D1;1102 116C 11AC; # (뇑; 뇑; 뇑; 뇑; 뇑; ) HANGUL SYLLABLE NOENJ
+B1D2;B1D2;1102 116C 11AD;B1D2;1102 116C 11AD; # (뇒; 뇒; 뇒; 뇒; 뇒; ) HANGUL SYLLABLE NOENH
+B1D3;B1D3;1102 116C 11AE;B1D3;1102 116C 11AE; # (뇓; 뇓; 뇓; 뇓; 뇓; ) HANGUL SYLLABLE NOED
+B1D4;B1D4;1102 116C 11AF;B1D4;1102 116C 11AF; # (뇔; 뇔; 뇔; 뇔; 뇔; ) HANGUL SYLLABLE NOEL
+B1D5;B1D5;1102 116C 11B0;B1D5;1102 116C 11B0; # (뇕; 뇕; 뇕; 뇕; 뇕; ) HANGUL SYLLABLE NOELG
+B1D6;B1D6;1102 116C 11B1;B1D6;1102 116C 11B1; # (뇖; 뇖; 뇖; 뇖; 뇖; ) HANGUL SYLLABLE NOELM
+B1D7;B1D7;1102 116C 11B2;B1D7;1102 116C 11B2; # (뇗; 뇗; 뇗; 뇗; 뇗; ) HANGUL SYLLABLE NOELB
+B1D8;B1D8;1102 116C 11B3;B1D8;1102 116C 11B3; # (뇘; 뇘; 뇘; 뇘; 뇘; ) HANGUL SYLLABLE NOELS
+B1D9;B1D9;1102 116C 11B4;B1D9;1102 116C 11B4; # (뇙; 뇙; 뇙; 뇙; 뇙; ) HANGUL SYLLABLE NOELT
+B1DA;B1DA;1102 116C 11B5;B1DA;1102 116C 11B5; # (뇚; 뇚; 뇚; 뇚; 뇚; ) HANGUL SYLLABLE NOELP
+B1DB;B1DB;1102 116C 11B6;B1DB;1102 116C 11B6; # (뇛; 뇛; 뇛; 뇛; 뇛; ) HANGUL SYLLABLE NOELH
+B1DC;B1DC;1102 116C 11B7;B1DC;1102 116C 11B7; # (뇜; 뇜; 뇜; 뇜; 뇜; ) HANGUL SYLLABLE NOEM
+B1DD;B1DD;1102 116C 11B8;B1DD;1102 116C 11B8; # (뇝; 뇝; 뇝; 뇝; 뇝; ) HANGUL SYLLABLE NOEB
+B1DE;B1DE;1102 116C 11B9;B1DE;1102 116C 11B9; # (뇞; 뇞; 뇞; 뇞; 뇞; ) HANGUL SYLLABLE NOEBS
+B1DF;B1DF;1102 116C 11BA;B1DF;1102 116C 11BA; # (뇟; 뇟; 뇟; 뇟; 뇟; ) HANGUL SYLLABLE NOES
+B1E0;B1E0;1102 116C 11BB;B1E0;1102 116C 11BB; # (뇠; 뇠; 뇠; 뇠; 뇠; ) HANGUL SYLLABLE NOESS
+B1E1;B1E1;1102 116C 11BC;B1E1;1102 116C 11BC; # (뇡; 뇡; 뇡; 뇡; 뇡; ) HANGUL SYLLABLE NOENG
+B1E2;B1E2;1102 116C 11BD;B1E2;1102 116C 11BD; # (뇢; 뇢; 뇢; 뇢; 뇢; ) HANGUL SYLLABLE NOEJ
+B1E3;B1E3;1102 116C 11BE;B1E3;1102 116C 11BE; # (뇣; 뇣; 뇣; 뇣; 뇣; ) HANGUL SYLLABLE NOEC
+B1E4;B1E4;1102 116C 11BF;B1E4;1102 116C 11BF; # (뇤; 뇤; 뇤; 뇤; 뇤; ) HANGUL SYLLABLE NOEK
+B1E5;B1E5;1102 116C 11C0;B1E5;1102 116C 11C0; # (뇥; 뇥; 뇥; 뇥; 뇥; ) HANGUL SYLLABLE NOET
+B1E6;B1E6;1102 116C 11C1;B1E6;1102 116C 11C1; # (뇦; 뇦; 뇦; 뇦; 뇦; ) HANGUL SYLLABLE NOEP
+B1E7;B1E7;1102 116C 11C2;B1E7;1102 116C 11C2; # (뇧; 뇧; 뇧; 뇧; 뇧; ) HANGUL SYLLABLE NOEH
+B1E8;B1E8;1102 116D;B1E8;1102 116D; # (뇨; 뇨; 뇨; 뇨; 뇨; ) HANGUL SYLLABLE NYO
+B1E9;B1E9;1102 116D 11A8;B1E9;1102 116D 11A8; # (뇩; 뇩; 뇩; 뇩; 뇩; ) HANGUL SYLLABLE NYOG
+B1EA;B1EA;1102 116D 11A9;B1EA;1102 116D 11A9; # (뇪; 뇪; 뇪; 뇪; 뇪; ) HANGUL SYLLABLE NYOGG
+B1EB;B1EB;1102 116D 11AA;B1EB;1102 116D 11AA; # (뇫; 뇫; 뇫; 뇫; 뇫; ) HANGUL SYLLABLE NYOGS
+B1EC;B1EC;1102 116D 11AB;B1EC;1102 116D 11AB; # (뇬; 뇬; 뇬; 뇬; 뇬; ) HANGUL SYLLABLE NYON
+B1ED;B1ED;1102 116D 11AC;B1ED;1102 116D 11AC; # (뇭; 뇭; 뇭; 뇭; 뇭; ) HANGUL SYLLABLE NYONJ
+B1EE;B1EE;1102 116D 11AD;B1EE;1102 116D 11AD; # (뇮; 뇮; 뇮; 뇮; 뇮; ) HANGUL SYLLABLE NYONH
+B1EF;B1EF;1102 116D 11AE;B1EF;1102 116D 11AE; # (뇯; 뇯; 뇯; 뇯; 뇯; ) HANGUL SYLLABLE NYOD
+B1F0;B1F0;1102 116D 11AF;B1F0;1102 116D 11AF; # (뇰; 뇰; 뇰; 뇰; 뇰; ) HANGUL SYLLABLE NYOL
+B1F1;B1F1;1102 116D 11B0;B1F1;1102 116D 11B0; # (뇱; 뇱; 뇱; 뇱; 뇱; ) HANGUL SYLLABLE NYOLG
+B1F2;B1F2;1102 116D 11B1;B1F2;1102 116D 11B1; # (뇲; 뇲; 뇲; 뇲; 뇲; ) HANGUL SYLLABLE NYOLM
+B1F3;B1F3;1102 116D 11B2;B1F3;1102 116D 11B2; # (뇳; 뇳; 뇳; 뇳; 뇳; ) HANGUL SYLLABLE NYOLB
+B1F4;B1F4;1102 116D 11B3;B1F4;1102 116D 11B3; # (뇴; 뇴; 뇴; 뇴; 뇴; ) HANGUL SYLLABLE NYOLS
+B1F5;B1F5;1102 116D 11B4;B1F5;1102 116D 11B4; # (뇵; 뇵; 뇵; 뇵; 뇵; ) HANGUL SYLLABLE NYOLT
+B1F6;B1F6;1102 116D 11B5;B1F6;1102 116D 11B5; # (뇶; 뇶; 뇶; 뇶; 뇶; ) HANGUL SYLLABLE NYOLP
+B1F7;B1F7;1102 116D 11B6;B1F7;1102 116D 11B6; # (뇷; 뇷; 뇷; 뇷; 뇷; ) HANGUL SYLLABLE NYOLH
+B1F8;B1F8;1102 116D 11B7;B1F8;1102 116D 11B7; # (뇸; 뇸; 뇸; 뇸; 뇸; ) HANGUL SYLLABLE NYOM
+B1F9;B1F9;1102 116D 11B8;B1F9;1102 116D 11B8; # (뇹; 뇹; 뇹; 뇹; 뇹; ) HANGUL SYLLABLE NYOB
+B1FA;B1FA;1102 116D 11B9;B1FA;1102 116D 11B9; # (뇺; 뇺; 뇺; 뇺; 뇺; ) HANGUL SYLLABLE NYOBS
+B1FB;B1FB;1102 116D 11BA;B1FB;1102 116D 11BA; # (뇻; 뇻; 뇻; 뇻; 뇻; ) HANGUL SYLLABLE NYOS
+B1FC;B1FC;1102 116D 11BB;B1FC;1102 116D 11BB; # (뇼; 뇼; 뇼; 뇼; 뇼; ) HANGUL SYLLABLE NYOSS
+B1FD;B1FD;1102 116D 11BC;B1FD;1102 116D 11BC; # (뇽; 뇽; 뇽; 뇽; 뇽; ) HANGUL SYLLABLE NYONG
+B1FE;B1FE;1102 116D 11BD;B1FE;1102 116D 11BD; # (뇾; 뇾; 뇾; 뇾; 뇾; ) HANGUL SYLLABLE NYOJ
+B1FF;B1FF;1102 116D 11BE;B1FF;1102 116D 11BE; # (뇿; 뇿; 뇿; 뇿; 뇿; ) HANGUL SYLLABLE NYOC
+B200;B200;1102 116D 11BF;B200;1102 116D 11BF; # (눀; 눀; 눀; 눀; 눀; ) HANGUL SYLLABLE NYOK
+B201;B201;1102 116D 11C0;B201;1102 116D 11C0; # (눁; 눁; 눁; 눁; 눁; ) HANGUL SYLLABLE NYOT
+B202;B202;1102 116D 11C1;B202;1102 116D 11C1; # (눂; 눂; 눂; 눂; 눂; ) HANGUL SYLLABLE NYOP
+B203;B203;1102 116D 11C2;B203;1102 116D 11C2; # (눃; 눃; 눃; 눃; 눃; ) HANGUL SYLLABLE NYOH
+B204;B204;1102 116E;B204;1102 116E; # (누; 누; 누; 누; 누; ) HANGUL SYLLABLE NU
+B205;B205;1102 116E 11A8;B205;1102 116E 11A8; # (눅; 눅; 눅; 눅; 눅; ) HANGUL SYLLABLE NUG
+B206;B206;1102 116E 11A9;B206;1102 116E 11A9; # (눆; 눆; 눆; 눆; 눆; ) HANGUL SYLLABLE NUGG
+B207;B207;1102 116E 11AA;B207;1102 116E 11AA; # (눇; 눇; 눇; 눇; 눇; ) HANGUL SYLLABLE NUGS
+B208;B208;1102 116E 11AB;B208;1102 116E 11AB; # (눈; 눈; 눈; 눈; 눈; ) HANGUL SYLLABLE NUN
+B209;B209;1102 116E 11AC;B209;1102 116E 11AC; # (눉; 눉; 눉; 눉; 눉; ) HANGUL SYLLABLE NUNJ
+B20A;B20A;1102 116E 11AD;B20A;1102 116E 11AD; # (눊; 눊; 눊; 눊; 눊; ) HANGUL SYLLABLE NUNH
+B20B;B20B;1102 116E 11AE;B20B;1102 116E 11AE; # (눋; 눋; 눋; 눋; 눋; ) HANGUL SYLLABLE NUD
+B20C;B20C;1102 116E 11AF;B20C;1102 116E 11AF; # (눌; 눌; 눌; 눌; 눌; ) HANGUL SYLLABLE NUL
+B20D;B20D;1102 116E 11B0;B20D;1102 116E 11B0; # (눍; 눍; 눍; 눍; 눍; ) HANGUL SYLLABLE NULG
+B20E;B20E;1102 116E 11B1;B20E;1102 116E 11B1; # (눎; 눎; 눎; 눎; 눎; ) HANGUL SYLLABLE NULM
+B20F;B20F;1102 116E 11B2;B20F;1102 116E 11B2; # (눏; 눏; 눏; 눏; 눏; ) HANGUL SYLLABLE NULB
+B210;B210;1102 116E 11B3;B210;1102 116E 11B3; # (눐; 눐; 눐; 눐; 눐; ) HANGUL SYLLABLE NULS
+B211;B211;1102 116E 11B4;B211;1102 116E 11B4; # (눑; 눑; 눑; 눑; 눑; ) HANGUL SYLLABLE NULT
+B212;B212;1102 116E 11B5;B212;1102 116E 11B5; # (눒; 눒; 눒; 눒; 눒; ) HANGUL SYLLABLE NULP
+B213;B213;1102 116E 11B6;B213;1102 116E 11B6; # (눓; 눓; 눓; 눓; 눓; ) HANGUL SYLLABLE NULH
+B214;B214;1102 116E 11B7;B214;1102 116E 11B7; # (눔; 눔; 눔; 눔; 눔; ) HANGUL SYLLABLE NUM
+B215;B215;1102 116E 11B8;B215;1102 116E 11B8; # (눕; 눕; 눕; 눕; 눕; ) HANGUL SYLLABLE NUB
+B216;B216;1102 116E 11B9;B216;1102 116E 11B9; # (눖; 눖; 눖; 눖; 눖; ) HANGUL SYLLABLE NUBS
+B217;B217;1102 116E 11BA;B217;1102 116E 11BA; # (눗; 눗; 눗; 눗; 눗; ) HANGUL SYLLABLE NUS
+B218;B218;1102 116E 11BB;B218;1102 116E 11BB; # (눘; 눘; 눘; 눘; 눘; ) HANGUL SYLLABLE NUSS
+B219;B219;1102 116E 11BC;B219;1102 116E 11BC; # (눙; 눙; 눙; 눙; 눙; ) HANGUL SYLLABLE NUNG
+B21A;B21A;1102 116E 11BD;B21A;1102 116E 11BD; # (눚; 눚; 눚; 눚; 눚; ) HANGUL SYLLABLE NUJ
+B21B;B21B;1102 116E 11BE;B21B;1102 116E 11BE; # (눛; 눛; 눛; 눛; 눛; ) HANGUL SYLLABLE NUC
+B21C;B21C;1102 116E 11BF;B21C;1102 116E 11BF; # (눜; 눜; 눜; 눜; 눜; ) HANGUL SYLLABLE NUK
+B21D;B21D;1102 116E 11C0;B21D;1102 116E 11C0; # (눝; 눝; 눝; 눝; 눝; ) HANGUL SYLLABLE NUT
+B21E;B21E;1102 116E 11C1;B21E;1102 116E 11C1; # (눞; 눞; 눞; 눞; 눞; ) HANGUL SYLLABLE NUP
+B21F;B21F;1102 116E 11C2;B21F;1102 116E 11C2; # (눟; 눟; 눟; 눟; 눟; ) HANGUL SYLLABLE NUH
+B220;B220;1102 116F;B220;1102 116F; # (눠; 눠; 눠; 눠; 눠; ) HANGUL SYLLABLE NWEO
+B221;B221;1102 116F 11A8;B221;1102 116F 11A8; # (눡; 눡; 눡; 눡; 눡; ) HANGUL SYLLABLE NWEOG
+B222;B222;1102 116F 11A9;B222;1102 116F 11A9; # (눢; 눢; 눢; 눢; 눢; ) HANGUL SYLLABLE NWEOGG
+B223;B223;1102 116F 11AA;B223;1102 116F 11AA; # (눣; 눣; 눣; 눣; 눣; ) HANGUL SYLLABLE NWEOGS
+B224;B224;1102 116F 11AB;B224;1102 116F 11AB; # (눤; 눤; 눤; 눤; 눤; ) HANGUL SYLLABLE NWEON
+B225;B225;1102 116F 11AC;B225;1102 116F 11AC; # (눥; 눥; 눥; 눥; 눥; ) HANGUL SYLLABLE NWEONJ
+B226;B226;1102 116F 11AD;B226;1102 116F 11AD; # (눦; 눦; 눦; 눦; 눦; ) HANGUL SYLLABLE NWEONH
+B227;B227;1102 116F 11AE;B227;1102 116F 11AE; # (눧; 눧; 눧; 눧; 눧; ) HANGUL SYLLABLE NWEOD
+B228;B228;1102 116F 11AF;B228;1102 116F 11AF; # (눨; 눨; 눨; 눨; 눨; ) HANGUL SYLLABLE NWEOL
+B229;B229;1102 116F 11B0;B229;1102 116F 11B0; # (눩; 눩; 눩; 눩; 눩; ) HANGUL SYLLABLE NWEOLG
+B22A;B22A;1102 116F 11B1;B22A;1102 116F 11B1; # (눪; 눪; 눪; 눪; 눪; ) HANGUL SYLLABLE NWEOLM
+B22B;B22B;1102 116F 11B2;B22B;1102 116F 11B2; # (눫; 눫; 눫; 눫; 눫; ) HANGUL SYLLABLE NWEOLB
+B22C;B22C;1102 116F 11B3;B22C;1102 116F 11B3; # (눬; 눬; 눬; 눬; 눬; ) HANGUL SYLLABLE NWEOLS
+B22D;B22D;1102 116F 11B4;B22D;1102 116F 11B4; # (눭; 눭; 눭; 눭; 눭; ) HANGUL SYLLABLE NWEOLT
+B22E;B22E;1102 116F 11B5;B22E;1102 116F 11B5; # (눮; 눮; 눮; 눮; 눮; ) HANGUL SYLLABLE NWEOLP
+B22F;B22F;1102 116F 11B6;B22F;1102 116F 11B6; # (눯; 눯; 눯; 눯; 눯; ) HANGUL SYLLABLE NWEOLH
+B230;B230;1102 116F 11B7;B230;1102 116F 11B7; # (눰; 눰; 눰; 눰; 눰; ) HANGUL SYLLABLE NWEOM
+B231;B231;1102 116F 11B8;B231;1102 116F 11B8; # (눱; 눱; 눱; 눱; 눱; ) HANGUL SYLLABLE NWEOB
+B232;B232;1102 116F 11B9;B232;1102 116F 11B9; # (눲; 눲; 눲; 눲; 눲; ) HANGUL SYLLABLE NWEOBS
+B233;B233;1102 116F 11BA;B233;1102 116F 11BA; # (눳; 눳; 눳; 눳; 눳; ) HANGUL SYLLABLE NWEOS
+B234;B234;1102 116F 11BB;B234;1102 116F 11BB; # (눴; 눴; 눴; 눴; 눴; ) HANGUL SYLLABLE NWEOSS
+B235;B235;1102 116F 11BC;B235;1102 116F 11BC; # (눵; 눵; 눵; 눵; 눵; ) HANGUL SYLLABLE NWEONG
+B236;B236;1102 116F 11BD;B236;1102 116F 11BD; # (눶; 눶; 눶; 눶; 눶; ) HANGUL SYLLABLE NWEOJ
+B237;B237;1102 116F 11BE;B237;1102 116F 11BE; # (눷; 눷; 눷; 눷; 눷; ) HANGUL SYLLABLE NWEOC
+B238;B238;1102 116F 11BF;B238;1102 116F 11BF; # (눸; 눸; 눸; 눸; 눸; ) HANGUL SYLLABLE NWEOK
+B239;B239;1102 116F 11C0;B239;1102 116F 11C0; # (눹; 눹; 눹; 눹; 눹; ) HANGUL SYLLABLE NWEOT
+B23A;B23A;1102 116F 11C1;B23A;1102 116F 11C1; # (눺; 눺; 눺; 눺; 눺; ) HANGUL SYLLABLE NWEOP
+B23B;B23B;1102 116F 11C2;B23B;1102 116F 11C2; # (눻; 눻; 눻; 눻; 눻; ) HANGUL SYLLABLE NWEOH
+B23C;B23C;1102 1170;B23C;1102 1170; # (눼; 눼; 눼; 눼; 눼; ) HANGUL SYLLABLE NWE
+B23D;B23D;1102 1170 11A8;B23D;1102 1170 11A8; # (눽; 눽; 눽; 눽; 눽; ) HANGUL SYLLABLE NWEG
+B23E;B23E;1102 1170 11A9;B23E;1102 1170 11A9; # (눾; 눾; 눾; 눾; 눾; ) HANGUL SYLLABLE NWEGG
+B23F;B23F;1102 1170 11AA;B23F;1102 1170 11AA; # (눿; 눿; 눿; 눿; 눿; ) HANGUL SYLLABLE NWEGS
+B240;B240;1102 1170 11AB;B240;1102 1170 11AB; # (뉀; 뉀; 뉀; 뉀; 뉀; ) HANGUL SYLLABLE NWEN
+B241;B241;1102 1170 11AC;B241;1102 1170 11AC; # (뉁; 뉁; 뉁; 뉁; 뉁; ) HANGUL SYLLABLE NWENJ
+B242;B242;1102 1170 11AD;B242;1102 1170 11AD; # (뉂; 뉂; 뉂; 뉂; 뉂; ) HANGUL SYLLABLE NWENH
+B243;B243;1102 1170 11AE;B243;1102 1170 11AE; # (뉃; 뉃; 뉃; 뉃; 뉃; ) HANGUL SYLLABLE NWED
+B244;B244;1102 1170 11AF;B244;1102 1170 11AF; # (뉄; 뉄; 뉄; 뉄; 뉄; ) HANGUL SYLLABLE NWEL
+B245;B245;1102 1170 11B0;B245;1102 1170 11B0; # (뉅; 뉅; 뉅; 뉅; 뉅; ) HANGUL SYLLABLE NWELG
+B246;B246;1102 1170 11B1;B246;1102 1170 11B1; # (뉆; 뉆; 뉆; 뉆; 뉆; ) HANGUL SYLLABLE NWELM
+B247;B247;1102 1170 11B2;B247;1102 1170 11B2; # (뉇; 뉇; 뉇; 뉇; 뉇; ) HANGUL SYLLABLE NWELB
+B248;B248;1102 1170 11B3;B248;1102 1170 11B3; # (뉈; 뉈; 뉈; 뉈; 뉈; ) HANGUL SYLLABLE NWELS
+B249;B249;1102 1170 11B4;B249;1102 1170 11B4; # (뉉; 뉉; 뉉; 뉉; 뉉; ) HANGUL SYLLABLE NWELT
+B24A;B24A;1102 1170 11B5;B24A;1102 1170 11B5; # (뉊; 뉊; 뉊; 뉊; 뉊; ) HANGUL SYLLABLE NWELP
+B24B;B24B;1102 1170 11B6;B24B;1102 1170 11B6; # (뉋; 뉋; 뉋; 뉋; 뉋; ) HANGUL SYLLABLE NWELH
+B24C;B24C;1102 1170 11B7;B24C;1102 1170 11B7; # (뉌; 뉌; 뉌; 뉌; 뉌; ) HANGUL SYLLABLE NWEM
+B24D;B24D;1102 1170 11B8;B24D;1102 1170 11B8; # (뉍; 뉍; 뉍; 뉍; 뉍; ) HANGUL SYLLABLE NWEB
+B24E;B24E;1102 1170 11B9;B24E;1102 1170 11B9; # (뉎; 뉎; 뉎; 뉎; 뉎; ) HANGUL SYLLABLE NWEBS
+B24F;B24F;1102 1170 11BA;B24F;1102 1170 11BA; # (뉏; 뉏; 뉏; 뉏; 뉏; ) HANGUL SYLLABLE NWES
+B250;B250;1102 1170 11BB;B250;1102 1170 11BB; # (뉐; 뉐; 뉐; 뉐; 뉐; ) HANGUL SYLLABLE NWESS
+B251;B251;1102 1170 11BC;B251;1102 1170 11BC; # (뉑; 뉑; 뉑; 뉑; 뉑; ) HANGUL SYLLABLE NWENG
+B252;B252;1102 1170 11BD;B252;1102 1170 11BD; # (뉒; 뉒; 뉒; 뉒; 뉒; ) HANGUL SYLLABLE NWEJ
+B253;B253;1102 1170 11BE;B253;1102 1170 11BE; # (뉓; 뉓; 뉓; 뉓; 뉓; ) HANGUL SYLLABLE NWEC
+B254;B254;1102 1170 11BF;B254;1102 1170 11BF; # (뉔; 뉔; 뉔; 뉔; 뉔; ) HANGUL SYLLABLE NWEK
+B255;B255;1102 1170 11C0;B255;1102 1170 11C0; # (뉕; 뉕; 뉕; 뉕; 뉕; ) HANGUL SYLLABLE NWET
+B256;B256;1102 1170 11C1;B256;1102 1170 11C1; # (뉖; 뉖; 뉖; 뉖; 뉖; ) HANGUL SYLLABLE NWEP
+B257;B257;1102 1170 11C2;B257;1102 1170 11C2; # (뉗; 뉗; 뉗; 뉗; 뉗; ) HANGUL SYLLABLE NWEH
+B258;B258;1102 1171;B258;1102 1171; # (뉘; 뉘; 뉘; 뉘; 뉘; ) HANGUL SYLLABLE NWI
+B259;B259;1102 1171 11A8;B259;1102 1171 11A8; # (뉙; 뉙; 뉙; 뉙; 뉙; ) HANGUL SYLLABLE NWIG
+B25A;B25A;1102 1171 11A9;B25A;1102 1171 11A9; # (뉚; 뉚; 뉚; 뉚; 뉚; ) HANGUL SYLLABLE NWIGG
+B25B;B25B;1102 1171 11AA;B25B;1102 1171 11AA; # (뉛; 뉛; 뉛; 뉛; 뉛; ) HANGUL SYLLABLE NWIGS
+B25C;B25C;1102 1171 11AB;B25C;1102 1171 11AB; # (뉜; 뉜; 뉜; 뉜; 뉜; ) HANGUL SYLLABLE NWIN
+B25D;B25D;1102 1171 11AC;B25D;1102 1171 11AC; # (뉝; 뉝; 뉝; 뉝; 뉝; ) HANGUL SYLLABLE NWINJ
+B25E;B25E;1102 1171 11AD;B25E;1102 1171 11AD; # (뉞; 뉞; 뉞; 뉞; 뉞; ) HANGUL SYLLABLE NWINH
+B25F;B25F;1102 1171 11AE;B25F;1102 1171 11AE; # (뉟; 뉟; 뉟; 뉟; 뉟; ) HANGUL SYLLABLE NWID
+B260;B260;1102 1171 11AF;B260;1102 1171 11AF; # (뉠; 뉠; 뉠; 뉠; 뉠; ) HANGUL SYLLABLE NWIL
+B261;B261;1102 1171 11B0;B261;1102 1171 11B0; # (뉡; 뉡; 뉡; 뉡; 뉡; ) HANGUL SYLLABLE NWILG
+B262;B262;1102 1171 11B1;B262;1102 1171 11B1; # (뉢; 뉢; 뉢; 뉢; 뉢; ) HANGUL SYLLABLE NWILM
+B263;B263;1102 1171 11B2;B263;1102 1171 11B2; # (뉣; 뉣; 뉣; 뉣; 뉣; ) HANGUL SYLLABLE NWILB
+B264;B264;1102 1171 11B3;B264;1102 1171 11B3; # (뉤; 뉤; 뉤; 뉤; 뉤; ) HANGUL SYLLABLE NWILS
+B265;B265;1102 1171 11B4;B265;1102 1171 11B4; # (뉥; 뉥; 뉥; 뉥; 뉥; ) HANGUL SYLLABLE NWILT
+B266;B266;1102 1171 11B5;B266;1102 1171 11B5; # (뉦; 뉦; 뉦; 뉦; 뉦; ) HANGUL SYLLABLE NWILP
+B267;B267;1102 1171 11B6;B267;1102 1171 11B6; # (뉧; 뉧; 뉧; 뉧; 뉧; ) HANGUL SYLLABLE NWILH
+B268;B268;1102 1171 11B7;B268;1102 1171 11B7; # (뉨; 뉨; 뉨; 뉨; 뉨; ) HANGUL SYLLABLE NWIM
+B269;B269;1102 1171 11B8;B269;1102 1171 11B8; # (뉩; 뉩; 뉩; 뉩; 뉩; ) HANGUL SYLLABLE NWIB
+B26A;B26A;1102 1171 11B9;B26A;1102 1171 11B9; # (뉪; 뉪; 뉪; 뉪; 뉪; ) HANGUL SYLLABLE NWIBS
+B26B;B26B;1102 1171 11BA;B26B;1102 1171 11BA; # (뉫; 뉫; 뉫; 뉫; 뉫; ) HANGUL SYLLABLE NWIS
+B26C;B26C;1102 1171 11BB;B26C;1102 1171 11BB; # (뉬; 뉬; 뉬; 뉬; 뉬; ) HANGUL SYLLABLE NWISS
+B26D;B26D;1102 1171 11BC;B26D;1102 1171 11BC; # (뉭; 뉭; 뉭; 뉭; 뉭; ) HANGUL SYLLABLE NWING
+B26E;B26E;1102 1171 11BD;B26E;1102 1171 11BD; # (뉮; 뉮; 뉮; 뉮; 뉮; ) HANGUL SYLLABLE NWIJ
+B26F;B26F;1102 1171 11BE;B26F;1102 1171 11BE; # (뉯; 뉯; 뉯; 뉯; 뉯; ) HANGUL SYLLABLE NWIC
+B270;B270;1102 1171 11BF;B270;1102 1171 11BF; # (뉰; 뉰; 뉰; 뉰; 뉰; ) HANGUL SYLLABLE NWIK
+B271;B271;1102 1171 11C0;B271;1102 1171 11C0; # (뉱; 뉱; 뉱; 뉱; 뉱; ) HANGUL SYLLABLE NWIT
+B272;B272;1102 1171 11C1;B272;1102 1171 11C1; # (뉲; 뉲; 뉲; 뉲; 뉲; ) HANGUL SYLLABLE NWIP
+B273;B273;1102 1171 11C2;B273;1102 1171 11C2; # (뉳; 뉳; 뉳; 뉳; 뉳; ) HANGUL SYLLABLE NWIH
+B274;B274;1102 1172;B274;1102 1172; # (뉴; 뉴; 뉴; 뉴; 뉴; ) HANGUL SYLLABLE NYU
+B275;B275;1102 1172 11A8;B275;1102 1172 11A8; # (뉵; 뉵; 뉵; 뉵; 뉵; ) HANGUL SYLLABLE NYUG
+B276;B276;1102 1172 11A9;B276;1102 1172 11A9; # (뉶; 뉶; 뉶; 뉶; 뉶; ) HANGUL SYLLABLE NYUGG
+B277;B277;1102 1172 11AA;B277;1102 1172 11AA; # (뉷; 뉷; 뉷; 뉷; 뉷; ) HANGUL SYLLABLE NYUGS
+B278;B278;1102 1172 11AB;B278;1102 1172 11AB; # (뉸; 뉸; 뉸; 뉸; 뉸; ) HANGUL SYLLABLE NYUN
+B279;B279;1102 1172 11AC;B279;1102 1172 11AC; # (뉹; 뉹; 뉹; 뉹; 뉹; ) HANGUL SYLLABLE NYUNJ
+B27A;B27A;1102 1172 11AD;B27A;1102 1172 11AD; # (뉺; 뉺; 뉺; 뉺; 뉺; ) HANGUL SYLLABLE NYUNH
+B27B;B27B;1102 1172 11AE;B27B;1102 1172 11AE; # (뉻; 뉻; 뉻; 뉻; 뉻; ) HANGUL SYLLABLE NYUD
+B27C;B27C;1102 1172 11AF;B27C;1102 1172 11AF; # (뉼; 뉼; 뉼; 뉼; 뉼; ) HANGUL SYLLABLE NYUL
+B27D;B27D;1102 1172 11B0;B27D;1102 1172 11B0; # (뉽; 뉽; 뉽; 뉽; 뉽; ) HANGUL SYLLABLE NYULG
+B27E;B27E;1102 1172 11B1;B27E;1102 1172 11B1; # (뉾; 뉾; 뉾; 뉾; 뉾; ) HANGUL SYLLABLE NYULM
+B27F;B27F;1102 1172 11B2;B27F;1102 1172 11B2; # (뉿; 뉿; 뉿; 뉿; 뉿; ) HANGUL SYLLABLE NYULB
+B280;B280;1102 1172 11B3;B280;1102 1172 11B3; # (늀; 늀; 늀; 늀; 늀; ) HANGUL SYLLABLE NYULS
+B281;B281;1102 1172 11B4;B281;1102 1172 11B4; # (늁; 늁; 늁; 늁; 늁; ) HANGUL SYLLABLE NYULT
+B282;B282;1102 1172 11B5;B282;1102 1172 11B5; # (늂; 늂; 늂; 늂; 늂; ) HANGUL SYLLABLE NYULP
+B283;B283;1102 1172 11B6;B283;1102 1172 11B6; # (늃; 늃; 늃; 늃; 늃; ) HANGUL SYLLABLE NYULH
+B284;B284;1102 1172 11B7;B284;1102 1172 11B7; # (늄; 늄; 늄; 늄; 늄; ) HANGUL SYLLABLE NYUM
+B285;B285;1102 1172 11B8;B285;1102 1172 11B8; # (늅; 늅; 늅; 늅; 늅; ) HANGUL SYLLABLE NYUB
+B286;B286;1102 1172 11B9;B286;1102 1172 11B9; # (늆; 늆; 늆; 늆; 늆; ) HANGUL SYLLABLE NYUBS
+B287;B287;1102 1172 11BA;B287;1102 1172 11BA; # (늇; 늇; 늇; 늇; 늇; ) HANGUL SYLLABLE NYUS
+B288;B288;1102 1172 11BB;B288;1102 1172 11BB; # (늈; 늈; 늈; 늈; 늈; ) HANGUL SYLLABLE NYUSS
+B289;B289;1102 1172 11BC;B289;1102 1172 11BC; # (늉; 늉; 늉; 늉; 늉; ) HANGUL SYLLABLE NYUNG
+B28A;B28A;1102 1172 11BD;B28A;1102 1172 11BD; # (늊; 늊; 늊; 늊; 늊; ) HANGUL SYLLABLE NYUJ
+B28B;B28B;1102 1172 11BE;B28B;1102 1172 11BE; # (늋; 늋; 늋; 늋; 늋; ) HANGUL SYLLABLE NYUC
+B28C;B28C;1102 1172 11BF;B28C;1102 1172 11BF; # (늌; 늌; 늌; 늌; 늌; ) HANGUL SYLLABLE NYUK
+B28D;B28D;1102 1172 11C0;B28D;1102 1172 11C0; # (늍; 늍; 늍; 늍; 늍; ) HANGUL SYLLABLE NYUT
+B28E;B28E;1102 1172 11C1;B28E;1102 1172 11C1; # (늎; 늎; 늎; 늎; 늎; ) HANGUL SYLLABLE NYUP
+B28F;B28F;1102 1172 11C2;B28F;1102 1172 11C2; # (늏; 늏; 늏; 늏; 늏; ) HANGUL SYLLABLE NYUH
+B290;B290;1102 1173;B290;1102 1173; # (느; 느; 느; 느; 느; ) HANGUL SYLLABLE NEU
+B291;B291;1102 1173 11A8;B291;1102 1173 11A8; # (늑; 늑; 늑; 늑; 늑; ) HANGUL SYLLABLE NEUG
+B292;B292;1102 1173 11A9;B292;1102 1173 11A9; # (늒; 늒; 늒; 늒; 늒; ) HANGUL SYLLABLE NEUGG
+B293;B293;1102 1173 11AA;B293;1102 1173 11AA; # (늓; 늓; 늓; 늓; 늓; ) HANGUL SYLLABLE NEUGS
+B294;B294;1102 1173 11AB;B294;1102 1173 11AB; # (는; 는; 는; 는; 는; ) HANGUL SYLLABLE NEUN
+B295;B295;1102 1173 11AC;B295;1102 1173 11AC; # (늕; 늕; 늕; 늕; 늕; ) HANGUL SYLLABLE NEUNJ
+B296;B296;1102 1173 11AD;B296;1102 1173 11AD; # (늖; 늖; 늖; 늖; 늖; ) HANGUL SYLLABLE NEUNH
+B297;B297;1102 1173 11AE;B297;1102 1173 11AE; # (늗; 늗; 늗; 늗; 늗; ) HANGUL SYLLABLE NEUD
+B298;B298;1102 1173 11AF;B298;1102 1173 11AF; # (늘; 늘; 늘; 늘; 늘; ) HANGUL SYLLABLE NEUL
+B299;B299;1102 1173 11B0;B299;1102 1173 11B0; # (늙; 늙; 늙; 늙; 늙; ) HANGUL SYLLABLE NEULG
+B29A;B29A;1102 1173 11B1;B29A;1102 1173 11B1; # (늚; 늚; 늚; 늚; 늚; ) HANGUL SYLLABLE NEULM
+B29B;B29B;1102 1173 11B2;B29B;1102 1173 11B2; # (늛; 늛; 늛; 늛; 늛; ) HANGUL SYLLABLE NEULB
+B29C;B29C;1102 1173 11B3;B29C;1102 1173 11B3; # (늜; 늜; 늜; 늜; 늜; ) HANGUL SYLLABLE NEULS
+B29D;B29D;1102 1173 11B4;B29D;1102 1173 11B4; # (늝; 늝; 늝; 늝; 늝; ) HANGUL SYLLABLE NEULT
+B29E;B29E;1102 1173 11B5;B29E;1102 1173 11B5; # (늞; 늞; 늞; 늞; 늞; ) HANGUL SYLLABLE NEULP
+B29F;B29F;1102 1173 11B6;B29F;1102 1173 11B6; # (늟; 늟; 늟; 늟; 늟; ) HANGUL SYLLABLE NEULH
+B2A0;B2A0;1102 1173 11B7;B2A0;1102 1173 11B7; # (늠; 늠; 늠; 늠; 늠; ) HANGUL SYLLABLE NEUM
+B2A1;B2A1;1102 1173 11B8;B2A1;1102 1173 11B8; # (늡; 늡; 늡; 늡; 늡; ) HANGUL SYLLABLE NEUB
+B2A2;B2A2;1102 1173 11B9;B2A2;1102 1173 11B9; # (늢; 늢; 늢; 늢; 늢; ) HANGUL SYLLABLE NEUBS
+B2A3;B2A3;1102 1173 11BA;B2A3;1102 1173 11BA; # (늣; 늣; 늣; 늣; 늣; ) HANGUL SYLLABLE NEUS
+B2A4;B2A4;1102 1173 11BB;B2A4;1102 1173 11BB; # (늤; 늤; 늤; 늤; 늤; ) HANGUL SYLLABLE NEUSS
+B2A5;B2A5;1102 1173 11BC;B2A5;1102 1173 11BC; # (능; 능; 능; 능; 능; ) HANGUL SYLLABLE NEUNG
+B2A6;B2A6;1102 1173 11BD;B2A6;1102 1173 11BD; # (늦; 늦; 늦; 늦; 늦; ) HANGUL SYLLABLE NEUJ
+B2A7;B2A7;1102 1173 11BE;B2A7;1102 1173 11BE; # (늧; 늧; 늧; 늧; 늧; ) HANGUL SYLLABLE NEUC
+B2A8;B2A8;1102 1173 11BF;B2A8;1102 1173 11BF; # (늨; 늨; 늨; 늨; 늨; ) HANGUL SYLLABLE NEUK
+B2A9;B2A9;1102 1173 11C0;B2A9;1102 1173 11C0; # (늩; 늩; 늩; 늩; 늩; ) HANGUL SYLLABLE NEUT
+B2AA;B2AA;1102 1173 11C1;B2AA;1102 1173 11C1; # (늪; 늪; 늪; 늪; 늪; ) HANGUL SYLLABLE NEUP
+B2AB;B2AB;1102 1173 11C2;B2AB;1102 1173 11C2; # (늫; 늫; 늫; 늫; 늫; ) HANGUL SYLLABLE NEUH
+B2AC;B2AC;1102 1174;B2AC;1102 1174; # (늬; 늬; 늬; 늬; 늬; ) HANGUL SYLLABLE NYI
+B2AD;B2AD;1102 1174 11A8;B2AD;1102 1174 11A8; # (늭; 늭; 늭; 늭; 늭; ) HANGUL SYLLABLE NYIG
+B2AE;B2AE;1102 1174 11A9;B2AE;1102 1174 11A9; # (늮; 늮; 늮; 늮; 늮; ) HANGUL SYLLABLE NYIGG
+B2AF;B2AF;1102 1174 11AA;B2AF;1102 1174 11AA; # (늯; 늯; 늯; 늯; 늯; ) HANGUL SYLLABLE NYIGS
+B2B0;B2B0;1102 1174 11AB;B2B0;1102 1174 11AB; # (늰; 늰; 늰; 늰; 늰; ) HANGUL SYLLABLE NYIN
+B2B1;B2B1;1102 1174 11AC;B2B1;1102 1174 11AC; # (늱; 늱; 늱; 늱; 늱; ) HANGUL SYLLABLE NYINJ
+B2B2;B2B2;1102 1174 11AD;B2B2;1102 1174 11AD; # (늲; 늲; 늲; 늲; 늲; ) HANGUL SYLLABLE NYINH
+B2B3;B2B3;1102 1174 11AE;B2B3;1102 1174 11AE; # (늳; 늳; 늳; 늳; 늳; ) HANGUL SYLLABLE NYID
+B2B4;B2B4;1102 1174 11AF;B2B4;1102 1174 11AF; # (늴; 늴; 늴; 늴; 늴; ) HANGUL SYLLABLE NYIL
+B2B5;B2B5;1102 1174 11B0;B2B5;1102 1174 11B0; # (늵; 늵; 늵; 늵; 늵; ) HANGUL SYLLABLE NYILG
+B2B6;B2B6;1102 1174 11B1;B2B6;1102 1174 11B1; # (늶; 늶; 늶; 늶; 늶; ) HANGUL SYLLABLE NYILM
+B2B7;B2B7;1102 1174 11B2;B2B7;1102 1174 11B2; # (늷; 늷; 늷; 늷; 늷; ) HANGUL SYLLABLE NYILB
+B2B8;B2B8;1102 1174 11B3;B2B8;1102 1174 11B3; # (늸; 늸; 늸; 늸; 늸; ) HANGUL SYLLABLE NYILS
+B2B9;B2B9;1102 1174 11B4;B2B9;1102 1174 11B4; # (늹; 늹; 늹; 늹; 늹; ) HANGUL SYLLABLE NYILT
+B2BA;B2BA;1102 1174 11B5;B2BA;1102 1174 11B5; # (늺; 늺; 늺; 늺; 늺; ) HANGUL SYLLABLE NYILP
+B2BB;B2BB;1102 1174 11B6;B2BB;1102 1174 11B6; # (늻; 늻; 늻; 늻; 늻; ) HANGUL SYLLABLE NYILH
+B2BC;B2BC;1102 1174 11B7;B2BC;1102 1174 11B7; # (늼; 늼; 늼; 늼; 늼; ) HANGUL SYLLABLE NYIM
+B2BD;B2BD;1102 1174 11B8;B2BD;1102 1174 11B8; # (늽; 늽; 늽; 늽; 늽; ) HANGUL SYLLABLE NYIB
+B2BE;B2BE;1102 1174 11B9;B2BE;1102 1174 11B9; # (늾; 늾; 늾; 늾; 늾; ) HANGUL SYLLABLE NYIBS
+B2BF;B2BF;1102 1174 11BA;B2BF;1102 1174 11BA; # (늿; 늿; 늿; 늿; 늿; ) HANGUL SYLLABLE NYIS
+B2C0;B2C0;1102 1174 11BB;B2C0;1102 1174 11BB; # (닀; 닀; 닀; 닀; 닀; ) HANGUL SYLLABLE NYISS
+B2C1;B2C1;1102 1174 11BC;B2C1;1102 1174 11BC; # (닁; 닁; 닁; 닁; 닁; ) HANGUL SYLLABLE NYING
+B2C2;B2C2;1102 1174 11BD;B2C2;1102 1174 11BD; # (닂; 닂; 닂; 닂; 닂; ) HANGUL SYLLABLE NYIJ
+B2C3;B2C3;1102 1174 11BE;B2C3;1102 1174 11BE; # (닃; 닃; 닃; 닃; 닃; ) HANGUL SYLLABLE NYIC
+B2C4;B2C4;1102 1174 11BF;B2C4;1102 1174 11BF; # (닄; 닄; 닄; 닄; 닄; ) HANGUL SYLLABLE NYIK
+B2C5;B2C5;1102 1174 11C0;B2C5;1102 1174 11C0; # (닅; 닅; 닅; 닅; 닅; ) HANGUL SYLLABLE NYIT
+B2C6;B2C6;1102 1174 11C1;B2C6;1102 1174 11C1; # (닆; 닆; 닆; 닆; 닆; ) HANGUL SYLLABLE NYIP
+B2C7;B2C7;1102 1174 11C2;B2C7;1102 1174 11C2; # (닇; 닇; 닇; 닇; 닇; ) HANGUL SYLLABLE NYIH
+B2C8;B2C8;1102 1175;B2C8;1102 1175; # (니; 니; 니; 니; 니; ) HANGUL SYLLABLE NI
+B2C9;B2C9;1102 1175 11A8;B2C9;1102 1175 11A8; # (닉; 닉; 닉; 닉; 닉; ) HANGUL SYLLABLE NIG
+B2CA;B2CA;1102 1175 11A9;B2CA;1102 1175 11A9; # (닊; 닊; 닊; 닊; 닊; ) HANGUL SYLLABLE NIGG
+B2CB;B2CB;1102 1175 11AA;B2CB;1102 1175 11AA; # (닋; 닋; 닋; 닋; 닋; ) HANGUL SYLLABLE NIGS
+B2CC;B2CC;1102 1175 11AB;B2CC;1102 1175 11AB; # (닌; 닌; 닌; 닌; 닌; ) HANGUL SYLLABLE NIN
+B2CD;B2CD;1102 1175 11AC;B2CD;1102 1175 11AC; # (닍; 닍; 닍; 닍; 닍; ) HANGUL SYLLABLE NINJ
+B2CE;B2CE;1102 1175 11AD;B2CE;1102 1175 11AD; # (닎; 닎; 닎; 닎; 닎; ) HANGUL SYLLABLE NINH
+B2CF;B2CF;1102 1175 11AE;B2CF;1102 1175 11AE; # (닏; 닏; 닏; 닏; 닏; ) HANGUL SYLLABLE NID
+B2D0;B2D0;1102 1175 11AF;B2D0;1102 1175 11AF; # (닐; 닐; 닐; 닐; 닐; ) HANGUL SYLLABLE NIL
+B2D1;B2D1;1102 1175 11B0;B2D1;1102 1175 11B0; # (닑; 닑; 닑; 닑; 닑; ) HANGUL SYLLABLE NILG
+B2D2;B2D2;1102 1175 11B1;B2D2;1102 1175 11B1; # (닒; 닒; 닒; 닒; 닒; ) HANGUL SYLLABLE NILM
+B2D3;B2D3;1102 1175 11B2;B2D3;1102 1175 11B2; # (닓; 닓; 닓; 닓; 닓; ) HANGUL SYLLABLE NILB
+B2D4;B2D4;1102 1175 11B3;B2D4;1102 1175 11B3; # (닔; 닔; 닔; 닔; 닔; ) HANGUL SYLLABLE NILS
+B2D5;B2D5;1102 1175 11B4;B2D5;1102 1175 11B4; # (닕; 닕; 닕; 닕; 닕; ) HANGUL SYLLABLE NILT
+B2D6;B2D6;1102 1175 11B5;B2D6;1102 1175 11B5; # (닖; 닖; 닖; 닖; 닖; ) HANGUL SYLLABLE NILP
+B2D7;B2D7;1102 1175 11B6;B2D7;1102 1175 11B6; # (닗; 닗; 닗; 닗; 닗; ) HANGUL SYLLABLE NILH
+B2D8;B2D8;1102 1175 11B7;B2D8;1102 1175 11B7; # (님; 님; 님; 님; 님; ) HANGUL SYLLABLE NIM
+B2D9;B2D9;1102 1175 11B8;B2D9;1102 1175 11B8; # (닙; 닙; 닙; 닙; 닙; ) HANGUL SYLLABLE NIB
+B2DA;B2DA;1102 1175 11B9;B2DA;1102 1175 11B9; # (닚; 닚; 닚; 닚; 닚; ) HANGUL SYLLABLE NIBS
+B2DB;B2DB;1102 1175 11BA;B2DB;1102 1175 11BA; # (닛; 닛; 닛; 닛; 닛; ) HANGUL SYLLABLE NIS
+B2DC;B2DC;1102 1175 11BB;B2DC;1102 1175 11BB; # (닜; 닜; 닜; 닜; 닜; ) HANGUL SYLLABLE NISS
+B2DD;B2DD;1102 1175 11BC;B2DD;1102 1175 11BC; # (닝; 닝; 닝; 닝; 닝; ) HANGUL SYLLABLE NING
+B2DE;B2DE;1102 1175 11BD;B2DE;1102 1175 11BD; # (닞; 닞; 닞; 닞; 닞; ) HANGUL SYLLABLE NIJ
+B2DF;B2DF;1102 1175 11BE;B2DF;1102 1175 11BE; # (닟; 닟; 닟; 닟; 닟; ) HANGUL SYLLABLE NIC
+B2E0;B2E0;1102 1175 11BF;B2E0;1102 1175 11BF; # (닠; 닠; 닠; 닠; 닠; ) HANGUL SYLLABLE NIK
+B2E1;B2E1;1102 1175 11C0;B2E1;1102 1175 11C0; # (닡; 닡; 닡; 닡; 닡; ) HANGUL SYLLABLE NIT
+B2E2;B2E2;1102 1175 11C1;B2E2;1102 1175 11C1; # (닢; 닢; 닢; 닢; 닢; ) HANGUL SYLLABLE NIP
+B2E3;B2E3;1102 1175 11C2;B2E3;1102 1175 11C2; # (닣; 닣; 닣; 닣; 닣; ) HANGUL SYLLABLE NIH
+B2E4;B2E4;1103 1161;B2E4;1103 1161; # (다; 다; 다; 다; 다; ) HANGUL SYLLABLE DA
+B2E5;B2E5;1103 1161 11A8;B2E5;1103 1161 11A8; # (닥; 닥; 닥; 닥; 닥; ) HANGUL SYLLABLE DAG
+B2E6;B2E6;1103 1161 11A9;B2E6;1103 1161 11A9; # (닦; 닦; 닦; 닦; 닦; ) HANGUL SYLLABLE DAGG
+B2E7;B2E7;1103 1161 11AA;B2E7;1103 1161 11AA; # (닧; 닧; 닧; 닧; 닧; ) HANGUL SYLLABLE DAGS
+B2E8;B2E8;1103 1161 11AB;B2E8;1103 1161 11AB; # (단; 단; 단; 단; 단; ) HANGUL SYLLABLE DAN
+B2E9;B2E9;1103 1161 11AC;B2E9;1103 1161 11AC; # (닩; 닩; 닩; 닩; 닩; ) HANGUL SYLLABLE DANJ
+B2EA;B2EA;1103 1161 11AD;B2EA;1103 1161 11AD; # (닪; 닪; 닪; 닪; 닪; ) HANGUL SYLLABLE DANH
+B2EB;B2EB;1103 1161 11AE;B2EB;1103 1161 11AE; # (닫; 닫; 닫; 닫; 닫; ) HANGUL SYLLABLE DAD
+B2EC;B2EC;1103 1161 11AF;B2EC;1103 1161 11AF; # (달; 달; 달; 달; 달; ) HANGUL SYLLABLE DAL
+B2ED;B2ED;1103 1161 11B0;B2ED;1103 1161 11B0; # (닭; 닭; 닭; 닭; 닭; ) HANGUL SYLLABLE DALG
+B2EE;B2EE;1103 1161 11B1;B2EE;1103 1161 11B1; # (닮; 닮; 닮; 닮; 닮; ) HANGUL SYLLABLE DALM
+B2EF;B2EF;1103 1161 11B2;B2EF;1103 1161 11B2; # (닯; 닯; 닯; 닯; 닯; ) HANGUL SYLLABLE DALB
+B2F0;B2F0;1103 1161 11B3;B2F0;1103 1161 11B3; # (닰; 닰; 닰; 닰; 닰; ) HANGUL SYLLABLE DALS
+B2F1;B2F1;1103 1161 11B4;B2F1;1103 1161 11B4; # (닱; 닱; 닱; 닱; 닱; ) HANGUL SYLLABLE DALT
+B2F2;B2F2;1103 1161 11B5;B2F2;1103 1161 11B5; # (닲; 닲; 닲; 닲; 닲; ) HANGUL SYLLABLE DALP
+B2F3;B2F3;1103 1161 11B6;B2F3;1103 1161 11B6; # (닳; 닳; 닳; 닳; 닳; ) HANGUL SYLLABLE DALH
+B2F4;B2F4;1103 1161 11B7;B2F4;1103 1161 11B7; # (담; 담; 담; 담; 담; ) HANGUL SYLLABLE DAM
+B2F5;B2F5;1103 1161 11B8;B2F5;1103 1161 11B8; # (답; 답; 답; 답; 답; ) HANGUL SYLLABLE DAB
+B2F6;B2F6;1103 1161 11B9;B2F6;1103 1161 11B9; # (닶; 닶; 닶; 닶; 닶; ) HANGUL SYLLABLE DABS
+B2F7;B2F7;1103 1161 11BA;B2F7;1103 1161 11BA; # (닷; 닷; 닷; 닷; 닷; ) HANGUL SYLLABLE DAS
+B2F8;B2F8;1103 1161 11BB;B2F8;1103 1161 11BB; # (닸; 닸; 닸; 닸; 닸; ) HANGUL SYLLABLE DASS
+B2F9;B2F9;1103 1161 11BC;B2F9;1103 1161 11BC; # (당; 당; 당; 당; 당; ) HANGUL SYLLABLE DANG
+B2FA;B2FA;1103 1161 11BD;B2FA;1103 1161 11BD; # (닺; 닺; 닺; 닺; 닺; ) HANGUL SYLLABLE DAJ
+B2FB;B2FB;1103 1161 11BE;B2FB;1103 1161 11BE; # (닻; 닻; 닻; 닻; 닻; ) HANGUL SYLLABLE DAC
+B2FC;B2FC;1103 1161 11BF;B2FC;1103 1161 11BF; # (닼; 닼; 닼; 닼; 닼; ) HANGUL SYLLABLE DAK
+B2FD;B2FD;1103 1161 11C0;B2FD;1103 1161 11C0; # (닽; 닽; 닽; 닽; 닽; ) HANGUL SYLLABLE DAT
+B2FE;B2FE;1103 1161 11C1;B2FE;1103 1161 11C1; # (닾; 닾; 닾; 닾; 닾; ) HANGUL SYLLABLE DAP
+B2FF;B2FF;1103 1161 11C2;B2FF;1103 1161 11C2; # (닿; 닿; 닿; 닿; 닿; ) HANGUL SYLLABLE DAH
+B300;B300;1103 1162;B300;1103 1162; # (대; 대; 대; 대; 대; ) HANGUL SYLLABLE DAE
+B301;B301;1103 1162 11A8;B301;1103 1162 11A8; # (댁; 댁; 댁; 댁; 댁; ) HANGUL SYLLABLE DAEG
+B302;B302;1103 1162 11A9;B302;1103 1162 11A9; # (댂; 댂; 댂; 댂; 댂; ) HANGUL SYLLABLE DAEGG
+B303;B303;1103 1162 11AA;B303;1103 1162 11AA; # (댃; 댃; 댃; 댃; 댃; ) HANGUL SYLLABLE DAEGS
+B304;B304;1103 1162 11AB;B304;1103 1162 11AB; # (댄; 댄; 댄; 댄; 댄; ) HANGUL SYLLABLE DAEN
+B305;B305;1103 1162 11AC;B305;1103 1162 11AC; # (댅; 댅; 댅; 댅; 댅; ) HANGUL SYLLABLE DAENJ
+B306;B306;1103 1162 11AD;B306;1103 1162 11AD; # (댆; 댆; 댆; 댆; 댆; ) HANGUL SYLLABLE DAENH
+B307;B307;1103 1162 11AE;B307;1103 1162 11AE; # (댇; 댇; 댇; 댇; 댇; ) HANGUL SYLLABLE DAED
+B308;B308;1103 1162 11AF;B308;1103 1162 11AF; # (댈; 댈; 댈; 댈; 댈; ) HANGUL SYLLABLE DAEL
+B309;B309;1103 1162 11B0;B309;1103 1162 11B0; # (댉; 댉; 댉; 댉; 댉; ) HANGUL SYLLABLE DAELG
+B30A;B30A;1103 1162 11B1;B30A;1103 1162 11B1; # (댊; 댊; 댊; 댊; 댊; ) HANGUL SYLLABLE DAELM
+B30B;B30B;1103 1162 11B2;B30B;1103 1162 11B2; # (댋; 댋; 댋; 댋; 댋; ) HANGUL SYLLABLE DAELB
+B30C;B30C;1103 1162 11B3;B30C;1103 1162 11B3; # (댌; 댌; 댌; 댌; 댌; ) HANGUL SYLLABLE DAELS
+B30D;B30D;1103 1162 11B4;B30D;1103 1162 11B4; # (댍; 댍; 댍; 댍; 댍; ) HANGUL SYLLABLE DAELT
+B30E;B30E;1103 1162 11B5;B30E;1103 1162 11B5; # (댎; 댎; 댎; 댎; 댎; ) HANGUL SYLLABLE DAELP
+B30F;B30F;1103 1162 11B6;B30F;1103 1162 11B6; # (댏; 댏; 댏; 댏; 댏; ) HANGUL SYLLABLE DAELH
+B310;B310;1103 1162 11B7;B310;1103 1162 11B7; # (댐; 댐; 댐; 댐; 댐; ) HANGUL SYLLABLE DAEM
+B311;B311;1103 1162 11B8;B311;1103 1162 11B8; # (댑; 댑; 댑; 댑; 댑; ) HANGUL SYLLABLE DAEB
+B312;B312;1103 1162 11B9;B312;1103 1162 11B9; # (댒; 댒; 댒; 댒; 댒; ) HANGUL SYLLABLE DAEBS
+B313;B313;1103 1162 11BA;B313;1103 1162 11BA; # (댓; 댓; 댓; 댓; 댓; ) HANGUL SYLLABLE DAES
+B314;B314;1103 1162 11BB;B314;1103 1162 11BB; # (댔; 댔; 댔; 댔; 댔; ) HANGUL SYLLABLE DAESS
+B315;B315;1103 1162 11BC;B315;1103 1162 11BC; # (댕; 댕; 댕; 댕; 댕; ) HANGUL SYLLABLE DAENG
+B316;B316;1103 1162 11BD;B316;1103 1162 11BD; # (댖; 댖; 댖; 댖; 댖; ) HANGUL SYLLABLE DAEJ
+B317;B317;1103 1162 11BE;B317;1103 1162 11BE; # (댗; 댗; 댗; 댗; 댗; ) HANGUL SYLLABLE DAEC
+B318;B318;1103 1162 11BF;B318;1103 1162 11BF; # (댘; 댘; 댘; 댘; 댘; ) HANGUL SYLLABLE DAEK
+B319;B319;1103 1162 11C0;B319;1103 1162 11C0; # (댙; 댙; 댙; 댙; 댙; ) HANGUL SYLLABLE DAET
+B31A;B31A;1103 1162 11C1;B31A;1103 1162 11C1; # (댚; 댚; 댚; 댚; 댚; ) HANGUL SYLLABLE DAEP
+B31B;B31B;1103 1162 11C2;B31B;1103 1162 11C2; # (댛; 댛; 댛; 댛; 댛; ) HANGUL SYLLABLE DAEH
+B31C;B31C;1103 1163;B31C;1103 1163; # (댜; 댜; 댜; 댜; 댜; ) HANGUL SYLLABLE DYA
+B31D;B31D;1103 1163 11A8;B31D;1103 1163 11A8; # (댝; 댝; 댝; 댝; 댝; ) HANGUL SYLLABLE DYAG
+B31E;B31E;1103 1163 11A9;B31E;1103 1163 11A9; # (댞; 댞; 댞; 댞; 댞; ) HANGUL SYLLABLE DYAGG
+B31F;B31F;1103 1163 11AA;B31F;1103 1163 11AA; # (댟; 댟; 댟; 댟; 댟; ) HANGUL SYLLABLE DYAGS
+B320;B320;1103 1163 11AB;B320;1103 1163 11AB; # (댠; 댠; 댠; 댠; 댠; ) HANGUL SYLLABLE DYAN
+B321;B321;1103 1163 11AC;B321;1103 1163 11AC; # (댡; 댡; 댡; 댡; 댡; ) HANGUL SYLLABLE DYANJ
+B322;B322;1103 1163 11AD;B322;1103 1163 11AD; # (댢; 댢; 댢; 댢; 댢; ) HANGUL SYLLABLE DYANH
+B323;B323;1103 1163 11AE;B323;1103 1163 11AE; # (댣; 댣; 댣; 댣; 댣; ) HANGUL SYLLABLE DYAD
+B324;B324;1103 1163 11AF;B324;1103 1163 11AF; # (댤; 댤; 댤; 댤; 댤; ) HANGUL SYLLABLE DYAL
+B325;B325;1103 1163 11B0;B325;1103 1163 11B0; # (댥; 댥; 댥; 댥; 댥; ) HANGUL SYLLABLE DYALG
+B326;B326;1103 1163 11B1;B326;1103 1163 11B1; # (댦; 댦; 댦; 댦; 댦; ) HANGUL SYLLABLE DYALM
+B327;B327;1103 1163 11B2;B327;1103 1163 11B2; # (댧; 댧; 댧; 댧; 댧; ) HANGUL SYLLABLE DYALB
+B328;B328;1103 1163 11B3;B328;1103 1163 11B3; # (댨; 댨; 댨; 댨; 댨; ) HANGUL SYLLABLE DYALS
+B329;B329;1103 1163 11B4;B329;1103 1163 11B4; # (댩; 댩; 댩; 댩; 댩; ) HANGUL SYLLABLE DYALT
+B32A;B32A;1103 1163 11B5;B32A;1103 1163 11B5; # (댪; 댪; 댪; 댪; 댪; ) HANGUL SYLLABLE DYALP
+B32B;B32B;1103 1163 11B6;B32B;1103 1163 11B6; # (댫; 댫; 댫; 댫; 댫; ) HANGUL SYLLABLE DYALH
+B32C;B32C;1103 1163 11B7;B32C;1103 1163 11B7; # (댬; 댬; 댬; 댬; 댬; ) HANGUL SYLLABLE DYAM
+B32D;B32D;1103 1163 11B8;B32D;1103 1163 11B8; # (댭; 댭; 댭; 댭; 댭; ) HANGUL SYLLABLE DYAB
+B32E;B32E;1103 1163 11B9;B32E;1103 1163 11B9; # (댮; 댮; 댮; 댮; 댮; ) HANGUL SYLLABLE DYABS
+B32F;B32F;1103 1163 11BA;B32F;1103 1163 11BA; # (댯; 댯; 댯; 댯; 댯; ) HANGUL SYLLABLE DYAS
+B330;B330;1103 1163 11BB;B330;1103 1163 11BB; # (댰; 댰; 댰; 댰; 댰; ) HANGUL SYLLABLE DYASS
+B331;B331;1103 1163 11BC;B331;1103 1163 11BC; # (댱; 댱; 댱; 댱; 댱; ) HANGUL SYLLABLE DYANG
+B332;B332;1103 1163 11BD;B332;1103 1163 11BD; # (댲; 댲; 댲; 댲; 댲; ) HANGUL SYLLABLE DYAJ
+B333;B333;1103 1163 11BE;B333;1103 1163 11BE; # (댳; 댳; 댳; 댳; 댳; ) HANGUL SYLLABLE DYAC
+B334;B334;1103 1163 11BF;B334;1103 1163 11BF; # (댴; 댴; 댴; 댴; 댴; ) HANGUL SYLLABLE DYAK
+B335;B335;1103 1163 11C0;B335;1103 1163 11C0; # (댵; 댵; 댵; 댵; 댵; ) HANGUL SYLLABLE DYAT
+B336;B336;1103 1163 11C1;B336;1103 1163 11C1; # (댶; 댶; 댶; 댶; 댶; ) HANGUL SYLLABLE DYAP
+B337;B337;1103 1163 11C2;B337;1103 1163 11C2; # (댷; 댷; 댷; 댷; 댷; ) HANGUL SYLLABLE DYAH
+B338;B338;1103 1164;B338;1103 1164; # (댸; 댸; 댸; 댸; 댸; ) HANGUL SYLLABLE DYAE
+B339;B339;1103 1164 11A8;B339;1103 1164 11A8; # (댹; 댹; 댹; 댹; 댹; ) HANGUL SYLLABLE DYAEG
+B33A;B33A;1103 1164 11A9;B33A;1103 1164 11A9; # (댺; 댺; 댺; 댺; 댺; ) HANGUL SYLLABLE DYAEGG
+B33B;B33B;1103 1164 11AA;B33B;1103 1164 11AA; # (댻; 댻; 댻; 댻; 댻; ) HANGUL SYLLABLE DYAEGS
+B33C;B33C;1103 1164 11AB;B33C;1103 1164 11AB; # (댼; 댼; 댼; 댼; 댼; ) HANGUL SYLLABLE DYAEN
+B33D;B33D;1103 1164 11AC;B33D;1103 1164 11AC; # (댽; 댽; 댽; 댽; 댽; ) HANGUL SYLLABLE DYAENJ
+B33E;B33E;1103 1164 11AD;B33E;1103 1164 11AD; # (댾; 댾; 댾; 댾; 댾; ) HANGUL SYLLABLE DYAENH
+B33F;B33F;1103 1164 11AE;B33F;1103 1164 11AE; # (댿; 댿; 댿; 댿; 댿; ) HANGUL SYLLABLE DYAED
+B340;B340;1103 1164 11AF;B340;1103 1164 11AF; # (덀; 덀; 덀; 덀; 덀; ) HANGUL SYLLABLE DYAEL
+B341;B341;1103 1164 11B0;B341;1103 1164 11B0; # (덁; 덁; 덁; 덁; 덁; ) HANGUL SYLLABLE DYAELG
+B342;B342;1103 1164 11B1;B342;1103 1164 11B1; # (덂; 덂; 덂; 덂; 덂; ) HANGUL SYLLABLE DYAELM
+B343;B343;1103 1164 11B2;B343;1103 1164 11B2; # (덃; 덃; 덃; 덃; 덃; ) HANGUL SYLLABLE DYAELB
+B344;B344;1103 1164 11B3;B344;1103 1164 11B3; # (덄; 덄; 덄; 덄; 덄; ) HANGUL SYLLABLE DYAELS
+B345;B345;1103 1164 11B4;B345;1103 1164 11B4; # (덅; 덅; 덅; 덅; 덅; ) HANGUL SYLLABLE DYAELT
+B346;B346;1103 1164 11B5;B346;1103 1164 11B5; # (덆; 덆; 덆; 덆; 덆; ) HANGUL SYLLABLE DYAELP
+B347;B347;1103 1164 11B6;B347;1103 1164 11B6; # (덇; 덇; 덇; 덇; 덇; ) HANGUL SYLLABLE DYAELH
+B348;B348;1103 1164 11B7;B348;1103 1164 11B7; # (덈; 덈; 덈; 덈; 덈; ) HANGUL SYLLABLE DYAEM
+B349;B349;1103 1164 11B8;B349;1103 1164 11B8; # (덉; 덉; 덉; 덉; 덉; ) HANGUL SYLLABLE DYAEB
+B34A;B34A;1103 1164 11B9;B34A;1103 1164 11B9; # (덊; 덊; 덊; 덊; 덊; ) HANGUL SYLLABLE DYAEBS
+B34B;B34B;1103 1164 11BA;B34B;1103 1164 11BA; # (덋; 덋; 덋; 덋; 덋; ) HANGUL SYLLABLE DYAES
+B34C;B34C;1103 1164 11BB;B34C;1103 1164 11BB; # (덌; 덌; 덌; 덌; 덌; ) HANGUL SYLLABLE DYAESS
+B34D;B34D;1103 1164 11BC;B34D;1103 1164 11BC; # (덍; 덍; 덍; 덍; 덍; ) HANGUL SYLLABLE DYAENG
+B34E;B34E;1103 1164 11BD;B34E;1103 1164 11BD; # (덎; 덎; 덎; 덎; 덎; ) HANGUL SYLLABLE DYAEJ
+B34F;B34F;1103 1164 11BE;B34F;1103 1164 11BE; # (덏; 덏; 덏; 덏; 덏; ) HANGUL SYLLABLE DYAEC
+B350;B350;1103 1164 11BF;B350;1103 1164 11BF; # (덐; 덐; 덐; 덐; 덐; ) HANGUL SYLLABLE DYAEK
+B351;B351;1103 1164 11C0;B351;1103 1164 11C0; # (덑; 덑; 덑; 덑; 덑; ) HANGUL SYLLABLE DYAET
+B352;B352;1103 1164 11C1;B352;1103 1164 11C1; # (덒; 덒; 덒; 덒; 덒; ) HANGUL SYLLABLE DYAEP
+B353;B353;1103 1164 11C2;B353;1103 1164 11C2; # (덓; 덓; 덓; 덓; 덓; ) HANGUL SYLLABLE DYAEH
+B354;B354;1103 1165;B354;1103 1165; # (더; 더; 더; 더; 더; ) HANGUL SYLLABLE DEO
+B355;B355;1103 1165 11A8;B355;1103 1165 11A8; # (덕; 덕; 덕; 덕; 덕; ) HANGUL SYLLABLE DEOG
+B356;B356;1103 1165 11A9;B356;1103 1165 11A9; # (덖; 덖; 덖; 덖; 덖; ) HANGUL SYLLABLE DEOGG
+B357;B357;1103 1165 11AA;B357;1103 1165 11AA; # (덗; 덗; 덗; 덗; 덗; ) HANGUL SYLLABLE DEOGS
+B358;B358;1103 1165 11AB;B358;1103 1165 11AB; # (던; 던; 던; 던; 던; ) HANGUL SYLLABLE DEON
+B359;B359;1103 1165 11AC;B359;1103 1165 11AC; # (덙; 덙; 덙; 덙; 덙; ) HANGUL SYLLABLE DEONJ
+B35A;B35A;1103 1165 11AD;B35A;1103 1165 11AD; # (덚; 덚; 덚; 덚; 덚; ) HANGUL SYLLABLE DEONH
+B35B;B35B;1103 1165 11AE;B35B;1103 1165 11AE; # (덛; 덛; 덛; 덛; 덛; ) HANGUL SYLLABLE DEOD
+B35C;B35C;1103 1165 11AF;B35C;1103 1165 11AF; # (덜; 덜; 덜; 덜; 덜; ) HANGUL SYLLABLE DEOL
+B35D;B35D;1103 1165 11B0;B35D;1103 1165 11B0; # (덝; 덝; 덝; 덝; 덝; ) HANGUL SYLLABLE DEOLG
+B35E;B35E;1103 1165 11B1;B35E;1103 1165 11B1; # (덞; 덞; 덞; 덞; 덞; ) HANGUL SYLLABLE DEOLM
+B35F;B35F;1103 1165 11B2;B35F;1103 1165 11B2; # (덟; 덟; 덟; 덟; 덟; ) HANGUL SYLLABLE DEOLB
+B360;B360;1103 1165 11B3;B360;1103 1165 11B3; # (덠; 덠; 덠; 덠; 덠; ) HANGUL SYLLABLE DEOLS
+B361;B361;1103 1165 11B4;B361;1103 1165 11B4; # (덡; 덡; 덡; 덡; 덡; ) HANGUL SYLLABLE DEOLT
+B362;B362;1103 1165 11B5;B362;1103 1165 11B5; # (덢; 덢; 덢; 덢; 덢; ) HANGUL SYLLABLE DEOLP
+B363;B363;1103 1165 11B6;B363;1103 1165 11B6; # (덣; 덣; 덣; 덣; 덣; ) HANGUL SYLLABLE DEOLH
+B364;B364;1103 1165 11B7;B364;1103 1165 11B7; # (덤; 덤; 덤; 덤; 덤; ) HANGUL SYLLABLE DEOM
+B365;B365;1103 1165 11B8;B365;1103 1165 11B8; # (덥; 덥; 덥; 덥; 덥; ) HANGUL SYLLABLE DEOB
+B366;B366;1103 1165 11B9;B366;1103 1165 11B9; # (덦; 덦; 덦; 덦; 덦; ) HANGUL SYLLABLE DEOBS
+B367;B367;1103 1165 11BA;B367;1103 1165 11BA; # (덧; 덧; 덧; 덧; 덧; ) HANGUL SYLLABLE DEOS
+B368;B368;1103 1165 11BB;B368;1103 1165 11BB; # (덨; 덨; 덨; 덨; 덨; ) HANGUL SYLLABLE DEOSS
+B369;B369;1103 1165 11BC;B369;1103 1165 11BC; # (덩; 덩; 덩; 덩; 덩; ) HANGUL SYLLABLE DEONG
+B36A;B36A;1103 1165 11BD;B36A;1103 1165 11BD; # (덪; 덪; 덪; 덪; 덪; ) HANGUL SYLLABLE DEOJ
+B36B;B36B;1103 1165 11BE;B36B;1103 1165 11BE; # (덫; 덫; 덫; 덫; 덫; ) HANGUL SYLLABLE DEOC
+B36C;B36C;1103 1165 11BF;B36C;1103 1165 11BF; # (덬; 덬; 덬; 덬; 덬; ) HANGUL SYLLABLE DEOK
+B36D;B36D;1103 1165 11C0;B36D;1103 1165 11C0; # (덭; 덭; 덭; 덭; 덭; ) HANGUL SYLLABLE DEOT
+B36E;B36E;1103 1165 11C1;B36E;1103 1165 11C1; # (덮; 덮; 덮; 덮; 덮; ) HANGUL SYLLABLE DEOP
+B36F;B36F;1103 1165 11C2;B36F;1103 1165 11C2; # (덯; 덯; 덯; 덯; 덯; ) HANGUL SYLLABLE DEOH
+B370;B370;1103 1166;B370;1103 1166; # (데; 데; 데; 데; 데; ) HANGUL SYLLABLE DE
+B371;B371;1103 1166 11A8;B371;1103 1166 11A8; # (덱; 덱; 덱; 덱; 덱; ) HANGUL SYLLABLE DEG
+B372;B372;1103 1166 11A9;B372;1103 1166 11A9; # (덲; 덲; 덲; 덲; 덲; ) HANGUL SYLLABLE DEGG
+B373;B373;1103 1166 11AA;B373;1103 1166 11AA; # (덳; 덳; 덳; 덳; 덳; ) HANGUL SYLLABLE DEGS
+B374;B374;1103 1166 11AB;B374;1103 1166 11AB; # (덴; 덴; 덴; 덴; 덴; ) HANGUL SYLLABLE DEN
+B375;B375;1103 1166 11AC;B375;1103 1166 11AC; # (덵; 덵; 덵; 덵; 덵; ) HANGUL SYLLABLE DENJ
+B376;B376;1103 1166 11AD;B376;1103 1166 11AD; # (덶; 덶; 덶; 덶; 덶; ) HANGUL SYLLABLE DENH
+B377;B377;1103 1166 11AE;B377;1103 1166 11AE; # (덷; 덷; 덷; 덷; 덷; ) HANGUL SYLLABLE DED
+B378;B378;1103 1166 11AF;B378;1103 1166 11AF; # (델; 델; 델; 델; 델; ) HANGUL SYLLABLE DEL
+B379;B379;1103 1166 11B0;B379;1103 1166 11B0; # (덹; 덹; 덹; 덹; 덹; ) HANGUL SYLLABLE DELG
+B37A;B37A;1103 1166 11B1;B37A;1103 1166 11B1; # (덺; 덺; 덺; 덺; 덺; ) HANGUL SYLLABLE DELM
+B37B;B37B;1103 1166 11B2;B37B;1103 1166 11B2; # (덻; 덻; 덻; 덻; 덻; ) HANGUL SYLLABLE DELB
+B37C;B37C;1103 1166 11B3;B37C;1103 1166 11B3; # (덼; 덼; 덼; 덼; 덼; ) HANGUL SYLLABLE DELS
+B37D;B37D;1103 1166 11B4;B37D;1103 1166 11B4; # (덽; 덽; 덽; 덽; 덽; ) HANGUL SYLLABLE DELT
+B37E;B37E;1103 1166 11B5;B37E;1103 1166 11B5; # (덾; 덾; 덾; 덾; 덾; ) HANGUL SYLLABLE DELP
+B37F;B37F;1103 1166 11B6;B37F;1103 1166 11B6; # (덿; 덿; 덿; 덿; 덿; ) HANGUL SYLLABLE DELH
+B380;B380;1103 1166 11B7;B380;1103 1166 11B7; # (뎀; 뎀; 뎀; 뎀; 뎀; ) HANGUL SYLLABLE DEM
+B381;B381;1103 1166 11B8;B381;1103 1166 11B8; # (뎁; 뎁; 뎁; 뎁; 뎁; ) HANGUL SYLLABLE DEB
+B382;B382;1103 1166 11B9;B382;1103 1166 11B9; # (뎂; 뎂; 뎂; 뎂; 뎂; ) HANGUL SYLLABLE DEBS
+B383;B383;1103 1166 11BA;B383;1103 1166 11BA; # (뎃; 뎃; 뎃; 뎃; 뎃; ) HANGUL SYLLABLE DES
+B384;B384;1103 1166 11BB;B384;1103 1166 11BB; # (뎄; 뎄; 뎄; 뎄; 뎄; ) HANGUL SYLLABLE DESS
+B385;B385;1103 1166 11BC;B385;1103 1166 11BC; # (뎅; 뎅; 뎅; 뎅; 뎅; ) HANGUL SYLLABLE DENG
+B386;B386;1103 1166 11BD;B386;1103 1166 11BD; # (뎆; 뎆; 뎆; 뎆; 뎆; ) HANGUL SYLLABLE DEJ
+B387;B387;1103 1166 11BE;B387;1103 1166 11BE; # (뎇; 뎇; 뎇; 뎇; 뎇; ) HANGUL SYLLABLE DEC
+B388;B388;1103 1166 11BF;B388;1103 1166 11BF; # (뎈; 뎈; 뎈; 뎈; 뎈; ) HANGUL SYLLABLE DEK
+B389;B389;1103 1166 11C0;B389;1103 1166 11C0; # (뎉; 뎉; 뎉; 뎉; 뎉; ) HANGUL SYLLABLE DET
+B38A;B38A;1103 1166 11C1;B38A;1103 1166 11C1; # (뎊; 뎊; 뎊; 뎊; 뎊; ) HANGUL SYLLABLE DEP
+B38B;B38B;1103 1166 11C2;B38B;1103 1166 11C2; # (뎋; 뎋; 뎋; 뎋; 뎋; ) HANGUL SYLLABLE DEH
+B38C;B38C;1103 1167;B38C;1103 1167; # (뎌; 뎌; 뎌; 뎌; 뎌; ) HANGUL SYLLABLE DYEO
+B38D;B38D;1103 1167 11A8;B38D;1103 1167 11A8; # (뎍; 뎍; 뎍; 뎍; 뎍; ) HANGUL SYLLABLE DYEOG
+B38E;B38E;1103 1167 11A9;B38E;1103 1167 11A9; # (뎎; 뎎; 뎎; 뎎; 뎎; ) HANGUL SYLLABLE DYEOGG
+B38F;B38F;1103 1167 11AA;B38F;1103 1167 11AA; # (뎏; 뎏; 뎏; 뎏; 뎏; ) HANGUL SYLLABLE DYEOGS
+B390;B390;1103 1167 11AB;B390;1103 1167 11AB; # (뎐; 뎐; 뎐; 뎐; 뎐; ) HANGUL SYLLABLE DYEON
+B391;B391;1103 1167 11AC;B391;1103 1167 11AC; # (뎑; 뎑; 뎑; 뎑; 뎑; ) HANGUL SYLLABLE DYEONJ
+B392;B392;1103 1167 11AD;B392;1103 1167 11AD; # (뎒; 뎒; 뎒; 뎒; 뎒; ) HANGUL SYLLABLE DYEONH
+B393;B393;1103 1167 11AE;B393;1103 1167 11AE; # (뎓; 뎓; 뎓; 뎓; 뎓; ) HANGUL SYLLABLE DYEOD
+B394;B394;1103 1167 11AF;B394;1103 1167 11AF; # (뎔; 뎔; 뎔; 뎔; 뎔; ) HANGUL SYLLABLE DYEOL
+B395;B395;1103 1167 11B0;B395;1103 1167 11B0; # (뎕; 뎕; 뎕; 뎕; 뎕; ) HANGUL SYLLABLE DYEOLG
+B396;B396;1103 1167 11B1;B396;1103 1167 11B1; # (뎖; 뎖; 뎖; 뎖; 뎖; ) HANGUL SYLLABLE DYEOLM
+B397;B397;1103 1167 11B2;B397;1103 1167 11B2; # (뎗; 뎗; 뎗; 뎗; 뎗; ) HANGUL SYLLABLE DYEOLB
+B398;B398;1103 1167 11B3;B398;1103 1167 11B3; # (뎘; 뎘; 뎘; 뎘; 뎘; ) HANGUL SYLLABLE DYEOLS
+B399;B399;1103 1167 11B4;B399;1103 1167 11B4; # (뎙; 뎙; 뎙; 뎙; 뎙; ) HANGUL SYLLABLE DYEOLT
+B39A;B39A;1103 1167 11B5;B39A;1103 1167 11B5; # (뎚; 뎚; 뎚; 뎚; 뎚; ) HANGUL SYLLABLE DYEOLP
+B39B;B39B;1103 1167 11B6;B39B;1103 1167 11B6; # (뎛; 뎛; 뎛; 뎛; 뎛; ) HANGUL SYLLABLE DYEOLH
+B39C;B39C;1103 1167 11B7;B39C;1103 1167 11B7; # (뎜; 뎜; 뎜; 뎜; 뎜; ) HANGUL SYLLABLE DYEOM
+B39D;B39D;1103 1167 11B8;B39D;1103 1167 11B8; # (뎝; 뎝; 뎝; 뎝; 뎝; ) HANGUL SYLLABLE DYEOB
+B39E;B39E;1103 1167 11B9;B39E;1103 1167 11B9; # (뎞; 뎞; 뎞; 뎞; 뎞; ) HANGUL SYLLABLE DYEOBS
+B39F;B39F;1103 1167 11BA;B39F;1103 1167 11BA; # (뎟; 뎟; 뎟; 뎟; 뎟; ) HANGUL SYLLABLE DYEOS
+B3A0;B3A0;1103 1167 11BB;B3A0;1103 1167 11BB; # (뎠; 뎠; 뎠; 뎠; 뎠; ) HANGUL SYLLABLE DYEOSS
+B3A1;B3A1;1103 1167 11BC;B3A1;1103 1167 11BC; # (뎡; 뎡; 뎡; 뎡; 뎡; ) HANGUL SYLLABLE DYEONG
+B3A2;B3A2;1103 1167 11BD;B3A2;1103 1167 11BD; # (뎢; 뎢; 뎢; 뎢; 뎢; ) HANGUL SYLLABLE DYEOJ
+B3A3;B3A3;1103 1167 11BE;B3A3;1103 1167 11BE; # (뎣; 뎣; 뎣; 뎣; 뎣; ) HANGUL SYLLABLE DYEOC
+B3A4;B3A4;1103 1167 11BF;B3A4;1103 1167 11BF; # (뎤; 뎤; 뎤; 뎤; 뎤; ) HANGUL SYLLABLE DYEOK
+B3A5;B3A5;1103 1167 11C0;B3A5;1103 1167 11C0; # (뎥; 뎥; 뎥; 뎥; 뎥; ) HANGUL SYLLABLE DYEOT
+B3A6;B3A6;1103 1167 11C1;B3A6;1103 1167 11C1; # (뎦; 뎦; 뎦; 뎦; 뎦; ) HANGUL SYLLABLE DYEOP
+B3A7;B3A7;1103 1167 11C2;B3A7;1103 1167 11C2; # (뎧; 뎧; 뎧; 뎧; 뎧; ) HANGUL SYLLABLE DYEOH
+B3A8;B3A8;1103 1168;B3A8;1103 1168; # (뎨; 뎨; 뎨; 뎨; 뎨; ) HANGUL SYLLABLE DYE
+B3A9;B3A9;1103 1168 11A8;B3A9;1103 1168 11A8; # (뎩; 뎩; 뎩; 뎩; 뎩; ) HANGUL SYLLABLE DYEG
+B3AA;B3AA;1103 1168 11A9;B3AA;1103 1168 11A9; # (뎪; 뎪; 뎪; 뎪; 뎪; ) HANGUL SYLLABLE DYEGG
+B3AB;B3AB;1103 1168 11AA;B3AB;1103 1168 11AA; # (뎫; 뎫; 뎫; 뎫; 뎫; ) HANGUL SYLLABLE DYEGS
+B3AC;B3AC;1103 1168 11AB;B3AC;1103 1168 11AB; # (뎬; 뎬; 뎬; 뎬; 뎬; ) HANGUL SYLLABLE DYEN
+B3AD;B3AD;1103 1168 11AC;B3AD;1103 1168 11AC; # (뎭; 뎭; 뎭; 뎭; 뎭; ) HANGUL SYLLABLE DYENJ
+B3AE;B3AE;1103 1168 11AD;B3AE;1103 1168 11AD; # (뎮; 뎮; 뎮; 뎮; 뎮; ) HANGUL SYLLABLE DYENH
+B3AF;B3AF;1103 1168 11AE;B3AF;1103 1168 11AE; # (뎯; 뎯; 뎯; 뎯; 뎯; ) HANGUL SYLLABLE DYED
+B3B0;B3B0;1103 1168 11AF;B3B0;1103 1168 11AF; # (뎰; 뎰; 뎰; 뎰; 뎰; ) HANGUL SYLLABLE DYEL
+B3B1;B3B1;1103 1168 11B0;B3B1;1103 1168 11B0; # (뎱; 뎱; 뎱; 뎱; 뎱; ) HANGUL SYLLABLE DYELG
+B3B2;B3B2;1103 1168 11B1;B3B2;1103 1168 11B1; # (뎲; 뎲; 뎲; 뎲; 뎲; ) HANGUL SYLLABLE DYELM
+B3B3;B3B3;1103 1168 11B2;B3B3;1103 1168 11B2; # (뎳; 뎳; 뎳; 뎳; 뎳; ) HANGUL SYLLABLE DYELB
+B3B4;B3B4;1103 1168 11B3;B3B4;1103 1168 11B3; # (뎴; 뎴; 뎴; 뎴; 뎴; ) HANGUL SYLLABLE DYELS
+B3B5;B3B5;1103 1168 11B4;B3B5;1103 1168 11B4; # (뎵; 뎵; 뎵; 뎵; 뎵; ) HANGUL SYLLABLE DYELT
+B3B6;B3B6;1103 1168 11B5;B3B6;1103 1168 11B5; # (뎶; 뎶; 뎶; 뎶; 뎶; ) HANGUL SYLLABLE DYELP
+B3B7;B3B7;1103 1168 11B6;B3B7;1103 1168 11B6; # (뎷; 뎷; 뎷; 뎷; 뎷; ) HANGUL SYLLABLE DYELH
+B3B8;B3B8;1103 1168 11B7;B3B8;1103 1168 11B7; # (뎸; 뎸; 뎸; 뎸; 뎸; ) HANGUL SYLLABLE DYEM
+B3B9;B3B9;1103 1168 11B8;B3B9;1103 1168 11B8; # (뎹; 뎹; 뎹; 뎹; 뎹; ) HANGUL SYLLABLE DYEB
+B3BA;B3BA;1103 1168 11B9;B3BA;1103 1168 11B9; # (뎺; 뎺; 뎺; 뎺; 뎺; ) HANGUL SYLLABLE DYEBS
+B3BB;B3BB;1103 1168 11BA;B3BB;1103 1168 11BA; # (뎻; 뎻; 뎻; 뎻; 뎻; ) HANGUL SYLLABLE DYES
+B3BC;B3BC;1103 1168 11BB;B3BC;1103 1168 11BB; # (뎼; 뎼; 뎼; 뎼; 뎼; ) HANGUL SYLLABLE DYESS
+B3BD;B3BD;1103 1168 11BC;B3BD;1103 1168 11BC; # (뎽; 뎽; 뎽; 뎽; 뎽; ) HANGUL SYLLABLE DYENG
+B3BE;B3BE;1103 1168 11BD;B3BE;1103 1168 11BD; # (뎾; 뎾; 뎾; 뎾; 뎾; ) HANGUL SYLLABLE DYEJ
+B3BF;B3BF;1103 1168 11BE;B3BF;1103 1168 11BE; # (뎿; 뎿; 뎿; 뎿; 뎿; ) HANGUL SYLLABLE DYEC
+B3C0;B3C0;1103 1168 11BF;B3C0;1103 1168 11BF; # (돀; 돀; 돀; 돀; 돀; ) HANGUL SYLLABLE DYEK
+B3C1;B3C1;1103 1168 11C0;B3C1;1103 1168 11C0; # (돁; 돁; 돁; 돁; 돁; ) HANGUL SYLLABLE DYET
+B3C2;B3C2;1103 1168 11C1;B3C2;1103 1168 11C1; # (돂; 돂; 돂; 돂; 돂; ) HANGUL SYLLABLE DYEP
+B3C3;B3C3;1103 1168 11C2;B3C3;1103 1168 11C2; # (돃; 돃; 돃; 돃; 돃; ) HANGUL SYLLABLE DYEH
+B3C4;B3C4;1103 1169;B3C4;1103 1169; # (도; 도; 도; 도; 도; ) HANGUL SYLLABLE DO
+B3C5;B3C5;1103 1169 11A8;B3C5;1103 1169 11A8; # (독; 독; 독; 독; 독; ) HANGUL SYLLABLE DOG
+B3C6;B3C6;1103 1169 11A9;B3C6;1103 1169 11A9; # (돆; 돆; 돆; 돆; 돆; ) HANGUL SYLLABLE DOGG
+B3C7;B3C7;1103 1169 11AA;B3C7;1103 1169 11AA; # (돇; 돇; 돇; 돇; 돇; ) HANGUL SYLLABLE DOGS
+B3C8;B3C8;1103 1169 11AB;B3C8;1103 1169 11AB; # (돈; 돈; 돈; 돈; 돈; ) HANGUL SYLLABLE DON
+B3C9;B3C9;1103 1169 11AC;B3C9;1103 1169 11AC; # (돉; 돉; 돉; 돉; 돉; ) HANGUL SYLLABLE DONJ
+B3CA;B3CA;1103 1169 11AD;B3CA;1103 1169 11AD; # (돊; 돊; 돊; 돊; 돊; ) HANGUL SYLLABLE DONH
+B3CB;B3CB;1103 1169 11AE;B3CB;1103 1169 11AE; # (돋; 돋; 돋; 돋; 돋; ) HANGUL SYLLABLE DOD
+B3CC;B3CC;1103 1169 11AF;B3CC;1103 1169 11AF; # (돌; 돌; 돌; 돌; 돌; ) HANGUL SYLLABLE DOL
+B3CD;B3CD;1103 1169 11B0;B3CD;1103 1169 11B0; # (돍; 돍; 돍; 돍; 돍; ) HANGUL SYLLABLE DOLG
+B3CE;B3CE;1103 1169 11B1;B3CE;1103 1169 11B1; # (돎; 돎; 돎; 돎; 돎; ) HANGUL SYLLABLE DOLM
+B3CF;B3CF;1103 1169 11B2;B3CF;1103 1169 11B2; # (돏; 돏; 돏; 돏; 돏; ) HANGUL SYLLABLE DOLB
+B3D0;B3D0;1103 1169 11B3;B3D0;1103 1169 11B3; # (돐; 돐; 돐; 돐; 돐; ) HANGUL SYLLABLE DOLS
+B3D1;B3D1;1103 1169 11B4;B3D1;1103 1169 11B4; # (돑; 돑; 돑; 돑; 돑; ) HANGUL SYLLABLE DOLT
+B3D2;B3D2;1103 1169 11B5;B3D2;1103 1169 11B5; # (돒; 돒; 돒; 돒; 돒; ) HANGUL SYLLABLE DOLP
+B3D3;B3D3;1103 1169 11B6;B3D3;1103 1169 11B6; # (돓; 돓; 돓; 돓; 돓; ) HANGUL SYLLABLE DOLH
+B3D4;B3D4;1103 1169 11B7;B3D4;1103 1169 11B7; # (돔; 돔; 돔; 돔; 돔; ) HANGUL SYLLABLE DOM
+B3D5;B3D5;1103 1169 11B8;B3D5;1103 1169 11B8; # (돕; 돕; 돕; 돕; 돕; ) HANGUL SYLLABLE DOB
+B3D6;B3D6;1103 1169 11B9;B3D6;1103 1169 11B9; # (돖; 돖; 돖; 돖; 돖; ) HANGUL SYLLABLE DOBS
+B3D7;B3D7;1103 1169 11BA;B3D7;1103 1169 11BA; # (돗; 돗; 돗; 돗; 돗; ) HANGUL SYLLABLE DOS
+B3D8;B3D8;1103 1169 11BB;B3D8;1103 1169 11BB; # (돘; 돘; 돘; 돘; 돘; ) HANGUL SYLLABLE DOSS
+B3D9;B3D9;1103 1169 11BC;B3D9;1103 1169 11BC; # (동; 동; 동; 동; 동; ) HANGUL SYLLABLE DONG
+B3DA;B3DA;1103 1169 11BD;B3DA;1103 1169 11BD; # (돚; 돚; 돚; 돚; 돚; ) HANGUL SYLLABLE DOJ
+B3DB;B3DB;1103 1169 11BE;B3DB;1103 1169 11BE; # (돛; 돛; 돛; 돛; 돛; ) HANGUL SYLLABLE DOC
+B3DC;B3DC;1103 1169 11BF;B3DC;1103 1169 11BF; # (돜; 돜; 돜; 돜; 돜; ) HANGUL SYLLABLE DOK
+B3DD;B3DD;1103 1169 11C0;B3DD;1103 1169 11C0; # (돝; 돝; 돝; 돝; 돝; ) HANGUL SYLLABLE DOT
+B3DE;B3DE;1103 1169 11C1;B3DE;1103 1169 11C1; # (돞; 돞; 돞; 돞; 돞; ) HANGUL SYLLABLE DOP
+B3DF;B3DF;1103 1169 11C2;B3DF;1103 1169 11C2; # (돟; 돟; 돟; 돟; 돟; ) HANGUL SYLLABLE DOH
+B3E0;B3E0;1103 116A;B3E0;1103 116A; # (돠; 돠; 돠; 돠; 돠; ) HANGUL SYLLABLE DWA
+B3E1;B3E1;1103 116A 11A8;B3E1;1103 116A 11A8; # (돡; 돡; 돡; 돡; 돡; ) HANGUL SYLLABLE DWAG
+B3E2;B3E2;1103 116A 11A9;B3E2;1103 116A 11A9; # (돢; 돢; 돢; 돢; 돢; ) HANGUL SYLLABLE DWAGG
+B3E3;B3E3;1103 116A 11AA;B3E3;1103 116A 11AA; # (돣; 돣; 돣; 돣; 돣; ) HANGUL SYLLABLE DWAGS
+B3E4;B3E4;1103 116A 11AB;B3E4;1103 116A 11AB; # (돤; 돤; 돤; 돤; 돤; ) HANGUL SYLLABLE DWAN
+B3E5;B3E5;1103 116A 11AC;B3E5;1103 116A 11AC; # (돥; 돥; 돥; 돥; 돥; ) HANGUL SYLLABLE DWANJ
+B3E6;B3E6;1103 116A 11AD;B3E6;1103 116A 11AD; # (돦; 돦; 돦; 돦; 돦; ) HANGUL SYLLABLE DWANH
+B3E7;B3E7;1103 116A 11AE;B3E7;1103 116A 11AE; # (돧; 돧; 돧; 돧; 돧; ) HANGUL SYLLABLE DWAD
+B3E8;B3E8;1103 116A 11AF;B3E8;1103 116A 11AF; # (돨; 돨; 돨; 돨; 돨; ) HANGUL SYLLABLE DWAL
+B3E9;B3E9;1103 116A 11B0;B3E9;1103 116A 11B0; # (돩; 돩; 돩; 돩; 돩; ) HANGUL SYLLABLE DWALG
+B3EA;B3EA;1103 116A 11B1;B3EA;1103 116A 11B1; # (돪; 돪; 돪; 돪; 돪; ) HANGUL SYLLABLE DWALM
+B3EB;B3EB;1103 116A 11B2;B3EB;1103 116A 11B2; # (돫; 돫; 돫; 돫; 돫; ) HANGUL SYLLABLE DWALB
+B3EC;B3EC;1103 116A 11B3;B3EC;1103 116A 11B3; # (돬; 돬; 돬; 돬; 돬; ) HANGUL SYLLABLE DWALS
+B3ED;B3ED;1103 116A 11B4;B3ED;1103 116A 11B4; # (돭; 돭; 돭; 돭; 돭; ) HANGUL SYLLABLE DWALT
+B3EE;B3EE;1103 116A 11B5;B3EE;1103 116A 11B5; # (돮; 돮; 돮; 돮; 돮; ) HANGUL SYLLABLE DWALP
+B3EF;B3EF;1103 116A 11B6;B3EF;1103 116A 11B6; # (돯; 돯; 돯; 돯; 돯; ) HANGUL SYLLABLE DWALH
+B3F0;B3F0;1103 116A 11B7;B3F0;1103 116A 11B7; # (돰; 돰; 돰; 돰; 돰; ) HANGUL SYLLABLE DWAM
+B3F1;B3F1;1103 116A 11B8;B3F1;1103 116A 11B8; # (돱; 돱; 돱; 돱; 돱; ) HANGUL SYLLABLE DWAB
+B3F2;B3F2;1103 116A 11B9;B3F2;1103 116A 11B9; # (돲; 돲; 돲; 돲; 돲; ) HANGUL SYLLABLE DWABS
+B3F3;B3F3;1103 116A 11BA;B3F3;1103 116A 11BA; # (돳; 돳; 돳; 돳; 돳; ) HANGUL SYLLABLE DWAS
+B3F4;B3F4;1103 116A 11BB;B3F4;1103 116A 11BB; # (돴; 돴; 돴; 돴; 돴; ) HANGUL SYLLABLE DWASS
+B3F5;B3F5;1103 116A 11BC;B3F5;1103 116A 11BC; # (돵; 돵; 돵; 돵; 돵; ) HANGUL SYLLABLE DWANG
+B3F6;B3F6;1103 116A 11BD;B3F6;1103 116A 11BD; # (돶; 돶; 돶; 돶; 돶; ) HANGUL SYLLABLE DWAJ
+B3F7;B3F7;1103 116A 11BE;B3F7;1103 116A 11BE; # (돷; 돷; 돷; 돷; 돷; ) HANGUL SYLLABLE DWAC
+B3F8;B3F8;1103 116A 11BF;B3F8;1103 116A 11BF; # (돸; 돸; 돸; 돸; 돸; ) HANGUL SYLLABLE DWAK
+B3F9;B3F9;1103 116A 11C0;B3F9;1103 116A 11C0; # (돹; 돹; 돹; 돹; 돹; ) HANGUL SYLLABLE DWAT
+B3FA;B3FA;1103 116A 11C1;B3FA;1103 116A 11C1; # (돺; 돺; 돺; 돺; 돺; ) HANGUL SYLLABLE DWAP
+B3FB;B3FB;1103 116A 11C2;B3FB;1103 116A 11C2; # (돻; 돻; 돻; 돻; 돻; ) HANGUL SYLLABLE DWAH
+B3FC;B3FC;1103 116B;B3FC;1103 116B; # (돼; 돼; 돼; 돼; 돼; ) HANGUL SYLLABLE DWAE
+B3FD;B3FD;1103 116B 11A8;B3FD;1103 116B 11A8; # (돽; 돽; 돽; 돽; 돽; ) HANGUL SYLLABLE DWAEG
+B3FE;B3FE;1103 116B 11A9;B3FE;1103 116B 11A9; # (돾; 돾; 돾; 돾; 돾; ) HANGUL SYLLABLE DWAEGG
+B3FF;B3FF;1103 116B 11AA;B3FF;1103 116B 11AA; # (돿; 돿; 돿; 돿; 돿; ) HANGUL SYLLABLE DWAEGS
+B400;B400;1103 116B 11AB;B400;1103 116B 11AB; # (됀; 됀; 됀; 됀; 됀; ) HANGUL SYLLABLE DWAEN
+B401;B401;1103 116B 11AC;B401;1103 116B 11AC; # (됁; 됁; 됁; 됁; 됁; ) HANGUL SYLLABLE DWAENJ
+B402;B402;1103 116B 11AD;B402;1103 116B 11AD; # (됂; 됂; 됂; 됂; 됂; ) HANGUL SYLLABLE DWAENH
+B403;B403;1103 116B 11AE;B403;1103 116B 11AE; # (됃; 됃; 됃; 됃; 됃; ) HANGUL SYLLABLE DWAED
+B404;B404;1103 116B 11AF;B404;1103 116B 11AF; # (됄; 됄; 됄; 됄; 됄; ) HANGUL SYLLABLE DWAEL
+B405;B405;1103 116B 11B0;B405;1103 116B 11B0; # (됅; 됅; 됅; 됅; 됅; ) HANGUL SYLLABLE DWAELG
+B406;B406;1103 116B 11B1;B406;1103 116B 11B1; # (됆; 됆; 됆; 됆; 됆; ) HANGUL SYLLABLE DWAELM
+B407;B407;1103 116B 11B2;B407;1103 116B 11B2; # (됇; 됇; 됇; 됇; 됇; ) HANGUL SYLLABLE DWAELB
+B408;B408;1103 116B 11B3;B408;1103 116B 11B3; # (됈; 됈; 됈; 됈; 됈; ) HANGUL SYLLABLE DWAELS
+B409;B409;1103 116B 11B4;B409;1103 116B 11B4; # (됉; 됉; 됉; 됉; 됉; ) HANGUL SYLLABLE DWAELT
+B40A;B40A;1103 116B 11B5;B40A;1103 116B 11B5; # (됊; 됊; 됊; 됊; 됊; ) HANGUL SYLLABLE DWAELP
+B40B;B40B;1103 116B 11B6;B40B;1103 116B 11B6; # (됋; 됋; 됋; 됋; 됋; ) HANGUL SYLLABLE DWAELH
+B40C;B40C;1103 116B 11B7;B40C;1103 116B 11B7; # (됌; 됌; 됌; 됌; 됌; ) HANGUL SYLLABLE DWAEM
+B40D;B40D;1103 116B 11B8;B40D;1103 116B 11B8; # (됍; 됍; 됍; 됍; 됍; ) HANGUL SYLLABLE DWAEB
+B40E;B40E;1103 116B 11B9;B40E;1103 116B 11B9; # (됎; 됎; 됎; 됎; 됎; ) HANGUL SYLLABLE DWAEBS
+B40F;B40F;1103 116B 11BA;B40F;1103 116B 11BA; # (됏; 됏; 됏; 됏; 됏; ) HANGUL SYLLABLE DWAES
+B410;B410;1103 116B 11BB;B410;1103 116B 11BB; # (됐; 됐; 됐; 됐; 됐; ) HANGUL SYLLABLE DWAESS
+B411;B411;1103 116B 11BC;B411;1103 116B 11BC; # (됑; 됑; 됑; 됑; 됑; ) HANGUL SYLLABLE DWAENG
+B412;B412;1103 116B 11BD;B412;1103 116B 11BD; # (됒; 됒; 됒; 됒; 됒; ) HANGUL SYLLABLE DWAEJ
+B413;B413;1103 116B 11BE;B413;1103 116B 11BE; # (됓; 됓; 됓; 됓; 됓; ) HANGUL SYLLABLE DWAEC
+B414;B414;1103 116B 11BF;B414;1103 116B 11BF; # (됔; 됔; 됔; 됔; 됔; ) HANGUL SYLLABLE DWAEK
+B415;B415;1103 116B 11C0;B415;1103 116B 11C0; # (됕; 됕; 됕; 됕; 됕; ) HANGUL SYLLABLE DWAET
+B416;B416;1103 116B 11C1;B416;1103 116B 11C1; # (됖; 됖; 됖; 됖; 됖; ) HANGUL SYLLABLE DWAEP
+B417;B417;1103 116B 11C2;B417;1103 116B 11C2; # (됗; 됗; 됗; 됗; 됗; ) HANGUL SYLLABLE DWAEH
+B418;B418;1103 116C;B418;1103 116C; # (되; 되; 되; 되; 되; ) HANGUL SYLLABLE DOE
+B419;B419;1103 116C 11A8;B419;1103 116C 11A8; # (됙; 됙; 됙; 됙; 됙; ) HANGUL SYLLABLE DOEG
+B41A;B41A;1103 116C 11A9;B41A;1103 116C 11A9; # (됚; 됚; 됚; 됚; 됚; ) HANGUL SYLLABLE DOEGG
+B41B;B41B;1103 116C 11AA;B41B;1103 116C 11AA; # (됛; 됛; 됛; 됛; 됛; ) HANGUL SYLLABLE DOEGS
+B41C;B41C;1103 116C 11AB;B41C;1103 116C 11AB; # (된; 된; 된; 된; 된; ) HANGUL SYLLABLE DOEN
+B41D;B41D;1103 116C 11AC;B41D;1103 116C 11AC; # (됝; 됝; 됝; 됝; 됝; ) HANGUL SYLLABLE DOENJ
+B41E;B41E;1103 116C 11AD;B41E;1103 116C 11AD; # (됞; 됞; 됞; 됞; 됞; ) HANGUL SYLLABLE DOENH
+B41F;B41F;1103 116C 11AE;B41F;1103 116C 11AE; # (됟; 됟; 됟; 됟; 됟; ) HANGUL SYLLABLE DOED
+B420;B420;1103 116C 11AF;B420;1103 116C 11AF; # (될; 될; 될; 될; 될; ) HANGUL SYLLABLE DOEL
+B421;B421;1103 116C 11B0;B421;1103 116C 11B0; # (됡; 됡; 됡; 됡; 됡; ) HANGUL SYLLABLE DOELG
+B422;B422;1103 116C 11B1;B422;1103 116C 11B1; # (됢; 됢; 됢; 됢; 됢; ) HANGUL SYLLABLE DOELM
+B423;B423;1103 116C 11B2;B423;1103 116C 11B2; # (됣; 됣; 됣; 됣; 됣; ) HANGUL SYLLABLE DOELB
+B424;B424;1103 116C 11B3;B424;1103 116C 11B3; # (됤; 됤; 됤; 됤; 됤; ) HANGUL SYLLABLE DOELS
+B425;B425;1103 116C 11B4;B425;1103 116C 11B4; # (됥; 됥; 됥; 됥; 됥; ) HANGUL SYLLABLE DOELT
+B426;B426;1103 116C 11B5;B426;1103 116C 11B5; # (됦; 됦; 됦; 됦; 됦; ) HANGUL SYLLABLE DOELP
+B427;B427;1103 116C 11B6;B427;1103 116C 11B6; # (됧; 됧; 됧; 됧; 됧; ) HANGUL SYLLABLE DOELH
+B428;B428;1103 116C 11B7;B428;1103 116C 11B7; # (됨; 됨; 됨; 됨; 됨; ) HANGUL SYLLABLE DOEM
+B429;B429;1103 116C 11B8;B429;1103 116C 11B8; # (됩; 됩; 됩; 됩; 됩; ) HANGUL SYLLABLE DOEB
+B42A;B42A;1103 116C 11B9;B42A;1103 116C 11B9; # (됪; 됪; 됪; 됪; 됪; ) HANGUL SYLLABLE DOEBS
+B42B;B42B;1103 116C 11BA;B42B;1103 116C 11BA; # (됫; 됫; 됫; 됫; 됫; ) HANGUL SYLLABLE DOES
+B42C;B42C;1103 116C 11BB;B42C;1103 116C 11BB; # (됬; 됬; 됬; 됬; 됬; ) HANGUL SYLLABLE DOESS
+B42D;B42D;1103 116C 11BC;B42D;1103 116C 11BC; # (됭; 됭; 됭; 됭; 됭; ) HANGUL SYLLABLE DOENG
+B42E;B42E;1103 116C 11BD;B42E;1103 116C 11BD; # (됮; 됮; 됮; 됮; 됮; ) HANGUL SYLLABLE DOEJ
+B42F;B42F;1103 116C 11BE;B42F;1103 116C 11BE; # (됯; 됯; 됯; 됯; 됯; ) HANGUL SYLLABLE DOEC
+B430;B430;1103 116C 11BF;B430;1103 116C 11BF; # (됰; 됰; 됰; 됰; 됰; ) HANGUL SYLLABLE DOEK
+B431;B431;1103 116C 11C0;B431;1103 116C 11C0; # (됱; 됱; 됱; 됱; 됱; ) HANGUL SYLLABLE DOET
+B432;B432;1103 116C 11C1;B432;1103 116C 11C1; # (됲; 됲; 됲; 됲; 됲; ) HANGUL SYLLABLE DOEP
+B433;B433;1103 116C 11C2;B433;1103 116C 11C2; # (됳; 됳; 됳; 됳; 됳; ) HANGUL SYLLABLE DOEH
+B434;B434;1103 116D;B434;1103 116D; # (됴; 됴; 됴; 됴; 됴; ) HANGUL SYLLABLE DYO
+B435;B435;1103 116D 11A8;B435;1103 116D 11A8; # (됵; 됵; 됵; 됵; 됵; ) HANGUL SYLLABLE DYOG
+B436;B436;1103 116D 11A9;B436;1103 116D 11A9; # (됶; 됶; 됶; 됶; 됶; ) HANGUL SYLLABLE DYOGG
+B437;B437;1103 116D 11AA;B437;1103 116D 11AA; # (됷; 됷; 됷; 됷; 됷; ) HANGUL SYLLABLE DYOGS
+B438;B438;1103 116D 11AB;B438;1103 116D 11AB; # (됸; 됸; 됸; 됸; 됸; ) HANGUL SYLLABLE DYON
+B439;B439;1103 116D 11AC;B439;1103 116D 11AC; # (됹; 됹; 됹; 됹; 됹; ) HANGUL SYLLABLE DYONJ
+B43A;B43A;1103 116D 11AD;B43A;1103 116D 11AD; # (됺; 됺; 됺; 됺; 됺; ) HANGUL SYLLABLE DYONH
+B43B;B43B;1103 116D 11AE;B43B;1103 116D 11AE; # (됻; 됻; 됻; 됻; 됻; ) HANGUL SYLLABLE DYOD
+B43C;B43C;1103 116D 11AF;B43C;1103 116D 11AF; # (됼; 됼; 됼; 됼; 됼; ) HANGUL SYLLABLE DYOL
+B43D;B43D;1103 116D 11B0;B43D;1103 116D 11B0; # (됽; 됽; 됽; 됽; 됽; ) HANGUL SYLLABLE DYOLG
+B43E;B43E;1103 116D 11B1;B43E;1103 116D 11B1; # (됾; 됾; 됾; 됾; 됾; ) HANGUL SYLLABLE DYOLM
+B43F;B43F;1103 116D 11B2;B43F;1103 116D 11B2; # (됿; 됿; 됿; 됿; 됿; ) HANGUL SYLLABLE DYOLB
+B440;B440;1103 116D 11B3;B440;1103 116D 11B3; # (둀; 둀; 둀; 둀; 둀; ) HANGUL SYLLABLE DYOLS
+B441;B441;1103 116D 11B4;B441;1103 116D 11B4; # (둁; 둁; 둁; 둁; 둁; ) HANGUL SYLLABLE DYOLT
+B442;B442;1103 116D 11B5;B442;1103 116D 11B5; # (둂; 둂; 둂; 둂; 둂; ) HANGUL SYLLABLE DYOLP
+B443;B443;1103 116D 11B6;B443;1103 116D 11B6; # (둃; 둃; 둃; 둃; 둃; ) HANGUL SYLLABLE DYOLH
+B444;B444;1103 116D 11B7;B444;1103 116D 11B7; # (둄; 둄; 둄; 둄; 둄; ) HANGUL SYLLABLE DYOM
+B445;B445;1103 116D 11B8;B445;1103 116D 11B8; # (둅; 둅; 둅; 둅; 둅; ) HANGUL SYLLABLE DYOB
+B446;B446;1103 116D 11B9;B446;1103 116D 11B9; # (둆; 둆; 둆; 둆; 둆; ) HANGUL SYLLABLE DYOBS
+B447;B447;1103 116D 11BA;B447;1103 116D 11BA; # (둇; 둇; 둇; 둇; 둇; ) HANGUL SYLLABLE DYOS
+B448;B448;1103 116D 11BB;B448;1103 116D 11BB; # (둈; 둈; 둈; 둈; 둈; ) HANGUL SYLLABLE DYOSS
+B449;B449;1103 116D 11BC;B449;1103 116D 11BC; # (둉; 둉; 둉; 둉; 둉; ) HANGUL SYLLABLE DYONG
+B44A;B44A;1103 116D 11BD;B44A;1103 116D 11BD; # (둊; 둊; 둊; 둊; 둊; ) HANGUL SYLLABLE DYOJ
+B44B;B44B;1103 116D 11BE;B44B;1103 116D 11BE; # (둋; 둋; 둋; 둋; 둋; ) HANGUL SYLLABLE DYOC
+B44C;B44C;1103 116D 11BF;B44C;1103 116D 11BF; # (둌; 둌; 둌; 둌; 둌; ) HANGUL SYLLABLE DYOK
+B44D;B44D;1103 116D 11C0;B44D;1103 116D 11C0; # (둍; 둍; 둍; 둍; 둍; ) HANGUL SYLLABLE DYOT
+B44E;B44E;1103 116D 11C1;B44E;1103 116D 11C1; # (둎; 둎; 둎; 둎; 둎; ) HANGUL SYLLABLE DYOP
+B44F;B44F;1103 116D 11C2;B44F;1103 116D 11C2; # (둏; 둏; 둏; 둏; 둏; ) HANGUL SYLLABLE DYOH
+B450;B450;1103 116E;B450;1103 116E; # (두; 두; 두; 두; 두; ) HANGUL SYLLABLE DU
+B451;B451;1103 116E 11A8;B451;1103 116E 11A8; # (둑; 둑; 둑; 둑; 둑; ) HANGUL SYLLABLE DUG
+B452;B452;1103 116E 11A9;B452;1103 116E 11A9; # (둒; 둒; 둒; 둒; 둒; ) HANGUL SYLLABLE DUGG
+B453;B453;1103 116E 11AA;B453;1103 116E 11AA; # (둓; 둓; 둓; 둓; 둓; ) HANGUL SYLLABLE DUGS
+B454;B454;1103 116E 11AB;B454;1103 116E 11AB; # (둔; 둔; 둔; 둔; 둔; ) HANGUL SYLLABLE DUN
+B455;B455;1103 116E 11AC;B455;1103 116E 11AC; # (둕; 둕; 둕; 둕; 둕; ) HANGUL SYLLABLE DUNJ
+B456;B456;1103 116E 11AD;B456;1103 116E 11AD; # (둖; 둖; 둖; 둖; 둖; ) HANGUL SYLLABLE DUNH
+B457;B457;1103 116E 11AE;B457;1103 116E 11AE; # (둗; 둗; 둗; 둗; 둗; ) HANGUL SYLLABLE DUD
+B458;B458;1103 116E 11AF;B458;1103 116E 11AF; # (둘; 둘; 둘; 둘; 둘; ) HANGUL SYLLABLE DUL
+B459;B459;1103 116E 11B0;B459;1103 116E 11B0; # (둙; 둙; 둙; 둙; 둙; ) HANGUL SYLLABLE DULG
+B45A;B45A;1103 116E 11B1;B45A;1103 116E 11B1; # (둚; 둚; 둚; 둚; 둚; ) HANGUL SYLLABLE DULM
+B45B;B45B;1103 116E 11B2;B45B;1103 116E 11B2; # (둛; 둛; 둛; 둛; 둛; ) HANGUL SYLLABLE DULB
+B45C;B45C;1103 116E 11B3;B45C;1103 116E 11B3; # (둜; 둜; 둜; 둜; 둜; ) HANGUL SYLLABLE DULS
+B45D;B45D;1103 116E 11B4;B45D;1103 116E 11B4; # (둝; 둝; 둝; 둝; 둝; ) HANGUL SYLLABLE DULT
+B45E;B45E;1103 116E 11B5;B45E;1103 116E 11B5; # (둞; 둞; 둞; 둞; 둞; ) HANGUL SYLLABLE DULP
+B45F;B45F;1103 116E 11B6;B45F;1103 116E 11B6; # (둟; 둟; 둟; 둟; 둟; ) HANGUL SYLLABLE DULH
+B460;B460;1103 116E 11B7;B460;1103 116E 11B7; # (둠; 둠; 둠; 둠; 둠; ) HANGUL SYLLABLE DUM
+B461;B461;1103 116E 11B8;B461;1103 116E 11B8; # (둡; 둡; 둡; 둡; 둡; ) HANGUL SYLLABLE DUB
+B462;B462;1103 116E 11B9;B462;1103 116E 11B9; # (둢; 둢; 둢; 둢; 둢; ) HANGUL SYLLABLE DUBS
+B463;B463;1103 116E 11BA;B463;1103 116E 11BA; # (둣; 둣; 둣; 둣; 둣; ) HANGUL SYLLABLE DUS
+B464;B464;1103 116E 11BB;B464;1103 116E 11BB; # (둤; 둤; 둤; 둤; 둤; ) HANGUL SYLLABLE DUSS
+B465;B465;1103 116E 11BC;B465;1103 116E 11BC; # (둥; 둥; 둥; 둥; 둥; ) HANGUL SYLLABLE DUNG
+B466;B466;1103 116E 11BD;B466;1103 116E 11BD; # (둦; 둦; 둦; 둦; 둦; ) HANGUL SYLLABLE DUJ
+B467;B467;1103 116E 11BE;B467;1103 116E 11BE; # (둧; 둧; 둧; 둧; 둧; ) HANGUL SYLLABLE DUC
+B468;B468;1103 116E 11BF;B468;1103 116E 11BF; # (둨; 둨; 둨; 둨; 둨; ) HANGUL SYLLABLE DUK
+B469;B469;1103 116E 11C0;B469;1103 116E 11C0; # (둩; 둩; 둩; 둩; 둩; ) HANGUL SYLLABLE DUT
+B46A;B46A;1103 116E 11C1;B46A;1103 116E 11C1; # (둪; 둪; 둪; 둪; 둪; ) HANGUL SYLLABLE DUP
+B46B;B46B;1103 116E 11C2;B46B;1103 116E 11C2; # (둫; 둫; 둫; 둫; 둫; ) HANGUL SYLLABLE DUH
+B46C;B46C;1103 116F;B46C;1103 116F; # (둬; 둬; 둬; 둬; 둬; ) HANGUL SYLLABLE DWEO
+B46D;B46D;1103 116F 11A8;B46D;1103 116F 11A8; # (둭; 둭; 둭; 둭; 둭; ) HANGUL SYLLABLE DWEOG
+B46E;B46E;1103 116F 11A9;B46E;1103 116F 11A9; # (둮; 둮; 둮; 둮; 둮; ) HANGUL SYLLABLE DWEOGG
+B46F;B46F;1103 116F 11AA;B46F;1103 116F 11AA; # (둯; 둯; 둯; 둯; 둯; ) HANGUL SYLLABLE DWEOGS
+B470;B470;1103 116F 11AB;B470;1103 116F 11AB; # (둰; 둰; 둰; 둰; 둰; ) HANGUL SYLLABLE DWEON
+B471;B471;1103 116F 11AC;B471;1103 116F 11AC; # (둱; 둱; 둱; 둱; 둱; ) HANGUL SYLLABLE DWEONJ
+B472;B472;1103 116F 11AD;B472;1103 116F 11AD; # (둲; 둲; 둲; 둲; 둲; ) HANGUL SYLLABLE DWEONH
+B473;B473;1103 116F 11AE;B473;1103 116F 11AE; # (둳; 둳; 둳; 둳; 둳; ) HANGUL SYLLABLE DWEOD
+B474;B474;1103 116F 11AF;B474;1103 116F 11AF; # (둴; 둴; 둴; 둴; 둴; ) HANGUL SYLLABLE DWEOL
+B475;B475;1103 116F 11B0;B475;1103 116F 11B0; # (둵; 둵; 둵; 둵; 둵; ) HANGUL SYLLABLE DWEOLG
+B476;B476;1103 116F 11B1;B476;1103 116F 11B1; # (둶; 둶; 둶; 둶; 둶; ) HANGUL SYLLABLE DWEOLM
+B477;B477;1103 116F 11B2;B477;1103 116F 11B2; # (둷; 둷; 둷; 둷; 둷; ) HANGUL SYLLABLE DWEOLB
+B478;B478;1103 116F 11B3;B478;1103 116F 11B3; # (둸; 둸; 둸; 둸; 둸; ) HANGUL SYLLABLE DWEOLS
+B479;B479;1103 116F 11B4;B479;1103 116F 11B4; # (둹; 둹; 둹; 둹; 둹; ) HANGUL SYLLABLE DWEOLT
+B47A;B47A;1103 116F 11B5;B47A;1103 116F 11B5; # (둺; 둺; 둺; 둺; 둺; ) HANGUL SYLLABLE DWEOLP
+B47B;B47B;1103 116F 11B6;B47B;1103 116F 11B6; # (둻; 둻; 둻; 둻; 둻; ) HANGUL SYLLABLE DWEOLH
+B47C;B47C;1103 116F 11B7;B47C;1103 116F 11B7; # (둼; 둼; 둼; 둼; 둼; ) HANGUL SYLLABLE DWEOM
+B47D;B47D;1103 116F 11B8;B47D;1103 116F 11B8; # (둽; 둽; 둽; 둽; 둽; ) HANGUL SYLLABLE DWEOB
+B47E;B47E;1103 116F 11B9;B47E;1103 116F 11B9; # (둾; 둾; 둾; 둾; 둾; ) HANGUL SYLLABLE DWEOBS
+B47F;B47F;1103 116F 11BA;B47F;1103 116F 11BA; # (둿; 둿; 둿; 둿; 둿; ) HANGUL SYLLABLE DWEOS
+B480;B480;1103 116F 11BB;B480;1103 116F 11BB; # (뒀; 뒀; 뒀; 뒀; 뒀; ) HANGUL SYLLABLE DWEOSS
+B481;B481;1103 116F 11BC;B481;1103 116F 11BC; # (뒁; 뒁; 뒁; 뒁; 뒁; ) HANGUL SYLLABLE DWEONG
+B482;B482;1103 116F 11BD;B482;1103 116F 11BD; # (뒂; 뒂; 뒂; 뒂; 뒂; ) HANGUL SYLLABLE DWEOJ
+B483;B483;1103 116F 11BE;B483;1103 116F 11BE; # (뒃; 뒃; 뒃; 뒃; 뒃; ) HANGUL SYLLABLE DWEOC
+B484;B484;1103 116F 11BF;B484;1103 116F 11BF; # (뒄; 뒄; 뒄; 뒄; 뒄; ) HANGUL SYLLABLE DWEOK
+B485;B485;1103 116F 11C0;B485;1103 116F 11C0; # (뒅; 뒅; 뒅; 뒅; 뒅; ) HANGUL SYLLABLE DWEOT
+B486;B486;1103 116F 11C1;B486;1103 116F 11C1; # (뒆; 뒆; 뒆; 뒆; 뒆; ) HANGUL SYLLABLE DWEOP
+B487;B487;1103 116F 11C2;B487;1103 116F 11C2; # (뒇; 뒇; 뒇; 뒇; 뒇; ) HANGUL SYLLABLE DWEOH
+B488;B488;1103 1170;B488;1103 1170; # (뒈; 뒈; 뒈; 뒈; 뒈; ) HANGUL SYLLABLE DWE
+B489;B489;1103 1170 11A8;B489;1103 1170 11A8; # (뒉; 뒉; 뒉; 뒉; 뒉; ) HANGUL SYLLABLE DWEG
+B48A;B48A;1103 1170 11A9;B48A;1103 1170 11A9; # (뒊; 뒊; 뒊; 뒊; 뒊; ) HANGUL SYLLABLE DWEGG
+B48B;B48B;1103 1170 11AA;B48B;1103 1170 11AA; # (뒋; 뒋; 뒋; 뒋; 뒋; ) HANGUL SYLLABLE DWEGS
+B48C;B48C;1103 1170 11AB;B48C;1103 1170 11AB; # (뒌; 뒌; 뒌; 뒌; 뒌; ) HANGUL SYLLABLE DWEN
+B48D;B48D;1103 1170 11AC;B48D;1103 1170 11AC; # (뒍; 뒍; 뒍; 뒍; 뒍; ) HANGUL SYLLABLE DWENJ
+B48E;B48E;1103 1170 11AD;B48E;1103 1170 11AD; # (뒎; 뒎; 뒎; 뒎; 뒎; ) HANGUL SYLLABLE DWENH
+B48F;B48F;1103 1170 11AE;B48F;1103 1170 11AE; # (뒏; 뒏; 뒏; 뒏; 뒏; ) HANGUL SYLLABLE DWED
+B490;B490;1103 1170 11AF;B490;1103 1170 11AF; # (뒐; 뒐; 뒐; 뒐; 뒐; ) HANGUL SYLLABLE DWEL
+B491;B491;1103 1170 11B0;B491;1103 1170 11B0; # (뒑; 뒑; 뒑; 뒑; 뒑; ) HANGUL SYLLABLE DWELG
+B492;B492;1103 1170 11B1;B492;1103 1170 11B1; # (뒒; 뒒; 뒒; 뒒; 뒒; ) HANGUL SYLLABLE DWELM
+B493;B493;1103 1170 11B2;B493;1103 1170 11B2; # (뒓; 뒓; 뒓; 뒓; 뒓; ) HANGUL SYLLABLE DWELB
+B494;B494;1103 1170 11B3;B494;1103 1170 11B3; # (뒔; 뒔; 뒔; 뒔; 뒔; ) HANGUL SYLLABLE DWELS
+B495;B495;1103 1170 11B4;B495;1103 1170 11B4; # (뒕; 뒕; 뒕; 뒕; 뒕; ) HANGUL SYLLABLE DWELT
+B496;B496;1103 1170 11B5;B496;1103 1170 11B5; # (뒖; 뒖; 뒖; 뒖; 뒖; ) HANGUL SYLLABLE DWELP
+B497;B497;1103 1170 11B6;B497;1103 1170 11B6; # (뒗; 뒗; 뒗; 뒗; 뒗; ) HANGUL SYLLABLE DWELH
+B498;B498;1103 1170 11B7;B498;1103 1170 11B7; # (뒘; 뒘; 뒘; 뒘; 뒘; ) HANGUL SYLLABLE DWEM
+B499;B499;1103 1170 11B8;B499;1103 1170 11B8; # (뒙; 뒙; 뒙; 뒙; 뒙; ) HANGUL SYLLABLE DWEB
+B49A;B49A;1103 1170 11B9;B49A;1103 1170 11B9; # (뒚; 뒚; 뒚; 뒚; 뒚; ) HANGUL SYLLABLE DWEBS
+B49B;B49B;1103 1170 11BA;B49B;1103 1170 11BA; # (뒛; 뒛; 뒛; 뒛; 뒛; ) HANGUL SYLLABLE DWES
+B49C;B49C;1103 1170 11BB;B49C;1103 1170 11BB; # (뒜; 뒜; 뒜; 뒜; 뒜; ) HANGUL SYLLABLE DWESS
+B49D;B49D;1103 1170 11BC;B49D;1103 1170 11BC; # (뒝; 뒝; 뒝; 뒝; 뒝; ) HANGUL SYLLABLE DWENG
+B49E;B49E;1103 1170 11BD;B49E;1103 1170 11BD; # (뒞; 뒞; 뒞; 뒞; 뒞; ) HANGUL SYLLABLE DWEJ
+B49F;B49F;1103 1170 11BE;B49F;1103 1170 11BE; # (뒟; 뒟; 뒟; 뒟; 뒟; ) HANGUL SYLLABLE DWEC
+B4A0;B4A0;1103 1170 11BF;B4A0;1103 1170 11BF; # (뒠; 뒠; 뒠; 뒠; 뒠; ) HANGUL SYLLABLE DWEK
+B4A1;B4A1;1103 1170 11C0;B4A1;1103 1170 11C0; # (뒡; 뒡; 뒡; 뒡; 뒡; ) HANGUL SYLLABLE DWET
+B4A2;B4A2;1103 1170 11C1;B4A2;1103 1170 11C1; # (뒢; 뒢; 뒢; 뒢; 뒢; ) HANGUL SYLLABLE DWEP
+B4A3;B4A3;1103 1170 11C2;B4A3;1103 1170 11C2; # (뒣; 뒣; 뒣; 뒣; 뒣; ) HANGUL SYLLABLE DWEH
+B4A4;B4A4;1103 1171;B4A4;1103 1171; # (뒤; 뒤; 뒤; 뒤; 뒤; ) HANGUL SYLLABLE DWI
+B4A5;B4A5;1103 1171 11A8;B4A5;1103 1171 11A8; # (뒥; 뒥; 뒥; 뒥; 뒥; ) HANGUL SYLLABLE DWIG
+B4A6;B4A6;1103 1171 11A9;B4A6;1103 1171 11A9; # (뒦; 뒦; 뒦; 뒦; 뒦; ) HANGUL SYLLABLE DWIGG
+B4A7;B4A7;1103 1171 11AA;B4A7;1103 1171 11AA; # (뒧; 뒧; 뒧; 뒧; 뒧; ) HANGUL SYLLABLE DWIGS
+B4A8;B4A8;1103 1171 11AB;B4A8;1103 1171 11AB; # (뒨; 뒨; 뒨; 뒨; 뒨; ) HANGUL SYLLABLE DWIN
+B4A9;B4A9;1103 1171 11AC;B4A9;1103 1171 11AC; # (뒩; 뒩; 뒩; 뒩; 뒩; ) HANGUL SYLLABLE DWINJ
+B4AA;B4AA;1103 1171 11AD;B4AA;1103 1171 11AD; # (뒪; 뒪; 뒪; 뒪; 뒪; ) HANGUL SYLLABLE DWINH
+B4AB;B4AB;1103 1171 11AE;B4AB;1103 1171 11AE; # (뒫; 뒫; 뒫; 뒫; 뒫; ) HANGUL SYLLABLE DWID
+B4AC;B4AC;1103 1171 11AF;B4AC;1103 1171 11AF; # (뒬; 뒬; 뒬; 뒬; 뒬; ) HANGUL SYLLABLE DWIL
+B4AD;B4AD;1103 1171 11B0;B4AD;1103 1171 11B0; # (뒭; 뒭; 뒭; 뒭; 뒭; ) HANGUL SYLLABLE DWILG
+B4AE;B4AE;1103 1171 11B1;B4AE;1103 1171 11B1; # (뒮; 뒮; 뒮; 뒮; 뒮; ) HANGUL SYLLABLE DWILM
+B4AF;B4AF;1103 1171 11B2;B4AF;1103 1171 11B2; # (뒯; 뒯; 뒯; 뒯; 뒯; ) HANGUL SYLLABLE DWILB
+B4B0;B4B0;1103 1171 11B3;B4B0;1103 1171 11B3; # (뒰; 뒰; 뒰; 뒰; 뒰; ) HANGUL SYLLABLE DWILS
+B4B1;B4B1;1103 1171 11B4;B4B1;1103 1171 11B4; # (뒱; 뒱; 뒱; 뒱; 뒱; ) HANGUL SYLLABLE DWILT
+B4B2;B4B2;1103 1171 11B5;B4B2;1103 1171 11B5; # (뒲; 뒲; 뒲; 뒲; 뒲; ) HANGUL SYLLABLE DWILP
+B4B3;B4B3;1103 1171 11B6;B4B3;1103 1171 11B6; # (뒳; 뒳; 뒳; 뒳; 뒳; ) HANGUL SYLLABLE DWILH
+B4B4;B4B4;1103 1171 11B7;B4B4;1103 1171 11B7; # (뒴; 뒴; 뒴; 뒴; 뒴; ) HANGUL SYLLABLE DWIM
+B4B5;B4B5;1103 1171 11B8;B4B5;1103 1171 11B8; # (뒵; 뒵; 뒵; 뒵; 뒵; ) HANGUL SYLLABLE DWIB
+B4B6;B4B6;1103 1171 11B9;B4B6;1103 1171 11B9; # (뒶; 뒶; 뒶; 뒶; 뒶; ) HANGUL SYLLABLE DWIBS
+B4B7;B4B7;1103 1171 11BA;B4B7;1103 1171 11BA; # (뒷; 뒷; 뒷; 뒷; 뒷; ) HANGUL SYLLABLE DWIS
+B4B8;B4B8;1103 1171 11BB;B4B8;1103 1171 11BB; # (뒸; 뒸; 뒸; 뒸; 뒸; ) HANGUL SYLLABLE DWISS
+B4B9;B4B9;1103 1171 11BC;B4B9;1103 1171 11BC; # (뒹; 뒹; 뒹; 뒹; 뒹; ) HANGUL SYLLABLE DWING
+B4BA;B4BA;1103 1171 11BD;B4BA;1103 1171 11BD; # (뒺; 뒺; 뒺; 뒺; 뒺; ) HANGUL SYLLABLE DWIJ
+B4BB;B4BB;1103 1171 11BE;B4BB;1103 1171 11BE; # (뒻; 뒻; 뒻; 뒻; 뒻; ) HANGUL SYLLABLE DWIC
+B4BC;B4BC;1103 1171 11BF;B4BC;1103 1171 11BF; # (뒼; 뒼; 뒼; 뒼; 뒼; ) HANGUL SYLLABLE DWIK
+B4BD;B4BD;1103 1171 11C0;B4BD;1103 1171 11C0; # (뒽; 뒽; 뒽; 뒽; 뒽; ) HANGUL SYLLABLE DWIT
+B4BE;B4BE;1103 1171 11C1;B4BE;1103 1171 11C1; # (뒾; 뒾; 뒾; 뒾; 뒾; ) HANGUL SYLLABLE DWIP
+B4BF;B4BF;1103 1171 11C2;B4BF;1103 1171 11C2; # (뒿; 뒿; 뒿; 뒿; 뒿; ) HANGUL SYLLABLE DWIH
+B4C0;B4C0;1103 1172;B4C0;1103 1172; # (듀; 듀; 듀; 듀; 듀; ) HANGUL SYLLABLE DYU
+B4C1;B4C1;1103 1172 11A8;B4C1;1103 1172 11A8; # (듁; 듁; 듁; 듁; 듁; ) HANGUL SYLLABLE DYUG
+B4C2;B4C2;1103 1172 11A9;B4C2;1103 1172 11A9; # (듂; 듂; 듂; 듂; 듂; ) HANGUL SYLLABLE DYUGG
+B4C3;B4C3;1103 1172 11AA;B4C3;1103 1172 11AA; # (듃; 듃; 듃; 듃; 듃; ) HANGUL SYLLABLE DYUGS
+B4C4;B4C4;1103 1172 11AB;B4C4;1103 1172 11AB; # (듄; 듄; 듄; 듄; 듄; ) HANGUL SYLLABLE DYUN
+B4C5;B4C5;1103 1172 11AC;B4C5;1103 1172 11AC; # (듅; 듅; 듅; 듅; 듅; ) HANGUL SYLLABLE DYUNJ
+B4C6;B4C6;1103 1172 11AD;B4C6;1103 1172 11AD; # (듆; 듆; 듆; 듆; 듆; ) HANGUL SYLLABLE DYUNH
+B4C7;B4C7;1103 1172 11AE;B4C7;1103 1172 11AE; # (듇; 듇; 듇; 듇; 듇; ) HANGUL SYLLABLE DYUD
+B4C8;B4C8;1103 1172 11AF;B4C8;1103 1172 11AF; # (듈; 듈; 듈; 듈; 듈; ) HANGUL SYLLABLE DYUL
+B4C9;B4C9;1103 1172 11B0;B4C9;1103 1172 11B0; # (듉; 듉; 듉; 듉; 듉; ) HANGUL SYLLABLE DYULG
+B4CA;B4CA;1103 1172 11B1;B4CA;1103 1172 11B1; # (듊; 듊; 듊; 듊; 듊; ) HANGUL SYLLABLE DYULM
+B4CB;B4CB;1103 1172 11B2;B4CB;1103 1172 11B2; # (듋; 듋; 듋; 듋; 듋; ) HANGUL SYLLABLE DYULB
+B4CC;B4CC;1103 1172 11B3;B4CC;1103 1172 11B3; # (듌; 듌; 듌; 듌; 듌; ) HANGUL SYLLABLE DYULS
+B4CD;B4CD;1103 1172 11B4;B4CD;1103 1172 11B4; # (듍; 듍; 듍; 듍; 듍; ) HANGUL SYLLABLE DYULT
+B4CE;B4CE;1103 1172 11B5;B4CE;1103 1172 11B5; # (듎; 듎; 듎; 듎; 듎; ) HANGUL SYLLABLE DYULP
+B4CF;B4CF;1103 1172 11B6;B4CF;1103 1172 11B6; # (듏; 듏; 듏; 듏; 듏; ) HANGUL SYLLABLE DYULH
+B4D0;B4D0;1103 1172 11B7;B4D0;1103 1172 11B7; # (듐; 듐; 듐; 듐; 듐; ) HANGUL SYLLABLE DYUM
+B4D1;B4D1;1103 1172 11B8;B4D1;1103 1172 11B8; # (듑; 듑; 듑; 듑; 듑; ) HANGUL SYLLABLE DYUB
+B4D2;B4D2;1103 1172 11B9;B4D2;1103 1172 11B9; # (듒; 듒; 듒; 듒; 듒; ) HANGUL SYLLABLE DYUBS
+B4D3;B4D3;1103 1172 11BA;B4D3;1103 1172 11BA; # (듓; 듓; 듓; 듓; 듓; ) HANGUL SYLLABLE DYUS
+B4D4;B4D4;1103 1172 11BB;B4D4;1103 1172 11BB; # (듔; 듔; 듔; 듔; 듔; ) HANGUL SYLLABLE DYUSS
+B4D5;B4D5;1103 1172 11BC;B4D5;1103 1172 11BC; # (듕; 듕; 듕; 듕; 듕; ) HANGUL SYLLABLE DYUNG
+B4D6;B4D6;1103 1172 11BD;B4D6;1103 1172 11BD; # (듖; 듖; 듖; 듖; 듖; ) HANGUL SYLLABLE DYUJ
+B4D7;B4D7;1103 1172 11BE;B4D7;1103 1172 11BE; # (듗; 듗; 듗; 듗; 듗; ) HANGUL SYLLABLE DYUC
+B4D8;B4D8;1103 1172 11BF;B4D8;1103 1172 11BF; # (듘; 듘; 듘; 듘; 듘; ) HANGUL SYLLABLE DYUK
+B4D9;B4D9;1103 1172 11C0;B4D9;1103 1172 11C0; # (듙; 듙; 듙; 듙; 듙; ) HANGUL SYLLABLE DYUT
+B4DA;B4DA;1103 1172 11C1;B4DA;1103 1172 11C1; # (듚; 듚; 듚; 듚; 듚; ) HANGUL SYLLABLE DYUP
+B4DB;B4DB;1103 1172 11C2;B4DB;1103 1172 11C2; # (듛; 듛; 듛; 듛; 듛; ) HANGUL SYLLABLE DYUH
+B4DC;B4DC;1103 1173;B4DC;1103 1173; # (드; 드; 드; 드; 드; ) HANGUL SYLLABLE DEU
+B4DD;B4DD;1103 1173 11A8;B4DD;1103 1173 11A8; # (득; 득; 득; 득; 득; ) HANGUL SYLLABLE DEUG
+B4DE;B4DE;1103 1173 11A9;B4DE;1103 1173 11A9; # (듞; 듞; 듞; 듞; 듞; ) HANGUL SYLLABLE DEUGG
+B4DF;B4DF;1103 1173 11AA;B4DF;1103 1173 11AA; # (듟; 듟; 듟; 듟; 듟; ) HANGUL SYLLABLE DEUGS
+B4E0;B4E0;1103 1173 11AB;B4E0;1103 1173 11AB; # (든; 든; 든; 든; 든; ) HANGUL SYLLABLE DEUN
+B4E1;B4E1;1103 1173 11AC;B4E1;1103 1173 11AC; # (듡; 듡; 듡; 듡; 듡; ) HANGUL SYLLABLE DEUNJ
+B4E2;B4E2;1103 1173 11AD;B4E2;1103 1173 11AD; # (듢; 듢; 듢; 듢; 듢; ) HANGUL SYLLABLE DEUNH
+B4E3;B4E3;1103 1173 11AE;B4E3;1103 1173 11AE; # (듣; 듣; 듣; 듣; 듣; ) HANGUL SYLLABLE DEUD
+B4E4;B4E4;1103 1173 11AF;B4E4;1103 1173 11AF; # (들; 들; 들; 들; 들; ) HANGUL SYLLABLE DEUL
+B4E5;B4E5;1103 1173 11B0;B4E5;1103 1173 11B0; # (듥; 듥; 듥; 듥; 듥; ) HANGUL SYLLABLE DEULG
+B4E6;B4E6;1103 1173 11B1;B4E6;1103 1173 11B1; # (듦; 듦; 듦; 듦; 듦; ) HANGUL SYLLABLE DEULM
+B4E7;B4E7;1103 1173 11B2;B4E7;1103 1173 11B2; # (듧; 듧; 듧; 듧; 듧; ) HANGUL SYLLABLE DEULB
+B4E8;B4E8;1103 1173 11B3;B4E8;1103 1173 11B3; # (듨; 듨; 듨; 듨; 듨; ) HANGUL SYLLABLE DEULS
+B4E9;B4E9;1103 1173 11B4;B4E9;1103 1173 11B4; # (듩; 듩; 듩; 듩; 듩; ) HANGUL SYLLABLE DEULT
+B4EA;B4EA;1103 1173 11B5;B4EA;1103 1173 11B5; # (듪; 듪; 듪; 듪; 듪; ) HANGUL SYLLABLE DEULP
+B4EB;B4EB;1103 1173 11B6;B4EB;1103 1173 11B6; # (듫; 듫; 듫; 듫; 듫; ) HANGUL SYLLABLE DEULH
+B4EC;B4EC;1103 1173 11B7;B4EC;1103 1173 11B7; # (듬; 듬; 듬; 듬; 듬; ) HANGUL SYLLABLE DEUM
+B4ED;B4ED;1103 1173 11B8;B4ED;1103 1173 11B8; # (듭; 듭; 듭; 듭; 듭; ) HANGUL SYLLABLE DEUB
+B4EE;B4EE;1103 1173 11B9;B4EE;1103 1173 11B9; # (듮; 듮; 듮; 듮; 듮; ) HANGUL SYLLABLE DEUBS
+B4EF;B4EF;1103 1173 11BA;B4EF;1103 1173 11BA; # (듯; 듯; 듯; 듯; 듯; ) HANGUL SYLLABLE DEUS
+B4F0;B4F0;1103 1173 11BB;B4F0;1103 1173 11BB; # (듰; 듰; 듰; 듰; 듰; ) HANGUL SYLLABLE DEUSS
+B4F1;B4F1;1103 1173 11BC;B4F1;1103 1173 11BC; # (등; 등; 등; 등; 등; ) HANGUL SYLLABLE DEUNG
+B4F2;B4F2;1103 1173 11BD;B4F2;1103 1173 11BD; # (듲; 듲; 듲; 듲; 듲; ) HANGUL SYLLABLE DEUJ
+B4F3;B4F3;1103 1173 11BE;B4F3;1103 1173 11BE; # (듳; 듳; 듳; 듳; 듳; ) HANGUL SYLLABLE DEUC
+B4F4;B4F4;1103 1173 11BF;B4F4;1103 1173 11BF; # (듴; 듴; 듴; 듴; 듴; ) HANGUL SYLLABLE DEUK
+B4F5;B4F5;1103 1173 11C0;B4F5;1103 1173 11C0; # (듵; 듵; 듵; 듵; 듵; ) HANGUL SYLLABLE DEUT
+B4F6;B4F6;1103 1173 11C1;B4F6;1103 1173 11C1; # (듶; 듶; 듶; 듶; 듶; ) HANGUL SYLLABLE DEUP
+B4F7;B4F7;1103 1173 11C2;B4F7;1103 1173 11C2; # (듷; 듷; 듷; 듷; 듷; ) HANGUL SYLLABLE DEUH
+B4F8;B4F8;1103 1174;B4F8;1103 1174; # (듸; 듸; 듸; 듸; 듸; ) HANGUL SYLLABLE DYI
+B4F9;B4F9;1103 1174 11A8;B4F9;1103 1174 11A8; # (듹; 듹; 듹; 듹; 듹; ) HANGUL SYLLABLE DYIG
+B4FA;B4FA;1103 1174 11A9;B4FA;1103 1174 11A9; # (듺; 듺; 듺; 듺; 듺; ) HANGUL SYLLABLE DYIGG
+B4FB;B4FB;1103 1174 11AA;B4FB;1103 1174 11AA; # (듻; 듻; 듻; 듻; 듻; ) HANGUL SYLLABLE DYIGS
+B4FC;B4FC;1103 1174 11AB;B4FC;1103 1174 11AB; # (듼; 듼; 듼; 듼; 듼; ) HANGUL SYLLABLE DYIN
+B4FD;B4FD;1103 1174 11AC;B4FD;1103 1174 11AC; # (듽; 듽; 듽; 듽; 듽; ) HANGUL SYLLABLE DYINJ
+B4FE;B4FE;1103 1174 11AD;B4FE;1103 1174 11AD; # (듾; 듾; 듾; 듾; 듾; ) HANGUL SYLLABLE DYINH
+B4FF;B4FF;1103 1174 11AE;B4FF;1103 1174 11AE; # (듿; 듿; 듿; 듿; 듿; ) HANGUL SYLLABLE DYID
+B500;B500;1103 1174 11AF;B500;1103 1174 11AF; # (딀; 딀; 딀; 딀; 딀; ) HANGUL SYLLABLE DYIL
+B501;B501;1103 1174 11B0;B501;1103 1174 11B0; # (딁; 딁; 딁; 딁; 딁; ) HANGUL SYLLABLE DYILG
+B502;B502;1103 1174 11B1;B502;1103 1174 11B1; # (딂; 딂; 딂; 딂; 딂; ) HANGUL SYLLABLE DYILM
+B503;B503;1103 1174 11B2;B503;1103 1174 11B2; # (딃; 딃; 딃; 딃; 딃; ) HANGUL SYLLABLE DYILB
+B504;B504;1103 1174 11B3;B504;1103 1174 11B3; # (딄; 딄; 딄; 딄; 딄; ) HANGUL SYLLABLE DYILS
+B505;B505;1103 1174 11B4;B505;1103 1174 11B4; # (딅; 딅; 딅; 딅; 딅; ) HANGUL SYLLABLE DYILT
+B506;B506;1103 1174 11B5;B506;1103 1174 11B5; # (딆; 딆; 딆; 딆; 딆; ) HANGUL SYLLABLE DYILP
+B507;B507;1103 1174 11B6;B507;1103 1174 11B6; # (딇; 딇; 딇; 딇; 딇; ) HANGUL SYLLABLE DYILH
+B508;B508;1103 1174 11B7;B508;1103 1174 11B7; # (딈; 딈; 딈; 딈; 딈; ) HANGUL SYLLABLE DYIM
+B509;B509;1103 1174 11B8;B509;1103 1174 11B8; # (딉; 딉; 딉; 딉; 딉; ) HANGUL SYLLABLE DYIB
+B50A;B50A;1103 1174 11B9;B50A;1103 1174 11B9; # (딊; 딊; 딊; 딊; 딊; ) HANGUL SYLLABLE DYIBS
+B50B;B50B;1103 1174 11BA;B50B;1103 1174 11BA; # (딋; 딋; 딋; 딋; 딋; ) HANGUL SYLLABLE DYIS
+B50C;B50C;1103 1174 11BB;B50C;1103 1174 11BB; # (딌; 딌; 딌; 딌; 딌; ) HANGUL SYLLABLE DYISS
+B50D;B50D;1103 1174 11BC;B50D;1103 1174 11BC; # (딍; 딍; 딍; 딍; 딍; ) HANGUL SYLLABLE DYING
+B50E;B50E;1103 1174 11BD;B50E;1103 1174 11BD; # (딎; 딎; 딎; 딎; 딎; ) HANGUL SYLLABLE DYIJ
+B50F;B50F;1103 1174 11BE;B50F;1103 1174 11BE; # (딏; 딏; 딏; 딏; 딏; ) HANGUL SYLLABLE DYIC
+B510;B510;1103 1174 11BF;B510;1103 1174 11BF; # (딐; 딐; 딐; 딐; 딐; ) HANGUL SYLLABLE DYIK
+B511;B511;1103 1174 11C0;B511;1103 1174 11C0; # (딑; 딑; 딑; 딑; 딑; ) HANGUL SYLLABLE DYIT
+B512;B512;1103 1174 11C1;B512;1103 1174 11C1; # (딒; 딒; 딒; 딒; 딒; ) HANGUL SYLLABLE DYIP
+B513;B513;1103 1174 11C2;B513;1103 1174 11C2; # (딓; 딓; 딓; 딓; 딓; ) HANGUL SYLLABLE DYIH
+B514;B514;1103 1175;B514;1103 1175; # (디; 디; 디; 디; 디; ) HANGUL SYLLABLE DI
+B515;B515;1103 1175 11A8;B515;1103 1175 11A8; # (딕; 딕; 딕; 딕; 딕; ) HANGUL SYLLABLE DIG
+B516;B516;1103 1175 11A9;B516;1103 1175 11A9; # (딖; 딖; 딖; 딖; 딖; ) HANGUL SYLLABLE DIGG
+B517;B517;1103 1175 11AA;B517;1103 1175 11AA; # (딗; 딗; 딗; 딗; 딗; ) HANGUL SYLLABLE DIGS
+B518;B518;1103 1175 11AB;B518;1103 1175 11AB; # (딘; 딘; 딘; 딘; 딘; ) HANGUL SYLLABLE DIN
+B519;B519;1103 1175 11AC;B519;1103 1175 11AC; # (딙; 딙; 딙; 딙; 딙; ) HANGUL SYLLABLE DINJ
+B51A;B51A;1103 1175 11AD;B51A;1103 1175 11AD; # (딚; 딚; 딚; 딚; 딚; ) HANGUL SYLLABLE DINH
+B51B;B51B;1103 1175 11AE;B51B;1103 1175 11AE; # (딛; 딛; 딛; 딛; 딛; ) HANGUL SYLLABLE DID
+B51C;B51C;1103 1175 11AF;B51C;1103 1175 11AF; # (딜; 딜; 딜; 딜; 딜; ) HANGUL SYLLABLE DIL
+B51D;B51D;1103 1175 11B0;B51D;1103 1175 11B0; # (딝; 딝; 딝; 딝; 딝; ) HANGUL SYLLABLE DILG
+B51E;B51E;1103 1175 11B1;B51E;1103 1175 11B1; # (딞; 딞; 딞; 딞; 딞; ) HANGUL SYLLABLE DILM
+B51F;B51F;1103 1175 11B2;B51F;1103 1175 11B2; # (딟; 딟; 딟; 딟; 딟; ) HANGUL SYLLABLE DILB
+B520;B520;1103 1175 11B3;B520;1103 1175 11B3; # (딠; 딠; 딠; 딠; 딠; ) HANGUL SYLLABLE DILS
+B521;B521;1103 1175 11B4;B521;1103 1175 11B4; # (딡; 딡; 딡; 딡; 딡; ) HANGUL SYLLABLE DILT
+B522;B522;1103 1175 11B5;B522;1103 1175 11B5; # (딢; 딢; 딢; 딢; 딢; ) HANGUL SYLLABLE DILP
+B523;B523;1103 1175 11B6;B523;1103 1175 11B6; # (딣; 딣; 딣; 딣; 딣; ) HANGUL SYLLABLE DILH
+B524;B524;1103 1175 11B7;B524;1103 1175 11B7; # (딤; 딤; 딤; 딤; 딤; ) HANGUL SYLLABLE DIM
+B525;B525;1103 1175 11B8;B525;1103 1175 11B8; # (딥; 딥; 딥; 딥; 딥; ) HANGUL SYLLABLE DIB
+B526;B526;1103 1175 11B9;B526;1103 1175 11B9; # (딦; 딦; 딦; 딦; 딦; ) HANGUL SYLLABLE DIBS
+B527;B527;1103 1175 11BA;B527;1103 1175 11BA; # (딧; 딧; 딧; 딧; 딧; ) HANGUL SYLLABLE DIS
+B528;B528;1103 1175 11BB;B528;1103 1175 11BB; # (딨; 딨; 딨; 딨; 딨; ) HANGUL SYLLABLE DISS
+B529;B529;1103 1175 11BC;B529;1103 1175 11BC; # (딩; 딩; 딩; 딩; 딩; ) HANGUL SYLLABLE DING
+B52A;B52A;1103 1175 11BD;B52A;1103 1175 11BD; # (딪; 딪; 딪; 딪; 딪; ) HANGUL SYLLABLE DIJ
+B52B;B52B;1103 1175 11BE;B52B;1103 1175 11BE; # (딫; 딫; 딫; 딫; 딫; ) HANGUL SYLLABLE DIC
+B52C;B52C;1103 1175 11BF;B52C;1103 1175 11BF; # (딬; 딬; 딬; 딬; 딬; ) HANGUL SYLLABLE DIK
+B52D;B52D;1103 1175 11C0;B52D;1103 1175 11C0; # (딭; 딭; 딭; 딭; 딭; ) HANGUL SYLLABLE DIT
+B52E;B52E;1103 1175 11C1;B52E;1103 1175 11C1; # (딮; 딮; 딮; 딮; 딮; ) HANGUL SYLLABLE DIP
+B52F;B52F;1103 1175 11C2;B52F;1103 1175 11C2; # (딯; 딯; 딯; 딯; 딯; ) HANGUL SYLLABLE DIH
+B530;B530;1104 1161;B530;1104 1161; # (따; 따; 따; 따; 따; ) HANGUL SYLLABLE DDA
+B531;B531;1104 1161 11A8;B531;1104 1161 11A8; # (딱; 딱; 딱; 딱; 딱; ) HANGUL SYLLABLE DDAG
+B532;B532;1104 1161 11A9;B532;1104 1161 11A9; # (딲; 딲; 딲; 딲; 딲; ) HANGUL SYLLABLE DDAGG
+B533;B533;1104 1161 11AA;B533;1104 1161 11AA; # (딳; 딳; 딳; 딳; 딳; ) HANGUL SYLLABLE DDAGS
+B534;B534;1104 1161 11AB;B534;1104 1161 11AB; # (딴; 딴; 딴; 딴; 딴; ) HANGUL SYLLABLE DDAN
+B535;B535;1104 1161 11AC;B535;1104 1161 11AC; # (딵; 딵; 딵; 딵; 딵; ) HANGUL SYLLABLE DDANJ
+B536;B536;1104 1161 11AD;B536;1104 1161 11AD; # (딶; 딶; 딶; 딶; 딶; ) HANGUL SYLLABLE DDANH
+B537;B537;1104 1161 11AE;B537;1104 1161 11AE; # (딷; 딷; 딷; 딷; 딷; ) HANGUL SYLLABLE DDAD
+B538;B538;1104 1161 11AF;B538;1104 1161 11AF; # (딸; 딸; 딸; 딸; 딸; ) HANGUL SYLLABLE DDAL
+B539;B539;1104 1161 11B0;B539;1104 1161 11B0; # (딹; 딹; 딹; 딹; 딹; ) HANGUL SYLLABLE DDALG
+B53A;B53A;1104 1161 11B1;B53A;1104 1161 11B1; # (딺; 딺; 딺; 딺; 딺; ) HANGUL SYLLABLE DDALM
+B53B;B53B;1104 1161 11B2;B53B;1104 1161 11B2; # (딻; 딻; 딻; 딻; 딻; ) HANGUL SYLLABLE DDALB
+B53C;B53C;1104 1161 11B3;B53C;1104 1161 11B3; # (딼; 딼; 딼; 딼; 딼; ) HANGUL SYLLABLE DDALS
+B53D;B53D;1104 1161 11B4;B53D;1104 1161 11B4; # (딽; 딽; 딽; 딽; 딽; ) HANGUL SYLLABLE DDALT
+B53E;B53E;1104 1161 11B5;B53E;1104 1161 11B5; # (딾; 딾; 딾; 딾; 딾; ) HANGUL SYLLABLE DDALP
+B53F;B53F;1104 1161 11B6;B53F;1104 1161 11B6; # (딿; 딿; 딿; 딿; 딿; ) HANGUL SYLLABLE DDALH
+B540;B540;1104 1161 11B7;B540;1104 1161 11B7; # (땀; 땀; 땀; 땀; 땀; ) HANGUL SYLLABLE DDAM
+B541;B541;1104 1161 11B8;B541;1104 1161 11B8; # (땁; 땁; 땁; 땁; 땁; ) HANGUL SYLLABLE DDAB
+B542;B542;1104 1161 11B9;B542;1104 1161 11B9; # (땂; 땂; 땂; 땂; 땂; ) HANGUL SYLLABLE DDABS
+B543;B543;1104 1161 11BA;B543;1104 1161 11BA; # (땃; 땃; 땃; 땃; 땃; ) HANGUL SYLLABLE DDAS
+B544;B544;1104 1161 11BB;B544;1104 1161 11BB; # (땄; 땄; 땄; 땄; 땄; ) HANGUL SYLLABLE DDASS
+B545;B545;1104 1161 11BC;B545;1104 1161 11BC; # (땅; 땅; 땅; 땅; 땅; ) HANGUL SYLLABLE DDANG
+B546;B546;1104 1161 11BD;B546;1104 1161 11BD; # (땆; 땆; 땆; 땆; 땆; ) HANGUL SYLLABLE DDAJ
+B547;B547;1104 1161 11BE;B547;1104 1161 11BE; # (땇; 땇; 땇; 땇; 땇; ) HANGUL SYLLABLE DDAC
+B548;B548;1104 1161 11BF;B548;1104 1161 11BF; # (땈; 땈; 땈; 땈; 땈; ) HANGUL SYLLABLE DDAK
+B549;B549;1104 1161 11C0;B549;1104 1161 11C0; # (땉; 땉; 땉; 땉; 땉; ) HANGUL SYLLABLE DDAT
+B54A;B54A;1104 1161 11C1;B54A;1104 1161 11C1; # (땊; 땊; 땊; 땊; 땊; ) HANGUL SYLLABLE DDAP
+B54B;B54B;1104 1161 11C2;B54B;1104 1161 11C2; # (땋; 땋; 땋; 땋; 땋; ) HANGUL SYLLABLE DDAH
+B54C;B54C;1104 1162;B54C;1104 1162; # (때; 때; 때; 때; 때; ) HANGUL SYLLABLE DDAE
+B54D;B54D;1104 1162 11A8;B54D;1104 1162 11A8; # (땍; 땍; 땍; 땍; 땍; ) HANGUL SYLLABLE DDAEG
+B54E;B54E;1104 1162 11A9;B54E;1104 1162 11A9; # (땎; 땎; 땎; 땎; 땎; ) HANGUL SYLLABLE DDAEGG
+B54F;B54F;1104 1162 11AA;B54F;1104 1162 11AA; # (땏; 땏; 땏; 땏; 땏; ) HANGUL SYLLABLE DDAEGS
+B550;B550;1104 1162 11AB;B550;1104 1162 11AB; # (땐; 땐; 땐; 땐; 땐; ) HANGUL SYLLABLE DDAEN
+B551;B551;1104 1162 11AC;B551;1104 1162 11AC; # (땑; 땑; 땑; 땑; 땑; ) HANGUL SYLLABLE DDAENJ
+B552;B552;1104 1162 11AD;B552;1104 1162 11AD; # (땒; 땒; 땒; 땒; 땒; ) HANGUL SYLLABLE DDAENH
+B553;B553;1104 1162 11AE;B553;1104 1162 11AE; # (땓; 땓; 땓; 땓; 땓; ) HANGUL SYLLABLE DDAED
+B554;B554;1104 1162 11AF;B554;1104 1162 11AF; # (땔; 땔; 땔; 땔; 땔; ) HANGUL SYLLABLE DDAEL
+B555;B555;1104 1162 11B0;B555;1104 1162 11B0; # (땕; 땕; 땕; 땕; 땕; ) HANGUL SYLLABLE DDAELG
+B556;B556;1104 1162 11B1;B556;1104 1162 11B1; # (땖; 땖; 땖; 땖; 땖; ) HANGUL SYLLABLE DDAELM
+B557;B557;1104 1162 11B2;B557;1104 1162 11B2; # (땗; 땗; 땗; 땗; 땗; ) HANGUL SYLLABLE DDAELB
+B558;B558;1104 1162 11B3;B558;1104 1162 11B3; # (땘; 땘; 땘; 땘; 땘; ) HANGUL SYLLABLE DDAELS
+B559;B559;1104 1162 11B4;B559;1104 1162 11B4; # (땙; 땙; 땙; 땙; 땙; ) HANGUL SYLLABLE DDAELT
+B55A;B55A;1104 1162 11B5;B55A;1104 1162 11B5; # (땚; 땚; 땚; 땚; 땚; ) HANGUL SYLLABLE DDAELP
+B55B;B55B;1104 1162 11B6;B55B;1104 1162 11B6; # (땛; 땛; 땛; 땛; 땛; ) HANGUL SYLLABLE DDAELH
+B55C;B55C;1104 1162 11B7;B55C;1104 1162 11B7; # (땜; 땜; 땜; 땜; 땜; ) HANGUL SYLLABLE DDAEM
+B55D;B55D;1104 1162 11B8;B55D;1104 1162 11B8; # (땝; 땝; 땝; 땝; 땝; ) HANGUL SYLLABLE DDAEB
+B55E;B55E;1104 1162 11B9;B55E;1104 1162 11B9; # (땞; 땞; 땞; 땞; 땞; ) HANGUL SYLLABLE DDAEBS
+B55F;B55F;1104 1162 11BA;B55F;1104 1162 11BA; # (땟; 땟; 땟; 땟; 땟; ) HANGUL SYLLABLE DDAES
+B560;B560;1104 1162 11BB;B560;1104 1162 11BB; # (땠; 땠; 땠; 땠; 땠; ) HANGUL SYLLABLE DDAESS
+B561;B561;1104 1162 11BC;B561;1104 1162 11BC; # (땡; 땡; 땡; 땡; 땡; ) HANGUL SYLLABLE DDAENG
+B562;B562;1104 1162 11BD;B562;1104 1162 11BD; # (땢; 땢; 땢; 땢; 땢; ) HANGUL SYLLABLE DDAEJ
+B563;B563;1104 1162 11BE;B563;1104 1162 11BE; # (땣; 땣; 땣; 땣; 땣; ) HANGUL SYLLABLE DDAEC
+B564;B564;1104 1162 11BF;B564;1104 1162 11BF; # (땤; 땤; 땤; 땤; 땤; ) HANGUL SYLLABLE DDAEK
+B565;B565;1104 1162 11C0;B565;1104 1162 11C0; # (땥; 땥; 땥; 땥; 땥; ) HANGUL SYLLABLE DDAET
+B566;B566;1104 1162 11C1;B566;1104 1162 11C1; # (땦; 땦; 땦; 땦; 땦; ) HANGUL SYLLABLE DDAEP
+B567;B567;1104 1162 11C2;B567;1104 1162 11C2; # (땧; 땧; 땧; 땧; 땧; ) HANGUL SYLLABLE DDAEH
+B568;B568;1104 1163;B568;1104 1163; # (땨; 땨; 땨; 땨; 땨; ) HANGUL SYLLABLE DDYA
+B569;B569;1104 1163 11A8;B569;1104 1163 11A8; # (땩; 땩; 땩; 땩; 땩; ) HANGUL SYLLABLE DDYAG
+B56A;B56A;1104 1163 11A9;B56A;1104 1163 11A9; # (땪; 땪; 땪; 땪; 땪; ) HANGUL SYLLABLE DDYAGG
+B56B;B56B;1104 1163 11AA;B56B;1104 1163 11AA; # (땫; 땫; 땫; 땫; 땫; ) HANGUL SYLLABLE DDYAGS
+B56C;B56C;1104 1163 11AB;B56C;1104 1163 11AB; # (땬; 땬; 땬; 땬; 땬; ) HANGUL SYLLABLE DDYAN
+B56D;B56D;1104 1163 11AC;B56D;1104 1163 11AC; # (땭; 땭; 땭; 땭; 땭; ) HANGUL SYLLABLE DDYANJ
+B56E;B56E;1104 1163 11AD;B56E;1104 1163 11AD; # (땮; 땮; 땮; 땮; 땮; ) HANGUL SYLLABLE DDYANH
+B56F;B56F;1104 1163 11AE;B56F;1104 1163 11AE; # (땯; 땯; 땯; 땯; 땯; ) HANGUL SYLLABLE DDYAD
+B570;B570;1104 1163 11AF;B570;1104 1163 11AF; # (땰; 땰; 땰; 땰; 땰; ) HANGUL SYLLABLE DDYAL
+B571;B571;1104 1163 11B0;B571;1104 1163 11B0; # (땱; 땱; 땱; 땱; 땱; ) HANGUL SYLLABLE DDYALG
+B572;B572;1104 1163 11B1;B572;1104 1163 11B1; # (땲; 땲; 땲; 땲; 땲; ) HANGUL SYLLABLE DDYALM
+B573;B573;1104 1163 11B2;B573;1104 1163 11B2; # (땳; 땳; 땳; 땳; 땳; ) HANGUL SYLLABLE DDYALB
+B574;B574;1104 1163 11B3;B574;1104 1163 11B3; # (땴; 땴; 땴; 땴; 땴; ) HANGUL SYLLABLE DDYALS
+B575;B575;1104 1163 11B4;B575;1104 1163 11B4; # (땵; 땵; 땵; 땵; 땵; ) HANGUL SYLLABLE DDYALT
+B576;B576;1104 1163 11B5;B576;1104 1163 11B5; # (땶; 땶; 땶; 땶; 땶; ) HANGUL SYLLABLE DDYALP
+B577;B577;1104 1163 11B6;B577;1104 1163 11B6; # (땷; 땷; 땷; 땷; 땷; ) HANGUL SYLLABLE DDYALH
+B578;B578;1104 1163 11B7;B578;1104 1163 11B7; # (땸; 땸; 땸; 땸; 땸; ) HANGUL SYLLABLE DDYAM
+B579;B579;1104 1163 11B8;B579;1104 1163 11B8; # (땹; 땹; 땹; 땹; 땹; ) HANGUL SYLLABLE DDYAB
+B57A;B57A;1104 1163 11B9;B57A;1104 1163 11B9; # (땺; 땺; 땺; 땺; 땺; ) HANGUL SYLLABLE DDYABS
+B57B;B57B;1104 1163 11BA;B57B;1104 1163 11BA; # (땻; 땻; 땻; 땻; 땻; ) HANGUL SYLLABLE DDYAS
+B57C;B57C;1104 1163 11BB;B57C;1104 1163 11BB; # (땼; 땼; 땼; 땼; 땼; ) HANGUL SYLLABLE DDYASS
+B57D;B57D;1104 1163 11BC;B57D;1104 1163 11BC; # (땽; 땽; 땽; 땽; 땽; ) HANGUL SYLLABLE DDYANG
+B57E;B57E;1104 1163 11BD;B57E;1104 1163 11BD; # (땾; 땾; 땾; 땾; 땾; ) HANGUL SYLLABLE DDYAJ
+B57F;B57F;1104 1163 11BE;B57F;1104 1163 11BE; # (땿; 땿; 땿; 땿; 땿; ) HANGUL SYLLABLE DDYAC
+B580;B580;1104 1163 11BF;B580;1104 1163 11BF; # (떀; 떀; 떀; 떀; 떀; ) HANGUL SYLLABLE DDYAK
+B581;B581;1104 1163 11C0;B581;1104 1163 11C0; # (떁; 떁; 떁; 떁; 떁; ) HANGUL SYLLABLE DDYAT
+B582;B582;1104 1163 11C1;B582;1104 1163 11C1; # (떂; 떂; 떂; 떂; 떂; ) HANGUL SYLLABLE DDYAP
+B583;B583;1104 1163 11C2;B583;1104 1163 11C2; # (떃; 떃; 떃; 떃; 떃; ) HANGUL SYLLABLE DDYAH
+B584;B584;1104 1164;B584;1104 1164; # (떄; 떄; 떄; 떄; 떄; ) HANGUL SYLLABLE DDYAE
+B585;B585;1104 1164 11A8;B585;1104 1164 11A8; # (떅; 떅; 떅; 떅; 떅; ) HANGUL SYLLABLE DDYAEG
+B586;B586;1104 1164 11A9;B586;1104 1164 11A9; # (떆; 떆; 떆; 떆; 떆; ) HANGUL SYLLABLE DDYAEGG
+B587;B587;1104 1164 11AA;B587;1104 1164 11AA; # (떇; 떇; 떇; 떇; 떇; ) HANGUL SYLLABLE DDYAEGS
+B588;B588;1104 1164 11AB;B588;1104 1164 11AB; # (떈; 떈; 떈; 떈; 떈; ) HANGUL SYLLABLE DDYAEN
+B589;B589;1104 1164 11AC;B589;1104 1164 11AC; # (떉; 떉; 떉; 떉; 떉; ) HANGUL SYLLABLE DDYAENJ
+B58A;B58A;1104 1164 11AD;B58A;1104 1164 11AD; # (떊; 떊; 떊; 떊; 떊; ) HANGUL SYLLABLE DDYAENH
+B58B;B58B;1104 1164 11AE;B58B;1104 1164 11AE; # (떋; 떋; 떋; 떋; 떋; ) HANGUL SYLLABLE DDYAED
+B58C;B58C;1104 1164 11AF;B58C;1104 1164 11AF; # (떌; 떌; 떌; 떌; 떌; ) HANGUL SYLLABLE DDYAEL
+B58D;B58D;1104 1164 11B0;B58D;1104 1164 11B0; # (떍; 떍; 떍; 떍; 떍; ) HANGUL SYLLABLE DDYAELG
+B58E;B58E;1104 1164 11B1;B58E;1104 1164 11B1; # (떎; 떎; 떎; 떎; 떎; ) HANGUL SYLLABLE DDYAELM
+B58F;B58F;1104 1164 11B2;B58F;1104 1164 11B2; # (떏; 떏; 떏; 떏; 떏; ) HANGUL SYLLABLE DDYAELB
+B590;B590;1104 1164 11B3;B590;1104 1164 11B3; # (떐; 떐; 떐; 떐; 떐; ) HANGUL SYLLABLE DDYAELS
+B591;B591;1104 1164 11B4;B591;1104 1164 11B4; # (떑; 떑; 떑; 떑; 떑; ) HANGUL SYLLABLE DDYAELT
+B592;B592;1104 1164 11B5;B592;1104 1164 11B5; # (떒; 떒; 떒; 떒; 떒; ) HANGUL SYLLABLE DDYAELP
+B593;B593;1104 1164 11B6;B593;1104 1164 11B6; # (떓; 떓; 떓; 떓; 떓; ) HANGUL SYLLABLE DDYAELH
+B594;B594;1104 1164 11B7;B594;1104 1164 11B7; # (떔; 떔; 떔; 떔; 떔; ) HANGUL SYLLABLE DDYAEM
+B595;B595;1104 1164 11B8;B595;1104 1164 11B8; # (떕; 떕; 떕; 떕; 떕; ) HANGUL SYLLABLE DDYAEB
+B596;B596;1104 1164 11B9;B596;1104 1164 11B9; # (떖; 떖; 떖; 떖; 떖; ) HANGUL SYLLABLE DDYAEBS
+B597;B597;1104 1164 11BA;B597;1104 1164 11BA; # (떗; 떗; 떗; 떗; 떗; ) HANGUL SYLLABLE DDYAES
+B598;B598;1104 1164 11BB;B598;1104 1164 11BB; # (떘; 떘; 떘; 떘; 떘; ) HANGUL SYLLABLE DDYAESS
+B599;B599;1104 1164 11BC;B599;1104 1164 11BC; # (떙; 떙; 떙; 떙; 떙; ) HANGUL SYLLABLE DDYAENG
+B59A;B59A;1104 1164 11BD;B59A;1104 1164 11BD; # (떚; 떚; 떚; 떚; 떚; ) HANGUL SYLLABLE DDYAEJ
+B59B;B59B;1104 1164 11BE;B59B;1104 1164 11BE; # (떛; 떛; 떛; 떛; 떛; ) HANGUL SYLLABLE DDYAEC
+B59C;B59C;1104 1164 11BF;B59C;1104 1164 11BF; # (떜; 떜; 떜; 떜; 떜; ) HANGUL SYLLABLE DDYAEK
+B59D;B59D;1104 1164 11C0;B59D;1104 1164 11C0; # (떝; 떝; 떝; 떝; 떝; ) HANGUL SYLLABLE DDYAET
+B59E;B59E;1104 1164 11C1;B59E;1104 1164 11C1; # (떞; 떞; 떞; 떞; 떞; ) HANGUL SYLLABLE DDYAEP
+B59F;B59F;1104 1164 11C2;B59F;1104 1164 11C2; # (떟; 떟; 떟; 떟; 떟; ) HANGUL SYLLABLE DDYAEH
+B5A0;B5A0;1104 1165;B5A0;1104 1165; # (떠; 떠; 떠; 떠; 떠; ) HANGUL SYLLABLE DDEO
+B5A1;B5A1;1104 1165 11A8;B5A1;1104 1165 11A8; # (떡; 떡; 떡; 떡; 떡; ) HANGUL SYLLABLE DDEOG
+B5A2;B5A2;1104 1165 11A9;B5A2;1104 1165 11A9; # (떢; 떢; 떢; 떢; 떢; ) HANGUL SYLLABLE DDEOGG
+B5A3;B5A3;1104 1165 11AA;B5A3;1104 1165 11AA; # (떣; 떣; 떣; 떣; 떣; ) HANGUL SYLLABLE DDEOGS
+B5A4;B5A4;1104 1165 11AB;B5A4;1104 1165 11AB; # (떤; 떤; 떤; 떤; 떤; ) HANGUL SYLLABLE DDEON
+B5A5;B5A5;1104 1165 11AC;B5A5;1104 1165 11AC; # (떥; 떥; 떥; 떥; 떥; ) HANGUL SYLLABLE DDEONJ
+B5A6;B5A6;1104 1165 11AD;B5A6;1104 1165 11AD; # (떦; 떦; 떦; 떦; 떦; ) HANGUL SYLLABLE DDEONH
+B5A7;B5A7;1104 1165 11AE;B5A7;1104 1165 11AE; # (떧; 떧; 떧; 떧; 떧; ) HANGUL SYLLABLE DDEOD
+B5A8;B5A8;1104 1165 11AF;B5A8;1104 1165 11AF; # (떨; 떨; 떨; 떨; 떨; ) HANGUL SYLLABLE DDEOL
+B5A9;B5A9;1104 1165 11B0;B5A9;1104 1165 11B0; # (떩; 떩; 떩; 떩; 떩; ) HANGUL SYLLABLE DDEOLG
+B5AA;B5AA;1104 1165 11B1;B5AA;1104 1165 11B1; # (떪; 떪; 떪; 떪; 떪; ) HANGUL SYLLABLE DDEOLM
+B5AB;B5AB;1104 1165 11B2;B5AB;1104 1165 11B2; # (떫; 떫; 떫; 떫; 떫; ) HANGUL SYLLABLE DDEOLB
+B5AC;B5AC;1104 1165 11B3;B5AC;1104 1165 11B3; # (떬; 떬; 떬; 떬; 떬; ) HANGUL SYLLABLE DDEOLS
+B5AD;B5AD;1104 1165 11B4;B5AD;1104 1165 11B4; # (떭; 떭; 떭; 떭; 떭; ) HANGUL SYLLABLE DDEOLT
+B5AE;B5AE;1104 1165 11B5;B5AE;1104 1165 11B5; # (떮; 떮; 떮; 떮; 떮; ) HANGUL SYLLABLE DDEOLP
+B5AF;B5AF;1104 1165 11B6;B5AF;1104 1165 11B6; # (떯; 떯; 떯; 떯; 떯; ) HANGUL SYLLABLE DDEOLH
+B5B0;B5B0;1104 1165 11B7;B5B0;1104 1165 11B7; # (떰; 떰; 떰; 떰; 떰; ) HANGUL SYLLABLE DDEOM
+B5B1;B5B1;1104 1165 11B8;B5B1;1104 1165 11B8; # (떱; 떱; 떱; 떱; 떱; ) HANGUL SYLLABLE DDEOB
+B5B2;B5B2;1104 1165 11B9;B5B2;1104 1165 11B9; # (떲; 떲; 떲; 떲; 떲; ) HANGUL SYLLABLE DDEOBS
+B5B3;B5B3;1104 1165 11BA;B5B3;1104 1165 11BA; # (떳; 떳; 떳; 떳; 떳; ) HANGUL SYLLABLE DDEOS
+B5B4;B5B4;1104 1165 11BB;B5B4;1104 1165 11BB; # (떴; 떴; 떴; 떴; 떴; ) HANGUL SYLLABLE DDEOSS
+B5B5;B5B5;1104 1165 11BC;B5B5;1104 1165 11BC; # (떵; 떵; 떵; 떵; 떵; ) HANGUL SYLLABLE DDEONG
+B5B6;B5B6;1104 1165 11BD;B5B6;1104 1165 11BD; # (떶; 떶; 떶; 떶; 떶; ) HANGUL SYLLABLE DDEOJ
+B5B7;B5B7;1104 1165 11BE;B5B7;1104 1165 11BE; # (떷; 떷; 떷; 떷; 떷; ) HANGUL SYLLABLE DDEOC
+B5B8;B5B8;1104 1165 11BF;B5B8;1104 1165 11BF; # (떸; 떸; 떸; 떸; 떸; ) HANGUL SYLLABLE DDEOK
+B5B9;B5B9;1104 1165 11C0;B5B9;1104 1165 11C0; # (떹; 떹; 떹; 떹; 떹; ) HANGUL SYLLABLE DDEOT
+B5BA;B5BA;1104 1165 11C1;B5BA;1104 1165 11C1; # (떺; 떺; 떺; 떺; 떺; ) HANGUL SYLLABLE DDEOP
+B5BB;B5BB;1104 1165 11C2;B5BB;1104 1165 11C2; # (떻; 떻; 떻; 떻; 떻; ) HANGUL SYLLABLE DDEOH
+B5BC;B5BC;1104 1166;B5BC;1104 1166; # (떼; 떼; 떼; 떼; 떼; ) HANGUL SYLLABLE DDE
+B5BD;B5BD;1104 1166 11A8;B5BD;1104 1166 11A8; # (떽; 떽; 떽; 떽; 떽; ) HANGUL SYLLABLE DDEG
+B5BE;B5BE;1104 1166 11A9;B5BE;1104 1166 11A9; # (떾; 떾; 떾; 떾; 떾; ) HANGUL SYLLABLE DDEGG
+B5BF;B5BF;1104 1166 11AA;B5BF;1104 1166 11AA; # (떿; 떿; 떿; 떿; 떿; ) HANGUL SYLLABLE DDEGS
+B5C0;B5C0;1104 1166 11AB;B5C0;1104 1166 11AB; # (뗀; 뗀; 뗀; 뗀; 뗀; ) HANGUL SYLLABLE DDEN
+B5C1;B5C1;1104 1166 11AC;B5C1;1104 1166 11AC; # (뗁; 뗁; 뗁; 뗁; 뗁; ) HANGUL SYLLABLE DDENJ
+B5C2;B5C2;1104 1166 11AD;B5C2;1104 1166 11AD; # (뗂; 뗂; 뗂; 뗂; 뗂; ) HANGUL SYLLABLE DDENH
+B5C3;B5C3;1104 1166 11AE;B5C3;1104 1166 11AE; # (뗃; 뗃; 뗃; 뗃; 뗃; ) HANGUL SYLLABLE DDED
+B5C4;B5C4;1104 1166 11AF;B5C4;1104 1166 11AF; # (뗄; 뗄; 뗄; 뗄; 뗄; ) HANGUL SYLLABLE DDEL
+B5C5;B5C5;1104 1166 11B0;B5C5;1104 1166 11B0; # (뗅; 뗅; 뗅; 뗅; 뗅; ) HANGUL SYLLABLE DDELG
+B5C6;B5C6;1104 1166 11B1;B5C6;1104 1166 11B1; # (뗆; 뗆; 뗆; 뗆; 뗆; ) HANGUL SYLLABLE DDELM
+B5C7;B5C7;1104 1166 11B2;B5C7;1104 1166 11B2; # (뗇; 뗇; 뗇; 뗇; 뗇; ) HANGUL SYLLABLE DDELB
+B5C8;B5C8;1104 1166 11B3;B5C8;1104 1166 11B3; # (뗈; 뗈; 뗈; 뗈; 뗈; ) HANGUL SYLLABLE DDELS
+B5C9;B5C9;1104 1166 11B4;B5C9;1104 1166 11B4; # (뗉; 뗉; 뗉; 뗉; 뗉; ) HANGUL SYLLABLE DDELT
+B5CA;B5CA;1104 1166 11B5;B5CA;1104 1166 11B5; # (뗊; 뗊; 뗊; 뗊; 뗊; ) HANGUL SYLLABLE DDELP
+B5CB;B5CB;1104 1166 11B6;B5CB;1104 1166 11B6; # (뗋; 뗋; 뗋; 뗋; 뗋; ) HANGUL SYLLABLE DDELH
+B5CC;B5CC;1104 1166 11B7;B5CC;1104 1166 11B7; # (뗌; 뗌; 뗌; 뗌; 뗌; ) HANGUL SYLLABLE DDEM
+B5CD;B5CD;1104 1166 11B8;B5CD;1104 1166 11B8; # (뗍; 뗍; 뗍; 뗍; 뗍; ) HANGUL SYLLABLE DDEB
+B5CE;B5CE;1104 1166 11B9;B5CE;1104 1166 11B9; # (뗎; 뗎; 뗎; 뗎; 뗎; ) HANGUL SYLLABLE DDEBS
+B5CF;B5CF;1104 1166 11BA;B5CF;1104 1166 11BA; # (뗏; 뗏; 뗏; 뗏; 뗏; ) HANGUL SYLLABLE DDES
+B5D0;B5D0;1104 1166 11BB;B5D0;1104 1166 11BB; # (뗐; 뗐; 뗐; 뗐; 뗐; ) HANGUL SYLLABLE DDESS
+B5D1;B5D1;1104 1166 11BC;B5D1;1104 1166 11BC; # (뗑; 뗑; 뗑; 뗑; 뗑; ) HANGUL SYLLABLE DDENG
+B5D2;B5D2;1104 1166 11BD;B5D2;1104 1166 11BD; # (뗒; 뗒; 뗒; 뗒; 뗒; ) HANGUL SYLLABLE DDEJ
+B5D3;B5D3;1104 1166 11BE;B5D3;1104 1166 11BE; # (뗓; 뗓; 뗓; 뗓; 뗓; ) HANGUL SYLLABLE DDEC
+B5D4;B5D4;1104 1166 11BF;B5D4;1104 1166 11BF; # (뗔; 뗔; 뗔; 뗔; 뗔; ) HANGUL SYLLABLE DDEK
+B5D5;B5D5;1104 1166 11C0;B5D5;1104 1166 11C0; # (뗕; 뗕; 뗕; 뗕; 뗕; ) HANGUL SYLLABLE DDET
+B5D6;B5D6;1104 1166 11C1;B5D6;1104 1166 11C1; # (뗖; 뗖; 뗖; 뗖; 뗖; ) HANGUL SYLLABLE DDEP
+B5D7;B5D7;1104 1166 11C2;B5D7;1104 1166 11C2; # (뗗; 뗗; 뗗; 뗗; 뗗; ) HANGUL SYLLABLE DDEH
+B5D8;B5D8;1104 1167;B5D8;1104 1167; # (뗘; 뗘; 뗘; 뗘; 뗘; ) HANGUL SYLLABLE DDYEO
+B5D9;B5D9;1104 1167 11A8;B5D9;1104 1167 11A8; # (뗙; 뗙; 뗙; 뗙; 뗙; ) HANGUL SYLLABLE DDYEOG
+B5DA;B5DA;1104 1167 11A9;B5DA;1104 1167 11A9; # (뗚; 뗚; 뗚; 뗚; 뗚; ) HANGUL SYLLABLE DDYEOGG
+B5DB;B5DB;1104 1167 11AA;B5DB;1104 1167 11AA; # (뗛; 뗛; 뗛; 뗛; 뗛; ) HANGUL SYLLABLE DDYEOGS
+B5DC;B5DC;1104 1167 11AB;B5DC;1104 1167 11AB; # (뗜; 뗜; 뗜; 뗜; 뗜; ) HANGUL SYLLABLE DDYEON
+B5DD;B5DD;1104 1167 11AC;B5DD;1104 1167 11AC; # (뗝; 뗝; 뗝; 뗝; 뗝; ) HANGUL SYLLABLE DDYEONJ
+B5DE;B5DE;1104 1167 11AD;B5DE;1104 1167 11AD; # (뗞; 뗞; 뗞; 뗞; 뗞; ) HANGUL SYLLABLE DDYEONH
+B5DF;B5DF;1104 1167 11AE;B5DF;1104 1167 11AE; # (뗟; 뗟; 뗟; 뗟; 뗟; ) HANGUL SYLLABLE DDYEOD
+B5E0;B5E0;1104 1167 11AF;B5E0;1104 1167 11AF; # (뗠; 뗠; 뗠; 뗠; 뗠; ) HANGUL SYLLABLE DDYEOL
+B5E1;B5E1;1104 1167 11B0;B5E1;1104 1167 11B0; # (뗡; 뗡; 뗡; 뗡; 뗡; ) HANGUL SYLLABLE DDYEOLG
+B5E2;B5E2;1104 1167 11B1;B5E2;1104 1167 11B1; # (뗢; 뗢; 뗢; 뗢; 뗢; ) HANGUL SYLLABLE DDYEOLM
+B5E3;B5E3;1104 1167 11B2;B5E3;1104 1167 11B2; # (뗣; 뗣; 뗣; 뗣; 뗣; ) HANGUL SYLLABLE DDYEOLB
+B5E4;B5E4;1104 1167 11B3;B5E4;1104 1167 11B3; # (뗤; 뗤; 뗤; 뗤; 뗤; ) HANGUL SYLLABLE DDYEOLS
+B5E5;B5E5;1104 1167 11B4;B5E5;1104 1167 11B4; # (뗥; 뗥; 뗥; 뗥; 뗥; ) HANGUL SYLLABLE DDYEOLT
+B5E6;B5E6;1104 1167 11B5;B5E6;1104 1167 11B5; # (뗦; 뗦; 뗦; 뗦; 뗦; ) HANGUL SYLLABLE DDYEOLP
+B5E7;B5E7;1104 1167 11B6;B5E7;1104 1167 11B6; # (뗧; 뗧; 뗧; 뗧; 뗧; ) HANGUL SYLLABLE DDYEOLH
+B5E8;B5E8;1104 1167 11B7;B5E8;1104 1167 11B7; # (뗨; 뗨; 뗨; 뗨; 뗨; ) HANGUL SYLLABLE DDYEOM
+B5E9;B5E9;1104 1167 11B8;B5E9;1104 1167 11B8; # (뗩; 뗩; 뗩; 뗩; 뗩; ) HANGUL SYLLABLE DDYEOB
+B5EA;B5EA;1104 1167 11B9;B5EA;1104 1167 11B9; # (뗪; 뗪; 뗪; 뗪; 뗪; ) HANGUL SYLLABLE DDYEOBS
+B5EB;B5EB;1104 1167 11BA;B5EB;1104 1167 11BA; # (뗫; 뗫; 뗫; 뗫; 뗫; ) HANGUL SYLLABLE DDYEOS
+B5EC;B5EC;1104 1167 11BB;B5EC;1104 1167 11BB; # (뗬; 뗬; 뗬; 뗬; 뗬; ) HANGUL SYLLABLE DDYEOSS
+B5ED;B5ED;1104 1167 11BC;B5ED;1104 1167 11BC; # (뗭; 뗭; 뗭; 뗭; 뗭; ) HANGUL SYLLABLE DDYEONG
+B5EE;B5EE;1104 1167 11BD;B5EE;1104 1167 11BD; # (뗮; 뗮; 뗮; 뗮; 뗮; ) HANGUL SYLLABLE DDYEOJ
+B5EF;B5EF;1104 1167 11BE;B5EF;1104 1167 11BE; # (뗯; 뗯; 뗯; 뗯; 뗯; ) HANGUL SYLLABLE DDYEOC
+B5F0;B5F0;1104 1167 11BF;B5F0;1104 1167 11BF; # (뗰; 뗰; 뗰; 뗰; 뗰; ) HANGUL SYLLABLE DDYEOK
+B5F1;B5F1;1104 1167 11C0;B5F1;1104 1167 11C0; # (뗱; 뗱; 뗱; 뗱; 뗱; ) HANGUL SYLLABLE DDYEOT
+B5F2;B5F2;1104 1167 11C1;B5F2;1104 1167 11C1; # (뗲; 뗲; 뗲; 뗲; 뗲; ) HANGUL SYLLABLE DDYEOP
+B5F3;B5F3;1104 1167 11C2;B5F3;1104 1167 11C2; # (뗳; 뗳; 뗳; 뗳; 뗳; ) HANGUL SYLLABLE DDYEOH
+B5F4;B5F4;1104 1168;B5F4;1104 1168; # (뗴; 뗴; 뗴; 뗴; 뗴; ) HANGUL SYLLABLE DDYE
+B5F5;B5F5;1104 1168 11A8;B5F5;1104 1168 11A8; # (뗵; 뗵; 뗵; 뗵; 뗵; ) HANGUL SYLLABLE DDYEG
+B5F6;B5F6;1104 1168 11A9;B5F6;1104 1168 11A9; # (뗶; 뗶; 뗶; 뗶; 뗶; ) HANGUL SYLLABLE DDYEGG
+B5F7;B5F7;1104 1168 11AA;B5F7;1104 1168 11AA; # (뗷; 뗷; 뗷; 뗷; 뗷; ) HANGUL SYLLABLE DDYEGS
+B5F8;B5F8;1104 1168 11AB;B5F8;1104 1168 11AB; # (뗸; 뗸; 뗸; 뗸; 뗸; ) HANGUL SYLLABLE DDYEN
+B5F9;B5F9;1104 1168 11AC;B5F9;1104 1168 11AC; # (뗹; 뗹; 뗹; 뗹; 뗹; ) HANGUL SYLLABLE DDYENJ
+B5FA;B5FA;1104 1168 11AD;B5FA;1104 1168 11AD; # (뗺; 뗺; 뗺; 뗺; 뗺; ) HANGUL SYLLABLE DDYENH
+B5FB;B5FB;1104 1168 11AE;B5FB;1104 1168 11AE; # (뗻; 뗻; 뗻; 뗻; 뗻; ) HANGUL SYLLABLE DDYED
+B5FC;B5FC;1104 1168 11AF;B5FC;1104 1168 11AF; # (뗼; 뗼; 뗼; 뗼; 뗼; ) HANGUL SYLLABLE DDYEL
+B5FD;B5FD;1104 1168 11B0;B5FD;1104 1168 11B0; # (뗽; 뗽; 뗽; 뗽; 뗽; ) HANGUL SYLLABLE DDYELG
+B5FE;B5FE;1104 1168 11B1;B5FE;1104 1168 11B1; # (뗾; 뗾; 뗾; 뗾; 뗾; ) HANGUL SYLLABLE DDYELM
+B5FF;B5FF;1104 1168 11B2;B5FF;1104 1168 11B2; # (뗿; 뗿; 뗿; 뗿; 뗿; ) HANGUL SYLLABLE DDYELB
+B600;B600;1104 1168 11B3;B600;1104 1168 11B3; # (똀; 똀; 똀; 똀; 똀; ) HANGUL SYLLABLE DDYELS
+B601;B601;1104 1168 11B4;B601;1104 1168 11B4; # (똁; 똁; 똁; 똁; 똁; ) HANGUL SYLLABLE DDYELT
+B602;B602;1104 1168 11B5;B602;1104 1168 11B5; # (똂; 똂; 똂; 똂; 똂; ) HANGUL SYLLABLE DDYELP
+B603;B603;1104 1168 11B6;B603;1104 1168 11B6; # (똃; 똃; 똃; 똃; 똃; ) HANGUL SYLLABLE DDYELH
+B604;B604;1104 1168 11B7;B604;1104 1168 11B7; # (똄; 똄; 똄; 똄; 똄; ) HANGUL SYLLABLE DDYEM
+B605;B605;1104 1168 11B8;B605;1104 1168 11B8; # (똅; 똅; 똅; 똅; 똅; ) HANGUL SYLLABLE DDYEB
+B606;B606;1104 1168 11B9;B606;1104 1168 11B9; # (똆; 똆; 똆; 똆; 똆; ) HANGUL SYLLABLE DDYEBS
+B607;B607;1104 1168 11BA;B607;1104 1168 11BA; # (똇; 똇; 똇; 똇; 똇; ) HANGUL SYLLABLE DDYES
+B608;B608;1104 1168 11BB;B608;1104 1168 11BB; # (똈; 똈; 똈; 똈; 똈; ) HANGUL SYLLABLE DDYESS
+B609;B609;1104 1168 11BC;B609;1104 1168 11BC; # (똉; 똉; 똉; 똉; 똉; ) HANGUL SYLLABLE DDYENG
+B60A;B60A;1104 1168 11BD;B60A;1104 1168 11BD; # (똊; 똊; 똊; 똊; 똊; ) HANGUL SYLLABLE DDYEJ
+B60B;B60B;1104 1168 11BE;B60B;1104 1168 11BE; # (똋; 똋; 똋; 똋; 똋; ) HANGUL SYLLABLE DDYEC
+B60C;B60C;1104 1168 11BF;B60C;1104 1168 11BF; # (똌; 똌; 똌; 똌; 똌; ) HANGUL SYLLABLE DDYEK
+B60D;B60D;1104 1168 11C0;B60D;1104 1168 11C0; # (똍; 똍; 똍; 똍; 똍; ) HANGUL SYLLABLE DDYET
+B60E;B60E;1104 1168 11C1;B60E;1104 1168 11C1; # (똎; 똎; 똎; 똎; 똎; ) HANGUL SYLLABLE DDYEP
+B60F;B60F;1104 1168 11C2;B60F;1104 1168 11C2; # (똏; 똏; 똏; 똏; 똏; ) HANGUL SYLLABLE DDYEH
+B610;B610;1104 1169;B610;1104 1169; # (또; 또; 또; 또; 또; ) HANGUL SYLLABLE DDO
+B611;B611;1104 1169 11A8;B611;1104 1169 11A8; # (똑; 똑; 똑; 똑; 똑; ) HANGUL SYLLABLE DDOG
+B612;B612;1104 1169 11A9;B612;1104 1169 11A9; # (똒; 똒; 똒; 똒; 똒; ) HANGUL SYLLABLE DDOGG
+B613;B613;1104 1169 11AA;B613;1104 1169 11AA; # (똓; 똓; 똓; 똓; 똓; ) HANGUL SYLLABLE DDOGS
+B614;B614;1104 1169 11AB;B614;1104 1169 11AB; # (똔; 똔; 똔; 똔; 똔; ) HANGUL SYLLABLE DDON
+B615;B615;1104 1169 11AC;B615;1104 1169 11AC; # (똕; 똕; 똕; 똕; 똕; ) HANGUL SYLLABLE DDONJ
+B616;B616;1104 1169 11AD;B616;1104 1169 11AD; # (똖; 똖; 똖; 똖; 똖; ) HANGUL SYLLABLE DDONH
+B617;B617;1104 1169 11AE;B617;1104 1169 11AE; # (똗; 똗; 똗; 똗; 똗; ) HANGUL SYLLABLE DDOD
+B618;B618;1104 1169 11AF;B618;1104 1169 11AF; # (똘; 똘; 똘; 똘; 똘; ) HANGUL SYLLABLE DDOL
+B619;B619;1104 1169 11B0;B619;1104 1169 11B0; # (똙; 똙; 똙; 똙; 똙; ) HANGUL SYLLABLE DDOLG
+B61A;B61A;1104 1169 11B1;B61A;1104 1169 11B1; # (똚; 똚; 똚; 똚; 똚; ) HANGUL SYLLABLE DDOLM
+B61B;B61B;1104 1169 11B2;B61B;1104 1169 11B2; # (똛; 똛; 똛; 똛; 똛; ) HANGUL SYLLABLE DDOLB
+B61C;B61C;1104 1169 11B3;B61C;1104 1169 11B3; # (똜; 똜; 똜; 똜; 똜; ) HANGUL SYLLABLE DDOLS
+B61D;B61D;1104 1169 11B4;B61D;1104 1169 11B4; # (똝; 똝; 똝; 똝; 똝; ) HANGUL SYLLABLE DDOLT
+B61E;B61E;1104 1169 11B5;B61E;1104 1169 11B5; # (똞; 똞; 똞; 똞; 똞; ) HANGUL SYLLABLE DDOLP
+B61F;B61F;1104 1169 11B6;B61F;1104 1169 11B6; # (똟; 똟; 똟; 똟; 똟; ) HANGUL SYLLABLE DDOLH
+B620;B620;1104 1169 11B7;B620;1104 1169 11B7; # (똠; 똠; 똠; 똠; 똠; ) HANGUL SYLLABLE DDOM
+B621;B621;1104 1169 11B8;B621;1104 1169 11B8; # (똡; 똡; 똡; 똡; 똡; ) HANGUL SYLLABLE DDOB
+B622;B622;1104 1169 11B9;B622;1104 1169 11B9; # (똢; 똢; 똢; 똢; 똢; ) HANGUL SYLLABLE DDOBS
+B623;B623;1104 1169 11BA;B623;1104 1169 11BA; # (똣; 똣; 똣; 똣; 똣; ) HANGUL SYLLABLE DDOS
+B624;B624;1104 1169 11BB;B624;1104 1169 11BB; # (똤; 똤; 똤; 똤; 똤; ) HANGUL SYLLABLE DDOSS
+B625;B625;1104 1169 11BC;B625;1104 1169 11BC; # (똥; 똥; 똥; 똥; 똥; ) HANGUL SYLLABLE DDONG
+B626;B626;1104 1169 11BD;B626;1104 1169 11BD; # (똦; 똦; 똦; 똦; 똦; ) HANGUL SYLLABLE DDOJ
+B627;B627;1104 1169 11BE;B627;1104 1169 11BE; # (똧; 똧; 똧; 똧; 똧; ) HANGUL SYLLABLE DDOC
+B628;B628;1104 1169 11BF;B628;1104 1169 11BF; # (똨; 똨; 똨; 똨; 똨; ) HANGUL SYLLABLE DDOK
+B629;B629;1104 1169 11C0;B629;1104 1169 11C0; # (똩; 똩; 똩; 똩; 똩; ) HANGUL SYLLABLE DDOT
+B62A;B62A;1104 1169 11C1;B62A;1104 1169 11C1; # (똪; 똪; 똪; 똪; 똪; ) HANGUL SYLLABLE DDOP
+B62B;B62B;1104 1169 11C2;B62B;1104 1169 11C2; # (똫; 똫; 똫; 똫; 똫; ) HANGUL SYLLABLE DDOH
+B62C;B62C;1104 116A;B62C;1104 116A; # (똬; 똬; 똬; 똬; 똬; ) HANGUL SYLLABLE DDWA
+B62D;B62D;1104 116A 11A8;B62D;1104 116A 11A8; # (똭; 똭; 똭; 똭; 똭; ) HANGUL SYLLABLE DDWAG
+B62E;B62E;1104 116A 11A9;B62E;1104 116A 11A9; # (똮; 똮; 똮; 똮; 똮; ) HANGUL SYLLABLE DDWAGG
+B62F;B62F;1104 116A 11AA;B62F;1104 116A 11AA; # (똯; 똯; 똯; 똯; 똯; ) HANGUL SYLLABLE DDWAGS
+B630;B630;1104 116A 11AB;B630;1104 116A 11AB; # (똰; 똰; 똰; 똰; 똰; ) HANGUL SYLLABLE DDWAN
+B631;B631;1104 116A 11AC;B631;1104 116A 11AC; # (똱; 똱; 똱; 똱; 똱; ) HANGUL SYLLABLE DDWANJ
+B632;B632;1104 116A 11AD;B632;1104 116A 11AD; # (똲; 똲; 똲; 똲; 똲; ) HANGUL SYLLABLE DDWANH
+B633;B633;1104 116A 11AE;B633;1104 116A 11AE; # (똳; 똳; 똳; 똳; 똳; ) HANGUL SYLLABLE DDWAD
+B634;B634;1104 116A 11AF;B634;1104 116A 11AF; # (똴; 똴; 똴; 똴; 똴; ) HANGUL SYLLABLE DDWAL
+B635;B635;1104 116A 11B0;B635;1104 116A 11B0; # (똵; 똵; 똵; 똵; 똵; ) HANGUL SYLLABLE DDWALG
+B636;B636;1104 116A 11B1;B636;1104 116A 11B1; # (똶; 똶; 똶; 똶; 똶; ) HANGUL SYLLABLE DDWALM
+B637;B637;1104 116A 11B2;B637;1104 116A 11B2; # (똷; 똷; 똷; 똷; 똷; ) HANGUL SYLLABLE DDWALB
+B638;B638;1104 116A 11B3;B638;1104 116A 11B3; # (똸; 똸; 똸; 똸; 똸; ) HANGUL SYLLABLE DDWALS
+B639;B639;1104 116A 11B4;B639;1104 116A 11B4; # (똹; 똹; 똹; 똹; 똹; ) HANGUL SYLLABLE DDWALT
+B63A;B63A;1104 116A 11B5;B63A;1104 116A 11B5; # (똺; 똺; 똺; 똺; 똺; ) HANGUL SYLLABLE DDWALP
+B63B;B63B;1104 116A 11B6;B63B;1104 116A 11B6; # (똻; 똻; 똻; 똻; 똻; ) HANGUL SYLLABLE DDWALH
+B63C;B63C;1104 116A 11B7;B63C;1104 116A 11B7; # (똼; 똼; 똼; 똼; 똼; ) HANGUL SYLLABLE DDWAM
+B63D;B63D;1104 116A 11B8;B63D;1104 116A 11B8; # (똽; 똽; 똽; 똽; 똽; ) HANGUL SYLLABLE DDWAB
+B63E;B63E;1104 116A 11B9;B63E;1104 116A 11B9; # (똾; 똾; 똾; 똾; 똾; ) HANGUL SYLLABLE DDWABS
+B63F;B63F;1104 116A 11BA;B63F;1104 116A 11BA; # (똿; 똿; 똿; 똿; 똿; ) HANGUL SYLLABLE DDWAS
+B640;B640;1104 116A 11BB;B640;1104 116A 11BB; # (뙀; 뙀; 뙀; 뙀; 뙀; ) HANGUL SYLLABLE DDWASS
+B641;B641;1104 116A 11BC;B641;1104 116A 11BC; # (뙁; 뙁; 뙁; 뙁; 뙁; ) HANGUL SYLLABLE DDWANG
+B642;B642;1104 116A 11BD;B642;1104 116A 11BD; # (뙂; 뙂; 뙂; 뙂; 뙂; ) HANGUL SYLLABLE DDWAJ
+B643;B643;1104 116A 11BE;B643;1104 116A 11BE; # (뙃; 뙃; 뙃; 뙃; 뙃; ) HANGUL SYLLABLE DDWAC
+B644;B644;1104 116A 11BF;B644;1104 116A 11BF; # (뙄; 뙄; 뙄; 뙄; 뙄; ) HANGUL SYLLABLE DDWAK
+B645;B645;1104 116A 11C0;B645;1104 116A 11C0; # (뙅; 뙅; 뙅; 뙅; 뙅; ) HANGUL SYLLABLE DDWAT
+B646;B646;1104 116A 11C1;B646;1104 116A 11C1; # (뙆; 뙆; 뙆; 뙆; 뙆; ) HANGUL SYLLABLE DDWAP
+B647;B647;1104 116A 11C2;B647;1104 116A 11C2; # (뙇; 뙇; 뙇; 뙇; 뙇; ) HANGUL SYLLABLE DDWAH
+B648;B648;1104 116B;B648;1104 116B; # (뙈; 뙈; 뙈; 뙈; 뙈; ) HANGUL SYLLABLE DDWAE
+B649;B649;1104 116B 11A8;B649;1104 116B 11A8; # (뙉; 뙉; 뙉; 뙉; 뙉; ) HANGUL SYLLABLE DDWAEG
+B64A;B64A;1104 116B 11A9;B64A;1104 116B 11A9; # (뙊; 뙊; 뙊; 뙊; 뙊; ) HANGUL SYLLABLE DDWAEGG
+B64B;B64B;1104 116B 11AA;B64B;1104 116B 11AA; # (뙋; 뙋; 뙋; 뙋; 뙋; ) HANGUL SYLLABLE DDWAEGS
+B64C;B64C;1104 116B 11AB;B64C;1104 116B 11AB; # (뙌; 뙌; 뙌; 뙌; 뙌; ) HANGUL SYLLABLE DDWAEN
+B64D;B64D;1104 116B 11AC;B64D;1104 116B 11AC; # (뙍; 뙍; 뙍; 뙍; 뙍; ) HANGUL SYLLABLE DDWAENJ
+B64E;B64E;1104 116B 11AD;B64E;1104 116B 11AD; # (뙎; 뙎; 뙎; 뙎; 뙎; ) HANGUL SYLLABLE DDWAENH
+B64F;B64F;1104 116B 11AE;B64F;1104 116B 11AE; # (뙏; 뙏; 뙏; 뙏; 뙏; ) HANGUL SYLLABLE DDWAED
+B650;B650;1104 116B 11AF;B650;1104 116B 11AF; # (뙐; 뙐; 뙐; 뙐; 뙐; ) HANGUL SYLLABLE DDWAEL
+B651;B651;1104 116B 11B0;B651;1104 116B 11B0; # (뙑; 뙑; 뙑; 뙑; 뙑; ) HANGUL SYLLABLE DDWAELG
+B652;B652;1104 116B 11B1;B652;1104 116B 11B1; # (뙒; 뙒; 뙒; 뙒; 뙒; ) HANGUL SYLLABLE DDWAELM
+B653;B653;1104 116B 11B2;B653;1104 116B 11B2; # (뙓; 뙓; 뙓; 뙓; 뙓; ) HANGUL SYLLABLE DDWAELB
+B654;B654;1104 116B 11B3;B654;1104 116B 11B3; # (뙔; 뙔; 뙔; 뙔; 뙔; ) HANGUL SYLLABLE DDWAELS
+B655;B655;1104 116B 11B4;B655;1104 116B 11B4; # (뙕; 뙕; 뙕; 뙕; 뙕; ) HANGUL SYLLABLE DDWAELT
+B656;B656;1104 116B 11B5;B656;1104 116B 11B5; # (뙖; 뙖; 뙖; 뙖; 뙖; ) HANGUL SYLLABLE DDWAELP
+B657;B657;1104 116B 11B6;B657;1104 116B 11B6; # (뙗; 뙗; 뙗; 뙗; 뙗; ) HANGUL SYLLABLE DDWAELH
+B658;B658;1104 116B 11B7;B658;1104 116B 11B7; # (뙘; 뙘; 뙘; 뙘; 뙘; ) HANGUL SYLLABLE DDWAEM
+B659;B659;1104 116B 11B8;B659;1104 116B 11B8; # (뙙; 뙙; 뙙; 뙙; 뙙; ) HANGUL SYLLABLE DDWAEB
+B65A;B65A;1104 116B 11B9;B65A;1104 116B 11B9; # (뙚; 뙚; 뙚; 뙚; 뙚; ) HANGUL SYLLABLE DDWAEBS
+B65B;B65B;1104 116B 11BA;B65B;1104 116B 11BA; # (뙛; 뙛; 뙛; 뙛; 뙛; ) HANGUL SYLLABLE DDWAES
+B65C;B65C;1104 116B 11BB;B65C;1104 116B 11BB; # (뙜; 뙜; 뙜; 뙜; 뙜; ) HANGUL SYLLABLE DDWAESS
+B65D;B65D;1104 116B 11BC;B65D;1104 116B 11BC; # (뙝; 뙝; 뙝; 뙝; 뙝; ) HANGUL SYLLABLE DDWAENG
+B65E;B65E;1104 116B 11BD;B65E;1104 116B 11BD; # (뙞; 뙞; 뙞; 뙞; 뙞; ) HANGUL SYLLABLE DDWAEJ
+B65F;B65F;1104 116B 11BE;B65F;1104 116B 11BE; # (뙟; 뙟; 뙟; 뙟; 뙟; ) HANGUL SYLLABLE DDWAEC
+B660;B660;1104 116B 11BF;B660;1104 116B 11BF; # (뙠; 뙠; 뙠; 뙠; 뙠; ) HANGUL SYLLABLE DDWAEK
+B661;B661;1104 116B 11C0;B661;1104 116B 11C0; # (뙡; 뙡; 뙡; 뙡; 뙡; ) HANGUL SYLLABLE DDWAET
+B662;B662;1104 116B 11C1;B662;1104 116B 11C1; # (뙢; 뙢; 뙢; 뙢; 뙢; ) HANGUL SYLLABLE DDWAEP
+B663;B663;1104 116B 11C2;B663;1104 116B 11C2; # (뙣; 뙣; 뙣; 뙣; 뙣; ) HANGUL SYLLABLE DDWAEH
+B664;B664;1104 116C;B664;1104 116C; # (뙤; 뙤; 뙤; 뙤; 뙤; ) HANGUL SYLLABLE DDOE
+B665;B665;1104 116C 11A8;B665;1104 116C 11A8; # (뙥; 뙥; 뙥; 뙥; 뙥; ) HANGUL SYLLABLE DDOEG
+B666;B666;1104 116C 11A9;B666;1104 116C 11A9; # (뙦; 뙦; 뙦; 뙦; 뙦; ) HANGUL SYLLABLE DDOEGG
+B667;B667;1104 116C 11AA;B667;1104 116C 11AA; # (뙧; 뙧; 뙧; 뙧; 뙧; ) HANGUL SYLLABLE DDOEGS
+B668;B668;1104 116C 11AB;B668;1104 116C 11AB; # (뙨; 뙨; 뙨; 뙨; 뙨; ) HANGUL SYLLABLE DDOEN
+B669;B669;1104 116C 11AC;B669;1104 116C 11AC; # (뙩; 뙩; 뙩; 뙩; 뙩; ) HANGUL SYLLABLE DDOENJ
+B66A;B66A;1104 116C 11AD;B66A;1104 116C 11AD; # (뙪; 뙪; 뙪; 뙪; 뙪; ) HANGUL SYLLABLE DDOENH
+B66B;B66B;1104 116C 11AE;B66B;1104 116C 11AE; # (뙫; 뙫; 뙫; 뙫; 뙫; ) HANGUL SYLLABLE DDOED
+B66C;B66C;1104 116C 11AF;B66C;1104 116C 11AF; # (뙬; 뙬; 뙬; 뙬; 뙬; ) HANGUL SYLLABLE DDOEL
+B66D;B66D;1104 116C 11B0;B66D;1104 116C 11B0; # (뙭; 뙭; 뙭; 뙭; 뙭; ) HANGUL SYLLABLE DDOELG
+B66E;B66E;1104 116C 11B1;B66E;1104 116C 11B1; # (뙮; 뙮; 뙮; 뙮; 뙮; ) HANGUL SYLLABLE DDOELM
+B66F;B66F;1104 116C 11B2;B66F;1104 116C 11B2; # (뙯; 뙯; 뙯; 뙯; 뙯; ) HANGUL SYLLABLE DDOELB
+B670;B670;1104 116C 11B3;B670;1104 116C 11B3; # (뙰; 뙰; 뙰; 뙰; 뙰; ) HANGUL SYLLABLE DDOELS
+B671;B671;1104 116C 11B4;B671;1104 116C 11B4; # (뙱; 뙱; 뙱; 뙱; 뙱; ) HANGUL SYLLABLE DDOELT
+B672;B672;1104 116C 11B5;B672;1104 116C 11B5; # (뙲; 뙲; 뙲; 뙲; 뙲; ) HANGUL SYLLABLE DDOELP
+B673;B673;1104 116C 11B6;B673;1104 116C 11B6; # (뙳; 뙳; 뙳; 뙳; 뙳; ) HANGUL SYLLABLE DDOELH
+B674;B674;1104 116C 11B7;B674;1104 116C 11B7; # (뙴; 뙴; 뙴; 뙴; 뙴; ) HANGUL SYLLABLE DDOEM
+B675;B675;1104 116C 11B8;B675;1104 116C 11B8; # (뙵; 뙵; 뙵; 뙵; 뙵; ) HANGUL SYLLABLE DDOEB
+B676;B676;1104 116C 11B9;B676;1104 116C 11B9; # (뙶; 뙶; 뙶; 뙶; 뙶; ) HANGUL SYLLABLE DDOEBS
+B677;B677;1104 116C 11BA;B677;1104 116C 11BA; # (뙷; 뙷; 뙷; 뙷; 뙷; ) HANGUL SYLLABLE DDOES
+B678;B678;1104 116C 11BB;B678;1104 116C 11BB; # (뙸; 뙸; 뙸; 뙸; 뙸; ) HANGUL SYLLABLE DDOESS
+B679;B679;1104 116C 11BC;B679;1104 116C 11BC; # (뙹; 뙹; 뙹; 뙹; 뙹; ) HANGUL SYLLABLE DDOENG
+B67A;B67A;1104 116C 11BD;B67A;1104 116C 11BD; # (뙺; 뙺; 뙺; 뙺; 뙺; ) HANGUL SYLLABLE DDOEJ
+B67B;B67B;1104 116C 11BE;B67B;1104 116C 11BE; # (뙻; 뙻; 뙻; 뙻; 뙻; ) HANGUL SYLLABLE DDOEC
+B67C;B67C;1104 116C 11BF;B67C;1104 116C 11BF; # (뙼; 뙼; 뙼; 뙼; 뙼; ) HANGUL SYLLABLE DDOEK
+B67D;B67D;1104 116C 11C0;B67D;1104 116C 11C0; # (뙽; 뙽; 뙽; 뙽; 뙽; ) HANGUL SYLLABLE DDOET
+B67E;B67E;1104 116C 11C1;B67E;1104 116C 11C1; # (뙾; 뙾; 뙾; 뙾; 뙾; ) HANGUL SYLLABLE DDOEP
+B67F;B67F;1104 116C 11C2;B67F;1104 116C 11C2; # (뙿; 뙿; 뙿; 뙿; 뙿; ) HANGUL SYLLABLE DDOEH
+B680;B680;1104 116D;B680;1104 116D; # (뚀; 뚀; 뚀; 뚀; 뚀; ) HANGUL SYLLABLE DDYO
+B681;B681;1104 116D 11A8;B681;1104 116D 11A8; # (뚁; 뚁; 뚁; 뚁; 뚁; ) HANGUL SYLLABLE DDYOG
+B682;B682;1104 116D 11A9;B682;1104 116D 11A9; # (뚂; 뚂; 뚂; 뚂; 뚂; ) HANGUL SYLLABLE DDYOGG
+B683;B683;1104 116D 11AA;B683;1104 116D 11AA; # (뚃; 뚃; 뚃; 뚃; 뚃; ) HANGUL SYLLABLE DDYOGS
+B684;B684;1104 116D 11AB;B684;1104 116D 11AB; # (뚄; 뚄; 뚄; 뚄; 뚄; ) HANGUL SYLLABLE DDYON
+B685;B685;1104 116D 11AC;B685;1104 116D 11AC; # (뚅; 뚅; 뚅; 뚅; 뚅; ) HANGUL SYLLABLE DDYONJ
+B686;B686;1104 116D 11AD;B686;1104 116D 11AD; # (뚆; 뚆; 뚆; 뚆; 뚆; ) HANGUL SYLLABLE DDYONH
+B687;B687;1104 116D 11AE;B687;1104 116D 11AE; # (뚇; 뚇; 뚇; 뚇; 뚇; ) HANGUL SYLLABLE DDYOD
+B688;B688;1104 116D 11AF;B688;1104 116D 11AF; # (뚈; 뚈; 뚈; 뚈; 뚈; ) HANGUL SYLLABLE DDYOL
+B689;B689;1104 116D 11B0;B689;1104 116D 11B0; # (뚉; 뚉; 뚉; 뚉; 뚉; ) HANGUL SYLLABLE DDYOLG
+B68A;B68A;1104 116D 11B1;B68A;1104 116D 11B1; # (뚊; 뚊; 뚊; 뚊; 뚊; ) HANGUL SYLLABLE DDYOLM
+B68B;B68B;1104 116D 11B2;B68B;1104 116D 11B2; # (뚋; 뚋; 뚋; 뚋; 뚋; ) HANGUL SYLLABLE DDYOLB
+B68C;B68C;1104 116D 11B3;B68C;1104 116D 11B3; # (뚌; 뚌; 뚌; 뚌; 뚌; ) HANGUL SYLLABLE DDYOLS
+B68D;B68D;1104 116D 11B4;B68D;1104 116D 11B4; # (뚍; 뚍; 뚍; 뚍; 뚍; ) HANGUL SYLLABLE DDYOLT
+B68E;B68E;1104 116D 11B5;B68E;1104 116D 11B5; # (뚎; 뚎; 뚎; 뚎; 뚎; ) HANGUL SYLLABLE DDYOLP
+B68F;B68F;1104 116D 11B6;B68F;1104 116D 11B6; # (뚏; 뚏; 뚏; 뚏; 뚏; ) HANGUL SYLLABLE DDYOLH
+B690;B690;1104 116D 11B7;B690;1104 116D 11B7; # (뚐; 뚐; 뚐; 뚐; 뚐; ) HANGUL SYLLABLE DDYOM
+B691;B691;1104 116D 11B8;B691;1104 116D 11B8; # (뚑; 뚑; 뚑; 뚑; 뚑; ) HANGUL SYLLABLE DDYOB
+B692;B692;1104 116D 11B9;B692;1104 116D 11B9; # (뚒; 뚒; 뚒; 뚒; 뚒; ) HANGUL SYLLABLE DDYOBS
+B693;B693;1104 116D 11BA;B693;1104 116D 11BA; # (뚓; 뚓; 뚓; 뚓; 뚓; ) HANGUL SYLLABLE DDYOS
+B694;B694;1104 116D 11BB;B694;1104 116D 11BB; # (뚔; 뚔; 뚔; 뚔; 뚔; ) HANGUL SYLLABLE DDYOSS
+B695;B695;1104 116D 11BC;B695;1104 116D 11BC; # (뚕; 뚕; 뚕; 뚕; 뚕; ) HANGUL SYLLABLE DDYONG
+B696;B696;1104 116D 11BD;B696;1104 116D 11BD; # (뚖; 뚖; 뚖; 뚖; 뚖; ) HANGUL SYLLABLE DDYOJ
+B697;B697;1104 116D 11BE;B697;1104 116D 11BE; # (뚗; 뚗; 뚗; 뚗; 뚗; ) HANGUL SYLLABLE DDYOC
+B698;B698;1104 116D 11BF;B698;1104 116D 11BF; # (뚘; 뚘; 뚘; 뚘; 뚘; ) HANGUL SYLLABLE DDYOK
+B699;B699;1104 116D 11C0;B699;1104 116D 11C0; # (뚙; 뚙; 뚙; 뚙; 뚙; ) HANGUL SYLLABLE DDYOT
+B69A;B69A;1104 116D 11C1;B69A;1104 116D 11C1; # (뚚; 뚚; 뚚; 뚚; 뚚; ) HANGUL SYLLABLE DDYOP
+B69B;B69B;1104 116D 11C2;B69B;1104 116D 11C2; # (뚛; 뚛; 뚛; 뚛; 뚛; ) HANGUL SYLLABLE DDYOH
+B69C;B69C;1104 116E;B69C;1104 116E; # (뚜; 뚜; 뚜; 뚜; 뚜; ) HANGUL SYLLABLE DDU
+B69D;B69D;1104 116E 11A8;B69D;1104 116E 11A8; # (뚝; 뚝; 뚝; 뚝; 뚝; ) HANGUL SYLLABLE DDUG
+B69E;B69E;1104 116E 11A9;B69E;1104 116E 11A9; # (뚞; 뚞; 뚞; 뚞; 뚞; ) HANGUL SYLLABLE DDUGG
+B69F;B69F;1104 116E 11AA;B69F;1104 116E 11AA; # (뚟; 뚟; 뚟; 뚟; 뚟; ) HANGUL SYLLABLE DDUGS
+B6A0;B6A0;1104 116E 11AB;B6A0;1104 116E 11AB; # (뚠; 뚠; 뚠; 뚠; 뚠; ) HANGUL SYLLABLE DDUN
+B6A1;B6A1;1104 116E 11AC;B6A1;1104 116E 11AC; # (뚡; 뚡; 뚡; 뚡; 뚡; ) HANGUL SYLLABLE DDUNJ
+B6A2;B6A2;1104 116E 11AD;B6A2;1104 116E 11AD; # (뚢; 뚢; 뚢; 뚢; 뚢; ) HANGUL SYLLABLE DDUNH
+B6A3;B6A3;1104 116E 11AE;B6A3;1104 116E 11AE; # (뚣; 뚣; 뚣; 뚣; 뚣; ) HANGUL SYLLABLE DDUD
+B6A4;B6A4;1104 116E 11AF;B6A4;1104 116E 11AF; # (뚤; 뚤; 뚤; 뚤; 뚤; ) HANGUL SYLLABLE DDUL
+B6A5;B6A5;1104 116E 11B0;B6A5;1104 116E 11B0; # (뚥; 뚥; 뚥; 뚥; 뚥; ) HANGUL SYLLABLE DDULG
+B6A6;B6A6;1104 116E 11B1;B6A6;1104 116E 11B1; # (뚦; 뚦; 뚦; 뚦; 뚦; ) HANGUL SYLLABLE DDULM
+B6A7;B6A7;1104 116E 11B2;B6A7;1104 116E 11B2; # (뚧; 뚧; 뚧; 뚧; 뚧; ) HANGUL SYLLABLE DDULB
+B6A8;B6A8;1104 116E 11B3;B6A8;1104 116E 11B3; # (뚨; 뚨; 뚨; 뚨; 뚨; ) HANGUL SYLLABLE DDULS
+B6A9;B6A9;1104 116E 11B4;B6A9;1104 116E 11B4; # (뚩; 뚩; 뚩; 뚩; 뚩; ) HANGUL SYLLABLE DDULT
+B6AA;B6AA;1104 116E 11B5;B6AA;1104 116E 11B5; # (뚪; 뚪; 뚪; 뚪; 뚪; ) HANGUL SYLLABLE DDULP
+B6AB;B6AB;1104 116E 11B6;B6AB;1104 116E 11B6; # (뚫; 뚫; 뚫; 뚫; 뚫; ) HANGUL SYLLABLE DDULH
+B6AC;B6AC;1104 116E 11B7;B6AC;1104 116E 11B7; # (뚬; 뚬; 뚬; 뚬; 뚬; ) HANGUL SYLLABLE DDUM
+B6AD;B6AD;1104 116E 11B8;B6AD;1104 116E 11B8; # (뚭; 뚭; 뚭; 뚭; 뚭; ) HANGUL SYLLABLE DDUB
+B6AE;B6AE;1104 116E 11B9;B6AE;1104 116E 11B9; # (뚮; 뚮; 뚮; 뚮; 뚮; ) HANGUL SYLLABLE DDUBS
+B6AF;B6AF;1104 116E 11BA;B6AF;1104 116E 11BA; # (뚯; 뚯; 뚯; 뚯; 뚯; ) HANGUL SYLLABLE DDUS
+B6B0;B6B0;1104 116E 11BB;B6B0;1104 116E 11BB; # (뚰; 뚰; 뚰; 뚰; 뚰; ) HANGUL SYLLABLE DDUSS
+B6B1;B6B1;1104 116E 11BC;B6B1;1104 116E 11BC; # (뚱; 뚱; 뚱; 뚱; 뚱; ) HANGUL SYLLABLE DDUNG
+B6B2;B6B2;1104 116E 11BD;B6B2;1104 116E 11BD; # (뚲; 뚲; 뚲; 뚲; 뚲; ) HANGUL SYLLABLE DDUJ
+B6B3;B6B3;1104 116E 11BE;B6B3;1104 116E 11BE; # (뚳; 뚳; 뚳; 뚳; 뚳; ) HANGUL SYLLABLE DDUC
+B6B4;B6B4;1104 116E 11BF;B6B4;1104 116E 11BF; # (뚴; 뚴; 뚴; 뚴; 뚴; ) HANGUL SYLLABLE DDUK
+B6B5;B6B5;1104 116E 11C0;B6B5;1104 116E 11C0; # (뚵; 뚵; 뚵; 뚵; 뚵; ) HANGUL SYLLABLE DDUT
+B6B6;B6B6;1104 116E 11C1;B6B6;1104 116E 11C1; # (뚶; 뚶; 뚶; 뚶; 뚶; ) HANGUL SYLLABLE DDUP
+B6B7;B6B7;1104 116E 11C2;B6B7;1104 116E 11C2; # (뚷; 뚷; 뚷; 뚷; 뚷; ) HANGUL SYLLABLE DDUH
+B6B8;B6B8;1104 116F;B6B8;1104 116F; # (뚸; 뚸; 뚸; 뚸; 뚸; ) HANGUL SYLLABLE DDWEO
+B6B9;B6B9;1104 116F 11A8;B6B9;1104 116F 11A8; # (뚹; 뚹; 뚹; 뚹; 뚹; ) HANGUL SYLLABLE DDWEOG
+B6BA;B6BA;1104 116F 11A9;B6BA;1104 116F 11A9; # (뚺; 뚺; 뚺; 뚺; 뚺; ) HANGUL SYLLABLE DDWEOGG
+B6BB;B6BB;1104 116F 11AA;B6BB;1104 116F 11AA; # (뚻; 뚻; 뚻; 뚻; 뚻; ) HANGUL SYLLABLE DDWEOGS
+B6BC;B6BC;1104 116F 11AB;B6BC;1104 116F 11AB; # (뚼; 뚼; 뚼; 뚼; 뚼; ) HANGUL SYLLABLE DDWEON
+B6BD;B6BD;1104 116F 11AC;B6BD;1104 116F 11AC; # (뚽; 뚽; 뚽; 뚽; 뚽; ) HANGUL SYLLABLE DDWEONJ
+B6BE;B6BE;1104 116F 11AD;B6BE;1104 116F 11AD; # (뚾; 뚾; 뚾; 뚾; 뚾; ) HANGUL SYLLABLE DDWEONH
+B6BF;B6BF;1104 116F 11AE;B6BF;1104 116F 11AE; # (뚿; 뚿; 뚿; 뚿; 뚿; ) HANGUL SYLLABLE DDWEOD
+B6C0;B6C0;1104 116F 11AF;B6C0;1104 116F 11AF; # (뛀; 뛀; 뛀; 뛀; 뛀; ) HANGUL SYLLABLE DDWEOL
+B6C1;B6C1;1104 116F 11B0;B6C1;1104 116F 11B0; # (뛁; 뛁; 뛁; 뛁; 뛁; ) HANGUL SYLLABLE DDWEOLG
+B6C2;B6C2;1104 116F 11B1;B6C2;1104 116F 11B1; # (뛂; 뛂; 뛂; 뛂; 뛂; ) HANGUL SYLLABLE DDWEOLM
+B6C3;B6C3;1104 116F 11B2;B6C3;1104 116F 11B2; # (뛃; 뛃; 뛃; 뛃; 뛃; ) HANGUL SYLLABLE DDWEOLB
+B6C4;B6C4;1104 116F 11B3;B6C4;1104 116F 11B3; # (뛄; 뛄; 뛄; 뛄; 뛄; ) HANGUL SYLLABLE DDWEOLS
+B6C5;B6C5;1104 116F 11B4;B6C5;1104 116F 11B4; # (뛅; 뛅; 뛅; 뛅; 뛅; ) HANGUL SYLLABLE DDWEOLT
+B6C6;B6C6;1104 116F 11B5;B6C6;1104 116F 11B5; # (뛆; 뛆; 뛆; 뛆; 뛆; ) HANGUL SYLLABLE DDWEOLP
+B6C7;B6C7;1104 116F 11B6;B6C7;1104 116F 11B6; # (뛇; 뛇; 뛇; 뛇; 뛇; ) HANGUL SYLLABLE DDWEOLH
+B6C8;B6C8;1104 116F 11B7;B6C8;1104 116F 11B7; # (뛈; 뛈; 뛈; 뛈; 뛈; ) HANGUL SYLLABLE DDWEOM
+B6C9;B6C9;1104 116F 11B8;B6C9;1104 116F 11B8; # (뛉; 뛉; 뛉; 뛉; 뛉; ) HANGUL SYLLABLE DDWEOB
+B6CA;B6CA;1104 116F 11B9;B6CA;1104 116F 11B9; # (뛊; 뛊; 뛊; 뛊; 뛊; ) HANGUL SYLLABLE DDWEOBS
+B6CB;B6CB;1104 116F 11BA;B6CB;1104 116F 11BA; # (뛋; 뛋; 뛋; 뛋; 뛋; ) HANGUL SYLLABLE DDWEOS
+B6CC;B6CC;1104 116F 11BB;B6CC;1104 116F 11BB; # (뛌; 뛌; 뛌; 뛌; 뛌; ) HANGUL SYLLABLE DDWEOSS
+B6CD;B6CD;1104 116F 11BC;B6CD;1104 116F 11BC; # (뛍; 뛍; 뛍; 뛍; 뛍; ) HANGUL SYLLABLE DDWEONG
+B6CE;B6CE;1104 116F 11BD;B6CE;1104 116F 11BD; # (뛎; 뛎; 뛎; 뛎; 뛎; ) HANGUL SYLLABLE DDWEOJ
+B6CF;B6CF;1104 116F 11BE;B6CF;1104 116F 11BE; # (뛏; 뛏; 뛏; 뛏; 뛏; ) HANGUL SYLLABLE DDWEOC
+B6D0;B6D0;1104 116F 11BF;B6D0;1104 116F 11BF; # (뛐; 뛐; 뛐; 뛐; 뛐; ) HANGUL SYLLABLE DDWEOK
+B6D1;B6D1;1104 116F 11C0;B6D1;1104 116F 11C0; # (뛑; 뛑; 뛑; 뛑; 뛑; ) HANGUL SYLLABLE DDWEOT
+B6D2;B6D2;1104 116F 11C1;B6D2;1104 116F 11C1; # (뛒; 뛒; 뛒; 뛒; 뛒; ) HANGUL SYLLABLE DDWEOP
+B6D3;B6D3;1104 116F 11C2;B6D3;1104 116F 11C2; # (뛓; 뛓; 뛓; 뛓; 뛓; ) HANGUL SYLLABLE DDWEOH
+B6D4;B6D4;1104 1170;B6D4;1104 1170; # (뛔; 뛔; 뛔; 뛔; 뛔; ) HANGUL SYLLABLE DDWE
+B6D5;B6D5;1104 1170 11A8;B6D5;1104 1170 11A8; # (뛕; 뛕; 뛕; 뛕; 뛕; ) HANGUL SYLLABLE DDWEG
+B6D6;B6D6;1104 1170 11A9;B6D6;1104 1170 11A9; # (뛖; 뛖; 뛖; 뛖; 뛖; ) HANGUL SYLLABLE DDWEGG
+B6D7;B6D7;1104 1170 11AA;B6D7;1104 1170 11AA; # (뛗; 뛗; 뛗; 뛗; 뛗; ) HANGUL SYLLABLE DDWEGS
+B6D8;B6D8;1104 1170 11AB;B6D8;1104 1170 11AB; # (뛘; 뛘; 뛘; 뛘; 뛘; ) HANGUL SYLLABLE DDWEN
+B6D9;B6D9;1104 1170 11AC;B6D9;1104 1170 11AC; # (뛙; 뛙; 뛙; 뛙; 뛙; ) HANGUL SYLLABLE DDWENJ
+B6DA;B6DA;1104 1170 11AD;B6DA;1104 1170 11AD; # (뛚; 뛚; 뛚; 뛚; 뛚; ) HANGUL SYLLABLE DDWENH
+B6DB;B6DB;1104 1170 11AE;B6DB;1104 1170 11AE; # (뛛; 뛛; 뛛; 뛛; 뛛; ) HANGUL SYLLABLE DDWED
+B6DC;B6DC;1104 1170 11AF;B6DC;1104 1170 11AF; # (뛜; 뛜; 뛜; 뛜; 뛜; ) HANGUL SYLLABLE DDWEL
+B6DD;B6DD;1104 1170 11B0;B6DD;1104 1170 11B0; # (뛝; 뛝; 뛝; 뛝; 뛝; ) HANGUL SYLLABLE DDWELG
+B6DE;B6DE;1104 1170 11B1;B6DE;1104 1170 11B1; # (뛞; 뛞; 뛞; 뛞; 뛞; ) HANGUL SYLLABLE DDWELM
+B6DF;B6DF;1104 1170 11B2;B6DF;1104 1170 11B2; # (뛟; 뛟; 뛟; 뛟; 뛟; ) HANGUL SYLLABLE DDWELB
+B6E0;B6E0;1104 1170 11B3;B6E0;1104 1170 11B3; # (뛠; 뛠; 뛠; 뛠; 뛠; ) HANGUL SYLLABLE DDWELS
+B6E1;B6E1;1104 1170 11B4;B6E1;1104 1170 11B4; # (뛡; 뛡; 뛡; 뛡; 뛡; ) HANGUL SYLLABLE DDWELT
+B6E2;B6E2;1104 1170 11B5;B6E2;1104 1170 11B5; # (뛢; 뛢; 뛢; 뛢; 뛢; ) HANGUL SYLLABLE DDWELP
+B6E3;B6E3;1104 1170 11B6;B6E3;1104 1170 11B6; # (뛣; 뛣; 뛣; 뛣; 뛣; ) HANGUL SYLLABLE DDWELH
+B6E4;B6E4;1104 1170 11B7;B6E4;1104 1170 11B7; # (뛤; 뛤; 뛤; 뛤; 뛤; ) HANGUL SYLLABLE DDWEM
+B6E5;B6E5;1104 1170 11B8;B6E5;1104 1170 11B8; # (뛥; 뛥; 뛥; 뛥; 뛥; ) HANGUL SYLLABLE DDWEB
+B6E6;B6E6;1104 1170 11B9;B6E6;1104 1170 11B9; # (뛦; 뛦; 뛦; 뛦; 뛦; ) HANGUL SYLLABLE DDWEBS
+B6E7;B6E7;1104 1170 11BA;B6E7;1104 1170 11BA; # (뛧; 뛧; 뛧; 뛧; 뛧; ) HANGUL SYLLABLE DDWES
+B6E8;B6E8;1104 1170 11BB;B6E8;1104 1170 11BB; # (뛨; 뛨; 뛨; 뛨; 뛨; ) HANGUL SYLLABLE DDWESS
+B6E9;B6E9;1104 1170 11BC;B6E9;1104 1170 11BC; # (뛩; 뛩; 뛩; 뛩; 뛩; ) HANGUL SYLLABLE DDWENG
+B6EA;B6EA;1104 1170 11BD;B6EA;1104 1170 11BD; # (뛪; 뛪; 뛪; 뛪; 뛪; ) HANGUL SYLLABLE DDWEJ
+B6EB;B6EB;1104 1170 11BE;B6EB;1104 1170 11BE; # (뛫; 뛫; 뛫; 뛫; 뛫; ) HANGUL SYLLABLE DDWEC
+B6EC;B6EC;1104 1170 11BF;B6EC;1104 1170 11BF; # (뛬; 뛬; 뛬; 뛬; 뛬; ) HANGUL SYLLABLE DDWEK
+B6ED;B6ED;1104 1170 11C0;B6ED;1104 1170 11C0; # (뛭; 뛭; 뛭; 뛭; 뛭; ) HANGUL SYLLABLE DDWET
+B6EE;B6EE;1104 1170 11C1;B6EE;1104 1170 11C1; # (뛮; 뛮; 뛮; 뛮; 뛮; ) HANGUL SYLLABLE DDWEP
+B6EF;B6EF;1104 1170 11C2;B6EF;1104 1170 11C2; # (뛯; 뛯; 뛯; 뛯; 뛯; ) HANGUL SYLLABLE DDWEH
+B6F0;B6F0;1104 1171;B6F0;1104 1171; # (뛰; 뛰; 뛰; 뛰; 뛰; ) HANGUL SYLLABLE DDWI
+B6F1;B6F1;1104 1171 11A8;B6F1;1104 1171 11A8; # (뛱; 뛱; 뛱; 뛱; 뛱; ) HANGUL SYLLABLE DDWIG
+B6F2;B6F2;1104 1171 11A9;B6F2;1104 1171 11A9; # (뛲; 뛲; 뛲; 뛲; 뛲; ) HANGUL SYLLABLE DDWIGG
+B6F3;B6F3;1104 1171 11AA;B6F3;1104 1171 11AA; # (뛳; 뛳; 뛳; 뛳; 뛳; ) HANGUL SYLLABLE DDWIGS
+B6F4;B6F4;1104 1171 11AB;B6F4;1104 1171 11AB; # (뛴; 뛴; 뛴; 뛴; 뛴; ) HANGUL SYLLABLE DDWIN
+B6F5;B6F5;1104 1171 11AC;B6F5;1104 1171 11AC; # (뛵; 뛵; 뛵; 뛵; 뛵; ) HANGUL SYLLABLE DDWINJ
+B6F6;B6F6;1104 1171 11AD;B6F6;1104 1171 11AD; # (뛶; 뛶; 뛶; 뛶; 뛶; ) HANGUL SYLLABLE DDWINH
+B6F7;B6F7;1104 1171 11AE;B6F7;1104 1171 11AE; # (뛷; 뛷; 뛷; 뛷; 뛷; ) HANGUL SYLLABLE DDWID
+B6F8;B6F8;1104 1171 11AF;B6F8;1104 1171 11AF; # (뛸; 뛸; 뛸; 뛸; 뛸; ) HANGUL SYLLABLE DDWIL
+B6F9;B6F9;1104 1171 11B0;B6F9;1104 1171 11B0; # (뛹; 뛹; 뛹; 뛹; 뛹; ) HANGUL SYLLABLE DDWILG
+B6FA;B6FA;1104 1171 11B1;B6FA;1104 1171 11B1; # (뛺; 뛺; 뛺; 뛺; 뛺; ) HANGUL SYLLABLE DDWILM
+B6FB;B6FB;1104 1171 11B2;B6FB;1104 1171 11B2; # (뛻; 뛻; 뛻; 뛻; 뛻; ) HANGUL SYLLABLE DDWILB
+B6FC;B6FC;1104 1171 11B3;B6FC;1104 1171 11B3; # (뛼; 뛼; 뛼; 뛼; 뛼; ) HANGUL SYLLABLE DDWILS
+B6FD;B6FD;1104 1171 11B4;B6FD;1104 1171 11B4; # (뛽; 뛽; 뛽; 뛽; 뛽; ) HANGUL SYLLABLE DDWILT
+B6FE;B6FE;1104 1171 11B5;B6FE;1104 1171 11B5; # (뛾; 뛾; 뛾; 뛾; 뛾; ) HANGUL SYLLABLE DDWILP
+B6FF;B6FF;1104 1171 11B6;B6FF;1104 1171 11B6; # (뛿; 뛿; 뛿; 뛿; 뛿; ) HANGUL SYLLABLE DDWILH
+B700;B700;1104 1171 11B7;B700;1104 1171 11B7; # (뜀; 뜀; 뜀; 뜀; 뜀; ) HANGUL SYLLABLE DDWIM
+B701;B701;1104 1171 11B8;B701;1104 1171 11B8; # (뜁; 뜁; 뜁; 뜁; 뜁; ) HANGUL SYLLABLE DDWIB
+B702;B702;1104 1171 11B9;B702;1104 1171 11B9; # (뜂; 뜂; 뜂; 뜂; 뜂; ) HANGUL SYLLABLE DDWIBS
+B703;B703;1104 1171 11BA;B703;1104 1171 11BA; # (뜃; 뜃; 뜃; 뜃; 뜃; ) HANGUL SYLLABLE DDWIS
+B704;B704;1104 1171 11BB;B704;1104 1171 11BB; # (뜄; 뜄; 뜄; 뜄; 뜄; ) HANGUL SYLLABLE DDWISS
+B705;B705;1104 1171 11BC;B705;1104 1171 11BC; # (뜅; 뜅; 뜅; 뜅; 뜅; ) HANGUL SYLLABLE DDWING
+B706;B706;1104 1171 11BD;B706;1104 1171 11BD; # (뜆; 뜆; 뜆; 뜆; 뜆; ) HANGUL SYLLABLE DDWIJ
+B707;B707;1104 1171 11BE;B707;1104 1171 11BE; # (뜇; 뜇; 뜇; 뜇; 뜇; ) HANGUL SYLLABLE DDWIC
+B708;B708;1104 1171 11BF;B708;1104 1171 11BF; # (뜈; 뜈; 뜈; 뜈; 뜈; ) HANGUL SYLLABLE DDWIK
+B709;B709;1104 1171 11C0;B709;1104 1171 11C0; # (뜉; 뜉; 뜉; 뜉; 뜉; ) HANGUL SYLLABLE DDWIT
+B70A;B70A;1104 1171 11C1;B70A;1104 1171 11C1; # (뜊; 뜊; 뜊; 뜊; 뜊; ) HANGUL SYLLABLE DDWIP
+B70B;B70B;1104 1171 11C2;B70B;1104 1171 11C2; # (뜋; 뜋; 뜋; 뜋; 뜋; ) HANGUL SYLLABLE DDWIH
+B70C;B70C;1104 1172;B70C;1104 1172; # (뜌; 뜌; 뜌; 뜌; 뜌; ) HANGUL SYLLABLE DDYU
+B70D;B70D;1104 1172 11A8;B70D;1104 1172 11A8; # (뜍; 뜍; 뜍; 뜍; 뜍; ) HANGUL SYLLABLE DDYUG
+B70E;B70E;1104 1172 11A9;B70E;1104 1172 11A9; # (뜎; 뜎; 뜎; 뜎; 뜎; ) HANGUL SYLLABLE DDYUGG
+B70F;B70F;1104 1172 11AA;B70F;1104 1172 11AA; # (뜏; 뜏; 뜏; 뜏; 뜏; ) HANGUL SYLLABLE DDYUGS
+B710;B710;1104 1172 11AB;B710;1104 1172 11AB; # (뜐; 뜐; 뜐; 뜐; 뜐; ) HANGUL SYLLABLE DDYUN
+B711;B711;1104 1172 11AC;B711;1104 1172 11AC; # (뜑; 뜑; 뜑; 뜑; 뜑; ) HANGUL SYLLABLE DDYUNJ
+B712;B712;1104 1172 11AD;B712;1104 1172 11AD; # (뜒; 뜒; 뜒; 뜒; 뜒; ) HANGUL SYLLABLE DDYUNH
+B713;B713;1104 1172 11AE;B713;1104 1172 11AE; # (뜓; 뜓; 뜓; 뜓; 뜓; ) HANGUL SYLLABLE DDYUD
+B714;B714;1104 1172 11AF;B714;1104 1172 11AF; # (뜔; 뜔; 뜔; 뜔; 뜔; ) HANGUL SYLLABLE DDYUL
+B715;B715;1104 1172 11B0;B715;1104 1172 11B0; # (뜕; 뜕; 뜕; 뜕; 뜕; ) HANGUL SYLLABLE DDYULG
+B716;B716;1104 1172 11B1;B716;1104 1172 11B1; # (뜖; 뜖; 뜖; 뜖; 뜖; ) HANGUL SYLLABLE DDYULM
+B717;B717;1104 1172 11B2;B717;1104 1172 11B2; # (뜗; 뜗; 뜗; 뜗; 뜗; ) HANGUL SYLLABLE DDYULB
+B718;B718;1104 1172 11B3;B718;1104 1172 11B3; # (뜘; 뜘; 뜘; 뜘; 뜘; ) HANGUL SYLLABLE DDYULS
+B719;B719;1104 1172 11B4;B719;1104 1172 11B4; # (뜙; 뜙; 뜙; 뜙; 뜙; ) HANGUL SYLLABLE DDYULT
+B71A;B71A;1104 1172 11B5;B71A;1104 1172 11B5; # (뜚; 뜚; 뜚; 뜚; 뜚; ) HANGUL SYLLABLE DDYULP
+B71B;B71B;1104 1172 11B6;B71B;1104 1172 11B6; # (뜛; 뜛; 뜛; 뜛; 뜛; ) HANGUL SYLLABLE DDYULH
+B71C;B71C;1104 1172 11B7;B71C;1104 1172 11B7; # (뜜; 뜜; 뜜; 뜜; 뜜; ) HANGUL SYLLABLE DDYUM
+B71D;B71D;1104 1172 11B8;B71D;1104 1172 11B8; # (뜝; 뜝; 뜝; 뜝; 뜝; ) HANGUL SYLLABLE DDYUB
+B71E;B71E;1104 1172 11B9;B71E;1104 1172 11B9; # (뜞; 뜞; 뜞; 뜞; 뜞; ) HANGUL SYLLABLE DDYUBS
+B71F;B71F;1104 1172 11BA;B71F;1104 1172 11BA; # (뜟; 뜟; 뜟; 뜟; 뜟; ) HANGUL SYLLABLE DDYUS
+B720;B720;1104 1172 11BB;B720;1104 1172 11BB; # (뜠; 뜠; 뜠; 뜠; 뜠; ) HANGUL SYLLABLE DDYUSS
+B721;B721;1104 1172 11BC;B721;1104 1172 11BC; # (뜡; 뜡; 뜡; 뜡; 뜡; ) HANGUL SYLLABLE DDYUNG
+B722;B722;1104 1172 11BD;B722;1104 1172 11BD; # (뜢; 뜢; 뜢; 뜢; 뜢; ) HANGUL SYLLABLE DDYUJ
+B723;B723;1104 1172 11BE;B723;1104 1172 11BE; # (뜣; 뜣; 뜣; 뜣; 뜣; ) HANGUL SYLLABLE DDYUC
+B724;B724;1104 1172 11BF;B724;1104 1172 11BF; # (뜤; 뜤; 뜤; 뜤; 뜤; ) HANGUL SYLLABLE DDYUK
+B725;B725;1104 1172 11C0;B725;1104 1172 11C0; # (뜥; 뜥; 뜥; 뜥; 뜥; ) HANGUL SYLLABLE DDYUT
+B726;B726;1104 1172 11C1;B726;1104 1172 11C1; # (뜦; 뜦; 뜦; 뜦; 뜦; ) HANGUL SYLLABLE DDYUP
+B727;B727;1104 1172 11C2;B727;1104 1172 11C2; # (뜧; 뜧; 뜧; 뜧; 뜧; ) HANGUL SYLLABLE DDYUH
+B728;B728;1104 1173;B728;1104 1173; # (뜨; 뜨; 뜨; 뜨; 뜨; ) HANGUL SYLLABLE DDEU
+B729;B729;1104 1173 11A8;B729;1104 1173 11A8; # (뜩; 뜩; 뜩; 뜩; 뜩; ) HANGUL SYLLABLE DDEUG
+B72A;B72A;1104 1173 11A9;B72A;1104 1173 11A9; # (뜪; 뜪; 뜪; 뜪; 뜪; ) HANGUL SYLLABLE DDEUGG
+B72B;B72B;1104 1173 11AA;B72B;1104 1173 11AA; # (뜫; 뜫; 뜫; 뜫; 뜫; ) HANGUL SYLLABLE DDEUGS
+B72C;B72C;1104 1173 11AB;B72C;1104 1173 11AB; # (뜬; 뜬; 뜬; 뜬; 뜬; ) HANGUL SYLLABLE DDEUN
+B72D;B72D;1104 1173 11AC;B72D;1104 1173 11AC; # (뜭; 뜭; 뜭; 뜭; 뜭; ) HANGUL SYLLABLE DDEUNJ
+B72E;B72E;1104 1173 11AD;B72E;1104 1173 11AD; # (뜮; 뜮; 뜮; 뜮; 뜮; ) HANGUL SYLLABLE DDEUNH
+B72F;B72F;1104 1173 11AE;B72F;1104 1173 11AE; # (뜯; 뜯; 뜯; 뜯; 뜯; ) HANGUL SYLLABLE DDEUD
+B730;B730;1104 1173 11AF;B730;1104 1173 11AF; # (뜰; 뜰; 뜰; 뜰; 뜰; ) HANGUL SYLLABLE DDEUL
+B731;B731;1104 1173 11B0;B731;1104 1173 11B0; # (뜱; 뜱; 뜱; 뜱; 뜱; ) HANGUL SYLLABLE DDEULG
+B732;B732;1104 1173 11B1;B732;1104 1173 11B1; # (뜲; 뜲; 뜲; 뜲; 뜲; ) HANGUL SYLLABLE DDEULM
+B733;B733;1104 1173 11B2;B733;1104 1173 11B2; # (뜳; 뜳; 뜳; 뜳; 뜳; ) HANGUL SYLLABLE DDEULB
+B734;B734;1104 1173 11B3;B734;1104 1173 11B3; # (뜴; 뜴; 뜴; 뜴; 뜴; ) HANGUL SYLLABLE DDEULS
+B735;B735;1104 1173 11B4;B735;1104 1173 11B4; # (뜵; 뜵; 뜵; 뜵; 뜵; ) HANGUL SYLLABLE DDEULT
+B736;B736;1104 1173 11B5;B736;1104 1173 11B5; # (뜶; 뜶; 뜶; 뜶; 뜶; ) HANGUL SYLLABLE DDEULP
+B737;B737;1104 1173 11B6;B737;1104 1173 11B6; # (뜷; 뜷; 뜷; 뜷; 뜷; ) HANGUL SYLLABLE DDEULH
+B738;B738;1104 1173 11B7;B738;1104 1173 11B7; # (뜸; 뜸; 뜸; 뜸; 뜸; ) HANGUL SYLLABLE DDEUM
+B739;B739;1104 1173 11B8;B739;1104 1173 11B8; # (뜹; 뜹; 뜹; 뜹; 뜹; ) HANGUL SYLLABLE DDEUB
+B73A;B73A;1104 1173 11B9;B73A;1104 1173 11B9; # (뜺; 뜺; 뜺; 뜺; 뜺; ) HANGUL SYLLABLE DDEUBS
+B73B;B73B;1104 1173 11BA;B73B;1104 1173 11BA; # (뜻; 뜻; 뜻; 뜻; 뜻; ) HANGUL SYLLABLE DDEUS
+B73C;B73C;1104 1173 11BB;B73C;1104 1173 11BB; # (뜼; 뜼; 뜼; 뜼; 뜼; ) HANGUL SYLLABLE DDEUSS
+B73D;B73D;1104 1173 11BC;B73D;1104 1173 11BC; # (뜽; 뜽; 뜽; 뜽; 뜽; ) HANGUL SYLLABLE DDEUNG
+B73E;B73E;1104 1173 11BD;B73E;1104 1173 11BD; # (뜾; 뜾; 뜾; 뜾; 뜾; ) HANGUL SYLLABLE DDEUJ
+B73F;B73F;1104 1173 11BE;B73F;1104 1173 11BE; # (뜿; 뜿; 뜿; 뜿; 뜿; ) HANGUL SYLLABLE DDEUC
+B740;B740;1104 1173 11BF;B740;1104 1173 11BF; # (띀; 띀; 띀; 띀; 띀; ) HANGUL SYLLABLE DDEUK
+B741;B741;1104 1173 11C0;B741;1104 1173 11C0; # (띁; 띁; 띁; 띁; 띁; ) HANGUL SYLLABLE DDEUT
+B742;B742;1104 1173 11C1;B742;1104 1173 11C1; # (띂; 띂; 띂; 띂; 띂; ) HANGUL SYLLABLE DDEUP
+B743;B743;1104 1173 11C2;B743;1104 1173 11C2; # (띃; 띃; 띃; 띃; 띃; ) HANGUL SYLLABLE DDEUH
+B744;B744;1104 1174;B744;1104 1174; # (띄; 띄; 띄; 띄; 띄; ) HANGUL SYLLABLE DDYI
+B745;B745;1104 1174 11A8;B745;1104 1174 11A8; # (띅; 띅; 띅; 띅; 띅; ) HANGUL SYLLABLE DDYIG
+B746;B746;1104 1174 11A9;B746;1104 1174 11A9; # (띆; 띆; 띆; 띆; 띆; ) HANGUL SYLLABLE DDYIGG
+B747;B747;1104 1174 11AA;B747;1104 1174 11AA; # (띇; 띇; 띇; 띇; 띇; ) HANGUL SYLLABLE DDYIGS
+B748;B748;1104 1174 11AB;B748;1104 1174 11AB; # (띈; 띈; 띈; 띈; 띈; ) HANGUL SYLLABLE DDYIN
+B749;B749;1104 1174 11AC;B749;1104 1174 11AC; # (띉; 띉; 띉; 띉; 띉; ) HANGUL SYLLABLE DDYINJ
+B74A;B74A;1104 1174 11AD;B74A;1104 1174 11AD; # (띊; 띊; 띊; 띊; 띊; ) HANGUL SYLLABLE DDYINH
+B74B;B74B;1104 1174 11AE;B74B;1104 1174 11AE; # (띋; 띋; 띋; 띋; 띋; ) HANGUL SYLLABLE DDYID
+B74C;B74C;1104 1174 11AF;B74C;1104 1174 11AF; # (띌; 띌; 띌; 띌; 띌; ) HANGUL SYLLABLE DDYIL
+B74D;B74D;1104 1174 11B0;B74D;1104 1174 11B0; # (띍; 띍; 띍; 띍; 띍; ) HANGUL SYLLABLE DDYILG
+B74E;B74E;1104 1174 11B1;B74E;1104 1174 11B1; # (띎; 띎; 띎; 띎; 띎; ) HANGUL SYLLABLE DDYILM
+B74F;B74F;1104 1174 11B2;B74F;1104 1174 11B2; # (띏; 띏; 띏; 띏; 띏; ) HANGUL SYLLABLE DDYILB
+B750;B750;1104 1174 11B3;B750;1104 1174 11B3; # (띐; 띐; 띐; 띐; 띐; ) HANGUL SYLLABLE DDYILS
+B751;B751;1104 1174 11B4;B751;1104 1174 11B4; # (띑; 띑; 띑; 띑; 띑; ) HANGUL SYLLABLE DDYILT
+B752;B752;1104 1174 11B5;B752;1104 1174 11B5; # (띒; 띒; 띒; 띒; 띒; ) HANGUL SYLLABLE DDYILP
+B753;B753;1104 1174 11B6;B753;1104 1174 11B6; # (띓; 띓; 띓; 띓; 띓; ) HANGUL SYLLABLE DDYILH
+B754;B754;1104 1174 11B7;B754;1104 1174 11B7; # (띔; 띔; 띔; 띔; 띔; ) HANGUL SYLLABLE DDYIM
+B755;B755;1104 1174 11B8;B755;1104 1174 11B8; # (띕; 띕; 띕; 띕; 띕; ) HANGUL SYLLABLE DDYIB
+B756;B756;1104 1174 11B9;B756;1104 1174 11B9; # (띖; 띖; 띖; 띖; 띖; ) HANGUL SYLLABLE DDYIBS
+B757;B757;1104 1174 11BA;B757;1104 1174 11BA; # (띗; 띗; 띗; 띗; 띗; ) HANGUL SYLLABLE DDYIS
+B758;B758;1104 1174 11BB;B758;1104 1174 11BB; # (띘; 띘; 띘; 띘; 띘; ) HANGUL SYLLABLE DDYISS
+B759;B759;1104 1174 11BC;B759;1104 1174 11BC; # (띙; 띙; 띙; 띙; 띙; ) HANGUL SYLLABLE DDYING
+B75A;B75A;1104 1174 11BD;B75A;1104 1174 11BD; # (띚; 띚; 띚; 띚; 띚; ) HANGUL SYLLABLE DDYIJ
+B75B;B75B;1104 1174 11BE;B75B;1104 1174 11BE; # (띛; 띛; 띛; 띛; 띛; ) HANGUL SYLLABLE DDYIC
+B75C;B75C;1104 1174 11BF;B75C;1104 1174 11BF; # (띜; 띜; 띜; 띜; 띜; ) HANGUL SYLLABLE DDYIK
+B75D;B75D;1104 1174 11C0;B75D;1104 1174 11C0; # (띝; 띝; 띝; 띝; 띝; ) HANGUL SYLLABLE DDYIT
+B75E;B75E;1104 1174 11C1;B75E;1104 1174 11C1; # (띞; 띞; 띞; 띞; 띞; ) HANGUL SYLLABLE DDYIP
+B75F;B75F;1104 1174 11C2;B75F;1104 1174 11C2; # (띟; 띟; 띟; 띟; 띟; ) HANGUL SYLLABLE DDYIH
+B760;B760;1104 1175;B760;1104 1175; # (띠; 띠; 띠; 띠; 띠; ) HANGUL SYLLABLE DDI
+B761;B761;1104 1175 11A8;B761;1104 1175 11A8; # (띡; 띡; 띡; 띡; 띡; ) HANGUL SYLLABLE DDIG
+B762;B762;1104 1175 11A9;B762;1104 1175 11A9; # (띢; 띢; 띢; 띢; 띢; ) HANGUL SYLLABLE DDIGG
+B763;B763;1104 1175 11AA;B763;1104 1175 11AA; # (띣; 띣; 띣; 띣; 띣; ) HANGUL SYLLABLE DDIGS
+B764;B764;1104 1175 11AB;B764;1104 1175 11AB; # (띤; 띤; 띤; 띤; 띤; ) HANGUL SYLLABLE DDIN
+B765;B765;1104 1175 11AC;B765;1104 1175 11AC; # (띥; 띥; 띥; 띥; 띥; ) HANGUL SYLLABLE DDINJ
+B766;B766;1104 1175 11AD;B766;1104 1175 11AD; # (띦; 띦; 띦; 띦; 띦; ) HANGUL SYLLABLE DDINH
+B767;B767;1104 1175 11AE;B767;1104 1175 11AE; # (띧; 띧; 띧; 띧; 띧; ) HANGUL SYLLABLE DDID
+B768;B768;1104 1175 11AF;B768;1104 1175 11AF; # (띨; 띨; 띨; 띨; 띨; ) HANGUL SYLLABLE DDIL
+B769;B769;1104 1175 11B0;B769;1104 1175 11B0; # (띩; 띩; 띩; 띩; 띩; ) HANGUL SYLLABLE DDILG
+B76A;B76A;1104 1175 11B1;B76A;1104 1175 11B1; # (띪; 띪; 띪; 띪; 띪; ) HANGUL SYLLABLE DDILM
+B76B;B76B;1104 1175 11B2;B76B;1104 1175 11B2; # (띫; 띫; 띫; 띫; 띫; ) HANGUL SYLLABLE DDILB
+B76C;B76C;1104 1175 11B3;B76C;1104 1175 11B3; # (띬; 띬; 띬; 띬; 띬; ) HANGUL SYLLABLE DDILS
+B76D;B76D;1104 1175 11B4;B76D;1104 1175 11B4; # (띭; 띭; 띭; 띭; 띭; ) HANGUL SYLLABLE DDILT
+B76E;B76E;1104 1175 11B5;B76E;1104 1175 11B5; # (띮; 띮; 띮; 띮; 띮; ) HANGUL SYLLABLE DDILP
+B76F;B76F;1104 1175 11B6;B76F;1104 1175 11B6; # (띯; 띯; 띯; 띯; 띯; ) HANGUL SYLLABLE DDILH
+B770;B770;1104 1175 11B7;B770;1104 1175 11B7; # (띰; 띰; 띰; 띰; 띰; ) HANGUL SYLLABLE DDIM
+B771;B771;1104 1175 11B8;B771;1104 1175 11B8; # (띱; 띱; 띱; 띱; 띱; ) HANGUL SYLLABLE DDIB
+B772;B772;1104 1175 11B9;B772;1104 1175 11B9; # (띲; 띲; 띲; 띲; 띲; ) HANGUL SYLLABLE DDIBS
+B773;B773;1104 1175 11BA;B773;1104 1175 11BA; # (띳; 띳; 띳; 띳; 띳; ) HANGUL SYLLABLE DDIS
+B774;B774;1104 1175 11BB;B774;1104 1175 11BB; # (띴; 띴; 띴; 띴; 띴; ) HANGUL SYLLABLE DDISS
+B775;B775;1104 1175 11BC;B775;1104 1175 11BC; # (띵; 띵; 띵; 띵; 띵; ) HANGUL SYLLABLE DDING
+B776;B776;1104 1175 11BD;B776;1104 1175 11BD; # (띶; 띶; 띶; 띶; 띶; ) HANGUL SYLLABLE DDIJ
+B777;B777;1104 1175 11BE;B777;1104 1175 11BE; # (띷; 띷; 띷; 띷; 띷; ) HANGUL SYLLABLE DDIC
+B778;B778;1104 1175 11BF;B778;1104 1175 11BF; # (띸; 띸; 띸; 띸; 띸; ) HANGUL SYLLABLE DDIK
+B779;B779;1104 1175 11C0;B779;1104 1175 11C0; # (띹; 띹; 띹; 띹; 띹; ) HANGUL SYLLABLE DDIT
+B77A;B77A;1104 1175 11C1;B77A;1104 1175 11C1; # (띺; 띺; 띺; 띺; 띺; ) HANGUL SYLLABLE DDIP
+B77B;B77B;1104 1175 11C2;B77B;1104 1175 11C2; # (띻; 띻; 띻; 띻; 띻; ) HANGUL SYLLABLE DDIH
+B77C;B77C;1105 1161;B77C;1105 1161; # (라; 라; 라; 라; 라; ) HANGUL SYLLABLE RA
+B77D;B77D;1105 1161 11A8;B77D;1105 1161 11A8; # (락; 락; 락; 락; 락; ) HANGUL SYLLABLE RAG
+B77E;B77E;1105 1161 11A9;B77E;1105 1161 11A9; # (띾; 띾; 띾; 띾; 띾; ) HANGUL SYLLABLE RAGG
+B77F;B77F;1105 1161 11AA;B77F;1105 1161 11AA; # (띿; 띿; 띿; 띿; 띿; ) HANGUL SYLLABLE RAGS
+B780;B780;1105 1161 11AB;B780;1105 1161 11AB; # (란; 란; 란; 란; 란; ) HANGUL SYLLABLE RAN
+B781;B781;1105 1161 11AC;B781;1105 1161 11AC; # (랁; 랁; 랁; 랁; 랁; ) HANGUL SYLLABLE RANJ
+B782;B782;1105 1161 11AD;B782;1105 1161 11AD; # (랂; 랂; 랂; 랂; 랂; ) HANGUL SYLLABLE RANH
+B783;B783;1105 1161 11AE;B783;1105 1161 11AE; # (랃; 랃; 랃; 랃; 랃; ) HANGUL SYLLABLE RAD
+B784;B784;1105 1161 11AF;B784;1105 1161 11AF; # (랄; 랄; 랄; 랄; 랄; ) HANGUL SYLLABLE RAL
+B785;B785;1105 1161 11B0;B785;1105 1161 11B0; # (랅; 랅; 랅; 랅; 랅; ) HANGUL SYLLABLE RALG
+B786;B786;1105 1161 11B1;B786;1105 1161 11B1; # (랆; 랆; 랆; 랆; 랆; ) HANGUL SYLLABLE RALM
+B787;B787;1105 1161 11B2;B787;1105 1161 11B2; # (랇; 랇; 랇; 랇; 랇; ) HANGUL SYLLABLE RALB
+B788;B788;1105 1161 11B3;B788;1105 1161 11B3; # (랈; 랈; 랈; 랈; 랈; ) HANGUL SYLLABLE RALS
+B789;B789;1105 1161 11B4;B789;1105 1161 11B4; # (랉; 랉; 랉; 랉; 랉; ) HANGUL SYLLABLE RALT
+B78A;B78A;1105 1161 11B5;B78A;1105 1161 11B5; # (랊; 랊; 랊; 랊; 랊; ) HANGUL SYLLABLE RALP
+B78B;B78B;1105 1161 11B6;B78B;1105 1161 11B6; # (랋; 랋; 랋; 랋; 랋; ) HANGUL SYLLABLE RALH
+B78C;B78C;1105 1161 11B7;B78C;1105 1161 11B7; # (람; 람; 람; 람; 람; ) HANGUL SYLLABLE RAM
+B78D;B78D;1105 1161 11B8;B78D;1105 1161 11B8; # (랍; 랍; 랍; 랍; 랍; ) HANGUL SYLLABLE RAB
+B78E;B78E;1105 1161 11B9;B78E;1105 1161 11B9; # (랎; 랎; 랎; 랎; 랎; ) HANGUL SYLLABLE RABS
+B78F;B78F;1105 1161 11BA;B78F;1105 1161 11BA; # (랏; 랏; 랏; 랏; 랏; ) HANGUL SYLLABLE RAS
+B790;B790;1105 1161 11BB;B790;1105 1161 11BB; # (랐; 랐; 랐; 랐; 랐; ) HANGUL SYLLABLE RASS
+B791;B791;1105 1161 11BC;B791;1105 1161 11BC; # (랑; 랑; 랑; 랑; 랑; ) HANGUL SYLLABLE RANG
+B792;B792;1105 1161 11BD;B792;1105 1161 11BD; # (랒; 랒; 랒; 랒; 랒; ) HANGUL SYLLABLE RAJ
+B793;B793;1105 1161 11BE;B793;1105 1161 11BE; # (랓; 랓; 랓; 랓; 랓; ) HANGUL SYLLABLE RAC
+B794;B794;1105 1161 11BF;B794;1105 1161 11BF; # (랔; 랔; 랔; 랔; 랔; ) HANGUL SYLLABLE RAK
+B795;B795;1105 1161 11C0;B795;1105 1161 11C0; # (랕; 랕; 랕; 랕; 랕; ) HANGUL SYLLABLE RAT
+B796;B796;1105 1161 11C1;B796;1105 1161 11C1; # (랖; 랖; 랖; 랖; 랖; ) HANGUL SYLLABLE RAP
+B797;B797;1105 1161 11C2;B797;1105 1161 11C2; # (랗; 랗; 랗; 랗; 랗; ) HANGUL SYLLABLE RAH
+B798;B798;1105 1162;B798;1105 1162; # (래; 래; 래; 래; 래; ) HANGUL SYLLABLE RAE
+B799;B799;1105 1162 11A8;B799;1105 1162 11A8; # (랙; 랙; 랙; 랙; 랙; ) HANGUL SYLLABLE RAEG
+B79A;B79A;1105 1162 11A9;B79A;1105 1162 11A9; # (랚; 랚; 랚; 랚; 랚; ) HANGUL SYLLABLE RAEGG
+B79B;B79B;1105 1162 11AA;B79B;1105 1162 11AA; # (랛; 랛; 랛; 랛; 랛; ) HANGUL SYLLABLE RAEGS
+B79C;B79C;1105 1162 11AB;B79C;1105 1162 11AB; # (랜; 랜; 랜; 랜; 랜; ) HANGUL SYLLABLE RAEN
+B79D;B79D;1105 1162 11AC;B79D;1105 1162 11AC; # (랝; 랝; 랝; 랝; 랝; ) HANGUL SYLLABLE RAENJ
+B79E;B79E;1105 1162 11AD;B79E;1105 1162 11AD; # (랞; 랞; 랞; 랞; 랞; ) HANGUL SYLLABLE RAENH
+B79F;B79F;1105 1162 11AE;B79F;1105 1162 11AE; # (랟; 랟; 랟; 랟; 랟; ) HANGUL SYLLABLE RAED
+B7A0;B7A0;1105 1162 11AF;B7A0;1105 1162 11AF; # (랠; 랠; 랠; 랠; 랠; ) HANGUL SYLLABLE RAEL
+B7A1;B7A1;1105 1162 11B0;B7A1;1105 1162 11B0; # (랡; 랡; 랡; 랡; 랡; ) HANGUL SYLLABLE RAELG
+B7A2;B7A2;1105 1162 11B1;B7A2;1105 1162 11B1; # (랢; 랢; 랢; 랢; 랢; ) HANGUL SYLLABLE RAELM
+B7A3;B7A3;1105 1162 11B2;B7A3;1105 1162 11B2; # (랣; 랣; 랣; 랣; 랣; ) HANGUL SYLLABLE RAELB
+B7A4;B7A4;1105 1162 11B3;B7A4;1105 1162 11B3; # (랤; 랤; 랤; 랤; 랤; ) HANGUL SYLLABLE RAELS
+B7A5;B7A5;1105 1162 11B4;B7A5;1105 1162 11B4; # (랥; 랥; 랥; 랥; 랥; ) HANGUL SYLLABLE RAELT
+B7A6;B7A6;1105 1162 11B5;B7A6;1105 1162 11B5; # (랦; 랦; 랦; 랦; 랦; ) HANGUL SYLLABLE RAELP
+B7A7;B7A7;1105 1162 11B6;B7A7;1105 1162 11B6; # (랧; 랧; 랧; 랧; 랧; ) HANGUL SYLLABLE RAELH
+B7A8;B7A8;1105 1162 11B7;B7A8;1105 1162 11B7; # (램; 램; 램; 램; 램; ) HANGUL SYLLABLE RAEM
+B7A9;B7A9;1105 1162 11B8;B7A9;1105 1162 11B8; # (랩; 랩; 랩; 랩; 랩; ) HANGUL SYLLABLE RAEB
+B7AA;B7AA;1105 1162 11B9;B7AA;1105 1162 11B9; # (랪; 랪; 랪; 랪; 랪; ) HANGUL SYLLABLE RAEBS
+B7AB;B7AB;1105 1162 11BA;B7AB;1105 1162 11BA; # (랫; 랫; 랫; 랫; 랫; ) HANGUL SYLLABLE RAES
+B7AC;B7AC;1105 1162 11BB;B7AC;1105 1162 11BB; # (랬; 랬; 랬; 랬; 랬; ) HANGUL SYLLABLE RAESS
+B7AD;B7AD;1105 1162 11BC;B7AD;1105 1162 11BC; # (랭; 랭; 랭; 랭; 랭; ) HANGUL SYLLABLE RAENG
+B7AE;B7AE;1105 1162 11BD;B7AE;1105 1162 11BD; # (랮; 랮; 랮; 랮; 랮; ) HANGUL SYLLABLE RAEJ
+B7AF;B7AF;1105 1162 11BE;B7AF;1105 1162 11BE; # (랯; 랯; 랯; 랯; 랯; ) HANGUL SYLLABLE RAEC
+B7B0;B7B0;1105 1162 11BF;B7B0;1105 1162 11BF; # (랰; 랰; 랰; 랰; 랰; ) HANGUL SYLLABLE RAEK
+B7B1;B7B1;1105 1162 11C0;B7B1;1105 1162 11C0; # (랱; 랱; 랱; 랱; 랱; ) HANGUL SYLLABLE RAET
+B7B2;B7B2;1105 1162 11C1;B7B2;1105 1162 11C1; # (랲; 랲; 랲; 랲; 랲; ) HANGUL SYLLABLE RAEP
+B7B3;B7B3;1105 1162 11C2;B7B3;1105 1162 11C2; # (랳; 랳; 랳; 랳; 랳; ) HANGUL SYLLABLE RAEH
+B7B4;B7B4;1105 1163;B7B4;1105 1163; # (랴; 랴; 랴; 랴; 랴; ) HANGUL SYLLABLE RYA
+B7B5;B7B5;1105 1163 11A8;B7B5;1105 1163 11A8; # (략; 략; 략; 략; 략; ) HANGUL SYLLABLE RYAG
+B7B6;B7B6;1105 1163 11A9;B7B6;1105 1163 11A9; # (랶; 랶; 랶; 랶; 랶; ) HANGUL SYLLABLE RYAGG
+B7B7;B7B7;1105 1163 11AA;B7B7;1105 1163 11AA; # (랷; 랷; 랷; 랷; 랷; ) HANGUL SYLLABLE RYAGS
+B7B8;B7B8;1105 1163 11AB;B7B8;1105 1163 11AB; # (랸; 랸; 랸; 랸; 랸; ) HANGUL SYLLABLE RYAN
+B7B9;B7B9;1105 1163 11AC;B7B9;1105 1163 11AC; # (랹; 랹; 랹; 랹; 랹; ) HANGUL SYLLABLE RYANJ
+B7BA;B7BA;1105 1163 11AD;B7BA;1105 1163 11AD; # (랺; 랺; 랺; 랺; 랺; ) HANGUL SYLLABLE RYANH
+B7BB;B7BB;1105 1163 11AE;B7BB;1105 1163 11AE; # (랻; 랻; 랻; 랻; 랻; ) HANGUL SYLLABLE RYAD
+B7BC;B7BC;1105 1163 11AF;B7BC;1105 1163 11AF; # (랼; 랼; 랼; 랼; 랼; ) HANGUL SYLLABLE RYAL
+B7BD;B7BD;1105 1163 11B0;B7BD;1105 1163 11B0; # (랽; 랽; 랽; 랽; 랽; ) HANGUL SYLLABLE RYALG
+B7BE;B7BE;1105 1163 11B1;B7BE;1105 1163 11B1; # (랾; 랾; 랾; 랾; 랾; ) HANGUL SYLLABLE RYALM
+B7BF;B7BF;1105 1163 11B2;B7BF;1105 1163 11B2; # (랿; 랿; 랿; 랿; 랿; ) HANGUL SYLLABLE RYALB
+B7C0;B7C0;1105 1163 11B3;B7C0;1105 1163 11B3; # (럀; 럀; 럀; 럀; 럀; ) HANGUL SYLLABLE RYALS
+B7C1;B7C1;1105 1163 11B4;B7C1;1105 1163 11B4; # (럁; 럁; 럁; 럁; 럁; ) HANGUL SYLLABLE RYALT
+B7C2;B7C2;1105 1163 11B5;B7C2;1105 1163 11B5; # (럂; 럂; 럂; 럂; 럂; ) HANGUL SYLLABLE RYALP
+B7C3;B7C3;1105 1163 11B6;B7C3;1105 1163 11B6; # (럃; 럃; 럃; 럃; 럃; ) HANGUL SYLLABLE RYALH
+B7C4;B7C4;1105 1163 11B7;B7C4;1105 1163 11B7; # (럄; 럄; 럄; 럄; 럄; ) HANGUL SYLLABLE RYAM
+B7C5;B7C5;1105 1163 11B8;B7C5;1105 1163 11B8; # (럅; 럅; 럅; 럅; 럅; ) HANGUL SYLLABLE RYAB
+B7C6;B7C6;1105 1163 11B9;B7C6;1105 1163 11B9; # (럆; 럆; 럆; 럆; 럆; ) HANGUL SYLLABLE RYABS
+B7C7;B7C7;1105 1163 11BA;B7C7;1105 1163 11BA; # (럇; 럇; 럇; 럇; 럇; ) HANGUL SYLLABLE RYAS
+B7C8;B7C8;1105 1163 11BB;B7C8;1105 1163 11BB; # (럈; 럈; 럈; 럈; 럈; ) HANGUL SYLLABLE RYASS
+B7C9;B7C9;1105 1163 11BC;B7C9;1105 1163 11BC; # (량; 량; 량; 량; 량; ) HANGUL SYLLABLE RYANG
+B7CA;B7CA;1105 1163 11BD;B7CA;1105 1163 11BD; # (럊; 럊; 럊; 럊; 럊; ) HANGUL SYLLABLE RYAJ
+B7CB;B7CB;1105 1163 11BE;B7CB;1105 1163 11BE; # (럋; 럋; 럋; 럋; 럋; ) HANGUL SYLLABLE RYAC
+B7CC;B7CC;1105 1163 11BF;B7CC;1105 1163 11BF; # (럌; 럌; 럌; 럌; 럌; ) HANGUL SYLLABLE RYAK
+B7CD;B7CD;1105 1163 11C0;B7CD;1105 1163 11C0; # (럍; 럍; 럍; 럍; 럍; ) HANGUL SYLLABLE RYAT
+B7CE;B7CE;1105 1163 11C1;B7CE;1105 1163 11C1; # (럎; 럎; 럎; 럎; 럎; ) HANGUL SYLLABLE RYAP
+B7CF;B7CF;1105 1163 11C2;B7CF;1105 1163 11C2; # (럏; 럏; 럏; 럏; 럏; ) HANGUL SYLLABLE RYAH
+B7D0;B7D0;1105 1164;B7D0;1105 1164; # (럐; 럐; 럐; 럐; 럐; ) HANGUL SYLLABLE RYAE
+B7D1;B7D1;1105 1164 11A8;B7D1;1105 1164 11A8; # (럑; 럑; 럑; 럑; 럑; ) HANGUL SYLLABLE RYAEG
+B7D2;B7D2;1105 1164 11A9;B7D2;1105 1164 11A9; # (럒; 럒; 럒; 럒; 럒; ) HANGUL SYLLABLE RYAEGG
+B7D3;B7D3;1105 1164 11AA;B7D3;1105 1164 11AA; # (럓; 럓; 럓; 럓; 럓; ) HANGUL SYLLABLE RYAEGS
+B7D4;B7D4;1105 1164 11AB;B7D4;1105 1164 11AB; # (럔; 럔; 럔; 럔; 럔; ) HANGUL SYLLABLE RYAEN
+B7D5;B7D5;1105 1164 11AC;B7D5;1105 1164 11AC; # (럕; 럕; 럕; 럕; 럕; ) HANGUL SYLLABLE RYAENJ
+B7D6;B7D6;1105 1164 11AD;B7D6;1105 1164 11AD; # (럖; 럖; 럖; 럖; 럖; ) HANGUL SYLLABLE RYAENH
+B7D7;B7D7;1105 1164 11AE;B7D7;1105 1164 11AE; # (럗; 럗; 럗; 럗; 럗; ) HANGUL SYLLABLE RYAED
+B7D8;B7D8;1105 1164 11AF;B7D8;1105 1164 11AF; # (럘; 럘; 럘; 럘; 럘; ) HANGUL SYLLABLE RYAEL
+B7D9;B7D9;1105 1164 11B0;B7D9;1105 1164 11B0; # (럙; 럙; 럙; 럙; 럙; ) HANGUL SYLLABLE RYAELG
+B7DA;B7DA;1105 1164 11B1;B7DA;1105 1164 11B1; # (럚; 럚; 럚; 럚; 럚; ) HANGUL SYLLABLE RYAELM
+B7DB;B7DB;1105 1164 11B2;B7DB;1105 1164 11B2; # (럛; 럛; 럛; 럛; 럛; ) HANGUL SYLLABLE RYAELB
+B7DC;B7DC;1105 1164 11B3;B7DC;1105 1164 11B3; # (럜; 럜; 럜; 럜; 럜; ) HANGUL SYLLABLE RYAELS
+B7DD;B7DD;1105 1164 11B4;B7DD;1105 1164 11B4; # (럝; 럝; 럝; 럝; 럝; ) HANGUL SYLLABLE RYAELT
+B7DE;B7DE;1105 1164 11B5;B7DE;1105 1164 11B5; # (럞; 럞; 럞; 럞; 럞; ) HANGUL SYLLABLE RYAELP
+B7DF;B7DF;1105 1164 11B6;B7DF;1105 1164 11B6; # (럟; 럟; 럟; 럟; 럟; ) HANGUL SYLLABLE RYAELH
+B7E0;B7E0;1105 1164 11B7;B7E0;1105 1164 11B7; # (럠; 럠; 럠; 럠; 럠; ) HANGUL SYLLABLE RYAEM
+B7E1;B7E1;1105 1164 11B8;B7E1;1105 1164 11B8; # (럡; 럡; 럡; 럡; 럡; ) HANGUL SYLLABLE RYAEB
+B7E2;B7E2;1105 1164 11B9;B7E2;1105 1164 11B9; # (럢; 럢; 럢; 럢; 럢; ) HANGUL SYLLABLE RYAEBS
+B7E3;B7E3;1105 1164 11BA;B7E3;1105 1164 11BA; # (럣; 럣; 럣; 럣; 럣; ) HANGUL SYLLABLE RYAES
+B7E4;B7E4;1105 1164 11BB;B7E4;1105 1164 11BB; # (럤; 럤; 럤; 럤; 럤; ) HANGUL SYLLABLE RYAESS
+B7E5;B7E5;1105 1164 11BC;B7E5;1105 1164 11BC; # (럥; 럥; 럥; 럥; 럥; ) HANGUL SYLLABLE RYAENG
+B7E6;B7E6;1105 1164 11BD;B7E6;1105 1164 11BD; # (럦; 럦; 럦; 럦; 럦; ) HANGUL SYLLABLE RYAEJ
+B7E7;B7E7;1105 1164 11BE;B7E7;1105 1164 11BE; # (럧; 럧; 럧; 럧; 럧; ) HANGUL SYLLABLE RYAEC
+B7E8;B7E8;1105 1164 11BF;B7E8;1105 1164 11BF; # (럨; 럨; 럨; 럨; 럨; ) HANGUL SYLLABLE RYAEK
+B7E9;B7E9;1105 1164 11C0;B7E9;1105 1164 11C0; # (럩; 럩; 럩; 럩; 럩; ) HANGUL SYLLABLE RYAET
+B7EA;B7EA;1105 1164 11C1;B7EA;1105 1164 11C1; # (럪; 럪; 럪; 럪; 럪; ) HANGUL SYLLABLE RYAEP
+B7EB;B7EB;1105 1164 11C2;B7EB;1105 1164 11C2; # (럫; 럫; 럫; 럫; 럫; ) HANGUL SYLLABLE RYAEH
+B7EC;B7EC;1105 1165;B7EC;1105 1165; # (러; 러; 러; 러; 러; ) HANGUL SYLLABLE REO
+B7ED;B7ED;1105 1165 11A8;B7ED;1105 1165 11A8; # (럭; 럭; 럭; 럭; 럭; ) HANGUL SYLLABLE REOG
+B7EE;B7EE;1105 1165 11A9;B7EE;1105 1165 11A9; # (럮; 럮; 럮; 럮; 럮; ) HANGUL SYLLABLE REOGG
+B7EF;B7EF;1105 1165 11AA;B7EF;1105 1165 11AA; # (럯; 럯; 럯; 럯; 럯; ) HANGUL SYLLABLE REOGS
+B7F0;B7F0;1105 1165 11AB;B7F0;1105 1165 11AB; # (런; 런; 런; 런; 런; ) HANGUL SYLLABLE REON
+B7F1;B7F1;1105 1165 11AC;B7F1;1105 1165 11AC; # (럱; 럱; 럱; 럱; 럱; ) HANGUL SYLLABLE REONJ
+B7F2;B7F2;1105 1165 11AD;B7F2;1105 1165 11AD; # (럲; 럲; 럲; 럲; 럲; ) HANGUL SYLLABLE REONH
+B7F3;B7F3;1105 1165 11AE;B7F3;1105 1165 11AE; # (럳; 럳; 럳; 럳; 럳; ) HANGUL SYLLABLE REOD
+B7F4;B7F4;1105 1165 11AF;B7F4;1105 1165 11AF; # (럴; 럴; 럴; 럴; 럴; ) HANGUL SYLLABLE REOL
+B7F5;B7F5;1105 1165 11B0;B7F5;1105 1165 11B0; # (럵; 럵; 럵; 럵; 럵; ) HANGUL SYLLABLE REOLG
+B7F6;B7F6;1105 1165 11B1;B7F6;1105 1165 11B1; # (럶; 럶; 럶; 럶; 럶; ) HANGUL SYLLABLE REOLM
+B7F7;B7F7;1105 1165 11B2;B7F7;1105 1165 11B2; # (럷; 럷; 럷; 럷; 럷; ) HANGUL SYLLABLE REOLB
+B7F8;B7F8;1105 1165 11B3;B7F8;1105 1165 11B3; # (럸; 럸; 럸; 럸; 럸; ) HANGUL SYLLABLE REOLS
+B7F9;B7F9;1105 1165 11B4;B7F9;1105 1165 11B4; # (럹; 럹; 럹; 럹; 럹; ) HANGUL SYLLABLE REOLT
+B7FA;B7FA;1105 1165 11B5;B7FA;1105 1165 11B5; # (럺; 럺; 럺; 럺; 럺; ) HANGUL SYLLABLE REOLP
+B7FB;B7FB;1105 1165 11B6;B7FB;1105 1165 11B6; # (럻; 럻; 럻; 럻; 럻; ) HANGUL SYLLABLE REOLH
+B7FC;B7FC;1105 1165 11B7;B7FC;1105 1165 11B7; # (럼; 럼; 럼; 럼; 럼; ) HANGUL SYLLABLE REOM
+B7FD;B7FD;1105 1165 11B8;B7FD;1105 1165 11B8; # (럽; 럽; 럽; 럽; 럽; ) HANGUL SYLLABLE REOB
+B7FE;B7FE;1105 1165 11B9;B7FE;1105 1165 11B9; # (럾; 럾; 럾; 럾; 럾; ) HANGUL SYLLABLE REOBS
+B7FF;B7FF;1105 1165 11BA;B7FF;1105 1165 11BA; # (럿; 럿; 럿; 럿; 럿; ) HANGUL SYLLABLE REOS
+B800;B800;1105 1165 11BB;B800;1105 1165 11BB; # (렀; 렀; 렀; 렀; 렀; ) HANGUL SYLLABLE REOSS
+B801;B801;1105 1165 11BC;B801;1105 1165 11BC; # (렁; 렁; 렁; 렁; 렁; ) HANGUL SYLLABLE REONG
+B802;B802;1105 1165 11BD;B802;1105 1165 11BD; # (렂; 렂; 렂; 렂; 렂; ) HANGUL SYLLABLE REOJ
+B803;B803;1105 1165 11BE;B803;1105 1165 11BE; # (렃; 렃; 렃; 렃; 렃; ) HANGUL SYLLABLE REOC
+B804;B804;1105 1165 11BF;B804;1105 1165 11BF; # (렄; 렄; 렄; 렄; 렄; ) HANGUL SYLLABLE REOK
+B805;B805;1105 1165 11C0;B805;1105 1165 11C0; # (렅; 렅; 렅; 렅; 렅; ) HANGUL SYLLABLE REOT
+B806;B806;1105 1165 11C1;B806;1105 1165 11C1; # (렆; 렆; 렆; 렆; 렆; ) HANGUL SYLLABLE REOP
+B807;B807;1105 1165 11C2;B807;1105 1165 11C2; # (렇; 렇; 렇; 렇; 렇; ) HANGUL SYLLABLE REOH
+B808;B808;1105 1166;B808;1105 1166; # (레; 레; 레; 레; 레; ) HANGUL SYLLABLE RE
+B809;B809;1105 1166 11A8;B809;1105 1166 11A8; # (렉; 렉; 렉; 렉; 렉; ) HANGUL SYLLABLE REG
+B80A;B80A;1105 1166 11A9;B80A;1105 1166 11A9; # (렊; 렊; 렊; 렊; 렊; ) HANGUL SYLLABLE REGG
+B80B;B80B;1105 1166 11AA;B80B;1105 1166 11AA; # (렋; 렋; 렋; 렋; 렋; ) HANGUL SYLLABLE REGS
+B80C;B80C;1105 1166 11AB;B80C;1105 1166 11AB; # (렌; 렌; 렌; 렌; 렌; ) HANGUL SYLLABLE REN
+B80D;B80D;1105 1166 11AC;B80D;1105 1166 11AC; # (렍; 렍; 렍; 렍; 렍; ) HANGUL SYLLABLE RENJ
+B80E;B80E;1105 1166 11AD;B80E;1105 1166 11AD; # (렎; 렎; 렎; 렎; 렎; ) HANGUL SYLLABLE RENH
+B80F;B80F;1105 1166 11AE;B80F;1105 1166 11AE; # (렏; 렏; 렏; 렏; 렏; ) HANGUL SYLLABLE RED
+B810;B810;1105 1166 11AF;B810;1105 1166 11AF; # (렐; 렐; 렐; 렐; 렐; ) HANGUL SYLLABLE REL
+B811;B811;1105 1166 11B0;B811;1105 1166 11B0; # (렑; 렑; 렑; 렑; 렑; ) HANGUL SYLLABLE RELG
+B812;B812;1105 1166 11B1;B812;1105 1166 11B1; # (렒; 렒; 렒; 렒; 렒; ) HANGUL SYLLABLE RELM
+B813;B813;1105 1166 11B2;B813;1105 1166 11B2; # (렓; 렓; 렓; 렓; 렓; ) HANGUL SYLLABLE RELB
+B814;B814;1105 1166 11B3;B814;1105 1166 11B3; # (렔; 렔; 렔; 렔; 렔; ) HANGUL SYLLABLE RELS
+B815;B815;1105 1166 11B4;B815;1105 1166 11B4; # (렕; 렕; 렕; 렕; 렕; ) HANGUL SYLLABLE RELT
+B816;B816;1105 1166 11B5;B816;1105 1166 11B5; # (렖; 렖; 렖; 렖; 렖; ) HANGUL SYLLABLE RELP
+B817;B817;1105 1166 11B6;B817;1105 1166 11B6; # (렗; 렗; 렗; 렗; 렗; ) HANGUL SYLLABLE RELH
+B818;B818;1105 1166 11B7;B818;1105 1166 11B7; # (렘; 렘; 렘; 렘; 렘; ) HANGUL SYLLABLE REM
+B819;B819;1105 1166 11B8;B819;1105 1166 11B8; # (렙; 렙; 렙; 렙; 렙; ) HANGUL SYLLABLE REB
+B81A;B81A;1105 1166 11B9;B81A;1105 1166 11B9; # (렚; 렚; 렚; 렚; 렚; ) HANGUL SYLLABLE REBS
+B81B;B81B;1105 1166 11BA;B81B;1105 1166 11BA; # (렛; 렛; 렛; 렛; 렛; ) HANGUL SYLLABLE RES
+B81C;B81C;1105 1166 11BB;B81C;1105 1166 11BB; # (렜; 렜; 렜; 렜; 렜; ) HANGUL SYLLABLE RESS
+B81D;B81D;1105 1166 11BC;B81D;1105 1166 11BC; # (렝; 렝; 렝; 렝; 렝; ) HANGUL SYLLABLE RENG
+B81E;B81E;1105 1166 11BD;B81E;1105 1166 11BD; # (렞; 렞; 렞; 렞; 렞; ) HANGUL SYLLABLE REJ
+B81F;B81F;1105 1166 11BE;B81F;1105 1166 11BE; # (렟; 렟; 렟; 렟; 렟; ) HANGUL SYLLABLE REC
+B820;B820;1105 1166 11BF;B820;1105 1166 11BF; # (렠; 렠; 렠; 렠; 렠; ) HANGUL SYLLABLE REK
+B821;B821;1105 1166 11C0;B821;1105 1166 11C0; # (렡; 렡; 렡; 렡; 렡; ) HANGUL SYLLABLE RET
+B822;B822;1105 1166 11C1;B822;1105 1166 11C1; # (렢; 렢; 렢; 렢; 렢; ) HANGUL SYLLABLE REP
+B823;B823;1105 1166 11C2;B823;1105 1166 11C2; # (렣; 렣; 렣; 렣; 렣; ) HANGUL SYLLABLE REH
+B824;B824;1105 1167;B824;1105 1167; # (려; 려; 려; 려; 려; ) HANGUL SYLLABLE RYEO
+B825;B825;1105 1167 11A8;B825;1105 1167 11A8; # (력; 력; 력; 력; 력; ) HANGUL SYLLABLE RYEOG
+B826;B826;1105 1167 11A9;B826;1105 1167 11A9; # (렦; 렦; 렦; 렦; 렦; ) HANGUL SYLLABLE RYEOGG
+B827;B827;1105 1167 11AA;B827;1105 1167 11AA; # (렧; 렧; 렧; 렧; 렧; ) HANGUL SYLLABLE RYEOGS
+B828;B828;1105 1167 11AB;B828;1105 1167 11AB; # (련; 련; 련; 련; 련; ) HANGUL SYLLABLE RYEON
+B829;B829;1105 1167 11AC;B829;1105 1167 11AC; # (렩; 렩; 렩; 렩; 렩; ) HANGUL SYLLABLE RYEONJ
+B82A;B82A;1105 1167 11AD;B82A;1105 1167 11AD; # (렪; 렪; 렪; 렪; 렪; ) HANGUL SYLLABLE RYEONH
+B82B;B82B;1105 1167 11AE;B82B;1105 1167 11AE; # (렫; 렫; 렫; 렫; 렫; ) HANGUL SYLLABLE RYEOD
+B82C;B82C;1105 1167 11AF;B82C;1105 1167 11AF; # (렬; 렬; 렬; 렬; 렬; ) HANGUL SYLLABLE RYEOL
+B82D;B82D;1105 1167 11B0;B82D;1105 1167 11B0; # (렭; 렭; 렭; 렭; 렭; ) HANGUL SYLLABLE RYEOLG
+B82E;B82E;1105 1167 11B1;B82E;1105 1167 11B1; # (렮; 렮; 렮; 렮; 렮; ) HANGUL SYLLABLE RYEOLM
+B82F;B82F;1105 1167 11B2;B82F;1105 1167 11B2; # (렯; 렯; 렯; 렯; 렯; ) HANGUL SYLLABLE RYEOLB
+B830;B830;1105 1167 11B3;B830;1105 1167 11B3; # (렰; 렰; 렰; 렰; 렰; ) HANGUL SYLLABLE RYEOLS
+B831;B831;1105 1167 11B4;B831;1105 1167 11B4; # (렱; 렱; 렱; 렱; 렱; ) HANGUL SYLLABLE RYEOLT
+B832;B832;1105 1167 11B5;B832;1105 1167 11B5; # (렲; 렲; 렲; 렲; 렲; ) HANGUL SYLLABLE RYEOLP
+B833;B833;1105 1167 11B6;B833;1105 1167 11B6; # (렳; 렳; 렳; 렳; 렳; ) HANGUL SYLLABLE RYEOLH
+B834;B834;1105 1167 11B7;B834;1105 1167 11B7; # (렴; 렴; 렴; 렴; 렴; ) HANGUL SYLLABLE RYEOM
+B835;B835;1105 1167 11B8;B835;1105 1167 11B8; # (렵; 렵; 렵; 렵; 렵; ) HANGUL SYLLABLE RYEOB
+B836;B836;1105 1167 11B9;B836;1105 1167 11B9; # (렶; 렶; 렶; 렶; 렶; ) HANGUL SYLLABLE RYEOBS
+B837;B837;1105 1167 11BA;B837;1105 1167 11BA; # (렷; 렷; 렷; 렷; 렷; ) HANGUL SYLLABLE RYEOS
+B838;B838;1105 1167 11BB;B838;1105 1167 11BB; # (렸; 렸; 렸; 렸; 렸; ) HANGUL SYLLABLE RYEOSS
+B839;B839;1105 1167 11BC;B839;1105 1167 11BC; # (령; 령; 령; 령; 령; ) HANGUL SYLLABLE RYEONG
+B83A;B83A;1105 1167 11BD;B83A;1105 1167 11BD; # (렺; 렺; 렺; 렺; 렺; ) HANGUL SYLLABLE RYEOJ
+B83B;B83B;1105 1167 11BE;B83B;1105 1167 11BE; # (렻; 렻; 렻; 렻; 렻; ) HANGUL SYLLABLE RYEOC
+B83C;B83C;1105 1167 11BF;B83C;1105 1167 11BF; # (렼; 렼; 렼; 렼; 렼; ) HANGUL SYLLABLE RYEOK
+B83D;B83D;1105 1167 11C0;B83D;1105 1167 11C0; # (렽; 렽; 렽; 렽; 렽; ) HANGUL SYLLABLE RYEOT
+B83E;B83E;1105 1167 11C1;B83E;1105 1167 11C1; # (렾; 렾; 렾; 렾; 렾; ) HANGUL SYLLABLE RYEOP
+B83F;B83F;1105 1167 11C2;B83F;1105 1167 11C2; # (렿; 렿; 렿; 렿; 렿; ) HANGUL SYLLABLE RYEOH
+B840;B840;1105 1168;B840;1105 1168; # (례; 례; 례; 례; 례; ) HANGUL SYLLABLE RYE
+B841;B841;1105 1168 11A8;B841;1105 1168 11A8; # (롁; 롁; 롁; 롁; 롁; ) HANGUL SYLLABLE RYEG
+B842;B842;1105 1168 11A9;B842;1105 1168 11A9; # (롂; 롂; 롂; 롂; 롂; ) HANGUL SYLLABLE RYEGG
+B843;B843;1105 1168 11AA;B843;1105 1168 11AA; # (롃; 롃; 롃; 롃; 롃; ) HANGUL SYLLABLE RYEGS
+B844;B844;1105 1168 11AB;B844;1105 1168 11AB; # (롄; 롄; 롄; 롄; 롄; ) HANGUL SYLLABLE RYEN
+B845;B845;1105 1168 11AC;B845;1105 1168 11AC; # (롅; 롅; 롅; 롅; 롅; ) HANGUL SYLLABLE RYENJ
+B846;B846;1105 1168 11AD;B846;1105 1168 11AD; # (롆; 롆; 롆; 롆; 롆; ) HANGUL SYLLABLE RYENH
+B847;B847;1105 1168 11AE;B847;1105 1168 11AE; # (롇; 롇; 롇; 롇; 롇; ) HANGUL SYLLABLE RYED
+B848;B848;1105 1168 11AF;B848;1105 1168 11AF; # (롈; 롈; 롈; 롈; 롈; ) HANGUL SYLLABLE RYEL
+B849;B849;1105 1168 11B0;B849;1105 1168 11B0; # (롉; 롉; 롉; 롉; 롉; ) HANGUL SYLLABLE RYELG
+B84A;B84A;1105 1168 11B1;B84A;1105 1168 11B1; # (롊; 롊; 롊; 롊; 롊; ) HANGUL SYLLABLE RYELM
+B84B;B84B;1105 1168 11B2;B84B;1105 1168 11B2; # (롋; 롋; 롋; 롋; 롋; ) HANGUL SYLLABLE RYELB
+B84C;B84C;1105 1168 11B3;B84C;1105 1168 11B3; # (롌; 롌; 롌; 롌; 롌; ) HANGUL SYLLABLE RYELS
+B84D;B84D;1105 1168 11B4;B84D;1105 1168 11B4; # (롍; 롍; 롍; 롍; 롍; ) HANGUL SYLLABLE RYELT
+B84E;B84E;1105 1168 11B5;B84E;1105 1168 11B5; # (롎; 롎; 롎; 롎; 롎; ) HANGUL SYLLABLE RYELP
+B84F;B84F;1105 1168 11B6;B84F;1105 1168 11B6; # (롏; 롏; 롏; 롏; 롏; ) HANGUL SYLLABLE RYELH
+B850;B850;1105 1168 11B7;B850;1105 1168 11B7; # (롐; 롐; 롐; 롐; 롐; ) HANGUL SYLLABLE RYEM
+B851;B851;1105 1168 11B8;B851;1105 1168 11B8; # (롑; 롑; 롑; 롑; 롑; ) HANGUL SYLLABLE RYEB
+B852;B852;1105 1168 11B9;B852;1105 1168 11B9; # (롒; 롒; 롒; 롒; 롒; ) HANGUL SYLLABLE RYEBS
+B853;B853;1105 1168 11BA;B853;1105 1168 11BA; # (롓; 롓; 롓; 롓; 롓; ) HANGUL SYLLABLE RYES
+B854;B854;1105 1168 11BB;B854;1105 1168 11BB; # (롔; 롔; 롔; 롔; 롔; ) HANGUL SYLLABLE RYESS
+B855;B855;1105 1168 11BC;B855;1105 1168 11BC; # (롕; 롕; 롕; 롕; 롕; ) HANGUL SYLLABLE RYENG
+B856;B856;1105 1168 11BD;B856;1105 1168 11BD; # (롖; 롖; 롖; 롖; 롖; ) HANGUL SYLLABLE RYEJ
+B857;B857;1105 1168 11BE;B857;1105 1168 11BE; # (롗; 롗; 롗; 롗; 롗; ) HANGUL SYLLABLE RYEC
+B858;B858;1105 1168 11BF;B858;1105 1168 11BF; # (롘; 롘; 롘; 롘; 롘; ) HANGUL SYLLABLE RYEK
+B859;B859;1105 1168 11C0;B859;1105 1168 11C0; # (롙; 롙; 롙; 롙; 롙; ) HANGUL SYLLABLE RYET
+B85A;B85A;1105 1168 11C1;B85A;1105 1168 11C1; # (롚; 롚; 롚; 롚; 롚; ) HANGUL SYLLABLE RYEP
+B85B;B85B;1105 1168 11C2;B85B;1105 1168 11C2; # (롛; 롛; 롛; 롛; 롛; ) HANGUL SYLLABLE RYEH
+B85C;B85C;1105 1169;B85C;1105 1169; # (로; 로; 로; 로; 로; ) HANGUL SYLLABLE RO
+B85D;B85D;1105 1169 11A8;B85D;1105 1169 11A8; # (록; 록; 록; 록; 록; ) HANGUL SYLLABLE ROG
+B85E;B85E;1105 1169 11A9;B85E;1105 1169 11A9; # (롞; 롞; 롞; 롞; 롞; ) HANGUL SYLLABLE ROGG
+B85F;B85F;1105 1169 11AA;B85F;1105 1169 11AA; # (롟; 롟; 롟; 롟; 롟; ) HANGUL SYLLABLE ROGS
+B860;B860;1105 1169 11AB;B860;1105 1169 11AB; # (론; 론; 론; 론; 론; ) HANGUL SYLLABLE RON
+B861;B861;1105 1169 11AC;B861;1105 1169 11AC; # (롡; 롡; 롡; 롡; 롡; ) HANGUL SYLLABLE RONJ
+B862;B862;1105 1169 11AD;B862;1105 1169 11AD; # (롢; 롢; 롢; 롢; 롢; ) HANGUL SYLLABLE RONH
+B863;B863;1105 1169 11AE;B863;1105 1169 11AE; # (롣; 롣; 롣; 롣; 롣; ) HANGUL SYLLABLE ROD
+B864;B864;1105 1169 11AF;B864;1105 1169 11AF; # (롤; 롤; 롤; 롤; 롤; ) HANGUL SYLLABLE ROL
+B865;B865;1105 1169 11B0;B865;1105 1169 11B0; # (롥; 롥; 롥; 롥; 롥; ) HANGUL SYLLABLE ROLG
+B866;B866;1105 1169 11B1;B866;1105 1169 11B1; # (롦; 롦; 롦; 롦; 롦; ) HANGUL SYLLABLE ROLM
+B867;B867;1105 1169 11B2;B867;1105 1169 11B2; # (롧; 롧; 롧; 롧; 롧; ) HANGUL SYLLABLE ROLB
+B868;B868;1105 1169 11B3;B868;1105 1169 11B3; # (롨; 롨; 롨; 롨; 롨; ) HANGUL SYLLABLE ROLS
+B869;B869;1105 1169 11B4;B869;1105 1169 11B4; # (롩; 롩; 롩; 롩; 롩; ) HANGUL SYLLABLE ROLT
+B86A;B86A;1105 1169 11B5;B86A;1105 1169 11B5; # (롪; 롪; 롪; 롪; 롪; ) HANGUL SYLLABLE ROLP
+B86B;B86B;1105 1169 11B6;B86B;1105 1169 11B6; # (롫; 롫; 롫; 롫; 롫; ) HANGUL SYLLABLE ROLH
+B86C;B86C;1105 1169 11B7;B86C;1105 1169 11B7; # (롬; 롬; 롬; 롬; 롬; ) HANGUL SYLLABLE ROM
+B86D;B86D;1105 1169 11B8;B86D;1105 1169 11B8; # (롭; 롭; 롭; 롭; 롭; ) HANGUL SYLLABLE ROB
+B86E;B86E;1105 1169 11B9;B86E;1105 1169 11B9; # (롮; 롮; 롮; 롮; 롮; ) HANGUL SYLLABLE ROBS
+B86F;B86F;1105 1169 11BA;B86F;1105 1169 11BA; # (롯; 롯; 롯; 롯; 롯; ) HANGUL SYLLABLE ROS
+B870;B870;1105 1169 11BB;B870;1105 1169 11BB; # (롰; 롰; 롰; 롰; 롰; ) HANGUL SYLLABLE ROSS
+B871;B871;1105 1169 11BC;B871;1105 1169 11BC; # (롱; 롱; 롱; 롱; 롱; ) HANGUL SYLLABLE RONG
+B872;B872;1105 1169 11BD;B872;1105 1169 11BD; # (롲; 롲; 롲; 롲; 롲; ) HANGUL SYLLABLE ROJ
+B873;B873;1105 1169 11BE;B873;1105 1169 11BE; # (롳; 롳; 롳; 롳; 롳; ) HANGUL SYLLABLE ROC
+B874;B874;1105 1169 11BF;B874;1105 1169 11BF; # (롴; 롴; 롴; 롴; 롴; ) HANGUL SYLLABLE ROK
+B875;B875;1105 1169 11C0;B875;1105 1169 11C0; # (롵; 롵; 롵; 롵; 롵; ) HANGUL SYLLABLE ROT
+B876;B876;1105 1169 11C1;B876;1105 1169 11C1; # (롶; 롶; 롶; 롶; 롶; ) HANGUL SYLLABLE ROP
+B877;B877;1105 1169 11C2;B877;1105 1169 11C2; # (롷; 롷; 롷; 롷; 롷; ) HANGUL SYLLABLE ROH
+B878;B878;1105 116A;B878;1105 116A; # (롸; 롸; 롸; 롸; 롸; ) HANGUL SYLLABLE RWA
+B879;B879;1105 116A 11A8;B879;1105 116A 11A8; # (롹; 롹; 롹; 롹; 롹; ) HANGUL SYLLABLE RWAG
+B87A;B87A;1105 116A 11A9;B87A;1105 116A 11A9; # (롺; 롺; 롺; 롺; 롺; ) HANGUL SYLLABLE RWAGG
+B87B;B87B;1105 116A 11AA;B87B;1105 116A 11AA; # (롻; 롻; 롻; 롻; 롻; ) HANGUL SYLLABLE RWAGS
+B87C;B87C;1105 116A 11AB;B87C;1105 116A 11AB; # (롼; 롼; 롼; 롼; 롼; ) HANGUL SYLLABLE RWAN
+B87D;B87D;1105 116A 11AC;B87D;1105 116A 11AC; # (롽; 롽; 롽; 롽; 롽; ) HANGUL SYLLABLE RWANJ
+B87E;B87E;1105 116A 11AD;B87E;1105 116A 11AD; # (롾; 롾; 롾; 롾; 롾; ) HANGUL SYLLABLE RWANH
+B87F;B87F;1105 116A 11AE;B87F;1105 116A 11AE; # (롿; 롿; 롿; 롿; 롿; ) HANGUL SYLLABLE RWAD
+B880;B880;1105 116A 11AF;B880;1105 116A 11AF; # (뢀; 뢀; 뢀; 뢀; 뢀; ) HANGUL SYLLABLE RWAL
+B881;B881;1105 116A 11B0;B881;1105 116A 11B0; # (뢁; 뢁; 뢁; 뢁; 뢁; ) HANGUL SYLLABLE RWALG
+B882;B882;1105 116A 11B1;B882;1105 116A 11B1; # (뢂; 뢂; 뢂; 뢂; 뢂; ) HANGUL SYLLABLE RWALM
+B883;B883;1105 116A 11B2;B883;1105 116A 11B2; # (뢃; 뢃; 뢃; 뢃; 뢃; ) HANGUL SYLLABLE RWALB
+B884;B884;1105 116A 11B3;B884;1105 116A 11B3; # (뢄; 뢄; 뢄; 뢄; 뢄; ) HANGUL SYLLABLE RWALS
+B885;B885;1105 116A 11B4;B885;1105 116A 11B4; # (뢅; 뢅; 뢅; 뢅; 뢅; ) HANGUL SYLLABLE RWALT
+B886;B886;1105 116A 11B5;B886;1105 116A 11B5; # (뢆; 뢆; 뢆; 뢆; 뢆; ) HANGUL SYLLABLE RWALP
+B887;B887;1105 116A 11B6;B887;1105 116A 11B6; # (뢇; 뢇; 뢇; 뢇; 뢇; ) HANGUL SYLLABLE RWALH
+B888;B888;1105 116A 11B7;B888;1105 116A 11B7; # (뢈; 뢈; 뢈; 뢈; 뢈; ) HANGUL SYLLABLE RWAM
+B889;B889;1105 116A 11B8;B889;1105 116A 11B8; # (뢉; 뢉; 뢉; 뢉; 뢉; ) HANGUL SYLLABLE RWAB
+B88A;B88A;1105 116A 11B9;B88A;1105 116A 11B9; # (뢊; 뢊; 뢊; 뢊; 뢊; ) HANGUL SYLLABLE RWABS
+B88B;B88B;1105 116A 11BA;B88B;1105 116A 11BA; # (뢋; 뢋; 뢋; 뢋; 뢋; ) HANGUL SYLLABLE RWAS
+B88C;B88C;1105 116A 11BB;B88C;1105 116A 11BB; # (뢌; 뢌; 뢌; 뢌; 뢌; ) HANGUL SYLLABLE RWASS
+B88D;B88D;1105 116A 11BC;B88D;1105 116A 11BC; # (뢍; 뢍; 뢍; 뢍; 뢍; ) HANGUL SYLLABLE RWANG
+B88E;B88E;1105 116A 11BD;B88E;1105 116A 11BD; # (뢎; 뢎; 뢎; 뢎; 뢎; ) HANGUL SYLLABLE RWAJ
+B88F;B88F;1105 116A 11BE;B88F;1105 116A 11BE; # (뢏; 뢏; 뢏; 뢏; 뢏; ) HANGUL SYLLABLE RWAC
+B890;B890;1105 116A 11BF;B890;1105 116A 11BF; # (뢐; 뢐; 뢐; 뢐; 뢐; ) HANGUL SYLLABLE RWAK
+B891;B891;1105 116A 11C0;B891;1105 116A 11C0; # (뢑; 뢑; 뢑; 뢑; 뢑; ) HANGUL SYLLABLE RWAT
+B892;B892;1105 116A 11C1;B892;1105 116A 11C1; # (뢒; 뢒; 뢒; 뢒; 뢒; ) HANGUL SYLLABLE RWAP
+B893;B893;1105 116A 11C2;B893;1105 116A 11C2; # (뢓; 뢓; 뢓; 뢓; 뢓; ) HANGUL SYLLABLE RWAH
+B894;B894;1105 116B;B894;1105 116B; # (뢔; 뢔; 뢔; 뢔; 뢔; ) HANGUL SYLLABLE RWAE
+B895;B895;1105 116B 11A8;B895;1105 116B 11A8; # (뢕; 뢕; 뢕; 뢕; 뢕; ) HANGUL SYLLABLE RWAEG
+B896;B896;1105 116B 11A9;B896;1105 116B 11A9; # (뢖; 뢖; 뢖; 뢖; 뢖; ) HANGUL SYLLABLE RWAEGG
+B897;B897;1105 116B 11AA;B897;1105 116B 11AA; # (뢗; 뢗; 뢗; 뢗; 뢗; ) HANGUL SYLLABLE RWAEGS
+B898;B898;1105 116B 11AB;B898;1105 116B 11AB; # (뢘; 뢘; 뢘; 뢘; 뢘; ) HANGUL SYLLABLE RWAEN
+B899;B899;1105 116B 11AC;B899;1105 116B 11AC; # (뢙; 뢙; 뢙; 뢙; 뢙; ) HANGUL SYLLABLE RWAENJ
+B89A;B89A;1105 116B 11AD;B89A;1105 116B 11AD; # (뢚; 뢚; 뢚; 뢚; 뢚; ) HANGUL SYLLABLE RWAENH
+B89B;B89B;1105 116B 11AE;B89B;1105 116B 11AE; # (뢛; 뢛; 뢛; 뢛; 뢛; ) HANGUL SYLLABLE RWAED
+B89C;B89C;1105 116B 11AF;B89C;1105 116B 11AF; # (뢜; 뢜; 뢜; 뢜; 뢜; ) HANGUL SYLLABLE RWAEL
+B89D;B89D;1105 116B 11B0;B89D;1105 116B 11B0; # (뢝; 뢝; 뢝; 뢝; 뢝; ) HANGUL SYLLABLE RWAELG
+B89E;B89E;1105 116B 11B1;B89E;1105 116B 11B1; # (뢞; 뢞; 뢞; 뢞; 뢞; ) HANGUL SYLLABLE RWAELM
+B89F;B89F;1105 116B 11B2;B89F;1105 116B 11B2; # (뢟; 뢟; 뢟; 뢟; 뢟; ) HANGUL SYLLABLE RWAELB
+B8A0;B8A0;1105 116B 11B3;B8A0;1105 116B 11B3; # (뢠; 뢠; 뢠; 뢠; 뢠; ) HANGUL SYLLABLE RWAELS
+B8A1;B8A1;1105 116B 11B4;B8A1;1105 116B 11B4; # (뢡; 뢡; 뢡; 뢡; 뢡; ) HANGUL SYLLABLE RWAELT
+B8A2;B8A2;1105 116B 11B5;B8A2;1105 116B 11B5; # (뢢; 뢢; 뢢; 뢢; 뢢; ) HANGUL SYLLABLE RWAELP
+B8A3;B8A3;1105 116B 11B6;B8A3;1105 116B 11B6; # (뢣; 뢣; 뢣; 뢣; 뢣; ) HANGUL SYLLABLE RWAELH
+B8A4;B8A4;1105 116B 11B7;B8A4;1105 116B 11B7; # (뢤; 뢤; 뢤; 뢤; 뢤; ) HANGUL SYLLABLE RWAEM
+B8A5;B8A5;1105 116B 11B8;B8A5;1105 116B 11B8; # (뢥; 뢥; 뢥; 뢥; 뢥; ) HANGUL SYLLABLE RWAEB
+B8A6;B8A6;1105 116B 11B9;B8A6;1105 116B 11B9; # (뢦; 뢦; 뢦; 뢦; 뢦; ) HANGUL SYLLABLE RWAEBS
+B8A7;B8A7;1105 116B 11BA;B8A7;1105 116B 11BA; # (뢧; 뢧; 뢧; 뢧; 뢧; ) HANGUL SYLLABLE RWAES
+B8A8;B8A8;1105 116B 11BB;B8A8;1105 116B 11BB; # (뢨; 뢨; 뢨; 뢨; 뢨; ) HANGUL SYLLABLE RWAESS
+B8A9;B8A9;1105 116B 11BC;B8A9;1105 116B 11BC; # (뢩; 뢩; 뢩; 뢩; 뢩; ) HANGUL SYLLABLE RWAENG
+B8AA;B8AA;1105 116B 11BD;B8AA;1105 116B 11BD; # (뢪; 뢪; 뢪; 뢪; 뢪; ) HANGUL SYLLABLE RWAEJ
+B8AB;B8AB;1105 116B 11BE;B8AB;1105 116B 11BE; # (뢫; 뢫; 뢫; 뢫; 뢫; ) HANGUL SYLLABLE RWAEC
+B8AC;B8AC;1105 116B 11BF;B8AC;1105 116B 11BF; # (뢬; 뢬; 뢬; 뢬; 뢬; ) HANGUL SYLLABLE RWAEK
+B8AD;B8AD;1105 116B 11C0;B8AD;1105 116B 11C0; # (뢭; 뢭; 뢭; 뢭; 뢭; ) HANGUL SYLLABLE RWAET
+B8AE;B8AE;1105 116B 11C1;B8AE;1105 116B 11C1; # (뢮; 뢮; 뢮; 뢮; 뢮; ) HANGUL SYLLABLE RWAEP
+B8AF;B8AF;1105 116B 11C2;B8AF;1105 116B 11C2; # (뢯; 뢯; 뢯; 뢯; 뢯; ) HANGUL SYLLABLE RWAEH
+B8B0;B8B0;1105 116C;B8B0;1105 116C; # (뢰; 뢰; 뢰; 뢰; 뢰; ) HANGUL SYLLABLE ROE
+B8B1;B8B1;1105 116C 11A8;B8B1;1105 116C 11A8; # (뢱; 뢱; 뢱; 뢱; 뢱; ) HANGUL SYLLABLE ROEG
+B8B2;B8B2;1105 116C 11A9;B8B2;1105 116C 11A9; # (뢲; 뢲; 뢲; 뢲; 뢲; ) HANGUL SYLLABLE ROEGG
+B8B3;B8B3;1105 116C 11AA;B8B3;1105 116C 11AA; # (뢳; 뢳; 뢳; 뢳; 뢳; ) HANGUL SYLLABLE ROEGS
+B8B4;B8B4;1105 116C 11AB;B8B4;1105 116C 11AB; # (뢴; 뢴; 뢴; 뢴; 뢴; ) HANGUL SYLLABLE ROEN
+B8B5;B8B5;1105 116C 11AC;B8B5;1105 116C 11AC; # (뢵; 뢵; 뢵; 뢵; 뢵; ) HANGUL SYLLABLE ROENJ
+B8B6;B8B6;1105 116C 11AD;B8B6;1105 116C 11AD; # (뢶; 뢶; 뢶; 뢶; 뢶; ) HANGUL SYLLABLE ROENH
+B8B7;B8B7;1105 116C 11AE;B8B7;1105 116C 11AE; # (뢷; 뢷; 뢷; 뢷; 뢷; ) HANGUL SYLLABLE ROED
+B8B8;B8B8;1105 116C 11AF;B8B8;1105 116C 11AF; # (뢸; 뢸; 뢸; 뢸; 뢸; ) HANGUL SYLLABLE ROEL
+B8B9;B8B9;1105 116C 11B0;B8B9;1105 116C 11B0; # (뢹; 뢹; 뢹; 뢹; 뢹; ) HANGUL SYLLABLE ROELG
+B8BA;B8BA;1105 116C 11B1;B8BA;1105 116C 11B1; # (뢺; 뢺; 뢺; 뢺; 뢺; ) HANGUL SYLLABLE ROELM
+B8BB;B8BB;1105 116C 11B2;B8BB;1105 116C 11B2; # (뢻; 뢻; 뢻; 뢻; 뢻; ) HANGUL SYLLABLE ROELB
+B8BC;B8BC;1105 116C 11B3;B8BC;1105 116C 11B3; # (뢼; 뢼; 뢼; 뢼; 뢼; ) HANGUL SYLLABLE ROELS
+B8BD;B8BD;1105 116C 11B4;B8BD;1105 116C 11B4; # (뢽; 뢽; 뢽; 뢽; 뢽; ) HANGUL SYLLABLE ROELT
+B8BE;B8BE;1105 116C 11B5;B8BE;1105 116C 11B5; # (뢾; 뢾; 뢾; 뢾; 뢾; ) HANGUL SYLLABLE ROELP
+B8BF;B8BF;1105 116C 11B6;B8BF;1105 116C 11B6; # (뢿; 뢿; 뢿; 뢿; 뢿; ) HANGUL SYLLABLE ROELH
+B8C0;B8C0;1105 116C 11B7;B8C0;1105 116C 11B7; # (룀; 룀; 룀; 룀; 룀; ) HANGUL SYLLABLE ROEM
+B8C1;B8C1;1105 116C 11B8;B8C1;1105 116C 11B8; # (룁; 룁; 룁; 룁; 룁; ) HANGUL SYLLABLE ROEB
+B8C2;B8C2;1105 116C 11B9;B8C2;1105 116C 11B9; # (룂; 룂; 룂; 룂; 룂; ) HANGUL SYLLABLE ROEBS
+B8C3;B8C3;1105 116C 11BA;B8C3;1105 116C 11BA; # (룃; 룃; 룃; 룃; 룃; ) HANGUL SYLLABLE ROES
+B8C4;B8C4;1105 116C 11BB;B8C4;1105 116C 11BB; # (룄; 룄; 룄; 룄; 룄; ) HANGUL SYLLABLE ROESS
+B8C5;B8C5;1105 116C 11BC;B8C5;1105 116C 11BC; # (룅; 룅; 룅; 룅; 룅; ) HANGUL SYLLABLE ROENG
+B8C6;B8C6;1105 116C 11BD;B8C6;1105 116C 11BD; # (룆; 룆; 룆; 룆; 룆; ) HANGUL SYLLABLE ROEJ
+B8C7;B8C7;1105 116C 11BE;B8C7;1105 116C 11BE; # (룇; 룇; 룇; 룇; 룇; ) HANGUL SYLLABLE ROEC
+B8C8;B8C8;1105 116C 11BF;B8C8;1105 116C 11BF; # (룈; 룈; 룈; 룈; 룈; ) HANGUL SYLLABLE ROEK
+B8C9;B8C9;1105 116C 11C0;B8C9;1105 116C 11C0; # (룉; 룉; 룉; 룉; 룉; ) HANGUL SYLLABLE ROET
+B8CA;B8CA;1105 116C 11C1;B8CA;1105 116C 11C1; # (룊; 룊; 룊; 룊; 룊; ) HANGUL SYLLABLE ROEP
+B8CB;B8CB;1105 116C 11C2;B8CB;1105 116C 11C2; # (룋; 룋; 룋; 룋; 룋; ) HANGUL SYLLABLE ROEH
+B8CC;B8CC;1105 116D;B8CC;1105 116D; # (료; 료; 료; 료; 료; ) HANGUL SYLLABLE RYO
+B8CD;B8CD;1105 116D 11A8;B8CD;1105 116D 11A8; # (룍; 룍; 룍; 룍; 룍; ) HANGUL SYLLABLE RYOG
+B8CE;B8CE;1105 116D 11A9;B8CE;1105 116D 11A9; # (룎; 룎; 룎; 룎; 룎; ) HANGUL SYLLABLE RYOGG
+B8CF;B8CF;1105 116D 11AA;B8CF;1105 116D 11AA; # (룏; 룏; 룏; 룏; 룏; ) HANGUL SYLLABLE RYOGS
+B8D0;B8D0;1105 116D 11AB;B8D0;1105 116D 11AB; # (룐; 룐; 룐; 룐; 룐; ) HANGUL SYLLABLE RYON
+B8D1;B8D1;1105 116D 11AC;B8D1;1105 116D 11AC; # (룑; 룑; 룑; 룑; 룑; ) HANGUL SYLLABLE RYONJ
+B8D2;B8D2;1105 116D 11AD;B8D2;1105 116D 11AD; # (룒; 룒; 룒; 룒; 룒; ) HANGUL SYLLABLE RYONH
+B8D3;B8D3;1105 116D 11AE;B8D3;1105 116D 11AE; # (룓; 룓; 룓; 룓; 룓; ) HANGUL SYLLABLE RYOD
+B8D4;B8D4;1105 116D 11AF;B8D4;1105 116D 11AF; # (룔; 룔; 룔; 룔; 룔; ) HANGUL SYLLABLE RYOL
+B8D5;B8D5;1105 116D 11B0;B8D5;1105 116D 11B0; # (룕; 룕; 룕; 룕; 룕; ) HANGUL SYLLABLE RYOLG
+B8D6;B8D6;1105 116D 11B1;B8D6;1105 116D 11B1; # (룖; 룖; 룖; 룖; 룖; ) HANGUL SYLLABLE RYOLM
+B8D7;B8D7;1105 116D 11B2;B8D7;1105 116D 11B2; # (룗; 룗; 룗; 룗; 룗; ) HANGUL SYLLABLE RYOLB
+B8D8;B8D8;1105 116D 11B3;B8D8;1105 116D 11B3; # (룘; 룘; 룘; 룘; 룘; ) HANGUL SYLLABLE RYOLS
+B8D9;B8D9;1105 116D 11B4;B8D9;1105 116D 11B4; # (룙; 룙; 룙; 룙; 룙; ) HANGUL SYLLABLE RYOLT
+B8DA;B8DA;1105 116D 11B5;B8DA;1105 116D 11B5; # (룚; 룚; 룚; 룚; 룚; ) HANGUL SYLLABLE RYOLP
+B8DB;B8DB;1105 116D 11B6;B8DB;1105 116D 11B6; # (룛; 룛; 룛; 룛; 룛; ) HANGUL SYLLABLE RYOLH
+B8DC;B8DC;1105 116D 11B7;B8DC;1105 116D 11B7; # (룜; 룜; 룜; 룜; 룜; ) HANGUL SYLLABLE RYOM
+B8DD;B8DD;1105 116D 11B8;B8DD;1105 116D 11B8; # (룝; 룝; 룝; 룝; 룝; ) HANGUL SYLLABLE RYOB
+B8DE;B8DE;1105 116D 11B9;B8DE;1105 116D 11B9; # (룞; 룞; 룞; 룞; 룞; ) HANGUL SYLLABLE RYOBS
+B8DF;B8DF;1105 116D 11BA;B8DF;1105 116D 11BA; # (룟; 룟; 룟; 룟; 룟; ) HANGUL SYLLABLE RYOS
+B8E0;B8E0;1105 116D 11BB;B8E0;1105 116D 11BB; # (룠; 룠; 룠; 룠; 룠; ) HANGUL SYLLABLE RYOSS
+B8E1;B8E1;1105 116D 11BC;B8E1;1105 116D 11BC; # (룡; 룡; 룡; 룡; 룡; ) HANGUL SYLLABLE RYONG
+B8E2;B8E2;1105 116D 11BD;B8E2;1105 116D 11BD; # (룢; 룢; 룢; 룢; 룢; ) HANGUL SYLLABLE RYOJ
+B8E3;B8E3;1105 116D 11BE;B8E3;1105 116D 11BE; # (룣; 룣; 룣; 룣; 룣; ) HANGUL SYLLABLE RYOC
+B8E4;B8E4;1105 116D 11BF;B8E4;1105 116D 11BF; # (룤; 룤; 룤; 룤; 룤; ) HANGUL SYLLABLE RYOK
+B8E5;B8E5;1105 116D 11C0;B8E5;1105 116D 11C0; # (룥; 룥; 룥; 룥; 룥; ) HANGUL SYLLABLE RYOT
+B8E6;B8E6;1105 116D 11C1;B8E6;1105 116D 11C1; # (룦; 룦; 룦; 룦; 룦; ) HANGUL SYLLABLE RYOP
+B8E7;B8E7;1105 116D 11C2;B8E7;1105 116D 11C2; # (룧; 룧; 룧; 룧; 룧; ) HANGUL SYLLABLE RYOH
+B8E8;B8E8;1105 116E;B8E8;1105 116E; # (루; 루; 루; 루; 루; ) HANGUL SYLLABLE RU
+B8E9;B8E9;1105 116E 11A8;B8E9;1105 116E 11A8; # (룩; 룩; 룩; 룩; 룩; ) HANGUL SYLLABLE RUG
+B8EA;B8EA;1105 116E 11A9;B8EA;1105 116E 11A9; # (룪; 룪; 룪; 룪; 룪; ) HANGUL SYLLABLE RUGG
+B8EB;B8EB;1105 116E 11AA;B8EB;1105 116E 11AA; # (룫; 룫; 룫; 룫; 룫; ) HANGUL SYLLABLE RUGS
+B8EC;B8EC;1105 116E 11AB;B8EC;1105 116E 11AB; # (룬; 룬; 룬; 룬; 룬; ) HANGUL SYLLABLE RUN
+B8ED;B8ED;1105 116E 11AC;B8ED;1105 116E 11AC; # (룭; 룭; 룭; 룭; 룭; ) HANGUL SYLLABLE RUNJ
+B8EE;B8EE;1105 116E 11AD;B8EE;1105 116E 11AD; # (룮; 룮; 룮; 룮; 룮; ) HANGUL SYLLABLE RUNH
+B8EF;B8EF;1105 116E 11AE;B8EF;1105 116E 11AE; # (룯; 룯; 룯; 룯; 룯; ) HANGUL SYLLABLE RUD
+B8F0;B8F0;1105 116E 11AF;B8F0;1105 116E 11AF; # (룰; 룰; 룰; 룰; 룰; ) HANGUL SYLLABLE RUL
+B8F1;B8F1;1105 116E 11B0;B8F1;1105 116E 11B0; # (룱; 룱; 룱; 룱; 룱; ) HANGUL SYLLABLE RULG
+B8F2;B8F2;1105 116E 11B1;B8F2;1105 116E 11B1; # (룲; 룲; 룲; 룲; 룲; ) HANGUL SYLLABLE RULM
+B8F3;B8F3;1105 116E 11B2;B8F3;1105 116E 11B2; # (룳; 룳; 룳; 룳; 룳; ) HANGUL SYLLABLE RULB
+B8F4;B8F4;1105 116E 11B3;B8F4;1105 116E 11B3; # (룴; 룴; 룴; 룴; 룴; ) HANGUL SYLLABLE RULS
+B8F5;B8F5;1105 116E 11B4;B8F5;1105 116E 11B4; # (룵; 룵; 룵; 룵; 룵; ) HANGUL SYLLABLE RULT
+B8F6;B8F6;1105 116E 11B5;B8F6;1105 116E 11B5; # (룶; 룶; 룶; 룶; 룶; ) HANGUL SYLLABLE RULP
+B8F7;B8F7;1105 116E 11B6;B8F7;1105 116E 11B6; # (룷; 룷; 룷; 룷; 룷; ) HANGUL SYLLABLE RULH
+B8F8;B8F8;1105 116E 11B7;B8F8;1105 116E 11B7; # (룸; 룸; 룸; 룸; 룸; ) HANGUL SYLLABLE RUM
+B8F9;B8F9;1105 116E 11B8;B8F9;1105 116E 11B8; # (룹; 룹; 룹; 룹; 룹; ) HANGUL SYLLABLE RUB
+B8FA;B8FA;1105 116E 11B9;B8FA;1105 116E 11B9; # (룺; 룺; 룺; 룺; 룺; ) HANGUL SYLLABLE RUBS
+B8FB;B8FB;1105 116E 11BA;B8FB;1105 116E 11BA; # (룻; 룻; 룻; 룻; 룻; ) HANGUL SYLLABLE RUS
+B8FC;B8FC;1105 116E 11BB;B8FC;1105 116E 11BB; # (룼; 룼; 룼; 룼; 룼; ) HANGUL SYLLABLE RUSS
+B8FD;B8FD;1105 116E 11BC;B8FD;1105 116E 11BC; # (룽; 룽; 룽; 룽; 룽; ) HANGUL SYLLABLE RUNG
+B8FE;B8FE;1105 116E 11BD;B8FE;1105 116E 11BD; # (룾; 룾; 룾; 룾; 룾; ) HANGUL SYLLABLE RUJ
+B8FF;B8FF;1105 116E 11BE;B8FF;1105 116E 11BE; # (룿; 룿; 룿; 룿; 룿; ) HANGUL SYLLABLE RUC
+B900;B900;1105 116E 11BF;B900;1105 116E 11BF; # (뤀; 뤀; 뤀; 뤀; 뤀; ) HANGUL SYLLABLE RUK
+B901;B901;1105 116E 11C0;B901;1105 116E 11C0; # (뤁; 뤁; 뤁; 뤁; 뤁; ) HANGUL SYLLABLE RUT
+B902;B902;1105 116E 11C1;B902;1105 116E 11C1; # (뤂; 뤂; 뤂; 뤂; 뤂; ) HANGUL SYLLABLE RUP
+B903;B903;1105 116E 11C2;B903;1105 116E 11C2; # (뤃; 뤃; 뤃; 뤃; 뤃; ) HANGUL SYLLABLE RUH
+B904;B904;1105 116F;B904;1105 116F; # (뤄; 뤄; 뤄; 뤄; 뤄; ) HANGUL SYLLABLE RWEO
+B905;B905;1105 116F 11A8;B905;1105 116F 11A8; # (뤅; 뤅; 뤅; 뤅; 뤅; ) HANGUL SYLLABLE RWEOG
+B906;B906;1105 116F 11A9;B906;1105 116F 11A9; # (뤆; 뤆; 뤆; 뤆; 뤆; ) HANGUL SYLLABLE RWEOGG
+B907;B907;1105 116F 11AA;B907;1105 116F 11AA; # (뤇; 뤇; 뤇; 뤇; 뤇; ) HANGUL SYLLABLE RWEOGS
+B908;B908;1105 116F 11AB;B908;1105 116F 11AB; # (뤈; 뤈; 뤈; 뤈; 뤈; ) HANGUL SYLLABLE RWEON
+B909;B909;1105 116F 11AC;B909;1105 116F 11AC; # (뤉; 뤉; 뤉; 뤉; 뤉; ) HANGUL SYLLABLE RWEONJ
+B90A;B90A;1105 116F 11AD;B90A;1105 116F 11AD; # (뤊; 뤊; 뤊; 뤊; 뤊; ) HANGUL SYLLABLE RWEONH
+B90B;B90B;1105 116F 11AE;B90B;1105 116F 11AE; # (뤋; 뤋; 뤋; 뤋; 뤋; ) HANGUL SYLLABLE RWEOD
+B90C;B90C;1105 116F 11AF;B90C;1105 116F 11AF; # (뤌; 뤌; 뤌; 뤌; 뤌; ) HANGUL SYLLABLE RWEOL
+B90D;B90D;1105 116F 11B0;B90D;1105 116F 11B0; # (뤍; 뤍; 뤍; 뤍; 뤍; ) HANGUL SYLLABLE RWEOLG
+B90E;B90E;1105 116F 11B1;B90E;1105 116F 11B1; # (뤎; 뤎; 뤎; 뤎; 뤎; ) HANGUL SYLLABLE RWEOLM
+B90F;B90F;1105 116F 11B2;B90F;1105 116F 11B2; # (뤏; 뤏; 뤏; 뤏; 뤏; ) HANGUL SYLLABLE RWEOLB
+B910;B910;1105 116F 11B3;B910;1105 116F 11B3; # (뤐; 뤐; 뤐; 뤐; 뤐; ) HANGUL SYLLABLE RWEOLS
+B911;B911;1105 116F 11B4;B911;1105 116F 11B4; # (뤑; 뤑; 뤑; 뤑; 뤑; ) HANGUL SYLLABLE RWEOLT
+B912;B912;1105 116F 11B5;B912;1105 116F 11B5; # (뤒; 뤒; 뤒; 뤒; 뤒; ) HANGUL SYLLABLE RWEOLP
+B913;B913;1105 116F 11B6;B913;1105 116F 11B6; # (뤓; 뤓; 뤓; 뤓; 뤓; ) HANGUL SYLLABLE RWEOLH
+B914;B914;1105 116F 11B7;B914;1105 116F 11B7; # (뤔; 뤔; 뤔; 뤔; 뤔; ) HANGUL SYLLABLE RWEOM
+B915;B915;1105 116F 11B8;B915;1105 116F 11B8; # (뤕; 뤕; 뤕; 뤕; 뤕; ) HANGUL SYLLABLE RWEOB
+B916;B916;1105 116F 11B9;B916;1105 116F 11B9; # (뤖; 뤖; 뤖; 뤖; 뤖; ) HANGUL SYLLABLE RWEOBS
+B917;B917;1105 116F 11BA;B917;1105 116F 11BA; # (뤗; 뤗; 뤗; 뤗; 뤗; ) HANGUL SYLLABLE RWEOS
+B918;B918;1105 116F 11BB;B918;1105 116F 11BB; # (뤘; 뤘; 뤘; 뤘; 뤘; ) HANGUL SYLLABLE RWEOSS
+B919;B919;1105 116F 11BC;B919;1105 116F 11BC; # (뤙; 뤙; 뤙; 뤙; 뤙; ) HANGUL SYLLABLE RWEONG
+B91A;B91A;1105 116F 11BD;B91A;1105 116F 11BD; # (뤚; 뤚; 뤚; 뤚; 뤚; ) HANGUL SYLLABLE RWEOJ
+B91B;B91B;1105 116F 11BE;B91B;1105 116F 11BE; # (뤛; 뤛; 뤛; 뤛; 뤛; ) HANGUL SYLLABLE RWEOC
+B91C;B91C;1105 116F 11BF;B91C;1105 116F 11BF; # (뤜; 뤜; 뤜; 뤜; 뤜; ) HANGUL SYLLABLE RWEOK
+B91D;B91D;1105 116F 11C0;B91D;1105 116F 11C0; # (뤝; 뤝; 뤝; 뤝; 뤝; ) HANGUL SYLLABLE RWEOT
+B91E;B91E;1105 116F 11C1;B91E;1105 116F 11C1; # (뤞; 뤞; 뤞; 뤞; 뤞; ) HANGUL SYLLABLE RWEOP
+B91F;B91F;1105 116F 11C2;B91F;1105 116F 11C2; # (뤟; 뤟; 뤟; 뤟; 뤟; ) HANGUL SYLLABLE RWEOH
+B920;B920;1105 1170;B920;1105 1170; # (뤠; 뤠; 뤠; 뤠; 뤠; ) HANGUL SYLLABLE RWE
+B921;B921;1105 1170 11A8;B921;1105 1170 11A8; # (뤡; 뤡; 뤡; 뤡; 뤡; ) HANGUL SYLLABLE RWEG
+B922;B922;1105 1170 11A9;B922;1105 1170 11A9; # (뤢; 뤢; 뤢; 뤢; 뤢; ) HANGUL SYLLABLE RWEGG
+B923;B923;1105 1170 11AA;B923;1105 1170 11AA; # (뤣; 뤣; 뤣; 뤣; 뤣; ) HANGUL SYLLABLE RWEGS
+B924;B924;1105 1170 11AB;B924;1105 1170 11AB; # (뤤; 뤤; 뤤; 뤤; 뤤; ) HANGUL SYLLABLE RWEN
+B925;B925;1105 1170 11AC;B925;1105 1170 11AC; # (뤥; 뤥; 뤥; 뤥; 뤥; ) HANGUL SYLLABLE RWENJ
+B926;B926;1105 1170 11AD;B926;1105 1170 11AD; # (뤦; 뤦; 뤦; 뤦; 뤦; ) HANGUL SYLLABLE RWENH
+B927;B927;1105 1170 11AE;B927;1105 1170 11AE; # (뤧; 뤧; 뤧; 뤧; 뤧; ) HANGUL SYLLABLE RWED
+B928;B928;1105 1170 11AF;B928;1105 1170 11AF; # (뤨; 뤨; 뤨; 뤨; 뤨; ) HANGUL SYLLABLE RWEL
+B929;B929;1105 1170 11B0;B929;1105 1170 11B0; # (뤩; 뤩; 뤩; 뤩; 뤩; ) HANGUL SYLLABLE RWELG
+B92A;B92A;1105 1170 11B1;B92A;1105 1170 11B1; # (뤪; 뤪; 뤪; 뤪; 뤪; ) HANGUL SYLLABLE RWELM
+B92B;B92B;1105 1170 11B2;B92B;1105 1170 11B2; # (뤫; 뤫; 뤫; 뤫; 뤫; ) HANGUL SYLLABLE RWELB
+B92C;B92C;1105 1170 11B3;B92C;1105 1170 11B3; # (뤬; 뤬; 뤬; 뤬; 뤬; ) HANGUL SYLLABLE RWELS
+B92D;B92D;1105 1170 11B4;B92D;1105 1170 11B4; # (뤭; 뤭; 뤭; 뤭; 뤭; ) HANGUL SYLLABLE RWELT
+B92E;B92E;1105 1170 11B5;B92E;1105 1170 11B5; # (뤮; 뤮; 뤮; 뤮; 뤮; ) HANGUL SYLLABLE RWELP
+B92F;B92F;1105 1170 11B6;B92F;1105 1170 11B6; # (뤯; 뤯; 뤯; 뤯; 뤯; ) HANGUL SYLLABLE RWELH
+B930;B930;1105 1170 11B7;B930;1105 1170 11B7; # (뤰; 뤰; 뤰; 뤰; 뤰; ) HANGUL SYLLABLE RWEM
+B931;B931;1105 1170 11B8;B931;1105 1170 11B8; # (뤱; 뤱; 뤱; 뤱; 뤱; ) HANGUL SYLLABLE RWEB
+B932;B932;1105 1170 11B9;B932;1105 1170 11B9; # (뤲; 뤲; 뤲; 뤲; 뤲; ) HANGUL SYLLABLE RWEBS
+B933;B933;1105 1170 11BA;B933;1105 1170 11BA; # (뤳; 뤳; 뤳; 뤳; 뤳; ) HANGUL SYLLABLE RWES
+B934;B934;1105 1170 11BB;B934;1105 1170 11BB; # (뤴; 뤴; 뤴; 뤴; 뤴; ) HANGUL SYLLABLE RWESS
+B935;B935;1105 1170 11BC;B935;1105 1170 11BC; # (뤵; 뤵; 뤵; 뤵; 뤵; ) HANGUL SYLLABLE RWENG
+B936;B936;1105 1170 11BD;B936;1105 1170 11BD; # (뤶; 뤶; 뤶; 뤶; 뤶; ) HANGUL SYLLABLE RWEJ
+B937;B937;1105 1170 11BE;B937;1105 1170 11BE; # (뤷; 뤷; 뤷; 뤷; 뤷; ) HANGUL SYLLABLE RWEC
+B938;B938;1105 1170 11BF;B938;1105 1170 11BF; # (뤸; 뤸; 뤸; 뤸; 뤸; ) HANGUL SYLLABLE RWEK
+B939;B939;1105 1170 11C0;B939;1105 1170 11C0; # (뤹; 뤹; 뤹; 뤹; 뤹; ) HANGUL SYLLABLE RWET
+B93A;B93A;1105 1170 11C1;B93A;1105 1170 11C1; # (뤺; 뤺; 뤺; 뤺; 뤺; ) HANGUL SYLLABLE RWEP
+B93B;B93B;1105 1170 11C2;B93B;1105 1170 11C2; # (뤻; 뤻; 뤻; 뤻; 뤻; ) HANGUL SYLLABLE RWEH
+B93C;B93C;1105 1171;B93C;1105 1171; # (뤼; 뤼; 뤼; 뤼; 뤼; ) HANGUL SYLLABLE RWI
+B93D;B93D;1105 1171 11A8;B93D;1105 1171 11A8; # (뤽; 뤽; 뤽; 뤽; 뤽; ) HANGUL SYLLABLE RWIG
+B93E;B93E;1105 1171 11A9;B93E;1105 1171 11A9; # (뤾; 뤾; 뤾; 뤾; 뤾; ) HANGUL SYLLABLE RWIGG
+B93F;B93F;1105 1171 11AA;B93F;1105 1171 11AA; # (뤿; 뤿; 뤿; 뤿; 뤿; ) HANGUL SYLLABLE RWIGS
+B940;B940;1105 1171 11AB;B940;1105 1171 11AB; # (륀; 륀; 륀; 륀; 륀; ) HANGUL SYLLABLE RWIN
+B941;B941;1105 1171 11AC;B941;1105 1171 11AC; # (륁; 륁; 륁; 륁; 륁; ) HANGUL SYLLABLE RWINJ
+B942;B942;1105 1171 11AD;B942;1105 1171 11AD; # (륂; 륂; 륂; 륂; 륂; ) HANGUL SYLLABLE RWINH
+B943;B943;1105 1171 11AE;B943;1105 1171 11AE; # (륃; 륃; 륃; 륃; 륃; ) HANGUL SYLLABLE RWID
+B944;B944;1105 1171 11AF;B944;1105 1171 11AF; # (륄; 륄; 륄; 륄; 륄; ) HANGUL SYLLABLE RWIL
+B945;B945;1105 1171 11B0;B945;1105 1171 11B0; # (륅; 륅; 륅; 륅; 륅; ) HANGUL SYLLABLE RWILG
+B946;B946;1105 1171 11B1;B946;1105 1171 11B1; # (륆; 륆; 륆; 륆; 륆; ) HANGUL SYLLABLE RWILM
+B947;B947;1105 1171 11B2;B947;1105 1171 11B2; # (륇; 륇; 륇; 륇; 륇; ) HANGUL SYLLABLE RWILB
+B948;B948;1105 1171 11B3;B948;1105 1171 11B3; # (륈; 륈; 륈; 륈; 륈; ) HANGUL SYLLABLE RWILS
+B949;B949;1105 1171 11B4;B949;1105 1171 11B4; # (륉; 륉; 륉; 륉; 륉; ) HANGUL SYLLABLE RWILT
+B94A;B94A;1105 1171 11B5;B94A;1105 1171 11B5; # (륊; 륊; 륊; 륊; 륊; ) HANGUL SYLLABLE RWILP
+B94B;B94B;1105 1171 11B6;B94B;1105 1171 11B6; # (륋; 륋; 륋; 륋; 륋; ) HANGUL SYLLABLE RWILH
+B94C;B94C;1105 1171 11B7;B94C;1105 1171 11B7; # (륌; 륌; 륌; 륌; 륌; ) HANGUL SYLLABLE RWIM
+B94D;B94D;1105 1171 11B8;B94D;1105 1171 11B8; # (륍; 륍; 륍; 륍; 륍; ) HANGUL SYLLABLE RWIB
+B94E;B94E;1105 1171 11B9;B94E;1105 1171 11B9; # (륎; 륎; 륎; 륎; 륎; ) HANGUL SYLLABLE RWIBS
+B94F;B94F;1105 1171 11BA;B94F;1105 1171 11BA; # (륏; 륏; 륏; 륏; 륏; ) HANGUL SYLLABLE RWIS
+B950;B950;1105 1171 11BB;B950;1105 1171 11BB; # (륐; 륐; 륐; 륐; 륐; ) HANGUL SYLLABLE RWISS
+B951;B951;1105 1171 11BC;B951;1105 1171 11BC; # (륑; 륑; 륑; 륑; 륑; ) HANGUL SYLLABLE RWING
+B952;B952;1105 1171 11BD;B952;1105 1171 11BD; # (륒; 륒; 륒; 륒; 륒; ) HANGUL SYLLABLE RWIJ
+B953;B953;1105 1171 11BE;B953;1105 1171 11BE; # (륓; 륓; 륓; 륓; 륓; ) HANGUL SYLLABLE RWIC
+B954;B954;1105 1171 11BF;B954;1105 1171 11BF; # (륔; 륔; 륔; 륔; 륔; ) HANGUL SYLLABLE RWIK
+B955;B955;1105 1171 11C0;B955;1105 1171 11C0; # (륕; 륕; 륕; 륕; 륕; ) HANGUL SYLLABLE RWIT
+B956;B956;1105 1171 11C1;B956;1105 1171 11C1; # (륖; 륖; 륖; 륖; 륖; ) HANGUL SYLLABLE RWIP
+B957;B957;1105 1171 11C2;B957;1105 1171 11C2; # (륗; 륗; 륗; 륗; 륗; ) HANGUL SYLLABLE RWIH
+B958;B958;1105 1172;B958;1105 1172; # (류; 류; 류; 류; 류; ) HANGUL SYLLABLE RYU
+B959;B959;1105 1172 11A8;B959;1105 1172 11A8; # (륙; 륙; 륙; 륙; 륙; ) HANGUL SYLLABLE RYUG
+B95A;B95A;1105 1172 11A9;B95A;1105 1172 11A9; # (륚; 륚; 륚; 륚; 륚; ) HANGUL SYLLABLE RYUGG
+B95B;B95B;1105 1172 11AA;B95B;1105 1172 11AA; # (륛; 륛; 륛; 륛; 륛; ) HANGUL SYLLABLE RYUGS
+B95C;B95C;1105 1172 11AB;B95C;1105 1172 11AB; # (륜; 륜; 륜; 륜; 륜; ) HANGUL SYLLABLE RYUN
+B95D;B95D;1105 1172 11AC;B95D;1105 1172 11AC; # (륝; 륝; 륝; 륝; 륝; ) HANGUL SYLLABLE RYUNJ
+B95E;B95E;1105 1172 11AD;B95E;1105 1172 11AD; # (륞; 륞; 륞; 륞; 륞; ) HANGUL SYLLABLE RYUNH
+B95F;B95F;1105 1172 11AE;B95F;1105 1172 11AE; # (륟; 륟; 륟; 륟; 륟; ) HANGUL SYLLABLE RYUD
+B960;B960;1105 1172 11AF;B960;1105 1172 11AF; # (률; 률; 률; 률; 률; ) HANGUL SYLLABLE RYUL
+B961;B961;1105 1172 11B0;B961;1105 1172 11B0; # (륡; 륡; 륡; 륡; 륡; ) HANGUL SYLLABLE RYULG
+B962;B962;1105 1172 11B1;B962;1105 1172 11B1; # (륢; 륢; 륢; 륢; 륢; ) HANGUL SYLLABLE RYULM
+B963;B963;1105 1172 11B2;B963;1105 1172 11B2; # (륣; 륣; 륣; 륣; 륣; ) HANGUL SYLLABLE RYULB
+B964;B964;1105 1172 11B3;B964;1105 1172 11B3; # (륤; 륤; 륤; 륤; 륤; ) HANGUL SYLLABLE RYULS
+B965;B965;1105 1172 11B4;B965;1105 1172 11B4; # (륥; 륥; 륥; 륥; 륥; ) HANGUL SYLLABLE RYULT
+B966;B966;1105 1172 11B5;B966;1105 1172 11B5; # (륦; 륦; 륦; 륦; 륦; ) HANGUL SYLLABLE RYULP
+B967;B967;1105 1172 11B6;B967;1105 1172 11B6; # (륧; 륧; 륧; 륧; 륧; ) HANGUL SYLLABLE RYULH
+B968;B968;1105 1172 11B7;B968;1105 1172 11B7; # (륨; 륨; 륨; 륨; 륨; ) HANGUL SYLLABLE RYUM
+B969;B969;1105 1172 11B8;B969;1105 1172 11B8; # (륩; 륩; 륩; 륩; 륩; ) HANGUL SYLLABLE RYUB
+B96A;B96A;1105 1172 11B9;B96A;1105 1172 11B9; # (륪; 륪; 륪; 륪; 륪; ) HANGUL SYLLABLE RYUBS
+B96B;B96B;1105 1172 11BA;B96B;1105 1172 11BA; # (륫; 륫; 륫; 륫; 륫; ) HANGUL SYLLABLE RYUS
+B96C;B96C;1105 1172 11BB;B96C;1105 1172 11BB; # (륬; 륬; 륬; 륬; 륬; ) HANGUL SYLLABLE RYUSS
+B96D;B96D;1105 1172 11BC;B96D;1105 1172 11BC; # (륭; 륭; 륭; 륭; 륭; ) HANGUL SYLLABLE RYUNG
+B96E;B96E;1105 1172 11BD;B96E;1105 1172 11BD; # (륮; 륮; 륮; 륮; 륮; ) HANGUL SYLLABLE RYUJ
+B96F;B96F;1105 1172 11BE;B96F;1105 1172 11BE; # (륯; 륯; 륯; 륯; 륯; ) HANGUL SYLLABLE RYUC
+B970;B970;1105 1172 11BF;B970;1105 1172 11BF; # (륰; 륰; 륰; 륰; 륰; ) HANGUL SYLLABLE RYUK
+B971;B971;1105 1172 11C0;B971;1105 1172 11C0; # (륱; 륱; 륱; 륱; 륱; ) HANGUL SYLLABLE RYUT
+B972;B972;1105 1172 11C1;B972;1105 1172 11C1; # (륲; 륲; 륲; 륲; 륲; ) HANGUL SYLLABLE RYUP
+B973;B973;1105 1172 11C2;B973;1105 1172 11C2; # (륳; 륳; 륳; 륳; 륳; ) HANGUL SYLLABLE RYUH
+B974;B974;1105 1173;B974;1105 1173; # (르; 르; 르; 르; 르; ) HANGUL SYLLABLE REU
+B975;B975;1105 1173 11A8;B975;1105 1173 11A8; # (륵; 륵; 륵; 륵; 륵; ) HANGUL SYLLABLE REUG
+B976;B976;1105 1173 11A9;B976;1105 1173 11A9; # (륶; 륶; 륶; 륶; 륶; ) HANGUL SYLLABLE REUGG
+B977;B977;1105 1173 11AA;B977;1105 1173 11AA; # (륷; 륷; 륷; 륷; 륷; ) HANGUL SYLLABLE REUGS
+B978;B978;1105 1173 11AB;B978;1105 1173 11AB; # (른; 른; 른; 른; 른; ) HANGUL SYLLABLE REUN
+B979;B979;1105 1173 11AC;B979;1105 1173 11AC; # (륹; 륹; 륹; 륹; 륹; ) HANGUL SYLLABLE REUNJ
+B97A;B97A;1105 1173 11AD;B97A;1105 1173 11AD; # (륺; 륺; 륺; 륺; 륺; ) HANGUL SYLLABLE REUNH
+B97B;B97B;1105 1173 11AE;B97B;1105 1173 11AE; # (륻; 륻; 륻; 륻; 륻; ) HANGUL SYLLABLE REUD
+B97C;B97C;1105 1173 11AF;B97C;1105 1173 11AF; # (를; 를; 를; 를; 를; ) HANGUL SYLLABLE REUL
+B97D;B97D;1105 1173 11B0;B97D;1105 1173 11B0; # (륽; 륽; 륽; 륽; 륽; ) HANGUL SYLLABLE REULG
+B97E;B97E;1105 1173 11B1;B97E;1105 1173 11B1; # (륾; 륾; 륾; 륾; 륾; ) HANGUL SYLLABLE REULM
+B97F;B97F;1105 1173 11B2;B97F;1105 1173 11B2; # (륿; 륿; 륿; 륿; 륿; ) HANGUL SYLLABLE REULB
+B980;B980;1105 1173 11B3;B980;1105 1173 11B3; # (릀; 릀; 릀; 릀; 릀; ) HANGUL SYLLABLE REULS
+B981;B981;1105 1173 11B4;B981;1105 1173 11B4; # (릁; 릁; 릁; 릁; 릁; ) HANGUL SYLLABLE REULT
+B982;B982;1105 1173 11B5;B982;1105 1173 11B5; # (릂; 릂; 릂; 릂; 릂; ) HANGUL SYLLABLE REULP
+B983;B983;1105 1173 11B6;B983;1105 1173 11B6; # (릃; 릃; 릃; 릃; 릃; ) HANGUL SYLLABLE REULH
+B984;B984;1105 1173 11B7;B984;1105 1173 11B7; # (름; 름; 름; 름; 름; ) HANGUL SYLLABLE REUM
+B985;B985;1105 1173 11B8;B985;1105 1173 11B8; # (릅; 릅; 릅; 릅; 릅; ) HANGUL SYLLABLE REUB
+B986;B986;1105 1173 11B9;B986;1105 1173 11B9; # (릆; 릆; 릆; 릆; 릆; ) HANGUL SYLLABLE REUBS
+B987;B987;1105 1173 11BA;B987;1105 1173 11BA; # (릇; 릇; 릇; 릇; 릇; ) HANGUL SYLLABLE REUS
+B988;B988;1105 1173 11BB;B988;1105 1173 11BB; # (릈; 릈; 릈; 릈; 릈; ) HANGUL SYLLABLE REUSS
+B989;B989;1105 1173 11BC;B989;1105 1173 11BC; # (릉; 릉; 릉; 릉; 릉; ) HANGUL SYLLABLE REUNG
+B98A;B98A;1105 1173 11BD;B98A;1105 1173 11BD; # (릊; 릊; 릊; 릊; 릊; ) HANGUL SYLLABLE REUJ
+B98B;B98B;1105 1173 11BE;B98B;1105 1173 11BE; # (릋; 릋; 릋; 릋; 릋; ) HANGUL SYLLABLE REUC
+B98C;B98C;1105 1173 11BF;B98C;1105 1173 11BF; # (릌; 릌; 릌; 릌; 릌; ) HANGUL SYLLABLE REUK
+B98D;B98D;1105 1173 11C0;B98D;1105 1173 11C0; # (릍; 릍; 릍; 릍; 릍; ) HANGUL SYLLABLE REUT
+B98E;B98E;1105 1173 11C1;B98E;1105 1173 11C1; # (릎; 릎; 릎; 릎; 릎; ) HANGUL SYLLABLE REUP
+B98F;B98F;1105 1173 11C2;B98F;1105 1173 11C2; # (릏; 릏; 릏; 릏; 릏; ) HANGUL SYLLABLE REUH
+B990;B990;1105 1174;B990;1105 1174; # (릐; 릐; 릐; 릐; 릐; ) HANGUL SYLLABLE RYI
+B991;B991;1105 1174 11A8;B991;1105 1174 11A8; # (릑; 릑; 릑; 릑; 릑; ) HANGUL SYLLABLE RYIG
+B992;B992;1105 1174 11A9;B992;1105 1174 11A9; # (릒; 릒; 릒; 릒; 릒; ) HANGUL SYLLABLE RYIGG
+B993;B993;1105 1174 11AA;B993;1105 1174 11AA; # (릓; 릓; 릓; 릓; 릓; ) HANGUL SYLLABLE RYIGS
+B994;B994;1105 1174 11AB;B994;1105 1174 11AB; # (릔; 릔; 릔; 릔; 릔; ) HANGUL SYLLABLE RYIN
+B995;B995;1105 1174 11AC;B995;1105 1174 11AC; # (릕; 릕; 릕; 릕; 릕; ) HANGUL SYLLABLE RYINJ
+B996;B996;1105 1174 11AD;B996;1105 1174 11AD; # (릖; 릖; 릖; 릖; 릖; ) HANGUL SYLLABLE RYINH
+B997;B997;1105 1174 11AE;B997;1105 1174 11AE; # (릗; 릗; 릗; 릗; 릗; ) HANGUL SYLLABLE RYID
+B998;B998;1105 1174 11AF;B998;1105 1174 11AF; # (릘; 릘; 릘; 릘; 릘; ) HANGUL SYLLABLE RYIL
+B999;B999;1105 1174 11B0;B999;1105 1174 11B0; # (릙; 릙; 릙; 릙; 릙; ) HANGUL SYLLABLE RYILG
+B99A;B99A;1105 1174 11B1;B99A;1105 1174 11B1; # (릚; 릚; 릚; 릚; 릚; ) HANGUL SYLLABLE RYILM
+B99B;B99B;1105 1174 11B2;B99B;1105 1174 11B2; # (릛; 릛; 릛; 릛; 릛; ) HANGUL SYLLABLE RYILB
+B99C;B99C;1105 1174 11B3;B99C;1105 1174 11B3; # (릜; 릜; 릜; 릜; 릜; ) HANGUL SYLLABLE RYILS
+B99D;B99D;1105 1174 11B4;B99D;1105 1174 11B4; # (릝; 릝; 릝; 릝; 릝; ) HANGUL SYLLABLE RYILT
+B99E;B99E;1105 1174 11B5;B99E;1105 1174 11B5; # (릞; 릞; 릞; 릞; 릞; ) HANGUL SYLLABLE RYILP
+B99F;B99F;1105 1174 11B6;B99F;1105 1174 11B6; # (릟; 릟; 릟; 릟; 릟; ) HANGUL SYLLABLE RYILH
+B9A0;B9A0;1105 1174 11B7;B9A0;1105 1174 11B7; # (릠; 릠; 릠; 릠; 릠; ) HANGUL SYLLABLE RYIM
+B9A1;B9A1;1105 1174 11B8;B9A1;1105 1174 11B8; # (릡; 릡; 릡; 릡; 릡; ) HANGUL SYLLABLE RYIB
+B9A2;B9A2;1105 1174 11B9;B9A2;1105 1174 11B9; # (릢; 릢; 릢; 릢; 릢; ) HANGUL SYLLABLE RYIBS
+B9A3;B9A3;1105 1174 11BA;B9A3;1105 1174 11BA; # (릣; 릣; 릣; 릣; 릣; ) HANGUL SYLLABLE RYIS
+B9A4;B9A4;1105 1174 11BB;B9A4;1105 1174 11BB; # (릤; 릤; 릤; 릤; 릤; ) HANGUL SYLLABLE RYISS
+B9A5;B9A5;1105 1174 11BC;B9A5;1105 1174 11BC; # (릥; 릥; 릥; 릥; 릥; ) HANGUL SYLLABLE RYING
+B9A6;B9A6;1105 1174 11BD;B9A6;1105 1174 11BD; # (릦; 릦; 릦; 릦; 릦; ) HANGUL SYLLABLE RYIJ
+B9A7;B9A7;1105 1174 11BE;B9A7;1105 1174 11BE; # (릧; 릧; 릧; 릧; 릧; ) HANGUL SYLLABLE RYIC
+B9A8;B9A8;1105 1174 11BF;B9A8;1105 1174 11BF; # (릨; 릨; 릨; 릨; 릨; ) HANGUL SYLLABLE RYIK
+B9A9;B9A9;1105 1174 11C0;B9A9;1105 1174 11C0; # (릩; 릩; 릩; 릩; 릩; ) HANGUL SYLLABLE RYIT
+B9AA;B9AA;1105 1174 11C1;B9AA;1105 1174 11C1; # (릪; 릪; 릪; 릪; 릪; ) HANGUL SYLLABLE RYIP
+B9AB;B9AB;1105 1174 11C2;B9AB;1105 1174 11C2; # (릫; 릫; 릫; 릫; 릫; ) HANGUL SYLLABLE RYIH
+B9AC;B9AC;1105 1175;B9AC;1105 1175; # (리; 리; 리; 리; 리; ) HANGUL SYLLABLE RI
+B9AD;B9AD;1105 1175 11A8;B9AD;1105 1175 11A8; # (릭; 릭; 릭; 릭; 릭; ) HANGUL SYLLABLE RIG
+B9AE;B9AE;1105 1175 11A9;B9AE;1105 1175 11A9; # (릮; 릮; 릮; 릮; 릮; ) HANGUL SYLLABLE RIGG
+B9AF;B9AF;1105 1175 11AA;B9AF;1105 1175 11AA; # (릯; 릯; 릯; 릯; 릯; ) HANGUL SYLLABLE RIGS
+B9B0;B9B0;1105 1175 11AB;B9B0;1105 1175 11AB; # (린; 린; 린; 린; 린; ) HANGUL SYLLABLE RIN
+B9B1;B9B1;1105 1175 11AC;B9B1;1105 1175 11AC; # (릱; 릱; 릱; 릱; 릱; ) HANGUL SYLLABLE RINJ
+B9B2;B9B2;1105 1175 11AD;B9B2;1105 1175 11AD; # (릲; 릲; 릲; 릲; 릲; ) HANGUL SYLLABLE RINH
+B9B3;B9B3;1105 1175 11AE;B9B3;1105 1175 11AE; # (릳; 릳; 릳; 릳; 릳; ) HANGUL SYLLABLE RID
+B9B4;B9B4;1105 1175 11AF;B9B4;1105 1175 11AF; # (릴; 릴; 릴; 릴; 릴; ) HANGUL SYLLABLE RIL
+B9B5;B9B5;1105 1175 11B0;B9B5;1105 1175 11B0; # (릵; 릵; 릵; 릵; 릵; ) HANGUL SYLLABLE RILG
+B9B6;B9B6;1105 1175 11B1;B9B6;1105 1175 11B1; # (릶; 릶; 릶; 릶; 릶; ) HANGUL SYLLABLE RILM
+B9B7;B9B7;1105 1175 11B2;B9B7;1105 1175 11B2; # (릷; 릷; 릷; 릷; 릷; ) HANGUL SYLLABLE RILB
+B9B8;B9B8;1105 1175 11B3;B9B8;1105 1175 11B3; # (릸; 릸; 릸; 릸; 릸; ) HANGUL SYLLABLE RILS
+B9B9;B9B9;1105 1175 11B4;B9B9;1105 1175 11B4; # (릹; 릹; 릹; 릹; 릹; ) HANGUL SYLLABLE RILT
+B9BA;B9BA;1105 1175 11B5;B9BA;1105 1175 11B5; # (릺; 릺; 릺; 릺; 릺; ) HANGUL SYLLABLE RILP
+B9BB;B9BB;1105 1175 11B6;B9BB;1105 1175 11B6; # (릻; 릻; 릻; 릻; 릻; ) HANGUL SYLLABLE RILH
+B9BC;B9BC;1105 1175 11B7;B9BC;1105 1175 11B7; # (림; 림; 림; 림; 림; ) HANGUL SYLLABLE RIM
+B9BD;B9BD;1105 1175 11B8;B9BD;1105 1175 11B8; # (립; 립; 립; 립; 립; ) HANGUL SYLLABLE RIB
+B9BE;B9BE;1105 1175 11B9;B9BE;1105 1175 11B9; # (릾; 릾; 릾; 릾; 릾; ) HANGUL SYLLABLE RIBS
+B9BF;B9BF;1105 1175 11BA;B9BF;1105 1175 11BA; # (릿; 릿; 릿; 릿; 릿; ) HANGUL SYLLABLE RIS
+B9C0;B9C0;1105 1175 11BB;B9C0;1105 1175 11BB; # (맀; 맀; 맀; 맀; 맀; ) HANGUL SYLLABLE RISS
+B9C1;B9C1;1105 1175 11BC;B9C1;1105 1175 11BC; # (링; 링; 링; 링; 링; ) HANGUL SYLLABLE RING
+B9C2;B9C2;1105 1175 11BD;B9C2;1105 1175 11BD; # (맂; 맂; 맂; 맂; 맂; ) HANGUL SYLLABLE RIJ
+B9C3;B9C3;1105 1175 11BE;B9C3;1105 1175 11BE; # (맃; 맃; 맃; 맃; 맃; ) HANGUL SYLLABLE RIC
+B9C4;B9C4;1105 1175 11BF;B9C4;1105 1175 11BF; # (맄; 맄; 맄; 맄; 맄; ) HANGUL SYLLABLE RIK
+B9C5;B9C5;1105 1175 11C0;B9C5;1105 1175 11C0; # (맅; 맅; 맅; 맅; 맅; ) HANGUL SYLLABLE RIT
+B9C6;B9C6;1105 1175 11C1;B9C6;1105 1175 11C1; # (맆; 맆; 맆; 맆; 맆; ) HANGUL SYLLABLE RIP
+B9C7;B9C7;1105 1175 11C2;B9C7;1105 1175 11C2; # (맇; 맇; 맇; 맇; 맇; ) HANGUL SYLLABLE RIH
+B9C8;B9C8;1106 1161;B9C8;1106 1161; # (마; 마; 마; 마; 마; ) HANGUL SYLLABLE MA
+B9C9;B9C9;1106 1161 11A8;B9C9;1106 1161 11A8; # (막; 막; 막; 막; 막; ) HANGUL SYLLABLE MAG
+B9CA;B9CA;1106 1161 11A9;B9CA;1106 1161 11A9; # (맊; 맊; 맊; 맊; 맊; ) HANGUL SYLLABLE MAGG
+B9CB;B9CB;1106 1161 11AA;B9CB;1106 1161 11AA; # (맋; 맋; 맋; 맋; 맋; ) HANGUL SYLLABLE MAGS
+B9CC;B9CC;1106 1161 11AB;B9CC;1106 1161 11AB; # (만; 만; 만; 만; 만; ) HANGUL SYLLABLE MAN
+B9CD;B9CD;1106 1161 11AC;B9CD;1106 1161 11AC; # (맍; 맍; 맍; 맍; 맍; ) HANGUL SYLLABLE MANJ
+B9CE;B9CE;1106 1161 11AD;B9CE;1106 1161 11AD; # (많; 많; 많; 많; 많; ) HANGUL SYLLABLE MANH
+B9CF;B9CF;1106 1161 11AE;B9CF;1106 1161 11AE; # (맏; 맏; 맏; 맏; 맏; ) HANGUL SYLLABLE MAD
+B9D0;B9D0;1106 1161 11AF;B9D0;1106 1161 11AF; # (말; 말; 말; 말; 말; ) HANGUL SYLLABLE MAL
+B9D1;B9D1;1106 1161 11B0;B9D1;1106 1161 11B0; # (맑; 맑; 맑; 맑; 맑; ) HANGUL SYLLABLE MALG
+B9D2;B9D2;1106 1161 11B1;B9D2;1106 1161 11B1; # (맒; 맒; 맒; 맒; 맒; ) HANGUL SYLLABLE MALM
+B9D3;B9D3;1106 1161 11B2;B9D3;1106 1161 11B2; # (맓; 맓; 맓; 맓; 맓; ) HANGUL SYLLABLE MALB
+B9D4;B9D4;1106 1161 11B3;B9D4;1106 1161 11B3; # (맔; 맔; 맔; 맔; 맔; ) HANGUL SYLLABLE MALS
+B9D5;B9D5;1106 1161 11B4;B9D5;1106 1161 11B4; # (맕; 맕; 맕; 맕; 맕; ) HANGUL SYLLABLE MALT
+B9D6;B9D6;1106 1161 11B5;B9D6;1106 1161 11B5; # (맖; 맖; 맖; 맖; 맖; ) HANGUL SYLLABLE MALP
+B9D7;B9D7;1106 1161 11B6;B9D7;1106 1161 11B6; # (맗; 맗; 맗; 맗; 맗; ) HANGUL SYLLABLE MALH
+B9D8;B9D8;1106 1161 11B7;B9D8;1106 1161 11B7; # (맘; 맘; 맘; 맘; 맘; ) HANGUL SYLLABLE MAM
+B9D9;B9D9;1106 1161 11B8;B9D9;1106 1161 11B8; # (맙; 맙; 맙; 맙; 맙; ) HANGUL SYLLABLE MAB
+B9DA;B9DA;1106 1161 11B9;B9DA;1106 1161 11B9; # (맚; 맚; 맚; 맚; 맚; ) HANGUL SYLLABLE MABS
+B9DB;B9DB;1106 1161 11BA;B9DB;1106 1161 11BA; # (맛; 맛; 맛; 맛; 맛; ) HANGUL SYLLABLE MAS
+B9DC;B9DC;1106 1161 11BB;B9DC;1106 1161 11BB; # (맜; 맜; 맜; 맜; 맜; ) HANGUL SYLLABLE MASS
+B9DD;B9DD;1106 1161 11BC;B9DD;1106 1161 11BC; # (망; 망; 망; 망; 망; ) HANGUL SYLLABLE MANG
+B9DE;B9DE;1106 1161 11BD;B9DE;1106 1161 11BD; # (맞; 맞; 맞; 맞; 맞; ) HANGUL SYLLABLE MAJ
+B9DF;B9DF;1106 1161 11BE;B9DF;1106 1161 11BE; # (맟; 맟; 맟; 맟; 맟; ) HANGUL SYLLABLE MAC
+B9E0;B9E0;1106 1161 11BF;B9E0;1106 1161 11BF; # (맠; 맠; 맠; 맠; 맠; ) HANGUL SYLLABLE MAK
+B9E1;B9E1;1106 1161 11C0;B9E1;1106 1161 11C0; # (맡; 맡; 맡; 맡; 맡; ) HANGUL SYLLABLE MAT
+B9E2;B9E2;1106 1161 11C1;B9E2;1106 1161 11C1; # (맢; 맢; 맢; 맢; 맢; ) HANGUL SYLLABLE MAP
+B9E3;B9E3;1106 1161 11C2;B9E3;1106 1161 11C2; # (맣; 맣; 맣; 맣; 맣; ) HANGUL SYLLABLE MAH
+B9E4;B9E4;1106 1162;B9E4;1106 1162; # (매; 매; 매; 매; 매; ) HANGUL SYLLABLE MAE
+B9E5;B9E5;1106 1162 11A8;B9E5;1106 1162 11A8; # (맥; 맥; 맥; 맥; 맥; ) HANGUL SYLLABLE MAEG
+B9E6;B9E6;1106 1162 11A9;B9E6;1106 1162 11A9; # (맦; 맦; 맦; 맦; 맦; ) HANGUL SYLLABLE MAEGG
+B9E7;B9E7;1106 1162 11AA;B9E7;1106 1162 11AA; # (맧; 맧; 맧; 맧; 맧; ) HANGUL SYLLABLE MAEGS
+B9E8;B9E8;1106 1162 11AB;B9E8;1106 1162 11AB; # (맨; 맨; 맨; 맨; 맨; ) HANGUL SYLLABLE MAEN
+B9E9;B9E9;1106 1162 11AC;B9E9;1106 1162 11AC; # (맩; 맩; 맩; 맩; 맩; ) HANGUL SYLLABLE MAENJ
+B9EA;B9EA;1106 1162 11AD;B9EA;1106 1162 11AD; # (맪; 맪; 맪; 맪; 맪; ) HANGUL SYLLABLE MAENH
+B9EB;B9EB;1106 1162 11AE;B9EB;1106 1162 11AE; # (맫; 맫; 맫; 맫; 맫; ) HANGUL SYLLABLE MAED
+B9EC;B9EC;1106 1162 11AF;B9EC;1106 1162 11AF; # (맬; 맬; 맬; 맬; 맬; ) HANGUL SYLLABLE MAEL
+B9ED;B9ED;1106 1162 11B0;B9ED;1106 1162 11B0; # (맭; 맭; 맭; 맭; 맭; ) HANGUL SYLLABLE MAELG
+B9EE;B9EE;1106 1162 11B1;B9EE;1106 1162 11B1; # (맮; 맮; 맮; 맮; 맮; ) HANGUL SYLLABLE MAELM
+B9EF;B9EF;1106 1162 11B2;B9EF;1106 1162 11B2; # (맯; 맯; 맯; 맯; 맯; ) HANGUL SYLLABLE MAELB
+B9F0;B9F0;1106 1162 11B3;B9F0;1106 1162 11B3; # (맰; 맰; 맰; 맰; 맰; ) HANGUL SYLLABLE MAELS
+B9F1;B9F1;1106 1162 11B4;B9F1;1106 1162 11B4; # (맱; 맱; 맱; 맱; 맱; ) HANGUL SYLLABLE MAELT
+B9F2;B9F2;1106 1162 11B5;B9F2;1106 1162 11B5; # (맲; 맲; 맲; 맲; 맲; ) HANGUL SYLLABLE MAELP
+B9F3;B9F3;1106 1162 11B6;B9F3;1106 1162 11B6; # (맳; 맳; 맳; 맳; 맳; ) HANGUL SYLLABLE MAELH
+B9F4;B9F4;1106 1162 11B7;B9F4;1106 1162 11B7; # (맴; 맴; 맴; 맴; 맴; ) HANGUL SYLLABLE MAEM
+B9F5;B9F5;1106 1162 11B8;B9F5;1106 1162 11B8; # (맵; 맵; 맵; 맵; 맵; ) HANGUL SYLLABLE MAEB
+B9F6;B9F6;1106 1162 11B9;B9F6;1106 1162 11B9; # (맶; 맶; 맶; 맶; 맶; ) HANGUL SYLLABLE MAEBS
+B9F7;B9F7;1106 1162 11BA;B9F7;1106 1162 11BA; # (맷; 맷; 맷; 맷; 맷; ) HANGUL SYLLABLE MAES
+B9F8;B9F8;1106 1162 11BB;B9F8;1106 1162 11BB; # (맸; 맸; 맸; 맸; 맸; ) HANGUL SYLLABLE MAESS
+B9F9;B9F9;1106 1162 11BC;B9F9;1106 1162 11BC; # (맹; 맹; 맹; 맹; 맹; ) HANGUL SYLLABLE MAENG
+B9FA;B9FA;1106 1162 11BD;B9FA;1106 1162 11BD; # (맺; 맺; 맺; 맺; 맺; ) HANGUL SYLLABLE MAEJ
+B9FB;B9FB;1106 1162 11BE;B9FB;1106 1162 11BE; # (맻; 맻; 맻; 맻; 맻; ) HANGUL SYLLABLE MAEC
+B9FC;B9FC;1106 1162 11BF;B9FC;1106 1162 11BF; # (맼; 맼; 맼; 맼; 맼; ) HANGUL SYLLABLE MAEK
+B9FD;B9FD;1106 1162 11C0;B9FD;1106 1162 11C0; # (맽; 맽; 맽; 맽; 맽; ) HANGUL SYLLABLE MAET
+B9FE;B9FE;1106 1162 11C1;B9FE;1106 1162 11C1; # (맾; 맾; 맾; 맾; 맾; ) HANGUL SYLLABLE MAEP
+B9FF;B9FF;1106 1162 11C2;B9FF;1106 1162 11C2; # (맿; 맿; 맿; 맿; 맿; ) HANGUL SYLLABLE MAEH
+BA00;BA00;1106 1163;BA00;1106 1163; # (먀; 먀; 먀; 먀; 먀; ) HANGUL SYLLABLE MYA
+BA01;BA01;1106 1163 11A8;BA01;1106 1163 11A8; # (먁; 먁; 먁; 먁; 먁; ) HANGUL SYLLABLE MYAG
+BA02;BA02;1106 1163 11A9;BA02;1106 1163 11A9; # (먂; 먂; 먂; 먂; 먂; ) HANGUL SYLLABLE MYAGG
+BA03;BA03;1106 1163 11AA;BA03;1106 1163 11AA; # (먃; 먃; 먃; 먃; 먃; ) HANGUL SYLLABLE MYAGS
+BA04;BA04;1106 1163 11AB;BA04;1106 1163 11AB; # (먄; 먄; 먄; 먄; 먄; ) HANGUL SYLLABLE MYAN
+BA05;BA05;1106 1163 11AC;BA05;1106 1163 11AC; # (먅; 먅; 먅; 먅; 먅; ) HANGUL SYLLABLE MYANJ
+BA06;BA06;1106 1163 11AD;BA06;1106 1163 11AD; # (먆; 먆; 먆; 먆; 먆; ) HANGUL SYLLABLE MYANH
+BA07;BA07;1106 1163 11AE;BA07;1106 1163 11AE; # (먇; 먇; 먇; 먇; 먇; ) HANGUL SYLLABLE MYAD
+BA08;BA08;1106 1163 11AF;BA08;1106 1163 11AF; # (먈; 먈; 먈; 먈; 먈; ) HANGUL SYLLABLE MYAL
+BA09;BA09;1106 1163 11B0;BA09;1106 1163 11B0; # (먉; 먉; 먉; 먉; 먉; ) HANGUL SYLLABLE MYALG
+BA0A;BA0A;1106 1163 11B1;BA0A;1106 1163 11B1; # (먊; 먊; 먊; 먊; 먊; ) HANGUL SYLLABLE MYALM
+BA0B;BA0B;1106 1163 11B2;BA0B;1106 1163 11B2; # (먋; 먋; 먋; 먋; 먋; ) HANGUL SYLLABLE MYALB
+BA0C;BA0C;1106 1163 11B3;BA0C;1106 1163 11B3; # (먌; 먌; 먌; 먌; 먌; ) HANGUL SYLLABLE MYALS
+BA0D;BA0D;1106 1163 11B4;BA0D;1106 1163 11B4; # (먍; 먍; 먍; 먍; 먍; ) HANGUL SYLLABLE MYALT
+BA0E;BA0E;1106 1163 11B5;BA0E;1106 1163 11B5; # (먎; 먎; 먎; 먎; 먎; ) HANGUL SYLLABLE MYALP
+BA0F;BA0F;1106 1163 11B6;BA0F;1106 1163 11B6; # (먏; 먏; 먏; 먏; 먏; ) HANGUL SYLLABLE MYALH
+BA10;BA10;1106 1163 11B7;BA10;1106 1163 11B7; # (먐; 먐; 먐; 먐; 먐; ) HANGUL SYLLABLE MYAM
+BA11;BA11;1106 1163 11B8;BA11;1106 1163 11B8; # (먑; 먑; 먑; 먑; 먑; ) HANGUL SYLLABLE MYAB
+BA12;BA12;1106 1163 11B9;BA12;1106 1163 11B9; # (먒; 먒; 먒; 먒; 먒; ) HANGUL SYLLABLE MYABS
+BA13;BA13;1106 1163 11BA;BA13;1106 1163 11BA; # (먓; 먓; 먓; 먓; 먓; ) HANGUL SYLLABLE MYAS
+BA14;BA14;1106 1163 11BB;BA14;1106 1163 11BB; # (먔; 먔; 먔; 먔; 먔; ) HANGUL SYLLABLE MYASS
+BA15;BA15;1106 1163 11BC;BA15;1106 1163 11BC; # (먕; 먕; 먕; 먕; 먕; ) HANGUL SYLLABLE MYANG
+BA16;BA16;1106 1163 11BD;BA16;1106 1163 11BD; # (먖; 먖; 먖; 먖; 먖; ) HANGUL SYLLABLE MYAJ
+BA17;BA17;1106 1163 11BE;BA17;1106 1163 11BE; # (먗; 먗; 먗; 먗; 먗; ) HANGUL SYLLABLE MYAC
+BA18;BA18;1106 1163 11BF;BA18;1106 1163 11BF; # (먘; 먘; 먘; 먘; 먘; ) HANGUL SYLLABLE MYAK
+BA19;BA19;1106 1163 11C0;BA19;1106 1163 11C0; # (먙; 먙; 먙; 먙; 먙; ) HANGUL SYLLABLE MYAT
+BA1A;BA1A;1106 1163 11C1;BA1A;1106 1163 11C1; # (먚; 먚; 먚; 먚; 먚; ) HANGUL SYLLABLE MYAP
+BA1B;BA1B;1106 1163 11C2;BA1B;1106 1163 11C2; # (먛; 먛; 먛; 먛; 먛; ) HANGUL SYLLABLE MYAH
+BA1C;BA1C;1106 1164;BA1C;1106 1164; # (먜; 먜; 먜; 먜; 먜; ) HANGUL SYLLABLE MYAE
+BA1D;BA1D;1106 1164 11A8;BA1D;1106 1164 11A8; # (먝; 먝; 먝; 먝; 먝; ) HANGUL SYLLABLE MYAEG
+BA1E;BA1E;1106 1164 11A9;BA1E;1106 1164 11A9; # (먞; 먞; 먞; 먞; 먞; ) HANGUL SYLLABLE MYAEGG
+BA1F;BA1F;1106 1164 11AA;BA1F;1106 1164 11AA; # (먟; 먟; 먟; 먟; 먟; ) HANGUL SYLLABLE MYAEGS
+BA20;BA20;1106 1164 11AB;BA20;1106 1164 11AB; # (먠; 먠; 먠; 먠; 먠; ) HANGUL SYLLABLE MYAEN
+BA21;BA21;1106 1164 11AC;BA21;1106 1164 11AC; # (먡; 먡; 먡; 먡; 먡; ) HANGUL SYLLABLE MYAENJ
+BA22;BA22;1106 1164 11AD;BA22;1106 1164 11AD; # (먢; 먢; 먢; 먢; 먢; ) HANGUL SYLLABLE MYAENH
+BA23;BA23;1106 1164 11AE;BA23;1106 1164 11AE; # (먣; 먣; 먣; 먣; 먣; ) HANGUL SYLLABLE MYAED
+BA24;BA24;1106 1164 11AF;BA24;1106 1164 11AF; # (먤; 먤; 먤; 먤; 먤; ) HANGUL SYLLABLE MYAEL
+BA25;BA25;1106 1164 11B0;BA25;1106 1164 11B0; # (먥; 먥; 먥; 먥; 먥; ) HANGUL SYLLABLE MYAELG
+BA26;BA26;1106 1164 11B1;BA26;1106 1164 11B1; # (먦; 먦; 먦; 먦; 먦; ) HANGUL SYLLABLE MYAELM
+BA27;BA27;1106 1164 11B2;BA27;1106 1164 11B2; # (먧; 먧; 먧; 먧; 먧; ) HANGUL SYLLABLE MYAELB
+BA28;BA28;1106 1164 11B3;BA28;1106 1164 11B3; # (먨; 먨; 먨; 먨; 먨; ) HANGUL SYLLABLE MYAELS
+BA29;BA29;1106 1164 11B4;BA29;1106 1164 11B4; # (먩; 먩; 먩; 먩; 먩; ) HANGUL SYLLABLE MYAELT
+BA2A;BA2A;1106 1164 11B5;BA2A;1106 1164 11B5; # (먪; 먪; 먪; 먪; 먪; ) HANGUL SYLLABLE MYAELP
+BA2B;BA2B;1106 1164 11B6;BA2B;1106 1164 11B6; # (먫; 먫; 먫; 먫; 먫; ) HANGUL SYLLABLE MYAELH
+BA2C;BA2C;1106 1164 11B7;BA2C;1106 1164 11B7; # (먬; 먬; 먬; 먬; 먬; ) HANGUL SYLLABLE MYAEM
+BA2D;BA2D;1106 1164 11B8;BA2D;1106 1164 11B8; # (먭; 먭; 먭; 먭; 먭; ) HANGUL SYLLABLE MYAEB
+BA2E;BA2E;1106 1164 11B9;BA2E;1106 1164 11B9; # (먮; 먮; 먮; 먮; 먮; ) HANGUL SYLLABLE MYAEBS
+BA2F;BA2F;1106 1164 11BA;BA2F;1106 1164 11BA; # (먯; 먯; 먯; 먯; 먯; ) HANGUL SYLLABLE MYAES
+BA30;BA30;1106 1164 11BB;BA30;1106 1164 11BB; # (먰; 먰; 먰; 먰; 먰; ) HANGUL SYLLABLE MYAESS
+BA31;BA31;1106 1164 11BC;BA31;1106 1164 11BC; # (먱; 먱; 먱; 먱; 먱; ) HANGUL SYLLABLE MYAENG
+BA32;BA32;1106 1164 11BD;BA32;1106 1164 11BD; # (먲; 먲; 먲; 먲; 먲; ) HANGUL SYLLABLE MYAEJ
+BA33;BA33;1106 1164 11BE;BA33;1106 1164 11BE; # (먳; 먳; 먳; 먳; 먳; ) HANGUL SYLLABLE MYAEC
+BA34;BA34;1106 1164 11BF;BA34;1106 1164 11BF; # (먴; 먴; 먴; 먴; 먴; ) HANGUL SYLLABLE MYAEK
+BA35;BA35;1106 1164 11C0;BA35;1106 1164 11C0; # (먵; 먵; 먵; 먵; 먵; ) HANGUL SYLLABLE MYAET
+BA36;BA36;1106 1164 11C1;BA36;1106 1164 11C1; # (먶; 먶; 먶; 먶; 먶; ) HANGUL SYLLABLE MYAEP
+BA37;BA37;1106 1164 11C2;BA37;1106 1164 11C2; # (먷; 먷; 먷; 먷; 먷; ) HANGUL SYLLABLE MYAEH
+BA38;BA38;1106 1165;BA38;1106 1165; # (머; 머; 머; 머; 머; ) HANGUL SYLLABLE MEO
+BA39;BA39;1106 1165 11A8;BA39;1106 1165 11A8; # (먹; 먹; 먹; 먹; 먹; ) HANGUL SYLLABLE MEOG
+BA3A;BA3A;1106 1165 11A9;BA3A;1106 1165 11A9; # (먺; 먺; 먺; 먺; 먺; ) HANGUL SYLLABLE MEOGG
+BA3B;BA3B;1106 1165 11AA;BA3B;1106 1165 11AA; # (먻; 먻; 먻; 먻; 먻; ) HANGUL SYLLABLE MEOGS
+BA3C;BA3C;1106 1165 11AB;BA3C;1106 1165 11AB; # (먼; 먼; 먼; 먼; 먼; ) HANGUL SYLLABLE MEON
+BA3D;BA3D;1106 1165 11AC;BA3D;1106 1165 11AC; # (먽; 먽; 먽; 먽; 먽; ) HANGUL SYLLABLE MEONJ
+BA3E;BA3E;1106 1165 11AD;BA3E;1106 1165 11AD; # (먾; 먾; 먾; 먾; 먾; ) HANGUL SYLLABLE MEONH
+BA3F;BA3F;1106 1165 11AE;BA3F;1106 1165 11AE; # (먿; 먿; 먿; 먿; 먿; ) HANGUL SYLLABLE MEOD
+BA40;BA40;1106 1165 11AF;BA40;1106 1165 11AF; # (멀; 멀; 멀; 멀; 멀; ) HANGUL SYLLABLE MEOL
+BA41;BA41;1106 1165 11B0;BA41;1106 1165 11B0; # (멁; 멁; 멁; 멁; 멁; ) HANGUL SYLLABLE MEOLG
+BA42;BA42;1106 1165 11B1;BA42;1106 1165 11B1; # (멂; 멂; 멂; 멂; 멂; ) HANGUL SYLLABLE MEOLM
+BA43;BA43;1106 1165 11B2;BA43;1106 1165 11B2; # (멃; 멃; 멃; 멃; 멃; ) HANGUL SYLLABLE MEOLB
+BA44;BA44;1106 1165 11B3;BA44;1106 1165 11B3; # (멄; 멄; 멄; 멄; 멄; ) HANGUL SYLLABLE MEOLS
+BA45;BA45;1106 1165 11B4;BA45;1106 1165 11B4; # (멅; 멅; 멅; 멅; 멅; ) HANGUL SYLLABLE MEOLT
+BA46;BA46;1106 1165 11B5;BA46;1106 1165 11B5; # (멆; 멆; 멆; 멆; 멆; ) HANGUL SYLLABLE MEOLP
+BA47;BA47;1106 1165 11B6;BA47;1106 1165 11B6; # (멇; 멇; 멇; 멇; 멇; ) HANGUL SYLLABLE MEOLH
+BA48;BA48;1106 1165 11B7;BA48;1106 1165 11B7; # (멈; 멈; 멈; 멈; 멈; ) HANGUL SYLLABLE MEOM
+BA49;BA49;1106 1165 11B8;BA49;1106 1165 11B8; # (멉; 멉; 멉; 멉; 멉; ) HANGUL SYLLABLE MEOB
+BA4A;BA4A;1106 1165 11B9;BA4A;1106 1165 11B9; # (멊; 멊; 멊; 멊; 멊; ) HANGUL SYLLABLE MEOBS
+BA4B;BA4B;1106 1165 11BA;BA4B;1106 1165 11BA; # (멋; 멋; 멋; 멋; 멋; ) HANGUL SYLLABLE MEOS
+BA4C;BA4C;1106 1165 11BB;BA4C;1106 1165 11BB; # (멌; 멌; 멌; 멌; 멌; ) HANGUL SYLLABLE MEOSS
+BA4D;BA4D;1106 1165 11BC;BA4D;1106 1165 11BC; # (멍; 멍; 멍; 멍; 멍; ) HANGUL SYLLABLE MEONG
+BA4E;BA4E;1106 1165 11BD;BA4E;1106 1165 11BD; # (멎; 멎; 멎; 멎; 멎; ) HANGUL SYLLABLE MEOJ
+BA4F;BA4F;1106 1165 11BE;BA4F;1106 1165 11BE; # (멏; 멏; 멏; 멏; 멏; ) HANGUL SYLLABLE MEOC
+BA50;BA50;1106 1165 11BF;BA50;1106 1165 11BF; # (멐; 멐; 멐; 멐; 멐; ) HANGUL SYLLABLE MEOK
+BA51;BA51;1106 1165 11C0;BA51;1106 1165 11C0; # (멑; 멑; 멑; 멑; 멑; ) HANGUL SYLLABLE MEOT
+BA52;BA52;1106 1165 11C1;BA52;1106 1165 11C1; # (멒; 멒; 멒; 멒; 멒; ) HANGUL SYLLABLE MEOP
+BA53;BA53;1106 1165 11C2;BA53;1106 1165 11C2; # (멓; 멓; 멓; 멓; 멓; ) HANGUL SYLLABLE MEOH
+BA54;BA54;1106 1166;BA54;1106 1166; # (메; 메; 메; 메; 메; ) HANGUL SYLLABLE ME
+BA55;BA55;1106 1166 11A8;BA55;1106 1166 11A8; # (멕; 멕; 멕; 멕; 멕; ) HANGUL SYLLABLE MEG
+BA56;BA56;1106 1166 11A9;BA56;1106 1166 11A9; # (멖; 멖; 멖; 멖; 멖; ) HANGUL SYLLABLE MEGG
+BA57;BA57;1106 1166 11AA;BA57;1106 1166 11AA; # (멗; 멗; 멗; 멗; 멗; ) HANGUL SYLLABLE MEGS
+BA58;BA58;1106 1166 11AB;BA58;1106 1166 11AB; # (멘; 멘; 멘; 멘; 멘; ) HANGUL SYLLABLE MEN
+BA59;BA59;1106 1166 11AC;BA59;1106 1166 11AC; # (멙; 멙; 멙; 멙; 멙; ) HANGUL SYLLABLE MENJ
+BA5A;BA5A;1106 1166 11AD;BA5A;1106 1166 11AD; # (멚; 멚; 멚; 멚; 멚; ) HANGUL SYLLABLE MENH
+BA5B;BA5B;1106 1166 11AE;BA5B;1106 1166 11AE; # (멛; 멛; 멛; 멛; 멛; ) HANGUL SYLLABLE MED
+BA5C;BA5C;1106 1166 11AF;BA5C;1106 1166 11AF; # (멜; 멜; 멜; 멜; 멜; ) HANGUL SYLLABLE MEL
+BA5D;BA5D;1106 1166 11B0;BA5D;1106 1166 11B0; # (멝; 멝; 멝; 멝; 멝; ) HANGUL SYLLABLE MELG
+BA5E;BA5E;1106 1166 11B1;BA5E;1106 1166 11B1; # (멞; 멞; 멞; 멞; 멞; ) HANGUL SYLLABLE MELM
+BA5F;BA5F;1106 1166 11B2;BA5F;1106 1166 11B2; # (멟; 멟; 멟; 멟; 멟; ) HANGUL SYLLABLE MELB
+BA60;BA60;1106 1166 11B3;BA60;1106 1166 11B3; # (멠; 멠; 멠; 멠; 멠; ) HANGUL SYLLABLE MELS
+BA61;BA61;1106 1166 11B4;BA61;1106 1166 11B4; # (멡; 멡; 멡; 멡; 멡; ) HANGUL SYLLABLE MELT
+BA62;BA62;1106 1166 11B5;BA62;1106 1166 11B5; # (멢; 멢; 멢; 멢; 멢; ) HANGUL SYLLABLE MELP
+BA63;BA63;1106 1166 11B6;BA63;1106 1166 11B6; # (멣; 멣; 멣; 멣; 멣; ) HANGUL SYLLABLE MELH
+BA64;BA64;1106 1166 11B7;BA64;1106 1166 11B7; # (멤; 멤; 멤; 멤; 멤; ) HANGUL SYLLABLE MEM
+BA65;BA65;1106 1166 11B8;BA65;1106 1166 11B8; # (멥; 멥; 멥; 멥; 멥; ) HANGUL SYLLABLE MEB
+BA66;BA66;1106 1166 11B9;BA66;1106 1166 11B9; # (멦; 멦; 멦; 멦; 멦; ) HANGUL SYLLABLE MEBS
+BA67;BA67;1106 1166 11BA;BA67;1106 1166 11BA; # (멧; 멧; 멧; 멧; 멧; ) HANGUL SYLLABLE MES
+BA68;BA68;1106 1166 11BB;BA68;1106 1166 11BB; # (멨; 멨; 멨; 멨; 멨; ) HANGUL SYLLABLE MESS
+BA69;BA69;1106 1166 11BC;BA69;1106 1166 11BC; # (멩; 멩; 멩; 멩; 멩; ) HANGUL SYLLABLE MENG
+BA6A;BA6A;1106 1166 11BD;BA6A;1106 1166 11BD; # (멪; 멪; 멪; 멪; 멪; ) HANGUL SYLLABLE MEJ
+BA6B;BA6B;1106 1166 11BE;BA6B;1106 1166 11BE; # (멫; 멫; 멫; 멫; 멫; ) HANGUL SYLLABLE MEC
+BA6C;BA6C;1106 1166 11BF;BA6C;1106 1166 11BF; # (멬; 멬; 멬; 멬; 멬; ) HANGUL SYLLABLE MEK
+BA6D;BA6D;1106 1166 11C0;BA6D;1106 1166 11C0; # (멭; 멭; 멭; 멭; 멭; ) HANGUL SYLLABLE MET
+BA6E;BA6E;1106 1166 11C1;BA6E;1106 1166 11C1; # (멮; 멮; 멮; 멮; 멮; ) HANGUL SYLLABLE MEP
+BA6F;BA6F;1106 1166 11C2;BA6F;1106 1166 11C2; # (멯; 멯; 멯; 멯; 멯; ) HANGUL SYLLABLE MEH
+BA70;BA70;1106 1167;BA70;1106 1167; # (며; 며; 며; 며; 며; ) HANGUL SYLLABLE MYEO
+BA71;BA71;1106 1167 11A8;BA71;1106 1167 11A8; # (멱; 멱; 멱; 멱; 멱; ) HANGUL SYLLABLE MYEOG
+BA72;BA72;1106 1167 11A9;BA72;1106 1167 11A9; # (멲; 멲; 멲; 멲; 멲; ) HANGUL SYLLABLE MYEOGG
+BA73;BA73;1106 1167 11AA;BA73;1106 1167 11AA; # (멳; 멳; 멳; 멳; 멳; ) HANGUL SYLLABLE MYEOGS
+BA74;BA74;1106 1167 11AB;BA74;1106 1167 11AB; # (면; 면; 면; 면; 면; ) HANGUL SYLLABLE MYEON
+BA75;BA75;1106 1167 11AC;BA75;1106 1167 11AC; # (멵; 멵; 멵; 멵; 멵; ) HANGUL SYLLABLE MYEONJ
+BA76;BA76;1106 1167 11AD;BA76;1106 1167 11AD; # (멶; 멶; 멶; 멶; 멶; ) HANGUL SYLLABLE MYEONH
+BA77;BA77;1106 1167 11AE;BA77;1106 1167 11AE; # (멷; 멷; 멷; 멷; 멷; ) HANGUL SYLLABLE MYEOD
+BA78;BA78;1106 1167 11AF;BA78;1106 1167 11AF; # (멸; 멸; 멸; 멸; 멸; ) HANGUL SYLLABLE MYEOL
+BA79;BA79;1106 1167 11B0;BA79;1106 1167 11B0; # (멹; 멹; 멹; 멹; 멹; ) HANGUL SYLLABLE MYEOLG
+BA7A;BA7A;1106 1167 11B1;BA7A;1106 1167 11B1; # (멺; 멺; 멺; 멺; 멺; ) HANGUL SYLLABLE MYEOLM
+BA7B;BA7B;1106 1167 11B2;BA7B;1106 1167 11B2; # (멻; 멻; 멻; 멻; 멻; ) HANGUL SYLLABLE MYEOLB
+BA7C;BA7C;1106 1167 11B3;BA7C;1106 1167 11B3; # (멼; 멼; 멼; 멼; 멼; ) HANGUL SYLLABLE MYEOLS
+BA7D;BA7D;1106 1167 11B4;BA7D;1106 1167 11B4; # (멽; 멽; 멽; 멽; 멽; ) HANGUL SYLLABLE MYEOLT
+BA7E;BA7E;1106 1167 11B5;BA7E;1106 1167 11B5; # (멾; 멾; 멾; 멾; 멾; ) HANGUL SYLLABLE MYEOLP
+BA7F;BA7F;1106 1167 11B6;BA7F;1106 1167 11B6; # (멿; 멿; 멿; 멿; 멿; ) HANGUL SYLLABLE MYEOLH
+BA80;BA80;1106 1167 11B7;BA80;1106 1167 11B7; # (몀; 몀; 몀; 몀; 몀; ) HANGUL SYLLABLE MYEOM
+BA81;BA81;1106 1167 11B8;BA81;1106 1167 11B8; # (몁; 몁; 몁; 몁; 몁; ) HANGUL SYLLABLE MYEOB
+BA82;BA82;1106 1167 11B9;BA82;1106 1167 11B9; # (몂; 몂; 몂; 몂; 몂; ) HANGUL SYLLABLE MYEOBS
+BA83;BA83;1106 1167 11BA;BA83;1106 1167 11BA; # (몃; 몃; 몃; 몃; 몃; ) HANGUL SYLLABLE MYEOS
+BA84;BA84;1106 1167 11BB;BA84;1106 1167 11BB; # (몄; 몄; 몄; 몄; 몄; ) HANGUL SYLLABLE MYEOSS
+BA85;BA85;1106 1167 11BC;BA85;1106 1167 11BC; # (명; 명; 명; 명; 명; ) HANGUL SYLLABLE MYEONG
+BA86;BA86;1106 1167 11BD;BA86;1106 1167 11BD; # (몆; 몆; 몆; 몆; 몆; ) HANGUL SYLLABLE MYEOJ
+BA87;BA87;1106 1167 11BE;BA87;1106 1167 11BE; # (몇; 몇; 몇; 몇; 몇; ) HANGUL SYLLABLE MYEOC
+BA88;BA88;1106 1167 11BF;BA88;1106 1167 11BF; # (몈; 몈; 몈; 몈; 몈; ) HANGUL SYLLABLE MYEOK
+BA89;BA89;1106 1167 11C0;BA89;1106 1167 11C0; # (몉; 몉; 몉; 몉; 몉; ) HANGUL SYLLABLE MYEOT
+BA8A;BA8A;1106 1167 11C1;BA8A;1106 1167 11C1; # (몊; 몊; 몊; 몊; 몊; ) HANGUL SYLLABLE MYEOP
+BA8B;BA8B;1106 1167 11C2;BA8B;1106 1167 11C2; # (몋; 몋; 몋; 몋; 몋; ) HANGUL SYLLABLE MYEOH
+BA8C;BA8C;1106 1168;BA8C;1106 1168; # (몌; 몌; 몌; 몌; 몌; ) HANGUL SYLLABLE MYE
+BA8D;BA8D;1106 1168 11A8;BA8D;1106 1168 11A8; # (몍; 몍; 몍; 몍; 몍; ) HANGUL SYLLABLE MYEG
+BA8E;BA8E;1106 1168 11A9;BA8E;1106 1168 11A9; # (몎; 몎; 몎; 몎; 몎; ) HANGUL SYLLABLE MYEGG
+BA8F;BA8F;1106 1168 11AA;BA8F;1106 1168 11AA; # (몏; 몏; 몏; 몏; 몏; ) HANGUL SYLLABLE MYEGS
+BA90;BA90;1106 1168 11AB;BA90;1106 1168 11AB; # (몐; 몐; 몐; 몐; 몐; ) HANGUL SYLLABLE MYEN
+BA91;BA91;1106 1168 11AC;BA91;1106 1168 11AC; # (몑; 몑; 몑; 몑; 몑; ) HANGUL SYLLABLE MYENJ
+BA92;BA92;1106 1168 11AD;BA92;1106 1168 11AD; # (몒; 몒; 몒; 몒; 몒; ) HANGUL SYLLABLE MYENH
+BA93;BA93;1106 1168 11AE;BA93;1106 1168 11AE; # (몓; 몓; 몓; 몓; 몓; ) HANGUL SYLLABLE MYED
+BA94;BA94;1106 1168 11AF;BA94;1106 1168 11AF; # (몔; 몔; 몔; 몔; 몔; ) HANGUL SYLLABLE MYEL
+BA95;BA95;1106 1168 11B0;BA95;1106 1168 11B0; # (몕; 몕; 몕; 몕; 몕; ) HANGUL SYLLABLE MYELG
+BA96;BA96;1106 1168 11B1;BA96;1106 1168 11B1; # (몖; 몖; 몖; 몖; 몖; ) HANGUL SYLLABLE MYELM
+BA97;BA97;1106 1168 11B2;BA97;1106 1168 11B2; # (몗; 몗; 몗; 몗; 몗; ) HANGUL SYLLABLE MYELB
+BA98;BA98;1106 1168 11B3;BA98;1106 1168 11B3; # (몘; 몘; 몘; 몘; 몘; ) HANGUL SYLLABLE MYELS
+BA99;BA99;1106 1168 11B4;BA99;1106 1168 11B4; # (몙; 몙; 몙; 몙; 몙; ) HANGUL SYLLABLE MYELT
+BA9A;BA9A;1106 1168 11B5;BA9A;1106 1168 11B5; # (몚; 몚; 몚; 몚; 몚; ) HANGUL SYLLABLE MYELP
+BA9B;BA9B;1106 1168 11B6;BA9B;1106 1168 11B6; # (몛; 몛; 몛; 몛; 몛; ) HANGUL SYLLABLE MYELH
+BA9C;BA9C;1106 1168 11B7;BA9C;1106 1168 11B7; # (몜; 몜; 몜; 몜; 몜; ) HANGUL SYLLABLE MYEM
+BA9D;BA9D;1106 1168 11B8;BA9D;1106 1168 11B8; # (몝; 몝; 몝; 몝; 몝; ) HANGUL SYLLABLE MYEB
+BA9E;BA9E;1106 1168 11B9;BA9E;1106 1168 11B9; # (몞; 몞; 몞; 몞; 몞; ) HANGUL SYLLABLE MYEBS
+BA9F;BA9F;1106 1168 11BA;BA9F;1106 1168 11BA; # (몟; 몟; 몟; 몟; 몟; ) HANGUL SYLLABLE MYES
+BAA0;BAA0;1106 1168 11BB;BAA0;1106 1168 11BB; # (몠; 몠; 몠; 몠; 몠; ) HANGUL SYLLABLE MYESS
+BAA1;BAA1;1106 1168 11BC;BAA1;1106 1168 11BC; # (몡; 몡; 몡; 몡; 몡; ) HANGUL SYLLABLE MYENG
+BAA2;BAA2;1106 1168 11BD;BAA2;1106 1168 11BD; # (몢; 몢; 몢; 몢; 몢; ) HANGUL SYLLABLE MYEJ
+BAA3;BAA3;1106 1168 11BE;BAA3;1106 1168 11BE; # (몣; 몣; 몣; 몣; 몣; ) HANGUL SYLLABLE MYEC
+BAA4;BAA4;1106 1168 11BF;BAA4;1106 1168 11BF; # (몤; 몤; 몤; 몤; 몤; ) HANGUL SYLLABLE MYEK
+BAA5;BAA5;1106 1168 11C0;BAA5;1106 1168 11C0; # (몥; 몥; 몥; 몥; 몥; ) HANGUL SYLLABLE MYET
+BAA6;BAA6;1106 1168 11C1;BAA6;1106 1168 11C1; # (몦; 몦; 몦; 몦; 몦; ) HANGUL SYLLABLE MYEP
+BAA7;BAA7;1106 1168 11C2;BAA7;1106 1168 11C2; # (몧; 몧; 몧; 몧; 몧; ) HANGUL SYLLABLE MYEH
+BAA8;BAA8;1106 1169;BAA8;1106 1169; # (모; 모; 모; 모; 모; ) HANGUL SYLLABLE MO
+BAA9;BAA9;1106 1169 11A8;BAA9;1106 1169 11A8; # (목; 목; 목; 목; 목; ) HANGUL SYLLABLE MOG
+BAAA;BAAA;1106 1169 11A9;BAAA;1106 1169 11A9; # (몪; 몪; 몪; 몪; 몪; ) HANGUL SYLLABLE MOGG
+BAAB;BAAB;1106 1169 11AA;BAAB;1106 1169 11AA; # (몫; 몫; 몫; 몫; 몫; ) HANGUL SYLLABLE MOGS
+BAAC;BAAC;1106 1169 11AB;BAAC;1106 1169 11AB; # (몬; 몬; 몬; 몬; 몬; ) HANGUL SYLLABLE MON
+BAAD;BAAD;1106 1169 11AC;BAAD;1106 1169 11AC; # (몭; 몭; 몭; 몭; 몭; ) HANGUL SYLLABLE MONJ
+BAAE;BAAE;1106 1169 11AD;BAAE;1106 1169 11AD; # (몮; 몮; 몮; 몮; 몮; ) HANGUL SYLLABLE MONH
+BAAF;BAAF;1106 1169 11AE;BAAF;1106 1169 11AE; # (몯; 몯; 몯; 몯; 몯; ) HANGUL SYLLABLE MOD
+BAB0;BAB0;1106 1169 11AF;BAB0;1106 1169 11AF; # (몰; 몰; 몰; 몰; 몰; ) HANGUL SYLLABLE MOL
+BAB1;BAB1;1106 1169 11B0;BAB1;1106 1169 11B0; # (몱; 몱; 몱; 몱; 몱; ) HANGUL SYLLABLE MOLG
+BAB2;BAB2;1106 1169 11B1;BAB2;1106 1169 11B1; # (몲; 몲; 몲; 몲; 몲; ) HANGUL SYLLABLE MOLM
+BAB3;BAB3;1106 1169 11B2;BAB3;1106 1169 11B2; # (몳; 몳; 몳; 몳; 몳; ) HANGUL SYLLABLE MOLB
+BAB4;BAB4;1106 1169 11B3;BAB4;1106 1169 11B3; # (몴; 몴; 몴; 몴; 몴; ) HANGUL SYLLABLE MOLS
+BAB5;BAB5;1106 1169 11B4;BAB5;1106 1169 11B4; # (몵; 몵; 몵; 몵; 몵; ) HANGUL SYLLABLE MOLT
+BAB6;BAB6;1106 1169 11B5;BAB6;1106 1169 11B5; # (몶; 몶; 몶; 몶; 몶; ) HANGUL SYLLABLE MOLP
+BAB7;BAB7;1106 1169 11B6;BAB7;1106 1169 11B6; # (몷; 몷; 몷; 몷; 몷; ) HANGUL SYLLABLE MOLH
+BAB8;BAB8;1106 1169 11B7;BAB8;1106 1169 11B7; # (몸; 몸; 몸; 몸; 몸; ) HANGUL SYLLABLE MOM
+BAB9;BAB9;1106 1169 11B8;BAB9;1106 1169 11B8; # (몹; 몹; 몹; 몹; 몹; ) HANGUL SYLLABLE MOB
+BABA;BABA;1106 1169 11B9;BABA;1106 1169 11B9; # (몺; 몺; 몺; 몺; 몺; ) HANGUL SYLLABLE MOBS
+BABB;BABB;1106 1169 11BA;BABB;1106 1169 11BA; # (못; 못; 못; 못; 못; ) HANGUL SYLLABLE MOS
+BABC;BABC;1106 1169 11BB;BABC;1106 1169 11BB; # (몼; 몼; 몼; 몼; 몼; ) HANGUL SYLLABLE MOSS
+BABD;BABD;1106 1169 11BC;BABD;1106 1169 11BC; # (몽; 몽; 몽; 몽; 몽; ) HANGUL SYLLABLE MONG
+BABE;BABE;1106 1169 11BD;BABE;1106 1169 11BD; # (몾; 몾; 몾; 몾; 몾; ) HANGUL SYLLABLE MOJ
+BABF;BABF;1106 1169 11BE;BABF;1106 1169 11BE; # (몿; 몿; 몿; 몿; 몿; ) HANGUL SYLLABLE MOC
+BAC0;BAC0;1106 1169 11BF;BAC0;1106 1169 11BF; # (뫀; 뫀; 뫀; 뫀; 뫀; ) HANGUL SYLLABLE MOK
+BAC1;BAC1;1106 1169 11C0;BAC1;1106 1169 11C0; # (뫁; 뫁; 뫁; 뫁; 뫁; ) HANGUL SYLLABLE MOT
+BAC2;BAC2;1106 1169 11C1;BAC2;1106 1169 11C1; # (뫂; 뫂; 뫂; 뫂; 뫂; ) HANGUL SYLLABLE MOP
+BAC3;BAC3;1106 1169 11C2;BAC3;1106 1169 11C2; # (뫃; 뫃; 뫃; 뫃; 뫃; ) HANGUL SYLLABLE MOH
+BAC4;BAC4;1106 116A;BAC4;1106 116A; # (뫄; 뫄; 뫄; 뫄; 뫄; ) HANGUL SYLLABLE MWA
+BAC5;BAC5;1106 116A 11A8;BAC5;1106 116A 11A8; # (뫅; 뫅; 뫅; 뫅; 뫅; ) HANGUL SYLLABLE MWAG
+BAC6;BAC6;1106 116A 11A9;BAC6;1106 116A 11A9; # (뫆; 뫆; 뫆; 뫆; 뫆; ) HANGUL SYLLABLE MWAGG
+BAC7;BAC7;1106 116A 11AA;BAC7;1106 116A 11AA; # (뫇; 뫇; 뫇; 뫇; 뫇; ) HANGUL SYLLABLE MWAGS
+BAC8;BAC8;1106 116A 11AB;BAC8;1106 116A 11AB; # (뫈; 뫈; 뫈; 뫈; 뫈; ) HANGUL SYLLABLE MWAN
+BAC9;BAC9;1106 116A 11AC;BAC9;1106 116A 11AC; # (뫉; 뫉; 뫉; 뫉; 뫉; ) HANGUL SYLLABLE MWANJ
+BACA;BACA;1106 116A 11AD;BACA;1106 116A 11AD; # (뫊; 뫊; 뫊; 뫊; 뫊; ) HANGUL SYLLABLE MWANH
+BACB;BACB;1106 116A 11AE;BACB;1106 116A 11AE; # (뫋; 뫋; 뫋; 뫋; 뫋; ) HANGUL SYLLABLE MWAD
+BACC;BACC;1106 116A 11AF;BACC;1106 116A 11AF; # (뫌; 뫌; 뫌; 뫌; 뫌; ) HANGUL SYLLABLE MWAL
+BACD;BACD;1106 116A 11B0;BACD;1106 116A 11B0; # (뫍; 뫍; 뫍; 뫍; 뫍; ) HANGUL SYLLABLE MWALG
+BACE;BACE;1106 116A 11B1;BACE;1106 116A 11B1; # (뫎; 뫎; 뫎; 뫎; 뫎; ) HANGUL SYLLABLE MWALM
+BACF;BACF;1106 116A 11B2;BACF;1106 116A 11B2; # (뫏; 뫏; 뫏; 뫏; 뫏; ) HANGUL SYLLABLE MWALB
+BAD0;BAD0;1106 116A 11B3;BAD0;1106 116A 11B3; # (뫐; 뫐; 뫐; 뫐; 뫐; ) HANGUL SYLLABLE MWALS
+BAD1;BAD1;1106 116A 11B4;BAD1;1106 116A 11B4; # (뫑; 뫑; 뫑; 뫑; 뫑; ) HANGUL SYLLABLE MWALT
+BAD2;BAD2;1106 116A 11B5;BAD2;1106 116A 11B5; # (뫒; 뫒; 뫒; 뫒; 뫒; ) HANGUL SYLLABLE MWALP
+BAD3;BAD3;1106 116A 11B6;BAD3;1106 116A 11B6; # (뫓; 뫓; 뫓; 뫓; 뫓; ) HANGUL SYLLABLE MWALH
+BAD4;BAD4;1106 116A 11B7;BAD4;1106 116A 11B7; # (뫔; 뫔; 뫔; 뫔; 뫔; ) HANGUL SYLLABLE MWAM
+BAD5;BAD5;1106 116A 11B8;BAD5;1106 116A 11B8; # (뫕; 뫕; 뫕; 뫕; 뫕; ) HANGUL SYLLABLE MWAB
+BAD6;BAD6;1106 116A 11B9;BAD6;1106 116A 11B9; # (뫖; 뫖; 뫖; 뫖; 뫖; ) HANGUL SYLLABLE MWABS
+BAD7;BAD7;1106 116A 11BA;BAD7;1106 116A 11BA; # (뫗; 뫗; 뫗; 뫗; 뫗; ) HANGUL SYLLABLE MWAS
+BAD8;BAD8;1106 116A 11BB;BAD8;1106 116A 11BB; # (뫘; 뫘; 뫘; 뫘; 뫘; ) HANGUL SYLLABLE MWASS
+BAD9;BAD9;1106 116A 11BC;BAD9;1106 116A 11BC; # (뫙; 뫙; 뫙; 뫙; 뫙; ) HANGUL SYLLABLE MWANG
+BADA;BADA;1106 116A 11BD;BADA;1106 116A 11BD; # (뫚; 뫚; 뫚; 뫚; 뫚; ) HANGUL SYLLABLE MWAJ
+BADB;BADB;1106 116A 11BE;BADB;1106 116A 11BE; # (뫛; 뫛; 뫛; 뫛; 뫛; ) HANGUL SYLLABLE MWAC
+BADC;BADC;1106 116A 11BF;BADC;1106 116A 11BF; # (뫜; 뫜; 뫜; 뫜; 뫜; ) HANGUL SYLLABLE MWAK
+BADD;BADD;1106 116A 11C0;BADD;1106 116A 11C0; # (뫝; 뫝; 뫝; 뫝; 뫝; ) HANGUL SYLLABLE MWAT
+BADE;BADE;1106 116A 11C1;BADE;1106 116A 11C1; # (뫞; 뫞; 뫞; 뫞; 뫞; ) HANGUL SYLLABLE MWAP
+BADF;BADF;1106 116A 11C2;BADF;1106 116A 11C2; # (뫟; 뫟; 뫟; 뫟; 뫟; ) HANGUL SYLLABLE MWAH
+BAE0;BAE0;1106 116B;BAE0;1106 116B; # (뫠; 뫠; 뫠; 뫠; 뫠; ) HANGUL SYLLABLE MWAE
+BAE1;BAE1;1106 116B 11A8;BAE1;1106 116B 11A8; # (뫡; 뫡; 뫡; 뫡; 뫡; ) HANGUL SYLLABLE MWAEG
+BAE2;BAE2;1106 116B 11A9;BAE2;1106 116B 11A9; # (뫢; 뫢; 뫢; 뫢; 뫢; ) HANGUL SYLLABLE MWAEGG
+BAE3;BAE3;1106 116B 11AA;BAE3;1106 116B 11AA; # (뫣; 뫣; 뫣; 뫣; 뫣; ) HANGUL SYLLABLE MWAEGS
+BAE4;BAE4;1106 116B 11AB;BAE4;1106 116B 11AB; # (뫤; 뫤; 뫤; 뫤; 뫤; ) HANGUL SYLLABLE MWAEN
+BAE5;BAE5;1106 116B 11AC;BAE5;1106 116B 11AC; # (뫥; 뫥; 뫥; 뫥; 뫥; ) HANGUL SYLLABLE MWAENJ
+BAE6;BAE6;1106 116B 11AD;BAE6;1106 116B 11AD; # (뫦; 뫦; 뫦; 뫦; 뫦; ) HANGUL SYLLABLE MWAENH
+BAE7;BAE7;1106 116B 11AE;BAE7;1106 116B 11AE; # (뫧; 뫧; 뫧; 뫧; 뫧; ) HANGUL SYLLABLE MWAED
+BAE8;BAE8;1106 116B 11AF;BAE8;1106 116B 11AF; # (뫨; 뫨; 뫨; 뫨; 뫨; ) HANGUL SYLLABLE MWAEL
+BAE9;BAE9;1106 116B 11B0;BAE9;1106 116B 11B0; # (뫩; 뫩; 뫩; 뫩; 뫩; ) HANGUL SYLLABLE MWAELG
+BAEA;BAEA;1106 116B 11B1;BAEA;1106 116B 11B1; # (뫪; 뫪; 뫪; 뫪; 뫪; ) HANGUL SYLLABLE MWAELM
+BAEB;BAEB;1106 116B 11B2;BAEB;1106 116B 11B2; # (뫫; 뫫; 뫫; 뫫; 뫫; ) HANGUL SYLLABLE MWAELB
+BAEC;BAEC;1106 116B 11B3;BAEC;1106 116B 11B3; # (뫬; 뫬; 뫬; 뫬; 뫬; ) HANGUL SYLLABLE MWAELS
+BAED;BAED;1106 116B 11B4;BAED;1106 116B 11B4; # (뫭; 뫭; 뫭; 뫭; 뫭; ) HANGUL SYLLABLE MWAELT
+BAEE;BAEE;1106 116B 11B5;BAEE;1106 116B 11B5; # (뫮; 뫮; 뫮; 뫮; 뫮; ) HANGUL SYLLABLE MWAELP
+BAEF;BAEF;1106 116B 11B6;BAEF;1106 116B 11B6; # (뫯; 뫯; 뫯; 뫯; 뫯; ) HANGUL SYLLABLE MWAELH
+BAF0;BAF0;1106 116B 11B7;BAF0;1106 116B 11B7; # (뫰; 뫰; 뫰; 뫰; 뫰; ) HANGUL SYLLABLE MWAEM
+BAF1;BAF1;1106 116B 11B8;BAF1;1106 116B 11B8; # (뫱; 뫱; 뫱; 뫱; 뫱; ) HANGUL SYLLABLE MWAEB
+BAF2;BAF2;1106 116B 11B9;BAF2;1106 116B 11B9; # (뫲; 뫲; 뫲; 뫲; 뫲; ) HANGUL SYLLABLE MWAEBS
+BAF3;BAF3;1106 116B 11BA;BAF3;1106 116B 11BA; # (뫳; 뫳; 뫳; 뫳; 뫳; ) HANGUL SYLLABLE MWAES
+BAF4;BAF4;1106 116B 11BB;BAF4;1106 116B 11BB; # (뫴; 뫴; 뫴; 뫴; 뫴; ) HANGUL SYLLABLE MWAESS
+BAF5;BAF5;1106 116B 11BC;BAF5;1106 116B 11BC; # (뫵; 뫵; 뫵; 뫵; 뫵; ) HANGUL SYLLABLE MWAENG
+BAF6;BAF6;1106 116B 11BD;BAF6;1106 116B 11BD; # (뫶; 뫶; 뫶; 뫶; 뫶; ) HANGUL SYLLABLE MWAEJ
+BAF7;BAF7;1106 116B 11BE;BAF7;1106 116B 11BE; # (뫷; 뫷; 뫷; 뫷; 뫷; ) HANGUL SYLLABLE MWAEC
+BAF8;BAF8;1106 116B 11BF;BAF8;1106 116B 11BF; # (뫸; 뫸; 뫸; 뫸; 뫸; ) HANGUL SYLLABLE MWAEK
+BAF9;BAF9;1106 116B 11C0;BAF9;1106 116B 11C0; # (뫹; 뫹; 뫹; 뫹; 뫹; ) HANGUL SYLLABLE MWAET
+BAFA;BAFA;1106 116B 11C1;BAFA;1106 116B 11C1; # (뫺; 뫺; 뫺; 뫺; 뫺; ) HANGUL SYLLABLE MWAEP
+BAFB;BAFB;1106 116B 11C2;BAFB;1106 116B 11C2; # (뫻; 뫻; 뫻; 뫻; 뫻; ) HANGUL SYLLABLE MWAEH
+BAFC;BAFC;1106 116C;BAFC;1106 116C; # (뫼; 뫼; 뫼; 뫼; 뫼; ) HANGUL SYLLABLE MOE
+BAFD;BAFD;1106 116C 11A8;BAFD;1106 116C 11A8; # (뫽; 뫽; 뫽; 뫽; 뫽; ) HANGUL SYLLABLE MOEG
+BAFE;BAFE;1106 116C 11A9;BAFE;1106 116C 11A9; # (뫾; 뫾; 뫾; 뫾; 뫾; ) HANGUL SYLLABLE MOEGG
+BAFF;BAFF;1106 116C 11AA;BAFF;1106 116C 11AA; # (뫿; 뫿; 뫿; 뫿; 뫿; ) HANGUL SYLLABLE MOEGS
+BB00;BB00;1106 116C 11AB;BB00;1106 116C 11AB; # (묀; 묀; 묀; 묀; 묀; ) HANGUL SYLLABLE MOEN
+BB01;BB01;1106 116C 11AC;BB01;1106 116C 11AC; # (묁; 묁; 묁; 묁; 묁; ) HANGUL SYLLABLE MOENJ
+BB02;BB02;1106 116C 11AD;BB02;1106 116C 11AD; # (묂; 묂; 묂; 묂; 묂; ) HANGUL SYLLABLE MOENH
+BB03;BB03;1106 116C 11AE;BB03;1106 116C 11AE; # (묃; 묃; 묃; 묃; 묃; ) HANGUL SYLLABLE MOED
+BB04;BB04;1106 116C 11AF;BB04;1106 116C 11AF; # (묄; 묄; 묄; 묄; 묄; ) HANGUL SYLLABLE MOEL
+BB05;BB05;1106 116C 11B0;BB05;1106 116C 11B0; # (묅; 묅; 묅; 묅; 묅; ) HANGUL SYLLABLE MOELG
+BB06;BB06;1106 116C 11B1;BB06;1106 116C 11B1; # (묆; 묆; 묆; 묆; 묆; ) HANGUL SYLLABLE MOELM
+BB07;BB07;1106 116C 11B2;BB07;1106 116C 11B2; # (묇; 묇; 묇; 묇; 묇; ) HANGUL SYLLABLE MOELB
+BB08;BB08;1106 116C 11B3;BB08;1106 116C 11B3; # (묈; 묈; 묈; 묈; 묈; ) HANGUL SYLLABLE MOELS
+BB09;BB09;1106 116C 11B4;BB09;1106 116C 11B4; # (묉; 묉; 묉; 묉; 묉; ) HANGUL SYLLABLE MOELT
+BB0A;BB0A;1106 116C 11B5;BB0A;1106 116C 11B5; # (묊; 묊; 묊; 묊; 묊; ) HANGUL SYLLABLE MOELP
+BB0B;BB0B;1106 116C 11B6;BB0B;1106 116C 11B6; # (묋; 묋; 묋; 묋; 묋; ) HANGUL SYLLABLE MOELH
+BB0C;BB0C;1106 116C 11B7;BB0C;1106 116C 11B7; # (묌; 묌; 묌; 묌; 묌; ) HANGUL SYLLABLE MOEM
+BB0D;BB0D;1106 116C 11B8;BB0D;1106 116C 11B8; # (묍; 묍; 묍; 묍; 묍; ) HANGUL SYLLABLE MOEB
+BB0E;BB0E;1106 116C 11B9;BB0E;1106 116C 11B9; # (묎; 묎; 묎; 묎; 묎; ) HANGUL SYLLABLE MOEBS
+BB0F;BB0F;1106 116C 11BA;BB0F;1106 116C 11BA; # (묏; 묏; 묏; 묏; 묏; ) HANGUL SYLLABLE MOES
+BB10;BB10;1106 116C 11BB;BB10;1106 116C 11BB; # (묐; 묐; 묐; 묐; 묐; ) HANGUL SYLLABLE MOESS
+BB11;BB11;1106 116C 11BC;BB11;1106 116C 11BC; # (묑; 묑; 묑; 묑; 묑; ) HANGUL SYLLABLE MOENG
+BB12;BB12;1106 116C 11BD;BB12;1106 116C 11BD; # (묒; 묒; 묒; 묒; 묒; ) HANGUL SYLLABLE MOEJ
+BB13;BB13;1106 116C 11BE;BB13;1106 116C 11BE; # (묓; 묓; 묓; 묓; 묓; ) HANGUL SYLLABLE MOEC
+BB14;BB14;1106 116C 11BF;BB14;1106 116C 11BF; # (묔; 묔; 묔; 묔; 묔; ) HANGUL SYLLABLE MOEK
+BB15;BB15;1106 116C 11C0;BB15;1106 116C 11C0; # (묕; 묕; 묕; 묕; 묕; ) HANGUL SYLLABLE MOET
+BB16;BB16;1106 116C 11C1;BB16;1106 116C 11C1; # (묖; 묖; 묖; 묖; 묖; ) HANGUL SYLLABLE MOEP
+BB17;BB17;1106 116C 11C2;BB17;1106 116C 11C2; # (묗; 묗; 묗; 묗; 묗; ) HANGUL SYLLABLE MOEH
+BB18;BB18;1106 116D;BB18;1106 116D; # (묘; 묘; 묘; 묘; 묘; ) HANGUL SYLLABLE MYO
+BB19;BB19;1106 116D 11A8;BB19;1106 116D 11A8; # (묙; 묙; 묙; 묙; 묙; ) HANGUL SYLLABLE MYOG
+BB1A;BB1A;1106 116D 11A9;BB1A;1106 116D 11A9; # (묚; 묚; 묚; 묚; 묚; ) HANGUL SYLLABLE MYOGG
+BB1B;BB1B;1106 116D 11AA;BB1B;1106 116D 11AA; # (묛; 묛; 묛; 묛; 묛; ) HANGUL SYLLABLE MYOGS
+BB1C;BB1C;1106 116D 11AB;BB1C;1106 116D 11AB; # (묜; 묜; 묜; 묜; 묜; ) HANGUL SYLLABLE MYON
+BB1D;BB1D;1106 116D 11AC;BB1D;1106 116D 11AC; # (묝; 묝; 묝; 묝; 묝; ) HANGUL SYLLABLE MYONJ
+BB1E;BB1E;1106 116D 11AD;BB1E;1106 116D 11AD; # (묞; 묞; 묞; 묞; 묞; ) HANGUL SYLLABLE MYONH
+BB1F;BB1F;1106 116D 11AE;BB1F;1106 116D 11AE; # (묟; 묟; 묟; 묟; 묟; ) HANGUL SYLLABLE MYOD
+BB20;BB20;1106 116D 11AF;BB20;1106 116D 11AF; # (묠; 묠; 묠; 묠; 묠; ) HANGUL SYLLABLE MYOL
+BB21;BB21;1106 116D 11B0;BB21;1106 116D 11B0; # (묡; 묡; 묡; 묡; 묡; ) HANGUL SYLLABLE MYOLG
+BB22;BB22;1106 116D 11B1;BB22;1106 116D 11B1; # (묢; 묢; 묢; 묢; 묢; ) HANGUL SYLLABLE MYOLM
+BB23;BB23;1106 116D 11B2;BB23;1106 116D 11B2; # (묣; 묣; 묣; 묣; 묣; ) HANGUL SYLLABLE MYOLB
+BB24;BB24;1106 116D 11B3;BB24;1106 116D 11B3; # (묤; 묤; 묤; 묤; 묤; ) HANGUL SYLLABLE MYOLS
+BB25;BB25;1106 116D 11B4;BB25;1106 116D 11B4; # (묥; 묥; 묥; 묥; 묥; ) HANGUL SYLLABLE MYOLT
+BB26;BB26;1106 116D 11B5;BB26;1106 116D 11B5; # (묦; 묦; 묦; 묦; 묦; ) HANGUL SYLLABLE MYOLP
+BB27;BB27;1106 116D 11B6;BB27;1106 116D 11B6; # (묧; 묧; 묧; 묧; 묧; ) HANGUL SYLLABLE MYOLH
+BB28;BB28;1106 116D 11B7;BB28;1106 116D 11B7; # (묨; 묨; 묨; 묨; 묨; ) HANGUL SYLLABLE MYOM
+BB29;BB29;1106 116D 11B8;BB29;1106 116D 11B8; # (묩; 묩; 묩; 묩; 묩; ) HANGUL SYLLABLE MYOB
+BB2A;BB2A;1106 116D 11B9;BB2A;1106 116D 11B9; # (묪; 묪; 묪; 묪; 묪; ) HANGUL SYLLABLE MYOBS
+BB2B;BB2B;1106 116D 11BA;BB2B;1106 116D 11BA; # (묫; 묫; 묫; 묫; 묫; ) HANGUL SYLLABLE MYOS
+BB2C;BB2C;1106 116D 11BB;BB2C;1106 116D 11BB; # (묬; 묬; 묬; 묬; 묬; ) HANGUL SYLLABLE MYOSS
+BB2D;BB2D;1106 116D 11BC;BB2D;1106 116D 11BC; # (묭; 묭; 묭; 묭; 묭; ) HANGUL SYLLABLE MYONG
+BB2E;BB2E;1106 116D 11BD;BB2E;1106 116D 11BD; # (묮; 묮; 묮; 묮; 묮; ) HANGUL SYLLABLE MYOJ
+BB2F;BB2F;1106 116D 11BE;BB2F;1106 116D 11BE; # (묯; 묯; 묯; 묯; 묯; ) HANGUL SYLLABLE MYOC
+BB30;BB30;1106 116D 11BF;BB30;1106 116D 11BF; # (묰; 묰; 묰; 묰; 묰; ) HANGUL SYLLABLE MYOK
+BB31;BB31;1106 116D 11C0;BB31;1106 116D 11C0; # (묱; 묱; 묱; 묱; 묱; ) HANGUL SYLLABLE MYOT
+BB32;BB32;1106 116D 11C1;BB32;1106 116D 11C1; # (묲; 묲; 묲; 묲; 묲; ) HANGUL SYLLABLE MYOP
+BB33;BB33;1106 116D 11C2;BB33;1106 116D 11C2; # (묳; 묳; 묳; 묳; 묳; ) HANGUL SYLLABLE MYOH
+BB34;BB34;1106 116E;BB34;1106 116E; # (무; 무; 무; 무; 무; ) HANGUL SYLLABLE MU
+BB35;BB35;1106 116E 11A8;BB35;1106 116E 11A8; # (묵; 묵; 묵; 묵; 묵; ) HANGUL SYLLABLE MUG
+BB36;BB36;1106 116E 11A9;BB36;1106 116E 11A9; # (묶; 묶; 묶; 묶; 묶; ) HANGUL SYLLABLE MUGG
+BB37;BB37;1106 116E 11AA;BB37;1106 116E 11AA; # (묷; 묷; 묷; 묷; 묷; ) HANGUL SYLLABLE MUGS
+BB38;BB38;1106 116E 11AB;BB38;1106 116E 11AB; # (문; 문; 문; 문; 문; ) HANGUL SYLLABLE MUN
+BB39;BB39;1106 116E 11AC;BB39;1106 116E 11AC; # (묹; 묹; 묹; 묹; 묹; ) HANGUL SYLLABLE MUNJ
+BB3A;BB3A;1106 116E 11AD;BB3A;1106 116E 11AD; # (묺; 묺; 묺; 묺; 묺; ) HANGUL SYLLABLE MUNH
+BB3B;BB3B;1106 116E 11AE;BB3B;1106 116E 11AE; # (묻; 묻; 묻; 묻; 묻; ) HANGUL SYLLABLE MUD
+BB3C;BB3C;1106 116E 11AF;BB3C;1106 116E 11AF; # (물; 물; 물; 물; 물; ) HANGUL SYLLABLE MUL
+BB3D;BB3D;1106 116E 11B0;BB3D;1106 116E 11B0; # (묽; 묽; 묽; 묽; 묽; ) HANGUL SYLLABLE MULG
+BB3E;BB3E;1106 116E 11B1;BB3E;1106 116E 11B1; # (묾; 묾; 묾; 묾; 묾; ) HANGUL SYLLABLE MULM
+BB3F;BB3F;1106 116E 11B2;BB3F;1106 116E 11B2; # (묿; 묿; 묿; 묿; 묿; ) HANGUL SYLLABLE MULB
+BB40;BB40;1106 116E 11B3;BB40;1106 116E 11B3; # (뭀; 뭀; 뭀; 뭀; 뭀; ) HANGUL SYLLABLE MULS
+BB41;BB41;1106 116E 11B4;BB41;1106 116E 11B4; # (뭁; 뭁; 뭁; 뭁; 뭁; ) HANGUL SYLLABLE MULT
+BB42;BB42;1106 116E 11B5;BB42;1106 116E 11B5; # (뭂; 뭂; 뭂; 뭂; 뭂; ) HANGUL SYLLABLE MULP
+BB43;BB43;1106 116E 11B6;BB43;1106 116E 11B6; # (뭃; 뭃; 뭃; 뭃; 뭃; ) HANGUL SYLLABLE MULH
+BB44;BB44;1106 116E 11B7;BB44;1106 116E 11B7; # (뭄; 뭄; 뭄; 뭄; 뭄; ) HANGUL SYLLABLE MUM
+BB45;BB45;1106 116E 11B8;BB45;1106 116E 11B8; # (뭅; 뭅; 뭅; 뭅; 뭅; ) HANGUL SYLLABLE MUB
+BB46;BB46;1106 116E 11B9;BB46;1106 116E 11B9; # (뭆; 뭆; 뭆; 뭆; 뭆; ) HANGUL SYLLABLE MUBS
+BB47;BB47;1106 116E 11BA;BB47;1106 116E 11BA; # (뭇; 뭇; 뭇; 뭇; 뭇; ) HANGUL SYLLABLE MUS
+BB48;BB48;1106 116E 11BB;BB48;1106 116E 11BB; # (뭈; 뭈; 뭈; 뭈; 뭈; ) HANGUL SYLLABLE MUSS
+BB49;BB49;1106 116E 11BC;BB49;1106 116E 11BC; # (뭉; 뭉; 뭉; 뭉; 뭉; ) HANGUL SYLLABLE MUNG
+BB4A;BB4A;1106 116E 11BD;BB4A;1106 116E 11BD; # (뭊; 뭊; 뭊; 뭊; 뭊; ) HANGUL SYLLABLE MUJ
+BB4B;BB4B;1106 116E 11BE;BB4B;1106 116E 11BE; # (뭋; 뭋; 뭋; 뭋; 뭋; ) HANGUL SYLLABLE MUC
+BB4C;BB4C;1106 116E 11BF;BB4C;1106 116E 11BF; # (뭌; 뭌; 뭌; 뭌; 뭌; ) HANGUL SYLLABLE MUK
+BB4D;BB4D;1106 116E 11C0;BB4D;1106 116E 11C0; # (뭍; 뭍; 뭍; 뭍; 뭍; ) HANGUL SYLLABLE MUT
+BB4E;BB4E;1106 116E 11C1;BB4E;1106 116E 11C1; # (뭎; 뭎; 뭎; 뭎; 뭎; ) HANGUL SYLLABLE MUP
+BB4F;BB4F;1106 116E 11C2;BB4F;1106 116E 11C2; # (뭏; 뭏; 뭏; 뭏; 뭏; ) HANGUL SYLLABLE MUH
+BB50;BB50;1106 116F;BB50;1106 116F; # (뭐; 뭐; 뭐; 뭐; 뭐; ) HANGUL SYLLABLE MWEO
+BB51;BB51;1106 116F 11A8;BB51;1106 116F 11A8; # (뭑; 뭑; 뭑; 뭑; 뭑; ) HANGUL SYLLABLE MWEOG
+BB52;BB52;1106 116F 11A9;BB52;1106 116F 11A9; # (뭒; 뭒; 뭒; 뭒; 뭒; ) HANGUL SYLLABLE MWEOGG
+BB53;BB53;1106 116F 11AA;BB53;1106 116F 11AA; # (뭓; 뭓; 뭓; 뭓; 뭓; ) HANGUL SYLLABLE MWEOGS
+BB54;BB54;1106 116F 11AB;BB54;1106 116F 11AB; # (뭔; 뭔; 뭔; 뭔; 뭔; ) HANGUL SYLLABLE MWEON
+BB55;BB55;1106 116F 11AC;BB55;1106 116F 11AC; # (뭕; 뭕; 뭕; 뭕; 뭕; ) HANGUL SYLLABLE MWEONJ
+BB56;BB56;1106 116F 11AD;BB56;1106 116F 11AD; # (뭖; 뭖; 뭖; 뭖; 뭖; ) HANGUL SYLLABLE MWEONH
+BB57;BB57;1106 116F 11AE;BB57;1106 116F 11AE; # (뭗; 뭗; 뭗; 뭗; 뭗; ) HANGUL SYLLABLE MWEOD
+BB58;BB58;1106 116F 11AF;BB58;1106 116F 11AF; # (뭘; 뭘; 뭘; 뭘; 뭘; ) HANGUL SYLLABLE MWEOL
+BB59;BB59;1106 116F 11B0;BB59;1106 116F 11B0; # (뭙; 뭙; 뭙; 뭙; 뭙; ) HANGUL SYLLABLE MWEOLG
+BB5A;BB5A;1106 116F 11B1;BB5A;1106 116F 11B1; # (뭚; 뭚; 뭚; 뭚; 뭚; ) HANGUL SYLLABLE MWEOLM
+BB5B;BB5B;1106 116F 11B2;BB5B;1106 116F 11B2; # (뭛; 뭛; 뭛; 뭛; 뭛; ) HANGUL SYLLABLE MWEOLB
+BB5C;BB5C;1106 116F 11B3;BB5C;1106 116F 11B3; # (뭜; 뭜; 뭜; 뭜; 뭜; ) HANGUL SYLLABLE MWEOLS
+BB5D;BB5D;1106 116F 11B4;BB5D;1106 116F 11B4; # (뭝; 뭝; 뭝; 뭝; 뭝; ) HANGUL SYLLABLE MWEOLT
+BB5E;BB5E;1106 116F 11B5;BB5E;1106 116F 11B5; # (뭞; 뭞; 뭞; 뭞; 뭞; ) HANGUL SYLLABLE MWEOLP
+BB5F;BB5F;1106 116F 11B6;BB5F;1106 116F 11B6; # (뭟; 뭟; 뭟; 뭟; 뭟; ) HANGUL SYLLABLE MWEOLH
+BB60;BB60;1106 116F 11B7;BB60;1106 116F 11B7; # (뭠; 뭠; 뭠; 뭠; 뭠; ) HANGUL SYLLABLE MWEOM
+BB61;BB61;1106 116F 11B8;BB61;1106 116F 11B8; # (뭡; 뭡; 뭡; 뭡; 뭡; ) HANGUL SYLLABLE MWEOB
+BB62;BB62;1106 116F 11B9;BB62;1106 116F 11B9; # (뭢; 뭢; 뭢; 뭢; 뭢; ) HANGUL SYLLABLE MWEOBS
+BB63;BB63;1106 116F 11BA;BB63;1106 116F 11BA; # (뭣; 뭣; 뭣; 뭣; 뭣; ) HANGUL SYLLABLE MWEOS
+BB64;BB64;1106 116F 11BB;BB64;1106 116F 11BB; # (뭤; 뭤; 뭤; 뭤; 뭤; ) HANGUL SYLLABLE MWEOSS
+BB65;BB65;1106 116F 11BC;BB65;1106 116F 11BC; # (뭥; 뭥; 뭥; 뭥; 뭥; ) HANGUL SYLLABLE MWEONG
+BB66;BB66;1106 116F 11BD;BB66;1106 116F 11BD; # (뭦; 뭦; 뭦; 뭦; 뭦; ) HANGUL SYLLABLE MWEOJ
+BB67;BB67;1106 116F 11BE;BB67;1106 116F 11BE; # (뭧; 뭧; 뭧; 뭧; 뭧; ) HANGUL SYLLABLE MWEOC
+BB68;BB68;1106 116F 11BF;BB68;1106 116F 11BF; # (뭨; 뭨; 뭨; 뭨; 뭨; ) HANGUL SYLLABLE MWEOK
+BB69;BB69;1106 116F 11C0;BB69;1106 116F 11C0; # (뭩; 뭩; 뭩; 뭩; 뭩; ) HANGUL SYLLABLE MWEOT
+BB6A;BB6A;1106 116F 11C1;BB6A;1106 116F 11C1; # (뭪; 뭪; 뭪; 뭪; 뭪; ) HANGUL SYLLABLE MWEOP
+BB6B;BB6B;1106 116F 11C2;BB6B;1106 116F 11C2; # (뭫; 뭫; 뭫; 뭫; 뭫; ) HANGUL SYLLABLE MWEOH
+BB6C;BB6C;1106 1170;BB6C;1106 1170; # (뭬; 뭬; 뭬; 뭬; 뭬; ) HANGUL SYLLABLE MWE
+BB6D;BB6D;1106 1170 11A8;BB6D;1106 1170 11A8; # (뭭; 뭭; 뭭; 뭭; 뭭; ) HANGUL SYLLABLE MWEG
+BB6E;BB6E;1106 1170 11A9;BB6E;1106 1170 11A9; # (뭮; 뭮; 뭮; 뭮; 뭮; ) HANGUL SYLLABLE MWEGG
+BB6F;BB6F;1106 1170 11AA;BB6F;1106 1170 11AA; # (뭯; 뭯; 뭯; 뭯; 뭯; ) HANGUL SYLLABLE MWEGS
+BB70;BB70;1106 1170 11AB;BB70;1106 1170 11AB; # (뭰; 뭰; 뭰; 뭰; 뭰; ) HANGUL SYLLABLE MWEN
+BB71;BB71;1106 1170 11AC;BB71;1106 1170 11AC; # (뭱; 뭱; 뭱; 뭱; 뭱; ) HANGUL SYLLABLE MWENJ
+BB72;BB72;1106 1170 11AD;BB72;1106 1170 11AD; # (뭲; 뭲; 뭲; 뭲; 뭲; ) HANGUL SYLLABLE MWENH
+BB73;BB73;1106 1170 11AE;BB73;1106 1170 11AE; # (뭳; 뭳; 뭳; 뭳; 뭳; ) HANGUL SYLLABLE MWED
+BB74;BB74;1106 1170 11AF;BB74;1106 1170 11AF; # (뭴; 뭴; 뭴; 뭴; 뭴; ) HANGUL SYLLABLE MWEL
+BB75;BB75;1106 1170 11B0;BB75;1106 1170 11B0; # (뭵; 뭵; 뭵; 뭵; 뭵; ) HANGUL SYLLABLE MWELG
+BB76;BB76;1106 1170 11B1;BB76;1106 1170 11B1; # (뭶; 뭶; 뭶; 뭶; 뭶; ) HANGUL SYLLABLE MWELM
+BB77;BB77;1106 1170 11B2;BB77;1106 1170 11B2; # (뭷; 뭷; 뭷; 뭷; 뭷; ) HANGUL SYLLABLE MWELB
+BB78;BB78;1106 1170 11B3;BB78;1106 1170 11B3; # (뭸; 뭸; 뭸; 뭸; 뭸; ) HANGUL SYLLABLE MWELS
+BB79;BB79;1106 1170 11B4;BB79;1106 1170 11B4; # (뭹; 뭹; 뭹; 뭹; 뭹; ) HANGUL SYLLABLE MWELT
+BB7A;BB7A;1106 1170 11B5;BB7A;1106 1170 11B5; # (뭺; 뭺; 뭺; 뭺; 뭺; ) HANGUL SYLLABLE MWELP
+BB7B;BB7B;1106 1170 11B6;BB7B;1106 1170 11B6; # (뭻; 뭻; 뭻; 뭻; 뭻; ) HANGUL SYLLABLE MWELH
+BB7C;BB7C;1106 1170 11B7;BB7C;1106 1170 11B7; # (뭼; 뭼; 뭼; 뭼; 뭼; ) HANGUL SYLLABLE MWEM
+BB7D;BB7D;1106 1170 11B8;BB7D;1106 1170 11B8; # (뭽; 뭽; 뭽; 뭽; 뭽; ) HANGUL SYLLABLE MWEB
+BB7E;BB7E;1106 1170 11B9;BB7E;1106 1170 11B9; # (뭾; 뭾; 뭾; 뭾; 뭾; ) HANGUL SYLLABLE MWEBS
+BB7F;BB7F;1106 1170 11BA;BB7F;1106 1170 11BA; # (뭿; 뭿; 뭿; 뭿; 뭿; ) HANGUL SYLLABLE MWES
+BB80;BB80;1106 1170 11BB;BB80;1106 1170 11BB; # (뮀; 뮀; 뮀; 뮀; 뮀; ) HANGUL SYLLABLE MWESS
+BB81;BB81;1106 1170 11BC;BB81;1106 1170 11BC; # (뮁; 뮁; 뮁; 뮁; 뮁; ) HANGUL SYLLABLE MWENG
+BB82;BB82;1106 1170 11BD;BB82;1106 1170 11BD; # (뮂; 뮂; 뮂; 뮂; 뮂; ) HANGUL SYLLABLE MWEJ
+BB83;BB83;1106 1170 11BE;BB83;1106 1170 11BE; # (뮃; 뮃; 뮃; 뮃; 뮃; ) HANGUL SYLLABLE MWEC
+BB84;BB84;1106 1170 11BF;BB84;1106 1170 11BF; # (뮄; 뮄; 뮄; 뮄; 뮄; ) HANGUL SYLLABLE MWEK
+BB85;BB85;1106 1170 11C0;BB85;1106 1170 11C0; # (뮅; 뮅; 뮅; 뮅; 뮅; ) HANGUL SYLLABLE MWET
+BB86;BB86;1106 1170 11C1;BB86;1106 1170 11C1; # (뮆; 뮆; 뮆; 뮆; 뮆; ) HANGUL SYLLABLE MWEP
+BB87;BB87;1106 1170 11C2;BB87;1106 1170 11C2; # (뮇; 뮇; 뮇; 뮇; 뮇; ) HANGUL SYLLABLE MWEH
+BB88;BB88;1106 1171;BB88;1106 1171; # (뮈; 뮈; 뮈; 뮈; 뮈; ) HANGUL SYLLABLE MWI
+BB89;BB89;1106 1171 11A8;BB89;1106 1171 11A8; # (뮉; 뮉; 뮉; 뮉; 뮉; ) HANGUL SYLLABLE MWIG
+BB8A;BB8A;1106 1171 11A9;BB8A;1106 1171 11A9; # (뮊; 뮊; 뮊; 뮊; 뮊; ) HANGUL SYLLABLE MWIGG
+BB8B;BB8B;1106 1171 11AA;BB8B;1106 1171 11AA; # (뮋; 뮋; 뮋; 뮋; 뮋; ) HANGUL SYLLABLE MWIGS
+BB8C;BB8C;1106 1171 11AB;BB8C;1106 1171 11AB; # (뮌; 뮌; 뮌; 뮌; 뮌; ) HANGUL SYLLABLE MWIN
+BB8D;BB8D;1106 1171 11AC;BB8D;1106 1171 11AC; # (뮍; 뮍; 뮍; 뮍; 뮍; ) HANGUL SYLLABLE MWINJ
+BB8E;BB8E;1106 1171 11AD;BB8E;1106 1171 11AD; # (뮎; 뮎; 뮎; 뮎; 뮎; ) HANGUL SYLLABLE MWINH
+BB8F;BB8F;1106 1171 11AE;BB8F;1106 1171 11AE; # (뮏; 뮏; 뮏; 뮏; 뮏; ) HANGUL SYLLABLE MWID
+BB90;BB90;1106 1171 11AF;BB90;1106 1171 11AF; # (뮐; 뮐; 뮐; 뮐; 뮐; ) HANGUL SYLLABLE MWIL
+BB91;BB91;1106 1171 11B0;BB91;1106 1171 11B0; # (뮑; 뮑; 뮑; 뮑; 뮑; ) HANGUL SYLLABLE MWILG
+BB92;BB92;1106 1171 11B1;BB92;1106 1171 11B1; # (뮒; 뮒; 뮒; 뮒; 뮒; ) HANGUL SYLLABLE MWILM
+BB93;BB93;1106 1171 11B2;BB93;1106 1171 11B2; # (뮓; 뮓; 뮓; 뮓; 뮓; ) HANGUL SYLLABLE MWILB
+BB94;BB94;1106 1171 11B3;BB94;1106 1171 11B3; # (뮔; 뮔; 뮔; 뮔; 뮔; ) HANGUL SYLLABLE MWILS
+BB95;BB95;1106 1171 11B4;BB95;1106 1171 11B4; # (뮕; 뮕; 뮕; 뮕; 뮕; ) HANGUL SYLLABLE MWILT
+BB96;BB96;1106 1171 11B5;BB96;1106 1171 11B5; # (뮖; 뮖; 뮖; 뮖; 뮖; ) HANGUL SYLLABLE MWILP
+BB97;BB97;1106 1171 11B6;BB97;1106 1171 11B6; # (뮗; 뮗; 뮗; 뮗; 뮗; ) HANGUL SYLLABLE MWILH
+BB98;BB98;1106 1171 11B7;BB98;1106 1171 11B7; # (뮘; 뮘; 뮘; 뮘; 뮘; ) HANGUL SYLLABLE MWIM
+BB99;BB99;1106 1171 11B8;BB99;1106 1171 11B8; # (뮙; 뮙; 뮙; 뮙; 뮙; ) HANGUL SYLLABLE MWIB
+BB9A;BB9A;1106 1171 11B9;BB9A;1106 1171 11B9; # (뮚; 뮚; 뮚; 뮚; 뮚; ) HANGUL SYLLABLE MWIBS
+BB9B;BB9B;1106 1171 11BA;BB9B;1106 1171 11BA; # (뮛; 뮛; 뮛; 뮛; 뮛; ) HANGUL SYLLABLE MWIS
+BB9C;BB9C;1106 1171 11BB;BB9C;1106 1171 11BB; # (뮜; 뮜; 뮜; 뮜; 뮜; ) HANGUL SYLLABLE MWISS
+BB9D;BB9D;1106 1171 11BC;BB9D;1106 1171 11BC; # (뮝; 뮝; 뮝; 뮝; 뮝; ) HANGUL SYLLABLE MWING
+BB9E;BB9E;1106 1171 11BD;BB9E;1106 1171 11BD; # (뮞; 뮞; 뮞; 뮞; 뮞; ) HANGUL SYLLABLE MWIJ
+BB9F;BB9F;1106 1171 11BE;BB9F;1106 1171 11BE; # (뮟; 뮟; 뮟; 뮟; 뮟; ) HANGUL SYLLABLE MWIC
+BBA0;BBA0;1106 1171 11BF;BBA0;1106 1171 11BF; # (뮠; 뮠; 뮠; 뮠; 뮠; ) HANGUL SYLLABLE MWIK
+BBA1;BBA1;1106 1171 11C0;BBA1;1106 1171 11C0; # (뮡; 뮡; 뮡; 뮡; 뮡; ) HANGUL SYLLABLE MWIT
+BBA2;BBA2;1106 1171 11C1;BBA2;1106 1171 11C1; # (뮢; 뮢; 뮢; 뮢; 뮢; ) HANGUL SYLLABLE MWIP
+BBA3;BBA3;1106 1171 11C2;BBA3;1106 1171 11C2; # (뮣; 뮣; 뮣; 뮣; 뮣; ) HANGUL SYLLABLE MWIH
+BBA4;BBA4;1106 1172;BBA4;1106 1172; # (뮤; 뮤; 뮤; 뮤; 뮤; ) HANGUL SYLLABLE MYU
+BBA5;BBA5;1106 1172 11A8;BBA5;1106 1172 11A8; # (뮥; 뮥; 뮥; 뮥; 뮥; ) HANGUL SYLLABLE MYUG
+BBA6;BBA6;1106 1172 11A9;BBA6;1106 1172 11A9; # (뮦; 뮦; 뮦; 뮦; 뮦; ) HANGUL SYLLABLE MYUGG
+BBA7;BBA7;1106 1172 11AA;BBA7;1106 1172 11AA; # (뮧; 뮧; 뮧; 뮧; 뮧; ) HANGUL SYLLABLE MYUGS
+BBA8;BBA8;1106 1172 11AB;BBA8;1106 1172 11AB; # (뮨; 뮨; 뮨; 뮨; 뮨; ) HANGUL SYLLABLE MYUN
+BBA9;BBA9;1106 1172 11AC;BBA9;1106 1172 11AC; # (뮩; 뮩; 뮩; 뮩; 뮩; ) HANGUL SYLLABLE MYUNJ
+BBAA;BBAA;1106 1172 11AD;BBAA;1106 1172 11AD; # (뮪; 뮪; 뮪; 뮪; 뮪; ) HANGUL SYLLABLE MYUNH
+BBAB;BBAB;1106 1172 11AE;BBAB;1106 1172 11AE; # (뮫; 뮫; 뮫; 뮫; 뮫; ) HANGUL SYLLABLE MYUD
+BBAC;BBAC;1106 1172 11AF;BBAC;1106 1172 11AF; # (뮬; 뮬; 뮬; 뮬; 뮬; ) HANGUL SYLLABLE MYUL
+BBAD;BBAD;1106 1172 11B0;BBAD;1106 1172 11B0; # (뮭; 뮭; 뮭; 뮭; 뮭; ) HANGUL SYLLABLE MYULG
+BBAE;BBAE;1106 1172 11B1;BBAE;1106 1172 11B1; # (뮮; 뮮; 뮮; 뮮; 뮮; ) HANGUL SYLLABLE MYULM
+BBAF;BBAF;1106 1172 11B2;BBAF;1106 1172 11B2; # (뮯; 뮯; 뮯; 뮯; 뮯; ) HANGUL SYLLABLE MYULB
+BBB0;BBB0;1106 1172 11B3;BBB0;1106 1172 11B3; # (뮰; 뮰; 뮰; 뮰; 뮰; ) HANGUL SYLLABLE MYULS
+BBB1;BBB1;1106 1172 11B4;BBB1;1106 1172 11B4; # (뮱; 뮱; 뮱; 뮱; 뮱; ) HANGUL SYLLABLE MYULT
+BBB2;BBB2;1106 1172 11B5;BBB2;1106 1172 11B5; # (뮲; 뮲; 뮲; 뮲; 뮲; ) HANGUL SYLLABLE MYULP
+BBB3;BBB3;1106 1172 11B6;BBB3;1106 1172 11B6; # (뮳; 뮳; 뮳; 뮳; 뮳; ) HANGUL SYLLABLE MYULH
+BBB4;BBB4;1106 1172 11B7;BBB4;1106 1172 11B7; # (뮴; 뮴; 뮴; 뮴; 뮴; ) HANGUL SYLLABLE MYUM
+BBB5;BBB5;1106 1172 11B8;BBB5;1106 1172 11B8; # (뮵; 뮵; 뮵; 뮵; 뮵; ) HANGUL SYLLABLE MYUB
+BBB6;BBB6;1106 1172 11B9;BBB6;1106 1172 11B9; # (뮶; 뮶; 뮶; 뮶; 뮶; ) HANGUL SYLLABLE MYUBS
+BBB7;BBB7;1106 1172 11BA;BBB7;1106 1172 11BA; # (뮷; 뮷; 뮷; 뮷; 뮷; ) HANGUL SYLLABLE MYUS
+BBB8;BBB8;1106 1172 11BB;BBB8;1106 1172 11BB; # (뮸; 뮸; 뮸; 뮸; 뮸; ) HANGUL SYLLABLE MYUSS
+BBB9;BBB9;1106 1172 11BC;BBB9;1106 1172 11BC; # (뮹; 뮹; 뮹; 뮹; 뮹; ) HANGUL SYLLABLE MYUNG
+BBBA;BBBA;1106 1172 11BD;BBBA;1106 1172 11BD; # (뮺; 뮺; 뮺; 뮺; 뮺; ) HANGUL SYLLABLE MYUJ
+BBBB;BBBB;1106 1172 11BE;BBBB;1106 1172 11BE; # (뮻; 뮻; 뮻; 뮻; 뮻; ) HANGUL SYLLABLE MYUC
+BBBC;BBBC;1106 1172 11BF;BBBC;1106 1172 11BF; # (뮼; 뮼; 뮼; 뮼; 뮼; ) HANGUL SYLLABLE MYUK
+BBBD;BBBD;1106 1172 11C0;BBBD;1106 1172 11C0; # (뮽; 뮽; 뮽; 뮽; 뮽; ) HANGUL SYLLABLE MYUT
+BBBE;BBBE;1106 1172 11C1;BBBE;1106 1172 11C1; # (뮾; 뮾; 뮾; 뮾; 뮾; ) HANGUL SYLLABLE MYUP
+BBBF;BBBF;1106 1172 11C2;BBBF;1106 1172 11C2; # (뮿; 뮿; 뮿; 뮿; 뮿; ) HANGUL SYLLABLE MYUH
+BBC0;BBC0;1106 1173;BBC0;1106 1173; # (므; 므; 므; 므; 므; ) HANGUL SYLLABLE MEU
+BBC1;BBC1;1106 1173 11A8;BBC1;1106 1173 11A8; # (믁; 믁; 믁; 믁; 믁; ) HANGUL SYLLABLE MEUG
+BBC2;BBC2;1106 1173 11A9;BBC2;1106 1173 11A9; # (믂; 믂; 믂; 믂; 믂; ) HANGUL SYLLABLE MEUGG
+BBC3;BBC3;1106 1173 11AA;BBC3;1106 1173 11AA; # (믃; 믃; 믃; 믃; 믃; ) HANGUL SYLLABLE MEUGS
+BBC4;BBC4;1106 1173 11AB;BBC4;1106 1173 11AB; # (믄; 믄; 믄; 믄; 믄; ) HANGUL SYLLABLE MEUN
+BBC5;BBC5;1106 1173 11AC;BBC5;1106 1173 11AC; # (믅; 믅; 믅; 믅; 믅; ) HANGUL SYLLABLE MEUNJ
+BBC6;BBC6;1106 1173 11AD;BBC6;1106 1173 11AD; # (믆; 믆; 믆; 믆; 믆; ) HANGUL SYLLABLE MEUNH
+BBC7;BBC7;1106 1173 11AE;BBC7;1106 1173 11AE; # (믇; 믇; 믇; 믇; 믇; ) HANGUL SYLLABLE MEUD
+BBC8;BBC8;1106 1173 11AF;BBC8;1106 1173 11AF; # (믈; 믈; 믈; 믈; 믈; ) HANGUL SYLLABLE MEUL
+BBC9;BBC9;1106 1173 11B0;BBC9;1106 1173 11B0; # (믉; 믉; 믉; 믉; 믉; ) HANGUL SYLLABLE MEULG
+BBCA;BBCA;1106 1173 11B1;BBCA;1106 1173 11B1; # (믊; 믊; 믊; 믊; 믊; ) HANGUL SYLLABLE MEULM
+BBCB;BBCB;1106 1173 11B2;BBCB;1106 1173 11B2; # (믋; 믋; 믋; 믋; 믋; ) HANGUL SYLLABLE MEULB
+BBCC;BBCC;1106 1173 11B3;BBCC;1106 1173 11B3; # (믌; 믌; 믌; 믌; 믌; ) HANGUL SYLLABLE MEULS
+BBCD;BBCD;1106 1173 11B4;BBCD;1106 1173 11B4; # (믍; 믍; 믍; 믍; 믍; ) HANGUL SYLLABLE MEULT
+BBCE;BBCE;1106 1173 11B5;BBCE;1106 1173 11B5; # (믎; 믎; 믎; 믎; 믎; ) HANGUL SYLLABLE MEULP
+BBCF;BBCF;1106 1173 11B6;BBCF;1106 1173 11B6; # (믏; 믏; 믏; 믏; 믏; ) HANGUL SYLLABLE MEULH
+BBD0;BBD0;1106 1173 11B7;BBD0;1106 1173 11B7; # (믐; 믐; 믐; 믐; 믐; ) HANGUL SYLLABLE MEUM
+BBD1;BBD1;1106 1173 11B8;BBD1;1106 1173 11B8; # (믑; 믑; 믑; 믑; 믑; ) HANGUL SYLLABLE MEUB
+BBD2;BBD2;1106 1173 11B9;BBD2;1106 1173 11B9; # (믒; 믒; 믒; 믒; 믒; ) HANGUL SYLLABLE MEUBS
+BBD3;BBD3;1106 1173 11BA;BBD3;1106 1173 11BA; # (믓; 믓; 믓; 믓; 믓; ) HANGUL SYLLABLE MEUS
+BBD4;BBD4;1106 1173 11BB;BBD4;1106 1173 11BB; # (믔; 믔; 믔; 믔; 믔; ) HANGUL SYLLABLE MEUSS
+BBD5;BBD5;1106 1173 11BC;BBD5;1106 1173 11BC; # (믕; 믕; 믕; 믕; 믕; ) HANGUL SYLLABLE MEUNG
+BBD6;BBD6;1106 1173 11BD;BBD6;1106 1173 11BD; # (믖; 믖; 믖; 믖; 믖; ) HANGUL SYLLABLE MEUJ
+BBD7;BBD7;1106 1173 11BE;BBD7;1106 1173 11BE; # (믗; 믗; 믗; 믗; 믗; ) HANGUL SYLLABLE MEUC
+BBD8;BBD8;1106 1173 11BF;BBD8;1106 1173 11BF; # (믘; 믘; 믘; 믘; 믘; ) HANGUL SYLLABLE MEUK
+BBD9;BBD9;1106 1173 11C0;BBD9;1106 1173 11C0; # (믙; 믙; 믙; 믙; 믙; ) HANGUL SYLLABLE MEUT
+BBDA;BBDA;1106 1173 11C1;BBDA;1106 1173 11C1; # (믚; 믚; 믚; 믚; 믚; ) HANGUL SYLLABLE MEUP
+BBDB;BBDB;1106 1173 11C2;BBDB;1106 1173 11C2; # (믛; 믛; 믛; 믛; 믛; ) HANGUL SYLLABLE MEUH
+BBDC;BBDC;1106 1174;BBDC;1106 1174; # (믜; 믜; 믜; 믜; 믜; ) HANGUL SYLLABLE MYI
+BBDD;BBDD;1106 1174 11A8;BBDD;1106 1174 11A8; # (믝; 믝; 믝; 믝; 믝; ) HANGUL SYLLABLE MYIG
+BBDE;BBDE;1106 1174 11A9;BBDE;1106 1174 11A9; # (믞; 믞; 믞; 믞; 믞; ) HANGUL SYLLABLE MYIGG
+BBDF;BBDF;1106 1174 11AA;BBDF;1106 1174 11AA; # (믟; 믟; 믟; 믟; 믟; ) HANGUL SYLLABLE MYIGS
+BBE0;BBE0;1106 1174 11AB;BBE0;1106 1174 11AB; # (믠; 믠; 믠; 믠; 믠; ) HANGUL SYLLABLE MYIN
+BBE1;BBE1;1106 1174 11AC;BBE1;1106 1174 11AC; # (믡; 믡; 믡; 믡; 믡; ) HANGUL SYLLABLE MYINJ
+BBE2;BBE2;1106 1174 11AD;BBE2;1106 1174 11AD; # (믢; 믢; 믢; 믢; 믢; ) HANGUL SYLLABLE MYINH
+BBE3;BBE3;1106 1174 11AE;BBE3;1106 1174 11AE; # (믣; 믣; 믣; 믣; 믣; ) HANGUL SYLLABLE MYID
+BBE4;BBE4;1106 1174 11AF;BBE4;1106 1174 11AF; # (믤; 믤; 믤; 믤; 믤; ) HANGUL SYLLABLE MYIL
+BBE5;BBE5;1106 1174 11B0;BBE5;1106 1174 11B0; # (믥; 믥; 믥; 믥; 믥; ) HANGUL SYLLABLE MYILG
+BBE6;BBE6;1106 1174 11B1;BBE6;1106 1174 11B1; # (믦; 믦; 믦; 믦; 믦; ) HANGUL SYLLABLE MYILM
+BBE7;BBE7;1106 1174 11B2;BBE7;1106 1174 11B2; # (믧; 믧; 믧; 믧; 믧; ) HANGUL SYLLABLE MYILB
+BBE8;BBE8;1106 1174 11B3;BBE8;1106 1174 11B3; # (믨; 믨; 믨; 믨; 믨; ) HANGUL SYLLABLE MYILS
+BBE9;BBE9;1106 1174 11B4;BBE9;1106 1174 11B4; # (믩; 믩; 믩; 믩; 믩; ) HANGUL SYLLABLE MYILT
+BBEA;BBEA;1106 1174 11B5;BBEA;1106 1174 11B5; # (믪; 믪; 믪; 믪; 믪; ) HANGUL SYLLABLE MYILP
+BBEB;BBEB;1106 1174 11B6;BBEB;1106 1174 11B6; # (믫; 믫; 믫; 믫; 믫; ) HANGUL SYLLABLE MYILH
+BBEC;BBEC;1106 1174 11B7;BBEC;1106 1174 11B7; # (믬; 믬; 믬; 믬; 믬; ) HANGUL SYLLABLE MYIM
+BBED;BBED;1106 1174 11B8;BBED;1106 1174 11B8; # (믭; 믭; 믭; 믭; 믭; ) HANGUL SYLLABLE MYIB
+BBEE;BBEE;1106 1174 11B9;BBEE;1106 1174 11B9; # (믮; 믮; 믮; 믮; 믮; ) HANGUL SYLLABLE MYIBS
+BBEF;BBEF;1106 1174 11BA;BBEF;1106 1174 11BA; # (믯; 믯; 믯; 믯; 믯; ) HANGUL SYLLABLE MYIS
+BBF0;BBF0;1106 1174 11BB;BBF0;1106 1174 11BB; # (믰; 믰; 믰; 믰; 믰; ) HANGUL SYLLABLE MYISS
+BBF1;BBF1;1106 1174 11BC;BBF1;1106 1174 11BC; # (믱; 믱; 믱; 믱; 믱; ) HANGUL SYLLABLE MYING
+BBF2;BBF2;1106 1174 11BD;BBF2;1106 1174 11BD; # (믲; 믲; 믲; 믲; 믲; ) HANGUL SYLLABLE MYIJ
+BBF3;BBF3;1106 1174 11BE;BBF3;1106 1174 11BE; # (믳; 믳; 믳; 믳; 믳; ) HANGUL SYLLABLE MYIC
+BBF4;BBF4;1106 1174 11BF;BBF4;1106 1174 11BF; # (믴; 믴; 믴; 믴; 믴; ) HANGUL SYLLABLE MYIK
+BBF5;BBF5;1106 1174 11C0;BBF5;1106 1174 11C0; # (믵; 믵; 믵; 믵; 믵; ) HANGUL SYLLABLE MYIT
+BBF6;BBF6;1106 1174 11C1;BBF6;1106 1174 11C1; # (믶; 믶; 믶; 믶; 믶; ) HANGUL SYLLABLE MYIP
+BBF7;BBF7;1106 1174 11C2;BBF7;1106 1174 11C2; # (믷; 믷; 믷; 믷; 믷; ) HANGUL SYLLABLE MYIH
+BBF8;BBF8;1106 1175;BBF8;1106 1175; # (미; 미; 미; 미; 미; ) HANGUL SYLLABLE MI
+BBF9;BBF9;1106 1175 11A8;BBF9;1106 1175 11A8; # (믹; 믹; 믹; 믹; 믹; ) HANGUL SYLLABLE MIG
+BBFA;BBFA;1106 1175 11A9;BBFA;1106 1175 11A9; # (믺; 믺; 믺; 믺; 믺; ) HANGUL SYLLABLE MIGG
+BBFB;BBFB;1106 1175 11AA;BBFB;1106 1175 11AA; # (믻; 믻; 믻; 믻; 믻; ) HANGUL SYLLABLE MIGS
+BBFC;BBFC;1106 1175 11AB;BBFC;1106 1175 11AB; # (민; 민; 민; 민; 민; ) HANGUL SYLLABLE MIN
+BBFD;BBFD;1106 1175 11AC;BBFD;1106 1175 11AC; # (믽; 믽; 믽; 믽; 믽; ) HANGUL SYLLABLE MINJ
+BBFE;BBFE;1106 1175 11AD;BBFE;1106 1175 11AD; # (믾; 믾; 믾; 믾; 믾; ) HANGUL SYLLABLE MINH
+BBFF;BBFF;1106 1175 11AE;BBFF;1106 1175 11AE; # (믿; 믿; 믿; 믿; 믿; ) HANGUL SYLLABLE MID
+BC00;BC00;1106 1175 11AF;BC00;1106 1175 11AF; # (밀; 밀; 밀; 밀; 밀; ) HANGUL SYLLABLE MIL
+BC01;BC01;1106 1175 11B0;BC01;1106 1175 11B0; # (밁; 밁; 밁; 밁; 밁; ) HANGUL SYLLABLE MILG
+BC02;BC02;1106 1175 11B1;BC02;1106 1175 11B1; # (밂; 밂; 밂; 밂; 밂; ) HANGUL SYLLABLE MILM
+BC03;BC03;1106 1175 11B2;BC03;1106 1175 11B2; # (밃; 밃; 밃; 밃; 밃; ) HANGUL SYLLABLE MILB
+BC04;BC04;1106 1175 11B3;BC04;1106 1175 11B3; # (밄; 밄; 밄; 밄; 밄; ) HANGUL SYLLABLE MILS
+BC05;BC05;1106 1175 11B4;BC05;1106 1175 11B4; # (밅; 밅; 밅; 밅; 밅; ) HANGUL SYLLABLE MILT
+BC06;BC06;1106 1175 11B5;BC06;1106 1175 11B5; # (밆; 밆; 밆; 밆; 밆; ) HANGUL SYLLABLE MILP
+BC07;BC07;1106 1175 11B6;BC07;1106 1175 11B6; # (밇; 밇; 밇; 밇; 밇; ) HANGUL SYLLABLE MILH
+BC08;BC08;1106 1175 11B7;BC08;1106 1175 11B7; # (밈; 밈; 밈; 밈; 밈; ) HANGUL SYLLABLE MIM
+BC09;BC09;1106 1175 11B8;BC09;1106 1175 11B8; # (밉; 밉; 밉; 밉; 밉; ) HANGUL SYLLABLE MIB
+BC0A;BC0A;1106 1175 11B9;BC0A;1106 1175 11B9; # (밊; 밊; 밊; 밊; 밊; ) HANGUL SYLLABLE MIBS
+BC0B;BC0B;1106 1175 11BA;BC0B;1106 1175 11BA; # (밋; 밋; 밋; 밋; 밋; ) HANGUL SYLLABLE MIS
+BC0C;BC0C;1106 1175 11BB;BC0C;1106 1175 11BB; # (밌; 밌; 밌; 밌; 밌; ) HANGUL SYLLABLE MISS
+BC0D;BC0D;1106 1175 11BC;BC0D;1106 1175 11BC; # (밍; 밍; 밍; 밍; 밍; ) HANGUL SYLLABLE MING
+BC0E;BC0E;1106 1175 11BD;BC0E;1106 1175 11BD; # (밎; 밎; 밎; 밎; 밎; ) HANGUL SYLLABLE MIJ
+BC0F;BC0F;1106 1175 11BE;BC0F;1106 1175 11BE; # (및; 및; 및; 및; 및; ) HANGUL SYLLABLE MIC
+BC10;BC10;1106 1175 11BF;BC10;1106 1175 11BF; # (밐; 밐; 밐; 밐; 밐; ) HANGUL SYLLABLE MIK
+BC11;BC11;1106 1175 11C0;BC11;1106 1175 11C0; # (밑; 밑; 밑; 밑; 밑; ) HANGUL SYLLABLE MIT
+BC12;BC12;1106 1175 11C1;BC12;1106 1175 11C1; # (밒; 밒; 밒; 밒; 밒; ) HANGUL SYLLABLE MIP
+BC13;BC13;1106 1175 11C2;BC13;1106 1175 11C2; # (밓; 밓; 밓; 밓; 밓; ) HANGUL SYLLABLE MIH
+BC14;BC14;1107 1161;BC14;1107 1161; # (바; 바; 바; 바; 바; ) HANGUL SYLLABLE BA
+BC15;BC15;1107 1161 11A8;BC15;1107 1161 11A8; # (박; 박; 박; 박; 박; ) HANGUL SYLLABLE BAG
+BC16;BC16;1107 1161 11A9;BC16;1107 1161 11A9; # (밖; 밖; 밖; 밖; 밖; ) HANGUL SYLLABLE BAGG
+BC17;BC17;1107 1161 11AA;BC17;1107 1161 11AA; # (밗; 밗; 밗; 밗; 밗; ) HANGUL SYLLABLE BAGS
+BC18;BC18;1107 1161 11AB;BC18;1107 1161 11AB; # (반; 반; 반; 반; 반; ) HANGUL SYLLABLE BAN
+BC19;BC19;1107 1161 11AC;BC19;1107 1161 11AC; # (밙; 밙; 밙; 밙; 밙; ) HANGUL SYLLABLE BANJ
+BC1A;BC1A;1107 1161 11AD;BC1A;1107 1161 11AD; # (밚; 밚; 밚; 밚; 밚; ) HANGUL SYLLABLE BANH
+BC1B;BC1B;1107 1161 11AE;BC1B;1107 1161 11AE; # (받; 받; 받; 받; 받; ) HANGUL SYLLABLE BAD
+BC1C;BC1C;1107 1161 11AF;BC1C;1107 1161 11AF; # (발; 발; 발; 발; 발; ) HANGUL SYLLABLE BAL
+BC1D;BC1D;1107 1161 11B0;BC1D;1107 1161 11B0; # (밝; 밝; 밝; 밝; 밝; ) HANGUL SYLLABLE BALG
+BC1E;BC1E;1107 1161 11B1;BC1E;1107 1161 11B1; # (밞; 밞; 밞; 밞; 밞; ) HANGUL SYLLABLE BALM
+BC1F;BC1F;1107 1161 11B2;BC1F;1107 1161 11B2; # (밟; 밟; 밟; 밟; 밟; ) HANGUL SYLLABLE BALB
+BC20;BC20;1107 1161 11B3;BC20;1107 1161 11B3; # (밠; 밠; 밠; 밠; 밠; ) HANGUL SYLLABLE BALS
+BC21;BC21;1107 1161 11B4;BC21;1107 1161 11B4; # (밡; 밡; 밡; 밡; 밡; ) HANGUL SYLLABLE BALT
+BC22;BC22;1107 1161 11B5;BC22;1107 1161 11B5; # (밢; 밢; 밢; 밢; 밢; ) HANGUL SYLLABLE BALP
+BC23;BC23;1107 1161 11B6;BC23;1107 1161 11B6; # (밣; 밣; 밣; 밣; 밣; ) HANGUL SYLLABLE BALH
+BC24;BC24;1107 1161 11B7;BC24;1107 1161 11B7; # (밤; 밤; 밤; 밤; 밤; ) HANGUL SYLLABLE BAM
+BC25;BC25;1107 1161 11B8;BC25;1107 1161 11B8; # (밥; 밥; 밥; 밥; 밥; ) HANGUL SYLLABLE BAB
+BC26;BC26;1107 1161 11B9;BC26;1107 1161 11B9; # (밦; 밦; 밦; 밦; 밦; ) HANGUL SYLLABLE BABS
+BC27;BC27;1107 1161 11BA;BC27;1107 1161 11BA; # (밧; 밧; 밧; 밧; 밧; ) HANGUL SYLLABLE BAS
+BC28;BC28;1107 1161 11BB;BC28;1107 1161 11BB; # (밨; 밨; 밨; 밨; 밨; ) HANGUL SYLLABLE BASS
+BC29;BC29;1107 1161 11BC;BC29;1107 1161 11BC; # (방; 방; 방; 방; 방; ) HANGUL SYLLABLE BANG
+BC2A;BC2A;1107 1161 11BD;BC2A;1107 1161 11BD; # (밪; 밪; 밪; 밪; 밪; ) HANGUL SYLLABLE BAJ
+BC2B;BC2B;1107 1161 11BE;BC2B;1107 1161 11BE; # (밫; 밫; 밫; 밫; 밫; ) HANGUL SYLLABLE BAC
+BC2C;BC2C;1107 1161 11BF;BC2C;1107 1161 11BF; # (밬; 밬; 밬; 밬; 밬; ) HANGUL SYLLABLE BAK
+BC2D;BC2D;1107 1161 11C0;BC2D;1107 1161 11C0; # (밭; 밭; 밭; 밭; 밭; ) HANGUL SYLLABLE BAT
+BC2E;BC2E;1107 1161 11C1;BC2E;1107 1161 11C1; # (밮; 밮; 밮; 밮; 밮; ) HANGUL SYLLABLE BAP
+BC2F;BC2F;1107 1161 11C2;BC2F;1107 1161 11C2; # (밯; 밯; 밯; 밯; 밯; ) HANGUL SYLLABLE BAH
+BC30;BC30;1107 1162;BC30;1107 1162; # (배; 배; 배; 배; 배; ) HANGUL SYLLABLE BAE
+BC31;BC31;1107 1162 11A8;BC31;1107 1162 11A8; # (백; 백; 백; 백; 백; ) HANGUL SYLLABLE BAEG
+BC32;BC32;1107 1162 11A9;BC32;1107 1162 11A9; # (밲; 밲; 밲; 밲; 밲; ) HANGUL SYLLABLE BAEGG
+BC33;BC33;1107 1162 11AA;BC33;1107 1162 11AA; # (밳; 밳; 밳; 밳; 밳; ) HANGUL SYLLABLE BAEGS
+BC34;BC34;1107 1162 11AB;BC34;1107 1162 11AB; # (밴; 밴; 밴; 밴; 밴; ) HANGUL SYLLABLE BAEN
+BC35;BC35;1107 1162 11AC;BC35;1107 1162 11AC; # (밵; 밵; 밵; 밵; 밵; ) HANGUL SYLLABLE BAENJ
+BC36;BC36;1107 1162 11AD;BC36;1107 1162 11AD; # (밶; 밶; 밶; 밶; 밶; ) HANGUL SYLLABLE BAENH
+BC37;BC37;1107 1162 11AE;BC37;1107 1162 11AE; # (밷; 밷; 밷; 밷; 밷; ) HANGUL SYLLABLE BAED
+BC38;BC38;1107 1162 11AF;BC38;1107 1162 11AF; # (밸; 밸; 밸; 밸; 밸; ) HANGUL SYLLABLE BAEL
+BC39;BC39;1107 1162 11B0;BC39;1107 1162 11B0; # (밹; 밹; 밹; 밹; 밹; ) HANGUL SYLLABLE BAELG
+BC3A;BC3A;1107 1162 11B1;BC3A;1107 1162 11B1; # (밺; 밺; 밺; 밺; 밺; ) HANGUL SYLLABLE BAELM
+BC3B;BC3B;1107 1162 11B2;BC3B;1107 1162 11B2; # (밻; 밻; 밻; 밻; 밻; ) HANGUL SYLLABLE BAELB
+BC3C;BC3C;1107 1162 11B3;BC3C;1107 1162 11B3; # (밼; 밼; 밼; 밼; 밼; ) HANGUL SYLLABLE BAELS
+BC3D;BC3D;1107 1162 11B4;BC3D;1107 1162 11B4; # (밽; 밽; 밽; 밽; 밽; ) HANGUL SYLLABLE BAELT
+BC3E;BC3E;1107 1162 11B5;BC3E;1107 1162 11B5; # (밾; 밾; 밾; 밾; 밾; ) HANGUL SYLLABLE BAELP
+BC3F;BC3F;1107 1162 11B6;BC3F;1107 1162 11B6; # (밿; 밿; 밿; 밿; 밿; ) HANGUL SYLLABLE BAELH
+BC40;BC40;1107 1162 11B7;BC40;1107 1162 11B7; # (뱀; 뱀; 뱀; 뱀; 뱀; ) HANGUL SYLLABLE BAEM
+BC41;BC41;1107 1162 11B8;BC41;1107 1162 11B8; # (뱁; 뱁; 뱁; 뱁; 뱁; ) HANGUL SYLLABLE BAEB
+BC42;BC42;1107 1162 11B9;BC42;1107 1162 11B9; # (뱂; 뱂; 뱂; 뱂; 뱂; ) HANGUL SYLLABLE BAEBS
+BC43;BC43;1107 1162 11BA;BC43;1107 1162 11BA; # (뱃; 뱃; 뱃; 뱃; 뱃; ) HANGUL SYLLABLE BAES
+BC44;BC44;1107 1162 11BB;BC44;1107 1162 11BB; # (뱄; 뱄; 뱄; 뱄; 뱄; ) HANGUL SYLLABLE BAESS
+BC45;BC45;1107 1162 11BC;BC45;1107 1162 11BC; # (뱅; 뱅; 뱅; 뱅; 뱅; ) HANGUL SYLLABLE BAENG
+BC46;BC46;1107 1162 11BD;BC46;1107 1162 11BD; # (뱆; 뱆; 뱆; 뱆; 뱆; ) HANGUL SYLLABLE BAEJ
+BC47;BC47;1107 1162 11BE;BC47;1107 1162 11BE; # (뱇; 뱇; 뱇; 뱇; 뱇; ) HANGUL SYLLABLE BAEC
+BC48;BC48;1107 1162 11BF;BC48;1107 1162 11BF; # (뱈; 뱈; 뱈; 뱈; 뱈; ) HANGUL SYLLABLE BAEK
+BC49;BC49;1107 1162 11C0;BC49;1107 1162 11C0; # (뱉; 뱉; 뱉; 뱉; 뱉; ) HANGUL SYLLABLE BAET
+BC4A;BC4A;1107 1162 11C1;BC4A;1107 1162 11C1; # (뱊; 뱊; 뱊; 뱊; 뱊; ) HANGUL SYLLABLE BAEP
+BC4B;BC4B;1107 1162 11C2;BC4B;1107 1162 11C2; # (뱋; 뱋; 뱋; 뱋; 뱋; ) HANGUL SYLLABLE BAEH
+BC4C;BC4C;1107 1163;BC4C;1107 1163; # (뱌; 뱌; 뱌; 뱌; 뱌; ) HANGUL SYLLABLE BYA
+BC4D;BC4D;1107 1163 11A8;BC4D;1107 1163 11A8; # (뱍; 뱍; 뱍; 뱍; 뱍; ) HANGUL SYLLABLE BYAG
+BC4E;BC4E;1107 1163 11A9;BC4E;1107 1163 11A9; # (뱎; 뱎; 뱎; 뱎; 뱎; ) HANGUL SYLLABLE BYAGG
+BC4F;BC4F;1107 1163 11AA;BC4F;1107 1163 11AA; # (뱏; 뱏; 뱏; 뱏; 뱏; ) HANGUL SYLLABLE BYAGS
+BC50;BC50;1107 1163 11AB;BC50;1107 1163 11AB; # (뱐; 뱐; 뱐; 뱐; 뱐; ) HANGUL SYLLABLE BYAN
+BC51;BC51;1107 1163 11AC;BC51;1107 1163 11AC; # (뱑; 뱑; 뱑; 뱑; 뱑; ) HANGUL SYLLABLE BYANJ
+BC52;BC52;1107 1163 11AD;BC52;1107 1163 11AD; # (뱒; 뱒; 뱒; 뱒; 뱒; ) HANGUL SYLLABLE BYANH
+BC53;BC53;1107 1163 11AE;BC53;1107 1163 11AE; # (뱓; 뱓; 뱓; 뱓; 뱓; ) HANGUL SYLLABLE BYAD
+BC54;BC54;1107 1163 11AF;BC54;1107 1163 11AF; # (뱔; 뱔; 뱔; 뱔; 뱔; ) HANGUL SYLLABLE BYAL
+BC55;BC55;1107 1163 11B0;BC55;1107 1163 11B0; # (뱕; 뱕; 뱕; 뱕; 뱕; ) HANGUL SYLLABLE BYALG
+BC56;BC56;1107 1163 11B1;BC56;1107 1163 11B1; # (뱖; 뱖; 뱖; 뱖; 뱖; ) HANGUL SYLLABLE BYALM
+BC57;BC57;1107 1163 11B2;BC57;1107 1163 11B2; # (뱗; 뱗; 뱗; 뱗; 뱗; ) HANGUL SYLLABLE BYALB
+BC58;BC58;1107 1163 11B3;BC58;1107 1163 11B3; # (뱘; 뱘; 뱘; 뱘; 뱘; ) HANGUL SYLLABLE BYALS
+BC59;BC59;1107 1163 11B4;BC59;1107 1163 11B4; # (뱙; 뱙; 뱙; 뱙; 뱙; ) HANGUL SYLLABLE BYALT
+BC5A;BC5A;1107 1163 11B5;BC5A;1107 1163 11B5; # (뱚; 뱚; 뱚; 뱚; 뱚; ) HANGUL SYLLABLE BYALP
+BC5B;BC5B;1107 1163 11B6;BC5B;1107 1163 11B6; # (뱛; 뱛; 뱛; 뱛; 뱛; ) HANGUL SYLLABLE BYALH
+BC5C;BC5C;1107 1163 11B7;BC5C;1107 1163 11B7; # (뱜; 뱜; 뱜; 뱜; 뱜; ) HANGUL SYLLABLE BYAM
+BC5D;BC5D;1107 1163 11B8;BC5D;1107 1163 11B8; # (뱝; 뱝; 뱝; 뱝; 뱝; ) HANGUL SYLLABLE BYAB
+BC5E;BC5E;1107 1163 11B9;BC5E;1107 1163 11B9; # (뱞; 뱞; 뱞; 뱞; 뱞; ) HANGUL SYLLABLE BYABS
+BC5F;BC5F;1107 1163 11BA;BC5F;1107 1163 11BA; # (뱟; 뱟; 뱟; 뱟; 뱟; ) HANGUL SYLLABLE BYAS
+BC60;BC60;1107 1163 11BB;BC60;1107 1163 11BB; # (뱠; 뱠; 뱠; 뱠; 뱠; ) HANGUL SYLLABLE BYASS
+BC61;BC61;1107 1163 11BC;BC61;1107 1163 11BC; # (뱡; 뱡; 뱡; 뱡; 뱡; ) HANGUL SYLLABLE BYANG
+BC62;BC62;1107 1163 11BD;BC62;1107 1163 11BD; # (뱢; 뱢; 뱢; 뱢; 뱢; ) HANGUL SYLLABLE BYAJ
+BC63;BC63;1107 1163 11BE;BC63;1107 1163 11BE; # (뱣; 뱣; 뱣; 뱣; 뱣; ) HANGUL SYLLABLE BYAC
+BC64;BC64;1107 1163 11BF;BC64;1107 1163 11BF; # (뱤; 뱤; 뱤; 뱤; 뱤; ) HANGUL SYLLABLE BYAK
+BC65;BC65;1107 1163 11C0;BC65;1107 1163 11C0; # (뱥; 뱥; 뱥; 뱥; 뱥; ) HANGUL SYLLABLE BYAT
+BC66;BC66;1107 1163 11C1;BC66;1107 1163 11C1; # (뱦; 뱦; 뱦; 뱦; 뱦; ) HANGUL SYLLABLE BYAP
+BC67;BC67;1107 1163 11C2;BC67;1107 1163 11C2; # (뱧; 뱧; 뱧; 뱧; 뱧; ) HANGUL SYLLABLE BYAH
+BC68;BC68;1107 1164;BC68;1107 1164; # (뱨; 뱨; 뱨; 뱨; 뱨; ) HANGUL SYLLABLE BYAE
+BC69;BC69;1107 1164 11A8;BC69;1107 1164 11A8; # (뱩; 뱩; 뱩; 뱩; 뱩; ) HANGUL SYLLABLE BYAEG
+BC6A;BC6A;1107 1164 11A9;BC6A;1107 1164 11A9; # (뱪; 뱪; 뱪; 뱪; 뱪; ) HANGUL SYLLABLE BYAEGG
+BC6B;BC6B;1107 1164 11AA;BC6B;1107 1164 11AA; # (뱫; 뱫; 뱫; 뱫; 뱫; ) HANGUL SYLLABLE BYAEGS
+BC6C;BC6C;1107 1164 11AB;BC6C;1107 1164 11AB; # (뱬; 뱬; 뱬; 뱬; 뱬; ) HANGUL SYLLABLE BYAEN
+BC6D;BC6D;1107 1164 11AC;BC6D;1107 1164 11AC; # (뱭; 뱭; 뱭; 뱭; 뱭; ) HANGUL SYLLABLE BYAENJ
+BC6E;BC6E;1107 1164 11AD;BC6E;1107 1164 11AD; # (뱮; 뱮; 뱮; 뱮; 뱮; ) HANGUL SYLLABLE BYAENH
+BC6F;BC6F;1107 1164 11AE;BC6F;1107 1164 11AE; # (뱯; 뱯; 뱯; 뱯; 뱯; ) HANGUL SYLLABLE BYAED
+BC70;BC70;1107 1164 11AF;BC70;1107 1164 11AF; # (뱰; 뱰; 뱰; 뱰; 뱰; ) HANGUL SYLLABLE BYAEL
+BC71;BC71;1107 1164 11B0;BC71;1107 1164 11B0; # (뱱; 뱱; 뱱; 뱱; 뱱; ) HANGUL SYLLABLE BYAELG
+BC72;BC72;1107 1164 11B1;BC72;1107 1164 11B1; # (뱲; 뱲; 뱲; 뱲; 뱲; ) HANGUL SYLLABLE BYAELM
+BC73;BC73;1107 1164 11B2;BC73;1107 1164 11B2; # (뱳; 뱳; 뱳; 뱳; 뱳; ) HANGUL SYLLABLE BYAELB
+BC74;BC74;1107 1164 11B3;BC74;1107 1164 11B3; # (뱴; 뱴; 뱴; 뱴; 뱴; ) HANGUL SYLLABLE BYAELS
+BC75;BC75;1107 1164 11B4;BC75;1107 1164 11B4; # (뱵; 뱵; 뱵; 뱵; 뱵; ) HANGUL SYLLABLE BYAELT
+BC76;BC76;1107 1164 11B5;BC76;1107 1164 11B5; # (뱶; 뱶; 뱶; 뱶; 뱶; ) HANGUL SYLLABLE BYAELP
+BC77;BC77;1107 1164 11B6;BC77;1107 1164 11B6; # (뱷; 뱷; 뱷; 뱷; 뱷; ) HANGUL SYLLABLE BYAELH
+BC78;BC78;1107 1164 11B7;BC78;1107 1164 11B7; # (뱸; 뱸; 뱸; 뱸; 뱸; ) HANGUL SYLLABLE BYAEM
+BC79;BC79;1107 1164 11B8;BC79;1107 1164 11B8; # (뱹; 뱹; 뱹; 뱹; 뱹; ) HANGUL SYLLABLE BYAEB
+BC7A;BC7A;1107 1164 11B9;BC7A;1107 1164 11B9; # (뱺; 뱺; 뱺; 뱺; 뱺; ) HANGUL SYLLABLE BYAEBS
+BC7B;BC7B;1107 1164 11BA;BC7B;1107 1164 11BA; # (뱻; 뱻; 뱻; 뱻; 뱻; ) HANGUL SYLLABLE BYAES
+BC7C;BC7C;1107 1164 11BB;BC7C;1107 1164 11BB; # (뱼; 뱼; 뱼; 뱼; 뱼; ) HANGUL SYLLABLE BYAESS
+BC7D;BC7D;1107 1164 11BC;BC7D;1107 1164 11BC; # (뱽; 뱽; 뱽; 뱽; 뱽; ) HANGUL SYLLABLE BYAENG
+BC7E;BC7E;1107 1164 11BD;BC7E;1107 1164 11BD; # (뱾; 뱾; 뱾; 뱾; 뱾; ) HANGUL SYLLABLE BYAEJ
+BC7F;BC7F;1107 1164 11BE;BC7F;1107 1164 11BE; # (뱿; 뱿; 뱿; 뱿; 뱿; ) HANGUL SYLLABLE BYAEC
+BC80;BC80;1107 1164 11BF;BC80;1107 1164 11BF; # (벀; 벀; 벀; 벀; 벀; ) HANGUL SYLLABLE BYAEK
+BC81;BC81;1107 1164 11C0;BC81;1107 1164 11C0; # (벁; 벁; 벁; 벁; 벁; ) HANGUL SYLLABLE BYAET
+BC82;BC82;1107 1164 11C1;BC82;1107 1164 11C1; # (벂; 벂; 벂; 벂; 벂; ) HANGUL SYLLABLE BYAEP
+BC83;BC83;1107 1164 11C2;BC83;1107 1164 11C2; # (벃; 벃; 벃; 벃; 벃; ) HANGUL SYLLABLE BYAEH
+BC84;BC84;1107 1165;BC84;1107 1165; # (버; 버; 버; 버; 버; ) HANGUL SYLLABLE BEO
+BC85;BC85;1107 1165 11A8;BC85;1107 1165 11A8; # (벅; 벅; 벅; 벅; 벅; ) HANGUL SYLLABLE BEOG
+BC86;BC86;1107 1165 11A9;BC86;1107 1165 11A9; # (벆; 벆; 벆; 벆; 벆; ) HANGUL SYLLABLE BEOGG
+BC87;BC87;1107 1165 11AA;BC87;1107 1165 11AA; # (벇; 벇; 벇; 벇; 벇; ) HANGUL SYLLABLE BEOGS
+BC88;BC88;1107 1165 11AB;BC88;1107 1165 11AB; # (번; 번; 번; 번; 번; ) HANGUL SYLLABLE BEON
+BC89;BC89;1107 1165 11AC;BC89;1107 1165 11AC; # (벉; 벉; 벉; 벉; 벉; ) HANGUL SYLLABLE BEONJ
+BC8A;BC8A;1107 1165 11AD;BC8A;1107 1165 11AD; # (벊; 벊; 벊; 벊; 벊; ) HANGUL SYLLABLE BEONH
+BC8B;BC8B;1107 1165 11AE;BC8B;1107 1165 11AE; # (벋; 벋; 벋; 벋; 벋; ) HANGUL SYLLABLE BEOD
+BC8C;BC8C;1107 1165 11AF;BC8C;1107 1165 11AF; # (벌; 벌; 벌; 벌; 벌; ) HANGUL SYLLABLE BEOL
+BC8D;BC8D;1107 1165 11B0;BC8D;1107 1165 11B0; # (벍; 벍; 벍; 벍; 벍; ) HANGUL SYLLABLE BEOLG
+BC8E;BC8E;1107 1165 11B1;BC8E;1107 1165 11B1; # (벎; 벎; 벎; 벎; 벎; ) HANGUL SYLLABLE BEOLM
+BC8F;BC8F;1107 1165 11B2;BC8F;1107 1165 11B2; # (벏; 벏; 벏; 벏; 벏; ) HANGUL SYLLABLE BEOLB
+BC90;BC90;1107 1165 11B3;BC90;1107 1165 11B3; # (벐; 벐; 벐; 벐; 벐; ) HANGUL SYLLABLE BEOLS
+BC91;BC91;1107 1165 11B4;BC91;1107 1165 11B4; # (벑; 벑; 벑; 벑; 벑; ) HANGUL SYLLABLE BEOLT
+BC92;BC92;1107 1165 11B5;BC92;1107 1165 11B5; # (벒; 벒; 벒; 벒; 벒; ) HANGUL SYLLABLE BEOLP
+BC93;BC93;1107 1165 11B6;BC93;1107 1165 11B6; # (벓; 벓; 벓; 벓; 벓; ) HANGUL SYLLABLE BEOLH
+BC94;BC94;1107 1165 11B7;BC94;1107 1165 11B7; # (범; 범; 범; 범; 범; ) HANGUL SYLLABLE BEOM
+BC95;BC95;1107 1165 11B8;BC95;1107 1165 11B8; # (법; 법; 법; 법; 법; ) HANGUL SYLLABLE BEOB
+BC96;BC96;1107 1165 11B9;BC96;1107 1165 11B9; # (벖; 벖; 벖; 벖; 벖; ) HANGUL SYLLABLE BEOBS
+BC97;BC97;1107 1165 11BA;BC97;1107 1165 11BA; # (벗; 벗; 벗; 벗; 벗; ) HANGUL SYLLABLE BEOS
+BC98;BC98;1107 1165 11BB;BC98;1107 1165 11BB; # (벘; 벘; 벘; 벘; 벘; ) HANGUL SYLLABLE BEOSS
+BC99;BC99;1107 1165 11BC;BC99;1107 1165 11BC; # (벙; 벙; 벙; 벙; 벙; ) HANGUL SYLLABLE BEONG
+BC9A;BC9A;1107 1165 11BD;BC9A;1107 1165 11BD; # (벚; 벚; 벚; 벚; 벚; ) HANGUL SYLLABLE BEOJ
+BC9B;BC9B;1107 1165 11BE;BC9B;1107 1165 11BE; # (벛; 벛; 벛; 벛; 벛; ) HANGUL SYLLABLE BEOC
+BC9C;BC9C;1107 1165 11BF;BC9C;1107 1165 11BF; # (벜; 벜; 벜; 벜; 벜; ) HANGUL SYLLABLE BEOK
+BC9D;BC9D;1107 1165 11C0;BC9D;1107 1165 11C0; # (벝; 벝; 벝; 벝; 벝; ) HANGUL SYLLABLE BEOT
+BC9E;BC9E;1107 1165 11C1;BC9E;1107 1165 11C1; # (벞; 벞; 벞; 벞; 벞; ) HANGUL SYLLABLE BEOP
+BC9F;BC9F;1107 1165 11C2;BC9F;1107 1165 11C2; # (벟; 벟; 벟; 벟; 벟; ) HANGUL SYLLABLE BEOH
+BCA0;BCA0;1107 1166;BCA0;1107 1166; # (베; 베; 베; 베; 베; ) HANGUL SYLLABLE BE
+BCA1;BCA1;1107 1166 11A8;BCA1;1107 1166 11A8; # (벡; 벡; 벡; 벡; 벡; ) HANGUL SYLLABLE BEG
+BCA2;BCA2;1107 1166 11A9;BCA2;1107 1166 11A9; # (벢; 벢; 벢; 벢; 벢; ) HANGUL SYLLABLE BEGG
+BCA3;BCA3;1107 1166 11AA;BCA3;1107 1166 11AA; # (벣; 벣; 벣; 벣; 벣; ) HANGUL SYLLABLE BEGS
+BCA4;BCA4;1107 1166 11AB;BCA4;1107 1166 11AB; # (벤; 벤; 벤; 벤; 벤; ) HANGUL SYLLABLE BEN
+BCA5;BCA5;1107 1166 11AC;BCA5;1107 1166 11AC; # (벥; 벥; 벥; 벥; 벥; ) HANGUL SYLLABLE BENJ
+BCA6;BCA6;1107 1166 11AD;BCA6;1107 1166 11AD; # (벦; 벦; 벦; 벦; 벦; ) HANGUL SYLLABLE BENH
+BCA7;BCA7;1107 1166 11AE;BCA7;1107 1166 11AE; # (벧; 벧; 벧; 벧; 벧; ) HANGUL SYLLABLE BED
+BCA8;BCA8;1107 1166 11AF;BCA8;1107 1166 11AF; # (벨; 벨; 벨; 벨; 벨; ) HANGUL SYLLABLE BEL
+BCA9;BCA9;1107 1166 11B0;BCA9;1107 1166 11B0; # (벩; 벩; 벩; 벩; 벩; ) HANGUL SYLLABLE BELG
+BCAA;BCAA;1107 1166 11B1;BCAA;1107 1166 11B1; # (벪; 벪; 벪; 벪; 벪; ) HANGUL SYLLABLE BELM
+BCAB;BCAB;1107 1166 11B2;BCAB;1107 1166 11B2; # (벫; 벫; 벫; 벫; 벫; ) HANGUL SYLLABLE BELB
+BCAC;BCAC;1107 1166 11B3;BCAC;1107 1166 11B3; # (벬; 벬; 벬; 벬; 벬; ) HANGUL SYLLABLE BELS
+BCAD;BCAD;1107 1166 11B4;BCAD;1107 1166 11B4; # (벭; 벭; 벭; 벭; 벭; ) HANGUL SYLLABLE BELT
+BCAE;BCAE;1107 1166 11B5;BCAE;1107 1166 11B5; # (벮; 벮; 벮; 벮; 벮; ) HANGUL SYLLABLE BELP
+BCAF;BCAF;1107 1166 11B6;BCAF;1107 1166 11B6; # (벯; 벯; 벯; 벯; 벯; ) HANGUL SYLLABLE BELH
+BCB0;BCB0;1107 1166 11B7;BCB0;1107 1166 11B7; # (벰; 벰; 벰; 벰; 벰; ) HANGUL SYLLABLE BEM
+BCB1;BCB1;1107 1166 11B8;BCB1;1107 1166 11B8; # (벱; 벱; 벱; 벱; 벱; ) HANGUL SYLLABLE BEB
+BCB2;BCB2;1107 1166 11B9;BCB2;1107 1166 11B9; # (벲; 벲; 벲; 벲; 벲; ) HANGUL SYLLABLE BEBS
+BCB3;BCB3;1107 1166 11BA;BCB3;1107 1166 11BA; # (벳; 벳; 벳; 벳; 벳; ) HANGUL SYLLABLE BES
+BCB4;BCB4;1107 1166 11BB;BCB4;1107 1166 11BB; # (벴; 벴; 벴; 벴; 벴; ) HANGUL SYLLABLE BESS
+BCB5;BCB5;1107 1166 11BC;BCB5;1107 1166 11BC; # (벵; 벵; 벵; 벵; 벵; ) HANGUL SYLLABLE BENG
+BCB6;BCB6;1107 1166 11BD;BCB6;1107 1166 11BD; # (벶; 벶; 벶; 벶; 벶; ) HANGUL SYLLABLE BEJ
+BCB7;BCB7;1107 1166 11BE;BCB7;1107 1166 11BE; # (벷; 벷; 벷; 벷; 벷; ) HANGUL SYLLABLE BEC
+BCB8;BCB8;1107 1166 11BF;BCB8;1107 1166 11BF; # (벸; 벸; 벸; 벸; 벸; ) HANGUL SYLLABLE BEK
+BCB9;BCB9;1107 1166 11C0;BCB9;1107 1166 11C0; # (벹; 벹; 벹; 벹; 벹; ) HANGUL SYLLABLE BET
+BCBA;BCBA;1107 1166 11C1;BCBA;1107 1166 11C1; # (벺; 벺; 벺; 벺; 벺; ) HANGUL SYLLABLE BEP
+BCBB;BCBB;1107 1166 11C2;BCBB;1107 1166 11C2; # (벻; 벻; 벻; 벻; 벻; ) HANGUL SYLLABLE BEH
+BCBC;BCBC;1107 1167;BCBC;1107 1167; # (벼; 벼; 벼; 벼; 벼; ) HANGUL SYLLABLE BYEO
+BCBD;BCBD;1107 1167 11A8;BCBD;1107 1167 11A8; # (벽; 벽; 벽; 벽; 벽; ) HANGUL SYLLABLE BYEOG
+BCBE;BCBE;1107 1167 11A9;BCBE;1107 1167 11A9; # (벾; 벾; 벾; 벾; 벾; ) HANGUL SYLLABLE BYEOGG
+BCBF;BCBF;1107 1167 11AA;BCBF;1107 1167 11AA; # (벿; 벿; 벿; 벿; 벿; ) HANGUL SYLLABLE BYEOGS
+BCC0;BCC0;1107 1167 11AB;BCC0;1107 1167 11AB; # (변; 변; 변; 변; 변; ) HANGUL SYLLABLE BYEON
+BCC1;BCC1;1107 1167 11AC;BCC1;1107 1167 11AC; # (볁; 볁; 볁; 볁; 볁; ) HANGUL SYLLABLE BYEONJ
+BCC2;BCC2;1107 1167 11AD;BCC2;1107 1167 11AD; # (볂; 볂; 볂; 볂; 볂; ) HANGUL SYLLABLE BYEONH
+BCC3;BCC3;1107 1167 11AE;BCC3;1107 1167 11AE; # (볃; 볃; 볃; 볃; 볃; ) HANGUL SYLLABLE BYEOD
+BCC4;BCC4;1107 1167 11AF;BCC4;1107 1167 11AF; # (별; 별; 별; 별; 별; ) HANGUL SYLLABLE BYEOL
+BCC5;BCC5;1107 1167 11B0;BCC5;1107 1167 11B0; # (볅; 볅; 볅; 볅; 볅; ) HANGUL SYLLABLE BYEOLG
+BCC6;BCC6;1107 1167 11B1;BCC6;1107 1167 11B1; # (볆; 볆; 볆; 볆; 볆; ) HANGUL SYLLABLE BYEOLM
+BCC7;BCC7;1107 1167 11B2;BCC7;1107 1167 11B2; # (볇; 볇; 볇; 볇; 볇; ) HANGUL SYLLABLE BYEOLB
+BCC8;BCC8;1107 1167 11B3;BCC8;1107 1167 11B3; # (볈; 볈; 볈; 볈; 볈; ) HANGUL SYLLABLE BYEOLS
+BCC9;BCC9;1107 1167 11B4;BCC9;1107 1167 11B4; # (볉; 볉; 볉; 볉; 볉; ) HANGUL SYLLABLE BYEOLT
+BCCA;BCCA;1107 1167 11B5;BCCA;1107 1167 11B5; # (볊; 볊; 볊; 볊; 볊; ) HANGUL SYLLABLE BYEOLP
+BCCB;BCCB;1107 1167 11B6;BCCB;1107 1167 11B6; # (볋; 볋; 볋; 볋; 볋; ) HANGUL SYLLABLE BYEOLH
+BCCC;BCCC;1107 1167 11B7;BCCC;1107 1167 11B7; # (볌; 볌; 볌; 볌; 볌; ) HANGUL SYLLABLE BYEOM
+BCCD;BCCD;1107 1167 11B8;BCCD;1107 1167 11B8; # (볍; 볍; 볍; 볍; 볍; ) HANGUL SYLLABLE BYEOB
+BCCE;BCCE;1107 1167 11B9;BCCE;1107 1167 11B9; # (볎; 볎; 볎; 볎; 볎; ) HANGUL SYLLABLE BYEOBS
+BCCF;BCCF;1107 1167 11BA;BCCF;1107 1167 11BA; # (볏; 볏; 볏; 볏; 볏; ) HANGUL SYLLABLE BYEOS
+BCD0;BCD0;1107 1167 11BB;BCD0;1107 1167 11BB; # (볐; 볐; 볐; 볐; 볐; ) HANGUL SYLLABLE BYEOSS
+BCD1;BCD1;1107 1167 11BC;BCD1;1107 1167 11BC; # (병; 병; 병; 병; 병; ) HANGUL SYLLABLE BYEONG
+BCD2;BCD2;1107 1167 11BD;BCD2;1107 1167 11BD; # (볒; 볒; 볒; 볒; 볒; ) HANGUL SYLLABLE BYEOJ
+BCD3;BCD3;1107 1167 11BE;BCD3;1107 1167 11BE; # (볓; 볓; 볓; 볓; 볓; ) HANGUL SYLLABLE BYEOC
+BCD4;BCD4;1107 1167 11BF;BCD4;1107 1167 11BF; # (볔; 볔; 볔; 볔; 볔; ) HANGUL SYLLABLE BYEOK
+BCD5;BCD5;1107 1167 11C0;BCD5;1107 1167 11C0; # (볕; 볕; 볕; 볕; 볕; ) HANGUL SYLLABLE BYEOT
+BCD6;BCD6;1107 1167 11C1;BCD6;1107 1167 11C1; # (볖; 볖; 볖; 볖; 볖; ) HANGUL SYLLABLE BYEOP
+BCD7;BCD7;1107 1167 11C2;BCD7;1107 1167 11C2; # (볗; 볗; 볗; 볗; 볗; ) HANGUL SYLLABLE BYEOH
+BCD8;BCD8;1107 1168;BCD8;1107 1168; # (볘; 볘; 볘; 볘; 볘; ) HANGUL SYLLABLE BYE
+BCD9;BCD9;1107 1168 11A8;BCD9;1107 1168 11A8; # (볙; 볙; 볙; 볙; 볙; ) HANGUL SYLLABLE BYEG
+BCDA;BCDA;1107 1168 11A9;BCDA;1107 1168 11A9; # (볚; 볚; 볚; 볚; 볚; ) HANGUL SYLLABLE BYEGG
+BCDB;BCDB;1107 1168 11AA;BCDB;1107 1168 11AA; # (볛; 볛; 볛; 볛; 볛; ) HANGUL SYLLABLE BYEGS
+BCDC;BCDC;1107 1168 11AB;BCDC;1107 1168 11AB; # (볜; 볜; 볜; 볜; 볜; ) HANGUL SYLLABLE BYEN
+BCDD;BCDD;1107 1168 11AC;BCDD;1107 1168 11AC; # (볝; 볝; 볝; 볝; 볝; ) HANGUL SYLLABLE BYENJ
+BCDE;BCDE;1107 1168 11AD;BCDE;1107 1168 11AD; # (볞; 볞; 볞; 볞; 볞; ) HANGUL SYLLABLE BYENH
+BCDF;BCDF;1107 1168 11AE;BCDF;1107 1168 11AE; # (볟; 볟; 볟; 볟; 볟; ) HANGUL SYLLABLE BYED
+BCE0;BCE0;1107 1168 11AF;BCE0;1107 1168 11AF; # (볠; 볠; 볠; 볠; 볠; ) HANGUL SYLLABLE BYEL
+BCE1;BCE1;1107 1168 11B0;BCE1;1107 1168 11B0; # (볡; 볡; 볡; 볡; 볡; ) HANGUL SYLLABLE BYELG
+BCE2;BCE2;1107 1168 11B1;BCE2;1107 1168 11B1; # (볢; 볢; 볢; 볢; 볢; ) HANGUL SYLLABLE BYELM
+BCE3;BCE3;1107 1168 11B2;BCE3;1107 1168 11B2; # (볣; 볣; 볣; 볣; 볣; ) HANGUL SYLLABLE BYELB
+BCE4;BCE4;1107 1168 11B3;BCE4;1107 1168 11B3; # (볤; 볤; 볤; 볤; 볤; ) HANGUL SYLLABLE BYELS
+BCE5;BCE5;1107 1168 11B4;BCE5;1107 1168 11B4; # (볥; 볥; 볥; 볥; 볥; ) HANGUL SYLLABLE BYELT
+BCE6;BCE6;1107 1168 11B5;BCE6;1107 1168 11B5; # (볦; 볦; 볦; 볦; 볦; ) HANGUL SYLLABLE BYELP
+BCE7;BCE7;1107 1168 11B6;BCE7;1107 1168 11B6; # (볧; 볧; 볧; 볧; 볧; ) HANGUL SYLLABLE BYELH
+BCE8;BCE8;1107 1168 11B7;BCE8;1107 1168 11B7; # (볨; 볨; 볨; 볨; 볨; ) HANGUL SYLLABLE BYEM
+BCE9;BCE9;1107 1168 11B8;BCE9;1107 1168 11B8; # (볩; 볩; 볩; 볩; 볩; ) HANGUL SYLLABLE BYEB
+BCEA;BCEA;1107 1168 11B9;BCEA;1107 1168 11B9; # (볪; 볪; 볪; 볪; 볪; ) HANGUL SYLLABLE BYEBS
+BCEB;BCEB;1107 1168 11BA;BCEB;1107 1168 11BA; # (볫; 볫; 볫; 볫; 볫; ) HANGUL SYLLABLE BYES
+BCEC;BCEC;1107 1168 11BB;BCEC;1107 1168 11BB; # (볬; 볬; 볬; 볬; 볬; ) HANGUL SYLLABLE BYESS
+BCED;BCED;1107 1168 11BC;BCED;1107 1168 11BC; # (볭; 볭; 볭; 볭; 볭; ) HANGUL SYLLABLE BYENG
+BCEE;BCEE;1107 1168 11BD;BCEE;1107 1168 11BD; # (볮; 볮; 볮; 볮; 볮; ) HANGUL SYLLABLE BYEJ
+BCEF;BCEF;1107 1168 11BE;BCEF;1107 1168 11BE; # (볯; 볯; 볯; 볯; 볯; ) HANGUL SYLLABLE BYEC
+BCF0;BCF0;1107 1168 11BF;BCF0;1107 1168 11BF; # (볰; 볰; 볰; 볰; 볰; ) HANGUL SYLLABLE BYEK
+BCF1;BCF1;1107 1168 11C0;BCF1;1107 1168 11C0; # (볱; 볱; 볱; 볱; 볱; ) HANGUL SYLLABLE BYET
+BCF2;BCF2;1107 1168 11C1;BCF2;1107 1168 11C1; # (볲; 볲; 볲; 볲; 볲; ) HANGUL SYLLABLE BYEP
+BCF3;BCF3;1107 1168 11C2;BCF3;1107 1168 11C2; # (볳; 볳; 볳; 볳; 볳; ) HANGUL SYLLABLE BYEH
+BCF4;BCF4;1107 1169;BCF4;1107 1169; # (보; 보; 보; 보; 보; ) HANGUL SYLLABLE BO
+BCF5;BCF5;1107 1169 11A8;BCF5;1107 1169 11A8; # (복; 복; 복; 복; 복; ) HANGUL SYLLABLE BOG
+BCF6;BCF6;1107 1169 11A9;BCF6;1107 1169 11A9; # (볶; 볶; 볶; 볶; 볶; ) HANGUL SYLLABLE BOGG
+BCF7;BCF7;1107 1169 11AA;BCF7;1107 1169 11AA; # (볷; 볷; 볷; 볷; 볷; ) HANGUL SYLLABLE BOGS
+BCF8;BCF8;1107 1169 11AB;BCF8;1107 1169 11AB; # (본; 본; 본; 본; 본; ) HANGUL SYLLABLE BON
+BCF9;BCF9;1107 1169 11AC;BCF9;1107 1169 11AC; # (볹; 볹; 볹; 볹; 볹; ) HANGUL SYLLABLE BONJ
+BCFA;BCFA;1107 1169 11AD;BCFA;1107 1169 11AD; # (볺; 볺; 볺; 볺; 볺; ) HANGUL SYLLABLE BONH
+BCFB;BCFB;1107 1169 11AE;BCFB;1107 1169 11AE; # (볻; 볻; 볻; 볻; 볻; ) HANGUL SYLLABLE BOD
+BCFC;BCFC;1107 1169 11AF;BCFC;1107 1169 11AF; # (볼; 볼; 볼; 볼; 볼; ) HANGUL SYLLABLE BOL
+BCFD;BCFD;1107 1169 11B0;BCFD;1107 1169 11B0; # (볽; 볽; 볽; 볽; 볽; ) HANGUL SYLLABLE BOLG
+BCFE;BCFE;1107 1169 11B1;BCFE;1107 1169 11B1; # (볾; 볾; 볾; 볾; 볾; ) HANGUL SYLLABLE BOLM
+BCFF;BCFF;1107 1169 11B2;BCFF;1107 1169 11B2; # (볿; 볿; 볿; 볿; 볿; ) HANGUL SYLLABLE BOLB
+BD00;BD00;1107 1169 11B3;BD00;1107 1169 11B3; # (봀; 봀; 봀; 봀; 봀; ) HANGUL SYLLABLE BOLS
+BD01;BD01;1107 1169 11B4;BD01;1107 1169 11B4; # (봁; 봁; 봁; 봁; 봁; ) HANGUL SYLLABLE BOLT
+BD02;BD02;1107 1169 11B5;BD02;1107 1169 11B5; # (봂; 봂; 봂; 봂; 봂; ) HANGUL SYLLABLE BOLP
+BD03;BD03;1107 1169 11B6;BD03;1107 1169 11B6; # (봃; 봃; 봃; 봃; 봃; ) HANGUL SYLLABLE BOLH
+BD04;BD04;1107 1169 11B7;BD04;1107 1169 11B7; # (봄; 봄; 봄; 봄; 봄; ) HANGUL SYLLABLE BOM
+BD05;BD05;1107 1169 11B8;BD05;1107 1169 11B8; # (봅; 봅; 봅; 봅; 봅; ) HANGUL SYLLABLE BOB
+BD06;BD06;1107 1169 11B9;BD06;1107 1169 11B9; # (봆; 봆; 봆; 봆; 봆; ) HANGUL SYLLABLE BOBS
+BD07;BD07;1107 1169 11BA;BD07;1107 1169 11BA; # (봇; 봇; 봇; 봇; 봇; ) HANGUL SYLLABLE BOS
+BD08;BD08;1107 1169 11BB;BD08;1107 1169 11BB; # (봈; 봈; 봈; 봈; 봈; ) HANGUL SYLLABLE BOSS
+BD09;BD09;1107 1169 11BC;BD09;1107 1169 11BC; # (봉; 봉; 봉; 봉; 봉; ) HANGUL SYLLABLE BONG
+BD0A;BD0A;1107 1169 11BD;BD0A;1107 1169 11BD; # (봊; 봊; 봊; 봊; 봊; ) HANGUL SYLLABLE BOJ
+BD0B;BD0B;1107 1169 11BE;BD0B;1107 1169 11BE; # (봋; 봋; 봋; 봋; 봋; ) HANGUL SYLLABLE BOC
+BD0C;BD0C;1107 1169 11BF;BD0C;1107 1169 11BF; # (봌; 봌; 봌; 봌; 봌; ) HANGUL SYLLABLE BOK
+BD0D;BD0D;1107 1169 11C0;BD0D;1107 1169 11C0; # (봍; 봍; 봍; 봍; 봍; ) HANGUL SYLLABLE BOT
+BD0E;BD0E;1107 1169 11C1;BD0E;1107 1169 11C1; # (봎; 봎; 봎; 봎; 봎; ) HANGUL SYLLABLE BOP
+BD0F;BD0F;1107 1169 11C2;BD0F;1107 1169 11C2; # (봏; 봏; 봏; 봏; 봏; ) HANGUL SYLLABLE BOH
+BD10;BD10;1107 116A;BD10;1107 116A; # (봐; 봐; 봐; 봐; 봐; ) HANGUL SYLLABLE BWA
+BD11;BD11;1107 116A 11A8;BD11;1107 116A 11A8; # (봑; 봑; 봑; 봑; 봑; ) HANGUL SYLLABLE BWAG
+BD12;BD12;1107 116A 11A9;BD12;1107 116A 11A9; # (봒; 봒; 봒; 봒; 봒; ) HANGUL SYLLABLE BWAGG
+BD13;BD13;1107 116A 11AA;BD13;1107 116A 11AA; # (봓; 봓; 봓; 봓; 봓; ) HANGUL SYLLABLE BWAGS
+BD14;BD14;1107 116A 11AB;BD14;1107 116A 11AB; # (봔; 봔; 봔; 봔; 봔; ) HANGUL SYLLABLE BWAN
+BD15;BD15;1107 116A 11AC;BD15;1107 116A 11AC; # (봕; 봕; 봕; 봕; 봕; ) HANGUL SYLLABLE BWANJ
+BD16;BD16;1107 116A 11AD;BD16;1107 116A 11AD; # (봖; 봖; 봖; 봖; 봖; ) HANGUL SYLLABLE BWANH
+BD17;BD17;1107 116A 11AE;BD17;1107 116A 11AE; # (봗; 봗; 봗; 봗; 봗; ) HANGUL SYLLABLE BWAD
+BD18;BD18;1107 116A 11AF;BD18;1107 116A 11AF; # (봘; 봘; 봘; 봘; 봘; ) HANGUL SYLLABLE BWAL
+BD19;BD19;1107 116A 11B0;BD19;1107 116A 11B0; # (봙; 봙; 봙; 봙; 봙; ) HANGUL SYLLABLE BWALG
+BD1A;BD1A;1107 116A 11B1;BD1A;1107 116A 11B1; # (봚; 봚; 봚; 봚; 봚; ) HANGUL SYLLABLE BWALM
+BD1B;BD1B;1107 116A 11B2;BD1B;1107 116A 11B2; # (봛; 봛; 봛; 봛; 봛; ) HANGUL SYLLABLE BWALB
+BD1C;BD1C;1107 116A 11B3;BD1C;1107 116A 11B3; # (봜; 봜; 봜; 봜; 봜; ) HANGUL SYLLABLE BWALS
+BD1D;BD1D;1107 116A 11B4;BD1D;1107 116A 11B4; # (봝; 봝; 봝; 봝; 봝; ) HANGUL SYLLABLE BWALT
+BD1E;BD1E;1107 116A 11B5;BD1E;1107 116A 11B5; # (봞; 봞; 봞; 봞; 봞; ) HANGUL SYLLABLE BWALP
+BD1F;BD1F;1107 116A 11B6;BD1F;1107 116A 11B6; # (봟; 봟; 봟; 봟; 봟; ) HANGUL SYLLABLE BWALH
+BD20;BD20;1107 116A 11B7;BD20;1107 116A 11B7; # (봠; 봠; 봠; 봠; 봠; ) HANGUL SYLLABLE BWAM
+BD21;BD21;1107 116A 11B8;BD21;1107 116A 11B8; # (봡; 봡; 봡; 봡; 봡; ) HANGUL SYLLABLE BWAB
+BD22;BD22;1107 116A 11B9;BD22;1107 116A 11B9; # (봢; 봢; 봢; 봢; 봢; ) HANGUL SYLLABLE BWABS
+BD23;BD23;1107 116A 11BA;BD23;1107 116A 11BA; # (봣; 봣; 봣; 봣; 봣; ) HANGUL SYLLABLE BWAS
+BD24;BD24;1107 116A 11BB;BD24;1107 116A 11BB; # (봤; 봤; 봤; 봤; 봤; ) HANGUL SYLLABLE BWASS
+BD25;BD25;1107 116A 11BC;BD25;1107 116A 11BC; # (봥; 봥; 봥; 봥; 봥; ) HANGUL SYLLABLE BWANG
+BD26;BD26;1107 116A 11BD;BD26;1107 116A 11BD; # (봦; 봦; 봦; 봦; 봦; ) HANGUL SYLLABLE BWAJ
+BD27;BD27;1107 116A 11BE;BD27;1107 116A 11BE; # (봧; 봧; 봧; 봧; 봧; ) HANGUL SYLLABLE BWAC
+BD28;BD28;1107 116A 11BF;BD28;1107 116A 11BF; # (봨; 봨; 봨; 봨; 봨; ) HANGUL SYLLABLE BWAK
+BD29;BD29;1107 116A 11C0;BD29;1107 116A 11C0; # (봩; 봩; 봩; 봩; 봩; ) HANGUL SYLLABLE BWAT
+BD2A;BD2A;1107 116A 11C1;BD2A;1107 116A 11C1; # (봪; 봪; 봪; 봪; 봪; ) HANGUL SYLLABLE BWAP
+BD2B;BD2B;1107 116A 11C2;BD2B;1107 116A 11C2; # (봫; 봫; 봫; 봫; 봫; ) HANGUL SYLLABLE BWAH
+BD2C;BD2C;1107 116B;BD2C;1107 116B; # (봬; 봬; 봬; 봬; 봬; ) HANGUL SYLLABLE BWAE
+BD2D;BD2D;1107 116B 11A8;BD2D;1107 116B 11A8; # (봭; 봭; 봭; 봭; 봭; ) HANGUL SYLLABLE BWAEG
+BD2E;BD2E;1107 116B 11A9;BD2E;1107 116B 11A9; # (봮; 봮; 봮; 봮; 봮; ) HANGUL SYLLABLE BWAEGG
+BD2F;BD2F;1107 116B 11AA;BD2F;1107 116B 11AA; # (봯; 봯; 봯; 봯; 봯; ) HANGUL SYLLABLE BWAEGS
+BD30;BD30;1107 116B 11AB;BD30;1107 116B 11AB; # (봰; 봰; 봰; 봰; 봰; ) HANGUL SYLLABLE BWAEN
+BD31;BD31;1107 116B 11AC;BD31;1107 116B 11AC; # (봱; 봱; 봱; 봱; 봱; ) HANGUL SYLLABLE BWAENJ
+BD32;BD32;1107 116B 11AD;BD32;1107 116B 11AD; # (봲; 봲; 봲; 봲; 봲; ) HANGUL SYLLABLE BWAENH
+BD33;BD33;1107 116B 11AE;BD33;1107 116B 11AE; # (봳; 봳; 봳; 봳; 봳; ) HANGUL SYLLABLE BWAED
+BD34;BD34;1107 116B 11AF;BD34;1107 116B 11AF; # (봴; 봴; 봴; 봴; 봴; ) HANGUL SYLLABLE BWAEL
+BD35;BD35;1107 116B 11B0;BD35;1107 116B 11B0; # (봵; 봵; 봵; 봵; 봵; ) HANGUL SYLLABLE BWAELG
+BD36;BD36;1107 116B 11B1;BD36;1107 116B 11B1; # (봶; 봶; 봶; 봶; 봶; ) HANGUL SYLLABLE BWAELM
+BD37;BD37;1107 116B 11B2;BD37;1107 116B 11B2; # (봷; 봷; 봷; 봷; 봷; ) HANGUL SYLLABLE BWAELB
+BD38;BD38;1107 116B 11B3;BD38;1107 116B 11B3; # (봸; 봸; 봸; 봸; 봸; ) HANGUL SYLLABLE BWAELS
+BD39;BD39;1107 116B 11B4;BD39;1107 116B 11B4; # (봹; 봹; 봹; 봹; 봹; ) HANGUL SYLLABLE BWAELT
+BD3A;BD3A;1107 116B 11B5;BD3A;1107 116B 11B5; # (봺; 봺; 봺; 봺; 봺; ) HANGUL SYLLABLE BWAELP
+BD3B;BD3B;1107 116B 11B6;BD3B;1107 116B 11B6; # (봻; 봻; 봻; 봻; 봻; ) HANGUL SYLLABLE BWAELH
+BD3C;BD3C;1107 116B 11B7;BD3C;1107 116B 11B7; # (봼; 봼; 봼; 봼; 봼; ) HANGUL SYLLABLE BWAEM
+BD3D;BD3D;1107 116B 11B8;BD3D;1107 116B 11B8; # (봽; 봽; 봽; 봽; 봽; ) HANGUL SYLLABLE BWAEB
+BD3E;BD3E;1107 116B 11B9;BD3E;1107 116B 11B9; # (봾; 봾; 봾; 봾; 봾; ) HANGUL SYLLABLE BWAEBS
+BD3F;BD3F;1107 116B 11BA;BD3F;1107 116B 11BA; # (봿; 봿; 봿; 봿; 봿; ) HANGUL SYLLABLE BWAES
+BD40;BD40;1107 116B 11BB;BD40;1107 116B 11BB; # (뵀; 뵀; 뵀; 뵀; 뵀; ) HANGUL SYLLABLE BWAESS
+BD41;BD41;1107 116B 11BC;BD41;1107 116B 11BC; # (뵁; 뵁; 뵁; 뵁; 뵁; ) HANGUL SYLLABLE BWAENG
+BD42;BD42;1107 116B 11BD;BD42;1107 116B 11BD; # (뵂; 뵂; 뵂; 뵂; 뵂; ) HANGUL SYLLABLE BWAEJ
+BD43;BD43;1107 116B 11BE;BD43;1107 116B 11BE; # (뵃; 뵃; 뵃; 뵃; 뵃; ) HANGUL SYLLABLE BWAEC
+BD44;BD44;1107 116B 11BF;BD44;1107 116B 11BF; # (뵄; 뵄; 뵄; 뵄; 뵄; ) HANGUL SYLLABLE BWAEK
+BD45;BD45;1107 116B 11C0;BD45;1107 116B 11C0; # (뵅; 뵅; 뵅; 뵅; 뵅; ) HANGUL SYLLABLE BWAET
+BD46;BD46;1107 116B 11C1;BD46;1107 116B 11C1; # (뵆; 뵆; 뵆; 뵆; 뵆; ) HANGUL SYLLABLE BWAEP
+BD47;BD47;1107 116B 11C2;BD47;1107 116B 11C2; # (뵇; 뵇; 뵇; 뵇; 뵇; ) HANGUL SYLLABLE BWAEH
+BD48;BD48;1107 116C;BD48;1107 116C; # (뵈; 뵈; 뵈; 뵈; 뵈; ) HANGUL SYLLABLE BOE
+BD49;BD49;1107 116C 11A8;BD49;1107 116C 11A8; # (뵉; 뵉; 뵉; 뵉; 뵉; ) HANGUL SYLLABLE BOEG
+BD4A;BD4A;1107 116C 11A9;BD4A;1107 116C 11A9; # (뵊; 뵊; 뵊; 뵊; 뵊; ) HANGUL SYLLABLE BOEGG
+BD4B;BD4B;1107 116C 11AA;BD4B;1107 116C 11AA; # (뵋; 뵋; 뵋; 뵋; 뵋; ) HANGUL SYLLABLE BOEGS
+BD4C;BD4C;1107 116C 11AB;BD4C;1107 116C 11AB; # (뵌; 뵌; 뵌; 뵌; 뵌; ) HANGUL SYLLABLE BOEN
+BD4D;BD4D;1107 116C 11AC;BD4D;1107 116C 11AC; # (뵍; 뵍; 뵍; 뵍; 뵍; ) HANGUL SYLLABLE BOENJ
+BD4E;BD4E;1107 116C 11AD;BD4E;1107 116C 11AD; # (뵎; 뵎; 뵎; 뵎; 뵎; ) HANGUL SYLLABLE BOENH
+BD4F;BD4F;1107 116C 11AE;BD4F;1107 116C 11AE; # (뵏; 뵏; 뵏; 뵏; 뵏; ) HANGUL SYLLABLE BOED
+BD50;BD50;1107 116C 11AF;BD50;1107 116C 11AF; # (뵐; 뵐; 뵐; 뵐; 뵐; ) HANGUL SYLLABLE BOEL
+BD51;BD51;1107 116C 11B0;BD51;1107 116C 11B0; # (뵑; 뵑; 뵑; 뵑; 뵑; ) HANGUL SYLLABLE BOELG
+BD52;BD52;1107 116C 11B1;BD52;1107 116C 11B1; # (뵒; 뵒; 뵒; 뵒; 뵒; ) HANGUL SYLLABLE BOELM
+BD53;BD53;1107 116C 11B2;BD53;1107 116C 11B2; # (뵓; 뵓; 뵓; 뵓; 뵓; ) HANGUL SYLLABLE BOELB
+BD54;BD54;1107 116C 11B3;BD54;1107 116C 11B3; # (뵔; 뵔; 뵔; 뵔; 뵔; ) HANGUL SYLLABLE BOELS
+BD55;BD55;1107 116C 11B4;BD55;1107 116C 11B4; # (뵕; 뵕; 뵕; 뵕; 뵕; ) HANGUL SYLLABLE BOELT
+BD56;BD56;1107 116C 11B5;BD56;1107 116C 11B5; # (뵖; 뵖; 뵖; 뵖; 뵖; ) HANGUL SYLLABLE BOELP
+BD57;BD57;1107 116C 11B6;BD57;1107 116C 11B6; # (뵗; 뵗; 뵗; 뵗; 뵗; ) HANGUL SYLLABLE BOELH
+BD58;BD58;1107 116C 11B7;BD58;1107 116C 11B7; # (뵘; 뵘; 뵘; 뵘; 뵘; ) HANGUL SYLLABLE BOEM
+BD59;BD59;1107 116C 11B8;BD59;1107 116C 11B8; # (뵙; 뵙; 뵙; 뵙; 뵙; ) HANGUL SYLLABLE BOEB
+BD5A;BD5A;1107 116C 11B9;BD5A;1107 116C 11B9; # (뵚; 뵚; 뵚; 뵚; 뵚; ) HANGUL SYLLABLE BOEBS
+BD5B;BD5B;1107 116C 11BA;BD5B;1107 116C 11BA; # (뵛; 뵛; 뵛; 뵛; 뵛; ) HANGUL SYLLABLE BOES
+BD5C;BD5C;1107 116C 11BB;BD5C;1107 116C 11BB; # (뵜; 뵜; 뵜; 뵜; 뵜; ) HANGUL SYLLABLE BOESS
+BD5D;BD5D;1107 116C 11BC;BD5D;1107 116C 11BC; # (뵝; 뵝; 뵝; 뵝; 뵝; ) HANGUL SYLLABLE BOENG
+BD5E;BD5E;1107 116C 11BD;BD5E;1107 116C 11BD; # (뵞; 뵞; 뵞; 뵞; 뵞; ) HANGUL SYLLABLE BOEJ
+BD5F;BD5F;1107 116C 11BE;BD5F;1107 116C 11BE; # (뵟; 뵟; 뵟; 뵟; 뵟; ) HANGUL SYLLABLE BOEC
+BD60;BD60;1107 116C 11BF;BD60;1107 116C 11BF; # (뵠; 뵠; 뵠; 뵠; 뵠; ) HANGUL SYLLABLE BOEK
+BD61;BD61;1107 116C 11C0;BD61;1107 116C 11C0; # (뵡; 뵡; 뵡; 뵡; 뵡; ) HANGUL SYLLABLE BOET
+BD62;BD62;1107 116C 11C1;BD62;1107 116C 11C1; # (뵢; 뵢; 뵢; 뵢; 뵢; ) HANGUL SYLLABLE BOEP
+BD63;BD63;1107 116C 11C2;BD63;1107 116C 11C2; # (뵣; 뵣; 뵣; 뵣; 뵣; ) HANGUL SYLLABLE BOEH
+BD64;BD64;1107 116D;BD64;1107 116D; # (뵤; 뵤; 뵤; 뵤; 뵤; ) HANGUL SYLLABLE BYO
+BD65;BD65;1107 116D 11A8;BD65;1107 116D 11A8; # (뵥; 뵥; 뵥; 뵥; 뵥; ) HANGUL SYLLABLE BYOG
+BD66;BD66;1107 116D 11A9;BD66;1107 116D 11A9; # (뵦; 뵦; 뵦; 뵦; 뵦; ) HANGUL SYLLABLE BYOGG
+BD67;BD67;1107 116D 11AA;BD67;1107 116D 11AA; # (뵧; 뵧; 뵧; 뵧; 뵧; ) HANGUL SYLLABLE BYOGS
+BD68;BD68;1107 116D 11AB;BD68;1107 116D 11AB; # (뵨; 뵨; 뵨; 뵨; 뵨; ) HANGUL SYLLABLE BYON
+BD69;BD69;1107 116D 11AC;BD69;1107 116D 11AC; # (뵩; 뵩; 뵩; 뵩; 뵩; ) HANGUL SYLLABLE BYONJ
+BD6A;BD6A;1107 116D 11AD;BD6A;1107 116D 11AD; # (뵪; 뵪; 뵪; 뵪; 뵪; ) HANGUL SYLLABLE BYONH
+BD6B;BD6B;1107 116D 11AE;BD6B;1107 116D 11AE; # (뵫; 뵫; 뵫; 뵫; 뵫; ) HANGUL SYLLABLE BYOD
+BD6C;BD6C;1107 116D 11AF;BD6C;1107 116D 11AF; # (뵬; 뵬; 뵬; 뵬; 뵬; ) HANGUL SYLLABLE BYOL
+BD6D;BD6D;1107 116D 11B0;BD6D;1107 116D 11B0; # (뵭; 뵭; 뵭; 뵭; 뵭; ) HANGUL SYLLABLE BYOLG
+BD6E;BD6E;1107 116D 11B1;BD6E;1107 116D 11B1; # (뵮; 뵮; 뵮; 뵮; 뵮; ) HANGUL SYLLABLE BYOLM
+BD6F;BD6F;1107 116D 11B2;BD6F;1107 116D 11B2; # (뵯; 뵯; 뵯; 뵯; 뵯; ) HANGUL SYLLABLE BYOLB
+BD70;BD70;1107 116D 11B3;BD70;1107 116D 11B3; # (뵰; 뵰; 뵰; 뵰; 뵰; ) HANGUL SYLLABLE BYOLS
+BD71;BD71;1107 116D 11B4;BD71;1107 116D 11B4; # (뵱; 뵱; 뵱; 뵱; 뵱; ) HANGUL SYLLABLE BYOLT
+BD72;BD72;1107 116D 11B5;BD72;1107 116D 11B5; # (뵲; 뵲; 뵲; 뵲; 뵲; ) HANGUL SYLLABLE BYOLP
+BD73;BD73;1107 116D 11B6;BD73;1107 116D 11B6; # (뵳; 뵳; 뵳; 뵳; 뵳; ) HANGUL SYLLABLE BYOLH
+BD74;BD74;1107 116D 11B7;BD74;1107 116D 11B7; # (뵴; 뵴; 뵴; 뵴; 뵴; ) HANGUL SYLLABLE BYOM
+BD75;BD75;1107 116D 11B8;BD75;1107 116D 11B8; # (뵵; 뵵; 뵵; 뵵; 뵵; ) HANGUL SYLLABLE BYOB
+BD76;BD76;1107 116D 11B9;BD76;1107 116D 11B9; # (뵶; 뵶; 뵶; 뵶; 뵶; ) HANGUL SYLLABLE BYOBS
+BD77;BD77;1107 116D 11BA;BD77;1107 116D 11BA; # (뵷; 뵷; 뵷; 뵷; 뵷; ) HANGUL SYLLABLE BYOS
+BD78;BD78;1107 116D 11BB;BD78;1107 116D 11BB; # (뵸; 뵸; 뵸; 뵸; 뵸; ) HANGUL SYLLABLE BYOSS
+BD79;BD79;1107 116D 11BC;BD79;1107 116D 11BC; # (뵹; 뵹; 뵹; 뵹; 뵹; ) HANGUL SYLLABLE BYONG
+BD7A;BD7A;1107 116D 11BD;BD7A;1107 116D 11BD; # (뵺; 뵺; 뵺; 뵺; 뵺; ) HANGUL SYLLABLE BYOJ
+BD7B;BD7B;1107 116D 11BE;BD7B;1107 116D 11BE; # (뵻; 뵻; 뵻; 뵻; 뵻; ) HANGUL SYLLABLE BYOC
+BD7C;BD7C;1107 116D 11BF;BD7C;1107 116D 11BF; # (뵼; 뵼; 뵼; 뵼; 뵼; ) HANGUL SYLLABLE BYOK
+BD7D;BD7D;1107 116D 11C0;BD7D;1107 116D 11C0; # (뵽; 뵽; 뵽; 뵽; 뵽; ) HANGUL SYLLABLE BYOT
+BD7E;BD7E;1107 116D 11C1;BD7E;1107 116D 11C1; # (뵾; 뵾; 뵾; 뵾; 뵾; ) HANGUL SYLLABLE BYOP
+BD7F;BD7F;1107 116D 11C2;BD7F;1107 116D 11C2; # (뵿; 뵿; 뵿; 뵿; 뵿; ) HANGUL SYLLABLE BYOH
+BD80;BD80;1107 116E;BD80;1107 116E; # (부; 부; 부; 부; 부; ) HANGUL SYLLABLE BU
+BD81;BD81;1107 116E 11A8;BD81;1107 116E 11A8; # (북; 북; 북; 북; 북; ) HANGUL SYLLABLE BUG
+BD82;BD82;1107 116E 11A9;BD82;1107 116E 11A9; # (붂; 붂; 붂; 붂; 붂; ) HANGUL SYLLABLE BUGG
+BD83;BD83;1107 116E 11AA;BD83;1107 116E 11AA; # (붃; 붃; 붃; 붃; 붃; ) HANGUL SYLLABLE BUGS
+BD84;BD84;1107 116E 11AB;BD84;1107 116E 11AB; # (분; 분; 분; 분; 분; ) HANGUL SYLLABLE BUN
+BD85;BD85;1107 116E 11AC;BD85;1107 116E 11AC; # (붅; 붅; 붅; 붅; 붅; ) HANGUL SYLLABLE BUNJ
+BD86;BD86;1107 116E 11AD;BD86;1107 116E 11AD; # (붆; 붆; 붆; 붆; 붆; ) HANGUL SYLLABLE BUNH
+BD87;BD87;1107 116E 11AE;BD87;1107 116E 11AE; # (붇; 붇; 붇; 붇; 붇; ) HANGUL SYLLABLE BUD
+BD88;BD88;1107 116E 11AF;BD88;1107 116E 11AF; # (불; 불; 불; 불; 불; ) HANGUL SYLLABLE BUL
+BD89;BD89;1107 116E 11B0;BD89;1107 116E 11B0; # (붉; 붉; 붉; 붉; 붉; ) HANGUL SYLLABLE BULG
+BD8A;BD8A;1107 116E 11B1;BD8A;1107 116E 11B1; # (붊; 붊; 붊; 붊; 붊; ) HANGUL SYLLABLE BULM
+BD8B;BD8B;1107 116E 11B2;BD8B;1107 116E 11B2; # (붋; 붋; 붋; 붋; 붋; ) HANGUL SYLLABLE BULB
+BD8C;BD8C;1107 116E 11B3;BD8C;1107 116E 11B3; # (붌; 붌; 붌; 붌; 붌; ) HANGUL SYLLABLE BULS
+BD8D;BD8D;1107 116E 11B4;BD8D;1107 116E 11B4; # (붍; 붍; 붍; 붍; 붍; ) HANGUL SYLLABLE BULT
+BD8E;BD8E;1107 116E 11B5;BD8E;1107 116E 11B5; # (붎; 붎; 붎; 붎; 붎; ) HANGUL SYLLABLE BULP
+BD8F;BD8F;1107 116E 11B6;BD8F;1107 116E 11B6; # (붏; 붏; 붏; 붏; 붏; ) HANGUL SYLLABLE BULH
+BD90;BD90;1107 116E 11B7;BD90;1107 116E 11B7; # (붐; 붐; 붐; 붐; 붐; ) HANGUL SYLLABLE BUM
+BD91;BD91;1107 116E 11B8;BD91;1107 116E 11B8; # (붑; 붑; 붑; 붑; 붑; ) HANGUL SYLLABLE BUB
+BD92;BD92;1107 116E 11B9;BD92;1107 116E 11B9; # (붒; 붒; 붒; 붒; 붒; ) HANGUL SYLLABLE BUBS
+BD93;BD93;1107 116E 11BA;BD93;1107 116E 11BA; # (붓; 붓; 붓; 붓; 붓; ) HANGUL SYLLABLE BUS
+BD94;BD94;1107 116E 11BB;BD94;1107 116E 11BB; # (붔; 붔; 붔; 붔; 붔; ) HANGUL SYLLABLE BUSS
+BD95;BD95;1107 116E 11BC;BD95;1107 116E 11BC; # (붕; 붕; 붕; 붕; 붕; ) HANGUL SYLLABLE BUNG
+BD96;BD96;1107 116E 11BD;BD96;1107 116E 11BD; # (붖; 붖; 붖; 붖; 붖; ) HANGUL SYLLABLE BUJ
+BD97;BD97;1107 116E 11BE;BD97;1107 116E 11BE; # (붗; 붗; 붗; 붗; 붗; ) HANGUL SYLLABLE BUC
+BD98;BD98;1107 116E 11BF;BD98;1107 116E 11BF; # (붘; 붘; 붘; 붘; 붘; ) HANGUL SYLLABLE BUK
+BD99;BD99;1107 116E 11C0;BD99;1107 116E 11C0; # (붙; 붙; 붙; 붙; 붙; ) HANGUL SYLLABLE BUT
+BD9A;BD9A;1107 116E 11C1;BD9A;1107 116E 11C1; # (붚; 붚; 붚; 붚; 붚; ) HANGUL SYLLABLE BUP
+BD9B;BD9B;1107 116E 11C2;BD9B;1107 116E 11C2; # (붛; 붛; 붛; 붛; 붛; ) HANGUL SYLLABLE BUH
+BD9C;BD9C;1107 116F;BD9C;1107 116F; # (붜; 붜; 붜; 붜; 붜; ) HANGUL SYLLABLE BWEO
+BD9D;BD9D;1107 116F 11A8;BD9D;1107 116F 11A8; # (붝; 붝; 붝; 붝; 붝; ) HANGUL SYLLABLE BWEOG
+BD9E;BD9E;1107 116F 11A9;BD9E;1107 116F 11A9; # (붞; 붞; 붞; 붞; 붞; ) HANGUL SYLLABLE BWEOGG
+BD9F;BD9F;1107 116F 11AA;BD9F;1107 116F 11AA; # (붟; 붟; 붟; 붟; 붟; ) HANGUL SYLLABLE BWEOGS
+BDA0;BDA0;1107 116F 11AB;BDA0;1107 116F 11AB; # (붠; 붠; 붠; 붠; 붠; ) HANGUL SYLLABLE BWEON
+BDA1;BDA1;1107 116F 11AC;BDA1;1107 116F 11AC; # (붡; 붡; 붡; 붡; 붡; ) HANGUL SYLLABLE BWEONJ
+BDA2;BDA2;1107 116F 11AD;BDA2;1107 116F 11AD; # (붢; 붢; 붢; 붢; 붢; ) HANGUL SYLLABLE BWEONH
+BDA3;BDA3;1107 116F 11AE;BDA3;1107 116F 11AE; # (붣; 붣; 붣; 붣; 붣; ) HANGUL SYLLABLE BWEOD
+BDA4;BDA4;1107 116F 11AF;BDA4;1107 116F 11AF; # (붤; 붤; 붤; 붤; 붤; ) HANGUL SYLLABLE BWEOL
+BDA5;BDA5;1107 116F 11B0;BDA5;1107 116F 11B0; # (붥; 붥; 붥; 붥; 붥; ) HANGUL SYLLABLE BWEOLG
+BDA6;BDA6;1107 116F 11B1;BDA6;1107 116F 11B1; # (붦; 붦; 붦; 붦; 붦; ) HANGUL SYLLABLE BWEOLM
+BDA7;BDA7;1107 116F 11B2;BDA7;1107 116F 11B2; # (붧; 붧; 붧; 붧; 붧; ) HANGUL SYLLABLE BWEOLB
+BDA8;BDA8;1107 116F 11B3;BDA8;1107 116F 11B3; # (붨; 붨; 붨; 붨; 붨; ) HANGUL SYLLABLE BWEOLS
+BDA9;BDA9;1107 116F 11B4;BDA9;1107 116F 11B4; # (붩; 붩; 붩; 붩; 붩; ) HANGUL SYLLABLE BWEOLT
+BDAA;BDAA;1107 116F 11B5;BDAA;1107 116F 11B5; # (붪; 붪; 붪; 붪; 붪; ) HANGUL SYLLABLE BWEOLP
+BDAB;BDAB;1107 116F 11B6;BDAB;1107 116F 11B6; # (붫; 붫; 붫; 붫; 붫; ) HANGUL SYLLABLE BWEOLH
+BDAC;BDAC;1107 116F 11B7;BDAC;1107 116F 11B7; # (붬; 붬; 붬; 붬; 붬; ) HANGUL SYLLABLE BWEOM
+BDAD;BDAD;1107 116F 11B8;BDAD;1107 116F 11B8; # (붭; 붭; 붭; 붭; 붭; ) HANGUL SYLLABLE BWEOB
+BDAE;BDAE;1107 116F 11B9;BDAE;1107 116F 11B9; # (붮; 붮; 붮; 붮; 붮; ) HANGUL SYLLABLE BWEOBS
+BDAF;BDAF;1107 116F 11BA;BDAF;1107 116F 11BA; # (붯; 붯; 붯; 붯; 붯; ) HANGUL SYLLABLE BWEOS
+BDB0;BDB0;1107 116F 11BB;BDB0;1107 116F 11BB; # (붰; 붰; 붰; 붰; 붰; ) HANGUL SYLLABLE BWEOSS
+BDB1;BDB1;1107 116F 11BC;BDB1;1107 116F 11BC; # (붱; 붱; 붱; 붱; 붱; ) HANGUL SYLLABLE BWEONG
+BDB2;BDB2;1107 116F 11BD;BDB2;1107 116F 11BD; # (붲; 붲; 붲; 붲; 붲; ) HANGUL SYLLABLE BWEOJ
+BDB3;BDB3;1107 116F 11BE;BDB3;1107 116F 11BE; # (붳; 붳; 붳; 붳; 붳; ) HANGUL SYLLABLE BWEOC
+BDB4;BDB4;1107 116F 11BF;BDB4;1107 116F 11BF; # (붴; 붴; 붴; 붴; 붴; ) HANGUL SYLLABLE BWEOK
+BDB5;BDB5;1107 116F 11C0;BDB5;1107 116F 11C0; # (붵; 붵; 붵; 붵; 붵; ) HANGUL SYLLABLE BWEOT
+BDB6;BDB6;1107 116F 11C1;BDB6;1107 116F 11C1; # (붶; 붶; 붶; 붶; 붶; ) HANGUL SYLLABLE BWEOP
+BDB7;BDB7;1107 116F 11C2;BDB7;1107 116F 11C2; # (붷; 붷; 붷; 붷; 붷; ) HANGUL SYLLABLE BWEOH
+BDB8;BDB8;1107 1170;BDB8;1107 1170; # (붸; 붸; 붸; 붸; 붸; ) HANGUL SYLLABLE BWE
+BDB9;BDB9;1107 1170 11A8;BDB9;1107 1170 11A8; # (붹; 붹; 붹; 붹; 붹; ) HANGUL SYLLABLE BWEG
+BDBA;BDBA;1107 1170 11A9;BDBA;1107 1170 11A9; # (붺; 붺; 붺; 붺; 붺; ) HANGUL SYLLABLE BWEGG
+BDBB;BDBB;1107 1170 11AA;BDBB;1107 1170 11AA; # (붻; 붻; 붻; 붻; 붻; ) HANGUL SYLLABLE BWEGS
+BDBC;BDBC;1107 1170 11AB;BDBC;1107 1170 11AB; # (붼; 붼; 붼; 붼; 붼; ) HANGUL SYLLABLE BWEN
+BDBD;BDBD;1107 1170 11AC;BDBD;1107 1170 11AC; # (붽; 붽; 붽; 붽; 붽; ) HANGUL SYLLABLE BWENJ
+BDBE;BDBE;1107 1170 11AD;BDBE;1107 1170 11AD; # (붾; 붾; 붾; 붾; 붾; ) HANGUL SYLLABLE BWENH
+BDBF;BDBF;1107 1170 11AE;BDBF;1107 1170 11AE; # (붿; 붿; 붿; 붿; 붿; ) HANGUL SYLLABLE BWED
+BDC0;BDC0;1107 1170 11AF;BDC0;1107 1170 11AF; # (뷀; 뷀; 뷀; 뷀; 뷀; ) HANGUL SYLLABLE BWEL
+BDC1;BDC1;1107 1170 11B0;BDC1;1107 1170 11B0; # (뷁; 뷁; 뷁; 뷁; 뷁; ) HANGUL SYLLABLE BWELG
+BDC2;BDC2;1107 1170 11B1;BDC2;1107 1170 11B1; # (뷂; 뷂; 뷂; 뷂; 뷂; ) HANGUL SYLLABLE BWELM
+BDC3;BDC3;1107 1170 11B2;BDC3;1107 1170 11B2; # (뷃; 뷃; 뷃; 뷃; 뷃; ) HANGUL SYLLABLE BWELB
+BDC4;BDC4;1107 1170 11B3;BDC4;1107 1170 11B3; # (뷄; 뷄; 뷄; 뷄; 뷄; ) HANGUL SYLLABLE BWELS
+BDC5;BDC5;1107 1170 11B4;BDC5;1107 1170 11B4; # (뷅; 뷅; 뷅; 뷅; 뷅; ) HANGUL SYLLABLE BWELT
+BDC6;BDC6;1107 1170 11B5;BDC6;1107 1170 11B5; # (뷆; 뷆; 뷆; 뷆; 뷆; ) HANGUL SYLLABLE BWELP
+BDC7;BDC7;1107 1170 11B6;BDC7;1107 1170 11B6; # (뷇; 뷇; 뷇; 뷇; 뷇; ) HANGUL SYLLABLE BWELH
+BDC8;BDC8;1107 1170 11B7;BDC8;1107 1170 11B7; # (뷈; 뷈; 뷈; 뷈; 뷈; ) HANGUL SYLLABLE BWEM
+BDC9;BDC9;1107 1170 11B8;BDC9;1107 1170 11B8; # (뷉; 뷉; 뷉; 뷉; 뷉; ) HANGUL SYLLABLE BWEB
+BDCA;BDCA;1107 1170 11B9;BDCA;1107 1170 11B9; # (뷊; 뷊; 뷊; 뷊; 뷊; ) HANGUL SYLLABLE BWEBS
+BDCB;BDCB;1107 1170 11BA;BDCB;1107 1170 11BA; # (뷋; 뷋; 뷋; 뷋; 뷋; ) HANGUL SYLLABLE BWES
+BDCC;BDCC;1107 1170 11BB;BDCC;1107 1170 11BB; # (뷌; 뷌; 뷌; 뷌; 뷌; ) HANGUL SYLLABLE BWESS
+BDCD;BDCD;1107 1170 11BC;BDCD;1107 1170 11BC; # (뷍; 뷍; 뷍; 뷍; 뷍; ) HANGUL SYLLABLE BWENG
+BDCE;BDCE;1107 1170 11BD;BDCE;1107 1170 11BD; # (뷎; 뷎; 뷎; 뷎; 뷎; ) HANGUL SYLLABLE BWEJ
+BDCF;BDCF;1107 1170 11BE;BDCF;1107 1170 11BE; # (뷏; 뷏; 뷏; 뷏; 뷏; ) HANGUL SYLLABLE BWEC
+BDD0;BDD0;1107 1170 11BF;BDD0;1107 1170 11BF; # (뷐; 뷐; 뷐; 뷐; 뷐; ) HANGUL SYLLABLE BWEK
+BDD1;BDD1;1107 1170 11C0;BDD1;1107 1170 11C0; # (뷑; 뷑; 뷑; 뷑; 뷑; ) HANGUL SYLLABLE BWET
+BDD2;BDD2;1107 1170 11C1;BDD2;1107 1170 11C1; # (뷒; 뷒; 뷒; 뷒; 뷒; ) HANGUL SYLLABLE BWEP
+BDD3;BDD3;1107 1170 11C2;BDD3;1107 1170 11C2; # (뷓; 뷓; 뷓; 뷓; 뷓; ) HANGUL SYLLABLE BWEH
+BDD4;BDD4;1107 1171;BDD4;1107 1171; # (뷔; 뷔; 뷔; 뷔; 뷔; ) HANGUL SYLLABLE BWI
+BDD5;BDD5;1107 1171 11A8;BDD5;1107 1171 11A8; # (뷕; 뷕; 뷕; 뷕; 뷕; ) HANGUL SYLLABLE BWIG
+BDD6;BDD6;1107 1171 11A9;BDD6;1107 1171 11A9; # (뷖; 뷖; 뷖; 뷖; 뷖; ) HANGUL SYLLABLE BWIGG
+BDD7;BDD7;1107 1171 11AA;BDD7;1107 1171 11AA; # (뷗; 뷗; 뷗; 뷗; 뷗; ) HANGUL SYLLABLE BWIGS
+BDD8;BDD8;1107 1171 11AB;BDD8;1107 1171 11AB; # (뷘; 뷘; 뷘; 뷘; 뷘; ) HANGUL SYLLABLE BWIN
+BDD9;BDD9;1107 1171 11AC;BDD9;1107 1171 11AC; # (뷙; 뷙; 뷙; 뷙; 뷙; ) HANGUL SYLLABLE BWINJ
+BDDA;BDDA;1107 1171 11AD;BDDA;1107 1171 11AD; # (뷚; 뷚; 뷚; 뷚; 뷚; ) HANGUL SYLLABLE BWINH
+BDDB;BDDB;1107 1171 11AE;BDDB;1107 1171 11AE; # (뷛; 뷛; 뷛; 뷛; 뷛; ) HANGUL SYLLABLE BWID
+BDDC;BDDC;1107 1171 11AF;BDDC;1107 1171 11AF; # (뷜; 뷜; 뷜; 뷜; 뷜; ) HANGUL SYLLABLE BWIL
+BDDD;BDDD;1107 1171 11B0;BDDD;1107 1171 11B0; # (뷝; 뷝; 뷝; 뷝; 뷝; ) HANGUL SYLLABLE BWILG
+BDDE;BDDE;1107 1171 11B1;BDDE;1107 1171 11B1; # (뷞; 뷞; 뷞; 뷞; 뷞; ) HANGUL SYLLABLE BWILM
+BDDF;BDDF;1107 1171 11B2;BDDF;1107 1171 11B2; # (뷟; 뷟; 뷟; 뷟; 뷟; ) HANGUL SYLLABLE BWILB
+BDE0;BDE0;1107 1171 11B3;BDE0;1107 1171 11B3; # (뷠; 뷠; 뷠; 뷠; 뷠; ) HANGUL SYLLABLE BWILS
+BDE1;BDE1;1107 1171 11B4;BDE1;1107 1171 11B4; # (뷡; 뷡; 뷡; 뷡; 뷡; ) HANGUL SYLLABLE BWILT
+BDE2;BDE2;1107 1171 11B5;BDE2;1107 1171 11B5; # (뷢; 뷢; 뷢; 뷢; 뷢; ) HANGUL SYLLABLE BWILP
+BDE3;BDE3;1107 1171 11B6;BDE3;1107 1171 11B6; # (뷣; 뷣; 뷣; 뷣; 뷣; ) HANGUL SYLLABLE BWILH
+BDE4;BDE4;1107 1171 11B7;BDE4;1107 1171 11B7; # (뷤; 뷤; 뷤; 뷤; 뷤; ) HANGUL SYLLABLE BWIM
+BDE5;BDE5;1107 1171 11B8;BDE5;1107 1171 11B8; # (뷥; 뷥; 뷥; 뷥; 뷥; ) HANGUL SYLLABLE BWIB
+BDE6;BDE6;1107 1171 11B9;BDE6;1107 1171 11B9; # (뷦; 뷦; 뷦; 뷦; 뷦; ) HANGUL SYLLABLE BWIBS
+BDE7;BDE7;1107 1171 11BA;BDE7;1107 1171 11BA; # (뷧; 뷧; 뷧; 뷧; 뷧; ) HANGUL SYLLABLE BWIS
+BDE8;BDE8;1107 1171 11BB;BDE8;1107 1171 11BB; # (뷨; 뷨; 뷨; 뷨; 뷨; ) HANGUL SYLLABLE BWISS
+BDE9;BDE9;1107 1171 11BC;BDE9;1107 1171 11BC; # (뷩; 뷩; 뷩; 뷩; 뷩; ) HANGUL SYLLABLE BWING
+BDEA;BDEA;1107 1171 11BD;BDEA;1107 1171 11BD; # (뷪; 뷪; 뷪; 뷪; 뷪; ) HANGUL SYLLABLE BWIJ
+BDEB;BDEB;1107 1171 11BE;BDEB;1107 1171 11BE; # (뷫; 뷫; 뷫; 뷫; 뷫; ) HANGUL SYLLABLE BWIC
+BDEC;BDEC;1107 1171 11BF;BDEC;1107 1171 11BF; # (뷬; 뷬; 뷬; 뷬; 뷬; ) HANGUL SYLLABLE BWIK
+BDED;BDED;1107 1171 11C0;BDED;1107 1171 11C0; # (뷭; 뷭; 뷭; 뷭; 뷭; ) HANGUL SYLLABLE BWIT
+BDEE;BDEE;1107 1171 11C1;BDEE;1107 1171 11C1; # (뷮; 뷮; 뷮; 뷮; 뷮; ) HANGUL SYLLABLE BWIP
+BDEF;BDEF;1107 1171 11C2;BDEF;1107 1171 11C2; # (뷯; 뷯; 뷯; 뷯; 뷯; ) HANGUL SYLLABLE BWIH
+BDF0;BDF0;1107 1172;BDF0;1107 1172; # (뷰; 뷰; 뷰; 뷰; 뷰; ) HANGUL SYLLABLE BYU
+BDF1;BDF1;1107 1172 11A8;BDF1;1107 1172 11A8; # (뷱; 뷱; 뷱; 뷱; 뷱; ) HANGUL SYLLABLE BYUG
+BDF2;BDF2;1107 1172 11A9;BDF2;1107 1172 11A9; # (뷲; 뷲; 뷲; 뷲; 뷲; ) HANGUL SYLLABLE BYUGG
+BDF3;BDF3;1107 1172 11AA;BDF3;1107 1172 11AA; # (뷳; 뷳; 뷳; 뷳; 뷳; ) HANGUL SYLLABLE BYUGS
+BDF4;BDF4;1107 1172 11AB;BDF4;1107 1172 11AB; # (뷴; 뷴; 뷴; 뷴; 뷴; ) HANGUL SYLLABLE BYUN
+BDF5;BDF5;1107 1172 11AC;BDF5;1107 1172 11AC; # (뷵; 뷵; 뷵; 뷵; 뷵; ) HANGUL SYLLABLE BYUNJ
+BDF6;BDF6;1107 1172 11AD;BDF6;1107 1172 11AD; # (뷶; 뷶; 뷶; 뷶; 뷶; ) HANGUL SYLLABLE BYUNH
+BDF7;BDF7;1107 1172 11AE;BDF7;1107 1172 11AE; # (뷷; 뷷; 뷷; 뷷; 뷷; ) HANGUL SYLLABLE BYUD
+BDF8;BDF8;1107 1172 11AF;BDF8;1107 1172 11AF; # (뷸; 뷸; 뷸; 뷸; 뷸; ) HANGUL SYLLABLE BYUL
+BDF9;BDF9;1107 1172 11B0;BDF9;1107 1172 11B0; # (뷹; 뷹; 뷹; 뷹; 뷹; ) HANGUL SYLLABLE BYULG
+BDFA;BDFA;1107 1172 11B1;BDFA;1107 1172 11B1; # (뷺; 뷺; 뷺; 뷺; 뷺; ) HANGUL SYLLABLE BYULM
+BDFB;BDFB;1107 1172 11B2;BDFB;1107 1172 11B2; # (뷻; 뷻; 뷻; 뷻; 뷻; ) HANGUL SYLLABLE BYULB
+BDFC;BDFC;1107 1172 11B3;BDFC;1107 1172 11B3; # (뷼; 뷼; 뷼; 뷼; 뷼; ) HANGUL SYLLABLE BYULS
+BDFD;BDFD;1107 1172 11B4;BDFD;1107 1172 11B4; # (뷽; 뷽; 뷽; 뷽; 뷽; ) HANGUL SYLLABLE BYULT
+BDFE;BDFE;1107 1172 11B5;BDFE;1107 1172 11B5; # (뷾; 뷾; 뷾; 뷾; 뷾; ) HANGUL SYLLABLE BYULP
+BDFF;BDFF;1107 1172 11B6;BDFF;1107 1172 11B6; # (뷿; 뷿; 뷿; 뷿; 뷿; ) HANGUL SYLLABLE BYULH
+BE00;BE00;1107 1172 11B7;BE00;1107 1172 11B7; # (븀; 븀; 븀; 븀; 븀; ) HANGUL SYLLABLE BYUM
+BE01;BE01;1107 1172 11B8;BE01;1107 1172 11B8; # (븁; 븁; 븁; 븁; 븁; ) HANGUL SYLLABLE BYUB
+BE02;BE02;1107 1172 11B9;BE02;1107 1172 11B9; # (븂; 븂; 븂; 븂; 븂; ) HANGUL SYLLABLE BYUBS
+BE03;BE03;1107 1172 11BA;BE03;1107 1172 11BA; # (븃; 븃; 븃; 븃; 븃; ) HANGUL SYLLABLE BYUS
+BE04;BE04;1107 1172 11BB;BE04;1107 1172 11BB; # (븄; 븄; 븄; 븄; 븄; ) HANGUL SYLLABLE BYUSS
+BE05;BE05;1107 1172 11BC;BE05;1107 1172 11BC; # (븅; 븅; 븅; 븅; 븅; ) HANGUL SYLLABLE BYUNG
+BE06;BE06;1107 1172 11BD;BE06;1107 1172 11BD; # (븆; 븆; 븆; 븆; 븆; ) HANGUL SYLLABLE BYUJ
+BE07;BE07;1107 1172 11BE;BE07;1107 1172 11BE; # (븇; 븇; 븇; 븇; 븇; ) HANGUL SYLLABLE BYUC
+BE08;BE08;1107 1172 11BF;BE08;1107 1172 11BF; # (븈; 븈; 븈; 븈; 븈; ) HANGUL SYLLABLE BYUK
+BE09;BE09;1107 1172 11C0;BE09;1107 1172 11C0; # (븉; 븉; 븉; 븉; 븉; ) HANGUL SYLLABLE BYUT
+BE0A;BE0A;1107 1172 11C1;BE0A;1107 1172 11C1; # (븊; 븊; 븊; 븊; 븊; ) HANGUL SYLLABLE BYUP
+BE0B;BE0B;1107 1172 11C2;BE0B;1107 1172 11C2; # (븋; 븋; 븋; 븋; 븋; ) HANGUL SYLLABLE BYUH
+BE0C;BE0C;1107 1173;BE0C;1107 1173; # (브; 브; 브; 브; 브; ) HANGUL SYLLABLE BEU
+BE0D;BE0D;1107 1173 11A8;BE0D;1107 1173 11A8; # (븍; 븍; 븍; 븍; 븍; ) HANGUL SYLLABLE BEUG
+BE0E;BE0E;1107 1173 11A9;BE0E;1107 1173 11A9; # (븎; 븎; 븎; 븎; 븎; ) HANGUL SYLLABLE BEUGG
+BE0F;BE0F;1107 1173 11AA;BE0F;1107 1173 11AA; # (븏; 븏; 븏; 븏; 븏; ) HANGUL SYLLABLE BEUGS
+BE10;BE10;1107 1173 11AB;BE10;1107 1173 11AB; # (븐; 븐; 븐; 븐; 븐; ) HANGUL SYLLABLE BEUN
+BE11;BE11;1107 1173 11AC;BE11;1107 1173 11AC; # (븑; 븑; 븑; 븑; 븑; ) HANGUL SYLLABLE BEUNJ
+BE12;BE12;1107 1173 11AD;BE12;1107 1173 11AD; # (븒; 븒; 븒; 븒; 븒; ) HANGUL SYLLABLE BEUNH
+BE13;BE13;1107 1173 11AE;BE13;1107 1173 11AE; # (븓; 븓; 븓; 븓; 븓; ) HANGUL SYLLABLE BEUD
+BE14;BE14;1107 1173 11AF;BE14;1107 1173 11AF; # (블; 블; 블; 블; 블; ) HANGUL SYLLABLE BEUL
+BE15;BE15;1107 1173 11B0;BE15;1107 1173 11B0; # (븕; 븕; 븕; 븕; 븕; ) HANGUL SYLLABLE BEULG
+BE16;BE16;1107 1173 11B1;BE16;1107 1173 11B1; # (븖; 븖; 븖; 븖; 븖; ) HANGUL SYLLABLE BEULM
+BE17;BE17;1107 1173 11B2;BE17;1107 1173 11B2; # (븗; 븗; 븗; 븗; 븗; ) HANGUL SYLLABLE BEULB
+BE18;BE18;1107 1173 11B3;BE18;1107 1173 11B3; # (븘; 븘; 븘; 븘; 븘; ) HANGUL SYLLABLE BEULS
+BE19;BE19;1107 1173 11B4;BE19;1107 1173 11B4; # (븙; 븙; 븙; 븙; 븙; ) HANGUL SYLLABLE BEULT
+BE1A;BE1A;1107 1173 11B5;BE1A;1107 1173 11B5; # (븚; 븚; 븚; 븚; 븚; ) HANGUL SYLLABLE BEULP
+BE1B;BE1B;1107 1173 11B6;BE1B;1107 1173 11B6; # (븛; 븛; 븛; 븛; 븛; ) HANGUL SYLLABLE BEULH
+BE1C;BE1C;1107 1173 11B7;BE1C;1107 1173 11B7; # (븜; 븜; 븜; 븜; 븜; ) HANGUL SYLLABLE BEUM
+BE1D;BE1D;1107 1173 11B8;BE1D;1107 1173 11B8; # (븝; 븝; 븝; 븝; 븝; ) HANGUL SYLLABLE BEUB
+BE1E;BE1E;1107 1173 11B9;BE1E;1107 1173 11B9; # (븞; 븞; 븞; 븞; 븞; ) HANGUL SYLLABLE BEUBS
+BE1F;BE1F;1107 1173 11BA;BE1F;1107 1173 11BA; # (븟; 븟; 븟; 븟; 븟; ) HANGUL SYLLABLE BEUS
+BE20;BE20;1107 1173 11BB;BE20;1107 1173 11BB; # (븠; 븠; 븠; 븠; 븠; ) HANGUL SYLLABLE BEUSS
+BE21;BE21;1107 1173 11BC;BE21;1107 1173 11BC; # (븡; 븡; 븡; 븡; 븡; ) HANGUL SYLLABLE BEUNG
+BE22;BE22;1107 1173 11BD;BE22;1107 1173 11BD; # (븢; 븢; 븢; 븢; 븢; ) HANGUL SYLLABLE BEUJ
+BE23;BE23;1107 1173 11BE;BE23;1107 1173 11BE; # (븣; 븣; 븣; 븣; 븣; ) HANGUL SYLLABLE BEUC
+BE24;BE24;1107 1173 11BF;BE24;1107 1173 11BF; # (븤; 븤; 븤; 븤; 븤; ) HANGUL SYLLABLE BEUK
+BE25;BE25;1107 1173 11C0;BE25;1107 1173 11C0; # (븥; 븥; 븥; 븥; 븥; ) HANGUL SYLLABLE BEUT
+BE26;BE26;1107 1173 11C1;BE26;1107 1173 11C1; # (븦; 븦; 븦; 븦; 븦; ) HANGUL SYLLABLE BEUP
+BE27;BE27;1107 1173 11C2;BE27;1107 1173 11C2; # (븧; 븧; 븧; 븧; 븧; ) HANGUL SYLLABLE BEUH
+BE28;BE28;1107 1174;BE28;1107 1174; # (븨; 븨; 븨; 븨; 븨; ) HANGUL SYLLABLE BYI
+BE29;BE29;1107 1174 11A8;BE29;1107 1174 11A8; # (븩; 븩; 븩; 븩; 븩; ) HANGUL SYLLABLE BYIG
+BE2A;BE2A;1107 1174 11A9;BE2A;1107 1174 11A9; # (븪; 븪; 븪; 븪; 븪; ) HANGUL SYLLABLE BYIGG
+BE2B;BE2B;1107 1174 11AA;BE2B;1107 1174 11AA; # (븫; 븫; 븫; 븫; 븫; ) HANGUL SYLLABLE BYIGS
+BE2C;BE2C;1107 1174 11AB;BE2C;1107 1174 11AB; # (븬; 븬; 븬; 븬; 븬; ) HANGUL SYLLABLE BYIN
+BE2D;BE2D;1107 1174 11AC;BE2D;1107 1174 11AC; # (븭; 븭; 븭; 븭; 븭; ) HANGUL SYLLABLE BYINJ
+BE2E;BE2E;1107 1174 11AD;BE2E;1107 1174 11AD; # (븮; 븮; 븮; 븮; 븮; ) HANGUL SYLLABLE BYINH
+BE2F;BE2F;1107 1174 11AE;BE2F;1107 1174 11AE; # (븯; 븯; 븯; 븯; 븯; ) HANGUL SYLLABLE BYID
+BE30;BE30;1107 1174 11AF;BE30;1107 1174 11AF; # (븰; 븰; 븰; 븰; 븰; ) HANGUL SYLLABLE BYIL
+BE31;BE31;1107 1174 11B0;BE31;1107 1174 11B0; # (븱; 븱; 븱; 븱; 븱; ) HANGUL SYLLABLE BYILG
+BE32;BE32;1107 1174 11B1;BE32;1107 1174 11B1; # (븲; 븲; 븲; 븲; 븲; ) HANGUL SYLLABLE BYILM
+BE33;BE33;1107 1174 11B2;BE33;1107 1174 11B2; # (븳; 븳; 븳; 븳; 븳; ) HANGUL SYLLABLE BYILB
+BE34;BE34;1107 1174 11B3;BE34;1107 1174 11B3; # (븴; 븴; 븴; 븴; 븴; ) HANGUL SYLLABLE BYILS
+BE35;BE35;1107 1174 11B4;BE35;1107 1174 11B4; # (븵; 븵; 븵; 븵; 븵; ) HANGUL SYLLABLE BYILT
+BE36;BE36;1107 1174 11B5;BE36;1107 1174 11B5; # (븶; 븶; 븶; 븶; 븶; ) HANGUL SYLLABLE BYILP
+BE37;BE37;1107 1174 11B6;BE37;1107 1174 11B6; # (븷; 븷; 븷; 븷; 븷; ) HANGUL SYLLABLE BYILH
+BE38;BE38;1107 1174 11B7;BE38;1107 1174 11B7; # (븸; 븸; 븸; 븸; 븸; ) HANGUL SYLLABLE BYIM
+BE39;BE39;1107 1174 11B8;BE39;1107 1174 11B8; # (븹; 븹; 븹; 븹; 븹; ) HANGUL SYLLABLE BYIB
+BE3A;BE3A;1107 1174 11B9;BE3A;1107 1174 11B9; # (븺; 븺; 븺; 븺; 븺; ) HANGUL SYLLABLE BYIBS
+BE3B;BE3B;1107 1174 11BA;BE3B;1107 1174 11BA; # (븻; 븻; 븻; 븻; 븻; ) HANGUL SYLLABLE BYIS
+BE3C;BE3C;1107 1174 11BB;BE3C;1107 1174 11BB; # (븼; 븼; 븼; 븼; 븼; ) HANGUL SYLLABLE BYISS
+BE3D;BE3D;1107 1174 11BC;BE3D;1107 1174 11BC; # (븽; 븽; 븽; 븽; 븽; ) HANGUL SYLLABLE BYING
+BE3E;BE3E;1107 1174 11BD;BE3E;1107 1174 11BD; # (븾; 븾; 븾; 븾; 븾; ) HANGUL SYLLABLE BYIJ
+BE3F;BE3F;1107 1174 11BE;BE3F;1107 1174 11BE; # (븿; 븿; 븿; 븿; 븿; ) HANGUL SYLLABLE BYIC
+BE40;BE40;1107 1174 11BF;BE40;1107 1174 11BF; # (빀; 빀; 빀; 빀; 빀; ) HANGUL SYLLABLE BYIK
+BE41;BE41;1107 1174 11C0;BE41;1107 1174 11C0; # (빁; 빁; 빁; 빁; 빁; ) HANGUL SYLLABLE BYIT
+BE42;BE42;1107 1174 11C1;BE42;1107 1174 11C1; # (빂; 빂; 빂; 빂; 빂; ) HANGUL SYLLABLE BYIP
+BE43;BE43;1107 1174 11C2;BE43;1107 1174 11C2; # (빃; 빃; 빃; 빃; 빃; ) HANGUL SYLLABLE BYIH
+BE44;BE44;1107 1175;BE44;1107 1175; # (비; 비; 비; 비; 비; ) HANGUL SYLLABLE BI
+BE45;BE45;1107 1175 11A8;BE45;1107 1175 11A8; # (빅; 빅; 빅; 빅; 빅; ) HANGUL SYLLABLE BIG
+BE46;BE46;1107 1175 11A9;BE46;1107 1175 11A9; # (빆; 빆; 빆; 빆; 빆; ) HANGUL SYLLABLE BIGG
+BE47;BE47;1107 1175 11AA;BE47;1107 1175 11AA; # (빇; 빇; 빇; 빇; 빇; ) HANGUL SYLLABLE BIGS
+BE48;BE48;1107 1175 11AB;BE48;1107 1175 11AB; # (빈; 빈; 빈; 빈; 빈; ) HANGUL SYLLABLE BIN
+BE49;BE49;1107 1175 11AC;BE49;1107 1175 11AC; # (빉; 빉; 빉; 빉; 빉; ) HANGUL SYLLABLE BINJ
+BE4A;BE4A;1107 1175 11AD;BE4A;1107 1175 11AD; # (빊; 빊; 빊; 빊; 빊; ) HANGUL SYLLABLE BINH
+BE4B;BE4B;1107 1175 11AE;BE4B;1107 1175 11AE; # (빋; 빋; 빋; 빋; 빋; ) HANGUL SYLLABLE BID
+BE4C;BE4C;1107 1175 11AF;BE4C;1107 1175 11AF; # (빌; 빌; 빌; 빌; 빌; ) HANGUL SYLLABLE BIL
+BE4D;BE4D;1107 1175 11B0;BE4D;1107 1175 11B0; # (빍; 빍; 빍; 빍; 빍; ) HANGUL SYLLABLE BILG
+BE4E;BE4E;1107 1175 11B1;BE4E;1107 1175 11B1; # (빎; 빎; 빎; 빎; 빎; ) HANGUL SYLLABLE BILM
+BE4F;BE4F;1107 1175 11B2;BE4F;1107 1175 11B2; # (빏; 빏; 빏; 빏; 빏; ) HANGUL SYLLABLE BILB
+BE50;BE50;1107 1175 11B3;BE50;1107 1175 11B3; # (빐; 빐; 빐; 빐; 빐; ) HANGUL SYLLABLE BILS
+BE51;BE51;1107 1175 11B4;BE51;1107 1175 11B4; # (빑; 빑; 빑; 빑; 빑; ) HANGUL SYLLABLE BILT
+BE52;BE52;1107 1175 11B5;BE52;1107 1175 11B5; # (빒; 빒; 빒; 빒; 빒; ) HANGUL SYLLABLE BILP
+BE53;BE53;1107 1175 11B6;BE53;1107 1175 11B6; # (빓; 빓; 빓; 빓; 빓; ) HANGUL SYLLABLE BILH
+BE54;BE54;1107 1175 11B7;BE54;1107 1175 11B7; # (빔; 빔; 빔; 빔; 빔; ) HANGUL SYLLABLE BIM
+BE55;BE55;1107 1175 11B8;BE55;1107 1175 11B8; # (빕; 빕; 빕; 빕; 빕; ) HANGUL SYLLABLE BIB
+BE56;BE56;1107 1175 11B9;BE56;1107 1175 11B9; # (빖; 빖; 빖; 빖; 빖; ) HANGUL SYLLABLE BIBS
+BE57;BE57;1107 1175 11BA;BE57;1107 1175 11BA; # (빗; 빗; 빗; 빗; 빗; ) HANGUL SYLLABLE BIS
+BE58;BE58;1107 1175 11BB;BE58;1107 1175 11BB; # (빘; 빘; 빘; 빘; 빘; ) HANGUL SYLLABLE BISS
+BE59;BE59;1107 1175 11BC;BE59;1107 1175 11BC; # (빙; 빙; 빙; 빙; 빙; ) HANGUL SYLLABLE BING
+BE5A;BE5A;1107 1175 11BD;BE5A;1107 1175 11BD; # (빚; 빚; 빚; 빚; 빚; ) HANGUL SYLLABLE BIJ
+BE5B;BE5B;1107 1175 11BE;BE5B;1107 1175 11BE; # (빛; 빛; 빛; 빛; 빛; ) HANGUL SYLLABLE BIC
+BE5C;BE5C;1107 1175 11BF;BE5C;1107 1175 11BF; # (빜; 빜; 빜; 빜; 빜; ) HANGUL SYLLABLE BIK
+BE5D;BE5D;1107 1175 11C0;BE5D;1107 1175 11C0; # (빝; 빝; 빝; 빝; 빝; ) HANGUL SYLLABLE BIT
+BE5E;BE5E;1107 1175 11C1;BE5E;1107 1175 11C1; # (빞; 빞; 빞; 빞; 빞; ) HANGUL SYLLABLE BIP
+BE5F;BE5F;1107 1175 11C2;BE5F;1107 1175 11C2; # (빟; 빟; 빟; 빟; 빟; ) HANGUL SYLLABLE BIH
+BE60;BE60;1108 1161;BE60;1108 1161; # (빠; 빠; 빠; 빠; 빠; ) HANGUL SYLLABLE BBA
+BE61;BE61;1108 1161 11A8;BE61;1108 1161 11A8; # (빡; 빡; 빡; 빡; 빡; ) HANGUL SYLLABLE BBAG
+BE62;BE62;1108 1161 11A9;BE62;1108 1161 11A9; # (빢; 빢; 빢; 빢; 빢; ) HANGUL SYLLABLE BBAGG
+BE63;BE63;1108 1161 11AA;BE63;1108 1161 11AA; # (빣; 빣; 빣; 빣; 빣; ) HANGUL SYLLABLE BBAGS
+BE64;BE64;1108 1161 11AB;BE64;1108 1161 11AB; # (빤; 빤; 빤; 빤; 빤; ) HANGUL SYLLABLE BBAN
+BE65;BE65;1108 1161 11AC;BE65;1108 1161 11AC; # (빥; 빥; 빥; 빥; 빥; ) HANGUL SYLLABLE BBANJ
+BE66;BE66;1108 1161 11AD;BE66;1108 1161 11AD; # (빦; 빦; 빦; 빦; 빦; ) HANGUL SYLLABLE BBANH
+BE67;BE67;1108 1161 11AE;BE67;1108 1161 11AE; # (빧; 빧; 빧; 빧; 빧; ) HANGUL SYLLABLE BBAD
+BE68;BE68;1108 1161 11AF;BE68;1108 1161 11AF; # (빨; 빨; 빨; 빨; 빨; ) HANGUL SYLLABLE BBAL
+BE69;BE69;1108 1161 11B0;BE69;1108 1161 11B0; # (빩; 빩; 빩; 빩; 빩; ) HANGUL SYLLABLE BBALG
+BE6A;BE6A;1108 1161 11B1;BE6A;1108 1161 11B1; # (빪; 빪; 빪; 빪; 빪; ) HANGUL SYLLABLE BBALM
+BE6B;BE6B;1108 1161 11B2;BE6B;1108 1161 11B2; # (빫; 빫; 빫; 빫; 빫; ) HANGUL SYLLABLE BBALB
+BE6C;BE6C;1108 1161 11B3;BE6C;1108 1161 11B3; # (빬; 빬; 빬; 빬; 빬; ) HANGUL SYLLABLE BBALS
+BE6D;BE6D;1108 1161 11B4;BE6D;1108 1161 11B4; # (빭; 빭; 빭; 빭; 빭; ) HANGUL SYLLABLE BBALT
+BE6E;BE6E;1108 1161 11B5;BE6E;1108 1161 11B5; # (빮; 빮; 빮; 빮; 빮; ) HANGUL SYLLABLE BBALP
+BE6F;BE6F;1108 1161 11B6;BE6F;1108 1161 11B6; # (빯; 빯; 빯; 빯; 빯; ) HANGUL SYLLABLE BBALH
+BE70;BE70;1108 1161 11B7;BE70;1108 1161 11B7; # (빰; 빰; 빰; 빰; 빰; ) HANGUL SYLLABLE BBAM
+BE71;BE71;1108 1161 11B8;BE71;1108 1161 11B8; # (빱; 빱; 빱; 빱; 빱; ) HANGUL SYLLABLE BBAB
+BE72;BE72;1108 1161 11B9;BE72;1108 1161 11B9; # (빲; 빲; 빲; 빲; 빲; ) HANGUL SYLLABLE BBABS
+BE73;BE73;1108 1161 11BA;BE73;1108 1161 11BA; # (빳; 빳; 빳; 빳; 빳; ) HANGUL SYLLABLE BBAS
+BE74;BE74;1108 1161 11BB;BE74;1108 1161 11BB; # (빴; 빴; 빴; 빴; 빴; ) HANGUL SYLLABLE BBASS
+BE75;BE75;1108 1161 11BC;BE75;1108 1161 11BC; # (빵; 빵; 빵; 빵; 빵; ) HANGUL SYLLABLE BBANG
+BE76;BE76;1108 1161 11BD;BE76;1108 1161 11BD; # (빶; 빶; 빶; 빶; 빶; ) HANGUL SYLLABLE BBAJ
+BE77;BE77;1108 1161 11BE;BE77;1108 1161 11BE; # (빷; 빷; 빷; 빷; 빷; ) HANGUL SYLLABLE BBAC
+BE78;BE78;1108 1161 11BF;BE78;1108 1161 11BF; # (빸; 빸; 빸; 빸; 빸; ) HANGUL SYLLABLE BBAK
+BE79;BE79;1108 1161 11C0;BE79;1108 1161 11C0; # (빹; 빹; 빹; 빹; 빹; ) HANGUL SYLLABLE BBAT
+BE7A;BE7A;1108 1161 11C1;BE7A;1108 1161 11C1; # (빺; 빺; 빺; 빺; 빺; ) HANGUL SYLLABLE BBAP
+BE7B;BE7B;1108 1161 11C2;BE7B;1108 1161 11C2; # (빻; 빻; 빻; 빻; 빻; ) HANGUL SYLLABLE BBAH
+BE7C;BE7C;1108 1162;BE7C;1108 1162; # (빼; 빼; 빼; 빼; 빼; ) HANGUL SYLLABLE BBAE
+BE7D;BE7D;1108 1162 11A8;BE7D;1108 1162 11A8; # (빽; 빽; 빽; 빽; 빽; ) HANGUL SYLLABLE BBAEG
+BE7E;BE7E;1108 1162 11A9;BE7E;1108 1162 11A9; # (빾; 빾; 빾; 빾; 빾; ) HANGUL SYLLABLE BBAEGG
+BE7F;BE7F;1108 1162 11AA;BE7F;1108 1162 11AA; # (빿; 빿; 빿; 빿; 빿; ) HANGUL SYLLABLE BBAEGS
+BE80;BE80;1108 1162 11AB;BE80;1108 1162 11AB; # (뺀; 뺀; 뺀; 뺀; 뺀; ) HANGUL SYLLABLE BBAEN
+BE81;BE81;1108 1162 11AC;BE81;1108 1162 11AC; # (뺁; 뺁; 뺁; 뺁; 뺁; ) HANGUL SYLLABLE BBAENJ
+BE82;BE82;1108 1162 11AD;BE82;1108 1162 11AD; # (뺂; 뺂; 뺂; 뺂; 뺂; ) HANGUL SYLLABLE BBAENH
+BE83;BE83;1108 1162 11AE;BE83;1108 1162 11AE; # (뺃; 뺃; 뺃; 뺃; 뺃; ) HANGUL SYLLABLE BBAED
+BE84;BE84;1108 1162 11AF;BE84;1108 1162 11AF; # (뺄; 뺄; 뺄; 뺄; 뺄; ) HANGUL SYLLABLE BBAEL
+BE85;BE85;1108 1162 11B0;BE85;1108 1162 11B0; # (뺅; 뺅; 뺅; 뺅; 뺅; ) HANGUL SYLLABLE BBAELG
+BE86;BE86;1108 1162 11B1;BE86;1108 1162 11B1; # (뺆; 뺆; 뺆; 뺆; 뺆; ) HANGUL SYLLABLE BBAELM
+BE87;BE87;1108 1162 11B2;BE87;1108 1162 11B2; # (뺇; 뺇; 뺇; 뺇; 뺇; ) HANGUL SYLLABLE BBAELB
+BE88;BE88;1108 1162 11B3;BE88;1108 1162 11B3; # (뺈; 뺈; 뺈; 뺈; 뺈; ) HANGUL SYLLABLE BBAELS
+BE89;BE89;1108 1162 11B4;BE89;1108 1162 11B4; # (뺉; 뺉; 뺉; 뺉; 뺉; ) HANGUL SYLLABLE BBAELT
+BE8A;BE8A;1108 1162 11B5;BE8A;1108 1162 11B5; # (뺊; 뺊; 뺊; 뺊; 뺊; ) HANGUL SYLLABLE BBAELP
+BE8B;BE8B;1108 1162 11B6;BE8B;1108 1162 11B6; # (뺋; 뺋; 뺋; 뺋; 뺋; ) HANGUL SYLLABLE BBAELH
+BE8C;BE8C;1108 1162 11B7;BE8C;1108 1162 11B7; # (뺌; 뺌; 뺌; 뺌; 뺌; ) HANGUL SYLLABLE BBAEM
+BE8D;BE8D;1108 1162 11B8;BE8D;1108 1162 11B8; # (뺍; 뺍; 뺍; 뺍; 뺍; ) HANGUL SYLLABLE BBAEB
+BE8E;BE8E;1108 1162 11B9;BE8E;1108 1162 11B9; # (뺎; 뺎; 뺎; 뺎; 뺎; ) HANGUL SYLLABLE BBAEBS
+BE8F;BE8F;1108 1162 11BA;BE8F;1108 1162 11BA; # (뺏; 뺏; 뺏; 뺏; 뺏; ) HANGUL SYLLABLE BBAES
+BE90;BE90;1108 1162 11BB;BE90;1108 1162 11BB; # (뺐; 뺐; 뺐; 뺐; 뺐; ) HANGUL SYLLABLE BBAESS
+BE91;BE91;1108 1162 11BC;BE91;1108 1162 11BC; # (뺑; 뺑; 뺑; 뺑; 뺑; ) HANGUL SYLLABLE BBAENG
+BE92;BE92;1108 1162 11BD;BE92;1108 1162 11BD; # (뺒; 뺒; 뺒; 뺒; 뺒; ) HANGUL SYLLABLE BBAEJ
+BE93;BE93;1108 1162 11BE;BE93;1108 1162 11BE; # (뺓; 뺓; 뺓; 뺓; 뺓; ) HANGUL SYLLABLE BBAEC
+BE94;BE94;1108 1162 11BF;BE94;1108 1162 11BF; # (뺔; 뺔; 뺔; 뺔; 뺔; ) HANGUL SYLLABLE BBAEK
+BE95;BE95;1108 1162 11C0;BE95;1108 1162 11C0; # (뺕; 뺕; 뺕; 뺕; 뺕; ) HANGUL SYLLABLE BBAET
+BE96;BE96;1108 1162 11C1;BE96;1108 1162 11C1; # (뺖; 뺖; 뺖; 뺖; 뺖; ) HANGUL SYLLABLE BBAEP
+BE97;BE97;1108 1162 11C2;BE97;1108 1162 11C2; # (뺗; 뺗; 뺗; 뺗; 뺗; ) HANGUL SYLLABLE BBAEH
+BE98;BE98;1108 1163;BE98;1108 1163; # (뺘; 뺘; 뺘; 뺘; 뺘; ) HANGUL SYLLABLE BBYA
+BE99;BE99;1108 1163 11A8;BE99;1108 1163 11A8; # (뺙; 뺙; 뺙; 뺙; 뺙; ) HANGUL SYLLABLE BBYAG
+BE9A;BE9A;1108 1163 11A9;BE9A;1108 1163 11A9; # (뺚; 뺚; 뺚; 뺚; 뺚; ) HANGUL SYLLABLE BBYAGG
+BE9B;BE9B;1108 1163 11AA;BE9B;1108 1163 11AA; # (뺛; 뺛; 뺛; 뺛; 뺛; ) HANGUL SYLLABLE BBYAGS
+BE9C;BE9C;1108 1163 11AB;BE9C;1108 1163 11AB; # (뺜; 뺜; 뺜; 뺜; 뺜; ) HANGUL SYLLABLE BBYAN
+BE9D;BE9D;1108 1163 11AC;BE9D;1108 1163 11AC; # (뺝; 뺝; 뺝; 뺝; 뺝; ) HANGUL SYLLABLE BBYANJ
+BE9E;BE9E;1108 1163 11AD;BE9E;1108 1163 11AD; # (뺞; 뺞; 뺞; 뺞; 뺞; ) HANGUL SYLLABLE BBYANH
+BE9F;BE9F;1108 1163 11AE;BE9F;1108 1163 11AE; # (뺟; 뺟; 뺟; 뺟; 뺟; ) HANGUL SYLLABLE BBYAD
+BEA0;BEA0;1108 1163 11AF;BEA0;1108 1163 11AF; # (뺠; 뺠; 뺠; 뺠; 뺠; ) HANGUL SYLLABLE BBYAL
+BEA1;BEA1;1108 1163 11B0;BEA1;1108 1163 11B0; # (뺡; 뺡; 뺡; 뺡; 뺡; ) HANGUL SYLLABLE BBYALG
+BEA2;BEA2;1108 1163 11B1;BEA2;1108 1163 11B1; # (뺢; 뺢; 뺢; 뺢; 뺢; ) HANGUL SYLLABLE BBYALM
+BEA3;BEA3;1108 1163 11B2;BEA3;1108 1163 11B2; # (뺣; 뺣; 뺣; 뺣; 뺣; ) HANGUL SYLLABLE BBYALB
+BEA4;BEA4;1108 1163 11B3;BEA4;1108 1163 11B3; # (뺤; 뺤; 뺤; 뺤; 뺤; ) HANGUL SYLLABLE BBYALS
+BEA5;BEA5;1108 1163 11B4;BEA5;1108 1163 11B4; # (뺥; 뺥; 뺥; 뺥; 뺥; ) HANGUL SYLLABLE BBYALT
+BEA6;BEA6;1108 1163 11B5;BEA6;1108 1163 11B5; # (뺦; 뺦; 뺦; 뺦; 뺦; ) HANGUL SYLLABLE BBYALP
+BEA7;BEA7;1108 1163 11B6;BEA7;1108 1163 11B6; # (뺧; 뺧; 뺧; 뺧; 뺧; ) HANGUL SYLLABLE BBYALH
+BEA8;BEA8;1108 1163 11B7;BEA8;1108 1163 11B7; # (뺨; 뺨; 뺨; 뺨; 뺨; ) HANGUL SYLLABLE BBYAM
+BEA9;BEA9;1108 1163 11B8;BEA9;1108 1163 11B8; # (뺩; 뺩; 뺩; 뺩; 뺩; ) HANGUL SYLLABLE BBYAB
+BEAA;BEAA;1108 1163 11B9;BEAA;1108 1163 11B9; # (뺪; 뺪; 뺪; 뺪; 뺪; ) HANGUL SYLLABLE BBYABS
+BEAB;BEAB;1108 1163 11BA;BEAB;1108 1163 11BA; # (뺫; 뺫; 뺫; 뺫; 뺫; ) HANGUL SYLLABLE BBYAS
+BEAC;BEAC;1108 1163 11BB;BEAC;1108 1163 11BB; # (뺬; 뺬; 뺬; 뺬; 뺬; ) HANGUL SYLLABLE BBYASS
+BEAD;BEAD;1108 1163 11BC;BEAD;1108 1163 11BC; # (뺭; 뺭; 뺭; 뺭; 뺭; ) HANGUL SYLLABLE BBYANG
+BEAE;BEAE;1108 1163 11BD;BEAE;1108 1163 11BD; # (뺮; 뺮; 뺮; 뺮; 뺮; ) HANGUL SYLLABLE BBYAJ
+BEAF;BEAF;1108 1163 11BE;BEAF;1108 1163 11BE; # (뺯; 뺯; 뺯; 뺯; 뺯; ) HANGUL SYLLABLE BBYAC
+BEB0;BEB0;1108 1163 11BF;BEB0;1108 1163 11BF; # (뺰; 뺰; 뺰; 뺰; 뺰; ) HANGUL SYLLABLE BBYAK
+BEB1;BEB1;1108 1163 11C0;BEB1;1108 1163 11C0; # (뺱; 뺱; 뺱; 뺱; 뺱; ) HANGUL SYLLABLE BBYAT
+BEB2;BEB2;1108 1163 11C1;BEB2;1108 1163 11C1; # (뺲; 뺲; 뺲; 뺲; 뺲; ) HANGUL SYLLABLE BBYAP
+BEB3;BEB3;1108 1163 11C2;BEB3;1108 1163 11C2; # (뺳; 뺳; 뺳; 뺳; 뺳; ) HANGUL SYLLABLE BBYAH
+BEB4;BEB4;1108 1164;BEB4;1108 1164; # (뺴; 뺴; 뺴; 뺴; 뺴; ) HANGUL SYLLABLE BBYAE
+BEB5;BEB5;1108 1164 11A8;BEB5;1108 1164 11A8; # (뺵; 뺵; 뺵; 뺵; 뺵; ) HANGUL SYLLABLE BBYAEG
+BEB6;BEB6;1108 1164 11A9;BEB6;1108 1164 11A9; # (뺶; 뺶; 뺶; 뺶; 뺶; ) HANGUL SYLLABLE BBYAEGG
+BEB7;BEB7;1108 1164 11AA;BEB7;1108 1164 11AA; # (뺷; 뺷; 뺷; 뺷; 뺷; ) HANGUL SYLLABLE BBYAEGS
+BEB8;BEB8;1108 1164 11AB;BEB8;1108 1164 11AB; # (뺸; 뺸; 뺸; 뺸; 뺸; ) HANGUL SYLLABLE BBYAEN
+BEB9;BEB9;1108 1164 11AC;BEB9;1108 1164 11AC; # (뺹; 뺹; 뺹; 뺹; 뺹; ) HANGUL SYLLABLE BBYAENJ
+BEBA;BEBA;1108 1164 11AD;BEBA;1108 1164 11AD; # (뺺; 뺺; 뺺; 뺺; 뺺; ) HANGUL SYLLABLE BBYAENH
+BEBB;BEBB;1108 1164 11AE;BEBB;1108 1164 11AE; # (뺻; 뺻; 뺻; 뺻; 뺻; ) HANGUL SYLLABLE BBYAED
+BEBC;BEBC;1108 1164 11AF;BEBC;1108 1164 11AF; # (뺼; 뺼; 뺼; 뺼; 뺼; ) HANGUL SYLLABLE BBYAEL
+BEBD;BEBD;1108 1164 11B0;BEBD;1108 1164 11B0; # (뺽; 뺽; 뺽; 뺽; 뺽; ) HANGUL SYLLABLE BBYAELG
+BEBE;BEBE;1108 1164 11B1;BEBE;1108 1164 11B1; # (뺾; 뺾; 뺾; 뺾; 뺾; ) HANGUL SYLLABLE BBYAELM
+BEBF;BEBF;1108 1164 11B2;BEBF;1108 1164 11B2; # (뺿; 뺿; 뺿; 뺿; 뺿; ) HANGUL SYLLABLE BBYAELB
+BEC0;BEC0;1108 1164 11B3;BEC0;1108 1164 11B3; # (뻀; 뻀; 뻀; 뻀; 뻀; ) HANGUL SYLLABLE BBYAELS
+BEC1;BEC1;1108 1164 11B4;BEC1;1108 1164 11B4; # (뻁; 뻁; 뻁; 뻁; 뻁; ) HANGUL SYLLABLE BBYAELT
+BEC2;BEC2;1108 1164 11B5;BEC2;1108 1164 11B5; # (뻂; 뻂; 뻂; 뻂; 뻂; ) HANGUL SYLLABLE BBYAELP
+BEC3;BEC3;1108 1164 11B6;BEC3;1108 1164 11B6; # (뻃; 뻃; 뻃; 뻃; 뻃; ) HANGUL SYLLABLE BBYAELH
+BEC4;BEC4;1108 1164 11B7;BEC4;1108 1164 11B7; # (뻄; 뻄; 뻄; 뻄; 뻄; ) HANGUL SYLLABLE BBYAEM
+BEC5;BEC5;1108 1164 11B8;BEC5;1108 1164 11B8; # (뻅; 뻅; 뻅; 뻅; 뻅; ) HANGUL SYLLABLE BBYAEB
+BEC6;BEC6;1108 1164 11B9;BEC6;1108 1164 11B9; # (뻆; 뻆; 뻆; 뻆; 뻆; ) HANGUL SYLLABLE BBYAEBS
+BEC7;BEC7;1108 1164 11BA;BEC7;1108 1164 11BA; # (뻇; 뻇; 뻇; 뻇; 뻇; ) HANGUL SYLLABLE BBYAES
+BEC8;BEC8;1108 1164 11BB;BEC8;1108 1164 11BB; # (뻈; 뻈; 뻈; 뻈; 뻈; ) HANGUL SYLLABLE BBYAESS
+BEC9;BEC9;1108 1164 11BC;BEC9;1108 1164 11BC; # (뻉; 뻉; 뻉; 뻉; 뻉; ) HANGUL SYLLABLE BBYAENG
+BECA;BECA;1108 1164 11BD;BECA;1108 1164 11BD; # (뻊; 뻊; 뻊; 뻊; 뻊; ) HANGUL SYLLABLE BBYAEJ
+BECB;BECB;1108 1164 11BE;BECB;1108 1164 11BE; # (뻋; 뻋; 뻋; 뻋; 뻋; ) HANGUL SYLLABLE BBYAEC
+BECC;BECC;1108 1164 11BF;BECC;1108 1164 11BF; # (뻌; 뻌; 뻌; 뻌; 뻌; ) HANGUL SYLLABLE BBYAEK
+BECD;BECD;1108 1164 11C0;BECD;1108 1164 11C0; # (뻍; 뻍; 뻍; 뻍; 뻍; ) HANGUL SYLLABLE BBYAET
+BECE;BECE;1108 1164 11C1;BECE;1108 1164 11C1; # (뻎; 뻎; 뻎; 뻎; 뻎; ) HANGUL SYLLABLE BBYAEP
+BECF;BECF;1108 1164 11C2;BECF;1108 1164 11C2; # (뻏; 뻏; 뻏; 뻏; 뻏; ) HANGUL SYLLABLE BBYAEH
+BED0;BED0;1108 1165;BED0;1108 1165; # (뻐; 뻐; 뻐; 뻐; 뻐; ) HANGUL SYLLABLE BBEO
+BED1;BED1;1108 1165 11A8;BED1;1108 1165 11A8; # (뻑; 뻑; 뻑; 뻑; 뻑; ) HANGUL SYLLABLE BBEOG
+BED2;BED2;1108 1165 11A9;BED2;1108 1165 11A9; # (뻒; 뻒; 뻒; 뻒; 뻒; ) HANGUL SYLLABLE BBEOGG
+BED3;BED3;1108 1165 11AA;BED3;1108 1165 11AA; # (뻓; 뻓; 뻓; 뻓; 뻓; ) HANGUL SYLLABLE BBEOGS
+BED4;BED4;1108 1165 11AB;BED4;1108 1165 11AB; # (뻔; 뻔; 뻔; 뻔; 뻔; ) HANGUL SYLLABLE BBEON
+BED5;BED5;1108 1165 11AC;BED5;1108 1165 11AC; # (뻕; 뻕; 뻕; 뻕; 뻕; ) HANGUL SYLLABLE BBEONJ
+BED6;BED6;1108 1165 11AD;BED6;1108 1165 11AD; # (뻖; 뻖; 뻖; 뻖; 뻖; ) HANGUL SYLLABLE BBEONH
+BED7;BED7;1108 1165 11AE;BED7;1108 1165 11AE; # (뻗; 뻗; 뻗; 뻗; 뻗; ) HANGUL SYLLABLE BBEOD
+BED8;BED8;1108 1165 11AF;BED8;1108 1165 11AF; # (뻘; 뻘; 뻘; 뻘; 뻘; ) HANGUL SYLLABLE BBEOL
+BED9;BED9;1108 1165 11B0;BED9;1108 1165 11B0; # (뻙; 뻙; 뻙; 뻙; 뻙; ) HANGUL SYLLABLE BBEOLG
+BEDA;BEDA;1108 1165 11B1;BEDA;1108 1165 11B1; # (뻚; 뻚; 뻚; 뻚; 뻚; ) HANGUL SYLLABLE BBEOLM
+BEDB;BEDB;1108 1165 11B2;BEDB;1108 1165 11B2; # (뻛; 뻛; 뻛; 뻛; 뻛; ) HANGUL SYLLABLE BBEOLB
+BEDC;BEDC;1108 1165 11B3;BEDC;1108 1165 11B3; # (뻜; 뻜; 뻜; 뻜; 뻜; ) HANGUL SYLLABLE BBEOLS
+BEDD;BEDD;1108 1165 11B4;BEDD;1108 1165 11B4; # (뻝; 뻝; 뻝; 뻝; 뻝; ) HANGUL SYLLABLE BBEOLT
+BEDE;BEDE;1108 1165 11B5;BEDE;1108 1165 11B5; # (뻞; 뻞; 뻞; 뻞; 뻞; ) HANGUL SYLLABLE BBEOLP
+BEDF;BEDF;1108 1165 11B6;BEDF;1108 1165 11B6; # (뻟; 뻟; 뻟; 뻟; 뻟; ) HANGUL SYLLABLE BBEOLH
+BEE0;BEE0;1108 1165 11B7;BEE0;1108 1165 11B7; # (뻠; 뻠; 뻠; 뻠; 뻠; ) HANGUL SYLLABLE BBEOM
+BEE1;BEE1;1108 1165 11B8;BEE1;1108 1165 11B8; # (뻡; 뻡; 뻡; 뻡; 뻡; ) HANGUL SYLLABLE BBEOB
+BEE2;BEE2;1108 1165 11B9;BEE2;1108 1165 11B9; # (뻢; 뻢; 뻢; 뻢; 뻢; ) HANGUL SYLLABLE BBEOBS
+BEE3;BEE3;1108 1165 11BA;BEE3;1108 1165 11BA; # (뻣; 뻣; 뻣; 뻣; 뻣; ) HANGUL SYLLABLE BBEOS
+BEE4;BEE4;1108 1165 11BB;BEE4;1108 1165 11BB; # (뻤; 뻤; 뻤; 뻤; 뻤; ) HANGUL SYLLABLE BBEOSS
+BEE5;BEE5;1108 1165 11BC;BEE5;1108 1165 11BC; # (뻥; 뻥; 뻥; 뻥; 뻥; ) HANGUL SYLLABLE BBEONG
+BEE6;BEE6;1108 1165 11BD;BEE6;1108 1165 11BD; # (뻦; 뻦; 뻦; 뻦; 뻦; ) HANGUL SYLLABLE BBEOJ
+BEE7;BEE7;1108 1165 11BE;BEE7;1108 1165 11BE; # (뻧; 뻧; 뻧; 뻧; 뻧; ) HANGUL SYLLABLE BBEOC
+BEE8;BEE8;1108 1165 11BF;BEE8;1108 1165 11BF; # (뻨; 뻨; 뻨; 뻨; 뻨; ) HANGUL SYLLABLE BBEOK
+BEE9;BEE9;1108 1165 11C0;BEE9;1108 1165 11C0; # (뻩; 뻩; 뻩; 뻩; 뻩; ) HANGUL SYLLABLE BBEOT
+BEEA;BEEA;1108 1165 11C1;BEEA;1108 1165 11C1; # (뻪; 뻪; 뻪; 뻪; 뻪; ) HANGUL SYLLABLE BBEOP
+BEEB;BEEB;1108 1165 11C2;BEEB;1108 1165 11C2; # (뻫; 뻫; 뻫; 뻫; 뻫; ) HANGUL SYLLABLE BBEOH
+BEEC;BEEC;1108 1166;BEEC;1108 1166; # (뻬; 뻬; 뻬; 뻬; 뻬; ) HANGUL SYLLABLE BBE
+BEED;BEED;1108 1166 11A8;BEED;1108 1166 11A8; # (뻭; 뻭; 뻭; 뻭; 뻭; ) HANGUL SYLLABLE BBEG
+BEEE;BEEE;1108 1166 11A9;BEEE;1108 1166 11A9; # (뻮; 뻮; 뻮; 뻮; 뻮; ) HANGUL SYLLABLE BBEGG
+BEEF;BEEF;1108 1166 11AA;BEEF;1108 1166 11AA; # (뻯; 뻯; 뻯; 뻯; 뻯; ) HANGUL SYLLABLE BBEGS
+BEF0;BEF0;1108 1166 11AB;BEF0;1108 1166 11AB; # (뻰; 뻰; 뻰; 뻰; 뻰; ) HANGUL SYLLABLE BBEN
+BEF1;BEF1;1108 1166 11AC;BEF1;1108 1166 11AC; # (뻱; 뻱; 뻱; 뻱; 뻱; ) HANGUL SYLLABLE BBENJ
+BEF2;BEF2;1108 1166 11AD;BEF2;1108 1166 11AD; # (뻲; 뻲; 뻲; 뻲; 뻲; ) HANGUL SYLLABLE BBENH
+BEF3;BEF3;1108 1166 11AE;BEF3;1108 1166 11AE; # (뻳; 뻳; 뻳; 뻳; 뻳; ) HANGUL SYLLABLE BBED
+BEF4;BEF4;1108 1166 11AF;BEF4;1108 1166 11AF; # (뻴; 뻴; 뻴; 뻴; 뻴; ) HANGUL SYLLABLE BBEL
+BEF5;BEF5;1108 1166 11B0;BEF5;1108 1166 11B0; # (뻵; 뻵; 뻵; 뻵; 뻵; ) HANGUL SYLLABLE BBELG
+BEF6;BEF6;1108 1166 11B1;BEF6;1108 1166 11B1; # (뻶; 뻶; 뻶; 뻶; 뻶; ) HANGUL SYLLABLE BBELM
+BEF7;BEF7;1108 1166 11B2;BEF7;1108 1166 11B2; # (뻷; 뻷; 뻷; 뻷; 뻷; ) HANGUL SYLLABLE BBELB
+BEF8;BEF8;1108 1166 11B3;BEF8;1108 1166 11B3; # (뻸; 뻸; 뻸; 뻸; 뻸; ) HANGUL SYLLABLE BBELS
+BEF9;BEF9;1108 1166 11B4;BEF9;1108 1166 11B4; # (뻹; 뻹; 뻹; 뻹; 뻹; ) HANGUL SYLLABLE BBELT
+BEFA;BEFA;1108 1166 11B5;BEFA;1108 1166 11B5; # (뻺; 뻺; 뻺; 뻺; 뻺; ) HANGUL SYLLABLE BBELP
+BEFB;BEFB;1108 1166 11B6;BEFB;1108 1166 11B6; # (뻻; 뻻; 뻻; 뻻; 뻻; ) HANGUL SYLLABLE BBELH
+BEFC;BEFC;1108 1166 11B7;BEFC;1108 1166 11B7; # (뻼; 뻼; 뻼; 뻼; 뻼; ) HANGUL SYLLABLE BBEM
+BEFD;BEFD;1108 1166 11B8;BEFD;1108 1166 11B8; # (뻽; 뻽; 뻽; 뻽; 뻽; ) HANGUL SYLLABLE BBEB
+BEFE;BEFE;1108 1166 11B9;BEFE;1108 1166 11B9; # (뻾; 뻾; 뻾; 뻾; 뻾; ) HANGUL SYLLABLE BBEBS
+BEFF;BEFF;1108 1166 11BA;BEFF;1108 1166 11BA; # (뻿; 뻿; 뻿; 뻿; 뻿; ) HANGUL SYLLABLE BBES
+BF00;BF00;1108 1166 11BB;BF00;1108 1166 11BB; # (뼀; 뼀; 뼀; 뼀; 뼀; ) HANGUL SYLLABLE BBESS
+BF01;BF01;1108 1166 11BC;BF01;1108 1166 11BC; # (뼁; 뼁; 뼁; 뼁; 뼁; ) HANGUL SYLLABLE BBENG
+BF02;BF02;1108 1166 11BD;BF02;1108 1166 11BD; # (뼂; 뼂; 뼂; 뼂; 뼂; ) HANGUL SYLLABLE BBEJ
+BF03;BF03;1108 1166 11BE;BF03;1108 1166 11BE; # (뼃; 뼃; 뼃; 뼃; 뼃; ) HANGUL SYLLABLE BBEC
+BF04;BF04;1108 1166 11BF;BF04;1108 1166 11BF; # (뼄; 뼄; 뼄; 뼄; 뼄; ) HANGUL SYLLABLE BBEK
+BF05;BF05;1108 1166 11C0;BF05;1108 1166 11C0; # (뼅; 뼅; 뼅; 뼅; 뼅; ) HANGUL SYLLABLE BBET
+BF06;BF06;1108 1166 11C1;BF06;1108 1166 11C1; # (뼆; 뼆; 뼆; 뼆; 뼆; ) HANGUL SYLLABLE BBEP
+BF07;BF07;1108 1166 11C2;BF07;1108 1166 11C2; # (뼇; 뼇; 뼇; 뼇; 뼇; ) HANGUL SYLLABLE BBEH
+BF08;BF08;1108 1167;BF08;1108 1167; # (뼈; 뼈; 뼈; 뼈; 뼈; ) HANGUL SYLLABLE BBYEO
+BF09;BF09;1108 1167 11A8;BF09;1108 1167 11A8; # (뼉; 뼉; 뼉; 뼉; 뼉; ) HANGUL SYLLABLE BBYEOG
+BF0A;BF0A;1108 1167 11A9;BF0A;1108 1167 11A9; # (뼊; 뼊; 뼊; 뼊; 뼊; ) HANGUL SYLLABLE BBYEOGG
+BF0B;BF0B;1108 1167 11AA;BF0B;1108 1167 11AA; # (뼋; 뼋; 뼋; 뼋; 뼋; ) HANGUL SYLLABLE BBYEOGS
+BF0C;BF0C;1108 1167 11AB;BF0C;1108 1167 11AB; # (뼌; 뼌; 뼌; 뼌; 뼌; ) HANGUL SYLLABLE BBYEON
+BF0D;BF0D;1108 1167 11AC;BF0D;1108 1167 11AC; # (뼍; 뼍; 뼍; 뼍; 뼍; ) HANGUL SYLLABLE BBYEONJ
+BF0E;BF0E;1108 1167 11AD;BF0E;1108 1167 11AD; # (뼎; 뼎; 뼎; 뼎; 뼎; ) HANGUL SYLLABLE BBYEONH
+BF0F;BF0F;1108 1167 11AE;BF0F;1108 1167 11AE; # (뼏; 뼏; 뼏; 뼏; 뼏; ) HANGUL SYLLABLE BBYEOD
+BF10;BF10;1108 1167 11AF;BF10;1108 1167 11AF; # (뼐; 뼐; 뼐; 뼐; 뼐; ) HANGUL SYLLABLE BBYEOL
+BF11;BF11;1108 1167 11B0;BF11;1108 1167 11B0; # (뼑; 뼑; 뼑; 뼑; 뼑; ) HANGUL SYLLABLE BBYEOLG
+BF12;BF12;1108 1167 11B1;BF12;1108 1167 11B1; # (뼒; 뼒; 뼒; 뼒; 뼒; ) HANGUL SYLLABLE BBYEOLM
+BF13;BF13;1108 1167 11B2;BF13;1108 1167 11B2; # (뼓; 뼓; 뼓; 뼓; 뼓; ) HANGUL SYLLABLE BBYEOLB
+BF14;BF14;1108 1167 11B3;BF14;1108 1167 11B3; # (뼔; 뼔; 뼔; 뼔; 뼔; ) HANGUL SYLLABLE BBYEOLS
+BF15;BF15;1108 1167 11B4;BF15;1108 1167 11B4; # (뼕; 뼕; 뼕; 뼕; 뼕; ) HANGUL SYLLABLE BBYEOLT
+BF16;BF16;1108 1167 11B5;BF16;1108 1167 11B5; # (뼖; 뼖; 뼖; 뼖; 뼖; ) HANGUL SYLLABLE BBYEOLP
+BF17;BF17;1108 1167 11B6;BF17;1108 1167 11B6; # (뼗; 뼗; 뼗; 뼗; 뼗; ) HANGUL SYLLABLE BBYEOLH
+BF18;BF18;1108 1167 11B7;BF18;1108 1167 11B7; # (뼘; 뼘; 뼘; 뼘; 뼘; ) HANGUL SYLLABLE BBYEOM
+BF19;BF19;1108 1167 11B8;BF19;1108 1167 11B8; # (뼙; 뼙; 뼙; 뼙; 뼙; ) HANGUL SYLLABLE BBYEOB
+BF1A;BF1A;1108 1167 11B9;BF1A;1108 1167 11B9; # (뼚; 뼚; 뼚; 뼚; 뼚; ) HANGUL SYLLABLE BBYEOBS
+BF1B;BF1B;1108 1167 11BA;BF1B;1108 1167 11BA; # (뼛; 뼛; 뼛; 뼛; 뼛; ) HANGUL SYLLABLE BBYEOS
+BF1C;BF1C;1108 1167 11BB;BF1C;1108 1167 11BB; # (뼜; 뼜; 뼜; 뼜; 뼜; ) HANGUL SYLLABLE BBYEOSS
+BF1D;BF1D;1108 1167 11BC;BF1D;1108 1167 11BC; # (뼝; 뼝; 뼝; 뼝; 뼝; ) HANGUL SYLLABLE BBYEONG
+BF1E;BF1E;1108 1167 11BD;BF1E;1108 1167 11BD; # (뼞; 뼞; 뼞; 뼞; 뼞; ) HANGUL SYLLABLE BBYEOJ
+BF1F;BF1F;1108 1167 11BE;BF1F;1108 1167 11BE; # (뼟; 뼟; 뼟; 뼟; 뼟; ) HANGUL SYLLABLE BBYEOC
+BF20;BF20;1108 1167 11BF;BF20;1108 1167 11BF; # (뼠; 뼠; 뼠; 뼠; 뼠; ) HANGUL SYLLABLE BBYEOK
+BF21;BF21;1108 1167 11C0;BF21;1108 1167 11C0; # (뼡; 뼡; 뼡; 뼡; 뼡; ) HANGUL SYLLABLE BBYEOT
+BF22;BF22;1108 1167 11C1;BF22;1108 1167 11C1; # (뼢; 뼢; 뼢; 뼢; 뼢; ) HANGUL SYLLABLE BBYEOP
+BF23;BF23;1108 1167 11C2;BF23;1108 1167 11C2; # (뼣; 뼣; 뼣; 뼣; 뼣; ) HANGUL SYLLABLE BBYEOH
+BF24;BF24;1108 1168;BF24;1108 1168; # (뼤; 뼤; 뼤; 뼤; 뼤; ) HANGUL SYLLABLE BBYE
+BF25;BF25;1108 1168 11A8;BF25;1108 1168 11A8; # (뼥; 뼥; 뼥; 뼥; 뼥; ) HANGUL SYLLABLE BBYEG
+BF26;BF26;1108 1168 11A9;BF26;1108 1168 11A9; # (뼦; 뼦; 뼦; 뼦; 뼦; ) HANGUL SYLLABLE BBYEGG
+BF27;BF27;1108 1168 11AA;BF27;1108 1168 11AA; # (뼧; 뼧; 뼧; 뼧; 뼧; ) HANGUL SYLLABLE BBYEGS
+BF28;BF28;1108 1168 11AB;BF28;1108 1168 11AB; # (뼨; 뼨; 뼨; 뼨; 뼨; ) HANGUL SYLLABLE BBYEN
+BF29;BF29;1108 1168 11AC;BF29;1108 1168 11AC; # (뼩; 뼩; 뼩; 뼩; 뼩; ) HANGUL SYLLABLE BBYENJ
+BF2A;BF2A;1108 1168 11AD;BF2A;1108 1168 11AD; # (뼪; 뼪; 뼪; 뼪; 뼪; ) HANGUL SYLLABLE BBYENH
+BF2B;BF2B;1108 1168 11AE;BF2B;1108 1168 11AE; # (뼫; 뼫; 뼫; 뼫; 뼫; ) HANGUL SYLLABLE BBYED
+BF2C;BF2C;1108 1168 11AF;BF2C;1108 1168 11AF; # (뼬; 뼬; 뼬; 뼬; 뼬; ) HANGUL SYLLABLE BBYEL
+BF2D;BF2D;1108 1168 11B0;BF2D;1108 1168 11B0; # (뼭; 뼭; 뼭; 뼭; 뼭; ) HANGUL SYLLABLE BBYELG
+BF2E;BF2E;1108 1168 11B1;BF2E;1108 1168 11B1; # (뼮; 뼮; 뼮; 뼮; 뼮; ) HANGUL SYLLABLE BBYELM
+BF2F;BF2F;1108 1168 11B2;BF2F;1108 1168 11B2; # (뼯; 뼯; 뼯; 뼯; 뼯; ) HANGUL SYLLABLE BBYELB
+BF30;BF30;1108 1168 11B3;BF30;1108 1168 11B3; # (뼰; 뼰; 뼰; 뼰; 뼰; ) HANGUL SYLLABLE BBYELS
+BF31;BF31;1108 1168 11B4;BF31;1108 1168 11B4; # (뼱; 뼱; 뼱; 뼱; 뼱; ) HANGUL SYLLABLE BBYELT
+BF32;BF32;1108 1168 11B5;BF32;1108 1168 11B5; # (뼲; 뼲; 뼲; 뼲; 뼲; ) HANGUL SYLLABLE BBYELP
+BF33;BF33;1108 1168 11B6;BF33;1108 1168 11B6; # (뼳; 뼳; 뼳; 뼳; 뼳; ) HANGUL SYLLABLE BBYELH
+BF34;BF34;1108 1168 11B7;BF34;1108 1168 11B7; # (뼴; 뼴; 뼴; 뼴; 뼴; ) HANGUL SYLLABLE BBYEM
+BF35;BF35;1108 1168 11B8;BF35;1108 1168 11B8; # (뼵; 뼵; 뼵; 뼵; 뼵; ) HANGUL SYLLABLE BBYEB
+BF36;BF36;1108 1168 11B9;BF36;1108 1168 11B9; # (뼶; 뼶; 뼶; 뼶; 뼶; ) HANGUL SYLLABLE BBYEBS
+BF37;BF37;1108 1168 11BA;BF37;1108 1168 11BA; # (뼷; 뼷; 뼷; 뼷; 뼷; ) HANGUL SYLLABLE BBYES
+BF38;BF38;1108 1168 11BB;BF38;1108 1168 11BB; # (뼸; 뼸; 뼸; 뼸; 뼸; ) HANGUL SYLLABLE BBYESS
+BF39;BF39;1108 1168 11BC;BF39;1108 1168 11BC; # (뼹; 뼹; 뼹; 뼹; 뼹; ) HANGUL SYLLABLE BBYENG
+BF3A;BF3A;1108 1168 11BD;BF3A;1108 1168 11BD; # (뼺; 뼺; 뼺; 뼺; 뼺; ) HANGUL SYLLABLE BBYEJ
+BF3B;BF3B;1108 1168 11BE;BF3B;1108 1168 11BE; # (뼻; 뼻; 뼻; 뼻; 뼻; ) HANGUL SYLLABLE BBYEC
+BF3C;BF3C;1108 1168 11BF;BF3C;1108 1168 11BF; # (뼼; 뼼; 뼼; 뼼; 뼼; ) HANGUL SYLLABLE BBYEK
+BF3D;BF3D;1108 1168 11C0;BF3D;1108 1168 11C0; # (뼽; 뼽; 뼽; 뼽; 뼽; ) HANGUL SYLLABLE BBYET
+BF3E;BF3E;1108 1168 11C1;BF3E;1108 1168 11C1; # (뼾; 뼾; 뼾; 뼾; 뼾; ) HANGUL SYLLABLE BBYEP
+BF3F;BF3F;1108 1168 11C2;BF3F;1108 1168 11C2; # (뼿; 뼿; 뼿; 뼿; 뼿; ) HANGUL SYLLABLE BBYEH
+BF40;BF40;1108 1169;BF40;1108 1169; # (뽀; 뽀; 뽀; 뽀; 뽀; ) HANGUL SYLLABLE BBO
+BF41;BF41;1108 1169 11A8;BF41;1108 1169 11A8; # (뽁; 뽁; 뽁; 뽁; 뽁; ) HANGUL SYLLABLE BBOG
+BF42;BF42;1108 1169 11A9;BF42;1108 1169 11A9; # (뽂; 뽂; 뽂; 뽂; 뽂; ) HANGUL SYLLABLE BBOGG
+BF43;BF43;1108 1169 11AA;BF43;1108 1169 11AA; # (뽃; 뽃; 뽃; 뽃; 뽃; ) HANGUL SYLLABLE BBOGS
+BF44;BF44;1108 1169 11AB;BF44;1108 1169 11AB; # (뽄; 뽄; 뽄; 뽄; 뽄; ) HANGUL SYLLABLE BBON
+BF45;BF45;1108 1169 11AC;BF45;1108 1169 11AC; # (뽅; 뽅; 뽅; 뽅; 뽅; ) HANGUL SYLLABLE BBONJ
+BF46;BF46;1108 1169 11AD;BF46;1108 1169 11AD; # (뽆; 뽆; 뽆; 뽆; 뽆; ) HANGUL SYLLABLE BBONH
+BF47;BF47;1108 1169 11AE;BF47;1108 1169 11AE; # (뽇; 뽇; 뽇; 뽇; 뽇; ) HANGUL SYLLABLE BBOD
+BF48;BF48;1108 1169 11AF;BF48;1108 1169 11AF; # (뽈; 뽈; 뽈; 뽈; 뽈; ) HANGUL SYLLABLE BBOL
+BF49;BF49;1108 1169 11B0;BF49;1108 1169 11B0; # (뽉; 뽉; 뽉; 뽉; 뽉; ) HANGUL SYLLABLE BBOLG
+BF4A;BF4A;1108 1169 11B1;BF4A;1108 1169 11B1; # (뽊; 뽊; 뽊; 뽊; 뽊; ) HANGUL SYLLABLE BBOLM
+BF4B;BF4B;1108 1169 11B2;BF4B;1108 1169 11B2; # (뽋; 뽋; 뽋; 뽋; 뽋; ) HANGUL SYLLABLE BBOLB
+BF4C;BF4C;1108 1169 11B3;BF4C;1108 1169 11B3; # (뽌; 뽌; 뽌; 뽌; 뽌; ) HANGUL SYLLABLE BBOLS
+BF4D;BF4D;1108 1169 11B4;BF4D;1108 1169 11B4; # (뽍; 뽍; 뽍; 뽍; 뽍; ) HANGUL SYLLABLE BBOLT
+BF4E;BF4E;1108 1169 11B5;BF4E;1108 1169 11B5; # (뽎; 뽎; 뽎; 뽎; 뽎; ) HANGUL SYLLABLE BBOLP
+BF4F;BF4F;1108 1169 11B6;BF4F;1108 1169 11B6; # (뽏; 뽏; 뽏; 뽏; 뽏; ) HANGUL SYLLABLE BBOLH
+BF50;BF50;1108 1169 11B7;BF50;1108 1169 11B7; # (뽐; 뽐; 뽐; 뽐; 뽐; ) HANGUL SYLLABLE BBOM
+BF51;BF51;1108 1169 11B8;BF51;1108 1169 11B8; # (뽑; 뽑; 뽑; 뽑; 뽑; ) HANGUL SYLLABLE BBOB
+BF52;BF52;1108 1169 11B9;BF52;1108 1169 11B9; # (뽒; 뽒; 뽒; 뽒; 뽒; ) HANGUL SYLLABLE BBOBS
+BF53;BF53;1108 1169 11BA;BF53;1108 1169 11BA; # (뽓; 뽓; 뽓; 뽓; 뽓; ) HANGUL SYLLABLE BBOS
+BF54;BF54;1108 1169 11BB;BF54;1108 1169 11BB; # (뽔; 뽔; 뽔; 뽔; 뽔; ) HANGUL SYLLABLE BBOSS
+BF55;BF55;1108 1169 11BC;BF55;1108 1169 11BC; # (뽕; 뽕; 뽕; 뽕; 뽕; ) HANGUL SYLLABLE BBONG
+BF56;BF56;1108 1169 11BD;BF56;1108 1169 11BD; # (뽖; 뽖; 뽖; 뽖; 뽖; ) HANGUL SYLLABLE BBOJ
+BF57;BF57;1108 1169 11BE;BF57;1108 1169 11BE; # (뽗; 뽗; 뽗; 뽗; 뽗; ) HANGUL SYLLABLE BBOC
+BF58;BF58;1108 1169 11BF;BF58;1108 1169 11BF; # (뽘; 뽘; 뽘; 뽘; 뽘; ) HANGUL SYLLABLE BBOK
+BF59;BF59;1108 1169 11C0;BF59;1108 1169 11C0; # (뽙; 뽙; 뽙; 뽙; 뽙; ) HANGUL SYLLABLE BBOT
+BF5A;BF5A;1108 1169 11C1;BF5A;1108 1169 11C1; # (뽚; 뽚; 뽚; 뽚; 뽚; ) HANGUL SYLLABLE BBOP
+BF5B;BF5B;1108 1169 11C2;BF5B;1108 1169 11C2; # (뽛; 뽛; 뽛; 뽛; 뽛; ) HANGUL SYLLABLE BBOH
+BF5C;BF5C;1108 116A;BF5C;1108 116A; # (뽜; 뽜; 뽜; 뽜; 뽜; ) HANGUL SYLLABLE BBWA
+BF5D;BF5D;1108 116A 11A8;BF5D;1108 116A 11A8; # (뽝; 뽝; 뽝; 뽝; 뽝; ) HANGUL SYLLABLE BBWAG
+BF5E;BF5E;1108 116A 11A9;BF5E;1108 116A 11A9; # (뽞; 뽞; 뽞; 뽞; 뽞; ) HANGUL SYLLABLE BBWAGG
+BF5F;BF5F;1108 116A 11AA;BF5F;1108 116A 11AA; # (뽟; 뽟; 뽟; 뽟; 뽟; ) HANGUL SYLLABLE BBWAGS
+BF60;BF60;1108 116A 11AB;BF60;1108 116A 11AB; # (뽠; 뽠; 뽠; 뽠; 뽠; ) HANGUL SYLLABLE BBWAN
+BF61;BF61;1108 116A 11AC;BF61;1108 116A 11AC; # (뽡; 뽡; 뽡; 뽡; 뽡; ) HANGUL SYLLABLE BBWANJ
+BF62;BF62;1108 116A 11AD;BF62;1108 116A 11AD; # (뽢; 뽢; 뽢; 뽢; 뽢; ) HANGUL SYLLABLE BBWANH
+BF63;BF63;1108 116A 11AE;BF63;1108 116A 11AE; # (뽣; 뽣; 뽣; 뽣; 뽣; ) HANGUL SYLLABLE BBWAD
+BF64;BF64;1108 116A 11AF;BF64;1108 116A 11AF; # (뽤; 뽤; 뽤; 뽤; 뽤; ) HANGUL SYLLABLE BBWAL
+BF65;BF65;1108 116A 11B0;BF65;1108 116A 11B0; # (뽥; 뽥; 뽥; 뽥; 뽥; ) HANGUL SYLLABLE BBWALG
+BF66;BF66;1108 116A 11B1;BF66;1108 116A 11B1; # (뽦; 뽦; 뽦; 뽦; 뽦; ) HANGUL SYLLABLE BBWALM
+BF67;BF67;1108 116A 11B2;BF67;1108 116A 11B2; # (뽧; 뽧; 뽧; 뽧; 뽧; ) HANGUL SYLLABLE BBWALB
+BF68;BF68;1108 116A 11B3;BF68;1108 116A 11B3; # (뽨; 뽨; 뽨; 뽨; 뽨; ) HANGUL SYLLABLE BBWALS
+BF69;BF69;1108 116A 11B4;BF69;1108 116A 11B4; # (뽩; 뽩; 뽩; 뽩; 뽩; ) HANGUL SYLLABLE BBWALT
+BF6A;BF6A;1108 116A 11B5;BF6A;1108 116A 11B5; # (뽪; 뽪; 뽪; 뽪; 뽪; ) HANGUL SYLLABLE BBWALP
+BF6B;BF6B;1108 116A 11B6;BF6B;1108 116A 11B6; # (뽫; 뽫; 뽫; 뽫; 뽫; ) HANGUL SYLLABLE BBWALH
+BF6C;BF6C;1108 116A 11B7;BF6C;1108 116A 11B7; # (뽬; 뽬; 뽬; 뽬; 뽬; ) HANGUL SYLLABLE BBWAM
+BF6D;BF6D;1108 116A 11B8;BF6D;1108 116A 11B8; # (뽭; 뽭; 뽭; 뽭; 뽭; ) HANGUL SYLLABLE BBWAB
+BF6E;BF6E;1108 116A 11B9;BF6E;1108 116A 11B9; # (뽮; 뽮; 뽮; 뽮; 뽮; ) HANGUL SYLLABLE BBWABS
+BF6F;BF6F;1108 116A 11BA;BF6F;1108 116A 11BA; # (뽯; 뽯; 뽯; 뽯; 뽯; ) HANGUL SYLLABLE BBWAS
+BF70;BF70;1108 116A 11BB;BF70;1108 116A 11BB; # (뽰; 뽰; 뽰; 뽰; 뽰; ) HANGUL SYLLABLE BBWASS
+BF71;BF71;1108 116A 11BC;BF71;1108 116A 11BC; # (뽱; 뽱; 뽱; 뽱; 뽱; ) HANGUL SYLLABLE BBWANG
+BF72;BF72;1108 116A 11BD;BF72;1108 116A 11BD; # (뽲; 뽲; 뽲; 뽲; 뽲; ) HANGUL SYLLABLE BBWAJ
+BF73;BF73;1108 116A 11BE;BF73;1108 116A 11BE; # (뽳; 뽳; 뽳; 뽳; 뽳; ) HANGUL SYLLABLE BBWAC
+BF74;BF74;1108 116A 11BF;BF74;1108 116A 11BF; # (뽴; 뽴; 뽴; 뽴; 뽴; ) HANGUL SYLLABLE BBWAK
+BF75;BF75;1108 116A 11C0;BF75;1108 116A 11C0; # (뽵; 뽵; 뽵; 뽵; 뽵; ) HANGUL SYLLABLE BBWAT
+BF76;BF76;1108 116A 11C1;BF76;1108 116A 11C1; # (뽶; 뽶; 뽶; 뽶; 뽶; ) HANGUL SYLLABLE BBWAP
+BF77;BF77;1108 116A 11C2;BF77;1108 116A 11C2; # (뽷; 뽷; 뽷; 뽷; 뽷; ) HANGUL SYLLABLE BBWAH
+BF78;BF78;1108 116B;BF78;1108 116B; # (뽸; 뽸; 뽸; 뽸; 뽸; ) HANGUL SYLLABLE BBWAE
+BF79;BF79;1108 116B 11A8;BF79;1108 116B 11A8; # (뽹; 뽹; 뽹; 뽹; 뽹; ) HANGUL SYLLABLE BBWAEG
+BF7A;BF7A;1108 116B 11A9;BF7A;1108 116B 11A9; # (뽺; 뽺; 뽺; 뽺; 뽺; ) HANGUL SYLLABLE BBWAEGG
+BF7B;BF7B;1108 116B 11AA;BF7B;1108 116B 11AA; # (뽻; 뽻; 뽻; 뽻; 뽻; ) HANGUL SYLLABLE BBWAEGS
+BF7C;BF7C;1108 116B 11AB;BF7C;1108 116B 11AB; # (뽼; 뽼; 뽼; 뽼; 뽼; ) HANGUL SYLLABLE BBWAEN
+BF7D;BF7D;1108 116B 11AC;BF7D;1108 116B 11AC; # (뽽; 뽽; 뽽; 뽽; 뽽; ) HANGUL SYLLABLE BBWAENJ
+BF7E;BF7E;1108 116B 11AD;BF7E;1108 116B 11AD; # (뽾; 뽾; 뽾; 뽾; 뽾; ) HANGUL SYLLABLE BBWAENH
+BF7F;BF7F;1108 116B 11AE;BF7F;1108 116B 11AE; # (뽿; 뽿; 뽿; 뽿; 뽿; ) HANGUL SYLLABLE BBWAED
+BF80;BF80;1108 116B 11AF;BF80;1108 116B 11AF; # (뾀; 뾀; 뾀; 뾀; 뾀; ) HANGUL SYLLABLE BBWAEL
+BF81;BF81;1108 116B 11B0;BF81;1108 116B 11B0; # (뾁; 뾁; 뾁; 뾁; 뾁; ) HANGUL SYLLABLE BBWAELG
+BF82;BF82;1108 116B 11B1;BF82;1108 116B 11B1; # (뾂; 뾂; 뾂; 뾂; 뾂; ) HANGUL SYLLABLE BBWAELM
+BF83;BF83;1108 116B 11B2;BF83;1108 116B 11B2; # (뾃; 뾃; 뾃; 뾃; 뾃; ) HANGUL SYLLABLE BBWAELB
+BF84;BF84;1108 116B 11B3;BF84;1108 116B 11B3; # (뾄; 뾄; 뾄; 뾄; 뾄; ) HANGUL SYLLABLE BBWAELS
+BF85;BF85;1108 116B 11B4;BF85;1108 116B 11B4; # (뾅; 뾅; 뾅; 뾅; 뾅; ) HANGUL SYLLABLE BBWAELT
+BF86;BF86;1108 116B 11B5;BF86;1108 116B 11B5; # (뾆; 뾆; 뾆; 뾆; 뾆; ) HANGUL SYLLABLE BBWAELP
+BF87;BF87;1108 116B 11B6;BF87;1108 116B 11B6; # (뾇; 뾇; 뾇; 뾇; 뾇; ) HANGUL SYLLABLE BBWAELH
+BF88;BF88;1108 116B 11B7;BF88;1108 116B 11B7; # (뾈; 뾈; 뾈; 뾈; 뾈; ) HANGUL SYLLABLE BBWAEM
+BF89;BF89;1108 116B 11B8;BF89;1108 116B 11B8; # (뾉; 뾉; 뾉; 뾉; 뾉; ) HANGUL SYLLABLE BBWAEB
+BF8A;BF8A;1108 116B 11B9;BF8A;1108 116B 11B9; # (뾊; 뾊; 뾊; 뾊; 뾊; ) HANGUL SYLLABLE BBWAEBS
+BF8B;BF8B;1108 116B 11BA;BF8B;1108 116B 11BA; # (뾋; 뾋; 뾋; 뾋; 뾋; ) HANGUL SYLLABLE BBWAES
+BF8C;BF8C;1108 116B 11BB;BF8C;1108 116B 11BB; # (뾌; 뾌; 뾌; 뾌; 뾌; ) HANGUL SYLLABLE BBWAESS
+BF8D;BF8D;1108 116B 11BC;BF8D;1108 116B 11BC; # (뾍; 뾍; 뾍; 뾍; 뾍; ) HANGUL SYLLABLE BBWAENG
+BF8E;BF8E;1108 116B 11BD;BF8E;1108 116B 11BD; # (뾎; 뾎; 뾎; 뾎; 뾎; ) HANGUL SYLLABLE BBWAEJ
+BF8F;BF8F;1108 116B 11BE;BF8F;1108 116B 11BE; # (뾏; 뾏; 뾏; 뾏; 뾏; ) HANGUL SYLLABLE BBWAEC
+BF90;BF90;1108 116B 11BF;BF90;1108 116B 11BF; # (뾐; 뾐; 뾐; 뾐; 뾐; ) HANGUL SYLLABLE BBWAEK
+BF91;BF91;1108 116B 11C0;BF91;1108 116B 11C0; # (뾑; 뾑; 뾑; 뾑; 뾑; ) HANGUL SYLLABLE BBWAET
+BF92;BF92;1108 116B 11C1;BF92;1108 116B 11C1; # (뾒; 뾒; 뾒; 뾒; 뾒; ) HANGUL SYLLABLE BBWAEP
+BF93;BF93;1108 116B 11C2;BF93;1108 116B 11C2; # (뾓; 뾓; 뾓; 뾓; 뾓; ) HANGUL SYLLABLE BBWAEH
+BF94;BF94;1108 116C;BF94;1108 116C; # (뾔; 뾔; 뾔; 뾔; 뾔; ) HANGUL SYLLABLE BBOE
+BF95;BF95;1108 116C 11A8;BF95;1108 116C 11A8; # (뾕; 뾕; 뾕; 뾕; 뾕; ) HANGUL SYLLABLE BBOEG
+BF96;BF96;1108 116C 11A9;BF96;1108 116C 11A9; # (뾖; 뾖; 뾖; 뾖; 뾖; ) HANGUL SYLLABLE BBOEGG
+BF97;BF97;1108 116C 11AA;BF97;1108 116C 11AA; # (뾗; 뾗; 뾗; 뾗; 뾗; ) HANGUL SYLLABLE BBOEGS
+BF98;BF98;1108 116C 11AB;BF98;1108 116C 11AB; # (뾘; 뾘; 뾘; 뾘; 뾘; ) HANGUL SYLLABLE BBOEN
+BF99;BF99;1108 116C 11AC;BF99;1108 116C 11AC; # (뾙; 뾙; 뾙; 뾙; 뾙; ) HANGUL SYLLABLE BBOENJ
+BF9A;BF9A;1108 116C 11AD;BF9A;1108 116C 11AD; # (뾚; 뾚; 뾚; 뾚; 뾚; ) HANGUL SYLLABLE BBOENH
+BF9B;BF9B;1108 116C 11AE;BF9B;1108 116C 11AE; # (뾛; 뾛; 뾛; 뾛; 뾛; ) HANGUL SYLLABLE BBOED
+BF9C;BF9C;1108 116C 11AF;BF9C;1108 116C 11AF; # (뾜; 뾜; 뾜; 뾜; 뾜; ) HANGUL SYLLABLE BBOEL
+BF9D;BF9D;1108 116C 11B0;BF9D;1108 116C 11B0; # (뾝; 뾝; 뾝; 뾝; 뾝; ) HANGUL SYLLABLE BBOELG
+BF9E;BF9E;1108 116C 11B1;BF9E;1108 116C 11B1; # (뾞; 뾞; 뾞; 뾞; 뾞; ) HANGUL SYLLABLE BBOELM
+BF9F;BF9F;1108 116C 11B2;BF9F;1108 116C 11B2; # (뾟; 뾟; 뾟; 뾟; 뾟; ) HANGUL SYLLABLE BBOELB
+BFA0;BFA0;1108 116C 11B3;BFA0;1108 116C 11B3; # (뾠; 뾠; 뾠; 뾠; 뾠; ) HANGUL SYLLABLE BBOELS
+BFA1;BFA1;1108 116C 11B4;BFA1;1108 116C 11B4; # (뾡; 뾡; 뾡; 뾡; 뾡; ) HANGUL SYLLABLE BBOELT
+BFA2;BFA2;1108 116C 11B5;BFA2;1108 116C 11B5; # (뾢; 뾢; 뾢; 뾢; 뾢; ) HANGUL SYLLABLE BBOELP
+BFA3;BFA3;1108 116C 11B6;BFA3;1108 116C 11B6; # (뾣; 뾣; 뾣; 뾣; 뾣; ) HANGUL SYLLABLE BBOELH
+BFA4;BFA4;1108 116C 11B7;BFA4;1108 116C 11B7; # (뾤; 뾤; 뾤; 뾤; 뾤; ) HANGUL SYLLABLE BBOEM
+BFA5;BFA5;1108 116C 11B8;BFA5;1108 116C 11B8; # (뾥; 뾥; 뾥; 뾥; 뾥; ) HANGUL SYLLABLE BBOEB
+BFA6;BFA6;1108 116C 11B9;BFA6;1108 116C 11B9; # (뾦; 뾦; 뾦; 뾦; 뾦; ) HANGUL SYLLABLE BBOEBS
+BFA7;BFA7;1108 116C 11BA;BFA7;1108 116C 11BA; # (뾧; 뾧; 뾧; 뾧; 뾧; ) HANGUL SYLLABLE BBOES
+BFA8;BFA8;1108 116C 11BB;BFA8;1108 116C 11BB; # (뾨; 뾨; 뾨; 뾨; 뾨; ) HANGUL SYLLABLE BBOESS
+BFA9;BFA9;1108 116C 11BC;BFA9;1108 116C 11BC; # (뾩; 뾩; 뾩; 뾩; 뾩; ) HANGUL SYLLABLE BBOENG
+BFAA;BFAA;1108 116C 11BD;BFAA;1108 116C 11BD; # (뾪; 뾪; 뾪; 뾪; 뾪; ) HANGUL SYLLABLE BBOEJ
+BFAB;BFAB;1108 116C 11BE;BFAB;1108 116C 11BE; # (뾫; 뾫; 뾫; 뾫; 뾫; ) HANGUL SYLLABLE BBOEC
+BFAC;BFAC;1108 116C 11BF;BFAC;1108 116C 11BF; # (뾬; 뾬; 뾬; 뾬; 뾬; ) HANGUL SYLLABLE BBOEK
+BFAD;BFAD;1108 116C 11C0;BFAD;1108 116C 11C0; # (뾭; 뾭; 뾭; 뾭; 뾭; ) HANGUL SYLLABLE BBOET
+BFAE;BFAE;1108 116C 11C1;BFAE;1108 116C 11C1; # (뾮; 뾮; 뾮; 뾮; 뾮; ) HANGUL SYLLABLE BBOEP
+BFAF;BFAF;1108 116C 11C2;BFAF;1108 116C 11C2; # (뾯; 뾯; 뾯; 뾯; 뾯; ) HANGUL SYLLABLE BBOEH
+BFB0;BFB0;1108 116D;BFB0;1108 116D; # (뾰; 뾰; 뾰; 뾰; 뾰; ) HANGUL SYLLABLE BBYO
+BFB1;BFB1;1108 116D 11A8;BFB1;1108 116D 11A8; # (뾱; 뾱; 뾱; 뾱; 뾱; ) HANGUL SYLLABLE BBYOG
+BFB2;BFB2;1108 116D 11A9;BFB2;1108 116D 11A9; # (뾲; 뾲; 뾲; 뾲; 뾲; ) HANGUL SYLLABLE BBYOGG
+BFB3;BFB3;1108 116D 11AA;BFB3;1108 116D 11AA; # (뾳; 뾳; 뾳; 뾳; 뾳; ) HANGUL SYLLABLE BBYOGS
+BFB4;BFB4;1108 116D 11AB;BFB4;1108 116D 11AB; # (뾴; 뾴; 뾴; 뾴; 뾴; ) HANGUL SYLLABLE BBYON
+BFB5;BFB5;1108 116D 11AC;BFB5;1108 116D 11AC; # (뾵; 뾵; 뾵; 뾵; 뾵; ) HANGUL SYLLABLE BBYONJ
+BFB6;BFB6;1108 116D 11AD;BFB6;1108 116D 11AD; # (뾶; 뾶; 뾶; 뾶; 뾶; ) HANGUL SYLLABLE BBYONH
+BFB7;BFB7;1108 116D 11AE;BFB7;1108 116D 11AE; # (뾷; 뾷; 뾷; 뾷; 뾷; ) HANGUL SYLLABLE BBYOD
+BFB8;BFB8;1108 116D 11AF;BFB8;1108 116D 11AF; # (뾸; 뾸; 뾸; 뾸; 뾸; ) HANGUL SYLLABLE BBYOL
+BFB9;BFB9;1108 116D 11B0;BFB9;1108 116D 11B0; # (뾹; 뾹; 뾹; 뾹; 뾹; ) HANGUL SYLLABLE BBYOLG
+BFBA;BFBA;1108 116D 11B1;BFBA;1108 116D 11B1; # (뾺; 뾺; 뾺; 뾺; 뾺; ) HANGUL SYLLABLE BBYOLM
+BFBB;BFBB;1108 116D 11B2;BFBB;1108 116D 11B2; # (뾻; 뾻; 뾻; 뾻; 뾻; ) HANGUL SYLLABLE BBYOLB
+BFBC;BFBC;1108 116D 11B3;BFBC;1108 116D 11B3; # (뾼; 뾼; 뾼; 뾼; 뾼; ) HANGUL SYLLABLE BBYOLS
+BFBD;BFBD;1108 116D 11B4;BFBD;1108 116D 11B4; # (뾽; 뾽; 뾽; 뾽; 뾽; ) HANGUL SYLLABLE BBYOLT
+BFBE;BFBE;1108 116D 11B5;BFBE;1108 116D 11B5; # (뾾; 뾾; 뾾; 뾾; 뾾; ) HANGUL SYLLABLE BBYOLP
+BFBF;BFBF;1108 116D 11B6;BFBF;1108 116D 11B6; # (뾿; 뾿; 뾿; 뾿; 뾿; ) HANGUL SYLLABLE BBYOLH
+BFC0;BFC0;1108 116D 11B7;BFC0;1108 116D 11B7; # (뿀; 뿀; 뿀; 뿀; 뿀; ) HANGUL SYLLABLE BBYOM
+BFC1;BFC1;1108 116D 11B8;BFC1;1108 116D 11B8; # (뿁; 뿁; 뿁; 뿁; 뿁; ) HANGUL SYLLABLE BBYOB
+BFC2;BFC2;1108 116D 11B9;BFC2;1108 116D 11B9; # (뿂; 뿂; 뿂; 뿂; 뿂; ) HANGUL SYLLABLE BBYOBS
+BFC3;BFC3;1108 116D 11BA;BFC3;1108 116D 11BA; # (뿃; 뿃; 뿃; 뿃; 뿃; ) HANGUL SYLLABLE BBYOS
+BFC4;BFC4;1108 116D 11BB;BFC4;1108 116D 11BB; # (뿄; 뿄; 뿄; 뿄; 뿄; ) HANGUL SYLLABLE BBYOSS
+BFC5;BFC5;1108 116D 11BC;BFC5;1108 116D 11BC; # (뿅; 뿅; 뿅; 뿅; 뿅; ) HANGUL SYLLABLE BBYONG
+BFC6;BFC6;1108 116D 11BD;BFC6;1108 116D 11BD; # (뿆; 뿆; 뿆; 뿆; 뿆; ) HANGUL SYLLABLE BBYOJ
+BFC7;BFC7;1108 116D 11BE;BFC7;1108 116D 11BE; # (뿇; 뿇; 뿇; 뿇; 뿇; ) HANGUL SYLLABLE BBYOC
+BFC8;BFC8;1108 116D 11BF;BFC8;1108 116D 11BF; # (뿈; 뿈; 뿈; 뿈; 뿈; ) HANGUL SYLLABLE BBYOK
+BFC9;BFC9;1108 116D 11C0;BFC9;1108 116D 11C0; # (뿉; 뿉; 뿉; 뿉; 뿉; ) HANGUL SYLLABLE BBYOT
+BFCA;BFCA;1108 116D 11C1;BFCA;1108 116D 11C1; # (뿊; 뿊; 뿊; 뿊; 뿊; ) HANGUL SYLLABLE BBYOP
+BFCB;BFCB;1108 116D 11C2;BFCB;1108 116D 11C2; # (뿋; 뿋; 뿋; 뿋; 뿋; ) HANGUL SYLLABLE BBYOH
+BFCC;BFCC;1108 116E;BFCC;1108 116E; # (뿌; 뿌; 뿌; 뿌; 뿌; ) HANGUL SYLLABLE BBU
+BFCD;BFCD;1108 116E 11A8;BFCD;1108 116E 11A8; # (뿍; 뿍; 뿍; 뿍; 뿍; ) HANGUL SYLLABLE BBUG
+BFCE;BFCE;1108 116E 11A9;BFCE;1108 116E 11A9; # (뿎; 뿎; 뿎; 뿎; 뿎; ) HANGUL SYLLABLE BBUGG
+BFCF;BFCF;1108 116E 11AA;BFCF;1108 116E 11AA; # (뿏; 뿏; 뿏; 뿏; 뿏; ) HANGUL SYLLABLE BBUGS
+BFD0;BFD0;1108 116E 11AB;BFD0;1108 116E 11AB; # (뿐; 뿐; 뿐; 뿐; 뿐; ) HANGUL SYLLABLE BBUN
+BFD1;BFD1;1108 116E 11AC;BFD1;1108 116E 11AC; # (뿑; 뿑; 뿑; 뿑; 뿑; ) HANGUL SYLLABLE BBUNJ
+BFD2;BFD2;1108 116E 11AD;BFD2;1108 116E 11AD; # (뿒; 뿒; 뿒; 뿒; 뿒; ) HANGUL SYLLABLE BBUNH
+BFD3;BFD3;1108 116E 11AE;BFD3;1108 116E 11AE; # (뿓; 뿓; 뿓; 뿓; 뿓; ) HANGUL SYLLABLE BBUD
+BFD4;BFD4;1108 116E 11AF;BFD4;1108 116E 11AF; # (뿔; 뿔; 뿔; 뿔; 뿔; ) HANGUL SYLLABLE BBUL
+BFD5;BFD5;1108 116E 11B0;BFD5;1108 116E 11B0; # (뿕; 뿕; 뿕; 뿕; 뿕; ) HANGUL SYLLABLE BBULG
+BFD6;BFD6;1108 116E 11B1;BFD6;1108 116E 11B1; # (뿖; 뿖; 뿖; 뿖; 뿖; ) HANGUL SYLLABLE BBULM
+BFD7;BFD7;1108 116E 11B2;BFD7;1108 116E 11B2; # (뿗; 뿗; 뿗; 뿗; 뿗; ) HANGUL SYLLABLE BBULB
+BFD8;BFD8;1108 116E 11B3;BFD8;1108 116E 11B3; # (뿘; 뿘; 뿘; 뿘; 뿘; ) HANGUL SYLLABLE BBULS
+BFD9;BFD9;1108 116E 11B4;BFD9;1108 116E 11B4; # (뿙; 뿙; 뿙; 뿙; 뿙; ) HANGUL SYLLABLE BBULT
+BFDA;BFDA;1108 116E 11B5;BFDA;1108 116E 11B5; # (뿚; 뿚; 뿚; 뿚; 뿚; ) HANGUL SYLLABLE BBULP
+BFDB;BFDB;1108 116E 11B6;BFDB;1108 116E 11B6; # (뿛; 뿛; 뿛; 뿛; 뿛; ) HANGUL SYLLABLE BBULH
+BFDC;BFDC;1108 116E 11B7;BFDC;1108 116E 11B7; # (뿜; 뿜; 뿜; 뿜; 뿜; ) HANGUL SYLLABLE BBUM
+BFDD;BFDD;1108 116E 11B8;BFDD;1108 116E 11B8; # (뿝; 뿝; 뿝; 뿝; 뿝; ) HANGUL SYLLABLE BBUB
+BFDE;BFDE;1108 116E 11B9;BFDE;1108 116E 11B9; # (뿞; 뿞; 뿞; 뿞; 뿞; ) HANGUL SYLLABLE BBUBS
+BFDF;BFDF;1108 116E 11BA;BFDF;1108 116E 11BA; # (뿟; 뿟; 뿟; 뿟; 뿟; ) HANGUL SYLLABLE BBUS
+BFE0;BFE0;1108 116E 11BB;BFE0;1108 116E 11BB; # (뿠; 뿠; 뿠; 뿠; 뿠; ) HANGUL SYLLABLE BBUSS
+BFE1;BFE1;1108 116E 11BC;BFE1;1108 116E 11BC; # (뿡; 뿡; 뿡; 뿡; 뿡; ) HANGUL SYLLABLE BBUNG
+BFE2;BFE2;1108 116E 11BD;BFE2;1108 116E 11BD; # (뿢; 뿢; 뿢; 뿢; 뿢; ) HANGUL SYLLABLE BBUJ
+BFE3;BFE3;1108 116E 11BE;BFE3;1108 116E 11BE; # (뿣; 뿣; 뿣; 뿣; 뿣; ) HANGUL SYLLABLE BBUC
+BFE4;BFE4;1108 116E 11BF;BFE4;1108 116E 11BF; # (뿤; 뿤; 뿤; 뿤; 뿤; ) HANGUL SYLLABLE BBUK
+BFE5;BFE5;1108 116E 11C0;BFE5;1108 116E 11C0; # (뿥; 뿥; 뿥; 뿥; 뿥; ) HANGUL SYLLABLE BBUT
+BFE6;BFE6;1108 116E 11C1;BFE6;1108 116E 11C1; # (뿦; 뿦; 뿦; 뿦; 뿦; ) HANGUL SYLLABLE BBUP
+BFE7;BFE7;1108 116E 11C2;BFE7;1108 116E 11C2; # (뿧; 뿧; 뿧; 뿧; 뿧; ) HANGUL SYLLABLE BBUH
+BFE8;BFE8;1108 116F;BFE8;1108 116F; # (뿨; 뿨; 뿨; 뿨; 뿨; ) HANGUL SYLLABLE BBWEO
+BFE9;BFE9;1108 116F 11A8;BFE9;1108 116F 11A8; # (뿩; 뿩; 뿩; 뿩; 뿩; ) HANGUL SYLLABLE BBWEOG
+BFEA;BFEA;1108 116F 11A9;BFEA;1108 116F 11A9; # (뿪; 뿪; 뿪; 뿪; 뿪; ) HANGUL SYLLABLE BBWEOGG
+BFEB;BFEB;1108 116F 11AA;BFEB;1108 116F 11AA; # (뿫; 뿫; 뿫; 뿫; 뿫; ) HANGUL SYLLABLE BBWEOGS
+BFEC;BFEC;1108 116F 11AB;BFEC;1108 116F 11AB; # (뿬; 뿬; 뿬; 뿬; 뿬; ) HANGUL SYLLABLE BBWEON
+BFED;BFED;1108 116F 11AC;BFED;1108 116F 11AC; # (뿭; 뿭; 뿭; 뿭; 뿭; ) HANGUL SYLLABLE BBWEONJ
+BFEE;BFEE;1108 116F 11AD;BFEE;1108 116F 11AD; # (뿮; 뿮; 뿮; 뿮; 뿮; ) HANGUL SYLLABLE BBWEONH
+BFEF;BFEF;1108 116F 11AE;BFEF;1108 116F 11AE; # (뿯; 뿯; 뿯; 뿯; 뿯; ) HANGUL SYLLABLE BBWEOD
+BFF0;BFF0;1108 116F 11AF;BFF0;1108 116F 11AF; # (뿰; 뿰; 뿰; 뿰; 뿰; ) HANGUL SYLLABLE BBWEOL
+BFF1;BFF1;1108 116F 11B0;BFF1;1108 116F 11B0; # (뿱; 뿱; 뿱; 뿱; 뿱; ) HANGUL SYLLABLE BBWEOLG
+BFF2;BFF2;1108 116F 11B1;BFF2;1108 116F 11B1; # (뿲; 뿲; 뿲; 뿲; 뿲; ) HANGUL SYLLABLE BBWEOLM
+BFF3;BFF3;1108 116F 11B2;BFF3;1108 116F 11B2; # (뿳; 뿳; 뿳; 뿳; 뿳; ) HANGUL SYLLABLE BBWEOLB
+BFF4;BFF4;1108 116F 11B3;BFF4;1108 116F 11B3; # (뿴; 뿴; 뿴; 뿴; 뿴; ) HANGUL SYLLABLE BBWEOLS
+BFF5;BFF5;1108 116F 11B4;BFF5;1108 116F 11B4; # (뿵; 뿵; 뿵; 뿵; 뿵; ) HANGUL SYLLABLE BBWEOLT
+BFF6;BFF6;1108 116F 11B5;BFF6;1108 116F 11B5; # (뿶; 뿶; 뿶; 뿶; 뿶; ) HANGUL SYLLABLE BBWEOLP
+BFF7;BFF7;1108 116F 11B6;BFF7;1108 116F 11B6; # (뿷; 뿷; 뿷; 뿷; 뿷; ) HANGUL SYLLABLE BBWEOLH
+BFF8;BFF8;1108 116F 11B7;BFF8;1108 116F 11B7; # (뿸; 뿸; 뿸; 뿸; 뿸; ) HANGUL SYLLABLE BBWEOM
+BFF9;BFF9;1108 116F 11B8;BFF9;1108 116F 11B8; # (뿹; 뿹; 뿹; 뿹; 뿹; ) HANGUL SYLLABLE BBWEOB
+BFFA;BFFA;1108 116F 11B9;BFFA;1108 116F 11B9; # (뿺; 뿺; 뿺; 뿺; 뿺; ) HANGUL SYLLABLE BBWEOBS
+BFFB;BFFB;1108 116F 11BA;BFFB;1108 116F 11BA; # (뿻; 뿻; 뿻; 뿻; 뿻; ) HANGUL SYLLABLE BBWEOS
+BFFC;BFFC;1108 116F 11BB;BFFC;1108 116F 11BB; # (뿼; 뿼; 뿼; 뿼; 뿼; ) HANGUL SYLLABLE BBWEOSS
+BFFD;BFFD;1108 116F 11BC;BFFD;1108 116F 11BC; # (뿽; 뿽; 뿽; 뿽; 뿽; ) HANGUL SYLLABLE BBWEONG
+BFFE;BFFE;1108 116F 11BD;BFFE;1108 116F 11BD; # (뿾; 뿾; 뿾; 뿾; 뿾; ) HANGUL SYLLABLE BBWEOJ
+BFFF;BFFF;1108 116F 11BE;BFFF;1108 116F 11BE; # (뿿; 뿿; 뿿; 뿿; 뿿; ) HANGUL SYLLABLE BBWEOC
+C000;C000;1108 116F 11BF;C000;1108 116F 11BF; # (쀀; 쀀; 쀀; 쀀; 쀀; ) HANGUL SYLLABLE BBWEOK
+C001;C001;1108 116F 11C0;C001;1108 116F 11C0; # (쀁; 쀁; 쀁; 쀁; 쀁; ) HANGUL SYLLABLE BBWEOT
+C002;C002;1108 116F 11C1;C002;1108 116F 11C1; # (쀂; 쀂; 쀂; 쀂; 쀂; ) HANGUL SYLLABLE BBWEOP
+C003;C003;1108 116F 11C2;C003;1108 116F 11C2; # (쀃; 쀃; 쀃; 쀃; 쀃; ) HANGUL SYLLABLE BBWEOH
+C004;C004;1108 1170;C004;1108 1170; # (쀄; 쀄; 쀄; 쀄; 쀄; ) HANGUL SYLLABLE BBWE
+C005;C005;1108 1170 11A8;C005;1108 1170 11A8; # (쀅; 쀅; 쀅; 쀅; 쀅; ) HANGUL SYLLABLE BBWEG
+C006;C006;1108 1170 11A9;C006;1108 1170 11A9; # (쀆; 쀆; 쀆; 쀆; 쀆; ) HANGUL SYLLABLE BBWEGG
+C007;C007;1108 1170 11AA;C007;1108 1170 11AA; # (쀇; 쀇; 쀇; 쀇; 쀇; ) HANGUL SYLLABLE BBWEGS
+C008;C008;1108 1170 11AB;C008;1108 1170 11AB; # (쀈; 쀈; 쀈; 쀈; 쀈; ) HANGUL SYLLABLE BBWEN
+C009;C009;1108 1170 11AC;C009;1108 1170 11AC; # (쀉; 쀉; 쀉; 쀉; 쀉; ) HANGUL SYLLABLE BBWENJ
+C00A;C00A;1108 1170 11AD;C00A;1108 1170 11AD; # (쀊; 쀊; 쀊; 쀊; 쀊; ) HANGUL SYLLABLE BBWENH
+C00B;C00B;1108 1170 11AE;C00B;1108 1170 11AE; # (쀋; 쀋; 쀋; 쀋; 쀋; ) HANGUL SYLLABLE BBWED
+C00C;C00C;1108 1170 11AF;C00C;1108 1170 11AF; # (쀌; 쀌; 쀌; 쀌; 쀌; ) HANGUL SYLLABLE BBWEL
+C00D;C00D;1108 1170 11B0;C00D;1108 1170 11B0; # (쀍; 쀍; 쀍; 쀍; 쀍; ) HANGUL SYLLABLE BBWELG
+C00E;C00E;1108 1170 11B1;C00E;1108 1170 11B1; # (쀎; 쀎; 쀎; 쀎; 쀎; ) HANGUL SYLLABLE BBWELM
+C00F;C00F;1108 1170 11B2;C00F;1108 1170 11B2; # (쀏; 쀏; 쀏; 쀏; 쀏; ) HANGUL SYLLABLE BBWELB
+C010;C010;1108 1170 11B3;C010;1108 1170 11B3; # (쀐; 쀐; 쀐; 쀐; 쀐; ) HANGUL SYLLABLE BBWELS
+C011;C011;1108 1170 11B4;C011;1108 1170 11B4; # (쀑; 쀑; 쀑; 쀑; 쀑; ) HANGUL SYLLABLE BBWELT
+C012;C012;1108 1170 11B5;C012;1108 1170 11B5; # (쀒; 쀒; 쀒; 쀒; 쀒; ) HANGUL SYLLABLE BBWELP
+C013;C013;1108 1170 11B6;C013;1108 1170 11B6; # (쀓; 쀓; 쀓; 쀓; 쀓; ) HANGUL SYLLABLE BBWELH
+C014;C014;1108 1170 11B7;C014;1108 1170 11B7; # (쀔; 쀔; 쀔; 쀔; 쀔; ) HANGUL SYLLABLE BBWEM
+C015;C015;1108 1170 11B8;C015;1108 1170 11B8; # (쀕; 쀕; 쀕; 쀕; 쀕; ) HANGUL SYLLABLE BBWEB
+C016;C016;1108 1170 11B9;C016;1108 1170 11B9; # (쀖; 쀖; 쀖; 쀖; 쀖; ) HANGUL SYLLABLE BBWEBS
+C017;C017;1108 1170 11BA;C017;1108 1170 11BA; # (쀗; 쀗; 쀗; 쀗; 쀗; ) HANGUL SYLLABLE BBWES
+C018;C018;1108 1170 11BB;C018;1108 1170 11BB; # (쀘; 쀘; 쀘; 쀘; 쀘; ) HANGUL SYLLABLE BBWESS
+C019;C019;1108 1170 11BC;C019;1108 1170 11BC; # (쀙; 쀙; 쀙; 쀙; 쀙; ) HANGUL SYLLABLE BBWENG
+C01A;C01A;1108 1170 11BD;C01A;1108 1170 11BD; # (쀚; 쀚; 쀚; 쀚; 쀚; ) HANGUL SYLLABLE BBWEJ
+C01B;C01B;1108 1170 11BE;C01B;1108 1170 11BE; # (쀛; 쀛; 쀛; 쀛; 쀛; ) HANGUL SYLLABLE BBWEC
+C01C;C01C;1108 1170 11BF;C01C;1108 1170 11BF; # (쀜; 쀜; 쀜; 쀜; 쀜; ) HANGUL SYLLABLE BBWEK
+C01D;C01D;1108 1170 11C0;C01D;1108 1170 11C0; # (쀝; 쀝; 쀝; 쀝; 쀝; ) HANGUL SYLLABLE BBWET
+C01E;C01E;1108 1170 11C1;C01E;1108 1170 11C1; # (쀞; 쀞; 쀞; 쀞; 쀞; ) HANGUL SYLLABLE BBWEP
+C01F;C01F;1108 1170 11C2;C01F;1108 1170 11C2; # (쀟; 쀟; 쀟; 쀟; 쀟; ) HANGUL SYLLABLE BBWEH
+C020;C020;1108 1171;C020;1108 1171; # (쀠; 쀠; 쀠; 쀠; 쀠; ) HANGUL SYLLABLE BBWI
+C021;C021;1108 1171 11A8;C021;1108 1171 11A8; # (쀡; 쀡; 쀡; 쀡; 쀡; ) HANGUL SYLLABLE BBWIG
+C022;C022;1108 1171 11A9;C022;1108 1171 11A9; # (쀢; 쀢; 쀢; 쀢; 쀢; ) HANGUL SYLLABLE BBWIGG
+C023;C023;1108 1171 11AA;C023;1108 1171 11AA; # (쀣; 쀣; 쀣; 쀣; 쀣; ) HANGUL SYLLABLE BBWIGS
+C024;C024;1108 1171 11AB;C024;1108 1171 11AB; # (쀤; 쀤; 쀤; 쀤; 쀤; ) HANGUL SYLLABLE BBWIN
+C025;C025;1108 1171 11AC;C025;1108 1171 11AC; # (쀥; 쀥; 쀥; 쀥; 쀥; ) HANGUL SYLLABLE BBWINJ
+C026;C026;1108 1171 11AD;C026;1108 1171 11AD; # (쀦; 쀦; 쀦; 쀦; 쀦; ) HANGUL SYLLABLE BBWINH
+C027;C027;1108 1171 11AE;C027;1108 1171 11AE; # (쀧; 쀧; 쀧; 쀧; 쀧; ) HANGUL SYLLABLE BBWID
+C028;C028;1108 1171 11AF;C028;1108 1171 11AF; # (쀨; 쀨; 쀨; 쀨; 쀨; ) HANGUL SYLLABLE BBWIL
+C029;C029;1108 1171 11B0;C029;1108 1171 11B0; # (쀩; 쀩; 쀩; 쀩; 쀩; ) HANGUL SYLLABLE BBWILG
+C02A;C02A;1108 1171 11B1;C02A;1108 1171 11B1; # (쀪; 쀪; 쀪; 쀪; 쀪; ) HANGUL SYLLABLE BBWILM
+C02B;C02B;1108 1171 11B2;C02B;1108 1171 11B2; # (쀫; 쀫; 쀫; 쀫; 쀫; ) HANGUL SYLLABLE BBWILB
+C02C;C02C;1108 1171 11B3;C02C;1108 1171 11B3; # (쀬; 쀬; 쀬; 쀬; 쀬; ) HANGUL SYLLABLE BBWILS
+C02D;C02D;1108 1171 11B4;C02D;1108 1171 11B4; # (쀭; 쀭; 쀭; 쀭; 쀭; ) HANGUL SYLLABLE BBWILT
+C02E;C02E;1108 1171 11B5;C02E;1108 1171 11B5; # (쀮; 쀮; 쀮; 쀮; 쀮; ) HANGUL SYLLABLE BBWILP
+C02F;C02F;1108 1171 11B6;C02F;1108 1171 11B6; # (쀯; 쀯; 쀯; 쀯; 쀯; ) HANGUL SYLLABLE BBWILH
+C030;C030;1108 1171 11B7;C030;1108 1171 11B7; # (쀰; 쀰; 쀰; 쀰; 쀰; ) HANGUL SYLLABLE BBWIM
+C031;C031;1108 1171 11B8;C031;1108 1171 11B8; # (쀱; 쀱; 쀱; 쀱; 쀱; ) HANGUL SYLLABLE BBWIB
+C032;C032;1108 1171 11B9;C032;1108 1171 11B9; # (쀲; 쀲; 쀲; 쀲; 쀲; ) HANGUL SYLLABLE BBWIBS
+C033;C033;1108 1171 11BA;C033;1108 1171 11BA; # (쀳; 쀳; 쀳; 쀳; 쀳; ) HANGUL SYLLABLE BBWIS
+C034;C034;1108 1171 11BB;C034;1108 1171 11BB; # (쀴; 쀴; 쀴; 쀴; 쀴; ) HANGUL SYLLABLE BBWISS
+C035;C035;1108 1171 11BC;C035;1108 1171 11BC; # (쀵; 쀵; 쀵; 쀵; 쀵; ) HANGUL SYLLABLE BBWING
+C036;C036;1108 1171 11BD;C036;1108 1171 11BD; # (쀶; 쀶; 쀶; 쀶; 쀶; ) HANGUL SYLLABLE BBWIJ
+C037;C037;1108 1171 11BE;C037;1108 1171 11BE; # (쀷; 쀷; 쀷; 쀷; 쀷; ) HANGUL SYLLABLE BBWIC
+C038;C038;1108 1171 11BF;C038;1108 1171 11BF; # (쀸; 쀸; 쀸; 쀸; 쀸; ) HANGUL SYLLABLE BBWIK
+C039;C039;1108 1171 11C0;C039;1108 1171 11C0; # (쀹; 쀹; 쀹; 쀹; 쀹; ) HANGUL SYLLABLE BBWIT
+C03A;C03A;1108 1171 11C1;C03A;1108 1171 11C1; # (쀺; 쀺; 쀺; 쀺; 쀺; ) HANGUL SYLLABLE BBWIP
+C03B;C03B;1108 1171 11C2;C03B;1108 1171 11C2; # (쀻; 쀻; 쀻; 쀻; 쀻; ) HANGUL SYLLABLE BBWIH
+C03C;C03C;1108 1172;C03C;1108 1172; # (쀼; 쀼; 쀼; 쀼; 쀼; ) HANGUL SYLLABLE BBYU
+C03D;C03D;1108 1172 11A8;C03D;1108 1172 11A8; # (쀽; 쀽; 쀽; 쀽; 쀽; ) HANGUL SYLLABLE BBYUG
+C03E;C03E;1108 1172 11A9;C03E;1108 1172 11A9; # (쀾; 쀾; 쀾; 쀾; 쀾; ) HANGUL SYLLABLE BBYUGG
+C03F;C03F;1108 1172 11AA;C03F;1108 1172 11AA; # (쀿; 쀿; 쀿; 쀿; 쀿; ) HANGUL SYLLABLE BBYUGS
+C040;C040;1108 1172 11AB;C040;1108 1172 11AB; # (쁀; 쁀; 쁀; 쁀; 쁀; ) HANGUL SYLLABLE BBYUN
+C041;C041;1108 1172 11AC;C041;1108 1172 11AC; # (쁁; 쁁; 쁁; 쁁; 쁁; ) HANGUL SYLLABLE BBYUNJ
+C042;C042;1108 1172 11AD;C042;1108 1172 11AD; # (쁂; 쁂; 쁂; 쁂; 쁂; ) HANGUL SYLLABLE BBYUNH
+C043;C043;1108 1172 11AE;C043;1108 1172 11AE; # (쁃; 쁃; 쁃; 쁃; 쁃; ) HANGUL SYLLABLE BBYUD
+C044;C044;1108 1172 11AF;C044;1108 1172 11AF; # (쁄; 쁄; 쁄; 쁄; 쁄; ) HANGUL SYLLABLE BBYUL
+C045;C045;1108 1172 11B0;C045;1108 1172 11B0; # (쁅; 쁅; 쁅; 쁅; 쁅; ) HANGUL SYLLABLE BBYULG
+C046;C046;1108 1172 11B1;C046;1108 1172 11B1; # (쁆; 쁆; 쁆; 쁆; 쁆; ) HANGUL SYLLABLE BBYULM
+C047;C047;1108 1172 11B2;C047;1108 1172 11B2; # (쁇; 쁇; 쁇; 쁇; 쁇; ) HANGUL SYLLABLE BBYULB
+C048;C048;1108 1172 11B3;C048;1108 1172 11B3; # (쁈; 쁈; 쁈; 쁈; 쁈; ) HANGUL SYLLABLE BBYULS
+C049;C049;1108 1172 11B4;C049;1108 1172 11B4; # (쁉; 쁉; 쁉; 쁉; 쁉; ) HANGUL SYLLABLE BBYULT
+C04A;C04A;1108 1172 11B5;C04A;1108 1172 11B5; # (쁊; 쁊; 쁊; 쁊; 쁊; ) HANGUL SYLLABLE BBYULP
+C04B;C04B;1108 1172 11B6;C04B;1108 1172 11B6; # (쁋; 쁋; 쁋; 쁋; 쁋; ) HANGUL SYLLABLE BBYULH
+C04C;C04C;1108 1172 11B7;C04C;1108 1172 11B7; # (쁌; 쁌; 쁌; 쁌; 쁌; ) HANGUL SYLLABLE BBYUM
+C04D;C04D;1108 1172 11B8;C04D;1108 1172 11B8; # (쁍; 쁍; 쁍; 쁍; 쁍; ) HANGUL SYLLABLE BBYUB
+C04E;C04E;1108 1172 11B9;C04E;1108 1172 11B9; # (쁎; 쁎; 쁎; 쁎; 쁎; ) HANGUL SYLLABLE BBYUBS
+C04F;C04F;1108 1172 11BA;C04F;1108 1172 11BA; # (쁏; 쁏; 쁏; 쁏; 쁏; ) HANGUL SYLLABLE BBYUS
+C050;C050;1108 1172 11BB;C050;1108 1172 11BB; # (쁐; 쁐; 쁐; 쁐; 쁐; ) HANGUL SYLLABLE BBYUSS
+C051;C051;1108 1172 11BC;C051;1108 1172 11BC; # (쁑; 쁑; 쁑; 쁑; 쁑; ) HANGUL SYLLABLE BBYUNG
+C052;C052;1108 1172 11BD;C052;1108 1172 11BD; # (쁒; 쁒; 쁒; 쁒; 쁒; ) HANGUL SYLLABLE BBYUJ
+C053;C053;1108 1172 11BE;C053;1108 1172 11BE; # (쁓; 쁓; 쁓; 쁓; 쁓; ) HANGUL SYLLABLE BBYUC
+C054;C054;1108 1172 11BF;C054;1108 1172 11BF; # (쁔; 쁔; 쁔; 쁔; 쁔; ) HANGUL SYLLABLE BBYUK
+C055;C055;1108 1172 11C0;C055;1108 1172 11C0; # (쁕; 쁕; 쁕; 쁕; 쁕; ) HANGUL SYLLABLE BBYUT
+C056;C056;1108 1172 11C1;C056;1108 1172 11C1; # (쁖; 쁖; 쁖; 쁖; 쁖; ) HANGUL SYLLABLE BBYUP
+C057;C057;1108 1172 11C2;C057;1108 1172 11C2; # (쁗; 쁗; 쁗; 쁗; 쁗; ) HANGUL SYLLABLE BBYUH
+C058;C058;1108 1173;C058;1108 1173; # (쁘; 쁘; 쁘; 쁘; 쁘; ) HANGUL SYLLABLE BBEU
+C059;C059;1108 1173 11A8;C059;1108 1173 11A8; # (쁙; 쁙; 쁙; 쁙; 쁙; ) HANGUL SYLLABLE BBEUG
+C05A;C05A;1108 1173 11A9;C05A;1108 1173 11A9; # (쁚; 쁚; 쁚; 쁚; 쁚; ) HANGUL SYLLABLE BBEUGG
+C05B;C05B;1108 1173 11AA;C05B;1108 1173 11AA; # (쁛; 쁛; 쁛; 쁛; 쁛; ) HANGUL SYLLABLE BBEUGS
+C05C;C05C;1108 1173 11AB;C05C;1108 1173 11AB; # (쁜; 쁜; 쁜; 쁜; 쁜; ) HANGUL SYLLABLE BBEUN
+C05D;C05D;1108 1173 11AC;C05D;1108 1173 11AC; # (쁝; 쁝; 쁝; 쁝; 쁝; ) HANGUL SYLLABLE BBEUNJ
+C05E;C05E;1108 1173 11AD;C05E;1108 1173 11AD; # (쁞; 쁞; 쁞; 쁞; 쁞; ) HANGUL SYLLABLE BBEUNH
+C05F;C05F;1108 1173 11AE;C05F;1108 1173 11AE; # (쁟; 쁟; 쁟; 쁟; 쁟; ) HANGUL SYLLABLE BBEUD
+C060;C060;1108 1173 11AF;C060;1108 1173 11AF; # (쁠; 쁠; 쁠; 쁠; 쁠; ) HANGUL SYLLABLE BBEUL
+C061;C061;1108 1173 11B0;C061;1108 1173 11B0; # (쁡; 쁡; 쁡; 쁡; 쁡; ) HANGUL SYLLABLE BBEULG
+C062;C062;1108 1173 11B1;C062;1108 1173 11B1; # (쁢; 쁢; 쁢; 쁢; 쁢; ) HANGUL SYLLABLE BBEULM
+C063;C063;1108 1173 11B2;C063;1108 1173 11B2; # (쁣; 쁣; 쁣; 쁣; 쁣; ) HANGUL SYLLABLE BBEULB
+C064;C064;1108 1173 11B3;C064;1108 1173 11B3; # (쁤; 쁤; 쁤; 쁤; 쁤; ) HANGUL SYLLABLE BBEULS
+C065;C065;1108 1173 11B4;C065;1108 1173 11B4; # (쁥; 쁥; 쁥; 쁥; 쁥; ) HANGUL SYLLABLE BBEULT
+C066;C066;1108 1173 11B5;C066;1108 1173 11B5; # (쁦; 쁦; 쁦; 쁦; 쁦; ) HANGUL SYLLABLE BBEULP
+C067;C067;1108 1173 11B6;C067;1108 1173 11B6; # (쁧; 쁧; 쁧; 쁧; 쁧; ) HANGUL SYLLABLE BBEULH
+C068;C068;1108 1173 11B7;C068;1108 1173 11B7; # (쁨; 쁨; 쁨; 쁨; 쁨; ) HANGUL SYLLABLE BBEUM
+C069;C069;1108 1173 11B8;C069;1108 1173 11B8; # (쁩; 쁩; 쁩; 쁩; 쁩; ) HANGUL SYLLABLE BBEUB
+C06A;C06A;1108 1173 11B9;C06A;1108 1173 11B9; # (쁪; 쁪; 쁪; 쁪; 쁪; ) HANGUL SYLLABLE BBEUBS
+C06B;C06B;1108 1173 11BA;C06B;1108 1173 11BA; # (쁫; 쁫; 쁫; 쁫; 쁫; ) HANGUL SYLLABLE BBEUS
+C06C;C06C;1108 1173 11BB;C06C;1108 1173 11BB; # (쁬; 쁬; 쁬; 쁬; 쁬; ) HANGUL SYLLABLE BBEUSS
+C06D;C06D;1108 1173 11BC;C06D;1108 1173 11BC; # (쁭; 쁭; 쁭; 쁭; 쁭; ) HANGUL SYLLABLE BBEUNG
+C06E;C06E;1108 1173 11BD;C06E;1108 1173 11BD; # (쁮; 쁮; 쁮; 쁮; 쁮; ) HANGUL SYLLABLE BBEUJ
+C06F;C06F;1108 1173 11BE;C06F;1108 1173 11BE; # (쁯; 쁯; 쁯; 쁯; 쁯; ) HANGUL SYLLABLE BBEUC
+C070;C070;1108 1173 11BF;C070;1108 1173 11BF; # (쁰; 쁰; 쁰; 쁰; 쁰; ) HANGUL SYLLABLE BBEUK
+C071;C071;1108 1173 11C0;C071;1108 1173 11C0; # (쁱; 쁱; 쁱; 쁱; 쁱; ) HANGUL SYLLABLE BBEUT
+C072;C072;1108 1173 11C1;C072;1108 1173 11C1; # (쁲; 쁲; 쁲; 쁲; 쁲; ) HANGUL SYLLABLE BBEUP
+C073;C073;1108 1173 11C2;C073;1108 1173 11C2; # (쁳; 쁳; 쁳; 쁳; 쁳; ) HANGUL SYLLABLE BBEUH
+C074;C074;1108 1174;C074;1108 1174; # (쁴; 쁴; 쁴; 쁴; 쁴; ) HANGUL SYLLABLE BBYI
+C075;C075;1108 1174 11A8;C075;1108 1174 11A8; # (쁵; 쁵; 쁵; 쁵; 쁵; ) HANGUL SYLLABLE BBYIG
+C076;C076;1108 1174 11A9;C076;1108 1174 11A9; # (쁶; 쁶; 쁶; 쁶; 쁶; ) HANGUL SYLLABLE BBYIGG
+C077;C077;1108 1174 11AA;C077;1108 1174 11AA; # (쁷; 쁷; 쁷; 쁷; 쁷; ) HANGUL SYLLABLE BBYIGS
+C078;C078;1108 1174 11AB;C078;1108 1174 11AB; # (쁸; 쁸; 쁸; 쁸; 쁸; ) HANGUL SYLLABLE BBYIN
+C079;C079;1108 1174 11AC;C079;1108 1174 11AC; # (쁹; 쁹; 쁹; 쁹; 쁹; ) HANGUL SYLLABLE BBYINJ
+C07A;C07A;1108 1174 11AD;C07A;1108 1174 11AD; # (쁺; 쁺; 쁺; 쁺; 쁺; ) HANGUL SYLLABLE BBYINH
+C07B;C07B;1108 1174 11AE;C07B;1108 1174 11AE; # (쁻; 쁻; 쁻; 쁻; 쁻; ) HANGUL SYLLABLE BBYID
+C07C;C07C;1108 1174 11AF;C07C;1108 1174 11AF; # (쁼; 쁼; 쁼; 쁼; 쁼; ) HANGUL SYLLABLE BBYIL
+C07D;C07D;1108 1174 11B0;C07D;1108 1174 11B0; # (쁽; 쁽; 쁽; 쁽; 쁽; ) HANGUL SYLLABLE BBYILG
+C07E;C07E;1108 1174 11B1;C07E;1108 1174 11B1; # (쁾; 쁾; 쁾; 쁾; 쁾; ) HANGUL SYLLABLE BBYILM
+C07F;C07F;1108 1174 11B2;C07F;1108 1174 11B2; # (쁿; 쁿; 쁿; 쁿; 쁿; ) HANGUL SYLLABLE BBYILB
+C080;C080;1108 1174 11B3;C080;1108 1174 11B3; # (삀; 삀; 삀; 삀; 삀; ) HANGUL SYLLABLE BBYILS
+C081;C081;1108 1174 11B4;C081;1108 1174 11B4; # (삁; 삁; 삁; 삁; 삁; ) HANGUL SYLLABLE BBYILT
+C082;C082;1108 1174 11B5;C082;1108 1174 11B5; # (삂; 삂; 삂; 삂; 삂; ) HANGUL SYLLABLE BBYILP
+C083;C083;1108 1174 11B6;C083;1108 1174 11B6; # (삃; 삃; 삃; 삃; 삃; ) HANGUL SYLLABLE BBYILH
+C084;C084;1108 1174 11B7;C084;1108 1174 11B7; # (삄; 삄; 삄; 삄; 삄; ) HANGUL SYLLABLE BBYIM
+C085;C085;1108 1174 11B8;C085;1108 1174 11B8; # (삅; 삅; 삅; 삅; 삅; ) HANGUL SYLLABLE BBYIB
+C086;C086;1108 1174 11B9;C086;1108 1174 11B9; # (삆; 삆; 삆; 삆; 삆; ) HANGUL SYLLABLE BBYIBS
+C087;C087;1108 1174 11BA;C087;1108 1174 11BA; # (삇; 삇; 삇; 삇; 삇; ) HANGUL SYLLABLE BBYIS
+C088;C088;1108 1174 11BB;C088;1108 1174 11BB; # (삈; 삈; 삈; 삈; 삈; ) HANGUL SYLLABLE BBYISS
+C089;C089;1108 1174 11BC;C089;1108 1174 11BC; # (삉; 삉; 삉; 삉; 삉; ) HANGUL SYLLABLE BBYING
+C08A;C08A;1108 1174 11BD;C08A;1108 1174 11BD; # (삊; 삊; 삊; 삊; 삊; ) HANGUL SYLLABLE BBYIJ
+C08B;C08B;1108 1174 11BE;C08B;1108 1174 11BE; # (삋; 삋; 삋; 삋; 삋; ) HANGUL SYLLABLE BBYIC
+C08C;C08C;1108 1174 11BF;C08C;1108 1174 11BF; # (삌; 삌; 삌; 삌; 삌; ) HANGUL SYLLABLE BBYIK
+C08D;C08D;1108 1174 11C0;C08D;1108 1174 11C0; # (삍; 삍; 삍; 삍; 삍; ) HANGUL SYLLABLE BBYIT
+C08E;C08E;1108 1174 11C1;C08E;1108 1174 11C1; # (삎; 삎; 삎; 삎; 삎; ) HANGUL SYLLABLE BBYIP
+C08F;C08F;1108 1174 11C2;C08F;1108 1174 11C2; # (삏; 삏; 삏; 삏; 삏; ) HANGUL SYLLABLE BBYIH
+C090;C090;1108 1175;C090;1108 1175; # (삐; 삐; 삐; 삐; 삐; ) HANGUL SYLLABLE BBI
+C091;C091;1108 1175 11A8;C091;1108 1175 11A8; # (삑; 삑; 삑; 삑; 삑; ) HANGUL SYLLABLE BBIG
+C092;C092;1108 1175 11A9;C092;1108 1175 11A9; # (삒; 삒; 삒; 삒; 삒; ) HANGUL SYLLABLE BBIGG
+C093;C093;1108 1175 11AA;C093;1108 1175 11AA; # (삓; 삓; 삓; 삓; 삓; ) HANGUL SYLLABLE BBIGS
+C094;C094;1108 1175 11AB;C094;1108 1175 11AB; # (삔; 삔; 삔; 삔; 삔; ) HANGUL SYLLABLE BBIN
+C095;C095;1108 1175 11AC;C095;1108 1175 11AC; # (삕; 삕; 삕; 삕; 삕; ) HANGUL SYLLABLE BBINJ
+C096;C096;1108 1175 11AD;C096;1108 1175 11AD; # (삖; 삖; 삖; 삖; 삖; ) HANGUL SYLLABLE BBINH
+C097;C097;1108 1175 11AE;C097;1108 1175 11AE; # (삗; 삗; 삗; 삗; 삗; ) HANGUL SYLLABLE BBID
+C098;C098;1108 1175 11AF;C098;1108 1175 11AF; # (삘; 삘; 삘; 삘; 삘; ) HANGUL SYLLABLE BBIL
+C099;C099;1108 1175 11B0;C099;1108 1175 11B0; # (삙; 삙; 삙; 삙; 삙; ) HANGUL SYLLABLE BBILG
+C09A;C09A;1108 1175 11B1;C09A;1108 1175 11B1; # (삚; 삚; 삚; 삚; 삚; ) HANGUL SYLLABLE BBILM
+C09B;C09B;1108 1175 11B2;C09B;1108 1175 11B2; # (삛; 삛; 삛; 삛; 삛; ) HANGUL SYLLABLE BBILB
+C09C;C09C;1108 1175 11B3;C09C;1108 1175 11B3; # (삜; 삜; 삜; 삜; 삜; ) HANGUL SYLLABLE BBILS
+C09D;C09D;1108 1175 11B4;C09D;1108 1175 11B4; # (삝; 삝; 삝; 삝; 삝; ) HANGUL SYLLABLE BBILT
+C09E;C09E;1108 1175 11B5;C09E;1108 1175 11B5; # (삞; 삞; 삞; 삞; 삞; ) HANGUL SYLLABLE BBILP
+C09F;C09F;1108 1175 11B6;C09F;1108 1175 11B6; # (삟; 삟; 삟; 삟; 삟; ) HANGUL SYLLABLE BBILH
+C0A0;C0A0;1108 1175 11B7;C0A0;1108 1175 11B7; # (삠; 삠; 삠; 삠; 삠; ) HANGUL SYLLABLE BBIM
+C0A1;C0A1;1108 1175 11B8;C0A1;1108 1175 11B8; # (삡; 삡; 삡; 삡; 삡; ) HANGUL SYLLABLE BBIB
+C0A2;C0A2;1108 1175 11B9;C0A2;1108 1175 11B9; # (삢; 삢; 삢; 삢; 삢; ) HANGUL SYLLABLE BBIBS
+C0A3;C0A3;1108 1175 11BA;C0A3;1108 1175 11BA; # (삣; 삣; 삣; 삣; 삣; ) HANGUL SYLLABLE BBIS
+C0A4;C0A4;1108 1175 11BB;C0A4;1108 1175 11BB; # (삤; 삤; 삤; 삤; 삤; ) HANGUL SYLLABLE BBISS
+C0A5;C0A5;1108 1175 11BC;C0A5;1108 1175 11BC; # (삥; 삥; 삥; 삥; 삥; ) HANGUL SYLLABLE BBING
+C0A6;C0A6;1108 1175 11BD;C0A6;1108 1175 11BD; # (삦; 삦; 삦; 삦; 삦; ) HANGUL SYLLABLE BBIJ
+C0A7;C0A7;1108 1175 11BE;C0A7;1108 1175 11BE; # (삧; 삧; 삧; 삧; 삧; ) HANGUL SYLLABLE BBIC
+C0A8;C0A8;1108 1175 11BF;C0A8;1108 1175 11BF; # (삨; 삨; 삨; 삨; 삨; ) HANGUL SYLLABLE BBIK
+C0A9;C0A9;1108 1175 11C0;C0A9;1108 1175 11C0; # (삩; 삩; 삩; 삩; 삩; ) HANGUL SYLLABLE BBIT
+C0AA;C0AA;1108 1175 11C1;C0AA;1108 1175 11C1; # (삪; 삪; 삪; 삪; 삪; ) HANGUL SYLLABLE BBIP
+C0AB;C0AB;1108 1175 11C2;C0AB;1108 1175 11C2; # (삫; 삫; 삫; 삫; 삫; ) HANGUL SYLLABLE BBIH
+C0AC;C0AC;1109 1161;C0AC;1109 1161; # (사; 사; 사; 사; 사; ) HANGUL SYLLABLE SA
+C0AD;C0AD;1109 1161 11A8;C0AD;1109 1161 11A8; # (삭; 삭; 삭; 삭; 삭; ) HANGUL SYLLABLE SAG
+C0AE;C0AE;1109 1161 11A9;C0AE;1109 1161 11A9; # (삮; 삮; 삮; 삮; 삮; ) HANGUL SYLLABLE SAGG
+C0AF;C0AF;1109 1161 11AA;C0AF;1109 1161 11AA; # (삯; 삯; 삯; 삯; 삯; ) HANGUL SYLLABLE SAGS
+C0B0;C0B0;1109 1161 11AB;C0B0;1109 1161 11AB; # (산; 산; 산; 산; 산; ) HANGUL SYLLABLE SAN
+C0B1;C0B1;1109 1161 11AC;C0B1;1109 1161 11AC; # (삱; 삱; 삱; 삱; 삱; ) HANGUL SYLLABLE SANJ
+C0B2;C0B2;1109 1161 11AD;C0B2;1109 1161 11AD; # (삲; 삲; 삲; 삲; 삲; ) HANGUL SYLLABLE SANH
+C0B3;C0B3;1109 1161 11AE;C0B3;1109 1161 11AE; # (삳; 삳; 삳; 삳; 삳; ) HANGUL SYLLABLE SAD
+C0B4;C0B4;1109 1161 11AF;C0B4;1109 1161 11AF; # (살; 살; 살; 살; 살; ) HANGUL SYLLABLE SAL
+C0B5;C0B5;1109 1161 11B0;C0B5;1109 1161 11B0; # (삵; 삵; 삵; 삵; 삵; ) HANGUL SYLLABLE SALG
+C0B6;C0B6;1109 1161 11B1;C0B6;1109 1161 11B1; # (삶; 삶; 삶; 삶; 삶; ) HANGUL SYLLABLE SALM
+C0B7;C0B7;1109 1161 11B2;C0B7;1109 1161 11B2; # (삷; 삷; 삷; 삷; 삷; ) HANGUL SYLLABLE SALB
+C0B8;C0B8;1109 1161 11B3;C0B8;1109 1161 11B3; # (삸; 삸; 삸; 삸; 삸; ) HANGUL SYLLABLE SALS
+C0B9;C0B9;1109 1161 11B4;C0B9;1109 1161 11B4; # (삹; 삹; 삹; 삹; 삹; ) HANGUL SYLLABLE SALT
+C0BA;C0BA;1109 1161 11B5;C0BA;1109 1161 11B5; # (삺; 삺; 삺; 삺; 삺; ) HANGUL SYLLABLE SALP
+C0BB;C0BB;1109 1161 11B6;C0BB;1109 1161 11B6; # (삻; 삻; 삻; 삻; 삻; ) HANGUL SYLLABLE SALH
+C0BC;C0BC;1109 1161 11B7;C0BC;1109 1161 11B7; # (삼; 삼; 삼; 삼; 삼; ) HANGUL SYLLABLE SAM
+C0BD;C0BD;1109 1161 11B8;C0BD;1109 1161 11B8; # (삽; 삽; 삽; 삽; 삽; ) HANGUL SYLLABLE SAB
+C0BE;C0BE;1109 1161 11B9;C0BE;1109 1161 11B9; # (삾; 삾; 삾; 삾; 삾; ) HANGUL SYLLABLE SABS
+C0BF;C0BF;1109 1161 11BA;C0BF;1109 1161 11BA; # (삿; 삿; 삿; 삿; 삿; ) HANGUL SYLLABLE SAS
+C0C0;C0C0;1109 1161 11BB;C0C0;1109 1161 11BB; # (샀; 샀; 샀; 샀; 샀; ) HANGUL SYLLABLE SASS
+C0C1;C0C1;1109 1161 11BC;C0C1;1109 1161 11BC; # (상; 상; 상; 상; 상; ) HANGUL SYLLABLE SANG
+C0C2;C0C2;1109 1161 11BD;C0C2;1109 1161 11BD; # (샂; 샂; 샂; 샂; 샂; ) HANGUL SYLLABLE SAJ
+C0C3;C0C3;1109 1161 11BE;C0C3;1109 1161 11BE; # (샃; 샃; 샃; 샃; 샃; ) HANGUL SYLLABLE SAC
+C0C4;C0C4;1109 1161 11BF;C0C4;1109 1161 11BF; # (샄; 샄; 샄; 샄; 샄; ) HANGUL SYLLABLE SAK
+C0C5;C0C5;1109 1161 11C0;C0C5;1109 1161 11C0; # (샅; 샅; 샅; 샅; 샅; ) HANGUL SYLLABLE SAT
+C0C6;C0C6;1109 1161 11C1;C0C6;1109 1161 11C1; # (샆; 샆; 샆; 샆; 샆; ) HANGUL SYLLABLE SAP
+C0C7;C0C7;1109 1161 11C2;C0C7;1109 1161 11C2; # (샇; 샇; 샇; 샇; 샇; ) HANGUL SYLLABLE SAH
+C0C8;C0C8;1109 1162;C0C8;1109 1162; # (새; 새; 새; 새; 새; ) HANGUL SYLLABLE SAE
+C0C9;C0C9;1109 1162 11A8;C0C9;1109 1162 11A8; # (색; 색; 색; 색; 색; ) HANGUL SYLLABLE SAEG
+C0CA;C0CA;1109 1162 11A9;C0CA;1109 1162 11A9; # (샊; 샊; 샊; 샊; 샊; ) HANGUL SYLLABLE SAEGG
+C0CB;C0CB;1109 1162 11AA;C0CB;1109 1162 11AA; # (샋; 샋; 샋; 샋; 샋; ) HANGUL SYLLABLE SAEGS
+C0CC;C0CC;1109 1162 11AB;C0CC;1109 1162 11AB; # (샌; 샌; 샌; 샌; 샌; ) HANGUL SYLLABLE SAEN
+C0CD;C0CD;1109 1162 11AC;C0CD;1109 1162 11AC; # (샍; 샍; 샍; 샍; 샍; ) HANGUL SYLLABLE SAENJ
+C0CE;C0CE;1109 1162 11AD;C0CE;1109 1162 11AD; # (샎; 샎; 샎; 샎; 샎; ) HANGUL SYLLABLE SAENH
+C0CF;C0CF;1109 1162 11AE;C0CF;1109 1162 11AE; # (샏; 샏; 샏; 샏; 샏; ) HANGUL SYLLABLE SAED
+C0D0;C0D0;1109 1162 11AF;C0D0;1109 1162 11AF; # (샐; 샐; 샐; 샐; 샐; ) HANGUL SYLLABLE SAEL
+C0D1;C0D1;1109 1162 11B0;C0D1;1109 1162 11B0; # (샑; 샑; 샑; 샑; 샑; ) HANGUL SYLLABLE SAELG
+C0D2;C0D2;1109 1162 11B1;C0D2;1109 1162 11B1; # (샒; 샒; 샒; 샒; 샒; ) HANGUL SYLLABLE SAELM
+C0D3;C0D3;1109 1162 11B2;C0D3;1109 1162 11B2; # (샓; 샓; 샓; 샓; 샓; ) HANGUL SYLLABLE SAELB
+C0D4;C0D4;1109 1162 11B3;C0D4;1109 1162 11B3; # (샔; 샔; 샔; 샔; 샔; ) HANGUL SYLLABLE SAELS
+C0D5;C0D5;1109 1162 11B4;C0D5;1109 1162 11B4; # (샕; 샕; 샕; 샕; 샕; ) HANGUL SYLLABLE SAELT
+C0D6;C0D6;1109 1162 11B5;C0D6;1109 1162 11B5; # (샖; 샖; 샖; 샖; 샖; ) HANGUL SYLLABLE SAELP
+C0D7;C0D7;1109 1162 11B6;C0D7;1109 1162 11B6; # (샗; 샗; 샗; 샗; 샗; ) HANGUL SYLLABLE SAELH
+C0D8;C0D8;1109 1162 11B7;C0D8;1109 1162 11B7; # (샘; 샘; 샘; 샘; 샘; ) HANGUL SYLLABLE SAEM
+C0D9;C0D9;1109 1162 11B8;C0D9;1109 1162 11B8; # (샙; 샙; 샙; 샙; 샙; ) HANGUL SYLLABLE SAEB
+C0DA;C0DA;1109 1162 11B9;C0DA;1109 1162 11B9; # (샚; 샚; 샚; 샚; 샚; ) HANGUL SYLLABLE SAEBS
+C0DB;C0DB;1109 1162 11BA;C0DB;1109 1162 11BA; # (샛; 샛; 샛; 샛; 샛; ) HANGUL SYLLABLE SAES
+C0DC;C0DC;1109 1162 11BB;C0DC;1109 1162 11BB; # (샜; 샜; 샜; 샜; 샜; ) HANGUL SYLLABLE SAESS
+C0DD;C0DD;1109 1162 11BC;C0DD;1109 1162 11BC; # (생; 생; 생; 생; 생; ) HANGUL SYLLABLE SAENG
+C0DE;C0DE;1109 1162 11BD;C0DE;1109 1162 11BD; # (샞; 샞; 샞; 샞; 샞; ) HANGUL SYLLABLE SAEJ
+C0DF;C0DF;1109 1162 11BE;C0DF;1109 1162 11BE; # (샟; 샟; 샟; 샟; 샟; ) HANGUL SYLLABLE SAEC
+C0E0;C0E0;1109 1162 11BF;C0E0;1109 1162 11BF; # (샠; 샠; 샠; 샠; 샠; ) HANGUL SYLLABLE SAEK
+C0E1;C0E1;1109 1162 11C0;C0E1;1109 1162 11C0; # (샡; 샡; 샡; 샡; 샡; ) HANGUL SYLLABLE SAET
+C0E2;C0E2;1109 1162 11C1;C0E2;1109 1162 11C1; # (샢; 샢; 샢; 샢; 샢; ) HANGUL SYLLABLE SAEP
+C0E3;C0E3;1109 1162 11C2;C0E3;1109 1162 11C2; # (샣; 샣; 샣; 샣; 샣; ) HANGUL SYLLABLE SAEH
+C0E4;C0E4;1109 1163;C0E4;1109 1163; # (샤; 샤; 샤; 샤; 샤; ) HANGUL SYLLABLE SYA
+C0E5;C0E5;1109 1163 11A8;C0E5;1109 1163 11A8; # (샥; 샥; 샥; 샥; 샥; ) HANGUL SYLLABLE SYAG
+C0E6;C0E6;1109 1163 11A9;C0E6;1109 1163 11A9; # (샦; 샦; 샦; 샦; 샦; ) HANGUL SYLLABLE SYAGG
+C0E7;C0E7;1109 1163 11AA;C0E7;1109 1163 11AA; # (샧; 샧; 샧; 샧; 샧; ) HANGUL SYLLABLE SYAGS
+C0E8;C0E8;1109 1163 11AB;C0E8;1109 1163 11AB; # (샨; 샨; 샨; 샨; 샨; ) HANGUL SYLLABLE SYAN
+C0E9;C0E9;1109 1163 11AC;C0E9;1109 1163 11AC; # (샩; 샩; 샩; 샩; 샩; ) HANGUL SYLLABLE SYANJ
+C0EA;C0EA;1109 1163 11AD;C0EA;1109 1163 11AD; # (샪; 샪; 샪; 샪; 샪; ) HANGUL SYLLABLE SYANH
+C0EB;C0EB;1109 1163 11AE;C0EB;1109 1163 11AE; # (샫; 샫; 샫; 샫; 샫; ) HANGUL SYLLABLE SYAD
+C0EC;C0EC;1109 1163 11AF;C0EC;1109 1163 11AF; # (샬; 샬; 샬; 샬; 샬; ) HANGUL SYLLABLE SYAL
+C0ED;C0ED;1109 1163 11B0;C0ED;1109 1163 11B0; # (샭; 샭; 샭; 샭; 샭; ) HANGUL SYLLABLE SYALG
+C0EE;C0EE;1109 1163 11B1;C0EE;1109 1163 11B1; # (샮; 샮; 샮; 샮; 샮; ) HANGUL SYLLABLE SYALM
+C0EF;C0EF;1109 1163 11B2;C0EF;1109 1163 11B2; # (샯; 샯; 샯; 샯; 샯; ) HANGUL SYLLABLE SYALB
+C0F0;C0F0;1109 1163 11B3;C0F0;1109 1163 11B3; # (샰; 샰; 샰; 샰; 샰; ) HANGUL SYLLABLE SYALS
+C0F1;C0F1;1109 1163 11B4;C0F1;1109 1163 11B4; # (샱; 샱; 샱; 샱; 샱; ) HANGUL SYLLABLE SYALT
+C0F2;C0F2;1109 1163 11B5;C0F2;1109 1163 11B5; # (샲; 샲; 샲; 샲; 샲; ) HANGUL SYLLABLE SYALP
+C0F3;C0F3;1109 1163 11B6;C0F3;1109 1163 11B6; # (샳; 샳; 샳; 샳; 샳; ) HANGUL SYLLABLE SYALH
+C0F4;C0F4;1109 1163 11B7;C0F4;1109 1163 11B7; # (샴; 샴; 샴; 샴; 샴; ) HANGUL SYLLABLE SYAM
+C0F5;C0F5;1109 1163 11B8;C0F5;1109 1163 11B8; # (샵; 샵; 샵; 샵; 샵; ) HANGUL SYLLABLE SYAB
+C0F6;C0F6;1109 1163 11B9;C0F6;1109 1163 11B9; # (샶; 샶; 샶; 샶; 샶; ) HANGUL SYLLABLE SYABS
+C0F7;C0F7;1109 1163 11BA;C0F7;1109 1163 11BA; # (샷; 샷; 샷; 샷; 샷; ) HANGUL SYLLABLE SYAS
+C0F8;C0F8;1109 1163 11BB;C0F8;1109 1163 11BB; # (샸; 샸; 샸; 샸; 샸; ) HANGUL SYLLABLE SYASS
+C0F9;C0F9;1109 1163 11BC;C0F9;1109 1163 11BC; # (샹; 샹; 샹; 샹; 샹; ) HANGUL SYLLABLE SYANG
+C0FA;C0FA;1109 1163 11BD;C0FA;1109 1163 11BD; # (샺; 샺; 샺; 샺; 샺; ) HANGUL SYLLABLE SYAJ
+C0FB;C0FB;1109 1163 11BE;C0FB;1109 1163 11BE; # (샻; 샻; 샻; 샻; 샻; ) HANGUL SYLLABLE SYAC
+C0FC;C0FC;1109 1163 11BF;C0FC;1109 1163 11BF; # (샼; 샼; 샼; 샼; 샼; ) HANGUL SYLLABLE SYAK
+C0FD;C0FD;1109 1163 11C0;C0FD;1109 1163 11C0; # (샽; 샽; 샽; 샽; 샽; ) HANGUL SYLLABLE SYAT
+C0FE;C0FE;1109 1163 11C1;C0FE;1109 1163 11C1; # (샾; 샾; 샾; 샾; 샾; ) HANGUL SYLLABLE SYAP
+C0FF;C0FF;1109 1163 11C2;C0FF;1109 1163 11C2; # (샿; 샿; 샿; 샿; 샿; ) HANGUL SYLLABLE SYAH
+C100;C100;1109 1164;C100;1109 1164; # (섀; 섀; 섀; 섀; 섀; ) HANGUL SYLLABLE SYAE
+C101;C101;1109 1164 11A8;C101;1109 1164 11A8; # (섁; 섁; 섁; 섁; 섁; ) HANGUL SYLLABLE SYAEG
+C102;C102;1109 1164 11A9;C102;1109 1164 11A9; # (섂; 섂; 섂; 섂; 섂; ) HANGUL SYLLABLE SYAEGG
+C103;C103;1109 1164 11AA;C103;1109 1164 11AA; # (섃; 섃; 섃; 섃; 섃; ) HANGUL SYLLABLE SYAEGS
+C104;C104;1109 1164 11AB;C104;1109 1164 11AB; # (섄; 섄; 섄; 섄; 섄; ) HANGUL SYLLABLE SYAEN
+C105;C105;1109 1164 11AC;C105;1109 1164 11AC; # (섅; 섅; 섅; 섅; 섅; ) HANGUL SYLLABLE SYAENJ
+C106;C106;1109 1164 11AD;C106;1109 1164 11AD; # (섆; 섆; 섆; 섆; 섆; ) HANGUL SYLLABLE SYAENH
+C107;C107;1109 1164 11AE;C107;1109 1164 11AE; # (섇; 섇; 섇; 섇; 섇; ) HANGUL SYLLABLE SYAED
+C108;C108;1109 1164 11AF;C108;1109 1164 11AF; # (섈; 섈; 섈; 섈; 섈; ) HANGUL SYLLABLE SYAEL
+C109;C109;1109 1164 11B0;C109;1109 1164 11B0; # (섉; 섉; 섉; 섉; 섉; ) HANGUL SYLLABLE SYAELG
+C10A;C10A;1109 1164 11B1;C10A;1109 1164 11B1; # (섊; 섊; 섊; 섊; 섊; ) HANGUL SYLLABLE SYAELM
+C10B;C10B;1109 1164 11B2;C10B;1109 1164 11B2; # (섋; 섋; 섋; 섋; 섋; ) HANGUL SYLLABLE SYAELB
+C10C;C10C;1109 1164 11B3;C10C;1109 1164 11B3; # (섌; 섌; 섌; 섌; 섌; ) HANGUL SYLLABLE SYAELS
+C10D;C10D;1109 1164 11B4;C10D;1109 1164 11B4; # (섍; 섍; 섍; 섍; 섍; ) HANGUL SYLLABLE SYAELT
+C10E;C10E;1109 1164 11B5;C10E;1109 1164 11B5; # (섎; 섎; 섎; 섎; 섎; ) HANGUL SYLLABLE SYAELP
+C10F;C10F;1109 1164 11B6;C10F;1109 1164 11B6; # (섏; 섏; 섏; 섏; 섏; ) HANGUL SYLLABLE SYAELH
+C110;C110;1109 1164 11B7;C110;1109 1164 11B7; # (섐; 섐; 섐; 섐; 섐; ) HANGUL SYLLABLE SYAEM
+C111;C111;1109 1164 11B8;C111;1109 1164 11B8; # (섑; 섑; 섑; 섑; 섑; ) HANGUL SYLLABLE SYAEB
+C112;C112;1109 1164 11B9;C112;1109 1164 11B9; # (섒; 섒; 섒; 섒; 섒; ) HANGUL SYLLABLE SYAEBS
+C113;C113;1109 1164 11BA;C113;1109 1164 11BA; # (섓; 섓; 섓; 섓; 섓; ) HANGUL SYLLABLE SYAES
+C114;C114;1109 1164 11BB;C114;1109 1164 11BB; # (섔; 섔; 섔; 섔; 섔; ) HANGUL SYLLABLE SYAESS
+C115;C115;1109 1164 11BC;C115;1109 1164 11BC; # (섕; 섕; 섕; 섕; 섕; ) HANGUL SYLLABLE SYAENG
+C116;C116;1109 1164 11BD;C116;1109 1164 11BD; # (섖; 섖; 섖; 섖; 섖; ) HANGUL SYLLABLE SYAEJ
+C117;C117;1109 1164 11BE;C117;1109 1164 11BE; # (섗; 섗; 섗; 섗; 섗; ) HANGUL SYLLABLE SYAEC
+C118;C118;1109 1164 11BF;C118;1109 1164 11BF; # (섘; 섘; 섘; 섘; 섘; ) HANGUL SYLLABLE SYAEK
+C119;C119;1109 1164 11C0;C119;1109 1164 11C0; # (섙; 섙; 섙; 섙; 섙; ) HANGUL SYLLABLE SYAET
+C11A;C11A;1109 1164 11C1;C11A;1109 1164 11C1; # (섚; 섚; 섚; 섚; 섚; ) HANGUL SYLLABLE SYAEP
+C11B;C11B;1109 1164 11C2;C11B;1109 1164 11C2; # (섛; 섛; 섛; 섛; 섛; ) HANGUL SYLLABLE SYAEH
+C11C;C11C;1109 1165;C11C;1109 1165; # (서; 서; 서; 서; 서; ) HANGUL SYLLABLE SEO
+C11D;C11D;1109 1165 11A8;C11D;1109 1165 11A8; # (석; 석; 석; 석; 석; ) HANGUL SYLLABLE SEOG
+C11E;C11E;1109 1165 11A9;C11E;1109 1165 11A9; # (섞; 섞; 섞; 섞; 섞; ) HANGUL SYLLABLE SEOGG
+C11F;C11F;1109 1165 11AA;C11F;1109 1165 11AA; # (섟; 섟; 섟; 섟; 섟; ) HANGUL SYLLABLE SEOGS
+C120;C120;1109 1165 11AB;C120;1109 1165 11AB; # (선; 선; 선; 선; 선; ) HANGUL SYLLABLE SEON
+C121;C121;1109 1165 11AC;C121;1109 1165 11AC; # (섡; 섡; 섡; 섡; 섡; ) HANGUL SYLLABLE SEONJ
+C122;C122;1109 1165 11AD;C122;1109 1165 11AD; # (섢; 섢; 섢; 섢; 섢; ) HANGUL SYLLABLE SEONH
+C123;C123;1109 1165 11AE;C123;1109 1165 11AE; # (섣; 섣; 섣; 섣; 섣; ) HANGUL SYLLABLE SEOD
+C124;C124;1109 1165 11AF;C124;1109 1165 11AF; # (설; 설; 설; 설; 설; ) HANGUL SYLLABLE SEOL
+C125;C125;1109 1165 11B0;C125;1109 1165 11B0; # (섥; 섥; 섥; 섥; 섥; ) HANGUL SYLLABLE SEOLG
+C126;C126;1109 1165 11B1;C126;1109 1165 11B1; # (섦; 섦; 섦; 섦; 섦; ) HANGUL SYLLABLE SEOLM
+C127;C127;1109 1165 11B2;C127;1109 1165 11B2; # (섧; 섧; 섧; 섧; 섧; ) HANGUL SYLLABLE SEOLB
+C128;C128;1109 1165 11B3;C128;1109 1165 11B3; # (섨; 섨; 섨; 섨; 섨; ) HANGUL SYLLABLE SEOLS
+C129;C129;1109 1165 11B4;C129;1109 1165 11B4; # (섩; 섩; 섩; 섩; 섩; ) HANGUL SYLLABLE SEOLT
+C12A;C12A;1109 1165 11B5;C12A;1109 1165 11B5; # (섪; 섪; 섪; 섪; 섪; ) HANGUL SYLLABLE SEOLP
+C12B;C12B;1109 1165 11B6;C12B;1109 1165 11B6; # (섫; 섫; 섫; 섫; 섫; ) HANGUL SYLLABLE SEOLH
+C12C;C12C;1109 1165 11B7;C12C;1109 1165 11B7; # (섬; 섬; 섬; 섬; 섬; ) HANGUL SYLLABLE SEOM
+C12D;C12D;1109 1165 11B8;C12D;1109 1165 11B8; # (섭; 섭; 섭; 섭; 섭; ) HANGUL SYLLABLE SEOB
+C12E;C12E;1109 1165 11B9;C12E;1109 1165 11B9; # (섮; 섮; 섮; 섮; 섮; ) HANGUL SYLLABLE SEOBS
+C12F;C12F;1109 1165 11BA;C12F;1109 1165 11BA; # (섯; 섯; 섯; 섯; 섯; ) HANGUL SYLLABLE SEOS
+C130;C130;1109 1165 11BB;C130;1109 1165 11BB; # (섰; 섰; 섰; 섰; 섰; ) HANGUL SYLLABLE SEOSS
+C131;C131;1109 1165 11BC;C131;1109 1165 11BC; # (성; 성; 성; 성; 성; ) HANGUL SYLLABLE SEONG
+C132;C132;1109 1165 11BD;C132;1109 1165 11BD; # (섲; 섲; 섲; 섲; 섲; ) HANGUL SYLLABLE SEOJ
+C133;C133;1109 1165 11BE;C133;1109 1165 11BE; # (섳; 섳; 섳; 섳; 섳; ) HANGUL SYLLABLE SEOC
+C134;C134;1109 1165 11BF;C134;1109 1165 11BF; # (섴; 섴; 섴; 섴; 섴; ) HANGUL SYLLABLE SEOK
+C135;C135;1109 1165 11C0;C135;1109 1165 11C0; # (섵; 섵; 섵; 섵; 섵; ) HANGUL SYLLABLE SEOT
+C136;C136;1109 1165 11C1;C136;1109 1165 11C1; # (섶; 섶; 섶; 섶; 섶; ) HANGUL SYLLABLE SEOP
+C137;C137;1109 1165 11C2;C137;1109 1165 11C2; # (섷; 섷; 섷; 섷; 섷; ) HANGUL SYLLABLE SEOH
+C138;C138;1109 1166;C138;1109 1166; # (세; 세; 세; 세; 세; ) HANGUL SYLLABLE SE
+C139;C139;1109 1166 11A8;C139;1109 1166 11A8; # (섹; 섹; 섹; 섹; 섹; ) HANGUL SYLLABLE SEG
+C13A;C13A;1109 1166 11A9;C13A;1109 1166 11A9; # (섺; 섺; 섺; 섺; 섺; ) HANGUL SYLLABLE SEGG
+C13B;C13B;1109 1166 11AA;C13B;1109 1166 11AA; # (섻; 섻; 섻; 섻; 섻; ) HANGUL SYLLABLE SEGS
+C13C;C13C;1109 1166 11AB;C13C;1109 1166 11AB; # (센; 센; 센; 센; 센; ) HANGUL SYLLABLE SEN
+C13D;C13D;1109 1166 11AC;C13D;1109 1166 11AC; # (섽; 섽; 섽; 섽; 섽; ) HANGUL SYLLABLE SENJ
+C13E;C13E;1109 1166 11AD;C13E;1109 1166 11AD; # (섾; 섾; 섾; 섾; 섾; ) HANGUL SYLLABLE SENH
+C13F;C13F;1109 1166 11AE;C13F;1109 1166 11AE; # (섿; 섿; 섿; 섿; 섿; ) HANGUL SYLLABLE SED
+C140;C140;1109 1166 11AF;C140;1109 1166 11AF; # (셀; 셀; 셀; 셀; 셀; ) HANGUL SYLLABLE SEL
+C141;C141;1109 1166 11B0;C141;1109 1166 11B0; # (셁; 셁; 셁; 셁; 셁; ) HANGUL SYLLABLE SELG
+C142;C142;1109 1166 11B1;C142;1109 1166 11B1; # (셂; 셂; 셂; 셂; 셂; ) HANGUL SYLLABLE SELM
+C143;C143;1109 1166 11B2;C143;1109 1166 11B2; # (셃; 셃; 셃; 셃; 셃; ) HANGUL SYLLABLE SELB
+C144;C144;1109 1166 11B3;C144;1109 1166 11B3; # (셄; 셄; 셄; 셄; 셄; ) HANGUL SYLLABLE SELS
+C145;C145;1109 1166 11B4;C145;1109 1166 11B4; # (셅; 셅; 셅; 셅; 셅; ) HANGUL SYLLABLE SELT
+C146;C146;1109 1166 11B5;C146;1109 1166 11B5; # (셆; 셆; 셆; 셆; 셆; ) HANGUL SYLLABLE SELP
+C147;C147;1109 1166 11B6;C147;1109 1166 11B6; # (셇; 셇; 셇; 셇; 셇; ) HANGUL SYLLABLE SELH
+C148;C148;1109 1166 11B7;C148;1109 1166 11B7; # (셈; 셈; 셈; 셈; 셈; ) HANGUL SYLLABLE SEM
+C149;C149;1109 1166 11B8;C149;1109 1166 11B8; # (셉; 셉; 셉; 셉; 셉; ) HANGUL SYLLABLE SEB
+C14A;C14A;1109 1166 11B9;C14A;1109 1166 11B9; # (셊; 셊; 셊; 셊; 셊; ) HANGUL SYLLABLE SEBS
+C14B;C14B;1109 1166 11BA;C14B;1109 1166 11BA; # (셋; 셋; 셋; 셋; 셋; ) HANGUL SYLLABLE SES
+C14C;C14C;1109 1166 11BB;C14C;1109 1166 11BB; # (셌; 셌; 셌; 셌; 셌; ) HANGUL SYLLABLE SESS
+C14D;C14D;1109 1166 11BC;C14D;1109 1166 11BC; # (셍; 셍; 셍; 셍; 셍; ) HANGUL SYLLABLE SENG
+C14E;C14E;1109 1166 11BD;C14E;1109 1166 11BD; # (셎; 셎; 셎; 셎; 셎; ) HANGUL SYLLABLE SEJ
+C14F;C14F;1109 1166 11BE;C14F;1109 1166 11BE; # (셏; 셏; 셏; 셏; 셏; ) HANGUL SYLLABLE SEC
+C150;C150;1109 1166 11BF;C150;1109 1166 11BF; # (셐; 셐; 셐; 셐; 셐; ) HANGUL SYLLABLE SEK
+C151;C151;1109 1166 11C0;C151;1109 1166 11C0; # (셑; 셑; 셑; 셑; 셑; ) HANGUL SYLLABLE SET
+C152;C152;1109 1166 11C1;C152;1109 1166 11C1; # (셒; 셒; 셒; 셒; 셒; ) HANGUL SYLLABLE SEP
+C153;C153;1109 1166 11C2;C153;1109 1166 11C2; # (셓; 셓; 셓; 셓; 셓; ) HANGUL SYLLABLE SEH
+C154;C154;1109 1167;C154;1109 1167; # (셔; 셔; 셔; 셔; 셔; ) HANGUL SYLLABLE SYEO
+C155;C155;1109 1167 11A8;C155;1109 1167 11A8; # (셕; 셕; 셕; 셕; 셕; ) HANGUL SYLLABLE SYEOG
+C156;C156;1109 1167 11A9;C156;1109 1167 11A9; # (셖; 셖; 셖; 셖; 셖; ) HANGUL SYLLABLE SYEOGG
+C157;C157;1109 1167 11AA;C157;1109 1167 11AA; # (셗; 셗; 셗; 셗; 셗; ) HANGUL SYLLABLE SYEOGS
+C158;C158;1109 1167 11AB;C158;1109 1167 11AB; # (션; 션; 션; 션; 션; ) HANGUL SYLLABLE SYEON
+C159;C159;1109 1167 11AC;C159;1109 1167 11AC; # (셙; 셙; 셙; 셙; 셙; ) HANGUL SYLLABLE SYEONJ
+C15A;C15A;1109 1167 11AD;C15A;1109 1167 11AD; # (셚; 셚; 셚; 셚; 셚; ) HANGUL SYLLABLE SYEONH
+C15B;C15B;1109 1167 11AE;C15B;1109 1167 11AE; # (셛; 셛; 셛; 셛; 셛; ) HANGUL SYLLABLE SYEOD
+C15C;C15C;1109 1167 11AF;C15C;1109 1167 11AF; # (셜; 셜; 셜; 셜; 셜; ) HANGUL SYLLABLE SYEOL
+C15D;C15D;1109 1167 11B0;C15D;1109 1167 11B0; # (셝; 셝; 셝; 셝; 셝; ) HANGUL SYLLABLE SYEOLG
+C15E;C15E;1109 1167 11B1;C15E;1109 1167 11B1; # (셞; 셞; 셞; 셞; 셞; ) HANGUL SYLLABLE SYEOLM
+C15F;C15F;1109 1167 11B2;C15F;1109 1167 11B2; # (셟; 셟; 셟; 셟; 셟; ) HANGUL SYLLABLE SYEOLB
+C160;C160;1109 1167 11B3;C160;1109 1167 11B3; # (셠; 셠; 셠; 셠; 셠; ) HANGUL SYLLABLE SYEOLS
+C161;C161;1109 1167 11B4;C161;1109 1167 11B4; # (셡; 셡; 셡; 셡; 셡; ) HANGUL SYLLABLE SYEOLT
+C162;C162;1109 1167 11B5;C162;1109 1167 11B5; # (셢; 셢; 셢; 셢; 셢; ) HANGUL SYLLABLE SYEOLP
+C163;C163;1109 1167 11B6;C163;1109 1167 11B6; # (셣; 셣; 셣; 셣; 셣; ) HANGUL SYLLABLE SYEOLH
+C164;C164;1109 1167 11B7;C164;1109 1167 11B7; # (셤; 셤; 셤; 셤; 셤; ) HANGUL SYLLABLE SYEOM
+C165;C165;1109 1167 11B8;C165;1109 1167 11B8; # (셥; 셥; 셥; 셥; 셥; ) HANGUL SYLLABLE SYEOB
+C166;C166;1109 1167 11B9;C166;1109 1167 11B9; # (셦; 셦; 셦; 셦; 셦; ) HANGUL SYLLABLE SYEOBS
+C167;C167;1109 1167 11BA;C167;1109 1167 11BA; # (셧; 셧; 셧; 셧; 셧; ) HANGUL SYLLABLE SYEOS
+C168;C168;1109 1167 11BB;C168;1109 1167 11BB; # (셨; 셨; 셨; 셨; 셨; ) HANGUL SYLLABLE SYEOSS
+C169;C169;1109 1167 11BC;C169;1109 1167 11BC; # (셩; 셩; 셩; 셩; 셩; ) HANGUL SYLLABLE SYEONG
+C16A;C16A;1109 1167 11BD;C16A;1109 1167 11BD; # (셪; 셪; 셪; 셪; 셪; ) HANGUL SYLLABLE SYEOJ
+C16B;C16B;1109 1167 11BE;C16B;1109 1167 11BE; # (셫; 셫; 셫; 셫; 셫; ) HANGUL SYLLABLE SYEOC
+C16C;C16C;1109 1167 11BF;C16C;1109 1167 11BF; # (셬; 셬; 셬; 셬; 셬; ) HANGUL SYLLABLE SYEOK
+C16D;C16D;1109 1167 11C0;C16D;1109 1167 11C0; # (셭; 셭; 셭; 셭; 셭; ) HANGUL SYLLABLE SYEOT
+C16E;C16E;1109 1167 11C1;C16E;1109 1167 11C1; # (셮; 셮; 셮; 셮; 셮; ) HANGUL SYLLABLE SYEOP
+C16F;C16F;1109 1167 11C2;C16F;1109 1167 11C2; # (셯; 셯; 셯; 셯; 셯; ) HANGUL SYLLABLE SYEOH
+C170;C170;1109 1168;C170;1109 1168; # (셰; 셰; 셰; 셰; 셰; ) HANGUL SYLLABLE SYE
+C171;C171;1109 1168 11A8;C171;1109 1168 11A8; # (셱; 셱; 셱; 셱; 셱; ) HANGUL SYLLABLE SYEG
+C172;C172;1109 1168 11A9;C172;1109 1168 11A9; # (셲; 셲; 셲; 셲; 셲; ) HANGUL SYLLABLE SYEGG
+C173;C173;1109 1168 11AA;C173;1109 1168 11AA; # (셳; 셳; 셳; 셳; 셳; ) HANGUL SYLLABLE SYEGS
+C174;C174;1109 1168 11AB;C174;1109 1168 11AB; # (셴; 셴; 셴; 셴; 셴; ) HANGUL SYLLABLE SYEN
+C175;C175;1109 1168 11AC;C175;1109 1168 11AC; # (셵; 셵; 셵; 셵; 셵; ) HANGUL SYLLABLE SYENJ
+C176;C176;1109 1168 11AD;C176;1109 1168 11AD; # (셶; 셶; 셶; 셶; 셶; ) HANGUL SYLLABLE SYENH
+C177;C177;1109 1168 11AE;C177;1109 1168 11AE; # (셷; 셷; 셷; 셷; 셷; ) HANGUL SYLLABLE SYED
+C178;C178;1109 1168 11AF;C178;1109 1168 11AF; # (셸; 셸; 셸; 셸; 셸; ) HANGUL SYLLABLE SYEL
+C179;C179;1109 1168 11B0;C179;1109 1168 11B0; # (셹; 셹; 셹; 셹; 셹; ) HANGUL SYLLABLE SYELG
+C17A;C17A;1109 1168 11B1;C17A;1109 1168 11B1; # (셺; 셺; 셺; 셺; 셺; ) HANGUL SYLLABLE SYELM
+C17B;C17B;1109 1168 11B2;C17B;1109 1168 11B2; # (셻; 셻; 셻; 셻; 셻; ) HANGUL SYLLABLE SYELB
+C17C;C17C;1109 1168 11B3;C17C;1109 1168 11B3; # (셼; 셼; 셼; 셼; 셼; ) HANGUL SYLLABLE SYELS
+C17D;C17D;1109 1168 11B4;C17D;1109 1168 11B4; # (셽; 셽; 셽; 셽; 셽; ) HANGUL SYLLABLE SYELT
+C17E;C17E;1109 1168 11B5;C17E;1109 1168 11B5; # (셾; 셾; 셾; 셾; 셾; ) HANGUL SYLLABLE SYELP
+C17F;C17F;1109 1168 11B6;C17F;1109 1168 11B6; # (셿; 셿; 셿; 셿; 셿; ) HANGUL SYLLABLE SYELH
+C180;C180;1109 1168 11B7;C180;1109 1168 11B7; # (솀; 솀; 솀; 솀; 솀; ) HANGUL SYLLABLE SYEM
+C181;C181;1109 1168 11B8;C181;1109 1168 11B8; # (솁; 솁; 솁; 솁; 솁; ) HANGUL SYLLABLE SYEB
+C182;C182;1109 1168 11B9;C182;1109 1168 11B9; # (솂; 솂; 솂; 솂; 솂; ) HANGUL SYLLABLE SYEBS
+C183;C183;1109 1168 11BA;C183;1109 1168 11BA; # (솃; 솃; 솃; 솃; 솃; ) HANGUL SYLLABLE SYES
+C184;C184;1109 1168 11BB;C184;1109 1168 11BB; # (솄; 솄; 솄; 솄; 솄; ) HANGUL SYLLABLE SYESS
+C185;C185;1109 1168 11BC;C185;1109 1168 11BC; # (솅; 솅; 솅; 솅; 솅; ) HANGUL SYLLABLE SYENG
+C186;C186;1109 1168 11BD;C186;1109 1168 11BD; # (솆; 솆; 솆; 솆; 솆; ) HANGUL SYLLABLE SYEJ
+C187;C187;1109 1168 11BE;C187;1109 1168 11BE; # (솇; 솇; 솇; 솇; 솇; ) HANGUL SYLLABLE SYEC
+C188;C188;1109 1168 11BF;C188;1109 1168 11BF; # (솈; 솈; 솈; 솈; 솈; ) HANGUL SYLLABLE SYEK
+C189;C189;1109 1168 11C0;C189;1109 1168 11C0; # (솉; 솉; 솉; 솉; 솉; ) HANGUL SYLLABLE SYET
+C18A;C18A;1109 1168 11C1;C18A;1109 1168 11C1; # (솊; 솊; 솊; 솊; 솊; ) HANGUL SYLLABLE SYEP
+C18B;C18B;1109 1168 11C2;C18B;1109 1168 11C2; # (솋; 솋; 솋; 솋; 솋; ) HANGUL SYLLABLE SYEH
+C18C;C18C;1109 1169;C18C;1109 1169; # (소; 소; 소; 소; 소; ) HANGUL SYLLABLE SO
+C18D;C18D;1109 1169 11A8;C18D;1109 1169 11A8; # (속; 속; 속; 속; 속; ) HANGUL SYLLABLE SOG
+C18E;C18E;1109 1169 11A9;C18E;1109 1169 11A9; # (솎; 솎; 솎; 솎; 솎; ) HANGUL SYLLABLE SOGG
+C18F;C18F;1109 1169 11AA;C18F;1109 1169 11AA; # (솏; 솏; 솏; 솏; 솏; ) HANGUL SYLLABLE SOGS
+C190;C190;1109 1169 11AB;C190;1109 1169 11AB; # (손; 손; 손; 손; 손; ) HANGUL SYLLABLE SON
+C191;C191;1109 1169 11AC;C191;1109 1169 11AC; # (솑; 솑; 솑; 솑; 솑; ) HANGUL SYLLABLE SONJ
+C192;C192;1109 1169 11AD;C192;1109 1169 11AD; # (솒; 솒; 솒; 솒; 솒; ) HANGUL SYLLABLE SONH
+C193;C193;1109 1169 11AE;C193;1109 1169 11AE; # (솓; 솓; 솓; 솓; 솓; ) HANGUL SYLLABLE SOD
+C194;C194;1109 1169 11AF;C194;1109 1169 11AF; # (솔; 솔; 솔; 솔; 솔; ) HANGUL SYLLABLE SOL
+C195;C195;1109 1169 11B0;C195;1109 1169 11B0; # (솕; 솕; 솕; 솕; 솕; ) HANGUL SYLLABLE SOLG
+C196;C196;1109 1169 11B1;C196;1109 1169 11B1; # (솖; 솖; 솖; 솖; 솖; ) HANGUL SYLLABLE SOLM
+C197;C197;1109 1169 11B2;C197;1109 1169 11B2; # (솗; 솗; 솗; 솗; 솗; ) HANGUL SYLLABLE SOLB
+C198;C198;1109 1169 11B3;C198;1109 1169 11B3; # (솘; 솘; 솘; 솘; 솘; ) HANGUL SYLLABLE SOLS
+C199;C199;1109 1169 11B4;C199;1109 1169 11B4; # (솙; 솙; 솙; 솙; 솙; ) HANGUL SYLLABLE SOLT
+C19A;C19A;1109 1169 11B5;C19A;1109 1169 11B5; # (솚; 솚; 솚; 솚; 솚; ) HANGUL SYLLABLE SOLP
+C19B;C19B;1109 1169 11B6;C19B;1109 1169 11B6; # (솛; 솛; 솛; 솛; 솛; ) HANGUL SYLLABLE SOLH
+C19C;C19C;1109 1169 11B7;C19C;1109 1169 11B7; # (솜; 솜; 솜; 솜; 솜; ) HANGUL SYLLABLE SOM
+C19D;C19D;1109 1169 11B8;C19D;1109 1169 11B8; # (솝; 솝; 솝; 솝; 솝; ) HANGUL SYLLABLE SOB
+C19E;C19E;1109 1169 11B9;C19E;1109 1169 11B9; # (솞; 솞; 솞; 솞; 솞; ) HANGUL SYLLABLE SOBS
+C19F;C19F;1109 1169 11BA;C19F;1109 1169 11BA; # (솟; 솟; 솟; 솟; 솟; ) HANGUL SYLLABLE SOS
+C1A0;C1A0;1109 1169 11BB;C1A0;1109 1169 11BB; # (솠; 솠; 솠; 솠; 솠; ) HANGUL SYLLABLE SOSS
+C1A1;C1A1;1109 1169 11BC;C1A1;1109 1169 11BC; # (송; 송; 송; 송; 송; ) HANGUL SYLLABLE SONG
+C1A2;C1A2;1109 1169 11BD;C1A2;1109 1169 11BD; # (솢; 솢; 솢; 솢; 솢; ) HANGUL SYLLABLE SOJ
+C1A3;C1A3;1109 1169 11BE;C1A3;1109 1169 11BE; # (솣; 솣; 솣; 솣; 솣; ) HANGUL SYLLABLE SOC
+C1A4;C1A4;1109 1169 11BF;C1A4;1109 1169 11BF; # (솤; 솤; 솤; 솤; 솤; ) HANGUL SYLLABLE SOK
+C1A5;C1A5;1109 1169 11C0;C1A5;1109 1169 11C0; # (솥; 솥; 솥; 솥; 솥; ) HANGUL SYLLABLE SOT
+C1A6;C1A6;1109 1169 11C1;C1A6;1109 1169 11C1; # (솦; 솦; 솦; 솦; 솦; ) HANGUL SYLLABLE SOP
+C1A7;C1A7;1109 1169 11C2;C1A7;1109 1169 11C2; # (솧; 솧; 솧; 솧; 솧; ) HANGUL SYLLABLE SOH
+C1A8;C1A8;1109 116A;C1A8;1109 116A; # (솨; 솨; 솨; 솨; 솨; ) HANGUL SYLLABLE SWA
+C1A9;C1A9;1109 116A 11A8;C1A9;1109 116A 11A8; # (솩; 솩; 솩; 솩; 솩; ) HANGUL SYLLABLE SWAG
+C1AA;C1AA;1109 116A 11A9;C1AA;1109 116A 11A9; # (솪; 솪; 솪; 솪; 솪; ) HANGUL SYLLABLE SWAGG
+C1AB;C1AB;1109 116A 11AA;C1AB;1109 116A 11AA; # (솫; 솫; 솫; 솫; 솫; ) HANGUL SYLLABLE SWAGS
+C1AC;C1AC;1109 116A 11AB;C1AC;1109 116A 11AB; # (솬; 솬; 솬; 솬; 솬; ) HANGUL SYLLABLE SWAN
+C1AD;C1AD;1109 116A 11AC;C1AD;1109 116A 11AC; # (솭; 솭; 솭; 솭; 솭; ) HANGUL SYLLABLE SWANJ
+C1AE;C1AE;1109 116A 11AD;C1AE;1109 116A 11AD; # (솮; 솮; 솮; 솮; 솮; ) HANGUL SYLLABLE SWANH
+C1AF;C1AF;1109 116A 11AE;C1AF;1109 116A 11AE; # (솯; 솯; 솯; 솯; 솯; ) HANGUL SYLLABLE SWAD
+C1B0;C1B0;1109 116A 11AF;C1B0;1109 116A 11AF; # (솰; 솰; 솰; 솰; 솰; ) HANGUL SYLLABLE SWAL
+C1B1;C1B1;1109 116A 11B0;C1B1;1109 116A 11B0; # (솱; 솱; 솱; 솱; 솱; ) HANGUL SYLLABLE SWALG
+C1B2;C1B2;1109 116A 11B1;C1B2;1109 116A 11B1; # (솲; 솲; 솲; 솲; 솲; ) HANGUL SYLLABLE SWALM
+C1B3;C1B3;1109 116A 11B2;C1B3;1109 116A 11B2; # (솳; 솳; 솳; 솳; 솳; ) HANGUL SYLLABLE SWALB
+C1B4;C1B4;1109 116A 11B3;C1B4;1109 116A 11B3; # (솴; 솴; 솴; 솴; 솴; ) HANGUL SYLLABLE SWALS
+C1B5;C1B5;1109 116A 11B4;C1B5;1109 116A 11B4; # (솵; 솵; 솵; 솵; 솵; ) HANGUL SYLLABLE SWALT
+C1B6;C1B6;1109 116A 11B5;C1B6;1109 116A 11B5; # (솶; 솶; 솶; 솶; 솶; ) HANGUL SYLLABLE SWALP
+C1B7;C1B7;1109 116A 11B6;C1B7;1109 116A 11B6; # (솷; 솷; 솷; 솷; 솷; ) HANGUL SYLLABLE SWALH
+C1B8;C1B8;1109 116A 11B7;C1B8;1109 116A 11B7; # (솸; 솸; 솸; 솸; 솸; ) HANGUL SYLLABLE SWAM
+C1B9;C1B9;1109 116A 11B8;C1B9;1109 116A 11B8; # (솹; 솹; 솹; 솹; 솹; ) HANGUL SYLLABLE SWAB
+C1BA;C1BA;1109 116A 11B9;C1BA;1109 116A 11B9; # (솺; 솺; 솺; 솺; 솺; ) HANGUL SYLLABLE SWABS
+C1BB;C1BB;1109 116A 11BA;C1BB;1109 116A 11BA; # (솻; 솻; 솻; 솻; 솻; ) HANGUL SYLLABLE SWAS
+C1BC;C1BC;1109 116A 11BB;C1BC;1109 116A 11BB; # (솼; 솼; 솼; 솼; 솼; ) HANGUL SYLLABLE SWASS
+C1BD;C1BD;1109 116A 11BC;C1BD;1109 116A 11BC; # (솽; 솽; 솽; 솽; 솽; ) HANGUL SYLLABLE SWANG
+C1BE;C1BE;1109 116A 11BD;C1BE;1109 116A 11BD; # (솾; 솾; 솾; 솾; 솾; ) HANGUL SYLLABLE SWAJ
+C1BF;C1BF;1109 116A 11BE;C1BF;1109 116A 11BE; # (솿; 솿; 솿; 솿; 솿; ) HANGUL SYLLABLE SWAC
+C1C0;C1C0;1109 116A 11BF;C1C0;1109 116A 11BF; # (쇀; 쇀; 쇀; 쇀; 쇀; ) HANGUL SYLLABLE SWAK
+C1C1;C1C1;1109 116A 11C0;C1C1;1109 116A 11C0; # (쇁; 쇁; 쇁; 쇁; 쇁; ) HANGUL SYLLABLE SWAT
+C1C2;C1C2;1109 116A 11C1;C1C2;1109 116A 11C1; # (쇂; 쇂; 쇂; 쇂; 쇂; ) HANGUL SYLLABLE SWAP
+C1C3;C1C3;1109 116A 11C2;C1C3;1109 116A 11C2; # (쇃; 쇃; 쇃; 쇃; 쇃; ) HANGUL SYLLABLE SWAH
+C1C4;C1C4;1109 116B;C1C4;1109 116B; # (쇄; 쇄; 쇄; 쇄; 쇄; ) HANGUL SYLLABLE SWAE
+C1C5;C1C5;1109 116B 11A8;C1C5;1109 116B 11A8; # (쇅; 쇅; 쇅; 쇅; 쇅; ) HANGUL SYLLABLE SWAEG
+C1C6;C1C6;1109 116B 11A9;C1C6;1109 116B 11A9; # (쇆; 쇆; 쇆; 쇆; 쇆; ) HANGUL SYLLABLE SWAEGG
+C1C7;C1C7;1109 116B 11AA;C1C7;1109 116B 11AA; # (쇇; 쇇; 쇇; 쇇; 쇇; ) HANGUL SYLLABLE SWAEGS
+C1C8;C1C8;1109 116B 11AB;C1C8;1109 116B 11AB; # (쇈; 쇈; 쇈; 쇈; 쇈; ) HANGUL SYLLABLE SWAEN
+C1C9;C1C9;1109 116B 11AC;C1C9;1109 116B 11AC; # (쇉; 쇉; 쇉; 쇉; 쇉; ) HANGUL SYLLABLE SWAENJ
+C1CA;C1CA;1109 116B 11AD;C1CA;1109 116B 11AD; # (쇊; 쇊; 쇊; 쇊; 쇊; ) HANGUL SYLLABLE SWAENH
+C1CB;C1CB;1109 116B 11AE;C1CB;1109 116B 11AE; # (쇋; 쇋; 쇋; 쇋; 쇋; ) HANGUL SYLLABLE SWAED
+C1CC;C1CC;1109 116B 11AF;C1CC;1109 116B 11AF; # (쇌; 쇌; 쇌; 쇌; 쇌; ) HANGUL SYLLABLE SWAEL
+C1CD;C1CD;1109 116B 11B0;C1CD;1109 116B 11B0; # (쇍; 쇍; 쇍; 쇍; 쇍; ) HANGUL SYLLABLE SWAELG
+C1CE;C1CE;1109 116B 11B1;C1CE;1109 116B 11B1; # (쇎; 쇎; 쇎; 쇎; 쇎; ) HANGUL SYLLABLE SWAELM
+C1CF;C1CF;1109 116B 11B2;C1CF;1109 116B 11B2; # (쇏; 쇏; 쇏; 쇏; 쇏; ) HANGUL SYLLABLE SWAELB
+C1D0;C1D0;1109 116B 11B3;C1D0;1109 116B 11B3; # (쇐; 쇐; 쇐; 쇐; 쇐; ) HANGUL SYLLABLE SWAELS
+C1D1;C1D1;1109 116B 11B4;C1D1;1109 116B 11B4; # (쇑; 쇑; 쇑; 쇑; 쇑; ) HANGUL SYLLABLE SWAELT
+C1D2;C1D2;1109 116B 11B5;C1D2;1109 116B 11B5; # (쇒; 쇒; 쇒; 쇒; 쇒; ) HANGUL SYLLABLE SWAELP
+C1D3;C1D3;1109 116B 11B6;C1D3;1109 116B 11B6; # (쇓; 쇓; 쇓; 쇓; 쇓; ) HANGUL SYLLABLE SWAELH
+C1D4;C1D4;1109 116B 11B7;C1D4;1109 116B 11B7; # (쇔; 쇔; 쇔; 쇔; 쇔; ) HANGUL SYLLABLE SWAEM
+C1D5;C1D5;1109 116B 11B8;C1D5;1109 116B 11B8; # (쇕; 쇕; 쇕; 쇕; 쇕; ) HANGUL SYLLABLE SWAEB
+C1D6;C1D6;1109 116B 11B9;C1D6;1109 116B 11B9; # (쇖; 쇖; 쇖; 쇖; 쇖; ) HANGUL SYLLABLE SWAEBS
+C1D7;C1D7;1109 116B 11BA;C1D7;1109 116B 11BA; # (쇗; 쇗; 쇗; 쇗; 쇗; ) HANGUL SYLLABLE SWAES
+C1D8;C1D8;1109 116B 11BB;C1D8;1109 116B 11BB; # (쇘; 쇘; 쇘; 쇘; 쇘; ) HANGUL SYLLABLE SWAESS
+C1D9;C1D9;1109 116B 11BC;C1D9;1109 116B 11BC; # (쇙; 쇙; 쇙; 쇙; 쇙; ) HANGUL SYLLABLE SWAENG
+C1DA;C1DA;1109 116B 11BD;C1DA;1109 116B 11BD; # (쇚; 쇚; 쇚; 쇚; 쇚; ) HANGUL SYLLABLE SWAEJ
+C1DB;C1DB;1109 116B 11BE;C1DB;1109 116B 11BE; # (쇛; 쇛; 쇛; 쇛; 쇛; ) HANGUL SYLLABLE SWAEC
+C1DC;C1DC;1109 116B 11BF;C1DC;1109 116B 11BF; # (쇜; 쇜; 쇜; 쇜; 쇜; ) HANGUL SYLLABLE SWAEK
+C1DD;C1DD;1109 116B 11C0;C1DD;1109 116B 11C0; # (쇝; 쇝; 쇝; 쇝; 쇝; ) HANGUL SYLLABLE SWAET
+C1DE;C1DE;1109 116B 11C1;C1DE;1109 116B 11C1; # (쇞; 쇞; 쇞; 쇞; 쇞; ) HANGUL SYLLABLE SWAEP
+C1DF;C1DF;1109 116B 11C2;C1DF;1109 116B 11C2; # (쇟; 쇟; 쇟; 쇟; 쇟; ) HANGUL SYLLABLE SWAEH
+C1E0;C1E0;1109 116C;C1E0;1109 116C; # (쇠; 쇠; 쇠; 쇠; 쇠; ) HANGUL SYLLABLE SOE
+C1E1;C1E1;1109 116C 11A8;C1E1;1109 116C 11A8; # (쇡; 쇡; 쇡; 쇡; 쇡; ) HANGUL SYLLABLE SOEG
+C1E2;C1E2;1109 116C 11A9;C1E2;1109 116C 11A9; # (쇢; 쇢; 쇢; 쇢; 쇢; ) HANGUL SYLLABLE SOEGG
+C1E3;C1E3;1109 116C 11AA;C1E3;1109 116C 11AA; # (쇣; 쇣; 쇣; 쇣; 쇣; ) HANGUL SYLLABLE SOEGS
+C1E4;C1E4;1109 116C 11AB;C1E4;1109 116C 11AB; # (쇤; 쇤; 쇤; 쇤; 쇤; ) HANGUL SYLLABLE SOEN
+C1E5;C1E5;1109 116C 11AC;C1E5;1109 116C 11AC; # (쇥; 쇥; 쇥; 쇥; 쇥; ) HANGUL SYLLABLE SOENJ
+C1E6;C1E6;1109 116C 11AD;C1E6;1109 116C 11AD; # (쇦; 쇦; 쇦; 쇦; 쇦; ) HANGUL SYLLABLE SOENH
+C1E7;C1E7;1109 116C 11AE;C1E7;1109 116C 11AE; # (쇧; 쇧; 쇧; 쇧; 쇧; ) HANGUL SYLLABLE SOED
+C1E8;C1E8;1109 116C 11AF;C1E8;1109 116C 11AF; # (쇨; 쇨; 쇨; 쇨; 쇨; ) HANGUL SYLLABLE SOEL
+C1E9;C1E9;1109 116C 11B0;C1E9;1109 116C 11B0; # (쇩; 쇩; 쇩; 쇩; 쇩; ) HANGUL SYLLABLE SOELG
+C1EA;C1EA;1109 116C 11B1;C1EA;1109 116C 11B1; # (쇪; 쇪; 쇪; 쇪; 쇪; ) HANGUL SYLLABLE SOELM
+C1EB;C1EB;1109 116C 11B2;C1EB;1109 116C 11B2; # (쇫; 쇫; 쇫; 쇫; 쇫; ) HANGUL SYLLABLE SOELB
+C1EC;C1EC;1109 116C 11B3;C1EC;1109 116C 11B3; # (쇬; 쇬; 쇬; 쇬; 쇬; ) HANGUL SYLLABLE SOELS
+C1ED;C1ED;1109 116C 11B4;C1ED;1109 116C 11B4; # (쇭; 쇭; 쇭; 쇭; 쇭; ) HANGUL SYLLABLE SOELT
+C1EE;C1EE;1109 116C 11B5;C1EE;1109 116C 11B5; # (쇮; 쇮; 쇮; 쇮; 쇮; ) HANGUL SYLLABLE SOELP
+C1EF;C1EF;1109 116C 11B6;C1EF;1109 116C 11B6; # (쇯; 쇯; 쇯; 쇯; 쇯; ) HANGUL SYLLABLE SOELH
+C1F0;C1F0;1109 116C 11B7;C1F0;1109 116C 11B7; # (쇰; 쇰; 쇰; 쇰; 쇰; ) HANGUL SYLLABLE SOEM
+C1F1;C1F1;1109 116C 11B8;C1F1;1109 116C 11B8; # (쇱; 쇱; 쇱; 쇱; 쇱; ) HANGUL SYLLABLE SOEB
+C1F2;C1F2;1109 116C 11B9;C1F2;1109 116C 11B9; # (쇲; 쇲; 쇲; 쇲; 쇲; ) HANGUL SYLLABLE SOEBS
+C1F3;C1F3;1109 116C 11BA;C1F3;1109 116C 11BA; # (쇳; 쇳; 쇳; 쇳; 쇳; ) HANGUL SYLLABLE SOES
+C1F4;C1F4;1109 116C 11BB;C1F4;1109 116C 11BB; # (쇴; 쇴; 쇴; 쇴; 쇴; ) HANGUL SYLLABLE SOESS
+C1F5;C1F5;1109 116C 11BC;C1F5;1109 116C 11BC; # (쇵; 쇵; 쇵; 쇵; 쇵; ) HANGUL SYLLABLE SOENG
+C1F6;C1F6;1109 116C 11BD;C1F6;1109 116C 11BD; # (쇶; 쇶; 쇶; 쇶; 쇶; ) HANGUL SYLLABLE SOEJ
+C1F7;C1F7;1109 116C 11BE;C1F7;1109 116C 11BE; # (쇷; 쇷; 쇷; 쇷; 쇷; ) HANGUL SYLLABLE SOEC
+C1F8;C1F8;1109 116C 11BF;C1F8;1109 116C 11BF; # (쇸; 쇸; 쇸; 쇸; 쇸; ) HANGUL SYLLABLE SOEK
+C1F9;C1F9;1109 116C 11C0;C1F9;1109 116C 11C0; # (쇹; 쇹; 쇹; 쇹; 쇹; ) HANGUL SYLLABLE SOET
+C1FA;C1FA;1109 116C 11C1;C1FA;1109 116C 11C1; # (쇺; 쇺; 쇺; 쇺; 쇺; ) HANGUL SYLLABLE SOEP
+C1FB;C1FB;1109 116C 11C2;C1FB;1109 116C 11C2; # (쇻; 쇻; 쇻; 쇻; 쇻; ) HANGUL SYLLABLE SOEH
+C1FC;C1FC;1109 116D;C1FC;1109 116D; # (쇼; 쇼; 쇼; 쇼; 쇼; ) HANGUL SYLLABLE SYO
+C1FD;C1FD;1109 116D 11A8;C1FD;1109 116D 11A8; # (쇽; 쇽; 쇽; 쇽; 쇽; ) HANGUL SYLLABLE SYOG
+C1FE;C1FE;1109 116D 11A9;C1FE;1109 116D 11A9; # (쇾; 쇾; 쇾; 쇾; 쇾; ) HANGUL SYLLABLE SYOGG
+C1FF;C1FF;1109 116D 11AA;C1FF;1109 116D 11AA; # (쇿; 쇿; 쇿; 쇿; 쇿; ) HANGUL SYLLABLE SYOGS
+C200;C200;1109 116D 11AB;C200;1109 116D 11AB; # (숀; 숀; 숀; 숀; 숀; ) HANGUL SYLLABLE SYON
+C201;C201;1109 116D 11AC;C201;1109 116D 11AC; # (숁; 숁; 숁; 숁; 숁; ) HANGUL SYLLABLE SYONJ
+C202;C202;1109 116D 11AD;C202;1109 116D 11AD; # (숂; 숂; 숂; 숂; 숂; ) HANGUL SYLLABLE SYONH
+C203;C203;1109 116D 11AE;C203;1109 116D 11AE; # (숃; 숃; 숃; 숃; 숃; ) HANGUL SYLLABLE SYOD
+C204;C204;1109 116D 11AF;C204;1109 116D 11AF; # (숄; 숄; 숄; 숄; 숄; ) HANGUL SYLLABLE SYOL
+C205;C205;1109 116D 11B0;C205;1109 116D 11B0; # (숅; 숅; 숅; 숅; 숅; ) HANGUL SYLLABLE SYOLG
+C206;C206;1109 116D 11B1;C206;1109 116D 11B1; # (숆; 숆; 숆; 숆; 숆; ) HANGUL SYLLABLE SYOLM
+C207;C207;1109 116D 11B2;C207;1109 116D 11B2; # (숇; 숇; 숇; 숇; 숇; ) HANGUL SYLLABLE SYOLB
+C208;C208;1109 116D 11B3;C208;1109 116D 11B3; # (숈; 숈; 숈; 숈; 숈; ) HANGUL SYLLABLE SYOLS
+C209;C209;1109 116D 11B4;C209;1109 116D 11B4; # (숉; 숉; 숉; 숉; 숉; ) HANGUL SYLLABLE SYOLT
+C20A;C20A;1109 116D 11B5;C20A;1109 116D 11B5; # (숊; 숊; 숊; 숊; 숊; ) HANGUL SYLLABLE SYOLP
+C20B;C20B;1109 116D 11B6;C20B;1109 116D 11B6; # (숋; 숋; 숋; 숋; 숋; ) HANGUL SYLLABLE SYOLH
+C20C;C20C;1109 116D 11B7;C20C;1109 116D 11B7; # (숌; 숌; 숌; 숌; 숌; ) HANGUL SYLLABLE SYOM
+C20D;C20D;1109 116D 11B8;C20D;1109 116D 11B8; # (숍; 숍; 숍; 숍; 숍; ) HANGUL SYLLABLE SYOB
+C20E;C20E;1109 116D 11B9;C20E;1109 116D 11B9; # (숎; 숎; 숎; 숎; 숎; ) HANGUL SYLLABLE SYOBS
+C20F;C20F;1109 116D 11BA;C20F;1109 116D 11BA; # (숏; 숏; 숏; 숏; 숏; ) HANGUL SYLLABLE SYOS
+C210;C210;1109 116D 11BB;C210;1109 116D 11BB; # (숐; 숐; 숐; 숐; 숐; ) HANGUL SYLLABLE SYOSS
+C211;C211;1109 116D 11BC;C211;1109 116D 11BC; # (숑; 숑; 숑; 숑; 숑; ) HANGUL SYLLABLE SYONG
+C212;C212;1109 116D 11BD;C212;1109 116D 11BD; # (숒; 숒; 숒; 숒; 숒; ) HANGUL SYLLABLE SYOJ
+C213;C213;1109 116D 11BE;C213;1109 116D 11BE; # (숓; 숓; 숓; 숓; 숓; ) HANGUL SYLLABLE SYOC
+C214;C214;1109 116D 11BF;C214;1109 116D 11BF; # (숔; 숔; 숔; 숔; 숔; ) HANGUL SYLLABLE SYOK
+C215;C215;1109 116D 11C0;C215;1109 116D 11C0; # (숕; 숕; 숕; 숕; 숕; ) HANGUL SYLLABLE SYOT
+C216;C216;1109 116D 11C1;C216;1109 116D 11C1; # (숖; 숖; 숖; 숖; 숖; ) HANGUL SYLLABLE SYOP
+C217;C217;1109 116D 11C2;C217;1109 116D 11C2; # (숗; 숗; 숗; 숗; 숗; ) HANGUL SYLLABLE SYOH
+C218;C218;1109 116E;C218;1109 116E; # (수; 수; 수; 수; 수; ) HANGUL SYLLABLE SU
+C219;C219;1109 116E 11A8;C219;1109 116E 11A8; # (숙; 숙; 숙; 숙; 숙; ) HANGUL SYLLABLE SUG
+C21A;C21A;1109 116E 11A9;C21A;1109 116E 11A9; # (숚; 숚; 숚; 숚; 숚; ) HANGUL SYLLABLE SUGG
+C21B;C21B;1109 116E 11AA;C21B;1109 116E 11AA; # (숛; 숛; 숛; 숛; 숛; ) HANGUL SYLLABLE SUGS
+C21C;C21C;1109 116E 11AB;C21C;1109 116E 11AB; # (순; 순; 순; 순; 순; ) HANGUL SYLLABLE SUN
+C21D;C21D;1109 116E 11AC;C21D;1109 116E 11AC; # (숝; 숝; 숝; 숝; 숝; ) HANGUL SYLLABLE SUNJ
+C21E;C21E;1109 116E 11AD;C21E;1109 116E 11AD; # (숞; 숞; 숞; 숞; 숞; ) HANGUL SYLLABLE SUNH
+C21F;C21F;1109 116E 11AE;C21F;1109 116E 11AE; # (숟; 숟; 숟; 숟; 숟; ) HANGUL SYLLABLE SUD
+C220;C220;1109 116E 11AF;C220;1109 116E 11AF; # (술; 술; 술; 술; 술; ) HANGUL SYLLABLE SUL
+C221;C221;1109 116E 11B0;C221;1109 116E 11B0; # (숡; 숡; 숡; 숡; 숡; ) HANGUL SYLLABLE SULG
+C222;C222;1109 116E 11B1;C222;1109 116E 11B1; # (숢; 숢; 숢; 숢; 숢; ) HANGUL SYLLABLE SULM
+C223;C223;1109 116E 11B2;C223;1109 116E 11B2; # (숣; 숣; 숣; 숣; 숣; ) HANGUL SYLLABLE SULB
+C224;C224;1109 116E 11B3;C224;1109 116E 11B3; # (숤; 숤; 숤; 숤; 숤; ) HANGUL SYLLABLE SULS
+C225;C225;1109 116E 11B4;C225;1109 116E 11B4; # (숥; 숥; 숥; 숥; 숥; ) HANGUL SYLLABLE SULT
+C226;C226;1109 116E 11B5;C226;1109 116E 11B5; # (숦; 숦; 숦; 숦; 숦; ) HANGUL SYLLABLE SULP
+C227;C227;1109 116E 11B6;C227;1109 116E 11B6; # (숧; 숧; 숧; 숧; 숧; ) HANGUL SYLLABLE SULH
+C228;C228;1109 116E 11B7;C228;1109 116E 11B7; # (숨; 숨; 숨; 숨; 숨; ) HANGUL SYLLABLE SUM
+C229;C229;1109 116E 11B8;C229;1109 116E 11B8; # (숩; 숩; 숩; 숩; 숩; ) HANGUL SYLLABLE SUB
+C22A;C22A;1109 116E 11B9;C22A;1109 116E 11B9; # (숪; 숪; 숪; 숪; 숪; ) HANGUL SYLLABLE SUBS
+C22B;C22B;1109 116E 11BA;C22B;1109 116E 11BA; # (숫; 숫; 숫; 숫; 숫; ) HANGUL SYLLABLE SUS
+C22C;C22C;1109 116E 11BB;C22C;1109 116E 11BB; # (숬; 숬; 숬; 숬; 숬; ) HANGUL SYLLABLE SUSS
+C22D;C22D;1109 116E 11BC;C22D;1109 116E 11BC; # (숭; 숭; 숭; 숭; 숭; ) HANGUL SYLLABLE SUNG
+C22E;C22E;1109 116E 11BD;C22E;1109 116E 11BD; # (숮; 숮; 숮; 숮; 숮; ) HANGUL SYLLABLE SUJ
+C22F;C22F;1109 116E 11BE;C22F;1109 116E 11BE; # (숯; 숯; 숯; 숯; 숯; ) HANGUL SYLLABLE SUC
+C230;C230;1109 116E 11BF;C230;1109 116E 11BF; # (숰; 숰; 숰; 숰; 숰; ) HANGUL SYLLABLE SUK
+C231;C231;1109 116E 11C0;C231;1109 116E 11C0; # (숱; 숱; 숱; 숱; 숱; ) HANGUL SYLLABLE SUT
+C232;C232;1109 116E 11C1;C232;1109 116E 11C1; # (숲; 숲; 숲; 숲; 숲; ) HANGUL SYLLABLE SUP
+C233;C233;1109 116E 11C2;C233;1109 116E 11C2; # (숳; 숳; 숳; 숳; 숳; ) HANGUL SYLLABLE SUH
+C234;C234;1109 116F;C234;1109 116F; # (숴; 숴; 숴; 숴; 숴; ) HANGUL SYLLABLE SWEO
+C235;C235;1109 116F 11A8;C235;1109 116F 11A8; # (숵; 숵; 숵; 숵; 숵; ) HANGUL SYLLABLE SWEOG
+C236;C236;1109 116F 11A9;C236;1109 116F 11A9; # (숶; 숶; 숶; 숶; 숶; ) HANGUL SYLLABLE SWEOGG
+C237;C237;1109 116F 11AA;C237;1109 116F 11AA; # (숷; 숷; 숷; 숷; 숷; ) HANGUL SYLLABLE SWEOGS
+C238;C238;1109 116F 11AB;C238;1109 116F 11AB; # (숸; 숸; 숸; 숸; 숸; ) HANGUL SYLLABLE SWEON
+C239;C239;1109 116F 11AC;C239;1109 116F 11AC; # (숹; 숹; 숹; 숹; 숹; ) HANGUL SYLLABLE SWEONJ
+C23A;C23A;1109 116F 11AD;C23A;1109 116F 11AD; # (숺; 숺; 숺; 숺; 숺; ) HANGUL SYLLABLE SWEONH
+C23B;C23B;1109 116F 11AE;C23B;1109 116F 11AE; # (숻; 숻; 숻; 숻; 숻; ) HANGUL SYLLABLE SWEOD
+C23C;C23C;1109 116F 11AF;C23C;1109 116F 11AF; # (숼; 숼; 숼; 숼; 숼; ) HANGUL SYLLABLE SWEOL
+C23D;C23D;1109 116F 11B0;C23D;1109 116F 11B0; # (숽; 숽; 숽; 숽; 숽; ) HANGUL SYLLABLE SWEOLG
+C23E;C23E;1109 116F 11B1;C23E;1109 116F 11B1; # (숾; 숾; 숾; 숾; 숾; ) HANGUL SYLLABLE SWEOLM
+C23F;C23F;1109 116F 11B2;C23F;1109 116F 11B2; # (숿; 숿; 숿; 숿; 숿; ) HANGUL SYLLABLE SWEOLB
+C240;C240;1109 116F 11B3;C240;1109 116F 11B3; # (쉀; 쉀; 쉀; 쉀; 쉀; ) HANGUL SYLLABLE SWEOLS
+C241;C241;1109 116F 11B4;C241;1109 116F 11B4; # (쉁; 쉁; 쉁; 쉁; 쉁; ) HANGUL SYLLABLE SWEOLT
+C242;C242;1109 116F 11B5;C242;1109 116F 11B5; # (쉂; 쉂; 쉂; 쉂; 쉂; ) HANGUL SYLLABLE SWEOLP
+C243;C243;1109 116F 11B6;C243;1109 116F 11B6; # (쉃; 쉃; 쉃; 쉃; 쉃; ) HANGUL SYLLABLE SWEOLH
+C244;C244;1109 116F 11B7;C244;1109 116F 11B7; # (쉄; 쉄; 쉄; 쉄; 쉄; ) HANGUL SYLLABLE SWEOM
+C245;C245;1109 116F 11B8;C245;1109 116F 11B8; # (쉅; 쉅; 쉅; 쉅; 쉅; ) HANGUL SYLLABLE SWEOB
+C246;C246;1109 116F 11B9;C246;1109 116F 11B9; # (쉆; 쉆; 쉆; 쉆; 쉆; ) HANGUL SYLLABLE SWEOBS
+C247;C247;1109 116F 11BA;C247;1109 116F 11BA; # (쉇; 쉇; 쉇; 쉇; 쉇; ) HANGUL SYLLABLE SWEOS
+C248;C248;1109 116F 11BB;C248;1109 116F 11BB; # (쉈; 쉈; 쉈; 쉈; 쉈; ) HANGUL SYLLABLE SWEOSS
+C249;C249;1109 116F 11BC;C249;1109 116F 11BC; # (쉉; 쉉; 쉉; 쉉; 쉉; ) HANGUL SYLLABLE SWEONG
+C24A;C24A;1109 116F 11BD;C24A;1109 116F 11BD; # (쉊; 쉊; 쉊; 쉊; 쉊; ) HANGUL SYLLABLE SWEOJ
+C24B;C24B;1109 116F 11BE;C24B;1109 116F 11BE; # (쉋; 쉋; 쉋; 쉋; 쉋; ) HANGUL SYLLABLE SWEOC
+C24C;C24C;1109 116F 11BF;C24C;1109 116F 11BF; # (쉌; 쉌; 쉌; 쉌; 쉌; ) HANGUL SYLLABLE SWEOK
+C24D;C24D;1109 116F 11C0;C24D;1109 116F 11C0; # (쉍; 쉍; 쉍; 쉍; 쉍; ) HANGUL SYLLABLE SWEOT
+C24E;C24E;1109 116F 11C1;C24E;1109 116F 11C1; # (쉎; 쉎; 쉎; 쉎; 쉎; ) HANGUL SYLLABLE SWEOP
+C24F;C24F;1109 116F 11C2;C24F;1109 116F 11C2; # (쉏; 쉏; 쉏; 쉏; 쉏; ) HANGUL SYLLABLE SWEOH
+C250;C250;1109 1170;C250;1109 1170; # (쉐; 쉐; 쉐; 쉐; 쉐; ) HANGUL SYLLABLE SWE
+C251;C251;1109 1170 11A8;C251;1109 1170 11A8; # (쉑; 쉑; 쉑; 쉑; 쉑; ) HANGUL SYLLABLE SWEG
+C252;C252;1109 1170 11A9;C252;1109 1170 11A9; # (쉒; 쉒; 쉒; 쉒; 쉒; ) HANGUL SYLLABLE SWEGG
+C253;C253;1109 1170 11AA;C253;1109 1170 11AA; # (쉓; 쉓; 쉓; 쉓; 쉓; ) HANGUL SYLLABLE SWEGS
+C254;C254;1109 1170 11AB;C254;1109 1170 11AB; # (쉔; 쉔; 쉔; 쉔; 쉔; ) HANGUL SYLLABLE SWEN
+C255;C255;1109 1170 11AC;C255;1109 1170 11AC; # (쉕; 쉕; 쉕; 쉕; 쉕; ) HANGUL SYLLABLE SWENJ
+C256;C256;1109 1170 11AD;C256;1109 1170 11AD; # (쉖; 쉖; 쉖; 쉖; 쉖; ) HANGUL SYLLABLE SWENH
+C257;C257;1109 1170 11AE;C257;1109 1170 11AE; # (쉗; 쉗; 쉗; 쉗; 쉗; ) HANGUL SYLLABLE SWED
+C258;C258;1109 1170 11AF;C258;1109 1170 11AF; # (쉘; 쉘; 쉘; 쉘; 쉘; ) HANGUL SYLLABLE SWEL
+C259;C259;1109 1170 11B0;C259;1109 1170 11B0; # (쉙; 쉙; 쉙; 쉙; 쉙; ) HANGUL SYLLABLE SWELG
+C25A;C25A;1109 1170 11B1;C25A;1109 1170 11B1; # (쉚; 쉚; 쉚; 쉚; 쉚; ) HANGUL SYLLABLE SWELM
+C25B;C25B;1109 1170 11B2;C25B;1109 1170 11B2; # (쉛; 쉛; 쉛; 쉛; 쉛; ) HANGUL SYLLABLE SWELB
+C25C;C25C;1109 1170 11B3;C25C;1109 1170 11B3; # (쉜; 쉜; 쉜; 쉜; 쉜; ) HANGUL SYLLABLE SWELS
+C25D;C25D;1109 1170 11B4;C25D;1109 1170 11B4; # (쉝; 쉝; 쉝; 쉝; 쉝; ) HANGUL SYLLABLE SWELT
+C25E;C25E;1109 1170 11B5;C25E;1109 1170 11B5; # (쉞; 쉞; 쉞; 쉞; 쉞; ) HANGUL SYLLABLE SWELP
+C25F;C25F;1109 1170 11B6;C25F;1109 1170 11B6; # (쉟; 쉟; 쉟; 쉟; 쉟; ) HANGUL SYLLABLE SWELH
+C260;C260;1109 1170 11B7;C260;1109 1170 11B7; # (쉠; 쉠; 쉠; 쉠; 쉠; ) HANGUL SYLLABLE SWEM
+C261;C261;1109 1170 11B8;C261;1109 1170 11B8; # (쉡; 쉡; 쉡; 쉡; 쉡; ) HANGUL SYLLABLE SWEB
+C262;C262;1109 1170 11B9;C262;1109 1170 11B9; # (쉢; 쉢; 쉢; 쉢; 쉢; ) HANGUL SYLLABLE SWEBS
+C263;C263;1109 1170 11BA;C263;1109 1170 11BA; # (쉣; 쉣; 쉣; 쉣; 쉣; ) HANGUL SYLLABLE SWES
+C264;C264;1109 1170 11BB;C264;1109 1170 11BB; # (쉤; 쉤; 쉤; 쉤; 쉤; ) HANGUL SYLLABLE SWESS
+C265;C265;1109 1170 11BC;C265;1109 1170 11BC; # (쉥; 쉥; 쉥; 쉥; 쉥; ) HANGUL SYLLABLE SWENG
+C266;C266;1109 1170 11BD;C266;1109 1170 11BD; # (쉦; 쉦; 쉦; 쉦; 쉦; ) HANGUL SYLLABLE SWEJ
+C267;C267;1109 1170 11BE;C267;1109 1170 11BE; # (쉧; 쉧; 쉧; 쉧; 쉧; ) HANGUL SYLLABLE SWEC
+C268;C268;1109 1170 11BF;C268;1109 1170 11BF; # (쉨; 쉨; 쉨; 쉨; 쉨; ) HANGUL SYLLABLE SWEK
+C269;C269;1109 1170 11C0;C269;1109 1170 11C0; # (쉩; 쉩; 쉩; 쉩; 쉩; ) HANGUL SYLLABLE SWET
+C26A;C26A;1109 1170 11C1;C26A;1109 1170 11C1; # (쉪; 쉪; 쉪; 쉪; 쉪; ) HANGUL SYLLABLE SWEP
+C26B;C26B;1109 1170 11C2;C26B;1109 1170 11C2; # (쉫; 쉫; 쉫; 쉫; 쉫; ) HANGUL SYLLABLE SWEH
+C26C;C26C;1109 1171;C26C;1109 1171; # (쉬; 쉬; 쉬; 쉬; 쉬; ) HANGUL SYLLABLE SWI
+C26D;C26D;1109 1171 11A8;C26D;1109 1171 11A8; # (쉭; 쉭; 쉭; 쉭; 쉭; ) HANGUL SYLLABLE SWIG
+C26E;C26E;1109 1171 11A9;C26E;1109 1171 11A9; # (쉮; 쉮; 쉮; 쉮; 쉮; ) HANGUL SYLLABLE SWIGG
+C26F;C26F;1109 1171 11AA;C26F;1109 1171 11AA; # (쉯; 쉯; 쉯; 쉯; 쉯; ) HANGUL SYLLABLE SWIGS
+C270;C270;1109 1171 11AB;C270;1109 1171 11AB; # (쉰; 쉰; 쉰; 쉰; 쉰; ) HANGUL SYLLABLE SWIN
+C271;C271;1109 1171 11AC;C271;1109 1171 11AC; # (쉱; 쉱; 쉱; 쉱; 쉱; ) HANGUL SYLLABLE SWINJ
+C272;C272;1109 1171 11AD;C272;1109 1171 11AD; # (쉲; 쉲; 쉲; 쉲; 쉲; ) HANGUL SYLLABLE SWINH
+C273;C273;1109 1171 11AE;C273;1109 1171 11AE; # (쉳; 쉳; 쉳; 쉳; 쉳; ) HANGUL SYLLABLE SWID
+C274;C274;1109 1171 11AF;C274;1109 1171 11AF; # (쉴; 쉴; 쉴; 쉴; 쉴; ) HANGUL SYLLABLE SWIL
+C275;C275;1109 1171 11B0;C275;1109 1171 11B0; # (쉵; 쉵; 쉵; 쉵; 쉵; ) HANGUL SYLLABLE SWILG
+C276;C276;1109 1171 11B1;C276;1109 1171 11B1; # (쉶; 쉶; 쉶; 쉶; 쉶; ) HANGUL SYLLABLE SWILM
+C277;C277;1109 1171 11B2;C277;1109 1171 11B2; # (쉷; 쉷; 쉷; 쉷; 쉷; ) HANGUL SYLLABLE SWILB
+C278;C278;1109 1171 11B3;C278;1109 1171 11B3; # (쉸; 쉸; 쉸; 쉸; 쉸; ) HANGUL SYLLABLE SWILS
+C279;C279;1109 1171 11B4;C279;1109 1171 11B4; # (쉹; 쉹; 쉹; 쉹; 쉹; ) HANGUL SYLLABLE SWILT
+C27A;C27A;1109 1171 11B5;C27A;1109 1171 11B5; # (쉺; 쉺; 쉺; 쉺; 쉺; ) HANGUL SYLLABLE SWILP
+C27B;C27B;1109 1171 11B6;C27B;1109 1171 11B6; # (쉻; 쉻; 쉻; 쉻; 쉻; ) HANGUL SYLLABLE SWILH
+C27C;C27C;1109 1171 11B7;C27C;1109 1171 11B7; # (쉼; 쉼; 쉼; 쉼; 쉼; ) HANGUL SYLLABLE SWIM
+C27D;C27D;1109 1171 11B8;C27D;1109 1171 11B8; # (쉽; 쉽; 쉽; 쉽; 쉽; ) HANGUL SYLLABLE SWIB
+C27E;C27E;1109 1171 11B9;C27E;1109 1171 11B9; # (쉾; 쉾; 쉾; 쉾; 쉾; ) HANGUL SYLLABLE SWIBS
+C27F;C27F;1109 1171 11BA;C27F;1109 1171 11BA; # (쉿; 쉿; 쉿; 쉿; 쉿; ) HANGUL SYLLABLE SWIS
+C280;C280;1109 1171 11BB;C280;1109 1171 11BB; # (슀; 슀; 슀; 슀; 슀; ) HANGUL SYLLABLE SWISS
+C281;C281;1109 1171 11BC;C281;1109 1171 11BC; # (슁; 슁; 슁; 슁; 슁; ) HANGUL SYLLABLE SWING
+C282;C282;1109 1171 11BD;C282;1109 1171 11BD; # (슂; 슂; 슂; 슂; 슂; ) HANGUL SYLLABLE SWIJ
+C283;C283;1109 1171 11BE;C283;1109 1171 11BE; # (슃; 슃; 슃; 슃; 슃; ) HANGUL SYLLABLE SWIC
+C284;C284;1109 1171 11BF;C284;1109 1171 11BF; # (슄; 슄; 슄; 슄; 슄; ) HANGUL SYLLABLE SWIK
+C285;C285;1109 1171 11C0;C285;1109 1171 11C0; # (슅; 슅; 슅; 슅; 슅; ) HANGUL SYLLABLE SWIT
+C286;C286;1109 1171 11C1;C286;1109 1171 11C1; # (슆; 슆; 슆; 슆; 슆; ) HANGUL SYLLABLE SWIP
+C287;C287;1109 1171 11C2;C287;1109 1171 11C2; # (슇; 슇; 슇; 슇; 슇; ) HANGUL SYLLABLE SWIH
+C288;C288;1109 1172;C288;1109 1172; # (슈; 슈; 슈; 슈; 슈; ) HANGUL SYLLABLE SYU
+C289;C289;1109 1172 11A8;C289;1109 1172 11A8; # (슉; 슉; 슉; 슉; 슉; ) HANGUL SYLLABLE SYUG
+C28A;C28A;1109 1172 11A9;C28A;1109 1172 11A9; # (슊; 슊; 슊; 슊; 슊; ) HANGUL SYLLABLE SYUGG
+C28B;C28B;1109 1172 11AA;C28B;1109 1172 11AA; # (슋; 슋; 슋; 슋; 슋; ) HANGUL SYLLABLE SYUGS
+C28C;C28C;1109 1172 11AB;C28C;1109 1172 11AB; # (슌; 슌; 슌; 슌; 슌; ) HANGUL SYLLABLE SYUN
+C28D;C28D;1109 1172 11AC;C28D;1109 1172 11AC; # (슍; 슍; 슍; 슍; 슍; ) HANGUL SYLLABLE SYUNJ
+C28E;C28E;1109 1172 11AD;C28E;1109 1172 11AD; # (슎; 슎; 슎; 슎; 슎; ) HANGUL SYLLABLE SYUNH
+C28F;C28F;1109 1172 11AE;C28F;1109 1172 11AE; # (슏; 슏; 슏; 슏; 슏; ) HANGUL SYLLABLE SYUD
+C290;C290;1109 1172 11AF;C290;1109 1172 11AF; # (슐; 슐; 슐; 슐; 슐; ) HANGUL SYLLABLE SYUL
+C291;C291;1109 1172 11B0;C291;1109 1172 11B0; # (슑; 슑; 슑; 슑; 슑; ) HANGUL SYLLABLE SYULG
+C292;C292;1109 1172 11B1;C292;1109 1172 11B1; # (슒; 슒; 슒; 슒; 슒; ) HANGUL SYLLABLE SYULM
+C293;C293;1109 1172 11B2;C293;1109 1172 11B2; # (슓; 슓; 슓; 슓; 슓; ) HANGUL SYLLABLE SYULB
+C294;C294;1109 1172 11B3;C294;1109 1172 11B3; # (슔; 슔; 슔; 슔; 슔; ) HANGUL SYLLABLE SYULS
+C295;C295;1109 1172 11B4;C295;1109 1172 11B4; # (슕; 슕; 슕; 슕; 슕; ) HANGUL SYLLABLE SYULT
+C296;C296;1109 1172 11B5;C296;1109 1172 11B5; # (슖; 슖; 슖; 슖; 슖; ) HANGUL SYLLABLE SYULP
+C297;C297;1109 1172 11B6;C297;1109 1172 11B6; # (슗; 슗; 슗; 슗; 슗; ) HANGUL SYLLABLE SYULH
+C298;C298;1109 1172 11B7;C298;1109 1172 11B7; # (슘; 슘; 슘; 슘; 슘; ) HANGUL SYLLABLE SYUM
+C299;C299;1109 1172 11B8;C299;1109 1172 11B8; # (슙; 슙; 슙; 슙; 슙; ) HANGUL SYLLABLE SYUB
+C29A;C29A;1109 1172 11B9;C29A;1109 1172 11B9; # (슚; 슚; 슚; 슚; 슚; ) HANGUL SYLLABLE SYUBS
+C29B;C29B;1109 1172 11BA;C29B;1109 1172 11BA; # (슛; 슛; 슛; 슛; 슛; ) HANGUL SYLLABLE SYUS
+C29C;C29C;1109 1172 11BB;C29C;1109 1172 11BB; # (슜; 슜; 슜; 슜; 슜; ) HANGUL SYLLABLE SYUSS
+C29D;C29D;1109 1172 11BC;C29D;1109 1172 11BC; # (슝; 슝; 슝; 슝; 슝; ) HANGUL SYLLABLE SYUNG
+C29E;C29E;1109 1172 11BD;C29E;1109 1172 11BD; # (슞; 슞; 슞; 슞; 슞; ) HANGUL SYLLABLE SYUJ
+C29F;C29F;1109 1172 11BE;C29F;1109 1172 11BE; # (슟; 슟; 슟; 슟; 슟; ) HANGUL SYLLABLE SYUC
+C2A0;C2A0;1109 1172 11BF;C2A0;1109 1172 11BF; # (슠; 슠; 슠; 슠; 슠; ) HANGUL SYLLABLE SYUK
+C2A1;C2A1;1109 1172 11C0;C2A1;1109 1172 11C0; # (슡; 슡; 슡; 슡; 슡; ) HANGUL SYLLABLE SYUT
+C2A2;C2A2;1109 1172 11C1;C2A2;1109 1172 11C1; # (슢; 슢; 슢; 슢; 슢; ) HANGUL SYLLABLE SYUP
+C2A3;C2A3;1109 1172 11C2;C2A3;1109 1172 11C2; # (슣; 슣; 슣; 슣; 슣; ) HANGUL SYLLABLE SYUH
+C2A4;C2A4;1109 1173;C2A4;1109 1173; # (스; 스; 스; 스; 스; ) HANGUL SYLLABLE SEU
+C2A5;C2A5;1109 1173 11A8;C2A5;1109 1173 11A8; # (슥; 슥; 슥; 슥; 슥; ) HANGUL SYLLABLE SEUG
+C2A6;C2A6;1109 1173 11A9;C2A6;1109 1173 11A9; # (슦; 슦; 슦; 슦; 슦; ) HANGUL SYLLABLE SEUGG
+C2A7;C2A7;1109 1173 11AA;C2A7;1109 1173 11AA; # (슧; 슧; 슧; 슧; 슧; ) HANGUL SYLLABLE SEUGS
+C2A8;C2A8;1109 1173 11AB;C2A8;1109 1173 11AB; # (슨; 슨; 슨; 슨; 슨; ) HANGUL SYLLABLE SEUN
+C2A9;C2A9;1109 1173 11AC;C2A9;1109 1173 11AC; # (슩; 슩; 슩; 슩; 슩; ) HANGUL SYLLABLE SEUNJ
+C2AA;C2AA;1109 1173 11AD;C2AA;1109 1173 11AD; # (슪; 슪; 슪; 슪; 슪; ) HANGUL SYLLABLE SEUNH
+C2AB;C2AB;1109 1173 11AE;C2AB;1109 1173 11AE; # (슫; 슫; 슫; 슫; 슫; ) HANGUL SYLLABLE SEUD
+C2AC;C2AC;1109 1173 11AF;C2AC;1109 1173 11AF; # (슬; 슬; 슬; 슬; 슬; ) HANGUL SYLLABLE SEUL
+C2AD;C2AD;1109 1173 11B0;C2AD;1109 1173 11B0; # (슭; 슭; 슭; 슭; 슭; ) HANGUL SYLLABLE SEULG
+C2AE;C2AE;1109 1173 11B1;C2AE;1109 1173 11B1; # (슮; 슮; 슮; 슮; 슮; ) HANGUL SYLLABLE SEULM
+C2AF;C2AF;1109 1173 11B2;C2AF;1109 1173 11B2; # (슯; 슯; 슯; 슯; 슯; ) HANGUL SYLLABLE SEULB
+C2B0;C2B0;1109 1173 11B3;C2B0;1109 1173 11B3; # (슰; 슰; 슰; 슰; 슰; ) HANGUL SYLLABLE SEULS
+C2B1;C2B1;1109 1173 11B4;C2B1;1109 1173 11B4; # (슱; 슱; 슱; 슱; 슱; ) HANGUL SYLLABLE SEULT
+C2B2;C2B2;1109 1173 11B5;C2B2;1109 1173 11B5; # (슲; 슲; 슲; 슲; 슲; ) HANGUL SYLLABLE SEULP
+C2B3;C2B3;1109 1173 11B6;C2B3;1109 1173 11B6; # (슳; 슳; 슳; 슳; 슳; ) HANGUL SYLLABLE SEULH
+C2B4;C2B4;1109 1173 11B7;C2B4;1109 1173 11B7; # (슴; 슴; 슴; 슴; 슴; ) HANGUL SYLLABLE SEUM
+C2B5;C2B5;1109 1173 11B8;C2B5;1109 1173 11B8; # (습; 습; 습; 습; 습; ) HANGUL SYLLABLE SEUB
+C2B6;C2B6;1109 1173 11B9;C2B6;1109 1173 11B9; # (슶; 슶; 슶; 슶; 슶; ) HANGUL SYLLABLE SEUBS
+C2B7;C2B7;1109 1173 11BA;C2B7;1109 1173 11BA; # (슷; 슷; 슷; 슷; 슷; ) HANGUL SYLLABLE SEUS
+C2B8;C2B8;1109 1173 11BB;C2B8;1109 1173 11BB; # (슸; 슸; 슸; 슸; 슸; ) HANGUL SYLLABLE SEUSS
+C2B9;C2B9;1109 1173 11BC;C2B9;1109 1173 11BC; # (승; 승; 승; 승; 승; ) HANGUL SYLLABLE SEUNG
+C2BA;C2BA;1109 1173 11BD;C2BA;1109 1173 11BD; # (슺; 슺; 슺; 슺; 슺; ) HANGUL SYLLABLE SEUJ
+C2BB;C2BB;1109 1173 11BE;C2BB;1109 1173 11BE; # (슻; 슻; 슻; 슻; 슻; ) HANGUL SYLLABLE SEUC
+C2BC;C2BC;1109 1173 11BF;C2BC;1109 1173 11BF; # (슼; 슼; 슼; 슼; 슼; ) HANGUL SYLLABLE SEUK
+C2BD;C2BD;1109 1173 11C0;C2BD;1109 1173 11C0; # (슽; 슽; 슽; 슽; 슽; ) HANGUL SYLLABLE SEUT
+C2BE;C2BE;1109 1173 11C1;C2BE;1109 1173 11C1; # (슾; 슾; 슾; 슾; 슾; ) HANGUL SYLLABLE SEUP
+C2BF;C2BF;1109 1173 11C2;C2BF;1109 1173 11C2; # (슿; 슿; 슿; 슿; 슿; ) HANGUL SYLLABLE SEUH
+C2C0;C2C0;1109 1174;C2C0;1109 1174; # (싀; 싀; 싀; 싀; 싀; ) HANGUL SYLLABLE SYI
+C2C1;C2C1;1109 1174 11A8;C2C1;1109 1174 11A8; # (싁; 싁; 싁; 싁; 싁; ) HANGUL SYLLABLE SYIG
+C2C2;C2C2;1109 1174 11A9;C2C2;1109 1174 11A9; # (싂; 싂; 싂; 싂; 싂; ) HANGUL SYLLABLE SYIGG
+C2C3;C2C3;1109 1174 11AA;C2C3;1109 1174 11AA; # (싃; 싃; 싃; 싃; 싃; ) HANGUL SYLLABLE SYIGS
+C2C4;C2C4;1109 1174 11AB;C2C4;1109 1174 11AB; # (싄; 싄; 싄; 싄; 싄; ) HANGUL SYLLABLE SYIN
+C2C5;C2C5;1109 1174 11AC;C2C5;1109 1174 11AC; # (싅; 싅; 싅; 싅; 싅; ) HANGUL SYLLABLE SYINJ
+C2C6;C2C6;1109 1174 11AD;C2C6;1109 1174 11AD; # (싆; 싆; 싆; 싆; 싆; ) HANGUL SYLLABLE SYINH
+C2C7;C2C7;1109 1174 11AE;C2C7;1109 1174 11AE; # (싇; 싇; 싇; 싇; 싇; ) HANGUL SYLLABLE SYID
+C2C8;C2C8;1109 1174 11AF;C2C8;1109 1174 11AF; # (싈; 싈; 싈; 싈; 싈; ) HANGUL SYLLABLE SYIL
+C2C9;C2C9;1109 1174 11B0;C2C9;1109 1174 11B0; # (싉; 싉; 싉; 싉; 싉; ) HANGUL SYLLABLE SYILG
+C2CA;C2CA;1109 1174 11B1;C2CA;1109 1174 11B1; # (싊; 싊; 싊; 싊; 싊; ) HANGUL SYLLABLE SYILM
+C2CB;C2CB;1109 1174 11B2;C2CB;1109 1174 11B2; # (싋; 싋; 싋; 싋; 싋; ) HANGUL SYLLABLE SYILB
+C2CC;C2CC;1109 1174 11B3;C2CC;1109 1174 11B3; # (싌; 싌; 싌; 싌; 싌; ) HANGUL SYLLABLE SYILS
+C2CD;C2CD;1109 1174 11B4;C2CD;1109 1174 11B4; # (싍; 싍; 싍; 싍; 싍; ) HANGUL SYLLABLE SYILT
+C2CE;C2CE;1109 1174 11B5;C2CE;1109 1174 11B5; # (싎; 싎; 싎; 싎; 싎; ) HANGUL SYLLABLE SYILP
+C2CF;C2CF;1109 1174 11B6;C2CF;1109 1174 11B6; # (싏; 싏; 싏; 싏; 싏; ) HANGUL SYLLABLE SYILH
+C2D0;C2D0;1109 1174 11B7;C2D0;1109 1174 11B7; # (싐; 싐; 싐; 싐; 싐; ) HANGUL SYLLABLE SYIM
+C2D1;C2D1;1109 1174 11B8;C2D1;1109 1174 11B8; # (싑; 싑; 싑; 싑; 싑; ) HANGUL SYLLABLE SYIB
+C2D2;C2D2;1109 1174 11B9;C2D2;1109 1174 11B9; # (싒; 싒; 싒; 싒; 싒; ) HANGUL SYLLABLE SYIBS
+C2D3;C2D3;1109 1174 11BA;C2D3;1109 1174 11BA; # (싓; 싓; 싓; 싓; 싓; ) HANGUL SYLLABLE SYIS
+C2D4;C2D4;1109 1174 11BB;C2D4;1109 1174 11BB; # (싔; 싔; 싔; 싔; 싔; ) HANGUL SYLLABLE SYISS
+C2D5;C2D5;1109 1174 11BC;C2D5;1109 1174 11BC; # (싕; 싕; 싕; 싕; 싕; ) HANGUL SYLLABLE SYING
+C2D6;C2D6;1109 1174 11BD;C2D6;1109 1174 11BD; # (싖; 싖; 싖; 싖; 싖; ) HANGUL SYLLABLE SYIJ
+C2D7;C2D7;1109 1174 11BE;C2D7;1109 1174 11BE; # (싗; 싗; 싗; 싗; 싗; ) HANGUL SYLLABLE SYIC
+C2D8;C2D8;1109 1174 11BF;C2D8;1109 1174 11BF; # (싘; 싘; 싘; 싘; 싘; ) HANGUL SYLLABLE SYIK
+C2D9;C2D9;1109 1174 11C0;C2D9;1109 1174 11C0; # (싙; 싙; 싙; 싙; 싙; ) HANGUL SYLLABLE SYIT
+C2DA;C2DA;1109 1174 11C1;C2DA;1109 1174 11C1; # (싚; 싚; 싚; 싚; 싚; ) HANGUL SYLLABLE SYIP
+C2DB;C2DB;1109 1174 11C2;C2DB;1109 1174 11C2; # (싛; 싛; 싛; 싛; 싛; ) HANGUL SYLLABLE SYIH
+C2DC;C2DC;1109 1175;C2DC;1109 1175; # (시; 시; 시; 시; 시; ) HANGUL SYLLABLE SI
+C2DD;C2DD;1109 1175 11A8;C2DD;1109 1175 11A8; # (식; 식; 식; 식; 식; ) HANGUL SYLLABLE SIG
+C2DE;C2DE;1109 1175 11A9;C2DE;1109 1175 11A9; # (싞; 싞; 싞; 싞; 싞; ) HANGUL SYLLABLE SIGG
+C2DF;C2DF;1109 1175 11AA;C2DF;1109 1175 11AA; # (싟; 싟; 싟; 싟; 싟; ) HANGUL SYLLABLE SIGS
+C2E0;C2E0;1109 1175 11AB;C2E0;1109 1175 11AB; # (신; 신; 신; 신; 신; ) HANGUL SYLLABLE SIN
+C2E1;C2E1;1109 1175 11AC;C2E1;1109 1175 11AC; # (싡; 싡; 싡; 싡; 싡; ) HANGUL SYLLABLE SINJ
+C2E2;C2E2;1109 1175 11AD;C2E2;1109 1175 11AD; # (싢; 싢; 싢; 싢; 싢; ) HANGUL SYLLABLE SINH
+C2E3;C2E3;1109 1175 11AE;C2E3;1109 1175 11AE; # (싣; 싣; 싣; 싣; 싣; ) HANGUL SYLLABLE SID
+C2E4;C2E4;1109 1175 11AF;C2E4;1109 1175 11AF; # (실; 실; 실; 실; 실; ) HANGUL SYLLABLE SIL
+C2E5;C2E5;1109 1175 11B0;C2E5;1109 1175 11B0; # (싥; 싥; 싥; 싥; 싥; ) HANGUL SYLLABLE SILG
+C2E6;C2E6;1109 1175 11B1;C2E6;1109 1175 11B1; # (싦; 싦; 싦; 싦; 싦; ) HANGUL SYLLABLE SILM
+C2E7;C2E7;1109 1175 11B2;C2E7;1109 1175 11B2; # (싧; 싧; 싧; 싧; 싧; ) HANGUL SYLLABLE SILB
+C2E8;C2E8;1109 1175 11B3;C2E8;1109 1175 11B3; # (싨; 싨; 싨; 싨; 싨; ) HANGUL SYLLABLE SILS
+C2E9;C2E9;1109 1175 11B4;C2E9;1109 1175 11B4; # (싩; 싩; 싩; 싩; 싩; ) HANGUL SYLLABLE SILT
+C2EA;C2EA;1109 1175 11B5;C2EA;1109 1175 11B5; # (싪; 싪; 싪; 싪; 싪; ) HANGUL SYLLABLE SILP
+C2EB;C2EB;1109 1175 11B6;C2EB;1109 1175 11B6; # (싫; 싫; 싫; 싫; 싫; ) HANGUL SYLLABLE SILH
+C2EC;C2EC;1109 1175 11B7;C2EC;1109 1175 11B7; # (심; 심; 심; 심; 심; ) HANGUL SYLLABLE SIM
+C2ED;C2ED;1109 1175 11B8;C2ED;1109 1175 11B8; # (십; 십; 십; 십; 십; ) HANGUL SYLLABLE SIB
+C2EE;C2EE;1109 1175 11B9;C2EE;1109 1175 11B9; # (싮; 싮; 싮; 싮; 싮; ) HANGUL SYLLABLE SIBS
+C2EF;C2EF;1109 1175 11BA;C2EF;1109 1175 11BA; # (싯; 싯; 싯; 싯; 싯; ) HANGUL SYLLABLE SIS
+C2F0;C2F0;1109 1175 11BB;C2F0;1109 1175 11BB; # (싰; 싰; 싰; 싰; 싰; ) HANGUL SYLLABLE SISS
+C2F1;C2F1;1109 1175 11BC;C2F1;1109 1175 11BC; # (싱; 싱; 싱; 싱; 싱; ) HANGUL SYLLABLE SING
+C2F2;C2F2;1109 1175 11BD;C2F2;1109 1175 11BD; # (싲; 싲; 싲; 싲; 싲; ) HANGUL SYLLABLE SIJ
+C2F3;C2F3;1109 1175 11BE;C2F3;1109 1175 11BE; # (싳; 싳; 싳; 싳; 싳; ) HANGUL SYLLABLE SIC
+C2F4;C2F4;1109 1175 11BF;C2F4;1109 1175 11BF; # (싴; 싴; 싴; 싴; 싴; ) HANGUL SYLLABLE SIK
+C2F5;C2F5;1109 1175 11C0;C2F5;1109 1175 11C0; # (싵; 싵; 싵; 싵; 싵; ) HANGUL SYLLABLE SIT
+C2F6;C2F6;1109 1175 11C1;C2F6;1109 1175 11C1; # (싶; 싶; 싶; 싶; 싶; ) HANGUL SYLLABLE SIP
+C2F7;C2F7;1109 1175 11C2;C2F7;1109 1175 11C2; # (싷; 싷; 싷; 싷; 싷; ) HANGUL SYLLABLE SIH
+C2F8;C2F8;110A 1161;C2F8;110A 1161; # (싸; 싸; 싸; 싸; 싸; ) HANGUL SYLLABLE SSA
+C2F9;C2F9;110A 1161 11A8;C2F9;110A 1161 11A8; # (싹; 싹; 싹; 싹; 싹; ) HANGUL SYLLABLE SSAG
+C2FA;C2FA;110A 1161 11A9;C2FA;110A 1161 11A9; # (싺; 싺; 싺; 싺; 싺; ) HANGUL SYLLABLE SSAGG
+C2FB;C2FB;110A 1161 11AA;C2FB;110A 1161 11AA; # (싻; 싻; 싻; 싻; 싻; ) HANGUL SYLLABLE SSAGS
+C2FC;C2FC;110A 1161 11AB;C2FC;110A 1161 11AB; # (싼; 싼; 싼; 싼; 싼; ) HANGUL SYLLABLE SSAN
+C2FD;C2FD;110A 1161 11AC;C2FD;110A 1161 11AC; # (싽; 싽; 싽; 싽; 싽; ) HANGUL SYLLABLE SSANJ
+C2FE;C2FE;110A 1161 11AD;C2FE;110A 1161 11AD; # (싾; 싾; 싾; 싾; 싾; ) HANGUL SYLLABLE SSANH
+C2FF;C2FF;110A 1161 11AE;C2FF;110A 1161 11AE; # (싿; 싿; 싿; 싿; 싿; ) HANGUL SYLLABLE SSAD
+C300;C300;110A 1161 11AF;C300;110A 1161 11AF; # (쌀; 쌀; 쌀; 쌀; 쌀; ) HANGUL SYLLABLE SSAL
+C301;C301;110A 1161 11B0;C301;110A 1161 11B0; # (쌁; 쌁; 쌁; 쌁; 쌁; ) HANGUL SYLLABLE SSALG
+C302;C302;110A 1161 11B1;C302;110A 1161 11B1; # (쌂; 쌂; 쌂; 쌂; 쌂; ) HANGUL SYLLABLE SSALM
+C303;C303;110A 1161 11B2;C303;110A 1161 11B2; # (쌃; 쌃; 쌃; 쌃; 쌃; ) HANGUL SYLLABLE SSALB
+C304;C304;110A 1161 11B3;C304;110A 1161 11B3; # (쌄; 쌄; 쌄; 쌄; 쌄; ) HANGUL SYLLABLE SSALS
+C305;C305;110A 1161 11B4;C305;110A 1161 11B4; # (쌅; 쌅; 쌅; 쌅; 쌅; ) HANGUL SYLLABLE SSALT
+C306;C306;110A 1161 11B5;C306;110A 1161 11B5; # (쌆; 쌆; 쌆; 쌆; 쌆; ) HANGUL SYLLABLE SSALP
+C307;C307;110A 1161 11B6;C307;110A 1161 11B6; # (쌇; 쌇; 쌇; 쌇; 쌇; ) HANGUL SYLLABLE SSALH
+C308;C308;110A 1161 11B7;C308;110A 1161 11B7; # (쌈; 쌈; 쌈; 쌈; 쌈; ) HANGUL SYLLABLE SSAM
+C309;C309;110A 1161 11B8;C309;110A 1161 11B8; # (쌉; 쌉; 쌉; 쌉; 쌉; ) HANGUL SYLLABLE SSAB
+C30A;C30A;110A 1161 11B9;C30A;110A 1161 11B9; # (쌊; 쌊; 쌊; 쌊; 쌊; ) HANGUL SYLLABLE SSABS
+C30B;C30B;110A 1161 11BA;C30B;110A 1161 11BA; # (쌋; 쌋; 쌋; 쌋; 쌋; ) HANGUL SYLLABLE SSAS
+C30C;C30C;110A 1161 11BB;C30C;110A 1161 11BB; # (쌌; 쌌; 쌌; 쌌; 쌌; ) HANGUL SYLLABLE SSASS
+C30D;C30D;110A 1161 11BC;C30D;110A 1161 11BC; # (쌍; 쌍; 쌍; 쌍; 쌍; ) HANGUL SYLLABLE SSANG
+C30E;C30E;110A 1161 11BD;C30E;110A 1161 11BD; # (쌎; 쌎; 쌎; 쌎; 쌎; ) HANGUL SYLLABLE SSAJ
+C30F;C30F;110A 1161 11BE;C30F;110A 1161 11BE; # (쌏; 쌏; 쌏; 쌏; 쌏; ) HANGUL SYLLABLE SSAC
+C310;C310;110A 1161 11BF;C310;110A 1161 11BF; # (쌐; 쌐; 쌐; 쌐; 쌐; ) HANGUL SYLLABLE SSAK
+C311;C311;110A 1161 11C0;C311;110A 1161 11C0; # (쌑; 쌑; 쌑; 쌑; 쌑; ) HANGUL SYLLABLE SSAT
+C312;C312;110A 1161 11C1;C312;110A 1161 11C1; # (쌒; 쌒; 쌒; 쌒; 쌒; ) HANGUL SYLLABLE SSAP
+C313;C313;110A 1161 11C2;C313;110A 1161 11C2; # (쌓; 쌓; 쌓; 쌓; 쌓; ) HANGUL SYLLABLE SSAH
+C314;C314;110A 1162;C314;110A 1162; # (쌔; 쌔; 쌔; 쌔; 쌔; ) HANGUL SYLLABLE SSAE
+C315;C315;110A 1162 11A8;C315;110A 1162 11A8; # (쌕; 쌕; 쌕; 쌕; 쌕; ) HANGUL SYLLABLE SSAEG
+C316;C316;110A 1162 11A9;C316;110A 1162 11A9; # (쌖; 쌖; 쌖; 쌖; 쌖; ) HANGUL SYLLABLE SSAEGG
+C317;C317;110A 1162 11AA;C317;110A 1162 11AA; # (쌗; 쌗; 쌗; 쌗; 쌗; ) HANGUL SYLLABLE SSAEGS
+C318;C318;110A 1162 11AB;C318;110A 1162 11AB; # (쌘; 쌘; 쌘; 쌘; 쌘; ) HANGUL SYLLABLE SSAEN
+C319;C319;110A 1162 11AC;C319;110A 1162 11AC; # (쌙; 쌙; 쌙; 쌙; 쌙; ) HANGUL SYLLABLE SSAENJ
+C31A;C31A;110A 1162 11AD;C31A;110A 1162 11AD; # (쌚; 쌚; 쌚; 쌚; 쌚; ) HANGUL SYLLABLE SSAENH
+C31B;C31B;110A 1162 11AE;C31B;110A 1162 11AE; # (쌛; 쌛; 쌛; 쌛; 쌛; ) HANGUL SYLLABLE SSAED
+C31C;C31C;110A 1162 11AF;C31C;110A 1162 11AF; # (쌜; 쌜; 쌜; 쌜; 쌜; ) HANGUL SYLLABLE SSAEL
+C31D;C31D;110A 1162 11B0;C31D;110A 1162 11B0; # (쌝; 쌝; 쌝; 쌝; 쌝; ) HANGUL SYLLABLE SSAELG
+C31E;C31E;110A 1162 11B1;C31E;110A 1162 11B1; # (쌞; 쌞; 쌞; 쌞; 쌞; ) HANGUL SYLLABLE SSAELM
+C31F;C31F;110A 1162 11B2;C31F;110A 1162 11B2; # (쌟; 쌟; 쌟; 쌟; 쌟; ) HANGUL SYLLABLE SSAELB
+C320;C320;110A 1162 11B3;C320;110A 1162 11B3; # (쌠; 쌠; 쌠; 쌠; 쌠; ) HANGUL SYLLABLE SSAELS
+C321;C321;110A 1162 11B4;C321;110A 1162 11B4; # (쌡; 쌡; 쌡; 쌡; 쌡; ) HANGUL SYLLABLE SSAELT
+C322;C322;110A 1162 11B5;C322;110A 1162 11B5; # (쌢; 쌢; 쌢; 쌢; 쌢; ) HANGUL SYLLABLE SSAELP
+C323;C323;110A 1162 11B6;C323;110A 1162 11B6; # (쌣; 쌣; 쌣; 쌣; 쌣; ) HANGUL SYLLABLE SSAELH
+C324;C324;110A 1162 11B7;C324;110A 1162 11B7; # (쌤; 쌤; 쌤; 쌤; 쌤; ) HANGUL SYLLABLE SSAEM
+C325;C325;110A 1162 11B8;C325;110A 1162 11B8; # (쌥; 쌥; 쌥; 쌥; 쌥; ) HANGUL SYLLABLE SSAEB
+C326;C326;110A 1162 11B9;C326;110A 1162 11B9; # (쌦; 쌦; 쌦; 쌦; 쌦; ) HANGUL SYLLABLE SSAEBS
+C327;C327;110A 1162 11BA;C327;110A 1162 11BA; # (쌧; 쌧; 쌧; 쌧; 쌧; ) HANGUL SYLLABLE SSAES
+C328;C328;110A 1162 11BB;C328;110A 1162 11BB; # (쌨; 쌨; 쌨; 쌨; 쌨; ) HANGUL SYLLABLE SSAESS
+C329;C329;110A 1162 11BC;C329;110A 1162 11BC; # (쌩; 쌩; 쌩; 쌩; 쌩; ) HANGUL SYLLABLE SSAENG
+C32A;C32A;110A 1162 11BD;C32A;110A 1162 11BD; # (쌪; 쌪; 쌪; 쌪; 쌪; ) HANGUL SYLLABLE SSAEJ
+C32B;C32B;110A 1162 11BE;C32B;110A 1162 11BE; # (쌫; 쌫; 쌫; 쌫; 쌫; ) HANGUL SYLLABLE SSAEC
+C32C;C32C;110A 1162 11BF;C32C;110A 1162 11BF; # (쌬; 쌬; 쌬; 쌬; 쌬; ) HANGUL SYLLABLE SSAEK
+C32D;C32D;110A 1162 11C0;C32D;110A 1162 11C0; # (쌭; 쌭; 쌭; 쌭; 쌭; ) HANGUL SYLLABLE SSAET
+C32E;C32E;110A 1162 11C1;C32E;110A 1162 11C1; # (쌮; 쌮; 쌮; 쌮; 쌮; ) HANGUL SYLLABLE SSAEP
+C32F;C32F;110A 1162 11C2;C32F;110A 1162 11C2; # (쌯; 쌯; 쌯; 쌯; 쌯; ) HANGUL SYLLABLE SSAEH
+C330;C330;110A 1163;C330;110A 1163; # (쌰; 쌰; 쌰; 쌰; 쌰; ) HANGUL SYLLABLE SSYA
+C331;C331;110A 1163 11A8;C331;110A 1163 11A8; # (쌱; 쌱; 쌱; 쌱; 쌱; ) HANGUL SYLLABLE SSYAG
+C332;C332;110A 1163 11A9;C332;110A 1163 11A9; # (쌲; 쌲; 쌲; 쌲; 쌲; ) HANGUL SYLLABLE SSYAGG
+C333;C333;110A 1163 11AA;C333;110A 1163 11AA; # (쌳; 쌳; 쌳; 쌳; 쌳; ) HANGUL SYLLABLE SSYAGS
+C334;C334;110A 1163 11AB;C334;110A 1163 11AB; # (쌴; 쌴; 쌴; 쌴; 쌴; ) HANGUL SYLLABLE SSYAN
+C335;C335;110A 1163 11AC;C335;110A 1163 11AC; # (쌵; 쌵; 쌵; 쌵; 쌵; ) HANGUL SYLLABLE SSYANJ
+C336;C336;110A 1163 11AD;C336;110A 1163 11AD; # (쌶; 쌶; 쌶; 쌶; 쌶; ) HANGUL SYLLABLE SSYANH
+C337;C337;110A 1163 11AE;C337;110A 1163 11AE; # (쌷; 쌷; 쌷; 쌷; 쌷; ) HANGUL SYLLABLE SSYAD
+C338;C338;110A 1163 11AF;C338;110A 1163 11AF; # (쌸; 쌸; 쌸; 쌸; 쌸; ) HANGUL SYLLABLE SSYAL
+C339;C339;110A 1163 11B0;C339;110A 1163 11B0; # (쌹; 쌹; 쌹; 쌹; 쌹; ) HANGUL SYLLABLE SSYALG
+C33A;C33A;110A 1163 11B1;C33A;110A 1163 11B1; # (쌺; 쌺; 쌺; 쌺; 쌺; ) HANGUL SYLLABLE SSYALM
+C33B;C33B;110A 1163 11B2;C33B;110A 1163 11B2; # (쌻; 쌻; 쌻; 쌻; 쌻; ) HANGUL SYLLABLE SSYALB
+C33C;C33C;110A 1163 11B3;C33C;110A 1163 11B3; # (쌼; 쌼; 쌼; 쌼; 쌼; ) HANGUL SYLLABLE SSYALS
+C33D;C33D;110A 1163 11B4;C33D;110A 1163 11B4; # (쌽; 쌽; 쌽; 쌽; 쌽; ) HANGUL SYLLABLE SSYALT
+C33E;C33E;110A 1163 11B5;C33E;110A 1163 11B5; # (쌾; 쌾; 쌾; 쌾; 쌾; ) HANGUL SYLLABLE SSYALP
+C33F;C33F;110A 1163 11B6;C33F;110A 1163 11B6; # (쌿; 쌿; 쌿; 쌿; 쌿; ) HANGUL SYLLABLE SSYALH
+C340;C340;110A 1163 11B7;C340;110A 1163 11B7; # (썀; 썀; 썀; 썀; 썀; ) HANGUL SYLLABLE SSYAM
+C341;C341;110A 1163 11B8;C341;110A 1163 11B8; # (썁; 썁; 썁; 썁; 썁; ) HANGUL SYLLABLE SSYAB
+C342;C342;110A 1163 11B9;C342;110A 1163 11B9; # (썂; 썂; 썂; 썂; 썂; ) HANGUL SYLLABLE SSYABS
+C343;C343;110A 1163 11BA;C343;110A 1163 11BA; # (썃; 썃; 썃; 썃; 썃; ) HANGUL SYLLABLE SSYAS
+C344;C344;110A 1163 11BB;C344;110A 1163 11BB; # (썄; 썄; 썄; 썄; 썄; ) HANGUL SYLLABLE SSYASS
+C345;C345;110A 1163 11BC;C345;110A 1163 11BC; # (썅; 썅; 썅; 썅; 썅; ) HANGUL SYLLABLE SSYANG
+C346;C346;110A 1163 11BD;C346;110A 1163 11BD; # (썆; 썆; 썆; 썆; 썆; ) HANGUL SYLLABLE SSYAJ
+C347;C347;110A 1163 11BE;C347;110A 1163 11BE; # (썇; 썇; 썇; 썇; 썇; ) HANGUL SYLLABLE SSYAC
+C348;C348;110A 1163 11BF;C348;110A 1163 11BF; # (썈; 썈; 썈; 썈; 썈; ) HANGUL SYLLABLE SSYAK
+C349;C349;110A 1163 11C0;C349;110A 1163 11C0; # (썉; 썉; 썉; 썉; 썉; ) HANGUL SYLLABLE SSYAT
+C34A;C34A;110A 1163 11C1;C34A;110A 1163 11C1; # (썊; 썊; 썊; 썊; 썊; ) HANGUL SYLLABLE SSYAP
+C34B;C34B;110A 1163 11C2;C34B;110A 1163 11C2; # (썋; 썋; 썋; 썋; 썋; ) HANGUL SYLLABLE SSYAH
+C34C;C34C;110A 1164;C34C;110A 1164; # (썌; 썌; 썌; 썌; 썌; ) HANGUL SYLLABLE SSYAE
+C34D;C34D;110A 1164 11A8;C34D;110A 1164 11A8; # (썍; 썍; 썍; 썍; 썍; ) HANGUL SYLLABLE SSYAEG
+C34E;C34E;110A 1164 11A9;C34E;110A 1164 11A9; # (썎; 썎; 썎; 썎; 썎; ) HANGUL SYLLABLE SSYAEGG
+C34F;C34F;110A 1164 11AA;C34F;110A 1164 11AA; # (썏; 썏; 썏; 썏; 썏; ) HANGUL SYLLABLE SSYAEGS
+C350;C350;110A 1164 11AB;C350;110A 1164 11AB; # (썐; 썐; 썐; 썐; 썐; ) HANGUL SYLLABLE SSYAEN
+C351;C351;110A 1164 11AC;C351;110A 1164 11AC; # (썑; 썑; 썑; 썑; 썑; ) HANGUL SYLLABLE SSYAENJ
+C352;C352;110A 1164 11AD;C352;110A 1164 11AD; # (썒; 썒; 썒; 썒; 썒; ) HANGUL SYLLABLE SSYAENH
+C353;C353;110A 1164 11AE;C353;110A 1164 11AE; # (썓; 썓; 썓; 썓; 썓; ) HANGUL SYLLABLE SSYAED
+C354;C354;110A 1164 11AF;C354;110A 1164 11AF; # (썔; 썔; 썔; 썔; 썔; ) HANGUL SYLLABLE SSYAEL
+C355;C355;110A 1164 11B0;C355;110A 1164 11B0; # (썕; 썕; 썕; 썕; 썕; ) HANGUL SYLLABLE SSYAELG
+C356;C356;110A 1164 11B1;C356;110A 1164 11B1; # (썖; 썖; 썖; 썖; 썖; ) HANGUL SYLLABLE SSYAELM
+C357;C357;110A 1164 11B2;C357;110A 1164 11B2; # (썗; 썗; 썗; 썗; 썗; ) HANGUL SYLLABLE SSYAELB
+C358;C358;110A 1164 11B3;C358;110A 1164 11B3; # (썘; 썘; 썘; 썘; 썘; ) HANGUL SYLLABLE SSYAELS
+C359;C359;110A 1164 11B4;C359;110A 1164 11B4; # (썙; 썙; 썙; 썙; 썙; ) HANGUL SYLLABLE SSYAELT
+C35A;C35A;110A 1164 11B5;C35A;110A 1164 11B5; # (썚; 썚; 썚; 썚; 썚; ) HANGUL SYLLABLE SSYAELP
+C35B;C35B;110A 1164 11B6;C35B;110A 1164 11B6; # (썛; 썛; 썛; 썛; 썛; ) HANGUL SYLLABLE SSYAELH
+C35C;C35C;110A 1164 11B7;C35C;110A 1164 11B7; # (썜; 썜; 썜; 썜; 썜; ) HANGUL SYLLABLE SSYAEM
+C35D;C35D;110A 1164 11B8;C35D;110A 1164 11B8; # (썝; 썝; 썝; 썝; 썝; ) HANGUL SYLLABLE SSYAEB
+C35E;C35E;110A 1164 11B9;C35E;110A 1164 11B9; # (썞; 썞; 썞; 썞; 썞; ) HANGUL SYLLABLE SSYAEBS
+C35F;C35F;110A 1164 11BA;C35F;110A 1164 11BA; # (썟; 썟; 썟; 썟; 썟; ) HANGUL SYLLABLE SSYAES
+C360;C360;110A 1164 11BB;C360;110A 1164 11BB; # (썠; 썠; 썠; 썠; 썠; ) HANGUL SYLLABLE SSYAESS
+C361;C361;110A 1164 11BC;C361;110A 1164 11BC; # (썡; 썡; 썡; 썡; 썡; ) HANGUL SYLLABLE SSYAENG
+C362;C362;110A 1164 11BD;C362;110A 1164 11BD; # (썢; 썢; 썢; 썢; 썢; ) HANGUL SYLLABLE SSYAEJ
+C363;C363;110A 1164 11BE;C363;110A 1164 11BE; # (썣; 썣; 썣; 썣; 썣; ) HANGUL SYLLABLE SSYAEC
+C364;C364;110A 1164 11BF;C364;110A 1164 11BF; # (썤; 썤; 썤; 썤; 썤; ) HANGUL SYLLABLE SSYAEK
+C365;C365;110A 1164 11C0;C365;110A 1164 11C0; # (썥; 썥; 썥; 썥; 썥; ) HANGUL SYLLABLE SSYAET
+C366;C366;110A 1164 11C1;C366;110A 1164 11C1; # (썦; 썦; 썦; 썦; 썦; ) HANGUL SYLLABLE SSYAEP
+C367;C367;110A 1164 11C2;C367;110A 1164 11C2; # (썧; 썧; 썧; 썧; 썧; ) HANGUL SYLLABLE SSYAEH
+C368;C368;110A 1165;C368;110A 1165; # (써; 써; 써; 써; 써; ) HANGUL SYLLABLE SSEO
+C369;C369;110A 1165 11A8;C369;110A 1165 11A8; # (썩; 썩; 썩; 썩; 썩; ) HANGUL SYLLABLE SSEOG
+C36A;C36A;110A 1165 11A9;C36A;110A 1165 11A9; # (썪; 썪; 썪; 썪; 썪; ) HANGUL SYLLABLE SSEOGG
+C36B;C36B;110A 1165 11AA;C36B;110A 1165 11AA; # (썫; 썫; 썫; 썫; 썫; ) HANGUL SYLLABLE SSEOGS
+C36C;C36C;110A 1165 11AB;C36C;110A 1165 11AB; # (썬; 썬; 썬; 썬; 썬; ) HANGUL SYLLABLE SSEON
+C36D;C36D;110A 1165 11AC;C36D;110A 1165 11AC; # (썭; 썭; 썭; 썭; 썭; ) HANGUL SYLLABLE SSEONJ
+C36E;C36E;110A 1165 11AD;C36E;110A 1165 11AD; # (썮; 썮; 썮; 썮; 썮; ) HANGUL SYLLABLE SSEONH
+C36F;C36F;110A 1165 11AE;C36F;110A 1165 11AE; # (썯; 썯; 썯; 썯; 썯; ) HANGUL SYLLABLE SSEOD
+C370;C370;110A 1165 11AF;C370;110A 1165 11AF; # (썰; 썰; 썰; 썰; 썰; ) HANGUL SYLLABLE SSEOL
+C371;C371;110A 1165 11B0;C371;110A 1165 11B0; # (썱; 썱; 썱; 썱; 썱; ) HANGUL SYLLABLE SSEOLG
+C372;C372;110A 1165 11B1;C372;110A 1165 11B1; # (썲; 썲; 썲; 썲; 썲; ) HANGUL SYLLABLE SSEOLM
+C373;C373;110A 1165 11B2;C373;110A 1165 11B2; # (썳; 썳; 썳; 썳; 썳; ) HANGUL SYLLABLE SSEOLB
+C374;C374;110A 1165 11B3;C374;110A 1165 11B3; # (썴; 썴; 썴; 썴; 썴; ) HANGUL SYLLABLE SSEOLS
+C375;C375;110A 1165 11B4;C375;110A 1165 11B4; # (썵; 썵; 썵; 썵; 썵; ) HANGUL SYLLABLE SSEOLT
+C376;C376;110A 1165 11B5;C376;110A 1165 11B5; # (썶; 썶; 썶; 썶; 썶; ) HANGUL SYLLABLE SSEOLP
+C377;C377;110A 1165 11B6;C377;110A 1165 11B6; # (썷; 썷; 썷; 썷; 썷; ) HANGUL SYLLABLE SSEOLH
+C378;C378;110A 1165 11B7;C378;110A 1165 11B7; # (썸; 썸; 썸; 썸; 썸; ) HANGUL SYLLABLE SSEOM
+C379;C379;110A 1165 11B8;C379;110A 1165 11B8; # (썹; 썹; 썹; 썹; 썹; ) HANGUL SYLLABLE SSEOB
+C37A;C37A;110A 1165 11B9;C37A;110A 1165 11B9; # (썺; 썺; 썺; 썺; 썺; ) HANGUL SYLLABLE SSEOBS
+C37B;C37B;110A 1165 11BA;C37B;110A 1165 11BA; # (썻; 썻; 썻; 썻; 썻; ) HANGUL SYLLABLE SSEOS
+C37C;C37C;110A 1165 11BB;C37C;110A 1165 11BB; # (썼; 썼; 썼; 썼; 썼; ) HANGUL SYLLABLE SSEOSS
+C37D;C37D;110A 1165 11BC;C37D;110A 1165 11BC; # (썽; 썽; 썽; 썽; 썽; ) HANGUL SYLLABLE SSEONG
+C37E;C37E;110A 1165 11BD;C37E;110A 1165 11BD; # (썾; 썾; 썾; 썾; 썾; ) HANGUL SYLLABLE SSEOJ
+C37F;C37F;110A 1165 11BE;C37F;110A 1165 11BE; # (썿; 썿; 썿; 썿; 썿; ) HANGUL SYLLABLE SSEOC
+C380;C380;110A 1165 11BF;C380;110A 1165 11BF; # (쎀; 쎀; 쎀; 쎀; 쎀; ) HANGUL SYLLABLE SSEOK
+C381;C381;110A 1165 11C0;C381;110A 1165 11C0; # (쎁; 쎁; 쎁; 쎁; 쎁; ) HANGUL SYLLABLE SSEOT
+C382;C382;110A 1165 11C1;C382;110A 1165 11C1; # (쎂; 쎂; 쎂; 쎂; 쎂; ) HANGUL SYLLABLE SSEOP
+C383;C383;110A 1165 11C2;C383;110A 1165 11C2; # (쎃; 쎃; 쎃; 쎃; 쎃; ) HANGUL SYLLABLE SSEOH
+C384;C384;110A 1166;C384;110A 1166; # (쎄; 쎄; 쎄; 쎄; 쎄; ) HANGUL SYLLABLE SSE
+C385;C385;110A 1166 11A8;C385;110A 1166 11A8; # (쎅; 쎅; 쎅; 쎅; 쎅; ) HANGUL SYLLABLE SSEG
+C386;C386;110A 1166 11A9;C386;110A 1166 11A9; # (쎆; 쎆; 쎆; 쎆; 쎆; ) HANGUL SYLLABLE SSEGG
+C387;C387;110A 1166 11AA;C387;110A 1166 11AA; # (쎇; 쎇; 쎇; 쎇; 쎇; ) HANGUL SYLLABLE SSEGS
+C388;C388;110A 1166 11AB;C388;110A 1166 11AB; # (쎈; 쎈; 쎈; 쎈; 쎈; ) HANGUL SYLLABLE SSEN
+C389;C389;110A 1166 11AC;C389;110A 1166 11AC; # (쎉; 쎉; 쎉; 쎉; 쎉; ) HANGUL SYLLABLE SSENJ
+C38A;C38A;110A 1166 11AD;C38A;110A 1166 11AD; # (쎊; 쎊; 쎊; 쎊; 쎊; ) HANGUL SYLLABLE SSENH
+C38B;C38B;110A 1166 11AE;C38B;110A 1166 11AE; # (쎋; 쎋; 쎋; 쎋; 쎋; ) HANGUL SYLLABLE SSED
+C38C;C38C;110A 1166 11AF;C38C;110A 1166 11AF; # (쎌; 쎌; 쎌; 쎌; 쎌; ) HANGUL SYLLABLE SSEL
+C38D;C38D;110A 1166 11B0;C38D;110A 1166 11B0; # (쎍; 쎍; 쎍; 쎍; 쎍; ) HANGUL SYLLABLE SSELG
+C38E;C38E;110A 1166 11B1;C38E;110A 1166 11B1; # (쎎; 쎎; 쎎; 쎎; 쎎; ) HANGUL SYLLABLE SSELM
+C38F;C38F;110A 1166 11B2;C38F;110A 1166 11B2; # (쎏; 쎏; 쎏; 쎏; 쎏; ) HANGUL SYLLABLE SSELB
+C390;C390;110A 1166 11B3;C390;110A 1166 11B3; # (쎐; 쎐; 쎐; 쎐; 쎐; ) HANGUL SYLLABLE SSELS
+C391;C391;110A 1166 11B4;C391;110A 1166 11B4; # (쎑; 쎑; 쎑; 쎑; 쎑; ) HANGUL SYLLABLE SSELT
+C392;C392;110A 1166 11B5;C392;110A 1166 11B5; # (쎒; 쎒; 쎒; 쎒; 쎒; ) HANGUL SYLLABLE SSELP
+C393;C393;110A 1166 11B6;C393;110A 1166 11B6; # (쎓; 쎓; 쎓; 쎓; 쎓; ) HANGUL SYLLABLE SSELH
+C394;C394;110A 1166 11B7;C394;110A 1166 11B7; # (쎔; 쎔; 쎔; 쎔; 쎔; ) HANGUL SYLLABLE SSEM
+C395;C395;110A 1166 11B8;C395;110A 1166 11B8; # (쎕; 쎕; 쎕; 쎕; 쎕; ) HANGUL SYLLABLE SSEB
+C396;C396;110A 1166 11B9;C396;110A 1166 11B9; # (쎖; 쎖; 쎖; 쎖; 쎖; ) HANGUL SYLLABLE SSEBS
+C397;C397;110A 1166 11BA;C397;110A 1166 11BA; # (쎗; 쎗; 쎗; 쎗; 쎗; ) HANGUL SYLLABLE SSES
+C398;C398;110A 1166 11BB;C398;110A 1166 11BB; # (쎘; 쎘; 쎘; 쎘; 쎘; ) HANGUL SYLLABLE SSESS
+C399;C399;110A 1166 11BC;C399;110A 1166 11BC; # (쎙; 쎙; 쎙; 쎙; 쎙; ) HANGUL SYLLABLE SSENG
+C39A;C39A;110A 1166 11BD;C39A;110A 1166 11BD; # (쎚; 쎚; 쎚; 쎚; 쎚; ) HANGUL SYLLABLE SSEJ
+C39B;C39B;110A 1166 11BE;C39B;110A 1166 11BE; # (쎛; 쎛; 쎛; 쎛; 쎛; ) HANGUL SYLLABLE SSEC
+C39C;C39C;110A 1166 11BF;C39C;110A 1166 11BF; # (쎜; 쎜; 쎜; 쎜; 쎜; ) HANGUL SYLLABLE SSEK
+C39D;C39D;110A 1166 11C0;C39D;110A 1166 11C0; # (쎝; 쎝; 쎝; 쎝; 쎝; ) HANGUL SYLLABLE SSET
+C39E;C39E;110A 1166 11C1;C39E;110A 1166 11C1; # (쎞; 쎞; 쎞; 쎞; 쎞; ) HANGUL SYLLABLE SSEP
+C39F;C39F;110A 1166 11C2;C39F;110A 1166 11C2; # (쎟; 쎟; 쎟; 쎟; 쎟; ) HANGUL SYLLABLE SSEH
+C3A0;C3A0;110A 1167;C3A0;110A 1167; # (쎠; 쎠; 쎠; 쎠; 쎠; ) HANGUL SYLLABLE SSYEO
+C3A1;C3A1;110A 1167 11A8;C3A1;110A 1167 11A8; # (쎡; 쎡; 쎡; 쎡; 쎡; ) HANGUL SYLLABLE SSYEOG
+C3A2;C3A2;110A 1167 11A9;C3A2;110A 1167 11A9; # (쎢; 쎢; 쎢; 쎢; 쎢; ) HANGUL SYLLABLE SSYEOGG
+C3A3;C3A3;110A 1167 11AA;C3A3;110A 1167 11AA; # (쎣; 쎣; 쎣; 쎣; 쎣; ) HANGUL SYLLABLE SSYEOGS
+C3A4;C3A4;110A 1167 11AB;C3A4;110A 1167 11AB; # (쎤; 쎤; 쎤; 쎤; 쎤; ) HANGUL SYLLABLE SSYEON
+C3A5;C3A5;110A 1167 11AC;C3A5;110A 1167 11AC; # (쎥; 쎥; 쎥; 쎥; 쎥; ) HANGUL SYLLABLE SSYEONJ
+C3A6;C3A6;110A 1167 11AD;C3A6;110A 1167 11AD; # (쎦; 쎦; 쎦; 쎦; 쎦; ) HANGUL SYLLABLE SSYEONH
+C3A7;C3A7;110A 1167 11AE;C3A7;110A 1167 11AE; # (쎧; 쎧; 쎧; 쎧; 쎧; ) HANGUL SYLLABLE SSYEOD
+C3A8;C3A8;110A 1167 11AF;C3A8;110A 1167 11AF; # (쎨; 쎨; 쎨; 쎨; 쎨; ) HANGUL SYLLABLE SSYEOL
+C3A9;C3A9;110A 1167 11B0;C3A9;110A 1167 11B0; # (쎩; 쎩; 쎩; 쎩; 쎩; ) HANGUL SYLLABLE SSYEOLG
+C3AA;C3AA;110A 1167 11B1;C3AA;110A 1167 11B1; # (쎪; 쎪; 쎪; 쎪; 쎪; ) HANGUL SYLLABLE SSYEOLM
+C3AB;C3AB;110A 1167 11B2;C3AB;110A 1167 11B2; # (쎫; 쎫; 쎫; 쎫; 쎫; ) HANGUL SYLLABLE SSYEOLB
+C3AC;C3AC;110A 1167 11B3;C3AC;110A 1167 11B3; # (쎬; 쎬; 쎬; 쎬; 쎬; ) HANGUL SYLLABLE SSYEOLS
+C3AD;C3AD;110A 1167 11B4;C3AD;110A 1167 11B4; # (쎭; 쎭; 쎭; 쎭; 쎭; ) HANGUL SYLLABLE SSYEOLT
+C3AE;C3AE;110A 1167 11B5;C3AE;110A 1167 11B5; # (쎮; 쎮; 쎮; 쎮; 쎮; ) HANGUL SYLLABLE SSYEOLP
+C3AF;C3AF;110A 1167 11B6;C3AF;110A 1167 11B6; # (쎯; 쎯; 쎯; 쎯; 쎯; ) HANGUL SYLLABLE SSYEOLH
+C3B0;C3B0;110A 1167 11B7;C3B0;110A 1167 11B7; # (쎰; 쎰; 쎰; 쎰; 쎰; ) HANGUL SYLLABLE SSYEOM
+C3B1;C3B1;110A 1167 11B8;C3B1;110A 1167 11B8; # (쎱; 쎱; 쎱; 쎱; 쎱; ) HANGUL SYLLABLE SSYEOB
+C3B2;C3B2;110A 1167 11B9;C3B2;110A 1167 11B9; # (쎲; 쎲; 쎲; 쎲; 쎲; ) HANGUL SYLLABLE SSYEOBS
+C3B3;C3B3;110A 1167 11BA;C3B3;110A 1167 11BA; # (쎳; 쎳; 쎳; 쎳; 쎳; ) HANGUL SYLLABLE SSYEOS
+C3B4;C3B4;110A 1167 11BB;C3B4;110A 1167 11BB; # (쎴; 쎴; 쎴; 쎴; 쎴; ) HANGUL SYLLABLE SSYEOSS
+C3B5;C3B5;110A 1167 11BC;C3B5;110A 1167 11BC; # (쎵; 쎵; 쎵; 쎵; 쎵; ) HANGUL SYLLABLE SSYEONG
+C3B6;C3B6;110A 1167 11BD;C3B6;110A 1167 11BD; # (쎶; 쎶; 쎶; 쎶; 쎶; ) HANGUL SYLLABLE SSYEOJ
+C3B7;C3B7;110A 1167 11BE;C3B7;110A 1167 11BE; # (쎷; 쎷; 쎷; 쎷; 쎷; ) HANGUL SYLLABLE SSYEOC
+C3B8;C3B8;110A 1167 11BF;C3B8;110A 1167 11BF; # (쎸; 쎸; 쎸; 쎸; 쎸; ) HANGUL SYLLABLE SSYEOK
+C3B9;C3B9;110A 1167 11C0;C3B9;110A 1167 11C0; # (쎹; 쎹; 쎹; 쎹; 쎹; ) HANGUL SYLLABLE SSYEOT
+C3BA;C3BA;110A 1167 11C1;C3BA;110A 1167 11C1; # (쎺; 쎺; 쎺; 쎺; 쎺; ) HANGUL SYLLABLE SSYEOP
+C3BB;C3BB;110A 1167 11C2;C3BB;110A 1167 11C2; # (쎻; 쎻; 쎻; 쎻; 쎻; ) HANGUL SYLLABLE SSYEOH
+C3BC;C3BC;110A 1168;C3BC;110A 1168; # (쎼; 쎼; 쎼; 쎼; 쎼; ) HANGUL SYLLABLE SSYE
+C3BD;C3BD;110A 1168 11A8;C3BD;110A 1168 11A8; # (쎽; 쎽; 쎽; 쎽; 쎽; ) HANGUL SYLLABLE SSYEG
+C3BE;C3BE;110A 1168 11A9;C3BE;110A 1168 11A9; # (쎾; 쎾; 쎾; 쎾; 쎾; ) HANGUL SYLLABLE SSYEGG
+C3BF;C3BF;110A 1168 11AA;C3BF;110A 1168 11AA; # (쎿; 쎿; 쎿; 쎿; 쎿; ) HANGUL SYLLABLE SSYEGS
+C3C0;C3C0;110A 1168 11AB;C3C0;110A 1168 11AB; # (쏀; 쏀; 쏀; 쏀; 쏀; ) HANGUL SYLLABLE SSYEN
+C3C1;C3C1;110A 1168 11AC;C3C1;110A 1168 11AC; # (쏁; 쏁; 쏁; 쏁; 쏁; ) HANGUL SYLLABLE SSYENJ
+C3C2;C3C2;110A 1168 11AD;C3C2;110A 1168 11AD; # (쏂; 쏂; 쏂; 쏂; 쏂; ) HANGUL SYLLABLE SSYENH
+C3C3;C3C3;110A 1168 11AE;C3C3;110A 1168 11AE; # (쏃; 쏃; 쏃; 쏃; 쏃; ) HANGUL SYLLABLE SSYED
+C3C4;C3C4;110A 1168 11AF;C3C4;110A 1168 11AF; # (쏄; 쏄; 쏄; 쏄; 쏄; ) HANGUL SYLLABLE SSYEL
+C3C5;C3C5;110A 1168 11B0;C3C5;110A 1168 11B0; # (쏅; 쏅; 쏅; 쏅; 쏅; ) HANGUL SYLLABLE SSYELG
+C3C6;C3C6;110A 1168 11B1;C3C6;110A 1168 11B1; # (쏆; 쏆; 쏆; 쏆; 쏆; ) HANGUL SYLLABLE SSYELM
+C3C7;C3C7;110A 1168 11B2;C3C7;110A 1168 11B2; # (쏇; 쏇; 쏇; 쏇; 쏇; ) HANGUL SYLLABLE SSYELB
+C3C8;C3C8;110A 1168 11B3;C3C8;110A 1168 11B3; # (쏈; 쏈; 쏈; 쏈; 쏈; ) HANGUL SYLLABLE SSYELS
+C3C9;C3C9;110A 1168 11B4;C3C9;110A 1168 11B4; # (쏉; 쏉; 쏉; 쏉; 쏉; ) HANGUL SYLLABLE SSYELT
+C3CA;C3CA;110A 1168 11B5;C3CA;110A 1168 11B5; # (쏊; 쏊; 쏊; 쏊; 쏊; ) HANGUL SYLLABLE SSYELP
+C3CB;C3CB;110A 1168 11B6;C3CB;110A 1168 11B6; # (쏋; 쏋; 쏋; 쏋; 쏋; ) HANGUL SYLLABLE SSYELH
+C3CC;C3CC;110A 1168 11B7;C3CC;110A 1168 11B7; # (쏌; 쏌; 쏌; 쏌; 쏌; ) HANGUL SYLLABLE SSYEM
+C3CD;C3CD;110A 1168 11B8;C3CD;110A 1168 11B8; # (쏍; 쏍; 쏍; 쏍; 쏍; ) HANGUL SYLLABLE SSYEB
+C3CE;C3CE;110A 1168 11B9;C3CE;110A 1168 11B9; # (쏎; 쏎; 쏎; 쏎; 쏎; ) HANGUL SYLLABLE SSYEBS
+C3CF;C3CF;110A 1168 11BA;C3CF;110A 1168 11BA; # (쏏; 쏏; 쏏; 쏏; 쏏; ) HANGUL SYLLABLE SSYES
+C3D0;C3D0;110A 1168 11BB;C3D0;110A 1168 11BB; # (쏐; 쏐; 쏐; 쏐; 쏐; ) HANGUL SYLLABLE SSYESS
+C3D1;C3D1;110A 1168 11BC;C3D1;110A 1168 11BC; # (쏑; 쏑; 쏑; 쏑; 쏑; ) HANGUL SYLLABLE SSYENG
+C3D2;C3D2;110A 1168 11BD;C3D2;110A 1168 11BD; # (쏒; 쏒; 쏒; 쏒; 쏒; ) HANGUL SYLLABLE SSYEJ
+C3D3;C3D3;110A 1168 11BE;C3D3;110A 1168 11BE; # (쏓; 쏓; 쏓; 쏓; 쏓; ) HANGUL SYLLABLE SSYEC
+C3D4;C3D4;110A 1168 11BF;C3D4;110A 1168 11BF; # (쏔; 쏔; 쏔; 쏔; 쏔; ) HANGUL SYLLABLE SSYEK
+C3D5;C3D5;110A 1168 11C0;C3D5;110A 1168 11C0; # (쏕; 쏕; 쏕; 쏕; 쏕; ) HANGUL SYLLABLE SSYET
+C3D6;C3D6;110A 1168 11C1;C3D6;110A 1168 11C1; # (쏖; 쏖; 쏖; 쏖; 쏖; ) HANGUL SYLLABLE SSYEP
+C3D7;C3D7;110A 1168 11C2;C3D7;110A 1168 11C2; # (쏗; 쏗; 쏗; 쏗; 쏗; ) HANGUL SYLLABLE SSYEH
+C3D8;C3D8;110A 1169;C3D8;110A 1169; # (쏘; 쏘; 쏘; 쏘; 쏘; ) HANGUL SYLLABLE SSO
+C3D9;C3D9;110A 1169 11A8;C3D9;110A 1169 11A8; # (쏙; 쏙; 쏙; 쏙; 쏙; ) HANGUL SYLLABLE SSOG
+C3DA;C3DA;110A 1169 11A9;C3DA;110A 1169 11A9; # (쏚; 쏚; 쏚; 쏚; 쏚; ) HANGUL SYLLABLE SSOGG
+C3DB;C3DB;110A 1169 11AA;C3DB;110A 1169 11AA; # (쏛; 쏛; 쏛; 쏛; 쏛; ) HANGUL SYLLABLE SSOGS
+C3DC;C3DC;110A 1169 11AB;C3DC;110A 1169 11AB; # (쏜; 쏜; 쏜; 쏜; 쏜; ) HANGUL SYLLABLE SSON
+C3DD;C3DD;110A 1169 11AC;C3DD;110A 1169 11AC; # (쏝; 쏝; 쏝; 쏝; 쏝; ) HANGUL SYLLABLE SSONJ
+C3DE;C3DE;110A 1169 11AD;C3DE;110A 1169 11AD; # (쏞; 쏞; 쏞; 쏞; 쏞; ) HANGUL SYLLABLE SSONH
+C3DF;C3DF;110A 1169 11AE;C3DF;110A 1169 11AE; # (쏟; 쏟; 쏟; 쏟; 쏟; ) HANGUL SYLLABLE SSOD
+C3E0;C3E0;110A 1169 11AF;C3E0;110A 1169 11AF; # (쏠; 쏠; 쏠; 쏠; 쏠; ) HANGUL SYLLABLE SSOL
+C3E1;C3E1;110A 1169 11B0;C3E1;110A 1169 11B0; # (쏡; 쏡; 쏡; 쏡; 쏡; ) HANGUL SYLLABLE SSOLG
+C3E2;C3E2;110A 1169 11B1;C3E2;110A 1169 11B1; # (쏢; 쏢; 쏢; 쏢; 쏢; ) HANGUL SYLLABLE SSOLM
+C3E3;C3E3;110A 1169 11B2;C3E3;110A 1169 11B2; # (쏣; 쏣; 쏣; 쏣; 쏣; ) HANGUL SYLLABLE SSOLB
+C3E4;C3E4;110A 1169 11B3;C3E4;110A 1169 11B3; # (쏤; 쏤; 쏤; 쏤; 쏤; ) HANGUL SYLLABLE SSOLS
+C3E5;C3E5;110A 1169 11B4;C3E5;110A 1169 11B4; # (쏥; 쏥; 쏥; 쏥; 쏥; ) HANGUL SYLLABLE SSOLT
+C3E6;C3E6;110A 1169 11B5;C3E6;110A 1169 11B5; # (쏦; 쏦; 쏦; 쏦; 쏦; ) HANGUL SYLLABLE SSOLP
+C3E7;C3E7;110A 1169 11B6;C3E7;110A 1169 11B6; # (쏧; 쏧; 쏧; 쏧; 쏧; ) HANGUL SYLLABLE SSOLH
+C3E8;C3E8;110A 1169 11B7;C3E8;110A 1169 11B7; # (쏨; 쏨; 쏨; 쏨; 쏨; ) HANGUL SYLLABLE SSOM
+C3E9;C3E9;110A 1169 11B8;C3E9;110A 1169 11B8; # (쏩; 쏩; 쏩; 쏩; 쏩; ) HANGUL SYLLABLE SSOB
+C3EA;C3EA;110A 1169 11B9;C3EA;110A 1169 11B9; # (쏪; 쏪; 쏪; 쏪; 쏪; ) HANGUL SYLLABLE SSOBS
+C3EB;C3EB;110A 1169 11BA;C3EB;110A 1169 11BA; # (쏫; 쏫; 쏫; 쏫; 쏫; ) HANGUL SYLLABLE SSOS
+C3EC;C3EC;110A 1169 11BB;C3EC;110A 1169 11BB; # (쏬; 쏬; 쏬; 쏬; 쏬; ) HANGUL SYLLABLE SSOSS
+C3ED;C3ED;110A 1169 11BC;C3ED;110A 1169 11BC; # (쏭; 쏭; 쏭; 쏭; 쏭; ) HANGUL SYLLABLE SSONG
+C3EE;C3EE;110A 1169 11BD;C3EE;110A 1169 11BD; # (쏮; 쏮; 쏮; 쏮; 쏮; ) HANGUL SYLLABLE SSOJ
+C3EF;C3EF;110A 1169 11BE;C3EF;110A 1169 11BE; # (쏯; 쏯; 쏯; 쏯; 쏯; ) HANGUL SYLLABLE SSOC
+C3F0;C3F0;110A 1169 11BF;C3F0;110A 1169 11BF; # (쏰; 쏰; 쏰; 쏰; 쏰; ) HANGUL SYLLABLE SSOK
+C3F1;C3F1;110A 1169 11C0;C3F1;110A 1169 11C0; # (쏱; 쏱; 쏱; 쏱; 쏱; ) HANGUL SYLLABLE SSOT
+C3F2;C3F2;110A 1169 11C1;C3F2;110A 1169 11C1; # (쏲; 쏲; 쏲; 쏲; 쏲; ) HANGUL SYLLABLE SSOP
+C3F3;C3F3;110A 1169 11C2;C3F3;110A 1169 11C2; # (쏳; 쏳; 쏳; 쏳; 쏳; ) HANGUL SYLLABLE SSOH
+C3F4;C3F4;110A 116A;C3F4;110A 116A; # (쏴; 쏴; 쏴; 쏴; 쏴; ) HANGUL SYLLABLE SSWA
+C3F5;C3F5;110A 116A 11A8;C3F5;110A 116A 11A8; # (쏵; 쏵; 쏵; 쏵; 쏵; ) HANGUL SYLLABLE SSWAG
+C3F6;C3F6;110A 116A 11A9;C3F6;110A 116A 11A9; # (쏶; 쏶; 쏶; 쏶; 쏶; ) HANGUL SYLLABLE SSWAGG
+C3F7;C3F7;110A 116A 11AA;C3F7;110A 116A 11AA; # (쏷; 쏷; 쏷; 쏷; 쏷; ) HANGUL SYLLABLE SSWAGS
+C3F8;C3F8;110A 116A 11AB;C3F8;110A 116A 11AB; # (쏸; 쏸; 쏸; 쏸; 쏸; ) HANGUL SYLLABLE SSWAN
+C3F9;C3F9;110A 116A 11AC;C3F9;110A 116A 11AC; # (쏹; 쏹; 쏹; 쏹; 쏹; ) HANGUL SYLLABLE SSWANJ
+C3FA;C3FA;110A 116A 11AD;C3FA;110A 116A 11AD; # (쏺; 쏺; 쏺; 쏺; 쏺; ) HANGUL SYLLABLE SSWANH
+C3FB;C3FB;110A 116A 11AE;C3FB;110A 116A 11AE; # (쏻; 쏻; 쏻; 쏻; 쏻; ) HANGUL SYLLABLE SSWAD
+C3FC;C3FC;110A 116A 11AF;C3FC;110A 116A 11AF; # (쏼; 쏼; 쏼; 쏼; 쏼; ) HANGUL SYLLABLE SSWAL
+C3FD;C3FD;110A 116A 11B0;C3FD;110A 116A 11B0; # (쏽; 쏽; 쏽; 쏽; 쏽; ) HANGUL SYLLABLE SSWALG
+C3FE;C3FE;110A 116A 11B1;C3FE;110A 116A 11B1; # (쏾; 쏾; 쏾; 쏾; 쏾; ) HANGUL SYLLABLE SSWALM
+C3FF;C3FF;110A 116A 11B2;C3FF;110A 116A 11B2; # (쏿; 쏿; 쏿; 쏿; 쏿; ) HANGUL SYLLABLE SSWALB
+C400;C400;110A 116A 11B3;C400;110A 116A 11B3; # (쐀; 쐀; 쐀; 쐀; 쐀; ) HANGUL SYLLABLE SSWALS
+C401;C401;110A 116A 11B4;C401;110A 116A 11B4; # (쐁; 쐁; 쐁; 쐁; 쐁; ) HANGUL SYLLABLE SSWALT
+C402;C402;110A 116A 11B5;C402;110A 116A 11B5; # (쐂; 쐂; 쐂; 쐂; 쐂; ) HANGUL SYLLABLE SSWALP
+C403;C403;110A 116A 11B6;C403;110A 116A 11B6; # (쐃; 쐃; 쐃; 쐃; 쐃; ) HANGUL SYLLABLE SSWALH
+C404;C404;110A 116A 11B7;C404;110A 116A 11B7; # (쐄; 쐄; 쐄; 쐄; 쐄; ) HANGUL SYLLABLE SSWAM
+C405;C405;110A 116A 11B8;C405;110A 116A 11B8; # (쐅; 쐅; 쐅; 쐅; 쐅; ) HANGUL SYLLABLE SSWAB
+C406;C406;110A 116A 11B9;C406;110A 116A 11B9; # (쐆; 쐆; 쐆; 쐆; 쐆; ) HANGUL SYLLABLE SSWABS
+C407;C407;110A 116A 11BA;C407;110A 116A 11BA; # (쐇; 쐇; 쐇; 쐇; 쐇; ) HANGUL SYLLABLE SSWAS
+C408;C408;110A 116A 11BB;C408;110A 116A 11BB; # (쐈; 쐈; 쐈; 쐈; 쐈; ) HANGUL SYLLABLE SSWASS
+C409;C409;110A 116A 11BC;C409;110A 116A 11BC; # (쐉; 쐉; 쐉; 쐉; 쐉; ) HANGUL SYLLABLE SSWANG
+C40A;C40A;110A 116A 11BD;C40A;110A 116A 11BD; # (쐊; 쐊; 쐊; 쐊; 쐊; ) HANGUL SYLLABLE SSWAJ
+C40B;C40B;110A 116A 11BE;C40B;110A 116A 11BE; # (쐋; 쐋; 쐋; 쐋; 쐋; ) HANGUL SYLLABLE SSWAC
+C40C;C40C;110A 116A 11BF;C40C;110A 116A 11BF; # (쐌; 쐌; 쐌; 쐌; 쐌; ) HANGUL SYLLABLE SSWAK
+C40D;C40D;110A 116A 11C0;C40D;110A 116A 11C0; # (쐍; 쐍; 쐍; 쐍; 쐍; ) HANGUL SYLLABLE SSWAT
+C40E;C40E;110A 116A 11C1;C40E;110A 116A 11C1; # (쐎; 쐎; 쐎; 쐎; 쐎; ) HANGUL SYLLABLE SSWAP
+C40F;C40F;110A 116A 11C2;C40F;110A 116A 11C2; # (쐏; 쐏; 쐏; 쐏; 쐏; ) HANGUL SYLLABLE SSWAH
+C410;C410;110A 116B;C410;110A 116B; # (쐐; 쐐; 쐐; 쐐; 쐐; ) HANGUL SYLLABLE SSWAE
+C411;C411;110A 116B 11A8;C411;110A 116B 11A8; # (쐑; 쐑; 쐑; 쐑; 쐑; ) HANGUL SYLLABLE SSWAEG
+C412;C412;110A 116B 11A9;C412;110A 116B 11A9; # (쐒; 쐒; 쐒; 쐒; 쐒; ) HANGUL SYLLABLE SSWAEGG
+C413;C413;110A 116B 11AA;C413;110A 116B 11AA; # (쐓; 쐓; 쐓; 쐓; 쐓; ) HANGUL SYLLABLE SSWAEGS
+C414;C414;110A 116B 11AB;C414;110A 116B 11AB; # (쐔; 쐔; 쐔; 쐔; 쐔; ) HANGUL SYLLABLE SSWAEN
+C415;C415;110A 116B 11AC;C415;110A 116B 11AC; # (쐕; 쐕; 쐕; 쐕; 쐕; ) HANGUL SYLLABLE SSWAENJ
+C416;C416;110A 116B 11AD;C416;110A 116B 11AD; # (쐖; 쐖; 쐖; 쐖; 쐖; ) HANGUL SYLLABLE SSWAENH
+C417;C417;110A 116B 11AE;C417;110A 116B 11AE; # (쐗; 쐗; 쐗; 쐗; 쐗; ) HANGUL SYLLABLE SSWAED
+C418;C418;110A 116B 11AF;C418;110A 116B 11AF; # (쐘; 쐘; 쐘; 쐘; 쐘; ) HANGUL SYLLABLE SSWAEL
+C419;C419;110A 116B 11B0;C419;110A 116B 11B0; # (쐙; 쐙; 쐙; 쐙; 쐙; ) HANGUL SYLLABLE SSWAELG
+C41A;C41A;110A 116B 11B1;C41A;110A 116B 11B1; # (쐚; 쐚; 쐚; 쐚; 쐚; ) HANGUL SYLLABLE SSWAELM
+C41B;C41B;110A 116B 11B2;C41B;110A 116B 11B2; # (쐛; 쐛; 쐛; 쐛; 쐛; ) HANGUL SYLLABLE SSWAELB
+C41C;C41C;110A 116B 11B3;C41C;110A 116B 11B3; # (쐜; 쐜; 쐜; 쐜; 쐜; ) HANGUL SYLLABLE SSWAELS
+C41D;C41D;110A 116B 11B4;C41D;110A 116B 11B4; # (쐝; 쐝; 쐝; 쐝; 쐝; ) HANGUL SYLLABLE SSWAELT
+C41E;C41E;110A 116B 11B5;C41E;110A 116B 11B5; # (쐞; 쐞; 쐞; 쐞; 쐞; ) HANGUL SYLLABLE SSWAELP
+C41F;C41F;110A 116B 11B6;C41F;110A 116B 11B6; # (쐟; 쐟; 쐟; 쐟; 쐟; ) HANGUL SYLLABLE SSWAELH
+C420;C420;110A 116B 11B7;C420;110A 116B 11B7; # (쐠; 쐠; 쐠; 쐠; 쐠; ) HANGUL SYLLABLE SSWAEM
+C421;C421;110A 116B 11B8;C421;110A 116B 11B8; # (쐡; 쐡; 쐡; 쐡; 쐡; ) HANGUL SYLLABLE SSWAEB
+C422;C422;110A 116B 11B9;C422;110A 116B 11B9; # (쐢; 쐢; 쐢; 쐢; 쐢; ) HANGUL SYLLABLE SSWAEBS
+C423;C423;110A 116B 11BA;C423;110A 116B 11BA; # (쐣; 쐣; 쐣; 쐣; 쐣; ) HANGUL SYLLABLE SSWAES
+C424;C424;110A 116B 11BB;C424;110A 116B 11BB; # (쐤; 쐤; 쐤; 쐤; 쐤; ) HANGUL SYLLABLE SSWAESS
+C425;C425;110A 116B 11BC;C425;110A 116B 11BC; # (쐥; 쐥; 쐥; 쐥; 쐥; ) HANGUL SYLLABLE SSWAENG
+C426;C426;110A 116B 11BD;C426;110A 116B 11BD; # (쐦; 쐦; 쐦; 쐦; 쐦; ) HANGUL SYLLABLE SSWAEJ
+C427;C427;110A 116B 11BE;C427;110A 116B 11BE; # (쐧; 쐧; 쐧; 쐧; 쐧; ) HANGUL SYLLABLE SSWAEC
+C428;C428;110A 116B 11BF;C428;110A 116B 11BF; # (쐨; 쐨; 쐨; 쐨; 쐨; ) HANGUL SYLLABLE SSWAEK
+C429;C429;110A 116B 11C0;C429;110A 116B 11C0; # (쐩; 쐩; 쐩; 쐩; 쐩; ) HANGUL SYLLABLE SSWAET
+C42A;C42A;110A 116B 11C1;C42A;110A 116B 11C1; # (쐪; 쐪; 쐪; 쐪; 쐪; ) HANGUL SYLLABLE SSWAEP
+C42B;C42B;110A 116B 11C2;C42B;110A 116B 11C2; # (쐫; 쐫; 쐫; 쐫; 쐫; ) HANGUL SYLLABLE SSWAEH
+C42C;C42C;110A 116C;C42C;110A 116C; # (쐬; 쐬; 쐬; 쐬; 쐬; ) HANGUL SYLLABLE SSOE
+C42D;C42D;110A 116C 11A8;C42D;110A 116C 11A8; # (쐭; 쐭; 쐭; 쐭; 쐭; ) HANGUL SYLLABLE SSOEG
+C42E;C42E;110A 116C 11A9;C42E;110A 116C 11A9; # (쐮; 쐮; 쐮; 쐮; 쐮; ) HANGUL SYLLABLE SSOEGG
+C42F;C42F;110A 116C 11AA;C42F;110A 116C 11AA; # (쐯; 쐯; 쐯; 쐯; 쐯; ) HANGUL SYLLABLE SSOEGS
+C430;C430;110A 116C 11AB;C430;110A 116C 11AB; # (쐰; 쐰; 쐰; 쐰; 쐰; ) HANGUL SYLLABLE SSOEN
+C431;C431;110A 116C 11AC;C431;110A 116C 11AC; # (쐱; 쐱; 쐱; 쐱; 쐱; ) HANGUL SYLLABLE SSOENJ
+C432;C432;110A 116C 11AD;C432;110A 116C 11AD; # (쐲; 쐲; 쐲; 쐲; 쐲; ) HANGUL SYLLABLE SSOENH
+C433;C433;110A 116C 11AE;C433;110A 116C 11AE; # (쐳; 쐳; 쐳; 쐳; 쐳; ) HANGUL SYLLABLE SSOED
+C434;C434;110A 116C 11AF;C434;110A 116C 11AF; # (쐴; 쐴; 쐴; 쐴; 쐴; ) HANGUL SYLLABLE SSOEL
+C435;C435;110A 116C 11B0;C435;110A 116C 11B0; # (쐵; 쐵; 쐵; 쐵; 쐵; ) HANGUL SYLLABLE SSOELG
+C436;C436;110A 116C 11B1;C436;110A 116C 11B1; # (쐶; 쐶; 쐶; 쐶; 쐶; ) HANGUL SYLLABLE SSOELM
+C437;C437;110A 116C 11B2;C437;110A 116C 11B2; # (쐷; 쐷; 쐷; 쐷; 쐷; ) HANGUL SYLLABLE SSOELB
+C438;C438;110A 116C 11B3;C438;110A 116C 11B3; # (쐸; 쐸; 쐸; 쐸; 쐸; ) HANGUL SYLLABLE SSOELS
+C439;C439;110A 116C 11B4;C439;110A 116C 11B4; # (쐹; 쐹; 쐹; 쐹; 쐹; ) HANGUL SYLLABLE SSOELT
+C43A;C43A;110A 116C 11B5;C43A;110A 116C 11B5; # (쐺; 쐺; 쐺; 쐺; 쐺; ) HANGUL SYLLABLE SSOELP
+C43B;C43B;110A 116C 11B6;C43B;110A 116C 11B6; # (쐻; 쐻; 쐻; 쐻; 쐻; ) HANGUL SYLLABLE SSOELH
+C43C;C43C;110A 116C 11B7;C43C;110A 116C 11B7; # (쐼; 쐼; 쐼; 쐼; 쐼; ) HANGUL SYLLABLE SSOEM
+C43D;C43D;110A 116C 11B8;C43D;110A 116C 11B8; # (쐽; 쐽; 쐽; 쐽; 쐽; ) HANGUL SYLLABLE SSOEB
+C43E;C43E;110A 116C 11B9;C43E;110A 116C 11B9; # (쐾; 쐾; 쐾; 쐾; 쐾; ) HANGUL SYLLABLE SSOEBS
+C43F;C43F;110A 116C 11BA;C43F;110A 116C 11BA; # (쐿; 쐿; 쐿; 쐿; 쐿; ) HANGUL SYLLABLE SSOES
+C440;C440;110A 116C 11BB;C440;110A 116C 11BB; # (쑀; 쑀; 쑀; 쑀; 쑀; ) HANGUL SYLLABLE SSOESS
+C441;C441;110A 116C 11BC;C441;110A 116C 11BC; # (쑁; 쑁; 쑁; 쑁; 쑁; ) HANGUL SYLLABLE SSOENG
+C442;C442;110A 116C 11BD;C442;110A 116C 11BD; # (쑂; 쑂; 쑂; 쑂; 쑂; ) HANGUL SYLLABLE SSOEJ
+C443;C443;110A 116C 11BE;C443;110A 116C 11BE; # (쑃; 쑃; 쑃; 쑃; 쑃; ) HANGUL SYLLABLE SSOEC
+C444;C444;110A 116C 11BF;C444;110A 116C 11BF; # (쑄; 쑄; 쑄; 쑄; 쑄; ) HANGUL SYLLABLE SSOEK
+C445;C445;110A 116C 11C0;C445;110A 116C 11C0; # (쑅; 쑅; 쑅; 쑅; 쑅; ) HANGUL SYLLABLE SSOET
+C446;C446;110A 116C 11C1;C446;110A 116C 11C1; # (쑆; 쑆; 쑆; 쑆; 쑆; ) HANGUL SYLLABLE SSOEP
+C447;C447;110A 116C 11C2;C447;110A 116C 11C2; # (쑇; 쑇; 쑇; 쑇; 쑇; ) HANGUL SYLLABLE SSOEH
+C448;C448;110A 116D;C448;110A 116D; # (쑈; 쑈; 쑈; 쑈; 쑈; ) HANGUL SYLLABLE SSYO
+C449;C449;110A 116D 11A8;C449;110A 116D 11A8; # (쑉; 쑉; 쑉; 쑉; 쑉; ) HANGUL SYLLABLE SSYOG
+C44A;C44A;110A 116D 11A9;C44A;110A 116D 11A9; # (쑊; 쑊; 쑊; 쑊; 쑊; ) HANGUL SYLLABLE SSYOGG
+C44B;C44B;110A 116D 11AA;C44B;110A 116D 11AA; # (쑋; 쑋; 쑋; 쑋; 쑋; ) HANGUL SYLLABLE SSYOGS
+C44C;C44C;110A 116D 11AB;C44C;110A 116D 11AB; # (쑌; 쑌; 쑌; 쑌; 쑌; ) HANGUL SYLLABLE SSYON
+C44D;C44D;110A 116D 11AC;C44D;110A 116D 11AC; # (쑍; 쑍; 쑍; 쑍; 쑍; ) HANGUL SYLLABLE SSYONJ
+C44E;C44E;110A 116D 11AD;C44E;110A 116D 11AD; # (쑎; 쑎; 쑎; 쑎; 쑎; ) HANGUL SYLLABLE SSYONH
+C44F;C44F;110A 116D 11AE;C44F;110A 116D 11AE; # (쑏; 쑏; 쑏; 쑏; 쑏; ) HANGUL SYLLABLE SSYOD
+C450;C450;110A 116D 11AF;C450;110A 116D 11AF; # (쑐; 쑐; 쑐; 쑐; 쑐; ) HANGUL SYLLABLE SSYOL
+C451;C451;110A 116D 11B0;C451;110A 116D 11B0; # (쑑; 쑑; 쑑; 쑑; 쑑; ) HANGUL SYLLABLE SSYOLG
+C452;C452;110A 116D 11B1;C452;110A 116D 11B1; # (쑒; 쑒; 쑒; 쑒; 쑒; ) HANGUL SYLLABLE SSYOLM
+C453;C453;110A 116D 11B2;C453;110A 116D 11B2; # (쑓; 쑓; 쑓; 쑓; 쑓; ) HANGUL SYLLABLE SSYOLB
+C454;C454;110A 116D 11B3;C454;110A 116D 11B3; # (쑔; 쑔; 쑔; 쑔; 쑔; ) HANGUL SYLLABLE SSYOLS
+C455;C455;110A 116D 11B4;C455;110A 116D 11B4; # (쑕; 쑕; 쑕; 쑕; 쑕; ) HANGUL SYLLABLE SSYOLT
+C456;C456;110A 116D 11B5;C456;110A 116D 11B5; # (쑖; 쑖; 쑖; 쑖; 쑖; ) HANGUL SYLLABLE SSYOLP
+C457;C457;110A 116D 11B6;C457;110A 116D 11B6; # (쑗; 쑗; 쑗; 쑗; 쑗; ) HANGUL SYLLABLE SSYOLH
+C458;C458;110A 116D 11B7;C458;110A 116D 11B7; # (쑘; 쑘; 쑘; 쑘; 쑘; ) HANGUL SYLLABLE SSYOM
+C459;C459;110A 116D 11B8;C459;110A 116D 11B8; # (쑙; 쑙; 쑙; 쑙; 쑙; ) HANGUL SYLLABLE SSYOB
+C45A;C45A;110A 116D 11B9;C45A;110A 116D 11B9; # (쑚; 쑚; 쑚; 쑚; 쑚; ) HANGUL SYLLABLE SSYOBS
+C45B;C45B;110A 116D 11BA;C45B;110A 116D 11BA; # (쑛; 쑛; 쑛; 쑛; 쑛; ) HANGUL SYLLABLE SSYOS
+C45C;C45C;110A 116D 11BB;C45C;110A 116D 11BB; # (쑜; 쑜; 쑜; 쑜; 쑜; ) HANGUL SYLLABLE SSYOSS
+C45D;C45D;110A 116D 11BC;C45D;110A 116D 11BC; # (쑝; 쑝; 쑝; 쑝; 쑝; ) HANGUL SYLLABLE SSYONG
+C45E;C45E;110A 116D 11BD;C45E;110A 116D 11BD; # (쑞; 쑞; 쑞; 쑞; 쑞; ) HANGUL SYLLABLE SSYOJ
+C45F;C45F;110A 116D 11BE;C45F;110A 116D 11BE; # (쑟; 쑟; 쑟; 쑟; 쑟; ) HANGUL SYLLABLE SSYOC
+C460;C460;110A 116D 11BF;C460;110A 116D 11BF; # (쑠; 쑠; 쑠; 쑠; 쑠; ) HANGUL SYLLABLE SSYOK
+C461;C461;110A 116D 11C0;C461;110A 116D 11C0; # (쑡; 쑡; 쑡; 쑡; 쑡; ) HANGUL SYLLABLE SSYOT
+C462;C462;110A 116D 11C1;C462;110A 116D 11C1; # (쑢; 쑢; 쑢; 쑢; 쑢; ) HANGUL SYLLABLE SSYOP
+C463;C463;110A 116D 11C2;C463;110A 116D 11C2; # (쑣; 쑣; 쑣; 쑣; 쑣; ) HANGUL SYLLABLE SSYOH
+C464;C464;110A 116E;C464;110A 116E; # (쑤; 쑤; 쑤; 쑤; 쑤; ) HANGUL SYLLABLE SSU
+C465;C465;110A 116E 11A8;C465;110A 116E 11A8; # (쑥; 쑥; 쑥; 쑥; 쑥; ) HANGUL SYLLABLE SSUG
+C466;C466;110A 116E 11A9;C466;110A 116E 11A9; # (쑦; 쑦; 쑦; 쑦; 쑦; ) HANGUL SYLLABLE SSUGG
+C467;C467;110A 116E 11AA;C467;110A 116E 11AA; # (쑧; 쑧; 쑧; 쑧; 쑧; ) HANGUL SYLLABLE SSUGS
+C468;C468;110A 116E 11AB;C468;110A 116E 11AB; # (쑨; 쑨; 쑨; 쑨; 쑨; ) HANGUL SYLLABLE SSUN
+C469;C469;110A 116E 11AC;C469;110A 116E 11AC; # (쑩; 쑩; 쑩; 쑩; 쑩; ) HANGUL SYLLABLE SSUNJ
+C46A;C46A;110A 116E 11AD;C46A;110A 116E 11AD; # (쑪; 쑪; 쑪; 쑪; 쑪; ) HANGUL SYLLABLE SSUNH
+C46B;C46B;110A 116E 11AE;C46B;110A 116E 11AE; # (쑫; 쑫; 쑫; 쑫; 쑫; ) HANGUL SYLLABLE SSUD
+C46C;C46C;110A 116E 11AF;C46C;110A 116E 11AF; # (쑬; 쑬; 쑬; 쑬; 쑬; ) HANGUL SYLLABLE SSUL
+C46D;C46D;110A 116E 11B0;C46D;110A 116E 11B0; # (쑭; 쑭; 쑭; 쑭; 쑭; ) HANGUL SYLLABLE SSULG
+C46E;C46E;110A 116E 11B1;C46E;110A 116E 11B1; # (쑮; 쑮; 쑮; 쑮; 쑮; ) HANGUL SYLLABLE SSULM
+C46F;C46F;110A 116E 11B2;C46F;110A 116E 11B2; # (쑯; 쑯; 쑯; 쑯; 쑯; ) HANGUL SYLLABLE SSULB
+C470;C470;110A 116E 11B3;C470;110A 116E 11B3; # (쑰; 쑰; 쑰; 쑰; 쑰; ) HANGUL SYLLABLE SSULS
+C471;C471;110A 116E 11B4;C471;110A 116E 11B4; # (쑱; 쑱; 쑱; 쑱; 쑱; ) HANGUL SYLLABLE SSULT
+C472;C472;110A 116E 11B5;C472;110A 116E 11B5; # (쑲; 쑲; 쑲; 쑲; 쑲; ) HANGUL SYLLABLE SSULP
+C473;C473;110A 116E 11B6;C473;110A 116E 11B6; # (쑳; 쑳; 쑳; 쑳; 쑳; ) HANGUL SYLLABLE SSULH
+C474;C474;110A 116E 11B7;C474;110A 116E 11B7; # (쑴; 쑴; 쑴; 쑴; 쑴; ) HANGUL SYLLABLE SSUM
+C475;C475;110A 116E 11B8;C475;110A 116E 11B8; # (쑵; 쑵; 쑵; 쑵; 쑵; ) HANGUL SYLLABLE SSUB
+C476;C476;110A 116E 11B9;C476;110A 116E 11B9; # (쑶; 쑶; 쑶; 쑶; 쑶; ) HANGUL SYLLABLE SSUBS
+C477;C477;110A 116E 11BA;C477;110A 116E 11BA; # (쑷; 쑷; 쑷; 쑷; 쑷; ) HANGUL SYLLABLE SSUS
+C478;C478;110A 116E 11BB;C478;110A 116E 11BB; # (쑸; 쑸; 쑸; 쑸; 쑸; ) HANGUL SYLLABLE SSUSS
+C479;C479;110A 116E 11BC;C479;110A 116E 11BC; # (쑹; 쑹; 쑹; 쑹; 쑹; ) HANGUL SYLLABLE SSUNG
+C47A;C47A;110A 116E 11BD;C47A;110A 116E 11BD; # (쑺; 쑺; 쑺; 쑺; 쑺; ) HANGUL SYLLABLE SSUJ
+C47B;C47B;110A 116E 11BE;C47B;110A 116E 11BE; # (쑻; 쑻; 쑻; 쑻; 쑻; ) HANGUL SYLLABLE SSUC
+C47C;C47C;110A 116E 11BF;C47C;110A 116E 11BF; # (쑼; 쑼; 쑼; 쑼; 쑼; ) HANGUL SYLLABLE SSUK
+C47D;C47D;110A 116E 11C0;C47D;110A 116E 11C0; # (쑽; 쑽; 쑽; 쑽; 쑽; ) HANGUL SYLLABLE SSUT
+C47E;C47E;110A 116E 11C1;C47E;110A 116E 11C1; # (쑾; 쑾; 쑾; 쑾; 쑾; ) HANGUL SYLLABLE SSUP
+C47F;C47F;110A 116E 11C2;C47F;110A 116E 11C2; # (쑿; 쑿; 쑿; 쑿; 쑿; ) HANGUL SYLLABLE SSUH
+C480;C480;110A 116F;C480;110A 116F; # (쒀; 쒀; 쒀; 쒀; 쒀; ) HANGUL SYLLABLE SSWEO
+C481;C481;110A 116F 11A8;C481;110A 116F 11A8; # (쒁; 쒁; 쒁; 쒁; 쒁; ) HANGUL SYLLABLE SSWEOG
+C482;C482;110A 116F 11A9;C482;110A 116F 11A9; # (쒂; 쒂; 쒂; 쒂; 쒂; ) HANGUL SYLLABLE SSWEOGG
+C483;C483;110A 116F 11AA;C483;110A 116F 11AA; # (쒃; 쒃; 쒃; 쒃; 쒃; ) HANGUL SYLLABLE SSWEOGS
+C484;C484;110A 116F 11AB;C484;110A 116F 11AB; # (쒄; 쒄; 쒄; 쒄; 쒄; ) HANGUL SYLLABLE SSWEON
+C485;C485;110A 116F 11AC;C485;110A 116F 11AC; # (쒅; 쒅; 쒅; 쒅; 쒅; ) HANGUL SYLLABLE SSWEONJ
+C486;C486;110A 116F 11AD;C486;110A 116F 11AD; # (쒆; 쒆; 쒆; 쒆; 쒆; ) HANGUL SYLLABLE SSWEONH
+C487;C487;110A 116F 11AE;C487;110A 116F 11AE; # (쒇; 쒇; 쒇; 쒇; 쒇; ) HANGUL SYLLABLE SSWEOD
+C488;C488;110A 116F 11AF;C488;110A 116F 11AF; # (쒈; 쒈; 쒈; 쒈; 쒈; ) HANGUL SYLLABLE SSWEOL
+C489;C489;110A 116F 11B0;C489;110A 116F 11B0; # (쒉; 쒉; 쒉; 쒉; 쒉; ) HANGUL SYLLABLE SSWEOLG
+C48A;C48A;110A 116F 11B1;C48A;110A 116F 11B1; # (쒊; 쒊; 쒊; 쒊; 쒊; ) HANGUL SYLLABLE SSWEOLM
+C48B;C48B;110A 116F 11B2;C48B;110A 116F 11B2; # (쒋; 쒋; 쒋; 쒋; 쒋; ) HANGUL SYLLABLE SSWEOLB
+C48C;C48C;110A 116F 11B3;C48C;110A 116F 11B3; # (쒌; 쒌; 쒌; 쒌; 쒌; ) HANGUL SYLLABLE SSWEOLS
+C48D;C48D;110A 116F 11B4;C48D;110A 116F 11B4; # (쒍; 쒍; 쒍; 쒍; 쒍; ) HANGUL SYLLABLE SSWEOLT
+C48E;C48E;110A 116F 11B5;C48E;110A 116F 11B5; # (쒎; 쒎; 쒎; 쒎; 쒎; ) HANGUL SYLLABLE SSWEOLP
+C48F;C48F;110A 116F 11B6;C48F;110A 116F 11B6; # (쒏; 쒏; 쒏; 쒏; 쒏; ) HANGUL SYLLABLE SSWEOLH
+C490;C490;110A 116F 11B7;C490;110A 116F 11B7; # (쒐; 쒐; 쒐; 쒐; 쒐; ) HANGUL SYLLABLE SSWEOM
+C491;C491;110A 116F 11B8;C491;110A 116F 11B8; # (쒑; 쒑; 쒑; 쒑; 쒑; ) HANGUL SYLLABLE SSWEOB
+C492;C492;110A 116F 11B9;C492;110A 116F 11B9; # (쒒; 쒒; 쒒; 쒒; 쒒; ) HANGUL SYLLABLE SSWEOBS
+C493;C493;110A 116F 11BA;C493;110A 116F 11BA; # (쒓; 쒓; 쒓; 쒓; 쒓; ) HANGUL SYLLABLE SSWEOS
+C494;C494;110A 116F 11BB;C494;110A 116F 11BB; # (쒔; 쒔; 쒔; 쒔; 쒔; ) HANGUL SYLLABLE SSWEOSS
+C495;C495;110A 116F 11BC;C495;110A 116F 11BC; # (쒕; 쒕; 쒕; 쒕; 쒕; ) HANGUL SYLLABLE SSWEONG
+C496;C496;110A 116F 11BD;C496;110A 116F 11BD; # (쒖; 쒖; 쒖; 쒖; 쒖; ) HANGUL SYLLABLE SSWEOJ
+C497;C497;110A 116F 11BE;C497;110A 116F 11BE; # (쒗; 쒗; 쒗; 쒗; 쒗; ) HANGUL SYLLABLE SSWEOC
+C498;C498;110A 116F 11BF;C498;110A 116F 11BF; # (쒘; 쒘; 쒘; 쒘; 쒘; ) HANGUL SYLLABLE SSWEOK
+C499;C499;110A 116F 11C0;C499;110A 116F 11C0; # (쒙; 쒙; 쒙; 쒙; 쒙; ) HANGUL SYLLABLE SSWEOT
+C49A;C49A;110A 116F 11C1;C49A;110A 116F 11C1; # (쒚; 쒚; 쒚; 쒚; 쒚; ) HANGUL SYLLABLE SSWEOP
+C49B;C49B;110A 116F 11C2;C49B;110A 116F 11C2; # (쒛; 쒛; 쒛; 쒛; 쒛; ) HANGUL SYLLABLE SSWEOH
+C49C;C49C;110A 1170;C49C;110A 1170; # (쒜; 쒜; 쒜; 쒜; 쒜; ) HANGUL SYLLABLE SSWE
+C49D;C49D;110A 1170 11A8;C49D;110A 1170 11A8; # (쒝; 쒝; 쒝; 쒝; 쒝; ) HANGUL SYLLABLE SSWEG
+C49E;C49E;110A 1170 11A9;C49E;110A 1170 11A9; # (쒞; 쒞; 쒞; 쒞; 쒞; ) HANGUL SYLLABLE SSWEGG
+C49F;C49F;110A 1170 11AA;C49F;110A 1170 11AA; # (쒟; 쒟; 쒟; 쒟; 쒟; ) HANGUL SYLLABLE SSWEGS
+C4A0;C4A0;110A 1170 11AB;C4A0;110A 1170 11AB; # (쒠; 쒠; 쒠; 쒠; 쒠; ) HANGUL SYLLABLE SSWEN
+C4A1;C4A1;110A 1170 11AC;C4A1;110A 1170 11AC; # (쒡; 쒡; 쒡; 쒡; 쒡; ) HANGUL SYLLABLE SSWENJ
+C4A2;C4A2;110A 1170 11AD;C4A2;110A 1170 11AD; # (쒢; 쒢; 쒢; 쒢; 쒢; ) HANGUL SYLLABLE SSWENH
+C4A3;C4A3;110A 1170 11AE;C4A3;110A 1170 11AE; # (쒣; 쒣; 쒣; 쒣; 쒣; ) HANGUL SYLLABLE SSWED
+C4A4;C4A4;110A 1170 11AF;C4A4;110A 1170 11AF; # (쒤; 쒤; 쒤; 쒤; 쒤; ) HANGUL SYLLABLE SSWEL
+C4A5;C4A5;110A 1170 11B0;C4A5;110A 1170 11B0; # (쒥; 쒥; 쒥; 쒥; 쒥; ) HANGUL SYLLABLE SSWELG
+C4A6;C4A6;110A 1170 11B1;C4A6;110A 1170 11B1; # (쒦; 쒦; 쒦; 쒦; 쒦; ) HANGUL SYLLABLE SSWELM
+C4A7;C4A7;110A 1170 11B2;C4A7;110A 1170 11B2; # (쒧; 쒧; 쒧; 쒧; 쒧; ) HANGUL SYLLABLE SSWELB
+C4A8;C4A8;110A 1170 11B3;C4A8;110A 1170 11B3; # (쒨; 쒨; 쒨; 쒨; 쒨; ) HANGUL SYLLABLE SSWELS
+C4A9;C4A9;110A 1170 11B4;C4A9;110A 1170 11B4; # (쒩; 쒩; 쒩; 쒩; 쒩; ) HANGUL SYLLABLE SSWELT
+C4AA;C4AA;110A 1170 11B5;C4AA;110A 1170 11B5; # (쒪; 쒪; 쒪; 쒪; 쒪; ) HANGUL SYLLABLE SSWELP
+C4AB;C4AB;110A 1170 11B6;C4AB;110A 1170 11B6; # (쒫; 쒫; 쒫; 쒫; 쒫; ) HANGUL SYLLABLE SSWELH
+C4AC;C4AC;110A 1170 11B7;C4AC;110A 1170 11B7; # (쒬; 쒬; 쒬; 쒬; 쒬; ) HANGUL SYLLABLE SSWEM
+C4AD;C4AD;110A 1170 11B8;C4AD;110A 1170 11B8; # (쒭; 쒭; 쒭; 쒭; 쒭; ) HANGUL SYLLABLE SSWEB
+C4AE;C4AE;110A 1170 11B9;C4AE;110A 1170 11B9; # (쒮; 쒮; 쒮; 쒮; 쒮; ) HANGUL SYLLABLE SSWEBS
+C4AF;C4AF;110A 1170 11BA;C4AF;110A 1170 11BA; # (쒯; 쒯; 쒯; 쒯; 쒯; ) HANGUL SYLLABLE SSWES
+C4B0;C4B0;110A 1170 11BB;C4B0;110A 1170 11BB; # (쒰; 쒰; 쒰; 쒰; 쒰; ) HANGUL SYLLABLE SSWESS
+C4B1;C4B1;110A 1170 11BC;C4B1;110A 1170 11BC; # (쒱; 쒱; 쒱; 쒱; 쒱; ) HANGUL SYLLABLE SSWENG
+C4B2;C4B2;110A 1170 11BD;C4B2;110A 1170 11BD; # (쒲; 쒲; 쒲; 쒲; 쒲; ) HANGUL SYLLABLE SSWEJ
+C4B3;C4B3;110A 1170 11BE;C4B3;110A 1170 11BE; # (쒳; 쒳; 쒳; 쒳; 쒳; ) HANGUL SYLLABLE SSWEC
+C4B4;C4B4;110A 1170 11BF;C4B4;110A 1170 11BF; # (쒴; 쒴; 쒴; 쒴; 쒴; ) HANGUL SYLLABLE SSWEK
+C4B5;C4B5;110A 1170 11C0;C4B5;110A 1170 11C0; # (쒵; 쒵; 쒵; 쒵; 쒵; ) HANGUL SYLLABLE SSWET
+C4B6;C4B6;110A 1170 11C1;C4B6;110A 1170 11C1; # (쒶; 쒶; 쒶; 쒶; 쒶; ) HANGUL SYLLABLE SSWEP
+C4B7;C4B7;110A 1170 11C2;C4B7;110A 1170 11C2; # (쒷; 쒷; 쒷; 쒷; 쒷; ) HANGUL SYLLABLE SSWEH
+C4B8;C4B8;110A 1171;C4B8;110A 1171; # (쒸; 쒸; 쒸; 쒸; 쒸; ) HANGUL SYLLABLE SSWI
+C4B9;C4B9;110A 1171 11A8;C4B9;110A 1171 11A8; # (쒹; 쒹; 쒹; 쒹; 쒹; ) HANGUL SYLLABLE SSWIG
+C4BA;C4BA;110A 1171 11A9;C4BA;110A 1171 11A9; # (쒺; 쒺; 쒺; 쒺; 쒺; ) HANGUL SYLLABLE SSWIGG
+C4BB;C4BB;110A 1171 11AA;C4BB;110A 1171 11AA; # (쒻; 쒻; 쒻; 쒻; 쒻; ) HANGUL SYLLABLE SSWIGS
+C4BC;C4BC;110A 1171 11AB;C4BC;110A 1171 11AB; # (쒼; 쒼; 쒼; 쒼; 쒼; ) HANGUL SYLLABLE SSWIN
+C4BD;C4BD;110A 1171 11AC;C4BD;110A 1171 11AC; # (쒽; 쒽; 쒽; 쒽; 쒽; ) HANGUL SYLLABLE SSWINJ
+C4BE;C4BE;110A 1171 11AD;C4BE;110A 1171 11AD; # (쒾; 쒾; 쒾; 쒾; 쒾; ) HANGUL SYLLABLE SSWINH
+C4BF;C4BF;110A 1171 11AE;C4BF;110A 1171 11AE; # (쒿; 쒿; 쒿; 쒿; 쒿; ) HANGUL SYLLABLE SSWID
+C4C0;C4C0;110A 1171 11AF;C4C0;110A 1171 11AF; # (쓀; 쓀; 쓀; 쓀; 쓀; ) HANGUL SYLLABLE SSWIL
+C4C1;C4C1;110A 1171 11B0;C4C1;110A 1171 11B0; # (쓁; 쓁; 쓁; 쓁; 쓁; ) HANGUL SYLLABLE SSWILG
+C4C2;C4C2;110A 1171 11B1;C4C2;110A 1171 11B1; # (쓂; 쓂; 쓂; 쓂; 쓂; ) HANGUL SYLLABLE SSWILM
+C4C3;C4C3;110A 1171 11B2;C4C3;110A 1171 11B2; # (쓃; 쓃; 쓃; 쓃; 쓃; ) HANGUL SYLLABLE SSWILB
+C4C4;C4C4;110A 1171 11B3;C4C4;110A 1171 11B3; # (쓄; 쓄; 쓄; 쓄; 쓄; ) HANGUL SYLLABLE SSWILS
+C4C5;C4C5;110A 1171 11B4;C4C5;110A 1171 11B4; # (쓅; 쓅; 쓅; 쓅; 쓅; ) HANGUL SYLLABLE SSWILT
+C4C6;C4C6;110A 1171 11B5;C4C6;110A 1171 11B5; # (쓆; 쓆; 쓆; 쓆; 쓆; ) HANGUL SYLLABLE SSWILP
+C4C7;C4C7;110A 1171 11B6;C4C7;110A 1171 11B6; # (쓇; 쓇; 쓇; 쓇; 쓇; ) HANGUL SYLLABLE SSWILH
+C4C8;C4C8;110A 1171 11B7;C4C8;110A 1171 11B7; # (쓈; 쓈; 쓈; 쓈; 쓈; ) HANGUL SYLLABLE SSWIM
+C4C9;C4C9;110A 1171 11B8;C4C9;110A 1171 11B8; # (쓉; 쓉; 쓉; 쓉; 쓉; ) HANGUL SYLLABLE SSWIB
+C4CA;C4CA;110A 1171 11B9;C4CA;110A 1171 11B9; # (쓊; 쓊; 쓊; 쓊; 쓊; ) HANGUL SYLLABLE SSWIBS
+C4CB;C4CB;110A 1171 11BA;C4CB;110A 1171 11BA; # (쓋; 쓋; 쓋; 쓋; 쓋; ) HANGUL SYLLABLE SSWIS
+C4CC;C4CC;110A 1171 11BB;C4CC;110A 1171 11BB; # (쓌; 쓌; 쓌; 쓌; 쓌; ) HANGUL SYLLABLE SSWISS
+C4CD;C4CD;110A 1171 11BC;C4CD;110A 1171 11BC; # (쓍; 쓍; 쓍; 쓍; 쓍; ) HANGUL SYLLABLE SSWING
+C4CE;C4CE;110A 1171 11BD;C4CE;110A 1171 11BD; # (쓎; 쓎; 쓎; 쓎; 쓎; ) HANGUL SYLLABLE SSWIJ
+C4CF;C4CF;110A 1171 11BE;C4CF;110A 1171 11BE; # (쓏; 쓏; 쓏; 쓏; 쓏; ) HANGUL SYLLABLE SSWIC
+C4D0;C4D0;110A 1171 11BF;C4D0;110A 1171 11BF; # (쓐; 쓐; 쓐; 쓐; 쓐; ) HANGUL SYLLABLE SSWIK
+C4D1;C4D1;110A 1171 11C0;C4D1;110A 1171 11C0; # (쓑; 쓑; 쓑; 쓑; 쓑; ) HANGUL SYLLABLE SSWIT
+C4D2;C4D2;110A 1171 11C1;C4D2;110A 1171 11C1; # (쓒; 쓒; 쓒; 쓒; 쓒; ) HANGUL SYLLABLE SSWIP
+C4D3;C4D3;110A 1171 11C2;C4D3;110A 1171 11C2; # (쓓; 쓓; 쓓; 쓓; 쓓; ) HANGUL SYLLABLE SSWIH
+C4D4;C4D4;110A 1172;C4D4;110A 1172; # (쓔; 쓔; 쓔; 쓔; 쓔; ) HANGUL SYLLABLE SSYU
+C4D5;C4D5;110A 1172 11A8;C4D5;110A 1172 11A8; # (쓕; 쓕; 쓕; 쓕; 쓕; ) HANGUL SYLLABLE SSYUG
+C4D6;C4D6;110A 1172 11A9;C4D6;110A 1172 11A9; # (쓖; 쓖; 쓖; 쓖; 쓖; ) HANGUL SYLLABLE SSYUGG
+C4D7;C4D7;110A 1172 11AA;C4D7;110A 1172 11AA; # (쓗; 쓗; 쓗; 쓗; 쓗; ) HANGUL SYLLABLE SSYUGS
+C4D8;C4D8;110A 1172 11AB;C4D8;110A 1172 11AB; # (쓘; 쓘; 쓘; 쓘; 쓘; ) HANGUL SYLLABLE SSYUN
+C4D9;C4D9;110A 1172 11AC;C4D9;110A 1172 11AC; # (쓙; 쓙; 쓙; 쓙; 쓙; ) HANGUL SYLLABLE SSYUNJ
+C4DA;C4DA;110A 1172 11AD;C4DA;110A 1172 11AD; # (쓚; 쓚; 쓚; 쓚; 쓚; ) HANGUL SYLLABLE SSYUNH
+C4DB;C4DB;110A 1172 11AE;C4DB;110A 1172 11AE; # (쓛; 쓛; 쓛; 쓛; 쓛; ) HANGUL SYLLABLE SSYUD
+C4DC;C4DC;110A 1172 11AF;C4DC;110A 1172 11AF; # (쓜; 쓜; 쓜; 쓜; 쓜; ) HANGUL SYLLABLE SSYUL
+C4DD;C4DD;110A 1172 11B0;C4DD;110A 1172 11B0; # (쓝; 쓝; 쓝; 쓝; 쓝; ) HANGUL SYLLABLE SSYULG
+C4DE;C4DE;110A 1172 11B1;C4DE;110A 1172 11B1; # (쓞; 쓞; 쓞; 쓞; 쓞; ) HANGUL SYLLABLE SSYULM
+C4DF;C4DF;110A 1172 11B2;C4DF;110A 1172 11B2; # (쓟; 쓟; 쓟; 쓟; 쓟; ) HANGUL SYLLABLE SSYULB
+C4E0;C4E0;110A 1172 11B3;C4E0;110A 1172 11B3; # (쓠; 쓠; 쓠; 쓠; 쓠; ) HANGUL SYLLABLE SSYULS
+C4E1;C4E1;110A 1172 11B4;C4E1;110A 1172 11B4; # (쓡; 쓡; 쓡; 쓡; 쓡; ) HANGUL SYLLABLE SSYULT
+C4E2;C4E2;110A 1172 11B5;C4E2;110A 1172 11B5; # (쓢; 쓢; 쓢; 쓢; 쓢; ) HANGUL SYLLABLE SSYULP
+C4E3;C4E3;110A 1172 11B6;C4E3;110A 1172 11B6; # (쓣; 쓣; 쓣; 쓣; 쓣; ) HANGUL SYLLABLE SSYULH
+C4E4;C4E4;110A 1172 11B7;C4E4;110A 1172 11B7; # (쓤; 쓤; 쓤; 쓤; 쓤; ) HANGUL SYLLABLE SSYUM
+C4E5;C4E5;110A 1172 11B8;C4E5;110A 1172 11B8; # (쓥; 쓥; 쓥; 쓥; 쓥; ) HANGUL SYLLABLE SSYUB
+C4E6;C4E6;110A 1172 11B9;C4E6;110A 1172 11B9; # (쓦; 쓦; 쓦; 쓦; 쓦; ) HANGUL SYLLABLE SSYUBS
+C4E7;C4E7;110A 1172 11BA;C4E7;110A 1172 11BA; # (쓧; 쓧; 쓧; 쓧; 쓧; ) HANGUL SYLLABLE SSYUS
+C4E8;C4E8;110A 1172 11BB;C4E8;110A 1172 11BB; # (쓨; 쓨; 쓨; 쓨; 쓨; ) HANGUL SYLLABLE SSYUSS
+C4E9;C4E9;110A 1172 11BC;C4E9;110A 1172 11BC; # (쓩; 쓩; 쓩; 쓩; 쓩; ) HANGUL SYLLABLE SSYUNG
+C4EA;C4EA;110A 1172 11BD;C4EA;110A 1172 11BD; # (쓪; 쓪; 쓪; 쓪; 쓪; ) HANGUL SYLLABLE SSYUJ
+C4EB;C4EB;110A 1172 11BE;C4EB;110A 1172 11BE; # (쓫; 쓫; 쓫; 쓫; 쓫; ) HANGUL SYLLABLE SSYUC
+C4EC;C4EC;110A 1172 11BF;C4EC;110A 1172 11BF; # (쓬; 쓬; 쓬; 쓬; 쓬; ) HANGUL SYLLABLE SSYUK
+C4ED;C4ED;110A 1172 11C0;C4ED;110A 1172 11C0; # (쓭; 쓭; 쓭; 쓭; 쓭; ) HANGUL SYLLABLE SSYUT
+C4EE;C4EE;110A 1172 11C1;C4EE;110A 1172 11C1; # (쓮; 쓮; 쓮; 쓮; 쓮; ) HANGUL SYLLABLE SSYUP
+C4EF;C4EF;110A 1172 11C2;C4EF;110A 1172 11C2; # (쓯; 쓯; 쓯; 쓯; 쓯; ) HANGUL SYLLABLE SSYUH
+C4F0;C4F0;110A 1173;C4F0;110A 1173; # (쓰; 쓰; 쓰; 쓰; 쓰; ) HANGUL SYLLABLE SSEU
+C4F1;C4F1;110A 1173 11A8;C4F1;110A 1173 11A8; # (쓱; 쓱; 쓱; 쓱; 쓱; ) HANGUL SYLLABLE SSEUG
+C4F2;C4F2;110A 1173 11A9;C4F2;110A 1173 11A9; # (쓲; 쓲; 쓲; 쓲; 쓲; ) HANGUL SYLLABLE SSEUGG
+C4F3;C4F3;110A 1173 11AA;C4F3;110A 1173 11AA; # (쓳; 쓳; 쓳; 쓳; 쓳; ) HANGUL SYLLABLE SSEUGS
+C4F4;C4F4;110A 1173 11AB;C4F4;110A 1173 11AB; # (쓴; 쓴; 쓴; 쓴; 쓴; ) HANGUL SYLLABLE SSEUN
+C4F5;C4F5;110A 1173 11AC;C4F5;110A 1173 11AC; # (쓵; 쓵; 쓵; 쓵; 쓵; ) HANGUL SYLLABLE SSEUNJ
+C4F6;C4F6;110A 1173 11AD;C4F6;110A 1173 11AD; # (쓶; 쓶; 쓶; 쓶; 쓶; ) HANGUL SYLLABLE SSEUNH
+C4F7;C4F7;110A 1173 11AE;C4F7;110A 1173 11AE; # (쓷; 쓷; 쓷; 쓷; 쓷; ) HANGUL SYLLABLE SSEUD
+C4F8;C4F8;110A 1173 11AF;C4F8;110A 1173 11AF; # (쓸; 쓸; 쓸; 쓸; 쓸; ) HANGUL SYLLABLE SSEUL
+C4F9;C4F9;110A 1173 11B0;C4F9;110A 1173 11B0; # (쓹; 쓹; 쓹; 쓹; 쓹; ) HANGUL SYLLABLE SSEULG
+C4FA;C4FA;110A 1173 11B1;C4FA;110A 1173 11B1; # (쓺; 쓺; 쓺; 쓺; 쓺; ) HANGUL SYLLABLE SSEULM
+C4FB;C4FB;110A 1173 11B2;C4FB;110A 1173 11B2; # (쓻; 쓻; 쓻; 쓻; 쓻; ) HANGUL SYLLABLE SSEULB
+C4FC;C4FC;110A 1173 11B3;C4FC;110A 1173 11B3; # (쓼; 쓼; 쓼; 쓼; 쓼; ) HANGUL SYLLABLE SSEULS
+C4FD;C4FD;110A 1173 11B4;C4FD;110A 1173 11B4; # (쓽; 쓽; 쓽; 쓽; 쓽; ) HANGUL SYLLABLE SSEULT
+C4FE;C4FE;110A 1173 11B5;C4FE;110A 1173 11B5; # (쓾; 쓾; 쓾; 쓾; 쓾; ) HANGUL SYLLABLE SSEULP
+C4FF;C4FF;110A 1173 11B6;C4FF;110A 1173 11B6; # (쓿; 쓿; 쓿; 쓿; 쓿; ) HANGUL SYLLABLE SSEULH
+C500;C500;110A 1173 11B7;C500;110A 1173 11B7; # (씀; 씀; 씀; 씀; 씀; ) HANGUL SYLLABLE SSEUM
+C501;C501;110A 1173 11B8;C501;110A 1173 11B8; # (씁; 씁; 씁; 씁; 씁; ) HANGUL SYLLABLE SSEUB
+C502;C502;110A 1173 11B9;C502;110A 1173 11B9; # (씂; 씂; 씂; 씂; 씂; ) HANGUL SYLLABLE SSEUBS
+C503;C503;110A 1173 11BA;C503;110A 1173 11BA; # (씃; 씃; 씃; 씃; 씃; ) HANGUL SYLLABLE SSEUS
+C504;C504;110A 1173 11BB;C504;110A 1173 11BB; # (씄; 씄; 씄; 씄; 씄; ) HANGUL SYLLABLE SSEUSS
+C505;C505;110A 1173 11BC;C505;110A 1173 11BC; # (씅; 씅; 씅; 씅; 씅; ) HANGUL SYLLABLE SSEUNG
+C506;C506;110A 1173 11BD;C506;110A 1173 11BD; # (씆; 씆; 씆; 씆; 씆; ) HANGUL SYLLABLE SSEUJ
+C507;C507;110A 1173 11BE;C507;110A 1173 11BE; # (씇; 씇; 씇; 씇; 씇; ) HANGUL SYLLABLE SSEUC
+C508;C508;110A 1173 11BF;C508;110A 1173 11BF; # (씈; 씈; 씈; 씈; 씈; ) HANGUL SYLLABLE SSEUK
+C509;C509;110A 1173 11C0;C509;110A 1173 11C0; # (씉; 씉; 씉; 씉; 씉; ) HANGUL SYLLABLE SSEUT
+C50A;C50A;110A 1173 11C1;C50A;110A 1173 11C1; # (씊; 씊; 씊; 씊; 씊; ) HANGUL SYLLABLE SSEUP
+C50B;C50B;110A 1173 11C2;C50B;110A 1173 11C2; # (씋; 씋; 씋; 씋; 씋; ) HANGUL SYLLABLE SSEUH
+C50C;C50C;110A 1174;C50C;110A 1174; # (씌; 씌; 씌; 씌; 씌; ) HANGUL SYLLABLE SSYI
+C50D;C50D;110A 1174 11A8;C50D;110A 1174 11A8; # (씍; 씍; 씍; 씍; 씍; ) HANGUL SYLLABLE SSYIG
+C50E;C50E;110A 1174 11A9;C50E;110A 1174 11A9; # (씎; 씎; 씎; 씎; 씎; ) HANGUL SYLLABLE SSYIGG
+C50F;C50F;110A 1174 11AA;C50F;110A 1174 11AA; # (씏; 씏; 씏; 씏; 씏; ) HANGUL SYLLABLE SSYIGS
+C510;C510;110A 1174 11AB;C510;110A 1174 11AB; # (씐; 씐; 씐; 씐; 씐; ) HANGUL SYLLABLE SSYIN
+C511;C511;110A 1174 11AC;C511;110A 1174 11AC; # (씑; 씑; 씑; 씑; 씑; ) HANGUL SYLLABLE SSYINJ
+C512;C512;110A 1174 11AD;C512;110A 1174 11AD; # (씒; 씒; 씒; 씒; 씒; ) HANGUL SYLLABLE SSYINH
+C513;C513;110A 1174 11AE;C513;110A 1174 11AE; # (씓; 씓; 씓; 씓; 씓; ) HANGUL SYLLABLE SSYID
+C514;C514;110A 1174 11AF;C514;110A 1174 11AF; # (씔; 씔; 씔; 씔; 씔; ) HANGUL SYLLABLE SSYIL
+C515;C515;110A 1174 11B0;C515;110A 1174 11B0; # (씕; 씕; 씕; 씕; 씕; ) HANGUL SYLLABLE SSYILG
+C516;C516;110A 1174 11B1;C516;110A 1174 11B1; # (씖; 씖; 씖; 씖; 씖; ) HANGUL SYLLABLE SSYILM
+C517;C517;110A 1174 11B2;C517;110A 1174 11B2; # (씗; 씗; 씗; 씗; 씗; ) HANGUL SYLLABLE SSYILB
+C518;C518;110A 1174 11B3;C518;110A 1174 11B3; # (씘; 씘; 씘; 씘; 씘; ) HANGUL SYLLABLE SSYILS
+C519;C519;110A 1174 11B4;C519;110A 1174 11B4; # (씙; 씙; 씙; 씙; 씙; ) HANGUL SYLLABLE SSYILT
+C51A;C51A;110A 1174 11B5;C51A;110A 1174 11B5; # (씚; 씚; 씚; 씚; 씚; ) HANGUL SYLLABLE SSYILP
+C51B;C51B;110A 1174 11B6;C51B;110A 1174 11B6; # (씛; 씛; 씛; 씛; 씛; ) HANGUL SYLLABLE SSYILH
+C51C;C51C;110A 1174 11B7;C51C;110A 1174 11B7; # (씜; 씜; 씜; 씜; 씜; ) HANGUL SYLLABLE SSYIM
+C51D;C51D;110A 1174 11B8;C51D;110A 1174 11B8; # (씝; 씝; 씝; 씝; 씝; ) HANGUL SYLLABLE SSYIB
+C51E;C51E;110A 1174 11B9;C51E;110A 1174 11B9; # (씞; 씞; 씞; 씞; 씞; ) HANGUL SYLLABLE SSYIBS
+C51F;C51F;110A 1174 11BA;C51F;110A 1174 11BA; # (씟; 씟; 씟; 씟; 씟; ) HANGUL SYLLABLE SSYIS
+C520;C520;110A 1174 11BB;C520;110A 1174 11BB; # (씠; 씠; 씠; 씠; 씠; ) HANGUL SYLLABLE SSYISS
+C521;C521;110A 1174 11BC;C521;110A 1174 11BC; # (씡; 씡; 씡; 씡; 씡; ) HANGUL SYLLABLE SSYING
+C522;C522;110A 1174 11BD;C522;110A 1174 11BD; # (씢; 씢; 씢; 씢; 씢; ) HANGUL SYLLABLE SSYIJ
+C523;C523;110A 1174 11BE;C523;110A 1174 11BE; # (씣; 씣; 씣; 씣; 씣; ) HANGUL SYLLABLE SSYIC
+C524;C524;110A 1174 11BF;C524;110A 1174 11BF; # (씤; 씤; 씤; 씤; 씤; ) HANGUL SYLLABLE SSYIK
+C525;C525;110A 1174 11C0;C525;110A 1174 11C0; # (씥; 씥; 씥; 씥; 씥; ) HANGUL SYLLABLE SSYIT
+C526;C526;110A 1174 11C1;C526;110A 1174 11C1; # (씦; 씦; 씦; 씦; 씦; ) HANGUL SYLLABLE SSYIP
+C527;C527;110A 1174 11C2;C527;110A 1174 11C2; # (씧; 씧; 씧; 씧; 씧; ) HANGUL SYLLABLE SSYIH
+C528;C528;110A 1175;C528;110A 1175; # (씨; 씨; 씨; 씨; 씨; ) HANGUL SYLLABLE SSI
+C529;C529;110A 1175 11A8;C529;110A 1175 11A8; # (씩; 씩; 씩; 씩; 씩; ) HANGUL SYLLABLE SSIG
+C52A;C52A;110A 1175 11A9;C52A;110A 1175 11A9; # (씪; 씪; 씪; 씪; 씪; ) HANGUL SYLLABLE SSIGG
+C52B;C52B;110A 1175 11AA;C52B;110A 1175 11AA; # (씫; 씫; 씫; 씫; 씫; ) HANGUL SYLLABLE SSIGS
+C52C;C52C;110A 1175 11AB;C52C;110A 1175 11AB; # (씬; 씬; 씬; 씬; 씬; ) HANGUL SYLLABLE SSIN
+C52D;C52D;110A 1175 11AC;C52D;110A 1175 11AC; # (씭; 씭; 씭; 씭; 씭; ) HANGUL SYLLABLE SSINJ
+C52E;C52E;110A 1175 11AD;C52E;110A 1175 11AD; # (씮; 씮; 씮; 씮; 씮; ) HANGUL SYLLABLE SSINH
+C52F;C52F;110A 1175 11AE;C52F;110A 1175 11AE; # (씯; 씯; 씯; 씯; 씯; ) HANGUL SYLLABLE SSID
+C530;C530;110A 1175 11AF;C530;110A 1175 11AF; # (씰; 씰; 씰; 씰; 씰; ) HANGUL SYLLABLE SSIL
+C531;C531;110A 1175 11B0;C531;110A 1175 11B0; # (씱; 씱; 씱; 씱; 씱; ) HANGUL SYLLABLE SSILG
+C532;C532;110A 1175 11B1;C532;110A 1175 11B1; # (씲; 씲; 씲; 씲; 씲; ) HANGUL SYLLABLE SSILM
+C533;C533;110A 1175 11B2;C533;110A 1175 11B2; # (씳; 씳; 씳; 씳; 씳; ) HANGUL SYLLABLE SSILB
+C534;C534;110A 1175 11B3;C534;110A 1175 11B3; # (씴; 씴; 씴; 씴; 씴; ) HANGUL SYLLABLE SSILS
+C535;C535;110A 1175 11B4;C535;110A 1175 11B4; # (씵; 씵; 씵; 씵; 씵; ) HANGUL SYLLABLE SSILT
+C536;C536;110A 1175 11B5;C536;110A 1175 11B5; # (씶; 씶; 씶; 씶; 씶; ) HANGUL SYLLABLE SSILP
+C537;C537;110A 1175 11B6;C537;110A 1175 11B6; # (씷; 씷; 씷; 씷; 씷; ) HANGUL SYLLABLE SSILH
+C538;C538;110A 1175 11B7;C538;110A 1175 11B7; # (씸; 씸; 씸; 씸; 씸; ) HANGUL SYLLABLE SSIM
+C539;C539;110A 1175 11B8;C539;110A 1175 11B8; # (씹; 씹; 씹; 씹; 씹; ) HANGUL SYLLABLE SSIB
+C53A;C53A;110A 1175 11B9;C53A;110A 1175 11B9; # (씺; 씺; 씺; 씺; 씺; ) HANGUL SYLLABLE SSIBS
+C53B;C53B;110A 1175 11BA;C53B;110A 1175 11BA; # (씻; 씻; 씻; 씻; 씻; ) HANGUL SYLLABLE SSIS
+C53C;C53C;110A 1175 11BB;C53C;110A 1175 11BB; # (씼; 씼; 씼; 씼; 씼; ) HANGUL SYLLABLE SSISS
+C53D;C53D;110A 1175 11BC;C53D;110A 1175 11BC; # (씽; 씽; 씽; 씽; 씽; ) HANGUL SYLLABLE SSING
+C53E;C53E;110A 1175 11BD;C53E;110A 1175 11BD; # (씾; 씾; 씾; 씾; 씾; ) HANGUL SYLLABLE SSIJ
+C53F;C53F;110A 1175 11BE;C53F;110A 1175 11BE; # (씿; 씿; 씿; 씿; 씿; ) HANGUL SYLLABLE SSIC
+C540;C540;110A 1175 11BF;C540;110A 1175 11BF; # (앀; 앀; 앀; 앀; 앀; ) HANGUL SYLLABLE SSIK
+C541;C541;110A 1175 11C0;C541;110A 1175 11C0; # (앁; 앁; 앁; 앁; 앁; ) HANGUL SYLLABLE SSIT
+C542;C542;110A 1175 11C1;C542;110A 1175 11C1; # (앂; 앂; 앂; 앂; 앂; ) HANGUL SYLLABLE SSIP
+C543;C543;110A 1175 11C2;C543;110A 1175 11C2; # (앃; 앃; 앃; 앃; 앃; ) HANGUL SYLLABLE SSIH
+C544;C544;110B 1161;C544;110B 1161; # (아; 아; 아; 아; 아; ) HANGUL SYLLABLE A
+C545;C545;110B 1161 11A8;C545;110B 1161 11A8; # (악; 악; 악; 악; 악; ) HANGUL SYLLABLE AG
+C546;C546;110B 1161 11A9;C546;110B 1161 11A9; # (앆; 앆; 앆; 앆; 앆; ) HANGUL SYLLABLE AGG
+C547;C547;110B 1161 11AA;C547;110B 1161 11AA; # (앇; 앇; 앇; 앇; 앇; ) HANGUL SYLLABLE AGS
+C548;C548;110B 1161 11AB;C548;110B 1161 11AB; # (안; 안; 안; 안; 안; ) HANGUL SYLLABLE AN
+C549;C549;110B 1161 11AC;C549;110B 1161 11AC; # (앉; 앉; 앉; 앉; 앉; ) HANGUL SYLLABLE ANJ
+C54A;C54A;110B 1161 11AD;C54A;110B 1161 11AD; # (않; 않; 않; 않; 않; ) HANGUL SYLLABLE ANH
+C54B;C54B;110B 1161 11AE;C54B;110B 1161 11AE; # (앋; 앋; 앋; 앋; 앋; ) HANGUL SYLLABLE AD
+C54C;C54C;110B 1161 11AF;C54C;110B 1161 11AF; # (알; 알; 알; 알; 알; ) HANGUL SYLLABLE AL
+C54D;C54D;110B 1161 11B0;C54D;110B 1161 11B0; # (앍; 앍; 앍; 앍; 앍; ) HANGUL SYLLABLE ALG
+C54E;C54E;110B 1161 11B1;C54E;110B 1161 11B1; # (앎; 앎; 앎; 앎; 앎; ) HANGUL SYLLABLE ALM
+C54F;C54F;110B 1161 11B2;C54F;110B 1161 11B2; # (앏; 앏; 앏; 앏; 앏; ) HANGUL SYLLABLE ALB
+C550;C550;110B 1161 11B3;C550;110B 1161 11B3; # (앐; 앐; 앐; 앐; 앐; ) HANGUL SYLLABLE ALS
+C551;C551;110B 1161 11B4;C551;110B 1161 11B4; # (앑; 앑; 앑; 앑; 앑; ) HANGUL SYLLABLE ALT
+C552;C552;110B 1161 11B5;C552;110B 1161 11B5; # (앒; 앒; 앒; 앒; 앒; ) HANGUL SYLLABLE ALP
+C553;C553;110B 1161 11B6;C553;110B 1161 11B6; # (앓; 앓; 앓; 앓; 앓; ) HANGUL SYLLABLE ALH
+C554;C554;110B 1161 11B7;C554;110B 1161 11B7; # (암; 암; 암; 암; 암; ) HANGUL SYLLABLE AM
+C555;C555;110B 1161 11B8;C555;110B 1161 11B8; # (압; 압; 압; 압; 압; ) HANGUL SYLLABLE AB
+C556;C556;110B 1161 11B9;C556;110B 1161 11B9; # (앖; 앖; 앖; 앖; 앖; ) HANGUL SYLLABLE ABS
+C557;C557;110B 1161 11BA;C557;110B 1161 11BA; # (앗; 앗; 앗; 앗; 앗; ) HANGUL SYLLABLE AS
+C558;C558;110B 1161 11BB;C558;110B 1161 11BB; # (았; 았; 았; 았; 았; ) HANGUL SYLLABLE ASS
+C559;C559;110B 1161 11BC;C559;110B 1161 11BC; # (앙; 앙; 앙; 앙; 앙; ) HANGUL SYLLABLE ANG
+C55A;C55A;110B 1161 11BD;C55A;110B 1161 11BD; # (앚; 앚; 앚; 앚; 앚; ) HANGUL SYLLABLE AJ
+C55B;C55B;110B 1161 11BE;C55B;110B 1161 11BE; # (앛; 앛; 앛; 앛; 앛; ) HANGUL SYLLABLE AC
+C55C;C55C;110B 1161 11BF;C55C;110B 1161 11BF; # (앜; 앜; 앜; 앜; 앜; ) HANGUL SYLLABLE AK
+C55D;C55D;110B 1161 11C0;C55D;110B 1161 11C0; # (앝; 앝; 앝; 앝; 앝; ) HANGUL SYLLABLE AT
+C55E;C55E;110B 1161 11C1;C55E;110B 1161 11C1; # (앞; 앞; 앞; 앞; 앞; ) HANGUL SYLLABLE AP
+C55F;C55F;110B 1161 11C2;C55F;110B 1161 11C2; # (앟; 앟; 앟; 앟; 앟; ) HANGUL SYLLABLE AH
+C560;C560;110B 1162;C560;110B 1162; # (애; 애; 애; 애; 애; ) HANGUL SYLLABLE AE
+C561;C561;110B 1162 11A8;C561;110B 1162 11A8; # (액; 액; 액; 액; 액; ) HANGUL SYLLABLE AEG
+C562;C562;110B 1162 11A9;C562;110B 1162 11A9; # (앢; 앢; 앢; 앢; 앢; ) HANGUL SYLLABLE AEGG
+C563;C563;110B 1162 11AA;C563;110B 1162 11AA; # (앣; 앣; 앣; 앣; 앣; ) HANGUL SYLLABLE AEGS
+C564;C564;110B 1162 11AB;C564;110B 1162 11AB; # (앤; 앤; 앤; 앤; 앤; ) HANGUL SYLLABLE AEN
+C565;C565;110B 1162 11AC;C565;110B 1162 11AC; # (앥; 앥; 앥; 앥; 앥; ) HANGUL SYLLABLE AENJ
+C566;C566;110B 1162 11AD;C566;110B 1162 11AD; # (앦; 앦; 앦; 앦; 앦; ) HANGUL SYLLABLE AENH
+C567;C567;110B 1162 11AE;C567;110B 1162 11AE; # (앧; 앧; 앧; 앧; 앧; ) HANGUL SYLLABLE AED
+C568;C568;110B 1162 11AF;C568;110B 1162 11AF; # (앨; 앨; 앨; 앨; 앨; ) HANGUL SYLLABLE AEL
+C569;C569;110B 1162 11B0;C569;110B 1162 11B0; # (앩; 앩; 앩; 앩; 앩; ) HANGUL SYLLABLE AELG
+C56A;C56A;110B 1162 11B1;C56A;110B 1162 11B1; # (앪; 앪; 앪; 앪; 앪; ) HANGUL SYLLABLE AELM
+C56B;C56B;110B 1162 11B2;C56B;110B 1162 11B2; # (앫; 앫; 앫; 앫; 앫; ) HANGUL SYLLABLE AELB
+C56C;C56C;110B 1162 11B3;C56C;110B 1162 11B3; # (앬; 앬; 앬; 앬; 앬; ) HANGUL SYLLABLE AELS
+C56D;C56D;110B 1162 11B4;C56D;110B 1162 11B4; # (앭; 앭; 앭; 앭; 앭; ) HANGUL SYLLABLE AELT
+C56E;C56E;110B 1162 11B5;C56E;110B 1162 11B5; # (앮; 앮; 앮; 앮; 앮; ) HANGUL SYLLABLE AELP
+C56F;C56F;110B 1162 11B6;C56F;110B 1162 11B6; # (앯; 앯; 앯; 앯; 앯; ) HANGUL SYLLABLE AELH
+C570;C570;110B 1162 11B7;C570;110B 1162 11B7; # (앰; 앰; 앰; 앰; 앰; ) HANGUL SYLLABLE AEM
+C571;C571;110B 1162 11B8;C571;110B 1162 11B8; # (앱; 앱; 앱; 앱; 앱; ) HANGUL SYLLABLE AEB
+C572;C572;110B 1162 11B9;C572;110B 1162 11B9; # (앲; 앲; 앲; 앲; 앲; ) HANGUL SYLLABLE AEBS
+C573;C573;110B 1162 11BA;C573;110B 1162 11BA; # (앳; 앳; 앳; 앳; 앳; ) HANGUL SYLLABLE AES
+C574;C574;110B 1162 11BB;C574;110B 1162 11BB; # (앴; 앴; 앴; 앴; 앴; ) HANGUL SYLLABLE AESS
+C575;C575;110B 1162 11BC;C575;110B 1162 11BC; # (앵; 앵; 앵; 앵; 앵; ) HANGUL SYLLABLE AENG
+C576;C576;110B 1162 11BD;C576;110B 1162 11BD; # (앶; 앶; 앶; 앶; 앶; ) HANGUL SYLLABLE AEJ
+C577;C577;110B 1162 11BE;C577;110B 1162 11BE; # (앷; 앷; 앷; 앷; 앷; ) HANGUL SYLLABLE AEC
+C578;C578;110B 1162 11BF;C578;110B 1162 11BF; # (앸; 앸; 앸; 앸; 앸; ) HANGUL SYLLABLE AEK
+C579;C579;110B 1162 11C0;C579;110B 1162 11C0; # (앹; 앹; 앹; 앹; 앹; ) HANGUL SYLLABLE AET
+C57A;C57A;110B 1162 11C1;C57A;110B 1162 11C1; # (앺; 앺; 앺; 앺; 앺; ) HANGUL SYLLABLE AEP
+C57B;C57B;110B 1162 11C2;C57B;110B 1162 11C2; # (앻; 앻; 앻; 앻; 앻; ) HANGUL SYLLABLE AEH
+C57C;C57C;110B 1163;C57C;110B 1163; # (야; 야; 야; 야; 야; ) HANGUL SYLLABLE YA
+C57D;C57D;110B 1163 11A8;C57D;110B 1163 11A8; # (약; 약; 약; 약; 약; ) HANGUL SYLLABLE YAG
+C57E;C57E;110B 1163 11A9;C57E;110B 1163 11A9; # (앾; 앾; 앾; 앾; 앾; ) HANGUL SYLLABLE YAGG
+C57F;C57F;110B 1163 11AA;C57F;110B 1163 11AA; # (앿; 앿; 앿; 앿; 앿; ) HANGUL SYLLABLE YAGS
+C580;C580;110B 1163 11AB;C580;110B 1163 11AB; # (얀; 얀; 얀; 얀; 얀; ) HANGUL SYLLABLE YAN
+C581;C581;110B 1163 11AC;C581;110B 1163 11AC; # (얁; 얁; 얁; 얁; 얁; ) HANGUL SYLLABLE YANJ
+C582;C582;110B 1163 11AD;C582;110B 1163 11AD; # (얂; 얂; 얂; 얂; 얂; ) HANGUL SYLLABLE YANH
+C583;C583;110B 1163 11AE;C583;110B 1163 11AE; # (얃; 얃; 얃; 얃; 얃; ) HANGUL SYLLABLE YAD
+C584;C584;110B 1163 11AF;C584;110B 1163 11AF; # (얄; 얄; 얄; 얄; 얄; ) HANGUL SYLLABLE YAL
+C585;C585;110B 1163 11B0;C585;110B 1163 11B0; # (얅; 얅; 얅; 얅; 얅; ) HANGUL SYLLABLE YALG
+C586;C586;110B 1163 11B1;C586;110B 1163 11B1; # (얆; 얆; 얆; 얆; 얆; ) HANGUL SYLLABLE YALM
+C587;C587;110B 1163 11B2;C587;110B 1163 11B2; # (얇; 얇; 얇; 얇; 얇; ) HANGUL SYLLABLE YALB
+C588;C588;110B 1163 11B3;C588;110B 1163 11B3; # (얈; 얈; 얈; 얈; 얈; ) HANGUL SYLLABLE YALS
+C589;C589;110B 1163 11B4;C589;110B 1163 11B4; # (얉; 얉; 얉; 얉; 얉; ) HANGUL SYLLABLE YALT
+C58A;C58A;110B 1163 11B5;C58A;110B 1163 11B5; # (얊; 얊; 얊; 얊; 얊; ) HANGUL SYLLABLE YALP
+C58B;C58B;110B 1163 11B6;C58B;110B 1163 11B6; # (얋; 얋; 얋; 얋; 얋; ) HANGUL SYLLABLE YALH
+C58C;C58C;110B 1163 11B7;C58C;110B 1163 11B7; # (얌; 얌; 얌; 얌; 얌; ) HANGUL SYLLABLE YAM
+C58D;C58D;110B 1163 11B8;C58D;110B 1163 11B8; # (얍; 얍; 얍; 얍; 얍; ) HANGUL SYLLABLE YAB
+C58E;C58E;110B 1163 11B9;C58E;110B 1163 11B9; # (얎; 얎; 얎; 얎; 얎; ) HANGUL SYLLABLE YABS
+C58F;C58F;110B 1163 11BA;C58F;110B 1163 11BA; # (얏; 얏; 얏; 얏; 얏; ) HANGUL SYLLABLE YAS
+C590;C590;110B 1163 11BB;C590;110B 1163 11BB; # (얐; 얐; 얐; 얐; 얐; ) HANGUL SYLLABLE YASS
+C591;C591;110B 1163 11BC;C591;110B 1163 11BC; # (양; 양; 양; 양; 양; ) HANGUL SYLLABLE YANG
+C592;C592;110B 1163 11BD;C592;110B 1163 11BD; # (얒; 얒; 얒; 얒; 얒; ) HANGUL SYLLABLE YAJ
+C593;C593;110B 1163 11BE;C593;110B 1163 11BE; # (얓; 얓; 얓; 얓; 얓; ) HANGUL SYLLABLE YAC
+C594;C594;110B 1163 11BF;C594;110B 1163 11BF; # (얔; 얔; 얔; 얔; 얔; ) HANGUL SYLLABLE YAK
+C595;C595;110B 1163 11C0;C595;110B 1163 11C0; # (얕; 얕; 얕; 얕; 얕; ) HANGUL SYLLABLE YAT
+C596;C596;110B 1163 11C1;C596;110B 1163 11C1; # (얖; 얖; 얖; 얖; 얖; ) HANGUL SYLLABLE YAP
+C597;C597;110B 1163 11C2;C597;110B 1163 11C2; # (얗; 얗; 얗; 얗; 얗; ) HANGUL SYLLABLE YAH
+C598;C598;110B 1164;C598;110B 1164; # (얘; 얘; 얘; 얘; 얘; ) HANGUL SYLLABLE YAE
+C599;C599;110B 1164 11A8;C599;110B 1164 11A8; # (얙; 얙; 얙; 얙; 얙; ) HANGUL SYLLABLE YAEG
+C59A;C59A;110B 1164 11A9;C59A;110B 1164 11A9; # (얚; 얚; 얚; 얚; 얚; ) HANGUL SYLLABLE YAEGG
+C59B;C59B;110B 1164 11AA;C59B;110B 1164 11AA; # (얛; 얛; 얛; 얛; 얛; ) HANGUL SYLLABLE YAEGS
+C59C;C59C;110B 1164 11AB;C59C;110B 1164 11AB; # (얜; 얜; 얜; 얜; 얜; ) HANGUL SYLLABLE YAEN
+C59D;C59D;110B 1164 11AC;C59D;110B 1164 11AC; # (얝; 얝; 얝; 얝; 얝; ) HANGUL SYLLABLE YAENJ
+C59E;C59E;110B 1164 11AD;C59E;110B 1164 11AD; # (얞; 얞; 얞; 얞; 얞; ) HANGUL SYLLABLE YAENH
+C59F;C59F;110B 1164 11AE;C59F;110B 1164 11AE; # (얟; 얟; 얟; 얟; 얟; ) HANGUL SYLLABLE YAED
+C5A0;C5A0;110B 1164 11AF;C5A0;110B 1164 11AF; # (얠; 얠; 얠; 얠; 얠; ) HANGUL SYLLABLE YAEL
+C5A1;C5A1;110B 1164 11B0;C5A1;110B 1164 11B0; # (얡; 얡; 얡; 얡; 얡; ) HANGUL SYLLABLE YAELG
+C5A2;C5A2;110B 1164 11B1;C5A2;110B 1164 11B1; # (얢; 얢; 얢; 얢; 얢; ) HANGUL SYLLABLE YAELM
+C5A3;C5A3;110B 1164 11B2;C5A3;110B 1164 11B2; # (얣; 얣; 얣; 얣; 얣; ) HANGUL SYLLABLE YAELB
+C5A4;C5A4;110B 1164 11B3;C5A4;110B 1164 11B3; # (얤; 얤; 얤; 얤; 얤; ) HANGUL SYLLABLE YAELS
+C5A5;C5A5;110B 1164 11B4;C5A5;110B 1164 11B4; # (얥; 얥; 얥; 얥; 얥; ) HANGUL SYLLABLE YAELT
+C5A6;C5A6;110B 1164 11B5;C5A6;110B 1164 11B5; # (얦; 얦; 얦; 얦; 얦; ) HANGUL SYLLABLE YAELP
+C5A7;C5A7;110B 1164 11B6;C5A7;110B 1164 11B6; # (얧; 얧; 얧; 얧; 얧; ) HANGUL SYLLABLE YAELH
+C5A8;C5A8;110B 1164 11B7;C5A8;110B 1164 11B7; # (얨; 얨; 얨; 얨; 얨; ) HANGUL SYLLABLE YAEM
+C5A9;C5A9;110B 1164 11B8;C5A9;110B 1164 11B8; # (얩; 얩; 얩; 얩; 얩; ) HANGUL SYLLABLE YAEB
+C5AA;C5AA;110B 1164 11B9;C5AA;110B 1164 11B9; # (얪; 얪; 얪; 얪; 얪; ) HANGUL SYLLABLE YAEBS
+C5AB;C5AB;110B 1164 11BA;C5AB;110B 1164 11BA; # (얫; 얫; 얫; 얫; 얫; ) HANGUL SYLLABLE YAES
+C5AC;C5AC;110B 1164 11BB;C5AC;110B 1164 11BB; # (얬; 얬; 얬; 얬; 얬; ) HANGUL SYLLABLE YAESS
+C5AD;C5AD;110B 1164 11BC;C5AD;110B 1164 11BC; # (얭; 얭; 얭; 얭; 얭; ) HANGUL SYLLABLE YAENG
+C5AE;C5AE;110B 1164 11BD;C5AE;110B 1164 11BD; # (얮; 얮; 얮; 얮; 얮; ) HANGUL SYLLABLE YAEJ
+C5AF;C5AF;110B 1164 11BE;C5AF;110B 1164 11BE; # (얯; 얯; 얯; 얯; 얯; ) HANGUL SYLLABLE YAEC
+C5B0;C5B0;110B 1164 11BF;C5B0;110B 1164 11BF; # (얰; 얰; 얰; 얰; 얰; ) HANGUL SYLLABLE YAEK
+C5B1;C5B1;110B 1164 11C0;C5B1;110B 1164 11C0; # (얱; 얱; 얱; 얱; 얱; ) HANGUL SYLLABLE YAET
+C5B2;C5B2;110B 1164 11C1;C5B2;110B 1164 11C1; # (얲; 얲; 얲; 얲; 얲; ) HANGUL SYLLABLE YAEP
+C5B3;C5B3;110B 1164 11C2;C5B3;110B 1164 11C2; # (얳; 얳; 얳; 얳; 얳; ) HANGUL SYLLABLE YAEH
+C5B4;C5B4;110B 1165;C5B4;110B 1165; # (어; 어; 어; 어; 어; ) HANGUL SYLLABLE EO
+C5B5;C5B5;110B 1165 11A8;C5B5;110B 1165 11A8; # (억; 억; 억; 억; 억; ) HANGUL SYLLABLE EOG
+C5B6;C5B6;110B 1165 11A9;C5B6;110B 1165 11A9; # (얶; 얶; 얶; 얶; 얶; ) HANGUL SYLLABLE EOGG
+C5B7;C5B7;110B 1165 11AA;C5B7;110B 1165 11AA; # (얷; 얷; 얷; 얷; 얷; ) HANGUL SYLLABLE EOGS
+C5B8;C5B8;110B 1165 11AB;C5B8;110B 1165 11AB; # (언; 언; 언; 언; 언; ) HANGUL SYLLABLE EON
+C5B9;C5B9;110B 1165 11AC;C5B9;110B 1165 11AC; # (얹; 얹; 얹; 얹; 얹; ) HANGUL SYLLABLE EONJ
+C5BA;C5BA;110B 1165 11AD;C5BA;110B 1165 11AD; # (얺; 얺; 얺; 얺; 얺; ) HANGUL SYLLABLE EONH
+C5BB;C5BB;110B 1165 11AE;C5BB;110B 1165 11AE; # (얻; 얻; 얻; 얻; 얻; ) HANGUL SYLLABLE EOD
+C5BC;C5BC;110B 1165 11AF;C5BC;110B 1165 11AF; # (얼; 얼; 얼; 얼; 얼; ) HANGUL SYLLABLE EOL
+C5BD;C5BD;110B 1165 11B0;C5BD;110B 1165 11B0; # (얽; 얽; 얽; 얽; 얽; ) HANGUL SYLLABLE EOLG
+C5BE;C5BE;110B 1165 11B1;C5BE;110B 1165 11B1; # (얾; 얾; 얾; 얾; 얾; ) HANGUL SYLLABLE EOLM
+C5BF;C5BF;110B 1165 11B2;C5BF;110B 1165 11B2; # (얿; 얿; 얿; 얿; 얿; ) HANGUL SYLLABLE EOLB
+C5C0;C5C0;110B 1165 11B3;C5C0;110B 1165 11B3; # (엀; 엀; 엀; 엀; 엀; ) HANGUL SYLLABLE EOLS
+C5C1;C5C1;110B 1165 11B4;C5C1;110B 1165 11B4; # (엁; 엁; 엁; 엁; 엁; ) HANGUL SYLLABLE EOLT
+C5C2;C5C2;110B 1165 11B5;C5C2;110B 1165 11B5; # (엂; 엂; 엂; 엂; 엂; ) HANGUL SYLLABLE EOLP
+C5C3;C5C3;110B 1165 11B6;C5C3;110B 1165 11B6; # (엃; 엃; 엃; 엃; 엃; ) HANGUL SYLLABLE EOLH
+C5C4;C5C4;110B 1165 11B7;C5C4;110B 1165 11B7; # (엄; 엄; 엄; 엄; 엄; ) HANGUL SYLLABLE EOM
+C5C5;C5C5;110B 1165 11B8;C5C5;110B 1165 11B8; # (업; 업; 업; 업; 업; ) HANGUL SYLLABLE EOB
+C5C6;C5C6;110B 1165 11B9;C5C6;110B 1165 11B9; # (없; 없; 없; 없; 없; ) HANGUL SYLLABLE EOBS
+C5C7;C5C7;110B 1165 11BA;C5C7;110B 1165 11BA; # (엇; 엇; 엇; 엇; 엇; ) HANGUL SYLLABLE EOS
+C5C8;C5C8;110B 1165 11BB;C5C8;110B 1165 11BB; # (었; 었; 었; 었; 었; ) HANGUL SYLLABLE EOSS
+C5C9;C5C9;110B 1165 11BC;C5C9;110B 1165 11BC; # (엉; 엉; 엉; 엉; 엉; ) HANGUL SYLLABLE EONG
+C5CA;C5CA;110B 1165 11BD;C5CA;110B 1165 11BD; # (엊; 엊; 엊; 엊; 엊; ) HANGUL SYLLABLE EOJ
+C5CB;C5CB;110B 1165 11BE;C5CB;110B 1165 11BE; # (엋; 엋; 엋; 엋; 엋; ) HANGUL SYLLABLE EOC
+C5CC;C5CC;110B 1165 11BF;C5CC;110B 1165 11BF; # (엌; 엌; 엌; 엌; 엌; ) HANGUL SYLLABLE EOK
+C5CD;C5CD;110B 1165 11C0;C5CD;110B 1165 11C0; # (엍; 엍; 엍; 엍; 엍; ) HANGUL SYLLABLE EOT
+C5CE;C5CE;110B 1165 11C1;C5CE;110B 1165 11C1; # (엎; 엎; 엎; 엎; 엎; ) HANGUL SYLLABLE EOP
+C5CF;C5CF;110B 1165 11C2;C5CF;110B 1165 11C2; # (엏; 엏; 엏; 엏; 엏; ) HANGUL SYLLABLE EOH
+C5D0;C5D0;110B 1166;C5D0;110B 1166; # (에; 에; 에; 에; 에; ) HANGUL SYLLABLE E
+C5D1;C5D1;110B 1166 11A8;C5D1;110B 1166 11A8; # (엑; 엑; 엑; 엑; 엑; ) HANGUL SYLLABLE EG
+C5D2;C5D2;110B 1166 11A9;C5D2;110B 1166 11A9; # (엒; 엒; 엒; 엒; 엒; ) HANGUL SYLLABLE EGG
+C5D3;C5D3;110B 1166 11AA;C5D3;110B 1166 11AA; # (엓; 엓; 엓; 엓; 엓; ) HANGUL SYLLABLE EGS
+C5D4;C5D4;110B 1166 11AB;C5D4;110B 1166 11AB; # (엔; 엔; 엔; 엔; 엔; ) HANGUL SYLLABLE EN
+C5D5;C5D5;110B 1166 11AC;C5D5;110B 1166 11AC; # (엕; 엕; 엕; 엕; 엕; ) HANGUL SYLLABLE ENJ
+C5D6;C5D6;110B 1166 11AD;C5D6;110B 1166 11AD; # (엖; 엖; 엖; 엖; 엖; ) HANGUL SYLLABLE ENH
+C5D7;C5D7;110B 1166 11AE;C5D7;110B 1166 11AE; # (엗; 엗; 엗; 엗; 엗; ) HANGUL SYLLABLE ED
+C5D8;C5D8;110B 1166 11AF;C5D8;110B 1166 11AF; # (엘; 엘; 엘; 엘; 엘; ) HANGUL SYLLABLE EL
+C5D9;C5D9;110B 1166 11B0;C5D9;110B 1166 11B0; # (엙; 엙; 엙; 엙; 엙; ) HANGUL SYLLABLE ELG
+C5DA;C5DA;110B 1166 11B1;C5DA;110B 1166 11B1; # (엚; 엚; 엚; 엚; 엚; ) HANGUL SYLLABLE ELM
+C5DB;C5DB;110B 1166 11B2;C5DB;110B 1166 11B2; # (엛; 엛; 엛; 엛; 엛; ) HANGUL SYLLABLE ELB
+C5DC;C5DC;110B 1166 11B3;C5DC;110B 1166 11B3; # (엜; 엜; 엜; 엜; 엜; ) HANGUL SYLLABLE ELS
+C5DD;C5DD;110B 1166 11B4;C5DD;110B 1166 11B4; # (엝; 엝; 엝; 엝; 엝; ) HANGUL SYLLABLE ELT
+C5DE;C5DE;110B 1166 11B5;C5DE;110B 1166 11B5; # (엞; 엞; 엞; 엞; 엞; ) HANGUL SYLLABLE ELP
+C5DF;C5DF;110B 1166 11B6;C5DF;110B 1166 11B6; # (엟; 엟; 엟; 엟; 엟; ) HANGUL SYLLABLE ELH
+C5E0;C5E0;110B 1166 11B7;C5E0;110B 1166 11B7; # (엠; 엠; 엠; 엠; 엠; ) HANGUL SYLLABLE EM
+C5E1;C5E1;110B 1166 11B8;C5E1;110B 1166 11B8; # (엡; 엡; 엡; 엡; 엡; ) HANGUL SYLLABLE EB
+C5E2;C5E2;110B 1166 11B9;C5E2;110B 1166 11B9; # (엢; 엢; 엢; 엢; 엢; ) HANGUL SYLLABLE EBS
+C5E3;C5E3;110B 1166 11BA;C5E3;110B 1166 11BA; # (엣; 엣; 엣; 엣; 엣; ) HANGUL SYLLABLE ES
+C5E4;C5E4;110B 1166 11BB;C5E4;110B 1166 11BB; # (엤; 엤; 엤; 엤; 엤; ) HANGUL SYLLABLE ESS
+C5E5;C5E5;110B 1166 11BC;C5E5;110B 1166 11BC; # (엥; 엥; 엥; 엥; 엥; ) HANGUL SYLLABLE ENG
+C5E6;C5E6;110B 1166 11BD;C5E6;110B 1166 11BD; # (엦; 엦; 엦; 엦; 엦; ) HANGUL SYLLABLE EJ
+C5E7;C5E7;110B 1166 11BE;C5E7;110B 1166 11BE; # (엧; 엧; 엧; 엧; 엧; ) HANGUL SYLLABLE EC
+C5E8;C5E8;110B 1166 11BF;C5E8;110B 1166 11BF; # (엨; 엨; 엨; 엨; 엨; ) HANGUL SYLLABLE EK
+C5E9;C5E9;110B 1166 11C0;C5E9;110B 1166 11C0; # (엩; 엩; 엩; 엩; 엩; ) HANGUL SYLLABLE ET
+C5EA;C5EA;110B 1166 11C1;C5EA;110B 1166 11C1; # (엪; 엪; 엪; 엪; 엪; ) HANGUL SYLLABLE EP
+C5EB;C5EB;110B 1166 11C2;C5EB;110B 1166 11C2; # (엫; 엫; 엫; 엫; 엫; ) HANGUL SYLLABLE EH
+C5EC;C5EC;110B 1167;C5EC;110B 1167; # (여; 여; 여; 여; 여; ) HANGUL SYLLABLE YEO
+C5ED;C5ED;110B 1167 11A8;C5ED;110B 1167 11A8; # (역; 역; 역; 역; 역; ) HANGUL SYLLABLE YEOG
+C5EE;C5EE;110B 1167 11A9;C5EE;110B 1167 11A9; # (엮; 엮; 엮; 엮; 엮; ) HANGUL SYLLABLE YEOGG
+C5EF;C5EF;110B 1167 11AA;C5EF;110B 1167 11AA; # (엯; 엯; 엯; 엯; 엯; ) HANGUL SYLLABLE YEOGS
+C5F0;C5F0;110B 1167 11AB;C5F0;110B 1167 11AB; # (연; 연; 연; 연; 연; ) HANGUL SYLLABLE YEON
+C5F1;C5F1;110B 1167 11AC;C5F1;110B 1167 11AC; # (엱; 엱; 엱; 엱; 엱; ) HANGUL SYLLABLE YEONJ
+C5F2;C5F2;110B 1167 11AD;C5F2;110B 1167 11AD; # (엲; 엲; 엲; 엲; 엲; ) HANGUL SYLLABLE YEONH
+C5F3;C5F3;110B 1167 11AE;C5F3;110B 1167 11AE; # (엳; 엳; 엳; 엳; 엳; ) HANGUL SYLLABLE YEOD
+C5F4;C5F4;110B 1167 11AF;C5F4;110B 1167 11AF; # (열; 열; 열; 열; 열; ) HANGUL SYLLABLE YEOL
+C5F5;C5F5;110B 1167 11B0;C5F5;110B 1167 11B0; # (엵; 엵; 엵; 엵; 엵; ) HANGUL SYLLABLE YEOLG
+C5F6;C5F6;110B 1167 11B1;C5F6;110B 1167 11B1; # (엶; 엶; 엶; 엶; 엶; ) HANGUL SYLLABLE YEOLM
+C5F7;C5F7;110B 1167 11B2;C5F7;110B 1167 11B2; # (엷; 엷; 엷; 엷; 엷; ) HANGUL SYLLABLE YEOLB
+C5F8;C5F8;110B 1167 11B3;C5F8;110B 1167 11B3; # (엸; 엸; 엸; 엸; 엸; ) HANGUL SYLLABLE YEOLS
+C5F9;C5F9;110B 1167 11B4;C5F9;110B 1167 11B4; # (엹; 엹; 엹; 엹; 엹; ) HANGUL SYLLABLE YEOLT
+C5FA;C5FA;110B 1167 11B5;C5FA;110B 1167 11B5; # (엺; 엺; 엺; 엺; 엺; ) HANGUL SYLLABLE YEOLP
+C5FB;C5FB;110B 1167 11B6;C5FB;110B 1167 11B6; # (엻; 엻; 엻; 엻; 엻; ) HANGUL SYLLABLE YEOLH
+C5FC;C5FC;110B 1167 11B7;C5FC;110B 1167 11B7; # (염; 염; 염; 염; 염; ) HANGUL SYLLABLE YEOM
+C5FD;C5FD;110B 1167 11B8;C5FD;110B 1167 11B8; # (엽; 엽; 엽; 엽; 엽; ) HANGUL SYLLABLE YEOB
+C5FE;C5FE;110B 1167 11B9;C5FE;110B 1167 11B9; # (엾; 엾; 엾; 엾; 엾; ) HANGUL SYLLABLE YEOBS
+C5FF;C5FF;110B 1167 11BA;C5FF;110B 1167 11BA; # (엿; 엿; 엿; 엿; 엿; ) HANGUL SYLLABLE YEOS
+C600;C600;110B 1167 11BB;C600;110B 1167 11BB; # (였; 였; 였; 였; 였; ) HANGUL SYLLABLE YEOSS
+C601;C601;110B 1167 11BC;C601;110B 1167 11BC; # (영; 영; 영; 영; 영; ) HANGUL SYLLABLE YEONG
+C602;C602;110B 1167 11BD;C602;110B 1167 11BD; # (옂; 옂; 옂; 옂; 옂; ) HANGUL SYLLABLE YEOJ
+C603;C603;110B 1167 11BE;C603;110B 1167 11BE; # (옃; 옃; 옃; 옃; 옃; ) HANGUL SYLLABLE YEOC
+C604;C604;110B 1167 11BF;C604;110B 1167 11BF; # (옄; 옄; 옄; 옄; 옄; ) HANGUL SYLLABLE YEOK
+C605;C605;110B 1167 11C0;C605;110B 1167 11C0; # (옅; 옅; 옅; 옅; 옅; ) HANGUL SYLLABLE YEOT
+C606;C606;110B 1167 11C1;C606;110B 1167 11C1; # (옆; 옆; 옆; 옆; 옆; ) HANGUL SYLLABLE YEOP
+C607;C607;110B 1167 11C2;C607;110B 1167 11C2; # (옇; 옇; 옇; 옇; 옇; ) HANGUL SYLLABLE YEOH
+C608;C608;110B 1168;C608;110B 1168; # (예; 예; 예; 예; 예; ) HANGUL SYLLABLE YE
+C609;C609;110B 1168 11A8;C609;110B 1168 11A8; # (옉; 옉; 옉; 옉; 옉; ) HANGUL SYLLABLE YEG
+C60A;C60A;110B 1168 11A9;C60A;110B 1168 11A9; # (옊; 옊; 옊; 옊; 옊; ) HANGUL SYLLABLE YEGG
+C60B;C60B;110B 1168 11AA;C60B;110B 1168 11AA; # (옋; 옋; 옋; 옋; 옋; ) HANGUL SYLLABLE YEGS
+C60C;C60C;110B 1168 11AB;C60C;110B 1168 11AB; # (옌; 옌; 옌; 옌; 옌; ) HANGUL SYLLABLE YEN
+C60D;C60D;110B 1168 11AC;C60D;110B 1168 11AC; # (옍; 옍; 옍; 옍; 옍; ) HANGUL SYLLABLE YENJ
+C60E;C60E;110B 1168 11AD;C60E;110B 1168 11AD; # (옎; 옎; 옎; 옎; 옎; ) HANGUL SYLLABLE YENH
+C60F;C60F;110B 1168 11AE;C60F;110B 1168 11AE; # (옏; 옏; 옏; 옏; 옏; ) HANGUL SYLLABLE YED
+C610;C610;110B 1168 11AF;C610;110B 1168 11AF; # (옐; 옐; 옐; 옐; 옐; ) HANGUL SYLLABLE YEL
+C611;C611;110B 1168 11B0;C611;110B 1168 11B0; # (옑; 옑; 옑; 옑; 옑; ) HANGUL SYLLABLE YELG
+C612;C612;110B 1168 11B1;C612;110B 1168 11B1; # (옒; 옒; 옒; 옒; 옒; ) HANGUL SYLLABLE YELM
+C613;C613;110B 1168 11B2;C613;110B 1168 11B2; # (옓; 옓; 옓; 옓; 옓; ) HANGUL SYLLABLE YELB
+C614;C614;110B 1168 11B3;C614;110B 1168 11B3; # (옔; 옔; 옔; 옔; 옔; ) HANGUL SYLLABLE YELS
+C615;C615;110B 1168 11B4;C615;110B 1168 11B4; # (옕; 옕; 옕; 옕; 옕; ) HANGUL SYLLABLE YELT
+C616;C616;110B 1168 11B5;C616;110B 1168 11B5; # (옖; 옖; 옖; 옖; 옖; ) HANGUL SYLLABLE YELP
+C617;C617;110B 1168 11B6;C617;110B 1168 11B6; # (옗; 옗; 옗; 옗; 옗; ) HANGUL SYLLABLE YELH
+C618;C618;110B 1168 11B7;C618;110B 1168 11B7; # (옘; 옘; 옘; 옘; 옘; ) HANGUL SYLLABLE YEM
+C619;C619;110B 1168 11B8;C619;110B 1168 11B8; # (옙; 옙; 옙; 옙; 옙; ) HANGUL SYLLABLE YEB
+C61A;C61A;110B 1168 11B9;C61A;110B 1168 11B9; # (옚; 옚; 옚; 옚; 옚; ) HANGUL SYLLABLE YEBS
+C61B;C61B;110B 1168 11BA;C61B;110B 1168 11BA; # (옛; 옛; 옛; 옛; 옛; ) HANGUL SYLLABLE YES
+C61C;C61C;110B 1168 11BB;C61C;110B 1168 11BB; # (옜; 옜; 옜; 옜; 옜; ) HANGUL SYLLABLE YESS
+C61D;C61D;110B 1168 11BC;C61D;110B 1168 11BC; # (옝; 옝; 옝; 옝; 옝; ) HANGUL SYLLABLE YENG
+C61E;C61E;110B 1168 11BD;C61E;110B 1168 11BD; # (옞; 옞; 옞; 옞; 옞; ) HANGUL SYLLABLE YEJ
+C61F;C61F;110B 1168 11BE;C61F;110B 1168 11BE; # (옟; 옟; 옟; 옟; 옟; ) HANGUL SYLLABLE YEC
+C620;C620;110B 1168 11BF;C620;110B 1168 11BF; # (옠; 옠; 옠; 옠; 옠; ) HANGUL SYLLABLE YEK
+C621;C621;110B 1168 11C0;C621;110B 1168 11C0; # (옡; 옡; 옡; 옡; 옡; ) HANGUL SYLLABLE YET
+C622;C622;110B 1168 11C1;C622;110B 1168 11C1; # (옢; 옢; 옢; 옢; 옢; ) HANGUL SYLLABLE YEP
+C623;C623;110B 1168 11C2;C623;110B 1168 11C2; # (옣; 옣; 옣; 옣; 옣; ) HANGUL SYLLABLE YEH
+C624;C624;110B 1169;C624;110B 1169; # (오; 오; 오; 오; 오; ) HANGUL SYLLABLE O
+C625;C625;110B 1169 11A8;C625;110B 1169 11A8; # (옥; 옥; 옥; 옥; 옥; ) HANGUL SYLLABLE OG
+C626;C626;110B 1169 11A9;C626;110B 1169 11A9; # (옦; 옦; 옦; 옦; 옦; ) HANGUL SYLLABLE OGG
+C627;C627;110B 1169 11AA;C627;110B 1169 11AA; # (옧; 옧; 옧; 옧; 옧; ) HANGUL SYLLABLE OGS
+C628;C628;110B 1169 11AB;C628;110B 1169 11AB; # (온; 온; 온; 온; 온; ) HANGUL SYLLABLE ON
+C629;C629;110B 1169 11AC;C629;110B 1169 11AC; # (옩; 옩; 옩; 옩; 옩; ) HANGUL SYLLABLE ONJ
+C62A;C62A;110B 1169 11AD;C62A;110B 1169 11AD; # (옪; 옪; 옪; 옪; 옪; ) HANGUL SYLLABLE ONH
+C62B;C62B;110B 1169 11AE;C62B;110B 1169 11AE; # (옫; 옫; 옫; 옫; 옫; ) HANGUL SYLLABLE OD
+C62C;C62C;110B 1169 11AF;C62C;110B 1169 11AF; # (올; 올; 올; 올; 올; ) HANGUL SYLLABLE OL
+C62D;C62D;110B 1169 11B0;C62D;110B 1169 11B0; # (옭; 옭; 옭; 옭; 옭; ) HANGUL SYLLABLE OLG
+C62E;C62E;110B 1169 11B1;C62E;110B 1169 11B1; # (옮; 옮; 옮; 옮; 옮; ) HANGUL SYLLABLE OLM
+C62F;C62F;110B 1169 11B2;C62F;110B 1169 11B2; # (옯; 옯; 옯; 옯; 옯; ) HANGUL SYLLABLE OLB
+C630;C630;110B 1169 11B3;C630;110B 1169 11B3; # (옰; 옰; 옰; 옰; 옰; ) HANGUL SYLLABLE OLS
+C631;C631;110B 1169 11B4;C631;110B 1169 11B4; # (옱; 옱; 옱; 옱; 옱; ) HANGUL SYLLABLE OLT
+C632;C632;110B 1169 11B5;C632;110B 1169 11B5; # (옲; 옲; 옲; 옲; 옲; ) HANGUL SYLLABLE OLP
+C633;C633;110B 1169 11B6;C633;110B 1169 11B6; # (옳; 옳; 옳; 옳; 옳; ) HANGUL SYLLABLE OLH
+C634;C634;110B 1169 11B7;C634;110B 1169 11B7; # (옴; 옴; 옴; 옴; 옴; ) HANGUL SYLLABLE OM
+C635;C635;110B 1169 11B8;C635;110B 1169 11B8; # (옵; 옵; 옵; 옵; 옵; ) HANGUL SYLLABLE OB
+C636;C636;110B 1169 11B9;C636;110B 1169 11B9; # (옶; 옶; 옶; 옶; 옶; ) HANGUL SYLLABLE OBS
+C637;C637;110B 1169 11BA;C637;110B 1169 11BA; # (옷; 옷; 옷; 옷; 옷; ) HANGUL SYLLABLE OS
+C638;C638;110B 1169 11BB;C638;110B 1169 11BB; # (옸; 옸; 옸; 옸; 옸; ) HANGUL SYLLABLE OSS
+C639;C639;110B 1169 11BC;C639;110B 1169 11BC; # (옹; 옹; 옹; 옹; 옹; ) HANGUL SYLLABLE ONG
+C63A;C63A;110B 1169 11BD;C63A;110B 1169 11BD; # (옺; 옺; 옺; 옺; 옺; ) HANGUL SYLLABLE OJ
+C63B;C63B;110B 1169 11BE;C63B;110B 1169 11BE; # (옻; 옻; 옻; 옻; 옻; ) HANGUL SYLLABLE OC
+C63C;C63C;110B 1169 11BF;C63C;110B 1169 11BF; # (옼; 옼; 옼; 옼; 옼; ) HANGUL SYLLABLE OK
+C63D;C63D;110B 1169 11C0;C63D;110B 1169 11C0; # (옽; 옽; 옽; 옽; 옽; ) HANGUL SYLLABLE OT
+C63E;C63E;110B 1169 11C1;C63E;110B 1169 11C1; # (옾; 옾; 옾; 옾; 옾; ) HANGUL SYLLABLE OP
+C63F;C63F;110B 1169 11C2;C63F;110B 1169 11C2; # (옿; 옿; 옿; 옿; 옿; ) HANGUL SYLLABLE OH
+C640;C640;110B 116A;C640;110B 116A; # (와; 와; 와; 와; 와; ) HANGUL SYLLABLE WA
+C641;C641;110B 116A 11A8;C641;110B 116A 11A8; # (왁; 왁; 왁; 왁; 왁; ) HANGUL SYLLABLE WAG
+C642;C642;110B 116A 11A9;C642;110B 116A 11A9; # (왂; 왂; 왂; 왂; 왂; ) HANGUL SYLLABLE WAGG
+C643;C643;110B 116A 11AA;C643;110B 116A 11AA; # (왃; 왃; 왃; 왃; 왃; ) HANGUL SYLLABLE WAGS
+C644;C644;110B 116A 11AB;C644;110B 116A 11AB; # (완; 완; 완; 완; 완; ) HANGUL SYLLABLE WAN
+C645;C645;110B 116A 11AC;C645;110B 116A 11AC; # (왅; 왅; 왅; 왅; 왅; ) HANGUL SYLLABLE WANJ
+C646;C646;110B 116A 11AD;C646;110B 116A 11AD; # (왆; 왆; 왆; 왆; 왆; ) HANGUL SYLLABLE WANH
+C647;C647;110B 116A 11AE;C647;110B 116A 11AE; # (왇; 왇; 왇; 왇; 왇; ) HANGUL SYLLABLE WAD
+C648;C648;110B 116A 11AF;C648;110B 116A 11AF; # (왈; 왈; 왈; 왈; 왈; ) HANGUL SYLLABLE WAL
+C649;C649;110B 116A 11B0;C649;110B 116A 11B0; # (왉; 왉; 왉; 왉; 왉; ) HANGUL SYLLABLE WALG
+C64A;C64A;110B 116A 11B1;C64A;110B 116A 11B1; # (왊; 왊; 왊; 왊; 왊; ) HANGUL SYLLABLE WALM
+C64B;C64B;110B 116A 11B2;C64B;110B 116A 11B2; # (왋; 왋; 왋; 왋; 왋; ) HANGUL SYLLABLE WALB
+C64C;C64C;110B 116A 11B3;C64C;110B 116A 11B3; # (왌; 왌; 왌; 왌; 왌; ) HANGUL SYLLABLE WALS
+C64D;C64D;110B 116A 11B4;C64D;110B 116A 11B4; # (왍; 왍; 왍; 왍; 왍; ) HANGUL SYLLABLE WALT
+C64E;C64E;110B 116A 11B5;C64E;110B 116A 11B5; # (왎; 왎; 왎; 왎; 왎; ) HANGUL SYLLABLE WALP
+C64F;C64F;110B 116A 11B6;C64F;110B 116A 11B6; # (왏; 왏; 왏; 왏; 왏; ) HANGUL SYLLABLE WALH
+C650;C650;110B 116A 11B7;C650;110B 116A 11B7; # (왐; 왐; 왐; 왐; 왐; ) HANGUL SYLLABLE WAM
+C651;C651;110B 116A 11B8;C651;110B 116A 11B8; # (왑; 왑; 왑; 왑; 왑; ) HANGUL SYLLABLE WAB
+C652;C652;110B 116A 11B9;C652;110B 116A 11B9; # (왒; 왒; 왒; 왒; 왒; ) HANGUL SYLLABLE WABS
+C653;C653;110B 116A 11BA;C653;110B 116A 11BA; # (왓; 왓; 왓; 왓; 왓; ) HANGUL SYLLABLE WAS
+C654;C654;110B 116A 11BB;C654;110B 116A 11BB; # (왔; 왔; 왔; 왔; 왔; ) HANGUL SYLLABLE WASS
+C655;C655;110B 116A 11BC;C655;110B 116A 11BC; # (왕; 왕; 왕; 왕; 왕; ) HANGUL SYLLABLE WANG
+C656;C656;110B 116A 11BD;C656;110B 116A 11BD; # (왖; 왖; 왖; 왖; 왖; ) HANGUL SYLLABLE WAJ
+C657;C657;110B 116A 11BE;C657;110B 116A 11BE; # (왗; 왗; 왗; 왗; 왗; ) HANGUL SYLLABLE WAC
+C658;C658;110B 116A 11BF;C658;110B 116A 11BF; # (왘; 왘; 왘; 왘; 왘; ) HANGUL SYLLABLE WAK
+C659;C659;110B 116A 11C0;C659;110B 116A 11C0; # (왙; 왙; 왙; 왙; 왙; ) HANGUL SYLLABLE WAT
+C65A;C65A;110B 116A 11C1;C65A;110B 116A 11C1; # (왚; 왚; 왚; 왚; 왚; ) HANGUL SYLLABLE WAP
+C65B;C65B;110B 116A 11C2;C65B;110B 116A 11C2; # (왛; 왛; 왛; 왛; 왛; ) HANGUL SYLLABLE WAH
+C65C;C65C;110B 116B;C65C;110B 116B; # (왜; 왜; 왜; 왜; 왜; ) HANGUL SYLLABLE WAE
+C65D;C65D;110B 116B 11A8;C65D;110B 116B 11A8; # (왝; 왝; 왝; 왝; 왝; ) HANGUL SYLLABLE WAEG
+C65E;C65E;110B 116B 11A9;C65E;110B 116B 11A9; # (왞; 왞; 왞; 왞; 왞; ) HANGUL SYLLABLE WAEGG
+C65F;C65F;110B 116B 11AA;C65F;110B 116B 11AA; # (왟; 왟; 왟; 왟; 왟; ) HANGUL SYLLABLE WAEGS
+C660;C660;110B 116B 11AB;C660;110B 116B 11AB; # (왠; 왠; 왠; 왠; 왠; ) HANGUL SYLLABLE WAEN
+C661;C661;110B 116B 11AC;C661;110B 116B 11AC; # (왡; 왡; 왡; 왡; 왡; ) HANGUL SYLLABLE WAENJ
+C662;C662;110B 116B 11AD;C662;110B 116B 11AD; # (왢; 왢; 왢; 왢; 왢; ) HANGUL SYLLABLE WAENH
+C663;C663;110B 116B 11AE;C663;110B 116B 11AE; # (왣; 왣; 왣; 왣; 왣; ) HANGUL SYLLABLE WAED
+C664;C664;110B 116B 11AF;C664;110B 116B 11AF; # (왤; 왤; 왤; 왤; 왤; ) HANGUL SYLLABLE WAEL
+C665;C665;110B 116B 11B0;C665;110B 116B 11B0; # (왥; 왥; 왥; 왥; 왥; ) HANGUL SYLLABLE WAELG
+C666;C666;110B 116B 11B1;C666;110B 116B 11B1; # (왦; 왦; 왦; 왦; 왦; ) HANGUL SYLLABLE WAELM
+C667;C667;110B 116B 11B2;C667;110B 116B 11B2; # (왧; 왧; 왧; 왧; 왧; ) HANGUL SYLLABLE WAELB
+C668;C668;110B 116B 11B3;C668;110B 116B 11B3; # (왨; 왨; 왨; 왨; 왨; ) HANGUL SYLLABLE WAELS
+C669;C669;110B 116B 11B4;C669;110B 116B 11B4; # (왩; 왩; 왩; 왩; 왩; ) HANGUL SYLLABLE WAELT
+C66A;C66A;110B 116B 11B5;C66A;110B 116B 11B5; # (왪; 왪; 왪; 왪; 왪; ) HANGUL SYLLABLE WAELP
+C66B;C66B;110B 116B 11B6;C66B;110B 116B 11B6; # (왫; 왫; 왫; 왫; 왫; ) HANGUL SYLLABLE WAELH
+C66C;C66C;110B 116B 11B7;C66C;110B 116B 11B7; # (왬; 왬; 왬; 왬; 왬; ) HANGUL SYLLABLE WAEM
+C66D;C66D;110B 116B 11B8;C66D;110B 116B 11B8; # (왭; 왭; 왭; 왭; 왭; ) HANGUL SYLLABLE WAEB
+C66E;C66E;110B 116B 11B9;C66E;110B 116B 11B9; # (왮; 왮; 왮; 왮; 왮; ) HANGUL SYLLABLE WAEBS
+C66F;C66F;110B 116B 11BA;C66F;110B 116B 11BA; # (왯; 왯; 왯; 왯; 왯; ) HANGUL SYLLABLE WAES
+C670;C670;110B 116B 11BB;C670;110B 116B 11BB; # (왰; 왰; 왰; 왰; 왰; ) HANGUL SYLLABLE WAESS
+C671;C671;110B 116B 11BC;C671;110B 116B 11BC; # (왱; 왱; 왱; 왱; 왱; ) HANGUL SYLLABLE WAENG
+C672;C672;110B 116B 11BD;C672;110B 116B 11BD; # (왲; 왲; 왲; 왲; 왲; ) HANGUL SYLLABLE WAEJ
+C673;C673;110B 116B 11BE;C673;110B 116B 11BE; # (왳; 왳; 왳; 왳; 왳; ) HANGUL SYLLABLE WAEC
+C674;C674;110B 116B 11BF;C674;110B 116B 11BF; # (왴; 왴; 왴; 왴; 왴; ) HANGUL SYLLABLE WAEK
+C675;C675;110B 116B 11C0;C675;110B 116B 11C0; # (왵; 왵; 왵; 왵; 왵; ) HANGUL SYLLABLE WAET
+C676;C676;110B 116B 11C1;C676;110B 116B 11C1; # (왶; 왶; 왶; 왶; 왶; ) HANGUL SYLLABLE WAEP
+C677;C677;110B 116B 11C2;C677;110B 116B 11C2; # (왷; 왷; 왷; 왷; 왷; ) HANGUL SYLLABLE WAEH
+C678;C678;110B 116C;C678;110B 116C; # (외; 외; 외; 외; 외; ) HANGUL SYLLABLE OE
+C679;C679;110B 116C 11A8;C679;110B 116C 11A8; # (왹; 왹; 왹; 왹; 왹; ) HANGUL SYLLABLE OEG
+C67A;C67A;110B 116C 11A9;C67A;110B 116C 11A9; # (왺; 왺; 왺; 왺; 왺; ) HANGUL SYLLABLE OEGG
+C67B;C67B;110B 116C 11AA;C67B;110B 116C 11AA; # (왻; 왻; 왻; 왻; 왻; ) HANGUL SYLLABLE OEGS
+C67C;C67C;110B 116C 11AB;C67C;110B 116C 11AB; # (왼; 왼; 왼; 왼; 왼; ) HANGUL SYLLABLE OEN
+C67D;C67D;110B 116C 11AC;C67D;110B 116C 11AC; # (왽; 왽; 왽; 왽; 왽; ) HANGUL SYLLABLE OENJ
+C67E;C67E;110B 116C 11AD;C67E;110B 116C 11AD; # (왾; 왾; 왾; 왾; 왾; ) HANGUL SYLLABLE OENH
+C67F;C67F;110B 116C 11AE;C67F;110B 116C 11AE; # (왿; 왿; 왿; 왿; 왿; ) HANGUL SYLLABLE OED
+C680;C680;110B 116C 11AF;C680;110B 116C 11AF; # (욀; 욀; 욀; 욀; 욀; ) HANGUL SYLLABLE OEL
+C681;C681;110B 116C 11B0;C681;110B 116C 11B0; # (욁; 욁; 욁; 욁; 욁; ) HANGUL SYLLABLE OELG
+C682;C682;110B 116C 11B1;C682;110B 116C 11B1; # (욂; 욂; 욂; 욂; 욂; ) HANGUL SYLLABLE OELM
+C683;C683;110B 116C 11B2;C683;110B 116C 11B2; # (욃; 욃; 욃; 욃; 욃; ) HANGUL SYLLABLE OELB
+C684;C684;110B 116C 11B3;C684;110B 116C 11B3; # (욄; 욄; 욄; 욄; 욄; ) HANGUL SYLLABLE OELS
+C685;C685;110B 116C 11B4;C685;110B 116C 11B4; # (욅; 욅; 욅; 욅; 욅; ) HANGUL SYLLABLE OELT
+C686;C686;110B 116C 11B5;C686;110B 116C 11B5; # (욆; 욆; 욆; 욆; 욆; ) HANGUL SYLLABLE OELP
+C687;C687;110B 116C 11B6;C687;110B 116C 11B6; # (욇; 욇; 욇; 욇; 욇; ) HANGUL SYLLABLE OELH
+C688;C688;110B 116C 11B7;C688;110B 116C 11B7; # (욈; 욈; 욈; 욈; 욈; ) HANGUL SYLLABLE OEM
+C689;C689;110B 116C 11B8;C689;110B 116C 11B8; # (욉; 욉; 욉; 욉; 욉; ) HANGUL SYLLABLE OEB
+C68A;C68A;110B 116C 11B9;C68A;110B 116C 11B9; # (욊; 욊; 욊; 욊; 욊; ) HANGUL SYLLABLE OEBS
+C68B;C68B;110B 116C 11BA;C68B;110B 116C 11BA; # (욋; 욋; 욋; 욋; 욋; ) HANGUL SYLLABLE OES
+C68C;C68C;110B 116C 11BB;C68C;110B 116C 11BB; # (욌; 욌; 욌; 욌; 욌; ) HANGUL SYLLABLE OESS
+C68D;C68D;110B 116C 11BC;C68D;110B 116C 11BC; # (욍; 욍; 욍; 욍; 욍; ) HANGUL SYLLABLE OENG
+C68E;C68E;110B 116C 11BD;C68E;110B 116C 11BD; # (욎; 욎; 욎; 욎; 욎; ) HANGUL SYLLABLE OEJ
+C68F;C68F;110B 116C 11BE;C68F;110B 116C 11BE; # (욏; 욏; 욏; 욏; 욏; ) HANGUL SYLLABLE OEC
+C690;C690;110B 116C 11BF;C690;110B 116C 11BF; # (욐; 욐; 욐; 욐; 욐; ) HANGUL SYLLABLE OEK
+C691;C691;110B 116C 11C0;C691;110B 116C 11C0; # (욑; 욑; 욑; 욑; 욑; ) HANGUL SYLLABLE OET
+C692;C692;110B 116C 11C1;C692;110B 116C 11C1; # (욒; 욒; 욒; 욒; 욒; ) HANGUL SYLLABLE OEP
+C693;C693;110B 116C 11C2;C693;110B 116C 11C2; # (욓; 욓; 욓; 욓; 욓; ) HANGUL SYLLABLE OEH
+C694;C694;110B 116D;C694;110B 116D; # (요; 요; 요; 요; 요; ) HANGUL SYLLABLE YO
+C695;C695;110B 116D 11A8;C695;110B 116D 11A8; # (욕; 욕; 욕; 욕; 욕; ) HANGUL SYLLABLE YOG
+C696;C696;110B 116D 11A9;C696;110B 116D 11A9; # (욖; 욖; 욖; 욖; 욖; ) HANGUL SYLLABLE YOGG
+C697;C697;110B 116D 11AA;C697;110B 116D 11AA; # (욗; 욗; 욗; 욗; 욗; ) HANGUL SYLLABLE YOGS
+C698;C698;110B 116D 11AB;C698;110B 116D 11AB; # (욘; 욘; 욘; 욘; 욘; ) HANGUL SYLLABLE YON
+C699;C699;110B 116D 11AC;C699;110B 116D 11AC; # (욙; 욙; 욙; 욙; 욙; ) HANGUL SYLLABLE YONJ
+C69A;C69A;110B 116D 11AD;C69A;110B 116D 11AD; # (욚; 욚; 욚; 욚; 욚; ) HANGUL SYLLABLE YONH
+C69B;C69B;110B 116D 11AE;C69B;110B 116D 11AE; # (욛; 욛; 욛; 욛; 욛; ) HANGUL SYLLABLE YOD
+C69C;C69C;110B 116D 11AF;C69C;110B 116D 11AF; # (욜; 욜; 욜; 욜; 욜; ) HANGUL SYLLABLE YOL
+C69D;C69D;110B 116D 11B0;C69D;110B 116D 11B0; # (욝; 욝; 욝; 욝; 욝; ) HANGUL SYLLABLE YOLG
+C69E;C69E;110B 116D 11B1;C69E;110B 116D 11B1; # (욞; 욞; 욞; 욞; 욞; ) HANGUL SYLLABLE YOLM
+C69F;C69F;110B 116D 11B2;C69F;110B 116D 11B2; # (욟; 욟; 욟; 욟; 욟; ) HANGUL SYLLABLE YOLB
+C6A0;C6A0;110B 116D 11B3;C6A0;110B 116D 11B3; # (욠; 욠; 욠; 욠; 욠; ) HANGUL SYLLABLE YOLS
+C6A1;C6A1;110B 116D 11B4;C6A1;110B 116D 11B4; # (욡; 욡; 욡; 욡; 욡; ) HANGUL SYLLABLE YOLT
+C6A2;C6A2;110B 116D 11B5;C6A2;110B 116D 11B5; # (욢; 욢; 욢; 욢; 욢; ) HANGUL SYLLABLE YOLP
+C6A3;C6A3;110B 116D 11B6;C6A3;110B 116D 11B6; # (욣; 욣; 욣; 욣; 욣; ) HANGUL SYLLABLE YOLH
+C6A4;C6A4;110B 116D 11B7;C6A4;110B 116D 11B7; # (욤; 욤; 욤; 욤; 욤; ) HANGUL SYLLABLE YOM
+C6A5;C6A5;110B 116D 11B8;C6A5;110B 116D 11B8; # (욥; 욥; 욥; 욥; 욥; ) HANGUL SYLLABLE YOB
+C6A6;C6A6;110B 116D 11B9;C6A6;110B 116D 11B9; # (욦; 욦; 욦; 욦; 욦; ) HANGUL SYLLABLE YOBS
+C6A7;C6A7;110B 116D 11BA;C6A7;110B 116D 11BA; # (욧; 욧; 욧; 욧; 욧; ) HANGUL SYLLABLE YOS
+C6A8;C6A8;110B 116D 11BB;C6A8;110B 116D 11BB; # (욨; 욨; 욨; 욨; 욨; ) HANGUL SYLLABLE YOSS
+C6A9;C6A9;110B 116D 11BC;C6A9;110B 116D 11BC; # (용; 용; 용; 용; 용; ) HANGUL SYLLABLE YONG
+C6AA;C6AA;110B 116D 11BD;C6AA;110B 116D 11BD; # (욪; 욪; 욪; 욪; 욪; ) HANGUL SYLLABLE YOJ
+C6AB;C6AB;110B 116D 11BE;C6AB;110B 116D 11BE; # (욫; 욫; 욫; 욫; 욫; ) HANGUL SYLLABLE YOC
+C6AC;C6AC;110B 116D 11BF;C6AC;110B 116D 11BF; # (욬; 욬; 욬; 욬; 욬; ) HANGUL SYLLABLE YOK
+C6AD;C6AD;110B 116D 11C0;C6AD;110B 116D 11C0; # (욭; 욭; 욭; 욭; 욭; ) HANGUL SYLLABLE YOT
+C6AE;C6AE;110B 116D 11C1;C6AE;110B 116D 11C1; # (욮; 욮; 욮; 욮; 욮; ) HANGUL SYLLABLE YOP
+C6AF;C6AF;110B 116D 11C2;C6AF;110B 116D 11C2; # (욯; 욯; 욯; 욯; 욯; ) HANGUL SYLLABLE YOH
+C6B0;C6B0;110B 116E;C6B0;110B 116E; # (우; 우; 우; 우; 우; ) HANGUL SYLLABLE U
+C6B1;C6B1;110B 116E 11A8;C6B1;110B 116E 11A8; # (욱; 욱; 욱; 욱; 욱; ) HANGUL SYLLABLE UG
+C6B2;C6B2;110B 116E 11A9;C6B2;110B 116E 11A9; # (욲; 욲; 욲; 욲; 욲; ) HANGUL SYLLABLE UGG
+C6B3;C6B3;110B 116E 11AA;C6B3;110B 116E 11AA; # (욳; 욳; 욳; 욳; 욳; ) HANGUL SYLLABLE UGS
+C6B4;C6B4;110B 116E 11AB;C6B4;110B 116E 11AB; # (운; 운; 운; 운; 운; ) HANGUL SYLLABLE UN
+C6B5;C6B5;110B 116E 11AC;C6B5;110B 116E 11AC; # (욵; 욵; 욵; 욵; 욵; ) HANGUL SYLLABLE UNJ
+C6B6;C6B6;110B 116E 11AD;C6B6;110B 116E 11AD; # (욶; 욶; 욶; 욶; 욶; ) HANGUL SYLLABLE UNH
+C6B7;C6B7;110B 116E 11AE;C6B7;110B 116E 11AE; # (욷; 욷; 욷; 욷; 욷; ) HANGUL SYLLABLE UD
+C6B8;C6B8;110B 116E 11AF;C6B8;110B 116E 11AF; # (울; 울; 울; 울; 울; ) HANGUL SYLLABLE UL
+C6B9;C6B9;110B 116E 11B0;C6B9;110B 116E 11B0; # (욹; 욹; 욹; 욹; 욹; ) HANGUL SYLLABLE ULG
+C6BA;C6BA;110B 116E 11B1;C6BA;110B 116E 11B1; # (욺; 욺; 욺; 욺; 욺; ) HANGUL SYLLABLE ULM
+C6BB;C6BB;110B 116E 11B2;C6BB;110B 116E 11B2; # (욻; 욻; 욻; 욻; 욻; ) HANGUL SYLLABLE ULB
+C6BC;C6BC;110B 116E 11B3;C6BC;110B 116E 11B3; # (욼; 욼; 욼; 욼; 욼; ) HANGUL SYLLABLE ULS
+C6BD;C6BD;110B 116E 11B4;C6BD;110B 116E 11B4; # (욽; 욽; 욽; 욽; 욽; ) HANGUL SYLLABLE ULT
+C6BE;C6BE;110B 116E 11B5;C6BE;110B 116E 11B5; # (욾; 욾; 욾; 욾; 욾; ) HANGUL SYLLABLE ULP
+C6BF;C6BF;110B 116E 11B6;C6BF;110B 116E 11B6; # (욿; 욿; 욿; 욿; 욿; ) HANGUL SYLLABLE ULH
+C6C0;C6C0;110B 116E 11B7;C6C0;110B 116E 11B7; # (움; 움; 움; 움; 움; ) HANGUL SYLLABLE UM
+C6C1;C6C1;110B 116E 11B8;C6C1;110B 116E 11B8; # (웁; 웁; 웁; 웁; 웁; ) HANGUL SYLLABLE UB
+C6C2;C6C2;110B 116E 11B9;C6C2;110B 116E 11B9; # (웂; 웂; 웂; 웂; 웂; ) HANGUL SYLLABLE UBS
+C6C3;C6C3;110B 116E 11BA;C6C3;110B 116E 11BA; # (웃; 웃; 웃; 웃; 웃; ) HANGUL SYLLABLE US
+C6C4;C6C4;110B 116E 11BB;C6C4;110B 116E 11BB; # (웄; 웄; 웄; 웄; 웄; ) HANGUL SYLLABLE USS
+C6C5;C6C5;110B 116E 11BC;C6C5;110B 116E 11BC; # (웅; 웅; 웅; 웅; 웅; ) HANGUL SYLLABLE UNG
+C6C6;C6C6;110B 116E 11BD;C6C6;110B 116E 11BD; # (웆; 웆; 웆; 웆; 웆; ) HANGUL SYLLABLE UJ
+C6C7;C6C7;110B 116E 11BE;C6C7;110B 116E 11BE; # (웇; 웇; 웇; 웇; 웇; ) HANGUL SYLLABLE UC
+C6C8;C6C8;110B 116E 11BF;C6C8;110B 116E 11BF; # (웈; 웈; 웈; 웈; 웈; ) HANGUL SYLLABLE UK
+C6C9;C6C9;110B 116E 11C0;C6C9;110B 116E 11C0; # (웉; 웉; 웉; 웉; 웉; ) HANGUL SYLLABLE UT
+C6CA;C6CA;110B 116E 11C1;C6CA;110B 116E 11C1; # (웊; 웊; 웊; 웊; 웊; ) HANGUL SYLLABLE UP
+C6CB;C6CB;110B 116E 11C2;C6CB;110B 116E 11C2; # (웋; 웋; 웋; 웋; 웋; ) HANGUL SYLLABLE UH
+C6CC;C6CC;110B 116F;C6CC;110B 116F; # (워; 워; 워; 워; 워; ) HANGUL SYLLABLE WEO
+C6CD;C6CD;110B 116F 11A8;C6CD;110B 116F 11A8; # (웍; 웍; 웍; 웍; 웍; ) HANGUL SYLLABLE WEOG
+C6CE;C6CE;110B 116F 11A9;C6CE;110B 116F 11A9; # (웎; 웎; 웎; 웎; 웎; ) HANGUL SYLLABLE WEOGG
+C6CF;C6CF;110B 116F 11AA;C6CF;110B 116F 11AA; # (웏; 웏; 웏; 웏; 웏; ) HANGUL SYLLABLE WEOGS
+C6D0;C6D0;110B 116F 11AB;C6D0;110B 116F 11AB; # (원; 원; 원; 원; 원; ) HANGUL SYLLABLE WEON
+C6D1;C6D1;110B 116F 11AC;C6D1;110B 116F 11AC; # (웑; 웑; 웑; 웑; 웑; ) HANGUL SYLLABLE WEONJ
+C6D2;C6D2;110B 116F 11AD;C6D2;110B 116F 11AD; # (웒; 웒; 웒; 웒; 웒; ) HANGUL SYLLABLE WEONH
+C6D3;C6D3;110B 116F 11AE;C6D3;110B 116F 11AE; # (웓; 웓; 웓; 웓; 웓; ) HANGUL SYLLABLE WEOD
+C6D4;C6D4;110B 116F 11AF;C6D4;110B 116F 11AF; # (월; 월; 월; 월; 월; ) HANGUL SYLLABLE WEOL
+C6D5;C6D5;110B 116F 11B0;C6D5;110B 116F 11B0; # (웕; 웕; 웕; 웕; 웕; ) HANGUL SYLLABLE WEOLG
+C6D6;C6D6;110B 116F 11B1;C6D6;110B 116F 11B1; # (웖; 웖; 웖; 웖; 웖; ) HANGUL SYLLABLE WEOLM
+C6D7;C6D7;110B 116F 11B2;C6D7;110B 116F 11B2; # (웗; 웗; 웗; 웗; 웗; ) HANGUL SYLLABLE WEOLB
+C6D8;C6D8;110B 116F 11B3;C6D8;110B 116F 11B3; # (웘; 웘; 웘; 웘; 웘; ) HANGUL SYLLABLE WEOLS
+C6D9;C6D9;110B 116F 11B4;C6D9;110B 116F 11B4; # (웙; 웙; 웙; 웙; 웙; ) HANGUL SYLLABLE WEOLT
+C6DA;C6DA;110B 116F 11B5;C6DA;110B 116F 11B5; # (웚; 웚; 웚; 웚; 웚; ) HANGUL SYLLABLE WEOLP
+C6DB;C6DB;110B 116F 11B6;C6DB;110B 116F 11B6; # (웛; 웛; 웛; 웛; 웛; ) HANGUL SYLLABLE WEOLH
+C6DC;C6DC;110B 116F 11B7;C6DC;110B 116F 11B7; # (웜; 웜; 웜; 웜; 웜; ) HANGUL SYLLABLE WEOM
+C6DD;C6DD;110B 116F 11B8;C6DD;110B 116F 11B8; # (웝; 웝; 웝; 웝; 웝; ) HANGUL SYLLABLE WEOB
+C6DE;C6DE;110B 116F 11B9;C6DE;110B 116F 11B9; # (웞; 웞; 웞; 웞; 웞; ) HANGUL SYLLABLE WEOBS
+C6DF;C6DF;110B 116F 11BA;C6DF;110B 116F 11BA; # (웟; 웟; 웟; 웟; 웟; ) HANGUL SYLLABLE WEOS
+C6E0;C6E0;110B 116F 11BB;C6E0;110B 116F 11BB; # (웠; 웠; 웠; 웠; 웠; ) HANGUL SYLLABLE WEOSS
+C6E1;C6E1;110B 116F 11BC;C6E1;110B 116F 11BC; # (웡; 웡; 웡; 웡; 웡; ) HANGUL SYLLABLE WEONG
+C6E2;C6E2;110B 116F 11BD;C6E2;110B 116F 11BD; # (웢; 웢; 웢; 웢; 웢; ) HANGUL SYLLABLE WEOJ
+C6E3;C6E3;110B 116F 11BE;C6E3;110B 116F 11BE; # (웣; 웣; 웣; 웣; 웣; ) HANGUL SYLLABLE WEOC
+C6E4;C6E4;110B 116F 11BF;C6E4;110B 116F 11BF; # (웤; 웤; 웤; 웤; 웤; ) HANGUL SYLLABLE WEOK
+C6E5;C6E5;110B 116F 11C0;C6E5;110B 116F 11C0; # (웥; 웥; 웥; 웥; 웥; ) HANGUL SYLLABLE WEOT
+C6E6;C6E6;110B 116F 11C1;C6E6;110B 116F 11C1; # (웦; 웦; 웦; 웦; 웦; ) HANGUL SYLLABLE WEOP
+C6E7;C6E7;110B 116F 11C2;C6E7;110B 116F 11C2; # (웧; 웧; 웧; 웧; 웧; ) HANGUL SYLLABLE WEOH
+C6E8;C6E8;110B 1170;C6E8;110B 1170; # (웨; 웨; 웨; 웨; 웨; ) HANGUL SYLLABLE WE
+C6E9;C6E9;110B 1170 11A8;C6E9;110B 1170 11A8; # (웩; 웩; 웩; 웩; 웩; ) HANGUL SYLLABLE WEG
+C6EA;C6EA;110B 1170 11A9;C6EA;110B 1170 11A9; # (웪; 웪; 웪; 웪; 웪; ) HANGUL SYLLABLE WEGG
+C6EB;C6EB;110B 1170 11AA;C6EB;110B 1170 11AA; # (웫; 웫; 웫; 웫; 웫; ) HANGUL SYLLABLE WEGS
+C6EC;C6EC;110B 1170 11AB;C6EC;110B 1170 11AB; # (웬; 웬; 웬; 웬; 웬; ) HANGUL SYLLABLE WEN
+C6ED;C6ED;110B 1170 11AC;C6ED;110B 1170 11AC; # (웭; 웭; 웭; 웭; 웭; ) HANGUL SYLLABLE WENJ
+C6EE;C6EE;110B 1170 11AD;C6EE;110B 1170 11AD; # (웮; 웮; 웮; 웮; 웮; ) HANGUL SYLLABLE WENH
+C6EF;C6EF;110B 1170 11AE;C6EF;110B 1170 11AE; # (웯; 웯; 웯; 웯; 웯; ) HANGUL SYLLABLE WED
+C6F0;C6F0;110B 1170 11AF;C6F0;110B 1170 11AF; # (웰; 웰; 웰; 웰; 웰; ) HANGUL SYLLABLE WEL
+C6F1;C6F1;110B 1170 11B0;C6F1;110B 1170 11B0; # (웱; 웱; 웱; 웱; 웱; ) HANGUL SYLLABLE WELG
+C6F2;C6F2;110B 1170 11B1;C6F2;110B 1170 11B1; # (웲; 웲; 웲; 웲; 웲; ) HANGUL SYLLABLE WELM
+C6F3;C6F3;110B 1170 11B2;C6F3;110B 1170 11B2; # (웳; 웳; 웳; 웳; 웳; ) HANGUL SYLLABLE WELB
+C6F4;C6F4;110B 1170 11B3;C6F4;110B 1170 11B3; # (웴; 웴; 웴; 웴; 웴; ) HANGUL SYLLABLE WELS
+C6F5;C6F5;110B 1170 11B4;C6F5;110B 1170 11B4; # (웵; 웵; 웵; 웵; 웵; ) HANGUL SYLLABLE WELT
+C6F6;C6F6;110B 1170 11B5;C6F6;110B 1170 11B5; # (웶; 웶; 웶; 웶; 웶; ) HANGUL SYLLABLE WELP
+C6F7;C6F7;110B 1170 11B6;C6F7;110B 1170 11B6; # (웷; 웷; 웷; 웷; 웷; ) HANGUL SYLLABLE WELH
+C6F8;C6F8;110B 1170 11B7;C6F8;110B 1170 11B7; # (웸; 웸; 웸; 웸; 웸; ) HANGUL SYLLABLE WEM
+C6F9;C6F9;110B 1170 11B8;C6F9;110B 1170 11B8; # (웹; 웹; 웹; 웹; 웹; ) HANGUL SYLLABLE WEB
+C6FA;C6FA;110B 1170 11B9;C6FA;110B 1170 11B9; # (웺; 웺; 웺; 웺; 웺; ) HANGUL SYLLABLE WEBS
+C6FB;C6FB;110B 1170 11BA;C6FB;110B 1170 11BA; # (웻; 웻; 웻; 웻; 웻; ) HANGUL SYLLABLE WES
+C6FC;C6FC;110B 1170 11BB;C6FC;110B 1170 11BB; # (웼; 웼; 웼; 웼; 웼; ) HANGUL SYLLABLE WESS
+C6FD;C6FD;110B 1170 11BC;C6FD;110B 1170 11BC; # (웽; 웽; 웽; 웽; 웽; ) HANGUL SYLLABLE WENG
+C6FE;C6FE;110B 1170 11BD;C6FE;110B 1170 11BD; # (웾; 웾; 웾; 웾; 웾; ) HANGUL SYLLABLE WEJ
+C6FF;C6FF;110B 1170 11BE;C6FF;110B 1170 11BE; # (웿; 웿; 웿; 웿; 웿; ) HANGUL SYLLABLE WEC
+C700;C700;110B 1170 11BF;C700;110B 1170 11BF; # (윀; 윀; 윀; 윀; 윀; ) HANGUL SYLLABLE WEK
+C701;C701;110B 1170 11C0;C701;110B 1170 11C0; # (윁; 윁; 윁; 윁; 윁; ) HANGUL SYLLABLE WET
+C702;C702;110B 1170 11C1;C702;110B 1170 11C1; # (윂; 윂; 윂; 윂; 윂; ) HANGUL SYLLABLE WEP
+C703;C703;110B 1170 11C2;C703;110B 1170 11C2; # (윃; 윃; 윃; 윃; 윃; ) HANGUL SYLLABLE WEH
+C704;C704;110B 1171;C704;110B 1171; # (위; 위; 위; 위; 위; ) HANGUL SYLLABLE WI
+C705;C705;110B 1171 11A8;C705;110B 1171 11A8; # (윅; 윅; 윅; 윅; 윅; ) HANGUL SYLLABLE WIG
+C706;C706;110B 1171 11A9;C706;110B 1171 11A9; # (윆; 윆; 윆; 윆; 윆; ) HANGUL SYLLABLE WIGG
+C707;C707;110B 1171 11AA;C707;110B 1171 11AA; # (윇; 윇; 윇; 윇; 윇; ) HANGUL SYLLABLE WIGS
+C708;C708;110B 1171 11AB;C708;110B 1171 11AB; # (윈; 윈; 윈; 윈; 윈; ) HANGUL SYLLABLE WIN
+C709;C709;110B 1171 11AC;C709;110B 1171 11AC; # (윉; 윉; 윉; 윉; 윉; ) HANGUL SYLLABLE WINJ
+C70A;C70A;110B 1171 11AD;C70A;110B 1171 11AD; # (윊; 윊; 윊; 윊; 윊; ) HANGUL SYLLABLE WINH
+C70B;C70B;110B 1171 11AE;C70B;110B 1171 11AE; # (윋; 윋; 윋; 윋; 윋; ) HANGUL SYLLABLE WID
+C70C;C70C;110B 1171 11AF;C70C;110B 1171 11AF; # (윌; 윌; 윌; 윌; 윌; ) HANGUL SYLLABLE WIL
+C70D;C70D;110B 1171 11B0;C70D;110B 1171 11B0; # (윍; 윍; 윍; 윍; 윍; ) HANGUL SYLLABLE WILG
+C70E;C70E;110B 1171 11B1;C70E;110B 1171 11B1; # (윎; 윎; 윎; 윎; 윎; ) HANGUL SYLLABLE WILM
+C70F;C70F;110B 1171 11B2;C70F;110B 1171 11B2; # (윏; 윏; 윏; 윏; 윏; ) HANGUL SYLLABLE WILB
+C710;C710;110B 1171 11B3;C710;110B 1171 11B3; # (윐; 윐; 윐; 윐; 윐; ) HANGUL SYLLABLE WILS
+C711;C711;110B 1171 11B4;C711;110B 1171 11B4; # (윑; 윑; 윑; 윑; 윑; ) HANGUL SYLLABLE WILT
+C712;C712;110B 1171 11B5;C712;110B 1171 11B5; # (윒; 윒; 윒; 윒; 윒; ) HANGUL SYLLABLE WILP
+C713;C713;110B 1171 11B6;C713;110B 1171 11B6; # (윓; 윓; 윓; 윓; 윓; ) HANGUL SYLLABLE WILH
+C714;C714;110B 1171 11B7;C714;110B 1171 11B7; # (윔; 윔; 윔; 윔; 윔; ) HANGUL SYLLABLE WIM
+C715;C715;110B 1171 11B8;C715;110B 1171 11B8; # (윕; 윕; 윕; 윕; 윕; ) HANGUL SYLLABLE WIB
+C716;C716;110B 1171 11B9;C716;110B 1171 11B9; # (윖; 윖; 윖; 윖; 윖; ) HANGUL SYLLABLE WIBS
+C717;C717;110B 1171 11BA;C717;110B 1171 11BA; # (윗; 윗; 윗; 윗; 윗; ) HANGUL SYLLABLE WIS
+C718;C718;110B 1171 11BB;C718;110B 1171 11BB; # (윘; 윘; 윘; 윘; 윘; ) HANGUL SYLLABLE WISS
+C719;C719;110B 1171 11BC;C719;110B 1171 11BC; # (윙; 윙; 윙; 윙; 윙; ) HANGUL SYLLABLE WING
+C71A;C71A;110B 1171 11BD;C71A;110B 1171 11BD; # (윚; 윚; 윚; 윚; 윚; ) HANGUL SYLLABLE WIJ
+C71B;C71B;110B 1171 11BE;C71B;110B 1171 11BE; # (윛; 윛; 윛; 윛; 윛; ) HANGUL SYLLABLE WIC
+C71C;C71C;110B 1171 11BF;C71C;110B 1171 11BF; # (윜; 윜; 윜; 윜; 윜; ) HANGUL SYLLABLE WIK
+C71D;C71D;110B 1171 11C0;C71D;110B 1171 11C0; # (윝; 윝; 윝; 윝; 윝; ) HANGUL SYLLABLE WIT
+C71E;C71E;110B 1171 11C1;C71E;110B 1171 11C1; # (윞; 윞; 윞; 윞; 윞; ) HANGUL SYLLABLE WIP
+C71F;C71F;110B 1171 11C2;C71F;110B 1171 11C2; # (윟; 윟; 윟; 윟; 윟; ) HANGUL SYLLABLE WIH
+C720;C720;110B 1172;C720;110B 1172; # (유; 유; 유; 유; 유; ) HANGUL SYLLABLE YU
+C721;C721;110B 1172 11A8;C721;110B 1172 11A8; # (육; 육; 육; 육; 육; ) HANGUL SYLLABLE YUG
+C722;C722;110B 1172 11A9;C722;110B 1172 11A9; # (윢; 윢; 윢; 윢; 윢; ) HANGUL SYLLABLE YUGG
+C723;C723;110B 1172 11AA;C723;110B 1172 11AA; # (윣; 윣; 윣; 윣; 윣; ) HANGUL SYLLABLE YUGS
+C724;C724;110B 1172 11AB;C724;110B 1172 11AB; # (윤; 윤; 윤; 윤; 윤; ) HANGUL SYLLABLE YUN
+C725;C725;110B 1172 11AC;C725;110B 1172 11AC; # (윥; 윥; 윥; 윥; 윥; ) HANGUL SYLLABLE YUNJ
+C726;C726;110B 1172 11AD;C726;110B 1172 11AD; # (윦; 윦; 윦; 윦; 윦; ) HANGUL SYLLABLE YUNH
+C727;C727;110B 1172 11AE;C727;110B 1172 11AE; # (윧; 윧; 윧; 윧; 윧; ) HANGUL SYLLABLE YUD
+C728;C728;110B 1172 11AF;C728;110B 1172 11AF; # (율; 율; 율; 율; 율; ) HANGUL SYLLABLE YUL
+C729;C729;110B 1172 11B0;C729;110B 1172 11B0; # (윩; 윩; 윩; 윩; 윩; ) HANGUL SYLLABLE YULG
+C72A;C72A;110B 1172 11B1;C72A;110B 1172 11B1; # (윪; 윪; 윪; 윪; 윪; ) HANGUL SYLLABLE YULM
+C72B;C72B;110B 1172 11B2;C72B;110B 1172 11B2; # (윫; 윫; 윫; 윫; 윫; ) HANGUL SYLLABLE YULB
+C72C;C72C;110B 1172 11B3;C72C;110B 1172 11B3; # (윬; 윬; 윬; 윬; 윬; ) HANGUL SYLLABLE YULS
+C72D;C72D;110B 1172 11B4;C72D;110B 1172 11B4; # (윭; 윭; 윭; 윭; 윭; ) HANGUL SYLLABLE YULT
+C72E;C72E;110B 1172 11B5;C72E;110B 1172 11B5; # (윮; 윮; 윮; 윮; 윮; ) HANGUL SYLLABLE YULP
+C72F;C72F;110B 1172 11B6;C72F;110B 1172 11B6; # (윯; 윯; 윯; 윯; 윯; ) HANGUL SYLLABLE YULH
+C730;C730;110B 1172 11B7;C730;110B 1172 11B7; # (윰; 윰; 윰; 윰; 윰; ) HANGUL SYLLABLE YUM
+C731;C731;110B 1172 11B8;C731;110B 1172 11B8; # (윱; 윱; 윱; 윱; 윱; ) HANGUL SYLLABLE YUB
+C732;C732;110B 1172 11B9;C732;110B 1172 11B9; # (윲; 윲; 윲; 윲; 윲; ) HANGUL SYLLABLE YUBS
+C733;C733;110B 1172 11BA;C733;110B 1172 11BA; # (윳; 윳; 윳; 윳; 윳; ) HANGUL SYLLABLE YUS
+C734;C734;110B 1172 11BB;C734;110B 1172 11BB; # (윴; 윴; 윴; 윴; 윴; ) HANGUL SYLLABLE YUSS
+C735;C735;110B 1172 11BC;C735;110B 1172 11BC; # (융; 융; 융; 융; 융; ) HANGUL SYLLABLE YUNG
+C736;C736;110B 1172 11BD;C736;110B 1172 11BD; # (윶; 윶; 윶; 윶; 윶; ) HANGUL SYLLABLE YUJ
+C737;C737;110B 1172 11BE;C737;110B 1172 11BE; # (윷; 윷; 윷; 윷; 윷; ) HANGUL SYLLABLE YUC
+C738;C738;110B 1172 11BF;C738;110B 1172 11BF; # (윸; 윸; 윸; 윸; 윸; ) HANGUL SYLLABLE YUK
+C739;C739;110B 1172 11C0;C739;110B 1172 11C0; # (윹; 윹; 윹; 윹; 윹; ) HANGUL SYLLABLE YUT
+C73A;C73A;110B 1172 11C1;C73A;110B 1172 11C1; # (윺; 윺; 윺; 윺; 윺; ) HANGUL SYLLABLE YUP
+C73B;C73B;110B 1172 11C2;C73B;110B 1172 11C2; # (윻; 윻; 윻; 윻; 윻; ) HANGUL SYLLABLE YUH
+C73C;C73C;110B 1173;C73C;110B 1173; # (으; 으; 으; 으; 으; ) HANGUL SYLLABLE EU
+C73D;C73D;110B 1173 11A8;C73D;110B 1173 11A8; # (윽; 윽; 윽; 윽; 윽; ) HANGUL SYLLABLE EUG
+C73E;C73E;110B 1173 11A9;C73E;110B 1173 11A9; # (윾; 윾; 윾; 윾; 윾; ) HANGUL SYLLABLE EUGG
+C73F;C73F;110B 1173 11AA;C73F;110B 1173 11AA; # (윿; 윿; 윿; 윿; 윿; ) HANGUL SYLLABLE EUGS
+C740;C740;110B 1173 11AB;C740;110B 1173 11AB; # (은; 은; 은; 은; 은; ) HANGUL SYLLABLE EUN
+C741;C741;110B 1173 11AC;C741;110B 1173 11AC; # (읁; 읁; 읁; 읁; 읁; ) HANGUL SYLLABLE EUNJ
+C742;C742;110B 1173 11AD;C742;110B 1173 11AD; # (읂; 읂; 읂; 읂; 읂; ) HANGUL SYLLABLE EUNH
+C743;C743;110B 1173 11AE;C743;110B 1173 11AE; # (읃; 읃; 읃; 읃; 읃; ) HANGUL SYLLABLE EUD
+C744;C744;110B 1173 11AF;C744;110B 1173 11AF; # (을; 을; 을; 을; 을; ) HANGUL SYLLABLE EUL
+C745;C745;110B 1173 11B0;C745;110B 1173 11B0; # (읅; 읅; 읅; 읅; 읅; ) HANGUL SYLLABLE EULG
+C746;C746;110B 1173 11B1;C746;110B 1173 11B1; # (읆; 읆; 읆; 읆; 읆; ) HANGUL SYLLABLE EULM
+C747;C747;110B 1173 11B2;C747;110B 1173 11B2; # (읇; 읇; 읇; 읇; 읇; ) HANGUL SYLLABLE EULB
+C748;C748;110B 1173 11B3;C748;110B 1173 11B3; # (읈; 읈; 읈; 읈; 읈; ) HANGUL SYLLABLE EULS
+C749;C749;110B 1173 11B4;C749;110B 1173 11B4; # (읉; 읉; 읉; 읉; 읉; ) HANGUL SYLLABLE EULT
+C74A;C74A;110B 1173 11B5;C74A;110B 1173 11B5; # (읊; 읊; 읊; 읊; 읊; ) HANGUL SYLLABLE EULP
+C74B;C74B;110B 1173 11B6;C74B;110B 1173 11B6; # (읋; 읋; 읋; 읋; 읋; ) HANGUL SYLLABLE EULH
+C74C;C74C;110B 1173 11B7;C74C;110B 1173 11B7; # (음; 음; 음; 음; 음; ) HANGUL SYLLABLE EUM
+C74D;C74D;110B 1173 11B8;C74D;110B 1173 11B8; # (읍; 읍; 읍; 읍; 읍; ) HANGUL SYLLABLE EUB
+C74E;C74E;110B 1173 11B9;C74E;110B 1173 11B9; # (읎; 읎; 읎; 읎; 읎; ) HANGUL SYLLABLE EUBS
+C74F;C74F;110B 1173 11BA;C74F;110B 1173 11BA; # (읏; 읏; 읏; 읏; 읏; ) HANGUL SYLLABLE EUS
+C750;C750;110B 1173 11BB;C750;110B 1173 11BB; # (읐; 읐; 읐; 읐; 읐; ) HANGUL SYLLABLE EUSS
+C751;C751;110B 1173 11BC;C751;110B 1173 11BC; # (응; 응; 응; 응; 응; ) HANGUL SYLLABLE EUNG
+C752;C752;110B 1173 11BD;C752;110B 1173 11BD; # (읒; 읒; 읒; 읒; 읒; ) HANGUL SYLLABLE EUJ
+C753;C753;110B 1173 11BE;C753;110B 1173 11BE; # (읓; 읓; 읓; 읓; 읓; ) HANGUL SYLLABLE EUC
+C754;C754;110B 1173 11BF;C754;110B 1173 11BF; # (읔; 읔; 읔; 읔; 읔; ) HANGUL SYLLABLE EUK
+C755;C755;110B 1173 11C0;C755;110B 1173 11C0; # (읕; 읕; 읕; 읕; 읕; ) HANGUL SYLLABLE EUT
+C756;C756;110B 1173 11C1;C756;110B 1173 11C1; # (읖; 읖; 읖; 읖; 읖; ) HANGUL SYLLABLE EUP
+C757;C757;110B 1173 11C2;C757;110B 1173 11C2; # (읗; 읗; 읗; 읗; 읗; ) HANGUL SYLLABLE EUH
+C758;C758;110B 1174;C758;110B 1174; # (의; 의; 의; 의; 의; ) HANGUL SYLLABLE YI
+C759;C759;110B 1174 11A8;C759;110B 1174 11A8; # (읙; 읙; 읙; 읙; 읙; ) HANGUL SYLLABLE YIG
+C75A;C75A;110B 1174 11A9;C75A;110B 1174 11A9; # (읚; 읚; 읚; 읚; 읚; ) HANGUL SYLLABLE YIGG
+C75B;C75B;110B 1174 11AA;C75B;110B 1174 11AA; # (읛; 읛; 읛; 읛; 읛; ) HANGUL SYLLABLE YIGS
+C75C;C75C;110B 1174 11AB;C75C;110B 1174 11AB; # (읜; 읜; 읜; 읜; 읜; ) HANGUL SYLLABLE YIN
+C75D;C75D;110B 1174 11AC;C75D;110B 1174 11AC; # (읝; 읝; 읝; 읝; 읝; ) HANGUL SYLLABLE YINJ
+C75E;C75E;110B 1174 11AD;C75E;110B 1174 11AD; # (읞; 읞; 읞; 읞; 읞; ) HANGUL SYLLABLE YINH
+C75F;C75F;110B 1174 11AE;C75F;110B 1174 11AE; # (읟; 읟; 읟; 읟; 읟; ) HANGUL SYLLABLE YID
+C760;C760;110B 1174 11AF;C760;110B 1174 11AF; # (읠; 읠; 읠; 읠; 읠; ) HANGUL SYLLABLE YIL
+C761;C761;110B 1174 11B0;C761;110B 1174 11B0; # (읡; 읡; 읡; 읡; 읡; ) HANGUL SYLLABLE YILG
+C762;C762;110B 1174 11B1;C762;110B 1174 11B1; # (읢; 읢; 읢; 읢; 읢; ) HANGUL SYLLABLE YILM
+C763;C763;110B 1174 11B2;C763;110B 1174 11B2; # (읣; 읣; 읣; 읣; 읣; ) HANGUL SYLLABLE YILB
+C764;C764;110B 1174 11B3;C764;110B 1174 11B3; # (읤; 읤; 읤; 읤; 읤; ) HANGUL SYLLABLE YILS
+C765;C765;110B 1174 11B4;C765;110B 1174 11B4; # (읥; 읥; 읥; 읥; 읥; ) HANGUL SYLLABLE YILT
+C766;C766;110B 1174 11B5;C766;110B 1174 11B5; # (읦; 읦; 읦; 읦; 읦; ) HANGUL SYLLABLE YILP
+C767;C767;110B 1174 11B6;C767;110B 1174 11B6; # (읧; 읧; 읧; 읧; 읧; ) HANGUL SYLLABLE YILH
+C768;C768;110B 1174 11B7;C768;110B 1174 11B7; # (읨; 읨; 읨; 읨; 읨; ) HANGUL SYLLABLE YIM
+C769;C769;110B 1174 11B8;C769;110B 1174 11B8; # (읩; 읩; 읩; 읩; 읩; ) HANGUL SYLLABLE YIB
+C76A;C76A;110B 1174 11B9;C76A;110B 1174 11B9; # (읪; 읪; 읪; 읪; 읪; ) HANGUL SYLLABLE YIBS
+C76B;C76B;110B 1174 11BA;C76B;110B 1174 11BA; # (읫; 읫; 읫; 읫; 읫; ) HANGUL SYLLABLE YIS
+C76C;C76C;110B 1174 11BB;C76C;110B 1174 11BB; # (읬; 읬; 읬; 읬; 읬; ) HANGUL SYLLABLE YISS
+C76D;C76D;110B 1174 11BC;C76D;110B 1174 11BC; # (읭; 읭; 읭; 읭; 읭; ) HANGUL SYLLABLE YING
+C76E;C76E;110B 1174 11BD;C76E;110B 1174 11BD; # (읮; 읮; 읮; 읮; 읮; ) HANGUL SYLLABLE YIJ
+C76F;C76F;110B 1174 11BE;C76F;110B 1174 11BE; # (읯; 읯; 읯; 읯; 읯; ) HANGUL SYLLABLE YIC
+C770;C770;110B 1174 11BF;C770;110B 1174 11BF; # (읰; 읰; 읰; 읰; 읰; ) HANGUL SYLLABLE YIK
+C771;C771;110B 1174 11C0;C771;110B 1174 11C0; # (읱; 읱; 읱; 읱; 읱; ) HANGUL SYLLABLE YIT
+C772;C772;110B 1174 11C1;C772;110B 1174 11C1; # (읲; 읲; 읲; 읲; 읲; ) HANGUL SYLLABLE YIP
+C773;C773;110B 1174 11C2;C773;110B 1174 11C2; # (읳; 읳; 읳; 읳; 읳; ) HANGUL SYLLABLE YIH
+C774;C774;110B 1175;C774;110B 1175; # (이; 이; 이; 이; 이; ) HANGUL SYLLABLE I
+C775;C775;110B 1175 11A8;C775;110B 1175 11A8; # (익; 익; 익; 익; 익; ) HANGUL SYLLABLE IG
+C776;C776;110B 1175 11A9;C776;110B 1175 11A9; # (읶; 읶; 읶; 읶; 읶; ) HANGUL SYLLABLE IGG
+C777;C777;110B 1175 11AA;C777;110B 1175 11AA; # (읷; 읷; 읷; 읷; 읷; ) HANGUL SYLLABLE IGS
+C778;C778;110B 1175 11AB;C778;110B 1175 11AB; # (인; 인; 인; 인; 인; ) HANGUL SYLLABLE IN
+C779;C779;110B 1175 11AC;C779;110B 1175 11AC; # (읹; 읹; 읹; 읹; 읹; ) HANGUL SYLLABLE INJ
+C77A;C77A;110B 1175 11AD;C77A;110B 1175 11AD; # (읺; 읺; 읺; 읺; 읺; ) HANGUL SYLLABLE INH
+C77B;C77B;110B 1175 11AE;C77B;110B 1175 11AE; # (읻; 읻; 읻; 읻; 읻; ) HANGUL SYLLABLE ID
+C77C;C77C;110B 1175 11AF;C77C;110B 1175 11AF; # (일; 일; 일; 일; 일; ) HANGUL SYLLABLE IL
+C77D;C77D;110B 1175 11B0;C77D;110B 1175 11B0; # (읽; 읽; 읽; 읽; 읽; ) HANGUL SYLLABLE ILG
+C77E;C77E;110B 1175 11B1;C77E;110B 1175 11B1; # (읾; 읾; 읾; 읾; 읾; ) HANGUL SYLLABLE ILM
+C77F;C77F;110B 1175 11B2;C77F;110B 1175 11B2; # (읿; 읿; 읿; 읿; 읿; ) HANGUL SYLLABLE ILB
+C780;C780;110B 1175 11B3;C780;110B 1175 11B3; # (잀; 잀; 잀; 잀; 잀; ) HANGUL SYLLABLE ILS
+C781;C781;110B 1175 11B4;C781;110B 1175 11B4; # (잁; 잁; 잁; 잁; 잁; ) HANGUL SYLLABLE ILT
+C782;C782;110B 1175 11B5;C782;110B 1175 11B5; # (잂; 잂; 잂; 잂; 잂; ) HANGUL SYLLABLE ILP
+C783;C783;110B 1175 11B6;C783;110B 1175 11B6; # (잃; 잃; 잃; 잃; 잃; ) HANGUL SYLLABLE ILH
+C784;C784;110B 1175 11B7;C784;110B 1175 11B7; # (임; 임; 임; 임; 임; ) HANGUL SYLLABLE IM
+C785;C785;110B 1175 11B8;C785;110B 1175 11B8; # (입; 입; 입; 입; 입; ) HANGUL SYLLABLE IB
+C786;C786;110B 1175 11B9;C786;110B 1175 11B9; # (잆; 잆; 잆; 잆; 잆; ) HANGUL SYLLABLE IBS
+C787;C787;110B 1175 11BA;C787;110B 1175 11BA; # (잇; 잇; 잇; 잇; 잇; ) HANGUL SYLLABLE IS
+C788;C788;110B 1175 11BB;C788;110B 1175 11BB; # (있; 있; 있; 있; 있; ) HANGUL SYLLABLE ISS
+C789;C789;110B 1175 11BC;C789;110B 1175 11BC; # (잉; 잉; 잉; 잉; 잉; ) HANGUL SYLLABLE ING
+C78A;C78A;110B 1175 11BD;C78A;110B 1175 11BD; # (잊; 잊; 잊; 잊; 잊; ) HANGUL SYLLABLE IJ
+C78B;C78B;110B 1175 11BE;C78B;110B 1175 11BE; # (잋; 잋; 잋; 잋; 잋; ) HANGUL SYLLABLE IC
+C78C;C78C;110B 1175 11BF;C78C;110B 1175 11BF; # (잌; 잌; 잌; 잌; 잌; ) HANGUL SYLLABLE IK
+C78D;C78D;110B 1175 11C0;C78D;110B 1175 11C0; # (잍; 잍; 잍; 잍; 잍; ) HANGUL SYLLABLE IT
+C78E;C78E;110B 1175 11C1;C78E;110B 1175 11C1; # (잎; 잎; 잎; 잎; 잎; ) HANGUL SYLLABLE IP
+C78F;C78F;110B 1175 11C2;C78F;110B 1175 11C2; # (잏; 잏; 잏; 잏; 잏; ) HANGUL SYLLABLE IH
+C790;C790;110C 1161;C790;110C 1161; # (자; 자; 자; 자; 자; ) HANGUL SYLLABLE JA
+C791;C791;110C 1161 11A8;C791;110C 1161 11A8; # (작; 작; 작; 작; 작; ) HANGUL SYLLABLE JAG
+C792;C792;110C 1161 11A9;C792;110C 1161 11A9; # (잒; 잒; 잒; 잒; 잒; ) HANGUL SYLLABLE JAGG
+C793;C793;110C 1161 11AA;C793;110C 1161 11AA; # (잓; 잓; 잓; 잓; 잓; ) HANGUL SYLLABLE JAGS
+C794;C794;110C 1161 11AB;C794;110C 1161 11AB; # (잔; 잔; 잔; 잔; 잔; ) HANGUL SYLLABLE JAN
+C795;C795;110C 1161 11AC;C795;110C 1161 11AC; # (잕; 잕; 잕; 잕; 잕; ) HANGUL SYLLABLE JANJ
+C796;C796;110C 1161 11AD;C796;110C 1161 11AD; # (잖; 잖; 잖; 잖; 잖; ) HANGUL SYLLABLE JANH
+C797;C797;110C 1161 11AE;C797;110C 1161 11AE; # (잗; 잗; 잗; 잗; 잗; ) HANGUL SYLLABLE JAD
+C798;C798;110C 1161 11AF;C798;110C 1161 11AF; # (잘; 잘; 잘; 잘; 잘; ) HANGUL SYLLABLE JAL
+C799;C799;110C 1161 11B0;C799;110C 1161 11B0; # (잙; 잙; 잙; 잙; 잙; ) HANGUL SYLLABLE JALG
+C79A;C79A;110C 1161 11B1;C79A;110C 1161 11B1; # (잚; 잚; 잚; 잚; 잚; ) HANGUL SYLLABLE JALM
+C79B;C79B;110C 1161 11B2;C79B;110C 1161 11B2; # (잛; 잛; 잛; 잛; 잛; ) HANGUL SYLLABLE JALB
+C79C;C79C;110C 1161 11B3;C79C;110C 1161 11B3; # (잜; 잜; 잜; 잜; 잜; ) HANGUL SYLLABLE JALS
+C79D;C79D;110C 1161 11B4;C79D;110C 1161 11B4; # (잝; 잝; 잝; 잝; 잝; ) HANGUL SYLLABLE JALT
+C79E;C79E;110C 1161 11B5;C79E;110C 1161 11B5; # (잞; 잞; 잞; 잞; 잞; ) HANGUL SYLLABLE JALP
+C79F;C79F;110C 1161 11B6;C79F;110C 1161 11B6; # (잟; 잟; 잟; 잟; 잟; ) HANGUL SYLLABLE JALH
+C7A0;C7A0;110C 1161 11B7;C7A0;110C 1161 11B7; # (잠; 잠; 잠; 잠; 잠; ) HANGUL SYLLABLE JAM
+C7A1;C7A1;110C 1161 11B8;C7A1;110C 1161 11B8; # (잡; 잡; 잡; 잡; 잡; ) HANGUL SYLLABLE JAB
+C7A2;C7A2;110C 1161 11B9;C7A2;110C 1161 11B9; # (잢; 잢; 잢; 잢; 잢; ) HANGUL SYLLABLE JABS
+C7A3;C7A3;110C 1161 11BA;C7A3;110C 1161 11BA; # (잣; 잣; 잣; 잣; 잣; ) HANGUL SYLLABLE JAS
+C7A4;C7A4;110C 1161 11BB;C7A4;110C 1161 11BB; # (잤; 잤; 잤; 잤; 잤; ) HANGUL SYLLABLE JASS
+C7A5;C7A5;110C 1161 11BC;C7A5;110C 1161 11BC; # (장; 장; 장; 장; 장; ) HANGUL SYLLABLE JANG
+C7A6;C7A6;110C 1161 11BD;C7A6;110C 1161 11BD; # (잦; 잦; 잦; 잦; 잦; ) HANGUL SYLLABLE JAJ
+C7A7;C7A7;110C 1161 11BE;C7A7;110C 1161 11BE; # (잧; 잧; 잧; 잧; 잧; ) HANGUL SYLLABLE JAC
+C7A8;C7A8;110C 1161 11BF;C7A8;110C 1161 11BF; # (잨; 잨; 잨; 잨; 잨; ) HANGUL SYLLABLE JAK
+C7A9;C7A9;110C 1161 11C0;C7A9;110C 1161 11C0; # (잩; 잩; 잩; 잩; 잩; ) HANGUL SYLLABLE JAT
+C7AA;C7AA;110C 1161 11C1;C7AA;110C 1161 11C1; # (잪; 잪; 잪; 잪; 잪; ) HANGUL SYLLABLE JAP
+C7AB;C7AB;110C 1161 11C2;C7AB;110C 1161 11C2; # (잫; 잫; 잫; 잫; 잫; ) HANGUL SYLLABLE JAH
+C7AC;C7AC;110C 1162;C7AC;110C 1162; # (재; 재; 재; 재; 재; ) HANGUL SYLLABLE JAE
+C7AD;C7AD;110C 1162 11A8;C7AD;110C 1162 11A8; # (잭; 잭; 잭; 잭; 잭; ) HANGUL SYLLABLE JAEG
+C7AE;C7AE;110C 1162 11A9;C7AE;110C 1162 11A9; # (잮; 잮; 잮; 잮; 잮; ) HANGUL SYLLABLE JAEGG
+C7AF;C7AF;110C 1162 11AA;C7AF;110C 1162 11AA; # (잯; 잯; 잯; 잯; 잯; ) HANGUL SYLLABLE JAEGS
+C7B0;C7B0;110C 1162 11AB;C7B0;110C 1162 11AB; # (잰; 잰; 잰; 잰; 잰; ) HANGUL SYLLABLE JAEN
+C7B1;C7B1;110C 1162 11AC;C7B1;110C 1162 11AC; # (잱; 잱; 잱; 잱; 잱; ) HANGUL SYLLABLE JAENJ
+C7B2;C7B2;110C 1162 11AD;C7B2;110C 1162 11AD; # (잲; 잲; 잲; 잲; 잲; ) HANGUL SYLLABLE JAENH
+C7B3;C7B3;110C 1162 11AE;C7B3;110C 1162 11AE; # (잳; 잳; 잳; 잳; 잳; ) HANGUL SYLLABLE JAED
+C7B4;C7B4;110C 1162 11AF;C7B4;110C 1162 11AF; # (잴; 잴; 잴; 잴; 잴; ) HANGUL SYLLABLE JAEL
+C7B5;C7B5;110C 1162 11B0;C7B5;110C 1162 11B0; # (잵; 잵; 잵; 잵; 잵; ) HANGUL SYLLABLE JAELG
+C7B6;C7B6;110C 1162 11B1;C7B6;110C 1162 11B1; # (잶; 잶; 잶; 잶; 잶; ) HANGUL SYLLABLE JAELM
+C7B7;C7B7;110C 1162 11B2;C7B7;110C 1162 11B2; # (잷; 잷; 잷; 잷; 잷; ) HANGUL SYLLABLE JAELB
+C7B8;C7B8;110C 1162 11B3;C7B8;110C 1162 11B3; # (잸; 잸; 잸; 잸; 잸; ) HANGUL SYLLABLE JAELS
+C7B9;C7B9;110C 1162 11B4;C7B9;110C 1162 11B4; # (잹; 잹; 잹; 잹; 잹; ) HANGUL SYLLABLE JAELT
+C7BA;C7BA;110C 1162 11B5;C7BA;110C 1162 11B5; # (잺; 잺; 잺; 잺; 잺; ) HANGUL SYLLABLE JAELP
+C7BB;C7BB;110C 1162 11B6;C7BB;110C 1162 11B6; # (잻; 잻; 잻; 잻; 잻; ) HANGUL SYLLABLE JAELH
+C7BC;C7BC;110C 1162 11B7;C7BC;110C 1162 11B7; # (잼; 잼; 잼; 잼; 잼; ) HANGUL SYLLABLE JAEM
+C7BD;C7BD;110C 1162 11B8;C7BD;110C 1162 11B8; # (잽; 잽; 잽; 잽; 잽; ) HANGUL SYLLABLE JAEB
+C7BE;C7BE;110C 1162 11B9;C7BE;110C 1162 11B9; # (잾; 잾; 잾; 잾; 잾; ) HANGUL SYLLABLE JAEBS
+C7BF;C7BF;110C 1162 11BA;C7BF;110C 1162 11BA; # (잿; 잿; 잿; 잿; 잿; ) HANGUL SYLLABLE JAES
+C7C0;C7C0;110C 1162 11BB;C7C0;110C 1162 11BB; # (쟀; 쟀; 쟀; 쟀; 쟀; ) HANGUL SYLLABLE JAESS
+C7C1;C7C1;110C 1162 11BC;C7C1;110C 1162 11BC; # (쟁; 쟁; 쟁; 쟁; 쟁; ) HANGUL SYLLABLE JAENG
+C7C2;C7C2;110C 1162 11BD;C7C2;110C 1162 11BD; # (쟂; 쟂; 쟂; 쟂; 쟂; ) HANGUL SYLLABLE JAEJ
+C7C3;C7C3;110C 1162 11BE;C7C3;110C 1162 11BE; # (쟃; 쟃; 쟃; 쟃; 쟃; ) HANGUL SYLLABLE JAEC
+C7C4;C7C4;110C 1162 11BF;C7C4;110C 1162 11BF; # (쟄; 쟄; 쟄; 쟄; 쟄; ) HANGUL SYLLABLE JAEK
+C7C5;C7C5;110C 1162 11C0;C7C5;110C 1162 11C0; # (쟅; 쟅; 쟅; 쟅; 쟅; ) HANGUL SYLLABLE JAET
+C7C6;C7C6;110C 1162 11C1;C7C6;110C 1162 11C1; # (쟆; 쟆; 쟆; 쟆; 쟆; ) HANGUL SYLLABLE JAEP
+C7C7;C7C7;110C 1162 11C2;C7C7;110C 1162 11C2; # (쟇; 쟇; 쟇; 쟇; 쟇; ) HANGUL SYLLABLE JAEH
+C7C8;C7C8;110C 1163;C7C8;110C 1163; # (쟈; 쟈; 쟈; 쟈; 쟈; ) HANGUL SYLLABLE JYA
+C7C9;C7C9;110C 1163 11A8;C7C9;110C 1163 11A8; # (쟉; 쟉; 쟉; 쟉; 쟉; ) HANGUL SYLLABLE JYAG
+C7CA;C7CA;110C 1163 11A9;C7CA;110C 1163 11A9; # (쟊; 쟊; 쟊; 쟊; 쟊; ) HANGUL SYLLABLE JYAGG
+C7CB;C7CB;110C 1163 11AA;C7CB;110C 1163 11AA; # (쟋; 쟋; 쟋; 쟋; 쟋; ) HANGUL SYLLABLE JYAGS
+C7CC;C7CC;110C 1163 11AB;C7CC;110C 1163 11AB; # (쟌; 쟌; 쟌; 쟌; 쟌; ) HANGUL SYLLABLE JYAN
+C7CD;C7CD;110C 1163 11AC;C7CD;110C 1163 11AC; # (쟍; 쟍; 쟍; 쟍; 쟍; ) HANGUL SYLLABLE JYANJ
+C7CE;C7CE;110C 1163 11AD;C7CE;110C 1163 11AD; # (쟎; 쟎; 쟎; 쟎; 쟎; ) HANGUL SYLLABLE JYANH
+C7CF;C7CF;110C 1163 11AE;C7CF;110C 1163 11AE; # (쟏; 쟏; 쟏; 쟏; 쟏; ) HANGUL SYLLABLE JYAD
+C7D0;C7D0;110C 1163 11AF;C7D0;110C 1163 11AF; # (쟐; 쟐; 쟐; 쟐; 쟐; ) HANGUL SYLLABLE JYAL
+C7D1;C7D1;110C 1163 11B0;C7D1;110C 1163 11B0; # (쟑; 쟑; 쟑; 쟑; 쟑; ) HANGUL SYLLABLE JYALG
+C7D2;C7D2;110C 1163 11B1;C7D2;110C 1163 11B1; # (쟒; 쟒; 쟒; 쟒; 쟒; ) HANGUL SYLLABLE JYALM
+C7D3;C7D3;110C 1163 11B2;C7D3;110C 1163 11B2; # (쟓; 쟓; 쟓; 쟓; 쟓; ) HANGUL SYLLABLE JYALB
+C7D4;C7D4;110C 1163 11B3;C7D4;110C 1163 11B3; # (쟔; 쟔; 쟔; 쟔; 쟔; ) HANGUL SYLLABLE JYALS
+C7D5;C7D5;110C 1163 11B4;C7D5;110C 1163 11B4; # (쟕; 쟕; 쟕; 쟕; 쟕; ) HANGUL SYLLABLE JYALT
+C7D6;C7D6;110C 1163 11B5;C7D6;110C 1163 11B5; # (쟖; 쟖; 쟖; 쟖; 쟖; ) HANGUL SYLLABLE JYALP
+C7D7;C7D7;110C 1163 11B6;C7D7;110C 1163 11B6; # (쟗; 쟗; 쟗; 쟗; 쟗; ) HANGUL SYLLABLE JYALH
+C7D8;C7D8;110C 1163 11B7;C7D8;110C 1163 11B7; # (쟘; 쟘; 쟘; 쟘; 쟘; ) HANGUL SYLLABLE JYAM
+C7D9;C7D9;110C 1163 11B8;C7D9;110C 1163 11B8; # (쟙; 쟙; 쟙; 쟙; 쟙; ) HANGUL SYLLABLE JYAB
+C7DA;C7DA;110C 1163 11B9;C7DA;110C 1163 11B9; # (쟚; 쟚; 쟚; 쟚; 쟚; ) HANGUL SYLLABLE JYABS
+C7DB;C7DB;110C 1163 11BA;C7DB;110C 1163 11BA; # (쟛; 쟛; 쟛; 쟛; 쟛; ) HANGUL SYLLABLE JYAS
+C7DC;C7DC;110C 1163 11BB;C7DC;110C 1163 11BB; # (쟜; 쟜; 쟜; 쟜; 쟜; ) HANGUL SYLLABLE JYASS
+C7DD;C7DD;110C 1163 11BC;C7DD;110C 1163 11BC; # (쟝; 쟝; 쟝; 쟝; 쟝; ) HANGUL SYLLABLE JYANG
+C7DE;C7DE;110C 1163 11BD;C7DE;110C 1163 11BD; # (쟞; 쟞; 쟞; 쟞; 쟞; ) HANGUL SYLLABLE JYAJ
+C7DF;C7DF;110C 1163 11BE;C7DF;110C 1163 11BE; # (쟟; 쟟; 쟟; 쟟; 쟟; ) HANGUL SYLLABLE JYAC
+C7E0;C7E0;110C 1163 11BF;C7E0;110C 1163 11BF; # (쟠; 쟠; 쟠; 쟠; 쟠; ) HANGUL SYLLABLE JYAK
+C7E1;C7E1;110C 1163 11C0;C7E1;110C 1163 11C0; # (쟡; 쟡; 쟡; 쟡; 쟡; ) HANGUL SYLLABLE JYAT
+C7E2;C7E2;110C 1163 11C1;C7E2;110C 1163 11C1; # (쟢; 쟢; 쟢; 쟢; 쟢; ) HANGUL SYLLABLE JYAP
+C7E3;C7E3;110C 1163 11C2;C7E3;110C 1163 11C2; # (쟣; 쟣; 쟣; 쟣; 쟣; ) HANGUL SYLLABLE JYAH
+C7E4;C7E4;110C 1164;C7E4;110C 1164; # (쟤; 쟤; 쟤; 쟤; 쟤; ) HANGUL SYLLABLE JYAE
+C7E5;C7E5;110C 1164 11A8;C7E5;110C 1164 11A8; # (쟥; 쟥; 쟥; 쟥; 쟥; ) HANGUL SYLLABLE JYAEG
+C7E6;C7E6;110C 1164 11A9;C7E6;110C 1164 11A9; # (쟦; 쟦; 쟦; 쟦; 쟦; ) HANGUL SYLLABLE JYAEGG
+C7E7;C7E7;110C 1164 11AA;C7E7;110C 1164 11AA; # (쟧; 쟧; 쟧; 쟧; 쟧; ) HANGUL SYLLABLE JYAEGS
+C7E8;C7E8;110C 1164 11AB;C7E8;110C 1164 11AB; # (쟨; 쟨; 쟨; 쟨; 쟨; ) HANGUL SYLLABLE JYAEN
+C7E9;C7E9;110C 1164 11AC;C7E9;110C 1164 11AC; # (쟩; 쟩; 쟩; 쟩; 쟩; ) HANGUL SYLLABLE JYAENJ
+C7EA;C7EA;110C 1164 11AD;C7EA;110C 1164 11AD; # (쟪; 쟪; 쟪; 쟪; 쟪; ) HANGUL SYLLABLE JYAENH
+C7EB;C7EB;110C 1164 11AE;C7EB;110C 1164 11AE; # (쟫; 쟫; 쟫; 쟫; 쟫; ) HANGUL SYLLABLE JYAED
+C7EC;C7EC;110C 1164 11AF;C7EC;110C 1164 11AF; # (쟬; 쟬; 쟬; 쟬; 쟬; ) HANGUL SYLLABLE JYAEL
+C7ED;C7ED;110C 1164 11B0;C7ED;110C 1164 11B0; # (쟭; 쟭; 쟭; 쟭; 쟭; ) HANGUL SYLLABLE JYAELG
+C7EE;C7EE;110C 1164 11B1;C7EE;110C 1164 11B1; # (쟮; 쟮; 쟮; 쟮; 쟮; ) HANGUL SYLLABLE JYAELM
+C7EF;C7EF;110C 1164 11B2;C7EF;110C 1164 11B2; # (쟯; 쟯; 쟯; 쟯; 쟯; ) HANGUL SYLLABLE JYAELB
+C7F0;C7F0;110C 1164 11B3;C7F0;110C 1164 11B3; # (쟰; 쟰; 쟰; 쟰; 쟰; ) HANGUL SYLLABLE JYAELS
+C7F1;C7F1;110C 1164 11B4;C7F1;110C 1164 11B4; # (쟱; 쟱; 쟱; 쟱; 쟱; ) HANGUL SYLLABLE JYAELT
+C7F2;C7F2;110C 1164 11B5;C7F2;110C 1164 11B5; # (쟲; 쟲; 쟲; 쟲; 쟲; ) HANGUL SYLLABLE JYAELP
+C7F3;C7F3;110C 1164 11B6;C7F3;110C 1164 11B6; # (쟳; 쟳; 쟳; 쟳; 쟳; ) HANGUL SYLLABLE JYAELH
+C7F4;C7F4;110C 1164 11B7;C7F4;110C 1164 11B7; # (쟴; 쟴; 쟴; 쟴; 쟴; ) HANGUL SYLLABLE JYAEM
+C7F5;C7F5;110C 1164 11B8;C7F5;110C 1164 11B8; # (쟵; 쟵; 쟵; 쟵; 쟵; ) HANGUL SYLLABLE JYAEB
+C7F6;C7F6;110C 1164 11B9;C7F6;110C 1164 11B9; # (쟶; 쟶; 쟶; 쟶; 쟶; ) HANGUL SYLLABLE JYAEBS
+C7F7;C7F7;110C 1164 11BA;C7F7;110C 1164 11BA; # (쟷; 쟷; 쟷; 쟷; 쟷; ) HANGUL SYLLABLE JYAES
+C7F8;C7F8;110C 1164 11BB;C7F8;110C 1164 11BB; # (쟸; 쟸; 쟸; 쟸; 쟸; ) HANGUL SYLLABLE JYAESS
+C7F9;C7F9;110C 1164 11BC;C7F9;110C 1164 11BC; # (쟹; 쟹; 쟹; 쟹; 쟹; ) HANGUL SYLLABLE JYAENG
+C7FA;C7FA;110C 1164 11BD;C7FA;110C 1164 11BD; # (쟺; 쟺; 쟺; 쟺; 쟺; ) HANGUL SYLLABLE JYAEJ
+C7FB;C7FB;110C 1164 11BE;C7FB;110C 1164 11BE; # (쟻; 쟻; 쟻; 쟻; 쟻; ) HANGUL SYLLABLE JYAEC
+C7FC;C7FC;110C 1164 11BF;C7FC;110C 1164 11BF; # (쟼; 쟼; 쟼; 쟼; 쟼; ) HANGUL SYLLABLE JYAEK
+C7FD;C7FD;110C 1164 11C0;C7FD;110C 1164 11C0; # (쟽; 쟽; 쟽; 쟽; 쟽; ) HANGUL SYLLABLE JYAET
+C7FE;C7FE;110C 1164 11C1;C7FE;110C 1164 11C1; # (쟾; 쟾; 쟾; 쟾; 쟾; ) HANGUL SYLLABLE JYAEP
+C7FF;C7FF;110C 1164 11C2;C7FF;110C 1164 11C2; # (쟿; 쟿; 쟿; 쟿; 쟿; ) HANGUL SYLLABLE JYAEH
+C800;C800;110C 1165;C800;110C 1165; # (저; 저; 저; 저; 저; ) HANGUL SYLLABLE JEO
+C801;C801;110C 1165 11A8;C801;110C 1165 11A8; # (적; 적; 적; 적; 적; ) HANGUL SYLLABLE JEOG
+C802;C802;110C 1165 11A9;C802;110C 1165 11A9; # (젂; 젂; 젂; 젂; 젂; ) HANGUL SYLLABLE JEOGG
+C803;C803;110C 1165 11AA;C803;110C 1165 11AA; # (젃; 젃; 젃; 젃; 젃; ) HANGUL SYLLABLE JEOGS
+C804;C804;110C 1165 11AB;C804;110C 1165 11AB; # (전; 전; 전; 전; 전; ) HANGUL SYLLABLE JEON
+C805;C805;110C 1165 11AC;C805;110C 1165 11AC; # (젅; 젅; 젅; 젅; 젅; ) HANGUL SYLLABLE JEONJ
+C806;C806;110C 1165 11AD;C806;110C 1165 11AD; # (젆; 젆; 젆; 젆; 젆; ) HANGUL SYLLABLE JEONH
+C807;C807;110C 1165 11AE;C807;110C 1165 11AE; # (젇; 젇; 젇; 젇; 젇; ) HANGUL SYLLABLE JEOD
+C808;C808;110C 1165 11AF;C808;110C 1165 11AF; # (절; 절; 절; 절; 절; ) HANGUL SYLLABLE JEOL
+C809;C809;110C 1165 11B0;C809;110C 1165 11B0; # (젉; 젉; 젉; 젉; 젉; ) HANGUL SYLLABLE JEOLG
+C80A;C80A;110C 1165 11B1;C80A;110C 1165 11B1; # (젊; 젊; 젊; 젊; 젊; ) HANGUL SYLLABLE JEOLM
+C80B;C80B;110C 1165 11B2;C80B;110C 1165 11B2; # (젋; 젋; 젋; 젋; 젋; ) HANGUL SYLLABLE JEOLB
+C80C;C80C;110C 1165 11B3;C80C;110C 1165 11B3; # (젌; 젌; 젌; 젌; 젌; ) HANGUL SYLLABLE JEOLS
+C80D;C80D;110C 1165 11B4;C80D;110C 1165 11B4; # (젍; 젍; 젍; 젍; 젍; ) HANGUL SYLLABLE JEOLT
+C80E;C80E;110C 1165 11B5;C80E;110C 1165 11B5; # (젎; 젎; 젎; 젎; 젎; ) HANGUL SYLLABLE JEOLP
+C80F;C80F;110C 1165 11B6;C80F;110C 1165 11B6; # (젏; 젏; 젏; 젏; 젏; ) HANGUL SYLLABLE JEOLH
+C810;C810;110C 1165 11B7;C810;110C 1165 11B7; # (점; 점; 점; 점; 점; ) HANGUL SYLLABLE JEOM
+C811;C811;110C 1165 11B8;C811;110C 1165 11B8; # (접; 접; 접; 접; 접; ) HANGUL SYLLABLE JEOB
+C812;C812;110C 1165 11B9;C812;110C 1165 11B9; # (젒; 젒; 젒; 젒; 젒; ) HANGUL SYLLABLE JEOBS
+C813;C813;110C 1165 11BA;C813;110C 1165 11BA; # (젓; 젓; 젓; 젓; 젓; ) HANGUL SYLLABLE JEOS
+C814;C814;110C 1165 11BB;C814;110C 1165 11BB; # (젔; 젔; 젔; 젔; 젔; ) HANGUL SYLLABLE JEOSS
+C815;C815;110C 1165 11BC;C815;110C 1165 11BC; # (정; 정; 정; 정; 정; ) HANGUL SYLLABLE JEONG
+C816;C816;110C 1165 11BD;C816;110C 1165 11BD; # (젖; 젖; 젖; 젖; 젖; ) HANGUL SYLLABLE JEOJ
+C817;C817;110C 1165 11BE;C817;110C 1165 11BE; # (젗; 젗; 젗; 젗; 젗; ) HANGUL SYLLABLE JEOC
+C818;C818;110C 1165 11BF;C818;110C 1165 11BF; # (젘; 젘; 젘; 젘; 젘; ) HANGUL SYLLABLE JEOK
+C819;C819;110C 1165 11C0;C819;110C 1165 11C0; # (젙; 젙; 젙; 젙; 젙; ) HANGUL SYLLABLE JEOT
+C81A;C81A;110C 1165 11C1;C81A;110C 1165 11C1; # (젚; 젚; 젚; 젚; 젚; ) HANGUL SYLLABLE JEOP
+C81B;C81B;110C 1165 11C2;C81B;110C 1165 11C2; # (젛; 젛; 젛; 젛; 젛; ) HANGUL SYLLABLE JEOH
+C81C;C81C;110C 1166;C81C;110C 1166; # (제; 제; 제; 제; 제; ) HANGUL SYLLABLE JE
+C81D;C81D;110C 1166 11A8;C81D;110C 1166 11A8; # (젝; 젝; 젝; 젝; 젝; ) HANGUL SYLLABLE JEG
+C81E;C81E;110C 1166 11A9;C81E;110C 1166 11A9; # (젞; 젞; 젞; 젞; 젞; ) HANGUL SYLLABLE JEGG
+C81F;C81F;110C 1166 11AA;C81F;110C 1166 11AA; # (젟; 젟; 젟; 젟; 젟; ) HANGUL SYLLABLE JEGS
+C820;C820;110C 1166 11AB;C820;110C 1166 11AB; # (젠; 젠; 젠; 젠; 젠; ) HANGUL SYLLABLE JEN
+C821;C821;110C 1166 11AC;C821;110C 1166 11AC; # (젡; 젡; 젡; 젡; 젡; ) HANGUL SYLLABLE JENJ
+C822;C822;110C 1166 11AD;C822;110C 1166 11AD; # (젢; 젢; 젢; 젢; 젢; ) HANGUL SYLLABLE JENH
+C823;C823;110C 1166 11AE;C823;110C 1166 11AE; # (젣; 젣; 젣; 젣; 젣; ) HANGUL SYLLABLE JED
+C824;C824;110C 1166 11AF;C824;110C 1166 11AF; # (젤; 젤; 젤; 젤; 젤; ) HANGUL SYLLABLE JEL
+C825;C825;110C 1166 11B0;C825;110C 1166 11B0; # (젥; 젥; 젥; 젥; 젥; ) HANGUL SYLLABLE JELG
+C826;C826;110C 1166 11B1;C826;110C 1166 11B1; # (젦; 젦; 젦; 젦; 젦; ) HANGUL SYLLABLE JELM
+C827;C827;110C 1166 11B2;C827;110C 1166 11B2; # (젧; 젧; 젧; 젧; 젧; ) HANGUL SYLLABLE JELB
+C828;C828;110C 1166 11B3;C828;110C 1166 11B3; # (젨; 젨; 젨; 젨; 젨; ) HANGUL SYLLABLE JELS
+C829;C829;110C 1166 11B4;C829;110C 1166 11B4; # (젩; 젩; 젩; 젩; 젩; ) HANGUL SYLLABLE JELT
+C82A;C82A;110C 1166 11B5;C82A;110C 1166 11B5; # (젪; 젪; 젪; 젪; 젪; ) HANGUL SYLLABLE JELP
+C82B;C82B;110C 1166 11B6;C82B;110C 1166 11B6; # (젫; 젫; 젫; 젫; 젫; ) HANGUL SYLLABLE JELH
+C82C;C82C;110C 1166 11B7;C82C;110C 1166 11B7; # (젬; 젬; 젬; 젬; 젬; ) HANGUL SYLLABLE JEM
+C82D;C82D;110C 1166 11B8;C82D;110C 1166 11B8; # (젭; 젭; 젭; 젭; 젭; ) HANGUL SYLLABLE JEB
+C82E;C82E;110C 1166 11B9;C82E;110C 1166 11B9; # (젮; 젮; 젮; 젮; 젮; ) HANGUL SYLLABLE JEBS
+C82F;C82F;110C 1166 11BA;C82F;110C 1166 11BA; # (젯; 젯; 젯; 젯; 젯; ) HANGUL SYLLABLE JES
+C830;C830;110C 1166 11BB;C830;110C 1166 11BB; # (젰; 젰; 젰; 젰; 젰; ) HANGUL SYLLABLE JESS
+C831;C831;110C 1166 11BC;C831;110C 1166 11BC; # (젱; 젱; 젱; 젱; 젱; ) HANGUL SYLLABLE JENG
+C832;C832;110C 1166 11BD;C832;110C 1166 11BD; # (젲; 젲; 젲; 젲; 젲; ) HANGUL SYLLABLE JEJ
+C833;C833;110C 1166 11BE;C833;110C 1166 11BE; # (젳; 젳; 젳; 젳; 젳; ) HANGUL SYLLABLE JEC
+C834;C834;110C 1166 11BF;C834;110C 1166 11BF; # (젴; 젴; 젴; 젴; 젴; ) HANGUL SYLLABLE JEK
+C835;C835;110C 1166 11C0;C835;110C 1166 11C0; # (젵; 젵; 젵; 젵; 젵; ) HANGUL SYLLABLE JET
+C836;C836;110C 1166 11C1;C836;110C 1166 11C1; # (젶; 젶; 젶; 젶; 젶; ) HANGUL SYLLABLE JEP
+C837;C837;110C 1166 11C2;C837;110C 1166 11C2; # (젷; 젷; 젷; 젷; 젷; ) HANGUL SYLLABLE JEH
+C838;C838;110C 1167;C838;110C 1167; # (져; 져; 져; 져; 져; ) HANGUL SYLLABLE JYEO
+C839;C839;110C 1167 11A8;C839;110C 1167 11A8; # (젹; 젹; 젹; 젹; 젹; ) HANGUL SYLLABLE JYEOG
+C83A;C83A;110C 1167 11A9;C83A;110C 1167 11A9; # (젺; 젺; 젺; 젺; 젺; ) HANGUL SYLLABLE JYEOGG
+C83B;C83B;110C 1167 11AA;C83B;110C 1167 11AA; # (젻; 젻; 젻; 젻; 젻; ) HANGUL SYLLABLE JYEOGS
+C83C;C83C;110C 1167 11AB;C83C;110C 1167 11AB; # (젼; 젼; 젼; 젼; 젼; ) HANGUL SYLLABLE JYEON
+C83D;C83D;110C 1167 11AC;C83D;110C 1167 11AC; # (젽; 젽; 젽; 젽; 젽; ) HANGUL SYLLABLE JYEONJ
+C83E;C83E;110C 1167 11AD;C83E;110C 1167 11AD; # (젾; 젾; 젾; 젾; 젾; ) HANGUL SYLLABLE JYEONH
+C83F;C83F;110C 1167 11AE;C83F;110C 1167 11AE; # (젿; 젿; 젿; 젿; 젿; ) HANGUL SYLLABLE JYEOD
+C840;C840;110C 1167 11AF;C840;110C 1167 11AF; # (졀; 졀; 졀; 졀; 졀; ) HANGUL SYLLABLE JYEOL
+C841;C841;110C 1167 11B0;C841;110C 1167 11B0; # (졁; 졁; 졁; 졁; 졁; ) HANGUL SYLLABLE JYEOLG
+C842;C842;110C 1167 11B1;C842;110C 1167 11B1; # (졂; 졂; 졂; 졂; 졂; ) HANGUL SYLLABLE JYEOLM
+C843;C843;110C 1167 11B2;C843;110C 1167 11B2; # (졃; 졃; 졃; 졃; 졃; ) HANGUL SYLLABLE JYEOLB
+C844;C844;110C 1167 11B3;C844;110C 1167 11B3; # (졄; 졄; 졄; 졄; 졄; ) HANGUL SYLLABLE JYEOLS
+C845;C845;110C 1167 11B4;C845;110C 1167 11B4; # (졅; 졅; 졅; 졅; 졅; ) HANGUL SYLLABLE JYEOLT
+C846;C846;110C 1167 11B5;C846;110C 1167 11B5; # (졆; 졆; 졆; 졆; 졆; ) HANGUL SYLLABLE JYEOLP
+C847;C847;110C 1167 11B6;C847;110C 1167 11B6; # (졇; 졇; 졇; 졇; 졇; ) HANGUL SYLLABLE JYEOLH
+C848;C848;110C 1167 11B7;C848;110C 1167 11B7; # (졈; 졈; 졈; 졈; 졈; ) HANGUL SYLLABLE JYEOM
+C849;C849;110C 1167 11B8;C849;110C 1167 11B8; # (졉; 졉; 졉; 졉; 졉; ) HANGUL SYLLABLE JYEOB
+C84A;C84A;110C 1167 11B9;C84A;110C 1167 11B9; # (졊; 졊; 졊; 졊; 졊; ) HANGUL SYLLABLE JYEOBS
+C84B;C84B;110C 1167 11BA;C84B;110C 1167 11BA; # (졋; 졋; 졋; 졋; 졋; ) HANGUL SYLLABLE JYEOS
+C84C;C84C;110C 1167 11BB;C84C;110C 1167 11BB; # (졌; 졌; 졌; 졌; 졌; ) HANGUL SYLLABLE JYEOSS
+C84D;C84D;110C 1167 11BC;C84D;110C 1167 11BC; # (졍; 졍; 졍; 졍; 졍; ) HANGUL SYLLABLE JYEONG
+C84E;C84E;110C 1167 11BD;C84E;110C 1167 11BD; # (졎; 졎; 졎; 졎; 졎; ) HANGUL SYLLABLE JYEOJ
+C84F;C84F;110C 1167 11BE;C84F;110C 1167 11BE; # (졏; 졏; 졏; 졏; 졏; ) HANGUL SYLLABLE JYEOC
+C850;C850;110C 1167 11BF;C850;110C 1167 11BF; # (졐; 졐; 졐; 졐; 졐; ) HANGUL SYLLABLE JYEOK
+C851;C851;110C 1167 11C0;C851;110C 1167 11C0; # (졑; 졑; 졑; 졑; 졑; ) HANGUL SYLLABLE JYEOT
+C852;C852;110C 1167 11C1;C852;110C 1167 11C1; # (졒; 졒; 졒; 졒; 졒; ) HANGUL SYLLABLE JYEOP
+C853;C853;110C 1167 11C2;C853;110C 1167 11C2; # (졓; 졓; 졓; 졓; 졓; ) HANGUL SYLLABLE JYEOH
+C854;C854;110C 1168;C854;110C 1168; # (졔; 졔; 졔; 졔; 졔; ) HANGUL SYLLABLE JYE
+C855;C855;110C 1168 11A8;C855;110C 1168 11A8; # (졕; 졕; 졕; 졕; 졕; ) HANGUL SYLLABLE JYEG
+C856;C856;110C 1168 11A9;C856;110C 1168 11A9; # (졖; 졖; 졖; 졖; 졖; ) HANGUL SYLLABLE JYEGG
+C857;C857;110C 1168 11AA;C857;110C 1168 11AA; # (졗; 졗; 졗; 졗; 졗; ) HANGUL SYLLABLE JYEGS
+C858;C858;110C 1168 11AB;C858;110C 1168 11AB; # (졘; 졘; 졘; 졘; 졘; ) HANGUL SYLLABLE JYEN
+C859;C859;110C 1168 11AC;C859;110C 1168 11AC; # (졙; 졙; 졙; 졙; 졙; ) HANGUL SYLLABLE JYENJ
+C85A;C85A;110C 1168 11AD;C85A;110C 1168 11AD; # (졚; 졚; 졚; 졚; 졚; ) HANGUL SYLLABLE JYENH
+C85B;C85B;110C 1168 11AE;C85B;110C 1168 11AE; # (졛; 졛; 졛; 졛; 졛; ) HANGUL SYLLABLE JYED
+C85C;C85C;110C 1168 11AF;C85C;110C 1168 11AF; # (졜; 졜; 졜; 졜; 졜; ) HANGUL SYLLABLE JYEL
+C85D;C85D;110C 1168 11B0;C85D;110C 1168 11B0; # (졝; 졝; 졝; 졝; 졝; ) HANGUL SYLLABLE JYELG
+C85E;C85E;110C 1168 11B1;C85E;110C 1168 11B1; # (졞; 졞; 졞; 졞; 졞; ) HANGUL SYLLABLE JYELM
+C85F;C85F;110C 1168 11B2;C85F;110C 1168 11B2; # (졟; 졟; 졟; 졟; 졟; ) HANGUL SYLLABLE JYELB
+C860;C860;110C 1168 11B3;C860;110C 1168 11B3; # (졠; 졠; 졠; 졠; 졠; ) HANGUL SYLLABLE JYELS
+C861;C861;110C 1168 11B4;C861;110C 1168 11B4; # (졡; 졡; 졡; 졡; 졡; ) HANGUL SYLLABLE JYELT
+C862;C862;110C 1168 11B5;C862;110C 1168 11B5; # (졢; 졢; 졢; 졢; 졢; ) HANGUL SYLLABLE JYELP
+C863;C863;110C 1168 11B6;C863;110C 1168 11B6; # (졣; 졣; 졣; 졣; 졣; ) HANGUL SYLLABLE JYELH
+C864;C864;110C 1168 11B7;C864;110C 1168 11B7; # (졤; 졤; 졤; 졤; 졤; ) HANGUL SYLLABLE JYEM
+C865;C865;110C 1168 11B8;C865;110C 1168 11B8; # (졥; 졥; 졥; 졥; 졥; ) HANGUL SYLLABLE JYEB
+C866;C866;110C 1168 11B9;C866;110C 1168 11B9; # (졦; 졦; 졦; 졦; 졦; ) HANGUL SYLLABLE JYEBS
+C867;C867;110C 1168 11BA;C867;110C 1168 11BA; # (졧; 졧; 졧; 졧; 졧; ) HANGUL SYLLABLE JYES
+C868;C868;110C 1168 11BB;C868;110C 1168 11BB; # (졨; 졨; 졨; 졨; 졨; ) HANGUL SYLLABLE JYESS
+C869;C869;110C 1168 11BC;C869;110C 1168 11BC; # (졩; 졩; 졩; 졩; 졩; ) HANGUL SYLLABLE JYENG
+C86A;C86A;110C 1168 11BD;C86A;110C 1168 11BD; # (졪; 졪; 졪; 졪; 졪; ) HANGUL SYLLABLE JYEJ
+C86B;C86B;110C 1168 11BE;C86B;110C 1168 11BE; # (졫; 졫; 졫; 졫; 졫; ) HANGUL SYLLABLE JYEC
+C86C;C86C;110C 1168 11BF;C86C;110C 1168 11BF; # (졬; 졬; 졬; 졬; 졬; ) HANGUL SYLLABLE JYEK
+C86D;C86D;110C 1168 11C0;C86D;110C 1168 11C0; # (졭; 졭; 졭; 졭; 졭; ) HANGUL SYLLABLE JYET
+C86E;C86E;110C 1168 11C1;C86E;110C 1168 11C1; # (졮; 졮; 졮; 졮; 졮; ) HANGUL SYLLABLE JYEP
+C86F;C86F;110C 1168 11C2;C86F;110C 1168 11C2; # (졯; 졯; 졯; 졯; 졯; ) HANGUL SYLLABLE JYEH
+C870;C870;110C 1169;C870;110C 1169; # (조; 조; 조; 조; 조; ) HANGUL SYLLABLE JO
+C871;C871;110C 1169 11A8;C871;110C 1169 11A8; # (족; 족; 족; 족; 족; ) HANGUL SYLLABLE JOG
+C872;C872;110C 1169 11A9;C872;110C 1169 11A9; # (졲; 졲; 졲; 졲; 졲; ) HANGUL SYLLABLE JOGG
+C873;C873;110C 1169 11AA;C873;110C 1169 11AA; # (졳; 졳; 졳; 졳; 졳; ) HANGUL SYLLABLE JOGS
+C874;C874;110C 1169 11AB;C874;110C 1169 11AB; # (존; 존; 존; 존; 존; ) HANGUL SYLLABLE JON
+C875;C875;110C 1169 11AC;C875;110C 1169 11AC; # (졵; 졵; 졵; 졵; 졵; ) HANGUL SYLLABLE JONJ
+C876;C876;110C 1169 11AD;C876;110C 1169 11AD; # (졶; 졶; 졶; 졶; 졶; ) HANGUL SYLLABLE JONH
+C877;C877;110C 1169 11AE;C877;110C 1169 11AE; # (졷; 졷; 졷; 졷; 졷; ) HANGUL SYLLABLE JOD
+C878;C878;110C 1169 11AF;C878;110C 1169 11AF; # (졸; 졸; 졸; 졸; 졸; ) HANGUL SYLLABLE JOL
+C879;C879;110C 1169 11B0;C879;110C 1169 11B0; # (졹; 졹; 졹; 졹; 졹; ) HANGUL SYLLABLE JOLG
+C87A;C87A;110C 1169 11B1;C87A;110C 1169 11B1; # (졺; 졺; 졺; 졺; 졺; ) HANGUL SYLLABLE JOLM
+C87B;C87B;110C 1169 11B2;C87B;110C 1169 11B2; # (졻; 졻; 졻; 졻; 졻; ) HANGUL SYLLABLE JOLB
+C87C;C87C;110C 1169 11B3;C87C;110C 1169 11B3; # (졼; 졼; 졼; 졼; 졼; ) HANGUL SYLLABLE JOLS
+C87D;C87D;110C 1169 11B4;C87D;110C 1169 11B4; # (졽; 졽; 졽; 졽; 졽; ) HANGUL SYLLABLE JOLT
+C87E;C87E;110C 1169 11B5;C87E;110C 1169 11B5; # (졾; 졾; 졾; 졾; 졾; ) HANGUL SYLLABLE JOLP
+C87F;C87F;110C 1169 11B6;C87F;110C 1169 11B6; # (졿; 졿; 졿; 졿; 졿; ) HANGUL SYLLABLE JOLH
+C880;C880;110C 1169 11B7;C880;110C 1169 11B7; # (좀; 좀; 좀; 좀; 좀; ) HANGUL SYLLABLE JOM
+C881;C881;110C 1169 11B8;C881;110C 1169 11B8; # (좁; 좁; 좁; 좁; 좁; ) HANGUL SYLLABLE JOB
+C882;C882;110C 1169 11B9;C882;110C 1169 11B9; # (좂; 좂; 좂; 좂; 좂; ) HANGUL SYLLABLE JOBS
+C883;C883;110C 1169 11BA;C883;110C 1169 11BA; # (좃; 좃; 좃; 좃; 좃; ) HANGUL SYLLABLE JOS
+C884;C884;110C 1169 11BB;C884;110C 1169 11BB; # (좄; 좄; 좄; 좄; 좄; ) HANGUL SYLLABLE JOSS
+C885;C885;110C 1169 11BC;C885;110C 1169 11BC; # (종; 종; 종; 종; 종; ) HANGUL SYLLABLE JONG
+C886;C886;110C 1169 11BD;C886;110C 1169 11BD; # (좆; 좆; 좆; 좆; 좆; ) HANGUL SYLLABLE JOJ
+C887;C887;110C 1169 11BE;C887;110C 1169 11BE; # (좇; 좇; 좇; 좇; 좇; ) HANGUL SYLLABLE JOC
+C888;C888;110C 1169 11BF;C888;110C 1169 11BF; # (좈; 좈; 좈; 좈; 좈; ) HANGUL SYLLABLE JOK
+C889;C889;110C 1169 11C0;C889;110C 1169 11C0; # (좉; 좉; 좉; 좉; 좉; ) HANGUL SYLLABLE JOT
+C88A;C88A;110C 1169 11C1;C88A;110C 1169 11C1; # (좊; 좊; 좊; 좊; 좊; ) HANGUL SYLLABLE JOP
+C88B;C88B;110C 1169 11C2;C88B;110C 1169 11C2; # (좋; 좋; 좋; 좋; 좋; ) HANGUL SYLLABLE JOH
+C88C;C88C;110C 116A;C88C;110C 116A; # (좌; 좌; 좌; 좌; 좌; ) HANGUL SYLLABLE JWA
+C88D;C88D;110C 116A 11A8;C88D;110C 116A 11A8; # (좍; 좍; 좍; 좍; 좍; ) HANGUL SYLLABLE JWAG
+C88E;C88E;110C 116A 11A9;C88E;110C 116A 11A9; # (좎; 좎; 좎; 좎; 좎; ) HANGUL SYLLABLE JWAGG
+C88F;C88F;110C 116A 11AA;C88F;110C 116A 11AA; # (좏; 좏; 좏; 좏; 좏; ) HANGUL SYLLABLE JWAGS
+C890;C890;110C 116A 11AB;C890;110C 116A 11AB; # (좐; 좐; 좐; 좐; 좐; ) HANGUL SYLLABLE JWAN
+C891;C891;110C 116A 11AC;C891;110C 116A 11AC; # (좑; 좑; 좑; 좑; 좑; ) HANGUL SYLLABLE JWANJ
+C892;C892;110C 116A 11AD;C892;110C 116A 11AD; # (좒; 좒; 좒; 좒; 좒; ) HANGUL SYLLABLE JWANH
+C893;C893;110C 116A 11AE;C893;110C 116A 11AE; # (좓; 좓; 좓; 좓; 좓; ) HANGUL SYLLABLE JWAD
+C894;C894;110C 116A 11AF;C894;110C 116A 11AF; # (좔; 좔; 좔; 좔; 좔; ) HANGUL SYLLABLE JWAL
+C895;C895;110C 116A 11B0;C895;110C 116A 11B0; # (좕; 좕; 좕; 좕; 좕; ) HANGUL SYLLABLE JWALG
+C896;C896;110C 116A 11B1;C896;110C 116A 11B1; # (좖; 좖; 좖; 좖; 좖; ) HANGUL SYLLABLE JWALM
+C897;C897;110C 116A 11B2;C897;110C 116A 11B2; # (좗; 좗; 좗; 좗; 좗; ) HANGUL SYLLABLE JWALB
+C898;C898;110C 116A 11B3;C898;110C 116A 11B3; # (좘; 좘; 좘; 좘; 좘; ) HANGUL SYLLABLE JWALS
+C899;C899;110C 116A 11B4;C899;110C 116A 11B4; # (좙; 좙; 좙; 좙; 좙; ) HANGUL SYLLABLE JWALT
+C89A;C89A;110C 116A 11B5;C89A;110C 116A 11B5; # (좚; 좚; 좚; 좚; 좚; ) HANGUL SYLLABLE JWALP
+C89B;C89B;110C 116A 11B6;C89B;110C 116A 11B6; # (좛; 좛; 좛; 좛; 좛; ) HANGUL SYLLABLE JWALH
+C89C;C89C;110C 116A 11B7;C89C;110C 116A 11B7; # (좜; 좜; 좜; 좜; 좜; ) HANGUL SYLLABLE JWAM
+C89D;C89D;110C 116A 11B8;C89D;110C 116A 11B8; # (좝; 좝; 좝; 좝; 좝; ) HANGUL SYLLABLE JWAB
+C89E;C89E;110C 116A 11B9;C89E;110C 116A 11B9; # (좞; 좞; 좞; 좞; 좞; ) HANGUL SYLLABLE JWABS
+C89F;C89F;110C 116A 11BA;C89F;110C 116A 11BA; # (좟; 좟; 좟; 좟; 좟; ) HANGUL SYLLABLE JWAS
+C8A0;C8A0;110C 116A 11BB;C8A0;110C 116A 11BB; # (좠; 좠; 좠; 좠; 좠; ) HANGUL SYLLABLE JWASS
+C8A1;C8A1;110C 116A 11BC;C8A1;110C 116A 11BC; # (좡; 좡; 좡; 좡; 좡; ) HANGUL SYLLABLE JWANG
+C8A2;C8A2;110C 116A 11BD;C8A2;110C 116A 11BD; # (좢; 좢; 좢; 좢; 좢; ) HANGUL SYLLABLE JWAJ
+C8A3;C8A3;110C 116A 11BE;C8A3;110C 116A 11BE; # (좣; 좣; 좣; 좣; 좣; ) HANGUL SYLLABLE JWAC
+C8A4;C8A4;110C 116A 11BF;C8A4;110C 116A 11BF; # (좤; 좤; 좤; 좤; 좤; ) HANGUL SYLLABLE JWAK
+C8A5;C8A5;110C 116A 11C0;C8A5;110C 116A 11C0; # (좥; 좥; 좥; 좥; 좥; ) HANGUL SYLLABLE JWAT
+C8A6;C8A6;110C 116A 11C1;C8A6;110C 116A 11C1; # (좦; 좦; 좦; 좦; 좦; ) HANGUL SYLLABLE JWAP
+C8A7;C8A7;110C 116A 11C2;C8A7;110C 116A 11C2; # (좧; 좧; 좧; 좧; 좧; ) HANGUL SYLLABLE JWAH
+C8A8;C8A8;110C 116B;C8A8;110C 116B; # (좨; 좨; 좨; 좨; 좨; ) HANGUL SYLLABLE JWAE
+C8A9;C8A9;110C 116B 11A8;C8A9;110C 116B 11A8; # (좩; 좩; 좩; 좩; 좩; ) HANGUL SYLLABLE JWAEG
+C8AA;C8AA;110C 116B 11A9;C8AA;110C 116B 11A9; # (좪; 좪; 좪; 좪; 좪; ) HANGUL SYLLABLE JWAEGG
+C8AB;C8AB;110C 116B 11AA;C8AB;110C 116B 11AA; # (좫; 좫; 좫; 좫; 좫; ) HANGUL SYLLABLE JWAEGS
+C8AC;C8AC;110C 116B 11AB;C8AC;110C 116B 11AB; # (좬; 좬; 좬; 좬; 좬; ) HANGUL SYLLABLE JWAEN
+C8AD;C8AD;110C 116B 11AC;C8AD;110C 116B 11AC; # (좭; 좭; 좭; 좭; 좭; ) HANGUL SYLLABLE JWAENJ
+C8AE;C8AE;110C 116B 11AD;C8AE;110C 116B 11AD; # (좮; 좮; 좮; 좮; 좮; ) HANGUL SYLLABLE JWAENH
+C8AF;C8AF;110C 116B 11AE;C8AF;110C 116B 11AE; # (좯; 좯; 좯; 좯; 좯; ) HANGUL SYLLABLE JWAED
+C8B0;C8B0;110C 116B 11AF;C8B0;110C 116B 11AF; # (좰; 좰; 좰; 좰; 좰; ) HANGUL SYLLABLE JWAEL
+C8B1;C8B1;110C 116B 11B0;C8B1;110C 116B 11B0; # (좱; 좱; 좱; 좱; 좱; ) HANGUL SYLLABLE JWAELG
+C8B2;C8B2;110C 116B 11B1;C8B2;110C 116B 11B1; # (좲; 좲; 좲; 좲; 좲; ) HANGUL SYLLABLE JWAELM
+C8B3;C8B3;110C 116B 11B2;C8B3;110C 116B 11B2; # (좳; 좳; 좳; 좳; 좳; ) HANGUL SYLLABLE JWAELB
+C8B4;C8B4;110C 116B 11B3;C8B4;110C 116B 11B3; # (좴; 좴; 좴; 좴; 좴; ) HANGUL SYLLABLE JWAELS
+C8B5;C8B5;110C 116B 11B4;C8B5;110C 116B 11B4; # (좵; 좵; 좵; 좵; 좵; ) HANGUL SYLLABLE JWAELT
+C8B6;C8B6;110C 116B 11B5;C8B6;110C 116B 11B5; # (좶; 좶; 좶; 좶; 좶; ) HANGUL SYLLABLE JWAELP
+C8B7;C8B7;110C 116B 11B6;C8B7;110C 116B 11B6; # (좷; 좷; 좷; 좷; 좷; ) HANGUL SYLLABLE JWAELH
+C8B8;C8B8;110C 116B 11B7;C8B8;110C 116B 11B7; # (좸; 좸; 좸; 좸; 좸; ) HANGUL SYLLABLE JWAEM
+C8B9;C8B9;110C 116B 11B8;C8B9;110C 116B 11B8; # (좹; 좹; 좹; 좹; 좹; ) HANGUL SYLLABLE JWAEB
+C8BA;C8BA;110C 116B 11B9;C8BA;110C 116B 11B9; # (좺; 좺; 좺; 좺; 좺; ) HANGUL SYLLABLE JWAEBS
+C8BB;C8BB;110C 116B 11BA;C8BB;110C 116B 11BA; # (좻; 좻; 좻; 좻; 좻; ) HANGUL SYLLABLE JWAES
+C8BC;C8BC;110C 116B 11BB;C8BC;110C 116B 11BB; # (좼; 좼; 좼; 좼; 좼; ) HANGUL SYLLABLE JWAESS
+C8BD;C8BD;110C 116B 11BC;C8BD;110C 116B 11BC; # (좽; 좽; 좽; 좽; 좽; ) HANGUL SYLLABLE JWAENG
+C8BE;C8BE;110C 116B 11BD;C8BE;110C 116B 11BD; # (좾; 좾; 좾; 좾; 좾; ) HANGUL SYLLABLE JWAEJ
+C8BF;C8BF;110C 116B 11BE;C8BF;110C 116B 11BE; # (좿; 좿; 좿; 좿; 좿; ) HANGUL SYLLABLE JWAEC
+C8C0;C8C0;110C 116B 11BF;C8C0;110C 116B 11BF; # (죀; 죀; 죀; 죀; 죀; ) HANGUL SYLLABLE JWAEK
+C8C1;C8C1;110C 116B 11C0;C8C1;110C 116B 11C0; # (죁; 죁; 죁; 죁; 죁; ) HANGUL SYLLABLE JWAET
+C8C2;C8C2;110C 116B 11C1;C8C2;110C 116B 11C1; # (죂; 죂; 죂; 죂; 죂; ) HANGUL SYLLABLE JWAEP
+C8C3;C8C3;110C 116B 11C2;C8C3;110C 116B 11C2; # (죃; 죃; 죃; 죃; 죃; ) HANGUL SYLLABLE JWAEH
+C8C4;C8C4;110C 116C;C8C4;110C 116C; # (죄; 죄; 죄; 죄; 죄; ) HANGUL SYLLABLE JOE
+C8C5;C8C5;110C 116C 11A8;C8C5;110C 116C 11A8; # (죅; 죅; 죅; 죅; 죅; ) HANGUL SYLLABLE JOEG
+C8C6;C8C6;110C 116C 11A9;C8C6;110C 116C 11A9; # (죆; 죆; 죆; 죆; 죆; ) HANGUL SYLLABLE JOEGG
+C8C7;C8C7;110C 116C 11AA;C8C7;110C 116C 11AA; # (죇; 죇; 죇; 죇; 죇; ) HANGUL SYLLABLE JOEGS
+C8C8;C8C8;110C 116C 11AB;C8C8;110C 116C 11AB; # (죈; 죈; 죈; 죈; 죈; ) HANGUL SYLLABLE JOEN
+C8C9;C8C9;110C 116C 11AC;C8C9;110C 116C 11AC; # (죉; 죉; 죉; 죉; 죉; ) HANGUL SYLLABLE JOENJ
+C8CA;C8CA;110C 116C 11AD;C8CA;110C 116C 11AD; # (죊; 죊; 죊; 죊; 죊; ) HANGUL SYLLABLE JOENH
+C8CB;C8CB;110C 116C 11AE;C8CB;110C 116C 11AE; # (죋; 죋; 죋; 죋; 죋; ) HANGUL SYLLABLE JOED
+C8CC;C8CC;110C 116C 11AF;C8CC;110C 116C 11AF; # (죌; 죌; 죌; 죌; 죌; ) HANGUL SYLLABLE JOEL
+C8CD;C8CD;110C 116C 11B0;C8CD;110C 116C 11B0; # (죍; 죍; 죍; 죍; 죍; ) HANGUL SYLLABLE JOELG
+C8CE;C8CE;110C 116C 11B1;C8CE;110C 116C 11B1; # (죎; 죎; 죎; 죎; 죎; ) HANGUL SYLLABLE JOELM
+C8CF;C8CF;110C 116C 11B2;C8CF;110C 116C 11B2; # (죏; 죏; 죏; 죏; 죏; ) HANGUL SYLLABLE JOELB
+C8D0;C8D0;110C 116C 11B3;C8D0;110C 116C 11B3; # (죐; 죐; 죐; 죐; 죐; ) HANGUL SYLLABLE JOELS
+C8D1;C8D1;110C 116C 11B4;C8D1;110C 116C 11B4; # (죑; 죑; 죑; 죑; 죑; ) HANGUL SYLLABLE JOELT
+C8D2;C8D2;110C 116C 11B5;C8D2;110C 116C 11B5; # (죒; 죒; 죒; 죒; 죒; ) HANGUL SYLLABLE JOELP
+C8D3;C8D3;110C 116C 11B6;C8D3;110C 116C 11B6; # (죓; 죓; 죓; 죓; 죓; ) HANGUL SYLLABLE JOELH
+C8D4;C8D4;110C 116C 11B7;C8D4;110C 116C 11B7; # (죔; 죔; 죔; 죔; 죔; ) HANGUL SYLLABLE JOEM
+C8D5;C8D5;110C 116C 11B8;C8D5;110C 116C 11B8; # (죕; 죕; 죕; 죕; 죕; ) HANGUL SYLLABLE JOEB
+C8D6;C8D6;110C 116C 11B9;C8D6;110C 116C 11B9; # (죖; 죖; 죖; 죖; 죖; ) HANGUL SYLLABLE JOEBS
+C8D7;C8D7;110C 116C 11BA;C8D7;110C 116C 11BA; # (죗; 죗; 죗; 죗; 죗; ) HANGUL SYLLABLE JOES
+C8D8;C8D8;110C 116C 11BB;C8D8;110C 116C 11BB; # (죘; 죘; 죘; 죘; 죘; ) HANGUL SYLLABLE JOESS
+C8D9;C8D9;110C 116C 11BC;C8D9;110C 116C 11BC; # (죙; 죙; 죙; 죙; 죙; ) HANGUL SYLLABLE JOENG
+C8DA;C8DA;110C 116C 11BD;C8DA;110C 116C 11BD; # (죚; 죚; 죚; 죚; 죚; ) HANGUL SYLLABLE JOEJ
+C8DB;C8DB;110C 116C 11BE;C8DB;110C 116C 11BE; # (죛; 죛; 죛; 죛; 죛; ) HANGUL SYLLABLE JOEC
+C8DC;C8DC;110C 116C 11BF;C8DC;110C 116C 11BF; # (죜; 죜; 죜; 죜; 죜; ) HANGUL SYLLABLE JOEK
+C8DD;C8DD;110C 116C 11C0;C8DD;110C 116C 11C0; # (죝; 죝; 죝; 죝; 죝; ) HANGUL SYLLABLE JOET
+C8DE;C8DE;110C 116C 11C1;C8DE;110C 116C 11C1; # (죞; 죞; 죞; 죞; 죞; ) HANGUL SYLLABLE JOEP
+C8DF;C8DF;110C 116C 11C2;C8DF;110C 116C 11C2; # (죟; 죟; 죟; 죟; 죟; ) HANGUL SYLLABLE JOEH
+C8E0;C8E0;110C 116D;C8E0;110C 116D; # (죠; 죠; 죠; 죠; 죠; ) HANGUL SYLLABLE JYO
+C8E1;C8E1;110C 116D 11A8;C8E1;110C 116D 11A8; # (죡; 죡; 죡; 죡; 죡; ) HANGUL SYLLABLE JYOG
+C8E2;C8E2;110C 116D 11A9;C8E2;110C 116D 11A9; # (죢; 죢; 죢; 죢; 죢; ) HANGUL SYLLABLE JYOGG
+C8E3;C8E3;110C 116D 11AA;C8E3;110C 116D 11AA; # (죣; 죣; 죣; 죣; 죣; ) HANGUL SYLLABLE JYOGS
+C8E4;C8E4;110C 116D 11AB;C8E4;110C 116D 11AB; # (죤; 죤; 죤; 죤; 죤; ) HANGUL SYLLABLE JYON
+C8E5;C8E5;110C 116D 11AC;C8E5;110C 116D 11AC; # (죥; 죥; 죥; 죥; 죥; ) HANGUL SYLLABLE JYONJ
+C8E6;C8E6;110C 116D 11AD;C8E6;110C 116D 11AD; # (죦; 죦; 죦; 죦; 죦; ) HANGUL SYLLABLE JYONH
+C8E7;C8E7;110C 116D 11AE;C8E7;110C 116D 11AE; # (죧; 죧; 죧; 죧; 죧; ) HANGUL SYLLABLE JYOD
+C8E8;C8E8;110C 116D 11AF;C8E8;110C 116D 11AF; # (죨; 죨; 죨; 죨; 죨; ) HANGUL SYLLABLE JYOL
+C8E9;C8E9;110C 116D 11B0;C8E9;110C 116D 11B0; # (죩; 죩; 죩; 죩; 죩; ) HANGUL SYLLABLE JYOLG
+C8EA;C8EA;110C 116D 11B1;C8EA;110C 116D 11B1; # (죪; 죪; 죪; 죪; 죪; ) HANGUL SYLLABLE JYOLM
+C8EB;C8EB;110C 116D 11B2;C8EB;110C 116D 11B2; # (죫; 죫; 죫; 죫; 죫; ) HANGUL SYLLABLE JYOLB
+C8EC;C8EC;110C 116D 11B3;C8EC;110C 116D 11B3; # (죬; 죬; 죬; 죬; 죬; ) HANGUL SYLLABLE JYOLS
+C8ED;C8ED;110C 116D 11B4;C8ED;110C 116D 11B4; # (죭; 죭; 죭; 죭; 죭; ) HANGUL SYLLABLE JYOLT
+C8EE;C8EE;110C 116D 11B5;C8EE;110C 116D 11B5; # (죮; 죮; 죮; 죮; 죮; ) HANGUL SYLLABLE JYOLP
+C8EF;C8EF;110C 116D 11B6;C8EF;110C 116D 11B6; # (죯; 죯; 죯; 죯; 죯; ) HANGUL SYLLABLE JYOLH
+C8F0;C8F0;110C 116D 11B7;C8F0;110C 116D 11B7; # (죰; 죰; 죰; 죰; 죰; ) HANGUL SYLLABLE JYOM
+C8F1;C8F1;110C 116D 11B8;C8F1;110C 116D 11B8; # (죱; 죱; 죱; 죱; 죱; ) HANGUL SYLLABLE JYOB
+C8F2;C8F2;110C 116D 11B9;C8F2;110C 116D 11B9; # (죲; 죲; 죲; 죲; 죲; ) HANGUL SYLLABLE JYOBS
+C8F3;C8F3;110C 116D 11BA;C8F3;110C 116D 11BA; # (죳; 죳; 죳; 죳; 죳; ) HANGUL SYLLABLE JYOS
+C8F4;C8F4;110C 116D 11BB;C8F4;110C 116D 11BB; # (죴; 죴; 죴; 죴; 죴; ) HANGUL SYLLABLE JYOSS
+C8F5;C8F5;110C 116D 11BC;C8F5;110C 116D 11BC; # (죵; 죵; 죵; 죵; 죵; ) HANGUL SYLLABLE JYONG
+C8F6;C8F6;110C 116D 11BD;C8F6;110C 116D 11BD; # (죶; 죶; 죶; 죶; 죶; ) HANGUL SYLLABLE JYOJ
+C8F7;C8F7;110C 116D 11BE;C8F7;110C 116D 11BE; # (죷; 죷; 죷; 죷; 죷; ) HANGUL SYLLABLE JYOC
+C8F8;C8F8;110C 116D 11BF;C8F8;110C 116D 11BF; # (죸; 죸; 죸; 죸; 죸; ) HANGUL SYLLABLE JYOK
+C8F9;C8F9;110C 116D 11C0;C8F9;110C 116D 11C0; # (죹; 죹; 죹; 죹; 죹; ) HANGUL SYLLABLE JYOT
+C8FA;C8FA;110C 116D 11C1;C8FA;110C 116D 11C1; # (죺; 죺; 죺; 죺; 죺; ) HANGUL SYLLABLE JYOP
+C8FB;C8FB;110C 116D 11C2;C8FB;110C 116D 11C2; # (죻; 죻; 죻; 죻; 죻; ) HANGUL SYLLABLE JYOH
+C8FC;C8FC;110C 116E;C8FC;110C 116E; # (주; 주; 주; 주; 주; ) HANGUL SYLLABLE JU
+C8FD;C8FD;110C 116E 11A8;C8FD;110C 116E 11A8; # (죽; 죽; 죽; 죽; 죽; ) HANGUL SYLLABLE JUG
+C8FE;C8FE;110C 116E 11A9;C8FE;110C 116E 11A9; # (죾; 죾; 죾; 죾; 죾; ) HANGUL SYLLABLE JUGG
+C8FF;C8FF;110C 116E 11AA;C8FF;110C 116E 11AA; # (죿; 죿; 죿; 죿; 죿; ) HANGUL SYLLABLE JUGS
+C900;C900;110C 116E 11AB;C900;110C 116E 11AB; # (준; 준; 준; 준; 준; ) HANGUL SYLLABLE JUN
+C901;C901;110C 116E 11AC;C901;110C 116E 11AC; # (줁; 줁; 줁; 줁; 줁; ) HANGUL SYLLABLE JUNJ
+C902;C902;110C 116E 11AD;C902;110C 116E 11AD; # (줂; 줂; 줂; 줂; 줂; ) HANGUL SYLLABLE JUNH
+C903;C903;110C 116E 11AE;C903;110C 116E 11AE; # (줃; 줃; 줃; 줃; 줃; ) HANGUL SYLLABLE JUD
+C904;C904;110C 116E 11AF;C904;110C 116E 11AF; # (줄; 줄; 줄; 줄; 줄; ) HANGUL SYLLABLE JUL
+C905;C905;110C 116E 11B0;C905;110C 116E 11B0; # (줅; 줅; 줅; 줅; 줅; ) HANGUL SYLLABLE JULG
+C906;C906;110C 116E 11B1;C906;110C 116E 11B1; # (줆; 줆; 줆; 줆; 줆; ) HANGUL SYLLABLE JULM
+C907;C907;110C 116E 11B2;C907;110C 116E 11B2; # (줇; 줇; 줇; 줇; 줇; ) HANGUL SYLLABLE JULB
+C908;C908;110C 116E 11B3;C908;110C 116E 11B3; # (줈; 줈; 줈; 줈; 줈; ) HANGUL SYLLABLE JULS
+C909;C909;110C 116E 11B4;C909;110C 116E 11B4; # (줉; 줉; 줉; 줉; 줉; ) HANGUL SYLLABLE JULT
+C90A;C90A;110C 116E 11B5;C90A;110C 116E 11B5; # (줊; 줊; 줊; 줊; 줊; ) HANGUL SYLLABLE JULP
+C90B;C90B;110C 116E 11B6;C90B;110C 116E 11B6; # (줋; 줋; 줋; 줋; 줋; ) HANGUL SYLLABLE JULH
+C90C;C90C;110C 116E 11B7;C90C;110C 116E 11B7; # (줌; 줌; 줌; 줌; 줌; ) HANGUL SYLLABLE JUM
+C90D;C90D;110C 116E 11B8;C90D;110C 116E 11B8; # (줍; 줍; 줍; 줍; 줍; ) HANGUL SYLLABLE JUB
+C90E;C90E;110C 116E 11B9;C90E;110C 116E 11B9; # (줎; 줎; 줎; 줎; 줎; ) HANGUL SYLLABLE JUBS
+C90F;C90F;110C 116E 11BA;C90F;110C 116E 11BA; # (줏; 줏; 줏; 줏; 줏; ) HANGUL SYLLABLE JUS
+C910;C910;110C 116E 11BB;C910;110C 116E 11BB; # (줐; 줐; 줐; 줐; 줐; ) HANGUL SYLLABLE JUSS
+C911;C911;110C 116E 11BC;C911;110C 116E 11BC; # (중; 중; 중; 중; 중; ) HANGUL SYLLABLE JUNG
+C912;C912;110C 116E 11BD;C912;110C 116E 11BD; # (줒; 줒; 줒; 줒; 줒; ) HANGUL SYLLABLE JUJ
+C913;C913;110C 116E 11BE;C913;110C 116E 11BE; # (줓; 줓; 줓; 줓; 줓; ) HANGUL SYLLABLE JUC
+C914;C914;110C 116E 11BF;C914;110C 116E 11BF; # (줔; 줔; 줔; 줔; 줔; ) HANGUL SYLLABLE JUK
+C915;C915;110C 116E 11C0;C915;110C 116E 11C0; # (줕; 줕; 줕; 줕; 줕; ) HANGUL SYLLABLE JUT
+C916;C916;110C 116E 11C1;C916;110C 116E 11C1; # (줖; 줖; 줖; 줖; 줖; ) HANGUL SYLLABLE JUP
+C917;C917;110C 116E 11C2;C917;110C 116E 11C2; # (줗; 줗; 줗; 줗; 줗; ) HANGUL SYLLABLE JUH
+C918;C918;110C 116F;C918;110C 116F; # (줘; 줘; 줘; 줘; 줘; ) HANGUL SYLLABLE JWEO
+C919;C919;110C 116F 11A8;C919;110C 116F 11A8; # (줙; 줙; 줙; 줙; 줙; ) HANGUL SYLLABLE JWEOG
+C91A;C91A;110C 116F 11A9;C91A;110C 116F 11A9; # (줚; 줚; 줚; 줚; 줚; ) HANGUL SYLLABLE JWEOGG
+C91B;C91B;110C 116F 11AA;C91B;110C 116F 11AA; # (줛; 줛; 줛; 줛; 줛; ) HANGUL SYLLABLE JWEOGS
+C91C;C91C;110C 116F 11AB;C91C;110C 116F 11AB; # (줜; 줜; 줜; 줜; 줜; ) HANGUL SYLLABLE JWEON
+C91D;C91D;110C 116F 11AC;C91D;110C 116F 11AC; # (줝; 줝; 줝; 줝; 줝; ) HANGUL SYLLABLE JWEONJ
+C91E;C91E;110C 116F 11AD;C91E;110C 116F 11AD; # (줞; 줞; 줞; 줞; 줞; ) HANGUL SYLLABLE JWEONH
+C91F;C91F;110C 116F 11AE;C91F;110C 116F 11AE; # (줟; 줟; 줟; 줟; 줟; ) HANGUL SYLLABLE JWEOD
+C920;C920;110C 116F 11AF;C920;110C 116F 11AF; # (줠; 줠; 줠; 줠; 줠; ) HANGUL SYLLABLE JWEOL
+C921;C921;110C 116F 11B0;C921;110C 116F 11B0; # (줡; 줡; 줡; 줡; 줡; ) HANGUL SYLLABLE JWEOLG
+C922;C922;110C 116F 11B1;C922;110C 116F 11B1; # (줢; 줢; 줢; 줢; 줢; ) HANGUL SYLLABLE JWEOLM
+C923;C923;110C 116F 11B2;C923;110C 116F 11B2; # (줣; 줣; 줣; 줣; 줣; ) HANGUL SYLLABLE JWEOLB
+C924;C924;110C 116F 11B3;C924;110C 116F 11B3; # (줤; 줤; 줤; 줤; 줤; ) HANGUL SYLLABLE JWEOLS
+C925;C925;110C 116F 11B4;C925;110C 116F 11B4; # (줥; 줥; 줥; 줥; 줥; ) HANGUL SYLLABLE JWEOLT
+C926;C926;110C 116F 11B5;C926;110C 116F 11B5; # (줦; 줦; 줦; 줦; 줦; ) HANGUL SYLLABLE JWEOLP
+C927;C927;110C 116F 11B6;C927;110C 116F 11B6; # (줧; 줧; 줧; 줧; 줧; ) HANGUL SYLLABLE JWEOLH
+C928;C928;110C 116F 11B7;C928;110C 116F 11B7; # (줨; 줨; 줨; 줨; 줨; ) HANGUL SYLLABLE JWEOM
+C929;C929;110C 116F 11B8;C929;110C 116F 11B8; # (줩; 줩; 줩; 줩; 줩; ) HANGUL SYLLABLE JWEOB
+C92A;C92A;110C 116F 11B9;C92A;110C 116F 11B9; # (줪; 줪; 줪; 줪; 줪; ) HANGUL SYLLABLE JWEOBS
+C92B;C92B;110C 116F 11BA;C92B;110C 116F 11BA; # (줫; 줫; 줫; 줫; 줫; ) HANGUL SYLLABLE JWEOS
+C92C;C92C;110C 116F 11BB;C92C;110C 116F 11BB; # (줬; 줬; 줬; 줬; 줬; ) HANGUL SYLLABLE JWEOSS
+C92D;C92D;110C 116F 11BC;C92D;110C 116F 11BC; # (줭; 줭; 줭; 줭; 줭; ) HANGUL SYLLABLE JWEONG
+C92E;C92E;110C 116F 11BD;C92E;110C 116F 11BD; # (줮; 줮; 줮; 줮; 줮; ) HANGUL SYLLABLE JWEOJ
+C92F;C92F;110C 116F 11BE;C92F;110C 116F 11BE; # (줯; 줯; 줯; 줯; 줯; ) HANGUL SYLLABLE JWEOC
+C930;C930;110C 116F 11BF;C930;110C 116F 11BF; # (줰; 줰; 줰; 줰; 줰; ) HANGUL SYLLABLE JWEOK
+C931;C931;110C 116F 11C0;C931;110C 116F 11C0; # (줱; 줱; 줱; 줱; 줱; ) HANGUL SYLLABLE JWEOT
+C932;C932;110C 116F 11C1;C932;110C 116F 11C1; # (줲; 줲; 줲; 줲; 줲; ) HANGUL SYLLABLE JWEOP
+C933;C933;110C 116F 11C2;C933;110C 116F 11C2; # (줳; 줳; 줳; 줳; 줳; ) HANGUL SYLLABLE JWEOH
+C934;C934;110C 1170;C934;110C 1170; # (줴; 줴; 줴; 줴; 줴; ) HANGUL SYLLABLE JWE
+C935;C935;110C 1170 11A8;C935;110C 1170 11A8; # (줵; 줵; 줵; 줵; 줵; ) HANGUL SYLLABLE JWEG
+C936;C936;110C 1170 11A9;C936;110C 1170 11A9; # (줶; 줶; 줶; 줶; 줶; ) HANGUL SYLLABLE JWEGG
+C937;C937;110C 1170 11AA;C937;110C 1170 11AA; # (줷; 줷; 줷; 줷; 줷; ) HANGUL SYLLABLE JWEGS
+C938;C938;110C 1170 11AB;C938;110C 1170 11AB; # (줸; 줸; 줸; 줸; 줸; ) HANGUL SYLLABLE JWEN
+C939;C939;110C 1170 11AC;C939;110C 1170 11AC; # (줹; 줹; 줹; 줹; 줹; ) HANGUL SYLLABLE JWENJ
+C93A;C93A;110C 1170 11AD;C93A;110C 1170 11AD; # (줺; 줺; 줺; 줺; 줺; ) HANGUL SYLLABLE JWENH
+C93B;C93B;110C 1170 11AE;C93B;110C 1170 11AE; # (줻; 줻; 줻; 줻; 줻; ) HANGUL SYLLABLE JWED
+C93C;C93C;110C 1170 11AF;C93C;110C 1170 11AF; # (줼; 줼; 줼; 줼; 줼; ) HANGUL SYLLABLE JWEL
+C93D;C93D;110C 1170 11B0;C93D;110C 1170 11B0; # (줽; 줽; 줽; 줽; 줽; ) HANGUL SYLLABLE JWELG
+C93E;C93E;110C 1170 11B1;C93E;110C 1170 11B1; # (줾; 줾; 줾; 줾; 줾; ) HANGUL SYLLABLE JWELM
+C93F;C93F;110C 1170 11B2;C93F;110C 1170 11B2; # (줿; 줿; 줿; 줿; 줿; ) HANGUL SYLLABLE JWELB
+C940;C940;110C 1170 11B3;C940;110C 1170 11B3; # (쥀; 쥀; 쥀; 쥀; 쥀; ) HANGUL SYLLABLE JWELS
+C941;C941;110C 1170 11B4;C941;110C 1170 11B4; # (쥁; 쥁; 쥁; 쥁; 쥁; ) HANGUL SYLLABLE JWELT
+C942;C942;110C 1170 11B5;C942;110C 1170 11B5; # (쥂; 쥂; 쥂; 쥂; 쥂; ) HANGUL SYLLABLE JWELP
+C943;C943;110C 1170 11B6;C943;110C 1170 11B6; # (쥃; 쥃; 쥃; 쥃; 쥃; ) HANGUL SYLLABLE JWELH
+C944;C944;110C 1170 11B7;C944;110C 1170 11B7; # (쥄; 쥄; 쥄; 쥄; 쥄; ) HANGUL SYLLABLE JWEM
+C945;C945;110C 1170 11B8;C945;110C 1170 11B8; # (쥅; 쥅; 쥅; 쥅; 쥅; ) HANGUL SYLLABLE JWEB
+C946;C946;110C 1170 11B9;C946;110C 1170 11B9; # (쥆; 쥆; 쥆; 쥆; 쥆; ) HANGUL SYLLABLE JWEBS
+C947;C947;110C 1170 11BA;C947;110C 1170 11BA; # (쥇; 쥇; 쥇; 쥇; 쥇; ) HANGUL SYLLABLE JWES
+C948;C948;110C 1170 11BB;C948;110C 1170 11BB; # (쥈; 쥈; 쥈; 쥈; 쥈; ) HANGUL SYLLABLE JWESS
+C949;C949;110C 1170 11BC;C949;110C 1170 11BC; # (쥉; 쥉; 쥉; 쥉; 쥉; ) HANGUL SYLLABLE JWENG
+C94A;C94A;110C 1170 11BD;C94A;110C 1170 11BD; # (쥊; 쥊; 쥊; 쥊; 쥊; ) HANGUL SYLLABLE JWEJ
+C94B;C94B;110C 1170 11BE;C94B;110C 1170 11BE; # (쥋; 쥋; 쥋; 쥋; 쥋; ) HANGUL SYLLABLE JWEC
+C94C;C94C;110C 1170 11BF;C94C;110C 1170 11BF; # (쥌; 쥌; 쥌; 쥌; 쥌; ) HANGUL SYLLABLE JWEK
+C94D;C94D;110C 1170 11C0;C94D;110C 1170 11C0; # (쥍; 쥍; 쥍; 쥍; 쥍; ) HANGUL SYLLABLE JWET
+C94E;C94E;110C 1170 11C1;C94E;110C 1170 11C1; # (쥎; 쥎; 쥎; 쥎; 쥎; ) HANGUL SYLLABLE JWEP
+C94F;C94F;110C 1170 11C2;C94F;110C 1170 11C2; # (쥏; 쥏; 쥏; 쥏; 쥏; ) HANGUL SYLLABLE JWEH
+C950;C950;110C 1171;C950;110C 1171; # (쥐; 쥐; 쥐; 쥐; 쥐; ) HANGUL SYLLABLE JWI
+C951;C951;110C 1171 11A8;C951;110C 1171 11A8; # (쥑; 쥑; 쥑; 쥑; 쥑; ) HANGUL SYLLABLE JWIG
+C952;C952;110C 1171 11A9;C952;110C 1171 11A9; # (쥒; 쥒; 쥒; 쥒; 쥒; ) HANGUL SYLLABLE JWIGG
+C953;C953;110C 1171 11AA;C953;110C 1171 11AA; # (쥓; 쥓; 쥓; 쥓; 쥓; ) HANGUL SYLLABLE JWIGS
+C954;C954;110C 1171 11AB;C954;110C 1171 11AB; # (쥔; 쥔; 쥔; 쥔; 쥔; ) HANGUL SYLLABLE JWIN
+C955;C955;110C 1171 11AC;C955;110C 1171 11AC; # (쥕; 쥕; 쥕; 쥕; 쥕; ) HANGUL SYLLABLE JWINJ
+C956;C956;110C 1171 11AD;C956;110C 1171 11AD; # (쥖; 쥖; 쥖; 쥖; 쥖; ) HANGUL SYLLABLE JWINH
+C957;C957;110C 1171 11AE;C957;110C 1171 11AE; # (쥗; 쥗; 쥗; 쥗; 쥗; ) HANGUL SYLLABLE JWID
+C958;C958;110C 1171 11AF;C958;110C 1171 11AF; # (쥘; 쥘; 쥘; 쥘; 쥘; ) HANGUL SYLLABLE JWIL
+C959;C959;110C 1171 11B0;C959;110C 1171 11B0; # (쥙; 쥙; 쥙; 쥙; 쥙; ) HANGUL SYLLABLE JWILG
+C95A;C95A;110C 1171 11B1;C95A;110C 1171 11B1; # (쥚; 쥚; 쥚; 쥚; 쥚; ) HANGUL SYLLABLE JWILM
+C95B;C95B;110C 1171 11B2;C95B;110C 1171 11B2; # (쥛; 쥛; 쥛; 쥛; 쥛; ) HANGUL SYLLABLE JWILB
+C95C;C95C;110C 1171 11B3;C95C;110C 1171 11B3; # (쥜; 쥜; 쥜; 쥜; 쥜; ) HANGUL SYLLABLE JWILS
+C95D;C95D;110C 1171 11B4;C95D;110C 1171 11B4; # (쥝; 쥝; 쥝; 쥝; 쥝; ) HANGUL SYLLABLE JWILT
+C95E;C95E;110C 1171 11B5;C95E;110C 1171 11B5; # (쥞; 쥞; 쥞; 쥞; 쥞; ) HANGUL SYLLABLE JWILP
+C95F;C95F;110C 1171 11B6;C95F;110C 1171 11B6; # (쥟; 쥟; 쥟; 쥟; 쥟; ) HANGUL SYLLABLE JWILH
+C960;C960;110C 1171 11B7;C960;110C 1171 11B7; # (쥠; 쥠; 쥠; 쥠; 쥠; ) HANGUL SYLLABLE JWIM
+C961;C961;110C 1171 11B8;C961;110C 1171 11B8; # (쥡; 쥡; 쥡; 쥡; 쥡; ) HANGUL SYLLABLE JWIB
+C962;C962;110C 1171 11B9;C962;110C 1171 11B9; # (쥢; 쥢; 쥢; 쥢; 쥢; ) HANGUL SYLLABLE JWIBS
+C963;C963;110C 1171 11BA;C963;110C 1171 11BA; # (쥣; 쥣; 쥣; 쥣; 쥣; ) HANGUL SYLLABLE JWIS
+C964;C964;110C 1171 11BB;C964;110C 1171 11BB; # (쥤; 쥤; 쥤; 쥤; 쥤; ) HANGUL SYLLABLE JWISS
+C965;C965;110C 1171 11BC;C965;110C 1171 11BC; # (쥥; 쥥; 쥥; 쥥; 쥥; ) HANGUL SYLLABLE JWING
+C966;C966;110C 1171 11BD;C966;110C 1171 11BD; # (쥦; 쥦; 쥦; 쥦; 쥦; ) HANGUL SYLLABLE JWIJ
+C967;C967;110C 1171 11BE;C967;110C 1171 11BE; # (쥧; 쥧; 쥧; 쥧; 쥧; ) HANGUL SYLLABLE JWIC
+C968;C968;110C 1171 11BF;C968;110C 1171 11BF; # (쥨; 쥨; 쥨; 쥨; 쥨; ) HANGUL SYLLABLE JWIK
+C969;C969;110C 1171 11C0;C969;110C 1171 11C0; # (쥩; 쥩; 쥩; 쥩; 쥩; ) HANGUL SYLLABLE JWIT
+C96A;C96A;110C 1171 11C1;C96A;110C 1171 11C1; # (쥪; 쥪; 쥪; 쥪; 쥪; ) HANGUL SYLLABLE JWIP
+C96B;C96B;110C 1171 11C2;C96B;110C 1171 11C2; # (쥫; 쥫; 쥫; 쥫; 쥫; ) HANGUL SYLLABLE JWIH
+C96C;C96C;110C 1172;C96C;110C 1172; # (쥬; 쥬; 쥬; 쥬; 쥬; ) HANGUL SYLLABLE JYU
+C96D;C96D;110C 1172 11A8;C96D;110C 1172 11A8; # (쥭; 쥭; 쥭; 쥭; 쥭; ) HANGUL SYLLABLE JYUG
+C96E;C96E;110C 1172 11A9;C96E;110C 1172 11A9; # (쥮; 쥮; 쥮; 쥮; 쥮; ) HANGUL SYLLABLE JYUGG
+C96F;C96F;110C 1172 11AA;C96F;110C 1172 11AA; # (쥯; 쥯; 쥯; 쥯; 쥯; ) HANGUL SYLLABLE JYUGS
+C970;C970;110C 1172 11AB;C970;110C 1172 11AB; # (쥰; 쥰; 쥰; 쥰; 쥰; ) HANGUL SYLLABLE JYUN
+C971;C971;110C 1172 11AC;C971;110C 1172 11AC; # (쥱; 쥱; 쥱; 쥱; 쥱; ) HANGUL SYLLABLE JYUNJ
+C972;C972;110C 1172 11AD;C972;110C 1172 11AD; # (쥲; 쥲; 쥲; 쥲; 쥲; ) HANGUL SYLLABLE JYUNH
+C973;C973;110C 1172 11AE;C973;110C 1172 11AE; # (쥳; 쥳; 쥳; 쥳; 쥳; ) HANGUL SYLLABLE JYUD
+C974;C974;110C 1172 11AF;C974;110C 1172 11AF; # (쥴; 쥴; 쥴; 쥴; 쥴; ) HANGUL SYLLABLE JYUL
+C975;C975;110C 1172 11B0;C975;110C 1172 11B0; # (쥵; 쥵; 쥵; 쥵; 쥵; ) HANGUL SYLLABLE JYULG
+C976;C976;110C 1172 11B1;C976;110C 1172 11B1; # (쥶; 쥶; 쥶; 쥶; 쥶; ) HANGUL SYLLABLE JYULM
+C977;C977;110C 1172 11B2;C977;110C 1172 11B2; # (쥷; 쥷; 쥷; 쥷; 쥷; ) HANGUL SYLLABLE JYULB
+C978;C978;110C 1172 11B3;C978;110C 1172 11B3; # (쥸; 쥸; 쥸; 쥸; 쥸; ) HANGUL SYLLABLE JYULS
+C979;C979;110C 1172 11B4;C979;110C 1172 11B4; # (쥹; 쥹; 쥹; 쥹; 쥹; ) HANGUL SYLLABLE JYULT
+C97A;C97A;110C 1172 11B5;C97A;110C 1172 11B5; # (쥺; 쥺; 쥺; 쥺; 쥺; ) HANGUL SYLLABLE JYULP
+C97B;C97B;110C 1172 11B6;C97B;110C 1172 11B6; # (쥻; 쥻; 쥻; 쥻; 쥻; ) HANGUL SYLLABLE JYULH
+C97C;C97C;110C 1172 11B7;C97C;110C 1172 11B7; # (쥼; 쥼; 쥼; 쥼; 쥼; ) HANGUL SYLLABLE JYUM
+C97D;C97D;110C 1172 11B8;C97D;110C 1172 11B8; # (쥽; 쥽; 쥽; 쥽; 쥽; ) HANGUL SYLLABLE JYUB
+C97E;C97E;110C 1172 11B9;C97E;110C 1172 11B9; # (쥾; 쥾; 쥾; 쥾; 쥾; ) HANGUL SYLLABLE JYUBS
+C97F;C97F;110C 1172 11BA;C97F;110C 1172 11BA; # (쥿; 쥿; 쥿; 쥿; 쥿; ) HANGUL SYLLABLE JYUS
+C980;C980;110C 1172 11BB;C980;110C 1172 11BB; # (즀; 즀; 즀; 즀; 즀; ) HANGUL SYLLABLE JYUSS
+C981;C981;110C 1172 11BC;C981;110C 1172 11BC; # (즁; 즁; 즁; 즁; 즁; ) HANGUL SYLLABLE JYUNG
+C982;C982;110C 1172 11BD;C982;110C 1172 11BD; # (즂; 즂; 즂; 즂; 즂; ) HANGUL SYLLABLE JYUJ
+C983;C983;110C 1172 11BE;C983;110C 1172 11BE; # (즃; 즃; 즃; 즃; 즃; ) HANGUL SYLLABLE JYUC
+C984;C984;110C 1172 11BF;C984;110C 1172 11BF; # (즄; 즄; 즄; 즄; 즄; ) HANGUL SYLLABLE JYUK
+C985;C985;110C 1172 11C0;C985;110C 1172 11C0; # (즅; 즅; 즅; 즅; 즅; ) HANGUL SYLLABLE JYUT
+C986;C986;110C 1172 11C1;C986;110C 1172 11C1; # (즆; 즆; 즆; 즆; 즆; ) HANGUL SYLLABLE JYUP
+C987;C987;110C 1172 11C2;C987;110C 1172 11C2; # (즇; 즇; 즇; 즇; 즇; ) HANGUL SYLLABLE JYUH
+C988;C988;110C 1173;C988;110C 1173; # (즈; 즈; 즈; 즈; 즈; ) HANGUL SYLLABLE JEU
+C989;C989;110C 1173 11A8;C989;110C 1173 11A8; # (즉; 즉; 즉; 즉; 즉; ) HANGUL SYLLABLE JEUG
+C98A;C98A;110C 1173 11A9;C98A;110C 1173 11A9; # (즊; 즊; 즊; 즊; 즊; ) HANGUL SYLLABLE JEUGG
+C98B;C98B;110C 1173 11AA;C98B;110C 1173 11AA; # (즋; 즋; 즋; 즋; 즋; ) HANGUL SYLLABLE JEUGS
+C98C;C98C;110C 1173 11AB;C98C;110C 1173 11AB; # (즌; 즌; 즌; 즌; 즌; ) HANGUL SYLLABLE JEUN
+C98D;C98D;110C 1173 11AC;C98D;110C 1173 11AC; # (즍; 즍; 즍; 즍; 즍; ) HANGUL SYLLABLE JEUNJ
+C98E;C98E;110C 1173 11AD;C98E;110C 1173 11AD; # (즎; 즎; 즎; 즎; 즎; ) HANGUL SYLLABLE JEUNH
+C98F;C98F;110C 1173 11AE;C98F;110C 1173 11AE; # (즏; 즏; 즏; 즏; 즏; ) HANGUL SYLLABLE JEUD
+C990;C990;110C 1173 11AF;C990;110C 1173 11AF; # (즐; 즐; 즐; 즐; 즐; ) HANGUL SYLLABLE JEUL
+C991;C991;110C 1173 11B0;C991;110C 1173 11B0; # (즑; 즑; 즑; 즑; 즑; ) HANGUL SYLLABLE JEULG
+C992;C992;110C 1173 11B1;C992;110C 1173 11B1; # (즒; 즒; 즒; 즒; 즒; ) HANGUL SYLLABLE JEULM
+C993;C993;110C 1173 11B2;C993;110C 1173 11B2; # (즓; 즓; 즓; 즓; 즓; ) HANGUL SYLLABLE JEULB
+C994;C994;110C 1173 11B3;C994;110C 1173 11B3; # (즔; 즔; 즔; 즔; 즔; ) HANGUL SYLLABLE JEULS
+C995;C995;110C 1173 11B4;C995;110C 1173 11B4; # (즕; 즕; 즕; 즕; 즕; ) HANGUL SYLLABLE JEULT
+C996;C996;110C 1173 11B5;C996;110C 1173 11B5; # (즖; 즖; 즖; 즖; 즖; ) HANGUL SYLLABLE JEULP
+C997;C997;110C 1173 11B6;C997;110C 1173 11B6; # (즗; 즗; 즗; 즗; 즗; ) HANGUL SYLLABLE JEULH
+C998;C998;110C 1173 11B7;C998;110C 1173 11B7; # (즘; 즘; 즘; 즘; 즘; ) HANGUL SYLLABLE JEUM
+C999;C999;110C 1173 11B8;C999;110C 1173 11B8; # (즙; 즙; 즙; 즙; 즙; ) HANGUL SYLLABLE JEUB
+C99A;C99A;110C 1173 11B9;C99A;110C 1173 11B9; # (즚; 즚; 즚; 즚; 즚; ) HANGUL SYLLABLE JEUBS
+C99B;C99B;110C 1173 11BA;C99B;110C 1173 11BA; # (즛; 즛; 즛; 즛; 즛; ) HANGUL SYLLABLE JEUS
+C99C;C99C;110C 1173 11BB;C99C;110C 1173 11BB; # (즜; 즜; 즜; 즜; 즜; ) HANGUL SYLLABLE JEUSS
+C99D;C99D;110C 1173 11BC;C99D;110C 1173 11BC; # (증; 증; 증; 증; 증; ) HANGUL SYLLABLE JEUNG
+C99E;C99E;110C 1173 11BD;C99E;110C 1173 11BD; # (즞; 즞; 즞; 즞; 즞; ) HANGUL SYLLABLE JEUJ
+C99F;C99F;110C 1173 11BE;C99F;110C 1173 11BE; # (즟; 즟; 즟; 즟; 즟; ) HANGUL SYLLABLE JEUC
+C9A0;C9A0;110C 1173 11BF;C9A0;110C 1173 11BF; # (즠; 즠; 즠; 즠; 즠; ) HANGUL SYLLABLE JEUK
+C9A1;C9A1;110C 1173 11C0;C9A1;110C 1173 11C0; # (즡; 즡; 즡; 즡; 즡; ) HANGUL SYLLABLE JEUT
+C9A2;C9A2;110C 1173 11C1;C9A2;110C 1173 11C1; # (즢; 즢; 즢; 즢; 즢; ) HANGUL SYLLABLE JEUP
+C9A3;C9A3;110C 1173 11C2;C9A3;110C 1173 11C2; # (즣; 즣; 즣; 즣; 즣; ) HANGUL SYLLABLE JEUH
+C9A4;C9A4;110C 1174;C9A4;110C 1174; # (즤; 즤; 즤; 즤; 즤; ) HANGUL SYLLABLE JYI
+C9A5;C9A5;110C 1174 11A8;C9A5;110C 1174 11A8; # (즥; 즥; 즥; 즥; 즥; ) HANGUL SYLLABLE JYIG
+C9A6;C9A6;110C 1174 11A9;C9A6;110C 1174 11A9; # (즦; 즦; 즦; 즦; 즦; ) HANGUL SYLLABLE JYIGG
+C9A7;C9A7;110C 1174 11AA;C9A7;110C 1174 11AA; # (즧; 즧; 즧; 즧; 즧; ) HANGUL SYLLABLE JYIGS
+C9A8;C9A8;110C 1174 11AB;C9A8;110C 1174 11AB; # (즨; 즨; 즨; 즨; 즨; ) HANGUL SYLLABLE JYIN
+C9A9;C9A9;110C 1174 11AC;C9A9;110C 1174 11AC; # (즩; 즩; 즩; 즩; 즩; ) HANGUL SYLLABLE JYINJ
+C9AA;C9AA;110C 1174 11AD;C9AA;110C 1174 11AD; # (즪; 즪; 즪; 즪; 즪; ) HANGUL SYLLABLE JYINH
+C9AB;C9AB;110C 1174 11AE;C9AB;110C 1174 11AE; # (즫; 즫; 즫; 즫; 즫; ) HANGUL SYLLABLE JYID
+C9AC;C9AC;110C 1174 11AF;C9AC;110C 1174 11AF; # (즬; 즬; 즬; 즬; 즬; ) HANGUL SYLLABLE JYIL
+C9AD;C9AD;110C 1174 11B0;C9AD;110C 1174 11B0; # (즭; 즭; 즭; 즭; 즭; ) HANGUL SYLLABLE JYILG
+C9AE;C9AE;110C 1174 11B1;C9AE;110C 1174 11B1; # (즮; 즮; 즮; 즮; 즮; ) HANGUL SYLLABLE JYILM
+C9AF;C9AF;110C 1174 11B2;C9AF;110C 1174 11B2; # (즯; 즯; 즯; 즯; 즯; ) HANGUL SYLLABLE JYILB
+C9B0;C9B0;110C 1174 11B3;C9B0;110C 1174 11B3; # (즰; 즰; 즰; 즰; 즰; ) HANGUL SYLLABLE JYILS
+C9B1;C9B1;110C 1174 11B4;C9B1;110C 1174 11B4; # (즱; 즱; 즱; 즱; 즱; ) HANGUL SYLLABLE JYILT
+C9B2;C9B2;110C 1174 11B5;C9B2;110C 1174 11B5; # (즲; 즲; 즲; 즲; 즲; ) HANGUL SYLLABLE JYILP
+C9B3;C9B3;110C 1174 11B6;C9B3;110C 1174 11B6; # (즳; 즳; 즳; 즳; 즳; ) HANGUL SYLLABLE JYILH
+C9B4;C9B4;110C 1174 11B7;C9B4;110C 1174 11B7; # (즴; 즴; 즴; 즴; 즴; ) HANGUL SYLLABLE JYIM
+C9B5;C9B5;110C 1174 11B8;C9B5;110C 1174 11B8; # (즵; 즵; 즵; 즵; 즵; ) HANGUL SYLLABLE JYIB
+C9B6;C9B6;110C 1174 11B9;C9B6;110C 1174 11B9; # (즶; 즶; 즶; 즶; 즶; ) HANGUL SYLLABLE JYIBS
+C9B7;C9B7;110C 1174 11BA;C9B7;110C 1174 11BA; # (즷; 즷; 즷; 즷; 즷; ) HANGUL SYLLABLE JYIS
+C9B8;C9B8;110C 1174 11BB;C9B8;110C 1174 11BB; # (즸; 즸; 즸; 즸; 즸; ) HANGUL SYLLABLE JYISS
+C9B9;C9B9;110C 1174 11BC;C9B9;110C 1174 11BC; # (즹; 즹; 즹; 즹; 즹; ) HANGUL SYLLABLE JYING
+C9BA;C9BA;110C 1174 11BD;C9BA;110C 1174 11BD; # (즺; 즺; 즺; 즺; 즺; ) HANGUL SYLLABLE JYIJ
+C9BB;C9BB;110C 1174 11BE;C9BB;110C 1174 11BE; # (즻; 즻; 즻; 즻; 즻; ) HANGUL SYLLABLE JYIC
+C9BC;C9BC;110C 1174 11BF;C9BC;110C 1174 11BF; # (즼; 즼; 즼; 즼; 즼; ) HANGUL SYLLABLE JYIK
+C9BD;C9BD;110C 1174 11C0;C9BD;110C 1174 11C0; # (즽; 즽; 즽; 즽; 즽; ) HANGUL SYLLABLE JYIT
+C9BE;C9BE;110C 1174 11C1;C9BE;110C 1174 11C1; # (즾; 즾; 즾; 즾; 즾; ) HANGUL SYLLABLE JYIP
+C9BF;C9BF;110C 1174 11C2;C9BF;110C 1174 11C2; # (즿; 즿; 즿; 즿; 즿; ) HANGUL SYLLABLE JYIH
+C9C0;C9C0;110C 1175;C9C0;110C 1175; # (지; 지; 지; 지; 지; ) HANGUL SYLLABLE JI
+C9C1;C9C1;110C 1175 11A8;C9C1;110C 1175 11A8; # (직; 직; 직; 직; 직; ) HANGUL SYLLABLE JIG
+C9C2;C9C2;110C 1175 11A9;C9C2;110C 1175 11A9; # (짂; 짂; 짂; 짂; 짂; ) HANGUL SYLLABLE JIGG
+C9C3;C9C3;110C 1175 11AA;C9C3;110C 1175 11AA; # (짃; 짃; 짃; 짃; 짃; ) HANGUL SYLLABLE JIGS
+C9C4;C9C4;110C 1175 11AB;C9C4;110C 1175 11AB; # (진; 진; 진; 진; 진; ) HANGUL SYLLABLE JIN
+C9C5;C9C5;110C 1175 11AC;C9C5;110C 1175 11AC; # (짅; 짅; 짅; 짅; 짅; ) HANGUL SYLLABLE JINJ
+C9C6;C9C6;110C 1175 11AD;C9C6;110C 1175 11AD; # (짆; 짆; 짆; 짆; 짆; ) HANGUL SYLLABLE JINH
+C9C7;C9C7;110C 1175 11AE;C9C7;110C 1175 11AE; # (짇; 짇; 짇; 짇; 짇; ) HANGUL SYLLABLE JID
+C9C8;C9C8;110C 1175 11AF;C9C8;110C 1175 11AF; # (질; 질; 질; 질; 질; ) HANGUL SYLLABLE JIL
+C9C9;C9C9;110C 1175 11B0;C9C9;110C 1175 11B0; # (짉; 짉; 짉; 짉; 짉; ) HANGUL SYLLABLE JILG
+C9CA;C9CA;110C 1175 11B1;C9CA;110C 1175 11B1; # (짊; 짊; 짊; 짊; 짊; ) HANGUL SYLLABLE JILM
+C9CB;C9CB;110C 1175 11B2;C9CB;110C 1175 11B2; # (짋; 짋; 짋; 짋; 짋; ) HANGUL SYLLABLE JILB
+C9CC;C9CC;110C 1175 11B3;C9CC;110C 1175 11B3; # (짌; 짌; 짌; 짌; 짌; ) HANGUL SYLLABLE JILS
+C9CD;C9CD;110C 1175 11B4;C9CD;110C 1175 11B4; # (짍; 짍; 짍; 짍; 짍; ) HANGUL SYLLABLE JILT
+C9CE;C9CE;110C 1175 11B5;C9CE;110C 1175 11B5; # (짎; 짎; 짎; 짎; 짎; ) HANGUL SYLLABLE JILP
+C9CF;C9CF;110C 1175 11B6;C9CF;110C 1175 11B6; # (짏; 짏; 짏; 짏; 짏; ) HANGUL SYLLABLE JILH
+C9D0;C9D0;110C 1175 11B7;C9D0;110C 1175 11B7; # (짐; 짐; 짐; 짐; 짐; ) HANGUL SYLLABLE JIM
+C9D1;C9D1;110C 1175 11B8;C9D1;110C 1175 11B8; # (집; 집; 집; 집; 집; ) HANGUL SYLLABLE JIB
+C9D2;C9D2;110C 1175 11B9;C9D2;110C 1175 11B9; # (짒; 짒; 짒; 짒; 짒; ) HANGUL SYLLABLE JIBS
+C9D3;C9D3;110C 1175 11BA;C9D3;110C 1175 11BA; # (짓; 짓; 짓; 짓; 짓; ) HANGUL SYLLABLE JIS
+C9D4;C9D4;110C 1175 11BB;C9D4;110C 1175 11BB; # (짔; 짔; 짔; 짔; 짔; ) HANGUL SYLLABLE JISS
+C9D5;C9D5;110C 1175 11BC;C9D5;110C 1175 11BC; # (징; 징; 징; 징; 징; ) HANGUL SYLLABLE JING
+C9D6;C9D6;110C 1175 11BD;C9D6;110C 1175 11BD; # (짖; 짖; 짖; 짖; 짖; ) HANGUL SYLLABLE JIJ
+C9D7;C9D7;110C 1175 11BE;C9D7;110C 1175 11BE; # (짗; 짗; 짗; 짗; 짗; ) HANGUL SYLLABLE JIC
+C9D8;C9D8;110C 1175 11BF;C9D8;110C 1175 11BF; # (짘; 짘; 짘; 짘; 짘; ) HANGUL SYLLABLE JIK
+C9D9;C9D9;110C 1175 11C0;C9D9;110C 1175 11C0; # (짙; 짙; 짙; 짙; 짙; ) HANGUL SYLLABLE JIT
+C9DA;C9DA;110C 1175 11C1;C9DA;110C 1175 11C1; # (짚; 짚; 짚; 짚; 짚; ) HANGUL SYLLABLE JIP
+C9DB;C9DB;110C 1175 11C2;C9DB;110C 1175 11C2; # (짛; 짛; 짛; 짛; 짛; ) HANGUL SYLLABLE JIH
+C9DC;C9DC;110D 1161;C9DC;110D 1161; # (짜; 짜; 짜; 짜; 짜; ) HANGUL SYLLABLE JJA
+C9DD;C9DD;110D 1161 11A8;C9DD;110D 1161 11A8; # (짝; 짝; 짝; 짝; 짝; ) HANGUL SYLLABLE JJAG
+C9DE;C9DE;110D 1161 11A9;C9DE;110D 1161 11A9; # (짞; 짞; 짞; 짞; 짞; ) HANGUL SYLLABLE JJAGG
+C9DF;C9DF;110D 1161 11AA;C9DF;110D 1161 11AA; # (짟; 짟; 짟; 짟; 짟; ) HANGUL SYLLABLE JJAGS
+C9E0;C9E0;110D 1161 11AB;C9E0;110D 1161 11AB; # (짠; 짠; 짠; 짠; 짠; ) HANGUL SYLLABLE JJAN
+C9E1;C9E1;110D 1161 11AC;C9E1;110D 1161 11AC; # (짡; 짡; 짡; 짡; 짡; ) HANGUL SYLLABLE JJANJ
+C9E2;C9E2;110D 1161 11AD;C9E2;110D 1161 11AD; # (짢; 짢; 짢; 짢; 짢; ) HANGUL SYLLABLE JJANH
+C9E3;C9E3;110D 1161 11AE;C9E3;110D 1161 11AE; # (짣; 짣; 짣; 짣; 짣; ) HANGUL SYLLABLE JJAD
+C9E4;C9E4;110D 1161 11AF;C9E4;110D 1161 11AF; # (짤; 짤; 짤; 짤; 짤; ) HANGUL SYLLABLE JJAL
+C9E5;C9E5;110D 1161 11B0;C9E5;110D 1161 11B0; # (짥; 짥; 짥; 짥; 짥; ) HANGUL SYLLABLE JJALG
+C9E6;C9E6;110D 1161 11B1;C9E6;110D 1161 11B1; # (짦; 짦; 짦; 짦; 짦; ) HANGUL SYLLABLE JJALM
+C9E7;C9E7;110D 1161 11B2;C9E7;110D 1161 11B2; # (짧; 짧; 짧; 짧; 짧; ) HANGUL SYLLABLE JJALB
+C9E8;C9E8;110D 1161 11B3;C9E8;110D 1161 11B3; # (짨; 짨; 짨; 짨; 짨; ) HANGUL SYLLABLE JJALS
+C9E9;C9E9;110D 1161 11B4;C9E9;110D 1161 11B4; # (짩; 짩; 짩; 짩; 짩; ) HANGUL SYLLABLE JJALT
+C9EA;C9EA;110D 1161 11B5;C9EA;110D 1161 11B5; # (짪; 짪; 짪; 짪; 짪; ) HANGUL SYLLABLE JJALP
+C9EB;C9EB;110D 1161 11B6;C9EB;110D 1161 11B6; # (짫; 짫; 짫; 짫; 짫; ) HANGUL SYLLABLE JJALH
+C9EC;C9EC;110D 1161 11B7;C9EC;110D 1161 11B7; # (짬; 짬; 짬; 짬; 짬; ) HANGUL SYLLABLE JJAM
+C9ED;C9ED;110D 1161 11B8;C9ED;110D 1161 11B8; # (짭; 짭; 짭; 짭; 짭; ) HANGUL SYLLABLE JJAB
+C9EE;C9EE;110D 1161 11B9;C9EE;110D 1161 11B9; # (짮; 짮; 짮; 짮; 짮; ) HANGUL SYLLABLE JJABS
+C9EF;C9EF;110D 1161 11BA;C9EF;110D 1161 11BA; # (짯; 짯; 짯; 짯; 짯; ) HANGUL SYLLABLE JJAS
+C9F0;C9F0;110D 1161 11BB;C9F0;110D 1161 11BB; # (짰; 짰; 짰; 짰; 짰; ) HANGUL SYLLABLE JJASS
+C9F1;C9F1;110D 1161 11BC;C9F1;110D 1161 11BC; # (짱; 짱; 짱; 짱; 짱; ) HANGUL SYLLABLE JJANG
+C9F2;C9F2;110D 1161 11BD;C9F2;110D 1161 11BD; # (짲; 짲; 짲; 짲; 짲; ) HANGUL SYLLABLE JJAJ
+C9F3;C9F3;110D 1161 11BE;C9F3;110D 1161 11BE; # (짳; 짳; 짳; 짳; 짳; ) HANGUL SYLLABLE JJAC
+C9F4;C9F4;110D 1161 11BF;C9F4;110D 1161 11BF; # (짴; 짴; 짴; 짴; 짴; ) HANGUL SYLLABLE JJAK
+C9F5;C9F5;110D 1161 11C0;C9F5;110D 1161 11C0; # (짵; 짵; 짵; 짵; 짵; ) HANGUL SYLLABLE JJAT
+C9F6;C9F6;110D 1161 11C1;C9F6;110D 1161 11C1; # (짶; 짶; 짶; 짶; 짶; ) HANGUL SYLLABLE JJAP
+C9F7;C9F7;110D 1161 11C2;C9F7;110D 1161 11C2; # (짷; 짷; 짷; 짷; 짷; ) HANGUL SYLLABLE JJAH
+C9F8;C9F8;110D 1162;C9F8;110D 1162; # (째; 째; 째; 째; 째; ) HANGUL SYLLABLE JJAE
+C9F9;C9F9;110D 1162 11A8;C9F9;110D 1162 11A8; # (짹; 짹; 짹; 짹; 짹; ) HANGUL SYLLABLE JJAEG
+C9FA;C9FA;110D 1162 11A9;C9FA;110D 1162 11A9; # (짺; 짺; 짺; 짺; 짺; ) HANGUL SYLLABLE JJAEGG
+C9FB;C9FB;110D 1162 11AA;C9FB;110D 1162 11AA; # (짻; 짻; 짻; 짻; 짻; ) HANGUL SYLLABLE JJAEGS
+C9FC;C9FC;110D 1162 11AB;C9FC;110D 1162 11AB; # (짼; 짼; 짼; 짼; 짼; ) HANGUL SYLLABLE JJAEN
+C9FD;C9FD;110D 1162 11AC;C9FD;110D 1162 11AC; # (짽; 짽; 짽; 짽; 짽; ) HANGUL SYLLABLE JJAENJ
+C9FE;C9FE;110D 1162 11AD;C9FE;110D 1162 11AD; # (짾; 짾; 짾; 짾; 짾; ) HANGUL SYLLABLE JJAENH
+C9FF;C9FF;110D 1162 11AE;C9FF;110D 1162 11AE; # (짿; 짿; 짿; 짿; 짿; ) HANGUL SYLLABLE JJAED
+CA00;CA00;110D 1162 11AF;CA00;110D 1162 11AF; # (쨀; 쨀; 쨀; 쨀; 쨀; ) HANGUL SYLLABLE JJAEL
+CA01;CA01;110D 1162 11B0;CA01;110D 1162 11B0; # (쨁; 쨁; 쨁; 쨁; 쨁; ) HANGUL SYLLABLE JJAELG
+CA02;CA02;110D 1162 11B1;CA02;110D 1162 11B1; # (쨂; 쨂; 쨂; 쨂; 쨂; ) HANGUL SYLLABLE JJAELM
+CA03;CA03;110D 1162 11B2;CA03;110D 1162 11B2; # (쨃; 쨃; 쨃; 쨃; 쨃; ) HANGUL SYLLABLE JJAELB
+CA04;CA04;110D 1162 11B3;CA04;110D 1162 11B3; # (쨄; 쨄; 쨄; 쨄; 쨄; ) HANGUL SYLLABLE JJAELS
+CA05;CA05;110D 1162 11B4;CA05;110D 1162 11B4; # (쨅; 쨅; 쨅; 쨅; 쨅; ) HANGUL SYLLABLE JJAELT
+CA06;CA06;110D 1162 11B5;CA06;110D 1162 11B5; # (쨆; 쨆; 쨆; 쨆; 쨆; ) HANGUL SYLLABLE JJAELP
+CA07;CA07;110D 1162 11B6;CA07;110D 1162 11B6; # (쨇; 쨇; 쨇; 쨇; 쨇; ) HANGUL SYLLABLE JJAELH
+CA08;CA08;110D 1162 11B7;CA08;110D 1162 11B7; # (쨈; 쨈; 쨈; 쨈; 쨈; ) HANGUL SYLLABLE JJAEM
+CA09;CA09;110D 1162 11B8;CA09;110D 1162 11B8; # (쨉; 쨉; 쨉; 쨉; 쨉; ) HANGUL SYLLABLE JJAEB
+CA0A;CA0A;110D 1162 11B9;CA0A;110D 1162 11B9; # (쨊; 쨊; 쨊; 쨊; 쨊; ) HANGUL SYLLABLE JJAEBS
+CA0B;CA0B;110D 1162 11BA;CA0B;110D 1162 11BA; # (쨋; 쨋; 쨋; 쨋; 쨋; ) HANGUL SYLLABLE JJAES
+CA0C;CA0C;110D 1162 11BB;CA0C;110D 1162 11BB; # (쨌; 쨌; 쨌; 쨌; 쨌; ) HANGUL SYLLABLE JJAESS
+CA0D;CA0D;110D 1162 11BC;CA0D;110D 1162 11BC; # (쨍; 쨍; 쨍; 쨍; 쨍; ) HANGUL SYLLABLE JJAENG
+CA0E;CA0E;110D 1162 11BD;CA0E;110D 1162 11BD; # (쨎; 쨎; 쨎; 쨎; 쨎; ) HANGUL SYLLABLE JJAEJ
+CA0F;CA0F;110D 1162 11BE;CA0F;110D 1162 11BE; # (쨏; 쨏; 쨏; 쨏; 쨏; ) HANGUL SYLLABLE JJAEC
+CA10;CA10;110D 1162 11BF;CA10;110D 1162 11BF; # (쨐; 쨐; 쨐; 쨐; 쨐; ) HANGUL SYLLABLE JJAEK
+CA11;CA11;110D 1162 11C0;CA11;110D 1162 11C0; # (쨑; 쨑; 쨑; 쨑; 쨑; ) HANGUL SYLLABLE JJAET
+CA12;CA12;110D 1162 11C1;CA12;110D 1162 11C1; # (쨒; 쨒; 쨒; 쨒; 쨒; ) HANGUL SYLLABLE JJAEP
+CA13;CA13;110D 1162 11C2;CA13;110D 1162 11C2; # (쨓; 쨓; 쨓; 쨓; 쨓; ) HANGUL SYLLABLE JJAEH
+CA14;CA14;110D 1163;CA14;110D 1163; # (쨔; 쨔; 쨔; 쨔; 쨔; ) HANGUL SYLLABLE JJYA
+CA15;CA15;110D 1163 11A8;CA15;110D 1163 11A8; # (쨕; 쨕; 쨕; 쨕; 쨕; ) HANGUL SYLLABLE JJYAG
+CA16;CA16;110D 1163 11A9;CA16;110D 1163 11A9; # (쨖; 쨖; 쨖; 쨖; 쨖; ) HANGUL SYLLABLE JJYAGG
+CA17;CA17;110D 1163 11AA;CA17;110D 1163 11AA; # (쨗; 쨗; 쨗; 쨗; 쨗; ) HANGUL SYLLABLE JJYAGS
+CA18;CA18;110D 1163 11AB;CA18;110D 1163 11AB; # (쨘; 쨘; 쨘; 쨘; 쨘; ) HANGUL SYLLABLE JJYAN
+CA19;CA19;110D 1163 11AC;CA19;110D 1163 11AC; # (쨙; 쨙; 쨙; 쨙; 쨙; ) HANGUL SYLLABLE JJYANJ
+CA1A;CA1A;110D 1163 11AD;CA1A;110D 1163 11AD; # (쨚; 쨚; 쨚; 쨚; 쨚; ) HANGUL SYLLABLE JJYANH
+CA1B;CA1B;110D 1163 11AE;CA1B;110D 1163 11AE; # (쨛; 쨛; 쨛; 쨛; 쨛; ) HANGUL SYLLABLE JJYAD
+CA1C;CA1C;110D 1163 11AF;CA1C;110D 1163 11AF; # (쨜; 쨜; 쨜; 쨜; 쨜; ) HANGUL SYLLABLE JJYAL
+CA1D;CA1D;110D 1163 11B0;CA1D;110D 1163 11B0; # (쨝; 쨝; 쨝; 쨝; 쨝; ) HANGUL SYLLABLE JJYALG
+CA1E;CA1E;110D 1163 11B1;CA1E;110D 1163 11B1; # (쨞; 쨞; 쨞; 쨞; 쨞; ) HANGUL SYLLABLE JJYALM
+CA1F;CA1F;110D 1163 11B2;CA1F;110D 1163 11B2; # (쨟; 쨟; 쨟; 쨟; 쨟; ) HANGUL SYLLABLE JJYALB
+CA20;CA20;110D 1163 11B3;CA20;110D 1163 11B3; # (쨠; 쨠; 쨠; 쨠; 쨠; ) HANGUL SYLLABLE JJYALS
+CA21;CA21;110D 1163 11B4;CA21;110D 1163 11B4; # (쨡; 쨡; 쨡; 쨡; 쨡; ) HANGUL SYLLABLE JJYALT
+CA22;CA22;110D 1163 11B5;CA22;110D 1163 11B5; # (쨢; 쨢; 쨢; 쨢; 쨢; ) HANGUL SYLLABLE JJYALP
+CA23;CA23;110D 1163 11B6;CA23;110D 1163 11B6; # (쨣; 쨣; 쨣; 쨣; 쨣; ) HANGUL SYLLABLE JJYALH
+CA24;CA24;110D 1163 11B7;CA24;110D 1163 11B7; # (쨤; 쨤; 쨤; 쨤; 쨤; ) HANGUL SYLLABLE JJYAM
+CA25;CA25;110D 1163 11B8;CA25;110D 1163 11B8; # (쨥; 쨥; 쨥; 쨥; 쨥; ) HANGUL SYLLABLE JJYAB
+CA26;CA26;110D 1163 11B9;CA26;110D 1163 11B9; # (쨦; 쨦; 쨦; 쨦; 쨦; ) HANGUL SYLLABLE JJYABS
+CA27;CA27;110D 1163 11BA;CA27;110D 1163 11BA; # (쨧; 쨧; 쨧; 쨧; 쨧; ) HANGUL SYLLABLE JJYAS
+CA28;CA28;110D 1163 11BB;CA28;110D 1163 11BB; # (쨨; 쨨; 쨨; 쨨; 쨨; ) HANGUL SYLLABLE JJYASS
+CA29;CA29;110D 1163 11BC;CA29;110D 1163 11BC; # (쨩; 쨩; 쨩; 쨩; 쨩; ) HANGUL SYLLABLE JJYANG
+CA2A;CA2A;110D 1163 11BD;CA2A;110D 1163 11BD; # (쨪; 쨪; 쨪; 쨪; 쨪; ) HANGUL SYLLABLE JJYAJ
+CA2B;CA2B;110D 1163 11BE;CA2B;110D 1163 11BE; # (쨫; 쨫; 쨫; 쨫; 쨫; ) HANGUL SYLLABLE JJYAC
+CA2C;CA2C;110D 1163 11BF;CA2C;110D 1163 11BF; # (쨬; 쨬; 쨬; 쨬; 쨬; ) HANGUL SYLLABLE JJYAK
+CA2D;CA2D;110D 1163 11C0;CA2D;110D 1163 11C0; # (쨭; 쨭; 쨭; 쨭; 쨭; ) HANGUL SYLLABLE JJYAT
+CA2E;CA2E;110D 1163 11C1;CA2E;110D 1163 11C1; # (쨮; 쨮; 쨮; 쨮; 쨮; ) HANGUL SYLLABLE JJYAP
+CA2F;CA2F;110D 1163 11C2;CA2F;110D 1163 11C2; # (쨯; 쨯; 쨯; 쨯; 쨯; ) HANGUL SYLLABLE JJYAH
+CA30;CA30;110D 1164;CA30;110D 1164; # (쨰; 쨰; 쨰; 쨰; 쨰; ) HANGUL SYLLABLE JJYAE
+CA31;CA31;110D 1164 11A8;CA31;110D 1164 11A8; # (쨱; 쨱; 쨱; 쨱; 쨱; ) HANGUL SYLLABLE JJYAEG
+CA32;CA32;110D 1164 11A9;CA32;110D 1164 11A9; # (쨲; 쨲; 쨲; 쨲; 쨲; ) HANGUL SYLLABLE JJYAEGG
+CA33;CA33;110D 1164 11AA;CA33;110D 1164 11AA; # (쨳; 쨳; 쨳; 쨳; 쨳; ) HANGUL SYLLABLE JJYAEGS
+CA34;CA34;110D 1164 11AB;CA34;110D 1164 11AB; # (쨴; 쨴; 쨴; 쨴; 쨴; ) HANGUL SYLLABLE JJYAEN
+CA35;CA35;110D 1164 11AC;CA35;110D 1164 11AC; # (쨵; 쨵; 쨵; 쨵; 쨵; ) HANGUL SYLLABLE JJYAENJ
+CA36;CA36;110D 1164 11AD;CA36;110D 1164 11AD; # (쨶; 쨶; 쨶; 쨶; 쨶; ) HANGUL SYLLABLE JJYAENH
+CA37;CA37;110D 1164 11AE;CA37;110D 1164 11AE; # (쨷; 쨷; 쨷; 쨷; 쨷; ) HANGUL SYLLABLE JJYAED
+CA38;CA38;110D 1164 11AF;CA38;110D 1164 11AF; # (쨸; 쨸; 쨸; 쨸; 쨸; ) HANGUL SYLLABLE JJYAEL
+CA39;CA39;110D 1164 11B0;CA39;110D 1164 11B0; # (쨹; 쨹; 쨹; 쨹; 쨹; ) HANGUL SYLLABLE JJYAELG
+CA3A;CA3A;110D 1164 11B1;CA3A;110D 1164 11B1; # (쨺; 쨺; 쨺; 쨺; 쨺; ) HANGUL SYLLABLE JJYAELM
+CA3B;CA3B;110D 1164 11B2;CA3B;110D 1164 11B2; # (쨻; 쨻; 쨻; 쨻; 쨻; ) HANGUL SYLLABLE JJYAELB
+CA3C;CA3C;110D 1164 11B3;CA3C;110D 1164 11B3; # (쨼; 쨼; 쨼; 쨼; 쨼; ) HANGUL SYLLABLE JJYAELS
+CA3D;CA3D;110D 1164 11B4;CA3D;110D 1164 11B4; # (쨽; 쨽; 쨽; 쨽; 쨽; ) HANGUL SYLLABLE JJYAELT
+CA3E;CA3E;110D 1164 11B5;CA3E;110D 1164 11B5; # (쨾; 쨾; 쨾; 쨾; 쨾; ) HANGUL SYLLABLE JJYAELP
+CA3F;CA3F;110D 1164 11B6;CA3F;110D 1164 11B6; # (쨿; 쨿; 쨿; 쨿; 쨿; ) HANGUL SYLLABLE JJYAELH
+CA40;CA40;110D 1164 11B7;CA40;110D 1164 11B7; # (쩀; 쩀; 쩀; 쩀; 쩀; ) HANGUL SYLLABLE JJYAEM
+CA41;CA41;110D 1164 11B8;CA41;110D 1164 11B8; # (쩁; 쩁; 쩁; 쩁; 쩁; ) HANGUL SYLLABLE JJYAEB
+CA42;CA42;110D 1164 11B9;CA42;110D 1164 11B9; # (쩂; 쩂; 쩂; 쩂; 쩂; ) HANGUL SYLLABLE JJYAEBS
+CA43;CA43;110D 1164 11BA;CA43;110D 1164 11BA; # (쩃; 쩃; 쩃; 쩃; 쩃; ) HANGUL SYLLABLE JJYAES
+CA44;CA44;110D 1164 11BB;CA44;110D 1164 11BB; # (쩄; 쩄; 쩄; 쩄; 쩄; ) HANGUL SYLLABLE JJYAESS
+CA45;CA45;110D 1164 11BC;CA45;110D 1164 11BC; # (쩅; 쩅; 쩅; 쩅; 쩅; ) HANGUL SYLLABLE JJYAENG
+CA46;CA46;110D 1164 11BD;CA46;110D 1164 11BD; # (쩆; 쩆; 쩆; 쩆; 쩆; ) HANGUL SYLLABLE JJYAEJ
+CA47;CA47;110D 1164 11BE;CA47;110D 1164 11BE; # (쩇; 쩇; 쩇; 쩇; 쩇; ) HANGUL SYLLABLE JJYAEC
+CA48;CA48;110D 1164 11BF;CA48;110D 1164 11BF; # (쩈; 쩈; 쩈; 쩈; 쩈; ) HANGUL SYLLABLE JJYAEK
+CA49;CA49;110D 1164 11C0;CA49;110D 1164 11C0; # (쩉; 쩉; 쩉; 쩉; 쩉; ) HANGUL SYLLABLE JJYAET
+CA4A;CA4A;110D 1164 11C1;CA4A;110D 1164 11C1; # (쩊; 쩊; 쩊; 쩊; 쩊; ) HANGUL SYLLABLE JJYAEP
+CA4B;CA4B;110D 1164 11C2;CA4B;110D 1164 11C2; # (쩋; 쩋; 쩋; 쩋; 쩋; ) HANGUL SYLLABLE JJYAEH
+CA4C;CA4C;110D 1165;CA4C;110D 1165; # (쩌; 쩌; 쩌; 쩌; 쩌; ) HANGUL SYLLABLE JJEO
+CA4D;CA4D;110D 1165 11A8;CA4D;110D 1165 11A8; # (쩍; 쩍; 쩍; 쩍; 쩍; ) HANGUL SYLLABLE JJEOG
+CA4E;CA4E;110D 1165 11A9;CA4E;110D 1165 11A9; # (쩎; 쩎; 쩎; 쩎; 쩎; ) HANGUL SYLLABLE JJEOGG
+CA4F;CA4F;110D 1165 11AA;CA4F;110D 1165 11AA; # (쩏; 쩏; 쩏; 쩏; 쩏; ) HANGUL SYLLABLE JJEOGS
+CA50;CA50;110D 1165 11AB;CA50;110D 1165 11AB; # (쩐; 쩐; 쩐; 쩐; 쩐; ) HANGUL SYLLABLE JJEON
+CA51;CA51;110D 1165 11AC;CA51;110D 1165 11AC; # (쩑; 쩑; 쩑; 쩑; 쩑; ) HANGUL SYLLABLE JJEONJ
+CA52;CA52;110D 1165 11AD;CA52;110D 1165 11AD; # (쩒; 쩒; 쩒; 쩒; 쩒; ) HANGUL SYLLABLE JJEONH
+CA53;CA53;110D 1165 11AE;CA53;110D 1165 11AE; # (쩓; 쩓; 쩓; 쩓; 쩓; ) HANGUL SYLLABLE JJEOD
+CA54;CA54;110D 1165 11AF;CA54;110D 1165 11AF; # (쩔; 쩔; 쩔; 쩔; 쩔; ) HANGUL SYLLABLE JJEOL
+CA55;CA55;110D 1165 11B0;CA55;110D 1165 11B0; # (쩕; 쩕; 쩕; 쩕; 쩕; ) HANGUL SYLLABLE JJEOLG
+CA56;CA56;110D 1165 11B1;CA56;110D 1165 11B1; # (쩖; 쩖; 쩖; 쩖; 쩖; ) HANGUL SYLLABLE JJEOLM
+CA57;CA57;110D 1165 11B2;CA57;110D 1165 11B2; # (쩗; 쩗; 쩗; 쩗; 쩗; ) HANGUL SYLLABLE JJEOLB
+CA58;CA58;110D 1165 11B3;CA58;110D 1165 11B3; # (쩘; 쩘; 쩘; 쩘; 쩘; ) HANGUL SYLLABLE JJEOLS
+CA59;CA59;110D 1165 11B4;CA59;110D 1165 11B4; # (쩙; 쩙; 쩙; 쩙; 쩙; ) HANGUL SYLLABLE JJEOLT
+CA5A;CA5A;110D 1165 11B5;CA5A;110D 1165 11B5; # (쩚; 쩚; 쩚; 쩚; 쩚; ) HANGUL SYLLABLE JJEOLP
+CA5B;CA5B;110D 1165 11B6;CA5B;110D 1165 11B6; # (쩛; 쩛; 쩛; 쩛; 쩛; ) HANGUL SYLLABLE JJEOLH
+CA5C;CA5C;110D 1165 11B7;CA5C;110D 1165 11B7; # (쩜; 쩜; 쩜; 쩜; 쩜; ) HANGUL SYLLABLE JJEOM
+CA5D;CA5D;110D 1165 11B8;CA5D;110D 1165 11B8; # (쩝; 쩝; 쩝; 쩝; 쩝; ) HANGUL SYLLABLE JJEOB
+CA5E;CA5E;110D 1165 11B9;CA5E;110D 1165 11B9; # (쩞; 쩞; 쩞; 쩞; 쩞; ) HANGUL SYLLABLE JJEOBS
+CA5F;CA5F;110D 1165 11BA;CA5F;110D 1165 11BA; # (쩟; 쩟; 쩟; 쩟; 쩟; ) HANGUL SYLLABLE JJEOS
+CA60;CA60;110D 1165 11BB;CA60;110D 1165 11BB; # (쩠; 쩠; 쩠; 쩠; 쩠; ) HANGUL SYLLABLE JJEOSS
+CA61;CA61;110D 1165 11BC;CA61;110D 1165 11BC; # (쩡; 쩡; 쩡; 쩡; 쩡; ) HANGUL SYLLABLE JJEONG
+CA62;CA62;110D 1165 11BD;CA62;110D 1165 11BD; # (쩢; 쩢; 쩢; 쩢; 쩢; ) HANGUL SYLLABLE JJEOJ
+CA63;CA63;110D 1165 11BE;CA63;110D 1165 11BE; # (쩣; 쩣; 쩣; 쩣; 쩣; ) HANGUL SYLLABLE JJEOC
+CA64;CA64;110D 1165 11BF;CA64;110D 1165 11BF; # (쩤; 쩤; 쩤; 쩤; 쩤; ) HANGUL SYLLABLE JJEOK
+CA65;CA65;110D 1165 11C0;CA65;110D 1165 11C0; # (쩥; 쩥; 쩥; 쩥; 쩥; ) HANGUL SYLLABLE JJEOT
+CA66;CA66;110D 1165 11C1;CA66;110D 1165 11C1; # (쩦; 쩦; 쩦; 쩦; 쩦; ) HANGUL SYLLABLE JJEOP
+CA67;CA67;110D 1165 11C2;CA67;110D 1165 11C2; # (쩧; 쩧; 쩧; 쩧; 쩧; ) HANGUL SYLLABLE JJEOH
+CA68;CA68;110D 1166;CA68;110D 1166; # (쩨; 쩨; 쩨; 쩨; 쩨; ) HANGUL SYLLABLE JJE
+CA69;CA69;110D 1166 11A8;CA69;110D 1166 11A8; # (쩩; 쩩; 쩩; 쩩; 쩩; ) HANGUL SYLLABLE JJEG
+CA6A;CA6A;110D 1166 11A9;CA6A;110D 1166 11A9; # (쩪; 쩪; 쩪; 쩪; 쩪; ) HANGUL SYLLABLE JJEGG
+CA6B;CA6B;110D 1166 11AA;CA6B;110D 1166 11AA; # (쩫; 쩫; 쩫; 쩫; 쩫; ) HANGUL SYLLABLE JJEGS
+CA6C;CA6C;110D 1166 11AB;CA6C;110D 1166 11AB; # (쩬; 쩬; 쩬; 쩬; 쩬; ) HANGUL SYLLABLE JJEN
+CA6D;CA6D;110D 1166 11AC;CA6D;110D 1166 11AC; # (쩭; 쩭; 쩭; 쩭; 쩭; ) HANGUL SYLLABLE JJENJ
+CA6E;CA6E;110D 1166 11AD;CA6E;110D 1166 11AD; # (쩮; 쩮; 쩮; 쩮; 쩮; ) HANGUL SYLLABLE JJENH
+CA6F;CA6F;110D 1166 11AE;CA6F;110D 1166 11AE; # (쩯; 쩯; 쩯; 쩯; 쩯; ) HANGUL SYLLABLE JJED
+CA70;CA70;110D 1166 11AF;CA70;110D 1166 11AF; # (쩰; 쩰; 쩰; 쩰; 쩰; ) HANGUL SYLLABLE JJEL
+CA71;CA71;110D 1166 11B0;CA71;110D 1166 11B0; # (쩱; 쩱; 쩱; 쩱; 쩱; ) HANGUL SYLLABLE JJELG
+CA72;CA72;110D 1166 11B1;CA72;110D 1166 11B1; # (쩲; 쩲; 쩲; 쩲; 쩲; ) HANGUL SYLLABLE JJELM
+CA73;CA73;110D 1166 11B2;CA73;110D 1166 11B2; # (쩳; 쩳; 쩳; 쩳; 쩳; ) HANGUL SYLLABLE JJELB
+CA74;CA74;110D 1166 11B3;CA74;110D 1166 11B3; # (쩴; 쩴; 쩴; 쩴; 쩴; ) HANGUL SYLLABLE JJELS
+CA75;CA75;110D 1166 11B4;CA75;110D 1166 11B4; # (쩵; 쩵; 쩵; 쩵; 쩵; ) HANGUL SYLLABLE JJELT
+CA76;CA76;110D 1166 11B5;CA76;110D 1166 11B5; # (쩶; 쩶; 쩶; 쩶; 쩶; ) HANGUL SYLLABLE JJELP
+CA77;CA77;110D 1166 11B6;CA77;110D 1166 11B6; # (쩷; 쩷; 쩷; 쩷; 쩷; ) HANGUL SYLLABLE JJELH
+CA78;CA78;110D 1166 11B7;CA78;110D 1166 11B7; # (쩸; 쩸; 쩸; 쩸; 쩸; ) HANGUL SYLLABLE JJEM
+CA79;CA79;110D 1166 11B8;CA79;110D 1166 11B8; # (쩹; 쩹; 쩹; 쩹; 쩹; ) HANGUL SYLLABLE JJEB
+CA7A;CA7A;110D 1166 11B9;CA7A;110D 1166 11B9; # (쩺; 쩺; 쩺; 쩺; 쩺; ) HANGUL SYLLABLE JJEBS
+CA7B;CA7B;110D 1166 11BA;CA7B;110D 1166 11BA; # (쩻; 쩻; 쩻; 쩻; 쩻; ) HANGUL SYLLABLE JJES
+CA7C;CA7C;110D 1166 11BB;CA7C;110D 1166 11BB; # (쩼; 쩼; 쩼; 쩼; 쩼; ) HANGUL SYLLABLE JJESS
+CA7D;CA7D;110D 1166 11BC;CA7D;110D 1166 11BC; # (쩽; 쩽; 쩽; 쩽; 쩽; ) HANGUL SYLLABLE JJENG
+CA7E;CA7E;110D 1166 11BD;CA7E;110D 1166 11BD; # (쩾; 쩾; 쩾; 쩾; 쩾; ) HANGUL SYLLABLE JJEJ
+CA7F;CA7F;110D 1166 11BE;CA7F;110D 1166 11BE; # (쩿; 쩿; 쩿; 쩿; 쩿; ) HANGUL SYLLABLE JJEC
+CA80;CA80;110D 1166 11BF;CA80;110D 1166 11BF; # (쪀; 쪀; 쪀; 쪀; 쪀; ) HANGUL SYLLABLE JJEK
+CA81;CA81;110D 1166 11C0;CA81;110D 1166 11C0; # (쪁; 쪁; 쪁; 쪁; 쪁; ) HANGUL SYLLABLE JJET
+CA82;CA82;110D 1166 11C1;CA82;110D 1166 11C1; # (쪂; 쪂; 쪂; 쪂; 쪂; ) HANGUL SYLLABLE JJEP
+CA83;CA83;110D 1166 11C2;CA83;110D 1166 11C2; # (쪃; 쪃; 쪃; 쪃; 쪃; ) HANGUL SYLLABLE JJEH
+CA84;CA84;110D 1167;CA84;110D 1167; # (쪄; 쪄; 쪄; 쪄; 쪄; ) HANGUL SYLLABLE JJYEO
+CA85;CA85;110D 1167 11A8;CA85;110D 1167 11A8; # (쪅; 쪅; 쪅; 쪅; 쪅; ) HANGUL SYLLABLE JJYEOG
+CA86;CA86;110D 1167 11A9;CA86;110D 1167 11A9; # (쪆; 쪆; 쪆; 쪆; 쪆; ) HANGUL SYLLABLE JJYEOGG
+CA87;CA87;110D 1167 11AA;CA87;110D 1167 11AA; # (쪇; 쪇; 쪇; 쪇; 쪇; ) HANGUL SYLLABLE JJYEOGS
+CA88;CA88;110D 1167 11AB;CA88;110D 1167 11AB; # (쪈; 쪈; 쪈; 쪈; 쪈; ) HANGUL SYLLABLE JJYEON
+CA89;CA89;110D 1167 11AC;CA89;110D 1167 11AC; # (쪉; 쪉; 쪉; 쪉; 쪉; ) HANGUL SYLLABLE JJYEONJ
+CA8A;CA8A;110D 1167 11AD;CA8A;110D 1167 11AD; # (쪊; 쪊; 쪊; 쪊; 쪊; ) HANGUL SYLLABLE JJYEONH
+CA8B;CA8B;110D 1167 11AE;CA8B;110D 1167 11AE; # (쪋; 쪋; 쪋; 쪋; 쪋; ) HANGUL SYLLABLE JJYEOD
+CA8C;CA8C;110D 1167 11AF;CA8C;110D 1167 11AF; # (쪌; 쪌; 쪌; 쪌; 쪌; ) HANGUL SYLLABLE JJYEOL
+CA8D;CA8D;110D 1167 11B0;CA8D;110D 1167 11B0; # (쪍; 쪍; 쪍; 쪍; 쪍; ) HANGUL SYLLABLE JJYEOLG
+CA8E;CA8E;110D 1167 11B1;CA8E;110D 1167 11B1; # (쪎; 쪎; 쪎; 쪎; 쪎; ) HANGUL SYLLABLE JJYEOLM
+CA8F;CA8F;110D 1167 11B2;CA8F;110D 1167 11B2; # (쪏; 쪏; 쪏; 쪏; 쪏; ) HANGUL SYLLABLE JJYEOLB
+CA90;CA90;110D 1167 11B3;CA90;110D 1167 11B3; # (쪐; 쪐; 쪐; 쪐; 쪐; ) HANGUL SYLLABLE JJYEOLS
+CA91;CA91;110D 1167 11B4;CA91;110D 1167 11B4; # (쪑; 쪑; 쪑; 쪑; 쪑; ) HANGUL SYLLABLE JJYEOLT
+CA92;CA92;110D 1167 11B5;CA92;110D 1167 11B5; # (쪒; 쪒; 쪒; 쪒; 쪒; ) HANGUL SYLLABLE JJYEOLP
+CA93;CA93;110D 1167 11B6;CA93;110D 1167 11B6; # (쪓; 쪓; 쪓; 쪓; 쪓; ) HANGUL SYLLABLE JJYEOLH
+CA94;CA94;110D 1167 11B7;CA94;110D 1167 11B7; # (쪔; 쪔; 쪔; 쪔; 쪔; ) HANGUL SYLLABLE JJYEOM
+CA95;CA95;110D 1167 11B8;CA95;110D 1167 11B8; # (쪕; 쪕; 쪕; 쪕; 쪕; ) HANGUL SYLLABLE JJYEOB
+CA96;CA96;110D 1167 11B9;CA96;110D 1167 11B9; # (쪖; 쪖; 쪖; 쪖; 쪖; ) HANGUL SYLLABLE JJYEOBS
+CA97;CA97;110D 1167 11BA;CA97;110D 1167 11BA; # (쪗; 쪗; 쪗; 쪗; 쪗; ) HANGUL SYLLABLE JJYEOS
+CA98;CA98;110D 1167 11BB;CA98;110D 1167 11BB; # (쪘; 쪘; 쪘; 쪘; 쪘; ) HANGUL SYLLABLE JJYEOSS
+CA99;CA99;110D 1167 11BC;CA99;110D 1167 11BC; # (쪙; 쪙; 쪙; 쪙; 쪙; ) HANGUL SYLLABLE JJYEONG
+CA9A;CA9A;110D 1167 11BD;CA9A;110D 1167 11BD; # (쪚; 쪚; 쪚; 쪚; 쪚; ) HANGUL SYLLABLE JJYEOJ
+CA9B;CA9B;110D 1167 11BE;CA9B;110D 1167 11BE; # (쪛; 쪛; 쪛; 쪛; 쪛; ) HANGUL SYLLABLE JJYEOC
+CA9C;CA9C;110D 1167 11BF;CA9C;110D 1167 11BF; # (쪜; 쪜; 쪜; 쪜; 쪜; ) HANGUL SYLLABLE JJYEOK
+CA9D;CA9D;110D 1167 11C0;CA9D;110D 1167 11C0; # (쪝; 쪝; 쪝; 쪝; 쪝; ) HANGUL SYLLABLE JJYEOT
+CA9E;CA9E;110D 1167 11C1;CA9E;110D 1167 11C1; # (쪞; 쪞; 쪞; 쪞; 쪞; ) HANGUL SYLLABLE JJYEOP
+CA9F;CA9F;110D 1167 11C2;CA9F;110D 1167 11C2; # (쪟; 쪟; 쪟; 쪟; 쪟; ) HANGUL SYLLABLE JJYEOH
+CAA0;CAA0;110D 1168;CAA0;110D 1168; # (쪠; 쪠; 쪠; 쪠; 쪠; ) HANGUL SYLLABLE JJYE
+CAA1;CAA1;110D 1168 11A8;CAA1;110D 1168 11A8; # (쪡; 쪡; 쪡; 쪡; 쪡; ) HANGUL SYLLABLE JJYEG
+CAA2;CAA2;110D 1168 11A9;CAA2;110D 1168 11A9; # (쪢; 쪢; 쪢; 쪢; 쪢; ) HANGUL SYLLABLE JJYEGG
+CAA3;CAA3;110D 1168 11AA;CAA3;110D 1168 11AA; # (쪣; 쪣; 쪣; 쪣; 쪣; ) HANGUL SYLLABLE JJYEGS
+CAA4;CAA4;110D 1168 11AB;CAA4;110D 1168 11AB; # (쪤; 쪤; 쪤; 쪤; 쪤; ) HANGUL SYLLABLE JJYEN
+CAA5;CAA5;110D 1168 11AC;CAA5;110D 1168 11AC; # (쪥; 쪥; 쪥; 쪥; 쪥; ) HANGUL SYLLABLE JJYENJ
+CAA6;CAA6;110D 1168 11AD;CAA6;110D 1168 11AD; # (쪦; 쪦; 쪦; 쪦; 쪦; ) HANGUL SYLLABLE JJYENH
+CAA7;CAA7;110D 1168 11AE;CAA7;110D 1168 11AE; # (쪧; 쪧; 쪧; 쪧; 쪧; ) HANGUL SYLLABLE JJYED
+CAA8;CAA8;110D 1168 11AF;CAA8;110D 1168 11AF; # (쪨; 쪨; 쪨; 쪨; 쪨; ) HANGUL SYLLABLE JJYEL
+CAA9;CAA9;110D 1168 11B0;CAA9;110D 1168 11B0; # (쪩; 쪩; 쪩; 쪩; 쪩; ) HANGUL SYLLABLE JJYELG
+CAAA;CAAA;110D 1168 11B1;CAAA;110D 1168 11B1; # (쪪; 쪪; 쪪; 쪪; 쪪; ) HANGUL SYLLABLE JJYELM
+CAAB;CAAB;110D 1168 11B2;CAAB;110D 1168 11B2; # (쪫; 쪫; 쪫; 쪫; 쪫; ) HANGUL SYLLABLE JJYELB
+CAAC;CAAC;110D 1168 11B3;CAAC;110D 1168 11B3; # (쪬; 쪬; 쪬; 쪬; 쪬; ) HANGUL SYLLABLE JJYELS
+CAAD;CAAD;110D 1168 11B4;CAAD;110D 1168 11B4; # (쪭; 쪭; 쪭; 쪭; 쪭; ) HANGUL SYLLABLE JJYELT
+CAAE;CAAE;110D 1168 11B5;CAAE;110D 1168 11B5; # (쪮; 쪮; 쪮; 쪮; 쪮; ) HANGUL SYLLABLE JJYELP
+CAAF;CAAF;110D 1168 11B6;CAAF;110D 1168 11B6; # (쪯; 쪯; 쪯; 쪯; 쪯; ) HANGUL SYLLABLE JJYELH
+CAB0;CAB0;110D 1168 11B7;CAB0;110D 1168 11B7; # (쪰; 쪰; 쪰; 쪰; 쪰; ) HANGUL SYLLABLE JJYEM
+CAB1;CAB1;110D 1168 11B8;CAB1;110D 1168 11B8; # (쪱; 쪱; 쪱; 쪱; 쪱; ) HANGUL SYLLABLE JJYEB
+CAB2;CAB2;110D 1168 11B9;CAB2;110D 1168 11B9; # (쪲; 쪲; 쪲; 쪲; 쪲; ) HANGUL SYLLABLE JJYEBS
+CAB3;CAB3;110D 1168 11BA;CAB3;110D 1168 11BA; # (쪳; 쪳; 쪳; 쪳; 쪳; ) HANGUL SYLLABLE JJYES
+CAB4;CAB4;110D 1168 11BB;CAB4;110D 1168 11BB; # (쪴; 쪴; 쪴; 쪴; 쪴; ) HANGUL SYLLABLE JJYESS
+CAB5;CAB5;110D 1168 11BC;CAB5;110D 1168 11BC; # (쪵; 쪵; 쪵; 쪵; 쪵; ) HANGUL SYLLABLE JJYENG
+CAB6;CAB6;110D 1168 11BD;CAB6;110D 1168 11BD; # (쪶; 쪶; 쪶; 쪶; 쪶; ) HANGUL SYLLABLE JJYEJ
+CAB7;CAB7;110D 1168 11BE;CAB7;110D 1168 11BE; # (쪷; 쪷; 쪷; 쪷; 쪷; ) HANGUL SYLLABLE JJYEC
+CAB8;CAB8;110D 1168 11BF;CAB8;110D 1168 11BF; # (쪸; 쪸; 쪸; 쪸; 쪸; ) HANGUL SYLLABLE JJYEK
+CAB9;CAB9;110D 1168 11C0;CAB9;110D 1168 11C0; # (쪹; 쪹; 쪹; 쪹; 쪹; ) HANGUL SYLLABLE JJYET
+CABA;CABA;110D 1168 11C1;CABA;110D 1168 11C1; # (쪺; 쪺; 쪺; 쪺; 쪺; ) HANGUL SYLLABLE JJYEP
+CABB;CABB;110D 1168 11C2;CABB;110D 1168 11C2; # (쪻; 쪻; 쪻; 쪻; 쪻; ) HANGUL SYLLABLE JJYEH
+CABC;CABC;110D 1169;CABC;110D 1169; # (쪼; 쪼; 쪼; 쪼; 쪼; ) HANGUL SYLLABLE JJO
+CABD;CABD;110D 1169 11A8;CABD;110D 1169 11A8; # (쪽; 쪽; 쪽; 쪽; 쪽; ) HANGUL SYLLABLE JJOG
+CABE;CABE;110D 1169 11A9;CABE;110D 1169 11A9; # (쪾; 쪾; 쪾; 쪾; 쪾; ) HANGUL SYLLABLE JJOGG
+CABF;CABF;110D 1169 11AA;CABF;110D 1169 11AA; # (쪿; 쪿; 쪿; 쪿; 쪿; ) HANGUL SYLLABLE JJOGS
+CAC0;CAC0;110D 1169 11AB;CAC0;110D 1169 11AB; # (쫀; 쫀; 쫀; 쫀; 쫀; ) HANGUL SYLLABLE JJON
+CAC1;CAC1;110D 1169 11AC;CAC1;110D 1169 11AC; # (쫁; 쫁; 쫁; 쫁; 쫁; ) HANGUL SYLLABLE JJONJ
+CAC2;CAC2;110D 1169 11AD;CAC2;110D 1169 11AD; # (쫂; 쫂; 쫂; 쫂; 쫂; ) HANGUL SYLLABLE JJONH
+CAC3;CAC3;110D 1169 11AE;CAC3;110D 1169 11AE; # (쫃; 쫃; 쫃; 쫃; 쫃; ) HANGUL SYLLABLE JJOD
+CAC4;CAC4;110D 1169 11AF;CAC4;110D 1169 11AF; # (쫄; 쫄; 쫄; 쫄; 쫄; ) HANGUL SYLLABLE JJOL
+CAC5;CAC5;110D 1169 11B0;CAC5;110D 1169 11B0; # (쫅; 쫅; 쫅; 쫅; 쫅; ) HANGUL SYLLABLE JJOLG
+CAC6;CAC6;110D 1169 11B1;CAC6;110D 1169 11B1; # (쫆; 쫆; 쫆; 쫆; 쫆; ) HANGUL SYLLABLE JJOLM
+CAC7;CAC7;110D 1169 11B2;CAC7;110D 1169 11B2; # (쫇; 쫇; 쫇; 쫇; 쫇; ) HANGUL SYLLABLE JJOLB
+CAC8;CAC8;110D 1169 11B3;CAC8;110D 1169 11B3; # (쫈; 쫈; 쫈; 쫈; 쫈; ) HANGUL SYLLABLE JJOLS
+CAC9;CAC9;110D 1169 11B4;CAC9;110D 1169 11B4; # (쫉; 쫉; 쫉; 쫉; 쫉; ) HANGUL SYLLABLE JJOLT
+CACA;CACA;110D 1169 11B5;CACA;110D 1169 11B5; # (쫊; 쫊; 쫊; 쫊; 쫊; ) HANGUL SYLLABLE JJOLP
+CACB;CACB;110D 1169 11B6;CACB;110D 1169 11B6; # (쫋; 쫋; 쫋; 쫋; 쫋; ) HANGUL SYLLABLE JJOLH
+CACC;CACC;110D 1169 11B7;CACC;110D 1169 11B7; # (쫌; 쫌; 쫌; 쫌; 쫌; ) HANGUL SYLLABLE JJOM
+CACD;CACD;110D 1169 11B8;CACD;110D 1169 11B8; # (쫍; 쫍; 쫍; 쫍; 쫍; ) HANGUL SYLLABLE JJOB
+CACE;CACE;110D 1169 11B9;CACE;110D 1169 11B9; # (쫎; 쫎; 쫎; 쫎; 쫎; ) HANGUL SYLLABLE JJOBS
+CACF;CACF;110D 1169 11BA;CACF;110D 1169 11BA; # (쫏; 쫏; 쫏; 쫏; 쫏; ) HANGUL SYLLABLE JJOS
+CAD0;CAD0;110D 1169 11BB;CAD0;110D 1169 11BB; # (쫐; 쫐; 쫐; 쫐; 쫐; ) HANGUL SYLLABLE JJOSS
+CAD1;CAD1;110D 1169 11BC;CAD1;110D 1169 11BC; # (쫑; 쫑; 쫑; 쫑; 쫑; ) HANGUL SYLLABLE JJONG
+CAD2;CAD2;110D 1169 11BD;CAD2;110D 1169 11BD; # (쫒; 쫒; 쫒; 쫒; 쫒; ) HANGUL SYLLABLE JJOJ
+CAD3;CAD3;110D 1169 11BE;CAD3;110D 1169 11BE; # (쫓; 쫓; 쫓; 쫓; 쫓; ) HANGUL SYLLABLE JJOC
+CAD4;CAD4;110D 1169 11BF;CAD4;110D 1169 11BF; # (쫔; 쫔; 쫔; 쫔; 쫔; ) HANGUL SYLLABLE JJOK
+CAD5;CAD5;110D 1169 11C0;CAD5;110D 1169 11C0; # (쫕; 쫕; 쫕; 쫕; 쫕; ) HANGUL SYLLABLE JJOT
+CAD6;CAD6;110D 1169 11C1;CAD6;110D 1169 11C1; # (쫖; 쫖; 쫖; 쫖; 쫖; ) HANGUL SYLLABLE JJOP
+CAD7;CAD7;110D 1169 11C2;CAD7;110D 1169 11C2; # (쫗; 쫗; 쫗; 쫗; 쫗; ) HANGUL SYLLABLE JJOH
+CAD8;CAD8;110D 116A;CAD8;110D 116A; # (쫘; 쫘; 쫘; 쫘; 쫘; ) HANGUL SYLLABLE JJWA
+CAD9;CAD9;110D 116A 11A8;CAD9;110D 116A 11A8; # (쫙; 쫙; 쫙; 쫙; 쫙; ) HANGUL SYLLABLE JJWAG
+CADA;CADA;110D 116A 11A9;CADA;110D 116A 11A9; # (쫚; 쫚; 쫚; 쫚; 쫚; ) HANGUL SYLLABLE JJWAGG
+CADB;CADB;110D 116A 11AA;CADB;110D 116A 11AA; # (쫛; 쫛; 쫛; 쫛; 쫛; ) HANGUL SYLLABLE JJWAGS
+CADC;CADC;110D 116A 11AB;CADC;110D 116A 11AB; # (쫜; 쫜; 쫜; 쫜; 쫜; ) HANGUL SYLLABLE JJWAN
+CADD;CADD;110D 116A 11AC;CADD;110D 116A 11AC; # (쫝; 쫝; 쫝; 쫝; 쫝; ) HANGUL SYLLABLE JJWANJ
+CADE;CADE;110D 116A 11AD;CADE;110D 116A 11AD; # (쫞; 쫞; 쫞; 쫞; 쫞; ) HANGUL SYLLABLE JJWANH
+CADF;CADF;110D 116A 11AE;CADF;110D 116A 11AE; # (쫟; 쫟; 쫟; 쫟; 쫟; ) HANGUL SYLLABLE JJWAD
+CAE0;CAE0;110D 116A 11AF;CAE0;110D 116A 11AF; # (쫠; 쫠; 쫠; 쫠; 쫠; ) HANGUL SYLLABLE JJWAL
+CAE1;CAE1;110D 116A 11B0;CAE1;110D 116A 11B0; # (쫡; 쫡; 쫡; 쫡; 쫡; ) HANGUL SYLLABLE JJWALG
+CAE2;CAE2;110D 116A 11B1;CAE2;110D 116A 11B1; # (쫢; 쫢; 쫢; 쫢; 쫢; ) HANGUL SYLLABLE JJWALM
+CAE3;CAE3;110D 116A 11B2;CAE3;110D 116A 11B2; # (쫣; 쫣; 쫣; 쫣; 쫣; ) HANGUL SYLLABLE JJWALB
+CAE4;CAE4;110D 116A 11B3;CAE4;110D 116A 11B3; # (쫤; 쫤; 쫤; 쫤; 쫤; ) HANGUL SYLLABLE JJWALS
+CAE5;CAE5;110D 116A 11B4;CAE5;110D 116A 11B4; # (쫥; 쫥; 쫥; 쫥; 쫥; ) HANGUL SYLLABLE JJWALT
+CAE6;CAE6;110D 116A 11B5;CAE6;110D 116A 11B5; # (쫦; 쫦; 쫦; 쫦; 쫦; ) HANGUL SYLLABLE JJWALP
+CAE7;CAE7;110D 116A 11B6;CAE7;110D 116A 11B6; # (쫧; 쫧; 쫧; 쫧; 쫧; ) HANGUL SYLLABLE JJWALH
+CAE8;CAE8;110D 116A 11B7;CAE8;110D 116A 11B7; # (쫨; 쫨; 쫨; 쫨; 쫨; ) HANGUL SYLLABLE JJWAM
+CAE9;CAE9;110D 116A 11B8;CAE9;110D 116A 11B8; # (쫩; 쫩; 쫩; 쫩; 쫩; ) HANGUL SYLLABLE JJWAB
+CAEA;CAEA;110D 116A 11B9;CAEA;110D 116A 11B9; # (쫪; 쫪; 쫪; 쫪; 쫪; ) HANGUL SYLLABLE JJWABS
+CAEB;CAEB;110D 116A 11BA;CAEB;110D 116A 11BA; # (쫫; 쫫; 쫫; 쫫; 쫫; ) HANGUL SYLLABLE JJWAS
+CAEC;CAEC;110D 116A 11BB;CAEC;110D 116A 11BB; # (쫬; 쫬; 쫬; 쫬; 쫬; ) HANGUL SYLLABLE JJWASS
+CAED;CAED;110D 116A 11BC;CAED;110D 116A 11BC; # (쫭; 쫭; 쫭; 쫭; 쫭; ) HANGUL SYLLABLE JJWANG
+CAEE;CAEE;110D 116A 11BD;CAEE;110D 116A 11BD; # (쫮; 쫮; 쫮; 쫮; 쫮; ) HANGUL SYLLABLE JJWAJ
+CAEF;CAEF;110D 116A 11BE;CAEF;110D 116A 11BE; # (쫯; 쫯; 쫯; 쫯; 쫯; ) HANGUL SYLLABLE JJWAC
+CAF0;CAF0;110D 116A 11BF;CAF0;110D 116A 11BF; # (쫰; 쫰; 쫰; 쫰; 쫰; ) HANGUL SYLLABLE JJWAK
+CAF1;CAF1;110D 116A 11C0;CAF1;110D 116A 11C0; # (쫱; 쫱; 쫱; 쫱; 쫱; ) HANGUL SYLLABLE JJWAT
+CAF2;CAF2;110D 116A 11C1;CAF2;110D 116A 11C1; # (쫲; 쫲; 쫲; 쫲; 쫲; ) HANGUL SYLLABLE JJWAP
+CAF3;CAF3;110D 116A 11C2;CAF3;110D 116A 11C2; # (쫳; 쫳; 쫳; 쫳; 쫳; ) HANGUL SYLLABLE JJWAH
+CAF4;CAF4;110D 116B;CAF4;110D 116B; # (쫴; 쫴; 쫴; 쫴; 쫴; ) HANGUL SYLLABLE JJWAE
+CAF5;CAF5;110D 116B 11A8;CAF5;110D 116B 11A8; # (쫵; 쫵; 쫵; 쫵; 쫵; ) HANGUL SYLLABLE JJWAEG
+CAF6;CAF6;110D 116B 11A9;CAF6;110D 116B 11A9; # (쫶; 쫶; 쫶; 쫶; 쫶; ) HANGUL SYLLABLE JJWAEGG
+CAF7;CAF7;110D 116B 11AA;CAF7;110D 116B 11AA; # (쫷; 쫷; 쫷; 쫷; 쫷; ) HANGUL SYLLABLE JJWAEGS
+CAF8;CAF8;110D 116B 11AB;CAF8;110D 116B 11AB; # (쫸; 쫸; 쫸; 쫸; 쫸; ) HANGUL SYLLABLE JJWAEN
+CAF9;CAF9;110D 116B 11AC;CAF9;110D 116B 11AC; # (쫹; 쫹; 쫹; 쫹; 쫹; ) HANGUL SYLLABLE JJWAENJ
+CAFA;CAFA;110D 116B 11AD;CAFA;110D 116B 11AD; # (쫺; 쫺; 쫺; 쫺; 쫺; ) HANGUL SYLLABLE JJWAENH
+CAFB;CAFB;110D 116B 11AE;CAFB;110D 116B 11AE; # (쫻; 쫻; 쫻; 쫻; 쫻; ) HANGUL SYLLABLE JJWAED
+CAFC;CAFC;110D 116B 11AF;CAFC;110D 116B 11AF; # (쫼; 쫼; 쫼; 쫼; 쫼; ) HANGUL SYLLABLE JJWAEL
+CAFD;CAFD;110D 116B 11B0;CAFD;110D 116B 11B0; # (쫽; 쫽; 쫽; 쫽; 쫽; ) HANGUL SYLLABLE JJWAELG
+CAFE;CAFE;110D 116B 11B1;CAFE;110D 116B 11B1; # (쫾; 쫾; 쫾; 쫾; 쫾; ) HANGUL SYLLABLE JJWAELM
+CAFF;CAFF;110D 116B 11B2;CAFF;110D 116B 11B2; # (쫿; 쫿; 쫿; 쫿; 쫿; ) HANGUL SYLLABLE JJWAELB
+CB00;CB00;110D 116B 11B3;CB00;110D 116B 11B3; # (쬀; 쬀; 쬀; 쬀; 쬀; ) HANGUL SYLLABLE JJWAELS
+CB01;CB01;110D 116B 11B4;CB01;110D 116B 11B4; # (쬁; 쬁; 쬁; 쬁; 쬁; ) HANGUL SYLLABLE JJWAELT
+CB02;CB02;110D 116B 11B5;CB02;110D 116B 11B5; # (쬂; 쬂; 쬂; 쬂; 쬂; ) HANGUL SYLLABLE JJWAELP
+CB03;CB03;110D 116B 11B6;CB03;110D 116B 11B6; # (쬃; 쬃; 쬃; 쬃; 쬃; ) HANGUL SYLLABLE JJWAELH
+CB04;CB04;110D 116B 11B7;CB04;110D 116B 11B7; # (쬄; 쬄; 쬄; 쬄; 쬄; ) HANGUL SYLLABLE JJWAEM
+CB05;CB05;110D 116B 11B8;CB05;110D 116B 11B8; # (쬅; 쬅; 쬅; 쬅; 쬅; ) HANGUL SYLLABLE JJWAEB
+CB06;CB06;110D 116B 11B9;CB06;110D 116B 11B9; # (쬆; 쬆; 쬆; 쬆; 쬆; ) HANGUL SYLLABLE JJWAEBS
+CB07;CB07;110D 116B 11BA;CB07;110D 116B 11BA; # (쬇; 쬇; 쬇; 쬇; 쬇; ) HANGUL SYLLABLE JJWAES
+CB08;CB08;110D 116B 11BB;CB08;110D 116B 11BB; # (쬈; 쬈; 쬈; 쬈; 쬈; ) HANGUL SYLLABLE JJWAESS
+CB09;CB09;110D 116B 11BC;CB09;110D 116B 11BC; # (쬉; 쬉; 쬉; 쬉; 쬉; ) HANGUL SYLLABLE JJWAENG
+CB0A;CB0A;110D 116B 11BD;CB0A;110D 116B 11BD; # (쬊; 쬊; 쬊; 쬊; 쬊; ) HANGUL SYLLABLE JJWAEJ
+CB0B;CB0B;110D 116B 11BE;CB0B;110D 116B 11BE; # (쬋; 쬋; 쬋; 쬋; 쬋; ) HANGUL SYLLABLE JJWAEC
+CB0C;CB0C;110D 116B 11BF;CB0C;110D 116B 11BF; # (쬌; 쬌; 쬌; 쬌; 쬌; ) HANGUL SYLLABLE JJWAEK
+CB0D;CB0D;110D 116B 11C0;CB0D;110D 116B 11C0; # (쬍; 쬍; 쬍; 쬍; 쬍; ) HANGUL SYLLABLE JJWAET
+CB0E;CB0E;110D 116B 11C1;CB0E;110D 116B 11C1; # (쬎; 쬎; 쬎; 쬎; 쬎; ) HANGUL SYLLABLE JJWAEP
+CB0F;CB0F;110D 116B 11C2;CB0F;110D 116B 11C2; # (쬏; 쬏; 쬏; 쬏; 쬏; ) HANGUL SYLLABLE JJWAEH
+CB10;CB10;110D 116C;CB10;110D 116C; # (쬐; 쬐; 쬐; 쬐; 쬐; ) HANGUL SYLLABLE JJOE
+CB11;CB11;110D 116C 11A8;CB11;110D 116C 11A8; # (쬑; 쬑; 쬑; 쬑; 쬑; ) HANGUL SYLLABLE JJOEG
+CB12;CB12;110D 116C 11A9;CB12;110D 116C 11A9; # (쬒; 쬒; 쬒; 쬒; 쬒; ) HANGUL SYLLABLE JJOEGG
+CB13;CB13;110D 116C 11AA;CB13;110D 116C 11AA; # (쬓; 쬓; 쬓; 쬓; 쬓; ) HANGUL SYLLABLE JJOEGS
+CB14;CB14;110D 116C 11AB;CB14;110D 116C 11AB; # (쬔; 쬔; 쬔; 쬔; 쬔; ) HANGUL SYLLABLE JJOEN
+CB15;CB15;110D 116C 11AC;CB15;110D 116C 11AC; # (쬕; 쬕; 쬕; 쬕; 쬕; ) HANGUL SYLLABLE JJOENJ
+CB16;CB16;110D 116C 11AD;CB16;110D 116C 11AD; # (쬖; 쬖; 쬖; 쬖; 쬖; ) HANGUL SYLLABLE JJOENH
+CB17;CB17;110D 116C 11AE;CB17;110D 116C 11AE; # (쬗; 쬗; 쬗; 쬗; 쬗; ) HANGUL SYLLABLE JJOED
+CB18;CB18;110D 116C 11AF;CB18;110D 116C 11AF; # (쬘; 쬘; 쬘; 쬘; 쬘; ) HANGUL SYLLABLE JJOEL
+CB19;CB19;110D 116C 11B0;CB19;110D 116C 11B0; # (쬙; 쬙; 쬙; 쬙; 쬙; ) HANGUL SYLLABLE JJOELG
+CB1A;CB1A;110D 116C 11B1;CB1A;110D 116C 11B1; # (쬚; 쬚; 쬚; 쬚; 쬚; ) HANGUL SYLLABLE JJOELM
+CB1B;CB1B;110D 116C 11B2;CB1B;110D 116C 11B2; # (쬛; 쬛; 쬛; 쬛; 쬛; ) HANGUL SYLLABLE JJOELB
+CB1C;CB1C;110D 116C 11B3;CB1C;110D 116C 11B3; # (쬜; 쬜; 쬜; 쬜; 쬜; ) HANGUL SYLLABLE JJOELS
+CB1D;CB1D;110D 116C 11B4;CB1D;110D 116C 11B4; # (쬝; 쬝; 쬝; 쬝; 쬝; ) HANGUL SYLLABLE JJOELT
+CB1E;CB1E;110D 116C 11B5;CB1E;110D 116C 11B5; # (쬞; 쬞; 쬞; 쬞; 쬞; ) HANGUL SYLLABLE JJOELP
+CB1F;CB1F;110D 116C 11B6;CB1F;110D 116C 11B6; # (쬟; 쬟; 쬟; 쬟; 쬟; ) HANGUL SYLLABLE JJOELH
+CB20;CB20;110D 116C 11B7;CB20;110D 116C 11B7; # (쬠; 쬠; 쬠; 쬠; 쬠; ) HANGUL SYLLABLE JJOEM
+CB21;CB21;110D 116C 11B8;CB21;110D 116C 11B8; # (쬡; 쬡; 쬡; 쬡; 쬡; ) HANGUL SYLLABLE JJOEB
+CB22;CB22;110D 116C 11B9;CB22;110D 116C 11B9; # (쬢; 쬢; 쬢; 쬢; 쬢; ) HANGUL SYLLABLE JJOEBS
+CB23;CB23;110D 116C 11BA;CB23;110D 116C 11BA; # (쬣; 쬣; 쬣; 쬣; 쬣; ) HANGUL SYLLABLE JJOES
+CB24;CB24;110D 116C 11BB;CB24;110D 116C 11BB; # (쬤; 쬤; 쬤; 쬤; 쬤; ) HANGUL SYLLABLE JJOESS
+CB25;CB25;110D 116C 11BC;CB25;110D 116C 11BC; # (쬥; 쬥; 쬥; 쬥; 쬥; ) HANGUL SYLLABLE JJOENG
+CB26;CB26;110D 116C 11BD;CB26;110D 116C 11BD; # (쬦; 쬦; 쬦; 쬦; 쬦; ) HANGUL SYLLABLE JJOEJ
+CB27;CB27;110D 116C 11BE;CB27;110D 116C 11BE; # (쬧; 쬧; 쬧; 쬧; 쬧; ) HANGUL SYLLABLE JJOEC
+CB28;CB28;110D 116C 11BF;CB28;110D 116C 11BF; # (쬨; 쬨; 쬨; 쬨; 쬨; ) HANGUL SYLLABLE JJOEK
+CB29;CB29;110D 116C 11C0;CB29;110D 116C 11C0; # (쬩; 쬩; 쬩; 쬩; 쬩; ) HANGUL SYLLABLE JJOET
+CB2A;CB2A;110D 116C 11C1;CB2A;110D 116C 11C1; # (쬪; 쬪; 쬪; 쬪; 쬪; ) HANGUL SYLLABLE JJOEP
+CB2B;CB2B;110D 116C 11C2;CB2B;110D 116C 11C2; # (쬫; 쬫; 쬫; 쬫; 쬫; ) HANGUL SYLLABLE JJOEH
+CB2C;CB2C;110D 116D;CB2C;110D 116D; # (쬬; 쬬; 쬬; 쬬; 쬬; ) HANGUL SYLLABLE JJYO
+CB2D;CB2D;110D 116D 11A8;CB2D;110D 116D 11A8; # (쬭; 쬭; 쬭; 쬭; 쬭; ) HANGUL SYLLABLE JJYOG
+CB2E;CB2E;110D 116D 11A9;CB2E;110D 116D 11A9; # (쬮; 쬮; 쬮; 쬮; 쬮; ) HANGUL SYLLABLE JJYOGG
+CB2F;CB2F;110D 116D 11AA;CB2F;110D 116D 11AA; # (쬯; 쬯; 쬯; 쬯; 쬯; ) HANGUL SYLLABLE JJYOGS
+CB30;CB30;110D 116D 11AB;CB30;110D 116D 11AB; # (쬰; 쬰; 쬰; 쬰; 쬰; ) HANGUL SYLLABLE JJYON
+CB31;CB31;110D 116D 11AC;CB31;110D 116D 11AC; # (쬱; 쬱; 쬱; 쬱; 쬱; ) HANGUL SYLLABLE JJYONJ
+CB32;CB32;110D 116D 11AD;CB32;110D 116D 11AD; # (쬲; 쬲; 쬲; 쬲; 쬲; ) HANGUL SYLLABLE JJYONH
+CB33;CB33;110D 116D 11AE;CB33;110D 116D 11AE; # (쬳; 쬳; 쬳; 쬳; 쬳; ) HANGUL SYLLABLE JJYOD
+CB34;CB34;110D 116D 11AF;CB34;110D 116D 11AF; # (쬴; 쬴; 쬴; 쬴; 쬴; ) HANGUL SYLLABLE JJYOL
+CB35;CB35;110D 116D 11B0;CB35;110D 116D 11B0; # (쬵; 쬵; 쬵; 쬵; 쬵; ) HANGUL SYLLABLE JJYOLG
+CB36;CB36;110D 116D 11B1;CB36;110D 116D 11B1; # (쬶; 쬶; 쬶; 쬶; 쬶; ) HANGUL SYLLABLE JJYOLM
+CB37;CB37;110D 116D 11B2;CB37;110D 116D 11B2; # (쬷; 쬷; 쬷; 쬷; 쬷; ) HANGUL SYLLABLE JJYOLB
+CB38;CB38;110D 116D 11B3;CB38;110D 116D 11B3; # (쬸; 쬸; 쬸; 쬸; 쬸; ) HANGUL SYLLABLE JJYOLS
+CB39;CB39;110D 116D 11B4;CB39;110D 116D 11B4; # (쬹; 쬹; 쬹; 쬹; 쬹; ) HANGUL SYLLABLE JJYOLT
+CB3A;CB3A;110D 116D 11B5;CB3A;110D 116D 11B5; # (쬺; 쬺; 쬺; 쬺; 쬺; ) HANGUL SYLLABLE JJYOLP
+CB3B;CB3B;110D 116D 11B6;CB3B;110D 116D 11B6; # (쬻; 쬻; 쬻; 쬻; 쬻; ) HANGUL SYLLABLE JJYOLH
+CB3C;CB3C;110D 116D 11B7;CB3C;110D 116D 11B7; # (쬼; 쬼; 쬼; 쬼; 쬼; ) HANGUL SYLLABLE JJYOM
+CB3D;CB3D;110D 116D 11B8;CB3D;110D 116D 11B8; # (쬽; 쬽; 쬽; 쬽; 쬽; ) HANGUL SYLLABLE JJYOB
+CB3E;CB3E;110D 116D 11B9;CB3E;110D 116D 11B9; # (쬾; 쬾; 쬾; 쬾; 쬾; ) HANGUL SYLLABLE JJYOBS
+CB3F;CB3F;110D 116D 11BA;CB3F;110D 116D 11BA; # (쬿; 쬿; 쬿; 쬿; 쬿; ) HANGUL SYLLABLE JJYOS
+CB40;CB40;110D 116D 11BB;CB40;110D 116D 11BB; # (쭀; 쭀; 쭀; 쭀; 쭀; ) HANGUL SYLLABLE JJYOSS
+CB41;CB41;110D 116D 11BC;CB41;110D 116D 11BC; # (쭁; 쭁; 쭁; 쭁; 쭁; ) HANGUL SYLLABLE JJYONG
+CB42;CB42;110D 116D 11BD;CB42;110D 116D 11BD; # (쭂; 쭂; 쭂; 쭂; 쭂; ) HANGUL SYLLABLE JJYOJ
+CB43;CB43;110D 116D 11BE;CB43;110D 116D 11BE; # (쭃; 쭃; 쭃; 쭃; 쭃; ) HANGUL SYLLABLE JJYOC
+CB44;CB44;110D 116D 11BF;CB44;110D 116D 11BF; # (쭄; 쭄; 쭄; 쭄; 쭄; ) HANGUL SYLLABLE JJYOK
+CB45;CB45;110D 116D 11C0;CB45;110D 116D 11C0; # (쭅; 쭅; 쭅; 쭅; 쭅; ) HANGUL SYLLABLE JJYOT
+CB46;CB46;110D 116D 11C1;CB46;110D 116D 11C1; # (쭆; 쭆; 쭆; 쭆; 쭆; ) HANGUL SYLLABLE JJYOP
+CB47;CB47;110D 116D 11C2;CB47;110D 116D 11C2; # (쭇; 쭇; 쭇; 쭇; 쭇; ) HANGUL SYLLABLE JJYOH
+CB48;CB48;110D 116E;CB48;110D 116E; # (쭈; 쭈; 쭈; 쭈; 쭈; ) HANGUL SYLLABLE JJU
+CB49;CB49;110D 116E 11A8;CB49;110D 116E 11A8; # (쭉; 쭉; 쭉; 쭉; 쭉; ) HANGUL SYLLABLE JJUG
+CB4A;CB4A;110D 116E 11A9;CB4A;110D 116E 11A9; # (쭊; 쭊; 쭊; 쭊; 쭊; ) HANGUL SYLLABLE JJUGG
+CB4B;CB4B;110D 116E 11AA;CB4B;110D 116E 11AA; # (쭋; 쭋; 쭋; 쭋; 쭋; ) HANGUL SYLLABLE JJUGS
+CB4C;CB4C;110D 116E 11AB;CB4C;110D 116E 11AB; # (쭌; 쭌; 쭌; 쭌; 쭌; ) HANGUL SYLLABLE JJUN
+CB4D;CB4D;110D 116E 11AC;CB4D;110D 116E 11AC; # (쭍; 쭍; 쭍; 쭍; 쭍; ) HANGUL SYLLABLE JJUNJ
+CB4E;CB4E;110D 116E 11AD;CB4E;110D 116E 11AD; # (쭎; 쭎; 쭎; 쭎; 쭎; ) HANGUL SYLLABLE JJUNH
+CB4F;CB4F;110D 116E 11AE;CB4F;110D 116E 11AE; # (쭏; 쭏; 쭏; 쭏; 쭏; ) HANGUL SYLLABLE JJUD
+CB50;CB50;110D 116E 11AF;CB50;110D 116E 11AF; # (쭐; 쭐; 쭐; 쭐; 쭐; ) HANGUL SYLLABLE JJUL
+CB51;CB51;110D 116E 11B0;CB51;110D 116E 11B0; # (쭑; 쭑; 쭑; 쭑; 쭑; ) HANGUL SYLLABLE JJULG
+CB52;CB52;110D 116E 11B1;CB52;110D 116E 11B1; # (쭒; 쭒; 쭒; 쭒; 쭒; ) HANGUL SYLLABLE JJULM
+CB53;CB53;110D 116E 11B2;CB53;110D 116E 11B2; # (쭓; 쭓; 쭓; 쭓; 쭓; ) HANGUL SYLLABLE JJULB
+CB54;CB54;110D 116E 11B3;CB54;110D 116E 11B3; # (쭔; 쭔; 쭔; 쭔; 쭔; ) HANGUL SYLLABLE JJULS
+CB55;CB55;110D 116E 11B4;CB55;110D 116E 11B4; # (쭕; 쭕; 쭕; 쭕; 쭕; ) HANGUL SYLLABLE JJULT
+CB56;CB56;110D 116E 11B5;CB56;110D 116E 11B5; # (쭖; 쭖; 쭖; 쭖; 쭖; ) HANGUL SYLLABLE JJULP
+CB57;CB57;110D 116E 11B6;CB57;110D 116E 11B6; # (쭗; 쭗; 쭗; 쭗; 쭗; ) HANGUL SYLLABLE JJULH
+CB58;CB58;110D 116E 11B7;CB58;110D 116E 11B7; # (쭘; 쭘; 쭘; 쭘; 쭘; ) HANGUL SYLLABLE JJUM
+CB59;CB59;110D 116E 11B8;CB59;110D 116E 11B8; # (쭙; 쭙; 쭙; 쭙; 쭙; ) HANGUL SYLLABLE JJUB
+CB5A;CB5A;110D 116E 11B9;CB5A;110D 116E 11B9; # (쭚; 쭚; 쭚; 쭚; 쭚; ) HANGUL SYLLABLE JJUBS
+CB5B;CB5B;110D 116E 11BA;CB5B;110D 116E 11BA; # (쭛; 쭛; 쭛; 쭛; 쭛; ) HANGUL SYLLABLE JJUS
+CB5C;CB5C;110D 116E 11BB;CB5C;110D 116E 11BB; # (쭜; 쭜; 쭜; 쭜; 쭜; ) HANGUL SYLLABLE JJUSS
+CB5D;CB5D;110D 116E 11BC;CB5D;110D 116E 11BC; # (쭝; 쭝; 쭝; 쭝; 쭝; ) HANGUL SYLLABLE JJUNG
+CB5E;CB5E;110D 116E 11BD;CB5E;110D 116E 11BD; # (쭞; 쭞; 쭞; 쭞; 쭞; ) HANGUL SYLLABLE JJUJ
+CB5F;CB5F;110D 116E 11BE;CB5F;110D 116E 11BE; # (쭟; 쭟; 쭟; 쭟; 쭟; ) HANGUL SYLLABLE JJUC
+CB60;CB60;110D 116E 11BF;CB60;110D 116E 11BF; # (쭠; 쭠; 쭠; 쭠; 쭠; ) HANGUL SYLLABLE JJUK
+CB61;CB61;110D 116E 11C0;CB61;110D 116E 11C0; # (쭡; 쭡; 쭡; 쭡; 쭡; ) HANGUL SYLLABLE JJUT
+CB62;CB62;110D 116E 11C1;CB62;110D 116E 11C1; # (쭢; 쭢; 쭢; 쭢; 쭢; ) HANGUL SYLLABLE JJUP
+CB63;CB63;110D 116E 11C2;CB63;110D 116E 11C2; # (쭣; 쭣; 쭣; 쭣; 쭣; ) HANGUL SYLLABLE JJUH
+CB64;CB64;110D 116F;CB64;110D 116F; # (쭤; 쭤; 쭤; 쭤; 쭤; ) HANGUL SYLLABLE JJWEO
+CB65;CB65;110D 116F 11A8;CB65;110D 116F 11A8; # (쭥; 쭥; 쭥; 쭥; 쭥; ) HANGUL SYLLABLE JJWEOG
+CB66;CB66;110D 116F 11A9;CB66;110D 116F 11A9; # (쭦; 쭦; 쭦; 쭦; 쭦; ) HANGUL SYLLABLE JJWEOGG
+CB67;CB67;110D 116F 11AA;CB67;110D 116F 11AA; # (쭧; 쭧; 쭧; 쭧; 쭧; ) HANGUL SYLLABLE JJWEOGS
+CB68;CB68;110D 116F 11AB;CB68;110D 116F 11AB; # (쭨; 쭨; 쭨; 쭨; 쭨; ) HANGUL SYLLABLE JJWEON
+CB69;CB69;110D 116F 11AC;CB69;110D 116F 11AC; # (쭩; 쭩; 쭩; 쭩; 쭩; ) HANGUL SYLLABLE JJWEONJ
+CB6A;CB6A;110D 116F 11AD;CB6A;110D 116F 11AD; # (쭪; 쭪; 쭪; 쭪; 쭪; ) HANGUL SYLLABLE JJWEONH
+CB6B;CB6B;110D 116F 11AE;CB6B;110D 116F 11AE; # (쭫; 쭫; 쭫; 쭫; 쭫; ) HANGUL SYLLABLE JJWEOD
+CB6C;CB6C;110D 116F 11AF;CB6C;110D 116F 11AF; # (쭬; 쭬; 쭬; 쭬; 쭬; ) HANGUL SYLLABLE JJWEOL
+CB6D;CB6D;110D 116F 11B0;CB6D;110D 116F 11B0; # (쭭; 쭭; 쭭; 쭭; 쭭; ) HANGUL SYLLABLE JJWEOLG
+CB6E;CB6E;110D 116F 11B1;CB6E;110D 116F 11B1; # (쭮; 쭮; 쭮; 쭮; 쭮; ) HANGUL SYLLABLE JJWEOLM
+CB6F;CB6F;110D 116F 11B2;CB6F;110D 116F 11B2; # (쭯; 쭯; 쭯; 쭯; 쭯; ) HANGUL SYLLABLE JJWEOLB
+CB70;CB70;110D 116F 11B3;CB70;110D 116F 11B3; # (쭰; 쭰; 쭰; 쭰; 쭰; ) HANGUL SYLLABLE JJWEOLS
+CB71;CB71;110D 116F 11B4;CB71;110D 116F 11B4; # (쭱; 쭱; 쭱; 쭱; 쭱; ) HANGUL SYLLABLE JJWEOLT
+CB72;CB72;110D 116F 11B5;CB72;110D 116F 11B5; # (쭲; 쭲; 쭲; 쭲; 쭲; ) HANGUL SYLLABLE JJWEOLP
+CB73;CB73;110D 116F 11B6;CB73;110D 116F 11B6; # (쭳; 쭳; 쭳; 쭳; 쭳; ) HANGUL SYLLABLE JJWEOLH
+CB74;CB74;110D 116F 11B7;CB74;110D 116F 11B7; # (쭴; 쭴; 쭴; 쭴; 쭴; ) HANGUL SYLLABLE JJWEOM
+CB75;CB75;110D 116F 11B8;CB75;110D 116F 11B8; # (쭵; 쭵; 쭵; 쭵; 쭵; ) HANGUL SYLLABLE JJWEOB
+CB76;CB76;110D 116F 11B9;CB76;110D 116F 11B9; # (쭶; 쭶; 쭶; 쭶; 쭶; ) HANGUL SYLLABLE JJWEOBS
+CB77;CB77;110D 116F 11BA;CB77;110D 116F 11BA; # (쭷; 쭷; 쭷; 쭷; 쭷; ) HANGUL SYLLABLE JJWEOS
+CB78;CB78;110D 116F 11BB;CB78;110D 116F 11BB; # (쭸; 쭸; 쭸; 쭸; 쭸; ) HANGUL SYLLABLE JJWEOSS
+CB79;CB79;110D 116F 11BC;CB79;110D 116F 11BC; # (쭹; 쭹; 쭹; 쭹; 쭹; ) HANGUL SYLLABLE JJWEONG
+CB7A;CB7A;110D 116F 11BD;CB7A;110D 116F 11BD; # (쭺; 쭺; 쭺; 쭺; 쭺; ) HANGUL SYLLABLE JJWEOJ
+CB7B;CB7B;110D 116F 11BE;CB7B;110D 116F 11BE; # (쭻; 쭻; 쭻; 쭻; 쭻; ) HANGUL SYLLABLE JJWEOC
+CB7C;CB7C;110D 116F 11BF;CB7C;110D 116F 11BF; # (쭼; 쭼; 쭼; 쭼; 쭼; ) HANGUL SYLLABLE JJWEOK
+CB7D;CB7D;110D 116F 11C0;CB7D;110D 116F 11C0; # (쭽; 쭽; 쭽; 쭽; 쭽; ) HANGUL SYLLABLE JJWEOT
+CB7E;CB7E;110D 116F 11C1;CB7E;110D 116F 11C1; # (쭾; 쭾; 쭾; 쭾; 쭾; ) HANGUL SYLLABLE JJWEOP
+CB7F;CB7F;110D 116F 11C2;CB7F;110D 116F 11C2; # (쭿; 쭿; 쭿; 쭿; 쭿; ) HANGUL SYLLABLE JJWEOH
+CB80;CB80;110D 1170;CB80;110D 1170; # (쮀; 쮀; 쮀; 쮀; 쮀; ) HANGUL SYLLABLE JJWE
+CB81;CB81;110D 1170 11A8;CB81;110D 1170 11A8; # (쮁; 쮁; 쮁; 쮁; 쮁; ) HANGUL SYLLABLE JJWEG
+CB82;CB82;110D 1170 11A9;CB82;110D 1170 11A9; # (쮂; 쮂; 쮂; 쮂; 쮂; ) HANGUL SYLLABLE JJWEGG
+CB83;CB83;110D 1170 11AA;CB83;110D 1170 11AA; # (쮃; 쮃; 쮃; 쮃; 쮃; ) HANGUL SYLLABLE JJWEGS
+CB84;CB84;110D 1170 11AB;CB84;110D 1170 11AB; # (쮄; 쮄; 쮄; 쮄; 쮄; ) HANGUL SYLLABLE JJWEN
+CB85;CB85;110D 1170 11AC;CB85;110D 1170 11AC; # (쮅; 쮅; 쮅; 쮅; 쮅; ) HANGUL SYLLABLE JJWENJ
+CB86;CB86;110D 1170 11AD;CB86;110D 1170 11AD; # (쮆; 쮆; 쮆; 쮆; 쮆; ) HANGUL SYLLABLE JJWENH
+CB87;CB87;110D 1170 11AE;CB87;110D 1170 11AE; # (쮇; 쮇; 쮇; 쮇; 쮇; ) HANGUL SYLLABLE JJWED
+CB88;CB88;110D 1170 11AF;CB88;110D 1170 11AF; # (쮈; 쮈; 쮈; 쮈; 쮈; ) HANGUL SYLLABLE JJWEL
+CB89;CB89;110D 1170 11B0;CB89;110D 1170 11B0; # (쮉; 쮉; 쮉; 쮉; 쮉; ) HANGUL SYLLABLE JJWELG
+CB8A;CB8A;110D 1170 11B1;CB8A;110D 1170 11B1; # (쮊; 쮊; 쮊; 쮊; 쮊; ) HANGUL SYLLABLE JJWELM
+CB8B;CB8B;110D 1170 11B2;CB8B;110D 1170 11B2; # (쮋; 쮋; 쮋; 쮋; 쮋; ) HANGUL SYLLABLE JJWELB
+CB8C;CB8C;110D 1170 11B3;CB8C;110D 1170 11B3; # (쮌; 쮌; 쮌; 쮌; 쮌; ) HANGUL SYLLABLE JJWELS
+CB8D;CB8D;110D 1170 11B4;CB8D;110D 1170 11B4; # (쮍; 쮍; 쮍; 쮍; 쮍; ) HANGUL SYLLABLE JJWELT
+CB8E;CB8E;110D 1170 11B5;CB8E;110D 1170 11B5; # (쮎; 쮎; 쮎; 쮎; 쮎; ) HANGUL SYLLABLE JJWELP
+CB8F;CB8F;110D 1170 11B6;CB8F;110D 1170 11B6; # (쮏; 쮏; 쮏; 쮏; 쮏; ) HANGUL SYLLABLE JJWELH
+CB90;CB90;110D 1170 11B7;CB90;110D 1170 11B7; # (쮐; 쮐; 쮐; 쮐; 쮐; ) HANGUL SYLLABLE JJWEM
+CB91;CB91;110D 1170 11B8;CB91;110D 1170 11B8; # (쮑; 쮑; 쮑; 쮑; 쮑; ) HANGUL SYLLABLE JJWEB
+CB92;CB92;110D 1170 11B9;CB92;110D 1170 11B9; # (쮒; 쮒; 쮒; 쮒; 쮒; ) HANGUL SYLLABLE JJWEBS
+CB93;CB93;110D 1170 11BA;CB93;110D 1170 11BA; # (쮓; 쮓; 쮓; 쮓; 쮓; ) HANGUL SYLLABLE JJWES
+CB94;CB94;110D 1170 11BB;CB94;110D 1170 11BB; # (쮔; 쮔; 쮔; 쮔; 쮔; ) HANGUL SYLLABLE JJWESS
+CB95;CB95;110D 1170 11BC;CB95;110D 1170 11BC; # (쮕; 쮕; 쮕; 쮕; 쮕; ) HANGUL SYLLABLE JJWENG
+CB96;CB96;110D 1170 11BD;CB96;110D 1170 11BD; # (쮖; 쮖; 쮖; 쮖; 쮖; ) HANGUL SYLLABLE JJWEJ
+CB97;CB97;110D 1170 11BE;CB97;110D 1170 11BE; # (쮗; 쮗; 쮗; 쮗; 쮗; ) HANGUL SYLLABLE JJWEC
+CB98;CB98;110D 1170 11BF;CB98;110D 1170 11BF; # (쮘; 쮘; 쮘; 쮘; 쮘; ) HANGUL SYLLABLE JJWEK
+CB99;CB99;110D 1170 11C0;CB99;110D 1170 11C0; # (쮙; 쮙; 쮙; 쮙; 쮙; ) HANGUL SYLLABLE JJWET
+CB9A;CB9A;110D 1170 11C1;CB9A;110D 1170 11C1; # (쮚; 쮚; 쮚; 쮚; 쮚; ) HANGUL SYLLABLE JJWEP
+CB9B;CB9B;110D 1170 11C2;CB9B;110D 1170 11C2; # (쮛; 쮛; 쮛; 쮛; 쮛; ) HANGUL SYLLABLE JJWEH
+CB9C;CB9C;110D 1171;CB9C;110D 1171; # (쮜; 쮜; 쮜; 쮜; 쮜; ) HANGUL SYLLABLE JJWI
+CB9D;CB9D;110D 1171 11A8;CB9D;110D 1171 11A8; # (쮝; 쮝; 쮝; 쮝; 쮝; ) HANGUL SYLLABLE JJWIG
+CB9E;CB9E;110D 1171 11A9;CB9E;110D 1171 11A9; # (쮞; 쮞; 쮞; 쮞; 쮞; ) HANGUL SYLLABLE JJWIGG
+CB9F;CB9F;110D 1171 11AA;CB9F;110D 1171 11AA; # (쮟; 쮟; 쮟; 쮟; 쮟; ) HANGUL SYLLABLE JJWIGS
+CBA0;CBA0;110D 1171 11AB;CBA0;110D 1171 11AB; # (쮠; 쮠; 쮠; 쮠; 쮠; ) HANGUL SYLLABLE JJWIN
+CBA1;CBA1;110D 1171 11AC;CBA1;110D 1171 11AC; # (쮡; 쮡; 쮡; 쮡; 쮡; ) HANGUL SYLLABLE JJWINJ
+CBA2;CBA2;110D 1171 11AD;CBA2;110D 1171 11AD; # (쮢; 쮢; 쮢; 쮢; 쮢; ) HANGUL SYLLABLE JJWINH
+CBA3;CBA3;110D 1171 11AE;CBA3;110D 1171 11AE; # (쮣; 쮣; 쮣; 쮣; 쮣; ) HANGUL SYLLABLE JJWID
+CBA4;CBA4;110D 1171 11AF;CBA4;110D 1171 11AF; # (쮤; 쮤; 쮤; 쮤; 쮤; ) HANGUL SYLLABLE JJWIL
+CBA5;CBA5;110D 1171 11B0;CBA5;110D 1171 11B0; # (쮥; 쮥; 쮥; 쮥; 쮥; ) HANGUL SYLLABLE JJWILG
+CBA6;CBA6;110D 1171 11B1;CBA6;110D 1171 11B1; # (쮦; 쮦; 쮦; 쮦; 쮦; ) HANGUL SYLLABLE JJWILM
+CBA7;CBA7;110D 1171 11B2;CBA7;110D 1171 11B2; # (쮧; 쮧; 쮧; 쮧; 쮧; ) HANGUL SYLLABLE JJWILB
+CBA8;CBA8;110D 1171 11B3;CBA8;110D 1171 11B3; # (쮨; 쮨; 쮨; 쮨; 쮨; ) HANGUL SYLLABLE JJWILS
+CBA9;CBA9;110D 1171 11B4;CBA9;110D 1171 11B4; # (쮩; 쮩; 쮩; 쮩; 쮩; ) HANGUL SYLLABLE JJWILT
+CBAA;CBAA;110D 1171 11B5;CBAA;110D 1171 11B5; # (쮪; 쮪; 쮪; 쮪; 쮪; ) HANGUL SYLLABLE JJWILP
+CBAB;CBAB;110D 1171 11B6;CBAB;110D 1171 11B6; # (쮫; 쮫; 쮫; 쮫; 쮫; ) HANGUL SYLLABLE JJWILH
+CBAC;CBAC;110D 1171 11B7;CBAC;110D 1171 11B7; # (쮬; 쮬; 쮬; 쮬; 쮬; ) HANGUL SYLLABLE JJWIM
+CBAD;CBAD;110D 1171 11B8;CBAD;110D 1171 11B8; # (쮭; 쮭; 쮭; 쮭; 쮭; ) HANGUL SYLLABLE JJWIB
+CBAE;CBAE;110D 1171 11B9;CBAE;110D 1171 11B9; # (쮮; 쮮; 쮮; 쮮; 쮮; ) HANGUL SYLLABLE JJWIBS
+CBAF;CBAF;110D 1171 11BA;CBAF;110D 1171 11BA; # (쮯; 쮯; 쮯; 쮯; 쮯; ) HANGUL SYLLABLE JJWIS
+CBB0;CBB0;110D 1171 11BB;CBB0;110D 1171 11BB; # (쮰; 쮰; 쮰; 쮰; 쮰; ) HANGUL SYLLABLE JJWISS
+CBB1;CBB1;110D 1171 11BC;CBB1;110D 1171 11BC; # (쮱; 쮱; 쮱; 쮱; 쮱; ) HANGUL SYLLABLE JJWING
+CBB2;CBB2;110D 1171 11BD;CBB2;110D 1171 11BD; # (쮲; 쮲; 쮲; 쮲; 쮲; ) HANGUL SYLLABLE JJWIJ
+CBB3;CBB3;110D 1171 11BE;CBB3;110D 1171 11BE; # (쮳; 쮳; 쮳; 쮳; 쮳; ) HANGUL SYLLABLE JJWIC
+CBB4;CBB4;110D 1171 11BF;CBB4;110D 1171 11BF; # (쮴; 쮴; 쮴; 쮴; 쮴; ) HANGUL SYLLABLE JJWIK
+CBB5;CBB5;110D 1171 11C0;CBB5;110D 1171 11C0; # (쮵; 쮵; 쮵; 쮵; 쮵; ) HANGUL SYLLABLE JJWIT
+CBB6;CBB6;110D 1171 11C1;CBB6;110D 1171 11C1; # (쮶; 쮶; 쮶; 쮶; 쮶; ) HANGUL SYLLABLE JJWIP
+CBB7;CBB7;110D 1171 11C2;CBB7;110D 1171 11C2; # (쮷; 쮷; 쮷; 쮷; 쮷; ) HANGUL SYLLABLE JJWIH
+CBB8;CBB8;110D 1172;CBB8;110D 1172; # (쮸; 쮸; 쮸; 쮸; 쮸; ) HANGUL SYLLABLE JJYU
+CBB9;CBB9;110D 1172 11A8;CBB9;110D 1172 11A8; # (쮹; 쮹; 쮹; 쮹; 쮹; ) HANGUL SYLLABLE JJYUG
+CBBA;CBBA;110D 1172 11A9;CBBA;110D 1172 11A9; # (쮺; 쮺; 쮺; 쮺; 쮺; ) HANGUL SYLLABLE JJYUGG
+CBBB;CBBB;110D 1172 11AA;CBBB;110D 1172 11AA; # (쮻; 쮻; 쮻; 쮻; 쮻; ) HANGUL SYLLABLE JJYUGS
+CBBC;CBBC;110D 1172 11AB;CBBC;110D 1172 11AB; # (쮼; 쮼; 쮼; 쮼; 쮼; ) HANGUL SYLLABLE JJYUN
+CBBD;CBBD;110D 1172 11AC;CBBD;110D 1172 11AC; # (쮽; 쮽; 쮽; 쮽; 쮽; ) HANGUL SYLLABLE JJYUNJ
+CBBE;CBBE;110D 1172 11AD;CBBE;110D 1172 11AD; # (쮾; 쮾; 쮾; 쮾; 쮾; ) HANGUL SYLLABLE JJYUNH
+CBBF;CBBF;110D 1172 11AE;CBBF;110D 1172 11AE; # (쮿; 쮿; 쮿; 쮿; 쮿; ) HANGUL SYLLABLE JJYUD
+CBC0;CBC0;110D 1172 11AF;CBC0;110D 1172 11AF; # (쯀; 쯀; 쯀; 쯀; 쯀; ) HANGUL SYLLABLE JJYUL
+CBC1;CBC1;110D 1172 11B0;CBC1;110D 1172 11B0; # (쯁; 쯁; 쯁; 쯁; 쯁; ) HANGUL SYLLABLE JJYULG
+CBC2;CBC2;110D 1172 11B1;CBC2;110D 1172 11B1; # (쯂; 쯂; 쯂; 쯂; 쯂; ) HANGUL SYLLABLE JJYULM
+CBC3;CBC3;110D 1172 11B2;CBC3;110D 1172 11B2; # (쯃; 쯃; 쯃; 쯃; 쯃; ) HANGUL SYLLABLE JJYULB
+CBC4;CBC4;110D 1172 11B3;CBC4;110D 1172 11B3; # (쯄; 쯄; 쯄; 쯄; 쯄; ) HANGUL SYLLABLE JJYULS
+CBC5;CBC5;110D 1172 11B4;CBC5;110D 1172 11B4; # (쯅; 쯅; 쯅; 쯅; 쯅; ) HANGUL SYLLABLE JJYULT
+CBC6;CBC6;110D 1172 11B5;CBC6;110D 1172 11B5; # (쯆; 쯆; 쯆; 쯆; 쯆; ) HANGUL SYLLABLE JJYULP
+CBC7;CBC7;110D 1172 11B6;CBC7;110D 1172 11B6; # (쯇; 쯇; 쯇; 쯇; 쯇; ) HANGUL SYLLABLE JJYULH
+CBC8;CBC8;110D 1172 11B7;CBC8;110D 1172 11B7; # (쯈; 쯈; 쯈; 쯈; 쯈; ) HANGUL SYLLABLE JJYUM
+CBC9;CBC9;110D 1172 11B8;CBC9;110D 1172 11B8; # (쯉; 쯉; 쯉; 쯉; 쯉; ) HANGUL SYLLABLE JJYUB
+CBCA;CBCA;110D 1172 11B9;CBCA;110D 1172 11B9; # (쯊; 쯊; 쯊; 쯊; 쯊; ) HANGUL SYLLABLE JJYUBS
+CBCB;CBCB;110D 1172 11BA;CBCB;110D 1172 11BA; # (쯋; 쯋; 쯋; 쯋; 쯋; ) HANGUL SYLLABLE JJYUS
+CBCC;CBCC;110D 1172 11BB;CBCC;110D 1172 11BB; # (쯌; 쯌; 쯌; 쯌; 쯌; ) HANGUL SYLLABLE JJYUSS
+CBCD;CBCD;110D 1172 11BC;CBCD;110D 1172 11BC; # (쯍; 쯍; 쯍; 쯍; 쯍; ) HANGUL SYLLABLE JJYUNG
+CBCE;CBCE;110D 1172 11BD;CBCE;110D 1172 11BD; # (쯎; 쯎; 쯎; 쯎; 쯎; ) HANGUL SYLLABLE JJYUJ
+CBCF;CBCF;110D 1172 11BE;CBCF;110D 1172 11BE; # (쯏; 쯏; 쯏; 쯏; 쯏; ) HANGUL SYLLABLE JJYUC
+CBD0;CBD0;110D 1172 11BF;CBD0;110D 1172 11BF; # (쯐; 쯐; 쯐; 쯐; 쯐; ) HANGUL SYLLABLE JJYUK
+CBD1;CBD1;110D 1172 11C0;CBD1;110D 1172 11C0; # (쯑; 쯑; 쯑; 쯑; 쯑; ) HANGUL SYLLABLE JJYUT
+CBD2;CBD2;110D 1172 11C1;CBD2;110D 1172 11C1; # (쯒; 쯒; 쯒; 쯒; 쯒; ) HANGUL SYLLABLE JJYUP
+CBD3;CBD3;110D 1172 11C2;CBD3;110D 1172 11C2; # (쯓; 쯓; 쯓; 쯓; 쯓; ) HANGUL SYLLABLE JJYUH
+CBD4;CBD4;110D 1173;CBD4;110D 1173; # (쯔; 쯔; 쯔; 쯔; 쯔; ) HANGUL SYLLABLE JJEU
+CBD5;CBD5;110D 1173 11A8;CBD5;110D 1173 11A8; # (쯕; 쯕; 쯕; 쯕; 쯕; ) HANGUL SYLLABLE JJEUG
+CBD6;CBD6;110D 1173 11A9;CBD6;110D 1173 11A9; # (쯖; 쯖; 쯖; 쯖; 쯖; ) HANGUL SYLLABLE JJEUGG
+CBD7;CBD7;110D 1173 11AA;CBD7;110D 1173 11AA; # (쯗; 쯗; 쯗; 쯗; 쯗; ) HANGUL SYLLABLE JJEUGS
+CBD8;CBD8;110D 1173 11AB;CBD8;110D 1173 11AB; # (쯘; 쯘; 쯘; 쯘; 쯘; ) HANGUL SYLLABLE JJEUN
+CBD9;CBD9;110D 1173 11AC;CBD9;110D 1173 11AC; # (쯙; 쯙; 쯙; 쯙; 쯙; ) HANGUL SYLLABLE JJEUNJ
+CBDA;CBDA;110D 1173 11AD;CBDA;110D 1173 11AD; # (쯚; 쯚; 쯚; 쯚; 쯚; ) HANGUL SYLLABLE JJEUNH
+CBDB;CBDB;110D 1173 11AE;CBDB;110D 1173 11AE; # (쯛; 쯛; 쯛; 쯛; 쯛; ) HANGUL SYLLABLE JJEUD
+CBDC;CBDC;110D 1173 11AF;CBDC;110D 1173 11AF; # (쯜; 쯜; 쯜; 쯜; 쯜; ) HANGUL SYLLABLE JJEUL
+CBDD;CBDD;110D 1173 11B0;CBDD;110D 1173 11B0; # (쯝; 쯝; 쯝; 쯝; 쯝; ) HANGUL SYLLABLE JJEULG
+CBDE;CBDE;110D 1173 11B1;CBDE;110D 1173 11B1; # (쯞; 쯞; 쯞; 쯞; 쯞; ) HANGUL SYLLABLE JJEULM
+CBDF;CBDF;110D 1173 11B2;CBDF;110D 1173 11B2; # (쯟; 쯟; 쯟; 쯟; 쯟; ) HANGUL SYLLABLE JJEULB
+CBE0;CBE0;110D 1173 11B3;CBE0;110D 1173 11B3; # (쯠; 쯠; 쯠; 쯠; 쯠; ) HANGUL SYLLABLE JJEULS
+CBE1;CBE1;110D 1173 11B4;CBE1;110D 1173 11B4; # (쯡; 쯡; 쯡; 쯡; 쯡; ) HANGUL SYLLABLE JJEULT
+CBE2;CBE2;110D 1173 11B5;CBE2;110D 1173 11B5; # (쯢; 쯢; 쯢; 쯢; 쯢; ) HANGUL SYLLABLE JJEULP
+CBE3;CBE3;110D 1173 11B6;CBE3;110D 1173 11B6; # (쯣; 쯣; 쯣; 쯣; 쯣; ) HANGUL SYLLABLE JJEULH
+CBE4;CBE4;110D 1173 11B7;CBE4;110D 1173 11B7; # (쯤; 쯤; 쯤; 쯤; 쯤; ) HANGUL SYLLABLE JJEUM
+CBE5;CBE5;110D 1173 11B8;CBE5;110D 1173 11B8; # (쯥; 쯥; 쯥; 쯥; 쯥; ) HANGUL SYLLABLE JJEUB
+CBE6;CBE6;110D 1173 11B9;CBE6;110D 1173 11B9; # (쯦; 쯦; 쯦; 쯦; 쯦; ) HANGUL SYLLABLE JJEUBS
+CBE7;CBE7;110D 1173 11BA;CBE7;110D 1173 11BA; # (쯧; 쯧; 쯧; 쯧; 쯧; ) HANGUL SYLLABLE JJEUS
+CBE8;CBE8;110D 1173 11BB;CBE8;110D 1173 11BB; # (쯨; 쯨; 쯨; 쯨; 쯨; ) HANGUL SYLLABLE JJEUSS
+CBE9;CBE9;110D 1173 11BC;CBE9;110D 1173 11BC; # (쯩; 쯩; 쯩; 쯩; 쯩; ) HANGUL SYLLABLE JJEUNG
+CBEA;CBEA;110D 1173 11BD;CBEA;110D 1173 11BD; # (쯪; 쯪; 쯪; 쯪; 쯪; ) HANGUL SYLLABLE JJEUJ
+CBEB;CBEB;110D 1173 11BE;CBEB;110D 1173 11BE; # (쯫; 쯫; 쯫; 쯫; 쯫; ) HANGUL SYLLABLE JJEUC
+CBEC;CBEC;110D 1173 11BF;CBEC;110D 1173 11BF; # (쯬; 쯬; 쯬; 쯬; 쯬; ) HANGUL SYLLABLE JJEUK
+CBED;CBED;110D 1173 11C0;CBED;110D 1173 11C0; # (쯭; 쯭; 쯭; 쯭; 쯭; ) HANGUL SYLLABLE JJEUT
+CBEE;CBEE;110D 1173 11C1;CBEE;110D 1173 11C1; # (쯮; 쯮; 쯮; 쯮; 쯮; ) HANGUL SYLLABLE JJEUP
+CBEF;CBEF;110D 1173 11C2;CBEF;110D 1173 11C2; # (쯯; 쯯; 쯯; 쯯; 쯯; ) HANGUL SYLLABLE JJEUH
+CBF0;CBF0;110D 1174;CBF0;110D 1174; # (쯰; 쯰; 쯰; 쯰; 쯰; ) HANGUL SYLLABLE JJYI
+CBF1;CBF1;110D 1174 11A8;CBF1;110D 1174 11A8; # (쯱; 쯱; 쯱; 쯱; 쯱; ) HANGUL SYLLABLE JJYIG
+CBF2;CBF2;110D 1174 11A9;CBF2;110D 1174 11A9; # (쯲; 쯲; 쯲; 쯲; 쯲; ) HANGUL SYLLABLE JJYIGG
+CBF3;CBF3;110D 1174 11AA;CBF3;110D 1174 11AA; # (쯳; 쯳; 쯳; 쯳; 쯳; ) HANGUL SYLLABLE JJYIGS
+CBF4;CBF4;110D 1174 11AB;CBF4;110D 1174 11AB; # (쯴; 쯴; 쯴; 쯴; 쯴; ) HANGUL SYLLABLE JJYIN
+CBF5;CBF5;110D 1174 11AC;CBF5;110D 1174 11AC; # (쯵; 쯵; 쯵; 쯵; 쯵; ) HANGUL SYLLABLE JJYINJ
+CBF6;CBF6;110D 1174 11AD;CBF6;110D 1174 11AD; # (쯶; 쯶; 쯶; 쯶; 쯶; ) HANGUL SYLLABLE JJYINH
+CBF7;CBF7;110D 1174 11AE;CBF7;110D 1174 11AE; # (쯷; 쯷; 쯷; 쯷; 쯷; ) HANGUL SYLLABLE JJYID
+CBF8;CBF8;110D 1174 11AF;CBF8;110D 1174 11AF; # (쯸; 쯸; 쯸; 쯸; 쯸; ) HANGUL SYLLABLE JJYIL
+CBF9;CBF9;110D 1174 11B0;CBF9;110D 1174 11B0; # (쯹; 쯹; 쯹; 쯹; 쯹; ) HANGUL SYLLABLE JJYILG
+CBFA;CBFA;110D 1174 11B1;CBFA;110D 1174 11B1; # (쯺; 쯺; 쯺; 쯺; 쯺; ) HANGUL SYLLABLE JJYILM
+CBFB;CBFB;110D 1174 11B2;CBFB;110D 1174 11B2; # (쯻; 쯻; 쯻; 쯻; 쯻; ) HANGUL SYLLABLE JJYILB
+CBFC;CBFC;110D 1174 11B3;CBFC;110D 1174 11B3; # (쯼; 쯼; 쯼; 쯼; 쯼; ) HANGUL SYLLABLE JJYILS
+CBFD;CBFD;110D 1174 11B4;CBFD;110D 1174 11B4; # (쯽; 쯽; 쯽; 쯽; 쯽; ) HANGUL SYLLABLE JJYILT
+CBFE;CBFE;110D 1174 11B5;CBFE;110D 1174 11B5; # (쯾; 쯾; 쯾; 쯾; 쯾; ) HANGUL SYLLABLE JJYILP
+CBFF;CBFF;110D 1174 11B6;CBFF;110D 1174 11B6; # (쯿; 쯿; 쯿; 쯿; 쯿; ) HANGUL SYLLABLE JJYILH
+CC00;CC00;110D 1174 11B7;CC00;110D 1174 11B7; # (찀; 찀; 찀; 찀; 찀; ) HANGUL SYLLABLE JJYIM
+CC01;CC01;110D 1174 11B8;CC01;110D 1174 11B8; # (찁; 찁; 찁; 찁; 찁; ) HANGUL SYLLABLE JJYIB
+CC02;CC02;110D 1174 11B9;CC02;110D 1174 11B9; # (찂; 찂; 찂; 찂; 찂; ) HANGUL SYLLABLE JJYIBS
+CC03;CC03;110D 1174 11BA;CC03;110D 1174 11BA; # (찃; 찃; 찃; 찃; 찃; ) HANGUL SYLLABLE JJYIS
+CC04;CC04;110D 1174 11BB;CC04;110D 1174 11BB; # (찄; 찄; 찄; 찄; 찄; ) HANGUL SYLLABLE JJYISS
+CC05;CC05;110D 1174 11BC;CC05;110D 1174 11BC; # (찅; 찅; 찅; 찅; 찅; ) HANGUL SYLLABLE JJYING
+CC06;CC06;110D 1174 11BD;CC06;110D 1174 11BD; # (찆; 찆; 찆; 찆; 찆; ) HANGUL SYLLABLE JJYIJ
+CC07;CC07;110D 1174 11BE;CC07;110D 1174 11BE; # (찇; 찇; 찇; 찇; 찇; ) HANGUL SYLLABLE JJYIC
+CC08;CC08;110D 1174 11BF;CC08;110D 1174 11BF; # (찈; 찈; 찈; 찈; 찈; ) HANGUL SYLLABLE JJYIK
+CC09;CC09;110D 1174 11C0;CC09;110D 1174 11C0; # (찉; 찉; 찉; 찉; 찉; ) HANGUL SYLLABLE JJYIT
+CC0A;CC0A;110D 1174 11C1;CC0A;110D 1174 11C1; # (찊; 찊; 찊; 찊; 찊; ) HANGUL SYLLABLE JJYIP
+CC0B;CC0B;110D 1174 11C2;CC0B;110D 1174 11C2; # (찋; 찋; 찋; 찋; 찋; ) HANGUL SYLLABLE JJYIH
+CC0C;CC0C;110D 1175;CC0C;110D 1175; # (찌; 찌; 찌; 찌; 찌; ) HANGUL SYLLABLE JJI
+CC0D;CC0D;110D 1175 11A8;CC0D;110D 1175 11A8; # (찍; 찍; 찍; 찍; 찍; ) HANGUL SYLLABLE JJIG
+CC0E;CC0E;110D 1175 11A9;CC0E;110D 1175 11A9; # (찎; 찎; 찎; 찎; 찎; ) HANGUL SYLLABLE JJIGG
+CC0F;CC0F;110D 1175 11AA;CC0F;110D 1175 11AA; # (찏; 찏; 찏; 찏; 찏; ) HANGUL SYLLABLE JJIGS
+CC10;CC10;110D 1175 11AB;CC10;110D 1175 11AB; # (찐; 찐; 찐; 찐; 찐; ) HANGUL SYLLABLE JJIN
+CC11;CC11;110D 1175 11AC;CC11;110D 1175 11AC; # (찑; 찑; 찑; 찑; 찑; ) HANGUL SYLLABLE JJINJ
+CC12;CC12;110D 1175 11AD;CC12;110D 1175 11AD; # (찒; 찒; 찒; 찒; 찒; ) HANGUL SYLLABLE JJINH
+CC13;CC13;110D 1175 11AE;CC13;110D 1175 11AE; # (찓; 찓; 찓; 찓; 찓; ) HANGUL SYLLABLE JJID
+CC14;CC14;110D 1175 11AF;CC14;110D 1175 11AF; # (찔; 찔; 찔; 찔; 찔; ) HANGUL SYLLABLE JJIL
+CC15;CC15;110D 1175 11B0;CC15;110D 1175 11B0; # (찕; 찕; 찕; 찕; 찕; ) HANGUL SYLLABLE JJILG
+CC16;CC16;110D 1175 11B1;CC16;110D 1175 11B1; # (찖; 찖; 찖; 찖; 찖; ) HANGUL SYLLABLE JJILM
+CC17;CC17;110D 1175 11B2;CC17;110D 1175 11B2; # (찗; 찗; 찗; 찗; 찗; ) HANGUL SYLLABLE JJILB
+CC18;CC18;110D 1175 11B3;CC18;110D 1175 11B3; # (찘; 찘; 찘; 찘; 찘; ) HANGUL SYLLABLE JJILS
+CC19;CC19;110D 1175 11B4;CC19;110D 1175 11B4; # (찙; 찙; 찙; 찙; 찙; ) HANGUL SYLLABLE JJILT
+CC1A;CC1A;110D 1175 11B5;CC1A;110D 1175 11B5; # (찚; 찚; 찚; 찚; 찚; ) HANGUL SYLLABLE JJILP
+CC1B;CC1B;110D 1175 11B6;CC1B;110D 1175 11B6; # (찛; 찛; 찛; 찛; 찛; ) HANGUL SYLLABLE JJILH
+CC1C;CC1C;110D 1175 11B7;CC1C;110D 1175 11B7; # (찜; 찜; 찜; 찜; 찜; ) HANGUL SYLLABLE JJIM
+CC1D;CC1D;110D 1175 11B8;CC1D;110D 1175 11B8; # (찝; 찝; 찝; 찝; 찝; ) HANGUL SYLLABLE JJIB
+CC1E;CC1E;110D 1175 11B9;CC1E;110D 1175 11B9; # (찞; 찞; 찞; 찞; 찞; ) HANGUL SYLLABLE JJIBS
+CC1F;CC1F;110D 1175 11BA;CC1F;110D 1175 11BA; # (찟; 찟; 찟; 찟; 찟; ) HANGUL SYLLABLE JJIS
+CC20;CC20;110D 1175 11BB;CC20;110D 1175 11BB; # (찠; 찠; 찠; 찠; 찠; ) HANGUL SYLLABLE JJISS
+CC21;CC21;110D 1175 11BC;CC21;110D 1175 11BC; # (찡; 찡; 찡; 찡; 찡; ) HANGUL SYLLABLE JJING
+CC22;CC22;110D 1175 11BD;CC22;110D 1175 11BD; # (찢; 찢; 찢; 찢; 찢; ) HANGUL SYLLABLE JJIJ
+CC23;CC23;110D 1175 11BE;CC23;110D 1175 11BE; # (찣; 찣; 찣; 찣; 찣; ) HANGUL SYLLABLE JJIC
+CC24;CC24;110D 1175 11BF;CC24;110D 1175 11BF; # (찤; 찤; 찤; 찤; 찤; ) HANGUL SYLLABLE JJIK
+CC25;CC25;110D 1175 11C0;CC25;110D 1175 11C0; # (찥; 찥; 찥; 찥; 찥; ) HANGUL SYLLABLE JJIT
+CC26;CC26;110D 1175 11C1;CC26;110D 1175 11C1; # (찦; 찦; 찦; 찦; 찦; ) HANGUL SYLLABLE JJIP
+CC27;CC27;110D 1175 11C2;CC27;110D 1175 11C2; # (찧; 찧; 찧; 찧; 찧; ) HANGUL SYLLABLE JJIH
+CC28;CC28;110E 1161;CC28;110E 1161; # (차; 차; 차; 차; 차; ) HANGUL SYLLABLE CA
+CC29;CC29;110E 1161 11A8;CC29;110E 1161 11A8; # (착; 착; 착; 착; 착; ) HANGUL SYLLABLE CAG
+CC2A;CC2A;110E 1161 11A9;CC2A;110E 1161 11A9; # (찪; 찪; 찪; 찪; 찪; ) HANGUL SYLLABLE CAGG
+CC2B;CC2B;110E 1161 11AA;CC2B;110E 1161 11AA; # (찫; 찫; 찫; 찫; 찫; ) HANGUL SYLLABLE CAGS
+CC2C;CC2C;110E 1161 11AB;CC2C;110E 1161 11AB; # (찬; 찬; 찬; 찬; 찬; ) HANGUL SYLLABLE CAN
+CC2D;CC2D;110E 1161 11AC;CC2D;110E 1161 11AC; # (찭; 찭; 찭; 찭; 찭; ) HANGUL SYLLABLE CANJ
+CC2E;CC2E;110E 1161 11AD;CC2E;110E 1161 11AD; # (찮; 찮; 찮; 찮; 찮; ) HANGUL SYLLABLE CANH
+CC2F;CC2F;110E 1161 11AE;CC2F;110E 1161 11AE; # (찯; 찯; 찯; 찯; 찯; ) HANGUL SYLLABLE CAD
+CC30;CC30;110E 1161 11AF;CC30;110E 1161 11AF; # (찰; 찰; 찰; 찰; 찰; ) HANGUL SYLLABLE CAL
+CC31;CC31;110E 1161 11B0;CC31;110E 1161 11B0; # (찱; 찱; 찱; 찱; 찱; ) HANGUL SYLLABLE CALG
+CC32;CC32;110E 1161 11B1;CC32;110E 1161 11B1; # (찲; 찲; 찲; 찲; 찲; ) HANGUL SYLLABLE CALM
+CC33;CC33;110E 1161 11B2;CC33;110E 1161 11B2; # (찳; 찳; 찳; 찳; 찳; ) HANGUL SYLLABLE CALB
+CC34;CC34;110E 1161 11B3;CC34;110E 1161 11B3; # (찴; 찴; 찴; 찴; 찴; ) HANGUL SYLLABLE CALS
+CC35;CC35;110E 1161 11B4;CC35;110E 1161 11B4; # (찵; 찵; 찵; 찵; 찵; ) HANGUL SYLLABLE CALT
+CC36;CC36;110E 1161 11B5;CC36;110E 1161 11B5; # (찶; 찶; 찶; 찶; 찶; ) HANGUL SYLLABLE CALP
+CC37;CC37;110E 1161 11B6;CC37;110E 1161 11B6; # (찷; 찷; 찷; 찷; 찷; ) HANGUL SYLLABLE CALH
+CC38;CC38;110E 1161 11B7;CC38;110E 1161 11B7; # (참; 참; 참; 참; 참; ) HANGUL SYLLABLE CAM
+CC39;CC39;110E 1161 11B8;CC39;110E 1161 11B8; # (찹; 찹; 찹; 찹; 찹; ) HANGUL SYLLABLE CAB
+CC3A;CC3A;110E 1161 11B9;CC3A;110E 1161 11B9; # (찺; 찺; 찺; 찺; 찺; ) HANGUL SYLLABLE CABS
+CC3B;CC3B;110E 1161 11BA;CC3B;110E 1161 11BA; # (찻; 찻; 찻; 찻; 찻; ) HANGUL SYLLABLE CAS
+CC3C;CC3C;110E 1161 11BB;CC3C;110E 1161 11BB; # (찼; 찼; 찼; 찼; 찼; ) HANGUL SYLLABLE CASS
+CC3D;CC3D;110E 1161 11BC;CC3D;110E 1161 11BC; # (창; 창; 창; 창; 창; ) HANGUL SYLLABLE CANG
+CC3E;CC3E;110E 1161 11BD;CC3E;110E 1161 11BD; # (찾; 찾; 찾; 찾; 찾; ) HANGUL SYLLABLE CAJ
+CC3F;CC3F;110E 1161 11BE;CC3F;110E 1161 11BE; # (찿; 찿; 찿; 찿; 찿; ) HANGUL SYLLABLE CAC
+CC40;CC40;110E 1161 11BF;CC40;110E 1161 11BF; # (챀; 챀; 챀; 챀; 챀; ) HANGUL SYLLABLE CAK
+CC41;CC41;110E 1161 11C0;CC41;110E 1161 11C0; # (챁; 챁; 챁; 챁; 챁; ) HANGUL SYLLABLE CAT
+CC42;CC42;110E 1161 11C1;CC42;110E 1161 11C1; # (챂; 챂; 챂; 챂; 챂; ) HANGUL SYLLABLE CAP
+CC43;CC43;110E 1161 11C2;CC43;110E 1161 11C2; # (챃; 챃; 챃; 챃; 챃; ) HANGUL SYLLABLE CAH
+CC44;CC44;110E 1162;CC44;110E 1162; # (채; 채; 채; 채; 채; ) HANGUL SYLLABLE CAE
+CC45;CC45;110E 1162 11A8;CC45;110E 1162 11A8; # (책; 책; 책; 책; 책; ) HANGUL SYLLABLE CAEG
+CC46;CC46;110E 1162 11A9;CC46;110E 1162 11A9; # (챆; 챆; 챆; 챆; 챆; ) HANGUL SYLLABLE CAEGG
+CC47;CC47;110E 1162 11AA;CC47;110E 1162 11AA; # (챇; 챇; 챇; 챇; 챇; ) HANGUL SYLLABLE CAEGS
+CC48;CC48;110E 1162 11AB;CC48;110E 1162 11AB; # (챈; 챈; 챈; 챈; 챈; ) HANGUL SYLLABLE CAEN
+CC49;CC49;110E 1162 11AC;CC49;110E 1162 11AC; # (챉; 챉; 챉; 챉; 챉; ) HANGUL SYLLABLE CAENJ
+CC4A;CC4A;110E 1162 11AD;CC4A;110E 1162 11AD; # (챊; 챊; 챊; 챊; 챊; ) HANGUL SYLLABLE CAENH
+CC4B;CC4B;110E 1162 11AE;CC4B;110E 1162 11AE; # (챋; 챋; 챋; 챋; 챋; ) HANGUL SYLLABLE CAED
+CC4C;CC4C;110E 1162 11AF;CC4C;110E 1162 11AF; # (챌; 챌; 챌; 챌; 챌; ) HANGUL SYLLABLE CAEL
+CC4D;CC4D;110E 1162 11B0;CC4D;110E 1162 11B0; # (챍; 챍; 챍; 챍; 챍; ) HANGUL SYLLABLE CAELG
+CC4E;CC4E;110E 1162 11B1;CC4E;110E 1162 11B1; # (챎; 챎; 챎; 챎; 챎; ) HANGUL SYLLABLE CAELM
+CC4F;CC4F;110E 1162 11B2;CC4F;110E 1162 11B2; # (챏; 챏; 챏; 챏; 챏; ) HANGUL SYLLABLE CAELB
+CC50;CC50;110E 1162 11B3;CC50;110E 1162 11B3; # (챐; 챐; 챐; 챐; 챐; ) HANGUL SYLLABLE CAELS
+CC51;CC51;110E 1162 11B4;CC51;110E 1162 11B4; # (챑; 챑; 챑; 챑; 챑; ) HANGUL SYLLABLE CAELT
+CC52;CC52;110E 1162 11B5;CC52;110E 1162 11B5; # (챒; 챒; 챒; 챒; 챒; ) HANGUL SYLLABLE CAELP
+CC53;CC53;110E 1162 11B6;CC53;110E 1162 11B6; # (챓; 챓; 챓; 챓; 챓; ) HANGUL SYLLABLE CAELH
+CC54;CC54;110E 1162 11B7;CC54;110E 1162 11B7; # (챔; 챔; 챔; 챔; 챔; ) HANGUL SYLLABLE CAEM
+CC55;CC55;110E 1162 11B8;CC55;110E 1162 11B8; # (챕; 챕; 챕; 챕; 챕; ) HANGUL SYLLABLE CAEB
+CC56;CC56;110E 1162 11B9;CC56;110E 1162 11B9; # (챖; 챖; 챖; 챖; 챖; ) HANGUL SYLLABLE CAEBS
+CC57;CC57;110E 1162 11BA;CC57;110E 1162 11BA; # (챗; 챗; 챗; 챗; 챗; ) HANGUL SYLLABLE CAES
+CC58;CC58;110E 1162 11BB;CC58;110E 1162 11BB; # (챘; 챘; 챘; 챘; 챘; ) HANGUL SYLLABLE CAESS
+CC59;CC59;110E 1162 11BC;CC59;110E 1162 11BC; # (챙; 챙; 챙; 챙; 챙; ) HANGUL SYLLABLE CAENG
+CC5A;CC5A;110E 1162 11BD;CC5A;110E 1162 11BD; # (챚; 챚; 챚; 챚; 챚; ) HANGUL SYLLABLE CAEJ
+CC5B;CC5B;110E 1162 11BE;CC5B;110E 1162 11BE; # (챛; 챛; 챛; 챛; 챛; ) HANGUL SYLLABLE CAEC
+CC5C;CC5C;110E 1162 11BF;CC5C;110E 1162 11BF; # (챜; 챜; 챜; 챜; 챜; ) HANGUL SYLLABLE CAEK
+CC5D;CC5D;110E 1162 11C0;CC5D;110E 1162 11C0; # (챝; 챝; 챝; 챝; 챝; ) HANGUL SYLLABLE CAET
+CC5E;CC5E;110E 1162 11C1;CC5E;110E 1162 11C1; # (챞; 챞; 챞; 챞; 챞; ) HANGUL SYLLABLE CAEP
+CC5F;CC5F;110E 1162 11C2;CC5F;110E 1162 11C2; # (챟; 챟; 챟; 챟; 챟; ) HANGUL SYLLABLE CAEH
+CC60;CC60;110E 1163;CC60;110E 1163; # (챠; 챠; 챠; 챠; 챠; ) HANGUL SYLLABLE CYA
+CC61;CC61;110E 1163 11A8;CC61;110E 1163 11A8; # (챡; 챡; 챡; 챡; 챡; ) HANGUL SYLLABLE CYAG
+CC62;CC62;110E 1163 11A9;CC62;110E 1163 11A9; # (챢; 챢; 챢; 챢; 챢; ) HANGUL SYLLABLE CYAGG
+CC63;CC63;110E 1163 11AA;CC63;110E 1163 11AA; # (챣; 챣; 챣; 챣; 챣; ) HANGUL SYLLABLE CYAGS
+CC64;CC64;110E 1163 11AB;CC64;110E 1163 11AB; # (챤; 챤; 챤; 챤; 챤; ) HANGUL SYLLABLE CYAN
+CC65;CC65;110E 1163 11AC;CC65;110E 1163 11AC; # (챥; 챥; 챥; 챥; 챥; ) HANGUL SYLLABLE CYANJ
+CC66;CC66;110E 1163 11AD;CC66;110E 1163 11AD; # (챦; 챦; 챦; 챦; 챦; ) HANGUL SYLLABLE CYANH
+CC67;CC67;110E 1163 11AE;CC67;110E 1163 11AE; # (챧; 챧; 챧; 챧; 챧; ) HANGUL SYLLABLE CYAD
+CC68;CC68;110E 1163 11AF;CC68;110E 1163 11AF; # (챨; 챨; 챨; 챨; 챨; ) HANGUL SYLLABLE CYAL
+CC69;CC69;110E 1163 11B0;CC69;110E 1163 11B0; # (챩; 챩; 챩; 챩; 챩; ) HANGUL SYLLABLE CYALG
+CC6A;CC6A;110E 1163 11B1;CC6A;110E 1163 11B1; # (챪; 챪; 챪; 챪; 챪; ) HANGUL SYLLABLE CYALM
+CC6B;CC6B;110E 1163 11B2;CC6B;110E 1163 11B2; # (챫; 챫; 챫; 챫; 챫; ) HANGUL SYLLABLE CYALB
+CC6C;CC6C;110E 1163 11B3;CC6C;110E 1163 11B3; # (챬; 챬; 챬; 챬; 챬; ) HANGUL SYLLABLE CYALS
+CC6D;CC6D;110E 1163 11B4;CC6D;110E 1163 11B4; # (챭; 챭; 챭; 챭; 챭; ) HANGUL SYLLABLE CYALT
+CC6E;CC6E;110E 1163 11B5;CC6E;110E 1163 11B5; # (챮; 챮; 챮; 챮; 챮; ) HANGUL SYLLABLE CYALP
+CC6F;CC6F;110E 1163 11B6;CC6F;110E 1163 11B6; # (챯; 챯; 챯; 챯; 챯; ) HANGUL SYLLABLE CYALH
+CC70;CC70;110E 1163 11B7;CC70;110E 1163 11B7; # (챰; 챰; 챰; 챰; 챰; ) HANGUL SYLLABLE CYAM
+CC71;CC71;110E 1163 11B8;CC71;110E 1163 11B8; # (챱; 챱; 챱; 챱; 챱; ) HANGUL SYLLABLE CYAB
+CC72;CC72;110E 1163 11B9;CC72;110E 1163 11B9; # (챲; 챲; 챲; 챲; 챲; ) HANGUL SYLLABLE CYABS
+CC73;CC73;110E 1163 11BA;CC73;110E 1163 11BA; # (챳; 챳; 챳; 챳; 챳; ) HANGUL SYLLABLE CYAS
+CC74;CC74;110E 1163 11BB;CC74;110E 1163 11BB; # (챴; 챴; 챴; 챴; 챴; ) HANGUL SYLLABLE CYASS
+CC75;CC75;110E 1163 11BC;CC75;110E 1163 11BC; # (챵; 챵; 챵; 챵; 챵; ) HANGUL SYLLABLE CYANG
+CC76;CC76;110E 1163 11BD;CC76;110E 1163 11BD; # (챶; 챶; 챶; 챶; 챶; ) HANGUL SYLLABLE CYAJ
+CC77;CC77;110E 1163 11BE;CC77;110E 1163 11BE; # (챷; 챷; 챷; 챷; 챷; ) HANGUL SYLLABLE CYAC
+CC78;CC78;110E 1163 11BF;CC78;110E 1163 11BF; # (챸; 챸; 챸; 챸; 챸; ) HANGUL SYLLABLE CYAK
+CC79;CC79;110E 1163 11C0;CC79;110E 1163 11C0; # (챹; 챹; 챹; 챹; 챹; ) HANGUL SYLLABLE CYAT
+CC7A;CC7A;110E 1163 11C1;CC7A;110E 1163 11C1; # (챺; 챺; 챺; 챺; 챺; ) HANGUL SYLLABLE CYAP
+CC7B;CC7B;110E 1163 11C2;CC7B;110E 1163 11C2; # (챻; 챻; 챻; 챻; 챻; ) HANGUL SYLLABLE CYAH
+CC7C;CC7C;110E 1164;CC7C;110E 1164; # (챼; 챼; 챼; 챼; 챼; ) HANGUL SYLLABLE CYAE
+CC7D;CC7D;110E 1164 11A8;CC7D;110E 1164 11A8; # (챽; 챽; 챽; 챽; 챽; ) HANGUL SYLLABLE CYAEG
+CC7E;CC7E;110E 1164 11A9;CC7E;110E 1164 11A9; # (챾; 챾; 챾; 챾; 챾; ) HANGUL SYLLABLE CYAEGG
+CC7F;CC7F;110E 1164 11AA;CC7F;110E 1164 11AA; # (챿; 챿; 챿; 챿; 챿; ) HANGUL SYLLABLE CYAEGS
+CC80;CC80;110E 1164 11AB;CC80;110E 1164 11AB; # (첀; 첀; 첀; 첀; 첀; ) HANGUL SYLLABLE CYAEN
+CC81;CC81;110E 1164 11AC;CC81;110E 1164 11AC; # (첁; 첁; 첁; 첁; 첁; ) HANGUL SYLLABLE CYAENJ
+CC82;CC82;110E 1164 11AD;CC82;110E 1164 11AD; # (첂; 첂; 첂; 첂; 첂; ) HANGUL SYLLABLE CYAENH
+CC83;CC83;110E 1164 11AE;CC83;110E 1164 11AE; # (첃; 첃; 첃; 첃; 첃; ) HANGUL SYLLABLE CYAED
+CC84;CC84;110E 1164 11AF;CC84;110E 1164 11AF; # (첄; 첄; 첄; 첄; 첄; ) HANGUL SYLLABLE CYAEL
+CC85;CC85;110E 1164 11B0;CC85;110E 1164 11B0; # (첅; 첅; 첅; 첅; 첅; ) HANGUL SYLLABLE CYAELG
+CC86;CC86;110E 1164 11B1;CC86;110E 1164 11B1; # (첆; 첆; 첆; 첆; 첆; ) HANGUL SYLLABLE CYAELM
+CC87;CC87;110E 1164 11B2;CC87;110E 1164 11B2; # (첇; 첇; 첇; 첇; 첇; ) HANGUL SYLLABLE CYAELB
+CC88;CC88;110E 1164 11B3;CC88;110E 1164 11B3; # (첈; 첈; 첈; 첈; 첈; ) HANGUL SYLLABLE CYAELS
+CC89;CC89;110E 1164 11B4;CC89;110E 1164 11B4; # (첉; 첉; 첉; 첉; 첉; ) HANGUL SYLLABLE CYAELT
+CC8A;CC8A;110E 1164 11B5;CC8A;110E 1164 11B5; # (첊; 첊; 첊; 첊; 첊; ) HANGUL SYLLABLE CYAELP
+CC8B;CC8B;110E 1164 11B6;CC8B;110E 1164 11B6; # (첋; 첋; 첋; 첋; 첋; ) HANGUL SYLLABLE CYAELH
+CC8C;CC8C;110E 1164 11B7;CC8C;110E 1164 11B7; # (첌; 첌; 첌; 첌; 첌; ) HANGUL SYLLABLE CYAEM
+CC8D;CC8D;110E 1164 11B8;CC8D;110E 1164 11B8; # (첍; 첍; 첍; 첍; 첍; ) HANGUL SYLLABLE CYAEB
+CC8E;CC8E;110E 1164 11B9;CC8E;110E 1164 11B9; # (첎; 첎; 첎; 첎; 첎; ) HANGUL SYLLABLE CYAEBS
+CC8F;CC8F;110E 1164 11BA;CC8F;110E 1164 11BA; # (첏; 첏; 첏; 첏; 첏; ) HANGUL SYLLABLE CYAES
+CC90;CC90;110E 1164 11BB;CC90;110E 1164 11BB; # (첐; 첐; 첐; 첐; 첐; ) HANGUL SYLLABLE CYAESS
+CC91;CC91;110E 1164 11BC;CC91;110E 1164 11BC; # (첑; 첑; 첑; 첑; 첑; ) HANGUL SYLLABLE CYAENG
+CC92;CC92;110E 1164 11BD;CC92;110E 1164 11BD; # (첒; 첒; 첒; 첒; 첒; ) HANGUL SYLLABLE CYAEJ
+CC93;CC93;110E 1164 11BE;CC93;110E 1164 11BE; # (첓; 첓; 첓; 첓; 첓; ) HANGUL SYLLABLE CYAEC
+CC94;CC94;110E 1164 11BF;CC94;110E 1164 11BF; # (첔; 첔; 첔; 첔; 첔; ) HANGUL SYLLABLE CYAEK
+CC95;CC95;110E 1164 11C0;CC95;110E 1164 11C0; # (첕; 첕; 첕; 첕; 첕; ) HANGUL SYLLABLE CYAET
+CC96;CC96;110E 1164 11C1;CC96;110E 1164 11C1; # (첖; 첖; 첖; 첖; 첖; ) HANGUL SYLLABLE CYAEP
+CC97;CC97;110E 1164 11C2;CC97;110E 1164 11C2; # (첗; 첗; 첗; 첗; 첗; ) HANGUL SYLLABLE CYAEH
+CC98;CC98;110E 1165;CC98;110E 1165; # (처; 처; 처; 처; 처; ) HANGUL SYLLABLE CEO
+CC99;CC99;110E 1165 11A8;CC99;110E 1165 11A8; # (척; 척; 척; 척; 척; ) HANGUL SYLLABLE CEOG
+CC9A;CC9A;110E 1165 11A9;CC9A;110E 1165 11A9; # (첚; 첚; 첚; 첚; 첚; ) HANGUL SYLLABLE CEOGG
+CC9B;CC9B;110E 1165 11AA;CC9B;110E 1165 11AA; # (첛; 첛; 첛; 첛; 첛; ) HANGUL SYLLABLE CEOGS
+CC9C;CC9C;110E 1165 11AB;CC9C;110E 1165 11AB; # (천; 천; 천; 천; 천; ) HANGUL SYLLABLE CEON
+CC9D;CC9D;110E 1165 11AC;CC9D;110E 1165 11AC; # (첝; 첝; 첝; 첝; 첝; ) HANGUL SYLLABLE CEONJ
+CC9E;CC9E;110E 1165 11AD;CC9E;110E 1165 11AD; # (첞; 첞; 첞; 첞; 첞; ) HANGUL SYLLABLE CEONH
+CC9F;CC9F;110E 1165 11AE;CC9F;110E 1165 11AE; # (첟; 첟; 첟; 첟; 첟; ) HANGUL SYLLABLE CEOD
+CCA0;CCA0;110E 1165 11AF;CCA0;110E 1165 11AF; # (철; 철; 철; 철; 철; ) HANGUL SYLLABLE CEOL
+CCA1;CCA1;110E 1165 11B0;CCA1;110E 1165 11B0; # (첡; 첡; 첡; 첡; 첡; ) HANGUL SYLLABLE CEOLG
+CCA2;CCA2;110E 1165 11B1;CCA2;110E 1165 11B1; # (첢; 첢; 첢; 첢; 첢; ) HANGUL SYLLABLE CEOLM
+CCA3;CCA3;110E 1165 11B2;CCA3;110E 1165 11B2; # (첣; 첣; 첣; 첣; 첣; ) HANGUL SYLLABLE CEOLB
+CCA4;CCA4;110E 1165 11B3;CCA4;110E 1165 11B3; # (첤; 첤; 첤; 첤; 첤; ) HANGUL SYLLABLE CEOLS
+CCA5;CCA5;110E 1165 11B4;CCA5;110E 1165 11B4; # (첥; 첥; 첥; 첥; 첥; ) HANGUL SYLLABLE CEOLT
+CCA6;CCA6;110E 1165 11B5;CCA6;110E 1165 11B5; # (첦; 첦; 첦; 첦; 첦; ) HANGUL SYLLABLE CEOLP
+CCA7;CCA7;110E 1165 11B6;CCA7;110E 1165 11B6; # (첧; 첧; 첧; 첧; 첧; ) HANGUL SYLLABLE CEOLH
+CCA8;CCA8;110E 1165 11B7;CCA8;110E 1165 11B7; # (첨; 첨; 첨; 첨; 첨; ) HANGUL SYLLABLE CEOM
+CCA9;CCA9;110E 1165 11B8;CCA9;110E 1165 11B8; # (첩; 첩; 첩; 첩; 첩; ) HANGUL SYLLABLE CEOB
+CCAA;CCAA;110E 1165 11B9;CCAA;110E 1165 11B9; # (첪; 첪; 첪; 첪; 첪; ) HANGUL SYLLABLE CEOBS
+CCAB;CCAB;110E 1165 11BA;CCAB;110E 1165 11BA; # (첫; 첫; 첫; 첫; 첫; ) HANGUL SYLLABLE CEOS
+CCAC;CCAC;110E 1165 11BB;CCAC;110E 1165 11BB; # (첬; 첬; 첬; 첬; 첬; ) HANGUL SYLLABLE CEOSS
+CCAD;CCAD;110E 1165 11BC;CCAD;110E 1165 11BC; # (청; 청; 청; 청; 청; ) HANGUL SYLLABLE CEONG
+CCAE;CCAE;110E 1165 11BD;CCAE;110E 1165 11BD; # (첮; 첮; 첮; 첮; 첮; ) HANGUL SYLLABLE CEOJ
+CCAF;CCAF;110E 1165 11BE;CCAF;110E 1165 11BE; # (첯; 첯; 첯; 첯; 첯; ) HANGUL SYLLABLE CEOC
+CCB0;CCB0;110E 1165 11BF;CCB0;110E 1165 11BF; # (첰; 첰; 첰; 첰; 첰; ) HANGUL SYLLABLE CEOK
+CCB1;CCB1;110E 1165 11C0;CCB1;110E 1165 11C0; # (첱; 첱; 첱; 첱; 첱; ) HANGUL SYLLABLE CEOT
+CCB2;CCB2;110E 1165 11C1;CCB2;110E 1165 11C1; # (첲; 첲; 첲; 첲; 첲; ) HANGUL SYLLABLE CEOP
+CCB3;CCB3;110E 1165 11C2;CCB3;110E 1165 11C2; # (첳; 첳; 첳; 첳; 첳; ) HANGUL SYLLABLE CEOH
+CCB4;CCB4;110E 1166;CCB4;110E 1166; # (체; 체; 체; 체; 체; ) HANGUL SYLLABLE CE
+CCB5;CCB5;110E 1166 11A8;CCB5;110E 1166 11A8; # (첵; 첵; 첵; 첵; 첵; ) HANGUL SYLLABLE CEG
+CCB6;CCB6;110E 1166 11A9;CCB6;110E 1166 11A9; # (첶; 첶; 첶; 첶; 첶; ) HANGUL SYLLABLE CEGG
+CCB7;CCB7;110E 1166 11AA;CCB7;110E 1166 11AA; # (첷; 첷; 첷; 첷; 첷; ) HANGUL SYLLABLE CEGS
+CCB8;CCB8;110E 1166 11AB;CCB8;110E 1166 11AB; # (첸; 첸; 첸; 첸; 첸; ) HANGUL SYLLABLE CEN
+CCB9;CCB9;110E 1166 11AC;CCB9;110E 1166 11AC; # (첹; 첹; 첹; 첹; 첹; ) HANGUL SYLLABLE CENJ
+CCBA;CCBA;110E 1166 11AD;CCBA;110E 1166 11AD; # (첺; 첺; 첺; 첺; 첺; ) HANGUL SYLLABLE CENH
+CCBB;CCBB;110E 1166 11AE;CCBB;110E 1166 11AE; # (첻; 첻; 첻; 첻; 첻; ) HANGUL SYLLABLE CED
+CCBC;CCBC;110E 1166 11AF;CCBC;110E 1166 11AF; # (첼; 첼; 첼; 첼; 첼; ) HANGUL SYLLABLE CEL
+CCBD;CCBD;110E 1166 11B0;CCBD;110E 1166 11B0; # (첽; 첽; 첽; 첽; 첽; ) HANGUL SYLLABLE CELG
+CCBE;CCBE;110E 1166 11B1;CCBE;110E 1166 11B1; # (첾; 첾; 첾; 첾; 첾; ) HANGUL SYLLABLE CELM
+CCBF;CCBF;110E 1166 11B2;CCBF;110E 1166 11B2; # (첿; 첿; 첿; 첿; 첿; ) HANGUL SYLLABLE CELB
+CCC0;CCC0;110E 1166 11B3;CCC0;110E 1166 11B3; # (쳀; 쳀; 쳀; 쳀; 쳀; ) HANGUL SYLLABLE CELS
+CCC1;CCC1;110E 1166 11B4;CCC1;110E 1166 11B4; # (쳁; 쳁; 쳁; 쳁; 쳁; ) HANGUL SYLLABLE CELT
+CCC2;CCC2;110E 1166 11B5;CCC2;110E 1166 11B5; # (쳂; 쳂; 쳂; 쳂; 쳂; ) HANGUL SYLLABLE CELP
+CCC3;CCC3;110E 1166 11B6;CCC3;110E 1166 11B6; # (쳃; 쳃; 쳃; 쳃; 쳃; ) HANGUL SYLLABLE CELH
+CCC4;CCC4;110E 1166 11B7;CCC4;110E 1166 11B7; # (쳄; 쳄; 쳄; 쳄; 쳄; ) HANGUL SYLLABLE CEM
+CCC5;CCC5;110E 1166 11B8;CCC5;110E 1166 11B8; # (쳅; 쳅; 쳅; 쳅; 쳅; ) HANGUL SYLLABLE CEB
+CCC6;CCC6;110E 1166 11B9;CCC6;110E 1166 11B9; # (쳆; 쳆; 쳆; 쳆; 쳆; ) HANGUL SYLLABLE CEBS
+CCC7;CCC7;110E 1166 11BA;CCC7;110E 1166 11BA; # (쳇; 쳇; 쳇; 쳇; 쳇; ) HANGUL SYLLABLE CES
+CCC8;CCC8;110E 1166 11BB;CCC8;110E 1166 11BB; # (쳈; 쳈; 쳈; 쳈; 쳈; ) HANGUL SYLLABLE CESS
+CCC9;CCC9;110E 1166 11BC;CCC9;110E 1166 11BC; # (쳉; 쳉; 쳉; 쳉; 쳉; ) HANGUL SYLLABLE CENG
+CCCA;CCCA;110E 1166 11BD;CCCA;110E 1166 11BD; # (쳊; 쳊; 쳊; 쳊; 쳊; ) HANGUL SYLLABLE CEJ
+CCCB;CCCB;110E 1166 11BE;CCCB;110E 1166 11BE; # (쳋; 쳋; 쳋; 쳋; 쳋; ) HANGUL SYLLABLE CEC
+CCCC;CCCC;110E 1166 11BF;CCCC;110E 1166 11BF; # (쳌; 쳌; 쳌; 쳌; 쳌; ) HANGUL SYLLABLE CEK
+CCCD;CCCD;110E 1166 11C0;CCCD;110E 1166 11C0; # (쳍; 쳍; 쳍; 쳍; 쳍; ) HANGUL SYLLABLE CET
+CCCE;CCCE;110E 1166 11C1;CCCE;110E 1166 11C1; # (쳎; 쳎; 쳎; 쳎; 쳎; ) HANGUL SYLLABLE CEP
+CCCF;CCCF;110E 1166 11C2;CCCF;110E 1166 11C2; # (쳏; 쳏; 쳏; 쳏; 쳏; ) HANGUL SYLLABLE CEH
+CCD0;CCD0;110E 1167;CCD0;110E 1167; # (쳐; 쳐; 쳐; 쳐; 쳐; ) HANGUL SYLLABLE CYEO
+CCD1;CCD1;110E 1167 11A8;CCD1;110E 1167 11A8; # (쳑; 쳑; 쳑; 쳑; 쳑; ) HANGUL SYLLABLE CYEOG
+CCD2;CCD2;110E 1167 11A9;CCD2;110E 1167 11A9; # (쳒; 쳒; 쳒; 쳒; 쳒; ) HANGUL SYLLABLE CYEOGG
+CCD3;CCD3;110E 1167 11AA;CCD3;110E 1167 11AA; # (쳓; 쳓; 쳓; 쳓; 쳓; ) HANGUL SYLLABLE CYEOGS
+CCD4;CCD4;110E 1167 11AB;CCD4;110E 1167 11AB; # (쳔; 쳔; 쳔; 쳔; 쳔; ) HANGUL SYLLABLE CYEON
+CCD5;CCD5;110E 1167 11AC;CCD5;110E 1167 11AC; # (쳕; 쳕; 쳕; 쳕; 쳕; ) HANGUL SYLLABLE CYEONJ
+CCD6;CCD6;110E 1167 11AD;CCD6;110E 1167 11AD; # (쳖; 쳖; 쳖; 쳖; 쳖; ) HANGUL SYLLABLE CYEONH
+CCD7;CCD7;110E 1167 11AE;CCD7;110E 1167 11AE; # (쳗; 쳗; 쳗; 쳗; 쳗; ) HANGUL SYLLABLE CYEOD
+CCD8;CCD8;110E 1167 11AF;CCD8;110E 1167 11AF; # (쳘; 쳘; 쳘; 쳘; 쳘; ) HANGUL SYLLABLE CYEOL
+CCD9;CCD9;110E 1167 11B0;CCD9;110E 1167 11B0; # (쳙; 쳙; 쳙; 쳙; 쳙; ) HANGUL SYLLABLE CYEOLG
+CCDA;CCDA;110E 1167 11B1;CCDA;110E 1167 11B1; # (쳚; 쳚; 쳚; 쳚; 쳚; ) HANGUL SYLLABLE CYEOLM
+CCDB;CCDB;110E 1167 11B2;CCDB;110E 1167 11B2; # (쳛; 쳛; 쳛; 쳛; 쳛; ) HANGUL SYLLABLE CYEOLB
+CCDC;CCDC;110E 1167 11B3;CCDC;110E 1167 11B3; # (쳜; 쳜; 쳜; 쳜; 쳜; ) HANGUL SYLLABLE CYEOLS
+CCDD;CCDD;110E 1167 11B4;CCDD;110E 1167 11B4; # (쳝; 쳝; 쳝; 쳝; 쳝; ) HANGUL SYLLABLE CYEOLT
+CCDE;CCDE;110E 1167 11B5;CCDE;110E 1167 11B5; # (쳞; 쳞; 쳞; 쳞; 쳞; ) HANGUL SYLLABLE CYEOLP
+CCDF;CCDF;110E 1167 11B6;CCDF;110E 1167 11B6; # (쳟; 쳟; 쳟; 쳟; 쳟; ) HANGUL SYLLABLE CYEOLH
+CCE0;CCE0;110E 1167 11B7;CCE0;110E 1167 11B7; # (쳠; 쳠; 쳠; 쳠; 쳠; ) HANGUL SYLLABLE CYEOM
+CCE1;CCE1;110E 1167 11B8;CCE1;110E 1167 11B8; # (쳡; 쳡; 쳡; 쳡; 쳡; ) HANGUL SYLLABLE CYEOB
+CCE2;CCE2;110E 1167 11B9;CCE2;110E 1167 11B9; # (쳢; 쳢; 쳢; 쳢; 쳢; ) HANGUL SYLLABLE CYEOBS
+CCE3;CCE3;110E 1167 11BA;CCE3;110E 1167 11BA; # (쳣; 쳣; 쳣; 쳣; 쳣; ) HANGUL SYLLABLE CYEOS
+CCE4;CCE4;110E 1167 11BB;CCE4;110E 1167 11BB; # (쳤; 쳤; 쳤; 쳤; 쳤; ) HANGUL SYLLABLE CYEOSS
+CCE5;CCE5;110E 1167 11BC;CCE5;110E 1167 11BC; # (쳥; 쳥; 쳥; 쳥; 쳥; ) HANGUL SYLLABLE CYEONG
+CCE6;CCE6;110E 1167 11BD;CCE6;110E 1167 11BD; # (쳦; 쳦; 쳦; 쳦; 쳦; ) HANGUL SYLLABLE CYEOJ
+CCE7;CCE7;110E 1167 11BE;CCE7;110E 1167 11BE; # (쳧; 쳧; 쳧; 쳧; 쳧; ) HANGUL SYLLABLE CYEOC
+CCE8;CCE8;110E 1167 11BF;CCE8;110E 1167 11BF; # (쳨; 쳨; 쳨; 쳨; 쳨; ) HANGUL SYLLABLE CYEOK
+CCE9;CCE9;110E 1167 11C0;CCE9;110E 1167 11C0; # (쳩; 쳩; 쳩; 쳩; 쳩; ) HANGUL SYLLABLE CYEOT
+CCEA;CCEA;110E 1167 11C1;CCEA;110E 1167 11C1; # (쳪; 쳪; 쳪; 쳪; 쳪; ) HANGUL SYLLABLE CYEOP
+CCEB;CCEB;110E 1167 11C2;CCEB;110E 1167 11C2; # (쳫; 쳫; 쳫; 쳫; 쳫; ) HANGUL SYLLABLE CYEOH
+CCEC;CCEC;110E 1168;CCEC;110E 1168; # (쳬; 쳬; 쳬; 쳬; 쳬; ) HANGUL SYLLABLE CYE
+CCED;CCED;110E 1168 11A8;CCED;110E 1168 11A8; # (쳭; 쳭; 쳭; 쳭; 쳭; ) HANGUL SYLLABLE CYEG
+CCEE;CCEE;110E 1168 11A9;CCEE;110E 1168 11A9; # (쳮; 쳮; 쳮; 쳮; 쳮; ) HANGUL SYLLABLE CYEGG
+CCEF;CCEF;110E 1168 11AA;CCEF;110E 1168 11AA; # (쳯; 쳯; 쳯; 쳯; 쳯; ) HANGUL SYLLABLE CYEGS
+CCF0;CCF0;110E 1168 11AB;CCF0;110E 1168 11AB; # (쳰; 쳰; 쳰; 쳰; 쳰; ) HANGUL SYLLABLE CYEN
+CCF1;CCF1;110E 1168 11AC;CCF1;110E 1168 11AC; # (쳱; 쳱; 쳱; 쳱; 쳱; ) HANGUL SYLLABLE CYENJ
+CCF2;CCF2;110E 1168 11AD;CCF2;110E 1168 11AD; # (쳲; 쳲; 쳲; 쳲; 쳲; ) HANGUL SYLLABLE CYENH
+CCF3;CCF3;110E 1168 11AE;CCF3;110E 1168 11AE; # (쳳; 쳳; 쳳; 쳳; 쳳; ) HANGUL SYLLABLE CYED
+CCF4;CCF4;110E 1168 11AF;CCF4;110E 1168 11AF; # (쳴; 쳴; 쳴; 쳴; 쳴; ) HANGUL SYLLABLE CYEL
+CCF5;CCF5;110E 1168 11B0;CCF5;110E 1168 11B0; # (쳵; 쳵; 쳵; 쳵; 쳵; ) HANGUL SYLLABLE CYELG
+CCF6;CCF6;110E 1168 11B1;CCF6;110E 1168 11B1; # (쳶; 쳶; 쳶; 쳶; 쳶; ) HANGUL SYLLABLE CYELM
+CCF7;CCF7;110E 1168 11B2;CCF7;110E 1168 11B2; # (쳷; 쳷; 쳷; 쳷; 쳷; ) HANGUL SYLLABLE CYELB
+CCF8;CCF8;110E 1168 11B3;CCF8;110E 1168 11B3; # (쳸; 쳸; 쳸; 쳸; 쳸; ) HANGUL SYLLABLE CYELS
+CCF9;CCF9;110E 1168 11B4;CCF9;110E 1168 11B4; # (쳹; 쳹; 쳹; 쳹; 쳹; ) HANGUL SYLLABLE CYELT
+CCFA;CCFA;110E 1168 11B5;CCFA;110E 1168 11B5; # (쳺; 쳺; 쳺; 쳺; 쳺; ) HANGUL SYLLABLE CYELP
+CCFB;CCFB;110E 1168 11B6;CCFB;110E 1168 11B6; # (쳻; 쳻; 쳻; 쳻; 쳻; ) HANGUL SYLLABLE CYELH
+CCFC;CCFC;110E 1168 11B7;CCFC;110E 1168 11B7; # (쳼; 쳼; 쳼; 쳼; 쳼; ) HANGUL SYLLABLE CYEM
+CCFD;CCFD;110E 1168 11B8;CCFD;110E 1168 11B8; # (쳽; 쳽; 쳽; 쳽; 쳽; ) HANGUL SYLLABLE CYEB
+CCFE;CCFE;110E 1168 11B9;CCFE;110E 1168 11B9; # (쳾; 쳾; 쳾; 쳾; 쳾; ) HANGUL SYLLABLE CYEBS
+CCFF;CCFF;110E 1168 11BA;CCFF;110E 1168 11BA; # (쳿; 쳿; 쳿; 쳿; 쳿; ) HANGUL SYLLABLE CYES
+CD00;CD00;110E 1168 11BB;CD00;110E 1168 11BB; # (촀; 촀; 촀; 촀; 촀; ) HANGUL SYLLABLE CYESS
+CD01;CD01;110E 1168 11BC;CD01;110E 1168 11BC; # (촁; 촁; 촁; 촁; 촁; ) HANGUL SYLLABLE CYENG
+CD02;CD02;110E 1168 11BD;CD02;110E 1168 11BD; # (촂; 촂; 촂; 촂; 촂; ) HANGUL SYLLABLE CYEJ
+CD03;CD03;110E 1168 11BE;CD03;110E 1168 11BE; # (촃; 촃; 촃; 촃; 촃; ) HANGUL SYLLABLE CYEC
+CD04;CD04;110E 1168 11BF;CD04;110E 1168 11BF; # (촄; 촄; 촄; 촄; 촄; ) HANGUL SYLLABLE CYEK
+CD05;CD05;110E 1168 11C0;CD05;110E 1168 11C0; # (촅; 촅; 촅; 촅; 촅; ) HANGUL SYLLABLE CYET
+CD06;CD06;110E 1168 11C1;CD06;110E 1168 11C1; # (촆; 촆; 촆; 촆; 촆; ) HANGUL SYLLABLE CYEP
+CD07;CD07;110E 1168 11C2;CD07;110E 1168 11C2; # (촇; 촇; 촇; 촇; 촇; ) HANGUL SYLLABLE CYEH
+CD08;CD08;110E 1169;CD08;110E 1169; # (초; 초; 초; 초; 초; ) HANGUL SYLLABLE CO
+CD09;CD09;110E 1169 11A8;CD09;110E 1169 11A8; # (촉; 촉; 촉; 촉; 촉; ) HANGUL SYLLABLE COG
+CD0A;CD0A;110E 1169 11A9;CD0A;110E 1169 11A9; # (촊; 촊; 촊; 촊; 촊; ) HANGUL SYLLABLE COGG
+CD0B;CD0B;110E 1169 11AA;CD0B;110E 1169 11AA; # (촋; 촋; 촋; 촋; 촋; ) HANGUL SYLLABLE COGS
+CD0C;CD0C;110E 1169 11AB;CD0C;110E 1169 11AB; # (촌; 촌; 촌; 촌; 촌; ) HANGUL SYLLABLE CON
+CD0D;CD0D;110E 1169 11AC;CD0D;110E 1169 11AC; # (촍; 촍; 촍; 촍; 촍; ) HANGUL SYLLABLE CONJ
+CD0E;CD0E;110E 1169 11AD;CD0E;110E 1169 11AD; # (촎; 촎; 촎; 촎; 촎; ) HANGUL SYLLABLE CONH
+CD0F;CD0F;110E 1169 11AE;CD0F;110E 1169 11AE; # (촏; 촏; 촏; 촏; 촏; ) HANGUL SYLLABLE COD
+CD10;CD10;110E 1169 11AF;CD10;110E 1169 11AF; # (촐; 촐; 촐; 촐; 촐; ) HANGUL SYLLABLE COL
+CD11;CD11;110E 1169 11B0;CD11;110E 1169 11B0; # (촑; 촑; 촑; 촑; 촑; ) HANGUL SYLLABLE COLG
+CD12;CD12;110E 1169 11B1;CD12;110E 1169 11B1; # (촒; 촒; 촒; 촒; 촒; ) HANGUL SYLLABLE COLM
+CD13;CD13;110E 1169 11B2;CD13;110E 1169 11B2; # (촓; 촓; 촓; 촓; 촓; ) HANGUL SYLLABLE COLB
+CD14;CD14;110E 1169 11B3;CD14;110E 1169 11B3; # (촔; 촔; 촔; 촔; 촔; ) HANGUL SYLLABLE COLS
+CD15;CD15;110E 1169 11B4;CD15;110E 1169 11B4; # (촕; 촕; 촕; 촕; 촕; ) HANGUL SYLLABLE COLT
+CD16;CD16;110E 1169 11B5;CD16;110E 1169 11B5; # (촖; 촖; 촖; 촖; 촖; ) HANGUL SYLLABLE COLP
+CD17;CD17;110E 1169 11B6;CD17;110E 1169 11B6; # (촗; 촗; 촗; 촗; 촗; ) HANGUL SYLLABLE COLH
+CD18;CD18;110E 1169 11B7;CD18;110E 1169 11B7; # (촘; 촘; 촘; 촘; 촘; ) HANGUL SYLLABLE COM
+CD19;CD19;110E 1169 11B8;CD19;110E 1169 11B8; # (촙; 촙; 촙; 촙; 촙; ) HANGUL SYLLABLE COB
+CD1A;CD1A;110E 1169 11B9;CD1A;110E 1169 11B9; # (촚; 촚; 촚; 촚; 촚; ) HANGUL SYLLABLE COBS
+CD1B;CD1B;110E 1169 11BA;CD1B;110E 1169 11BA; # (촛; 촛; 촛; 촛; 촛; ) HANGUL SYLLABLE COS
+CD1C;CD1C;110E 1169 11BB;CD1C;110E 1169 11BB; # (촜; 촜; 촜; 촜; 촜; ) HANGUL SYLLABLE COSS
+CD1D;CD1D;110E 1169 11BC;CD1D;110E 1169 11BC; # (총; 총; 총; 총; 총; ) HANGUL SYLLABLE CONG
+CD1E;CD1E;110E 1169 11BD;CD1E;110E 1169 11BD; # (촞; 촞; 촞; 촞; 촞; ) HANGUL SYLLABLE COJ
+CD1F;CD1F;110E 1169 11BE;CD1F;110E 1169 11BE; # (촟; 촟; 촟; 촟; 촟; ) HANGUL SYLLABLE COC
+CD20;CD20;110E 1169 11BF;CD20;110E 1169 11BF; # (촠; 촠; 촠; 촠; 촠; ) HANGUL SYLLABLE COK
+CD21;CD21;110E 1169 11C0;CD21;110E 1169 11C0; # (촡; 촡; 촡; 촡; 촡; ) HANGUL SYLLABLE COT
+CD22;CD22;110E 1169 11C1;CD22;110E 1169 11C1; # (촢; 촢; 촢; 촢; 촢; ) HANGUL SYLLABLE COP
+CD23;CD23;110E 1169 11C2;CD23;110E 1169 11C2; # (촣; 촣; 촣; 촣; 촣; ) HANGUL SYLLABLE COH
+CD24;CD24;110E 116A;CD24;110E 116A; # (촤; 촤; 촤; 촤; 촤; ) HANGUL SYLLABLE CWA
+CD25;CD25;110E 116A 11A8;CD25;110E 116A 11A8; # (촥; 촥; 촥; 촥; 촥; ) HANGUL SYLLABLE CWAG
+CD26;CD26;110E 116A 11A9;CD26;110E 116A 11A9; # (촦; 촦; 촦; 촦; 촦; ) HANGUL SYLLABLE CWAGG
+CD27;CD27;110E 116A 11AA;CD27;110E 116A 11AA; # (촧; 촧; 촧; 촧; 촧; ) HANGUL SYLLABLE CWAGS
+CD28;CD28;110E 116A 11AB;CD28;110E 116A 11AB; # (촨; 촨; 촨; 촨; 촨; ) HANGUL SYLLABLE CWAN
+CD29;CD29;110E 116A 11AC;CD29;110E 116A 11AC; # (촩; 촩; 촩; 촩; 촩; ) HANGUL SYLLABLE CWANJ
+CD2A;CD2A;110E 116A 11AD;CD2A;110E 116A 11AD; # (촪; 촪; 촪; 촪; 촪; ) HANGUL SYLLABLE CWANH
+CD2B;CD2B;110E 116A 11AE;CD2B;110E 116A 11AE; # (촫; 촫; 촫; 촫; 촫; ) HANGUL SYLLABLE CWAD
+CD2C;CD2C;110E 116A 11AF;CD2C;110E 116A 11AF; # (촬; 촬; 촬; 촬; 촬; ) HANGUL SYLLABLE CWAL
+CD2D;CD2D;110E 116A 11B0;CD2D;110E 116A 11B0; # (촭; 촭; 촭; 촭; 촭; ) HANGUL SYLLABLE CWALG
+CD2E;CD2E;110E 116A 11B1;CD2E;110E 116A 11B1; # (촮; 촮; 촮; 촮; 촮; ) HANGUL SYLLABLE CWALM
+CD2F;CD2F;110E 116A 11B2;CD2F;110E 116A 11B2; # (촯; 촯; 촯; 촯; 촯; ) HANGUL SYLLABLE CWALB
+CD30;CD30;110E 116A 11B3;CD30;110E 116A 11B3; # (촰; 촰; 촰; 촰; 촰; ) HANGUL SYLLABLE CWALS
+CD31;CD31;110E 116A 11B4;CD31;110E 116A 11B4; # (촱; 촱; 촱; 촱; 촱; ) HANGUL SYLLABLE CWALT
+CD32;CD32;110E 116A 11B5;CD32;110E 116A 11B5; # (촲; 촲; 촲; 촲; 촲; ) HANGUL SYLLABLE CWALP
+CD33;CD33;110E 116A 11B6;CD33;110E 116A 11B6; # (촳; 촳; 촳; 촳; 촳; ) HANGUL SYLLABLE CWALH
+CD34;CD34;110E 116A 11B7;CD34;110E 116A 11B7; # (촴; 촴; 촴; 촴; 촴; ) HANGUL SYLLABLE CWAM
+CD35;CD35;110E 116A 11B8;CD35;110E 116A 11B8; # (촵; 촵; 촵; 촵; 촵; ) HANGUL SYLLABLE CWAB
+CD36;CD36;110E 116A 11B9;CD36;110E 116A 11B9; # (촶; 촶; 촶; 촶; 촶; ) HANGUL SYLLABLE CWABS
+CD37;CD37;110E 116A 11BA;CD37;110E 116A 11BA; # (촷; 촷; 촷; 촷; 촷; ) HANGUL SYLLABLE CWAS
+CD38;CD38;110E 116A 11BB;CD38;110E 116A 11BB; # (촸; 촸; 촸; 촸; 촸; ) HANGUL SYLLABLE CWASS
+CD39;CD39;110E 116A 11BC;CD39;110E 116A 11BC; # (촹; 촹; 촹; 촹; 촹; ) HANGUL SYLLABLE CWANG
+CD3A;CD3A;110E 116A 11BD;CD3A;110E 116A 11BD; # (촺; 촺; 촺; 촺; 촺; ) HANGUL SYLLABLE CWAJ
+CD3B;CD3B;110E 116A 11BE;CD3B;110E 116A 11BE; # (촻; 촻; 촻; 촻; 촻; ) HANGUL SYLLABLE CWAC
+CD3C;CD3C;110E 116A 11BF;CD3C;110E 116A 11BF; # (촼; 촼; 촼; 촼; 촼; ) HANGUL SYLLABLE CWAK
+CD3D;CD3D;110E 116A 11C0;CD3D;110E 116A 11C0; # (촽; 촽; 촽; 촽; 촽; ) HANGUL SYLLABLE CWAT
+CD3E;CD3E;110E 116A 11C1;CD3E;110E 116A 11C1; # (촾; 촾; 촾; 촾; 촾; ) HANGUL SYLLABLE CWAP
+CD3F;CD3F;110E 116A 11C2;CD3F;110E 116A 11C2; # (촿; 촿; 촿; 촿; 촿; ) HANGUL SYLLABLE CWAH
+CD40;CD40;110E 116B;CD40;110E 116B; # (쵀; 쵀; 쵀; 쵀; 쵀; ) HANGUL SYLLABLE CWAE
+CD41;CD41;110E 116B 11A8;CD41;110E 116B 11A8; # (쵁; 쵁; 쵁; 쵁; 쵁; ) HANGUL SYLLABLE CWAEG
+CD42;CD42;110E 116B 11A9;CD42;110E 116B 11A9; # (쵂; 쵂; 쵂; 쵂; 쵂; ) HANGUL SYLLABLE CWAEGG
+CD43;CD43;110E 116B 11AA;CD43;110E 116B 11AA; # (쵃; 쵃; 쵃; 쵃; 쵃; ) HANGUL SYLLABLE CWAEGS
+CD44;CD44;110E 116B 11AB;CD44;110E 116B 11AB; # (쵄; 쵄; 쵄; 쵄; 쵄; ) HANGUL SYLLABLE CWAEN
+CD45;CD45;110E 116B 11AC;CD45;110E 116B 11AC; # (쵅; 쵅; 쵅; 쵅; 쵅; ) HANGUL SYLLABLE CWAENJ
+CD46;CD46;110E 116B 11AD;CD46;110E 116B 11AD; # (쵆; 쵆; 쵆; 쵆; 쵆; ) HANGUL SYLLABLE CWAENH
+CD47;CD47;110E 116B 11AE;CD47;110E 116B 11AE; # (쵇; 쵇; 쵇; 쵇; 쵇; ) HANGUL SYLLABLE CWAED
+CD48;CD48;110E 116B 11AF;CD48;110E 116B 11AF; # (쵈; 쵈; 쵈; 쵈; 쵈; ) HANGUL SYLLABLE CWAEL
+CD49;CD49;110E 116B 11B0;CD49;110E 116B 11B0; # (쵉; 쵉; 쵉; 쵉; 쵉; ) HANGUL SYLLABLE CWAELG
+CD4A;CD4A;110E 116B 11B1;CD4A;110E 116B 11B1; # (쵊; 쵊; 쵊; 쵊; 쵊; ) HANGUL SYLLABLE CWAELM
+CD4B;CD4B;110E 116B 11B2;CD4B;110E 116B 11B2; # (쵋; 쵋; 쵋; 쵋; 쵋; ) HANGUL SYLLABLE CWAELB
+CD4C;CD4C;110E 116B 11B3;CD4C;110E 116B 11B3; # (쵌; 쵌; 쵌; 쵌; 쵌; ) HANGUL SYLLABLE CWAELS
+CD4D;CD4D;110E 116B 11B4;CD4D;110E 116B 11B4; # (쵍; 쵍; 쵍; 쵍; 쵍; ) HANGUL SYLLABLE CWAELT
+CD4E;CD4E;110E 116B 11B5;CD4E;110E 116B 11B5; # (쵎; 쵎; 쵎; 쵎; 쵎; ) HANGUL SYLLABLE CWAELP
+CD4F;CD4F;110E 116B 11B6;CD4F;110E 116B 11B6; # (쵏; 쵏; 쵏; 쵏; 쵏; ) HANGUL SYLLABLE CWAELH
+CD50;CD50;110E 116B 11B7;CD50;110E 116B 11B7; # (쵐; 쵐; 쵐; 쵐; 쵐; ) HANGUL SYLLABLE CWAEM
+CD51;CD51;110E 116B 11B8;CD51;110E 116B 11B8; # (쵑; 쵑; 쵑; 쵑; 쵑; ) HANGUL SYLLABLE CWAEB
+CD52;CD52;110E 116B 11B9;CD52;110E 116B 11B9; # (쵒; 쵒; 쵒; 쵒; 쵒; ) HANGUL SYLLABLE CWAEBS
+CD53;CD53;110E 116B 11BA;CD53;110E 116B 11BA; # (쵓; 쵓; 쵓; 쵓; 쵓; ) HANGUL SYLLABLE CWAES
+CD54;CD54;110E 116B 11BB;CD54;110E 116B 11BB; # (쵔; 쵔; 쵔; 쵔; 쵔; ) HANGUL SYLLABLE CWAESS
+CD55;CD55;110E 116B 11BC;CD55;110E 116B 11BC; # (쵕; 쵕; 쵕; 쵕; 쵕; ) HANGUL SYLLABLE CWAENG
+CD56;CD56;110E 116B 11BD;CD56;110E 116B 11BD; # (쵖; 쵖; 쵖; 쵖; 쵖; ) HANGUL SYLLABLE CWAEJ
+CD57;CD57;110E 116B 11BE;CD57;110E 116B 11BE; # (쵗; 쵗; 쵗; 쵗; 쵗; ) HANGUL SYLLABLE CWAEC
+CD58;CD58;110E 116B 11BF;CD58;110E 116B 11BF; # (쵘; 쵘; 쵘; 쵘; 쵘; ) HANGUL SYLLABLE CWAEK
+CD59;CD59;110E 116B 11C0;CD59;110E 116B 11C0; # (쵙; 쵙; 쵙; 쵙; 쵙; ) HANGUL SYLLABLE CWAET
+CD5A;CD5A;110E 116B 11C1;CD5A;110E 116B 11C1; # (쵚; 쵚; 쵚; 쵚; 쵚; ) HANGUL SYLLABLE CWAEP
+CD5B;CD5B;110E 116B 11C2;CD5B;110E 116B 11C2; # (쵛; 쵛; 쵛; 쵛; 쵛; ) HANGUL SYLLABLE CWAEH
+CD5C;CD5C;110E 116C;CD5C;110E 116C; # (최; 최; 최; 최; 최; ) HANGUL SYLLABLE COE
+CD5D;CD5D;110E 116C 11A8;CD5D;110E 116C 11A8; # (쵝; 쵝; 쵝; 쵝; 쵝; ) HANGUL SYLLABLE COEG
+CD5E;CD5E;110E 116C 11A9;CD5E;110E 116C 11A9; # (쵞; 쵞; 쵞; 쵞; 쵞; ) HANGUL SYLLABLE COEGG
+CD5F;CD5F;110E 116C 11AA;CD5F;110E 116C 11AA; # (쵟; 쵟; 쵟; 쵟; 쵟; ) HANGUL SYLLABLE COEGS
+CD60;CD60;110E 116C 11AB;CD60;110E 116C 11AB; # (쵠; 쵠; 쵠; 쵠; 쵠; ) HANGUL SYLLABLE COEN
+CD61;CD61;110E 116C 11AC;CD61;110E 116C 11AC; # (쵡; 쵡; 쵡; 쵡; 쵡; ) HANGUL SYLLABLE COENJ
+CD62;CD62;110E 116C 11AD;CD62;110E 116C 11AD; # (쵢; 쵢; 쵢; 쵢; 쵢; ) HANGUL SYLLABLE COENH
+CD63;CD63;110E 116C 11AE;CD63;110E 116C 11AE; # (쵣; 쵣; 쵣; 쵣; 쵣; ) HANGUL SYLLABLE COED
+CD64;CD64;110E 116C 11AF;CD64;110E 116C 11AF; # (쵤; 쵤; 쵤; 쵤; 쵤; ) HANGUL SYLLABLE COEL
+CD65;CD65;110E 116C 11B0;CD65;110E 116C 11B0; # (쵥; 쵥; 쵥; 쵥; 쵥; ) HANGUL SYLLABLE COELG
+CD66;CD66;110E 116C 11B1;CD66;110E 116C 11B1; # (쵦; 쵦; 쵦; 쵦; 쵦; ) HANGUL SYLLABLE COELM
+CD67;CD67;110E 116C 11B2;CD67;110E 116C 11B2; # (쵧; 쵧; 쵧; 쵧; 쵧; ) HANGUL SYLLABLE COELB
+CD68;CD68;110E 116C 11B3;CD68;110E 116C 11B3; # (쵨; 쵨; 쵨; 쵨; 쵨; ) HANGUL SYLLABLE COELS
+CD69;CD69;110E 116C 11B4;CD69;110E 116C 11B4; # (쵩; 쵩; 쵩; 쵩; 쵩; ) HANGUL SYLLABLE COELT
+CD6A;CD6A;110E 116C 11B5;CD6A;110E 116C 11B5; # (쵪; 쵪; 쵪; 쵪; 쵪; ) HANGUL SYLLABLE COELP
+CD6B;CD6B;110E 116C 11B6;CD6B;110E 116C 11B6; # (쵫; 쵫; 쵫; 쵫; 쵫; ) HANGUL SYLLABLE COELH
+CD6C;CD6C;110E 116C 11B7;CD6C;110E 116C 11B7; # (쵬; 쵬; 쵬; 쵬; 쵬; ) HANGUL SYLLABLE COEM
+CD6D;CD6D;110E 116C 11B8;CD6D;110E 116C 11B8; # (쵭; 쵭; 쵭; 쵭; 쵭; ) HANGUL SYLLABLE COEB
+CD6E;CD6E;110E 116C 11B9;CD6E;110E 116C 11B9; # (쵮; 쵮; 쵮; 쵮; 쵮; ) HANGUL SYLLABLE COEBS
+CD6F;CD6F;110E 116C 11BA;CD6F;110E 116C 11BA; # (쵯; 쵯; 쵯; 쵯; 쵯; ) HANGUL SYLLABLE COES
+CD70;CD70;110E 116C 11BB;CD70;110E 116C 11BB; # (쵰; 쵰; 쵰; 쵰; 쵰; ) HANGUL SYLLABLE COESS
+CD71;CD71;110E 116C 11BC;CD71;110E 116C 11BC; # (쵱; 쵱; 쵱; 쵱; 쵱; ) HANGUL SYLLABLE COENG
+CD72;CD72;110E 116C 11BD;CD72;110E 116C 11BD; # (쵲; 쵲; 쵲; 쵲; 쵲; ) HANGUL SYLLABLE COEJ
+CD73;CD73;110E 116C 11BE;CD73;110E 116C 11BE; # (쵳; 쵳; 쵳; 쵳; 쵳; ) HANGUL SYLLABLE COEC
+CD74;CD74;110E 116C 11BF;CD74;110E 116C 11BF; # (쵴; 쵴; 쵴; 쵴; 쵴; ) HANGUL SYLLABLE COEK
+CD75;CD75;110E 116C 11C0;CD75;110E 116C 11C0; # (쵵; 쵵; 쵵; 쵵; 쵵; ) HANGUL SYLLABLE COET
+CD76;CD76;110E 116C 11C1;CD76;110E 116C 11C1; # (쵶; 쵶; 쵶; 쵶; 쵶; ) HANGUL SYLLABLE COEP
+CD77;CD77;110E 116C 11C2;CD77;110E 116C 11C2; # (쵷; 쵷; 쵷; 쵷; 쵷; ) HANGUL SYLLABLE COEH
+CD78;CD78;110E 116D;CD78;110E 116D; # (쵸; 쵸; 쵸; 쵸; 쵸; ) HANGUL SYLLABLE CYO
+CD79;CD79;110E 116D 11A8;CD79;110E 116D 11A8; # (쵹; 쵹; 쵹; 쵹; 쵹; ) HANGUL SYLLABLE CYOG
+CD7A;CD7A;110E 116D 11A9;CD7A;110E 116D 11A9; # (쵺; 쵺; 쵺; 쵺; 쵺; ) HANGUL SYLLABLE CYOGG
+CD7B;CD7B;110E 116D 11AA;CD7B;110E 116D 11AA; # (쵻; 쵻; 쵻; 쵻; 쵻; ) HANGUL SYLLABLE CYOGS
+CD7C;CD7C;110E 116D 11AB;CD7C;110E 116D 11AB; # (쵼; 쵼; 쵼; 쵼; 쵼; ) HANGUL SYLLABLE CYON
+CD7D;CD7D;110E 116D 11AC;CD7D;110E 116D 11AC; # (쵽; 쵽; 쵽; 쵽; 쵽; ) HANGUL SYLLABLE CYONJ
+CD7E;CD7E;110E 116D 11AD;CD7E;110E 116D 11AD; # (쵾; 쵾; 쵾; 쵾; 쵾; ) HANGUL SYLLABLE CYONH
+CD7F;CD7F;110E 116D 11AE;CD7F;110E 116D 11AE; # (쵿; 쵿; 쵿; 쵿; 쵿; ) HANGUL SYLLABLE CYOD
+CD80;CD80;110E 116D 11AF;CD80;110E 116D 11AF; # (춀; 춀; 춀; 춀; 춀; ) HANGUL SYLLABLE CYOL
+CD81;CD81;110E 116D 11B0;CD81;110E 116D 11B0; # (춁; 춁; 춁; 춁; 춁; ) HANGUL SYLLABLE CYOLG
+CD82;CD82;110E 116D 11B1;CD82;110E 116D 11B1; # (춂; 춂; 춂; 춂; 춂; ) HANGUL SYLLABLE CYOLM
+CD83;CD83;110E 116D 11B2;CD83;110E 116D 11B2; # (춃; 춃; 춃; 춃; 춃; ) HANGUL SYLLABLE CYOLB
+CD84;CD84;110E 116D 11B3;CD84;110E 116D 11B3; # (춄; 춄; 춄; 춄; 춄; ) HANGUL SYLLABLE CYOLS
+CD85;CD85;110E 116D 11B4;CD85;110E 116D 11B4; # (춅; 춅; 춅; 춅; 춅; ) HANGUL SYLLABLE CYOLT
+CD86;CD86;110E 116D 11B5;CD86;110E 116D 11B5; # (춆; 춆; 춆; 춆; 춆; ) HANGUL SYLLABLE CYOLP
+CD87;CD87;110E 116D 11B6;CD87;110E 116D 11B6; # (춇; 춇; 춇; 춇; 춇; ) HANGUL SYLLABLE CYOLH
+CD88;CD88;110E 116D 11B7;CD88;110E 116D 11B7; # (춈; 춈; 춈; 춈; 춈; ) HANGUL SYLLABLE CYOM
+CD89;CD89;110E 116D 11B8;CD89;110E 116D 11B8; # (춉; 춉; 춉; 춉; 춉; ) HANGUL SYLLABLE CYOB
+CD8A;CD8A;110E 116D 11B9;CD8A;110E 116D 11B9; # (춊; 춊; 춊; 춊; 춊; ) HANGUL SYLLABLE CYOBS
+CD8B;CD8B;110E 116D 11BA;CD8B;110E 116D 11BA; # (춋; 춋; 춋; 춋; 춋; ) HANGUL SYLLABLE CYOS
+CD8C;CD8C;110E 116D 11BB;CD8C;110E 116D 11BB; # (춌; 춌; 춌; 춌; 춌; ) HANGUL SYLLABLE CYOSS
+CD8D;CD8D;110E 116D 11BC;CD8D;110E 116D 11BC; # (춍; 춍; 춍; 춍; 춍; ) HANGUL SYLLABLE CYONG
+CD8E;CD8E;110E 116D 11BD;CD8E;110E 116D 11BD; # (춎; 춎; 춎; 춎; 춎; ) HANGUL SYLLABLE CYOJ
+CD8F;CD8F;110E 116D 11BE;CD8F;110E 116D 11BE; # (춏; 춏; 춏; 춏; 춏; ) HANGUL SYLLABLE CYOC
+CD90;CD90;110E 116D 11BF;CD90;110E 116D 11BF; # (춐; 춐; 춐; 춐; 춐; ) HANGUL SYLLABLE CYOK
+CD91;CD91;110E 116D 11C0;CD91;110E 116D 11C0; # (춑; 춑; 춑; 춑; 춑; ) HANGUL SYLLABLE CYOT
+CD92;CD92;110E 116D 11C1;CD92;110E 116D 11C1; # (춒; 춒; 춒; 춒; 춒; ) HANGUL SYLLABLE CYOP
+CD93;CD93;110E 116D 11C2;CD93;110E 116D 11C2; # (춓; 춓; 춓; 춓; 춓; ) HANGUL SYLLABLE CYOH
+CD94;CD94;110E 116E;CD94;110E 116E; # (추; 추; 추; 추; 추; ) HANGUL SYLLABLE CU
+CD95;CD95;110E 116E 11A8;CD95;110E 116E 11A8; # (축; 축; 축; 축; 축; ) HANGUL SYLLABLE CUG
+CD96;CD96;110E 116E 11A9;CD96;110E 116E 11A9; # (춖; 춖; 춖; 춖; 춖; ) HANGUL SYLLABLE CUGG
+CD97;CD97;110E 116E 11AA;CD97;110E 116E 11AA; # (춗; 춗; 춗; 춗; 춗; ) HANGUL SYLLABLE CUGS
+CD98;CD98;110E 116E 11AB;CD98;110E 116E 11AB; # (춘; 춘; 춘; 춘; 춘; ) HANGUL SYLLABLE CUN
+CD99;CD99;110E 116E 11AC;CD99;110E 116E 11AC; # (춙; 춙; 춙; 춙; 춙; ) HANGUL SYLLABLE CUNJ
+CD9A;CD9A;110E 116E 11AD;CD9A;110E 116E 11AD; # (춚; 춚; 춚; 춚; 춚; ) HANGUL SYLLABLE CUNH
+CD9B;CD9B;110E 116E 11AE;CD9B;110E 116E 11AE; # (춛; 춛; 춛; 춛; 춛; ) HANGUL SYLLABLE CUD
+CD9C;CD9C;110E 116E 11AF;CD9C;110E 116E 11AF; # (출; 출; 출; 출; 출; ) HANGUL SYLLABLE CUL
+CD9D;CD9D;110E 116E 11B0;CD9D;110E 116E 11B0; # (춝; 춝; 춝; 춝; 춝; ) HANGUL SYLLABLE CULG
+CD9E;CD9E;110E 116E 11B1;CD9E;110E 116E 11B1; # (춞; 춞; 춞; 춞; 춞; ) HANGUL SYLLABLE CULM
+CD9F;CD9F;110E 116E 11B2;CD9F;110E 116E 11B2; # (춟; 춟; 춟; 춟; 춟; ) HANGUL SYLLABLE CULB
+CDA0;CDA0;110E 116E 11B3;CDA0;110E 116E 11B3; # (춠; 춠; 춠; 춠; 춠; ) HANGUL SYLLABLE CULS
+CDA1;CDA1;110E 116E 11B4;CDA1;110E 116E 11B4; # (춡; 춡; 춡; 춡; 춡; ) HANGUL SYLLABLE CULT
+CDA2;CDA2;110E 116E 11B5;CDA2;110E 116E 11B5; # (춢; 춢; 춢; 춢; 춢; ) HANGUL SYLLABLE CULP
+CDA3;CDA3;110E 116E 11B6;CDA3;110E 116E 11B6; # (춣; 춣; 춣; 춣; 춣; ) HANGUL SYLLABLE CULH
+CDA4;CDA4;110E 116E 11B7;CDA4;110E 116E 11B7; # (춤; 춤; 춤; 춤; 춤; ) HANGUL SYLLABLE CUM
+CDA5;CDA5;110E 116E 11B8;CDA5;110E 116E 11B8; # (춥; 춥; 춥; 춥; 춥; ) HANGUL SYLLABLE CUB
+CDA6;CDA6;110E 116E 11B9;CDA6;110E 116E 11B9; # (춦; 춦; 춦; 춦; 춦; ) HANGUL SYLLABLE CUBS
+CDA7;CDA7;110E 116E 11BA;CDA7;110E 116E 11BA; # (춧; 춧; 춧; 춧; 춧; ) HANGUL SYLLABLE CUS
+CDA8;CDA8;110E 116E 11BB;CDA8;110E 116E 11BB; # (춨; 춨; 춨; 춨; 춨; ) HANGUL SYLLABLE CUSS
+CDA9;CDA9;110E 116E 11BC;CDA9;110E 116E 11BC; # (충; 충; 충; 충; 충; ) HANGUL SYLLABLE CUNG
+CDAA;CDAA;110E 116E 11BD;CDAA;110E 116E 11BD; # (춪; 춪; 춪; 춪; 춪; ) HANGUL SYLLABLE CUJ
+CDAB;CDAB;110E 116E 11BE;CDAB;110E 116E 11BE; # (춫; 춫; 춫; 춫; 춫; ) HANGUL SYLLABLE CUC
+CDAC;CDAC;110E 116E 11BF;CDAC;110E 116E 11BF; # (춬; 춬; 춬; 춬; 춬; ) HANGUL SYLLABLE CUK
+CDAD;CDAD;110E 116E 11C0;CDAD;110E 116E 11C0; # (춭; 춭; 춭; 춭; 춭; ) HANGUL SYLLABLE CUT
+CDAE;CDAE;110E 116E 11C1;CDAE;110E 116E 11C1; # (춮; 춮; 춮; 춮; 춮; ) HANGUL SYLLABLE CUP
+CDAF;CDAF;110E 116E 11C2;CDAF;110E 116E 11C2; # (춯; 춯; 춯; 춯; 춯; ) HANGUL SYLLABLE CUH
+CDB0;CDB0;110E 116F;CDB0;110E 116F; # (춰; 춰; 춰; 춰; 춰; ) HANGUL SYLLABLE CWEO
+CDB1;CDB1;110E 116F 11A8;CDB1;110E 116F 11A8; # (춱; 춱; 춱; 춱; 춱; ) HANGUL SYLLABLE CWEOG
+CDB2;CDB2;110E 116F 11A9;CDB2;110E 116F 11A9; # (춲; 춲; 춲; 춲; 춲; ) HANGUL SYLLABLE CWEOGG
+CDB3;CDB3;110E 116F 11AA;CDB3;110E 116F 11AA; # (춳; 춳; 춳; 춳; 춳; ) HANGUL SYLLABLE CWEOGS
+CDB4;CDB4;110E 116F 11AB;CDB4;110E 116F 11AB; # (춴; 춴; 춴; 춴; 춴; ) HANGUL SYLLABLE CWEON
+CDB5;CDB5;110E 116F 11AC;CDB5;110E 116F 11AC; # (춵; 춵; 춵; 춵; 춵; ) HANGUL SYLLABLE CWEONJ
+CDB6;CDB6;110E 116F 11AD;CDB6;110E 116F 11AD; # (춶; 춶; 춶; 춶; 춶; ) HANGUL SYLLABLE CWEONH
+CDB7;CDB7;110E 116F 11AE;CDB7;110E 116F 11AE; # (춷; 춷; 춷; 춷; 춷; ) HANGUL SYLLABLE CWEOD
+CDB8;CDB8;110E 116F 11AF;CDB8;110E 116F 11AF; # (춸; 춸; 춸; 춸; 춸; ) HANGUL SYLLABLE CWEOL
+CDB9;CDB9;110E 116F 11B0;CDB9;110E 116F 11B0; # (춹; 춹; 춹; 춹; 춹; ) HANGUL SYLLABLE CWEOLG
+CDBA;CDBA;110E 116F 11B1;CDBA;110E 116F 11B1; # (춺; 춺; 춺; 춺; 춺; ) HANGUL SYLLABLE CWEOLM
+CDBB;CDBB;110E 116F 11B2;CDBB;110E 116F 11B2; # (춻; 춻; 춻; 춻; 춻; ) HANGUL SYLLABLE CWEOLB
+CDBC;CDBC;110E 116F 11B3;CDBC;110E 116F 11B3; # (춼; 춼; 춼; 춼; 춼; ) HANGUL SYLLABLE CWEOLS
+CDBD;CDBD;110E 116F 11B4;CDBD;110E 116F 11B4; # (춽; 춽; 춽; 춽; 춽; ) HANGUL SYLLABLE CWEOLT
+CDBE;CDBE;110E 116F 11B5;CDBE;110E 116F 11B5; # (춾; 춾; 춾; 춾; 춾; ) HANGUL SYLLABLE CWEOLP
+CDBF;CDBF;110E 116F 11B6;CDBF;110E 116F 11B6; # (춿; 춿; 춿; 춿; 춿; ) HANGUL SYLLABLE CWEOLH
+CDC0;CDC0;110E 116F 11B7;CDC0;110E 116F 11B7; # (췀; 췀; 췀; 췀; 췀; ) HANGUL SYLLABLE CWEOM
+CDC1;CDC1;110E 116F 11B8;CDC1;110E 116F 11B8; # (췁; 췁; 췁; 췁; 췁; ) HANGUL SYLLABLE CWEOB
+CDC2;CDC2;110E 116F 11B9;CDC2;110E 116F 11B9; # (췂; 췂; 췂; 췂; 췂; ) HANGUL SYLLABLE CWEOBS
+CDC3;CDC3;110E 116F 11BA;CDC3;110E 116F 11BA; # (췃; 췃; 췃; 췃; 췃; ) HANGUL SYLLABLE CWEOS
+CDC4;CDC4;110E 116F 11BB;CDC4;110E 116F 11BB; # (췄; 췄; 췄; 췄; 췄; ) HANGUL SYLLABLE CWEOSS
+CDC5;CDC5;110E 116F 11BC;CDC5;110E 116F 11BC; # (췅; 췅; 췅; 췅; 췅; ) HANGUL SYLLABLE CWEONG
+CDC6;CDC6;110E 116F 11BD;CDC6;110E 116F 11BD; # (췆; 췆; 췆; 췆; 췆; ) HANGUL SYLLABLE CWEOJ
+CDC7;CDC7;110E 116F 11BE;CDC7;110E 116F 11BE; # (췇; 췇; 췇; 췇; 췇; ) HANGUL SYLLABLE CWEOC
+CDC8;CDC8;110E 116F 11BF;CDC8;110E 116F 11BF; # (췈; 췈; 췈; 췈; 췈; ) HANGUL SYLLABLE CWEOK
+CDC9;CDC9;110E 116F 11C0;CDC9;110E 116F 11C0; # (췉; 췉; 췉; 췉; 췉; ) HANGUL SYLLABLE CWEOT
+CDCA;CDCA;110E 116F 11C1;CDCA;110E 116F 11C1; # (췊; 췊; 췊; 췊; 췊; ) HANGUL SYLLABLE CWEOP
+CDCB;CDCB;110E 116F 11C2;CDCB;110E 116F 11C2; # (췋; 췋; 췋; 췋; 췋; ) HANGUL SYLLABLE CWEOH
+CDCC;CDCC;110E 1170;CDCC;110E 1170; # (췌; 췌; 췌; 췌; 췌; ) HANGUL SYLLABLE CWE
+CDCD;CDCD;110E 1170 11A8;CDCD;110E 1170 11A8; # (췍; 췍; 췍; 췍; 췍; ) HANGUL SYLLABLE CWEG
+CDCE;CDCE;110E 1170 11A9;CDCE;110E 1170 11A9; # (췎; 췎; 췎; 췎; 췎; ) HANGUL SYLLABLE CWEGG
+CDCF;CDCF;110E 1170 11AA;CDCF;110E 1170 11AA; # (췏; 췏; 췏; 췏; 췏; ) HANGUL SYLLABLE CWEGS
+CDD0;CDD0;110E 1170 11AB;CDD0;110E 1170 11AB; # (췐; 췐; 췐; 췐; 췐; ) HANGUL SYLLABLE CWEN
+CDD1;CDD1;110E 1170 11AC;CDD1;110E 1170 11AC; # (췑; 췑; 췑; 췑; 췑; ) HANGUL SYLLABLE CWENJ
+CDD2;CDD2;110E 1170 11AD;CDD2;110E 1170 11AD; # (췒; 췒; 췒; 췒; 췒; ) HANGUL SYLLABLE CWENH
+CDD3;CDD3;110E 1170 11AE;CDD3;110E 1170 11AE; # (췓; 췓; 췓; 췓; 췓; ) HANGUL SYLLABLE CWED
+CDD4;CDD4;110E 1170 11AF;CDD4;110E 1170 11AF; # (췔; 췔; 췔; 췔; 췔; ) HANGUL SYLLABLE CWEL
+CDD5;CDD5;110E 1170 11B0;CDD5;110E 1170 11B0; # (췕; 췕; 췕; 췕; 췕; ) HANGUL SYLLABLE CWELG
+CDD6;CDD6;110E 1170 11B1;CDD6;110E 1170 11B1; # (췖; 췖; 췖; 췖; 췖; ) HANGUL SYLLABLE CWELM
+CDD7;CDD7;110E 1170 11B2;CDD7;110E 1170 11B2; # (췗; 췗; 췗; 췗; 췗; ) HANGUL SYLLABLE CWELB
+CDD8;CDD8;110E 1170 11B3;CDD8;110E 1170 11B3; # (췘; 췘; 췘; 췘; 췘; ) HANGUL SYLLABLE CWELS
+CDD9;CDD9;110E 1170 11B4;CDD9;110E 1170 11B4; # (췙; 췙; 췙; 췙; 췙; ) HANGUL SYLLABLE CWELT
+CDDA;CDDA;110E 1170 11B5;CDDA;110E 1170 11B5; # (췚; 췚; 췚; 췚; 췚; ) HANGUL SYLLABLE CWELP
+CDDB;CDDB;110E 1170 11B6;CDDB;110E 1170 11B6; # (췛; 췛; 췛; 췛; 췛; ) HANGUL SYLLABLE CWELH
+CDDC;CDDC;110E 1170 11B7;CDDC;110E 1170 11B7; # (췜; 췜; 췜; 췜; 췜; ) HANGUL SYLLABLE CWEM
+CDDD;CDDD;110E 1170 11B8;CDDD;110E 1170 11B8; # (췝; 췝; 췝; 췝; 췝; ) HANGUL SYLLABLE CWEB
+CDDE;CDDE;110E 1170 11B9;CDDE;110E 1170 11B9; # (췞; 췞; 췞; 췞; 췞; ) HANGUL SYLLABLE CWEBS
+CDDF;CDDF;110E 1170 11BA;CDDF;110E 1170 11BA; # (췟; 췟; 췟; 췟; 췟; ) HANGUL SYLLABLE CWES
+CDE0;CDE0;110E 1170 11BB;CDE0;110E 1170 11BB; # (췠; 췠; 췠; 췠; 췠; ) HANGUL SYLLABLE CWESS
+CDE1;CDE1;110E 1170 11BC;CDE1;110E 1170 11BC; # (췡; 췡; 췡; 췡; 췡; ) HANGUL SYLLABLE CWENG
+CDE2;CDE2;110E 1170 11BD;CDE2;110E 1170 11BD; # (췢; 췢; 췢; 췢; 췢; ) HANGUL SYLLABLE CWEJ
+CDE3;CDE3;110E 1170 11BE;CDE3;110E 1170 11BE; # (췣; 췣; 췣; 췣; 췣; ) HANGUL SYLLABLE CWEC
+CDE4;CDE4;110E 1170 11BF;CDE4;110E 1170 11BF; # (췤; 췤; 췤; 췤; 췤; ) HANGUL SYLLABLE CWEK
+CDE5;CDE5;110E 1170 11C0;CDE5;110E 1170 11C0; # (췥; 췥; 췥; 췥; 췥; ) HANGUL SYLLABLE CWET
+CDE6;CDE6;110E 1170 11C1;CDE6;110E 1170 11C1; # (췦; 췦; 췦; 췦; 췦; ) HANGUL SYLLABLE CWEP
+CDE7;CDE7;110E 1170 11C2;CDE7;110E 1170 11C2; # (췧; 췧; 췧; 췧; 췧; ) HANGUL SYLLABLE CWEH
+CDE8;CDE8;110E 1171;CDE8;110E 1171; # (취; 취; 취; 취; 취; ) HANGUL SYLLABLE CWI
+CDE9;CDE9;110E 1171 11A8;CDE9;110E 1171 11A8; # (췩; 췩; 췩; 췩; 췩; ) HANGUL SYLLABLE CWIG
+CDEA;CDEA;110E 1171 11A9;CDEA;110E 1171 11A9; # (췪; 췪; 췪; 췪; 췪; ) HANGUL SYLLABLE CWIGG
+CDEB;CDEB;110E 1171 11AA;CDEB;110E 1171 11AA; # (췫; 췫; 췫; 췫; 췫; ) HANGUL SYLLABLE CWIGS
+CDEC;CDEC;110E 1171 11AB;CDEC;110E 1171 11AB; # (췬; 췬; 췬; 췬; 췬; ) HANGUL SYLLABLE CWIN
+CDED;CDED;110E 1171 11AC;CDED;110E 1171 11AC; # (췭; 췭; 췭; 췭; 췭; ) HANGUL SYLLABLE CWINJ
+CDEE;CDEE;110E 1171 11AD;CDEE;110E 1171 11AD; # (췮; 췮; 췮; 췮; 췮; ) HANGUL SYLLABLE CWINH
+CDEF;CDEF;110E 1171 11AE;CDEF;110E 1171 11AE; # (췯; 췯; 췯; 췯; 췯; ) HANGUL SYLLABLE CWID
+CDF0;CDF0;110E 1171 11AF;CDF0;110E 1171 11AF; # (췰; 췰; 췰; 췰; 췰; ) HANGUL SYLLABLE CWIL
+CDF1;CDF1;110E 1171 11B0;CDF1;110E 1171 11B0; # (췱; 췱; 췱; 췱; 췱; ) HANGUL SYLLABLE CWILG
+CDF2;CDF2;110E 1171 11B1;CDF2;110E 1171 11B1; # (췲; 췲; 췲; 췲; 췲; ) HANGUL SYLLABLE CWILM
+CDF3;CDF3;110E 1171 11B2;CDF3;110E 1171 11B2; # (췳; 췳; 췳; 췳; 췳; ) HANGUL SYLLABLE CWILB
+CDF4;CDF4;110E 1171 11B3;CDF4;110E 1171 11B3; # (췴; 췴; 췴; 췴; 췴; ) HANGUL SYLLABLE CWILS
+CDF5;CDF5;110E 1171 11B4;CDF5;110E 1171 11B4; # (췵; 췵; 췵; 췵; 췵; ) HANGUL SYLLABLE CWILT
+CDF6;CDF6;110E 1171 11B5;CDF6;110E 1171 11B5; # (췶; 췶; 췶; 췶; 췶; ) HANGUL SYLLABLE CWILP
+CDF7;CDF7;110E 1171 11B6;CDF7;110E 1171 11B6; # (췷; 췷; 췷; 췷; 췷; ) HANGUL SYLLABLE CWILH
+CDF8;CDF8;110E 1171 11B7;CDF8;110E 1171 11B7; # (췸; 췸; 췸; 췸; 췸; ) HANGUL SYLLABLE CWIM
+CDF9;CDF9;110E 1171 11B8;CDF9;110E 1171 11B8; # (췹; 췹; 췹; 췹; 췹; ) HANGUL SYLLABLE CWIB
+CDFA;CDFA;110E 1171 11B9;CDFA;110E 1171 11B9; # (췺; 췺; 췺; 췺; 췺; ) HANGUL SYLLABLE CWIBS
+CDFB;CDFB;110E 1171 11BA;CDFB;110E 1171 11BA; # (췻; 췻; 췻; 췻; 췻; ) HANGUL SYLLABLE CWIS
+CDFC;CDFC;110E 1171 11BB;CDFC;110E 1171 11BB; # (췼; 췼; 췼; 췼; 췼; ) HANGUL SYLLABLE CWISS
+CDFD;CDFD;110E 1171 11BC;CDFD;110E 1171 11BC; # (췽; 췽; 췽; 췽; 췽; ) HANGUL SYLLABLE CWING
+CDFE;CDFE;110E 1171 11BD;CDFE;110E 1171 11BD; # (췾; 췾; 췾; 췾; 췾; ) HANGUL SYLLABLE CWIJ
+CDFF;CDFF;110E 1171 11BE;CDFF;110E 1171 11BE; # (췿; 췿; 췿; 췿; 췿; ) HANGUL SYLLABLE CWIC
+CE00;CE00;110E 1171 11BF;CE00;110E 1171 11BF; # (츀; 츀; 츀; 츀; 츀; ) HANGUL SYLLABLE CWIK
+CE01;CE01;110E 1171 11C0;CE01;110E 1171 11C0; # (츁; 츁; 츁; 츁; 츁; ) HANGUL SYLLABLE CWIT
+CE02;CE02;110E 1171 11C1;CE02;110E 1171 11C1; # (츂; 츂; 츂; 츂; 츂; ) HANGUL SYLLABLE CWIP
+CE03;CE03;110E 1171 11C2;CE03;110E 1171 11C2; # (츃; 츃; 츃; 츃; 츃; ) HANGUL SYLLABLE CWIH
+CE04;CE04;110E 1172;CE04;110E 1172; # (츄; 츄; 츄; 츄; 츄; ) HANGUL SYLLABLE CYU
+CE05;CE05;110E 1172 11A8;CE05;110E 1172 11A8; # (츅; 츅; 츅; 츅; 츅; ) HANGUL SYLLABLE CYUG
+CE06;CE06;110E 1172 11A9;CE06;110E 1172 11A9; # (츆; 츆; 츆; 츆; 츆; ) HANGUL SYLLABLE CYUGG
+CE07;CE07;110E 1172 11AA;CE07;110E 1172 11AA; # (츇; 츇; 츇; 츇; 츇; ) HANGUL SYLLABLE CYUGS
+CE08;CE08;110E 1172 11AB;CE08;110E 1172 11AB; # (츈; 츈; 츈; 츈; 츈; ) HANGUL SYLLABLE CYUN
+CE09;CE09;110E 1172 11AC;CE09;110E 1172 11AC; # (츉; 츉; 츉; 츉; 츉; ) HANGUL SYLLABLE CYUNJ
+CE0A;CE0A;110E 1172 11AD;CE0A;110E 1172 11AD; # (츊; 츊; 츊; 츊; 츊; ) HANGUL SYLLABLE CYUNH
+CE0B;CE0B;110E 1172 11AE;CE0B;110E 1172 11AE; # (츋; 츋; 츋; 츋; 츋; ) HANGUL SYLLABLE CYUD
+CE0C;CE0C;110E 1172 11AF;CE0C;110E 1172 11AF; # (츌; 츌; 츌; 츌; 츌; ) HANGUL SYLLABLE CYUL
+CE0D;CE0D;110E 1172 11B0;CE0D;110E 1172 11B0; # (츍; 츍; 츍; 츍; 츍; ) HANGUL SYLLABLE CYULG
+CE0E;CE0E;110E 1172 11B1;CE0E;110E 1172 11B1; # (츎; 츎; 츎; 츎; 츎; ) HANGUL SYLLABLE CYULM
+CE0F;CE0F;110E 1172 11B2;CE0F;110E 1172 11B2; # (츏; 츏; 츏; 츏; 츏; ) HANGUL SYLLABLE CYULB
+CE10;CE10;110E 1172 11B3;CE10;110E 1172 11B3; # (츐; 츐; 츐; 츐; 츐; ) HANGUL SYLLABLE CYULS
+CE11;CE11;110E 1172 11B4;CE11;110E 1172 11B4; # (츑; 츑; 츑; 츑; 츑; ) HANGUL SYLLABLE CYULT
+CE12;CE12;110E 1172 11B5;CE12;110E 1172 11B5; # (츒; 츒; 츒; 츒; 츒; ) HANGUL SYLLABLE CYULP
+CE13;CE13;110E 1172 11B6;CE13;110E 1172 11B6; # (츓; 츓; 츓; 츓; 츓; ) HANGUL SYLLABLE CYULH
+CE14;CE14;110E 1172 11B7;CE14;110E 1172 11B7; # (츔; 츔; 츔; 츔; 츔; ) HANGUL SYLLABLE CYUM
+CE15;CE15;110E 1172 11B8;CE15;110E 1172 11B8; # (츕; 츕; 츕; 츕; 츕; ) HANGUL SYLLABLE CYUB
+CE16;CE16;110E 1172 11B9;CE16;110E 1172 11B9; # (츖; 츖; 츖; 츖; 츖; ) HANGUL SYLLABLE CYUBS
+CE17;CE17;110E 1172 11BA;CE17;110E 1172 11BA; # (츗; 츗; 츗; 츗; 츗; ) HANGUL SYLLABLE CYUS
+CE18;CE18;110E 1172 11BB;CE18;110E 1172 11BB; # (츘; 츘; 츘; 츘; 츘; ) HANGUL SYLLABLE CYUSS
+CE19;CE19;110E 1172 11BC;CE19;110E 1172 11BC; # (츙; 츙; 츙; 츙; 츙; ) HANGUL SYLLABLE CYUNG
+CE1A;CE1A;110E 1172 11BD;CE1A;110E 1172 11BD; # (츚; 츚; 츚; 츚; 츚; ) HANGUL SYLLABLE CYUJ
+CE1B;CE1B;110E 1172 11BE;CE1B;110E 1172 11BE; # (츛; 츛; 츛; 츛; 츛; ) HANGUL SYLLABLE CYUC
+CE1C;CE1C;110E 1172 11BF;CE1C;110E 1172 11BF; # (츜; 츜; 츜; 츜; 츜; ) HANGUL SYLLABLE CYUK
+CE1D;CE1D;110E 1172 11C0;CE1D;110E 1172 11C0; # (츝; 츝; 츝; 츝; 츝; ) HANGUL SYLLABLE CYUT
+CE1E;CE1E;110E 1172 11C1;CE1E;110E 1172 11C1; # (츞; 츞; 츞; 츞; 츞; ) HANGUL SYLLABLE CYUP
+CE1F;CE1F;110E 1172 11C2;CE1F;110E 1172 11C2; # (츟; 츟; 츟; 츟; 츟; ) HANGUL SYLLABLE CYUH
+CE20;CE20;110E 1173;CE20;110E 1173; # (츠; 츠; 츠; 츠; 츠; ) HANGUL SYLLABLE CEU
+CE21;CE21;110E 1173 11A8;CE21;110E 1173 11A8; # (측; 측; 측; 측; 측; ) HANGUL SYLLABLE CEUG
+CE22;CE22;110E 1173 11A9;CE22;110E 1173 11A9; # (츢; 츢; 츢; 츢; 츢; ) HANGUL SYLLABLE CEUGG
+CE23;CE23;110E 1173 11AA;CE23;110E 1173 11AA; # (츣; 츣; 츣; 츣; 츣; ) HANGUL SYLLABLE CEUGS
+CE24;CE24;110E 1173 11AB;CE24;110E 1173 11AB; # (츤; 츤; 츤; 츤; 츤; ) HANGUL SYLLABLE CEUN
+CE25;CE25;110E 1173 11AC;CE25;110E 1173 11AC; # (츥; 츥; 츥; 츥; 츥; ) HANGUL SYLLABLE CEUNJ
+CE26;CE26;110E 1173 11AD;CE26;110E 1173 11AD; # (츦; 츦; 츦; 츦; 츦; ) HANGUL SYLLABLE CEUNH
+CE27;CE27;110E 1173 11AE;CE27;110E 1173 11AE; # (츧; 츧; 츧; 츧; 츧; ) HANGUL SYLLABLE CEUD
+CE28;CE28;110E 1173 11AF;CE28;110E 1173 11AF; # (츨; 츨; 츨; 츨; 츨; ) HANGUL SYLLABLE CEUL
+CE29;CE29;110E 1173 11B0;CE29;110E 1173 11B0; # (츩; 츩; 츩; 츩; 츩; ) HANGUL SYLLABLE CEULG
+CE2A;CE2A;110E 1173 11B1;CE2A;110E 1173 11B1; # (츪; 츪; 츪; 츪; 츪; ) HANGUL SYLLABLE CEULM
+CE2B;CE2B;110E 1173 11B2;CE2B;110E 1173 11B2; # (츫; 츫; 츫; 츫; 츫; ) HANGUL SYLLABLE CEULB
+CE2C;CE2C;110E 1173 11B3;CE2C;110E 1173 11B3; # (츬; 츬; 츬; 츬; 츬; ) HANGUL SYLLABLE CEULS
+CE2D;CE2D;110E 1173 11B4;CE2D;110E 1173 11B4; # (츭; 츭; 츭; 츭; 츭; ) HANGUL SYLLABLE CEULT
+CE2E;CE2E;110E 1173 11B5;CE2E;110E 1173 11B5; # (츮; 츮; 츮; 츮; 츮; ) HANGUL SYLLABLE CEULP
+CE2F;CE2F;110E 1173 11B6;CE2F;110E 1173 11B6; # (츯; 츯; 츯; 츯; 츯; ) HANGUL SYLLABLE CEULH
+CE30;CE30;110E 1173 11B7;CE30;110E 1173 11B7; # (츰; 츰; 츰; 츰; 츰; ) HANGUL SYLLABLE CEUM
+CE31;CE31;110E 1173 11B8;CE31;110E 1173 11B8; # (츱; 츱; 츱; 츱; 츱; ) HANGUL SYLLABLE CEUB
+CE32;CE32;110E 1173 11B9;CE32;110E 1173 11B9; # (츲; 츲; 츲; 츲; 츲; ) HANGUL SYLLABLE CEUBS
+CE33;CE33;110E 1173 11BA;CE33;110E 1173 11BA; # (츳; 츳; 츳; 츳; 츳; ) HANGUL SYLLABLE CEUS
+CE34;CE34;110E 1173 11BB;CE34;110E 1173 11BB; # (츴; 츴; 츴; 츴; 츴; ) HANGUL SYLLABLE CEUSS
+CE35;CE35;110E 1173 11BC;CE35;110E 1173 11BC; # (층; 층; 층; 층; 층; ) HANGUL SYLLABLE CEUNG
+CE36;CE36;110E 1173 11BD;CE36;110E 1173 11BD; # (츶; 츶; 츶; 츶; 츶; ) HANGUL SYLLABLE CEUJ
+CE37;CE37;110E 1173 11BE;CE37;110E 1173 11BE; # (츷; 츷; 츷; 츷; 츷; ) HANGUL SYLLABLE CEUC
+CE38;CE38;110E 1173 11BF;CE38;110E 1173 11BF; # (츸; 츸; 츸; 츸; 츸; ) HANGUL SYLLABLE CEUK
+CE39;CE39;110E 1173 11C0;CE39;110E 1173 11C0; # (츹; 츹; 츹; 츹; 츹; ) HANGUL SYLLABLE CEUT
+CE3A;CE3A;110E 1173 11C1;CE3A;110E 1173 11C1; # (츺; 츺; 츺; 츺; 츺; ) HANGUL SYLLABLE CEUP
+CE3B;CE3B;110E 1173 11C2;CE3B;110E 1173 11C2; # (츻; 츻; 츻; 츻; 츻; ) HANGUL SYLLABLE CEUH
+CE3C;CE3C;110E 1174;CE3C;110E 1174; # (츼; 츼; 츼; 츼; 츼; ) HANGUL SYLLABLE CYI
+CE3D;CE3D;110E 1174 11A8;CE3D;110E 1174 11A8; # (츽; 츽; 츽; 츽; 츽; ) HANGUL SYLLABLE CYIG
+CE3E;CE3E;110E 1174 11A9;CE3E;110E 1174 11A9; # (츾; 츾; 츾; 츾; 츾; ) HANGUL SYLLABLE CYIGG
+CE3F;CE3F;110E 1174 11AA;CE3F;110E 1174 11AA; # (츿; 츿; 츿; 츿; 츿; ) HANGUL SYLLABLE CYIGS
+CE40;CE40;110E 1174 11AB;CE40;110E 1174 11AB; # (칀; 칀; 칀; 칀; 칀; ) HANGUL SYLLABLE CYIN
+CE41;CE41;110E 1174 11AC;CE41;110E 1174 11AC; # (칁; 칁; 칁; 칁; 칁; ) HANGUL SYLLABLE CYINJ
+CE42;CE42;110E 1174 11AD;CE42;110E 1174 11AD; # (칂; 칂; 칂; 칂; 칂; ) HANGUL SYLLABLE CYINH
+CE43;CE43;110E 1174 11AE;CE43;110E 1174 11AE; # (칃; 칃; 칃; 칃; 칃; ) HANGUL SYLLABLE CYID
+CE44;CE44;110E 1174 11AF;CE44;110E 1174 11AF; # (칄; 칄; 칄; 칄; 칄; ) HANGUL SYLLABLE CYIL
+CE45;CE45;110E 1174 11B0;CE45;110E 1174 11B0; # (칅; 칅; 칅; 칅; 칅; ) HANGUL SYLLABLE CYILG
+CE46;CE46;110E 1174 11B1;CE46;110E 1174 11B1; # (칆; 칆; 칆; 칆; 칆; ) HANGUL SYLLABLE CYILM
+CE47;CE47;110E 1174 11B2;CE47;110E 1174 11B2; # (칇; 칇; 칇; 칇; 칇; ) HANGUL SYLLABLE CYILB
+CE48;CE48;110E 1174 11B3;CE48;110E 1174 11B3; # (칈; 칈; 칈; 칈; 칈; ) HANGUL SYLLABLE CYILS
+CE49;CE49;110E 1174 11B4;CE49;110E 1174 11B4; # (칉; 칉; 칉; 칉; 칉; ) HANGUL SYLLABLE CYILT
+CE4A;CE4A;110E 1174 11B5;CE4A;110E 1174 11B5; # (칊; 칊; 칊; 칊; 칊; ) HANGUL SYLLABLE CYILP
+CE4B;CE4B;110E 1174 11B6;CE4B;110E 1174 11B6; # (칋; 칋; 칋; 칋; 칋; ) HANGUL SYLLABLE CYILH
+CE4C;CE4C;110E 1174 11B7;CE4C;110E 1174 11B7; # (칌; 칌; 칌; 칌; 칌; ) HANGUL SYLLABLE CYIM
+CE4D;CE4D;110E 1174 11B8;CE4D;110E 1174 11B8; # (칍; 칍; 칍; 칍; 칍; ) HANGUL SYLLABLE CYIB
+CE4E;CE4E;110E 1174 11B9;CE4E;110E 1174 11B9; # (칎; 칎; 칎; 칎; 칎; ) HANGUL SYLLABLE CYIBS
+CE4F;CE4F;110E 1174 11BA;CE4F;110E 1174 11BA; # (칏; 칏; 칏; 칏; 칏; ) HANGUL SYLLABLE CYIS
+CE50;CE50;110E 1174 11BB;CE50;110E 1174 11BB; # (칐; 칐; 칐; 칐; 칐; ) HANGUL SYLLABLE CYISS
+CE51;CE51;110E 1174 11BC;CE51;110E 1174 11BC; # (칑; 칑; 칑; 칑; 칑; ) HANGUL SYLLABLE CYING
+CE52;CE52;110E 1174 11BD;CE52;110E 1174 11BD; # (칒; 칒; 칒; 칒; 칒; ) HANGUL SYLLABLE CYIJ
+CE53;CE53;110E 1174 11BE;CE53;110E 1174 11BE; # (칓; 칓; 칓; 칓; 칓; ) HANGUL SYLLABLE CYIC
+CE54;CE54;110E 1174 11BF;CE54;110E 1174 11BF; # (칔; 칔; 칔; 칔; 칔; ) HANGUL SYLLABLE CYIK
+CE55;CE55;110E 1174 11C0;CE55;110E 1174 11C0; # (칕; 칕; 칕; 칕; 칕; ) HANGUL SYLLABLE CYIT
+CE56;CE56;110E 1174 11C1;CE56;110E 1174 11C1; # (칖; 칖; 칖; 칖; 칖; ) HANGUL SYLLABLE CYIP
+CE57;CE57;110E 1174 11C2;CE57;110E 1174 11C2; # (칗; 칗; 칗; 칗; 칗; ) HANGUL SYLLABLE CYIH
+CE58;CE58;110E 1175;CE58;110E 1175; # (치; 치; 치; 치; 치; ) HANGUL SYLLABLE CI
+CE59;CE59;110E 1175 11A8;CE59;110E 1175 11A8; # (칙; 칙; 칙; 칙; 칙; ) HANGUL SYLLABLE CIG
+CE5A;CE5A;110E 1175 11A9;CE5A;110E 1175 11A9; # (칚; 칚; 칚; 칚; 칚; ) HANGUL SYLLABLE CIGG
+CE5B;CE5B;110E 1175 11AA;CE5B;110E 1175 11AA; # (칛; 칛; 칛; 칛; 칛; ) HANGUL SYLLABLE CIGS
+CE5C;CE5C;110E 1175 11AB;CE5C;110E 1175 11AB; # (친; 친; 친; 친; 친; ) HANGUL SYLLABLE CIN
+CE5D;CE5D;110E 1175 11AC;CE5D;110E 1175 11AC; # (칝; 칝; 칝; 칝; 칝; ) HANGUL SYLLABLE CINJ
+CE5E;CE5E;110E 1175 11AD;CE5E;110E 1175 11AD; # (칞; 칞; 칞; 칞; 칞; ) HANGUL SYLLABLE CINH
+CE5F;CE5F;110E 1175 11AE;CE5F;110E 1175 11AE; # (칟; 칟; 칟; 칟; 칟; ) HANGUL SYLLABLE CID
+CE60;CE60;110E 1175 11AF;CE60;110E 1175 11AF; # (칠; 칠; 칠; 칠; 칠; ) HANGUL SYLLABLE CIL
+CE61;CE61;110E 1175 11B0;CE61;110E 1175 11B0; # (칡; 칡; 칡; 칡; 칡; ) HANGUL SYLLABLE CILG
+CE62;CE62;110E 1175 11B1;CE62;110E 1175 11B1; # (칢; 칢; 칢; 칢; 칢; ) HANGUL SYLLABLE CILM
+CE63;CE63;110E 1175 11B2;CE63;110E 1175 11B2; # (칣; 칣; 칣; 칣; 칣; ) HANGUL SYLLABLE CILB
+CE64;CE64;110E 1175 11B3;CE64;110E 1175 11B3; # (칤; 칤; 칤; 칤; 칤; ) HANGUL SYLLABLE CILS
+CE65;CE65;110E 1175 11B4;CE65;110E 1175 11B4; # (칥; 칥; 칥; 칥; 칥; ) HANGUL SYLLABLE CILT
+CE66;CE66;110E 1175 11B5;CE66;110E 1175 11B5; # (칦; 칦; 칦; 칦; 칦; ) HANGUL SYLLABLE CILP
+CE67;CE67;110E 1175 11B6;CE67;110E 1175 11B6; # (칧; 칧; 칧; 칧; 칧; ) HANGUL SYLLABLE CILH
+CE68;CE68;110E 1175 11B7;CE68;110E 1175 11B7; # (침; 침; 침; 침; 침; ) HANGUL SYLLABLE CIM
+CE69;CE69;110E 1175 11B8;CE69;110E 1175 11B8; # (칩; 칩; 칩; 칩; 칩; ) HANGUL SYLLABLE CIB
+CE6A;CE6A;110E 1175 11B9;CE6A;110E 1175 11B9; # (칪; 칪; 칪; 칪; 칪; ) HANGUL SYLLABLE CIBS
+CE6B;CE6B;110E 1175 11BA;CE6B;110E 1175 11BA; # (칫; 칫; 칫; 칫; 칫; ) HANGUL SYLLABLE CIS
+CE6C;CE6C;110E 1175 11BB;CE6C;110E 1175 11BB; # (칬; 칬; 칬; 칬; 칬; ) HANGUL SYLLABLE CISS
+CE6D;CE6D;110E 1175 11BC;CE6D;110E 1175 11BC; # (칭; 칭; 칭; 칭; 칭; ) HANGUL SYLLABLE CING
+CE6E;CE6E;110E 1175 11BD;CE6E;110E 1175 11BD; # (칮; 칮; 칮; 칮; 칮; ) HANGUL SYLLABLE CIJ
+CE6F;CE6F;110E 1175 11BE;CE6F;110E 1175 11BE; # (칯; 칯; 칯; 칯; 칯; ) HANGUL SYLLABLE CIC
+CE70;CE70;110E 1175 11BF;CE70;110E 1175 11BF; # (칰; 칰; 칰; 칰; 칰; ) HANGUL SYLLABLE CIK
+CE71;CE71;110E 1175 11C0;CE71;110E 1175 11C0; # (칱; 칱; 칱; 칱; 칱; ) HANGUL SYLLABLE CIT
+CE72;CE72;110E 1175 11C1;CE72;110E 1175 11C1; # (칲; 칲; 칲; 칲; 칲; ) HANGUL SYLLABLE CIP
+CE73;CE73;110E 1175 11C2;CE73;110E 1175 11C2; # (칳; 칳; 칳; 칳; 칳; ) HANGUL SYLLABLE CIH
+CE74;CE74;110F 1161;CE74;110F 1161; # (카; 카; 카; 카; 카; ) HANGUL SYLLABLE KA
+CE75;CE75;110F 1161 11A8;CE75;110F 1161 11A8; # (칵; 칵; 칵; 칵; 칵; ) HANGUL SYLLABLE KAG
+CE76;CE76;110F 1161 11A9;CE76;110F 1161 11A9; # (칶; 칶; 칶; 칶; 칶; ) HANGUL SYLLABLE KAGG
+CE77;CE77;110F 1161 11AA;CE77;110F 1161 11AA; # (칷; 칷; 칷; 칷; 칷; ) HANGUL SYLLABLE KAGS
+CE78;CE78;110F 1161 11AB;CE78;110F 1161 11AB; # (칸; 칸; 칸; 칸; 칸; ) HANGUL SYLLABLE KAN
+CE79;CE79;110F 1161 11AC;CE79;110F 1161 11AC; # (칹; 칹; 칹; 칹; 칹; ) HANGUL SYLLABLE KANJ
+CE7A;CE7A;110F 1161 11AD;CE7A;110F 1161 11AD; # (칺; 칺; 칺; 칺; 칺; ) HANGUL SYLLABLE KANH
+CE7B;CE7B;110F 1161 11AE;CE7B;110F 1161 11AE; # (칻; 칻; 칻; 칻; 칻; ) HANGUL SYLLABLE KAD
+CE7C;CE7C;110F 1161 11AF;CE7C;110F 1161 11AF; # (칼; 칼; 칼; 칼; 칼; ) HANGUL SYLLABLE KAL
+CE7D;CE7D;110F 1161 11B0;CE7D;110F 1161 11B0; # (칽; 칽; 칽; 칽; 칽; ) HANGUL SYLLABLE KALG
+CE7E;CE7E;110F 1161 11B1;CE7E;110F 1161 11B1; # (칾; 칾; 칾; 칾; 칾; ) HANGUL SYLLABLE KALM
+CE7F;CE7F;110F 1161 11B2;CE7F;110F 1161 11B2; # (칿; 칿; 칿; 칿; 칿; ) HANGUL SYLLABLE KALB
+CE80;CE80;110F 1161 11B3;CE80;110F 1161 11B3; # (캀; 캀; 캀; 캀; 캀; ) HANGUL SYLLABLE KALS
+CE81;CE81;110F 1161 11B4;CE81;110F 1161 11B4; # (캁; 캁; 캁; 캁; 캁; ) HANGUL SYLLABLE KALT
+CE82;CE82;110F 1161 11B5;CE82;110F 1161 11B5; # (캂; 캂; 캂; 캂; 캂; ) HANGUL SYLLABLE KALP
+CE83;CE83;110F 1161 11B6;CE83;110F 1161 11B6; # (캃; 캃; 캃; 캃; 캃; ) HANGUL SYLLABLE KALH
+CE84;CE84;110F 1161 11B7;CE84;110F 1161 11B7; # (캄; 캄; 캄; 캄; 캄; ) HANGUL SYLLABLE KAM
+CE85;CE85;110F 1161 11B8;CE85;110F 1161 11B8; # (캅; 캅; 캅; 캅; 캅; ) HANGUL SYLLABLE KAB
+CE86;CE86;110F 1161 11B9;CE86;110F 1161 11B9; # (캆; 캆; 캆; 캆; 캆; ) HANGUL SYLLABLE KABS
+CE87;CE87;110F 1161 11BA;CE87;110F 1161 11BA; # (캇; 캇; 캇; 캇; 캇; ) HANGUL SYLLABLE KAS
+CE88;CE88;110F 1161 11BB;CE88;110F 1161 11BB; # (캈; 캈; 캈; 캈; 캈; ) HANGUL SYLLABLE KASS
+CE89;CE89;110F 1161 11BC;CE89;110F 1161 11BC; # (캉; 캉; 캉; 캉; 캉; ) HANGUL SYLLABLE KANG
+CE8A;CE8A;110F 1161 11BD;CE8A;110F 1161 11BD; # (캊; 캊; 캊; 캊; 캊; ) HANGUL SYLLABLE KAJ
+CE8B;CE8B;110F 1161 11BE;CE8B;110F 1161 11BE; # (캋; 캋; 캋; 캋; 캋; ) HANGUL SYLLABLE KAC
+CE8C;CE8C;110F 1161 11BF;CE8C;110F 1161 11BF; # (캌; 캌; 캌; 캌; 캌; ) HANGUL SYLLABLE KAK
+CE8D;CE8D;110F 1161 11C0;CE8D;110F 1161 11C0; # (캍; 캍; 캍; 캍; 캍; ) HANGUL SYLLABLE KAT
+CE8E;CE8E;110F 1161 11C1;CE8E;110F 1161 11C1; # (캎; 캎; 캎; 캎; 캎; ) HANGUL SYLLABLE KAP
+CE8F;CE8F;110F 1161 11C2;CE8F;110F 1161 11C2; # (캏; 캏; 캏; 캏; 캏; ) HANGUL SYLLABLE KAH
+CE90;CE90;110F 1162;CE90;110F 1162; # (캐; 캐; 캐; 캐; 캐; ) HANGUL SYLLABLE KAE
+CE91;CE91;110F 1162 11A8;CE91;110F 1162 11A8; # (캑; 캑; 캑; 캑; 캑; ) HANGUL SYLLABLE KAEG
+CE92;CE92;110F 1162 11A9;CE92;110F 1162 11A9; # (캒; 캒; 캒; 캒; 캒; ) HANGUL SYLLABLE KAEGG
+CE93;CE93;110F 1162 11AA;CE93;110F 1162 11AA; # (캓; 캓; 캓; 캓; 캓; ) HANGUL SYLLABLE KAEGS
+CE94;CE94;110F 1162 11AB;CE94;110F 1162 11AB; # (캔; 캔; 캔; 캔; 캔; ) HANGUL SYLLABLE KAEN
+CE95;CE95;110F 1162 11AC;CE95;110F 1162 11AC; # (캕; 캕; 캕; 캕; 캕; ) HANGUL SYLLABLE KAENJ
+CE96;CE96;110F 1162 11AD;CE96;110F 1162 11AD; # (캖; 캖; 캖; 캖; 캖; ) HANGUL SYLLABLE KAENH
+CE97;CE97;110F 1162 11AE;CE97;110F 1162 11AE; # (캗; 캗; 캗; 캗; 캗; ) HANGUL SYLLABLE KAED
+CE98;CE98;110F 1162 11AF;CE98;110F 1162 11AF; # (캘; 캘; 캘; 캘; 캘; ) HANGUL SYLLABLE KAEL
+CE99;CE99;110F 1162 11B0;CE99;110F 1162 11B0; # (캙; 캙; 캙; 캙; 캙; ) HANGUL SYLLABLE KAELG
+CE9A;CE9A;110F 1162 11B1;CE9A;110F 1162 11B1; # (캚; 캚; 캚; 캚; 캚; ) HANGUL SYLLABLE KAELM
+CE9B;CE9B;110F 1162 11B2;CE9B;110F 1162 11B2; # (캛; 캛; 캛; 캛; 캛; ) HANGUL SYLLABLE KAELB
+CE9C;CE9C;110F 1162 11B3;CE9C;110F 1162 11B3; # (캜; 캜; 캜; 캜; 캜; ) HANGUL SYLLABLE KAELS
+CE9D;CE9D;110F 1162 11B4;CE9D;110F 1162 11B4; # (캝; 캝; 캝; 캝; 캝; ) HANGUL SYLLABLE KAELT
+CE9E;CE9E;110F 1162 11B5;CE9E;110F 1162 11B5; # (캞; 캞; 캞; 캞; 캞; ) HANGUL SYLLABLE KAELP
+CE9F;CE9F;110F 1162 11B6;CE9F;110F 1162 11B6; # (캟; 캟; 캟; 캟; 캟; ) HANGUL SYLLABLE KAELH
+CEA0;CEA0;110F 1162 11B7;CEA0;110F 1162 11B7; # (캠; 캠; 캠; 캠; 캠; ) HANGUL SYLLABLE KAEM
+CEA1;CEA1;110F 1162 11B8;CEA1;110F 1162 11B8; # (캡; 캡; 캡; 캡; 캡; ) HANGUL SYLLABLE KAEB
+CEA2;CEA2;110F 1162 11B9;CEA2;110F 1162 11B9; # (캢; 캢; 캢; 캢; 캢; ) HANGUL SYLLABLE KAEBS
+CEA3;CEA3;110F 1162 11BA;CEA3;110F 1162 11BA; # (캣; 캣; 캣; 캣; 캣; ) HANGUL SYLLABLE KAES
+CEA4;CEA4;110F 1162 11BB;CEA4;110F 1162 11BB; # (캤; 캤; 캤; 캤; 캤; ) HANGUL SYLLABLE KAESS
+CEA5;CEA5;110F 1162 11BC;CEA5;110F 1162 11BC; # (캥; 캥; 캥; 캥; 캥; ) HANGUL SYLLABLE KAENG
+CEA6;CEA6;110F 1162 11BD;CEA6;110F 1162 11BD; # (캦; 캦; 캦; 캦; 캦; ) HANGUL SYLLABLE KAEJ
+CEA7;CEA7;110F 1162 11BE;CEA7;110F 1162 11BE; # (캧; 캧; 캧; 캧; 캧; ) HANGUL SYLLABLE KAEC
+CEA8;CEA8;110F 1162 11BF;CEA8;110F 1162 11BF; # (캨; 캨; 캨; 캨; 캨; ) HANGUL SYLLABLE KAEK
+CEA9;CEA9;110F 1162 11C0;CEA9;110F 1162 11C0; # (캩; 캩; 캩; 캩; 캩; ) HANGUL SYLLABLE KAET
+CEAA;CEAA;110F 1162 11C1;CEAA;110F 1162 11C1; # (캪; 캪; 캪; 캪; 캪; ) HANGUL SYLLABLE KAEP
+CEAB;CEAB;110F 1162 11C2;CEAB;110F 1162 11C2; # (캫; 캫; 캫; 캫; 캫; ) HANGUL SYLLABLE KAEH
+CEAC;CEAC;110F 1163;CEAC;110F 1163; # (캬; 캬; 캬; 캬; 캬; ) HANGUL SYLLABLE KYA
+CEAD;CEAD;110F 1163 11A8;CEAD;110F 1163 11A8; # (캭; 캭; 캭; 캭; 캭; ) HANGUL SYLLABLE KYAG
+CEAE;CEAE;110F 1163 11A9;CEAE;110F 1163 11A9; # (캮; 캮; 캮; 캮; 캮; ) HANGUL SYLLABLE KYAGG
+CEAF;CEAF;110F 1163 11AA;CEAF;110F 1163 11AA; # (캯; 캯; 캯; 캯; 캯; ) HANGUL SYLLABLE KYAGS
+CEB0;CEB0;110F 1163 11AB;CEB0;110F 1163 11AB; # (캰; 캰; 캰; 캰; 캰; ) HANGUL SYLLABLE KYAN
+CEB1;CEB1;110F 1163 11AC;CEB1;110F 1163 11AC; # (캱; 캱; 캱; 캱; 캱; ) HANGUL SYLLABLE KYANJ
+CEB2;CEB2;110F 1163 11AD;CEB2;110F 1163 11AD; # (캲; 캲; 캲; 캲; 캲; ) HANGUL SYLLABLE KYANH
+CEB3;CEB3;110F 1163 11AE;CEB3;110F 1163 11AE; # (캳; 캳; 캳; 캳; 캳; ) HANGUL SYLLABLE KYAD
+CEB4;CEB4;110F 1163 11AF;CEB4;110F 1163 11AF; # (캴; 캴; 캴; 캴; 캴; ) HANGUL SYLLABLE KYAL
+CEB5;CEB5;110F 1163 11B0;CEB5;110F 1163 11B0; # (캵; 캵; 캵; 캵; 캵; ) HANGUL SYLLABLE KYALG
+CEB6;CEB6;110F 1163 11B1;CEB6;110F 1163 11B1; # (캶; 캶; 캶; 캶; 캶; ) HANGUL SYLLABLE KYALM
+CEB7;CEB7;110F 1163 11B2;CEB7;110F 1163 11B2; # (캷; 캷; 캷; 캷; 캷; ) HANGUL SYLLABLE KYALB
+CEB8;CEB8;110F 1163 11B3;CEB8;110F 1163 11B3; # (캸; 캸; 캸; 캸; 캸; ) HANGUL SYLLABLE KYALS
+CEB9;CEB9;110F 1163 11B4;CEB9;110F 1163 11B4; # (캹; 캹; 캹; 캹; 캹; ) HANGUL SYLLABLE KYALT
+CEBA;CEBA;110F 1163 11B5;CEBA;110F 1163 11B5; # (캺; 캺; 캺; 캺; 캺; ) HANGUL SYLLABLE KYALP
+CEBB;CEBB;110F 1163 11B6;CEBB;110F 1163 11B6; # (캻; 캻; 캻; 캻; 캻; ) HANGUL SYLLABLE KYALH
+CEBC;CEBC;110F 1163 11B7;CEBC;110F 1163 11B7; # (캼; 캼; 캼; 캼; 캼; ) HANGUL SYLLABLE KYAM
+CEBD;CEBD;110F 1163 11B8;CEBD;110F 1163 11B8; # (캽; 캽; 캽; 캽; 캽; ) HANGUL SYLLABLE KYAB
+CEBE;CEBE;110F 1163 11B9;CEBE;110F 1163 11B9; # (캾; 캾; 캾; 캾; 캾; ) HANGUL SYLLABLE KYABS
+CEBF;CEBF;110F 1163 11BA;CEBF;110F 1163 11BA; # (캿; 캿; 캿; 캿; 캿; ) HANGUL SYLLABLE KYAS
+CEC0;CEC0;110F 1163 11BB;CEC0;110F 1163 11BB; # (컀; 컀; 컀; 컀; 컀; ) HANGUL SYLLABLE KYASS
+CEC1;CEC1;110F 1163 11BC;CEC1;110F 1163 11BC; # (컁; 컁; 컁; 컁; 컁; ) HANGUL SYLLABLE KYANG
+CEC2;CEC2;110F 1163 11BD;CEC2;110F 1163 11BD; # (컂; 컂; 컂; 컂; 컂; ) HANGUL SYLLABLE KYAJ
+CEC3;CEC3;110F 1163 11BE;CEC3;110F 1163 11BE; # (컃; 컃; 컃; 컃; 컃; ) HANGUL SYLLABLE KYAC
+CEC4;CEC4;110F 1163 11BF;CEC4;110F 1163 11BF; # (컄; 컄; 컄; 컄; 컄; ) HANGUL SYLLABLE KYAK
+CEC5;CEC5;110F 1163 11C0;CEC5;110F 1163 11C0; # (컅; 컅; 컅; 컅; 컅; ) HANGUL SYLLABLE KYAT
+CEC6;CEC6;110F 1163 11C1;CEC6;110F 1163 11C1; # (컆; 컆; 컆; 컆; 컆; ) HANGUL SYLLABLE KYAP
+CEC7;CEC7;110F 1163 11C2;CEC7;110F 1163 11C2; # (컇; 컇; 컇; 컇; 컇; ) HANGUL SYLLABLE KYAH
+CEC8;CEC8;110F 1164;CEC8;110F 1164; # (컈; 컈; 컈; 컈; 컈; ) HANGUL SYLLABLE KYAE
+CEC9;CEC9;110F 1164 11A8;CEC9;110F 1164 11A8; # (컉; 컉; 컉; 컉; 컉; ) HANGUL SYLLABLE KYAEG
+CECA;CECA;110F 1164 11A9;CECA;110F 1164 11A9; # (컊; 컊; 컊; 컊; 컊; ) HANGUL SYLLABLE KYAEGG
+CECB;CECB;110F 1164 11AA;CECB;110F 1164 11AA; # (컋; 컋; 컋; 컋; 컋; ) HANGUL SYLLABLE KYAEGS
+CECC;CECC;110F 1164 11AB;CECC;110F 1164 11AB; # (컌; 컌; 컌; 컌; 컌; ) HANGUL SYLLABLE KYAEN
+CECD;CECD;110F 1164 11AC;CECD;110F 1164 11AC; # (컍; 컍; 컍; 컍; 컍; ) HANGUL SYLLABLE KYAENJ
+CECE;CECE;110F 1164 11AD;CECE;110F 1164 11AD; # (컎; 컎; 컎; 컎; 컎; ) HANGUL SYLLABLE KYAENH
+CECF;CECF;110F 1164 11AE;CECF;110F 1164 11AE; # (컏; 컏; 컏; 컏; 컏; ) HANGUL SYLLABLE KYAED
+CED0;CED0;110F 1164 11AF;CED0;110F 1164 11AF; # (컐; 컐; 컐; 컐; 컐; ) HANGUL SYLLABLE KYAEL
+CED1;CED1;110F 1164 11B0;CED1;110F 1164 11B0; # (컑; 컑; 컑; 컑; 컑; ) HANGUL SYLLABLE KYAELG
+CED2;CED2;110F 1164 11B1;CED2;110F 1164 11B1; # (컒; 컒; 컒; 컒; 컒; ) HANGUL SYLLABLE KYAELM
+CED3;CED3;110F 1164 11B2;CED3;110F 1164 11B2; # (컓; 컓; 컓; 컓; 컓; ) HANGUL SYLLABLE KYAELB
+CED4;CED4;110F 1164 11B3;CED4;110F 1164 11B3; # (컔; 컔; 컔; 컔; 컔; ) HANGUL SYLLABLE KYAELS
+CED5;CED5;110F 1164 11B4;CED5;110F 1164 11B4; # (컕; 컕; 컕; 컕; 컕; ) HANGUL SYLLABLE KYAELT
+CED6;CED6;110F 1164 11B5;CED6;110F 1164 11B5; # (컖; 컖; 컖; 컖; 컖; ) HANGUL SYLLABLE KYAELP
+CED7;CED7;110F 1164 11B6;CED7;110F 1164 11B6; # (컗; 컗; 컗; 컗; 컗; ) HANGUL SYLLABLE KYAELH
+CED8;CED8;110F 1164 11B7;CED8;110F 1164 11B7; # (컘; 컘; 컘; 컘; 컘; ) HANGUL SYLLABLE KYAEM
+CED9;CED9;110F 1164 11B8;CED9;110F 1164 11B8; # (컙; 컙; 컙; 컙; 컙; ) HANGUL SYLLABLE KYAEB
+CEDA;CEDA;110F 1164 11B9;CEDA;110F 1164 11B9; # (컚; 컚; 컚; 컚; 컚; ) HANGUL SYLLABLE KYAEBS
+CEDB;CEDB;110F 1164 11BA;CEDB;110F 1164 11BA; # (컛; 컛; 컛; 컛; 컛; ) HANGUL SYLLABLE KYAES
+CEDC;CEDC;110F 1164 11BB;CEDC;110F 1164 11BB; # (컜; 컜; 컜; 컜; 컜; ) HANGUL SYLLABLE KYAESS
+CEDD;CEDD;110F 1164 11BC;CEDD;110F 1164 11BC; # (컝; 컝; 컝; 컝; 컝; ) HANGUL SYLLABLE KYAENG
+CEDE;CEDE;110F 1164 11BD;CEDE;110F 1164 11BD; # (컞; 컞; 컞; 컞; 컞; ) HANGUL SYLLABLE KYAEJ
+CEDF;CEDF;110F 1164 11BE;CEDF;110F 1164 11BE; # (컟; 컟; 컟; 컟; 컟; ) HANGUL SYLLABLE KYAEC
+CEE0;CEE0;110F 1164 11BF;CEE0;110F 1164 11BF; # (컠; 컠; 컠; 컠; 컠; ) HANGUL SYLLABLE KYAEK
+CEE1;CEE1;110F 1164 11C0;CEE1;110F 1164 11C0; # (컡; 컡; 컡; 컡; 컡; ) HANGUL SYLLABLE KYAET
+CEE2;CEE2;110F 1164 11C1;CEE2;110F 1164 11C1; # (컢; 컢; 컢; 컢; 컢; ) HANGUL SYLLABLE KYAEP
+CEE3;CEE3;110F 1164 11C2;CEE3;110F 1164 11C2; # (컣; 컣; 컣; 컣; 컣; ) HANGUL SYLLABLE KYAEH
+CEE4;CEE4;110F 1165;CEE4;110F 1165; # (커; 커; 커; 커; 커; ) HANGUL SYLLABLE KEO
+CEE5;CEE5;110F 1165 11A8;CEE5;110F 1165 11A8; # (컥; 컥; 컥; 컥; 컥; ) HANGUL SYLLABLE KEOG
+CEE6;CEE6;110F 1165 11A9;CEE6;110F 1165 11A9; # (컦; 컦; 컦; 컦; 컦; ) HANGUL SYLLABLE KEOGG
+CEE7;CEE7;110F 1165 11AA;CEE7;110F 1165 11AA; # (컧; 컧; 컧; 컧; 컧; ) HANGUL SYLLABLE KEOGS
+CEE8;CEE8;110F 1165 11AB;CEE8;110F 1165 11AB; # (컨; 컨; 컨; 컨; 컨; ) HANGUL SYLLABLE KEON
+CEE9;CEE9;110F 1165 11AC;CEE9;110F 1165 11AC; # (컩; 컩; 컩; 컩; 컩; ) HANGUL SYLLABLE KEONJ
+CEEA;CEEA;110F 1165 11AD;CEEA;110F 1165 11AD; # (컪; 컪; 컪; 컪; 컪; ) HANGUL SYLLABLE KEONH
+CEEB;CEEB;110F 1165 11AE;CEEB;110F 1165 11AE; # (컫; 컫; 컫; 컫; 컫; ) HANGUL SYLLABLE KEOD
+CEEC;CEEC;110F 1165 11AF;CEEC;110F 1165 11AF; # (컬; 컬; 컬; 컬; 컬; ) HANGUL SYLLABLE KEOL
+CEED;CEED;110F 1165 11B0;CEED;110F 1165 11B0; # (컭; 컭; 컭; 컭; 컭; ) HANGUL SYLLABLE KEOLG
+CEEE;CEEE;110F 1165 11B1;CEEE;110F 1165 11B1; # (컮; 컮; 컮; 컮; 컮; ) HANGUL SYLLABLE KEOLM
+CEEF;CEEF;110F 1165 11B2;CEEF;110F 1165 11B2; # (컯; 컯; 컯; 컯; 컯; ) HANGUL SYLLABLE KEOLB
+CEF0;CEF0;110F 1165 11B3;CEF0;110F 1165 11B3; # (컰; 컰; 컰; 컰; 컰; ) HANGUL SYLLABLE KEOLS
+CEF1;CEF1;110F 1165 11B4;CEF1;110F 1165 11B4; # (컱; 컱; 컱; 컱; 컱; ) HANGUL SYLLABLE KEOLT
+CEF2;CEF2;110F 1165 11B5;CEF2;110F 1165 11B5; # (컲; 컲; 컲; 컲; 컲; ) HANGUL SYLLABLE KEOLP
+CEF3;CEF3;110F 1165 11B6;CEF3;110F 1165 11B6; # (컳; 컳; 컳; 컳; 컳; ) HANGUL SYLLABLE KEOLH
+CEF4;CEF4;110F 1165 11B7;CEF4;110F 1165 11B7; # (컴; 컴; 컴; 컴; 컴; ) HANGUL SYLLABLE KEOM
+CEF5;CEF5;110F 1165 11B8;CEF5;110F 1165 11B8; # (컵; 컵; 컵; 컵; 컵; ) HANGUL SYLLABLE KEOB
+CEF6;CEF6;110F 1165 11B9;CEF6;110F 1165 11B9; # (컶; 컶; 컶; 컶; 컶; ) HANGUL SYLLABLE KEOBS
+CEF7;CEF7;110F 1165 11BA;CEF7;110F 1165 11BA; # (컷; 컷; 컷; 컷; 컷; ) HANGUL SYLLABLE KEOS
+CEF8;CEF8;110F 1165 11BB;CEF8;110F 1165 11BB; # (컸; 컸; 컸; 컸; 컸; ) HANGUL SYLLABLE KEOSS
+CEF9;CEF9;110F 1165 11BC;CEF9;110F 1165 11BC; # (컹; 컹; 컹; 컹; 컹; ) HANGUL SYLLABLE KEONG
+CEFA;CEFA;110F 1165 11BD;CEFA;110F 1165 11BD; # (컺; 컺; 컺; 컺; 컺; ) HANGUL SYLLABLE KEOJ
+CEFB;CEFB;110F 1165 11BE;CEFB;110F 1165 11BE; # (컻; 컻; 컻; 컻; 컻; ) HANGUL SYLLABLE KEOC
+CEFC;CEFC;110F 1165 11BF;CEFC;110F 1165 11BF; # (컼; 컼; 컼; 컼; 컼; ) HANGUL SYLLABLE KEOK
+CEFD;CEFD;110F 1165 11C0;CEFD;110F 1165 11C0; # (컽; 컽; 컽; 컽; 컽; ) HANGUL SYLLABLE KEOT
+CEFE;CEFE;110F 1165 11C1;CEFE;110F 1165 11C1; # (컾; 컾; 컾; 컾; 컾; ) HANGUL SYLLABLE KEOP
+CEFF;CEFF;110F 1165 11C2;CEFF;110F 1165 11C2; # (컿; 컿; 컿; 컿; 컿; ) HANGUL SYLLABLE KEOH
+CF00;CF00;110F 1166;CF00;110F 1166; # (케; 케; 케; 케; 케; ) HANGUL SYLLABLE KE
+CF01;CF01;110F 1166 11A8;CF01;110F 1166 11A8; # (켁; 켁; 켁; 켁; 켁; ) HANGUL SYLLABLE KEG
+CF02;CF02;110F 1166 11A9;CF02;110F 1166 11A9; # (켂; 켂; 켂; 켂; 켂; ) HANGUL SYLLABLE KEGG
+CF03;CF03;110F 1166 11AA;CF03;110F 1166 11AA; # (켃; 켃; 켃; 켃; 켃; ) HANGUL SYLLABLE KEGS
+CF04;CF04;110F 1166 11AB;CF04;110F 1166 11AB; # (켄; 켄; 켄; 켄; 켄; ) HANGUL SYLLABLE KEN
+CF05;CF05;110F 1166 11AC;CF05;110F 1166 11AC; # (켅; 켅; 켅; 켅; 켅; ) HANGUL SYLLABLE KENJ
+CF06;CF06;110F 1166 11AD;CF06;110F 1166 11AD; # (켆; 켆; 켆; 켆; 켆; ) HANGUL SYLLABLE KENH
+CF07;CF07;110F 1166 11AE;CF07;110F 1166 11AE; # (켇; 켇; 켇; 켇; 켇; ) HANGUL SYLLABLE KED
+CF08;CF08;110F 1166 11AF;CF08;110F 1166 11AF; # (켈; 켈; 켈; 켈; 켈; ) HANGUL SYLLABLE KEL
+CF09;CF09;110F 1166 11B0;CF09;110F 1166 11B0; # (켉; 켉; 켉; 켉; 켉; ) HANGUL SYLLABLE KELG
+CF0A;CF0A;110F 1166 11B1;CF0A;110F 1166 11B1; # (켊; 켊; 켊; 켊; 켊; ) HANGUL SYLLABLE KELM
+CF0B;CF0B;110F 1166 11B2;CF0B;110F 1166 11B2; # (켋; 켋; 켋; 켋; 켋; ) HANGUL SYLLABLE KELB
+CF0C;CF0C;110F 1166 11B3;CF0C;110F 1166 11B3; # (켌; 켌; 켌; 켌; 켌; ) HANGUL SYLLABLE KELS
+CF0D;CF0D;110F 1166 11B4;CF0D;110F 1166 11B4; # (켍; 켍; 켍; 켍; 켍; ) HANGUL SYLLABLE KELT
+CF0E;CF0E;110F 1166 11B5;CF0E;110F 1166 11B5; # (켎; 켎; 켎; 켎; 켎; ) HANGUL SYLLABLE KELP
+CF0F;CF0F;110F 1166 11B6;CF0F;110F 1166 11B6; # (켏; 켏; 켏; 켏; 켏; ) HANGUL SYLLABLE KELH
+CF10;CF10;110F 1166 11B7;CF10;110F 1166 11B7; # (켐; 켐; 켐; 켐; 켐; ) HANGUL SYLLABLE KEM
+CF11;CF11;110F 1166 11B8;CF11;110F 1166 11B8; # (켑; 켑; 켑; 켑; 켑; ) HANGUL SYLLABLE KEB
+CF12;CF12;110F 1166 11B9;CF12;110F 1166 11B9; # (켒; 켒; 켒; 켒; 켒; ) HANGUL SYLLABLE KEBS
+CF13;CF13;110F 1166 11BA;CF13;110F 1166 11BA; # (켓; 켓; 켓; 켓; 켓; ) HANGUL SYLLABLE KES
+CF14;CF14;110F 1166 11BB;CF14;110F 1166 11BB; # (켔; 켔; 켔; 켔; 켔; ) HANGUL SYLLABLE KESS
+CF15;CF15;110F 1166 11BC;CF15;110F 1166 11BC; # (켕; 켕; 켕; 켕; 켕; ) HANGUL SYLLABLE KENG
+CF16;CF16;110F 1166 11BD;CF16;110F 1166 11BD; # (켖; 켖; 켖; 켖; 켖; ) HANGUL SYLLABLE KEJ
+CF17;CF17;110F 1166 11BE;CF17;110F 1166 11BE; # (켗; 켗; 켗; 켗; 켗; ) HANGUL SYLLABLE KEC
+CF18;CF18;110F 1166 11BF;CF18;110F 1166 11BF; # (켘; 켘; 켘; 켘; 켘; ) HANGUL SYLLABLE KEK
+CF19;CF19;110F 1166 11C0;CF19;110F 1166 11C0; # (켙; 켙; 켙; 켙; 켙; ) HANGUL SYLLABLE KET
+CF1A;CF1A;110F 1166 11C1;CF1A;110F 1166 11C1; # (켚; 켚; 켚; 켚; 켚; ) HANGUL SYLLABLE KEP
+CF1B;CF1B;110F 1166 11C2;CF1B;110F 1166 11C2; # (켛; 켛; 켛; 켛; 켛; ) HANGUL SYLLABLE KEH
+CF1C;CF1C;110F 1167;CF1C;110F 1167; # (켜; 켜; 켜; 켜; 켜; ) HANGUL SYLLABLE KYEO
+CF1D;CF1D;110F 1167 11A8;CF1D;110F 1167 11A8; # (켝; 켝; 켝; 켝; 켝; ) HANGUL SYLLABLE KYEOG
+CF1E;CF1E;110F 1167 11A9;CF1E;110F 1167 11A9; # (켞; 켞; 켞; 켞; 켞; ) HANGUL SYLLABLE KYEOGG
+CF1F;CF1F;110F 1167 11AA;CF1F;110F 1167 11AA; # (켟; 켟; 켟; 켟; 켟; ) HANGUL SYLLABLE KYEOGS
+CF20;CF20;110F 1167 11AB;CF20;110F 1167 11AB; # (켠; 켠; 켠; 켠; 켠; ) HANGUL SYLLABLE KYEON
+CF21;CF21;110F 1167 11AC;CF21;110F 1167 11AC; # (켡; 켡; 켡; 켡; 켡; ) HANGUL SYLLABLE KYEONJ
+CF22;CF22;110F 1167 11AD;CF22;110F 1167 11AD; # (켢; 켢; 켢; 켢; 켢; ) HANGUL SYLLABLE KYEONH
+CF23;CF23;110F 1167 11AE;CF23;110F 1167 11AE; # (켣; 켣; 켣; 켣; 켣; ) HANGUL SYLLABLE KYEOD
+CF24;CF24;110F 1167 11AF;CF24;110F 1167 11AF; # (켤; 켤; 켤; 켤; 켤; ) HANGUL SYLLABLE KYEOL
+CF25;CF25;110F 1167 11B0;CF25;110F 1167 11B0; # (켥; 켥; 켥; 켥; 켥; ) HANGUL SYLLABLE KYEOLG
+CF26;CF26;110F 1167 11B1;CF26;110F 1167 11B1; # (켦; 켦; 켦; 켦; 켦; ) HANGUL SYLLABLE KYEOLM
+CF27;CF27;110F 1167 11B2;CF27;110F 1167 11B2; # (켧; 켧; 켧; 켧; 켧; ) HANGUL SYLLABLE KYEOLB
+CF28;CF28;110F 1167 11B3;CF28;110F 1167 11B3; # (켨; 켨; 켨; 켨; 켨; ) HANGUL SYLLABLE KYEOLS
+CF29;CF29;110F 1167 11B4;CF29;110F 1167 11B4; # (켩; 켩; 켩; 켩; 켩; ) HANGUL SYLLABLE KYEOLT
+CF2A;CF2A;110F 1167 11B5;CF2A;110F 1167 11B5; # (켪; 켪; 켪; 켪; 켪; ) HANGUL SYLLABLE KYEOLP
+CF2B;CF2B;110F 1167 11B6;CF2B;110F 1167 11B6; # (켫; 켫; 켫; 켫; 켫; ) HANGUL SYLLABLE KYEOLH
+CF2C;CF2C;110F 1167 11B7;CF2C;110F 1167 11B7; # (켬; 켬; 켬; 켬; 켬; ) HANGUL SYLLABLE KYEOM
+CF2D;CF2D;110F 1167 11B8;CF2D;110F 1167 11B8; # (켭; 켭; 켭; 켭; 켭; ) HANGUL SYLLABLE KYEOB
+CF2E;CF2E;110F 1167 11B9;CF2E;110F 1167 11B9; # (켮; 켮; 켮; 켮; 켮; ) HANGUL SYLLABLE KYEOBS
+CF2F;CF2F;110F 1167 11BA;CF2F;110F 1167 11BA; # (켯; 켯; 켯; 켯; 켯; ) HANGUL SYLLABLE KYEOS
+CF30;CF30;110F 1167 11BB;CF30;110F 1167 11BB; # (켰; 켰; 켰; 켰; 켰; ) HANGUL SYLLABLE KYEOSS
+CF31;CF31;110F 1167 11BC;CF31;110F 1167 11BC; # (켱; 켱; 켱; 켱; 켱; ) HANGUL SYLLABLE KYEONG
+CF32;CF32;110F 1167 11BD;CF32;110F 1167 11BD; # (켲; 켲; 켲; 켲; 켲; ) HANGUL SYLLABLE KYEOJ
+CF33;CF33;110F 1167 11BE;CF33;110F 1167 11BE; # (켳; 켳; 켳; 켳; 켳; ) HANGUL SYLLABLE KYEOC
+CF34;CF34;110F 1167 11BF;CF34;110F 1167 11BF; # (켴; 켴; 켴; 켴; 켴; ) HANGUL SYLLABLE KYEOK
+CF35;CF35;110F 1167 11C0;CF35;110F 1167 11C0; # (켵; 켵; 켵; 켵; 켵; ) HANGUL SYLLABLE KYEOT
+CF36;CF36;110F 1167 11C1;CF36;110F 1167 11C1; # (켶; 켶; 켶; 켶; 켶; ) HANGUL SYLLABLE KYEOP
+CF37;CF37;110F 1167 11C2;CF37;110F 1167 11C2; # (켷; 켷; 켷; 켷; 켷; ) HANGUL SYLLABLE KYEOH
+CF38;CF38;110F 1168;CF38;110F 1168; # (켸; 켸; 켸; 켸; 켸; ) HANGUL SYLLABLE KYE
+CF39;CF39;110F 1168 11A8;CF39;110F 1168 11A8; # (켹; 켹; 켹; 켹; 켹; ) HANGUL SYLLABLE KYEG
+CF3A;CF3A;110F 1168 11A9;CF3A;110F 1168 11A9; # (켺; 켺; 켺; 켺; 켺; ) HANGUL SYLLABLE KYEGG
+CF3B;CF3B;110F 1168 11AA;CF3B;110F 1168 11AA; # (켻; 켻; 켻; 켻; 켻; ) HANGUL SYLLABLE KYEGS
+CF3C;CF3C;110F 1168 11AB;CF3C;110F 1168 11AB; # (켼; 켼; 켼; 켼; 켼; ) HANGUL SYLLABLE KYEN
+CF3D;CF3D;110F 1168 11AC;CF3D;110F 1168 11AC; # (켽; 켽; 켽; 켽; 켽; ) HANGUL SYLLABLE KYENJ
+CF3E;CF3E;110F 1168 11AD;CF3E;110F 1168 11AD; # (켾; 켾; 켾; 켾; 켾; ) HANGUL SYLLABLE KYENH
+CF3F;CF3F;110F 1168 11AE;CF3F;110F 1168 11AE; # (켿; 켿; 켿; 켿; 켿; ) HANGUL SYLLABLE KYED
+CF40;CF40;110F 1168 11AF;CF40;110F 1168 11AF; # (콀; 콀; 콀; 콀; 콀; ) HANGUL SYLLABLE KYEL
+CF41;CF41;110F 1168 11B0;CF41;110F 1168 11B0; # (콁; 콁; 콁; 콁; 콁; ) HANGUL SYLLABLE KYELG
+CF42;CF42;110F 1168 11B1;CF42;110F 1168 11B1; # (콂; 콂; 콂; 콂; 콂; ) HANGUL SYLLABLE KYELM
+CF43;CF43;110F 1168 11B2;CF43;110F 1168 11B2; # (콃; 콃; 콃; 콃; 콃; ) HANGUL SYLLABLE KYELB
+CF44;CF44;110F 1168 11B3;CF44;110F 1168 11B3; # (콄; 콄; 콄; 콄; 콄; ) HANGUL SYLLABLE KYELS
+CF45;CF45;110F 1168 11B4;CF45;110F 1168 11B4; # (콅; 콅; 콅; 콅; 콅; ) HANGUL SYLLABLE KYELT
+CF46;CF46;110F 1168 11B5;CF46;110F 1168 11B5; # (콆; 콆; 콆; 콆; 콆; ) HANGUL SYLLABLE KYELP
+CF47;CF47;110F 1168 11B6;CF47;110F 1168 11B6; # (콇; 콇; 콇; 콇; 콇; ) HANGUL SYLLABLE KYELH
+CF48;CF48;110F 1168 11B7;CF48;110F 1168 11B7; # (콈; 콈; 콈; 콈; 콈; ) HANGUL SYLLABLE KYEM
+CF49;CF49;110F 1168 11B8;CF49;110F 1168 11B8; # (콉; 콉; 콉; 콉; 콉; ) HANGUL SYLLABLE KYEB
+CF4A;CF4A;110F 1168 11B9;CF4A;110F 1168 11B9; # (콊; 콊; 콊; 콊; 콊; ) HANGUL SYLLABLE KYEBS
+CF4B;CF4B;110F 1168 11BA;CF4B;110F 1168 11BA; # (콋; 콋; 콋; 콋; 콋; ) HANGUL SYLLABLE KYES
+CF4C;CF4C;110F 1168 11BB;CF4C;110F 1168 11BB; # (콌; 콌; 콌; 콌; 콌; ) HANGUL SYLLABLE KYESS
+CF4D;CF4D;110F 1168 11BC;CF4D;110F 1168 11BC; # (콍; 콍; 콍; 콍; 콍; ) HANGUL SYLLABLE KYENG
+CF4E;CF4E;110F 1168 11BD;CF4E;110F 1168 11BD; # (콎; 콎; 콎; 콎; 콎; ) HANGUL SYLLABLE KYEJ
+CF4F;CF4F;110F 1168 11BE;CF4F;110F 1168 11BE; # (콏; 콏; 콏; 콏; 콏; ) HANGUL SYLLABLE KYEC
+CF50;CF50;110F 1168 11BF;CF50;110F 1168 11BF; # (콐; 콐; 콐; 콐; 콐; ) HANGUL SYLLABLE KYEK
+CF51;CF51;110F 1168 11C0;CF51;110F 1168 11C0; # (콑; 콑; 콑; 콑; 콑; ) HANGUL SYLLABLE KYET
+CF52;CF52;110F 1168 11C1;CF52;110F 1168 11C1; # (콒; 콒; 콒; 콒; 콒; ) HANGUL SYLLABLE KYEP
+CF53;CF53;110F 1168 11C2;CF53;110F 1168 11C2; # (콓; 콓; 콓; 콓; 콓; ) HANGUL SYLLABLE KYEH
+CF54;CF54;110F 1169;CF54;110F 1169; # (코; 코; 코; 코; 코; ) HANGUL SYLLABLE KO
+CF55;CF55;110F 1169 11A8;CF55;110F 1169 11A8; # (콕; 콕; 콕; 콕; 콕; ) HANGUL SYLLABLE KOG
+CF56;CF56;110F 1169 11A9;CF56;110F 1169 11A9; # (콖; 콖; 콖; 콖; 콖; ) HANGUL SYLLABLE KOGG
+CF57;CF57;110F 1169 11AA;CF57;110F 1169 11AA; # (콗; 콗; 콗; 콗; 콗; ) HANGUL SYLLABLE KOGS
+CF58;CF58;110F 1169 11AB;CF58;110F 1169 11AB; # (콘; 콘; 콘; 콘; 콘; ) HANGUL SYLLABLE KON
+CF59;CF59;110F 1169 11AC;CF59;110F 1169 11AC; # (콙; 콙; 콙; 콙; 콙; ) HANGUL SYLLABLE KONJ
+CF5A;CF5A;110F 1169 11AD;CF5A;110F 1169 11AD; # (콚; 콚; 콚; 콚; 콚; ) HANGUL SYLLABLE KONH
+CF5B;CF5B;110F 1169 11AE;CF5B;110F 1169 11AE; # (콛; 콛; 콛; 콛; 콛; ) HANGUL SYLLABLE KOD
+CF5C;CF5C;110F 1169 11AF;CF5C;110F 1169 11AF; # (콜; 콜; 콜; 콜; 콜; ) HANGUL SYLLABLE KOL
+CF5D;CF5D;110F 1169 11B0;CF5D;110F 1169 11B0; # (콝; 콝; 콝; 콝; 콝; ) HANGUL SYLLABLE KOLG
+CF5E;CF5E;110F 1169 11B1;CF5E;110F 1169 11B1; # (콞; 콞; 콞; 콞; 콞; ) HANGUL SYLLABLE KOLM
+CF5F;CF5F;110F 1169 11B2;CF5F;110F 1169 11B2; # (콟; 콟; 콟; 콟; 콟; ) HANGUL SYLLABLE KOLB
+CF60;CF60;110F 1169 11B3;CF60;110F 1169 11B3; # (콠; 콠; 콠; 콠; 콠; ) HANGUL SYLLABLE KOLS
+CF61;CF61;110F 1169 11B4;CF61;110F 1169 11B4; # (콡; 콡; 콡; 콡; 콡; ) HANGUL SYLLABLE KOLT
+CF62;CF62;110F 1169 11B5;CF62;110F 1169 11B5; # (콢; 콢; 콢; 콢; 콢; ) HANGUL SYLLABLE KOLP
+CF63;CF63;110F 1169 11B6;CF63;110F 1169 11B6; # (콣; 콣; 콣; 콣; 콣; ) HANGUL SYLLABLE KOLH
+CF64;CF64;110F 1169 11B7;CF64;110F 1169 11B7; # (콤; 콤; 콤; 콤; 콤; ) HANGUL SYLLABLE KOM
+CF65;CF65;110F 1169 11B8;CF65;110F 1169 11B8; # (콥; 콥; 콥; 콥; 콥; ) HANGUL SYLLABLE KOB
+CF66;CF66;110F 1169 11B9;CF66;110F 1169 11B9; # (콦; 콦; 콦; 콦; 콦; ) HANGUL SYLLABLE KOBS
+CF67;CF67;110F 1169 11BA;CF67;110F 1169 11BA; # (콧; 콧; 콧; 콧; 콧; ) HANGUL SYLLABLE KOS
+CF68;CF68;110F 1169 11BB;CF68;110F 1169 11BB; # (콨; 콨; 콨; 콨; 콨; ) HANGUL SYLLABLE KOSS
+CF69;CF69;110F 1169 11BC;CF69;110F 1169 11BC; # (콩; 콩; 콩; 콩; 콩; ) HANGUL SYLLABLE KONG
+CF6A;CF6A;110F 1169 11BD;CF6A;110F 1169 11BD; # (콪; 콪; 콪; 콪; 콪; ) HANGUL SYLLABLE KOJ
+CF6B;CF6B;110F 1169 11BE;CF6B;110F 1169 11BE; # (콫; 콫; 콫; 콫; 콫; ) HANGUL SYLLABLE KOC
+CF6C;CF6C;110F 1169 11BF;CF6C;110F 1169 11BF; # (콬; 콬; 콬; 콬; 콬; ) HANGUL SYLLABLE KOK
+CF6D;CF6D;110F 1169 11C0;CF6D;110F 1169 11C0; # (콭; 콭; 콭; 콭; 콭; ) HANGUL SYLLABLE KOT
+CF6E;CF6E;110F 1169 11C1;CF6E;110F 1169 11C1; # (콮; 콮; 콮; 콮; 콮; ) HANGUL SYLLABLE KOP
+CF6F;CF6F;110F 1169 11C2;CF6F;110F 1169 11C2; # (콯; 콯; 콯; 콯; 콯; ) HANGUL SYLLABLE KOH
+CF70;CF70;110F 116A;CF70;110F 116A; # (콰; 콰; 콰; 콰; 콰; ) HANGUL SYLLABLE KWA
+CF71;CF71;110F 116A 11A8;CF71;110F 116A 11A8; # (콱; 콱; 콱; 콱; 콱; ) HANGUL SYLLABLE KWAG
+CF72;CF72;110F 116A 11A9;CF72;110F 116A 11A9; # (콲; 콲; 콲; 콲; 콲; ) HANGUL SYLLABLE KWAGG
+CF73;CF73;110F 116A 11AA;CF73;110F 116A 11AA; # (콳; 콳; 콳; 콳; 콳; ) HANGUL SYLLABLE KWAGS
+CF74;CF74;110F 116A 11AB;CF74;110F 116A 11AB; # (콴; 콴; 콴; 콴; 콴; ) HANGUL SYLLABLE KWAN
+CF75;CF75;110F 116A 11AC;CF75;110F 116A 11AC; # (콵; 콵; 콵; 콵; 콵; ) HANGUL SYLLABLE KWANJ
+CF76;CF76;110F 116A 11AD;CF76;110F 116A 11AD; # (콶; 콶; 콶; 콶; 콶; ) HANGUL SYLLABLE KWANH
+CF77;CF77;110F 116A 11AE;CF77;110F 116A 11AE; # (콷; 콷; 콷; 콷; 콷; ) HANGUL SYLLABLE KWAD
+CF78;CF78;110F 116A 11AF;CF78;110F 116A 11AF; # (콸; 콸; 콸; 콸; 콸; ) HANGUL SYLLABLE KWAL
+CF79;CF79;110F 116A 11B0;CF79;110F 116A 11B0; # (콹; 콹; 콹; 콹; 콹; ) HANGUL SYLLABLE KWALG
+CF7A;CF7A;110F 116A 11B1;CF7A;110F 116A 11B1; # (콺; 콺; 콺; 콺; 콺; ) HANGUL SYLLABLE KWALM
+CF7B;CF7B;110F 116A 11B2;CF7B;110F 116A 11B2; # (콻; 콻; 콻; 콻; 콻; ) HANGUL SYLLABLE KWALB
+CF7C;CF7C;110F 116A 11B3;CF7C;110F 116A 11B3; # (콼; 콼; 콼; 콼; 콼; ) HANGUL SYLLABLE KWALS
+CF7D;CF7D;110F 116A 11B4;CF7D;110F 116A 11B4; # (콽; 콽; 콽; 콽; 콽; ) HANGUL SYLLABLE KWALT
+CF7E;CF7E;110F 116A 11B5;CF7E;110F 116A 11B5; # (콾; 콾; 콾; 콾; 콾; ) HANGUL SYLLABLE KWALP
+CF7F;CF7F;110F 116A 11B6;CF7F;110F 116A 11B6; # (콿; 콿; 콿; 콿; 콿; ) HANGUL SYLLABLE KWALH
+CF80;CF80;110F 116A 11B7;CF80;110F 116A 11B7; # (쾀; 쾀; 쾀; 쾀; 쾀; ) HANGUL SYLLABLE KWAM
+CF81;CF81;110F 116A 11B8;CF81;110F 116A 11B8; # (쾁; 쾁; 쾁; 쾁; 쾁; ) HANGUL SYLLABLE KWAB
+CF82;CF82;110F 116A 11B9;CF82;110F 116A 11B9; # (쾂; 쾂; 쾂; 쾂; 쾂; ) HANGUL SYLLABLE KWABS
+CF83;CF83;110F 116A 11BA;CF83;110F 116A 11BA; # (쾃; 쾃; 쾃; 쾃; 쾃; ) HANGUL SYLLABLE KWAS
+CF84;CF84;110F 116A 11BB;CF84;110F 116A 11BB; # (쾄; 쾄; 쾄; 쾄; 쾄; ) HANGUL SYLLABLE KWASS
+CF85;CF85;110F 116A 11BC;CF85;110F 116A 11BC; # (쾅; 쾅; 쾅; 쾅; 쾅; ) HANGUL SYLLABLE KWANG
+CF86;CF86;110F 116A 11BD;CF86;110F 116A 11BD; # (쾆; 쾆; 쾆; 쾆; 쾆; ) HANGUL SYLLABLE KWAJ
+CF87;CF87;110F 116A 11BE;CF87;110F 116A 11BE; # (쾇; 쾇; 쾇; 쾇; 쾇; ) HANGUL SYLLABLE KWAC
+CF88;CF88;110F 116A 11BF;CF88;110F 116A 11BF; # (쾈; 쾈; 쾈; 쾈; 쾈; ) HANGUL SYLLABLE KWAK
+CF89;CF89;110F 116A 11C0;CF89;110F 116A 11C0; # (쾉; 쾉; 쾉; 쾉; 쾉; ) HANGUL SYLLABLE KWAT
+CF8A;CF8A;110F 116A 11C1;CF8A;110F 116A 11C1; # (쾊; 쾊; 쾊; 쾊; 쾊; ) HANGUL SYLLABLE KWAP
+CF8B;CF8B;110F 116A 11C2;CF8B;110F 116A 11C2; # (쾋; 쾋; 쾋; 쾋; 쾋; ) HANGUL SYLLABLE KWAH
+CF8C;CF8C;110F 116B;CF8C;110F 116B; # (쾌; 쾌; 쾌; 쾌; 쾌; ) HANGUL SYLLABLE KWAE
+CF8D;CF8D;110F 116B 11A8;CF8D;110F 116B 11A8; # (쾍; 쾍; 쾍; 쾍; 쾍; ) HANGUL SYLLABLE KWAEG
+CF8E;CF8E;110F 116B 11A9;CF8E;110F 116B 11A9; # (쾎; 쾎; 쾎; 쾎; 쾎; ) HANGUL SYLLABLE KWAEGG
+CF8F;CF8F;110F 116B 11AA;CF8F;110F 116B 11AA; # (쾏; 쾏; 쾏; 쾏; 쾏; ) HANGUL SYLLABLE KWAEGS
+CF90;CF90;110F 116B 11AB;CF90;110F 116B 11AB; # (쾐; 쾐; 쾐; 쾐; 쾐; ) HANGUL SYLLABLE KWAEN
+CF91;CF91;110F 116B 11AC;CF91;110F 116B 11AC; # (쾑; 쾑; 쾑; 쾑; 쾑; ) HANGUL SYLLABLE KWAENJ
+CF92;CF92;110F 116B 11AD;CF92;110F 116B 11AD; # (쾒; 쾒; 쾒; 쾒; 쾒; ) HANGUL SYLLABLE KWAENH
+CF93;CF93;110F 116B 11AE;CF93;110F 116B 11AE; # (쾓; 쾓; 쾓; 쾓; 쾓; ) HANGUL SYLLABLE KWAED
+CF94;CF94;110F 116B 11AF;CF94;110F 116B 11AF; # (쾔; 쾔; 쾔; 쾔; 쾔; ) HANGUL SYLLABLE KWAEL
+CF95;CF95;110F 116B 11B0;CF95;110F 116B 11B0; # (쾕; 쾕; 쾕; 쾕; 쾕; ) HANGUL SYLLABLE KWAELG
+CF96;CF96;110F 116B 11B1;CF96;110F 116B 11B1; # (쾖; 쾖; 쾖; 쾖; 쾖; ) HANGUL SYLLABLE KWAELM
+CF97;CF97;110F 116B 11B2;CF97;110F 116B 11B2; # (쾗; 쾗; 쾗; 쾗; 쾗; ) HANGUL SYLLABLE KWAELB
+CF98;CF98;110F 116B 11B3;CF98;110F 116B 11B3; # (쾘; 쾘; 쾘; 쾘; 쾘; ) HANGUL SYLLABLE KWAELS
+CF99;CF99;110F 116B 11B4;CF99;110F 116B 11B4; # (쾙; 쾙; 쾙; 쾙; 쾙; ) HANGUL SYLLABLE KWAELT
+CF9A;CF9A;110F 116B 11B5;CF9A;110F 116B 11B5; # (쾚; 쾚; 쾚; 쾚; 쾚; ) HANGUL SYLLABLE KWAELP
+CF9B;CF9B;110F 116B 11B6;CF9B;110F 116B 11B6; # (쾛; 쾛; 쾛; 쾛; 쾛; ) HANGUL SYLLABLE KWAELH
+CF9C;CF9C;110F 116B 11B7;CF9C;110F 116B 11B7; # (쾜; 쾜; 쾜; 쾜; 쾜; ) HANGUL SYLLABLE KWAEM
+CF9D;CF9D;110F 116B 11B8;CF9D;110F 116B 11B8; # (쾝; 쾝; 쾝; 쾝; 쾝; ) HANGUL SYLLABLE KWAEB
+CF9E;CF9E;110F 116B 11B9;CF9E;110F 116B 11B9; # (쾞; 쾞; 쾞; 쾞; 쾞; ) HANGUL SYLLABLE KWAEBS
+CF9F;CF9F;110F 116B 11BA;CF9F;110F 116B 11BA; # (쾟; 쾟; 쾟; 쾟; 쾟; ) HANGUL SYLLABLE KWAES
+CFA0;CFA0;110F 116B 11BB;CFA0;110F 116B 11BB; # (쾠; 쾠; 쾠; 쾠; 쾠; ) HANGUL SYLLABLE KWAESS
+CFA1;CFA1;110F 116B 11BC;CFA1;110F 116B 11BC; # (쾡; 쾡; 쾡; 쾡; 쾡; ) HANGUL SYLLABLE KWAENG
+CFA2;CFA2;110F 116B 11BD;CFA2;110F 116B 11BD; # (쾢; 쾢; 쾢; 쾢; 쾢; ) HANGUL SYLLABLE KWAEJ
+CFA3;CFA3;110F 116B 11BE;CFA3;110F 116B 11BE; # (쾣; 쾣; 쾣; 쾣; 쾣; ) HANGUL SYLLABLE KWAEC
+CFA4;CFA4;110F 116B 11BF;CFA4;110F 116B 11BF; # (쾤; 쾤; 쾤; 쾤; 쾤; ) HANGUL SYLLABLE KWAEK
+CFA5;CFA5;110F 116B 11C0;CFA5;110F 116B 11C0; # (쾥; 쾥; 쾥; 쾥; 쾥; ) HANGUL SYLLABLE KWAET
+CFA6;CFA6;110F 116B 11C1;CFA6;110F 116B 11C1; # (쾦; 쾦; 쾦; 쾦; 쾦; ) HANGUL SYLLABLE KWAEP
+CFA7;CFA7;110F 116B 11C2;CFA7;110F 116B 11C2; # (쾧; 쾧; 쾧; 쾧; 쾧; ) HANGUL SYLLABLE KWAEH
+CFA8;CFA8;110F 116C;CFA8;110F 116C; # (쾨; 쾨; 쾨; 쾨; 쾨; ) HANGUL SYLLABLE KOE
+CFA9;CFA9;110F 116C 11A8;CFA9;110F 116C 11A8; # (쾩; 쾩; 쾩; 쾩; 쾩; ) HANGUL SYLLABLE KOEG
+CFAA;CFAA;110F 116C 11A9;CFAA;110F 116C 11A9; # (쾪; 쾪; 쾪; 쾪; 쾪; ) HANGUL SYLLABLE KOEGG
+CFAB;CFAB;110F 116C 11AA;CFAB;110F 116C 11AA; # (쾫; 쾫; 쾫; 쾫; 쾫; ) HANGUL SYLLABLE KOEGS
+CFAC;CFAC;110F 116C 11AB;CFAC;110F 116C 11AB; # (쾬; 쾬; 쾬; 쾬; 쾬; ) HANGUL SYLLABLE KOEN
+CFAD;CFAD;110F 116C 11AC;CFAD;110F 116C 11AC; # (쾭; 쾭; 쾭; 쾭; 쾭; ) HANGUL SYLLABLE KOENJ
+CFAE;CFAE;110F 116C 11AD;CFAE;110F 116C 11AD; # (쾮; 쾮; 쾮; 쾮; 쾮; ) HANGUL SYLLABLE KOENH
+CFAF;CFAF;110F 116C 11AE;CFAF;110F 116C 11AE; # (쾯; 쾯; 쾯; 쾯; 쾯; ) HANGUL SYLLABLE KOED
+CFB0;CFB0;110F 116C 11AF;CFB0;110F 116C 11AF; # (쾰; 쾰; 쾰; 쾰; 쾰; ) HANGUL SYLLABLE KOEL
+CFB1;CFB1;110F 116C 11B0;CFB1;110F 116C 11B0; # (쾱; 쾱; 쾱; 쾱; 쾱; ) HANGUL SYLLABLE KOELG
+CFB2;CFB2;110F 116C 11B1;CFB2;110F 116C 11B1; # (쾲; 쾲; 쾲; 쾲; 쾲; ) HANGUL SYLLABLE KOELM
+CFB3;CFB3;110F 116C 11B2;CFB3;110F 116C 11B2; # (쾳; 쾳; 쾳; 쾳; 쾳; ) HANGUL SYLLABLE KOELB
+CFB4;CFB4;110F 116C 11B3;CFB4;110F 116C 11B3; # (쾴; 쾴; 쾴; 쾴; 쾴; ) HANGUL SYLLABLE KOELS
+CFB5;CFB5;110F 116C 11B4;CFB5;110F 116C 11B4; # (쾵; 쾵; 쾵; 쾵; 쾵; ) HANGUL SYLLABLE KOELT
+CFB6;CFB6;110F 116C 11B5;CFB6;110F 116C 11B5; # (쾶; 쾶; 쾶; 쾶; 쾶; ) HANGUL SYLLABLE KOELP
+CFB7;CFB7;110F 116C 11B6;CFB7;110F 116C 11B6; # (쾷; 쾷; 쾷; 쾷; 쾷; ) HANGUL SYLLABLE KOELH
+CFB8;CFB8;110F 116C 11B7;CFB8;110F 116C 11B7; # (쾸; 쾸; 쾸; 쾸; 쾸; ) HANGUL SYLLABLE KOEM
+CFB9;CFB9;110F 116C 11B8;CFB9;110F 116C 11B8; # (쾹; 쾹; 쾹; 쾹; 쾹; ) HANGUL SYLLABLE KOEB
+CFBA;CFBA;110F 116C 11B9;CFBA;110F 116C 11B9; # (쾺; 쾺; 쾺; 쾺; 쾺; ) HANGUL SYLLABLE KOEBS
+CFBB;CFBB;110F 116C 11BA;CFBB;110F 116C 11BA; # (쾻; 쾻; 쾻; 쾻; 쾻; ) HANGUL SYLLABLE KOES
+CFBC;CFBC;110F 116C 11BB;CFBC;110F 116C 11BB; # (쾼; 쾼; 쾼; 쾼; 쾼; ) HANGUL SYLLABLE KOESS
+CFBD;CFBD;110F 116C 11BC;CFBD;110F 116C 11BC; # (쾽; 쾽; 쾽; 쾽; 쾽; ) HANGUL SYLLABLE KOENG
+CFBE;CFBE;110F 116C 11BD;CFBE;110F 116C 11BD; # (쾾; 쾾; 쾾; 쾾; 쾾; ) HANGUL SYLLABLE KOEJ
+CFBF;CFBF;110F 116C 11BE;CFBF;110F 116C 11BE; # (쾿; 쾿; 쾿; 쾿; 쾿; ) HANGUL SYLLABLE KOEC
+CFC0;CFC0;110F 116C 11BF;CFC0;110F 116C 11BF; # (쿀; 쿀; 쿀; 쿀; 쿀; ) HANGUL SYLLABLE KOEK
+CFC1;CFC1;110F 116C 11C0;CFC1;110F 116C 11C0; # (쿁; 쿁; 쿁; 쿁; 쿁; ) HANGUL SYLLABLE KOET
+CFC2;CFC2;110F 116C 11C1;CFC2;110F 116C 11C1; # (쿂; 쿂; 쿂; 쿂; 쿂; ) HANGUL SYLLABLE KOEP
+CFC3;CFC3;110F 116C 11C2;CFC3;110F 116C 11C2; # (쿃; 쿃; 쿃; 쿃; 쿃; ) HANGUL SYLLABLE KOEH
+CFC4;CFC4;110F 116D;CFC4;110F 116D; # (쿄; 쿄; 쿄; 쿄; 쿄; ) HANGUL SYLLABLE KYO
+CFC5;CFC5;110F 116D 11A8;CFC5;110F 116D 11A8; # (쿅; 쿅; 쿅; 쿅; 쿅; ) HANGUL SYLLABLE KYOG
+CFC6;CFC6;110F 116D 11A9;CFC6;110F 116D 11A9; # (쿆; 쿆; 쿆; 쿆; 쿆; ) HANGUL SYLLABLE KYOGG
+CFC7;CFC7;110F 116D 11AA;CFC7;110F 116D 11AA; # (쿇; 쿇; 쿇; 쿇; 쿇; ) HANGUL SYLLABLE KYOGS
+CFC8;CFC8;110F 116D 11AB;CFC8;110F 116D 11AB; # (쿈; 쿈; 쿈; 쿈; 쿈; ) HANGUL SYLLABLE KYON
+CFC9;CFC9;110F 116D 11AC;CFC9;110F 116D 11AC; # (쿉; 쿉; 쿉; 쿉; 쿉; ) HANGUL SYLLABLE KYONJ
+CFCA;CFCA;110F 116D 11AD;CFCA;110F 116D 11AD; # (쿊; 쿊; 쿊; 쿊; 쿊; ) HANGUL SYLLABLE KYONH
+CFCB;CFCB;110F 116D 11AE;CFCB;110F 116D 11AE; # (쿋; 쿋; 쿋; 쿋; 쿋; ) HANGUL SYLLABLE KYOD
+CFCC;CFCC;110F 116D 11AF;CFCC;110F 116D 11AF; # (쿌; 쿌; 쿌; 쿌; 쿌; ) HANGUL SYLLABLE KYOL
+CFCD;CFCD;110F 116D 11B0;CFCD;110F 116D 11B0; # (쿍; 쿍; 쿍; 쿍; 쿍; ) HANGUL SYLLABLE KYOLG
+CFCE;CFCE;110F 116D 11B1;CFCE;110F 116D 11B1; # (쿎; 쿎; 쿎; 쿎; 쿎; ) HANGUL SYLLABLE KYOLM
+CFCF;CFCF;110F 116D 11B2;CFCF;110F 116D 11B2; # (쿏; 쿏; 쿏; 쿏; 쿏; ) HANGUL SYLLABLE KYOLB
+CFD0;CFD0;110F 116D 11B3;CFD0;110F 116D 11B3; # (쿐; 쿐; 쿐; 쿐; 쿐; ) HANGUL SYLLABLE KYOLS
+CFD1;CFD1;110F 116D 11B4;CFD1;110F 116D 11B4; # (쿑; 쿑; 쿑; 쿑; 쿑; ) HANGUL SYLLABLE KYOLT
+CFD2;CFD2;110F 116D 11B5;CFD2;110F 116D 11B5; # (쿒; 쿒; 쿒; 쿒; 쿒; ) HANGUL SYLLABLE KYOLP
+CFD3;CFD3;110F 116D 11B6;CFD3;110F 116D 11B6; # (쿓; 쿓; 쿓; 쿓; 쿓; ) HANGUL SYLLABLE KYOLH
+CFD4;CFD4;110F 116D 11B7;CFD4;110F 116D 11B7; # (쿔; 쿔; 쿔; 쿔; 쿔; ) HANGUL SYLLABLE KYOM
+CFD5;CFD5;110F 116D 11B8;CFD5;110F 116D 11B8; # (쿕; 쿕; 쿕; 쿕; 쿕; ) HANGUL SYLLABLE KYOB
+CFD6;CFD6;110F 116D 11B9;CFD6;110F 116D 11B9; # (쿖; 쿖; 쿖; 쿖; 쿖; ) HANGUL SYLLABLE KYOBS
+CFD7;CFD7;110F 116D 11BA;CFD7;110F 116D 11BA; # (쿗; 쿗; 쿗; 쿗; 쿗; ) HANGUL SYLLABLE KYOS
+CFD8;CFD8;110F 116D 11BB;CFD8;110F 116D 11BB; # (쿘; 쿘; 쿘; 쿘; 쿘; ) HANGUL SYLLABLE KYOSS
+CFD9;CFD9;110F 116D 11BC;CFD9;110F 116D 11BC; # (쿙; 쿙; 쿙; 쿙; 쿙; ) HANGUL SYLLABLE KYONG
+CFDA;CFDA;110F 116D 11BD;CFDA;110F 116D 11BD; # (쿚; 쿚; 쿚; 쿚; 쿚; ) HANGUL SYLLABLE KYOJ
+CFDB;CFDB;110F 116D 11BE;CFDB;110F 116D 11BE; # (쿛; 쿛; 쿛; 쿛; 쿛; ) HANGUL SYLLABLE KYOC
+CFDC;CFDC;110F 116D 11BF;CFDC;110F 116D 11BF; # (쿜; 쿜; 쿜; 쿜; 쿜; ) HANGUL SYLLABLE KYOK
+CFDD;CFDD;110F 116D 11C0;CFDD;110F 116D 11C0; # (쿝; 쿝; 쿝; 쿝; 쿝; ) HANGUL SYLLABLE KYOT
+CFDE;CFDE;110F 116D 11C1;CFDE;110F 116D 11C1; # (쿞; 쿞; 쿞; 쿞; 쿞; ) HANGUL SYLLABLE KYOP
+CFDF;CFDF;110F 116D 11C2;CFDF;110F 116D 11C2; # (쿟; 쿟; 쿟; 쿟; 쿟; ) HANGUL SYLLABLE KYOH
+CFE0;CFE0;110F 116E;CFE0;110F 116E; # (쿠; 쿠; 쿠; 쿠; 쿠; ) HANGUL SYLLABLE KU
+CFE1;CFE1;110F 116E 11A8;CFE1;110F 116E 11A8; # (쿡; 쿡; 쿡; 쿡; 쿡; ) HANGUL SYLLABLE KUG
+CFE2;CFE2;110F 116E 11A9;CFE2;110F 116E 11A9; # (쿢; 쿢; 쿢; 쿢; 쿢; ) HANGUL SYLLABLE KUGG
+CFE3;CFE3;110F 116E 11AA;CFE3;110F 116E 11AA; # (쿣; 쿣; 쿣; 쿣; 쿣; ) HANGUL SYLLABLE KUGS
+CFE4;CFE4;110F 116E 11AB;CFE4;110F 116E 11AB; # (쿤; 쿤; 쿤; 쿤; 쿤; ) HANGUL SYLLABLE KUN
+CFE5;CFE5;110F 116E 11AC;CFE5;110F 116E 11AC; # (쿥; 쿥; 쿥; 쿥; 쿥; ) HANGUL SYLLABLE KUNJ
+CFE6;CFE6;110F 116E 11AD;CFE6;110F 116E 11AD; # (쿦; 쿦; 쿦; 쿦; 쿦; ) HANGUL SYLLABLE KUNH
+CFE7;CFE7;110F 116E 11AE;CFE7;110F 116E 11AE; # (쿧; 쿧; 쿧; 쿧; 쿧; ) HANGUL SYLLABLE KUD
+CFE8;CFE8;110F 116E 11AF;CFE8;110F 116E 11AF; # (쿨; 쿨; 쿨; 쿨; 쿨; ) HANGUL SYLLABLE KUL
+CFE9;CFE9;110F 116E 11B0;CFE9;110F 116E 11B0; # (쿩; 쿩; 쿩; 쿩; 쿩; ) HANGUL SYLLABLE KULG
+CFEA;CFEA;110F 116E 11B1;CFEA;110F 116E 11B1; # (쿪; 쿪; 쿪; 쿪; 쿪; ) HANGUL SYLLABLE KULM
+CFEB;CFEB;110F 116E 11B2;CFEB;110F 116E 11B2; # (쿫; 쿫; 쿫; 쿫; 쿫; ) HANGUL SYLLABLE KULB
+CFEC;CFEC;110F 116E 11B3;CFEC;110F 116E 11B3; # (쿬; 쿬; 쿬; 쿬; 쿬; ) HANGUL SYLLABLE KULS
+CFED;CFED;110F 116E 11B4;CFED;110F 116E 11B4; # (쿭; 쿭; 쿭; 쿭; 쿭; ) HANGUL SYLLABLE KULT
+CFEE;CFEE;110F 116E 11B5;CFEE;110F 116E 11B5; # (쿮; 쿮; 쿮; 쿮; 쿮; ) HANGUL SYLLABLE KULP
+CFEF;CFEF;110F 116E 11B6;CFEF;110F 116E 11B6; # (쿯; 쿯; 쿯; 쿯; 쿯; ) HANGUL SYLLABLE KULH
+CFF0;CFF0;110F 116E 11B7;CFF0;110F 116E 11B7; # (쿰; 쿰; 쿰; 쿰; 쿰; ) HANGUL SYLLABLE KUM
+CFF1;CFF1;110F 116E 11B8;CFF1;110F 116E 11B8; # (쿱; 쿱; 쿱; 쿱; 쿱; ) HANGUL SYLLABLE KUB
+CFF2;CFF2;110F 116E 11B9;CFF2;110F 116E 11B9; # (쿲; 쿲; 쿲; 쿲; 쿲; ) HANGUL SYLLABLE KUBS
+CFF3;CFF3;110F 116E 11BA;CFF3;110F 116E 11BA; # (쿳; 쿳; 쿳; 쿳; 쿳; ) HANGUL SYLLABLE KUS
+CFF4;CFF4;110F 116E 11BB;CFF4;110F 116E 11BB; # (쿴; 쿴; 쿴; 쿴; 쿴; ) HANGUL SYLLABLE KUSS
+CFF5;CFF5;110F 116E 11BC;CFF5;110F 116E 11BC; # (쿵; 쿵; 쿵; 쿵; 쿵; ) HANGUL SYLLABLE KUNG
+CFF6;CFF6;110F 116E 11BD;CFF6;110F 116E 11BD; # (쿶; 쿶; 쿶; 쿶; 쿶; ) HANGUL SYLLABLE KUJ
+CFF7;CFF7;110F 116E 11BE;CFF7;110F 116E 11BE; # (쿷; 쿷; 쿷; 쿷; 쿷; ) HANGUL SYLLABLE KUC
+CFF8;CFF8;110F 116E 11BF;CFF8;110F 116E 11BF; # (쿸; 쿸; 쿸; 쿸; 쿸; ) HANGUL SYLLABLE KUK
+CFF9;CFF9;110F 116E 11C0;CFF9;110F 116E 11C0; # (쿹; 쿹; 쿹; 쿹; 쿹; ) HANGUL SYLLABLE KUT
+CFFA;CFFA;110F 116E 11C1;CFFA;110F 116E 11C1; # (쿺; 쿺; 쿺; 쿺; 쿺; ) HANGUL SYLLABLE KUP
+CFFB;CFFB;110F 116E 11C2;CFFB;110F 116E 11C2; # (쿻; 쿻; 쿻; 쿻; 쿻; ) HANGUL SYLLABLE KUH
+CFFC;CFFC;110F 116F;CFFC;110F 116F; # (쿼; 쿼; 쿼; 쿼; 쿼; ) HANGUL SYLLABLE KWEO
+CFFD;CFFD;110F 116F 11A8;CFFD;110F 116F 11A8; # (쿽; 쿽; 쿽; 쿽; 쿽; ) HANGUL SYLLABLE KWEOG
+CFFE;CFFE;110F 116F 11A9;CFFE;110F 116F 11A9; # (쿾; 쿾; 쿾; 쿾; 쿾; ) HANGUL SYLLABLE KWEOGG
+CFFF;CFFF;110F 116F 11AA;CFFF;110F 116F 11AA; # (쿿; 쿿; 쿿; 쿿; 쿿; ) HANGUL SYLLABLE KWEOGS
+D000;D000;110F 116F 11AB;D000;110F 116F 11AB; # (퀀; 퀀; 퀀; 퀀; 퀀; ) HANGUL SYLLABLE KWEON
+D001;D001;110F 116F 11AC;D001;110F 116F 11AC; # (퀁; 퀁; 퀁; 퀁; 퀁; ) HANGUL SYLLABLE KWEONJ
+D002;D002;110F 116F 11AD;D002;110F 116F 11AD; # (퀂; 퀂; 퀂; 퀂; 퀂; ) HANGUL SYLLABLE KWEONH
+D003;D003;110F 116F 11AE;D003;110F 116F 11AE; # (퀃; 퀃; 퀃; 퀃; 퀃; ) HANGUL SYLLABLE KWEOD
+D004;D004;110F 116F 11AF;D004;110F 116F 11AF; # (퀄; 퀄; 퀄; 퀄; 퀄; ) HANGUL SYLLABLE KWEOL
+D005;D005;110F 116F 11B0;D005;110F 116F 11B0; # (퀅; 퀅; 퀅; 퀅; 퀅; ) HANGUL SYLLABLE KWEOLG
+D006;D006;110F 116F 11B1;D006;110F 116F 11B1; # (퀆; 퀆; 퀆; 퀆; 퀆; ) HANGUL SYLLABLE KWEOLM
+D007;D007;110F 116F 11B2;D007;110F 116F 11B2; # (퀇; 퀇; 퀇; 퀇; 퀇; ) HANGUL SYLLABLE KWEOLB
+D008;D008;110F 116F 11B3;D008;110F 116F 11B3; # (퀈; 퀈; 퀈; 퀈; 퀈; ) HANGUL SYLLABLE KWEOLS
+D009;D009;110F 116F 11B4;D009;110F 116F 11B4; # (퀉; 퀉; 퀉; 퀉; 퀉; ) HANGUL SYLLABLE KWEOLT
+D00A;D00A;110F 116F 11B5;D00A;110F 116F 11B5; # (퀊; 퀊; 퀊; 퀊; 퀊; ) HANGUL SYLLABLE KWEOLP
+D00B;D00B;110F 116F 11B6;D00B;110F 116F 11B6; # (퀋; 퀋; 퀋; 퀋; 퀋; ) HANGUL SYLLABLE KWEOLH
+D00C;D00C;110F 116F 11B7;D00C;110F 116F 11B7; # (퀌; 퀌; 퀌; 퀌; 퀌; ) HANGUL SYLLABLE KWEOM
+D00D;D00D;110F 116F 11B8;D00D;110F 116F 11B8; # (퀍; 퀍; 퀍; 퀍; 퀍; ) HANGUL SYLLABLE KWEOB
+D00E;D00E;110F 116F 11B9;D00E;110F 116F 11B9; # (퀎; 퀎; 퀎; 퀎; 퀎; ) HANGUL SYLLABLE KWEOBS
+D00F;D00F;110F 116F 11BA;D00F;110F 116F 11BA; # (퀏; 퀏; 퀏; 퀏; 퀏; ) HANGUL SYLLABLE KWEOS
+D010;D010;110F 116F 11BB;D010;110F 116F 11BB; # (퀐; 퀐; 퀐; 퀐; 퀐; ) HANGUL SYLLABLE KWEOSS
+D011;D011;110F 116F 11BC;D011;110F 116F 11BC; # (퀑; 퀑; 퀑; 퀑; 퀑; ) HANGUL SYLLABLE KWEONG
+D012;D012;110F 116F 11BD;D012;110F 116F 11BD; # (퀒; 퀒; 퀒; 퀒; 퀒; ) HANGUL SYLLABLE KWEOJ
+D013;D013;110F 116F 11BE;D013;110F 116F 11BE; # (퀓; 퀓; 퀓; 퀓; 퀓; ) HANGUL SYLLABLE KWEOC
+D014;D014;110F 116F 11BF;D014;110F 116F 11BF; # (퀔; 퀔; 퀔; 퀔; 퀔; ) HANGUL SYLLABLE KWEOK
+D015;D015;110F 116F 11C0;D015;110F 116F 11C0; # (퀕; 퀕; 퀕; 퀕; 퀕; ) HANGUL SYLLABLE KWEOT
+D016;D016;110F 116F 11C1;D016;110F 116F 11C1; # (퀖; 퀖; 퀖; 퀖; 퀖; ) HANGUL SYLLABLE KWEOP
+D017;D017;110F 116F 11C2;D017;110F 116F 11C2; # (퀗; 퀗; 퀗; 퀗; 퀗; ) HANGUL SYLLABLE KWEOH
+D018;D018;110F 1170;D018;110F 1170; # (퀘; 퀘; 퀘; 퀘; 퀘; ) HANGUL SYLLABLE KWE
+D019;D019;110F 1170 11A8;D019;110F 1170 11A8; # (퀙; 퀙; 퀙; 퀙; 퀙; ) HANGUL SYLLABLE KWEG
+D01A;D01A;110F 1170 11A9;D01A;110F 1170 11A9; # (퀚; 퀚; 퀚; 퀚; 퀚; ) HANGUL SYLLABLE KWEGG
+D01B;D01B;110F 1170 11AA;D01B;110F 1170 11AA; # (퀛; 퀛; 퀛; 퀛; 퀛; ) HANGUL SYLLABLE KWEGS
+D01C;D01C;110F 1170 11AB;D01C;110F 1170 11AB; # (퀜; 퀜; 퀜; 퀜; 퀜; ) HANGUL SYLLABLE KWEN
+D01D;D01D;110F 1170 11AC;D01D;110F 1170 11AC; # (퀝; 퀝; 퀝; 퀝; 퀝; ) HANGUL SYLLABLE KWENJ
+D01E;D01E;110F 1170 11AD;D01E;110F 1170 11AD; # (퀞; 퀞; 퀞; 퀞; 퀞; ) HANGUL SYLLABLE KWENH
+D01F;D01F;110F 1170 11AE;D01F;110F 1170 11AE; # (퀟; 퀟; 퀟; 퀟; 퀟; ) HANGUL SYLLABLE KWED
+D020;D020;110F 1170 11AF;D020;110F 1170 11AF; # (퀠; 퀠; 퀠; 퀠; 퀠; ) HANGUL SYLLABLE KWEL
+D021;D021;110F 1170 11B0;D021;110F 1170 11B0; # (퀡; 퀡; 퀡; 퀡; 퀡; ) HANGUL SYLLABLE KWELG
+D022;D022;110F 1170 11B1;D022;110F 1170 11B1; # (퀢; 퀢; 퀢; 퀢; 퀢; ) HANGUL SYLLABLE KWELM
+D023;D023;110F 1170 11B2;D023;110F 1170 11B2; # (퀣; 퀣; 퀣; 퀣; 퀣; ) HANGUL SYLLABLE KWELB
+D024;D024;110F 1170 11B3;D024;110F 1170 11B3; # (퀤; 퀤; 퀤; 퀤; 퀤; ) HANGUL SYLLABLE KWELS
+D025;D025;110F 1170 11B4;D025;110F 1170 11B4; # (퀥; 퀥; 퀥; 퀥; 퀥; ) HANGUL SYLLABLE KWELT
+D026;D026;110F 1170 11B5;D026;110F 1170 11B5; # (퀦; 퀦; 퀦; 퀦; 퀦; ) HANGUL SYLLABLE KWELP
+D027;D027;110F 1170 11B6;D027;110F 1170 11B6; # (퀧; 퀧; 퀧; 퀧; 퀧; ) HANGUL SYLLABLE KWELH
+D028;D028;110F 1170 11B7;D028;110F 1170 11B7; # (퀨; 퀨; 퀨; 퀨; 퀨; ) HANGUL SYLLABLE KWEM
+D029;D029;110F 1170 11B8;D029;110F 1170 11B8; # (퀩; 퀩; 퀩; 퀩; 퀩; ) HANGUL SYLLABLE KWEB
+D02A;D02A;110F 1170 11B9;D02A;110F 1170 11B9; # (퀪; 퀪; 퀪; 퀪; 퀪; ) HANGUL SYLLABLE KWEBS
+D02B;D02B;110F 1170 11BA;D02B;110F 1170 11BA; # (퀫; 퀫; 퀫; 퀫; 퀫; ) HANGUL SYLLABLE KWES
+D02C;D02C;110F 1170 11BB;D02C;110F 1170 11BB; # (퀬; 퀬; 퀬; 퀬; 퀬; ) HANGUL SYLLABLE KWESS
+D02D;D02D;110F 1170 11BC;D02D;110F 1170 11BC; # (퀭; 퀭; 퀭; 퀭; 퀭; ) HANGUL SYLLABLE KWENG
+D02E;D02E;110F 1170 11BD;D02E;110F 1170 11BD; # (퀮; 퀮; 퀮; 퀮; 퀮; ) HANGUL SYLLABLE KWEJ
+D02F;D02F;110F 1170 11BE;D02F;110F 1170 11BE; # (퀯; 퀯; 퀯; 퀯; 퀯; ) HANGUL SYLLABLE KWEC
+D030;D030;110F 1170 11BF;D030;110F 1170 11BF; # (퀰; 퀰; 퀰; 퀰; 퀰; ) HANGUL SYLLABLE KWEK
+D031;D031;110F 1170 11C0;D031;110F 1170 11C0; # (퀱; 퀱; 퀱; 퀱; 퀱; ) HANGUL SYLLABLE KWET
+D032;D032;110F 1170 11C1;D032;110F 1170 11C1; # (퀲; 퀲; 퀲; 퀲; 퀲; ) HANGUL SYLLABLE KWEP
+D033;D033;110F 1170 11C2;D033;110F 1170 11C2; # (퀳; 퀳; 퀳; 퀳; 퀳; ) HANGUL SYLLABLE KWEH
+D034;D034;110F 1171;D034;110F 1171; # (퀴; 퀴; 퀴; 퀴; 퀴; ) HANGUL SYLLABLE KWI
+D035;D035;110F 1171 11A8;D035;110F 1171 11A8; # (퀵; 퀵; 퀵; 퀵; 퀵; ) HANGUL SYLLABLE KWIG
+D036;D036;110F 1171 11A9;D036;110F 1171 11A9; # (퀶; 퀶; 퀶; 퀶; 퀶; ) HANGUL SYLLABLE KWIGG
+D037;D037;110F 1171 11AA;D037;110F 1171 11AA; # (퀷; 퀷; 퀷; 퀷; 퀷; ) HANGUL SYLLABLE KWIGS
+D038;D038;110F 1171 11AB;D038;110F 1171 11AB; # (퀸; 퀸; 퀸; 퀸; 퀸; ) HANGUL SYLLABLE KWIN
+D039;D039;110F 1171 11AC;D039;110F 1171 11AC; # (퀹; 퀹; 퀹; 퀹; 퀹; ) HANGUL SYLLABLE KWINJ
+D03A;D03A;110F 1171 11AD;D03A;110F 1171 11AD; # (퀺; 퀺; 퀺; 퀺; 퀺; ) HANGUL SYLLABLE KWINH
+D03B;D03B;110F 1171 11AE;D03B;110F 1171 11AE; # (퀻; 퀻; 퀻; 퀻; 퀻; ) HANGUL SYLLABLE KWID
+D03C;D03C;110F 1171 11AF;D03C;110F 1171 11AF; # (퀼; 퀼; 퀼; 퀼; 퀼; ) HANGUL SYLLABLE KWIL
+D03D;D03D;110F 1171 11B0;D03D;110F 1171 11B0; # (퀽; 퀽; 퀽; 퀽; 퀽; ) HANGUL SYLLABLE KWILG
+D03E;D03E;110F 1171 11B1;D03E;110F 1171 11B1; # (퀾; 퀾; 퀾; 퀾; 퀾; ) HANGUL SYLLABLE KWILM
+D03F;D03F;110F 1171 11B2;D03F;110F 1171 11B2; # (퀿; 퀿; 퀿; 퀿; 퀿; ) HANGUL SYLLABLE KWILB
+D040;D040;110F 1171 11B3;D040;110F 1171 11B3; # (큀; 큀; 큀; 큀; 큀; ) HANGUL SYLLABLE KWILS
+D041;D041;110F 1171 11B4;D041;110F 1171 11B4; # (큁; 큁; 큁; 큁; 큁; ) HANGUL SYLLABLE KWILT
+D042;D042;110F 1171 11B5;D042;110F 1171 11B5; # (큂; 큂; 큂; 큂; 큂; ) HANGUL SYLLABLE KWILP
+D043;D043;110F 1171 11B6;D043;110F 1171 11B6; # (큃; 큃; 큃; 큃; 큃; ) HANGUL SYLLABLE KWILH
+D044;D044;110F 1171 11B7;D044;110F 1171 11B7; # (큄; 큄; 큄; 큄; 큄; ) HANGUL SYLLABLE KWIM
+D045;D045;110F 1171 11B8;D045;110F 1171 11B8; # (큅; 큅; 큅; 큅; 큅; ) HANGUL SYLLABLE KWIB
+D046;D046;110F 1171 11B9;D046;110F 1171 11B9; # (큆; 큆; 큆; 큆; 큆; ) HANGUL SYLLABLE KWIBS
+D047;D047;110F 1171 11BA;D047;110F 1171 11BA; # (큇; 큇; 큇; 큇; 큇; ) HANGUL SYLLABLE KWIS
+D048;D048;110F 1171 11BB;D048;110F 1171 11BB; # (큈; 큈; 큈; 큈; 큈; ) HANGUL SYLLABLE KWISS
+D049;D049;110F 1171 11BC;D049;110F 1171 11BC; # (큉; 큉; 큉; 큉; 큉; ) HANGUL SYLLABLE KWING
+D04A;D04A;110F 1171 11BD;D04A;110F 1171 11BD; # (큊; 큊; 큊; 큊; 큊; ) HANGUL SYLLABLE KWIJ
+D04B;D04B;110F 1171 11BE;D04B;110F 1171 11BE; # (큋; 큋; 큋; 큋; 큋; ) HANGUL SYLLABLE KWIC
+D04C;D04C;110F 1171 11BF;D04C;110F 1171 11BF; # (큌; 큌; 큌; 큌; 큌; ) HANGUL SYLLABLE KWIK
+D04D;D04D;110F 1171 11C0;D04D;110F 1171 11C0; # (큍; 큍; 큍; 큍; 큍; ) HANGUL SYLLABLE KWIT
+D04E;D04E;110F 1171 11C1;D04E;110F 1171 11C1; # (큎; 큎; 큎; 큎; 큎; ) HANGUL SYLLABLE KWIP
+D04F;D04F;110F 1171 11C2;D04F;110F 1171 11C2; # (큏; 큏; 큏; 큏; 큏; ) HANGUL SYLLABLE KWIH
+D050;D050;110F 1172;D050;110F 1172; # (큐; 큐; 큐; 큐; 큐; ) HANGUL SYLLABLE KYU
+D051;D051;110F 1172 11A8;D051;110F 1172 11A8; # (큑; 큑; 큑; 큑; 큑; ) HANGUL SYLLABLE KYUG
+D052;D052;110F 1172 11A9;D052;110F 1172 11A9; # (큒; 큒; 큒; 큒; 큒; ) HANGUL SYLLABLE KYUGG
+D053;D053;110F 1172 11AA;D053;110F 1172 11AA; # (큓; 큓; 큓; 큓; 큓; ) HANGUL SYLLABLE KYUGS
+D054;D054;110F 1172 11AB;D054;110F 1172 11AB; # (큔; 큔; 큔; 큔; 큔; ) HANGUL SYLLABLE KYUN
+D055;D055;110F 1172 11AC;D055;110F 1172 11AC; # (큕; 큕; 큕; 큕; 큕; ) HANGUL SYLLABLE KYUNJ
+D056;D056;110F 1172 11AD;D056;110F 1172 11AD; # (큖; 큖; 큖; 큖; 큖; ) HANGUL SYLLABLE KYUNH
+D057;D057;110F 1172 11AE;D057;110F 1172 11AE; # (큗; 큗; 큗; 큗; 큗; ) HANGUL SYLLABLE KYUD
+D058;D058;110F 1172 11AF;D058;110F 1172 11AF; # (큘; 큘; 큘; 큘; 큘; ) HANGUL SYLLABLE KYUL
+D059;D059;110F 1172 11B0;D059;110F 1172 11B0; # (큙; 큙; 큙; 큙; 큙; ) HANGUL SYLLABLE KYULG
+D05A;D05A;110F 1172 11B1;D05A;110F 1172 11B1; # (큚; 큚; 큚; 큚; 큚; ) HANGUL SYLLABLE KYULM
+D05B;D05B;110F 1172 11B2;D05B;110F 1172 11B2; # (큛; 큛; 큛; 큛; 큛; ) HANGUL SYLLABLE KYULB
+D05C;D05C;110F 1172 11B3;D05C;110F 1172 11B3; # (큜; 큜; 큜; 큜; 큜; ) HANGUL SYLLABLE KYULS
+D05D;D05D;110F 1172 11B4;D05D;110F 1172 11B4; # (큝; 큝; 큝; 큝; 큝; ) HANGUL SYLLABLE KYULT
+D05E;D05E;110F 1172 11B5;D05E;110F 1172 11B5; # (큞; 큞; 큞; 큞; 큞; ) HANGUL SYLLABLE KYULP
+D05F;D05F;110F 1172 11B6;D05F;110F 1172 11B6; # (큟; 큟; 큟; 큟; 큟; ) HANGUL SYLLABLE KYULH
+D060;D060;110F 1172 11B7;D060;110F 1172 11B7; # (큠; 큠; 큠; 큠; 큠; ) HANGUL SYLLABLE KYUM
+D061;D061;110F 1172 11B8;D061;110F 1172 11B8; # (큡; 큡; 큡; 큡; 큡; ) HANGUL SYLLABLE KYUB
+D062;D062;110F 1172 11B9;D062;110F 1172 11B9; # (큢; 큢; 큢; 큢; 큢; ) HANGUL SYLLABLE KYUBS
+D063;D063;110F 1172 11BA;D063;110F 1172 11BA; # (큣; 큣; 큣; 큣; 큣; ) HANGUL SYLLABLE KYUS
+D064;D064;110F 1172 11BB;D064;110F 1172 11BB; # (큤; 큤; 큤; 큤; 큤; ) HANGUL SYLLABLE KYUSS
+D065;D065;110F 1172 11BC;D065;110F 1172 11BC; # (큥; 큥; 큥; 큥; 큥; ) HANGUL SYLLABLE KYUNG
+D066;D066;110F 1172 11BD;D066;110F 1172 11BD; # (큦; 큦; 큦; 큦; 큦; ) HANGUL SYLLABLE KYUJ
+D067;D067;110F 1172 11BE;D067;110F 1172 11BE; # (큧; 큧; 큧; 큧; 큧; ) HANGUL SYLLABLE KYUC
+D068;D068;110F 1172 11BF;D068;110F 1172 11BF; # (큨; 큨; 큨; 큨; 큨; ) HANGUL SYLLABLE KYUK
+D069;D069;110F 1172 11C0;D069;110F 1172 11C0; # (큩; 큩; 큩; 큩; 큩; ) HANGUL SYLLABLE KYUT
+D06A;D06A;110F 1172 11C1;D06A;110F 1172 11C1; # (큪; 큪; 큪; 큪; 큪; ) HANGUL SYLLABLE KYUP
+D06B;D06B;110F 1172 11C2;D06B;110F 1172 11C2; # (큫; 큫; 큫; 큫; 큫; ) HANGUL SYLLABLE KYUH
+D06C;D06C;110F 1173;D06C;110F 1173; # (크; 크; 크; 크; 크; ) HANGUL SYLLABLE KEU
+D06D;D06D;110F 1173 11A8;D06D;110F 1173 11A8; # (큭; 큭; 큭; 큭; 큭; ) HANGUL SYLLABLE KEUG
+D06E;D06E;110F 1173 11A9;D06E;110F 1173 11A9; # (큮; 큮; 큮; 큮; 큮; ) HANGUL SYLLABLE KEUGG
+D06F;D06F;110F 1173 11AA;D06F;110F 1173 11AA; # (큯; 큯; 큯; 큯; 큯; ) HANGUL SYLLABLE KEUGS
+D070;D070;110F 1173 11AB;D070;110F 1173 11AB; # (큰; 큰; 큰; 큰; 큰; ) HANGUL SYLLABLE KEUN
+D071;D071;110F 1173 11AC;D071;110F 1173 11AC; # (큱; 큱; 큱; 큱; 큱; ) HANGUL SYLLABLE KEUNJ
+D072;D072;110F 1173 11AD;D072;110F 1173 11AD; # (큲; 큲; 큲; 큲; 큲; ) HANGUL SYLLABLE KEUNH
+D073;D073;110F 1173 11AE;D073;110F 1173 11AE; # (큳; 큳; 큳; 큳; 큳; ) HANGUL SYLLABLE KEUD
+D074;D074;110F 1173 11AF;D074;110F 1173 11AF; # (클; 클; 클; 클; 클; ) HANGUL SYLLABLE KEUL
+D075;D075;110F 1173 11B0;D075;110F 1173 11B0; # (큵; 큵; 큵; 큵; 큵; ) HANGUL SYLLABLE KEULG
+D076;D076;110F 1173 11B1;D076;110F 1173 11B1; # (큶; 큶; 큶; 큶; 큶; ) HANGUL SYLLABLE KEULM
+D077;D077;110F 1173 11B2;D077;110F 1173 11B2; # (큷; 큷; 큷; 큷; 큷; ) HANGUL SYLLABLE KEULB
+D078;D078;110F 1173 11B3;D078;110F 1173 11B3; # (큸; 큸; 큸; 큸; 큸; ) HANGUL SYLLABLE KEULS
+D079;D079;110F 1173 11B4;D079;110F 1173 11B4; # (큹; 큹; 큹; 큹; 큹; ) HANGUL SYLLABLE KEULT
+D07A;D07A;110F 1173 11B5;D07A;110F 1173 11B5; # (큺; 큺; 큺; 큺; 큺; ) HANGUL SYLLABLE KEULP
+D07B;D07B;110F 1173 11B6;D07B;110F 1173 11B6; # (큻; 큻; 큻; 큻; 큻; ) HANGUL SYLLABLE KEULH
+D07C;D07C;110F 1173 11B7;D07C;110F 1173 11B7; # (큼; 큼; 큼; 큼; 큼; ) HANGUL SYLLABLE KEUM
+D07D;D07D;110F 1173 11B8;D07D;110F 1173 11B8; # (큽; 큽; 큽; 큽; 큽; ) HANGUL SYLLABLE KEUB
+D07E;D07E;110F 1173 11B9;D07E;110F 1173 11B9; # (큾; 큾; 큾; 큾; 큾; ) HANGUL SYLLABLE KEUBS
+D07F;D07F;110F 1173 11BA;D07F;110F 1173 11BA; # (큿; 큿; 큿; 큿; 큿; ) HANGUL SYLLABLE KEUS
+D080;D080;110F 1173 11BB;D080;110F 1173 11BB; # (킀; 킀; 킀; 킀; 킀; ) HANGUL SYLLABLE KEUSS
+D081;D081;110F 1173 11BC;D081;110F 1173 11BC; # (킁; 킁; 킁; 킁; 킁; ) HANGUL SYLLABLE KEUNG
+D082;D082;110F 1173 11BD;D082;110F 1173 11BD; # (킂; 킂; 킂; 킂; 킂; ) HANGUL SYLLABLE KEUJ
+D083;D083;110F 1173 11BE;D083;110F 1173 11BE; # (킃; 킃; 킃; 킃; 킃; ) HANGUL SYLLABLE KEUC
+D084;D084;110F 1173 11BF;D084;110F 1173 11BF; # (킄; 킄; 킄; 킄; 킄; ) HANGUL SYLLABLE KEUK
+D085;D085;110F 1173 11C0;D085;110F 1173 11C0; # (킅; 킅; 킅; 킅; 킅; ) HANGUL SYLLABLE KEUT
+D086;D086;110F 1173 11C1;D086;110F 1173 11C1; # (킆; 킆; 킆; 킆; 킆; ) HANGUL SYLLABLE KEUP
+D087;D087;110F 1173 11C2;D087;110F 1173 11C2; # (킇; 킇; 킇; 킇; 킇; ) HANGUL SYLLABLE KEUH
+D088;D088;110F 1174;D088;110F 1174; # (킈; 킈; 킈; 킈; 킈; ) HANGUL SYLLABLE KYI
+D089;D089;110F 1174 11A8;D089;110F 1174 11A8; # (킉; 킉; 킉; 킉; 킉; ) HANGUL SYLLABLE KYIG
+D08A;D08A;110F 1174 11A9;D08A;110F 1174 11A9; # (킊; 킊; 킊; 킊; 킊; ) HANGUL SYLLABLE KYIGG
+D08B;D08B;110F 1174 11AA;D08B;110F 1174 11AA; # (킋; 킋; 킋; 킋; 킋; ) HANGUL SYLLABLE KYIGS
+D08C;D08C;110F 1174 11AB;D08C;110F 1174 11AB; # (킌; 킌; 킌; 킌; 킌; ) HANGUL SYLLABLE KYIN
+D08D;D08D;110F 1174 11AC;D08D;110F 1174 11AC; # (킍; 킍; 킍; 킍; 킍; ) HANGUL SYLLABLE KYINJ
+D08E;D08E;110F 1174 11AD;D08E;110F 1174 11AD; # (킎; 킎; 킎; 킎; 킎; ) HANGUL SYLLABLE KYINH
+D08F;D08F;110F 1174 11AE;D08F;110F 1174 11AE; # (킏; 킏; 킏; 킏; 킏; ) HANGUL SYLLABLE KYID
+D090;D090;110F 1174 11AF;D090;110F 1174 11AF; # (킐; 킐; 킐; 킐; 킐; ) HANGUL SYLLABLE KYIL
+D091;D091;110F 1174 11B0;D091;110F 1174 11B0; # (킑; 킑; 킑; 킑; 킑; ) HANGUL SYLLABLE KYILG
+D092;D092;110F 1174 11B1;D092;110F 1174 11B1; # (킒; 킒; 킒; 킒; 킒; ) HANGUL SYLLABLE KYILM
+D093;D093;110F 1174 11B2;D093;110F 1174 11B2; # (킓; 킓; 킓; 킓; 킓; ) HANGUL SYLLABLE KYILB
+D094;D094;110F 1174 11B3;D094;110F 1174 11B3; # (킔; 킔; 킔; 킔; 킔; ) HANGUL SYLLABLE KYILS
+D095;D095;110F 1174 11B4;D095;110F 1174 11B4; # (킕; 킕; 킕; 킕; 킕; ) HANGUL SYLLABLE KYILT
+D096;D096;110F 1174 11B5;D096;110F 1174 11B5; # (킖; 킖; 킖; 킖; 킖; ) HANGUL SYLLABLE KYILP
+D097;D097;110F 1174 11B6;D097;110F 1174 11B6; # (킗; 킗; 킗; 킗; 킗; ) HANGUL SYLLABLE KYILH
+D098;D098;110F 1174 11B7;D098;110F 1174 11B7; # (킘; 킘; 킘; 킘; 킘; ) HANGUL SYLLABLE KYIM
+D099;D099;110F 1174 11B8;D099;110F 1174 11B8; # (킙; 킙; 킙; 킙; 킙; ) HANGUL SYLLABLE KYIB
+D09A;D09A;110F 1174 11B9;D09A;110F 1174 11B9; # (킚; 킚; 킚; 킚; 킚; ) HANGUL SYLLABLE KYIBS
+D09B;D09B;110F 1174 11BA;D09B;110F 1174 11BA; # (킛; 킛; 킛; 킛; 킛; ) HANGUL SYLLABLE KYIS
+D09C;D09C;110F 1174 11BB;D09C;110F 1174 11BB; # (킜; 킜; 킜; 킜; 킜; ) HANGUL SYLLABLE KYISS
+D09D;D09D;110F 1174 11BC;D09D;110F 1174 11BC; # (킝; 킝; 킝; 킝; 킝; ) HANGUL SYLLABLE KYING
+D09E;D09E;110F 1174 11BD;D09E;110F 1174 11BD; # (킞; 킞; 킞; 킞; 킞; ) HANGUL SYLLABLE KYIJ
+D09F;D09F;110F 1174 11BE;D09F;110F 1174 11BE; # (킟; 킟; 킟; 킟; 킟; ) HANGUL SYLLABLE KYIC
+D0A0;D0A0;110F 1174 11BF;D0A0;110F 1174 11BF; # (킠; 킠; 킠; 킠; 킠; ) HANGUL SYLLABLE KYIK
+D0A1;D0A1;110F 1174 11C0;D0A1;110F 1174 11C0; # (킡; 킡; 킡; 킡; 킡; ) HANGUL SYLLABLE KYIT
+D0A2;D0A2;110F 1174 11C1;D0A2;110F 1174 11C1; # (킢; 킢; 킢; 킢; 킢; ) HANGUL SYLLABLE KYIP
+D0A3;D0A3;110F 1174 11C2;D0A3;110F 1174 11C2; # (킣; 킣; 킣; 킣; 킣; ) HANGUL SYLLABLE KYIH
+D0A4;D0A4;110F 1175;D0A4;110F 1175; # (키; 키; 키; 키; 키; ) HANGUL SYLLABLE KI
+D0A5;D0A5;110F 1175 11A8;D0A5;110F 1175 11A8; # (킥; 킥; 킥; 킥; 킥; ) HANGUL SYLLABLE KIG
+D0A6;D0A6;110F 1175 11A9;D0A6;110F 1175 11A9; # (킦; 킦; 킦; 킦; 킦; ) HANGUL SYLLABLE KIGG
+D0A7;D0A7;110F 1175 11AA;D0A7;110F 1175 11AA; # (킧; 킧; 킧; 킧; 킧; ) HANGUL SYLLABLE KIGS
+D0A8;D0A8;110F 1175 11AB;D0A8;110F 1175 11AB; # (킨; 킨; 킨; 킨; 킨; ) HANGUL SYLLABLE KIN
+D0A9;D0A9;110F 1175 11AC;D0A9;110F 1175 11AC; # (킩; 킩; 킩; 킩; 킩; ) HANGUL SYLLABLE KINJ
+D0AA;D0AA;110F 1175 11AD;D0AA;110F 1175 11AD; # (킪; 킪; 킪; 킪; 킪; ) HANGUL SYLLABLE KINH
+D0AB;D0AB;110F 1175 11AE;D0AB;110F 1175 11AE; # (킫; 킫; 킫; 킫; 킫; ) HANGUL SYLLABLE KID
+D0AC;D0AC;110F 1175 11AF;D0AC;110F 1175 11AF; # (킬; 킬; 킬; 킬; 킬; ) HANGUL SYLLABLE KIL
+D0AD;D0AD;110F 1175 11B0;D0AD;110F 1175 11B0; # (킭; 킭; 킭; 킭; 킭; ) HANGUL SYLLABLE KILG
+D0AE;D0AE;110F 1175 11B1;D0AE;110F 1175 11B1; # (킮; 킮; 킮; 킮; 킮; ) HANGUL SYLLABLE KILM
+D0AF;D0AF;110F 1175 11B2;D0AF;110F 1175 11B2; # (킯; 킯; 킯; 킯; 킯; ) HANGUL SYLLABLE KILB
+D0B0;D0B0;110F 1175 11B3;D0B0;110F 1175 11B3; # (킰; 킰; 킰; 킰; 킰; ) HANGUL SYLLABLE KILS
+D0B1;D0B1;110F 1175 11B4;D0B1;110F 1175 11B4; # (킱; 킱; 킱; 킱; 킱; ) HANGUL SYLLABLE KILT
+D0B2;D0B2;110F 1175 11B5;D0B2;110F 1175 11B5; # (킲; 킲; 킲; 킲; 킲; ) HANGUL SYLLABLE KILP
+D0B3;D0B3;110F 1175 11B6;D0B3;110F 1175 11B6; # (킳; 킳; 킳; 킳; 킳; ) HANGUL SYLLABLE KILH
+D0B4;D0B4;110F 1175 11B7;D0B4;110F 1175 11B7; # (킴; 킴; 킴; 킴; 킴; ) HANGUL SYLLABLE KIM
+D0B5;D0B5;110F 1175 11B8;D0B5;110F 1175 11B8; # (킵; 킵; 킵; 킵; 킵; ) HANGUL SYLLABLE KIB
+D0B6;D0B6;110F 1175 11B9;D0B6;110F 1175 11B9; # (킶; 킶; 킶; 킶; 킶; ) HANGUL SYLLABLE KIBS
+D0B7;D0B7;110F 1175 11BA;D0B7;110F 1175 11BA; # (킷; 킷; 킷; 킷; 킷; ) HANGUL SYLLABLE KIS
+D0B8;D0B8;110F 1175 11BB;D0B8;110F 1175 11BB; # (킸; 킸; 킸; 킸; 킸; ) HANGUL SYLLABLE KISS
+D0B9;D0B9;110F 1175 11BC;D0B9;110F 1175 11BC; # (킹; 킹; 킹; 킹; 킹; ) HANGUL SYLLABLE KING
+D0BA;D0BA;110F 1175 11BD;D0BA;110F 1175 11BD; # (킺; 킺; 킺; 킺; 킺; ) HANGUL SYLLABLE KIJ
+D0BB;D0BB;110F 1175 11BE;D0BB;110F 1175 11BE; # (킻; 킻; 킻; 킻; 킻; ) HANGUL SYLLABLE KIC
+D0BC;D0BC;110F 1175 11BF;D0BC;110F 1175 11BF; # (킼; 킼; 킼; 킼; 킼; ) HANGUL SYLLABLE KIK
+D0BD;D0BD;110F 1175 11C0;D0BD;110F 1175 11C0; # (킽; 킽; 킽; 킽; 킽; ) HANGUL SYLLABLE KIT
+D0BE;D0BE;110F 1175 11C1;D0BE;110F 1175 11C1; # (킾; 킾; 킾; 킾; 킾; ) HANGUL SYLLABLE KIP
+D0BF;D0BF;110F 1175 11C2;D0BF;110F 1175 11C2; # (킿; 킿; 킿; 킿; 킿; ) HANGUL SYLLABLE KIH
+D0C0;D0C0;1110 1161;D0C0;1110 1161; # (타; 타; 타; 타; 타; ) HANGUL SYLLABLE TA
+D0C1;D0C1;1110 1161 11A8;D0C1;1110 1161 11A8; # (탁; 탁; 탁; 탁; 탁; ) HANGUL SYLLABLE TAG
+D0C2;D0C2;1110 1161 11A9;D0C2;1110 1161 11A9; # (탂; 탂; 탂; 탂; 탂; ) HANGUL SYLLABLE TAGG
+D0C3;D0C3;1110 1161 11AA;D0C3;1110 1161 11AA; # (탃; 탃; 탃; 탃; 탃; ) HANGUL SYLLABLE TAGS
+D0C4;D0C4;1110 1161 11AB;D0C4;1110 1161 11AB; # (탄; 탄; 탄; 탄; 탄; ) HANGUL SYLLABLE TAN
+D0C5;D0C5;1110 1161 11AC;D0C5;1110 1161 11AC; # (탅; 탅; 탅; 탅; 탅; ) HANGUL SYLLABLE TANJ
+D0C6;D0C6;1110 1161 11AD;D0C6;1110 1161 11AD; # (탆; 탆; 탆; 탆; 탆; ) HANGUL SYLLABLE TANH
+D0C7;D0C7;1110 1161 11AE;D0C7;1110 1161 11AE; # (탇; 탇; 탇; 탇; 탇; ) HANGUL SYLLABLE TAD
+D0C8;D0C8;1110 1161 11AF;D0C8;1110 1161 11AF; # (탈; 탈; 탈; 탈; 탈; ) HANGUL SYLLABLE TAL
+D0C9;D0C9;1110 1161 11B0;D0C9;1110 1161 11B0; # (탉; 탉; 탉; 탉; 탉; ) HANGUL SYLLABLE TALG
+D0CA;D0CA;1110 1161 11B1;D0CA;1110 1161 11B1; # (탊; 탊; 탊; 탊; 탊; ) HANGUL SYLLABLE TALM
+D0CB;D0CB;1110 1161 11B2;D0CB;1110 1161 11B2; # (탋; 탋; 탋; 탋; 탋; ) HANGUL SYLLABLE TALB
+D0CC;D0CC;1110 1161 11B3;D0CC;1110 1161 11B3; # (탌; 탌; 탌; 탌; 탌; ) HANGUL SYLLABLE TALS
+D0CD;D0CD;1110 1161 11B4;D0CD;1110 1161 11B4; # (탍; 탍; 탍; 탍; 탍; ) HANGUL SYLLABLE TALT
+D0CE;D0CE;1110 1161 11B5;D0CE;1110 1161 11B5; # (탎; 탎; 탎; 탎; 탎; ) HANGUL SYLLABLE TALP
+D0CF;D0CF;1110 1161 11B6;D0CF;1110 1161 11B6; # (탏; 탏; 탏; 탏; 탏; ) HANGUL SYLLABLE TALH
+D0D0;D0D0;1110 1161 11B7;D0D0;1110 1161 11B7; # (탐; 탐; 탐; 탐; 탐; ) HANGUL SYLLABLE TAM
+D0D1;D0D1;1110 1161 11B8;D0D1;1110 1161 11B8; # (탑; 탑; 탑; 탑; 탑; ) HANGUL SYLLABLE TAB
+D0D2;D0D2;1110 1161 11B9;D0D2;1110 1161 11B9; # (탒; 탒; 탒; 탒; 탒; ) HANGUL SYLLABLE TABS
+D0D3;D0D3;1110 1161 11BA;D0D3;1110 1161 11BA; # (탓; 탓; 탓; 탓; 탓; ) HANGUL SYLLABLE TAS
+D0D4;D0D4;1110 1161 11BB;D0D4;1110 1161 11BB; # (탔; 탔; 탔; 탔; 탔; ) HANGUL SYLLABLE TASS
+D0D5;D0D5;1110 1161 11BC;D0D5;1110 1161 11BC; # (탕; 탕; 탕; 탕; 탕; ) HANGUL SYLLABLE TANG
+D0D6;D0D6;1110 1161 11BD;D0D6;1110 1161 11BD; # (탖; 탖; 탖; 탖; 탖; ) HANGUL SYLLABLE TAJ
+D0D7;D0D7;1110 1161 11BE;D0D7;1110 1161 11BE; # (탗; 탗; 탗; 탗; 탗; ) HANGUL SYLLABLE TAC
+D0D8;D0D8;1110 1161 11BF;D0D8;1110 1161 11BF; # (탘; 탘; 탘; 탘; 탘; ) HANGUL SYLLABLE TAK
+D0D9;D0D9;1110 1161 11C0;D0D9;1110 1161 11C0; # (탙; 탙; 탙; 탙; 탙; ) HANGUL SYLLABLE TAT
+D0DA;D0DA;1110 1161 11C1;D0DA;1110 1161 11C1; # (탚; 탚; 탚; 탚; 탚; ) HANGUL SYLLABLE TAP
+D0DB;D0DB;1110 1161 11C2;D0DB;1110 1161 11C2; # (탛; 탛; 탛; 탛; 탛; ) HANGUL SYLLABLE TAH
+D0DC;D0DC;1110 1162;D0DC;1110 1162; # (태; 태; 태; 태; 태; ) HANGUL SYLLABLE TAE
+D0DD;D0DD;1110 1162 11A8;D0DD;1110 1162 11A8; # (택; 택; 택; 택; 택; ) HANGUL SYLLABLE TAEG
+D0DE;D0DE;1110 1162 11A9;D0DE;1110 1162 11A9; # (탞; 탞; 탞; 탞; 탞; ) HANGUL SYLLABLE TAEGG
+D0DF;D0DF;1110 1162 11AA;D0DF;1110 1162 11AA; # (탟; 탟; 탟; 탟; 탟; ) HANGUL SYLLABLE TAEGS
+D0E0;D0E0;1110 1162 11AB;D0E0;1110 1162 11AB; # (탠; 탠; 탠; 탠; 탠; ) HANGUL SYLLABLE TAEN
+D0E1;D0E1;1110 1162 11AC;D0E1;1110 1162 11AC; # (탡; 탡; 탡; 탡; 탡; ) HANGUL SYLLABLE TAENJ
+D0E2;D0E2;1110 1162 11AD;D0E2;1110 1162 11AD; # (탢; 탢; 탢; 탢; 탢; ) HANGUL SYLLABLE TAENH
+D0E3;D0E3;1110 1162 11AE;D0E3;1110 1162 11AE; # (탣; 탣; 탣; 탣; 탣; ) HANGUL SYLLABLE TAED
+D0E4;D0E4;1110 1162 11AF;D0E4;1110 1162 11AF; # (탤; 탤; 탤; 탤; 탤; ) HANGUL SYLLABLE TAEL
+D0E5;D0E5;1110 1162 11B0;D0E5;1110 1162 11B0; # (탥; 탥; 탥; 탥; 탥; ) HANGUL SYLLABLE TAELG
+D0E6;D0E6;1110 1162 11B1;D0E6;1110 1162 11B1; # (탦; 탦; 탦; 탦; 탦; ) HANGUL SYLLABLE TAELM
+D0E7;D0E7;1110 1162 11B2;D0E7;1110 1162 11B2; # (탧; 탧; 탧; 탧; 탧; ) HANGUL SYLLABLE TAELB
+D0E8;D0E8;1110 1162 11B3;D0E8;1110 1162 11B3; # (탨; 탨; 탨; 탨; 탨; ) HANGUL SYLLABLE TAELS
+D0E9;D0E9;1110 1162 11B4;D0E9;1110 1162 11B4; # (탩; 탩; 탩; 탩; 탩; ) HANGUL SYLLABLE TAELT
+D0EA;D0EA;1110 1162 11B5;D0EA;1110 1162 11B5; # (탪; 탪; 탪; 탪; 탪; ) HANGUL SYLLABLE TAELP
+D0EB;D0EB;1110 1162 11B6;D0EB;1110 1162 11B6; # (탫; 탫; 탫; 탫; 탫; ) HANGUL SYLLABLE TAELH
+D0EC;D0EC;1110 1162 11B7;D0EC;1110 1162 11B7; # (탬; 탬; 탬; 탬; 탬; ) HANGUL SYLLABLE TAEM
+D0ED;D0ED;1110 1162 11B8;D0ED;1110 1162 11B8; # (탭; 탭; 탭; 탭; 탭; ) HANGUL SYLLABLE TAEB
+D0EE;D0EE;1110 1162 11B9;D0EE;1110 1162 11B9; # (탮; 탮; 탮; 탮; 탮; ) HANGUL SYLLABLE TAEBS
+D0EF;D0EF;1110 1162 11BA;D0EF;1110 1162 11BA; # (탯; 탯; 탯; 탯; 탯; ) HANGUL SYLLABLE TAES
+D0F0;D0F0;1110 1162 11BB;D0F0;1110 1162 11BB; # (탰; 탰; 탰; 탰; 탰; ) HANGUL SYLLABLE TAESS
+D0F1;D0F1;1110 1162 11BC;D0F1;1110 1162 11BC; # (탱; 탱; 탱; 탱; 탱; ) HANGUL SYLLABLE TAENG
+D0F2;D0F2;1110 1162 11BD;D0F2;1110 1162 11BD; # (탲; 탲; 탲; 탲; 탲; ) HANGUL SYLLABLE TAEJ
+D0F3;D0F3;1110 1162 11BE;D0F3;1110 1162 11BE; # (탳; 탳; 탳; 탳; 탳; ) HANGUL SYLLABLE TAEC
+D0F4;D0F4;1110 1162 11BF;D0F4;1110 1162 11BF; # (탴; 탴; 탴; 탴; 탴; ) HANGUL SYLLABLE TAEK
+D0F5;D0F5;1110 1162 11C0;D0F5;1110 1162 11C0; # (탵; 탵; 탵; 탵; 탵; ) HANGUL SYLLABLE TAET
+D0F6;D0F6;1110 1162 11C1;D0F6;1110 1162 11C1; # (탶; 탶; 탶; 탶; 탶; ) HANGUL SYLLABLE TAEP
+D0F7;D0F7;1110 1162 11C2;D0F7;1110 1162 11C2; # (탷; 탷; 탷; 탷; 탷; ) HANGUL SYLLABLE TAEH
+D0F8;D0F8;1110 1163;D0F8;1110 1163; # (탸; 탸; 탸; 탸; 탸; ) HANGUL SYLLABLE TYA
+D0F9;D0F9;1110 1163 11A8;D0F9;1110 1163 11A8; # (탹; 탹; 탹; 탹; 탹; ) HANGUL SYLLABLE TYAG
+D0FA;D0FA;1110 1163 11A9;D0FA;1110 1163 11A9; # (탺; 탺; 탺; 탺; 탺; ) HANGUL SYLLABLE TYAGG
+D0FB;D0FB;1110 1163 11AA;D0FB;1110 1163 11AA; # (탻; 탻; 탻; 탻; 탻; ) HANGUL SYLLABLE TYAGS
+D0FC;D0FC;1110 1163 11AB;D0FC;1110 1163 11AB; # (탼; 탼; 탼; 탼; 탼; ) HANGUL SYLLABLE TYAN
+D0FD;D0FD;1110 1163 11AC;D0FD;1110 1163 11AC; # (탽; 탽; 탽; 탽; 탽; ) HANGUL SYLLABLE TYANJ
+D0FE;D0FE;1110 1163 11AD;D0FE;1110 1163 11AD; # (탾; 탾; 탾; 탾; 탾; ) HANGUL SYLLABLE TYANH
+D0FF;D0FF;1110 1163 11AE;D0FF;1110 1163 11AE; # (탿; 탿; 탿; 탿; 탿; ) HANGUL SYLLABLE TYAD
+D100;D100;1110 1163 11AF;D100;1110 1163 11AF; # (턀; 턀; 턀; 턀; 턀; ) HANGUL SYLLABLE TYAL
+D101;D101;1110 1163 11B0;D101;1110 1163 11B0; # (턁; 턁; 턁; 턁; 턁; ) HANGUL SYLLABLE TYALG
+D102;D102;1110 1163 11B1;D102;1110 1163 11B1; # (턂; 턂; 턂; 턂; 턂; ) HANGUL SYLLABLE TYALM
+D103;D103;1110 1163 11B2;D103;1110 1163 11B2; # (턃; 턃; 턃; 턃; 턃; ) HANGUL SYLLABLE TYALB
+D104;D104;1110 1163 11B3;D104;1110 1163 11B3; # (턄; 턄; 턄; 턄; 턄; ) HANGUL SYLLABLE TYALS
+D105;D105;1110 1163 11B4;D105;1110 1163 11B4; # (턅; 턅; 턅; 턅; 턅; ) HANGUL SYLLABLE TYALT
+D106;D106;1110 1163 11B5;D106;1110 1163 11B5; # (턆; 턆; 턆; 턆; 턆; ) HANGUL SYLLABLE TYALP
+D107;D107;1110 1163 11B6;D107;1110 1163 11B6; # (턇; 턇; 턇; 턇; 턇; ) HANGUL SYLLABLE TYALH
+D108;D108;1110 1163 11B7;D108;1110 1163 11B7; # (턈; 턈; 턈; 턈; 턈; ) HANGUL SYLLABLE TYAM
+D109;D109;1110 1163 11B8;D109;1110 1163 11B8; # (턉; 턉; 턉; 턉; 턉; ) HANGUL SYLLABLE TYAB
+D10A;D10A;1110 1163 11B9;D10A;1110 1163 11B9; # (턊; 턊; 턊; 턊; 턊; ) HANGUL SYLLABLE TYABS
+D10B;D10B;1110 1163 11BA;D10B;1110 1163 11BA; # (턋; 턋; 턋; 턋; 턋; ) HANGUL SYLLABLE TYAS
+D10C;D10C;1110 1163 11BB;D10C;1110 1163 11BB; # (턌; 턌; 턌; 턌; 턌; ) HANGUL SYLLABLE TYASS
+D10D;D10D;1110 1163 11BC;D10D;1110 1163 11BC; # (턍; 턍; 턍; 턍; 턍; ) HANGUL SYLLABLE TYANG
+D10E;D10E;1110 1163 11BD;D10E;1110 1163 11BD; # (턎; 턎; 턎; 턎; 턎; ) HANGUL SYLLABLE TYAJ
+D10F;D10F;1110 1163 11BE;D10F;1110 1163 11BE; # (턏; 턏; 턏; 턏; 턏; ) HANGUL SYLLABLE TYAC
+D110;D110;1110 1163 11BF;D110;1110 1163 11BF; # (턐; 턐; 턐; 턐; 턐; ) HANGUL SYLLABLE TYAK
+D111;D111;1110 1163 11C0;D111;1110 1163 11C0; # (턑; 턑; 턑; 턑; 턑; ) HANGUL SYLLABLE TYAT
+D112;D112;1110 1163 11C1;D112;1110 1163 11C1; # (턒; 턒; 턒; 턒; 턒; ) HANGUL SYLLABLE TYAP
+D113;D113;1110 1163 11C2;D113;1110 1163 11C2; # (턓; 턓; 턓; 턓; 턓; ) HANGUL SYLLABLE TYAH
+D114;D114;1110 1164;D114;1110 1164; # (턔; 턔; 턔; 턔; 턔; ) HANGUL SYLLABLE TYAE
+D115;D115;1110 1164 11A8;D115;1110 1164 11A8; # (턕; 턕; 턕; 턕; 턕; ) HANGUL SYLLABLE TYAEG
+D116;D116;1110 1164 11A9;D116;1110 1164 11A9; # (턖; 턖; 턖; 턖; 턖; ) HANGUL SYLLABLE TYAEGG
+D117;D117;1110 1164 11AA;D117;1110 1164 11AA; # (턗; 턗; 턗; 턗; 턗; ) HANGUL SYLLABLE TYAEGS
+D118;D118;1110 1164 11AB;D118;1110 1164 11AB; # (턘; 턘; 턘; 턘; 턘; ) HANGUL SYLLABLE TYAEN
+D119;D119;1110 1164 11AC;D119;1110 1164 11AC; # (턙; 턙; 턙; 턙; 턙; ) HANGUL SYLLABLE TYAENJ
+D11A;D11A;1110 1164 11AD;D11A;1110 1164 11AD; # (턚; 턚; 턚; 턚; 턚; ) HANGUL SYLLABLE TYAENH
+D11B;D11B;1110 1164 11AE;D11B;1110 1164 11AE; # (턛; 턛; 턛; 턛; 턛; ) HANGUL SYLLABLE TYAED
+D11C;D11C;1110 1164 11AF;D11C;1110 1164 11AF; # (턜; 턜; 턜; 턜; 턜; ) HANGUL SYLLABLE TYAEL
+D11D;D11D;1110 1164 11B0;D11D;1110 1164 11B0; # (턝; 턝; 턝; 턝; 턝; ) HANGUL SYLLABLE TYAELG
+D11E;D11E;1110 1164 11B1;D11E;1110 1164 11B1; # (턞; 턞; 턞; 턞; 턞; ) HANGUL SYLLABLE TYAELM
+D11F;D11F;1110 1164 11B2;D11F;1110 1164 11B2; # (턟; 턟; 턟; 턟; 턟; ) HANGUL SYLLABLE TYAELB
+D120;D120;1110 1164 11B3;D120;1110 1164 11B3; # (턠; 턠; 턠; 턠; 턠; ) HANGUL SYLLABLE TYAELS
+D121;D121;1110 1164 11B4;D121;1110 1164 11B4; # (턡; 턡; 턡; 턡; 턡; ) HANGUL SYLLABLE TYAELT
+D122;D122;1110 1164 11B5;D122;1110 1164 11B5; # (턢; 턢; 턢; 턢; 턢; ) HANGUL SYLLABLE TYAELP
+D123;D123;1110 1164 11B6;D123;1110 1164 11B6; # (턣; 턣; 턣; 턣; 턣; ) HANGUL SYLLABLE TYAELH
+D124;D124;1110 1164 11B7;D124;1110 1164 11B7; # (턤; 턤; 턤; 턤; 턤; ) HANGUL SYLLABLE TYAEM
+D125;D125;1110 1164 11B8;D125;1110 1164 11B8; # (턥; 턥; 턥; 턥; 턥; ) HANGUL SYLLABLE TYAEB
+D126;D126;1110 1164 11B9;D126;1110 1164 11B9; # (턦; 턦; 턦; 턦; 턦; ) HANGUL SYLLABLE TYAEBS
+D127;D127;1110 1164 11BA;D127;1110 1164 11BA; # (턧; 턧; 턧; 턧; 턧; ) HANGUL SYLLABLE TYAES
+D128;D128;1110 1164 11BB;D128;1110 1164 11BB; # (턨; 턨; 턨; 턨; 턨; ) HANGUL SYLLABLE TYAESS
+D129;D129;1110 1164 11BC;D129;1110 1164 11BC; # (턩; 턩; 턩; 턩; 턩; ) HANGUL SYLLABLE TYAENG
+D12A;D12A;1110 1164 11BD;D12A;1110 1164 11BD; # (턪; 턪; 턪; 턪; 턪; ) HANGUL SYLLABLE TYAEJ
+D12B;D12B;1110 1164 11BE;D12B;1110 1164 11BE; # (턫; 턫; 턫; 턫; 턫; ) HANGUL SYLLABLE TYAEC
+D12C;D12C;1110 1164 11BF;D12C;1110 1164 11BF; # (턬; 턬; 턬; 턬; 턬; ) HANGUL SYLLABLE TYAEK
+D12D;D12D;1110 1164 11C0;D12D;1110 1164 11C0; # (턭; 턭; 턭; 턭; 턭; ) HANGUL SYLLABLE TYAET
+D12E;D12E;1110 1164 11C1;D12E;1110 1164 11C1; # (턮; 턮; 턮; 턮; 턮; ) HANGUL SYLLABLE TYAEP
+D12F;D12F;1110 1164 11C2;D12F;1110 1164 11C2; # (턯; 턯; 턯; 턯; 턯; ) HANGUL SYLLABLE TYAEH
+D130;D130;1110 1165;D130;1110 1165; # (터; 터; 터; 터; 터; ) HANGUL SYLLABLE TEO
+D131;D131;1110 1165 11A8;D131;1110 1165 11A8; # (턱; 턱; 턱; 턱; 턱; ) HANGUL SYLLABLE TEOG
+D132;D132;1110 1165 11A9;D132;1110 1165 11A9; # (턲; 턲; 턲; 턲; 턲; ) HANGUL SYLLABLE TEOGG
+D133;D133;1110 1165 11AA;D133;1110 1165 11AA; # (턳; 턳; 턳; 턳; 턳; ) HANGUL SYLLABLE TEOGS
+D134;D134;1110 1165 11AB;D134;1110 1165 11AB; # (턴; 턴; 턴; 턴; 턴; ) HANGUL SYLLABLE TEON
+D135;D135;1110 1165 11AC;D135;1110 1165 11AC; # (턵; 턵; 턵; 턵; 턵; ) HANGUL SYLLABLE TEONJ
+D136;D136;1110 1165 11AD;D136;1110 1165 11AD; # (턶; 턶; 턶; 턶; 턶; ) HANGUL SYLLABLE TEONH
+D137;D137;1110 1165 11AE;D137;1110 1165 11AE; # (턷; 턷; 턷; 턷; 턷; ) HANGUL SYLLABLE TEOD
+D138;D138;1110 1165 11AF;D138;1110 1165 11AF; # (털; 털; 털; 털; 털; ) HANGUL SYLLABLE TEOL
+D139;D139;1110 1165 11B0;D139;1110 1165 11B0; # (턹; 턹; 턹; 턹; 턹; ) HANGUL SYLLABLE TEOLG
+D13A;D13A;1110 1165 11B1;D13A;1110 1165 11B1; # (턺; 턺; 턺; 턺; 턺; ) HANGUL SYLLABLE TEOLM
+D13B;D13B;1110 1165 11B2;D13B;1110 1165 11B2; # (턻; 턻; 턻; 턻; 턻; ) HANGUL SYLLABLE TEOLB
+D13C;D13C;1110 1165 11B3;D13C;1110 1165 11B3; # (턼; 턼; 턼; 턼; 턼; ) HANGUL SYLLABLE TEOLS
+D13D;D13D;1110 1165 11B4;D13D;1110 1165 11B4; # (턽; 턽; 턽; 턽; 턽; ) HANGUL SYLLABLE TEOLT
+D13E;D13E;1110 1165 11B5;D13E;1110 1165 11B5; # (턾; 턾; 턾; 턾; 턾; ) HANGUL SYLLABLE TEOLP
+D13F;D13F;1110 1165 11B6;D13F;1110 1165 11B6; # (턿; 턿; 턿; 턿; 턿; ) HANGUL SYLLABLE TEOLH
+D140;D140;1110 1165 11B7;D140;1110 1165 11B7; # (텀; 텀; 텀; 텀; 텀; ) HANGUL SYLLABLE TEOM
+D141;D141;1110 1165 11B8;D141;1110 1165 11B8; # (텁; 텁; 텁; 텁; 텁; ) HANGUL SYLLABLE TEOB
+D142;D142;1110 1165 11B9;D142;1110 1165 11B9; # (텂; 텂; 텂; 텂; 텂; ) HANGUL SYLLABLE TEOBS
+D143;D143;1110 1165 11BA;D143;1110 1165 11BA; # (텃; 텃; 텃; 텃; 텃; ) HANGUL SYLLABLE TEOS
+D144;D144;1110 1165 11BB;D144;1110 1165 11BB; # (텄; 텄; 텄; 텄; 텄; ) HANGUL SYLLABLE TEOSS
+D145;D145;1110 1165 11BC;D145;1110 1165 11BC; # (텅; 텅; 텅; 텅; 텅; ) HANGUL SYLLABLE TEONG
+D146;D146;1110 1165 11BD;D146;1110 1165 11BD; # (텆; 텆; 텆; 텆; 텆; ) HANGUL SYLLABLE TEOJ
+D147;D147;1110 1165 11BE;D147;1110 1165 11BE; # (텇; 텇; 텇; 텇; 텇; ) HANGUL SYLLABLE TEOC
+D148;D148;1110 1165 11BF;D148;1110 1165 11BF; # (텈; 텈; 텈; 텈; 텈; ) HANGUL SYLLABLE TEOK
+D149;D149;1110 1165 11C0;D149;1110 1165 11C0; # (텉; 텉; 텉; 텉; 텉; ) HANGUL SYLLABLE TEOT
+D14A;D14A;1110 1165 11C1;D14A;1110 1165 11C1; # (텊; 텊; 텊; 텊; 텊; ) HANGUL SYLLABLE TEOP
+D14B;D14B;1110 1165 11C2;D14B;1110 1165 11C2; # (텋; 텋; 텋; 텋; 텋; ) HANGUL SYLLABLE TEOH
+D14C;D14C;1110 1166;D14C;1110 1166; # (테; 테; 테; 테; 테; ) HANGUL SYLLABLE TE
+D14D;D14D;1110 1166 11A8;D14D;1110 1166 11A8; # (텍; 텍; 텍; 텍; 텍; ) HANGUL SYLLABLE TEG
+D14E;D14E;1110 1166 11A9;D14E;1110 1166 11A9; # (텎; 텎; 텎; 텎; 텎; ) HANGUL SYLLABLE TEGG
+D14F;D14F;1110 1166 11AA;D14F;1110 1166 11AA; # (텏; 텏; 텏; 텏; 텏; ) HANGUL SYLLABLE TEGS
+D150;D150;1110 1166 11AB;D150;1110 1166 11AB; # (텐; 텐; 텐; 텐; 텐; ) HANGUL SYLLABLE TEN
+D151;D151;1110 1166 11AC;D151;1110 1166 11AC; # (텑; 텑; 텑; 텑; 텑; ) HANGUL SYLLABLE TENJ
+D152;D152;1110 1166 11AD;D152;1110 1166 11AD; # (텒; 텒; 텒; 텒; 텒; ) HANGUL SYLLABLE TENH
+D153;D153;1110 1166 11AE;D153;1110 1166 11AE; # (텓; 텓; 텓; 텓; 텓; ) HANGUL SYLLABLE TED
+D154;D154;1110 1166 11AF;D154;1110 1166 11AF; # (텔; 텔; 텔; 텔; 텔; ) HANGUL SYLLABLE TEL
+D155;D155;1110 1166 11B0;D155;1110 1166 11B0; # (텕; 텕; 텕; 텕; 텕; ) HANGUL SYLLABLE TELG
+D156;D156;1110 1166 11B1;D156;1110 1166 11B1; # (텖; 텖; 텖; 텖; 텖; ) HANGUL SYLLABLE TELM
+D157;D157;1110 1166 11B2;D157;1110 1166 11B2; # (텗; 텗; 텗; 텗; 텗; ) HANGUL SYLLABLE TELB
+D158;D158;1110 1166 11B3;D158;1110 1166 11B3; # (텘; 텘; 텘; 텘; 텘; ) HANGUL SYLLABLE TELS
+D159;D159;1110 1166 11B4;D159;1110 1166 11B4; # (텙; 텙; 텙; 텙; 텙; ) HANGUL SYLLABLE TELT
+D15A;D15A;1110 1166 11B5;D15A;1110 1166 11B5; # (텚; 텚; 텚; 텚; 텚; ) HANGUL SYLLABLE TELP
+D15B;D15B;1110 1166 11B6;D15B;1110 1166 11B6; # (텛; 텛; 텛; 텛; 텛; ) HANGUL SYLLABLE TELH
+D15C;D15C;1110 1166 11B7;D15C;1110 1166 11B7; # (템; 템; 템; 템; 템; ) HANGUL SYLLABLE TEM
+D15D;D15D;1110 1166 11B8;D15D;1110 1166 11B8; # (텝; 텝; 텝; 텝; 텝; ) HANGUL SYLLABLE TEB
+D15E;D15E;1110 1166 11B9;D15E;1110 1166 11B9; # (텞; 텞; 텞; 텞; 텞; ) HANGUL SYLLABLE TEBS
+D15F;D15F;1110 1166 11BA;D15F;1110 1166 11BA; # (텟; 텟; 텟; 텟; 텟; ) HANGUL SYLLABLE TES
+D160;D160;1110 1166 11BB;D160;1110 1166 11BB; # (텠; 텠; 텠; 텠; 텠; ) HANGUL SYLLABLE TESS
+D161;D161;1110 1166 11BC;D161;1110 1166 11BC; # (텡; 텡; 텡; 텡; 텡; ) HANGUL SYLLABLE TENG
+D162;D162;1110 1166 11BD;D162;1110 1166 11BD; # (텢; 텢; 텢; 텢; 텢; ) HANGUL SYLLABLE TEJ
+D163;D163;1110 1166 11BE;D163;1110 1166 11BE; # (텣; 텣; 텣; 텣; 텣; ) HANGUL SYLLABLE TEC
+D164;D164;1110 1166 11BF;D164;1110 1166 11BF; # (텤; 텤; 텤; 텤; 텤; ) HANGUL SYLLABLE TEK
+D165;D165;1110 1166 11C0;D165;1110 1166 11C0; # (텥; 텥; 텥; 텥; 텥; ) HANGUL SYLLABLE TET
+D166;D166;1110 1166 11C1;D166;1110 1166 11C1; # (텦; 텦; 텦; 텦; 텦; ) HANGUL SYLLABLE TEP
+D167;D167;1110 1166 11C2;D167;1110 1166 11C2; # (텧; 텧; 텧; 텧; 텧; ) HANGUL SYLLABLE TEH
+D168;D168;1110 1167;D168;1110 1167; # (텨; 텨; 텨; 텨; 텨; ) HANGUL SYLLABLE TYEO
+D169;D169;1110 1167 11A8;D169;1110 1167 11A8; # (텩; 텩; 텩; 텩; 텩; ) HANGUL SYLLABLE TYEOG
+D16A;D16A;1110 1167 11A9;D16A;1110 1167 11A9; # (텪; 텪; 텪; 텪; 텪; ) HANGUL SYLLABLE TYEOGG
+D16B;D16B;1110 1167 11AA;D16B;1110 1167 11AA; # (텫; 텫; 텫; 텫; 텫; ) HANGUL SYLLABLE TYEOGS
+D16C;D16C;1110 1167 11AB;D16C;1110 1167 11AB; # (텬; 텬; 텬; 텬; 텬; ) HANGUL SYLLABLE TYEON
+D16D;D16D;1110 1167 11AC;D16D;1110 1167 11AC; # (텭; 텭; 텭; 텭; 텭; ) HANGUL SYLLABLE TYEONJ
+D16E;D16E;1110 1167 11AD;D16E;1110 1167 11AD; # (텮; 텮; 텮; 텮; 텮; ) HANGUL SYLLABLE TYEONH
+D16F;D16F;1110 1167 11AE;D16F;1110 1167 11AE; # (텯; 텯; 텯; 텯; 텯; ) HANGUL SYLLABLE TYEOD
+D170;D170;1110 1167 11AF;D170;1110 1167 11AF; # (텰; 텰; 텰; 텰; 텰; ) HANGUL SYLLABLE TYEOL
+D171;D171;1110 1167 11B0;D171;1110 1167 11B0; # (텱; 텱; 텱; 텱; 텱; ) HANGUL SYLLABLE TYEOLG
+D172;D172;1110 1167 11B1;D172;1110 1167 11B1; # (텲; 텲; 텲; 텲; 텲; ) HANGUL SYLLABLE TYEOLM
+D173;D173;1110 1167 11B2;D173;1110 1167 11B2; # (텳; 텳; 텳; 텳; 텳; ) HANGUL SYLLABLE TYEOLB
+D174;D174;1110 1167 11B3;D174;1110 1167 11B3; # (텴; 텴; 텴; 텴; 텴; ) HANGUL SYLLABLE TYEOLS
+D175;D175;1110 1167 11B4;D175;1110 1167 11B4; # (텵; 텵; 텵; 텵; 텵; ) HANGUL SYLLABLE TYEOLT
+D176;D176;1110 1167 11B5;D176;1110 1167 11B5; # (텶; 텶; 텶; 텶; 텶; ) HANGUL SYLLABLE TYEOLP
+D177;D177;1110 1167 11B6;D177;1110 1167 11B6; # (텷; 텷; 텷; 텷; 텷; ) HANGUL SYLLABLE TYEOLH
+D178;D178;1110 1167 11B7;D178;1110 1167 11B7; # (텸; 텸; 텸; 텸; 텸; ) HANGUL SYLLABLE TYEOM
+D179;D179;1110 1167 11B8;D179;1110 1167 11B8; # (텹; 텹; 텹; 텹; 텹; ) HANGUL SYLLABLE TYEOB
+D17A;D17A;1110 1167 11B9;D17A;1110 1167 11B9; # (텺; 텺; 텺; 텺; 텺; ) HANGUL SYLLABLE TYEOBS
+D17B;D17B;1110 1167 11BA;D17B;1110 1167 11BA; # (텻; 텻; 텻; 텻; 텻; ) HANGUL SYLLABLE TYEOS
+D17C;D17C;1110 1167 11BB;D17C;1110 1167 11BB; # (텼; 텼; 텼; 텼; 텼; ) HANGUL SYLLABLE TYEOSS
+D17D;D17D;1110 1167 11BC;D17D;1110 1167 11BC; # (텽; 텽; 텽; 텽; 텽; ) HANGUL SYLLABLE TYEONG
+D17E;D17E;1110 1167 11BD;D17E;1110 1167 11BD; # (텾; 텾; 텾; 텾; 텾; ) HANGUL SYLLABLE TYEOJ
+D17F;D17F;1110 1167 11BE;D17F;1110 1167 11BE; # (텿; 텿; 텿; 텿; 텿; ) HANGUL SYLLABLE TYEOC
+D180;D180;1110 1167 11BF;D180;1110 1167 11BF; # (톀; 톀; 톀; 톀; 톀; ) HANGUL SYLLABLE TYEOK
+D181;D181;1110 1167 11C0;D181;1110 1167 11C0; # (톁; 톁; 톁; 톁; 톁; ) HANGUL SYLLABLE TYEOT
+D182;D182;1110 1167 11C1;D182;1110 1167 11C1; # (톂; 톂; 톂; 톂; 톂; ) HANGUL SYLLABLE TYEOP
+D183;D183;1110 1167 11C2;D183;1110 1167 11C2; # (톃; 톃; 톃; 톃; 톃; ) HANGUL SYLLABLE TYEOH
+D184;D184;1110 1168;D184;1110 1168; # (톄; 톄; 톄; 톄; 톄; ) HANGUL SYLLABLE TYE
+D185;D185;1110 1168 11A8;D185;1110 1168 11A8; # (톅; 톅; 톅; 톅; 톅; ) HANGUL SYLLABLE TYEG
+D186;D186;1110 1168 11A9;D186;1110 1168 11A9; # (톆; 톆; 톆; 톆; 톆; ) HANGUL SYLLABLE TYEGG
+D187;D187;1110 1168 11AA;D187;1110 1168 11AA; # (톇; 톇; 톇; 톇; 톇; ) HANGUL SYLLABLE TYEGS
+D188;D188;1110 1168 11AB;D188;1110 1168 11AB; # (톈; 톈; 톈; 톈; 톈; ) HANGUL SYLLABLE TYEN
+D189;D189;1110 1168 11AC;D189;1110 1168 11AC; # (톉; 톉; 톉; 톉; 톉; ) HANGUL SYLLABLE TYENJ
+D18A;D18A;1110 1168 11AD;D18A;1110 1168 11AD; # (톊; 톊; 톊; 톊; 톊; ) HANGUL SYLLABLE TYENH
+D18B;D18B;1110 1168 11AE;D18B;1110 1168 11AE; # (톋; 톋; 톋; 톋; 톋; ) HANGUL SYLLABLE TYED
+D18C;D18C;1110 1168 11AF;D18C;1110 1168 11AF; # (톌; 톌; 톌; 톌; 톌; ) HANGUL SYLLABLE TYEL
+D18D;D18D;1110 1168 11B0;D18D;1110 1168 11B0; # (톍; 톍; 톍; 톍; 톍; ) HANGUL SYLLABLE TYELG
+D18E;D18E;1110 1168 11B1;D18E;1110 1168 11B1; # (톎; 톎; 톎; 톎; 톎; ) HANGUL SYLLABLE TYELM
+D18F;D18F;1110 1168 11B2;D18F;1110 1168 11B2; # (톏; 톏; 톏; 톏; 톏; ) HANGUL SYLLABLE TYELB
+D190;D190;1110 1168 11B3;D190;1110 1168 11B3; # (톐; 톐; 톐; 톐; 톐; ) HANGUL SYLLABLE TYELS
+D191;D191;1110 1168 11B4;D191;1110 1168 11B4; # (톑; 톑; 톑; 톑; 톑; ) HANGUL SYLLABLE TYELT
+D192;D192;1110 1168 11B5;D192;1110 1168 11B5; # (톒; 톒; 톒; 톒; 톒; ) HANGUL SYLLABLE TYELP
+D193;D193;1110 1168 11B6;D193;1110 1168 11B6; # (톓; 톓; 톓; 톓; 톓; ) HANGUL SYLLABLE TYELH
+D194;D194;1110 1168 11B7;D194;1110 1168 11B7; # (톔; 톔; 톔; 톔; 톔; ) HANGUL SYLLABLE TYEM
+D195;D195;1110 1168 11B8;D195;1110 1168 11B8; # (톕; 톕; 톕; 톕; 톕; ) HANGUL SYLLABLE TYEB
+D196;D196;1110 1168 11B9;D196;1110 1168 11B9; # (톖; 톖; 톖; 톖; 톖; ) HANGUL SYLLABLE TYEBS
+D197;D197;1110 1168 11BA;D197;1110 1168 11BA; # (톗; 톗; 톗; 톗; 톗; ) HANGUL SYLLABLE TYES
+D198;D198;1110 1168 11BB;D198;1110 1168 11BB; # (톘; 톘; 톘; 톘; 톘; ) HANGUL SYLLABLE TYESS
+D199;D199;1110 1168 11BC;D199;1110 1168 11BC; # (톙; 톙; 톙; 톙; 톙; ) HANGUL SYLLABLE TYENG
+D19A;D19A;1110 1168 11BD;D19A;1110 1168 11BD; # (톚; 톚; 톚; 톚; 톚; ) HANGUL SYLLABLE TYEJ
+D19B;D19B;1110 1168 11BE;D19B;1110 1168 11BE; # (톛; 톛; 톛; 톛; 톛; ) HANGUL SYLLABLE TYEC
+D19C;D19C;1110 1168 11BF;D19C;1110 1168 11BF; # (톜; 톜; 톜; 톜; 톜; ) HANGUL SYLLABLE TYEK
+D19D;D19D;1110 1168 11C0;D19D;1110 1168 11C0; # (톝; 톝; 톝; 톝; 톝; ) HANGUL SYLLABLE TYET
+D19E;D19E;1110 1168 11C1;D19E;1110 1168 11C1; # (톞; 톞; 톞; 톞; 톞; ) HANGUL SYLLABLE TYEP
+D19F;D19F;1110 1168 11C2;D19F;1110 1168 11C2; # (톟; 톟; 톟; 톟; 톟; ) HANGUL SYLLABLE TYEH
+D1A0;D1A0;1110 1169;D1A0;1110 1169; # (토; 토; 토; 토; 토; ) HANGUL SYLLABLE TO
+D1A1;D1A1;1110 1169 11A8;D1A1;1110 1169 11A8; # (톡; 톡; 톡; 톡; 톡; ) HANGUL SYLLABLE TOG
+D1A2;D1A2;1110 1169 11A9;D1A2;1110 1169 11A9; # (톢; 톢; 톢; 톢; 톢; ) HANGUL SYLLABLE TOGG
+D1A3;D1A3;1110 1169 11AA;D1A3;1110 1169 11AA; # (톣; 톣; 톣; 톣; 톣; ) HANGUL SYLLABLE TOGS
+D1A4;D1A4;1110 1169 11AB;D1A4;1110 1169 11AB; # (톤; 톤; 톤; 톤; 톤; ) HANGUL SYLLABLE TON
+D1A5;D1A5;1110 1169 11AC;D1A5;1110 1169 11AC; # (톥; 톥; 톥; 톥; 톥; ) HANGUL SYLLABLE TONJ
+D1A6;D1A6;1110 1169 11AD;D1A6;1110 1169 11AD; # (톦; 톦; 톦; 톦; 톦; ) HANGUL SYLLABLE TONH
+D1A7;D1A7;1110 1169 11AE;D1A7;1110 1169 11AE; # (톧; 톧; 톧; 톧; 톧; ) HANGUL SYLLABLE TOD
+D1A8;D1A8;1110 1169 11AF;D1A8;1110 1169 11AF; # (톨; 톨; 톨; 톨; 톨; ) HANGUL SYLLABLE TOL
+D1A9;D1A9;1110 1169 11B0;D1A9;1110 1169 11B0; # (톩; 톩; 톩; 톩; 톩; ) HANGUL SYLLABLE TOLG
+D1AA;D1AA;1110 1169 11B1;D1AA;1110 1169 11B1; # (톪; 톪; 톪; 톪; 톪; ) HANGUL SYLLABLE TOLM
+D1AB;D1AB;1110 1169 11B2;D1AB;1110 1169 11B2; # (톫; 톫; 톫; 톫; 톫; ) HANGUL SYLLABLE TOLB
+D1AC;D1AC;1110 1169 11B3;D1AC;1110 1169 11B3; # (톬; 톬; 톬; 톬; 톬; ) HANGUL SYLLABLE TOLS
+D1AD;D1AD;1110 1169 11B4;D1AD;1110 1169 11B4; # (톭; 톭; 톭; 톭; 톭; ) HANGUL SYLLABLE TOLT
+D1AE;D1AE;1110 1169 11B5;D1AE;1110 1169 11B5; # (톮; 톮; 톮; 톮; 톮; ) HANGUL SYLLABLE TOLP
+D1AF;D1AF;1110 1169 11B6;D1AF;1110 1169 11B6; # (톯; 톯; 톯; 톯; 톯; ) HANGUL SYLLABLE TOLH
+D1B0;D1B0;1110 1169 11B7;D1B0;1110 1169 11B7; # (톰; 톰; 톰; 톰; 톰; ) HANGUL SYLLABLE TOM
+D1B1;D1B1;1110 1169 11B8;D1B1;1110 1169 11B8; # (톱; 톱; 톱; 톱; 톱; ) HANGUL SYLLABLE TOB
+D1B2;D1B2;1110 1169 11B9;D1B2;1110 1169 11B9; # (톲; 톲; 톲; 톲; 톲; ) HANGUL SYLLABLE TOBS
+D1B3;D1B3;1110 1169 11BA;D1B3;1110 1169 11BA; # (톳; 톳; 톳; 톳; 톳; ) HANGUL SYLLABLE TOS
+D1B4;D1B4;1110 1169 11BB;D1B4;1110 1169 11BB; # (톴; 톴; 톴; 톴; 톴; ) HANGUL SYLLABLE TOSS
+D1B5;D1B5;1110 1169 11BC;D1B5;1110 1169 11BC; # (통; 통; 통; 통; 통; ) HANGUL SYLLABLE TONG
+D1B6;D1B6;1110 1169 11BD;D1B6;1110 1169 11BD; # (톶; 톶; 톶; 톶; 톶; ) HANGUL SYLLABLE TOJ
+D1B7;D1B7;1110 1169 11BE;D1B7;1110 1169 11BE; # (톷; 톷; 톷; 톷; 톷; ) HANGUL SYLLABLE TOC
+D1B8;D1B8;1110 1169 11BF;D1B8;1110 1169 11BF; # (톸; 톸; 톸; 톸; 톸; ) HANGUL SYLLABLE TOK
+D1B9;D1B9;1110 1169 11C0;D1B9;1110 1169 11C0; # (톹; 톹; 톹; 톹; 톹; ) HANGUL SYLLABLE TOT
+D1BA;D1BA;1110 1169 11C1;D1BA;1110 1169 11C1; # (톺; 톺; 톺; 톺; 톺; ) HANGUL SYLLABLE TOP
+D1BB;D1BB;1110 1169 11C2;D1BB;1110 1169 11C2; # (톻; 톻; 톻; 톻; 톻; ) HANGUL SYLLABLE TOH
+D1BC;D1BC;1110 116A;D1BC;1110 116A; # (톼; 톼; 톼; 톼; 톼; ) HANGUL SYLLABLE TWA
+D1BD;D1BD;1110 116A 11A8;D1BD;1110 116A 11A8; # (톽; 톽; 톽; 톽; 톽; ) HANGUL SYLLABLE TWAG
+D1BE;D1BE;1110 116A 11A9;D1BE;1110 116A 11A9; # (톾; 톾; 톾; 톾; 톾; ) HANGUL SYLLABLE TWAGG
+D1BF;D1BF;1110 116A 11AA;D1BF;1110 116A 11AA; # (톿; 톿; 톿; 톿; 톿; ) HANGUL SYLLABLE TWAGS
+D1C0;D1C0;1110 116A 11AB;D1C0;1110 116A 11AB; # (퇀; 퇀; 퇀; 퇀; 퇀; ) HANGUL SYLLABLE TWAN
+D1C1;D1C1;1110 116A 11AC;D1C1;1110 116A 11AC; # (퇁; 퇁; 퇁; 퇁; 퇁; ) HANGUL SYLLABLE TWANJ
+D1C2;D1C2;1110 116A 11AD;D1C2;1110 116A 11AD; # (퇂; 퇂; 퇂; 퇂; 퇂; ) HANGUL SYLLABLE TWANH
+D1C3;D1C3;1110 116A 11AE;D1C3;1110 116A 11AE; # (퇃; 퇃; 퇃; 퇃; 퇃; ) HANGUL SYLLABLE TWAD
+D1C4;D1C4;1110 116A 11AF;D1C4;1110 116A 11AF; # (퇄; 퇄; 퇄; 퇄; 퇄; ) HANGUL SYLLABLE TWAL
+D1C5;D1C5;1110 116A 11B0;D1C5;1110 116A 11B0; # (퇅; 퇅; 퇅; 퇅; 퇅; ) HANGUL SYLLABLE TWALG
+D1C6;D1C6;1110 116A 11B1;D1C6;1110 116A 11B1; # (퇆; 퇆; 퇆; 퇆; 퇆; ) HANGUL SYLLABLE TWALM
+D1C7;D1C7;1110 116A 11B2;D1C7;1110 116A 11B2; # (퇇; 퇇; 퇇; 퇇; 퇇; ) HANGUL SYLLABLE TWALB
+D1C8;D1C8;1110 116A 11B3;D1C8;1110 116A 11B3; # (퇈; 퇈; 퇈; 퇈; 퇈; ) HANGUL SYLLABLE TWALS
+D1C9;D1C9;1110 116A 11B4;D1C9;1110 116A 11B4; # (퇉; 퇉; 퇉; 퇉; 퇉; ) HANGUL SYLLABLE TWALT
+D1CA;D1CA;1110 116A 11B5;D1CA;1110 116A 11B5; # (퇊; 퇊; 퇊; 퇊; 퇊; ) HANGUL SYLLABLE TWALP
+D1CB;D1CB;1110 116A 11B6;D1CB;1110 116A 11B6; # (퇋; 퇋; 퇋; 퇋; 퇋; ) HANGUL SYLLABLE TWALH
+D1CC;D1CC;1110 116A 11B7;D1CC;1110 116A 11B7; # (퇌; 퇌; 퇌; 퇌; 퇌; ) HANGUL SYLLABLE TWAM
+D1CD;D1CD;1110 116A 11B8;D1CD;1110 116A 11B8; # (퇍; 퇍; 퇍; 퇍; 퇍; ) HANGUL SYLLABLE TWAB
+D1CE;D1CE;1110 116A 11B9;D1CE;1110 116A 11B9; # (퇎; 퇎; 퇎; 퇎; 퇎; ) HANGUL SYLLABLE TWABS
+D1CF;D1CF;1110 116A 11BA;D1CF;1110 116A 11BA; # (퇏; 퇏; 퇏; 퇏; 퇏; ) HANGUL SYLLABLE TWAS
+D1D0;D1D0;1110 116A 11BB;D1D0;1110 116A 11BB; # (퇐; 퇐; 퇐; 퇐; 퇐; ) HANGUL SYLLABLE TWASS
+D1D1;D1D1;1110 116A 11BC;D1D1;1110 116A 11BC; # (퇑; 퇑; 퇑; 퇑; 퇑; ) HANGUL SYLLABLE TWANG
+D1D2;D1D2;1110 116A 11BD;D1D2;1110 116A 11BD; # (퇒; 퇒; 퇒; 퇒; 퇒; ) HANGUL SYLLABLE TWAJ
+D1D3;D1D3;1110 116A 11BE;D1D3;1110 116A 11BE; # (퇓; 퇓; 퇓; 퇓; 퇓; ) HANGUL SYLLABLE TWAC
+D1D4;D1D4;1110 116A 11BF;D1D4;1110 116A 11BF; # (퇔; 퇔; 퇔; 퇔; 퇔; ) HANGUL SYLLABLE TWAK
+D1D5;D1D5;1110 116A 11C0;D1D5;1110 116A 11C0; # (퇕; 퇕; 퇕; 퇕; 퇕; ) HANGUL SYLLABLE TWAT
+D1D6;D1D6;1110 116A 11C1;D1D6;1110 116A 11C1; # (퇖; 퇖; 퇖; 퇖; 퇖; ) HANGUL SYLLABLE TWAP
+D1D7;D1D7;1110 116A 11C2;D1D7;1110 116A 11C2; # (퇗; 퇗; 퇗; 퇗; 퇗; ) HANGUL SYLLABLE TWAH
+D1D8;D1D8;1110 116B;D1D8;1110 116B; # (퇘; 퇘; 퇘; 퇘; 퇘; ) HANGUL SYLLABLE TWAE
+D1D9;D1D9;1110 116B 11A8;D1D9;1110 116B 11A8; # (퇙; 퇙; 퇙; 퇙; 퇙; ) HANGUL SYLLABLE TWAEG
+D1DA;D1DA;1110 116B 11A9;D1DA;1110 116B 11A9; # (퇚; 퇚; 퇚; 퇚; 퇚; ) HANGUL SYLLABLE TWAEGG
+D1DB;D1DB;1110 116B 11AA;D1DB;1110 116B 11AA; # (퇛; 퇛; 퇛; 퇛; 퇛; ) HANGUL SYLLABLE TWAEGS
+D1DC;D1DC;1110 116B 11AB;D1DC;1110 116B 11AB; # (퇜; 퇜; 퇜; 퇜; 퇜; ) HANGUL SYLLABLE TWAEN
+D1DD;D1DD;1110 116B 11AC;D1DD;1110 116B 11AC; # (퇝; 퇝; 퇝; 퇝; 퇝; ) HANGUL SYLLABLE TWAENJ
+D1DE;D1DE;1110 116B 11AD;D1DE;1110 116B 11AD; # (퇞; 퇞; 퇞; 퇞; 퇞; ) HANGUL SYLLABLE TWAENH
+D1DF;D1DF;1110 116B 11AE;D1DF;1110 116B 11AE; # (퇟; 퇟; 퇟; 퇟; 퇟; ) HANGUL SYLLABLE TWAED
+D1E0;D1E0;1110 116B 11AF;D1E0;1110 116B 11AF; # (퇠; 퇠; 퇠; 퇠; 퇠; ) HANGUL SYLLABLE TWAEL
+D1E1;D1E1;1110 116B 11B0;D1E1;1110 116B 11B0; # (퇡; 퇡; 퇡; 퇡; 퇡; ) HANGUL SYLLABLE TWAELG
+D1E2;D1E2;1110 116B 11B1;D1E2;1110 116B 11B1; # (퇢; 퇢; 퇢; 퇢; 퇢; ) HANGUL SYLLABLE TWAELM
+D1E3;D1E3;1110 116B 11B2;D1E3;1110 116B 11B2; # (퇣; 퇣; 퇣; 퇣; 퇣; ) HANGUL SYLLABLE TWAELB
+D1E4;D1E4;1110 116B 11B3;D1E4;1110 116B 11B3; # (퇤; 퇤; 퇤; 퇤; 퇤; ) HANGUL SYLLABLE TWAELS
+D1E5;D1E5;1110 116B 11B4;D1E5;1110 116B 11B4; # (퇥; 퇥; 퇥; 퇥; 퇥; ) HANGUL SYLLABLE TWAELT
+D1E6;D1E6;1110 116B 11B5;D1E6;1110 116B 11B5; # (퇦; 퇦; 퇦; 퇦; 퇦; ) HANGUL SYLLABLE TWAELP
+D1E7;D1E7;1110 116B 11B6;D1E7;1110 116B 11B6; # (퇧; 퇧; 퇧; 퇧; 퇧; ) HANGUL SYLLABLE TWAELH
+D1E8;D1E8;1110 116B 11B7;D1E8;1110 116B 11B7; # (퇨; 퇨; 퇨; 퇨; 퇨; ) HANGUL SYLLABLE TWAEM
+D1E9;D1E9;1110 116B 11B8;D1E9;1110 116B 11B8; # (퇩; 퇩; 퇩; 퇩; 퇩; ) HANGUL SYLLABLE TWAEB
+D1EA;D1EA;1110 116B 11B9;D1EA;1110 116B 11B9; # (퇪; 퇪; 퇪; 퇪; 퇪; ) HANGUL SYLLABLE TWAEBS
+D1EB;D1EB;1110 116B 11BA;D1EB;1110 116B 11BA; # (퇫; 퇫; 퇫; 퇫; 퇫; ) HANGUL SYLLABLE TWAES
+D1EC;D1EC;1110 116B 11BB;D1EC;1110 116B 11BB; # (퇬; 퇬; 퇬; 퇬; 퇬; ) HANGUL SYLLABLE TWAESS
+D1ED;D1ED;1110 116B 11BC;D1ED;1110 116B 11BC; # (퇭; 퇭; 퇭; 퇭; 퇭; ) HANGUL SYLLABLE TWAENG
+D1EE;D1EE;1110 116B 11BD;D1EE;1110 116B 11BD; # (퇮; 퇮; 퇮; 퇮; 퇮; ) HANGUL SYLLABLE TWAEJ
+D1EF;D1EF;1110 116B 11BE;D1EF;1110 116B 11BE; # (퇯; 퇯; 퇯; 퇯; 퇯; ) HANGUL SYLLABLE TWAEC
+D1F0;D1F0;1110 116B 11BF;D1F0;1110 116B 11BF; # (퇰; 퇰; 퇰; 퇰; 퇰; ) HANGUL SYLLABLE TWAEK
+D1F1;D1F1;1110 116B 11C0;D1F1;1110 116B 11C0; # (퇱; 퇱; 퇱; 퇱; 퇱; ) HANGUL SYLLABLE TWAET
+D1F2;D1F2;1110 116B 11C1;D1F2;1110 116B 11C1; # (퇲; 퇲; 퇲; 퇲; 퇲; ) HANGUL SYLLABLE TWAEP
+D1F3;D1F3;1110 116B 11C2;D1F3;1110 116B 11C2; # (퇳; 퇳; 퇳; 퇳; 퇳; ) HANGUL SYLLABLE TWAEH
+D1F4;D1F4;1110 116C;D1F4;1110 116C; # (퇴; 퇴; 퇴; 퇴; 퇴; ) HANGUL SYLLABLE TOE
+D1F5;D1F5;1110 116C 11A8;D1F5;1110 116C 11A8; # (퇵; 퇵; 퇵; 퇵; 퇵; ) HANGUL SYLLABLE TOEG
+D1F6;D1F6;1110 116C 11A9;D1F6;1110 116C 11A9; # (퇶; 퇶; 퇶; 퇶; 퇶; ) HANGUL SYLLABLE TOEGG
+D1F7;D1F7;1110 116C 11AA;D1F7;1110 116C 11AA; # (퇷; 퇷; 퇷; 퇷; 퇷; ) HANGUL SYLLABLE TOEGS
+D1F8;D1F8;1110 116C 11AB;D1F8;1110 116C 11AB; # (퇸; 퇸; 퇸; 퇸; 퇸; ) HANGUL SYLLABLE TOEN
+D1F9;D1F9;1110 116C 11AC;D1F9;1110 116C 11AC; # (퇹; 퇹; 퇹; 퇹; 퇹; ) HANGUL SYLLABLE TOENJ
+D1FA;D1FA;1110 116C 11AD;D1FA;1110 116C 11AD; # (퇺; 퇺; 퇺; 퇺; 퇺; ) HANGUL SYLLABLE TOENH
+D1FB;D1FB;1110 116C 11AE;D1FB;1110 116C 11AE; # (퇻; 퇻; 퇻; 퇻; 퇻; ) HANGUL SYLLABLE TOED
+D1FC;D1FC;1110 116C 11AF;D1FC;1110 116C 11AF; # (퇼; 퇼; 퇼; 퇼; 퇼; ) HANGUL SYLLABLE TOEL
+D1FD;D1FD;1110 116C 11B0;D1FD;1110 116C 11B0; # (퇽; 퇽; 퇽; 퇽; 퇽; ) HANGUL SYLLABLE TOELG
+D1FE;D1FE;1110 116C 11B1;D1FE;1110 116C 11B1; # (퇾; 퇾; 퇾; 퇾; 퇾; ) HANGUL SYLLABLE TOELM
+D1FF;D1FF;1110 116C 11B2;D1FF;1110 116C 11B2; # (퇿; 퇿; 퇿; 퇿; 퇿; ) HANGUL SYLLABLE TOELB
+D200;D200;1110 116C 11B3;D200;1110 116C 11B3; # (툀; 툀; 툀; 툀; 툀; ) HANGUL SYLLABLE TOELS
+D201;D201;1110 116C 11B4;D201;1110 116C 11B4; # (툁; 툁; 툁; 툁; 툁; ) HANGUL SYLLABLE TOELT
+D202;D202;1110 116C 11B5;D202;1110 116C 11B5; # (툂; 툂; 툂; 툂; 툂; ) HANGUL SYLLABLE TOELP
+D203;D203;1110 116C 11B6;D203;1110 116C 11B6; # (툃; 툃; 툃; 툃; 툃; ) HANGUL SYLLABLE TOELH
+D204;D204;1110 116C 11B7;D204;1110 116C 11B7; # (툄; 툄; 툄; 툄; 툄; ) HANGUL SYLLABLE TOEM
+D205;D205;1110 116C 11B8;D205;1110 116C 11B8; # (툅; 툅; 툅; 툅; 툅; ) HANGUL SYLLABLE TOEB
+D206;D206;1110 116C 11B9;D206;1110 116C 11B9; # (툆; 툆; 툆; 툆; 툆; ) HANGUL SYLLABLE TOEBS
+D207;D207;1110 116C 11BA;D207;1110 116C 11BA; # (툇; 툇; 툇; 툇; 툇; ) HANGUL SYLLABLE TOES
+D208;D208;1110 116C 11BB;D208;1110 116C 11BB; # (툈; 툈; 툈; 툈; 툈; ) HANGUL SYLLABLE TOESS
+D209;D209;1110 116C 11BC;D209;1110 116C 11BC; # (툉; 툉; 툉; 툉; 툉; ) HANGUL SYLLABLE TOENG
+D20A;D20A;1110 116C 11BD;D20A;1110 116C 11BD; # (툊; 툊; 툊; 툊; 툊; ) HANGUL SYLLABLE TOEJ
+D20B;D20B;1110 116C 11BE;D20B;1110 116C 11BE; # (툋; 툋; 툋; 툋; 툋; ) HANGUL SYLLABLE TOEC
+D20C;D20C;1110 116C 11BF;D20C;1110 116C 11BF; # (툌; 툌; 툌; 툌; 툌; ) HANGUL SYLLABLE TOEK
+D20D;D20D;1110 116C 11C0;D20D;1110 116C 11C0; # (툍; 툍; 툍; 툍; 툍; ) HANGUL SYLLABLE TOET
+D20E;D20E;1110 116C 11C1;D20E;1110 116C 11C1; # (툎; 툎; 툎; 툎; 툎; ) HANGUL SYLLABLE TOEP
+D20F;D20F;1110 116C 11C2;D20F;1110 116C 11C2; # (툏; 툏; 툏; 툏; 툏; ) HANGUL SYLLABLE TOEH
+D210;D210;1110 116D;D210;1110 116D; # (툐; 툐; 툐; 툐; 툐; ) HANGUL SYLLABLE TYO
+D211;D211;1110 116D 11A8;D211;1110 116D 11A8; # (툑; 툑; 툑; 툑; 툑; ) HANGUL SYLLABLE TYOG
+D212;D212;1110 116D 11A9;D212;1110 116D 11A9; # (툒; 툒; 툒; 툒; 툒; ) HANGUL SYLLABLE TYOGG
+D213;D213;1110 116D 11AA;D213;1110 116D 11AA; # (툓; 툓; 툓; 툓; 툓; ) HANGUL SYLLABLE TYOGS
+D214;D214;1110 116D 11AB;D214;1110 116D 11AB; # (툔; 툔; 툔; 툔; 툔; ) HANGUL SYLLABLE TYON
+D215;D215;1110 116D 11AC;D215;1110 116D 11AC; # (툕; 툕; 툕; 툕; 툕; ) HANGUL SYLLABLE TYONJ
+D216;D216;1110 116D 11AD;D216;1110 116D 11AD; # (툖; 툖; 툖; 툖; 툖; ) HANGUL SYLLABLE TYONH
+D217;D217;1110 116D 11AE;D217;1110 116D 11AE; # (툗; 툗; 툗; 툗; 툗; ) HANGUL SYLLABLE TYOD
+D218;D218;1110 116D 11AF;D218;1110 116D 11AF; # (툘; 툘; 툘; 툘; 툘; ) HANGUL SYLLABLE TYOL
+D219;D219;1110 116D 11B0;D219;1110 116D 11B0; # (툙; 툙; 툙; 툙; 툙; ) HANGUL SYLLABLE TYOLG
+D21A;D21A;1110 116D 11B1;D21A;1110 116D 11B1; # (툚; 툚; 툚; 툚; 툚; ) HANGUL SYLLABLE TYOLM
+D21B;D21B;1110 116D 11B2;D21B;1110 116D 11B2; # (툛; 툛; 툛; 툛; 툛; ) HANGUL SYLLABLE TYOLB
+D21C;D21C;1110 116D 11B3;D21C;1110 116D 11B3; # (툜; 툜; 툜; 툜; 툜; ) HANGUL SYLLABLE TYOLS
+D21D;D21D;1110 116D 11B4;D21D;1110 116D 11B4; # (툝; 툝; 툝; 툝; 툝; ) HANGUL SYLLABLE TYOLT
+D21E;D21E;1110 116D 11B5;D21E;1110 116D 11B5; # (툞; 툞; 툞; 툞; 툞; ) HANGUL SYLLABLE TYOLP
+D21F;D21F;1110 116D 11B6;D21F;1110 116D 11B6; # (툟; 툟; 툟; 툟; 툟; ) HANGUL SYLLABLE TYOLH
+D220;D220;1110 116D 11B7;D220;1110 116D 11B7; # (툠; 툠; 툠; 툠; 툠; ) HANGUL SYLLABLE TYOM
+D221;D221;1110 116D 11B8;D221;1110 116D 11B8; # (툡; 툡; 툡; 툡; 툡; ) HANGUL SYLLABLE TYOB
+D222;D222;1110 116D 11B9;D222;1110 116D 11B9; # (툢; 툢; 툢; 툢; 툢; ) HANGUL SYLLABLE TYOBS
+D223;D223;1110 116D 11BA;D223;1110 116D 11BA; # (툣; 툣; 툣; 툣; 툣; ) HANGUL SYLLABLE TYOS
+D224;D224;1110 116D 11BB;D224;1110 116D 11BB; # (툤; 툤; 툤; 툤; 툤; ) HANGUL SYLLABLE TYOSS
+D225;D225;1110 116D 11BC;D225;1110 116D 11BC; # (툥; 툥; 툥; 툥; 툥; ) HANGUL SYLLABLE TYONG
+D226;D226;1110 116D 11BD;D226;1110 116D 11BD; # (툦; 툦; 툦; 툦; 툦; ) HANGUL SYLLABLE TYOJ
+D227;D227;1110 116D 11BE;D227;1110 116D 11BE; # (툧; 툧; 툧; 툧; 툧; ) HANGUL SYLLABLE TYOC
+D228;D228;1110 116D 11BF;D228;1110 116D 11BF; # (툨; 툨; 툨; 툨; 툨; ) HANGUL SYLLABLE TYOK
+D229;D229;1110 116D 11C0;D229;1110 116D 11C0; # (툩; 툩; 툩; 툩; 툩; ) HANGUL SYLLABLE TYOT
+D22A;D22A;1110 116D 11C1;D22A;1110 116D 11C1; # (툪; 툪; 툪; 툪; 툪; ) HANGUL SYLLABLE TYOP
+D22B;D22B;1110 116D 11C2;D22B;1110 116D 11C2; # (툫; 툫; 툫; 툫; 툫; ) HANGUL SYLLABLE TYOH
+D22C;D22C;1110 116E;D22C;1110 116E; # (투; 투; 투; 투; 투; ) HANGUL SYLLABLE TU
+D22D;D22D;1110 116E 11A8;D22D;1110 116E 11A8; # (툭; 툭; 툭; 툭; 툭; ) HANGUL SYLLABLE TUG
+D22E;D22E;1110 116E 11A9;D22E;1110 116E 11A9; # (툮; 툮; 툮; 툮; 툮; ) HANGUL SYLLABLE TUGG
+D22F;D22F;1110 116E 11AA;D22F;1110 116E 11AA; # (툯; 툯; 툯; 툯; 툯; ) HANGUL SYLLABLE TUGS
+D230;D230;1110 116E 11AB;D230;1110 116E 11AB; # (툰; 툰; 툰; 툰; 툰; ) HANGUL SYLLABLE TUN
+D231;D231;1110 116E 11AC;D231;1110 116E 11AC; # (툱; 툱; 툱; 툱; 툱; ) HANGUL SYLLABLE TUNJ
+D232;D232;1110 116E 11AD;D232;1110 116E 11AD; # (툲; 툲; 툲; 툲; 툲; ) HANGUL SYLLABLE TUNH
+D233;D233;1110 116E 11AE;D233;1110 116E 11AE; # (툳; 툳; 툳; 툳; 툳; ) HANGUL SYLLABLE TUD
+D234;D234;1110 116E 11AF;D234;1110 116E 11AF; # (툴; 툴; 툴; 툴; 툴; ) HANGUL SYLLABLE TUL
+D235;D235;1110 116E 11B0;D235;1110 116E 11B0; # (툵; 툵; 툵; 툵; 툵; ) HANGUL SYLLABLE TULG
+D236;D236;1110 116E 11B1;D236;1110 116E 11B1; # (툶; 툶; 툶; 툶; 툶; ) HANGUL SYLLABLE TULM
+D237;D237;1110 116E 11B2;D237;1110 116E 11B2; # (툷; 툷; 툷; 툷; 툷; ) HANGUL SYLLABLE TULB
+D238;D238;1110 116E 11B3;D238;1110 116E 11B3; # (툸; 툸; 툸; 툸; 툸; ) HANGUL SYLLABLE TULS
+D239;D239;1110 116E 11B4;D239;1110 116E 11B4; # (툹; 툹; 툹; 툹; 툹; ) HANGUL SYLLABLE TULT
+D23A;D23A;1110 116E 11B5;D23A;1110 116E 11B5; # (툺; 툺; 툺; 툺; 툺; ) HANGUL SYLLABLE TULP
+D23B;D23B;1110 116E 11B6;D23B;1110 116E 11B6; # (툻; 툻; 툻; 툻; 툻; ) HANGUL SYLLABLE TULH
+D23C;D23C;1110 116E 11B7;D23C;1110 116E 11B7; # (툼; 툼; 툼; 툼; 툼; ) HANGUL SYLLABLE TUM
+D23D;D23D;1110 116E 11B8;D23D;1110 116E 11B8; # (툽; 툽; 툽; 툽; 툽; ) HANGUL SYLLABLE TUB
+D23E;D23E;1110 116E 11B9;D23E;1110 116E 11B9; # (툾; 툾; 툾; 툾; 툾; ) HANGUL SYLLABLE TUBS
+D23F;D23F;1110 116E 11BA;D23F;1110 116E 11BA; # (툿; 툿; 툿; 툿; 툿; ) HANGUL SYLLABLE TUS
+D240;D240;1110 116E 11BB;D240;1110 116E 11BB; # (퉀; 퉀; 퉀; 퉀; 퉀; ) HANGUL SYLLABLE TUSS
+D241;D241;1110 116E 11BC;D241;1110 116E 11BC; # (퉁; 퉁; 퉁; 퉁; 퉁; ) HANGUL SYLLABLE TUNG
+D242;D242;1110 116E 11BD;D242;1110 116E 11BD; # (퉂; 퉂; 퉂; 퉂; 퉂; ) HANGUL SYLLABLE TUJ
+D243;D243;1110 116E 11BE;D243;1110 116E 11BE; # (퉃; 퉃; 퉃; 퉃; 퉃; ) HANGUL SYLLABLE TUC
+D244;D244;1110 116E 11BF;D244;1110 116E 11BF; # (퉄; 퉄; 퉄; 퉄; 퉄; ) HANGUL SYLLABLE TUK
+D245;D245;1110 116E 11C0;D245;1110 116E 11C0; # (퉅; 퉅; 퉅; 퉅; 퉅; ) HANGUL SYLLABLE TUT
+D246;D246;1110 116E 11C1;D246;1110 116E 11C1; # (퉆; 퉆; 퉆; 퉆; 퉆; ) HANGUL SYLLABLE TUP
+D247;D247;1110 116E 11C2;D247;1110 116E 11C2; # (퉇; 퉇; 퉇; 퉇; 퉇; ) HANGUL SYLLABLE TUH
+D248;D248;1110 116F;D248;1110 116F; # (퉈; 퉈; 퉈; 퉈; 퉈; ) HANGUL SYLLABLE TWEO
+D249;D249;1110 116F 11A8;D249;1110 116F 11A8; # (퉉; 퉉; 퉉; 퉉; 퉉; ) HANGUL SYLLABLE TWEOG
+D24A;D24A;1110 116F 11A9;D24A;1110 116F 11A9; # (퉊; 퉊; 퉊; 퉊; 퉊; ) HANGUL SYLLABLE TWEOGG
+D24B;D24B;1110 116F 11AA;D24B;1110 116F 11AA; # (퉋; 퉋; 퉋; 퉋; 퉋; ) HANGUL SYLLABLE TWEOGS
+D24C;D24C;1110 116F 11AB;D24C;1110 116F 11AB; # (퉌; 퉌; 퉌; 퉌; 퉌; ) HANGUL SYLLABLE TWEON
+D24D;D24D;1110 116F 11AC;D24D;1110 116F 11AC; # (퉍; 퉍; 퉍; 퉍; 퉍; ) HANGUL SYLLABLE TWEONJ
+D24E;D24E;1110 116F 11AD;D24E;1110 116F 11AD; # (퉎; 퉎; 퉎; 퉎; 퉎; ) HANGUL SYLLABLE TWEONH
+D24F;D24F;1110 116F 11AE;D24F;1110 116F 11AE; # (퉏; 퉏; 퉏; 퉏; 퉏; ) HANGUL SYLLABLE TWEOD
+D250;D250;1110 116F 11AF;D250;1110 116F 11AF; # (퉐; 퉐; 퉐; 퉐; 퉐; ) HANGUL SYLLABLE TWEOL
+D251;D251;1110 116F 11B0;D251;1110 116F 11B0; # (퉑; 퉑; 퉑; 퉑; 퉑; ) HANGUL SYLLABLE TWEOLG
+D252;D252;1110 116F 11B1;D252;1110 116F 11B1; # (퉒; 퉒; 퉒; 퉒; 퉒; ) HANGUL SYLLABLE TWEOLM
+D253;D253;1110 116F 11B2;D253;1110 116F 11B2; # (퉓; 퉓; 퉓; 퉓; 퉓; ) HANGUL SYLLABLE TWEOLB
+D254;D254;1110 116F 11B3;D254;1110 116F 11B3; # (퉔; 퉔; 퉔; 퉔; 퉔; ) HANGUL SYLLABLE TWEOLS
+D255;D255;1110 116F 11B4;D255;1110 116F 11B4; # (퉕; 퉕; 퉕; 퉕; 퉕; ) HANGUL SYLLABLE TWEOLT
+D256;D256;1110 116F 11B5;D256;1110 116F 11B5; # (퉖; 퉖; 퉖; 퉖; 퉖; ) HANGUL SYLLABLE TWEOLP
+D257;D257;1110 116F 11B6;D257;1110 116F 11B6; # (퉗; 퉗; 퉗; 퉗; 퉗; ) HANGUL SYLLABLE TWEOLH
+D258;D258;1110 116F 11B7;D258;1110 116F 11B7; # (퉘; 퉘; 퉘; 퉘; 퉘; ) HANGUL SYLLABLE TWEOM
+D259;D259;1110 116F 11B8;D259;1110 116F 11B8; # (퉙; 퉙; 퉙; 퉙; 퉙; ) HANGUL SYLLABLE TWEOB
+D25A;D25A;1110 116F 11B9;D25A;1110 116F 11B9; # (퉚; 퉚; 퉚; 퉚; 퉚; ) HANGUL SYLLABLE TWEOBS
+D25B;D25B;1110 116F 11BA;D25B;1110 116F 11BA; # (퉛; 퉛; 퉛; 퉛; 퉛; ) HANGUL SYLLABLE TWEOS
+D25C;D25C;1110 116F 11BB;D25C;1110 116F 11BB; # (퉜; 퉜; 퉜; 퉜; 퉜; ) HANGUL SYLLABLE TWEOSS
+D25D;D25D;1110 116F 11BC;D25D;1110 116F 11BC; # (퉝; 퉝; 퉝; 퉝; 퉝; ) HANGUL SYLLABLE TWEONG
+D25E;D25E;1110 116F 11BD;D25E;1110 116F 11BD; # (퉞; 퉞; 퉞; 퉞; 퉞; ) HANGUL SYLLABLE TWEOJ
+D25F;D25F;1110 116F 11BE;D25F;1110 116F 11BE; # (퉟; 퉟; 퉟; 퉟; 퉟; ) HANGUL SYLLABLE TWEOC
+D260;D260;1110 116F 11BF;D260;1110 116F 11BF; # (퉠; 퉠; 퉠; 퉠; 퉠; ) HANGUL SYLLABLE TWEOK
+D261;D261;1110 116F 11C0;D261;1110 116F 11C0; # (퉡; 퉡; 퉡; 퉡; 퉡; ) HANGUL SYLLABLE TWEOT
+D262;D262;1110 116F 11C1;D262;1110 116F 11C1; # (퉢; 퉢; 퉢; 퉢; 퉢; ) HANGUL SYLLABLE TWEOP
+D263;D263;1110 116F 11C2;D263;1110 116F 11C2; # (퉣; 퉣; 퉣; 퉣; 퉣; ) HANGUL SYLLABLE TWEOH
+D264;D264;1110 1170;D264;1110 1170; # (퉤; 퉤; 퉤; 퉤; 퉤; ) HANGUL SYLLABLE TWE
+D265;D265;1110 1170 11A8;D265;1110 1170 11A8; # (퉥; 퉥; 퉥; 퉥; 퉥; ) HANGUL SYLLABLE TWEG
+D266;D266;1110 1170 11A9;D266;1110 1170 11A9; # (퉦; 퉦; 퉦; 퉦; 퉦; ) HANGUL SYLLABLE TWEGG
+D267;D267;1110 1170 11AA;D267;1110 1170 11AA; # (퉧; 퉧; 퉧; 퉧; 퉧; ) HANGUL SYLLABLE TWEGS
+D268;D268;1110 1170 11AB;D268;1110 1170 11AB; # (퉨; 퉨; 퉨; 퉨; 퉨; ) HANGUL SYLLABLE TWEN
+D269;D269;1110 1170 11AC;D269;1110 1170 11AC; # (퉩; 퉩; 퉩; 퉩; 퉩; ) HANGUL SYLLABLE TWENJ
+D26A;D26A;1110 1170 11AD;D26A;1110 1170 11AD; # (퉪; 퉪; 퉪; 퉪; 퉪; ) HANGUL SYLLABLE TWENH
+D26B;D26B;1110 1170 11AE;D26B;1110 1170 11AE; # (퉫; 퉫; 퉫; 퉫; 퉫; ) HANGUL SYLLABLE TWED
+D26C;D26C;1110 1170 11AF;D26C;1110 1170 11AF; # (퉬; 퉬; 퉬; 퉬; 퉬; ) HANGUL SYLLABLE TWEL
+D26D;D26D;1110 1170 11B0;D26D;1110 1170 11B0; # (퉭; 퉭; 퉭; 퉭; 퉭; ) HANGUL SYLLABLE TWELG
+D26E;D26E;1110 1170 11B1;D26E;1110 1170 11B1; # (퉮; 퉮; 퉮; 퉮; 퉮; ) HANGUL SYLLABLE TWELM
+D26F;D26F;1110 1170 11B2;D26F;1110 1170 11B2; # (퉯; 퉯; 퉯; 퉯; 퉯; ) HANGUL SYLLABLE TWELB
+D270;D270;1110 1170 11B3;D270;1110 1170 11B3; # (퉰; 퉰; 퉰; 퉰; 퉰; ) HANGUL SYLLABLE TWELS
+D271;D271;1110 1170 11B4;D271;1110 1170 11B4; # (퉱; 퉱; 퉱; 퉱; 퉱; ) HANGUL SYLLABLE TWELT
+D272;D272;1110 1170 11B5;D272;1110 1170 11B5; # (퉲; 퉲; 퉲; 퉲; 퉲; ) HANGUL SYLLABLE TWELP
+D273;D273;1110 1170 11B6;D273;1110 1170 11B6; # (퉳; 퉳; 퉳; 퉳; 퉳; ) HANGUL SYLLABLE TWELH
+D274;D274;1110 1170 11B7;D274;1110 1170 11B7; # (퉴; 퉴; 퉴; 퉴; 퉴; ) HANGUL SYLLABLE TWEM
+D275;D275;1110 1170 11B8;D275;1110 1170 11B8; # (퉵; 퉵; 퉵; 퉵; 퉵; ) HANGUL SYLLABLE TWEB
+D276;D276;1110 1170 11B9;D276;1110 1170 11B9; # (퉶; 퉶; 퉶; 퉶; 퉶; ) HANGUL SYLLABLE TWEBS
+D277;D277;1110 1170 11BA;D277;1110 1170 11BA; # (퉷; 퉷; 퉷; 퉷; 퉷; ) HANGUL SYLLABLE TWES
+D278;D278;1110 1170 11BB;D278;1110 1170 11BB; # (퉸; 퉸; 퉸; 퉸; 퉸; ) HANGUL SYLLABLE TWESS
+D279;D279;1110 1170 11BC;D279;1110 1170 11BC; # (퉹; 퉹; 퉹; 퉹; 퉹; ) HANGUL SYLLABLE TWENG
+D27A;D27A;1110 1170 11BD;D27A;1110 1170 11BD; # (퉺; 퉺; 퉺; 퉺; 퉺; ) HANGUL SYLLABLE TWEJ
+D27B;D27B;1110 1170 11BE;D27B;1110 1170 11BE; # (퉻; 퉻; 퉻; 퉻; 퉻; ) HANGUL SYLLABLE TWEC
+D27C;D27C;1110 1170 11BF;D27C;1110 1170 11BF; # (퉼; 퉼; 퉼; 퉼; 퉼; ) HANGUL SYLLABLE TWEK
+D27D;D27D;1110 1170 11C0;D27D;1110 1170 11C0; # (퉽; 퉽; 퉽; 퉽; 퉽; ) HANGUL SYLLABLE TWET
+D27E;D27E;1110 1170 11C1;D27E;1110 1170 11C1; # (퉾; 퉾; 퉾; 퉾; 퉾; ) HANGUL SYLLABLE TWEP
+D27F;D27F;1110 1170 11C2;D27F;1110 1170 11C2; # (퉿; 퉿; 퉿; 퉿; 퉿; ) HANGUL SYLLABLE TWEH
+D280;D280;1110 1171;D280;1110 1171; # (튀; 튀; 튀; 튀; 튀; ) HANGUL SYLLABLE TWI
+D281;D281;1110 1171 11A8;D281;1110 1171 11A8; # (튁; 튁; 튁; 튁; 튁; ) HANGUL SYLLABLE TWIG
+D282;D282;1110 1171 11A9;D282;1110 1171 11A9; # (튂; 튂; 튂; 튂; 튂; ) HANGUL SYLLABLE TWIGG
+D283;D283;1110 1171 11AA;D283;1110 1171 11AA; # (튃; 튃; 튃; 튃; 튃; ) HANGUL SYLLABLE TWIGS
+D284;D284;1110 1171 11AB;D284;1110 1171 11AB; # (튄; 튄; 튄; 튄; 튄; ) HANGUL SYLLABLE TWIN
+D285;D285;1110 1171 11AC;D285;1110 1171 11AC; # (튅; 튅; 튅; 튅; 튅; ) HANGUL SYLLABLE TWINJ
+D286;D286;1110 1171 11AD;D286;1110 1171 11AD; # (튆; 튆; 튆; 튆; 튆; ) HANGUL SYLLABLE TWINH
+D287;D287;1110 1171 11AE;D287;1110 1171 11AE; # (튇; 튇; 튇; 튇; 튇; ) HANGUL SYLLABLE TWID
+D288;D288;1110 1171 11AF;D288;1110 1171 11AF; # (튈; 튈; 튈; 튈; 튈; ) HANGUL SYLLABLE TWIL
+D289;D289;1110 1171 11B0;D289;1110 1171 11B0; # (튉; 튉; 튉; 튉; 튉; ) HANGUL SYLLABLE TWILG
+D28A;D28A;1110 1171 11B1;D28A;1110 1171 11B1; # (튊; 튊; 튊; 튊; 튊; ) HANGUL SYLLABLE TWILM
+D28B;D28B;1110 1171 11B2;D28B;1110 1171 11B2; # (튋; 튋; 튋; 튋; 튋; ) HANGUL SYLLABLE TWILB
+D28C;D28C;1110 1171 11B3;D28C;1110 1171 11B3; # (튌; 튌; 튌; 튌; 튌; ) HANGUL SYLLABLE TWILS
+D28D;D28D;1110 1171 11B4;D28D;1110 1171 11B4; # (튍; 튍; 튍; 튍; 튍; ) HANGUL SYLLABLE TWILT
+D28E;D28E;1110 1171 11B5;D28E;1110 1171 11B5; # (튎; 튎; 튎; 튎; 튎; ) HANGUL SYLLABLE TWILP
+D28F;D28F;1110 1171 11B6;D28F;1110 1171 11B6; # (튏; 튏; 튏; 튏; 튏; ) HANGUL SYLLABLE TWILH
+D290;D290;1110 1171 11B7;D290;1110 1171 11B7; # (튐; 튐; 튐; 튐; 튐; ) HANGUL SYLLABLE TWIM
+D291;D291;1110 1171 11B8;D291;1110 1171 11B8; # (튑; 튑; 튑; 튑; 튑; ) HANGUL SYLLABLE TWIB
+D292;D292;1110 1171 11B9;D292;1110 1171 11B9; # (튒; 튒; 튒; 튒; 튒; ) HANGUL SYLLABLE TWIBS
+D293;D293;1110 1171 11BA;D293;1110 1171 11BA; # (튓; 튓; 튓; 튓; 튓; ) HANGUL SYLLABLE TWIS
+D294;D294;1110 1171 11BB;D294;1110 1171 11BB; # (튔; 튔; 튔; 튔; 튔; ) HANGUL SYLLABLE TWISS
+D295;D295;1110 1171 11BC;D295;1110 1171 11BC; # (튕; 튕; 튕; 튕; 튕; ) HANGUL SYLLABLE TWING
+D296;D296;1110 1171 11BD;D296;1110 1171 11BD; # (튖; 튖; 튖; 튖; 튖; ) HANGUL SYLLABLE TWIJ
+D297;D297;1110 1171 11BE;D297;1110 1171 11BE; # (튗; 튗; 튗; 튗; 튗; ) HANGUL SYLLABLE TWIC
+D298;D298;1110 1171 11BF;D298;1110 1171 11BF; # (튘; 튘; 튘; 튘; 튘; ) HANGUL SYLLABLE TWIK
+D299;D299;1110 1171 11C0;D299;1110 1171 11C0; # (튙; 튙; 튙; 튙; 튙; ) HANGUL SYLLABLE TWIT
+D29A;D29A;1110 1171 11C1;D29A;1110 1171 11C1; # (튚; 튚; 튚; 튚; 튚; ) HANGUL SYLLABLE TWIP
+D29B;D29B;1110 1171 11C2;D29B;1110 1171 11C2; # (튛; 튛; 튛; 튛; 튛; ) HANGUL SYLLABLE TWIH
+D29C;D29C;1110 1172;D29C;1110 1172; # (튜; 튜; 튜; 튜; 튜; ) HANGUL SYLLABLE TYU
+D29D;D29D;1110 1172 11A8;D29D;1110 1172 11A8; # (튝; 튝; 튝; 튝; 튝; ) HANGUL SYLLABLE TYUG
+D29E;D29E;1110 1172 11A9;D29E;1110 1172 11A9; # (튞; 튞; 튞; 튞; 튞; ) HANGUL SYLLABLE TYUGG
+D29F;D29F;1110 1172 11AA;D29F;1110 1172 11AA; # (튟; 튟; 튟; 튟; 튟; ) HANGUL SYLLABLE TYUGS
+D2A0;D2A0;1110 1172 11AB;D2A0;1110 1172 11AB; # (튠; 튠; 튠; 튠; 튠; ) HANGUL SYLLABLE TYUN
+D2A1;D2A1;1110 1172 11AC;D2A1;1110 1172 11AC; # (튡; 튡; 튡; 튡; 튡; ) HANGUL SYLLABLE TYUNJ
+D2A2;D2A2;1110 1172 11AD;D2A2;1110 1172 11AD; # (튢; 튢; 튢; 튢; 튢; ) HANGUL SYLLABLE TYUNH
+D2A3;D2A3;1110 1172 11AE;D2A3;1110 1172 11AE; # (튣; 튣; 튣; 튣; 튣; ) HANGUL SYLLABLE TYUD
+D2A4;D2A4;1110 1172 11AF;D2A4;1110 1172 11AF; # (튤; 튤; 튤; 튤; 튤; ) HANGUL SYLLABLE TYUL
+D2A5;D2A5;1110 1172 11B0;D2A5;1110 1172 11B0; # (튥; 튥; 튥; 튥; 튥; ) HANGUL SYLLABLE TYULG
+D2A6;D2A6;1110 1172 11B1;D2A6;1110 1172 11B1; # (튦; 튦; 튦; 튦; 튦; ) HANGUL SYLLABLE TYULM
+D2A7;D2A7;1110 1172 11B2;D2A7;1110 1172 11B2; # (튧; 튧; 튧; 튧; 튧; ) HANGUL SYLLABLE TYULB
+D2A8;D2A8;1110 1172 11B3;D2A8;1110 1172 11B3; # (튨; 튨; 튨; 튨; 튨; ) HANGUL SYLLABLE TYULS
+D2A9;D2A9;1110 1172 11B4;D2A9;1110 1172 11B4; # (튩; 튩; 튩; 튩; 튩; ) HANGUL SYLLABLE TYULT
+D2AA;D2AA;1110 1172 11B5;D2AA;1110 1172 11B5; # (튪; 튪; 튪; 튪; 튪; ) HANGUL SYLLABLE TYULP
+D2AB;D2AB;1110 1172 11B6;D2AB;1110 1172 11B6; # (튫; 튫; 튫; 튫; 튫; ) HANGUL SYLLABLE TYULH
+D2AC;D2AC;1110 1172 11B7;D2AC;1110 1172 11B7; # (튬; 튬; 튬; 튬; 튬; ) HANGUL SYLLABLE TYUM
+D2AD;D2AD;1110 1172 11B8;D2AD;1110 1172 11B8; # (튭; 튭; 튭; 튭; 튭; ) HANGUL SYLLABLE TYUB
+D2AE;D2AE;1110 1172 11B9;D2AE;1110 1172 11B9; # (튮; 튮; 튮; 튮; 튮; ) HANGUL SYLLABLE TYUBS
+D2AF;D2AF;1110 1172 11BA;D2AF;1110 1172 11BA; # (튯; 튯; 튯; 튯; 튯; ) HANGUL SYLLABLE TYUS
+D2B0;D2B0;1110 1172 11BB;D2B0;1110 1172 11BB; # (튰; 튰; 튰; 튰; 튰; ) HANGUL SYLLABLE TYUSS
+D2B1;D2B1;1110 1172 11BC;D2B1;1110 1172 11BC; # (튱; 튱; 튱; 튱; 튱; ) HANGUL SYLLABLE TYUNG
+D2B2;D2B2;1110 1172 11BD;D2B2;1110 1172 11BD; # (튲; 튲; 튲; 튲; 튲; ) HANGUL SYLLABLE TYUJ
+D2B3;D2B3;1110 1172 11BE;D2B3;1110 1172 11BE; # (튳; 튳; 튳; 튳; 튳; ) HANGUL SYLLABLE TYUC
+D2B4;D2B4;1110 1172 11BF;D2B4;1110 1172 11BF; # (튴; 튴; 튴; 튴; 튴; ) HANGUL SYLLABLE TYUK
+D2B5;D2B5;1110 1172 11C0;D2B5;1110 1172 11C0; # (튵; 튵; 튵; 튵; 튵; ) HANGUL SYLLABLE TYUT
+D2B6;D2B6;1110 1172 11C1;D2B6;1110 1172 11C1; # (튶; 튶; 튶; 튶; 튶; ) HANGUL SYLLABLE TYUP
+D2B7;D2B7;1110 1172 11C2;D2B7;1110 1172 11C2; # (튷; 튷; 튷; 튷; 튷; ) HANGUL SYLLABLE TYUH
+D2B8;D2B8;1110 1173;D2B8;1110 1173; # (트; 트; 트; 트; 트; ) HANGUL SYLLABLE TEU
+D2B9;D2B9;1110 1173 11A8;D2B9;1110 1173 11A8; # (특; 특; 특; 특; 특; ) HANGUL SYLLABLE TEUG
+D2BA;D2BA;1110 1173 11A9;D2BA;1110 1173 11A9; # (튺; 튺; 튺; 튺; 튺; ) HANGUL SYLLABLE TEUGG
+D2BB;D2BB;1110 1173 11AA;D2BB;1110 1173 11AA; # (튻; 튻; 튻; 튻; 튻; ) HANGUL SYLLABLE TEUGS
+D2BC;D2BC;1110 1173 11AB;D2BC;1110 1173 11AB; # (튼; 튼; 튼; 튼; 튼; ) HANGUL SYLLABLE TEUN
+D2BD;D2BD;1110 1173 11AC;D2BD;1110 1173 11AC; # (튽; 튽; 튽; 튽; 튽; ) HANGUL SYLLABLE TEUNJ
+D2BE;D2BE;1110 1173 11AD;D2BE;1110 1173 11AD; # (튾; 튾; 튾; 튾; 튾; ) HANGUL SYLLABLE TEUNH
+D2BF;D2BF;1110 1173 11AE;D2BF;1110 1173 11AE; # (튿; 튿; 튿; 튿; 튿; ) HANGUL SYLLABLE TEUD
+D2C0;D2C0;1110 1173 11AF;D2C0;1110 1173 11AF; # (틀; 틀; 틀; 틀; 틀; ) HANGUL SYLLABLE TEUL
+D2C1;D2C1;1110 1173 11B0;D2C1;1110 1173 11B0; # (틁; 틁; 틁; 틁; 틁; ) HANGUL SYLLABLE TEULG
+D2C2;D2C2;1110 1173 11B1;D2C2;1110 1173 11B1; # (틂; 틂; 틂; 틂; 틂; ) HANGUL SYLLABLE TEULM
+D2C3;D2C3;1110 1173 11B2;D2C3;1110 1173 11B2; # (틃; 틃; 틃; 틃; 틃; ) HANGUL SYLLABLE TEULB
+D2C4;D2C4;1110 1173 11B3;D2C4;1110 1173 11B3; # (틄; 틄; 틄; 틄; 틄; ) HANGUL SYLLABLE TEULS
+D2C5;D2C5;1110 1173 11B4;D2C5;1110 1173 11B4; # (틅; 틅; 틅; 틅; 틅; ) HANGUL SYLLABLE TEULT
+D2C6;D2C6;1110 1173 11B5;D2C6;1110 1173 11B5; # (틆; 틆; 틆; 틆; 틆; ) HANGUL SYLLABLE TEULP
+D2C7;D2C7;1110 1173 11B6;D2C7;1110 1173 11B6; # (틇; 틇; 틇; 틇; 틇; ) HANGUL SYLLABLE TEULH
+D2C8;D2C8;1110 1173 11B7;D2C8;1110 1173 11B7; # (틈; 틈; 틈; 틈; 틈; ) HANGUL SYLLABLE TEUM
+D2C9;D2C9;1110 1173 11B8;D2C9;1110 1173 11B8; # (틉; 틉; 틉; 틉; 틉; ) HANGUL SYLLABLE TEUB
+D2CA;D2CA;1110 1173 11B9;D2CA;1110 1173 11B9; # (틊; 틊; 틊; 틊; 틊; ) HANGUL SYLLABLE TEUBS
+D2CB;D2CB;1110 1173 11BA;D2CB;1110 1173 11BA; # (틋; 틋; 틋; 틋; 틋; ) HANGUL SYLLABLE TEUS
+D2CC;D2CC;1110 1173 11BB;D2CC;1110 1173 11BB; # (틌; 틌; 틌; 틌; 틌; ) HANGUL SYLLABLE TEUSS
+D2CD;D2CD;1110 1173 11BC;D2CD;1110 1173 11BC; # (틍; 틍; 틍; 틍; 틍; ) HANGUL SYLLABLE TEUNG
+D2CE;D2CE;1110 1173 11BD;D2CE;1110 1173 11BD; # (틎; 틎; 틎; 틎; 틎; ) HANGUL SYLLABLE TEUJ
+D2CF;D2CF;1110 1173 11BE;D2CF;1110 1173 11BE; # (틏; 틏; 틏; 틏; 틏; ) HANGUL SYLLABLE TEUC
+D2D0;D2D0;1110 1173 11BF;D2D0;1110 1173 11BF; # (틐; 틐; 틐; 틐; 틐; ) HANGUL SYLLABLE TEUK
+D2D1;D2D1;1110 1173 11C0;D2D1;1110 1173 11C0; # (틑; 틑; 틑; 틑; 틑; ) HANGUL SYLLABLE TEUT
+D2D2;D2D2;1110 1173 11C1;D2D2;1110 1173 11C1; # (틒; 틒; 틒; 틒; 틒; ) HANGUL SYLLABLE TEUP
+D2D3;D2D3;1110 1173 11C2;D2D3;1110 1173 11C2; # (틓; 틓; 틓; 틓; 틓; ) HANGUL SYLLABLE TEUH
+D2D4;D2D4;1110 1174;D2D4;1110 1174; # (틔; 틔; 틔; 틔; 틔; ) HANGUL SYLLABLE TYI
+D2D5;D2D5;1110 1174 11A8;D2D5;1110 1174 11A8; # (틕; 틕; 틕; 틕; 틕; ) HANGUL SYLLABLE TYIG
+D2D6;D2D6;1110 1174 11A9;D2D6;1110 1174 11A9; # (틖; 틖; 틖; 틖; 틖; ) HANGUL SYLLABLE TYIGG
+D2D7;D2D7;1110 1174 11AA;D2D7;1110 1174 11AA; # (틗; 틗; 틗; 틗; 틗; ) HANGUL SYLLABLE TYIGS
+D2D8;D2D8;1110 1174 11AB;D2D8;1110 1174 11AB; # (틘; 틘; 틘; 틘; 틘; ) HANGUL SYLLABLE TYIN
+D2D9;D2D9;1110 1174 11AC;D2D9;1110 1174 11AC; # (틙; 틙; 틙; 틙; 틙; ) HANGUL SYLLABLE TYINJ
+D2DA;D2DA;1110 1174 11AD;D2DA;1110 1174 11AD; # (틚; 틚; 틚; 틚; 틚; ) HANGUL SYLLABLE TYINH
+D2DB;D2DB;1110 1174 11AE;D2DB;1110 1174 11AE; # (틛; 틛; 틛; 틛; 틛; ) HANGUL SYLLABLE TYID
+D2DC;D2DC;1110 1174 11AF;D2DC;1110 1174 11AF; # (틜; 틜; 틜; 틜; 틜; ) HANGUL SYLLABLE TYIL
+D2DD;D2DD;1110 1174 11B0;D2DD;1110 1174 11B0; # (틝; 틝; 틝; 틝; 틝; ) HANGUL SYLLABLE TYILG
+D2DE;D2DE;1110 1174 11B1;D2DE;1110 1174 11B1; # (틞; 틞; 틞; 틞; 틞; ) HANGUL SYLLABLE TYILM
+D2DF;D2DF;1110 1174 11B2;D2DF;1110 1174 11B2; # (틟; 틟; 틟; 틟; 틟; ) HANGUL SYLLABLE TYILB
+D2E0;D2E0;1110 1174 11B3;D2E0;1110 1174 11B3; # (틠; 틠; 틠; 틠; 틠; ) HANGUL SYLLABLE TYILS
+D2E1;D2E1;1110 1174 11B4;D2E1;1110 1174 11B4; # (틡; 틡; 틡; 틡; 틡; ) HANGUL SYLLABLE TYILT
+D2E2;D2E2;1110 1174 11B5;D2E2;1110 1174 11B5; # (틢; 틢; 틢; 틢; 틢; ) HANGUL SYLLABLE TYILP
+D2E3;D2E3;1110 1174 11B6;D2E3;1110 1174 11B6; # (틣; 틣; 틣; 틣; 틣; ) HANGUL SYLLABLE TYILH
+D2E4;D2E4;1110 1174 11B7;D2E4;1110 1174 11B7; # (틤; 틤; 틤; 틤; 틤; ) HANGUL SYLLABLE TYIM
+D2E5;D2E5;1110 1174 11B8;D2E5;1110 1174 11B8; # (틥; 틥; 틥; 틥; 틥; ) HANGUL SYLLABLE TYIB
+D2E6;D2E6;1110 1174 11B9;D2E6;1110 1174 11B9; # (틦; 틦; 틦; 틦; 틦; ) HANGUL SYLLABLE TYIBS
+D2E7;D2E7;1110 1174 11BA;D2E7;1110 1174 11BA; # (틧; 틧; 틧; 틧; 틧; ) HANGUL SYLLABLE TYIS
+D2E8;D2E8;1110 1174 11BB;D2E8;1110 1174 11BB; # (틨; 틨; 틨; 틨; 틨; ) HANGUL SYLLABLE TYISS
+D2E9;D2E9;1110 1174 11BC;D2E9;1110 1174 11BC; # (틩; 틩; 틩; 틩; 틩; ) HANGUL SYLLABLE TYING
+D2EA;D2EA;1110 1174 11BD;D2EA;1110 1174 11BD; # (틪; 틪; 틪; 틪; 틪; ) HANGUL SYLLABLE TYIJ
+D2EB;D2EB;1110 1174 11BE;D2EB;1110 1174 11BE; # (틫; 틫; 틫; 틫; 틫; ) HANGUL SYLLABLE TYIC
+D2EC;D2EC;1110 1174 11BF;D2EC;1110 1174 11BF; # (틬; 틬; 틬; 틬; 틬; ) HANGUL SYLLABLE TYIK
+D2ED;D2ED;1110 1174 11C0;D2ED;1110 1174 11C0; # (틭; 틭; 틭; 틭; 틭; ) HANGUL SYLLABLE TYIT
+D2EE;D2EE;1110 1174 11C1;D2EE;1110 1174 11C1; # (틮; 틮; 틮; 틮; 틮; ) HANGUL SYLLABLE TYIP
+D2EF;D2EF;1110 1174 11C2;D2EF;1110 1174 11C2; # (틯; 틯; 틯; 틯; 틯; ) HANGUL SYLLABLE TYIH
+D2F0;D2F0;1110 1175;D2F0;1110 1175; # (티; 티; 티; 티; 티; ) HANGUL SYLLABLE TI
+D2F1;D2F1;1110 1175 11A8;D2F1;1110 1175 11A8; # (틱; 틱; 틱; 틱; 틱; ) HANGUL SYLLABLE TIG
+D2F2;D2F2;1110 1175 11A9;D2F2;1110 1175 11A9; # (틲; 틲; 틲; 틲; 틲; ) HANGUL SYLLABLE TIGG
+D2F3;D2F3;1110 1175 11AA;D2F3;1110 1175 11AA; # (틳; 틳; 틳; 틳; 틳; ) HANGUL SYLLABLE TIGS
+D2F4;D2F4;1110 1175 11AB;D2F4;1110 1175 11AB; # (틴; 틴; 틴; 틴; 틴; ) HANGUL SYLLABLE TIN
+D2F5;D2F5;1110 1175 11AC;D2F5;1110 1175 11AC; # (틵; 틵; 틵; 틵; 틵; ) HANGUL SYLLABLE TINJ
+D2F6;D2F6;1110 1175 11AD;D2F6;1110 1175 11AD; # (틶; 틶; 틶; 틶; 틶; ) HANGUL SYLLABLE TINH
+D2F7;D2F7;1110 1175 11AE;D2F7;1110 1175 11AE; # (틷; 틷; 틷; 틷; 틷; ) HANGUL SYLLABLE TID
+D2F8;D2F8;1110 1175 11AF;D2F8;1110 1175 11AF; # (틸; 틸; 틸; 틸; 틸; ) HANGUL SYLLABLE TIL
+D2F9;D2F9;1110 1175 11B0;D2F9;1110 1175 11B0; # (틹; 틹; 틹; 틹; 틹; ) HANGUL SYLLABLE TILG
+D2FA;D2FA;1110 1175 11B1;D2FA;1110 1175 11B1; # (틺; 틺; 틺; 틺; 틺; ) HANGUL SYLLABLE TILM
+D2FB;D2FB;1110 1175 11B2;D2FB;1110 1175 11B2; # (틻; 틻; 틻; 틻; 틻; ) HANGUL SYLLABLE TILB
+D2FC;D2FC;1110 1175 11B3;D2FC;1110 1175 11B3; # (틼; 틼; 틼; 틼; 틼; ) HANGUL SYLLABLE TILS
+D2FD;D2FD;1110 1175 11B4;D2FD;1110 1175 11B4; # (틽; 틽; 틽; 틽; 틽; ) HANGUL SYLLABLE TILT
+D2FE;D2FE;1110 1175 11B5;D2FE;1110 1175 11B5; # (틾; 틾; 틾; 틾; 틾; ) HANGUL SYLLABLE TILP
+D2FF;D2FF;1110 1175 11B6;D2FF;1110 1175 11B6; # (틿; 틿; 틿; 틿; 틿; ) HANGUL SYLLABLE TILH
+D300;D300;1110 1175 11B7;D300;1110 1175 11B7; # (팀; 팀; 팀; 팀; 팀; ) HANGUL SYLLABLE TIM
+D301;D301;1110 1175 11B8;D301;1110 1175 11B8; # (팁; 팁; 팁; 팁; 팁; ) HANGUL SYLLABLE TIB
+D302;D302;1110 1175 11B9;D302;1110 1175 11B9; # (팂; 팂; 팂; 팂; 팂; ) HANGUL SYLLABLE TIBS
+D303;D303;1110 1175 11BA;D303;1110 1175 11BA; # (팃; 팃; 팃; 팃; 팃; ) HANGUL SYLLABLE TIS
+D304;D304;1110 1175 11BB;D304;1110 1175 11BB; # (팄; 팄; 팄; 팄; 팄; ) HANGUL SYLLABLE TISS
+D305;D305;1110 1175 11BC;D305;1110 1175 11BC; # (팅; 팅; 팅; 팅; 팅; ) HANGUL SYLLABLE TING
+D306;D306;1110 1175 11BD;D306;1110 1175 11BD; # (팆; 팆; 팆; 팆; 팆; ) HANGUL SYLLABLE TIJ
+D307;D307;1110 1175 11BE;D307;1110 1175 11BE; # (팇; 팇; 팇; 팇; 팇; ) HANGUL SYLLABLE TIC
+D308;D308;1110 1175 11BF;D308;1110 1175 11BF; # (팈; 팈; 팈; 팈; 팈; ) HANGUL SYLLABLE TIK
+D309;D309;1110 1175 11C0;D309;1110 1175 11C0; # (팉; 팉; 팉; 팉; 팉; ) HANGUL SYLLABLE TIT
+D30A;D30A;1110 1175 11C1;D30A;1110 1175 11C1; # (팊; 팊; 팊; 팊; 팊; ) HANGUL SYLLABLE TIP
+D30B;D30B;1110 1175 11C2;D30B;1110 1175 11C2; # (팋; 팋; 팋; 팋; 팋; ) HANGUL SYLLABLE TIH
+D30C;D30C;1111 1161;D30C;1111 1161; # (파; 파; 파; 파; 파; ) HANGUL SYLLABLE PA
+D30D;D30D;1111 1161 11A8;D30D;1111 1161 11A8; # (팍; 팍; 팍; 팍; 팍; ) HANGUL SYLLABLE PAG
+D30E;D30E;1111 1161 11A9;D30E;1111 1161 11A9; # (팎; 팎; 팎; 팎; 팎; ) HANGUL SYLLABLE PAGG
+D30F;D30F;1111 1161 11AA;D30F;1111 1161 11AA; # (팏; 팏; 팏; 팏; 팏; ) HANGUL SYLLABLE PAGS
+D310;D310;1111 1161 11AB;D310;1111 1161 11AB; # (판; 판; 판; 판; 판; ) HANGUL SYLLABLE PAN
+D311;D311;1111 1161 11AC;D311;1111 1161 11AC; # (팑; 팑; 팑; 팑; 팑; ) HANGUL SYLLABLE PANJ
+D312;D312;1111 1161 11AD;D312;1111 1161 11AD; # (팒; 팒; 팒; 팒; 팒; ) HANGUL SYLLABLE PANH
+D313;D313;1111 1161 11AE;D313;1111 1161 11AE; # (팓; 팓; 팓; 팓; 팓; ) HANGUL SYLLABLE PAD
+D314;D314;1111 1161 11AF;D314;1111 1161 11AF; # (팔; 팔; 팔; 팔; 팔; ) HANGUL SYLLABLE PAL
+D315;D315;1111 1161 11B0;D315;1111 1161 11B0; # (팕; 팕; 팕; 팕; 팕; ) HANGUL SYLLABLE PALG
+D316;D316;1111 1161 11B1;D316;1111 1161 11B1; # (팖; 팖; 팖; 팖; 팖; ) HANGUL SYLLABLE PALM
+D317;D317;1111 1161 11B2;D317;1111 1161 11B2; # (팗; 팗; 팗; 팗; 팗; ) HANGUL SYLLABLE PALB
+D318;D318;1111 1161 11B3;D318;1111 1161 11B3; # (팘; 팘; 팘; 팘; 팘; ) HANGUL SYLLABLE PALS
+D319;D319;1111 1161 11B4;D319;1111 1161 11B4; # (팙; 팙; 팙; 팙; 팙; ) HANGUL SYLLABLE PALT
+D31A;D31A;1111 1161 11B5;D31A;1111 1161 11B5; # (팚; 팚; 팚; 팚; 팚; ) HANGUL SYLLABLE PALP
+D31B;D31B;1111 1161 11B6;D31B;1111 1161 11B6; # (팛; 팛; 팛; 팛; 팛; ) HANGUL SYLLABLE PALH
+D31C;D31C;1111 1161 11B7;D31C;1111 1161 11B7; # (팜; 팜; 팜; 팜; 팜; ) HANGUL SYLLABLE PAM
+D31D;D31D;1111 1161 11B8;D31D;1111 1161 11B8; # (팝; 팝; 팝; 팝; 팝; ) HANGUL SYLLABLE PAB
+D31E;D31E;1111 1161 11B9;D31E;1111 1161 11B9; # (팞; 팞; 팞; 팞; 팞; ) HANGUL SYLLABLE PABS
+D31F;D31F;1111 1161 11BA;D31F;1111 1161 11BA; # (팟; 팟; 팟; 팟; 팟; ) HANGUL SYLLABLE PAS
+D320;D320;1111 1161 11BB;D320;1111 1161 11BB; # (팠; 팠; 팠; 팠; 팠; ) HANGUL SYLLABLE PASS
+D321;D321;1111 1161 11BC;D321;1111 1161 11BC; # (팡; 팡; 팡; 팡; 팡; ) HANGUL SYLLABLE PANG
+D322;D322;1111 1161 11BD;D322;1111 1161 11BD; # (팢; 팢; 팢; 팢; 팢; ) HANGUL SYLLABLE PAJ
+D323;D323;1111 1161 11BE;D323;1111 1161 11BE; # (팣; 팣; 팣; 팣; 팣; ) HANGUL SYLLABLE PAC
+D324;D324;1111 1161 11BF;D324;1111 1161 11BF; # (팤; 팤; 팤; 팤; 팤; ) HANGUL SYLLABLE PAK
+D325;D325;1111 1161 11C0;D325;1111 1161 11C0; # (팥; 팥; 팥; 팥; 팥; ) HANGUL SYLLABLE PAT
+D326;D326;1111 1161 11C1;D326;1111 1161 11C1; # (팦; 팦; 팦; 팦; 팦; ) HANGUL SYLLABLE PAP
+D327;D327;1111 1161 11C2;D327;1111 1161 11C2; # (팧; 팧; 팧; 팧; 팧; ) HANGUL SYLLABLE PAH
+D328;D328;1111 1162;D328;1111 1162; # (패; 패; 패; 패; 패; ) HANGUL SYLLABLE PAE
+D329;D329;1111 1162 11A8;D329;1111 1162 11A8; # (팩; 팩; 팩; 팩; 팩; ) HANGUL SYLLABLE PAEG
+D32A;D32A;1111 1162 11A9;D32A;1111 1162 11A9; # (팪; 팪; 팪; 팪; 팪; ) HANGUL SYLLABLE PAEGG
+D32B;D32B;1111 1162 11AA;D32B;1111 1162 11AA; # (팫; 팫; 팫; 팫; 팫; ) HANGUL SYLLABLE PAEGS
+D32C;D32C;1111 1162 11AB;D32C;1111 1162 11AB; # (팬; 팬; 팬; 팬; 팬; ) HANGUL SYLLABLE PAEN
+D32D;D32D;1111 1162 11AC;D32D;1111 1162 11AC; # (팭; 팭; 팭; 팭; 팭; ) HANGUL SYLLABLE PAENJ
+D32E;D32E;1111 1162 11AD;D32E;1111 1162 11AD; # (팮; 팮; 팮; 팮; 팮; ) HANGUL SYLLABLE PAENH
+D32F;D32F;1111 1162 11AE;D32F;1111 1162 11AE; # (팯; 팯; 팯; 팯; 팯; ) HANGUL SYLLABLE PAED
+D330;D330;1111 1162 11AF;D330;1111 1162 11AF; # (팰; 팰; 팰; 팰; 팰; ) HANGUL SYLLABLE PAEL
+D331;D331;1111 1162 11B0;D331;1111 1162 11B0; # (팱; 팱; 팱; 팱; 팱; ) HANGUL SYLLABLE PAELG
+D332;D332;1111 1162 11B1;D332;1111 1162 11B1; # (팲; 팲; 팲; 팲; 팲; ) HANGUL SYLLABLE PAELM
+D333;D333;1111 1162 11B2;D333;1111 1162 11B2; # (팳; 팳; 팳; 팳; 팳; ) HANGUL SYLLABLE PAELB
+D334;D334;1111 1162 11B3;D334;1111 1162 11B3; # (팴; 팴; 팴; 팴; 팴; ) HANGUL SYLLABLE PAELS
+D335;D335;1111 1162 11B4;D335;1111 1162 11B4; # (팵; 팵; 팵; 팵; 팵; ) HANGUL SYLLABLE PAELT
+D336;D336;1111 1162 11B5;D336;1111 1162 11B5; # (팶; 팶; 팶; 팶; 팶; ) HANGUL SYLLABLE PAELP
+D337;D337;1111 1162 11B6;D337;1111 1162 11B6; # (팷; 팷; 팷; 팷; 팷; ) HANGUL SYLLABLE PAELH
+D338;D338;1111 1162 11B7;D338;1111 1162 11B7; # (팸; 팸; 팸; 팸; 팸; ) HANGUL SYLLABLE PAEM
+D339;D339;1111 1162 11B8;D339;1111 1162 11B8; # (팹; 팹; 팹; 팹; 팹; ) HANGUL SYLLABLE PAEB
+D33A;D33A;1111 1162 11B9;D33A;1111 1162 11B9; # (팺; 팺; 팺; 팺; 팺; ) HANGUL SYLLABLE PAEBS
+D33B;D33B;1111 1162 11BA;D33B;1111 1162 11BA; # (팻; 팻; 팻; 팻; 팻; ) HANGUL SYLLABLE PAES
+D33C;D33C;1111 1162 11BB;D33C;1111 1162 11BB; # (팼; 팼; 팼; 팼; 팼; ) HANGUL SYLLABLE PAESS
+D33D;D33D;1111 1162 11BC;D33D;1111 1162 11BC; # (팽; 팽; 팽; 팽; 팽; ) HANGUL SYLLABLE PAENG
+D33E;D33E;1111 1162 11BD;D33E;1111 1162 11BD; # (팾; 팾; 팾; 팾; 팾; ) HANGUL SYLLABLE PAEJ
+D33F;D33F;1111 1162 11BE;D33F;1111 1162 11BE; # (팿; 팿; 팿; 팿; 팿; ) HANGUL SYLLABLE PAEC
+D340;D340;1111 1162 11BF;D340;1111 1162 11BF; # (퍀; 퍀; 퍀; 퍀; 퍀; ) HANGUL SYLLABLE PAEK
+D341;D341;1111 1162 11C0;D341;1111 1162 11C0; # (퍁; 퍁; 퍁; 퍁; 퍁; ) HANGUL SYLLABLE PAET
+D342;D342;1111 1162 11C1;D342;1111 1162 11C1; # (퍂; 퍂; 퍂; 퍂; 퍂; ) HANGUL SYLLABLE PAEP
+D343;D343;1111 1162 11C2;D343;1111 1162 11C2; # (퍃; 퍃; 퍃; 퍃; 퍃; ) HANGUL SYLLABLE PAEH
+D344;D344;1111 1163;D344;1111 1163; # (퍄; 퍄; 퍄; 퍄; 퍄; ) HANGUL SYLLABLE PYA
+D345;D345;1111 1163 11A8;D345;1111 1163 11A8; # (퍅; 퍅; 퍅; 퍅; 퍅; ) HANGUL SYLLABLE PYAG
+D346;D346;1111 1163 11A9;D346;1111 1163 11A9; # (퍆; 퍆; 퍆; 퍆; 퍆; ) HANGUL SYLLABLE PYAGG
+D347;D347;1111 1163 11AA;D347;1111 1163 11AA; # (퍇; 퍇; 퍇; 퍇; 퍇; ) HANGUL SYLLABLE PYAGS
+D348;D348;1111 1163 11AB;D348;1111 1163 11AB; # (퍈; 퍈; 퍈; 퍈; 퍈; ) HANGUL SYLLABLE PYAN
+D349;D349;1111 1163 11AC;D349;1111 1163 11AC; # (퍉; 퍉; 퍉; 퍉; 퍉; ) HANGUL SYLLABLE PYANJ
+D34A;D34A;1111 1163 11AD;D34A;1111 1163 11AD; # (퍊; 퍊; 퍊; 퍊; 퍊; ) HANGUL SYLLABLE PYANH
+D34B;D34B;1111 1163 11AE;D34B;1111 1163 11AE; # (퍋; 퍋; 퍋; 퍋; 퍋; ) HANGUL SYLLABLE PYAD
+D34C;D34C;1111 1163 11AF;D34C;1111 1163 11AF; # (퍌; 퍌; 퍌; 퍌; 퍌; ) HANGUL SYLLABLE PYAL
+D34D;D34D;1111 1163 11B0;D34D;1111 1163 11B0; # (퍍; 퍍; 퍍; 퍍; 퍍; ) HANGUL SYLLABLE PYALG
+D34E;D34E;1111 1163 11B1;D34E;1111 1163 11B1; # (퍎; 퍎; 퍎; 퍎; 퍎; ) HANGUL SYLLABLE PYALM
+D34F;D34F;1111 1163 11B2;D34F;1111 1163 11B2; # (퍏; 퍏; 퍏; 퍏; 퍏; ) HANGUL SYLLABLE PYALB
+D350;D350;1111 1163 11B3;D350;1111 1163 11B3; # (퍐; 퍐; 퍐; 퍐; 퍐; ) HANGUL SYLLABLE PYALS
+D351;D351;1111 1163 11B4;D351;1111 1163 11B4; # (퍑; 퍑; 퍑; 퍑; 퍑; ) HANGUL SYLLABLE PYALT
+D352;D352;1111 1163 11B5;D352;1111 1163 11B5; # (퍒; 퍒; 퍒; 퍒; 퍒; ) HANGUL SYLLABLE PYALP
+D353;D353;1111 1163 11B6;D353;1111 1163 11B6; # (퍓; 퍓; 퍓; 퍓; 퍓; ) HANGUL SYLLABLE PYALH
+D354;D354;1111 1163 11B7;D354;1111 1163 11B7; # (퍔; 퍔; 퍔; 퍔; 퍔; ) HANGUL SYLLABLE PYAM
+D355;D355;1111 1163 11B8;D355;1111 1163 11B8; # (퍕; 퍕; 퍕; 퍕; 퍕; ) HANGUL SYLLABLE PYAB
+D356;D356;1111 1163 11B9;D356;1111 1163 11B9; # (퍖; 퍖; 퍖; 퍖; 퍖; ) HANGUL SYLLABLE PYABS
+D357;D357;1111 1163 11BA;D357;1111 1163 11BA; # (퍗; 퍗; 퍗; 퍗; 퍗; ) HANGUL SYLLABLE PYAS
+D358;D358;1111 1163 11BB;D358;1111 1163 11BB; # (퍘; 퍘; 퍘; 퍘; 퍘; ) HANGUL SYLLABLE PYASS
+D359;D359;1111 1163 11BC;D359;1111 1163 11BC; # (퍙; 퍙; 퍙; 퍙; 퍙; ) HANGUL SYLLABLE PYANG
+D35A;D35A;1111 1163 11BD;D35A;1111 1163 11BD; # (퍚; 퍚; 퍚; 퍚; 퍚; ) HANGUL SYLLABLE PYAJ
+D35B;D35B;1111 1163 11BE;D35B;1111 1163 11BE; # (퍛; 퍛; 퍛; 퍛; 퍛; ) HANGUL SYLLABLE PYAC
+D35C;D35C;1111 1163 11BF;D35C;1111 1163 11BF; # (퍜; 퍜; 퍜; 퍜; 퍜; ) HANGUL SYLLABLE PYAK
+D35D;D35D;1111 1163 11C0;D35D;1111 1163 11C0; # (퍝; 퍝; 퍝; 퍝; 퍝; ) HANGUL SYLLABLE PYAT
+D35E;D35E;1111 1163 11C1;D35E;1111 1163 11C1; # (퍞; 퍞; 퍞; 퍞; 퍞; ) HANGUL SYLLABLE PYAP
+D35F;D35F;1111 1163 11C2;D35F;1111 1163 11C2; # (퍟; 퍟; 퍟; 퍟; 퍟; ) HANGUL SYLLABLE PYAH
+D360;D360;1111 1164;D360;1111 1164; # (퍠; 퍠; 퍠; 퍠; 퍠; ) HANGUL SYLLABLE PYAE
+D361;D361;1111 1164 11A8;D361;1111 1164 11A8; # (퍡; 퍡; 퍡; 퍡; 퍡; ) HANGUL SYLLABLE PYAEG
+D362;D362;1111 1164 11A9;D362;1111 1164 11A9; # (퍢; 퍢; 퍢; 퍢; 퍢; ) HANGUL SYLLABLE PYAEGG
+D363;D363;1111 1164 11AA;D363;1111 1164 11AA; # (퍣; 퍣; 퍣; 퍣; 퍣; ) HANGUL SYLLABLE PYAEGS
+D364;D364;1111 1164 11AB;D364;1111 1164 11AB; # (퍤; 퍤; 퍤; 퍤; 퍤; ) HANGUL SYLLABLE PYAEN
+D365;D365;1111 1164 11AC;D365;1111 1164 11AC; # (퍥; 퍥; 퍥; 퍥; 퍥; ) HANGUL SYLLABLE PYAENJ
+D366;D366;1111 1164 11AD;D366;1111 1164 11AD; # (퍦; 퍦; 퍦; 퍦; 퍦; ) HANGUL SYLLABLE PYAENH
+D367;D367;1111 1164 11AE;D367;1111 1164 11AE; # (퍧; 퍧; 퍧; 퍧; 퍧; ) HANGUL SYLLABLE PYAED
+D368;D368;1111 1164 11AF;D368;1111 1164 11AF; # (퍨; 퍨; 퍨; 퍨; 퍨; ) HANGUL SYLLABLE PYAEL
+D369;D369;1111 1164 11B0;D369;1111 1164 11B0; # (퍩; 퍩; 퍩; 퍩; 퍩; ) HANGUL SYLLABLE PYAELG
+D36A;D36A;1111 1164 11B1;D36A;1111 1164 11B1; # (퍪; 퍪; 퍪; 퍪; 퍪; ) HANGUL SYLLABLE PYAELM
+D36B;D36B;1111 1164 11B2;D36B;1111 1164 11B2; # (퍫; 퍫; 퍫; 퍫; 퍫; ) HANGUL SYLLABLE PYAELB
+D36C;D36C;1111 1164 11B3;D36C;1111 1164 11B3; # (퍬; 퍬; 퍬; 퍬; 퍬; ) HANGUL SYLLABLE PYAELS
+D36D;D36D;1111 1164 11B4;D36D;1111 1164 11B4; # (퍭; 퍭; 퍭; 퍭; 퍭; ) HANGUL SYLLABLE PYAELT
+D36E;D36E;1111 1164 11B5;D36E;1111 1164 11B5; # (퍮; 퍮; 퍮; 퍮; 퍮; ) HANGUL SYLLABLE PYAELP
+D36F;D36F;1111 1164 11B6;D36F;1111 1164 11B6; # (퍯; 퍯; 퍯; 퍯; 퍯; ) HANGUL SYLLABLE PYAELH
+D370;D370;1111 1164 11B7;D370;1111 1164 11B7; # (퍰; 퍰; 퍰; 퍰; 퍰; ) HANGUL SYLLABLE PYAEM
+D371;D371;1111 1164 11B8;D371;1111 1164 11B8; # (퍱; 퍱; 퍱; 퍱; 퍱; ) HANGUL SYLLABLE PYAEB
+D372;D372;1111 1164 11B9;D372;1111 1164 11B9; # (퍲; 퍲; 퍲; 퍲; 퍲; ) HANGUL SYLLABLE PYAEBS
+D373;D373;1111 1164 11BA;D373;1111 1164 11BA; # (퍳; 퍳; 퍳; 퍳; 퍳; ) HANGUL SYLLABLE PYAES
+D374;D374;1111 1164 11BB;D374;1111 1164 11BB; # (퍴; 퍴; 퍴; 퍴; 퍴; ) HANGUL SYLLABLE PYAESS
+D375;D375;1111 1164 11BC;D375;1111 1164 11BC; # (퍵; 퍵; 퍵; 퍵; 퍵; ) HANGUL SYLLABLE PYAENG
+D376;D376;1111 1164 11BD;D376;1111 1164 11BD; # (퍶; 퍶; 퍶; 퍶; 퍶; ) HANGUL SYLLABLE PYAEJ
+D377;D377;1111 1164 11BE;D377;1111 1164 11BE; # (퍷; 퍷; 퍷; 퍷; 퍷; ) HANGUL SYLLABLE PYAEC
+D378;D378;1111 1164 11BF;D378;1111 1164 11BF; # (퍸; 퍸; 퍸; 퍸; 퍸; ) HANGUL SYLLABLE PYAEK
+D379;D379;1111 1164 11C0;D379;1111 1164 11C0; # (퍹; 퍹; 퍹; 퍹; 퍹; ) HANGUL SYLLABLE PYAET
+D37A;D37A;1111 1164 11C1;D37A;1111 1164 11C1; # (퍺; 퍺; 퍺; 퍺; 퍺; ) HANGUL SYLLABLE PYAEP
+D37B;D37B;1111 1164 11C2;D37B;1111 1164 11C2; # (퍻; 퍻; 퍻; 퍻; 퍻; ) HANGUL SYLLABLE PYAEH
+D37C;D37C;1111 1165;D37C;1111 1165; # (퍼; 퍼; 퍼; 퍼; 퍼; ) HANGUL SYLLABLE PEO
+D37D;D37D;1111 1165 11A8;D37D;1111 1165 11A8; # (퍽; 퍽; 퍽; 퍽; 퍽; ) HANGUL SYLLABLE PEOG
+D37E;D37E;1111 1165 11A9;D37E;1111 1165 11A9; # (퍾; 퍾; 퍾; 퍾; 퍾; ) HANGUL SYLLABLE PEOGG
+D37F;D37F;1111 1165 11AA;D37F;1111 1165 11AA; # (퍿; 퍿; 퍿; 퍿; 퍿; ) HANGUL SYLLABLE PEOGS
+D380;D380;1111 1165 11AB;D380;1111 1165 11AB; # (펀; 펀; 펀; 펀; 펀; ) HANGUL SYLLABLE PEON
+D381;D381;1111 1165 11AC;D381;1111 1165 11AC; # (펁; 펁; 펁; 펁; 펁; ) HANGUL SYLLABLE PEONJ
+D382;D382;1111 1165 11AD;D382;1111 1165 11AD; # (펂; 펂; 펂; 펂; 펂; ) HANGUL SYLLABLE PEONH
+D383;D383;1111 1165 11AE;D383;1111 1165 11AE; # (펃; 펃; 펃; 펃; 펃; ) HANGUL SYLLABLE PEOD
+D384;D384;1111 1165 11AF;D384;1111 1165 11AF; # (펄; 펄; 펄; 펄; 펄; ) HANGUL SYLLABLE PEOL
+D385;D385;1111 1165 11B0;D385;1111 1165 11B0; # (펅; 펅; 펅; 펅; 펅; ) HANGUL SYLLABLE PEOLG
+D386;D386;1111 1165 11B1;D386;1111 1165 11B1; # (펆; 펆; 펆; 펆; 펆; ) HANGUL SYLLABLE PEOLM
+D387;D387;1111 1165 11B2;D387;1111 1165 11B2; # (펇; 펇; 펇; 펇; 펇; ) HANGUL SYLLABLE PEOLB
+D388;D388;1111 1165 11B3;D388;1111 1165 11B3; # (펈; 펈; 펈; 펈; 펈; ) HANGUL SYLLABLE PEOLS
+D389;D389;1111 1165 11B4;D389;1111 1165 11B4; # (펉; 펉; 펉; 펉; 펉; ) HANGUL SYLLABLE PEOLT
+D38A;D38A;1111 1165 11B5;D38A;1111 1165 11B5; # (펊; 펊; 펊; 펊; 펊; ) HANGUL SYLLABLE PEOLP
+D38B;D38B;1111 1165 11B6;D38B;1111 1165 11B6; # (펋; 펋; 펋; 펋; 펋; ) HANGUL SYLLABLE PEOLH
+D38C;D38C;1111 1165 11B7;D38C;1111 1165 11B7; # (펌; 펌; 펌; 펌; 펌; ) HANGUL SYLLABLE PEOM
+D38D;D38D;1111 1165 11B8;D38D;1111 1165 11B8; # (펍; 펍; 펍; 펍; 펍; ) HANGUL SYLLABLE PEOB
+D38E;D38E;1111 1165 11B9;D38E;1111 1165 11B9; # (펎; 펎; 펎; 펎; 펎; ) HANGUL SYLLABLE PEOBS
+D38F;D38F;1111 1165 11BA;D38F;1111 1165 11BA; # (펏; 펏; 펏; 펏; 펏; ) HANGUL SYLLABLE PEOS
+D390;D390;1111 1165 11BB;D390;1111 1165 11BB; # (펐; 펐; 펐; 펐; 펐; ) HANGUL SYLLABLE PEOSS
+D391;D391;1111 1165 11BC;D391;1111 1165 11BC; # (펑; 펑; 펑; 펑; 펑; ) HANGUL SYLLABLE PEONG
+D392;D392;1111 1165 11BD;D392;1111 1165 11BD; # (펒; 펒; 펒; 펒; 펒; ) HANGUL SYLLABLE PEOJ
+D393;D393;1111 1165 11BE;D393;1111 1165 11BE; # (펓; 펓; 펓; 펓; 펓; ) HANGUL SYLLABLE PEOC
+D394;D394;1111 1165 11BF;D394;1111 1165 11BF; # (펔; 펔; 펔; 펔; 펔; ) HANGUL SYLLABLE PEOK
+D395;D395;1111 1165 11C0;D395;1111 1165 11C0; # (펕; 펕; 펕; 펕; 펕; ) HANGUL SYLLABLE PEOT
+D396;D396;1111 1165 11C1;D396;1111 1165 11C1; # (펖; 펖; 펖; 펖; 펖; ) HANGUL SYLLABLE PEOP
+D397;D397;1111 1165 11C2;D397;1111 1165 11C2; # (펗; 펗; 펗; 펗; 펗; ) HANGUL SYLLABLE PEOH
+D398;D398;1111 1166;D398;1111 1166; # (페; 페; 페; 페; 페; ) HANGUL SYLLABLE PE
+D399;D399;1111 1166 11A8;D399;1111 1166 11A8; # (펙; 펙; 펙; 펙; 펙; ) HANGUL SYLLABLE PEG
+D39A;D39A;1111 1166 11A9;D39A;1111 1166 11A9; # (펚; 펚; 펚; 펚; 펚; ) HANGUL SYLLABLE PEGG
+D39B;D39B;1111 1166 11AA;D39B;1111 1166 11AA; # (펛; 펛; 펛; 펛; 펛; ) HANGUL SYLLABLE PEGS
+D39C;D39C;1111 1166 11AB;D39C;1111 1166 11AB; # (펜; 펜; 펜; 펜; 펜; ) HANGUL SYLLABLE PEN
+D39D;D39D;1111 1166 11AC;D39D;1111 1166 11AC; # (펝; 펝; 펝; 펝; 펝; ) HANGUL SYLLABLE PENJ
+D39E;D39E;1111 1166 11AD;D39E;1111 1166 11AD; # (펞; 펞; 펞; 펞; 펞; ) HANGUL SYLLABLE PENH
+D39F;D39F;1111 1166 11AE;D39F;1111 1166 11AE; # (펟; 펟; 펟; 펟; 펟; ) HANGUL SYLLABLE PED
+D3A0;D3A0;1111 1166 11AF;D3A0;1111 1166 11AF; # (펠; 펠; 펠; 펠; 펠; ) HANGUL SYLLABLE PEL
+D3A1;D3A1;1111 1166 11B0;D3A1;1111 1166 11B0; # (펡; 펡; 펡; 펡; 펡; ) HANGUL SYLLABLE PELG
+D3A2;D3A2;1111 1166 11B1;D3A2;1111 1166 11B1; # (펢; 펢; 펢; 펢; 펢; ) HANGUL SYLLABLE PELM
+D3A3;D3A3;1111 1166 11B2;D3A3;1111 1166 11B2; # (펣; 펣; 펣; 펣; 펣; ) HANGUL SYLLABLE PELB
+D3A4;D3A4;1111 1166 11B3;D3A4;1111 1166 11B3; # (펤; 펤; 펤; 펤; 펤; ) HANGUL SYLLABLE PELS
+D3A5;D3A5;1111 1166 11B4;D3A5;1111 1166 11B4; # (펥; 펥; 펥; 펥; 펥; ) HANGUL SYLLABLE PELT
+D3A6;D3A6;1111 1166 11B5;D3A6;1111 1166 11B5; # (펦; 펦; 펦; 펦; 펦; ) HANGUL SYLLABLE PELP
+D3A7;D3A7;1111 1166 11B6;D3A7;1111 1166 11B6; # (펧; 펧; 펧; 펧; 펧; ) HANGUL SYLLABLE PELH
+D3A8;D3A8;1111 1166 11B7;D3A8;1111 1166 11B7; # (펨; 펨; 펨; 펨; 펨; ) HANGUL SYLLABLE PEM
+D3A9;D3A9;1111 1166 11B8;D3A9;1111 1166 11B8; # (펩; 펩; 펩; 펩; 펩; ) HANGUL SYLLABLE PEB
+D3AA;D3AA;1111 1166 11B9;D3AA;1111 1166 11B9; # (펪; 펪; 펪; 펪; 펪; ) HANGUL SYLLABLE PEBS
+D3AB;D3AB;1111 1166 11BA;D3AB;1111 1166 11BA; # (펫; 펫; 펫; 펫; 펫; ) HANGUL SYLLABLE PES
+D3AC;D3AC;1111 1166 11BB;D3AC;1111 1166 11BB; # (펬; 펬; 펬; 펬; 펬; ) HANGUL SYLLABLE PESS
+D3AD;D3AD;1111 1166 11BC;D3AD;1111 1166 11BC; # (펭; 펭; 펭; 펭; 펭; ) HANGUL SYLLABLE PENG
+D3AE;D3AE;1111 1166 11BD;D3AE;1111 1166 11BD; # (펮; 펮; 펮; 펮; 펮; ) HANGUL SYLLABLE PEJ
+D3AF;D3AF;1111 1166 11BE;D3AF;1111 1166 11BE; # (펯; 펯; 펯; 펯; 펯; ) HANGUL SYLLABLE PEC
+D3B0;D3B0;1111 1166 11BF;D3B0;1111 1166 11BF; # (펰; 펰; 펰; 펰; 펰; ) HANGUL SYLLABLE PEK
+D3B1;D3B1;1111 1166 11C0;D3B1;1111 1166 11C0; # (펱; 펱; 펱; 펱; 펱; ) HANGUL SYLLABLE PET
+D3B2;D3B2;1111 1166 11C1;D3B2;1111 1166 11C1; # (펲; 펲; 펲; 펲; 펲; ) HANGUL SYLLABLE PEP
+D3B3;D3B3;1111 1166 11C2;D3B3;1111 1166 11C2; # (펳; 펳; 펳; 펳; 펳; ) HANGUL SYLLABLE PEH
+D3B4;D3B4;1111 1167;D3B4;1111 1167; # (펴; 펴; 펴; 펴; 펴; ) HANGUL SYLLABLE PYEO
+D3B5;D3B5;1111 1167 11A8;D3B5;1111 1167 11A8; # (펵; 펵; 펵; 펵; 펵; ) HANGUL SYLLABLE PYEOG
+D3B6;D3B6;1111 1167 11A9;D3B6;1111 1167 11A9; # (펶; 펶; 펶; 펶; 펶; ) HANGUL SYLLABLE PYEOGG
+D3B7;D3B7;1111 1167 11AA;D3B7;1111 1167 11AA; # (펷; 펷; 펷; 펷; 펷; ) HANGUL SYLLABLE PYEOGS
+D3B8;D3B8;1111 1167 11AB;D3B8;1111 1167 11AB; # (편; 편; 편; 편; 편; ) HANGUL SYLLABLE PYEON
+D3B9;D3B9;1111 1167 11AC;D3B9;1111 1167 11AC; # (펹; 펹; 펹; 펹; 펹; ) HANGUL SYLLABLE PYEONJ
+D3BA;D3BA;1111 1167 11AD;D3BA;1111 1167 11AD; # (펺; 펺; 펺; 펺; 펺; ) HANGUL SYLLABLE PYEONH
+D3BB;D3BB;1111 1167 11AE;D3BB;1111 1167 11AE; # (펻; 펻; 펻; 펻; 펻; ) HANGUL SYLLABLE PYEOD
+D3BC;D3BC;1111 1167 11AF;D3BC;1111 1167 11AF; # (펼; 펼; 펼; 펼; 펼; ) HANGUL SYLLABLE PYEOL
+D3BD;D3BD;1111 1167 11B0;D3BD;1111 1167 11B0; # (펽; 펽; 펽; 펽; 펽; ) HANGUL SYLLABLE PYEOLG
+D3BE;D3BE;1111 1167 11B1;D3BE;1111 1167 11B1; # (펾; 펾; 펾; 펾; 펾; ) HANGUL SYLLABLE PYEOLM
+D3BF;D3BF;1111 1167 11B2;D3BF;1111 1167 11B2; # (펿; 펿; 펿; 펿; 펿; ) HANGUL SYLLABLE PYEOLB
+D3C0;D3C0;1111 1167 11B3;D3C0;1111 1167 11B3; # (폀; 폀; 폀; 폀; 폀; ) HANGUL SYLLABLE PYEOLS
+D3C1;D3C1;1111 1167 11B4;D3C1;1111 1167 11B4; # (폁; 폁; 폁; 폁; 폁; ) HANGUL SYLLABLE PYEOLT
+D3C2;D3C2;1111 1167 11B5;D3C2;1111 1167 11B5; # (폂; 폂; 폂; 폂; 폂; ) HANGUL SYLLABLE PYEOLP
+D3C3;D3C3;1111 1167 11B6;D3C3;1111 1167 11B6; # (폃; 폃; 폃; 폃; 폃; ) HANGUL SYLLABLE PYEOLH
+D3C4;D3C4;1111 1167 11B7;D3C4;1111 1167 11B7; # (폄; 폄; 폄; 폄; 폄; ) HANGUL SYLLABLE PYEOM
+D3C5;D3C5;1111 1167 11B8;D3C5;1111 1167 11B8; # (폅; 폅; 폅; 폅; 폅; ) HANGUL SYLLABLE PYEOB
+D3C6;D3C6;1111 1167 11B9;D3C6;1111 1167 11B9; # (폆; 폆; 폆; 폆; 폆; ) HANGUL SYLLABLE PYEOBS
+D3C7;D3C7;1111 1167 11BA;D3C7;1111 1167 11BA; # (폇; 폇; 폇; 폇; 폇; ) HANGUL SYLLABLE PYEOS
+D3C8;D3C8;1111 1167 11BB;D3C8;1111 1167 11BB; # (폈; 폈; 폈; 폈; 폈; ) HANGUL SYLLABLE PYEOSS
+D3C9;D3C9;1111 1167 11BC;D3C9;1111 1167 11BC; # (평; 평; 평; 평; 평; ) HANGUL SYLLABLE PYEONG
+D3CA;D3CA;1111 1167 11BD;D3CA;1111 1167 11BD; # (폊; 폊; 폊; 폊; 폊; ) HANGUL SYLLABLE PYEOJ
+D3CB;D3CB;1111 1167 11BE;D3CB;1111 1167 11BE; # (폋; 폋; 폋; 폋; 폋; ) HANGUL SYLLABLE PYEOC
+D3CC;D3CC;1111 1167 11BF;D3CC;1111 1167 11BF; # (폌; 폌; 폌; 폌; 폌; ) HANGUL SYLLABLE PYEOK
+D3CD;D3CD;1111 1167 11C0;D3CD;1111 1167 11C0; # (폍; 폍; 폍; 폍; 폍; ) HANGUL SYLLABLE PYEOT
+D3CE;D3CE;1111 1167 11C1;D3CE;1111 1167 11C1; # (폎; 폎; 폎; 폎; 폎; ) HANGUL SYLLABLE PYEOP
+D3CF;D3CF;1111 1167 11C2;D3CF;1111 1167 11C2; # (폏; 폏; 폏; 폏; 폏; ) HANGUL SYLLABLE PYEOH
+D3D0;D3D0;1111 1168;D3D0;1111 1168; # (폐; 폐; 폐; 폐; 폐; ) HANGUL SYLLABLE PYE
+D3D1;D3D1;1111 1168 11A8;D3D1;1111 1168 11A8; # (폑; 폑; 폑; 폑; 폑; ) HANGUL SYLLABLE PYEG
+D3D2;D3D2;1111 1168 11A9;D3D2;1111 1168 11A9; # (폒; 폒; 폒; 폒; 폒; ) HANGUL SYLLABLE PYEGG
+D3D3;D3D3;1111 1168 11AA;D3D3;1111 1168 11AA; # (폓; 폓; 폓; 폓; 폓; ) HANGUL SYLLABLE PYEGS
+D3D4;D3D4;1111 1168 11AB;D3D4;1111 1168 11AB; # (폔; 폔; 폔; 폔; 폔; ) HANGUL SYLLABLE PYEN
+D3D5;D3D5;1111 1168 11AC;D3D5;1111 1168 11AC; # (폕; 폕; 폕; 폕; 폕; ) HANGUL SYLLABLE PYENJ
+D3D6;D3D6;1111 1168 11AD;D3D6;1111 1168 11AD; # (폖; 폖; 폖; 폖; 폖; ) HANGUL SYLLABLE PYENH
+D3D7;D3D7;1111 1168 11AE;D3D7;1111 1168 11AE; # (폗; 폗; 폗; 폗; 폗; ) HANGUL SYLLABLE PYED
+D3D8;D3D8;1111 1168 11AF;D3D8;1111 1168 11AF; # (폘; 폘; 폘; 폘; 폘; ) HANGUL SYLLABLE PYEL
+D3D9;D3D9;1111 1168 11B0;D3D9;1111 1168 11B0; # (폙; 폙; 폙; 폙; 폙; ) HANGUL SYLLABLE PYELG
+D3DA;D3DA;1111 1168 11B1;D3DA;1111 1168 11B1; # (폚; 폚; 폚; 폚; 폚; ) HANGUL SYLLABLE PYELM
+D3DB;D3DB;1111 1168 11B2;D3DB;1111 1168 11B2; # (폛; 폛; 폛; 폛; 폛; ) HANGUL SYLLABLE PYELB
+D3DC;D3DC;1111 1168 11B3;D3DC;1111 1168 11B3; # (폜; 폜; 폜; 폜; 폜; ) HANGUL SYLLABLE PYELS
+D3DD;D3DD;1111 1168 11B4;D3DD;1111 1168 11B4; # (폝; 폝; 폝; 폝; 폝; ) HANGUL SYLLABLE PYELT
+D3DE;D3DE;1111 1168 11B5;D3DE;1111 1168 11B5; # (폞; 폞; 폞; 폞; 폞; ) HANGUL SYLLABLE PYELP
+D3DF;D3DF;1111 1168 11B6;D3DF;1111 1168 11B6; # (폟; 폟; 폟; 폟; 폟; ) HANGUL SYLLABLE PYELH
+D3E0;D3E0;1111 1168 11B7;D3E0;1111 1168 11B7; # (폠; 폠; 폠; 폠; 폠; ) HANGUL SYLLABLE PYEM
+D3E1;D3E1;1111 1168 11B8;D3E1;1111 1168 11B8; # (폡; 폡; 폡; 폡; 폡; ) HANGUL SYLLABLE PYEB
+D3E2;D3E2;1111 1168 11B9;D3E2;1111 1168 11B9; # (폢; 폢; 폢; 폢; 폢; ) HANGUL SYLLABLE PYEBS
+D3E3;D3E3;1111 1168 11BA;D3E3;1111 1168 11BA; # (폣; 폣; 폣; 폣; 폣; ) HANGUL SYLLABLE PYES
+D3E4;D3E4;1111 1168 11BB;D3E4;1111 1168 11BB; # (폤; 폤; 폤; 폤; 폤; ) HANGUL SYLLABLE PYESS
+D3E5;D3E5;1111 1168 11BC;D3E5;1111 1168 11BC; # (폥; 폥; 폥; 폥; 폥; ) HANGUL SYLLABLE PYENG
+D3E6;D3E6;1111 1168 11BD;D3E6;1111 1168 11BD; # (폦; 폦; 폦; 폦; 폦; ) HANGUL SYLLABLE PYEJ
+D3E7;D3E7;1111 1168 11BE;D3E7;1111 1168 11BE; # (폧; 폧; 폧; 폧; 폧; ) HANGUL SYLLABLE PYEC
+D3E8;D3E8;1111 1168 11BF;D3E8;1111 1168 11BF; # (폨; 폨; 폨; 폨; 폨; ) HANGUL SYLLABLE PYEK
+D3E9;D3E9;1111 1168 11C0;D3E9;1111 1168 11C0; # (폩; 폩; 폩; 폩; 폩; ) HANGUL SYLLABLE PYET
+D3EA;D3EA;1111 1168 11C1;D3EA;1111 1168 11C1; # (폪; 폪; 폪; 폪; 폪; ) HANGUL SYLLABLE PYEP
+D3EB;D3EB;1111 1168 11C2;D3EB;1111 1168 11C2; # (폫; 폫; 폫; 폫; 폫; ) HANGUL SYLLABLE PYEH
+D3EC;D3EC;1111 1169;D3EC;1111 1169; # (포; 포; 포; 포; 포; ) HANGUL SYLLABLE PO
+D3ED;D3ED;1111 1169 11A8;D3ED;1111 1169 11A8; # (폭; 폭; 폭; 폭; 폭; ) HANGUL SYLLABLE POG
+D3EE;D3EE;1111 1169 11A9;D3EE;1111 1169 11A9; # (폮; 폮; 폮; 폮; 폮; ) HANGUL SYLLABLE POGG
+D3EF;D3EF;1111 1169 11AA;D3EF;1111 1169 11AA; # (폯; 폯; 폯; 폯; 폯; ) HANGUL SYLLABLE POGS
+D3F0;D3F0;1111 1169 11AB;D3F0;1111 1169 11AB; # (폰; 폰; 폰; 폰; 폰; ) HANGUL SYLLABLE PON
+D3F1;D3F1;1111 1169 11AC;D3F1;1111 1169 11AC; # (폱; 폱; 폱; 폱; 폱; ) HANGUL SYLLABLE PONJ
+D3F2;D3F2;1111 1169 11AD;D3F2;1111 1169 11AD; # (폲; 폲; 폲; 폲; 폲; ) HANGUL SYLLABLE PONH
+D3F3;D3F3;1111 1169 11AE;D3F3;1111 1169 11AE; # (폳; 폳; 폳; 폳; 폳; ) HANGUL SYLLABLE POD
+D3F4;D3F4;1111 1169 11AF;D3F4;1111 1169 11AF; # (폴; 폴; 폴; 폴; 폴; ) HANGUL SYLLABLE POL
+D3F5;D3F5;1111 1169 11B0;D3F5;1111 1169 11B0; # (폵; 폵; 폵; 폵; 폵; ) HANGUL SYLLABLE POLG
+D3F6;D3F6;1111 1169 11B1;D3F6;1111 1169 11B1; # (폶; 폶; 폶; 폶; 폶; ) HANGUL SYLLABLE POLM
+D3F7;D3F7;1111 1169 11B2;D3F7;1111 1169 11B2; # (폷; 폷; 폷; 폷; 폷; ) HANGUL SYLLABLE POLB
+D3F8;D3F8;1111 1169 11B3;D3F8;1111 1169 11B3; # (폸; 폸; 폸; 폸; 폸; ) HANGUL SYLLABLE POLS
+D3F9;D3F9;1111 1169 11B4;D3F9;1111 1169 11B4; # (폹; 폹; 폹; 폹; 폹; ) HANGUL SYLLABLE POLT
+D3FA;D3FA;1111 1169 11B5;D3FA;1111 1169 11B5; # (폺; 폺; 폺; 폺; 폺; ) HANGUL SYLLABLE POLP
+D3FB;D3FB;1111 1169 11B6;D3FB;1111 1169 11B6; # (폻; 폻; 폻; 폻; 폻; ) HANGUL SYLLABLE POLH
+D3FC;D3FC;1111 1169 11B7;D3FC;1111 1169 11B7; # (폼; 폼; 폼; 폼; 폼; ) HANGUL SYLLABLE POM
+D3FD;D3FD;1111 1169 11B8;D3FD;1111 1169 11B8; # (폽; 폽; 폽; 폽; 폽; ) HANGUL SYLLABLE POB
+D3FE;D3FE;1111 1169 11B9;D3FE;1111 1169 11B9; # (폾; 폾; 폾; 폾; 폾; ) HANGUL SYLLABLE POBS
+D3FF;D3FF;1111 1169 11BA;D3FF;1111 1169 11BA; # (폿; 폿; 폿; 폿; 폿; ) HANGUL SYLLABLE POS
+D400;D400;1111 1169 11BB;D400;1111 1169 11BB; # (퐀; 퐀; 퐀; 퐀; 퐀; ) HANGUL SYLLABLE POSS
+D401;D401;1111 1169 11BC;D401;1111 1169 11BC; # (퐁; 퐁; 퐁; 퐁; 퐁; ) HANGUL SYLLABLE PONG
+D402;D402;1111 1169 11BD;D402;1111 1169 11BD; # (퐂; 퐂; 퐂; 퐂; 퐂; ) HANGUL SYLLABLE POJ
+D403;D403;1111 1169 11BE;D403;1111 1169 11BE; # (퐃; 퐃; 퐃; 퐃; 퐃; ) HANGUL SYLLABLE POC
+D404;D404;1111 1169 11BF;D404;1111 1169 11BF; # (퐄; 퐄; 퐄; 퐄; 퐄; ) HANGUL SYLLABLE POK
+D405;D405;1111 1169 11C0;D405;1111 1169 11C0; # (퐅; 퐅; 퐅; 퐅; 퐅; ) HANGUL SYLLABLE POT
+D406;D406;1111 1169 11C1;D406;1111 1169 11C1; # (퐆; 퐆; 퐆; 퐆; 퐆; ) HANGUL SYLLABLE POP
+D407;D407;1111 1169 11C2;D407;1111 1169 11C2; # (퐇; 퐇; 퐇; 퐇; 퐇; ) HANGUL SYLLABLE POH
+D408;D408;1111 116A;D408;1111 116A; # (퐈; 퐈; 퐈; 퐈; 퐈; ) HANGUL SYLLABLE PWA
+D409;D409;1111 116A 11A8;D409;1111 116A 11A8; # (퐉; 퐉; 퐉; 퐉; 퐉; ) HANGUL SYLLABLE PWAG
+D40A;D40A;1111 116A 11A9;D40A;1111 116A 11A9; # (퐊; 퐊; 퐊; 퐊; 퐊; ) HANGUL SYLLABLE PWAGG
+D40B;D40B;1111 116A 11AA;D40B;1111 116A 11AA; # (퐋; 퐋; 퐋; 퐋; 퐋; ) HANGUL SYLLABLE PWAGS
+D40C;D40C;1111 116A 11AB;D40C;1111 116A 11AB; # (퐌; 퐌; 퐌; 퐌; 퐌; ) HANGUL SYLLABLE PWAN
+D40D;D40D;1111 116A 11AC;D40D;1111 116A 11AC; # (퐍; 퐍; 퐍; 퐍; 퐍; ) HANGUL SYLLABLE PWANJ
+D40E;D40E;1111 116A 11AD;D40E;1111 116A 11AD; # (퐎; 퐎; 퐎; 퐎; 퐎; ) HANGUL SYLLABLE PWANH
+D40F;D40F;1111 116A 11AE;D40F;1111 116A 11AE; # (퐏; 퐏; 퐏; 퐏; 퐏; ) HANGUL SYLLABLE PWAD
+D410;D410;1111 116A 11AF;D410;1111 116A 11AF; # (퐐; 퐐; 퐐; 퐐; 퐐; ) HANGUL SYLLABLE PWAL
+D411;D411;1111 116A 11B0;D411;1111 116A 11B0; # (퐑; 퐑; 퐑; 퐑; 퐑; ) HANGUL SYLLABLE PWALG
+D412;D412;1111 116A 11B1;D412;1111 116A 11B1; # (퐒; 퐒; 퐒; 퐒; 퐒; ) HANGUL SYLLABLE PWALM
+D413;D413;1111 116A 11B2;D413;1111 116A 11B2; # (퐓; 퐓; 퐓; 퐓; 퐓; ) HANGUL SYLLABLE PWALB
+D414;D414;1111 116A 11B3;D414;1111 116A 11B3; # (퐔; 퐔; 퐔; 퐔; 퐔; ) HANGUL SYLLABLE PWALS
+D415;D415;1111 116A 11B4;D415;1111 116A 11B4; # (퐕; 퐕; 퐕; 퐕; 퐕; ) HANGUL SYLLABLE PWALT
+D416;D416;1111 116A 11B5;D416;1111 116A 11B5; # (퐖; 퐖; 퐖; 퐖; 퐖; ) HANGUL SYLLABLE PWALP
+D417;D417;1111 116A 11B6;D417;1111 116A 11B6; # (퐗; 퐗; 퐗; 퐗; 퐗; ) HANGUL SYLLABLE PWALH
+D418;D418;1111 116A 11B7;D418;1111 116A 11B7; # (퐘; 퐘; 퐘; 퐘; 퐘; ) HANGUL SYLLABLE PWAM
+D419;D419;1111 116A 11B8;D419;1111 116A 11B8; # (퐙; 퐙; 퐙; 퐙; 퐙; ) HANGUL SYLLABLE PWAB
+D41A;D41A;1111 116A 11B9;D41A;1111 116A 11B9; # (퐚; 퐚; 퐚; 퐚; 퐚; ) HANGUL SYLLABLE PWABS
+D41B;D41B;1111 116A 11BA;D41B;1111 116A 11BA; # (퐛; 퐛; 퐛; 퐛; 퐛; ) HANGUL SYLLABLE PWAS
+D41C;D41C;1111 116A 11BB;D41C;1111 116A 11BB; # (퐜; 퐜; 퐜; 퐜; 퐜; ) HANGUL SYLLABLE PWASS
+D41D;D41D;1111 116A 11BC;D41D;1111 116A 11BC; # (퐝; 퐝; 퐝; 퐝; 퐝; ) HANGUL SYLLABLE PWANG
+D41E;D41E;1111 116A 11BD;D41E;1111 116A 11BD; # (퐞; 퐞; 퐞; 퐞; 퐞; ) HANGUL SYLLABLE PWAJ
+D41F;D41F;1111 116A 11BE;D41F;1111 116A 11BE; # (퐟; 퐟; 퐟; 퐟; 퐟; ) HANGUL SYLLABLE PWAC
+D420;D420;1111 116A 11BF;D420;1111 116A 11BF; # (퐠; 퐠; 퐠; 퐠; 퐠; ) HANGUL SYLLABLE PWAK
+D421;D421;1111 116A 11C0;D421;1111 116A 11C0; # (퐡; 퐡; 퐡; 퐡; 퐡; ) HANGUL SYLLABLE PWAT
+D422;D422;1111 116A 11C1;D422;1111 116A 11C1; # (퐢; 퐢; 퐢; 퐢; 퐢; ) HANGUL SYLLABLE PWAP
+D423;D423;1111 116A 11C2;D423;1111 116A 11C2; # (퐣; 퐣; 퐣; 퐣; 퐣; ) HANGUL SYLLABLE PWAH
+D424;D424;1111 116B;D424;1111 116B; # (퐤; 퐤; 퐤; 퐤; 퐤; ) HANGUL SYLLABLE PWAE
+D425;D425;1111 116B 11A8;D425;1111 116B 11A8; # (퐥; 퐥; 퐥; 퐥; 퐥; ) HANGUL SYLLABLE PWAEG
+D426;D426;1111 116B 11A9;D426;1111 116B 11A9; # (퐦; 퐦; 퐦; 퐦; 퐦; ) HANGUL SYLLABLE PWAEGG
+D427;D427;1111 116B 11AA;D427;1111 116B 11AA; # (퐧; 퐧; 퐧; 퐧; 퐧; ) HANGUL SYLLABLE PWAEGS
+D428;D428;1111 116B 11AB;D428;1111 116B 11AB; # (퐨; 퐨; 퐨; 퐨; 퐨; ) HANGUL SYLLABLE PWAEN
+D429;D429;1111 116B 11AC;D429;1111 116B 11AC; # (퐩; 퐩; 퐩; 퐩; 퐩; ) HANGUL SYLLABLE PWAENJ
+D42A;D42A;1111 116B 11AD;D42A;1111 116B 11AD; # (퐪; 퐪; 퐪; 퐪; 퐪; ) HANGUL SYLLABLE PWAENH
+D42B;D42B;1111 116B 11AE;D42B;1111 116B 11AE; # (퐫; 퐫; 퐫; 퐫; 퐫; ) HANGUL SYLLABLE PWAED
+D42C;D42C;1111 116B 11AF;D42C;1111 116B 11AF; # (퐬; 퐬; 퐬; 퐬; 퐬; ) HANGUL SYLLABLE PWAEL
+D42D;D42D;1111 116B 11B0;D42D;1111 116B 11B0; # (퐭; 퐭; 퐭; 퐭; 퐭; ) HANGUL SYLLABLE PWAELG
+D42E;D42E;1111 116B 11B1;D42E;1111 116B 11B1; # (퐮; 퐮; 퐮; 퐮; 퐮; ) HANGUL SYLLABLE PWAELM
+D42F;D42F;1111 116B 11B2;D42F;1111 116B 11B2; # (퐯; 퐯; 퐯; 퐯; 퐯; ) HANGUL SYLLABLE PWAELB
+D430;D430;1111 116B 11B3;D430;1111 116B 11B3; # (퐰; 퐰; 퐰; 퐰; 퐰; ) HANGUL SYLLABLE PWAELS
+D431;D431;1111 116B 11B4;D431;1111 116B 11B4; # (퐱; 퐱; 퐱; 퐱; 퐱; ) HANGUL SYLLABLE PWAELT
+D432;D432;1111 116B 11B5;D432;1111 116B 11B5; # (퐲; 퐲; 퐲; 퐲; 퐲; ) HANGUL SYLLABLE PWAELP
+D433;D433;1111 116B 11B6;D433;1111 116B 11B6; # (퐳; 퐳; 퐳; 퐳; 퐳; ) HANGUL SYLLABLE PWAELH
+D434;D434;1111 116B 11B7;D434;1111 116B 11B7; # (퐴; 퐴; 퐴; 퐴; 퐴; ) HANGUL SYLLABLE PWAEM
+D435;D435;1111 116B 11B8;D435;1111 116B 11B8; # (퐵; 퐵; 퐵; 퐵; 퐵; ) HANGUL SYLLABLE PWAEB
+D436;D436;1111 116B 11B9;D436;1111 116B 11B9; # (퐶; 퐶; 퐶; 퐶; 퐶; ) HANGUL SYLLABLE PWAEBS
+D437;D437;1111 116B 11BA;D437;1111 116B 11BA; # (퐷; 퐷; 퐷; 퐷; 퐷; ) HANGUL SYLLABLE PWAES
+D438;D438;1111 116B 11BB;D438;1111 116B 11BB; # (퐸; 퐸; 퐸; 퐸; 퐸; ) HANGUL SYLLABLE PWAESS
+D439;D439;1111 116B 11BC;D439;1111 116B 11BC; # (퐹; 퐹; 퐹; 퐹; 퐹; ) HANGUL SYLLABLE PWAENG
+D43A;D43A;1111 116B 11BD;D43A;1111 116B 11BD; # (퐺; 퐺; 퐺; 퐺; 퐺; ) HANGUL SYLLABLE PWAEJ
+D43B;D43B;1111 116B 11BE;D43B;1111 116B 11BE; # (퐻; 퐻; 퐻; 퐻; 퐻; ) HANGUL SYLLABLE PWAEC
+D43C;D43C;1111 116B 11BF;D43C;1111 116B 11BF; # (퐼; 퐼; 퐼; 퐼; 퐼; ) HANGUL SYLLABLE PWAEK
+D43D;D43D;1111 116B 11C0;D43D;1111 116B 11C0; # (퐽; 퐽; 퐽; 퐽; 퐽; ) HANGUL SYLLABLE PWAET
+D43E;D43E;1111 116B 11C1;D43E;1111 116B 11C1; # (퐾; 퐾; 퐾; 퐾; 퐾; ) HANGUL SYLLABLE PWAEP
+D43F;D43F;1111 116B 11C2;D43F;1111 116B 11C2; # (퐿; 퐿; 퐿; 퐿; 퐿; ) HANGUL SYLLABLE PWAEH
+D440;D440;1111 116C;D440;1111 116C; # (푀; 푀; 푀; 푀; 푀; ) HANGUL SYLLABLE POE
+D441;D441;1111 116C 11A8;D441;1111 116C 11A8; # (푁; 푁; 푁; 푁; 푁; ) HANGUL SYLLABLE POEG
+D442;D442;1111 116C 11A9;D442;1111 116C 11A9; # (푂; 푂; 푂; 푂; 푂; ) HANGUL SYLLABLE POEGG
+D443;D443;1111 116C 11AA;D443;1111 116C 11AA; # (푃; 푃; 푃; 푃; 푃; ) HANGUL SYLLABLE POEGS
+D444;D444;1111 116C 11AB;D444;1111 116C 11AB; # (푄; 푄; 푄; 푄; 푄; ) HANGUL SYLLABLE POEN
+D445;D445;1111 116C 11AC;D445;1111 116C 11AC; # (푅; 푅; 푅; 푅; 푅; ) HANGUL SYLLABLE POENJ
+D446;D446;1111 116C 11AD;D446;1111 116C 11AD; # (푆; 푆; 푆; 푆; 푆; ) HANGUL SYLLABLE POENH
+D447;D447;1111 116C 11AE;D447;1111 116C 11AE; # (푇; 푇; 푇; 푇; 푇; ) HANGUL SYLLABLE POED
+D448;D448;1111 116C 11AF;D448;1111 116C 11AF; # (푈; 푈; 푈; 푈; 푈; ) HANGUL SYLLABLE POEL
+D449;D449;1111 116C 11B0;D449;1111 116C 11B0; # (푉; 푉; 푉; 푉; 푉; ) HANGUL SYLLABLE POELG
+D44A;D44A;1111 116C 11B1;D44A;1111 116C 11B1; # (푊; 푊; 푊; 푊; 푊; ) HANGUL SYLLABLE POELM
+D44B;D44B;1111 116C 11B2;D44B;1111 116C 11B2; # (푋; 푋; 푋; 푋; 푋; ) HANGUL SYLLABLE POELB
+D44C;D44C;1111 116C 11B3;D44C;1111 116C 11B3; # (푌; 푌; 푌; 푌; 푌; ) HANGUL SYLLABLE POELS
+D44D;D44D;1111 116C 11B4;D44D;1111 116C 11B4; # (푍; 푍; 푍; 푍; 푍; ) HANGUL SYLLABLE POELT
+D44E;D44E;1111 116C 11B5;D44E;1111 116C 11B5; # (푎; 푎; 푎; 푎; 푎; ) HANGUL SYLLABLE POELP
+D44F;D44F;1111 116C 11B6;D44F;1111 116C 11B6; # (푏; 푏; 푏; 푏; 푏; ) HANGUL SYLLABLE POELH
+D450;D450;1111 116C 11B7;D450;1111 116C 11B7; # (푐; 푐; 푐; 푐; 푐; ) HANGUL SYLLABLE POEM
+D451;D451;1111 116C 11B8;D451;1111 116C 11B8; # (푑; 푑; 푑; 푑; 푑; ) HANGUL SYLLABLE POEB
+D452;D452;1111 116C 11B9;D452;1111 116C 11B9; # (푒; 푒; 푒; 푒; 푒; ) HANGUL SYLLABLE POEBS
+D453;D453;1111 116C 11BA;D453;1111 116C 11BA; # (푓; 푓; 푓; 푓; 푓; ) HANGUL SYLLABLE POES
+D454;D454;1111 116C 11BB;D454;1111 116C 11BB; # (푔; 푔; 푔; 푔; 푔; ) HANGUL SYLLABLE POESS
+D455;D455;1111 116C 11BC;D455;1111 116C 11BC; # (푕; 푕; 푕; 푕; 푕; ) HANGUL SYLLABLE POENG
+D456;D456;1111 116C 11BD;D456;1111 116C 11BD; # (푖; 푖; 푖; 푖; 푖; ) HANGUL SYLLABLE POEJ
+D457;D457;1111 116C 11BE;D457;1111 116C 11BE; # (푗; 푗; 푗; 푗; 푗; ) HANGUL SYLLABLE POEC
+D458;D458;1111 116C 11BF;D458;1111 116C 11BF; # (푘; 푘; 푘; 푘; 푘; ) HANGUL SYLLABLE POEK
+D459;D459;1111 116C 11C0;D459;1111 116C 11C0; # (푙; 푙; 푙; 푙; 푙; ) HANGUL SYLLABLE POET
+D45A;D45A;1111 116C 11C1;D45A;1111 116C 11C1; # (푚; 푚; 푚; 푚; 푚; ) HANGUL SYLLABLE POEP
+D45B;D45B;1111 116C 11C2;D45B;1111 116C 11C2; # (푛; 푛; 푛; 푛; 푛; ) HANGUL SYLLABLE POEH
+D45C;D45C;1111 116D;D45C;1111 116D; # (표; 표; 표; 표; 표; ) HANGUL SYLLABLE PYO
+D45D;D45D;1111 116D 11A8;D45D;1111 116D 11A8; # (푝; 푝; 푝; 푝; 푝; ) HANGUL SYLLABLE PYOG
+D45E;D45E;1111 116D 11A9;D45E;1111 116D 11A9; # (푞; 푞; 푞; 푞; 푞; ) HANGUL SYLLABLE PYOGG
+D45F;D45F;1111 116D 11AA;D45F;1111 116D 11AA; # (푟; 푟; 푟; 푟; 푟; ) HANGUL SYLLABLE PYOGS
+D460;D460;1111 116D 11AB;D460;1111 116D 11AB; # (푠; 푠; 푠; 푠; 푠; ) HANGUL SYLLABLE PYON
+D461;D461;1111 116D 11AC;D461;1111 116D 11AC; # (푡; 푡; 푡; 푡; 푡; ) HANGUL SYLLABLE PYONJ
+D462;D462;1111 116D 11AD;D462;1111 116D 11AD; # (푢; 푢; 푢; 푢; 푢; ) HANGUL SYLLABLE PYONH
+D463;D463;1111 116D 11AE;D463;1111 116D 11AE; # (푣; 푣; 푣; 푣; 푣; ) HANGUL SYLLABLE PYOD
+D464;D464;1111 116D 11AF;D464;1111 116D 11AF; # (푤; 푤; 푤; 푤; 푤; ) HANGUL SYLLABLE PYOL
+D465;D465;1111 116D 11B0;D465;1111 116D 11B0; # (푥; 푥; 푥; 푥; 푥; ) HANGUL SYLLABLE PYOLG
+D466;D466;1111 116D 11B1;D466;1111 116D 11B1; # (푦; 푦; 푦; 푦; 푦; ) HANGUL SYLLABLE PYOLM
+D467;D467;1111 116D 11B2;D467;1111 116D 11B2; # (푧; 푧; 푧; 푧; 푧; ) HANGUL SYLLABLE PYOLB
+D468;D468;1111 116D 11B3;D468;1111 116D 11B3; # (푨; 푨; 푨; 푨; 푨; ) HANGUL SYLLABLE PYOLS
+D469;D469;1111 116D 11B4;D469;1111 116D 11B4; # (푩; 푩; 푩; 푩; 푩; ) HANGUL SYLLABLE PYOLT
+D46A;D46A;1111 116D 11B5;D46A;1111 116D 11B5; # (푪; 푪; 푪; 푪; 푪; ) HANGUL SYLLABLE PYOLP
+D46B;D46B;1111 116D 11B6;D46B;1111 116D 11B6; # (푫; 푫; 푫; 푫; 푫; ) HANGUL SYLLABLE PYOLH
+D46C;D46C;1111 116D 11B7;D46C;1111 116D 11B7; # (푬; 푬; 푬; 푬; 푬; ) HANGUL SYLLABLE PYOM
+D46D;D46D;1111 116D 11B8;D46D;1111 116D 11B8; # (푭; 푭; 푭; 푭; 푭; ) HANGUL SYLLABLE PYOB
+D46E;D46E;1111 116D 11B9;D46E;1111 116D 11B9; # (푮; 푮; 푮; 푮; 푮; ) HANGUL SYLLABLE PYOBS
+D46F;D46F;1111 116D 11BA;D46F;1111 116D 11BA; # (푯; 푯; 푯; 푯; 푯; ) HANGUL SYLLABLE PYOS
+D470;D470;1111 116D 11BB;D470;1111 116D 11BB; # (푰; 푰; 푰; 푰; 푰; ) HANGUL SYLLABLE PYOSS
+D471;D471;1111 116D 11BC;D471;1111 116D 11BC; # (푱; 푱; 푱; 푱; 푱; ) HANGUL SYLLABLE PYONG
+D472;D472;1111 116D 11BD;D472;1111 116D 11BD; # (푲; 푲; 푲; 푲; 푲; ) HANGUL SYLLABLE PYOJ
+D473;D473;1111 116D 11BE;D473;1111 116D 11BE; # (푳; 푳; 푳; 푳; 푳; ) HANGUL SYLLABLE PYOC
+D474;D474;1111 116D 11BF;D474;1111 116D 11BF; # (푴; 푴; 푴; 푴; 푴; ) HANGUL SYLLABLE PYOK
+D475;D475;1111 116D 11C0;D475;1111 116D 11C0; # (푵; 푵; 푵; 푵; 푵; ) HANGUL SYLLABLE PYOT
+D476;D476;1111 116D 11C1;D476;1111 116D 11C1; # (푶; 푶; 푶; 푶; 푶; ) HANGUL SYLLABLE PYOP
+D477;D477;1111 116D 11C2;D477;1111 116D 11C2; # (푷; 푷; 푷; 푷; 푷; ) HANGUL SYLLABLE PYOH
+D478;D478;1111 116E;D478;1111 116E; # (푸; 푸; 푸; 푸; 푸; ) HANGUL SYLLABLE PU
+D479;D479;1111 116E 11A8;D479;1111 116E 11A8; # (푹; 푹; 푹; 푹; 푹; ) HANGUL SYLLABLE PUG
+D47A;D47A;1111 116E 11A9;D47A;1111 116E 11A9; # (푺; 푺; 푺; 푺; 푺; ) HANGUL SYLLABLE PUGG
+D47B;D47B;1111 116E 11AA;D47B;1111 116E 11AA; # (푻; 푻; 푻; 푻; 푻; ) HANGUL SYLLABLE PUGS
+D47C;D47C;1111 116E 11AB;D47C;1111 116E 11AB; # (푼; 푼; 푼; 푼; 푼; ) HANGUL SYLLABLE PUN
+D47D;D47D;1111 116E 11AC;D47D;1111 116E 11AC; # (푽; 푽; 푽; 푽; 푽; ) HANGUL SYLLABLE PUNJ
+D47E;D47E;1111 116E 11AD;D47E;1111 116E 11AD; # (푾; 푾; 푾; 푾; 푾; ) HANGUL SYLLABLE PUNH
+D47F;D47F;1111 116E 11AE;D47F;1111 116E 11AE; # (푿; 푿; 푿; 푿; 푿; ) HANGUL SYLLABLE PUD
+D480;D480;1111 116E 11AF;D480;1111 116E 11AF; # (풀; 풀; 풀; 풀; 풀; ) HANGUL SYLLABLE PUL
+D481;D481;1111 116E 11B0;D481;1111 116E 11B0; # (풁; 풁; 풁; 풁; 풁; ) HANGUL SYLLABLE PULG
+D482;D482;1111 116E 11B1;D482;1111 116E 11B1; # (풂; 풂; 풂; 풂; 풂; ) HANGUL SYLLABLE PULM
+D483;D483;1111 116E 11B2;D483;1111 116E 11B2; # (풃; 풃; 풃; 풃; 풃; ) HANGUL SYLLABLE PULB
+D484;D484;1111 116E 11B3;D484;1111 116E 11B3; # (풄; 풄; 풄; 풄; 풄; ) HANGUL SYLLABLE PULS
+D485;D485;1111 116E 11B4;D485;1111 116E 11B4; # (풅; 풅; 풅; 풅; 풅; ) HANGUL SYLLABLE PULT
+D486;D486;1111 116E 11B5;D486;1111 116E 11B5; # (풆; 풆; 풆; 풆; 풆; ) HANGUL SYLLABLE PULP
+D487;D487;1111 116E 11B6;D487;1111 116E 11B6; # (풇; 풇; 풇; 풇; 풇; ) HANGUL SYLLABLE PULH
+D488;D488;1111 116E 11B7;D488;1111 116E 11B7; # (품; 품; 품; 품; 품; ) HANGUL SYLLABLE PUM
+D489;D489;1111 116E 11B8;D489;1111 116E 11B8; # (풉; 풉; 풉; 풉; 풉; ) HANGUL SYLLABLE PUB
+D48A;D48A;1111 116E 11B9;D48A;1111 116E 11B9; # (풊; 풊; 풊; 풊; 풊; ) HANGUL SYLLABLE PUBS
+D48B;D48B;1111 116E 11BA;D48B;1111 116E 11BA; # (풋; 풋; 풋; 풋; 풋; ) HANGUL SYLLABLE PUS
+D48C;D48C;1111 116E 11BB;D48C;1111 116E 11BB; # (풌; 풌; 풌; 풌; 풌; ) HANGUL SYLLABLE PUSS
+D48D;D48D;1111 116E 11BC;D48D;1111 116E 11BC; # (풍; 풍; 풍; 풍; 풍; ) HANGUL SYLLABLE PUNG
+D48E;D48E;1111 116E 11BD;D48E;1111 116E 11BD; # (풎; 풎; 풎; 풎; 풎; ) HANGUL SYLLABLE PUJ
+D48F;D48F;1111 116E 11BE;D48F;1111 116E 11BE; # (풏; 풏; 풏; 풏; 풏; ) HANGUL SYLLABLE PUC
+D490;D490;1111 116E 11BF;D490;1111 116E 11BF; # (풐; 풐; 풐; 풐; 풐; ) HANGUL SYLLABLE PUK
+D491;D491;1111 116E 11C0;D491;1111 116E 11C0; # (풑; 풑; 풑; 풑; 풑; ) HANGUL SYLLABLE PUT
+D492;D492;1111 116E 11C1;D492;1111 116E 11C1; # (풒; 풒; 풒; 풒; 풒; ) HANGUL SYLLABLE PUP
+D493;D493;1111 116E 11C2;D493;1111 116E 11C2; # (풓; 풓; 풓; 풓; 풓; ) HANGUL SYLLABLE PUH
+D494;D494;1111 116F;D494;1111 116F; # (풔; 풔; 풔; 풔; 풔; ) HANGUL SYLLABLE PWEO
+D495;D495;1111 116F 11A8;D495;1111 116F 11A8; # (풕; 풕; 풕; 풕; 풕; ) HANGUL SYLLABLE PWEOG
+D496;D496;1111 116F 11A9;D496;1111 116F 11A9; # (풖; 풖; 풖; 풖; 풖; ) HANGUL SYLLABLE PWEOGG
+D497;D497;1111 116F 11AA;D497;1111 116F 11AA; # (풗; 풗; 풗; 풗; 풗; ) HANGUL SYLLABLE PWEOGS
+D498;D498;1111 116F 11AB;D498;1111 116F 11AB; # (풘; 풘; 풘; 풘; 풘; ) HANGUL SYLLABLE PWEON
+D499;D499;1111 116F 11AC;D499;1111 116F 11AC; # (풙; 풙; 풙; 풙; 풙; ) HANGUL SYLLABLE PWEONJ
+D49A;D49A;1111 116F 11AD;D49A;1111 116F 11AD; # (풚; 풚; 풚; 풚; 풚; ) HANGUL SYLLABLE PWEONH
+D49B;D49B;1111 116F 11AE;D49B;1111 116F 11AE; # (풛; 풛; 풛; 풛; 풛; ) HANGUL SYLLABLE PWEOD
+D49C;D49C;1111 116F 11AF;D49C;1111 116F 11AF; # (풜; 풜; 풜; 풜; 풜; ) HANGUL SYLLABLE PWEOL
+D49D;D49D;1111 116F 11B0;D49D;1111 116F 11B0; # (풝; 풝; 풝; 풝; 풝; ) HANGUL SYLLABLE PWEOLG
+D49E;D49E;1111 116F 11B1;D49E;1111 116F 11B1; # (풞; 풞; 풞; 풞; 풞; ) HANGUL SYLLABLE PWEOLM
+D49F;D49F;1111 116F 11B2;D49F;1111 116F 11B2; # (풟; 풟; 풟; 풟; 풟; ) HANGUL SYLLABLE PWEOLB
+D4A0;D4A0;1111 116F 11B3;D4A0;1111 116F 11B3; # (풠; 풠; 풠; 풠; 풠; ) HANGUL SYLLABLE PWEOLS
+D4A1;D4A1;1111 116F 11B4;D4A1;1111 116F 11B4; # (풡; 풡; 풡; 풡; 풡; ) HANGUL SYLLABLE PWEOLT
+D4A2;D4A2;1111 116F 11B5;D4A2;1111 116F 11B5; # (풢; 풢; 풢; 풢; 풢; ) HANGUL SYLLABLE PWEOLP
+D4A3;D4A3;1111 116F 11B6;D4A3;1111 116F 11B6; # (풣; 풣; 풣; 풣; 풣; ) HANGUL SYLLABLE PWEOLH
+D4A4;D4A4;1111 116F 11B7;D4A4;1111 116F 11B7; # (풤; 풤; 풤; 풤; 풤; ) HANGUL SYLLABLE PWEOM
+D4A5;D4A5;1111 116F 11B8;D4A5;1111 116F 11B8; # (풥; 풥; 풥; 풥; 풥; ) HANGUL SYLLABLE PWEOB
+D4A6;D4A6;1111 116F 11B9;D4A6;1111 116F 11B9; # (풦; 풦; 풦; 풦; 풦; ) HANGUL SYLLABLE PWEOBS
+D4A7;D4A7;1111 116F 11BA;D4A7;1111 116F 11BA; # (풧; 풧; 풧; 풧; 풧; ) HANGUL SYLLABLE PWEOS
+D4A8;D4A8;1111 116F 11BB;D4A8;1111 116F 11BB; # (풨; 풨; 풨; 풨; 풨; ) HANGUL SYLLABLE PWEOSS
+D4A9;D4A9;1111 116F 11BC;D4A9;1111 116F 11BC; # (풩; 풩; 풩; 풩; 풩; ) HANGUL SYLLABLE PWEONG
+D4AA;D4AA;1111 116F 11BD;D4AA;1111 116F 11BD; # (풪; 풪; 풪; 풪; 풪; ) HANGUL SYLLABLE PWEOJ
+D4AB;D4AB;1111 116F 11BE;D4AB;1111 116F 11BE; # (풫; 풫; 풫; 풫; 풫; ) HANGUL SYLLABLE PWEOC
+D4AC;D4AC;1111 116F 11BF;D4AC;1111 116F 11BF; # (풬; 풬; 풬; 풬; 풬; ) HANGUL SYLLABLE PWEOK
+D4AD;D4AD;1111 116F 11C0;D4AD;1111 116F 11C0; # (풭; 풭; 풭; 풭; 풭; ) HANGUL SYLLABLE PWEOT
+D4AE;D4AE;1111 116F 11C1;D4AE;1111 116F 11C1; # (풮; 풮; 풮; 풮; 풮; ) HANGUL SYLLABLE PWEOP
+D4AF;D4AF;1111 116F 11C2;D4AF;1111 116F 11C2; # (풯; 풯; 풯; 풯; 풯; ) HANGUL SYLLABLE PWEOH
+D4B0;D4B0;1111 1170;D4B0;1111 1170; # (풰; 풰; 풰; 풰; 풰; ) HANGUL SYLLABLE PWE
+D4B1;D4B1;1111 1170 11A8;D4B1;1111 1170 11A8; # (풱; 풱; 풱; 풱; 풱; ) HANGUL SYLLABLE PWEG
+D4B2;D4B2;1111 1170 11A9;D4B2;1111 1170 11A9; # (풲; 풲; 풲; 풲; 풲; ) HANGUL SYLLABLE PWEGG
+D4B3;D4B3;1111 1170 11AA;D4B3;1111 1170 11AA; # (풳; 풳; 풳; 풳; 풳; ) HANGUL SYLLABLE PWEGS
+D4B4;D4B4;1111 1170 11AB;D4B4;1111 1170 11AB; # (풴; 풴; 풴; 풴; 풴; ) HANGUL SYLLABLE PWEN
+D4B5;D4B5;1111 1170 11AC;D4B5;1111 1170 11AC; # (풵; 풵; 풵; 풵; 풵; ) HANGUL SYLLABLE PWENJ
+D4B6;D4B6;1111 1170 11AD;D4B6;1111 1170 11AD; # (풶; 풶; 풶; 풶; 풶; ) HANGUL SYLLABLE PWENH
+D4B7;D4B7;1111 1170 11AE;D4B7;1111 1170 11AE; # (풷; 풷; 풷; 풷; 풷; ) HANGUL SYLLABLE PWED
+D4B8;D4B8;1111 1170 11AF;D4B8;1111 1170 11AF; # (풸; 풸; 풸; 풸; 풸; ) HANGUL SYLLABLE PWEL
+D4B9;D4B9;1111 1170 11B0;D4B9;1111 1170 11B0; # (풹; 풹; 풹; 풹; 풹; ) HANGUL SYLLABLE PWELG
+D4BA;D4BA;1111 1170 11B1;D4BA;1111 1170 11B1; # (풺; 풺; 풺; 풺; 풺; ) HANGUL SYLLABLE PWELM
+D4BB;D4BB;1111 1170 11B2;D4BB;1111 1170 11B2; # (풻; 풻; 풻; 풻; 풻; ) HANGUL SYLLABLE PWELB
+D4BC;D4BC;1111 1170 11B3;D4BC;1111 1170 11B3; # (풼; 풼; 풼; 풼; 풼; ) HANGUL SYLLABLE PWELS
+D4BD;D4BD;1111 1170 11B4;D4BD;1111 1170 11B4; # (풽; 풽; 풽; 풽; 풽; ) HANGUL SYLLABLE PWELT
+D4BE;D4BE;1111 1170 11B5;D4BE;1111 1170 11B5; # (풾; 풾; 풾; 풾; 풾; ) HANGUL SYLLABLE PWELP
+D4BF;D4BF;1111 1170 11B6;D4BF;1111 1170 11B6; # (풿; 풿; 풿; 풿; 풿; ) HANGUL SYLLABLE PWELH
+D4C0;D4C0;1111 1170 11B7;D4C0;1111 1170 11B7; # (퓀; 퓀; 퓀; 퓀; 퓀; ) HANGUL SYLLABLE PWEM
+D4C1;D4C1;1111 1170 11B8;D4C1;1111 1170 11B8; # (퓁; 퓁; 퓁; 퓁; 퓁; ) HANGUL SYLLABLE PWEB
+D4C2;D4C2;1111 1170 11B9;D4C2;1111 1170 11B9; # (퓂; 퓂; 퓂; 퓂; 퓂; ) HANGUL SYLLABLE PWEBS
+D4C3;D4C3;1111 1170 11BA;D4C3;1111 1170 11BA; # (퓃; 퓃; 퓃; 퓃; 퓃; ) HANGUL SYLLABLE PWES
+D4C4;D4C4;1111 1170 11BB;D4C4;1111 1170 11BB; # (퓄; 퓄; 퓄; 퓄; 퓄; ) HANGUL SYLLABLE PWESS
+D4C5;D4C5;1111 1170 11BC;D4C5;1111 1170 11BC; # (퓅; 퓅; 퓅; 퓅; 퓅; ) HANGUL SYLLABLE PWENG
+D4C6;D4C6;1111 1170 11BD;D4C6;1111 1170 11BD; # (퓆; 퓆; 퓆; 퓆; 퓆; ) HANGUL SYLLABLE PWEJ
+D4C7;D4C7;1111 1170 11BE;D4C7;1111 1170 11BE; # (퓇; 퓇; 퓇; 퓇; 퓇; ) HANGUL SYLLABLE PWEC
+D4C8;D4C8;1111 1170 11BF;D4C8;1111 1170 11BF; # (퓈; 퓈; 퓈; 퓈; 퓈; ) HANGUL SYLLABLE PWEK
+D4C9;D4C9;1111 1170 11C0;D4C9;1111 1170 11C0; # (퓉; 퓉; 퓉; 퓉; 퓉; ) HANGUL SYLLABLE PWET
+D4CA;D4CA;1111 1170 11C1;D4CA;1111 1170 11C1; # (퓊; 퓊; 퓊; 퓊; 퓊; ) HANGUL SYLLABLE PWEP
+D4CB;D4CB;1111 1170 11C2;D4CB;1111 1170 11C2; # (퓋; 퓋; 퓋; 퓋; 퓋; ) HANGUL SYLLABLE PWEH
+D4CC;D4CC;1111 1171;D4CC;1111 1171; # (퓌; 퓌; 퓌; 퓌; 퓌; ) HANGUL SYLLABLE PWI
+D4CD;D4CD;1111 1171 11A8;D4CD;1111 1171 11A8; # (퓍; 퓍; 퓍; 퓍; 퓍; ) HANGUL SYLLABLE PWIG
+D4CE;D4CE;1111 1171 11A9;D4CE;1111 1171 11A9; # (퓎; 퓎; 퓎; 퓎; 퓎; ) HANGUL SYLLABLE PWIGG
+D4CF;D4CF;1111 1171 11AA;D4CF;1111 1171 11AA; # (퓏; 퓏; 퓏; 퓏; 퓏; ) HANGUL SYLLABLE PWIGS
+D4D0;D4D0;1111 1171 11AB;D4D0;1111 1171 11AB; # (퓐; 퓐; 퓐; 퓐; 퓐; ) HANGUL SYLLABLE PWIN
+D4D1;D4D1;1111 1171 11AC;D4D1;1111 1171 11AC; # (퓑; 퓑; 퓑; 퓑; 퓑; ) HANGUL SYLLABLE PWINJ
+D4D2;D4D2;1111 1171 11AD;D4D2;1111 1171 11AD; # (퓒; 퓒; 퓒; 퓒; 퓒; ) HANGUL SYLLABLE PWINH
+D4D3;D4D3;1111 1171 11AE;D4D3;1111 1171 11AE; # (퓓; 퓓; 퓓; 퓓; 퓓; ) HANGUL SYLLABLE PWID
+D4D4;D4D4;1111 1171 11AF;D4D4;1111 1171 11AF; # (퓔; 퓔; 퓔; 퓔; 퓔; ) HANGUL SYLLABLE PWIL
+D4D5;D4D5;1111 1171 11B0;D4D5;1111 1171 11B0; # (퓕; 퓕; 퓕; 퓕; 퓕; ) HANGUL SYLLABLE PWILG
+D4D6;D4D6;1111 1171 11B1;D4D6;1111 1171 11B1; # (퓖; 퓖; 퓖; 퓖; 퓖; ) HANGUL SYLLABLE PWILM
+D4D7;D4D7;1111 1171 11B2;D4D7;1111 1171 11B2; # (퓗; 퓗; 퓗; 퓗; 퓗; ) HANGUL SYLLABLE PWILB
+D4D8;D4D8;1111 1171 11B3;D4D8;1111 1171 11B3; # (퓘; 퓘; 퓘; 퓘; 퓘; ) HANGUL SYLLABLE PWILS
+D4D9;D4D9;1111 1171 11B4;D4D9;1111 1171 11B4; # (퓙; 퓙; 퓙; 퓙; 퓙; ) HANGUL SYLLABLE PWILT
+D4DA;D4DA;1111 1171 11B5;D4DA;1111 1171 11B5; # (퓚; 퓚; 퓚; 퓚; 퓚; ) HANGUL SYLLABLE PWILP
+D4DB;D4DB;1111 1171 11B6;D4DB;1111 1171 11B6; # (퓛; 퓛; 퓛; 퓛; 퓛; ) HANGUL SYLLABLE PWILH
+D4DC;D4DC;1111 1171 11B7;D4DC;1111 1171 11B7; # (퓜; 퓜; 퓜; 퓜; 퓜; ) HANGUL SYLLABLE PWIM
+D4DD;D4DD;1111 1171 11B8;D4DD;1111 1171 11B8; # (퓝; 퓝; 퓝; 퓝; 퓝; ) HANGUL SYLLABLE PWIB
+D4DE;D4DE;1111 1171 11B9;D4DE;1111 1171 11B9; # (퓞; 퓞; 퓞; 퓞; 퓞; ) HANGUL SYLLABLE PWIBS
+D4DF;D4DF;1111 1171 11BA;D4DF;1111 1171 11BA; # (퓟; 퓟; 퓟; 퓟; 퓟; ) HANGUL SYLLABLE PWIS
+D4E0;D4E0;1111 1171 11BB;D4E0;1111 1171 11BB; # (퓠; 퓠; 퓠; 퓠; 퓠; ) HANGUL SYLLABLE PWISS
+D4E1;D4E1;1111 1171 11BC;D4E1;1111 1171 11BC; # (퓡; 퓡; 퓡; 퓡; 퓡; ) HANGUL SYLLABLE PWING
+D4E2;D4E2;1111 1171 11BD;D4E2;1111 1171 11BD; # (퓢; 퓢; 퓢; 퓢; 퓢; ) HANGUL SYLLABLE PWIJ
+D4E3;D4E3;1111 1171 11BE;D4E3;1111 1171 11BE; # (퓣; 퓣; 퓣; 퓣; 퓣; ) HANGUL SYLLABLE PWIC
+D4E4;D4E4;1111 1171 11BF;D4E4;1111 1171 11BF; # (퓤; 퓤; 퓤; 퓤; 퓤; ) HANGUL SYLLABLE PWIK
+D4E5;D4E5;1111 1171 11C0;D4E5;1111 1171 11C0; # (퓥; 퓥; 퓥; 퓥; 퓥; ) HANGUL SYLLABLE PWIT
+D4E6;D4E6;1111 1171 11C1;D4E6;1111 1171 11C1; # (퓦; 퓦; 퓦; 퓦; 퓦; ) HANGUL SYLLABLE PWIP
+D4E7;D4E7;1111 1171 11C2;D4E7;1111 1171 11C2; # (퓧; 퓧; 퓧; 퓧; 퓧; ) HANGUL SYLLABLE PWIH
+D4E8;D4E8;1111 1172;D4E8;1111 1172; # (퓨; 퓨; 퓨; 퓨; 퓨; ) HANGUL SYLLABLE PYU
+D4E9;D4E9;1111 1172 11A8;D4E9;1111 1172 11A8; # (퓩; 퓩; 퓩; 퓩; 퓩; ) HANGUL SYLLABLE PYUG
+D4EA;D4EA;1111 1172 11A9;D4EA;1111 1172 11A9; # (퓪; 퓪; 퓪; 퓪; 퓪; ) HANGUL SYLLABLE PYUGG
+D4EB;D4EB;1111 1172 11AA;D4EB;1111 1172 11AA; # (퓫; 퓫; 퓫; 퓫; 퓫; ) HANGUL SYLLABLE PYUGS
+D4EC;D4EC;1111 1172 11AB;D4EC;1111 1172 11AB; # (퓬; 퓬; 퓬; 퓬; 퓬; ) HANGUL SYLLABLE PYUN
+D4ED;D4ED;1111 1172 11AC;D4ED;1111 1172 11AC; # (퓭; 퓭; 퓭; 퓭; 퓭; ) HANGUL SYLLABLE PYUNJ
+D4EE;D4EE;1111 1172 11AD;D4EE;1111 1172 11AD; # (퓮; 퓮; 퓮; 퓮; 퓮; ) HANGUL SYLLABLE PYUNH
+D4EF;D4EF;1111 1172 11AE;D4EF;1111 1172 11AE; # (퓯; 퓯; 퓯; 퓯; 퓯; ) HANGUL SYLLABLE PYUD
+D4F0;D4F0;1111 1172 11AF;D4F0;1111 1172 11AF; # (퓰; 퓰; 퓰; 퓰; 퓰; ) HANGUL SYLLABLE PYUL
+D4F1;D4F1;1111 1172 11B0;D4F1;1111 1172 11B0; # (퓱; 퓱; 퓱; 퓱; 퓱; ) HANGUL SYLLABLE PYULG
+D4F2;D4F2;1111 1172 11B1;D4F2;1111 1172 11B1; # (퓲; 퓲; 퓲; 퓲; 퓲; ) HANGUL SYLLABLE PYULM
+D4F3;D4F3;1111 1172 11B2;D4F3;1111 1172 11B2; # (퓳; 퓳; 퓳; 퓳; 퓳; ) HANGUL SYLLABLE PYULB
+D4F4;D4F4;1111 1172 11B3;D4F4;1111 1172 11B3; # (퓴; 퓴; 퓴; 퓴; 퓴; ) HANGUL SYLLABLE PYULS
+D4F5;D4F5;1111 1172 11B4;D4F5;1111 1172 11B4; # (퓵; 퓵; 퓵; 퓵; 퓵; ) HANGUL SYLLABLE PYULT
+D4F6;D4F6;1111 1172 11B5;D4F6;1111 1172 11B5; # (퓶; 퓶; 퓶; 퓶; 퓶; ) HANGUL SYLLABLE PYULP
+D4F7;D4F7;1111 1172 11B6;D4F7;1111 1172 11B6; # (퓷; 퓷; 퓷; 퓷; 퓷; ) HANGUL SYLLABLE PYULH
+D4F8;D4F8;1111 1172 11B7;D4F8;1111 1172 11B7; # (퓸; 퓸; 퓸; 퓸; 퓸; ) HANGUL SYLLABLE PYUM
+D4F9;D4F9;1111 1172 11B8;D4F9;1111 1172 11B8; # (퓹; 퓹; 퓹; 퓹; 퓹; ) HANGUL SYLLABLE PYUB
+D4FA;D4FA;1111 1172 11B9;D4FA;1111 1172 11B9; # (퓺; 퓺; 퓺; 퓺; 퓺; ) HANGUL SYLLABLE PYUBS
+D4FB;D4FB;1111 1172 11BA;D4FB;1111 1172 11BA; # (퓻; 퓻; 퓻; 퓻; 퓻; ) HANGUL SYLLABLE PYUS
+D4FC;D4FC;1111 1172 11BB;D4FC;1111 1172 11BB; # (퓼; 퓼; 퓼; 퓼; 퓼; ) HANGUL SYLLABLE PYUSS
+D4FD;D4FD;1111 1172 11BC;D4FD;1111 1172 11BC; # (퓽; 퓽; 퓽; 퓽; 퓽; ) HANGUL SYLLABLE PYUNG
+D4FE;D4FE;1111 1172 11BD;D4FE;1111 1172 11BD; # (퓾; 퓾; 퓾; 퓾; 퓾; ) HANGUL SYLLABLE PYUJ
+D4FF;D4FF;1111 1172 11BE;D4FF;1111 1172 11BE; # (퓿; 퓿; 퓿; 퓿; 퓿; ) HANGUL SYLLABLE PYUC
+D500;D500;1111 1172 11BF;D500;1111 1172 11BF; # (픀; 픀; 픀; 픀; 픀; ) HANGUL SYLLABLE PYUK
+D501;D501;1111 1172 11C0;D501;1111 1172 11C0; # (픁; 픁; 픁; 픁; 픁; ) HANGUL SYLLABLE PYUT
+D502;D502;1111 1172 11C1;D502;1111 1172 11C1; # (픂; 픂; 픂; 픂; 픂; ) HANGUL SYLLABLE PYUP
+D503;D503;1111 1172 11C2;D503;1111 1172 11C2; # (픃; 픃; 픃; 픃; 픃; ) HANGUL SYLLABLE PYUH
+D504;D504;1111 1173;D504;1111 1173; # (프; 프; 프; 프; 프; ) HANGUL SYLLABLE PEU
+D505;D505;1111 1173 11A8;D505;1111 1173 11A8; # (픅; 픅; 픅; 픅; 픅; ) HANGUL SYLLABLE PEUG
+D506;D506;1111 1173 11A9;D506;1111 1173 11A9; # (픆; 픆; 픆; 픆; 픆; ) HANGUL SYLLABLE PEUGG
+D507;D507;1111 1173 11AA;D507;1111 1173 11AA; # (픇; 픇; 픇; 픇; 픇; ) HANGUL SYLLABLE PEUGS
+D508;D508;1111 1173 11AB;D508;1111 1173 11AB; # (픈; 픈; 픈; 픈; 픈; ) HANGUL SYLLABLE PEUN
+D509;D509;1111 1173 11AC;D509;1111 1173 11AC; # (픉; 픉; 픉; 픉; 픉; ) HANGUL SYLLABLE PEUNJ
+D50A;D50A;1111 1173 11AD;D50A;1111 1173 11AD; # (픊; 픊; 픊; 픊; 픊; ) HANGUL SYLLABLE PEUNH
+D50B;D50B;1111 1173 11AE;D50B;1111 1173 11AE; # (픋; 픋; 픋; 픋; 픋; ) HANGUL SYLLABLE PEUD
+D50C;D50C;1111 1173 11AF;D50C;1111 1173 11AF; # (플; 플; 플; 플; 플; ) HANGUL SYLLABLE PEUL
+D50D;D50D;1111 1173 11B0;D50D;1111 1173 11B0; # (픍; 픍; 픍; 픍; 픍; ) HANGUL SYLLABLE PEULG
+D50E;D50E;1111 1173 11B1;D50E;1111 1173 11B1; # (픎; 픎; 픎; 픎; 픎; ) HANGUL SYLLABLE PEULM
+D50F;D50F;1111 1173 11B2;D50F;1111 1173 11B2; # (픏; 픏; 픏; 픏; 픏; ) HANGUL SYLLABLE PEULB
+D510;D510;1111 1173 11B3;D510;1111 1173 11B3; # (픐; 픐; 픐; 픐; 픐; ) HANGUL SYLLABLE PEULS
+D511;D511;1111 1173 11B4;D511;1111 1173 11B4; # (픑; 픑; 픑; 픑; 픑; ) HANGUL SYLLABLE PEULT
+D512;D512;1111 1173 11B5;D512;1111 1173 11B5; # (픒; 픒; 픒; 픒; 픒; ) HANGUL SYLLABLE PEULP
+D513;D513;1111 1173 11B6;D513;1111 1173 11B6; # (픓; 픓; 픓; 픓; 픓; ) HANGUL SYLLABLE PEULH
+D514;D514;1111 1173 11B7;D514;1111 1173 11B7; # (픔; 픔; 픔; 픔; 픔; ) HANGUL SYLLABLE PEUM
+D515;D515;1111 1173 11B8;D515;1111 1173 11B8; # (픕; 픕; 픕; 픕; 픕; ) HANGUL SYLLABLE PEUB
+D516;D516;1111 1173 11B9;D516;1111 1173 11B9; # (픖; 픖; 픖; 픖; 픖; ) HANGUL SYLLABLE PEUBS
+D517;D517;1111 1173 11BA;D517;1111 1173 11BA; # (픗; 픗; 픗; 픗; 픗; ) HANGUL SYLLABLE PEUS
+D518;D518;1111 1173 11BB;D518;1111 1173 11BB; # (픘; 픘; 픘; 픘; 픘; ) HANGUL SYLLABLE PEUSS
+D519;D519;1111 1173 11BC;D519;1111 1173 11BC; # (픙; 픙; 픙; 픙; 픙; ) HANGUL SYLLABLE PEUNG
+D51A;D51A;1111 1173 11BD;D51A;1111 1173 11BD; # (픚; 픚; 픚; 픚; 픚; ) HANGUL SYLLABLE PEUJ
+D51B;D51B;1111 1173 11BE;D51B;1111 1173 11BE; # (픛; 픛; 픛; 픛; 픛; ) HANGUL SYLLABLE PEUC
+D51C;D51C;1111 1173 11BF;D51C;1111 1173 11BF; # (픜; 픜; 픜; 픜; 픜; ) HANGUL SYLLABLE PEUK
+D51D;D51D;1111 1173 11C0;D51D;1111 1173 11C0; # (픝; 픝; 픝; 픝; 픝; ) HANGUL SYLLABLE PEUT
+D51E;D51E;1111 1173 11C1;D51E;1111 1173 11C1; # (픞; 픞; 픞; 픞; 픞; ) HANGUL SYLLABLE PEUP
+D51F;D51F;1111 1173 11C2;D51F;1111 1173 11C2; # (픟; 픟; 픟; 픟; 픟; ) HANGUL SYLLABLE PEUH
+D520;D520;1111 1174;D520;1111 1174; # (픠; 픠; 픠; 픠; 픠; ) HANGUL SYLLABLE PYI
+D521;D521;1111 1174 11A8;D521;1111 1174 11A8; # (픡; 픡; 픡; 픡; 픡; ) HANGUL SYLLABLE PYIG
+D522;D522;1111 1174 11A9;D522;1111 1174 11A9; # (픢; 픢; 픢; 픢; 픢; ) HANGUL SYLLABLE PYIGG
+D523;D523;1111 1174 11AA;D523;1111 1174 11AA; # (픣; 픣; 픣; 픣; 픣; ) HANGUL SYLLABLE PYIGS
+D524;D524;1111 1174 11AB;D524;1111 1174 11AB; # (픤; 픤; 픤; 픤; 픤; ) HANGUL SYLLABLE PYIN
+D525;D525;1111 1174 11AC;D525;1111 1174 11AC; # (픥; 픥; 픥; 픥; 픥; ) HANGUL SYLLABLE PYINJ
+D526;D526;1111 1174 11AD;D526;1111 1174 11AD; # (픦; 픦; 픦; 픦; 픦; ) HANGUL SYLLABLE PYINH
+D527;D527;1111 1174 11AE;D527;1111 1174 11AE; # (픧; 픧; 픧; 픧; 픧; ) HANGUL SYLLABLE PYID
+D528;D528;1111 1174 11AF;D528;1111 1174 11AF; # (픨; 픨; 픨; 픨; 픨; ) HANGUL SYLLABLE PYIL
+D529;D529;1111 1174 11B0;D529;1111 1174 11B0; # (픩; 픩; 픩; 픩; 픩; ) HANGUL SYLLABLE PYILG
+D52A;D52A;1111 1174 11B1;D52A;1111 1174 11B1; # (픪; 픪; 픪; 픪; 픪; ) HANGUL SYLLABLE PYILM
+D52B;D52B;1111 1174 11B2;D52B;1111 1174 11B2; # (픫; 픫; 픫; 픫; 픫; ) HANGUL SYLLABLE PYILB
+D52C;D52C;1111 1174 11B3;D52C;1111 1174 11B3; # (픬; 픬; 픬; 픬; 픬; ) HANGUL SYLLABLE PYILS
+D52D;D52D;1111 1174 11B4;D52D;1111 1174 11B4; # (픭; 픭; 픭; 픭; 픭; ) HANGUL SYLLABLE PYILT
+D52E;D52E;1111 1174 11B5;D52E;1111 1174 11B5; # (픮; 픮; 픮; 픮; 픮; ) HANGUL SYLLABLE PYILP
+D52F;D52F;1111 1174 11B6;D52F;1111 1174 11B6; # (픯; 픯; 픯; 픯; 픯; ) HANGUL SYLLABLE PYILH
+D530;D530;1111 1174 11B7;D530;1111 1174 11B7; # (픰; 픰; 픰; 픰; 픰; ) HANGUL SYLLABLE PYIM
+D531;D531;1111 1174 11B8;D531;1111 1174 11B8; # (픱; 픱; 픱; 픱; 픱; ) HANGUL SYLLABLE PYIB
+D532;D532;1111 1174 11B9;D532;1111 1174 11B9; # (픲; 픲; 픲; 픲; 픲; ) HANGUL SYLLABLE PYIBS
+D533;D533;1111 1174 11BA;D533;1111 1174 11BA; # (픳; 픳; 픳; 픳; 픳; ) HANGUL SYLLABLE PYIS
+D534;D534;1111 1174 11BB;D534;1111 1174 11BB; # (픴; 픴; 픴; 픴; 픴; ) HANGUL SYLLABLE PYISS
+D535;D535;1111 1174 11BC;D535;1111 1174 11BC; # (픵; 픵; 픵; 픵; 픵; ) HANGUL SYLLABLE PYING
+D536;D536;1111 1174 11BD;D536;1111 1174 11BD; # (픶; 픶; 픶; 픶; 픶; ) HANGUL SYLLABLE PYIJ
+D537;D537;1111 1174 11BE;D537;1111 1174 11BE; # (픷; 픷; 픷; 픷; 픷; ) HANGUL SYLLABLE PYIC
+D538;D538;1111 1174 11BF;D538;1111 1174 11BF; # (픸; 픸; 픸; 픸; 픸; ) HANGUL SYLLABLE PYIK
+D539;D539;1111 1174 11C0;D539;1111 1174 11C0; # (픹; 픹; 픹; 픹; 픹; ) HANGUL SYLLABLE PYIT
+D53A;D53A;1111 1174 11C1;D53A;1111 1174 11C1; # (픺; 픺; 픺; 픺; 픺; ) HANGUL SYLLABLE PYIP
+D53B;D53B;1111 1174 11C2;D53B;1111 1174 11C2; # (픻; 픻; 픻; 픻; 픻; ) HANGUL SYLLABLE PYIH
+D53C;D53C;1111 1175;D53C;1111 1175; # (피; 피; 피; 피; 피; ) HANGUL SYLLABLE PI
+D53D;D53D;1111 1175 11A8;D53D;1111 1175 11A8; # (픽; 픽; 픽; 픽; 픽; ) HANGUL SYLLABLE PIG
+D53E;D53E;1111 1175 11A9;D53E;1111 1175 11A9; # (픾; 픾; 픾; 픾; 픾; ) HANGUL SYLLABLE PIGG
+D53F;D53F;1111 1175 11AA;D53F;1111 1175 11AA; # (픿; 픿; 픿; 픿; 픿; ) HANGUL SYLLABLE PIGS
+D540;D540;1111 1175 11AB;D540;1111 1175 11AB; # (핀; 핀; 핀; 핀; 핀; ) HANGUL SYLLABLE PIN
+D541;D541;1111 1175 11AC;D541;1111 1175 11AC; # (핁; 핁; 핁; 핁; 핁; ) HANGUL SYLLABLE PINJ
+D542;D542;1111 1175 11AD;D542;1111 1175 11AD; # (핂; 핂; 핂; 핂; 핂; ) HANGUL SYLLABLE PINH
+D543;D543;1111 1175 11AE;D543;1111 1175 11AE; # (핃; 핃; 핃; 핃; 핃; ) HANGUL SYLLABLE PID
+D544;D544;1111 1175 11AF;D544;1111 1175 11AF; # (필; 필; 필; 필; 필; ) HANGUL SYLLABLE PIL
+D545;D545;1111 1175 11B0;D545;1111 1175 11B0; # (핅; 핅; 핅; 핅; 핅; ) HANGUL SYLLABLE PILG
+D546;D546;1111 1175 11B1;D546;1111 1175 11B1; # (핆; 핆; 핆; 핆; 핆; ) HANGUL SYLLABLE PILM
+D547;D547;1111 1175 11B2;D547;1111 1175 11B2; # (핇; 핇; 핇; 핇; 핇; ) HANGUL SYLLABLE PILB
+D548;D548;1111 1175 11B3;D548;1111 1175 11B3; # (핈; 핈; 핈; 핈; 핈; ) HANGUL SYLLABLE PILS
+D549;D549;1111 1175 11B4;D549;1111 1175 11B4; # (핉; 핉; 핉; 핉; 핉; ) HANGUL SYLLABLE PILT
+D54A;D54A;1111 1175 11B5;D54A;1111 1175 11B5; # (핊; 핊; 핊; 핊; 핊; ) HANGUL SYLLABLE PILP
+D54B;D54B;1111 1175 11B6;D54B;1111 1175 11B6; # (핋; 핋; 핋; 핋; 핋; ) HANGUL SYLLABLE PILH
+D54C;D54C;1111 1175 11B7;D54C;1111 1175 11B7; # (핌; 핌; 핌; 핌; 핌; ) HANGUL SYLLABLE PIM
+D54D;D54D;1111 1175 11B8;D54D;1111 1175 11B8; # (핍; 핍; 핍; 핍; 핍; ) HANGUL SYLLABLE PIB
+D54E;D54E;1111 1175 11B9;D54E;1111 1175 11B9; # (핎; 핎; 핎; 핎; 핎; ) HANGUL SYLLABLE PIBS
+D54F;D54F;1111 1175 11BA;D54F;1111 1175 11BA; # (핏; 핏; 핏; 핏; 핏; ) HANGUL SYLLABLE PIS
+D550;D550;1111 1175 11BB;D550;1111 1175 11BB; # (핐; 핐; 핐; 핐; 핐; ) HANGUL SYLLABLE PISS
+D551;D551;1111 1175 11BC;D551;1111 1175 11BC; # (핑; 핑; 핑; 핑; 핑; ) HANGUL SYLLABLE PING
+D552;D552;1111 1175 11BD;D552;1111 1175 11BD; # (핒; 핒; 핒; 핒; 핒; ) HANGUL SYLLABLE PIJ
+D553;D553;1111 1175 11BE;D553;1111 1175 11BE; # (핓; 핓; 핓; 핓; 핓; ) HANGUL SYLLABLE PIC
+D554;D554;1111 1175 11BF;D554;1111 1175 11BF; # (핔; 핔; 핔; 핔; 핔; ) HANGUL SYLLABLE PIK
+D555;D555;1111 1175 11C0;D555;1111 1175 11C0; # (핕; 핕; 핕; 핕; 핕; ) HANGUL SYLLABLE PIT
+D556;D556;1111 1175 11C1;D556;1111 1175 11C1; # (핖; 핖; 핖; 핖; 핖; ) HANGUL SYLLABLE PIP
+D557;D557;1111 1175 11C2;D557;1111 1175 11C2; # (핗; 핗; 핗; 핗; 핗; ) HANGUL SYLLABLE PIH
+D558;D558;1112 1161;D558;1112 1161; # (하; 하; 하; 하; 하; ) HANGUL SYLLABLE HA
+D559;D559;1112 1161 11A8;D559;1112 1161 11A8; # (학; 학; 학; 학; 학; ) HANGUL SYLLABLE HAG
+D55A;D55A;1112 1161 11A9;D55A;1112 1161 11A9; # (핚; 핚; 핚; 핚; 핚; ) HANGUL SYLLABLE HAGG
+D55B;D55B;1112 1161 11AA;D55B;1112 1161 11AA; # (핛; 핛; 핛; 핛; 핛; ) HANGUL SYLLABLE HAGS
+D55C;D55C;1112 1161 11AB;D55C;1112 1161 11AB; # (한; 한; 한; 한; 한; ) HANGUL SYLLABLE HAN
+D55D;D55D;1112 1161 11AC;D55D;1112 1161 11AC; # (핝; 핝; 핝; 핝; 핝; ) HANGUL SYLLABLE HANJ
+D55E;D55E;1112 1161 11AD;D55E;1112 1161 11AD; # (핞; 핞; 핞; 핞; 핞; ) HANGUL SYLLABLE HANH
+D55F;D55F;1112 1161 11AE;D55F;1112 1161 11AE; # (핟; 핟; 핟; 핟; 핟; ) HANGUL SYLLABLE HAD
+D560;D560;1112 1161 11AF;D560;1112 1161 11AF; # (할; 할; 할; 할; 할; ) HANGUL SYLLABLE HAL
+D561;D561;1112 1161 11B0;D561;1112 1161 11B0; # (핡; 핡; 핡; 핡; 핡; ) HANGUL SYLLABLE HALG
+D562;D562;1112 1161 11B1;D562;1112 1161 11B1; # (핢; 핢; 핢; 핢; 핢; ) HANGUL SYLLABLE HALM
+D563;D563;1112 1161 11B2;D563;1112 1161 11B2; # (핣; 핣; 핣; 핣; 핣; ) HANGUL SYLLABLE HALB
+D564;D564;1112 1161 11B3;D564;1112 1161 11B3; # (핤; 핤; 핤; 핤; 핤; ) HANGUL SYLLABLE HALS
+D565;D565;1112 1161 11B4;D565;1112 1161 11B4; # (핥; 핥; 핥; 핥; 핥; ) HANGUL SYLLABLE HALT
+D566;D566;1112 1161 11B5;D566;1112 1161 11B5; # (핦; 핦; 핦; 핦; 핦; ) HANGUL SYLLABLE HALP
+D567;D567;1112 1161 11B6;D567;1112 1161 11B6; # (핧; 핧; 핧; 핧; 핧; ) HANGUL SYLLABLE HALH
+D568;D568;1112 1161 11B7;D568;1112 1161 11B7; # (함; 함; 함; 함; 함; ) HANGUL SYLLABLE HAM
+D569;D569;1112 1161 11B8;D569;1112 1161 11B8; # (합; 합; 합; 합; 합; ) HANGUL SYLLABLE HAB
+D56A;D56A;1112 1161 11B9;D56A;1112 1161 11B9; # (핪; 핪; 핪; 핪; 핪; ) HANGUL SYLLABLE HABS
+D56B;D56B;1112 1161 11BA;D56B;1112 1161 11BA; # (핫; 핫; 핫; 핫; 핫; ) HANGUL SYLLABLE HAS
+D56C;D56C;1112 1161 11BB;D56C;1112 1161 11BB; # (핬; 핬; 핬; 핬; 핬; ) HANGUL SYLLABLE HASS
+D56D;D56D;1112 1161 11BC;D56D;1112 1161 11BC; # (항; 항; 항; 항; 항; ) HANGUL SYLLABLE HANG
+D56E;D56E;1112 1161 11BD;D56E;1112 1161 11BD; # (핮; 핮; 핮; 핮; 핮; ) HANGUL SYLLABLE HAJ
+D56F;D56F;1112 1161 11BE;D56F;1112 1161 11BE; # (핯; 핯; 핯; 핯; 핯; ) HANGUL SYLLABLE HAC
+D570;D570;1112 1161 11BF;D570;1112 1161 11BF; # (핰; 핰; 핰; 핰; 핰; ) HANGUL SYLLABLE HAK
+D571;D571;1112 1161 11C0;D571;1112 1161 11C0; # (핱; 핱; 핱; 핱; 핱; ) HANGUL SYLLABLE HAT
+D572;D572;1112 1161 11C1;D572;1112 1161 11C1; # (핲; 핲; 핲; 핲; 핲; ) HANGUL SYLLABLE HAP
+D573;D573;1112 1161 11C2;D573;1112 1161 11C2; # (핳; 핳; 핳; 핳; 핳; ) HANGUL SYLLABLE HAH
+D574;D574;1112 1162;D574;1112 1162; # (해; 해; 해; 해; 해; ) HANGUL SYLLABLE HAE
+D575;D575;1112 1162 11A8;D575;1112 1162 11A8; # (핵; 핵; 핵; 핵; 핵; ) HANGUL SYLLABLE HAEG
+D576;D576;1112 1162 11A9;D576;1112 1162 11A9; # (핶; 핶; 핶; 핶; 핶; ) HANGUL SYLLABLE HAEGG
+D577;D577;1112 1162 11AA;D577;1112 1162 11AA; # (핷; 핷; 핷; 핷; 핷; ) HANGUL SYLLABLE HAEGS
+D578;D578;1112 1162 11AB;D578;1112 1162 11AB; # (핸; 핸; 핸; 핸; 핸; ) HANGUL SYLLABLE HAEN
+D579;D579;1112 1162 11AC;D579;1112 1162 11AC; # (핹; 핹; 핹; 핹; 핹; ) HANGUL SYLLABLE HAENJ
+D57A;D57A;1112 1162 11AD;D57A;1112 1162 11AD; # (핺; 핺; 핺; 핺; 핺; ) HANGUL SYLLABLE HAENH
+D57B;D57B;1112 1162 11AE;D57B;1112 1162 11AE; # (핻; 핻; 핻; 핻; 핻; ) HANGUL SYLLABLE HAED
+D57C;D57C;1112 1162 11AF;D57C;1112 1162 11AF; # (핼; 핼; 핼; 핼; 핼; ) HANGUL SYLLABLE HAEL
+D57D;D57D;1112 1162 11B0;D57D;1112 1162 11B0; # (핽; 핽; 핽; 핽; 핽; ) HANGUL SYLLABLE HAELG
+D57E;D57E;1112 1162 11B1;D57E;1112 1162 11B1; # (핾; 핾; 핾; 핾; 핾; ) HANGUL SYLLABLE HAELM
+D57F;D57F;1112 1162 11B2;D57F;1112 1162 11B2; # (핿; 핿; 핿; 핿; 핿; ) HANGUL SYLLABLE HAELB
+D580;D580;1112 1162 11B3;D580;1112 1162 11B3; # (햀; 햀; 햀; 햀; 햀; ) HANGUL SYLLABLE HAELS
+D581;D581;1112 1162 11B4;D581;1112 1162 11B4; # (햁; 햁; 햁; 햁; 햁; ) HANGUL SYLLABLE HAELT
+D582;D582;1112 1162 11B5;D582;1112 1162 11B5; # (햂; 햂; 햂; 햂; 햂; ) HANGUL SYLLABLE HAELP
+D583;D583;1112 1162 11B6;D583;1112 1162 11B6; # (햃; 햃; 햃; 햃; 햃; ) HANGUL SYLLABLE HAELH
+D584;D584;1112 1162 11B7;D584;1112 1162 11B7; # (햄; 햄; 햄; 햄; 햄; ) HANGUL SYLLABLE HAEM
+D585;D585;1112 1162 11B8;D585;1112 1162 11B8; # (햅; 햅; 햅; 햅; 햅; ) HANGUL SYLLABLE HAEB
+D586;D586;1112 1162 11B9;D586;1112 1162 11B9; # (햆; 햆; 햆; 햆; 햆; ) HANGUL SYLLABLE HAEBS
+D587;D587;1112 1162 11BA;D587;1112 1162 11BA; # (햇; 햇; 햇; 햇; 햇; ) HANGUL SYLLABLE HAES
+D588;D588;1112 1162 11BB;D588;1112 1162 11BB; # (했; 했; 했; 했; 했; ) HANGUL SYLLABLE HAESS
+D589;D589;1112 1162 11BC;D589;1112 1162 11BC; # (행; 행; 행; 행; 행; ) HANGUL SYLLABLE HAENG
+D58A;D58A;1112 1162 11BD;D58A;1112 1162 11BD; # (햊; 햊; 햊; 햊; 햊; ) HANGUL SYLLABLE HAEJ
+D58B;D58B;1112 1162 11BE;D58B;1112 1162 11BE; # (햋; 햋; 햋; 햋; 햋; ) HANGUL SYLLABLE HAEC
+D58C;D58C;1112 1162 11BF;D58C;1112 1162 11BF; # (햌; 햌; 햌; 햌; 햌; ) HANGUL SYLLABLE HAEK
+D58D;D58D;1112 1162 11C0;D58D;1112 1162 11C0; # (햍; 햍; 햍; 햍; 햍; ) HANGUL SYLLABLE HAET
+D58E;D58E;1112 1162 11C1;D58E;1112 1162 11C1; # (햎; 햎; 햎; 햎; 햎; ) HANGUL SYLLABLE HAEP
+D58F;D58F;1112 1162 11C2;D58F;1112 1162 11C2; # (햏; 햏; 햏; 햏; 햏; ) HANGUL SYLLABLE HAEH
+D590;D590;1112 1163;D590;1112 1163; # (햐; 햐; 햐; 햐; 햐; ) HANGUL SYLLABLE HYA
+D591;D591;1112 1163 11A8;D591;1112 1163 11A8; # (햑; 햑; 햑; 햑; 햑; ) HANGUL SYLLABLE HYAG
+D592;D592;1112 1163 11A9;D592;1112 1163 11A9; # (햒; 햒; 햒; 햒; 햒; ) HANGUL SYLLABLE HYAGG
+D593;D593;1112 1163 11AA;D593;1112 1163 11AA; # (햓; 햓; 햓; 햓; 햓; ) HANGUL SYLLABLE HYAGS
+D594;D594;1112 1163 11AB;D594;1112 1163 11AB; # (햔; 햔; 햔; 햔; 햔; ) HANGUL SYLLABLE HYAN
+D595;D595;1112 1163 11AC;D595;1112 1163 11AC; # (햕; 햕; 햕; 햕; 햕; ) HANGUL SYLLABLE HYANJ
+D596;D596;1112 1163 11AD;D596;1112 1163 11AD; # (햖; 햖; 햖; 햖; 햖; ) HANGUL SYLLABLE HYANH
+D597;D597;1112 1163 11AE;D597;1112 1163 11AE; # (햗; 햗; 햗; 햗; 햗; ) HANGUL SYLLABLE HYAD
+D598;D598;1112 1163 11AF;D598;1112 1163 11AF; # (햘; 햘; 햘; 햘; 햘; ) HANGUL SYLLABLE HYAL
+D599;D599;1112 1163 11B0;D599;1112 1163 11B0; # (햙; 햙; 햙; 햙; 햙; ) HANGUL SYLLABLE HYALG
+D59A;D59A;1112 1163 11B1;D59A;1112 1163 11B1; # (햚; 햚; 햚; 햚; 햚; ) HANGUL SYLLABLE HYALM
+D59B;D59B;1112 1163 11B2;D59B;1112 1163 11B2; # (햛; 햛; 햛; 햛; 햛; ) HANGUL SYLLABLE HYALB
+D59C;D59C;1112 1163 11B3;D59C;1112 1163 11B3; # (햜; 햜; 햜; 햜; 햜; ) HANGUL SYLLABLE HYALS
+D59D;D59D;1112 1163 11B4;D59D;1112 1163 11B4; # (햝; 햝; 햝; 햝; 햝; ) HANGUL SYLLABLE HYALT
+D59E;D59E;1112 1163 11B5;D59E;1112 1163 11B5; # (햞; 햞; 햞; 햞; 햞; ) HANGUL SYLLABLE HYALP
+D59F;D59F;1112 1163 11B6;D59F;1112 1163 11B6; # (햟; 햟; 햟; 햟; 햟; ) HANGUL SYLLABLE HYALH
+D5A0;D5A0;1112 1163 11B7;D5A0;1112 1163 11B7; # (햠; 햠; 햠; 햠; 햠; ) HANGUL SYLLABLE HYAM
+D5A1;D5A1;1112 1163 11B8;D5A1;1112 1163 11B8; # (햡; 햡; 햡; 햡; 햡; ) HANGUL SYLLABLE HYAB
+D5A2;D5A2;1112 1163 11B9;D5A2;1112 1163 11B9; # (햢; 햢; 햢; 햢; 햢; ) HANGUL SYLLABLE HYABS
+D5A3;D5A3;1112 1163 11BA;D5A3;1112 1163 11BA; # (햣; 햣; 햣; 햣; 햣; ) HANGUL SYLLABLE HYAS
+D5A4;D5A4;1112 1163 11BB;D5A4;1112 1163 11BB; # (햤; 햤; 햤; 햤; 햤; ) HANGUL SYLLABLE HYASS
+D5A5;D5A5;1112 1163 11BC;D5A5;1112 1163 11BC; # (향; 향; 향; 향; 향; ) HANGUL SYLLABLE HYANG
+D5A6;D5A6;1112 1163 11BD;D5A6;1112 1163 11BD; # (햦; 햦; 햦; 햦; 햦; ) HANGUL SYLLABLE HYAJ
+D5A7;D5A7;1112 1163 11BE;D5A7;1112 1163 11BE; # (햧; 햧; 햧; 햧; 햧; ) HANGUL SYLLABLE HYAC
+D5A8;D5A8;1112 1163 11BF;D5A8;1112 1163 11BF; # (햨; 햨; 햨; 햨; 햨; ) HANGUL SYLLABLE HYAK
+D5A9;D5A9;1112 1163 11C0;D5A9;1112 1163 11C0; # (햩; 햩; 햩; 햩; 햩; ) HANGUL SYLLABLE HYAT
+D5AA;D5AA;1112 1163 11C1;D5AA;1112 1163 11C1; # (햪; 햪; 햪; 햪; 햪; ) HANGUL SYLLABLE HYAP
+D5AB;D5AB;1112 1163 11C2;D5AB;1112 1163 11C2; # (햫; 햫; 햫; 햫; 햫; ) HANGUL SYLLABLE HYAH
+D5AC;D5AC;1112 1164;D5AC;1112 1164; # (햬; 햬; 햬; 햬; 햬; ) HANGUL SYLLABLE HYAE
+D5AD;D5AD;1112 1164 11A8;D5AD;1112 1164 11A8; # (햭; 햭; 햭; 햭; 햭; ) HANGUL SYLLABLE HYAEG
+D5AE;D5AE;1112 1164 11A9;D5AE;1112 1164 11A9; # (햮; 햮; 햮; 햮; 햮; ) HANGUL SYLLABLE HYAEGG
+D5AF;D5AF;1112 1164 11AA;D5AF;1112 1164 11AA; # (햯; 햯; 햯; 햯; 햯; ) HANGUL SYLLABLE HYAEGS
+D5B0;D5B0;1112 1164 11AB;D5B0;1112 1164 11AB; # (햰; 햰; 햰; 햰; 햰; ) HANGUL SYLLABLE HYAEN
+D5B1;D5B1;1112 1164 11AC;D5B1;1112 1164 11AC; # (햱; 햱; 햱; 햱; 햱; ) HANGUL SYLLABLE HYAENJ
+D5B2;D5B2;1112 1164 11AD;D5B2;1112 1164 11AD; # (햲; 햲; 햲; 햲; 햲; ) HANGUL SYLLABLE HYAENH
+D5B3;D5B3;1112 1164 11AE;D5B3;1112 1164 11AE; # (햳; 햳; 햳; 햳; 햳; ) HANGUL SYLLABLE HYAED
+D5B4;D5B4;1112 1164 11AF;D5B4;1112 1164 11AF; # (햴; 햴; 햴; 햴; 햴; ) HANGUL SYLLABLE HYAEL
+D5B5;D5B5;1112 1164 11B0;D5B5;1112 1164 11B0; # (햵; 햵; 햵; 햵; 햵; ) HANGUL SYLLABLE HYAELG
+D5B6;D5B6;1112 1164 11B1;D5B6;1112 1164 11B1; # (햶; 햶; 햶; 햶; 햶; ) HANGUL SYLLABLE HYAELM
+D5B7;D5B7;1112 1164 11B2;D5B7;1112 1164 11B2; # (햷; 햷; 햷; 햷; 햷; ) HANGUL SYLLABLE HYAELB
+D5B8;D5B8;1112 1164 11B3;D5B8;1112 1164 11B3; # (햸; 햸; 햸; 햸; 햸; ) HANGUL SYLLABLE HYAELS
+D5B9;D5B9;1112 1164 11B4;D5B9;1112 1164 11B4; # (햹; 햹; 햹; 햹; 햹; ) HANGUL SYLLABLE HYAELT
+D5BA;D5BA;1112 1164 11B5;D5BA;1112 1164 11B5; # (햺; 햺; 햺; 햺; 햺; ) HANGUL SYLLABLE HYAELP
+D5BB;D5BB;1112 1164 11B6;D5BB;1112 1164 11B6; # (햻; 햻; 햻; 햻; 햻; ) HANGUL SYLLABLE HYAELH
+D5BC;D5BC;1112 1164 11B7;D5BC;1112 1164 11B7; # (햼; 햼; 햼; 햼; 햼; ) HANGUL SYLLABLE HYAEM
+D5BD;D5BD;1112 1164 11B8;D5BD;1112 1164 11B8; # (햽; 햽; 햽; 햽; 햽; ) HANGUL SYLLABLE HYAEB
+D5BE;D5BE;1112 1164 11B9;D5BE;1112 1164 11B9; # (햾; 햾; 햾; 햾; 햾; ) HANGUL SYLLABLE HYAEBS
+D5BF;D5BF;1112 1164 11BA;D5BF;1112 1164 11BA; # (햿; 햿; 햿; 햿; 햿; ) HANGUL SYLLABLE HYAES
+D5C0;D5C0;1112 1164 11BB;D5C0;1112 1164 11BB; # (헀; 헀; 헀; 헀; 헀; ) HANGUL SYLLABLE HYAESS
+D5C1;D5C1;1112 1164 11BC;D5C1;1112 1164 11BC; # (헁; 헁; 헁; 헁; 헁; ) HANGUL SYLLABLE HYAENG
+D5C2;D5C2;1112 1164 11BD;D5C2;1112 1164 11BD; # (헂; 헂; 헂; 헂; 헂; ) HANGUL SYLLABLE HYAEJ
+D5C3;D5C3;1112 1164 11BE;D5C3;1112 1164 11BE; # (헃; 헃; 헃; 헃; 헃; ) HANGUL SYLLABLE HYAEC
+D5C4;D5C4;1112 1164 11BF;D5C4;1112 1164 11BF; # (헄; 헄; 헄; 헄; 헄; ) HANGUL SYLLABLE HYAEK
+D5C5;D5C5;1112 1164 11C0;D5C5;1112 1164 11C0; # (헅; 헅; 헅; 헅; 헅; ) HANGUL SYLLABLE HYAET
+D5C6;D5C6;1112 1164 11C1;D5C6;1112 1164 11C1; # (헆; 헆; 헆; 헆; 헆; ) HANGUL SYLLABLE HYAEP
+D5C7;D5C7;1112 1164 11C2;D5C7;1112 1164 11C2; # (헇; 헇; 헇; 헇; 헇; ) HANGUL SYLLABLE HYAEH
+D5C8;D5C8;1112 1165;D5C8;1112 1165; # (허; 허; 허; 허; 허; ) HANGUL SYLLABLE HEO
+D5C9;D5C9;1112 1165 11A8;D5C9;1112 1165 11A8; # (헉; 헉; 헉; 헉; 헉; ) HANGUL SYLLABLE HEOG
+D5CA;D5CA;1112 1165 11A9;D5CA;1112 1165 11A9; # (헊; 헊; 헊; 헊; 헊; ) HANGUL SYLLABLE HEOGG
+D5CB;D5CB;1112 1165 11AA;D5CB;1112 1165 11AA; # (헋; 헋; 헋; 헋; 헋; ) HANGUL SYLLABLE HEOGS
+D5CC;D5CC;1112 1165 11AB;D5CC;1112 1165 11AB; # (헌; 헌; 헌; 헌; 헌; ) HANGUL SYLLABLE HEON
+D5CD;D5CD;1112 1165 11AC;D5CD;1112 1165 11AC; # (헍; 헍; 헍; 헍; 헍; ) HANGUL SYLLABLE HEONJ
+D5CE;D5CE;1112 1165 11AD;D5CE;1112 1165 11AD; # (헎; 헎; 헎; 헎; 헎; ) HANGUL SYLLABLE HEONH
+D5CF;D5CF;1112 1165 11AE;D5CF;1112 1165 11AE; # (헏; 헏; 헏; 헏; 헏; ) HANGUL SYLLABLE HEOD
+D5D0;D5D0;1112 1165 11AF;D5D0;1112 1165 11AF; # (헐; 헐; 헐; 헐; 헐; ) HANGUL SYLLABLE HEOL
+D5D1;D5D1;1112 1165 11B0;D5D1;1112 1165 11B0; # (헑; 헑; 헑; 헑; 헑; ) HANGUL SYLLABLE HEOLG
+D5D2;D5D2;1112 1165 11B1;D5D2;1112 1165 11B1; # (헒; 헒; 헒; 헒; 헒; ) HANGUL SYLLABLE HEOLM
+D5D3;D5D3;1112 1165 11B2;D5D3;1112 1165 11B2; # (헓; 헓; 헓; 헓; 헓; ) HANGUL SYLLABLE HEOLB
+D5D4;D5D4;1112 1165 11B3;D5D4;1112 1165 11B3; # (헔; 헔; 헔; 헔; 헔; ) HANGUL SYLLABLE HEOLS
+D5D5;D5D5;1112 1165 11B4;D5D5;1112 1165 11B4; # (헕; 헕; 헕; 헕; 헕; ) HANGUL SYLLABLE HEOLT
+D5D6;D5D6;1112 1165 11B5;D5D6;1112 1165 11B5; # (헖; 헖; 헖; 헖; 헖; ) HANGUL SYLLABLE HEOLP
+D5D7;D5D7;1112 1165 11B6;D5D7;1112 1165 11B6; # (헗; 헗; 헗; 헗; 헗; ) HANGUL SYLLABLE HEOLH
+D5D8;D5D8;1112 1165 11B7;D5D8;1112 1165 11B7; # (험; 험; 험; 험; 험; ) HANGUL SYLLABLE HEOM
+D5D9;D5D9;1112 1165 11B8;D5D9;1112 1165 11B8; # (헙; 헙; 헙; 헙; 헙; ) HANGUL SYLLABLE HEOB
+D5DA;D5DA;1112 1165 11B9;D5DA;1112 1165 11B9; # (헚; 헚; 헚; 헚; 헚; ) HANGUL SYLLABLE HEOBS
+D5DB;D5DB;1112 1165 11BA;D5DB;1112 1165 11BA; # (헛; 헛; 헛; 헛; 헛; ) HANGUL SYLLABLE HEOS
+D5DC;D5DC;1112 1165 11BB;D5DC;1112 1165 11BB; # (헜; 헜; 헜; 헜; 헜; ) HANGUL SYLLABLE HEOSS
+D5DD;D5DD;1112 1165 11BC;D5DD;1112 1165 11BC; # (헝; 헝; 헝; 헝; 헝; ) HANGUL SYLLABLE HEONG
+D5DE;D5DE;1112 1165 11BD;D5DE;1112 1165 11BD; # (헞; 헞; 헞; 헞; 헞; ) HANGUL SYLLABLE HEOJ
+D5DF;D5DF;1112 1165 11BE;D5DF;1112 1165 11BE; # (헟; 헟; 헟; 헟; 헟; ) HANGUL SYLLABLE HEOC
+D5E0;D5E0;1112 1165 11BF;D5E0;1112 1165 11BF; # (헠; 헠; 헠; 헠; 헠; ) HANGUL SYLLABLE HEOK
+D5E1;D5E1;1112 1165 11C0;D5E1;1112 1165 11C0; # (헡; 헡; 헡; 헡; 헡; ) HANGUL SYLLABLE HEOT
+D5E2;D5E2;1112 1165 11C1;D5E2;1112 1165 11C1; # (헢; 헢; 헢; 헢; 헢; ) HANGUL SYLLABLE HEOP
+D5E3;D5E3;1112 1165 11C2;D5E3;1112 1165 11C2; # (헣; 헣; 헣; 헣; 헣; ) HANGUL SYLLABLE HEOH
+D5E4;D5E4;1112 1166;D5E4;1112 1166; # (헤; 헤; 헤; 헤; 헤; ) HANGUL SYLLABLE HE
+D5E5;D5E5;1112 1166 11A8;D5E5;1112 1166 11A8; # (헥; 헥; 헥; 헥; 헥; ) HANGUL SYLLABLE HEG
+D5E6;D5E6;1112 1166 11A9;D5E6;1112 1166 11A9; # (헦; 헦; 헦; 헦; 헦; ) HANGUL SYLLABLE HEGG
+D5E7;D5E7;1112 1166 11AA;D5E7;1112 1166 11AA; # (헧; 헧; 헧; 헧; 헧; ) HANGUL SYLLABLE HEGS
+D5E8;D5E8;1112 1166 11AB;D5E8;1112 1166 11AB; # (헨; 헨; 헨; 헨; 헨; ) HANGUL SYLLABLE HEN
+D5E9;D5E9;1112 1166 11AC;D5E9;1112 1166 11AC; # (헩; 헩; 헩; 헩; 헩; ) HANGUL SYLLABLE HENJ
+D5EA;D5EA;1112 1166 11AD;D5EA;1112 1166 11AD; # (헪; 헪; 헪; 헪; 헪; ) HANGUL SYLLABLE HENH
+D5EB;D5EB;1112 1166 11AE;D5EB;1112 1166 11AE; # (헫; 헫; 헫; 헫; 헫; ) HANGUL SYLLABLE HED
+D5EC;D5EC;1112 1166 11AF;D5EC;1112 1166 11AF; # (헬; 헬; 헬; 헬; 헬; ) HANGUL SYLLABLE HEL
+D5ED;D5ED;1112 1166 11B0;D5ED;1112 1166 11B0; # (헭; 헭; 헭; 헭; 헭; ) HANGUL SYLLABLE HELG
+D5EE;D5EE;1112 1166 11B1;D5EE;1112 1166 11B1; # (헮; 헮; 헮; 헮; 헮; ) HANGUL SYLLABLE HELM
+D5EF;D5EF;1112 1166 11B2;D5EF;1112 1166 11B2; # (헯; 헯; 헯; 헯; 헯; ) HANGUL SYLLABLE HELB
+D5F0;D5F0;1112 1166 11B3;D5F0;1112 1166 11B3; # (헰; 헰; 헰; 헰; 헰; ) HANGUL SYLLABLE HELS
+D5F1;D5F1;1112 1166 11B4;D5F1;1112 1166 11B4; # (헱; 헱; 헱; 헱; 헱; ) HANGUL SYLLABLE HELT
+D5F2;D5F2;1112 1166 11B5;D5F2;1112 1166 11B5; # (헲; 헲; 헲; 헲; 헲; ) HANGUL SYLLABLE HELP
+D5F3;D5F3;1112 1166 11B6;D5F3;1112 1166 11B6; # (헳; 헳; 헳; 헳; 헳; ) HANGUL SYLLABLE HELH
+D5F4;D5F4;1112 1166 11B7;D5F4;1112 1166 11B7; # (헴; 헴; 헴; 헴; 헴; ) HANGUL SYLLABLE HEM
+D5F5;D5F5;1112 1166 11B8;D5F5;1112 1166 11B8; # (헵; 헵; 헵; 헵; 헵; ) HANGUL SYLLABLE HEB
+D5F6;D5F6;1112 1166 11B9;D5F6;1112 1166 11B9; # (헶; 헶; 헶; 헶; 헶; ) HANGUL SYLLABLE HEBS
+D5F7;D5F7;1112 1166 11BA;D5F7;1112 1166 11BA; # (헷; 헷; 헷; 헷; 헷; ) HANGUL SYLLABLE HES
+D5F8;D5F8;1112 1166 11BB;D5F8;1112 1166 11BB; # (헸; 헸; 헸; 헸; 헸; ) HANGUL SYLLABLE HESS
+D5F9;D5F9;1112 1166 11BC;D5F9;1112 1166 11BC; # (헹; 헹; 헹; 헹; 헹; ) HANGUL SYLLABLE HENG
+D5FA;D5FA;1112 1166 11BD;D5FA;1112 1166 11BD; # (헺; 헺; 헺; 헺; 헺; ) HANGUL SYLLABLE HEJ
+D5FB;D5FB;1112 1166 11BE;D5FB;1112 1166 11BE; # (헻; 헻; 헻; 헻; 헻; ) HANGUL SYLLABLE HEC
+D5FC;D5FC;1112 1166 11BF;D5FC;1112 1166 11BF; # (헼; 헼; 헼; 헼; 헼; ) HANGUL SYLLABLE HEK
+D5FD;D5FD;1112 1166 11C0;D5FD;1112 1166 11C0; # (헽; 헽; 헽; 헽; 헽; ) HANGUL SYLLABLE HET
+D5FE;D5FE;1112 1166 11C1;D5FE;1112 1166 11C1; # (헾; 헾; 헾; 헾; 헾; ) HANGUL SYLLABLE HEP
+D5FF;D5FF;1112 1166 11C2;D5FF;1112 1166 11C2; # (헿; 헿; 헿; 헿; 헿; ) HANGUL SYLLABLE HEH
+D600;D600;1112 1167;D600;1112 1167; # (혀; 혀; 혀; 혀; 혀; ) HANGUL SYLLABLE HYEO
+D601;D601;1112 1167 11A8;D601;1112 1167 11A8; # (혁; 혁; 혁; 혁; 혁; ) HANGUL SYLLABLE HYEOG
+D602;D602;1112 1167 11A9;D602;1112 1167 11A9; # (혂; 혂; 혂; 혂; 혂; ) HANGUL SYLLABLE HYEOGG
+D603;D603;1112 1167 11AA;D603;1112 1167 11AA; # (혃; 혃; 혃; 혃; 혃; ) HANGUL SYLLABLE HYEOGS
+D604;D604;1112 1167 11AB;D604;1112 1167 11AB; # (현; 현; 현; 현; 현; ) HANGUL SYLLABLE HYEON
+D605;D605;1112 1167 11AC;D605;1112 1167 11AC; # (혅; 혅; 혅; 혅; 혅; ) HANGUL SYLLABLE HYEONJ
+D606;D606;1112 1167 11AD;D606;1112 1167 11AD; # (혆; 혆; 혆; 혆; 혆; ) HANGUL SYLLABLE HYEONH
+D607;D607;1112 1167 11AE;D607;1112 1167 11AE; # (혇; 혇; 혇; 혇; 혇; ) HANGUL SYLLABLE HYEOD
+D608;D608;1112 1167 11AF;D608;1112 1167 11AF; # (혈; 혈; 혈; 혈; 혈; ) HANGUL SYLLABLE HYEOL
+D609;D609;1112 1167 11B0;D609;1112 1167 11B0; # (혉; 혉; 혉; 혉; 혉; ) HANGUL SYLLABLE HYEOLG
+D60A;D60A;1112 1167 11B1;D60A;1112 1167 11B1; # (혊; 혊; 혊; 혊; 혊; ) HANGUL SYLLABLE HYEOLM
+D60B;D60B;1112 1167 11B2;D60B;1112 1167 11B2; # (혋; 혋; 혋; 혋; 혋; ) HANGUL SYLLABLE HYEOLB
+D60C;D60C;1112 1167 11B3;D60C;1112 1167 11B3; # (혌; 혌; 혌; 혌; 혌; ) HANGUL SYLLABLE HYEOLS
+D60D;D60D;1112 1167 11B4;D60D;1112 1167 11B4; # (혍; 혍; 혍; 혍; 혍; ) HANGUL SYLLABLE HYEOLT
+D60E;D60E;1112 1167 11B5;D60E;1112 1167 11B5; # (혎; 혎; 혎; 혎; 혎; ) HANGUL SYLLABLE HYEOLP
+D60F;D60F;1112 1167 11B6;D60F;1112 1167 11B6; # (혏; 혏; 혏; 혏; 혏; ) HANGUL SYLLABLE HYEOLH
+D610;D610;1112 1167 11B7;D610;1112 1167 11B7; # (혐; 혐; 혐; 혐; 혐; ) HANGUL SYLLABLE HYEOM
+D611;D611;1112 1167 11B8;D611;1112 1167 11B8; # (협; 협; 협; 협; 협; ) HANGUL SYLLABLE HYEOB
+D612;D612;1112 1167 11B9;D612;1112 1167 11B9; # (혒; 혒; 혒; 혒; 혒; ) HANGUL SYLLABLE HYEOBS
+D613;D613;1112 1167 11BA;D613;1112 1167 11BA; # (혓; 혓; 혓; 혓; 혓; ) HANGUL SYLLABLE HYEOS
+D614;D614;1112 1167 11BB;D614;1112 1167 11BB; # (혔; 혔; 혔; 혔; 혔; ) HANGUL SYLLABLE HYEOSS
+D615;D615;1112 1167 11BC;D615;1112 1167 11BC; # (형; 형; 형; 형; 형; ) HANGUL SYLLABLE HYEONG
+D616;D616;1112 1167 11BD;D616;1112 1167 11BD; # (혖; 혖; 혖; 혖; 혖; ) HANGUL SYLLABLE HYEOJ
+D617;D617;1112 1167 11BE;D617;1112 1167 11BE; # (혗; 혗; 혗; 혗; 혗; ) HANGUL SYLLABLE HYEOC
+D618;D618;1112 1167 11BF;D618;1112 1167 11BF; # (혘; 혘; 혘; 혘; 혘; ) HANGUL SYLLABLE HYEOK
+D619;D619;1112 1167 11C0;D619;1112 1167 11C0; # (혙; 혙; 혙; 혙; 혙; ) HANGUL SYLLABLE HYEOT
+D61A;D61A;1112 1167 11C1;D61A;1112 1167 11C1; # (혚; 혚; 혚; 혚; 혚; ) HANGUL SYLLABLE HYEOP
+D61B;D61B;1112 1167 11C2;D61B;1112 1167 11C2; # (혛; 혛; 혛; 혛; 혛; ) HANGUL SYLLABLE HYEOH
+D61C;D61C;1112 1168;D61C;1112 1168; # (혜; 혜; 혜; 혜; 혜; ) HANGUL SYLLABLE HYE
+D61D;D61D;1112 1168 11A8;D61D;1112 1168 11A8; # (혝; 혝; 혝; 혝; 혝; ) HANGUL SYLLABLE HYEG
+D61E;D61E;1112 1168 11A9;D61E;1112 1168 11A9; # (혞; 혞; 혞; 혞; 혞; ) HANGUL SYLLABLE HYEGG
+D61F;D61F;1112 1168 11AA;D61F;1112 1168 11AA; # (혟; 혟; 혟; 혟; 혟; ) HANGUL SYLLABLE HYEGS
+D620;D620;1112 1168 11AB;D620;1112 1168 11AB; # (혠; 혠; 혠; 혠; 혠; ) HANGUL SYLLABLE HYEN
+D621;D621;1112 1168 11AC;D621;1112 1168 11AC; # (혡; 혡; 혡; 혡; 혡; ) HANGUL SYLLABLE HYENJ
+D622;D622;1112 1168 11AD;D622;1112 1168 11AD; # (혢; 혢; 혢; 혢; 혢; ) HANGUL SYLLABLE HYENH
+D623;D623;1112 1168 11AE;D623;1112 1168 11AE; # (혣; 혣; 혣; 혣; 혣; ) HANGUL SYLLABLE HYED
+D624;D624;1112 1168 11AF;D624;1112 1168 11AF; # (혤; 혤; 혤; 혤; 혤; ) HANGUL SYLLABLE HYEL
+D625;D625;1112 1168 11B0;D625;1112 1168 11B0; # (혥; 혥; 혥; 혥; 혥; ) HANGUL SYLLABLE HYELG
+D626;D626;1112 1168 11B1;D626;1112 1168 11B1; # (혦; 혦; 혦; 혦; 혦; ) HANGUL SYLLABLE HYELM
+D627;D627;1112 1168 11B2;D627;1112 1168 11B2; # (혧; 혧; 혧; 혧; 혧; ) HANGUL SYLLABLE HYELB
+D628;D628;1112 1168 11B3;D628;1112 1168 11B3; # (혨; 혨; 혨; 혨; 혨; ) HANGUL SYLLABLE HYELS
+D629;D629;1112 1168 11B4;D629;1112 1168 11B4; # (혩; 혩; 혩; 혩; 혩; ) HANGUL SYLLABLE HYELT
+D62A;D62A;1112 1168 11B5;D62A;1112 1168 11B5; # (혪; 혪; 혪; 혪; 혪; ) HANGUL SYLLABLE HYELP
+D62B;D62B;1112 1168 11B6;D62B;1112 1168 11B6; # (혫; 혫; 혫; 혫; 혫; ) HANGUL SYLLABLE HYELH
+D62C;D62C;1112 1168 11B7;D62C;1112 1168 11B7; # (혬; 혬; 혬; 혬; 혬; ) HANGUL SYLLABLE HYEM
+D62D;D62D;1112 1168 11B8;D62D;1112 1168 11B8; # (혭; 혭; 혭; 혭; 혭; ) HANGUL SYLLABLE HYEB
+D62E;D62E;1112 1168 11B9;D62E;1112 1168 11B9; # (혮; 혮; 혮; 혮; 혮; ) HANGUL SYLLABLE HYEBS
+D62F;D62F;1112 1168 11BA;D62F;1112 1168 11BA; # (혯; 혯; 혯; 혯; 혯; ) HANGUL SYLLABLE HYES
+D630;D630;1112 1168 11BB;D630;1112 1168 11BB; # (혰; 혰; 혰; 혰; 혰; ) HANGUL SYLLABLE HYESS
+D631;D631;1112 1168 11BC;D631;1112 1168 11BC; # (혱; 혱; 혱; 혱; 혱; ) HANGUL SYLLABLE HYENG
+D632;D632;1112 1168 11BD;D632;1112 1168 11BD; # (혲; 혲; 혲; 혲; 혲; ) HANGUL SYLLABLE HYEJ
+D633;D633;1112 1168 11BE;D633;1112 1168 11BE; # (혳; 혳; 혳; 혳; 혳; ) HANGUL SYLLABLE HYEC
+D634;D634;1112 1168 11BF;D634;1112 1168 11BF; # (혴; 혴; 혴; 혴; 혴; ) HANGUL SYLLABLE HYEK
+D635;D635;1112 1168 11C0;D635;1112 1168 11C0; # (혵; 혵; 혵; 혵; 혵; ) HANGUL SYLLABLE HYET
+D636;D636;1112 1168 11C1;D636;1112 1168 11C1; # (혶; 혶; 혶; 혶; 혶; ) HANGUL SYLLABLE HYEP
+D637;D637;1112 1168 11C2;D637;1112 1168 11C2; # (혷; 혷; 혷; 혷; 혷; ) HANGUL SYLLABLE HYEH
+D638;D638;1112 1169;D638;1112 1169; # (호; 호; 호; 호; 호; ) HANGUL SYLLABLE HO
+D639;D639;1112 1169 11A8;D639;1112 1169 11A8; # (혹; 혹; 혹; 혹; 혹; ) HANGUL SYLLABLE HOG
+D63A;D63A;1112 1169 11A9;D63A;1112 1169 11A9; # (혺; 혺; 혺; 혺; 혺; ) HANGUL SYLLABLE HOGG
+D63B;D63B;1112 1169 11AA;D63B;1112 1169 11AA; # (혻; 혻; 혻; 혻; 혻; ) HANGUL SYLLABLE HOGS
+D63C;D63C;1112 1169 11AB;D63C;1112 1169 11AB; # (혼; 혼; 혼; 혼; 혼; ) HANGUL SYLLABLE HON
+D63D;D63D;1112 1169 11AC;D63D;1112 1169 11AC; # (혽; 혽; 혽; 혽; 혽; ) HANGUL SYLLABLE HONJ
+D63E;D63E;1112 1169 11AD;D63E;1112 1169 11AD; # (혾; 혾; 혾; 혾; 혾; ) HANGUL SYLLABLE HONH
+D63F;D63F;1112 1169 11AE;D63F;1112 1169 11AE; # (혿; 혿; 혿; 혿; 혿; ) HANGUL SYLLABLE HOD
+D640;D640;1112 1169 11AF;D640;1112 1169 11AF; # (홀; 홀; 홀; 홀; 홀; ) HANGUL SYLLABLE HOL
+D641;D641;1112 1169 11B0;D641;1112 1169 11B0; # (홁; 홁; 홁; 홁; 홁; ) HANGUL SYLLABLE HOLG
+D642;D642;1112 1169 11B1;D642;1112 1169 11B1; # (홂; 홂; 홂; 홂; 홂; ) HANGUL SYLLABLE HOLM
+D643;D643;1112 1169 11B2;D643;1112 1169 11B2; # (홃; 홃; 홃; 홃; 홃; ) HANGUL SYLLABLE HOLB
+D644;D644;1112 1169 11B3;D644;1112 1169 11B3; # (홄; 홄; 홄; 홄; 홄; ) HANGUL SYLLABLE HOLS
+D645;D645;1112 1169 11B4;D645;1112 1169 11B4; # (홅; 홅; 홅; 홅; 홅; ) HANGUL SYLLABLE HOLT
+D646;D646;1112 1169 11B5;D646;1112 1169 11B5; # (홆; 홆; 홆; 홆; 홆; ) HANGUL SYLLABLE HOLP
+D647;D647;1112 1169 11B6;D647;1112 1169 11B6; # (홇; 홇; 홇; 홇; 홇; ) HANGUL SYLLABLE HOLH
+D648;D648;1112 1169 11B7;D648;1112 1169 11B7; # (홈; 홈; 홈; 홈; 홈; ) HANGUL SYLLABLE HOM
+D649;D649;1112 1169 11B8;D649;1112 1169 11B8; # (홉; 홉; 홉; 홉; 홉; ) HANGUL SYLLABLE HOB
+D64A;D64A;1112 1169 11B9;D64A;1112 1169 11B9; # (홊; 홊; 홊; 홊; 홊; ) HANGUL SYLLABLE HOBS
+D64B;D64B;1112 1169 11BA;D64B;1112 1169 11BA; # (홋; 홋; 홋; 홋; 홋; ) HANGUL SYLLABLE HOS
+D64C;D64C;1112 1169 11BB;D64C;1112 1169 11BB; # (홌; 홌; 홌; 홌; 홌; ) HANGUL SYLLABLE HOSS
+D64D;D64D;1112 1169 11BC;D64D;1112 1169 11BC; # (홍; 홍; 홍; 홍; 홍; ) HANGUL SYLLABLE HONG
+D64E;D64E;1112 1169 11BD;D64E;1112 1169 11BD; # (홎; 홎; 홎; 홎; 홎; ) HANGUL SYLLABLE HOJ
+D64F;D64F;1112 1169 11BE;D64F;1112 1169 11BE; # (홏; 홏; 홏; 홏; 홏; ) HANGUL SYLLABLE HOC
+D650;D650;1112 1169 11BF;D650;1112 1169 11BF; # (홐; 홐; 홐; 홐; 홐; ) HANGUL SYLLABLE HOK
+D651;D651;1112 1169 11C0;D651;1112 1169 11C0; # (홑; 홑; 홑; 홑; 홑; ) HANGUL SYLLABLE HOT
+D652;D652;1112 1169 11C1;D652;1112 1169 11C1; # (홒; 홒; 홒; 홒; 홒; ) HANGUL SYLLABLE HOP
+D653;D653;1112 1169 11C2;D653;1112 1169 11C2; # (홓; 홓; 홓; 홓; 홓; ) HANGUL SYLLABLE HOH
+D654;D654;1112 116A;D654;1112 116A; # (화; 화; 화; 화; 화; ) HANGUL SYLLABLE HWA
+D655;D655;1112 116A 11A8;D655;1112 116A 11A8; # (확; 확; 확; 확; 확; ) HANGUL SYLLABLE HWAG
+D656;D656;1112 116A 11A9;D656;1112 116A 11A9; # (홖; 홖; 홖; 홖; 홖; ) HANGUL SYLLABLE HWAGG
+D657;D657;1112 116A 11AA;D657;1112 116A 11AA; # (홗; 홗; 홗; 홗; 홗; ) HANGUL SYLLABLE HWAGS
+D658;D658;1112 116A 11AB;D658;1112 116A 11AB; # (환; 환; 환; 환; 환; ) HANGUL SYLLABLE HWAN
+D659;D659;1112 116A 11AC;D659;1112 116A 11AC; # (홙; 홙; 홙; 홙; 홙; ) HANGUL SYLLABLE HWANJ
+D65A;D65A;1112 116A 11AD;D65A;1112 116A 11AD; # (홚; 홚; 홚; 홚; 홚; ) HANGUL SYLLABLE HWANH
+D65B;D65B;1112 116A 11AE;D65B;1112 116A 11AE; # (홛; 홛; 홛; 홛; 홛; ) HANGUL SYLLABLE HWAD
+D65C;D65C;1112 116A 11AF;D65C;1112 116A 11AF; # (활; 활; 활; 활; 활; ) HANGUL SYLLABLE HWAL
+D65D;D65D;1112 116A 11B0;D65D;1112 116A 11B0; # (홝; 홝; 홝; 홝; 홝; ) HANGUL SYLLABLE HWALG
+D65E;D65E;1112 116A 11B1;D65E;1112 116A 11B1; # (홞; 홞; 홞; 홞; 홞; ) HANGUL SYLLABLE HWALM
+D65F;D65F;1112 116A 11B2;D65F;1112 116A 11B2; # (홟; 홟; 홟; 홟; 홟; ) HANGUL SYLLABLE HWALB
+D660;D660;1112 116A 11B3;D660;1112 116A 11B3; # (홠; 홠; 홠; 홠; 홠; ) HANGUL SYLLABLE HWALS
+D661;D661;1112 116A 11B4;D661;1112 116A 11B4; # (홡; 홡; 홡; 홡; 홡; ) HANGUL SYLLABLE HWALT
+D662;D662;1112 116A 11B5;D662;1112 116A 11B5; # (홢; 홢; 홢; 홢; 홢; ) HANGUL SYLLABLE HWALP
+D663;D663;1112 116A 11B6;D663;1112 116A 11B6; # (홣; 홣; 홣; 홣; 홣; ) HANGUL SYLLABLE HWALH
+D664;D664;1112 116A 11B7;D664;1112 116A 11B7; # (홤; 홤; 홤; 홤; 홤; ) HANGUL SYLLABLE HWAM
+D665;D665;1112 116A 11B8;D665;1112 116A 11B8; # (홥; 홥; 홥; 홥; 홥; ) HANGUL SYLLABLE HWAB
+D666;D666;1112 116A 11B9;D666;1112 116A 11B9; # (홦; 홦; 홦; 홦; 홦; ) HANGUL SYLLABLE HWABS
+D667;D667;1112 116A 11BA;D667;1112 116A 11BA; # (홧; 홧; 홧; 홧; 홧; ) HANGUL SYLLABLE HWAS
+D668;D668;1112 116A 11BB;D668;1112 116A 11BB; # (홨; 홨; 홨; 홨; 홨; ) HANGUL SYLLABLE HWASS
+D669;D669;1112 116A 11BC;D669;1112 116A 11BC; # (황; 황; 황; 황; 황; ) HANGUL SYLLABLE HWANG
+D66A;D66A;1112 116A 11BD;D66A;1112 116A 11BD; # (홪; 홪; 홪; 홪; 홪; ) HANGUL SYLLABLE HWAJ
+D66B;D66B;1112 116A 11BE;D66B;1112 116A 11BE; # (홫; 홫; 홫; 홫; 홫; ) HANGUL SYLLABLE HWAC
+D66C;D66C;1112 116A 11BF;D66C;1112 116A 11BF; # (홬; 홬; 홬; 홬; 홬; ) HANGUL SYLLABLE HWAK
+D66D;D66D;1112 116A 11C0;D66D;1112 116A 11C0; # (홭; 홭; 홭; 홭; 홭; ) HANGUL SYLLABLE HWAT
+D66E;D66E;1112 116A 11C1;D66E;1112 116A 11C1; # (홮; 홮; 홮; 홮; 홮; ) HANGUL SYLLABLE HWAP
+D66F;D66F;1112 116A 11C2;D66F;1112 116A 11C2; # (홯; 홯; 홯; 홯; 홯; ) HANGUL SYLLABLE HWAH
+D670;D670;1112 116B;D670;1112 116B; # (홰; 홰; 홰; 홰; 홰; ) HANGUL SYLLABLE HWAE
+D671;D671;1112 116B 11A8;D671;1112 116B 11A8; # (홱; 홱; 홱; 홱; 홱; ) HANGUL SYLLABLE HWAEG
+D672;D672;1112 116B 11A9;D672;1112 116B 11A9; # (홲; 홲; 홲; 홲; 홲; ) HANGUL SYLLABLE HWAEGG
+D673;D673;1112 116B 11AA;D673;1112 116B 11AA; # (홳; 홳; 홳; 홳; 홳; ) HANGUL SYLLABLE HWAEGS
+D674;D674;1112 116B 11AB;D674;1112 116B 11AB; # (홴; 홴; 홴; 홴; 홴; ) HANGUL SYLLABLE HWAEN
+D675;D675;1112 116B 11AC;D675;1112 116B 11AC; # (홵; 홵; 홵; 홵; 홵; ) HANGUL SYLLABLE HWAENJ
+D676;D676;1112 116B 11AD;D676;1112 116B 11AD; # (홶; 홶; 홶; 홶; 홶; ) HANGUL SYLLABLE HWAENH
+D677;D677;1112 116B 11AE;D677;1112 116B 11AE; # (홷; 홷; 홷; 홷; 홷; ) HANGUL SYLLABLE HWAED
+D678;D678;1112 116B 11AF;D678;1112 116B 11AF; # (홸; 홸; 홸; 홸; 홸; ) HANGUL SYLLABLE HWAEL
+D679;D679;1112 116B 11B0;D679;1112 116B 11B0; # (홹; 홹; 홹; 홹; 홹; ) HANGUL SYLLABLE HWAELG
+D67A;D67A;1112 116B 11B1;D67A;1112 116B 11B1; # (홺; 홺; 홺; 홺; 홺; ) HANGUL SYLLABLE HWAELM
+D67B;D67B;1112 116B 11B2;D67B;1112 116B 11B2; # (홻; 홻; 홻; 홻; 홻; ) HANGUL SYLLABLE HWAELB
+D67C;D67C;1112 116B 11B3;D67C;1112 116B 11B3; # (홼; 홼; 홼; 홼; 홼; ) HANGUL SYLLABLE HWAELS
+D67D;D67D;1112 116B 11B4;D67D;1112 116B 11B4; # (홽; 홽; 홽; 홽; 홽; ) HANGUL SYLLABLE HWAELT
+D67E;D67E;1112 116B 11B5;D67E;1112 116B 11B5; # (홾; 홾; 홾; 홾; 홾; ) HANGUL SYLLABLE HWAELP
+D67F;D67F;1112 116B 11B6;D67F;1112 116B 11B6; # (홿; 홿; 홿; 홿; 홿; ) HANGUL SYLLABLE HWAELH
+D680;D680;1112 116B 11B7;D680;1112 116B 11B7; # (횀; 횀; 횀; 횀; 횀; ) HANGUL SYLLABLE HWAEM
+D681;D681;1112 116B 11B8;D681;1112 116B 11B8; # (횁; 횁; 횁; 횁; 횁; ) HANGUL SYLLABLE HWAEB
+D682;D682;1112 116B 11B9;D682;1112 116B 11B9; # (횂; 횂; 횂; 횂; 횂; ) HANGUL SYLLABLE HWAEBS
+D683;D683;1112 116B 11BA;D683;1112 116B 11BA; # (횃; 횃; 횃; 횃; 횃; ) HANGUL SYLLABLE HWAES
+D684;D684;1112 116B 11BB;D684;1112 116B 11BB; # (횄; 횄; 횄; 횄; 횄; ) HANGUL SYLLABLE HWAESS
+D685;D685;1112 116B 11BC;D685;1112 116B 11BC; # (횅; 횅; 횅; 횅; 횅; ) HANGUL SYLLABLE HWAENG
+D686;D686;1112 116B 11BD;D686;1112 116B 11BD; # (횆; 횆; 횆; 횆; 횆; ) HANGUL SYLLABLE HWAEJ
+D687;D687;1112 116B 11BE;D687;1112 116B 11BE; # (횇; 횇; 횇; 횇; 횇; ) HANGUL SYLLABLE HWAEC
+D688;D688;1112 116B 11BF;D688;1112 116B 11BF; # (횈; 횈; 횈; 횈; 횈; ) HANGUL SYLLABLE HWAEK
+D689;D689;1112 116B 11C0;D689;1112 116B 11C0; # (횉; 횉; 횉; 횉; 횉; ) HANGUL SYLLABLE HWAET
+D68A;D68A;1112 116B 11C1;D68A;1112 116B 11C1; # (횊; 횊; 횊; 횊; 횊; ) HANGUL SYLLABLE HWAEP
+D68B;D68B;1112 116B 11C2;D68B;1112 116B 11C2; # (횋; 횋; 횋; 횋; 횋; ) HANGUL SYLLABLE HWAEH
+D68C;D68C;1112 116C;D68C;1112 116C; # (회; 회; 회; 회; 회; ) HANGUL SYLLABLE HOE
+D68D;D68D;1112 116C 11A8;D68D;1112 116C 11A8; # (획; 획; 획; 획; 획; ) HANGUL SYLLABLE HOEG
+D68E;D68E;1112 116C 11A9;D68E;1112 116C 11A9; # (횎; 횎; 횎; 횎; 횎; ) HANGUL SYLLABLE HOEGG
+D68F;D68F;1112 116C 11AA;D68F;1112 116C 11AA; # (횏; 횏; 횏; 횏; 횏; ) HANGUL SYLLABLE HOEGS
+D690;D690;1112 116C 11AB;D690;1112 116C 11AB; # (횐; 횐; 횐; 횐; 횐; ) HANGUL SYLLABLE HOEN
+D691;D691;1112 116C 11AC;D691;1112 116C 11AC; # (횑; 횑; 횑; 횑; 횑; ) HANGUL SYLLABLE HOENJ
+D692;D692;1112 116C 11AD;D692;1112 116C 11AD; # (횒; 횒; 횒; 횒; 횒; ) HANGUL SYLLABLE HOENH
+D693;D693;1112 116C 11AE;D693;1112 116C 11AE; # (횓; 횓; 횓; 횓; 횓; ) HANGUL SYLLABLE HOED
+D694;D694;1112 116C 11AF;D694;1112 116C 11AF; # (횔; 횔; 횔; 횔; 횔; ) HANGUL SYLLABLE HOEL
+D695;D695;1112 116C 11B0;D695;1112 116C 11B0; # (횕; 횕; 횕; 횕; 횕; ) HANGUL SYLLABLE HOELG
+D696;D696;1112 116C 11B1;D696;1112 116C 11B1; # (횖; 횖; 횖; 횖; 횖; ) HANGUL SYLLABLE HOELM
+D697;D697;1112 116C 11B2;D697;1112 116C 11B2; # (횗; 횗; 횗; 횗; 횗; ) HANGUL SYLLABLE HOELB
+D698;D698;1112 116C 11B3;D698;1112 116C 11B3; # (횘; 횘; 횘; 횘; 횘; ) HANGUL SYLLABLE HOELS
+D699;D699;1112 116C 11B4;D699;1112 116C 11B4; # (횙; 횙; 횙; 횙; 횙; ) HANGUL SYLLABLE HOELT
+D69A;D69A;1112 116C 11B5;D69A;1112 116C 11B5; # (횚; 횚; 횚; 횚; 횚; ) HANGUL SYLLABLE HOELP
+D69B;D69B;1112 116C 11B6;D69B;1112 116C 11B6; # (횛; 횛; 횛; 횛; 횛; ) HANGUL SYLLABLE HOELH
+D69C;D69C;1112 116C 11B7;D69C;1112 116C 11B7; # (횜; 횜; 횜; 횜; 횜; ) HANGUL SYLLABLE HOEM
+D69D;D69D;1112 116C 11B8;D69D;1112 116C 11B8; # (횝; 횝; 횝; 횝; 횝; ) HANGUL SYLLABLE HOEB
+D69E;D69E;1112 116C 11B9;D69E;1112 116C 11B9; # (횞; 횞; 횞; 횞; 횞; ) HANGUL SYLLABLE HOEBS
+D69F;D69F;1112 116C 11BA;D69F;1112 116C 11BA; # (횟; 횟; 횟; 횟; 횟; ) HANGUL SYLLABLE HOES
+D6A0;D6A0;1112 116C 11BB;D6A0;1112 116C 11BB; # (횠; 횠; 횠; 횠; 횠; ) HANGUL SYLLABLE HOESS
+D6A1;D6A1;1112 116C 11BC;D6A1;1112 116C 11BC; # (횡; 횡; 횡; 횡; 횡; ) HANGUL SYLLABLE HOENG
+D6A2;D6A2;1112 116C 11BD;D6A2;1112 116C 11BD; # (횢; 횢; 횢; 횢; 횢; ) HANGUL SYLLABLE HOEJ
+D6A3;D6A3;1112 116C 11BE;D6A3;1112 116C 11BE; # (횣; 횣; 횣; 횣; 횣; ) HANGUL SYLLABLE HOEC
+D6A4;D6A4;1112 116C 11BF;D6A4;1112 116C 11BF; # (횤; 횤; 횤; 횤; 횤; ) HANGUL SYLLABLE HOEK
+D6A5;D6A5;1112 116C 11C0;D6A5;1112 116C 11C0; # (횥; 횥; 횥; 횥; 횥; ) HANGUL SYLLABLE HOET
+D6A6;D6A6;1112 116C 11C1;D6A6;1112 116C 11C1; # (횦; 횦; 횦; 횦; 횦; ) HANGUL SYLLABLE HOEP
+D6A7;D6A7;1112 116C 11C2;D6A7;1112 116C 11C2; # (횧; 횧; 횧; 횧; 횧; ) HANGUL SYLLABLE HOEH
+D6A8;D6A8;1112 116D;D6A8;1112 116D; # (효; 효; 효; 효; 효; ) HANGUL SYLLABLE HYO
+D6A9;D6A9;1112 116D 11A8;D6A9;1112 116D 11A8; # (횩; 횩; 횩; 횩; 횩; ) HANGUL SYLLABLE HYOG
+D6AA;D6AA;1112 116D 11A9;D6AA;1112 116D 11A9; # (횪; 횪; 횪; 횪; 횪; ) HANGUL SYLLABLE HYOGG
+D6AB;D6AB;1112 116D 11AA;D6AB;1112 116D 11AA; # (횫; 횫; 횫; 횫; 횫; ) HANGUL SYLLABLE HYOGS
+D6AC;D6AC;1112 116D 11AB;D6AC;1112 116D 11AB; # (횬; 횬; 횬; 횬; 횬; ) HANGUL SYLLABLE HYON
+D6AD;D6AD;1112 116D 11AC;D6AD;1112 116D 11AC; # (횭; 횭; 횭; 횭; 횭; ) HANGUL SYLLABLE HYONJ
+D6AE;D6AE;1112 116D 11AD;D6AE;1112 116D 11AD; # (횮; 횮; 횮; 횮; 횮; ) HANGUL SYLLABLE HYONH
+D6AF;D6AF;1112 116D 11AE;D6AF;1112 116D 11AE; # (횯; 횯; 횯; 횯; 횯; ) HANGUL SYLLABLE HYOD
+D6B0;D6B0;1112 116D 11AF;D6B0;1112 116D 11AF; # (횰; 횰; 횰; 횰; 횰; ) HANGUL SYLLABLE HYOL
+D6B1;D6B1;1112 116D 11B0;D6B1;1112 116D 11B0; # (횱; 횱; 횱; 횱; 횱; ) HANGUL SYLLABLE HYOLG
+D6B2;D6B2;1112 116D 11B1;D6B2;1112 116D 11B1; # (횲; 횲; 횲; 횲; 횲; ) HANGUL SYLLABLE HYOLM
+D6B3;D6B3;1112 116D 11B2;D6B3;1112 116D 11B2; # (횳; 횳; 횳; 횳; 횳; ) HANGUL SYLLABLE HYOLB
+D6B4;D6B4;1112 116D 11B3;D6B4;1112 116D 11B3; # (횴; 횴; 횴; 횴; 횴; ) HANGUL SYLLABLE HYOLS
+D6B5;D6B5;1112 116D 11B4;D6B5;1112 116D 11B4; # (횵; 횵; 횵; 횵; 횵; ) HANGUL SYLLABLE HYOLT
+D6B6;D6B6;1112 116D 11B5;D6B6;1112 116D 11B5; # (횶; 횶; 횶; 횶; 횶; ) HANGUL SYLLABLE HYOLP
+D6B7;D6B7;1112 116D 11B6;D6B7;1112 116D 11B6; # (횷; 횷; 횷; 횷; 횷; ) HANGUL SYLLABLE HYOLH
+D6B8;D6B8;1112 116D 11B7;D6B8;1112 116D 11B7; # (횸; 횸; 횸; 횸; 횸; ) HANGUL SYLLABLE HYOM
+D6B9;D6B9;1112 116D 11B8;D6B9;1112 116D 11B8; # (횹; 횹; 횹; 횹; 횹; ) HANGUL SYLLABLE HYOB
+D6BA;D6BA;1112 116D 11B9;D6BA;1112 116D 11B9; # (횺; 횺; 횺; 횺; 횺; ) HANGUL SYLLABLE HYOBS
+D6BB;D6BB;1112 116D 11BA;D6BB;1112 116D 11BA; # (횻; 횻; 횻; 횻; 횻; ) HANGUL SYLLABLE HYOS
+D6BC;D6BC;1112 116D 11BB;D6BC;1112 116D 11BB; # (횼; 횼; 횼; 횼; 횼; ) HANGUL SYLLABLE HYOSS
+D6BD;D6BD;1112 116D 11BC;D6BD;1112 116D 11BC; # (횽; 횽; 횽; 횽; 횽; ) HANGUL SYLLABLE HYONG
+D6BE;D6BE;1112 116D 11BD;D6BE;1112 116D 11BD; # (횾; 횾; 횾; 횾; 횾; ) HANGUL SYLLABLE HYOJ
+D6BF;D6BF;1112 116D 11BE;D6BF;1112 116D 11BE; # (횿; 횿; 횿; 횿; 횿; ) HANGUL SYLLABLE HYOC
+D6C0;D6C0;1112 116D 11BF;D6C0;1112 116D 11BF; # (훀; 훀; 훀; 훀; 훀; ) HANGUL SYLLABLE HYOK
+D6C1;D6C1;1112 116D 11C0;D6C1;1112 116D 11C0; # (훁; 훁; 훁; 훁; 훁; ) HANGUL SYLLABLE HYOT
+D6C2;D6C2;1112 116D 11C1;D6C2;1112 116D 11C1; # (훂; 훂; 훂; 훂; 훂; ) HANGUL SYLLABLE HYOP
+D6C3;D6C3;1112 116D 11C2;D6C3;1112 116D 11C2; # (훃; 훃; 훃; 훃; 훃; ) HANGUL SYLLABLE HYOH
+D6C4;D6C4;1112 116E;D6C4;1112 116E; # (후; 후; 후; 후; 후; ) HANGUL SYLLABLE HU
+D6C5;D6C5;1112 116E 11A8;D6C5;1112 116E 11A8; # (훅; 훅; 훅; 훅; 훅; ) HANGUL SYLLABLE HUG
+D6C6;D6C6;1112 116E 11A9;D6C6;1112 116E 11A9; # (훆; 훆; 훆; 훆; 훆; ) HANGUL SYLLABLE HUGG
+D6C7;D6C7;1112 116E 11AA;D6C7;1112 116E 11AA; # (훇; 훇; 훇; 훇; 훇; ) HANGUL SYLLABLE HUGS
+D6C8;D6C8;1112 116E 11AB;D6C8;1112 116E 11AB; # (훈; 훈; 훈; 훈; 훈; ) HANGUL SYLLABLE HUN
+D6C9;D6C9;1112 116E 11AC;D6C9;1112 116E 11AC; # (훉; 훉; 훉; 훉; 훉; ) HANGUL SYLLABLE HUNJ
+D6CA;D6CA;1112 116E 11AD;D6CA;1112 116E 11AD; # (훊; 훊; 훊; 훊; 훊; ) HANGUL SYLLABLE HUNH
+D6CB;D6CB;1112 116E 11AE;D6CB;1112 116E 11AE; # (훋; 훋; 훋; 훋; 훋; ) HANGUL SYLLABLE HUD
+D6CC;D6CC;1112 116E 11AF;D6CC;1112 116E 11AF; # (훌; 훌; 훌; 훌; 훌; ) HANGUL SYLLABLE HUL
+D6CD;D6CD;1112 116E 11B0;D6CD;1112 116E 11B0; # (훍; 훍; 훍; 훍; 훍; ) HANGUL SYLLABLE HULG
+D6CE;D6CE;1112 116E 11B1;D6CE;1112 116E 11B1; # (훎; 훎; 훎; 훎; 훎; ) HANGUL SYLLABLE HULM
+D6CF;D6CF;1112 116E 11B2;D6CF;1112 116E 11B2; # (훏; 훏; 훏; 훏; 훏; ) HANGUL SYLLABLE HULB
+D6D0;D6D0;1112 116E 11B3;D6D0;1112 116E 11B3; # (훐; 훐; 훐; 훐; 훐; ) HANGUL SYLLABLE HULS
+D6D1;D6D1;1112 116E 11B4;D6D1;1112 116E 11B4; # (훑; 훑; 훑; 훑; 훑; ) HANGUL SYLLABLE HULT
+D6D2;D6D2;1112 116E 11B5;D6D2;1112 116E 11B5; # (훒; 훒; 훒; 훒; 훒; ) HANGUL SYLLABLE HULP
+D6D3;D6D3;1112 116E 11B6;D6D3;1112 116E 11B6; # (훓; 훓; 훓; 훓; 훓; ) HANGUL SYLLABLE HULH
+D6D4;D6D4;1112 116E 11B7;D6D4;1112 116E 11B7; # (훔; 훔; 훔; 훔; 훔; ) HANGUL SYLLABLE HUM
+D6D5;D6D5;1112 116E 11B8;D6D5;1112 116E 11B8; # (훕; 훕; 훕; 훕; 훕; ) HANGUL SYLLABLE HUB
+D6D6;D6D6;1112 116E 11B9;D6D6;1112 116E 11B9; # (훖; 훖; 훖; 훖; 훖; ) HANGUL SYLLABLE HUBS
+D6D7;D6D7;1112 116E 11BA;D6D7;1112 116E 11BA; # (훗; 훗; 훗; 훗; 훗; ) HANGUL SYLLABLE HUS
+D6D8;D6D8;1112 116E 11BB;D6D8;1112 116E 11BB; # (훘; 훘; 훘; 훘; 훘; ) HANGUL SYLLABLE HUSS
+D6D9;D6D9;1112 116E 11BC;D6D9;1112 116E 11BC; # (훙; 훙; 훙; 훙; 훙; ) HANGUL SYLLABLE HUNG
+D6DA;D6DA;1112 116E 11BD;D6DA;1112 116E 11BD; # (훚; 훚; 훚; 훚; 훚; ) HANGUL SYLLABLE HUJ
+D6DB;D6DB;1112 116E 11BE;D6DB;1112 116E 11BE; # (훛; 훛; 훛; 훛; 훛; ) HANGUL SYLLABLE HUC
+D6DC;D6DC;1112 116E 11BF;D6DC;1112 116E 11BF; # (훜; 훜; 훜; 훜; 훜; ) HANGUL SYLLABLE HUK
+D6DD;D6DD;1112 116E 11C0;D6DD;1112 116E 11C0; # (훝; 훝; 훝; 훝; 훝; ) HANGUL SYLLABLE HUT
+D6DE;D6DE;1112 116E 11C1;D6DE;1112 116E 11C1; # (훞; 훞; 훞; 훞; 훞; ) HANGUL SYLLABLE HUP
+D6DF;D6DF;1112 116E 11C2;D6DF;1112 116E 11C2; # (훟; 훟; 훟; 훟; 훟; ) HANGUL SYLLABLE HUH
+D6E0;D6E0;1112 116F;D6E0;1112 116F; # (훠; 훠; 훠; 훠; 훠; ) HANGUL SYLLABLE HWEO
+D6E1;D6E1;1112 116F 11A8;D6E1;1112 116F 11A8; # (훡; 훡; 훡; 훡; 훡; ) HANGUL SYLLABLE HWEOG
+D6E2;D6E2;1112 116F 11A9;D6E2;1112 116F 11A9; # (훢; 훢; 훢; 훢; 훢; ) HANGUL SYLLABLE HWEOGG
+D6E3;D6E3;1112 116F 11AA;D6E3;1112 116F 11AA; # (훣; 훣; 훣; 훣; 훣; ) HANGUL SYLLABLE HWEOGS
+D6E4;D6E4;1112 116F 11AB;D6E4;1112 116F 11AB; # (훤; 훤; 훤; 훤; 훤; ) HANGUL SYLLABLE HWEON
+D6E5;D6E5;1112 116F 11AC;D6E5;1112 116F 11AC; # (훥; 훥; 훥; 훥; 훥; ) HANGUL SYLLABLE HWEONJ
+D6E6;D6E6;1112 116F 11AD;D6E6;1112 116F 11AD; # (훦; 훦; 훦; 훦; 훦; ) HANGUL SYLLABLE HWEONH
+D6E7;D6E7;1112 116F 11AE;D6E7;1112 116F 11AE; # (훧; 훧; 훧; 훧; 훧; ) HANGUL SYLLABLE HWEOD
+D6E8;D6E8;1112 116F 11AF;D6E8;1112 116F 11AF; # (훨; 훨; 훨; 훨; 훨; ) HANGUL SYLLABLE HWEOL
+D6E9;D6E9;1112 116F 11B0;D6E9;1112 116F 11B0; # (훩; 훩; 훩; 훩; 훩; ) HANGUL SYLLABLE HWEOLG
+D6EA;D6EA;1112 116F 11B1;D6EA;1112 116F 11B1; # (훪; 훪; 훪; 훪; 훪; ) HANGUL SYLLABLE HWEOLM
+D6EB;D6EB;1112 116F 11B2;D6EB;1112 116F 11B2; # (훫; 훫; 훫; 훫; 훫; ) HANGUL SYLLABLE HWEOLB
+D6EC;D6EC;1112 116F 11B3;D6EC;1112 116F 11B3; # (훬; 훬; 훬; 훬; 훬; ) HANGUL SYLLABLE HWEOLS
+D6ED;D6ED;1112 116F 11B4;D6ED;1112 116F 11B4; # (훭; 훭; 훭; 훭; 훭; ) HANGUL SYLLABLE HWEOLT
+D6EE;D6EE;1112 116F 11B5;D6EE;1112 116F 11B5; # (훮; 훮; 훮; 훮; 훮; ) HANGUL SYLLABLE HWEOLP
+D6EF;D6EF;1112 116F 11B6;D6EF;1112 116F 11B6; # (훯; 훯; 훯; 훯; 훯; ) HANGUL SYLLABLE HWEOLH
+D6F0;D6F0;1112 116F 11B7;D6F0;1112 116F 11B7; # (훰; 훰; 훰; 훰; 훰; ) HANGUL SYLLABLE HWEOM
+D6F1;D6F1;1112 116F 11B8;D6F1;1112 116F 11B8; # (훱; 훱; 훱; 훱; 훱; ) HANGUL SYLLABLE HWEOB
+D6F2;D6F2;1112 116F 11B9;D6F2;1112 116F 11B9; # (훲; 훲; 훲; 훲; 훲; ) HANGUL SYLLABLE HWEOBS
+D6F3;D6F3;1112 116F 11BA;D6F3;1112 116F 11BA; # (훳; 훳; 훳; 훳; 훳; ) HANGUL SYLLABLE HWEOS
+D6F4;D6F4;1112 116F 11BB;D6F4;1112 116F 11BB; # (훴; 훴; 훴; 훴; 훴; ) HANGUL SYLLABLE HWEOSS
+D6F5;D6F5;1112 116F 11BC;D6F5;1112 116F 11BC; # (훵; 훵; 훵; 훵; 훵; ) HANGUL SYLLABLE HWEONG
+D6F6;D6F6;1112 116F 11BD;D6F6;1112 116F 11BD; # (훶; 훶; 훶; 훶; 훶; ) HANGUL SYLLABLE HWEOJ
+D6F7;D6F7;1112 116F 11BE;D6F7;1112 116F 11BE; # (훷; 훷; 훷; 훷; 훷; ) HANGUL SYLLABLE HWEOC
+D6F8;D6F8;1112 116F 11BF;D6F8;1112 116F 11BF; # (훸; 훸; 훸; 훸; 훸; ) HANGUL SYLLABLE HWEOK
+D6F9;D6F9;1112 116F 11C0;D6F9;1112 116F 11C0; # (훹; 훹; 훹; 훹; 훹; ) HANGUL SYLLABLE HWEOT
+D6FA;D6FA;1112 116F 11C1;D6FA;1112 116F 11C1; # (훺; 훺; 훺; 훺; 훺; ) HANGUL SYLLABLE HWEOP
+D6FB;D6FB;1112 116F 11C2;D6FB;1112 116F 11C2; # (훻; 훻; 훻; 훻; 훻; ) HANGUL SYLLABLE HWEOH
+D6FC;D6FC;1112 1170;D6FC;1112 1170; # (훼; 훼; 훼; 훼; 훼; ) HANGUL SYLLABLE HWE
+D6FD;D6FD;1112 1170 11A8;D6FD;1112 1170 11A8; # (훽; 훽; 훽; 훽; 훽; ) HANGUL SYLLABLE HWEG
+D6FE;D6FE;1112 1170 11A9;D6FE;1112 1170 11A9; # (훾; 훾; 훾; 훾; 훾; ) HANGUL SYLLABLE HWEGG
+D6FF;D6FF;1112 1170 11AA;D6FF;1112 1170 11AA; # (훿; 훿; 훿; 훿; 훿; ) HANGUL SYLLABLE HWEGS
+D700;D700;1112 1170 11AB;D700;1112 1170 11AB; # (휀; 휀; 휀; 휀; 휀; ) HANGUL SYLLABLE HWEN
+D701;D701;1112 1170 11AC;D701;1112 1170 11AC; # (휁; 휁; 휁; 휁; 휁; ) HANGUL SYLLABLE HWENJ
+D702;D702;1112 1170 11AD;D702;1112 1170 11AD; # (휂; 휂; 휂; 휂; 휂; ) HANGUL SYLLABLE HWENH
+D703;D703;1112 1170 11AE;D703;1112 1170 11AE; # (휃; 휃; 휃; 휃; 휃; ) HANGUL SYLLABLE HWED
+D704;D704;1112 1170 11AF;D704;1112 1170 11AF; # (휄; 휄; 휄; 휄; 휄; ) HANGUL SYLLABLE HWEL
+D705;D705;1112 1170 11B0;D705;1112 1170 11B0; # (휅; 휅; 휅; 휅; 휅; ) HANGUL SYLLABLE HWELG
+D706;D706;1112 1170 11B1;D706;1112 1170 11B1; # (휆; 휆; 휆; 휆; 휆; ) HANGUL SYLLABLE HWELM
+D707;D707;1112 1170 11B2;D707;1112 1170 11B2; # (휇; 휇; 휇; 휇; 휇; ) HANGUL SYLLABLE HWELB
+D708;D708;1112 1170 11B3;D708;1112 1170 11B3; # (휈; 휈; 휈; 휈; 휈; ) HANGUL SYLLABLE HWELS
+D709;D709;1112 1170 11B4;D709;1112 1170 11B4; # (휉; 휉; 휉; 휉; 휉; ) HANGUL SYLLABLE HWELT
+D70A;D70A;1112 1170 11B5;D70A;1112 1170 11B5; # (휊; 휊; 휊; 휊; 휊; ) HANGUL SYLLABLE HWELP
+D70B;D70B;1112 1170 11B6;D70B;1112 1170 11B6; # (휋; 휋; 휋; 휋; 휋; ) HANGUL SYLLABLE HWELH
+D70C;D70C;1112 1170 11B7;D70C;1112 1170 11B7; # (휌; 휌; 휌; 휌; 휌; ) HANGUL SYLLABLE HWEM
+D70D;D70D;1112 1170 11B8;D70D;1112 1170 11B8; # (휍; 휍; 휍; 휍; 휍; ) HANGUL SYLLABLE HWEB
+D70E;D70E;1112 1170 11B9;D70E;1112 1170 11B9; # (휎; 휎; 휎; 휎; 휎; ) HANGUL SYLLABLE HWEBS
+D70F;D70F;1112 1170 11BA;D70F;1112 1170 11BA; # (휏; 휏; 휏; 휏; 휏; ) HANGUL SYLLABLE HWES
+D710;D710;1112 1170 11BB;D710;1112 1170 11BB; # (휐; 휐; 휐; 휐; 휐; ) HANGUL SYLLABLE HWESS
+D711;D711;1112 1170 11BC;D711;1112 1170 11BC; # (휑; 휑; 휑; 휑; 휑; ) HANGUL SYLLABLE HWENG
+D712;D712;1112 1170 11BD;D712;1112 1170 11BD; # (휒; 휒; 휒; 휒; 휒; ) HANGUL SYLLABLE HWEJ
+D713;D713;1112 1170 11BE;D713;1112 1170 11BE; # (휓; 휓; 휓; 휓; 휓; ) HANGUL SYLLABLE HWEC
+D714;D714;1112 1170 11BF;D714;1112 1170 11BF; # (휔; 휔; 휔; 휔; 휔; ) HANGUL SYLLABLE HWEK
+D715;D715;1112 1170 11C0;D715;1112 1170 11C0; # (휕; 휕; 휕; 휕; 휕; ) HANGUL SYLLABLE HWET
+D716;D716;1112 1170 11C1;D716;1112 1170 11C1; # (휖; 휖; 휖; 휖; 휖; ) HANGUL SYLLABLE HWEP
+D717;D717;1112 1170 11C2;D717;1112 1170 11C2; # (휗; 휗; 휗; 휗; 휗; ) HANGUL SYLLABLE HWEH
+D718;D718;1112 1171;D718;1112 1171; # (휘; 휘; 휘; 휘; 휘; ) HANGUL SYLLABLE HWI
+D719;D719;1112 1171 11A8;D719;1112 1171 11A8; # (휙; 휙; 휙; 휙; 휙; ) HANGUL SYLLABLE HWIG
+D71A;D71A;1112 1171 11A9;D71A;1112 1171 11A9; # (휚; 휚; 휚; 휚; 휚; ) HANGUL SYLLABLE HWIGG
+D71B;D71B;1112 1171 11AA;D71B;1112 1171 11AA; # (휛; 휛; 휛; 휛; 휛; ) HANGUL SYLLABLE HWIGS
+D71C;D71C;1112 1171 11AB;D71C;1112 1171 11AB; # (휜; 휜; 휜; 휜; 휜; ) HANGUL SYLLABLE HWIN
+D71D;D71D;1112 1171 11AC;D71D;1112 1171 11AC; # (휝; 휝; 휝; 휝; 휝; ) HANGUL SYLLABLE HWINJ
+D71E;D71E;1112 1171 11AD;D71E;1112 1171 11AD; # (휞; 휞; 휞; 휞; 휞; ) HANGUL SYLLABLE HWINH
+D71F;D71F;1112 1171 11AE;D71F;1112 1171 11AE; # (휟; 휟; 휟; 휟; 휟; ) HANGUL SYLLABLE HWID
+D720;D720;1112 1171 11AF;D720;1112 1171 11AF; # (휠; 휠; 휠; 휠; 휠; ) HANGUL SYLLABLE HWIL
+D721;D721;1112 1171 11B0;D721;1112 1171 11B0; # (휡; 휡; 휡; 휡; 휡; ) HANGUL SYLLABLE HWILG
+D722;D722;1112 1171 11B1;D722;1112 1171 11B1; # (휢; 휢; 휢; 휢; 휢; ) HANGUL SYLLABLE HWILM
+D723;D723;1112 1171 11B2;D723;1112 1171 11B2; # (휣; 휣; 휣; 휣; 휣; ) HANGUL SYLLABLE HWILB
+D724;D724;1112 1171 11B3;D724;1112 1171 11B3; # (휤; 휤; 휤; 휤; 휤; ) HANGUL SYLLABLE HWILS
+D725;D725;1112 1171 11B4;D725;1112 1171 11B4; # (휥; 휥; 휥; 휥; 휥; ) HANGUL SYLLABLE HWILT
+D726;D726;1112 1171 11B5;D726;1112 1171 11B5; # (휦; 휦; 휦; 휦; 휦; ) HANGUL SYLLABLE HWILP
+D727;D727;1112 1171 11B6;D727;1112 1171 11B6; # (휧; 휧; 휧; 휧; 휧; ) HANGUL SYLLABLE HWILH
+D728;D728;1112 1171 11B7;D728;1112 1171 11B7; # (휨; 휨; 휨; 휨; 휨; ) HANGUL SYLLABLE HWIM
+D729;D729;1112 1171 11B8;D729;1112 1171 11B8; # (휩; 휩; 휩; 휩; 휩; ) HANGUL SYLLABLE HWIB
+D72A;D72A;1112 1171 11B9;D72A;1112 1171 11B9; # (휪; 휪; 휪; 휪; 휪; ) HANGUL SYLLABLE HWIBS
+D72B;D72B;1112 1171 11BA;D72B;1112 1171 11BA; # (휫; 휫; 휫; 휫; 휫; ) HANGUL SYLLABLE HWIS
+D72C;D72C;1112 1171 11BB;D72C;1112 1171 11BB; # (휬; 휬; 휬; 휬; 휬; ) HANGUL SYLLABLE HWISS
+D72D;D72D;1112 1171 11BC;D72D;1112 1171 11BC; # (휭; 휭; 휭; 휭; 휭; ) HANGUL SYLLABLE HWING
+D72E;D72E;1112 1171 11BD;D72E;1112 1171 11BD; # (휮; 휮; 휮; 휮; 휮; ) HANGUL SYLLABLE HWIJ
+D72F;D72F;1112 1171 11BE;D72F;1112 1171 11BE; # (휯; 휯; 휯; 휯; 휯; ) HANGUL SYLLABLE HWIC
+D730;D730;1112 1171 11BF;D730;1112 1171 11BF; # (휰; 휰; 휰; 휰; 휰; ) HANGUL SYLLABLE HWIK
+D731;D731;1112 1171 11C0;D731;1112 1171 11C0; # (휱; 휱; 휱; 휱; 휱; ) HANGUL SYLLABLE HWIT
+D732;D732;1112 1171 11C1;D732;1112 1171 11C1; # (휲; 휲; 휲; 휲; 휲; ) HANGUL SYLLABLE HWIP
+D733;D733;1112 1171 11C2;D733;1112 1171 11C2; # (휳; 휳; 휳; 휳; 휳; ) HANGUL SYLLABLE HWIH
+D734;D734;1112 1172;D734;1112 1172; # (휴; 휴; 휴; 휴; 휴; ) HANGUL SYLLABLE HYU
+D735;D735;1112 1172 11A8;D735;1112 1172 11A8; # (휵; 휵; 휵; 휵; 휵; ) HANGUL SYLLABLE HYUG
+D736;D736;1112 1172 11A9;D736;1112 1172 11A9; # (휶; 휶; 휶; 휶; 휶; ) HANGUL SYLLABLE HYUGG
+D737;D737;1112 1172 11AA;D737;1112 1172 11AA; # (휷; 휷; 휷; 휷; 휷; ) HANGUL SYLLABLE HYUGS
+D738;D738;1112 1172 11AB;D738;1112 1172 11AB; # (휸; 휸; 휸; 휸; 휸; ) HANGUL SYLLABLE HYUN
+D739;D739;1112 1172 11AC;D739;1112 1172 11AC; # (휹; 휹; 휹; 휹; 휹; ) HANGUL SYLLABLE HYUNJ
+D73A;D73A;1112 1172 11AD;D73A;1112 1172 11AD; # (휺; 휺; 휺; 휺; 휺; ) HANGUL SYLLABLE HYUNH
+D73B;D73B;1112 1172 11AE;D73B;1112 1172 11AE; # (휻; 휻; 휻; 휻; 휻; ) HANGUL SYLLABLE HYUD
+D73C;D73C;1112 1172 11AF;D73C;1112 1172 11AF; # (휼; 휼; 휼; 휼; 휼; ) HANGUL SYLLABLE HYUL
+D73D;D73D;1112 1172 11B0;D73D;1112 1172 11B0; # (휽; 휽; 휽; 휽; 휽; ) HANGUL SYLLABLE HYULG
+D73E;D73E;1112 1172 11B1;D73E;1112 1172 11B1; # (휾; 휾; 휾; 휾; 휾; ) HANGUL SYLLABLE HYULM
+D73F;D73F;1112 1172 11B2;D73F;1112 1172 11B2; # (휿; 휿; 휿; 휿; 휿; ) HANGUL SYLLABLE HYULB
+D740;D740;1112 1172 11B3;D740;1112 1172 11B3; # (흀; 흀; 흀; 흀; 흀; ) HANGUL SYLLABLE HYULS
+D741;D741;1112 1172 11B4;D741;1112 1172 11B4; # (흁; 흁; 흁; 흁; 흁; ) HANGUL SYLLABLE HYULT
+D742;D742;1112 1172 11B5;D742;1112 1172 11B5; # (흂; 흂; 흂; 흂; 흂; ) HANGUL SYLLABLE HYULP
+D743;D743;1112 1172 11B6;D743;1112 1172 11B6; # (흃; 흃; 흃; 흃; 흃; ) HANGUL SYLLABLE HYULH
+D744;D744;1112 1172 11B7;D744;1112 1172 11B7; # (흄; 흄; 흄; 흄; 흄; ) HANGUL SYLLABLE HYUM
+D745;D745;1112 1172 11B8;D745;1112 1172 11B8; # (흅; 흅; 흅; 흅; 흅; ) HANGUL SYLLABLE HYUB
+D746;D746;1112 1172 11B9;D746;1112 1172 11B9; # (흆; 흆; 흆; 흆; 흆; ) HANGUL SYLLABLE HYUBS
+D747;D747;1112 1172 11BA;D747;1112 1172 11BA; # (흇; 흇; 흇; 흇; 흇; ) HANGUL SYLLABLE HYUS
+D748;D748;1112 1172 11BB;D748;1112 1172 11BB; # (흈; 흈; 흈; 흈; 흈; ) HANGUL SYLLABLE HYUSS
+D749;D749;1112 1172 11BC;D749;1112 1172 11BC; # (흉; 흉; 흉; 흉; 흉; ) HANGUL SYLLABLE HYUNG
+D74A;D74A;1112 1172 11BD;D74A;1112 1172 11BD; # (흊; 흊; 흊; 흊; 흊; ) HANGUL SYLLABLE HYUJ
+D74B;D74B;1112 1172 11BE;D74B;1112 1172 11BE; # (흋; 흋; 흋; 흋; 흋; ) HANGUL SYLLABLE HYUC
+D74C;D74C;1112 1172 11BF;D74C;1112 1172 11BF; # (흌; 흌; 흌; 흌; 흌; ) HANGUL SYLLABLE HYUK
+D74D;D74D;1112 1172 11C0;D74D;1112 1172 11C0; # (흍; 흍; 흍; 흍; 흍; ) HANGUL SYLLABLE HYUT
+D74E;D74E;1112 1172 11C1;D74E;1112 1172 11C1; # (흎; 흎; 흎; 흎; 흎; ) HANGUL SYLLABLE HYUP
+D74F;D74F;1112 1172 11C2;D74F;1112 1172 11C2; # (흏; 흏; 흏; 흏; 흏; ) HANGUL SYLLABLE HYUH
+D750;D750;1112 1173;D750;1112 1173; # (흐; 흐; 흐; 흐; 흐; ) HANGUL SYLLABLE HEU
+D751;D751;1112 1173 11A8;D751;1112 1173 11A8; # (흑; 흑; 흑; 흑; 흑; ) HANGUL SYLLABLE HEUG
+D752;D752;1112 1173 11A9;D752;1112 1173 11A9; # (흒; 흒; 흒; 흒; 흒; ) HANGUL SYLLABLE HEUGG
+D753;D753;1112 1173 11AA;D753;1112 1173 11AA; # (흓; 흓; 흓; 흓; 흓; ) HANGUL SYLLABLE HEUGS
+D754;D754;1112 1173 11AB;D754;1112 1173 11AB; # (흔; 흔; 흔; 흔; 흔; ) HANGUL SYLLABLE HEUN
+D755;D755;1112 1173 11AC;D755;1112 1173 11AC; # (흕; 흕; 흕; 흕; 흕; ) HANGUL SYLLABLE HEUNJ
+D756;D756;1112 1173 11AD;D756;1112 1173 11AD; # (흖; 흖; 흖; 흖; 흖; ) HANGUL SYLLABLE HEUNH
+D757;D757;1112 1173 11AE;D757;1112 1173 11AE; # (흗; 흗; 흗; 흗; 흗; ) HANGUL SYLLABLE HEUD
+D758;D758;1112 1173 11AF;D758;1112 1173 11AF; # (흘; 흘; 흘; 흘; 흘; ) HANGUL SYLLABLE HEUL
+D759;D759;1112 1173 11B0;D759;1112 1173 11B0; # (흙; 흙; 흙; 흙; 흙; ) HANGUL SYLLABLE HEULG
+D75A;D75A;1112 1173 11B1;D75A;1112 1173 11B1; # (흚; 흚; 흚; 흚; 흚; ) HANGUL SYLLABLE HEULM
+D75B;D75B;1112 1173 11B2;D75B;1112 1173 11B2; # (흛; 흛; 흛; 흛; 흛; ) HANGUL SYLLABLE HEULB
+D75C;D75C;1112 1173 11B3;D75C;1112 1173 11B3; # (흜; 흜; 흜; 흜; 흜; ) HANGUL SYLLABLE HEULS
+D75D;D75D;1112 1173 11B4;D75D;1112 1173 11B4; # (흝; 흝; 흝; 흝; 흝; ) HANGUL SYLLABLE HEULT
+D75E;D75E;1112 1173 11B5;D75E;1112 1173 11B5; # (흞; 흞; 흞; 흞; 흞; ) HANGUL SYLLABLE HEULP
+D75F;D75F;1112 1173 11B6;D75F;1112 1173 11B6; # (흟; 흟; 흟; 흟; 흟; ) HANGUL SYLLABLE HEULH
+D760;D760;1112 1173 11B7;D760;1112 1173 11B7; # (흠; 흠; 흠; 흠; 흠; ) HANGUL SYLLABLE HEUM
+D761;D761;1112 1173 11B8;D761;1112 1173 11B8; # (흡; 흡; 흡; 흡; 흡; ) HANGUL SYLLABLE HEUB
+D762;D762;1112 1173 11B9;D762;1112 1173 11B9; # (흢; 흢; 흢; 흢; 흢; ) HANGUL SYLLABLE HEUBS
+D763;D763;1112 1173 11BA;D763;1112 1173 11BA; # (흣; 흣; 흣; 흣; 흣; ) HANGUL SYLLABLE HEUS
+D764;D764;1112 1173 11BB;D764;1112 1173 11BB; # (흤; 흤; 흤; 흤; 흤; ) HANGUL SYLLABLE HEUSS
+D765;D765;1112 1173 11BC;D765;1112 1173 11BC; # (흥; 흥; 흥; 흥; 흥; ) HANGUL SYLLABLE HEUNG
+D766;D766;1112 1173 11BD;D766;1112 1173 11BD; # (흦; 흦; 흦; 흦; 흦; ) HANGUL SYLLABLE HEUJ
+D767;D767;1112 1173 11BE;D767;1112 1173 11BE; # (흧; 흧; 흧; 흧; 흧; ) HANGUL SYLLABLE HEUC
+D768;D768;1112 1173 11BF;D768;1112 1173 11BF; # (흨; 흨; 흨; 흨; 흨; ) HANGUL SYLLABLE HEUK
+D769;D769;1112 1173 11C0;D769;1112 1173 11C0; # (흩; 흩; 흩; 흩; 흩; ) HANGUL SYLLABLE HEUT
+D76A;D76A;1112 1173 11C1;D76A;1112 1173 11C1; # (흪; 흪; 흪; 흪; 흪; ) HANGUL SYLLABLE HEUP
+D76B;D76B;1112 1173 11C2;D76B;1112 1173 11C2; # (흫; 흫; 흫; 흫; 흫; ) HANGUL SYLLABLE HEUH
+D76C;D76C;1112 1174;D76C;1112 1174; # (희; 희; 희; 희; 희; ) HANGUL SYLLABLE HYI
+D76D;D76D;1112 1174 11A8;D76D;1112 1174 11A8; # (흭; 흭; 흭; 흭; 흭; ) HANGUL SYLLABLE HYIG
+D76E;D76E;1112 1174 11A9;D76E;1112 1174 11A9; # (흮; 흮; 흮; 흮; 흮; ) HANGUL SYLLABLE HYIGG
+D76F;D76F;1112 1174 11AA;D76F;1112 1174 11AA; # (흯; 흯; 흯; 흯; 흯; ) HANGUL SYLLABLE HYIGS
+D770;D770;1112 1174 11AB;D770;1112 1174 11AB; # (흰; 흰; 흰; 흰; 흰; ) HANGUL SYLLABLE HYIN
+D771;D771;1112 1174 11AC;D771;1112 1174 11AC; # (흱; 흱; 흱; 흱; 흱; ) HANGUL SYLLABLE HYINJ
+D772;D772;1112 1174 11AD;D772;1112 1174 11AD; # (흲; 흲; 흲; 흲; 흲; ) HANGUL SYLLABLE HYINH
+D773;D773;1112 1174 11AE;D773;1112 1174 11AE; # (흳; 흳; 흳; 흳; 흳; ) HANGUL SYLLABLE HYID
+D774;D774;1112 1174 11AF;D774;1112 1174 11AF; # (흴; 흴; 흴; 흴; 흴; ) HANGUL SYLLABLE HYIL
+D775;D775;1112 1174 11B0;D775;1112 1174 11B0; # (흵; 흵; 흵; 흵; 흵; ) HANGUL SYLLABLE HYILG
+D776;D776;1112 1174 11B1;D776;1112 1174 11B1; # (흶; 흶; 흶; 흶; 흶; ) HANGUL SYLLABLE HYILM
+D777;D777;1112 1174 11B2;D777;1112 1174 11B2; # (흷; 흷; 흷; 흷; 흷; ) HANGUL SYLLABLE HYILB
+D778;D778;1112 1174 11B3;D778;1112 1174 11B3; # (흸; 흸; 흸; 흸; 흸; ) HANGUL SYLLABLE HYILS
+D779;D779;1112 1174 11B4;D779;1112 1174 11B4; # (흹; 흹; 흹; 흹; 흹; ) HANGUL SYLLABLE HYILT
+D77A;D77A;1112 1174 11B5;D77A;1112 1174 11B5; # (흺; 흺; 흺; 흺; 흺; ) HANGUL SYLLABLE HYILP
+D77B;D77B;1112 1174 11B6;D77B;1112 1174 11B6; # (흻; 흻; 흻; 흻; 흻; ) HANGUL SYLLABLE HYILH
+D77C;D77C;1112 1174 11B7;D77C;1112 1174 11B7; # (흼; 흼; 흼; 흼; 흼; ) HANGUL SYLLABLE HYIM
+D77D;D77D;1112 1174 11B8;D77D;1112 1174 11B8; # (흽; 흽; 흽; 흽; 흽; ) HANGUL SYLLABLE HYIB
+D77E;D77E;1112 1174 11B9;D77E;1112 1174 11B9; # (흾; 흾; 흾; 흾; 흾; ) HANGUL SYLLABLE HYIBS
+D77F;D77F;1112 1174 11BA;D77F;1112 1174 11BA; # (흿; 흿; 흿; 흿; 흿; ) HANGUL SYLLABLE HYIS
+D780;D780;1112 1174 11BB;D780;1112 1174 11BB; # (힀; 힀; 힀; 힀; 힀; ) HANGUL SYLLABLE HYISS
+D781;D781;1112 1174 11BC;D781;1112 1174 11BC; # (힁; 힁; 힁; 힁; 힁; ) HANGUL SYLLABLE HYING
+D782;D782;1112 1174 11BD;D782;1112 1174 11BD; # (힂; 힂; 힂; 힂; 힂; ) HANGUL SYLLABLE HYIJ
+D783;D783;1112 1174 11BE;D783;1112 1174 11BE; # (힃; 힃; 힃; 힃; 힃; ) HANGUL SYLLABLE HYIC
+D784;D784;1112 1174 11BF;D784;1112 1174 11BF; # (힄; 힄; 힄; 힄; 힄; ) HANGUL SYLLABLE HYIK
+D785;D785;1112 1174 11C0;D785;1112 1174 11C0; # (힅; 힅; 힅; 힅; 힅; ) HANGUL SYLLABLE HYIT
+D786;D786;1112 1174 11C1;D786;1112 1174 11C1; # (힆; 힆; 힆; 힆; 힆; ) HANGUL SYLLABLE HYIP
+D787;D787;1112 1174 11C2;D787;1112 1174 11C2; # (힇; 힇; 힇; 힇; 힇; ) HANGUL SYLLABLE HYIH
+D788;D788;1112 1175;D788;1112 1175; # (히; 히; 히; 히; 히; ) HANGUL SYLLABLE HI
+D789;D789;1112 1175 11A8;D789;1112 1175 11A8; # (힉; 힉; 힉; 힉; 힉; ) HANGUL SYLLABLE HIG
+D78A;D78A;1112 1175 11A9;D78A;1112 1175 11A9; # (힊; 힊; 힊; 힊; 힊; ) HANGUL SYLLABLE HIGG
+D78B;D78B;1112 1175 11AA;D78B;1112 1175 11AA; # (힋; 힋; 힋; 힋; 힋; ) HANGUL SYLLABLE HIGS
+D78C;D78C;1112 1175 11AB;D78C;1112 1175 11AB; # (힌; 힌; 힌; 힌; 힌; ) HANGUL SYLLABLE HIN
+D78D;D78D;1112 1175 11AC;D78D;1112 1175 11AC; # (힍; 힍; 힍; 힍; 힍; ) HANGUL SYLLABLE HINJ
+D78E;D78E;1112 1175 11AD;D78E;1112 1175 11AD; # (힎; 힎; 힎; 힎; 힎; ) HANGUL SYLLABLE HINH
+D78F;D78F;1112 1175 11AE;D78F;1112 1175 11AE; # (힏; 힏; 힏; 힏; 힏; ) HANGUL SYLLABLE HID
+D790;D790;1112 1175 11AF;D790;1112 1175 11AF; # (힐; 힐; 힐; 힐; 힐; ) HANGUL SYLLABLE HIL
+D791;D791;1112 1175 11B0;D791;1112 1175 11B0; # (힑; 힑; 힑; 힑; 힑; ) HANGUL SYLLABLE HILG
+D792;D792;1112 1175 11B1;D792;1112 1175 11B1; # (힒; 힒; 힒; 힒; 힒; ) HANGUL SYLLABLE HILM
+D793;D793;1112 1175 11B2;D793;1112 1175 11B2; # (힓; 힓; 힓; 힓; 힓; ) HANGUL SYLLABLE HILB
+D794;D794;1112 1175 11B3;D794;1112 1175 11B3; # (힔; 힔; 힔; 힔; 힔; ) HANGUL SYLLABLE HILS
+D795;D795;1112 1175 11B4;D795;1112 1175 11B4; # (힕; 힕; 힕; 힕; 힕; ) HANGUL SYLLABLE HILT
+D796;D796;1112 1175 11B5;D796;1112 1175 11B5; # (힖; 힖; 힖; 힖; 힖; ) HANGUL SYLLABLE HILP
+D797;D797;1112 1175 11B6;D797;1112 1175 11B6; # (힗; 힗; 힗; 힗; 힗; ) HANGUL SYLLABLE HILH
+D798;D798;1112 1175 11B7;D798;1112 1175 11B7; # (힘; 힘; 힘; 힘; 힘; ) HANGUL SYLLABLE HIM
+D799;D799;1112 1175 11B8;D799;1112 1175 11B8; # (힙; 힙; 힙; 힙; 힙; ) HANGUL SYLLABLE HIB
+D79A;D79A;1112 1175 11B9;D79A;1112 1175 11B9; # (힚; 힚; 힚; 힚; 힚; ) HANGUL SYLLABLE HIBS
+D79B;D79B;1112 1175 11BA;D79B;1112 1175 11BA; # (힛; 힛; 힛; 힛; 힛; ) HANGUL SYLLABLE HIS
+D79C;D79C;1112 1175 11BB;D79C;1112 1175 11BB; # (힜; 힜; 힜; 힜; 힜; ) HANGUL SYLLABLE HISS
+D79D;D79D;1112 1175 11BC;D79D;1112 1175 11BC; # (힝; 힝; 힝; 힝; 힝; ) HANGUL SYLLABLE HING
+D79E;D79E;1112 1175 11BD;D79E;1112 1175 11BD; # (힞; 힞; 힞; 힞; 힞; ) HANGUL SYLLABLE HIJ
+D79F;D79F;1112 1175 11BE;D79F;1112 1175 11BE; # (힟; 힟; 힟; 힟; 힟; ) HANGUL SYLLABLE HIC
+D7A0;D7A0;1112 1175 11BF;D7A0;1112 1175 11BF; # (힠; 힠; 힠; 힠; 힠; ) HANGUL SYLLABLE HIK
+D7A1;D7A1;1112 1175 11C0;D7A1;1112 1175 11C0; # (힡; 힡; 힡; 힡; 힡; ) HANGUL SYLLABLE HIT
+D7A2;D7A2;1112 1175 11C1;D7A2;1112 1175 11C1; # (힢; 힢; 힢; 힢; 힢; ) HANGUL SYLLABLE HIP
+D7A3;D7A3;1112 1175 11C2;D7A3;1112 1175 11C2; # (힣; 힣; 힣; 힣; 힣; ) HANGUL SYLLABLE HIH
+F900;8C48;8C48;8C48;8C48; # (豈; 豈; 豈; 豈; 豈; ) CJK COMPATIBILITY IDEOGRAPH-F900
+F901;66F4;66F4;66F4;66F4; # (更; 更; 更; 更; 更; ) CJK COMPATIBILITY IDEOGRAPH-F901
+F902;8ECA;8ECA;8ECA;8ECA; # (車; 車; 車; 車; 車; ) CJK COMPATIBILITY IDEOGRAPH-F902
+F903;8CC8;8CC8;8CC8;8CC8; # (賈; 賈; 賈; 賈; 賈; ) CJK COMPATIBILITY IDEOGRAPH-F903
+F904;6ED1;6ED1;6ED1;6ED1; # (滑; 滑; 滑; 滑; 滑; ) CJK COMPATIBILITY IDEOGRAPH-F904
+F905;4E32;4E32;4E32;4E32; # (串; 串; 串; 串; 串; ) CJK COMPATIBILITY IDEOGRAPH-F905
+F906;53E5;53E5;53E5;53E5; # (句; 句; 句; 句; 句; ) CJK COMPATIBILITY IDEOGRAPH-F906
+F907;9F9C;9F9C;9F9C;9F9C; # (龜; 龜; 龜; 龜; 龜; ) CJK COMPATIBILITY IDEOGRAPH-F907
+F908;9F9C;9F9C;9F9C;9F9C; # (龜; 龜; 龜; 龜; 龜; ) CJK COMPATIBILITY IDEOGRAPH-F908
+F909;5951;5951;5951;5951; # (契; 契; 契; 契; 契; ) CJK COMPATIBILITY IDEOGRAPH-F909
+F90A;91D1;91D1;91D1;91D1; # (金; 金; 金; 金; 金; ) CJK COMPATIBILITY IDEOGRAPH-F90A
+F90B;5587;5587;5587;5587; # (喇; 喇; 喇; 喇; 喇; ) CJK COMPATIBILITY IDEOGRAPH-F90B
+F90C;5948;5948;5948;5948; # (奈; 奈; 奈; 奈; 奈; ) CJK COMPATIBILITY IDEOGRAPH-F90C
+F90D;61F6;61F6;61F6;61F6; # (懶; 懶; 懶; 懶; 懶; ) CJK COMPATIBILITY IDEOGRAPH-F90D
+F90E;7669;7669;7669;7669; # (癩; 癩; 癩; 癩; 癩; ) CJK COMPATIBILITY IDEOGRAPH-F90E
+F90F;7F85;7F85;7F85;7F85; # (羅; 羅; 羅; 羅; 羅; ) CJK COMPATIBILITY IDEOGRAPH-F90F
+F910;863F;863F;863F;863F; # (蘿; 蘿; 蘿; 蘿; 蘿; ) CJK COMPATIBILITY IDEOGRAPH-F910
+F911;87BA;87BA;87BA;87BA; # (螺; 螺; 螺; 螺; 螺; ) CJK COMPATIBILITY IDEOGRAPH-F911
+F912;88F8;88F8;88F8;88F8; # (裸; 裸; 裸; 裸; 裸; ) CJK COMPATIBILITY IDEOGRAPH-F912
+F913;908F;908F;908F;908F; # (邏; 邏; 邏; 邏; 邏; ) CJK COMPATIBILITY IDEOGRAPH-F913
+F914;6A02;6A02;6A02;6A02; # (樂; 樂; 樂; 樂; 樂; ) CJK COMPATIBILITY IDEOGRAPH-F914
+F915;6D1B;6D1B;6D1B;6D1B; # (洛; 洛; 洛; 洛; 洛; ) CJK COMPATIBILITY IDEOGRAPH-F915
+F916;70D9;70D9;70D9;70D9; # (烙; 烙; 烙; 烙; 烙; ) CJK COMPATIBILITY IDEOGRAPH-F916
+F917;73DE;73DE;73DE;73DE; # (珞; 珞; 珞; 珞; 珞; ) CJK COMPATIBILITY IDEOGRAPH-F917
+F918;843D;843D;843D;843D; # (落; 落; 落; 落; 落; ) CJK COMPATIBILITY IDEOGRAPH-F918
+F919;916A;916A;916A;916A; # (酪; 酪; 酪; 酪; 酪; ) CJK COMPATIBILITY IDEOGRAPH-F919
+F91A;99F1;99F1;99F1;99F1; # (駱; 駱; 駱; 駱; 駱; ) CJK COMPATIBILITY IDEOGRAPH-F91A
+F91B;4E82;4E82;4E82;4E82; # (亂; 亂; 亂; 亂; 亂; ) CJK COMPATIBILITY IDEOGRAPH-F91B
+F91C;5375;5375;5375;5375; # (卵; 卵; 卵; 卵; 卵; ) CJK COMPATIBILITY IDEOGRAPH-F91C
+F91D;6B04;6B04;6B04;6B04; # (欄; 欄; 欄; 欄; 欄; ) CJK COMPATIBILITY IDEOGRAPH-F91D
+F91E;721B;721B;721B;721B; # (爛; 爛; 爛; 爛; 爛; ) CJK COMPATIBILITY IDEOGRAPH-F91E
+F91F;862D;862D;862D;862D; # (蘭; 蘭; 蘭; 蘭; 蘭; ) CJK COMPATIBILITY IDEOGRAPH-F91F
+F920;9E1E;9E1E;9E1E;9E1E; # (鸞; 鸞; 鸞; 鸞; 鸞; ) CJK COMPATIBILITY IDEOGRAPH-F920
+F921;5D50;5D50;5D50;5D50; # (嵐; 嵐; 嵐; 嵐; 嵐; ) CJK COMPATIBILITY IDEOGRAPH-F921
+F922;6FEB;6FEB;6FEB;6FEB; # (濫; 濫; 濫; 濫; 濫; ) CJK COMPATIBILITY IDEOGRAPH-F922
+F923;85CD;85CD;85CD;85CD; # (藍; 藍; 藍; 藍; 藍; ) CJK COMPATIBILITY IDEOGRAPH-F923
+F924;8964;8964;8964;8964; # (襤; 襤; 襤; 襤; 襤; ) CJK COMPATIBILITY IDEOGRAPH-F924
+F925;62C9;62C9;62C9;62C9; # (拉; 拉; 拉; 拉; 拉; ) CJK COMPATIBILITY IDEOGRAPH-F925
+F926;81D8;81D8;81D8;81D8; # (臘; 臘; 臘; 臘; 臘; ) CJK COMPATIBILITY IDEOGRAPH-F926
+F927;881F;881F;881F;881F; # (蠟; 蠟; 蠟; 蠟; 蠟; ) CJK COMPATIBILITY IDEOGRAPH-F927
+F928;5ECA;5ECA;5ECA;5ECA; # (廊; 廊; 廊; 廊; 廊; ) CJK COMPATIBILITY IDEOGRAPH-F928
+F929;6717;6717;6717;6717; # (朗; 朗; 朗; 朗; 朗; ) CJK COMPATIBILITY IDEOGRAPH-F929
+F92A;6D6A;6D6A;6D6A;6D6A; # (浪; 浪; 浪; 浪; 浪; ) CJK COMPATIBILITY IDEOGRAPH-F92A
+F92B;72FC;72FC;72FC;72FC; # (狼; 狼; 狼; 狼; 狼; ) CJK COMPATIBILITY IDEOGRAPH-F92B
+F92C;90CE;90CE;90CE;90CE; # (郎; 郎; 郎; 郎; 郎; ) CJK COMPATIBILITY IDEOGRAPH-F92C
+F92D;4F86;4F86;4F86;4F86; # (來; 來; 來; 來; 來; ) CJK COMPATIBILITY IDEOGRAPH-F92D
+F92E;51B7;51B7;51B7;51B7; # (冷; 冷; 冷; 冷; 冷; ) CJK COMPATIBILITY IDEOGRAPH-F92E
+F92F;52DE;52DE;52DE;52DE; # (勞; 勞; 勞; 勞; 勞; ) CJK COMPATIBILITY IDEOGRAPH-F92F
+F930;64C4;64C4;64C4;64C4; # (擄; 擄; 擄; 擄; 擄; ) CJK COMPATIBILITY IDEOGRAPH-F930
+F931;6AD3;6AD3;6AD3;6AD3; # (櫓; 櫓; 櫓; 櫓; 櫓; ) CJK COMPATIBILITY IDEOGRAPH-F931
+F932;7210;7210;7210;7210; # (爐; 爐; 爐; 爐; 爐; ) CJK COMPATIBILITY IDEOGRAPH-F932
+F933;76E7;76E7;76E7;76E7; # (盧; 盧; 盧; 盧; 盧; ) CJK COMPATIBILITY IDEOGRAPH-F933
+F934;8001;8001;8001;8001; # (老; 老; 老; 老; 老; ) CJK COMPATIBILITY IDEOGRAPH-F934
+F935;8606;8606;8606;8606; # (蘆; 蘆; 蘆; 蘆; 蘆; ) CJK COMPATIBILITY IDEOGRAPH-F935
+F936;865C;865C;865C;865C; # (虜; 虜; 虜; 虜; 虜; ) CJK COMPATIBILITY IDEOGRAPH-F936
+F937;8DEF;8DEF;8DEF;8DEF; # (路; 路; 路; 路; 路; ) CJK COMPATIBILITY IDEOGRAPH-F937
+F938;9732;9732;9732;9732; # (露; 露; 露; 露; 露; ) CJK COMPATIBILITY IDEOGRAPH-F938
+F939;9B6F;9B6F;9B6F;9B6F; # (魯; 魯; 魯; 魯; 魯; ) CJK COMPATIBILITY IDEOGRAPH-F939
+F93A;9DFA;9DFA;9DFA;9DFA; # (鷺; 鷺; 鷺; 鷺; 鷺; ) CJK COMPATIBILITY IDEOGRAPH-F93A
+F93B;788C;788C;788C;788C; # (碌; 碌; 碌; 碌; 碌; ) CJK COMPATIBILITY IDEOGRAPH-F93B
+F93C;797F;797F;797F;797F; # (祿; 祿; 祿; 祿; 祿; ) CJK COMPATIBILITY IDEOGRAPH-F93C
+F93D;7DA0;7DA0;7DA0;7DA0; # (綠; 綠; 綠; 綠; 綠; ) CJK COMPATIBILITY IDEOGRAPH-F93D
+F93E;83C9;83C9;83C9;83C9; # (菉; 菉; 菉; 菉; 菉; ) CJK COMPATIBILITY IDEOGRAPH-F93E
+F93F;9304;9304;9304;9304; # (錄; 錄; 錄; 錄; 錄; ) CJK COMPATIBILITY IDEOGRAPH-F93F
+F940;9E7F;9E7F;9E7F;9E7F; # (鹿; 鹿; 鹿; 鹿; 鹿; ) CJK COMPATIBILITY IDEOGRAPH-F940
+F941;8AD6;8AD6;8AD6;8AD6; # (論; 論; 論; 論; 論; ) CJK COMPATIBILITY IDEOGRAPH-F941
+F942;58DF;58DF;58DF;58DF; # (壟; 壟; 壟; 壟; 壟; ) CJK COMPATIBILITY IDEOGRAPH-F942
+F943;5F04;5F04;5F04;5F04; # (弄; 弄; 弄; 弄; 弄; ) CJK COMPATIBILITY IDEOGRAPH-F943
+F944;7C60;7C60;7C60;7C60; # (籠; 籠; 籠; 籠; 籠; ) CJK COMPATIBILITY IDEOGRAPH-F944
+F945;807E;807E;807E;807E; # (聾; 聾; 聾; 聾; 聾; ) CJK COMPATIBILITY IDEOGRAPH-F945
+F946;7262;7262;7262;7262; # (牢; 牢; 牢; 牢; 牢; ) CJK COMPATIBILITY IDEOGRAPH-F946
+F947;78CA;78CA;78CA;78CA; # (磊; 磊; 磊; 磊; 磊; ) CJK COMPATIBILITY IDEOGRAPH-F947
+F948;8CC2;8CC2;8CC2;8CC2; # (賂; 賂; 賂; 賂; 賂; ) CJK COMPATIBILITY IDEOGRAPH-F948
+F949;96F7;96F7;96F7;96F7; # (雷; 雷; 雷; 雷; 雷; ) CJK COMPATIBILITY IDEOGRAPH-F949
+F94A;58D8;58D8;58D8;58D8; # (壘; 壘; 壘; 壘; 壘; ) CJK COMPATIBILITY IDEOGRAPH-F94A
+F94B;5C62;5C62;5C62;5C62; # (屢; 屢; 屢; 屢; 屢; ) CJK COMPATIBILITY IDEOGRAPH-F94B
+F94C;6A13;6A13;6A13;6A13; # (樓; 樓; 樓; 樓; 樓; ) CJK COMPATIBILITY IDEOGRAPH-F94C
+F94D;6DDA;6DDA;6DDA;6DDA; # (淚; 淚; 淚; 淚; 淚; ) CJK COMPATIBILITY IDEOGRAPH-F94D
+F94E;6F0F;6F0F;6F0F;6F0F; # (漏; 漏; 漏; 漏; 漏; ) CJK COMPATIBILITY IDEOGRAPH-F94E
+F94F;7D2F;7D2F;7D2F;7D2F; # (累; 累; 累; 累; 累; ) CJK COMPATIBILITY IDEOGRAPH-F94F
+F950;7E37;7E37;7E37;7E37; # (縷; 縷; 縷; 縷; 縷; ) CJK COMPATIBILITY IDEOGRAPH-F950
+F951;964B;964B;964B;964B; # (陋; 陋; 陋; 陋; 陋; ) CJK COMPATIBILITY IDEOGRAPH-F951
+F952;52D2;52D2;52D2;52D2; # (勒; 勒; 勒; 勒; 勒; ) CJK COMPATIBILITY IDEOGRAPH-F952
+F953;808B;808B;808B;808B; # (肋; 肋; 肋; 肋; 肋; ) CJK COMPATIBILITY IDEOGRAPH-F953
+F954;51DC;51DC;51DC;51DC; # (凜; 凜; 凜; 凜; 凜; ) CJK COMPATIBILITY IDEOGRAPH-F954
+F955;51CC;51CC;51CC;51CC; # (凌; 凌; 凌; 凌; 凌; ) CJK COMPATIBILITY IDEOGRAPH-F955
+F956;7A1C;7A1C;7A1C;7A1C; # (稜; 稜; 稜; 稜; 稜; ) CJK COMPATIBILITY IDEOGRAPH-F956
+F957;7DBE;7DBE;7DBE;7DBE; # (綾; 綾; 綾; 綾; 綾; ) CJK COMPATIBILITY IDEOGRAPH-F957
+F958;83F1;83F1;83F1;83F1; # (菱; 菱; 菱; 菱; 菱; ) CJK COMPATIBILITY IDEOGRAPH-F958
+F959;9675;9675;9675;9675; # (陵; 陵; 陵; 陵; 陵; ) CJK COMPATIBILITY IDEOGRAPH-F959
+F95A;8B80;8B80;8B80;8B80; # (讀; 讀; 讀; 讀; 讀; ) CJK COMPATIBILITY IDEOGRAPH-F95A
+F95B;62CF;62CF;62CF;62CF; # (拏; 拏; 拏; 拏; 拏; ) CJK COMPATIBILITY IDEOGRAPH-F95B
+F95C;6A02;6A02;6A02;6A02; # (樂; 樂; 樂; 樂; 樂; ) CJK COMPATIBILITY IDEOGRAPH-F95C
+F95D;8AFE;8AFE;8AFE;8AFE; # (諾; 諾; 諾; 諾; 諾; ) CJK COMPATIBILITY IDEOGRAPH-F95D
+F95E;4E39;4E39;4E39;4E39; # (丹; 丹; 丹; 丹; 丹; ) CJK COMPATIBILITY IDEOGRAPH-F95E
+F95F;5BE7;5BE7;5BE7;5BE7; # (寧; 寧; 寧; 寧; 寧; ) CJK COMPATIBILITY IDEOGRAPH-F95F
+F960;6012;6012;6012;6012; # (怒; 怒; 怒; 怒; 怒; ) CJK COMPATIBILITY IDEOGRAPH-F960
+F961;7387;7387;7387;7387; # (率; 率; 率; 率; 率; ) CJK COMPATIBILITY IDEOGRAPH-F961
+F962;7570;7570;7570;7570; # (異; 異; 異; 異; 異; ) CJK COMPATIBILITY IDEOGRAPH-F962
+F963;5317;5317;5317;5317; # (北; 北; 北; 北; 北; ) CJK COMPATIBILITY IDEOGRAPH-F963
+F964;78FB;78FB;78FB;78FB; # (磻; 磻; 磻; 磻; 磻; ) CJK COMPATIBILITY IDEOGRAPH-F964
+F965;4FBF;4FBF;4FBF;4FBF; # (便; 便; 便; 便; 便; ) CJK COMPATIBILITY IDEOGRAPH-F965
+F966;5FA9;5FA9;5FA9;5FA9; # (復; 復; 復; 復; 復; ) CJK COMPATIBILITY IDEOGRAPH-F966
+F967;4E0D;4E0D;4E0D;4E0D; # (不; 不; 不; 不; 不; ) CJK COMPATIBILITY IDEOGRAPH-F967
+F968;6CCC;6CCC;6CCC;6CCC; # (泌; 泌; 泌; 泌; 泌; ) CJK COMPATIBILITY IDEOGRAPH-F968
+F969;6578;6578;6578;6578; # (數; 數; 數; 數; 數; ) CJK COMPATIBILITY IDEOGRAPH-F969
+F96A;7D22;7D22;7D22;7D22; # (索; 索; 索; 索; 索; ) CJK COMPATIBILITY IDEOGRAPH-F96A
+F96B;53C3;53C3;53C3;53C3; # (參; 參; 參; 參; 參; ) CJK COMPATIBILITY IDEOGRAPH-F96B
+F96C;585E;585E;585E;585E; # (塞; 塞; 塞; 塞; 塞; ) CJK COMPATIBILITY IDEOGRAPH-F96C
+F96D;7701;7701;7701;7701; # (省; 省; 省; 省; 省; ) CJK COMPATIBILITY IDEOGRAPH-F96D
+F96E;8449;8449;8449;8449; # (葉; 葉; 葉; 葉; 葉; ) CJK COMPATIBILITY IDEOGRAPH-F96E
+F96F;8AAA;8AAA;8AAA;8AAA; # (說; 說; 說; 說; 說; ) CJK COMPATIBILITY IDEOGRAPH-F96F
+F970;6BBA;6BBA;6BBA;6BBA; # (殺; 殺; 殺; 殺; 殺; ) CJK COMPATIBILITY IDEOGRAPH-F970
+F971;8FB0;8FB0;8FB0;8FB0; # (辰; 辰; 辰; 辰; 辰; ) CJK COMPATIBILITY IDEOGRAPH-F971
+F972;6C88;6C88;6C88;6C88; # (沈; 沈; 沈; 沈; 沈; ) CJK COMPATIBILITY IDEOGRAPH-F972
+F973;62FE;62FE;62FE;62FE; # (拾; 拾; 拾; 拾; 拾; ) CJK COMPATIBILITY IDEOGRAPH-F973
+F974;82E5;82E5;82E5;82E5; # (若; 若; 若; 若; 若; ) CJK COMPATIBILITY IDEOGRAPH-F974
+F975;63A0;63A0;63A0;63A0; # (掠; 掠; 掠; 掠; 掠; ) CJK COMPATIBILITY IDEOGRAPH-F975
+F976;7565;7565;7565;7565; # (略; 略; 略; 略; 略; ) CJK COMPATIBILITY IDEOGRAPH-F976
+F977;4EAE;4EAE;4EAE;4EAE; # (亮; 亮; 亮; 亮; 亮; ) CJK COMPATIBILITY IDEOGRAPH-F977
+F978;5169;5169;5169;5169; # (兩; 兩; 兩; 兩; 兩; ) CJK COMPATIBILITY IDEOGRAPH-F978
+F979;51C9;51C9;51C9;51C9; # (凉; 凉; 凉; 凉; 凉; ) CJK COMPATIBILITY IDEOGRAPH-F979
+F97A;6881;6881;6881;6881; # (梁; 梁; 梁; 梁; 梁; ) CJK COMPATIBILITY IDEOGRAPH-F97A
+F97B;7CE7;7CE7;7CE7;7CE7; # (糧; 糧; 糧; 糧; 糧; ) CJK COMPATIBILITY IDEOGRAPH-F97B
+F97C;826F;826F;826F;826F; # (良; 良; 良; 良; 良; ) CJK COMPATIBILITY IDEOGRAPH-F97C
+F97D;8AD2;8AD2;8AD2;8AD2; # (諒; 諒; 諒; 諒; 諒; ) CJK COMPATIBILITY IDEOGRAPH-F97D
+F97E;91CF;91CF;91CF;91CF; # (量; 量; 量; 量; 量; ) CJK COMPATIBILITY IDEOGRAPH-F97E
+F97F;52F5;52F5;52F5;52F5; # (勵; 勵; 勵; 勵; 勵; ) CJK COMPATIBILITY IDEOGRAPH-F97F
+F980;5442;5442;5442;5442; # (呂; 呂; 呂; 呂; 呂; ) CJK COMPATIBILITY IDEOGRAPH-F980
+F981;5973;5973;5973;5973; # (女; 女; 女; 女; 女; ) CJK COMPATIBILITY IDEOGRAPH-F981
+F982;5EEC;5EEC;5EEC;5EEC; # (廬; 廬; 廬; 廬; 廬; ) CJK COMPATIBILITY IDEOGRAPH-F982
+F983;65C5;65C5;65C5;65C5; # (旅; 旅; 旅; 旅; 旅; ) CJK COMPATIBILITY IDEOGRAPH-F983
+F984;6FFE;6FFE;6FFE;6FFE; # (濾; 濾; 濾; 濾; 濾; ) CJK COMPATIBILITY IDEOGRAPH-F984
+F985;792A;792A;792A;792A; # (礪; 礪; 礪; 礪; 礪; ) CJK COMPATIBILITY IDEOGRAPH-F985
+F986;95AD;95AD;95AD;95AD; # (閭; 閭; 閭; 閭; 閭; ) CJK COMPATIBILITY IDEOGRAPH-F986
+F987;9A6A;9A6A;9A6A;9A6A; # (驪; 驪; 驪; 驪; 驪; ) CJK COMPATIBILITY IDEOGRAPH-F987
+F988;9E97;9E97;9E97;9E97; # (麗; 麗; 麗; 麗; 麗; ) CJK COMPATIBILITY IDEOGRAPH-F988
+F989;9ECE;9ECE;9ECE;9ECE; # (黎; 黎; 黎; 黎; 黎; ) CJK COMPATIBILITY IDEOGRAPH-F989
+F98A;529B;529B;529B;529B; # (力; 力; 力; 力; 力; ) CJK COMPATIBILITY IDEOGRAPH-F98A
+F98B;66C6;66C6;66C6;66C6; # (曆; 曆; 曆; 曆; 曆; ) CJK COMPATIBILITY IDEOGRAPH-F98B
+F98C;6B77;6B77;6B77;6B77; # (歷; 歷; 歷; 歷; 歷; ) CJK COMPATIBILITY IDEOGRAPH-F98C
+F98D;8F62;8F62;8F62;8F62; # (轢; 轢; 轢; 轢; 轢; ) CJK COMPATIBILITY IDEOGRAPH-F98D
+F98E;5E74;5E74;5E74;5E74; # (年; 年; 年; 年; 年; ) CJK COMPATIBILITY IDEOGRAPH-F98E
+F98F;6190;6190;6190;6190; # (憐; 憐; 憐; 憐; 憐; ) CJK COMPATIBILITY IDEOGRAPH-F98F
+F990;6200;6200;6200;6200; # (戀; 戀; 戀; 戀; 戀; ) CJK COMPATIBILITY IDEOGRAPH-F990
+F991;649A;649A;649A;649A; # (撚; 撚; 撚; 撚; 撚; ) CJK COMPATIBILITY IDEOGRAPH-F991
+F992;6F23;6F23;6F23;6F23; # (漣; 漣; 漣; 漣; 漣; ) CJK COMPATIBILITY IDEOGRAPH-F992
+F993;7149;7149;7149;7149; # (煉; 煉; 煉; 煉; 煉; ) CJK COMPATIBILITY IDEOGRAPH-F993
+F994;7489;7489;7489;7489; # (璉; 璉; 璉; 璉; 璉; ) CJK COMPATIBILITY IDEOGRAPH-F994
+F995;79CA;79CA;79CA;79CA; # (秊; 秊; 秊; 秊; 秊; ) CJK COMPATIBILITY IDEOGRAPH-F995
+F996;7DF4;7DF4;7DF4;7DF4; # (練; 練; 練; 練; 練; ) CJK COMPATIBILITY IDEOGRAPH-F996
+F997;806F;806F;806F;806F; # (聯; 聯; 聯; 聯; 聯; ) CJK COMPATIBILITY IDEOGRAPH-F997
+F998;8F26;8F26;8F26;8F26; # (輦; 輦; 輦; 輦; 輦; ) CJK COMPATIBILITY IDEOGRAPH-F998
+F999;84EE;84EE;84EE;84EE; # (蓮; 蓮; 蓮; 蓮; 蓮; ) CJK COMPATIBILITY IDEOGRAPH-F999
+F99A;9023;9023;9023;9023; # (連; 連; 連; 連; 連; ) CJK COMPATIBILITY IDEOGRAPH-F99A
+F99B;934A;934A;934A;934A; # (鍊; 鍊; 鍊; 鍊; 鍊; ) CJK COMPATIBILITY IDEOGRAPH-F99B
+F99C;5217;5217;5217;5217; # (列; 列; 列; 列; 列; ) CJK COMPATIBILITY IDEOGRAPH-F99C
+F99D;52A3;52A3;52A3;52A3; # (劣; 劣; 劣; 劣; 劣; ) CJK COMPATIBILITY IDEOGRAPH-F99D
+F99E;54BD;54BD;54BD;54BD; # (咽; 咽; 咽; 咽; 咽; ) CJK COMPATIBILITY IDEOGRAPH-F99E
+F99F;70C8;70C8;70C8;70C8; # (烈; 烈; 烈; 烈; 烈; ) CJK COMPATIBILITY IDEOGRAPH-F99F
+F9A0;88C2;88C2;88C2;88C2; # (裂; 裂; 裂; 裂; 裂; ) CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9A1;8AAA;8AAA;8AAA;8AAA; # (說; 說; 說; 說; 說; ) CJK COMPATIBILITY IDEOGRAPH-F9A1
+F9A2;5EC9;5EC9;5EC9;5EC9; # (廉; 廉; 廉; 廉; 廉; ) CJK COMPATIBILITY IDEOGRAPH-F9A2
+F9A3;5FF5;5FF5;5FF5;5FF5; # (念; 念; 念; 念; 念; ) CJK COMPATIBILITY IDEOGRAPH-F9A3
+F9A4;637B;637B;637B;637B; # (捻; 捻; 捻; 捻; 捻; ) CJK COMPATIBILITY IDEOGRAPH-F9A4
+F9A5;6BAE;6BAE;6BAE;6BAE; # (殮; 殮; 殮; 殮; 殮; ) CJK COMPATIBILITY IDEOGRAPH-F9A5
+F9A6;7C3E;7C3E;7C3E;7C3E; # (簾; 簾; 簾; 簾; 簾; ) CJK COMPATIBILITY IDEOGRAPH-F9A6
+F9A7;7375;7375;7375;7375; # (獵; 獵; 獵; 獵; 獵; ) CJK COMPATIBILITY IDEOGRAPH-F9A7
+F9A8;4EE4;4EE4;4EE4;4EE4; # (令; 令; 令; 令; 令; ) CJK COMPATIBILITY IDEOGRAPH-F9A8
+F9A9;56F9;56F9;56F9;56F9; # (囹; 囹; 囹; 囹; 囹; ) CJK COMPATIBILITY IDEOGRAPH-F9A9
+F9AA;5BE7;5BE7;5BE7;5BE7; # (寧; 寧; 寧; 寧; 寧; ) CJK COMPATIBILITY IDEOGRAPH-F9AA
+F9AB;5DBA;5DBA;5DBA;5DBA; # (嶺; 嶺; 嶺; 嶺; 嶺; ) CJK COMPATIBILITY IDEOGRAPH-F9AB
+F9AC;601C;601C;601C;601C; # (怜; 怜; 怜; 怜; 怜; ) CJK COMPATIBILITY IDEOGRAPH-F9AC
+F9AD;73B2;73B2;73B2;73B2; # (玲; 玲; 玲; 玲; 玲; ) CJK COMPATIBILITY IDEOGRAPH-F9AD
+F9AE;7469;7469;7469;7469; # (瑩; 瑩; 瑩; 瑩; 瑩; ) CJK COMPATIBILITY IDEOGRAPH-F9AE
+F9AF;7F9A;7F9A;7F9A;7F9A; # (羚; 羚; 羚; 羚; 羚; ) CJK COMPATIBILITY IDEOGRAPH-F9AF
+F9B0;8046;8046;8046;8046; # (聆; 聆; 聆; 聆; 聆; ) CJK COMPATIBILITY IDEOGRAPH-F9B0
+F9B1;9234;9234;9234;9234; # (鈴; 鈴; 鈴; 鈴; 鈴; ) CJK COMPATIBILITY IDEOGRAPH-F9B1
+F9B2;96F6;96F6;96F6;96F6; # (零; 零; 零; 零; 零; ) CJK COMPATIBILITY IDEOGRAPH-F9B2
+F9B3;9748;9748;9748;9748; # (靈; 靈; 靈; 靈; 靈; ) CJK COMPATIBILITY IDEOGRAPH-F9B3
+F9B4;9818;9818;9818;9818; # (領; 領; 領; 領; 領; ) CJK COMPATIBILITY IDEOGRAPH-F9B4
+F9B5;4F8B;4F8B;4F8B;4F8B; # (例; 例; 例; 例; 例; ) CJK COMPATIBILITY IDEOGRAPH-F9B5
+F9B6;79AE;79AE;79AE;79AE; # (禮; 禮; 禮; 禮; 禮; ) CJK COMPATIBILITY IDEOGRAPH-F9B6
+F9B7;91B4;91B4;91B4;91B4; # (醴; 醴; 醴; 醴; 醴; ) CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9B8;96B8;96B8;96B8;96B8; # (隸; 隸; 隸; 隸; 隸; ) CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9B9;60E1;60E1;60E1;60E1; # (惡; 惡; 惡; 惡; 惡; ) CJK COMPATIBILITY IDEOGRAPH-F9B9
+F9BA;4E86;4E86;4E86;4E86; # (了; 了; 了; 了; 了; ) CJK COMPATIBILITY IDEOGRAPH-F9BA
+F9BB;50DA;50DA;50DA;50DA; # (僚; 僚; 僚; 僚; 僚; ) CJK COMPATIBILITY IDEOGRAPH-F9BB
+F9BC;5BEE;5BEE;5BEE;5BEE; # (寮; 寮; 寮; 寮; 寮; ) CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD;5C3F;5C3F;5C3F;5C3F; # (尿; 尿; 尿; 尿; 尿; ) CJK COMPATIBILITY IDEOGRAPH-F9BD
+F9BE;6599;6599;6599;6599; # (料; 料; 料; 料; 料; ) CJK COMPATIBILITY IDEOGRAPH-F9BE
+F9BF;6A02;6A02;6A02;6A02; # (樂; 樂; 樂; 樂; 樂; ) CJK COMPATIBILITY IDEOGRAPH-F9BF
+F9C0;71CE;71CE;71CE;71CE; # (燎; 燎; 燎; 燎; 燎; ) CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9C1;7642;7642;7642;7642; # (療; 療; 療; 療; 療; ) CJK COMPATIBILITY IDEOGRAPH-F9C1
+F9C2;84FC;84FC;84FC;84FC; # (蓼; 蓼; 蓼; 蓼; 蓼; ) CJK COMPATIBILITY IDEOGRAPH-F9C2
+F9C3;907C;907C;907C;907C; # (遼; 遼; 遼; 遼; 遼; ) CJK COMPATIBILITY IDEOGRAPH-F9C3
+F9C4;9F8D;9F8D;9F8D;9F8D; # (龍; 龍; 龍; 龍; 龍; ) CJK COMPATIBILITY IDEOGRAPH-F9C4
+F9C5;6688;6688;6688;6688; # (暈; 暈; 暈; 暈; 暈; ) CJK COMPATIBILITY IDEOGRAPH-F9C5
+F9C6;962E;962E;962E;962E; # (阮; 阮; 阮; 阮; 阮; ) CJK COMPATIBILITY IDEOGRAPH-F9C6
+F9C7;5289;5289;5289;5289; # (劉; 劉; 劉; 劉; 劉; ) CJK COMPATIBILITY IDEOGRAPH-F9C7
+F9C8;677B;677B;677B;677B; # (杻; 杻; 杻; 杻; 杻; ) CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9C9;67F3;67F3;67F3;67F3; # (柳; 柳; 柳; 柳; 柳; ) CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9CA;6D41;6D41;6D41;6D41; # (流; 流; 流; 流; 流; ) CJK COMPATIBILITY IDEOGRAPH-F9CA
+F9CB;6E9C;6E9C;6E9C;6E9C; # (溜; 溜; 溜; 溜; 溜; ) CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9CC;7409;7409;7409;7409; # (琉; 琉; 琉; 琉; 琉; ) CJK COMPATIBILITY IDEOGRAPH-F9CC
+F9CD;7559;7559;7559;7559; # (留; 留; 留; 留; 留; ) CJK COMPATIBILITY IDEOGRAPH-F9CD
+F9CE;786B;786B;786B;786B; # (硫; 硫; 硫; 硫; 硫; ) CJK COMPATIBILITY IDEOGRAPH-F9CE
+F9CF;7D10;7D10;7D10;7D10; # (紐; 紐; 紐; 紐; 紐; ) CJK COMPATIBILITY IDEOGRAPH-F9CF
+F9D0;985E;985E;985E;985E; # (類; 類; 類; 類; 類; ) CJK COMPATIBILITY IDEOGRAPH-F9D0
+F9D1;516D;516D;516D;516D; # (六; 六; 六; 六; 六; ) CJK COMPATIBILITY IDEOGRAPH-F9D1
+F9D2;622E;622E;622E;622E; # (戮; 戮; 戮; 戮; 戮; ) CJK COMPATIBILITY IDEOGRAPH-F9D2
+F9D3;9678;9678;9678;9678; # (陸; 陸; 陸; 陸; 陸; ) CJK COMPATIBILITY IDEOGRAPH-F9D3
+F9D4;502B;502B;502B;502B; # (倫; 倫; 倫; 倫; 倫; ) CJK COMPATIBILITY IDEOGRAPH-F9D4
+F9D5;5D19;5D19;5D19;5D19; # (崙; 崙; 崙; 崙; 崙; ) CJK COMPATIBILITY IDEOGRAPH-F9D5
+F9D6;6DEA;6DEA;6DEA;6DEA; # (淪; 淪; 淪; 淪; 淪; ) CJK COMPATIBILITY IDEOGRAPH-F9D6
+F9D7;8F2A;8F2A;8F2A;8F2A; # (輪; 輪; 輪; 輪; 輪; ) CJK COMPATIBILITY IDEOGRAPH-F9D7
+F9D8;5F8B;5F8B;5F8B;5F8B; # (律; 律; 律; 律; 律; ) CJK COMPATIBILITY IDEOGRAPH-F9D8
+F9D9;6144;6144;6144;6144; # (慄; 慄; 慄; 慄; 慄; ) CJK COMPATIBILITY IDEOGRAPH-F9D9
+F9DA;6817;6817;6817;6817; # (栗; 栗; 栗; 栗; 栗; ) CJK COMPATIBILITY IDEOGRAPH-F9DA
+F9DB;7387;7387;7387;7387; # (率; 率; 率; 率; 率; ) CJK COMPATIBILITY IDEOGRAPH-F9DB
+F9DC;9686;9686;9686;9686; # (隆; 隆; 隆; 隆; 隆; ) CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9DD;5229;5229;5229;5229; # (利; 利; 利; 利; 利; ) CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9DE;540F;540F;540F;540F; # (吏; 吏; 吏; 吏; 吏; ) CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9DF;5C65;5C65;5C65;5C65; # (履; 履; 履; 履; 履; ) CJK COMPATIBILITY IDEOGRAPH-F9DF
+F9E0;6613;6613;6613;6613; # (易; 易; 易; 易; 易; ) CJK COMPATIBILITY IDEOGRAPH-F9E0
+F9E1;674E;674E;674E;674E; # (李; 李; 李; 李; 李; ) CJK COMPATIBILITY IDEOGRAPH-F9E1
+F9E2;68A8;68A8;68A8;68A8; # (梨; 梨; 梨; 梨; 梨; ) CJK COMPATIBILITY IDEOGRAPH-F9E2
+F9E3;6CE5;6CE5;6CE5;6CE5; # (泥; 泥; 泥; 泥; 泥; ) CJK COMPATIBILITY IDEOGRAPH-F9E3
+F9E4;7406;7406;7406;7406; # (理; 理; 理; 理; 理; ) CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9E5;75E2;75E2;75E2;75E2; # (痢; 痢; 痢; 痢; 痢; ) CJK COMPATIBILITY IDEOGRAPH-F9E5
+F9E6;7F79;7F79;7F79;7F79; # (罹; 罹; 罹; 罹; 罹; ) CJK COMPATIBILITY IDEOGRAPH-F9E6
+F9E7;88CF;88CF;88CF;88CF; # (裏; 裏; 裏; 裏; 裏; ) CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8;88E1;88E1;88E1;88E1; # (裡; 裡; 裡; 裡; 裡; ) CJK COMPATIBILITY IDEOGRAPH-F9E8
+F9E9;91CC;91CC;91CC;91CC; # (里; 里; 里; 里; 里; ) CJK COMPATIBILITY IDEOGRAPH-F9E9
+F9EA;96E2;96E2;96E2;96E2; # (離; 離; 離; 離; 離; ) CJK COMPATIBILITY IDEOGRAPH-F9EA
+F9EB;533F;533F;533F;533F; # (匿; 匿; 匿; 匿; 匿; ) CJK COMPATIBILITY IDEOGRAPH-F9EB
+F9EC;6EBA;6EBA;6EBA;6EBA; # (溺; 溺; 溺; 溺; 溺; ) CJK COMPATIBILITY IDEOGRAPH-F9EC
+F9ED;541D;541D;541D;541D; # (吝; 吝; 吝; 吝; 吝; ) CJK COMPATIBILITY IDEOGRAPH-F9ED
+F9EE;71D0;71D0;71D0;71D0; # (燐; 燐; 燐; 燐; 燐; ) CJK COMPATIBILITY IDEOGRAPH-F9EE
+F9EF;7498;7498;7498;7498; # (璘; 璘; 璘; 璘; 璘; ) CJK COMPATIBILITY IDEOGRAPH-F9EF
+F9F0;85FA;85FA;85FA;85FA; # (藺; 藺; 藺; 藺; 藺; ) CJK COMPATIBILITY IDEOGRAPH-F9F0
+F9F1;96A3;96A3;96A3;96A3; # (隣; 隣; 隣; 隣; 隣; ) CJK COMPATIBILITY IDEOGRAPH-F9F1
+F9F2;9C57;9C57;9C57;9C57; # (鱗; 鱗; 鱗; 鱗; 鱗; ) CJK COMPATIBILITY IDEOGRAPH-F9F2
+F9F3;9E9F;9E9F;9E9F;9E9F; # (麟; 麟; 麟; 麟; 麟; ) CJK COMPATIBILITY IDEOGRAPH-F9F3
+F9F4;6797;6797;6797;6797; # (林; 林; 林; 林; 林; ) CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9F5;6DCB;6DCB;6DCB;6DCB; # (淋; 淋; 淋; 淋; 淋; ) CJK COMPATIBILITY IDEOGRAPH-F9F5
+F9F6;81E8;81E8;81E8;81E8; # (臨; 臨; 臨; 臨; 臨; ) CJK COMPATIBILITY IDEOGRAPH-F9F6
+F9F7;7ACB;7ACB;7ACB;7ACB; # (立; 立; 立; 立; 立; ) CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8;7B20;7B20;7B20;7B20; # (笠; 笠; 笠; 笠; 笠; ) CJK COMPATIBILITY IDEOGRAPH-F9F8
+F9F9;7C92;7C92;7C92;7C92; # (粒; 粒; 粒; 粒; 粒; ) CJK COMPATIBILITY IDEOGRAPH-F9F9
+F9FA;72C0;72C0;72C0;72C0; # (狀; 狀; 狀; 狀; 狀; ) CJK COMPATIBILITY IDEOGRAPH-F9FA
+F9FB;7099;7099;7099;7099; # (炙; 炙; 炙; 炙; 炙; ) CJK COMPATIBILITY IDEOGRAPH-F9FB
+F9FC;8B58;8B58;8B58;8B58; # (識; 識; 識; 識; 識; ) CJK COMPATIBILITY IDEOGRAPH-F9FC
+F9FD;4EC0;4EC0;4EC0;4EC0; # (什; 什; 什; 什; 什; ) CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9FE;8336;8336;8336;8336; # (茶; 茶; 茶; 茶; 茶; ) CJK COMPATIBILITY IDEOGRAPH-F9FE
+F9FF;523A;523A;523A;523A; # (刺; 刺; 刺; 刺; 刺; ) CJK COMPATIBILITY IDEOGRAPH-F9FF
+FA00;5207;5207;5207;5207; # (切; 切; 切; 切; 切; ) CJK COMPATIBILITY IDEOGRAPH-FA00
+FA01;5EA6;5EA6;5EA6;5EA6; # (度; 度; 度; 度; 度; ) CJK COMPATIBILITY IDEOGRAPH-FA01
+FA02;62D3;62D3;62D3;62D3; # (拓; 拓; 拓; 拓; 拓; ) CJK COMPATIBILITY IDEOGRAPH-FA02
+FA03;7CD6;7CD6;7CD6;7CD6; # (糖; 糖; 糖; 糖; 糖; ) CJK COMPATIBILITY IDEOGRAPH-FA03
+FA04;5B85;5B85;5B85;5B85; # (宅; 宅; 宅; 宅; 宅; ) CJK COMPATIBILITY IDEOGRAPH-FA04
+FA05;6D1E;6D1E;6D1E;6D1E; # (洞; 洞; 洞; 洞; 洞; ) CJK COMPATIBILITY IDEOGRAPH-FA05
+FA06;66B4;66B4;66B4;66B4; # (暴; 暴; 暴; 暴; 暴; ) CJK COMPATIBILITY IDEOGRAPH-FA06
+FA07;8F3B;8F3B;8F3B;8F3B; # (輻; 輻; 輻; 輻; 輻; ) CJK COMPATIBILITY IDEOGRAPH-FA07
+FA08;884C;884C;884C;884C; # (行; 行; 行; 行; 行; ) CJK COMPATIBILITY IDEOGRAPH-FA08
+FA09;964D;964D;964D;964D; # (降; 降; 降; 降; 降; ) CJK COMPATIBILITY IDEOGRAPH-FA09
+FA0A;898B;898B;898B;898B; # (見; 見; 見; 見; 見; ) CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA0B;5ED3;5ED3;5ED3;5ED3; # (廓; 廓; 廓; 廓; 廓; ) CJK COMPATIBILITY IDEOGRAPH-FA0B
+FA0C;5140;5140;5140;5140; # (兀; 兀; 兀; 兀; 兀; ) CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA0D;55C0;55C0;55C0;55C0; # (嗀; 嗀; 嗀; 嗀; 嗀; ) CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10;585A;585A;585A;585A; # (塚; 塚; 塚; 塚; 塚; ) CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12;6674;6674;6674;6674; # (晴; 晴; 晴; 晴; 晴; ) CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15;51DE;51DE;51DE;51DE; # (凞; 凞; 凞; 凞; 凞; ) CJK COMPATIBILITY IDEOGRAPH-FA15
+FA16;732A;732A;732A;732A; # (猪; 猪; 猪; 猪; 猪; ) CJK COMPATIBILITY IDEOGRAPH-FA16
+FA17;76CA;76CA;76CA;76CA; # (益; 益; 益; 益; 益; ) CJK COMPATIBILITY IDEOGRAPH-FA17
+FA18;793C;793C;793C;793C; # (礼; 礼; 礼; 礼; 礼; ) CJK COMPATIBILITY IDEOGRAPH-FA18
+FA19;795E;795E;795E;795E; # (神; 神; 神; 神; 神; ) CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A;7965;7965;7965;7965; # (祥; 祥; 祥; 祥; 祥; ) CJK COMPATIBILITY IDEOGRAPH-FA1A
+FA1B;798F;798F;798F;798F; # (福; 福; 福; 福; 福; ) CJK COMPATIBILITY IDEOGRAPH-FA1B
+FA1C;9756;9756;9756;9756; # (靖; 靖; 靖; 靖; 靖; ) CJK COMPATIBILITY IDEOGRAPH-FA1C
+FA1D;7CBE;7CBE;7CBE;7CBE; # (精; 精; 精; 精; 精; ) CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA1E;7FBD;7FBD;7FBD;7FBD; # (羽; 羽; 羽; 羽; 羽; ) CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20;8612;8612;8612;8612; # (蘒; 蘒; 蘒; 蘒; 蘒; ) CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22;8AF8;8AF8;8AF8;8AF8; # (諸; 諸; 諸; 諸; 諸; ) CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25;9038;9038;9038;9038; # (逸; 逸; 逸; 逸; 逸; ) CJK COMPATIBILITY IDEOGRAPH-FA25
+FA26;90FD;90FD;90FD;90FD; # (都; 都; 都; 都; 都; ) CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A;98EF;98EF;98EF;98EF; # (飯; 飯; 飯; 飯; 飯; ) CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B;98FC;98FC;98FC;98FC; # (飼; 飼; 飼; 飼; 飼; ) CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C;9928;9928;9928;9928; # (館; 館; 館; 館; 館; ) CJK COMPATIBILITY IDEOGRAPH-FA2C
+FA2D;9DB4;9DB4;9DB4;9DB4; # (鶴; 鶴; 鶴; 鶴; 鶴; ) CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA2E;90DE;90DE;90DE;90DE; # (郞; 郞; 郞; 郞; 郞; ) CJK COMPATIBILITY IDEOGRAPH-FA2E
+FA2F;96B7;96B7;96B7;96B7; # (隷; 隷; 隷; 隷; 隷; ) CJK COMPATIBILITY IDEOGRAPH-FA2F
+FA30;4FAE;4FAE;4FAE;4FAE; # (侮; 侮; 侮; 侮; 侮; ) CJK COMPATIBILITY IDEOGRAPH-FA30
+FA31;50E7;50E7;50E7;50E7; # (僧; 僧; 僧; 僧; 僧; ) CJK COMPATIBILITY IDEOGRAPH-FA31
+FA32;514D;514D;514D;514D; # (免; 免; 免; 免; 免; ) CJK COMPATIBILITY IDEOGRAPH-FA32
+FA33;52C9;52C9;52C9;52C9; # (勉; 勉; 勉; 勉; 勉; ) CJK COMPATIBILITY IDEOGRAPH-FA33
+FA34;52E4;52E4;52E4;52E4; # (勤; 勤; 勤; 勤; 勤; ) CJK COMPATIBILITY IDEOGRAPH-FA34
+FA35;5351;5351;5351;5351; # (卑; 卑; 卑; 卑; 卑; ) CJK COMPATIBILITY IDEOGRAPH-FA35
+FA36;559D;559D;559D;559D; # (喝; 喝; 喝; 喝; 喝; ) CJK COMPATIBILITY IDEOGRAPH-FA36
+FA37;5606;5606;5606;5606; # (嘆; 嘆; 嘆; 嘆; 嘆; ) CJK COMPATIBILITY IDEOGRAPH-FA37
+FA38;5668;5668;5668;5668; # (器; 器; 器; 器; 器; ) CJK COMPATIBILITY IDEOGRAPH-FA38
+FA39;5840;5840;5840;5840; # (塀; 塀; 塀; 塀; 塀; ) CJK COMPATIBILITY IDEOGRAPH-FA39
+FA3A;58A8;58A8;58A8;58A8; # (墨; 墨; 墨; 墨; 墨; ) CJK COMPATIBILITY IDEOGRAPH-FA3A
+FA3B;5C64;5C64;5C64;5C64; # (層; 層; 層; 層; 層; ) CJK COMPATIBILITY IDEOGRAPH-FA3B
+FA3C;5C6E;5C6E;5C6E;5C6E; # (屮; 屮; 屮; 屮; 屮; ) CJK COMPATIBILITY IDEOGRAPH-FA3C
+FA3D;6094;6094;6094;6094; # (悔; 悔; 悔; 悔; 悔; ) CJK COMPATIBILITY IDEOGRAPH-FA3D
+FA3E;6168;6168;6168;6168; # (慨; 慨; 慨; 慨; 慨; ) CJK COMPATIBILITY IDEOGRAPH-FA3E
+FA3F;618E;618E;618E;618E; # (憎; 憎; 憎; 憎; 憎; ) CJK COMPATIBILITY IDEOGRAPH-FA3F
+FA40;61F2;61F2;61F2;61F2; # (懲; 懲; 懲; 懲; 懲; ) CJK COMPATIBILITY IDEOGRAPH-FA40
+FA41;654F;654F;654F;654F; # (敏; 敏; 敏; 敏; 敏; ) CJK COMPATIBILITY IDEOGRAPH-FA41
+FA42;65E2;65E2;65E2;65E2; # (既; 既; 既; 既; 既; ) CJK COMPATIBILITY IDEOGRAPH-FA42
+FA43;6691;6691;6691;6691; # (暑; 暑; 暑; 暑; 暑; ) CJK COMPATIBILITY IDEOGRAPH-FA43
+FA44;6885;6885;6885;6885; # (梅; 梅; 梅; 梅; 梅; ) CJK COMPATIBILITY IDEOGRAPH-FA44
+FA45;6D77;6D77;6D77;6D77; # (海; 海; 海; 海; 海; ) CJK COMPATIBILITY IDEOGRAPH-FA45
+FA46;6E1A;6E1A;6E1A;6E1A; # (渚; 渚; 渚; 渚; 渚; ) CJK COMPATIBILITY IDEOGRAPH-FA46
+FA47;6F22;6F22;6F22;6F22; # (漢; 漢; 漢; 漢; 漢; ) CJK COMPATIBILITY IDEOGRAPH-FA47
+FA48;716E;716E;716E;716E; # (煮; 煮; 煮; 煮; 煮; ) CJK COMPATIBILITY IDEOGRAPH-FA48
+FA49;722B;722B;722B;722B; # (爫; 爫; 爫; 爫; 爫; ) CJK COMPATIBILITY IDEOGRAPH-FA49
+FA4A;7422;7422;7422;7422; # (琢; 琢; 琢; 琢; 琢; ) CJK COMPATIBILITY IDEOGRAPH-FA4A
+FA4B;7891;7891;7891;7891; # (碑; 碑; 碑; 碑; 碑; ) CJK COMPATIBILITY IDEOGRAPH-FA4B
+FA4C;793E;793E;793E;793E; # (社; 社; 社; 社; 社; ) CJK COMPATIBILITY IDEOGRAPH-FA4C
+FA4D;7949;7949;7949;7949; # (祉; 祉; 祉; 祉; 祉; ) CJK COMPATIBILITY IDEOGRAPH-FA4D
+FA4E;7948;7948;7948;7948; # (祈; 祈; 祈; 祈; 祈; ) CJK COMPATIBILITY IDEOGRAPH-FA4E
+FA4F;7950;7950;7950;7950; # (祐; 祐; 祐; 祐; 祐; ) CJK COMPATIBILITY IDEOGRAPH-FA4F
+FA50;7956;7956;7956;7956; # (祖; 祖; 祖; 祖; 祖; ) CJK COMPATIBILITY IDEOGRAPH-FA50
+FA51;795D;795D;795D;795D; # (祝; 祝; 祝; 祝; 祝; ) CJK COMPATIBILITY IDEOGRAPH-FA51
+FA52;798D;798D;798D;798D; # (禍; 禍; 禍; 禍; 禍; ) CJK COMPATIBILITY IDEOGRAPH-FA52
+FA53;798E;798E;798E;798E; # (禎; 禎; 禎; 禎; 禎; ) CJK COMPATIBILITY IDEOGRAPH-FA53
+FA54;7A40;7A40;7A40;7A40; # (穀; 穀; 穀; 穀; 穀; ) CJK COMPATIBILITY IDEOGRAPH-FA54
+FA55;7A81;7A81;7A81;7A81; # (突; 突; 突; 突; 突; ) CJK COMPATIBILITY IDEOGRAPH-FA55
+FA56;7BC0;7BC0;7BC0;7BC0; # (節; 節; 節; 節; 節; ) CJK COMPATIBILITY IDEOGRAPH-FA56
+FA57;7DF4;7DF4;7DF4;7DF4; # (練; 練; 練; 練; 練; ) CJK COMPATIBILITY IDEOGRAPH-FA57
+FA58;7E09;7E09;7E09;7E09; # (縉; 縉; 縉; 縉; 縉; ) CJK COMPATIBILITY IDEOGRAPH-FA58
+FA59;7E41;7E41;7E41;7E41; # (繁; 繁; 繁; 繁; 繁; ) CJK COMPATIBILITY IDEOGRAPH-FA59
+FA5A;7F72;7F72;7F72;7F72; # (署; 署; 署; 署; 署; ) CJK COMPATIBILITY IDEOGRAPH-FA5A
+FA5B;8005;8005;8005;8005; # (者; 者; 者; 者; 者; ) CJK COMPATIBILITY IDEOGRAPH-FA5B
+FA5C;81ED;81ED;81ED;81ED; # (臭; 臭; 臭; 臭; 臭; ) CJK COMPATIBILITY IDEOGRAPH-FA5C
+FA5D;8279;8279;8279;8279; # (艹; 艹; 艹; 艹; 艹; ) CJK COMPATIBILITY IDEOGRAPH-FA5D
+FA5E;8279;8279;8279;8279; # (艹; 艹; 艹; 艹; 艹; ) CJK COMPATIBILITY IDEOGRAPH-FA5E
+FA5F;8457;8457;8457;8457; # (著; 著; 著; 著; 著; ) CJK COMPATIBILITY IDEOGRAPH-FA5F
+FA60;8910;8910;8910;8910; # (褐; 褐; 褐; 褐; 褐; ) CJK COMPATIBILITY IDEOGRAPH-FA60
+FA61;8996;8996;8996;8996; # (視; 視; 視; 視; 視; ) CJK COMPATIBILITY IDEOGRAPH-FA61
+FA62;8B01;8B01;8B01;8B01; # (謁; 謁; 謁; 謁; 謁; ) CJK COMPATIBILITY IDEOGRAPH-FA62
+FA63;8B39;8B39;8B39;8B39; # (謹; 謹; 謹; 謹; 謹; ) CJK COMPATIBILITY IDEOGRAPH-FA63
+FA64;8CD3;8CD3;8CD3;8CD3; # (賓; 賓; 賓; 賓; 賓; ) CJK COMPATIBILITY IDEOGRAPH-FA64
+FA65;8D08;8D08;8D08;8D08; # (贈; 贈; 贈; 贈; 贈; ) CJK COMPATIBILITY IDEOGRAPH-FA65
+FA66;8FB6;8FB6;8FB6;8FB6; # (辶; 辶; 辶; 辶; 辶; ) CJK COMPATIBILITY IDEOGRAPH-FA66
+FA67;9038;9038;9038;9038; # (逸; 逸; 逸; 逸; 逸; ) CJK COMPATIBILITY IDEOGRAPH-FA67
+FA68;96E3;96E3;96E3;96E3; # (難; 難; 難; 難; 難; ) CJK COMPATIBILITY IDEOGRAPH-FA68
+FA69;97FF;97FF;97FF;97FF; # (響; 響; 響; 響; 響; ) CJK COMPATIBILITY IDEOGRAPH-FA69
+FA6A;983B;983B;983B;983B; # (頻; 頻; 頻; 頻; 頻; ) CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA6B;6075;6075;6075;6075; # (恵; 恵; 恵; 恵; 恵; ) CJK COMPATIBILITY IDEOGRAPH-FA6B
+FA6C;242EE;242EE;242EE;242EE; # (𤋮; 𤋮; 𤋮; 𤋮; 𤋮; ) CJK COMPATIBILITY IDEOGRAPH-FA6C
+FA6D;8218;8218;8218;8218; # (舘; 舘; 舘; 舘; 舘; ) CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA70;4E26;4E26;4E26;4E26; # (並; 並; 並; 並; 並; ) CJK COMPATIBILITY IDEOGRAPH-FA70
+FA71;51B5;51B5;51B5;51B5; # (况; 况; 况; 况; 况; ) CJK COMPATIBILITY IDEOGRAPH-FA71
+FA72;5168;5168;5168;5168; # (全; 全; 全; 全; 全; ) CJK COMPATIBILITY IDEOGRAPH-FA72
+FA73;4F80;4F80;4F80;4F80; # (侀; 侀; 侀; 侀; 侀; ) CJK COMPATIBILITY IDEOGRAPH-FA73
+FA74;5145;5145;5145;5145; # (充; 充; 充; 充; 充; ) CJK COMPATIBILITY IDEOGRAPH-FA74
+FA75;5180;5180;5180;5180; # (冀; 冀; 冀; 冀; 冀; ) CJK COMPATIBILITY IDEOGRAPH-FA75
+FA76;52C7;52C7;52C7;52C7; # (勇; 勇; 勇; 勇; 勇; ) CJK COMPATIBILITY IDEOGRAPH-FA76
+FA77;52FA;52FA;52FA;52FA; # (勺; 勺; 勺; 勺; 勺; ) CJK COMPATIBILITY IDEOGRAPH-FA77
+FA78;559D;559D;559D;559D; # (喝; 喝; 喝; 喝; 喝; ) CJK COMPATIBILITY IDEOGRAPH-FA78
+FA79;5555;5555;5555;5555; # (啕; 啕; 啕; 啕; 啕; ) CJK COMPATIBILITY IDEOGRAPH-FA79
+FA7A;5599;5599;5599;5599; # (喙; 喙; 喙; 喙; 喙; ) CJK COMPATIBILITY IDEOGRAPH-FA7A
+FA7B;55E2;55E2;55E2;55E2; # (嗢; 嗢; 嗢; 嗢; 嗢; ) CJK COMPATIBILITY IDEOGRAPH-FA7B
+FA7C;585A;585A;585A;585A; # (塚; 塚; 塚; 塚; 塚; ) CJK COMPATIBILITY IDEOGRAPH-FA7C
+FA7D;58B3;58B3;58B3;58B3; # (墳; 墳; 墳; 墳; 墳; ) CJK COMPATIBILITY IDEOGRAPH-FA7D
+FA7E;5944;5944;5944;5944; # (奄; 奄; 奄; 奄; 奄; ) CJK COMPATIBILITY IDEOGRAPH-FA7E
+FA7F;5954;5954;5954;5954; # (奔; 奔; 奔; 奔; 奔; ) CJK COMPATIBILITY IDEOGRAPH-FA7F
+FA80;5A62;5A62;5A62;5A62; # (婢; 婢; 婢; 婢; 婢; ) CJK COMPATIBILITY IDEOGRAPH-FA80
+FA81;5B28;5B28;5B28;5B28; # (嬨; 嬨; 嬨; 嬨; 嬨; ) CJK COMPATIBILITY IDEOGRAPH-FA81
+FA82;5ED2;5ED2;5ED2;5ED2; # (廒; 廒; 廒; 廒; 廒; ) CJK COMPATIBILITY IDEOGRAPH-FA82
+FA83;5ED9;5ED9;5ED9;5ED9; # (廙; 廙; 廙; 廙; 廙; ) CJK COMPATIBILITY IDEOGRAPH-FA83
+FA84;5F69;5F69;5F69;5F69; # (彩; 彩; 彩; 彩; 彩; ) CJK COMPATIBILITY IDEOGRAPH-FA84
+FA85;5FAD;5FAD;5FAD;5FAD; # (徭; 徭; 徭; 徭; 徭; ) CJK COMPATIBILITY IDEOGRAPH-FA85
+FA86;60D8;60D8;60D8;60D8; # (惘; 惘; 惘; 惘; 惘; ) CJK COMPATIBILITY IDEOGRAPH-FA86
+FA87;614E;614E;614E;614E; # (慎; 慎; 慎; 慎; 慎; ) CJK COMPATIBILITY IDEOGRAPH-FA87
+FA88;6108;6108;6108;6108; # (愈; 愈; 愈; 愈; 愈; ) CJK COMPATIBILITY IDEOGRAPH-FA88
+FA89;618E;618E;618E;618E; # (憎; 憎; 憎; 憎; 憎; ) CJK COMPATIBILITY IDEOGRAPH-FA89
+FA8A;6160;6160;6160;6160; # (慠; 慠; 慠; 慠; 慠; ) CJK COMPATIBILITY IDEOGRAPH-FA8A
+FA8B;61F2;61F2;61F2;61F2; # (懲; 懲; 懲; 懲; 懲; ) CJK COMPATIBILITY IDEOGRAPH-FA8B
+FA8C;6234;6234;6234;6234; # (戴; 戴; 戴; 戴; 戴; ) CJK COMPATIBILITY IDEOGRAPH-FA8C
+FA8D;63C4;63C4;63C4;63C4; # (揄; 揄; 揄; 揄; 揄; ) CJK COMPATIBILITY IDEOGRAPH-FA8D
+FA8E;641C;641C;641C;641C; # (搜; 搜; 搜; 搜; 搜; ) CJK COMPATIBILITY IDEOGRAPH-FA8E
+FA8F;6452;6452;6452;6452; # (摒; 摒; 摒; 摒; 摒; ) CJK COMPATIBILITY IDEOGRAPH-FA8F
+FA90;6556;6556;6556;6556; # (敖; 敖; 敖; 敖; 敖; ) CJK COMPATIBILITY IDEOGRAPH-FA90
+FA91;6674;6674;6674;6674; # (晴; 晴; 晴; 晴; 晴; ) CJK COMPATIBILITY IDEOGRAPH-FA91
+FA92;6717;6717;6717;6717; # (朗; 朗; 朗; 朗; 朗; ) CJK COMPATIBILITY IDEOGRAPH-FA92
+FA93;671B;671B;671B;671B; # (望; 望; 望; 望; 望; ) CJK COMPATIBILITY IDEOGRAPH-FA93
+FA94;6756;6756;6756;6756; # (杖; 杖; 杖; 杖; 杖; ) CJK COMPATIBILITY IDEOGRAPH-FA94
+FA95;6B79;6B79;6B79;6B79; # (歹; 歹; 歹; 歹; 歹; ) CJK COMPATIBILITY IDEOGRAPH-FA95
+FA96;6BBA;6BBA;6BBA;6BBA; # (殺; 殺; 殺; 殺; 殺; ) CJK COMPATIBILITY IDEOGRAPH-FA96
+FA97;6D41;6D41;6D41;6D41; # (流; 流; 流; 流; 流; ) CJK COMPATIBILITY IDEOGRAPH-FA97
+FA98;6EDB;6EDB;6EDB;6EDB; # (滛; 滛; 滛; 滛; 滛; ) CJK COMPATIBILITY IDEOGRAPH-FA98
+FA99;6ECB;6ECB;6ECB;6ECB; # (滋; 滋; 滋; 滋; 滋; ) CJK COMPATIBILITY IDEOGRAPH-FA99
+FA9A;6F22;6F22;6F22;6F22; # (漢; 漢; 漢; 漢; 漢; ) CJK COMPATIBILITY IDEOGRAPH-FA9A
+FA9B;701E;701E;701E;701E; # (瀞; 瀞; 瀞; 瀞; 瀞; ) CJK COMPATIBILITY IDEOGRAPH-FA9B
+FA9C;716E;716E;716E;716E; # (煮; 煮; 煮; 煮; 煮; ) CJK COMPATIBILITY IDEOGRAPH-FA9C
+FA9D;77A7;77A7;77A7;77A7; # (瞧; 瞧; 瞧; 瞧; 瞧; ) CJK COMPATIBILITY IDEOGRAPH-FA9D
+FA9E;7235;7235;7235;7235; # (爵; 爵; 爵; 爵; 爵; ) CJK COMPATIBILITY IDEOGRAPH-FA9E
+FA9F;72AF;72AF;72AF;72AF; # (犯; 犯; 犯; 犯; 犯; ) CJK COMPATIBILITY IDEOGRAPH-FA9F
+FAA0;732A;732A;732A;732A; # (猪; 猪; 猪; 猪; 猪; ) CJK COMPATIBILITY IDEOGRAPH-FAA0
+FAA1;7471;7471;7471;7471; # (瑱; 瑱; 瑱; 瑱; 瑱; ) CJK COMPATIBILITY IDEOGRAPH-FAA1
+FAA2;7506;7506;7506;7506; # (甆; 甆; 甆; 甆; 甆; ) CJK COMPATIBILITY IDEOGRAPH-FAA2
+FAA3;753B;753B;753B;753B; # (画; 画; 画; 画; 画; ) CJK COMPATIBILITY IDEOGRAPH-FAA3
+FAA4;761D;761D;761D;761D; # (瘝; 瘝; 瘝; 瘝; 瘝; ) CJK COMPATIBILITY IDEOGRAPH-FAA4
+FAA5;761F;761F;761F;761F; # (瘟; 瘟; 瘟; 瘟; 瘟; ) CJK COMPATIBILITY IDEOGRAPH-FAA5
+FAA6;76CA;76CA;76CA;76CA; # (益; 益; 益; 益; 益; ) CJK COMPATIBILITY IDEOGRAPH-FAA6
+FAA7;76DB;76DB;76DB;76DB; # (盛; 盛; 盛; 盛; 盛; ) CJK COMPATIBILITY IDEOGRAPH-FAA7
+FAA8;76F4;76F4;76F4;76F4; # (直; 直; 直; 直; 直; ) CJK COMPATIBILITY IDEOGRAPH-FAA8
+FAA9;774A;774A;774A;774A; # (睊; 睊; 睊; 睊; 睊; ) CJK COMPATIBILITY IDEOGRAPH-FAA9
+FAAA;7740;7740;7740;7740; # (着; 着; 着; 着; 着; ) CJK COMPATIBILITY IDEOGRAPH-FAAA
+FAAB;78CC;78CC;78CC;78CC; # (磌; 磌; 磌; 磌; 磌; ) CJK COMPATIBILITY IDEOGRAPH-FAAB
+FAAC;7AB1;7AB1;7AB1;7AB1; # (窱; 窱; 窱; 窱; 窱; ) CJK COMPATIBILITY IDEOGRAPH-FAAC
+FAAD;7BC0;7BC0;7BC0;7BC0; # (節; 節; 節; 節; 節; ) CJK COMPATIBILITY IDEOGRAPH-FAAD
+FAAE;7C7B;7C7B;7C7B;7C7B; # (类; 类; 类; 类; 类; ) CJK COMPATIBILITY IDEOGRAPH-FAAE
+FAAF;7D5B;7D5B;7D5B;7D5B; # (絛; 絛; 絛; 絛; 絛; ) CJK COMPATIBILITY IDEOGRAPH-FAAF
+FAB0;7DF4;7DF4;7DF4;7DF4; # (練; 練; 練; 練; 練; ) CJK COMPATIBILITY IDEOGRAPH-FAB0
+FAB1;7F3E;7F3E;7F3E;7F3E; # (缾; 缾; 缾; 缾; 缾; ) CJK COMPATIBILITY IDEOGRAPH-FAB1
+FAB2;8005;8005;8005;8005; # (者; 者; 者; 者; 者; ) CJK COMPATIBILITY IDEOGRAPH-FAB2
+FAB3;8352;8352;8352;8352; # (荒; 荒; 荒; 荒; 荒; ) CJK COMPATIBILITY IDEOGRAPH-FAB3
+FAB4;83EF;83EF;83EF;83EF; # (華; 華; 華; 華; 華; ) CJK COMPATIBILITY IDEOGRAPH-FAB4
+FAB5;8779;8779;8779;8779; # (蝹; 蝹; 蝹; 蝹; 蝹; ) CJK COMPATIBILITY IDEOGRAPH-FAB5
+FAB6;8941;8941;8941;8941; # (襁; 襁; 襁; 襁; 襁; ) CJK COMPATIBILITY IDEOGRAPH-FAB6
+FAB7;8986;8986;8986;8986; # (覆; 覆; 覆; 覆; 覆; ) CJK COMPATIBILITY IDEOGRAPH-FAB7
+FAB8;8996;8996;8996;8996; # (視; 視; 視; 視; 視; ) CJK COMPATIBILITY IDEOGRAPH-FAB8
+FAB9;8ABF;8ABF;8ABF;8ABF; # (調; 調; 調; 調; 調; ) CJK COMPATIBILITY IDEOGRAPH-FAB9
+FABA;8AF8;8AF8;8AF8;8AF8; # (諸; 諸; 諸; 諸; 諸; ) CJK COMPATIBILITY IDEOGRAPH-FABA
+FABB;8ACB;8ACB;8ACB;8ACB; # (請; 請; 請; 請; 請; ) CJK COMPATIBILITY IDEOGRAPH-FABB
+FABC;8B01;8B01;8B01;8B01; # (謁; 謁; 謁; 謁; 謁; ) CJK COMPATIBILITY IDEOGRAPH-FABC
+FABD;8AFE;8AFE;8AFE;8AFE; # (諾; 諾; 諾; 諾; 諾; ) CJK COMPATIBILITY IDEOGRAPH-FABD
+FABE;8AED;8AED;8AED;8AED; # (諭; 諭; 諭; 諭; 諭; ) CJK COMPATIBILITY IDEOGRAPH-FABE
+FABF;8B39;8B39;8B39;8B39; # (謹; 謹; 謹; 謹; 謹; ) CJK COMPATIBILITY IDEOGRAPH-FABF
+FAC0;8B8A;8B8A;8B8A;8B8A; # (變; 變; 變; 變; 變; ) CJK COMPATIBILITY IDEOGRAPH-FAC0
+FAC1;8D08;8D08;8D08;8D08; # (贈; 贈; 贈; 贈; 贈; ) CJK COMPATIBILITY IDEOGRAPH-FAC1
+FAC2;8F38;8F38;8F38;8F38; # (輸; 輸; 輸; 輸; 輸; ) CJK COMPATIBILITY IDEOGRAPH-FAC2
+FAC3;9072;9072;9072;9072; # (遲; 遲; 遲; 遲; 遲; ) CJK COMPATIBILITY IDEOGRAPH-FAC3
+FAC4;9199;9199;9199;9199; # (醙; 醙; 醙; 醙; 醙; ) CJK COMPATIBILITY IDEOGRAPH-FAC4
+FAC5;9276;9276;9276;9276; # (鉶; 鉶; 鉶; 鉶; 鉶; ) CJK COMPATIBILITY IDEOGRAPH-FAC5
+FAC6;967C;967C;967C;967C; # (陼; 陼; 陼; 陼; 陼; ) CJK COMPATIBILITY IDEOGRAPH-FAC6
+FAC7;96E3;96E3;96E3;96E3; # (難; 難; 難; 難; 難; ) CJK COMPATIBILITY IDEOGRAPH-FAC7
+FAC8;9756;9756;9756;9756; # (靖; 靖; 靖; 靖; 靖; ) CJK COMPATIBILITY IDEOGRAPH-FAC8
+FAC9;97DB;97DB;97DB;97DB; # (韛; 韛; 韛; 韛; 韛; ) CJK COMPATIBILITY IDEOGRAPH-FAC9
+FACA;97FF;97FF;97FF;97FF; # (響; 響; 響; 響; 響; ) CJK COMPATIBILITY IDEOGRAPH-FACA
+FACB;980B;980B;980B;980B; # (頋; 頋; 頋; 頋; 頋; ) CJK COMPATIBILITY IDEOGRAPH-FACB
+FACC;983B;983B;983B;983B; # (頻; 頻; 頻; 頻; 頻; ) CJK COMPATIBILITY IDEOGRAPH-FACC
+FACD;9B12;9B12;9B12;9B12; # (鬒; 鬒; 鬒; 鬒; 鬒; ) CJK COMPATIBILITY IDEOGRAPH-FACD
+FACE;9F9C;9F9C;9F9C;9F9C; # (龜; 龜; 龜; 龜; 龜; ) CJK COMPATIBILITY IDEOGRAPH-FACE
+FACF;2284A;2284A;2284A;2284A; # (𢡊; 𢡊; 𢡊; 𢡊; 𢡊; ) CJK COMPATIBILITY IDEOGRAPH-FACF
+FAD0;22844;22844;22844;22844; # (𢡄; 𢡄; 𢡄; 𢡄; 𢡄; ) CJK COMPATIBILITY IDEOGRAPH-FAD0
+FAD1;233D5;233D5;233D5;233D5; # (𣏕; 𣏕; 𣏕; 𣏕; 𣏕; ) CJK COMPATIBILITY IDEOGRAPH-FAD1
+FAD2;3B9D;3B9D;3B9D;3B9D; # (㮝; 㮝; 㮝; 㮝; 㮝; ) CJK COMPATIBILITY IDEOGRAPH-FAD2
+FAD3;4018;4018;4018;4018; # (䀘; 䀘; 䀘; 䀘; 䀘; ) CJK COMPATIBILITY IDEOGRAPH-FAD3
+FAD4;4039;4039;4039;4039; # (䀹; 䀹; 䀹; 䀹; 䀹; ) CJK COMPATIBILITY IDEOGRAPH-FAD4
+FAD5;25249;25249;25249;25249; # (𥉉; 𥉉; 𥉉; 𥉉; 𥉉; ) CJK COMPATIBILITY IDEOGRAPH-FAD5
+FAD6;25CD0;25CD0;25CD0;25CD0; # (𥳐; 𥳐; 𥳐; 𥳐; 𥳐; ) CJK COMPATIBILITY IDEOGRAPH-FAD6
+FAD7;27ED3;27ED3;27ED3;27ED3; # (𧻓; 𧻓; 𧻓; 𧻓; 𧻓; ) CJK COMPATIBILITY IDEOGRAPH-FAD7
+FAD8;9F43;9F43;9F43;9F43; # (齃; 齃; 齃; 齃; 齃; ) CJK COMPATIBILITY IDEOGRAPH-FAD8
+FAD9;9F8E;9F8E;9F8E;9F8E; # (龎; 龎; 龎; 龎; 龎; ) CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB00;FB00;FB00;0066 0066;0066 0066; # (ff; ff; ff; ff; ff; ) LATIN SMALL LIGATURE FF
+FB01;FB01;FB01;0066 0069;0066 0069; # (fi; fi; fi; fi; fi; ) LATIN SMALL LIGATURE FI
+FB02;FB02;FB02;0066 006C;0066 006C; # (fl; fl; fl; fl; fl; ) LATIN SMALL LIGATURE FL
+FB03;FB03;FB03;0066 0066 0069;0066 0066 0069; # (ffi; ffi; ffi; ffi; ffi; ) LATIN SMALL LIGATURE FFI
+FB04;FB04;FB04;0066 0066 006C;0066 0066 006C; # (ffl; ffl; ffl; ffl; ffl; ) LATIN SMALL LIGATURE FFL
+FB05;FB05;FB05;0073 0074;0073 0074; # (ſt; ſt; ſt; st; st; ) LATIN SMALL LIGATURE LONG S T
+FB06;FB06;FB06;0073 0074;0073 0074; # (st; st; st; st; st; ) LATIN SMALL LIGATURE ST
+FB13;FB13;FB13;0574 0576;0574 0576; # (ﬓ; ﬓ; ﬓ; մն; մն; ) ARMENIAN SMALL LIGATURE MEN NOW
+FB14;FB14;FB14;0574 0565;0574 0565; # (ﬔ; ﬔ; ﬔ; մե; մե; ) ARMENIAN SMALL LIGATURE MEN ECH
+FB15;FB15;FB15;0574 056B;0574 056B; # (ﬕ; ﬕ; ﬕ; մի; մի; ) ARMENIAN SMALL LIGATURE MEN INI
+FB16;FB16;FB16;057E 0576;057E 0576; # (ﬖ; ﬖ; ﬖ; վն; վն; ) ARMENIAN SMALL LIGATURE VEW NOW
+FB17;FB17;FB17;0574 056D;0574 056D; # (ﬗ; ﬗ; ﬗ; մխ; մխ; ) ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;05D9 05B4;05D9 05B4;05D9 05B4;05D9 05B4; # (יִ; י◌ִ; י◌ִ; י◌ִ; י◌ִ; ) HEBREW LETTER YOD WITH HIRIQ
+FB1F;05F2 05B7;05F2 05B7;05F2 05B7;05F2 05B7; # (ײַ; ײ◌ַ; ײ◌ַ; ײ◌ַ; ײ◌ַ; ) HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB20;FB20;FB20;05E2;05E2; # (ﬠ; ﬠ; ﬠ; ע; ע; ) HEBREW LETTER ALTERNATIVE AYIN
+FB21;FB21;FB21;05D0;05D0; # (ﬡ; ﬡ; ﬡ; א; א; ) HEBREW LETTER WIDE ALEF
+FB22;FB22;FB22;05D3;05D3; # (ﬢ; ﬢ; ﬢ; ד; ד; ) HEBREW LETTER WIDE DALET
+FB23;FB23;FB23;05D4;05D4; # (ﬣ; ﬣ; ﬣ; ה; ה; ) HEBREW LETTER WIDE HE
+FB24;FB24;FB24;05DB;05DB; # (ﬤ; ﬤ; ﬤ; כ; כ; ) HEBREW LETTER WIDE KAF
+FB25;FB25;FB25;05DC;05DC; # (ﬥ; ﬥ; ﬥ; ל; ל; ) HEBREW LETTER WIDE LAMED
+FB26;FB26;FB26;05DD;05DD; # (ﬦ; ﬦ; ﬦ; ם; ם; ) HEBREW LETTER WIDE FINAL MEM
+FB27;FB27;FB27;05E8;05E8; # (ﬧ; ﬧ; ﬧ; ר; ר; ) HEBREW LETTER WIDE RESH
+FB28;FB28;FB28;05EA;05EA; # (ﬨ; ﬨ; ﬨ; ת; ת; ) HEBREW LETTER WIDE TAV
+FB29;FB29;FB29;002B;002B; # (﬩; ﬩; ﬩; +; +; ) HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A;05E9 05C1;05E9 05C1;05E9 05C1;05E9 05C1; # (שׁ; ש◌ׁ; ש◌ׁ; ש◌ׁ; ש◌ׁ; ) HEBREW LETTER SHIN WITH SHIN DOT
+FB2B;05E9 05C2;05E9 05C2;05E9 05C2;05E9 05C2; # (שׂ; ש◌ׂ; ש◌ׂ; ש◌ׂ; ש◌ׂ; ) HEBREW LETTER SHIN WITH SIN DOT
+FB2C;05E9 05BC 05C1;05E9 05BC 05C1;05E9 05BC 05C1;05E9 05BC 05C1; # (שּׁ; ש◌ּ◌ׁ; ש◌ּ◌ׁ; ש◌ּ◌ׁ; ש◌ּ◌ׁ; ) HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D;05E9 05BC 05C2;05E9 05BC 05C2;05E9 05BC 05C2;05E9 05BC 05C2; # (שּׂ; ש◌ּ◌ׂ; ש◌ּ◌ׂ; ש◌ּ◌ׂ; ש◌ּ◌ׂ; ) HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E;05D0 05B7;05D0 05B7;05D0 05B7;05D0 05B7; # (אַ; א◌ַ; א◌ַ; א◌ַ; א◌ַ; ) HEBREW LETTER ALEF WITH PATAH
+FB2F;05D0 05B8;05D0 05B8;05D0 05B8;05D0 05B8; # (אָ; א◌ָ; א◌ָ; א◌ָ; א◌ָ; ) HEBREW LETTER ALEF WITH QAMATS
+FB30;05D0 05BC;05D0 05BC;05D0 05BC;05D0 05BC; # (אּ; א◌ּ; א◌ּ; א◌ּ; א◌ּ; ) HEBREW LETTER ALEF WITH MAPIQ
+FB31;05D1 05BC;05D1 05BC;05D1 05BC;05D1 05BC; # (בּ; ב◌ּ; ב◌ּ; ב◌ּ; ב◌ּ; ) HEBREW LETTER BET WITH DAGESH
+FB32;05D2 05BC;05D2 05BC;05D2 05BC;05D2 05BC; # (גּ; ג◌ּ; ג◌ּ; ג◌ּ; ג◌ּ; ) HEBREW LETTER GIMEL WITH DAGESH
+FB33;05D3 05BC;05D3 05BC;05D3 05BC;05D3 05BC; # (דּ; ד◌ּ; ד◌ּ; ד◌ּ; ד◌ּ; ) HEBREW LETTER DALET WITH DAGESH
+FB34;05D4 05BC;05D4 05BC;05D4 05BC;05D4 05BC; # (הּ; ה◌ּ; ה◌ּ; ה◌ּ; ה◌ּ; ) HEBREW LETTER HE WITH MAPIQ
+FB35;05D5 05BC;05D5 05BC;05D5 05BC;05D5 05BC; # (וּ; ו◌ּ; ו◌ּ; ו◌ּ; ו◌ּ; ) HEBREW LETTER VAV WITH DAGESH
+FB36;05D6 05BC;05D6 05BC;05D6 05BC;05D6 05BC; # (זּ; ז◌ּ; ז◌ּ; ז◌ּ; ז◌ּ; ) HEBREW LETTER ZAYIN WITH DAGESH
+FB38;05D8 05BC;05D8 05BC;05D8 05BC;05D8 05BC; # (טּ; ט◌ּ; ט◌ּ; ט◌ּ; ט◌ּ; ) HEBREW LETTER TET WITH DAGESH
+FB39;05D9 05BC;05D9 05BC;05D9 05BC;05D9 05BC; # (יּ; י◌ּ; י◌ּ; י◌ּ; י◌ּ; ) HEBREW LETTER YOD WITH DAGESH
+FB3A;05DA 05BC;05DA 05BC;05DA 05BC;05DA 05BC; # (ךּ; ך◌ּ; ך◌ּ; ך◌ּ; ך◌ּ; ) HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B;05DB 05BC;05DB 05BC;05DB 05BC;05DB 05BC; # (כּ; כ◌ּ; כ◌ּ; כ◌ּ; כ◌ּ; ) HEBREW LETTER KAF WITH DAGESH
+FB3C;05DC 05BC;05DC 05BC;05DC 05BC;05DC 05BC; # (לּ; ל◌ּ; ל◌ּ; ל◌ּ; ל◌ּ; ) HEBREW LETTER LAMED WITH DAGESH
+FB3E;05DE 05BC;05DE 05BC;05DE 05BC;05DE 05BC; # (מּ; מ◌ּ; מ◌ּ; מ◌ּ; מ◌ּ; ) HEBREW LETTER MEM WITH DAGESH
+FB40;05E0 05BC;05E0 05BC;05E0 05BC;05E0 05BC; # (נּ; נ◌ּ; נ◌ּ; נ◌ּ; נ◌ּ; ) HEBREW LETTER NUN WITH DAGESH
+FB41;05E1 05BC;05E1 05BC;05E1 05BC;05E1 05BC; # (סּ; ס◌ּ; ס◌ּ; ס◌ּ; ס◌ּ; ) HEBREW LETTER SAMEKH WITH DAGESH
+FB43;05E3 05BC;05E3 05BC;05E3 05BC;05E3 05BC; # (ףּ; ף◌ּ; ף◌ּ; ף◌ּ; ף◌ּ; ) HEBREW LETTER FINAL PE WITH DAGESH
+FB44;05E4 05BC;05E4 05BC;05E4 05BC;05E4 05BC; # (פּ; פ◌ּ; פ◌ּ; פ◌ּ; פ◌ּ; ) HEBREW LETTER PE WITH DAGESH
+FB46;05E6 05BC;05E6 05BC;05E6 05BC;05E6 05BC; # (צּ; צ◌ּ; צ◌ּ; צ◌ּ; צ◌ּ; ) HEBREW LETTER TSADI WITH DAGESH
+FB47;05E7 05BC;05E7 05BC;05E7 05BC;05E7 05BC; # (קּ; ק◌ּ; ק◌ּ; ק◌ּ; ק◌ּ; ) HEBREW LETTER QOF WITH DAGESH
+FB48;05E8 05BC;05E8 05BC;05E8 05BC;05E8 05BC; # (רּ; ר◌ּ; ר◌ּ; ר◌ּ; ר◌ּ; ) HEBREW LETTER RESH WITH DAGESH
+FB49;05E9 05BC;05E9 05BC;05E9 05BC;05E9 05BC; # (שּ; ש◌ּ; ש◌ּ; ש◌ּ; ש◌ּ; ) HEBREW LETTER SHIN WITH DAGESH
+FB4A;05EA 05BC;05EA 05BC;05EA 05BC;05EA 05BC; # (תּ; ת◌ּ; ת◌ּ; ת◌ּ; ת◌ּ; ) HEBREW LETTER TAV WITH DAGESH
+FB4B;05D5 05B9;05D5 05B9;05D5 05B9;05D5 05B9; # (וֹ; ו◌ֹ; ו◌ֹ; ו◌ֹ; ו◌ֹ; ) HEBREW LETTER VAV WITH HOLAM
+FB4C;05D1 05BF;05D1 05BF;05D1 05BF;05D1 05BF; # (בֿ; ב◌ֿ; ב◌ֿ; ב◌ֿ; ב◌ֿ; ) HEBREW LETTER BET WITH RAFE
+FB4D;05DB 05BF;05DB 05BF;05DB 05BF;05DB 05BF; # (כֿ; כ◌ֿ; כ◌ֿ; כ◌ֿ; כ◌ֿ; ) HEBREW LETTER KAF WITH RAFE
+FB4E;05E4 05BF;05E4 05BF;05E4 05BF;05E4 05BF; # (פֿ; פ◌ֿ; פ◌ֿ; פ◌ֿ; פ◌ֿ; ) HEBREW LETTER PE WITH RAFE
+FB4F;FB4F;FB4F;05D0 05DC;05D0 05DC; # (ﭏ; ﭏ; ﭏ; אל; אל; ) HEBREW LIGATURE ALEF LAMED
+FB50;FB50;FB50;0671;0671; # (ﭐ; ﭐ; ﭐ; ٱ; ٱ; ) ARABIC LETTER ALEF WASLA ISOLATED FORM
+FB51;FB51;FB51;0671;0671; # (ﭑ; ﭑ; ﭑ; ٱ; ٱ; ) ARABIC LETTER ALEF WASLA FINAL FORM
+FB52;FB52;FB52;067B;067B; # (ﭒ; ﭒ; ﭒ; ٻ; ٻ; ) ARABIC LETTER BEEH ISOLATED FORM
+FB53;FB53;FB53;067B;067B; # (ﭓ; ﭓ; ﭓ; ٻ; ٻ; ) ARABIC LETTER BEEH FINAL FORM
+FB54;FB54;FB54;067B;067B; # (ﭔ; ﭔ; ﭔ; ٻ; ٻ; ) ARABIC LETTER BEEH INITIAL FORM
+FB55;FB55;FB55;067B;067B; # (ﭕ; ﭕ; ﭕ; ٻ; ٻ; ) ARABIC LETTER BEEH MEDIAL FORM
+FB56;FB56;FB56;067E;067E; # (ﭖ; ﭖ; ﭖ; پ; پ; ) ARABIC LETTER PEH ISOLATED FORM
+FB57;FB57;FB57;067E;067E; # (ﭗ; ﭗ; ﭗ; پ; پ; ) ARABIC LETTER PEH FINAL FORM
+FB58;FB58;FB58;067E;067E; # (ﭘ; ﭘ; ﭘ; پ; پ; ) ARABIC LETTER PEH INITIAL FORM
+FB59;FB59;FB59;067E;067E; # (ﭙ; ﭙ; ﭙ; پ; پ; ) ARABIC LETTER PEH MEDIAL FORM
+FB5A;FB5A;FB5A;0680;0680; # (ﭚ; ﭚ; ﭚ; ڀ; ڀ; ) ARABIC LETTER BEHEH ISOLATED FORM
+FB5B;FB5B;FB5B;0680;0680; # (ﭛ; ﭛ; ﭛ; ڀ; ڀ; ) ARABIC LETTER BEHEH FINAL FORM
+FB5C;FB5C;FB5C;0680;0680; # (ﭜ; ﭜ; ﭜ; ڀ; ڀ; ) ARABIC LETTER BEHEH INITIAL FORM
+FB5D;FB5D;FB5D;0680;0680; # (ﭝ; ﭝ; ﭝ; ڀ; ڀ; ) ARABIC LETTER BEHEH MEDIAL FORM
+FB5E;FB5E;FB5E;067A;067A; # (ﭞ; ﭞ; ﭞ; ٺ; ٺ; ) ARABIC LETTER TTEHEH ISOLATED FORM
+FB5F;FB5F;FB5F;067A;067A; # (ﭟ; ﭟ; ﭟ; ٺ; ٺ; ) ARABIC LETTER TTEHEH FINAL FORM
+FB60;FB60;FB60;067A;067A; # (ﭠ; ﭠ; ﭠ; ٺ; ٺ; ) ARABIC LETTER TTEHEH INITIAL FORM
+FB61;FB61;FB61;067A;067A; # (ﭡ; ﭡ; ﭡ; ٺ; ٺ; ) ARABIC LETTER TTEHEH MEDIAL FORM
+FB62;FB62;FB62;067F;067F; # (ﭢ; ﭢ; ﭢ; ٿ; ٿ; ) ARABIC LETTER TEHEH ISOLATED FORM
+FB63;FB63;FB63;067F;067F; # (ﭣ; ﭣ; ﭣ; ٿ; ٿ; ) ARABIC LETTER TEHEH FINAL FORM
+FB64;FB64;FB64;067F;067F; # (ﭤ; ﭤ; ﭤ; ٿ; ٿ; ) ARABIC LETTER TEHEH INITIAL FORM
+FB65;FB65;FB65;067F;067F; # (ﭥ; ﭥ; ﭥ; ٿ; ٿ; ) ARABIC LETTER TEHEH MEDIAL FORM
+FB66;FB66;FB66;0679;0679; # (ﭦ; ﭦ; ﭦ; ٹ; ٹ; ) ARABIC LETTER TTEH ISOLATED FORM
+FB67;FB67;FB67;0679;0679; # (ﭧ; ﭧ; ﭧ; ٹ; ٹ; ) ARABIC LETTER TTEH FINAL FORM
+FB68;FB68;FB68;0679;0679; # (ﭨ; ﭨ; ﭨ; ٹ; ٹ; ) ARABIC LETTER TTEH INITIAL FORM
+FB69;FB69;FB69;0679;0679; # (ﭩ; ﭩ; ﭩ; ٹ; ٹ; ) ARABIC LETTER TTEH MEDIAL FORM
+FB6A;FB6A;FB6A;06A4;06A4; # (ﭪ; ﭪ; ﭪ; ڤ; ڤ; ) ARABIC LETTER VEH ISOLATED FORM
+FB6B;FB6B;FB6B;06A4;06A4; # (ﭫ; ﭫ; ﭫ; ڤ; ڤ; ) ARABIC LETTER VEH FINAL FORM
+FB6C;FB6C;FB6C;06A4;06A4; # (ﭬ; ﭬ; ﭬ; ڤ; ڤ; ) ARABIC LETTER VEH INITIAL FORM
+FB6D;FB6D;FB6D;06A4;06A4; # (ﭭ; ﭭ; ﭭ; ڤ; ڤ; ) ARABIC LETTER VEH MEDIAL FORM
+FB6E;FB6E;FB6E;06A6;06A6; # (ﭮ; ﭮ; ﭮ; ڦ; ڦ; ) ARABIC LETTER PEHEH ISOLATED FORM
+FB6F;FB6F;FB6F;06A6;06A6; # (ﭯ; ﭯ; ﭯ; ڦ; ڦ; ) ARABIC LETTER PEHEH FINAL FORM
+FB70;FB70;FB70;06A6;06A6; # (ﭰ; ﭰ; ﭰ; ڦ; ڦ; ) ARABIC LETTER PEHEH INITIAL FORM
+FB71;FB71;FB71;06A6;06A6; # (ﭱ; ﭱ; ﭱ; ڦ; ڦ; ) ARABIC LETTER PEHEH MEDIAL FORM
+FB72;FB72;FB72;0684;0684; # (ﭲ; ﭲ; ﭲ; ڄ; ڄ; ) ARABIC LETTER DYEH ISOLATED FORM
+FB73;FB73;FB73;0684;0684; # (ﭳ; ﭳ; ﭳ; ڄ; ڄ; ) ARABIC LETTER DYEH FINAL FORM
+FB74;FB74;FB74;0684;0684; # (ﭴ; ﭴ; ﭴ; ڄ; ڄ; ) ARABIC LETTER DYEH INITIAL FORM
+FB75;FB75;FB75;0684;0684; # (ﭵ; ﭵ; ﭵ; ڄ; ڄ; ) ARABIC LETTER DYEH MEDIAL FORM
+FB76;FB76;FB76;0683;0683; # (ﭶ; ﭶ; ﭶ; ڃ; ڃ; ) ARABIC LETTER NYEH ISOLATED FORM
+FB77;FB77;FB77;0683;0683; # (ﭷ; ﭷ; ﭷ; ڃ; ڃ; ) ARABIC LETTER NYEH FINAL FORM
+FB78;FB78;FB78;0683;0683; # (ﭸ; ﭸ; ﭸ; ڃ; ڃ; ) ARABIC LETTER NYEH INITIAL FORM
+FB79;FB79;FB79;0683;0683; # (ﭹ; ﭹ; ﭹ; ڃ; ڃ; ) ARABIC LETTER NYEH MEDIAL FORM
+FB7A;FB7A;FB7A;0686;0686; # (ﭺ; ﭺ; ﭺ; چ; چ; ) ARABIC LETTER TCHEH ISOLATED FORM
+FB7B;FB7B;FB7B;0686;0686; # (ﭻ; ﭻ; ﭻ; چ; چ; ) ARABIC LETTER TCHEH FINAL FORM
+FB7C;FB7C;FB7C;0686;0686; # (ﭼ; ﭼ; ﭼ; چ; چ; ) ARABIC LETTER TCHEH INITIAL FORM
+FB7D;FB7D;FB7D;0686;0686; # (ﭽ; ﭽ; ﭽ; چ; چ; ) ARABIC LETTER TCHEH MEDIAL FORM
+FB7E;FB7E;FB7E;0687;0687; # (ﭾ; ﭾ; ﭾ; ڇ; ڇ; ) ARABIC LETTER TCHEHEH ISOLATED FORM
+FB7F;FB7F;FB7F;0687;0687; # (ﭿ; ﭿ; ﭿ; ڇ; ڇ; ) ARABIC LETTER TCHEHEH FINAL FORM
+FB80;FB80;FB80;0687;0687; # (ﮀ; ﮀ; ﮀ; ڇ; ڇ; ) ARABIC LETTER TCHEHEH INITIAL FORM
+FB81;FB81;FB81;0687;0687; # (ﮁ; ﮁ; ﮁ; ڇ; ڇ; ) ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82;FB82;FB82;068D;068D; # (ﮂ; ﮂ; ﮂ; ڍ; ڍ; ) ARABIC LETTER DDAHAL ISOLATED FORM
+FB83;FB83;FB83;068D;068D; # (ﮃ; ﮃ; ﮃ; ڍ; ڍ; ) ARABIC LETTER DDAHAL FINAL FORM
+FB84;FB84;FB84;068C;068C; # (ﮄ; ﮄ; ﮄ; ڌ; ڌ; ) ARABIC LETTER DAHAL ISOLATED FORM
+FB85;FB85;FB85;068C;068C; # (ﮅ; ﮅ; ﮅ; ڌ; ڌ; ) ARABIC LETTER DAHAL FINAL FORM
+FB86;FB86;FB86;068E;068E; # (ﮆ; ﮆ; ﮆ; ڎ; ڎ; ) ARABIC LETTER DUL ISOLATED FORM
+FB87;FB87;FB87;068E;068E; # (ﮇ; ﮇ; ﮇ; ڎ; ڎ; ) ARABIC LETTER DUL FINAL FORM
+FB88;FB88;FB88;0688;0688; # (ﮈ; ﮈ; ﮈ; ڈ; ڈ; ) ARABIC LETTER DDAL ISOLATED FORM
+FB89;FB89;FB89;0688;0688; # (ﮉ; ﮉ; ﮉ; ڈ; ڈ; ) ARABIC LETTER DDAL FINAL FORM
+FB8A;FB8A;FB8A;0698;0698; # (ﮊ; ﮊ; ﮊ; ژ; ژ; ) ARABIC LETTER JEH ISOLATED FORM
+FB8B;FB8B;FB8B;0698;0698; # (ﮋ; ﮋ; ﮋ; ژ; ژ; ) ARABIC LETTER JEH FINAL FORM
+FB8C;FB8C;FB8C;0691;0691; # (ﮌ; ﮌ; ﮌ; ڑ; ڑ; ) ARABIC LETTER RREH ISOLATED FORM
+FB8D;FB8D;FB8D;0691;0691; # (ﮍ; ﮍ; ﮍ; ڑ; ڑ; ) ARABIC LETTER RREH FINAL FORM
+FB8E;FB8E;FB8E;06A9;06A9; # (ﮎ; ﮎ; ﮎ; ک; ک; ) ARABIC LETTER KEHEH ISOLATED FORM
+FB8F;FB8F;FB8F;06A9;06A9; # (ﮏ; ﮏ; ﮏ; ک; ک; ) ARABIC LETTER KEHEH FINAL FORM
+FB90;FB90;FB90;06A9;06A9; # (ﮐ; ﮐ; ﮐ; ک; ک; ) ARABIC LETTER KEHEH INITIAL FORM
+FB91;FB91;FB91;06A9;06A9; # (ﮑ; ﮑ; ﮑ; ک; ک; ) ARABIC LETTER KEHEH MEDIAL FORM
+FB92;FB92;FB92;06AF;06AF; # (ﮒ; ﮒ; ﮒ; گ; گ; ) ARABIC LETTER GAF ISOLATED FORM
+FB93;FB93;FB93;06AF;06AF; # (ﮓ; ﮓ; ﮓ; گ; گ; ) ARABIC LETTER GAF FINAL FORM
+FB94;FB94;FB94;06AF;06AF; # (ﮔ; ﮔ; ﮔ; گ; گ; ) ARABIC LETTER GAF INITIAL FORM
+FB95;FB95;FB95;06AF;06AF; # (ﮕ; ﮕ; ﮕ; گ; گ; ) ARABIC LETTER GAF MEDIAL FORM
+FB96;FB96;FB96;06B3;06B3; # (ﮖ; ﮖ; ﮖ; ڳ; ڳ; ) ARABIC LETTER GUEH ISOLATED FORM
+FB97;FB97;FB97;06B3;06B3; # (ﮗ; ﮗ; ﮗ; ڳ; ڳ; ) ARABIC LETTER GUEH FINAL FORM
+FB98;FB98;FB98;06B3;06B3; # (ﮘ; ﮘ; ﮘ; ڳ; ڳ; ) ARABIC LETTER GUEH INITIAL FORM
+FB99;FB99;FB99;06B3;06B3; # (ﮙ; ﮙ; ﮙ; ڳ; ڳ; ) ARABIC LETTER GUEH MEDIAL FORM
+FB9A;FB9A;FB9A;06B1;06B1; # (ﮚ; ﮚ; ﮚ; ڱ; ڱ; ) ARABIC LETTER NGOEH ISOLATED FORM
+FB9B;FB9B;FB9B;06B1;06B1; # (ﮛ; ﮛ; ﮛ; ڱ; ڱ; ) ARABIC LETTER NGOEH FINAL FORM
+FB9C;FB9C;FB9C;06B1;06B1; # (ﮜ; ﮜ; ﮜ; ڱ; ڱ; ) ARABIC LETTER NGOEH INITIAL FORM
+FB9D;FB9D;FB9D;06B1;06B1; # (ﮝ; ﮝ; ﮝ; ڱ; ڱ; ) ARABIC LETTER NGOEH MEDIAL FORM
+FB9E;FB9E;FB9E;06BA;06BA; # (ﮞ; ﮞ; ﮞ; ں; ں; ) ARABIC LETTER NOON GHUNNA ISOLATED FORM
+FB9F;FB9F;FB9F;06BA;06BA; # (ﮟ; ﮟ; ﮟ; ں; ں; ) ARABIC LETTER NOON GHUNNA FINAL FORM
+FBA0;FBA0;FBA0;06BB;06BB; # (ﮠ; ﮠ; ﮠ; ڻ; ڻ; ) ARABIC LETTER RNOON ISOLATED FORM
+FBA1;FBA1;FBA1;06BB;06BB; # (ﮡ; ﮡ; ﮡ; ڻ; ڻ; ) ARABIC LETTER RNOON FINAL FORM
+FBA2;FBA2;FBA2;06BB;06BB; # (ﮢ; ﮢ; ﮢ; ڻ; ڻ; ) ARABIC LETTER RNOON INITIAL FORM
+FBA3;FBA3;FBA3;06BB;06BB; # (ﮣ; ﮣ; ﮣ; ڻ; ڻ; ) ARABIC LETTER RNOON MEDIAL FORM
+FBA4;FBA4;FBA4;06C0;06D5 0654; # (ﮤ; ﮤ; ﮤ; ۀ; ە◌ٔ; ) ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
+FBA5;FBA5;FBA5;06C0;06D5 0654; # (ﮥ; ﮥ; ﮥ; ۀ; ە◌ٔ; ) ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6;FBA6;FBA6;06C1;06C1; # (ﮦ; ﮦ; ﮦ; ہ; ہ; ) ARABIC LETTER HEH GOAL ISOLATED FORM
+FBA7;FBA7;FBA7;06C1;06C1; # (ﮧ; ﮧ; ﮧ; ہ; ہ; ) ARABIC LETTER HEH GOAL FINAL FORM
+FBA8;FBA8;FBA8;06C1;06C1; # (ﮨ; ﮨ; ﮨ; ہ; ہ; ) ARABIC LETTER HEH GOAL INITIAL FORM
+FBA9;FBA9;FBA9;06C1;06C1; # (ﮩ; ﮩ; ﮩ; ہ; ہ; ) ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA;FBAA;FBAA;06BE;06BE; # (ﮪ; ﮪ; ﮪ; ھ; ھ; ) ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+FBAB;FBAB;FBAB;06BE;06BE; # (ﮫ; ﮫ; ﮫ; ھ; ھ; ) ARABIC LETTER HEH DOACHASHMEE FINAL FORM
+FBAC;FBAC;FBAC;06BE;06BE; # (ﮬ; ﮬ; ﮬ; ھ; ھ; ) ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
+FBAD;FBAD;FBAD;06BE;06BE; # (ﮭ; ﮭ; ﮭ; ھ; ھ; ) ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE;FBAE;FBAE;06D2;06D2; # (ﮮ; ﮮ; ﮮ; ے; ے; ) ARABIC LETTER YEH BARREE ISOLATED FORM
+FBAF;FBAF;FBAF;06D2;06D2; # (ﮯ; ﮯ; ﮯ; ے; ے; ) ARABIC LETTER YEH BARREE FINAL FORM
+FBB0;FBB0;FBB0;06D3;06D2 0654; # (ﮰ; ﮰ; ﮰ; ۓ; ے◌ٔ; ) ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+FBB1;FBB1;FBB1;06D3;06D2 0654; # (ﮱ; ﮱ; ﮱ; ۓ; ے◌ٔ; ) ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3;FBD3;FBD3;06AD;06AD; # (ﯓ; ﯓ; ﯓ; ڭ; ڭ; ) ARABIC LETTER NG ISOLATED FORM
+FBD4;FBD4;FBD4;06AD;06AD; # (ﯔ; ﯔ; ﯔ; ڭ; ڭ; ) ARABIC LETTER NG FINAL FORM
+FBD5;FBD5;FBD5;06AD;06AD; # (ﯕ; ﯕ; ﯕ; ڭ; ڭ; ) ARABIC LETTER NG INITIAL FORM
+FBD6;FBD6;FBD6;06AD;06AD; # (ﯖ; ﯖ; ﯖ; ڭ; ڭ; ) ARABIC LETTER NG MEDIAL FORM
+FBD7;FBD7;FBD7;06C7;06C7; # (ﯗ; ﯗ; ﯗ; ۇ; ۇ; ) ARABIC LETTER U ISOLATED FORM
+FBD8;FBD8;FBD8;06C7;06C7; # (ﯘ; ﯘ; ﯘ; ۇ; ۇ; ) ARABIC LETTER U FINAL FORM
+FBD9;FBD9;FBD9;06C6;06C6; # (ﯙ; ﯙ; ﯙ; ۆ; ۆ; ) ARABIC LETTER OE ISOLATED FORM
+FBDA;FBDA;FBDA;06C6;06C6; # (ﯚ; ﯚ; ﯚ; ۆ; ۆ; ) ARABIC LETTER OE FINAL FORM
+FBDB;FBDB;FBDB;06C8;06C8; # (ﯛ; ﯛ; ﯛ; ۈ; ۈ; ) ARABIC LETTER YU ISOLATED FORM
+FBDC;FBDC;FBDC;06C8;06C8; # (ﯜ; ﯜ; ﯜ; ۈ; ۈ; ) ARABIC LETTER YU FINAL FORM
+FBDD;FBDD;FBDD;06C7 0674;06C7 0674; # (ﯝ; ﯝ; ﯝ; ۇٴ; ۇٴ; ) ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBDE;FBDE;FBDE;06CB;06CB; # (ﯞ; ﯞ; ﯞ; ۋ; ۋ; ) ARABIC LETTER VE ISOLATED FORM
+FBDF;FBDF;FBDF;06CB;06CB; # (ﯟ; ﯟ; ﯟ; ۋ; ۋ; ) ARABIC LETTER VE FINAL FORM
+FBE0;FBE0;FBE0;06C5;06C5; # (ﯠ; ﯠ; ﯠ; ۅ; ۅ; ) ARABIC LETTER KIRGHIZ OE ISOLATED FORM
+FBE1;FBE1;FBE1;06C5;06C5; # (ﯡ; ﯡ; ﯡ; ۅ; ۅ; ) ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2;FBE2;FBE2;06C9;06C9; # (ﯢ; ﯢ; ﯢ; ۉ; ۉ; ) ARABIC LETTER KIRGHIZ YU ISOLATED FORM
+FBE3;FBE3;FBE3;06C9;06C9; # (ﯣ; ﯣ; ﯣ; ۉ; ۉ; ) ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4;FBE4;FBE4;06D0;06D0; # (ﯤ; ﯤ; ﯤ; ې; ې; ) ARABIC LETTER E ISOLATED FORM
+FBE5;FBE5;FBE5;06D0;06D0; # (ﯥ; ﯥ; ﯥ; ې; ې; ) ARABIC LETTER E FINAL FORM
+FBE6;FBE6;FBE6;06D0;06D0; # (ﯦ; ﯦ; ﯦ; ې; ې; ) ARABIC LETTER E INITIAL FORM
+FBE7;FBE7;FBE7;06D0;06D0; # (ﯧ; ﯧ; ﯧ; ې; ې; ) ARABIC LETTER E MEDIAL FORM
+FBE8;FBE8;FBE8;0649;0649; # (ﯨ; ﯨ; ﯨ; ى; ى; ) ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9;FBE9;FBE9;0649;0649; # (ﯩ; ﯩ; ﯩ; ى; ى; ) ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA;FBEA;FBEA;0626 0627;064A 0654 0627; # (ﯪ; ﯪ; ﯪ; ئا; ي◌ٔا; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
+FBEB;FBEB;FBEB;0626 0627;064A 0654 0627; # (ﯫ; ﯫ; ﯫ; ئا; ي◌ٔا; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEC;FBEC;FBEC;0626 06D5;064A 0654 06D5; # (ﯬ; ﯬ; ﯬ; ئە; ي◌ٔە; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
+FBED;FBED;FBED;0626 06D5;064A 0654 06D5; # (ﯭ; ﯭ; ﯭ; ئە; ي◌ٔە; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEE;FBEE;FBEE;0626 0648;064A 0654 0648; # (ﯮ; ﯮ; ﯮ; ئو; ي◌ٔو; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
+FBEF;FBEF;FBEF;0626 0648;064A 0654 0648; # (ﯯ; ﯯ; ﯯ; ئو; ي◌ٔو; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBF0;FBF0;FBF0;0626 06C7;064A 0654 06C7; # (ﯰ; ﯰ; ﯰ; ئۇ; ي◌ٔۇ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
+FBF1;FBF1;FBF1;0626 06C7;064A 0654 06C7; # (ﯱ; ﯱ; ﯱ; ئۇ; ي◌ٔۇ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF2;FBF2;FBF2;0626 06C6;064A 0654 06C6; # (ﯲ; ﯲ; ﯲ; ئۆ; ي◌ٔۆ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
+FBF3;FBF3;FBF3;0626 06C6;064A 0654 06C6; # (ﯳ; ﯳ; ﯳ; ئۆ; ي◌ٔۆ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF4;FBF4;FBF4;0626 06C8;064A 0654 06C8; # (ﯴ; ﯴ; ﯴ; ئۈ; ي◌ٔۈ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
+FBF5;FBF5;FBF5;0626 06C8;064A 0654 06C8; # (ﯵ; ﯵ; ﯵ; ئۈ; ي◌ٔۈ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF6;FBF6;FBF6;0626 06D0;064A 0654 06D0; # (ﯶ; ﯶ; ﯶ; ئې; ي◌ٔې; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
+FBF7;FBF7;FBF7;0626 06D0;064A 0654 06D0; # (ﯷ; ﯷ; ﯷ; ئې; ي◌ٔې; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
+FBF8;FBF8;FBF8;0626 06D0;064A 0654 06D0; # (ﯸ; ﯸ; ﯸ; ئې; ي◌ٔې; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF9;FBF9;FBF9;0626 0649;064A 0654 0649; # (ﯹ; ﯹ; ﯹ; ئى; ي◌ٔى; ) ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FBFA;FBFA;FBFA;0626 0649;064A 0654 0649; # (ﯺ; ﯺ; ﯺ; ئى; ي◌ٔى; ) ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FBFB;FBFB;FBFB;0626 0649;064A 0654 0649; # (ﯻ; ﯻ; ﯻ; ئى; ي◌ٔى; ) ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC;FBFC;FBFC;06CC;06CC; # (ﯼ; ﯼ; ﯼ; ی; ی; ) ARABIC LETTER FARSI YEH ISOLATED FORM
+FBFD;FBFD;FBFD;06CC;06CC; # (ﯽ; ﯽ; ﯽ; ی; ی; ) ARABIC LETTER FARSI YEH FINAL FORM
+FBFE;FBFE;FBFE;06CC;06CC; # (ﯾ; ﯾ; ﯾ; ی; ی; ) ARABIC LETTER FARSI YEH INITIAL FORM
+FBFF;FBFF;FBFF;06CC;06CC; # (ﯿ; ﯿ; ﯿ; ی; ی; ) ARABIC LETTER FARSI YEH MEDIAL FORM
+FC00;FC00;FC00;0626 062C;064A 0654 062C; # (ﰀ; ﰀ; ﰀ; ئج; ي◌ٔج; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01;FC01;FC01;0626 062D;064A 0654 062D; # (ﰁ; ﰁ; ﰁ; ئح; ي◌ٔح; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02;FC02;FC02;0626 0645;064A 0654 0645; # (ﰂ; ﰂ; ﰂ; ئم; ي◌ٔم; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03;FC03;FC03;0626 0649;064A 0654 0649; # (ﰃ; ﰃ; ﰃ; ئى; ي◌ٔى; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04;FC04;FC04;0626 064A;064A 0654 064A; # (ﰄ; ﰄ; ﰄ; ئي; ي◌ٔي; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05;FC05;FC05;0628 062C;0628 062C; # (ﰅ; ﰅ; ﰅ; بج; بج; ) ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC06;FC06;FC06;0628 062D;0628 062D; # (ﰆ; ﰆ; ﰆ; بح; بح; ) ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FC07;FC07;FC07;0628 062E;0628 062E; # (ﰇ; ﰇ; ﰇ; بخ; بخ; ) ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FC08;FC08;FC08;0628 0645;0628 0645; # (ﰈ; ﰈ; ﰈ; بم; بم; ) ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC09;FC09;FC09;0628 0649;0628 0649; # (ﰉ; ﰉ; ﰉ; بى; بى; ) ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A;FC0A;FC0A;0628 064A;0628 064A; # (ﰊ; ﰊ; ﰊ; بي; بي; ) ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+FC0B;FC0B;FC0B;062A 062C;062A 062C; # (ﰋ; ﰋ; ﰋ; تج; تج; ) ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FC0C;FC0C;FC0C;062A 062D;062A 062D; # (ﰌ; ﰌ; ﰌ; تح; تح; ) ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FC0D;FC0D;FC0D;062A 062E;062A 062E; # (ﰍ; ﰍ; ﰍ; تخ; تخ; ) ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FC0E;FC0E;FC0E;062A 0645;062A 0645; # (ﰎ; ﰎ; ﰎ; تم; تم; ) ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FC0F;FC0F;FC0F;062A 0649;062A 0649; # (ﰏ; ﰏ; ﰏ; تى; تى; ) ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC10;FC10;FC10;062A 064A;062A 064A; # (ﰐ; ﰐ; ﰐ; تي; تي; ) ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+FC11;FC11;FC11;062B 062C;062B 062C; # (ﰑ; ﰑ; ﰑ; ثج; ثج; ) ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC12;FC12;FC12;062B 0645;062B 0645; # (ﰒ; ﰒ; ﰒ; ثم; ثم; ) ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC13;FC13;FC13;062B 0649;062B 0649; # (ﰓ; ﰓ; ﰓ; ثى; ثى; ) ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14;FC14;FC14;062B 064A;062B 064A; # (ﰔ; ﰔ; ﰔ; ثي; ثي; ) ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+FC15;FC15;FC15;062C 062D;062C 062D; # (ﰕ; ﰕ; ﰕ; جح; جح; ) ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FC16;FC16;FC16;062C 0645;062C 0645; # (ﰖ; ﰖ; ﰖ; جم; جم; ) ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FC17;FC17;FC17;062D 062C;062D 062C; # (ﰗ; ﰗ; ﰗ; حج; حج; ) ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FC18;FC18;FC18;062D 0645;062D 0645; # (ﰘ; ﰘ; ﰘ; حم; حم; ) ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FC19;FC19;FC19;062E 062C;062E 062C; # (ﰙ; ﰙ; ﰙ; خج; خج; ) ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A;FC1A;FC1A;062E 062D;062E 062D; # (ﰚ; ﰚ; ﰚ; خح; خح; ) ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FC1B;FC1B;FC1B;062E 0645;062E 0645; # (ﰛ; ﰛ; ﰛ; خم; خم; ) ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FC1C;FC1C;FC1C;0633 062C;0633 062C; # (ﰜ; ﰜ; ﰜ; سج; سج; ) ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FC1D;FC1D;FC1D;0633 062D;0633 062D; # (ﰝ; ﰝ; ﰝ; سح; سح; ) ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FC1E;FC1E;FC1E;0633 062E;0633 062E; # (ﰞ; ﰞ; ﰞ; سخ; سخ; ) ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FC1F;FC1F;FC1F;0633 0645;0633 0645; # (ﰟ; ﰟ; ﰟ; سم; سم; ) ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FC20;FC20;FC20;0635 062D;0635 062D; # (ﰠ; ﰠ; ﰠ; صح; صح; ) ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FC21;FC21;FC21;0635 0645;0635 0645; # (ﰡ; ﰡ; ﰡ; صم; صم; ) ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FC22;FC22;FC22;0636 062C;0636 062C; # (ﰢ; ﰢ; ﰢ; ضج; ضج; ) ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FC23;FC23;FC23;0636 062D;0636 062D; # (ﰣ; ﰣ; ﰣ; ضح; ضح; ) ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FC24;FC24;FC24;0636 062E;0636 062E; # (ﰤ; ﰤ; ﰤ; ضخ; ضخ; ) ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FC25;FC25;FC25;0636 0645;0636 0645; # (ﰥ; ﰥ; ﰥ; ضم; ضم; ) ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FC26;FC26;FC26;0637 062D;0637 062D; # (ﰦ; ﰦ; ﰦ; طح; طح; ) ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FC27;FC27;FC27;0637 0645;0637 0645; # (ﰧ; ﰧ; ﰧ; طم; طم; ) ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FC28;FC28;FC28;0638 0645;0638 0645; # (ﰨ; ﰨ; ﰨ; ظم; ظم; ) ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+FC29;FC29;FC29;0639 062C;0639 062C; # (ﰩ; ﰩ; ﰩ; عج; عج; ) ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FC2A;FC2A;FC2A;0639 0645;0639 0645; # (ﰪ; ﰪ; ﰪ; عم; عم; ) ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FC2B;FC2B;FC2B;063A 062C;063A 062C; # (ﰫ; ﰫ; ﰫ; غج; غج; ) ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FC2C;FC2C;FC2C;063A 0645;063A 0645; # (ﰬ; ﰬ; ﰬ; غم; غم; ) ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FC2D;FC2D;FC2D;0641 062C;0641 062C; # (ﰭ; ﰭ; ﰭ; فج; فج; ) ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FC2E;FC2E;FC2E;0641 062D;0641 062D; # (ﰮ; ﰮ; ﰮ; فح; فح; ) ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FC2F;FC2F;FC2F;0641 062E;0641 062E; # (ﰯ; ﰯ; ﰯ; فخ; فخ; ) ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FC30;FC30;FC30;0641 0645;0641 0645; # (ﰰ; ﰰ; ﰰ; فم; فم; ) ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FC31;FC31;FC31;0641 0649;0641 0649; # (ﰱ; ﰱ; ﰱ; فى; فى; ) ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32;FC32;FC32;0641 064A;0641 064A; # (ﰲ; ﰲ; ﰲ; في; في; ) ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+FC33;FC33;FC33;0642 062D;0642 062D; # (ﰳ; ﰳ; ﰳ; قح; قح; ) ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FC34;FC34;FC34;0642 0645;0642 0645; # (ﰴ; ﰴ; ﰴ; قم; قم; ) ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FC35;FC35;FC35;0642 0649;0642 0649; # (ﰵ; ﰵ; ﰵ; قى; قى; ) ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36;FC36;FC36;0642 064A;0642 064A; # (ﰶ; ﰶ; ﰶ; قي; قي; ) ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+FC37;FC37;FC37;0643 0627;0643 0627; # (ﰷ; ﰷ; ﰷ; كا; كا; ) ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FC38;FC38;FC38;0643 062C;0643 062C; # (ﰸ; ﰸ; ﰸ; كج; كج; ) ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FC39;FC39;FC39;0643 062D;0643 062D; # (ﰹ; ﰹ; ﰹ; كح; كح; ) ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FC3A;FC3A;FC3A;0643 062E;0643 062E; # (ﰺ; ﰺ; ﰺ; كخ; كخ; ) ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FC3B;FC3B;FC3B;0643 0644;0643 0644; # (ﰻ; ﰻ; ﰻ; كل; كل; ) ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FC3C;FC3C;FC3C;0643 0645;0643 0645; # (ﰼ; ﰼ; ﰼ; كم; كم; ) ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FC3D;FC3D;FC3D;0643 0649;0643 0649; # (ﰽ; ﰽ; ﰽ; كى; كى; ) ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E;FC3E;FC3E;0643 064A;0643 064A; # (ﰾ; ﰾ; ﰾ; كي; كي; ) ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+FC3F;FC3F;FC3F;0644 062C;0644 062C; # (ﰿ; ﰿ; ﰿ; لج; لج; ) ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FC40;FC40;FC40;0644 062D;0644 062D; # (ﱀ; ﱀ; ﱀ; لح; لح; ) ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FC41;FC41;FC41;0644 062E;0644 062E; # (ﱁ; ﱁ; ﱁ; لخ; لخ; ) ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FC42;FC42;FC42;0644 0645;0644 0645; # (ﱂ; ﱂ; ﱂ; لم; لم; ) ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FC43;FC43;FC43;0644 0649;0644 0649; # (ﱃ; ﱃ; ﱃ; لى; لى; ) ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44;FC44;FC44;0644 064A;0644 064A; # (ﱄ; ﱄ; ﱄ; لي; لي; ) ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+FC45;FC45;FC45;0645 062C;0645 062C; # (ﱅ; ﱅ; ﱅ; مج; مج; ) ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FC46;FC46;FC46;0645 062D;0645 062D; # (ﱆ; ﱆ; ﱆ; مح; مح; ) ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FC47;FC47;FC47;0645 062E;0645 062E; # (ﱇ; ﱇ; ﱇ; مخ; مخ; ) ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FC48;FC48;FC48;0645 0645;0645 0645; # (ﱈ; ﱈ; ﱈ; مم; مم; ) ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FC49;FC49;FC49;0645 0649;0645 0649; # (ﱉ; ﱉ; ﱉ; مى; مى; ) ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A;FC4A;FC4A;0645 064A;0645 064A; # (ﱊ; ﱊ; ﱊ; مي; مي; ) ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+FC4B;FC4B;FC4B;0646 062C;0646 062C; # (ﱋ; ﱋ; ﱋ; نج; نج; ) ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FC4C;FC4C;FC4C;0646 062D;0646 062D; # (ﱌ; ﱌ; ﱌ; نح; نح; ) ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FC4D;FC4D;FC4D;0646 062E;0646 062E; # (ﱍ; ﱍ; ﱍ; نخ; نخ; ) ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC4E;FC4E;FC4E;0646 0645;0646 0645; # (ﱎ; ﱎ; ﱎ; نم; نم; ) ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FC4F;FC4F;FC4F;0646 0649;0646 0649; # (ﱏ; ﱏ; ﱏ; نى; نى; ) ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC50;FC50;FC50;0646 064A;0646 064A; # (ﱐ; ﱐ; ﱐ; ني; ني; ) ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+FC51;FC51;FC51;0647 062C;0647 062C; # (ﱑ; ﱑ; ﱑ; هج; هج; ) ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FC52;FC52;FC52;0647 0645;0647 0645; # (ﱒ; ﱒ; ﱒ; هم; هم; ) ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FC53;FC53;FC53;0647 0649;0647 0649; # (ﱓ; ﱓ; ﱓ; هى; هى; ) ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54;FC54;FC54;0647 064A;0647 064A; # (ﱔ; ﱔ; ﱔ; هي; هي; ) ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+FC55;FC55;FC55;064A 062C;064A 062C; # (ﱕ; ﱕ; ﱕ; يج; يج; ) ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FC56;FC56;FC56;064A 062D;064A 062D; # (ﱖ; ﱖ; ﱖ; يح; يح; ) ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FC57;FC57;FC57;064A 062E;064A 062E; # (ﱗ; ﱗ; ﱗ; يخ; يخ; ) ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC58;FC58;FC58;064A 0645;064A 0645; # (ﱘ; ﱘ; ﱘ; يم; يم; ) ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FC59;FC59;FC59;064A 0649;064A 0649; # (ﱙ; ﱙ; ﱙ; يى; يى; ) ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A;FC5A;FC5A;064A 064A;064A 064A; # (ﱚ; ﱚ; ﱚ; يي; يي; ) ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+FC5B;FC5B;FC5B;0630 0670;0630 0670; # (ﱛ; ﱛ; ﱛ; ذ◌ٰ; ذ◌ٰ; ) ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C;FC5C;FC5C;0631 0670;0631 0670; # (ﱜ; ﱜ; ﱜ; ر◌ٰ; ر◌ٰ; ) ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D;FC5D;FC5D;0649 0670;0649 0670; # (ﱝ; ﱝ; ﱝ; ى◌ٰ; ى◌ٰ; ) ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E;FC5E;FC5E;0020 064C 0651;0020 064C 0651; # (ﱞ; ﱞ; ﱞ;  ◌ٌ◌ّ;  ◌ٌ◌ّ; ) ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F;FC5F;FC5F;0020 064D 0651;0020 064D 0651; # (ﱟ; ﱟ; ﱟ;  ◌ٍ◌ّ;  ◌ٍ◌ّ; ) ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+FC60;FC60;FC60;0020 064E 0651;0020 064E 0651; # (ﱠ; ﱠ; ﱠ;  ◌َ◌ّ;  ◌َ◌ّ; ) ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+FC61;FC61;FC61;0020 064F 0651;0020 064F 0651; # (ﱡ; ﱡ; ﱡ;  ◌ُ◌ّ;  ◌ُ◌ّ; ) ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+FC62;FC62;FC62;0020 0650 0651;0020 0650 0651; # (ﱢ; ﱢ; ﱢ;  ◌ِ◌ّ;  ◌ِ◌ّ; ) ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+FC63;FC63;FC63;0020 0651 0670;0020 0651 0670; # (ﱣ; ﱣ; ﱣ;  ◌ّ◌ٰ;  ◌ّ◌ٰ; ) ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64;FC64;FC64;0626 0631;064A 0654 0631; # (ﱤ; ﱤ; ﱤ; ئر; ي◌ٔر; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65;FC65;FC65;0626 0632;064A 0654 0632; # (ﱥ; ﱥ; ﱥ; ئز; ي◌ٔز; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66;FC66;FC66;0626 0645;064A 0654 0645; # (ﱦ; ﱦ; ﱦ; ئم; ي◌ٔم; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67;FC67;FC67;0626 0646;064A 0654 0646; # (ﱧ; ﱧ; ﱧ; ئن; ي◌ٔن; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68;FC68;FC68;0626 0649;064A 0654 0649; # (ﱨ; ﱨ; ﱨ; ئى; ي◌ٔى; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69;FC69;FC69;0626 064A;064A 0654 064A; # (ﱩ; ﱩ; ﱩ; ئي; ي◌ٔي; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A;FC6A;FC6A;0628 0631;0628 0631; # (ﱪ; ﱪ; ﱪ; بر; بر; ) ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B;FC6B;FC6B;0628 0632;0628 0632; # (ﱫ; ﱫ; ﱫ; بز; بز; ) ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC6C;FC6C;FC6C;0628 0645;0628 0645; # (ﱬ; ﱬ; ﱬ; بم; بم; ) ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC6D;FC6D;FC6D;0628 0646;0628 0646; # (ﱭ; ﱭ; ﱭ; بن; بن; ) ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FC6E;FC6E;FC6E;0628 0649;0628 0649; # (ﱮ; ﱮ; ﱮ; بى; بى; ) ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC6F;FC6F;FC6F;0628 064A;0628 064A; # (ﱯ; ﱯ; ﱯ; بي; بي; ) ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC70;FC70;FC70;062A 0631;062A 0631; # (ﱰ; ﱰ; ﱰ; تر; تر; ) ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71;FC71;FC71;062A 0632;062A 0632; # (ﱱ; ﱱ; ﱱ; تز; تز; ) ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FC72;FC72;FC72;062A 0645;062A 0645; # (ﱲ; ﱲ; ﱲ; تم; تم; ) ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC73;FC73;FC73;062A 0646;062A 0646; # (ﱳ; ﱳ; ﱳ; تن; تن; ) ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FC74;FC74;FC74;062A 0649;062A 0649; # (ﱴ; ﱴ; ﱴ; تى; تى; ) ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC75;FC75;FC75;062A 064A;062A 064A; # (ﱵ; ﱵ; ﱵ; تي; تي; ) ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC76;FC76;FC76;062B 0631;062B 0631; # (ﱶ; ﱶ; ﱶ; ثر; ثر; ) ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77;FC77;FC77;062B 0632;062B 0632; # (ﱷ; ﱷ; ﱷ; ثز; ثز; ) ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FC78;FC78;FC78;062B 0645;062B 0645; # (ﱸ; ﱸ; ﱸ; ثم; ثم; ) ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC79;FC79;FC79;062B 0646;062B 0646; # (ﱹ; ﱹ; ﱹ; ثن; ثن; ) ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FC7A;FC7A;FC7A;062B 0649;062B 0649; # (ﱺ; ﱺ; ﱺ; ثى; ثى; ) ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC7B;FC7B;FC7B;062B 064A;062B 064A; # (ﱻ; ﱻ; ﱻ; ثي; ثي; ) ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC7C;FC7C;FC7C;0641 0649;0641 0649; # (ﱼ; ﱼ; ﱼ; فى; فى; ) ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC7D;FC7D;FC7D;0641 064A;0641 064A; # (ﱽ; ﱽ; ﱽ; في; في; ) ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC7E;FC7E;FC7E;0642 0649;0642 0649; # (ﱾ; ﱾ; ﱾ; قى; قى; ) ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC7F;FC7F;FC7F;0642 064A;0642 064A; # (ﱿ; ﱿ; ﱿ; قي; قي; ) ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC80;FC80;FC80;0643 0627;0643 0627; # (ﲀ; ﲀ; ﲀ; كا; كا; ) ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC81;FC81;FC81;0643 0644;0643 0644; # (ﲁ; ﲁ; ﲁ; كل; كل; ) ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC82;FC82;FC82;0643 0645;0643 0645; # (ﲂ; ﲂ; ﲂ; كم; كم; ) ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC83;FC83;FC83;0643 0649;0643 0649; # (ﲃ; ﲃ; ﲃ; كى; كى; ) ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC84;FC84;FC84;0643 064A;0643 064A; # (ﲄ; ﲄ; ﲄ; كي; كي; ) ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC85;FC85;FC85;0644 0645;0644 0645; # (ﲅ; ﲅ; ﲅ; لم; لم; ) ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC86;FC86;FC86;0644 0649;0644 0649; # (ﲆ; ﲆ; ﲆ; لى; لى; ) ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC87;FC87;FC87;0644 064A;0644 064A; # (ﲇ; ﲇ; ﲇ; لي; لي; ) ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC88;FC88;FC88;0645 0627;0645 0627; # (ﲈ; ﲈ; ﲈ; ما; ما; ) ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FC89;FC89;FC89;0645 0645;0645 0645; # (ﲉ; ﲉ; ﲉ; مم; مم; ) ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC8A;FC8A;FC8A;0646 0631;0646 0631; # (ﲊ; ﲊ; ﲊ; نر; نر; ) ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B;FC8B;FC8B;0646 0632;0646 0632; # (ﲋ; ﲋ; ﲋ; نز; نز; ) ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FC8C;FC8C;FC8C;0646 0645;0646 0645; # (ﲌ; ﲌ; ﲌ; نم; نم; ) ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC8D;FC8D;FC8D;0646 0646;0646 0646; # (ﲍ; ﲍ; ﲍ; نن; نن; ) ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FC8E;FC8E;FC8E;0646 0649;0646 0649; # (ﲎ; ﲎ; ﲎ; نى; نى; ) ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC8F;FC8F;FC8F;0646 064A;0646 064A; # (ﲏ; ﲏ; ﲏ; ني; ني; ) ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC90;FC90;FC90;0649 0670;0649 0670; # (ﲐ; ﲐ; ﲐ; ى◌ٰ; ى◌ٰ; ) ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91;FC91;FC91;064A 0631;064A 0631; # (ﲑ; ﲑ; ﲑ; ير; ير; ) ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92;FC92;FC92;064A 0632;064A 0632; # (ﲒ; ﲒ; ﲒ; يز; يز; ) ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FC93;FC93;FC93;064A 0645;064A 0645; # (ﲓ; ﲓ; ﲓ; يم; يم; ) ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC94;FC94;FC94;064A 0646;064A 0646; # (ﲔ; ﲔ; ﲔ; ين; ين; ) ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FC95;FC95;FC95;064A 0649;064A 0649; # (ﲕ; ﲕ; ﲕ; يى; يى; ) ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC96;FC96;FC96;064A 064A;064A 064A; # (ﲖ; ﲖ; ﲖ; يي; يي; ) ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC97;FC97;FC97;0626 062C;064A 0654 062C; # (ﲗ; ﲗ; ﲗ; ئج; ي◌ٔج; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98;FC98;FC98;0626 062D;064A 0654 062D; # (ﲘ; ﲘ; ﲘ; ئح; ي◌ٔح; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99;FC99;FC99;0626 062E;064A 0654 062E; # (ﲙ; ﲙ; ﲙ; ئخ; ي◌ٔخ; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A;FC9A;FC9A;0626 0645;064A 0654 0645; # (ﲚ; ﲚ; ﲚ; ئم; ي◌ٔم; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B;FC9B;FC9B;0626 0647;064A 0654 0647; # (ﲛ; ﲛ; ﲛ; ئه; ي◌ٔه; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C;FC9C;FC9C;0628 062C;0628 062C; # (ﲜ; ﲜ; ﲜ; بج; بج; ) ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC9D;FC9D;FC9D;0628 062D;0628 062D; # (ﲝ; ﲝ; ﲝ; بح; بح; ) ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC9E;FC9E;FC9E;0628 062E;0628 062E; # (ﲞ; ﲞ; ﲞ; بخ; بخ; ) ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC9F;FC9F;FC9F;0628 0645;0628 0645; # (ﲟ; ﲟ; ﲟ; بم; بم; ) ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCA0;FCA0;FCA0;0628 0647;0628 0647; # (ﲠ; ﲠ; ﲠ; به; به; ) ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCA1;FCA1;FCA1;062A 062C;062A 062C; # (ﲡ; ﲡ; ﲡ; تج; تج; ) ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FCA2;FCA2;FCA2;062A 062D;062A 062D; # (ﲢ; ﲢ; ﲢ; تح; تح; ) ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FCA3;FCA3;FCA3;062A 062E;062A 062E; # (ﲣ; ﲣ; ﲣ; تخ; تخ; ) ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FCA4;FCA4;FCA4;062A 0645;062A 0645; # (ﲤ; ﲤ; ﲤ; تم; تم; ) ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCA5;FCA5;FCA5;062A 0647;062A 0647; # (ﲥ; ﲥ; ﲥ; ته; ته; ) ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCA6;FCA6;FCA6;062B 0645;062B 0645; # (ﲦ; ﲦ; ﲦ; ثم; ثم; ) ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCA7;FCA7;FCA7;062C 062D;062C 062D; # (ﲧ; ﲧ; ﲧ; جح; جح; ) ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FCA8;FCA8;FCA8;062C 0645;062C 0645; # (ﲨ; ﲨ; ﲨ; جم; جم; ) ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FCA9;FCA9;FCA9;062D 062C;062D 062C; # (ﲩ; ﲩ; ﲩ; حج; حج; ) ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FCAA;FCAA;FCAA;062D 0645;062D 0645; # (ﲪ; ﲪ; ﲪ; حم; حم; ) ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FCAB;FCAB;FCAB;062E 062C;062E 062C; # (ﲫ; ﲫ; ﲫ; خج; خج; ) ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FCAC;FCAC;FCAC;062E 0645;062E 0645; # (ﲬ; ﲬ; ﲬ; خم; خم; ) ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FCAD;FCAD;FCAD;0633 062C;0633 062C; # (ﲭ; ﲭ; ﲭ; سج; سج; ) ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FCAE;FCAE;FCAE;0633 062D;0633 062D; # (ﲮ; ﲮ; ﲮ; سح; سح; ) ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FCAF;FCAF;FCAF;0633 062E;0633 062E; # (ﲯ; ﲯ; ﲯ; سخ; سخ; ) ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FCB0;FCB0;FCB0;0633 0645;0633 0645; # (ﲰ; ﲰ; ﲰ; سم; سم; ) ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCB1;FCB1;FCB1;0635 062D;0635 062D; # (ﲱ; ﲱ; ﲱ; صح; صح; ) ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FCB2;FCB2;FCB2;0635 062E;0635 062E; # (ﲲ; ﲲ; ﲲ; صخ; صخ; ) ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FCB3;FCB3;FCB3;0635 0645;0635 0645; # (ﲳ; ﲳ; ﲳ; صم; صم; ) ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FCB4;FCB4;FCB4;0636 062C;0636 062C; # (ﲴ; ﲴ; ﲴ; ضج; ضج; ) ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FCB5;FCB5;FCB5;0636 062D;0636 062D; # (ﲵ; ﲵ; ﲵ; ضح; ضح; ) ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FCB6;FCB6;FCB6;0636 062E;0636 062E; # (ﲶ; ﲶ; ﲶ; ضخ; ضخ; ) ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FCB7;FCB7;FCB7;0636 0645;0636 0645; # (ﲷ; ﲷ; ﲷ; ضم; ضم; ) ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FCB8;FCB8;FCB8;0637 062D;0637 062D; # (ﲸ; ﲸ; ﲸ; طح; طح; ) ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FCB9;FCB9;FCB9;0638 0645;0638 0645; # (ﲹ; ﲹ; ﲹ; ظم; ظم; ) ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FCBA;FCBA;FCBA;0639 062C;0639 062C; # (ﲺ; ﲺ; ﲺ; عج; عج; ) ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FCBB;FCBB;FCBB;0639 0645;0639 0645; # (ﲻ; ﲻ; ﲻ; عم; عم; ) ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FCBC;FCBC;FCBC;063A 062C;063A 062C; # (ﲼ; ﲼ; ﲼ; غج; غج; ) ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FCBD;FCBD;FCBD;063A 0645;063A 0645; # (ﲽ; ﲽ; ﲽ; غم; غم; ) ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FCBE;FCBE;FCBE;0641 062C;0641 062C; # (ﲾ; ﲾ; ﲾ; فج; فج; ) ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FCBF;FCBF;FCBF;0641 062D;0641 062D; # (ﲿ; ﲿ; ﲿ; فح; فح; ) ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FCC0;FCC0;FCC0;0641 062E;0641 062E; # (ﳀ; ﳀ; ﳀ; فخ; فخ; ) ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FCC1;FCC1;FCC1;0641 0645;0641 0645; # (ﳁ; ﳁ; ﳁ; فم; فم; ) ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FCC2;FCC2;FCC2;0642 062D;0642 062D; # (ﳂ; ﳂ; ﳂ; قح; قح; ) ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FCC3;FCC3;FCC3;0642 0645;0642 0645; # (ﳃ; ﳃ; ﳃ; قم; قم; ) ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FCC4;FCC4;FCC4;0643 062C;0643 062C; # (ﳄ; ﳄ; ﳄ; كج; كج; ) ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FCC5;FCC5;FCC5;0643 062D;0643 062D; # (ﳅ; ﳅ; ﳅ; كح; كح; ) ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FCC6;FCC6;FCC6;0643 062E;0643 062E; # (ﳆ; ﳆ; ﳆ; كخ; كخ; ) ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FCC7;FCC7;FCC7;0643 0644;0643 0644; # (ﳇ; ﳇ; ﳇ; كل; كل; ) ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCC8;FCC8;FCC8;0643 0645;0643 0645; # (ﳈ; ﳈ; ﳈ; كم; كم; ) ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCC9;FCC9;FCC9;0644 062C;0644 062C; # (ﳉ; ﳉ; ﳉ; لج; لج; ) ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FCCA;FCCA;FCCA;0644 062D;0644 062D; # (ﳊ; ﳊ; ﳊ; لح; لح; ) ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FCCB;FCCB;FCCB;0644 062E;0644 062E; # (ﳋ; ﳋ; ﳋ; لخ; لخ; ) ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FCCC;FCCC;FCCC;0644 0645;0644 0645; # (ﳌ; ﳌ; ﳌ; لم; لم; ) ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCCD;FCCD;FCCD;0644 0647;0644 0647; # (ﳍ; ﳍ; ﳍ; له; له; ) ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FCCE;FCCE;FCCE;0645 062C;0645 062C; # (ﳎ; ﳎ; ﳎ; مج; مج; ) ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FCCF;FCCF;FCCF;0645 062D;0645 062D; # (ﳏ; ﳏ; ﳏ; مح; مح; ) ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FCD0;FCD0;FCD0;0645 062E;0645 062E; # (ﳐ; ﳐ; ﳐ; مخ; مخ; ) ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FCD1;FCD1;FCD1;0645 0645;0645 0645; # (ﳑ; ﳑ; ﳑ; مم; مم; ) ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FCD2;FCD2;FCD2;0646 062C;0646 062C; # (ﳒ; ﳒ; ﳒ; نج; نج; ) ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FCD3;FCD3;FCD3;0646 062D;0646 062D; # (ﳓ; ﳓ; ﳓ; نح; نح; ) ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FCD4;FCD4;FCD4;0646 062E;0646 062E; # (ﳔ; ﳔ; ﳔ; نخ; نخ; ) ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FCD5;FCD5;FCD5;0646 0645;0646 0645; # (ﳕ; ﳕ; ﳕ; نم; نم; ) ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCD6;FCD6;FCD6;0646 0647;0646 0647; # (ﳖ; ﳖ; ﳖ; نه; نه; ) ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCD7;FCD7;FCD7;0647 062C;0647 062C; # (ﳗ; ﳗ; ﳗ; هج; هج; ) ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FCD8;FCD8;FCD8;0647 0645;0647 0645; # (ﳘ; ﳘ; ﳘ; هم; هم; ) ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FCD9;FCD9;FCD9;0647 0670;0647 0670; # (ﳙ; ﳙ; ﳙ; ه◌ٰ; ه◌ٰ; ) ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA;FCDA;FCDA;064A 062C;064A 062C; # (ﳚ; ﳚ; ﳚ; يج; يج; ) ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FCDB;FCDB;FCDB;064A 062D;064A 062D; # (ﳛ; ﳛ; ﳛ; يح; يح; ) ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FCDC;FCDC;FCDC;064A 062E;064A 062E; # (ﳜ; ﳜ; ﳜ; يخ; يخ; ) ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FCDD;FCDD;FCDD;064A 0645;064A 0645; # (ﳝ; ﳝ; ﳝ; يم; يم; ) ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCDE;FCDE;FCDE;064A 0647;064A 0647; # (ﳞ; ﳞ; ﳞ; يه; يه; ) ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCDF;FCDF;FCDF;0626 0645;064A 0654 0645; # (ﳟ; ﳟ; ﳟ; ئم; ي◌ٔم; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FCE0;FCE0;FCE0;0626 0647;064A 0654 0647; # (ﳠ; ﳠ; ﳠ; ئه; ي◌ٔه; ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1;FCE1;FCE1;0628 0645;0628 0645; # (ﳡ; ﳡ; ﳡ; بم; بم; ) ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FCE2;FCE2;FCE2;0628 0647;0628 0647; # (ﳢ; ﳢ; ﳢ; به; به; ) ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FCE3;FCE3;FCE3;062A 0645;062A 0645; # (ﳣ; ﳣ; ﳣ; تم; تم; ) ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FCE4;FCE4;FCE4;062A 0647;062A 0647; # (ﳤ; ﳤ; ﳤ; ته; ته; ) ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FCE5;FCE5;FCE5;062B 0645;062B 0645; # (ﳥ; ﳥ; ﳥ; ثم; ثم; ) ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FCE6;FCE6;FCE6;062B 0647;062B 0647; # (ﳦ; ﳦ; ﳦ; ثه; ثه; ) ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FCE7;FCE7;FCE7;0633 0645;0633 0645; # (ﳧ; ﳧ; ﳧ; سم; سم; ) ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FCE8;FCE8;FCE8;0633 0647;0633 0647; # (ﳨ; ﳨ; ﳨ; سه; سه; ) ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FCE9;FCE9;FCE9;0634 0645;0634 0645; # (ﳩ; ﳩ; ﳩ; شم; شم; ) ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FCEA;FCEA;FCEA;0634 0647;0634 0647; # (ﳪ; ﳪ; ﳪ; شه; شه; ) ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FCEB;FCEB;FCEB;0643 0644;0643 0644; # (ﳫ; ﳫ; ﳫ; كل; كل; ) ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FCEC;FCEC;FCEC;0643 0645;0643 0645; # (ﳬ; ﳬ; ﳬ; كم; كم; ) ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FCED;FCED;FCED;0644 0645;0644 0645; # (ﳭ; ﳭ; ﳭ; لم; لم; ) ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FCEE;FCEE;FCEE;0646 0645;0646 0645; # (ﳮ; ﳮ; ﳮ; نم; نم; ) ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FCEF;FCEF;FCEF;0646 0647;0646 0647; # (ﳯ; ﳯ; ﳯ; نه; نه; ) ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FCF0;FCF0;FCF0;064A 0645;064A 0645; # (ﳰ; ﳰ; ﳰ; يم; يم; ) ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FCF1;FCF1;FCF1;064A 0647;064A 0647; # (ﳱ; ﳱ; ﳱ; يه; يه; ) ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FCF2;FCF2;FCF2;0640 064E 0651;0640 064E 0651; # (ﳲ; ﳲ; ﳲ; ـ◌َ◌ّ; ـ◌َ◌ّ; ) ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+FCF3;FCF3;FCF3;0640 064F 0651;0640 064F 0651; # (ﳳ; ﳳ; ﳳ; ـ◌ُ◌ّ; ـ◌ُ◌ّ; ) ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+FCF4;FCF4;FCF4;0640 0650 0651;0640 0650 0651; # (ﳴ; ﳴ; ﳴ; ـ◌ِ◌ّ; ـ◌ِ◌ّ; ) ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+FCF5;FCF5;FCF5;0637 0649;0637 0649; # (ﳵ; ﳵ; ﳵ; طى; طى; ) ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6;FCF6;FCF6;0637 064A;0637 064A; # (ﳶ; ﳶ; ﳶ; طي; طي; ) ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+FCF7;FCF7;FCF7;0639 0649;0639 0649; # (ﳷ; ﳷ; ﳷ; عى; عى; ) ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8;FCF8;FCF8;0639 064A;0639 064A; # (ﳸ; ﳸ; ﳸ; عي; عي; ) ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+FCF9;FCF9;FCF9;063A 0649;063A 0649; # (ﳹ; ﳹ; ﳹ; غى; غى; ) ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA;FCFA;FCFA;063A 064A;063A 064A; # (ﳺ; ﳺ; ﳺ; غي; غي; ) ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+FCFB;FCFB;FCFB;0633 0649;0633 0649; # (ﳻ; ﳻ; ﳻ; سى; سى; ) ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC;FCFC;FCFC;0633 064A;0633 064A; # (ﳼ; ﳼ; ﳼ; سي; سي; ) ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+FCFD;FCFD;FCFD;0634 0649;0634 0649; # (ﳽ; ﳽ; ﳽ; شى; شى; ) ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE;FCFE;FCFE;0634 064A;0634 064A; # (ﳾ; ﳾ; ﳾ; شي; شي; ) ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+FCFF;FCFF;FCFF;062D 0649;062D 0649; # (ﳿ; ﳿ; ﳿ; حى; حى; ) ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD00;FD00;FD00;062D 064A;062D 064A; # (ﴀ; ﴀ; ﴀ; حي; حي; ) ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+FD01;FD01;FD01;062C 0649;062C 0649; # (ﴁ; ﴁ; ﴁ; جى; جى; ) ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02;FD02;FD02;062C 064A;062C 064A; # (ﴂ; ﴂ; ﴂ; جي; جي; ) ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+FD03;FD03;FD03;062E 0649;062E 0649; # (ﴃ; ﴃ; ﴃ; خى; خى; ) ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04;FD04;FD04;062E 064A;062E 064A; # (ﴄ; ﴄ; ﴄ; خي; خي; ) ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+FD05;FD05;FD05;0635 0649;0635 0649; # (ﴅ; ﴅ; ﴅ; صى; صى; ) ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06;FD06;FD06;0635 064A;0635 064A; # (ﴆ; ﴆ; ﴆ; صي; صي; ) ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+FD07;FD07;FD07;0636 0649;0636 0649; # (ﴇ; ﴇ; ﴇ; ضى; ضى; ) ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08;FD08;FD08;0636 064A;0636 064A; # (ﴈ; ﴈ; ﴈ; ضي; ضي; ) ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+FD09;FD09;FD09;0634 062C;0634 062C; # (ﴉ; ﴉ; ﴉ; شج; شج; ) ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD0A;FD0A;FD0A;0634 062D;0634 062D; # (ﴊ; ﴊ; ﴊ; شح; شح; ) ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD0B;FD0B;FD0B;0634 062E;0634 062E; # (ﴋ; ﴋ; ﴋ; شخ; شخ; ) ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD0C;FD0C;FD0C;0634 0645;0634 0645; # (ﴌ; ﴌ; ﴌ; شم; شم; ) ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD0D;FD0D;FD0D;0634 0631;0634 0631; # (ﴍ; ﴍ; ﴍ; شر; شر; ) ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD0E;FD0E;FD0E;0633 0631;0633 0631; # (ﴎ; ﴎ; ﴎ; سر; سر; ) ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FD0F;FD0F;FD0F;0635 0631;0635 0631; # (ﴏ; ﴏ; ﴏ; صر; صر; ) ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FD10;FD10;FD10;0636 0631;0636 0631; # (ﴐ; ﴐ; ﴐ; ضر; ضر; ) ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FD11;FD11;FD11;0637 0649;0637 0649; # (ﴑ; ﴑ; ﴑ; طى; طى; ) ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FD12;FD12;FD12;0637 064A;0637 064A; # (ﴒ; ﴒ; ﴒ; طي; طي; ) ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FD13;FD13;FD13;0639 0649;0639 0649; # (ﴓ; ﴓ; ﴓ; عى; عى; ) ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FD14;FD14;FD14;0639 064A;0639 064A; # (ﴔ; ﴔ; ﴔ; عي; عي; ) ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FD15;FD15;FD15;063A 0649;063A 0649; # (ﴕ; ﴕ; ﴕ; غى; غى; ) ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16;FD16;FD16;063A 064A;063A 064A; # (ﴖ; ﴖ; ﴖ; غي; غي; ) ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FD17;FD17;FD17;0633 0649;0633 0649; # (ﴗ; ﴗ; ﴗ; سى; سى; ) ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FD18;FD18;FD18;0633 064A;0633 064A; # (ﴘ; ﴘ; ﴘ; سي; سي; ) ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FD19;FD19;FD19;0634 0649;0634 0649; # (ﴙ; ﴙ; ﴙ; شى; شى; ) ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A;FD1A;FD1A;0634 064A;0634 064A; # (ﴚ; ﴚ; ﴚ; شي; شي; ) ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FD1B;FD1B;FD1B;062D 0649;062D 0649; # (ﴛ; ﴛ; ﴛ; حى; حى; ) ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FD1C;FD1C;FD1C;062D 064A;062D 064A; # (ﴜ; ﴜ; ﴜ; حي; حي; ) ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD1D;FD1D;FD1D;062C 0649;062C 0649; # (ﴝ; ﴝ; ﴝ; جى; جى; ) ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E;FD1E;FD1E;062C 064A;062C 064A; # (ﴞ; ﴞ; ﴞ; جي; جي; ) ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD1F;FD1F;FD1F;062E 0649;062E 0649; # (ﴟ; ﴟ; ﴟ; خى; خى; ) ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD20;FD20;FD20;062E 064A;062E 064A; # (ﴠ; ﴠ; ﴠ; خي; خي; ) ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD21;FD21;FD21;0635 0649;0635 0649; # (ﴡ; ﴡ; ﴡ; صى; صى; ) ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD22;FD22;FD22;0635 064A;0635 064A; # (ﴢ; ﴢ; ﴢ; صي; صي; ) ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD23;FD23;FD23;0636 0649;0636 0649; # (ﴣ; ﴣ; ﴣ; ضى; ضى; ) ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD24;FD24;FD24;0636 064A;0636 064A; # (ﴤ; ﴤ; ﴤ; ضي; ضي; ) ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD25;FD25;FD25;0634 062C;0634 062C; # (ﴥ; ﴥ; ﴥ; شج; شج; ) ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD26;FD26;FD26;0634 062D;0634 062D; # (ﴦ; ﴦ; ﴦ; شح; شح; ) ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD27;FD27;FD27;0634 062E;0634 062E; # (ﴧ; ﴧ; ﴧ; شخ; شخ; ) ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD28;FD28;FD28;0634 0645;0634 0645; # (ﴨ; ﴨ; ﴨ; شم; شم; ) ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD29;FD29;FD29;0634 0631;0634 0631; # (ﴩ; ﴩ; ﴩ; شر; شر; ) ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD2A;FD2A;FD2A;0633 0631;0633 0631; # (ﴪ; ﴪ; ﴪ; سر; سر; ) ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD2B;FD2B;FD2B;0635 0631;0635 0631; # (ﴫ; ﴫ; ﴫ; صر; صر; ) ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD2C;FD2C;FD2C;0636 0631;0636 0631; # (ﴬ; ﴬ; ﴬ; ضر; ضر; ) ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD2D;FD2D;FD2D;0634 062C;0634 062C; # (ﴭ; ﴭ; ﴭ; شج; شج; ) ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD2E;FD2E;FD2E;0634 062D;0634 062D; # (ﴮ; ﴮ; ﴮ; شح; شح; ) ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD2F;FD2F;FD2F;0634 062E;0634 062E; # (ﴯ; ﴯ; ﴯ; شخ; شخ; ) ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD30;FD30;FD30;0634 0645;0634 0645; # (ﴰ; ﴰ; ﴰ; شم; شم; ) ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FD31;FD31;FD31;0633 0647;0633 0647; # (ﴱ; ﴱ; ﴱ; سه; سه; ) ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FD32;FD32;FD32;0634 0647;0634 0647; # (ﴲ; ﴲ; ﴲ; شه; شه; ) ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FD33;FD33;FD33;0637 0645;0637 0645; # (ﴳ; ﴳ; ﴳ; طم; طم; ) ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD34;FD34;FD34;0633 062C;0633 062C; # (ﴴ; ﴴ; ﴴ; سج; سج; ) ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FD35;FD35;FD35;0633 062D;0633 062D; # (ﴵ; ﴵ; ﴵ; سح; سح; ) ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FD36;FD36;FD36;0633 062E;0633 062E; # (ﴶ; ﴶ; ﴶ; سخ; سخ; ) ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FD37;FD37;FD37;0634 062C;0634 062C; # (ﴷ; ﴷ; ﴷ; شج; شج; ) ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD38;FD38;FD38;0634 062D;0634 062D; # (ﴸ; ﴸ; ﴸ; شح; شح; ) ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD39;FD39;FD39;0634 062E;0634 062E; # (ﴹ; ﴹ; ﴹ; شخ; شخ; ) ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD3A;FD3A;FD3A;0637 0645;0637 0645; # (ﴺ; ﴺ; ﴺ; طم; طم; ) ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FD3B;FD3B;FD3B;0638 0645;0638 0645; # (ﴻ; ﴻ; ﴻ; ظم; ظم; ) ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FD3C;FD3C;FD3C;0627 064B;0627 064B; # (ﴼ; ﴼ; ﴼ; ا◌ً; ا◌ً; ) ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
+FD3D;FD3D;FD3D;0627 064B;0627 064B; # (ﴽ; ﴽ; ﴽ; ا◌ً; ا◌ً; ) ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50;FD50;FD50;062A 062C 0645;062A 062C 0645; # (ﵐ; ﵐ; ﵐ; تجم; تجم; ) ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51;FD51;FD51;062A 062D 062C;062A 062D 062C; # (ﵑ; ﵑ; ﵑ; تحج; تحج; ) ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
+FD52;FD52;FD52;062A 062D 062C;062A 062D 062C; # (ﵒ; ﵒ; ﵒ; تحج; تحج; ) ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD53;FD53;FD53;062A 062D 0645;062A 062D 0645; # (ﵓ; ﵓ; ﵓ; تحم; تحم; ) ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FD54;FD54;FD54;062A 062E 0645;062A 062E 0645; # (ﵔ; ﵔ; ﵔ; تخم; تخم; ) ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55;FD55;FD55;062A 0645 062C;062A 0645 062C; # (ﵕ; ﵕ; ﵕ; تمج; تمج; ) ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56;FD56;FD56;062A 0645 062D;062A 0645 062D; # (ﵖ; ﵖ; ﵖ; تمح; تمح; ) ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57;FD57;FD57;062A 0645 062E;062A 0645 062E; # (ﵗ; ﵗ; ﵗ; تمخ; تمخ; ) ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58;FD58;FD58;062C 0645 062D;062C 0645 062D; # (ﵘ; ﵘ; ﵘ; جمح; جمح; ) ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
+FD59;FD59;FD59;062C 0645 062D;062C 0645 062D; # (ﵙ; ﵙ; ﵙ; جمح; جمح; ) ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD5A;FD5A;FD5A;062D 0645 064A;062D 0645 064A; # (ﵚ; ﵚ; ﵚ; حمي; حمي; ) ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD5B;FD5B;FD5B;062D 0645 0649;062D 0645 0649; # (ﵛ; ﵛ; ﵛ; حمى; حمى; ) ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C;FD5C;FD5C;0633 062D 062C;0633 062D 062C; # (ﵜ; ﵜ; ﵜ; سحج; سحج; ) ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D;FD5D;FD5D;0633 062C 062D;0633 062C 062D; # (ﵝ; ﵝ; ﵝ; سجح; سجح; ) ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E;FD5E;FD5E;0633 062C 0649;0633 062C 0649; # (ﵞ; ﵞ; ﵞ; سجى; سجى; ) ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F;FD5F;FD5F;0633 0645 062D;0633 0645 062D; # (ﵟ; ﵟ; ﵟ; سمح; سمح; ) ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
+FD60;FD60;FD60;0633 0645 062D;0633 0645 062D; # (ﵠ; ﵠ; ﵠ; سمح; سمح; ) ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD61;FD61;FD61;0633 0645 062C;0633 0645 062C; # (ﵡ; ﵡ; ﵡ; سمج; سمج; ) ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62;FD62;FD62;0633 0645 0645;0633 0645 0645; # (ﵢ; ﵢ; ﵢ; سمم; سمم; ) ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
+FD63;FD63;FD63;0633 0645 0645;0633 0645 0645; # (ﵣ; ﵣ; ﵣ; سمم; سمم; ) ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD64;FD64;FD64;0635 062D 062D;0635 062D 062D; # (ﵤ; ﵤ; ﵤ; صحح; صحح; ) ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
+FD65;FD65;FD65;0635 062D 062D;0635 062D 062D; # (ﵥ; ﵥ; ﵥ; صحح; صحح; ) ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD66;FD66;FD66;0635 0645 0645;0635 0645 0645; # (ﵦ; ﵦ; ﵦ; صمم; صمم; ) ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD67;FD67;FD67;0634 062D 0645;0634 062D 0645; # (ﵧ; ﵧ; ﵧ; شحم; شحم; ) ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
+FD68;FD68;FD68;0634 062D 0645;0634 062D 0645; # (ﵨ; ﵨ; ﵨ; شحم; شحم; ) ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD69;FD69;FD69;0634 062C 064A;0634 062C 064A; # (ﵩ; ﵩ; ﵩ; شجي; شجي; ) ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A;FD6A;FD6A;0634 0645 062E;0634 0645 062E; # (ﵪ; ﵪ; ﵪ; شمخ; شمخ; ) ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
+FD6B;FD6B;FD6B;0634 0645 062E;0634 0645 062E; # (ﵫ; ﵫ; ﵫ; شمخ; شمخ; ) ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6C;FD6C;FD6C;0634 0645 0645;0634 0645 0645; # (ﵬ; ﵬ; ﵬ; شمم; شمم; ) ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
+FD6D;FD6D;FD6D;0634 0645 0645;0634 0645 0645; # (ﵭ; ﵭ; ﵭ; شمم; شمم; ) ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6E;FD6E;FD6E;0636 062D 0649;0636 062D 0649; # (ﵮ; ﵮ; ﵮ; ضحى; ضحى; ) ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F;FD6F;FD6F;0636 062E 0645;0636 062E 0645; # (ﵯ; ﵯ; ﵯ; ضخم; ضخم; ) ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
+FD70;FD70;FD70;0636 062E 0645;0636 062E 0645; # (ﵰ; ﵰ; ﵰ; ضخم; ضخم; ) ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD71;FD71;FD71;0637 0645 062D;0637 0645 062D; # (ﵱ; ﵱ; ﵱ; طمح; طمح; ) ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
+FD72;FD72;FD72;0637 0645 062D;0637 0645 062D; # (ﵲ; ﵲ; ﵲ; طمح; طمح; ) ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD73;FD73;FD73;0637 0645 0645;0637 0645 0645; # (ﵳ; ﵳ; ﵳ; طمم; طمم; ) ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74;FD74;FD74;0637 0645 064A;0637 0645 064A; # (ﵴ; ﵴ; ﵴ; طمي; طمي; ) ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD75;FD75;FD75;0639 062C 0645;0639 062C 0645; # (ﵵ; ﵵ; ﵵ; عجم; عجم; ) ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FD76;FD76;FD76;0639 0645 0645;0639 0645 0645; # (ﵶ; ﵶ; ﵶ; عمم; عمم; ) ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
+FD77;FD77;FD77;0639 0645 0645;0639 0645 0645; # (ﵷ; ﵷ; ﵷ; عمم; عمم; ) ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD78;FD78;FD78;0639 0645 0649;0639 0645 0649; # (ﵸ; ﵸ; ﵸ; عمى; عمى; ) ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79;FD79;FD79;063A 0645 0645;063A 0645 0645; # (ﵹ; ﵹ; ﵹ; غمم; غمم; ) ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A;FD7A;FD7A;063A 0645 064A;063A 0645 064A; # (ﵺ; ﵺ; ﵺ; غمي; غمي; ) ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B;FD7B;FD7B;063A 0645 0649;063A 0645 0649; # (ﵻ; ﵻ; ﵻ; غمى; غمى; ) ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C;FD7C;FD7C;0641 062E 0645;0641 062E 0645; # (ﵼ; ﵼ; ﵼ; فخم; فخم; ) ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
+FD7D;FD7D;FD7D;0641 062E 0645;0641 062E 0645; # (ﵽ; ﵽ; ﵽ; فخم; فخم; ) ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7E;FD7E;FD7E;0642 0645 062D;0642 0645 062D; # (ﵾ; ﵾ; ﵾ; قمح; قمح; ) ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F;FD7F;FD7F;0642 0645 0645;0642 0645 0645; # (ﵿ; ﵿ; ﵿ; قمم; قمم; ) ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FD80;FD80;FD80;0644 062D 0645;0644 062D 0645; # (ﶀ; ﶀ; ﶀ; لحم; لحم; ) ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD81;FD81;FD81;0644 062D 064A;0644 062D 064A; # (ﶁ; ﶁ; ﶁ; لحي; لحي; ) ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FD82;FD82;FD82;0644 062D 0649;0644 062D 0649; # (ﶂ; ﶂ; ﶂ; لحى; لحى; ) ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83;FD83;FD83;0644 062C 062C;0644 062C 062C; # (ﶃ; ﶃ; ﶃ; لجج; لجج; ) ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
+FD84;FD84;FD84;0644 062C 062C;0644 062C 062C; # (ﶄ; ﶄ; ﶄ; لجج; لجج; ) ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FD85;FD85;FD85;0644 062E 0645;0644 062E 0645; # (ﶅ; ﶅ; ﶅ; لخم; لخم; ) ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
+FD86;FD86;FD86;0644 062E 0645;0644 062E 0645; # (ﶆ; ﶆ; ﶆ; لخم; لخم; ) ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD87;FD87;FD87;0644 0645 062D;0644 0645 062D; # (ﶇ; ﶇ; ﶇ; لمح; لمح; ) ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
+FD88;FD88;FD88;0644 0645 062D;0644 0645 062D; # (ﶈ; ﶈ; ﶈ; لمح; لمح; ) ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD89;FD89;FD89;0645 062D 062C;0645 062D 062C; # (ﶉ; ﶉ; ﶉ; محج; محج; ) ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A;FD8A;FD8A;0645 062D 0645;0645 062D 0645; # (ﶊ; ﶊ; ﶊ; محم; محم; ) ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B;FD8B;FD8B;0645 062D 064A;0645 062D 064A; # (ﶋ; ﶋ; ﶋ; محي; محي; ) ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FD8C;FD8C;FD8C;0645 062C 062D;0645 062C 062D; # (ﶌ; ﶌ; ﶌ; مجح; مجح; ) ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D;FD8D;FD8D;0645 062C 0645;0645 062C 0645; # (ﶍ; ﶍ; ﶍ; مجم; مجم; ) ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E;FD8E;FD8E;0645 062E 062C;0645 062E 062C; # (ﶎ; ﶎ; ﶎ; مخج; مخج; ) ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F;FD8F;FD8F;0645 062E 0645;0645 062E 0645; # (ﶏ; ﶏ; ﶏ; مخم; مخم; ) ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92;FD92;FD92;0645 062C 062E;0645 062C 062E; # (ﶒ; ﶒ; ﶒ; مجخ; مجخ; ) ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93;FD93;FD93;0647 0645 062C;0647 0645 062C; # (ﶓ; ﶓ; ﶓ; همج; همج; ) ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94;FD94;FD94;0647 0645 0645;0647 0645 0645; # (ﶔ; ﶔ; ﶔ; همم; همم; ) ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95;FD95;FD95;0646 062D 0645;0646 062D 0645; # (ﶕ; ﶕ; ﶕ; نحم; نحم; ) ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96;FD96;FD96;0646 062D 0649;0646 062D 0649; # (ﶖ; ﶖ; ﶖ; نحى; نحى; ) ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97;FD97;FD97;0646 062C 0645;0646 062C 0645; # (ﶗ; ﶗ; ﶗ; نجم; نجم; ) ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
+FD98;FD98;FD98;0646 062C 0645;0646 062C 0645; # (ﶘ; ﶘ; ﶘ; نجم; نجم; ) ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD99;FD99;FD99;0646 062C 0649;0646 062C 0649; # (ﶙ; ﶙ; ﶙ; نجى; نجى; ) ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A;FD9A;FD9A;0646 0645 064A;0646 0645 064A; # (ﶚ; ﶚ; ﶚ; نمي; نمي; ) ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FD9B;FD9B;FD9B;0646 0645 0649;0646 0645 0649; # (ﶛ; ﶛ; ﶛ; نمى; نمى; ) ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C;FD9C;FD9C;064A 0645 0645;064A 0645 0645; # (ﶜ; ﶜ; ﶜ; يمم; يمم; ) ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
+FD9D;FD9D;FD9D;064A 0645 0645;064A 0645 0645; # (ﶝ; ﶝ; ﶝ; يمم; يمم; ) ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9E;FD9E;FD9E;0628 062E 064A;0628 062E 064A; # (ﶞ; ﶞ; ﶞ; بخي; بخي; ) ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FD9F;FD9F;FD9F;062A 062C 064A;062A 062C 064A; # (ﶟ; ﶟ; ﶟ; تجي; تجي; ) ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FDA0;FDA0;FDA0;062A 062C 0649;062A 062C 0649; # (ﶠ; ﶠ; ﶠ; تجى; تجى; ) ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1;FDA1;FDA1;062A 062E 064A;062A 062E 064A; # (ﶡ; ﶡ; ﶡ; تخي; تخي; ) ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FDA2;FDA2;FDA2;062A 062E 0649;062A 062E 0649; # (ﶢ; ﶢ; ﶢ; تخى; تخى; ) ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3;FDA3;FDA3;062A 0645 064A;062A 0645 064A; # (ﶣ; ﶣ; ﶣ; تمي; تمي; ) ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FDA4;FDA4;FDA4;062A 0645 0649;062A 0645 0649; # (ﶤ; ﶤ; ﶤ; تمى; تمى; ) ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5;FDA5;FDA5;062C 0645 064A;062C 0645 064A; # (ﶥ; ﶥ; ﶥ; جمي; جمي; ) ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6;FDA6;FDA6;062C 062D 0649;062C 062D 0649; # (ﶦ; ﶦ; ﶦ; جحى; جحى; ) ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7;FDA7;FDA7;062C 0645 0649;062C 0645 0649; # (ﶧ; ﶧ; ﶧ; جمى; جمى; ) ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8;FDA8;FDA8;0633 062E 0649;0633 062E 0649; # (ﶨ; ﶨ; ﶨ; سخى; سخى; ) ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9;FDA9;FDA9;0635 062D 064A;0635 062D 064A; # (ﶩ; ﶩ; ﶩ; صحي; صحي; ) ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FDAA;FDAA;FDAA;0634 062D 064A;0634 062D 064A; # (ﶪ; ﶪ; ﶪ; شحي; شحي; ) ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB;FDAB;FDAB;0636 062D 064A;0636 062D 064A; # (ﶫ; ﶫ; ﶫ; ضحي; ضحي; ) ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FDAC;FDAC;FDAC;0644 062C 064A;0644 062C 064A; # (ﶬ; ﶬ; ﶬ; لجي; لجي; ) ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FDAD;FDAD;FDAD;0644 0645 064A;0644 0645 064A; # (ﶭ; ﶭ; ﶭ; لمي; لمي; ) ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FDAE;FDAE;FDAE;064A 062D 064A;064A 062D 064A; # (ﶮ; ﶮ; ﶮ; يحي; يحي; ) ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FDAF;FDAF;FDAF;064A 062C 064A;064A 062C 064A; # (ﶯ; ﶯ; ﶯ; يجي; يجي; ) ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FDB0;FDB0;FDB0;064A 0645 064A;064A 0645 064A; # (ﶰ; ﶰ; ﶰ; يمي; يمي; ) ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FDB1;FDB1;FDB1;0645 0645 064A;0645 0645 064A; # (ﶱ; ﶱ; ﶱ; ممي; ممي; ) ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2;FDB2;FDB2;0642 0645 064A;0642 0645 064A; # (ﶲ; ﶲ; ﶲ; قمي; قمي; ) ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FDB3;FDB3;FDB3;0646 062D 064A;0646 062D 064A; # (ﶳ; ﶳ; ﶳ; نحي; نحي; ) ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FDB4;FDB4;FDB4;0642 0645 062D;0642 0645 062D; # (ﶴ; ﶴ; ﶴ; قمح; قمح; ) ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5;FDB5;FDB5;0644 062D 0645;0644 062D 0645; # (ﶵ; ﶵ; ﶵ; لحم; لحم; ) ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6;FDB6;FDB6;0639 0645 064A;0639 0645 064A; # (ﶶ; ﶶ; ﶶ; عمي; عمي; ) ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FDB7;FDB7;FDB7;0643 0645 064A;0643 0645 064A; # (ﶷ; ﶷ; ﶷ; كمي; كمي; ) ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FDB8;FDB8;FDB8;0646 062C 062D;0646 062C 062D; # (ﶸ; ﶸ; ﶸ; نجح; نجح; ) ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9;FDB9;FDB9;0645 062E 064A;0645 062E 064A; # (ﶹ; ﶹ; ﶹ; مخي; مخي; ) ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA;FDBA;FDBA;0644 062C 0645;0644 062C 0645; # (ﶺ; ﶺ; ﶺ; لجم; لجم; ) ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB;FDBB;FDBB;0643 0645 0645;0643 0645 0645; # (ﶻ; ﶻ; ﶻ; كمم; كمم; ) ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC;FDBC;FDBC;0644 062C 0645;0644 062C 0645; # (ﶼ; ﶼ; ﶼ; لجم; لجم; ) ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD;FDBD;FDBD;0646 062C 062D;0646 062C 062D; # (ﶽ; ﶽ; ﶽ; نجح; نجح; ) ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FDBE;FDBE;FDBE;062C 062D 064A;062C 062D 064A; # (ﶾ; ﶾ; ﶾ; جحي; جحي; ) ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDBF;FDBF;FDBF;062D 062C 064A;062D 062C 064A; # (ﶿ; ﶿ; ﶿ; حجي; حجي; ) ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FDC0;FDC0;FDC0;0645 062C 064A;0645 062C 064A; # (ﷀ; ﷀ; ﷀ; مجي; مجي; ) ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1;FDC1;FDC1;0641 0645 064A;0641 0645 064A; # (ﷁ; ﷁ; ﷁ; فمي; فمي; ) ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FDC2;FDC2;FDC2;0628 062D 064A;0628 062D 064A; # (ﷂ; ﷂ; ﷂ; بحي; بحي; ) ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FDC3;FDC3;FDC3;0643 0645 0645;0643 0645 0645; # (ﷃ; ﷃ; ﷃ; كمم; كمم; ) ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4;FDC4;FDC4;0639 062C 0645;0639 062C 0645; # (ﷄ; ﷄ; ﷄ; عجم; عجم; ) ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5;FDC5;FDC5;0635 0645 0645;0635 0645 0645; # (ﷅ; ﷅ; ﷅ; صمم; صمم; ) ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6;FDC6;FDC6;0633 062E 064A;0633 062E 064A; # (ﷆ; ﷆ; ﷆ; سخي; سخي; ) ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7;FDC7;FDC7;0646 062C 064A;0646 062C 064A; # (ﷇ; ﷇ; ﷇ; نجي; نجي; ) ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0;FDF0;FDF0;0635 0644 06D2;0635 0644 06D2; # (ﷰ; ﷰ; ﷰ; صلے; صلے; ) ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1;FDF1;FDF1;0642 0644 06D2;0642 0644 06D2; # (ﷱ; ﷱ; ﷱ; قلے; قلے; ) ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2;FDF2;FDF2;0627 0644 0644 0647;0627 0644 0644 0647; # (ﷲ; ﷲ; ﷲ; الله; الله; ) ARABIC LIGATURE ALLAH ISOLATED FORM
+FDF3;FDF3;FDF3;0627 0643 0628 0631;0627 0643 0628 0631; # (ﷳ; ﷳ; ﷳ; اكبر; اكبر; ) ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF4;FDF4;FDF4;0645 062D 0645 062F;0645 062D 0645 062F; # (ﷴ; ﷴ; ﷴ; محمد; محمد; ) ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FDF5;FDF5;FDF5;0635 0644 0639 0645;0635 0644 0639 0645; # (ﷵ; ﷵ; ﷵ; صلعم; صلعم; ) ARABIC LIGATURE SALAM ISOLATED FORM
+FDF6;FDF6;FDF6;0631 0633 0648 0644;0631 0633 0648 0644; # (ﷶ; ﷶ; ﷶ; رسول; رسول; ) ARABIC LIGATURE RASOUL ISOLATED FORM
+FDF7;FDF7;FDF7;0639 0644 064A 0647;0639 0644 064A 0647; # (ﷷ; ﷷ; ﷷ; عليه; عليه; ) ARABIC LIGATURE ALAYHE ISOLATED FORM
+FDF8;FDF8;FDF8;0648 0633 0644 0645;0648 0633 0644 0645; # (ﷸ; ﷸ; ﷸ; وسلم; وسلم; ) ARABIC LIGATURE WASALLAM ISOLATED FORM
+FDF9;FDF9;FDF9;0635 0644 0649;0635 0644 0649; # (ﷹ; ﷹ; ﷹ; صلى; صلى; ) ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA;FDFA;FDFA;0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645; # (ﷺ; ﷺ; ﷺ; صلى الله عليه وسلم; صلى الله عليه وسلم; ) ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDFB;FDFB;FDFB;062C 0644 0020 062C 0644 0627 0644 0647;062C 0644 0020 062C 0644 0627 0644 0647; # (ﷻ; ﷻ; ﷻ; جل جلاله; جل جلاله; ) ARABIC LIGATURE JALLAJALALOUHOU
+FDFC;FDFC;FDFC;0631 06CC 0627 0644;0631 06CC 0627 0644; # (﷼; ﷼; ﷼; ریال; ریال; ) RIAL SIGN
+FE10;FE10;FE10;002C;002C; # (︐; ︐; ︐; ,; ,; ) PRESENTATION FORM FOR VERTICAL COMMA
+FE11;FE11;FE11;3001;3001; # (︑; ︑; ︑; 、; 、; ) PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+FE12;FE12;FE12;3002;3002; # (︒; ︒; ︒; 。; 。; ) PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13;FE13;FE13;003A;003A; # (︓; ︓; ︓; :; :; ) PRESENTATION FORM FOR VERTICAL COLON
+FE14;FE14;FE14;003B;003B; # (︔; ︔; ︔; ;; ;; ) PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15;FE15;FE15;0021;0021; # (︕; ︕; ︕; !; !; ) PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+FE16;FE16;FE16;003F;003F; # (︖; ︖; ︖; ?; ?; ) PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17;FE17;FE17;3016;3016; # (︗; ︗; ︗; 〖; 〖; ) PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18;FE18;FE18;3017;3017; # (︘; ︘; ︘; 〗; 〗; ) PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19;FE19;FE19;002E 002E 002E;002E 002E 002E; # (︙; ︙; ︙; ...; ...; ) PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30;FE30;FE30;002E 002E;002E 002E; # (︰; ︰; ︰; ..; ..; ) PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31;FE31;FE31;2014;2014; # (︱; ︱; ︱; —; —; ) PRESENTATION FORM FOR VERTICAL EM DASH
+FE32;FE32;FE32;2013;2013; # (︲; ︲; ︲; –; –; ) PRESENTATION FORM FOR VERTICAL EN DASH
+FE33;FE33;FE33;005F;005F; # (︳; ︳; ︳; _; _; ) PRESENTATION FORM FOR VERTICAL LOW LINE
+FE34;FE34;FE34;005F;005F; # (︴; ︴; ︴; _; _; ) PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;FE35;FE35;0028;0028; # (︵; ︵; ︵; (; (; ) PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;FE36;FE36;0029;0029; # (︶; ︶; ︶; ); ); ) PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;FE37;FE37;007B;007B; # (︷; ︷; ︷; {; {; ) PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;FE38;FE38;007D;007D; # (︸; ︸; ︸; }; }; ) PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;FE39;FE39;3014;3014; # (︹; ︹; ︹; 〔; 〔; ) PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;FE3A;FE3A;3015;3015; # (︺; ︺; ︺; 〕; 〕; ) PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;FE3B;FE3B;3010;3010; # (︻; ︻; ︻; 【; 【; ) PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;FE3C;FE3C;3011;3011; # (︼; ︼; ︼; 】; 】; ) PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;FE3D;FE3D;300A;300A; # (︽; ︽; ︽; 《; 《; ) PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;FE3E;FE3E;300B;300B; # (︾; ︾; ︾; 》; 》; ) PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;FE3F;FE3F;3008;3008; # (︿; ︿; ︿; 〈; 〈; ) PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40;FE40;FE40;3009;3009; # (﹀; ﹀; ﹀; 〉; 〉; ) PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;FE41;FE41;300C;300C; # (﹁; ﹁; ﹁; 「; 「; ) PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;FE42;FE42;300D;300D; # (﹂; ﹂; ﹂; 」; 」; ) PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;FE43;FE43;300E;300E; # (﹃; ﹃; ﹃; 『; 『; ) PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;FE44;FE44;300F;300F; # (﹄; ﹄; ﹄; 』; 』; ) PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE47;FE47;FE47;005B;005B; # (﹇; ﹇; ﹇; [; [; ) PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48;FE48;FE48;005D;005D; # (﹈; ﹈; ﹈; ]; ]; ) PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49;FE49;FE49;0020 0305;0020 0305; # (﹉; ﹉; ﹉;  ◌̅;  ◌̅; ) DASHED OVERLINE
+FE4A;FE4A;FE4A;0020 0305;0020 0305; # (﹊; ﹊; ﹊;  ◌̅;  ◌̅; ) CENTRELINE OVERLINE
+FE4B;FE4B;FE4B;0020 0305;0020 0305; # (﹋; ﹋; ﹋;  ◌̅;  ◌̅; ) WAVY OVERLINE
+FE4C;FE4C;FE4C;0020 0305;0020 0305; # (﹌; ﹌; ﹌;  ◌̅;  ◌̅; ) DOUBLE WAVY OVERLINE
+FE4D;FE4D;FE4D;005F;005F; # (﹍; ﹍; ﹍; _; _; ) DASHED LOW LINE
+FE4E;FE4E;FE4E;005F;005F; # (﹎; ﹎; ﹎; _; _; ) CENTRELINE LOW LINE
+FE4F;FE4F;FE4F;005F;005F; # (﹏; ﹏; ﹏; _; _; ) WAVY LOW LINE
+FE50;FE50;FE50;002C;002C; # (﹐; ﹐; ﹐; ,; ,; ) SMALL COMMA
+FE51;FE51;FE51;3001;3001; # (﹑; ﹑; ﹑; 、; 、; ) SMALL IDEOGRAPHIC COMMA
+FE52;FE52;FE52;002E;002E; # (﹒; ﹒; ﹒; .; .; ) SMALL FULL STOP
+FE54;FE54;FE54;003B;003B; # (﹔; ﹔; ﹔; ;; ;; ) SMALL SEMICOLON
+FE55;FE55;FE55;003A;003A; # (﹕; ﹕; ﹕; :; :; ) SMALL COLON
+FE56;FE56;FE56;003F;003F; # (﹖; ﹖; ﹖; ?; ?; ) SMALL QUESTION MARK
+FE57;FE57;FE57;0021;0021; # (﹗; ﹗; ﹗; !; !; ) SMALL EXCLAMATION MARK
+FE58;FE58;FE58;2014;2014; # (﹘; ﹘; ﹘; —; —; ) SMALL EM DASH
+FE59;FE59;FE59;0028;0028; # (﹙; ﹙; ﹙; (; (; ) SMALL LEFT PARENTHESIS
+FE5A;FE5A;FE5A;0029;0029; # (﹚; ﹚; ﹚; ); ); ) SMALL RIGHT PARENTHESIS
+FE5B;FE5B;FE5B;007B;007B; # (﹛; ﹛; ﹛; {; {; ) SMALL LEFT CURLY BRACKET
+FE5C;FE5C;FE5C;007D;007D; # (﹜; ﹜; ﹜; }; }; ) SMALL RIGHT CURLY BRACKET
+FE5D;FE5D;FE5D;3014;3014; # (﹝; ﹝; ﹝; 〔; 〔; ) SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;FE5E;FE5E;3015;3015; # (﹞; ﹞; ﹞; 〕; 〕; ) SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F;FE5F;FE5F;0023;0023; # (﹟; ﹟; ﹟; #; #; ) SMALL NUMBER SIGN
+FE60;FE60;FE60;0026;0026; # (﹠; ﹠; ﹠; &; &; ) SMALL AMPERSAND
+FE61;FE61;FE61;002A;002A; # (﹡; ﹡; ﹡; *; *; ) SMALL ASTERISK
+FE62;FE62;FE62;002B;002B; # (﹢; ﹢; ﹢; +; +; ) SMALL PLUS SIGN
+FE63;FE63;FE63;002D;002D; # (﹣; ﹣; ﹣; -; -; ) SMALL HYPHEN-MINUS
+FE64;FE64;FE64;003C;003C; # (﹤; ﹤; ﹤; <; <; ) SMALL LESS-THAN SIGN
+FE65;FE65;FE65;003E;003E; # (﹥; ﹥; ﹥; >; >; ) SMALL GREATER-THAN SIGN
+FE66;FE66;FE66;003D;003D; # (﹦; ﹦; ﹦; =; =; ) SMALL EQUALS SIGN
+FE68;FE68;FE68;005C;005C; # (﹨; ﹨; ﹨; \; \; ) SMALL REVERSE SOLIDUS
+FE69;FE69;FE69;0024;0024; # (﹩; ﹩; ﹩; $; $; ) SMALL DOLLAR SIGN
+FE6A;FE6A;FE6A;0025;0025; # (﹪; ﹪; ﹪; %; %; ) SMALL PERCENT SIGN
+FE6B;FE6B;FE6B;0040;0040; # (﹫; ﹫; ﹫; @; @; ) SMALL COMMERCIAL AT
+FE70;FE70;FE70;0020 064B;0020 064B; # (ﹰ; ﹰ; ﹰ;  ◌ً;  ◌ً; ) ARABIC FATHATAN ISOLATED FORM
+FE71;FE71;FE71;0640 064B;0640 064B; # (ﹱ; ﹱ; ﹱ; ـ◌ً; ـ◌ً; ) ARABIC TATWEEL WITH FATHATAN ABOVE
+FE72;FE72;FE72;0020 064C;0020 064C; # (ﹲ; ﹲ; ﹲ;  ◌ٌ;  ◌ٌ; ) ARABIC DAMMATAN ISOLATED FORM
+FE74;FE74;FE74;0020 064D;0020 064D; # (ﹴ; ﹴ; ﹴ;  ◌ٍ;  ◌ٍ; ) ARABIC KASRATAN ISOLATED FORM
+FE76;FE76;FE76;0020 064E;0020 064E; # (ﹶ; ﹶ; ﹶ;  ◌َ;  ◌َ; ) ARABIC FATHA ISOLATED FORM
+FE77;FE77;FE77;0640 064E;0640 064E; # (ﹷ; ﹷ; ﹷ; ـ◌َ; ـ◌َ; ) ARABIC FATHA MEDIAL FORM
+FE78;FE78;FE78;0020 064F;0020 064F; # (ﹸ; ﹸ; ﹸ;  ◌ُ;  ◌ُ; ) ARABIC DAMMA ISOLATED FORM
+FE79;FE79;FE79;0640 064F;0640 064F; # (ﹹ; ﹹ; ﹹ; ـ◌ُ; ـ◌ُ; ) ARABIC DAMMA MEDIAL FORM
+FE7A;FE7A;FE7A;0020 0650;0020 0650; # (ﹺ; ﹺ; ﹺ;  ◌ِ;  ◌ِ; ) ARABIC KASRA ISOLATED FORM
+FE7B;FE7B;FE7B;0640 0650;0640 0650; # (ﹻ; ﹻ; ﹻ; ـ◌ِ; ـ◌ِ; ) ARABIC KASRA MEDIAL FORM
+FE7C;FE7C;FE7C;0020 0651;0020 0651; # (ﹼ; ﹼ; ﹼ;  ◌ّ;  ◌ّ; ) ARABIC SHADDA ISOLATED FORM
+FE7D;FE7D;FE7D;0640 0651;0640 0651; # (ﹽ; ﹽ; ﹽ; ـ◌ّ; ـ◌ّ; ) ARABIC SHADDA MEDIAL FORM
+FE7E;FE7E;FE7E;0020 0652;0020 0652; # (ﹾ; ﹾ; ﹾ;  ◌ْ;  ◌ْ; ) ARABIC SUKUN ISOLATED FORM
+FE7F;FE7F;FE7F;0640 0652;0640 0652; # (ﹿ; ﹿ; ﹿ; ـ◌ْ; ـ◌ْ; ) ARABIC SUKUN MEDIAL FORM
+FE80;FE80;FE80;0621;0621; # (ﺀ; ﺀ; ﺀ; ء; ء; ) ARABIC LETTER HAMZA ISOLATED FORM
+FE81;FE81;FE81;0622;0627 0653; # (ﺁ; ﺁ; ﺁ; آ; ا◌ٓ; ) ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+FE82;FE82;FE82;0622;0627 0653; # (ﺂ; ﺂ; ﺂ; آ; ا◌ٓ; ) ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE83;FE83;FE83;0623;0627 0654; # (ﺃ; ﺃ; ﺃ; أ; ا◌ٔ; ) ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+FE84;FE84;FE84;0623;0627 0654; # (ﺄ; ﺄ; ﺄ; أ; ا◌ٔ; ) ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE85;FE85;FE85;0624;0648 0654; # (ﺅ; ﺅ; ﺅ; ؤ; و◌ٔ; ) ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+FE86;FE86;FE86;0624;0648 0654; # (ﺆ; ﺆ; ﺆ; ؤ; و◌ٔ; ) ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE87;FE87;FE87;0625;0627 0655; # (ﺇ; ﺇ; ﺇ; إ; ا◌ٕ; ) ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
+FE88;FE88;FE88;0625;0627 0655; # (ﺈ; ﺈ; ﺈ; إ; ا◌ٕ; ) ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE89;FE89;FE89;0626;064A 0654; # (ﺉ; ﺉ; ﺉ; ئ; ي◌ٔ; ) ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+FE8A;FE8A;FE8A;0626;064A 0654; # (ﺊ; ﺊ; ﺊ; ئ; ي◌ٔ; ) ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+FE8B;FE8B;FE8B;0626;064A 0654; # (ﺋ; ﺋ; ﺋ; ئ; ي◌ٔ; ) ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+FE8C;FE8C;FE8C;0626;064A 0654; # (ﺌ; ﺌ; ﺌ; ئ; ي◌ٔ; ) ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8D;FE8D;FE8D;0627;0627; # (ﺍ; ﺍ; ﺍ; ا; ا; ) ARABIC LETTER ALEF ISOLATED FORM
+FE8E;FE8E;FE8E;0627;0627; # (ﺎ; ﺎ; ﺎ; ا; ا; ) ARABIC LETTER ALEF FINAL FORM
+FE8F;FE8F;FE8F;0628;0628; # (ﺏ; ﺏ; ﺏ; ب; ب; ) ARABIC LETTER BEH ISOLATED FORM
+FE90;FE90;FE90;0628;0628; # (ﺐ; ﺐ; ﺐ; ب; ب; ) ARABIC LETTER BEH FINAL FORM
+FE91;FE91;FE91;0628;0628; # (ﺑ; ﺑ; ﺑ; ب; ب; ) ARABIC LETTER BEH INITIAL FORM
+FE92;FE92;FE92;0628;0628; # (ﺒ; ﺒ; ﺒ; ب; ب; ) ARABIC LETTER BEH MEDIAL FORM
+FE93;FE93;FE93;0629;0629; # (ﺓ; ﺓ; ﺓ; ة; ة; ) ARABIC LETTER TEH MARBUTA ISOLATED FORM
+FE94;FE94;FE94;0629;0629; # (ﺔ; ﺔ; ﺔ; ة; ة; ) ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95;FE95;FE95;062A;062A; # (ﺕ; ﺕ; ﺕ; ت; ت; ) ARABIC LETTER TEH ISOLATED FORM
+FE96;FE96;FE96;062A;062A; # (ﺖ; ﺖ; ﺖ; ت; ت; ) ARABIC LETTER TEH FINAL FORM
+FE97;FE97;FE97;062A;062A; # (ﺗ; ﺗ; ﺗ; ت; ت; ) ARABIC LETTER TEH INITIAL FORM
+FE98;FE98;FE98;062A;062A; # (ﺘ; ﺘ; ﺘ; ت; ت; ) ARABIC LETTER TEH MEDIAL FORM
+FE99;FE99;FE99;062B;062B; # (ﺙ; ﺙ; ﺙ; ث; ث; ) ARABIC LETTER THEH ISOLATED FORM
+FE9A;FE9A;FE9A;062B;062B; # (ﺚ; ﺚ; ﺚ; ث; ث; ) ARABIC LETTER THEH FINAL FORM
+FE9B;FE9B;FE9B;062B;062B; # (ﺛ; ﺛ; ﺛ; ث; ث; ) ARABIC LETTER THEH INITIAL FORM
+FE9C;FE9C;FE9C;062B;062B; # (ﺜ; ﺜ; ﺜ; ث; ث; ) ARABIC LETTER THEH MEDIAL FORM
+FE9D;FE9D;FE9D;062C;062C; # (ﺝ; ﺝ; ﺝ; ج; ج; ) ARABIC LETTER JEEM ISOLATED FORM
+FE9E;FE9E;FE9E;062C;062C; # (ﺞ; ﺞ; ﺞ; ج; ج; ) ARABIC LETTER JEEM FINAL FORM
+FE9F;FE9F;FE9F;062C;062C; # (ﺟ; ﺟ; ﺟ; ج; ج; ) ARABIC LETTER JEEM INITIAL FORM
+FEA0;FEA0;FEA0;062C;062C; # (ﺠ; ﺠ; ﺠ; ج; ج; ) ARABIC LETTER JEEM MEDIAL FORM
+FEA1;FEA1;FEA1;062D;062D; # (ﺡ; ﺡ; ﺡ; ح; ح; ) ARABIC LETTER HAH ISOLATED FORM
+FEA2;FEA2;FEA2;062D;062D; # (ﺢ; ﺢ; ﺢ; ح; ح; ) ARABIC LETTER HAH FINAL FORM
+FEA3;FEA3;FEA3;062D;062D; # (ﺣ; ﺣ; ﺣ; ح; ح; ) ARABIC LETTER HAH INITIAL FORM
+FEA4;FEA4;FEA4;062D;062D; # (ﺤ; ﺤ; ﺤ; ح; ح; ) ARABIC LETTER HAH MEDIAL FORM
+FEA5;FEA5;FEA5;062E;062E; # (ﺥ; ﺥ; ﺥ; خ; خ; ) ARABIC LETTER KHAH ISOLATED FORM
+FEA6;FEA6;FEA6;062E;062E; # (ﺦ; ﺦ; ﺦ; خ; خ; ) ARABIC LETTER KHAH FINAL FORM
+FEA7;FEA7;FEA7;062E;062E; # (ﺧ; ﺧ; ﺧ; خ; خ; ) ARABIC LETTER KHAH INITIAL FORM
+FEA8;FEA8;FEA8;062E;062E; # (ﺨ; ﺨ; ﺨ; خ; خ; ) ARABIC LETTER KHAH MEDIAL FORM
+FEA9;FEA9;FEA9;062F;062F; # (ﺩ; ﺩ; ﺩ; د; د; ) ARABIC LETTER DAL ISOLATED FORM
+FEAA;FEAA;FEAA;062F;062F; # (ﺪ; ﺪ; ﺪ; د; د; ) ARABIC LETTER DAL FINAL FORM
+FEAB;FEAB;FEAB;0630;0630; # (ﺫ; ﺫ; ﺫ; ذ; ذ; ) ARABIC LETTER THAL ISOLATED FORM
+FEAC;FEAC;FEAC;0630;0630; # (ﺬ; ﺬ; ﺬ; ذ; ذ; ) ARABIC LETTER THAL FINAL FORM
+FEAD;FEAD;FEAD;0631;0631; # (ﺭ; ﺭ; ﺭ; ر; ر; ) ARABIC LETTER REH ISOLATED FORM
+FEAE;FEAE;FEAE;0631;0631; # (ﺮ; ﺮ; ﺮ; ر; ر; ) ARABIC LETTER REH FINAL FORM
+FEAF;FEAF;FEAF;0632;0632; # (ﺯ; ﺯ; ﺯ; ز; ز; ) ARABIC LETTER ZAIN ISOLATED FORM
+FEB0;FEB0;FEB0;0632;0632; # (ﺰ; ﺰ; ﺰ; ز; ز; ) ARABIC LETTER ZAIN FINAL FORM
+FEB1;FEB1;FEB1;0633;0633; # (ﺱ; ﺱ; ﺱ; س; س; ) ARABIC LETTER SEEN ISOLATED FORM
+FEB2;FEB2;FEB2;0633;0633; # (ﺲ; ﺲ; ﺲ; س; س; ) ARABIC LETTER SEEN FINAL FORM
+FEB3;FEB3;FEB3;0633;0633; # (ﺳ; ﺳ; ﺳ; س; س; ) ARABIC LETTER SEEN INITIAL FORM
+FEB4;FEB4;FEB4;0633;0633; # (ﺴ; ﺴ; ﺴ; س; س; ) ARABIC LETTER SEEN MEDIAL FORM
+FEB5;FEB5;FEB5;0634;0634; # (ﺵ; ﺵ; ﺵ; ش; ش; ) ARABIC LETTER SHEEN ISOLATED FORM
+FEB6;FEB6;FEB6;0634;0634; # (ﺶ; ﺶ; ﺶ; ش; ش; ) ARABIC LETTER SHEEN FINAL FORM
+FEB7;FEB7;FEB7;0634;0634; # (ﺷ; ﺷ; ﺷ; ش; ش; ) ARABIC LETTER SHEEN INITIAL FORM
+FEB8;FEB8;FEB8;0634;0634; # (ﺸ; ﺸ; ﺸ; ش; ش; ) ARABIC LETTER SHEEN MEDIAL FORM
+FEB9;FEB9;FEB9;0635;0635; # (ﺹ; ﺹ; ﺹ; ص; ص; ) ARABIC LETTER SAD ISOLATED FORM
+FEBA;FEBA;FEBA;0635;0635; # (ﺺ; ﺺ; ﺺ; ص; ص; ) ARABIC LETTER SAD FINAL FORM
+FEBB;FEBB;FEBB;0635;0635; # (ﺻ; ﺻ; ﺻ; ص; ص; ) ARABIC LETTER SAD INITIAL FORM
+FEBC;FEBC;FEBC;0635;0635; # (ﺼ; ﺼ; ﺼ; ص; ص; ) ARABIC LETTER SAD MEDIAL FORM
+FEBD;FEBD;FEBD;0636;0636; # (ﺽ; ﺽ; ﺽ; ض; ض; ) ARABIC LETTER DAD ISOLATED FORM
+FEBE;FEBE;FEBE;0636;0636; # (ﺾ; ﺾ; ﺾ; ض; ض; ) ARABIC LETTER DAD FINAL FORM
+FEBF;FEBF;FEBF;0636;0636; # (ﺿ; ﺿ; ﺿ; ض; ض; ) ARABIC LETTER DAD INITIAL FORM
+FEC0;FEC0;FEC0;0636;0636; # (ﻀ; ﻀ; ﻀ; ض; ض; ) ARABIC LETTER DAD MEDIAL FORM
+FEC1;FEC1;FEC1;0637;0637; # (ﻁ; ﻁ; ﻁ; ط; ط; ) ARABIC LETTER TAH ISOLATED FORM
+FEC2;FEC2;FEC2;0637;0637; # (ﻂ; ﻂ; ﻂ; ط; ط; ) ARABIC LETTER TAH FINAL FORM
+FEC3;FEC3;FEC3;0637;0637; # (ﻃ; ﻃ; ﻃ; ط; ط; ) ARABIC LETTER TAH INITIAL FORM
+FEC4;FEC4;FEC4;0637;0637; # (ﻄ; ﻄ; ﻄ; ط; ط; ) ARABIC LETTER TAH MEDIAL FORM
+FEC5;FEC5;FEC5;0638;0638; # (ﻅ; ﻅ; ﻅ; ظ; ظ; ) ARABIC LETTER ZAH ISOLATED FORM
+FEC6;FEC6;FEC6;0638;0638; # (ﻆ; ﻆ; ﻆ; ظ; ظ; ) ARABIC LETTER ZAH FINAL FORM
+FEC7;FEC7;FEC7;0638;0638; # (ﻇ; ﻇ; ﻇ; ظ; ظ; ) ARABIC LETTER ZAH INITIAL FORM
+FEC8;FEC8;FEC8;0638;0638; # (ﻈ; ﻈ; ﻈ; ظ; ظ; ) ARABIC LETTER ZAH MEDIAL FORM
+FEC9;FEC9;FEC9;0639;0639; # (ﻉ; ﻉ; ﻉ; ع; ع; ) ARABIC LETTER AIN ISOLATED FORM
+FECA;FECA;FECA;0639;0639; # (ﻊ; ﻊ; ﻊ; ع; ع; ) ARABIC LETTER AIN FINAL FORM
+FECB;FECB;FECB;0639;0639; # (ﻋ; ﻋ; ﻋ; ع; ع; ) ARABIC LETTER AIN INITIAL FORM
+FECC;FECC;FECC;0639;0639; # (ﻌ; ﻌ; ﻌ; ع; ع; ) ARABIC LETTER AIN MEDIAL FORM
+FECD;FECD;FECD;063A;063A; # (ﻍ; ﻍ; ﻍ; غ; غ; ) ARABIC LETTER GHAIN ISOLATED FORM
+FECE;FECE;FECE;063A;063A; # (ﻎ; ﻎ; ﻎ; غ; غ; ) ARABIC LETTER GHAIN FINAL FORM
+FECF;FECF;FECF;063A;063A; # (ﻏ; ﻏ; ﻏ; غ; غ; ) ARABIC LETTER GHAIN INITIAL FORM
+FED0;FED0;FED0;063A;063A; # (ﻐ; ﻐ; ﻐ; غ; غ; ) ARABIC LETTER GHAIN MEDIAL FORM
+FED1;FED1;FED1;0641;0641; # (ﻑ; ﻑ; ﻑ; ف; ف; ) ARABIC LETTER FEH ISOLATED FORM
+FED2;FED2;FED2;0641;0641; # (ﻒ; ﻒ; ﻒ; ف; ف; ) ARABIC LETTER FEH FINAL FORM
+FED3;FED3;FED3;0641;0641; # (ﻓ; ﻓ; ﻓ; ف; ف; ) ARABIC LETTER FEH INITIAL FORM
+FED4;FED4;FED4;0641;0641; # (ﻔ; ﻔ; ﻔ; ف; ف; ) ARABIC LETTER FEH MEDIAL FORM
+FED5;FED5;FED5;0642;0642; # (ﻕ; ﻕ; ﻕ; ق; ق; ) ARABIC LETTER QAF ISOLATED FORM
+FED6;FED6;FED6;0642;0642; # (ﻖ; ﻖ; ﻖ; ق; ق; ) ARABIC LETTER QAF FINAL FORM
+FED7;FED7;FED7;0642;0642; # (ﻗ; ﻗ; ﻗ; ق; ق; ) ARABIC LETTER QAF INITIAL FORM
+FED8;FED8;FED8;0642;0642; # (ﻘ; ﻘ; ﻘ; ق; ق; ) ARABIC LETTER QAF MEDIAL FORM
+FED9;FED9;FED9;0643;0643; # (ﻙ; ﻙ; ﻙ; ك; ك; ) ARABIC LETTER KAF ISOLATED FORM
+FEDA;FEDA;FEDA;0643;0643; # (ﻚ; ﻚ; ﻚ; ك; ك; ) ARABIC LETTER KAF FINAL FORM
+FEDB;FEDB;FEDB;0643;0643; # (ﻛ; ﻛ; ﻛ; ك; ك; ) ARABIC LETTER KAF INITIAL FORM
+FEDC;FEDC;FEDC;0643;0643; # (ﻜ; ﻜ; ﻜ; ك; ك; ) ARABIC LETTER KAF MEDIAL FORM
+FEDD;FEDD;FEDD;0644;0644; # (ﻝ; ﻝ; ﻝ; ل; ل; ) ARABIC LETTER LAM ISOLATED FORM
+FEDE;FEDE;FEDE;0644;0644; # (ﻞ; ﻞ; ﻞ; ل; ل; ) ARABIC LETTER LAM FINAL FORM
+FEDF;FEDF;FEDF;0644;0644; # (ﻟ; ﻟ; ﻟ; ل; ل; ) ARABIC LETTER LAM INITIAL FORM
+FEE0;FEE0;FEE0;0644;0644; # (ﻠ; ﻠ; ﻠ; ل; ل; ) ARABIC LETTER LAM MEDIAL FORM
+FEE1;FEE1;FEE1;0645;0645; # (ﻡ; ﻡ; ﻡ; م; م; ) ARABIC LETTER MEEM ISOLATED FORM
+FEE2;FEE2;FEE2;0645;0645; # (ﻢ; ﻢ; ﻢ; م; م; ) ARABIC LETTER MEEM FINAL FORM
+FEE3;FEE3;FEE3;0645;0645; # (ﻣ; ﻣ; ﻣ; م; م; ) ARABIC LETTER MEEM INITIAL FORM
+FEE4;FEE4;FEE4;0645;0645; # (ﻤ; ﻤ; ﻤ; م; م; ) ARABIC LETTER MEEM MEDIAL FORM
+FEE5;FEE5;FEE5;0646;0646; # (ﻥ; ﻥ; ﻥ; ن; ن; ) ARABIC LETTER NOON ISOLATED FORM
+FEE6;FEE6;FEE6;0646;0646; # (ﻦ; ﻦ; ﻦ; ن; ن; ) ARABIC LETTER NOON FINAL FORM
+FEE7;FEE7;FEE7;0646;0646; # (ﻧ; ﻧ; ﻧ; ن; ن; ) ARABIC LETTER NOON INITIAL FORM
+FEE8;FEE8;FEE8;0646;0646; # (ﻨ; ﻨ; ﻨ; ن; ن; ) ARABIC LETTER NOON MEDIAL FORM
+FEE9;FEE9;FEE9;0647;0647; # (ﻩ; ﻩ; ﻩ; ه; ه; ) ARABIC LETTER HEH ISOLATED FORM
+FEEA;FEEA;FEEA;0647;0647; # (ﻪ; ﻪ; ﻪ; ه; ه; ) ARABIC LETTER HEH FINAL FORM
+FEEB;FEEB;FEEB;0647;0647; # (ﻫ; ﻫ; ﻫ; ه; ه; ) ARABIC LETTER HEH INITIAL FORM
+FEEC;FEEC;FEEC;0647;0647; # (ﻬ; ﻬ; ﻬ; ه; ه; ) ARABIC LETTER HEH MEDIAL FORM
+FEED;FEED;FEED;0648;0648; # (ﻭ; ﻭ; ﻭ; و; و; ) ARABIC LETTER WAW ISOLATED FORM
+FEEE;FEEE;FEEE;0648;0648; # (ﻮ; ﻮ; ﻮ; و; و; ) ARABIC LETTER WAW FINAL FORM
+FEEF;FEEF;FEEF;0649;0649; # (ﻯ; ﻯ; ﻯ; ى; ى; ) ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FEF0;FEF0;FEF0;0649;0649; # (ﻰ; ﻰ; ﻰ; ى; ى; ) ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1;FEF1;FEF1;064A;064A; # (ﻱ; ﻱ; ﻱ; ي; ي; ) ARABIC LETTER YEH ISOLATED FORM
+FEF2;FEF2;FEF2;064A;064A; # (ﻲ; ﻲ; ﻲ; ي; ي; ) ARABIC LETTER YEH FINAL FORM
+FEF3;FEF3;FEF3;064A;064A; # (ﻳ; ﻳ; ﻳ; ي; ي; ) ARABIC LETTER YEH INITIAL FORM
+FEF4;FEF4;FEF4;064A;064A; # (ﻴ; ﻴ; ﻴ; ي; ي; ) ARABIC LETTER YEH MEDIAL FORM
+FEF5;FEF5;FEF5;0644 0622;0644 0627 0653; # (ﻵ; ﻵ; ﻵ; لآ; لا◌ٓ; ) ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+FEF6;FEF6;FEF6;0644 0622;0644 0627 0653; # (ﻶ; ﻶ; ﻶ; لآ; لا◌ٓ; ) ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF7;FEF7;FEF7;0644 0623;0644 0627 0654; # (ﻷ; ﻷ; ﻷ; لأ; لا◌ٔ; ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+FEF8;FEF8;FEF8;0644 0623;0644 0627 0654; # (ﻸ; ﻸ; ﻸ; لأ; لا◌ٔ; ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF9;FEF9;FEF9;0644 0625;0644 0627 0655; # (ﻹ; ﻹ; ﻹ; لإ; لا◌ٕ; ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+FEFA;FEFA;FEFA;0644 0625;0644 0627 0655; # (ﻺ; ﻺ; ﻺ; لإ; لا◌ٕ; ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEFB;FEFB;FEFB;0644 0627;0644 0627; # (ﻻ; ﻻ; ﻻ; لا; لا; ) ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+FEFC;FEFC;FEFC;0644 0627;0644 0627; # (ﻼ; ﻼ; ﻼ; لا; لا; ) ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FF01;FF01;FF01;0021;0021; # (!; !; !; !; !; ) FULLWIDTH EXCLAMATION MARK
+FF02;FF02;FF02;0022;0022; # ("; "; "; "; "; ) FULLWIDTH QUOTATION MARK
+FF03;FF03;FF03;0023;0023; # (#; #; #; #; #; ) FULLWIDTH NUMBER SIGN
+FF04;FF04;FF04;0024;0024; # ($; $; $; $; $; ) FULLWIDTH DOLLAR SIGN
+FF05;FF05;FF05;0025;0025; # (%; %; %; %; %; ) FULLWIDTH PERCENT SIGN
+FF06;FF06;FF06;0026;0026; # (&; &; &; &; &; ) FULLWIDTH AMPERSAND
+FF07;FF07;FF07;0027;0027; # ('; '; '; '; '; ) FULLWIDTH APOSTROPHE
+FF08;FF08;FF08;0028;0028; # ((; (; (; (; (; ) FULLWIDTH LEFT PARENTHESIS
+FF09;FF09;FF09;0029;0029; # (); ); ); ); ); ) FULLWIDTH RIGHT PARENTHESIS
+FF0A;FF0A;FF0A;002A;002A; # (*; *; *; *; *; ) FULLWIDTH ASTERISK
+FF0B;FF0B;FF0B;002B;002B; # (+; +; +; +; +; ) FULLWIDTH PLUS SIGN
+FF0C;FF0C;FF0C;002C;002C; # (,; ,; ,; ,; ,; ) FULLWIDTH COMMA
+FF0D;FF0D;FF0D;002D;002D; # (-; -; -; -; -; ) FULLWIDTH HYPHEN-MINUS
+FF0E;FF0E;FF0E;002E;002E; # (.; .; .; .; .; ) FULLWIDTH FULL STOP
+FF0F;FF0F;FF0F;002F;002F; # (/; /; /; /; /; ) FULLWIDTH SOLIDUS
+FF10;FF10;FF10;0030;0030; # (0; 0; 0; 0; 0; ) FULLWIDTH DIGIT ZERO
+FF11;FF11;FF11;0031;0031; # (1; 1; 1; 1; 1; ) FULLWIDTH DIGIT ONE
+FF12;FF12;FF12;0032;0032; # (2; 2; 2; 2; 2; ) FULLWIDTH DIGIT TWO
+FF13;FF13;FF13;0033;0033; # (3; 3; 3; 3; 3; ) FULLWIDTH DIGIT THREE
+FF14;FF14;FF14;0034;0034; # (4; 4; 4; 4; 4; ) FULLWIDTH DIGIT FOUR
+FF15;FF15;FF15;0035;0035; # (5; 5; 5; 5; 5; ) FULLWIDTH DIGIT FIVE
+FF16;FF16;FF16;0036;0036; # (6; 6; 6; 6; 6; ) FULLWIDTH DIGIT SIX
+FF17;FF17;FF17;0037;0037; # (7; 7; 7; 7; 7; ) FULLWIDTH DIGIT SEVEN
+FF18;FF18;FF18;0038;0038; # (8; 8; 8; 8; 8; ) FULLWIDTH DIGIT EIGHT
+FF19;FF19;FF19;0039;0039; # (9; 9; 9; 9; 9; ) FULLWIDTH DIGIT NINE
+FF1A;FF1A;FF1A;003A;003A; # (:; :; :; :; :; ) FULLWIDTH COLON
+FF1B;FF1B;FF1B;003B;003B; # (;; ;; ;; ;; ;; ) FULLWIDTH SEMICOLON
+FF1C;FF1C;FF1C;003C;003C; # (<; <; <; <; <; ) FULLWIDTH LESS-THAN SIGN
+FF1D;FF1D;FF1D;003D;003D; # (=; =; =; =; =; ) FULLWIDTH EQUALS SIGN
+FF1E;FF1E;FF1E;003E;003E; # (>; >; >; >; >; ) FULLWIDTH GREATER-THAN SIGN
+FF1F;FF1F;FF1F;003F;003F; # (?; ?; ?; ?; ?; ) FULLWIDTH QUESTION MARK
+FF20;FF20;FF20;0040;0040; # (@; @; @; @; @; ) FULLWIDTH COMMERCIAL AT
+FF21;FF21;FF21;0041;0041; # (A; A; A; A; A; ) FULLWIDTH LATIN CAPITAL LETTER A
+FF22;FF22;FF22;0042;0042; # (B; B; B; B; B; ) FULLWIDTH LATIN CAPITAL LETTER B
+FF23;FF23;FF23;0043;0043; # (C; C; C; C; C; ) FULLWIDTH LATIN CAPITAL LETTER C
+FF24;FF24;FF24;0044;0044; # (D; D; D; D; D; ) FULLWIDTH LATIN CAPITAL LETTER D
+FF25;FF25;FF25;0045;0045; # (E; E; E; E; E; ) FULLWIDTH LATIN CAPITAL LETTER E
+FF26;FF26;FF26;0046;0046; # (F; F; F; F; F; ) FULLWIDTH LATIN CAPITAL LETTER F
+FF27;FF27;FF27;0047;0047; # (G; G; G; G; G; ) FULLWIDTH LATIN CAPITAL LETTER G
+FF28;FF28;FF28;0048;0048; # (H; H; H; H; H; ) FULLWIDTH LATIN CAPITAL LETTER H
+FF29;FF29;FF29;0049;0049; # (I; I; I; I; I; ) FULLWIDTH LATIN CAPITAL LETTER I
+FF2A;FF2A;FF2A;004A;004A; # (J; J; J; J; J; ) FULLWIDTH LATIN CAPITAL LETTER J
+FF2B;FF2B;FF2B;004B;004B; # (K; K; K; K; K; ) FULLWIDTH LATIN CAPITAL LETTER K
+FF2C;FF2C;FF2C;004C;004C; # (L; L; L; L; L; ) FULLWIDTH LATIN CAPITAL LETTER L
+FF2D;FF2D;FF2D;004D;004D; # (M; M; M; M; M; ) FULLWIDTH LATIN CAPITAL LETTER M
+FF2E;FF2E;FF2E;004E;004E; # (N; N; N; N; N; ) FULLWIDTH LATIN CAPITAL LETTER N
+FF2F;FF2F;FF2F;004F;004F; # (O; O; O; O; O; ) FULLWIDTH LATIN CAPITAL LETTER O
+FF30;FF30;FF30;0050;0050; # (P; P; P; P; P; ) FULLWIDTH LATIN CAPITAL LETTER P
+FF31;FF31;FF31;0051;0051; # (Q; Q; Q; Q; Q; ) FULLWIDTH LATIN CAPITAL LETTER Q
+FF32;FF32;FF32;0052;0052; # (R; R; R; R; R; ) FULLWIDTH LATIN CAPITAL LETTER R
+FF33;FF33;FF33;0053;0053; # (S; S; S; S; S; ) FULLWIDTH LATIN CAPITAL LETTER S
+FF34;FF34;FF34;0054;0054; # (T; T; T; T; T; ) FULLWIDTH LATIN CAPITAL LETTER T
+FF35;FF35;FF35;0055;0055; # (U; U; U; U; U; ) FULLWIDTH LATIN CAPITAL LETTER U
+FF36;FF36;FF36;0056;0056; # (V; V; V; V; V; ) FULLWIDTH LATIN CAPITAL LETTER V
+FF37;FF37;FF37;0057;0057; # (W; W; W; W; W; ) FULLWIDTH LATIN CAPITAL LETTER W
+FF38;FF38;FF38;0058;0058; # (X; X; X; X; X; ) FULLWIDTH LATIN CAPITAL LETTER X
+FF39;FF39;FF39;0059;0059; # (Y; Y; Y; Y; Y; ) FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A;FF3A;FF3A;005A;005A; # (Z; Z; Z; Z; Z; ) FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;FF3B;FF3B;005B;005B; # ([; [; [; [; [; ) FULLWIDTH LEFT SQUARE BRACKET
+FF3C;FF3C;FF3C;005C;005C; # (\; \; \; \; \; ) FULLWIDTH REVERSE SOLIDUS
+FF3D;FF3D;FF3D;005D;005D; # (]; ]; ]; ]; ]; ) FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;FF3E;FF3E;005E;005E; # (^; ^; ^; ^; ^; ) FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;FF3F;FF3F;005F;005F; # (_; _; _; _; _; ) FULLWIDTH LOW LINE
+FF40;FF40;FF40;0060;0060; # (`; `; `; `; `; ) FULLWIDTH GRAVE ACCENT
+FF41;FF41;FF41;0061;0061; # (a; a; a; a; a; ) FULLWIDTH LATIN SMALL LETTER A
+FF42;FF42;FF42;0062;0062; # (b; b; b; b; b; ) FULLWIDTH LATIN SMALL LETTER B
+FF43;FF43;FF43;0063;0063; # (c; c; c; c; c; ) FULLWIDTH LATIN SMALL LETTER C
+FF44;FF44;FF44;0064;0064; # (d; d; d; d; d; ) FULLWIDTH LATIN SMALL LETTER D
+FF45;FF45;FF45;0065;0065; # (e; e; e; e; e; ) FULLWIDTH LATIN SMALL LETTER E
+FF46;FF46;FF46;0066;0066; # (f; f; f; f; f; ) FULLWIDTH LATIN SMALL LETTER F
+FF47;FF47;FF47;0067;0067; # (g; g; g; g; g; ) FULLWIDTH LATIN SMALL LETTER G
+FF48;FF48;FF48;0068;0068; # (h; h; h; h; h; ) FULLWIDTH LATIN SMALL LETTER H
+FF49;FF49;FF49;0069;0069; # (i; i; i; i; i; ) FULLWIDTH LATIN SMALL LETTER I
+FF4A;FF4A;FF4A;006A;006A; # (j; j; j; j; j; ) FULLWIDTH LATIN SMALL LETTER J
+FF4B;FF4B;FF4B;006B;006B; # (k; k; k; k; k; ) FULLWIDTH LATIN SMALL LETTER K
+FF4C;FF4C;FF4C;006C;006C; # (l; l; l; l; l; ) FULLWIDTH LATIN SMALL LETTER L
+FF4D;FF4D;FF4D;006D;006D; # (m; m; m; m; m; ) FULLWIDTH LATIN SMALL LETTER M
+FF4E;FF4E;FF4E;006E;006E; # (n; n; n; n; n; ) FULLWIDTH LATIN SMALL LETTER N
+FF4F;FF4F;FF4F;006F;006F; # (o; o; o; o; o; ) FULLWIDTH LATIN SMALL LETTER O
+FF50;FF50;FF50;0070;0070; # (p; p; p; p; p; ) FULLWIDTH LATIN SMALL LETTER P
+FF51;FF51;FF51;0071;0071; # (q; q; q; q; q; ) FULLWIDTH LATIN SMALL LETTER Q
+FF52;FF52;FF52;0072;0072; # (r; r; r; r; r; ) FULLWIDTH LATIN SMALL LETTER R
+FF53;FF53;FF53;0073;0073; # (s; s; s; s; s; ) FULLWIDTH LATIN SMALL LETTER S
+FF54;FF54;FF54;0074;0074; # (t; t; t; t; t; ) FULLWIDTH LATIN SMALL LETTER T
+FF55;FF55;FF55;0075;0075; # (u; u; u; u; u; ) FULLWIDTH LATIN SMALL LETTER U
+FF56;FF56;FF56;0076;0076; # (v; v; v; v; v; ) FULLWIDTH LATIN SMALL LETTER V
+FF57;FF57;FF57;0077;0077; # (w; w; w; w; w; ) FULLWIDTH LATIN SMALL LETTER W
+FF58;FF58;FF58;0078;0078; # (x; x; x; x; x; ) FULLWIDTH LATIN SMALL LETTER X
+FF59;FF59;FF59;0079;0079; # (y; y; y; y; y; ) FULLWIDTH LATIN SMALL LETTER Y
+FF5A;FF5A;FF5A;007A;007A; # (z; z; z; z; z; ) FULLWIDTH LATIN SMALL LETTER Z
+FF5B;FF5B;FF5B;007B;007B; # ({; {; {; {; {; ) FULLWIDTH LEFT CURLY BRACKET
+FF5C;FF5C;FF5C;007C;007C; # (|; |; |; |; |; ) FULLWIDTH VERTICAL LINE
+FF5D;FF5D;FF5D;007D;007D; # (}; }; }; }; }; ) FULLWIDTH RIGHT CURLY BRACKET
+FF5E;FF5E;FF5E;007E;007E; # (~; ~; ~; ~; ~; ) FULLWIDTH TILDE
+FF5F;FF5F;FF5F;2985;2985; # (⦅; ⦅; ⦅; ⦅; ⦅; ) FULLWIDTH LEFT WHITE PARENTHESIS
+FF60;FF60;FF60;2986;2986; # (⦆; ⦆; ⦆; ⦆; ⦆; ) FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61;FF61;FF61;3002;3002; # (。; 。; 。; 。; 。; ) HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;FF62;FF62;300C;300C; # (「; 「; 「; 「; 「; ) HALFWIDTH LEFT CORNER BRACKET
+FF63;FF63;FF63;300D;300D; # (」; 」; 」; 」; 」; ) HALFWIDTH RIGHT CORNER BRACKET
+FF64;FF64;FF64;3001;3001; # (、; 、; 、; 、; 、; ) HALFWIDTH IDEOGRAPHIC COMMA
+FF65;FF65;FF65;30FB;30FB; # (・; ・; ・; ・; ・; ) HALFWIDTH KATAKANA MIDDLE DOT
+FF66;FF66;FF66;30F2;30F2; # (ヲ; ヲ; ヲ; ヲ; ヲ; ) HALFWIDTH KATAKANA LETTER WO
+FF67;FF67;FF67;30A1;30A1; # (ァ; ァ; ァ; ァ; ァ; ) HALFWIDTH KATAKANA LETTER SMALL A
+FF68;FF68;FF68;30A3;30A3; # (ィ; ィ; ィ; ィ; ィ; ) HALFWIDTH KATAKANA LETTER SMALL I
+FF69;FF69;FF69;30A5;30A5; # (ゥ; ゥ; ゥ; ゥ; ゥ; ) HALFWIDTH KATAKANA LETTER SMALL U
+FF6A;FF6A;FF6A;30A7;30A7; # (ェ; ェ; ェ; ェ; ェ; ) HALFWIDTH KATAKANA LETTER SMALL E
+FF6B;FF6B;FF6B;30A9;30A9; # (ォ; ォ; ォ; ォ; ォ; ) HALFWIDTH KATAKANA LETTER SMALL O
+FF6C;FF6C;FF6C;30E3;30E3; # (ャ; ャ; ャ; ャ; ャ; ) HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D;FF6D;FF6D;30E5;30E5; # (ュ; ュ; ュ; ュ; ュ; ) HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E;FF6E;FF6E;30E7;30E7; # (ョ; ョ; ョ; ョ; ョ; ) HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F;FF6F;FF6F;30C3;30C3; # (ッ; ッ; ッ; ッ; ッ; ) HALFWIDTH KATAKANA LETTER SMALL TU
+FF70;FF70;FF70;30FC;30FC; # (ー; ー; ー; ー; ー; ) HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71;FF71;FF71;30A2;30A2; # (ア; ア; ア; ア; ア; ) HALFWIDTH KATAKANA LETTER A
+FF72;FF72;FF72;30A4;30A4; # (イ; イ; イ; イ; イ; ) HALFWIDTH KATAKANA LETTER I
+FF73;FF73;FF73;30A6;30A6; # (ウ; ウ; ウ; ウ; ウ; ) HALFWIDTH KATAKANA LETTER U
+FF74;FF74;FF74;30A8;30A8; # (エ; エ; エ; エ; エ; ) HALFWIDTH KATAKANA LETTER E
+FF75;FF75;FF75;30AA;30AA; # (オ; オ; オ; オ; オ; ) HALFWIDTH KATAKANA LETTER O
+FF76;FF76;FF76;30AB;30AB; # (カ; カ; カ; カ; カ; ) HALFWIDTH KATAKANA LETTER KA
+FF77;FF77;FF77;30AD;30AD; # (キ; キ; キ; キ; キ; ) HALFWIDTH KATAKANA LETTER KI
+FF78;FF78;FF78;30AF;30AF; # (ク; ク; ク; ク; ク; ) HALFWIDTH KATAKANA LETTER KU
+FF79;FF79;FF79;30B1;30B1; # (ケ; ケ; ケ; ケ; ケ; ) HALFWIDTH KATAKANA LETTER KE
+FF7A;FF7A;FF7A;30B3;30B3; # (コ; コ; コ; コ; コ; ) HALFWIDTH KATAKANA LETTER KO
+FF7B;FF7B;FF7B;30B5;30B5; # (サ; サ; サ; サ; サ; ) HALFWIDTH KATAKANA LETTER SA
+FF7C;FF7C;FF7C;30B7;30B7; # (シ; シ; シ; シ; シ; ) HALFWIDTH KATAKANA LETTER SI
+FF7D;FF7D;FF7D;30B9;30B9; # (ス; ス; ス; ス; ス; ) HALFWIDTH KATAKANA LETTER SU
+FF7E;FF7E;FF7E;30BB;30BB; # (セ; セ; セ; セ; セ; ) HALFWIDTH KATAKANA LETTER SE
+FF7F;FF7F;FF7F;30BD;30BD; # (ソ; ソ; ソ; ソ; ソ; ) HALFWIDTH KATAKANA LETTER SO
+FF80;FF80;FF80;30BF;30BF; # (タ; タ; タ; タ; タ; ) HALFWIDTH KATAKANA LETTER TA
+FF81;FF81;FF81;30C1;30C1; # (チ; チ; チ; チ; チ; ) HALFWIDTH KATAKANA LETTER TI
+FF82;FF82;FF82;30C4;30C4; # (ツ; ツ; ツ; ツ; ツ; ) HALFWIDTH KATAKANA LETTER TU
+FF83;FF83;FF83;30C6;30C6; # (テ; テ; テ; テ; テ; ) HALFWIDTH KATAKANA LETTER TE
+FF84;FF84;FF84;30C8;30C8; # (ト; ト; ト; ト; ト; ) HALFWIDTH KATAKANA LETTER TO
+FF85;FF85;FF85;30CA;30CA; # (ナ; ナ; ナ; ナ; ナ; ) HALFWIDTH KATAKANA LETTER NA
+FF86;FF86;FF86;30CB;30CB; # (ニ; ニ; ニ; ニ; ニ; ) HALFWIDTH KATAKANA LETTER NI
+FF87;FF87;FF87;30CC;30CC; # (ヌ; ヌ; ヌ; ヌ; ヌ; ) HALFWIDTH KATAKANA LETTER NU
+FF88;FF88;FF88;30CD;30CD; # (ネ; ネ; ネ; ネ; ネ; ) HALFWIDTH KATAKANA LETTER NE
+FF89;FF89;FF89;30CE;30CE; # (ノ; ノ; ノ; ノ; ノ; ) HALFWIDTH KATAKANA LETTER NO
+FF8A;FF8A;FF8A;30CF;30CF; # (ハ; ハ; ハ; ハ; ハ; ) HALFWIDTH KATAKANA LETTER HA
+FF8B;FF8B;FF8B;30D2;30D2; # (ヒ; ヒ; ヒ; ヒ; ヒ; ) HALFWIDTH KATAKANA LETTER HI
+FF8C;FF8C;FF8C;30D5;30D5; # (フ; フ; フ; フ; フ; ) HALFWIDTH KATAKANA LETTER HU
+FF8D;FF8D;FF8D;30D8;30D8; # (ヘ; ヘ; ヘ; ヘ; ヘ; ) HALFWIDTH KATAKANA LETTER HE
+FF8E;FF8E;FF8E;30DB;30DB; # (ホ; ホ; ホ; ホ; ホ; ) HALFWIDTH KATAKANA LETTER HO
+FF8F;FF8F;FF8F;30DE;30DE; # (マ; マ; マ; マ; マ; ) HALFWIDTH KATAKANA LETTER MA
+FF90;FF90;FF90;30DF;30DF; # (ミ; ミ; ミ; ミ; ミ; ) HALFWIDTH KATAKANA LETTER MI
+FF91;FF91;FF91;30E0;30E0; # (ム; ム; ム; ム; ム; ) HALFWIDTH KATAKANA LETTER MU
+FF92;FF92;FF92;30E1;30E1; # (メ; メ; メ; メ; メ; ) HALFWIDTH KATAKANA LETTER ME
+FF93;FF93;FF93;30E2;30E2; # (モ; モ; モ; モ; モ; ) HALFWIDTH KATAKANA LETTER MO
+FF94;FF94;FF94;30E4;30E4; # (ヤ; ヤ; ヤ; ヤ; ヤ; ) HALFWIDTH KATAKANA LETTER YA
+FF95;FF95;FF95;30E6;30E6; # (ユ; ユ; ユ; ユ; ユ; ) HALFWIDTH KATAKANA LETTER YU
+FF96;FF96;FF96;30E8;30E8; # (ヨ; ヨ; ヨ; ヨ; ヨ; ) HALFWIDTH KATAKANA LETTER YO
+FF97;FF97;FF97;30E9;30E9; # (ラ; ラ; ラ; ラ; ラ; ) HALFWIDTH KATAKANA LETTER RA
+FF98;FF98;FF98;30EA;30EA; # (リ; リ; リ; リ; リ; ) HALFWIDTH KATAKANA LETTER RI
+FF99;FF99;FF99;30EB;30EB; # (ル; ル; ル; ル; ル; ) HALFWIDTH KATAKANA LETTER RU
+FF9A;FF9A;FF9A;30EC;30EC; # (レ; レ; レ; レ; レ; ) HALFWIDTH KATAKANA LETTER RE
+FF9B;FF9B;FF9B;30ED;30ED; # (ロ; ロ; ロ; ロ; ロ; ) HALFWIDTH KATAKANA LETTER RO
+FF9C;FF9C;FF9C;30EF;30EF; # (ワ; ワ; ワ; ワ; ワ; ) HALFWIDTH KATAKANA LETTER WA
+FF9D;FF9D;FF9D;30F3;30F3; # (ン; ン; ン; ン; ン; ) HALFWIDTH KATAKANA LETTER N
+FF9E;FF9E;FF9E;3099;3099; # (゙; ゙; ゙; ◌゙; ◌゙; ) HALFWIDTH KATAKANA VOICED SOUND MARK
+FF9F;FF9F;FF9F;309A;309A; # (゚; ゚; ゚; ◌゚; ◌゚; ) HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0;FFA0;FFA0;1160;1160; # (ᅠ; ᅠ; ᅠ; ᅠ; ᅠ; ) HALFWIDTH HANGUL FILLER
+FFA1;FFA1;FFA1;1100;1100; # (ᄀ; ᄀ; ᄀ; ᄀ; ᄀ; ) HALFWIDTH HANGUL LETTER KIYEOK
+FFA2;FFA2;FFA2;1101;1101; # (ᄁ; ᄁ; ᄁ; ᄁ; ᄁ; ) HALFWIDTH HANGUL LETTER SSANGKIYEOK
+FFA3;FFA3;FFA3;11AA;11AA; # (ᆪ; ᆪ; ᆪ; ᆪ; ᆪ; ) HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+FFA4;FFA4;FFA4;1102;1102; # (ᄂ; ᄂ; ᄂ; ᄂ; ᄂ; ) HALFWIDTH HANGUL LETTER NIEUN
+FFA5;FFA5;FFA5;11AC;11AC; # (ᆬ; ᆬ; ᆬ; ᆬ; ᆬ; ) HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+FFA6;FFA6;FFA6;11AD;11AD; # (ᆭ; ᆭ; ᆭ; ᆭ; ᆭ; ) HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+FFA7;FFA7;FFA7;1103;1103; # (ᄃ; ᄃ; ᄃ; ᄃ; ᄃ; ) HALFWIDTH HANGUL LETTER TIKEUT
+FFA8;FFA8;FFA8;1104;1104; # (ᄄ; ᄄ; ᄄ; ᄄ; ᄄ; ) HALFWIDTH HANGUL LETTER SSANGTIKEUT
+FFA9;FFA9;FFA9;1105;1105; # (ᄅ; ᄅ; ᄅ; ᄅ; ᄅ; ) HALFWIDTH HANGUL LETTER RIEUL
+FFAA;FFAA;FFAA;11B0;11B0; # (ᆰ; ᆰ; ᆰ; ᆰ; ᆰ; ) HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+FFAB;FFAB;FFAB;11B1;11B1; # (ᆱ; ᆱ; ᆱ; ᆱ; ᆱ; ) HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+FFAC;FFAC;FFAC;11B2;11B2; # (ᆲ; ᆲ; ᆲ; ᆲ; ᆲ; ) HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+FFAD;FFAD;FFAD;11B3;11B3; # (ᆳ; ᆳ; ᆳ; ᆳ; ᆳ; ) HALFWIDTH HANGUL LETTER RIEUL-SIOS
+FFAE;FFAE;FFAE;11B4;11B4; # (ᆴ; ᆴ; ᆴ; ᆴ; ᆴ; ) HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+FFAF;FFAF;FFAF;11B5;11B5; # (ᆵ; ᆵ; ᆵ; ᆵ; ᆵ; ) HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+FFB0;FFB0;FFB0;111A;111A; # (ᄚ; ᄚ; ᄚ; ᄚ; ᄚ; ) HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+FFB1;FFB1;FFB1;1106;1106; # (ᄆ; ᄆ; ᄆ; ᄆ; ᄆ; ) HALFWIDTH HANGUL LETTER MIEUM
+FFB2;FFB2;FFB2;1107;1107; # (ᄇ; ᄇ; ᄇ; ᄇ; ᄇ; ) HALFWIDTH HANGUL LETTER PIEUP
+FFB3;FFB3;FFB3;1108;1108; # (ᄈ; ᄈ; ᄈ; ᄈ; ᄈ; ) HALFWIDTH HANGUL LETTER SSANGPIEUP
+FFB4;FFB4;FFB4;1121;1121; # (ᄡ; ᄡ; ᄡ; ᄡ; ᄡ; ) HALFWIDTH HANGUL LETTER PIEUP-SIOS
+FFB5;FFB5;FFB5;1109;1109; # (ᄉ; ᄉ; ᄉ; ᄉ; ᄉ; ) HALFWIDTH HANGUL LETTER SIOS
+FFB6;FFB6;FFB6;110A;110A; # (ᄊ; ᄊ; ᄊ; ᄊ; ᄊ; ) HALFWIDTH HANGUL LETTER SSANGSIOS
+FFB7;FFB7;FFB7;110B;110B; # (ᄋ; ᄋ; ᄋ; ᄋ; ᄋ; ) HALFWIDTH HANGUL LETTER IEUNG
+FFB8;FFB8;FFB8;110C;110C; # (ᄌ; ᄌ; ᄌ; ᄌ; ᄌ; ) HALFWIDTH HANGUL LETTER CIEUC
+FFB9;FFB9;FFB9;110D;110D; # (ᄍ; ᄍ; ᄍ; ᄍ; ᄍ; ) HALFWIDTH HANGUL LETTER SSANGCIEUC
+FFBA;FFBA;FFBA;110E;110E; # (ᄎ; ᄎ; ᄎ; ᄎ; ᄎ; ) HALFWIDTH HANGUL LETTER CHIEUCH
+FFBB;FFBB;FFBB;110F;110F; # (ᄏ; ᄏ; ᄏ; ᄏ; ᄏ; ) HALFWIDTH HANGUL LETTER KHIEUKH
+FFBC;FFBC;FFBC;1110;1110; # (ᄐ; ᄐ; ᄐ; ᄐ; ᄐ; ) HALFWIDTH HANGUL LETTER THIEUTH
+FFBD;FFBD;FFBD;1111;1111; # (ᄑ; ᄑ; ᄑ; ᄑ; ᄑ; ) HALFWIDTH HANGUL LETTER PHIEUPH
+FFBE;FFBE;FFBE;1112;1112; # (ᄒ; ᄒ; ᄒ; ᄒ; ᄒ; ) HALFWIDTH HANGUL LETTER HIEUH
+FFC2;FFC2;FFC2;1161;1161; # (ᅡ; ᅡ; ᅡ; ᅡ; ᅡ; ) HALFWIDTH HANGUL LETTER A
+FFC3;FFC3;FFC3;1162;1162; # (ᅢ; ᅢ; ᅢ; ᅢ; ᅢ; ) HALFWIDTH HANGUL LETTER AE
+FFC4;FFC4;FFC4;1163;1163; # (ᅣ; ᅣ; ᅣ; ᅣ; ᅣ; ) HALFWIDTH HANGUL LETTER YA
+FFC5;FFC5;FFC5;1164;1164; # (ᅤ; ᅤ; ᅤ; ᅤ; ᅤ; ) HALFWIDTH HANGUL LETTER YAE
+FFC6;FFC6;FFC6;1165;1165; # (ᅥ; ᅥ; ᅥ; ᅥ; ᅥ; ) HALFWIDTH HANGUL LETTER EO
+FFC7;FFC7;FFC7;1166;1166; # (ᅦ; ᅦ; ᅦ; ᅦ; ᅦ; ) HALFWIDTH HANGUL LETTER E
+FFCA;FFCA;FFCA;1167;1167; # (ᅧ; ᅧ; ᅧ; ᅧ; ᅧ; ) HALFWIDTH HANGUL LETTER YEO
+FFCB;FFCB;FFCB;1168;1168; # (ᅨ; ᅨ; ᅨ; ᅨ; ᅨ; ) HALFWIDTH HANGUL LETTER YE
+FFCC;FFCC;FFCC;1169;1169; # (ᅩ; ᅩ; ᅩ; ᅩ; ᅩ; ) HALFWIDTH HANGUL LETTER O
+FFCD;FFCD;FFCD;116A;116A; # (ᅪ; ᅪ; ᅪ; ᅪ; ᅪ; ) HALFWIDTH HANGUL LETTER WA
+FFCE;FFCE;FFCE;116B;116B; # (ᅫ; ᅫ; ᅫ; ᅫ; ᅫ; ) HALFWIDTH HANGUL LETTER WAE
+FFCF;FFCF;FFCF;116C;116C; # (ᅬ; ᅬ; ᅬ; ᅬ; ᅬ; ) HALFWIDTH HANGUL LETTER OE
+FFD2;FFD2;FFD2;116D;116D; # (ᅭ; ᅭ; ᅭ; ᅭ; ᅭ; ) HALFWIDTH HANGUL LETTER YO
+FFD3;FFD3;FFD3;116E;116E; # (ᅮ; ᅮ; ᅮ; ᅮ; ᅮ; ) HALFWIDTH HANGUL LETTER U
+FFD4;FFD4;FFD4;116F;116F; # (ᅯ; ᅯ; ᅯ; ᅯ; ᅯ; ) HALFWIDTH HANGUL LETTER WEO
+FFD5;FFD5;FFD5;1170;1170; # (ᅰ; ᅰ; ᅰ; ᅰ; ᅰ; ) HALFWIDTH HANGUL LETTER WE
+FFD6;FFD6;FFD6;1171;1171; # (ᅱ; ᅱ; ᅱ; ᅱ; ᅱ; ) HALFWIDTH HANGUL LETTER WI
+FFD7;FFD7;FFD7;1172;1172; # (ᅲ; ᅲ; ᅲ; ᅲ; ᅲ; ) HALFWIDTH HANGUL LETTER YU
+FFDA;FFDA;FFDA;1173;1173; # (ᅳ; ᅳ; ᅳ; ᅳ; ᅳ; ) HALFWIDTH HANGUL LETTER EU
+FFDB;FFDB;FFDB;1174;1174; # (ᅴ; ᅴ; ᅴ; ᅴ; ᅴ; ) HALFWIDTH HANGUL LETTER YI
+FFDC;FFDC;FFDC;1175;1175; # (ᅵ; ᅵ; ᅵ; ᅵ; ᅵ; ) HALFWIDTH HANGUL LETTER I
+FFE0;FFE0;FFE0;00A2;00A2; # (¢; ¢; ¢; ¢; ¢; ) FULLWIDTH CENT SIGN
+FFE1;FFE1;FFE1;00A3;00A3; # (£; £; £; £; £; ) FULLWIDTH POUND SIGN
+FFE2;FFE2;FFE2;00AC;00AC; # (¬; ¬; ¬; ¬; ¬; ) FULLWIDTH NOT SIGN
+FFE3;FFE3;FFE3;0020 0304;0020 0304; # ( ̄;  ̄;  ̄;  ◌̄;  ◌̄; ) FULLWIDTH MACRON
+FFE4;FFE4;FFE4;00A6;00A6; # (¦; ¦; ¦; ¦; ¦; ) FULLWIDTH BROKEN BAR
+FFE5;FFE5;FFE5;00A5;00A5; # (¥; ¥; ¥; ¥; ¥; ) FULLWIDTH YEN SIGN
+FFE6;FFE6;FFE6;20A9;20A9; # (₩; ₩; ₩; ₩; ₩; ) FULLWIDTH WON SIGN
+FFE8;FFE8;FFE8;2502;2502; # (│; │; │; │; │; ) HALFWIDTH FORMS LIGHT VERTICAL
+FFE9;FFE9;FFE9;2190;2190; # (←; ←; ←; ←; ←; ) HALFWIDTH LEFTWARDS ARROW
+FFEA;FFEA;FFEA;2191;2191; # (↑; ↑; ↑; ↑; ↑; ) HALFWIDTH UPWARDS ARROW
+FFEB;FFEB;FFEB;2192;2192; # (→; →; →; →; →; ) HALFWIDTH RIGHTWARDS ARROW
+FFEC;FFEC;FFEC;2193;2193; # (↓; ↓; ↓; ↓; ↓; ) HALFWIDTH DOWNWARDS ARROW
+FFED;FFED;FFED;25A0;25A0; # (■; ■; ■; ■; ■; ) HALFWIDTH BLACK SQUARE
+FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
+10781;10781;10781;02D0;02D0; # (𐞁; 𐞁; 𐞁; ː; ː; ) MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON
+10782;10782;10782;02D1;02D1; # (𐞂; 𐞂; 𐞂; ˑ; ˑ; ) MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+10783;10783;10783;00E6;00E6; # (𐞃; 𐞃; 𐞃; æ; æ; ) MODIFIER LETTER SMALL AE
+10784;10784;10784;0299;0299; # (𐞄; 𐞄; 𐞄; ʙ; ʙ; ) MODIFIER LETTER SMALL CAPITAL B
+10785;10785;10785;0253;0253; # (𐞅; 𐞅; 𐞅; ɓ; ɓ; ) MODIFIER LETTER SMALL B WITH HOOK
+10787;10787;10787;02A3;02A3; # (𐞇; 𐞇; 𐞇; ʣ; ʣ; ) MODIFIER LETTER SMALL DZ DIGRAPH
+10788;10788;10788;AB66;AB66; # (𐞈; 𐞈; 𐞈; ꭦ; ꭦ; ) MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+10789;10789;10789;02A5;02A5; # (𐞉; 𐞉; 𐞉; ʥ; ʥ; ) MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL
+1078A;1078A;1078A;02A4;02A4; # (𐞊; 𐞊; 𐞊; ʤ; ʤ; ) MODIFIER LETTER SMALL DEZH DIGRAPH
+1078B;1078B;1078B;0256;0256; # (𐞋; 𐞋; 𐞋; ɖ; ɖ; ) MODIFIER LETTER SMALL D WITH TAIL
+1078C;1078C;1078C;0257;0257; # (𐞌; 𐞌; 𐞌; ɗ; ɗ; ) MODIFIER LETTER SMALL D WITH HOOK
+1078D;1078D;1078D;1D91;1D91; # (𐞍; 𐞍; 𐞍; ᶑ; ᶑ; ) MODIFIER LETTER SMALL D WITH HOOK AND TAIL
+1078E;1078E;1078E;0258;0258; # (𐞎; 𐞎; 𐞎; ɘ; ɘ; ) MODIFIER LETTER SMALL REVERSED E
+1078F;1078F;1078F;025E;025E; # (𐞏; 𐞏; 𐞏; ɞ; ɞ; ) MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+10790;10790;10790;02A9;02A9; # (𐞐; 𐞐; 𐞐; ʩ; ʩ; ) MODIFIER LETTER SMALL FENG DIGRAPH
+10791;10791;10791;0264;0264; # (𐞑; 𐞑; 𐞑; ɤ; ɤ; ) MODIFIER LETTER SMALL RAMS HORN
+10792;10792;10792;0262;0262; # (𐞒; 𐞒; 𐞒; ɢ; ɢ; ) MODIFIER LETTER SMALL CAPITAL G
+10793;10793;10793;0260;0260; # (𐞓; 𐞓; 𐞓; ɠ; ɠ; ) MODIFIER LETTER SMALL G WITH HOOK
+10794;10794;10794;029B;029B; # (𐞔; 𐞔; 𐞔; ʛ; ʛ; ) MODIFIER LETTER SMALL CAPITAL G WITH HOOK
+10795;10795;10795;0127;0127; # (𐞕; 𐞕; 𐞕; ħ; ħ; ) MODIFIER LETTER SMALL H WITH STROKE
+10796;10796;10796;029C;029C; # (𐞖; 𐞖; 𐞖; ʜ; ʜ; ) MODIFIER LETTER SMALL CAPITAL H
+10797;10797;10797;0267;0267; # (𐞗; 𐞗; 𐞗; ɧ; ɧ; ) MODIFIER LETTER SMALL HENG WITH HOOK
+10798;10798;10798;0284;0284; # (𐞘; 𐞘; 𐞘; ʄ; ʄ; ) MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK
+10799;10799;10799;02AA;02AA; # (𐞙; 𐞙; 𐞙; ʪ; ʪ; ) MODIFIER LETTER SMALL LS DIGRAPH
+1079A;1079A;1079A;02AB;02AB; # (𐞚; 𐞚; 𐞚; ʫ; ʫ; ) MODIFIER LETTER SMALL LZ DIGRAPH
+1079B;1079B;1079B;026C;026C; # (𐞛; 𐞛; 𐞛; ɬ; ɬ; ) MODIFIER LETTER SMALL L WITH BELT
+1079C;1079C;1079C;1DF04;1DF04; # (𐞜; 𐞜; 𐞜; 𝼄; 𝼄; ) MODIFIER LETTER SMALL CAPITAL L WITH BELT
+1079D;1079D;1079D;A78E;A78E; # (𐞝; 𐞝; 𐞝; ꞎ; ꞎ; ) MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT
+1079E;1079E;1079E;026E;026E; # (𐞞; 𐞞; 𐞞; ɮ; ɮ; ) MODIFIER LETTER SMALL LEZH
+1079F;1079F;1079F;1DF05;1DF05; # (𐞟; 𐞟; 𐞟; 𝼅; 𝼅; ) MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK
+107A0;107A0;107A0;028E;028E; # (𐞠; 𐞠; 𐞠; ʎ; ʎ; ) MODIFIER LETTER SMALL TURNED Y
+107A1;107A1;107A1;1DF06;1DF06; # (𐞡; 𐞡; 𐞡; 𝼆; 𝼆; ) MODIFIER LETTER SMALL TURNED Y WITH BELT
+107A2;107A2;107A2;00F8;00F8; # (𐞢; 𐞢; 𐞢; ø; ø; ) MODIFIER LETTER SMALL O WITH STROKE
+107A3;107A3;107A3;0276;0276; # (𐞣; 𐞣; 𐞣; ɶ; ɶ; ) MODIFIER LETTER SMALL CAPITAL OE
+107A4;107A4;107A4;0277;0277; # (𐞤; 𐞤; 𐞤; ɷ; ɷ; ) MODIFIER LETTER SMALL CLOSED OMEGA
+107A5;107A5;107A5;0071;0071; # (𐞥; 𐞥; 𐞥; q; q; ) MODIFIER LETTER SMALL Q
+107A6;107A6;107A6;027A;027A; # (𐞦; 𐞦; 𐞦; ɺ; ɺ; ) MODIFIER LETTER SMALL TURNED R WITH LONG LEG
+107A7;107A7;107A7;1DF08;1DF08; # (𐞧; 𐞧; 𐞧; 𝼈; 𝼈; ) MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+107A8;107A8;107A8;027D;027D; # (𐞨; 𐞨; 𐞨; ɽ; ɽ; ) MODIFIER LETTER SMALL R WITH TAIL
+107A9;107A9;107A9;027E;027E; # (𐞩; 𐞩; 𐞩; ɾ; ɾ; ) MODIFIER LETTER SMALL R WITH FISHHOOK
+107AA;107AA;107AA;0280;0280; # (𐞪; 𐞪; 𐞪; ʀ; ʀ; ) MODIFIER LETTER SMALL CAPITAL R
+107AB;107AB;107AB;02A8;02A8; # (𐞫; 𐞫; 𐞫; ʨ; ʨ; ) MODIFIER LETTER SMALL TC DIGRAPH WITH CURL
+107AC;107AC;107AC;02A6;02A6; # (𐞬; 𐞬; 𐞬; ʦ; ʦ; ) MODIFIER LETTER SMALL TS DIGRAPH
+107AD;107AD;107AD;AB67;AB67; # (𐞭; 𐞭; 𐞭; ꭧ; ꭧ; ) MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK
+107AE;107AE;107AE;02A7;02A7; # (𐞮; 𐞮; 𐞮; ʧ; ʧ; ) MODIFIER LETTER SMALL TESH DIGRAPH
+107AF;107AF;107AF;0288;0288; # (𐞯; 𐞯; 𐞯; ʈ; ʈ; ) MODIFIER LETTER SMALL T WITH RETROFLEX HOOK
+107B0;107B0;107B0;2C71;2C71; # (𐞰; 𐞰; 𐞰; ⱱ; ⱱ; ) MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2;107B2;107B2;028F;028F; # (𐞲; 𐞲; 𐞲; ʏ; ʏ; ) MODIFIER LETTER SMALL CAPITAL Y
+107B3;107B3;107B3;02A1;02A1; # (𐞳; 𐞳; 𐞳; ʡ; ʡ; ) MODIFIER LETTER GLOTTAL STOP WITH STROKE
+107B4;107B4;107B4;02A2;02A2; # (𐞴; 𐞴; 𐞴; ʢ; ʢ; ) MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE
+107B5;107B5;107B5;0298;0298; # (𐞵; 𐞵; 𐞵; ʘ; ʘ; ) MODIFIER LETTER BILABIAL CLICK
+107B6;107B6;107B6;01C0;01C0; # (𐞶; 𐞶; 𐞶; ǀ; ǀ; ) MODIFIER LETTER DENTAL CLICK
+107B7;107B7;107B7;01C1;01C1; # (𐞷; 𐞷; 𐞷; ǁ; ǁ; ) MODIFIER LETTER LATERAL CLICK
+107B8;107B8;107B8;01C2;01C2; # (𐞸; 𐞸; 𐞸; ǂ; ǂ; ) MODIFIER LETTER ALVEOLAR CLICK
+107B9;107B9;107B9;1DF0A;1DF0A; # (𐞹; 𐞹; 𐞹; 𝼊; 𝼊; ) MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+107BA;107BA;107BA;1DF1E;1DF1E; # (𐞺; 𐞺; 𐞺; 𝼞; 𝼞; ) MODIFIER LETTER SMALL S WITH CURL
+1109A;1109A;11099 110BA;1109A;11099 110BA; # (𑂚; 𑂚; 𑂙◌𑂺; 𑂚; 𑂙◌𑂺; ) KAITHI LETTER DDDHA
+1109C;1109C;1109B 110BA;1109C;1109B 110BA; # (𑂜; 𑂜; 𑂛◌𑂺; 𑂜; 𑂛◌𑂺; ) KAITHI LETTER RHA
+110AB;110AB;110A5 110BA;110AB;110A5 110BA; # (𑂫; 𑂫; 𑂥◌𑂺; 𑂫; 𑂥◌𑂺; ) KAITHI LETTER VA
+1112E;1112E;11131 11127;1112E;11131 11127; # (◌𑄮; ◌𑄮; ◌𑄱◌𑄧; ◌𑄮; ◌𑄱◌𑄧; ) CHAKMA VOWEL SIGN O
+1112F;1112F;11132 11127;1112F;11132 11127; # (◌𑄯; ◌𑄯; ◌𑄲◌𑄧; ◌𑄯; ◌𑄲◌𑄧; ) CHAKMA VOWEL SIGN AU
+1134B;1134B;11347 1133E;1134B;11347 1133E; # (𑍋; 𑍋; 𑍋; 𑍋; 𑍋; ) GRANTHA VOWEL SIGN OO
+1134C;1134C;11347 11357;1134C;11347 11357; # (𑍌; 𑍌; 𑍌; 𑍌; 𑍌; ) GRANTHA VOWEL SIGN AU
+114BB;114BB;114B9 114BA;114BB;114B9 114BA; # (𑒻; 𑒻; 𑒹◌𑒺; 𑒻; 𑒹◌𑒺; ) TIRHUTA VOWEL SIGN AI
+114BC;114BC;114B9 114B0;114BC;114B9 114B0; # (𑒼; 𑒼; 𑒼; 𑒼; 𑒼; ) TIRHUTA VOWEL SIGN O
+114BE;114BE;114B9 114BD;114BE;114B9 114BD; # (𑒾; 𑒾; 𑒾; 𑒾; 𑒾; ) TIRHUTA VOWEL SIGN AU
+115BA;115BA;115B8 115AF;115BA;115B8 115AF; # (𑖺; 𑖺; 𑖺; 𑖺; 𑖺; ) SIDDHAM VOWEL SIGN O
+115BB;115BB;115B9 115AF;115BB;115B9 115AF; # (𑖻; 𑖻; 𑖻; 𑖻; 𑖻; ) SIDDHAM VOWEL SIGN AU
+11938;11938;11935 11930;11938;11935 11930; # (𑤸; 𑤸; 𑤸; 𑤸; 𑤸; ) DIVES AKURU VOWEL SIGN O
+1D15E;1D157 1D165;1D157 1D165;1D157 1D165;1D157 1D165; # (𝅗𝅥; 𝅗𝅥; 𝅗𝅥; 𝅗𝅥; 𝅗𝅥; ) MUSICAL SYMBOL HALF NOTE
+1D15F;1D158 1D165;1D158 1D165;1D158 1D165;1D158 1D165; # (𝅘𝅥; 𝅘𝅥; 𝅘𝅥; 𝅘𝅥; 𝅘𝅥; ) MUSICAL SYMBOL QUARTER NOTE
+1D160;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E; # (𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; ) MUSICAL SYMBOL EIGHTH NOTE
+1D161;1D158 1D165 1D16F;1D158 1D165 1D16F;1D158 1D165 1D16F;1D158 1D165 1D16F; # (𝅘𝅥𝅯; 𝅘𝅥𝅯; 𝅘𝅥𝅯; 𝅘𝅥𝅯; 𝅘𝅥𝅯; ) MUSICAL SYMBOL SIXTEENTH NOTE
+1D162;1D158 1D165 1D170;1D158 1D165 1D170;1D158 1D165 1D170;1D158 1D165 1D170; # (𝅘𝅥𝅰; 𝅘𝅥𝅰; 𝅘𝅥𝅰; 𝅘𝅥𝅰; 𝅘𝅥𝅰; ) MUSICAL SYMBOL THIRTY-SECOND NOTE
+1D163;1D158 1D165 1D171;1D158 1D165 1D171;1D158 1D165 1D171;1D158 1D165 1D171; # (𝅘𝅥𝅱; 𝅘𝅥𝅱; 𝅘𝅥𝅱; 𝅘𝅥𝅱; 𝅘𝅥𝅱; ) MUSICAL SYMBOL SIXTY-FOURTH NOTE
+1D164;1D158 1D165 1D172;1D158 1D165 1D172;1D158 1D165 1D172;1D158 1D165 1D172; # (𝅘𝅥𝅲; 𝅘𝅥𝅲; 𝅘𝅥𝅲; 𝅘𝅥𝅲; 𝅘𝅥𝅲; ) MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D1BB;1D1B9 1D165;1D1B9 1D165;1D1B9 1D165;1D1B9 1D165; # (𝆹𝅥; 𝆹𝅥; 𝆹𝅥; 𝆹𝅥; 𝆹𝅥; ) MUSICAL SYMBOL MINIMA
+1D1BC;1D1BA 1D165;1D1BA 1D165;1D1BA 1D165;1D1BA 1D165; # (𝆺𝅥; 𝆺𝅥; 𝆺𝅥; 𝆺𝅥; 𝆺𝅥; ) MUSICAL SYMBOL MINIMA BLACK
+1D1BD;1D1B9 1D165 1D16E;1D1B9 1D165 1D16E;1D1B9 1D165 1D16E;1D1B9 1D165 1D16E; # (𝆹𝅥𝅮; 𝆹𝅥𝅮; 𝆹𝅥𝅮; 𝆹𝅥𝅮; 𝆹𝅥𝅮; ) MUSICAL SYMBOL SEMIMINIMA WHITE
+1D1BE;1D1BA 1D165 1D16E;1D1BA 1D165 1D16E;1D1BA 1D165 1D16E;1D1BA 1D165 1D16E; # (𝆺𝅥𝅮; 𝆺𝅥𝅮; 𝆺𝅥𝅮; 𝆺𝅥𝅮; 𝆺𝅥𝅮; ) MUSICAL SYMBOL SEMIMINIMA BLACK
+1D1BF;1D1B9 1D165 1D16F;1D1B9 1D165 1D16F;1D1B9 1D165 1D16F;1D1B9 1D165 1D16F; # (𝆹𝅥𝅯; 𝆹𝅥𝅯; 𝆹𝅥𝅯; 𝆹𝅥𝅯; 𝆹𝅥𝅯; ) MUSICAL SYMBOL FUSA WHITE
+1D1C0;1D1BA 1D165 1D16F;1D1BA 1D165 1D16F;1D1BA 1D165 1D16F;1D1BA 1D165 1D16F; # (𝆺𝅥𝅯; 𝆺𝅥𝅯; 𝆺𝅥𝅯; 𝆺𝅥𝅯; 𝆺𝅥𝅯; ) MUSICAL SYMBOL FUSA BLACK
+1D400;1D400;1D400;0041;0041; # (𝐀; 𝐀; 𝐀; A; A; ) MATHEMATICAL BOLD CAPITAL A
+1D401;1D401;1D401;0042;0042; # (𝐁; 𝐁; 𝐁; B; B; ) MATHEMATICAL BOLD CAPITAL B
+1D402;1D402;1D402;0043;0043; # (𝐂; 𝐂; 𝐂; C; C; ) MATHEMATICAL BOLD CAPITAL C
+1D403;1D403;1D403;0044;0044; # (𝐃; 𝐃; 𝐃; D; D; ) MATHEMATICAL BOLD CAPITAL D
+1D404;1D404;1D404;0045;0045; # (𝐄; 𝐄; 𝐄; E; E; ) MATHEMATICAL BOLD CAPITAL E
+1D405;1D405;1D405;0046;0046; # (𝐅; 𝐅; 𝐅; F; F; ) MATHEMATICAL BOLD CAPITAL F
+1D406;1D406;1D406;0047;0047; # (𝐆; 𝐆; 𝐆; G; G; ) MATHEMATICAL BOLD CAPITAL G
+1D407;1D407;1D407;0048;0048; # (𝐇; 𝐇; 𝐇; H; H; ) MATHEMATICAL BOLD CAPITAL H
+1D408;1D408;1D408;0049;0049; # (𝐈; 𝐈; 𝐈; I; I; ) MATHEMATICAL BOLD CAPITAL I
+1D409;1D409;1D409;004A;004A; # (𝐉; 𝐉; 𝐉; J; J; ) MATHEMATICAL BOLD CAPITAL J
+1D40A;1D40A;1D40A;004B;004B; # (𝐊; 𝐊; 𝐊; K; K; ) MATHEMATICAL BOLD CAPITAL K
+1D40B;1D40B;1D40B;004C;004C; # (𝐋; 𝐋; 𝐋; L; L; ) MATHEMATICAL BOLD CAPITAL L
+1D40C;1D40C;1D40C;004D;004D; # (𝐌; 𝐌; 𝐌; M; M; ) MATHEMATICAL BOLD CAPITAL M
+1D40D;1D40D;1D40D;004E;004E; # (𝐍; 𝐍; 𝐍; N; N; ) MATHEMATICAL BOLD CAPITAL N
+1D40E;1D40E;1D40E;004F;004F; # (𝐎; 𝐎; 𝐎; O; O; ) MATHEMATICAL BOLD CAPITAL O
+1D40F;1D40F;1D40F;0050;0050; # (𝐏; 𝐏; 𝐏; P; P; ) MATHEMATICAL BOLD CAPITAL P
+1D410;1D410;1D410;0051;0051; # (𝐐; 𝐐; 𝐐; Q; Q; ) MATHEMATICAL BOLD CAPITAL Q
+1D411;1D411;1D411;0052;0052; # (𝐑; 𝐑; 𝐑; R; R; ) MATHEMATICAL BOLD CAPITAL R
+1D412;1D412;1D412;0053;0053; # (𝐒; 𝐒; 𝐒; S; S; ) MATHEMATICAL BOLD CAPITAL S
+1D413;1D413;1D413;0054;0054; # (𝐓; 𝐓; 𝐓; T; T; ) MATHEMATICAL BOLD CAPITAL T
+1D414;1D414;1D414;0055;0055; # (𝐔; 𝐔; 𝐔; U; U; ) MATHEMATICAL BOLD CAPITAL U
+1D415;1D415;1D415;0056;0056; # (𝐕; 𝐕; 𝐕; V; V; ) MATHEMATICAL BOLD CAPITAL V
+1D416;1D416;1D416;0057;0057; # (𝐖; 𝐖; 𝐖; W; W; ) MATHEMATICAL BOLD CAPITAL W
+1D417;1D417;1D417;0058;0058; # (𝐗; 𝐗; 𝐗; X; X; ) MATHEMATICAL BOLD CAPITAL X
+1D418;1D418;1D418;0059;0059; # (𝐘; 𝐘; 𝐘; Y; Y; ) MATHEMATICAL BOLD CAPITAL Y
+1D419;1D419;1D419;005A;005A; # (𝐙; 𝐙; 𝐙; Z; Z; ) MATHEMATICAL BOLD CAPITAL Z
+1D41A;1D41A;1D41A;0061;0061; # (𝐚; 𝐚; 𝐚; a; a; ) MATHEMATICAL BOLD SMALL A
+1D41B;1D41B;1D41B;0062;0062; # (𝐛; 𝐛; 𝐛; b; b; ) MATHEMATICAL BOLD SMALL B
+1D41C;1D41C;1D41C;0063;0063; # (𝐜; 𝐜; 𝐜; c; c; ) MATHEMATICAL BOLD SMALL C
+1D41D;1D41D;1D41D;0064;0064; # (𝐝; 𝐝; 𝐝; d; d; ) MATHEMATICAL BOLD SMALL D
+1D41E;1D41E;1D41E;0065;0065; # (𝐞; 𝐞; 𝐞; e; e; ) MATHEMATICAL BOLD SMALL E
+1D41F;1D41F;1D41F;0066;0066; # (𝐟; 𝐟; 𝐟; f; f; ) MATHEMATICAL BOLD SMALL F
+1D420;1D420;1D420;0067;0067; # (𝐠; 𝐠; 𝐠; g; g; ) MATHEMATICAL BOLD SMALL G
+1D421;1D421;1D421;0068;0068; # (𝐡; 𝐡; 𝐡; h; h; ) MATHEMATICAL BOLD SMALL H
+1D422;1D422;1D422;0069;0069; # (𝐢; 𝐢; 𝐢; i; i; ) MATHEMATICAL BOLD SMALL I
+1D423;1D423;1D423;006A;006A; # (𝐣; 𝐣; 𝐣; j; j; ) MATHEMATICAL BOLD SMALL J
+1D424;1D424;1D424;006B;006B; # (𝐤; 𝐤; 𝐤; k; k; ) MATHEMATICAL BOLD SMALL K
+1D425;1D425;1D425;006C;006C; # (𝐥; 𝐥; 𝐥; l; l; ) MATHEMATICAL BOLD SMALL L
+1D426;1D426;1D426;006D;006D; # (𝐦; 𝐦; 𝐦; m; m; ) MATHEMATICAL BOLD SMALL M
+1D427;1D427;1D427;006E;006E; # (𝐧; 𝐧; 𝐧; n; n; ) MATHEMATICAL BOLD SMALL N
+1D428;1D428;1D428;006F;006F; # (𝐨; 𝐨; 𝐨; o; o; ) MATHEMATICAL BOLD SMALL O
+1D429;1D429;1D429;0070;0070; # (𝐩; 𝐩; 𝐩; p; p; ) MATHEMATICAL BOLD SMALL P
+1D42A;1D42A;1D42A;0071;0071; # (𝐪; 𝐪; 𝐪; q; q; ) MATHEMATICAL BOLD SMALL Q
+1D42B;1D42B;1D42B;0072;0072; # (𝐫; 𝐫; 𝐫; r; r; ) MATHEMATICAL BOLD SMALL R
+1D42C;1D42C;1D42C;0073;0073; # (𝐬; 𝐬; 𝐬; s; s; ) MATHEMATICAL BOLD SMALL S
+1D42D;1D42D;1D42D;0074;0074; # (𝐭; 𝐭; 𝐭; t; t; ) MATHEMATICAL BOLD SMALL T
+1D42E;1D42E;1D42E;0075;0075; # (𝐮; 𝐮; 𝐮; u; u; ) MATHEMATICAL BOLD SMALL U
+1D42F;1D42F;1D42F;0076;0076; # (𝐯; 𝐯; 𝐯; v; v; ) MATHEMATICAL BOLD SMALL V
+1D430;1D430;1D430;0077;0077; # (𝐰; 𝐰; 𝐰; w; w; ) MATHEMATICAL BOLD SMALL W
+1D431;1D431;1D431;0078;0078; # (𝐱; 𝐱; 𝐱; x; x; ) MATHEMATICAL BOLD SMALL X
+1D432;1D432;1D432;0079;0079; # (𝐲; 𝐲; 𝐲; y; y; ) MATHEMATICAL BOLD SMALL Y
+1D433;1D433;1D433;007A;007A; # (𝐳; 𝐳; 𝐳; z; z; ) MATHEMATICAL BOLD SMALL Z
+1D434;1D434;1D434;0041;0041; # (𝐴; 𝐴; 𝐴; A; A; ) MATHEMATICAL ITALIC CAPITAL A
+1D435;1D435;1D435;0042;0042; # (𝐵; 𝐵; 𝐵; B; B; ) MATHEMATICAL ITALIC CAPITAL B
+1D436;1D436;1D436;0043;0043; # (𝐶; 𝐶; 𝐶; C; C; ) MATHEMATICAL ITALIC CAPITAL C
+1D437;1D437;1D437;0044;0044; # (𝐷; 𝐷; 𝐷; D; D; ) MATHEMATICAL ITALIC CAPITAL D
+1D438;1D438;1D438;0045;0045; # (𝐸; 𝐸; 𝐸; E; E; ) MATHEMATICAL ITALIC CAPITAL E
+1D439;1D439;1D439;0046;0046; # (𝐹; 𝐹; 𝐹; F; F; ) MATHEMATICAL ITALIC CAPITAL F
+1D43A;1D43A;1D43A;0047;0047; # (𝐺; 𝐺; 𝐺; G; G; ) MATHEMATICAL ITALIC CAPITAL G
+1D43B;1D43B;1D43B;0048;0048; # (𝐻; 𝐻; 𝐻; H; H; ) MATHEMATICAL ITALIC CAPITAL H
+1D43C;1D43C;1D43C;0049;0049; # (𝐼; 𝐼; 𝐼; I; I; ) MATHEMATICAL ITALIC CAPITAL I
+1D43D;1D43D;1D43D;004A;004A; # (𝐽; 𝐽; 𝐽; J; J; ) MATHEMATICAL ITALIC CAPITAL J
+1D43E;1D43E;1D43E;004B;004B; # (𝐾; 𝐾; 𝐾; K; K; ) MATHEMATICAL ITALIC CAPITAL K
+1D43F;1D43F;1D43F;004C;004C; # (𝐿; 𝐿; 𝐿; L; L; ) MATHEMATICAL ITALIC CAPITAL L
+1D440;1D440;1D440;004D;004D; # (𝑀; 𝑀; 𝑀; M; M; ) MATHEMATICAL ITALIC CAPITAL M
+1D441;1D441;1D441;004E;004E; # (𝑁; 𝑁; 𝑁; N; N; ) MATHEMATICAL ITALIC CAPITAL N
+1D442;1D442;1D442;004F;004F; # (𝑂; 𝑂; 𝑂; O; O; ) MATHEMATICAL ITALIC CAPITAL O
+1D443;1D443;1D443;0050;0050; # (𝑃; 𝑃; 𝑃; P; P; ) MATHEMATICAL ITALIC CAPITAL P
+1D444;1D444;1D444;0051;0051; # (𝑄; 𝑄; 𝑄; Q; Q; ) MATHEMATICAL ITALIC CAPITAL Q
+1D445;1D445;1D445;0052;0052; # (𝑅; 𝑅; 𝑅; R; R; ) MATHEMATICAL ITALIC CAPITAL R
+1D446;1D446;1D446;0053;0053; # (𝑆; 𝑆; 𝑆; S; S; ) MATHEMATICAL ITALIC CAPITAL S
+1D447;1D447;1D447;0054;0054; # (𝑇; 𝑇; 𝑇; T; T; ) MATHEMATICAL ITALIC CAPITAL T
+1D448;1D448;1D448;0055;0055; # (𝑈; 𝑈; 𝑈; U; U; ) MATHEMATICAL ITALIC CAPITAL U
+1D449;1D449;1D449;0056;0056; # (𝑉; 𝑉; 𝑉; V; V; ) MATHEMATICAL ITALIC CAPITAL V
+1D44A;1D44A;1D44A;0057;0057; # (𝑊; 𝑊; 𝑊; W; W; ) MATHEMATICAL ITALIC CAPITAL W
+1D44B;1D44B;1D44B;0058;0058; # (𝑋; 𝑋; 𝑋; X; X; ) MATHEMATICAL ITALIC CAPITAL X
+1D44C;1D44C;1D44C;0059;0059; # (𝑌; 𝑌; 𝑌; Y; Y; ) MATHEMATICAL ITALIC CAPITAL Y
+1D44D;1D44D;1D44D;005A;005A; # (𝑍; 𝑍; 𝑍; Z; Z; ) MATHEMATICAL ITALIC CAPITAL Z
+1D44E;1D44E;1D44E;0061;0061; # (𝑎; 𝑎; 𝑎; a; a; ) MATHEMATICAL ITALIC SMALL A
+1D44F;1D44F;1D44F;0062;0062; # (𝑏; 𝑏; 𝑏; b; b; ) MATHEMATICAL ITALIC SMALL B
+1D450;1D450;1D450;0063;0063; # (𝑐; 𝑐; 𝑐; c; c; ) MATHEMATICAL ITALIC SMALL C
+1D451;1D451;1D451;0064;0064; # (𝑑; 𝑑; 𝑑; d; d; ) MATHEMATICAL ITALIC SMALL D
+1D452;1D452;1D452;0065;0065; # (𝑒; 𝑒; 𝑒; e; e; ) MATHEMATICAL ITALIC SMALL E
+1D453;1D453;1D453;0066;0066; # (𝑓; 𝑓; 𝑓; f; f; ) MATHEMATICAL ITALIC SMALL F
+1D454;1D454;1D454;0067;0067; # (𝑔; 𝑔; 𝑔; g; g; ) MATHEMATICAL ITALIC SMALL G
+1D456;1D456;1D456;0069;0069; # (𝑖; 𝑖; 𝑖; i; i; ) MATHEMATICAL ITALIC SMALL I
+1D457;1D457;1D457;006A;006A; # (𝑗; 𝑗; 𝑗; j; j; ) MATHEMATICAL ITALIC SMALL J
+1D458;1D458;1D458;006B;006B; # (𝑘; 𝑘; 𝑘; k; k; ) MATHEMATICAL ITALIC SMALL K
+1D459;1D459;1D459;006C;006C; # (𝑙; 𝑙; 𝑙; l; l; ) MATHEMATICAL ITALIC SMALL L
+1D45A;1D45A;1D45A;006D;006D; # (𝑚; 𝑚; 𝑚; m; m; ) MATHEMATICAL ITALIC SMALL M
+1D45B;1D45B;1D45B;006E;006E; # (𝑛; 𝑛; 𝑛; n; n; ) MATHEMATICAL ITALIC SMALL N
+1D45C;1D45C;1D45C;006F;006F; # (𝑜; 𝑜; 𝑜; o; o; ) MATHEMATICAL ITALIC SMALL O
+1D45D;1D45D;1D45D;0070;0070; # (𝑝; 𝑝; 𝑝; p; p; ) MATHEMATICAL ITALIC SMALL P
+1D45E;1D45E;1D45E;0071;0071; # (𝑞; 𝑞; 𝑞; q; q; ) MATHEMATICAL ITALIC SMALL Q
+1D45F;1D45F;1D45F;0072;0072; # (𝑟; 𝑟; 𝑟; r; r; ) MATHEMATICAL ITALIC SMALL R
+1D460;1D460;1D460;0073;0073; # (𝑠; 𝑠; 𝑠; s; s; ) MATHEMATICAL ITALIC SMALL S
+1D461;1D461;1D461;0074;0074; # (𝑡; 𝑡; 𝑡; t; t; ) MATHEMATICAL ITALIC SMALL T
+1D462;1D462;1D462;0075;0075; # (𝑢; 𝑢; 𝑢; u; u; ) MATHEMATICAL ITALIC SMALL U
+1D463;1D463;1D463;0076;0076; # (𝑣; 𝑣; 𝑣; v; v; ) MATHEMATICAL ITALIC SMALL V
+1D464;1D464;1D464;0077;0077; # (𝑤; 𝑤; 𝑤; w; w; ) MATHEMATICAL ITALIC SMALL W
+1D465;1D465;1D465;0078;0078; # (𝑥; 𝑥; 𝑥; x; x; ) MATHEMATICAL ITALIC SMALL X
+1D466;1D466;1D466;0079;0079; # (𝑦; 𝑦; 𝑦; y; y; ) MATHEMATICAL ITALIC SMALL Y
+1D467;1D467;1D467;007A;007A; # (𝑧; 𝑧; 𝑧; z; z; ) MATHEMATICAL ITALIC SMALL Z
+1D468;1D468;1D468;0041;0041; # (𝑨; 𝑨; 𝑨; A; A; ) MATHEMATICAL BOLD ITALIC CAPITAL A
+1D469;1D469;1D469;0042;0042; # (𝑩; 𝑩; 𝑩; B; B; ) MATHEMATICAL BOLD ITALIC CAPITAL B
+1D46A;1D46A;1D46A;0043;0043; # (𝑪; 𝑪; 𝑪; C; C; ) MATHEMATICAL BOLD ITALIC CAPITAL C
+1D46B;1D46B;1D46B;0044;0044; # (𝑫; 𝑫; 𝑫; D; D; ) MATHEMATICAL BOLD ITALIC CAPITAL D
+1D46C;1D46C;1D46C;0045;0045; # (𝑬; 𝑬; 𝑬; E; E; ) MATHEMATICAL BOLD ITALIC CAPITAL E
+1D46D;1D46D;1D46D;0046;0046; # (𝑭; 𝑭; 𝑭; F; F; ) MATHEMATICAL BOLD ITALIC CAPITAL F
+1D46E;1D46E;1D46E;0047;0047; # (𝑮; 𝑮; 𝑮; G; G; ) MATHEMATICAL BOLD ITALIC CAPITAL G
+1D46F;1D46F;1D46F;0048;0048; # (𝑯; 𝑯; 𝑯; H; H; ) MATHEMATICAL BOLD ITALIC CAPITAL H
+1D470;1D470;1D470;0049;0049; # (𝑰; 𝑰; 𝑰; I; I; ) MATHEMATICAL BOLD ITALIC CAPITAL I
+1D471;1D471;1D471;004A;004A; # (𝑱; 𝑱; 𝑱; J; J; ) MATHEMATICAL BOLD ITALIC CAPITAL J
+1D472;1D472;1D472;004B;004B; # (𝑲; 𝑲; 𝑲; K; K; ) MATHEMATICAL BOLD ITALIC CAPITAL K
+1D473;1D473;1D473;004C;004C; # (𝑳; 𝑳; 𝑳; L; L; ) MATHEMATICAL BOLD ITALIC CAPITAL L
+1D474;1D474;1D474;004D;004D; # (𝑴; 𝑴; 𝑴; M; M; ) MATHEMATICAL BOLD ITALIC CAPITAL M
+1D475;1D475;1D475;004E;004E; # (𝑵; 𝑵; 𝑵; N; N; ) MATHEMATICAL BOLD ITALIC CAPITAL N
+1D476;1D476;1D476;004F;004F; # (𝑶; 𝑶; 𝑶; O; O; ) MATHEMATICAL BOLD ITALIC CAPITAL O
+1D477;1D477;1D477;0050;0050; # (𝑷; 𝑷; 𝑷; P; P; ) MATHEMATICAL BOLD ITALIC CAPITAL P
+1D478;1D478;1D478;0051;0051; # (𝑸; 𝑸; 𝑸; Q; Q; ) MATHEMATICAL BOLD ITALIC CAPITAL Q
+1D479;1D479;1D479;0052;0052; # (𝑹; 𝑹; 𝑹; R; R; ) MATHEMATICAL BOLD ITALIC CAPITAL R
+1D47A;1D47A;1D47A;0053;0053; # (𝑺; 𝑺; 𝑺; S; S; ) MATHEMATICAL BOLD ITALIC CAPITAL S
+1D47B;1D47B;1D47B;0054;0054; # (𝑻; 𝑻; 𝑻; T; T; ) MATHEMATICAL BOLD ITALIC CAPITAL T
+1D47C;1D47C;1D47C;0055;0055; # (𝑼; 𝑼; 𝑼; U; U; ) MATHEMATICAL BOLD ITALIC CAPITAL U
+1D47D;1D47D;1D47D;0056;0056; # (𝑽; 𝑽; 𝑽; V; V; ) MATHEMATICAL BOLD ITALIC CAPITAL V
+1D47E;1D47E;1D47E;0057;0057; # (𝑾; 𝑾; 𝑾; W; W; ) MATHEMATICAL BOLD ITALIC CAPITAL W
+1D47F;1D47F;1D47F;0058;0058; # (𝑿; 𝑿; 𝑿; X; X; ) MATHEMATICAL BOLD ITALIC CAPITAL X
+1D480;1D480;1D480;0059;0059; # (𝒀; 𝒀; 𝒀; Y; Y; ) MATHEMATICAL BOLD ITALIC CAPITAL Y
+1D481;1D481;1D481;005A;005A; # (𝒁; 𝒁; 𝒁; Z; Z; ) MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D482;1D482;1D482;0061;0061; # (𝒂; 𝒂; 𝒂; a; a; ) MATHEMATICAL BOLD ITALIC SMALL A
+1D483;1D483;1D483;0062;0062; # (𝒃; 𝒃; 𝒃; b; b; ) MATHEMATICAL BOLD ITALIC SMALL B
+1D484;1D484;1D484;0063;0063; # (𝒄; 𝒄; 𝒄; c; c; ) MATHEMATICAL BOLD ITALIC SMALL C
+1D485;1D485;1D485;0064;0064; # (𝒅; 𝒅; 𝒅; d; d; ) MATHEMATICAL BOLD ITALIC SMALL D
+1D486;1D486;1D486;0065;0065; # (𝒆; 𝒆; 𝒆; e; e; ) MATHEMATICAL BOLD ITALIC SMALL E
+1D487;1D487;1D487;0066;0066; # (𝒇; 𝒇; 𝒇; f; f; ) MATHEMATICAL BOLD ITALIC SMALL F
+1D488;1D488;1D488;0067;0067; # (𝒈; 𝒈; 𝒈; g; g; ) MATHEMATICAL BOLD ITALIC SMALL G
+1D489;1D489;1D489;0068;0068; # (𝒉; 𝒉; 𝒉; h; h; ) MATHEMATICAL BOLD ITALIC SMALL H
+1D48A;1D48A;1D48A;0069;0069; # (𝒊; 𝒊; 𝒊; i; i; ) MATHEMATICAL BOLD ITALIC SMALL I
+1D48B;1D48B;1D48B;006A;006A; # (𝒋; 𝒋; 𝒋; j; j; ) MATHEMATICAL BOLD ITALIC SMALL J
+1D48C;1D48C;1D48C;006B;006B; # (𝒌; 𝒌; 𝒌; k; k; ) MATHEMATICAL BOLD ITALIC SMALL K
+1D48D;1D48D;1D48D;006C;006C; # (𝒍; 𝒍; 𝒍; l; l; ) MATHEMATICAL BOLD ITALIC SMALL L
+1D48E;1D48E;1D48E;006D;006D; # (𝒎; 𝒎; 𝒎; m; m; ) MATHEMATICAL BOLD ITALIC SMALL M
+1D48F;1D48F;1D48F;006E;006E; # (𝒏; 𝒏; 𝒏; n; n; ) MATHEMATICAL BOLD ITALIC SMALL N
+1D490;1D490;1D490;006F;006F; # (𝒐; 𝒐; 𝒐; o; o; ) MATHEMATICAL BOLD ITALIC SMALL O
+1D491;1D491;1D491;0070;0070; # (𝒑; 𝒑; 𝒑; p; p; ) MATHEMATICAL BOLD ITALIC SMALL P
+1D492;1D492;1D492;0071;0071; # (𝒒; 𝒒; 𝒒; q; q; ) MATHEMATICAL BOLD ITALIC SMALL Q
+1D493;1D493;1D493;0072;0072; # (𝒓; 𝒓; 𝒓; r; r; ) MATHEMATICAL BOLD ITALIC SMALL R
+1D494;1D494;1D494;0073;0073; # (𝒔; 𝒔; 𝒔; s; s; ) MATHEMATICAL BOLD ITALIC SMALL S
+1D495;1D495;1D495;0074;0074; # (𝒕; 𝒕; 𝒕; t; t; ) MATHEMATICAL BOLD ITALIC SMALL T
+1D496;1D496;1D496;0075;0075; # (𝒖; 𝒖; 𝒖; u; u; ) MATHEMATICAL BOLD ITALIC SMALL U
+1D497;1D497;1D497;0076;0076; # (𝒗; 𝒗; 𝒗; v; v; ) MATHEMATICAL BOLD ITALIC SMALL V
+1D498;1D498;1D498;0077;0077; # (𝒘; 𝒘; 𝒘; w; w; ) MATHEMATICAL BOLD ITALIC SMALL W
+1D499;1D499;1D499;0078;0078; # (𝒙; 𝒙; 𝒙; x; x; ) MATHEMATICAL BOLD ITALIC SMALL X
+1D49A;1D49A;1D49A;0079;0079; # (𝒚; 𝒚; 𝒚; y; y; ) MATHEMATICAL BOLD ITALIC SMALL Y
+1D49B;1D49B;1D49B;007A;007A; # (𝒛; 𝒛; 𝒛; z; z; ) MATHEMATICAL BOLD ITALIC SMALL Z
+1D49C;1D49C;1D49C;0041;0041; # (𝒜; 𝒜; 𝒜; A; A; ) MATHEMATICAL SCRIPT CAPITAL A
+1D49E;1D49E;1D49E;0043;0043; # (𝒞; 𝒞; 𝒞; C; C; ) MATHEMATICAL SCRIPT CAPITAL C
+1D49F;1D49F;1D49F;0044;0044; # (𝒟; 𝒟; 𝒟; D; D; ) MATHEMATICAL SCRIPT CAPITAL D
+1D4A2;1D4A2;1D4A2;0047;0047; # (𝒢; 𝒢; 𝒢; G; G; ) MATHEMATICAL SCRIPT CAPITAL G
+1D4A5;1D4A5;1D4A5;004A;004A; # (𝒥; 𝒥; 𝒥; J; J; ) MATHEMATICAL SCRIPT CAPITAL J
+1D4A6;1D4A6;1D4A6;004B;004B; # (𝒦; 𝒦; 𝒦; K; K; ) MATHEMATICAL SCRIPT CAPITAL K
+1D4A9;1D4A9;1D4A9;004E;004E; # (𝒩; 𝒩; 𝒩; N; N; ) MATHEMATICAL SCRIPT CAPITAL N
+1D4AA;1D4AA;1D4AA;004F;004F; # (𝒪; 𝒪; 𝒪; O; O; ) MATHEMATICAL SCRIPT CAPITAL O
+1D4AB;1D4AB;1D4AB;0050;0050; # (𝒫; 𝒫; 𝒫; P; P; ) MATHEMATICAL SCRIPT CAPITAL P
+1D4AC;1D4AC;1D4AC;0051;0051; # (𝒬; 𝒬; 𝒬; Q; Q; ) MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE;1D4AE;1D4AE;0053;0053; # (𝒮; 𝒮; 𝒮; S; S; ) MATHEMATICAL SCRIPT CAPITAL S
+1D4AF;1D4AF;1D4AF;0054;0054; # (𝒯; 𝒯; 𝒯; T; T; ) MATHEMATICAL SCRIPT CAPITAL T
+1D4B0;1D4B0;1D4B0;0055;0055; # (𝒰; 𝒰; 𝒰; U; U; ) MATHEMATICAL SCRIPT CAPITAL U
+1D4B1;1D4B1;1D4B1;0056;0056; # (𝒱; 𝒱; 𝒱; V; V; ) MATHEMATICAL SCRIPT CAPITAL V
+1D4B2;1D4B2;1D4B2;0057;0057; # (𝒲; 𝒲; 𝒲; W; W; ) MATHEMATICAL SCRIPT CAPITAL W
+1D4B3;1D4B3;1D4B3;0058;0058; # (𝒳; 𝒳; 𝒳; X; X; ) MATHEMATICAL SCRIPT CAPITAL X
+1D4B4;1D4B4;1D4B4;0059;0059; # (𝒴; 𝒴; 𝒴; Y; Y; ) MATHEMATICAL SCRIPT CAPITAL Y
+1D4B5;1D4B5;1D4B5;005A;005A; # (𝒵; 𝒵; 𝒵; Z; Z; ) MATHEMATICAL SCRIPT CAPITAL Z
+1D4B6;1D4B6;1D4B6;0061;0061; # (𝒶; 𝒶; 𝒶; a; a; ) MATHEMATICAL SCRIPT SMALL A
+1D4B7;1D4B7;1D4B7;0062;0062; # (𝒷; 𝒷; 𝒷; b; b; ) MATHEMATICAL SCRIPT SMALL B
+1D4B8;1D4B8;1D4B8;0063;0063; # (𝒸; 𝒸; 𝒸; c; c; ) MATHEMATICAL SCRIPT SMALL C
+1D4B9;1D4B9;1D4B9;0064;0064; # (𝒹; 𝒹; 𝒹; d; d; ) MATHEMATICAL SCRIPT SMALL D
+1D4BB;1D4BB;1D4BB;0066;0066; # (𝒻; 𝒻; 𝒻; f; f; ) MATHEMATICAL SCRIPT SMALL F
+1D4BD;1D4BD;1D4BD;0068;0068; # (𝒽; 𝒽; 𝒽; h; h; ) MATHEMATICAL SCRIPT SMALL H
+1D4BE;1D4BE;1D4BE;0069;0069; # (𝒾; 𝒾; 𝒾; i; i; ) MATHEMATICAL SCRIPT SMALL I
+1D4BF;1D4BF;1D4BF;006A;006A; # (𝒿; 𝒿; 𝒿; j; j; ) MATHEMATICAL SCRIPT SMALL J
+1D4C0;1D4C0;1D4C0;006B;006B; # (𝓀; 𝓀; 𝓀; k; k; ) MATHEMATICAL SCRIPT SMALL K
+1D4C1;1D4C1;1D4C1;006C;006C; # (𝓁; 𝓁; 𝓁; l; l; ) MATHEMATICAL SCRIPT SMALL L
+1D4C2;1D4C2;1D4C2;006D;006D; # (𝓂; 𝓂; 𝓂; m; m; ) MATHEMATICAL SCRIPT SMALL M
+1D4C3;1D4C3;1D4C3;006E;006E; # (𝓃; 𝓃; 𝓃; n; n; ) MATHEMATICAL SCRIPT SMALL N
+1D4C5;1D4C5;1D4C5;0070;0070; # (𝓅; 𝓅; 𝓅; p; p; ) MATHEMATICAL SCRIPT SMALL P
+1D4C6;1D4C6;1D4C6;0071;0071; # (𝓆; 𝓆; 𝓆; q; q; ) MATHEMATICAL SCRIPT SMALL Q
+1D4C7;1D4C7;1D4C7;0072;0072; # (𝓇; 𝓇; 𝓇; r; r; ) MATHEMATICAL SCRIPT SMALL R
+1D4C8;1D4C8;1D4C8;0073;0073; # (𝓈; 𝓈; 𝓈; s; s; ) MATHEMATICAL SCRIPT SMALL S
+1D4C9;1D4C9;1D4C9;0074;0074; # (𝓉; 𝓉; 𝓉; t; t; ) MATHEMATICAL SCRIPT SMALL T
+1D4CA;1D4CA;1D4CA;0075;0075; # (𝓊; 𝓊; 𝓊; u; u; ) MATHEMATICAL SCRIPT SMALL U
+1D4CB;1D4CB;1D4CB;0076;0076; # (𝓋; 𝓋; 𝓋; v; v; ) MATHEMATICAL SCRIPT SMALL V
+1D4CC;1D4CC;1D4CC;0077;0077; # (𝓌; 𝓌; 𝓌; w; w; ) MATHEMATICAL SCRIPT SMALL W
+1D4CD;1D4CD;1D4CD;0078;0078; # (𝓍; 𝓍; 𝓍; x; x; ) MATHEMATICAL SCRIPT SMALL X
+1D4CE;1D4CE;1D4CE;0079;0079; # (𝓎; 𝓎; 𝓎; y; y; ) MATHEMATICAL SCRIPT SMALL Y
+1D4CF;1D4CF;1D4CF;007A;007A; # (𝓏; 𝓏; 𝓏; z; z; ) MATHEMATICAL SCRIPT SMALL Z
+1D4D0;1D4D0;1D4D0;0041;0041; # (𝓐; 𝓐; 𝓐; A; A; ) MATHEMATICAL BOLD SCRIPT CAPITAL A
+1D4D1;1D4D1;1D4D1;0042;0042; # (𝓑; 𝓑; 𝓑; B; B; ) MATHEMATICAL BOLD SCRIPT CAPITAL B
+1D4D2;1D4D2;1D4D2;0043;0043; # (𝓒; 𝓒; 𝓒; C; C; ) MATHEMATICAL BOLD SCRIPT CAPITAL C
+1D4D3;1D4D3;1D4D3;0044;0044; # (𝓓; 𝓓; 𝓓; D; D; ) MATHEMATICAL BOLD SCRIPT CAPITAL D
+1D4D4;1D4D4;1D4D4;0045;0045; # (𝓔; 𝓔; 𝓔; E; E; ) MATHEMATICAL BOLD SCRIPT CAPITAL E
+1D4D5;1D4D5;1D4D5;0046;0046; # (𝓕; 𝓕; 𝓕; F; F; ) MATHEMATICAL BOLD SCRIPT CAPITAL F
+1D4D6;1D4D6;1D4D6;0047;0047; # (𝓖; 𝓖; 𝓖; G; G; ) MATHEMATICAL BOLD SCRIPT CAPITAL G
+1D4D7;1D4D7;1D4D7;0048;0048; # (𝓗; 𝓗; 𝓗; H; H; ) MATHEMATICAL BOLD SCRIPT CAPITAL H
+1D4D8;1D4D8;1D4D8;0049;0049; # (𝓘; 𝓘; 𝓘; I; I; ) MATHEMATICAL BOLD SCRIPT CAPITAL I
+1D4D9;1D4D9;1D4D9;004A;004A; # (𝓙; 𝓙; 𝓙; J; J; ) MATHEMATICAL BOLD SCRIPT CAPITAL J
+1D4DA;1D4DA;1D4DA;004B;004B; # (𝓚; 𝓚; 𝓚; K; K; ) MATHEMATICAL BOLD SCRIPT CAPITAL K
+1D4DB;1D4DB;1D4DB;004C;004C; # (𝓛; 𝓛; 𝓛; L; L; ) MATHEMATICAL BOLD SCRIPT CAPITAL L
+1D4DC;1D4DC;1D4DC;004D;004D; # (𝓜; 𝓜; 𝓜; M; M; ) MATHEMATICAL BOLD SCRIPT CAPITAL M
+1D4DD;1D4DD;1D4DD;004E;004E; # (𝓝; 𝓝; 𝓝; N; N; ) MATHEMATICAL BOLD SCRIPT CAPITAL N
+1D4DE;1D4DE;1D4DE;004F;004F; # (𝓞; 𝓞; 𝓞; O; O; ) MATHEMATICAL BOLD SCRIPT CAPITAL O
+1D4DF;1D4DF;1D4DF;0050;0050; # (𝓟; 𝓟; 𝓟; P; P; ) MATHEMATICAL BOLD SCRIPT CAPITAL P
+1D4E0;1D4E0;1D4E0;0051;0051; # (𝓠; 𝓠; 𝓠; Q; Q; ) MATHEMATICAL BOLD SCRIPT CAPITAL Q
+1D4E1;1D4E1;1D4E1;0052;0052; # (𝓡; 𝓡; 𝓡; R; R; ) MATHEMATICAL BOLD SCRIPT CAPITAL R
+1D4E2;1D4E2;1D4E2;0053;0053; # (𝓢; 𝓢; 𝓢; S; S; ) MATHEMATICAL BOLD SCRIPT CAPITAL S
+1D4E3;1D4E3;1D4E3;0054;0054; # (𝓣; 𝓣; 𝓣; T; T; ) MATHEMATICAL BOLD SCRIPT CAPITAL T
+1D4E4;1D4E4;1D4E4;0055;0055; # (𝓤; 𝓤; 𝓤; U; U; ) MATHEMATICAL BOLD SCRIPT CAPITAL U
+1D4E5;1D4E5;1D4E5;0056;0056; # (𝓥; 𝓥; 𝓥; V; V; ) MATHEMATICAL BOLD SCRIPT CAPITAL V
+1D4E6;1D4E6;1D4E6;0057;0057; # (𝓦; 𝓦; 𝓦; W; W; ) MATHEMATICAL BOLD SCRIPT CAPITAL W
+1D4E7;1D4E7;1D4E7;0058;0058; # (𝓧; 𝓧; 𝓧; X; X; ) MATHEMATICAL BOLD SCRIPT CAPITAL X
+1D4E8;1D4E8;1D4E8;0059;0059; # (𝓨; 𝓨; 𝓨; Y; Y; ) MATHEMATICAL BOLD SCRIPT CAPITAL Y
+1D4E9;1D4E9;1D4E9;005A;005A; # (𝓩; 𝓩; 𝓩; Z; Z; ) MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D4EA;1D4EA;1D4EA;0061;0061; # (𝓪; 𝓪; 𝓪; a; a; ) MATHEMATICAL BOLD SCRIPT SMALL A
+1D4EB;1D4EB;1D4EB;0062;0062; # (𝓫; 𝓫; 𝓫; b; b; ) MATHEMATICAL BOLD SCRIPT SMALL B
+1D4EC;1D4EC;1D4EC;0063;0063; # (𝓬; 𝓬; 𝓬; c; c; ) MATHEMATICAL BOLD SCRIPT SMALL C
+1D4ED;1D4ED;1D4ED;0064;0064; # (𝓭; 𝓭; 𝓭; d; d; ) MATHEMATICAL BOLD SCRIPT SMALL D
+1D4EE;1D4EE;1D4EE;0065;0065; # (𝓮; 𝓮; 𝓮; e; e; ) MATHEMATICAL BOLD SCRIPT SMALL E
+1D4EF;1D4EF;1D4EF;0066;0066; # (𝓯; 𝓯; 𝓯; f; f; ) MATHEMATICAL BOLD SCRIPT SMALL F
+1D4F0;1D4F0;1D4F0;0067;0067; # (𝓰; 𝓰; 𝓰; g; g; ) MATHEMATICAL BOLD SCRIPT SMALL G
+1D4F1;1D4F1;1D4F1;0068;0068; # (𝓱; 𝓱; 𝓱; h; h; ) MATHEMATICAL BOLD SCRIPT SMALL H
+1D4F2;1D4F2;1D4F2;0069;0069; # (𝓲; 𝓲; 𝓲; i; i; ) MATHEMATICAL BOLD SCRIPT SMALL I
+1D4F3;1D4F3;1D4F3;006A;006A; # (𝓳; 𝓳; 𝓳; j; j; ) MATHEMATICAL BOLD SCRIPT SMALL J
+1D4F4;1D4F4;1D4F4;006B;006B; # (𝓴; 𝓴; 𝓴; k; k; ) MATHEMATICAL BOLD SCRIPT SMALL K
+1D4F5;1D4F5;1D4F5;006C;006C; # (𝓵; 𝓵; 𝓵; l; l; ) MATHEMATICAL BOLD SCRIPT SMALL L
+1D4F6;1D4F6;1D4F6;006D;006D; # (𝓶; 𝓶; 𝓶; m; m; ) MATHEMATICAL BOLD SCRIPT SMALL M
+1D4F7;1D4F7;1D4F7;006E;006E; # (𝓷; 𝓷; 𝓷; n; n; ) MATHEMATICAL BOLD SCRIPT SMALL N
+1D4F8;1D4F8;1D4F8;006F;006F; # (𝓸; 𝓸; 𝓸; o; o; ) MATHEMATICAL BOLD SCRIPT SMALL O
+1D4F9;1D4F9;1D4F9;0070;0070; # (𝓹; 𝓹; 𝓹; p; p; ) MATHEMATICAL BOLD SCRIPT SMALL P
+1D4FA;1D4FA;1D4FA;0071;0071; # (𝓺; 𝓺; 𝓺; q; q; ) MATHEMATICAL BOLD SCRIPT SMALL Q
+1D4FB;1D4FB;1D4FB;0072;0072; # (𝓻; 𝓻; 𝓻; r; r; ) MATHEMATICAL BOLD SCRIPT SMALL R
+1D4FC;1D4FC;1D4FC;0073;0073; # (𝓼; 𝓼; 𝓼; s; s; ) MATHEMATICAL BOLD SCRIPT SMALL S
+1D4FD;1D4FD;1D4FD;0074;0074; # (𝓽; 𝓽; 𝓽; t; t; ) MATHEMATICAL BOLD SCRIPT SMALL T
+1D4FE;1D4FE;1D4FE;0075;0075; # (𝓾; 𝓾; 𝓾; u; u; ) MATHEMATICAL BOLD SCRIPT SMALL U
+1D4FF;1D4FF;1D4FF;0076;0076; # (𝓿; 𝓿; 𝓿; v; v; ) MATHEMATICAL BOLD SCRIPT SMALL V
+1D500;1D500;1D500;0077;0077; # (𝔀; 𝔀; 𝔀; w; w; ) MATHEMATICAL BOLD SCRIPT SMALL W
+1D501;1D501;1D501;0078;0078; # (𝔁; 𝔁; 𝔁; x; x; ) MATHEMATICAL BOLD SCRIPT SMALL X
+1D502;1D502;1D502;0079;0079; # (𝔂; 𝔂; 𝔂; y; y; ) MATHEMATICAL BOLD SCRIPT SMALL Y
+1D503;1D503;1D503;007A;007A; # (𝔃; 𝔃; 𝔃; z; z; ) MATHEMATICAL BOLD SCRIPT SMALL Z
+1D504;1D504;1D504;0041;0041; # (𝔄; 𝔄; 𝔄; A; A; ) MATHEMATICAL FRAKTUR CAPITAL A
+1D505;1D505;1D505;0042;0042; # (𝔅; 𝔅; 𝔅; B; B; ) MATHEMATICAL FRAKTUR CAPITAL B
+1D507;1D507;1D507;0044;0044; # (𝔇; 𝔇; 𝔇; D; D; ) MATHEMATICAL FRAKTUR CAPITAL D
+1D508;1D508;1D508;0045;0045; # (𝔈; 𝔈; 𝔈; E; E; ) MATHEMATICAL FRAKTUR CAPITAL E
+1D509;1D509;1D509;0046;0046; # (𝔉; 𝔉; 𝔉; F; F; ) MATHEMATICAL FRAKTUR CAPITAL F
+1D50A;1D50A;1D50A;0047;0047; # (𝔊; 𝔊; 𝔊; G; G; ) MATHEMATICAL FRAKTUR CAPITAL G
+1D50D;1D50D;1D50D;004A;004A; # (𝔍; 𝔍; 𝔍; J; J; ) MATHEMATICAL FRAKTUR CAPITAL J
+1D50E;1D50E;1D50E;004B;004B; # (𝔎; 𝔎; 𝔎; K; K; ) MATHEMATICAL FRAKTUR CAPITAL K
+1D50F;1D50F;1D50F;004C;004C; # (𝔏; 𝔏; 𝔏; L; L; ) MATHEMATICAL FRAKTUR CAPITAL L
+1D510;1D510;1D510;004D;004D; # (𝔐; 𝔐; 𝔐; M; M; ) MATHEMATICAL FRAKTUR CAPITAL M
+1D511;1D511;1D511;004E;004E; # (𝔑; 𝔑; 𝔑; N; N; ) MATHEMATICAL FRAKTUR CAPITAL N
+1D512;1D512;1D512;004F;004F; # (𝔒; 𝔒; 𝔒; O; O; ) MATHEMATICAL FRAKTUR CAPITAL O
+1D513;1D513;1D513;0050;0050; # (𝔓; 𝔓; 𝔓; P; P; ) MATHEMATICAL FRAKTUR CAPITAL P
+1D514;1D514;1D514;0051;0051; # (𝔔; 𝔔; 𝔔; Q; Q; ) MATHEMATICAL FRAKTUR CAPITAL Q
+1D516;1D516;1D516;0053;0053; # (𝔖; 𝔖; 𝔖; S; S; ) MATHEMATICAL FRAKTUR CAPITAL S
+1D517;1D517;1D517;0054;0054; # (𝔗; 𝔗; 𝔗; T; T; ) MATHEMATICAL FRAKTUR CAPITAL T
+1D518;1D518;1D518;0055;0055; # (𝔘; 𝔘; 𝔘; U; U; ) MATHEMATICAL FRAKTUR CAPITAL U
+1D519;1D519;1D519;0056;0056; # (𝔙; 𝔙; 𝔙; V; V; ) MATHEMATICAL FRAKTUR CAPITAL V
+1D51A;1D51A;1D51A;0057;0057; # (𝔚; 𝔚; 𝔚; W; W; ) MATHEMATICAL FRAKTUR CAPITAL W
+1D51B;1D51B;1D51B;0058;0058; # (𝔛; 𝔛; 𝔛; X; X; ) MATHEMATICAL FRAKTUR CAPITAL X
+1D51C;1D51C;1D51C;0059;0059; # (𝔜; 𝔜; 𝔜; Y; Y; ) MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E;1D51E;1D51E;0061;0061; # (𝔞; 𝔞; 𝔞; a; a; ) MATHEMATICAL FRAKTUR SMALL A
+1D51F;1D51F;1D51F;0062;0062; # (𝔟; 𝔟; 𝔟; b; b; ) MATHEMATICAL FRAKTUR SMALL B
+1D520;1D520;1D520;0063;0063; # (𝔠; 𝔠; 𝔠; c; c; ) MATHEMATICAL FRAKTUR SMALL C
+1D521;1D521;1D521;0064;0064; # (𝔡; 𝔡; 𝔡; d; d; ) MATHEMATICAL FRAKTUR SMALL D
+1D522;1D522;1D522;0065;0065; # (𝔢; 𝔢; 𝔢; e; e; ) MATHEMATICAL FRAKTUR SMALL E
+1D523;1D523;1D523;0066;0066; # (𝔣; 𝔣; 𝔣; f; f; ) MATHEMATICAL FRAKTUR SMALL F
+1D524;1D524;1D524;0067;0067; # (𝔤; 𝔤; 𝔤; g; g; ) MATHEMATICAL FRAKTUR SMALL G
+1D525;1D525;1D525;0068;0068; # (𝔥; 𝔥; 𝔥; h; h; ) MATHEMATICAL FRAKTUR SMALL H
+1D526;1D526;1D526;0069;0069; # (𝔦; 𝔦; 𝔦; i; i; ) MATHEMATICAL FRAKTUR SMALL I
+1D527;1D527;1D527;006A;006A; # (𝔧; 𝔧; 𝔧; j; j; ) MATHEMATICAL FRAKTUR SMALL J
+1D528;1D528;1D528;006B;006B; # (𝔨; 𝔨; 𝔨; k; k; ) MATHEMATICAL FRAKTUR SMALL K
+1D529;1D529;1D529;006C;006C; # (𝔩; 𝔩; 𝔩; l; l; ) MATHEMATICAL FRAKTUR SMALL L
+1D52A;1D52A;1D52A;006D;006D; # (𝔪; 𝔪; 𝔪; m; m; ) MATHEMATICAL FRAKTUR SMALL M
+1D52B;1D52B;1D52B;006E;006E; # (𝔫; 𝔫; 𝔫; n; n; ) MATHEMATICAL FRAKTUR SMALL N
+1D52C;1D52C;1D52C;006F;006F; # (𝔬; 𝔬; 𝔬; o; o; ) MATHEMATICAL FRAKTUR SMALL O
+1D52D;1D52D;1D52D;0070;0070; # (𝔭; 𝔭; 𝔭; p; p; ) MATHEMATICAL FRAKTUR SMALL P
+1D52E;1D52E;1D52E;0071;0071; # (𝔮; 𝔮; 𝔮; q; q; ) MATHEMATICAL FRAKTUR SMALL Q
+1D52F;1D52F;1D52F;0072;0072; # (𝔯; 𝔯; 𝔯; r; r; ) MATHEMATICAL FRAKTUR SMALL R
+1D530;1D530;1D530;0073;0073; # (𝔰; 𝔰; 𝔰; s; s; ) MATHEMATICAL FRAKTUR SMALL S
+1D531;1D531;1D531;0074;0074; # (𝔱; 𝔱; 𝔱; t; t; ) MATHEMATICAL FRAKTUR SMALL T
+1D532;1D532;1D532;0075;0075; # (𝔲; 𝔲; 𝔲; u; u; ) MATHEMATICAL FRAKTUR SMALL U
+1D533;1D533;1D533;0076;0076; # (𝔳; 𝔳; 𝔳; v; v; ) MATHEMATICAL FRAKTUR SMALL V
+1D534;1D534;1D534;0077;0077; # (𝔴; 𝔴; 𝔴; w; w; ) MATHEMATICAL FRAKTUR SMALL W
+1D535;1D535;1D535;0078;0078; # (𝔵; 𝔵; 𝔵; x; x; ) MATHEMATICAL FRAKTUR SMALL X
+1D536;1D536;1D536;0079;0079; # (𝔶; 𝔶; 𝔶; y; y; ) MATHEMATICAL FRAKTUR SMALL Y
+1D537;1D537;1D537;007A;007A; # (𝔷; 𝔷; 𝔷; z; z; ) MATHEMATICAL FRAKTUR SMALL Z
+1D538;1D538;1D538;0041;0041; # (𝔸; 𝔸; 𝔸; A; A; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+1D539;1D539;1D539;0042;0042; # (𝔹; 𝔹; 𝔹; B; B; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B;1D53B;1D53B;0044;0044; # (𝔻; 𝔻; 𝔻; D; D; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+1D53C;1D53C;1D53C;0045;0045; # (𝔼; 𝔼; 𝔼; E; E; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+1D53D;1D53D;1D53D;0046;0046; # (𝔽; 𝔽; 𝔽; F; F; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+1D53E;1D53E;1D53E;0047;0047; # (𝔾; 𝔾; 𝔾; G; G; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540;1D540;1D540;0049;0049; # (𝕀; 𝕀; 𝕀; I; I; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+1D541;1D541;1D541;004A;004A; # (𝕁; 𝕁; 𝕁; J; J; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+1D542;1D542;1D542;004B;004B; # (𝕂; 𝕂; 𝕂; K; K; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+1D543;1D543;1D543;004C;004C; # (𝕃; 𝕃; 𝕃; L; L; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+1D544;1D544;1D544;004D;004D; # (𝕄; 𝕄; 𝕄; M; M; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546;1D546;1D546;004F;004F; # (𝕆; 𝕆; 𝕆; O; O; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A;1D54A;1D54A;0053;0053; # (𝕊; 𝕊; 𝕊; S; S; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+1D54B;1D54B;1D54B;0054;0054; # (𝕋; 𝕋; 𝕋; T; T; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+1D54C;1D54C;1D54C;0055;0055; # (𝕌; 𝕌; 𝕌; U; U; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+1D54D;1D54D;1D54D;0056;0056; # (𝕍; 𝕍; 𝕍; V; V; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+1D54E;1D54E;1D54E;0057;0057; # (𝕎; 𝕎; 𝕎; W; W; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+1D54F;1D54F;1D54F;0058;0058; # (𝕏; 𝕏; 𝕏; X; X; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+1D550;1D550;1D550;0059;0059; # (𝕐; 𝕐; 𝕐; Y; Y; ) MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552;1D552;1D552;0061;0061; # (𝕒; 𝕒; 𝕒; a; a; ) MATHEMATICAL DOUBLE-STRUCK SMALL A
+1D553;1D553;1D553;0062;0062; # (𝕓; 𝕓; 𝕓; b; b; ) MATHEMATICAL DOUBLE-STRUCK SMALL B
+1D554;1D554;1D554;0063;0063; # (𝕔; 𝕔; 𝕔; c; c; ) MATHEMATICAL DOUBLE-STRUCK SMALL C
+1D555;1D555;1D555;0064;0064; # (𝕕; 𝕕; 𝕕; d; d; ) MATHEMATICAL DOUBLE-STRUCK SMALL D
+1D556;1D556;1D556;0065;0065; # (𝕖; 𝕖; 𝕖; e; e; ) MATHEMATICAL DOUBLE-STRUCK SMALL E
+1D557;1D557;1D557;0066;0066; # (𝕗; 𝕗; 𝕗; f; f; ) MATHEMATICAL DOUBLE-STRUCK SMALL F
+1D558;1D558;1D558;0067;0067; # (𝕘; 𝕘; 𝕘; g; g; ) MATHEMATICAL DOUBLE-STRUCK SMALL G
+1D559;1D559;1D559;0068;0068; # (𝕙; 𝕙; 𝕙; h; h; ) MATHEMATICAL DOUBLE-STRUCK SMALL H
+1D55A;1D55A;1D55A;0069;0069; # (𝕚; 𝕚; 𝕚; i; i; ) MATHEMATICAL DOUBLE-STRUCK SMALL I
+1D55B;1D55B;1D55B;006A;006A; # (𝕛; 𝕛; 𝕛; j; j; ) MATHEMATICAL DOUBLE-STRUCK SMALL J
+1D55C;1D55C;1D55C;006B;006B; # (𝕜; 𝕜; 𝕜; k; k; ) MATHEMATICAL DOUBLE-STRUCK SMALL K
+1D55D;1D55D;1D55D;006C;006C; # (𝕝; 𝕝; 𝕝; l; l; ) MATHEMATICAL DOUBLE-STRUCK SMALL L
+1D55E;1D55E;1D55E;006D;006D; # (𝕞; 𝕞; 𝕞; m; m; ) MATHEMATICAL DOUBLE-STRUCK SMALL M
+1D55F;1D55F;1D55F;006E;006E; # (𝕟; 𝕟; 𝕟; n; n; ) MATHEMATICAL DOUBLE-STRUCK SMALL N
+1D560;1D560;1D560;006F;006F; # (𝕠; 𝕠; 𝕠; o; o; ) MATHEMATICAL DOUBLE-STRUCK SMALL O
+1D561;1D561;1D561;0070;0070; # (𝕡; 𝕡; 𝕡; p; p; ) MATHEMATICAL DOUBLE-STRUCK SMALL P
+1D562;1D562;1D562;0071;0071; # (𝕢; 𝕢; 𝕢; q; q; ) MATHEMATICAL DOUBLE-STRUCK SMALL Q
+1D563;1D563;1D563;0072;0072; # (𝕣; 𝕣; 𝕣; r; r; ) MATHEMATICAL DOUBLE-STRUCK SMALL R
+1D564;1D564;1D564;0073;0073; # (𝕤; 𝕤; 𝕤; s; s; ) MATHEMATICAL DOUBLE-STRUCK SMALL S
+1D565;1D565;1D565;0074;0074; # (𝕥; 𝕥; 𝕥; t; t; ) MATHEMATICAL DOUBLE-STRUCK SMALL T
+1D566;1D566;1D566;0075;0075; # (𝕦; 𝕦; 𝕦; u; u; ) MATHEMATICAL DOUBLE-STRUCK SMALL U
+1D567;1D567;1D567;0076;0076; # (𝕧; 𝕧; 𝕧; v; v; ) MATHEMATICAL DOUBLE-STRUCK SMALL V
+1D568;1D568;1D568;0077;0077; # (𝕨; 𝕨; 𝕨; w; w; ) MATHEMATICAL DOUBLE-STRUCK SMALL W
+1D569;1D569;1D569;0078;0078; # (𝕩; 𝕩; 𝕩; x; x; ) MATHEMATICAL DOUBLE-STRUCK SMALL X
+1D56A;1D56A;1D56A;0079;0079; # (𝕪; 𝕪; 𝕪; y; y; ) MATHEMATICAL DOUBLE-STRUCK SMALL Y
+1D56B;1D56B;1D56B;007A;007A; # (𝕫; 𝕫; 𝕫; z; z; ) MATHEMATICAL DOUBLE-STRUCK SMALL Z
+1D56C;1D56C;1D56C;0041;0041; # (𝕬; 𝕬; 𝕬; A; A; ) MATHEMATICAL BOLD FRAKTUR CAPITAL A
+1D56D;1D56D;1D56D;0042;0042; # (𝕭; 𝕭; 𝕭; B; B; ) MATHEMATICAL BOLD FRAKTUR CAPITAL B
+1D56E;1D56E;1D56E;0043;0043; # (𝕮; 𝕮; 𝕮; C; C; ) MATHEMATICAL BOLD FRAKTUR CAPITAL C
+1D56F;1D56F;1D56F;0044;0044; # (𝕯; 𝕯; 𝕯; D; D; ) MATHEMATICAL BOLD FRAKTUR CAPITAL D
+1D570;1D570;1D570;0045;0045; # (𝕰; 𝕰; 𝕰; E; E; ) MATHEMATICAL BOLD FRAKTUR CAPITAL E
+1D571;1D571;1D571;0046;0046; # (𝕱; 𝕱; 𝕱; F; F; ) MATHEMATICAL BOLD FRAKTUR CAPITAL F
+1D572;1D572;1D572;0047;0047; # (𝕲; 𝕲; 𝕲; G; G; ) MATHEMATICAL BOLD FRAKTUR CAPITAL G
+1D573;1D573;1D573;0048;0048; # (𝕳; 𝕳; 𝕳; H; H; ) MATHEMATICAL BOLD FRAKTUR CAPITAL H
+1D574;1D574;1D574;0049;0049; # (𝕴; 𝕴; 𝕴; I; I; ) MATHEMATICAL BOLD FRAKTUR CAPITAL I
+1D575;1D575;1D575;004A;004A; # (𝕵; 𝕵; 𝕵; J; J; ) MATHEMATICAL BOLD FRAKTUR CAPITAL J
+1D576;1D576;1D576;004B;004B; # (𝕶; 𝕶; 𝕶; K; K; ) MATHEMATICAL BOLD FRAKTUR CAPITAL K
+1D577;1D577;1D577;004C;004C; # (𝕷; 𝕷; 𝕷; L; L; ) MATHEMATICAL BOLD FRAKTUR CAPITAL L
+1D578;1D578;1D578;004D;004D; # (𝕸; 𝕸; 𝕸; M; M; ) MATHEMATICAL BOLD FRAKTUR CAPITAL M
+1D579;1D579;1D579;004E;004E; # (𝕹; 𝕹; 𝕹; N; N; ) MATHEMATICAL BOLD FRAKTUR CAPITAL N
+1D57A;1D57A;1D57A;004F;004F; # (𝕺; 𝕺; 𝕺; O; O; ) MATHEMATICAL BOLD FRAKTUR CAPITAL O
+1D57B;1D57B;1D57B;0050;0050; # (𝕻; 𝕻; 𝕻; P; P; ) MATHEMATICAL BOLD FRAKTUR CAPITAL P
+1D57C;1D57C;1D57C;0051;0051; # (𝕼; 𝕼; 𝕼; Q; Q; ) MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+1D57D;1D57D;1D57D;0052;0052; # (𝕽; 𝕽; 𝕽; R; R; ) MATHEMATICAL BOLD FRAKTUR CAPITAL R
+1D57E;1D57E;1D57E;0053;0053; # (𝕾; 𝕾; 𝕾; S; S; ) MATHEMATICAL BOLD FRAKTUR CAPITAL S
+1D57F;1D57F;1D57F;0054;0054; # (𝕿; 𝕿; 𝕿; T; T; ) MATHEMATICAL BOLD FRAKTUR CAPITAL T
+1D580;1D580;1D580;0055;0055; # (𝖀; 𝖀; 𝖀; U; U; ) MATHEMATICAL BOLD FRAKTUR CAPITAL U
+1D581;1D581;1D581;0056;0056; # (𝖁; 𝖁; 𝖁; V; V; ) MATHEMATICAL BOLD FRAKTUR CAPITAL V
+1D582;1D582;1D582;0057;0057; # (𝖂; 𝖂; 𝖂; W; W; ) MATHEMATICAL BOLD FRAKTUR CAPITAL W
+1D583;1D583;1D583;0058;0058; # (𝖃; 𝖃; 𝖃; X; X; ) MATHEMATICAL BOLD FRAKTUR CAPITAL X
+1D584;1D584;1D584;0059;0059; # (𝖄; 𝖄; 𝖄; Y; Y; ) MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+1D585;1D585;1D585;005A;005A; # (𝖅; 𝖅; 𝖅; Z; Z; ) MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D586;1D586;1D586;0061;0061; # (𝖆; 𝖆; 𝖆; a; a; ) MATHEMATICAL BOLD FRAKTUR SMALL A
+1D587;1D587;1D587;0062;0062; # (𝖇; 𝖇; 𝖇; b; b; ) MATHEMATICAL BOLD FRAKTUR SMALL B
+1D588;1D588;1D588;0063;0063; # (𝖈; 𝖈; 𝖈; c; c; ) MATHEMATICAL BOLD FRAKTUR SMALL C
+1D589;1D589;1D589;0064;0064; # (𝖉; 𝖉; 𝖉; d; d; ) MATHEMATICAL BOLD FRAKTUR SMALL D
+1D58A;1D58A;1D58A;0065;0065; # (𝖊; 𝖊; 𝖊; e; e; ) MATHEMATICAL BOLD FRAKTUR SMALL E
+1D58B;1D58B;1D58B;0066;0066; # (𝖋; 𝖋; 𝖋; f; f; ) MATHEMATICAL BOLD FRAKTUR SMALL F
+1D58C;1D58C;1D58C;0067;0067; # (𝖌; 𝖌; 𝖌; g; g; ) MATHEMATICAL BOLD FRAKTUR SMALL G
+1D58D;1D58D;1D58D;0068;0068; # (𝖍; 𝖍; 𝖍; h; h; ) MATHEMATICAL BOLD FRAKTUR SMALL H
+1D58E;1D58E;1D58E;0069;0069; # (𝖎; 𝖎; 𝖎; i; i; ) MATHEMATICAL BOLD FRAKTUR SMALL I
+1D58F;1D58F;1D58F;006A;006A; # (𝖏; 𝖏; 𝖏; j; j; ) MATHEMATICAL BOLD FRAKTUR SMALL J
+1D590;1D590;1D590;006B;006B; # (𝖐; 𝖐; 𝖐; k; k; ) MATHEMATICAL BOLD FRAKTUR SMALL K
+1D591;1D591;1D591;006C;006C; # (𝖑; 𝖑; 𝖑; l; l; ) MATHEMATICAL BOLD FRAKTUR SMALL L
+1D592;1D592;1D592;006D;006D; # (𝖒; 𝖒; 𝖒; m; m; ) MATHEMATICAL BOLD FRAKTUR SMALL M
+1D593;1D593;1D593;006E;006E; # (𝖓; 𝖓; 𝖓; n; n; ) MATHEMATICAL BOLD FRAKTUR SMALL N
+1D594;1D594;1D594;006F;006F; # (𝖔; 𝖔; 𝖔; o; o; ) MATHEMATICAL BOLD FRAKTUR SMALL O
+1D595;1D595;1D595;0070;0070; # (𝖕; 𝖕; 𝖕; p; p; ) MATHEMATICAL BOLD FRAKTUR SMALL P
+1D596;1D596;1D596;0071;0071; # (𝖖; 𝖖; 𝖖; q; q; ) MATHEMATICAL BOLD FRAKTUR SMALL Q
+1D597;1D597;1D597;0072;0072; # (𝖗; 𝖗; 𝖗; r; r; ) MATHEMATICAL BOLD FRAKTUR SMALL R
+1D598;1D598;1D598;0073;0073; # (𝖘; 𝖘; 𝖘; s; s; ) MATHEMATICAL BOLD FRAKTUR SMALL S
+1D599;1D599;1D599;0074;0074; # (𝖙; 𝖙; 𝖙; t; t; ) MATHEMATICAL BOLD FRAKTUR SMALL T
+1D59A;1D59A;1D59A;0075;0075; # (𝖚; 𝖚; 𝖚; u; u; ) MATHEMATICAL BOLD FRAKTUR SMALL U
+1D59B;1D59B;1D59B;0076;0076; # (𝖛; 𝖛; 𝖛; v; v; ) MATHEMATICAL BOLD FRAKTUR SMALL V
+1D59C;1D59C;1D59C;0077;0077; # (𝖜; 𝖜; 𝖜; w; w; ) MATHEMATICAL BOLD FRAKTUR SMALL W
+1D59D;1D59D;1D59D;0078;0078; # (𝖝; 𝖝; 𝖝; x; x; ) MATHEMATICAL BOLD FRAKTUR SMALL X
+1D59E;1D59E;1D59E;0079;0079; # (𝖞; 𝖞; 𝖞; y; y; ) MATHEMATICAL BOLD FRAKTUR SMALL Y
+1D59F;1D59F;1D59F;007A;007A; # (𝖟; 𝖟; 𝖟; z; z; ) MATHEMATICAL BOLD FRAKTUR SMALL Z
+1D5A0;1D5A0;1D5A0;0041;0041; # (𝖠; 𝖠; 𝖠; A; A; ) MATHEMATICAL SANS-SERIF CAPITAL A
+1D5A1;1D5A1;1D5A1;0042;0042; # (𝖡; 𝖡; 𝖡; B; B; ) MATHEMATICAL SANS-SERIF CAPITAL B
+1D5A2;1D5A2;1D5A2;0043;0043; # (𝖢; 𝖢; 𝖢; C; C; ) MATHEMATICAL SANS-SERIF CAPITAL C
+1D5A3;1D5A3;1D5A3;0044;0044; # (𝖣; 𝖣; 𝖣; D; D; ) MATHEMATICAL SANS-SERIF CAPITAL D
+1D5A4;1D5A4;1D5A4;0045;0045; # (𝖤; 𝖤; 𝖤; E; E; ) MATHEMATICAL SANS-SERIF CAPITAL E
+1D5A5;1D5A5;1D5A5;0046;0046; # (𝖥; 𝖥; 𝖥; F; F; ) MATHEMATICAL SANS-SERIF CAPITAL F
+1D5A6;1D5A6;1D5A6;0047;0047; # (𝖦; 𝖦; 𝖦; G; G; ) MATHEMATICAL SANS-SERIF CAPITAL G
+1D5A7;1D5A7;1D5A7;0048;0048; # (𝖧; 𝖧; 𝖧; H; H; ) MATHEMATICAL SANS-SERIF CAPITAL H
+1D5A8;1D5A8;1D5A8;0049;0049; # (𝖨; 𝖨; 𝖨; I; I; ) MATHEMATICAL SANS-SERIF CAPITAL I
+1D5A9;1D5A9;1D5A9;004A;004A; # (𝖩; 𝖩; 𝖩; J; J; ) MATHEMATICAL SANS-SERIF CAPITAL J
+1D5AA;1D5AA;1D5AA;004B;004B; # (𝖪; 𝖪; 𝖪; K; K; ) MATHEMATICAL SANS-SERIF CAPITAL K
+1D5AB;1D5AB;1D5AB;004C;004C; # (𝖫; 𝖫; 𝖫; L; L; ) MATHEMATICAL SANS-SERIF CAPITAL L
+1D5AC;1D5AC;1D5AC;004D;004D; # (𝖬; 𝖬; 𝖬; M; M; ) MATHEMATICAL SANS-SERIF CAPITAL M
+1D5AD;1D5AD;1D5AD;004E;004E; # (𝖭; 𝖭; 𝖭; N; N; ) MATHEMATICAL SANS-SERIF CAPITAL N
+1D5AE;1D5AE;1D5AE;004F;004F; # (𝖮; 𝖮; 𝖮; O; O; ) MATHEMATICAL SANS-SERIF CAPITAL O
+1D5AF;1D5AF;1D5AF;0050;0050; # (𝖯; 𝖯; 𝖯; P; P; ) MATHEMATICAL SANS-SERIF CAPITAL P
+1D5B0;1D5B0;1D5B0;0051;0051; # (𝖰; 𝖰; 𝖰; Q; Q; ) MATHEMATICAL SANS-SERIF CAPITAL Q
+1D5B1;1D5B1;1D5B1;0052;0052; # (𝖱; 𝖱; 𝖱; R; R; ) MATHEMATICAL SANS-SERIF CAPITAL R
+1D5B2;1D5B2;1D5B2;0053;0053; # (𝖲; 𝖲; 𝖲; S; S; ) MATHEMATICAL SANS-SERIF CAPITAL S
+1D5B3;1D5B3;1D5B3;0054;0054; # (𝖳; 𝖳; 𝖳; T; T; ) MATHEMATICAL SANS-SERIF CAPITAL T
+1D5B4;1D5B4;1D5B4;0055;0055; # (𝖴; 𝖴; 𝖴; U; U; ) MATHEMATICAL SANS-SERIF CAPITAL U
+1D5B5;1D5B5;1D5B5;0056;0056; # (𝖵; 𝖵; 𝖵; V; V; ) MATHEMATICAL SANS-SERIF CAPITAL V
+1D5B6;1D5B6;1D5B6;0057;0057; # (𝖶; 𝖶; 𝖶; W; W; ) MATHEMATICAL SANS-SERIF CAPITAL W
+1D5B7;1D5B7;1D5B7;0058;0058; # (𝖷; 𝖷; 𝖷; X; X; ) MATHEMATICAL SANS-SERIF CAPITAL X
+1D5B8;1D5B8;1D5B8;0059;0059; # (𝖸; 𝖸; 𝖸; Y; Y; ) MATHEMATICAL SANS-SERIF CAPITAL Y
+1D5B9;1D5B9;1D5B9;005A;005A; # (𝖹; 𝖹; 𝖹; Z; Z; ) MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5BA;1D5BA;1D5BA;0061;0061; # (𝖺; 𝖺; 𝖺; a; a; ) MATHEMATICAL SANS-SERIF SMALL A
+1D5BB;1D5BB;1D5BB;0062;0062; # (𝖻; 𝖻; 𝖻; b; b; ) MATHEMATICAL SANS-SERIF SMALL B
+1D5BC;1D5BC;1D5BC;0063;0063; # (𝖼; 𝖼; 𝖼; c; c; ) MATHEMATICAL SANS-SERIF SMALL C
+1D5BD;1D5BD;1D5BD;0064;0064; # (𝖽; 𝖽; 𝖽; d; d; ) MATHEMATICAL SANS-SERIF SMALL D
+1D5BE;1D5BE;1D5BE;0065;0065; # (𝖾; 𝖾; 𝖾; e; e; ) MATHEMATICAL SANS-SERIF SMALL E
+1D5BF;1D5BF;1D5BF;0066;0066; # (𝖿; 𝖿; 𝖿; f; f; ) MATHEMATICAL SANS-SERIF SMALL F
+1D5C0;1D5C0;1D5C0;0067;0067; # (𝗀; 𝗀; 𝗀; g; g; ) MATHEMATICAL SANS-SERIF SMALL G
+1D5C1;1D5C1;1D5C1;0068;0068; # (𝗁; 𝗁; 𝗁; h; h; ) MATHEMATICAL SANS-SERIF SMALL H
+1D5C2;1D5C2;1D5C2;0069;0069; # (𝗂; 𝗂; 𝗂; i; i; ) MATHEMATICAL SANS-SERIF SMALL I
+1D5C3;1D5C3;1D5C3;006A;006A; # (𝗃; 𝗃; 𝗃; j; j; ) MATHEMATICAL SANS-SERIF SMALL J
+1D5C4;1D5C4;1D5C4;006B;006B; # (𝗄; 𝗄; 𝗄; k; k; ) MATHEMATICAL SANS-SERIF SMALL K
+1D5C5;1D5C5;1D5C5;006C;006C; # (𝗅; 𝗅; 𝗅; l; l; ) MATHEMATICAL SANS-SERIF SMALL L
+1D5C6;1D5C6;1D5C6;006D;006D; # (𝗆; 𝗆; 𝗆; m; m; ) MATHEMATICAL SANS-SERIF SMALL M
+1D5C7;1D5C7;1D5C7;006E;006E; # (𝗇; 𝗇; 𝗇; n; n; ) MATHEMATICAL SANS-SERIF SMALL N
+1D5C8;1D5C8;1D5C8;006F;006F; # (𝗈; 𝗈; 𝗈; o; o; ) MATHEMATICAL SANS-SERIF SMALL O
+1D5C9;1D5C9;1D5C9;0070;0070; # (𝗉; 𝗉; 𝗉; p; p; ) MATHEMATICAL SANS-SERIF SMALL P
+1D5CA;1D5CA;1D5CA;0071;0071; # (𝗊; 𝗊; 𝗊; q; q; ) MATHEMATICAL SANS-SERIF SMALL Q
+1D5CB;1D5CB;1D5CB;0072;0072; # (𝗋; 𝗋; 𝗋; r; r; ) MATHEMATICAL SANS-SERIF SMALL R
+1D5CC;1D5CC;1D5CC;0073;0073; # (𝗌; 𝗌; 𝗌; s; s; ) MATHEMATICAL SANS-SERIF SMALL S
+1D5CD;1D5CD;1D5CD;0074;0074; # (𝗍; 𝗍; 𝗍; t; t; ) MATHEMATICAL SANS-SERIF SMALL T
+1D5CE;1D5CE;1D5CE;0075;0075; # (𝗎; 𝗎; 𝗎; u; u; ) MATHEMATICAL SANS-SERIF SMALL U
+1D5CF;1D5CF;1D5CF;0076;0076; # (𝗏; 𝗏; 𝗏; v; v; ) MATHEMATICAL SANS-SERIF SMALL V
+1D5D0;1D5D0;1D5D0;0077;0077; # (𝗐; 𝗐; 𝗐; w; w; ) MATHEMATICAL SANS-SERIF SMALL W
+1D5D1;1D5D1;1D5D1;0078;0078; # (𝗑; 𝗑; 𝗑; x; x; ) MATHEMATICAL SANS-SERIF SMALL X
+1D5D2;1D5D2;1D5D2;0079;0079; # (𝗒; 𝗒; 𝗒; y; y; ) MATHEMATICAL SANS-SERIF SMALL Y
+1D5D3;1D5D3;1D5D3;007A;007A; # (𝗓; 𝗓; 𝗓; z; z; ) MATHEMATICAL SANS-SERIF SMALL Z
+1D5D4;1D5D4;1D5D4;0041;0041; # (𝗔; 𝗔; 𝗔; A; A; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+1D5D5;1D5D5;1D5D5;0042;0042; # (𝗕; 𝗕; 𝗕; B; B; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+1D5D6;1D5D6;1D5D6;0043;0043; # (𝗖; 𝗖; 𝗖; C; C; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+1D5D7;1D5D7;1D5D7;0044;0044; # (𝗗; 𝗗; 𝗗; D; D; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+1D5D8;1D5D8;1D5D8;0045;0045; # (𝗘; 𝗘; 𝗘; E; E; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+1D5D9;1D5D9;1D5D9;0046;0046; # (𝗙; 𝗙; 𝗙; F; F; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+1D5DA;1D5DA;1D5DA;0047;0047; # (𝗚; 𝗚; 𝗚; G; G; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+1D5DB;1D5DB;1D5DB;0048;0048; # (𝗛; 𝗛; 𝗛; H; H; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+1D5DC;1D5DC;1D5DC;0049;0049; # (𝗜; 𝗜; 𝗜; I; I; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+1D5DD;1D5DD;1D5DD;004A;004A; # (𝗝; 𝗝; 𝗝; J; J; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+1D5DE;1D5DE;1D5DE;004B;004B; # (𝗞; 𝗞; 𝗞; K; K; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+1D5DF;1D5DF;1D5DF;004C;004C; # (𝗟; 𝗟; 𝗟; L; L; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+1D5E0;1D5E0;1D5E0;004D;004D; # (𝗠; 𝗠; 𝗠; M; M; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+1D5E1;1D5E1;1D5E1;004E;004E; # (𝗡; 𝗡; 𝗡; N; N; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+1D5E2;1D5E2;1D5E2;004F;004F; # (𝗢; 𝗢; 𝗢; O; O; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+1D5E3;1D5E3;1D5E3;0050;0050; # (𝗣; 𝗣; 𝗣; P; P; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+1D5E4;1D5E4;1D5E4;0051;0051; # (𝗤; 𝗤; 𝗤; Q; Q; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+1D5E5;1D5E5;1D5E5;0052;0052; # (𝗥; 𝗥; 𝗥; R; R; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+1D5E6;1D5E6;1D5E6;0053;0053; # (𝗦; 𝗦; 𝗦; S; S; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+1D5E7;1D5E7;1D5E7;0054;0054; # (𝗧; 𝗧; 𝗧; T; T; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+1D5E8;1D5E8;1D5E8;0055;0055; # (𝗨; 𝗨; 𝗨; U; U; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+1D5E9;1D5E9;1D5E9;0056;0056; # (𝗩; 𝗩; 𝗩; V; V; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+1D5EA;1D5EA;1D5EA;0057;0057; # (𝗪; 𝗪; 𝗪; W; W; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+1D5EB;1D5EB;1D5EB;0058;0058; # (𝗫; 𝗫; 𝗫; X; X; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+1D5EC;1D5EC;1D5EC;0059;0059; # (𝗬; 𝗬; 𝗬; Y; Y; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+1D5ED;1D5ED;1D5ED;005A;005A; # (𝗭; 𝗭; 𝗭; Z; Z; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D5EE;1D5EE;1D5EE;0061;0061; # (𝗮; 𝗮; 𝗮; a; a; ) MATHEMATICAL SANS-SERIF BOLD SMALL A
+1D5EF;1D5EF;1D5EF;0062;0062; # (𝗯; 𝗯; 𝗯; b; b; ) MATHEMATICAL SANS-SERIF BOLD SMALL B
+1D5F0;1D5F0;1D5F0;0063;0063; # (𝗰; 𝗰; 𝗰; c; c; ) MATHEMATICAL SANS-SERIF BOLD SMALL C
+1D5F1;1D5F1;1D5F1;0064;0064; # (𝗱; 𝗱; 𝗱; d; d; ) MATHEMATICAL SANS-SERIF BOLD SMALL D
+1D5F2;1D5F2;1D5F2;0065;0065; # (𝗲; 𝗲; 𝗲; e; e; ) MATHEMATICAL SANS-SERIF BOLD SMALL E
+1D5F3;1D5F3;1D5F3;0066;0066; # (𝗳; 𝗳; 𝗳; f; f; ) MATHEMATICAL SANS-SERIF BOLD SMALL F
+1D5F4;1D5F4;1D5F4;0067;0067; # (𝗴; 𝗴; 𝗴; g; g; ) MATHEMATICAL SANS-SERIF BOLD SMALL G
+1D5F5;1D5F5;1D5F5;0068;0068; # (𝗵; 𝗵; 𝗵; h; h; ) MATHEMATICAL SANS-SERIF BOLD SMALL H
+1D5F6;1D5F6;1D5F6;0069;0069; # (𝗶; 𝗶; 𝗶; i; i; ) MATHEMATICAL SANS-SERIF BOLD SMALL I
+1D5F7;1D5F7;1D5F7;006A;006A; # (𝗷; 𝗷; 𝗷; j; j; ) MATHEMATICAL SANS-SERIF BOLD SMALL J
+1D5F8;1D5F8;1D5F8;006B;006B; # (𝗸; 𝗸; 𝗸; k; k; ) MATHEMATICAL SANS-SERIF BOLD SMALL K
+1D5F9;1D5F9;1D5F9;006C;006C; # (𝗹; 𝗹; 𝗹; l; l; ) MATHEMATICAL SANS-SERIF BOLD SMALL L
+1D5FA;1D5FA;1D5FA;006D;006D; # (𝗺; 𝗺; 𝗺; m; m; ) MATHEMATICAL SANS-SERIF BOLD SMALL M
+1D5FB;1D5FB;1D5FB;006E;006E; # (𝗻; 𝗻; 𝗻; n; n; ) MATHEMATICAL SANS-SERIF BOLD SMALL N
+1D5FC;1D5FC;1D5FC;006F;006F; # (𝗼; 𝗼; 𝗼; o; o; ) MATHEMATICAL SANS-SERIF BOLD SMALL O
+1D5FD;1D5FD;1D5FD;0070;0070; # (𝗽; 𝗽; 𝗽; p; p; ) MATHEMATICAL SANS-SERIF BOLD SMALL P
+1D5FE;1D5FE;1D5FE;0071;0071; # (𝗾; 𝗾; 𝗾; q; q; ) MATHEMATICAL SANS-SERIF BOLD SMALL Q
+1D5FF;1D5FF;1D5FF;0072;0072; # (𝗿; 𝗿; 𝗿; r; r; ) MATHEMATICAL SANS-SERIF BOLD SMALL R
+1D600;1D600;1D600;0073;0073; # (𝘀; 𝘀; 𝘀; s; s; ) MATHEMATICAL SANS-SERIF BOLD SMALL S
+1D601;1D601;1D601;0074;0074; # (𝘁; 𝘁; 𝘁; t; t; ) MATHEMATICAL SANS-SERIF BOLD SMALL T
+1D602;1D602;1D602;0075;0075; # (𝘂; 𝘂; 𝘂; u; u; ) MATHEMATICAL SANS-SERIF BOLD SMALL U
+1D603;1D603;1D603;0076;0076; # (𝘃; 𝘃; 𝘃; v; v; ) MATHEMATICAL SANS-SERIF BOLD SMALL V
+1D604;1D604;1D604;0077;0077; # (𝘄; 𝘄; 𝘄; w; w; ) MATHEMATICAL SANS-SERIF BOLD SMALL W
+1D605;1D605;1D605;0078;0078; # (𝘅; 𝘅; 𝘅; x; x; ) MATHEMATICAL SANS-SERIF BOLD SMALL X
+1D606;1D606;1D606;0079;0079; # (𝘆; 𝘆; 𝘆; y; y; ) MATHEMATICAL SANS-SERIF BOLD SMALL Y
+1D607;1D607;1D607;007A;007A; # (𝘇; 𝘇; 𝘇; z; z; ) MATHEMATICAL SANS-SERIF BOLD SMALL Z
+1D608;1D608;1D608;0041;0041; # (𝘈; 𝘈; 𝘈; A; A; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+1D609;1D609;1D609;0042;0042; # (𝘉; 𝘉; 𝘉; B; B; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+1D60A;1D60A;1D60A;0043;0043; # (𝘊; 𝘊; 𝘊; C; C; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+1D60B;1D60B;1D60B;0044;0044; # (𝘋; 𝘋; 𝘋; D; D; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+1D60C;1D60C;1D60C;0045;0045; # (𝘌; 𝘌; 𝘌; E; E; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+1D60D;1D60D;1D60D;0046;0046; # (𝘍; 𝘍; 𝘍; F; F; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+1D60E;1D60E;1D60E;0047;0047; # (𝘎; 𝘎; 𝘎; G; G; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+1D60F;1D60F;1D60F;0048;0048; # (𝘏; 𝘏; 𝘏; H; H; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+1D610;1D610;1D610;0049;0049; # (𝘐; 𝘐; 𝘐; I; I; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+1D611;1D611;1D611;004A;004A; # (𝘑; 𝘑; 𝘑; J; J; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+1D612;1D612;1D612;004B;004B; # (𝘒; 𝘒; 𝘒; K; K; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+1D613;1D613;1D613;004C;004C; # (𝘓; 𝘓; 𝘓; L; L; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+1D614;1D614;1D614;004D;004D; # (𝘔; 𝘔; 𝘔; M; M; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+1D615;1D615;1D615;004E;004E; # (𝘕; 𝘕; 𝘕; N; N; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+1D616;1D616;1D616;004F;004F; # (𝘖; 𝘖; 𝘖; O; O; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+1D617;1D617;1D617;0050;0050; # (𝘗; 𝘗; 𝘗; P; P; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+1D618;1D618;1D618;0051;0051; # (𝘘; 𝘘; 𝘘; Q; Q; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+1D619;1D619;1D619;0052;0052; # (𝘙; 𝘙; 𝘙; R; R; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+1D61A;1D61A;1D61A;0053;0053; # (𝘚; 𝘚; 𝘚; S; S; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+1D61B;1D61B;1D61B;0054;0054; # (𝘛; 𝘛; 𝘛; T; T; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+1D61C;1D61C;1D61C;0055;0055; # (𝘜; 𝘜; 𝘜; U; U; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+1D61D;1D61D;1D61D;0056;0056; # (𝘝; 𝘝; 𝘝; V; V; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+1D61E;1D61E;1D61E;0057;0057; # (𝘞; 𝘞; 𝘞; W; W; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+1D61F;1D61F;1D61F;0058;0058; # (𝘟; 𝘟; 𝘟; X; X; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+1D620;1D620;1D620;0059;0059; # (𝘠; 𝘠; 𝘠; Y; Y; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+1D621;1D621;1D621;005A;005A; # (𝘡; 𝘡; 𝘡; Z; Z; ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D622;1D622;1D622;0061;0061; # (𝘢; 𝘢; 𝘢; a; a; ) MATHEMATICAL SANS-SERIF ITALIC SMALL A
+1D623;1D623;1D623;0062;0062; # (𝘣; 𝘣; 𝘣; b; b; ) MATHEMATICAL SANS-SERIF ITALIC SMALL B
+1D624;1D624;1D624;0063;0063; # (𝘤; 𝘤; 𝘤; c; c; ) MATHEMATICAL SANS-SERIF ITALIC SMALL C
+1D625;1D625;1D625;0064;0064; # (𝘥; 𝘥; 𝘥; d; d; ) MATHEMATICAL SANS-SERIF ITALIC SMALL D
+1D626;1D626;1D626;0065;0065; # (𝘦; 𝘦; 𝘦; e; e; ) MATHEMATICAL SANS-SERIF ITALIC SMALL E
+1D627;1D627;1D627;0066;0066; # (𝘧; 𝘧; 𝘧; f; f; ) MATHEMATICAL SANS-SERIF ITALIC SMALL F
+1D628;1D628;1D628;0067;0067; # (𝘨; 𝘨; 𝘨; g; g; ) MATHEMATICAL SANS-SERIF ITALIC SMALL G
+1D629;1D629;1D629;0068;0068; # (𝘩; 𝘩; 𝘩; h; h; ) MATHEMATICAL SANS-SERIF ITALIC SMALL H
+1D62A;1D62A;1D62A;0069;0069; # (𝘪; 𝘪; 𝘪; i; i; ) MATHEMATICAL SANS-SERIF ITALIC SMALL I
+1D62B;1D62B;1D62B;006A;006A; # (𝘫; 𝘫; 𝘫; j; j; ) MATHEMATICAL SANS-SERIF ITALIC SMALL J
+1D62C;1D62C;1D62C;006B;006B; # (𝘬; 𝘬; 𝘬; k; k; ) MATHEMATICAL SANS-SERIF ITALIC SMALL K
+1D62D;1D62D;1D62D;006C;006C; # (𝘭; 𝘭; 𝘭; l; l; ) MATHEMATICAL SANS-SERIF ITALIC SMALL L
+1D62E;1D62E;1D62E;006D;006D; # (𝘮; 𝘮; 𝘮; m; m; ) MATHEMATICAL SANS-SERIF ITALIC SMALL M
+1D62F;1D62F;1D62F;006E;006E; # (𝘯; 𝘯; 𝘯; n; n; ) MATHEMATICAL SANS-SERIF ITALIC SMALL N
+1D630;1D630;1D630;006F;006F; # (𝘰; 𝘰; 𝘰; o; o; ) MATHEMATICAL SANS-SERIF ITALIC SMALL O
+1D631;1D631;1D631;0070;0070; # (𝘱; 𝘱; 𝘱; p; p; ) MATHEMATICAL SANS-SERIF ITALIC SMALL P
+1D632;1D632;1D632;0071;0071; # (𝘲; 𝘲; 𝘲; q; q; ) MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+1D633;1D633;1D633;0072;0072; # (𝘳; 𝘳; 𝘳; r; r; ) MATHEMATICAL SANS-SERIF ITALIC SMALL R
+1D634;1D634;1D634;0073;0073; # (𝘴; 𝘴; 𝘴; s; s; ) MATHEMATICAL SANS-SERIF ITALIC SMALL S
+1D635;1D635;1D635;0074;0074; # (𝘵; 𝘵; 𝘵; t; t; ) MATHEMATICAL SANS-SERIF ITALIC SMALL T
+1D636;1D636;1D636;0075;0075; # (𝘶; 𝘶; 𝘶; u; u; ) MATHEMATICAL SANS-SERIF ITALIC SMALL U
+1D637;1D637;1D637;0076;0076; # (𝘷; 𝘷; 𝘷; v; v; ) MATHEMATICAL SANS-SERIF ITALIC SMALL V
+1D638;1D638;1D638;0077;0077; # (𝘸; 𝘸; 𝘸; w; w; ) MATHEMATICAL SANS-SERIF ITALIC SMALL W
+1D639;1D639;1D639;0078;0078; # (𝘹; 𝘹; 𝘹; x; x; ) MATHEMATICAL SANS-SERIF ITALIC SMALL X
+1D63A;1D63A;1D63A;0079;0079; # (𝘺; 𝘺; 𝘺; y; y; ) MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+1D63B;1D63B;1D63B;007A;007A; # (𝘻; 𝘻; 𝘻; z; z; ) MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+1D63C;1D63C;1D63C;0041;0041; # (𝘼; 𝘼; 𝘼; A; A; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+1D63D;1D63D;1D63D;0042;0042; # (𝘽; 𝘽; 𝘽; B; B; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+1D63E;1D63E;1D63E;0043;0043; # (𝘾; 𝘾; 𝘾; C; C; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+1D63F;1D63F;1D63F;0044;0044; # (𝘿; 𝘿; 𝘿; D; D; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+1D640;1D640;1D640;0045;0045; # (𝙀; 𝙀; 𝙀; E; E; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+1D641;1D641;1D641;0046;0046; # (𝙁; 𝙁; 𝙁; F; F; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+1D642;1D642;1D642;0047;0047; # (𝙂; 𝙂; 𝙂; G; G; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+1D643;1D643;1D643;0048;0048; # (𝙃; 𝙃; 𝙃; H; H; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+1D644;1D644;1D644;0049;0049; # (𝙄; 𝙄; 𝙄; I; I; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+1D645;1D645;1D645;004A;004A; # (𝙅; 𝙅; 𝙅; J; J; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+1D646;1D646;1D646;004B;004B; # (𝙆; 𝙆; 𝙆; K; K; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+1D647;1D647;1D647;004C;004C; # (𝙇; 𝙇; 𝙇; L; L; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+1D648;1D648;1D648;004D;004D; # (𝙈; 𝙈; 𝙈; M; M; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+1D649;1D649;1D649;004E;004E; # (𝙉; 𝙉; 𝙉; N; N; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+1D64A;1D64A;1D64A;004F;004F; # (𝙊; 𝙊; 𝙊; O; O; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+1D64B;1D64B;1D64B;0050;0050; # (𝙋; 𝙋; 𝙋; P; P; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+1D64C;1D64C;1D64C;0051;0051; # (𝙌; 𝙌; 𝙌; Q; Q; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+1D64D;1D64D;1D64D;0052;0052; # (𝙍; 𝙍; 𝙍; R; R; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+1D64E;1D64E;1D64E;0053;0053; # (𝙎; 𝙎; 𝙎; S; S; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+1D64F;1D64F;1D64F;0054;0054; # (𝙏; 𝙏; 𝙏; T; T; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+1D650;1D650;1D650;0055;0055; # (𝙐; 𝙐; 𝙐; U; U; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+1D651;1D651;1D651;0056;0056; # (𝙑; 𝙑; 𝙑; V; V; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+1D652;1D652;1D652;0057;0057; # (𝙒; 𝙒; 𝙒; W; W; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+1D653;1D653;1D653;0058;0058; # (𝙓; 𝙓; 𝙓; X; X; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+1D654;1D654;1D654;0059;0059; # (𝙔; 𝙔; 𝙔; Y; Y; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+1D655;1D655;1D655;005A;005A; # (𝙕; 𝙕; 𝙕; Z; Z; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D656;1D656;1D656;0061;0061; # (𝙖; 𝙖; 𝙖; a; a; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+1D657;1D657;1D657;0062;0062; # (𝙗; 𝙗; 𝙗; b; b; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+1D658;1D658;1D658;0063;0063; # (𝙘; 𝙘; 𝙘; c; c; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+1D659;1D659;1D659;0064;0064; # (𝙙; 𝙙; 𝙙; d; d; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+1D65A;1D65A;1D65A;0065;0065; # (𝙚; 𝙚; 𝙚; e; e; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+1D65B;1D65B;1D65B;0066;0066; # (𝙛; 𝙛; 𝙛; f; f; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+1D65C;1D65C;1D65C;0067;0067; # (𝙜; 𝙜; 𝙜; g; g; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+1D65D;1D65D;1D65D;0068;0068; # (𝙝; 𝙝; 𝙝; h; h; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+1D65E;1D65E;1D65E;0069;0069; # (𝙞; 𝙞; 𝙞; i; i; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+1D65F;1D65F;1D65F;006A;006A; # (𝙟; 𝙟; 𝙟; j; j; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+1D660;1D660;1D660;006B;006B; # (𝙠; 𝙠; 𝙠; k; k; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+1D661;1D661;1D661;006C;006C; # (𝙡; 𝙡; 𝙡; l; l; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+1D662;1D662;1D662;006D;006D; # (𝙢; 𝙢; 𝙢; m; m; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+1D663;1D663;1D663;006E;006E; # (𝙣; 𝙣; 𝙣; n; n; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+1D664;1D664;1D664;006F;006F; # (𝙤; 𝙤; 𝙤; o; o; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+1D665;1D665;1D665;0070;0070; # (𝙥; 𝙥; 𝙥; p; p; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+1D666;1D666;1D666;0071;0071; # (𝙦; 𝙦; 𝙦; q; q; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+1D667;1D667;1D667;0072;0072; # (𝙧; 𝙧; 𝙧; r; r; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+1D668;1D668;1D668;0073;0073; # (𝙨; 𝙨; 𝙨; s; s; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+1D669;1D669;1D669;0074;0074; # (𝙩; 𝙩; 𝙩; t; t; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+1D66A;1D66A;1D66A;0075;0075; # (𝙪; 𝙪; 𝙪; u; u; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+1D66B;1D66B;1D66B;0076;0076; # (𝙫; 𝙫; 𝙫; v; v; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+1D66C;1D66C;1D66C;0077;0077; # (𝙬; 𝙬; 𝙬; w; w; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+1D66D;1D66D;1D66D;0078;0078; # (𝙭; 𝙭; 𝙭; x; x; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+1D66E;1D66E;1D66E;0079;0079; # (𝙮; 𝙮; 𝙮; y; y; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+1D66F;1D66F;1D66F;007A;007A; # (𝙯; 𝙯; 𝙯; z; z; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+1D670;1D670;1D670;0041;0041; # (𝙰; 𝙰; 𝙰; A; A; ) MATHEMATICAL MONOSPACE CAPITAL A
+1D671;1D671;1D671;0042;0042; # (𝙱; 𝙱; 𝙱; B; B; ) MATHEMATICAL MONOSPACE CAPITAL B
+1D672;1D672;1D672;0043;0043; # (𝙲; 𝙲; 𝙲; C; C; ) MATHEMATICAL MONOSPACE CAPITAL C
+1D673;1D673;1D673;0044;0044; # (𝙳; 𝙳; 𝙳; D; D; ) MATHEMATICAL MONOSPACE CAPITAL D
+1D674;1D674;1D674;0045;0045; # (𝙴; 𝙴; 𝙴; E; E; ) MATHEMATICAL MONOSPACE CAPITAL E
+1D675;1D675;1D675;0046;0046; # (𝙵; 𝙵; 𝙵; F; F; ) MATHEMATICAL MONOSPACE CAPITAL F
+1D676;1D676;1D676;0047;0047; # (𝙶; 𝙶; 𝙶; G; G; ) MATHEMATICAL MONOSPACE CAPITAL G
+1D677;1D677;1D677;0048;0048; # (𝙷; 𝙷; 𝙷; H; H; ) MATHEMATICAL MONOSPACE CAPITAL H
+1D678;1D678;1D678;0049;0049; # (𝙸; 𝙸; 𝙸; I; I; ) MATHEMATICAL MONOSPACE CAPITAL I
+1D679;1D679;1D679;004A;004A; # (𝙹; 𝙹; 𝙹; J; J; ) MATHEMATICAL MONOSPACE CAPITAL J
+1D67A;1D67A;1D67A;004B;004B; # (𝙺; 𝙺; 𝙺; K; K; ) MATHEMATICAL MONOSPACE CAPITAL K
+1D67B;1D67B;1D67B;004C;004C; # (𝙻; 𝙻; 𝙻; L; L; ) MATHEMATICAL MONOSPACE CAPITAL L
+1D67C;1D67C;1D67C;004D;004D; # (𝙼; 𝙼; 𝙼; M; M; ) MATHEMATICAL MONOSPACE CAPITAL M
+1D67D;1D67D;1D67D;004E;004E; # (𝙽; 𝙽; 𝙽; N; N; ) MATHEMATICAL MONOSPACE CAPITAL N
+1D67E;1D67E;1D67E;004F;004F; # (𝙾; 𝙾; 𝙾; O; O; ) MATHEMATICAL MONOSPACE CAPITAL O
+1D67F;1D67F;1D67F;0050;0050; # (𝙿; 𝙿; 𝙿; P; P; ) MATHEMATICAL MONOSPACE CAPITAL P
+1D680;1D680;1D680;0051;0051; # (𝚀; 𝚀; 𝚀; Q; Q; ) MATHEMATICAL MONOSPACE CAPITAL Q
+1D681;1D681;1D681;0052;0052; # (𝚁; 𝚁; 𝚁; R; R; ) MATHEMATICAL MONOSPACE CAPITAL R
+1D682;1D682;1D682;0053;0053; # (𝚂; 𝚂; 𝚂; S; S; ) MATHEMATICAL MONOSPACE CAPITAL S
+1D683;1D683;1D683;0054;0054; # (𝚃; 𝚃; 𝚃; T; T; ) MATHEMATICAL MONOSPACE CAPITAL T
+1D684;1D684;1D684;0055;0055; # (𝚄; 𝚄; 𝚄; U; U; ) MATHEMATICAL MONOSPACE CAPITAL U
+1D685;1D685;1D685;0056;0056; # (𝚅; 𝚅; 𝚅; V; V; ) MATHEMATICAL MONOSPACE CAPITAL V
+1D686;1D686;1D686;0057;0057; # (𝚆; 𝚆; 𝚆; W; W; ) MATHEMATICAL MONOSPACE CAPITAL W
+1D687;1D687;1D687;0058;0058; # (𝚇; 𝚇; 𝚇; X; X; ) MATHEMATICAL MONOSPACE CAPITAL X
+1D688;1D688;1D688;0059;0059; # (𝚈; 𝚈; 𝚈; Y; Y; ) MATHEMATICAL MONOSPACE CAPITAL Y
+1D689;1D689;1D689;005A;005A; # (𝚉; 𝚉; 𝚉; Z; Z; ) MATHEMATICAL MONOSPACE CAPITAL Z
+1D68A;1D68A;1D68A;0061;0061; # (𝚊; 𝚊; 𝚊; a; a; ) MATHEMATICAL MONOSPACE SMALL A
+1D68B;1D68B;1D68B;0062;0062; # (𝚋; 𝚋; 𝚋; b; b; ) MATHEMATICAL MONOSPACE SMALL B
+1D68C;1D68C;1D68C;0063;0063; # (𝚌; 𝚌; 𝚌; c; c; ) MATHEMATICAL MONOSPACE SMALL C
+1D68D;1D68D;1D68D;0064;0064; # (𝚍; 𝚍; 𝚍; d; d; ) MATHEMATICAL MONOSPACE SMALL D
+1D68E;1D68E;1D68E;0065;0065; # (𝚎; 𝚎; 𝚎; e; e; ) MATHEMATICAL MONOSPACE SMALL E
+1D68F;1D68F;1D68F;0066;0066; # (𝚏; 𝚏; 𝚏; f; f; ) MATHEMATICAL MONOSPACE SMALL F
+1D690;1D690;1D690;0067;0067; # (𝚐; 𝚐; 𝚐; g; g; ) MATHEMATICAL MONOSPACE SMALL G
+1D691;1D691;1D691;0068;0068; # (𝚑; 𝚑; 𝚑; h; h; ) MATHEMATICAL MONOSPACE SMALL H
+1D692;1D692;1D692;0069;0069; # (𝚒; 𝚒; 𝚒; i; i; ) MATHEMATICAL MONOSPACE SMALL I
+1D693;1D693;1D693;006A;006A; # (𝚓; 𝚓; 𝚓; j; j; ) MATHEMATICAL MONOSPACE SMALL J
+1D694;1D694;1D694;006B;006B; # (𝚔; 𝚔; 𝚔; k; k; ) MATHEMATICAL MONOSPACE SMALL K
+1D695;1D695;1D695;006C;006C; # (𝚕; 𝚕; 𝚕; l; l; ) MATHEMATICAL MONOSPACE SMALL L
+1D696;1D696;1D696;006D;006D; # (𝚖; 𝚖; 𝚖; m; m; ) MATHEMATICAL MONOSPACE SMALL M
+1D697;1D697;1D697;006E;006E; # (𝚗; 𝚗; 𝚗; n; n; ) MATHEMATICAL MONOSPACE SMALL N
+1D698;1D698;1D698;006F;006F; # (𝚘; 𝚘; 𝚘; o; o; ) MATHEMATICAL MONOSPACE SMALL O
+1D699;1D699;1D699;0070;0070; # (𝚙; 𝚙; 𝚙; p; p; ) MATHEMATICAL MONOSPACE SMALL P
+1D69A;1D69A;1D69A;0071;0071; # (𝚚; 𝚚; 𝚚; q; q; ) MATHEMATICAL MONOSPACE SMALL Q
+1D69B;1D69B;1D69B;0072;0072; # (𝚛; 𝚛; 𝚛; r; r; ) MATHEMATICAL MONOSPACE SMALL R
+1D69C;1D69C;1D69C;0073;0073; # (𝚜; 𝚜; 𝚜; s; s; ) MATHEMATICAL MONOSPACE SMALL S
+1D69D;1D69D;1D69D;0074;0074; # (𝚝; 𝚝; 𝚝; t; t; ) MATHEMATICAL MONOSPACE SMALL T
+1D69E;1D69E;1D69E;0075;0075; # (𝚞; 𝚞; 𝚞; u; u; ) MATHEMATICAL MONOSPACE SMALL U
+1D69F;1D69F;1D69F;0076;0076; # (𝚟; 𝚟; 𝚟; v; v; ) MATHEMATICAL MONOSPACE SMALL V
+1D6A0;1D6A0;1D6A0;0077;0077; # (𝚠; 𝚠; 𝚠; w; w; ) MATHEMATICAL MONOSPACE SMALL W
+1D6A1;1D6A1;1D6A1;0078;0078; # (𝚡; 𝚡; 𝚡; x; x; ) MATHEMATICAL MONOSPACE SMALL X
+1D6A2;1D6A2;1D6A2;0079;0079; # (𝚢; 𝚢; 𝚢; y; y; ) MATHEMATICAL MONOSPACE SMALL Y
+1D6A3;1D6A3;1D6A3;007A;007A; # (𝚣; 𝚣; 𝚣; z; z; ) MATHEMATICAL MONOSPACE SMALL Z
+1D6A4;1D6A4;1D6A4;0131;0131; # (𝚤; 𝚤; 𝚤; ı; ı; ) MATHEMATICAL ITALIC SMALL DOTLESS I
+1D6A5;1D6A5;1D6A5;0237;0237; # (𝚥; 𝚥; 𝚥; ȷ; ȷ; ) MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8;1D6A8;1D6A8;0391;0391; # (𝚨; 𝚨; 𝚨; Α; Α; ) MATHEMATICAL BOLD CAPITAL ALPHA
+1D6A9;1D6A9;1D6A9;0392;0392; # (𝚩; 𝚩; 𝚩; Β; Β; ) MATHEMATICAL BOLD CAPITAL BETA
+1D6AA;1D6AA;1D6AA;0393;0393; # (𝚪; 𝚪; 𝚪; Γ; Γ; ) MATHEMATICAL BOLD CAPITAL GAMMA
+1D6AB;1D6AB;1D6AB;0394;0394; # (𝚫; 𝚫; 𝚫; Δ; Δ; ) MATHEMATICAL BOLD CAPITAL DELTA
+1D6AC;1D6AC;1D6AC;0395;0395; # (𝚬; 𝚬; 𝚬; Ε; Ε; ) MATHEMATICAL BOLD CAPITAL EPSILON
+1D6AD;1D6AD;1D6AD;0396;0396; # (𝚭; 𝚭; 𝚭; Ζ; Ζ; ) MATHEMATICAL BOLD CAPITAL ZETA
+1D6AE;1D6AE;1D6AE;0397;0397; # (𝚮; 𝚮; 𝚮; Η; Η; ) MATHEMATICAL BOLD CAPITAL ETA
+1D6AF;1D6AF;1D6AF;0398;0398; # (𝚯; 𝚯; 𝚯; Θ; Θ; ) MATHEMATICAL BOLD CAPITAL THETA
+1D6B0;1D6B0;1D6B0;0399;0399; # (𝚰; 𝚰; 𝚰; Ι; Ι; ) MATHEMATICAL BOLD CAPITAL IOTA
+1D6B1;1D6B1;1D6B1;039A;039A; # (𝚱; 𝚱; 𝚱; Κ; Κ; ) MATHEMATICAL BOLD CAPITAL KAPPA
+1D6B2;1D6B2;1D6B2;039B;039B; # (𝚲; 𝚲; 𝚲; Λ; Λ; ) MATHEMATICAL BOLD CAPITAL LAMDA
+1D6B3;1D6B3;1D6B3;039C;039C; # (𝚳; 𝚳; 𝚳; Μ; Μ; ) MATHEMATICAL BOLD CAPITAL MU
+1D6B4;1D6B4;1D6B4;039D;039D; # (𝚴; 𝚴; 𝚴; Ν; Ν; ) MATHEMATICAL BOLD CAPITAL NU
+1D6B5;1D6B5;1D6B5;039E;039E; # (𝚵; 𝚵; 𝚵; Ξ; Ξ; ) MATHEMATICAL BOLD CAPITAL XI
+1D6B6;1D6B6;1D6B6;039F;039F; # (𝚶; 𝚶; 𝚶; Ο; Ο; ) MATHEMATICAL BOLD CAPITAL OMICRON
+1D6B7;1D6B7;1D6B7;03A0;03A0; # (𝚷; 𝚷; 𝚷; Π; Π; ) MATHEMATICAL BOLD CAPITAL PI
+1D6B8;1D6B8;1D6B8;03A1;03A1; # (𝚸; 𝚸; 𝚸; Ρ; Ρ; ) MATHEMATICAL BOLD CAPITAL RHO
+1D6B9;1D6B9;1D6B9;0398;0398; # (𝚹; 𝚹; 𝚹; Θ; Θ; ) MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+1D6BA;1D6BA;1D6BA;03A3;03A3; # (𝚺; 𝚺; 𝚺; Σ; Σ; ) MATHEMATICAL BOLD CAPITAL SIGMA
+1D6BB;1D6BB;1D6BB;03A4;03A4; # (𝚻; 𝚻; 𝚻; Τ; Τ; ) MATHEMATICAL BOLD CAPITAL TAU
+1D6BC;1D6BC;1D6BC;03A5;03A5; # (𝚼; 𝚼; 𝚼; Υ; Υ; ) MATHEMATICAL BOLD CAPITAL UPSILON
+1D6BD;1D6BD;1D6BD;03A6;03A6; # (𝚽; 𝚽; 𝚽; Φ; Φ; ) MATHEMATICAL BOLD CAPITAL PHI
+1D6BE;1D6BE;1D6BE;03A7;03A7; # (𝚾; 𝚾; 𝚾; Χ; Χ; ) MATHEMATICAL BOLD CAPITAL CHI
+1D6BF;1D6BF;1D6BF;03A8;03A8; # (𝚿; 𝚿; 𝚿; Ψ; Ψ; ) MATHEMATICAL BOLD CAPITAL PSI
+1D6C0;1D6C0;1D6C0;03A9;03A9; # (𝛀; 𝛀; 𝛀; Ω; Ω; ) MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1;1D6C1;1D6C1;2207;2207; # (𝛁; 𝛁; 𝛁; ∇; ∇; ) MATHEMATICAL BOLD NABLA
+1D6C2;1D6C2;1D6C2;03B1;03B1; # (𝛂; 𝛂; 𝛂; α; α; ) MATHEMATICAL BOLD SMALL ALPHA
+1D6C3;1D6C3;1D6C3;03B2;03B2; # (𝛃; 𝛃; 𝛃; β; β; ) MATHEMATICAL BOLD SMALL BETA
+1D6C4;1D6C4;1D6C4;03B3;03B3; # (𝛄; 𝛄; 𝛄; γ; γ; ) MATHEMATICAL BOLD SMALL GAMMA
+1D6C5;1D6C5;1D6C5;03B4;03B4; # (𝛅; 𝛅; 𝛅; δ; δ; ) MATHEMATICAL BOLD SMALL DELTA
+1D6C6;1D6C6;1D6C6;03B5;03B5; # (𝛆; 𝛆; 𝛆; ε; ε; ) MATHEMATICAL BOLD SMALL EPSILON
+1D6C7;1D6C7;1D6C7;03B6;03B6; # (𝛇; 𝛇; 𝛇; ζ; ζ; ) MATHEMATICAL BOLD SMALL ZETA
+1D6C8;1D6C8;1D6C8;03B7;03B7; # (𝛈; 𝛈; 𝛈; η; η; ) MATHEMATICAL BOLD SMALL ETA
+1D6C9;1D6C9;1D6C9;03B8;03B8; # (𝛉; 𝛉; 𝛉; θ; θ; ) MATHEMATICAL BOLD SMALL THETA
+1D6CA;1D6CA;1D6CA;03B9;03B9; # (𝛊; 𝛊; 𝛊; ι; ι; ) MATHEMATICAL BOLD SMALL IOTA
+1D6CB;1D6CB;1D6CB;03BA;03BA; # (𝛋; 𝛋; 𝛋; κ; κ; ) MATHEMATICAL BOLD SMALL KAPPA
+1D6CC;1D6CC;1D6CC;03BB;03BB; # (𝛌; 𝛌; 𝛌; λ; λ; ) MATHEMATICAL BOLD SMALL LAMDA
+1D6CD;1D6CD;1D6CD;03BC;03BC; # (𝛍; 𝛍; 𝛍; μ; μ; ) MATHEMATICAL BOLD SMALL MU
+1D6CE;1D6CE;1D6CE;03BD;03BD; # (𝛎; 𝛎; 𝛎; ν; ν; ) MATHEMATICAL BOLD SMALL NU
+1D6CF;1D6CF;1D6CF;03BE;03BE; # (𝛏; 𝛏; 𝛏; ξ; ξ; ) MATHEMATICAL BOLD SMALL XI
+1D6D0;1D6D0;1D6D0;03BF;03BF; # (𝛐; 𝛐; 𝛐; ο; ο; ) MATHEMATICAL BOLD SMALL OMICRON
+1D6D1;1D6D1;1D6D1;03C0;03C0; # (𝛑; 𝛑; 𝛑; π; π; ) MATHEMATICAL BOLD SMALL PI
+1D6D2;1D6D2;1D6D2;03C1;03C1; # (𝛒; 𝛒; 𝛒; ρ; ρ; ) MATHEMATICAL BOLD SMALL RHO
+1D6D3;1D6D3;1D6D3;03C2;03C2; # (𝛓; 𝛓; 𝛓; ς; ς; ) MATHEMATICAL BOLD SMALL FINAL SIGMA
+1D6D4;1D6D4;1D6D4;03C3;03C3; # (𝛔; 𝛔; 𝛔; σ; σ; ) MATHEMATICAL BOLD SMALL SIGMA
+1D6D5;1D6D5;1D6D5;03C4;03C4; # (𝛕; 𝛕; 𝛕; τ; τ; ) MATHEMATICAL BOLD SMALL TAU
+1D6D6;1D6D6;1D6D6;03C5;03C5; # (𝛖; 𝛖; 𝛖; υ; υ; ) MATHEMATICAL BOLD SMALL UPSILON
+1D6D7;1D6D7;1D6D7;03C6;03C6; # (𝛗; 𝛗; 𝛗; φ; φ; ) MATHEMATICAL BOLD SMALL PHI
+1D6D8;1D6D8;1D6D8;03C7;03C7; # (𝛘; 𝛘; 𝛘; χ; χ; ) MATHEMATICAL BOLD SMALL CHI
+1D6D9;1D6D9;1D6D9;03C8;03C8; # (𝛙; 𝛙; 𝛙; ψ; ψ; ) MATHEMATICAL BOLD SMALL PSI
+1D6DA;1D6DA;1D6DA;03C9;03C9; # (𝛚; 𝛚; 𝛚; ω; ω; ) MATHEMATICAL BOLD SMALL OMEGA
+1D6DB;1D6DB;1D6DB;2202;2202; # (𝛛; 𝛛; 𝛛; ∂; ∂; ) MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC;1D6DC;1D6DC;03B5;03B5; # (𝛜; 𝛜; 𝛜; ε; ε; ) MATHEMATICAL BOLD EPSILON SYMBOL
+1D6DD;1D6DD;1D6DD;03B8;03B8; # (𝛝; 𝛝; 𝛝; θ; θ; ) MATHEMATICAL BOLD THETA SYMBOL
+1D6DE;1D6DE;1D6DE;03BA;03BA; # (𝛞; 𝛞; 𝛞; κ; κ; ) MATHEMATICAL BOLD KAPPA SYMBOL
+1D6DF;1D6DF;1D6DF;03C6;03C6; # (𝛟; 𝛟; 𝛟; φ; φ; ) MATHEMATICAL BOLD PHI SYMBOL
+1D6E0;1D6E0;1D6E0;03C1;03C1; # (𝛠; 𝛠; 𝛠; ρ; ρ; ) MATHEMATICAL BOLD RHO SYMBOL
+1D6E1;1D6E1;1D6E1;03C0;03C0; # (𝛡; 𝛡; 𝛡; π; π; ) MATHEMATICAL BOLD PI SYMBOL
+1D6E2;1D6E2;1D6E2;0391;0391; # (𝛢; 𝛢; 𝛢; Α; Α; ) MATHEMATICAL ITALIC CAPITAL ALPHA
+1D6E3;1D6E3;1D6E3;0392;0392; # (𝛣; 𝛣; 𝛣; Β; Β; ) MATHEMATICAL ITALIC CAPITAL BETA
+1D6E4;1D6E4;1D6E4;0393;0393; # (𝛤; 𝛤; 𝛤; Γ; Γ; ) MATHEMATICAL ITALIC CAPITAL GAMMA
+1D6E5;1D6E5;1D6E5;0394;0394; # (𝛥; 𝛥; 𝛥; Δ; Δ; ) MATHEMATICAL ITALIC CAPITAL DELTA
+1D6E6;1D6E6;1D6E6;0395;0395; # (𝛦; 𝛦; 𝛦; Ε; Ε; ) MATHEMATICAL ITALIC CAPITAL EPSILON
+1D6E7;1D6E7;1D6E7;0396;0396; # (𝛧; 𝛧; 𝛧; Ζ; Ζ; ) MATHEMATICAL ITALIC CAPITAL ZETA
+1D6E8;1D6E8;1D6E8;0397;0397; # (𝛨; 𝛨; 𝛨; Η; Η; ) MATHEMATICAL ITALIC CAPITAL ETA
+1D6E9;1D6E9;1D6E9;0398;0398; # (𝛩; 𝛩; 𝛩; Θ; Θ; ) MATHEMATICAL ITALIC CAPITAL THETA
+1D6EA;1D6EA;1D6EA;0399;0399; # (𝛪; 𝛪; 𝛪; Ι; Ι; ) MATHEMATICAL ITALIC CAPITAL IOTA
+1D6EB;1D6EB;1D6EB;039A;039A; # (𝛫; 𝛫; 𝛫; Κ; Κ; ) MATHEMATICAL ITALIC CAPITAL KAPPA
+1D6EC;1D6EC;1D6EC;039B;039B; # (𝛬; 𝛬; 𝛬; Λ; Λ; ) MATHEMATICAL ITALIC CAPITAL LAMDA
+1D6ED;1D6ED;1D6ED;039C;039C; # (𝛭; 𝛭; 𝛭; Μ; Μ; ) MATHEMATICAL ITALIC CAPITAL MU
+1D6EE;1D6EE;1D6EE;039D;039D; # (𝛮; 𝛮; 𝛮; Ν; Ν; ) MATHEMATICAL ITALIC CAPITAL NU
+1D6EF;1D6EF;1D6EF;039E;039E; # (𝛯; 𝛯; 𝛯; Ξ; Ξ; ) MATHEMATICAL ITALIC CAPITAL XI
+1D6F0;1D6F0;1D6F0;039F;039F; # (𝛰; 𝛰; 𝛰; Ο; Ο; ) MATHEMATICAL ITALIC CAPITAL OMICRON
+1D6F1;1D6F1;1D6F1;03A0;03A0; # (𝛱; 𝛱; 𝛱; Π; Π; ) MATHEMATICAL ITALIC CAPITAL PI
+1D6F2;1D6F2;1D6F2;03A1;03A1; # (𝛲; 𝛲; 𝛲; Ρ; Ρ; ) MATHEMATICAL ITALIC CAPITAL RHO
+1D6F3;1D6F3;1D6F3;0398;0398; # (𝛳; 𝛳; 𝛳; Θ; Θ; ) MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+1D6F4;1D6F4;1D6F4;03A3;03A3; # (𝛴; 𝛴; 𝛴; Σ; Σ; ) MATHEMATICAL ITALIC CAPITAL SIGMA
+1D6F5;1D6F5;1D6F5;03A4;03A4; # (𝛵; 𝛵; 𝛵; Τ; Τ; ) MATHEMATICAL ITALIC CAPITAL TAU
+1D6F6;1D6F6;1D6F6;03A5;03A5; # (𝛶; 𝛶; 𝛶; Υ; Υ; ) MATHEMATICAL ITALIC CAPITAL UPSILON
+1D6F7;1D6F7;1D6F7;03A6;03A6; # (𝛷; 𝛷; 𝛷; Φ; Φ; ) MATHEMATICAL ITALIC CAPITAL PHI
+1D6F8;1D6F8;1D6F8;03A7;03A7; # (𝛸; 𝛸; 𝛸; Χ; Χ; ) MATHEMATICAL ITALIC CAPITAL CHI
+1D6F9;1D6F9;1D6F9;03A8;03A8; # (𝛹; 𝛹; 𝛹; Ψ; Ψ; ) MATHEMATICAL ITALIC CAPITAL PSI
+1D6FA;1D6FA;1D6FA;03A9;03A9; # (𝛺; 𝛺; 𝛺; Ω; Ω; ) MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB;1D6FB;1D6FB;2207;2207; # (𝛻; 𝛻; 𝛻; ∇; ∇; ) MATHEMATICAL ITALIC NABLA
+1D6FC;1D6FC;1D6FC;03B1;03B1; # (𝛼; 𝛼; 𝛼; α; α; ) MATHEMATICAL ITALIC SMALL ALPHA
+1D6FD;1D6FD;1D6FD;03B2;03B2; # (𝛽; 𝛽; 𝛽; β; β; ) MATHEMATICAL ITALIC SMALL BETA
+1D6FE;1D6FE;1D6FE;03B3;03B3; # (𝛾; 𝛾; 𝛾; γ; γ; ) MATHEMATICAL ITALIC SMALL GAMMA
+1D6FF;1D6FF;1D6FF;03B4;03B4; # (𝛿; 𝛿; 𝛿; δ; δ; ) MATHEMATICAL ITALIC SMALL DELTA
+1D700;1D700;1D700;03B5;03B5; # (𝜀; 𝜀; 𝜀; ε; ε; ) MATHEMATICAL ITALIC SMALL EPSILON
+1D701;1D701;1D701;03B6;03B6; # (𝜁; 𝜁; 𝜁; ζ; ζ; ) MATHEMATICAL ITALIC SMALL ZETA
+1D702;1D702;1D702;03B7;03B7; # (𝜂; 𝜂; 𝜂; η; η; ) MATHEMATICAL ITALIC SMALL ETA
+1D703;1D703;1D703;03B8;03B8; # (𝜃; 𝜃; 𝜃; θ; θ; ) MATHEMATICAL ITALIC SMALL THETA
+1D704;1D704;1D704;03B9;03B9; # (𝜄; 𝜄; 𝜄; ι; ι; ) MATHEMATICAL ITALIC SMALL IOTA
+1D705;1D705;1D705;03BA;03BA; # (𝜅; 𝜅; 𝜅; κ; κ; ) MATHEMATICAL ITALIC SMALL KAPPA
+1D706;1D706;1D706;03BB;03BB; # (𝜆; 𝜆; 𝜆; λ; λ; ) MATHEMATICAL ITALIC SMALL LAMDA
+1D707;1D707;1D707;03BC;03BC; # (𝜇; 𝜇; 𝜇; μ; μ; ) MATHEMATICAL ITALIC SMALL MU
+1D708;1D708;1D708;03BD;03BD; # (𝜈; 𝜈; 𝜈; ν; ν; ) MATHEMATICAL ITALIC SMALL NU
+1D709;1D709;1D709;03BE;03BE; # (𝜉; 𝜉; 𝜉; ξ; ξ; ) MATHEMATICAL ITALIC SMALL XI
+1D70A;1D70A;1D70A;03BF;03BF; # (𝜊; 𝜊; 𝜊; ο; ο; ) MATHEMATICAL ITALIC SMALL OMICRON
+1D70B;1D70B;1D70B;03C0;03C0; # (𝜋; 𝜋; 𝜋; π; π; ) MATHEMATICAL ITALIC SMALL PI
+1D70C;1D70C;1D70C;03C1;03C1; # (𝜌; 𝜌; 𝜌; ρ; ρ; ) MATHEMATICAL ITALIC SMALL RHO
+1D70D;1D70D;1D70D;03C2;03C2; # (𝜍; 𝜍; 𝜍; ς; ς; ) MATHEMATICAL ITALIC SMALL FINAL SIGMA
+1D70E;1D70E;1D70E;03C3;03C3; # (𝜎; 𝜎; 𝜎; σ; σ; ) MATHEMATICAL ITALIC SMALL SIGMA
+1D70F;1D70F;1D70F;03C4;03C4; # (𝜏; 𝜏; 𝜏; τ; τ; ) MATHEMATICAL ITALIC SMALL TAU
+1D710;1D710;1D710;03C5;03C5; # (𝜐; 𝜐; 𝜐; υ; υ; ) MATHEMATICAL ITALIC SMALL UPSILON
+1D711;1D711;1D711;03C6;03C6; # (𝜑; 𝜑; 𝜑; φ; φ; ) MATHEMATICAL ITALIC SMALL PHI
+1D712;1D712;1D712;03C7;03C7; # (𝜒; 𝜒; 𝜒; χ; χ; ) MATHEMATICAL ITALIC SMALL CHI
+1D713;1D713;1D713;03C8;03C8; # (𝜓; 𝜓; 𝜓; ψ; ψ; ) MATHEMATICAL ITALIC SMALL PSI
+1D714;1D714;1D714;03C9;03C9; # (𝜔; 𝜔; 𝜔; ω; ω; ) MATHEMATICAL ITALIC SMALL OMEGA
+1D715;1D715;1D715;2202;2202; # (𝜕; 𝜕; 𝜕; ∂; ∂; ) MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716;1D716;1D716;03B5;03B5; # (𝜖; 𝜖; 𝜖; ε; ε; ) MATHEMATICAL ITALIC EPSILON SYMBOL
+1D717;1D717;1D717;03B8;03B8; # (𝜗; 𝜗; 𝜗; θ; θ; ) MATHEMATICAL ITALIC THETA SYMBOL
+1D718;1D718;1D718;03BA;03BA; # (𝜘; 𝜘; 𝜘; κ; κ; ) MATHEMATICAL ITALIC KAPPA SYMBOL
+1D719;1D719;1D719;03C6;03C6; # (𝜙; 𝜙; 𝜙; φ; φ; ) MATHEMATICAL ITALIC PHI SYMBOL
+1D71A;1D71A;1D71A;03C1;03C1; # (𝜚; 𝜚; 𝜚; ρ; ρ; ) MATHEMATICAL ITALIC RHO SYMBOL
+1D71B;1D71B;1D71B;03C0;03C0; # (𝜛; 𝜛; 𝜛; π; π; ) MATHEMATICAL ITALIC PI SYMBOL
+1D71C;1D71C;1D71C;0391;0391; # (𝜜; 𝜜; 𝜜; Α; Α; ) MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+1D71D;1D71D;1D71D;0392;0392; # (𝜝; 𝜝; 𝜝; Β; Β; ) MATHEMATICAL BOLD ITALIC CAPITAL BETA
+1D71E;1D71E;1D71E;0393;0393; # (𝜞; 𝜞; 𝜞; Γ; Γ; ) MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+1D71F;1D71F;1D71F;0394;0394; # (𝜟; 𝜟; 𝜟; Δ; Δ; ) MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+1D720;1D720;1D720;0395;0395; # (𝜠; 𝜠; 𝜠; Ε; Ε; ) MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+1D721;1D721;1D721;0396;0396; # (𝜡; 𝜡; 𝜡; Ζ; Ζ; ) MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+1D722;1D722;1D722;0397;0397; # (𝜢; 𝜢; 𝜢; Η; Η; ) MATHEMATICAL BOLD ITALIC CAPITAL ETA
+1D723;1D723;1D723;0398;0398; # (𝜣; 𝜣; 𝜣; Θ; Θ; ) MATHEMATICAL BOLD ITALIC CAPITAL THETA
+1D724;1D724;1D724;0399;0399; # (𝜤; 𝜤; 𝜤; Ι; Ι; ) MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+1D725;1D725;1D725;039A;039A; # (𝜥; 𝜥; 𝜥; Κ; Κ; ) MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+1D726;1D726;1D726;039B;039B; # (𝜦; 𝜦; 𝜦; Λ; Λ; ) MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+1D727;1D727;1D727;039C;039C; # (𝜧; 𝜧; 𝜧; Μ; Μ; ) MATHEMATICAL BOLD ITALIC CAPITAL MU
+1D728;1D728;1D728;039D;039D; # (𝜨; 𝜨; 𝜨; Ν; Ν; ) MATHEMATICAL BOLD ITALIC CAPITAL NU
+1D729;1D729;1D729;039E;039E; # (𝜩; 𝜩; 𝜩; Ξ; Ξ; ) MATHEMATICAL BOLD ITALIC CAPITAL XI
+1D72A;1D72A;1D72A;039F;039F; # (𝜪; 𝜪; 𝜪; Ο; Ο; ) MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+1D72B;1D72B;1D72B;03A0;03A0; # (𝜫; 𝜫; 𝜫; Π; Π; ) MATHEMATICAL BOLD ITALIC CAPITAL PI
+1D72C;1D72C;1D72C;03A1;03A1; # (𝜬; 𝜬; 𝜬; Ρ; Ρ; ) MATHEMATICAL BOLD ITALIC CAPITAL RHO
+1D72D;1D72D;1D72D;0398;0398; # (𝜭; 𝜭; 𝜭; Θ; Θ; ) MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+1D72E;1D72E;1D72E;03A3;03A3; # (𝜮; 𝜮; 𝜮; Σ; Σ; ) MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+1D72F;1D72F;1D72F;03A4;03A4; # (𝜯; 𝜯; 𝜯; Τ; Τ; ) MATHEMATICAL BOLD ITALIC CAPITAL TAU
+1D730;1D730;1D730;03A5;03A5; # (𝜰; 𝜰; 𝜰; Υ; Υ; ) MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+1D731;1D731;1D731;03A6;03A6; # (𝜱; 𝜱; 𝜱; Φ; Φ; ) MATHEMATICAL BOLD ITALIC CAPITAL PHI
+1D732;1D732;1D732;03A7;03A7; # (𝜲; 𝜲; 𝜲; Χ; Χ; ) MATHEMATICAL BOLD ITALIC CAPITAL CHI
+1D733;1D733;1D733;03A8;03A8; # (𝜳; 𝜳; 𝜳; Ψ; Ψ; ) MATHEMATICAL BOLD ITALIC CAPITAL PSI
+1D734;1D734;1D734;03A9;03A9; # (𝜴; 𝜴; 𝜴; Ω; Ω; ) MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735;1D735;1D735;2207;2207; # (𝜵; 𝜵; 𝜵; ∇; ∇; ) MATHEMATICAL BOLD ITALIC NABLA
+1D736;1D736;1D736;03B1;03B1; # (𝜶; 𝜶; 𝜶; α; α; ) MATHEMATICAL BOLD ITALIC SMALL ALPHA
+1D737;1D737;1D737;03B2;03B2; # (𝜷; 𝜷; 𝜷; β; β; ) MATHEMATICAL BOLD ITALIC SMALL BETA
+1D738;1D738;1D738;03B3;03B3; # (𝜸; 𝜸; 𝜸; γ; γ; ) MATHEMATICAL BOLD ITALIC SMALL GAMMA
+1D739;1D739;1D739;03B4;03B4; # (𝜹; 𝜹; 𝜹; δ; δ; ) MATHEMATICAL BOLD ITALIC SMALL DELTA
+1D73A;1D73A;1D73A;03B5;03B5; # (𝜺; 𝜺; 𝜺; ε; ε; ) MATHEMATICAL BOLD ITALIC SMALL EPSILON
+1D73B;1D73B;1D73B;03B6;03B6; # (𝜻; 𝜻; 𝜻; ζ; ζ; ) MATHEMATICAL BOLD ITALIC SMALL ZETA
+1D73C;1D73C;1D73C;03B7;03B7; # (𝜼; 𝜼; 𝜼; η; η; ) MATHEMATICAL BOLD ITALIC SMALL ETA
+1D73D;1D73D;1D73D;03B8;03B8; # (𝜽; 𝜽; 𝜽; θ; θ; ) MATHEMATICAL BOLD ITALIC SMALL THETA
+1D73E;1D73E;1D73E;03B9;03B9; # (𝜾; 𝜾; 𝜾; ι; ι; ) MATHEMATICAL BOLD ITALIC SMALL IOTA
+1D73F;1D73F;1D73F;03BA;03BA; # (𝜿; 𝜿; 𝜿; κ; κ; ) MATHEMATICAL BOLD ITALIC SMALL KAPPA
+1D740;1D740;1D740;03BB;03BB; # (𝝀; 𝝀; 𝝀; λ; λ; ) MATHEMATICAL BOLD ITALIC SMALL LAMDA
+1D741;1D741;1D741;03BC;03BC; # (𝝁; 𝝁; 𝝁; μ; μ; ) MATHEMATICAL BOLD ITALIC SMALL MU
+1D742;1D742;1D742;03BD;03BD; # (𝝂; 𝝂; 𝝂; ν; ν; ) MATHEMATICAL BOLD ITALIC SMALL NU
+1D743;1D743;1D743;03BE;03BE; # (𝝃; 𝝃; 𝝃; ξ; ξ; ) MATHEMATICAL BOLD ITALIC SMALL XI
+1D744;1D744;1D744;03BF;03BF; # (𝝄; 𝝄; 𝝄; ο; ο; ) MATHEMATICAL BOLD ITALIC SMALL OMICRON
+1D745;1D745;1D745;03C0;03C0; # (𝝅; 𝝅; 𝝅; π; π; ) MATHEMATICAL BOLD ITALIC SMALL PI
+1D746;1D746;1D746;03C1;03C1; # (𝝆; 𝝆; 𝝆; ρ; ρ; ) MATHEMATICAL BOLD ITALIC SMALL RHO
+1D747;1D747;1D747;03C2;03C2; # (𝝇; 𝝇; 𝝇; ς; ς; ) MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
+1D748;1D748;1D748;03C3;03C3; # (𝝈; 𝝈; 𝝈; σ; σ; ) MATHEMATICAL BOLD ITALIC SMALL SIGMA
+1D749;1D749;1D749;03C4;03C4; # (𝝉; 𝝉; 𝝉; τ; τ; ) MATHEMATICAL BOLD ITALIC SMALL TAU
+1D74A;1D74A;1D74A;03C5;03C5; # (𝝊; 𝝊; 𝝊; υ; υ; ) MATHEMATICAL BOLD ITALIC SMALL UPSILON
+1D74B;1D74B;1D74B;03C6;03C6; # (𝝋; 𝝋; 𝝋; φ; φ; ) MATHEMATICAL BOLD ITALIC SMALL PHI
+1D74C;1D74C;1D74C;03C7;03C7; # (𝝌; 𝝌; 𝝌; χ; χ; ) MATHEMATICAL BOLD ITALIC SMALL CHI
+1D74D;1D74D;1D74D;03C8;03C8; # (𝝍; 𝝍; 𝝍; ψ; ψ; ) MATHEMATICAL BOLD ITALIC SMALL PSI
+1D74E;1D74E;1D74E;03C9;03C9; # (𝝎; 𝝎; 𝝎; ω; ω; ) MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F;1D74F;1D74F;2202;2202; # (𝝏; 𝝏; 𝝏; ∂; ∂; ) MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750;1D750;1D750;03B5;03B5; # (𝝐; 𝝐; 𝝐; ε; ε; ) MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+1D751;1D751;1D751;03B8;03B8; # (𝝑; 𝝑; 𝝑; θ; θ; ) MATHEMATICAL BOLD ITALIC THETA SYMBOL
+1D752;1D752;1D752;03BA;03BA; # (𝝒; 𝝒; 𝝒; κ; κ; ) MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+1D753;1D753;1D753;03C6;03C6; # (𝝓; 𝝓; 𝝓; φ; φ; ) MATHEMATICAL BOLD ITALIC PHI SYMBOL
+1D754;1D754;1D754;03C1;03C1; # (𝝔; 𝝔; 𝝔; ρ; ρ; ) MATHEMATICAL BOLD ITALIC RHO SYMBOL
+1D755;1D755;1D755;03C0;03C0; # (𝝕; 𝝕; 𝝕; π; π; ) MATHEMATICAL BOLD ITALIC PI SYMBOL
+1D756;1D756;1D756;0391;0391; # (𝝖; 𝝖; 𝝖; Α; Α; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+1D757;1D757;1D757;0392;0392; # (𝝗; 𝝗; 𝝗; Β; Β; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+1D758;1D758;1D758;0393;0393; # (𝝘; 𝝘; 𝝘; Γ; Γ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+1D759;1D759;1D759;0394;0394; # (𝝙; 𝝙; 𝝙; Δ; Δ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+1D75A;1D75A;1D75A;0395;0395; # (𝝚; 𝝚; 𝝚; Ε; Ε; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+1D75B;1D75B;1D75B;0396;0396; # (𝝛; 𝝛; 𝝛; Ζ; Ζ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+1D75C;1D75C;1D75C;0397;0397; # (𝝜; 𝝜; 𝝜; Η; Η; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+1D75D;1D75D;1D75D;0398;0398; # (𝝝; 𝝝; 𝝝; Θ; Θ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+1D75E;1D75E;1D75E;0399;0399; # (𝝞; 𝝞; 𝝞; Ι; Ι; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+1D75F;1D75F;1D75F;039A;039A; # (𝝟; 𝝟; 𝝟; Κ; Κ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+1D760;1D760;1D760;039B;039B; # (𝝠; 𝝠; 𝝠; Λ; Λ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+1D761;1D761;1D761;039C;039C; # (𝝡; 𝝡; 𝝡; Μ; Μ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+1D762;1D762;1D762;039D;039D; # (𝝢; 𝝢; 𝝢; Ν; Ν; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+1D763;1D763;1D763;039E;039E; # (𝝣; 𝝣; 𝝣; Ξ; Ξ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+1D764;1D764;1D764;039F;039F; # (𝝤; 𝝤; 𝝤; Ο; Ο; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+1D765;1D765;1D765;03A0;03A0; # (𝝥; 𝝥; 𝝥; Π; Π; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+1D766;1D766;1D766;03A1;03A1; # (𝝦; 𝝦; 𝝦; Ρ; Ρ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+1D767;1D767;1D767;0398;0398; # (𝝧; 𝝧; 𝝧; Θ; Θ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D768;1D768;1D768;03A3;03A3; # (𝝨; 𝝨; 𝝨; Σ; Σ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+1D769;1D769;1D769;03A4;03A4; # (𝝩; 𝝩; 𝝩; Τ; Τ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+1D76A;1D76A;1D76A;03A5;03A5; # (𝝪; 𝝪; 𝝪; Υ; Υ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+1D76B;1D76B;1D76B;03A6;03A6; # (𝝫; 𝝫; 𝝫; Φ; Φ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+1D76C;1D76C;1D76C;03A7;03A7; # (𝝬; 𝝬; 𝝬; Χ; Χ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+1D76D;1D76D;1D76D;03A8;03A8; # (𝝭; 𝝭; 𝝭; Ψ; Ψ; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+1D76E;1D76E;1D76E;03A9;03A9; # (𝝮; 𝝮; 𝝮; Ω; Ω; ) MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F;1D76F;1D76F;2207;2207; # (𝝯; 𝝯; 𝝯; ∇; ∇; ) MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770;1D770;1D770;03B1;03B1; # (𝝰; 𝝰; 𝝰; α; α; ) MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+1D771;1D771;1D771;03B2;03B2; # (𝝱; 𝝱; 𝝱; β; β; ) MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+1D772;1D772;1D772;03B3;03B3; # (𝝲; 𝝲; 𝝲; γ; γ; ) MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+1D773;1D773;1D773;03B4;03B4; # (𝝳; 𝝳; 𝝳; δ; δ; ) MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+1D774;1D774;1D774;03B5;03B5; # (𝝴; 𝝴; 𝝴; ε; ε; ) MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+1D775;1D775;1D775;03B6;03B6; # (𝝵; 𝝵; 𝝵; ζ; ζ; ) MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+1D776;1D776;1D776;03B7;03B7; # (𝝶; 𝝶; 𝝶; η; η; ) MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+1D777;1D777;1D777;03B8;03B8; # (𝝷; 𝝷; 𝝷; θ; θ; ) MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+1D778;1D778;1D778;03B9;03B9; # (𝝸; 𝝸; 𝝸; ι; ι; ) MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+1D779;1D779;1D779;03BA;03BA; # (𝝹; 𝝹; 𝝹; κ; κ; ) MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+1D77A;1D77A;1D77A;03BB;03BB; # (𝝺; 𝝺; 𝝺; λ; λ; ) MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+1D77B;1D77B;1D77B;03BC;03BC; # (𝝻; 𝝻; 𝝻; μ; μ; ) MATHEMATICAL SANS-SERIF BOLD SMALL MU
+1D77C;1D77C;1D77C;03BD;03BD; # (𝝼; 𝝼; 𝝼; ν; ν; ) MATHEMATICAL SANS-SERIF BOLD SMALL NU
+1D77D;1D77D;1D77D;03BE;03BE; # (𝝽; 𝝽; 𝝽; ξ; ξ; ) MATHEMATICAL SANS-SERIF BOLD SMALL XI
+1D77E;1D77E;1D77E;03BF;03BF; # (𝝾; 𝝾; 𝝾; ο; ο; ) MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+1D77F;1D77F;1D77F;03C0;03C0; # (𝝿; 𝝿; 𝝿; π; π; ) MATHEMATICAL SANS-SERIF BOLD SMALL PI
+1D780;1D780;1D780;03C1;03C1; # (𝞀; 𝞀; 𝞀; ρ; ρ; ) MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+1D781;1D781;1D781;03C2;03C2; # (𝞁; 𝞁; 𝞁; ς; ς; ) MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
+1D782;1D782;1D782;03C3;03C3; # (𝞂; 𝞂; 𝞂; σ; σ; ) MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+1D783;1D783;1D783;03C4;03C4; # (𝞃; 𝞃; 𝞃; τ; τ; ) MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+1D784;1D784;1D784;03C5;03C5; # (𝞄; 𝞄; 𝞄; υ; υ; ) MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+1D785;1D785;1D785;03C6;03C6; # (𝞅; 𝞅; 𝞅; φ; φ; ) MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+1D786;1D786;1D786;03C7;03C7; # (𝞆; 𝞆; 𝞆; χ; χ; ) MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+1D787;1D787;1D787;03C8;03C8; # (𝞇; 𝞇; 𝞇; ψ; ψ; ) MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+1D788;1D788;1D788;03C9;03C9; # (𝞈; 𝞈; 𝞈; ω; ω; ) MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789;1D789;1D789;2202;2202; # (𝞉; 𝞉; 𝞉; ∂; ∂; ) MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A;1D78A;1D78A;03B5;03B5; # (𝞊; 𝞊; 𝞊; ε; ε; ) MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+1D78B;1D78B;1D78B;03B8;03B8; # (𝞋; 𝞋; 𝞋; θ; θ; ) MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+1D78C;1D78C;1D78C;03BA;03BA; # (𝞌; 𝞌; 𝞌; κ; κ; ) MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+1D78D;1D78D;1D78D;03C6;03C6; # (𝞍; 𝞍; 𝞍; φ; φ; ) MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+1D78E;1D78E;1D78E;03C1;03C1; # (𝞎; 𝞎; 𝞎; ρ; ρ; ) MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+1D78F;1D78F;1D78F;03C0;03C0; # (𝞏; 𝞏; 𝞏; π; π; ) MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+1D790;1D790;1D790;0391;0391; # (𝞐; 𝞐; 𝞐; Α; Α; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1D791;1D791;1D791;0392;0392; # (𝞑; 𝞑; 𝞑; Β; Β; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D792;1D792;1D792;0393;0393; # (𝞒; 𝞒; 𝞒; Γ; Γ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D793;1D793;1D793;0394;0394; # (𝞓; 𝞓; 𝞓; Δ; Δ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D794;1D794;1D794;0395;0395; # (𝞔; 𝞔; 𝞔; Ε; Ε; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1D795;1D795;1D795;0396;0396; # (𝞕; 𝞕; 𝞕; Ζ; Ζ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+1D796;1D796;1D796;0397;0397; # (𝞖; 𝞖; 𝞖; Η; Η; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+1D797;1D797;1D797;0398;0398; # (𝞗; 𝞗; 𝞗; Θ; Θ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D798;1D798;1D798;0399;0399; # (𝞘; 𝞘; 𝞘; Ι; Ι; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1D799;1D799;1D799;039A;039A; # (𝞙; 𝞙; 𝞙; Κ; Κ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+1D79A;1D79A;1D79A;039B;039B; # (𝞚; 𝞚; 𝞚; Λ; Λ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D79B;1D79B;1D79B;039C;039C; # (𝞛; 𝞛; 𝞛; Μ; Μ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+1D79C;1D79C;1D79C;039D;039D; # (𝞜; 𝞜; 𝞜; Ν; Ν; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+1D79D;1D79D;1D79D;039E;039E; # (𝞝; 𝞝; 𝞝; Ξ; Ξ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+1D79E;1D79E;1D79E;039F;039F; # (𝞞; 𝞞; 𝞞; Ο; Ο; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1D79F;1D79F;1D79F;03A0;03A0; # (𝞟; 𝞟; 𝞟; Π; Π; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+1D7A0;1D7A0;1D7A0;03A1;03A1; # (𝞠; 𝞠; 𝞠; Ρ; Ρ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D7A1;1D7A1;1D7A1;0398;0398; # (𝞡; 𝞡; 𝞡; Θ; Θ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1D7A2;1D7A2;1D7A2;03A3;03A3; # (𝞢; 𝞢; 𝞢; Σ; Σ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+1D7A3;1D7A3;1D7A3;03A4;03A4; # (𝞣; 𝞣; 𝞣; Τ; Τ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+1D7A4;1D7A4;1D7A4;03A5;03A5; # (𝞤; 𝞤; 𝞤; Υ; Υ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1D7A5;1D7A5;1D7A5;03A6;03A6; # (𝞥; 𝞥; 𝞥; Φ; Φ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D7A6;1D7A6;1D7A6;03A7;03A7; # (𝞦; 𝞦; 𝞦; Χ; Χ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D7A7;1D7A7;1D7A7;03A8;03A8; # (𝞧; 𝞧; 𝞧; Ψ; Ψ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D7A8;1D7A8;1D7A8;03A9;03A9; # (𝞨; 𝞨; 𝞨; Ω; Ω; ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9;1D7A9;1D7A9;2207;2207; # (𝞩; 𝞩; 𝞩; ∇; ∇; ) MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA;1D7AA;1D7AA;03B1;03B1; # (𝞪; 𝞪; 𝞪; α; α; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+1D7AB;1D7AB;1D7AB;03B2;03B2; # (𝞫; 𝞫; 𝞫; β; β; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+1D7AC;1D7AC;1D7AC;03B3;03B3; # (𝞬; 𝞬; 𝞬; γ; γ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+1D7AD;1D7AD;1D7AD;03B4;03B4; # (𝞭; 𝞭; 𝞭; δ; δ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+1D7AE;1D7AE;1D7AE;03B5;03B5; # (𝞮; 𝞮; 𝞮; ε; ε; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+1D7AF;1D7AF;1D7AF;03B6;03B6; # (𝞯; 𝞯; 𝞯; ζ; ζ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+1D7B0;1D7B0;1D7B0;03B7;03B7; # (𝞰; 𝞰; 𝞰; η; η; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+1D7B1;1D7B1;1D7B1;03B8;03B8; # (𝞱; 𝞱; 𝞱; θ; θ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+1D7B2;1D7B2;1D7B2;03B9;03B9; # (𝞲; 𝞲; 𝞲; ι; ι; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+1D7B3;1D7B3;1D7B3;03BA;03BA; # (𝞳; 𝞳; 𝞳; κ; κ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+1D7B4;1D7B4;1D7B4;03BB;03BB; # (𝞴; 𝞴; 𝞴; λ; λ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+1D7B5;1D7B5;1D7B5;03BC;03BC; # (𝞵; 𝞵; 𝞵; μ; μ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+1D7B6;1D7B6;1D7B6;03BD;03BD; # (𝞶; 𝞶; 𝞶; ν; ν; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+1D7B7;1D7B7;1D7B7;03BE;03BE; # (𝞷; 𝞷; 𝞷; ξ; ξ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+1D7B8;1D7B8;1D7B8;03BF;03BF; # (𝞸; 𝞸; 𝞸; ο; ο; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+1D7B9;1D7B9;1D7B9;03C0;03C0; # (𝞹; 𝞹; 𝞹; π; π; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+1D7BA;1D7BA;1D7BA;03C1;03C1; # (𝞺; 𝞺; 𝞺; ρ; ρ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+1D7BB;1D7BB;1D7BB;03C2;03C2; # (𝞻; 𝞻; 𝞻; ς; ς; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
+1D7BC;1D7BC;1D7BC;03C3;03C3; # (𝞼; 𝞼; 𝞼; σ; σ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+1D7BD;1D7BD;1D7BD;03C4;03C4; # (𝞽; 𝞽; 𝞽; τ; τ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+1D7BE;1D7BE;1D7BE;03C5;03C5; # (𝞾; 𝞾; 𝞾; υ; υ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+1D7BF;1D7BF;1D7BF;03C6;03C6; # (𝞿; 𝞿; 𝞿; φ; φ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+1D7C0;1D7C0;1D7C0;03C7;03C7; # (𝟀; 𝟀; 𝟀; χ; χ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+1D7C1;1D7C1;1D7C1;03C8;03C8; # (𝟁; 𝟁; 𝟁; ψ; ψ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+1D7C2;1D7C2;1D7C2;03C9;03C9; # (𝟂; 𝟂; 𝟂; ω; ω; ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3;1D7C3;1D7C3;2202;2202; # (𝟃; 𝟃; 𝟃; ∂; ∂; ) MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4;1D7C4;1D7C4;03B5;03B5; # (𝟄; 𝟄; 𝟄; ε; ε; ) MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+1D7C5;1D7C5;1D7C5;03B8;03B8; # (𝟅; 𝟅; 𝟅; θ; θ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+1D7C6;1D7C6;1D7C6;03BA;03BA; # (𝟆; 𝟆; 𝟆; κ; κ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+1D7C7;1D7C7;1D7C7;03C6;03C6; # (𝟇; 𝟇; 𝟇; φ; φ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+1D7C8;1D7C8;1D7C8;03C1;03C1; # (𝟈; 𝟈; 𝟈; ρ; ρ; ) MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+1D7C9;1D7C9;1D7C9;03C0;03C0; # (𝟉; 𝟉; 𝟉; π; π; ) MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+1D7CA;1D7CA;1D7CA;03DC;03DC; # (𝟊; 𝟊; 𝟊; Ϝ; Ϝ; ) MATHEMATICAL BOLD CAPITAL DIGAMMA
+1D7CB;1D7CB;1D7CB;03DD;03DD; # (𝟋; 𝟋; 𝟋; ϝ; ϝ; ) MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE;1D7CE;1D7CE;0030;0030; # (𝟎; 𝟎; 𝟎; 0; 0; ) MATHEMATICAL BOLD DIGIT ZERO
+1D7CF;1D7CF;1D7CF;0031;0031; # (𝟏; 𝟏; 𝟏; 1; 1; ) MATHEMATICAL BOLD DIGIT ONE
+1D7D0;1D7D0;1D7D0;0032;0032; # (𝟐; 𝟐; 𝟐; 2; 2; ) MATHEMATICAL BOLD DIGIT TWO
+1D7D1;1D7D1;1D7D1;0033;0033; # (𝟑; 𝟑; 𝟑; 3; 3; ) MATHEMATICAL BOLD DIGIT THREE
+1D7D2;1D7D2;1D7D2;0034;0034; # (𝟒; 𝟒; 𝟒; 4; 4; ) MATHEMATICAL BOLD DIGIT FOUR
+1D7D3;1D7D3;1D7D3;0035;0035; # (𝟓; 𝟓; 𝟓; 5; 5; ) MATHEMATICAL BOLD DIGIT FIVE
+1D7D4;1D7D4;1D7D4;0036;0036; # (𝟔; 𝟔; 𝟔; 6; 6; ) MATHEMATICAL BOLD DIGIT SIX
+1D7D5;1D7D5;1D7D5;0037;0037; # (𝟕; 𝟕; 𝟕; 7; 7; ) MATHEMATICAL BOLD DIGIT SEVEN
+1D7D6;1D7D6;1D7D6;0038;0038; # (𝟖; 𝟖; 𝟖; 8; 8; ) MATHEMATICAL BOLD DIGIT EIGHT
+1D7D7;1D7D7;1D7D7;0039;0039; # (𝟗; 𝟗; 𝟗; 9; 9; ) MATHEMATICAL BOLD DIGIT NINE
+1D7D8;1D7D8;1D7D8;0030;0030; # (𝟘; 𝟘; 𝟘; 0; 0; ) MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+1D7D9;1D7D9;1D7D9;0031;0031; # (𝟙; 𝟙; 𝟙; 1; 1; ) MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+1D7DA;1D7DA;1D7DA;0032;0032; # (𝟚; 𝟚; 𝟚; 2; 2; ) MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+1D7DB;1D7DB;1D7DB;0033;0033; # (𝟛; 𝟛; 𝟛; 3; 3; ) MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+1D7DC;1D7DC;1D7DC;0034;0034; # (𝟜; 𝟜; 𝟜; 4; 4; ) MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+1D7DD;1D7DD;1D7DD;0035;0035; # (𝟝; 𝟝; 𝟝; 5; 5; ) MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+1D7DE;1D7DE;1D7DE;0036;0036; # (𝟞; 𝟞; 𝟞; 6; 6; ) MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+1D7DF;1D7DF;1D7DF;0037;0037; # (𝟟; 𝟟; 𝟟; 7; 7; ) MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+1D7E0;1D7E0;1D7E0;0038;0038; # (𝟠; 𝟠; 𝟠; 8; 8; ) MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+1D7E1;1D7E1;1D7E1;0039;0039; # (𝟡; 𝟡; 𝟡; 9; 9; ) MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+1D7E2;1D7E2;1D7E2;0030;0030; # (𝟢; 𝟢; 𝟢; 0; 0; ) MATHEMATICAL SANS-SERIF DIGIT ZERO
+1D7E3;1D7E3;1D7E3;0031;0031; # (𝟣; 𝟣; 𝟣; 1; 1; ) MATHEMATICAL SANS-SERIF DIGIT ONE
+1D7E4;1D7E4;1D7E4;0032;0032; # (𝟤; 𝟤; 𝟤; 2; 2; ) MATHEMATICAL SANS-SERIF DIGIT TWO
+1D7E5;1D7E5;1D7E5;0033;0033; # (𝟥; 𝟥; 𝟥; 3; 3; ) MATHEMATICAL SANS-SERIF DIGIT THREE
+1D7E6;1D7E6;1D7E6;0034;0034; # (𝟦; 𝟦; 𝟦; 4; 4; ) MATHEMATICAL SANS-SERIF DIGIT FOUR
+1D7E7;1D7E7;1D7E7;0035;0035; # (𝟧; 𝟧; 𝟧; 5; 5; ) MATHEMATICAL SANS-SERIF DIGIT FIVE
+1D7E8;1D7E8;1D7E8;0036;0036; # (𝟨; 𝟨; 𝟨; 6; 6; ) MATHEMATICAL SANS-SERIF DIGIT SIX
+1D7E9;1D7E9;1D7E9;0037;0037; # (𝟩; 𝟩; 𝟩; 7; 7; ) MATHEMATICAL SANS-SERIF DIGIT SEVEN
+1D7EA;1D7EA;1D7EA;0038;0038; # (𝟪; 𝟪; 𝟪; 8; 8; ) MATHEMATICAL SANS-SERIF DIGIT EIGHT
+1D7EB;1D7EB;1D7EB;0039;0039; # (𝟫; 𝟫; 𝟫; 9; 9; ) MATHEMATICAL SANS-SERIF DIGIT NINE
+1D7EC;1D7EC;1D7EC;0030;0030; # (𝟬; 𝟬; 𝟬; 0; 0; ) MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+1D7ED;1D7ED;1D7ED;0031;0031; # (𝟭; 𝟭; 𝟭; 1; 1; ) MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+1D7EE;1D7EE;1D7EE;0032;0032; # (𝟮; 𝟮; 𝟮; 2; 2; ) MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+1D7EF;1D7EF;1D7EF;0033;0033; # (𝟯; 𝟯; 𝟯; 3; 3; ) MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+1D7F0;1D7F0;1D7F0;0034;0034; # (𝟰; 𝟰; 𝟰; 4; 4; ) MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+1D7F1;1D7F1;1D7F1;0035;0035; # (𝟱; 𝟱; 𝟱; 5; 5; ) MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+1D7F2;1D7F2;1D7F2;0036;0036; # (𝟲; 𝟲; 𝟲; 6; 6; ) MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+1D7F3;1D7F3;1D7F3;0037;0037; # (𝟳; 𝟳; 𝟳; 7; 7; ) MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+1D7F4;1D7F4;1D7F4;0038;0038; # (𝟴; 𝟴; 𝟴; 8; 8; ) MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+1D7F5;1D7F5;1D7F5;0039;0039; # (𝟵; 𝟵; 𝟵; 9; 9; ) MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+1D7F6;1D7F6;1D7F6;0030;0030; # (𝟶; 𝟶; 𝟶; 0; 0; ) MATHEMATICAL MONOSPACE DIGIT ZERO
+1D7F7;1D7F7;1D7F7;0031;0031; # (𝟷; 𝟷; 𝟷; 1; 1; ) MATHEMATICAL MONOSPACE DIGIT ONE
+1D7F8;1D7F8;1D7F8;0032;0032; # (𝟸; 𝟸; 𝟸; 2; 2; ) MATHEMATICAL MONOSPACE DIGIT TWO
+1D7F9;1D7F9;1D7F9;0033;0033; # (𝟹; 𝟹; 𝟹; 3; 3; ) MATHEMATICAL MONOSPACE DIGIT THREE
+1D7FA;1D7FA;1D7FA;0034;0034; # (𝟺; 𝟺; 𝟺; 4; 4; ) MATHEMATICAL MONOSPACE DIGIT FOUR
+1D7FB;1D7FB;1D7FB;0035;0035; # (𝟻; 𝟻; 𝟻; 5; 5; ) MATHEMATICAL MONOSPACE DIGIT FIVE
+1D7FC;1D7FC;1D7FC;0036;0036; # (𝟼; 𝟼; 𝟼; 6; 6; ) MATHEMATICAL MONOSPACE DIGIT SIX
+1D7FD;1D7FD;1D7FD;0037;0037; # (𝟽; 𝟽; 𝟽; 7; 7; ) MATHEMATICAL MONOSPACE DIGIT SEVEN
+1D7FE;1D7FE;1D7FE;0038;0038; # (𝟾; 𝟾; 𝟾; 8; 8; ) MATHEMATICAL MONOSPACE DIGIT EIGHT
+1D7FF;1D7FF;1D7FF;0039;0039; # (𝟿; 𝟿; 𝟿; 9; 9; ) MATHEMATICAL MONOSPACE DIGIT NINE
+1E030;1E030;1E030;0430;0430; # (𞀰; 𞀰; 𞀰; а; а; ) MODIFIER LETTER CYRILLIC SMALL A
+1E031;1E031;1E031;0431;0431; # (𞀱; 𞀱; 𞀱; б; б; ) MODIFIER LETTER CYRILLIC SMALL BE
+1E032;1E032;1E032;0432;0432; # (𞀲; 𞀲; 𞀲; в; в; ) MODIFIER LETTER CYRILLIC SMALL VE
+1E033;1E033;1E033;0433;0433; # (𞀳; 𞀳; 𞀳; г; г; ) MODIFIER LETTER CYRILLIC SMALL GHE
+1E034;1E034;1E034;0434;0434; # (𞀴; 𞀴; 𞀴; д; д; ) MODIFIER LETTER CYRILLIC SMALL DE
+1E035;1E035;1E035;0435;0435; # (𞀵; 𞀵; 𞀵; е; е; ) MODIFIER LETTER CYRILLIC SMALL IE
+1E036;1E036;1E036;0436;0436; # (𞀶; 𞀶; 𞀶; ж; ж; ) MODIFIER LETTER CYRILLIC SMALL ZHE
+1E037;1E037;1E037;0437;0437; # (𞀷; 𞀷; 𞀷; з; з; ) MODIFIER LETTER CYRILLIC SMALL ZE
+1E038;1E038;1E038;0438;0438; # (𞀸; 𞀸; 𞀸; и; и; ) MODIFIER LETTER CYRILLIC SMALL I
+1E039;1E039;1E039;043A;043A; # (𞀹; 𞀹; 𞀹; к; к; ) MODIFIER LETTER CYRILLIC SMALL KA
+1E03A;1E03A;1E03A;043B;043B; # (𞀺; 𞀺; 𞀺; л; л; ) MODIFIER LETTER CYRILLIC SMALL EL
+1E03B;1E03B;1E03B;043C;043C; # (𞀻; 𞀻; 𞀻; м; м; ) MODIFIER LETTER CYRILLIC SMALL EM
+1E03C;1E03C;1E03C;043E;043E; # (𞀼; 𞀼; 𞀼; о; о; ) MODIFIER LETTER CYRILLIC SMALL O
+1E03D;1E03D;1E03D;043F;043F; # (𞀽; 𞀽; 𞀽; п; п; ) MODIFIER LETTER CYRILLIC SMALL PE
+1E03E;1E03E;1E03E;0440;0440; # (𞀾; 𞀾; 𞀾; р; р; ) MODIFIER LETTER CYRILLIC SMALL ER
+1E03F;1E03F;1E03F;0441;0441; # (𞀿; 𞀿; 𞀿; с; с; ) MODIFIER LETTER CYRILLIC SMALL ES
+1E040;1E040;1E040;0442;0442; # (𞁀; 𞁀; 𞁀; т; т; ) MODIFIER LETTER CYRILLIC SMALL TE
+1E041;1E041;1E041;0443;0443; # (𞁁; 𞁁; 𞁁; у; у; ) MODIFIER LETTER CYRILLIC SMALL U
+1E042;1E042;1E042;0444;0444; # (𞁂; 𞁂; 𞁂; ф; ф; ) MODIFIER LETTER CYRILLIC SMALL EF
+1E043;1E043;1E043;0445;0445; # (𞁃; 𞁃; 𞁃; х; х; ) MODIFIER LETTER CYRILLIC SMALL HA
+1E044;1E044;1E044;0446;0446; # (𞁄; 𞁄; 𞁄; ц; ц; ) MODIFIER LETTER CYRILLIC SMALL TSE
+1E045;1E045;1E045;0447;0447; # (𞁅; 𞁅; 𞁅; ч; ч; ) MODIFIER LETTER CYRILLIC SMALL CHE
+1E046;1E046;1E046;0448;0448; # (𞁆; 𞁆; 𞁆; ш; ш; ) MODIFIER LETTER CYRILLIC SMALL SHA
+1E047;1E047;1E047;044B;044B; # (𞁇; 𞁇; 𞁇; ы; ы; ) MODIFIER LETTER CYRILLIC SMALL YERU
+1E048;1E048;1E048;044D;044D; # (𞁈; 𞁈; 𞁈; э; э; ) MODIFIER LETTER CYRILLIC SMALL E
+1E049;1E049;1E049;044E;044E; # (𞁉; 𞁉; 𞁉; ю; ю; ) MODIFIER LETTER CYRILLIC SMALL YU
+1E04A;1E04A;1E04A;A689;A689; # (𞁊; 𞁊; 𞁊; ꚉ; ꚉ; ) MODIFIER LETTER CYRILLIC SMALL DZZE
+1E04B;1E04B;1E04B;04D9;04D9; # (𞁋; 𞁋; 𞁋; ә; ә; ) MODIFIER LETTER CYRILLIC SMALL SCHWA
+1E04C;1E04C;1E04C;0456;0456; # (𞁌; 𞁌; 𞁌; і; і; ) MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+1E04D;1E04D;1E04D;0458;0458; # (𞁍; 𞁍; 𞁍; ј; ј; ) MODIFIER LETTER CYRILLIC SMALL JE
+1E04E;1E04E;1E04E;04E9;04E9; # (𞁎; 𞁎; 𞁎; ө; ө; ) MODIFIER LETTER CYRILLIC SMALL BARRED O
+1E04F;1E04F;1E04F;04AF;04AF; # (𞁏; 𞁏; 𞁏; ү; ү; ) MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+1E050;1E050;1E050;04CF;04CF; # (𞁐; 𞁐; 𞁐; ӏ; ӏ; ) MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E051;1E051;1E051;0430;0430; # (𞁑; 𞁑; 𞁑; а; а; ) CYRILLIC SUBSCRIPT SMALL LETTER A
+1E052;1E052;1E052;0431;0431; # (𞁒; 𞁒; 𞁒; б; б; ) CYRILLIC SUBSCRIPT SMALL LETTER BE
+1E053;1E053;1E053;0432;0432; # (𞁓; 𞁓; 𞁓; в; в; ) CYRILLIC SUBSCRIPT SMALL LETTER VE
+1E054;1E054;1E054;0433;0433; # (𞁔; 𞁔; 𞁔; г; г; ) CYRILLIC SUBSCRIPT SMALL LETTER GHE
+1E055;1E055;1E055;0434;0434; # (𞁕; 𞁕; 𞁕; д; д; ) CYRILLIC SUBSCRIPT SMALL LETTER DE
+1E056;1E056;1E056;0435;0435; # (𞁖; 𞁖; 𞁖; е; е; ) CYRILLIC SUBSCRIPT SMALL LETTER IE
+1E057;1E057;1E057;0436;0436; # (𞁗; 𞁗; 𞁗; ж; ж; ) CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+1E058;1E058;1E058;0437;0437; # (𞁘; 𞁘; 𞁘; з; з; ) CYRILLIC SUBSCRIPT SMALL LETTER ZE
+1E059;1E059;1E059;0438;0438; # (𞁙; 𞁙; 𞁙; и; и; ) CYRILLIC SUBSCRIPT SMALL LETTER I
+1E05A;1E05A;1E05A;043A;043A; # (𞁚; 𞁚; 𞁚; к; к; ) CYRILLIC SUBSCRIPT SMALL LETTER KA
+1E05B;1E05B;1E05B;043B;043B; # (𞁛; 𞁛; 𞁛; л; л; ) CYRILLIC SUBSCRIPT SMALL LETTER EL
+1E05C;1E05C;1E05C;043E;043E; # (𞁜; 𞁜; 𞁜; о; о; ) CYRILLIC SUBSCRIPT SMALL LETTER O
+1E05D;1E05D;1E05D;043F;043F; # (𞁝; 𞁝; 𞁝; п; п; ) CYRILLIC SUBSCRIPT SMALL LETTER PE
+1E05E;1E05E;1E05E;0441;0441; # (𞁞; 𞁞; 𞁞; с; с; ) CYRILLIC SUBSCRIPT SMALL LETTER ES
+1E05F;1E05F;1E05F;0443;0443; # (𞁟; 𞁟; 𞁟; у; у; ) CYRILLIC SUBSCRIPT SMALL LETTER U
+1E060;1E060;1E060;0444;0444; # (𞁠; 𞁠; 𞁠; ф; ф; ) CYRILLIC SUBSCRIPT SMALL LETTER EF
+1E061;1E061;1E061;0445;0445; # (𞁡; 𞁡; 𞁡; х; х; ) CYRILLIC SUBSCRIPT SMALL LETTER HA
+1E062;1E062;1E062;0446;0446; # (𞁢; 𞁢; 𞁢; ц; ц; ) CYRILLIC SUBSCRIPT SMALL LETTER TSE
+1E063;1E063;1E063;0447;0447; # (𞁣; 𞁣; 𞁣; ч; ч; ) CYRILLIC SUBSCRIPT SMALL LETTER CHE
+1E064;1E064;1E064;0448;0448; # (𞁤; 𞁤; 𞁤; ш; ш; ) CYRILLIC SUBSCRIPT SMALL LETTER SHA
+1E065;1E065;1E065;044A;044A; # (𞁥; 𞁥; 𞁥; ъ; ъ; ) CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+1E066;1E066;1E066;044B;044B; # (𞁦; 𞁦; 𞁦; ы; ы; ) CYRILLIC SUBSCRIPT SMALL LETTER YERU
+1E067;1E067;1E067;0491;0491; # (𞁧; 𞁧; 𞁧; ґ; ґ; ) CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+1E068;1E068;1E068;0456;0456; # (𞁨; 𞁨; 𞁨; і; і; ) CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E069;1E069;1E069;0455;0455; # (𞁩; 𞁩; 𞁩; ѕ; ѕ; ) CYRILLIC SUBSCRIPT SMALL LETTER DZE
+1E06A;1E06A;1E06A;045F;045F; # (𞁪; 𞁪; 𞁪; џ; џ; ) CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+1E06B;1E06B;1E06B;04AB;04AB; # (𞁫; 𞁫; 𞁫; ҫ; ҫ; ) MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+1E06C;1E06C;1E06C;A651;A651; # (𞁬; 𞁬; 𞁬; ꙑ; ꙑ; ) MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+1E06D;1E06D;1E06D;04B1;04B1; # (𞁭; 𞁭; 𞁭; ұ; ұ; ) MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1EE00;1EE00;1EE00;0627;0627; # (𞸀; 𞸀; 𞸀; ا; ا; ) ARABIC MATHEMATICAL ALEF
+1EE01;1EE01;1EE01;0628;0628; # (𞸁; 𞸁; 𞸁; ب; ب; ) ARABIC MATHEMATICAL BEH
+1EE02;1EE02;1EE02;062C;062C; # (𞸂; 𞸂; 𞸂; ج; ج; ) ARABIC MATHEMATICAL JEEM
+1EE03;1EE03;1EE03;062F;062F; # (𞸃; 𞸃; 𞸃; د; د; ) ARABIC MATHEMATICAL DAL
+1EE05;1EE05;1EE05;0648;0648; # (𞸅; 𞸅; 𞸅; و; و; ) ARABIC MATHEMATICAL WAW
+1EE06;1EE06;1EE06;0632;0632; # (𞸆; 𞸆; 𞸆; ز; ز; ) ARABIC MATHEMATICAL ZAIN
+1EE07;1EE07;1EE07;062D;062D; # (𞸇; 𞸇; 𞸇; ح; ح; ) ARABIC MATHEMATICAL HAH
+1EE08;1EE08;1EE08;0637;0637; # (𞸈; 𞸈; 𞸈; ط; ط; ) ARABIC MATHEMATICAL TAH
+1EE09;1EE09;1EE09;064A;064A; # (𞸉; 𞸉; 𞸉; ي; ي; ) ARABIC MATHEMATICAL YEH
+1EE0A;1EE0A;1EE0A;0643;0643; # (𞸊; 𞸊; 𞸊; ك; ك; ) ARABIC MATHEMATICAL KAF
+1EE0B;1EE0B;1EE0B;0644;0644; # (𞸋; 𞸋; 𞸋; ل; ل; ) ARABIC MATHEMATICAL LAM
+1EE0C;1EE0C;1EE0C;0645;0645; # (𞸌; 𞸌; 𞸌; م; م; ) ARABIC MATHEMATICAL MEEM
+1EE0D;1EE0D;1EE0D;0646;0646; # (𞸍; 𞸍; 𞸍; ن; ن; ) ARABIC MATHEMATICAL NOON
+1EE0E;1EE0E;1EE0E;0633;0633; # (𞸎; 𞸎; 𞸎; س; س; ) ARABIC MATHEMATICAL SEEN
+1EE0F;1EE0F;1EE0F;0639;0639; # (𞸏; 𞸏; 𞸏; ع; ع; ) ARABIC MATHEMATICAL AIN
+1EE10;1EE10;1EE10;0641;0641; # (𞸐; 𞸐; 𞸐; ف; ف; ) ARABIC MATHEMATICAL FEH
+1EE11;1EE11;1EE11;0635;0635; # (𞸑; 𞸑; 𞸑; ص; ص; ) ARABIC MATHEMATICAL SAD
+1EE12;1EE12;1EE12;0642;0642; # (𞸒; 𞸒; 𞸒; ق; ق; ) ARABIC MATHEMATICAL QAF
+1EE13;1EE13;1EE13;0631;0631; # (𞸓; 𞸓; 𞸓; ر; ر; ) ARABIC MATHEMATICAL REH
+1EE14;1EE14;1EE14;0634;0634; # (𞸔; 𞸔; 𞸔; ش; ش; ) ARABIC MATHEMATICAL SHEEN
+1EE15;1EE15;1EE15;062A;062A; # (𞸕; 𞸕; 𞸕; ت; ت; ) ARABIC MATHEMATICAL TEH
+1EE16;1EE16;1EE16;062B;062B; # (𞸖; 𞸖; 𞸖; ث; ث; ) ARABIC MATHEMATICAL THEH
+1EE17;1EE17;1EE17;062E;062E; # (𞸗; 𞸗; 𞸗; خ; خ; ) ARABIC MATHEMATICAL KHAH
+1EE18;1EE18;1EE18;0630;0630; # (𞸘; 𞸘; 𞸘; ذ; ذ; ) ARABIC MATHEMATICAL THAL
+1EE19;1EE19;1EE19;0636;0636; # (𞸙; 𞸙; 𞸙; ض; ض; ) ARABIC MATHEMATICAL DAD
+1EE1A;1EE1A;1EE1A;0638;0638; # (𞸚; 𞸚; 𞸚; ظ; ظ; ) ARABIC MATHEMATICAL ZAH
+1EE1B;1EE1B;1EE1B;063A;063A; # (𞸛; 𞸛; 𞸛; غ; غ; ) ARABIC MATHEMATICAL GHAIN
+1EE1C;1EE1C;1EE1C;066E;066E; # (𞸜; 𞸜; 𞸜; ٮ; ٮ; ) ARABIC MATHEMATICAL DOTLESS BEH
+1EE1D;1EE1D;1EE1D;06BA;06BA; # (𞸝; 𞸝; 𞸝; ں; ں; ) ARABIC MATHEMATICAL DOTLESS NOON
+1EE1E;1EE1E;1EE1E;06A1;06A1; # (𞸞; 𞸞; 𞸞; ڡ; ڡ; ) ARABIC MATHEMATICAL DOTLESS FEH
+1EE1F;1EE1F;1EE1F;066F;066F; # (𞸟; 𞸟; 𞸟; ٯ; ٯ; ) ARABIC MATHEMATICAL DOTLESS QAF
+1EE21;1EE21;1EE21;0628;0628; # (𞸡; 𞸡; 𞸡; ب; ب; ) ARABIC MATHEMATICAL INITIAL BEH
+1EE22;1EE22;1EE22;062C;062C; # (𞸢; 𞸢; 𞸢; ج; ج; ) ARABIC MATHEMATICAL INITIAL JEEM
+1EE24;1EE24;1EE24;0647;0647; # (𞸤; 𞸤; 𞸤; ه; ه; ) ARABIC MATHEMATICAL INITIAL HEH
+1EE27;1EE27;1EE27;062D;062D; # (𞸧; 𞸧; 𞸧; ح; ح; ) ARABIC MATHEMATICAL INITIAL HAH
+1EE29;1EE29;1EE29;064A;064A; # (𞸩; 𞸩; 𞸩; ي; ي; ) ARABIC MATHEMATICAL INITIAL YEH
+1EE2A;1EE2A;1EE2A;0643;0643; # (𞸪; 𞸪; 𞸪; ك; ك; ) ARABIC MATHEMATICAL INITIAL KAF
+1EE2B;1EE2B;1EE2B;0644;0644; # (𞸫; 𞸫; 𞸫; ل; ل; ) ARABIC MATHEMATICAL INITIAL LAM
+1EE2C;1EE2C;1EE2C;0645;0645; # (𞸬; 𞸬; 𞸬; م; م; ) ARABIC MATHEMATICAL INITIAL MEEM
+1EE2D;1EE2D;1EE2D;0646;0646; # (𞸭; 𞸭; 𞸭; ن; ن; ) ARABIC MATHEMATICAL INITIAL NOON
+1EE2E;1EE2E;1EE2E;0633;0633; # (𞸮; 𞸮; 𞸮; س; س; ) ARABIC MATHEMATICAL INITIAL SEEN
+1EE2F;1EE2F;1EE2F;0639;0639; # (𞸯; 𞸯; 𞸯; ع; ع; ) ARABIC MATHEMATICAL INITIAL AIN
+1EE30;1EE30;1EE30;0641;0641; # (𞸰; 𞸰; 𞸰; ف; ف; ) ARABIC MATHEMATICAL INITIAL FEH
+1EE31;1EE31;1EE31;0635;0635; # (𞸱; 𞸱; 𞸱; ص; ص; ) ARABIC MATHEMATICAL INITIAL SAD
+1EE32;1EE32;1EE32;0642;0642; # (𞸲; 𞸲; 𞸲; ق; ق; ) ARABIC MATHEMATICAL INITIAL QAF
+1EE34;1EE34;1EE34;0634;0634; # (𞸴; 𞸴; 𞸴; ش; ش; ) ARABIC MATHEMATICAL INITIAL SHEEN
+1EE35;1EE35;1EE35;062A;062A; # (𞸵; 𞸵; 𞸵; ت; ت; ) ARABIC MATHEMATICAL INITIAL TEH
+1EE36;1EE36;1EE36;062B;062B; # (𞸶; 𞸶; 𞸶; ث; ث; ) ARABIC MATHEMATICAL INITIAL THEH
+1EE37;1EE37;1EE37;062E;062E; # (𞸷; 𞸷; 𞸷; خ; خ; ) ARABIC MATHEMATICAL INITIAL KHAH
+1EE39;1EE39;1EE39;0636;0636; # (𞸹; 𞸹; 𞸹; ض; ض; ) ARABIC MATHEMATICAL INITIAL DAD
+1EE3B;1EE3B;1EE3B;063A;063A; # (𞸻; 𞸻; 𞸻; غ; غ; ) ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42;1EE42;1EE42;062C;062C; # (𞹂; 𞹂; 𞹂; ج; ج; ) ARABIC MATHEMATICAL TAILED JEEM
+1EE47;1EE47;1EE47;062D;062D; # (𞹇; 𞹇; 𞹇; ح; ح; ) ARABIC MATHEMATICAL TAILED HAH
+1EE49;1EE49;1EE49;064A;064A; # (𞹉; 𞹉; 𞹉; ي; ي; ) ARABIC MATHEMATICAL TAILED YEH
+1EE4B;1EE4B;1EE4B;0644;0644; # (𞹋; 𞹋; 𞹋; ل; ل; ) ARABIC MATHEMATICAL TAILED LAM
+1EE4D;1EE4D;1EE4D;0646;0646; # (𞹍; 𞹍; 𞹍; ن; ن; ) ARABIC MATHEMATICAL TAILED NOON
+1EE4E;1EE4E;1EE4E;0633;0633; # (𞹎; 𞹎; 𞹎; س; س; ) ARABIC MATHEMATICAL TAILED SEEN
+1EE4F;1EE4F;1EE4F;0639;0639; # (𞹏; 𞹏; 𞹏; ع; ع; ) ARABIC MATHEMATICAL TAILED AIN
+1EE51;1EE51;1EE51;0635;0635; # (𞹑; 𞹑; 𞹑; ص; ص; ) ARABIC MATHEMATICAL TAILED SAD
+1EE52;1EE52;1EE52;0642;0642; # (𞹒; 𞹒; 𞹒; ق; ق; ) ARABIC MATHEMATICAL TAILED QAF
+1EE54;1EE54;1EE54;0634;0634; # (𞹔; 𞹔; 𞹔; ش; ش; ) ARABIC MATHEMATICAL TAILED SHEEN
+1EE57;1EE57;1EE57;062E;062E; # (𞹗; 𞹗; 𞹗; خ; خ; ) ARABIC MATHEMATICAL TAILED KHAH
+1EE59;1EE59;1EE59;0636;0636; # (𞹙; 𞹙; 𞹙; ض; ض; ) ARABIC MATHEMATICAL TAILED DAD
+1EE5B;1EE5B;1EE5B;063A;063A; # (𞹛; 𞹛; 𞹛; غ; غ; ) ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D;1EE5D;1EE5D;06BA;06BA; # (𞹝; 𞹝; 𞹝; ں; ں; ) ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F;1EE5F;1EE5F;066F;066F; # (𞹟; 𞹟; 𞹟; ٯ; ٯ; ) ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61;1EE61;1EE61;0628;0628; # (𞹡; 𞹡; 𞹡; ب; ب; ) ARABIC MATHEMATICAL STRETCHED BEH
+1EE62;1EE62;1EE62;062C;062C; # (𞹢; 𞹢; 𞹢; ج; ج; ) ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64;1EE64;1EE64;0647;0647; # (𞹤; 𞹤; 𞹤; ه; ه; ) ARABIC MATHEMATICAL STRETCHED HEH
+1EE67;1EE67;1EE67;062D;062D; # (𞹧; 𞹧; 𞹧; ح; ح; ) ARABIC MATHEMATICAL STRETCHED HAH
+1EE68;1EE68;1EE68;0637;0637; # (𞹨; 𞹨; 𞹨; ط; ط; ) ARABIC MATHEMATICAL STRETCHED TAH
+1EE69;1EE69;1EE69;064A;064A; # (𞹩; 𞹩; 𞹩; ي; ي; ) ARABIC MATHEMATICAL STRETCHED YEH
+1EE6A;1EE6A;1EE6A;0643;0643; # (𞹪; 𞹪; 𞹪; ك; ك; ) ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C;1EE6C;1EE6C;0645;0645; # (𞹬; 𞹬; 𞹬; م; م; ) ARABIC MATHEMATICAL STRETCHED MEEM
+1EE6D;1EE6D;1EE6D;0646;0646; # (𞹭; 𞹭; 𞹭; ن; ن; ) ARABIC MATHEMATICAL STRETCHED NOON
+1EE6E;1EE6E;1EE6E;0633;0633; # (𞹮; 𞹮; 𞹮; س; س; ) ARABIC MATHEMATICAL STRETCHED SEEN
+1EE6F;1EE6F;1EE6F;0639;0639; # (𞹯; 𞹯; 𞹯; ع; ع; ) ARABIC MATHEMATICAL STRETCHED AIN
+1EE70;1EE70;1EE70;0641;0641; # (𞹰; 𞹰; 𞹰; ف; ف; ) ARABIC MATHEMATICAL STRETCHED FEH
+1EE71;1EE71;1EE71;0635;0635; # (𞹱; 𞹱; 𞹱; ص; ص; ) ARABIC MATHEMATICAL STRETCHED SAD
+1EE72;1EE72;1EE72;0642;0642; # (𞹲; 𞹲; 𞹲; ق; ق; ) ARABIC MATHEMATICAL STRETCHED QAF
+1EE74;1EE74;1EE74;0634;0634; # (𞹴; 𞹴; 𞹴; ش; ش; ) ARABIC MATHEMATICAL STRETCHED SHEEN
+1EE75;1EE75;1EE75;062A;062A; # (𞹵; 𞹵; 𞹵; ت; ت; ) ARABIC MATHEMATICAL STRETCHED TEH
+1EE76;1EE76;1EE76;062B;062B; # (𞹶; 𞹶; 𞹶; ث; ث; ) ARABIC MATHEMATICAL STRETCHED THEH
+1EE77;1EE77;1EE77;062E;062E; # (𞹷; 𞹷; 𞹷; خ; خ; ) ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79;1EE79;1EE79;0636;0636; # (𞹹; 𞹹; 𞹹; ض; ض; ) ARABIC MATHEMATICAL STRETCHED DAD
+1EE7A;1EE7A;1EE7A;0638;0638; # (𞹺; 𞹺; 𞹺; ظ; ظ; ) ARABIC MATHEMATICAL STRETCHED ZAH
+1EE7B;1EE7B;1EE7B;063A;063A; # (𞹻; 𞹻; 𞹻; غ; غ; ) ARABIC MATHEMATICAL STRETCHED GHAIN
+1EE7C;1EE7C;1EE7C;066E;066E; # (𞹼; 𞹼; 𞹼; ٮ; ٮ; ) ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E;1EE7E;1EE7E;06A1;06A1; # (𞹾; 𞹾; 𞹾; ڡ; ڡ; ) ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80;1EE80;1EE80;0627;0627; # (𞺀; 𞺀; 𞺀; ا; ا; ) ARABIC MATHEMATICAL LOOPED ALEF
+1EE81;1EE81;1EE81;0628;0628; # (𞺁; 𞺁; 𞺁; ب; ب; ) ARABIC MATHEMATICAL LOOPED BEH
+1EE82;1EE82;1EE82;062C;062C; # (𞺂; 𞺂; 𞺂; ج; ج; ) ARABIC MATHEMATICAL LOOPED JEEM
+1EE83;1EE83;1EE83;062F;062F; # (𞺃; 𞺃; 𞺃; د; د; ) ARABIC MATHEMATICAL LOOPED DAL
+1EE84;1EE84;1EE84;0647;0647; # (𞺄; 𞺄; 𞺄; ه; ه; ) ARABIC MATHEMATICAL LOOPED HEH
+1EE85;1EE85;1EE85;0648;0648; # (𞺅; 𞺅; 𞺅; و; و; ) ARABIC MATHEMATICAL LOOPED WAW
+1EE86;1EE86;1EE86;0632;0632; # (𞺆; 𞺆; 𞺆; ز; ز; ) ARABIC MATHEMATICAL LOOPED ZAIN
+1EE87;1EE87;1EE87;062D;062D; # (𞺇; 𞺇; 𞺇; ح; ح; ) ARABIC MATHEMATICAL LOOPED HAH
+1EE88;1EE88;1EE88;0637;0637; # (𞺈; 𞺈; 𞺈; ط; ط; ) ARABIC MATHEMATICAL LOOPED TAH
+1EE89;1EE89;1EE89;064A;064A; # (𞺉; 𞺉; 𞺉; ي; ي; ) ARABIC MATHEMATICAL LOOPED YEH
+1EE8B;1EE8B;1EE8B;0644;0644; # (𞺋; 𞺋; 𞺋; ل; ل; ) ARABIC MATHEMATICAL LOOPED LAM
+1EE8C;1EE8C;1EE8C;0645;0645; # (𞺌; 𞺌; 𞺌; م; م; ) ARABIC MATHEMATICAL LOOPED MEEM
+1EE8D;1EE8D;1EE8D;0646;0646; # (𞺍; 𞺍; 𞺍; ن; ن; ) ARABIC MATHEMATICAL LOOPED NOON
+1EE8E;1EE8E;1EE8E;0633;0633; # (𞺎; 𞺎; 𞺎; س; س; ) ARABIC MATHEMATICAL LOOPED SEEN
+1EE8F;1EE8F;1EE8F;0639;0639; # (𞺏; 𞺏; 𞺏; ع; ع; ) ARABIC MATHEMATICAL LOOPED AIN
+1EE90;1EE90;1EE90;0641;0641; # (𞺐; 𞺐; 𞺐; ف; ف; ) ARABIC MATHEMATICAL LOOPED FEH
+1EE91;1EE91;1EE91;0635;0635; # (𞺑; 𞺑; 𞺑; ص; ص; ) ARABIC MATHEMATICAL LOOPED SAD
+1EE92;1EE92;1EE92;0642;0642; # (𞺒; 𞺒; 𞺒; ق; ق; ) ARABIC MATHEMATICAL LOOPED QAF
+1EE93;1EE93;1EE93;0631;0631; # (𞺓; 𞺓; 𞺓; ر; ر; ) ARABIC MATHEMATICAL LOOPED REH
+1EE94;1EE94;1EE94;0634;0634; # (𞺔; 𞺔; 𞺔; ش; ش; ) ARABIC MATHEMATICAL LOOPED SHEEN
+1EE95;1EE95;1EE95;062A;062A; # (𞺕; 𞺕; 𞺕; ت; ت; ) ARABIC MATHEMATICAL LOOPED TEH
+1EE96;1EE96;1EE96;062B;062B; # (𞺖; 𞺖; 𞺖; ث; ث; ) ARABIC MATHEMATICAL LOOPED THEH
+1EE97;1EE97;1EE97;062E;062E; # (𞺗; 𞺗; 𞺗; خ; خ; ) ARABIC MATHEMATICAL LOOPED KHAH
+1EE98;1EE98;1EE98;0630;0630; # (𞺘; 𞺘; 𞺘; ذ; ذ; ) ARABIC MATHEMATICAL LOOPED THAL
+1EE99;1EE99;1EE99;0636;0636; # (𞺙; 𞺙; 𞺙; ض; ض; ) ARABIC MATHEMATICAL LOOPED DAD
+1EE9A;1EE9A;1EE9A;0638;0638; # (𞺚; 𞺚; 𞺚; ظ; ظ; ) ARABIC MATHEMATICAL LOOPED ZAH
+1EE9B;1EE9B;1EE9B;063A;063A; # (𞺛; 𞺛; 𞺛; غ; غ; ) ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1;1EEA1;1EEA1;0628;0628; # (𞺡; 𞺡; 𞺡; ب; ب; ) ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
+1EEA2;1EEA2;1EEA2;062C;062C; # (𞺢; 𞺢; 𞺢; ج; ج; ) ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
+1EEA3;1EEA3;1EEA3;062F;062F; # (𞺣; 𞺣; 𞺣; د; د; ) ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5;1EEA5;1EEA5;0648;0648; # (𞺥; 𞺥; 𞺥; و; و; ) ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
+1EEA6;1EEA6;1EEA6;0632;0632; # (𞺦; 𞺦; 𞺦; ز; ز; ) ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
+1EEA7;1EEA7;1EEA7;062D;062D; # (𞺧; 𞺧; 𞺧; ح; ح; ) ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
+1EEA8;1EEA8;1EEA8;0637;0637; # (𞺨; 𞺨; 𞺨; ط; ط; ) ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
+1EEA9;1EEA9;1EEA9;064A;064A; # (𞺩; 𞺩; 𞺩; ي; ي; ) ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB;1EEAB;1EEAB;0644;0644; # (𞺫; 𞺫; 𞺫; ل; ل; ) ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
+1EEAC;1EEAC;1EEAC;0645;0645; # (𞺬; 𞺬; 𞺬; م; م; ) ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
+1EEAD;1EEAD;1EEAD;0646;0646; # (𞺭; 𞺭; 𞺭; ن; ن; ) ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
+1EEAE;1EEAE;1EEAE;0633;0633; # (𞺮; 𞺮; 𞺮; س; س; ) ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
+1EEAF;1EEAF;1EEAF;0639;0639; # (𞺯; 𞺯; 𞺯; ع; ع; ) ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
+1EEB0;1EEB0;1EEB0;0641;0641; # (𞺰; 𞺰; 𞺰; ف; ف; ) ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
+1EEB1;1EEB1;1EEB1;0635;0635; # (𞺱; 𞺱; 𞺱; ص; ص; ) ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
+1EEB2;1EEB2;1EEB2;0642;0642; # (𞺲; 𞺲; 𞺲; ق; ق; ) ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
+1EEB3;1EEB3;1EEB3;0631;0631; # (𞺳; 𞺳; 𞺳; ر; ر; ) ARABIC MATHEMATICAL DOUBLE-STRUCK REH
+1EEB4;1EEB4;1EEB4;0634;0634; # (𞺴; 𞺴; 𞺴; ش; ش; ) ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
+1EEB5;1EEB5;1EEB5;062A;062A; # (𞺵; 𞺵; 𞺵; ت; ت; ) ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
+1EEB6;1EEB6;1EEB6;062B;062B; # (𞺶; 𞺶; 𞺶; ث; ث; ) ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
+1EEB7;1EEB7;1EEB7;062E;062E; # (𞺷; 𞺷; 𞺷; خ; خ; ) ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
+1EEB8;1EEB8;1EEB8;0630;0630; # (𞺸; 𞺸; 𞺸; ذ; ذ; ) ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
+1EEB9;1EEB9;1EEB9;0636;0636; # (𞺹; 𞺹; 𞺹; ض; ض; ) ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
+1EEBA;1EEBA;1EEBA;0638;0638; # (𞺺; 𞺺; 𞺺; ظ; ظ; ) ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
+1EEBB;1EEBB;1EEBB;063A;063A; # (𞺻; 𞺻; 𞺻; غ; غ; ) ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1F100;1F100;1F100;0030 002E;0030 002E; # (🄀; 🄀; 🄀; 0.; 0.; ) DIGIT ZERO FULL STOP
+1F101;1F101;1F101;0030 002C;0030 002C; # (🄁; 🄁; 🄁; 0,; 0,; ) DIGIT ZERO COMMA
+1F102;1F102;1F102;0031 002C;0031 002C; # (🄂; 🄂; 🄂; 1,; 1,; ) DIGIT ONE COMMA
+1F103;1F103;1F103;0032 002C;0032 002C; # (🄃; 🄃; 🄃; 2,; 2,; ) DIGIT TWO COMMA
+1F104;1F104;1F104;0033 002C;0033 002C; # (🄄; 🄄; 🄄; 3,; 3,; ) DIGIT THREE COMMA
+1F105;1F105;1F105;0034 002C;0034 002C; # (🄅; 🄅; 🄅; 4,; 4,; ) DIGIT FOUR COMMA
+1F106;1F106;1F106;0035 002C;0035 002C; # (🄆; 🄆; 🄆; 5,; 5,; ) DIGIT FIVE COMMA
+1F107;1F107;1F107;0036 002C;0036 002C; # (🄇; 🄇; 🄇; 6,; 6,; ) DIGIT SIX COMMA
+1F108;1F108;1F108;0037 002C;0037 002C; # (🄈; 🄈; 🄈; 7,; 7,; ) DIGIT SEVEN COMMA
+1F109;1F109;1F109;0038 002C;0038 002C; # (🄉; 🄉; 🄉; 8,; 8,; ) DIGIT EIGHT COMMA
+1F10A;1F10A;1F10A;0039 002C;0039 002C; # (🄊; 🄊; 🄊; 9,; 9,; ) DIGIT NINE COMMA
+1F110;1F110;1F110;0028 0041 0029;0028 0041 0029; # (🄐; 🄐; 🄐; (A); (A); ) PARENTHESIZED LATIN CAPITAL LETTER A
+1F111;1F111;1F111;0028 0042 0029;0028 0042 0029; # (🄑; 🄑; 🄑; (B); (B); ) PARENTHESIZED LATIN CAPITAL LETTER B
+1F112;1F112;1F112;0028 0043 0029;0028 0043 0029; # (🄒; 🄒; 🄒; (C); (C); ) PARENTHESIZED LATIN CAPITAL LETTER C
+1F113;1F113;1F113;0028 0044 0029;0028 0044 0029; # (🄓; 🄓; 🄓; (D); (D); ) PARENTHESIZED LATIN CAPITAL LETTER D
+1F114;1F114;1F114;0028 0045 0029;0028 0045 0029; # (🄔; 🄔; 🄔; (E); (E); ) PARENTHESIZED LATIN CAPITAL LETTER E
+1F115;1F115;1F115;0028 0046 0029;0028 0046 0029; # (🄕; 🄕; 🄕; (F); (F); ) PARENTHESIZED LATIN CAPITAL LETTER F
+1F116;1F116;1F116;0028 0047 0029;0028 0047 0029; # (🄖; 🄖; 🄖; (G); (G); ) PARENTHESIZED LATIN CAPITAL LETTER G
+1F117;1F117;1F117;0028 0048 0029;0028 0048 0029; # (🄗; 🄗; 🄗; (H); (H); ) PARENTHESIZED LATIN CAPITAL LETTER H
+1F118;1F118;1F118;0028 0049 0029;0028 0049 0029; # (🄘; 🄘; 🄘; (I); (I); ) PARENTHESIZED LATIN CAPITAL LETTER I
+1F119;1F119;1F119;0028 004A 0029;0028 004A 0029; # (🄙; 🄙; 🄙; (J); (J); ) PARENTHESIZED LATIN CAPITAL LETTER J
+1F11A;1F11A;1F11A;0028 004B 0029;0028 004B 0029; # (🄚; 🄚; 🄚; (K); (K); ) PARENTHESIZED LATIN CAPITAL LETTER K
+1F11B;1F11B;1F11B;0028 004C 0029;0028 004C 0029; # (🄛; 🄛; 🄛; (L); (L); ) PARENTHESIZED LATIN CAPITAL LETTER L
+1F11C;1F11C;1F11C;0028 004D 0029;0028 004D 0029; # (🄜; 🄜; 🄜; (M); (M); ) PARENTHESIZED LATIN CAPITAL LETTER M
+1F11D;1F11D;1F11D;0028 004E 0029;0028 004E 0029; # (🄝; 🄝; 🄝; (N); (N); ) PARENTHESIZED LATIN CAPITAL LETTER N
+1F11E;1F11E;1F11E;0028 004F 0029;0028 004F 0029; # (🄞; 🄞; 🄞; (O); (O); ) PARENTHESIZED LATIN CAPITAL LETTER O
+1F11F;1F11F;1F11F;0028 0050 0029;0028 0050 0029; # (🄟; 🄟; 🄟; (P); (P); ) PARENTHESIZED LATIN CAPITAL LETTER P
+1F120;1F120;1F120;0028 0051 0029;0028 0051 0029; # (🄠; 🄠; 🄠; (Q); (Q); ) PARENTHESIZED LATIN CAPITAL LETTER Q
+1F121;1F121;1F121;0028 0052 0029;0028 0052 0029; # (🄡; 🄡; 🄡; (R); (R); ) PARENTHESIZED LATIN CAPITAL LETTER R
+1F122;1F122;1F122;0028 0053 0029;0028 0053 0029; # (🄢; 🄢; 🄢; (S); (S); ) PARENTHESIZED LATIN CAPITAL LETTER S
+1F123;1F123;1F123;0028 0054 0029;0028 0054 0029; # (🄣; 🄣; 🄣; (T); (T); ) PARENTHESIZED LATIN CAPITAL LETTER T
+1F124;1F124;1F124;0028 0055 0029;0028 0055 0029; # (🄤; 🄤; 🄤; (U); (U); ) PARENTHESIZED LATIN CAPITAL LETTER U
+1F125;1F125;1F125;0028 0056 0029;0028 0056 0029; # (🄥; 🄥; 🄥; (V); (V); ) PARENTHESIZED LATIN CAPITAL LETTER V
+1F126;1F126;1F126;0028 0057 0029;0028 0057 0029; # (🄦; 🄦; 🄦; (W); (W); ) PARENTHESIZED LATIN CAPITAL LETTER W
+1F127;1F127;1F127;0028 0058 0029;0028 0058 0029; # (🄧; 🄧; 🄧; (X); (X); ) PARENTHESIZED LATIN CAPITAL LETTER X
+1F128;1F128;1F128;0028 0059 0029;0028 0059 0029; # (🄨; 🄨; 🄨; (Y); (Y); ) PARENTHESIZED LATIN CAPITAL LETTER Y
+1F129;1F129;1F129;0028 005A 0029;0028 005A 0029; # (🄩; 🄩; 🄩; (Z); (Z); ) PARENTHESIZED LATIN CAPITAL LETTER Z
+1F12A;1F12A;1F12A;3014 0053 3015;3014 0053 3015; # (🄪; 🄪; 🄪; 〔S〕; 〔S〕; ) TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
+1F12B;1F12B;1F12B;0043;0043; # (🄫; 🄫; 🄫; C; C; ) CIRCLED ITALIC LATIN CAPITAL LETTER C
+1F12C;1F12C;1F12C;0052;0052; # (🄬; 🄬; 🄬; R; R; ) CIRCLED ITALIC LATIN CAPITAL LETTER R
+1F12D;1F12D;1F12D;0043 0044;0043 0044; # (🄭; 🄭; 🄭; CD; CD; ) CIRCLED CD
+1F12E;1F12E;1F12E;0057 005A;0057 005A; # (🄮; 🄮; 🄮; WZ; WZ; ) CIRCLED WZ
+1F130;1F130;1F130;0041;0041; # (🄰; 🄰; 🄰; A; A; ) SQUARED LATIN CAPITAL LETTER A
+1F131;1F131;1F131;0042;0042; # (🄱; 🄱; 🄱; B; B; ) SQUARED LATIN CAPITAL LETTER B
+1F132;1F132;1F132;0043;0043; # (🄲; 🄲; 🄲; C; C; ) SQUARED LATIN CAPITAL LETTER C
+1F133;1F133;1F133;0044;0044; # (🄳; 🄳; 🄳; D; D; ) SQUARED LATIN CAPITAL LETTER D
+1F134;1F134;1F134;0045;0045; # (🄴; 🄴; 🄴; E; E; ) SQUARED LATIN CAPITAL LETTER E
+1F135;1F135;1F135;0046;0046; # (🄵; 🄵; 🄵; F; F; ) SQUARED LATIN CAPITAL LETTER F
+1F136;1F136;1F136;0047;0047; # (🄶; 🄶; 🄶; G; G; ) SQUARED LATIN CAPITAL LETTER G
+1F137;1F137;1F137;0048;0048; # (🄷; 🄷; 🄷; H; H; ) SQUARED LATIN CAPITAL LETTER H
+1F138;1F138;1F138;0049;0049; # (🄸; 🄸; 🄸; I; I; ) SQUARED LATIN CAPITAL LETTER I
+1F139;1F139;1F139;004A;004A; # (🄹; 🄹; 🄹; J; J; ) SQUARED LATIN CAPITAL LETTER J
+1F13A;1F13A;1F13A;004B;004B; # (🄺; 🄺; 🄺; K; K; ) SQUARED LATIN CAPITAL LETTER K
+1F13B;1F13B;1F13B;004C;004C; # (🄻; 🄻; 🄻; L; L; ) SQUARED LATIN CAPITAL LETTER L
+1F13C;1F13C;1F13C;004D;004D; # (🄼; 🄼; 🄼; M; M; ) SQUARED LATIN CAPITAL LETTER M
+1F13D;1F13D;1F13D;004E;004E; # (🄽; 🄽; 🄽; N; N; ) SQUARED LATIN CAPITAL LETTER N
+1F13E;1F13E;1F13E;004F;004F; # (🄾; 🄾; 🄾; O; O; ) SQUARED LATIN CAPITAL LETTER O
+1F13F;1F13F;1F13F;0050;0050; # (🄿; 🄿; 🄿; P; P; ) SQUARED LATIN CAPITAL LETTER P
+1F140;1F140;1F140;0051;0051; # (🅀; 🅀; 🅀; Q; Q; ) SQUARED LATIN CAPITAL LETTER Q
+1F141;1F141;1F141;0052;0052; # (🅁; 🅁; 🅁; R; R; ) SQUARED LATIN CAPITAL LETTER R
+1F142;1F142;1F142;0053;0053; # (🅂; 🅂; 🅂; S; S; ) SQUARED LATIN CAPITAL LETTER S
+1F143;1F143;1F143;0054;0054; # (🅃; 🅃; 🅃; T; T; ) SQUARED LATIN CAPITAL LETTER T
+1F144;1F144;1F144;0055;0055; # (🅄; 🅄; 🅄; U; U; ) SQUARED LATIN CAPITAL LETTER U
+1F145;1F145;1F145;0056;0056; # (🅅; 🅅; 🅅; V; V; ) SQUARED LATIN CAPITAL LETTER V
+1F146;1F146;1F146;0057;0057; # (🅆; 🅆; 🅆; W; W; ) SQUARED LATIN CAPITAL LETTER W
+1F147;1F147;1F147;0058;0058; # (🅇; 🅇; 🅇; X; X; ) SQUARED LATIN CAPITAL LETTER X
+1F148;1F148;1F148;0059;0059; # (🅈; 🅈; 🅈; Y; Y; ) SQUARED LATIN CAPITAL LETTER Y
+1F149;1F149;1F149;005A;005A; # (🅉; 🅉; 🅉; Z; Z; ) SQUARED LATIN CAPITAL LETTER Z
+1F14A;1F14A;1F14A;0048 0056;0048 0056; # (🅊; 🅊; 🅊; HV; HV; ) SQUARED HV
+1F14B;1F14B;1F14B;004D 0056;004D 0056; # (🅋; 🅋; 🅋; MV; MV; ) SQUARED MV
+1F14C;1F14C;1F14C;0053 0044;0053 0044; # (🅌; 🅌; 🅌; SD; SD; ) SQUARED SD
+1F14D;1F14D;1F14D;0053 0053;0053 0053; # (🅍; 🅍; 🅍; SS; SS; ) SQUARED SS
+1F14E;1F14E;1F14E;0050 0050 0056;0050 0050 0056; # (🅎; 🅎; 🅎; PPV; PPV; ) SQUARED PPV
+1F14F;1F14F;1F14F;0057 0043;0057 0043; # (🅏; 🅏; 🅏; WC; WC; ) SQUARED WC
+1F16A;1F16A;1F16A;004D 0043;004D 0043; # (🅪; 🅪; 🅪; MC; MC; ) RAISED MC SIGN
+1F16B;1F16B;1F16B;004D 0044;004D 0044; # (🅫; 🅫; 🅫; MD; MD; ) RAISED MD SIGN
+1F16C;1F16C;1F16C;004D 0052;004D 0052; # (🅬; 🅬; 🅬; MR; MR; ) RAISED MR SIGN
+1F190;1F190;1F190;0044 004A;0044 004A; # (🆐; 🆐; 🆐; DJ; DJ; ) SQUARE DJ
+1F200;1F200;1F200;307B 304B;307B 304B; # (🈀; 🈀; 🈀; ほか; ほか; ) SQUARE HIRAGANA HOKA
+1F201;1F201;1F201;30B3 30B3;30B3 30B3; # (🈁; 🈁; 🈁; ココ; ココ; ) SQUARED KATAKANA KOKO
+1F202;1F202;1F202;30B5;30B5; # (🈂; 🈂; 🈂; サ; サ; ) SQUARED KATAKANA SA
+1F210;1F210;1F210;624B;624B; # (🈐; 🈐; 🈐; 手; 手; ) SQUARED CJK UNIFIED IDEOGRAPH-624B
+1F211;1F211;1F211;5B57;5B57; # (🈑; 🈑; 🈑; 字; 字; ) SQUARED CJK UNIFIED IDEOGRAPH-5B57
+1F212;1F212;1F212;53CC;53CC; # (🈒; 🈒; 🈒; 双; 双; ) SQUARED CJK UNIFIED IDEOGRAPH-53CC
+1F213;1F213;1F213;30C7;30C6 3099; # (🈓; 🈓; 🈓; デ; テ◌゙; ) SQUARED KATAKANA DE
+1F214;1F214;1F214;4E8C;4E8C; # (🈔; 🈔; 🈔; 二; 二; ) SQUARED CJK UNIFIED IDEOGRAPH-4E8C
+1F215;1F215;1F215;591A;591A; # (🈕; 🈕; 🈕; 多; 多; ) SQUARED CJK UNIFIED IDEOGRAPH-591A
+1F216;1F216;1F216;89E3;89E3; # (🈖; 🈖; 🈖; 解; 解; ) SQUARED CJK UNIFIED IDEOGRAPH-89E3
+1F217;1F217;1F217;5929;5929; # (🈗; 🈗; 🈗; 天; 天; ) SQUARED CJK UNIFIED IDEOGRAPH-5929
+1F218;1F218;1F218;4EA4;4EA4; # (🈘; 🈘; 🈘; 交; 交; ) SQUARED CJK UNIFIED IDEOGRAPH-4EA4
+1F219;1F219;1F219;6620;6620; # (🈙; 🈙; 🈙; 映; 映; ) SQUARED CJK UNIFIED IDEOGRAPH-6620
+1F21A;1F21A;1F21A;7121;7121; # (🈚; 🈚; 🈚; 無; 無; ) SQUARED CJK UNIFIED IDEOGRAPH-7121
+1F21B;1F21B;1F21B;6599;6599; # (🈛; 🈛; 🈛; 料; 料; ) SQUARED CJK UNIFIED IDEOGRAPH-6599
+1F21C;1F21C;1F21C;524D;524D; # (🈜; 🈜; 🈜; 前; 前; ) SQUARED CJK UNIFIED IDEOGRAPH-524D
+1F21D;1F21D;1F21D;5F8C;5F8C; # (🈝; 🈝; 🈝; 後; 後; ) SQUARED CJK UNIFIED IDEOGRAPH-5F8C
+1F21E;1F21E;1F21E;518D;518D; # (🈞; 🈞; 🈞; 再; 再; ) SQUARED CJK UNIFIED IDEOGRAPH-518D
+1F21F;1F21F;1F21F;65B0;65B0; # (🈟; 🈟; 🈟; 新; 新; ) SQUARED CJK UNIFIED IDEOGRAPH-65B0
+1F220;1F220;1F220;521D;521D; # (🈠; 🈠; 🈠; 初; 初; ) SQUARED CJK UNIFIED IDEOGRAPH-521D
+1F221;1F221;1F221;7D42;7D42; # (🈡; 🈡; 🈡; 終; 終; ) SQUARED CJK UNIFIED IDEOGRAPH-7D42
+1F222;1F222;1F222;751F;751F; # (🈢; 🈢; 🈢; 生; 生; ) SQUARED CJK UNIFIED IDEOGRAPH-751F
+1F223;1F223;1F223;8CA9;8CA9; # (🈣; 🈣; 🈣; 販; 販; ) SQUARED CJK UNIFIED IDEOGRAPH-8CA9
+1F224;1F224;1F224;58F0;58F0; # (🈤; 🈤; 🈤; 声; 声; ) SQUARED CJK UNIFIED IDEOGRAPH-58F0
+1F225;1F225;1F225;5439;5439; # (🈥; 🈥; 🈥; 吹; 吹; ) SQUARED CJK UNIFIED IDEOGRAPH-5439
+1F226;1F226;1F226;6F14;6F14; # (🈦; 🈦; 🈦; 演; 演; ) SQUARED CJK UNIFIED IDEOGRAPH-6F14
+1F227;1F227;1F227;6295;6295; # (🈧; 🈧; 🈧; 投; 投; ) SQUARED CJK UNIFIED IDEOGRAPH-6295
+1F228;1F228;1F228;6355;6355; # (🈨; 🈨; 🈨; 捕; 捕; ) SQUARED CJK UNIFIED IDEOGRAPH-6355
+1F229;1F229;1F229;4E00;4E00; # (🈩; 🈩; 🈩; 一; 一; ) SQUARED CJK UNIFIED IDEOGRAPH-4E00
+1F22A;1F22A;1F22A;4E09;4E09; # (🈪; 🈪; 🈪; 三; 三; ) SQUARED CJK UNIFIED IDEOGRAPH-4E09
+1F22B;1F22B;1F22B;904A;904A; # (🈫; 🈫; 🈫; 遊; 遊; ) SQUARED CJK UNIFIED IDEOGRAPH-904A
+1F22C;1F22C;1F22C;5DE6;5DE6; # (🈬; 🈬; 🈬; 左; 左; ) SQUARED CJK UNIFIED IDEOGRAPH-5DE6
+1F22D;1F22D;1F22D;4E2D;4E2D; # (🈭; 🈭; 🈭; 中; 中; ) SQUARED CJK UNIFIED IDEOGRAPH-4E2D
+1F22E;1F22E;1F22E;53F3;53F3; # (🈮; 🈮; 🈮; 右; 右; ) SQUARED CJK UNIFIED IDEOGRAPH-53F3
+1F22F;1F22F;1F22F;6307;6307; # (🈯; 🈯; 🈯; 指; 指; ) SQUARED CJK UNIFIED IDEOGRAPH-6307
+1F230;1F230;1F230;8D70;8D70; # (🈰; 🈰; 🈰; 走; 走; ) SQUARED CJK UNIFIED IDEOGRAPH-8D70
+1F231;1F231;1F231;6253;6253; # (🈱; 🈱; 🈱; 打; 打; ) SQUARED CJK UNIFIED IDEOGRAPH-6253
+1F232;1F232;1F232;7981;7981; # (🈲; 🈲; 🈲; 禁; 禁; ) SQUARED CJK UNIFIED IDEOGRAPH-7981
+1F233;1F233;1F233;7A7A;7A7A; # (🈳; 🈳; 🈳; 空; 空; ) SQUARED CJK UNIFIED IDEOGRAPH-7A7A
+1F234;1F234;1F234;5408;5408; # (🈴; 🈴; 🈴; 合; 合; ) SQUARED CJK UNIFIED IDEOGRAPH-5408
+1F235;1F235;1F235;6E80;6E80; # (🈵; 🈵; 🈵; 満; 満; ) SQUARED CJK UNIFIED IDEOGRAPH-6E80
+1F236;1F236;1F236;6709;6709; # (🈶; 🈶; 🈶; 有; 有; ) SQUARED CJK UNIFIED IDEOGRAPH-6709
+1F237;1F237;1F237;6708;6708; # (🈷; 🈷; 🈷; 月; 月; ) SQUARED CJK UNIFIED IDEOGRAPH-6708
+1F238;1F238;1F238;7533;7533; # (🈸; 🈸; 🈸; 申; 申; ) SQUARED CJK UNIFIED IDEOGRAPH-7533
+1F239;1F239;1F239;5272;5272; # (🈹; 🈹; 🈹; 割; 割; ) SQUARED CJK UNIFIED IDEOGRAPH-5272
+1F23A;1F23A;1F23A;55B6;55B6; # (🈺; 🈺; 🈺; 営; 営; ) SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F23B;1F23B;1F23B;914D;914D; # (🈻; 🈻; 🈻; 配; 配; ) SQUARED CJK UNIFIED IDEOGRAPH-914D
+1F240;1F240;1F240;3014 672C 3015;3014 672C 3015; # (🉀; 🉀; 🉀; 〔本〕; 〔本〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F241;1F241;1F241;3014 4E09 3015;3014 4E09 3015; # (🉁; 🉁; 🉁; 〔三〕; 〔三〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242;1F242;1F242;3014 4E8C 3015;3014 4E8C 3015; # (🉂; 🉂; 🉂; 〔二〕; 〔二〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F243;1F243;1F243;3014 5B89 3015;3014 5B89 3015; # (🉃; 🉃; 🉃; 〔安〕; 〔安〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F244;1F244;1F244;3014 70B9 3015;3014 70B9 3015; # (🉄; 🉄; 🉄; 〔点〕; 〔点〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F245;1F245;1F245;3014 6253 3015;3014 6253 3015; # (🉅; 🉅; 🉅; 〔打〕; 〔打〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F246;1F246;1F246;3014 76D7 3015;3014 76D7 3015; # (🉆; 🉆; 🉆; 〔盗〕; 〔盗〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F247;1F247;1F247;3014 52DD 3015;3014 52DD 3015; # (🉇; 🉇; 🉇; 〔勝〕; 〔勝〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F248;1F248;1F248;3014 6557 3015;3014 6557 3015; # (🉈; 🉈; 🉈; 〔敗〕; 〔敗〕; ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250;1F250;1F250;5F97;5F97; # (🉐; 🉐; 🉐; 得; 得; ) CIRCLED IDEOGRAPH ADVANTAGE
+1F251;1F251;1F251;53EF;53EF; # (🉑; 🉑; 🉑; 可; 可; ) CIRCLED IDEOGRAPH ACCEPT
+1FBF0;1FBF0;1FBF0;0030;0030; # (🯰; 🯰; 🯰; 0; 0; ) SEGMENTED DIGIT ZERO
+1FBF1;1FBF1;1FBF1;0031;0031; # (🯱; 🯱; 🯱; 1; 1; ) SEGMENTED DIGIT ONE
+1FBF2;1FBF2;1FBF2;0032;0032; # (🯲; 🯲; 🯲; 2; 2; ) SEGMENTED DIGIT TWO
+1FBF3;1FBF3;1FBF3;0033;0033; # (🯳; 🯳; 🯳; 3; 3; ) SEGMENTED DIGIT THREE
+1FBF4;1FBF4;1FBF4;0034;0034; # (🯴; 🯴; 🯴; 4; 4; ) SEGMENTED DIGIT FOUR
+1FBF5;1FBF5;1FBF5;0035;0035; # (🯵; 🯵; 🯵; 5; 5; ) SEGMENTED DIGIT FIVE
+1FBF6;1FBF6;1FBF6;0036;0036; # (🯶; 🯶; 🯶; 6; 6; ) SEGMENTED DIGIT SIX
+1FBF7;1FBF7;1FBF7;0037;0037; # (🯷; 🯷; 🯷; 7; 7; ) SEGMENTED DIGIT SEVEN
+1FBF8;1FBF8;1FBF8;0038;0038; # (🯸; 🯸; 🯸; 8; 8; ) SEGMENTED DIGIT EIGHT
+1FBF9;1FBF9;1FBF9;0039;0039; # (🯹; 🯹; 🯹; 9; 9; ) SEGMENTED DIGIT NINE
+2F800;4E3D;4E3D;4E3D;4E3D; # (丽; 丽; 丽; 丽; 丽; ) CJK COMPATIBILITY IDEOGRAPH-2F800
+2F801;4E38;4E38;4E38;4E38; # (丸; 丸; 丸; 丸; 丸; ) CJK COMPATIBILITY IDEOGRAPH-2F801
+2F802;4E41;4E41;4E41;4E41; # (乁; 乁; 乁; 乁; 乁; ) CJK COMPATIBILITY IDEOGRAPH-2F802
+2F803;20122;20122;20122;20122; # (𠄢; 𠄢; 𠄢; 𠄢; 𠄢; ) CJK COMPATIBILITY IDEOGRAPH-2F803
+2F804;4F60;4F60;4F60;4F60; # (你; 你; 你; 你; 你; ) CJK COMPATIBILITY IDEOGRAPH-2F804
+2F805;4FAE;4FAE;4FAE;4FAE; # (侮; 侮; 侮; 侮; 侮; ) CJK COMPATIBILITY IDEOGRAPH-2F805
+2F806;4FBB;4FBB;4FBB;4FBB; # (侻; 侻; 侻; 侻; 侻; ) CJK COMPATIBILITY IDEOGRAPH-2F806
+2F807;5002;5002;5002;5002; # (倂; 倂; 倂; 倂; 倂; ) CJK COMPATIBILITY IDEOGRAPH-2F807
+2F808;507A;507A;507A;507A; # (偺; 偺; 偺; 偺; 偺; ) CJK COMPATIBILITY IDEOGRAPH-2F808
+2F809;5099;5099;5099;5099; # (備; 備; 備; 備; 備; ) CJK COMPATIBILITY IDEOGRAPH-2F809
+2F80A;50E7;50E7;50E7;50E7; # (僧; 僧; 僧; 僧; 僧; ) CJK COMPATIBILITY IDEOGRAPH-2F80A
+2F80B;50CF;50CF;50CF;50CF; # (像; 像; 像; 像; 像; ) CJK COMPATIBILITY IDEOGRAPH-2F80B
+2F80C;349E;349E;349E;349E; # (㒞; 㒞; 㒞; 㒞; 㒞; ) CJK COMPATIBILITY IDEOGRAPH-2F80C
+2F80D;2063A;2063A;2063A;2063A; # (𠘺; 𠘺; 𠘺; 𠘺; 𠘺; ) CJK COMPATIBILITY IDEOGRAPH-2F80D
+2F80E;514D;514D;514D;514D; # (免; 免; 免; 免; 免; ) CJK COMPATIBILITY IDEOGRAPH-2F80E
+2F80F;5154;5154;5154;5154; # (兔; 兔; 兔; 兔; 兔; ) CJK COMPATIBILITY IDEOGRAPH-2F80F
+2F810;5164;5164;5164;5164; # (兤; 兤; 兤; 兤; 兤; ) CJK COMPATIBILITY IDEOGRAPH-2F810
+2F811;5177;5177;5177;5177; # (具; 具; 具; 具; 具; ) CJK COMPATIBILITY IDEOGRAPH-2F811
+2F812;2051C;2051C;2051C;2051C; # (𠔜; 𠔜; 𠔜; 𠔜; 𠔜; ) CJK COMPATIBILITY IDEOGRAPH-2F812
+2F813;34B9;34B9;34B9;34B9; # (㒹; 㒹; 㒹; 㒹; 㒹; ) CJK COMPATIBILITY IDEOGRAPH-2F813
+2F814;5167;5167;5167;5167; # (內; 內; 內; 內; 內; ) CJK COMPATIBILITY IDEOGRAPH-2F814
+2F815;518D;518D;518D;518D; # (再; 再; 再; 再; 再; ) CJK COMPATIBILITY IDEOGRAPH-2F815
+2F816;2054B;2054B;2054B;2054B; # (𠕋; 𠕋; 𠕋; 𠕋; 𠕋; ) CJK COMPATIBILITY IDEOGRAPH-2F816
+2F817;5197;5197;5197;5197; # (冗; 冗; 冗; 冗; 冗; ) CJK COMPATIBILITY IDEOGRAPH-2F817
+2F818;51A4;51A4;51A4;51A4; # (冤; 冤; 冤; 冤; 冤; ) CJK COMPATIBILITY IDEOGRAPH-2F818
+2F819;4ECC;4ECC;4ECC;4ECC; # (仌; 仌; 仌; 仌; 仌; ) CJK COMPATIBILITY IDEOGRAPH-2F819
+2F81A;51AC;51AC;51AC;51AC; # (冬; 冬; 冬; 冬; 冬; ) CJK COMPATIBILITY IDEOGRAPH-2F81A
+2F81B;51B5;51B5;51B5;51B5; # (况; 况; 况; 况; 况; ) CJK COMPATIBILITY IDEOGRAPH-2F81B
+2F81C;291DF;291DF;291DF;291DF; # (𩇟; 𩇟; 𩇟; 𩇟; 𩇟; ) CJK COMPATIBILITY IDEOGRAPH-2F81C
+2F81D;51F5;51F5;51F5;51F5; # (凵; 凵; 凵; 凵; 凵; ) CJK COMPATIBILITY IDEOGRAPH-2F81D
+2F81E;5203;5203;5203;5203; # (刃; 刃; 刃; 刃; 刃; ) CJK COMPATIBILITY IDEOGRAPH-2F81E
+2F81F;34DF;34DF;34DF;34DF; # (㓟; 㓟; 㓟; 㓟; 㓟; ) CJK COMPATIBILITY IDEOGRAPH-2F81F
+2F820;523B;523B;523B;523B; # (刻; 刻; 刻; 刻; 刻; ) CJK COMPATIBILITY IDEOGRAPH-2F820
+2F821;5246;5246;5246;5246; # (剆; 剆; 剆; 剆; 剆; ) CJK COMPATIBILITY IDEOGRAPH-2F821
+2F822;5272;5272;5272;5272; # (割; 割; 割; 割; 割; ) CJK COMPATIBILITY IDEOGRAPH-2F822
+2F823;5277;5277;5277;5277; # (剷; 剷; 剷; 剷; 剷; ) CJK COMPATIBILITY IDEOGRAPH-2F823
+2F824;3515;3515;3515;3515; # (㔕; 㔕; 㔕; 㔕; 㔕; ) CJK COMPATIBILITY IDEOGRAPH-2F824
+2F825;52C7;52C7;52C7;52C7; # (勇; 勇; 勇; 勇; 勇; ) CJK COMPATIBILITY IDEOGRAPH-2F825
+2F826;52C9;52C9;52C9;52C9; # (勉; 勉; 勉; 勉; 勉; ) CJK COMPATIBILITY IDEOGRAPH-2F826
+2F827;52E4;52E4;52E4;52E4; # (勤; 勤; 勤; 勤; 勤; ) CJK COMPATIBILITY IDEOGRAPH-2F827
+2F828;52FA;52FA;52FA;52FA; # (勺; 勺; 勺; 勺; 勺; ) CJK COMPATIBILITY IDEOGRAPH-2F828
+2F829;5305;5305;5305;5305; # (包; 包; 包; 包; 包; ) CJK COMPATIBILITY IDEOGRAPH-2F829
+2F82A;5306;5306;5306;5306; # (匆; 匆; 匆; 匆; 匆; ) CJK COMPATIBILITY IDEOGRAPH-2F82A
+2F82B;5317;5317;5317;5317; # (北; 北; 北; 北; 北; ) CJK COMPATIBILITY IDEOGRAPH-2F82B
+2F82C;5349;5349;5349;5349; # (卉; 卉; 卉; 卉; 卉; ) CJK COMPATIBILITY IDEOGRAPH-2F82C
+2F82D;5351;5351;5351;5351; # (卑; 卑; 卑; 卑; 卑; ) CJK COMPATIBILITY IDEOGRAPH-2F82D
+2F82E;535A;535A;535A;535A; # (博; 博; 博; 博; 博; ) CJK COMPATIBILITY IDEOGRAPH-2F82E
+2F82F;5373;5373;5373;5373; # (即; 即; 即; 即; 即; ) CJK COMPATIBILITY IDEOGRAPH-2F82F
+2F830;537D;537D;537D;537D; # (卽; 卽; 卽; 卽; 卽; ) CJK COMPATIBILITY IDEOGRAPH-2F830
+2F831;537F;537F;537F;537F; # (卿; 卿; 卿; 卿; 卿; ) CJK COMPATIBILITY IDEOGRAPH-2F831
+2F832;537F;537F;537F;537F; # (卿; 卿; 卿; 卿; 卿; ) CJK COMPATIBILITY IDEOGRAPH-2F832
+2F833;537F;537F;537F;537F; # (卿; 卿; 卿; 卿; 卿; ) CJK COMPATIBILITY IDEOGRAPH-2F833
+2F834;20A2C;20A2C;20A2C;20A2C; # (𠨬; 𠨬; 𠨬; 𠨬; 𠨬; ) CJK COMPATIBILITY IDEOGRAPH-2F834
+2F835;7070;7070;7070;7070; # (灰; 灰; 灰; 灰; 灰; ) CJK COMPATIBILITY IDEOGRAPH-2F835
+2F836;53CA;53CA;53CA;53CA; # (及; 及; 及; 及; 及; ) CJK COMPATIBILITY IDEOGRAPH-2F836
+2F837;53DF;53DF;53DF;53DF; # (叟; 叟; 叟; 叟; 叟; ) CJK COMPATIBILITY IDEOGRAPH-2F837
+2F838;20B63;20B63;20B63;20B63; # (𠭣; 𠭣; 𠭣; 𠭣; 𠭣; ) CJK COMPATIBILITY IDEOGRAPH-2F838
+2F839;53EB;53EB;53EB;53EB; # (叫; 叫; 叫; 叫; 叫; ) CJK COMPATIBILITY IDEOGRAPH-2F839
+2F83A;53F1;53F1;53F1;53F1; # (叱; 叱; 叱; 叱; 叱; ) CJK COMPATIBILITY IDEOGRAPH-2F83A
+2F83B;5406;5406;5406;5406; # (吆; 吆; 吆; 吆; 吆; ) CJK COMPATIBILITY IDEOGRAPH-2F83B
+2F83C;549E;549E;549E;549E; # (咞; 咞; 咞; 咞; 咞; ) CJK COMPATIBILITY IDEOGRAPH-2F83C
+2F83D;5438;5438;5438;5438; # (吸; 吸; 吸; 吸; 吸; ) CJK COMPATIBILITY IDEOGRAPH-2F83D
+2F83E;5448;5448;5448;5448; # (呈; 呈; 呈; 呈; 呈; ) CJK COMPATIBILITY IDEOGRAPH-2F83E
+2F83F;5468;5468;5468;5468; # (周; 周; 周; 周; 周; ) CJK COMPATIBILITY IDEOGRAPH-2F83F
+2F840;54A2;54A2;54A2;54A2; # (咢; 咢; 咢; 咢; 咢; ) CJK COMPATIBILITY IDEOGRAPH-2F840
+2F841;54F6;54F6;54F6;54F6; # (哶; 哶; 哶; 哶; 哶; ) CJK COMPATIBILITY IDEOGRAPH-2F841
+2F842;5510;5510;5510;5510; # (唐; 唐; 唐; 唐; 唐; ) CJK COMPATIBILITY IDEOGRAPH-2F842
+2F843;5553;5553;5553;5553; # (啓; 啓; 啓; 啓; 啓; ) CJK COMPATIBILITY IDEOGRAPH-2F843
+2F844;5563;5563;5563;5563; # (啣; 啣; 啣; 啣; 啣; ) CJK COMPATIBILITY IDEOGRAPH-2F844
+2F845;5584;5584;5584;5584; # (善; 善; 善; 善; 善; ) CJK COMPATIBILITY IDEOGRAPH-2F845
+2F846;5584;5584;5584;5584; # (善; 善; 善; 善; 善; ) CJK COMPATIBILITY IDEOGRAPH-2F846
+2F847;5599;5599;5599;5599; # (喙; 喙; 喙; 喙; 喙; ) CJK COMPATIBILITY IDEOGRAPH-2F847
+2F848;55AB;55AB;55AB;55AB; # (喫; 喫; 喫; 喫; 喫; ) CJK COMPATIBILITY IDEOGRAPH-2F848
+2F849;55B3;55B3;55B3;55B3; # (喳; 喳; 喳; 喳; 喳; ) CJK COMPATIBILITY IDEOGRAPH-2F849
+2F84A;55C2;55C2;55C2;55C2; # (嗂; 嗂; 嗂; 嗂; 嗂; ) CJK COMPATIBILITY IDEOGRAPH-2F84A
+2F84B;5716;5716;5716;5716; # (圖; 圖; 圖; 圖; 圖; ) CJK COMPATIBILITY IDEOGRAPH-2F84B
+2F84C;5606;5606;5606;5606; # (嘆; 嘆; 嘆; 嘆; 嘆; ) CJK COMPATIBILITY IDEOGRAPH-2F84C
+2F84D;5717;5717;5717;5717; # (圗; 圗; 圗; 圗; 圗; ) CJK COMPATIBILITY IDEOGRAPH-2F84D
+2F84E;5651;5651;5651;5651; # (噑; 噑; 噑; 噑; 噑; ) CJK COMPATIBILITY IDEOGRAPH-2F84E
+2F84F;5674;5674;5674;5674; # (噴; 噴; 噴; 噴; 噴; ) CJK COMPATIBILITY IDEOGRAPH-2F84F
+2F850;5207;5207;5207;5207; # (切; 切; 切; 切; 切; ) CJK COMPATIBILITY IDEOGRAPH-2F850
+2F851;58EE;58EE;58EE;58EE; # (壮; 壮; 壮; 壮; 壮; ) CJK COMPATIBILITY IDEOGRAPH-2F851
+2F852;57CE;57CE;57CE;57CE; # (城; 城; 城; 城; 城; ) CJK COMPATIBILITY IDEOGRAPH-2F852
+2F853;57F4;57F4;57F4;57F4; # (埴; 埴; 埴; 埴; 埴; ) CJK COMPATIBILITY IDEOGRAPH-2F853
+2F854;580D;580D;580D;580D; # (堍; 堍; 堍; 堍; 堍; ) CJK COMPATIBILITY IDEOGRAPH-2F854
+2F855;578B;578B;578B;578B; # (型; 型; 型; 型; 型; ) CJK COMPATIBILITY IDEOGRAPH-2F855
+2F856;5832;5832;5832;5832; # (堲; 堲; 堲; 堲; 堲; ) CJK COMPATIBILITY IDEOGRAPH-2F856
+2F857;5831;5831;5831;5831; # (報; 報; 報; 報; 報; ) CJK COMPATIBILITY IDEOGRAPH-2F857
+2F858;58AC;58AC;58AC;58AC; # (墬; 墬; 墬; 墬; 墬; ) CJK COMPATIBILITY IDEOGRAPH-2F858
+2F859;214E4;214E4;214E4;214E4; # (𡓤; 𡓤; 𡓤; 𡓤; 𡓤; ) CJK COMPATIBILITY IDEOGRAPH-2F859
+2F85A;58F2;58F2;58F2;58F2; # (売; 売; 売; 売; 売; ) CJK COMPATIBILITY IDEOGRAPH-2F85A
+2F85B;58F7;58F7;58F7;58F7; # (壷; 壷; 壷; 壷; 壷; ) CJK COMPATIBILITY IDEOGRAPH-2F85B
+2F85C;5906;5906;5906;5906; # (夆; 夆; 夆; 夆; 夆; ) CJK COMPATIBILITY IDEOGRAPH-2F85C
+2F85D;591A;591A;591A;591A; # (多; 多; 多; 多; 多; ) CJK COMPATIBILITY IDEOGRAPH-2F85D
+2F85E;5922;5922;5922;5922; # (夢; 夢; 夢; 夢; 夢; ) CJK COMPATIBILITY IDEOGRAPH-2F85E
+2F85F;5962;5962;5962;5962; # (奢; 奢; 奢; 奢; 奢; ) CJK COMPATIBILITY IDEOGRAPH-2F85F
+2F860;216A8;216A8;216A8;216A8; # (𡚨; 𡚨; 𡚨; 𡚨; 𡚨; ) CJK COMPATIBILITY IDEOGRAPH-2F860
+2F861;216EA;216EA;216EA;216EA; # (𡛪; 𡛪; 𡛪; 𡛪; 𡛪; ) CJK COMPATIBILITY IDEOGRAPH-2F861
+2F862;59EC;59EC;59EC;59EC; # (姬; 姬; 姬; 姬; 姬; ) CJK COMPATIBILITY IDEOGRAPH-2F862
+2F863;5A1B;5A1B;5A1B;5A1B; # (娛; 娛; 娛; 娛; 娛; ) CJK COMPATIBILITY IDEOGRAPH-2F863
+2F864;5A27;5A27;5A27;5A27; # (娧; 娧; 娧; 娧; 娧; ) CJK COMPATIBILITY IDEOGRAPH-2F864
+2F865;59D8;59D8;59D8;59D8; # (姘; 姘; 姘; 姘; 姘; ) CJK COMPATIBILITY IDEOGRAPH-2F865
+2F866;5A66;5A66;5A66;5A66; # (婦; 婦; 婦; 婦; 婦; ) CJK COMPATIBILITY IDEOGRAPH-2F866
+2F867;36EE;36EE;36EE;36EE; # (㛮; 㛮; 㛮; 㛮; 㛮; ) CJK COMPATIBILITY IDEOGRAPH-2F867
+2F868;36FC;36FC;36FC;36FC; # (㛼; 㛼; 㛼; 㛼; 㛼; ) CJK COMPATIBILITY IDEOGRAPH-2F868
+2F869;5B08;5B08;5B08;5B08; # (嬈; 嬈; 嬈; 嬈; 嬈; ) CJK COMPATIBILITY IDEOGRAPH-2F869
+2F86A;5B3E;5B3E;5B3E;5B3E; # (嬾; 嬾; 嬾; 嬾; 嬾; ) CJK COMPATIBILITY IDEOGRAPH-2F86A
+2F86B;5B3E;5B3E;5B3E;5B3E; # (嬾; 嬾; 嬾; 嬾; 嬾; ) CJK COMPATIBILITY IDEOGRAPH-2F86B
+2F86C;219C8;219C8;219C8;219C8; # (𡧈; 𡧈; 𡧈; 𡧈; 𡧈; ) CJK COMPATIBILITY IDEOGRAPH-2F86C
+2F86D;5BC3;5BC3;5BC3;5BC3; # (寃; 寃; 寃; 寃; 寃; ) CJK COMPATIBILITY IDEOGRAPH-2F86D
+2F86E;5BD8;5BD8;5BD8;5BD8; # (寘; 寘; 寘; 寘; 寘; ) CJK COMPATIBILITY IDEOGRAPH-2F86E
+2F86F;5BE7;5BE7;5BE7;5BE7; # (寧; 寧; 寧; 寧; 寧; ) CJK COMPATIBILITY IDEOGRAPH-2F86F
+2F870;5BF3;5BF3;5BF3;5BF3; # (寳; 寳; 寳; 寳; 寳; ) CJK COMPATIBILITY IDEOGRAPH-2F870
+2F871;21B18;21B18;21B18;21B18; # (𡬘; 𡬘; 𡬘; 𡬘; 𡬘; ) CJK COMPATIBILITY IDEOGRAPH-2F871
+2F872;5BFF;5BFF;5BFF;5BFF; # (寿; 寿; 寿; 寿; 寿; ) CJK COMPATIBILITY IDEOGRAPH-2F872
+2F873;5C06;5C06;5C06;5C06; # (将; 将; 将; 将; 将; ) CJK COMPATIBILITY IDEOGRAPH-2F873
+2F874;5F53;5F53;5F53;5F53; # (当; 当; 当; 当; 当; ) CJK COMPATIBILITY IDEOGRAPH-2F874
+2F875;5C22;5C22;5C22;5C22; # (尢; 尢; 尢; 尢; 尢; ) CJK COMPATIBILITY IDEOGRAPH-2F875
+2F876;3781;3781;3781;3781; # (㞁; 㞁; 㞁; 㞁; 㞁; ) CJK COMPATIBILITY IDEOGRAPH-2F876
+2F877;5C60;5C60;5C60;5C60; # (屠; 屠; 屠; 屠; 屠; ) CJK COMPATIBILITY IDEOGRAPH-2F877
+2F878;5C6E;5C6E;5C6E;5C6E; # (屮; 屮; 屮; 屮; 屮; ) CJK COMPATIBILITY IDEOGRAPH-2F878
+2F879;5CC0;5CC0;5CC0;5CC0; # (峀; 峀; 峀; 峀; 峀; ) CJK COMPATIBILITY IDEOGRAPH-2F879
+2F87A;5C8D;5C8D;5C8D;5C8D; # (岍; 岍; 岍; 岍; 岍; ) CJK COMPATIBILITY IDEOGRAPH-2F87A
+2F87B;21DE4;21DE4;21DE4;21DE4; # (𡷤; 𡷤; 𡷤; 𡷤; 𡷤; ) CJK COMPATIBILITY IDEOGRAPH-2F87B
+2F87C;5D43;5D43;5D43;5D43; # (嵃; 嵃; 嵃; 嵃; 嵃; ) CJK COMPATIBILITY IDEOGRAPH-2F87C
+2F87D;21DE6;21DE6;21DE6;21DE6; # (𡷦; 𡷦; 𡷦; 𡷦; 𡷦; ) CJK COMPATIBILITY IDEOGRAPH-2F87D
+2F87E;5D6E;5D6E;5D6E;5D6E; # (嵮; 嵮; 嵮; 嵮; 嵮; ) CJK COMPATIBILITY IDEOGRAPH-2F87E
+2F87F;5D6B;5D6B;5D6B;5D6B; # (嵫; 嵫; 嵫; 嵫; 嵫; ) CJK COMPATIBILITY IDEOGRAPH-2F87F
+2F880;5D7C;5D7C;5D7C;5D7C; # (嵼; 嵼; 嵼; 嵼; 嵼; ) CJK COMPATIBILITY IDEOGRAPH-2F880
+2F881;5DE1;5DE1;5DE1;5DE1; # (巡; 巡; 巡; 巡; 巡; ) CJK COMPATIBILITY IDEOGRAPH-2F881
+2F882;5DE2;5DE2;5DE2;5DE2; # (巢; 巢; 巢; 巢; 巢; ) CJK COMPATIBILITY IDEOGRAPH-2F882
+2F883;382F;382F;382F;382F; # (㠯; 㠯; 㠯; 㠯; 㠯; ) CJK COMPATIBILITY IDEOGRAPH-2F883
+2F884;5DFD;5DFD;5DFD;5DFD; # (巽; 巽; 巽; 巽; 巽; ) CJK COMPATIBILITY IDEOGRAPH-2F884
+2F885;5E28;5E28;5E28;5E28; # (帨; 帨; 帨; 帨; 帨; ) CJK COMPATIBILITY IDEOGRAPH-2F885
+2F886;5E3D;5E3D;5E3D;5E3D; # (帽; 帽; 帽; 帽; 帽; ) CJK COMPATIBILITY IDEOGRAPH-2F886
+2F887;5E69;5E69;5E69;5E69; # (幩; 幩; 幩; 幩; 幩; ) CJK COMPATIBILITY IDEOGRAPH-2F887
+2F888;3862;3862;3862;3862; # (㡢; 㡢; 㡢; 㡢; 㡢; ) CJK COMPATIBILITY IDEOGRAPH-2F888
+2F889;22183;22183;22183;22183; # (𢆃; 𢆃; 𢆃; 𢆃; 𢆃; ) CJK COMPATIBILITY IDEOGRAPH-2F889
+2F88A;387C;387C;387C;387C; # (㡼; 㡼; 㡼; 㡼; 㡼; ) CJK COMPATIBILITY IDEOGRAPH-2F88A
+2F88B;5EB0;5EB0;5EB0;5EB0; # (庰; 庰; 庰; 庰; 庰; ) CJK COMPATIBILITY IDEOGRAPH-2F88B
+2F88C;5EB3;5EB3;5EB3;5EB3; # (庳; 庳; 庳; 庳; 庳; ) CJK COMPATIBILITY IDEOGRAPH-2F88C
+2F88D;5EB6;5EB6;5EB6;5EB6; # (庶; 庶; 庶; 庶; 庶; ) CJK COMPATIBILITY IDEOGRAPH-2F88D
+2F88E;5ECA;5ECA;5ECA;5ECA; # (廊; 廊; 廊; 廊; 廊; ) CJK COMPATIBILITY IDEOGRAPH-2F88E
+2F88F;2A392;2A392;2A392;2A392; # (𪎒; 𪎒; 𪎒; 𪎒; 𪎒; ) CJK COMPATIBILITY IDEOGRAPH-2F88F
+2F890;5EFE;5EFE;5EFE;5EFE; # (廾; 廾; 廾; 廾; 廾; ) CJK COMPATIBILITY IDEOGRAPH-2F890
+2F891;22331;22331;22331;22331; # (𢌱; 𢌱; 𢌱; 𢌱; 𢌱; ) CJK COMPATIBILITY IDEOGRAPH-2F891
+2F892;22331;22331;22331;22331; # (𢌱; 𢌱; 𢌱; 𢌱; 𢌱; ) CJK COMPATIBILITY IDEOGRAPH-2F892
+2F893;8201;8201;8201;8201; # (舁; 舁; 舁; 舁; 舁; ) CJK COMPATIBILITY IDEOGRAPH-2F893
+2F894;5F22;5F22;5F22;5F22; # (弢; 弢; 弢; 弢; 弢; ) CJK COMPATIBILITY IDEOGRAPH-2F894
+2F895;5F22;5F22;5F22;5F22; # (弢; 弢; 弢; 弢; 弢; ) CJK COMPATIBILITY IDEOGRAPH-2F895
+2F896;38C7;38C7;38C7;38C7; # (㣇; 㣇; 㣇; 㣇; 㣇; ) CJK COMPATIBILITY IDEOGRAPH-2F896
+2F897;232B8;232B8;232B8;232B8; # (𣊸; 𣊸; 𣊸; 𣊸; 𣊸; ) CJK COMPATIBILITY IDEOGRAPH-2F897
+2F898;261DA;261DA;261DA;261DA; # (𦇚; 𦇚; 𦇚; 𦇚; 𦇚; ) CJK COMPATIBILITY IDEOGRAPH-2F898
+2F899;5F62;5F62;5F62;5F62; # (形; 形; 形; 形; 形; ) CJK COMPATIBILITY IDEOGRAPH-2F899
+2F89A;5F6B;5F6B;5F6B;5F6B; # (彫; 彫; 彫; 彫; 彫; ) CJK COMPATIBILITY IDEOGRAPH-2F89A
+2F89B;38E3;38E3;38E3;38E3; # (㣣; 㣣; 㣣; 㣣; 㣣; ) CJK COMPATIBILITY IDEOGRAPH-2F89B
+2F89C;5F9A;5F9A;5F9A;5F9A; # (徚; 徚; 徚; 徚; 徚; ) CJK COMPATIBILITY IDEOGRAPH-2F89C
+2F89D;5FCD;5FCD;5FCD;5FCD; # (忍; 忍; 忍; 忍; 忍; ) CJK COMPATIBILITY IDEOGRAPH-2F89D
+2F89E;5FD7;5FD7;5FD7;5FD7; # (志; 志; 志; 志; 志; ) CJK COMPATIBILITY IDEOGRAPH-2F89E
+2F89F;5FF9;5FF9;5FF9;5FF9; # (忹; 忹; 忹; 忹; 忹; ) CJK COMPATIBILITY IDEOGRAPH-2F89F
+2F8A0;6081;6081;6081;6081; # (悁; 悁; 悁; 悁; 悁; ) CJK COMPATIBILITY IDEOGRAPH-2F8A0
+2F8A1;393A;393A;393A;393A; # (㤺; 㤺; 㤺; 㤺; 㤺; ) CJK COMPATIBILITY IDEOGRAPH-2F8A1
+2F8A2;391C;391C;391C;391C; # (㤜; 㤜; 㤜; 㤜; 㤜; ) CJK COMPATIBILITY IDEOGRAPH-2F8A2
+2F8A3;6094;6094;6094;6094; # (悔; 悔; 悔; 悔; 悔; ) CJK COMPATIBILITY IDEOGRAPH-2F8A3
+2F8A4;226D4;226D4;226D4;226D4; # (𢛔; 𢛔; 𢛔; 𢛔; 𢛔; ) CJK COMPATIBILITY IDEOGRAPH-2F8A4
+2F8A5;60C7;60C7;60C7;60C7; # (惇; 惇; 惇; 惇; 惇; ) CJK COMPATIBILITY IDEOGRAPH-2F8A5
+2F8A6;6148;6148;6148;6148; # (慈; 慈; 慈; 慈; 慈; ) CJK COMPATIBILITY IDEOGRAPH-2F8A6
+2F8A7;614C;614C;614C;614C; # (慌; 慌; 慌; 慌; 慌; ) CJK COMPATIBILITY IDEOGRAPH-2F8A7
+2F8A8;614E;614E;614E;614E; # (慎; 慎; 慎; 慎; 慎; ) CJK COMPATIBILITY IDEOGRAPH-2F8A8
+2F8A9;614C;614C;614C;614C; # (慌; 慌; 慌; 慌; 慌; ) CJK COMPATIBILITY IDEOGRAPH-2F8A9
+2F8AA;617A;617A;617A;617A; # (慺; 慺; 慺; 慺; 慺; ) CJK COMPATIBILITY IDEOGRAPH-2F8AA
+2F8AB;618E;618E;618E;618E; # (憎; 憎; 憎; 憎; 憎; ) CJK COMPATIBILITY IDEOGRAPH-2F8AB
+2F8AC;61B2;61B2;61B2;61B2; # (憲; 憲; 憲; 憲; 憲; ) CJK COMPATIBILITY IDEOGRAPH-2F8AC
+2F8AD;61A4;61A4;61A4;61A4; # (憤; 憤; 憤; 憤; 憤; ) CJK COMPATIBILITY IDEOGRAPH-2F8AD
+2F8AE;61AF;61AF;61AF;61AF; # (憯; 憯; 憯; 憯; 憯; ) CJK COMPATIBILITY IDEOGRAPH-2F8AE
+2F8AF;61DE;61DE;61DE;61DE; # (懞; 懞; 懞; 懞; 懞; ) CJK COMPATIBILITY IDEOGRAPH-2F8AF
+2F8B0;61F2;61F2;61F2;61F2; # (懲; 懲; 懲; 懲; 懲; ) CJK COMPATIBILITY IDEOGRAPH-2F8B0
+2F8B1;61F6;61F6;61F6;61F6; # (懶; 懶; 懶; 懶; 懶; ) CJK COMPATIBILITY IDEOGRAPH-2F8B1
+2F8B2;6210;6210;6210;6210; # (成; 成; 成; 成; 成; ) CJK COMPATIBILITY IDEOGRAPH-2F8B2
+2F8B3;621B;621B;621B;621B; # (戛; 戛; 戛; 戛; 戛; ) CJK COMPATIBILITY IDEOGRAPH-2F8B3
+2F8B4;625D;625D;625D;625D; # (扝; 扝; 扝; 扝; 扝; ) CJK COMPATIBILITY IDEOGRAPH-2F8B4
+2F8B5;62B1;62B1;62B1;62B1; # (抱; 抱; 抱; 抱; 抱; ) CJK COMPATIBILITY IDEOGRAPH-2F8B5
+2F8B6;62D4;62D4;62D4;62D4; # (拔; 拔; 拔; 拔; 拔; ) CJK COMPATIBILITY IDEOGRAPH-2F8B6
+2F8B7;6350;6350;6350;6350; # (捐; 捐; 捐; 捐; 捐; ) CJK COMPATIBILITY IDEOGRAPH-2F8B7
+2F8B8;22B0C;22B0C;22B0C;22B0C; # (𢬌; 𢬌; 𢬌; 𢬌; 𢬌; ) CJK COMPATIBILITY IDEOGRAPH-2F8B8
+2F8B9;633D;633D;633D;633D; # (挽; 挽; 挽; 挽; 挽; ) CJK COMPATIBILITY IDEOGRAPH-2F8B9
+2F8BA;62FC;62FC;62FC;62FC; # (拼; 拼; 拼; 拼; 拼; ) CJK COMPATIBILITY IDEOGRAPH-2F8BA
+2F8BB;6368;6368;6368;6368; # (捨; 捨; 捨; 捨; 捨; ) CJK COMPATIBILITY IDEOGRAPH-2F8BB
+2F8BC;6383;6383;6383;6383; # (掃; 掃; 掃; 掃; 掃; ) CJK COMPATIBILITY IDEOGRAPH-2F8BC
+2F8BD;63E4;63E4;63E4;63E4; # (揤; 揤; 揤; 揤; 揤; ) CJK COMPATIBILITY IDEOGRAPH-2F8BD
+2F8BE;22BF1;22BF1;22BF1;22BF1; # (𢯱; 𢯱; 𢯱; 𢯱; 𢯱; ) CJK COMPATIBILITY IDEOGRAPH-2F8BE
+2F8BF;6422;6422;6422;6422; # (搢; 搢; 搢; 搢; 搢; ) CJK COMPATIBILITY IDEOGRAPH-2F8BF
+2F8C0;63C5;63C5;63C5;63C5; # (揅; 揅; 揅; 揅; 揅; ) CJK COMPATIBILITY IDEOGRAPH-2F8C0
+2F8C1;63A9;63A9;63A9;63A9; # (掩; 掩; 掩; 掩; 掩; ) CJK COMPATIBILITY IDEOGRAPH-2F8C1
+2F8C2;3A2E;3A2E;3A2E;3A2E; # (㨮; 㨮; 㨮; 㨮; 㨮; ) CJK COMPATIBILITY IDEOGRAPH-2F8C2
+2F8C3;6469;6469;6469;6469; # (摩; 摩; 摩; 摩; 摩; ) CJK COMPATIBILITY IDEOGRAPH-2F8C3
+2F8C4;647E;647E;647E;647E; # (摾; 摾; 摾; 摾; 摾; ) CJK COMPATIBILITY IDEOGRAPH-2F8C4
+2F8C5;649D;649D;649D;649D; # (撝; 撝; 撝; 撝; 撝; ) CJK COMPATIBILITY IDEOGRAPH-2F8C5
+2F8C6;6477;6477;6477;6477; # (摷; 摷; 摷; 摷; 摷; ) CJK COMPATIBILITY IDEOGRAPH-2F8C6
+2F8C7;3A6C;3A6C;3A6C;3A6C; # (㩬; 㩬; 㩬; 㩬; 㩬; ) CJK COMPATIBILITY IDEOGRAPH-2F8C7
+2F8C8;654F;654F;654F;654F; # (敏; 敏; 敏; 敏; 敏; ) CJK COMPATIBILITY IDEOGRAPH-2F8C8
+2F8C9;656C;656C;656C;656C; # (敬; 敬; 敬; 敬; 敬; ) CJK COMPATIBILITY IDEOGRAPH-2F8C9
+2F8CA;2300A;2300A;2300A;2300A; # (𣀊; 𣀊; 𣀊; 𣀊; 𣀊; ) CJK COMPATIBILITY IDEOGRAPH-2F8CA
+2F8CB;65E3;65E3;65E3;65E3; # (旣; 旣; 旣; 旣; 旣; ) CJK COMPATIBILITY IDEOGRAPH-2F8CB
+2F8CC;66F8;66F8;66F8;66F8; # (書; 書; 書; 書; 書; ) CJK COMPATIBILITY IDEOGRAPH-2F8CC
+2F8CD;6649;6649;6649;6649; # (晉; 晉; 晉; 晉; 晉; ) CJK COMPATIBILITY IDEOGRAPH-2F8CD
+2F8CE;3B19;3B19;3B19;3B19; # (㬙; 㬙; 㬙; 㬙; 㬙; ) CJK COMPATIBILITY IDEOGRAPH-2F8CE
+2F8CF;6691;6691;6691;6691; # (暑; 暑; 暑; 暑; 暑; ) CJK COMPATIBILITY IDEOGRAPH-2F8CF
+2F8D0;3B08;3B08;3B08;3B08; # (㬈; 㬈; 㬈; 㬈; 㬈; ) CJK COMPATIBILITY IDEOGRAPH-2F8D0
+2F8D1;3AE4;3AE4;3AE4;3AE4; # (㫤; 㫤; 㫤; 㫤; 㫤; ) CJK COMPATIBILITY IDEOGRAPH-2F8D1
+2F8D2;5192;5192;5192;5192; # (冒; 冒; 冒; 冒; 冒; ) CJK COMPATIBILITY IDEOGRAPH-2F8D2
+2F8D3;5195;5195;5195;5195; # (冕; 冕; 冕; 冕; 冕; ) CJK COMPATIBILITY IDEOGRAPH-2F8D3
+2F8D4;6700;6700;6700;6700; # (最; 最; 最; 最; 最; ) CJK COMPATIBILITY IDEOGRAPH-2F8D4
+2F8D5;669C;669C;669C;669C; # (暜; 暜; 暜; 暜; 暜; ) CJK COMPATIBILITY IDEOGRAPH-2F8D5
+2F8D6;80AD;80AD;80AD;80AD; # (肭; 肭; 肭; 肭; 肭; ) CJK COMPATIBILITY IDEOGRAPH-2F8D6
+2F8D7;43D9;43D9;43D9;43D9; # (䏙; 䏙; 䏙; 䏙; 䏙; ) CJK COMPATIBILITY IDEOGRAPH-2F8D7
+2F8D8;6717;6717;6717;6717; # (朗; 朗; 朗; 朗; 朗; ) CJK COMPATIBILITY IDEOGRAPH-2F8D8
+2F8D9;671B;671B;671B;671B; # (望; 望; 望; 望; 望; ) CJK COMPATIBILITY IDEOGRAPH-2F8D9
+2F8DA;6721;6721;6721;6721; # (朡; 朡; 朡; 朡; 朡; ) CJK COMPATIBILITY IDEOGRAPH-2F8DA
+2F8DB;675E;675E;675E;675E; # (杞; 杞; 杞; 杞; 杞; ) CJK COMPATIBILITY IDEOGRAPH-2F8DB
+2F8DC;6753;6753;6753;6753; # (杓; 杓; 杓; 杓; 杓; ) CJK COMPATIBILITY IDEOGRAPH-2F8DC
+2F8DD;233C3;233C3;233C3;233C3; # (𣏃; 𣏃; 𣏃; 𣏃; 𣏃; ) CJK COMPATIBILITY IDEOGRAPH-2F8DD
+2F8DE;3B49;3B49;3B49;3B49; # (㭉; 㭉; 㭉; 㭉; 㭉; ) CJK COMPATIBILITY IDEOGRAPH-2F8DE
+2F8DF;67FA;67FA;67FA;67FA; # (柺; 柺; 柺; 柺; 柺; ) CJK COMPATIBILITY IDEOGRAPH-2F8DF
+2F8E0;6785;6785;6785;6785; # (枅; 枅; 枅; 枅; 枅; ) CJK COMPATIBILITY IDEOGRAPH-2F8E0
+2F8E1;6852;6852;6852;6852; # (桒; 桒; 桒; 桒; 桒; ) CJK COMPATIBILITY IDEOGRAPH-2F8E1
+2F8E2;6885;6885;6885;6885; # (梅; 梅; 梅; 梅; 梅; ) CJK COMPATIBILITY IDEOGRAPH-2F8E2
+2F8E3;2346D;2346D;2346D;2346D; # (𣑭; 𣑭; 𣑭; 𣑭; 𣑭; ) CJK COMPATIBILITY IDEOGRAPH-2F8E3
+2F8E4;688E;688E;688E;688E; # (梎; 梎; 梎; 梎; 梎; ) CJK COMPATIBILITY IDEOGRAPH-2F8E4
+2F8E5;681F;681F;681F;681F; # (栟; 栟; 栟; 栟; 栟; ) CJK COMPATIBILITY IDEOGRAPH-2F8E5
+2F8E6;6914;6914;6914;6914; # (椔; 椔; 椔; 椔; 椔; ) CJK COMPATIBILITY IDEOGRAPH-2F8E6
+2F8E7;3B9D;3B9D;3B9D;3B9D; # (㮝; 㮝; 㮝; 㮝; 㮝; ) CJK COMPATIBILITY IDEOGRAPH-2F8E7
+2F8E8;6942;6942;6942;6942; # (楂; 楂; 楂; 楂; 楂; ) CJK COMPATIBILITY IDEOGRAPH-2F8E8
+2F8E9;69A3;69A3;69A3;69A3; # (榣; 榣; 榣; 榣; 榣; ) CJK COMPATIBILITY IDEOGRAPH-2F8E9
+2F8EA;69EA;69EA;69EA;69EA; # (槪; 槪; 槪; 槪; 槪; ) CJK COMPATIBILITY IDEOGRAPH-2F8EA
+2F8EB;6AA8;6AA8;6AA8;6AA8; # (檨; 檨; 檨; 檨; 檨; ) CJK COMPATIBILITY IDEOGRAPH-2F8EB
+2F8EC;236A3;236A3;236A3;236A3; # (𣚣; 𣚣; 𣚣; 𣚣; 𣚣; ) CJK COMPATIBILITY IDEOGRAPH-2F8EC
+2F8ED;6ADB;6ADB;6ADB;6ADB; # (櫛; 櫛; 櫛; 櫛; 櫛; ) CJK COMPATIBILITY IDEOGRAPH-2F8ED
+2F8EE;3C18;3C18;3C18;3C18; # (㰘; 㰘; 㰘; 㰘; 㰘; ) CJK COMPATIBILITY IDEOGRAPH-2F8EE
+2F8EF;6B21;6B21;6B21;6B21; # (次; 次; 次; 次; 次; ) CJK COMPATIBILITY IDEOGRAPH-2F8EF
+2F8F0;238A7;238A7;238A7;238A7; # (𣢧; 𣢧; 𣢧; 𣢧; 𣢧; ) CJK COMPATIBILITY IDEOGRAPH-2F8F0
+2F8F1;6B54;6B54;6B54;6B54; # (歔; 歔; 歔; 歔; 歔; ) CJK COMPATIBILITY IDEOGRAPH-2F8F1
+2F8F2;3C4E;3C4E;3C4E;3C4E; # (㱎; 㱎; 㱎; 㱎; 㱎; ) CJK COMPATIBILITY IDEOGRAPH-2F8F2
+2F8F3;6B72;6B72;6B72;6B72; # (歲; 歲; 歲; 歲; 歲; ) CJK COMPATIBILITY IDEOGRAPH-2F8F3
+2F8F4;6B9F;6B9F;6B9F;6B9F; # (殟; 殟; 殟; 殟; 殟; ) CJK COMPATIBILITY IDEOGRAPH-2F8F4
+2F8F5;6BBA;6BBA;6BBA;6BBA; # (殺; 殺; 殺; 殺; 殺; ) CJK COMPATIBILITY IDEOGRAPH-2F8F5
+2F8F6;6BBB;6BBB;6BBB;6BBB; # (殻; 殻; 殻; 殻; 殻; ) CJK COMPATIBILITY IDEOGRAPH-2F8F6
+2F8F7;23A8D;23A8D;23A8D;23A8D; # (𣪍; 𣪍; 𣪍; 𣪍; 𣪍; ) CJK COMPATIBILITY IDEOGRAPH-2F8F7
+2F8F8;21D0B;21D0B;21D0B;21D0B; # (𡴋; 𡴋; 𡴋; 𡴋; 𡴋; ) CJK COMPATIBILITY IDEOGRAPH-2F8F8
+2F8F9;23AFA;23AFA;23AFA;23AFA; # (𣫺; 𣫺; 𣫺; 𣫺; 𣫺; ) CJK COMPATIBILITY IDEOGRAPH-2F8F9
+2F8FA;6C4E;6C4E;6C4E;6C4E; # (汎; 汎; 汎; 汎; 汎; ) CJK COMPATIBILITY IDEOGRAPH-2F8FA
+2F8FB;23CBC;23CBC;23CBC;23CBC; # (𣲼; 𣲼; 𣲼; 𣲼; 𣲼; ) CJK COMPATIBILITY IDEOGRAPH-2F8FB
+2F8FC;6CBF;6CBF;6CBF;6CBF; # (沿; 沿; 沿; 沿; 沿; ) CJK COMPATIBILITY IDEOGRAPH-2F8FC
+2F8FD;6CCD;6CCD;6CCD;6CCD; # (泍; 泍; 泍; 泍; 泍; ) CJK COMPATIBILITY IDEOGRAPH-2F8FD
+2F8FE;6C67;6C67;6C67;6C67; # (汧; 汧; 汧; 汧; 汧; ) CJK COMPATIBILITY IDEOGRAPH-2F8FE
+2F8FF;6D16;6D16;6D16;6D16; # (洖; 洖; 洖; 洖; 洖; ) CJK COMPATIBILITY IDEOGRAPH-2F8FF
+2F900;6D3E;6D3E;6D3E;6D3E; # (派; 派; 派; 派; 派; ) CJK COMPATIBILITY IDEOGRAPH-2F900
+2F901;6D77;6D77;6D77;6D77; # (海; 海; 海; 海; 海; ) CJK COMPATIBILITY IDEOGRAPH-2F901
+2F902;6D41;6D41;6D41;6D41; # (流; 流; 流; 流; 流; ) CJK COMPATIBILITY IDEOGRAPH-2F902
+2F903;6D69;6D69;6D69;6D69; # (浩; 浩; 浩; 浩; 浩; ) CJK COMPATIBILITY IDEOGRAPH-2F903
+2F904;6D78;6D78;6D78;6D78; # (浸; 浸; 浸; 浸; 浸; ) CJK COMPATIBILITY IDEOGRAPH-2F904
+2F905;6D85;6D85;6D85;6D85; # (涅; 涅; 涅; 涅; 涅; ) CJK COMPATIBILITY IDEOGRAPH-2F905
+2F906;23D1E;23D1E;23D1E;23D1E; # (𣴞; 𣴞; 𣴞; 𣴞; 𣴞; ) CJK COMPATIBILITY IDEOGRAPH-2F906
+2F907;6D34;6D34;6D34;6D34; # (洴; 洴; 洴; 洴; 洴; ) CJK COMPATIBILITY IDEOGRAPH-2F907
+2F908;6E2F;6E2F;6E2F;6E2F; # (港; 港; 港; 港; 港; ) CJK COMPATIBILITY IDEOGRAPH-2F908
+2F909;6E6E;6E6E;6E6E;6E6E; # (湮; 湮; 湮; 湮; 湮; ) CJK COMPATIBILITY IDEOGRAPH-2F909
+2F90A;3D33;3D33;3D33;3D33; # (㴳; 㴳; 㴳; 㴳; 㴳; ) CJK COMPATIBILITY IDEOGRAPH-2F90A
+2F90B;6ECB;6ECB;6ECB;6ECB; # (滋; 滋; 滋; 滋; 滋; ) CJK COMPATIBILITY IDEOGRAPH-2F90B
+2F90C;6EC7;6EC7;6EC7;6EC7; # (滇; 滇; 滇; 滇; 滇; ) CJK COMPATIBILITY IDEOGRAPH-2F90C
+2F90D;23ED1;23ED1;23ED1;23ED1; # (𣻑; 𣻑; 𣻑; 𣻑; 𣻑; ) CJK COMPATIBILITY IDEOGRAPH-2F90D
+2F90E;6DF9;6DF9;6DF9;6DF9; # (淹; 淹; 淹; 淹; 淹; ) CJK COMPATIBILITY IDEOGRAPH-2F90E
+2F90F;6F6E;6F6E;6F6E;6F6E; # (潮; 潮; 潮; 潮; 潮; ) CJK COMPATIBILITY IDEOGRAPH-2F90F
+2F910;23F5E;23F5E;23F5E;23F5E; # (𣽞; 𣽞; 𣽞; 𣽞; 𣽞; ) CJK COMPATIBILITY IDEOGRAPH-2F910
+2F911;23F8E;23F8E;23F8E;23F8E; # (𣾎; 𣾎; 𣾎; 𣾎; 𣾎; ) CJK COMPATIBILITY IDEOGRAPH-2F911
+2F912;6FC6;6FC6;6FC6;6FC6; # (濆; 濆; 濆; 濆; 濆; ) CJK COMPATIBILITY IDEOGRAPH-2F912
+2F913;7039;7039;7039;7039; # (瀹; 瀹; 瀹; 瀹; 瀹; ) CJK COMPATIBILITY IDEOGRAPH-2F913
+2F914;701E;701E;701E;701E; # (瀞; 瀞; 瀞; 瀞; 瀞; ) CJK COMPATIBILITY IDEOGRAPH-2F914
+2F915;701B;701B;701B;701B; # (瀛; 瀛; 瀛; 瀛; 瀛; ) CJK COMPATIBILITY IDEOGRAPH-2F915
+2F916;3D96;3D96;3D96;3D96; # (㶖; 㶖; 㶖; 㶖; 㶖; ) CJK COMPATIBILITY IDEOGRAPH-2F916
+2F917;704A;704A;704A;704A; # (灊; 灊; 灊; 灊; 灊; ) CJK COMPATIBILITY IDEOGRAPH-2F917
+2F918;707D;707D;707D;707D; # (災; 災; 災; 災; 災; ) CJK COMPATIBILITY IDEOGRAPH-2F918
+2F919;7077;7077;7077;7077; # (灷; 灷; 灷; 灷; 灷; ) CJK COMPATIBILITY IDEOGRAPH-2F919
+2F91A;70AD;70AD;70AD;70AD; # (炭; 炭; 炭; 炭; 炭; ) CJK COMPATIBILITY IDEOGRAPH-2F91A
+2F91B;20525;20525;20525;20525; # (𠔥; 𠔥; 𠔥; 𠔥; 𠔥; ) CJK COMPATIBILITY IDEOGRAPH-2F91B
+2F91C;7145;7145;7145;7145; # (煅; 煅; 煅; 煅; 煅; ) CJK COMPATIBILITY IDEOGRAPH-2F91C
+2F91D;24263;24263;24263;24263; # (𤉣; 𤉣; 𤉣; 𤉣; 𤉣; ) CJK COMPATIBILITY IDEOGRAPH-2F91D
+2F91E;719C;719C;719C;719C; # (熜; 熜; 熜; 熜; 熜; ) CJK COMPATIBILITY IDEOGRAPH-2F91E
+2F91F;243AB;243AB;243AB;243AB; # (𤎫; 𤎫; 𤎫; 𤎫; 𤎫; ) CJK COMPATIBILITY IDEOGRAPH-2F91F
+2F920;7228;7228;7228;7228; # (爨; 爨; 爨; 爨; 爨; ) CJK COMPATIBILITY IDEOGRAPH-2F920
+2F921;7235;7235;7235;7235; # (爵; 爵; 爵; 爵; 爵; ) CJK COMPATIBILITY IDEOGRAPH-2F921
+2F922;7250;7250;7250;7250; # (牐; 牐; 牐; 牐; 牐; ) CJK COMPATIBILITY IDEOGRAPH-2F922
+2F923;24608;24608;24608;24608; # (𤘈; 𤘈; 𤘈; 𤘈; 𤘈; ) CJK COMPATIBILITY IDEOGRAPH-2F923
+2F924;7280;7280;7280;7280; # (犀; 犀; 犀; 犀; 犀; ) CJK COMPATIBILITY IDEOGRAPH-2F924
+2F925;7295;7295;7295;7295; # (犕; 犕; 犕; 犕; 犕; ) CJK COMPATIBILITY IDEOGRAPH-2F925
+2F926;24735;24735;24735;24735; # (𤜵; 𤜵; 𤜵; 𤜵; 𤜵; ) CJK COMPATIBILITY IDEOGRAPH-2F926
+2F927;24814;24814;24814;24814; # (𤠔; 𤠔; 𤠔; 𤠔; 𤠔; ) CJK COMPATIBILITY IDEOGRAPH-2F927
+2F928;737A;737A;737A;737A; # (獺; 獺; 獺; 獺; 獺; ) CJK COMPATIBILITY IDEOGRAPH-2F928
+2F929;738B;738B;738B;738B; # (王; 王; 王; 王; 王; ) CJK COMPATIBILITY IDEOGRAPH-2F929
+2F92A;3EAC;3EAC;3EAC;3EAC; # (㺬; 㺬; 㺬; 㺬; 㺬; ) CJK COMPATIBILITY IDEOGRAPH-2F92A
+2F92B;73A5;73A5;73A5;73A5; # (玥; 玥; 玥; 玥; 玥; ) CJK COMPATIBILITY IDEOGRAPH-2F92B
+2F92C;3EB8;3EB8;3EB8;3EB8; # (㺸; 㺸; 㺸; 㺸; 㺸; ) CJK COMPATIBILITY IDEOGRAPH-2F92C
+2F92D;3EB8;3EB8;3EB8;3EB8; # (㺸; 㺸; 㺸; 㺸; 㺸; ) CJK COMPATIBILITY IDEOGRAPH-2F92D
+2F92E;7447;7447;7447;7447; # (瑇; 瑇; 瑇; 瑇; 瑇; ) CJK COMPATIBILITY IDEOGRAPH-2F92E
+2F92F;745C;745C;745C;745C; # (瑜; 瑜; 瑜; 瑜; 瑜; ) CJK COMPATIBILITY IDEOGRAPH-2F92F
+2F930;7471;7471;7471;7471; # (瑱; 瑱; 瑱; 瑱; 瑱; ) CJK COMPATIBILITY IDEOGRAPH-2F930
+2F931;7485;7485;7485;7485; # (璅; 璅; 璅; 璅; 璅; ) CJK COMPATIBILITY IDEOGRAPH-2F931
+2F932;74CA;74CA;74CA;74CA; # (瓊; 瓊; 瓊; 瓊; 瓊; ) CJK COMPATIBILITY IDEOGRAPH-2F932
+2F933;3F1B;3F1B;3F1B;3F1B; # (㼛; 㼛; 㼛; 㼛; 㼛; ) CJK COMPATIBILITY IDEOGRAPH-2F933
+2F934;7524;7524;7524;7524; # (甤; 甤; 甤; 甤; 甤; ) CJK COMPATIBILITY IDEOGRAPH-2F934
+2F935;24C36;24C36;24C36;24C36; # (𤰶; 𤰶; 𤰶; 𤰶; 𤰶; ) CJK COMPATIBILITY IDEOGRAPH-2F935
+2F936;753E;753E;753E;753E; # (甾; 甾; 甾; 甾; 甾; ) CJK COMPATIBILITY IDEOGRAPH-2F936
+2F937;24C92;24C92;24C92;24C92; # (𤲒; 𤲒; 𤲒; 𤲒; 𤲒; ) CJK COMPATIBILITY IDEOGRAPH-2F937
+2F938;7570;7570;7570;7570; # (異; 異; 異; 異; 異; ) CJK COMPATIBILITY IDEOGRAPH-2F938
+2F939;2219F;2219F;2219F;2219F; # (𢆟; 𢆟; 𢆟; 𢆟; 𢆟; ) CJK COMPATIBILITY IDEOGRAPH-2F939
+2F93A;7610;7610;7610;7610; # (瘐; 瘐; 瘐; 瘐; 瘐; ) CJK COMPATIBILITY IDEOGRAPH-2F93A
+2F93B;24FA1;24FA1;24FA1;24FA1; # (𤾡; 𤾡; 𤾡; 𤾡; 𤾡; ) CJK COMPATIBILITY IDEOGRAPH-2F93B
+2F93C;24FB8;24FB8;24FB8;24FB8; # (𤾸; 𤾸; 𤾸; 𤾸; 𤾸; ) CJK COMPATIBILITY IDEOGRAPH-2F93C
+2F93D;25044;25044;25044;25044; # (𥁄; 𥁄; 𥁄; 𥁄; 𥁄; ) CJK COMPATIBILITY IDEOGRAPH-2F93D
+2F93E;3FFC;3FFC;3FFC;3FFC; # (㿼; 㿼; 㿼; 㿼; 㿼; ) CJK COMPATIBILITY IDEOGRAPH-2F93E
+2F93F;4008;4008;4008;4008; # (䀈; 䀈; 䀈; 䀈; 䀈; ) CJK COMPATIBILITY IDEOGRAPH-2F93F
+2F940;76F4;76F4;76F4;76F4; # (直; 直; 直; 直; 直; ) CJK COMPATIBILITY IDEOGRAPH-2F940
+2F941;250F3;250F3;250F3;250F3; # (𥃳; 𥃳; 𥃳; 𥃳; 𥃳; ) CJK COMPATIBILITY IDEOGRAPH-2F941
+2F942;250F2;250F2;250F2;250F2; # (𥃲; 𥃲; 𥃲; 𥃲; 𥃲; ) CJK COMPATIBILITY IDEOGRAPH-2F942
+2F943;25119;25119;25119;25119; # (𥄙; 𥄙; 𥄙; 𥄙; 𥄙; ) CJK COMPATIBILITY IDEOGRAPH-2F943
+2F944;25133;25133;25133;25133; # (𥄳; 𥄳; 𥄳; 𥄳; 𥄳; ) CJK COMPATIBILITY IDEOGRAPH-2F944
+2F945;771E;771E;771E;771E; # (眞; 眞; 眞; 眞; 眞; ) CJK COMPATIBILITY IDEOGRAPH-2F945
+2F946;771F;771F;771F;771F; # (真; 真; 真; 真; 真; ) CJK COMPATIBILITY IDEOGRAPH-2F946
+2F947;771F;771F;771F;771F; # (真; 真; 真; 真; 真; ) CJK COMPATIBILITY IDEOGRAPH-2F947
+2F948;774A;774A;774A;774A; # (睊; 睊; 睊; 睊; 睊; ) CJK COMPATIBILITY IDEOGRAPH-2F948
+2F949;4039;4039;4039;4039; # (䀹; 䀹; 䀹; 䀹; 䀹; ) CJK COMPATIBILITY IDEOGRAPH-2F949
+2F94A;778B;778B;778B;778B; # (瞋; 瞋; 瞋; 瞋; 瞋; ) CJK COMPATIBILITY IDEOGRAPH-2F94A
+2F94B;4046;4046;4046;4046; # (䁆; 䁆; 䁆; 䁆; 䁆; ) CJK COMPATIBILITY IDEOGRAPH-2F94B
+2F94C;4096;4096;4096;4096; # (䂖; 䂖; 䂖; 䂖; 䂖; ) CJK COMPATIBILITY IDEOGRAPH-2F94C
+2F94D;2541D;2541D;2541D;2541D; # (𥐝; 𥐝; 𥐝; 𥐝; 𥐝; ) CJK COMPATIBILITY IDEOGRAPH-2F94D
+2F94E;784E;784E;784E;784E; # (硎; 硎; 硎; 硎; 硎; ) CJK COMPATIBILITY IDEOGRAPH-2F94E
+2F94F;788C;788C;788C;788C; # (碌; 碌; 碌; 碌; 碌; ) CJK COMPATIBILITY IDEOGRAPH-2F94F
+2F950;78CC;78CC;78CC;78CC; # (磌; 磌; 磌; 磌; 磌; ) CJK COMPATIBILITY IDEOGRAPH-2F950
+2F951;40E3;40E3;40E3;40E3; # (䃣; 䃣; 䃣; 䃣; 䃣; ) CJK COMPATIBILITY IDEOGRAPH-2F951
+2F952;25626;25626;25626;25626; # (𥘦; 𥘦; 𥘦; 𥘦; 𥘦; ) CJK COMPATIBILITY IDEOGRAPH-2F952
+2F953;7956;7956;7956;7956; # (祖; 祖; 祖; 祖; 祖; ) CJK COMPATIBILITY IDEOGRAPH-2F953
+2F954;2569A;2569A;2569A;2569A; # (𥚚; 𥚚; 𥚚; 𥚚; 𥚚; ) CJK COMPATIBILITY IDEOGRAPH-2F954
+2F955;256C5;256C5;256C5;256C5; # (𥛅; 𥛅; 𥛅; 𥛅; 𥛅; ) CJK COMPATIBILITY IDEOGRAPH-2F955
+2F956;798F;798F;798F;798F; # (福; 福; 福; 福; 福; ) CJK COMPATIBILITY IDEOGRAPH-2F956
+2F957;79EB;79EB;79EB;79EB; # (秫; 秫; 秫; 秫; 秫; ) CJK COMPATIBILITY IDEOGRAPH-2F957
+2F958;412F;412F;412F;412F; # (䄯; 䄯; 䄯; 䄯; 䄯; ) CJK COMPATIBILITY IDEOGRAPH-2F958
+2F959;7A40;7A40;7A40;7A40; # (穀; 穀; 穀; 穀; 穀; ) CJK COMPATIBILITY IDEOGRAPH-2F959
+2F95A;7A4A;7A4A;7A4A;7A4A; # (穊; 穊; 穊; 穊; 穊; ) CJK COMPATIBILITY IDEOGRAPH-2F95A
+2F95B;7A4F;7A4F;7A4F;7A4F; # (穏; 穏; 穏; 穏; 穏; ) CJK COMPATIBILITY IDEOGRAPH-2F95B
+2F95C;2597C;2597C;2597C;2597C; # (𥥼; 𥥼; 𥥼; 𥥼; 𥥼; ) CJK COMPATIBILITY IDEOGRAPH-2F95C
+2F95D;25AA7;25AA7;25AA7;25AA7; # (𥪧; 𥪧; 𥪧; 𥪧; 𥪧; ) CJK COMPATIBILITY IDEOGRAPH-2F95D
+2F95E;25AA7;25AA7;25AA7;25AA7; # (𥪧; 𥪧; 𥪧; 𥪧; 𥪧; ) CJK COMPATIBILITY IDEOGRAPH-2F95E
+2F95F;7AEE;7AEE;7AEE;7AEE; # (竮; 竮; 竮; 竮; 竮; ) CJK COMPATIBILITY IDEOGRAPH-2F95F
+2F960;4202;4202;4202;4202; # (䈂; 䈂; 䈂; 䈂; 䈂; ) CJK COMPATIBILITY IDEOGRAPH-2F960
+2F961;25BAB;25BAB;25BAB;25BAB; # (𥮫; 𥮫; 𥮫; 𥮫; 𥮫; ) CJK COMPATIBILITY IDEOGRAPH-2F961
+2F962;7BC6;7BC6;7BC6;7BC6; # (篆; 篆; 篆; 篆; 篆; ) CJK COMPATIBILITY IDEOGRAPH-2F962
+2F963;7BC9;7BC9;7BC9;7BC9; # (築; 築; 築; 築; 築; ) CJK COMPATIBILITY IDEOGRAPH-2F963
+2F964;4227;4227;4227;4227; # (䈧; 䈧; 䈧; 䈧; 䈧; ) CJK COMPATIBILITY IDEOGRAPH-2F964
+2F965;25C80;25C80;25C80;25C80; # (𥲀; 𥲀; 𥲀; 𥲀; 𥲀; ) CJK COMPATIBILITY IDEOGRAPH-2F965
+2F966;7CD2;7CD2;7CD2;7CD2; # (糒; 糒; 糒; 糒; 糒; ) CJK COMPATIBILITY IDEOGRAPH-2F966
+2F967;42A0;42A0;42A0;42A0; # (䊠; 䊠; 䊠; 䊠; 䊠; ) CJK COMPATIBILITY IDEOGRAPH-2F967
+2F968;7CE8;7CE8;7CE8;7CE8; # (糨; 糨; 糨; 糨; 糨; ) CJK COMPATIBILITY IDEOGRAPH-2F968
+2F969;7CE3;7CE3;7CE3;7CE3; # (糣; 糣; 糣; 糣; 糣; ) CJK COMPATIBILITY IDEOGRAPH-2F969
+2F96A;7D00;7D00;7D00;7D00; # (紀; 紀; 紀; 紀; 紀; ) CJK COMPATIBILITY IDEOGRAPH-2F96A
+2F96B;25F86;25F86;25F86;25F86; # (𥾆; 𥾆; 𥾆; 𥾆; 𥾆; ) CJK COMPATIBILITY IDEOGRAPH-2F96B
+2F96C;7D63;7D63;7D63;7D63; # (絣; 絣; 絣; 絣; 絣; ) CJK COMPATIBILITY IDEOGRAPH-2F96C
+2F96D;4301;4301;4301;4301; # (䌁; 䌁; 䌁; 䌁; 䌁; ) CJK COMPATIBILITY IDEOGRAPH-2F96D
+2F96E;7DC7;7DC7;7DC7;7DC7; # (緇; 緇; 緇; 緇; 緇; ) CJK COMPATIBILITY IDEOGRAPH-2F96E
+2F96F;7E02;7E02;7E02;7E02; # (縂; 縂; 縂; 縂; 縂; ) CJK COMPATIBILITY IDEOGRAPH-2F96F
+2F970;7E45;7E45;7E45;7E45; # (繅; 繅; 繅; 繅; 繅; ) CJK COMPATIBILITY IDEOGRAPH-2F970
+2F971;4334;4334;4334;4334; # (䌴; 䌴; 䌴; 䌴; 䌴; ) CJK COMPATIBILITY IDEOGRAPH-2F971
+2F972;26228;26228;26228;26228; # (𦈨; 𦈨; 𦈨; 𦈨; 𦈨; ) CJK COMPATIBILITY IDEOGRAPH-2F972
+2F973;26247;26247;26247;26247; # (𦉇; 𦉇; 𦉇; 𦉇; 𦉇; ) CJK COMPATIBILITY IDEOGRAPH-2F973
+2F974;4359;4359;4359;4359; # (䍙; 䍙; 䍙; 䍙; 䍙; ) CJK COMPATIBILITY IDEOGRAPH-2F974
+2F975;262D9;262D9;262D9;262D9; # (𦋙; 𦋙; 𦋙; 𦋙; 𦋙; ) CJK COMPATIBILITY IDEOGRAPH-2F975
+2F976;7F7A;7F7A;7F7A;7F7A; # (罺; 罺; 罺; 罺; 罺; ) CJK COMPATIBILITY IDEOGRAPH-2F976
+2F977;2633E;2633E;2633E;2633E; # (𦌾; 𦌾; 𦌾; 𦌾; 𦌾; ) CJK COMPATIBILITY IDEOGRAPH-2F977
+2F978;7F95;7F95;7F95;7F95; # (羕; 羕; 羕; 羕; 羕; ) CJK COMPATIBILITY IDEOGRAPH-2F978
+2F979;7FFA;7FFA;7FFA;7FFA; # (翺; 翺; 翺; 翺; 翺; ) CJK COMPATIBILITY IDEOGRAPH-2F979
+2F97A;8005;8005;8005;8005; # (者; 者; 者; 者; 者; ) CJK COMPATIBILITY IDEOGRAPH-2F97A
+2F97B;264DA;264DA;264DA;264DA; # (𦓚; 𦓚; 𦓚; 𦓚; 𦓚; ) CJK COMPATIBILITY IDEOGRAPH-2F97B
+2F97C;26523;26523;26523;26523; # (𦔣; 𦔣; 𦔣; 𦔣; 𦔣; ) CJK COMPATIBILITY IDEOGRAPH-2F97C
+2F97D;8060;8060;8060;8060; # (聠; 聠; 聠; 聠; 聠; ) CJK COMPATIBILITY IDEOGRAPH-2F97D
+2F97E;265A8;265A8;265A8;265A8; # (𦖨; 𦖨; 𦖨; 𦖨; 𦖨; ) CJK COMPATIBILITY IDEOGRAPH-2F97E
+2F97F;8070;8070;8070;8070; # (聰; 聰; 聰; 聰; 聰; ) CJK COMPATIBILITY IDEOGRAPH-2F97F
+2F980;2335F;2335F;2335F;2335F; # (𣍟; 𣍟; 𣍟; 𣍟; 𣍟; ) CJK COMPATIBILITY IDEOGRAPH-2F980
+2F981;43D5;43D5;43D5;43D5; # (䏕; 䏕; 䏕; 䏕; 䏕; ) CJK COMPATIBILITY IDEOGRAPH-2F981
+2F982;80B2;80B2;80B2;80B2; # (育; 育; 育; 育; 育; ) CJK COMPATIBILITY IDEOGRAPH-2F982
+2F983;8103;8103;8103;8103; # (脃; 脃; 脃; 脃; 脃; ) CJK COMPATIBILITY IDEOGRAPH-2F983
+2F984;440B;440B;440B;440B; # (䐋; 䐋; 䐋; 䐋; 䐋; ) CJK COMPATIBILITY IDEOGRAPH-2F984
+2F985;813E;813E;813E;813E; # (脾; 脾; 脾; 脾; 脾; ) CJK COMPATIBILITY IDEOGRAPH-2F985
+2F986;5AB5;5AB5;5AB5;5AB5; # (媵; 媵; 媵; 媵; 媵; ) CJK COMPATIBILITY IDEOGRAPH-2F986
+2F987;267A7;267A7;267A7;267A7; # (𦞧; 𦞧; 𦞧; 𦞧; 𦞧; ) CJK COMPATIBILITY IDEOGRAPH-2F987
+2F988;267B5;267B5;267B5;267B5; # (𦞵; 𦞵; 𦞵; 𦞵; 𦞵; ) CJK COMPATIBILITY IDEOGRAPH-2F988
+2F989;23393;23393;23393;23393; # (𣎓; 𣎓; 𣎓; 𣎓; 𣎓; ) CJK COMPATIBILITY IDEOGRAPH-2F989
+2F98A;2339C;2339C;2339C;2339C; # (𣎜; 𣎜; 𣎜; 𣎜; 𣎜; ) CJK COMPATIBILITY IDEOGRAPH-2F98A
+2F98B;8201;8201;8201;8201; # (舁; 舁; 舁; 舁; 舁; ) CJK COMPATIBILITY IDEOGRAPH-2F98B
+2F98C;8204;8204;8204;8204; # (舄; 舄; 舄; 舄; 舄; ) CJK COMPATIBILITY IDEOGRAPH-2F98C
+2F98D;8F9E;8F9E;8F9E;8F9E; # (辞; 辞; 辞; 辞; 辞; ) CJK COMPATIBILITY IDEOGRAPH-2F98D
+2F98E;446B;446B;446B;446B; # (䑫; 䑫; 䑫; 䑫; 䑫; ) CJK COMPATIBILITY IDEOGRAPH-2F98E
+2F98F;8291;8291;8291;8291; # (芑; 芑; 芑; 芑; 芑; ) CJK COMPATIBILITY IDEOGRAPH-2F98F
+2F990;828B;828B;828B;828B; # (芋; 芋; 芋; 芋; 芋; ) CJK COMPATIBILITY IDEOGRAPH-2F990
+2F991;829D;829D;829D;829D; # (芝; 芝; 芝; 芝; 芝; ) CJK COMPATIBILITY IDEOGRAPH-2F991
+2F992;52B3;52B3;52B3;52B3; # (劳; 劳; 劳; 劳; 劳; ) CJK COMPATIBILITY IDEOGRAPH-2F992
+2F993;82B1;82B1;82B1;82B1; # (花; 花; 花; 花; 花; ) CJK COMPATIBILITY IDEOGRAPH-2F993
+2F994;82B3;82B3;82B3;82B3; # (芳; 芳; 芳; 芳; 芳; ) CJK COMPATIBILITY IDEOGRAPH-2F994
+2F995;82BD;82BD;82BD;82BD; # (芽; 芽; 芽; 芽; 芽; ) CJK COMPATIBILITY IDEOGRAPH-2F995
+2F996;82E6;82E6;82E6;82E6; # (苦; 苦; 苦; 苦; 苦; ) CJK COMPATIBILITY IDEOGRAPH-2F996
+2F997;26B3C;26B3C;26B3C;26B3C; # (𦬼; 𦬼; 𦬼; 𦬼; 𦬼; ) CJK COMPATIBILITY IDEOGRAPH-2F997
+2F998;82E5;82E5;82E5;82E5; # (若; 若; 若; 若; 若; ) CJK COMPATIBILITY IDEOGRAPH-2F998
+2F999;831D;831D;831D;831D; # (茝; 茝; 茝; 茝; 茝; ) CJK COMPATIBILITY IDEOGRAPH-2F999
+2F99A;8363;8363;8363;8363; # (荣; 荣; 荣; 荣; 荣; ) CJK COMPATIBILITY IDEOGRAPH-2F99A
+2F99B;83AD;83AD;83AD;83AD; # (莭; 莭; 莭; 莭; 莭; ) CJK COMPATIBILITY IDEOGRAPH-2F99B
+2F99C;8323;8323;8323;8323; # (茣; 茣; 茣; 茣; 茣; ) CJK COMPATIBILITY IDEOGRAPH-2F99C
+2F99D;83BD;83BD;83BD;83BD; # (莽; 莽; 莽; 莽; 莽; ) CJK COMPATIBILITY IDEOGRAPH-2F99D
+2F99E;83E7;83E7;83E7;83E7; # (菧; 菧; 菧; 菧; 菧; ) CJK COMPATIBILITY IDEOGRAPH-2F99E
+2F99F;8457;8457;8457;8457; # (著; 著; 著; 著; 著; ) CJK COMPATIBILITY IDEOGRAPH-2F99F
+2F9A0;8353;8353;8353;8353; # (荓; 荓; 荓; 荓; 荓; ) CJK COMPATIBILITY IDEOGRAPH-2F9A0
+2F9A1;83CA;83CA;83CA;83CA; # (菊; 菊; 菊; 菊; 菊; ) CJK COMPATIBILITY IDEOGRAPH-2F9A1
+2F9A2;83CC;83CC;83CC;83CC; # (菌; 菌; 菌; 菌; 菌; ) CJK COMPATIBILITY IDEOGRAPH-2F9A2
+2F9A3;83DC;83DC;83DC;83DC; # (菜; 菜; 菜; 菜; 菜; ) CJK COMPATIBILITY IDEOGRAPH-2F9A3
+2F9A4;26C36;26C36;26C36;26C36; # (𦰶; 𦰶; 𦰶; 𦰶; 𦰶; ) CJK COMPATIBILITY IDEOGRAPH-2F9A4
+2F9A5;26D6B;26D6B;26D6B;26D6B; # (𦵫; 𦵫; 𦵫; 𦵫; 𦵫; ) CJK COMPATIBILITY IDEOGRAPH-2F9A5
+2F9A6;26CD5;26CD5;26CD5;26CD5; # (𦳕; 𦳕; 𦳕; 𦳕; 𦳕; ) CJK COMPATIBILITY IDEOGRAPH-2F9A6
+2F9A7;452B;452B;452B;452B; # (䔫; 䔫; 䔫; 䔫; 䔫; ) CJK COMPATIBILITY IDEOGRAPH-2F9A7
+2F9A8;84F1;84F1;84F1;84F1; # (蓱; 蓱; 蓱; 蓱; 蓱; ) CJK COMPATIBILITY IDEOGRAPH-2F9A8
+2F9A9;84F3;84F3;84F3;84F3; # (蓳; 蓳; 蓳; 蓳; 蓳; ) CJK COMPATIBILITY IDEOGRAPH-2F9A9
+2F9AA;8516;8516;8516;8516; # (蔖; 蔖; 蔖; 蔖; 蔖; ) CJK COMPATIBILITY IDEOGRAPH-2F9AA
+2F9AB;273CA;273CA;273CA;273CA; # (𧏊; 𧏊; 𧏊; 𧏊; 𧏊; ) CJK COMPATIBILITY IDEOGRAPH-2F9AB
+2F9AC;8564;8564;8564;8564; # (蕤; 蕤; 蕤; 蕤; 蕤; ) CJK COMPATIBILITY IDEOGRAPH-2F9AC
+2F9AD;26F2C;26F2C;26F2C;26F2C; # (𦼬; 𦼬; 𦼬; 𦼬; 𦼬; ) CJK COMPATIBILITY IDEOGRAPH-2F9AD
+2F9AE;455D;455D;455D;455D; # (䕝; 䕝; 䕝; 䕝; 䕝; ) CJK COMPATIBILITY IDEOGRAPH-2F9AE
+2F9AF;4561;4561;4561;4561; # (䕡; 䕡; 䕡; 䕡; 䕡; ) CJK COMPATIBILITY IDEOGRAPH-2F9AF
+2F9B0;26FB1;26FB1;26FB1;26FB1; # (𦾱; 𦾱; 𦾱; 𦾱; 𦾱; ) CJK COMPATIBILITY IDEOGRAPH-2F9B0
+2F9B1;270D2;270D2;270D2;270D2; # (𧃒; 𧃒; 𧃒; 𧃒; 𧃒; ) CJK COMPATIBILITY IDEOGRAPH-2F9B1
+2F9B2;456B;456B;456B;456B; # (䕫; 䕫; 䕫; 䕫; 䕫; ) CJK COMPATIBILITY IDEOGRAPH-2F9B2
+2F9B3;8650;8650;8650;8650; # (虐; 虐; 虐; 虐; 虐; ) CJK COMPATIBILITY IDEOGRAPH-2F9B3
+2F9B4;865C;865C;865C;865C; # (虜; 虜; 虜; 虜; 虜; ) CJK COMPATIBILITY IDEOGRAPH-2F9B4
+2F9B5;8667;8667;8667;8667; # (虧; 虧; 虧; 虧; 虧; ) CJK COMPATIBILITY IDEOGRAPH-2F9B5
+2F9B6;8669;8669;8669;8669; # (虩; 虩; 虩; 虩; 虩; ) CJK COMPATIBILITY IDEOGRAPH-2F9B6
+2F9B7;86A9;86A9;86A9;86A9; # (蚩; 蚩; 蚩; 蚩; 蚩; ) CJK COMPATIBILITY IDEOGRAPH-2F9B7
+2F9B8;8688;8688;8688;8688; # (蚈; 蚈; 蚈; 蚈; 蚈; ) CJK COMPATIBILITY IDEOGRAPH-2F9B8
+2F9B9;870E;870E;870E;870E; # (蜎; 蜎; 蜎; 蜎; 蜎; ) CJK COMPATIBILITY IDEOGRAPH-2F9B9
+2F9BA;86E2;86E2;86E2;86E2; # (蛢; 蛢; 蛢; 蛢; 蛢; ) CJK COMPATIBILITY IDEOGRAPH-2F9BA
+2F9BB;8779;8779;8779;8779; # (蝹; 蝹; 蝹; 蝹; 蝹; ) CJK COMPATIBILITY IDEOGRAPH-2F9BB
+2F9BC;8728;8728;8728;8728; # (蜨; 蜨; 蜨; 蜨; 蜨; ) CJK COMPATIBILITY IDEOGRAPH-2F9BC
+2F9BD;876B;876B;876B;876B; # (蝫; 蝫; 蝫; 蝫; 蝫; ) CJK COMPATIBILITY IDEOGRAPH-2F9BD
+2F9BE;8786;8786;8786;8786; # (螆; 螆; 螆; 螆; 螆; ) CJK COMPATIBILITY IDEOGRAPH-2F9BE
+2F9BF;45D7;45D7;45D7;45D7; # (䗗; 䗗; 䗗; 䗗; 䗗; ) CJK COMPATIBILITY IDEOGRAPH-2F9BF
+2F9C0;87E1;87E1;87E1;87E1; # (蟡; 蟡; 蟡; 蟡; 蟡; ) CJK COMPATIBILITY IDEOGRAPH-2F9C0
+2F9C1;8801;8801;8801;8801; # (蠁; 蠁; 蠁; 蠁; 蠁; ) CJK COMPATIBILITY IDEOGRAPH-2F9C1
+2F9C2;45F9;45F9;45F9;45F9; # (䗹; 䗹; 䗹; 䗹; 䗹; ) CJK COMPATIBILITY IDEOGRAPH-2F9C2
+2F9C3;8860;8860;8860;8860; # (衠; 衠; 衠; 衠; 衠; ) CJK COMPATIBILITY IDEOGRAPH-2F9C3
+2F9C4;8863;8863;8863;8863; # (衣; 衣; 衣; 衣; 衣; ) CJK COMPATIBILITY IDEOGRAPH-2F9C4
+2F9C5;27667;27667;27667;27667; # (𧙧; 𧙧; 𧙧; 𧙧; 𧙧; ) CJK COMPATIBILITY IDEOGRAPH-2F9C5
+2F9C6;88D7;88D7;88D7;88D7; # (裗; 裗; 裗; 裗; 裗; ) CJK COMPATIBILITY IDEOGRAPH-2F9C6
+2F9C7;88DE;88DE;88DE;88DE; # (裞; 裞; 裞; 裞; 裞; ) CJK COMPATIBILITY IDEOGRAPH-2F9C7
+2F9C8;4635;4635;4635;4635; # (䘵; 䘵; 䘵; 䘵; 䘵; ) CJK COMPATIBILITY IDEOGRAPH-2F9C8
+2F9C9;88FA;88FA;88FA;88FA; # (裺; 裺; 裺; 裺; 裺; ) CJK COMPATIBILITY IDEOGRAPH-2F9C9
+2F9CA;34BB;34BB;34BB;34BB; # (㒻; 㒻; 㒻; 㒻; 㒻; ) CJK COMPATIBILITY IDEOGRAPH-2F9CA
+2F9CB;278AE;278AE;278AE;278AE; # (𧢮; 𧢮; 𧢮; 𧢮; 𧢮; ) CJK COMPATIBILITY IDEOGRAPH-2F9CB
+2F9CC;27966;27966;27966;27966; # (𧥦; 𧥦; 𧥦; 𧥦; 𧥦; ) CJK COMPATIBILITY IDEOGRAPH-2F9CC
+2F9CD;46BE;46BE;46BE;46BE; # (䚾; 䚾; 䚾; 䚾; 䚾; ) CJK COMPATIBILITY IDEOGRAPH-2F9CD
+2F9CE;46C7;46C7;46C7;46C7; # (䛇; 䛇; 䛇; 䛇; 䛇; ) CJK COMPATIBILITY IDEOGRAPH-2F9CE
+2F9CF;8AA0;8AA0;8AA0;8AA0; # (誠; 誠; 誠; 誠; 誠; ) CJK COMPATIBILITY IDEOGRAPH-2F9CF
+2F9D0;8AED;8AED;8AED;8AED; # (諭; 諭; 諭; 諭; 諭; ) CJK COMPATIBILITY IDEOGRAPH-2F9D0
+2F9D1;8B8A;8B8A;8B8A;8B8A; # (變; 變; 變; 變; 變; ) CJK COMPATIBILITY IDEOGRAPH-2F9D1
+2F9D2;8C55;8C55;8C55;8C55; # (豕; 豕; 豕; 豕; 豕; ) CJK COMPATIBILITY IDEOGRAPH-2F9D2
+2F9D3;27CA8;27CA8;27CA8;27CA8; # (𧲨; 𧲨; 𧲨; 𧲨; 𧲨; ) CJK COMPATIBILITY IDEOGRAPH-2F9D3
+2F9D4;8CAB;8CAB;8CAB;8CAB; # (貫; 貫; 貫; 貫; 貫; ) CJK COMPATIBILITY IDEOGRAPH-2F9D4
+2F9D5;8CC1;8CC1;8CC1;8CC1; # (賁; 賁; 賁; 賁; 賁; ) CJK COMPATIBILITY IDEOGRAPH-2F9D5
+2F9D6;8D1B;8D1B;8D1B;8D1B; # (贛; 贛; 贛; 贛; 贛; ) CJK COMPATIBILITY IDEOGRAPH-2F9D6
+2F9D7;8D77;8D77;8D77;8D77; # (起; 起; 起; 起; 起; ) CJK COMPATIBILITY IDEOGRAPH-2F9D7
+2F9D8;27F2F;27F2F;27F2F;27F2F; # (𧼯; 𧼯; 𧼯; 𧼯; 𧼯; ) CJK COMPATIBILITY IDEOGRAPH-2F9D8
+2F9D9;20804;20804;20804;20804; # (𠠄; 𠠄; 𠠄; 𠠄; 𠠄; ) CJK COMPATIBILITY IDEOGRAPH-2F9D9
+2F9DA;8DCB;8DCB;8DCB;8DCB; # (跋; 跋; 跋; 跋; 跋; ) CJK COMPATIBILITY IDEOGRAPH-2F9DA
+2F9DB;8DBC;8DBC;8DBC;8DBC; # (趼; 趼; 趼; 趼; 趼; ) CJK COMPATIBILITY IDEOGRAPH-2F9DB
+2F9DC;8DF0;8DF0;8DF0;8DF0; # (跰; 跰; 跰; 跰; 跰; ) CJK COMPATIBILITY IDEOGRAPH-2F9DC
+2F9DD;208DE;208DE;208DE;208DE; # (𠣞; 𠣞; 𠣞; 𠣞; 𠣞; ) CJK COMPATIBILITY IDEOGRAPH-2F9DD
+2F9DE;8ED4;8ED4;8ED4;8ED4; # (軔; 軔; 軔; 軔; 軔; ) CJK COMPATIBILITY IDEOGRAPH-2F9DE
+2F9DF;8F38;8F38;8F38;8F38; # (輸; 輸; 輸; 輸; 輸; ) CJK COMPATIBILITY IDEOGRAPH-2F9DF
+2F9E0;285D2;285D2;285D2;285D2; # (𨗒; 𨗒; 𨗒; 𨗒; 𨗒; ) CJK COMPATIBILITY IDEOGRAPH-2F9E0
+2F9E1;285ED;285ED;285ED;285ED; # (𨗭; 𨗭; 𨗭; 𨗭; 𨗭; ) CJK COMPATIBILITY IDEOGRAPH-2F9E1
+2F9E2;9094;9094;9094;9094; # (邔; 邔; 邔; 邔; 邔; ) CJK COMPATIBILITY IDEOGRAPH-2F9E2
+2F9E3;90F1;90F1;90F1;90F1; # (郱; 郱; 郱; 郱; 郱; ) CJK COMPATIBILITY IDEOGRAPH-2F9E3
+2F9E4;9111;9111;9111;9111; # (鄑; 鄑; 鄑; 鄑; 鄑; ) CJK COMPATIBILITY IDEOGRAPH-2F9E4
+2F9E5;2872E;2872E;2872E;2872E; # (𨜮; 𨜮; 𨜮; 𨜮; 𨜮; ) CJK COMPATIBILITY IDEOGRAPH-2F9E5
+2F9E6;911B;911B;911B;911B; # (鄛; 鄛; 鄛; 鄛; 鄛; ) CJK COMPATIBILITY IDEOGRAPH-2F9E6
+2F9E7;9238;9238;9238;9238; # (鈸; 鈸; 鈸; 鈸; 鈸; ) CJK COMPATIBILITY IDEOGRAPH-2F9E7
+2F9E8;92D7;92D7;92D7;92D7; # (鋗; 鋗; 鋗; 鋗; 鋗; ) CJK COMPATIBILITY IDEOGRAPH-2F9E8
+2F9E9;92D8;92D8;92D8;92D8; # (鋘; 鋘; 鋘; 鋘; 鋘; ) CJK COMPATIBILITY IDEOGRAPH-2F9E9
+2F9EA;927C;927C;927C;927C; # (鉼; 鉼; 鉼; 鉼; 鉼; ) CJK COMPATIBILITY IDEOGRAPH-2F9EA
+2F9EB;93F9;93F9;93F9;93F9; # (鏹; 鏹; 鏹; 鏹; 鏹; ) CJK COMPATIBILITY IDEOGRAPH-2F9EB
+2F9EC;9415;9415;9415;9415; # (鐕; 鐕; 鐕; 鐕; 鐕; ) CJK COMPATIBILITY IDEOGRAPH-2F9EC
+2F9ED;28BFA;28BFA;28BFA;28BFA; # (𨯺; 𨯺; 𨯺; 𨯺; 𨯺; ) CJK COMPATIBILITY IDEOGRAPH-2F9ED
+2F9EE;958B;958B;958B;958B; # (開; 開; 開; 開; 開; ) CJK COMPATIBILITY IDEOGRAPH-2F9EE
+2F9EF;4995;4995;4995;4995; # (䦕; 䦕; 䦕; 䦕; 䦕; ) CJK COMPATIBILITY IDEOGRAPH-2F9EF
+2F9F0;95B7;95B7;95B7;95B7; # (閷; 閷; 閷; 閷; 閷; ) CJK COMPATIBILITY IDEOGRAPH-2F9F0
+2F9F1;28D77;28D77;28D77;28D77; # (𨵷; 𨵷; 𨵷; 𨵷; 𨵷; ) CJK COMPATIBILITY IDEOGRAPH-2F9F1
+2F9F2;49E6;49E6;49E6;49E6; # (䧦; 䧦; 䧦; 䧦; 䧦; ) CJK COMPATIBILITY IDEOGRAPH-2F9F2
+2F9F3;96C3;96C3;96C3;96C3; # (雃; 雃; 雃; 雃; 雃; ) CJK COMPATIBILITY IDEOGRAPH-2F9F3
+2F9F4;5DB2;5DB2;5DB2;5DB2; # (嶲; 嶲; 嶲; 嶲; 嶲; ) CJK COMPATIBILITY IDEOGRAPH-2F9F4
+2F9F5;9723;9723;9723;9723; # (霣; 霣; 霣; 霣; 霣; ) CJK COMPATIBILITY IDEOGRAPH-2F9F5
+2F9F6;29145;29145;29145;29145; # (𩅅; 𩅅; 𩅅; 𩅅; 𩅅; ) CJK COMPATIBILITY IDEOGRAPH-2F9F6
+2F9F7;2921A;2921A;2921A;2921A; # (𩈚; 𩈚; 𩈚; 𩈚; 𩈚; ) CJK COMPATIBILITY IDEOGRAPH-2F9F7
+2F9F8;4A6E;4A6E;4A6E;4A6E; # (䩮; 䩮; 䩮; 䩮; 䩮; ) CJK COMPATIBILITY IDEOGRAPH-2F9F8
+2F9F9;4A76;4A76;4A76;4A76; # (䩶; 䩶; 䩶; 䩶; 䩶; ) CJK COMPATIBILITY IDEOGRAPH-2F9F9
+2F9FA;97E0;97E0;97E0;97E0; # (韠; 韠; 韠; 韠; 韠; ) CJK COMPATIBILITY IDEOGRAPH-2F9FA
+2F9FB;2940A;2940A;2940A;2940A; # (𩐊; 𩐊; 𩐊; 𩐊; 𩐊; ) CJK COMPATIBILITY IDEOGRAPH-2F9FB
+2F9FC;4AB2;4AB2;4AB2;4AB2; # (䪲; 䪲; 䪲; 䪲; 䪲; ) CJK COMPATIBILITY IDEOGRAPH-2F9FC
+2F9FD;29496;29496;29496;29496; # (𩒖; 𩒖; 𩒖; 𩒖; 𩒖; ) CJK COMPATIBILITY IDEOGRAPH-2F9FD
+2F9FE;980B;980B;980B;980B; # (頋; 頋; 頋; 頋; 頋; ) CJK COMPATIBILITY IDEOGRAPH-2F9FE
+2F9FF;980B;980B;980B;980B; # (頋; 頋; 頋; 頋; 頋; ) CJK COMPATIBILITY IDEOGRAPH-2F9FF
+2FA00;9829;9829;9829;9829; # (頩; 頩; 頩; 頩; 頩; ) CJK COMPATIBILITY IDEOGRAPH-2FA00
+2FA01;295B6;295B6;295B6;295B6; # (𩖶; 𩖶; 𩖶; 𩖶; 𩖶; ) CJK COMPATIBILITY IDEOGRAPH-2FA01
+2FA02;98E2;98E2;98E2;98E2; # (飢; 飢; 飢; 飢; 飢; ) CJK COMPATIBILITY IDEOGRAPH-2FA02
+2FA03;4B33;4B33;4B33;4B33; # (䬳; 䬳; 䬳; 䬳; 䬳; ) CJK COMPATIBILITY IDEOGRAPH-2FA03
+2FA04;9929;9929;9929;9929; # (餩; 餩; 餩; 餩; 餩; ) CJK COMPATIBILITY IDEOGRAPH-2FA04
+2FA05;99A7;99A7;99A7;99A7; # (馧; 馧; 馧; 馧; 馧; ) CJK COMPATIBILITY IDEOGRAPH-2FA05
+2FA06;99C2;99C2;99C2;99C2; # (駂; 駂; 駂; 駂; 駂; ) CJK COMPATIBILITY IDEOGRAPH-2FA06
+2FA07;99FE;99FE;99FE;99FE; # (駾; 駾; 駾; 駾; 駾; ) CJK COMPATIBILITY IDEOGRAPH-2FA07
+2FA08;4BCE;4BCE;4BCE;4BCE; # (䯎; 䯎; 䯎; 䯎; 䯎; ) CJK COMPATIBILITY IDEOGRAPH-2FA08
+2FA09;29B30;29B30;29B30;29B30; # (𩬰; 𩬰; 𩬰; 𩬰; 𩬰; ) CJK COMPATIBILITY IDEOGRAPH-2FA09
+2FA0A;9B12;9B12;9B12;9B12; # (鬒; 鬒; 鬒; 鬒; 鬒; ) CJK COMPATIBILITY IDEOGRAPH-2FA0A
+2FA0B;9C40;9C40;9C40;9C40; # (鱀; 鱀; 鱀; 鱀; 鱀; ) CJK COMPATIBILITY IDEOGRAPH-2FA0B
+2FA0C;9CFD;9CFD;9CFD;9CFD; # (鳽; 鳽; 鳽; 鳽; 鳽; ) CJK COMPATIBILITY IDEOGRAPH-2FA0C
+2FA0D;4CCE;4CCE;4CCE;4CCE; # (䳎; 䳎; 䳎; 䳎; 䳎; ) CJK COMPATIBILITY IDEOGRAPH-2FA0D
+2FA0E;4CED;4CED;4CED;4CED; # (䳭; 䳭; 䳭; 䳭; 䳭; ) CJK COMPATIBILITY IDEOGRAPH-2FA0E
+2FA0F;9D67;9D67;9D67;9D67; # (鵧; 鵧; 鵧; 鵧; 鵧; ) CJK COMPATIBILITY IDEOGRAPH-2FA0F
+2FA10;2A0CE;2A0CE;2A0CE;2A0CE; # (𪃎; 𪃎; 𪃎; 𪃎; 𪃎; ) CJK COMPATIBILITY IDEOGRAPH-2FA10
+2FA11;4CF8;4CF8;4CF8;4CF8; # (䳸; 䳸; 䳸; 䳸; 䳸; ) CJK COMPATIBILITY IDEOGRAPH-2FA11
+2FA12;2A105;2A105;2A105;2A105; # (𪄅; 𪄅; 𪄅; 𪄅; 𪄅; ) CJK COMPATIBILITY IDEOGRAPH-2FA12
+2FA13;2A20E;2A20E;2A20E;2A20E; # (𪈎; 𪈎; 𪈎; 𪈎; 𪈎; ) CJK COMPATIBILITY IDEOGRAPH-2FA13
+2FA14;2A291;2A291;2A291;2A291; # (𪊑; 𪊑; 𪊑; 𪊑; 𪊑; ) CJK COMPATIBILITY IDEOGRAPH-2FA14
+2FA15;9EBB;9EBB;9EBB;9EBB; # (麻; 麻; 麻; 麻; 麻; ) CJK COMPATIBILITY IDEOGRAPH-2FA15
+2FA16;4D56;4D56;4D56;4D56; # (䵖; 䵖; 䵖; 䵖; 䵖; ) CJK COMPATIBILITY IDEOGRAPH-2FA16
+2FA17;9EF9;9EF9;9EF9;9EF9; # (黹; 黹; 黹; 黹; 黹; ) CJK COMPATIBILITY IDEOGRAPH-2FA17
+2FA18;9EFE;9EFE;9EFE;9EFE; # (黾; 黾; 黾; 黾; 黾; ) CJK COMPATIBILITY IDEOGRAPH-2FA18
+2FA19;9F05;9F05;9F05;9F05; # (鼅; 鼅; 鼅; 鼅; 鼅; ) CJK COMPATIBILITY IDEOGRAPH-2FA19
+2FA1A;9F0F;9F0F;9F0F;9F0F; # (鼏; 鼏; 鼏; 鼏; 鼏; ) CJK COMPATIBILITY IDEOGRAPH-2FA1A
+2FA1B;9F16;9F16;9F16;9F16; # (鼖; 鼖; 鼖; 鼖; 鼖; ) CJK COMPATIBILITY IDEOGRAPH-2FA1B
+2FA1C;9F3B;9F3B;9F3B;9F3B; # (鼻; 鼻; 鼻; 鼻; 鼻; ) CJK COMPATIBILITY IDEOGRAPH-2FA1C
+2FA1D;2A600;2A600;2A600;2A600; # (𪘀; 𪘀; 𪘀; 𪘀; 𪘀; ) CJK COMPATIBILITY IDEOGRAPH-2FA1D
+#
+@Part2 # Canonical Order Test
+#
+0061 0315 0300 05AE 0300 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062; # (a◌̕◌̀◌֮◌̀b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 0300 0315 0300 05AE 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062; # (a◌̀◌̕◌̀◌֮b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0301 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062; # (a◌̕◌̀◌֮◌́b; à◌֮◌́◌̕b; a◌֮◌̀◌́◌̕b; à◌֮◌́◌̕b; a◌֮◌̀◌́◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ACUTE ACCENT, LATIN SMALL LETTER B
+0061 0301 0315 0300 05AE 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062; # (a◌́◌̕◌̀◌֮b; á◌֮◌̀◌̕b; a◌֮◌́◌̀◌̕b; á◌֮◌̀◌̕b; a◌֮◌́◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ACUTE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0302 0062;00E0 05AE 0302 0315 0062;0061 05AE 0300 0302 0315 0062;00E0 05AE 0302 0315 0062;0061 05AE 0300 0302 0315 0062; # (a◌̕◌̀◌֮◌̂b; à◌֮◌̂◌̕b; a◌֮◌̀◌̂◌̕b; à◌֮◌̂◌̕b; a◌֮◌̀◌̂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CIRCUMFLEX ACCENT, LATIN SMALL LETTER B
+0061 0302 0315 0300 05AE 0062;1EA7 05AE 0315 0062;0061 05AE 0302 0300 0315 0062;1EA7 05AE 0315 0062;0061 05AE 0302 0300 0315 0062; # (a◌̂◌̕◌̀◌֮b; ầ◌֮◌̕b; a◌֮◌̂◌̀◌̕b; ầ◌֮◌̕b; a◌֮◌̂◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CIRCUMFLEX ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0303 0062;00E0 05AE 0303 0315 0062;0061 05AE 0300 0303 0315 0062;00E0 05AE 0303 0315 0062;0061 05AE 0300 0303 0315 0062; # (a◌̕◌̀◌֮◌̃b; à◌֮◌̃◌̕b; a◌֮◌̀◌̃◌̕b; à◌֮◌̃◌̕b; a◌֮◌̀◌̃◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING TILDE, LATIN SMALL LETTER B
+0061 0303 0315 0300 05AE 0062;00E3 05AE 0300 0315 0062;0061 05AE 0303 0300 0315 0062;00E3 05AE 0300 0315 0062;0061 05AE 0303 0300 0315 0062; # (a◌̃◌̕◌̀◌֮b; ã◌֮◌̀◌̕b; a◌֮◌̃◌̀◌̕b; ã◌֮◌̀◌̕b; a◌֮◌̃◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING TILDE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0304 0062;00E0 05AE 0304 0315 0062;0061 05AE 0300 0304 0315 0062;00E0 05AE 0304 0315 0062;0061 05AE 0300 0304 0315 0062; # (a◌̕◌̀◌֮◌̄b; à◌֮◌̄◌̕b; a◌֮◌̀◌̄◌̕b; à◌֮◌̄◌̕b; a◌֮◌̀◌̄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING MACRON, LATIN SMALL LETTER B
+0061 0304 0315 0300 05AE 0062;0101 05AE 0300 0315 0062;0061 05AE 0304 0300 0315 0062;0101 05AE 0300 0315 0062;0061 05AE 0304 0300 0315 0062; # (a◌̄◌̕◌̀◌֮b; ā◌֮◌̀◌̕b; a◌֮◌̄◌̀◌̕b; ā◌֮◌̀◌̕b; a◌֮◌̄◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0305 0062;00E0 05AE 0305 0315 0062;0061 05AE 0300 0305 0315 0062;00E0 05AE 0305 0315 0062;0061 05AE 0300 0305 0315 0062; # (a◌̕◌̀◌֮◌̅b; à◌֮◌̅◌̕b; a◌֮◌̀◌̅◌̕b; à◌֮◌̅◌̕b; a◌֮◌̀◌̅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OVERLINE, LATIN SMALL LETTER B
+0061 0305 0315 0300 05AE 0062;0061 05AE 0305 0300 0315 0062;0061 05AE 0305 0300 0315 0062;0061 05AE 0305 0300 0315 0062;0061 05AE 0305 0300 0315 0062; # (a◌̅◌̕◌̀◌֮b; a◌֮◌̅◌̀◌̕b; a◌֮◌̅◌̀◌̕b; a◌֮◌̅◌̀◌̕b; a◌֮◌̅◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OVERLINE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0306 0062;00E0 05AE 0306 0315 0062;0061 05AE 0300 0306 0315 0062;00E0 05AE 0306 0315 0062;0061 05AE 0300 0306 0315 0062; # (a◌̕◌̀◌֮◌̆b; à◌֮◌̆◌̕b; a◌֮◌̀◌̆◌̕b; à◌֮◌̆◌̕b; a◌֮◌̀◌̆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING BREVE, LATIN SMALL LETTER B
+0061 0306 0315 0300 05AE 0062;1EB1 05AE 0315 0062;0061 05AE 0306 0300 0315 0062;1EB1 05AE 0315 0062;0061 05AE 0306 0300 0315 0062; # (a◌̆◌̕◌̀◌֮b; ằ◌֮◌̕b; a◌֮◌̆◌̀◌̕b; ằ◌֮◌̕b; a◌֮◌̆◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING BREVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0307 0062;00E0 05AE 0307 0315 0062;0061 05AE 0300 0307 0315 0062;00E0 05AE 0307 0315 0062;0061 05AE 0300 0307 0315 0062; # (a◌̕◌̀◌֮◌̇b; à◌֮◌̇◌̕b; a◌֮◌̀◌̇◌̕b; à◌֮◌̇◌̕b; a◌֮◌̀◌̇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOT ABOVE, LATIN SMALL LETTER B
+0061 0307 0315 0300 05AE 0062;0227 05AE 0300 0315 0062;0061 05AE 0307 0300 0315 0062;0227 05AE 0300 0315 0062;0061 05AE 0307 0300 0315 0062; # (a◌̇◌̕◌̀◌֮b; ȧ◌֮◌̀◌̕b; a◌֮◌̇◌̀◌̕b; ȧ◌֮◌̀◌̕b; a◌֮◌̇◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0308 0062;00E0 05AE 0308 0315 0062;0061 05AE 0300 0308 0315 0062;00E0 05AE 0308 0315 0062;0061 05AE 0300 0308 0315 0062; # (a◌̕◌̀◌֮◌̈b; à◌֮◌̈◌̕b; a◌֮◌̀◌̈◌̕b; à◌֮◌̈◌̕b; a◌֮◌̀◌̈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DIAERESIS, LATIN SMALL LETTER B
+0061 0308 0315 0300 05AE 0062;00E4 05AE 0300 0315 0062;0061 05AE 0308 0300 0315 0062;00E4 05AE 0300 0315 0062;0061 05AE 0308 0300 0315 0062; # (a◌̈◌̕◌̀◌֮b; ä◌֮◌̀◌̕b; a◌֮◌̈◌̀◌̕b; ä◌֮◌̀◌̕b; a◌֮◌̈◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0309 0062;00E0 05AE 0309 0315 0062;0061 05AE 0300 0309 0315 0062;00E0 05AE 0309 0315 0062;0061 05AE 0300 0309 0315 0062; # (a◌̕◌̀◌֮◌̉b; à◌֮◌̉◌̕b; a◌֮◌̀◌̉◌̕b; à◌֮◌̉◌̕b; a◌֮◌̀◌̉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING HOOK ABOVE, LATIN SMALL LETTER B
+0061 0309 0315 0300 05AE 0062;1EA3 05AE 0300 0315 0062;0061 05AE 0309 0300 0315 0062;1EA3 05AE 0300 0315 0062;0061 05AE 0309 0300 0315 0062; # (a◌̉◌̕◌̀◌֮b; ả◌֮◌̀◌̕b; a◌֮◌̉◌̀◌̕b; ả◌֮◌̀◌̕b; a◌֮◌̉◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING HOOK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 030A 0062;00E0 05AE 030A 0315 0062;0061 05AE 0300 030A 0315 0062;00E0 05AE 030A 0315 0062;0061 05AE 0300 030A 0315 0062; # (a◌̕◌̀◌֮◌̊b; à◌֮◌̊◌̕b; a◌֮◌̀◌̊◌̕b; à◌֮◌̊◌̕b; a◌֮◌̀◌̊◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING RING ABOVE, LATIN SMALL LETTER B
+0061 030A 0315 0300 05AE 0062;00E5 05AE 0300 0315 0062;0061 05AE 030A 0300 0315 0062;00E5 05AE 0300 0315 0062;0061 05AE 030A 0300 0315 0062; # (a◌̊◌̕◌̀◌֮b; å◌֮◌̀◌̕b; a◌֮◌̊◌̀◌̕b; å◌֮◌̀◌̕b; a◌֮◌̊◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 030B 0062;00E0 05AE 030B 0315 0062;0061 05AE 0300 030B 0315 0062;00E0 05AE 030B 0315 0062;0061 05AE 0300 030B 0315 0062; # (a◌̕◌̀◌֮◌̋b; à◌֮◌̋◌̕b; a◌֮◌̀◌̋◌̕b; à◌֮◌̋◌̕b; a◌֮◌̀◌̋◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE ACUTE ACCENT, LATIN SMALL LETTER B
+0061 030B 0315 0300 05AE 0062;0061 05AE 030B 0300 0315 0062;0061 05AE 030B 0300 0315 0062;0061 05AE 030B 0300 0315 0062;0061 05AE 030B 0300 0315 0062; # (a◌̋◌̕◌̀◌֮b; a◌֮◌̋◌̀◌̕b; a◌֮◌̋◌̀◌̕b; a◌֮◌̋◌̀◌̕b; a◌֮◌̋◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE ACUTE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 030C 0062;00E0 05AE 030C 0315 0062;0061 05AE 0300 030C 0315 0062;00E0 05AE 030C 0315 0062;0061 05AE 0300 030C 0315 0062; # (a◌̕◌̀◌֮◌̌b; à◌֮◌̌◌̕b; a◌֮◌̀◌̌◌̕b; à◌֮◌̌◌̕b; a◌֮◌̀◌̌◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CARON, LATIN SMALL LETTER B
+0061 030C 0315 0300 05AE 0062;01CE 05AE 0300 0315 0062;0061 05AE 030C 0300 0315 0062;01CE 05AE 0300 0315 0062;0061 05AE 030C 0300 0315 0062; # (a◌̌◌̕◌̀◌֮b; ǎ◌֮◌̀◌̕b; a◌֮◌̌◌̀◌̕b; ǎ◌֮◌̀◌̕b; a◌֮◌̌◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CARON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 030D 0062;00E0 05AE 030D 0315 0062;0061 05AE 0300 030D 0315 0062;00E0 05AE 030D 0315 0062;0061 05AE 0300 030D 0315 0062; # (a◌̕◌̀◌֮◌̍b; à◌֮◌̍◌̕b; a◌֮◌̀◌̍◌̕b; à◌֮◌̍◌̕b; a◌֮◌̀◌̍◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING VERTICAL LINE ABOVE, LATIN SMALL LETTER B
+0061 030D 0315 0300 05AE 0062;0061 05AE 030D 0300 0315 0062;0061 05AE 030D 0300 0315 0062;0061 05AE 030D 0300 0315 0062;0061 05AE 030D 0300 0315 0062; # (a◌̍◌̕◌̀◌֮b; a◌֮◌̍◌̀◌̕b; a◌֮◌̍◌̀◌̕b; a◌֮◌̍◌̀◌̕b; a◌֮◌̍◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING VERTICAL LINE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 030E 0062;00E0 05AE 030E 0315 0062;0061 05AE 0300 030E 0315 0062;00E0 05AE 030E 0315 0062;0061 05AE 0300 030E 0315 0062; # (a◌̕◌̀◌֮◌̎b; à◌֮◌̎◌̕b; a◌֮◌̀◌̎◌̕b; à◌֮◌̎◌̕b; a◌֮◌̀◌̎◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE VERTICAL LINE ABOVE, LATIN SMALL LETTER B
+0061 030E 0315 0300 05AE 0062;0061 05AE 030E 0300 0315 0062;0061 05AE 030E 0300 0315 0062;0061 05AE 030E 0300 0315 0062;0061 05AE 030E 0300 0315 0062; # (a◌̎◌̕◌̀◌֮b; a◌֮◌̎◌̀◌̕b; a◌֮◌̎◌̀◌̕b; a◌֮◌̎◌̀◌̕b; a◌֮◌̎◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE VERTICAL LINE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 030F 0062;00E0 05AE 030F 0315 0062;0061 05AE 0300 030F 0315 0062;00E0 05AE 030F 0315 0062;0061 05AE 0300 030F 0315 0062; # (a◌̕◌̀◌֮◌̏b; à◌֮◌̏◌̕b; a◌֮◌̀◌̏◌̕b; à◌֮◌̏◌̕b; a◌֮◌̀◌̏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE GRAVE ACCENT, LATIN SMALL LETTER B
+0061 030F 0315 0300 05AE 0062;0201 05AE 0300 0315 0062;0061 05AE 030F 0300 0315 0062;0201 05AE 0300 0315 0062;0061 05AE 030F 0300 0315 0062; # (a◌̏◌̕◌̀◌֮b; ȁ◌֮◌̀◌̕b; a◌֮◌̏◌̀◌̕b; ȁ◌֮◌̀◌̕b; a◌֮◌̏◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0310 0062;00E0 05AE 0310 0315 0062;0061 05AE 0300 0310 0315 0062;00E0 05AE 0310 0315 0062;0061 05AE 0300 0310 0315 0062; # (a◌̕◌̀◌֮◌̐b; à◌֮◌̐◌̕b; a◌֮◌̀◌̐◌̕b; à◌֮◌̐◌̕b; a◌֮◌̀◌̐◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CANDRABINDU, LATIN SMALL LETTER B
+0061 0310 0315 0300 05AE 0062;0061 05AE 0310 0300 0315 0062;0061 05AE 0310 0300 0315 0062;0061 05AE 0310 0300 0315 0062;0061 05AE 0310 0300 0315 0062; # (a◌̐◌̕◌̀◌֮b; a◌֮◌̐◌̀◌̕b; a◌֮◌̐◌̀◌̕b; a◌֮◌̐◌̀◌̕b; a◌֮◌̐◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CANDRABINDU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0311 0062;00E0 05AE 0311 0315 0062;0061 05AE 0300 0311 0315 0062;00E0 05AE 0311 0315 0062;0061 05AE 0300 0311 0315 0062; # (a◌̕◌̀◌֮◌̑b; à◌֮◌̑◌̕b; a◌֮◌̀◌̑◌̕b; à◌֮◌̑◌̕b; a◌֮◌̀◌̑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING INVERTED BREVE, LATIN SMALL LETTER B
+0061 0311 0315 0300 05AE 0062;0203 05AE 0300 0315 0062;0061 05AE 0311 0300 0315 0062;0203 05AE 0300 0315 0062;0061 05AE 0311 0300 0315 0062; # (a◌̑◌̕◌̀◌֮b; ȃ◌֮◌̀◌̕b; a◌֮◌̑◌̀◌̕b; ȃ◌֮◌̀◌̕b; a◌֮◌̑◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING INVERTED BREVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0312 0062;00E0 05AE 0312 0315 0062;0061 05AE 0300 0312 0315 0062;00E0 05AE 0312 0315 0062;0061 05AE 0300 0312 0315 0062; # (a◌̕◌̀◌֮◌̒b; à◌֮◌̒◌̕b; a◌֮◌̀◌̒◌̕b; à◌֮◌̒◌̕b; a◌֮◌̀◌̒◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING TURNED COMMA ABOVE, LATIN SMALL LETTER B
+0061 0312 0315 0300 05AE 0062;0061 05AE 0312 0300 0315 0062;0061 05AE 0312 0300 0315 0062;0061 05AE 0312 0300 0315 0062;0061 05AE 0312 0300 0315 0062; # (a◌̒◌̕◌̀◌֮b; a◌֮◌̒◌̀◌̕b; a◌֮◌̒◌̀◌̕b; a◌֮◌̒◌̀◌̕b; a◌֮◌̒◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING TURNED COMMA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0313 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062; # (a◌̕◌̀◌֮◌̓b; à◌֮◌̓◌̕b; a◌֮◌̀◌̓◌̕b; à◌֮◌̓◌̕b; a◌֮◌̀◌̓◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING COMMA ABOVE, LATIN SMALL LETTER B
+0061 0313 0315 0300 05AE 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062; # (a◌̓◌̕◌̀◌֮b; a◌֮◌̓◌̀◌̕b; a◌֮◌̓◌̀◌̕b; a◌֮◌̓◌̀◌̕b; a◌֮◌̓◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0314 0062;00E0 05AE 0314 0315 0062;0061 05AE 0300 0314 0315 0062;00E0 05AE 0314 0315 0062;0061 05AE 0300 0314 0315 0062; # (a◌̕◌̀◌֮◌̔b; à◌֮◌̔◌̕b; a◌֮◌̀◌̔◌̕b; à◌֮◌̔◌̕b; a◌֮◌̀◌̔◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING REVERSED COMMA ABOVE, LATIN SMALL LETTER B
+0061 0314 0315 0300 05AE 0062;0061 05AE 0314 0300 0315 0062;0061 05AE 0314 0300 0315 0062;0061 05AE 0314 0300 0315 0062;0061 05AE 0314 0300 0315 0062; # (a◌̔◌̕◌̀◌֮b; a◌֮◌̔◌̀◌̕b; a◌֮◌̔◌̀◌̕b; a◌֮◌̔◌̀◌̕b; a◌֮◌̔◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING REVERSED COMMA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035C 0315 0300 0315 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062; # (a◌͜◌̕◌̀◌̕b; à◌̕◌̕◌͜b; a◌̀◌̕◌̕◌͜b; à◌̕◌̕◌͜b; a◌̀◌̕◌̕◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, LATIN SMALL LETTER B
+0061 0315 035C 0315 0300 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062; # (a◌̕◌͜◌̕◌̀b; à◌̕◌̕◌͜b; a◌̀◌̕◌̕◌͜b; à◌̕◌̕◌͜b; a◌̀◌̕◌̕◌͜b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0316 0062;0061 1DFA 0316 0316 059A 0062;0061 1DFA 0316 0316 059A 0062;0061 1DFA 0316 0316 059A 0062;0061 1DFA 0316 0316 059A 0062; # (a◌֚◌̖◌᷺◌̖b; a◌᷺◌̖◌̖◌֚b; a◌᷺◌̖◌̖◌֚b; a◌᷺◌̖◌̖◌֚b; a◌᷺◌̖◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING GRAVE ACCENT BELOW, LATIN SMALL LETTER B
+0061 0316 059A 0316 1DFA 0062;0061 1DFA 0316 0316 059A 0062;0061 1DFA 0316 0316 059A 0062;0061 1DFA 0316 0316 059A 0062;0061 1DFA 0316 0316 059A 0062; # (a◌̖◌֚◌̖◌᷺b; a◌᷺◌̖◌̖◌֚b; a◌᷺◌̖◌̖◌֚b; a◌᷺◌̖◌̖◌֚b; a◌᷺◌̖◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0317 0062;0061 1DFA 0316 0317 059A 0062;0061 1DFA 0316 0317 059A 0062;0061 1DFA 0316 0317 059A 0062;0061 1DFA 0316 0317 059A 0062; # (a◌֚◌̖◌᷺◌̗b; a◌᷺◌̖◌̗◌֚b; a◌᷺◌̖◌̗◌֚b; a◌᷺◌̖◌̗◌֚b; a◌᷺◌̖◌̗◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING ACUTE ACCENT BELOW, LATIN SMALL LETTER B
+0061 0317 059A 0316 1DFA 0062;0061 1DFA 0317 0316 059A 0062;0061 1DFA 0317 0316 059A 0062;0061 1DFA 0317 0316 059A 0062;0061 1DFA 0317 0316 059A 0062; # (a◌̗◌֚◌̖◌᷺b; a◌᷺◌̗◌̖◌֚b; a◌᷺◌̗◌̖◌֚b; a◌᷺◌̗◌̖◌֚b; a◌᷺◌̗◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING ACUTE ACCENT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0318 0062;0061 1DFA 0316 0318 059A 0062;0061 1DFA 0316 0318 059A 0062;0061 1DFA 0316 0318 059A 0062;0061 1DFA 0316 0318 059A 0062; # (a◌֚◌̖◌᷺◌̘b; a◌᷺◌̖◌̘◌֚b; a◌᷺◌̖◌̘◌֚b; a◌᷺◌̖◌̘◌֚b; a◌᷺◌̖◌̘◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT TACK BELOW, LATIN SMALL LETTER B
+0061 0318 059A 0316 1DFA 0062;0061 1DFA 0318 0316 059A 0062;0061 1DFA 0318 0316 059A 0062;0061 1DFA 0318 0316 059A 0062;0061 1DFA 0318 0316 059A 0062; # (a◌̘◌֚◌̖◌᷺b; a◌᷺◌̘◌̖◌֚b; a◌᷺◌̘◌̖◌֚b; a◌᷺◌̘◌̖◌֚b; a◌᷺◌̘◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT TACK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0319 0062;0061 1DFA 0316 0319 059A 0062;0061 1DFA 0316 0319 059A 0062;0061 1DFA 0316 0319 059A 0062;0061 1DFA 0316 0319 059A 0062; # (a◌֚◌̖◌᷺◌̙b; a◌᷺◌̖◌̙◌֚b; a◌᷺◌̖◌̙◌֚b; a◌᷺◌̖◌̙◌֚b; a◌᷺◌̖◌̙◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT TACK BELOW, LATIN SMALL LETTER B
+0061 0319 059A 0316 1DFA 0062;0061 1DFA 0319 0316 059A 0062;0061 1DFA 0319 0316 059A 0062;0061 1DFA 0319 0316 059A 0062;0061 1DFA 0319 0316 059A 0062; # (a◌̙◌֚◌̖◌᷺b; a◌᷺◌̙◌̖◌֚b; a◌᷺◌̙◌̖◌֚b; a◌᷺◌̙◌̖◌֚b; a◌᷺◌̙◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT TACK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 035C 0315 0300 031A 0062;00E0 0315 031A 035C 0062;0061 0300 0315 031A 035C 0062;00E0 0315 031A 035C 0062;0061 0300 0315 031A 035C 0062; # (a◌͜◌̕◌̀◌̚b; à◌̕◌̚◌͜b; a◌̀◌̕◌̚◌͜b; à◌̕◌̚◌͜b; a◌̀◌̕◌̚◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, COMBINING LEFT ANGLE ABOVE, LATIN SMALL LETTER B
+0061 031A 035C 0315 0300 0062;00E0 031A 0315 035C 0062;0061 0300 031A 0315 035C 0062;00E0 031A 0315 035C 0062;0061 0300 031A 0315 035C 0062; # (a◌̚◌͜◌̕◌̀b; à◌̚◌̕◌͜b; a◌̀◌̚◌̕◌͜b; à◌̚◌̕◌͜b; a◌̀◌̚◌̕◌͜b; ) LATIN SMALL LETTER A, COMBINING LEFT ANGLE ABOVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 031B 0062;0061 1DCE 031B 031B 1DFA 0062;0061 1DCE 031B 031B 1DFA 0062;0061 1DCE 031B 031B 1DFA 0062;0061 1DCE 031B 031B 1DFA 0062; # (a◌᷺◌̛◌᷎◌̛b; a◌᷎◌̛◌̛◌᷺b; a◌᷎◌̛◌̛◌᷺b; a◌᷎◌̛◌̛◌᷺b; a◌᷎◌̛◌̛◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, COMBINING HORN, LATIN SMALL LETTER B
+0061 031B 1DFA 031B 1DCE 0062;0061 1DCE 031B 031B 1DFA 0062;0061 1DCE 031B 031B 1DFA 0062;0061 1DCE 031B 031B 1DFA 0062;0061 1DCE 031B 031B 1DFA 0062; # (a◌̛◌᷺◌̛◌᷎b; a◌᷎◌̛◌̛◌᷺b; a◌᷎◌̛◌̛◌᷺b; a◌᷎◌̛◌̛◌᷺b; a◌᷎◌̛◌̛◌᷺b; ) LATIN SMALL LETTER A, COMBINING HORN, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 031C 0062;0061 1DFA 0316 031C 059A 0062;0061 1DFA 0316 031C 059A 0062;0061 1DFA 0316 031C 059A 0062;0061 1DFA 0316 031C 059A 0062; # (a◌֚◌̖◌᷺◌̜b; a◌᷺◌̖◌̜◌֚b; a◌᷺◌̖◌̜◌֚b; a◌᷺◌̖◌̜◌֚b; a◌᷺◌̖◌̜◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT HALF RING BELOW, LATIN SMALL LETTER B
+0061 031C 059A 0316 1DFA 0062;0061 1DFA 031C 0316 059A 0062;0061 1DFA 031C 0316 059A 0062;0061 1DFA 031C 0316 059A 0062;0061 1DFA 031C 0316 059A 0062; # (a◌̜◌֚◌̖◌᷺b; a◌᷺◌̜◌̖◌֚b; a◌᷺◌̜◌̖◌֚b; a◌᷺◌̜◌̖◌֚b; a◌᷺◌̜◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT HALF RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 031D 0062;0061 1DFA 0316 031D 059A 0062;0061 1DFA 0316 031D 059A 0062;0061 1DFA 0316 031D 059A 0062;0061 1DFA 0316 031D 059A 0062; # (a◌֚◌̖◌᷺◌̝b; a◌᷺◌̖◌̝◌֚b; a◌᷺◌̖◌̝◌֚b; a◌᷺◌̖◌̝◌֚b; a◌᷺◌̖◌̝◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING UP TACK BELOW, LATIN SMALL LETTER B
+0061 031D 059A 0316 1DFA 0062;0061 1DFA 031D 0316 059A 0062;0061 1DFA 031D 0316 059A 0062;0061 1DFA 031D 0316 059A 0062;0061 1DFA 031D 0316 059A 0062; # (a◌̝◌֚◌̖◌᷺b; a◌᷺◌̝◌̖◌֚b; a◌᷺◌̝◌̖◌֚b; a◌᷺◌̝◌̖◌֚b; a◌᷺◌̝◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING UP TACK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 031E 0062;0061 1DFA 0316 031E 059A 0062;0061 1DFA 0316 031E 059A 0062;0061 1DFA 0316 031E 059A 0062;0061 1DFA 0316 031E 059A 0062; # (a◌֚◌̖◌᷺◌̞b; a◌᷺◌̖◌̞◌֚b; a◌᷺◌̖◌̞◌֚b; a◌᷺◌̖◌̞◌֚b; a◌᷺◌̖◌̞◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOWN TACK BELOW, LATIN SMALL LETTER B
+0061 031E 059A 0316 1DFA 0062;0061 1DFA 031E 0316 059A 0062;0061 1DFA 031E 0316 059A 0062;0061 1DFA 031E 0316 059A 0062;0061 1DFA 031E 0316 059A 0062; # (a◌̞◌֚◌̖◌᷺b; a◌᷺◌̞◌̖◌֚b; a◌᷺◌̞◌̖◌֚b; a◌᷺◌̞◌̖◌֚b; a◌᷺◌̞◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOWN TACK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 031F 0062;0061 1DFA 0316 031F 059A 0062;0061 1DFA 0316 031F 059A 0062;0061 1DFA 0316 031F 059A 0062;0061 1DFA 0316 031F 059A 0062; # (a◌֚◌̖◌᷺◌̟b; a◌᷺◌̖◌̟◌֚b; a◌᷺◌̖◌̟◌֚b; a◌᷺◌̖◌̟◌֚b; a◌᷺◌̖◌̟◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING PLUS SIGN BELOW, LATIN SMALL LETTER B
+0061 031F 059A 0316 1DFA 0062;0061 1DFA 031F 0316 059A 0062;0061 1DFA 031F 0316 059A 0062;0061 1DFA 031F 0316 059A 0062;0061 1DFA 031F 0316 059A 0062; # (a◌̟◌֚◌̖◌᷺b; a◌᷺◌̟◌̖◌֚b; a◌᷺◌̟◌̖◌֚b; a◌᷺◌̟◌̖◌֚b; a◌᷺◌̟◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING PLUS SIGN BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0320 0062;0061 1DFA 0316 0320 059A 0062;0061 1DFA 0316 0320 059A 0062;0061 1DFA 0316 0320 059A 0062;0061 1DFA 0316 0320 059A 0062; # (a◌֚◌̖◌᷺◌̠b; a◌᷺◌̖◌̠◌֚b; a◌᷺◌̖◌̠◌֚b; a◌᷺◌̖◌̠◌֚b; a◌᷺◌̖◌̠◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING MINUS SIGN BELOW, LATIN SMALL LETTER B
+0061 0320 059A 0316 1DFA 0062;0061 1DFA 0320 0316 059A 0062;0061 1DFA 0320 0316 059A 0062;0061 1DFA 0320 0316 059A 0062;0061 1DFA 0320 0316 059A 0062; # (a◌̠◌֚◌̖◌᷺b; a◌᷺◌̠◌̖◌֚b; a◌᷺◌̠◌̖◌֚b; a◌᷺◌̠◌̖◌֚b; a◌᷺◌̠◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING MINUS SIGN BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 1DCE 0321 0F74 0321 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062; # (a◌᷎◌̡◌ུ◌̡b; a◌ུ◌̡◌̡◌᷎b; a◌ུ◌̡◌̡◌᷎b; a◌ུ◌̡◌̡◌᷎b; a◌ུ◌̡◌̡◌᷎b; ) LATIN SMALL LETTER A, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, COMBINING PALATALIZED HOOK BELOW, LATIN SMALL LETTER B
+0061 0321 1DCE 0321 0F74 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062; # (a◌̡◌᷎◌̡◌ུb; a◌ུ◌̡◌̡◌᷎b; a◌ུ◌̡◌̡◌᷎b; a◌ུ◌̡◌̡◌᷎b; a◌ུ◌̡◌̡◌᷎b; ) LATIN SMALL LETTER A, COMBINING PALATALIZED HOOK BELOW, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 1DCE 0321 0F74 0322 0062;0061 0F74 0321 0322 1DCE 0062;0061 0F74 0321 0322 1DCE 0062;0061 0F74 0321 0322 1DCE 0062;0061 0F74 0321 0322 1DCE 0062; # (a◌᷎◌̡◌ུ◌̢b; a◌ུ◌̡◌̢◌᷎b; a◌ུ◌̡◌̢◌᷎b; a◌ུ◌̡◌̢◌᷎b; a◌ུ◌̡◌̢◌᷎b; ) LATIN SMALL LETTER A, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, COMBINING RETROFLEX HOOK BELOW, LATIN SMALL LETTER B
+0061 0322 1DCE 0321 0F74 0062;0061 0F74 0322 0321 1DCE 0062;0061 0F74 0322 0321 1DCE 0062;0061 0F74 0322 0321 1DCE 0062;0061 0F74 0322 0321 1DCE 0062; # (a◌̢◌᷎◌̡◌ུb; a◌ུ◌̢◌̡◌᷎b; a◌ུ◌̢◌̡◌᷎b; a◌ུ◌̢◌̡◌᷎b; a◌ུ◌̢◌̡◌᷎b; ) LATIN SMALL LETTER A, COMBINING RETROFLEX HOOK BELOW, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0323 0062;0061 1DFA 0316 0323 059A 0062;0061 1DFA 0316 0323 059A 0062;0061 1DFA 0316 0323 059A 0062;0061 1DFA 0316 0323 059A 0062; # (a◌֚◌̖◌᷺◌̣b; a◌᷺◌̖◌̣◌֚b; a◌᷺◌̖◌̣◌֚b; a◌᷺◌̖◌̣◌֚b; a◌᷺◌̖◌̣◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOT BELOW, LATIN SMALL LETTER B
+0061 0323 059A 0316 1DFA 0062;1EA1 1DFA 0316 059A 0062;0061 1DFA 0323 0316 059A 0062;1EA1 1DFA 0316 059A 0062;0061 1DFA 0323 0316 059A 0062; # (a◌̣◌֚◌̖◌᷺b; ạ◌᷺◌̖◌֚b; a◌᷺◌̣◌̖◌֚b; ạ◌᷺◌̖◌֚b; a◌᷺◌̣◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0324 0062;0061 1DFA 0316 0324 059A 0062;0061 1DFA 0316 0324 059A 0062;0061 1DFA 0316 0324 059A 0062;0061 1DFA 0316 0324 059A 0062; # (a◌֚◌̖◌᷺◌̤b; a◌᷺◌̖◌̤◌֚b; a◌᷺◌̖◌̤◌֚b; a◌᷺◌̖◌̤◌֚b; a◌᷺◌̖◌̤◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DIAERESIS BELOW, LATIN SMALL LETTER B
+0061 0324 059A 0316 1DFA 0062;0061 1DFA 0324 0316 059A 0062;0061 1DFA 0324 0316 059A 0062;0061 1DFA 0324 0316 059A 0062;0061 1DFA 0324 0316 059A 0062; # (a◌̤◌֚◌̖◌᷺b; a◌᷺◌̤◌̖◌֚b; a◌᷺◌̤◌̖◌֚b; a◌᷺◌̤◌̖◌֚b; a◌᷺◌̤◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DIAERESIS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0325 0062;0061 1DFA 0316 0325 059A 0062;0061 1DFA 0316 0325 059A 0062;0061 1DFA 0316 0325 059A 0062;0061 1DFA 0316 0325 059A 0062; # (a◌֚◌̖◌᷺◌̥b; a◌᷺◌̖◌̥◌֚b; a◌᷺◌̖◌̥◌֚b; a◌᷺◌̖◌̥◌֚b; a◌᷺◌̖◌̥◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RING BELOW, LATIN SMALL LETTER B
+0061 0325 059A 0316 1DFA 0062;1E01 1DFA 0316 059A 0062;0061 1DFA 0325 0316 059A 0062;1E01 1DFA 0316 059A 0062;0061 1DFA 0325 0316 059A 0062; # (a◌̥◌֚◌̖◌᷺b; ḁ◌᷺◌̖◌֚b; a◌᷺◌̥◌̖◌֚b; ḁ◌᷺◌̖◌֚b; a◌᷺◌̥◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0326 0062;0061 1DFA 0316 0326 059A 0062;0061 1DFA 0316 0326 059A 0062;0061 1DFA 0316 0326 059A 0062;0061 1DFA 0316 0326 059A 0062; # (a◌֚◌̖◌᷺◌̦b; a◌᷺◌̖◌̦◌֚b; a◌᷺◌̖◌̦◌֚b; a◌᷺◌̖◌̦◌֚b; a◌᷺◌̖◌̦◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING COMMA BELOW, LATIN SMALL LETTER B
+0061 0326 059A 0316 1DFA 0062;0061 1DFA 0326 0316 059A 0062;0061 1DFA 0326 0316 059A 0062;0061 1DFA 0326 0316 059A 0062;0061 1DFA 0326 0316 059A 0062; # (a◌̦◌֚◌̖◌᷺b; a◌᷺◌̦◌̖◌֚b; a◌᷺◌̦◌̖◌֚b; a◌᷺◌̦◌̖◌֚b; a◌᷺◌̦◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING COMMA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 1DCE 0321 0F74 0327 0062;0061 0F74 0321 0327 1DCE 0062;0061 0F74 0321 0327 1DCE 0062;0061 0F74 0321 0327 1DCE 0062;0061 0F74 0321 0327 1DCE 0062; # (a◌᷎◌̡◌ུ◌̧b; a◌ུ◌̡◌̧◌᷎b; a◌ུ◌̡◌̧◌᷎b; a◌ུ◌̡◌̧◌᷎b; a◌ུ◌̡◌̧◌᷎b; ) LATIN SMALL LETTER A, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, COMBINING CEDILLA, LATIN SMALL LETTER B
+0061 0327 1DCE 0321 0F74 0062;0061 0F74 0327 0321 1DCE 0062;0061 0F74 0327 0321 1DCE 0062;0061 0F74 0327 0321 1DCE 0062;0061 0F74 0327 0321 1DCE 0062; # (a◌̧◌᷎◌̡◌ུb; a◌ུ◌̧◌̡◌᷎b; a◌ུ◌̧◌̡◌᷎b; a◌ུ◌̧◌̡◌᷎b; a◌ུ◌̧◌̡◌᷎b; ) LATIN SMALL LETTER A, COMBINING CEDILLA, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 1DCE 0321 0F74 0328 0062;0061 0F74 0321 0328 1DCE 0062;0061 0F74 0321 0328 1DCE 0062;0061 0F74 0321 0328 1DCE 0062;0061 0F74 0321 0328 1DCE 0062; # (a◌᷎◌̡◌ུ◌̨b; a◌ུ◌̡◌̨◌᷎b; a◌ུ◌̡◌̨◌᷎b; a◌ུ◌̡◌̨◌᷎b; a◌ུ◌̡◌̨◌᷎b; ) LATIN SMALL LETTER A, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, COMBINING OGONEK, LATIN SMALL LETTER B
+0061 0328 1DCE 0321 0F74 0062;0105 0F74 0321 1DCE 0062;0061 0F74 0328 0321 1DCE 0062;0105 0F74 0321 1DCE 0062;0061 0F74 0328 0321 1DCE 0062; # (a◌̨◌᷎◌̡◌ུb; ą◌ུ◌̡◌᷎b; a◌ུ◌̨◌̡◌᷎b; ą◌ུ◌̡◌᷎b; a◌ུ◌̨◌̡◌᷎b; ) LATIN SMALL LETTER A, COMBINING OGONEK, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0329 0062;0061 1DFA 0316 0329 059A 0062;0061 1DFA 0316 0329 059A 0062;0061 1DFA 0316 0329 059A 0062;0061 1DFA 0316 0329 059A 0062; # (a◌֚◌̖◌᷺◌̩b; a◌᷺◌̖◌̩◌֚b; a◌᷺◌̖◌̩◌֚b; a◌᷺◌̖◌̩◌֚b; a◌᷺◌̖◌̩◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING VERTICAL LINE BELOW, LATIN SMALL LETTER B
+0061 0329 059A 0316 1DFA 0062;0061 1DFA 0329 0316 059A 0062;0061 1DFA 0329 0316 059A 0062;0061 1DFA 0329 0316 059A 0062;0061 1DFA 0329 0316 059A 0062; # (a◌̩◌֚◌̖◌᷺b; a◌᷺◌̩◌̖◌֚b; a◌᷺◌̩◌̖◌֚b; a◌᷺◌̩◌̖◌֚b; a◌᷺◌̩◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING VERTICAL LINE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 032A 0062;0061 1DFA 0316 032A 059A 0062;0061 1DFA 0316 032A 059A 0062;0061 1DFA 0316 032A 059A 0062;0061 1DFA 0316 032A 059A 0062; # (a◌֚◌̖◌᷺◌̪b; a◌᷺◌̖◌̪◌֚b; a◌᷺◌̖◌̪◌֚b; a◌᷺◌̖◌̪◌֚b; a◌᷺◌̖◌̪◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING BRIDGE BELOW, LATIN SMALL LETTER B
+0061 032A 059A 0316 1DFA 0062;0061 1DFA 032A 0316 059A 0062;0061 1DFA 032A 0316 059A 0062;0061 1DFA 032A 0316 059A 0062;0061 1DFA 032A 0316 059A 0062; # (a◌̪◌֚◌̖◌᷺b; a◌᷺◌̪◌̖◌֚b; a◌᷺◌̪◌̖◌֚b; a◌᷺◌̪◌̖◌֚b; a◌᷺◌̪◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING BRIDGE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 032B 0062;0061 1DFA 0316 032B 059A 0062;0061 1DFA 0316 032B 059A 0062;0061 1DFA 0316 032B 059A 0062;0061 1DFA 0316 032B 059A 0062; # (a◌֚◌̖◌᷺◌̫b; a◌᷺◌̖◌̫◌֚b; a◌᷺◌̖◌̫◌֚b; a◌᷺◌̖◌̫◌֚b; a◌᷺◌̖◌̫◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING INVERTED DOUBLE ARCH BELOW, LATIN SMALL LETTER B
+0061 032B 059A 0316 1DFA 0062;0061 1DFA 032B 0316 059A 0062;0061 1DFA 032B 0316 059A 0062;0061 1DFA 032B 0316 059A 0062;0061 1DFA 032B 0316 059A 0062; # (a◌̫◌֚◌̖◌᷺b; a◌᷺◌̫◌̖◌֚b; a◌᷺◌̫◌̖◌֚b; a◌᷺◌̫◌̖◌֚b; a◌᷺◌̫◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING INVERTED DOUBLE ARCH BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 032C 0062;0061 1DFA 0316 032C 059A 0062;0061 1DFA 0316 032C 059A 0062;0061 1DFA 0316 032C 059A 0062;0061 1DFA 0316 032C 059A 0062; # (a◌֚◌̖◌᷺◌̬b; a◌᷺◌̖◌̬◌֚b; a◌᷺◌̖◌̬◌֚b; a◌᷺◌̖◌̬◌֚b; a◌᷺◌̖◌̬◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING CARON BELOW, LATIN SMALL LETTER B
+0061 032C 059A 0316 1DFA 0062;0061 1DFA 032C 0316 059A 0062;0061 1DFA 032C 0316 059A 0062;0061 1DFA 032C 0316 059A 0062;0061 1DFA 032C 0316 059A 0062; # (a◌̬◌֚◌̖◌᷺b; a◌᷺◌̬◌̖◌֚b; a◌᷺◌̬◌̖◌֚b; a◌᷺◌̬◌̖◌֚b; a◌᷺◌̬◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING CARON BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 032D 0062;0061 1DFA 0316 032D 059A 0062;0061 1DFA 0316 032D 059A 0062;0061 1DFA 0316 032D 059A 0062;0061 1DFA 0316 032D 059A 0062; # (a◌֚◌̖◌᷺◌̭b; a◌᷺◌̖◌̭◌֚b; a◌᷺◌̖◌̭◌֚b; a◌᷺◌̖◌̭◌֚b; a◌᷺◌̖◌̭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING CIRCUMFLEX ACCENT BELOW, LATIN SMALL LETTER B
+0061 032D 059A 0316 1DFA 0062;0061 1DFA 032D 0316 059A 0062;0061 1DFA 032D 0316 059A 0062;0061 1DFA 032D 0316 059A 0062;0061 1DFA 032D 0316 059A 0062; # (a◌̭◌֚◌̖◌᷺b; a◌᷺◌̭◌̖◌֚b; a◌᷺◌̭◌̖◌֚b; a◌᷺◌̭◌̖◌֚b; a◌᷺◌̭◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING CIRCUMFLEX ACCENT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 032E 0062;0061 1DFA 0316 032E 059A 0062;0061 1DFA 0316 032E 059A 0062;0061 1DFA 0316 032E 059A 0062;0061 1DFA 0316 032E 059A 0062; # (a◌֚◌̖◌᷺◌̮b; a◌᷺◌̖◌̮◌֚b; a◌᷺◌̖◌̮◌֚b; a◌᷺◌̖◌̮◌֚b; a◌᷺◌̖◌̮◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING BREVE BELOW, LATIN SMALL LETTER B
+0061 032E 059A 0316 1DFA 0062;0061 1DFA 032E 0316 059A 0062;0061 1DFA 032E 0316 059A 0062;0061 1DFA 032E 0316 059A 0062;0061 1DFA 032E 0316 059A 0062; # (a◌̮◌֚◌̖◌᷺b; a◌᷺◌̮◌̖◌֚b; a◌᷺◌̮◌̖◌֚b; a◌᷺◌̮◌̖◌֚b; a◌᷺◌̮◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING BREVE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 032F 0062;0061 1DFA 0316 032F 059A 0062;0061 1DFA 0316 032F 059A 0062;0061 1DFA 0316 032F 059A 0062;0061 1DFA 0316 032F 059A 0062; # (a◌֚◌̖◌᷺◌̯b; a◌᷺◌̖◌̯◌֚b; a◌᷺◌̖◌̯◌֚b; a◌᷺◌̖◌̯◌֚b; a◌᷺◌̖◌̯◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING INVERTED BREVE BELOW, LATIN SMALL LETTER B
+0061 032F 059A 0316 1DFA 0062;0061 1DFA 032F 0316 059A 0062;0061 1DFA 032F 0316 059A 0062;0061 1DFA 032F 0316 059A 0062;0061 1DFA 032F 0316 059A 0062; # (a◌̯◌֚◌̖◌᷺b; a◌᷺◌̯◌̖◌֚b; a◌᷺◌̯◌̖◌֚b; a◌᷺◌̯◌̖◌֚b; a◌᷺◌̯◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING INVERTED BREVE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0330 0062;0061 1DFA 0316 0330 059A 0062;0061 1DFA 0316 0330 059A 0062;0061 1DFA 0316 0330 059A 0062;0061 1DFA 0316 0330 059A 0062; # (a◌֚◌̖◌᷺◌̰b; a◌᷺◌̖◌̰◌֚b; a◌᷺◌̖◌̰◌֚b; a◌᷺◌̖◌̰◌֚b; a◌᷺◌̖◌̰◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING TILDE BELOW, LATIN SMALL LETTER B
+0061 0330 059A 0316 1DFA 0062;0061 1DFA 0330 0316 059A 0062;0061 1DFA 0330 0316 059A 0062;0061 1DFA 0330 0316 059A 0062;0061 1DFA 0330 0316 059A 0062; # (a◌̰◌֚◌̖◌᷺b; a◌᷺◌̰◌̖◌֚b; a◌᷺◌̰◌̖◌֚b; a◌᷺◌̰◌̖◌֚b; a◌᷺◌̰◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING TILDE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0331 0062;0061 1DFA 0316 0331 059A 0062;0061 1DFA 0316 0331 059A 0062;0061 1DFA 0316 0331 059A 0062;0061 1DFA 0316 0331 059A 0062; # (a◌֚◌̖◌᷺◌̱b; a◌᷺◌̖◌̱◌֚b; a◌᷺◌̖◌̱◌֚b; a◌᷺◌̖◌̱◌֚b; a◌᷺◌̖◌̱◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING MACRON BELOW, LATIN SMALL LETTER B
+0061 0331 059A 0316 1DFA 0062;0061 1DFA 0331 0316 059A 0062;0061 1DFA 0331 0316 059A 0062;0061 1DFA 0331 0316 059A 0062;0061 1DFA 0331 0316 059A 0062; # (a◌̱◌֚◌̖◌᷺b; a◌᷺◌̱◌̖◌֚b; a◌᷺◌̱◌̖◌֚b; a◌᷺◌̱◌̖◌֚b; a◌᷺◌̱◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING MACRON BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0332 0062;0061 1DFA 0316 0332 059A 0062;0061 1DFA 0316 0332 059A 0062;0061 1DFA 0316 0332 059A 0062;0061 1DFA 0316 0332 059A 0062; # (a◌֚◌̖◌᷺◌̲b; a◌᷺◌̖◌̲◌֚b; a◌᷺◌̖◌̲◌֚b; a◌᷺◌̖◌̲◌֚b; a◌᷺◌̖◌̲◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LOW LINE, LATIN SMALL LETTER B
+0061 0332 059A 0316 1DFA 0062;0061 1DFA 0332 0316 059A 0062;0061 1DFA 0332 0316 059A 0062;0061 1DFA 0332 0316 059A 0062;0061 1DFA 0332 0316 059A 0062; # (a◌̲◌֚◌̖◌᷺b; a◌᷺◌̲◌̖◌֚b; a◌᷺◌̲◌̖◌֚b; a◌᷺◌̲◌̖◌֚b; a◌᷺◌̲◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LOW LINE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0333 0062;0061 1DFA 0316 0333 059A 0062;0061 1DFA 0316 0333 059A 0062;0061 1DFA 0316 0333 059A 0062;0061 1DFA 0316 0333 059A 0062; # (a◌֚◌̖◌᷺◌̳b; a◌᷺◌̖◌̳◌֚b; a◌᷺◌̖◌̳◌֚b; a◌᷺◌̖◌̳◌֚b; a◌᷺◌̖◌̳◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOUBLE LOW LINE, LATIN SMALL LETTER B
+0061 0333 059A 0316 1DFA 0062;0061 1DFA 0333 0316 059A 0062;0061 1DFA 0333 0316 059A 0062;0061 1DFA 0333 0316 059A 0062;0061 1DFA 0333 0316 059A 0062; # (a◌̳◌֚◌̖◌᷺b; a◌᷺◌̳◌̖◌֚b; a◌᷺◌̳◌̖◌֚b; a◌᷺◌̳◌̖◌֚b; a◌᷺◌̳◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOUBLE LOW LINE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 16FF0 0334 0334 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062; # (a𖿰◌̴◌̴b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0334 16FF0 0334 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062; # (a◌̴𖿰◌̴b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING TILDE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 0335 0062;0061 0334 0335 16FF0 0062;0061 0334 0335 16FF0 0062;0061 0334 0335 16FF0 0062;0061 0334 0335 16FF0 0062; # (a𖿰◌̴◌̵b; a◌̴◌̵𖿰b; a◌̴◌̵𖿰b; a◌̴◌̵𖿰b; a◌̴◌̵𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER B
+0061 0335 16FF0 0334 0062;0061 0335 0334 16FF0 0062;0061 0335 0334 16FF0 0062;0061 0335 0334 16FF0 0062;0061 0335 0334 16FF0 0062; # (a◌̵𖿰◌̴b; a◌̵◌̴𖿰b; a◌̵◌̴𖿰b; a◌̵◌̴𖿰b; a◌̵◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING SHORT STROKE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 0336 0062;0061 0334 0336 16FF0 0062;0061 0334 0336 16FF0 0062;0061 0334 0336 16FF0 0062;0061 0334 0336 16FF0 0062; # (a𖿰◌̴◌̶b; a◌̴◌̶𖿰b; a◌̴◌̶𖿰b; a◌̴◌̶𖿰b; a◌̴◌̶𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG STROKE OVERLAY, LATIN SMALL LETTER B
+0061 0336 16FF0 0334 0062;0061 0336 0334 16FF0 0062;0061 0336 0334 16FF0 0062;0061 0336 0334 16FF0 0062;0061 0336 0334 16FF0 0062; # (a◌̶𖿰◌̴b; a◌̶◌̴𖿰b; a◌̶◌̴𖿰b; a◌̶◌̴𖿰b; a◌̶◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG STROKE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 0337 0062;0061 0334 0337 16FF0 0062;0061 0334 0337 16FF0 0062;0061 0334 0337 16FF0 0062;0061 0334 0337 16FF0 0062; # (a𖿰◌̴◌̷b; a◌̴◌̷𖿰b; a◌̴◌̷𖿰b; a◌̴◌̷𖿰b; a◌̴◌̷𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING SHORT SOLIDUS OVERLAY, LATIN SMALL LETTER B
+0061 0337 16FF0 0334 0062;0061 0337 0334 16FF0 0062;0061 0337 0334 16FF0 0062;0061 0337 0334 16FF0 0062;0061 0337 0334 16FF0 0062; # (a◌̷𖿰◌̴b; a◌̷◌̴𖿰b; a◌̷◌̴𖿰b; a◌̷◌̴𖿰b; a◌̷◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING SHORT SOLIDUS OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 0338 0062;0061 0334 0338 16FF0 0062;0061 0334 0338 16FF0 0062;0061 0334 0338 16FF0 0062;0061 0334 0338 16FF0 0062; # (a𖿰◌̴◌̸b; a◌̴◌̸𖿰b; a◌̴◌̸𖿰b; a◌̴◌̸𖿰b; a◌̴◌̸𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG SOLIDUS OVERLAY, LATIN SMALL LETTER B
+0061 0338 16FF0 0334 0062;0061 0338 0334 16FF0 0062;0061 0338 0334 16FF0 0062;0061 0338 0334 16FF0 0062;0061 0338 0334 16FF0 0062; # (a◌̸𖿰◌̴b; a◌̸◌̴𖿰b; a◌̸◌̴𖿰b; a◌̸◌̴𖿰b; a◌̸◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG SOLIDUS OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0339 0062;0061 1DFA 0316 0339 059A 0062;0061 1DFA 0316 0339 059A 0062;0061 1DFA 0316 0339 059A 0062;0061 1DFA 0316 0339 059A 0062; # (a◌֚◌̖◌᷺◌̹b; a◌᷺◌̖◌̹◌֚b; a◌᷺◌̖◌̹◌֚b; a◌᷺◌̖◌̹◌֚b; a◌᷺◌̖◌̹◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT HALF RING BELOW, LATIN SMALL LETTER B
+0061 0339 059A 0316 1DFA 0062;0061 1DFA 0339 0316 059A 0062;0061 1DFA 0339 0316 059A 0062;0061 1DFA 0339 0316 059A 0062;0061 1DFA 0339 0316 059A 0062; # (a◌̹◌֚◌̖◌᷺b; a◌᷺◌̹◌̖◌֚b; a◌᷺◌̹◌̖◌֚b; a◌᷺◌̹◌̖◌֚b; a◌᷺◌̹◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT HALF RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 033A 0062;0061 1DFA 0316 033A 059A 0062;0061 1DFA 0316 033A 059A 0062;0061 1DFA 0316 033A 059A 0062;0061 1DFA 0316 033A 059A 0062; # (a◌֚◌̖◌᷺◌̺b; a◌᷺◌̖◌̺◌֚b; a◌᷺◌̖◌̺◌֚b; a◌᷺◌̖◌̺◌֚b; a◌᷺◌̖◌̺◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING INVERTED BRIDGE BELOW, LATIN SMALL LETTER B
+0061 033A 059A 0316 1DFA 0062;0061 1DFA 033A 0316 059A 0062;0061 1DFA 033A 0316 059A 0062;0061 1DFA 033A 0316 059A 0062;0061 1DFA 033A 0316 059A 0062; # (a◌̺◌֚◌̖◌᷺b; a◌᷺◌̺◌̖◌֚b; a◌᷺◌̺◌̖◌֚b; a◌᷺◌̺◌̖◌֚b; a◌᷺◌̺◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING INVERTED BRIDGE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 033B 0062;0061 1DFA 0316 033B 059A 0062;0061 1DFA 0316 033B 059A 0062;0061 1DFA 0316 033B 059A 0062;0061 1DFA 0316 033B 059A 0062; # (a◌֚◌̖◌᷺◌̻b; a◌᷺◌̖◌̻◌֚b; a◌᷺◌̖◌̻◌֚b; a◌᷺◌̖◌̻◌֚b; a◌᷺◌̖◌̻◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING SQUARE BELOW, LATIN SMALL LETTER B
+0061 033B 059A 0316 1DFA 0062;0061 1DFA 033B 0316 059A 0062;0061 1DFA 033B 0316 059A 0062;0061 1DFA 033B 0316 059A 0062;0061 1DFA 033B 0316 059A 0062; # (a◌̻◌֚◌̖◌᷺b; a◌᷺◌̻◌̖◌֚b; a◌᷺◌̻◌̖◌֚b; a◌᷺◌̻◌̖◌֚b; a◌᷺◌̻◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING SQUARE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 033C 0062;0061 1DFA 0316 033C 059A 0062;0061 1DFA 0316 033C 059A 0062;0061 1DFA 0316 033C 059A 0062;0061 1DFA 0316 033C 059A 0062; # (a◌֚◌̖◌᷺◌̼b; a◌᷺◌̖◌̼◌֚b; a◌᷺◌̖◌̼◌֚b; a◌᷺◌̖◌̼◌֚b; a◌᷺◌̖◌̼◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING SEAGULL BELOW, LATIN SMALL LETTER B
+0061 033C 059A 0316 1DFA 0062;0061 1DFA 033C 0316 059A 0062;0061 1DFA 033C 0316 059A 0062;0061 1DFA 033C 0316 059A 0062;0061 1DFA 033C 0316 059A 0062; # (a◌̼◌֚◌̖◌᷺b; a◌᷺◌̼◌̖◌֚b; a◌᷺◌̼◌̖◌֚b; a◌᷺◌̼◌̖◌֚b; a◌᷺◌̼◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING SEAGULL BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 033D 0062;00E0 05AE 033D 0315 0062;0061 05AE 0300 033D 0315 0062;00E0 05AE 033D 0315 0062;0061 05AE 0300 033D 0315 0062; # (a◌̕◌̀◌֮◌̽b; à◌֮◌̽◌̕b; a◌֮◌̀◌̽◌̕b; à◌֮◌̽◌̕b; a◌֮◌̀◌̽◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING X ABOVE, LATIN SMALL LETTER B
+0061 033D 0315 0300 05AE 0062;0061 05AE 033D 0300 0315 0062;0061 05AE 033D 0300 0315 0062;0061 05AE 033D 0300 0315 0062;0061 05AE 033D 0300 0315 0062; # (a◌̽◌̕◌̀◌֮b; a◌֮◌̽◌̀◌̕b; a◌֮◌̽◌̀◌̕b; a◌֮◌̽◌̀◌̕b; a◌֮◌̽◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING X ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 033E 0062;00E0 05AE 033E 0315 0062;0061 05AE 0300 033E 0315 0062;00E0 05AE 033E 0315 0062;0061 05AE 0300 033E 0315 0062; # (a◌̕◌̀◌֮◌̾b; à◌֮◌̾◌̕b; a◌֮◌̀◌̾◌̕b; à◌֮◌̾◌̕b; a◌֮◌̀◌̾◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING VERTICAL TILDE, LATIN SMALL LETTER B
+0061 033E 0315 0300 05AE 0062;0061 05AE 033E 0300 0315 0062;0061 05AE 033E 0300 0315 0062;0061 05AE 033E 0300 0315 0062;0061 05AE 033E 0300 0315 0062; # (a◌̾◌̕◌̀◌֮b; a◌֮◌̾◌̀◌̕b; a◌֮◌̾◌̀◌̕b; a◌֮◌̾◌̀◌̕b; a◌֮◌̾◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING VERTICAL TILDE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 033F 0062;00E0 05AE 033F 0315 0062;0061 05AE 0300 033F 0315 0062;00E0 05AE 033F 0315 0062;0061 05AE 0300 033F 0315 0062; # (a◌̕◌̀◌֮◌̿b; à◌֮◌̿◌̕b; a◌֮◌̀◌̿◌̕b; à◌֮◌̿◌̕b; a◌֮◌̀◌̿◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE OVERLINE, LATIN SMALL LETTER B
+0061 033F 0315 0300 05AE 0062;0061 05AE 033F 0300 0315 0062;0061 05AE 033F 0300 0315 0062;0061 05AE 033F 0300 0315 0062;0061 05AE 033F 0300 0315 0062; # (a◌̿◌̕◌̀◌֮b; a◌֮◌̿◌̀◌̕b; a◌֮◌̿◌̀◌̕b; a◌֮◌̿◌̀◌̕b; a◌֮◌̿◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE OVERLINE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0340 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062; # (a◌̕◌̀◌֮◌̀b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRAVE TONE MARK, LATIN SMALL LETTER B
+0061 0340 0315 0300 05AE 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062; # (a◌̀◌̕◌̀◌֮b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; à◌֮◌̀◌̕b; a◌֮◌̀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRAVE TONE MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0341 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062; # (a◌̕◌̀◌֮◌́b; à◌֮◌́◌̕b; a◌֮◌̀◌́◌̕b; à◌֮◌́◌̕b; a◌֮◌̀◌́◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ACUTE TONE MARK, LATIN SMALL LETTER B
+0061 0341 0315 0300 05AE 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062; # (a◌́◌̕◌̀◌֮b; á◌֮◌̀◌̕b; a◌֮◌́◌̀◌̕b; á◌֮◌̀◌̕b; a◌֮◌́◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ACUTE TONE MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0342 0062;00E0 05AE 0342 0315 0062;0061 05AE 0300 0342 0315 0062;00E0 05AE 0342 0315 0062;0061 05AE 0300 0342 0315 0062; # (a◌̕◌̀◌֮◌͂b; à◌֮◌͂◌̕b; a◌֮◌̀◌͂◌̕b; à◌֮◌͂◌̕b; a◌֮◌̀◌͂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK PERISPOMENI, LATIN SMALL LETTER B
+0061 0342 0315 0300 05AE 0062;0061 05AE 0342 0300 0315 0062;0061 05AE 0342 0300 0315 0062;0061 05AE 0342 0300 0315 0062;0061 05AE 0342 0300 0315 0062; # (a◌͂◌̕◌̀◌֮b; a◌֮◌͂◌̀◌̕b; a◌֮◌͂◌̀◌̕b; a◌֮◌͂◌̀◌̕b; a◌֮◌͂◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK PERISPOMENI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0343 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062; # (a◌̕◌̀◌֮◌̓b; à◌֮◌̓◌̕b; a◌֮◌̀◌̓◌̕b; à◌֮◌̓◌̕b; a◌֮◌̀◌̓◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK KORONIS, LATIN SMALL LETTER B
+0061 0343 0315 0300 05AE 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062; # (a◌̓◌̕◌̀◌֮b; a◌֮◌̓◌̀◌̕b; a◌֮◌̓◌̀◌̕b; a◌֮◌̓◌̀◌̕b; a◌֮◌̓◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK KORONIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0344 0062;00E0 05AE 0308 0301 0315 0062;0061 05AE 0300 0308 0301 0315 0062;00E0 05AE 0308 0301 0315 0062;0061 05AE 0300 0308 0301 0315 0062; # (a◌̕◌̀◌֮◌̈́b; à◌֮◌̈◌́◌̕b; a◌֮◌̀◌̈◌́◌̕b; à◌֮◌̈◌́◌̕b; a◌֮◌̀◌̈◌́◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK DIALYTIKA TONOS, LATIN SMALL LETTER B
+0061 0344 0315 0300 05AE 0062;00E4 05AE 0301 0300 0315 0062;0061 05AE 0308 0301 0300 0315 0062;00E4 05AE 0301 0300 0315 0062;0061 05AE 0308 0301 0300 0315 0062; # (a◌̈́◌̕◌̀◌֮b; ä◌֮◌́◌̀◌̕b; a◌֮◌̈◌́◌̀◌̕b; ä◌֮◌́◌̀◌̕b; a◌֮◌̈◌́◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK DIALYTIKA TONOS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0345 035D 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062; # (a◌ͅ◌͝◌ͅb; a◌͝◌ͅ◌ͅb; a◌͝◌ͅ◌ͅb; a◌͝◌ͅ◌ͅb; a◌͝◌ͅ◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING GREEK YPOGEGRAMMENI, LATIN SMALL LETTER B
+0061 0345 0345 035D 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062; # (a◌ͅ◌ͅ◌͝b; a◌͝◌ͅ◌ͅb; a◌͝◌ͅ◌ͅb; a◌͝◌ͅ◌ͅb; a◌͝◌ͅ◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0346 0062;00E0 05AE 0346 0315 0062;0061 05AE 0300 0346 0315 0062;00E0 05AE 0346 0315 0062;0061 05AE 0300 0346 0315 0062; # (a◌̕◌̀◌֮◌͆b; à◌֮◌͆◌̕b; a◌֮◌̀◌͆◌̕b; à◌֮◌͆◌̕b; a◌֮◌̀◌͆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING BRIDGE ABOVE, LATIN SMALL LETTER B
+0061 0346 0315 0300 05AE 0062;0061 05AE 0346 0300 0315 0062;0061 05AE 0346 0300 0315 0062;0061 05AE 0346 0300 0315 0062;0061 05AE 0346 0300 0315 0062; # (a◌͆◌̕◌̀◌֮b; a◌֮◌͆◌̀◌̕b; a◌֮◌͆◌̀◌̕b; a◌֮◌͆◌̀◌̕b; a◌֮◌͆◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING BRIDGE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0347 0062;0061 1DFA 0316 0347 059A 0062;0061 1DFA 0316 0347 059A 0062;0061 1DFA 0316 0347 059A 0062;0061 1DFA 0316 0347 059A 0062; # (a◌֚◌̖◌᷺◌͇b; a◌᷺◌̖◌͇◌֚b; a◌᷺◌̖◌͇◌֚b; a◌᷺◌̖◌͇◌֚b; a◌᷺◌̖◌͇◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING EQUALS SIGN BELOW, LATIN SMALL LETTER B
+0061 0347 059A 0316 1DFA 0062;0061 1DFA 0347 0316 059A 0062;0061 1DFA 0347 0316 059A 0062;0061 1DFA 0347 0316 059A 0062;0061 1DFA 0347 0316 059A 0062; # (a◌͇◌֚◌̖◌᷺b; a◌᷺◌͇◌̖◌֚b; a◌᷺◌͇◌̖◌֚b; a◌᷺◌͇◌̖◌֚b; a◌᷺◌͇◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING EQUALS SIGN BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0348 0062;0061 1DFA 0316 0348 059A 0062;0061 1DFA 0316 0348 059A 0062;0061 1DFA 0316 0348 059A 0062;0061 1DFA 0316 0348 059A 0062; # (a◌֚◌̖◌᷺◌͈b; a◌᷺◌̖◌͈◌֚b; a◌᷺◌̖◌͈◌֚b; a◌᷺◌̖◌͈◌֚b; a◌᷺◌̖◌͈◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOUBLE VERTICAL LINE BELOW, LATIN SMALL LETTER B
+0061 0348 059A 0316 1DFA 0062;0061 1DFA 0348 0316 059A 0062;0061 1DFA 0348 0316 059A 0062;0061 1DFA 0348 0316 059A 0062;0061 1DFA 0348 0316 059A 0062; # (a◌͈◌֚◌̖◌᷺b; a◌᷺◌͈◌̖◌֚b; a◌᷺◌͈◌̖◌֚b; a◌᷺◌͈◌̖◌֚b; a◌᷺◌͈◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOUBLE VERTICAL LINE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0349 0062;0061 1DFA 0316 0349 059A 0062;0061 1DFA 0316 0349 059A 0062;0061 1DFA 0316 0349 059A 0062;0061 1DFA 0316 0349 059A 0062; # (a◌֚◌̖◌᷺◌͉b; a◌᷺◌̖◌͉◌֚b; a◌᷺◌̖◌͉◌֚b; a◌᷺◌̖◌͉◌֚b; a◌᷺◌̖◌͉◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT ANGLE BELOW, LATIN SMALL LETTER B
+0061 0349 059A 0316 1DFA 0062;0061 1DFA 0349 0316 059A 0062;0061 1DFA 0349 0316 059A 0062;0061 1DFA 0349 0316 059A 0062;0061 1DFA 0349 0316 059A 0062; # (a◌͉◌֚◌̖◌᷺b; a◌᷺◌͉◌̖◌֚b; a◌᷺◌͉◌̖◌֚b; a◌᷺◌͉◌̖◌֚b; a◌᷺◌͉◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT ANGLE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 034A 0062;00E0 05AE 034A 0315 0062;0061 05AE 0300 034A 0315 0062;00E0 05AE 034A 0315 0062;0061 05AE 0300 034A 0315 0062; # (a◌̕◌̀◌֮◌͊b; à◌֮◌͊◌̕b; a◌֮◌̀◌͊◌̕b; à◌֮◌͊◌̕b; a◌֮◌̀◌͊◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING NOT TILDE ABOVE, LATIN SMALL LETTER B
+0061 034A 0315 0300 05AE 0062;0061 05AE 034A 0300 0315 0062;0061 05AE 034A 0300 0315 0062;0061 05AE 034A 0300 0315 0062;0061 05AE 034A 0300 0315 0062; # (a◌͊◌̕◌̀◌֮b; a◌֮◌͊◌̀◌̕b; a◌֮◌͊◌̀◌̕b; a◌֮◌͊◌̀◌̕b; a◌֮◌͊◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING NOT TILDE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 034B 0062;00E0 05AE 034B 0315 0062;0061 05AE 0300 034B 0315 0062;00E0 05AE 034B 0315 0062;0061 05AE 0300 034B 0315 0062; # (a◌̕◌̀◌֮◌͋b; à◌֮◌͋◌̕b; a◌֮◌̀◌͋◌̕b; à◌֮◌͋◌̕b; a◌֮◌̀◌͋◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING HOMOTHETIC ABOVE, LATIN SMALL LETTER B
+0061 034B 0315 0300 05AE 0062;0061 05AE 034B 0300 0315 0062;0061 05AE 034B 0300 0315 0062;0061 05AE 034B 0300 0315 0062;0061 05AE 034B 0300 0315 0062; # (a◌͋◌̕◌̀◌֮b; a◌֮◌͋◌̀◌̕b; a◌֮◌͋◌̀◌̕b; a◌֮◌͋◌̀◌̕b; a◌֮◌͋◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING HOMOTHETIC ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 034C 0062;00E0 05AE 034C 0315 0062;0061 05AE 0300 034C 0315 0062;00E0 05AE 034C 0315 0062;0061 05AE 0300 034C 0315 0062; # (a◌̕◌̀◌֮◌͌b; à◌֮◌͌◌̕b; a◌֮◌̀◌͌◌̕b; à◌֮◌͌◌̕b; a◌֮◌̀◌͌◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ALMOST EQUAL TO ABOVE, LATIN SMALL LETTER B
+0061 034C 0315 0300 05AE 0062;0061 05AE 034C 0300 0315 0062;0061 05AE 034C 0300 0315 0062;0061 05AE 034C 0300 0315 0062;0061 05AE 034C 0300 0315 0062; # (a◌͌◌̕◌̀◌֮b; a◌֮◌͌◌̀◌̕b; a◌֮◌͌◌̀◌̕b; a◌֮◌͌◌̀◌̕b; a◌֮◌͌◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ALMOST EQUAL TO ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 034D 0062;0061 1DFA 0316 034D 059A 0062;0061 1DFA 0316 034D 059A 0062;0061 1DFA 0316 034D 059A 0062;0061 1DFA 0316 034D 059A 0062; # (a◌֚◌̖◌᷺◌͍b; a◌᷺◌̖◌͍◌֚b; a◌᷺◌̖◌͍◌֚b; a◌᷺◌̖◌͍◌֚b; a◌᷺◌̖◌͍◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT RIGHT ARROW BELOW, LATIN SMALL LETTER B
+0061 034D 059A 0316 1DFA 0062;0061 1DFA 034D 0316 059A 0062;0061 1DFA 034D 0316 059A 0062;0061 1DFA 034D 0316 059A 0062;0061 1DFA 034D 0316 059A 0062; # (a◌͍◌֚◌̖◌᷺b; a◌᷺◌͍◌̖◌֚b; a◌᷺◌͍◌̖◌֚b; a◌᷺◌͍◌̖◌֚b; a◌᷺◌͍◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT RIGHT ARROW BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 034E 0062;0061 1DFA 0316 034E 059A 0062;0061 1DFA 0316 034E 059A 0062;0061 1DFA 0316 034E 059A 0062;0061 1DFA 0316 034E 059A 0062; # (a◌֚◌̖◌᷺◌͎b; a◌᷺◌̖◌͎◌֚b; a◌᷺◌̖◌͎◌֚b; a◌᷺◌̖◌͎◌֚b; a◌᷺◌̖◌͎◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING UPWARDS ARROW BELOW, LATIN SMALL LETTER B
+0061 034E 059A 0316 1DFA 0062;0061 1DFA 034E 0316 059A 0062;0061 1DFA 034E 0316 059A 0062;0061 1DFA 034E 0316 059A 0062;0061 1DFA 034E 0316 059A 0062; # (a◌͎◌֚◌̖◌᷺b; a◌᷺◌͎◌̖◌֚b; a◌᷺◌͎◌̖◌֚b; a◌᷺◌͎◌̖◌֚b; a◌᷺◌͎◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING UPWARDS ARROW BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0350 0062;00E0 05AE 0350 0315 0062;0061 05AE 0300 0350 0315 0062;00E0 05AE 0350 0315 0062;0061 05AE 0300 0350 0315 0062; # (a◌̕◌̀◌֮◌͐b; à◌֮◌͐◌̕b; a◌֮◌̀◌͐◌̕b; à◌֮◌͐◌̕b; a◌֮◌̀◌͐◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING RIGHT ARROWHEAD ABOVE, LATIN SMALL LETTER B
+0061 0350 0315 0300 05AE 0062;0061 05AE 0350 0300 0315 0062;0061 05AE 0350 0300 0315 0062;0061 05AE 0350 0300 0315 0062;0061 05AE 0350 0300 0315 0062; # (a◌͐◌̕◌̀◌֮b; a◌֮◌͐◌̀◌̕b; a◌֮◌͐◌̀◌̕b; a◌֮◌͐◌̀◌̕b; a◌֮◌͐◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING RIGHT ARROWHEAD ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0351 0062;00E0 05AE 0351 0315 0062;0061 05AE 0300 0351 0315 0062;00E0 05AE 0351 0315 0062;0061 05AE 0300 0351 0315 0062; # (a◌̕◌̀◌֮◌͑b; à◌֮◌͑◌̕b; a◌֮◌̀◌͑◌̕b; à◌֮◌͑◌̕b; a◌֮◌̀◌͑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LEFT HALF RING ABOVE, LATIN SMALL LETTER B
+0061 0351 0315 0300 05AE 0062;0061 05AE 0351 0300 0315 0062;0061 05AE 0351 0300 0315 0062;0061 05AE 0351 0300 0315 0062;0061 05AE 0351 0300 0315 0062; # (a◌͑◌̕◌̀◌֮b; a◌֮◌͑◌̀◌̕b; a◌֮◌͑◌̀◌̕b; a◌֮◌͑◌̀◌̕b; a◌֮◌͑◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LEFT HALF RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0352 0062;00E0 05AE 0352 0315 0062;0061 05AE 0300 0352 0315 0062;00E0 05AE 0352 0315 0062;0061 05AE 0300 0352 0315 0062; # (a◌̕◌̀◌֮◌͒b; à◌֮◌͒◌̕b; a◌֮◌̀◌͒◌̕b; à◌֮◌͒◌̕b; a◌֮◌̀◌͒◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING FERMATA, LATIN SMALL LETTER B
+0061 0352 0315 0300 05AE 0062;0061 05AE 0352 0300 0315 0062;0061 05AE 0352 0300 0315 0062;0061 05AE 0352 0300 0315 0062;0061 05AE 0352 0300 0315 0062; # (a◌͒◌̕◌̀◌֮b; a◌֮◌͒◌̀◌̕b; a◌֮◌͒◌̀◌̕b; a◌֮◌͒◌̀◌̕b; a◌֮◌͒◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING FERMATA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0353 0062;0061 1DFA 0316 0353 059A 0062;0061 1DFA 0316 0353 059A 0062;0061 1DFA 0316 0353 059A 0062;0061 1DFA 0316 0353 059A 0062; # (a◌֚◌̖◌᷺◌͓b; a◌᷺◌̖◌͓◌֚b; a◌᷺◌̖◌͓◌֚b; a◌᷺◌̖◌͓◌֚b; a◌᷺◌̖◌͓◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING X BELOW, LATIN SMALL LETTER B
+0061 0353 059A 0316 1DFA 0062;0061 1DFA 0353 0316 059A 0062;0061 1DFA 0353 0316 059A 0062;0061 1DFA 0353 0316 059A 0062;0061 1DFA 0353 0316 059A 0062; # (a◌͓◌֚◌̖◌᷺b; a◌᷺◌͓◌̖◌֚b; a◌᷺◌͓◌̖◌֚b; a◌᷺◌͓◌̖◌֚b; a◌᷺◌͓◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING X BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0354 0062;0061 1DFA 0316 0354 059A 0062;0061 1DFA 0316 0354 059A 0062;0061 1DFA 0316 0354 059A 0062;0061 1DFA 0316 0354 059A 0062; # (a◌֚◌̖◌᷺◌͔b; a◌᷺◌̖◌͔◌֚b; a◌᷺◌̖◌͔◌֚b; a◌᷺◌̖◌͔◌֚b; a◌᷺◌̖◌͔◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT ARROWHEAD BELOW, LATIN SMALL LETTER B
+0061 0354 059A 0316 1DFA 0062;0061 1DFA 0354 0316 059A 0062;0061 1DFA 0354 0316 059A 0062;0061 1DFA 0354 0316 059A 0062;0061 1DFA 0354 0316 059A 0062; # (a◌͔◌֚◌̖◌᷺b; a◌᷺◌͔◌̖◌֚b; a◌᷺◌͔◌̖◌֚b; a◌᷺◌͔◌̖◌֚b; a◌᷺◌͔◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT ARROWHEAD BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0355 0062;0061 1DFA 0316 0355 059A 0062;0061 1DFA 0316 0355 059A 0062;0061 1DFA 0316 0355 059A 0062;0061 1DFA 0316 0355 059A 0062; # (a◌֚◌̖◌᷺◌͕b; a◌᷺◌̖◌͕◌֚b; a◌᷺◌̖◌͕◌֚b; a◌᷺◌̖◌͕◌֚b; a◌᷺◌̖◌͕◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT ARROWHEAD BELOW, LATIN SMALL LETTER B
+0061 0355 059A 0316 1DFA 0062;0061 1DFA 0355 0316 059A 0062;0061 1DFA 0355 0316 059A 0062;0061 1DFA 0355 0316 059A 0062;0061 1DFA 0355 0316 059A 0062; # (a◌͕◌֚◌̖◌᷺b; a◌᷺◌͕◌̖◌֚b; a◌᷺◌͕◌̖◌֚b; a◌᷺◌͕◌̖◌֚b; a◌᷺◌͕◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT ARROWHEAD BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0356 0062;0061 1DFA 0316 0356 059A 0062;0061 1DFA 0316 0356 059A 0062;0061 1DFA 0316 0356 059A 0062;0061 1DFA 0316 0356 059A 0062; # (a◌֚◌̖◌᷺◌͖b; a◌᷺◌̖◌͖◌֚b; a◌᷺◌̖◌͖◌֚b; a◌᷺◌̖◌͖◌֚b; a◌᷺◌̖◌͖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW, LATIN SMALL LETTER B
+0061 0356 059A 0316 1DFA 0062;0061 1DFA 0356 0316 059A 0062;0061 1DFA 0356 0316 059A 0062;0061 1DFA 0356 0316 059A 0062;0061 1DFA 0356 0316 059A 0062; # (a◌͖◌֚◌̖◌᷺b; a◌᷺◌͖◌̖◌֚b; a◌᷺◌͖◌̖◌֚b; a◌᷺◌͖◌̖◌֚b; a◌᷺◌͖◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0357 0062;00E0 05AE 0357 0315 0062;0061 05AE 0300 0357 0315 0062;00E0 05AE 0357 0315 0062;0061 05AE 0300 0357 0315 0062; # (a◌̕◌̀◌֮◌͗b; à◌֮◌͗◌̕b; a◌֮◌̀◌͗◌̕b; à◌֮◌͗◌̕b; a◌֮◌̀◌͗◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING RIGHT HALF RING ABOVE, LATIN SMALL LETTER B
+0061 0357 0315 0300 05AE 0062;0061 05AE 0357 0300 0315 0062;0061 05AE 0357 0300 0315 0062;0061 05AE 0357 0300 0315 0062;0061 05AE 0357 0300 0315 0062; # (a◌͗◌̕◌̀◌֮b; a◌֮◌͗◌̀◌̕b; a◌֮◌͗◌̀◌̕b; a◌֮◌͗◌̀◌̕b; a◌֮◌͗◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING RIGHT HALF RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035C 0315 0300 0358 0062;00E0 0315 0358 035C 0062;0061 0300 0315 0358 035C 0062;00E0 0315 0358 035C 0062;0061 0300 0315 0358 035C 0062; # (a◌͜◌̕◌̀◌͘b; à◌̕◌͘◌͜b; a◌̀◌̕◌͘◌͜b; à◌̕◌͘◌͜b; a◌̀◌̕◌͘◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, COMBINING DOT ABOVE RIGHT, LATIN SMALL LETTER B
+0061 0358 035C 0315 0300 0062;00E0 0358 0315 035C 0062;0061 0300 0358 0315 035C 0062;00E0 0358 0315 035C 0062;0061 0300 0358 0315 035C 0062; # (a◌͘◌͜◌̕◌̀b; à◌͘◌̕◌͜b; a◌̀◌͘◌̕◌͜b; à◌͘◌̕◌͜b; a◌̀◌͘◌̕◌͜b; ) LATIN SMALL LETTER A, COMBINING DOT ABOVE RIGHT, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0359 0062;0061 1DFA 0316 0359 059A 0062;0061 1DFA 0316 0359 059A 0062;0061 1DFA 0316 0359 059A 0062;0061 1DFA 0316 0359 059A 0062; # (a◌֚◌̖◌᷺◌͙b; a◌᷺◌̖◌͙◌֚b; a◌᷺◌̖◌͙◌֚b; a◌᷺◌̖◌͙◌֚b; a◌᷺◌̖◌͙◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING ASTERISK BELOW, LATIN SMALL LETTER B
+0061 0359 059A 0316 1DFA 0062;0061 1DFA 0359 0316 059A 0062;0061 1DFA 0359 0316 059A 0062;0061 1DFA 0359 0316 059A 0062;0061 1DFA 0359 0316 059A 0062; # (a◌͙◌֚◌̖◌᷺b; a◌᷺◌͙◌̖◌֚b; a◌᷺◌͙◌̖◌֚b; a◌᷺◌͙◌̖◌֚b; a◌᷺◌͙◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING ASTERISK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 035A 0062;0061 1DFA 0316 035A 059A 0062;0061 1DFA 0316 035A 059A 0062;0061 1DFA 0316 035A 059A 0062;0061 1DFA 0316 035A 059A 0062; # (a◌֚◌̖◌᷺◌͚b; a◌᷺◌̖◌͚◌֚b; a◌᷺◌̖◌͚◌֚b; a◌᷺◌̖◌͚◌֚b; a◌᷺◌̖◌͚◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOUBLE RING BELOW, LATIN SMALL LETTER B
+0061 035A 059A 0316 1DFA 0062;0061 1DFA 035A 0316 059A 0062;0061 1DFA 035A 0316 059A 0062;0061 1DFA 035A 0316 059A 0062;0061 1DFA 035A 0316 059A 0062; # (a◌͚◌֚◌̖◌᷺b; a◌᷺◌͚◌̖◌֚b; a◌᷺◌͚◌̖◌֚b; a◌᷺◌͚◌̖◌֚b; a◌᷺◌͚◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOUBLE RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 035B 0062;00E0 05AE 035B 0315 0062;0061 05AE 0300 035B 0315 0062;00E0 05AE 035B 0315 0062;0061 05AE 0300 035B 0315 0062; # (a◌̕◌̀◌֮◌͛b; à◌֮◌͛◌̕b; a◌֮◌̀◌͛◌̕b; à◌֮◌͛◌̕b; a◌֮◌̀◌͛◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ZIGZAG ABOVE, LATIN SMALL LETTER B
+0061 035B 0315 0300 05AE 0062;0061 05AE 035B 0300 0315 0062;0061 05AE 035B 0300 0315 0062;0061 05AE 035B 0300 0315 0062;0061 05AE 035B 0300 0315 0062; # (a◌͛◌̕◌̀◌֮b; a◌֮◌͛◌̀◌̕b; a◌֮◌͛◌̀◌̕b; a◌֮◌͛◌̀◌̕b; a◌֮◌͛◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ZIGZAG ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035D 035C 0315 035C 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062; # (a◌͝◌͜◌̕◌͜b; a◌̕◌͜◌͜◌͝b; a◌̕◌͜◌͜◌͝b; a◌̕◌͜◌͜◌͝b; a◌̕◌͜◌͜◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING DOUBLE BREVE BELOW, LATIN SMALL LETTER B
+0061 035C 035D 035C 0315 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062; # (a◌͜◌͝◌͜◌̕b; a◌̕◌͜◌͜◌͝b; a◌̕◌͜◌͜◌͝b; a◌̕◌͜◌͜◌͝b; a◌̕◌͜◌͜◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, LATIN SMALL LETTER B
+0061 0345 035D 035C 035D 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062; # (a◌ͅ◌͝◌͜◌͝b; a◌͜◌͝◌͝◌ͅb; a◌͜◌͝◌͝◌ͅb; a◌͜◌͝◌͝◌ͅb; a◌͜◌͝◌͝◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING DOUBLE BREVE, LATIN SMALL LETTER B
+0061 035D 0345 035D 035C 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062; # (a◌͝◌ͅ◌͝◌͜b; a◌͜◌͝◌͝◌ͅb; a◌͜◌͝◌͝◌ͅb; a◌͜◌͝◌͝◌ͅb; a◌͜◌͝◌͝◌ͅb; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, LATIN SMALL LETTER B
+0061 0345 035D 035C 035E 0062;0061 035C 035D 035E 0345 0062;0061 035C 035D 035E 0345 0062;0061 035C 035D 035E 0345 0062;0061 035C 035D 035E 0345 0062; # (a◌ͅ◌͝◌͜◌͞b; a◌͜◌͝◌͞◌ͅb; a◌͜◌͝◌͞◌ͅb; a◌͜◌͝◌͞◌ͅb; a◌͜◌͝◌͞◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING DOUBLE MACRON, LATIN SMALL LETTER B
+0061 035E 0345 035D 035C 0062;0061 035C 035E 035D 0345 0062;0061 035C 035E 035D 0345 0062;0061 035C 035E 035D 0345 0062;0061 035C 035E 035D 0345 0062; # (a◌͞◌ͅ◌͝◌͜b; a◌͜◌͞◌͝◌ͅb; a◌͜◌͞◌͝◌ͅb; a◌͜◌͞◌͝◌ͅb; a◌͜◌͞◌͝◌ͅb; ) LATIN SMALL LETTER A, COMBINING DOUBLE MACRON, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, LATIN SMALL LETTER B
+0061 035D 035C 0315 035F 0062;0061 0315 035C 035F 035D 0062;0061 0315 035C 035F 035D 0062;0061 0315 035C 035F 035D 0062;0061 0315 035C 035F 035D 0062; # (a◌͝◌͜◌̕◌͟b; a◌̕◌͜◌͟◌͝b; a◌̕◌͜◌͟◌͝b; a◌̕◌͜◌͟◌͝b; a◌̕◌͜◌͟◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING DOUBLE MACRON BELOW, LATIN SMALL LETTER B
+0061 035F 035D 035C 0315 0062;0061 0315 035F 035C 035D 0062;0061 0315 035F 035C 035D 0062;0061 0315 035F 035C 035D 0062;0061 0315 035F 035C 035D 0062; # (a◌͟◌͝◌͜◌̕b; a◌̕◌͟◌͜◌͝b; a◌̕◌͟◌͜◌͝b; a◌̕◌͟◌͜◌͝b; a◌̕◌͟◌͜◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE MACRON BELOW, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, LATIN SMALL LETTER B
+0061 0345 035D 035C 0360 0062;0061 035C 035D 0360 0345 0062;0061 035C 035D 0360 0345 0062;0061 035C 035D 0360 0345 0062;0061 035C 035D 0360 0345 0062; # (a◌ͅ◌͝◌͜◌͠b; a◌͜◌͝◌͠◌ͅb; a◌͜◌͝◌͠◌ͅb; a◌͜◌͝◌͠◌ͅb; a◌͜◌͝◌͠◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING DOUBLE TILDE, LATIN SMALL LETTER B
+0061 0360 0345 035D 035C 0062;0061 035C 0360 035D 0345 0062;0061 035C 0360 035D 0345 0062;0061 035C 0360 035D 0345 0062;0061 035C 0360 035D 0345 0062; # (a◌͠◌ͅ◌͝◌͜b; a◌͜◌͠◌͝◌ͅb; a◌͜◌͠◌͝◌ͅb; a◌͜◌͠◌͝◌ͅb; a◌͜◌͠◌͝◌ͅb; ) LATIN SMALL LETTER A, COMBINING DOUBLE TILDE, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, LATIN SMALL LETTER B
+0061 0345 035D 035C 0361 0062;0061 035C 035D 0361 0345 0062;0061 035C 035D 0361 0345 0062;0061 035C 035D 0361 0345 0062;0061 035C 035D 0361 0345 0062; # (a◌ͅ◌͝◌͜◌͡b; a◌͜◌͝◌͡◌ͅb; a◌͜◌͝◌͡◌ͅb; a◌͜◌͝◌͡◌ͅb; a◌͜◌͝◌͡◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING DOUBLE INVERTED BREVE, LATIN SMALL LETTER B
+0061 0361 0345 035D 035C 0062;0061 035C 0361 035D 0345 0062;0061 035C 0361 035D 0345 0062;0061 035C 0361 035D 0345 0062;0061 035C 0361 035D 0345 0062; # (a◌͡◌ͅ◌͝◌͜b; a◌͜◌͡◌͝◌ͅb; a◌͜◌͡◌͝◌ͅb; a◌͜◌͡◌͝◌ͅb; a◌͜◌͡◌͝◌ͅb; ) LATIN SMALL LETTER A, COMBINING DOUBLE INVERTED BREVE, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, LATIN SMALL LETTER B
+0061 035D 035C 0315 0362 0062;0061 0315 035C 0362 035D 0062;0061 0315 035C 0362 035D 0062;0061 0315 035C 0362 035D 0062;0061 0315 035C 0362 035D 0062; # (a◌͝◌͜◌̕◌͢b; a◌̕◌͜◌͢◌͝b; a◌̕◌͜◌͢◌͝b; a◌̕◌͜◌͢◌͝b; a◌̕◌͜◌͢◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING DOUBLE RIGHTWARDS ARROW BELOW, LATIN SMALL LETTER B
+0061 0362 035D 035C 0315 0062;0061 0315 0362 035C 035D 0062;0061 0315 0362 035C 035D 0062;0061 0315 0362 035C 035D 0062;0061 0315 0362 035C 035D 0062; # (a◌͢◌͝◌͜◌̕b; a◌̕◌͢◌͜◌͝b; a◌̕◌͢◌͜◌͝b; a◌̕◌͢◌͜◌͝b; a◌̕◌͢◌͜◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE RIGHTWARDS ARROW BELOW, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0363 0062;00E0 05AE 0363 0315 0062;0061 05AE 0300 0363 0315 0062;00E0 05AE 0363 0315 0062;0061 05AE 0300 0363 0315 0062; # (a◌̕◌̀◌֮◌ͣb; à◌֮◌ͣ◌̕b; a◌֮◌̀◌ͣ◌̕b; à◌֮◌ͣ◌̕b; a◌֮◌̀◌ͣ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER A, LATIN SMALL LETTER B
+0061 0363 0315 0300 05AE 0062;0061 05AE 0363 0300 0315 0062;0061 05AE 0363 0300 0315 0062;0061 05AE 0363 0300 0315 0062;0061 05AE 0363 0300 0315 0062; # (a◌ͣ◌̕◌̀◌֮b; a◌֮◌ͣ◌̀◌̕b; a◌֮◌ͣ◌̀◌̕b; a◌֮◌ͣ◌̀◌̕b; a◌֮◌ͣ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0364 0062;00E0 05AE 0364 0315 0062;0061 05AE 0300 0364 0315 0062;00E0 05AE 0364 0315 0062;0061 05AE 0300 0364 0315 0062; # (a◌̕◌̀◌֮◌ͤb; à◌֮◌ͤ◌̕b; a◌֮◌̀◌ͤ◌̕b; à◌֮◌ͤ◌̕b; a◌֮◌̀◌ͤ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER E, LATIN SMALL LETTER B
+0061 0364 0315 0300 05AE 0062;0061 05AE 0364 0300 0315 0062;0061 05AE 0364 0300 0315 0062;0061 05AE 0364 0300 0315 0062;0061 05AE 0364 0300 0315 0062; # (a◌ͤ◌̕◌̀◌֮b; a◌֮◌ͤ◌̀◌̕b; a◌֮◌ͤ◌̀◌̕b; a◌֮◌ͤ◌̀◌̕b; a◌֮◌ͤ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER E, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0365 0062;00E0 05AE 0365 0315 0062;0061 05AE 0300 0365 0315 0062;00E0 05AE 0365 0315 0062;0061 05AE 0300 0365 0315 0062; # (a◌̕◌̀◌֮◌ͥb; à◌֮◌ͥ◌̕b; a◌֮◌̀◌ͥ◌̕b; à◌֮◌ͥ◌̕b; a◌֮◌̀◌ͥ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER I, LATIN SMALL LETTER B
+0061 0365 0315 0300 05AE 0062;0061 05AE 0365 0300 0315 0062;0061 05AE 0365 0300 0315 0062;0061 05AE 0365 0300 0315 0062;0061 05AE 0365 0300 0315 0062; # (a◌ͥ◌̕◌̀◌֮b; a◌֮◌ͥ◌̀◌̕b; a◌֮◌ͥ◌̀◌̕b; a◌֮◌ͥ◌̀◌̕b; a◌֮◌ͥ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0366 0062;00E0 05AE 0366 0315 0062;0061 05AE 0300 0366 0315 0062;00E0 05AE 0366 0315 0062;0061 05AE 0300 0366 0315 0062; # (a◌̕◌̀◌֮◌ͦb; à◌֮◌ͦ◌̕b; a◌֮◌̀◌ͦ◌̕b; à◌֮◌ͦ◌̕b; a◌֮◌̀◌ͦ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER O, LATIN SMALL LETTER B
+0061 0366 0315 0300 05AE 0062;0061 05AE 0366 0300 0315 0062;0061 05AE 0366 0300 0315 0062;0061 05AE 0366 0300 0315 0062;0061 05AE 0366 0300 0315 0062; # (a◌ͦ◌̕◌̀◌֮b; a◌֮◌ͦ◌̀◌̕b; a◌֮◌ͦ◌̀◌̕b; a◌֮◌ͦ◌̀◌̕b; a◌֮◌ͦ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER O, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0367 0062;00E0 05AE 0367 0315 0062;0061 05AE 0300 0367 0315 0062;00E0 05AE 0367 0315 0062;0061 05AE 0300 0367 0315 0062; # (a◌̕◌̀◌֮◌ͧb; à◌֮◌ͧ◌̕b; a◌֮◌̀◌ͧ◌̕b; à◌֮◌ͧ◌̕b; a◌֮◌̀◌ͧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER U, LATIN SMALL LETTER B
+0061 0367 0315 0300 05AE 0062;0061 05AE 0367 0300 0315 0062;0061 05AE 0367 0300 0315 0062;0061 05AE 0367 0300 0315 0062;0061 05AE 0367 0300 0315 0062; # (a◌ͧ◌̕◌̀◌֮b; a◌֮◌ͧ◌̀◌̕b; a◌֮◌ͧ◌̀◌̕b; a◌֮◌ͧ◌̀◌̕b; a◌֮◌ͧ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER U, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0368 0062;00E0 05AE 0368 0315 0062;0061 05AE 0300 0368 0315 0062;00E0 05AE 0368 0315 0062;0061 05AE 0300 0368 0315 0062; # (a◌̕◌̀◌֮◌ͨb; à◌֮◌ͨ◌̕b; a◌֮◌̀◌ͨ◌̕b; à◌֮◌ͨ◌̕b; a◌֮◌̀◌ͨ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER C, LATIN SMALL LETTER B
+0061 0368 0315 0300 05AE 0062;0061 05AE 0368 0300 0315 0062;0061 05AE 0368 0300 0315 0062;0061 05AE 0368 0300 0315 0062;0061 05AE 0368 0300 0315 0062; # (a◌ͨ◌̕◌̀◌֮b; a◌֮◌ͨ◌̀◌̕b; a◌֮◌ͨ◌̀◌̕b; a◌֮◌ͨ◌̀◌̕b; a◌֮◌ͨ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER C, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0369 0062;00E0 05AE 0369 0315 0062;0061 05AE 0300 0369 0315 0062;00E0 05AE 0369 0315 0062;0061 05AE 0300 0369 0315 0062; # (a◌̕◌̀◌֮◌ͩb; à◌֮◌ͩ◌̕b; a◌֮◌̀◌ͩ◌̕b; à◌֮◌ͩ◌̕b; a◌֮◌̀◌ͩ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER D, LATIN SMALL LETTER B
+0061 0369 0315 0300 05AE 0062;0061 05AE 0369 0300 0315 0062;0061 05AE 0369 0300 0315 0062;0061 05AE 0369 0300 0315 0062;0061 05AE 0369 0300 0315 0062; # (a◌ͩ◌̕◌̀◌֮b; a◌֮◌ͩ◌̀◌̕b; a◌֮◌ͩ◌̀◌̕b; a◌֮◌ͩ◌̀◌̕b; a◌֮◌ͩ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER D, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 036A 0062;00E0 05AE 036A 0315 0062;0061 05AE 0300 036A 0315 0062;00E0 05AE 036A 0315 0062;0061 05AE 0300 036A 0315 0062; # (a◌̕◌̀◌֮◌ͪb; à◌֮◌ͪ◌̕b; a◌֮◌̀◌ͪ◌̕b; à◌֮◌ͪ◌̕b; a◌֮◌̀◌ͪ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER H, LATIN SMALL LETTER B
+0061 036A 0315 0300 05AE 0062;0061 05AE 036A 0300 0315 0062;0061 05AE 036A 0300 0315 0062;0061 05AE 036A 0300 0315 0062;0061 05AE 036A 0300 0315 0062; # (a◌ͪ◌̕◌̀◌֮b; a◌֮◌ͪ◌̀◌̕b; a◌֮◌ͪ◌̀◌̕b; a◌֮◌ͪ◌̀◌̕b; a◌֮◌ͪ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER H, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 036B 0062;00E0 05AE 036B 0315 0062;0061 05AE 0300 036B 0315 0062;00E0 05AE 036B 0315 0062;0061 05AE 0300 036B 0315 0062; # (a◌̕◌̀◌֮◌ͫb; à◌֮◌ͫ◌̕b; a◌֮◌̀◌ͫ◌̕b; à◌֮◌ͫ◌̕b; a◌֮◌̀◌ͫ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER M, LATIN SMALL LETTER B
+0061 036B 0315 0300 05AE 0062;0061 05AE 036B 0300 0315 0062;0061 05AE 036B 0300 0315 0062;0061 05AE 036B 0300 0315 0062;0061 05AE 036B 0300 0315 0062; # (a◌ͫ◌̕◌̀◌֮b; a◌֮◌ͫ◌̀◌̕b; a◌֮◌ͫ◌̀◌̕b; a◌֮◌ͫ◌̀◌̕b; a◌֮◌ͫ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER M, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 036C 0062;00E0 05AE 036C 0315 0062;0061 05AE 0300 036C 0315 0062;00E0 05AE 036C 0315 0062;0061 05AE 0300 036C 0315 0062; # (a◌̕◌̀◌֮◌ͬb; à◌֮◌ͬ◌̕b; a◌֮◌̀◌ͬ◌̕b; à◌֮◌ͬ◌̕b; a◌֮◌̀◌ͬ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER R, LATIN SMALL LETTER B
+0061 036C 0315 0300 05AE 0062;0061 05AE 036C 0300 0315 0062;0061 05AE 036C 0300 0315 0062;0061 05AE 036C 0300 0315 0062;0061 05AE 036C 0300 0315 0062; # (a◌ͬ◌̕◌̀◌֮b; a◌֮◌ͬ◌̀◌̕b; a◌֮◌ͬ◌̀◌̕b; a◌֮◌ͬ◌̀◌̕b; a◌֮◌ͬ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER R, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 036D 0062;00E0 05AE 036D 0315 0062;0061 05AE 0300 036D 0315 0062;00E0 05AE 036D 0315 0062;0061 05AE 0300 036D 0315 0062; # (a◌̕◌̀◌֮◌ͭb; à◌֮◌ͭ◌̕b; a◌֮◌̀◌ͭ◌̕b; à◌֮◌ͭ◌̕b; a◌֮◌̀◌ͭ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER T, LATIN SMALL LETTER B
+0061 036D 0315 0300 05AE 0062;0061 05AE 036D 0300 0315 0062;0061 05AE 036D 0300 0315 0062;0061 05AE 036D 0300 0315 0062;0061 05AE 036D 0300 0315 0062; # (a◌ͭ◌̕◌̀◌֮b; a◌֮◌ͭ◌̀◌̕b; a◌֮◌ͭ◌̀◌̕b; a◌֮◌ͭ◌̀◌̕b; a◌֮◌ͭ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER T, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 036E 0062;00E0 05AE 036E 0315 0062;0061 05AE 0300 036E 0315 0062;00E0 05AE 036E 0315 0062;0061 05AE 0300 036E 0315 0062; # (a◌̕◌̀◌֮◌ͮb; à◌֮◌ͮ◌̕b; a◌֮◌̀◌ͮ◌̕b; à◌֮◌ͮ◌̕b; a◌֮◌̀◌ͮ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER V, LATIN SMALL LETTER B
+0061 036E 0315 0300 05AE 0062;0061 05AE 036E 0300 0315 0062;0061 05AE 036E 0300 0315 0062;0061 05AE 036E 0300 0315 0062;0061 05AE 036E 0300 0315 0062; # (a◌ͮ◌̕◌̀◌֮b; a◌֮◌ͮ◌̀◌̕b; a◌֮◌ͮ◌̀◌̕b; a◌֮◌ͮ◌̀◌̕b; a◌֮◌ͮ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER V, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 036F 0062;00E0 05AE 036F 0315 0062;0061 05AE 0300 036F 0315 0062;00E0 05AE 036F 0315 0062;0061 05AE 0300 036F 0315 0062; # (a◌̕◌̀◌֮◌ͯb; à◌֮◌ͯ◌̕b; a◌֮◌̀◌ͯ◌̕b; à◌֮◌ͯ◌̕b; a◌֮◌̀◌ͯ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER X, LATIN SMALL LETTER B
+0061 036F 0315 0300 05AE 0062;0061 05AE 036F 0300 0315 0062;0061 05AE 036F 0300 0315 0062;0061 05AE 036F 0300 0315 0062;0061 05AE 036F 0300 0315 0062; # (a◌ͯ◌̕◌̀◌֮b; a◌֮◌ͯ◌̀◌̕b; a◌֮◌ͯ◌̀◌̕b; a◌֮◌ͯ◌̀◌̕b; a◌֮◌ͯ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER X, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0483 0062;00E0 05AE 0483 0315 0062;0061 05AE 0300 0483 0315 0062;00E0 05AE 0483 0315 0062;0061 05AE 0300 0483 0315 0062; # (a◌̕◌̀◌֮◌҃b; à◌֮◌҃◌̕b; a◌֮◌̀◌҃◌̕b; à◌֮◌҃◌̕b; a◌֮◌̀◌҃◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC TITLO, LATIN SMALL LETTER B
+0061 0483 0315 0300 05AE 0062;0061 05AE 0483 0300 0315 0062;0061 05AE 0483 0300 0315 0062;0061 05AE 0483 0300 0315 0062;0061 05AE 0483 0300 0315 0062; # (a◌҃◌̕◌̀◌֮b; a◌֮◌҃◌̀◌̕b; a◌֮◌҃◌̀◌̕b; a◌֮◌҃◌̀◌̕b; a◌֮◌҃◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC TITLO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0484 0062;00E0 05AE 0484 0315 0062;0061 05AE 0300 0484 0315 0062;00E0 05AE 0484 0315 0062;0061 05AE 0300 0484 0315 0062; # (a◌̕◌̀◌֮◌҄b; à◌֮◌҄◌̕b; a◌֮◌̀◌҄◌̕b; à◌֮◌҄◌̕b; a◌֮◌̀◌҄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC PALATALIZATION, LATIN SMALL LETTER B
+0061 0484 0315 0300 05AE 0062;0061 05AE 0484 0300 0315 0062;0061 05AE 0484 0300 0315 0062;0061 05AE 0484 0300 0315 0062;0061 05AE 0484 0300 0315 0062; # (a◌҄◌̕◌̀◌֮b; a◌֮◌҄◌̀◌̕b; a◌֮◌҄◌̀◌̕b; a◌֮◌҄◌̀◌̕b; a◌֮◌҄◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC PALATALIZATION, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0485 0062;00E0 05AE 0485 0315 0062;0061 05AE 0300 0485 0315 0062;00E0 05AE 0485 0315 0062;0061 05AE 0300 0485 0315 0062; # (a◌̕◌̀◌֮◌҅b; à◌֮◌҅◌̕b; a◌֮◌̀◌҅◌̕b; à◌֮◌҅◌̕b; a◌֮◌̀◌҅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC DASIA PNEUMATA, LATIN SMALL LETTER B
+0061 0485 0315 0300 05AE 0062;0061 05AE 0485 0300 0315 0062;0061 05AE 0485 0300 0315 0062;0061 05AE 0485 0300 0315 0062;0061 05AE 0485 0300 0315 0062; # (a◌҅◌̕◌̀◌֮b; a◌֮◌҅◌̀◌̕b; a◌֮◌҅◌̀◌̕b; a◌֮◌҅◌̀◌̕b; a◌֮◌҅◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC DASIA PNEUMATA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0486 0062;00E0 05AE 0486 0315 0062;0061 05AE 0300 0486 0315 0062;00E0 05AE 0486 0315 0062;0061 05AE 0300 0486 0315 0062; # (a◌̕◌̀◌֮◌҆b; à◌֮◌҆◌̕b; a◌֮◌̀◌҆◌̕b; à◌֮◌҆◌̕b; a◌֮◌̀◌҆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC PSILI PNEUMATA, LATIN SMALL LETTER B
+0061 0486 0315 0300 05AE 0062;0061 05AE 0486 0300 0315 0062;0061 05AE 0486 0300 0315 0062;0061 05AE 0486 0300 0315 0062;0061 05AE 0486 0300 0315 0062; # (a◌҆◌̕◌̀◌֮b; a◌֮◌҆◌̀◌̕b; a◌֮◌҆◌̀◌̕b; a◌֮◌҆◌̀◌̕b; a◌֮◌҆◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0487 0062;00E0 05AE 0487 0315 0062;0061 05AE 0300 0487 0315 0062;00E0 05AE 0487 0315 0062;0061 05AE 0300 0487 0315 0062; # (a◌̕◌̀◌֮◌҇b; à◌֮◌҇◌̕b; a◌֮◌̀◌҇◌̕b; à◌֮◌҇◌̕b; a◌֮◌̀◌҇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC POKRYTIE, LATIN SMALL LETTER B
+0061 0487 0315 0300 05AE 0062;0061 05AE 0487 0300 0315 0062;0061 05AE 0487 0300 0315 0062;0061 05AE 0487 0300 0315 0062;0061 05AE 0487 0300 0315 0062; # (a◌҇◌̕◌̀◌֮b; a◌֮◌҇◌̀◌̕b; a◌֮◌҇◌̀◌̕b; a◌֮◌҇◌̀◌̕b; a◌֮◌҇◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC POKRYTIE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0591 0062;0061 1DFA 0316 0591 059A 0062;0061 1DFA 0316 0591 059A 0062;0061 1DFA 0316 0591 059A 0062;0061 1DFA 0316 0591 059A 0062; # (a◌֚◌̖◌᷺◌֑b; a◌᷺◌̖◌֑◌֚b; a◌᷺◌̖◌֑◌֚b; a◌᷺◌̖◌֑◌֚b; a◌᷺◌̖◌֑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT ETNAHTA, LATIN SMALL LETTER B
+0061 0591 059A 0316 1DFA 0062;0061 1DFA 0591 0316 059A 0062;0061 1DFA 0591 0316 059A 0062;0061 1DFA 0591 0316 059A 0062;0061 1DFA 0591 0316 059A 0062; # (a◌֑◌֚◌̖◌᷺b; a◌᷺◌֑◌̖◌֚b; a◌᷺◌֑◌̖◌֚b; a◌᷺◌֑◌̖◌֚b; a◌᷺◌֑◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT ETNAHTA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0592 0062;00E0 05AE 0592 0315 0062;0061 05AE 0300 0592 0315 0062;00E0 05AE 0592 0315 0062;0061 05AE 0300 0592 0315 0062; # (a◌̕◌̀◌֮◌֒b; à◌֮◌֒◌̕b; a◌֮◌̀◌֒◌̕b; à◌֮◌֒◌̕b; a◌֮◌̀◌֒◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT SEGOL, LATIN SMALL LETTER B
+0061 0592 0315 0300 05AE 0062;0061 05AE 0592 0300 0315 0062;0061 05AE 0592 0300 0315 0062;0061 05AE 0592 0300 0315 0062;0061 05AE 0592 0300 0315 0062; # (a◌֒◌̕◌̀◌֮b; a◌֮◌֒◌̀◌̕b; a◌֮◌֒◌̀◌̕b; a◌֮◌֒◌̀◌̕b; a◌֮◌֒◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT SEGOL, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0593 0062;00E0 05AE 0593 0315 0062;0061 05AE 0300 0593 0315 0062;00E0 05AE 0593 0315 0062;0061 05AE 0300 0593 0315 0062; # (a◌̕◌̀◌֮◌֓b; à◌֮◌֓◌̕b; a◌֮◌̀◌֓◌̕b; à◌֮◌֓◌̕b; a◌֮◌̀◌֓◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT SHALSHELET, LATIN SMALL LETTER B
+0061 0593 0315 0300 05AE 0062;0061 05AE 0593 0300 0315 0062;0061 05AE 0593 0300 0315 0062;0061 05AE 0593 0300 0315 0062;0061 05AE 0593 0300 0315 0062; # (a◌֓◌̕◌̀◌֮b; a◌֮◌֓◌̀◌̕b; a◌֮◌֓◌̀◌̕b; a◌֮◌֓◌̀◌̕b; a◌֮◌֓◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT SHALSHELET, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0594 0062;00E0 05AE 0594 0315 0062;0061 05AE 0300 0594 0315 0062;00E0 05AE 0594 0315 0062;0061 05AE 0300 0594 0315 0062; # (a◌̕◌̀◌֮◌֔b; à◌֮◌֔◌̕b; a◌֮◌̀◌֔◌̕b; à◌֮◌֔◌̕b; a◌֮◌̀◌֔◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT ZAQEF QATAN, LATIN SMALL LETTER B
+0061 0594 0315 0300 05AE 0062;0061 05AE 0594 0300 0315 0062;0061 05AE 0594 0300 0315 0062;0061 05AE 0594 0300 0315 0062;0061 05AE 0594 0300 0315 0062; # (a◌֔◌̕◌̀◌֮b; a◌֮◌֔◌̀◌̕b; a◌֮◌֔◌̀◌̕b; a◌֮◌֔◌̀◌̕b; a◌֮◌֔◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT ZAQEF QATAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0595 0062;00E0 05AE 0595 0315 0062;0061 05AE 0300 0595 0315 0062;00E0 05AE 0595 0315 0062;0061 05AE 0300 0595 0315 0062; # (a◌̕◌̀◌֮◌֕b; à◌֮◌֕◌̕b; a◌֮◌̀◌֕◌̕b; à◌֮◌֕◌̕b; a◌֮◌̀◌֕◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT ZAQEF GADOL, LATIN SMALL LETTER B
+0061 0595 0315 0300 05AE 0062;0061 05AE 0595 0300 0315 0062;0061 05AE 0595 0300 0315 0062;0061 05AE 0595 0300 0315 0062;0061 05AE 0595 0300 0315 0062; # (a◌֕◌̕◌̀◌֮b; a◌֮◌֕◌̀◌̕b; a◌֮◌֕◌̀◌̕b; a◌֮◌֕◌̀◌̕b; a◌֮◌֕◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT ZAQEF GADOL, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0596 0062;0061 1DFA 0316 0596 059A 0062;0061 1DFA 0316 0596 059A 0062;0061 1DFA 0316 0596 059A 0062;0061 1DFA 0316 0596 059A 0062; # (a◌֚◌̖◌᷺◌֖b; a◌᷺◌̖◌֖◌֚b; a◌᷺◌̖◌֖◌֚b; a◌᷺◌̖◌֖◌֚b; a◌᷺◌̖◌֖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT TIPEHA, LATIN SMALL LETTER B
+0061 0596 059A 0316 1DFA 0062;0061 1DFA 0596 0316 059A 0062;0061 1DFA 0596 0316 059A 0062;0061 1DFA 0596 0316 059A 0062;0061 1DFA 0596 0316 059A 0062; # (a◌֖◌֚◌̖◌᷺b; a◌᷺◌֖◌̖◌֚b; a◌᷺◌֖◌̖◌֚b; a◌᷺◌֖◌̖◌֚b; a◌᷺◌֖◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT TIPEHA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0597 0062;00E0 05AE 0597 0315 0062;0061 05AE 0300 0597 0315 0062;00E0 05AE 0597 0315 0062;0061 05AE 0300 0597 0315 0062; # (a◌̕◌̀◌֮◌֗b; à◌֮◌֗◌̕b; a◌֮◌̀◌֗◌̕b; à◌֮◌֗◌̕b; a◌֮◌̀◌֗◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT REVIA, LATIN SMALL LETTER B
+0061 0597 0315 0300 05AE 0062;0061 05AE 0597 0300 0315 0062;0061 05AE 0597 0300 0315 0062;0061 05AE 0597 0300 0315 0062;0061 05AE 0597 0300 0315 0062; # (a◌֗◌̕◌̀◌֮b; a◌֮◌֗◌̀◌̕b; a◌֮◌֗◌̀◌̕b; a◌֮◌֗◌̀◌̕b; a◌֮◌֗◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT REVIA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0598 0062;00E0 05AE 0598 0315 0062;0061 05AE 0300 0598 0315 0062;00E0 05AE 0598 0315 0062;0061 05AE 0300 0598 0315 0062; # (a◌̕◌̀◌֮◌֘b; à◌֮◌֘◌̕b; a◌֮◌̀◌֘◌̕b; à◌֮◌֘◌̕b; a◌֮◌̀◌֘◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT ZARQA, LATIN SMALL LETTER B
+0061 0598 0315 0300 05AE 0062;0061 05AE 0598 0300 0315 0062;0061 05AE 0598 0300 0315 0062;0061 05AE 0598 0300 0315 0062;0061 05AE 0598 0300 0315 0062; # (a◌֘◌̕◌̀◌֮b; a◌֮◌֘◌̀◌̕b; a◌֮◌֘◌̀◌̕b; a◌֮◌֘◌̀◌̕b; a◌֮◌֘◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT ZARQA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0599 0062;00E0 05AE 0599 0315 0062;0061 05AE 0300 0599 0315 0062;00E0 05AE 0599 0315 0062;0061 05AE 0300 0599 0315 0062; # (a◌̕◌̀◌֮◌֙b; à◌֮◌֙◌̕b; a◌֮◌̀◌֙◌̕b; à◌֮◌֙◌̕b; a◌֮◌̀◌֙◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT PASHTA, LATIN SMALL LETTER B
+0061 0599 0315 0300 05AE 0062;0061 05AE 0599 0300 0315 0062;0061 05AE 0599 0300 0315 0062;0061 05AE 0599 0300 0315 0062;0061 05AE 0599 0300 0315 0062; # (a◌֙◌̕◌̀◌֮b; a◌֮◌֙◌̀◌̕b; a◌֮◌֙◌̀◌̕b; a◌֮◌֙◌̀◌̕b; a◌֮◌֙◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT PASHTA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 302E 059A 0316 059A 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062; # (a〮◌֚◌̖◌֚b; a◌̖◌֚◌֚〮b; a◌̖◌֚◌֚〮b; a◌̖◌֚◌֚〮b; a◌̖◌֚◌֚〮b; ) LATIN SMALL LETTER A, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, HEBREW ACCENT YETIV, LATIN SMALL LETTER B
+0061 059A 302E 059A 0316 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062; # (a◌֚〮◌֚◌̖b; a◌̖◌֚◌֚〮b; a◌̖◌֚◌֚〮b; a◌̖◌֚◌֚〮b; a◌̖◌֚◌֚〮b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 059B 0062;0061 1DFA 0316 059B 059A 0062;0061 1DFA 0316 059B 059A 0062;0061 1DFA 0316 059B 059A 0062;0061 1DFA 0316 059B 059A 0062; # (a◌֚◌̖◌᷺◌֛b; a◌᷺◌̖◌֛◌֚b; a◌᷺◌̖◌֛◌֚b; a◌᷺◌̖◌֛◌֚b; a◌᷺◌̖◌֛◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT TEVIR, LATIN SMALL LETTER B
+0061 059B 059A 0316 1DFA 0062;0061 1DFA 059B 0316 059A 0062;0061 1DFA 059B 0316 059A 0062;0061 1DFA 059B 0316 059A 0062;0061 1DFA 059B 0316 059A 0062; # (a◌֛◌֚◌̖◌᷺b; a◌᷺◌֛◌̖◌֚b; a◌᷺◌֛◌̖◌֚b; a◌᷺◌֛◌̖◌֚b; a◌᷺◌֛◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT TEVIR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 059C 0062;00E0 05AE 059C 0315 0062;0061 05AE 0300 059C 0315 0062;00E0 05AE 059C 0315 0062;0061 05AE 0300 059C 0315 0062; # (a◌̕◌̀◌֮◌֜b; à◌֮◌֜◌̕b; a◌֮◌̀◌֜◌̕b; à◌֮◌֜◌̕b; a◌֮◌̀◌֜◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT GERESH, LATIN SMALL LETTER B
+0061 059C 0315 0300 05AE 0062;0061 05AE 059C 0300 0315 0062;0061 05AE 059C 0300 0315 0062;0061 05AE 059C 0300 0315 0062;0061 05AE 059C 0300 0315 0062; # (a◌֜◌̕◌̀◌֮b; a◌֮◌֜◌̀◌̕b; a◌֮◌֜◌̀◌̕b; a◌֮◌֜◌̀◌̕b; a◌֮◌֜◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT GERESH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 059D 0062;00E0 05AE 059D 0315 0062;0061 05AE 0300 059D 0315 0062;00E0 05AE 059D 0315 0062;0061 05AE 0300 059D 0315 0062; # (a◌̕◌̀◌֮◌֝b; à◌֮◌֝◌̕b; a◌֮◌̀◌֝◌̕b; à◌֮◌֝◌̕b; a◌֮◌̀◌֝◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT GERESH MUQDAM, LATIN SMALL LETTER B
+0061 059D 0315 0300 05AE 0062;0061 05AE 059D 0300 0315 0062;0061 05AE 059D 0300 0315 0062;0061 05AE 059D 0300 0315 0062;0061 05AE 059D 0300 0315 0062; # (a◌֝◌̕◌̀◌֮b; a◌֮◌֝◌̀◌̕b; a◌֮◌֝◌̀◌̕b; a◌֮◌֝◌̀◌̕b; a◌֮◌֝◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT GERESH MUQDAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 059E 0062;00E0 05AE 059E 0315 0062;0061 05AE 0300 059E 0315 0062;00E0 05AE 059E 0315 0062;0061 05AE 0300 059E 0315 0062; # (a◌̕◌̀◌֮◌֞b; à◌֮◌֞◌̕b; a◌֮◌̀◌֞◌̕b; à◌֮◌֞◌̕b; a◌֮◌̀◌֞◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT GERSHAYIM, LATIN SMALL LETTER B
+0061 059E 0315 0300 05AE 0062;0061 05AE 059E 0300 0315 0062;0061 05AE 059E 0300 0315 0062;0061 05AE 059E 0300 0315 0062;0061 05AE 059E 0300 0315 0062; # (a◌֞◌̕◌̀◌֮b; a◌֮◌֞◌̀◌̕b; a◌֮◌֞◌̀◌̕b; a◌֮◌֞◌̀◌̕b; a◌֮◌֞◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT GERSHAYIM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 059F 0062;00E0 05AE 059F 0315 0062;0061 05AE 0300 059F 0315 0062;00E0 05AE 059F 0315 0062;0061 05AE 0300 059F 0315 0062; # (a◌̕◌̀◌֮◌֟b; à◌֮◌֟◌̕b; a◌֮◌̀◌֟◌̕b; à◌֮◌֟◌̕b; a◌֮◌̀◌֟◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT QARNEY PARA, LATIN SMALL LETTER B
+0061 059F 0315 0300 05AE 0062;0061 05AE 059F 0300 0315 0062;0061 05AE 059F 0300 0315 0062;0061 05AE 059F 0300 0315 0062;0061 05AE 059F 0300 0315 0062; # (a◌֟◌̕◌̀◌֮b; a◌֮◌֟◌̀◌̕b; a◌֮◌֟◌̀◌̕b; a◌֮◌֟◌̀◌̕b; a◌֮◌֟◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT QARNEY PARA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05A0 0062;00E0 05AE 05A0 0315 0062;0061 05AE 0300 05A0 0315 0062;00E0 05AE 05A0 0315 0062;0061 05AE 0300 05A0 0315 0062; # (a◌̕◌̀◌֮◌֠b; à◌֮◌֠◌̕b; a◌֮◌̀◌֠◌̕b; à◌֮◌֠◌̕b; a◌֮◌̀◌֠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT TELISHA GEDOLA, LATIN SMALL LETTER B
+0061 05A0 0315 0300 05AE 0062;0061 05AE 05A0 0300 0315 0062;0061 05AE 05A0 0300 0315 0062;0061 05AE 05A0 0300 0315 0062;0061 05AE 05A0 0300 0315 0062; # (a◌֠◌̕◌̀◌֮b; a◌֮◌֠◌̀◌̕b; a◌֮◌֠◌̀◌̕b; a◌֮◌֠◌̀◌̕b; a◌֮◌֠◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT TELISHA GEDOLA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05A1 0062;00E0 05AE 05A1 0315 0062;0061 05AE 0300 05A1 0315 0062;00E0 05AE 05A1 0315 0062;0061 05AE 0300 05A1 0315 0062; # (a◌̕◌̀◌֮◌֡b; à◌֮◌֡◌̕b; a◌֮◌̀◌֡◌̕b; à◌֮◌֡◌̕b; a◌֮◌̀◌֡◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT PAZER, LATIN SMALL LETTER B
+0061 05A1 0315 0300 05AE 0062;0061 05AE 05A1 0300 0315 0062;0061 05AE 05A1 0300 0315 0062;0061 05AE 05A1 0300 0315 0062;0061 05AE 05A1 0300 0315 0062; # (a◌֡◌̕◌̀◌֮b; a◌֮◌֡◌̀◌̕b; a◌֮◌֡◌̀◌̕b; a◌֮◌֡◌̀◌̕b; a◌֮◌֡◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT PAZER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05A2 0062;0061 1DFA 0316 05A2 059A 0062;0061 1DFA 0316 05A2 059A 0062;0061 1DFA 0316 05A2 059A 0062;0061 1DFA 0316 05A2 059A 0062; # (a◌֚◌̖◌᷺◌֢b; a◌᷺◌̖◌֢◌֚b; a◌᷺◌̖◌֢◌֚b; a◌᷺◌̖◌֢◌֚b; a◌᷺◌̖◌֢◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT ATNAH HAFUKH, LATIN SMALL LETTER B
+0061 05A2 059A 0316 1DFA 0062;0061 1DFA 05A2 0316 059A 0062;0061 1DFA 05A2 0316 059A 0062;0061 1DFA 05A2 0316 059A 0062;0061 1DFA 05A2 0316 059A 0062; # (a◌֢◌֚◌̖◌᷺b; a◌᷺◌֢◌̖◌֚b; a◌᷺◌֢◌̖◌֚b; a◌᷺◌֢◌̖◌֚b; a◌᷺◌֢◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT ATNAH HAFUKH, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05A3 0062;0061 1DFA 0316 05A3 059A 0062;0061 1DFA 0316 05A3 059A 0062;0061 1DFA 0316 05A3 059A 0062;0061 1DFA 0316 05A3 059A 0062; # (a◌֚◌̖◌᷺◌֣b; a◌᷺◌̖◌֣◌֚b; a◌᷺◌̖◌֣◌֚b; a◌᷺◌̖◌֣◌֚b; a◌᷺◌̖◌֣◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT MUNAH, LATIN SMALL LETTER B
+0061 05A3 059A 0316 1DFA 0062;0061 1DFA 05A3 0316 059A 0062;0061 1DFA 05A3 0316 059A 0062;0061 1DFA 05A3 0316 059A 0062;0061 1DFA 05A3 0316 059A 0062; # (a◌֣◌֚◌̖◌᷺b; a◌᷺◌֣◌̖◌֚b; a◌᷺◌֣◌̖◌֚b; a◌᷺◌֣◌̖◌֚b; a◌᷺◌֣◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT MUNAH, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05A4 0062;0061 1DFA 0316 05A4 059A 0062;0061 1DFA 0316 05A4 059A 0062;0061 1DFA 0316 05A4 059A 0062;0061 1DFA 0316 05A4 059A 0062; # (a◌֚◌̖◌᷺◌֤b; a◌᷺◌̖◌֤◌֚b; a◌᷺◌̖◌֤◌֚b; a◌᷺◌̖◌֤◌֚b; a◌᷺◌̖◌֤◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT MAHAPAKH, LATIN SMALL LETTER B
+0061 05A4 059A 0316 1DFA 0062;0061 1DFA 05A4 0316 059A 0062;0061 1DFA 05A4 0316 059A 0062;0061 1DFA 05A4 0316 059A 0062;0061 1DFA 05A4 0316 059A 0062; # (a◌֤◌֚◌̖◌᷺b; a◌᷺◌֤◌̖◌֚b; a◌᷺◌֤◌̖◌֚b; a◌᷺◌֤◌̖◌֚b; a◌᷺◌֤◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT MAHAPAKH, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05A5 0062;0061 1DFA 0316 05A5 059A 0062;0061 1DFA 0316 05A5 059A 0062;0061 1DFA 0316 05A5 059A 0062;0061 1DFA 0316 05A5 059A 0062; # (a◌֚◌̖◌᷺◌֥b; a◌᷺◌̖◌֥◌֚b; a◌᷺◌̖◌֥◌֚b; a◌᷺◌̖◌֥◌֚b; a◌᷺◌̖◌֥◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT MERKHA, LATIN SMALL LETTER B
+0061 05A5 059A 0316 1DFA 0062;0061 1DFA 05A5 0316 059A 0062;0061 1DFA 05A5 0316 059A 0062;0061 1DFA 05A5 0316 059A 0062;0061 1DFA 05A5 0316 059A 0062; # (a◌֥◌֚◌̖◌᷺b; a◌᷺◌֥◌̖◌֚b; a◌᷺◌֥◌̖◌֚b; a◌᷺◌֥◌̖◌֚b; a◌᷺◌֥◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT MERKHA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05A6 0062;0061 1DFA 0316 05A6 059A 0062;0061 1DFA 0316 05A6 059A 0062;0061 1DFA 0316 05A6 059A 0062;0061 1DFA 0316 05A6 059A 0062; # (a◌֚◌̖◌᷺◌֦b; a◌᷺◌̖◌֦◌֚b; a◌᷺◌̖◌֦◌֚b; a◌᷺◌̖◌֦◌֚b; a◌᷺◌̖◌֦◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT MERKHA KEFULA, LATIN SMALL LETTER B
+0061 05A6 059A 0316 1DFA 0062;0061 1DFA 05A6 0316 059A 0062;0061 1DFA 05A6 0316 059A 0062;0061 1DFA 05A6 0316 059A 0062;0061 1DFA 05A6 0316 059A 0062; # (a◌֦◌֚◌̖◌᷺b; a◌᷺◌֦◌̖◌֚b; a◌᷺◌֦◌̖◌֚b; a◌᷺◌֦◌̖◌֚b; a◌᷺◌֦◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT MERKHA KEFULA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05A7 0062;0061 1DFA 0316 05A7 059A 0062;0061 1DFA 0316 05A7 059A 0062;0061 1DFA 0316 05A7 059A 0062;0061 1DFA 0316 05A7 059A 0062; # (a◌֚◌̖◌᷺◌֧b; a◌᷺◌̖◌֧◌֚b; a◌᷺◌̖◌֧◌֚b; a◌᷺◌̖◌֧◌֚b; a◌᷺◌̖◌֧◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT DARGA, LATIN SMALL LETTER B
+0061 05A7 059A 0316 1DFA 0062;0061 1DFA 05A7 0316 059A 0062;0061 1DFA 05A7 0316 059A 0062;0061 1DFA 05A7 0316 059A 0062;0061 1DFA 05A7 0316 059A 0062; # (a◌֧◌֚◌̖◌᷺b; a◌᷺◌֧◌̖◌֚b; a◌᷺◌֧◌̖◌֚b; a◌᷺◌֧◌̖◌֚b; a◌᷺◌֧◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT DARGA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05A8 0062;00E0 05AE 05A8 0315 0062;0061 05AE 0300 05A8 0315 0062;00E0 05AE 05A8 0315 0062;0061 05AE 0300 05A8 0315 0062; # (a◌̕◌̀◌֮◌֨b; à◌֮◌֨◌̕b; a◌֮◌̀◌֨◌̕b; à◌֮◌֨◌̕b; a◌֮◌̀◌֨◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT QADMA, LATIN SMALL LETTER B
+0061 05A8 0315 0300 05AE 0062;0061 05AE 05A8 0300 0315 0062;0061 05AE 05A8 0300 0315 0062;0061 05AE 05A8 0300 0315 0062;0061 05AE 05A8 0300 0315 0062; # (a◌֨◌̕◌̀◌֮b; a◌֮◌֨◌̀◌̕b; a◌֮◌֨◌̀◌̕b; a◌֮◌֨◌̀◌̕b; a◌֮◌֨◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT QADMA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05A9 0062;00E0 05AE 05A9 0315 0062;0061 05AE 0300 05A9 0315 0062;00E0 05AE 05A9 0315 0062;0061 05AE 0300 05A9 0315 0062; # (a◌̕◌̀◌֮◌֩b; à◌֮◌֩◌̕b; a◌֮◌̀◌֩◌̕b; à◌֮◌֩◌̕b; a◌֮◌̀◌֩◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT TELISHA QETANA, LATIN SMALL LETTER B
+0061 05A9 0315 0300 05AE 0062;0061 05AE 05A9 0300 0315 0062;0061 05AE 05A9 0300 0315 0062;0061 05AE 05A9 0300 0315 0062;0061 05AE 05A9 0300 0315 0062; # (a◌֩◌̕◌̀◌֮b; a◌֮◌֩◌̀◌̕b; a◌֮◌֩◌̀◌̕b; a◌֮◌֩◌̀◌̕b; a◌֮◌֩◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT TELISHA QETANA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05AA 0062;0061 1DFA 0316 05AA 059A 0062;0061 1DFA 0316 05AA 059A 0062;0061 1DFA 0316 05AA 059A 0062;0061 1DFA 0316 05AA 059A 0062; # (a◌֚◌̖◌᷺◌֪b; a◌᷺◌̖◌֪◌֚b; a◌᷺◌̖◌֪◌֚b; a◌᷺◌̖◌֪◌֚b; a◌᷺◌̖◌֪◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW ACCENT YERAH BEN YOMO, LATIN SMALL LETTER B
+0061 05AA 059A 0316 1DFA 0062;0061 1DFA 05AA 0316 059A 0062;0061 1DFA 05AA 0316 059A 0062;0061 1DFA 05AA 0316 059A 0062;0061 1DFA 05AA 0316 059A 0062; # (a◌֪◌֚◌̖◌᷺b; a◌᷺◌֪◌̖◌֚b; a◌᷺◌֪◌̖◌֚b; a◌᷺◌֪◌̖◌֚b; a◌᷺◌֪◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YERAH BEN YOMO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05AB 0062;00E0 05AE 05AB 0315 0062;0061 05AE 0300 05AB 0315 0062;00E0 05AE 05AB 0315 0062;0061 05AE 0300 05AB 0315 0062; # (a◌̕◌̀◌֮◌֫b; à◌֮◌֫◌̕b; a◌֮◌̀◌֫◌̕b; à◌֮◌֫◌̕b; a◌֮◌̀◌֫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT OLE, LATIN SMALL LETTER B
+0061 05AB 0315 0300 05AE 0062;0061 05AE 05AB 0300 0315 0062;0061 05AE 05AB 0300 0315 0062;0061 05AE 05AB 0300 0315 0062;0061 05AE 05AB 0300 0315 0062; # (a◌֫◌̕◌̀◌֮b; a◌֮◌֫◌̀◌̕b; a◌֮◌֫◌̀◌̕b; a◌֮◌֫◌̀◌̕b; a◌֮◌֫◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT OLE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05AC 0062;00E0 05AE 05AC 0315 0062;0061 05AE 0300 05AC 0315 0062;00E0 05AE 05AC 0315 0062;0061 05AE 0300 05AC 0315 0062; # (a◌̕◌̀◌֮◌֬b; à◌֮◌֬◌̕b; a◌֮◌̀◌֬◌̕b; à◌֮◌֬◌̕b; a◌֮◌̀◌֬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW ACCENT ILUY, LATIN SMALL LETTER B
+0061 05AC 0315 0300 05AE 0062;0061 05AE 05AC 0300 0315 0062;0061 05AE 05AC 0300 0315 0062;0061 05AE 05AC 0300 0315 0062;0061 05AE 05AC 0300 0315 0062; # (a◌֬◌̕◌̀◌֮b; a◌֮◌֬◌̀◌̕b; a◌֮◌֬◌̀◌̕b; a◌֮◌֬◌̀◌̕b; a◌֮◌֬◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW ACCENT ILUY, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 302E 059A 0316 05AD 0062;0061 0316 059A 05AD 302E 0062;0061 0316 059A 05AD 302E 0062;0061 0316 059A 05AD 302E 0062;0061 0316 059A 05AD 302E 0062; # (a〮◌֚◌̖◌֭b; a◌̖◌֚◌֭〮b; a◌̖◌֚◌֭〮b; a◌̖◌֚◌֭〮b; a◌̖◌֚◌֭〮b; ) LATIN SMALL LETTER A, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, HEBREW ACCENT DEHI, LATIN SMALL LETTER B
+0061 05AD 302E 059A 0316 0062;0061 0316 05AD 059A 302E 0062;0061 0316 05AD 059A 302E 0062;0061 0316 05AD 059A 302E 0062;0061 0316 05AD 059A 302E 0062; # (a◌֭〮◌֚◌̖b; a◌̖◌֭◌֚〮b; a◌̖◌֭◌֚〮b; a◌̖◌֭◌֚〮b; a◌̖◌֭◌֚〮b; ) LATIN SMALL LETTER A, HEBREW ACCENT DEHI, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, LATIN SMALL LETTER B
+0061 0300 05AE 1D16D 05AE 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062; # (a◌̀◌𝅭֮◌֮b; à𝅭◌֮◌֮b; a𝅭◌֮◌֮◌̀b; à𝅭◌֮◌֮b; a𝅭◌֮◌֮◌̀b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05AE 0300 05AE 1D16D 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062; # (a◌֮◌̀◌𝅭֮b; à𝅭◌֮◌֮b; a𝅭◌֮◌֮◌̀b; à𝅭◌֮◌֮b; a𝅭◌֮◌֮◌̀b; ) LATIN SMALL LETTER A, HEBREW ACCENT ZINOR, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05AF 0062;00E0 05AE 05AF 0315 0062;0061 05AE 0300 05AF 0315 0062;00E0 05AE 05AF 0315 0062;0061 05AE 0300 05AF 0315 0062; # (a◌̕◌̀◌֮◌֯b; à◌֮◌֯◌̕b; a◌֮◌̀◌֯◌̕b; à◌֮◌֯◌̕b; a◌֮◌̀◌֯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW MARK MASORA CIRCLE, LATIN SMALL LETTER B
+0061 05AF 0315 0300 05AE 0062;0061 05AE 05AF 0300 0315 0062;0061 05AE 05AF 0300 0315 0062;0061 05AE 05AF 0300 0315 0062;0061 05AE 05AF 0300 0315 0062; # (a◌֯◌̕◌̀◌֮b; a◌֮◌֯◌̀◌̕b; a◌֮◌֯◌̀◌̕b; a◌֮◌֯◌̀◌̕b; a◌֮◌֯◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW MARK MASORA CIRCLE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B1 05B0 094D 05B0 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062; # (a◌ֱ◌ְ◌्◌ְb; a◌्◌ְ◌ְ◌ֱb; a◌्◌ְ◌ְ◌ֱb; a◌्◌ְ◌ְ◌ֱb; a◌्◌ְ◌ְ◌ֱb; ) LATIN SMALL LETTER A, HEBREW POINT HATAF SEGOL, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, HEBREW POINT SHEVA, LATIN SMALL LETTER B
+0061 05B0 05B1 05B0 094D 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062; # (a◌ְ◌ֱ◌ְ◌्b; a◌्◌ְ◌ְ◌ֱb; a◌्◌ְ◌ְ◌ֱb; a◌्◌ְ◌ְ◌ֱb; a◌्◌ְ◌ְ◌ֱb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, HEBREW POINT HATAF SEGOL, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 05B2 05B1 05B0 05B1 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062; # (a◌ֲ◌ֱ◌ְ◌ֱb; a◌ְ◌ֱ◌ֱ◌ֲb; a◌ְ◌ֱ◌ֱ◌ֲb; a◌ְ◌ֱ◌ֱ◌ֲb; a◌ְ◌ֱ◌ֱ◌ֲb; ) LATIN SMALL LETTER A, HEBREW POINT HATAF PATAH, HEBREW POINT HATAF SEGOL, HEBREW POINT SHEVA, HEBREW POINT HATAF SEGOL, LATIN SMALL LETTER B
+0061 05B1 05B2 05B1 05B0 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062; # (a◌ֱ◌ֲ◌ֱ◌ְb; a◌ְ◌ֱ◌ֱ◌ֲb; a◌ְ◌ֱ◌ֱ◌ֲb; a◌ְ◌ֱ◌ֱ◌ֲb; a◌ְ◌ֱ◌ֱ◌ֲb; ) LATIN SMALL LETTER A, HEBREW POINT HATAF SEGOL, HEBREW POINT HATAF PATAH, HEBREW POINT HATAF SEGOL, HEBREW POINT SHEVA, LATIN SMALL LETTER B
+0061 05B3 05B2 05B1 05B2 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062; # (a◌ֳ◌ֲ◌ֱ◌ֲb; a◌ֱ◌ֲ◌ֲ◌ֳb; a◌ֱ◌ֲ◌ֲ◌ֳb; a◌ֱ◌ֲ◌ֲ◌ֳb; a◌ֱ◌ֲ◌ֲ◌ֳb; ) LATIN SMALL LETTER A, HEBREW POINT HATAF QAMATS, HEBREW POINT HATAF PATAH, HEBREW POINT HATAF SEGOL, HEBREW POINT HATAF PATAH, LATIN SMALL LETTER B
+0061 05B2 05B3 05B2 05B1 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062; # (a◌ֲ◌ֳ◌ֲ◌ֱb; a◌ֱ◌ֲ◌ֲ◌ֳb; a◌ֱ◌ֲ◌ֲ◌ֳb; a◌ֱ◌ֲ◌ֲ◌ֳb; a◌ֱ◌ֲ◌ֲ◌ֳb; ) LATIN SMALL LETTER A, HEBREW POINT HATAF PATAH, HEBREW POINT HATAF QAMATS, HEBREW POINT HATAF PATAH, HEBREW POINT HATAF SEGOL, LATIN SMALL LETTER B
+0061 05B4 05B3 05B2 05B3 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062; # (a◌ִ◌ֳ◌ֲ◌ֳb; a◌ֲ◌ֳ◌ֳ◌ִb; a◌ֲ◌ֳ◌ֳ◌ִb; a◌ֲ◌ֳ◌ֳ◌ִb; a◌ֲ◌ֳ◌ֳ◌ִb; ) LATIN SMALL LETTER A, HEBREW POINT HIRIQ, HEBREW POINT HATAF QAMATS, HEBREW POINT HATAF PATAH, HEBREW POINT HATAF QAMATS, LATIN SMALL LETTER B
+0061 05B3 05B4 05B3 05B2 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062; # (a◌ֳ◌ִ◌ֳ◌ֲb; a◌ֲ◌ֳ◌ֳ◌ִb; a◌ֲ◌ֳ◌ֳ◌ִb; a◌ֲ◌ֳ◌ֳ◌ִb; a◌ֲ◌ֳ◌ֳ◌ִb; ) LATIN SMALL LETTER A, HEBREW POINT HATAF QAMATS, HEBREW POINT HIRIQ, HEBREW POINT HATAF QAMATS, HEBREW POINT HATAF PATAH, LATIN SMALL LETTER B
+0061 05B5 05B4 05B3 05B4 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062; # (a◌ֵ◌ִ◌ֳ◌ִb; a◌ֳ◌ִ◌ִ◌ֵb; a◌ֳ◌ִ◌ִ◌ֵb; a◌ֳ◌ִ◌ִ◌ֵb; a◌ֳ◌ִ◌ִ◌ֵb; ) LATIN SMALL LETTER A, HEBREW POINT TSERE, HEBREW POINT HIRIQ, HEBREW POINT HATAF QAMATS, HEBREW POINT HIRIQ, LATIN SMALL LETTER B
+0061 05B4 05B5 05B4 05B3 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062; # (a◌ִ◌ֵ◌ִ◌ֳb; a◌ֳ◌ִ◌ִ◌ֵb; a◌ֳ◌ִ◌ִ◌ֵb; a◌ֳ◌ִ◌ִ◌ֵb; a◌ֳ◌ִ◌ִ◌ֵb; ) LATIN SMALL LETTER A, HEBREW POINT HIRIQ, HEBREW POINT TSERE, HEBREW POINT HIRIQ, HEBREW POINT HATAF QAMATS, LATIN SMALL LETTER B
+0061 05B6 05B5 05B4 05B5 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062; # (a◌ֶ◌ֵ◌ִ◌ֵb; a◌ִ◌ֵ◌ֵ◌ֶb; a◌ִ◌ֵ◌ֵ◌ֶb; a◌ִ◌ֵ◌ֵ◌ֶb; a◌ִ◌ֵ◌ֵ◌ֶb; ) LATIN SMALL LETTER A, HEBREW POINT SEGOL, HEBREW POINT TSERE, HEBREW POINT HIRIQ, HEBREW POINT TSERE, LATIN SMALL LETTER B
+0061 05B5 05B6 05B5 05B4 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062; # (a◌ֵ◌ֶ◌ֵ◌ִb; a◌ִ◌ֵ◌ֵ◌ֶb; a◌ִ◌ֵ◌ֵ◌ֶb; a◌ִ◌ֵ◌ֵ◌ֶb; a◌ִ◌ֵ◌ֵ◌ֶb; ) LATIN SMALL LETTER A, HEBREW POINT TSERE, HEBREW POINT SEGOL, HEBREW POINT TSERE, HEBREW POINT HIRIQ, LATIN SMALL LETTER B
+0061 05B7 05B6 05B5 05B6 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062; # (a◌ַ◌ֶ◌ֵ◌ֶb; a◌ֵ◌ֶ◌ֶ◌ַb; a◌ֵ◌ֶ◌ֶ◌ַb; a◌ֵ◌ֶ◌ֶ◌ַb; a◌ֵ◌ֶ◌ֶ◌ַb; ) LATIN SMALL LETTER A, HEBREW POINT PATAH, HEBREW POINT SEGOL, HEBREW POINT TSERE, HEBREW POINT SEGOL, LATIN SMALL LETTER B
+0061 05B6 05B7 05B6 05B5 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062; # (a◌ֶ◌ַ◌ֶ◌ֵb; a◌ֵ◌ֶ◌ֶ◌ַb; a◌ֵ◌ֶ◌ֶ◌ַb; a◌ֵ◌ֶ◌ֶ◌ַb; a◌ֵ◌ֶ◌ֶ◌ַb; ) LATIN SMALL LETTER A, HEBREW POINT SEGOL, HEBREW POINT PATAH, HEBREW POINT SEGOL, HEBREW POINT TSERE, LATIN SMALL LETTER B
+0061 05B8 05B7 05B6 05B7 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062; # (a◌ָ◌ַ◌ֶ◌ַb; a◌ֶ◌ַ◌ַ◌ָb; a◌ֶ◌ַ◌ַ◌ָb; a◌ֶ◌ַ◌ַ◌ָb; a◌ֶ◌ַ◌ַ◌ָb; ) LATIN SMALL LETTER A, HEBREW POINT QAMATS, HEBREW POINT PATAH, HEBREW POINT SEGOL, HEBREW POINT PATAH, LATIN SMALL LETTER B
+0061 05B7 05B8 05B7 05B6 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062; # (a◌ַ◌ָ◌ַ◌ֶb; a◌ֶ◌ַ◌ַ◌ָb; a◌ֶ◌ַ◌ַ◌ָb; a◌ֶ◌ַ◌ַ◌ָb; a◌ֶ◌ַ◌ַ◌ָb; ) LATIN SMALL LETTER A, HEBREW POINT PATAH, HEBREW POINT QAMATS, HEBREW POINT PATAH, HEBREW POINT SEGOL, LATIN SMALL LETTER B
+0061 05B9 05B8 05B7 05B8 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062; # (a◌ֹ◌ָ◌ַ◌ָb; a◌ַ◌ָ◌ָ◌ֹb; a◌ַ◌ָ◌ָ◌ֹb; a◌ַ◌ָ◌ָ◌ֹb; a◌ַ◌ָ◌ָ◌ֹb; ) LATIN SMALL LETTER A, HEBREW POINT HOLAM, HEBREW POINT QAMATS, HEBREW POINT PATAH, HEBREW POINT QAMATS, LATIN SMALL LETTER B
+0061 05B8 05B9 05B8 05B7 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062; # (a◌ָ◌ֹ◌ָ◌ַb; a◌ַ◌ָ◌ָ◌ֹb; a◌ַ◌ָ◌ָ◌ֹb; a◌ַ◌ָ◌ָ◌ֹb; a◌ַ◌ָ◌ָ◌ֹb; ) LATIN SMALL LETTER A, HEBREW POINT QAMATS, HEBREW POINT HOLAM, HEBREW POINT QAMATS, HEBREW POINT PATAH, LATIN SMALL LETTER B
+0061 05BB 05B9 05B8 05B9 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062; # (a◌ֻ◌ֹ◌ָ◌ֹb; a◌ָ◌ֹ◌ֹ◌ֻb; a◌ָ◌ֹ◌ֹ◌ֻb; a◌ָ◌ֹ◌ֹ◌ֻb; a◌ָ◌ֹ◌ֹ◌ֻb; ) LATIN SMALL LETTER A, HEBREW POINT QUBUTS, HEBREW POINT HOLAM, HEBREW POINT QAMATS, HEBREW POINT HOLAM, LATIN SMALL LETTER B
+0061 05B9 05BB 05B9 05B8 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062; # (a◌ֹ◌ֻ◌ֹ◌ָb; a◌ָ◌ֹ◌ֹ◌ֻb; a◌ָ◌ֹ◌ֹ◌ֻb; a◌ָ◌ֹ◌ֹ◌ֻb; a◌ָ◌ֹ◌ֹ◌ֻb; ) LATIN SMALL LETTER A, HEBREW POINT HOLAM, HEBREW POINT QUBUTS, HEBREW POINT HOLAM, HEBREW POINT QAMATS, LATIN SMALL LETTER B
+0061 05BB 05B9 05B8 05BA 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062; # (a◌ֻ◌ֹ◌ָ◌ֺb; a◌ָ◌ֹ◌ֺ◌ֻb; a◌ָ◌ֹ◌ֺ◌ֻb; a◌ָ◌ֹ◌ֺ◌ֻb; a◌ָ◌ֹ◌ֺ◌ֻb; ) LATIN SMALL LETTER A, HEBREW POINT QUBUTS, HEBREW POINT HOLAM, HEBREW POINT QAMATS, HEBREW POINT HOLAM HASER FOR VAV, LATIN SMALL LETTER B
+0061 05BA 05BB 05B9 05B8 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062; # (a◌ֺ◌ֻ◌ֹ◌ָb; a◌ָ◌ֺ◌ֹ◌ֻb; a◌ָ◌ֺ◌ֹ◌ֻb; a◌ָ◌ֺ◌ֹ◌ֻb; a◌ָ◌ֺ◌ֹ◌ֻb; ) LATIN SMALL LETTER A, HEBREW POINT HOLAM HASER FOR VAV, HEBREW POINT QUBUTS, HEBREW POINT HOLAM, HEBREW POINT QAMATS, LATIN SMALL LETTER B
+0061 05BC 05BB 05B9 05BB 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062; # (a◌ּ◌ֻ◌ֹ◌ֻb; a◌ֹ◌ֻ◌ֻ◌ּb; a◌ֹ◌ֻ◌ֻ◌ּb; a◌ֹ◌ֻ◌ֻ◌ּb; a◌ֹ◌ֻ◌ֻ◌ּb; ) LATIN SMALL LETTER A, HEBREW POINT DAGESH OR MAPIQ, HEBREW POINT QUBUTS, HEBREW POINT HOLAM, HEBREW POINT QUBUTS, LATIN SMALL LETTER B
+0061 05BB 05BC 05BB 05B9 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062; # (a◌ֻ◌ּ◌ֻ◌ֹb; a◌ֹ◌ֻ◌ֻ◌ּb; a◌ֹ◌ֻ◌ֻ◌ּb; a◌ֹ◌ֻ◌ֻ◌ּb; a◌ֹ◌ֻ◌ֻ◌ּb; ) LATIN SMALL LETTER A, HEBREW POINT QUBUTS, HEBREW POINT DAGESH OR MAPIQ, HEBREW POINT QUBUTS, HEBREW POINT HOLAM, LATIN SMALL LETTER B
+0061 05BD 05BC 05BB 05BC 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062; # (a◌ֽ◌ּ◌ֻ◌ּb; a◌ֻ◌ּ◌ּ◌ֽb; a◌ֻ◌ּ◌ּ◌ֽb; a◌ֻ◌ּ◌ּ◌ֽb; a◌ֻ◌ּ◌ּ◌ֽb; ) LATIN SMALL LETTER A, HEBREW POINT METEG, HEBREW POINT DAGESH OR MAPIQ, HEBREW POINT QUBUTS, HEBREW POINT DAGESH OR MAPIQ, LATIN SMALL LETTER B
+0061 05BC 05BD 05BC 05BB 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062; # (a◌ּ◌ֽ◌ּ◌ֻb; a◌ֻ◌ּ◌ּ◌ֽb; a◌ֻ◌ּ◌ּ◌ֽb; a◌ֻ◌ּ◌ּ◌ֽb; a◌ֻ◌ּ◌ּ◌ֽb; ) LATIN SMALL LETTER A, HEBREW POINT DAGESH OR MAPIQ, HEBREW POINT METEG, HEBREW POINT DAGESH OR MAPIQ, HEBREW POINT QUBUTS, LATIN SMALL LETTER B
+0061 05BF 05BD 05BC 05BD 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062; # (a◌ֿ◌ֽ◌ּ◌ֽb; a◌ּ◌ֽ◌ֽ◌ֿb; a◌ּ◌ֽ◌ֽ◌ֿb; a◌ּ◌ֽ◌ֽ◌ֿb; a◌ּ◌ֽ◌ֽ◌ֿb; ) LATIN SMALL LETTER A, HEBREW POINT RAFE, HEBREW POINT METEG, HEBREW POINT DAGESH OR MAPIQ, HEBREW POINT METEG, LATIN SMALL LETTER B
+0061 05BD 05BF 05BD 05BC 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062; # (a◌ֽ◌ֿ◌ֽ◌ּb; a◌ּ◌ֽ◌ֽ◌ֿb; a◌ּ◌ֽ◌ֽ◌ֿb; a◌ּ◌ֽ◌ֽ◌ֿb; a◌ּ◌ֽ◌ֽ◌ֿb; ) LATIN SMALL LETTER A, HEBREW POINT METEG, HEBREW POINT RAFE, HEBREW POINT METEG, HEBREW POINT DAGESH OR MAPIQ, LATIN SMALL LETTER B
+0061 05C1 05BF 05BD 05BF 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062; # (a◌ׁ◌ֿ◌ֽ◌ֿb; a◌ֽ◌ֿ◌ֿ◌ׁb; a◌ֽ◌ֿ◌ֿ◌ׁb; a◌ֽ◌ֿ◌ֿ◌ׁb; a◌ֽ◌ֿ◌ֿ◌ׁb; ) LATIN SMALL LETTER A, HEBREW POINT SHIN DOT, HEBREW POINT RAFE, HEBREW POINT METEG, HEBREW POINT RAFE, LATIN SMALL LETTER B
+0061 05BF 05C1 05BF 05BD 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062; # (a◌ֿ◌ׁ◌ֿ◌ֽb; a◌ֽ◌ֿ◌ֿ◌ׁb; a◌ֽ◌ֿ◌ֿ◌ׁb; a◌ֽ◌ֿ◌ֿ◌ׁb; a◌ֽ◌ֿ◌ֿ◌ׁb; ) LATIN SMALL LETTER A, HEBREW POINT RAFE, HEBREW POINT SHIN DOT, HEBREW POINT RAFE, HEBREW POINT METEG, LATIN SMALL LETTER B
+0061 05C2 05C1 05BF 05C1 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062; # (a◌ׂ◌ׁ◌ֿ◌ׁb; a◌ֿ◌ׁ◌ׁ◌ׂb; a◌ֿ◌ׁ◌ׁ◌ׂb; a◌ֿ◌ׁ◌ׁ◌ׂb; a◌ֿ◌ׁ◌ׁ◌ׂb; ) LATIN SMALL LETTER A, HEBREW POINT SIN DOT, HEBREW POINT SHIN DOT, HEBREW POINT RAFE, HEBREW POINT SHIN DOT, LATIN SMALL LETTER B
+0061 05C1 05C2 05C1 05BF 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062; # (a◌ׁ◌ׂ◌ׁ◌ֿb; a◌ֿ◌ׁ◌ׁ◌ׂb; a◌ֿ◌ׁ◌ׁ◌ׂb; a◌ֿ◌ׁ◌ׁ◌ׂb; a◌ֿ◌ׁ◌ׁ◌ׂb; ) LATIN SMALL LETTER A, HEBREW POINT SHIN DOT, HEBREW POINT SIN DOT, HEBREW POINT SHIN DOT, HEBREW POINT RAFE, LATIN SMALL LETTER B
+0061 FB1E 05C2 05C1 05C2 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062; # (a◌ﬞ◌ׂ◌ׁ◌ׂb; a◌ׁ◌ׂ◌ׂ◌ﬞb; a◌ׁ◌ׂ◌ׂ◌ﬞb; a◌ׁ◌ׂ◌ׂ◌ﬞb; a◌ׁ◌ׂ◌ׂ◌ﬞb; ) LATIN SMALL LETTER A, HEBREW POINT JUDEO-SPANISH VARIKA, HEBREW POINT SIN DOT, HEBREW POINT SHIN DOT, HEBREW POINT SIN DOT, LATIN SMALL LETTER B
+0061 05C2 FB1E 05C2 05C1 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062; # (a◌ׂ◌ﬞ◌ׂ◌ׁb; a◌ׁ◌ׂ◌ׂ◌ﬞb; a◌ׁ◌ׂ◌ׂ◌ﬞb; a◌ׁ◌ׂ◌ׂ◌ﬞb; a◌ׁ◌ׂ◌ׂ◌ﬞb; ) LATIN SMALL LETTER A, HEBREW POINT SIN DOT, HEBREW POINT JUDEO-SPANISH VARIKA, HEBREW POINT SIN DOT, HEBREW POINT SHIN DOT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 05C4 0062;00E0 05AE 05C4 0315 0062;0061 05AE 0300 05C4 0315 0062;00E0 05AE 05C4 0315 0062;0061 05AE 0300 05C4 0315 0062; # (a◌̕◌̀◌֮◌ׄb; à◌֮◌ׄ◌̕b; a◌֮◌̀◌ׄ◌̕b; à◌֮◌ׄ◌̕b; a◌֮◌̀◌ׄ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HEBREW MARK UPPER DOT, LATIN SMALL LETTER B
+0061 05C4 0315 0300 05AE 0062;0061 05AE 05C4 0300 0315 0062;0061 05AE 05C4 0300 0315 0062;0061 05AE 05C4 0300 0315 0062;0061 05AE 05C4 0300 0315 0062; # (a◌ׄ◌̕◌̀◌֮b; a◌֮◌ׄ◌̀◌̕b; a◌֮◌ׄ◌̀◌̕b; a◌֮◌ׄ◌̀◌̕b; a◌֮◌ׄ◌̀◌̕b; ) LATIN SMALL LETTER A, HEBREW MARK UPPER DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 05C5 0062;0061 1DFA 0316 05C5 059A 0062;0061 1DFA 0316 05C5 059A 0062;0061 1DFA 0316 05C5 059A 0062;0061 1DFA 0316 05C5 059A 0062; # (a◌֚◌̖◌᷺◌ׅb; a◌᷺◌̖◌ׅ◌֚b; a◌᷺◌̖◌ׅ◌֚b; a◌᷺◌̖◌ׅ◌֚b; a◌᷺◌̖◌ׅ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, HEBREW MARK LOWER DOT, LATIN SMALL LETTER B
+0061 05C5 059A 0316 1DFA 0062;0061 1DFA 05C5 0316 059A 0062;0061 1DFA 05C5 0316 059A 0062;0061 1DFA 05C5 0316 059A 0062;0061 1DFA 05C5 0316 059A 0062; # (a◌ׅ◌֚◌̖◌᷺b; a◌᷺◌ׅ◌̖◌֚b; a◌᷺◌ׅ◌̖◌֚b; a◌᷺◌ׅ◌̖◌֚b; a◌᷺◌ׅ◌̖◌֚b; ) LATIN SMALL LETTER A, HEBREW MARK LOWER DOT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 05B9 05B8 05B7 05C7 0062;0061 05B7 05B8 05C7 05B9 0062;0061 05B7 05B8 05C7 05B9 0062;0061 05B7 05B8 05C7 05B9 0062;0061 05B7 05B8 05C7 05B9 0062; # (a◌ֹ◌ָ◌ַ◌ׇb; a◌ַ◌ָ◌ׇ◌ֹb; a◌ַ◌ָ◌ׇ◌ֹb; a◌ַ◌ָ◌ׇ◌ֹb; a◌ַ◌ָ◌ׇ◌ֹb; ) LATIN SMALL LETTER A, HEBREW POINT HOLAM, HEBREW POINT QAMATS, HEBREW POINT PATAH, HEBREW POINT QAMATS QATAN, LATIN SMALL LETTER B
+0061 05C7 05B9 05B8 05B7 0062;0061 05B7 05C7 05B8 05B9 0062;0061 05B7 05C7 05B8 05B9 0062;0061 05B7 05C7 05B8 05B9 0062;0061 05B7 05C7 05B8 05B9 0062; # (a◌ׇ◌ֹ◌ָ◌ַb; a◌ַ◌ׇ◌ָ◌ֹb; a◌ַ◌ׇ◌ָ◌ֹb; a◌ַ◌ׇ◌ָ◌ֹb; a◌ַ◌ׇ◌ָ◌ֹb; ) LATIN SMALL LETTER A, HEBREW POINT QAMATS QATAN, HEBREW POINT HOLAM, HEBREW POINT QAMATS, HEBREW POINT PATAH, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0610 0062;00E0 05AE 0610 0315 0062;0061 05AE 0300 0610 0315 0062;00E0 05AE 0610 0315 0062;0061 05AE 0300 0610 0315 0062; # (a◌̕◌̀◌֮◌ؐb; à◌֮◌ؐ◌̕b; a◌֮◌̀◌ؐ◌̕b; à◌֮◌ؐ◌̕b; a◌֮◌̀◌ؐ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM, LATIN SMALL LETTER B
+0061 0610 0315 0300 05AE 0062;0061 05AE 0610 0300 0315 0062;0061 05AE 0610 0300 0315 0062;0061 05AE 0610 0300 0315 0062;0061 05AE 0610 0300 0315 0062; # (a◌ؐ◌̕◌̀◌֮b; a◌֮◌ؐ◌̀◌̕b; a◌֮◌ؐ◌̀◌̕b; a◌֮◌ؐ◌̀◌̕b; a◌֮◌ؐ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0611 0062;00E0 05AE 0611 0315 0062;0061 05AE 0300 0611 0315 0062;00E0 05AE 0611 0315 0062;0061 05AE 0300 0611 0315 0062; # (a◌̕◌̀◌֮◌ؑb; à◌֮◌ؑ◌̕b; a◌֮◌̀◌ؑ◌̕b; à◌֮◌ؑ◌̕b; a◌֮◌̀◌ؑ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SIGN ALAYHE ASSALLAM, LATIN SMALL LETTER B
+0061 0611 0315 0300 05AE 0062;0061 05AE 0611 0300 0315 0062;0061 05AE 0611 0300 0315 0062;0061 05AE 0611 0300 0315 0062;0061 05AE 0611 0300 0315 0062; # (a◌ؑ◌̕◌̀◌֮b; a◌֮◌ؑ◌̀◌̕b; a◌֮◌ؑ◌̀◌̕b; a◌֮◌ؑ◌̀◌̕b; a◌֮◌ؑ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SIGN ALAYHE ASSALLAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0612 0062;00E0 05AE 0612 0315 0062;0061 05AE 0300 0612 0315 0062;00E0 05AE 0612 0315 0062;0061 05AE 0300 0612 0315 0062; # (a◌̕◌̀◌֮◌ؒb; à◌֮◌ؒ◌̕b; a◌֮◌̀◌ؒ◌̕b; à◌֮◌ؒ◌̕b; a◌֮◌̀◌ؒ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SIGN RAHMATULLAH ALAYHE, LATIN SMALL LETTER B
+0061 0612 0315 0300 05AE 0062;0061 05AE 0612 0300 0315 0062;0061 05AE 0612 0300 0315 0062;0061 05AE 0612 0300 0315 0062;0061 05AE 0612 0300 0315 0062; # (a◌ؒ◌̕◌̀◌֮b; a◌֮◌ؒ◌̀◌̕b; a◌֮◌ؒ◌̀◌̕b; a◌֮◌ؒ◌̀◌̕b; a◌֮◌ؒ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SIGN RAHMATULLAH ALAYHE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0613 0062;00E0 05AE 0613 0315 0062;0061 05AE 0300 0613 0315 0062;00E0 05AE 0613 0315 0062;0061 05AE 0300 0613 0315 0062; # (a◌̕◌̀◌֮◌ؓb; à◌֮◌ؓ◌̕b; a◌֮◌̀◌ؓ◌̕b; à◌֮◌ؓ◌̕b; a◌֮◌̀◌ؓ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SIGN RADI ALLAHOU ANHU, LATIN SMALL LETTER B
+0061 0613 0315 0300 05AE 0062;0061 05AE 0613 0300 0315 0062;0061 05AE 0613 0300 0315 0062;0061 05AE 0613 0300 0315 0062;0061 05AE 0613 0300 0315 0062; # (a◌ؓ◌̕◌̀◌֮b; a◌֮◌ؓ◌̀◌̕b; a◌֮◌ؓ◌̀◌̕b; a◌֮◌ؓ◌̀◌̕b; a◌֮◌ؓ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SIGN RADI ALLAHOU ANHU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0614 0062;00E0 05AE 0614 0315 0062;0061 05AE 0300 0614 0315 0062;00E0 05AE 0614 0315 0062;0061 05AE 0300 0614 0315 0062; # (a◌̕◌̀◌֮◌ؔb; à◌֮◌ؔ◌̕b; a◌֮◌̀◌ؔ◌̕b; à◌֮◌ؔ◌̕b; a◌֮◌̀◌ؔ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SIGN TAKHALLUS, LATIN SMALL LETTER B
+0061 0614 0315 0300 05AE 0062;0061 05AE 0614 0300 0315 0062;0061 05AE 0614 0300 0315 0062;0061 05AE 0614 0300 0315 0062;0061 05AE 0614 0300 0315 0062; # (a◌ؔ◌̕◌̀◌֮b; a◌֮◌ؔ◌̀◌̕b; a◌֮◌ؔ◌̀◌̕b; a◌֮◌ؔ◌̀◌̕b; a◌֮◌ؔ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SIGN TAKHALLUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0615 0062;00E0 05AE 0615 0315 0062;0061 05AE 0300 0615 0315 0062;00E0 05AE 0615 0315 0062;0061 05AE 0300 0615 0315 0062; # (a◌̕◌̀◌֮◌ؕb; à◌֮◌ؕ◌̕b; a◌֮◌̀◌ؕ◌̕b; à◌֮◌ؕ◌̕b; a◌֮◌̀◌ؕ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH TAH, LATIN SMALL LETTER B
+0061 0615 0315 0300 05AE 0062;0061 05AE 0615 0300 0315 0062;0061 05AE 0615 0300 0315 0062;0061 05AE 0615 0300 0315 0062;0061 05AE 0615 0300 0315 0062; # (a◌ؕ◌̕◌̀◌֮b; a◌֮◌ؕ◌̀◌̕b; a◌֮◌ؕ◌̀◌̕b; a◌֮◌ؕ◌̀◌̕b; a◌֮◌ؕ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH TAH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0616 0062;00E0 05AE 0616 0315 0062;0061 05AE 0300 0616 0315 0062;00E0 05AE 0616 0315 0062;0061 05AE 0300 0616 0315 0062; # (a◌̕◌̀◌֮◌ؖb; à◌֮◌ؖ◌̕b; a◌֮◌̀◌ؖ◌̕b; à◌֮◌ؖ◌̕b; a◌֮◌̀◌ؖ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH, LATIN SMALL LETTER B
+0061 0616 0315 0300 05AE 0062;0061 05AE 0616 0300 0315 0062;0061 05AE 0616 0300 0315 0062;0061 05AE 0616 0300 0315 0062;0061 05AE 0616 0300 0315 0062; # (a◌ؖ◌̕◌̀◌֮b; a◌֮◌ؖ◌̀◌̕b; a◌֮◌ؖ◌̀◌̕b; a◌֮◌ؖ◌̀◌̕b; a◌֮◌ؖ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0617 0062;00E0 05AE 0617 0315 0062;0061 05AE 0300 0617 0315 0062;00E0 05AE 0617 0315 0062;0061 05AE 0300 0617 0315 0062; # (a◌̕◌̀◌֮◌ؗb; à◌֮◌ؗ◌̕b; a◌֮◌̀◌ؗ◌̕b; à◌֮◌ؗ◌̕b; a◌֮◌̀◌ؗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH ZAIN, LATIN SMALL LETTER B
+0061 0617 0315 0300 05AE 0062;0061 05AE 0617 0300 0315 0062;0061 05AE 0617 0300 0315 0062;0061 05AE 0617 0300 0315 0062;0061 05AE 0617 0300 0315 0062; # (a◌ؗ◌̕◌̀◌֮b; a◌֮◌ؗ◌̀◌̕b; a◌֮◌ؗ◌̀◌̕b; a◌֮◌ؗ◌̀◌̕b; a◌֮◌ؗ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH ZAIN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0619 0618 064D 0618 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062; # (a◌ؙ◌ؘ◌ٍ◌ؘb; a◌ٍ◌ؘ◌ؘ◌ؙb; a◌ٍ◌ؘ◌ؘ◌ؙb; a◌ٍ◌ؘ◌ؘ◌ؙb; a◌ٍ◌ؘ◌ؘ◌ؙb; ) LATIN SMALL LETTER A, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, ARABIC KASRATAN, ARABIC SMALL FATHA, LATIN SMALL LETTER B
+0061 0618 0619 0618 064D 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062; # (a◌ؘ◌ؙ◌ؘ◌ٍb; a◌ٍ◌ؘ◌ؘ◌ؙb; a◌ٍ◌ؘ◌ؘ◌ؙb; a◌ٍ◌ؘ◌ؘ◌ؙb; a◌ٍ◌ؘ◌ؘ◌ؙb; ) LATIN SMALL LETTER A, ARABIC SMALL FATHA, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, ARABIC KASRATAN, LATIN SMALL LETTER B
+0061 061A 0619 0618 0619 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062; # (a◌ؚ◌ؙ◌ؘ◌ؙb; a◌ؘ◌ؙ◌ؙ◌ؚb; a◌ؘ◌ؙ◌ؙ◌ؚb; a◌ؘ◌ؙ◌ؙ◌ؚb; a◌ؘ◌ؙ◌ؙ◌ؚb; ) LATIN SMALL LETTER A, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, ARABIC SMALL DAMMA, LATIN SMALL LETTER B
+0061 0619 061A 0619 0618 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062; # (a◌ؙ◌ؚ◌ؙ◌ؘb; a◌ؘ◌ؙ◌ؙ◌ؚb; a◌ؘ◌ؙ◌ؙ◌ؚb; a◌ؘ◌ؙ◌ؙ◌ؚb; a◌ؘ◌ؙ◌ؙ◌ؚb; ) LATIN SMALL LETTER A, ARABIC SMALL DAMMA, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, LATIN SMALL LETTER B
+0061 0651 061A 0619 061A 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062; # (a◌ّ◌ؚ◌ؙ◌ؚb; a◌ؙ◌ؚ◌ؚ◌ّb; a◌ؙ◌ؚ◌ؚ◌ّb; a◌ؙ◌ؚ◌ؚ◌ّb; a◌ؙ◌ؚ◌ؚ◌ّb; ) LATIN SMALL LETTER A, ARABIC SHADDA, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, ARABIC SMALL KASRA, LATIN SMALL LETTER B
+0061 061A 0651 061A 0619 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062; # (a◌ؚ◌ّ◌ؚ◌ؙb; a◌ؙ◌ؚ◌ؚ◌ّb; a◌ؙ◌ؚ◌ؚ◌ّb; a◌ؙ◌ؚ◌ؚ◌ّb; a◌ؙ◌ؚ◌ؚ◌ّb; ) LATIN SMALL LETTER A, ARABIC SMALL KASRA, ARABIC SHADDA, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, LATIN SMALL LETTER B
+0061 064C 064B FB1E 064B 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062; # (a◌ٌ◌ً◌ﬞ◌ًb; a◌ﬞ◌ً◌ً◌ٌb; a◌ﬞ◌ً◌ً◌ٌb; a◌ﬞ◌ً◌ً◌ٌb; a◌ﬞ◌ً◌ً◌ٌb; ) LATIN SMALL LETTER A, ARABIC DAMMATAN, ARABIC FATHATAN, HEBREW POINT JUDEO-SPANISH VARIKA, ARABIC FATHATAN, LATIN SMALL LETTER B
+0061 064B 064C 064B FB1E 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062; # (a◌ً◌ٌ◌ً◌ﬞb; a◌ﬞ◌ً◌ً◌ٌb; a◌ﬞ◌ً◌ً◌ٌb; a◌ﬞ◌ً◌ً◌ٌb; a◌ﬞ◌ً◌ً◌ٌb; ) LATIN SMALL LETTER A, ARABIC FATHATAN, ARABIC DAMMATAN, ARABIC FATHATAN, HEBREW POINT JUDEO-SPANISH VARIKA, LATIN SMALL LETTER B
+0061 064D 064C 064B 064C 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062; # (a◌ٍ◌ٌ◌ً◌ٌb; a◌ً◌ٌ◌ٌ◌ٍb; a◌ً◌ٌ◌ٌ◌ٍb; a◌ً◌ٌ◌ٌ◌ٍb; a◌ً◌ٌ◌ٌ◌ٍb; ) LATIN SMALL LETTER A, ARABIC KASRATAN, ARABIC DAMMATAN, ARABIC FATHATAN, ARABIC DAMMATAN, LATIN SMALL LETTER B
+0061 064C 064D 064C 064B 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062; # (a◌ٌ◌ٍ◌ٌ◌ًb; a◌ً◌ٌ◌ٌ◌ٍb; a◌ً◌ٌ◌ٌ◌ٍb; a◌ً◌ٌ◌ٌ◌ٍb; a◌ً◌ٌ◌ٌ◌ٍb; ) LATIN SMALL LETTER A, ARABIC DAMMATAN, ARABIC KASRATAN, ARABIC DAMMATAN, ARABIC FATHATAN, LATIN SMALL LETTER B
+0061 0618 064D 064C 064D 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062; # (a◌ؘ◌ٍ◌ٌ◌ٍb; a◌ٌ◌ٍ◌ٍ◌ؘb; a◌ٌ◌ٍ◌ٍ◌ؘb; a◌ٌ◌ٍ◌ٍ◌ؘb; a◌ٌ◌ٍ◌ٍ◌ؘb; ) LATIN SMALL LETTER A, ARABIC SMALL FATHA, ARABIC KASRATAN, ARABIC DAMMATAN, ARABIC KASRATAN, LATIN SMALL LETTER B
+0061 064D 0618 064D 064C 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062; # (a◌ٍ◌ؘ◌ٍ◌ٌb; a◌ٌ◌ٍ◌ٍ◌ؘb; a◌ٌ◌ٍ◌ٍ◌ؘb; a◌ٌ◌ٍ◌ٍ◌ؘb; a◌ٌ◌ٍ◌ٍ◌ؘb; ) LATIN SMALL LETTER A, ARABIC KASRATAN, ARABIC SMALL FATHA, ARABIC KASRATAN, ARABIC DAMMATAN, LATIN SMALL LETTER B
+0061 0619 0618 064D 064E 0062;0061 064D 0618 064E 0619 0062;0061 064D 0618 064E 0619 0062;0061 064D 0618 064E 0619 0062;0061 064D 0618 064E 0619 0062; # (a◌ؙ◌ؘ◌ٍ◌َb; a◌ٍ◌ؘ◌َ◌ؙb; a◌ٍ◌ؘ◌َ◌ؙb; a◌ٍ◌ؘ◌َ◌ؙb; a◌ٍ◌ؘ◌َ◌ؙb; ) LATIN SMALL LETTER A, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, ARABIC KASRATAN, ARABIC FATHA, LATIN SMALL LETTER B
+0061 064E 0619 0618 064D 0062;0061 064D 064E 0618 0619 0062;0061 064D 064E 0618 0619 0062;0061 064D 064E 0618 0619 0062;0061 064D 064E 0618 0619 0062; # (a◌َ◌ؙ◌ؘ◌ٍb; a◌ٍ◌َ◌ؘ◌ؙb; a◌ٍ◌َ◌ؘ◌ؙb; a◌ٍ◌َ◌ؘ◌ؙb; a◌ٍ◌َ◌ؘ◌ؙb; ) LATIN SMALL LETTER A, ARABIC FATHA, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, ARABIC KASRATAN, LATIN SMALL LETTER B
+0061 061A 0619 0618 064F 0062;0061 0618 0619 064F 061A 0062;0061 0618 0619 064F 061A 0062;0061 0618 0619 064F 061A 0062;0061 0618 0619 064F 061A 0062; # (a◌ؚ◌ؙ◌ؘ◌ُb; a◌ؘ◌ؙ◌ُ◌ؚb; a◌ؘ◌ؙ◌ُ◌ؚb; a◌ؘ◌ؙ◌ُ◌ؚb; a◌ؘ◌ؙ◌ُ◌ؚb; ) LATIN SMALL LETTER A, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, ARABIC DAMMA, LATIN SMALL LETTER B
+0061 064F 061A 0619 0618 0062;0061 0618 064F 0619 061A 0062;0061 0618 064F 0619 061A 0062;0061 0618 064F 0619 061A 0062;0061 0618 064F 0619 061A 0062; # (a◌ُ◌ؚ◌ؙ◌ؘb; a◌ؘ◌ُ◌ؙ◌ؚb; a◌ؘ◌ُ◌ؙ◌ؚb; a◌ؘ◌ُ◌ؙ◌ؚb; a◌ؘ◌ُ◌ؙ◌ؚb; ) LATIN SMALL LETTER A, ARABIC DAMMA, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, ARABIC SMALL FATHA, LATIN SMALL LETTER B
+0061 0651 061A 0619 0650 0062;0061 0619 061A 0650 0651 0062;0061 0619 061A 0650 0651 0062;0061 0619 061A 0650 0651 0062;0061 0619 061A 0650 0651 0062; # (a◌ّ◌ؚ◌ؙ◌ِb; a◌ؙ◌ؚ◌ِ◌ّb; a◌ؙ◌ؚ◌ِ◌ّb; a◌ؙ◌ؚ◌ِ◌ّb; a◌ؙ◌ؚ◌ِ◌ّb; ) LATIN SMALL LETTER A, ARABIC SHADDA, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, ARABIC KASRA, LATIN SMALL LETTER B
+0061 0650 0651 061A 0619 0062;0061 0619 0650 061A 0651 0062;0061 0619 0650 061A 0651 0062;0061 0619 0650 061A 0651 0062;0061 0619 0650 061A 0651 0062; # (a◌ِ◌ّ◌ؚ◌ؙb; a◌ؙ◌ِ◌ؚ◌ّb; a◌ؙ◌ِ◌ؚ◌ّb; a◌ؙ◌ِ◌ؚ◌ّb; a◌ؙ◌ِ◌ؚ◌ّb; ) LATIN SMALL LETTER A, ARABIC KASRA, ARABIC SHADDA, ARABIC SMALL KASRA, ARABIC SMALL DAMMA, LATIN SMALL LETTER B
+0061 0652 0651 061A 0651 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062; # (a◌ْ◌ّ◌ؚ◌ّb; a◌ؚ◌ّ◌ّ◌ْb; a◌ؚ◌ّ◌ّ◌ْb; a◌ؚ◌ّ◌ّ◌ْb; a◌ؚ◌ّ◌ّ◌ْb; ) LATIN SMALL LETTER A, ARABIC SUKUN, ARABIC SHADDA, ARABIC SMALL KASRA, ARABIC SHADDA, LATIN SMALL LETTER B
+0061 0651 0652 0651 061A 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062; # (a◌ّ◌ْ◌ّ◌ؚb; a◌ؚ◌ّ◌ّ◌ْb; a◌ؚ◌ّ◌ّ◌ْb; a◌ؚ◌ّ◌ّ◌ْb; a◌ؚ◌ّ◌ّ◌ْb; ) LATIN SMALL LETTER A, ARABIC SHADDA, ARABIC SUKUN, ARABIC SHADDA, ARABIC SMALL KASRA, LATIN SMALL LETTER B
+0061 0670 0652 0651 0652 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062; # (a◌ٰ◌ْ◌ّ◌ْb; a◌ّ◌ْ◌ْ◌ٰb; a◌ّ◌ْ◌ْ◌ٰb; a◌ّ◌ْ◌ْ◌ٰb; a◌ّ◌ْ◌ْ◌ٰb; ) LATIN SMALL LETTER A, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC SUKUN, ARABIC SHADDA, ARABIC SUKUN, LATIN SMALL LETTER B
+0061 0652 0670 0652 0651 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062; # (a◌ْ◌ٰ◌ْ◌ّb; a◌ّ◌ْ◌ْ◌ٰb; a◌ّ◌ْ◌ْ◌ٰb; a◌ّ◌ْ◌ْ◌ٰb; a◌ّ◌ْ◌ْ◌ٰb; ) LATIN SMALL LETTER A, ARABIC SUKUN, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC SUKUN, ARABIC SHADDA, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0653 0062;00E0 05AE 0653 0315 0062;0061 05AE 0300 0653 0315 0062;00E0 05AE 0653 0315 0062;0061 05AE 0300 0653 0315 0062; # (a◌̕◌̀◌֮◌ٓb; à◌֮◌ٓ◌̕b; a◌֮◌̀◌ٓ◌̕b; à◌֮◌ٓ◌̕b; a◌֮◌̀◌ٓ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC MADDAH ABOVE, LATIN SMALL LETTER B
+0061 0653 0315 0300 05AE 0062;0061 05AE 0653 0300 0315 0062;0061 05AE 0653 0300 0315 0062;0061 05AE 0653 0300 0315 0062;0061 05AE 0653 0300 0315 0062; # (a◌ٓ◌̕◌̀◌֮b; a◌֮◌ٓ◌̀◌̕b; a◌֮◌ٓ◌̀◌̕b; a◌֮◌ٓ◌̀◌̕b; a◌֮◌ٓ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC MADDAH ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0654 0062;00E0 05AE 0654 0315 0062;0061 05AE 0300 0654 0315 0062;00E0 05AE 0654 0315 0062;0061 05AE 0300 0654 0315 0062; # (a◌̕◌̀◌֮◌ٔb; à◌֮◌ٔ◌̕b; a◌֮◌̀◌ٔ◌̕b; à◌֮◌ٔ◌̕b; a◌֮◌̀◌ٔ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC HAMZA ABOVE, LATIN SMALL LETTER B
+0061 0654 0315 0300 05AE 0062;0061 05AE 0654 0300 0315 0062;0061 05AE 0654 0300 0315 0062;0061 05AE 0654 0300 0315 0062;0061 05AE 0654 0300 0315 0062; # (a◌ٔ◌̕◌̀◌֮b; a◌֮◌ٔ◌̀◌̕b; a◌֮◌ٔ◌̀◌̕b; a◌֮◌ٔ◌̀◌̕b; a◌֮◌ٔ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC HAMZA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0655 0062;0061 1DFA 0316 0655 059A 0062;0061 1DFA 0316 0655 059A 0062;0061 1DFA 0316 0655 059A 0062;0061 1DFA 0316 0655 059A 0062; # (a◌֚◌̖◌᷺◌ٕb; a◌᷺◌̖◌ٕ◌֚b; a◌᷺◌̖◌ٕ◌֚b; a◌᷺◌̖◌ٕ◌֚b; a◌᷺◌̖◌ٕ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC HAMZA BELOW, LATIN SMALL LETTER B
+0061 0655 059A 0316 1DFA 0062;0061 1DFA 0655 0316 059A 0062;0061 1DFA 0655 0316 059A 0062;0061 1DFA 0655 0316 059A 0062;0061 1DFA 0655 0316 059A 0062; # (a◌ٕ◌֚◌̖◌᷺b; a◌᷺◌ٕ◌̖◌֚b; a◌᷺◌ٕ◌̖◌֚b; a◌᷺◌ٕ◌̖◌֚b; a◌᷺◌ٕ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC HAMZA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0656 0062;0061 1DFA 0316 0656 059A 0062;0061 1DFA 0316 0656 059A 0062;0061 1DFA 0316 0656 059A 0062;0061 1DFA 0316 0656 059A 0062; # (a◌֚◌̖◌᷺◌ٖb; a◌᷺◌̖◌ٖ◌֚b; a◌᷺◌̖◌ٖ◌֚b; a◌᷺◌̖◌ٖ◌֚b; a◌᷺◌̖◌ٖ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SUBSCRIPT ALEF, LATIN SMALL LETTER B
+0061 0656 059A 0316 1DFA 0062;0061 1DFA 0656 0316 059A 0062;0061 1DFA 0656 0316 059A 0062;0061 1DFA 0656 0316 059A 0062;0061 1DFA 0656 0316 059A 0062; # (a◌ٖ◌֚◌̖◌᷺b; a◌᷺◌ٖ◌̖◌֚b; a◌᷺◌ٖ◌̖◌֚b; a◌᷺◌ٖ◌̖◌֚b; a◌᷺◌ٖ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SUBSCRIPT ALEF, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0657 0062;00E0 05AE 0657 0315 0062;0061 05AE 0300 0657 0315 0062;00E0 05AE 0657 0315 0062;0061 05AE 0300 0657 0315 0062; # (a◌̕◌̀◌֮◌ٗb; à◌֮◌ٗ◌̕b; a◌֮◌̀◌ٗ◌̕b; à◌֮◌ٗ◌̕b; a◌֮◌̀◌ٗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC INVERTED DAMMA, LATIN SMALL LETTER B
+0061 0657 0315 0300 05AE 0062;0061 05AE 0657 0300 0315 0062;0061 05AE 0657 0300 0315 0062;0061 05AE 0657 0300 0315 0062;0061 05AE 0657 0300 0315 0062; # (a◌ٗ◌̕◌̀◌֮b; a◌֮◌ٗ◌̀◌̕b; a◌֮◌ٗ◌̀◌̕b; a◌֮◌ٗ◌̀◌̕b; a◌֮◌ٗ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC INVERTED DAMMA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0658 0062;00E0 05AE 0658 0315 0062;0061 05AE 0300 0658 0315 0062;00E0 05AE 0658 0315 0062;0061 05AE 0300 0658 0315 0062; # (a◌̕◌̀◌֮◌٘b; à◌֮◌٘◌̕b; a◌֮◌̀◌٘◌̕b; à◌֮◌٘◌̕b; a◌֮◌̀◌٘◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC MARK NOON GHUNNA, LATIN SMALL LETTER B
+0061 0658 0315 0300 05AE 0062;0061 05AE 0658 0300 0315 0062;0061 05AE 0658 0300 0315 0062;0061 05AE 0658 0300 0315 0062;0061 05AE 0658 0300 0315 0062; # (a◌٘◌̕◌̀◌֮b; a◌֮◌٘◌̀◌̕b; a◌֮◌٘◌̀◌̕b; a◌֮◌٘◌̀◌̕b; a◌֮◌٘◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC MARK NOON GHUNNA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0659 0062;00E0 05AE 0659 0315 0062;0061 05AE 0300 0659 0315 0062;00E0 05AE 0659 0315 0062;0061 05AE 0300 0659 0315 0062; # (a◌̕◌̀◌֮◌ٙb; à◌֮◌ٙ◌̕b; a◌֮◌̀◌ٙ◌̕b; à◌֮◌ٙ◌̕b; a◌֮◌̀◌ٙ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC ZWARAKAY, LATIN SMALL LETTER B
+0061 0659 0315 0300 05AE 0062;0061 05AE 0659 0300 0315 0062;0061 05AE 0659 0300 0315 0062;0061 05AE 0659 0300 0315 0062;0061 05AE 0659 0300 0315 0062; # (a◌ٙ◌̕◌̀◌֮b; a◌֮◌ٙ◌̀◌̕b; a◌֮◌ٙ◌̀◌̕b; a◌֮◌ٙ◌̀◌̕b; a◌֮◌ٙ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC ZWARAKAY, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 065A 0062;00E0 05AE 065A 0315 0062;0061 05AE 0300 065A 0315 0062;00E0 05AE 065A 0315 0062;0061 05AE 0300 065A 0315 0062; # (a◌̕◌̀◌֮◌ٚb; à◌֮◌ٚ◌̕b; a◌֮◌̀◌ٚ◌̕b; à◌֮◌ٚ◌̕b; a◌֮◌̀◌ٚ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC VOWEL SIGN SMALL V ABOVE, LATIN SMALL LETTER B
+0061 065A 0315 0300 05AE 0062;0061 05AE 065A 0300 0315 0062;0061 05AE 065A 0300 0315 0062;0061 05AE 065A 0300 0315 0062;0061 05AE 065A 0300 0315 0062; # (a◌ٚ◌̕◌̀◌֮b; a◌֮◌ٚ◌̀◌̕b; a◌֮◌ٚ◌̀◌̕b; a◌֮◌ٚ◌̀◌̕b; a◌֮◌ٚ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC VOWEL SIGN SMALL V ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 065B 0062;00E0 05AE 065B 0315 0062;0061 05AE 0300 065B 0315 0062;00E0 05AE 065B 0315 0062;0061 05AE 0300 065B 0315 0062; # (a◌̕◌̀◌֮◌ٛb; à◌֮◌ٛ◌̕b; a◌֮◌̀◌ٛ◌̕b; à◌֮◌ٛ◌̕b; a◌֮◌̀◌ٛ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE, LATIN SMALL LETTER B
+0061 065B 0315 0300 05AE 0062;0061 05AE 065B 0300 0315 0062;0061 05AE 065B 0300 0315 0062;0061 05AE 065B 0300 0315 0062;0061 05AE 065B 0300 0315 0062; # (a◌ٛ◌̕◌̀◌֮b; a◌֮◌ٛ◌̀◌̕b; a◌֮◌ٛ◌̀◌̕b; a◌֮◌ٛ◌̀◌̕b; a◌֮◌ٛ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC VOWEL SIGN INVERTED SMALL V ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 065C 0062;0061 1DFA 0316 065C 059A 0062;0061 1DFA 0316 065C 059A 0062;0061 1DFA 0316 065C 059A 0062;0061 1DFA 0316 065C 059A 0062; # (a◌֚◌̖◌᷺◌ٜb; a◌᷺◌̖◌ٜ◌֚b; a◌᷺◌̖◌ٜ◌֚b; a◌᷺◌̖◌ٜ◌֚b; a◌᷺◌̖◌ٜ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC VOWEL SIGN DOT BELOW, LATIN SMALL LETTER B
+0061 065C 059A 0316 1DFA 0062;0061 1DFA 065C 0316 059A 0062;0061 1DFA 065C 0316 059A 0062;0061 1DFA 065C 0316 059A 0062;0061 1DFA 065C 0316 059A 0062; # (a◌ٜ◌֚◌̖◌᷺b; a◌᷺◌ٜ◌̖◌֚b; a◌᷺◌ٜ◌̖◌֚b; a◌᷺◌ٜ◌̖◌֚b; a◌᷺◌ٜ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC VOWEL SIGN DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 065D 0062;00E0 05AE 065D 0315 0062;0061 05AE 0300 065D 0315 0062;00E0 05AE 065D 0315 0062;0061 05AE 0300 065D 0315 0062; # (a◌̕◌̀◌֮◌ٝb; à◌֮◌ٝ◌̕b; a◌֮◌̀◌ٝ◌̕b; à◌֮◌ٝ◌̕b; a◌֮◌̀◌ٝ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC REVERSED DAMMA, LATIN SMALL LETTER B
+0061 065D 0315 0300 05AE 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062; # (a◌ٝ◌̕◌̀◌֮b; a◌֮◌ٝ◌̀◌̕b; a◌֮◌ٝ◌̀◌̕b; a◌֮◌ٝ◌̀◌̕b; a◌֮◌ٝ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC REVERSED DAMMA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 065E 0062;00E0 05AE 065E 0315 0062;0061 05AE 0300 065E 0315 0062;00E0 05AE 065E 0315 0062;0061 05AE 0300 065E 0315 0062; # (a◌̕◌̀◌֮◌ٞb; à◌֮◌ٞ◌̕b; a◌֮◌̀◌ٞ◌̕b; à◌֮◌ٞ◌̕b; a◌֮◌̀◌ٞ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC FATHA WITH TWO DOTS, LATIN SMALL LETTER B
+0061 065E 0315 0300 05AE 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062; # (a◌ٞ◌̕◌̀◌֮b; a◌֮◌ٞ◌̀◌̕b; a◌֮◌ٞ◌̀◌̕b; a◌֮◌ٞ◌̀◌̕b; a◌֮◌ٞ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC FATHA WITH TWO DOTS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 065F 0062;0061 1DFA 0316 065F 059A 0062;0061 1DFA 0316 065F 059A 0062;0061 1DFA 0316 065F 059A 0062;0061 1DFA 0316 065F 059A 0062; # (a◌֚◌̖◌᷺◌ٟb; a◌᷺◌̖◌ٟ◌֚b; a◌᷺◌̖◌ٟ◌֚b; a◌᷺◌̖◌ٟ◌֚b; a◌᷺◌̖◌ٟ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC WAVY HAMZA BELOW, LATIN SMALL LETTER B
+0061 065F 059A 0316 1DFA 0062;0061 1DFA 065F 0316 059A 0062;0061 1DFA 065F 0316 059A 0062;0061 1DFA 065F 0316 059A 0062;0061 1DFA 065F 0316 059A 0062; # (a◌ٟ◌֚◌̖◌᷺b; a◌᷺◌ٟ◌̖◌֚b; a◌᷺◌ٟ◌̖◌֚b; a◌᷺◌ٟ◌̖◌֚b; a◌᷺◌ٟ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC WAVY HAMZA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0711 0670 0652 0670 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062; # (a◌ܑ◌ٰ◌ْ◌ٰb; a◌ْ◌ٰ◌ٰ◌ܑb; a◌ْ◌ٰ◌ٰ◌ܑb; a◌ْ◌ٰ◌ٰ◌ܑb; a◌ْ◌ٰ◌ٰ◌ܑb; ) LATIN SMALL LETTER A, SYRIAC LETTER SUPERSCRIPT ALAPH, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC SUKUN, ARABIC LETTER SUPERSCRIPT ALEF, LATIN SMALL LETTER B
+0061 0670 0711 0670 0652 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062; # (a◌ٰ◌ܑ◌ٰ◌ْb; a◌ْ◌ٰ◌ٰ◌ܑb; a◌ْ◌ٰ◌ٰ◌ܑb; a◌ْ◌ٰ◌ٰ◌ܑb; a◌ْ◌ٰ◌ٰ◌ܑb; ) LATIN SMALL LETTER A, ARABIC LETTER SUPERSCRIPT ALEF, SYRIAC LETTER SUPERSCRIPT ALAPH, ARABIC LETTER SUPERSCRIPT ALEF, ARABIC SUKUN, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06D6 0062;00E0 05AE 06D6 0315 0062;0061 05AE 0300 06D6 0315 0062;00E0 05AE 06D6 0315 0062;0061 05AE 0300 06D6 0315 0062; # (a◌̕◌̀◌֮◌ۖb; à◌֮◌ۖ◌̕b; a◌֮◌̀◌ۖ◌̕b; à◌֮◌ۖ◌̕b; a◌֮◌̀◌ۖ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA, LATIN SMALL LETTER B
+0061 06D6 0315 0300 05AE 0062;0061 05AE 06D6 0300 0315 0062;0061 05AE 06D6 0300 0315 0062;0061 05AE 06D6 0300 0315 0062;0061 05AE 06D6 0300 0315 0062; # (a◌ۖ◌̕◌̀◌֮b; a◌֮◌ۖ◌̀◌̕b; a◌֮◌ۖ◌̀◌̕b; a◌֮◌ۖ◌̀◌̕b; a◌֮◌ۖ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06D7 0062;00E0 05AE 06D7 0315 0062;0061 05AE 0300 06D7 0315 0062;00E0 05AE 06D7 0315 0062;0061 05AE 0300 06D7 0315 0062; # (a◌̕◌̀◌֮◌ۗb; à◌֮◌ۗ◌̕b; a◌֮◌̀◌ۗ◌̕b; à◌֮◌ۗ◌̕b; a◌֮◌̀◌ۗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA, LATIN SMALL LETTER B
+0061 06D7 0315 0300 05AE 0062;0061 05AE 06D7 0300 0315 0062;0061 05AE 06D7 0300 0315 0062;0061 05AE 06D7 0300 0315 0062;0061 05AE 06D7 0300 0315 0062; # (a◌ۗ◌̕◌̀◌֮b; a◌֮◌ۗ◌̀◌̕b; a◌֮◌ۗ◌̀◌̕b; a◌֮◌ۗ◌̀◌̕b; a◌֮◌ۗ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06D8 0062;00E0 05AE 06D8 0315 0062;0061 05AE 0300 06D8 0315 0062;00E0 05AE 06D8 0315 0062;0061 05AE 0300 06D8 0315 0062; # (a◌̕◌̀◌֮◌ۘb; à◌֮◌ۘ◌̕b; a◌֮◌̀◌ۘ◌̕b; à◌֮◌ۘ◌̕b; a◌֮◌̀◌ۘ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH MEEM INITIAL FORM, LATIN SMALL LETTER B
+0061 06D8 0315 0300 05AE 0062;0061 05AE 06D8 0300 0315 0062;0061 05AE 06D8 0300 0315 0062;0061 05AE 06D8 0300 0315 0062;0061 05AE 06D8 0300 0315 0062; # (a◌ۘ◌̕◌̀◌֮b; a◌֮◌ۘ◌̀◌̕b; a◌֮◌ۘ◌̀◌̕b; a◌֮◌ۘ◌̀◌̕b; a◌֮◌ۘ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH MEEM INITIAL FORM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06D9 0062;00E0 05AE 06D9 0315 0062;0061 05AE 0300 06D9 0315 0062;00E0 05AE 06D9 0315 0062;0061 05AE 0300 06D9 0315 0062; # (a◌̕◌̀◌֮◌ۙb; à◌֮◌ۙ◌̕b; a◌֮◌̀◌ۙ◌̕b; à◌֮◌ۙ◌̕b; a◌֮◌̀◌ۙ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH LAM ALEF, LATIN SMALL LETTER B
+0061 06D9 0315 0300 05AE 0062;0061 05AE 06D9 0300 0315 0062;0061 05AE 06D9 0300 0315 0062;0061 05AE 06D9 0300 0315 0062;0061 05AE 06D9 0300 0315 0062; # (a◌ۙ◌̕◌̀◌֮b; a◌֮◌ۙ◌̀◌̕b; a◌֮◌ۙ◌̀◌̕b; a◌֮◌ۙ◌̀◌̕b; a◌֮◌ۙ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH LAM ALEF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06DA 0062;00E0 05AE 06DA 0315 0062;0061 05AE 0300 06DA 0315 0062;00E0 05AE 06DA 0315 0062;0061 05AE 0300 06DA 0315 0062; # (a◌̕◌̀◌֮◌ۚb; à◌֮◌ۚ◌̕b; a◌֮◌̀◌ۚ◌̕b; à◌֮◌ۚ◌̕b; a◌֮◌̀◌ۚ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH JEEM, LATIN SMALL LETTER B
+0061 06DA 0315 0300 05AE 0062;0061 05AE 06DA 0300 0315 0062;0061 05AE 06DA 0300 0315 0062;0061 05AE 06DA 0300 0315 0062;0061 05AE 06DA 0300 0315 0062; # (a◌ۚ◌̕◌̀◌֮b; a◌֮◌ۚ◌̀◌̕b; a◌֮◌ۚ◌̀◌̕b; a◌֮◌ۚ◌̀◌̕b; a◌֮◌ۚ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH JEEM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06DB 0062;00E0 05AE 06DB 0315 0062;0061 05AE 0300 06DB 0315 0062;00E0 05AE 06DB 0315 0062;0061 05AE 0300 06DB 0315 0062; # (a◌̕◌̀◌֮◌ۛb; à◌֮◌ۛ◌̕b; a◌֮◌̀◌ۛ◌̕b; à◌֮◌ۛ◌̕b; a◌֮◌̀◌ۛ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH THREE DOTS, LATIN SMALL LETTER B
+0061 06DB 0315 0300 05AE 0062;0061 05AE 06DB 0300 0315 0062;0061 05AE 06DB 0300 0315 0062;0061 05AE 06DB 0300 0315 0062;0061 05AE 06DB 0300 0315 0062; # (a◌ۛ◌̕◌̀◌֮b; a◌֮◌ۛ◌̀◌̕b; a◌֮◌ۛ◌̀◌̕b; a◌֮◌ۛ◌̀◌̕b; a◌֮◌ۛ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH THREE DOTS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06DC 0062;00E0 05AE 06DC 0315 0062;0061 05AE 0300 06DC 0315 0062;00E0 05AE 06DC 0315 0062;0061 05AE 0300 06DC 0315 0062; # (a◌̕◌̀◌֮◌ۜb; à◌֮◌ۜ◌̕b; a◌֮◌̀◌ۜ◌̕b; à◌֮◌ۜ◌̕b; a◌֮◌̀◌ۜ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH SEEN, LATIN SMALL LETTER B
+0061 06DC 0315 0300 05AE 0062;0061 05AE 06DC 0300 0315 0062;0061 05AE 06DC 0300 0315 0062;0061 05AE 06DC 0300 0315 0062;0061 05AE 06DC 0300 0315 0062; # (a◌ۜ◌̕◌̀◌֮b; a◌֮◌ۜ◌̀◌̕b; a◌֮◌ۜ◌̀◌̕b; a◌֮◌ۜ◌̀◌̕b; a◌֮◌ۜ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH SEEN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06DF 0062;00E0 05AE 06DF 0315 0062;0061 05AE 0300 06DF 0315 0062;00E0 05AE 06DF 0315 0062;0061 05AE 0300 06DF 0315 0062; # (a◌̕◌̀◌֮◌۟b; à◌֮◌۟◌̕b; a◌֮◌̀◌۟◌̕b; à◌֮◌۟◌̕b; a◌֮◌̀◌۟◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH ROUNDED ZERO, LATIN SMALL LETTER B
+0061 06DF 0315 0300 05AE 0062;0061 05AE 06DF 0300 0315 0062;0061 05AE 06DF 0300 0315 0062;0061 05AE 06DF 0300 0315 0062;0061 05AE 06DF 0300 0315 0062; # (a◌۟◌̕◌̀◌֮b; a◌֮◌۟◌̀◌̕b; a◌֮◌۟◌̀◌̕b; a◌֮◌۟◌̀◌̕b; a◌֮◌۟◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH ROUNDED ZERO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06E0 0062;00E0 05AE 06E0 0315 0062;0061 05AE 0300 06E0 0315 0062;00E0 05AE 06E0 0315 0062;0061 05AE 0300 06E0 0315 0062; # (a◌̕◌̀◌֮◌۠b; à◌֮◌۠◌̕b; a◌֮◌̀◌۠◌̕b; à◌֮◌۠◌̕b; a◌֮◌̀◌۠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO, LATIN SMALL LETTER B
+0061 06E0 0315 0300 05AE 0062;0061 05AE 06E0 0300 0315 0062;0061 05AE 06E0 0300 0315 0062;0061 05AE 06E0 0300 0315 0062;0061 05AE 06E0 0300 0315 0062; # (a◌۠◌̕◌̀◌֮b; a◌֮◌۠◌̀◌̕b; a◌֮◌۠◌̀◌̕b; a◌֮◌۠◌̀◌̕b; a◌֮◌۠◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06E1 0062;00E0 05AE 06E1 0315 0062;0061 05AE 0300 06E1 0315 0062;00E0 05AE 06E1 0315 0062;0061 05AE 0300 06E1 0315 0062; # (a◌̕◌̀◌֮◌ۡb; à◌֮◌ۡ◌̕b; a◌֮◌̀◌ۡ◌̕b; à◌֮◌ۡ◌̕b; a◌֮◌̀◌ۡ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH DOTLESS HEAD OF KHAH, LATIN SMALL LETTER B
+0061 06E1 0315 0300 05AE 0062;0061 05AE 06E1 0300 0315 0062;0061 05AE 06E1 0300 0315 0062;0061 05AE 06E1 0300 0315 0062;0061 05AE 06E1 0300 0315 0062; # (a◌ۡ◌̕◌̀◌֮b; a◌֮◌ۡ◌̀◌̕b; a◌֮◌ۡ◌̀◌̕b; a◌֮◌ۡ◌̀◌̕b; a◌֮◌ۡ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH DOTLESS HEAD OF KHAH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06E2 0062;00E0 05AE 06E2 0315 0062;0061 05AE 0300 06E2 0315 0062;00E0 05AE 06E2 0315 0062;0061 05AE 0300 06E2 0315 0062; # (a◌̕◌̀◌֮◌ۢb; à◌֮◌ۢ◌̕b; a◌֮◌̀◌ۢ◌̕b; à◌֮◌ۢ◌̕b; a◌֮◌̀◌ۢ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH MEEM ISOLATED FORM, LATIN SMALL LETTER B
+0061 06E2 0315 0300 05AE 0062;0061 05AE 06E2 0300 0315 0062;0061 05AE 06E2 0300 0315 0062;0061 05AE 06E2 0300 0315 0062;0061 05AE 06E2 0300 0315 0062; # (a◌ۢ◌̕◌̀◌֮b; a◌֮◌ۢ◌̀◌̕b; a◌֮◌ۢ◌̀◌̕b; a◌֮◌ۢ◌̀◌̕b; a◌֮◌ۢ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH MEEM ISOLATED FORM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 06E3 0062;0061 1DFA 0316 06E3 059A 0062;0061 1DFA 0316 06E3 059A 0062;0061 1DFA 0316 06E3 059A 0062;0061 1DFA 0316 06E3 059A 0062; # (a◌֚◌̖◌᷺◌ۣb; a◌᷺◌̖◌ۣ◌֚b; a◌᷺◌̖◌ۣ◌֚b; a◌᷺◌̖◌ۣ◌֚b; a◌᷺◌̖◌ۣ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW SEEN, LATIN SMALL LETTER B
+0061 06E3 059A 0316 1DFA 0062;0061 1DFA 06E3 0316 059A 0062;0061 1DFA 06E3 0316 059A 0062;0061 1DFA 06E3 0316 059A 0062;0061 1DFA 06E3 0316 059A 0062; # (a◌ۣ◌֚◌̖◌᷺b; a◌᷺◌ۣ◌̖◌֚b; a◌᷺◌ۣ◌̖◌֚b; a◌᷺◌ۣ◌̖◌֚b; a◌᷺◌ۣ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW SEEN, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06E4 0062;00E0 05AE 06E4 0315 0062;0061 05AE 0300 06E4 0315 0062;00E0 05AE 06E4 0315 0062;0061 05AE 0300 06E4 0315 0062; # (a◌̕◌̀◌֮◌ۤb; à◌֮◌ۤ◌̕b; a◌֮◌̀◌ۤ◌̕b; à◌֮◌ۤ◌̕b; a◌֮◌̀◌ۤ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH MADDA, LATIN SMALL LETTER B
+0061 06E4 0315 0300 05AE 0062;0061 05AE 06E4 0300 0315 0062;0061 05AE 06E4 0300 0315 0062;0061 05AE 06E4 0300 0315 0062;0061 05AE 06E4 0300 0315 0062; # (a◌ۤ◌̕◌̀◌֮b; a◌֮◌ۤ◌̀◌̕b; a◌֮◌ۤ◌̀◌̕b; a◌֮◌ۤ◌̀◌̕b; a◌֮◌ۤ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH MADDA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06E7 0062;00E0 05AE 06E7 0315 0062;0061 05AE 0300 06E7 0315 0062;00E0 05AE 06E7 0315 0062;0061 05AE 0300 06E7 0315 0062; # (a◌̕◌̀◌֮◌ۧb; à◌֮◌ۧ◌̕b; a◌֮◌̀◌ۧ◌̕b; à◌֮◌ۧ◌̕b; a◌֮◌̀◌ۧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH YEH, LATIN SMALL LETTER B
+0061 06E7 0315 0300 05AE 0062;0061 05AE 06E7 0300 0315 0062;0061 05AE 06E7 0300 0315 0062;0061 05AE 06E7 0300 0315 0062;0061 05AE 06E7 0300 0315 0062; # (a◌ۧ◌̕◌̀◌֮b; a◌֮◌ۧ◌̀◌̕b; a◌֮◌ۧ◌̀◌̕b; a◌֮◌ۧ◌̀◌̕b; a◌֮◌ۧ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH YEH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06E8 0062;00E0 05AE 06E8 0315 0062;0061 05AE 0300 06E8 0315 0062;00E0 05AE 06E8 0315 0062;0061 05AE 0300 06E8 0315 0062; # (a◌̕◌̀◌֮◌ۨb; à◌֮◌ۨ◌̕b; a◌֮◌̀◌ۨ◌̕b; à◌֮◌ۨ◌̕b; a◌֮◌̀◌ۨ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH NOON, LATIN SMALL LETTER B
+0061 06E8 0315 0300 05AE 0062;0061 05AE 06E8 0300 0315 0062;0061 05AE 06E8 0300 0315 0062;0061 05AE 06E8 0300 0315 0062;0061 05AE 06E8 0300 0315 0062; # (a◌ۨ◌̕◌̀◌֮b; a◌֮◌ۨ◌̀◌̕b; a◌֮◌ۨ◌̀◌̕b; a◌֮◌ۨ◌̀◌̕b; a◌֮◌ۨ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH NOON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 06EA 0062;0061 1DFA 0316 06EA 059A 0062;0061 1DFA 0316 06EA 059A 0062;0061 1DFA 0316 06EA 059A 0062;0061 1DFA 0316 06EA 059A 0062; # (a◌֚◌̖◌᷺◌۪b; a◌᷺◌̖◌۪◌֚b; a◌᷺◌̖◌۪◌֚b; a◌᷺◌̖◌۪◌֚b; a◌᷺◌̖◌۪◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC EMPTY CENTRE LOW STOP, LATIN SMALL LETTER B
+0061 06EA 059A 0316 1DFA 0062;0061 1DFA 06EA 0316 059A 0062;0061 1DFA 06EA 0316 059A 0062;0061 1DFA 06EA 0316 059A 0062;0061 1DFA 06EA 0316 059A 0062; # (a◌۪◌֚◌̖◌᷺b; a◌᷺◌۪◌̖◌֚b; a◌᷺◌۪◌̖◌֚b; a◌᷺◌۪◌̖◌֚b; a◌᷺◌۪◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC EMPTY CENTRE LOW STOP, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06EB 0062;00E0 05AE 06EB 0315 0062;0061 05AE 0300 06EB 0315 0062;00E0 05AE 06EB 0315 0062;0061 05AE 0300 06EB 0315 0062; # (a◌̕◌̀◌֮◌۫b; à◌֮◌۫◌̕b; a◌֮◌̀◌۫◌̕b; à◌֮◌۫◌̕b; a◌֮◌̀◌۫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC EMPTY CENTRE HIGH STOP, LATIN SMALL LETTER B
+0061 06EB 0315 0300 05AE 0062;0061 05AE 06EB 0300 0315 0062;0061 05AE 06EB 0300 0315 0062;0061 05AE 06EB 0300 0315 0062;0061 05AE 06EB 0300 0315 0062; # (a◌۫◌̕◌̀◌֮b; a◌֮◌۫◌̀◌̕b; a◌֮◌۫◌̀◌̕b; a◌֮◌۫◌̀◌̕b; a◌֮◌۫◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC EMPTY CENTRE HIGH STOP, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 06EC 0062;00E0 05AE 06EC 0315 0062;0061 05AE 0300 06EC 0315 0062;00E0 05AE 06EC 0315 0062;0061 05AE 0300 06EC 0315 0062; # (a◌̕◌̀◌֮◌۬b; à◌֮◌۬◌̕b; a◌֮◌̀◌۬◌̕b; à◌֮◌۬◌̕b; a◌֮◌̀◌۬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE, LATIN SMALL LETTER B
+0061 06EC 0315 0300 05AE 0062;0061 05AE 06EC 0300 0315 0062;0061 05AE 06EC 0300 0315 0062;0061 05AE 06EC 0300 0315 0062;0061 05AE 06EC 0300 0315 0062; # (a◌۬◌̕◌̀◌֮b; a◌֮◌۬◌̀◌̕b; a◌֮◌۬◌̀◌̕b; a◌֮◌۬◌̀◌̕b; a◌֮◌۬◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 06ED 0062;0061 1DFA 0316 06ED 059A 0062;0061 1DFA 0316 06ED 059A 0062;0061 1DFA 0316 06ED 059A 0062;0061 1DFA 0316 06ED 059A 0062; # (a◌֚◌̖◌᷺◌ۭb; a◌᷺◌̖◌ۭ◌֚b; a◌᷺◌̖◌ۭ◌֚b; a◌᷺◌̖◌ۭ◌֚b; a◌᷺◌̖◌ۭ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW MEEM, LATIN SMALL LETTER B
+0061 06ED 059A 0316 1DFA 0062;0061 1DFA 06ED 0316 059A 0062;0061 1DFA 06ED 0316 059A 0062;0061 1DFA 06ED 0316 059A 0062;0061 1DFA 06ED 0316 059A 0062; # (a◌ۭ◌֚◌̖◌᷺b; a◌᷺◌ۭ◌̖◌֚b; a◌᷺◌ۭ◌̖◌֚b; a◌᷺◌ۭ◌̖◌֚b; a◌᷺◌ۭ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW MEEM, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0C55 0711 0670 0711 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062; # (a◌ౕ◌ܑ◌ٰ◌ܑb; a◌ٰ◌ܑ◌ܑ◌ౕb; a◌ٰ◌ܑ◌ܑ◌ౕb; a◌ٰ◌ܑ◌ܑ◌ౕb; a◌ٰ◌ܑ◌ܑ◌ౕb; ) LATIN SMALL LETTER A, TELUGU LENGTH MARK, SYRIAC LETTER SUPERSCRIPT ALAPH, ARABIC LETTER SUPERSCRIPT ALEF, SYRIAC LETTER SUPERSCRIPT ALAPH, LATIN SMALL LETTER B
+0061 0711 0C55 0711 0670 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062; # (a◌ܑ◌ౕ◌ܑ◌ٰb; a◌ٰ◌ܑ◌ܑ◌ౕb; a◌ٰ◌ܑ◌ܑ◌ౕb; a◌ٰ◌ܑ◌ܑ◌ౕb; a◌ٰ◌ܑ◌ܑ◌ౕb; ) LATIN SMALL LETTER A, SYRIAC LETTER SUPERSCRIPT ALAPH, TELUGU LENGTH MARK, SYRIAC LETTER SUPERSCRIPT ALAPH, ARABIC LETTER SUPERSCRIPT ALEF, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0730 0062;00E0 05AE 0730 0315 0062;0061 05AE 0300 0730 0315 0062;00E0 05AE 0730 0315 0062;0061 05AE 0300 0730 0315 0062; # (a◌̕◌̀◌֮◌ܰb; à◌֮◌ܰ◌̕b; a◌֮◌̀◌ܰ◌̕b; à◌֮◌ܰ◌̕b; a◌֮◌̀◌ܰ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC PTHAHA ABOVE, LATIN SMALL LETTER B
+0061 0730 0315 0300 05AE 0062;0061 05AE 0730 0300 0315 0062;0061 05AE 0730 0300 0315 0062;0061 05AE 0730 0300 0315 0062;0061 05AE 0730 0300 0315 0062; # (a◌ܰ◌̕◌̀◌֮b; a◌֮◌ܰ◌̀◌̕b; a◌֮◌ܰ◌̀◌̕b; a◌֮◌ܰ◌̀◌̕b; a◌֮◌ܰ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC PTHAHA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0731 0062;0061 1DFA 0316 0731 059A 0062;0061 1DFA 0316 0731 059A 0062;0061 1DFA 0316 0731 059A 0062;0061 1DFA 0316 0731 059A 0062; # (a◌֚◌̖◌᷺◌ܱb; a◌᷺◌̖◌ܱ◌֚b; a◌᷺◌̖◌ܱ◌֚b; a◌᷺◌̖◌ܱ◌֚b; a◌᷺◌̖◌ܱ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC PTHAHA BELOW, LATIN SMALL LETTER B
+0061 0731 059A 0316 1DFA 0062;0061 1DFA 0731 0316 059A 0062;0061 1DFA 0731 0316 059A 0062;0061 1DFA 0731 0316 059A 0062;0061 1DFA 0731 0316 059A 0062; # (a◌ܱ◌֚◌̖◌᷺b; a◌᷺◌ܱ◌̖◌֚b; a◌᷺◌ܱ◌̖◌֚b; a◌᷺◌ܱ◌̖◌֚b; a◌᷺◌ܱ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC PTHAHA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0732 0062;00E0 05AE 0732 0315 0062;0061 05AE 0300 0732 0315 0062;00E0 05AE 0732 0315 0062;0061 05AE 0300 0732 0315 0062; # (a◌̕◌̀◌֮◌ܲb; à◌֮◌ܲ◌̕b; a◌֮◌̀◌ܲ◌̕b; à◌֮◌ܲ◌̕b; a◌֮◌̀◌ܲ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC PTHAHA DOTTED, LATIN SMALL LETTER B
+0061 0732 0315 0300 05AE 0062;0061 05AE 0732 0300 0315 0062;0061 05AE 0732 0300 0315 0062;0061 05AE 0732 0300 0315 0062;0061 05AE 0732 0300 0315 0062; # (a◌ܲ◌̕◌̀◌֮b; a◌֮◌ܲ◌̀◌̕b; a◌֮◌ܲ◌̀◌̕b; a◌֮◌ܲ◌̀◌̕b; a◌֮◌ܲ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC PTHAHA DOTTED, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0733 0062;00E0 05AE 0733 0315 0062;0061 05AE 0300 0733 0315 0062;00E0 05AE 0733 0315 0062;0061 05AE 0300 0733 0315 0062; # (a◌̕◌̀◌֮◌ܳb; à◌֮◌ܳ◌̕b; a◌֮◌̀◌ܳ◌̕b; à◌֮◌ܳ◌̕b; a◌֮◌̀◌ܳ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC ZQAPHA ABOVE, LATIN SMALL LETTER B
+0061 0733 0315 0300 05AE 0062;0061 05AE 0733 0300 0315 0062;0061 05AE 0733 0300 0315 0062;0061 05AE 0733 0300 0315 0062;0061 05AE 0733 0300 0315 0062; # (a◌ܳ◌̕◌̀◌֮b; a◌֮◌ܳ◌̀◌̕b; a◌֮◌ܳ◌̀◌̕b; a◌֮◌ܳ◌̀◌̕b; a◌֮◌ܳ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC ZQAPHA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0734 0062;0061 1DFA 0316 0734 059A 0062;0061 1DFA 0316 0734 059A 0062;0061 1DFA 0316 0734 059A 0062;0061 1DFA 0316 0734 059A 0062; # (a◌֚◌̖◌᷺◌ܴb; a◌᷺◌̖◌ܴ◌֚b; a◌᷺◌̖◌ܴ◌֚b; a◌᷺◌̖◌ܴ◌֚b; a◌᷺◌̖◌ܴ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC ZQAPHA BELOW, LATIN SMALL LETTER B
+0061 0734 059A 0316 1DFA 0062;0061 1DFA 0734 0316 059A 0062;0061 1DFA 0734 0316 059A 0062;0061 1DFA 0734 0316 059A 0062;0061 1DFA 0734 0316 059A 0062; # (a◌ܴ◌֚◌̖◌᷺b; a◌᷺◌ܴ◌̖◌֚b; a◌᷺◌ܴ◌̖◌֚b; a◌᷺◌ܴ◌̖◌֚b; a◌᷺◌ܴ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC ZQAPHA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0735 0062;00E0 05AE 0735 0315 0062;0061 05AE 0300 0735 0315 0062;00E0 05AE 0735 0315 0062;0061 05AE 0300 0735 0315 0062; # (a◌̕◌̀◌֮◌ܵb; à◌֮◌ܵ◌̕b; a◌֮◌̀◌ܵ◌̕b; à◌֮◌ܵ◌̕b; a◌֮◌̀◌ܵ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC ZQAPHA DOTTED, LATIN SMALL LETTER B
+0061 0735 0315 0300 05AE 0062;0061 05AE 0735 0300 0315 0062;0061 05AE 0735 0300 0315 0062;0061 05AE 0735 0300 0315 0062;0061 05AE 0735 0300 0315 0062; # (a◌ܵ◌̕◌̀◌֮b; a◌֮◌ܵ◌̀◌̕b; a◌֮◌ܵ◌̀◌̕b; a◌֮◌ܵ◌̀◌̕b; a◌֮◌ܵ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC ZQAPHA DOTTED, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0736 0062;00E0 05AE 0736 0315 0062;0061 05AE 0300 0736 0315 0062;00E0 05AE 0736 0315 0062;0061 05AE 0300 0736 0315 0062; # (a◌̕◌̀◌֮◌ܶb; à◌֮◌ܶ◌̕b; a◌֮◌̀◌ܶ◌̕b; à◌֮◌ܶ◌̕b; a◌֮◌̀◌ܶ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC RBASA ABOVE, LATIN SMALL LETTER B
+0061 0736 0315 0300 05AE 0062;0061 05AE 0736 0300 0315 0062;0061 05AE 0736 0300 0315 0062;0061 05AE 0736 0300 0315 0062;0061 05AE 0736 0300 0315 0062; # (a◌ܶ◌̕◌̀◌֮b; a◌֮◌ܶ◌̀◌̕b; a◌֮◌ܶ◌̀◌̕b; a◌֮◌ܶ◌̀◌̕b; a◌֮◌ܶ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC RBASA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0737 0062;0061 1DFA 0316 0737 059A 0062;0061 1DFA 0316 0737 059A 0062;0061 1DFA 0316 0737 059A 0062;0061 1DFA 0316 0737 059A 0062; # (a◌֚◌̖◌᷺◌ܷb; a◌᷺◌̖◌ܷ◌֚b; a◌᷺◌̖◌ܷ◌֚b; a◌᷺◌̖◌ܷ◌֚b; a◌᷺◌̖◌ܷ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC RBASA BELOW, LATIN SMALL LETTER B
+0061 0737 059A 0316 1DFA 0062;0061 1DFA 0737 0316 059A 0062;0061 1DFA 0737 0316 059A 0062;0061 1DFA 0737 0316 059A 0062;0061 1DFA 0737 0316 059A 0062; # (a◌ܷ◌֚◌̖◌᷺b; a◌᷺◌ܷ◌̖◌֚b; a◌᷺◌ܷ◌̖◌֚b; a◌᷺◌ܷ◌̖◌֚b; a◌᷺◌ܷ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC RBASA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0738 0062;0061 1DFA 0316 0738 059A 0062;0061 1DFA 0316 0738 059A 0062;0061 1DFA 0316 0738 059A 0062;0061 1DFA 0316 0738 059A 0062; # (a◌֚◌̖◌᷺◌ܸb; a◌᷺◌̖◌ܸ◌֚b; a◌᷺◌̖◌ܸ◌֚b; a◌᷺◌̖◌ܸ◌֚b; a◌᷺◌̖◌ܸ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC DOTTED ZLAMA HORIZONTAL, LATIN SMALL LETTER B
+0061 0738 059A 0316 1DFA 0062;0061 1DFA 0738 0316 059A 0062;0061 1DFA 0738 0316 059A 0062;0061 1DFA 0738 0316 059A 0062;0061 1DFA 0738 0316 059A 0062; # (a◌ܸ◌֚◌̖◌᷺b; a◌᷺◌ܸ◌̖◌֚b; a◌᷺◌ܸ◌̖◌֚b; a◌᷺◌ܸ◌̖◌֚b; a◌᷺◌ܸ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC DOTTED ZLAMA HORIZONTAL, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0739 0062;0061 1DFA 0316 0739 059A 0062;0061 1DFA 0316 0739 059A 0062;0061 1DFA 0316 0739 059A 0062;0061 1DFA 0316 0739 059A 0062; # (a◌֚◌̖◌᷺◌ܹb; a◌᷺◌̖◌ܹ◌֚b; a◌᷺◌̖◌ܹ◌֚b; a◌᷺◌̖◌ܹ◌֚b; a◌᷺◌̖◌ܹ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC DOTTED ZLAMA ANGULAR, LATIN SMALL LETTER B
+0061 0739 059A 0316 1DFA 0062;0061 1DFA 0739 0316 059A 0062;0061 1DFA 0739 0316 059A 0062;0061 1DFA 0739 0316 059A 0062;0061 1DFA 0739 0316 059A 0062; # (a◌ܹ◌֚◌̖◌᷺b; a◌᷺◌ܹ◌̖◌֚b; a◌᷺◌ܹ◌̖◌֚b; a◌᷺◌ܹ◌̖◌֚b; a◌᷺◌ܹ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC DOTTED ZLAMA ANGULAR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 073A 0062;00E0 05AE 073A 0315 0062;0061 05AE 0300 073A 0315 0062;00E0 05AE 073A 0315 0062;0061 05AE 0300 073A 0315 0062; # (a◌̕◌̀◌֮◌ܺb; à◌֮◌ܺ◌̕b; a◌֮◌̀◌ܺ◌̕b; à◌֮◌ܺ◌̕b; a◌֮◌̀◌ܺ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC HBASA ABOVE, LATIN SMALL LETTER B
+0061 073A 0315 0300 05AE 0062;0061 05AE 073A 0300 0315 0062;0061 05AE 073A 0300 0315 0062;0061 05AE 073A 0300 0315 0062;0061 05AE 073A 0300 0315 0062; # (a◌ܺ◌̕◌̀◌֮b; a◌֮◌ܺ◌̀◌̕b; a◌֮◌ܺ◌̀◌̕b; a◌֮◌ܺ◌̀◌̕b; a◌֮◌ܺ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC HBASA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 073B 0062;0061 1DFA 0316 073B 059A 0062;0061 1DFA 0316 073B 059A 0062;0061 1DFA 0316 073B 059A 0062;0061 1DFA 0316 073B 059A 0062; # (a◌֚◌̖◌᷺◌ܻb; a◌᷺◌̖◌ܻ◌֚b; a◌᷺◌̖◌ܻ◌֚b; a◌᷺◌̖◌ܻ◌֚b; a◌᷺◌̖◌ܻ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC HBASA BELOW, LATIN SMALL LETTER B
+0061 073B 059A 0316 1DFA 0062;0061 1DFA 073B 0316 059A 0062;0061 1DFA 073B 0316 059A 0062;0061 1DFA 073B 0316 059A 0062;0061 1DFA 073B 0316 059A 0062; # (a◌ܻ◌֚◌̖◌᷺b; a◌᷺◌ܻ◌̖◌֚b; a◌᷺◌ܻ◌̖◌֚b; a◌᷺◌ܻ◌̖◌֚b; a◌᷺◌ܻ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC HBASA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 073C 0062;0061 1DFA 0316 073C 059A 0062;0061 1DFA 0316 073C 059A 0062;0061 1DFA 0316 073C 059A 0062;0061 1DFA 0316 073C 059A 0062; # (a◌֚◌̖◌᷺◌ܼb; a◌᷺◌̖◌ܼ◌֚b; a◌᷺◌̖◌ܼ◌֚b; a◌᷺◌̖◌ܼ◌֚b; a◌᷺◌̖◌ܼ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC HBASA-ESASA DOTTED, LATIN SMALL LETTER B
+0061 073C 059A 0316 1DFA 0062;0061 1DFA 073C 0316 059A 0062;0061 1DFA 073C 0316 059A 0062;0061 1DFA 073C 0316 059A 0062;0061 1DFA 073C 0316 059A 0062; # (a◌ܼ◌֚◌̖◌᷺b; a◌᷺◌ܼ◌̖◌֚b; a◌᷺◌ܼ◌̖◌֚b; a◌᷺◌ܼ◌̖◌֚b; a◌᷺◌ܼ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC HBASA-ESASA DOTTED, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 073D 0062;00E0 05AE 073D 0315 0062;0061 05AE 0300 073D 0315 0062;00E0 05AE 073D 0315 0062;0061 05AE 0300 073D 0315 0062; # (a◌̕◌̀◌֮◌ܽb; à◌֮◌ܽ◌̕b; a◌֮◌̀◌ܽ◌̕b; à◌֮◌ܽ◌̕b; a◌֮◌̀◌ܽ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC ESASA ABOVE, LATIN SMALL LETTER B
+0061 073D 0315 0300 05AE 0062;0061 05AE 073D 0300 0315 0062;0061 05AE 073D 0300 0315 0062;0061 05AE 073D 0300 0315 0062;0061 05AE 073D 0300 0315 0062; # (a◌ܽ◌̕◌̀◌֮b; a◌֮◌ܽ◌̀◌̕b; a◌֮◌ܽ◌̀◌̕b; a◌֮◌ܽ◌̀◌̕b; a◌֮◌ܽ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC ESASA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 073E 0062;0061 1DFA 0316 073E 059A 0062;0061 1DFA 0316 073E 059A 0062;0061 1DFA 0316 073E 059A 0062;0061 1DFA 0316 073E 059A 0062; # (a◌֚◌̖◌᷺◌ܾb; a◌᷺◌̖◌ܾ◌֚b; a◌᷺◌̖◌ܾ◌֚b; a◌᷺◌̖◌ܾ◌֚b; a◌᷺◌̖◌ܾ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC ESASA BELOW, LATIN SMALL LETTER B
+0061 073E 059A 0316 1DFA 0062;0061 1DFA 073E 0316 059A 0062;0061 1DFA 073E 0316 059A 0062;0061 1DFA 073E 0316 059A 0062;0061 1DFA 073E 0316 059A 0062; # (a◌ܾ◌֚◌̖◌᷺b; a◌᷺◌ܾ◌̖◌֚b; a◌᷺◌ܾ◌̖◌֚b; a◌᷺◌ܾ◌̖◌֚b; a◌᷺◌ܾ◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC ESASA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 073F 0062;00E0 05AE 073F 0315 0062;0061 05AE 0300 073F 0315 0062;00E0 05AE 073F 0315 0062;0061 05AE 0300 073F 0315 0062; # (a◌̕◌̀◌֮◌ܿb; à◌֮◌ܿ◌̕b; a◌֮◌̀◌ܿ◌̕b; à◌֮◌ܿ◌̕b; a◌֮◌̀◌ܿ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC RWAHA, LATIN SMALL LETTER B
+0061 073F 0315 0300 05AE 0062;0061 05AE 073F 0300 0315 0062;0061 05AE 073F 0300 0315 0062;0061 05AE 073F 0300 0315 0062;0061 05AE 073F 0300 0315 0062; # (a◌ܿ◌̕◌̀◌֮b; a◌֮◌ܿ◌̀◌̕b; a◌֮◌ܿ◌̀◌̕b; a◌֮◌ܿ◌̀◌̕b; a◌֮◌ܿ◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC RWAHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0740 0062;00E0 05AE 0740 0315 0062;0061 05AE 0300 0740 0315 0062;00E0 05AE 0740 0315 0062;0061 05AE 0300 0740 0315 0062; # (a◌̕◌̀◌֮◌݀b; à◌֮◌݀◌̕b; a◌֮◌̀◌݀◌̕b; à◌֮◌݀◌̕b; a◌֮◌̀◌݀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC FEMININE DOT, LATIN SMALL LETTER B
+0061 0740 0315 0300 05AE 0062;0061 05AE 0740 0300 0315 0062;0061 05AE 0740 0300 0315 0062;0061 05AE 0740 0300 0315 0062;0061 05AE 0740 0300 0315 0062; # (a◌݀◌̕◌̀◌֮b; a◌֮◌݀◌̀◌̕b; a◌֮◌݀◌̀◌̕b; a◌֮◌݀◌̀◌̕b; a◌֮◌݀◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC FEMININE DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0741 0062;00E0 05AE 0741 0315 0062;0061 05AE 0300 0741 0315 0062;00E0 05AE 0741 0315 0062;0061 05AE 0300 0741 0315 0062; # (a◌̕◌̀◌֮◌݁b; à◌֮◌݁◌̕b; a◌֮◌̀◌݁◌̕b; à◌֮◌݁◌̕b; a◌֮◌̀◌݁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC QUSHSHAYA, LATIN SMALL LETTER B
+0061 0741 0315 0300 05AE 0062;0061 05AE 0741 0300 0315 0062;0061 05AE 0741 0300 0315 0062;0061 05AE 0741 0300 0315 0062;0061 05AE 0741 0300 0315 0062; # (a◌݁◌̕◌̀◌֮b; a◌֮◌݁◌̀◌̕b; a◌֮◌݁◌̀◌̕b; a◌֮◌݁◌̀◌̕b; a◌֮◌݁◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC QUSHSHAYA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0742 0062;0061 1DFA 0316 0742 059A 0062;0061 1DFA 0316 0742 059A 0062;0061 1DFA 0316 0742 059A 0062;0061 1DFA 0316 0742 059A 0062; # (a◌֚◌̖◌᷺◌݂b; a◌᷺◌̖◌݂◌֚b; a◌᷺◌̖◌݂◌֚b; a◌᷺◌̖◌݂◌֚b; a◌᷺◌̖◌݂◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC RUKKAKHA, LATIN SMALL LETTER B
+0061 0742 059A 0316 1DFA 0062;0061 1DFA 0742 0316 059A 0062;0061 1DFA 0742 0316 059A 0062;0061 1DFA 0742 0316 059A 0062;0061 1DFA 0742 0316 059A 0062; # (a◌݂◌֚◌̖◌᷺b; a◌᷺◌݂◌̖◌֚b; a◌᷺◌݂◌̖◌֚b; a◌᷺◌݂◌̖◌֚b; a◌᷺◌݂◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC RUKKAKHA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0743 0062;00E0 05AE 0743 0315 0062;0061 05AE 0300 0743 0315 0062;00E0 05AE 0743 0315 0062;0061 05AE 0300 0743 0315 0062; # (a◌̕◌̀◌֮◌݃b; à◌֮◌݃◌̕b; a◌֮◌̀◌݃◌̕b; à◌֮◌݃◌̕b; a◌֮◌̀◌݃◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC TWO VERTICAL DOTS ABOVE, LATIN SMALL LETTER B
+0061 0743 0315 0300 05AE 0062;0061 05AE 0743 0300 0315 0062;0061 05AE 0743 0300 0315 0062;0061 05AE 0743 0300 0315 0062;0061 05AE 0743 0300 0315 0062; # (a◌݃◌̕◌̀◌֮b; a◌֮◌݃◌̀◌̕b; a◌֮◌݃◌̀◌̕b; a◌֮◌݃◌̀◌̕b; a◌֮◌݃◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC TWO VERTICAL DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0744 0062;0061 1DFA 0316 0744 059A 0062;0061 1DFA 0316 0744 059A 0062;0061 1DFA 0316 0744 059A 0062;0061 1DFA 0316 0744 059A 0062; # (a◌֚◌̖◌᷺◌݄b; a◌᷺◌̖◌݄◌֚b; a◌᷺◌̖◌݄◌֚b; a◌᷺◌̖◌݄◌֚b; a◌᷺◌̖◌݄◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC TWO VERTICAL DOTS BELOW, LATIN SMALL LETTER B
+0061 0744 059A 0316 1DFA 0062;0061 1DFA 0744 0316 059A 0062;0061 1DFA 0744 0316 059A 0062;0061 1DFA 0744 0316 059A 0062;0061 1DFA 0744 0316 059A 0062; # (a◌݄◌֚◌̖◌᷺b; a◌᷺◌݄◌̖◌֚b; a◌᷺◌݄◌̖◌֚b; a◌᷺◌݄◌̖◌֚b; a◌᷺◌݄◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC TWO VERTICAL DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0745 0062;00E0 05AE 0745 0315 0062;0061 05AE 0300 0745 0315 0062;00E0 05AE 0745 0315 0062;0061 05AE 0300 0745 0315 0062; # (a◌̕◌̀◌֮◌݅b; à◌֮◌݅◌̕b; a◌֮◌̀◌݅◌̕b; à◌֮◌݅◌̕b; a◌֮◌̀◌݅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC THREE DOTS ABOVE, LATIN SMALL LETTER B
+0061 0745 0315 0300 05AE 0062;0061 05AE 0745 0300 0315 0062;0061 05AE 0745 0300 0315 0062;0061 05AE 0745 0300 0315 0062;0061 05AE 0745 0300 0315 0062; # (a◌݅◌̕◌̀◌֮b; a◌֮◌݅◌̀◌̕b; a◌֮◌݅◌̀◌̕b; a◌֮◌݅◌̀◌̕b; a◌֮◌݅◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC THREE DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0746 0062;0061 1DFA 0316 0746 059A 0062;0061 1DFA 0316 0746 059A 0062;0061 1DFA 0316 0746 059A 0062;0061 1DFA 0316 0746 059A 0062; # (a◌֚◌̖◌᷺◌݆b; a◌᷺◌̖◌݆◌֚b; a◌᷺◌̖◌݆◌֚b; a◌᷺◌̖◌݆◌֚b; a◌᷺◌̖◌݆◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC THREE DOTS BELOW, LATIN SMALL LETTER B
+0061 0746 059A 0316 1DFA 0062;0061 1DFA 0746 0316 059A 0062;0061 1DFA 0746 0316 059A 0062;0061 1DFA 0746 0316 059A 0062;0061 1DFA 0746 0316 059A 0062; # (a◌݆◌֚◌̖◌᷺b; a◌᷺◌݆◌̖◌֚b; a◌᷺◌݆◌̖◌֚b; a◌᷺◌݆◌̖◌֚b; a◌᷺◌݆◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC THREE DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0747 0062;00E0 05AE 0747 0315 0062;0061 05AE 0300 0747 0315 0062;00E0 05AE 0747 0315 0062;0061 05AE 0300 0747 0315 0062; # (a◌̕◌̀◌֮◌݇b; à◌֮◌݇◌̕b; a◌֮◌̀◌݇◌̕b; à◌֮◌݇◌̕b; a◌֮◌̀◌݇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC OBLIQUE LINE ABOVE, LATIN SMALL LETTER B
+0061 0747 0315 0300 05AE 0062;0061 05AE 0747 0300 0315 0062;0061 05AE 0747 0300 0315 0062;0061 05AE 0747 0300 0315 0062;0061 05AE 0747 0300 0315 0062; # (a◌݇◌̕◌̀◌֮b; a◌֮◌݇◌̀◌̕b; a◌֮◌݇◌̀◌̕b; a◌֮◌݇◌̀◌̕b; a◌֮◌݇◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC OBLIQUE LINE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0748 0062;0061 1DFA 0316 0748 059A 0062;0061 1DFA 0316 0748 059A 0062;0061 1DFA 0316 0748 059A 0062;0061 1DFA 0316 0748 059A 0062; # (a◌֚◌̖◌᷺◌݈b; a◌᷺◌̖◌݈◌֚b; a◌᷺◌̖◌݈◌֚b; a◌᷺◌̖◌݈◌֚b; a◌᷺◌̖◌݈◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SYRIAC OBLIQUE LINE BELOW, LATIN SMALL LETTER B
+0061 0748 059A 0316 1DFA 0062;0061 1DFA 0748 0316 059A 0062;0061 1DFA 0748 0316 059A 0062;0061 1DFA 0748 0316 059A 0062;0061 1DFA 0748 0316 059A 0062; # (a◌݈◌֚◌̖◌᷺b; a◌᷺◌݈◌̖◌֚b; a◌᷺◌݈◌̖◌֚b; a◌᷺◌݈◌̖◌֚b; a◌᷺◌݈◌̖◌֚b; ) LATIN SMALL LETTER A, SYRIAC OBLIQUE LINE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0749 0062;00E0 05AE 0749 0315 0062;0061 05AE 0300 0749 0315 0062;00E0 05AE 0749 0315 0062;0061 05AE 0300 0749 0315 0062; # (a◌̕◌̀◌֮◌݉b; à◌֮◌݉◌̕b; a◌֮◌̀◌݉◌̕b; à◌֮◌݉◌̕b; a◌֮◌̀◌݉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC MUSIC, LATIN SMALL LETTER B
+0061 0749 0315 0300 05AE 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062; # (a◌݉◌̕◌̀◌֮b; a◌֮◌݉◌̀◌̕b; a◌֮◌݉◌̀◌̕b; a◌֮◌݉◌̀◌̕b; a◌֮◌݉◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC MUSIC, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 074A 0062;00E0 05AE 074A 0315 0062;0061 05AE 0300 074A 0315 0062;00E0 05AE 074A 0315 0062;0061 05AE 0300 074A 0315 0062; # (a◌̕◌̀◌֮◌݊b; à◌֮◌݊◌̕b; a◌֮◌̀◌݊◌̕b; à◌֮◌݊◌̕b; a◌֮◌̀◌݊◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SYRIAC BARREKH, LATIN SMALL LETTER B
+0061 074A 0315 0300 05AE 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062; # (a◌݊◌̕◌̀◌֮b; a◌֮◌݊◌̀◌̕b; a◌֮◌݊◌̀◌̕b; a◌֮◌݊◌̀◌̕b; a◌֮◌݊◌̀◌̕b; ) LATIN SMALL LETTER A, SYRIAC BARREKH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07EB 0062;00E0 05AE 07EB 0315 0062;0061 05AE 0300 07EB 0315 0062;00E0 05AE 07EB 0315 0062;0061 05AE 0300 07EB 0315 0062; # (a◌̕◌̀◌֮◌߫b; à◌֮◌߫◌̕b; a◌֮◌̀◌߫◌̕b; à◌֮◌߫◌̕b; a◌֮◌̀◌߫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING SHORT HIGH TONE, LATIN SMALL LETTER B
+0061 07EB 0315 0300 05AE 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062; # (a◌߫◌̕◌̀◌֮b; a◌֮◌߫◌̀◌̕b; a◌֮◌߫◌̀◌̕b; a◌֮◌߫◌̀◌̕b; a◌֮◌߫◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING SHORT HIGH TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07EC 0062;00E0 05AE 07EC 0315 0062;0061 05AE 0300 07EC 0315 0062;00E0 05AE 07EC 0315 0062;0061 05AE 0300 07EC 0315 0062; # (a◌̕◌̀◌֮◌߬b; à◌֮◌߬◌̕b; a◌֮◌̀◌߬◌̕b; à◌֮◌߬◌̕b; a◌֮◌̀◌߬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING SHORT LOW TONE, LATIN SMALL LETTER B
+0061 07EC 0315 0300 05AE 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062; # (a◌߬◌̕◌̀◌֮b; a◌֮◌߬◌̀◌̕b; a◌֮◌߬◌̀◌̕b; a◌֮◌߬◌̀◌̕b; a◌֮◌߬◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING SHORT LOW TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07ED 0062;00E0 05AE 07ED 0315 0062;0061 05AE 0300 07ED 0315 0062;00E0 05AE 07ED 0315 0062;0061 05AE 0300 07ED 0315 0062; # (a◌̕◌̀◌֮◌߭b; à◌֮◌߭◌̕b; a◌֮◌̀◌߭◌̕b; à◌֮◌߭◌̕b; a◌֮◌̀◌߭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING SHORT RISING TONE, LATIN SMALL LETTER B
+0061 07ED 0315 0300 05AE 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062; # (a◌߭◌̕◌̀◌֮b; a◌֮◌߭◌̀◌̕b; a◌֮◌߭◌̀◌̕b; a◌֮◌߭◌̀◌̕b; a◌֮◌߭◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING SHORT RISING TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07EE 0062;00E0 05AE 07EE 0315 0062;0061 05AE 0300 07EE 0315 0062;00E0 05AE 07EE 0315 0062;0061 05AE 0300 07EE 0315 0062; # (a◌̕◌̀◌֮◌߮b; à◌֮◌߮◌̕b; a◌֮◌̀◌߮◌̕b; à◌֮◌߮◌̕b; a◌֮◌̀◌߮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING LONG DESCENDING TONE, LATIN SMALL LETTER B
+0061 07EE 0315 0300 05AE 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062; # (a◌߮◌̕◌̀◌֮b; a◌֮◌߮◌̀◌̕b; a◌֮◌߮◌̀◌̕b; a◌֮◌߮◌̀◌̕b; a◌֮◌߮◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING LONG DESCENDING TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07EF 0062;00E0 05AE 07EF 0315 0062;0061 05AE 0300 07EF 0315 0062;00E0 05AE 07EF 0315 0062;0061 05AE 0300 07EF 0315 0062; # (a◌̕◌̀◌֮◌߯b; à◌֮◌߯◌̕b; a◌֮◌̀◌߯◌̕b; à◌֮◌߯◌̕b; a◌֮◌̀◌߯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING LONG HIGH TONE, LATIN SMALL LETTER B
+0061 07EF 0315 0300 05AE 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062; # (a◌߯◌̕◌̀◌֮b; a◌֮◌߯◌̀◌̕b; a◌֮◌߯◌̀◌̕b; a◌֮◌߯◌̀◌̕b; a◌֮◌߯◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING LONG HIGH TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07F0 0062;00E0 05AE 07F0 0315 0062;0061 05AE 0300 07F0 0315 0062;00E0 05AE 07F0 0315 0062;0061 05AE 0300 07F0 0315 0062; # (a◌̕◌̀◌֮◌߰b; à◌֮◌߰◌̕b; a◌֮◌̀◌߰◌̕b; à◌֮◌߰◌̕b; a◌֮◌̀◌߰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING LONG LOW TONE, LATIN SMALL LETTER B
+0061 07F0 0315 0300 05AE 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062; # (a◌߰◌̕◌̀◌֮b; a◌֮◌߰◌̀◌̕b; a◌֮◌߰◌̀◌̕b; a◌֮◌߰◌̀◌̕b; a◌֮◌߰◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING LONG LOW TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07F1 0062;00E0 05AE 07F1 0315 0062;0061 05AE 0300 07F1 0315 0062;00E0 05AE 07F1 0315 0062;0061 05AE 0300 07F1 0315 0062; # (a◌̕◌̀◌֮◌߱b; à◌֮◌߱◌̕b; a◌֮◌̀◌߱◌̕b; à◌֮◌߱◌̕b; a◌֮◌̀◌߱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING LONG RISING TONE, LATIN SMALL LETTER B
+0061 07F1 0315 0300 05AE 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062; # (a◌߱◌̕◌̀◌֮b; a◌֮◌߱◌̀◌̕b; a◌֮◌߱◌̀◌̕b; a◌֮◌߱◌̀◌̕b; a◌֮◌߱◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING LONG RISING TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 07F2 0062;0061 1DFA 0316 07F2 059A 0062;0061 1DFA 0316 07F2 059A 0062;0061 1DFA 0316 07F2 059A 0062;0061 1DFA 0316 07F2 059A 0062; # (a◌֚◌̖◌᷺◌߲b; a◌᷺◌̖◌߲◌֚b; a◌᷺◌̖◌߲◌֚b; a◌᷺◌̖◌߲◌֚b; a◌᷺◌̖◌߲◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, NKO COMBINING NASALIZATION MARK, LATIN SMALL LETTER B
+0061 07F2 059A 0316 1DFA 0062;0061 1DFA 07F2 0316 059A 0062;0061 1DFA 07F2 0316 059A 0062;0061 1DFA 07F2 0316 059A 0062;0061 1DFA 07F2 0316 059A 0062; # (a◌߲◌֚◌̖◌᷺b; a◌᷺◌߲◌̖◌֚b; a◌᷺◌߲◌̖◌֚b; a◌᷺◌߲◌̖◌֚b; a◌᷺◌߲◌̖◌֚b; ) LATIN SMALL LETTER A, NKO COMBINING NASALIZATION MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 07F3 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062; # (a◌̕◌̀◌֮◌߳b; à◌֮◌߳◌̕b; a◌֮◌̀◌߳◌̕b; à◌֮◌߳◌̕b; a◌֮◌̀◌߳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NKO COMBINING DOUBLE DOT ABOVE, LATIN SMALL LETTER B
+0061 07F3 0315 0300 05AE 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062; # (a◌߳◌̕◌̀◌֮b; a◌֮◌߳◌̀◌̕b; a◌֮◌߳◌̀◌̕b; a◌֮◌߳◌̀◌̕b; a◌֮◌߳◌̀◌̕b; ) LATIN SMALL LETTER A, NKO COMBINING DOUBLE DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 07FD 0062;0061 1DFA 0316 07FD 059A 0062;0061 1DFA 0316 07FD 059A 0062;0061 1DFA 0316 07FD 059A 0062;0061 1DFA 0316 07FD 059A 0062; # (a◌֚◌̖◌᷺◌߽b; a◌᷺◌̖◌߽◌֚b; a◌᷺◌̖◌߽◌֚b; a◌᷺◌̖◌߽◌֚b; a◌᷺◌̖◌߽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, NKO DANTAYALAN, LATIN SMALL LETTER B
+0061 07FD 059A 0316 1DFA 0062;0061 1DFA 07FD 0316 059A 0062;0061 1DFA 07FD 0316 059A 0062;0061 1DFA 07FD 0316 059A 0062;0061 1DFA 07FD 0316 059A 0062; # (a◌߽◌֚◌̖◌᷺b; a◌᷺◌߽◌̖◌֚b; a◌᷺◌߽◌̖◌֚b; a◌᷺◌߽◌̖◌֚b; a◌᷺◌߽◌̖◌֚b; ) LATIN SMALL LETTER A, NKO DANTAYALAN, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0816 0062;00E0 05AE 0816 0315 0062;0061 05AE 0300 0816 0315 0062;00E0 05AE 0816 0315 0062;0061 05AE 0300 0816 0315 0062; # (a◌̕◌̀◌֮◌ࠖb; à◌֮◌ࠖ◌̕b; a◌֮◌̀◌ࠖ◌̕b; à◌֮◌ࠖ◌̕b; a◌֮◌̀◌ࠖ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN MARK IN, LATIN SMALL LETTER B
+0061 0816 0315 0300 05AE 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062; # (a◌ࠖ◌̕◌̀◌֮b; a◌֮◌ࠖ◌̀◌̕b; a◌֮◌ࠖ◌̀◌̕b; a◌֮◌ࠖ◌̀◌̕b; a◌֮◌ࠖ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN MARK IN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0817 0062;00E0 05AE 0817 0315 0062;0061 05AE 0300 0817 0315 0062;00E0 05AE 0817 0315 0062;0061 05AE 0300 0817 0315 0062; # (a◌̕◌̀◌֮◌ࠗb; à◌֮◌ࠗ◌̕b; a◌֮◌̀◌ࠗ◌̕b; à◌֮◌ࠗ◌̕b; a◌֮◌̀◌ࠗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN MARK IN-ALAF, LATIN SMALL LETTER B
+0061 0817 0315 0300 05AE 0062;0061 05AE 0817 0300 0315 0062;0061 05AE 0817 0300 0315 0062;0061 05AE 0817 0300 0315 0062;0061 05AE 0817 0300 0315 0062; # (a◌ࠗ◌̕◌̀◌֮b; a◌֮◌ࠗ◌̀◌̕b; a◌֮◌ࠗ◌̀◌̕b; a◌֮◌ࠗ◌̀◌̕b; a◌֮◌ࠗ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN MARK IN-ALAF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0818 0062;00E0 05AE 0818 0315 0062;0061 05AE 0300 0818 0315 0062;00E0 05AE 0818 0315 0062;0061 05AE 0300 0818 0315 0062; # (a◌̕◌̀◌֮◌࠘b; à◌֮◌࠘◌̕b; a◌֮◌̀◌࠘◌̕b; à◌֮◌࠘◌̕b; a◌֮◌̀◌࠘◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN MARK OCCLUSION, LATIN SMALL LETTER B
+0061 0818 0315 0300 05AE 0062;0061 05AE 0818 0300 0315 0062;0061 05AE 0818 0300 0315 0062;0061 05AE 0818 0300 0315 0062;0061 05AE 0818 0300 0315 0062; # (a◌࠘◌̕◌̀◌֮b; a◌֮◌࠘◌̀◌̕b; a◌֮◌࠘◌̀◌̕b; a◌֮◌࠘◌̀◌̕b; a◌֮◌࠘◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN MARK OCCLUSION, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0819 0062;00E0 05AE 0819 0315 0062;0061 05AE 0300 0819 0315 0062;00E0 05AE 0819 0315 0062;0061 05AE 0300 0819 0315 0062; # (a◌̕◌̀◌֮◌࠙b; à◌֮◌࠙◌̕b; a◌֮◌̀◌࠙◌̕b; à◌֮◌࠙◌̕b; a◌֮◌̀◌࠙◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN MARK DAGESH, LATIN SMALL LETTER B
+0061 0819 0315 0300 05AE 0062;0061 05AE 0819 0300 0315 0062;0061 05AE 0819 0300 0315 0062;0061 05AE 0819 0300 0315 0062;0061 05AE 0819 0300 0315 0062; # (a◌࠙◌̕◌̀◌֮b; a◌֮◌࠙◌̀◌̕b; a◌֮◌࠙◌̀◌̕b; a◌֮◌࠙◌̀◌̕b; a◌֮◌࠙◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN MARK DAGESH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 081B 0062;00E0 05AE 081B 0315 0062;0061 05AE 0300 081B 0315 0062;00E0 05AE 081B 0315 0062;0061 05AE 0300 081B 0315 0062; # (a◌̕◌̀◌֮◌ࠛb; à◌֮◌ࠛ◌̕b; a◌֮◌̀◌ࠛ◌̕b; à◌֮◌ࠛ◌̕b; a◌֮◌̀◌ࠛ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN MARK EPENTHETIC YUT, LATIN SMALL LETTER B
+0061 081B 0315 0300 05AE 0062;0061 05AE 081B 0300 0315 0062;0061 05AE 081B 0300 0315 0062;0061 05AE 081B 0300 0315 0062;0061 05AE 081B 0300 0315 0062; # (a◌ࠛ◌̕◌̀◌֮b; a◌֮◌ࠛ◌̀◌̕b; a◌֮◌ࠛ◌̀◌̕b; a◌֮◌ࠛ◌̀◌̕b; a◌֮◌ࠛ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN MARK EPENTHETIC YUT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 081C 0062;00E0 05AE 081C 0315 0062;0061 05AE 0300 081C 0315 0062;00E0 05AE 081C 0315 0062;0061 05AE 0300 081C 0315 0062; # (a◌̕◌̀◌֮◌ࠜb; à◌֮◌ࠜ◌̕b; a◌֮◌̀◌ࠜ◌̕b; à◌֮◌ࠜ◌̕b; a◌֮◌̀◌ࠜ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN LONG E, LATIN SMALL LETTER B
+0061 081C 0315 0300 05AE 0062;0061 05AE 081C 0300 0315 0062;0061 05AE 081C 0300 0315 0062;0061 05AE 081C 0300 0315 0062;0061 05AE 081C 0300 0315 0062; # (a◌ࠜ◌̕◌̀◌֮b; a◌֮◌ࠜ◌̀◌̕b; a◌֮◌ࠜ◌̀◌̕b; a◌֮◌ࠜ◌̀◌̕b; a◌֮◌ࠜ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN LONG E, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 081D 0062;00E0 05AE 081D 0315 0062;0061 05AE 0300 081D 0315 0062;00E0 05AE 081D 0315 0062;0061 05AE 0300 081D 0315 0062; # (a◌̕◌̀◌֮◌ࠝb; à◌֮◌ࠝ◌̕b; a◌֮◌̀◌ࠝ◌̕b; à◌֮◌ࠝ◌̕b; a◌֮◌̀◌ࠝ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN E, LATIN SMALL LETTER B
+0061 081D 0315 0300 05AE 0062;0061 05AE 081D 0300 0315 0062;0061 05AE 081D 0300 0315 0062;0061 05AE 081D 0300 0315 0062;0061 05AE 081D 0300 0315 0062; # (a◌ࠝ◌̕◌̀◌֮b; a◌֮◌ࠝ◌̀◌̕b; a◌֮◌ࠝ◌̀◌̕b; a◌֮◌ࠝ◌̀◌̕b; a◌֮◌ࠝ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN E, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 081E 0062;00E0 05AE 081E 0315 0062;0061 05AE 0300 081E 0315 0062;00E0 05AE 081E 0315 0062;0061 05AE 0300 081E 0315 0062; # (a◌̕◌̀◌֮◌ࠞb; à◌֮◌ࠞ◌̕b; a◌֮◌̀◌ࠞ◌̕b; à◌֮◌ࠞ◌̕b; a◌֮◌̀◌ࠞ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN OVERLONG AA, LATIN SMALL LETTER B
+0061 081E 0315 0300 05AE 0062;0061 05AE 081E 0300 0315 0062;0061 05AE 081E 0300 0315 0062;0061 05AE 081E 0300 0315 0062;0061 05AE 081E 0300 0315 0062; # (a◌ࠞ◌̕◌̀◌֮b; a◌֮◌ࠞ◌̀◌̕b; a◌֮◌ࠞ◌̀◌̕b; a◌֮◌ࠞ◌̀◌̕b; a◌֮◌ࠞ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN OVERLONG AA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 081F 0062;00E0 05AE 081F 0315 0062;0061 05AE 0300 081F 0315 0062;00E0 05AE 081F 0315 0062;0061 05AE 0300 081F 0315 0062; # (a◌̕◌̀◌֮◌ࠟb; à◌֮◌ࠟ◌̕b; a◌֮◌̀◌ࠟ◌̕b; à◌֮◌ࠟ◌̕b; a◌֮◌̀◌ࠟ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN LONG AA, LATIN SMALL LETTER B
+0061 081F 0315 0300 05AE 0062;0061 05AE 081F 0300 0315 0062;0061 05AE 081F 0300 0315 0062;0061 05AE 081F 0300 0315 0062;0061 05AE 081F 0300 0315 0062; # (a◌ࠟ◌̕◌̀◌֮b; a◌֮◌ࠟ◌̀◌̕b; a◌֮◌ࠟ◌̀◌̕b; a◌֮◌ࠟ◌̀◌̕b; a◌֮◌ࠟ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN LONG AA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0820 0062;00E0 05AE 0820 0315 0062;0061 05AE 0300 0820 0315 0062;00E0 05AE 0820 0315 0062;0061 05AE 0300 0820 0315 0062; # (a◌̕◌̀◌֮◌ࠠb; à◌֮◌ࠠ◌̕b; a◌֮◌̀◌ࠠ◌̕b; à◌֮◌ࠠ◌̕b; a◌֮◌̀◌ࠠ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0820 0315 0300 05AE 0062;0061 05AE 0820 0300 0315 0062;0061 05AE 0820 0300 0315 0062;0061 05AE 0820 0300 0315 0062;0061 05AE 0820 0300 0315 0062; # (a◌ࠠ◌̕◌̀◌֮b; a◌֮◌ࠠ◌̀◌̕b; a◌֮◌ࠠ◌̀◌̕b; a◌֮◌ࠠ◌̀◌̕b; a◌֮◌ࠠ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN AA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0821 0062;00E0 05AE 0821 0315 0062;0061 05AE 0300 0821 0315 0062;00E0 05AE 0821 0315 0062;0061 05AE 0300 0821 0315 0062; # (a◌̕◌̀◌֮◌ࠡb; à◌֮◌ࠡ◌̕b; a◌֮◌̀◌ࠡ◌̕b; à◌֮◌ࠡ◌̕b; a◌֮◌̀◌ࠡ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN OVERLONG A, LATIN SMALL LETTER B
+0061 0821 0315 0300 05AE 0062;0061 05AE 0821 0300 0315 0062;0061 05AE 0821 0300 0315 0062;0061 05AE 0821 0300 0315 0062;0061 05AE 0821 0300 0315 0062; # (a◌ࠡ◌̕◌̀◌֮b; a◌֮◌ࠡ◌̀◌̕b; a◌֮◌ࠡ◌̀◌̕b; a◌֮◌ࠡ◌̀◌̕b; a◌֮◌ࠡ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN OVERLONG A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0822 0062;00E0 05AE 0822 0315 0062;0061 05AE 0300 0822 0315 0062;00E0 05AE 0822 0315 0062;0061 05AE 0300 0822 0315 0062; # (a◌̕◌̀◌֮◌ࠢb; à◌֮◌ࠢ◌̕b; a◌֮◌̀◌ࠢ◌̕b; à◌֮◌ࠢ◌̕b; a◌֮◌̀◌ࠢ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN LONG A, LATIN SMALL LETTER B
+0061 0822 0315 0300 05AE 0062;0061 05AE 0822 0300 0315 0062;0061 05AE 0822 0300 0315 0062;0061 05AE 0822 0300 0315 0062;0061 05AE 0822 0300 0315 0062; # (a◌ࠢ◌̕◌̀◌֮b; a◌֮◌ࠢ◌̀◌̕b; a◌֮◌ࠢ◌̀◌̕b; a◌֮◌ࠢ◌̀◌̕b; a◌֮◌ࠢ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN LONG A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0823 0062;00E0 05AE 0823 0315 0062;0061 05AE 0300 0823 0315 0062;00E0 05AE 0823 0315 0062;0061 05AE 0300 0823 0315 0062; # (a◌̕◌̀◌֮◌ࠣb; à◌֮◌ࠣ◌̕b; a◌֮◌̀◌ࠣ◌̕b; à◌֮◌ࠣ◌̕b; a◌֮◌̀◌ࠣ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN A, LATIN SMALL LETTER B
+0061 0823 0315 0300 05AE 0062;0061 05AE 0823 0300 0315 0062;0061 05AE 0823 0300 0315 0062;0061 05AE 0823 0300 0315 0062;0061 05AE 0823 0300 0315 0062; # (a◌ࠣ◌̕◌̀◌֮b; a◌֮◌ࠣ◌̀◌̕b; a◌֮◌ࠣ◌̀◌̕b; a◌֮◌ࠣ◌̀◌̕b; a◌֮◌ࠣ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0825 0062;00E0 05AE 0825 0315 0062;0061 05AE 0300 0825 0315 0062;00E0 05AE 0825 0315 0062;0061 05AE 0300 0825 0315 0062; # (a◌̕◌̀◌֮◌ࠥb; à◌֮◌ࠥ◌̕b; a◌֮◌̀◌ࠥ◌̕b; à◌֮◌ࠥ◌̕b; a◌֮◌̀◌ࠥ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN SHORT A, LATIN SMALL LETTER B
+0061 0825 0315 0300 05AE 0062;0061 05AE 0825 0300 0315 0062;0061 05AE 0825 0300 0315 0062;0061 05AE 0825 0300 0315 0062;0061 05AE 0825 0300 0315 0062; # (a◌ࠥ◌̕◌̀◌֮b; a◌֮◌ࠥ◌̀◌̕b; a◌֮◌ࠥ◌̀◌̕b; a◌֮◌ࠥ◌̀◌̕b; a◌֮◌ࠥ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN SHORT A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0826 0062;00E0 05AE 0826 0315 0062;0061 05AE 0300 0826 0315 0062;00E0 05AE 0826 0315 0062;0061 05AE 0300 0826 0315 0062; # (a◌̕◌̀◌֮◌ࠦb; à◌֮◌ࠦ◌̕b; a◌֮◌̀◌ࠦ◌̕b; à◌֮◌ࠦ◌̕b; a◌֮◌̀◌ࠦ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN LONG U, LATIN SMALL LETTER B
+0061 0826 0315 0300 05AE 0062;0061 05AE 0826 0300 0315 0062;0061 05AE 0826 0300 0315 0062;0061 05AE 0826 0300 0315 0062;0061 05AE 0826 0300 0315 0062; # (a◌ࠦ◌̕◌̀◌֮b; a◌֮◌ࠦ◌̀◌̕b; a◌֮◌ࠦ◌̀◌̕b; a◌֮◌ࠦ◌̀◌̕b; a◌֮◌ࠦ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN LONG U, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0827 0062;00E0 05AE 0827 0315 0062;0061 05AE 0300 0827 0315 0062;00E0 05AE 0827 0315 0062;0061 05AE 0300 0827 0315 0062; # (a◌̕◌̀◌֮◌ࠧb; à◌֮◌ࠧ◌̕b; a◌֮◌̀◌ࠧ◌̕b; à◌֮◌ࠧ◌̕b; a◌֮◌̀◌ࠧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0827 0315 0300 05AE 0062;0061 05AE 0827 0300 0315 0062;0061 05AE 0827 0300 0315 0062;0061 05AE 0827 0300 0315 0062;0061 05AE 0827 0300 0315 0062; # (a◌ࠧ◌̕◌̀◌֮b; a◌֮◌ࠧ◌̀◌̕b; a◌֮◌ࠧ◌̀◌̕b; a◌֮◌ࠧ◌̀◌̕b; a◌֮◌ࠧ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN U, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0829 0062;00E0 05AE 0829 0315 0062;0061 05AE 0300 0829 0315 0062;00E0 05AE 0829 0315 0062;0061 05AE 0300 0829 0315 0062; # (a◌̕◌̀◌֮◌ࠩb; à◌֮◌ࠩ◌̕b; a◌֮◌̀◌ࠩ◌̕b; à◌֮◌ࠩ◌̕b; a◌֮◌̀◌ࠩ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN LONG I, LATIN SMALL LETTER B
+0061 0829 0315 0300 05AE 0062;0061 05AE 0829 0300 0315 0062;0061 05AE 0829 0300 0315 0062;0061 05AE 0829 0300 0315 0062;0061 05AE 0829 0300 0315 0062; # (a◌ࠩ◌̕◌̀◌֮b; a◌֮◌ࠩ◌̀◌̕b; a◌֮◌ࠩ◌̀◌̕b; a◌֮◌ࠩ◌̀◌̕b; a◌֮◌ࠩ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN LONG I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 082A 0062;00E0 05AE 082A 0315 0062;0061 05AE 0300 082A 0315 0062;00E0 05AE 082A 0315 0062;0061 05AE 0300 082A 0315 0062; # (a◌̕◌̀◌֮◌ࠪb; à◌֮◌ࠪ◌̕b; a◌֮◌̀◌ࠪ◌̕b; à◌֮◌ࠪ◌̕b; a◌֮◌̀◌ࠪ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN I, LATIN SMALL LETTER B
+0061 082A 0315 0300 05AE 0062;0061 05AE 082A 0300 0315 0062;0061 05AE 082A 0300 0315 0062;0061 05AE 082A 0300 0315 0062;0061 05AE 082A 0300 0315 0062; # (a◌ࠪ◌̕◌̀◌֮b; a◌֮◌ࠪ◌̀◌̕b; a◌֮◌ࠪ◌̀◌̕b; a◌֮◌ࠪ◌̀◌̕b; a◌֮◌ࠪ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 082B 0062;00E0 05AE 082B 0315 0062;0061 05AE 0300 082B 0315 0062;00E0 05AE 082B 0315 0062;0061 05AE 0300 082B 0315 0062; # (a◌̕◌̀◌֮◌ࠫb; à◌֮◌ࠫ◌̕b; a◌֮◌̀◌ࠫ◌̕b; à◌֮◌ࠫ◌̕b; a◌֮◌̀◌ࠫ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN O, LATIN SMALL LETTER B
+0061 082B 0315 0300 05AE 0062;0061 05AE 082B 0300 0315 0062;0061 05AE 082B 0300 0315 0062;0061 05AE 082B 0300 0315 0062;0061 05AE 082B 0300 0315 0062; # (a◌ࠫ◌̕◌̀◌֮b; a◌֮◌ࠫ◌̀◌̕b; a◌֮◌ࠫ◌̀◌̕b; a◌֮◌ࠫ◌̀◌̕b; a◌֮◌ࠫ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN O, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 082C 0062;00E0 05AE 082C 0315 0062;0061 05AE 0300 082C 0315 0062;00E0 05AE 082C 0315 0062;0061 05AE 0300 082C 0315 0062; # (a◌̕◌̀◌֮◌ࠬb; à◌֮◌ࠬ◌̕b; a◌֮◌̀◌ࠬ◌̕b; à◌֮◌ࠬ◌̕b; a◌֮◌̀◌ࠬ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN VOWEL SIGN SUKUN, LATIN SMALL LETTER B
+0061 082C 0315 0300 05AE 0062;0061 05AE 082C 0300 0315 0062;0061 05AE 082C 0300 0315 0062;0061 05AE 082C 0300 0315 0062;0061 05AE 082C 0300 0315 0062; # (a◌ࠬ◌̕◌̀◌֮b; a◌֮◌ࠬ◌̀◌̕b; a◌֮◌ࠬ◌̀◌̕b; a◌֮◌ࠬ◌̀◌̕b; a◌֮◌ࠬ◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN VOWEL SIGN SUKUN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 082D 0062;00E0 05AE 082D 0315 0062;0061 05AE 0300 082D 0315 0062;00E0 05AE 082D 0315 0062;0061 05AE 0300 082D 0315 0062; # (a◌̕◌̀◌֮◌࠭b; à◌֮◌࠭◌̕b; a◌֮◌̀◌࠭◌̕b; à◌֮◌࠭◌̕b; a◌֮◌̀◌࠭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SAMARITAN MARK NEQUDAA, LATIN SMALL LETTER B
+0061 082D 0315 0300 05AE 0062;0061 05AE 082D 0300 0315 0062;0061 05AE 082D 0300 0315 0062;0061 05AE 082D 0300 0315 0062;0061 05AE 082D 0300 0315 0062; # (a◌࠭◌̕◌̀◌֮b; a◌֮◌࠭◌̀◌̕b; a◌֮◌࠭◌̀◌̕b; a◌֮◌࠭◌̀◌̕b; a◌֮◌࠭◌̀◌̕b; ) LATIN SMALL LETTER A, SAMARITAN MARK NEQUDAA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0859 0062;0061 1DFA 0316 0859 059A 0062;0061 1DFA 0316 0859 059A 0062;0061 1DFA 0316 0859 059A 0062;0061 1DFA 0316 0859 059A 0062; # (a◌֚◌̖◌᷺◌࡙b; a◌᷺◌̖◌࡙◌֚b; a◌᷺◌̖◌࡙◌֚b; a◌᷺◌̖◌࡙◌֚b; a◌᷺◌̖◌࡙◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MANDAIC AFFRICATION MARK, LATIN SMALL LETTER B
+0061 0859 059A 0316 1DFA 0062;0061 1DFA 0859 0316 059A 0062;0061 1DFA 0859 0316 059A 0062;0061 1DFA 0859 0316 059A 0062;0061 1DFA 0859 0316 059A 0062; # (a◌࡙◌֚◌̖◌᷺b; a◌᷺◌࡙◌̖◌֚b; a◌᷺◌࡙◌̖◌֚b; a◌᷺◌࡙◌̖◌֚b; a◌᷺◌࡙◌̖◌֚b; ) LATIN SMALL LETTER A, MANDAIC AFFRICATION MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 085A 0062;0061 1DFA 0316 085A 059A 0062;0061 1DFA 0316 085A 059A 0062;0061 1DFA 0316 085A 059A 0062;0061 1DFA 0316 085A 059A 0062; # (a◌֚◌̖◌᷺◌࡚b; a◌᷺◌̖◌࡚◌֚b; a◌᷺◌̖◌࡚◌֚b; a◌᷺◌̖◌࡚◌֚b; a◌᷺◌̖◌࡚◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MANDAIC VOCALIZATION MARK, LATIN SMALL LETTER B
+0061 085A 059A 0316 1DFA 0062;0061 1DFA 085A 0316 059A 0062;0061 1DFA 085A 0316 059A 0062;0061 1DFA 085A 0316 059A 0062;0061 1DFA 085A 0316 059A 0062; # (a◌࡚◌֚◌̖◌᷺b; a◌᷺◌࡚◌̖◌֚b; a◌᷺◌࡚◌̖◌֚b; a◌᷺◌࡚◌̖◌֚b; a◌᷺◌࡚◌̖◌֚b; ) LATIN SMALL LETTER A, MANDAIC VOCALIZATION MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 085B 0062;0061 1DFA 0316 085B 059A 0062;0061 1DFA 0316 085B 059A 0062;0061 1DFA 0316 085B 059A 0062;0061 1DFA 0316 085B 059A 0062; # (a◌֚◌̖◌᷺◌࡛b; a◌᷺◌̖◌࡛◌֚b; a◌᷺◌̖◌࡛◌֚b; a◌᷺◌̖◌࡛◌֚b; a◌᷺◌̖◌࡛◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MANDAIC GEMINATION MARK, LATIN SMALL LETTER B
+0061 085B 059A 0316 1DFA 0062;0061 1DFA 085B 0316 059A 0062;0061 1DFA 085B 0316 059A 0062;0061 1DFA 085B 0316 059A 0062;0061 1DFA 085B 0316 059A 0062; # (a◌࡛◌֚◌̖◌᷺b; a◌᷺◌࡛◌̖◌֚b; a◌᷺◌࡛◌̖◌֚b; a◌᷺◌࡛◌̖◌֚b; a◌᷺◌࡛◌̖◌֚b; ) LATIN SMALL LETTER A, MANDAIC GEMINATION MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0898 0062;00E0 05AE 0898 0315 0062;0061 05AE 0300 0898 0315 0062;00E0 05AE 0898 0315 0062;0061 05AE 0300 0898 0315 0062; # (a◌̕◌̀◌֮◌࢘b; à◌֮◌࢘◌̕b; a◌֮◌̀◌࢘◌̕b; à◌֮◌࢘◌̕b; a◌֮◌̀◌࢘◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD AL-JUZ, LATIN SMALL LETTER B
+0061 0898 0315 0300 05AE 0062;0061 05AE 0898 0300 0315 0062;0061 05AE 0898 0300 0315 0062;0061 05AE 0898 0300 0315 0062;0061 05AE 0898 0300 0315 0062; # (a◌࢘◌̕◌̀◌֮b; a◌֮◌࢘◌̀◌̕b; a◌֮◌࢘◌̀◌̕b; a◌֮◌࢘◌̀◌̕b; a◌֮◌࢘◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD AL-JUZ, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0899 0062;0061 1DFA 0316 0899 059A 0062;0061 1DFA 0316 0899 059A 0062;0061 1DFA 0316 0899 059A 0062;0061 1DFA 0316 0899 059A 0062; # (a◌֚◌̖◌᷺◌࢙b; a◌᷺◌̖◌࢙◌֚b; a◌᷺◌̖◌࢙◌֚b; a◌᷺◌̖◌࢙◌֚b; a◌᷺◌̖◌࢙◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD ISHMAAM, LATIN SMALL LETTER B
+0061 0899 059A 0316 1DFA 0062;0061 1DFA 0899 0316 059A 0062;0061 1DFA 0899 0316 059A 0062;0061 1DFA 0899 0316 059A 0062;0061 1DFA 0899 0316 059A 0062; # (a◌࢙◌֚◌̖◌᷺b; a◌᷺◌࢙◌̖◌֚b; a◌᷺◌࢙◌̖◌֚b; a◌᷺◌࢙◌̖◌֚b; a◌᷺◌࢙◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD ISHMAAM, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 089A 0062;0061 1DFA 0316 089A 059A 0062;0061 1DFA 0316 089A 059A 0062;0061 1DFA 0316 089A 059A 0062;0061 1DFA 0316 089A 059A 0062; # (a◌֚◌̖◌᷺◌࢚b; a◌᷺◌̖◌࢚◌֚b; a◌᷺◌̖◌࢚◌֚b; a◌᷺◌̖◌࢚◌֚b; a◌᷺◌̖◌࢚◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD IMAALA, LATIN SMALL LETTER B
+0061 089A 059A 0316 1DFA 0062;0061 1DFA 089A 0316 059A 0062;0061 1DFA 089A 0316 059A 0062;0061 1DFA 089A 0316 059A 0062;0061 1DFA 089A 0316 059A 0062; # (a◌࢚◌֚◌̖◌᷺b; a◌᷺◌࢚◌̖◌֚b; a◌᷺◌࢚◌̖◌֚b; a◌᷺◌࢚◌̖◌֚b; a◌᷺◌࢚◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD IMAALA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 089B 0062;0061 1DFA 0316 089B 059A 0062;0061 1DFA 0316 089B 059A 0062;0061 1DFA 0316 089B 059A 0062;0061 1DFA 0316 089B 059A 0062; # (a◌֚◌̖◌᷺◌࢛b; a◌᷺◌̖◌࢛◌֚b; a◌᷺◌̖◌࢛◌֚b; a◌᷺◌̖◌࢛◌֚b; a◌᷺◌̖◌࢛◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD TASHEEL, LATIN SMALL LETTER B
+0061 089B 059A 0316 1DFA 0062;0061 1DFA 089B 0316 059A 0062;0061 1DFA 089B 0316 059A 0062;0061 1DFA 089B 0316 059A 0062;0061 1DFA 089B 0316 059A 0062; # (a◌࢛◌֚◌̖◌᷺b; a◌᷺◌࢛◌̖◌֚b; a◌᷺◌࢛◌̖◌֚b; a◌᷺◌࢛◌̖◌֚b; a◌᷺◌࢛◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD TASHEEL, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 089C 0062;00E0 05AE 089C 0315 0062;0061 05AE 0300 089C 0315 0062;00E0 05AE 089C 0315 0062;0061 05AE 0300 089C 0315 0062; # (a◌̕◌̀◌֮◌࢜b; à◌֮◌࢜◌̕b; a◌֮◌̀◌࢜◌̕b; à◌֮◌࢜◌̕b; a◌֮◌̀◌࢜◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC MADDA WAAJIB, LATIN SMALL LETTER B
+0061 089C 0315 0300 05AE 0062;0061 05AE 089C 0300 0315 0062;0061 05AE 089C 0300 0315 0062;0061 05AE 089C 0300 0315 0062;0061 05AE 089C 0300 0315 0062; # (a◌࢜◌̕◌̀◌֮b; a◌֮◌࢜◌̀◌̕b; a◌֮◌࢜◌̀◌̕b; a◌֮◌࢜◌̀◌̕b; a◌֮◌࢜◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC MADDA WAAJIB, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 089D 0062;00E0 05AE 089D 0315 0062;0061 05AE 0300 089D 0315 0062;00E0 05AE 089D 0315 0062;0061 05AE 0300 089D 0315 0062; # (a◌̕◌̀◌֮◌࢝b; à◌֮◌࢝◌̕b; a◌֮◌̀◌࢝◌̕b; à◌֮◌࢝◌̕b; a◌֮◌̀◌࢝◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SUPERSCRIPT ALEF MOKHASSAS, LATIN SMALL LETTER B
+0061 089D 0315 0300 05AE 0062;0061 05AE 089D 0300 0315 0062;0061 05AE 089D 0300 0315 0062;0061 05AE 089D 0300 0315 0062;0061 05AE 089D 0300 0315 0062; # (a◌࢝◌̕◌̀◌֮b; a◌֮◌࢝◌̀◌̕b; a◌֮◌࢝◌̀◌̕b; a◌֮◌࢝◌̀◌̕b; a◌֮◌࢝◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SUPERSCRIPT ALEF MOKHASSAS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 089E 0062;00E0 05AE 089E 0315 0062;0061 05AE 0300 089E 0315 0062;00E0 05AE 089E 0315 0062;0061 05AE 0300 089E 0315 0062; # (a◌̕◌̀◌֮◌࢞b; à◌֮◌࢞◌̕b; a◌֮◌̀◌࢞◌̕b; à◌֮◌࢞◌̕b; a◌֮◌̀◌࢞◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC DOUBLED MADDA, LATIN SMALL LETTER B
+0061 089E 0315 0300 05AE 0062;0061 05AE 089E 0300 0315 0062;0061 05AE 089E 0300 0315 0062;0061 05AE 089E 0300 0315 0062;0061 05AE 089E 0300 0315 0062; # (a◌࢞◌̕◌̀◌֮b; a◌֮◌࢞◌̀◌̕b; a◌֮◌࢞◌̀◌̕b; a◌֮◌࢞◌̀◌̕b; a◌֮◌࢞◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC DOUBLED MADDA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 089F 0062;00E0 05AE 089F 0315 0062;0061 05AE 0300 089F 0315 0062;00E0 05AE 089F 0315 0062;0061 05AE 0300 089F 0315 0062; # (a◌̕◌̀◌֮◌࢟b; à◌֮◌࢟◌̕b; a◌֮◌̀◌࢟◌̕b; à◌֮◌࢟◌̕b; a◌֮◌̀◌࢟◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC HALF MADDA OVER MADDA, LATIN SMALL LETTER B
+0061 089F 0315 0300 05AE 0062;0061 05AE 089F 0300 0315 0062;0061 05AE 089F 0300 0315 0062;0061 05AE 089F 0300 0315 0062;0061 05AE 089F 0300 0315 0062; # (a◌࢟◌̕◌̀◌֮b; a◌֮◌࢟◌̀◌̕b; a◌֮◌࢟◌̀◌̕b; a◌֮◌࢟◌̀◌̕b; a◌֮◌࢟◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC HALF MADDA OVER MADDA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08CA 0062;00E0 05AE 08CA 0315 0062;0061 05AE 0300 08CA 0315 0062;00E0 05AE 08CA 0315 0062;0061 05AE 0300 08CA 0315 0062; # (a◌̕◌̀◌֮◌࣊b; à◌֮◌࣊◌̕b; a◌֮◌̀◌࣊◌̕b; à◌֮◌࣊◌̕b; a◌֮◌̀◌࣊◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH FARSI YEH, LATIN SMALL LETTER B
+0061 08CA 0315 0300 05AE 0062;0061 05AE 08CA 0300 0315 0062;0061 05AE 08CA 0300 0315 0062;0061 05AE 08CA 0300 0315 0062;0061 05AE 08CA 0300 0315 0062; # (a◌࣊◌̕◌̀◌֮b; a◌֮◌࣊◌̀◌̕b; a◌֮◌࣊◌̀◌̕b; a◌֮◌࣊◌̀◌̕b; a◌֮◌࣊◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH FARSI YEH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08CB 0062;00E0 05AE 08CB 0315 0062;0061 05AE 0300 08CB 0315 0062;00E0 05AE 08CB 0315 0062;0061 05AE 0300 08CB 0315 0062; # (a◌̕◌̀◌֮◌࣋b; à◌֮◌࣋◌̕b; a◌֮◌̀◌࣋◌̕b; à◌֮◌࣋◌̕b; a◌֮◌̀◌࣋◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH YEH BARREE WITH TWO DOTS BELOW, LATIN SMALL LETTER B
+0061 08CB 0315 0300 05AE 0062;0061 05AE 08CB 0300 0315 0062;0061 05AE 08CB 0300 0315 0062;0061 05AE 08CB 0300 0315 0062;0061 05AE 08CB 0300 0315 0062; # (a◌࣋◌̕◌̀◌֮b; a◌֮◌࣋◌̀◌̕b; a◌֮◌࣋◌̀◌̕b; a◌֮◌࣋◌̀◌̕b; a◌֮◌࣋◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH YEH BARREE WITH TWO DOTS BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08CC 0062;00E0 05AE 08CC 0315 0062;0061 05AE 0300 08CC 0315 0062;00E0 05AE 08CC 0315 0062;0061 05AE 0300 08CC 0315 0062; # (a◌̕◌̀◌֮◌࣌b; à◌֮◌࣌◌̕b; a◌֮◌̀◌࣌◌̕b; à◌֮◌࣌◌̕b; a◌֮◌̀◌࣌◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD SAH, LATIN SMALL LETTER B
+0061 08CC 0315 0300 05AE 0062;0061 05AE 08CC 0300 0315 0062;0061 05AE 08CC 0300 0315 0062;0061 05AE 08CC 0300 0315 0062;0061 05AE 08CC 0300 0315 0062; # (a◌࣌◌̕◌̀◌֮b; a◌֮◌࣌◌̀◌̕b; a◌֮◌࣌◌̀◌̕b; a◌֮◌࣌◌̀◌̕b; a◌֮◌࣌◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD SAH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08CD 0062;00E0 05AE 08CD 0315 0062;0061 05AE 0300 08CD 0315 0062;00E0 05AE 08CD 0315 0062;0061 05AE 0300 08CD 0315 0062; # (a◌̕◌̀◌֮◌࣍b; à◌֮◌࣍◌̕b; a◌֮◌̀◌࣍◌̕b; à◌֮◌࣍◌̕b; a◌֮◌̀◌࣍◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH ZAH, LATIN SMALL LETTER B
+0061 08CD 0315 0300 05AE 0062;0061 05AE 08CD 0300 0315 0062;0061 05AE 08CD 0300 0315 0062;0061 05AE 08CD 0300 0315 0062;0061 05AE 08CD 0300 0315 0062; # (a◌࣍◌̕◌̀◌֮b; a◌֮◌࣍◌̀◌̕b; a◌֮◌࣍◌̀◌̕b; a◌֮◌࣍◌̀◌̕b; a◌֮◌࣍◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH ZAH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08CE 0062;00E0 05AE 08CE 0315 0062;0061 05AE 0300 08CE 0315 0062;00E0 05AE 08CE 0315 0062;0061 05AE 0300 08CE 0315 0062; # (a◌̕◌̀◌֮◌࣎b; à◌֮◌࣎◌̕b; a◌֮◌̀◌࣎◌̕b; à◌֮◌࣎◌̕b; a◌֮◌̀◌࣎◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC LARGE ROUND DOT ABOVE, LATIN SMALL LETTER B
+0061 08CE 0315 0300 05AE 0062;0061 05AE 08CE 0300 0315 0062;0061 05AE 08CE 0300 0315 0062;0061 05AE 08CE 0300 0315 0062;0061 05AE 08CE 0300 0315 0062; # (a◌࣎◌̕◌̀◌֮b; a◌֮◌࣎◌̀◌̕b; a◌֮◌࣎◌̀◌̕b; a◌֮◌࣎◌̀◌̕b; a◌֮◌࣎◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC LARGE ROUND DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08CF 0062;0061 1DFA 0316 08CF 059A 0062;0061 1DFA 0316 08CF 059A 0062;0061 1DFA 0316 08CF 059A 0062;0061 1DFA 0316 08CF 059A 0062; # (a◌֚◌̖◌᷺◌࣏b; a◌᷺◌̖◌࣏◌֚b; a◌᷺◌̖◌࣏◌֚b; a◌᷺◌̖◌࣏◌֚b; a◌᷺◌̖◌࣏◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC LARGE ROUND DOT BELOW, LATIN SMALL LETTER B
+0061 08CF 059A 0316 1DFA 0062;0061 1DFA 08CF 0316 059A 0062;0061 1DFA 08CF 0316 059A 0062;0061 1DFA 08CF 0316 059A 0062;0061 1DFA 08CF 0316 059A 0062; # (a◌࣏◌֚◌̖◌᷺b; a◌᷺◌࣏◌̖◌֚b; a◌᷺◌࣏◌̖◌֚b; a◌᷺◌࣏◌̖◌֚b; a◌᷺◌࣏◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC LARGE ROUND DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08D0 0062;0061 1DFA 0316 08D0 059A 0062;0061 1DFA 0316 08D0 059A 0062;0061 1DFA 0316 08D0 059A 0062;0061 1DFA 0316 08D0 059A 0062; # (a◌֚◌̖◌᷺◌࣐b; a◌᷺◌̖◌࣐◌֚b; a◌᷺◌̖◌࣐◌֚b; a◌᷺◌̖◌࣐◌֚b; a◌᷺◌̖◌࣐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SUKUN BELOW, LATIN SMALL LETTER B
+0061 08D0 059A 0316 1DFA 0062;0061 1DFA 08D0 0316 059A 0062;0061 1DFA 08D0 0316 059A 0062;0061 1DFA 08D0 0316 059A 0062;0061 1DFA 08D0 0316 059A 0062; # (a◌࣐◌֚◌̖◌᷺b; a◌᷺◌࣐◌̖◌֚b; a◌᷺◌࣐◌̖◌֚b; a◌᷺◌࣐◌̖◌֚b; a◌᷺◌࣐◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SUKUN BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08D1 0062;0061 1DFA 0316 08D1 059A 0062;0061 1DFA 0316 08D1 059A 0062;0061 1DFA 0316 08D1 059A 0062;0061 1DFA 0316 08D1 059A 0062; # (a◌֚◌̖◌᷺◌࣑b; a◌᷺◌̖◌࣑◌֚b; a◌᷺◌̖◌࣑◌֚b; a◌᷺◌̖◌࣑◌֚b; a◌᷺◌̖◌࣑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC LARGE CIRCLE BELOW, LATIN SMALL LETTER B
+0061 08D1 059A 0316 1DFA 0062;0061 1DFA 08D1 0316 059A 0062;0061 1DFA 08D1 0316 059A 0062;0061 1DFA 08D1 0316 059A 0062;0061 1DFA 08D1 0316 059A 0062; # (a◌࣑◌֚◌̖◌᷺b; a◌᷺◌࣑◌̖◌֚b; a◌᷺◌࣑◌̖◌֚b; a◌᷺◌࣑◌̖◌֚b; a◌᷺◌࣑◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC LARGE CIRCLE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08D2 0062;0061 1DFA 0316 08D2 059A 0062;0061 1DFA 0316 08D2 059A 0062;0061 1DFA 0316 08D2 059A 0062;0061 1DFA 0316 08D2 059A 0062; # (a◌֚◌̖◌᷺◌࣒b; a◌᷺◌̖◌࣒◌֚b; a◌᷺◌̖◌࣒◌֚b; a◌᷺◌̖◌࣒◌֚b; a◌᷺◌̖◌࣒◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW, LATIN SMALL LETTER B
+0061 08D2 059A 0316 1DFA 0062;0061 1DFA 08D2 0316 059A 0062;0061 1DFA 08D2 0316 059A 0062;0061 1DFA 08D2 0316 059A 0062;0061 1DFA 08D2 0316 059A 0062; # (a◌࣒◌֚◌̖◌᷺b; a◌᷺◌࣒◌̖◌֚b; a◌᷺◌࣒◌̖◌֚b; a◌᷺◌࣒◌̖◌֚b; a◌᷺◌࣒◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08D3 0062;0061 1DFA 0316 08D3 059A 0062;0061 1DFA 0316 08D3 059A 0062;0061 1DFA 0316 08D3 059A 0062;0061 1DFA 0316 08D3 059A 0062; # (a◌֚◌̖◌᷺◌࣓b; a◌᷺◌̖◌࣓◌֚b; a◌᷺◌̖◌࣓◌֚b; a◌᷺◌̖◌࣓◌֚b; a◌᷺◌̖◌࣓◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WAW, LATIN SMALL LETTER B
+0061 08D3 059A 0316 1DFA 0062;0061 1DFA 08D3 0316 059A 0062;0061 1DFA 08D3 0316 059A 0062;0061 1DFA 08D3 0316 059A 0062;0061 1DFA 08D3 0316 059A 0062; # (a◌࣓◌֚◌̖◌᷺b; a◌᷺◌࣓◌̖◌֚b; a◌᷺◌࣓◌̖◌֚b; a◌᷺◌࣓◌̖◌֚b; a◌᷺◌࣓◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WAW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08D4 0062;00E0 05AE 08D4 0315 0062;0061 05AE 0300 08D4 0315 0062;00E0 05AE 08D4 0315 0062;0061 05AE 0300 08D4 0315 0062; # (a◌̕◌̀◌֮◌ࣔb; à◌֮◌ࣔ◌̕b; a◌֮◌̀◌ࣔ◌̕b; à◌֮◌ࣔ◌̕b; a◌֮◌̀◌ࣔ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD AR-RUB, LATIN SMALL LETTER B
+0061 08D4 0315 0300 05AE 0062;0061 05AE 08D4 0300 0315 0062;0061 05AE 08D4 0300 0315 0062;0061 05AE 08D4 0300 0315 0062;0061 05AE 08D4 0300 0315 0062; # (a◌ࣔ◌̕◌̀◌֮b; a◌֮◌ࣔ◌̀◌̕b; a◌֮◌ࣔ◌̀◌̕b; a◌֮◌ࣔ◌̀◌̕b; a◌֮◌ࣔ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD AR-RUB, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08D5 0062;00E0 05AE 08D5 0315 0062;0061 05AE 0300 08D5 0315 0062;00E0 05AE 08D5 0315 0062;0061 05AE 0300 08D5 0315 0062; # (a◌̕◌̀◌֮◌ࣕb; à◌֮◌ࣕ◌̕b; a◌֮◌̀◌ࣕ◌̕b; à◌֮◌ࣕ◌̕b; a◌֮◌̀◌ࣕ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH SAD, LATIN SMALL LETTER B
+0061 08D5 0315 0300 05AE 0062;0061 05AE 08D5 0300 0315 0062;0061 05AE 08D5 0300 0315 0062;0061 05AE 08D5 0300 0315 0062;0061 05AE 08D5 0300 0315 0062; # (a◌ࣕ◌̕◌̀◌֮b; a◌֮◌ࣕ◌̀◌̕b; a◌֮◌ࣕ◌̀◌̕b; a◌֮◌ࣕ◌̀◌̕b; a◌֮◌ࣕ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH SAD, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08D6 0062;00E0 05AE 08D6 0315 0062;0061 05AE 0300 08D6 0315 0062;00E0 05AE 08D6 0315 0062;0061 05AE 0300 08D6 0315 0062; # (a◌̕◌̀◌֮◌ࣖb; à◌֮◌ࣖ◌̕b; a◌֮◌̀◌ࣖ◌̕b; à◌֮◌ࣖ◌̕b; a◌֮◌̀◌ࣖ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH AIN, LATIN SMALL LETTER B
+0061 08D6 0315 0300 05AE 0062;0061 05AE 08D6 0300 0315 0062;0061 05AE 08D6 0300 0315 0062;0061 05AE 08D6 0300 0315 0062;0061 05AE 08D6 0300 0315 0062; # (a◌ࣖ◌̕◌̀◌֮b; a◌֮◌ࣖ◌̀◌̕b; a◌֮◌ࣖ◌̀◌̕b; a◌֮◌ࣖ◌̀◌̕b; a◌֮◌ࣖ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH AIN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08D7 0062;00E0 05AE 08D7 0315 0062;0061 05AE 0300 08D7 0315 0062;00E0 05AE 08D7 0315 0062;0061 05AE 0300 08D7 0315 0062; # (a◌̕◌̀◌֮◌ࣗb; à◌֮◌ࣗ◌̕b; a◌֮◌̀◌ࣗ◌̕b; à◌֮◌ࣗ◌̕b; a◌֮◌̀◌ࣗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH QAF, LATIN SMALL LETTER B
+0061 08D7 0315 0300 05AE 0062;0061 05AE 08D7 0300 0315 0062;0061 05AE 08D7 0300 0315 0062;0061 05AE 08D7 0300 0315 0062;0061 05AE 08D7 0300 0315 0062; # (a◌ࣗ◌̕◌̀◌֮b; a◌֮◌ࣗ◌̀◌̕b; a◌֮◌ࣗ◌̀◌̕b; a◌֮◌ࣗ◌̀◌̕b; a◌֮◌ࣗ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH QAF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08D8 0062;00E0 05AE 08D8 0315 0062;0061 05AE 0300 08D8 0315 0062;00E0 05AE 08D8 0315 0062;0061 05AE 0300 08D8 0315 0062; # (a◌̕◌̀◌֮◌ࣘb; à◌֮◌ࣘ◌̕b; a◌֮◌̀◌ࣘ◌̕b; à◌֮◌ࣘ◌̕b; a◌֮◌̀◌ࣘ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH NOON WITH KASRA, LATIN SMALL LETTER B
+0061 08D8 0315 0300 05AE 0062;0061 05AE 08D8 0300 0315 0062;0061 05AE 08D8 0300 0315 0062;0061 05AE 08D8 0300 0315 0062;0061 05AE 08D8 0300 0315 0062; # (a◌ࣘ◌̕◌̀◌֮b; a◌֮◌ࣘ◌̀◌̕b; a◌֮◌ࣘ◌̀◌̕b; a◌֮◌ࣘ◌̀◌̕b; a◌֮◌ࣘ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH NOON WITH KASRA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08D9 0062;00E0 05AE 08D9 0315 0062;0061 05AE 0300 08D9 0315 0062;00E0 05AE 08D9 0315 0062;0061 05AE 0300 08D9 0315 0062; # (a◌̕◌̀◌֮◌ࣙb; à◌֮◌ࣙ◌̕b; a◌֮◌̀◌ࣙ◌̕b; à◌֮◌ࣙ◌̕b; a◌֮◌̀◌ࣙ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL LOW NOON WITH KASRA, LATIN SMALL LETTER B
+0061 08D9 0315 0300 05AE 0062;0061 05AE 08D9 0300 0315 0062;0061 05AE 08D9 0300 0315 0062;0061 05AE 08D9 0300 0315 0062;0061 05AE 08D9 0300 0315 0062; # (a◌ࣙ◌̕◌̀◌֮b; a◌֮◌ࣙ◌̀◌̕b; a◌֮◌ࣙ◌̀◌̕b; a◌֮◌ࣙ◌̀◌̕b; a◌֮◌ࣙ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW NOON WITH KASRA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08DA 0062;00E0 05AE 08DA 0315 0062;0061 05AE 0300 08DA 0315 0062;00E0 05AE 08DA 0315 0062;0061 05AE 0300 08DA 0315 0062; # (a◌̕◌̀◌֮◌ࣚb; à◌֮◌ࣚ◌̕b; a◌֮◌̀◌ࣚ◌̕b; à◌֮◌ࣚ◌̕b; a◌֮◌̀◌ࣚ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD ATH-THALATHA, LATIN SMALL LETTER B
+0061 08DA 0315 0300 05AE 0062;0061 05AE 08DA 0300 0315 0062;0061 05AE 08DA 0300 0315 0062;0061 05AE 08DA 0300 0315 0062;0061 05AE 08DA 0300 0315 0062; # (a◌ࣚ◌̕◌̀◌֮b; a◌֮◌ࣚ◌̀◌̕b; a◌֮◌ࣚ◌̀◌̕b; a◌֮◌ࣚ◌̀◌̕b; a◌֮◌ࣚ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD ATH-THALATHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08DB 0062;00E0 05AE 08DB 0315 0062;0061 05AE 0300 08DB 0315 0062;00E0 05AE 08DB 0315 0062;0061 05AE 0300 08DB 0315 0062; # (a◌̕◌̀◌֮◌ࣛb; à◌֮◌ࣛ◌̕b; a◌֮◌̀◌ࣛ◌̕b; à◌֮◌ࣛ◌̕b; a◌֮◌̀◌ࣛ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD AS-SAJDA, LATIN SMALL LETTER B
+0061 08DB 0315 0300 05AE 0062;0061 05AE 08DB 0300 0315 0062;0061 05AE 08DB 0300 0315 0062;0061 05AE 08DB 0300 0315 0062;0061 05AE 08DB 0300 0315 0062; # (a◌ࣛ◌̕◌̀◌֮b; a◌֮◌ࣛ◌̀◌̕b; a◌֮◌ࣛ◌̀◌̕b; a◌֮◌ࣛ◌̀◌̕b; a◌֮◌ࣛ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD AS-SAJDA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08DC 0062;00E0 05AE 08DC 0315 0062;0061 05AE 0300 08DC 0315 0062;00E0 05AE 08DC 0315 0062;0061 05AE 0300 08DC 0315 0062; # (a◌̕◌̀◌֮◌ࣜb; à◌֮◌ࣜ◌̕b; a◌֮◌̀◌ࣜ◌̕b; à◌֮◌ࣜ◌̕b; a◌֮◌̀◌ࣜ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD AN-NISF, LATIN SMALL LETTER B
+0061 08DC 0315 0300 05AE 0062;0061 05AE 08DC 0300 0315 0062;0061 05AE 08DC 0300 0315 0062;0061 05AE 08DC 0300 0315 0062;0061 05AE 08DC 0300 0315 0062; # (a◌ࣜ◌̕◌̀◌֮b; a◌֮◌ࣜ◌̀◌̕b; a◌֮◌ࣜ◌̀◌̕b; a◌֮◌ࣜ◌̀◌̕b; a◌֮◌ࣜ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD AN-NISF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08DD 0062;00E0 05AE 08DD 0315 0062;0061 05AE 0300 08DD 0315 0062;00E0 05AE 08DD 0315 0062;0061 05AE 0300 08DD 0315 0062; # (a◌̕◌̀◌֮◌ࣝb; à◌֮◌ࣝ◌̕b; a◌֮◌̀◌ࣝ◌̕b; à◌֮◌ࣝ◌̕b; a◌֮◌̀◌ࣝ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD SAKTA, LATIN SMALL LETTER B
+0061 08DD 0315 0300 05AE 0062;0061 05AE 08DD 0300 0315 0062;0061 05AE 08DD 0300 0315 0062;0061 05AE 08DD 0300 0315 0062;0061 05AE 08DD 0300 0315 0062; # (a◌ࣝ◌̕◌̀◌֮b; a◌֮◌ࣝ◌̀◌̕b; a◌֮◌ࣝ◌̀◌̕b; a◌֮◌ࣝ◌̀◌̕b; a◌֮◌ࣝ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD SAKTA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08DE 0062;00E0 05AE 08DE 0315 0062;0061 05AE 0300 08DE 0315 0062;00E0 05AE 08DE 0315 0062;0061 05AE 0300 08DE 0315 0062; # (a◌̕◌̀◌֮◌ࣞb; à◌֮◌ࣞ◌̕b; a◌֮◌̀◌ࣞ◌̕b; à◌֮◌ࣞ◌̕b; a◌֮◌̀◌ࣞ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD QIF, LATIN SMALL LETTER B
+0061 08DE 0315 0300 05AE 0062;0061 05AE 08DE 0300 0315 0062;0061 05AE 08DE 0300 0315 0062;0061 05AE 08DE 0300 0315 0062;0061 05AE 08DE 0300 0315 0062; # (a◌ࣞ◌̕◌̀◌֮b; a◌֮◌ࣞ◌̀◌̕b; a◌֮◌ࣞ◌̀◌̕b; a◌֮◌ࣞ◌̀◌̕b; a◌֮◌ࣞ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD QIF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08DF 0062;00E0 05AE 08DF 0315 0062;0061 05AE 0300 08DF 0315 0062;00E0 05AE 08DF 0315 0062;0061 05AE 0300 08DF 0315 0062; # (a◌̕◌̀◌֮◌ࣟb; à◌֮◌ࣟ◌̕b; a◌֮◌̀◌ࣟ◌̕b; à◌֮◌ࣟ◌̕b; a◌֮◌̀◌ࣟ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WORD WAQFA, LATIN SMALL LETTER B
+0061 08DF 0315 0300 05AE 0062;0061 05AE 08DF 0300 0315 0062;0061 05AE 08DF 0300 0315 0062;0061 05AE 08DF 0300 0315 0062;0061 05AE 08DF 0300 0315 0062; # (a◌ࣟ◌̕◌̀◌֮b; a◌֮◌ࣟ◌̀◌̕b; a◌֮◌ࣟ◌̀◌̕b; a◌֮◌ࣟ◌̀◌̕b; a◌֮◌ࣟ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WORD WAQFA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08E0 0062;00E0 05AE 08E0 0315 0062;0061 05AE 0300 08E0 0315 0062;00E0 05AE 08E0 0315 0062;0061 05AE 0300 08E0 0315 0062; # (a◌̕◌̀◌֮◌࣠b; à◌֮◌࣠◌̕b; a◌֮◌̀◌࣠◌̕b; à◌֮◌࣠◌̕b; a◌֮◌̀◌࣠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH FOOTNOTE MARKER, LATIN SMALL LETTER B
+0061 08E0 0315 0300 05AE 0062;0061 05AE 08E0 0300 0315 0062;0061 05AE 08E0 0300 0315 0062;0061 05AE 08E0 0300 0315 0062;0061 05AE 08E0 0300 0315 0062; # (a◌࣠◌̕◌̀◌֮b; a◌֮◌࣠◌̀◌̕b; a◌֮◌࣠◌̀◌̕b; a◌֮◌࣠◌̀◌̕b; a◌֮◌࣠◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH FOOTNOTE MARKER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08E1 0062;00E0 05AE 08E1 0315 0062;0061 05AE 0300 08E1 0315 0062;00E0 05AE 08E1 0315 0062;0061 05AE 0300 08E1 0315 0062; # (a◌̕◌̀◌֮◌࣡b; à◌֮◌࣡◌̕b; a◌֮◌̀◌࣡◌̕b; à◌֮◌࣡◌̕b; a◌֮◌̀◌࣡◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH SIGN SAFHA, LATIN SMALL LETTER B
+0061 08E1 0315 0300 05AE 0062;0061 05AE 08E1 0300 0315 0062;0061 05AE 08E1 0300 0315 0062;0061 05AE 08E1 0300 0315 0062;0061 05AE 08E1 0300 0315 0062; # (a◌࣡◌̕◌̀◌֮b; a◌֮◌࣡◌̀◌̕b; a◌֮◌࣡◌̀◌̕b; a◌֮◌࣡◌̀◌̕b; a◌֮◌࣡◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH SIGN SAFHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08E3 0062;0061 1DFA 0316 08E3 059A 0062;0061 1DFA 0316 08E3 059A 0062;0061 1DFA 0316 08E3 059A 0062;0061 1DFA 0316 08E3 059A 0062; # (a◌֚◌̖◌᷺◌ࣣb; a◌᷺◌̖◌ࣣ◌֚b; a◌᷺◌̖◌ࣣ◌֚b; a◌᷺◌̖◌ࣣ◌֚b; a◌᷺◌̖◌ࣣ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC TURNED DAMMA BELOW, LATIN SMALL LETTER B
+0061 08E3 059A 0316 1DFA 0062;0061 1DFA 08E3 0316 059A 0062;0061 1DFA 08E3 0316 059A 0062;0061 1DFA 08E3 0316 059A 0062;0061 1DFA 08E3 0316 059A 0062; # (a◌ࣣ◌֚◌̖◌᷺b; a◌᷺◌ࣣ◌̖◌֚b; a◌᷺◌ࣣ◌̖◌֚b; a◌᷺◌ࣣ◌̖◌֚b; a◌᷺◌ࣣ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC TURNED DAMMA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08E4 0062;00E0 05AE 08E4 0315 0062;0061 05AE 0300 08E4 0315 0062;00E0 05AE 08E4 0315 0062;0061 05AE 0300 08E4 0315 0062; # (a◌̕◌̀◌֮◌ࣤb; à◌֮◌ࣤ◌̕b; a◌֮◌̀◌ࣤ◌̕b; à◌֮◌ࣤ◌̕b; a◌֮◌̀◌ࣤ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC CURLY FATHA, LATIN SMALL LETTER B
+0061 08E4 0315 0300 05AE 0062;0061 05AE 08E4 0300 0315 0062;0061 05AE 08E4 0300 0315 0062;0061 05AE 08E4 0300 0315 0062;0061 05AE 08E4 0300 0315 0062; # (a◌ࣤ◌̕◌̀◌֮b; a◌֮◌ࣤ◌̀◌̕b; a◌֮◌ࣤ◌̀◌̕b; a◌֮◌ࣤ◌̀◌̕b; a◌֮◌ࣤ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC CURLY FATHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08E5 0062;00E0 05AE 08E5 0315 0062;0061 05AE 0300 08E5 0315 0062;00E0 05AE 08E5 0315 0062;0061 05AE 0300 08E5 0315 0062; # (a◌̕◌̀◌֮◌ࣥb; à◌֮◌ࣥ◌̕b; a◌֮◌̀◌ࣥ◌̕b; à◌֮◌ࣥ◌̕b; a◌֮◌̀◌ࣥ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC CURLY DAMMA, LATIN SMALL LETTER B
+0061 08E5 0315 0300 05AE 0062;0061 05AE 08E5 0300 0315 0062;0061 05AE 08E5 0300 0315 0062;0061 05AE 08E5 0300 0315 0062;0061 05AE 08E5 0300 0315 0062; # (a◌ࣥ◌̕◌̀◌֮b; a◌֮◌ࣥ◌̀◌̕b; a◌֮◌ࣥ◌̀◌̕b; a◌֮◌ࣥ◌̀◌̕b; a◌֮◌ࣥ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC CURLY DAMMA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08E6 0062;0061 1DFA 0316 08E6 059A 0062;0061 1DFA 0316 08E6 059A 0062;0061 1DFA 0316 08E6 059A 0062;0061 1DFA 0316 08E6 059A 0062; # (a◌֚◌̖◌᷺◌ࣦb; a◌᷺◌̖◌ࣦ◌֚b; a◌᷺◌̖◌ࣦ◌֚b; a◌᷺◌̖◌ࣦ◌֚b; a◌᷺◌̖◌ࣦ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC CURLY KASRA, LATIN SMALL LETTER B
+0061 08E6 059A 0316 1DFA 0062;0061 1DFA 08E6 0316 059A 0062;0061 1DFA 08E6 0316 059A 0062;0061 1DFA 08E6 0316 059A 0062;0061 1DFA 08E6 0316 059A 0062; # (a◌ࣦ◌֚◌̖◌᷺b; a◌᷺◌ࣦ◌̖◌֚b; a◌᷺◌ࣦ◌̖◌֚b; a◌᷺◌ࣦ◌̖◌֚b; a◌᷺◌ࣦ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC CURLY KASRA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08E7 0062;00E0 05AE 08E7 0315 0062;0061 05AE 0300 08E7 0315 0062;00E0 05AE 08E7 0315 0062;0061 05AE 0300 08E7 0315 0062; # (a◌̕◌̀◌֮◌ࣧb; à◌֮◌ࣧ◌̕b; a◌֮◌̀◌ࣧ◌̕b; à◌֮◌ࣧ◌̕b; a◌֮◌̀◌ࣧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC CURLY FATHATAN, LATIN SMALL LETTER B
+0061 08E7 0315 0300 05AE 0062;0061 05AE 08E7 0300 0315 0062;0061 05AE 08E7 0300 0315 0062;0061 05AE 08E7 0300 0315 0062;0061 05AE 08E7 0300 0315 0062; # (a◌ࣧ◌̕◌̀◌֮b; a◌֮◌ࣧ◌̀◌̕b; a◌֮◌ࣧ◌̀◌̕b; a◌֮◌ࣧ◌̀◌̕b; a◌֮◌ࣧ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC CURLY FATHATAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08E8 0062;00E0 05AE 08E8 0315 0062;0061 05AE 0300 08E8 0315 0062;00E0 05AE 08E8 0315 0062;0061 05AE 0300 08E8 0315 0062; # (a◌̕◌̀◌֮◌ࣨb; à◌֮◌ࣨ◌̕b; a◌֮◌̀◌ࣨ◌̕b; à◌֮◌ࣨ◌̕b; a◌֮◌̀◌ࣨ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC CURLY DAMMATAN, LATIN SMALL LETTER B
+0061 08E8 0315 0300 05AE 0062;0061 05AE 08E8 0300 0315 0062;0061 05AE 08E8 0300 0315 0062;0061 05AE 08E8 0300 0315 0062;0061 05AE 08E8 0300 0315 0062; # (a◌ࣨ◌̕◌̀◌֮b; a◌֮◌ࣨ◌̀◌̕b; a◌֮◌ࣨ◌̀◌̕b; a◌֮◌ࣨ◌̀◌̕b; a◌֮◌ࣨ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC CURLY DAMMATAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08E9 0062;0061 1DFA 0316 08E9 059A 0062;0061 1DFA 0316 08E9 059A 0062;0061 1DFA 0316 08E9 059A 0062;0061 1DFA 0316 08E9 059A 0062; # (a◌֚◌̖◌᷺◌ࣩb; a◌᷺◌̖◌ࣩ◌֚b; a◌᷺◌̖◌ࣩ◌֚b; a◌᷺◌̖◌ࣩ◌֚b; a◌᷺◌̖◌ࣩ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC CURLY KASRATAN, LATIN SMALL LETTER B
+0061 08E9 059A 0316 1DFA 0062;0061 1DFA 08E9 0316 059A 0062;0061 1DFA 08E9 0316 059A 0062;0061 1DFA 08E9 0316 059A 0062;0061 1DFA 08E9 0316 059A 0062; # (a◌ࣩ◌֚◌̖◌᷺b; a◌᷺◌ࣩ◌̖◌֚b; a◌᷺◌ࣩ◌̖◌֚b; a◌᷺◌ࣩ◌̖◌֚b; a◌᷺◌ࣩ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC CURLY KASRATAN, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08EA 0062;00E0 05AE 08EA 0315 0062;0061 05AE 0300 08EA 0315 0062;00E0 05AE 08EA 0315 0062;0061 05AE 0300 08EA 0315 0062; # (a◌̕◌̀◌֮◌࣪b; à◌֮◌࣪◌̕b; a◌֮◌̀◌࣪◌̕b; à◌֮◌࣪◌̕b; a◌֮◌̀◌࣪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC TONE ONE DOT ABOVE, LATIN SMALL LETTER B
+0061 08EA 0315 0300 05AE 0062;0061 05AE 08EA 0300 0315 0062;0061 05AE 08EA 0300 0315 0062;0061 05AE 08EA 0300 0315 0062;0061 05AE 08EA 0300 0315 0062; # (a◌࣪◌̕◌̀◌֮b; a◌֮◌࣪◌̀◌̕b; a◌֮◌࣪◌̀◌̕b; a◌֮◌࣪◌̀◌̕b; a◌֮◌࣪◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC TONE ONE DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08EB 0062;00E0 05AE 08EB 0315 0062;0061 05AE 0300 08EB 0315 0062;00E0 05AE 08EB 0315 0062;0061 05AE 0300 08EB 0315 0062; # (a◌̕◌̀◌֮◌࣫b; à◌֮◌࣫◌̕b; a◌֮◌̀◌࣫◌̕b; à◌֮◌࣫◌̕b; a◌֮◌̀◌࣫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC TONE TWO DOTS ABOVE, LATIN SMALL LETTER B
+0061 08EB 0315 0300 05AE 0062;0061 05AE 08EB 0300 0315 0062;0061 05AE 08EB 0300 0315 0062;0061 05AE 08EB 0300 0315 0062;0061 05AE 08EB 0300 0315 0062; # (a◌࣫◌̕◌̀◌֮b; a◌֮◌࣫◌̀◌̕b; a◌֮◌࣫◌̀◌̕b; a◌֮◌࣫◌̀◌̕b; a◌֮◌࣫◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC TONE TWO DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08EC 0062;00E0 05AE 08EC 0315 0062;0061 05AE 0300 08EC 0315 0062;00E0 05AE 08EC 0315 0062;0061 05AE 0300 08EC 0315 0062; # (a◌̕◌̀◌֮◌࣬b; à◌֮◌࣬◌̕b; a◌֮◌̀◌࣬◌̕b; à◌֮◌࣬◌̕b; a◌֮◌̀◌࣬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC TONE LOOP ABOVE, LATIN SMALL LETTER B
+0061 08EC 0315 0300 05AE 0062;0061 05AE 08EC 0300 0315 0062;0061 05AE 08EC 0300 0315 0062;0061 05AE 08EC 0300 0315 0062;0061 05AE 08EC 0300 0315 0062; # (a◌࣬◌̕◌̀◌֮b; a◌֮◌࣬◌̀◌̕b; a◌֮◌࣬◌̀◌̕b; a◌֮◌࣬◌̀◌̕b; a◌֮◌࣬◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC TONE LOOP ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08ED 0062;0061 1DFA 0316 08ED 059A 0062;0061 1DFA 0316 08ED 059A 0062;0061 1DFA 0316 08ED 059A 0062;0061 1DFA 0316 08ED 059A 0062; # (a◌֚◌̖◌᷺◌࣭b; a◌᷺◌̖◌࣭◌֚b; a◌᷺◌̖◌࣭◌֚b; a◌᷺◌̖◌࣭◌֚b; a◌᷺◌̖◌࣭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC TONE ONE DOT BELOW, LATIN SMALL LETTER B
+0061 08ED 059A 0316 1DFA 0062;0061 1DFA 08ED 0316 059A 0062;0061 1DFA 08ED 0316 059A 0062;0061 1DFA 08ED 0316 059A 0062;0061 1DFA 08ED 0316 059A 0062; # (a◌࣭◌֚◌̖◌᷺b; a◌᷺◌࣭◌̖◌֚b; a◌᷺◌࣭◌̖◌֚b; a◌᷺◌࣭◌̖◌֚b; a◌᷺◌࣭◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC TONE ONE DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08EE 0062;0061 1DFA 0316 08EE 059A 0062;0061 1DFA 0316 08EE 059A 0062;0061 1DFA 0316 08EE 059A 0062;0061 1DFA 0316 08EE 059A 0062; # (a◌֚◌̖◌᷺◌࣮b; a◌᷺◌̖◌࣮◌֚b; a◌᷺◌̖◌࣮◌֚b; a◌᷺◌̖◌࣮◌֚b; a◌᷺◌̖◌࣮◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC TONE TWO DOTS BELOW, LATIN SMALL LETTER B
+0061 08EE 059A 0316 1DFA 0062;0061 1DFA 08EE 0316 059A 0062;0061 1DFA 08EE 0316 059A 0062;0061 1DFA 08EE 0316 059A 0062;0061 1DFA 08EE 0316 059A 0062; # (a◌࣮◌֚◌̖◌᷺b; a◌᷺◌࣮◌̖◌֚b; a◌᷺◌࣮◌̖◌֚b; a◌᷺◌࣮◌̖◌֚b; a◌᷺◌࣮◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC TONE TWO DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08EF 0062;0061 1DFA 0316 08EF 059A 0062;0061 1DFA 0316 08EF 059A 0062;0061 1DFA 0316 08EF 059A 0062;0061 1DFA 0316 08EF 059A 0062; # (a◌֚◌̖◌᷺◌࣯b; a◌᷺◌̖◌࣯◌֚b; a◌᷺◌̖◌࣯◌֚b; a◌᷺◌̖◌࣯◌֚b; a◌᷺◌̖◌࣯◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC TONE LOOP BELOW, LATIN SMALL LETTER B
+0061 08EF 059A 0316 1DFA 0062;0061 1DFA 08EF 0316 059A 0062;0061 1DFA 08EF 0316 059A 0062;0061 1DFA 08EF 0316 059A 0062;0061 1DFA 08EF 0316 059A 0062; # (a◌࣯◌֚◌̖◌᷺b; a◌᷺◌࣯◌̖◌֚b; a◌᷺◌࣯◌̖◌֚b; a◌᷺◌࣯◌̖◌֚b; a◌᷺◌࣯◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC TONE LOOP BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 064C 064B FB1E 08F0 0062;0061 FB1E 064B 08F0 064C 0062;0061 FB1E 064B 08F0 064C 0062;0061 FB1E 064B 08F0 064C 0062;0061 FB1E 064B 08F0 064C 0062; # (a◌ٌ◌ً◌ﬞ◌ࣰb; a◌ﬞ◌ً◌ࣰ◌ٌb; a◌ﬞ◌ً◌ࣰ◌ٌb; a◌ﬞ◌ً◌ࣰ◌ٌb; a◌ﬞ◌ً◌ࣰ◌ٌb; ) LATIN SMALL LETTER A, ARABIC DAMMATAN, ARABIC FATHATAN, HEBREW POINT JUDEO-SPANISH VARIKA, ARABIC OPEN FATHATAN, LATIN SMALL LETTER B
+0061 08F0 064C 064B FB1E 0062;0061 FB1E 08F0 064B 064C 0062;0061 FB1E 08F0 064B 064C 0062;0061 FB1E 08F0 064B 064C 0062;0061 FB1E 08F0 064B 064C 0062; # (a◌ࣰ◌ٌ◌ً◌ﬞb; a◌ﬞ◌ࣰ◌ً◌ٌb; a◌ﬞ◌ࣰ◌ً◌ٌb; a◌ﬞ◌ࣰ◌ً◌ٌb; a◌ﬞ◌ࣰ◌ً◌ٌb; ) LATIN SMALL LETTER A, ARABIC OPEN FATHATAN, ARABIC DAMMATAN, ARABIC FATHATAN, HEBREW POINT JUDEO-SPANISH VARIKA, LATIN SMALL LETTER B
+0061 064D 064C 064B 08F1 0062;0061 064B 064C 08F1 064D 0062;0061 064B 064C 08F1 064D 0062;0061 064B 064C 08F1 064D 0062;0061 064B 064C 08F1 064D 0062; # (a◌ٍ◌ٌ◌ً◌ࣱb; a◌ً◌ٌ◌ࣱ◌ٍb; a◌ً◌ٌ◌ࣱ◌ٍb; a◌ً◌ٌ◌ࣱ◌ٍb; a◌ً◌ٌ◌ࣱ◌ٍb; ) LATIN SMALL LETTER A, ARABIC KASRATAN, ARABIC DAMMATAN, ARABIC FATHATAN, ARABIC OPEN DAMMATAN, LATIN SMALL LETTER B
+0061 08F1 064D 064C 064B 0062;0061 064B 08F1 064C 064D 0062;0061 064B 08F1 064C 064D 0062;0061 064B 08F1 064C 064D 0062;0061 064B 08F1 064C 064D 0062; # (a◌ࣱ◌ٍ◌ٌ◌ًb; a◌ً◌ࣱ◌ٌ◌ٍb; a◌ً◌ࣱ◌ٌ◌ٍb; a◌ً◌ࣱ◌ٌ◌ٍb; a◌ً◌ࣱ◌ٌ◌ٍb; ) LATIN SMALL LETTER A, ARABIC OPEN DAMMATAN, ARABIC KASRATAN, ARABIC DAMMATAN, ARABIC FATHATAN, LATIN SMALL LETTER B
+0061 0618 064D 064C 08F2 0062;0061 064C 064D 08F2 0618 0062;0061 064C 064D 08F2 0618 0062;0061 064C 064D 08F2 0618 0062;0061 064C 064D 08F2 0618 0062; # (a◌ؘ◌ٍ◌ٌ◌ࣲb; a◌ٌ◌ٍ◌ࣲ◌ؘb; a◌ٌ◌ٍ◌ࣲ◌ؘb; a◌ٌ◌ٍ◌ࣲ◌ؘb; a◌ٌ◌ٍ◌ࣲ◌ؘb; ) LATIN SMALL LETTER A, ARABIC SMALL FATHA, ARABIC KASRATAN, ARABIC DAMMATAN, ARABIC OPEN KASRATAN, LATIN SMALL LETTER B
+0061 08F2 0618 064D 064C 0062;0061 064C 08F2 064D 0618 0062;0061 064C 08F2 064D 0618 0062;0061 064C 08F2 064D 0618 0062;0061 064C 08F2 064D 0618 0062; # (a◌ࣲ◌ؘ◌ٍ◌ٌb; a◌ٌ◌ࣲ◌ٍ◌ؘb; a◌ٌ◌ࣲ◌ٍ◌ؘb; a◌ٌ◌ࣲ◌ٍ◌ؘb; a◌ٌ◌ࣲ◌ٍ◌ؘb; ) LATIN SMALL LETTER A, ARABIC OPEN KASRATAN, ARABIC SMALL FATHA, ARABIC KASRATAN, ARABIC DAMMATAN, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08F3 0062;00E0 05AE 08F3 0315 0062;0061 05AE 0300 08F3 0315 0062;00E0 05AE 08F3 0315 0062;0061 05AE 0300 08F3 0315 0062; # (a◌̕◌̀◌֮◌ࣳb; à◌֮◌ࣳ◌̕b; a◌֮◌̀◌ࣳ◌̕b; à◌֮◌ࣳ◌̕b; a◌֮◌̀◌ࣳ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC SMALL HIGH WAW, LATIN SMALL LETTER B
+0061 08F3 0315 0300 05AE 0062;0061 05AE 08F3 0300 0315 0062;0061 05AE 08F3 0300 0315 0062;0061 05AE 08F3 0300 0315 0062;0061 05AE 08F3 0300 0315 0062; # (a◌ࣳ◌̕◌̀◌֮b; a◌֮◌ࣳ◌̀◌̕b; a◌֮◌ࣳ◌̀◌̕b; a◌֮◌ࣳ◌̀◌̕b; a◌֮◌ࣳ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC SMALL HIGH WAW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08F4 0062;00E0 05AE 08F4 0315 0062;0061 05AE 0300 08F4 0315 0062;00E0 05AE 08F4 0315 0062;0061 05AE 0300 08F4 0315 0062; # (a◌̕◌̀◌֮◌ࣴb; à◌֮◌ࣴ◌̕b; a◌֮◌̀◌ࣴ◌̕b; à◌֮◌ࣴ◌̕b; a◌֮◌̀◌ࣴ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC FATHA WITH RING, LATIN SMALL LETTER B
+0061 08F4 0315 0300 05AE 0062;0061 05AE 08F4 0300 0315 0062;0061 05AE 08F4 0300 0315 0062;0061 05AE 08F4 0300 0315 0062;0061 05AE 08F4 0300 0315 0062; # (a◌ࣴ◌̕◌̀◌֮b; a◌֮◌ࣴ◌̀◌̕b; a◌֮◌ࣴ◌̀◌̕b; a◌֮◌ࣴ◌̀◌̕b; a◌֮◌ࣴ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC FATHA WITH RING, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08F5 0062;00E0 05AE 08F5 0315 0062;0061 05AE 0300 08F5 0315 0062;00E0 05AE 08F5 0315 0062;0061 05AE 0300 08F5 0315 0062; # (a◌̕◌̀◌֮◌ࣵb; à◌֮◌ࣵ◌̕b; a◌֮◌̀◌ࣵ◌̕b; à◌֮◌ࣵ◌̕b; a◌֮◌̀◌ࣵ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC FATHA WITH DOT ABOVE, LATIN SMALL LETTER B
+0061 08F5 0315 0300 05AE 0062;0061 05AE 08F5 0300 0315 0062;0061 05AE 08F5 0300 0315 0062;0061 05AE 08F5 0300 0315 0062;0061 05AE 08F5 0300 0315 0062; # (a◌ࣵ◌̕◌̀◌֮b; a◌֮◌ࣵ◌̀◌̕b; a◌֮◌ࣵ◌̀◌̕b; a◌֮◌ࣵ◌̀◌̕b; a◌֮◌ࣵ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC FATHA WITH DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08F6 0062;0061 1DFA 0316 08F6 059A 0062;0061 1DFA 0316 08F6 059A 0062;0061 1DFA 0316 08F6 059A 0062;0061 1DFA 0316 08F6 059A 0062; # (a◌֚◌̖◌᷺◌ࣶb; a◌᷺◌̖◌ࣶ◌֚b; a◌᷺◌̖◌ࣶ◌֚b; a◌᷺◌̖◌ࣶ◌֚b; a◌᷺◌̖◌ࣶ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC KASRA WITH DOT BELOW, LATIN SMALL LETTER B
+0061 08F6 059A 0316 1DFA 0062;0061 1DFA 08F6 0316 059A 0062;0061 1DFA 08F6 0316 059A 0062;0061 1DFA 08F6 0316 059A 0062;0061 1DFA 08F6 0316 059A 0062; # (a◌ࣶ◌֚◌̖◌᷺b; a◌᷺◌ࣶ◌̖◌֚b; a◌᷺◌ࣶ◌̖◌֚b; a◌᷺◌ࣶ◌̖◌֚b; a◌᷺◌ࣶ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC KASRA WITH DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08F7 0062;00E0 05AE 08F7 0315 0062;0061 05AE 0300 08F7 0315 0062;00E0 05AE 08F7 0315 0062;0061 05AE 0300 08F7 0315 0062; # (a◌̕◌̀◌֮◌ࣷb; à◌֮◌ࣷ◌̕b; a◌֮◌̀◌ࣷ◌̕b; à◌֮◌ࣷ◌̕b; a◌֮◌̀◌ࣷ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC LEFT ARROWHEAD ABOVE, LATIN SMALL LETTER B
+0061 08F7 0315 0300 05AE 0062;0061 05AE 08F7 0300 0315 0062;0061 05AE 08F7 0300 0315 0062;0061 05AE 08F7 0300 0315 0062;0061 05AE 08F7 0300 0315 0062; # (a◌ࣷ◌̕◌̀◌֮b; a◌֮◌ࣷ◌̀◌̕b; a◌֮◌ࣷ◌̀◌̕b; a◌֮◌ࣷ◌̀◌̕b; a◌֮◌ࣷ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC LEFT ARROWHEAD ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08F8 0062;00E0 05AE 08F8 0315 0062;0061 05AE 0300 08F8 0315 0062;00E0 05AE 08F8 0315 0062;0061 05AE 0300 08F8 0315 0062; # (a◌̕◌̀◌֮◌ࣸb; à◌֮◌ࣸ◌̕b; a◌֮◌̀◌ࣸ◌̕b; à◌֮◌ࣸ◌̕b; a◌֮◌̀◌ࣸ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC RIGHT ARROWHEAD ABOVE, LATIN SMALL LETTER B
+0061 08F8 0315 0300 05AE 0062;0061 05AE 08F8 0300 0315 0062;0061 05AE 08F8 0300 0315 0062;0061 05AE 08F8 0300 0315 0062;0061 05AE 08F8 0300 0315 0062; # (a◌ࣸ◌̕◌̀◌֮b; a◌֮◌ࣸ◌̀◌̕b; a◌֮◌ࣸ◌̀◌̕b; a◌֮◌ࣸ◌̀◌̕b; a◌֮◌ࣸ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC RIGHT ARROWHEAD ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08F9 0062;0061 1DFA 0316 08F9 059A 0062;0061 1DFA 0316 08F9 059A 0062;0061 1DFA 0316 08F9 059A 0062;0061 1DFA 0316 08F9 059A 0062; # (a◌֚◌̖◌᷺◌ࣹb; a◌᷺◌̖◌ࣹ◌֚b; a◌᷺◌̖◌ࣹ◌֚b; a◌᷺◌̖◌ࣹ◌֚b; a◌᷺◌̖◌ࣹ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC LEFT ARROWHEAD BELOW, LATIN SMALL LETTER B
+0061 08F9 059A 0316 1DFA 0062;0061 1DFA 08F9 0316 059A 0062;0061 1DFA 08F9 0316 059A 0062;0061 1DFA 08F9 0316 059A 0062;0061 1DFA 08F9 0316 059A 0062; # (a◌ࣹ◌֚◌̖◌᷺b; a◌᷺◌ࣹ◌̖◌֚b; a◌᷺◌ࣹ◌̖◌֚b; a◌᷺◌ࣹ◌̖◌֚b; a◌᷺◌ࣹ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC LEFT ARROWHEAD BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 08FA 0062;0061 1DFA 0316 08FA 059A 0062;0061 1DFA 0316 08FA 059A 0062;0061 1DFA 0316 08FA 059A 0062;0061 1DFA 0316 08FA 059A 0062; # (a◌֚◌̖◌᷺◌ࣺb; a◌᷺◌̖◌ࣺ◌֚b; a◌᷺◌̖◌ࣺ◌֚b; a◌᷺◌̖◌ࣺ◌֚b; a◌᷺◌̖◌ࣺ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC RIGHT ARROWHEAD BELOW, LATIN SMALL LETTER B
+0061 08FA 059A 0316 1DFA 0062;0061 1DFA 08FA 0316 059A 0062;0061 1DFA 08FA 0316 059A 0062;0061 1DFA 08FA 0316 059A 0062;0061 1DFA 08FA 0316 059A 0062; # (a◌ࣺ◌֚◌̖◌᷺b; a◌᷺◌ࣺ◌̖◌֚b; a◌᷺◌ࣺ◌̖◌֚b; a◌᷺◌ࣺ◌̖◌֚b; a◌᷺◌ࣺ◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC RIGHT ARROWHEAD BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08FB 0062;00E0 05AE 08FB 0315 0062;0061 05AE 0300 08FB 0315 0062;00E0 05AE 08FB 0315 0062;0061 05AE 0300 08FB 0315 0062; # (a◌̕◌̀◌֮◌ࣻb; à◌֮◌ࣻ◌̕b; a◌֮◌̀◌ࣻ◌̕b; à◌֮◌ࣻ◌̕b; a◌֮◌̀◌ࣻ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC DOUBLE RIGHT ARROWHEAD ABOVE, LATIN SMALL LETTER B
+0061 08FB 0315 0300 05AE 0062;0061 05AE 08FB 0300 0315 0062;0061 05AE 08FB 0300 0315 0062;0061 05AE 08FB 0300 0315 0062;0061 05AE 08FB 0300 0315 0062; # (a◌ࣻ◌̕◌̀◌֮b; a◌֮◌ࣻ◌̀◌̕b; a◌֮◌ࣻ◌̀◌̕b; a◌֮◌ࣻ◌̀◌̕b; a◌֮◌ࣻ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC DOUBLE RIGHT ARROWHEAD ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08FC 0062;00E0 05AE 08FC 0315 0062;0061 05AE 0300 08FC 0315 0062;00E0 05AE 08FC 0315 0062;0061 05AE 0300 08FC 0315 0062; # (a◌̕◌̀◌֮◌ࣼb; à◌֮◌ࣼ◌̕b; a◌֮◌̀◌ࣼ◌̕b; à◌֮◌ࣼ◌̕b; a◌֮◌̀◌ࣼ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT, LATIN SMALL LETTER B
+0061 08FC 0315 0300 05AE 0062;0061 05AE 08FC 0300 0315 0062;0061 05AE 08FC 0300 0315 0062;0061 05AE 08FC 0300 0315 0062;0061 05AE 08FC 0300 0315 0062; # (a◌ࣼ◌̕◌̀◌֮b; a◌֮◌ࣼ◌̀◌̕b; a◌֮◌ࣼ◌̀◌̕b; a◌֮◌ࣼ◌̀◌̕b; a◌֮◌ࣼ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08FD 0062;00E0 05AE 08FD 0315 0062;0061 05AE 0300 08FD 0315 0062;00E0 05AE 08FD 0315 0062;0061 05AE 0300 08FD 0315 0062; # (a◌̕◌̀◌֮◌ࣽb; à◌֮◌ࣽ◌̕b; a◌֮◌̀◌ࣽ◌̕b; à◌֮◌ࣽ◌̕b; a◌֮◌̀◌ࣽ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC RIGHT ARROWHEAD ABOVE WITH DOT, LATIN SMALL LETTER B
+0061 08FD 0315 0300 05AE 0062;0061 05AE 08FD 0300 0315 0062;0061 05AE 08FD 0300 0315 0062;0061 05AE 08FD 0300 0315 0062;0061 05AE 08FD 0300 0315 0062; # (a◌ࣽ◌̕◌̀◌֮b; a◌֮◌ࣽ◌̀◌̕b; a◌֮◌ࣽ◌̀◌̕b; a◌֮◌ࣽ◌̀◌̕b; a◌֮◌ࣽ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC RIGHT ARROWHEAD ABOVE WITH DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08FE 0062;00E0 05AE 08FE 0315 0062;0061 05AE 0300 08FE 0315 0062;00E0 05AE 08FE 0315 0062;0061 05AE 0300 08FE 0315 0062; # (a◌̕◌̀◌֮◌ࣾb; à◌֮◌ࣾ◌̕b; a◌֮◌̀◌ࣾ◌̕b; à◌֮◌ࣾ◌̕b; a◌֮◌̀◌ࣾ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC DAMMA WITH DOT, LATIN SMALL LETTER B
+0061 08FE 0315 0300 05AE 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062; # (a◌ࣾ◌̕◌̀◌֮b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC DAMMA WITH DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08FF 0062;00E0 05AE 08FF 0315 0062;0061 05AE 0300 08FF 0315 0062;00E0 05AE 08FF 0315 0062;0061 05AE 0300 08FF 0315 0062; # (a◌̕◌̀◌֮◌ࣿb; à◌֮◌ࣿ◌̕b; a◌֮◌̀◌ࣿ◌̕b; à◌֮◌ࣿ◌̕b; a◌֮◌̀◌ࣿ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC MARK SIDEWAYS NOON GHUNNA, LATIN SMALL LETTER B
+0061 08FF 0315 0300 05AE 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062; # (a◌ࣿ◌̕◌̀◌֮b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC MARK SIDEWAYS NOON GHUNNA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 093C 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062; # (a◌゙◌𖿰़◌़b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, DEVANAGARI SIGN NUKTA, LATIN SMALL LETTER B
+0061 093C 3099 093C 16FF0 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062; # (a◌़◌゙◌𖿰़b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 094D 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062; # (a◌ְ◌्◌゙◌्b; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 094D 05B0 094D 3099 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062; # (a◌्◌ְ◌्◌゙b; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; ) LATIN SMALL LETTER A, DEVANAGARI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0951 0062;00E0 05AE 0951 0315 0062;0061 05AE 0300 0951 0315 0062;00E0 05AE 0951 0315 0062;0061 05AE 0300 0951 0315 0062; # (a◌̕◌̀◌֮◌॑b; à◌֮◌॑◌̕b; a◌֮◌̀◌॑◌̕b; à◌֮◌॑◌̕b; a◌֮◌̀◌॑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, DEVANAGARI STRESS SIGN UDATTA, LATIN SMALL LETTER B
+0061 0951 0315 0300 05AE 0062;0061 05AE 0951 0300 0315 0062;0061 05AE 0951 0300 0315 0062;0061 05AE 0951 0300 0315 0062;0061 05AE 0951 0300 0315 0062; # (a◌॑◌̕◌̀◌֮b; a◌֮◌॑◌̀◌̕b; a◌֮◌॑◌̀◌̕b; a◌֮◌॑◌̀◌̕b; a◌֮◌॑◌̀◌̕b; ) LATIN SMALL LETTER A, DEVANAGARI STRESS SIGN UDATTA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0952 0062;0061 1DFA 0316 0952 059A 0062;0061 1DFA 0316 0952 059A 0062;0061 1DFA 0316 0952 059A 0062;0061 1DFA 0316 0952 059A 0062; # (a◌֚◌̖◌᷺◌॒b; a◌᷺◌̖◌॒◌֚b; a◌᷺◌̖◌॒◌֚b; a◌᷺◌̖◌॒◌֚b; a◌᷺◌̖◌॒◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, DEVANAGARI STRESS SIGN ANUDATTA, LATIN SMALL LETTER B
+0061 0952 059A 0316 1DFA 0062;0061 1DFA 0952 0316 059A 0062;0061 1DFA 0952 0316 059A 0062;0061 1DFA 0952 0316 059A 0062;0061 1DFA 0952 0316 059A 0062; # (a◌॒◌֚◌̖◌᷺b; a◌᷺◌॒◌̖◌֚b; a◌᷺◌॒◌̖◌֚b; a◌᷺◌॒◌̖◌֚b; a◌᷺◌॒◌̖◌֚b; ) LATIN SMALL LETTER A, DEVANAGARI STRESS SIGN ANUDATTA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0953 0062;00E0 05AE 0953 0315 0062;0061 05AE 0300 0953 0315 0062;00E0 05AE 0953 0315 0062;0061 05AE 0300 0953 0315 0062; # (a◌̕◌̀◌֮◌॓b; à◌֮◌॓◌̕b; a◌֮◌̀◌॓◌̕b; à◌֮◌॓◌̕b; a◌֮◌̀◌॓◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, DEVANAGARI GRAVE ACCENT, LATIN SMALL LETTER B
+0061 0953 0315 0300 05AE 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062; # (a◌॓◌̕◌̀◌֮b; a◌֮◌॓◌̀◌̕b; a◌֮◌॓◌̀◌̕b; a◌֮◌॓◌̀◌̕b; a◌֮◌॓◌̀◌̕b; ) LATIN SMALL LETTER A, DEVANAGARI GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0954 0062;00E0 05AE 0954 0315 0062;0061 05AE 0300 0954 0315 0062;00E0 05AE 0954 0315 0062;0061 05AE 0300 0954 0315 0062; # (a◌̕◌̀◌֮◌॔b; à◌֮◌॔◌̕b; a◌֮◌̀◌॔◌̕b; à◌֮◌॔◌̕b; a◌֮◌̀◌॔◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, DEVANAGARI ACUTE ACCENT, LATIN SMALL LETTER B
+0061 0954 0315 0300 05AE 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062; # (a◌॔◌̕◌̀◌֮b; a◌֮◌॔◌̀◌̕b; a◌֮◌॔◌̀◌̕b; a◌֮◌॔◌̀◌̕b; a◌֮◌॔◌̀◌̕b; ) LATIN SMALL LETTER A, DEVANAGARI ACUTE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 09BC 0062;0061 16FF0 093C 09BC 3099 0062;0061 16FF0 093C 09BC 3099 0062;0061 16FF0 093C 09BC 3099 0062;0061 16FF0 093C 09BC 3099 0062; # (a◌゙◌𖿰़◌়b; a𖿰◌़◌়◌゙b; a𖿰◌़◌়◌゙b; a𖿰◌़◌়◌゙b; a𖿰◌़◌়◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, BENGALI SIGN NUKTA, LATIN SMALL LETTER B
+0061 09BC 3099 093C 16FF0 0062;0061 16FF0 09BC 093C 3099 0062;0061 16FF0 09BC 093C 3099 0062;0061 16FF0 09BC 093C 3099 0062;0061 16FF0 09BC 093C 3099 0062; # (a◌়◌゙◌𖿰़b; a𖿰◌়◌़◌゙b; a𖿰◌়◌़◌゙b; a𖿰◌়◌़◌゙b; a𖿰◌়◌़◌゙b; ) LATIN SMALL LETTER A, BENGALI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 09CD 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062; # (a◌ְ◌्◌゙◌্b; a◌゙◌्◌্◌ְb; a◌゙◌्◌্◌ְb; a◌゙◌्◌্◌ְb; a◌゙◌्◌্◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BENGALI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 09CD 05B0 094D 3099 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062; # (a◌্◌ְ◌्◌゙b; a◌゙◌্◌्◌ְb; a◌゙◌্◌्◌ְb; a◌゙◌্◌्◌ְb; a◌゙◌্◌्◌ְb; ) LATIN SMALL LETTER A, BENGALI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 09FE 0062;00E0 05AE 09FE 0315 0062;0061 05AE 0300 09FE 0315 0062;00E0 05AE 09FE 0315 0062;0061 05AE 0300 09FE 0315 0062; # (a◌̕◌̀◌֮◌৾b; à◌֮◌৾◌̕b; a◌֮◌̀◌৾◌̕b; à◌֮◌৾◌̕b; a◌֮◌̀◌৾◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BENGALI SANDHI MARK, LATIN SMALL LETTER B
+0061 09FE 0315 0300 05AE 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062; # (a◌৾◌̕◌̀◌֮b; a◌֮◌৾◌̀◌̕b; a◌֮◌৾◌̀◌̕b; a◌֮◌৾◌̀◌̕b; a◌֮◌৾◌̀◌̕b; ) LATIN SMALL LETTER A, BENGALI SANDHI MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0A3C 0062;0061 16FF0 093C 0A3C 3099 0062;0061 16FF0 093C 0A3C 3099 0062;0061 16FF0 093C 0A3C 3099 0062;0061 16FF0 093C 0A3C 3099 0062; # (a◌゙◌𖿰़◌਼b; a𖿰◌़◌਼◌゙b; a𖿰◌़◌਼◌゙b; a𖿰◌़◌਼◌゙b; a𖿰◌़◌਼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, GURMUKHI SIGN NUKTA, LATIN SMALL LETTER B
+0061 0A3C 3099 093C 16FF0 0062;0061 16FF0 0A3C 093C 3099 0062;0061 16FF0 0A3C 093C 3099 0062;0061 16FF0 0A3C 093C 3099 0062;0061 16FF0 0A3C 093C 3099 0062; # (a◌਼◌゙◌𖿰़b; a𖿰◌਼◌़◌゙b; a𖿰◌਼◌़◌゙b; a𖿰◌਼◌़◌゙b; a𖿰◌਼◌़◌゙b; ) LATIN SMALL LETTER A, GURMUKHI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0A4D 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062; # (a◌ְ◌्◌゙◌੍b; a◌゙◌्◌੍◌ְb; a◌゙◌्◌੍◌ְb; a◌゙◌्◌੍◌ְb; a◌゙◌्◌੍◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GURMUKHI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0A4D 05B0 094D 3099 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062; # (a◌੍◌ְ◌्◌゙b; a◌゙◌੍◌्◌ְb; a◌゙◌੍◌्◌ְb; a◌゙◌੍◌्◌ְb; a◌゙◌੍◌्◌ְb; ) LATIN SMALL LETTER A, GURMUKHI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0ABC 0062;0061 16FF0 093C 0ABC 3099 0062;0061 16FF0 093C 0ABC 3099 0062;0061 16FF0 093C 0ABC 3099 0062;0061 16FF0 093C 0ABC 3099 0062; # (a◌゙◌𖿰़◌઼b; a𖿰◌़◌઼◌゙b; a𖿰◌़◌઼◌゙b; a𖿰◌़◌઼◌゙b; a𖿰◌़◌઼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, GUJARATI SIGN NUKTA, LATIN SMALL LETTER B
+0061 0ABC 3099 093C 16FF0 0062;0061 16FF0 0ABC 093C 3099 0062;0061 16FF0 0ABC 093C 3099 0062;0061 16FF0 0ABC 093C 3099 0062;0061 16FF0 0ABC 093C 3099 0062; # (a◌઼◌゙◌𖿰़b; a𖿰◌઼◌़◌゙b; a𖿰◌઼◌़◌゙b; a𖿰◌઼◌़◌゙b; a𖿰◌઼◌़◌゙b; ) LATIN SMALL LETTER A, GUJARATI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0ACD 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062; # (a◌ְ◌्◌゙◌્b; a◌゙◌्◌્◌ְb; a◌゙◌्◌્◌ְb; a◌゙◌्◌્◌ְb; a◌゙◌्◌્◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GUJARATI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0ACD 05B0 094D 3099 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062; # (a◌્◌ְ◌्◌゙b; a◌゙◌્◌्◌ְb; a◌゙◌્◌्◌ְb; a◌゙◌્◌्◌ְb; a◌゙◌્◌्◌ְb; ) LATIN SMALL LETTER A, GUJARATI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0B3C 0062;0061 16FF0 093C 0B3C 3099 0062;0061 16FF0 093C 0B3C 3099 0062;0061 16FF0 093C 0B3C 3099 0062;0061 16FF0 093C 0B3C 3099 0062; # (a◌゙◌𖿰़◌଼b; a𖿰◌़◌଼◌゙b; a𖿰◌़◌଼◌゙b; a𖿰◌़◌଼◌゙b; a𖿰◌़◌଼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, ORIYA SIGN NUKTA, LATIN SMALL LETTER B
+0061 0B3C 3099 093C 16FF0 0062;0061 16FF0 0B3C 093C 3099 0062;0061 16FF0 0B3C 093C 3099 0062;0061 16FF0 0B3C 093C 3099 0062;0061 16FF0 0B3C 093C 3099 0062; # (a◌଼◌゙◌𖿰़b; a𖿰◌଼◌़◌゙b; a𖿰◌଼◌़◌゙b; a𖿰◌଼◌़◌゙b; a𖿰◌଼◌़◌゙b; ) LATIN SMALL LETTER A, ORIYA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0B4D 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062; # (a◌ְ◌्◌゙◌୍b; a◌゙◌्◌୍◌ְb; a◌゙◌्◌୍◌ְb; a◌゙◌्◌୍◌ְb; a◌゙◌्◌୍◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ORIYA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0B4D 05B0 094D 3099 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062; # (a◌୍◌ְ◌्◌゙b; a◌゙◌୍◌्◌ְb; a◌゙◌୍◌्◌ְb; a◌゙◌୍◌्◌ְb; a◌゙◌୍◌्◌ְb; ) LATIN SMALL LETTER A, ORIYA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0BCD 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062; # (a◌ְ◌्◌゙◌்b; a◌゙◌्◌்◌ְb; a◌゙◌्◌்◌ְb; a◌゙◌्◌்◌ְb; a◌゙◌्◌்◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TAMIL SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0BCD 05B0 094D 3099 0062;0061 3099 0BCD 094D 05B0 0062;0061 3099 0BCD 094D 05B0 0062;0061 3099 0BCD 094D 05B0 0062;0061 3099 0BCD 094D 05B0 0062; # (a◌்◌ְ◌्◌゙b; a◌゙◌்◌्◌ְb; a◌゙◌்◌्◌ְb; a◌゙◌்◌्◌ְb; a◌゙◌்◌्◌ְb; ) LATIN SMALL LETTER A, TAMIL SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0C3C 0062;0061 16FF0 093C 0C3C 3099 0062;0061 16FF0 093C 0C3C 3099 0062;0061 16FF0 093C 0C3C 3099 0062;0061 16FF0 093C 0C3C 3099 0062; # (a◌゙◌𖿰़◌఼b; a𖿰◌़◌఼◌゙b; a𖿰◌़◌఼◌゙b; a𖿰◌़◌఼◌゙b; a𖿰◌़◌఼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, TELUGU SIGN NUKTA, LATIN SMALL LETTER B
+0061 0C3C 3099 093C 16FF0 0062;0061 16FF0 0C3C 093C 3099 0062;0061 16FF0 0C3C 093C 3099 0062;0061 16FF0 0C3C 093C 3099 0062;0061 16FF0 0C3C 093C 3099 0062; # (a◌఼◌゙◌𖿰़b; a𖿰◌఼◌़◌゙b; a𖿰◌఼◌़◌゙b; a𖿰◌఼◌़◌゙b; a𖿰◌఼◌़◌゙b; ) LATIN SMALL LETTER A, TELUGU SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0C4D 0062;0061 3099 094D 0C4D 05B0 0062;0061 3099 094D 0C4D 05B0 0062;0061 3099 094D 0C4D 05B0 0062;0061 3099 094D 0C4D 05B0 0062; # (a◌ְ◌्◌゙◌్b; a◌゙◌्◌్◌ְb; a◌゙◌्◌్◌ְb; a◌゙◌्◌్◌ְb; a◌゙◌्◌్◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TELUGU SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0C4D 05B0 094D 3099 0062;0061 3099 0C4D 094D 05B0 0062;0061 3099 0C4D 094D 05B0 0062;0061 3099 0C4D 094D 05B0 0062;0061 3099 0C4D 094D 05B0 0062; # (a◌్◌ְ◌्◌゙b; a◌゙◌్◌्◌ְb; a◌゙◌్◌्◌ְb; a◌゙◌్◌्◌ְb; a◌゙◌్◌्◌ְb; ) LATIN SMALL LETTER A, TELUGU SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0C56 0C55 0711 0C55 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062; # (a◌ౖ◌ౕ◌ܑ◌ౕb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; ) LATIN SMALL LETTER A, TELUGU AI LENGTH MARK, TELUGU LENGTH MARK, SYRIAC LETTER SUPERSCRIPT ALAPH, TELUGU LENGTH MARK, LATIN SMALL LETTER B
+0061 0C55 0C56 0C55 0711 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062; # (a◌ౕ◌ౖ◌ౕ◌ܑb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; ) LATIN SMALL LETTER A, TELUGU LENGTH MARK, TELUGU AI LENGTH MARK, TELUGU LENGTH MARK, SYRIAC LETTER SUPERSCRIPT ALAPH, LATIN SMALL LETTER B
+0061 0E38 0C56 0C55 0C56 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062; # (a◌ุ◌ౖ◌ౕ◌ౖb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; ) LATIN SMALL LETTER A, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, TELUGU LENGTH MARK, TELUGU AI LENGTH MARK, LATIN SMALL LETTER B
+0061 0C56 0E38 0C56 0C55 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062; # (a◌ౖ◌ุ◌ౖ◌ౕb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; ) LATIN SMALL LETTER A, TELUGU AI LENGTH MARK, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, TELUGU LENGTH MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0CBC 0062;0061 16FF0 093C 0CBC 3099 0062;0061 16FF0 093C 0CBC 3099 0062;0061 16FF0 093C 0CBC 3099 0062;0061 16FF0 093C 0CBC 3099 0062; # (a◌゙◌𖿰़◌಼b; a𖿰◌़◌಼◌゙b; a𖿰◌़◌಼◌゙b; a𖿰◌़◌಼◌゙b; a𖿰◌़◌಼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, KANNADA SIGN NUKTA, LATIN SMALL LETTER B
+0061 0CBC 3099 093C 16FF0 0062;0061 16FF0 0CBC 093C 3099 0062;0061 16FF0 0CBC 093C 3099 0062;0061 16FF0 0CBC 093C 3099 0062;0061 16FF0 0CBC 093C 3099 0062; # (a◌಼◌゙◌𖿰़b; a𖿰◌಼◌़◌゙b; a𖿰◌಼◌़◌゙b; a𖿰◌಼◌़◌゙b; a𖿰◌಼◌़◌゙b; ) LATIN SMALL LETTER A, KANNADA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0CCD 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062; # (a◌ְ◌्◌゙◌್b; a◌゙◌्◌್◌ְb; a◌゙◌्◌್◌ְb; a◌゙◌्◌್◌ְb; a◌゙◌्◌್◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KANNADA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0CCD 05B0 094D 3099 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062; # (a◌್◌ְ◌्◌゙b; a◌゙◌್◌्◌ְb; a◌゙◌್◌्◌ְb; a◌゙◌್◌्◌ְb; a◌゙◌್◌्◌ְb; ) LATIN SMALL LETTER A, KANNADA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0D3B 0062;0061 3099 094D 0D3B 05B0 0062;0061 3099 094D 0D3B 05B0 0062;0061 3099 094D 0D3B 05B0 0062;0061 3099 094D 0D3B 05B0 0062; # (a◌ְ◌्◌゙◌഻b; a◌゙◌्◌഻◌ְb; a◌゙◌्◌഻◌ְb; a◌゙◌्◌഻◌ְb; a◌゙◌्◌഻◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MALAYALAM SIGN VERTICAL BAR VIRAMA, LATIN SMALL LETTER B
+0061 0D3B 05B0 094D 3099 0062;0061 3099 0D3B 094D 05B0 0062;0061 3099 0D3B 094D 05B0 0062;0061 3099 0D3B 094D 05B0 0062;0061 3099 0D3B 094D 05B0 0062; # (a◌഻◌ְ◌्◌゙b; a◌゙◌഻◌्◌ְb; a◌゙◌഻◌्◌ְb; a◌゙◌഻◌्◌ְb; a◌゙◌഻◌्◌ְb; ) LATIN SMALL LETTER A, MALAYALAM SIGN VERTICAL BAR VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0D3C 0062;0061 3099 094D 0D3C 05B0 0062;0061 3099 094D 0D3C 05B0 0062;0061 3099 094D 0D3C 05B0 0062;0061 3099 094D 0D3C 05B0 0062; # (a◌ְ◌्◌゙◌഼b; a◌゙◌्◌഼◌ְb; a◌゙◌्◌഼◌ְb; a◌゙◌्◌഼◌ְb; a◌゙◌्◌഼◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MALAYALAM SIGN CIRCULAR VIRAMA, LATIN SMALL LETTER B
+0061 0D3C 05B0 094D 3099 0062;0061 3099 0D3C 094D 05B0 0062;0061 3099 0D3C 094D 05B0 0062;0061 3099 0D3C 094D 05B0 0062;0061 3099 0D3C 094D 05B0 0062; # (a◌഼◌ְ◌्◌゙b; a◌゙◌഼◌्◌ְb; a◌゙◌഼◌्◌ְb; a◌゙◌഼◌्◌ְb; a◌゙◌഼◌्◌ְb; ) LATIN SMALL LETTER A, MALAYALAM SIGN CIRCULAR VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0D4D 0062;0061 3099 094D 0D4D 05B0 0062;0061 3099 094D 0D4D 05B0 0062;0061 3099 094D 0D4D 05B0 0062;0061 3099 094D 0D4D 05B0 0062; # (a◌ְ◌्◌゙◌്b; a◌゙◌्◌്◌ְb; a◌゙◌्◌്◌ְb; a◌゙◌्◌്◌ְb; a◌゙◌्◌്◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MALAYALAM SIGN VIRAMA, LATIN SMALL LETTER B
+0061 0D4D 05B0 094D 3099 0062;0061 3099 0D4D 094D 05B0 0062;0061 3099 0D4D 094D 05B0 0062;0061 3099 0D4D 094D 05B0 0062;0061 3099 0D4D 094D 05B0 0062; # (a◌്◌ְ◌्◌゙b; a◌゙◌്◌्◌ְb; a◌゙◌്◌्◌ְb; a◌゙◌്◌्◌ְb; a◌゙◌്◌्◌ְb; ) LATIN SMALL LETTER A, MALAYALAM SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0DCA 0062;0061 3099 094D 0DCA 05B0 0062;0061 3099 094D 0DCA 05B0 0062;0061 3099 094D 0DCA 05B0 0062;0061 3099 094D 0DCA 05B0 0062; # (a◌ְ◌्◌゙◌්b; a◌゙◌्◌්◌ְb; a◌゙◌्◌්◌ְb; a◌゙◌्◌්◌ְb; a◌゙◌्◌්◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SINHALA SIGN AL-LAKUNA, LATIN SMALL LETTER B
+0061 0DCA 05B0 094D 3099 0062;0061 3099 0DCA 094D 05B0 0062;0061 3099 0DCA 094D 05B0 0062;0061 3099 0DCA 094D 05B0 0062;0061 3099 0DCA 094D 05B0 0062; # (a◌්◌ְ◌्◌゙b; a◌゙◌්◌्◌ְb; a◌゙◌්◌्◌ְb; a◌゙◌්◌्◌ְb; a◌゙◌්◌्◌ְb; ) LATIN SMALL LETTER A, SINHALA SIGN AL-LAKUNA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0E48 0E38 0C56 0E38 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062; # (a◌่◌ุ◌ౖ◌ุb; a◌ౖ◌ุ◌ุ◌่b; a◌ౖ◌ุ◌ุ◌่b; a◌ౖ◌ุ◌ุ◌่b; a◌ౖ◌ุ◌ุ◌่b; ) LATIN SMALL LETTER A, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, THAI CHARACTER SARA U, LATIN SMALL LETTER B
+0061 0E38 0E48 0E38 0C56 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062; # (a◌ุ◌่◌ุ◌ౖb; a◌ౖ◌ุ◌ุ◌่b; a◌ౖ◌ุ◌ุ◌่b; a◌ౖ◌ุ◌ุ◌่b; a◌ౖ◌ุ◌ุ◌่b; ) LATIN SMALL LETTER A, THAI CHARACTER SARA U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, LATIN SMALL LETTER B
+0061 0E48 0E38 0C56 0E39 0062;0061 0C56 0E38 0E39 0E48 0062;0061 0C56 0E38 0E39 0E48 0062;0061 0C56 0E38 0E39 0E48 0062;0061 0C56 0E38 0E39 0E48 0062; # (a◌่◌ุ◌ౖ◌ูb; a◌ౖ◌ุ◌ู◌่b; a◌ౖ◌ุ◌ู◌่b; a◌ౖ◌ุ◌ู◌่b; a◌ౖ◌ุ◌ู◌่b; ) LATIN SMALL LETTER A, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, THAI CHARACTER SARA UU, LATIN SMALL LETTER B
+0061 0E39 0E48 0E38 0C56 0062;0061 0C56 0E39 0E38 0E48 0062;0061 0C56 0E39 0E38 0E48 0062;0061 0C56 0E39 0E38 0E48 0062;0061 0C56 0E39 0E38 0E48 0062; # (a◌ู◌่◌ุ◌ౖb; a◌ౖ◌ู◌ุ◌่b; a◌ౖ◌ู◌ุ◌่b; a◌ౖ◌ู◌ุ◌่b; a◌ౖ◌ู◌ุ◌่b; ) LATIN SMALL LETTER A, THAI CHARACTER SARA UU, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0E3A 0062;0061 3099 094D 0E3A 05B0 0062;0061 3099 094D 0E3A 05B0 0062;0061 3099 094D 0E3A 05B0 0062;0061 3099 094D 0E3A 05B0 0062; # (a◌ְ◌्◌゙◌ฺb; a◌゙◌्◌ฺ◌ְb; a◌゙◌्◌ฺ◌ְb; a◌゙◌्◌ฺ◌ְb; a◌゙◌्◌ฺ◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, THAI CHARACTER PHINTHU, LATIN SMALL LETTER B
+0061 0E3A 05B0 094D 3099 0062;0061 3099 0E3A 094D 05B0 0062;0061 3099 0E3A 094D 05B0 0062;0061 3099 0E3A 094D 05B0 0062;0061 3099 0E3A 094D 05B0 0062; # (a◌ฺ◌ְ◌्◌゙b; a◌゙◌ฺ◌्◌ְb; a◌゙◌ฺ◌्◌ְb; a◌゙◌ฺ◌्◌ְb; a◌゙◌ฺ◌्◌ְb; ) LATIN SMALL LETTER A, THAI CHARACTER PHINTHU, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0EB8 0E48 0E38 0E48 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062; # (a◌ຸ◌่◌ุ◌่b; a◌ุ◌่◌่◌ຸb; a◌ุ◌่◌่◌ຸb; a◌ุ◌่◌่◌ຸb; a◌ุ◌่◌่◌ຸb; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
+0061 0E48 0EB8 0E48 0E38 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062; # (a◌่◌ຸ◌่◌ุb; a◌ุ◌่◌่◌ຸb; a◌ุ◌่◌่◌ຸb; a◌ุ◌่◌่◌ຸb; a◌ุ◌่◌่◌ຸb; ) LATIN SMALL LETTER A, THAI CHARACTER MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, LATIN SMALL LETTER B
+0061 0EB8 0E48 0E38 0E49 0062;0061 0E38 0E48 0E49 0EB8 0062;0061 0E38 0E48 0E49 0EB8 0062;0061 0E38 0E48 0E49 0EB8 0062;0061 0E38 0E48 0E49 0EB8 0062; # (a◌ຸ◌่◌ุ◌้b; a◌ุ◌่◌้◌ຸb; a◌ุ◌่◌้◌ຸb; a◌ุ◌่◌้◌ຸb; a◌ุ◌่◌้◌ຸb; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, THAI CHARACTER MAI THO, LATIN SMALL LETTER B
+0061 0E49 0EB8 0E48 0E38 0062;0061 0E38 0E49 0E48 0EB8 0062;0061 0E38 0E49 0E48 0EB8 0062;0061 0E38 0E49 0E48 0EB8 0062;0061 0E38 0E49 0E48 0EB8 0062; # (a◌้◌ຸ◌่◌ุb; a◌ุ◌้◌่◌ຸb; a◌ุ◌้◌่◌ຸb; a◌ุ◌้◌่◌ຸb; a◌ุ◌้◌่◌ຸb; ) LATIN SMALL LETTER A, THAI CHARACTER MAI THO, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, LATIN SMALL LETTER B
+0061 0EB8 0E48 0E38 0E4A 0062;0061 0E38 0E48 0E4A 0EB8 0062;0061 0E38 0E48 0E4A 0EB8 0062;0061 0E38 0E48 0E4A 0EB8 0062;0061 0E38 0E48 0E4A 0EB8 0062; # (a◌ຸ◌่◌ุ◌๊b; a◌ุ◌่◌๊◌ຸb; a◌ุ◌่◌๊◌ຸb; a◌ุ◌่◌๊◌ຸb; a◌ุ◌่◌๊◌ຸb; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, THAI CHARACTER MAI TRI, LATIN SMALL LETTER B
+0061 0E4A 0EB8 0E48 0E38 0062;0061 0E38 0E4A 0E48 0EB8 0062;0061 0E38 0E4A 0E48 0EB8 0062;0061 0E38 0E4A 0E48 0EB8 0062;0061 0E38 0E4A 0E48 0EB8 0062; # (a◌๊◌ຸ◌่◌ุb; a◌ุ◌๊◌่◌ຸb; a◌ุ◌๊◌่◌ຸb; a◌ุ◌๊◌่◌ຸb; a◌ุ◌๊◌่◌ຸb; ) LATIN SMALL LETTER A, THAI CHARACTER MAI TRI, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, LATIN SMALL LETTER B
+0061 0EB8 0E48 0E38 0E4B 0062;0061 0E38 0E48 0E4B 0EB8 0062;0061 0E38 0E48 0E4B 0EB8 0062;0061 0E38 0E48 0E4B 0EB8 0062;0061 0E38 0E48 0E4B 0EB8 0062; # (a◌ຸ◌่◌ุ◌๋b; a◌ุ◌่◌๋◌ຸb; a◌ุ◌่◌๋◌ຸb; a◌ุ◌่◌๋◌ຸb; a◌ุ◌่◌๋◌ຸb; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, THAI CHARACTER MAI CHATTAWA, LATIN SMALL LETTER B
+0061 0E4B 0EB8 0E48 0E38 0062;0061 0E38 0E4B 0E48 0EB8 0062;0061 0E38 0E4B 0E48 0EB8 0062;0061 0E38 0E4B 0E48 0EB8 0062;0061 0E38 0E4B 0E48 0EB8 0062; # (a◌๋◌ຸ◌่◌ุb; a◌ุ◌๋◌่◌ຸb; a◌ุ◌๋◌่◌ຸb; a◌ุ◌๋◌่◌ຸb; a◌ุ◌๋◌่◌ຸb; ) LATIN SMALL LETTER A, THAI CHARACTER MAI CHATTAWA, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, THAI CHARACTER SARA U, LATIN SMALL LETTER B
+0061 0EC8 0EB8 0E48 0EB8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062; # (a◌່◌ຸ◌่◌ຸb; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; ) LATIN SMALL LETTER A, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0EB8 0EC8 0EB8 0E48 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062; # (a◌ຸ◌່◌ຸ◌่b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
+0061 0EC8 0EB8 0E48 0EB9 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062; # (a◌່◌ຸ◌่◌ູb; a◌่◌ຸ◌ູ◌່b; a◌่◌ຸ◌ູ◌່b; a◌่◌ຸ◌ູ◌່b; a◌่◌ຸ◌ູ◌່b; ) LATIN SMALL LETTER A, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LAO VOWEL SIGN UU, LATIN SMALL LETTER B
+0061 0EB9 0EC8 0EB8 0E48 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062; # (a◌ູ◌່◌ຸ◌่b; a◌่◌ູ◌ຸ◌່b; a◌่◌ູ◌ຸ◌່b; a◌่◌ູ◌ຸ◌່b; a◌่◌ູ◌ຸ◌່b; ) LATIN SMALL LETTER A, LAO VOWEL SIGN UU, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0EBA 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062; # (a◌ְ◌्◌゙◌຺b; a◌゙◌्◌຺◌ְb; a◌゙◌्◌຺◌ְb; a◌゙◌्◌຺◌ְb; a◌゙◌्◌຺◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LAO SIGN PALI VIRAMA, LATIN SMALL LETTER B
+0061 0EBA 05B0 094D 3099 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062; # (a◌຺◌ְ◌्◌゙b; a◌゙◌຺◌्◌ְb; a◌゙◌຺◌्◌ְb; a◌゙◌຺◌्◌ְb; a◌゙◌຺◌्◌ְb; ) LATIN SMALL LETTER A, LAO SIGN PALI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0F71 0EC8 0EB8 0EC8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062; # (a◌ཱ◌່◌ຸ◌່b; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI EK, LATIN SMALL LETTER B
+0061 0EC8 0F71 0EC8 0EB8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062; # (a◌່◌ཱ◌່◌ຸb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; ) LATIN SMALL LETTER A, LAO TONE MAI EK, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0F71 0EC8 0EB8 0EC9 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062; # (a◌ཱ◌່◌ຸ◌້b; a◌ຸ◌່◌້◌ཱb; a◌ຸ◌່◌້◌ཱb; a◌ຸ◌່◌້◌ཱb; a◌ຸ◌່◌້◌ཱb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI THO, LATIN SMALL LETTER B
+0061 0EC9 0F71 0EC8 0EB8 0062;0061 0EB8 0EC9 0EC8 0F71 0062;0061 0EB8 0EC9 0EC8 0F71 0062;0061 0EB8 0EC9 0EC8 0F71 0062;0061 0EB8 0EC9 0EC8 0F71 0062; # (a◌້◌ཱ◌່◌ຸb; a◌ຸ◌້◌່◌ཱb; a◌ຸ◌້◌່◌ཱb; a◌ຸ◌້◌່◌ཱb; a◌ຸ◌້◌່◌ཱb; ) LATIN SMALL LETTER A, LAO TONE MAI THO, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0F71 0EC8 0EB8 0ECA 0062;0061 0EB8 0EC8 0ECA 0F71 0062;0061 0EB8 0EC8 0ECA 0F71 0062;0061 0EB8 0EC8 0ECA 0F71 0062;0061 0EB8 0EC8 0ECA 0F71 0062; # (a◌ཱ◌່◌ຸ◌໊b; a◌ຸ◌່◌໊◌ཱb; a◌ຸ◌່◌໊◌ཱb; a◌ຸ◌່◌໊◌ཱb; a◌ຸ◌່◌໊◌ཱb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI TI, LATIN SMALL LETTER B
+0061 0ECA 0F71 0EC8 0EB8 0062;0061 0EB8 0ECA 0EC8 0F71 0062;0061 0EB8 0ECA 0EC8 0F71 0062;0061 0EB8 0ECA 0EC8 0F71 0062;0061 0EB8 0ECA 0EC8 0F71 0062; # (a◌໊◌ཱ◌່◌ຸb; a◌ຸ◌໊◌່◌ཱb; a◌ຸ◌໊◌່◌ཱb; a◌ຸ◌໊◌່◌ཱb; a◌ຸ◌໊◌່◌ཱb; ) LATIN SMALL LETTER A, LAO TONE MAI TI, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0F71 0EC8 0EB8 0ECB 0062;0061 0EB8 0EC8 0ECB 0F71 0062;0061 0EB8 0EC8 0ECB 0F71 0062;0061 0EB8 0EC8 0ECB 0F71 0062;0061 0EB8 0EC8 0ECB 0F71 0062; # (a◌ཱ◌່◌ຸ◌໋b; a◌ຸ◌່◌໋◌ཱb; a◌ຸ◌່◌໋◌ཱb; a◌ຸ◌່◌໋◌ཱb; a◌ຸ◌່◌໋◌ཱb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI CATAWA, LATIN SMALL LETTER B
+0061 0ECB 0F71 0EC8 0EB8 0062;0061 0EB8 0ECB 0EC8 0F71 0062;0061 0EB8 0ECB 0EC8 0F71 0062;0061 0EB8 0ECB 0EC8 0F71 0062;0061 0EB8 0ECB 0EC8 0F71 0062; # (a◌໋◌ཱ◌່◌ຸb; a◌ຸ◌໋◌່◌ཱb; a◌ຸ◌໋◌່◌ཱb; a◌ຸ◌໋◌່◌ཱb; a◌ຸ◌໋◌່◌ཱb; ) LATIN SMALL LETTER A, LAO TONE MAI CATAWA, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0F18 0062;0061 1DFA 0316 0F18 059A 0062;0061 1DFA 0316 0F18 059A 0062;0061 1DFA 0316 0F18 059A 0062;0061 1DFA 0316 0F18 059A 0062; # (a◌֚◌̖◌᷺◌༘b; a◌᷺◌̖◌༘◌֚b; a◌᷺◌̖◌༘◌֚b; a◌᷺◌̖◌༘◌֚b; a◌᷺◌̖◌༘◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TIBETAN ASTROLOGICAL SIGN -KHYUD PA, LATIN SMALL LETTER B
+0061 0F18 059A 0316 1DFA 0062;0061 1DFA 0F18 0316 059A 0062;0061 1DFA 0F18 0316 059A 0062;0061 1DFA 0F18 0316 059A 0062;0061 1DFA 0F18 0316 059A 0062; # (a◌༘◌֚◌̖◌᷺b; a◌᷺◌༘◌̖◌֚b; a◌᷺◌༘◌̖◌֚b; a◌᷺◌༘◌̖◌֚b; a◌᷺◌༘◌̖◌֚b; ) LATIN SMALL LETTER A, TIBETAN ASTROLOGICAL SIGN -KHYUD PA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0F19 0062;0061 1DFA 0316 0F19 059A 0062;0061 1DFA 0316 0F19 059A 0062;0061 1DFA 0316 0F19 059A 0062;0061 1DFA 0316 0F19 059A 0062; # (a◌֚◌̖◌᷺◌༙b; a◌᷺◌̖◌༙◌֚b; a◌᷺◌̖◌༙◌֚b; a◌᷺◌̖◌༙◌֚b; a◌᷺◌̖◌༙◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS, LATIN SMALL LETTER B
+0061 0F19 059A 0316 1DFA 0062;0061 1DFA 0F19 0316 059A 0062;0061 1DFA 0F19 0316 059A 0062;0061 1DFA 0F19 0316 059A 0062;0061 1DFA 0F19 0316 059A 0062; # (a◌༙◌֚◌̖◌᷺b; a◌᷺◌༙◌̖◌֚b; a◌᷺◌༙◌̖◌֚b; a◌᷺◌༙◌̖◌֚b; a◌᷺◌༙◌̖◌֚b; ) LATIN SMALL LETTER A, TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0F35 0062;0061 1DFA 0316 0F35 059A 0062;0061 1DFA 0316 0F35 059A 0062;0061 1DFA 0316 0F35 059A 0062;0061 1DFA 0316 0F35 059A 0062; # (a◌֚◌̖◌᷺◌༵b; a◌᷺◌̖◌༵◌֚b; a◌᷺◌̖◌༵◌֚b; a◌᷺◌̖◌༵◌֚b; a◌᷺◌̖◌༵◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TIBETAN MARK NGAS BZUNG NYI ZLA, LATIN SMALL LETTER B
+0061 0F35 059A 0316 1DFA 0062;0061 1DFA 0F35 0316 059A 0062;0061 1DFA 0F35 0316 059A 0062;0061 1DFA 0F35 0316 059A 0062;0061 1DFA 0F35 0316 059A 0062; # (a◌༵◌֚◌̖◌᷺b; a◌᷺◌༵◌̖◌֚b; a◌᷺◌༵◌̖◌֚b; a◌᷺◌༵◌̖◌֚b; a◌᷺◌༵◌̖◌֚b; ) LATIN SMALL LETTER A, TIBETAN MARK NGAS BZUNG NYI ZLA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0F37 0062;0061 1DFA 0316 0F37 059A 0062;0061 1DFA 0316 0F37 059A 0062;0061 1DFA 0316 0F37 059A 0062;0061 1DFA 0316 0F37 059A 0062; # (a◌֚◌̖◌᷺◌༷b; a◌᷺◌̖◌༷◌֚b; a◌᷺◌̖◌༷◌֚b; a◌᷺◌̖◌༷◌֚b; a◌᷺◌̖◌༷◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TIBETAN MARK NGAS BZUNG SGOR RTAGS, LATIN SMALL LETTER B
+0061 0F37 059A 0316 1DFA 0062;0061 1DFA 0F37 0316 059A 0062;0061 1DFA 0F37 0316 059A 0062;0061 1DFA 0F37 0316 059A 0062;0061 1DFA 0F37 0316 059A 0062; # (a◌༷◌֚◌̖◌᷺b; a◌᷺◌༷◌̖◌֚b; a◌᷺◌༷◌̖◌֚b; a◌᷺◌༷◌̖◌֚b; a◌᷺◌༷◌̖◌֚b; ) LATIN SMALL LETTER A, TIBETAN MARK NGAS BZUNG SGOR RTAGS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 0F39 0062;0061 1DCE 031B 0F39 1DFA 0062;0061 1DCE 031B 0F39 1DFA 0062;0061 1DCE 031B 0F39 1DFA 0062;0061 1DCE 031B 0F39 1DFA 0062; # (a◌᷺◌̛◌᷎◌༹b; a◌᷎◌̛◌༹◌᷺b; a◌᷎◌̛◌༹◌᷺b; a◌᷎◌̛◌༹◌᷺b; a◌᷎◌̛◌༹◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, TIBETAN MARK TSA -PHRU, LATIN SMALL LETTER B
+0061 0F39 1DFA 031B 1DCE 0062;0061 1DCE 0F39 031B 1DFA 0062;0061 1DCE 0F39 031B 1DFA 0062;0061 1DCE 0F39 031B 1DFA 0062;0061 1DCE 0F39 031B 1DFA 0062; # (a◌༹◌᷺◌̛◌᷎b; a◌᷎◌༹◌̛◌᷺b; a◌᷎◌༹◌̛◌᷺b; a◌᷎◌༹◌̛◌᷺b; a◌᷎◌༹◌̛◌᷺b; ) LATIN SMALL LETTER A, TIBETAN MARK TSA -PHRU, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 0F72 0F71 0EC8 0F71 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062; # (a◌ི◌ཱ◌່◌ཱb; a◌່◌ཱ◌ཱ◌ིb; a◌່◌ཱ◌ཱ◌ིb; a◌່◌ཱ◌ཱ◌ིb; a◌່◌ཱ◌ཱ◌ིb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0F71 0F72 0F71 0EC8 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062; # (a◌ཱ◌ི◌ཱ◌່b; a◌່◌ཱ◌ཱ◌ིb; a◌່◌ཱ◌ཱ◌ིb; a◌່◌ཱ◌ཱ◌ིb; a◌່◌ཱ◌ཱ◌ིb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LATIN SMALL LETTER B
+0061 0F74 0F72 0F71 0F72 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062; # (a◌ུ◌ི◌ཱ◌ིb; a◌ཱ◌ི◌ི◌ུb; a◌ཱ◌ི◌ི◌ུb; a◌ཱ◌ི◌ི◌ུb; a◌ཱ◌ི◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN I, LATIN SMALL LETTER B
+0061 0F72 0F74 0F72 0F71 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062; # (a◌ི◌ུ◌ི◌ཱb; a◌ཱ◌ི◌ི◌ུb; a◌ཱ◌ི◌ི◌ུb; a◌ཱ◌ི◌ི◌ུb; a◌ཱ◌ི◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0321 0F74 0F72 0F74 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062; # (a◌̡◌ུ◌ི◌ུb; a◌ི◌ུ◌ུ◌̡b; a◌ི◌ུ◌ུ◌̡b; a◌ི◌ུ◌ུ◌̡b; a◌ི◌ུ◌ུ◌̡b; ) LATIN SMALL LETTER A, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0F74 0321 0F74 0F72 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062; # (a◌ུ◌̡◌ུ◌ིb; a◌ི◌ུ◌ུ◌̡b; a◌ི◌ུ◌ུ◌̡b; a◌ི◌ུ◌ུ◌̡b; a◌ི◌ུ◌ུ◌̡b; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, LATIN SMALL LETTER B
+0061 0F74 0F72 0F71 0F7A 0062;0061 0F71 0F72 0F7A 0F74 0062;0061 0F71 0F72 0F7A 0F74 0062;0061 0F71 0F72 0F7A 0F74 0062;0061 0F71 0F72 0F7A 0F74 0062; # (a◌ུ◌ི◌ཱ◌ེb; a◌ཱ◌ི◌ེ◌ུb; a◌ཱ◌ི◌ེ◌ུb; a◌ཱ◌ི◌ེ◌ུb; a◌ཱ◌ི◌ེ◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN E, LATIN SMALL LETTER B
+0061 0F7A 0F74 0F72 0F71 0062;0061 0F71 0F7A 0F72 0F74 0062;0061 0F71 0F7A 0F72 0F74 0062;0061 0F71 0F7A 0F72 0F74 0062;0061 0F71 0F7A 0F72 0F74 0062; # (a◌ེ◌ུ◌ི◌ཱb; a◌ཱ◌ེ◌ི◌ུb; a◌ཱ◌ེ◌ི◌ུb; a◌ཱ◌ེ◌ི◌ུb; a◌ཱ◌ེ◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN E, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0F74 0F72 0F71 0F7B 0062;0061 0F71 0F72 0F7B 0F74 0062;0061 0F71 0F72 0F7B 0F74 0062;0061 0F71 0F72 0F7B 0F74 0062;0061 0F71 0F72 0F7B 0F74 0062; # (a◌ུ◌ི◌ཱ◌ཻb; a◌ཱ◌ི◌ཻ◌ུb; a◌ཱ◌ི◌ཻ◌ུb; a◌ཱ◌ི◌ཻ◌ུb; a◌ཱ◌ི◌ཻ◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN EE, LATIN SMALL LETTER B
+0061 0F7B 0F74 0F72 0F71 0062;0061 0F71 0F7B 0F72 0F74 0062;0061 0F71 0F7B 0F72 0F74 0062;0061 0F71 0F7B 0F72 0F74 0062;0061 0F71 0F7B 0F72 0F74 0062; # (a◌ཻ◌ུ◌ི◌ཱb; a◌ཱ◌ཻ◌ི◌ུb; a◌ཱ◌ཻ◌ི◌ུb; a◌ཱ◌ཻ◌ི◌ུb; a◌ཱ◌ཻ◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN EE, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0F74 0F72 0F71 0F7C 0062;0061 0F71 0F72 0F7C 0F74 0062;0061 0F71 0F72 0F7C 0F74 0062;0061 0F71 0F72 0F7C 0F74 0062;0061 0F71 0F72 0F7C 0F74 0062; # (a◌ུ◌ི◌ཱ◌ོb; a◌ཱ◌ི◌ོ◌ུb; a◌ཱ◌ི◌ོ◌ུb; a◌ཱ◌ི◌ོ◌ུb; a◌ཱ◌ི◌ོ◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN O, LATIN SMALL LETTER B
+0061 0F7C 0F74 0F72 0F71 0062;0061 0F71 0F7C 0F72 0F74 0062;0061 0F71 0F7C 0F72 0F74 0062;0061 0F71 0F7C 0F72 0F74 0062;0061 0F71 0F7C 0F72 0F74 0062; # (a◌ོ◌ུ◌ི◌ཱb; a◌ཱ◌ོ◌ི◌ུb; a◌ཱ◌ོ◌ི◌ུb; a◌ཱ◌ོ◌ི◌ུb; a◌ཱ◌ོ◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN O, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0F74 0F72 0F71 0F7D 0062;0061 0F71 0F72 0F7D 0F74 0062;0061 0F71 0F72 0F7D 0F74 0062;0061 0F71 0F72 0F7D 0F74 0062;0061 0F71 0F72 0F7D 0F74 0062; # (a◌ུ◌ི◌ཱ◌ཽb; a◌ཱ◌ི◌ཽ◌ུb; a◌ཱ◌ི◌ཽ◌ུb; a◌ཱ◌ི◌ཽ◌ུb; a◌ཱ◌ི◌ཽ◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN OO, LATIN SMALL LETTER B
+0061 0F7D 0F74 0F72 0F71 0062;0061 0F71 0F7D 0F72 0F74 0062;0061 0F71 0F7D 0F72 0F74 0062;0061 0F71 0F7D 0F72 0F74 0062;0061 0F71 0F7D 0F72 0F74 0062; # (a◌ཽ◌ུ◌ི◌ཱb; a◌ཱ◌ཽ◌ི◌ུb; a◌ཱ◌ཽ◌ི◌ུb; a◌ཱ◌ཽ◌ི◌ུb; a◌ཱ◌ཽ◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN OO, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0F74 0F72 0F71 0F80 0062;0061 0F71 0F72 0F80 0F74 0062;0061 0F71 0F72 0F80 0F74 0062;0061 0F71 0F72 0F80 0F74 0062;0061 0F71 0F72 0F80 0F74 0062; # (a◌ུ◌ི◌ཱ◌ྀb; a◌ཱ◌ི◌ྀ◌ུb; a◌ཱ◌ི◌ྀ◌ུb; a◌ཱ◌ི◌ྀ◌ུb; a◌ཱ◌ི◌ྀ◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN REVERSED I, LATIN SMALL LETTER B
+0061 0F80 0F74 0F72 0F71 0062;0061 0F71 0F80 0F72 0F74 0062;0061 0F71 0F80 0F72 0F74 0062;0061 0F71 0F80 0F72 0F74 0062;0061 0F71 0F80 0F72 0F74 0062; # (a◌ྀ◌ུ◌ི◌ཱb; a◌ཱ◌ྀ◌ི◌ུb; a◌ཱ◌ྀ◌ི◌ུb; a◌ཱ◌ྀ◌ི◌ུb; a◌ཱ◌ྀ◌ི◌ུb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN REVERSED I, TIBETAN VOWEL SIGN U, TIBETAN VOWEL SIGN I, TIBETAN VOWEL SIGN AA, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0F82 0062;00E0 05AE 0F82 0315 0062;0061 05AE 0300 0F82 0315 0062;00E0 05AE 0F82 0315 0062;0061 05AE 0300 0F82 0315 0062; # (a◌̕◌̀◌֮◌ྂb; à◌֮◌ྂ◌̕b; a◌֮◌̀◌ྂ◌̕b; à◌֮◌ྂ◌̕b; a◌֮◌̀◌ྂ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TIBETAN SIGN NYI ZLA NAA DA, LATIN SMALL LETTER B
+0061 0F82 0315 0300 05AE 0062;0061 05AE 0F82 0300 0315 0062;0061 05AE 0F82 0300 0315 0062;0061 05AE 0F82 0300 0315 0062;0061 05AE 0F82 0300 0315 0062; # (a◌ྂ◌̕◌̀◌֮b; a◌֮◌ྂ◌̀◌̕b; a◌֮◌ྂ◌̀◌̕b; a◌֮◌ྂ◌̀◌̕b; a◌֮◌ྂ◌̀◌̕b; ) LATIN SMALL LETTER A, TIBETAN SIGN NYI ZLA NAA DA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0F83 0062;00E0 05AE 0F83 0315 0062;0061 05AE 0300 0F83 0315 0062;00E0 05AE 0F83 0315 0062;0061 05AE 0300 0F83 0315 0062; # (a◌̕◌̀◌֮◌ྃb; à◌֮◌ྃ◌̕b; a◌֮◌̀◌ྃ◌̕b; à◌֮◌ྃ◌̕b; a◌֮◌̀◌ྃ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TIBETAN SIGN SNA LDAN, LATIN SMALL LETTER B
+0061 0F83 0315 0300 05AE 0062;0061 05AE 0F83 0300 0315 0062;0061 05AE 0F83 0300 0315 0062;0061 05AE 0F83 0300 0315 0062;0061 05AE 0F83 0300 0315 0062; # (a◌ྃ◌̕◌̀◌֮b; a◌֮◌ྃ◌̀◌̕b; a◌֮◌ྃ◌̀◌̕b; a◌֮◌ྃ◌̀◌̕b; a◌֮◌ྃ◌̀◌̕b; ) LATIN SMALL LETTER A, TIBETAN SIGN SNA LDAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0F84 0062;0061 3099 094D 0F84 05B0 0062;0061 3099 094D 0F84 05B0 0062;0061 3099 094D 0F84 05B0 0062;0061 3099 094D 0F84 05B0 0062; # (a◌ְ◌्◌゙◌྄b; a◌゙◌्◌྄◌ְb; a◌゙◌्◌྄◌ְb; a◌゙◌्◌྄◌ְb; a◌゙◌्◌྄◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TIBETAN MARK HALANTA, LATIN SMALL LETTER B
+0061 0F84 05B0 094D 3099 0062;0061 3099 0F84 094D 05B0 0062;0061 3099 0F84 094D 05B0 0062;0061 3099 0F84 094D 05B0 0062;0061 3099 0F84 094D 05B0 0062; # (a◌྄◌ְ◌्◌゙b; a◌゙◌྄◌्◌ְb; a◌゙◌྄◌्◌ְb; a◌゙◌྄◌्◌ְb; a◌゙◌྄◌्◌ְb; ) LATIN SMALL LETTER A, TIBETAN MARK HALANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0F86 0062;00E0 05AE 0F86 0315 0062;0061 05AE 0300 0F86 0315 0062;00E0 05AE 0F86 0315 0062;0061 05AE 0300 0F86 0315 0062; # (a◌̕◌̀◌֮◌྆b; à◌֮◌྆◌̕b; a◌֮◌̀◌྆◌̕b; à◌֮◌྆◌̕b; a◌֮◌̀◌྆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TIBETAN SIGN LCI RTAGS, LATIN SMALL LETTER B
+0061 0F86 0315 0300 05AE 0062;0061 05AE 0F86 0300 0315 0062;0061 05AE 0F86 0300 0315 0062;0061 05AE 0F86 0300 0315 0062;0061 05AE 0F86 0300 0315 0062; # (a◌྆◌̕◌̀◌֮b; a◌֮◌྆◌̀◌̕b; a◌֮◌྆◌̀◌̕b; a◌֮◌྆◌̀◌̕b; a◌֮◌྆◌̀◌̕b; ) LATIN SMALL LETTER A, TIBETAN SIGN LCI RTAGS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 0F87 0062;00E0 05AE 0F87 0315 0062;0061 05AE 0300 0F87 0315 0062;00E0 05AE 0F87 0315 0062;0061 05AE 0300 0F87 0315 0062; # (a◌̕◌̀◌֮◌྇b; à◌֮◌྇◌̕b; a◌֮◌̀◌྇◌̕b; à◌֮◌྇◌̕b; a◌֮◌̀◌྇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TIBETAN SIGN YANG RTAGS, LATIN SMALL LETTER B
+0061 0F87 0315 0300 05AE 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062; # (a◌྇◌̕◌̀◌֮b; a◌֮◌྇◌̀◌̕b; a◌֮◌྇◌̀◌̕b; a◌֮◌྇◌̀◌̕b; a◌֮◌྇◌̀◌̕b; ) LATIN SMALL LETTER A, TIBETAN SIGN YANG RTAGS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 0FC6 0062;0061 1DFA 0316 0FC6 059A 0062;0061 1DFA 0316 0FC6 059A 0062;0061 1DFA 0316 0FC6 059A 0062;0061 1DFA 0316 0FC6 059A 0062; # (a◌֚◌̖◌᷺◌࿆b; a◌᷺◌̖◌࿆◌֚b; a◌᷺◌̖◌࿆◌֚b; a◌᷺◌̖◌࿆◌֚b; a◌᷺◌̖◌࿆◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TIBETAN SYMBOL PADMA GDAN, LATIN SMALL LETTER B
+0061 0FC6 059A 0316 1DFA 0062;0061 1DFA 0FC6 0316 059A 0062;0061 1DFA 0FC6 0316 059A 0062;0061 1DFA 0FC6 0316 059A 0062;0061 1DFA 0FC6 0316 059A 0062; # (a◌࿆◌֚◌̖◌᷺b; a◌᷺◌࿆◌̖◌֚b; a◌᷺◌࿆◌̖◌֚b; a◌᷺◌࿆◌̖◌֚b; a◌᷺◌࿆◌̖◌֚b; ) LATIN SMALL LETTER A, TIBETAN SYMBOL PADMA GDAN, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1037 0062;0061 16FF0 093C 1037 3099 0062;0061 16FF0 093C 1037 3099 0062;0061 16FF0 093C 1037 3099 0062;0061 16FF0 093C 1037 3099 0062; # (a◌゙◌𖿰़◌့b; a𖿰◌़◌့◌゙b; a𖿰◌़◌့◌゙b; a𖿰◌़◌့◌゙b; a𖿰◌़◌့◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, MYANMAR SIGN DOT BELOW, LATIN SMALL LETTER B
+0061 1037 3099 093C 16FF0 0062;0061 16FF0 1037 093C 3099 0062;0061 16FF0 1037 093C 3099 0062;0061 16FF0 1037 093C 3099 0062;0061 16FF0 1037 093C 3099 0062; # (a◌့◌゙◌𖿰़b; a𖿰◌့◌़◌゙b; a𖿰◌့◌़◌゙b; a𖿰◌့◌़◌゙b; a𖿰◌့◌़◌゙b; ) LATIN SMALL LETTER A, MYANMAR SIGN DOT BELOW, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1039 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062; # (a◌ְ◌्◌゙◌္b; a◌゙◌्◌္◌ְb; a◌゙◌्◌္◌ְb; a◌゙◌्◌္◌ְb; a◌゙◌्◌္◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MYANMAR SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1039 05B0 094D 3099 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062; # (a◌္◌ְ◌्◌゙b; a◌゙◌္◌्◌ְb; a◌゙◌္◌्◌ְb; a◌゙◌္◌्◌ְb; a◌゙◌္◌्◌ְb; ) LATIN SMALL LETTER A, MYANMAR SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 103A 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062; # (a◌ְ◌्◌゙◌်b; a◌゙◌्◌်◌ְb; a◌゙◌्◌်◌ְb; a◌゙◌्◌်◌ְb; a◌゙◌्◌်◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MYANMAR SIGN ASAT, LATIN SMALL LETTER B
+0061 103A 05B0 094D 3099 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062; # (a◌်◌ְ◌्◌゙b; a◌゙◌်◌्◌ְb; a◌゙◌်◌्◌ְb; a◌゙◌်◌्◌ְb; a◌゙◌်◌्◌ְb; ) LATIN SMALL LETTER A, MYANMAR SIGN ASAT, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 108D 0062;0061 1DFA 0316 108D 059A 0062;0061 1DFA 0316 108D 059A 0062;0061 1DFA 0316 108D 059A 0062;0061 1DFA 0316 108D 059A 0062; # (a◌֚◌̖◌᷺◌ႍb; a◌᷺◌̖◌ႍ◌֚b; a◌᷺◌̖◌ႍ◌֚b; a◌᷺◌̖◌ႍ◌֚b; a◌᷺◌̖◌ႍ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE, LATIN SMALL LETTER B
+0061 108D 059A 0316 1DFA 0062;0061 1DFA 108D 0316 059A 0062;0061 1DFA 108D 0316 059A 0062;0061 1DFA 108D 0316 059A 0062;0061 1DFA 108D 0316 059A 0062; # (a◌ႍ◌֚◌̖◌᷺b; a◌᷺◌ႍ◌̖◌֚b; a◌᷺◌ႍ◌̖◌֚b; a◌᷺◌ႍ◌̖◌֚b; a◌᷺◌ႍ◌̖◌֚b; ) LATIN SMALL LETTER A, MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 135D 0062;00E0 05AE 135D 0315 0062;0061 05AE 0300 135D 0315 0062;00E0 05AE 135D 0315 0062;0061 05AE 0300 135D 0315 0062; # (a◌̕◌̀◌֮◌፝b; à◌֮◌፝◌̕b; a◌֮◌̀◌፝◌̕b; à◌֮◌፝◌̕b; a◌֮◌̀◌፝◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK, LATIN SMALL LETTER B
+0061 135D 0315 0300 05AE 0062;0061 05AE 135D 0300 0315 0062;0061 05AE 135D 0300 0315 0062;0061 05AE 135D 0300 0315 0062;0061 05AE 135D 0300 0315 0062; # (a◌፝◌̕◌̀◌֮b; a◌֮◌፝◌̀◌̕b; a◌֮◌፝◌̀◌̕b; a◌֮◌፝◌̀◌̕b; a◌֮◌፝◌̀◌̕b; ) LATIN SMALL LETTER A, ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 135E 0062;00E0 05AE 135E 0315 0062;0061 05AE 0300 135E 0315 0062;00E0 05AE 135E 0315 0062;0061 05AE 0300 135E 0315 0062; # (a◌̕◌̀◌֮◌፞b; à◌֮◌፞◌̕b; a◌֮◌̀◌፞◌̕b; à◌֮◌፞◌̕b; a◌֮◌̀◌፞◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ETHIOPIC COMBINING VOWEL LENGTH MARK, LATIN SMALL LETTER B
+0061 135E 0315 0300 05AE 0062;0061 05AE 135E 0300 0315 0062;0061 05AE 135E 0300 0315 0062;0061 05AE 135E 0300 0315 0062;0061 05AE 135E 0300 0315 0062; # (a◌፞◌̕◌̀◌֮b; a◌֮◌፞◌̀◌̕b; a◌֮◌፞◌̀◌̕b; a◌֮◌፞◌̀◌̕b; a◌֮◌፞◌̀◌̕b; ) LATIN SMALL LETTER A, ETHIOPIC COMBINING VOWEL LENGTH MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 135F 0062;00E0 05AE 135F 0315 0062;0061 05AE 0300 135F 0315 0062;00E0 05AE 135F 0315 0062;0061 05AE 0300 135F 0315 0062; # (a◌̕◌̀◌֮◌፟b; à◌֮◌፟◌̕b; a◌֮◌̀◌፟◌̕b; à◌֮◌፟◌̕b; a◌֮◌̀◌፟◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ETHIOPIC COMBINING GEMINATION MARK, LATIN SMALL LETTER B
+0061 135F 0315 0300 05AE 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062; # (a◌፟◌̕◌̀◌֮b; a◌֮◌፟◌̀◌̕b; a◌֮◌፟◌̀◌̕b; a◌֮◌፟◌̀◌̕b; a◌֮◌፟◌̀◌̕b; ) LATIN SMALL LETTER A, ETHIOPIC COMBINING GEMINATION MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1714 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062; # (a◌ְ◌्◌゙◌᜔b; a◌゙◌्◌᜔◌ְb; a◌゙◌्◌᜔◌ְb; a◌゙◌्◌᜔◌ְb; a◌゙◌्◌᜔◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TAGALOG SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1714 05B0 094D 3099 0062;0061 3099 1714 094D 05B0 0062;0061 3099 1714 094D 05B0 0062;0061 3099 1714 094D 05B0 0062;0061 3099 1714 094D 05B0 0062; # (a◌᜔◌ְ◌्◌゙b; a◌゙◌᜔◌्◌ְb; a◌゙◌᜔◌्◌ְb; a◌゙◌᜔◌्◌ְb; a◌゙◌᜔◌्◌ְb; ) LATIN SMALL LETTER A, TAGALOG SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1715 0062;0061 3099 094D 1715 05B0 0062;0061 3099 094D 1715 05B0 0062;0061 3099 094D 1715 05B0 0062;0061 3099 094D 1715 05B0 0062; # (a◌ְ◌्◌゙᜕b; a◌゙◌्᜕◌ְb; a◌゙◌्᜕◌ְb; a◌゙◌्᜕◌ְb; a◌゙◌्᜕◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TAGALOG SIGN PAMUDPOD, LATIN SMALL LETTER B
+0061 1715 05B0 094D 3099 0062;0061 3099 1715 094D 05B0 0062;0061 3099 1715 094D 05B0 0062;0061 3099 1715 094D 05B0 0062;0061 3099 1715 094D 05B0 0062; # (a᜕◌ְ◌्◌゙b; a◌゙᜕◌्◌ְb; a◌゙᜕◌्◌ְb; a◌゙᜕◌्◌ְb; a◌゙᜕◌्◌ְb; ) LATIN SMALL LETTER A, TAGALOG SIGN PAMUDPOD, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1734 0062;0061 3099 094D 1734 05B0 0062;0061 3099 094D 1734 05B0 0062;0061 3099 094D 1734 05B0 0062;0061 3099 094D 1734 05B0 0062; # (a◌ְ◌्◌゙᜴b; a◌゙◌्᜴◌ְb; a◌゙◌्᜴◌ְb; a◌゙◌्᜴◌ְb; a◌゙◌्᜴◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HANUNOO SIGN PAMUDPOD, LATIN SMALL LETTER B
+0061 1734 05B0 094D 3099 0062;0061 3099 1734 094D 05B0 0062;0061 3099 1734 094D 05B0 0062;0061 3099 1734 094D 05B0 0062;0061 3099 1734 094D 05B0 0062; # (a᜴◌ְ◌्◌゙b; a◌゙᜴◌्◌ְb; a◌゙᜴◌्◌ְb; a◌゙᜴◌्◌ְb; a◌゙᜴◌्◌ְb; ) LATIN SMALL LETTER A, HANUNOO SIGN PAMUDPOD, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 17D2 0062;0061 3099 094D 17D2 05B0 0062;0061 3099 094D 17D2 05B0 0062;0061 3099 094D 17D2 05B0 0062;0061 3099 094D 17D2 05B0 0062; # (a◌ְ◌्◌゙◌្b; a◌゙◌्◌្◌ְb; a◌゙◌्◌្◌ְb; a◌゙◌्◌្◌ְb; a◌゙◌्◌្◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHMER SIGN COENG, LATIN SMALL LETTER B
+0061 17D2 05B0 094D 3099 0062;0061 3099 17D2 094D 05B0 0062;0061 3099 17D2 094D 05B0 0062;0061 3099 17D2 094D 05B0 0062;0061 3099 17D2 094D 05B0 0062; # (a◌្◌ְ◌्◌゙b; a◌゙◌្◌्◌ְb; a◌゙◌្◌्◌ְb; a◌゙◌្◌्◌ְb; a◌゙◌្◌्◌ְb; ) LATIN SMALL LETTER A, KHMER SIGN COENG, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 17DD 0062;00E0 05AE 17DD 0315 0062;0061 05AE 0300 17DD 0315 0062;00E0 05AE 17DD 0315 0062;0061 05AE 0300 17DD 0315 0062; # (a◌̕◌̀◌֮◌៝b; à◌֮◌៝◌̕b; a◌֮◌̀◌៝◌̕b; à◌֮◌៝◌̕b; a◌֮◌̀◌៝◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, KHMER SIGN ATTHACAN, LATIN SMALL LETTER B
+0061 17DD 0315 0300 05AE 0062;0061 05AE 17DD 0300 0315 0062;0061 05AE 17DD 0300 0315 0062;0061 05AE 17DD 0300 0315 0062;0061 05AE 17DD 0300 0315 0062; # (a◌៝◌̕◌̀◌֮b; a◌֮◌៝◌̀◌̕b; a◌֮◌៝◌̀◌̕b; a◌֮◌៝◌̀◌̕b; a◌֮◌៝◌̀◌̕b; ) LATIN SMALL LETTER A, KHMER SIGN ATTHACAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0300 05AE 1D16D 18A9 0062;00E0 1D16D 05AE 18A9 0062;0061 1D16D 05AE 18A9 0300 0062;00E0 1D16D 05AE 18A9 0062;0061 1D16D 05AE 18A9 0300 0062; # (a◌̀◌𝅭֮◌ᢩb; à𝅭◌֮◌ᢩb; a𝅭◌֮◌ᢩ◌̀b; à𝅭◌֮◌ᢩb; a𝅭◌֮◌ᢩ◌̀b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, MONGOLIAN LETTER ALI GALI DAGALGA, LATIN SMALL LETTER B
+0061 18A9 0300 05AE 1D16D 0062;00E0 1D16D 18A9 05AE 0062;0061 1D16D 18A9 05AE 0300 0062;00E0 1D16D 18A9 05AE 0062;0061 1D16D 18A9 05AE 0300 0062; # (a◌ᢩ◌̀◌𝅭֮b; à𝅭◌ᢩ◌֮b; a𝅭◌ᢩ◌֮◌̀b; à𝅭◌ᢩ◌֮b; a𝅭◌ᢩ◌֮◌̀b; ) LATIN SMALL LETTER A, MONGOLIAN LETTER ALI GALI DAGALGA, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL LETTER B
+0061 302E 059A 0316 1939 0062;0061 0316 059A 1939 302E 0062;0061 0316 059A 1939 302E 0062;0061 0316 059A 1939 302E 0062;0061 0316 059A 1939 302E 0062; # (a〮◌֚◌̖◌᤹b; a◌̖◌֚◌᤹〮b; a◌̖◌֚◌᤹〮b; a◌̖◌֚◌᤹〮b; a◌̖◌֚◌᤹〮b; ) LATIN SMALL LETTER A, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, LIMBU SIGN MUKPHRENG, LATIN SMALL LETTER B
+0061 1939 302E 059A 0316 0062;0061 0316 1939 059A 302E 0062;0061 0316 1939 059A 302E 0062;0061 0316 1939 059A 302E 0062;0061 0316 1939 059A 302E 0062; # (a◌᤹〮◌֚◌̖b; a◌̖◌᤹◌֚〮b; a◌̖◌᤹◌֚〮b; a◌̖◌᤹◌֚〮b; a◌̖◌᤹◌֚〮b; ) LATIN SMALL LETTER A, LIMBU SIGN MUKPHRENG, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, LATIN SMALL LETTER B
+0061 0315 0300 05AE 193A 0062;00E0 05AE 193A 0315 0062;0061 05AE 0300 193A 0315 0062;00E0 05AE 193A 0315 0062;0061 05AE 0300 193A 0315 0062; # (a◌̕◌̀◌֮◌᤺b; à◌֮◌᤺◌̕b; a◌֮◌̀◌᤺◌̕b; à◌֮◌᤺◌̕b; a◌֮◌̀◌᤺◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LIMBU SIGN KEMPHRENG, LATIN SMALL LETTER B
+0061 193A 0315 0300 05AE 0062;0061 05AE 193A 0300 0315 0062;0061 05AE 193A 0300 0315 0062;0061 05AE 193A 0300 0315 0062;0061 05AE 193A 0300 0315 0062; # (a◌᤺◌̕◌̀◌֮b; a◌֮◌᤺◌̀◌̕b; a◌֮◌᤺◌̀◌̕b; a◌֮◌᤺◌̀◌̕b; a◌֮◌᤺◌̀◌̕b; ) LATIN SMALL LETTER A, LIMBU SIGN KEMPHRENG, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 193B 0062;0061 1DFA 0316 193B 059A 0062;0061 1DFA 0316 193B 059A 0062;0061 1DFA 0316 193B 059A 0062;0061 1DFA 0316 193B 059A 0062; # (a◌֚◌̖◌᷺◌᤻b; a◌᷺◌̖◌᤻◌֚b; a◌᷺◌̖◌᤻◌֚b; a◌᷺◌̖◌᤻◌֚b; a◌᷺◌̖◌᤻◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LIMBU SIGN SA-I, LATIN SMALL LETTER B
+0061 193B 059A 0316 1DFA 0062;0061 1DFA 193B 0316 059A 0062;0061 1DFA 193B 0316 059A 0062;0061 1DFA 193B 0316 059A 0062;0061 1DFA 193B 0316 059A 0062; # (a◌᤻◌֚◌̖◌᷺b; a◌᷺◌᤻◌̖◌֚b; a◌᷺◌᤻◌̖◌֚b; a◌᷺◌᤻◌̖◌֚b; a◌᷺◌᤻◌̖◌֚b; ) LATIN SMALL LETTER A, LIMBU SIGN SA-I, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A17 0062;00E0 05AE 1A17 0315 0062;0061 05AE 0300 1A17 0315 0062;00E0 05AE 1A17 0315 0062;0061 05AE 0300 1A17 0315 0062; # (a◌̕◌̀◌֮◌ᨗb; à◌֮◌ᨗ◌̕b; a◌֮◌̀◌ᨗ◌̕b; à◌֮◌ᨗ◌̕b; a◌֮◌̀◌ᨗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BUGINESE VOWEL SIGN I, LATIN SMALL LETTER B
+0061 1A17 0315 0300 05AE 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062; # (a◌ᨗ◌̕◌̀◌֮b; a◌֮◌ᨗ◌̀◌̕b; a◌֮◌ᨗ◌̀◌̕b; a◌֮◌ᨗ◌̀◌̕b; a◌֮◌ᨗ◌̀◌̕b; ) LATIN SMALL LETTER A, BUGINESE VOWEL SIGN I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1A18 0062;0061 1DFA 0316 1A18 059A 0062;0061 1DFA 0316 1A18 059A 0062;0061 1DFA 0316 1A18 059A 0062;0061 1DFA 0316 1A18 059A 0062; # (a◌֚◌̖◌᷺◌ᨘb; a◌᷺◌̖◌ᨘ◌֚b; a◌᷺◌̖◌ᨘ◌֚b; a◌᷺◌̖◌ᨘ◌֚b; a◌᷺◌̖◌ᨘ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, BUGINESE VOWEL SIGN U, LATIN SMALL LETTER B
+0061 1A18 059A 0316 1DFA 0062;0061 1DFA 1A18 0316 059A 0062;0061 1DFA 1A18 0316 059A 0062;0061 1DFA 1A18 0316 059A 0062;0061 1DFA 1A18 0316 059A 0062; # (a◌ᨘ◌֚◌̖◌᷺b; a◌᷺◌ᨘ◌̖◌֚b; a◌᷺◌ᨘ◌̖◌֚b; a◌᷺◌ᨘ◌̖◌֚b; a◌᷺◌ᨘ◌̖◌֚b; ) LATIN SMALL LETTER A, BUGINESE VOWEL SIGN U, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1A60 0062;0061 3099 094D 1A60 05B0 0062;0061 3099 094D 1A60 05B0 0062;0061 3099 094D 1A60 05B0 0062;0061 3099 094D 1A60 05B0 0062; # (a◌ְ◌्◌゙◌᩠b; a◌゙◌्◌᩠◌ְb; a◌゙◌्◌᩠◌ְb; a◌゙◌्◌᩠◌ְb; a◌゙◌्◌᩠◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TAI THAM SIGN SAKOT, LATIN SMALL LETTER B
+0061 1A60 05B0 094D 3099 0062;0061 3099 1A60 094D 05B0 0062;0061 3099 1A60 094D 05B0 0062;0061 3099 1A60 094D 05B0 0062;0061 3099 1A60 094D 05B0 0062; # (a◌᩠◌ְ◌्◌゙b; a◌゙◌᩠◌्◌ְb; a◌゙◌᩠◌्◌ְb; a◌゙◌᩠◌्◌ְb; a◌゙◌᩠◌्◌ְb; ) LATIN SMALL LETTER A, TAI THAM SIGN SAKOT, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A75 0062;00E0 05AE 1A75 0315 0062;0061 05AE 0300 1A75 0315 0062;00E0 05AE 1A75 0315 0062;0061 05AE 0300 1A75 0315 0062; # (a◌̕◌̀◌֮◌᩵b; à◌֮◌᩵◌̕b; a◌֮◌̀◌᩵◌̕b; à◌֮◌᩵◌̕b; a◌֮◌̀◌᩵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN TONE-1, LATIN SMALL LETTER B
+0061 1A75 0315 0300 05AE 0062;0061 05AE 1A75 0300 0315 0062;0061 05AE 1A75 0300 0315 0062;0061 05AE 1A75 0300 0315 0062;0061 05AE 1A75 0300 0315 0062; # (a◌᩵◌̕◌̀◌֮b; a◌֮◌᩵◌̀◌̕b; a◌֮◌᩵◌̀◌̕b; a◌֮◌᩵◌̀◌̕b; a◌֮◌᩵◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN TONE-1, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A76 0062;00E0 05AE 1A76 0315 0062;0061 05AE 0300 1A76 0315 0062;00E0 05AE 1A76 0315 0062;0061 05AE 0300 1A76 0315 0062; # (a◌̕◌̀◌֮◌᩶b; à◌֮◌᩶◌̕b; a◌֮◌̀◌᩶◌̕b; à◌֮◌᩶◌̕b; a◌֮◌̀◌᩶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN TONE-2, LATIN SMALL LETTER B
+0061 1A76 0315 0300 05AE 0062;0061 05AE 1A76 0300 0315 0062;0061 05AE 1A76 0300 0315 0062;0061 05AE 1A76 0300 0315 0062;0061 05AE 1A76 0300 0315 0062; # (a◌᩶◌̕◌̀◌֮b; a◌֮◌᩶◌̀◌̕b; a◌֮◌᩶◌̀◌̕b; a◌֮◌᩶◌̀◌̕b; a◌֮◌᩶◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN TONE-2, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A77 0062;00E0 05AE 1A77 0315 0062;0061 05AE 0300 1A77 0315 0062;00E0 05AE 1A77 0315 0062;0061 05AE 0300 1A77 0315 0062; # (a◌̕◌̀◌֮◌᩷b; à◌֮◌᩷◌̕b; a◌֮◌̀◌᩷◌̕b; à◌֮◌᩷◌̕b; a◌֮◌̀◌᩷◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN KHUEN TONE-3, LATIN SMALL LETTER B
+0061 1A77 0315 0300 05AE 0062;0061 05AE 1A77 0300 0315 0062;0061 05AE 1A77 0300 0315 0062;0061 05AE 1A77 0300 0315 0062;0061 05AE 1A77 0300 0315 0062; # (a◌᩷◌̕◌̀◌֮b; a◌֮◌᩷◌̀◌̕b; a◌֮◌᩷◌̀◌̕b; a◌֮◌᩷◌̀◌̕b; a◌֮◌᩷◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN KHUEN TONE-3, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A78 0062;00E0 05AE 1A78 0315 0062;0061 05AE 0300 1A78 0315 0062;00E0 05AE 1A78 0315 0062;0061 05AE 0300 1A78 0315 0062; # (a◌̕◌̀◌֮◌᩸b; à◌֮◌᩸◌̕b; a◌֮◌̀◌᩸◌̕b; à◌֮◌᩸◌̕b; a◌֮◌̀◌᩸◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN KHUEN TONE-4, LATIN SMALL LETTER B
+0061 1A78 0315 0300 05AE 0062;0061 05AE 1A78 0300 0315 0062;0061 05AE 1A78 0300 0315 0062;0061 05AE 1A78 0300 0315 0062;0061 05AE 1A78 0300 0315 0062; # (a◌᩸◌̕◌̀◌֮b; a◌֮◌᩸◌̀◌̕b; a◌֮◌᩸◌̀◌̕b; a◌֮◌᩸◌̀◌̕b; a◌֮◌᩸◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN KHUEN TONE-4, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A79 0062;00E0 05AE 1A79 0315 0062;0061 05AE 0300 1A79 0315 0062;00E0 05AE 1A79 0315 0062;0061 05AE 0300 1A79 0315 0062; # (a◌̕◌̀◌֮◌᩹b; à◌֮◌᩹◌̕b; a◌֮◌̀◌᩹◌̕b; à◌֮◌᩹◌̕b; a◌֮◌̀◌᩹◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN KHUEN TONE-5, LATIN SMALL LETTER B
+0061 1A79 0315 0300 05AE 0062;0061 05AE 1A79 0300 0315 0062;0061 05AE 1A79 0300 0315 0062;0061 05AE 1A79 0300 0315 0062;0061 05AE 1A79 0300 0315 0062; # (a◌᩹◌̕◌̀◌֮b; a◌֮◌᩹◌̀◌̕b; a◌֮◌᩹◌̀◌̕b; a◌֮◌᩹◌̀◌̕b; a◌֮◌᩹◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN KHUEN TONE-5, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A7A 0062;00E0 05AE 1A7A 0315 0062;0061 05AE 0300 1A7A 0315 0062;00E0 05AE 1A7A 0315 0062;0061 05AE 0300 1A7A 0315 0062; # (a◌̕◌̀◌֮◌᩺b; à◌֮◌᩺◌̕b; a◌֮◌̀◌᩺◌̕b; à◌֮◌᩺◌̕b; a◌֮◌̀◌᩺◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN RA HAAM, LATIN SMALL LETTER B
+0061 1A7A 0315 0300 05AE 0062;0061 05AE 1A7A 0300 0315 0062;0061 05AE 1A7A 0300 0315 0062;0061 05AE 1A7A 0300 0315 0062;0061 05AE 1A7A 0300 0315 0062; # (a◌᩺◌̕◌̀◌֮b; a◌֮◌᩺◌̀◌̕b; a◌֮◌᩺◌̀◌̕b; a◌֮◌᩺◌̀◌̕b; a◌֮◌᩺◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN RA HAAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A7B 0062;00E0 05AE 1A7B 0315 0062;0061 05AE 0300 1A7B 0315 0062;00E0 05AE 1A7B 0315 0062;0061 05AE 0300 1A7B 0315 0062; # (a◌̕◌̀◌֮◌᩻b; à◌֮◌᩻◌̕b; a◌֮◌̀◌᩻◌̕b; à◌֮◌᩻◌̕b; a◌֮◌̀◌᩻◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN MAI SAM, LATIN SMALL LETTER B
+0061 1A7B 0315 0300 05AE 0062;0061 05AE 1A7B 0300 0315 0062;0061 05AE 1A7B 0300 0315 0062;0061 05AE 1A7B 0300 0315 0062;0061 05AE 1A7B 0300 0315 0062; # (a◌᩻◌̕◌̀◌֮b; a◌֮◌᩻◌̀◌̕b; a◌֮◌᩻◌̀◌̕b; a◌֮◌᩻◌̀◌̕b; a◌֮◌᩻◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN MAI SAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1A7C 0062;00E0 05AE 1A7C 0315 0062;0061 05AE 0300 1A7C 0315 0062;00E0 05AE 1A7C 0315 0062;0061 05AE 0300 1A7C 0315 0062; # (a◌̕◌̀◌֮◌᩼b; à◌֮◌᩼◌̕b; a◌֮◌̀◌᩼◌̕b; à◌֮◌᩼◌̕b; a◌֮◌̀◌᩼◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI THAM SIGN KHUEN-LUE KARAN, LATIN SMALL LETTER B
+0061 1A7C 0315 0300 05AE 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062; # (a◌᩼◌̕◌̀◌֮b; a◌֮◌᩼◌̀◌̕b; a◌֮◌᩼◌̀◌̕b; a◌֮◌᩼◌̀◌̕b; a◌֮◌᩼◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN KHUEN-LUE KARAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1A7F 0062;0061 1DFA 0316 1A7F 059A 0062;0061 1DFA 0316 1A7F 059A 0062;0061 1DFA 0316 1A7F 059A 0062;0061 1DFA 0316 1A7F 059A 0062; # (a◌֚◌̖◌᷺◌᩿b; a◌᷺◌̖◌᩿◌֚b; a◌᷺◌̖◌᩿◌֚b; a◌᷺◌̖◌᩿◌֚b; a◌᷺◌̖◌᩿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TAI THAM COMBINING CRYPTOGRAMMIC DOT, LATIN SMALL LETTER B
+0061 1A7F 059A 0316 1DFA 0062;0061 1DFA 1A7F 0316 059A 0062;0061 1DFA 1A7F 0316 059A 0062;0061 1DFA 1A7F 0316 059A 0062;0061 1DFA 1A7F 0316 059A 0062; # (a◌᩿◌֚◌̖◌᷺b; a◌᷺◌᩿◌̖◌֚b; a◌᷺◌᩿◌̖◌֚b; a◌᷺◌᩿◌̖◌֚b; a◌᷺◌᩿◌̖◌֚b; ) LATIN SMALL LETTER A, TAI THAM COMBINING CRYPTOGRAMMIC DOT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB0 0062;00E0 05AE 1AB0 0315 0062;0061 05AE 0300 1AB0 0315 0062;00E0 05AE 1AB0 0315 0062;0061 05AE 0300 1AB0 0315 0062; # (a◌̕◌̀◌֮◌᪰b; à◌֮◌᪰◌̕b; a◌֮◌̀◌᪰◌̕b; à◌֮◌᪰◌̕b; a◌֮◌̀◌᪰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLED CIRCUMFLEX ACCENT, LATIN SMALL LETTER B
+0061 1AB0 0315 0300 05AE 0062;0061 05AE 1AB0 0300 0315 0062;0061 05AE 1AB0 0300 0315 0062;0061 05AE 1AB0 0300 0315 0062;0061 05AE 1AB0 0300 0315 0062; # (a◌᪰◌̕◌̀◌֮b; a◌֮◌᪰◌̀◌̕b; a◌֮◌᪰◌̀◌̕b; a◌֮◌᪰◌̀◌̕b; a◌֮◌᪰◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLED CIRCUMFLEX ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB1 0062;00E0 05AE 1AB1 0315 0062;0061 05AE 0300 1AB1 0315 0062;00E0 05AE 1AB1 0315 0062;0061 05AE 0300 1AB1 0315 0062; # (a◌̕◌̀◌֮◌᪱b; à◌֮◌᪱◌̕b; a◌֮◌̀◌᪱◌̕b; à◌֮◌᪱◌̕b; a◌֮◌̀◌᪱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DIAERESIS-RING, LATIN SMALL LETTER B
+0061 1AB1 0315 0300 05AE 0062;0061 05AE 1AB1 0300 0315 0062;0061 05AE 1AB1 0300 0315 0062;0061 05AE 1AB1 0300 0315 0062;0061 05AE 1AB1 0300 0315 0062; # (a◌᪱◌̕◌̀◌֮b; a◌֮◌᪱◌̀◌̕b; a◌֮◌᪱◌̀◌̕b; a◌֮◌᪱◌̀◌̕b; a◌֮◌᪱◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DIAERESIS-RING, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB2 0062;00E0 05AE 1AB2 0315 0062;0061 05AE 0300 1AB2 0315 0062;00E0 05AE 1AB2 0315 0062;0061 05AE 0300 1AB2 0315 0062; # (a◌̕◌̀◌֮◌᪲b; à◌֮◌᪲◌̕b; a◌֮◌̀◌᪲◌̕b; à◌֮◌᪲◌̕b; a◌֮◌̀◌᪲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING INFINITY, LATIN SMALL LETTER B
+0061 1AB2 0315 0300 05AE 0062;0061 05AE 1AB2 0300 0315 0062;0061 05AE 1AB2 0300 0315 0062;0061 05AE 1AB2 0300 0315 0062;0061 05AE 1AB2 0300 0315 0062; # (a◌᪲◌̕◌̀◌֮b; a◌֮◌᪲◌̀◌̕b; a◌֮◌᪲◌̀◌̕b; a◌֮◌᪲◌̀◌̕b; a◌֮◌᪲◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING INFINITY, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB3 0062;00E0 05AE 1AB3 0315 0062;0061 05AE 0300 1AB3 0315 0062;00E0 05AE 1AB3 0315 0062;0061 05AE 0300 1AB3 0315 0062; # (a◌̕◌̀◌֮◌᪳b; à◌֮◌᪳◌̕b; a◌֮◌̀◌᪳◌̕b; à◌֮◌᪳◌̕b; a◌֮◌̀◌᪳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOWNWARDS ARROW, LATIN SMALL LETTER B
+0061 1AB3 0315 0300 05AE 0062;0061 05AE 1AB3 0300 0315 0062;0061 05AE 1AB3 0300 0315 0062;0061 05AE 1AB3 0300 0315 0062;0061 05AE 1AB3 0300 0315 0062; # (a◌᪳◌̕◌̀◌֮b; a◌֮◌᪳◌̀◌̕b; a◌֮◌᪳◌̀◌̕b; a◌֮◌᪳◌̀◌̕b; a◌֮◌᪳◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOWNWARDS ARROW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB4 0062;00E0 05AE 1AB4 0315 0062;0061 05AE 0300 1AB4 0315 0062;00E0 05AE 1AB4 0315 0062;0061 05AE 0300 1AB4 0315 0062; # (a◌̕◌̀◌֮◌᪴b; à◌֮◌᪴◌̕b; a◌֮◌̀◌᪴◌̕b; à◌֮◌᪴◌̕b; a◌֮◌̀◌᪴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING TRIPLE DOT, LATIN SMALL LETTER B
+0061 1AB4 0315 0300 05AE 0062;0061 05AE 1AB4 0300 0315 0062;0061 05AE 1AB4 0300 0315 0062;0061 05AE 1AB4 0300 0315 0062;0061 05AE 1AB4 0300 0315 0062; # (a◌᪴◌̕◌̀◌֮b; a◌֮◌᪴◌̀◌̕b; a◌֮◌᪴◌̀◌̕b; a◌֮◌᪴◌̀◌̕b; a◌֮◌᪴◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING TRIPLE DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AB5 0062;0061 1DFA 0316 1AB5 059A 0062;0061 1DFA 0316 1AB5 059A 0062;0061 1DFA 0316 1AB5 059A 0062;0061 1DFA 0316 1AB5 059A 0062; # (a◌֚◌̖◌᷺◌᪵b; a◌᷺◌̖◌᪵◌֚b; a◌᷺◌̖◌᪵◌֚b; a◌᷺◌̖◌᪵◌֚b; a◌᷺◌̖◌᪵◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING X-X BELOW, LATIN SMALL LETTER B
+0061 1AB5 059A 0316 1DFA 0062;0061 1DFA 1AB5 0316 059A 0062;0061 1DFA 1AB5 0316 059A 0062;0061 1DFA 1AB5 0316 059A 0062;0061 1DFA 1AB5 0316 059A 0062; # (a◌᪵◌֚◌̖◌᷺b; a◌᷺◌᪵◌̖◌֚b; a◌᷺◌᪵◌̖◌֚b; a◌᷺◌᪵◌̖◌֚b; a◌᷺◌᪵◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING X-X BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AB6 0062;0061 1DFA 0316 1AB6 059A 0062;0061 1DFA 0316 1AB6 059A 0062;0061 1DFA 0316 1AB6 059A 0062;0061 1DFA 0316 1AB6 059A 0062; # (a◌֚◌̖◌᷺◌᪶b; a◌᷺◌̖◌᪶◌֚b; a◌᷺◌̖◌᪶◌֚b; a◌᷺◌̖◌᪶◌֚b; a◌᷺◌̖◌᪶◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING WIGGLY LINE BELOW, LATIN SMALL LETTER B
+0061 1AB6 059A 0316 1DFA 0062;0061 1DFA 1AB6 0316 059A 0062;0061 1DFA 1AB6 0316 059A 0062;0061 1DFA 1AB6 0316 059A 0062;0061 1DFA 1AB6 0316 059A 0062; # (a◌᪶◌֚◌̖◌᷺b; a◌᷺◌᪶◌̖◌֚b; a◌᷺◌᪶◌̖◌֚b; a◌᷺◌᪶◌̖◌֚b; a◌᷺◌᪶◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING WIGGLY LINE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AB7 0062;0061 1DFA 0316 1AB7 059A 0062;0061 1DFA 0316 1AB7 059A 0062;0061 1DFA 0316 1AB7 059A 0062;0061 1DFA 0316 1AB7 059A 0062; # (a◌֚◌̖◌᷺◌᪷b; a◌᷺◌̖◌᪷◌֚b; a◌᷺◌̖◌᪷◌֚b; a◌᷺◌̖◌᪷◌֚b; a◌᷺◌̖◌᪷◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING OPEN MARK BELOW, LATIN SMALL LETTER B
+0061 1AB7 059A 0316 1DFA 0062;0061 1DFA 1AB7 0316 059A 0062;0061 1DFA 1AB7 0316 059A 0062;0061 1DFA 1AB7 0316 059A 0062;0061 1DFA 1AB7 0316 059A 0062; # (a◌᪷◌֚◌̖◌᷺b; a◌᷺◌᪷◌̖◌֚b; a◌᷺◌᪷◌̖◌֚b; a◌᷺◌᪷◌̖◌֚b; a◌᷺◌᪷◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING OPEN MARK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AB8 0062;0061 1DFA 0316 1AB8 059A 0062;0061 1DFA 0316 1AB8 059A 0062;0061 1DFA 0316 1AB8 059A 0062;0061 1DFA 0316 1AB8 059A 0062; # (a◌֚◌̖◌᷺◌᪸b; a◌᷺◌̖◌᪸◌֚b; a◌᷺◌̖◌᪸◌֚b; a◌᷺◌̖◌᪸◌֚b; a◌᷺◌̖◌᪸◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOUBLE OPEN MARK BELOW, LATIN SMALL LETTER B
+0061 1AB8 059A 0316 1DFA 0062;0061 1DFA 1AB8 0316 059A 0062;0061 1DFA 1AB8 0316 059A 0062;0061 1DFA 1AB8 0316 059A 0062;0061 1DFA 1AB8 0316 059A 0062; # (a◌᪸◌֚◌̖◌᷺b; a◌᷺◌᪸◌̖◌֚b; a◌᷺◌᪸◌̖◌֚b; a◌᷺◌᪸◌̖◌֚b; a◌᷺◌᪸◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOUBLE OPEN MARK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AB9 0062;0061 1DFA 0316 1AB9 059A 0062;0061 1DFA 0316 1AB9 059A 0062;0061 1DFA 0316 1AB9 059A 0062;0061 1DFA 0316 1AB9 059A 0062; # (a◌֚◌̖◌᷺◌᪹b; a◌᷺◌̖◌᪹◌֚b; a◌᷺◌̖◌᪹◌֚b; a◌᷺◌̖◌᪹◌֚b; a◌᷺◌̖◌᪹◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LIGHT CENTRALIZATION STROKE BELOW, LATIN SMALL LETTER B
+0061 1AB9 059A 0316 1DFA 0062;0061 1DFA 1AB9 0316 059A 0062;0061 1DFA 1AB9 0316 059A 0062;0061 1DFA 1AB9 0316 059A 0062;0061 1DFA 1AB9 0316 059A 0062; # (a◌᪹◌֚◌̖◌᷺b; a◌᷺◌᪹◌̖◌֚b; a◌᷺◌᪹◌̖◌֚b; a◌᷺◌᪹◌̖◌֚b; a◌᷺◌᪹◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LIGHT CENTRALIZATION STROKE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1ABA 0062;0061 1DFA 0316 1ABA 059A 0062;0061 1DFA 0316 1ABA 059A 0062;0061 1DFA 0316 1ABA 059A 0062;0061 1DFA 0316 1ABA 059A 0062; # (a◌֚◌̖◌᷺◌᪺b; a◌᷺◌̖◌᪺◌֚b; a◌᷺◌̖◌᪺◌֚b; a◌᷺◌̖◌᪺◌֚b; a◌᷺◌̖◌᪺◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING STRONG CENTRALIZATION STROKE BELOW, LATIN SMALL LETTER B
+0061 1ABA 059A 0316 1DFA 0062;0061 1DFA 1ABA 0316 059A 0062;0061 1DFA 1ABA 0316 059A 0062;0061 1DFA 1ABA 0316 059A 0062;0061 1DFA 1ABA 0316 059A 0062; # (a◌᪺◌֚◌̖◌᷺b; a◌᷺◌᪺◌̖◌֚b; a◌᷺◌᪺◌̖◌֚b; a◌᷺◌᪺◌̖◌֚b; a◌᷺◌᪺◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING STRONG CENTRALIZATION STROKE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ABB 0062;00E0 05AE 1ABB 0315 0062;0061 05AE 0300 1ABB 0315 0062;00E0 05AE 1ABB 0315 0062;0061 05AE 0300 1ABB 0315 0062; # (a◌̕◌̀◌֮◌᪻b; à◌֮◌᪻◌̕b; a◌֮◌̀◌᪻◌̕b; à◌֮◌᪻◌̕b; a◌֮◌̀◌᪻◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING PARENTHESES ABOVE, LATIN SMALL LETTER B
+0061 1ABB 0315 0300 05AE 0062;0061 05AE 1ABB 0300 0315 0062;0061 05AE 1ABB 0300 0315 0062;0061 05AE 1ABB 0300 0315 0062;0061 05AE 1ABB 0300 0315 0062; # (a◌᪻◌̕◌̀◌֮b; a◌֮◌᪻◌̀◌̕b; a◌֮◌᪻◌̀◌̕b; a◌֮◌᪻◌̀◌̕b; a◌֮◌᪻◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING PARENTHESES ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ABC 0062;00E0 05AE 1ABC 0315 0062;0061 05AE 0300 1ABC 0315 0062;00E0 05AE 1ABC 0315 0062;0061 05AE 0300 1ABC 0315 0062; # (a◌̕◌̀◌֮◌᪼b; à◌֮◌᪼◌̕b; a◌֮◌̀◌᪼◌̕b; à◌֮◌᪼◌̕b; a◌֮◌̀◌᪼◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE PARENTHESES ABOVE, LATIN SMALL LETTER B
+0061 1ABC 0315 0300 05AE 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062; # (a◌᪼◌̕◌̀◌֮b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE PARENTHESES ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1ABD 0062;0061 1DFA 0316 1ABD 059A 0062;0061 1DFA 0316 1ABD 059A 0062;0061 1DFA 0316 1ABD 059A 0062;0061 1DFA 0316 1ABD 059A 0062; # (a◌֚◌̖◌᷺◌᪽b; a◌᷺◌̖◌᪽◌֚b; a◌᷺◌̖◌᪽◌֚b; a◌᷺◌̖◌᪽◌֚b; a◌᷺◌̖◌᪽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING PARENTHESES BELOW, LATIN SMALL LETTER B
+0061 1ABD 059A 0316 1DFA 0062;0061 1DFA 1ABD 0316 059A 0062;0061 1DFA 1ABD 0316 059A 0062;0061 1DFA 1ABD 0316 059A 0062;0061 1DFA 1ABD 0316 059A 0062; # (a◌᪽◌֚◌̖◌᷺b; a◌᷺◌᪽◌̖◌֚b; a◌᷺◌᪽◌̖◌֚b; a◌᷺◌᪽◌̖◌֚b; a◌᷺◌᪽◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING PARENTHESES BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1ABF 0062;0061 1DFA 0316 1ABF 059A 0062;0061 1DFA 0316 1ABF 059A 0062;0061 1DFA 0316 1ABF 059A 0062;0061 1DFA 0316 1ABF 059A 0062; # (a◌֚◌̖◌᷺◌ᪿb; a◌᷺◌̖◌ᪿ◌֚b; a◌᷺◌̖◌ᪿ◌֚b; a◌᷺◌̖◌ᪿ◌֚b; a◌᷺◌̖◌ᪿ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LATIN SMALL LETTER W BELOW, LATIN SMALL LETTER B
+0061 1ABF 059A 0316 1DFA 0062;0061 1DFA 1ABF 0316 059A 0062;0061 1DFA 1ABF 0316 059A 0062;0061 1DFA 1ABF 0316 059A 0062;0061 1DFA 1ABF 0316 059A 0062; # (a◌ᪿ◌֚◌̖◌᷺b; a◌᷺◌ᪿ◌̖◌֚b; a◌᷺◌ᪿ◌̖◌֚b; a◌᷺◌ᪿ◌̖◌֚b; a◌᷺◌ᪿ◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER W BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AC0 0062;0061 1DFA 0316 1AC0 059A 0062;0061 1DFA 0316 1AC0 059A 0062;0061 1DFA 0316 1AC0 059A 0062;0061 1DFA 0316 1AC0 059A 0062; # (a◌֚◌̖◌᷺◌ᫀb; a◌᷺◌̖◌ᫀ◌֚b; a◌᷺◌̖◌ᫀ◌֚b; a◌᷺◌̖◌ᫀ◌֚b; a◌᷺◌̖◌ᫀ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LATIN SMALL LETTER TURNED W BELOW, LATIN SMALL LETTER B
+0061 1AC0 059A 0316 1DFA 0062;0061 1DFA 1AC0 0316 059A 0062;0061 1DFA 1AC0 0316 059A 0062;0061 1DFA 1AC0 0316 059A 0062;0061 1DFA 1AC0 0316 059A 0062; # (a◌ᫀ◌֚◌̖◌᷺b; a◌᷺◌ᫀ◌̖◌֚b; a◌᷺◌ᫀ◌̖◌֚b; a◌᷺◌ᫀ◌̖◌֚b; a◌᷺◌ᫀ◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER TURNED W BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC1 0062;00E0 05AE 1AC1 0315 0062;0061 05AE 0300 1AC1 0315 0062;00E0 05AE 1AC1 0315 0062;0061 05AE 0300 1AC1 0315 0062; # (a◌̕◌̀◌֮◌᫁b; à◌֮◌᫁◌̕b; a◌֮◌̀◌᫁◌̕b; à◌֮◌᫁◌̕b; a◌֮◌̀◌᫁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LEFT PARENTHESIS ABOVE LEFT, LATIN SMALL LETTER B
+0061 1AC1 0315 0300 05AE 0062;0061 05AE 1AC1 0300 0315 0062;0061 05AE 1AC1 0300 0315 0062;0061 05AE 1AC1 0300 0315 0062;0061 05AE 1AC1 0300 0315 0062; # (a◌᫁◌̕◌̀◌֮b; a◌֮◌᫁◌̀◌̕b; a◌֮◌᫁◌̀◌̕b; a◌֮◌᫁◌̀◌̕b; a◌֮◌᫁◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LEFT PARENTHESIS ABOVE LEFT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC2 0062;00E0 05AE 1AC2 0315 0062;0061 05AE 0300 1AC2 0315 0062;00E0 05AE 1AC2 0315 0062;0061 05AE 0300 1AC2 0315 0062; # (a◌̕◌̀◌֮◌᫂b; à◌֮◌᫂◌̕b; a◌֮◌̀◌᫂◌̕b; à◌֮◌᫂◌̕b; a◌֮◌̀◌᫂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING RIGHT PARENTHESIS ABOVE RIGHT, LATIN SMALL LETTER B
+0061 1AC2 0315 0300 05AE 0062;0061 05AE 1AC2 0300 0315 0062;0061 05AE 1AC2 0300 0315 0062;0061 05AE 1AC2 0300 0315 0062;0061 05AE 1AC2 0300 0315 0062; # (a◌᫂◌̕◌̀◌֮b; a◌֮◌᫂◌̀◌̕b; a◌֮◌᫂◌̀◌̕b; a◌֮◌᫂◌̀◌̕b; a◌֮◌᫂◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING RIGHT PARENTHESIS ABOVE RIGHT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AC3 0062;0061 1DFA 0316 1AC3 059A 0062;0061 1DFA 0316 1AC3 059A 0062;0061 1DFA 0316 1AC3 059A 0062;0061 1DFA 0316 1AC3 059A 0062; # (a◌֚◌̖◌᷺◌᫃b; a◌᷺◌̖◌᫃◌֚b; a◌᷺◌̖◌᫃◌֚b; a◌᷺◌̖◌᫃◌֚b; a◌᷺◌̖◌᫃◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT PARENTHESIS BELOW LEFT, LATIN SMALL LETTER B
+0061 1AC3 059A 0316 1DFA 0062;0061 1DFA 1AC3 0316 059A 0062;0061 1DFA 1AC3 0316 059A 0062;0061 1DFA 1AC3 0316 059A 0062;0061 1DFA 1AC3 0316 059A 0062; # (a◌᫃◌֚◌̖◌᷺b; a◌᷺◌᫃◌̖◌֚b; a◌᷺◌᫃◌̖◌֚b; a◌᷺◌᫃◌̖◌֚b; a◌᷺◌᫃◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT PARENTHESIS BELOW LEFT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1AC4 0062;0061 1DFA 0316 1AC4 059A 0062;0061 1DFA 0316 1AC4 059A 0062;0061 1DFA 0316 1AC4 059A 0062;0061 1DFA 0316 1AC4 059A 0062; # (a◌֚◌̖◌᷺◌᫄b; a◌᷺◌̖◌᫄◌֚b; a◌᷺◌̖◌᫄◌֚b; a◌᷺◌̖◌᫄◌֚b; a◌᷺◌̖◌᫄◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT PARENTHESIS BELOW RIGHT, LATIN SMALL LETTER B
+0061 1AC4 059A 0316 1DFA 0062;0061 1DFA 1AC4 0316 059A 0062;0061 1DFA 1AC4 0316 059A 0062;0061 1DFA 1AC4 0316 059A 0062;0061 1DFA 1AC4 0316 059A 0062; # (a◌᫄◌֚◌̖◌᷺b; a◌᷺◌᫄◌̖◌֚b; a◌᷺◌᫄◌̖◌֚b; a◌᷺◌᫄◌̖◌֚b; a◌᷺◌᫄◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT PARENTHESIS BELOW RIGHT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC5 0062;00E0 05AE 1AC5 0315 0062;0061 05AE 0300 1AC5 0315 0062;00E0 05AE 1AC5 0315 0062;0061 05AE 0300 1AC5 0315 0062; # (a◌̕◌̀◌֮◌᫅b; à◌֮◌᫅◌̕b; a◌֮◌̀◌᫅◌̕b; à◌֮◌᫅◌̕b; a◌֮◌̀◌᫅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING SQUARE BRACKETS ABOVE, LATIN SMALL LETTER B
+0061 1AC5 0315 0300 05AE 0062;0061 05AE 1AC5 0300 0315 0062;0061 05AE 1AC5 0300 0315 0062;0061 05AE 1AC5 0300 0315 0062;0061 05AE 1AC5 0300 0315 0062; # (a◌᫅◌̕◌̀◌֮b; a◌֮◌᫅◌̀◌̕b; a◌֮◌᫅◌̀◌̕b; a◌֮◌᫅◌̀◌̕b; a◌֮◌᫅◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING SQUARE BRACKETS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC6 0062;00E0 05AE 1AC6 0315 0062;0061 05AE 0300 1AC6 0315 0062;00E0 05AE 1AC6 0315 0062;0061 05AE 0300 1AC6 0315 0062; # (a◌̕◌̀◌֮◌᫆b; à◌֮◌᫆◌̕b; a◌֮◌̀◌᫆◌̕b; à◌֮◌᫆◌̕b; a◌֮◌̀◌᫆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING NUMBER SIGN ABOVE, LATIN SMALL LETTER B
+0061 1AC6 0315 0300 05AE 0062;0061 05AE 1AC6 0300 0315 0062;0061 05AE 1AC6 0300 0315 0062;0061 05AE 1AC6 0300 0315 0062;0061 05AE 1AC6 0300 0315 0062; # (a◌᫆◌̕◌̀◌֮b; a◌֮◌᫆◌̀◌̕b; a◌֮◌᫆◌̀◌̕b; a◌֮◌᫆◌̀◌̕b; a◌֮◌᫆◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING NUMBER SIGN ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC7 0062;00E0 05AE 1AC7 0315 0062;0061 05AE 0300 1AC7 0315 0062;00E0 05AE 1AC7 0315 0062;0061 05AE 0300 1AC7 0315 0062; # (a◌̕◌̀◌֮◌᫇b; à◌֮◌᫇◌̕b; a◌֮◌̀◌᫇◌̕b; à◌֮◌᫇◌̕b; a◌֮◌̀◌᫇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING INVERTED DOUBLE ARCH ABOVE, LATIN SMALL LETTER B
+0061 1AC7 0315 0300 05AE 0062;0061 05AE 1AC7 0300 0315 0062;0061 05AE 1AC7 0300 0315 0062;0061 05AE 1AC7 0300 0315 0062;0061 05AE 1AC7 0300 0315 0062; # (a◌᫇◌̕◌̀◌֮b; a◌֮◌᫇◌̀◌̕b; a◌֮◌᫇◌̀◌̕b; a◌֮◌᫇◌̀◌̕b; a◌֮◌᫇◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING INVERTED DOUBLE ARCH ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC8 0062;00E0 05AE 1AC8 0315 0062;0061 05AE 0300 1AC8 0315 0062;00E0 05AE 1AC8 0315 0062;0061 05AE 0300 1AC8 0315 0062; # (a◌̕◌̀◌֮◌᫈b; à◌֮◌᫈◌̕b; a◌֮◌̀◌᫈◌̕b; à◌֮◌᫈◌̕b; a◌֮◌̀◌᫈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING PLUS SIGN ABOVE, LATIN SMALL LETTER B
+0061 1AC8 0315 0300 05AE 0062;0061 05AE 1AC8 0300 0315 0062;0061 05AE 1AC8 0300 0315 0062;0061 05AE 1AC8 0300 0315 0062;0061 05AE 1AC8 0300 0315 0062; # (a◌᫈◌̕◌̀◌֮b; a◌֮◌᫈◌̀◌̕b; a◌֮◌᫈◌̀◌̕b; a◌֮◌᫈◌̀◌̕b; a◌֮◌᫈◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING PLUS SIGN ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AC9 0062;00E0 05AE 1AC9 0315 0062;0061 05AE 0300 1AC9 0315 0062;00E0 05AE 1AC9 0315 0062;0061 05AE 0300 1AC9 0315 0062; # (a◌̕◌̀◌֮◌᫉b; à◌֮◌᫉◌̕b; a◌֮◌̀◌᫉◌̕b; à◌֮◌᫉◌̕b; a◌֮◌̀◌᫉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE PLUS SIGN ABOVE, LATIN SMALL LETTER B
+0061 1AC9 0315 0300 05AE 0062;0061 05AE 1AC9 0300 0315 0062;0061 05AE 1AC9 0300 0315 0062;0061 05AE 1AC9 0300 0315 0062;0061 05AE 1AC9 0300 0315 0062; # (a◌᫉◌̕◌̀◌֮b; a◌֮◌᫉◌̀◌̕b; a◌֮◌᫉◌̀◌̕b; a◌֮◌᫉◌̀◌̕b; a◌֮◌᫉◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE PLUS SIGN ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1ACA 0062;0061 1DFA 0316 1ACA 059A 0062;0061 1DFA 0316 1ACA 059A 0062;0061 1DFA 0316 1ACA 059A 0062;0061 1DFA 0316 1ACA 059A 0062; # (a◌֚◌̖◌᷺◌᫊b; a◌᷺◌̖◌᫊◌֚b; a◌᷺◌̖◌᫊◌֚b; a◌᷺◌̖◌᫊◌֚b; a◌᷺◌̖◌᫊◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING DOUBLE PLUS SIGN BELOW, LATIN SMALL LETTER B
+0061 1ACA 059A 0316 1DFA 0062;0061 1DFA 1ACA 0316 059A 0062;0061 1DFA 1ACA 0316 059A 0062;0061 1DFA 1ACA 0316 059A 0062;0061 1DFA 1ACA 0316 059A 0062; # (a◌᫊◌֚◌̖◌᷺b; a◌᷺◌᫊◌̖◌֚b; a◌᷺◌᫊◌̖◌֚b; a◌᷺◌᫊◌̖◌֚b; a◌᷺◌᫊◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOUBLE PLUS SIGN BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ACB 0062;00E0 05AE 1ACB 0315 0062;0061 05AE 0300 1ACB 0315 0062;00E0 05AE 1ACB 0315 0062;0061 05AE 0300 1ACB 0315 0062; # (a◌̕◌̀◌֮◌᫋b; à◌֮◌᫋◌̕b; a◌֮◌̀◌᫋◌̕b; à◌֮◌᫋◌̕b; a◌֮◌̀◌᫋◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING TRIPLE ACUTE ACCENT, LATIN SMALL LETTER B
+0061 1ACB 0315 0300 05AE 0062;0061 05AE 1ACB 0300 0315 0062;0061 05AE 1ACB 0300 0315 0062;0061 05AE 1ACB 0300 0315 0062;0061 05AE 1ACB 0300 0315 0062; # (a◌᫋◌̕◌̀◌֮b; a◌֮◌᫋◌̀◌̕b; a◌֮◌᫋◌̀◌̕b; a◌֮◌᫋◌̀◌̕b; a◌֮◌᫋◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING TRIPLE ACUTE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ACC 0062;00E0 05AE 1ACC 0315 0062;0061 05AE 0300 1ACC 0315 0062;00E0 05AE 1ACC 0315 0062;0061 05AE 0300 1ACC 0315 0062; # (a◌̕◌̀◌֮◌ᫌb; à◌֮◌ᫌ◌̕b; a◌֮◌̀◌ᫌ◌̕b; à◌֮◌ᫌ◌̕b; a◌֮◌̀◌ᫌ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER INSULAR G, LATIN SMALL LETTER B
+0061 1ACC 0315 0300 05AE 0062;0061 05AE 1ACC 0300 0315 0062;0061 05AE 1ACC 0300 0315 0062;0061 05AE 1ACC 0300 0315 0062;0061 05AE 1ACC 0300 0315 0062; # (a◌ᫌ◌̕◌̀◌֮b; a◌֮◌ᫌ◌̀◌̕b; a◌֮◌ᫌ◌̀◌̕b; a◌֮◌ᫌ◌̀◌̕b; a◌֮◌ᫌ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER INSULAR G, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ACD 0062;00E0 05AE 1ACD 0315 0062;0061 05AE 0300 1ACD 0315 0062;00E0 05AE 1ACD 0315 0062;0061 05AE 0300 1ACD 0315 0062; # (a◌̕◌̀◌֮◌ᫍb; à◌֮◌ᫍ◌̕b; a◌֮◌̀◌ᫍ◌̕b; à◌֮◌ᫍ◌̕b; a◌֮◌̀◌ᫍ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER INSULAR R, LATIN SMALL LETTER B
+0061 1ACD 0315 0300 05AE 0062;0061 05AE 1ACD 0300 0315 0062;0061 05AE 1ACD 0300 0315 0062;0061 05AE 1ACD 0300 0315 0062;0061 05AE 1ACD 0300 0315 0062; # (a◌ᫍ◌̕◌̀◌֮b; a◌֮◌ᫍ◌̀◌̕b; a◌֮◌ᫍ◌̀◌̕b; a◌֮◌ᫍ◌̀◌̕b; a◌֮◌ᫍ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER INSULAR R, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ACE 0062;00E0 05AE 1ACE 0315 0062;0061 05AE 0300 1ACE 0315 0062;00E0 05AE 1ACE 0315 0062;0061 05AE 0300 1ACE 0315 0062; # (a◌̕◌̀◌֮◌ᫎb; à◌֮◌ᫎ◌̕b; a◌֮◌̀◌ᫎ◌̕b; à◌֮◌ᫎ◌̕b; a◌֮◌̀◌ᫎ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER INSULAR T, LATIN SMALL LETTER B
+0061 1ACE 0315 0300 05AE 0062;0061 05AE 1ACE 0300 0315 0062;0061 05AE 1ACE 0300 0315 0062;0061 05AE 1ACE 0300 0315 0062;0061 05AE 1ACE 0300 0315 0062; # (a◌ᫎ◌̕◌̀◌֮b; a◌֮◌ᫎ◌̀◌̕b; a◌֮◌ᫎ◌̀◌̕b; a◌֮◌ᫎ◌̀◌̕b; a◌֮◌ᫎ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER INSULAR T, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1B34 0062;0061 16FF0 093C 1B34 3099 0062;0061 16FF0 093C 1B34 3099 0062;0061 16FF0 093C 1B34 3099 0062;0061 16FF0 093C 1B34 3099 0062; # (a◌゙◌𖿰़◌᬴b; a𖿰◌़◌᬴◌゙b; a𖿰◌़◌᬴◌゙b; a𖿰◌़◌᬴◌゙b; a𖿰◌़◌᬴◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, BALINESE SIGN REREKAN, LATIN SMALL LETTER B
+0061 1B34 3099 093C 16FF0 0062;0061 16FF0 1B34 093C 3099 0062;0061 16FF0 1B34 093C 3099 0062;0061 16FF0 1B34 093C 3099 0062;0061 16FF0 1B34 093C 3099 0062; # (a◌᬴◌゙◌𖿰़b; a𖿰◌᬴◌़◌゙b; a𖿰◌᬴◌़◌゙b; a𖿰◌᬴◌़◌゙b; a𖿰◌᬴◌़◌゙b; ) LATIN SMALL LETTER A, BALINESE SIGN REREKAN, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1B44 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062; # (a◌ְ◌्◌゙᭄b; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BALINESE ADEG ADEG, LATIN SMALL LETTER B
+0061 1B44 05B0 094D 3099 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062; # (a᭄◌ְ◌्◌゙b; a◌゙᭄◌्◌ְb; a◌゙᭄◌्◌ְb; a◌゙᭄◌्◌ְb; a◌゙᭄◌्◌ְb; ) LATIN SMALL LETTER A, BALINESE ADEG ADEG, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B6B 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062; # (a◌̕◌̀◌֮◌᭫b; à◌֮◌᭫◌̕b; a◌֮◌̀◌᭫◌̕b; à◌֮◌᭫◌̕b; a◌֮◌̀◌᭫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING TEGEH, LATIN SMALL LETTER B
+0061 1B6B 0315 0300 05AE 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062; # (a◌᭫◌̕◌̀◌֮b; a◌֮◌᭫◌̀◌̕b; a◌֮◌᭫◌̀◌̕b; a◌֮◌᭫◌̀◌̕b; a◌֮◌᭫◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING TEGEH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1B6C 0062;0061 1DFA 0316 1B6C 059A 0062;0061 1DFA 0316 1B6C 059A 0062;0061 1DFA 0316 1B6C 059A 0062;0061 1DFA 0316 1B6C 059A 0062; # (a◌֚◌̖◌᷺◌᭬b; a◌᷺◌̖◌᭬◌֚b; a◌᷺◌̖◌᭬◌֚b; a◌᷺◌̖◌᭬◌֚b; a◌᷺◌̖◌᭬◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, BALINESE MUSICAL SYMBOL COMBINING ENDEP, LATIN SMALL LETTER B
+0061 1B6C 059A 0316 1DFA 0062;0061 1DFA 1B6C 0316 059A 0062;0061 1DFA 1B6C 0316 059A 0062;0061 1DFA 1B6C 0316 059A 0062;0061 1DFA 1B6C 0316 059A 0062; # (a◌᭬◌֚◌̖◌᷺b; a◌᷺◌᭬◌̖◌֚b; a◌᷺◌᭬◌̖◌֚b; a◌᷺◌᭬◌̖◌֚b; a◌᷺◌᭬◌̖◌֚b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING ENDEP, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B6D 0062;00E0 05AE 1B6D 0315 0062;0061 05AE 0300 1B6D 0315 0062;00E0 05AE 1B6D 0315 0062;0061 05AE 0300 1B6D 0315 0062; # (a◌̕◌̀◌֮◌᭭b; à◌֮◌᭭◌̕b; a◌֮◌̀◌᭭◌̕b; à◌֮◌᭭◌̕b; a◌֮◌̀◌᭭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING KEMPUL, LATIN SMALL LETTER B
+0061 1B6D 0315 0300 05AE 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062; # (a◌᭭◌̕◌̀◌֮b; a◌֮◌᭭◌̀◌̕b; a◌֮◌᭭◌̀◌̕b; a◌֮◌᭭◌̀◌̕b; a◌֮◌᭭◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING KEMPUL, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B6E 0062;00E0 05AE 1B6E 0315 0062;0061 05AE 0300 1B6E 0315 0062;00E0 05AE 1B6E 0315 0062;0061 05AE 0300 1B6E 0315 0062; # (a◌̕◌̀◌֮◌᭮b; à◌֮◌᭮◌̕b; a◌֮◌̀◌᭮◌̕b; à◌֮◌᭮◌̕b; a◌֮◌̀◌᭮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING KEMPLI, LATIN SMALL LETTER B
+0061 1B6E 0315 0300 05AE 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062; # (a◌᭮◌̕◌̀◌֮b; a◌֮◌᭮◌̀◌̕b; a◌֮◌᭮◌̀◌̕b; a◌֮◌᭮◌̀◌̕b; a◌֮◌᭮◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING KEMPLI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B6F 0062;00E0 05AE 1B6F 0315 0062;0061 05AE 0300 1B6F 0315 0062;00E0 05AE 1B6F 0315 0062;0061 05AE 0300 1B6F 0315 0062; # (a◌̕◌̀◌֮◌᭯b; à◌֮◌᭯◌̕b; a◌֮◌̀◌᭯◌̕b; à◌֮◌᭯◌̕b; a◌֮◌̀◌᭯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING JEGOGAN, LATIN SMALL LETTER B
+0061 1B6F 0315 0300 05AE 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062; # (a◌᭯◌̕◌̀◌֮b; a◌֮◌᭯◌̀◌̕b; a◌֮◌᭯◌̀◌̕b; a◌֮◌᭯◌̀◌̕b; a◌֮◌᭯◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING JEGOGAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B70 0062;00E0 05AE 1B70 0315 0062;0061 05AE 0300 1B70 0315 0062;00E0 05AE 1B70 0315 0062;0061 05AE 0300 1B70 0315 0062; # (a◌̕◌̀◌֮◌᭰b; à◌֮◌᭰◌̕b; a◌֮◌̀◌᭰◌̕b; à◌֮◌᭰◌̕b; a◌֮◌̀◌᭰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN, LATIN SMALL LETTER B
+0061 1B70 0315 0300 05AE 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062; # (a◌᭰◌̕◌̀◌֮b; a◌֮◌᭰◌̀◌̕b; a◌֮◌᭰◌̀◌̕b; a◌֮◌᭰◌̀◌̕b; a◌֮◌᭰◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B71 0062;00E0 05AE 1B71 0315 0062;0061 05AE 0300 1B71 0315 0062;00E0 05AE 1B71 0315 0062;0061 05AE 0300 1B71 0315 0062; # (a◌̕◌̀◌֮◌᭱b; à◌֮◌᭱◌̕b; a◌֮◌̀◌᭱◌̕b; à◌֮◌᭱◌̕b; a◌֮◌̀◌᭱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN, LATIN SMALL LETTER B
+0061 1B71 0315 0300 05AE 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062; # (a◌᭱◌̕◌̀◌֮b; a◌֮◌᭱◌̀◌̕b; a◌֮◌᭱◌̀◌̕b; a◌֮◌᭱◌̀◌̕b; a◌֮◌᭱◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B72 0062;00E0 05AE 1B72 0315 0062;0061 05AE 0300 1B72 0315 0062;00E0 05AE 1B72 0315 0062;0061 05AE 0300 1B72 0315 0062; # (a◌̕◌̀◌֮◌᭲b; à◌֮◌᭲◌̕b; a◌֮◌̀◌᭲◌̕b; à◌֮◌᭲◌̕b; a◌֮◌̀◌᭲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING BENDE, LATIN SMALL LETTER B
+0061 1B72 0315 0300 05AE 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062; # (a◌᭲◌̕◌̀◌֮b; a◌֮◌᭲◌̀◌̕b; a◌֮◌᭲◌̀◌̕b; a◌֮◌᭲◌̀◌̕b; a◌֮◌᭲◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING BENDE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1B73 0062;00E0 05AE 1B73 0315 0062;0061 05AE 0300 1B73 0315 0062;00E0 05AE 1B73 0315 0062;0061 05AE 0300 1B73 0315 0062; # (a◌̕◌̀◌֮◌᭳b; à◌֮◌᭳◌̕b; a◌֮◌̀◌᭳◌̕b; à◌֮◌᭳◌̕b; a◌֮◌̀◌᭳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BALINESE MUSICAL SYMBOL COMBINING GONG, LATIN SMALL LETTER B
+0061 1B73 0315 0300 05AE 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062; # (a◌᭳◌̕◌̀◌֮b; a◌֮◌᭳◌̀◌̕b; a◌֮◌᭳◌̀◌̕b; a◌֮◌᭳◌̀◌̕b; a◌֮◌᭳◌̀◌̕b; ) LATIN SMALL LETTER A, BALINESE MUSICAL SYMBOL COMBINING GONG, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1BAA 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062; # (a◌ְ◌्◌゙᮪b; a◌゙◌्᮪◌ְb; a◌゙◌्᮪◌ְb; a◌゙◌्᮪◌ְb; a◌゙◌्᮪◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SUNDANESE SIGN PAMAAEH, LATIN SMALL LETTER B
+0061 1BAA 05B0 094D 3099 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062; # (a᮪◌ְ◌्◌゙b; a◌゙᮪◌्◌ְb; a◌゙᮪◌्◌ְb; a◌゙᮪◌्◌ְb; a◌゙᮪◌्◌ְb; ) LATIN SMALL LETTER A, SUNDANESE SIGN PAMAAEH, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1BAB 0062;0061 3099 094D 1BAB 05B0 0062;0061 3099 094D 1BAB 05B0 0062;0061 3099 094D 1BAB 05B0 0062;0061 3099 094D 1BAB 05B0 0062; # (a◌ְ◌्◌゙◌᮫b; a◌゙◌्◌᮫◌ְb; a◌゙◌्◌᮫◌ְb; a◌゙◌्◌᮫◌ְb; a◌゙◌्◌᮫◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SUNDANESE SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1BAB 05B0 094D 3099 0062;0061 3099 1BAB 094D 05B0 0062;0061 3099 1BAB 094D 05B0 0062;0061 3099 1BAB 094D 05B0 0062;0061 3099 1BAB 094D 05B0 0062; # (a◌᮫◌ְ◌्◌゙b; a◌゙◌᮫◌्◌ְb; a◌゙◌᮫◌्◌ְb; a◌゙◌᮫◌्◌ְb; a◌゙◌᮫◌्◌ְb; ) LATIN SMALL LETTER A, SUNDANESE SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1BE6 0062;0061 16FF0 093C 1BE6 3099 0062;0061 16FF0 093C 1BE6 3099 0062;0061 16FF0 093C 1BE6 3099 0062;0061 16FF0 093C 1BE6 3099 0062; # (a◌゙◌𖿰़◌᯦b; a𖿰◌़◌᯦◌゙b; a𖿰◌़◌᯦◌゙b; a𖿰◌़◌᯦◌゙b; a𖿰◌़◌᯦◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, BATAK SIGN TOMPI, LATIN SMALL LETTER B
+0061 1BE6 3099 093C 16FF0 0062;0061 16FF0 1BE6 093C 3099 0062;0061 16FF0 1BE6 093C 3099 0062;0061 16FF0 1BE6 093C 3099 0062;0061 16FF0 1BE6 093C 3099 0062; # (a◌᯦◌゙◌𖿰़b; a𖿰◌᯦◌़◌゙b; a𖿰◌᯦◌़◌゙b; a𖿰◌᯦◌़◌゙b; a𖿰◌᯦◌़◌゙b; ) LATIN SMALL LETTER A, BATAK SIGN TOMPI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1BF2 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062; # (a◌ְ◌्◌゙᯲b; a◌゙◌्᯲◌ְb; a◌゙◌्᯲◌ְb; a◌゙◌्᯲◌ְb; a◌゙◌्᯲◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BATAK PANGOLAT, LATIN SMALL LETTER B
+0061 1BF2 05B0 094D 3099 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062; # (a᯲◌ְ◌्◌゙b; a◌゙᯲◌्◌ְb; a◌゙᯲◌्◌ְb; a◌゙᯲◌्◌ְb; a◌゙᯲◌्◌ְb; ) LATIN SMALL LETTER A, BATAK PANGOLAT, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1BF3 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062; # (a◌ְ◌्◌゙᯳b; a◌゙◌्᯳◌ְb; a◌゙◌्᯳◌ְb; a◌゙◌्᯳◌ְb; a◌゙◌्᯳◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BATAK PANONGONAN, LATIN SMALL LETTER B
+0061 1BF3 05B0 094D 3099 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062; # (a᯳◌ְ◌्◌゙b; a◌゙᯳◌्◌ְb; a◌゙᯳◌्◌ְb; a◌゙᯳◌्◌ְb; a◌゙᯳◌्◌ְb; ) LATIN SMALL LETTER A, BATAK PANONGONAN, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1C37 0062;0061 16FF0 093C 1C37 3099 0062;0061 16FF0 093C 1C37 3099 0062;0061 16FF0 093C 1C37 3099 0062;0061 16FF0 093C 1C37 3099 0062; # (a◌゙◌𖿰़◌᰷b; a𖿰◌़◌᰷◌゙b; a𖿰◌़◌᰷◌゙b; a𖿰◌़◌᰷◌゙b; a𖿰◌़◌᰷◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LEPCHA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1C37 3099 093C 16FF0 0062;0061 16FF0 1C37 093C 3099 0062;0061 16FF0 1C37 093C 3099 0062;0061 16FF0 1C37 093C 3099 0062;0061 16FF0 1C37 093C 3099 0062; # (a◌᰷◌゙◌𖿰़b; a𖿰◌᰷◌़◌゙b; a𖿰◌᰷◌़◌゙b; a𖿰◌᰷◌़◌゙b; a𖿰◌᰷◌़◌゙b; ) LATIN SMALL LETTER A, LEPCHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CD0 0062;00E0 05AE 1CD0 0315 0062;0061 05AE 0300 1CD0 0315 0062;00E0 05AE 1CD0 0315 0062;0061 05AE 0300 1CD0 0315 0062; # (a◌̕◌̀◌֮◌᳐b; à◌֮◌᳐◌̕b; a◌֮◌̀◌᳐◌̕b; à◌֮◌᳐◌̕b; a◌֮◌̀◌᳐◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE KARSHANA, LATIN SMALL LETTER B
+0061 1CD0 0315 0300 05AE 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062; # (a◌᳐◌̕◌̀◌֮b; a◌֮◌᳐◌̀◌̕b; a◌֮◌᳐◌̀◌̕b; a◌֮◌᳐◌̀◌̕b; a◌֮◌᳐◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE KARSHANA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CD1 0062;00E0 05AE 1CD1 0315 0062;0061 05AE 0300 1CD1 0315 0062;00E0 05AE 1CD1 0315 0062;0061 05AE 0300 1CD1 0315 0062; # (a◌̕◌̀◌֮◌᳑b; à◌֮◌᳑◌̕b; a◌֮◌̀◌᳑◌̕b; à◌֮◌᳑◌̕b; a◌֮◌̀◌᳑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE SHARA, LATIN SMALL LETTER B
+0061 1CD1 0315 0300 05AE 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062; # (a◌᳑◌̕◌̀◌֮b; a◌֮◌᳑◌̀◌̕b; a◌֮◌᳑◌̀◌̕b; a◌֮◌᳑◌̀◌̕b; a◌֮◌᳑◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE SHARA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CD2 0062;00E0 05AE 1CD2 0315 0062;0061 05AE 0300 1CD2 0315 0062;00E0 05AE 1CD2 0315 0062;0061 05AE 0300 1CD2 0315 0062; # (a◌̕◌̀◌֮◌᳒b; à◌֮◌᳒◌̕b; a◌֮◌̀◌᳒◌̕b; à◌֮◌᳒◌̕b; a◌֮◌̀◌᳒◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE PRENKHA, LATIN SMALL LETTER B
+0061 1CD2 0315 0300 05AE 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062; # (a◌᳒◌̕◌̀◌֮b; a◌֮◌᳒◌̀◌̕b; a◌֮◌᳒◌̀◌̕b; a◌֮◌᳒◌̀◌̕b; a◌֮◌᳒◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE PRENKHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 1CD4 0062;0061 0334 1CD4 16FF0 0062;0061 0334 1CD4 16FF0 0062;0061 0334 1CD4 16FF0 0062;0061 0334 1CD4 16FF0 0062; # (a𖿰◌̴◌᳔b; a◌̴◌᳔𖿰b; a◌̴◌᳔𖿰b; a◌̴◌᳔𖿰b; a◌̴◌᳔𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN YAJURVEDIC MIDLINE SVARITA, LATIN SMALL LETTER B
+0061 1CD4 16FF0 0334 0062;0061 1CD4 0334 16FF0 0062;0061 1CD4 0334 16FF0 0062;0061 1CD4 0334 16FF0 0062;0061 1CD4 0334 16FF0 0062; # (a◌᳔𖿰◌̴b; a◌᳔◌̴𖿰b; a◌᳔◌̴𖿰b; a◌᳔◌̴𖿰b; a◌᳔◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN YAJURVEDIC MIDLINE SVARITA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CD5 0062;0061 1DFA 0316 1CD5 059A 0062;0061 1DFA 0316 1CD5 059A 0062;0061 1DFA 0316 1CD5 059A 0062;0061 1DFA 0316 1CD5 059A 0062; # (a◌֚◌̖◌᷺◌᳕b; a◌᷺◌̖◌᳕◌֚b; a◌᷺◌̖◌᳕◌֚b; a◌᷺◌̖◌᳕◌֚b; a◌᷺◌̖◌᳕◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA, LATIN SMALL LETTER B
+0061 1CD5 059A 0316 1DFA 0062;0061 1DFA 1CD5 0316 059A 0062;0061 1DFA 1CD5 0316 059A 0062;0061 1DFA 1CD5 0316 059A 0062;0061 1DFA 1CD5 0316 059A 0062; # (a◌᳕◌֚◌̖◌᷺b; a◌᷺◌᳕◌̖◌֚b; a◌᷺◌᳕◌̖◌֚b; a◌᷺◌᳕◌̖◌֚b; a◌᷺◌᳕◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CD6 0062;0061 1DFA 0316 1CD6 059A 0062;0061 1DFA 0316 1CD6 059A 0062;0061 1DFA 0316 1CD6 059A 0062;0061 1DFA 0316 1CD6 059A 0062; # (a◌֚◌̖◌᷺◌᳖b; a◌᷺◌̖◌᳖◌֚b; a◌᷺◌̖◌᳖◌֚b; a◌᷺◌̖◌᳖◌֚b; a◌᷺◌̖◌᳖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA, LATIN SMALL LETTER B
+0061 1CD6 059A 0316 1DFA 0062;0061 1DFA 1CD6 0316 059A 0062;0061 1DFA 1CD6 0316 059A 0062;0061 1DFA 1CD6 0316 059A 0062;0061 1DFA 1CD6 0316 059A 0062; # (a◌᳖◌֚◌̖◌᷺b; a◌᷺◌᳖◌̖◌֚b; a◌᷺◌᳖◌̖◌֚b; a◌᷺◌᳖◌̖◌֚b; a◌᷺◌᳖◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CD7 0062;0061 1DFA 0316 1CD7 059A 0062;0061 1DFA 0316 1CD7 059A 0062;0061 1DFA 0316 1CD7 059A 0062;0061 1DFA 0316 1CD7 059A 0062; # (a◌֚◌̖◌᷺◌᳗b; a◌᷺◌̖◌᳗◌֚b; a◌᷺◌̖◌᳗◌֚b; a◌᷺◌̖◌᳗◌֚b; a◌᷺◌̖◌᳗◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA, LATIN SMALL LETTER B
+0061 1CD7 059A 0316 1DFA 0062;0061 1DFA 1CD7 0316 059A 0062;0061 1DFA 1CD7 0316 059A 0062;0061 1DFA 1CD7 0316 059A 0062;0061 1DFA 1CD7 0316 059A 0062; # (a◌᳗◌֚◌̖◌᷺b; a◌᷺◌᳗◌̖◌֚b; a◌᷺◌᳗◌̖◌֚b; a◌᷺◌᳗◌̖◌֚b; a◌᷺◌᳗◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CD8 0062;0061 1DFA 0316 1CD8 059A 0062;0061 1DFA 0316 1CD8 059A 0062;0061 1DFA 0316 1CD8 059A 0062;0061 1DFA 0316 1CD8 059A 0062; # (a◌֚◌̖◌᷺◌᳘b; a◌᷺◌̖◌᳘◌֚b; a◌᷺◌̖◌᳘◌֚b; a◌᷺◌̖◌᳘◌֚b; a◌᷺◌̖◌᳘◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE CANDRA BELOW, LATIN SMALL LETTER B
+0061 1CD8 059A 0316 1DFA 0062;0061 1DFA 1CD8 0316 059A 0062;0061 1DFA 1CD8 0316 059A 0062;0061 1DFA 1CD8 0316 059A 0062;0061 1DFA 1CD8 0316 059A 0062; # (a◌᳘◌֚◌̖◌᷺b; a◌᷺◌᳘◌̖◌֚b; a◌᷺◌᳘◌̖◌֚b; a◌᷺◌᳘◌̖◌֚b; a◌᷺◌᳘◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE CANDRA BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CD9 0062;0061 1DFA 0316 1CD9 059A 0062;0061 1DFA 0316 1CD9 059A 0062;0061 1DFA 0316 1CD9 059A 0062;0061 1DFA 0316 1CD9 059A 0062; # (a◌֚◌̖◌᷺◌᳙b; a◌᷺◌̖◌᳙◌֚b; a◌᷺◌̖◌᳙◌֚b; a◌᷺◌̖◌᳙◌֚b; a◌᷺◌̖◌᳙◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER, LATIN SMALL LETTER B
+0061 1CD9 059A 0316 1DFA 0062;0061 1DFA 1CD9 0316 059A 0062;0061 1DFA 1CD9 0316 059A 0062;0061 1DFA 1CD9 0316 059A 0062;0061 1DFA 1CD9 0316 059A 0062; # (a◌᳙◌֚◌̖◌᷺b; a◌᷺◌᳙◌̖◌֚b; a◌᷺◌᳙◌̖◌֚b; a◌᷺◌᳙◌̖◌֚b; a◌᷺◌᳙◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CDA 0062;00E0 05AE 1CDA 0315 0062;0061 05AE 0300 1CDA 0315 0062;00E0 05AE 1CDA 0315 0062;0061 05AE 0300 1CDA 0315 0062; # (a◌̕◌̀◌֮◌᳚b; à◌֮◌᳚◌̕b; a◌֮◌̀◌᳚◌̕b; à◌֮◌᳚◌̕b; a◌֮◌̀◌᳚◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE DOUBLE SVARITA, LATIN SMALL LETTER B
+0061 1CDA 0315 0300 05AE 0062;0061 05AE 1CDA 0300 0315 0062;0061 05AE 1CDA 0300 0315 0062;0061 05AE 1CDA 0300 0315 0062;0061 05AE 1CDA 0300 0315 0062; # (a◌᳚◌̕◌̀◌֮b; a◌֮◌᳚◌̀◌̕b; a◌֮◌᳚◌̀◌̕b; a◌֮◌᳚◌̀◌̕b; a◌֮◌᳚◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE DOUBLE SVARITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CDB 0062;00E0 05AE 1CDB 0315 0062;0061 05AE 0300 1CDB 0315 0062;00E0 05AE 1CDB 0315 0062;0061 05AE 0300 1CDB 0315 0062; # (a◌̕◌̀◌֮◌᳛b; à◌֮◌᳛◌̕b; a◌֮◌̀◌᳛◌̕b; à◌֮◌᳛◌̕b; a◌֮◌̀◌᳛◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE TRIPLE SVARITA, LATIN SMALL LETTER B
+0061 1CDB 0315 0300 05AE 0062;0061 05AE 1CDB 0300 0315 0062;0061 05AE 1CDB 0300 0315 0062;0061 05AE 1CDB 0300 0315 0062;0061 05AE 1CDB 0300 0315 0062; # (a◌᳛◌̕◌̀◌֮b; a◌֮◌᳛◌̀◌̕b; a◌֮◌᳛◌̀◌̕b; a◌֮◌᳛◌̀◌̕b; a◌֮◌᳛◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE TRIPLE SVARITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CDC 0062;0061 1DFA 0316 1CDC 059A 0062;0061 1DFA 0316 1CDC 059A 0062;0061 1DFA 0316 1CDC 059A 0062;0061 1DFA 0316 1CDC 059A 0062; # (a◌֚◌̖◌᷺◌᳜b; a◌᷺◌̖◌᳜◌֚b; a◌᷺◌̖◌᳜◌֚b; a◌᷺◌̖◌᳜◌֚b; a◌᷺◌̖◌᳜◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE KATHAKA ANUDATTA, LATIN SMALL LETTER B
+0061 1CDC 059A 0316 1DFA 0062;0061 1DFA 1CDC 0316 059A 0062;0061 1DFA 1CDC 0316 059A 0062;0061 1DFA 1CDC 0316 059A 0062;0061 1DFA 1CDC 0316 059A 0062; # (a◌᳜◌֚◌̖◌᷺b; a◌᷺◌᳜◌̖◌֚b; a◌᷺◌᳜◌̖◌֚b; a◌᷺◌᳜◌̖◌֚b; a◌᷺◌᳜◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE KATHAKA ANUDATTA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CDD 0062;0061 1DFA 0316 1CDD 059A 0062;0061 1DFA 0316 1CDD 059A 0062;0061 1DFA 0316 1CDD 059A 0062;0061 1DFA 0316 1CDD 059A 0062; # (a◌֚◌̖◌᷺◌᳝b; a◌᷺◌̖◌᳝◌֚b; a◌᷺◌̖◌᳝◌֚b; a◌᷺◌̖◌᳝◌֚b; a◌᷺◌̖◌᳝◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE DOT BELOW, LATIN SMALL LETTER B
+0061 1CDD 059A 0316 1DFA 0062;0061 1DFA 1CDD 0316 059A 0062;0061 1DFA 1CDD 0316 059A 0062;0061 1DFA 1CDD 0316 059A 0062;0061 1DFA 1CDD 0316 059A 0062; # (a◌᳝◌֚◌̖◌᷺b; a◌᷺◌᳝◌̖◌֚b; a◌᷺◌᳝◌̖◌֚b; a◌᷺◌᳝◌̖◌֚b; a◌᷺◌᳝◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CDE 0062;0061 1DFA 0316 1CDE 059A 0062;0061 1DFA 0316 1CDE 059A 0062;0061 1DFA 0316 1CDE 059A 0062;0061 1DFA 0316 1CDE 059A 0062; # (a◌֚◌̖◌᷺◌᳞b; a◌᷺◌̖◌᳞◌֚b; a◌᷺◌̖◌᳞◌֚b; a◌᷺◌̖◌᳞◌֚b; a◌᷺◌̖◌᳞◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE TWO DOTS BELOW, LATIN SMALL LETTER B
+0061 1CDE 059A 0316 1DFA 0062;0061 1DFA 1CDE 0316 059A 0062;0061 1DFA 1CDE 0316 059A 0062;0061 1DFA 1CDE 0316 059A 0062;0061 1DFA 1CDE 0316 059A 0062; # (a◌᳞◌֚◌̖◌᷺b; a◌᷺◌᳞◌̖◌֚b; a◌᷺◌᳞◌̖◌֚b; a◌᷺◌᳞◌̖◌֚b; a◌᷺◌᳞◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE TWO DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CDF 0062;0061 1DFA 0316 1CDF 059A 0062;0061 1DFA 0316 1CDF 059A 0062;0061 1DFA 0316 1CDF 059A 0062;0061 1DFA 0316 1CDF 059A 0062; # (a◌֚◌̖◌᷺◌᳟b; a◌᷺◌̖◌᳟◌֚b; a◌᷺◌̖◌᳟◌֚b; a◌᷺◌̖◌᳟◌֚b; a◌᷺◌̖◌᳟◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC TONE THREE DOTS BELOW, LATIN SMALL LETTER B
+0061 1CDF 059A 0316 1DFA 0062;0061 1DFA 1CDF 0316 059A 0062;0061 1DFA 1CDF 0316 059A 0062;0061 1DFA 1CDF 0316 059A 0062;0061 1DFA 1CDF 0316 059A 0062; # (a◌᳟◌֚◌̖◌᷺b; a◌᷺◌᳟◌̖◌֚b; a◌᷺◌᳟◌̖◌֚b; a◌᷺◌᳟◌̖◌֚b; a◌᷺◌᳟◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC TONE THREE DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CE0 0062;00E0 05AE 1CE0 0315 0062;0061 05AE 0300 1CE0 0315 0062;00E0 05AE 1CE0 0315 0062;0061 05AE 0300 1CE0 0315 0062; # (a◌̕◌̀◌֮◌᳠b; à◌֮◌᳠◌̕b; a◌֮◌̀◌᳠◌̕b; à◌֮◌᳠◌̕b; a◌֮◌̀◌᳠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA, LATIN SMALL LETTER B
+0061 1CE0 0315 0300 05AE 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062; # (a◌᳠◌̕◌̀◌֮b; a◌֮◌᳠◌̀◌̕b; a◌֮◌᳠◌̀◌̕b; a◌֮◌᳠◌̀◌̕b; a◌֮◌᳠◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE2 0062;0061 0334 1CE2 16FF0 0062;0061 0334 1CE2 16FF0 0062;0061 0334 1CE2 16FF0 0062;0061 0334 1CE2 16FF0 0062; # (a𖿰◌̴◌᳢b; a◌̴◌᳢𖿰b; a◌̴◌᳢𖿰b; a◌̴◌᳢𖿰b; a◌̴◌᳢𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA SVARITA, LATIN SMALL LETTER B
+0061 1CE2 16FF0 0334 0062;0061 1CE2 0334 16FF0 0062;0061 1CE2 0334 16FF0 0062;0061 1CE2 0334 16FF0 0062;0061 1CE2 0334 16FF0 0062; # (a◌᳢𖿰◌̴b; a◌᳢◌̴𖿰b; a◌᳢◌̴𖿰b; a◌᳢◌̴𖿰b; a◌᳢◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA SVARITA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE3 0062;0061 0334 1CE3 16FF0 0062;0061 0334 1CE3 16FF0 0062;0061 0334 1CE3 16FF0 0062;0061 0334 1CE3 16FF0 0062; # (a𖿰◌̴◌᳣b; a◌̴◌᳣𖿰b; a◌̴◌᳣𖿰b; a◌̴◌᳣𖿰b; a◌̴◌᳣𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA UDATTA, LATIN SMALL LETTER B
+0061 1CE3 16FF0 0334 0062;0061 1CE3 0334 16FF0 0062;0061 1CE3 0334 16FF0 0062;0061 1CE3 0334 16FF0 0062;0061 1CE3 0334 16FF0 0062; # (a◌᳣𖿰◌̴b; a◌᳣◌̴𖿰b; a◌᳣◌̴𖿰b; a◌᳣◌̴𖿰b; a◌᳣◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA UDATTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE4 0062;0061 0334 1CE4 16FF0 0062;0061 0334 1CE4 16FF0 0062;0061 0334 1CE4 16FF0 0062;0061 0334 1CE4 16FF0 0062; # (a𖿰◌̴◌᳤b; a◌̴◌᳤𖿰b; a◌̴◌᳤𖿰b; a◌̴◌᳤𖿰b; a◌̴◌᳤𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN REVERSED VISARGA UDATTA, LATIN SMALL LETTER B
+0061 1CE4 16FF0 0334 0062;0061 1CE4 0334 16FF0 0062;0061 1CE4 0334 16FF0 0062;0061 1CE4 0334 16FF0 0062;0061 1CE4 0334 16FF0 0062; # (a◌᳤𖿰◌̴b; a◌᳤◌̴𖿰b; a◌᳤◌̴𖿰b; a◌᳤◌̴𖿰b; a◌᳤◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN REVERSED VISARGA UDATTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE5 0062;0061 0334 1CE5 16FF0 0062;0061 0334 1CE5 16FF0 0062;0061 0334 1CE5 16FF0 0062;0061 0334 1CE5 16FF0 0062; # (a𖿰◌̴◌᳥b; a◌̴◌᳥𖿰b; a◌̴◌᳥𖿰b; a◌̴◌᳥𖿰b; a◌̴◌᳥𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA ANUDATTA, LATIN SMALL LETTER B
+0061 1CE5 16FF0 0334 0062;0061 1CE5 0334 16FF0 0062;0061 1CE5 0334 16FF0 0062;0061 1CE5 0334 16FF0 0062;0061 1CE5 0334 16FF0 0062; # (a◌᳥𖿰◌̴b; a◌᳥◌̴𖿰b; a◌᳥◌̴𖿰b; a◌᳥◌̴𖿰b; a◌᳥◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA ANUDATTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE6 0062;0061 0334 1CE6 16FF0 0062;0061 0334 1CE6 16FF0 0062;0061 0334 1CE6 16FF0 0062;0061 0334 1CE6 16FF0 0062; # (a𖿰◌̴◌᳦b; a◌̴◌᳦𖿰b; a◌̴◌᳦𖿰b; a◌̴◌᳦𖿰b; a◌̴◌᳦𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN REVERSED VISARGA ANUDATTA, LATIN SMALL LETTER B
+0061 1CE6 16FF0 0334 0062;0061 1CE6 0334 16FF0 0062;0061 1CE6 0334 16FF0 0062;0061 1CE6 0334 16FF0 0062;0061 1CE6 0334 16FF0 0062; # (a◌᳦𖿰◌̴b; a◌᳦◌̴𖿰b; a◌᳦◌̴𖿰b; a◌᳦◌̴𖿰b; a◌᳦◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN REVERSED VISARGA ANUDATTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE7 0062;0061 0334 1CE7 16FF0 0062;0061 0334 1CE7 16FF0 0062;0061 0334 1CE7 16FF0 0062;0061 0334 1CE7 16FF0 0062; # (a𖿰◌̴◌᳧b; a◌̴◌᳧𖿰b; a◌̴◌᳧𖿰b; a◌̴◌᳧𖿰b; a◌̴◌᳧𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA UDATTA WITH TAIL, LATIN SMALL LETTER B
+0061 1CE7 16FF0 0334 0062;0061 1CE7 0334 16FF0 0062;0061 1CE7 0334 16FF0 0062;0061 1CE7 0334 16FF0 0062;0061 1CE7 0334 16FF0 0062; # (a◌᳧𖿰◌̴b; a◌᳧◌̴𖿰b; a◌᳧◌̴𖿰b; a◌᳧◌̴𖿰b; a◌᳧◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA UDATTA WITH TAIL, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1CE8 0062;0061 0334 1CE8 16FF0 0062;0061 0334 1CE8 16FF0 0062;0061 0334 1CE8 16FF0 0062;0061 0334 1CE8 16FF0 0062; # (a𖿰◌̴◌᳨b; a◌̴◌᳨𖿰b; a◌̴◌᳨𖿰b; a◌̴◌᳨𖿰b; a◌̴◌᳨𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA ANUDATTA WITH TAIL, LATIN SMALL LETTER B
+0061 1CE8 16FF0 0334 0062;0061 1CE8 0334 16FF0 0062;0061 1CE8 0334 16FF0 0062;0061 1CE8 0334 16FF0 0062;0061 1CE8 0334 16FF0 0062; # (a◌᳨𖿰◌̴b; a◌᳨◌̴𖿰b; a◌᳨◌̴𖿰b; a◌᳨◌̴𖿰b; a◌᳨◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA ANUDATTA WITH TAIL, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1CED 0062;0061 1DFA 0316 1CED 059A 0062;0061 1DFA 0316 1CED 059A 0062;0061 1DFA 0316 1CED 059A 0062;0061 1DFA 0316 1CED 059A 0062; # (a◌֚◌̖◌᷺◌᳭b; a◌᷺◌̖◌᳭◌֚b; a◌᷺◌̖◌᳭◌֚b; a◌᷺◌̖◌᳭◌֚b; a◌᷺◌̖◌᳭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, VEDIC SIGN TIRYAK, LATIN SMALL LETTER B
+0061 1CED 059A 0316 1DFA 0062;0061 1DFA 1CED 0316 059A 0062;0061 1DFA 1CED 0316 059A 0062;0061 1DFA 1CED 0316 059A 0062;0061 1DFA 1CED 0316 059A 0062; # (a◌᳭◌֚◌̖◌᷺b; a◌᷺◌᳭◌̖◌֚b; a◌᷺◌᳭◌̖◌֚b; a◌᷺◌᳭◌̖◌֚b; a◌᷺◌᳭◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC SIGN TIRYAK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CF4 0062;00E0 05AE 1CF4 0315 0062;0061 05AE 0300 1CF4 0315 0062;00E0 05AE 1CF4 0315 0062;0061 05AE 0300 1CF4 0315 0062; # (a◌̕◌̀◌֮◌᳴b; à◌֮◌᳴◌̕b; a◌֮◌̀◌᳴◌̕b; à◌֮◌᳴◌̕b; a◌֮◌̀◌᳴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE CANDRA ABOVE, LATIN SMALL LETTER B
+0061 1CF4 0315 0300 05AE 0062;0061 05AE 1CF4 0300 0315 0062;0061 05AE 1CF4 0300 0315 0062;0061 05AE 1CF4 0300 0315 0062;0061 05AE 1CF4 0300 0315 0062; # (a◌᳴◌̕◌̀◌֮b; a◌֮◌᳴◌̀◌̕b; a◌֮◌᳴◌̀◌̕b; a◌֮◌᳴◌̀◌̕b; a◌֮◌᳴◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE CANDRA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CF8 0062;00E0 05AE 1CF8 0315 0062;0061 05AE 0300 1CF8 0315 0062;00E0 05AE 1CF8 0315 0062;0061 05AE 0300 1CF8 0315 0062; # (a◌̕◌̀◌֮◌᳸b; à◌֮◌᳸◌̕b; a◌֮◌̀◌᳸◌̕b; à◌֮◌᳸◌̕b; a◌֮◌̀◌᳸◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE RING ABOVE, LATIN SMALL LETTER B
+0061 1CF8 0315 0300 05AE 0062;0061 05AE 1CF8 0300 0315 0062;0061 05AE 1CF8 0300 0315 0062;0061 05AE 1CF8 0300 0315 0062;0061 05AE 1CF8 0300 0315 0062; # (a◌᳸◌̕◌̀◌֮b; a◌֮◌᳸◌̀◌̕b; a◌֮◌᳸◌̀◌̕b; a◌֮◌᳸◌̀◌̕b; a◌֮◌᳸◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CF9 0062;00E0 05AE 1CF9 0315 0062;0061 05AE 0300 1CF9 0315 0062;00E0 05AE 1CF9 0315 0062;0061 05AE 0300 1CF9 0315 0062; # (a◌̕◌̀◌֮◌᳹b; à◌֮◌᳹◌̕b; a◌֮◌̀◌᳹◌̕b; à◌֮◌᳹◌̕b; a◌֮◌̀◌᳹◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE DOUBLE RING ABOVE, LATIN SMALL LETTER B
+0061 1CF9 0315 0300 05AE 0062;0061 05AE 1CF9 0300 0315 0062;0061 05AE 1CF9 0300 0315 0062;0061 05AE 1CF9 0300 0315 0062;0061 05AE 1CF9 0300 0315 0062; # (a◌᳹◌̕◌̀◌֮b; a◌֮◌᳹◌̀◌̕b; a◌֮◌᳹◌̀◌̕b; a◌֮◌᳹◌̀◌̕b; a◌֮◌᳹◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE DOUBLE RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC0 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062; # (a◌̕◌̀◌֮◌᷀b; à◌֮◌᷀◌̕b; a◌֮◌̀◌᷀◌̕b; à◌֮◌᷀◌̕b; a◌֮◌̀◌᷀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOTTED GRAVE ACCENT, LATIN SMALL LETTER B
+0061 1DC0 0315 0300 05AE 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062; # (a◌᷀◌̕◌̀◌֮b; a◌֮◌᷀◌̀◌̕b; a◌֮◌᷀◌̀◌̕b; a◌֮◌᷀◌̀◌̕b; a◌֮◌᷀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOTTED GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC1 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062; # (a◌̕◌̀◌֮◌᷁b; à◌֮◌᷁◌̕b; a◌֮◌̀◌᷁◌̕b; à◌֮◌᷁◌̕b; a◌֮◌̀◌᷁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOTTED ACUTE ACCENT, LATIN SMALL LETTER B
+0061 1DC1 0315 0300 05AE 0062;0061 05AE 1DC1 0300 0315 0062;0061 05AE 1DC1 0300 0315 0062;0061 05AE 1DC1 0300 0315 0062;0061 05AE 1DC1 0300 0315 0062; # (a◌᷁◌̕◌̀◌֮b; a◌֮◌᷁◌̀◌̕b; a◌֮◌᷁◌̀◌̕b; a◌֮◌᷁◌̀◌̕b; a◌֮◌᷁◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOTTED ACUTE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1DC2 0062;0061 1DFA 0316 1DC2 059A 0062;0061 1DFA 0316 1DC2 059A 0062;0061 1DFA 0316 1DC2 059A 0062;0061 1DFA 0316 1DC2 059A 0062; # (a◌֚◌̖◌᷺◌᷂b; a◌᷺◌̖◌᷂◌֚b; a◌᷺◌̖◌᷂◌֚b; a◌᷺◌̖◌᷂◌֚b; a◌᷺◌̖◌᷂◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING SNAKE BELOW, LATIN SMALL LETTER B
+0061 1DC2 059A 0316 1DFA 0062;0061 1DFA 1DC2 0316 059A 0062;0061 1DFA 1DC2 0316 059A 0062;0061 1DFA 1DC2 0316 059A 0062;0061 1DFA 1DC2 0316 059A 0062; # (a◌᷂◌֚◌̖◌᷺b; a◌᷺◌᷂◌̖◌֚b; a◌᷺◌᷂◌̖◌֚b; a◌᷺◌᷂◌̖◌֚b; a◌᷺◌᷂◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING SNAKE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC3 0062;00E0 05AE 1DC3 0315 0062;0061 05AE 0300 1DC3 0315 0062;00E0 05AE 1DC3 0315 0062;0061 05AE 0300 1DC3 0315 0062; # (a◌̕◌̀◌֮◌᷃b; à◌֮◌᷃◌̕b; a◌֮◌̀◌᷃◌̕b; à◌֮◌᷃◌̕b; a◌֮◌̀◌᷃◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING SUSPENSION MARK, LATIN SMALL LETTER B
+0061 1DC3 0315 0300 05AE 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062; # (a◌᷃◌̕◌̀◌֮b; a◌֮◌᷃◌̀◌̕b; a◌֮◌᷃◌̀◌̕b; a◌֮◌᷃◌̀◌̕b; a◌֮◌᷃◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING SUSPENSION MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC4 0062;00E0 05AE 1DC4 0315 0062;0061 05AE 0300 1DC4 0315 0062;00E0 05AE 1DC4 0315 0062;0061 05AE 0300 1DC4 0315 0062; # (a◌̕◌̀◌֮◌᷄b; à◌֮◌᷄◌̕b; a◌֮◌̀◌᷄◌̕b; à◌֮◌᷄◌̕b; a◌֮◌̀◌᷄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING MACRON-ACUTE, LATIN SMALL LETTER B
+0061 1DC4 0315 0300 05AE 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062; # (a◌᷄◌̕◌̀◌֮b; a◌֮◌᷄◌̀◌̕b; a◌֮◌᷄◌̀◌̕b; a◌֮◌᷄◌̀◌̕b; a◌֮◌᷄◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON-ACUTE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC5 0062;00E0 05AE 1DC5 0315 0062;0061 05AE 0300 1DC5 0315 0062;00E0 05AE 1DC5 0315 0062;0061 05AE 0300 1DC5 0315 0062; # (a◌̕◌̀◌֮◌᷅b; à◌֮◌᷅◌̕b; a◌֮◌̀◌᷅◌̕b; à◌֮◌᷅◌̕b; a◌֮◌̀◌᷅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRAVE-MACRON, LATIN SMALL LETTER B
+0061 1DC5 0315 0300 05AE 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062; # (a◌᷅◌̕◌̀◌֮b; a◌֮◌᷅◌̀◌̕b; a◌֮◌᷅◌̀◌̕b; a◌֮◌᷅◌̀◌̕b; a◌֮◌᷅◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRAVE-MACRON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC6 0062;00E0 05AE 1DC6 0315 0062;0061 05AE 0300 1DC6 0315 0062;00E0 05AE 1DC6 0315 0062;0061 05AE 0300 1DC6 0315 0062; # (a◌̕◌̀◌֮◌᷆b; à◌֮◌᷆◌̕b; a◌֮◌̀◌᷆◌̕b; à◌֮◌᷆◌̕b; a◌֮◌̀◌᷆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING MACRON-GRAVE, LATIN SMALL LETTER B
+0061 1DC6 0315 0300 05AE 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062; # (a◌᷆◌̕◌̀◌֮b; a◌֮◌᷆◌̀◌̕b; a◌֮◌᷆◌̀◌̕b; a◌֮◌᷆◌̀◌̕b; a◌֮◌᷆◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON-GRAVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC7 0062;00E0 05AE 1DC7 0315 0062;0061 05AE 0300 1DC7 0315 0062;00E0 05AE 1DC7 0315 0062;0061 05AE 0300 1DC7 0315 0062; # (a◌̕◌̀◌֮◌᷇b; à◌֮◌᷇◌̕b; a◌֮◌̀◌᷇◌̕b; à◌֮◌᷇◌̕b; a◌֮◌̀◌᷇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ACUTE-MACRON, LATIN SMALL LETTER B
+0061 1DC7 0315 0300 05AE 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062; # (a◌᷇◌̕◌̀◌֮b; a◌֮◌᷇◌̀◌̕b; a◌֮◌᷇◌̀◌̕b; a◌֮◌᷇◌̀◌̕b; a◌֮◌᷇◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ACUTE-MACRON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC8 0062;00E0 05AE 1DC8 0315 0062;0061 05AE 0300 1DC8 0315 0062;00E0 05AE 1DC8 0315 0062;0061 05AE 0300 1DC8 0315 0062; # (a◌̕◌̀◌֮◌᷈b; à◌֮◌᷈◌̕b; a◌֮◌̀◌᷈◌̕b; à◌֮◌᷈◌̕b; a◌֮◌̀◌᷈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRAVE-ACUTE-GRAVE, LATIN SMALL LETTER B
+0061 1DC8 0315 0300 05AE 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062; # (a◌᷈◌̕◌̀◌֮b; a◌֮◌᷈◌̀◌̕b; a◌֮◌᷈◌̀◌̕b; a◌֮◌᷈◌̀◌̕b; a◌֮◌᷈◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRAVE-ACUTE-GRAVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DC9 0062;00E0 05AE 1DC9 0315 0062;0061 05AE 0300 1DC9 0315 0062;00E0 05AE 1DC9 0315 0062;0061 05AE 0300 1DC9 0315 0062; # (a◌̕◌̀◌֮◌᷉b; à◌֮◌᷉◌̕b; a◌֮◌̀◌᷉◌̕b; à◌֮◌᷉◌̕b; a◌֮◌̀◌᷉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ACUTE-GRAVE-ACUTE, LATIN SMALL LETTER B
+0061 1DC9 0315 0300 05AE 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062; # (a◌᷉◌̕◌̀◌֮b; a◌֮◌᷉◌̀◌̕b; a◌֮◌᷉◌̀◌̕b; a◌֮◌᷉◌̀◌̕b; a◌֮◌᷉◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ACUTE-GRAVE-ACUTE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1DCA 0062;0061 1DFA 0316 1DCA 059A 0062;0061 1DFA 0316 1DCA 059A 0062;0061 1DFA 0316 1DCA 059A 0062;0061 1DFA 0316 1DCA 059A 0062; # (a◌֚◌̖◌᷺◌᷊b; a◌᷺◌̖◌᷊◌֚b; a◌᷺◌̖◌᷊◌֚b; a◌᷺◌̖◌᷊◌֚b; a◌᷺◌̖◌᷊◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LATIN SMALL LETTER R BELOW, LATIN SMALL LETTER B
+0061 1DCA 059A 0316 1DFA 0062;0061 1DFA 1DCA 0316 059A 0062;0061 1DFA 1DCA 0316 059A 0062;0061 1DFA 1DCA 0316 059A 0062;0061 1DFA 1DCA 0316 059A 0062; # (a◌᷊◌֚◌̖◌᷺b; a◌᷺◌᷊◌̖◌֚b; a◌᷺◌᷊◌̖◌֚b; a◌᷺◌᷊◌̖◌֚b; a◌᷺◌᷊◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER R BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DCB 0062;00E0 05AE 1DCB 0315 0062;0061 05AE 0300 1DCB 0315 0062;00E0 05AE 1DCB 0315 0062;0061 05AE 0300 1DCB 0315 0062; # (a◌̕◌̀◌֮◌᷋b; à◌֮◌᷋◌̕b; a◌֮◌̀◌᷋◌̕b; à◌֮◌᷋◌̕b; a◌֮◌̀◌᷋◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING BREVE-MACRON, LATIN SMALL LETTER B
+0061 1DCB 0315 0300 05AE 0062;0061 05AE 1DCB 0300 0315 0062;0061 05AE 1DCB 0300 0315 0062;0061 05AE 1DCB 0300 0315 0062;0061 05AE 1DCB 0300 0315 0062; # (a◌᷋◌̕◌̀◌֮b; a◌֮◌᷋◌̀◌̕b; a◌֮◌᷋◌̀◌̕b; a◌֮◌᷋◌̀◌̕b; a◌֮◌᷋◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING BREVE-MACRON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DCC 0062;00E0 05AE 1DCC 0315 0062;0061 05AE 0300 1DCC 0315 0062;00E0 05AE 1DCC 0315 0062;0061 05AE 0300 1DCC 0315 0062; # (a◌̕◌̀◌֮◌᷌b; à◌֮◌᷌◌̕b; a◌֮◌̀◌᷌◌̕b; à◌֮◌᷌◌̕b; a◌֮◌̀◌᷌◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING MACRON-BREVE, LATIN SMALL LETTER B
+0061 1DCC 0315 0300 05AE 0062;0061 05AE 1DCC 0300 0315 0062;0061 05AE 1DCC 0300 0315 0062;0061 05AE 1DCC 0300 0315 0062;0061 05AE 1DCC 0300 0315 0062; # (a◌᷌◌̕◌̀◌֮b; a◌֮◌᷌◌̀◌̕b; a◌֮◌᷌◌̀◌̕b; a◌֮◌᷌◌̀◌̕b; a◌֮◌᷌◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON-BREVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0345 035D 035C 1DCD 0062;0061 035C 035D 1DCD 0345 0062;0061 035C 035D 1DCD 0345 0062;0061 035C 035D 1DCD 0345 0062;0061 035C 035D 1DCD 0345 0062; # (a◌ͅ◌͝◌͜◌᷍b; a◌͜◌͝◌᷍◌ͅb; a◌͜◌͝◌᷍◌ͅb; a◌͜◌͝◌᷍◌ͅb; a◌͜◌͝◌᷍◌ͅb; ) LATIN SMALL LETTER A, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING DOUBLE CIRCUMFLEX ABOVE, LATIN SMALL LETTER B
+0061 1DCD 0345 035D 035C 0062;0061 035C 1DCD 035D 0345 0062;0061 035C 1DCD 035D 0345 0062;0061 035C 1DCD 035D 0345 0062;0061 035C 1DCD 035D 0345 0062; # (a◌᷍◌ͅ◌͝◌͜b; a◌͜◌᷍◌͝◌ͅb; a◌͜◌᷍◌͝◌ͅb; a◌͜◌᷍◌͝◌ͅb; a◌͜◌᷍◌͝◌ͅb; ) LATIN SMALL LETTER A, COMBINING DOUBLE CIRCUMFLEX ABOVE, COMBINING GREEK YPOGEGRAMMENI, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, LATIN SMALL LETTER B
+0061 031B 1DCE 0321 1DCE 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062; # (a◌̛◌᷎◌̡◌᷎b; a◌̡◌᷎◌᷎◌̛b; a◌̡◌᷎◌᷎◌̛b; a◌̡◌᷎◌᷎◌̛b; a◌̡◌᷎◌᷎◌̛b; ) LATIN SMALL LETTER A, COMBINING HORN, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 1DCE 031B 1DCE 0321 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062; # (a◌᷎◌̛◌᷎◌̡b; a◌̡◌᷎◌᷎◌̛b; a◌̡◌᷎◌᷎◌̛b; a◌̡◌᷎◌᷎◌̛b; a◌̡◌᷎◌᷎◌̛b; ) LATIN SMALL LETTER A, COMBINING OGONEK ABOVE, COMBINING HORN, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1DCF 0062;0061 1DFA 0316 1DCF 059A 0062;0061 1DFA 0316 1DCF 059A 0062;0061 1DFA 0316 1DCF 059A 0062;0061 1DFA 0316 1DCF 059A 0062; # (a◌֚◌̖◌᷺◌᷏b; a◌᷺◌̖◌᷏◌֚b; a◌᷺◌̖◌᷏◌֚b; a◌᷺◌̖◌᷏◌֚b; a◌᷺◌̖◌᷏◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING ZIGZAG BELOW, LATIN SMALL LETTER B
+0061 1DCF 059A 0316 1DFA 0062;0061 1DFA 1DCF 0316 059A 0062;0061 1DFA 1DCF 0316 059A 0062;0061 1DFA 1DCF 0316 059A 0062;0061 1DFA 1DCF 0316 059A 0062; # (a◌᷏◌֚◌̖◌᷺b; a◌᷺◌᷏◌̖◌֚b; a◌᷺◌᷏◌̖◌֚b; a◌᷺◌᷏◌̖◌֚b; a◌᷺◌᷏◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING ZIGZAG BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 1DCE 0321 0F74 1DD0 0062;0061 0F74 0321 1DD0 1DCE 0062;0061 0F74 0321 1DD0 1DCE 0062;0061 0F74 0321 1DD0 1DCE 0062;0061 0F74 0321 1DD0 1DCE 0062; # (a◌᷎◌̡◌ུ◌᷐b; a◌ུ◌̡◌᷐◌᷎b; a◌ུ◌̡◌᷐◌᷎b; a◌ུ◌̡◌᷐◌᷎b; a◌ུ◌̡◌᷐◌᷎b; ) LATIN SMALL LETTER A, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, COMBINING IS BELOW, LATIN SMALL LETTER B
+0061 1DD0 1DCE 0321 0F74 0062;0061 0F74 1DD0 0321 1DCE 0062;0061 0F74 1DD0 0321 1DCE 0062;0061 0F74 1DD0 0321 1DCE 0062;0061 0F74 1DD0 0321 1DCE 0062; # (a◌᷐◌᷎◌̡◌ུb; a◌ུ◌᷐◌̡◌᷎b; a◌ུ◌᷐◌̡◌᷎b; a◌ུ◌᷐◌̡◌᷎b; a◌ུ◌᷐◌̡◌᷎b; ) LATIN SMALL LETTER A, COMBINING IS BELOW, COMBINING OGONEK ABOVE, COMBINING PALATALIZED HOOK BELOW, TIBETAN VOWEL SIGN U, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD1 0062;00E0 05AE 1DD1 0315 0062;0061 05AE 0300 1DD1 0315 0062;00E0 05AE 1DD1 0315 0062;0061 05AE 0300 1DD1 0315 0062; # (a◌̕◌̀◌֮◌᷑b; à◌֮◌᷑◌̕b; a◌֮◌̀◌᷑◌̕b; à◌֮◌᷑◌̕b; a◌֮◌̀◌᷑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING UR ABOVE, LATIN SMALL LETTER B
+0061 1DD1 0315 0300 05AE 0062;0061 05AE 1DD1 0300 0315 0062;0061 05AE 1DD1 0300 0315 0062;0061 05AE 1DD1 0300 0315 0062;0061 05AE 1DD1 0300 0315 0062; # (a◌᷑◌̕◌̀◌֮b; a◌֮◌᷑◌̀◌̕b; a◌֮◌᷑◌̀◌̕b; a◌֮◌᷑◌̀◌̕b; a◌֮◌᷑◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING UR ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD2 0062;00E0 05AE 1DD2 0315 0062;0061 05AE 0300 1DD2 0315 0062;00E0 05AE 1DD2 0315 0062;0061 05AE 0300 1DD2 0315 0062; # (a◌̕◌̀◌֮◌᷒b; à◌֮◌᷒◌̕b; a◌֮◌̀◌᷒◌̕b; à◌֮◌᷒◌̕b; a◌֮◌̀◌᷒◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING US ABOVE, LATIN SMALL LETTER B
+0061 1DD2 0315 0300 05AE 0062;0061 05AE 1DD2 0300 0315 0062;0061 05AE 1DD2 0300 0315 0062;0061 05AE 1DD2 0300 0315 0062;0061 05AE 1DD2 0300 0315 0062; # (a◌᷒◌̕◌̀◌֮b; a◌֮◌᷒◌̀◌̕b; a◌֮◌᷒◌̀◌̕b; a◌֮◌᷒◌̀◌̕b; a◌֮◌᷒◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING US ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD3 0062;00E0 05AE 1DD3 0315 0062;0061 05AE 0300 1DD3 0315 0062;00E0 05AE 1DD3 0315 0062;0061 05AE 0300 1DD3 0315 0062; # (a◌̕◌̀◌֮◌ᷓb; à◌֮◌ᷓ◌̕b; a◌֮◌̀◌ᷓ◌̕b; à◌֮◌ᷓ◌̕b; a◌֮◌̀◌ᷓ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE, LATIN SMALL LETTER B
+0061 1DD3 0315 0300 05AE 0062;0061 05AE 1DD3 0300 0315 0062;0061 05AE 1DD3 0300 0315 0062;0061 05AE 1DD3 0300 0315 0062;0061 05AE 1DD3 0300 0315 0062; # (a◌ᷓ◌̕◌̀◌֮b; a◌֮◌ᷓ◌̀◌̕b; a◌֮◌ᷓ◌̀◌̕b; a◌֮◌ᷓ◌̀◌̕b; a◌֮◌ᷓ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD4 0062;00E0 05AE 1DD4 0315 0062;0061 05AE 0300 1DD4 0315 0062;00E0 05AE 1DD4 0315 0062;0061 05AE 0300 1DD4 0315 0062; # (a◌̕◌̀◌֮◌ᷔb; à◌֮◌ᷔ◌̕b; a◌֮◌̀◌ᷔ◌̕b; à◌֮◌ᷔ◌̕b; a◌֮◌̀◌ᷔ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER AE, LATIN SMALL LETTER B
+0061 1DD4 0315 0300 05AE 0062;0061 05AE 1DD4 0300 0315 0062;0061 05AE 1DD4 0300 0315 0062;0061 05AE 1DD4 0300 0315 0062;0061 05AE 1DD4 0300 0315 0062; # (a◌ᷔ◌̕◌̀◌֮b; a◌֮◌ᷔ◌̀◌̕b; a◌֮◌ᷔ◌̀◌̕b; a◌֮◌ᷔ◌̀◌̕b; a◌֮◌ᷔ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER AE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD5 0062;00E0 05AE 1DD5 0315 0062;0061 05AE 0300 1DD5 0315 0062;00E0 05AE 1DD5 0315 0062;0061 05AE 0300 1DD5 0315 0062; # (a◌̕◌̀◌֮◌ᷕb; à◌֮◌ᷕ◌̕b; a◌֮◌̀◌ᷕ◌̕b; à◌֮◌ᷕ◌̕b; a◌֮◌̀◌ᷕ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER AO, LATIN SMALL LETTER B
+0061 1DD5 0315 0300 05AE 0062;0061 05AE 1DD5 0300 0315 0062;0061 05AE 1DD5 0300 0315 0062;0061 05AE 1DD5 0300 0315 0062;0061 05AE 1DD5 0300 0315 0062; # (a◌ᷕ◌̕◌̀◌֮b; a◌֮◌ᷕ◌̀◌̕b; a◌֮◌ᷕ◌̀◌̕b; a◌֮◌ᷕ◌̀◌̕b; a◌֮◌ᷕ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER AO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD6 0062;00E0 05AE 1DD6 0315 0062;0061 05AE 0300 1DD6 0315 0062;00E0 05AE 1DD6 0315 0062;0061 05AE 0300 1DD6 0315 0062; # (a◌̕◌̀◌֮◌ᷖb; à◌֮◌ᷖ◌̕b; a◌֮◌̀◌ᷖ◌̕b; à◌֮◌ᷖ◌̕b; a◌֮◌̀◌ᷖ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER AV, LATIN SMALL LETTER B
+0061 1DD6 0315 0300 05AE 0062;0061 05AE 1DD6 0300 0315 0062;0061 05AE 1DD6 0300 0315 0062;0061 05AE 1DD6 0300 0315 0062;0061 05AE 1DD6 0300 0315 0062; # (a◌ᷖ◌̕◌̀◌֮b; a◌֮◌ᷖ◌̀◌̕b; a◌֮◌ᷖ◌̀◌̕b; a◌֮◌ᷖ◌̀◌̕b; a◌֮◌ᷖ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER AV, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD7 0062;00E0 05AE 1DD7 0315 0062;0061 05AE 0300 1DD7 0315 0062;00E0 05AE 1DD7 0315 0062;0061 05AE 0300 1DD7 0315 0062; # (a◌̕◌̀◌֮◌ᷗb; à◌֮◌ᷗ◌̕b; a◌֮◌̀◌ᷗ◌̕b; à◌֮◌ᷗ◌̕b; a◌֮◌̀◌ᷗ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER C CEDILLA, LATIN SMALL LETTER B
+0061 1DD7 0315 0300 05AE 0062;0061 05AE 1DD7 0300 0315 0062;0061 05AE 1DD7 0300 0315 0062;0061 05AE 1DD7 0300 0315 0062;0061 05AE 1DD7 0300 0315 0062; # (a◌ᷗ◌̕◌̀◌֮b; a◌֮◌ᷗ◌̀◌̕b; a◌֮◌ᷗ◌̀◌̕b; a◌֮◌ᷗ◌̀◌̕b; a◌֮◌ᷗ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER C CEDILLA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD8 0062;00E0 05AE 1DD8 0315 0062;0061 05AE 0300 1DD8 0315 0062;00E0 05AE 1DD8 0315 0062;0061 05AE 0300 1DD8 0315 0062; # (a◌̕◌̀◌֮◌ᷘb; à◌֮◌ᷘ◌̕b; a◌֮◌̀◌ᷘ◌̕b; à◌֮◌ᷘ◌̕b; a◌֮◌̀◌ᷘ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER INSULAR D, LATIN SMALL LETTER B
+0061 1DD8 0315 0300 05AE 0062;0061 05AE 1DD8 0300 0315 0062;0061 05AE 1DD8 0300 0315 0062;0061 05AE 1DD8 0300 0315 0062;0061 05AE 1DD8 0300 0315 0062; # (a◌ᷘ◌̕◌̀◌֮b; a◌֮◌ᷘ◌̀◌̕b; a◌֮◌ᷘ◌̀◌̕b; a◌֮◌ᷘ◌̀◌̕b; a◌֮◌ᷘ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER INSULAR D, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DD9 0062;00E0 05AE 1DD9 0315 0062;0061 05AE 0300 1DD9 0315 0062;00E0 05AE 1DD9 0315 0062;0061 05AE 0300 1DD9 0315 0062; # (a◌̕◌̀◌֮◌ᷙb; à◌֮◌ᷙ◌̕b; a◌֮◌̀◌ᷙ◌̕b; à◌֮◌ᷙ◌̕b; a◌֮◌̀◌ᷙ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER ETH, LATIN SMALL LETTER B
+0061 1DD9 0315 0300 05AE 0062;0061 05AE 1DD9 0300 0315 0062;0061 05AE 1DD9 0300 0315 0062;0061 05AE 1DD9 0300 0315 0062;0061 05AE 1DD9 0300 0315 0062; # (a◌ᷙ◌̕◌̀◌֮b; a◌֮◌ᷙ◌̀◌̕b; a◌֮◌ᷙ◌̀◌̕b; a◌֮◌ᷙ◌̀◌̕b; a◌֮◌ᷙ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER ETH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DDA 0062;00E0 05AE 1DDA 0315 0062;0061 05AE 0300 1DDA 0315 0062;00E0 05AE 1DDA 0315 0062;0061 05AE 0300 1DDA 0315 0062; # (a◌̕◌̀◌֮◌ᷚb; à◌֮◌ᷚ◌̕b; a◌֮◌̀◌ᷚ◌̕b; à◌֮◌ᷚ◌̕b; a◌֮◌̀◌ᷚ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER G, LATIN SMALL LETTER B
+0061 1DDA 0315 0300 05AE 0062;0061 05AE 1DDA 0300 0315 0062;0061 05AE 1DDA 0300 0315 0062;0061 05AE 1DDA 0300 0315 0062;0061 05AE 1DDA 0300 0315 0062; # (a◌ᷚ◌̕◌̀◌֮b; a◌֮◌ᷚ◌̀◌̕b; a◌֮◌ᷚ◌̀◌̕b; a◌֮◌ᷚ◌̀◌̕b; a◌֮◌ᷚ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER G, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DDB 0062;00E0 05AE 1DDB 0315 0062;0061 05AE 0300 1DDB 0315 0062;00E0 05AE 1DDB 0315 0062;0061 05AE 0300 1DDB 0315 0062; # (a◌̕◌̀◌֮◌ᷛb; à◌֮◌ᷛ◌̕b; a◌֮◌̀◌ᷛ◌̕b; à◌֮◌ᷛ◌̕b; a◌֮◌̀◌ᷛ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN LETTER SMALL CAPITAL G, LATIN SMALL LETTER B
+0061 1DDB 0315 0300 05AE 0062;0061 05AE 1DDB 0300 0315 0062;0061 05AE 1DDB 0300 0315 0062;0061 05AE 1DDB 0300 0315 0062;0061 05AE 1DDB 0300 0315 0062; # (a◌ᷛ◌̕◌̀◌֮b; a◌֮◌ᷛ◌̀◌̕b; a◌֮◌ᷛ◌̀◌̕b; a◌֮◌ᷛ◌̀◌̕b; a◌֮◌ᷛ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN LETTER SMALL CAPITAL G, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DDC 0062;00E0 05AE 1DDC 0315 0062;0061 05AE 0300 1DDC 0315 0062;00E0 05AE 1DDC 0315 0062;0061 05AE 0300 1DDC 0315 0062; # (a◌̕◌̀◌֮◌ᷜb; à◌֮◌ᷜ◌̕b; a◌֮◌̀◌ᷜ◌̕b; à◌֮◌ᷜ◌̕b; a◌֮◌̀◌ᷜ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER K, LATIN SMALL LETTER B
+0061 1DDC 0315 0300 05AE 0062;0061 05AE 1DDC 0300 0315 0062;0061 05AE 1DDC 0300 0315 0062;0061 05AE 1DDC 0300 0315 0062;0061 05AE 1DDC 0300 0315 0062; # (a◌ᷜ◌̕◌̀◌֮b; a◌֮◌ᷜ◌̀◌̕b; a◌֮◌ᷜ◌̀◌̕b; a◌֮◌ᷜ◌̀◌̕b; a◌֮◌ᷜ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER K, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DDD 0062;00E0 05AE 1DDD 0315 0062;0061 05AE 0300 1DDD 0315 0062;00E0 05AE 1DDD 0315 0062;0061 05AE 0300 1DDD 0315 0062; # (a◌̕◌̀◌֮◌ᷝb; à◌֮◌ᷝ◌̕b; a◌֮◌̀◌ᷝ◌̕b; à◌֮◌ᷝ◌̕b; a◌֮◌̀◌ᷝ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER L, LATIN SMALL LETTER B
+0061 1DDD 0315 0300 05AE 0062;0061 05AE 1DDD 0300 0315 0062;0061 05AE 1DDD 0300 0315 0062;0061 05AE 1DDD 0300 0315 0062;0061 05AE 1DDD 0300 0315 0062; # (a◌ᷝ◌̕◌̀◌֮b; a◌֮◌ᷝ◌̀◌̕b; a◌֮◌ᷝ◌̀◌̕b; a◌֮◌ᷝ◌̀◌̕b; a◌֮◌ᷝ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER L, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DDE 0062;00E0 05AE 1DDE 0315 0062;0061 05AE 0300 1DDE 0315 0062;00E0 05AE 1DDE 0315 0062;0061 05AE 0300 1DDE 0315 0062; # (a◌̕◌̀◌֮◌ᷞb; à◌֮◌ᷞ◌̕b; a◌֮◌̀◌ᷞ◌̕b; à◌֮◌ᷞ◌̕b; a◌֮◌̀◌ᷞ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN LETTER SMALL CAPITAL L, LATIN SMALL LETTER B
+0061 1DDE 0315 0300 05AE 0062;0061 05AE 1DDE 0300 0315 0062;0061 05AE 1DDE 0300 0315 0062;0061 05AE 1DDE 0300 0315 0062;0061 05AE 1DDE 0300 0315 0062; # (a◌ᷞ◌̕◌̀◌֮b; a◌֮◌ᷞ◌̀◌̕b; a◌֮◌ᷞ◌̀◌̕b; a◌֮◌ᷞ◌̀◌̕b; a◌֮◌ᷞ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN LETTER SMALL CAPITAL L, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DDF 0062;00E0 05AE 1DDF 0315 0062;0061 05AE 0300 1DDF 0315 0062;00E0 05AE 1DDF 0315 0062;0061 05AE 0300 1DDF 0315 0062; # (a◌̕◌̀◌֮◌ᷟb; à◌֮◌ᷟ◌̕b; a◌֮◌̀◌ᷟ◌̕b; à◌֮◌ᷟ◌̕b; a◌֮◌̀◌ᷟ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN LETTER SMALL CAPITAL M, LATIN SMALL LETTER B
+0061 1DDF 0315 0300 05AE 0062;0061 05AE 1DDF 0300 0315 0062;0061 05AE 1DDF 0300 0315 0062;0061 05AE 1DDF 0300 0315 0062;0061 05AE 1DDF 0300 0315 0062; # (a◌ᷟ◌̕◌̀◌֮b; a◌֮◌ᷟ◌̀◌̕b; a◌֮◌ᷟ◌̀◌̕b; a◌֮◌ᷟ◌̀◌̕b; a◌֮◌ᷟ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN LETTER SMALL CAPITAL M, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE0 0062;00E0 05AE 1DE0 0315 0062;0061 05AE 0300 1DE0 0315 0062;00E0 05AE 1DE0 0315 0062;0061 05AE 0300 1DE0 0315 0062; # (a◌̕◌̀◌֮◌ᷠb; à◌֮◌ᷠ◌̕b; a◌֮◌̀◌ᷠ◌̕b; à◌֮◌ᷠ◌̕b; a◌֮◌̀◌ᷠ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER N, LATIN SMALL LETTER B
+0061 1DE0 0315 0300 05AE 0062;0061 05AE 1DE0 0300 0315 0062;0061 05AE 1DE0 0300 0315 0062;0061 05AE 1DE0 0300 0315 0062;0061 05AE 1DE0 0300 0315 0062; # (a◌ᷠ◌̕◌̀◌֮b; a◌֮◌ᷠ◌̀◌̕b; a◌֮◌ᷠ◌̀◌̕b; a◌֮◌ᷠ◌̀◌̕b; a◌֮◌ᷠ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER N, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE1 0062;00E0 05AE 1DE1 0315 0062;0061 05AE 0300 1DE1 0315 0062;00E0 05AE 1DE1 0315 0062;0061 05AE 0300 1DE1 0315 0062; # (a◌̕◌̀◌֮◌ᷡb; à◌֮◌ᷡ◌̕b; a◌֮◌̀◌ᷡ◌̕b; à◌֮◌ᷡ◌̕b; a◌֮◌̀◌ᷡ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN LETTER SMALL CAPITAL N, LATIN SMALL LETTER B
+0061 1DE1 0315 0300 05AE 0062;0061 05AE 1DE1 0300 0315 0062;0061 05AE 1DE1 0300 0315 0062;0061 05AE 1DE1 0300 0315 0062;0061 05AE 1DE1 0300 0315 0062; # (a◌ᷡ◌̕◌̀◌֮b; a◌֮◌ᷡ◌̀◌̕b; a◌֮◌ᷡ◌̀◌̕b; a◌֮◌ᷡ◌̀◌̕b; a◌֮◌ᷡ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN LETTER SMALL CAPITAL N, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE2 0062;00E0 05AE 1DE2 0315 0062;0061 05AE 0300 1DE2 0315 0062;00E0 05AE 1DE2 0315 0062;0061 05AE 0300 1DE2 0315 0062; # (a◌̕◌̀◌֮◌ᷢb; à◌֮◌ᷢ◌̕b; a◌֮◌̀◌ᷢ◌̕b; à◌֮◌ᷢ◌̕b; a◌֮◌̀◌ᷢ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN LETTER SMALL CAPITAL R, LATIN SMALL LETTER B
+0061 1DE2 0315 0300 05AE 0062;0061 05AE 1DE2 0300 0315 0062;0061 05AE 1DE2 0300 0315 0062;0061 05AE 1DE2 0300 0315 0062;0061 05AE 1DE2 0300 0315 0062; # (a◌ᷢ◌̕◌̀◌֮b; a◌֮◌ᷢ◌̀◌̕b; a◌֮◌ᷢ◌̀◌̕b; a◌֮◌ᷢ◌̀◌̕b; a◌֮◌ᷢ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN LETTER SMALL CAPITAL R, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE3 0062;00E0 05AE 1DE3 0315 0062;0061 05AE 0300 1DE3 0315 0062;00E0 05AE 1DE3 0315 0062;0061 05AE 0300 1DE3 0315 0062; # (a◌̕◌̀◌֮◌ᷣb; à◌֮◌ᷣ◌̕b; a◌֮◌̀◌ᷣ◌̕b; à◌֮◌ᷣ◌̕b; a◌֮◌̀◌ᷣ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER R ROTUNDA, LATIN SMALL LETTER B
+0061 1DE3 0315 0300 05AE 0062;0061 05AE 1DE3 0300 0315 0062;0061 05AE 1DE3 0300 0315 0062;0061 05AE 1DE3 0300 0315 0062;0061 05AE 1DE3 0300 0315 0062; # (a◌ᷣ◌̕◌̀◌֮b; a◌֮◌ᷣ◌̀◌̕b; a◌֮◌ᷣ◌̀◌̕b; a◌֮◌ᷣ◌̀◌̕b; a◌֮◌ᷣ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER R ROTUNDA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE4 0062;00E0 05AE 1DE4 0315 0062;0061 05AE 0300 1DE4 0315 0062;00E0 05AE 1DE4 0315 0062;0061 05AE 0300 1DE4 0315 0062; # (a◌̕◌̀◌֮◌ᷤb; à◌֮◌ᷤ◌̕b; a◌֮◌̀◌ᷤ◌̕b; à◌֮◌ᷤ◌̕b; a◌֮◌̀◌ᷤ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER S, LATIN SMALL LETTER B
+0061 1DE4 0315 0300 05AE 0062;0061 05AE 1DE4 0300 0315 0062;0061 05AE 1DE4 0300 0315 0062;0061 05AE 1DE4 0300 0315 0062;0061 05AE 1DE4 0300 0315 0062; # (a◌ᷤ◌̕◌̀◌֮b; a◌֮◌ᷤ◌̀◌̕b; a◌֮◌ᷤ◌̀◌̕b; a◌֮◌ᷤ◌̀◌̕b; a◌֮◌ᷤ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER S, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE5 0062;00E0 05AE 1DE5 0315 0062;0061 05AE 0300 1DE5 0315 0062;00E0 05AE 1DE5 0315 0062;0061 05AE 0300 1DE5 0315 0062; # (a◌̕◌̀◌֮◌ᷥb; à◌֮◌ᷥ◌̕b; a◌֮◌̀◌ᷥ◌̕b; à◌֮◌ᷥ◌̕b; a◌֮◌̀◌ᷥ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER LONG S, LATIN SMALL LETTER B
+0061 1DE5 0315 0300 05AE 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062; # (a◌ᷥ◌̕◌̀◌֮b; a◌֮◌ᷥ◌̀◌̕b; a◌֮◌ᷥ◌̀◌̕b; a◌֮◌ᷥ◌̀◌̕b; a◌֮◌ᷥ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER LONG S, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE6 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062; # (a◌̕◌̀◌֮◌ᷦb; à◌֮◌ᷦ◌̕b; a◌֮◌̀◌ᷦ◌̕b; à◌֮◌ᷦ◌̕b; a◌֮◌̀◌ᷦ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER Z, LATIN SMALL LETTER B
+0061 1DE6 0315 0300 05AE 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062; # (a◌ᷦ◌̕◌̀◌֮b; a◌֮◌ᷦ◌̀◌̕b; a◌֮◌ᷦ◌̀◌̕b; a◌֮◌ᷦ◌̀◌̕b; a◌֮◌ᷦ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER Z, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE7 0062;00E0 05AE 1DE7 0315 0062;0061 05AE 0300 1DE7 0315 0062;00E0 05AE 1DE7 0315 0062;0061 05AE 0300 1DE7 0315 0062; # (a◌̕◌̀◌֮◌ᷧb; à◌֮◌ᷧ◌̕b; a◌֮◌̀◌ᷧ◌̕b; à◌֮◌ᷧ◌̕b; a◌֮◌̀◌ᷧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER ALPHA, LATIN SMALL LETTER B
+0061 1DE7 0315 0300 05AE 0062;0061 05AE 1DE7 0300 0315 0062;0061 05AE 1DE7 0300 0315 0062;0061 05AE 1DE7 0300 0315 0062;0061 05AE 1DE7 0300 0315 0062; # (a◌ᷧ◌̕◌̀◌֮b; a◌֮◌ᷧ◌̀◌̕b; a◌֮◌ᷧ◌̀◌̕b; a◌֮◌ᷧ◌̀◌̕b; a◌֮◌ᷧ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER ALPHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE8 0062;00E0 05AE 1DE8 0315 0062;0061 05AE 0300 1DE8 0315 0062;00E0 05AE 1DE8 0315 0062;0061 05AE 0300 1DE8 0315 0062; # (a◌̕◌̀◌֮◌ᷨb; à◌֮◌ᷨ◌̕b; a◌֮◌̀◌ᷨ◌̕b; à◌֮◌ᷨ◌̕b; a◌֮◌̀◌ᷨ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER B, LATIN SMALL LETTER B
+0061 1DE8 0315 0300 05AE 0062;0061 05AE 1DE8 0300 0315 0062;0061 05AE 1DE8 0300 0315 0062;0061 05AE 1DE8 0300 0315 0062;0061 05AE 1DE8 0300 0315 0062; # (a◌ᷨ◌̕◌̀◌֮b; a◌֮◌ᷨ◌̀◌̕b; a◌֮◌ᷨ◌̀◌̕b; a◌֮◌ᷨ◌̀◌̕b; a◌֮◌ᷨ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE9 0062;00E0 05AE 1DE9 0315 0062;0061 05AE 0300 1DE9 0315 0062;00E0 05AE 1DE9 0315 0062;0061 05AE 0300 1DE9 0315 0062; # (a◌̕◌̀◌֮◌ᷩb; à◌֮◌ᷩ◌̕b; a◌֮◌̀◌ᷩ◌̕b; à◌֮◌ᷩ◌̕b; a◌֮◌̀◌ᷩ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER BETA, LATIN SMALL LETTER B
+0061 1DE9 0315 0300 05AE 0062;0061 05AE 1DE9 0300 0315 0062;0061 05AE 1DE9 0300 0315 0062;0061 05AE 1DE9 0300 0315 0062;0061 05AE 1DE9 0300 0315 0062; # (a◌ᷩ◌̕◌̀◌֮b; a◌֮◌ᷩ◌̀◌̕b; a◌֮◌ᷩ◌̀◌̕b; a◌֮◌ᷩ◌̀◌̕b; a◌֮◌ᷩ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER BETA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEA 0062;00E0 05AE 1DEA 0315 0062;0061 05AE 0300 1DEA 0315 0062;00E0 05AE 1DEA 0315 0062;0061 05AE 0300 1DEA 0315 0062; # (a◌̕◌̀◌֮◌ᷪb; à◌֮◌ᷪ◌̕b; a◌֮◌̀◌ᷪ◌̕b; à◌֮◌ᷪ◌̕b; a◌֮◌̀◌ᷪ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER SCHWA, LATIN SMALL LETTER B
+0061 1DEA 0315 0300 05AE 0062;0061 05AE 1DEA 0300 0315 0062;0061 05AE 1DEA 0300 0315 0062;0061 05AE 1DEA 0300 0315 0062;0061 05AE 1DEA 0300 0315 0062; # (a◌ᷪ◌̕◌̀◌֮b; a◌֮◌ᷪ◌̀◌̕b; a◌֮◌ᷪ◌̀◌̕b; a◌֮◌ᷪ◌̀◌̕b; a◌֮◌ᷪ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER SCHWA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEB 0062;00E0 05AE 1DEB 0315 0062;0061 05AE 0300 1DEB 0315 0062;00E0 05AE 1DEB 0315 0062;0061 05AE 0300 1DEB 0315 0062; # (a◌̕◌̀◌֮◌ᷫb; à◌֮◌ᷫ◌̕b; a◌֮◌̀◌ᷫ◌̕b; à◌֮◌ᷫ◌̕b; a◌֮◌̀◌ᷫ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER F, LATIN SMALL LETTER B
+0061 1DEB 0315 0300 05AE 0062;0061 05AE 1DEB 0300 0315 0062;0061 05AE 1DEB 0300 0315 0062;0061 05AE 1DEB 0300 0315 0062;0061 05AE 1DEB 0300 0315 0062; # (a◌ᷫ◌̕◌̀◌֮b; a◌֮◌ᷫ◌̀◌̕b; a◌֮◌ᷫ◌̀◌̕b; a◌֮◌ᷫ◌̀◌̕b; a◌֮◌ᷫ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER F, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEC 0062;00E0 05AE 1DEC 0315 0062;0061 05AE 0300 1DEC 0315 0062;00E0 05AE 1DEC 0315 0062;0061 05AE 0300 1DEC 0315 0062; # (a◌̕◌̀◌֮◌ᷬb; à◌֮◌ᷬ◌̕b; a◌֮◌̀◌ᷬ◌̕b; à◌֮◌ᷬ◌̕b; a◌֮◌̀◌ᷬ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE, LATIN SMALL LETTER B
+0061 1DEC 0315 0300 05AE 0062;0061 05AE 1DEC 0300 0315 0062;0061 05AE 1DEC 0300 0315 0062;0061 05AE 1DEC 0300 0315 0062;0061 05AE 1DEC 0300 0315 0062; # (a◌ᷬ◌̕◌̀◌֮b; a◌֮◌ᷬ◌̀◌̕b; a◌֮◌ᷬ◌̀◌̕b; a◌֮◌ᷬ◌̀◌̕b; a◌֮◌ᷬ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DED 0062;00E0 05AE 1DED 0315 0062;0061 05AE 0300 1DED 0315 0062;00E0 05AE 1DED 0315 0062;0061 05AE 0300 1DED 0315 0062; # (a◌̕◌̀◌֮◌ᷭb; à◌֮◌ᷭ◌̕b; a◌֮◌̀◌ᷭ◌̕b; à◌֮◌ᷭ◌̕b; a◌֮◌̀◌ᷭ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE, LATIN SMALL LETTER B
+0061 1DED 0315 0300 05AE 0062;0061 05AE 1DED 0300 0315 0062;0061 05AE 1DED 0300 0315 0062;0061 05AE 1DED 0300 0315 0062;0061 05AE 1DED 0300 0315 0062; # (a◌ᷭ◌̕◌̀◌֮b; a◌֮◌ᷭ◌̀◌̕b; a◌֮◌ᷭ◌̀◌̕b; a◌֮◌ᷭ◌̀◌̕b; a◌֮◌ᷭ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEE 0062;00E0 05AE 1DEE 0315 0062;0061 05AE 0300 1DEE 0315 0062;00E0 05AE 1DEE 0315 0062;0061 05AE 0300 1DEE 0315 0062; # (a◌̕◌̀◌֮◌ᷮb; à◌֮◌ᷮ◌̕b; a◌֮◌̀◌ᷮ◌̕b; à◌֮◌ᷮ◌̕b; a◌֮◌̀◌ᷮ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER P, LATIN SMALL LETTER B
+0061 1DEE 0315 0300 05AE 0062;0061 05AE 1DEE 0300 0315 0062;0061 05AE 1DEE 0300 0315 0062;0061 05AE 1DEE 0300 0315 0062;0061 05AE 1DEE 0300 0315 0062; # (a◌ᷮ◌̕◌̀◌֮b; a◌֮◌ᷮ◌̀◌̕b; a◌֮◌ᷮ◌̀◌̕b; a◌֮◌ᷮ◌̀◌̕b; a◌֮◌ᷮ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER P, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEF 0062;00E0 05AE 1DEF 0315 0062;0061 05AE 0300 1DEF 0315 0062;00E0 05AE 1DEF 0315 0062;0061 05AE 0300 1DEF 0315 0062; # (a◌̕◌̀◌֮◌ᷯb; à◌֮◌ᷯ◌̕b; a◌֮◌̀◌ᷯ◌̕b; à◌֮◌ᷯ◌̕b; a◌֮◌̀◌ᷯ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER ESH, LATIN SMALL LETTER B
+0061 1DEF 0315 0300 05AE 0062;0061 05AE 1DEF 0300 0315 0062;0061 05AE 1DEF 0300 0315 0062;0061 05AE 1DEF 0300 0315 0062;0061 05AE 1DEF 0300 0315 0062; # (a◌ᷯ◌̕◌̀◌֮b; a◌֮◌ᷯ◌̀◌̕b; a◌֮◌ᷯ◌̀◌̕b; a◌֮◌ᷯ◌̀◌̕b; a◌֮◌ᷯ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER ESH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF0 0062;00E0 05AE 1DF0 0315 0062;0061 05AE 0300 1DF0 0315 0062;00E0 05AE 1DF0 0315 0062;0061 05AE 0300 1DF0 0315 0062; # (a◌̕◌̀◌֮◌ᷰb; à◌֮◌ᷰ◌̕b; a◌֮◌̀◌ᷰ◌̕b; à◌֮◌ᷰ◌̕b; a◌֮◌̀◌ᷰ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE, LATIN SMALL LETTER B
+0061 1DF0 0315 0300 05AE 0062;0061 05AE 1DF0 0300 0315 0062;0061 05AE 1DF0 0300 0315 0062;0061 05AE 1DF0 0300 0315 0062;0061 05AE 1DF0 0300 0315 0062; # (a◌ᷰ◌̕◌̀◌֮b; a◌֮◌ᷰ◌̀◌̕b; a◌֮◌ᷰ◌̀◌̕b; a◌֮◌ᷰ◌̀◌̕b; a◌֮◌ᷰ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF1 0062;00E0 05AE 1DF1 0315 0062;0061 05AE 0300 1DF1 0315 0062;00E0 05AE 1DF1 0315 0062;0061 05AE 0300 1DF1 0315 0062; # (a◌̕◌̀◌֮◌ᷱb; à◌֮◌ᷱ◌̕b; a◌֮◌̀◌ᷱ◌̕b; à◌֮◌ᷱ◌̕b; a◌֮◌̀◌ᷱ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER W, LATIN SMALL LETTER B
+0061 1DF1 0315 0300 05AE 0062;0061 05AE 1DF1 0300 0315 0062;0061 05AE 1DF1 0300 0315 0062;0061 05AE 1DF1 0300 0315 0062;0061 05AE 1DF1 0300 0315 0062; # (a◌ᷱ◌̕◌̀◌֮b; a◌֮◌ᷱ◌̀◌̕b; a◌֮◌ᷱ◌̀◌̕b; a◌֮◌ᷱ◌̀◌̕b; a◌֮◌ᷱ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER W, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF2 0062;00E0 05AE 1DF2 0315 0062;0061 05AE 0300 1DF2 0315 0062;00E0 05AE 1DF2 0315 0062;0061 05AE 0300 1DF2 0315 0062; # (a◌̕◌̀◌֮◌ᷲb; à◌֮◌ᷲ◌̕b; a◌֮◌̀◌ᷲ◌̕b; à◌֮◌ᷲ◌̕b; a◌֮◌̀◌ᷲ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER B
+0061 1DF2 0315 0300 05AE 0062;0061 05AE 1DF2 0300 0315 0062;0061 05AE 1DF2 0300 0315 0062;0061 05AE 1DF2 0300 0315 0062;0061 05AE 1DF2 0300 0315 0062; # (a◌ᷲ◌̕◌̀◌֮b; a◌֮◌ᷲ◌̀◌̕b; a◌֮◌ᷲ◌̀◌̕b; a◌֮◌ᷲ◌̀◌̕b; a◌֮◌ᷲ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER A WITH DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF3 0062;00E0 05AE 1DF3 0315 0062;0061 05AE 0300 1DF3 0315 0062;00E0 05AE 1DF3 0315 0062;0061 05AE 0300 1DF3 0315 0062; # (a◌̕◌̀◌֮◌ᷳb; à◌֮◌ᷳ◌̕b; a◌֮◌̀◌ᷳ◌̕b; à◌֮◌ᷳ◌̕b; a◌֮◌̀◌ᷳ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER B
+0061 1DF3 0315 0300 05AE 0062;0061 05AE 1DF3 0300 0315 0062;0061 05AE 1DF3 0300 0315 0062;0061 05AE 1DF3 0300 0315 0062;0061 05AE 1DF3 0300 0315 0062; # (a◌ᷳ◌̕◌̀◌֮b; a◌֮◌ᷳ◌̀◌̕b; a◌֮◌ᷳ◌̀◌̕b; a◌֮◌ᷳ◌̀◌̕b; a◌֮◌ᷳ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER O WITH DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF4 0062;00E0 05AE 1DF4 0315 0062;0061 05AE 0300 1DF4 0315 0062;00E0 05AE 1DF4 0315 0062;0061 05AE 0300 1DF4 0315 0062; # (a◌̕◌̀◌֮◌ᷴb; à◌֮◌ᷴ◌̕b; a◌֮◌̀◌ᷴ◌̕b; à◌֮◌ᷴ◌̕b; a◌֮◌̀◌ᷴ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER B
+0061 1DF4 0315 0300 05AE 0062;0061 05AE 1DF4 0300 0315 0062;0061 05AE 1DF4 0300 0315 0062;0061 05AE 1DF4 0300 0315 0062;0061 05AE 1DF4 0300 0315 0062; # (a◌ᷴ◌̕◌̀◌֮b; a◌֮◌ᷴ◌̀◌̕b; a◌֮◌ᷴ◌̀◌̕b; a◌֮◌ᷴ◌̀◌̕b; a◌֮◌ᷴ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER U WITH DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF5 0062;00E0 05AE 1DF5 0315 0062;0061 05AE 0300 1DF5 0315 0062;00E0 05AE 1DF5 0315 0062;0061 05AE 0300 1DF5 0315 0062; # (a◌̕◌̀◌֮◌᷵b; à◌֮◌᷵◌̕b; a◌֮◌̀◌᷵◌̕b; à◌֮◌᷵◌̕b; a◌֮◌̀◌᷵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING UP TACK ABOVE, LATIN SMALL LETTER B
+0061 1DF5 0315 0300 05AE 0062;0061 05AE 1DF5 0300 0315 0062;0061 05AE 1DF5 0300 0315 0062;0061 05AE 1DF5 0300 0315 0062;0061 05AE 1DF5 0300 0315 0062; # (a◌᷵◌̕◌̀◌֮b; a◌֮◌᷵◌̀◌̕b; a◌֮◌᷵◌̀◌̕b; a◌֮◌᷵◌̀◌̕b; a◌֮◌᷵◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING UP TACK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035C 0315 0300 1DF6 0062;00E0 0315 1DF6 035C 0062;0061 0300 0315 1DF6 035C 0062;00E0 0315 1DF6 035C 0062;0061 0300 0315 1DF6 035C 0062; # (a◌͜◌̕◌̀◌᷶b; à◌̕◌᷶◌͜b; a◌̀◌̕◌᷶◌͜b; à◌̕◌᷶◌͜b; a◌̀◌̕◌᷶◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, COMBINING KAVYKA ABOVE RIGHT, LATIN SMALL LETTER B
+0061 1DF6 035C 0315 0300 0062;00E0 1DF6 0315 035C 0062;0061 0300 1DF6 0315 035C 0062;00E0 1DF6 0315 035C 0062;0061 0300 1DF6 0315 035C 0062; # (a◌᷶◌͜◌̕◌̀b; à◌᷶◌̕◌͜b; a◌̀◌᷶◌̕◌͜b; à◌᷶◌̕◌͜b; a◌̀◌᷶◌̕◌͜b; ) LATIN SMALL LETTER A, COMBINING KAVYKA ABOVE RIGHT, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 0300 05AE 1D16D 1DF7 0062;00E0 1D16D 05AE 1DF7 0062;0061 1D16D 05AE 1DF7 0300 0062;00E0 1D16D 05AE 1DF7 0062;0061 1D16D 05AE 1DF7 0300 0062; # (a◌̀◌𝅭֮◌᷷b; à𝅭◌֮◌᷷b; a𝅭◌֮◌᷷◌̀b; à𝅭◌֮◌᷷b; a𝅭◌֮◌᷷◌̀b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, COMBINING KAVYKA ABOVE LEFT, LATIN SMALL LETTER B
+0061 1DF7 0300 05AE 1D16D 0062;00E0 1D16D 1DF7 05AE 0062;0061 1D16D 1DF7 05AE 0300 0062;00E0 1D16D 1DF7 05AE 0062;0061 1D16D 1DF7 05AE 0300 0062; # (a◌᷷◌̀◌𝅭֮b; à𝅭◌᷷◌֮b; a𝅭◌᷷◌֮◌̀b; à𝅭◌᷷◌֮b; a𝅭◌᷷◌֮◌̀b; ) LATIN SMALL LETTER A, COMBINING KAVYKA ABOVE LEFT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL LETTER B
+0061 0300 05AE 1D16D 1DF8 0062;00E0 1D16D 05AE 1DF8 0062;0061 1D16D 05AE 1DF8 0300 0062;00E0 1D16D 05AE 1DF8 0062;0061 1D16D 05AE 1DF8 0300 0062; # (a◌̀◌𝅭֮◌᷸b; à𝅭◌֮◌᷸b; a𝅭◌֮◌᷸◌̀b; à𝅭◌֮◌᷸b; a𝅭◌֮◌᷸◌̀b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, COMBINING DOT ABOVE LEFT, LATIN SMALL LETTER B
+0061 1DF8 0300 05AE 1D16D 0062;00E0 1D16D 1DF8 05AE 0062;0061 1D16D 1DF8 05AE 0300 0062;00E0 1D16D 1DF8 05AE 0062;0061 1D16D 1DF8 05AE 0300 0062; # (a◌᷸◌̀◌𝅭֮b; à𝅭◌᷸◌֮b; a𝅭◌᷸◌֮◌̀b; à𝅭◌᷸◌֮b; a𝅭◌᷸◌֮◌̀b; ) LATIN SMALL LETTER A, COMBINING DOT ABOVE LEFT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1DF9 0062;0061 1DFA 0316 1DF9 059A 0062;0061 1DFA 0316 1DF9 059A 0062;0061 1DFA 0316 1DF9 059A 0062;0061 1DFA 0316 1DF9 059A 0062; # (a◌֚◌̖◌᷺◌᷹b; a◌᷺◌̖◌᷹◌֚b; a◌᷺◌̖◌᷹◌֚b; a◌᷺◌̖◌᷹◌֚b; a◌᷺◌̖◌᷹◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING WIDE INVERTED BRIDGE BELOW, LATIN SMALL LETTER B
+0061 1DF9 059A 0316 1DFA 0062;0061 1DFA 1DF9 0316 059A 0062;0061 1DFA 1DF9 0316 059A 0062;0061 1DFA 1DF9 0316 059A 0062;0061 1DFA 1DF9 0316 059A 0062; # (a◌᷹◌֚◌̖◌᷺b; a◌᷺◌᷹◌̖◌֚b; a◌᷺◌᷹◌̖◌֚b; a◌᷺◌᷹◌̖◌֚b; a◌᷺◌᷹◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING WIDE INVERTED BRIDGE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0316 1DFA 031B 1DFA 0062;0061 031B 1DFA 1DFA 0316 0062;0061 031B 1DFA 1DFA 0316 0062;0061 031B 1DFA 1DFA 0316 0062;0061 031B 1DFA 1DFA 0316 0062; # (a◌̖◌᷺◌̛◌᷺b; a◌̛◌᷺◌᷺◌̖b; a◌̛◌᷺◌᷺◌̖b; a◌̛◌᷺◌᷺◌̖b; a◌̛◌᷺◌᷺◌̖b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 1DFA 0316 1DFA 031B 0062;0061 031B 1DFA 1DFA 0316 0062;0061 031B 1DFA 1DFA 0316 0062;0061 031B 1DFA 1DFA 0316 0062;0061 031B 1DFA 1DFA 0316 0062; # (a◌᷺◌̖◌᷺◌̛b; a◌̛◌᷺◌᷺◌̖b; a◌̛◌᷺◌᷺◌̖b; a◌̛◌᷺◌᷺◌̖b; a◌̛◌᷺◌᷺◌̖b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING HORN, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DFB 0062;00E0 05AE 1DFB 0315 0062;0061 05AE 0300 1DFB 0315 0062;00E0 05AE 1DFB 0315 0062;0061 05AE 0300 1DFB 0315 0062; # (a◌̕◌̀◌֮◌᷻b; à◌֮◌᷻◌̕b; a◌֮◌̀◌᷻◌̕b; à◌֮◌᷻◌̕b; a◌֮◌̀◌᷻◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DELETION MARK, LATIN SMALL LETTER B
+0061 1DFB 0315 0300 05AE 0062;0061 05AE 1DFB 0300 0315 0062;0061 05AE 1DFB 0300 0315 0062;0061 05AE 1DFB 0300 0315 0062;0061 05AE 1DFB 0300 0315 0062; # (a◌᷻◌̕◌̀◌֮b; a◌֮◌᷻◌̀◌̕b; a◌֮◌᷻◌̀◌̕b; a◌֮◌᷻◌̀◌̕b; a◌֮◌᷻◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DELETION MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035D 035C 0315 1DFC 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062; # (a◌͝◌͜◌̕◌᷼b; a◌̕◌͜◌᷼◌͝b; a◌̕◌͜◌᷼◌͝b; a◌̕◌͜◌᷼◌͝b; a◌̕◌͜◌᷼◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING DOUBLE INVERTED BREVE BELOW, LATIN SMALL LETTER B
+0061 1DFC 035D 035C 0315 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062; # (a◌᷼◌͝◌͜◌̕b; a◌̕◌᷼◌͜◌͝b; a◌̕◌᷼◌͜◌͝b; a◌̕◌᷼◌͜◌͝b; a◌̕◌᷼◌͜◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE INVERTED BREVE BELOW, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1DFD 0062;0061 1DFA 0316 1DFD 059A 0062;0061 1DFA 0316 1DFD 059A 0062;0061 1DFA 0316 1DFD 059A 0062;0061 1DFA 0316 1DFD 059A 0062; # (a◌֚◌̖◌᷺◌᷽b; a◌᷺◌̖◌᷽◌֚b; a◌᷺◌̖◌᷽◌֚b; a◌᷺◌̖◌᷽◌֚b; a◌᷺◌̖◌᷽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING ALMOST EQUAL TO BELOW, LATIN SMALL LETTER B
+0061 1DFD 059A 0316 1DFA 0062;0061 1DFA 1DFD 0316 059A 0062;0061 1DFA 1DFD 0316 059A 0062;0061 1DFA 1DFD 0316 059A 0062;0061 1DFA 1DFD 0316 059A 0062; # (a◌᷽◌֚◌̖◌᷺b; a◌᷺◌᷽◌̖◌֚b; a◌᷺◌᷽◌̖◌֚b; a◌᷺◌᷽◌̖◌֚b; a◌᷺◌᷽◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING ALMOST EQUAL TO BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DFE 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062; # (a◌̕◌̀◌֮◌᷾b; à◌֮◌᷾◌̕b; a◌֮◌̀◌᷾◌̕b; à◌֮◌᷾◌̕b; a◌֮◌̀◌᷾◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LEFT ARROWHEAD ABOVE, LATIN SMALL LETTER B
+0061 1DFE 0315 0300 05AE 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062; # (a◌᷾◌̕◌̀◌֮b; a◌֮◌᷾◌̀◌̕b; a◌֮◌᷾◌̀◌̕b; a◌֮◌᷾◌̀◌̕b; a◌֮◌᷾◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LEFT ARROWHEAD ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1DFF 0062;0061 1DFA 0316 1DFF 059A 0062;0061 1DFA 0316 1DFF 059A 0062;0061 1DFA 0316 1DFF 059A 0062;0061 1DFA 0316 1DFF 059A 0062; # (a◌֚◌̖◌᷺◌᷿b; a◌᷺◌̖◌᷿◌֚b; a◌᷺◌̖◌᷿◌֚b; a◌᷺◌̖◌᷿◌֚b; a◌᷺◌̖◌᷿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW, LATIN SMALL LETTER B
+0061 1DFF 059A 0316 1DFA 0062;0061 1DFA 1DFF 0316 059A 0062;0061 1DFA 1DFF 0316 059A 0062;0061 1DFA 1DFF 0316 059A 0062;0061 1DFA 1DFF 0316 059A 0062; # (a◌᷿◌֚◌̖◌᷺b; a◌᷺◌᷿◌̖◌֚b; a◌᷺◌᷿◌̖◌֚b; a◌᷺◌᷿◌̖◌֚b; a◌᷺◌᷿◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20D0 0062;00E0 05AE 20D0 0315 0062;0061 05AE 0300 20D0 0315 0062;00E0 05AE 20D0 0315 0062;0061 05AE 0300 20D0 0315 0062; # (a◌̕◌̀◌֮◌⃐b; à◌֮◌⃐◌̕b; a◌֮◌̀◌⃐◌̕b; à◌֮◌⃐◌̕b; a◌֮◌̀◌⃐◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LEFT HARPOON ABOVE, LATIN SMALL LETTER B
+0061 20D0 0315 0300 05AE 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062; # (a◌⃐◌̕◌̀◌֮b; a◌֮◌⃐◌̀◌̕b; a◌֮◌⃐◌̀◌̕b; a◌֮◌⃐◌̀◌̕b; a◌֮◌⃐◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LEFT HARPOON ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20D1 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062; # (a◌̕◌̀◌֮◌⃑b; à◌֮◌⃑◌̕b; a◌֮◌̀◌⃑◌̕b; à◌֮◌⃑◌̕b; a◌֮◌̀◌⃑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING RIGHT HARPOON ABOVE, LATIN SMALL LETTER B
+0061 20D1 0315 0300 05AE 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062; # (a◌⃑◌̕◌̀◌֮b; a◌֮◌⃑◌̀◌̕b; a◌֮◌⃑◌̀◌̕b; a◌֮◌⃑◌̀◌̕b; a◌֮◌⃑◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING RIGHT HARPOON ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 20D2 0062;0061 0334 20D2 16FF0 0062;0061 0334 20D2 16FF0 0062;0061 0334 20D2 16FF0 0062;0061 0334 20D2 16FF0 0062; # (a𖿰◌̴◌⃒b; a◌̴◌⃒𖿰b; a◌̴◌⃒𖿰b; a◌̴◌⃒𖿰b; a◌̴◌⃒𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG VERTICAL LINE OVERLAY, LATIN SMALL LETTER B
+0061 20D2 16FF0 0334 0062;0061 20D2 0334 16FF0 0062;0061 20D2 0334 16FF0 0062;0061 20D2 0334 16FF0 0062;0061 20D2 0334 16FF0 0062; # (a◌⃒𖿰◌̴b; a◌⃒◌̴𖿰b; a◌⃒◌̴𖿰b; a◌⃒◌̴𖿰b; a◌⃒◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG VERTICAL LINE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 20D3 0062;0061 0334 20D3 16FF0 0062;0061 0334 20D3 16FF0 0062;0061 0334 20D3 16FF0 0062;0061 0334 20D3 16FF0 0062; # (a𖿰◌̴◌⃓b; a◌̴◌⃓𖿰b; a◌̴◌⃓𖿰b; a◌̴◌⃓𖿰b; a◌̴◌⃓𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING SHORT VERTICAL LINE OVERLAY, LATIN SMALL LETTER B
+0061 20D3 16FF0 0334 0062;0061 20D3 0334 16FF0 0062;0061 20D3 0334 16FF0 0062;0061 20D3 0334 16FF0 0062;0061 20D3 0334 16FF0 0062; # (a◌⃓𖿰◌̴b; a◌⃓◌̴𖿰b; a◌⃓◌̴𖿰b; a◌⃓◌̴𖿰b; a◌⃓◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING SHORT VERTICAL LINE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20D4 0062;00E0 05AE 20D4 0315 0062;0061 05AE 0300 20D4 0315 0062;00E0 05AE 20D4 0315 0062;0061 05AE 0300 20D4 0315 0062; # (a◌̕◌̀◌֮◌⃔b; à◌֮◌⃔◌̕b; a◌֮◌̀◌⃔◌̕b; à◌֮◌⃔◌̕b; a◌֮◌̀◌⃔◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ANTICLOCKWISE ARROW ABOVE, LATIN SMALL LETTER B
+0061 20D4 0315 0300 05AE 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062; # (a◌⃔◌̕◌̀◌֮b; a◌֮◌⃔◌̀◌̕b; a◌֮◌⃔◌̀◌̕b; a◌֮◌⃔◌̀◌̕b; a◌֮◌⃔◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ANTICLOCKWISE ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20D5 0062;00E0 05AE 20D5 0315 0062;0061 05AE 0300 20D5 0315 0062;00E0 05AE 20D5 0315 0062;0061 05AE 0300 20D5 0315 0062; # (a◌̕◌̀◌֮◌⃕b; à◌֮◌⃕◌̕b; a◌֮◌̀◌⃕◌̕b; à◌֮◌⃕◌̕b; a◌֮◌̀◌⃕◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CLOCKWISE ARROW ABOVE, LATIN SMALL LETTER B
+0061 20D5 0315 0300 05AE 0062;0061 05AE 20D5 0300 0315 0062;0061 05AE 20D5 0300 0315 0062;0061 05AE 20D5 0300 0315 0062;0061 05AE 20D5 0300 0315 0062; # (a◌⃕◌̕◌̀◌֮b; a◌֮◌⃕◌̀◌̕b; a◌֮◌⃕◌̀◌̕b; a◌֮◌⃕◌̀◌̕b; a◌֮◌⃕◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CLOCKWISE ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20D6 0062;00E0 05AE 20D6 0315 0062;0061 05AE 0300 20D6 0315 0062;00E0 05AE 20D6 0315 0062;0061 05AE 0300 20D6 0315 0062; # (a◌̕◌̀◌֮◌⃖b; à◌֮◌⃖◌̕b; a◌֮◌̀◌⃖◌̕b; à◌֮◌⃖◌̕b; a◌֮◌̀◌⃖◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LEFT ARROW ABOVE, LATIN SMALL LETTER B
+0061 20D6 0315 0300 05AE 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062; # (a◌⃖◌̕◌̀◌֮b; a◌֮◌⃖◌̀◌̕b; a◌֮◌⃖◌̀◌̕b; a◌֮◌⃖◌̀◌̕b; a◌֮◌⃖◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LEFT ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20D7 0062;00E0 05AE 20D7 0315 0062;0061 05AE 0300 20D7 0315 0062;00E0 05AE 20D7 0315 0062;0061 05AE 0300 20D7 0315 0062; # (a◌̕◌̀◌֮◌⃗b; à◌֮◌⃗◌̕b; a◌֮◌̀◌⃗◌̕b; à◌֮◌⃗◌̕b; a◌֮◌̀◌⃗◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING RIGHT ARROW ABOVE, LATIN SMALL LETTER B
+0061 20D7 0315 0300 05AE 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062; # (a◌⃗◌̕◌̀◌֮b; a◌֮◌⃗◌̀◌̕b; a◌֮◌⃗◌̀◌̕b; a◌֮◌⃗◌̀◌̕b; a◌֮◌⃗◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING RIGHT ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 20D8 0062;0061 0334 20D8 16FF0 0062;0061 0334 20D8 16FF0 0062;0061 0334 20D8 16FF0 0062;0061 0334 20D8 16FF0 0062; # (a𖿰◌̴◌⃘b; a◌̴◌⃘𖿰b; a◌̴◌⃘𖿰b; a◌̴◌⃘𖿰b; a◌̴◌⃘𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING RING OVERLAY, LATIN SMALL LETTER B
+0061 20D8 16FF0 0334 0062;0061 20D8 0334 16FF0 0062;0061 20D8 0334 16FF0 0062;0061 20D8 0334 16FF0 0062;0061 20D8 0334 16FF0 0062; # (a◌⃘𖿰◌̴b; a◌⃘◌̴𖿰b; a◌⃘◌̴𖿰b; a◌⃘◌̴𖿰b; a◌⃘◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING RING OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 20D9 0062;0061 0334 20D9 16FF0 0062;0061 0334 20D9 16FF0 0062;0061 0334 20D9 16FF0 0062;0061 0334 20D9 16FF0 0062; # (a𖿰◌̴◌⃙b; a◌̴◌⃙𖿰b; a◌̴◌⃙𖿰b; a◌̴◌⃙𖿰b; a◌̴◌⃙𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING CLOCKWISE RING OVERLAY, LATIN SMALL LETTER B
+0061 20D9 16FF0 0334 0062;0061 20D9 0334 16FF0 0062;0061 20D9 0334 16FF0 0062;0061 20D9 0334 16FF0 0062;0061 20D9 0334 16FF0 0062; # (a◌⃙𖿰◌̴b; a◌⃙◌̴𖿰b; a◌⃙◌̴𖿰b; a◌⃙◌̴𖿰b; a◌⃙◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING CLOCKWISE RING OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 20DA 0062;0061 0334 20DA 16FF0 0062;0061 0334 20DA 16FF0 0062;0061 0334 20DA 16FF0 0062;0061 0334 20DA 16FF0 0062; # (a𖿰◌̴◌⃚b; a◌̴◌⃚𖿰b; a◌̴◌⃚𖿰b; a◌̴◌⃚𖿰b; a◌̴◌⃚𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING ANTICLOCKWISE RING OVERLAY, LATIN SMALL LETTER B
+0061 20DA 16FF0 0334 0062;0061 20DA 0334 16FF0 0062;0061 20DA 0334 16FF0 0062;0061 20DA 0334 16FF0 0062;0061 20DA 0334 16FF0 0062; # (a◌⃚𖿰◌̴b; a◌⃚◌̴𖿰b; a◌⃚◌̴𖿰b; a◌⃚◌̴𖿰b; a◌⃚◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING ANTICLOCKWISE RING OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20DB 0062;00E0 05AE 20DB 0315 0062;0061 05AE 0300 20DB 0315 0062;00E0 05AE 20DB 0315 0062;0061 05AE 0300 20DB 0315 0062; # (a◌̕◌̀◌֮◌⃛b; à◌֮◌⃛◌̕b; a◌֮◌̀◌⃛◌̕b; à◌֮◌⃛◌̕b; a◌֮◌̀◌⃛◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING THREE DOTS ABOVE, LATIN SMALL LETTER B
+0061 20DB 0315 0300 05AE 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062; # (a◌⃛◌̕◌̀◌֮b; a◌֮◌⃛◌̀◌̕b; a◌֮◌⃛◌̀◌̕b; a◌֮◌⃛◌̀◌̕b; a◌֮◌⃛◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING THREE DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20DC 0062;00E0 05AE 20DC 0315 0062;0061 05AE 0300 20DC 0315 0062;00E0 05AE 20DC 0315 0062;0061 05AE 0300 20DC 0315 0062; # (a◌̕◌̀◌֮◌⃜b; à◌֮◌⃜◌̕b; a◌֮◌̀◌⃜◌̕b; à◌֮◌⃜◌̕b; a◌֮◌̀◌⃜◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING FOUR DOTS ABOVE, LATIN SMALL LETTER B
+0061 20DC 0315 0300 05AE 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062; # (a◌⃜◌̕◌̀◌֮b; a◌֮◌⃜◌̀◌̕b; a◌֮◌⃜◌̀◌̕b; a◌֮◌⃜◌̀◌̕b; a◌֮◌⃜◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING FOUR DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20E1 0062;00E0 05AE 20E1 0315 0062;0061 05AE 0300 20E1 0315 0062;00E0 05AE 20E1 0315 0062;0061 05AE 0300 20E1 0315 0062; # (a◌̕◌̀◌֮◌⃡b; à◌֮◌⃡◌̕b; a◌֮◌̀◌⃡◌̕b; à◌֮◌⃡◌̕b; a◌֮◌̀◌⃡◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LEFT RIGHT ARROW ABOVE, LATIN SMALL LETTER B
+0061 20E1 0315 0300 05AE 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062; # (a◌⃡◌̕◌̀◌֮b; a◌֮◌⃡◌̀◌̕b; a◌֮◌⃡◌̀◌̕b; a◌֮◌⃡◌̀◌̕b; a◌֮◌⃡◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LEFT RIGHT ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 20E5 0062;0061 0334 20E5 16FF0 0062;0061 0334 20E5 16FF0 0062;0061 0334 20E5 16FF0 0062;0061 0334 20E5 16FF0 0062; # (a𖿰◌̴◌⃥b; a◌̴◌⃥𖿰b; a◌̴◌⃥𖿰b; a◌̴◌⃥𖿰b; a◌̴◌⃥𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING REVERSE SOLIDUS OVERLAY, LATIN SMALL LETTER B
+0061 20E5 16FF0 0334 0062;0061 20E5 0334 16FF0 0062;0061 20E5 0334 16FF0 0062;0061 20E5 0334 16FF0 0062;0061 20E5 0334 16FF0 0062; # (a◌⃥𖿰◌̴b; a◌⃥◌̴𖿰b; a◌⃥◌̴𖿰b; a◌⃥◌̴𖿰b; a◌⃥◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING REVERSE SOLIDUS OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 20E6 0062;0061 0334 20E6 16FF0 0062;0061 0334 20E6 16FF0 0062;0061 0334 20E6 16FF0 0062;0061 0334 20E6 16FF0 0062; # (a𖿰◌̴◌⃦b; a◌̴◌⃦𖿰b; a◌̴◌⃦𖿰b; a◌̴◌⃦𖿰b; a◌̴◌⃦𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING DOUBLE VERTICAL STROKE OVERLAY, LATIN SMALL LETTER B
+0061 20E6 16FF0 0334 0062;0061 20E6 0334 16FF0 0062;0061 20E6 0334 16FF0 0062;0061 20E6 0334 16FF0 0062;0061 20E6 0334 16FF0 0062; # (a◌⃦𖿰◌̴b; a◌⃦◌̴𖿰b; a◌⃦◌̴𖿰b; a◌⃦◌̴𖿰b; a◌⃦◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING DOUBLE VERTICAL STROKE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20E7 0062;00E0 05AE 20E7 0315 0062;0061 05AE 0300 20E7 0315 0062;00E0 05AE 20E7 0315 0062;0061 05AE 0300 20E7 0315 0062; # (a◌̕◌̀◌֮◌⃧b; à◌֮◌⃧◌̕b; a◌֮◌̀◌⃧◌̕b; à◌֮◌⃧◌̕b; a◌֮◌̀◌⃧◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ANNUITY SYMBOL, LATIN SMALL LETTER B
+0061 20E7 0315 0300 05AE 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062; # (a◌⃧◌̕◌̀◌֮b; a◌֮◌⃧◌̀◌̕b; a◌֮◌⃧◌̀◌̕b; a◌֮◌⃧◌̀◌̕b; a◌֮◌⃧◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ANNUITY SYMBOL, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 20E8 0062;0061 1DFA 0316 20E8 059A 0062;0061 1DFA 0316 20E8 059A 0062;0061 1DFA 0316 20E8 059A 0062;0061 1DFA 0316 20E8 059A 0062; # (a◌֚◌̖◌᷺◌⃨b; a◌᷺◌̖◌⃨◌֚b; a◌᷺◌̖◌⃨◌֚b; a◌᷺◌̖◌⃨◌֚b; a◌᷺◌̖◌⃨◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING TRIPLE UNDERDOT, LATIN SMALL LETTER B
+0061 20E8 059A 0316 1DFA 0062;0061 1DFA 20E8 0316 059A 0062;0061 1DFA 20E8 0316 059A 0062;0061 1DFA 20E8 0316 059A 0062;0061 1DFA 20E8 0316 059A 0062; # (a◌⃨◌֚◌̖◌᷺b; a◌᷺◌⃨◌̖◌֚b; a◌᷺◌⃨◌̖◌֚b; a◌᷺◌⃨◌̖◌֚b; a◌᷺◌⃨◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING TRIPLE UNDERDOT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20E9 0062;00E0 05AE 20E9 0315 0062;0061 05AE 0300 20E9 0315 0062;00E0 05AE 20E9 0315 0062;0061 05AE 0300 20E9 0315 0062; # (a◌̕◌̀◌֮◌⃩b; à◌֮◌⃩◌̕b; a◌֮◌̀◌⃩◌̕b; à◌֮◌⃩◌̕b; a◌֮◌̀◌⃩◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING WIDE BRIDGE ABOVE, LATIN SMALL LETTER B
+0061 20E9 0315 0300 05AE 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062; # (a◌⃩◌̕◌̀◌֮b; a◌֮◌⃩◌̀◌̕b; a◌֮◌⃩◌̀◌̕b; a◌֮◌⃩◌̀◌̕b; a◌֮◌⃩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING WIDE BRIDGE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 20EA 0062;0061 0334 20EA 16FF0 0062;0061 0334 20EA 16FF0 0062;0061 0334 20EA 16FF0 0062;0061 0334 20EA 16FF0 0062; # (a𖿰◌̴◌⃪b; a◌̴◌⃪𖿰b; a◌̴◌⃪𖿰b; a◌̴◌⃪𖿰b; a◌̴◌⃪𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING LEFTWARDS ARROW OVERLAY, LATIN SMALL LETTER B
+0061 20EA 16FF0 0334 0062;0061 20EA 0334 16FF0 0062;0061 20EA 0334 16FF0 0062;0061 20EA 0334 16FF0 0062;0061 20EA 0334 16FF0 0062; # (a◌⃪𖿰◌̴b; a◌⃪◌̴𖿰b; a◌⃪◌̴𖿰b; a◌⃪◌̴𖿰b; a◌⃪◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LEFTWARDS ARROW OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 20EB 0062;0061 0334 20EB 16FF0 0062;0061 0334 20EB 16FF0 0062;0061 0334 20EB 16FF0 0062;0061 0334 20EB 16FF0 0062; # (a𖿰◌̴◌⃫b; a◌̴◌⃫𖿰b; a◌̴◌⃫𖿰b; a◌̴◌⃫𖿰b; a◌̴◌⃫𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG DOUBLE SOLIDUS OVERLAY, LATIN SMALL LETTER B
+0061 20EB 16FF0 0334 0062;0061 20EB 0334 16FF0 0062;0061 20EB 0334 16FF0 0062;0061 20EB 0334 16FF0 0062;0061 20EB 0334 16FF0 0062; # (a◌⃫𖿰◌̴b; a◌⃫◌̴𖿰b; a◌⃫◌̴𖿰b; a◌⃫◌̴𖿰b; a◌⃫◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG DOUBLE SOLIDUS OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 20EC 0062;0061 1DFA 0316 20EC 059A 0062;0061 1DFA 0316 20EC 059A 0062;0061 1DFA 0316 20EC 059A 0062;0061 1DFA 0316 20EC 059A 0062; # (a◌֚◌̖◌᷺◌⃬b; a◌᷺◌̖◌⃬◌֚b; a◌᷺◌̖◌⃬◌֚b; a◌᷺◌̖◌⃬◌֚b; a◌᷺◌̖◌⃬◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS, LATIN SMALL LETTER B
+0061 20EC 059A 0316 1DFA 0062;0061 1DFA 20EC 0316 059A 0062;0061 1DFA 20EC 0316 059A 0062;0061 1DFA 20EC 0316 059A 0062;0061 1DFA 20EC 0316 059A 0062; # (a◌⃬◌֚◌̖◌᷺b; a◌᷺◌⃬◌̖◌֚b; a◌᷺◌⃬◌̖◌֚b; a◌᷺◌⃬◌̖◌֚b; a◌᷺◌⃬◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 20ED 0062;0061 1DFA 0316 20ED 059A 0062;0061 1DFA 0316 20ED 059A 0062;0061 1DFA 0316 20ED 059A 0062;0061 1DFA 0316 20ED 059A 0062; # (a◌֚◌̖◌᷺◌⃭b; a◌᷺◌̖◌⃭◌֚b; a◌᷺◌̖◌⃭◌֚b; a◌᷺◌̖◌⃭◌֚b; a◌᷺◌̖◌⃭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS, LATIN SMALL LETTER B
+0061 20ED 059A 0316 1DFA 0062;0061 1DFA 20ED 0316 059A 0062;0061 1DFA 20ED 0316 059A 0062;0061 1DFA 20ED 0316 059A 0062;0061 1DFA 20ED 0316 059A 0062; # (a◌⃭◌֚◌̖◌᷺b; a◌᷺◌⃭◌̖◌֚b; a◌᷺◌⃭◌̖◌֚b; a◌᷺◌⃭◌̖◌֚b; a◌᷺◌⃭◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 20EE 0062;0061 1DFA 0316 20EE 059A 0062;0061 1DFA 0316 20EE 059A 0062;0061 1DFA 0316 20EE 059A 0062;0061 1DFA 0316 20EE 059A 0062; # (a◌֚◌̖◌᷺◌⃮b; a◌᷺◌̖◌⃮◌֚b; a◌᷺◌̖◌⃮◌֚b; a◌᷺◌̖◌⃮◌֚b; a◌᷺◌̖◌⃮◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LEFT ARROW BELOW, LATIN SMALL LETTER B
+0061 20EE 059A 0316 1DFA 0062;0061 1DFA 20EE 0316 059A 0062;0061 1DFA 20EE 0316 059A 0062;0061 1DFA 20EE 0316 059A 0062;0061 1DFA 20EE 0316 059A 0062; # (a◌⃮◌֚◌̖◌᷺b; a◌᷺◌⃮◌̖◌֚b; a◌᷺◌⃮◌̖◌֚b; a◌᷺◌⃮◌̖◌֚b; a◌᷺◌⃮◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LEFT ARROW BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 20EF 0062;0061 1DFA 0316 20EF 059A 0062;0061 1DFA 0316 20EF 059A 0062;0061 1DFA 0316 20EF 059A 0062;0061 1DFA 0316 20EF 059A 0062; # (a◌֚◌̖◌᷺◌⃯b; a◌᷺◌̖◌⃯◌֚b; a◌᷺◌̖◌⃯◌֚b; a◌᷺◌̖◌⃯◌֚b; a◌᷺◌̖◌⃯◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING RIGHT ARROW BELOW, LATIN SMALL LETTER B
+0061 20EF 059A 0316 1DFA 0062;0061 1DFA 20EF 0316 059A 0062;0061 1DFA 20EF 0316 059A 0062;0061 1DFA 20EF 0316 059A 0062;0061 1DFA 20EF 0316 059A 0062; # (a◌⃯◌֚◌̖◌᷺b; a◌᷺◌⃯◌̖◌֚b; a◌᷺◌⃯◌̖◌֚b; a◌᷺◌⃯◌̖◌֚b; a◌᷺◌⃯◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING RIGHT ARROW BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 20F0 0062;00E0 05AE 20F0 0315 0062;0061 05AE 0300 20F0 0315 0062;00E0 05AE 20F0 0315 0062;0061 05AE 0300 20F0 0315 0062; # (a◌̕◌̀◌֮◌⃰b; à◌֮◌⃰◌̕b; a◌֮◌̀◌⃰◌̕b; à◌֮◌⃰◌̕b; a◌֮◌̀◌⃰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING ASTERISK ABOVE, LATIN SMALL LETTER B
+0061 20F0 0315 0300 05AE 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062; # (a◌⃰◌̕◌̀◌֮b; a◌֮◌⃰◌̀◌̕b; a◌֮◌⃰◌̀◌̕b; a◌֮◌⃰◌̀◌̕b; a◌֮◌⃰◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING ASTERISK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2CEF 0062;00E0 05AE 2CEF 0315 0062;0061 05AE 0300 2CEF 0315 0062;00E0 05AE 2CEF 0315 0062;0061 05AE 0300 2CEF 0315 0062; # (a◌̕◌̀◌֮◌⳯b; à◌֮◌⳯◌̕b; a◌֮◌̀◌⳯◌̕b; à◌֮◌⳯◌̕b; a◌֮◌̀◌⳯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COPTIC COMBINING NI ABOVE, LATIN SMALL LETTER B
+0061 2CEF 0315 0300 05AE 0062;0061 05AE 2CEF 0300 0315 0062;0061 05AE 2CEF 0300 0315 0062;0061 05AE 2CEF 0300 0315 0062;0061 05AE 2CEF 0300 0315 0062; # (a◌⳯◌̕◌̀◌֮b; a◌֮◌⳯◌̀◌̕b; a◌֮◌⳯◌̀◌̕b; a◌֮◌⳯◌̀◌̕b; a◌֮◌⳯◌̀◌̕b; ) LATIN SMALL LETTER A, COPTIC COMBINING NI ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2CF0 0062;00E0 05AE 2CF0 0315 0062;0061 05AE 0300 2CF0 0315 0062;00E0 05AE 2CF0 0315 0062;0061 05AE 0300 2CF0 0315 0062; # (a◌̕◌̀◌֮◌⳰b; à◌֮◌⳰◌̕b; a◌֮◌̀◌⳰◌̕b; à◌֮◌⳰◌̕b; a◌֮◌̀◌⳰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COPTIC COMBINING SPIRITUS ASPER, LATIN SMALL LETTER B
+0061 2CF0 0315 0300 05AE 0062;0061 05AE 2CF0 0300 0315 0062;0061 05AE 2CF0 0300 0315 0062;0061 05AE 2CF0 0300 0315 0062;0061 05AE 2CF0 0300 0315 0062; # (a◌⳰◌̕◌̀◌֮b; a◌֮◌⳰◌̀◌̕b; a◌֮◌⳰◌̀◌̕b; a◌֮◌⳰◌̀◌̕b; a◌֮◌⳰◌̀◌̕b; ) LATIN SMALL LETTER A, COPTIC COMBINING SPIRITUS ASPER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2CF1 0062;00E0 05AE 2CF1 0315 0062;0061 05AE 0300 2CF1 0315 0062;00E0 05AE 2CF1 0315 0062;0061 05AE 0300 2CF1 0315 0062; # (a◌̕◌̀◌֮◌⳱b; à◌֮◌⳱◌̕b; a◌֮◌̀◌⳱◌̕b; à◌֮◌⳱◌̕b; a◌֮◌̀◌⳱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COPTIC COMBINING SPIRITUS LENIS, LATIN SMALL LETTER B
+0061 2CF1 0315 0300 05AE 0062;0061 05AE 2CF1 0300 0315 0062;0061 05AE 2CF1 0300 0315 0062;0061 05AE 2CF1 0300 0315 0062;0061 05AE 2CF1 0300 0315 0062; # (a◌⳱◌̕◌̀◌֮b; a◌֮◌⳱◌̀◌̕b; a◌֮◌⳱◌̀◌̕b; a◌֮◌⳱◌̀◌̕b; a◌֮◌⳱◌̀◌̕b; ) LATIN SMALL LETTER A, COPTIC COMBINING SPIRITUS LENIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 2D7F 0062;0061 3099 094D 2D7F 05B0 0062;0061 3099 094D 2D7F 05B0 0062;0061 3099 094D 2D7F 05B0 0062;0061 3099 094D 2D7F 05B0 0062; # (a◌ְ◌्◌゙◌⵿b; a◌゙◌्◌⵿◌ְb; a◌゙◌्◌⵿◌ְb; a◌゙◌्◌⵿◌ְb; a◌゙◌्◌⵿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TIFINAGH CONSONANT JOINER, LATIN SMALL LETTER B
+0061 2D7F 05B0 094D 3099 0062;0061 3099 2D7F 094D 05B0 0062;0061 3099 2D7F 094D 05B0 0062;0061 3099 2D7F 094D 05B0 0062;0061 3099 2D7F 094D 05B0 0062; # (a◌⵿◌ְ◌्◌゙b; a◌゙◌⵿◌्◌ְb; a◌゙◌⵿◌्◌ְb; a◌゙◌⵿◌्◌ְb; a◌゙◌⵿◌्◌ְb; ) LATIN SMALL LETTER A, TIFINAGH CONSONANT JOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE0 0062;00E0 05AE 2DE0 0315 0062;0061 05AE 0300 2DE0 0315 0062;00E0 05AE 2DE0 0315 0062;0061 05AE 0300 2DE0 0315 0062; # (a◌̕◌̀◌֮◌ⷠb; à◌֮◌ⷠ◌̕b; a◌֮◌̀◌ⷠ◌̕b; à◌֮◌ⷠ◌̕b; a◌֮◌̀◌ⷠ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER BE, LATIN SMALL LETTER B
+0061 2DE0 0315 0300 05AE 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062; # (a◌ⷠ◌̕◌̀◌֮b; a◌֮◌ⷠ◌̀◌̕b; a◌֮◌ⷠ◌̀◌̕b; a◌֮◌ⷠ◌̀◌̕b; a◌֮◌ⷠ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER BE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE1 0062;00E0 05AE 2DE1 0315 0062;0061 05AE 0300 2DE1 0315 0062;00E0 05AE 2DE1 0315 0062;0061 05AE 0300 2DE1 0315 0062; # (a◌̕◌̀◌֮◌ⷡb; à◌֮◌ⷡ◌̕b; a◌֮◌̀◌ⷡ◌̕b; à◌֮◌ⷡ◌̕b; a◌֮◌̀◌ⷡ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER VE, LATIN SMALL LETTER B
+0061 2DE1 0315 0300 05AE 0062;0061 05AE 2DE1 0300 0315 0062;0061 05AE 2DE1 0300 0315 0062;0061 05AE 2DE1 0300 0315 0062;0061 05AE 2DE1 0300 0315 0062; # (a◌ⷡ◌̕◌̀◌֮b; a◌֮◌ⷡ◌̀◌̕b; a◌֮◌ⷡ◌̀◌̕b; a◌֮◌ⷡ◌̀◌̕b; a◌֮◌ⷡ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER VE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE2 0062;00E0 05AE 2DE2 0315 0062;0061 05AE 0300 2DE2 0315 0062;00E0 05AE 2DE2 0315 0062;0061 05AE 0300 2DE2 0315 0062; # (a◌̕◌̀◌֮◌ⷢb; à◌֮◌ⷢ◌̕b; a◌֮◌̀◌ⷢ◌̕b; à◌֮◌ⷢ◌̕b; a◌֮◌̀◌ⷢ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER GHE, LATIN SMALL LETTER B
+0061 2DE2 0315 0300 05AE 0062;0061 05AE 2DE2 0300 0315 0062;0061 05AE 2DE2 0300 0315 0062;0061 05AE 2DE2 0300 0315 0062;0061 05AE 2DE2 0300 0315 0062; # (a◌ⷢ◌̕◌̀◌֮b; a◌֮◌ⷢ◌̀◌̕b; a◌֮◌ⷢ◌̀◌̕b; a◌֮◌ⷢ◌̀◌̕b; a◌֮◌ⷢ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER GHE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE3 0062;00E0 05AE 2DE3 0315 0062;0061 05AE 0300 2DE3 0315 0062;00E0 05AE 2DE3 0315 0062;0061 05AE 0300 2DE3 0315 0062; # (a◌̕◌̀◌֮◌ⷣb; à◌֮◌ⷣ◌̕b; a◌֮◌̀◌ⷣ◌̕b; à◌֮◌ⷣ◌̕b; a◌֮◌̀◌ⷣ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER DE, LATIN SMALL LETTER B
+0061 2DE3 0315 0300 05AE 0062;0061 05AE 2DE3 0300 0315 0062;0061 05AE 2DE3 0300 0315 0062;0061 05AE 2DE3 0300 0315 0062;0061 05AE 2DE3 0300 0315 0062; # (a◌ⷣ◌̕◌̀◌֮b; a◌֮◌ⷣ◌̀◌̕b; a◌֮◌ⷣ◌̀◌̕b; a◌֮◌ⷣ◌̀◌̕b; a◌֮◌ⷣ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER DE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE4 0062;00E0 05AE 2DE4 0315 0062;0061 05AE 0300 2DE4 0315 0062;00E0 05AE 2DE4 0315 0062;0061 05AE 0300 2DE4 0315 0062; # (a◌̕◌̀◌֮◌ⷤb; à◌֮◌ⷤ◌̕b; a◌֮◌̀◌ⷤ◌̕b; à◌֮◌ⷤ◌̕b; a◌֮◌̀◌ⷤ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER ZHE, LATIN SMALL LETTER B
+0061 2DE4 0315 0300 05AE 0062;0061 05AE 2DE4 0300 0315 0062;0061 05AE 2DE4 0300 0315 0062;0061 05AE 2DE4 0300 0315 0062;0061 05AE 2DE4 0300 0315 0062; # (a◌ⷤ◌̕◌̀◌֮b; a◌֮◌ⷤ◌̀◌̕b; a◌֮◌ⷤ◌̀◌̕b; a◌֮◌ⷤ◌̀◌̕b; a◌֮◌ⷤ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER ZHE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE5 0062;00E0 05AE 2DE5 0315 0062;0061 05AE 0300 2DE5 0315 0062;00E0 05AE 2DE5 0315 0062;0061 05AE 0300 2DE5 0315 0062; # (a◌̕◌̀◌֮◌ⷥb; à◌֮◌ⷥ◌̕b; a◌֮◌̀◌ⷥ◌̕b; à◌֮◌ⷥ◌̕b; a◌֮◌̀◌ⷥ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER ZE, LATIN SMALL LETTER B
+0061 2DE5 0315 0300 05AE 0062;0061 05AE 2DE5 0300 0315 0062;0061 05AE 2DE5 0300 0315 0062;0061 05AE 2DE5 0300 0315 0062;0061 05AE 2DE5 0300 0315 0062; # (a◌ⷥ◌̕◌̀◌֮b; a◌֮◌ⷥ◌̀◌̕b; a◌֮◌ⷥ◌̀◌̕b; a◌֮◌ⷥ◌̀◌̕b; a◌֮◌ⷥ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER ZE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE6 0062;00E0 05AE 2DE6 0315 0062;0061 05AE 0300 2DE6 0315 0062;00E0 05AE 2DE6 0315 0062;0061 05AE 0300 2DE6 0315 0062; # (a◌̕◌̀◌֮◌ⷦb; à◌֮◌ⷦ◌̕b; a◌֮◌̀◌ⷦ◌̕b; à◌֮◌ⷦ◌̕b; a◌֮◌̀◌ⷦ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER KA, LATIN SMALL LETTER B
+0061 2DE6 0315 0300 05AE 0062;0061 05AE 2DE6 0300 0315 0062;0061 05AE 2DE6 0300 0315 0062;0061 05AE 2DE6 0300 0315 0062;0061 05AE 2DE6 0300 0315 0062; # (a◌ⷦ◌̕◌̀◌֮b; a◌֮◌ⷦ◌̀◌̕b; a◌֮◌ⷦ◌̀◌̕b; a◌֮◌ⷦ◌̀◌̕b; a◌֮◌ⷦ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER KA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE7 0062;00E0 05AE 2DE7 0315 0062;0061 05AE 0300 2DE7 0315 0062;00E0 05AE 2DE7 0315 0062;0061 05AE 0300 2DE7 0315 0062; # (a◌̕◌̀◌֮◌ⷧb; à◌֮◌ⷧ◌̕b; a◌֮◌̀◌ⷧ◌̕b; à◌֮◌ⷧ◌̕b; a◌֮◌̀◌ⷧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER EL, LATIN SMALL LETTER B
+0061 2DE7 0315 0300 05AE 0062;0061 05AE 2DE7 0300 0315 0062;0061 05AE 2DE7 0300 0315 0062;0061 05AE 2DE7 0300 0315 0062;0061 05AE 2DE7 0300 0315 0062; # (a◌ⷧ◌̕◌̀◌֮b; a◌֮◌ⷧ◌̀◌̕b; a◌֮◌ⷧ◌̀◌̕b; a◌֮◌ⷧ◌̀◌̕b; a◌֮◌ⷧ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER EL, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE8 0062;00E0 05AE 2DE8 0315 0062;0061 05AE 0300 2DE8 0315 0062;00E0 05AE 2DE8 0315 0062;0061 05AE 0300 2DE8 0315 0062; # (a◌̕◌̀◌֮◌ⷨb; à◌֮◌ⷨ◌̕b; a◌֮◌̀◌ⷨ◌̕b; à◌֮◌ⷨ◌̕b; a◌֮◌̀◌ⷨ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER EM, LATIN SMALL LETTER B
+0061 2DE8 0315 0300 05AE 0062;0061 05AE 2DE8 0300 0315 0062;0061 05AE 2DE8 0300 0315 0062;0061 05AE 2DE8 0300 0315 0062;0061 05AE 2DE8 0300 0315 0062; # (a◌ⷨ◌̕◌̀◌֮b; a◌֮◌ⷨ◌̀◌̕b; a◌֮◌ⷨ◌̀◌̕b; a◌֮◌ⷨ◌̀◌̕b; a◌֮◌ⷨ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER EM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DE9 0062;00E0 05AE 2DE9 0315 0062;0061 05AE 0300 2DE9 0315 0062;00E0 05AE 2DE9 0315 0062;0061 05AE 0300 2DE9 0315 0062; # (a◌̕◌̀◌֮◌ⷩb; à◌֮◌ⷩ◌̕b; a◌֮◌̀◌ⷩ◌̕b; à◌֮◌ⷩ◌̕b; a◌֮◌̀◌ⷩ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER EN, LATIN SMALL LETTER B
+0061 2DE9 0315 0300 05AE 0062;0061 05AE 2DE9 0300 0315 0062;0061 05AE 2DE9 0300 0315 0062;0061 05AE 2DE9 0300 0315 0062;0061 05AE 2DE9 0300 0315 0062; # (a◌ⷩ◌̕◌̀◌֮b; a◌֮◌ⷩ◌̀◌̕b; a◌֮◌ⷩ◌̀◌̕b; a◌֮◌ⷩ◌̀◌̕b; a◌֮◌ⷩ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER EN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DEA 0062;00E0 05AE 2DEA 0315 0062;0061 05AE 0300 2DEA 0315 0062;00E0 05AE 2DEA 0315 0062;0061 05AE 0300 2DEA 0315 0062; # (a◌̕◌̀◌֮◌ⷪb; à◌֮◌ⷪ◌̕b; a◌֮◌̀◌ⷪ◌̕b; à◌֮◌ⷪ◌̕b; a◌֮◌̀◌ⷪ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER O, LATIN SMALL LETTER B
+0061 2DEA 0315 0300 05AE 0062;0061 05AE 2DEA 0300 0315 0062;0061 05AE 2DEA 0300 0315 0062;0061 05AE 2DEA 0300 0315 0062;0061 05AE 2DEA 0300 0315 0062; # (a◌ⷪ◌̕◌̀◌֮b; a◌֮◌ⷪ◌̀◌̕b; a◌֮◌ⷪ◌̀◌̕b; a◌֮◌ⷪ◌̀◌̕b; a◌֮◌ⷪ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER O, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DEB 0062;00E0 05AE 2DEB 0315 0062;0061 05AE 0300 2DEB 0315 0062;00E0 05AE 2DEB 0315 0062;0061 05AE 0300 2DEB 0315 0062; # (a◌̕◌̀◌֮◌ⷫb; à◌֮◌ⷫ◌̕b; a◌֮◌̀◌ⷫ◌̕b; à◌֮◌ⷫ◌̕b; a◌֮◌̀◌ⷫ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER PE, LATIN SMALL LETTER B
+0061 2DEB 0315 0300 05AE 0062;0061 05AE 2DEB 0300 0315 0062;0061 05AE 2DEB 0300 0315 0062;0061 05AE 2DEB 0300 0315 0062;0061 05AE 2DEB 0300 0315 0062; # (a◌ⷫ◌̕◌̀◌֮b; a◌֮◌ⷫ◌̀◌̕b; a◌֮◌ⷫ◌̀◌̕b; a◌֮◌ⷫ◌̀◌̕b; a◌֮◌ⷫ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER PE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DEC 0062;00E0 05AE 2DEC 0315 0062;0061 05AE 0300 2DEC 0315 0062;00E0 05AE 2DEC 0315 0062;0061 05AE 0300 2DEC 0315 0062; # (a◌̕◌̀◌֮◌ⷬb; à◌֮◌ⷬ◌̕b; a◌֮◌̀◌ⷬ◌̕b; à◌֮◌ⷬ◌̕b; a◌֮◌̀◌ⷬ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER ER, LATIN SMALL LETTER B
+0061 2DEC 0315 0300 05AE 0062;0061 05AE 2DEC 0300 0315 0062;0061 05AE 2DEC 0300 0315 0062;0061 05AE 2DEC 0300 0315 0062;0061 05AE 2DEC 0300 0315 0062; # (a◌ⷬ◌̕◌̀◌֮b; a◌֮◌ⷬ◌̀◌̕b; a◌֮◌ⷬ◌̀◌̕b; a◌֮◌ⷬ◌̀◌̕b; a◌֮◌ⷬ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER ER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DED 0062;00E0 05AE 2DED 0315 0062;0061 05AE 0300 2DED 0315 0062;00E0 05AE 2DED 0315 0062;0061 05AE 0300 2DED 0315 0062; # (a◌̕◌̀◌֮◌ⷭb; à◌֮◌ⷭ◌̕b; a◌֮◌̀◌ⷭ◌̕b; à◌֮◌ⷭ◌̕b; a◌֮◌̀◌ⷭ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER ES, LATIN SMALL LETTER B
+0061 2DED 0315 0300 05AE 0062;0061 05AE 2DED 0300 0315 0062;0061 05AE 2DED 0300 0315 0062;0061 05AE 2DED 0300 0315 0062;0061 05AE 2DED 0300 0315 0062; # (a◌ⷭ◌̕◌̀◌֮b; a◌֮◌ⷭ◌̀◌̕b; a◌֮◌ⷭ◌̀◌̕b; a◌֮◌ⷭ◌̀◌̕b; a◌֮◌ⷭ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER ES, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DEE 0062;00E0 05AE 2DEE 0315 0062;0061 05AE 0300 2DEE 0315 0062;00E0 05AE 2DEE 0315 0062;0061 05AE 0300 2DEE 0315 0062; # (a◌̕◌̀◌֮◌ⷮb; à◌֮◌ⷮ◌̕b; a◌֮◌̀◌ⷮ◌̕b; à◌֮◌ⷮ◌̕b; a◌֮◌̀◌ⷮ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER TE, LATIN SMALL LETTER B
+0061 2DEE 0315 0300 05AE 0062;0061 05AE 2DEE 0300 0315 0062;0061 05AE 2DEE 0300 0315 0062;0061 05AE 2DEE 0300 0315 0062;0061 05AE 2DEE 0300 0315 0062; # (a◌ⷮ◌̕◌̀◌֮b; a◌֮◌ⷮ◌̀◌̕b; a◌֮◌ⷮ◌̀◌̕b; a◌֮◌ⷮ◌̀◌̕b; a◌֮◌ⷮ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER TE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DEF 0062;00E0 05AE 2DEF 0315 0062;0061 05AE 0300 2DEF 0315 0062;00E0 05AE 2DEF 0315 0062;0061 05AE 0300 2DEF 0315 0062; # (a◌̕◌̀◌֮◌ⷯb; à◌֮◌ⷯ◌̕b; a◌֮◌̀◌ⷯ◌̕b; à◌֮◌ⷯ◌̕b; a◌֮◌̀◌ⷯ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER HA, LATIN SMALL LETTER B
+0061 2DEF 0315 0300 05AE 0062;0061 05AE 2DEF 0300 0315 0062;0061 05AE 2DEF 0300 0315 0062;0061 05AE 2DEF 0300 0315 0062;0061 05AE 2DEF 0300 0315 0062; # (a◌ⷯ◌̕◌̀◌֮b; a◌֮◌ⷯ◌̀◌̕b; a◌֮◌ⷯ◌̀◌̕b; a◌֮◌ⷯ◌̀◌̕b; a◌֮◌ⷯ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER HA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF0 0062;00E0 05AE 2DF0 0315 0062;0061 05AE 0300 2DF0 0315 0062;00E0 05AE 2DF0 0315 0062;0061 05AE 0300 2DF0 0315 0062; # (a◌̕◌̀◌֮◌ⷰb; à◌֮◌ⷰ◌̕b; a◌֮◌̀◌ⷰ◌̕b; à◌֮◌ⷰ◌̕b; a◌֮◌̀◌ⷰ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER TSE, LATIN SMALL LETTER B
+0061 2DF0 0315 0300 05AE 0062;0061 05AE 2DF0 0300 0315 0062;0061 05AE 2DF0 0300 0315 0062;0061 05AE 2DF0 0300 0315 0062;0061 05AE 2DF0 0300 0315 0062; # (a◌ⷰ◌̕◌̀◌֮b; a◌֮◌ⷰ◌̀◌̕b; a◌֮◌ⷰ◌̀◌̕b; a◌֮◌ⷰ◌̀◌̕b; a◌֮◌ⷰ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER TSE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF1 0062;00E0 05AE 2DF1 0315 0062;0061 05AE 0300 2DF1 0315 0062;00E0 05AE 2DF1 0315 0062;0061 05AE 0300 2DF1 0315 0062; # (a◌̕◌̀◌֮◌ⷱb; à◌֮◌ⷱ◌̕b; a◌֮◌̀◌ⷱ◌̕b; à◌֮◌ⷱ◌̕b; a◌֮◌̀◌ⷱ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER CHE, LATIN SMALL LETTER B
+0061 2DF1 0315 0300 05AE 0062;0061 05AE 2DF1 0300 0315 0062;0061 05AE 2DF1 0300 0315 0062;0061 05AE 2DF1 0300 0315 0062;0061 05AE 2DF1 0300 0315 0062; # (a◌ⷱ◌̕◌̀◌֮b; a◌֮◌ⷱ◌̀◌̕b; a◌֮◌ⷱ◌̀◌̕b; a◌֮◌ⷱ◌̀◌̕b; a◌֮◌ⷱ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER CHE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF2 0062;00E0 05AE 2DF2 0315 0062;0061 05AE 0300 2DF2 0315 0062;00E0 05AE 2DF2 0315 0062;0061 05AE 0300 2DF2 0315 0062; # (a◌̕◌̀◌֮◌ⷲb; à◌֮◌ⷲ◌̕b; a◌֮◌̀◌ⷲ◌̕b; à◌֮◌ⷲ◌̕b; a◌֮◌̀◌ⷲ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER SHA, LATIN SMALL LETTER B
+0061 2DF2 0315 0300 05AE 0062;0061 05AE 2DF2 0300 0315 0062;0061 05AE 2DF2 0300 0315 0062;0061 05AE 2DF2 0300 0315 0062;0061 05AE 2DF2 0300 0315 0062; # (a◌ⷲ◌̕◌̀◌֮b; a◌֮◌ⷲ◌̀◌̕b; a◌֮◌ⷲ◌̀◌̕b; a◌֮◌ⷲ◌̀◌̕b; a◌֮◌ⷲ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER SHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF3 0062;00E0 05AE 2DF3 0315 0062;0061 05AE 0300 2DF3 0315 0062;00E0 05AE 2DF3 0315 0062;0061 05AE 0300 2DF3 0315 0062; # (a◌̕◌̀◌֮◌ⷳb; à◌֮◌ⷳ◌̕b; a◌֮◌̀◌ⷳ◌̕b; à◌֮◌ⷳ◌̕b; a◌֮◌̀◌ⷳ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER SHCHA, LATIN SMALL LETTER B
+0061 2DF3 0315 0300 05AE 0062;0061 05AE 2DF3 0300 0315 0062;0061 05AE 2DF3 0300 0315 0062;0061 05AE 2DF3 0300 0315 0062;0061 05AE 2DF3 0300 0315 0062; # (a◌ⷳ◌̕◌̀◌֮b; a◌֮◌ⷳ◌̀◌̕b; a◌֮◌ⷳ◌̀◌̕b; a◌֮◌ⷳ◌̀◌̕b; a◌֮◌ⷳ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER SHCHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF4 0062;00E0 05AE 2DF4 0315 0062;0061 05AE 0300 2DF4 0315 0062;00E0 05AE 2DF4 0315 0062;0061 05AE 0300 2DF4 0315 0062; # (a◌̕◌̀◌֮◌ⷴb; à◌֮◌ⷴ◌̕b; a◌֮◌̀◌ⷴ◌̕b; à◌֮◌ⷴ◌̕b; a◌֮◌̀◌ⷴ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER FITA, LATIN SMALL LETTER B
+0061 2DF4 0315 0300 05AE 0062;0061 05AE 2DF4 0300 0315 0062;0061 05AE 2DF4 0300 0315 0062;0061 05AE 2DF4 0300 0315 0062;0061 05AE 2DF4 0300 0315 0062; # (a◌ⷴ◌̕◌̀◌֮b; a◌֮◌ⷴ◌̀◌̕b; a◌֮◌ⷴ◌̀◌̕b; a◌֮◌ⷴ◌̀◌̕b; a◌֮◌ⷴ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER FITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF5 0062;00E0 05AE 2DF5 0315 0062;0061 05AE 0300 2DF5 0315 0062;00E0 05AE 2DF5 0315 0062;0061 05AE 0300 2DF5 0315 0062; # (a◌̕◌̀◌֮◌ⷵb; à◌֮◌ⷵ◌̕b; a◌֮◌̀◌ⷵ◌̕b; à◌֮◌ⷵ◌̕b; a◌֮◌̀◌ⷵ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER ES-TE, LATIN SMALL LETTER B
+0061 2DF5 0315 0300 05AE 0062;0061 05AE 2DF5 0300 0315 0062;0061 05AE 2DF5 0300 0315 0062;0061 05AE 2DF5 0300 0315 0062;0061 05AE 2DF5 0300 0315 0062; # (a◌ⷵ◌̕◌̀◌֮b; a◌֮◌ⷵ◌̀◌̕b; a◌֮◌ⷵ◌̀◌̕b; a◌֮◌ⷵ◌̀◌̕b; a◌֮◌ⷵ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER ES-TE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF6 0062;00E0 05AE 2DF6 0315 0062;0061 05AE 0300 2DF6 0315 0062;00E0 05AE 2DF6 0315 0062;0061 05AE 0300 2DF6 0315 0062; # (a◌̕◌̀◌֮◌ⷶb; à◌֮◌ⷶ◌̕b; a◌֮◌̀◌ⷶ◌̕b; à◌֮◌ⷶ◌̕b; a◌֮◌̀◌ⷶ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER A, LATIN SMALL LETTER B
+0061 2DF6 0315 0300 05AE 0062;0061 05AE 2DF6 0300 0315 0062;0061 05AE 2DF6 0300 0315 0062;0061 05AE 2DF6 0300 0315 0062;0061 05AE 2DF6 0300 0315 0062; # (a◌ⷶ◌̕◌̀◌֮b; a◌֮◌ⷶ◌̀◌̕b; a◌֮◌ⷶ◌̀◌̕b; a◌֮◌ⷶ◌̀◌̕b; a◌֮◌ⷶ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF7 0062;00E0 05AE 2DF7 0315 0062;0061 05AE 0300 2DF7 0315 0062;00E0 05AE 2DF7 0315 0062;0061 05AE 0300 2DF7 0315 0062; # (a◌̕◌̀◌֮◌ⷷb; à◌֮◌ⷷ◌̕b; a◌֮◌̀◌ⷷ◌̕b; à◌֮◌ⷷ◌̕b; a◌֮◌̀◌ⷷ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER IE, LATIN SMALL LETTER B
+0061 2DF7 0315 0300 05AE 0062;0061 05AE 2DF7 0300 0315 0062;0061 05AE 2DF7 0300 0315 0062;0061 05AE 2DF7 0300 0315 0062;0061 05AE 2DF7 0300 0315 0062; # (a◌ⷷ◌̕◌̀◌֮b; a◌֮◌ⷷ◌̀◌̕b; a◌֮◌ⷷ◌̀◌̕b; a◌֮◌ⷷ◌̀◌̕b; a◌֮◌ⷷ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER IE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF8 0062;00E0 05AE 2DF8 0315 0062;0061 05AE 0300 2DF8 0315 0062;00E0 05AE 2DF8 0315 0062;0061 05AE 0300 2DF8 0315 0062; # (a◌̕◌̀◌֮◌ⷸb; à◌֮◌ⷸ◌̕b; a◌֮◌̀◌ⷸ◌̕b; à◌֮◌ⷸ◌̕b; a◌֮◌̀◌ⷸ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER DJERV, LATIN SMALL LETTER B
+0061 2DF8 0315 0300 05AE 0062;0061 05AE 2DF8 0300 0315 0062;0061 05AE 2DF8 0300 0315 0062;0061 05AE 2DF8 0300 0315 0062;0061 05AE 2DF8 0300 0315 0062; # (a◌ⷸ◌̕◌̀◌֮b; a◌֮◌ⷸ◌̀◌̕b; a◌֮◌ⷸ◌̀◌̕b; a◌֮◌ⷸ◌̀◌̕b; a◌֮◌ⷸ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER DJERV, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DF9 0062;00E0 05AE 2DF9 0315 0062;0061 05AE 0300 2DF9 0315 0062;00E0 05AE 2DF9 0315 0062;0061 05AE 0300 2DF9 0315 0062; # (a◌̕◌̀◌֮◌ⷹb; à◌֮◌ⷹ◌̕b; a◌֮◌̀◌ⷹ◌̕b; à◌֮◌ⷹ◌̕b; a◌֮◌̀◌ⷹ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER MONOGRAPH UK, LATIN SMALL LETTER B
+0061 2DF9 0315 0300 05AE 0062;0061 05AE 2DF9 0300 0315 0062;0061 05AE 2DF9 0300 0315 0062;0061 05AE 2DF9 0300 0315 0062;0061 05AE 2DF9 0300 0315 0062; # (a◌ⷹ◌̕◌̀◌֮b; a◌֮◌ⷹ◌̀◌̕b; a◌֮◌ⷹ◌̀◌̕b; a◌֮◌ⷹ◌̀◌̕b; a◌֮◌ⷹ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER MONOGRAPH UK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DFA 0062;00E0 05AE 2DFA 0315 0062;0061 05AE 0300 2DFA 0315 0062;00E0 05AE 2DFA 0315 0062;0061 05AE 0300 2DFA 0315 0062; # (a◌̕◌̀◌֮◌ⷺb; à◌֮◌ⷺ◌̕b; a◌֮◌̀◌ⷺ◌̕b; à◌֮◌ⷺ◌̕b; a◌֮◌̀◌ⷺ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER YAT, LATIN SMALL LETTER B
+0061 2DFA 0315 0300 05AE 0062;0061 05AE 2DFA 0300 0315 0062;0061 05AE 2DFA 0300 0315 0062;0061 05AE 2DFA 0300 0315 0062;0061 05AE 2DFA 0300 0315 0062; # (a◌ⷺ◌̕◌̀◌֮b; a◌֮◌ⷺ◌̀◌̕b; a◌֮◌ⷺ◌̀◌̕b; a◌֮◌ⷺ◌̀◌̕b; a◌֮◌ⷺ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER YAT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DFB 0062;00E0 05AE 2DFB 0315 0062;0061 05AE 0300 2DFB 0315 0062;00E0 05AE 2DFB 0315 0062;0061 05AE 0300 2DFB 0315 0062; # (a◌̕◌̀◌֮◌ⷻb; à◌֮◌ⷻ◌̕b; a◌֮◌̀◌ⷻ◌̕b; à◌֮◌ⷻ◌̕b; a◌֮◌̀◌ⷻ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER YU, LATIN SMALL LETTER B
+0061 2DFB 0315 0300 05AE 0062;0061 05AE 2DFB 0300 0315 0062;0061 05AE 2DFB 0300 0315 0062;0061 05AE 2DFB 0300 0315 0062;0061 05AE 2DFB 0300 0315 0062; # (a◌ⷻ◌̕◌̀◌֮b; a◌֮◌ⷻ◌̀◌̕b; a◌֮◌ⷻ◌̀◌̕b; a◌֮◌ⷻ◌̀◌̕b; a◌֮◌ⷻ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER YU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DFC 0062;00E0 05AE 2DFC 0315 0062;0061 05AE 0300 2DFC 0315 0062;00E0 05AE 2DFC 0315 0062;0061 05AE 0300 2DFC 0315 0062; # (a◌̕◌̀◌֮◌ⷼb; à◌֮◌ⷼ◌̕b; a◌֮◌̀◌ⷼ◌̕b; à◌֮◌ⷼ◌̕b; a◌֮◌̀◌ⷼ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER IOTIFIED A, LATIN SMALL LETTER B
+0061 2DFC 0315 0300 05AE 0062;0061 05AE 2DFC 0300 0315 0062;0061 05AE 2DFC 0300 0315 0062;0061 05AE 2DFC 0300 0315 0062;0061 05AE 2DFC 0300 0315 0062; # (a◌ⷼ◌̕◌̀◌֮b; a◌֮◌ⷼ◌̀◌̕b; a◌֮◌ⷼ◌̀◌̕b; a◌֮◌ⷼ◌̀◌̕b; a◌֮◌ⷼ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER IOTIFIED A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DFD 0062;00E0 05AE 2DFD 0315 0062;0061 05AE 0300 2DFD 0315 0062;00E0 05AE 2DFD 0315 0062;0061 05AE 0300 2DFD 0315 0062; # (a◌̕◌̀◌֮◌ⷽb; à◌֮◌ⷽ◌̕b; a◌֮◌̀◌ⷽ◌̕b; à◌֮◌ⷽ◌̕b; a◌֮◌̀◌ⷽ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER LITTLE YUS, LATIN SMALL LETTER B
+0061 2DFD 0315 0300 05AE 0062;0061 05AE 2DFD 0300 0315 0062;0061 05AE 2DFD 0300 0315 0062;0061 05AE 2DFD 0300 0315 0062;0061 05AE 2DFD 0300 0315 0062; # (a◌ⷽ◌̕◌̀◌֮b; a◌֮◌ⷽ◌̀◌̕b; a◌֮◌ⷽ◌̀◌̕b; a◌֮◌ⷽ◌̀◌̕b; a◌֮◌ⷽ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER LITTLE YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DFE 0062;00E0 05AE 2DFE 0315 0062;0061 05AE 0300 2DFE 0315 0062;00E0 05AE 2DFE 0315 0062;0061 05AE 0300 2DFE 0315 0062; # (a◌̕◌̀◌֮◌ⷾb; à◌֮◌ⷾ◌̕b; a◌֮◌̀◌ⷾ◌̕b; à◌֮◌ⷾ◌̕b; a◌֮◌̀◌ⷾ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER BIG YUS, LATIN SMALL LETTER B
+0061 2DFE 0315 0300 05AE 0062;0061 05AE 2DFE 0300 0315 0062;0061 05AE 2DFE 0300 0315 0062;0061 05AE 2DFE 0300 0315 0062;0061 05AE 2DFE 0300 0315 0062; # (a◌ⷾ◌̕◌̀◌֮b; a◌֮◌ⷾ◌̀◌̕b; a◌֮◌ⷾ◌̀◌̕b; a◌֮◌ⷾ◌̀◌̕b; a◌֮◌ⷾ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 2DFF 0062;00E0 05AE 2DFF 0315 0062;0061 05AE 0300 2DFF 0315 0062;00E0 05AE 2DFF 0315 0062;0061 05AE 0300 2DFF 0315 0062; # (a◌̕◌̀◌֮◌ⷿb; à◌֮◌ⷿ◌̕b; a◌֮◌̀◌ⷿ◌̕b; à◌֮◌ⷿ◌̕b; a◌֮◌̀◌ⷿ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER IOTIFIED BIG YUS, LATIN SMALL LETTER B
+0061 2DFF 0315 0300 05AE 0062;0061 05AE 2DFF 0300 0315 0062;0061 05AE 2DFF 0300 0315 0062;0061 05AE 2DFF 0300 0315 0062;0061 05AE 2DFF 0300 0315 0062; # (a◌ⷿ◌̕◌̀◌֮b; a◌֮◌ⷿ◌̀◌̕b; a◌֮◌ⷿ◌̀◌̕b; a◌֮◌ⷿ◌̀◌̕b; a◌֮◌ⷿ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER IOTIFIED BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0316 1DFA 031B 302A 0062;0061 031B 1DFA 302A 0316 0062;0061 031B 1DFA 302A 0316 0062;0061 031B 1DFA 302A 0316 0062;0061 031B 1DFA 302A 0316 0062; # (a◌̖◌᷺◌̛◌〪b; a◌̛◌᷺◌〪◌̖b; a◌̛◌᷺◌〪◌̖b; a◌̛◌᷺◌〪◌̖b; a◌̛◌᷺◌〪◌̖b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING HORN, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 302A 0316 1DFA 031B 0062;0061 031B 302A 1DFA 0316 0062;0061 031B 302A 1DFA 0316 0062;0061 031B 302A 1DFA 0316 0062;0061 031B 302A 1DFA 0316 0062; # (a◌〪◌̖◌᷺◌̛b; a◌̛◌〪◌᷺◌̖b; a◌̛◌〪◌᷺◌̖b; a◌̛◌〪◌᷺◌̖b; a◌̛◌〪◌᷺◌̖b; ) LATIN SMALL LETTER A, IDEOGRAPHIC LEVEL TONE MARK, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING HORN, LATIN SMALL LETTER B
+0061 0300 05AE 1D16D 302B 0062;00E0 1D16D 05AE 302B 0062;0061 1D16D 05AE 302B 0300 0062;00E0 1D16D 05AE 302B 0062;0061 1D16D 05AE 302B 0300 0062; # (a◌̀◌𝅭֮◌〫b; à𝅭◌֮◌〫b; a𝅭◌֮◌〫◌̀b; à𝅭◌֮◌〫b; a𝅭◌֮◌〫◌̀b; ) LATIN SMALL LETTER A, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, IDEOGRAPHIC RISING TONE MARK, LATIN SMALL LETTER B
+0061 302B 0300 05AE 1D16D 0062;00E0 1D16D 302B 05AE 0062;0061 1D16D 302B 05AE 0300 0062;00E0 1D16D 302B 05AE 0062;0061 1D16D 302B 05AE 0300 0062; # (a◌〫◌̀◌𝅭֮b; à𝅭◌〫◌֮b; a𝅭◌〫◌֮◌̀b; à𝅭◌〫◌֮b; a𝅭◌〫◌֮◌̀b; ) LATIN SMALL LETTER A, IDEOGRAPHIC RISING TONE MARK, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL LETTER B
+0061 035C 0315 0300 302C 0062;00E0 0315 302C 035C 0062;0061 0300 0315 302C 035C 0062;00E0 0315 302C 035C 0062;0061 0300 0315 302C 035C 0062; # (a◌͜◌̕◌̀◌〬b; à◌̕◌〬◌͜b; a◌̀◌̕◌〬◌͜b; à◌̕◌〬◌͜b; a◌̀◌̕◌〬◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, IDEOGRAPHIC DEPARTING TONE MARK, LATIN SMALL LETTER B
+0061 302C 035C 0315 0300 0062;00E0 302C 0315 035C 0062;0061 0300 302C 0315 035C 0062;00E0 302C 0315 035C 0062;0061 0300 302C 0315 035C 0062; # (a◌〬◌͜◌̕◌̀b; à◌〬◌̕◌͜b; a◌̀◌〬◌̕◌͜b; à◌〬◌̕◌͜b; a◌̀◌〬◌̕◌͜b; ) LATIN SMALL LETTER A, IDEOGRAPHIC DEPARTING TONE MARK, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 302E 059A 0316 302D 0062;0061 0316 059A 302D 302E 0062;0061 0316 059A 302D 302E 0062;0061 0316 059A 302D 302E 0062;0061 0316 059A 302D 302E 0062; # (a〮◌֚◌̖◌〭b; a◌̖◌֚◌〭〮b; a◌̖◌֚◌〭〮b; a◌̖◌֚◌〭〮b; a◌̖◌֚◌〭〮b; ) LATIN SMALL LETTER A, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC ENTERING TONE MARK, LATIN SMALL LETTER B
+0061 302D 302E 059A 0316 0062;0061 0316 302D 059A 302E 0062;0061 0316 302D 059A 302E 0062;0061 0316 302D 059A 302E 0062;0061 0316 302D 059A 302E 0062; # (a◌〭〮◌֚◌̖b; a◌̖◌〭◌֚〮b; a◌̖◌〭◌֚〮b; a◌̖◌〭◌֚〮b; a◌̖◌〭◌֚〮b; ) LATIN SMALL LETTER A, IDEOGRAPHIC ENTERING TONE MARK, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, LATIN SMALL LETTER B
+0061 1D16D 302E 059A 302E 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062; # (a〮𝅭◌֚〮b; a◌֚〮〮𝅭b; a◌֚〮〮𝅭b; a◌֚〮〮𝅭b; a◌֚〮〮𝅭b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, HANGUL SINGLE DOT TONE MARK, LATIN SMALL LETTER B
+0061 302E 1D16D 302E 059A 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062; # (a〮〮𝅭◌֚b; a◌֚〮〮𝅭b; a◌֚〮〮𝅭b; a◌֚〮〮𝅭b; a◌֚〮〮𝅭b; ) LATIN SMALL LETTER A, HANGUL SINGLE DOT TONE MARK, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, LATIN SMALL LETTER B
+0061 1D16D 302E 059A 302F 0062;0061 059A 302E 302F 1D16D 0062;0061 059A 302E 302F 1D16D 0062;0061 059A 302E 302F 1D16D 0062;0061 059A 302E 302F 1D16D 0062; # (a〮𝅭◌֚〯b; a◌֚〮〯𝅭b; a◌֚〮〯𝅭b; a◌֚〮〯𝅭b; a◌֚〮〯𝅭b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, HANGUL DOUBLE DOT TONE MARK, LATIN SMALL LETTER B
+0061 302F 1D16D 302E 059A 0062;0061 059A 302F 302E 1D16D 0062;0061 059A 302F 302E 1D16D 0062;0061 059A 302F 302E 1D16D 0062;0061 059A 302F 302E 1D16D 0062; # (a〯〮𝅭◌֚b; a◌֚〯〮𝅭b; a◌֚〯〮𝅭b; a◌֚〯〮𝅭b; a◌֚〯〮𝅭b; ) LATIN SMALL LETTER A, HANGUL DOUBLE DOT TONE MARK, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, HEBREW ACCENT YETIV, LATIN SMALL LETTER B
+0061 094D 3099 093C 3099 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062; # (a◌्◌゙◌़◌゙b; a◌़◌゙◌゙◌्b; a◌़◌゙◌゙◌्b; a◌़◌゙◌゙◌्b; a◌़◌゙◌゙◌्b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 094D 3099 093C 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062; # (a◌゙◌्◌゙◌़b; a◌़◌゙◌゙◌्b; a◌़◌゙◌゙◌्b; a◌़◌゙◌゙◌्b; a◌़◌゙◌゙◌्b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, LATIN SMALL LETTER B
+0061 094D 3099 093C 309A 0062;0061 093C 3099 309A 094D 0062;0061 093C 3099 309A 094D 0062;0061 093C 3099 309A 094D 0062;0061 093C 3099 309A 094D 0062; # (a◌्◌゙◌़◌゚b; a◌़◌゙◌゚◌्b; a◌़◌゙◌゚◌्b; a◌़◌゙◌゚◌्b; a◌़◌゙◌゚◌्b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 309A 094D 3099 093C 0062;0061 093C 309A 3099 094D 0062;0061 093C 309A 3099 094D 0062;0061 093C 309A 3099 094D 0062;0061 093C 309A 3099 094D 0062; # (a◌゚◌्◌゙◌़b; a◌़◌゚◌゙◌्b; a◌़◌゚◌゙◌्b; a◌़◌゚◌゙◌्b; a◌़◌゚◌゙◌्b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, LATIN SMALL LETTER B
+0061 0315 0300 05AE A66F 0062;00E0 05AE A66F 0315 0062;0061 05AE 0300 A66F 0315 0062;00E0 05AE A66F 0315 0062;0061 05AE 0300 A66F 0315 0062; # (a◌̕◌̀◌֮◌꙯b; à◌֮◌꙯◌̕b; a◌֮◌̀◌꙯◌̕b; à◌֮◌꙯◌̕b; a◌֮◌̀◌꙯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC VZMET, LATIN SMALL LETTER B
+0061 A66F 0315 0300 05AE 0062;0061 05AE A66F 0300 0315 0062;0061 05AE A66F 0300 0315 0062;0061 05AE A66F 0300 0315 0062;0061 05AE A66F 0300 0315 0062; # (a◌꙯◌̕◌̀◌֮b; a◌֮◌꙯◌̀◌̕b; a◌֮◌꙯◌̀◌̕b; a◌֮◌꙯◌̀◌̕b; a◌֮◌꙯◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC VZMET, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A674 0062;00E0 05AE A674 0315 0062;0061 05AE 0300 A674 0315 0062;00E0 05AE A674 0315 0062;0061 05AE 0300 A674 0315 0062; # (a◌̕◌̀◌֮◌ꙴb; à◌֮◌ꙴ◌̕b; a◌֮◌̀◌ꙴ◌̕b; à◌֮◌ꙴ◌̕b; a◌֮◌̀◌ꙴ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER UKRAINIAN IE, LATIN SMALL LETTER B
+0061 A674 0315 0300 05AE 0062;0061 05AE A674 0300 0315 0062;0061 05AE A674 0300 0315 0062;0061 05AE A674 0300 0315 0062;0061 05AE A674 0300 0315 0062; # (a◌ꙴ◌̕◌̀◌֮b; a◌֮◌ꙴ◌̀◌̕b; a◌֮◌ꙴ◌̀◌̕b; a◌֮◌ꙴ◌̀◌̕b; a◌֮◌ꙴ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER UKRAINIAN IE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A675 0062;00E0 05AE A675 0315 0062;0061 05AE 0300 A675 0315 0062;00E0 05AE A675 0315 0062;0061 05AE 0300 A675 0315 0062; # (a◌̕◌̀◌֮◌ꙵb; à◌֮◌ꙵ◌̕b; a◌֮◌̀◌ꙵ◌̕b; à◌֮◌ꙵ◌̕b; a◌֮◌̀◌ꙵ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER I, LATIN SMALL LETTER B
+0061 A675 0315 0300 05AE 0062;0061 05AE A675 0300 0315 0062;0061 05AE A675 0300 0315 0062;0061 05AE A675 0300 0315 0062;0061 05AE A675 0300 0315 0062; # (a◌ꙵ◌̕◌̀◌֮b; a◌֮◌ꙵ◌̀◌̕b; a◌֮◌ꙵ◌̀◌̕b; a◌֮◌ꙵ◌̀◌̕b; a◌֮◌ꙵ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A676 0062;00E0 05AE A676 0315 0062;0061 05AE 0300 A676 0315 0062;00E0 05AE A676 0315 0062;0061 05AE 0300 A676 0315 0062; # (a◌̕◌̀◌֮◌ꙶb; à◌֮◌ꙶ◌̕b; a◌֮◌̀◌ꙶ◌̕b; à◌֮◌ꙶ◌̕b; a◌֮◌̀◌ꙶ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER YI, LATIN SMALL LETTER B
+0061 A676 0315 0300 05AE 0062;0061 05AE A676 0300 0315 0062;0061 05AE A676 0300 0315 0062;0061 05AE A676 0300 0315 0062;0061 05AE A676 0300 0315 0062; # (a◌ꙶ◌̕◌̀◌֮b; a◌֮◌ꙶ◌̀◌̕b; a◌֮◌ꙶ◌̀◌̕b; a◌֮◌ꙶ◌̀◌̕b; a◌֮◌ꙶ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER YI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A677 0062;00E0 05AE A677 0315 0062;0061 05AE 0300 A677 0315 0062;00E0 05AE A677 0315 0062;0061 05AE 0300 A677 0315 0062; # (a◌̕◌̀◌֮◌ꙷb; à◌֮◌ꙷ◌̕b; a◌֮◌̀◌ꙷ◌̕b; à◌֮◌ꙷ◌̕b; a◌֮◌̀◌ꙷ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER U, LATIN SMALL LETTER B
+0061 A677 0315 0300 05AE 0062;0061 05AE A677 0300 0315 0062;0061 05AE A677 0300 0315 0062;0061 05AE A677 0300 0315 0062;0061 05AE A677 0300 0315 0062; # (a◌ꙷ◌̕◌̀◌֮b; a◌֮◌ꙷ◌̀◌̕b; a◌֮◌ꙷ◌̀◌̕b; a◌֮◌ꙷ◌̀◌̕b; a◌֮◌ꙷ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER U, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A678 0062;00E0 05AE A678 0315 0062;0061 05AE 0300 A678 0315 0062;00E0 05AE A678 0315 0062;0061 05AE 0300 A678 0315 0062; # (a◌̕◌̀◌֮◌ꙸb; à◌֮◌ꙸ◌̕b; a◌֮◌̀◌ꙸ◌̕b; à◌֮◌ꙸ◌̕b; a◌֮◌̀◌ꙸ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER HARD SIGN, LATIN SMALL LETTER B
+0061 A678 0315 0300 05AE 0062;0061 05AE A678 0300 0315 0062;0061 05AE A678 0300 0315 0062;0061 05AE A678 0300 0315 0062;0061 05AE A678 0300 0315 0062; # (a◌ꙸ◌̕◌̀◌֮b; a◌֮◌ꙸ◌̀◌̕b; a◌֮◌ꙸ◌̀◌̕b; a◌֮◌ꙸ◌̀◌̕b; a◌֮◌ꙸ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER HARD SIGN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A679 0062;00E0 05AE A679 0315 0062;0061 05AE 0300 A679 0315 0062;00E0 05AE A679 0315 0062;0061 05AE 0300 A679 0315 0062; # (a◌̕◌̀◌֮◌ꙹb; à◌֮◌ꙹ◌̕b; a◌֮◌̀◌ꙹ◌̕b; à◌֮◌ꙹ◌̕b; a◌֮◌̀◌ꙹ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER YERU, LATIN SMALL LETTER B
+0061 A679 0315 0300 05AE 0062;0061 05AE A679 0300 0315 0062;0061 05AE A679 0300 0315 0062;0061 05AE A679 0300 0315 0062;0061 05AE A679 0300 0315 0062; # (a◌ꙹ◌̕◌̀◌֮b; a◌֮◌ꙹ◌̀◌̕b; a◌֮◌ꙹ◌̀◌̕b; a◌֮◌ꙹ◌̀◌̕b; a◌֮◌ꙹ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER YERU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A67A 0062;00E0 05AE A67A 0315 0062;0061 05AE 0300 A67A 0315 0062;00E0 05AE A67A 0315 0062;0061 05AE 0300 A67A 0315 0062; # (a◌̕◌̀◌֮◌ꙺb; à◌֮◌ꙺ◌̕b; a◌֮◌̀◌ꙺ◌̕b; à◌֮◌ꙺ◌̕b; a◌֮◌̀◌ꙺ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER SOFT SIGN, LATIN SMALL LETTER B
+0061 A67A 0315 0300 05AE 0062;0061 05AE A67A 0300 0315 0062;0061 05AE A67A 0300 0315 0062;0061 05AE A67A 0300 0315 0062;0061 05AE A67A 0300 0315 0062; # (a◌ꙺ◌̕◌̀◌֮b; a◌֮◌ꙺ◌̀◌̕b; a◌֮◌ꙺ◌̀◌̕b; a◌֮◌ꙺ◌̀◌̕b; a◌֮◌ꙺ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER SOFT SIGN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A67B 0062;00E0 05AE A67B 0315 0062;0061 05AE 0300 A67B 0315 0062;00E0 05AE A67B 0315 0062;0061 05AE 0300 A67B 0315 0062; # (a◌̕◌̀◌֮◌ꙻb; à◌֮◌ꙻ◌̕b; a◌֮◌̀◌ꙻ◌̕b; à◌֮◌ꙻ◌̕b; a◌֮◌̀◌ꙻ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER OMEGA, LATIN SMALL LETTER B
+0061 A67B 0315 0300 05AE 0062;0061 05AE A67B 0300 0315 0062;0061 05AE A67B 0300 0315 0062;0061 05AE A67B 0300 0315 0062;0061 05AE A67B 0300 0315 0062; # (a◌ꙻ◌̕◌̀◌֮b; a◌֮◌ꙻ◌̀◌̕b; a◌֮◌ꙻ◌̀◌̕b; a◌֮◌ꙻ◌̀◌̕b; a◌֮◌ꙻ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER OMEGA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A67C 0062;00E0 05AE A67C 0315 0062;0061 05AE 0300 A67C 0315 0062;00E0 05AE A67C 0315 0062;0061 05AE 0300 A67C 0315 0062; # (a◌̕◌̀◌֮◌꙼b; à◌֮◌꙼◌̕b; a◌֮◌̀◌꙼◌̕b; à◌֮◌꙼◌̕b; a◌֮◌̀◌꙼◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC KAVYKA, LATIN SMALL LETTER B
+0061 A67C 0315 0300 05AE 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062; # (a◌꙼◌̕◌̀◌֮b; a◌֮◌꙼◌̀◌̕b; a◌֮◌꙼◌̀◌̕b; a◌֮◌꙼◌̀◌̕b; a◌֮◌꙼◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC KAVYKA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A67D 0062;00E0 05AE A67D 0315 0062;0061 05AE 0300 A67D 0315 0062;00E0 05AE A67D 0315 0062;0061 05AE 0300 A67D 0315 0062; # (a◌̕◌̀◌֮◌꙽b; à◌֮◌꙽◌̕b; a◌֮◌̀◌꙽◌̕b; à◌֮◌꙽◌̕b; a◌֮◌̀◌꙽◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC PAYEROK, LATIN SMALL LETTER B
+0061 A67D 0315 0300 05AE 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062; # (a◌꙽◌̕◌̀◌֮b; a◌֮◌꙽◌̀◌̕b; a◌֮◌꙽◌̀◌̕b; a◌֮◌꙽◌̀◌̕b; a◌֮◌꙽◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC PAYEROK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A69E 0062;00E0 05AE A69E 0315 0062;0061 05AE 0300 A69E 0315 0062;00E0 05AE A69E 0315 0062;0061 05AE 0300 A69E 0315 0062; # (a◌̕◌̀◌֮◌ꚞb; à◌֮◌ꚞ◌̕b; a◌֮◌̀◌ꚞ◌̕b; à◌֮◌ꚞ◌̕b; a◌֮◌̀◌ꚞ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER EF, LATIN SMALL LETTER B
+0061 A69E 0315 0300 05AE 0062;0061 05AE A69E 0300 0315 0062;0061 05AE A69E 0300 0315 0062;0061 05AE A69E 0300 0315 0062;0061 05AE A69E 0300 0315 0062; # (a◌ꚞ◌̕◌̀◌֮b; a◌֮◌ꚞ◌̀◌̕b; a◌֮◌ꚞ◌̀◌̕b; a◌֮◌ꚞ◌̀◌̕b; a◌֮◌ꚞ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER EF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A69F 0062;00E0 05AE A69F 0315 0062;0061 05AE 0300 A69F 0315 0062;00E0 05AE A69F 0315 0062;0061 05AE 0300 A69F 0315 0062; # (a◌̕◌̀◌֮◌ꚟb; à◌֮◌ꚟ◌̕b; a◌֮◌̀◌ꚟ◌̕b; à◌֮◌ꚟ◌̕b; a◌֮◌̀◌ꚟ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC LETTER IOTIFIED E, LATIN SMALL LETTER B
+0061 A69F 0315 0300 05AE 0062;0061 05AE A69F 0300 0315 0062;0061 05AE A69F 0300 0315 0062;0061 05AE A69F 0300 0315 0062;0061 05AE A69F 0300 0315 0062; # (a◌ꚟ◌̕◌̀◌֮b; a◌֮◌ꚟ◌̀◌̕b; a◌֮◌ꚟ◌̀◌̕b; a◌֮◌ꚟ◌̀◌̕b; a◌֮◌ꚟ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC LETTER IOTIFIED E, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A6F0 0062;00E0 05AE A6F0 0315 0062;0061 05AE 0300 A6F0 0315 0062;00E0 05AE A6F0 0315 0062;0061 05AE 0300 A6F0 0315 0062; # (a◌̕◌̀◌֮◌꛰b; à◌֮◌꛰◌̕b; a◌֮◌̀◌꛰◌̕b; à◌֮◌꛰◌̕b; a◌֮◌̀◌꛰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BAMUM COMBINING MARK KOQNDON, LATIN SMALL LETTER B
+0061 A6F0 0315 0300 05AE 0062;0061 05AE A6F0 0300 0315 0062;0061 05AE A6F0 0300 0315 0062;0061 05AE A6F0 0300 0315 0062;0061 05AE A6F0 0300 0315 0062; # (a◌꛰◌̕◌̀◌֮b; a◌֮◌꛰◌̀◌̕b; a◌֮◌꛰◌̀◌̕b; a◌֮◌꛰◌̀◌̕b; a◌֮◌꛰◌̀◌̕b; ) LATIN SMALL LETTER A, BAMUM COMBINING MARK KOQNDON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A6F1 0062;00E0 05AE A6F1 0315 0062;0061 05AE 0300 A6F1 0315 0062;00E0 05AE A6F1 0315 0062;0061 05AE 0300 A6F1 0315 0062; # (a◌̕◌̀◌֮◌꛱b; à◌֮◌꛱◌̕b; a◌֮◌̀◌꛱◌̕b; à◌֮◌꛱◌̕b; a◌֮◌̀◌꛱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, BAMUM COMBINING MARK TUKWENTIS, LATIN SMALL LETTER B
+0061 A6F1 0315 0300 05AE 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062; # (a◌꛱◌̕◌̀◌֮b; a◌֮◌꛱◌̀◌̕b; a◌֮◌꛱◌̀◌̕b; a◌֮◌꛱◌̀◌̕b; a◌֮◌꛱◌̀◌̕b; ) LATIN SMALL LETTER A, BAMUM COMBINING MARK TUKWENTIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 A806 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062; # (a◌ְ◌्◌゙◌꠆b; a◌゙◌्◌꠆◌ְb; a◌゙◌्◌꠆◌ְb; a◌゙◌्◌꠆◌ְb; a◌゙◌्◌꠆◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SYLOTI NAGRI SIGN HASANTA, LATIN SMALL LETTER B
+0061 A806 05B0 094D 3099 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062; # (a◌꠆◌ְ◌्◌゙b; a◌゙◌꠆◌्◌ְb; a◌゙◌꠆◌्◌ְb; a◌゙◌꠆◌्◌ְb; a◌゙◌꠆◌्◌ְb; ) LATIN SMALL LETTER A, SYLOTI NAGRI SIGN HASANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 A82C 0062;0061 3099 094D A82C 05B0 0062;0061 3099 094D A82C 05B0 0062;0061 3099 094D A82C 05B0 0062;0061 3099 094D A82C 05B0 0062; # (a◌ְ◌्◌゙◌꠬b; a◌゙◌्◌꠬◌ְb; a◌゙◌्◌꠬◌ְb; a◌゙◌्◌꠬◌ְb; a◌゙◌्◌꠬◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SYLOTI NAGRI SIGN ALTERNATE HASANTA, LATIN SMALL LETTER B
+0061 A82C 05B0 094D 3099 0062;0061 3099 A82C 094D 05B0 0062;0061 3099 A82C 094D 05B0 0062;0061 3099 A82C 094D 05B0 0062;0061 3099 A82C 094D 05B0 0062; # (a◌꠬◌ְ◌्◌゙b; a◌゙◌꠬◌्◌ְb; a◌゙◌꠬◌्◌ְb; a◌゙◌꠬◌्◌ְb; a◌゙◌꠬◌्◌ְb; ) LATIN SMALL LETTER A, SYLOTI NAGRI SIGN ALTERNATE HASANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 A8C4 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062; # (a◌ְ◌्◌゙◌꣄b; a◌゙◌्◌꣄◌ְb; a◌゙◌्◌꣄◌ְb; a◌゙◌्◌꣄◌ְb; a◌゙◌्◌꣄◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SAURASHTRA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 A8C4 05B0 094D 3099 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062; # (a◌꣄◌ְ◌्◌゙b; a◌゙◌꣄◌्◌ְb; a◌゙◌꣄◌्◌ְb; a◌゙◌꣄◌्◌ְb; a◌゙◌꣄◌्◌ְb; ) LATIN SMALL LETTER A, SAURASHTRA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E0 0062;00E0 05AE A8E0 0315 0062;0061 05AE 0300 A8E0 0315 0062;00E0 05AE A8E0 0315 0062;0061 05AE 0300 A8E0 0315 0062; # (a◌̕◌̀◌֮◌꣠b; à◌֮◌꣠◌̕b; a◌֮◌̀◌꣠◌̕b; à◌֮◌꣠◌̕b; a◌֮◌̀◌꣠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT ZERO, LATIN SMALL LETTER B
+0061 A8E0 0315 0300 05AE 0062;0061 05AE A8E0 0300 0315 0062;0061 05AE A8E0 0300 0315 0062;0061 05AE A8E0 0300 0315 0062;0061 05AE A8E0 0300 0315 0062; # (a◌꣠◌̕◌̀◌֮b; a◌֮◌꣠◌̀◌̕b; a◌֮◌꣠◌̀◌̕b; a◌֮◌꣠◌̀◌̕b; a◌֮◌꣠◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT ZERO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E1 0062;00E0 05AE A8E1 0315 0062;0061 05AE 0300 A8E1 0315 0062;00E0 05AE A8E1 0315 0062;0061 05AE 0300 A8E1 0315 0062; # (a◌̕◌̀◌֮◌꣡b; à◌֮◌꣡◌̕b; a◌֮◌̀◌꣡◌̕b; à◌֮◌꣡◌̕b; a◌֮◌̀◌꣡◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT ONE, LATIN SMALL LETTER B
+0061 A8E1 0315 0300 05AE 0062;0061 05AE A8E1 0300 0315 0062;0061 05AE A8E1 0300 0315 0062;0061 05AE A8E1 0300 0315 0062;0061 05AE A8E1 0300 0315 0062; # (a◌꣡◌̕◌̀◌֮b; a◌֮◌꣡◌̀◌̕b; a◌֮◌꣡◌̀◌̕b; a◌֮◌꣡◌̀◌̕b; a◌֮◌꣡◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT ONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E2 0062;00E0 05AE A8E2 0315 0062;0061 05AE 0300 A8E2 0315 0062;00E0 05AE A8E2 0315 0062;0061 05AE 0300 A8E2 0315 0062; # (a◌̕◌̀◌֮◌꣢b; à◌֮◌꣢◌̕b; a◌֮◌̀◌꣢◌̕b; à◌֮◌꣢◌̕b; a◌֮◌̀◌꣢◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT TWO, LATIN SMALL LETTER B
+0061 A8E2 0315 0300 05AE 0062;0061 05AE A8E2 0300 0315 0062;0061 05AE A8E2 0300 0315 0062;0061 05AE A8E2 0300 0315 0062;0061 05AE A8E2 0300 0315 0062; # (a◌꣢◌̕◌̀◌֮b; a◌֮◌꣢◌̀◌̕b; a◌֮◌꣢◌̀◌̕b; a◌֮◌꣢◌̀◌̕b; a◌֮◌꣢◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT TWO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E3 0062;00E0 05AE A8E3 0315 0062;0061 05AE 0300 A8E3 0315 0062;00E0 05AE A8E3 0315 0062;0061 05AE 0300 A8E3 0315 0062; # (a◌̕◌̀◌֮◌꣣b; à◌֮◌꣣◌̕b; a◌֮◌̀◌꣣◌̕b; à◌֮◌꣣◌̕b; a◌֮◌̀◌꣣◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT THREE, LATIN SMALL LETTER B
+0061 A8E3 0315 0300 05AE 0062;0061 05AE A8E3 0300 0315 0062;0061 05AE A8E3 0300 0315 0062;0061 05AE A8E3 0300 0315 0062;0061 05AE A8E3 0300 0315 0062; # (a◌꣣◌̕◌̀◌֮b; a◌֮◌꣣◌̀◌̕b; a◌֮◌꣣◌̀◌̕b; a◌֮◌꣣◌̀◌̕b; a◌֮◌꣣◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT THREE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E4 0062;00E0 05AE A8E4 0315 0062;0061 05AE 0300 A8E4 0315 0062;00E0 05AE A8E4 0315 0062;0061 05AE 0300 A8E4 0315 0062; # (a◌̕◌̀◌֮◌꣤b; à◌֮◌꣤◌̕b; a◌֮◌̀◌꣤◌̕b; à◌֮◌꣤◌̕b; a◌֮◌̀◌꣤◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT FOUR, LATIN SMALL LETTER B
+0061 A8E4 0315 0300 05AE 0062;0061 05AE A8E4 0300 0315 0062;0061 05AE A8E4 0300 0315 0062;0061 05AE A8E4 0300 0315 0062;0061 05AE A8E4 0300 0315 0062; # (a◌꣤◌̕◌̀◌֮b; a◌֮◌꣤◌̀◌̕b; a◌֮◌꣤◌̀◌̕b; a◌֮◌꣤◌̀◌̕b; a◌֮◌꣤◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT FOUR, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E5 0062;00E0 05AE A8E5 0315 0062;0061 05AE 0300 A8E5 0315 0062;00E0 05AE A8E5 0315 0062;0061 05AE 0300 A8E5 0315 0062; # (a◌̕◌̀◌֮◌꣥b; à◌֮◌꣥◌̕b; a◌֮◌̀◌꣥◌̕b; à◌֮◌꣥◌̕b; a◌֮◌̀◌꣥◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT FIVE, LATIN SMALL LETTER B
+0061 A8E5 0315 0300 05AE 0062;0061 05AE A8E5 0300 0315 0062;0061 05AE A8E5 0300 0315 0062;0061 05AE A8E5 0300 0315 0062;0061 05AE A8E5 0300 0315 0062; # (a◌꣥◌̕◌̀◌֮b; a◌֮◌꣥◌̀◌̕b; a◌֮◌꣥◌̀◌̕b; a◌֮◌꣥◌̀◌̕b; a◌֮◌꣥◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT FIVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E6 0062;00E0 05AE A8E6 0315 0062;0061 05AE 0300 A8E6 0315 0062;00E0 05AE A8E6 0315 0062;0061 05AE 0300 A8E6 0315 0062; # (a◌̕◌̀◌֮◌꣦b; à◌֮◌꣦◌̕b; a◌֮◌̀◌꣦◌̕b; à◌֮◌꣦◌̕b; a◌֮◌̀◌꣦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT SIX, LATIN SMALL LETTER B
+0061 A8E6 0315 0300 05AE 0062;0061 05AE A8E6 0300 0315 0062;0061 05AE A8E6 0300 0315 0062;0061 05AE A8E6 0300 0315 0062;0061 05AE A8E6 0300 0315 0062; # (a◌꣦◌̕◌̀◌֮b; a◌֮◌꣦◌̀◌̕b; a◌֮◌꣦◌̀◌̕b; a◌֮◌꣦◌̀◌̕b; a◌֮◌꣦◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT SIX, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E7 0062;00E0 05AE A8E7 0315 0062;0061 05AE 0300 A8E7 0315 0062;00E0 05AE A8E7 0315 0062;0061 05AE 0300 A8E7 0315 0062; # (a◌̕◌̀◌֮◌꣧b; à◌֮◌꣧◌̕b; a◌֮◌̀◌꣧◌̕b; à◌֮◌꣧◌̕b; a◌֮◌̀◌꣧◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT SEVEN, LATIN SMALL LETTER B
+0061 A8E7 0315 0300 05AE 0062;0061 05AE A8E7 0300 0315 0062;0061 05AE A8E7 0300 0315 0062;0061 05AE A8E7 0300 0315 0062;0061 05AE A8E7 0300 0315 0062; # (a◌꣧◌̕◌̀◌֮b; a◌֮◌꣧◌̀◌̕b; a◌֮◌꣧◌̀◌̕b; a◌֮◌꣧◌̀◌̕b; a◌֮◌꣧◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT SEVEN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E8 0062;00E0 05AE A8E8 0315 0062;0061 05AE 0300 A8E8 0315 0062;00E0 05AE A8E8 0315 0062;0061 05AE 0300 A8E8 0315 0062; # (a◌̕◌̀◌֮◌꣨b; à◌֮◌꣨◌̕b; a◌֮◌̀◌꣨◌̕b; à◌֮◌꣨◌̕b; a◌֮◌̀◌꣨◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT EIGHT, LATIN SMALL LETTER B
+0061 A8E8 0315 0300 05AE 0062;0061 05AE A8E8 0300 0315 0062;0061 05AE A8E8 0300 0315 0062;0061 05AE A8E8 0300 0315 0062;0061 05AE A8E8 0300 0315 0062; # (a◌꣨◌̕◌̀◌֮b; a◌֮◌꣨◌̀◌̕b; a◌֮◌꣨◌̀◌̕b; a◌֮◌꣨◌̀◌̕b; a◌֮◌꣨◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT EIGHT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8E9 0062;00E0 05AE A8E9 0315 0062;0061 05AE 0300 A8E9 0315 0062;00E0 05AE A8E9 0315 0062;0061 05AE 0300 A8E9 0315 0062; # (a◌̕◌̀◌֮◌꣩b; à◌֮◌꣩◌̕b; a◌֮◌̀◌꣩◌̕b; à◌֮◌꣩◌̕b; a◌֮◌̀◌꣩◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI DIGIT NINE, LATIN SMALL LETTER B
+0061 A8E9 0315 0300 05AE 0062;0061 05AE A8E9 0300 0315 0062;0061 05AE A8E9 0300 0315 0062;0061 05AE A8E9 0300 0315 0062;0061 05AE A8E9 0300 0315 0062; # (a◌꣩◌̕◌̀◌֮b; a◌֮◌꣩◌̀◌̕b; a◌֮◌꣩◌̀◌̕b; a◌֮◌꣩◌̀◌̕b; a◌֮◌꣩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI DIGIT NINE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8EA 0062;00E0 05AE A8EA 0315 0062;0061 05AE 0300 A8EA 0315 0062;00E0 05AE A8EA 0315 0062;0061 05AE 0300 A8EA 0315 0062; # (a◌̕◌̀◌֮◌꣪b; à◌֮◌꣪◌̕b; a◌֮◌̀◌꣪◌̕b; à◌֮◌꣪◌̕b; a◌֮◌̀◌꣪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER A, LATIN SMALL LETTER B
+0061 A8EA 0315 0300 05AE 0062;0061 05AE A8EA 0300 0315 0062;0061 05AE A8EA 0300 0315 0062;0061 05AE A8EA 0300 0315 0062;0061 05AE A8EA 0300 0315 0062; # (a◌꣪◌̕◌̀◌֮b; a◌֮◌꣪◌̀◌̕b; a◌֮◌꣪◌̀◌̕b; a◌֮◌꣪◌̀◌̕b; a◌֮◌꣪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8EB 0062;00E0 05AE A8EB 0315 0062;0061 05AE 0300 A8EB 0315 0062;00E0 05AE A8EB 0315 0062;0061 05AE 0300 A8EB 0315 0062; # (a◌̕◌̀◌֮◌꣫b; à◌֮◌꣫◌̕b; a◌֮◌̀◌꣫◌̕b; à◌֮◌꣫◌̕b; a◌֮◌̀◌꣫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER U, LATIN SMALL LETTER B
+0061 A8EB 0315 0300 05AE 0062;0061 05AE A8EB 0300 0315 0062;0061 05AE A8EB 0300 0315 0062;0061 05AE A8EB 0300 0315 0062;0061 05AE A8EB 0300 0315 0062; # (a◌꣫◌̕◌̀◌֮b; a◌֮◌꣫◌̀◌̕b; a◌֮◌꣫◌̀◌̕b; a◌֮◌꣫◌̀◌̕b; a◌֮◌꣫◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER U, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8EC 0062;00E0 05AE A8EC 0315 0062;0061 05AE 0300 A8EC 0315 0062;00E0 05AE A8EC 0315 0062;0061 05AE 0300 A8EC 0315 0062; # (a◌̕◌̀◌֮◌꣬b; à◌֮◌꣬◌̕b; a◌֮◌̀◌꣬◌̕b; à◌֮◌꣬◌̕b; a◌֮◌̀◌꣬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER KA, LATIN SMALL LETTER B
+0061 A8EC 0315 0300 05AE 0062;0061 05AE A8EC 0300 0315 0062;0061 05AE A8EC 0300 0315 0062;0061 05AE A8EC 0300 0315 0062;0061 05AE A8EC 0300 0315 0062; # (a◌꣬◌̕◌̀◌֮b; a◌֮◌꣬◌̀◌̕b; a◌֮◌꣬◌̀◌̕b; a◌֮◌꣬◌̀◌̕b; a◌֮◌꣬◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER KA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8ED 0062;00E0 05AE A8ED 0315 0062;0061 05AE 0300 A8ED 0315 0062;00E0 05AE A8ED 0315 0062;0061 05AE 0300 A8ED 0315 0062; # (a◌̕◌̀◌֮◌꣭b; à◌֮◌꣭◌̕b; a◌֮◌̀◌꣭◌̕b; à◌֮◌꣭◌̕b; a◌֮◌̀◌꣭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER NA, LATIN SMALL LETTER B
+0061 A8ED 0315 0300 05AE 0062;0061 05AE A8ED 0300 0315 0062;0061 05AE A8ED 0300 0315 0062;0061 05AE A8ED 0300 0315 0062;0061 05AE A8ED 0300 0315 0062; # (a◌꣭◌̕◌̀◌֮b; a◌֮◌꣭◌̀◌̕b; a◌֮◌꣭◌̀◌̕b; a◌֮◌꣭◌̀◌̕b; a◌֮◌꣭◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER NA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8EE 0062;00E0 05AE A8EE 0315 0062;0061 05AE 0300 A8EE 0315 0062;00E0 05AE A8EE 0315 0062;0061 05AE 0300 A8EE 0315 0062; # (a◌̕◌̀◌֮◌꣮b; à◌֮◌꣮◌̕b; a◌֮◌̀◌꣮◌̕b; à◌֮◌꣮◌̕b; a◌֮◌̀◌꣮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER PA, LATIN SMALL LETTER B
+0061 A8EE 0315 0300 05AE 0062;0061 05AE A8EE 0300 0315 0062;0061 05AE A8EE 0300 0315 0062;0061 05AE A8EE 0300 0315 0062;0061 05AE A8EE 0300 0315 0062; # (a◌꣮◌̕◌̀◌֮b; a◌֮◌꣮◌̀◌̕b; a◌֮◌꣮◌̀◌̕b; a◌֮◌꣮◌̀◌̕b; a◌֮◌꣮◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER PA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8EF 0062;00E0 05AE A8EF 0315 0062;0061 05AE 0300 A8EF 0315 0062;00E0 05AE A8EF 0315 0062;0061 05AE 0300 A8EF 0315 0062; # (a◌̕◌̀◌֮◌꣯b; à◌֮◌꣯◌̕b; a◌֮◌̀◌꣯◌̕b; à◌֮◌꣯◌̕b; a◌֮◌̀◌꣯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER RA, LATIN SMALL LETTER B
+0061 A8EF 0315 0300 05AE 0062;0061 05AE A8EF 0300 0315 0062;0061 05AE A8EF 0300 0315 0062;0061 05AE A8EF 0300 0315 0062;0061 05AE A8EF 0300 0315 0062; # (a◌꣯◌̕◌̀◌֮b; a◌֮◌꣯◌̀◌̕b; a◌֮◌꣯◌̀◌̕b; a◌֮◌꣯◌̀◌̕b; a◌֮◌꣯◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER RA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8F0 0062;00E0 05AE A8F0 0315 0062;0061 05AE 0300 A8F0 0315 0062;00E0 05AE A8F0 0315 0062;0061 05AE 0300 A8F0 0315 0062; # (a◌̕◌̀◌֮◌꣰b; à◌֮◌꣰◌̕b; a◌֮◌̀◌꣰◌̕b; à◌֮◌꣰◌̕b; a◌֮◌̀◌꣰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI LETTER VI, LATIN SMALL LETTER B
+0061 A8F0 0315 0300 05AE 0062;0061 05AE A8F0 0300 0315 0062;0061 05AE A8F0 0300 0315 0062;0061 05AE A8F0 0300 0315 0062;0061 05AE A8F0 0300 0315 0062; # (a◌꣰◌̕◌̀◌֮b; a◌֮◌꣰◌̀◌̕b; a◌֮◌꣰◌̀◌̕b; a◌֮◌꣰◌̀◌̕b; a◌֮◌꣰◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI LETTER VI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE A8F1 0062;00E0 05AE A8F1 0315 0062;0061 05AE 0300 A8F1 0315 0062;00E0 05AE A8F1 0315 0062;0061 05AE 0300 A8F1 0315 0062; # (a◌̕◌̀◌֮◌꣱b; à◌֮◌꣱◌̕b; a◌֮◌̀◌꣱◌̕b; à◌֮◌꣱◌̕b; a◌֮◌̀◌꣱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DEVANAGARI SIGN AVAGRAHA, LATIN SMALL LETTER B
+0061 A8F1 0315 0300 05AE 0062;0061 05AE A8F1 0300 0315 0062;0061 05AE A8F1 0300 0315 0062;0061 05AE A8F1 0300 0315 0062;0061 05AE A8F1 0300 0315 0062; # (a◌꣱◌̕◌̀◌֮b; a◌֮◌꣱◌̀◌̕b; a◌֮◌꣱◌̀◌̕b; a◌֮◌꣱◌̀◌̕b; a◌֮◌꣱◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DEVANAGARI SIGN AVAGRAHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA A92B 0062;0061 1DFA 0316 A92B 059A 0062;0061 1DFA 0316 A92B 059A 0062;0061 1DFA 0316 A92B 059A 0062;0061 1DFA 0316 A92B 059A 0062; # (a◌֚◌̖◌᷺◌꤫b; a◌᷺◌̖◌꤫◌֚b; a◌᷺◌̖◌꤫◌֚b; a◌᷺◌̖◌꤫◌֚b; a◌᷺◌̖◌꤫◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, KAYAH LI TONE PLOPHU, LATIN SMALL LETTER B
+0061 A92B 059A 0316 1DFA 0062;0061 1DFA A92B 0316 059A 0062;0061 1DFA A92B 0316 059A 0062;0061 1DFA A92B 0316 059A 0062;0061 1DFA A92B 0316 059A 0062; # (a◌꤫◌֚◌̖◌᷺b; a◌᷺◌꤫◌̖◌֚b; a◌᷺◌꤫◌̖◌֚b; a◌᷺◌꤫◌̖◌֚b; a◌᷺◌꤫◌̖◌֚b; ) LATIN SMALL LETTER A, KAYAH LI TONE PLOPHU, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA A92C 0062;0061 1DFA 0316 A92C 059A 0062;0061 1DFA 0316 A92C 059A 0062;0061 1DFA 0316 A92C 059A 0062;0061 1DFA 0316 A92C 059A 0062; # (a◌֚◌̖◌᷺◌꤬b; a◌᷺◌̖◌꤬◌֚b; a◌᷺◌̖◌꤬◌֚b; a◌᷺◌̖◌꤬◌֚b; a◌᷺◌̖◌꤬◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, KAYAH LI TONE CALYA, LATIN SMALL LETTER B
+0061 A92C 059A 0316 1DFA 0062;0061 1DFA A92C 0316 059A 0062;0061 1DFA A92C 0316 059A 0062;0061 1DFA A92C 0316 059A 0062;0061 1DFA A92C 0316 059A 0062; # (a◌꤬◌֚◌̖◌᷺b; a◌᷺◌꤬◌̖◌֚b; a◌᷺◌꤬◌̖◌֚b; a◌᷺◌꤬◌̖◌֚b; a◌᷺◌꤬◌̖◌֚b; ) LATIN SMALL LETTER A, KAYAH LI TONE CALYA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA A92D 0062;0061 1DFA 0316 A92D 059A 0062;0061 1DFA 0316 A92D 059A 0062;0061 1DFA 0316 A92D 059A 0062;0061 1DFA 0316 A92D 059A 0062; # (a◌֚◌̖◌᷺◌꤭b; a◌᷺◌̖◌꤭◌֚b; a◌᷺◌̖◌꤭◌֚b; a◌᷺◌̖◌꤭◌֚b; a◌᷺◌̖◌꤭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, KAYAH LI TONE CALYA PLOPHU, LATIN SMALL LETTER B
+0061 A92D 059A 0316 1DFA 0062;0061 1DFA A92D 0316 059A 0062;0061 1DFA A92D 0316 059A 0062;0061 1DFA A92D 0316 059A 0062;0061 1DFA A92D 0316 059A 0062; # (a◌꤭◌֚◌̖◌᷺b; a◌᷺◌꤭◌̖◌֚b; a◌᷺◌꤭◌̖◌֚b; a◌᷺◌꤭◌̖◌֚b; a◌᷺◌꤭◌̖◌֚b; ) LATIN SMALL LETTER A, KAYAH LI TONE CALYA PLOPHU, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 05B0 094D 3099 A953 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062; # (a◌ְ◌्◌゙꥓b; a◌゙◌्꥓◌ְb; a◌゙◌्꥓◌ְb; a◌゙◌्꥓◌ְb; a◌゙◌्꥓◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, REJANG VIRAMA, LATIN SMALL LETTER B
+0061 A953 05B0 094D 3099 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062; # (a꥓◌ְ◌्◌゙b; a◌゙꥓◌्◌ְb; a◌゙꥓◌्◌ְb; a◌゙꥓◌्◌ְb; a◌゙꥓◌्◌ְb; ) LATIN SMALL LETTER A, REJANG VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 A9B3 0062;0061 16FF0 093C A9B3 3099 0062;0061 16FF0 093C A9B3 3099 0062;0061 16FF0 093C A9B3 3099 0062;0061 16FF0 093C A9B3 3099 0062; # (a◌゙◌𖿰़◌꦳b; a𖿰◌़◌꦳◌゙b; a𖿰◌़◌꦳◌゙b; a𖿰◌़◌꦳◌゙b; a𖿰◌़◌꦳◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, JAVANESE SIGN CECAK TELU, LATIN SMALL LETTER B
+0061 A9B3 3099 093C 16FF0 0062;0061 16FF0 A9B3 093C 3099 0062;0061 16FF0 A9B3 093C 3099 0062;0061 16FF0 A9B3 093C 3099 0062;0061 16FF0 A9B3 093C 3099 0062; # (a◌꦳◌゙◌𖿰़b; a𖿰◌꦳◌़◌゙b; a𖿰◌꦳◌़◌゙b; a𖿰◌꦳◌़◌゙b; a𖿰◌꦳◌़◌゙b; ) LATIN SMALL LETTER A, JAVANESE SIGN CECAK TELU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 A9C0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062; # (a◌ְ◌्◌゙꧀b; a◌゙◌्꧀◌ְb; a◌゙◌्꧀◌ְb; a◌゙◌्꧀◌ְb; a◌゙◌्꧀◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, JAVANESE PANGKON, LATIN SMALL LETTER B
+0061 A9C0 05B0 094D 3099 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062; # (a꧀◌ְ◌्◌゙b; a◌゙꧀◌्◌ְb; a◌゙꧀◌्◌ְb; a◌゙꧀◌्◌ְb; a◌゙꧀◌्◌ְb; ) LATIN SMALL LETTER A, JAVANESE PANGKON, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE AAB0 0062;00E0 05AE AAB0 0315 0062;0061 05AE 0300 AAB0 0315 0062;00E0 05AE AAB0 0315 0062;0061 05AE 0300 AAB0 0315 0062; # (a◌̕◌̀◌֮◌ꪰb; à◌֮◌ꪰ◌̕b; a◌֮◌̀◌ꪰ◌̕b; à◌֮◌ꪰ◌̕b; a◌֮◌̀◌ꪰ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET MAI KANG, LATIN SMALL LETTER B
+0061 AAB0 0315 0300 05AE 0062;0061 05AE AAB0 0300 0315 0062;0061 05AE AAB0 0300 0315 0062;0061 05AE AAB0 0300 0315 0062;0061 05AE AAB0 0300 0315 0062; # (a◌ꪰ◌̕◌̀◌֮b; a◌֮◌ꪰ◌̀◌̕b; a◌֮◌ꪰ◌̀◌̕b; a◌֮◌ꪰ◌̀◌̕b; a◌֮◌ꪰ◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET MAI KANG, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE AAB2 0062;00E0 05AE AAB2 0315 0062;0061 05AE 0300 AAB2 0315 0062;00E0 05AE AAB2 0315 0062;0061 05AE 0300 AAB2 0315 0062; # (a◌̕◌̀◌֮◌ꪲb; à◌֮◌ꪲ◌̕b; a◌֮◌̀◌ꪲ◌̕b; à◌֮◌ꪲ◌̕b; a◌֮◌̀◌ꪲ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET VOWEL I, LATIN SMALL LETTER B
+0061 AAB2 0315 0300 05AE 0062;0061 05AE AAB2 0300 0315 0062;0061 05AE AAB2 0300 0315 0062;0061 05AE AAB2 0300 0315 0062;0061 05AE AAB2 0300 0315 0062; # (a◌ꪲ◌̕◌̀◌֮b; a◌֮◌ꪲ◌̀◌̕b; a◌֮◌ꪲ◌̀◌̕b; a◌֮◌ꪲ◌̀◌̕b; a◌֮◌ꪲ◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET VOWEL I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE AAB3 0062;00E0 05AE AAB3 0315 0062;0061 05AE 0300 AAB3 0315 0062;00E0 05AE AAB3 0315 0062;0061 05AE 0300 AAB3 0315 0062; # (a◌̕◌̀◌֮◌ꪳb; à◌֮◌ꪳ◌̕b; a◌֮◌̀◌ꪳ◌̕b; à◌֮◌ꪳ◌̕b; a◌֮◌̀◌ꪳ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET VOWEL UE, LATIN SMALL LETTER B
+0061 AAB3 0315 0300 05AE 0062;0061 05AE AAB3 0300 0315 0062;0061 05AE AAB3 0300 0315 0062;0061 05AE AAB3 0300 0315 0062;0061 05AE AAB3 0300 0315 0062; # (a◌ꪳ◌̕◌̀◌֮b; a◌֮◌ꪳ◌̀◌̕b; a◌֮◌ꪳ◌̀◌̕b; a◌֮◌ꪳ◌̀◌̕b; a◌֮◌ꪳ◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET VOWEL UE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA AAB4 0062;0061 1DFA 0316 AAB4 059A 0062;0061 1DFA 0316 AAB4 059A 0062;0061 1DFA 0316 AAB4 059A 0062;0061 1DFA 0316 AAB4 059A 0062; # (a◌֚◌̖◌᷺◌ꪴb; a◌᷺◌̖◌ꪴ◌֚b; a◌᷺◌̖◌ꪴ◌֚b; a◌᷺◌̖◌ꪴ◌֚b; a◌᷺◌̖◌ꪴ◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, TAI VIET VOWEL U, LATIN SMALL LETTER B
+0061 AAB4 059A 0316 1DFA 0062;0061 1DFA AAB4 0316 059A 0062;0061 1DFA AAB4 0316 059A 0062;0061 1DFA AAB4 0316 059A 0062;0061 1DFA AAB4 0316 059A 0062; # (a◌ꪴ◌֚◌̖◌᷺b; a◌᷺◌ꪴ◌̖◌֚b; a◌᷺◌ꪴ◌̖◌֚b; a◌᷺◌ꪴ◌̖◌֚b; a◌᷺◌ꪴ◌̖◌֚b; ) LATIN SMALL LETTER A, TAI VIET VOWEL U, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE AAB7 0062;00E0 05AE AAB7 0315 0062;0061 05AE 0300 AAB7 0315 0062;00E0 05AE AAB7 0315 0062;0061 05AE 0300 AAB7 0315 0062; # (a◌̕◌̀◌֮◌ꪷb; à◌֮◌ꪷ◌̕b; a◌֮◌̀◌ꪷ◌̕b; à◌֮◌ꪷ◌̕b; a◌֮◌̀◌ꪷ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET MAI KHIT, LATIN SMALL LETTER B
+0061 AAB7 0315 0300 05AE 0062;0061 05AE AAB7 0300 0315 0062;0061 05AE AAB7 0300 0315 0062;0061 05AE AAB7 0300 0315 0062;0061 05AE AAB7 0300 0315 0062; # (a◌ꪷ◌̕◌̀◌֮b; a◌֮◌ꪷ◌̀◌̕b; a◌֮◌ꪷ◌̀◌̕b; a◌֮◌ꪷ◌̀◌̕b; a◌֮◌ꪷ◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET MAI KHIT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE AAB8 0062;00E0 05AE AAB8 0315 0062;0061 05AE 0300 AAB8 0315 0062;00E0 05AE AAB8 0315 0062;0061 05AE 0300 AAB8 0315 0062; # (a◌̕◌̀◌֮◌ꪸb; à◌֮◌ꪸ◌̕b; a◌֮◌̀◌ꪸ◌̕b; à◌֮◌ꪸ◌̕b; a◌֮◌̀◌ꪸ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET VOWEL IA, LATIN SMALL LETTER B
+0061 AAB8 0315 0300 05AE 0062;0061 05AE AAB8 0300 0315 0062;0061 05AE AAB8 0300 0315 0062;0061 05AE AAB8 0300 0315 0062;0061 05AE AAB8 0300 0315 0062; # (a◌ꪸ◌̕◌̀◌֮b; a◌֮◌ꪸ◌̀◌̕b; a◌֮◌ꪸ◌̀◌̕b; a◌֮◌ꪸ◌̀◌̕b; a◌֮◌ꪸ◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET VOWEL IA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE AABE 0062;00E0 05AE AABE 0315 0062;0061 05AE 0300 AABE 0315 0062;00E0 05AE AABE 0315 0062;0061 05AE 0300 AABE 0315 0062; # (a◌̕◌̀◌֮◌ꪾb; à◌֮◌ꪾ◌̕b; a◌֮◌̀◌ꪾ◌̕b; à◌֮◌ꪾ◌̕b; a◌֮◌̀◌ꪾ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET VOWEL AM, LATIN SMALL LETTER B
+0061 AABE 0315 0300 05AE 0062;0061 05AE AABE 0300 0315 0062;0061 05AE AABE 0300 0315 0062;0061 05AE AABE 0300 0315 0062;0061 05AE AABE 0300 0315 0062; # (a◌ꪾ◌̕◌̀◌֮b; a◌֮◌ꪾ◌̀◌̕b; a◌֮◌ꪾ◌̀◌̕b; a◌֮◌ꪾ◌̀◌̕b; a◌֮◌ꪾ◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET VOWEL AM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE AABF 0062;00E0 05AE AABF 0315 0062;0061 05AE 0300 AABF 0315 0062;00E0 05AE AABF 0315 0062;0061 05AE 0300 AABF 0315 0062; # (a◌̕◌̀◌֮◌꪿b; à◌֮◌꪿◌̕b; a◌֮◌̀◌꪿◌̕b; à◌֮◌꪿◌̕b; a◌֮◌̀◌꪿◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET TONE MAI EK, LATIN SMALL LETTER B
+0061 AABF 0315 0300 05AE 0062;0061 05AE AABF 0300 0315 0062;0061 05AE AABF 0300 0315 0062;0061 05AE AABF 0300 0315 0062;0061 05AE AABF 0300 0315 0062; # (a◌꪿◌̕◌̀◌֮b; a◌֮◌꪿◌̀◌̕b; a◌֮◌꪿◌̀◌̕b; a◌֮◌꪿◌̀◌̕b; a◌֮◌꪿◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET TONE MAI EK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE AAC1 0062;00E0 05AE AAC1 0315 0062;0061 05AE 0300 AAC1 0315 0062;00E0 05AE AAC1 0315 0062;0061 05AE 0300 AAC1 0315 0062; # (a◌̕◌̀◌֮◌꫁b; à◌֮◌꫁◌̕b; a◌֮◌̀◌꫁◌̕b; à◌֮◌꫁◌̕b; a◌֮◌̀◌꫁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TAI VIET TONE MAI THO, LATIN SMALL LETTER B
+0061 AAC1 0315 0300 05AE 0062;0061 05AE AAC1 0300 0315 0062;0061 05AE AAC1 0300 0315 0062;0061 05AE AAC1 0300 0315 0062;0061 05AE AAC1 0300 0315 0062; # (a◌꫁◌̕◌̀◌֮b; a◌֮◌꫁◌̀◌̕b; a◌֮◌꫁◌̀◌̕b; a◌֮◌꫁◌̀◌̕b; a◌֮◌꫁◌̀◌̕b; ) LATIN SMALL LETTER A, TAI VIET TONE MAI THO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 AAF6 0062;0061 3099 094D AAF6 05B0 0062;0061 3099 094D AAF6 05B0 0062;0061 3099 094D AAF6 05B0 0062;0061 3099 094D AAF6 05B0 0062; # (a◌ְ◌्◌゙◌꫶b; a◌゙◌्◌꫶◌ְb; a◌゙◌्◌꫶◌ְb; a◌゙◌्◌꫶◌ְb; a◌゙◌्◌꫶◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MEETEI MAYEK VIRAMA, LATIN SMALL LETTER B
+0061 AAF6 05B0 094D 3099 0062;0061 3099 AAF6 094D 05B0 0062;0061 3099 AAF6 094D 05B0 0062;0061 3099 AAF6 094D 05B0 0062;0061 3099 AAF6 094D 05B0 0062; # (a◌꫶◌ְ◌्◌゙b; a◌゙◌꫶◌्◌ְb; a◌゙◌꫶◌्◌ְb; a◌゙◌꫶◌्◌ְb; a◌゙◌꫶◌्◌ְb; ) LATIN SMALL LETTER A, MEETEI MAYEK VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 ABED 0062;0061 3099 094D ABED 05B0 0062;0061 3099 094D ABED 05B0 0062;0061 3099 094D ABED 05B0 0062;0061 3099 094D ABED 05B0 0062; # (a◌ְ◌्◌゙◌꯭b; a◌゙◌्◌꯭◌ְb; a◌゙◌्◌꯭◌ְb; a◌゙◌्◌꯭◌ְb; a◌゙◌्◌꯭◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MEETEI MAYEK APUN IYEK, LATIN SMALL LETTER B
+0061 ABED 05B0 094D 3099 0062;0061 3099 ABED 094D 05B0 0062;0061 3099 ABED 094D 05B0 0062;0061 3099 ABED 094D 05B0 0062;0061 3099 ABED 094D 05B0 0062; # (a◌꯭◌ְ◌्◌゙b; a◌゙◌꯭◌्◌ְb; a◌゙◌꯭◌्◌ְb; a◌゙◌꯭◌्◌ְb; a◌゙◌꯭◌्◌ְb; ) LATIN SMALL LETTER A, MEETEI MAYEK APUN IYEK, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 064B FB1E 05C2 FB1E 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062; # (a◌ً◌ﬞ◌ׂ◌ﬞb; a◌ׂ◌ﬞ◌ﬞ◌ًb; a◌ׂ◌ﬞ◌ﬞ◌ًb; a◌ׂ◌ﬞ◌ﬞ◌ًb; a◌ׂ◌ﬞ◌ﬞ◌ًb; ) LATIN SMALL LETTER A, ARABIC FATHATAN, HEBREW POINT JUDEO-SPANISH VARIKA, HEBREW POINT SIN DOT, HEBREW POINT JUDEO-SPANISH VARIKA, LATIN SMALL LETTER B
+0061 FB1E 064B FB1E 05C2 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062; # (a◌ﬞ◌ً◌ﬞ◌ׂb; a◌ׂ◌ﬞ◌ﬞ◌ًb; a◌ׂ◌ﬞ◌ﬞ◌ًb; a◌ׂ◌ﬞ◌ﬞ◌ًb; a◌ׂ◌ﬞ◌ﬞ◌ًb; ) LATIN SMALL LETTER A, HEBREW POINT JUDEO-SPANISH VARIKA, ARABIC FATHATAN, HEBREW POINT JUDEO-SPANISH VARIKA, HEBREW POINT SIN DOT, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE20 0062;00E0 05AE FE20 0315 0062;0061 05AE 0300 FE20 0315 0062;00E0 05AE FE20 0315 0062;0061 05AE 0300 FE20 0315 0062; # (a◌̕◌̀◌֮◌︠b; à◌֮◌︠◌̕b; a◌֮◌̀◌︠◌̕b; à◌֮◌︠◌̕b; a◌֮◌̀◌︠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LIGATURE LEFT HALF, LATIN SMALL LETTER B
+0061 FE20 0315 0300 05AE 0062;0061 05AE FE20 0300 0315 0062;0061 05AE FE20 0300 0315 0062;0061 05AE FE20 0300 0315 0062;0061 05AE FE20 0300 0315 0062; # (a◌︠◌̕◌̀◌֮b; a◌֮◌︠◌̀◌̕b; a◌֮◌︠◌̀◌̕b; a◌֮◌︠◌̀◌̕b; a◌֮◌︠◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LIGATURE LEFT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE21 0062;00E0 05AE FE21 0315 0062;0061 05AE 0300 FE21 0315 0062;00E0 05AE FE21 0315 0062;0061 05AE 0300 FE21 0315 0062; # (a◌̕◌̀◌֮◌︡b; à◌֮◌︡◌̕b; a◌֮◌̀◌︡◌̕b; à◌֮◌︡◌̕b; a◌֮◌̀◌︡◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LIGATURE RIGHT HALF, LATIN SMALL LETTER B
+0061 FE21 0315 0300 05AE 0062;0061 05AE FE21 0300 0315 0062;0061 05AE FE21 0300 0315 0062;0061 05AE FE21 0300 0315 0062;0061 05AE FE21 0300 0315 0062; # (a◌︡◌̕◌̀◌֮b; a◌֮◌︡◌̀◌̕b; a◌֮◌︡◌̀◌̕b; a◌֮◌︡◌̀◌̕b; a◌֮◌︡◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LIGATURE RIGHT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE22 0062;00E0 05AE FE22 0315 0062;0061 05AE 0300 FE22 0315 0062;00E0 05AE FE22 0315 0062;0061 05AE 0300 FE22 0315 0062; # (a◌̕◌̀◌֮◌︢b; à◌֮◌︢◌̕b; a◌֮◌̀◌︢◌̕b; à◌֮◌︢◌̕b; a◌֮◌̀◌︢◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE TILDE LEFT HALF, LATIN SMALL LETTER B
+0061 FE22 0315 0300 05AE 0062;0061 05AE FE22 0300 0315 0062;0061 05AE FE22 0300 0315 0062;0061 05AE FE22 0300 0315 0062;0061 05AE FE22 0300 0315 0062; # (a◌︢◌̕◌̀◌֮b; a◌֮◌︢◌̀◌̕b; a◌֮◌︢◌̀◌̕b; a◌֮◌︢◌̀◌̕b; a◌֮◌︢◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE TILDE LEFT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE23 0062;00E0 05AE FE23 0315 0062;0061 05AE 0300 FE23 0315 0062;00E0 05AE FE23 0315 0062;0061 05AE 0300 FE23 0315 0062; # (a◌̕◌̀◌֮◌︣b; à◌֮◌︣◌̕b; a◌֮◌̀◌︣◌̕b; à◌֮◌︣◌̕b; a◌֮◌̀◌︣◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE TILDE RIGHT HALF, LATIN SMALL LETTER B
+0061 FE23 0315 0300 05AE 0062;0061 05AE FE23 0300 0315 0062;0061 05AE FE23 0300 0315 0062;0061 05AE FE23 0300 0315 0062;0061 05AE FE23 0300 0315 0062; # (a◌︣◌̕◌̀◌֮b; a◌֮◌︣◌̀◌̕b; a◌֮◌︣◌̀◌̕b; a◌֮◌︣◌̀◌̕b; a◌֮◌︣◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE TILDE RIGHT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE24 0062;00E0 05AE FE24 0315 0062;0061 05AE 0300 FE24 0315 0062;00E0 05AE FE24 0315 0062;0061 05AE 0300 FE24 0315 0062; # (a◌̕◌̀◌֮◌︤b; à◌֮◌︤◌̕b; a◌֮◌̀◌︤◌̕b; à◌֮◌︤◌̕b; a◌֮◌̀◌︤◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING MACRON LEFT HALF, LATIN SMALL LETTER B
+0061 FE24 0315 0300 05AE 0062;0061 05AE FE24 0300 0315 0062;0061 05AE FE24 0300 0315 0062;0061 05AE FE24 0300 0315 0062;0061 05AE FE24 0300 0315 0062; # (a◌︤◌̕◌̀◌֮b; a◌֮◌︤◌̀◌̕b; a◌֮◌︤◌̀◌̕b; a◌֮◌︤◌̀◌̕b; a◌֮◌︤◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON LEFT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE25 0062;00E0 05AE FE25 0315 0062;0061 05AE 0300 FE25 0315 0062;00E0 05AE FE25 0315 0062;0061 05AE 0300 FE25 0315 0062; # (a◌̕◌̀◌֮◌︥b; à◌֮◌︥◌̕b; a◌֮◌̀◌︥◌̕b; à◌֮◌︥◌̕b; a◌֮◌̀◌︥◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING MACRON RIGHT HALF, LATIN SMALL LETTER B
+0061 FE25 0315 0300 05AE 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062; # (a◌︥◌̕◌̀◌֮b; a◌֮◌︥◌̀◌̕b; a◌֮◌︥◌̀◌̕b; a◌֮◌︥◌̀◌̕b; a◌֮◌︥◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON RIGHT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE26 0062;00E0 05AE FE26 0315 0062;0061 05AE 0300 FE26 0315 0062;00E0 05AE FE26 0315 0062;0061 05AE 0300 FE26 0315 0062; # (a◌̕◌̀◌֮◌︦b; à◌֮◌︦◌̕b; a◌֮◌̀◌︦◌̕b; à◌֮◌︦◌̕b; a◌֮◌̀◌︦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CONJOINING MACRON, LATIN SMALL LETTER B
+0061 FE26 0315 0300 05AE 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062; # (a◌︦◌̕◌̀◌֮b; a◌֮◌︦◌̀◌̕b; a◌֮◌︦◌̀◌̕b; a◌֮◌︦◌̀◌̕b; a◌֮◌︦◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CONJOINING MACRON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE27 0062;0061 1DFA 0316 FE27 059A 0062;0061 1DFA 0316 FE27 059A 0062;0061 1DFA 0316 FE27 059A 0062;0061 1DFA 0316 FE27 059A 0062; # (a◌֚◌̖◌᷺◌︧b; a◌᷺◌̖◌︧◌֚b; a◌᷺◌̖◌︧◌֚b; a◌᷺◌̖◌︧◌֚b; a◌᷺◌̖◌︧◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LIGATURE LEFT HALF BELOW, LATIN SMALL LETTER B
+0061 FE27 059A 0316 1DFA 0062;0061 1DFA FE27 0316 059A 0062;0061 1DFA FE27 0316 059A 0062;0061 1DFA FE27 0316 059A 0062;0061 1DFA FE27 0316 059A 0062; # (a◌︧◌֚◌̖◌᷺b; a◌᷺◌︧◌̖◌֚b; a◌᷺◌︧◌̖◌֚b; a◌᷺◌︧◌̖◌֚b; a◌᷺◌︧◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LIGATURE LEFT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE28 0062;0061 1DFA 0316 FE28 059A 0062;0061 1DFA 0316 FE28 059A 0062;0061 1DFA 0316 FE28 059A 0062;0061 1DFA 0316 FE28 059A 0062; # (a◌֚◌̖◌᷺◌︨b; a◌᷺◌̖◌︨◌֚b; a◌᷺◌̖◌︨◌֚b; a◌᷺◌̖◌︨◌֚b; a◌᷺◌̖◌︨◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING LIGATURE RIGHT HALF BELOW, LATIN SMALL LETTER B
+0061 FE28 059A 0316 1DFA 0062;0061 1DFA FE28 0316 059A 0062;0061 1DFA FE28 0316 059A 0062;0061 1DFA FE28 0316 059A 0062;0061 1DFA FE28 0316 059A 0062; # (a◌︨◌֚◌̖◌᷺b; a◌᷺◌︨◌̖◌֚b; a◌᷺◌︨◌̖◌֚b; a◌᷺◌︨◌̖◌֚b; a◌᷺◌︨◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LIGATURE RIGHT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE29 0062;0061 1DFA 0316 FE29 059A 0062;0061 1DFA 0316 FE29 059A 0062;0061 1DFA 0316 FE29 059A 0062;0061 1DFA 0316 FE29 059A 0062; # (a◌֚◌̖◌᷺◌︩b; a◌᷺◌̖◌︩◌֚b; a◌᷺◌̖◌︩◌֚b; a◌᷺◌̖◌︩◌֚b; a◌᷺◌̖◌︩◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING TILDE LEFT HALF BELOW, LATIN SMALL LETTER B
+0061 FE29 059A 0316 1DFA 0062;0061 1DFA FE29 0316 059A 0062;0061 1DFA FE29 0316 059A 0062;0061 1DFA FE29 0316 059A 0062;0061 1DFA FE29 0316 059A 0062; # (a◌︩◌֚◌̖◌᷺b; a◌᷺◌︩◌̖◌֚b; a◌᷺◌︩◌̖◌֚b; a◌᷺◌︩◌̖◌֚b; a◌᷺◌︩◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING TILDE LEFT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE2A 0062;0061 1DFA 0316 FE2A 059A 0062;0061 1DFA 0316 FE2A 059A 0062;0061 1DFA 0316 FE2A 059A 0062;0061 1DFA 0316 FE2A 059A 0062; # (a◌֚◌̖◌᷺◌︪b; a◌᷺◌̖◌︪◌֚b; a◌᷺◌̖◌︪◌֚b; a◌᷺◌̖◌︪◌֚b; a◌᷺◌̖◌︪◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING TILDE RIGHT HALF BELOW, LATIN SMALL LETTER B
+0061 FE2A 059A 0316 1DFA 0062;0061 1DFA FE2A 0316 059A 0062;0061 1DFA FE2A 0316 059A 0062;0061 1DFA FE2A 0316 059A 0062;0061 1DFA FE2A 0316 059A 0062; # (a◌︪◌֚◌̖◌᷺b; a◌᷺◌︪◌̖◌֚b; a◌᷺◌︪◌̖◌֚b; a◌᷺◌︪◌̖◌֚b; a◌᷺◌︪◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING TILDE RIGHT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE2B 0062;0061 1DFA 0316 FE2B 059A 0062;0061 1DFA 0316 FE2B 059A 0062;0061 1DFA 0316 FE2B 059A 0062;0061 1DFA 0316 FE2B 059A 0062; # (a◌֚◌̖◌᷺◌︫b; a◌᷺◌̖◌︫◌֚b; a◌᷺◌̖◌︫◌֚b; a◌᷺◌̖◌︫◌֚b; a◌᷺◌̖◌︫◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING MACRON LEFT HALF BELOW, LATIN SMALL LETTER B
+0061 FE2B 059A 0316 1DFA 0062;0061 1DFA FE2B 0316 059A 0062;0061 1DFA FE2B 0316 059A 0062;0061 1DFA FE2B 0316 059A 0062;0061 1DFA FE2B 0316 059A 0062; # (a◌︫◌֚◌̖◌᷺b; a◌᷺◌︫◌̖◌֚b; a◌᷺◌︫◌̖◌֚b; a◌᷺◌︫◌̖◌֚b; a◌᷺◌︫◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING MACRON LEFT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE2C 0062;0061 1DFA 0316 FE2C 059A 0062;0061 1DFA 0316 FE2C 059A 0062;0061 1DFA 0316 FE2C 059A 0062;0061 1DFA 0316 FE2C 059A 0062; # (a◌֚◌̖◌᷺◌︬b; a◌᷺◌̖◌︬◌֚b; a◌᷺◌̖◌︬◌֚b; a◌᷺◌̖◌︬◌֚b; a◌᷺◌̖◌︬◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING MACRON RIGHT HALF BELOW, LATIN SMALL LETTER B
+0061 FE2C 059A 0316 1DFA 0062;0061 1DFA FE2C 0316 059A 0062;0061 1DFA FE2C 0316 059A 0062;0061 1DFA FE2C 0316 059A 0062;0061 1DFA FE2C 0316 059A 0062; # (a◌︬◌֚◌̖◌᷺b; a◌᷺◌︬◌̖◌֚b; a◌᷺◌︬◌̖◌֚b; a◌᷺◌︬◌̖◌֚b; a◌᷺◌︬◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING MACRON RIGHT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA FE2D 0062;0061 1DFA 0316 FE2D 059A 0062;0061 1DFA 0316 FE2D 059A 0062;0061 1DFA 0316 FE2D 059A 0062;0061 1DFA 0316 FE2D 059A 0062; # (a◌֚◌̖◌᷺◌︭b; a◌᷺◌̖◌︭◌֚b; a◌᷺◌̖◌︭◌֚b; a◌᷺◌̖◌︭◌֚b; a◌᷺◌̖◌︭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COMBINING CONJOINING MACRON BELOW, LATIN SMALL LETTER B
+0061 FE2D 059A 0316 1DFA 0062;0061 1DFA FE2D 0316 059A 0062;0061 1DFA FE2D 0316 059A 0062;0061 1DFA FE2D 0316 059A 0062;0061 1DFA FE2D 0316 059A 0062; # (a◌︭◌֚◌̖◌᷺b; a◌᷺◌︭◌̖◌֚b; a◌᷺◌︭◌̖◌֚b; a◌᷺◌︭◌̖◌֚b; a◌᷺◌︭◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING CONJOINING MACRON BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE2E 0062;00E0 05AE FE2E 0315 0062;0061 05AE 0300 FE2E 0315 0062;00E0 05AE FE2E 0315 0062;0061 05AE 0300 FE2E 0315 0062; # (a◌̕◌̀◌֮◌︮b; à◌֮◌︮◌̕b; a◌֮◌̀◌︮◌̕b; à◌֮◌︮◌̕b; a◌֮◌̀◌︮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC TITLO LEFT HALF, LATIN SMALL LETTER B
+0061 FE2E 0315 0300 05AE 0062;0061 05AE FE2E 0300 0315 0062;0061 05AE FE2E 0300 0315 0062;0061 05AE FE2E 0300 0315 0062;0061 05AE FE2E 0300 0315 0062; # (a◌︮◌̕◌̀◌֮b; a◌֮◌︮◌̀◌̕b; a◌֮◌︮◌̀◌̕b; a◌֮◌︮◌̀◌̕b; a◌֮◌︮◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC TITLO LEFT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE FE2F 0062;00E0 05AE FE2F 0315 0062;0061 05AE 0300 FE2F 0315 0062;00E0 05AE FE2F 0315 0062;0061 05AE 0300 FE2F 0315 0062; # (a◌̕◌̀◌֮◌︯b; à◌֮◌︯◌̕b; a◌֮◌̀◌︯◌̕b; à◌֮◌︯◌̕b; a◌֮◌̀◌︯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC TITLO RIGHT HALF, LATIN SMALL LETTER B
+0061 FE2F 0315 0300 05AE 0062;0061 05AE FE2F 0300 0315 0062;0061 05AE FE2F 0300 0315 0062;0061 05AE FE2F 0300 0315 0062;0061 05AE FE2F 0300 0315 0062; # (a◌︯◌̕◌̀◌֮b; a◌֮◌︯◌̀◌̕b; a◌֮◌︯◌̀◌̕b; a◌֮◌︯◌̀◌̕b; a◌֮◌︯◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC TITLO RIGHT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 101FD 0062;0061 1DFA 0316 101FD 059A 0062;0061 1DFA 0316 101FD 059A 0062;0061 1DFA 0316 101FD 059A 0062;0061 1DFA 0316 101FD 059A 0062; # (a◌֚◌̖◌᷺◌𐇽b; a◌᷺◌̖◌𐇽◌֚b; a◌᷺◌̖◌𐇽◌֚b; a◌᷺◌̖◌𐇽◌֚b; a◌᷺◌̖◌𐇽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE, LATIN SMALL LETTER B
+0061 101FD 059A 0316 1DFA 0062;0061 1DFA 101FD 0316 059A 0062;0061 1DFA 101FD 0316 059A 0062;0061 1DFA 101FD 0316 059A 0062;0061 1DFA 101FD 0316 059A 0062; # (a◌𐇽◌֚◌̖◌᷺b; a◌᷺◌𐇽◌̖◌֚b; a◌᷺◌𐇽◌̖◌֚b; a◌᷺◌𐇽◌̖◌֚b; a◌᷺◌𐇽◌̖◌֚b; ) LATIN SMALL LETTER A, PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 102E0 0062;0061 1DFA 0316 102E0 059A 0062;0061 1DFA 0316 102E0 059A 0062;0061 1DFA 0316 102E0 059A 0062;0061 1DFA 0316 102E0 059A 0062; # (a◌֚◌̖◌᷺◌𐋠b; a◌᷺◌̖◌𐋠◌֚b; a◌᷺◌̖◌𐋠◌֚b; a◌᷺◌̖◌𐋠◌֚b; a◌᷺◌̖◌𐋠◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, COPTIC EPACT THOUSANDS MARK, LATIN SMALL LETTER B
+0061 102E0 059A 0316 1DFA 0062;0061 1DFA 102E0 0316 059A 0062;0061 1DFA 102E0 0316 059A 0062;0061 1DFA 102E0 0316 059A 0062;0061 1DFA 102E0 0316 059A 0062; # (a◌𐋠◌֚◌̖◌᷺b; a◌᷺◌𐋠◌̖◌֚b; a◌᷺◌𐋠◌̖◌֚b; a◌᷺◌𐋠◌̖◌֚b; a◌᷺◌𐋠◌̖◌֚b; ) LATIN SMALL LETTER A, COPTIC EPACT THOUSANDS MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10376 0062;00E0 05AE 10376 0315 0062;0061 05AE 0300 10376 0315 0062;00E0 05AE 10376 0315 0062;0061 05AE 0300 10376 0315 0062; # (a◌̕◌̀◌֮◌𐍶b; à◌֮◌𐍶◌̕b; a◌֮◌̀◌𐍶◌̕b; à◌֮◌𐍶◌̕b; a◌֮◌̀◌𐍶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER AN, LATIN SMALL LETTER B
+0061 10376 0315 0300 05AE 0062;0061 05AE 10376 0300 0315 0062;0061 05AE 10376 0300 0315 0062;0061 05AE 10376 0300 0315 0062;0061 05AE 10376 0300 0315 0062; # (a◌𐍶◌̕◌̀◌֮b; a◌֮◌𐍶◌̀◌̕b; a◌֮◌𐍶◌̀◌̕b; a◌֮◌𐍶◌̀◌̕b; a◌֮◌𐍶◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER AN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10377 0062;00E0 05AE 10377 0315 0062;0061 05AE 0300 10377 0315 0062;00E0 05AE 10377 0315 0062;0061 05AE 0300 10377 0315 0062; # (a◌̕◌̀◌֮◌𐍷b; à◌֮◌𐍷◌̕b; a◌֮◌̀◌𐍷◌̕b; à◌֮◌𐍷◌̕b; a◌֮◌̀◌𐍷◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER DOI, LATIN SMALL LETTER B
+0061 10377 0315 0300 05AE 0062;0061 05AE 10377 0300 0315 0062;0061 05AE 10377 0300 0315 0062;0061 05AE 10377 0300 0315 0062;0061 05AE 10377 0300 0315 0062; # (a◌𐍷◌̕◌̀◌֮b; a◌֮◌𐍷◌̀◌̕b; a◌֮◌𐍷◌̀◌̕b; a◌֮◌𐍷◌̀◌̕b; a◌֮◌𐍷◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER DOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10378 0062;00E0 05AE 10378 0315 0062;0061 05AE 0300 10378 0315 0062;00E0 05AE 10378 0315 0062;0061 05AE 0300 10378 0315 0062; # (a◌̕◌̀◌֮◌𐍸b; à◌֮◌𐍸◌̕b; a◌֮◌̀◌𐍸◌̕b; à◌֮◌𐍸◌̕b; a◌֮◌̀◌𐍸◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER ZATA, LATIN SMALL LETTER B
+0061 10378 0315 0300 05AE 0062;0061 05AE 10378 0300 0315 0062;0061 05AE 10378 0300 0315 0062;0061 05AE 10378 0300 0315 0062;0061 05AE 10378 0300 0315 0062; # (a◌𐍸◌̕◌̀◌֮b; a◌֮◌𐍸◌̀◌̕b; a◌֮◌𐍸◌̀◌̕b; a◌֮◌𐍸◌̀◌̕b; a◌֮◌𐍸◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER ZATA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10379 0062;00E0 05AE 10379 0315 0062;0061 05AE 0300 10379 0315 0062;00E0 05AE 10379 0315 0062;0061 05AE 0300 10379 0315 0062; # (a◌̕◌̀◌֮◌𐍹b; à◌֮◌𐍹◌̕b; a◌֮◌̀◌𐍹◌̕b; à◌֮◌𐍹◌̕b; a◌֮◌̀◌𐍹◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER NENOE, LATIN SMALL LETTER B
+0061 10379 0315 0300 05AE 0062;0061 05AE 10379 0300 0315 0062;0061 05AE 10379 0300 0315 0062;0061 05AE 10379 0300 0315 0062;0061 05AE 10379 0300 0315 0062; # (a◌𐍹◌̕◌̀◌֮b; a◌֮◌𐍹◌̀◌̕b; a◌֮◌𐍹◌̀◌̕b; a◌֮◌𐍹◌̀◌̕b; a◌֮◌𐍹◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER NENOE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1037A 0062;00E0 05AE 1037A 0315 0062;0061 05AE 0300 1037A 0315 0062;00E0 05AE 1037A 0315 0062;0061 05AE 0300 1037A 0315 0062; # (a◌̕◌̀◌֮◌𐍺b; à◌֮◌𐍺◌̕b; a◌֮◌̀◌𐍺◌̕b; à◌֮◌𐍺◌̕b; a◌֮◌̀◌𐍺◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER SII, LATIN SMALL LETTER B
+0061 1037A 0315 0300 05AE 0062;0061 05AE 1037A 0300 0315 0062;0061 05AE 1037A 0300 0315 0062;0061 05AE 1037A 0300 0315 0062;0061 05AE 1037A 0300 0315 0062; # (a◌𐍺◌̕◌̀◌֮b; a◌֮◌𐍺◌̀◌̕b; a◌֮◌𐍺◌̀◌̕b; a◌֮◌𐍺◌̀◌̕b; a◌֮◌𐍺◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER SII, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10A0D 0062;0061 1DFA 0316 10A0D 059A 0062;0061 1DFA 0316 10A0D 059A 0062;0061 1DFA 0316 10A0D 059A 0062;0061 1DFA 0316 10A0D 059A 0062; # (a◌֚◌̖◌᷺◌𐨍b; a◌᷺◌̖◌𐨍◌֚b; a◌᷺◌̖◌𐨍◌֚b; a◌᷺◌̖◌𐨍◌֚b; a◌᷺◌̖◌𐨍◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, KHAROSHTHI SIGN DOUBLE RING BELOW, LATIN SMALL LETTER B
+0061 10A0D 059A 0316 1DFA 0062;0061 1DFA 10A0D 0316 059A 0062;0061 1DFA 10A0D 0316 059A 0062;0061 1DFA 10A0D 0316 059A 0062;0061 1DFA 10A0D 0316 059A 0062; # (a◌𐨍◌֚◌̖◌᷺b; a◌᷺◌𐨍◌̖◌֚b; a◌᷺◌𐨍◌̖◌֚b; a◌᷺◌𐨍◌̖◌֚b; a◌᷺◌𐨍◌̖◌֚b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN DOUBLE RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10A0F 0062;00E0 05AE 10A0F 0315 0062;0061 05AE 0300 10A0F 0315 0062;00E0 05AE 10A0F 0315 0062;0061 05AE 0300 10A0F 0315 0062; # (a◌̕◌̀◌֮◌𐨏b; à◌֮◌𐨏◌̕b; a◌֮◌̀◌𐨏◌̕b; à◌֮◌𐨏◌̕b; a◌֮◌̀◌𐨏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, KHAROSHTHI SIGN VISARGA, LATIN SMALL LETTER B
+0061 10A0F 0315 0300 05AE 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062; # (a◌𐨏◌̕◌̀◌֮b; a◌֮◌𐨏◌̀◌̕b; a◌֮◌𐨏◌̀◌̕b; a◌֮◌𐨏◌̀◌̕b; a◌֮◌𐨏◌̀◌̕b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN VISARGA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10A38 0062;00E0 05AE 10A38 0315 0062;0061 05AE 0300 10A38 0315 0062;00E0 05AE 10A38 0315 0062;0061 05AE 0300 10A38 0315 0062; # (a◌̕◌̀◌֮◌𐨸b; à◌֮◌𐨸◌̕b; a◌֮◌̀◌𐨸◌̕b; à◌֮◌𐨸◌̕b; a◌֮◌̀◌𐨸◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, KHAROSHTHI SIGN BAR ABOVE, LATIN SMALL LETTER B
+0061 10A38 0315 0300 05AE 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062; # (a◌𐨸◌̕◌̀◌֮b; a◌֮◌𐨸◌̀◌̕b; a◌֮◌𐨸◌̀◌̕b; a◌֮◌𐨸◌̀◌̕b; a◌֮◌𐨸◌̀◌̕b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN BAR ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 16FF0 0334 10A39 0062;0061 0334 10A39 16FF0 0062;0061 0334 10A39 16FF0 0062;0061 0334 10A39 16FF0 0062;0061 0334 10A39 16FF0 0062; # (a𖿰◌̴◌𐨹b; a◌̴◌𐨹𖿰b; a◌̴◌𐨹𖿰b; a◌̴◌𐨹𖿰b; a◌̴◌𐨹𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, KHAROSHTHI SIGN CAUDA, LATIN SMALL LETTER B
+0061 10A39 16FF0 0334 0062;0061 10A39 0334 16FF0 0062;0061 10A39 0334 16FF0 0062;0061 10A39 0334 16FF0 0062;0061 10A39 0334 16FF0 0062; # (a◌𐨹𖿰◌̴b; a◌𐨹◌̴𖿰b; a◌𐨹◌̴𖿰b; a◌𐨹◌̴𖿰b; a◌𐨹◌̴𖿰b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN CAUDA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10A3A 0062;0061 1DFA 0316 10A3A 059A 0062;0061 1DFA 0316 10A3A 059A 0062;0061 1DFA 0316 10A3A 059A 0062;0061 1DFA 0316 10A3A 059A 0062; # (a◌֚◌̖◌᷺◌𐨺b; a◌᷺◌̖◌𐨺◌֚b; a◌᷺◌̖◌𐨺◌֚b; a◌᷺◌̖◌𐨺◌֚b; a◌᷺◌̖◌𐨺◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, KHAROSHTHI SIGN DOT BELOW, LATIN SMALL LETTER B
+0061 10A3A 059A 0316 1DFA 0062;0061 1DFA 10A3A 0316 059A 0062;0061 1DFA 10A3A 0316 059A 0062;0061 1DFA 10A3A 0316 059A 0062;0061 1DFA 10A3A 0316 059A 0062; # (a◌𐨺◌֚◌̖◌᷺b; a◌᷺◌𐨺◌̖◌֚b; a◌᷺◌𐨺◌̖◌֚b; a◌᷺◌𐨺◌̖◌֚b; a◌᷺◌𐨺◌̖◌֚b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 05B0 094D 3099 10A3F 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062; # (a◌ְ◌्◌゙◌𐨿b; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHAROSHTHI VIRAMA, LATIN SMALL LETTER B
+0061 10A3F 05B0 094D 3099 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062; # (a◌𐨿◌ְ◌्◌゙b; a◌゙◌𐨿◌्◌ְb; a◌゙◌𐨿◌्◌ְb; a◌゙◌𐨿◌्◌ְb; a◌゙◌𐨿◌्◌ְb; ) LATIN SMALL LETTER A, KHAROSHTHI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10AE5 0062;00E0 05AE 10AE5 0315 0062;0061 05AE 0300 10AE5 0315 0062;00E0 05AE 10AE5 0315 0062;0061 05AE 0300 10AE5 0315 0062; # (a◌̕◌̀◌֮◌𐫥b; à◌֮◌𐫥◌̕b; a◌֮◌̀◌𐫥◌̕b; à◌֮◌𐫥◌̕b; a◌֮◌̀◌𐫥◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MANICHAEAN ABBREVIATION MARK ABOVE, LATIN SMALL LETTER B
+0061 10AE5 0315 0300 05AE 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062; # (a◌𐫥◌̕◌̀◌֮b; a◌֮◌𐫥◌̀◌̕b; a◌֮◌𐫥◌̀◌̕b; a◌֮◌𐫥◌̀◌̕b; a◌֮◌𐫥◌̀◌̕b; ) LATIN SMALL LETTER A, MANICHAEAN ABBREVIATION MARK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10AE6 0062;0061 1DFA 0316 10AE6 059A 0062;0061 1DFA 0316 10AE6 059A 0062;0061 1DFA 0316 10AE6 059A 0062;0061 1DFA 0316 10AE6 059A 0062; # (a◌֚◌̖◌᷺◌𐫦b; a◌᷺◌̖◌𐫦◌֚b; a◌᷺◌̖◌𐫦◌֚b; a◌᷺◌̖◌𐫦◌֚b; a◌᷺◌̖◌𐫦◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MANICHAEAN ABBREVIATION MARK BELOW, LATIN SMALL LETTER B
+0061 10AE6 059A 0316 1DFA 0062;0061 1DFA 10AE6 0316 059A 0062;0061 1DFA 10AE6 0316 059A 0062;0061 1DFA 10AE6 0316 059A 0062;0061 1DFA 10AE6 0316 059A 0062; # (a◌𐫦◌֚◌̖◌᷺b; a◌᷺◌𐫦◌̖◌֚b; a◌᷺◌𐫦◌̖◌֚b; a◌᷺◌𐫦◌̖◌֚b; a◌᷺◌𐫦◌̖◌֚b; ) LATIN SMALL LETTER A, MANICHAEAN ABBREVIATION MARK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10D24 0062;00E0 05AE 10D24 0315 0062;0061 05AE 0300 10D24 0315 0062;00E0 05AE 10D24 0315 0062;0061 05AE 0300 10D24 0315 0062; # (a◌̕◌̀◌֮◌𐴤b; à◌֮◌𐴤◌̕b; a◌֮◌̀◌𐴤◌̕b; à◌֮◌𐴤◌̕b; a◌֮◌̀◌𐴤◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HANIFI ROHINGYA SIGN HARBAHAY, LATIN SMALL LETTER B
+0061 10D24 0315 0300 05AE 0062;0061 05AE 10D24 0300 0315 0062;0061 05AE 10D24 0300 0315 0062;0061 05AE 10D24 0300 0315 0062;0061 05AE 10D24 0300 0315 0062; # (a◌𐴤◌̕◌̀◌֮b; a◌֮◌𐴤◌̀◌̕b; a◌֮◌𐴤◌̀◌̕b; a◌֮◌𐴤◌̀◌̕b; a◌֮◌𐴤◌̀◌̕b; ) LATIN SMALL LETTER A, HANIFI ROHINGYA SIGN HARBAHAY, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10D25 0062;00E0 05AE 10D25 0315 0062;0061 05AE 0300 10D25 0315 0062;00E0 05AE 10D25 0315 0062;0061 05AE 0300 10D25 0315 0062; # (a◌̕◌̀◌֮◌𐴥b; à◌֮◌𐴥◌̕b; a◌֮◌̀◌𐴥◌̕b; à◌֮◌𐴥◌̕b; a◌֮◌̀◌𐴥◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HANIFI ROHINGYA SIGN TAHALA, LATIN SMALL LETTER B
+0061 10D25 0315 0300 05AE 0062;0061 05AE 10D25 0300 0315 0062;0061 05AE 10D25 0300 0315 0062;0061 05AE 10D25 0300 0315 0062;0061 05AE 10D25 0300 0315 0062; # (a◌𐴥◌̕◌̀◌֮b; a◌֮◌𐴥◌̀◌̕b; a◌֮◌𐴥◌̀◌̕b; a◌֮◌𐴥◌̀◌̕b; a◌֮◌𐴥◌̀◌̕b; ) LATIN SMALL LETTER A, HANIFI ROHINGYA SIGN TAHALA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10D26 0062;00E0 05AE 10D26 0315 0062;0061 05AE 0300 10D26 0315 0062;00E0 05AE 10D26 0315 0062;0061 05AE 0300 10D26 0315 0062; # (a◌̕◌̀◌֮◌𐴦b; à◌֮◌𐴦◌̕b; a◌֮◌̀◌𐴦◌̕b; à◌֮◌𐴦◌̕b; a◌֮◌̀◌𐴦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HANIFI ROHINGYA SIGN TANA, LATIN SMALL LETTER B
+0061 10D26 0315 0300 05AE 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062; # (a◌𐴦◌̕◌̀◌֮b; a◌֮◌𐴦◌̀◌̕b; a◌֮◌𐴦◌̀◌̕b; a◌֮◌𐴦◌̀◌̕b; a◌֮◌𐴦◌̀◌̕b; ) LATIN SMALL LETTER A, HANIFI ROHINGYA SIGN TANA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10D27 0062;00E0 05AE 10D27 0315 0062;0061 05AE 0300 10D27 0315 0062;00E0 05AE 10D27 0315 0062;0061 05AE 0300 10D27 0315 0062; # (a◌̕◌̀◌֮◌𐴧b; à◌֮◌𐴧◌̕b; a◌֮◌̀◌𐴧◌̕b; à◌֮◌𐴧◌̕b; a◌֮◌̀◌𐴧◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, HANIFI ROHINGYA SIGN TASSI, LATIN SMALL LETTER B
+0061 10D27 0315 0300 05AE 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062; # (a◌𐴧◌̕◌̀◌֮b; a◌֮◌𐴧◌̀◌̕b; a◌֮◌𐴧◌̀◌̕b; a◌֮◌𐴧◌̀◌̕b; a◌֮◌𐴧◌̀◌̕b; ) LATIN SMALL LETTER A, HANIFI ROHINGYA SIGN TASSI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10EAB 0062;00E0 05AE 10EAB 0315 0062;0061 05AE 0300 10EAB 0315 0062;00E0 05AE 10EAB 0315 0062;0061 05AE 0300 10EAB 0315 0062; # (a◌̕◌̀◌֮◌𐺫b; à◌֮◌𐺫◌̕b; a◌֮◌̀◌𐺫◌̕b; à◌֮◌𐺫◌̕b; a◌֮◌̀◌𐺫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, YEZIDI COMBINING HAMZA MARK, LATIN SMALL LETTER B
+0061 10EAB 0315 0300 05AE 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062; # (a◌𐺫◌̕◌̀◌֮b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; ) LATIN SMALL LETTER A, YEZIDI COMBINING HAMZA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10EAC 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062; # (a◌̕◌̀◌֮◌𐺬b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, YEZIDI COMBINING MADDA MARK, LATIN SMALL LETTER B
+0061 10EAC 0315 0300 05AE 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062; # (a◌𐺬◌̕◌̀◌֮b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; ) LATIN SMALL LETTER A, YEZIDI COMBINING MADDA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10EFD 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062; # (a◌֚◌̖◌᷺◌𐻽b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD SAKTA, LATIN SMALL LETTER B
+0061 10EFD 059A 0316 1DFA 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062; # (a◌𐻽◌֚◌̖◌᷺b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD SAKTA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10EFE 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062; # (a◌֚◌̖◌᷺◌𐻾b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD QASR, LATIN SMALL LETTER B
+0061 10EFE 059A 0316 1DFA 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062; # (a◌𐻾◌֚◌̖◌᷺b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD QASR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10EFF 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062; # (a◌֚◌̖◌᷺◌𐻿b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD MADDA, LATIN SMALL LETTER B
+0061 10EFF 059A 0316 1DFA 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062; # (a◌𐻿◌֚◌̖◌᷺b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD MADDA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F46 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062; # (a◌֚◌̖◌᷺◌𐽆b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING DOT BELOW, LATIN SMALL LETTER B
+0061 10F46 059A 0316 1DFA 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062; # (a◌𐽆◌֚◌̖◌᷺b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F47 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062; # (a◌֚◌̖◌᷺◌𐽇b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING TWO DOTS BELOW, LATIN SMALL LETTER B
+0061 10F47 059A 0316 1DFA 0062;0061 1DFA 10F47 0316 059A 0062;0061 1DFA 10F47 0316 059A 0062;0061 1DFA 10F47 0316 059A 0062;0061 1DFA 10F47 0316 059A 0062; # (a◌𐽇◌֚◌̖◌᷺b; a◌᷺◌𐽇◌̖◌֚b; a◌᷺◌𐽇◌̖◌֚b; a◌᷺◌𐽇◌̖◌֚b; a◌᷺◌𐽇◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING TWO DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10F48 0062;00E0 05AE 10F48 0315 0062;0061 05AE 0300 10F48 0315 0062;00E0 05AE 10F48 0315 0062;0061 05AE 0300 10F48 0315 0062; # (a◌̕◌̀◌֮◌𐽈b; à◌֮◌𐽈◌̕b; a◌֮◌̀◌𐽈◌̕b; à◌֮◌𐽈◌̕b; a◌֮◌̀◌𐽈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SOGDIAN COMBINING DOT ABOVE, LATIN SMALL LETTER B
+0061 10F48 0315 0300 05AE 0062;0061 05AE 10F48 0300 0315 0062;0061 05AE 10F48 0300 0315 0062;0061 05AE 10F48 0300 0315 0062;0061 05AE 10F48 0300 0315 0062; # (a◌𐽈◌̕◌̀◌֮b; a◌֮◌𐽈◌̀◌̕b; a◌֮◌𐽈◌̀◌̕b; a◌֮◌𐽈◌̀◌̕b; a◌֮◌𐽈◌̀◌̕b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10F49 0062;00E0 05AE 10F49 0315 0062;0061 05AE 0300 10F49 0315 0062;00E0 05AE 10F49 0315 0062;0061 05AE 0300 10F49 0315 0062; # (a◌̕◌̀◌֮◌𐽉b; à◌֮◌𐽉◌̕b; a◌֮◌̀◌𐽉◌̕b; à◌֮◌𐽉◌̕b; a◌֮◌̀◌𐽉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SOGDIAN COMBINING TWO DOTS ABOVE, LATIN SMALL LETTER B
+0061 10F49 0315 0300 05AE 0062;0061 05AE 10F49 0300 0315 0062;0061 05AE 10F49 0300 0315 0062;0061 05AE 10F49 0300 0315 0062;0061 05AE 10F49 0300 0315 0062; # (a◌𐽉◌̕◌̀◌֮b; a◌֮◌𐽉◌̀◌̕b; a◌֮◌𐽉◌̀◌̕b; a◌֮◌𐽉◌̀◌̕b; a◌֮◌𐽉◌̀◌̕b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING TWO DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10F4A 0062;00E0 05AE 10F4A 0315 0062;0061 05AE 0300 10F4A 0315 0062;00E0 05AE 10F4A 0315 0062;0061 05AE 0300 10F4A 0315 0062; # (a◌̕◌̀◌֮◌𐽊b; à◌֮◌𐽊◌̕b; a◌֮◌̀◌𐽊◌̕b; à◌֮◌𐽊◌̕b; a◌֮◌̀◌𐽊◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SOGDIAN COMBINING CURVE ABOVE, LATIN SMALL LETTER B
+0061 10F4A 0315 0300 05AE 0062;0061 05AE 10F4A 0300 0315 0062;0061 05AE 10F4A 0300 0315 0062;0061 05AE 10F4A 0300 0315 0062;0061 05AE 10F4A 0300 0315 0062; # (a◌𐽊◌̕◌̀◌֮b; a◌֮◌𐽊◌̀◌̕b; a◌֮◌𐽊◌̀◌̕b; a◌֮◌𐽊◌̀◌̕b; a◌֮◌𐽊◌̀◌̕b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING CURVE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F4B 0062;0061 1DFA 0316 10F4B 059A 0062;0061 1DFA 0316 10F4B 059A 0062;0061 1DFA 0316 10F4B 059A 0062;0061 1DFA 0316 10F4B 059A 0062; # (a◌֚◌̖◌᷺◌𐽋b; a◌᷺◌̖◌𐽋◌֚b; a◌᷺◌̖◌𐽋◌֚b; a◌᷺◌̖◌𐽋◌֚b; a◌᷺◌̖◌𐽋◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING CURVE BELOW, LATIN SMALL LETTER B
+0061 10F4B 059A 0316 1DFA 0062;0061 1DFA 10F4B 0316 059A 0062;0061 1DFA 10F4B 0316 059A 0062;0061 1DFA 10F4B 0316 059A 0062;0061 1DFA 10F4B 0316 059A 0062; # (a◌𐽋◌֚◌̖◌᷺b; a◌᷺◌𐽋◌̖◌֚b; a◌᷺◌𐽋◌̖◌֚b; a◌᷺◌𐽋◌̖◌֚b; a◌᷺◌𐽋◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING CURVE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10F4C 0062;00E0 05AE 10F4C 0315 0062;0061 05AE 0300 10F4C 0315 0062;00E0 05AE 10F4C 0315 0062;0061 05AE 0300 10F4C 0315 0062; # (a◌̕◌̀◌֮◌𐽌b; à◌֮◌𐽌◌̕b; a◌֮◌̀◌𐽌◌̕b; à◌֮◌𐽌◌̕b; a◌֮◌̀◌𐽌◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, SOGDIAN COMBINING HOOK ABOVE, LATIN SMALL LETTER B
+0061 10F4C 0315 0300 05AE 0062;0061 05AE 10F4C 0300 0315 0062;0061 05AE 10F4C 0300 0315 0062;0061 05AE 10F4C 0300 0315 0062;0061 05AE 10F4C 0300 0315 0062; # (a◌𐽌◌̕◌̀◌֮b; a◌֮◌𐽌◌̀◌̕b; a◌֮◌𐽌◌̀◌̕b; a◌֮◌𐽌◌̀◌̕b; a◌֮◌𐽌◌̀◌̕b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING HOOK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F4D 0062;0061 1DFA 0316 10F4D 059A 0062;0061 1DFA 0316 10F4D 059A 0062;0061 1DFA 0316 10F4D 059A 0062;0061 1DFA 0316 10F4D 059A 0062; # (a◌֚◌̖◌᷺◌𐽍b; a◌᷺◌̖◌𐽍◌֚b; a◌᷺◌̖◌𐽍◌֚b; a◌᷺◌̖◌𐽍◌֚b; a◌᷺◌̖◌𐽍◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING HOOK BELOW, LATIN SMALL LETTER B
+0061 10F4D 059A 0316 1DFA 0062;0061 1DFA 10F4D 0316 059A 0062;0061 1DFA 10F4D 0316 059A 0062;0061 1DFA 10F4D 0316 059A 0062;0061 1DFA 10F4D 0316 059A 0062; # (a◌𐽍◌֚◌̖◌᷺b; a◌᷺◌𐽍◌̖◌֚b; a◌᷺◌𐽍◌̖◌֚b; a◌᷺◌𐽍◌̖◌֚b; a◌᷺◌𐽍◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING HOOK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F4E 0062;0061 1DFA 0316 10F4E 059A 0062;0061 1DFA 0316 10F4E 059A 0062;0061 1DFA 0316 10F4E 059A 0062;0061 1DFA 0316 10F4E 059A 0062; # (a◌֚◌̖◌᷺◌𐽎b; a◌᷺◌̖◌𐽎◌֚b; a◌᷺◌̖◌𐽎◌֚b; a◌᷺◌̖◌𐽎◌֚b; a◌᷺◌̖◌𐽎◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING LONG HOOK BELOW, LATIN SMALL LETTER B
+0061 10F4E 059A 0316 1DFA 0062;0061 1DFA 10F4E 0316 059A 0062;0061 1DFA 10F4E 0316 059A 0062;0061 1DFA 10F4E 0316 059A 0062;0061 1DFA 10F4E 0316 059A 0062; # (a◌𐽎◌֚◌̖◌᷺b; a◌᷺◌𐽎◌̖◌֚b; a◌᷺◌𐽎◌̖◌֚b; a◌᷺◌𐽎◌̖◌֚b; a◌᷺◌𐽎◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING LONG HOOK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F4F 0062;0061 1DFA 0316 10F4F 059A 0062;0061 1DFA 0316 10F4F 059A 0062;0061 1DFA 0316 10F4F 059A 0062;0061 1DFA 0316 10F4F 059A 0062; # (a◌֚◌̖◌᷺◌𐽏b; a◌᷺◌̖◌𐽏◌֚b; a◌᷺◌̖◌𐽏◌֚b; a◌᷺◌̖◌𐽏◌֚b; a◌᷺◌̖◌𐽏◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING RESH BELOW, LATIN SMALL LETTER B
+0061 10F4F 059A 0316 1DFA 0062;0061 1DFA 10F4F 0316 059A 0062;0061 1DFA 10F4F 0316 059A 0062;0061 1DFA 10F4F 0316 059A 0062;0061 1DFA 10F4F 0316 059A 0062; # (a◌𐽏◌֚◌̖◌᷺b; a◌᷺◌𐽏◌̖◌֚b; a◌᷺◌𐽏◌̖◌֚b; a◌᷺◌𐽏◌̖◌֚b; a◌᷺◌𐽏◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING RESH BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F50 0062;0061 1DFA 0316 10F50 059A 0062;0061 1DFA 0316 10F50 059A 0062;0061 1DFA 0316 10F50 059A 0062;0061 1DFA 0316 10F50 059A 0062; # (a◌֚◌̖◌᷺◌𐽐b; a◌᷺◌̖◌𐽐◌֚b; a◌᷺◌̖◌𐽐◌֚b; a◌᷺◌̖◌𐽐◌֚b; a◌᷺◌̖◌𐽐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING STROKE BELOW, LATIN SMALL LETTER B
+0061 10F50 059A 0316 1DFA 0062;0061 1DFA 10F50 0316 059A 0062;0061 1DFA 10F50 0316 059A 0062;0061 1DFA 10F50 0316 059A 0062;0061 1DFA 10F50 0316 059A 0062; # (a◌𐽐◌֚◌̖◌᷺b; a◌᷺◌𐽐◌̖◌֚b; a◌᷺◌𐽐◌̖◌֚b; a◌᷺◌𐽐◌̖◌֚b; a◌᷺◌𐽐◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING STROKE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10F82 0062;00E0 05AE 10F82 0315 0062;0061 05AE 0300 10F82 0315 0062;00E0 05AE 10F82 0315 0062;0061 05AE 0300 10F82 0315 0062; # (a◌̕◌̀◌֮◌𐾂b; à◌֮◌𐾂◌̕b; a◌֮◌̀◌𐾂◌̕b; à◌֮◌𐾂◌̕b; a◌֮◌̀◌𐾂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, OLD UYGHUR COMBINING DOT ABOVE, LATIN SMALL LETTER B
+0061 10F82 0315 0300 05AE 0062;0061 05AE 10F82 0300 0315 0062;0061 05AE 10F82 0300 0315 0062;0061 05AE 10F82 0300 0315 0062;0061 05AE 10F82 0300 0315 0062; # (a◌𐾂◌̕◌̀◌֮b; a◌֮◌𐾂◌̀◌̕b; a◌֮◌𐾂◌̀◌̕b; a◌֮◌𐾂◌̀◌̕b; a◌֮◌𐾂◌̀◌̕b; ) LATIN SMALL LETTER A, OLD UYGHUR COMBINING DOT ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F83 0062;0061 1DFA 0316 10F83 059A 0062;0061 1DFA 0316 10F83 059A 0062;0061 1DFA 0316 10F83 059A 0062;0061 1DFA 0316 10F83 059A 0062; # (a◌֚◌̖◌᷺◌𐾃b; a◌᷺◌̖◌𐾃◌֚b; a◌᷺◌̖◌𐾃◌֚b; a◌᷺◌̖◌𐾃◌֚b; a◌᷺◌̖◌𐾃◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, OLD UYGHUR COMBINING DOT BELOW, LATIN SMALL LETTER B
+0061 10F83 059A 0316 1DFA 0062;0061 1DFA 10F83 0316 059A 0062;0061 1DFA 10F83 0316 059A 0062;0061 1DFA 10F83 0316 059A 0062;0061 1DFA 10F83 0316 059A 0062; # (a◌𐾃◌֚◌̖◌᷺b; a◌᷺◌𐾃◌̖◌֚b; a◌᷺◌𐾃◌̖◌֚b; a◌᷺◌𐾃◌̖◌֚b; a◌᷺◌𐾃◌̖◌֚b; ) LATIN SMALL LETTER A, OLD UYGHUR COMBINING DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10F84 0062;00E0 05AE 10F84 0315 0062;0061 05AE 0300 10F84 0315 0062;00E0 05AE 10F84 0315 0062;0061 05AE 0300 10F84 0315 0062; # (a◌̕◌̀◌֮◌𐾄b; à◌֮◌𐾄◌̕b; a◌֮◌̀◌𐾄◌̕b; à◌֮◌𐾄◌̕b; a◌֮◌̀◌𐾄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, OLD UYGHUR COMBINING TWO DOTS ABOVE, LATIN SMALL LETTER B
+0061 10F84 0315 0300 05AE 0062;0061 05AE 10F84 0300 0315 0062;0061 05AE 10F84 0300 0315 0062;0061 05AE 10F84 0300 0315 0062;0061 05AE 10F84 0300 0315 0062; # (a◌𐾄◌̕◌̀◌֮b; a◌֮◌𐾄◌̀◌̕b; a◌֮◌𐾄◌̀◌̕b; a◌֮◌𐾄◌̀◌̕b; a◌֮◌𐾄◌̀◌̕b; ) LATIN SMALL LETTER A, OLD UYGHUR COMBINING TWO DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10F85 0062;0061 1DFA 0316 10F85 059A 0062;0061 1DFA 0316 10F85 059A 0062;0061 1DFA 0316 10F85 059A 0062;0061 1DFA 0316 10F85 059A 0062; # (a◌֚◌̖◌᷺◌𐾅b; a◌᷺◌̖◌𐾅◌֚b; a◌᷺◌̖◌𐾅◌֚b; a◌᷺◌̖◌𐾅◌֚b; a◌᷺◌̖◌𐾅◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, OLD UYGHUR COMBINING TWO DOTS BELOW, LATIN SMALL LETTER B
+0061 10F85 059A 0316 1DFA 0062;0061 1DFA 10F85 0316 059A 0062;0061 1DFA 10F85 0316 059A 0062;0061 1DFA 10F85 0316 059A 0062;0061 1DFA 10F85 0316 059A 0062; # (a◌𐾅◌֚◌̖◌᷺b; a◌᷺◌𐾅◌̖◌֚b; a◌᷺◌𐾅◌̖◌֚b; a◌᷺◌𐾅◌̖◌֚b; a◌᷺◌𐾅◌̖◌֚b; ) LATIN SMALL LETTER A, OLD UYGHUR COMBINING TWO DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11046 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062; # (a◌ְ◌्◌゙◌𑁆b; a◌゙◌्◌𑁆◌ְb; a◌゙◌्◌𑁆◌ְb; a◌゙◌्◌𑁆◌ְb; a◌゙◌्◌𑁆◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BRAHMI VIRAMA, LATIN SMALL LETTER B
+0061 11046 05B0 094D 3099 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062; # (a◌𑁆◌ְ◌्◌゙b; a◌゙◌𑁆◌्◌ְb; a◌゙◌𑁆◌्◌ְb; a◌゙◌𑁆◌्◌ְb; a◌゙◌𑁆◌्◌ְb; ) LATIN SMALL LETTER A, BRAHMI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11070 0062;0061 3099 094D 11070 05B0 0062;0061 3099 094D 11070 05B0 0062;0061 3099 094D 11070 05B0 0062;0061 3099 094D 11070 05B0 0062; # (a◌ְ◌्◌゙◌𑁰b; a◌゙◌्◌𑁰◌ְb; a◌゙◌्◌𑁰◌ְb; a◌゙◌्◌𑁰◌ְb; a◌゙◌्◌𑁰◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BRAHMI SIGN OLD TAMIL VIRAMA, LATIN SMALL LETTER B
+0061 11070 05B0 094D 3099 0062;0061 3099 11070 094D 05B0 0062;0061 3099 11070 094D 05B0 0062;0061 3099 11070 094D 05B0 0062;0061 3099 11070 094D 05B0 0062; # (a◌𑁰◌ְ◌्◌゙b; a◌゙◌𑁰◌्◌ְb; a◌゙◌𑁰◌्◌ְb; a◌゙◌𑁰◌्◌ְb; a◌゙◌𑁰◌्◌ְb; ) LATIN SMALL LETTER A, BRAHMI SIGN OLD TAMIL VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1107F 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062; # (a◌ְ◌्◌゙◌𑁿b; a◌゙◌्◌𑁿◌ְb; a◌゙◌्◌𑁿◌ְb; a◌゙◌्◌𑁿◌ְb; a◌゙◌्◌𑁿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BRAHMI NUMBER JOINER, LATIN SMALL LETTER B
+0061 1107F 05B0 094D 3099 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062; # (a◌𑁿◌ְ◌्◌゙b; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; ) LATIN SMALL LETTER A, BRAHMI NUMBER JOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 110B9 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062; # (a◌ְ◌्◌゙◌𑂹b; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAITHI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 110B9 05B0 094D 3099 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062; # (a◌𑂹◌ְ◌्◌゙b; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; ) LATIN SMALL LETTER A, KAITHI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 110BA 0062;0061 16FF0 093C 110BA 3099 0062;0061 16FF0 093C 110BA 3099 0062;0061 16FF0 093C 110BA 3099 0062;0061 16FF0 093C 110BA 3099 0062; # (a◌゙◌𖿰़◌𑂺b; a𖿰◌़◌𑂺◌゙b; a𖿰◌़◌𑂺◌゙b; a𖿰◌़◌𑂺◌゙b; a𖿰◌़◌𑂺◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, KAITHI SIGN NUKTA, LATIN SMALL LETTER B
+0061 110BA 3099 093C 16FF0 0062;0061 16FF0 110BA 093C 3099 0062;0061 16FF0 110BA 093C 3099 0062;0061 16FF0 110BA 093C 3099 0062;0061 16FF0 110BA 093C 3099 0062; # (a◌𑂺◌゙◌𖿰़b; a𖿰◌𑂺◌़◌゙b; a𖿰◌𑂺◌़◌゙b; a𖿰◌𑂺◌़◌゙b; a𖿰◌𑂺◌़◌゙b; ) LATIN SMALL LETTER A, KAITHI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11100 0062;00E0 05AE 11100 0315 0062;0061 05AE 0300 11100 0315 0062;00E0 05AE 11100 0315 0062;0061 05AE 0300 11100 0315 0062; # (a◌̕◌̀◌֮◌𑄀b; à◌֮◌𑄀◌̕b; a◌֮◌̀◌𑄀◌̕b; à◌֮◌𑄀◌̕b; a◌֮◌̀◌𑄀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, CHAKMA SIGN CANDRABINDU, LATIN SMALL LETTER B
+0061 11100 0315 0300 05AE 0062;0061 05AE 11100 0300 0315 0062;0061 05AE 11100 0300 0315 0062;0061 05AE 11100 0300 0315 0062;0061 05AE 11100 0300 0315 0062; # (a◌𑄀◌̕◌̀◌֮b; a◌֮◌𑄀◌̀◌̕b; a◌֮◌𑄀◌̀◌̕b; a◌֮◌𑄀◌̀◌̕b; a◌֮◌𑄀◌̀◌̕b; ) LATIN SMALL LETTER A, CHAKMA SIGN CANDRABINDU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11101 0062;00E0 05AE 11101 0315 0062;0061 05AE 0300 11101 0315 0062;00E0 05AE 11101 0315 0062;0061 05AE 0300 11101 0315 0062; # (a◌̕◌̀◌֮◌𑄁b; à◌֮◌𑄁◌̕b; a◌֮◌̀◌𑄁◌̕b; à◌֮◌𑄁◌̕b; a◌֮◌̀◌𑄁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, CHAKMA SIGN ANUSVARA, LATIN SMALL LETTER B
+0061 11101 0315 0300 05AE 0062;0061 05AE 11101 0300 0315 0062;0061 05AE 11101 0300 0315 0062;0061 05AE 11101 0300 0315 0062;0061 05AE 11101 0300 0315 0062; # (a◌𑄁◌̕◌̀◌֮b; a◌֮◌𑄁◌̀◌̕b; a◌֮◌𑄁◌̀◌̕b; a◌֮◌𑄁◌̀◌̕b; a◌֮◌𑄁◌̀◌̕b; ) LATIN SMALL LETTER A, CHAKMA SIGN ANUSVARA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11102 0062;00E0 05AE 11102 0315 0062;0061 05AE 0300 11102 0315 0062;00E0 05AE 11102 0315 0062;0061 05AE 0300 11102 0315 0062; # (a◌̕◌̀◌֮◌𑄂b; à◌֮◌𑄂◌̕b; a◌֮◌̀◌𑄂◌̕b; à◌֮◌𑄂◌̕b; a◌֮◌̀◌𑄂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, CHAKMA SIGN VISARGA, LATIN SMALL LETTER B
+0061 11102 0315 0300 05AE 0062;0061 05AE 11102 0300 0315 0062;0061 05AE 11102 0300 0315 0062;0061 05AE 11102 0300 0315 0062;0061 05AE 11102 0300 0315 0062; # (a◌𑄂◌̕◌̀◌֮b; a◌֮◌𑄂◌̀◌̕b; a◌֮◌𑄂◌̀◌̕b; a◌֮◌𑄂◌̀◌̕b; a◌֮◌𑄂◌̀◌̕b; ) LATIN SMALL LETTER A, CHAKMA SIGN VISARGA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11133 0062;0061 3099 094D 11133 05B0 0062;0061 3099 094D 11133 05B0 0062;0061 3099 094D 11133 05B0 0062;0061 3099 094D 11133 05B0 0062; # (a◌ְ◌्◌゙◌𑄳b; a◌゙◌्◌𑄳◌ְb; a◌゙◌्◌𑄳◌ְb; a◌゙◌्◌𑄳◌ְb; a◌゙◌्◌𑄳◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, CHAKMA VIRAMA, LATIN SMALL LETTER B
+0061 11133 05B0 094D 3099 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062; # (a◌𑄳◌ְ◌्◌゙b; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; ) LATIN SMALL LETTER A, CHAKMA VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11134 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062; # (a◌ְ◌्◌゙◌𑄴b; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, CHAKMA MAAYYAA, LATIN SMALL LETTER B
+0061 11134 05B0 094D 3099 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062; # (a◌𑄴◌ְ◌्◌゙b; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; ) LATIN SMALL LETTER A, CHAKMA MAAYYAA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11173 0062;0061 16FF0 093C 11173 3099 0062;0061 16FF0 093C 11173 3099 0062;0061 16FF0 093C 11173 3099 0062;0061 16FF0 093C 11173 3099 0062; # (a◌゙◌𖿰़◌𑅳b; a𖿰◌़◌𑅳◌゙b; a𖿰◌़◌𑅳◌゙b; a𖿰◌़◌𑅳◌゙b; a𖿰◌़◌𑅳◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, MAHAJANI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11173 3099 093C 16FF0 0062;0061 16FF0 11173 093C 3099 0062;0061 16FF0 11173 093C 3099 0062;0061 16FF0 11173 093C 3099 0062;0061 16FF0 11173 093C 3099 0062; # (a◌𑅳◌゙◌𖿰़b; a𖿰◌𑅳◌़◌゙b; a𖿰◌𑅳◌़◌゙b; a𖿰◌𑅳◌़◌゙b; a𖿰◌𑅳◌़◌゙b; ) LATIN SMALL LETTER A, MAHAJANI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 111C0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062; # (a◌ְ◌्◌゙𑇀b; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SHARADA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 111C0 05B0 094D 3099 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062; # (a𑇀◌ְ◌्◌゙b; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; ) LATIN SMALL LETTER A, SHARADA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 111CA 0062;0061 16FF0 093C 111CA 3099 0062;0061 16FF0 093C 111CA 3099 0062;0061 16FF0 093C 111CA 3099 0062;0061 16FF0 093C 111CA 3099 0062; # (a◌゙◌𖿰़◌𑇊b; a𖿰◌़◌𑇊◌゙b; a𖿰◌़◌𑇊◌゙b; a𖿰◌़◌𑇊◌゙b; a𖿰◌़◌𑇊◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, SHARADA SIGN NUKTA, LATIN SMALL LETTER B
+0061 111CA 3099 093C 16FF0 0062;0061 16FF0 111CA 093C 3099 0062;0061 16FF0 111CA 093C 3099 0062;0061 16FF0 111CA 093C 3099 0062;0061 16FF0 111CA 093C 3099 0062; # (a◌𑇊◌゙◌𖿰़b; a𖿰◌𑇊◌़◌゙b; a𖿰◌𑇊◌़◌゙b; a𖿰◌𑇊◌़◌゙b; a𖿰◌𑇊◌़◌゙b; ) LATIN SMALL LETTER A, SHARADA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11235 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062; # (a◌ְ◌्◌゙𑈵b; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHOJKI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 11235 05B0 094D 3099 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062; # (a𑈵◌ְ◌्◌゙b; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; ) LATIN SMALL LETTER A, KHOJKI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11236 0062;0061 16FF0 093C 11236 3099 0062;0061 16FF0 093C 11236 3099 0062;0061 16FF0 093C 11236 3099 0062;0061 16FF0 093C 11236 3099 0062; # (a◌゙◌𖿰़◌𑈶b; a𖿰◌़◌𑈶◌゙b; a𖿰◌़◌𑈶◌゙b; a𖿰◌़◌𑈶◌゙b; a𖿰◌़◌𑈶◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, KHOJKI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11236 3099 093C 16FF0 0062;0061 16FF0 11236 093C 3099 0062;0061 16FF0 11236 093C 3099 0062;0061 16FF0 11236 093C 3099 0062;0061 16FF0 11236 093C 3099 0062; # (a◌𑈶◌゙◌𖿰़b; a𖿰◌𑈶◌़◌゙b; a𖿰◌𑈶◌़◌゙b; a𖿰◌𑈶◌़◌゙b; a𖿰◌𑈶◌़◌゙b; ) LATIN SMALL LETTER A, KHOJKI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 112E9 0062;0061 16FF0 093C 112E9 3099 0062;0061 16FF0 093C 112E9 3099 0062;0061 16FF0 093C 112E9 3099 0062;0061 16FF0 093C 112E9 3099 0062; # (a◌゙◌𖿰़◌𑋩b; a𖿰◌़◌𑋩◌゙b; a𖿰◌़◌𑋩◌゙b; a𖿰◌़◌𑋩◌゙b; a𖿰◌़◌𑋩◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, KHUDAWADI SIGN NUKTA, LATIN SMALL LETTER B
+0061 112E9 3099 093C 16FF0 0062;0061 16FF0 112E9 093C 3099 0062;0061 16FF0 112E9 093C 3099 0062;0061 16FF0 112E9 093C 3099 0062;0061 16FF0 112E9 093C 3099 0062; # (a◌𑋩◌゙◌𖿰़b; a𖿰◌𑋩◌़◌゙b; a𖿰◌𑋩◌़◌゙b; a𖿰◌𑋩◌़◌゙b; a𖿰◌𑋩◌़◌゙b; ) LATIN SMALL LETTER A, KHUDAWADI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 112EA 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062; # (a◌ְ◌्◌゙◌𑋪b; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHUDAWADI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 112EA 05B0 094D 3099 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062; # (a◌𑋪◌ְ◌्◌゙b; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; ) LATIN SMALL LETTER A, KHUDAWADI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1133B 0062;0061 16FF0 093C 1133B 3099 0062;0061 16FF0 093C 1133B 3099 0062;0061 16FF0 093C 1133B 3099 0062;0061 16FF0 093C 1133B 3099 0062; # (a◌゙◌𖿰़◌𑌻b; a𖿰◌़◌𑌻◌゙b; a𖿰◌़◌𑌻◌゙b; a𖿰◌़◌𑌻◌゙b; a𖿰◌़◌𑌻◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING BINDU BELOW, LATIN SMALL LETTER B
+0061 1133B 3099 093C 16FF0 0062;0061 16FF0 1133B 093C 3099 0062;0061 16FF0 1133B 093C 3099 0062;0061 16FF0 1133B 093C 3099 0062;0061 16FF0 1133B 093C 3099 0062; # (a◌𑌻◌゙◌𖿰़b; a𖿰◌𑌻◌़◌゙b; a𖿰◌𑌻◌़◌゙b; a𖿰◌𑌻◌़◌゙b; a𖿰◌𑌻◌़◌゙b; ) LATIN SMALL LETTER A, COMBINING BINDU BELOW, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1133C 0062;0061 16FF0 093C 1133C 3099 0062;0061 16FF0 093C 1133C 3099 0062;0061 16FF0 093C 1133C 3099 0062;0061 16FF0 093C 1133C 3099 0062; # (a◌゙◌𖿰़◌𑌼b; a𖿰◌़◌𑌼◌゙b; a𖿰◌़◌𑌼◌゙b; a𖿰◌़◌𑌼◌゙b; a𖿰◌़◌𑌼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, GRANTHA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1133C 3099 093C 16FF0 0062;0061 16FF0 1133C 093C 3099 0062;0061 16FF0 1133C 093C 3099 0062;0061 16FF0 1133C 093C 3099 0062;0061 16FF0 1133C 093C 3099 0062; # (a◌𑌼◌゙◌𖿰़b; a𖿰◌𑌼◌़◌゙b; a𖿰◌𑌼◌़◌゙b; a𖿰◌𑌼◌़◌゙b; a𖿰◌𑌼◌़◌゙b; ) LATIN SMALL LETTER A, GRANTHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1134D 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062; # (a◌ְ◌्◌゙𑍍b; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GRANTHA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1134D 05B0 094D 3099 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062; # (a𑍍◌ְ◌्◌゙b; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; ) LATIN SMALL LETTER A, GRANTHA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11366 0062;00E0 05AE 11366 0315 0062;0061 05AE 0300 11366 0315 0062;00E0 05AE 11366 0315 0062;0061 05AE 0300 11366 0315 0062; # (a◌̕◌̀◌֮◌𑍦b; à◌֮◌𑍦◌̕b; a◌֮◌̀◌𑍦◌̕b; à◌֮◌𑍦◌̕b; a◌֮◌̀◌𑍦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT ZERO, LATIN SMALL LETTER B
+0061 11366 0315 0300 05AE 0062;0061 05AE 11366 0300 0315 0062;0061 05AE 11366 0300 0315 0062;0061 05AE 11366 0300 0315 0062;0061 05AE 11366 0300 0315 0062; # (a◌𑍦◌̕◌̀◌֮b; a◌֮◌𑍦◌̀◌̕b; a◌֮◌𑍦◌̀◌̕b; a◌֮◌𑍦◌̀◌̕b; a◌֮◌𑍦◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT ZERO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11367 0062;00E0 05AE 11367 0315 0062;0061 05AE 0300 11367 0315 0062;00E0 05AE 11367 0315 0062;0061 05AE 0300 11367 0315 0062; # (a◌̕◌̀◌֮◌𑍧b; à◌֮◌𑍧◌̕b; a◌֮◌̀◌𑍧◌̕b; à◌֮◌𑍧◌̕b; a◌֮◌̀◌𑍧◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT ONE, LATIN SMALL LETTER B
+0061 11367 0315 0300 05AE 0062;0061 05AE 11367 0300 0315 0062;0061 05AE 11367 0300 0315 0062;0061 05AE 11367 0300 0315 0062;0061 05AE 11367 0300 0315 0062; # (a◌𑍧◌̕◌̀◌֮b; a◌֮◌𑍧◌̀◌̕b; a◌֮◌𑍧◌̀◌̕b; a◌֮◌𑍧◌̀◌̕b; a◌֮◌𑍧◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT ONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11368 0062;00E0 05AE 11368 0315 0062;0061 05AE 0300 11368 0315 0062;00E0 05AE 11368 0315 0062;0061 05AE 0300 11368 0315 0062; # (a◌̕◌̀◌֮◌𑍨b; à◌֮◌𑍨◌̕b; a◌֮◌̀◌𑍨◌̕b; à◌֮◌𑍨◌̕b; a◌֮◌̀◌𑍨◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT TWO, LATIN SMALL LETTER B
+0061 11368 0315 0300 05AE 0062;0061 05AE 11368 0300 0315 0062;0061 05AE 11368 0300 0315 0062;0061 05AE 11368 0300 0315 0062;0061 05AE 11368 0300 0315 0062; # (a◌𑍨◌̕◌̀◌֮b; a◌֮◌𑍨◌̀◌̕b; a◌֮◌𑍨◌̀◌̕b; a◌֮◌𑍨◌̀◌̕b; a◌֮◌𑍨◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT TWO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11369 0062;00E0 05AE 11369 0315 0062;0061 05AE 0300 11369 0315 0062;00E0 05AE 11369 0315 0062;0061 05AE 0300 11369 0315 0062; # (a◌̕◌̀◌֮◌𑍩b; à◌֮◌𑍩◌̕b; a◌֮◌̀◌𑍩◌̕b; à◌֮◌𑍩◌̕b; a◌֮◌̀◌𑍩◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT THREE, LATIN SMALL LETTER B
+0061 11369 0315 0300 05AE 0062;0061 05AE 11369 0300 0315 0062;0061 05AE 11369 0300 0315 0062;0061 05AE 11369 0300 0315 0062;0061 05AE 11369 0300 0315 0062; # (a◌𑍩◌̕◌̀◌֮b; a◌֮◌𑍩◌̀◌̕b; a◌֮◌𑍩◌̀◌̕b; a◌֮◌𑍩◌̀◌̕b; a◌֮◌𑍩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT THREE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1136A 0062;00E0 05AE 1136A 0315 0062;0061 05AE 0300 1136A 0315 0062;00E0 05AE 1136A 0315 0062;0061 05AE 0300 1136A 0315 0062; # (a◌̕◌̀◌֮◌𑍪b; à◌֮◌𑍪◌̕b; a◌֮◌̀◌𑍪◌̕b; à◌֮◌𑍪◌̕b; a◌֮◌̀◌𑍪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT FOUR, LATIN SMALL LETTER B
+0061 1136A 0315 0300 05AE 0062;0061 05AE 1136A 0300 0315 0062;0061 05AE 1136A 0300 0315 0062;0061 05AE 1136A 0300 0315 0062;0061 05AE 1136A 0300 0315 0062; # (a◌𑍪◌̕◌̀◌֮b; a◌֮◌𑍪◌̀◌̕b; a◌֮◌𑍪◌̀◌̕b; a◌֮◌𑍪◌̀◌̕b; a◌֮◌𑍪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT FOUR, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1136B 0062;00E0 05AE 1136B 0315 0062;0061 05AE 0300 1136B 0315 0062;00E0 05AE 1136B 0315 0062;0061 05AE 0300 1136B 0315 0062; # (a◌̕◌̀◌֮◌𑍫b; à◌֮◌𑍫◌̕b; a◌֮◌̀◌𑍫◌̕b; à◌֮◌𑍫◌̕b; a◌֮◌̀◌𑍫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT FIVE, LATIN SMALL LETTER B
+0061 1136B 0315 0300 05AE 0062;0061 05AE 1136B 0300 0315 0062;0061 05AE 1136B 0300 0315 0062;0061 05AE 1136B 0300 0315 0062;0061 05AE 1136B 0300 0315 0062; # (a◌𑍫◌̕◌̀◌֮b; a◌֮◌𑍫◌̀◌̕b; a◌֮◌𑍫◌̀◌̕b; a◌֮◌𑍫◌̀◌̕b; a◌֮◌𑍫◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT FIVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1136C 0062;00E0 05AE 1136C 0315 0062;0061 05AE 0300 1136C 0315 0062;00E0 05AE 1136C 0315 0062;0061 05AE 0300 1136C 0315 0062; # (a◌̕◌̀◌֮◌𑍬b; à◌֮◌𑍬◌̕b; a◌֮◌̀◌𑍬◌̕b; à◌֮◌𑍬◌̕b; a◌֮◌̀◌𑍬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT SIX, LATIN SMALL LETTER B
+0061 1136C 0315 0300 05AE 0062;0061 05AE 1136C 0300 0315 0062;0061 05AE 1136C 0300 0315 0062;0061 05AE 1136C 0300 0315 0062;0061 05AE 1136C 0300 0315 0062; # (a◌𑍬◌̕◌̀◌֮b; a◌֮◌𑍬◌̀◌̕b; a◌֮◌𑍬◌̀◌̕b; a◌֮◌𑍬◌̀◌̕b; a◌֮◌𑍬◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT SIX, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11370 0062;00E0 05AE 11370 0315 0062;0061 05AE 0300 11370 0315 0062;00E0 05AE 11370 0315 0062;0061 05AE 0300 11370 0315 0062; # (a◌̕◌̀◌֮◌𑍰b; à◌֮◌𑍰◌̕b; a◌֮◌̀◌𑍰◌̕b; à◌֮◌𑍰◌̕b; a◌֮◌̀◌𑍰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER A, LATIN SMALL LETTER B
+0061 11370 0315 0300 05AE 0062;0061 05AE 11370 0300 0315 0062;0061 05AE 11370 0300 0315 0062;0061 05AE 11370 0300 0315 0062;0061 05AE 11370 0300 0315 0062; # (a◌𑍰◌̕◌̀◌֮b; a◌֮◌𑍰◌̀◌̕b; a◌֮◌𑍰◌̀◌̕b; a◌֮◌𑍰◌̀◌̕b; a◌֮◌𑍰◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11371 0062;00E0 05AE 11371 0315 0062;0061 05AE 0300 11371 0315 0062;00E0 05AE 11371 0315 0062;0061 05AE 0300 11371 0315 0062; # (a◌̕◌̀◌֮◌𑍱b; à◌֮◌𑍱◌̕b; a◌֮◌̀◌𑍱◌̕b; à◌֮◌𑍱◌̕b; a◌֮◌̀◌𑍱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER KA, LATIN SMALL LETTER B
+0061 11371 0315 0300 05AE 0062;0061 05AE 11371 0300 0315 0062;0061 05AE 11371 0300 0315 0062;0061 05AE 11371 0300 0315 0062;0061 05AE 11371 0300 0315 0062; # (a◌𑍱◌̕◌̀◌֮b; a◌֮◌𑍱◌̀◌̕b; a◌֮◌𑍱◌̀◌̕b; a◌֮◌𑍱◌̀◌̕b; a◌֮◌𑍱◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER KA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11372 0062;00E0 05AE 11372 0315 0062;0061 05AE 0300 11372 0315 0062;00E0 05AE 11372 0315 0062;0061 05AE 0300 11372 0315 0062; # (a◌̕◌̀◌֮◌𑍲b; à◌֮◌𑍲◌̕b; a◌֮◌̀◌𑍲◌̕b; à◌֮◌𑍲◌̕b; a◌֮◌̀◌𑍲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER NA, LATIN SMALL LETTER B
+0061 11372 0315 0300 05AE 0062;0061 05AE 11372 0300 0315 0062;0061 05AE 11372 0300 0315 0062;0061 05AE 11372 0300 0315 0062;0061 05AE 11372 0300 0315 0062; # (a◌𑍲◌̕◌̀◌֮b; a◌֮◌𑍲◌̀◌̕b; a◌֮◌𑍲◌̀◌̕b; a◌֮◌𑍲◌̀◌̕b; a◌֮◌𑍲◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER NA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11373 0062;00E0 05AE 11373 0315 0062;0061 05AE 0300 11373 0315 0062;00E0 05AE 11373 0315 0062;0061 05AE 0300 11373 0315 0062; # (a◌̕◌̀◌֮◌𑍳b; à◌֮◌𑍳◌̕b; a◌֮◌̀◌𑍳◌̕b; à◌֮◌𑍳◌̕b; a◌֮◌̀◌𑍳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER VI, LATIN SMALL LETTER B
+0061 11373 0315 0300 05AE 0062;0061 05AE 11373 0300 0315 0062;0061 05AE 11373 0300 0315 0062;0061 05AE 11373 0300 0315 0062;0061 05AE 11373 0300 0315 0062; # (a◌𑍳◌̕◌̀◌֮b; a◌֮◌𑍳◌̀◌̕b; a◌֮◌𑍳◌̀◌̕b; a◌֮◌𑍳◌̀◌̕b; a◌֮◌𑍳◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER VI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11374 0062;00E0 05AE 11374 0315 0062;0061 05AE 0300 11374 0315 0062;00E0 05AE 11374 0315 0062;0061 05AE 0300 11374 0315 0062; # (a◌̕◌̀◌֮◌𑍴b; à◌֮◌𑍴◌̕b; a◌֮◌̀◌𑍴◌̕b; à◌֮◌𑍴◌̕b; a◌֮◌̀◌𑍴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER PA, LATIN SMALL LETTER B
+0061 11374 0315 0300 05AE 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062; # (a◌𑍴◌̕◌̀◌֮b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER PA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11442 0062;0061 3099 094D 11442 05B0 0062;0061 3099 094D 11442 05B0 0062;0061 3099 094D 11442 05B0 0062;0061 3099 094D 11442 05B0 0062; # (a◌ְ◌्◌゙◌𑑂b; a◌゙◌्◌𑑂◌ְb; a◌゙◌्◌𑑂◌ְb; a◌゙◌्◌𑑂◌ְb; a◌゙◌्◌𑑂◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, NEWA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 11442 05B0 094D 3099 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062; # (a◌𑑂◌ְ◌्◌゙b; a◌゙◌𑑂◌्◌ְb; a◌゙◌𑑂◌्◌ְb; a◌゙◌𑑂◌्◌ְb; a◌゙◌𑑂◌्◌ְb; ) LATIN SMALL LETTER A, NEWA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11446 0062;0061 16FF0 093C 11446 3099 0062;0061 16FF0 093C 11446 3099 0062;0061 16FF0 093C 11446 3099 0062;0061 16FF0 093C 11446 3099 0062; # (a◌゙◌𖿰़◌𑑆b; a𖿰◌़◌𑑆◌゙b; a𖿰◌़◌𑑆◌゙b; a𖿰◌़◌𑑆◌゙b; a𖿰◌़◌𑑆◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, NEWA SIGN NUKTA, LATIN SMALL LETTER B
+0061 11446 3099 093C 16FF0 0062;0061 16FF0 11446 093C 3099 0062;0061 16FF0 11446 093C 3099 0062;0061 16FF0 11446 093C 3099 0062;0061 16FF0 11446 093C 3099 0062; # (a◌𑑆◌゙◌𖿰़b; a𖿰◌𑑆◌़◌゙b; a𖿰◌𑑆◌़◌゙b; a𖿰◌𑑆◌़◌゙b; a𖿰◌𑑆◌़◌゙b; ) LATIN SMALL LETTER A, NEWA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1145E 0062;00E0 05AE 1145E 0315 0062;0061 05AE 0300 1145E 0315 0062;00E0 05AE 1145E 0315 0062;0061 05AE 0300 1145E 0315 0062; # (a◌̕◌̀◌֮◌𑑞b; à◌֮◌𑑞◌̕b; a◌֮◌̀◌𑑞◌̕b; à◌֮◌𑑞◌̕b; a◌֮◌̀◌𑑞◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NEWA SANDHI MARK, LATIN SMALL LETTER B
+0061 1145E 0315 0300 05AE 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062; # (a◌𑑞◌̕◌̀◌֮b; a◌֮◌𑑞◌̀◌̕b; a◌֮◌𑑞◌̀◌̕b; a◌֮◌𑑞◌̀◌̕b; a◌֮◌𑑞◌̀◌̕b; ) LATIN SMALL LETTER A, NEWA SANDHI MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 114C2 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062; # (a◌ְ◌्◌゙◌𑓂b; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TIRHUTA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 114C2 05B0 094D 3099 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062; # (a◌𑓂◌ְ◌्◌゙b; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; ) LATIN SMALL LETTER A, TIRHUTA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 114C3 0062;0061 16FF0 093C 114C3 3099 0062;0061 16FF0 093C 114C3 3099 0062;0061 16FF0 093C 114C3 3099 0062;0061 16FF0 093C 114C3 3099 0062; # (a◌゙◌𖿰़◌𑓃b; a𖿰◌़◌𑓃◌゙b; a𖿰◌़◌𑓃◌゙b; a𖿰◌़◌𑓃◌゙b; a𖿰◌़◌𑓃◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, TIRHUTA SIGN NUKTA, LATIN SMALL LETTER B
+0061 114C3 3099 093C 16FF0 0062;0061 16FF0 114C3 093C 3099 0062;0061 16FF0 114C3 093C 3099 0062;0061 16FF0 114C3 093C 3099 0062;0061 16FF0 114C3 093C 3099 0062; # (a◌𑓃◌゙◌𖿰़b; a𖿰◌𑓃◌़◌゙b; a𖿰◌𑓃◌़◌゙b; a𖿰◌𑓃◌़◌゙b; a𖿰◌𑓃◌़◌゙b; ) LATIN SMALL LETTER A, TIRHUTA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 115BF 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062; # (a◌ְ◌्◌゙◌𑖿b; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SIDDHAM SIGN VIRAMA, LATIN SMALL LETTER B
+0061 115BF 05B0 094D 3099 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062; # (a◌𑖿◌ְ◌्◌゙b; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; ) LATIN SMALL LETTER A, SIDDHAM SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 115C0 0062;0061 16FF0 093C 115C0 3099 0062;0061 16FF0 093C 115C0 3099 0062;0061 16FF0 093C 115C0 3099 0062;0061 16FF0 093C 115C0 3099 0062; # (a◌゙◌𖿰़◌𑗀b; a𖿰◌़◌𑗀◌゙b; a𖿰◌़◌𑗀◌゙b; a𖿰◌़◌𑗀◌゙b; a𖿰◌़◌𑗀◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, SIDDHAM SIGN NUKTA, LATIN SMALL LETTER B
+0061 115C0 3099 093C 16FF0 0062;0061 16FF0 115C0 093C 3099 0062;0061 16FF0 115C0 093C 3099 0062;0061 16FF0 115C0 093C 3099 0062;0061 16FF0 115C0 093C 3099 0062; # (a◌𑗀◌゙◌𖿰़b; a𖿰◌𑗀◌़◌゙b; a𖿰◌𑗀◌़◌゙b; a𖿰◌𑗀◌़◌゙b; a𖿰◌𑗀◌़◌゙b; ) LATIN SMALL LETTER A, SIDDHAM SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1163F 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062; # (a◌ְ◌्◌゙◌𑘿b; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MODI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1163F 05B0 094D 3099 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062; # (a◌𑘿◌ְ◌्◌゙b; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; ) LATIN SMALL LETTER A, MODI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 116B6 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062; # (a◌ְ◌्◌゙𑚶b; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TAKRI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 116B6 05B0 094D 3099 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062; # (a𑚶◌ְ◌्◌゙b; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; ) LATIN SMALL LETTER A, TAKRI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 116B7 0062;0061 16FF0 093C 116B7 3099 0062;0061 16FF0 093C 116B7 3099 0062;0061 16FF0 093C 116B7 3099 0062;0061 16FF0 093C 116B7 3099 0062; # (a◌゙◌𖿰़◌𑚷b; a𖿰◌़◌𑚷◌゙b; a𖿰◌़◌𑚷◌゙b; a𖿰◌़◌𑚷◌゙b; a𖿰◌़◌𑚷◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, TAKRI SIGN NUKTA, LATIN SMALL LETTER B
+0061 116B7 3099 093C 16FF0 0062;0061 16FF0 116B7 093C 3099 0062;0061 16FF0 116B7 093C 3099 0062;0061 16FF0 116B7 093C 3099 0062;0061 16FF0 116B7 093C 3099 0062; # (a◌𑚷◌゙◌𖿰़b; a𖿰◌𑚷◌़◌゙b; a𖿰◌𑚷◌़◌゙b; a𖿰◌𑚷◌़◌゙b; a𖿰◌𑚷◌़◌゙b; ) LATIN SMALL LETTER A, TAKRI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1172B 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062; # (a◌ְ◌्◌゙◌𑜫b; a◌゙◌्◌𑜫◌ְb; a◌゙◌्◌𑜫◌ְb; a◌゙◌्◌𑜫◌ְb; a◌゙◌्◌𑜫◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, AHOM SIGN KILLER, LATIN SMALL LETTER B
+0061 1172B 05B0 094D 3099 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062; # (a◌𑜫◌ְ◌्◌゙b; a◌゙◌𑜫◌्◌ְb; a◌゙◌𑜫◌्◌ְb; a◌゙◌𑜫◌्◌ְb; a◌゙◌𑜫◌्◌ְb; ) LATIN SMALL LETTER A, AHOM SIGN KILLER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11839 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062; # (a◌ְ◌्◌゙◌𑠹b; a◌゙◌्◌𑠹◌ְb; a◌゙◌्◌𑠹◌ְb; a◌゙◌्◌𑠹◌ְb; a◌゙◌्◌𑠹◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DOGRA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 11839 05B0 094D 3099 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062; # (a◌𑠹◌ְ◌्◌゙b; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; ) LATIN SMALL LETTER A, DOGRA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1183A 0062;0061 16FF0 093C 1183A 3099 0062;0061 16FF0 093C 1183A 3099 0062;0061 16FF0 093C 1183A 3099 0062;0061 16FF0 093C 1183A 3099 0062; # (a◌゙◌𖿰़◌𑠺b; a𖿰◌़◌𑠺◌゙b; a𖿰◌़◌𑠺◌゙b; a𖿰◌़◌𑠺◌゙b; a𖿰◌़◌𑠺◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, DOGRA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1183A 3099 093C 16FF0 0062;0061 16FF0 1183A 093C 3099 0062;0061 16FF0 1183A 093C 3099 0062;0061 16FF0 1183A 093C 3099 0062;0061 16FF0 1183A 093C 3099 0062; # (a◌𑠺◌゙◌𖿰़b; a𖿰◌𑠺◌़◌゙b; a𖿰◌𑠺◌़◌゙b; a𖿰◌𑠺◌़◌゙b; a𖿰◌𑠺◌़◌゙b; ) LATIN SMALL LETTER A, DOGRA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1193D 0062;0061 3099 094D 1193D 05B0 0062;0061 3099 094D 1193D 05B0 0062;0061 3099 094D 1193D 05B0 0062;0061 3099 094D 1193D 05B0 0062; # (a◌ְ◌्◌゙𑤽b; a◌゙◌्𑤽◌ְb; a◌゙◌्𑤽◌ְb; a◌゙◌्𑤽◌ְb; a◌゙◌्𑤽◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DIVES AKURU SIGN HALANTA, LATIN SMALL LETTER B
+0061 1193D 05B0 094D 3099 0062;0061 3099 1193D 094D 05B0 0062;0061 3099 1193D 094D 05B0 0062;0061 3099 1193D 094D 05B0 0062;0061 3099 1193D 094D 05B0 0062; # (a𑤽◌ְ◌्◌゙b; a◌゙𑤽◌्◌ְb; a◌゙𑤽◌्◌ְb; a◌゙𑤽◌्◌ְb; a◌゙𑤽◌्◌ְb; ) LATIN SMALL LETTER A, DIVES AKURU SIGN HALANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1193E 0062;0061 3099 094D 1193E 05B0 0062;0061 3099 094D 1193E 05B0 0062;0061 3099 094D 1193E 05B0 0062;0061 3099 094D 1193E 05B0 0062; # (a◌ְ◌्◌゙◌𑤾b; a◌゙◌्◌𑤾◌ְb; a◌゙◌्◌𑤾◌ְb; a◌゙◌्◌𑤾◌ְb; a◌゙◌्◌𑤾◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DIVES AKURU VIRAMA, LATIN SMALL LETTER B
+0061 1193E 05B0 094D 3099 0062;0061 3099 1193E 094D 05B0 0062;0061 3099 1193E 094D 05B0 0062;0061 3099 1193E 094D 05B0 0062;0061 3099 1193E 094D 05B0 0062; # (a◌𑤾◌ְ◌्◌゙b; a◌゙◌𑤾◌्◌ְb; a◌゙◌𑤾◌्◌ְb; a◌゙◌𑤾◌्◌ְb; a◌゙◌𑤾◌्◌ְb; ) LATIN SMALL LETTER A, DIVES AKURU VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11943 0062;0061 16FF0 093C 11943 3099 0062;0061 16FF0 093C 11943 3099 0062;0061 16FF0 093C 11943 3099 0062;0061 16FF0 093C 11943 3099 0062; # (a◌゙◌𖿰़◌𑥃b; a𖿰◌़◌𑥃◌゙b; a𖿰◌़◌𑥃◌゙b; a𖿰◌़◌𑥃◌゙b; a𖿰◌़◌𑥃◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, DIVES AKURU SIGN NUKTA, LATIN SMALL LETTER B
+0061 11943 3099 093C 16FF0 0062;0061 16FF0 11943 093C 3099 0062;0061 16FF0 11943 093C 3099 0062;0061 16FF0 11943 093C 3099 0062;0061 16FF0 11943 093C 3099 0062; # (a◌𑥃◌゙◌𖿰़b; a𖿰◌𑥃◌़◌゙b; a𖿰◌𑥃◌़◌゙b; a𖿰◌𑥃◌़◌゙b; a𖿰◌𑥃◌़◌゙b; ) LATIN SMALL LETTER A, DIVES AKURU SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 119E0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062; # (a◌ְ◌्◌゙◌𑧠b; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, NANDINAGARI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 119E0 05B0 094D 3099 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062; # (a◌𑧠◌ְ◌्◌゙b; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; ) LATIN SMALL LETTER A, NANDINAGARI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11A34 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062; # (a◌ְ◌्◌゙◌𑨴b; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SIGN VIRAMA, LATIN SMALL LETTER B
+0061 11A34 05B0 094D 3099 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062; # (a◌𑨴◌ְ◌्◌゙b; a◌゙◌𑨴◌्◌ְb; a◌゙◌𑨴◌्◌ְb; a◌゙◌𑨴◌्◌ְb; a◌゙◌𑨴◌्◌ְb; ) LATIN SMALL LETTER A, ZANABAZAR SQUARE SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11A47 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062; # (a◌ְ◌्◌゙◌𑩇b; a◌゙◌्◌𑩇◌ְb; a◌゙◌्◌𑩇◌ְb; a◌゙◌्◌𑩇◌ְb; a◌゙◌्◌𑩇◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SUBJOINER, LATIN SMALL LETTER B
+0061 11A47 05B0 094D 3099 0062;0061 3099 11A47 094D 05B0 0062;0061 3099 11A47 094D 05B0 0062;0061 3099 11A47 094D 05B0 0062;0061 3099 11A47 094D 05B0 0062; # (a◌𑩇◌ְ◌्◌゙b; a◌゙◌𑩇◌्◌ְb; a◌゙◌𑩇◌्◌ְb; a◌゙◌𑩇◌्◌ְb; a◌゙◌𑩇◌्◌ְb; ) LATIN SMALL LETTER A, ZANABAZAR SQUARE SUBJOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11A99 0062;0061 3099 094D 11A99 05B0 0062;0061 3099 094D 11A99 05B0 0062;0061 3099 094D 11A99 05B0 0062;0061 3099 094D 11A99 05B0 0062; # (a◌ְ◌्◌゙◌𑪙b; a◌゙◌्◌𑪙◌ְb; a◌゙◌्◌𑪙◌ְb; a◌゙◌्◌𑪙◌ְb; a◌゙◌्◌𑪙◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SOYOMBO SUBJOINER, LATIN SMALL LETTER B
+0061 11A99 05B0 094D 3099 0062;0061 3099 11A99 094D 05B0 0062;0061 3099 11A99 094D 05B0 0062;0061 3099 11A99 094D 05B0 0062;0061 3099 11A99 094D 05B0 0062; # (a◌𑪙◌ְ◌्◌゙b; a◌゙◌𑪙◌्◌ְb; a◌゙◌𑪙◌्◌ְb; a◌゙◌𑪙◌्◌ְb; a◌゙◌𑪙◌्◌ְb; ) LATIN SMALL LETTER A, SOYOMBO SUBJOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11C3F 0062;0061 3099 094D 11C3F 05B0 0062;0061 3099 094D 11C3F 05B0 0062;0061 3099 094D 11C3F 05B0 0062;0061 3099 094D 11C3F 05B0 0062; # (a◌ְ◌्◌゙◌𑰿b; a◌゙◌्◌𑰿◌ְb; a◌゙◌्◌𑰿◌ְb; a◌゙◌्◌𑰿◌ְb; a◌゙◌्◌𑰿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BHAIKSUKI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 11C3F 05B0 094D 3099 0062;0061 3099 11C3F 094D 05B0 0062;0061 3099 11C3F 094D 05B0 0062;0061 3099 11C3F 094D 05B0 0062;0061 3099 11C3F 094D 05B0 0062; # (a◌𑰿◌ְ◌्◌゙b; a◌゙◌𑰿◌्◌ְb; a◌゙◌𑰿◌्◌ְb; a◌゙◌𑰿◌्◌ְb; a◌゙◌𑰿◌्◌ְb; ) LATIN SMALL LETTER A, BHAIKSUKI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11D42 0062;0061 16FF0 093C 11D42 3099 0062;0061 16FF0 093C 11D42 3099 0062;0061 16FF0 093C 11D42 3099 0062;0061 16FF0 093C 11D42 3099 0062; # (a◌゙◌𖿰़◌𑵂b; a𖿰◌़◌𑵂◌゙b; a𖿰◌़◌𑵂◌゙b; a𖿰◌़◌𑵂◌゙b; a𖿰◌़◌𑵂◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, MASARAM GONDI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11D42 3099 093C 16FF0 0062;0061 16FF0 11D42 093C 3099 0062;0061 16FF0 11D42 093C 3099 0062;0061 16FF0 11D42 093C 3099 0062;0061 16FF0 11D42 093C 3099 0062; # (a◌𑵂◌゙◌𖿰़b; a𖿰◌𑵂◌़◌゙b; a𖿰◌𑵂◌़◌゙b; a𖿰◌𑵂◌़◌゙b; a𖿰◌𑵂◌़◌゙b; ) LATIN SMALL LETTER A, MASARAM GONDI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11D44 0062;0061 3099 094D 11D44 05B0 0062;0061 3099 094D 11D44 05B0 0062;0061 3099 094D 11D44 05B0 0062;0061 3099 094D 11D44 05B0 0062; # (a◌ְ◌्◌゙◌𑵄b; a◌゙◌्◌𑵄◌ְb; a◌゙◌्◌𑵄◌ְb; a◌゙◌्◌𑵄◌ְb; a◌゙◌्◌𑵄◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MASARAM GONDI SIGN HALANTA, LATIN SMALL LETTER B
+0061 11D44 05B0 094D 3099 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062; # (a◌𑵄◌ְ◌्◌゙b; a◌゙◌𑵄◌्◌ְb; a◌゙◌𑵄◌्◌ְb; a◌゙◌𑵄◌्◌ְb; a◌゙◌𑵄◌्◌ְb; ) LATIN SMALL LETTER A, MASARAM GONDI SIGN HALANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11D45 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062; # (a◌ְ◌्◌゙◌𑵅b; a◌゙◌्◌𑵅◌ְb; a◌゙◌्◌𑵅◌ְb; a◌゙◌्◌𑵅◌ְb; a◌゙◌्◌𑵅◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MASARAM GONDI VIRAMA, LATIN SMALL LETTER B
+0061 11D45 05B0 094D 3099 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062; # (a◌𑵅◌ְ◌्◌゙b; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; ) LATIN SMALL LETTER A, MASARAM GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11D97 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062; # (a◌ְ◌्◌゙◌𑶗b; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GUNJALA GONDI VIRAMA, LATIN SMALL LETTER B
+0061 11D97 05B0 094D 3099 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062; # (a◌𑶗◌ְ◌्◌゙b; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; ) LATIN SMALL LETTER A, GUNJALA GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11F41 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062; # (a◌ְ◌्◌゙𑽁b; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAWI SIGN KILLER, LATIN SMALL LETTER B
+0061 11F41 05B0 094D 3099 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062; # (a𑽁◌ְ◌्◌゙b; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; ) LATIN SMALL LETTER A, KAWI SIGN KILLER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11F42 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062; # (a◌ְ◌्◌゙◌𑽂b; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAWI CONJOINER, LATIN SMALL LETTER B
+0061 11F42 05B0 094D 3099 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062; # (a◌𑽂◌ְ◌्◌゙b; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; ) LATIN SMALL LETTER A, KAWI CONJOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 16FF0 0334 16AF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062; # (a𖿰◌̴◌𖫰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH TONE, LATIN SMALL LETTER B
+0061 16AF0 16FF0 0334 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062; # (a◌𖫰𖿰◌̴b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING HIGH TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 16AF1 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062; # (a𖿰◌̴◌𖫱b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW TONE, LATIN SMALL LETTER B
+0061 16AF1 16FF0 0334 0062;0061 16AF1 0334 16FF0 0062;0061 16AF1 0334 16FF0 0062;0061 16AF1 0334 16FF0 0062;0061 16AF1 0334 16FF0 0062; # (a◌𖫱𖿰◌̴b; a◌𖫱◌̴𖿰b; a◌𖫱◌̴𖿰b; a◌𖫱◌̴𖿰b; a◌𖫱◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING LOW TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 16AF2 0062;0061 0334 16AF2 16FF0 0062;0061 0334 16AF2 16FF0 0062;0061 0334 16AF2 16FF0 0062;0061 0334 16AF2 16FF0 0062; # (a𖿰◌̴◌𖫲b; a◌̴◌𖫲𖿰b; a◌̴◌𖫲𖿰b; a◌̴◌𖫲𖿰b; a◌̴◌𖫲𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING MID TONE, LATIN SMALL LETTER B
+0061 16AF2 16FF0 0334 0062;0061 16AF2 0334 16FF0 0062;0061 16AF2 0334 16FF0 0062;0061 16AF2 0334 16FF0 0062;0061 16AF2 0334 16FF0 0062; # (a◌𖫲𖿰◌̴b; a◌𖫲◌̴𖿰b; a◌𖫲◌̴𖿰b; a◌𖫲◌̴𖿰b; a◌𖫲◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING MID TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 16AF3 0062;0061 0334 16AF3 16FF0 0062;0061 0334 16AF3 16FF0 0062;0061 0334 16AF3 16FF0 0062;0061 0334 16AF3 16FF0 0062; # (a𖿰◌̴◌𖫳b; a◌̴◌𖫳𖿰b; a◌̴◌𖫳𖿰b; a◌̴◌𖫳𖿰b; a◌̴◌𖫳𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW-MID TONE, LATIN SMALL LETTER B
+0061 16AF3 16FF0 0334 0062;0061 16AF3 0334 16FF0 0062;0061 16AF3 0334 16FF0 0062;0061 16AF3 0334 16FF0 0062;0061 16AF3 0334 16FF0 0062; # (a◌𖫳𖿰◌̴b; a◌𖫳◌̴𖿰b; a◌𖫳◌̴𖿰b; a◌𖫳◌̴𖿰b; a◌𖫳◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING LOW-MID TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 16AF4 0062;0061 0334 16AF4 16FF0 0062;0061 0334 16AF4 16FF0 0062;0061 0334 16AF4 16FF0 0062;0061 0334 16AF4 16FF0 0062; # (a𖿰◌̴◌𖫴b; a◌̴◌𖫴𖿰b; a◌̴◌𖫴𖿰b; a◌̴◌𖫴𖿰b; a◌̴◌𖫴𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH-LOW TONE, LATIN SMALL LETTER B
+0061 16AF4 16FF0 0334 0062;0061 16AF4 0334 16FF0 0062;0061 16AF4 0334 16FF0 0062;0061 16AF4 0334 16FF0 0062;0061 16AF4 0334 16FF0 0062; # (a◌𖫴𖿰◌̴b; a◌𖫴◌̴𖿰b; a◌𖫴◌̴𖿰b; a◌𖫴◌̴𖿰b; a◌𖫴◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING HIGH-LOW TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B30 0062;00E0 05AE 16B30 0315 0062;0061 05AE 0300 16B30 0315 0062;00E0 05AE 16B30 0315 0062;0061 05AE 0300 16B30 0315 0062; # (a◌̕◌̀◌֮◌𖬰b; à◌֮◌𖬰◌̕b; a◌֮◌̀◌𖬰◌̕b; à◌֮◌𖬰◌̕b; a◌֮◌̀◌𖬰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM TUB, LATIN SMALL LETTER B
+0061 16B30 0315 0300 05AE 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062; # (a◌𖬰◌̕◌̀◌֮b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM TUB, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B31 0062;00E0 05AE 16B31 0315 0062;0061 05AE 0300 16B31 0315 0062;00E0 05AE 16B31 0315 0062;0061 05AE 0300 16B31 0315 0062; # (a◌̕◌̀◌֮◌𖬱b; à◌֮◌𖬱◌̕b; a◌֮◌̀◌𖬱◌̕b; à◌֮◌𖬱◌̕b; a◌֮◌̀◌𖬱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM SO, LATIN SMALL LETTER B
+0061 16B31 0315 0300 05AE 0062;0061 05AE 16B31 0300 0315 0062;0061 05AE 16B31 0300 0315 0062;0061 05AE 16B31 0300 0315 0062;0061 05AE 16B31 0300 0315 0062; # (a◌𖬱◌̕◌̀◌֮b; a◌֮◌𖬱◌̀◌̕b; a◌֮◌𖬱◌̀◌̕b; a◌֮◌𖬱◌̀◌̕b; a◌֮◌𖬱◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM SO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B32 0062;00E0 05AE 16B32 0315 0062;0061 05AE 0300 16B32 0315 0062;00E0 05AE 16B32 0315 0062;0061 05AE 0300 16B32 0315 0062; # (a◌̕◌̀◌֮◌𖬲b; à◌֮◌𖬲◌̕b; a◌֮◌̀◌𖬲◌̕b; à◌֮◌𖬲◌̕b; a◌֮◌̀◌𖬲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM KES, LATIN SMALL LETTER B
+0061 16B32 0315 0300 05AE 0062;0061 05AE 16B32 0300 0315 0062;0061 05AE 16B32 0300 0315 0062;0061 05AE 16B32 0300 0315 0062;0061 05AE 16B32 0300 0315 0062; # (a◌𖬲◌̕◌̀◌֮b; a◌֮◌𖬲◌̀◌̕b; a◌֮◌𖬲◌̀◌̕b; a◌֮◌𖬲◌̀◌̕b; a◌֮◌𖬲◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM KES, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B33 0062;00E0 05AE 16B33 0315 0062;0061 05AE 0300 16B33 0315 0062;00E0 05AE 16B33 0315 0062;0061 05AE 0300 16B33 0315 0062; # (a◌̕◌̀◌֮◌𖬳b; à◌֮◌𖬳◌̕b; a◌֮◌̀◌𖬳◌̕b; à◌֮◌𖬳◌̕b; a◌֮◌̀◌𖬳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM KHAV, LATIN SMALL LETTER B
+0061 16B33 0315 0300 05AE 0062;0061 05AE 16B33 0300 0315 0062;0061 05AE 16B33 0300 0315 0062;0061 05AE 16B33 0300 0315 0062;0061 05AE 16B33 0300 0315 0062; # (a◌𖬳◌̕◌̀◌֮b; a◌֮◌𖬳◌̀◌̕b; a◌֮◌𖬳◌̀◌̕b; a◌֮◌𖬳◌̀◌̕b; a◌֮◌𖬳◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM KHAV, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B34 0062;00E0 05AE 16B34 0315 0062;0061 05AE 0300 16B34 0315 0062;00E0 05AE 16B34 0315 0062;0061 05AE 0300 16B34 0315 0062; # (a◌̕◌̀◌֮◌𖬴b; à◌֮◌𖬴◌̕b; a◌֮◌̀◌𖬴◌̕b; à◌֮◌𖬴◌̕b; a◌֮◌̀◌𖬴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM SUAM, LATIN SMALL LETTER B
+0061 16B34 0315 0300 05AE 0062;0061 05AE 16B34 0300 0315 0062;0061 05AE 16B34 0300 0315 0062;0061 05AE 16B34 0300 0315 0062;0061 05AE 16B34 0300 0315 0062; # (a◌𖬴◌̕◌̀◌֮b; a◌֮◌𖬴◌̀◌̕b; a◌֮◌𖬴◌̀◌̕b; a◌֮◌𖬴◌̀◌̕b; a◌֮◌𖬴◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM SUAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B35 0062;00E0 05AE 16B35 0315 0062;0061 05AE 0300 16B35 0315 0062;00E0 05AE 16B35 0315 0062;0061 05AE 0300 16B35 0315 0062; # (a◌̕◌̀◌֮◌𖬵b; à◌֮◌𖬵◌̕b; a◌֮◌̀◌𖬵◌̕b; à◌֮◌𖬵◌̕b; a◌֮◌̀◌𖬵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM HOM, LATIN SMALL LETTER B
+0061 16B35 0315 0300 05AE 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062; # (a◌𖬵◌̕◌̀◌֮b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM HOM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B36 0062;00E0 05AE 16B36 0315 0062;0061 05AE 0300 16B36 0315 0062;00E0 05AE 16B36 0315 0062;0061 05AE 0300 16B36 0315 0062; # (a◌̕◌̀◌֮◌𖬶b; à◌֮◌𖬶◌̕b; a◌֮◌̀◌𖬶◌̕b; à◌֮◌𖬶◌̕b; a◌֮◌̀◌𖬶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM TAUM, LATIN SMALL LETTER B
+0061 16B36 0315 0300 05AE 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062; # (a◌𖬶◌̕◌̀◌֮b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM TAUM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 093C 16FF0 0334 16FF0 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062; # (a◌𖿰़◌̴𖿰b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+0061 16FF0 093C 16FF0 0334 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062; # (a𖿰◌𖿰़◌̴b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 16FF0 0334 16FF1 0062;0061 0334 16FF0 16FF1 093C 0062;0061 0334 16FF0 16FF1 093C 0062;0061 0334 16FF0 16FF1 093C 0062;0061 0334 16FF0 16FF1 093C 0062; # (a◌𖿰़◌̴𖿱b; a◌̴𖿰𖿱◌़b; a◌̴𖿰𖿱◌़b; a◌̴𖿰𖿱◌़b; a◌̴𖿰𖿱◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, VIETNAMESE ALTERNATE READING MARK NHAY, LATIN SMALL LETTER B
+0061 16FF1 093C 16FF0 0334 0062;0061 0334 16FF1 16FF0 093C 0062;0061 0334 16FF1 16FF0 093C 0062;0061 0334 16FF1 16FF0 093C 0062;0061 0334 16FF1 16FF0 093C 0062; # (a𖿱◌𖿰़◌̴b; a◌̴𖿱𖿰◌़b; a◌̴𖿱𖿰◌़b; a◌̴𖿱𖿰◌़b; a◌̴𖿱𖿰◌़b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK NHAY, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1BC9E 0062;0061 0334 1BC9E 16FF0 0062;0061 0334 1BC9E 16FF0 0062;0061 0334 1BC9E 16FF0 0062;0061 0334 1BC9E 16FF0 0062; # (a𖿰◌̴◌𛲞b; a◌̴◌𛲞𖿰b; a◌̴◌𛲞𖿰b; a◌̴◌𛲞𖿰b; a◌̴◌𛲞𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, DUPLOYAN DOUBLE MARK, LATIN SMALL LETTER B
+0061 1BC9E 16FF0 0334 0062;0061 1BC9E 0334 16FF0 0062;0061 1BC9E 0334 16FF0 0062;0061 1BC9E 0334 16FF0 0062;0061 1BC9E 0334 16FF0 0062; # (a◌𛲞𖿰◌̴b; a◌𛲞◌̴𖿰b; a◌𛲞◌̴𖿰b; a◌𛲞◌̴𖿰b; a◌𛲞◌̴𖿰b; ) LATIN SMALL LETTER A, DUPLOYAN DOUBLE MARK, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D165 0062;0061 1DCE 031B 1D165 1DFA 0062;0061 1DCE 031B 1D165 1DFA 0062;0061 1DCE 031B 1D165 1DFA 0062;0061 1DCE 031B 1D165 1DFA 0062; # (a◌᷺◌̛◌᷎𝅥b; a◌᷎◌̛𝅥◌᷺b; a◌᷎◌̛𝅥◌᷺b; a◌᷎◌̛𝅥◌᷺b; a◌᷎◌̛𝅥◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING STEM, LATIN SMALL LETTER B
+0061 1D165 1DFA 031B 1DCE 0062;0061 1DCE 1D165 031B 1DFA 0062;0061 1DCE 1D165 031B 1DFA 0062;0061 1DCE 1D165 031B 1DFA 0062;0061 1DCE 1D165 031B 1DFA 0062; # (a𝅥◌᷺◌̛◌᷎b; a◌᷎𝅥◌̛◌᷺b; a◌᷎𝅥◌̛◌᷺b; a◌᷎𝅥◌̛◌᷺b; a◌᷎𝅥◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING STEM, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D166 0062;0061 1DCE 031B 1D166 1DFA 0062;0061 1DCE 031B 1D166 1DFA 0062;0061 1DCE 031B 1D166 1DFA 0062;0061 1DCE 031B 1D166 1DFA 0062; # (a◌᷺◌̛◌᷎𝅦b; a◌᷎◌̛𝅦◌᷺b; a◌᷎◌̛𝅦◌᷺b; a◌᷎◌̛𝅦◌᷺b; a◌᷎◌̛𝅦◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING SPRECHGESANG STEM, LATIN SMALL LETTER B
+0061 1D166 1DFA 031B 1DCE 0062;0061 1DCE 1D166 031B 1DFA 0062;0061 1DCE 1D166 031B 1DFA 0062;0061 1DCE 1D166 031B 1DFA 0062;0061 1DCE 1D166 031B 1DFA 0062; # (a𝅦◌᷺◌̛◌᷎b; a◌᷎𝅦◌̛◌᷺b; a◌᷎𝅦◌̛◌᷺b; a◌᷎𝅦◌̛◌᷺b; a◌᷎𝅦◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING SPRECHGESANG STEM, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 16FF0 0334 1D167 0062;0061 0334 1D167 16FF0 0062;0061 0334 1D167 16FF0 0062;0061 0334 1D167 16FF0 0062;0061 0334 1D167 16FF0 0062; # (a𖿰◌̴◌𝅧b; a◌̴◌𝅧𖿰b; a◌̴◌𝅧𖿰b; a◌̴◌𝅧𖿰b; a◌̴◌𝅧𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING TREMOLO-1, LATIN SMALL LETTER B
+0061 1D167 16FF0 0334 0062;0061 1D167 0334 16FF0 0062;0061 1D167 0334 16FF0 0062;0061 1D167 0334 16FF0 0062;0061 1D167 0334 16FF0 0062; # (a◌𝅧𖿰◌̴b; a◌𝅧◌̴𖿰b; a◌𝅧◌̴𖿰b; a◌𝅧◌̴𖿰b; a◌𝅧◌̴𖿰b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING TREMOLO-1, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1D168 0062;0061 0334 1D168 16FF0 0062;0061 0334 1D168 16FF0 0062;0061 0334 1D168 16FF0 0062;0061 0334 1D168 16FF0 0062; # (a𖿰◌̴◌𝅨b; a◌̴◌𝅨𖿰b; a◌̴◌𝅨𖿰b; a◌̴◌𝅨𖿰b; a◌̴◌𝅨𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING TREMOLO-2, LATIN SMALL LETTER B
+0061 1D168 16FF0 0334 0062;0061 1D168 0334 16FF0 0062;0061 1D168 0334 16FF0 0062;0061 1D168 0334 16FF0 0062;0061 1D168 0334 16FF0 0062; # (a◌𝅨𖿰◌̴b; a◌𝅨◌̴𖿰b; a◌𝅨◌̴𖿰b; a◌𝅨◌̴𖿰b; a◌𝅨◌̴𖿰b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING TREMOLO-2, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1D169 0062;0061 0334 1D169 16FF0 0062;0061 0334 1D169 16FF0 0062;0061 0334 1D169 16FF0 0062;0061 0334 1D169 16FF0 0062; # (a𖿰◌̴◌𝅩b; a◌̴◌𝅩𖿰b; a◌̴◌𝅩𖿰b; a◌̴◌𝅩𖿰b; a◌̴◌𝅩𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING TREMOLO-3, LATIN SMALL LETTER B
+0061 1D169 16FF0 0334 0062;0061 1D169 0334 16FF0 0062;0061 1D169 0334 16FF0 0062;0061 1D169 0334 16FF0 0062;0061 1D169 0334 16FF0 0062; # (a◌𝅩𖿰◌̴b; a◌𝅩◌̴𖿰b; a◌𝅩◌̴𖿰b; a◌𝅩◌̴𖿰b; a◌𝅩◌̴𖿰b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING TREMOLO-3, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 05AE 1D16D 302E 1D16D 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062; # (a◌〮𝅭𝅭֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; ) LATIN SMALL LETTER A, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL LETTER B
+0061 1D16D 05AE 1D16D 302E 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062; # (a𝅭◌〮𝅭֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D16E 0062;0061 1DCE 031B 1D16E 1DFA 0062;0061 1DCE 031B 1D16E 1DFA 0062;0061 1DCE 031B 1D16E 1DFA 0062;0061 1DCE 031B 1D16E 1DFA 0062; # (a◌᷺◌̛◌᷎𝅮b; a◌᷎◌̛𝅮◌᷺b; a◌᷎◌̛𝅮◌᷺b; a◌᷎◌̛𝅮◌᷺b; a◌᷎◌̛𝅮◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING FLAG-1, LATIN SMALL LETTER B
+0061 1D16E 1DFA 031B 1DCE 0062;0061 1DCE 1D16E 031B 1DFA 0062;0061 1DCE 1D16E 031B 1DFA 0062;0061 1DCE 1D16E 031B 1DFA 0062;0061 1DCE 1D16E 031B 1DFA 0062; # (a𝅮◌᷺◌̛◌᷎b; a◌᷎𝅮◌̛◌᷺b; a◌᷎𝅮◌̛◌᷺b; a◌᷎𝅮◌̛◌᷺b; a◌᷎𝅮◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING FLAG-1, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D16F 0062;0061 1DCE 031B 1D16F 1DFA 0062;0061 1DCE 031B 1D16F 1DFA 0062;0061 1DCE 031B 1D16F 1DFA 0062;0061 1DCE 031B 1D16F 1DFA 0062; # (a◌᷺◌̛◌᷎𝅯b; a◌᷎◌̛𝅯◌᷺b; a◌᷎◌̛𝅯◌᷺b; a◌᷎◌̛𝅯◌᷺b; a◌᷎◌̛𝅯◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING FLAG-2, LATIN SMALL LETTER B
+0061 1D16F 1DFA 031B 1DCE 0062;0061 1DCE 1D16F 031B 1DFA 0062;0061 1DCE 1D16F 031B 1DFA 0062;0061 1DCE 1D16F 031B 1DFA 0062;0061 1DCE 1D16F 031B 1DFA 0062; # (a𝅯◌᷺◌̛◌᷎b; a◌᷎𝅯◌̛◌᷺b; a◌᷎𝅯◌̛◌᷺b; a◌᷎𝅯◌̛◌᷺b; a◌᷎𝅯◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING FLAG-2, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D170 0062;0061 1DCE 031B 1D170 1DFA 0062;0061 1DCE 031B 1D170 1DFA 0062;0061 1DCE 031B 1D170 1DFA 0062;0061 1DCE 031B 1D170 1DFA 0062; # (a◌᷺◌̛◌᷎𝅰b; a◌᷎◌̛𝅰◌᷺b; a◌᷎◌̛𝅰◌᷺b; a◌᷎◌̛𝅰◌᷺b; a◌᷎◌̛𝅰◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING FLAG-3, LATIN SMALL LETTER B
+0061 1D170 1DFA 031B 1DCE 0062;0061 1DCE 1D170 031B 1DFA 0062;0061 1DCE 1D170 031B 1DFA 0062;0061 1DCE 1D170 031B 1DFA 0062;0061 1DCE 1D170 031B 1DFA 0062; # (a𝅰◌᷺◌̛◌᷎b; a◌᷎𝅰◌̛◌᷺b; a◌᷎𝅰◌̛◌᷺b; a◌᷎𝅰◌̛◌᷺b; a◌᷎𝅰◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING FLAG-3, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D171 0062;0061 1DCE 031B 1D171 1DFA 0062;0061 1DCE 031B 1D171 1DFA 0062;0061 1DCE 031B 1D171 1DFA 0062;0061 1DCE 031B 1D171 1DFA 0062; # (a◌᷺◌̛◌᷎𝅱b; a◌᷎◌̛𝅱◌᷺b; a◌᷎◌̛𝅱◌᷺b; a◌᷎◌̛𝅱◌᷺b; a◌᷎◌̛𝅱◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING FLAG-4, LATIN SMALL LETTER B
+0061 1D171 1DFA 031B 1DCE 0062;0061 1DCE 1D171 031B 1DFA 0062;0061 1DCE 1D171 031B 1DFA 0062;0061 1DCE 1D171 031B 1DFA 0062;0061 1DCE 1D171 031B 1DFA 0062; # (a𝅱◌᷺◌̛◌᷎b; a◌᷎𝅱◌̛◌᷺b; a◌᷎𝅱◌̛◌᷺b; a◌᷎𝅱◌̛◌᷺b; a◌᷎𝅱◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING FLAG-4, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 1DFA 031B 1DCE 1D172 0062;0061 1DCE 031B 1D172 1DFA 0062;0061 1DCE 031B 1D172 1DFA 0062;0061 1DCE 031B 1D172 1DFA 0062;0061 1DCE 031B 1D172 1DFA 0062; # (a◌᷺◌̛◌᷎𝅲b; a◌᷎◌̛𝅲◌᷺b; a◌᷎◌̛𝅲◌᷺b; a◌᷎◌̛𝅲◌᷺b; a◌᷎◌̛𝅲◌᷺b; ) LATIN SMALL LETTER A, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING FLAG-5, LATIN SMALL LETTER B
+0061 1D172 1DFA 031B 1DCE 0062;0061 1DCE 1D172 031B 1DFA 0062;0061 1DCE 1D172 031B 1DFA 0062;0061 1DCE 1D172 031B 1DFA 0062;0061 1DCE 1D172 031B 1DFA 0062; # (a𝅲◌᷺◌̛◌᷎b; a◌᷎𝅲◌̛◌᷺b; a◌᷎𝅲◌̛◌᷺b; a◌᷎𝅲◌̛◌᷺b; a◌᷎𝅲◌̛◌᷺b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING FLAG-5, COMBINING DOT BELOW LEFT, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D17B 0062;0061 1DFA 0316 1D17B 059A 0062;0061 1DFA 0316 1D17B 059A 0062;0061 1DFA 0316 1D17B 059A 0062;0061 1DFA 0316 1D17B 059A 0062; # (a◌֚◌̖◌᷺◌𝅻b; a◌᷺◌̖◌𝅻◌֚b; a◌᷺◌̖◌𝅻◌֚b; a◌᷺◌̖◌𝅻◌֚b; a◌᷺◌̖◌𝅻◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING ACCENT, LATIN SMALL LETTER B
+0061 1D17B 059A 0316 1DFA 0062;0061 1DFA 1D17B 0316 059A 0062;0061 1DFA 1D17B 0316 059A 0062;0061 1DFA 1D17B 0316 059A 0062;0061 1DFA 1D17B 0316 059A 0062; # (a◌𝅻◌֚◌̖◌᷺b; a◌᷺◌𝅻◌̖◌֚b; a◌᷺◌𝅻◌̖◌֚b; a◌᷺◌𝅻◌̖◌֚b; a◌᷺◌𝅻◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING ACCENT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D17C 0062;0061 1DFA 0316 1D17C 059A 0062;0061 1DFA 0316 1D17C 059A 0062;0061 1DFA 0316 1D17C 059A 0062;0061 1DFA 0316 1D17C 059A 0062; # (a◌֚◌̖◌᷺◌𝅼b; a◌᷺◌̖◌𝅼◌֚b; a◌᷺◌̖◌𝅼◌֚b; a◌᷺◌̖◌𝅼◌֚b; a◌᷺◌̖◌𝅼◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING STACCATO, LATIN SMALL LETTER B
+0061 1D17C 059A 0316 1DFA 0062;0061 1DFA 1D17C 0316 059A 0062;0061 1DFA 1D17C 0316 059A 0062;0061 1DFA 1D17C 0316 059A 0062;0061 1DFA 1D17C 0316 059A 0062; # (a◌𝅼◌֚◌̖◌᷺b; a◌᷺◌𝅼◌̖◌֚b; a◌᷺◌𝅼◌̖◌֚b; a◌᷺◌𝅼◌̖◌֚b; a◌᷺◌𝅼◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING STACCATO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D17D 0062;0061 1DFA 0316 1D17D 059A 0062;0061 1DFA 0316 1D17D 059A 0062;0061 1DFA 0316 1D17D 059A 0062;0061 1DFA 0316 1D17D 059A 0062; # (a◌֚◌̖◌᷺◌𝅽b; a◌᷺◌̖◌𝅽◌֚b; a◌᷺◌̖◌𝅽◌֚b; a◌᷺◌̖◌𝅽◌֚b; a◌᷺◌̖◌𝅽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING TENUTO, LATIN SMALL LETTER B
+0061 1D17D 059A 0316 1DFA 0062;0061 1DFA 1D17D 0316 059A 0062;0061 1DFA 1D17D 0316 059A 0062;0061 1DFA 1D17D 0316 059A 0062;0061 1DFA 1D17D 0316 059A 0062; # (a◌𝅽◌֚◌̖◌᷺b; a◌᷺◌𝅽◌̖◌֚b; a◌᷺◌𝅽◌̖◌֚b; a◌᷺◌𝅽◌̖◌֚b; a◌᷺◌𝅽◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING TENUTO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D17E 0062;0061 1DFA 0316 1D17E 059A 0062;0061 1DFA 0316 1D17E 059A 0062;0061 1DFA 0316 1D17E 059A 0062;0061 1DFA 0316 1D17E 059A 0062; # (a◌֚◌̖◌᷺◌𝅾b; a◌᷺◌̖◌𝅾◌֚b; a◌᷺◌̖◌𝅾◌֚b; a◌᷺◌̖◌𝅾◌֚b; a◌᷺◌̖◌𝅾◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING STACCATISSIMO, LATIN SMALL LETTER B
+0061 1D17E 059A 0316 1DFA 0062;0061 1DFA 1D17E 0316 059A 0062;0061 1DFA 1D17E 0316 059A 0062;0061 1DFA 1D17E 0316 059A 0062;0061 1DFA 1D17E 0316 059A 0062; # (a◌𝅾◌֚◌̖◌᷺b; a◌᷺◌𝅾◌̖◌֚b; a◌᷺◌𝅾◌̖◌֚b; a◌᷺◌𝅾◌̖◌֚b; a◌᷺◌𝅾◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING STACCATISSIMO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D17F 0062;0061 1DFA 0316 1D17F 059A 0062;0061 1DFA 0316 1D17F 059A 0062;0061 1DFA 0316 1D17F 059A 0062;0061 1DFA 0316 1D17F 059A 0062; # (a◌֚◌̖◌᷺◌𝅿b; a◌᷺◌̖◌𝅿◌֚b; a◌᷺◌̖◌𝅿◌֚b; a◌᷺◌̖◌𝅿◌֚b; a◌᷺◌̖◌𝅿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING MARCATO, LATIN SMALL LETTER B
+0061 1D17F 059A 0316 1DFA 0062;0061 1DFA 1D17F 0316 059A 0062;0061 1DFA 1D17F 0316 059A 0062;0061 1DFA 1D17F 0316 059A 0062;0061 1DFA 1D17F 0316 059A 0062; # (a◌𝅿◌֚◌̖◌᷺b; a◌᷺◌𝅿◌̖◌֚b; a◌᷺◌𝅿◌̖◌֚b; a◌᷺◌𝅿◌̖◌֚b; a◌᷺◌𝅿◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING MARCATO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D180 0062;0061 1DFA 0316 1D180 059A 0062;0061 1DFA 0316 1D180 059A 0062;0061 1DFA 0316 1D180 059A 0062;0061 1DFA 0316 1D180 059A 0062; # (a◌֚◌̖◌᷺◌𝆀b; a◌᷺◌̖◌𝆀◌֚b; a◌᷺◌̖◌𝆀◌֚b; a◌᷺◌̖◌𝆀◌֚b; a◌᷺◌̖◌𝆀◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING MARCATO-STACCATO, LATIN SMALL LETTER B
+0061 1D180 059A 0316 1DFA 0062;0061 1DFA 1D180 0316 059A 0062;0061 1DFA 1D180 0316 059A 0062;0061 1DFA 1D180 0316 059A 0062;0061 1DFA 1D180 0316 059A 0062; # (a◌𝆀◌֚◌̖◌᷺b; a◌᷺◌𝆀◌̖◌֚b; a◌᷺◌𝆀◌̖◌֚b; a◌᷺◌𝆀◌̖◌֚b; a◌᷺◌𝆀◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING MARCATO-STACCATO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D181 0062;0061 1DFA 0316 1D181 059A 0062;0061 1DFA 0316 1D181 059A 0062;0061 1DFA 0316 1D181 059A 0062;0061 1DFA 0316 1D181 059A 0062; # (a◌֚◌̖◌᷺◌𝆁b; a◌᷺◌̖◌𝆁◌֚b; a◌᷺◌̖◌𝆁◌֚b; a◌᷺◌̖◌𝆁◌֚b; a◌᷺◌̖◌𝆁◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING ACCENT-STACCATO, LATIN SMALL LETTER B
+0061 1D181 059A 0316 1DFA 0062;0061 1DFA 1D181 0316 059A 0062;0061 1DFA 1D181 0316 059A 0062;0061 1DFA 1D181 0316 059A 0062;0061 1DFA 1D181 0316 059A 0062; # (a◌𝆁◌֚◌̖◌᷺b; a◌᷺◌𝆁◌̖◌֚b; a◌᷺◌𝆁◌̖◌֚b; a◌᷺◌𝆁◌̖◌֚b; a◌᷺◌𝆁◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING ACCENT-STACCATO, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D182 0062;0061 1DFA 0316 1D182 059A 0062;0061 1DFA 0316 1D182 059A 0062;0061 1DFA 0316 1D182 059A 0062;0061 1DFA 0316 1D182 059A 0062; # (a◌֚◌̖◌᷺◌𝆂b; a◌᷺◌̖◌𝆂◌֚b; a◌᷺◌̖◌𝆂◌֚b; a◌᷺◌̖◌𝆂◌֚b; a◌᷺◌̖◌𝆂◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING LOURE, LATIN SMALL LETTER B
+0061 1D182 059A 0316 1DFA 0062;0061 1DFA 1D182 0316 059A 0062;0061 1DFA 1D182 0316 059A 0062;0061 1DFA 1D182 0316 059A 0062;0061 1DFA 1D182 0316 059A 0062; # (a◌𝆂◌֚◌̖◌᷺b; a◌᷺◌𝆂◌̖◌֚b; a◌᷺◌𝆂◌̖◌֚b; a◌᷺◌𝆂◌̖◌֚b; a◌᷺◌𝆂◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING LOURE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D185 0062;00E0 05AE 1D185 0315 0062;0061 05AE 0300 1D185 0315 0062;00E0 05AE 1D185 0315 0062;0061 05AE 0300 1D185 0315 0062; # (a◌̕◌̀◌֮◌𝆅b; à◌֮◌𝆅◌̕b; a◌֮◌̀◌𝆅◌̕b; à◌֮◌𝆅◌̕b; a◌֮◌̀◌𝆅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING DOIT, LATIN SMALL LETTER B
+0061 1D185 0315 0300 05AE 0062;0061 05AE 1D185 0300 0315 0062;0061 05AE 1D185 0300 0315 0062;0061 05AE 1D185 0300 0315 0062;0061 05AE 1D185 0300 0315 0062; # (a◌𝆅◌̕◌̀◌֮b; a◌֮◌𝆅◌̀◌̕b; a◌֮◌𝆅◌̀◌̕b; a◌֮◌𝆅◌̀◌̕b; a◌֮◌𝆅◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING DOIT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D186 0062;00E0 05AE 1D186 0315 0062;0061 05AE 0300 1D186 0315 0062;00E0 05AE 1D186 0315 0062;0061 05AE 0300 1D186 0315 0062; # (a◌̕◌̀◌֮◌𝆆b; à◌֮◌𝆆◌̕b; a◌֮◌̀◌𝆆◌̕b; à◌֮◌𝆆◌̕b; a◌֮◌̀◌𝆆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING RIP, LATIN SMALL LETTER B
+0061 1D186 0315 0300 05AE 0062;0061 05AE 1D186 0300 0315 0062;0061 05AE 1D186 0300 0315 0062;0061 05AE 1D186 0300 0315 0062;0061 05AE 1D186 0300 0315 0062; # (a◌𝆆◌̕◌̀◌֮b; a◌֮◌𝆆◌̀◌̕b; a◌֮◌𝆆◌̀◌̕b; a◌֮◌𝆆◌̀◌̕b; a◌֮◌𝆆◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING RIP, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D187 0062;00E0 05AE 1D187 0315 0062;0061 05AE 0300 1D187 0315 0062;00E0 05AE 1D187 0315 0062;0061 05AE 0300 1D187 0315 0062; # (a◌̕◌̀◌֮◌𝆇b; à◌֮◌𝆇◌̕b; a◌֮◌̀◌𝆇◌̕b; à◌֮◌𝆇◌̕b; a◌֮◌̀◌𝆇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING FLIP, LATIN SMALL LETTER B
+0061 1D187 0315 0300 05AE 0062;0061 05AE 1D187 0300 0315 0062;0061 05AE 1D187 0300 0315 0062;0061 05AE 1D187 0300 0315 0062;0061 05AE 1D187 0300 0315 0062; # (a◌𝆇◌̕◌̀◌֮b; a◌֮◌𝆇◌̀◌̕b; a◌֮◌𝆇◌̀◌̕b; a◌֮◌𝆇◌̀◌̕b; a◌֮◌𝆇◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING FLIP, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D188 0062;00E0 05AE 1D188 0315 0062;0061 05AE 0300 1D188 0315 0062;00E0 05AE 1D188 0315 0062;0061 05AE 0300 1D188 0315 0062; # (a◌̕◌̀◌֮◌𝆈b; à◌֮◌𝆈◌̕b; a◌֮◌̀◌𝆈◌̕b; à◌֮◌𝆈◌̕b; a◌֮◌̀◌𝆈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING SMEAR, LATIN SMALL LETTER B
+0061 1D188 0315 0300 05AE 0062;0061 05AE 1D188 0300 0315 0062;0061 05AE 1D188 0300 0315 0062;0061 05AE 1D188 0300 0315 0062;0061 05AE 1D188 0300 0315 0062; # (a◌𝆈◌̕◌̀◌֮b; a◌֮◌𝆈◌̀◌̕b; a◌֮◌𝆈◌̀◌̕b; a◌֮◌𝆈◌̀◌̕b; a◌֮◌𝆈◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING SMEAR, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D189 0062;00E0 05AE 1D189 0315 0062;0061 05AE 0300 1D189 0315 0062;00E0 05AE 1D189 0315 0062;0061 05AE 0300 1D189 0315 0062; # (a◌̕◌̀◌֮◌𝆉b; à◌֮◌𝆉◌̕b; a◌֮◌̀◌𝆉◌̕b; à◌֮◌𝆉◌̕b; a◌֮◌̀◌𝆉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING BEND, LATIN SMALL LETTER B
+0061 1D189 0315 0300 05AE 0062;0061 05AE 1D189 0300 0315 0062;0061 05AE 1D189 0300 0315 0062;0061 05AE 1D189 0300 0315 0062;0061 05AE 1D189 0300 0315 0062; # (a◌𝆉◌̕◌̀◌֮b; a◌֮◌𝆉◌̀◌̕b; a◌֮◌𝆉◌̀◌̕b; a◌֮◌𝆉◌̀◌̕b; a◌֮◌𝆉◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING BEND, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D18A 0062;0061 1DFA 0316 1D18A 059A 0062;0061 1DFA 0316 1D18A 059A 0062;0061 1DFA 0316 1D18A 059A 0062;0061 1DFA 0316 1D18A 059A 0062; # (a◌֚◌̖◌᷺◌𝆊b; a◌᷺◌̖◌𝆊◌֚b; a◌᷺◌̖◌𝆊◌֚b; a◌᷺◌̖◌𝆊◌֚b; a◌᷺◌̖◌𝆊◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING DOUBLE TONGUE, LATIN SMALL LETTER B
+0061 1D18A 059A 0316 1DFA 0062;0061 1DFA 1D18A 0316 059A 0062;0061 1DFA 1D18A 0316 059A 0062;0061 1DFA 1D18A 0316 059A 0062;0061 1DFA 1D18A 0316 059A 0062; # (a◌𝆊◌֚◌̖◌᷺b; a◌᷺◌𝆊◌̖◌֚b; a◌᷺◌𝆊◌̖◌֚b; a◌᷺◌𝆊◌̖◌֚b; a◌᷺◌𝆊◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING DOUBLE TONGUE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1D18B 0062;0061 1DFA 0316 1D18B 059A 0062;0061 1DFA 0316 1D18B 059A 0062;0061 1DFA 0316 1D18B 059A 0062;0061 1DFA 0316 1D18B 059A 0062; # (a◌֚◌̖◌᷺◌𝆋b; a◌᷺◌̖◌𝆋◌֚b; a◌᷺◌̖◌𝆋◌֚b; a◌᷺◌̖◌𝆋◌֚b; a◌᷺◌̖◌𝆋◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MUSICAL SYMBOL COMBINING TRIPLE TONGUE, LATIN SMALL LETTER B
+0061 1D18B 059A 0316 1DFA 0062;0061 1DFA 1D18B 0316 059A 0062;0061 1DFA 1D18B 0316 059A 0062;0061 1DFA 1D18B 0316 059A 0062;0061 1DFA 1D18B 0316 059A 0062; # (a◌𝆋◌֚◌̖◌᷺b; a◌᷺◌𝆋◌̖◌֚b; a◌᷺◌𝆋◌̖◌֚b; a◌᷺◌𝆋◌̖◌֚b; a◌᷺◌𝆋◌̖◌֚b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING TRIPLE TONGUE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D1AA 0062;00E0 05AE 1D1AA 0315 0062;0061 05AE 0300 1D1AA 0315 0062;00E0 05AE 1D1AA 0315 0062;0061 05AE 0300 1D1AA 0315 0062; # (a◌̕◌̀◌֮◌𝆪b; à◌֮◌𝆪◌̕b; a◌֮◌̀◌𝆪◌̕b; à◌֮◌𝆪◌̕b; a◌֮◌̀◌𝆪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING DOWN BOW, LATIN SMALL LETTER B
+0061 1D1AA 0315 0300 05AE 0062;0061 05AE 1D1AA 0300 0315 0062;0061 05AE 1D1AA 0300 0315 0062;0061 05AE 1D1AA 0300 0315 0062;0061 05AE 1D1AA 0300 0315 0062; # (a◌𝆪◌̕◌̀◌֮b; a◌֮◌𝆪◌̀◌̕b; a◌֮◌𝆪◌̀◌̕b; a◌֮◌𝆪◌̀◌̕b; a◌֮◌𝆪◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING DOWN BOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D1AB 0062;00E0 05AE 1D1AB 0315 0062;0061 05AE 0300 1D1AB 0315 0062;00E0 05AE 1D1AB 0315 0062;0061 05AE 0300 1D1AB 0315 0062; # (a◌̕◌̀◌֮◌𝆫b; à◌֮◌𝆫◌̕b; a◌֮◌̀◌𝆫◌̕b; à◌֮◌𝆫◌̕b; a◌֮◌̀◌𝆫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING UP BOW, LATIN SMALL LETTER B
+0061 1D1AB 0315 0300 05AE 0062;0061 05AE 1D1AB 0300 0315 0062;0061 05AE 1D1AB 0300 0315 0062;0061 05AE 1D1AB 0300 0315 0062;0061 05AE 1D1AB 0300 0315 0062; # (a◌𝆫◌̕◌̀◌֮b; a◌֮◌𝆫◌̀◌̕b; a◌֮◌𝆫◌̀◌̕b; a◌֮◌𝆫◌̀◌̕b; a◌֮◌𝆫◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING UP BOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D1AC 0062;00E0 05AE 1D1AC 0315 0062;0061 05AE 0300 1D1AC 0315 0062;00E0 05AE 1D1AC 0315 0062;0061 05AE 0300 1D1AC 0315 0062; # (a◌̕◌̀◌֮◌𝆬b; à◌֮◌𝆬◌̕b; a◌֮◌̀◌𝆬◌̕b; à◌֮◌𝆬◌̕b; a◌֮◌̀◌𝆬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING HARMONIC, LATIN SMALL LETTER B
+0061 1D1AC 0315 0300 05AE 0062;0061 05AE 1D1AC 0300 0315 0062;0061 05AE 1D1AC 0300 0315 0062;0061 05AE 1D1AC 0300 0315 0062;0061 05AE 1D1AC 0300 0315 0062; # (a◌𝆬◌̕◌̀◌֮b; a◌֮◌𝆬◌̀◌̕b; a◌֮◌𝆬◌̀◌̕b; a◌֮◌𝆬◌̀◌̕b; a◌֮◌𝆬◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING HARMONIC, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D1AD 0062;00E0 05AE 1D1AD 0315 0062;0061 05AE 0300 1D1AD 0315 0062;00E0 05AE 1D1AD 0315 0062;0061 05AE 0300 1D1AD 0315 0062; # (a◌̕◌̀◌֮◌𝆭b; à◌֮◌𝆭◌̕b; a◌֮◌̀◌𝆭◌̕b; à◌֮◌𝆭◌̕b; a◌֮◌̀◌𝆭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING SNAP PIZZICATO, LATIN SMALL LETTER B
+0061 1D1AD 0315 0300 05AE 0062;0061 05AE 1D1AD 0300 0315 0062;0061 05AE 1D1AD 0300 0315 0062;0061 05AE 1D1AD 0300 0315 0062;0061 05AE 1D1AD 0300 0315 0062; # (a◌𝆭◌̕◌̀◌֮b; a◌֮◌𝆭◌̀◌̕b; a◌֮◌𝆭◌̀◌̕b; a◌֮◌𝆭◌̀◌̕b; a◌֮◌𝆭◌̀◌̕b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING SNAP PIZZICATO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D242 0062;00E0 05AE 1D242 0315 0062;0061 05AE 0300 1D242 0315 0062;00E0 05AE 1D242 0315 0062;0061 05AE 0300 1D242 0315 0062; # (a◌̕◌̀◌֮◌𝉂b; à◌֮◌𝉂◌̕b; a◌֮◌̀◌𝉂◌̕b; à◌֮◌𝉂◌̕b; a◌֮◌̀◌𝉂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK MUSICAL TRISEME, LATIN SMALL LETTER B
+0061 1D242 0315 0300 05AE 0062;0061 05AE 1D242 0300 0315 0062;0061 05AE 1D242 0300 0315 0062;0061 05AE 1D242 0300 0315 0062;0061 05AE 1D242 0300 0315 0062; # (a◌𝉂◌̕◌̀◌֮b; a◌֮◌𝉂◌̀◌̕b; a◌֮◌𝉂◌̀◌̕b; a◌֮◌𝉂◌̀◌̕b; a◌֮◌𝉂◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK MUSICAL TRISEME, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D243 0062;00E0 05AE 1D243 0315 0062;0061 05AE 0300 1D243 0315 0062;00E0 05AE 1D243 0315 0062;0061 05AE 0300 1D243 0315 0062; # (a◌̕◌̀◌֮◌𝉃b; à◌֮◌𝉃◌̕b; a◌֮◌̀◌𝉃◌̕b; à◌֮◌𝉃◌̕b; a◌֮◌̀◌𝉃◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK MUSICAL TETRASEME, LATIN SMALL LETTER B
+0061 1D243 0315 0300 05AE 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062; # (a◌𝉃◌̕◌̀◌֮b; a◌֮◌𝉃◌̀◌̕b; a◌֮◌𝉃◌̀◌̕b; a◌֮◌𝉃◌̀◌̕b; a◌֮◌𝉃◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK MUSICAL TETRASEME, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1D244 0062;00E0 05AE 1D244 0315 0062;0061 05AE 0300 1D244 0315 0062;00E0 05AE 1D244 0315 0062;0061 05AE 0300 1D244 0315 0062; # (a◌̕◌̀◌֮◌𝉄b; à◌֮◌𝉄◌̕b; a◌֮◌̀◌𝉄◌̕b; à◌֮◌𝉄◌̕b; a◌֮◌̀◌𝉄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK MUSICAL PENTASEME, LATIN SMALL LETTER B
+0061 1D244 0315 0300 05AE 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062; # (a◌𝉄◌̕◌̀◌֮b; a◌֮◌𝉄◌̀◌̕b; a◌֮◌𝉄◌̀◌̕b; a◌֮◌𝉄◌̀◌̕b; a◌֮◌𝉄◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK MUSICAL PENTASEME, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E000 0062;00E0 05AE 1E000 0315 0062;0061 05AE 0300 1E000 0315 0062;00E0 05AE 1E000 0315 0062;0061 05AE 0300 1E000 0315 0062; # (a◌̕◌̀◌֮◌𞀀b; à◌֮◌𞀀◌̕b; a◌֮◌̀◌𞀀◌̕b; à◌֮◌𞀀◌̕b; a◌֮◌̀◌𞀀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER AZU, LATIN SMALL LETTER B
+0061 1E000 0315 0300 05AE 0062;0061 05AE 1E000 0300 0315 0062;0061 05AE 1E000 0300 0315 0062;0061 05AE 1E000 0300 0315 0062;0061 05AE 1E000 0300 0315 0062; # (a◌𞀀◌̕◌̀◌֮b; a◌֮◌𞀀◌̀◌̕b; a◌֮◌𞀀◌̀◌̕b; a◌֮◌𞀀◌̀◌̕b; a◌֮◌𞀀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER AZU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E001 0062;00E0 05AE 1E001 0315 0062;0061 05AE 0300 1E001 0315 0062;00E0 05AE 1E001 0315 0062;0061 05AE 0300 1E001 0315 0062; # (a◌̕◌̀◌֮◌𞀁b; à◌֮◌𞀁◌̕b; a◌֮◌̀◌𞀁◌̕b; à◌֮◌𞀁◌̕b; a◌֮◌̀◌𞀁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER BUKY, LATIN SMALL LETTER B
+0061 1E001 0315 0300 05AE 0062;0061 05AE 1E001 0300 0315 0062;0061 05AE 1E001 0300 0315 0062;0061 05AE 1E001 0300 0315 0062;0061 05AE 1E001 0300 0315 0062; # (a◌𞀁◌̕◌̀◌֮b; a◌֮◌𞀁◌̀◌̕b; a◌֮◌𞀁◌̀◌̕b; a◌֮◌𞀁◌̀◌̕b; a◌֮◌𞀁◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER BUKY, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E002 0062;00E0 05AE 1E002 0315 0062;0061 05AE 0300 1E002 0315 0062;00E0 05AE 1E002 0315 0062;0061 05AE 0300 1E002 0315 0062; # (a◌̕◌̀◌֮◌𞀂b; à◌֮◌𞀂◌̕b; a◌֮◌̀◌𞀂◌̕b; à◌֮◌𞀂◌̕b; a◌֮◌̀◌𞀂◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER VEDE, LATIN SMALL LETTER B
+0061 1E002 0315 0300 05AE 0062;0061 05AE 1E002 0300 0315 0062;0061 05AE 1E002 0300 0315 0062;0061 05AE 1E002 0300 0315 0062;0061 05AE 1E002 0300 0315 0062; # (a◌𞀂◌̕◌̀◌֮b; a◌֮◌𞀂◌̀◌̕b; a◌֮◌𞀂◌̀◌̕b; a◌֮◌𞀂◌̀◌̕b; a◌֮◌𞀂◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER VEDE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E003 0062;00E0 05AE 1E003 0315 0062;0061 05AE 0300 1E003 0315 0062;00E0 05AE 1E003 0315 0062;0061 05AE 0300 1E003 0315 0062; # (a◌̕◌̀◌֮◌𞀃b; à◌֮◌𞀃◌̕b; a◌֮◌̀◌𞀃◌̕b; à◌֮◌𞀃◌̕b; a◌֮◌̀◌𞀃◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER GLAGOLI, LATIN SMALL LETTER B
+0061 1E003 0315 0300 05AE 0062;0061 05AE 1E003 0300 0315 0062;0061 05AE 1E003 0300 0315 0062;0061 05AE 1E003 0300 0315 0062;0061 05AE 1E003 0300 0315 0062; # (a◌𞀃◌̕◌̀◌֮b; a◌֮◌𞀃◌̀◌̕b; a◌֮◌𞀃◌̀◌̕b; a◌֮◌𞀃◌̀◌̕b; a◌֮◌𞀃◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER GLAGOLI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E004 0062;00E0 05AE 1E004 0315 0062;0061 05AE 0300 1E004 0315 0062;00E0 05AE 1E004 0315 0062;0061 05AE 0300 1E004 0315 0062; # (a◌̕◌̀◌֮◌𞀄b; à◌֮◌𞀄◌̕b; a◌֮◌̀◌𞀄◌̕b; à◌֮◌𞀄◌̕b; a◌֮◌̀◌𞀄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER DOBRO, LATIN SMALL LETTER B
+0061 1E004 0315 0300 05AE 0062;0061 05AE 1E004 0300 0315 0062;0061 05AE 1E004 0300 0315 0062;0061 05AE 1E004 0300 0315 0062;0061 05AE 1E004 0300 0315 0062; # (a◌𞀄◌̕◌̀◌֮b; a◌֮◌𞀄◌̀◌̕b; a◌֮◌𞀄◌̀◌̕b; a◌֮◌𞀄◌̀◌̕b; a◌֮◌𞀄◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER DOBRO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E005 0062;00E0 05AE 1E005 0315 0062;0061 05AE 0300 1E005 0315 0062;00E0 05AE 1E005 0315 0062;0061 05AE 0300 1E005 0315 0062; # (a◌̕◌̀◌֮◌𞀅b; à◌֮◌𞀅◌̕b; a◌֮◌̀◌𞀅◌̕b; à◌֮◌𞀅◌̕b; a◌֮◌̀◌𞀅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER YESTU, LATIN SMALL LETTER B
+0061 1E005 0315 0300 05AE 0062;0061 05AE 1E005 0300 0315 0062;0061 05AE 1E005 0300 0315 0062;0061 05AE 1E005 0300 0315 0062;0061 05AE 1E005 0300 0315 0062; # (a◌𞀅◌̕◌̀◌֮b; a◌֮◌𞀅◌̀◌̕b; a◌֮◌𞀅◌̀◌̕b; a◌֮◌𞀅◌̀◌̕b; a◌֮◌𞀅◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER YESTU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E006 0062;00E0 05AE 1E006 0315 0062;0061 05AE 0300 1E006 0315 0062;00E0 05AE 1E006 0315 0062;0061 05AE 0300 1E006 0315 0062; # (a◌̕◌̀◌֮◌𞀆b; à◌֮◌𞀆◌̕b; a◌֮◌̀◌𞀆◌̕b; à◌֮◌𞀆◌̕b; a◌֮◌̀◌𞀆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER ZHIVETE, LATIN SMALL LETTER B
+0061 1E006 0315 0300 05AE 0062;0061 05AE 1E006 0300 0315 0062;0061 05AE 1E006 0300 0315 0062;0061 05AE 1E006 0300 0315 0062;0061 05AE 1E006 0300 0315 0062; # (a◌𞀆◌̕◌̀◌֮b; a◌֮◌𞀆◌̀◌̕b; a◌֮◌𞀆◌̀◌̕b; a◌֮◌𞀆◌̀◌̕b; a◌֮◌𞀆◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER ZHIVETE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E008 0062;00E0 05AE 1E008 0315 0062;0061 05AE 0300 1E008 0315 0062;00E0 05AE 1E008 0315 0062;0061 05AE 0300 1E008 0315 0062; # (a◌̕◌̀◌֮◌𞀈b; à◌֮◌𞀈◌̕b; a◌֮◌̀◌𞀈◌̕b; à◌֮◌𞀈◌̕b; a◌֮◌̀◌𞀈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER ZEMLJA, LATIN SMALL LETTER B
+0061 1E008 0315 0300 05AE 0062;0061 05AE 1E008 0300 0315 0062;0061 05AE 1E008 0300 0315 0062;0061 05AE 1E008 0300 0315 0062;0061 05AE 1E008 0300 0315 0062; # (a◌𞀈◌̕◌̀◌֮b; a◌֮◌𞀈◌̀◌̕b; a◌֮◌𞀈◌̀◌̕b; a◌֮◌𞀈◌̀◌̕b; a◌֮◌𞀈◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER ZEMLJA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E009 0062;00E0 05AE 1E009 0315 0062;0061 05AE 0300 1E009 0315 0062;00E0 05AE 1E009 0315 0062;0061 05AE 0300 1E009 0315 0062; # (a◌̕◌̀◌֮◌𞀉b; à◌֮◌𞀉◌̕b; a◌֮◌̀◌𞀉◌̕b; à◌֮◌𞀉◌̕b; a◌֮◌̀◌𞀉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER IZHE, LATIN SMALL LETTER B
+0061 1E009 0315 0300 05AE 0062;0061 05AE 1E009 0300 0315 0062;0061 05AE 1E009 0300 0315 0062;0061 05AE 1E009 0300 0315 0062;0061 05AE 1E009 0300 0315 0062; # (a◌𞀉◌̕◌̀◌֮b; a◌֮◌𞀉◌̀◌̕b; a◌֮◌𞀉◌̀◌̕b; a◌֮◌𞀉◌̀◌̕b; a◌֮◌𞀉◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IZHE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E00A 0062;00E0 05AE 1E00A 0315 0062;0061 05AE 0300 1E00A 0315 0062;00E0 05AE 1E00A 0315 0062;0061 05AE 0300 1E00A 0315 0062; # (a◌̕◌̀◌֮◌𞀊b; à◌֮◌𞀊◌̕b; a◌֮◌̀◌𞀊◌̕b; à◌֮◌𞀊◌̕b; a◌֮◌̀◌𞀊◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER INITIAL IZHE, LATIN SMALL LETTER B
+0061 1E00A 0315 0300 05AE 0062;0061 05AE 1E00A 0300 0315 0062;0061 05AE 1E00A 0300 0315 0062;0061 05AE 1E00A 0300 0315 0062;0061 05AE 1E00A 0300 0315 0062; # (a◌𞀊◌̕◌̀◌֮b; a◌֮◌𞀊◌̀◌̕b; a◌֮◌𞀊◌̀◌̕b; a◌֮◌𞀊◌̀◌̕b; a◌֮◌𞀊◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER INITIAL IZHE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E00B 0062;00E0 05AE 1E00B 0315 0062;0061 05AE 0300 1E00B 0315 0062;00E0 05AE 1E00B 0315 0062;0061 05AE 0300 1E00B 0315 0062; # (a◌̕◌̀◌֮◌𞀋b; à◌֮◌𞀋◌̕b; a◌֮◌̀◌𞀋◌̕b; à◌֮◌𞀋◌̕b; a◌֮◌̀◌𞀋◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER I, LATIN SMALL LETTER B
+0061 1E00B 0315 0300 05AE 0062;0061 05AE 1E00B 0300 0315 0062;0061 05AE 1E00B 0300 0315 0062;0061 05AE 1E00B 0300 0315 0062;0061 05AE 1E00B 0300 0315 0062; # (a◌𞀋◌̕◌̀◌֮b; a◌֮◌𞀋◌̀◌̕b; a◌֮◌𞀋◌̀◌̕b; a◌֮◌𞀋◌̀◌̕b; a◌֮◌𞀋◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E00C 0062;00E0 05AE 1E00C 0315 0062;0061 05AE 0300 1E00C 0315 0062;00E0 05AE 1E00C 0315 0062;0061 05AE 0300 1E00C 0315 0062; # (a◌̕◌̀◌֮◌𞀌b; à◌֮◌𞀌◌̕b; a◌֮◌̀◌𞀌◌̕b; à◌֮◌𞀌◌̕b; a◌֮◌̀◌𞀌◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER DJERVI, LATIN SMALL LETTER B
+0061 1E00C 0315 0300 05AE 0062;0061 05AE 1E00C 0300 0315 0062;0061 05AE 1E00C 0300 0315 0062;0061 05AE 1E00C 0300 0315 0062;0061 05AE 1E00C 0300 0315 0062; # (a◌𞀌◌̕◌̀◌֮b; a◌֮◌𞀌◌̀◌̕b; a◌֮◌𞀌◌̀◌̕b; a◌֮◌𞀌◌̀◌̕b; a◌֮◌𞀌◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER DJERVI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E00D 0062;00E0 05AE 1E00D 0315 0062;0061 05AE 0300 1E00D 0315 0062;00E0 05AE 1E00D 0315 0062;0061 05AE 0300 1E00D 0315 0062; # (a◌̕◌̀◌֮◌𞀍b; à◌֮◌𞀍◌̕b; a◌֮◌̀◌𞀍◌̕b; à◌֮◌𞀍◌̕b; a◌֮◌̀◌𞀍◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER KAKO, LATIN SMALL LETTER B
+0061 1E00D 0315 0300 05AE 0062;0061 05AE 1E00D 0300 0315 0062;0061 05AE 1E00D 0300 0315 0062;0061 05AE 1E00D 0300 0315 0062;0061 05AE 1E00D 0300 0315 0062; # (a◌𞀍◌̕◌̀◌֮b; a◌֮◌𞀍◌̀◌̕b; a◌֮◌𞀍◌̀◌̕b; a◌֮◌𞀍◌̀◌̕b; a◌֮◌𞀍◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER KAKO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E00E 0062;00E0 05AE 1E00E 0315 0062;0061 05AE 0300 1E00E 0315 0062;00E0 05AE 1E00E 0315 0062;0061 05AE 0300 1E00E 0315 0062; # (a◌̕◌̀◌֮◌𞀎b; à◌֮◌𞀎◌̕b; a◌֮◌̀◌𞀎◌̕b; à◌֮◌𞀎◌̕b; a◌֮◌̀◌𞀎◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER LJUDIJE, LATIN SMALL LETTER B
+0061 1E00E 0315 0300 05AE 0062;0061 05AE 1E00E 0300 0315 0062;0061 05AE 1E00E 0300 0315 0062;0061 05AE 1E00E 0300 0315 0062;0061 05AE 1E00E 0300 0315 0062; # (a◌𞀎◌̕◌̀◌֮b; a◌֮◌𞀎◌̀◌̕b; a◌֮◌𞀎◌̀◌̕b; a◌֮◌𞀎◌̀◌̕b; a◌֮◌𞀎◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER LJUDIJE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E00F 0062;00E0 05AE 1E00F 0315 0062;0061 05AE 0300 1E00F 0315 0062;00E0 05AE 1E00F 0315 0062;0061 05AE 0300 1E00F 0315 0062; # (a◌̕◌̀◌֮◌𞀏b; à◌֮◌𞀏◌̕b; a◌֮◌̀◌𞀏◌̕b; à◌֮◌𞀏◌̕b; a◌֮◌̀◌𞀏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER MYSLITE, LATIN SMALL LETTER B
+0061 1E00F 0315 0300 05AE 0062;0061 05AE 1E00F 0300 0315 0062;0061 05AE 1E00F 0300 0315 0062;0061 05AE 1E00F 0300 0315 0062;0061 05AE 1E00F 0300 0315 0062; # (a◌𞀏◌̕◌̀◌֮b; a◌֮◌𞀏◌̀◌̕b; a◌֮◌𞀏◌̀◌̕b; a◌֮◌𞀏◌̀◌̕b; a◌֮◌𞀏◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER MYSLITE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E010 0062;00E0 05AE 1E010 0315 0062;0061 05AE 0300 1E010 0315 0062;00E0 05AE 1E010 0315 0062;0061 05AE 0300 1E010 0315 0062; # (a◌̕◌̀◌֮◌𞀐b; à◌֮◌𞀐◌̕b; a◌֮◌̀◌𞀐◌̕b; à◌֮◌𞀐◌̕b; a◌֮◌̀◌𞀐◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER NASHI, LATIN SMALL LETTER B
+0061 1E010 0315 0300 05AE 0062;0061 05AE 1E010 0300 0315 0062;0061 05AE 1E010 0300 0315 0062;0061 05AE 1E010 0300 0315 0062;0061 05AE 1E010 0300 0315 0062; # (a◌𞀐◌̕◌̀◌֮b; a◌֮◌𞀐◌̀◌̕b; a◌֮◌𞀐◌̀◌̕b; a◌֮◌𞀐◌̀◌̕b; a◌֮◌𞀐◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER NASHI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E011 0062;00E0 05AE 1E011 0315 0062;0061 05AE 0300 1E011 0315 0062;00E0 05AE 1E011 0315 0062;0061 05AE 0300 1E011 0315 0062; # (a◌̕◌̀◌֮◌𞀑b; à◌֮◌𞀑◌̕b; a◌֮◌̀◌𞀑◌̕b; à◌֮◌𞀑◌̕b; a◌֮◌̀◌𞀑◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER ONU, LATIN SMALL LETTER B
+0061 1E011 0315 0300 05AE 0062;0061 05AE 1E011 0300 0315 0062;0061 05AE 1E011 0300 0315 0062;0061 05AE 1E011 0300 0315 0062;0061 05AE 1E011 0300 0315 0062; # (a◌𞀑◌̕◌̀◌֮b; a◌֮◌𞀑◌̀◌̕b; a◌֮◌𞀑◌̀◌̕b; a◌֮◌𞀑◌̀◌̕b; a◌֮◌𞀑◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER ONU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E012 0062;00E0 05AE 1E012 0315 0062;0061 05AE 0300 1E012 0315 0062;00E0 05AE 1E012 0315 0062;0061 05AE 0300 1E012 0315 0062; # (a◌̕◌̀◌֮◌𞀒b; à◌֮◌𞀒◌̕b; a◌֮◌̀◌𞀒◌̕b; à◌֮◌𞀒◌̕b; a◌֮◌̀◌𞀒◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER POKOJI, LATIN SMALL LETTER B
+0061 1E012 0315 0300 05AE 0062;0061 05AE 1E012 0300 0315 0062;0061 05AE 1E012 0300 0315 0062;0061 05AE 1E012 0300 0315 0062;0061 05AE 1E012 0300 0315 0062; # (a◌𞀒◌̕◌̀◌֮b; a◌֮◌𞀒◌̀◌̕b; a◌֮◌𞀒◌̀◌̕b; a◌֮◌𞀒◌̀◌̕b; a◌֮◌𞀒◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER POKOJI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E013 0062;00E0 05AE 1E013 0315 0062;0061 05AE 0300 1E013 0315 0062;00E0 05AE 1E013 0315 0062;0061 05AE 0300 1E013 0315 0062; # (a◌̕◌̀◌֮◌𞀓b; à◌֮◌𞀓◌̕b; a◌֮◌̀◌𞀓◌̕b; à◌֮◌𞀓◌̕b; a◌֮◌̀◌𞀓◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER RITSI, LATIN SMALL LETTER B
+0061 1E013 0315 0300 05AE 0062;0061 05AE 1E013 0300 0315 0062;0061 05AE 1E013 0300 0315 0062;0061 05AE 1E013 0300 0315 0062;0061 05AE 1E013 0300 0315 0062; # (a◌𞀓◌̕◌̀◌֮b; a◌֮◌𞀓◌̀◌̕b; a◌֮◌𞀓◌̀◌̕b; a◌֮◌𞀓◌̀◌̕b; a◌֮◌𞀓◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER RITSI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E014 0062;00E0 05AE 1E014 0315 0062;0061 05AE 0300 1E014 0315 0062;00E0 05AE 1E014 0315 0062;0061 05AE 0300 1E014 0315 0062; # (a◌̕◌̀◌֮◌𞀔b; à◌֮◌𞀔◌̕b; a◌֮◌̀◌𞀔◌̕b; à◌֮◌𞀔◌̕b; a◌֮◌̀◌𞀔◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER SLOVO, LATIN SMALL LETTER B
+0061 1E014 0315 0300 05AE 0062;0061 05AE 1E014 0300 0315 0062;0061 05AE 1E014 0300 0315 0062;0061 05AE 1E014 0300 0315 0062;0061 05AE 1E014 0300 0315 0062; # (a◌𞀔◌̕◌̀◌֮b; a◌֮◌𞀔◌̀◌̕b; a◌֮◌𞀔◌̀◌̕b; a◌֮◌𞀔◌̀◌̕b; a◌֮◌𞀔◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER SLOVO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E015 0062;00E0 05AE 1E015 0315 0062;0061 05AE 0300 1E015 0315 0062;00E0 05AE 1E015 0315 0062;0061 05AE 0300 1E015 0315 0062; # (a◌̕◌̀◌֮◌𞀕b; à◌֮◌𞀕◌̕b; a◌֮◌̀◌𞀕◌̕b; à◌֮◌𞀕◌̕b; a◌֮◌̀◌𞀕◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER TVRIDO, LATIN SMALL LETTER B
+0061 1E015 0315 0300 05AE 0062;0061 05AE 1E015 0300 0315 0062;0061 05AE 1E015 0300 0315 0062;0061 05AE 1E015 0300 0315 0062;0061 05AE 1E015 0300 0315 0062; # (a◌𞀕◌̕◌̀◌֮b; a◌֮◌𞀕◌̀◌̕b; a◌֮◌𞀕◌̀◌̕b; a◌֮◌𞀕◌̀◌̕b; a◌֮◌𞀕◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER TVRIDO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E016 0062;00E0 05AE 1E016 0315 0062;0061 05AE 0300 1E016 0315 0062;00E0 05AE 1E016 0315 0062;0061 05AE 0300 1E016 0315 0062; # (a◌̕◌̀◌֮◌𞀖b; à◌֮◌𞀖◌̕b; a◌֮◌̀◌𞀖◌̕b; à◌֮◌𞀖◌̕b; a◌֮◌̀◌𞀖◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER UKU, LATIN SMALL LETTER B
+0061 1E016 0315 0300 05AE 0062;0061 05AE 1E016 0300 0315 0062;0061 05AE 1E016 0300 0315 0062;0061 05AE 1E016 0300 0315 0062;0061 05AE 1E016 0300 0315 0062; # (a◌𞀖◌̕◌̀◌֮b; a◌֮◌𞀖◌̀◌̕b; a◌֮◌𞀖◌̀◌̕b; a◌֮◌𞀖◌̀◌̕b; a◌֮◌𞀖◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER UKU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E017 0062;00E0 05AE 1E017 0315 0062;0061 05AE 0300 1E017 0315 0062;00E0 05AE 1E017 0315 0062;0061 05AE 0300 1E017 0315 0062; # (a◌̕◌̀◌֮◌𞀗b; à◌֮◌𞀗◌̕b; a◌֮◌̀◌𞀗◌̕b; à◌֮◌𞀗◌̕b; a◌֮◌̀◌𞀗◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER FRITU, LATIN SMALL LETTER B
+0061 1E017 0315 0300 05AE 0062;0061 05AE 1E017 0300 0315 0062;0061 05AE 1E017 0300 0315 0062;0061 05AE 1E017 0300 0315 0062;0061 05AE 1E017 0300 0315 0062; # (a◌𞀗◌̕◌̀◌֮b; a◌֮◌𞀗◌̀◌̕b; a◌֮◌𞀗◌̀◌̕b; a◌֮◌𞀗◌̀◌̕b; a◌֮◌𞀗◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER FRITU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E018 0062;00E0 05AE 1E018 0315 0062;0061 05AE 0300 1E018 0315 0062;00E0 05AE 1E018 0315 0062;0061 05AE 0300 1E018 0315 0062; # (a◌̕◌̀◌֮◌𞀘b; à◌֮◌𞀘◌̕b; a◌֮◌̀◌𞀘◌̕b; à◌֮◌𞀘◌̕b; a◌֮◌̀◌𞀘◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER HERU, LATIN SMALL LETTER B
+0061 1E018 0315 0300 05AE 0062;0061 05AE 1E018 0300 0315 0062;0061 05AE 1E018 0300 0315 0062;0061 05AE 1E018 0300 0315 0062;0061 05AE 1E018 0300 0315 0062; # (a◌𞀘◌̕◌̀◌֮b; a◌֮◌𞀘◌̀◌̕b; a◌֮◌𞀘◌̀◌̕b; a◌֮◌𞀘◌̀◌̕b; a◌֮◌𞀘◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER HERU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E01B 0062;00E0 05AE 1E01B 0315 0062;0061 05AE 0300 1E01B 0315 0062;00E0 05AE 1E01B 0315 0062;0061 05AE 0300 1E01B 0315 0062; # (a◌̕◌̀◌֮◌𞀛b; à◌֮◌𞀛◌̕b; a◌֮◌̀◌𞀛◌̕b; à◌֮◌𞀛◌̕b; a◌֮◌̀◌𞀛◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER SHTA, LATIN SMALL LETTER B
+0061 1E01B 0315 0300 05AE 0062;0061 05AE 1E01B 0300 0315 0062;0061 05AE 1E01B 0300 0315 0062;0061 05AE 1E01B 0300 0315 0062;0061 05AE 1E01B 0300 0315 0062; # (a◌𞀛◌̕◌̀◌֮b; a◌֮◌𞀛◌̀◌̕b; a◌֮◌𞀛◌̀◌̕b; a◌֮◌𞀛◌̀◌̕b; a◌֮◌𞀛◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER SHTA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E01C 0062;00E0 05AE 1E01C 0315 0062;0061 05AE 0300 1E01C 0315 0062;00E0 05AE 1E01C 0315 0062;0061 05AE 0300 1E01C 0315 0062; # (a◌̕◌̀◌֮◌𞀜b; à◌֮◌𞀜◌̕b; a◌֮◌̀◌𞀜◌̕b; à◌֮◌𞀜◌̕b; a◌֮◌̀◌𞀜◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER TSI, LATIN SMALL LETTER B
+0061 1E01C 0315 0300 05AE 0062;0061 05AE 1E01C 0300 0315 0062;0061 05AE 1E01C 0300 0315 0062;0061 05AE 1E01C 0300 0315 0062;0061 05AE 1E01C 0300 0315 0062; # (a◌𞀜◌̕◌̀◌֮b; a◌֮◌𞀜◌̀◌̕b; a◌֮◌𞀜◌̀◌̕b; a◌֮◌𞀜◌̀◌̕b; a◌֮◌𞀜◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER TSI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E01D 0062;00E0 05AE 1E01D 0315 0062;0061 05AE 0300 1E01D 0315 0062;00E0 05AE 1E01D 0315 0062;0061 05AE 0300 1E01D 0315 0062; # (a◌̕◌̀◌֮◌𞀝b; à◌֮◌𞀝◌̕b; a◌֮◌̀◌𞀝◌̕b; à◌֮◌𞀝◌̕b; a◌֮◌̀◌𞀝◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER CHRIVI, LATIN SMALL LETTER B
+0061 1E01D 0315 0300 05AE 0062;0061 05AE 1E01D 0300 0315 0062;0061 05AE 1E01D 0300 0315 0062;0061 05AE 1E01D 0300 0315 0062;0061 05AE 1E01D 0300 0315 0062; # (a◌𞀝◌̕◌̀◌֮b; a◌֮◌𞀝◌̀◌̕b; a◌֮◌𞀝◌̀◌̕b; a◌֮◌𞀝◌̀◌̕b; a◌֮◌𞀝◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER CHRIVI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E01E 0062;00E0 05AE 1E01E 0315 0062;0061 05AE 0300 1E01E 0315 0062;00E0 05AE 1E01E 0315 0062;0061 05AE 0300 1E01E 0315 0062; # (a◌̕◌̀◌֮◌𞀞b; à◌֮◌𞀞◌̕b; a◌֮◌̀◌𞀞◌̕b; à◌֮◌𞀞◌̕b; a◌֮◌̀◌𞀞◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER SHA, LATIN SMALL LETTER B
+0061 1E01E 0315 0300 05AE 0062;0061 05AE 1E01E 0300 0315 0062;0061 05AE 1E01E 0300 0315 0062;0061 05AE 1E01E 0300 0315 0062;0061 05AE 1E01E 0300 0315 0062; # (a◌𞀞◌̕◌̀◌֮b; a◌֮◌𞀞◌̀◌̕b; a◌֮◌𞀞◌̀◌̕b; a◌֮◌𞀞◌̀◌̕b; a◌֮◌𞀞◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER SHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E01F 0062;00E0 05AE 1E01F 0315 0062;0061 05AE 0300 1E01F 0315 0062;00E0 05AE 1E01F 0315 0062;0061 05AE 0300 1E01F 0315 0062; # (a◌̕◌̀◌֮◌𞀟b; à◌֮◌𞀟◌̕b; a◌֮◌̀◌𞀟◌̕b; à◌֮◌𞀟◌̕b; a◌֮◌̀◌𞀟◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER YERU, LATIN SMALL LETTER B
+0061 1E01F 0315 0300 05AE 0062;0061 05AE 1E01F 0300 0315 0062;0061 05AE 1E01F 0300 0315 0062;0061 05AE 1E01F 0300 0315 0062;0061 05AE 1E01F 0300 0315 0062; # (a◌𞀟◌̕◌̀◌֮b; a◌֮◌𞀟◌̀◌̕b; a◌֮◌𞀟◌̀◌̕b; a◌֮◌𞀟◌̀◌̕b; a◌֮◌𞀟◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER YERU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E020 0062;00E0 05AE 1E020 0315 0062;0061 05AE 0300 1E020 0315 0062;00E0 05AE 1E020 0315 0062;0061 05AE 0300 1E020 0315 0062; # (a◌̕◌̀◌֮◌𞀠b; à◌֮◌𞀠◌̕b; a◌֮◌̀◌𞀠◌̕b; à◌֮◌𞀠◌̕b; a◌֮◌̀◌𞀠◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER YERI, LATIN SMALL LETTER B
+0061 1E020 0315 0300 05AE 0062;0061 05AE 1E020 0300 0315 0062;0061 05AE 1E020 0300 0315 0062;0061 05AE 1E020 0300 0315 0062;0061 05AE 1E020 0300 0315 0062; # (a◌𞀠◌̕◌̀◌֮b; a◌֮◌𞀠◌̀◌̕b; a◌֮◌𞀠◌̀◌̕b; a◌֮◌𞀠◌̀◌̕b; a◌֮◌𞀠◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER YERI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E021 0062;00E0 05AE 1E021 0315 0062;0061 05AE 0300 1E021 0315 0062;00E0 05AE 1E021 0315 0062;0061 05AE 0300 1E021 0315 0062; # (a◌̕◌̀◌֮◌𞀡b; à◌֮◌𞀡◌̕b; a◌֮◌̀◌𞀡◌̕b; à◌֮◌𞀡◌̕b; a◌֮◌̀◌𞀡◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER YATI, LATIN SMALL LETTER B
+0061 1E021 0315 0300 05AE 0062;0061 05AE 1E021 0300 0315 0062;0061 05AE 1E021 0300 0315 0062;0061 05AE 1E021 0300 0315 0062;0061 05AE 1E021 0300 0315 0062; # (a◌𞀡◌̕◌̀◌֮b; a◌֮◌𞀡◌̀◌̕b; a◌֮◌𞀡◌̀◌̕b; a◌֮◌𞀡◌̀◌̕b; a◌֮◌𞀡◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER YATI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E023 0062;00E0 05AE 1E023 0315 0062;0061 05AE 0300 1E023 0315 0062;00E0 05AE 1E023 0315 0062;0061 05AE 0300 1E023 0315 0062; # (a◌̕◌̀◌֮◌𞀣b; à◌֮◌𞀣◌̕b; a◌֮◌̀◌𞀣◌̕b; à◌֮◌𞀣◌̕b; a◌֮◌̀◌𞀣◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER YU, LATIN SMALL LETTER B
+0061 1E023 0315 0300 05AE 0062;0061 05AE 1E023 0300 0315 0062;0061 05AE 1E023 0300 0315 0062;0061 05AE 1E023 0300 0315 0062;0061 05AE 1E023 0300 0315 0062; # (a◌𞀣◌̕◌̀◌֮b; a◌֮◌𞀣◌̀◌̕b; a◌֮◌𞀣◌̀◌̕b; a◌֮◌𞀣◌̀◌̕b; a◌֮◌𞀣◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER YU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E024 0062;00E0 05AE 1E024 0315 0062;0061 05AE 0300 1E024 0315 0062;00E0 05AE 1E024 0315 0062;0061 05AE 0300 1E024 0315 0062; # (a◌̕◌̀◌֮◌𞀤b; à◌֮◌𞀤◌̕b; a◌֮◌̀◌𞀤◌̕b; à◌֮◌𞀤◌̕b; a◌֮◌̀◌𞀤◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER SMALL YUS, LATIN SMALL LETTER B
+0061 1E024 0315 0300 05AE 0062;0061 05AE 1E024 0300 0315 0062;0061 05AE 1E024 0300 0315 0062;0061 05AE 1E024 0300 0315 0062;0061 05AE 1E024 0300 0315 0062; # (a◌𞀤◌̕◌̀◌֮b; a◌֮◌𞀤◌̀◌̕b; a◌֮◌𞀤◌̀◌̕b; a◌֮◌𞀤◌̀◌̕b; a◌֮◌𞀤◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER SMALL YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E026 0062;00E0 05AE 1E026 0315 0062;0061 05AE 0300 1E026 0315 0062;00E0 05AE 1E026 0315 0062;0061 05AE 0300 1E026 0315 0062; # (a◌̕◌̀◌֮◌𞀦b; à◌֮◌𞀦◌̕b; a◌֮◌̀◌𞀦◌̕b; à◌֮◌𞀦◌̕b; a◌֮◌̀◌𞀦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER YO, LATIN SMALL LETTER B
+0061 1E026 0315 0300 05AE 0062;0061 05AE 1E026 0300 0315 0062;0061 05AE 1E026 0300 0315 0062;0061 05AE 1E026 0300 0315 0062;0061 05AE 1E026 0300 0315 0062; # (a◌𞀦◌̕◌̀◌֮b; a◌֮◌𞀦◌̀◌̕b; a◌֮◌𞀦◌̀◌̕b; a◌֮◌𞀦◌̀◌̕b; a◌֮◌𞀦◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER YO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E027 0062;00E0 05AE 1E027 0315 0062;0061 05AE 0300 1E027 0315 0062;00E0 05AE 1E027 0315 0062;0061 05AE 0300 1E027 0315 0062; # (a◌̕◌̀◌֮◌𞀧b; à◌֮◌𞀧◌̕b; a◌֮◌̀◌𞀧◌̕b; à◌֮◌𞀧◌̕b; a◌֮◌̀◌𞀧◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS, LATIN SMALL LETTER B
+0061 1E027 0315 0300 05AE 0062;0061 05AE 1E027 0300 0315 0062;0061 05AE 1E027 0300 0315 0062;0061 05AE 1E027 0300 0315 0062;0061 05AE 1E027 0300 0315 0062; # (a◌𞀧◌̕◌̀◌֮b; a◌֮◌𞀧◌̀◌̕b; a◌֮◌𞀧◌̀◌̕b; a◌֮◌𞀧◌̀◌̕b; a◌֮◌𞀧◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E028 0062;00E0 05AE 1E028 0315 0062;0061 05AE 0300 1E028 0315 0062;00E0 05AE 1E028 0315 0062;0061 05AE 0300 1E028 0315 0062; # (a◌̕◌̀◌֮◌𞀨b; à◌֮◌𞀨◌̕b; a◌֮◌̀◌𞀨◌̕b; à◌֮◌𞀨◌̕b; a◌֮◌̀◌𞀨◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER BIG YUS, LATIN SMALL LETTER B
+0061 1E028 0315 0300 05AE 0062;0061 05AE 1E028 0300 0315 0062;0061 05AE 1E028 0300 0315 0062;0061 05AE 1E028 0300 0315 0062;0061 05AE 1E028 0300 0315 0062; # (a◌𞀨◌̕◌̀◌֮b; a◌֮◌𞀨◌̀◌̕b; a◌֮◌𞀨◌̀◌̕b; a◌֮◌𞀨◌̀◌̕b; a◌֮◌𞀨◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E029 0062;00E0 05AE 1E029 0315 0062;0061 05AE 0300 1E029 0315 0062;00E0 05AE 1E029 0315 0062;0061 05AE 0300 1E029 0315 0062; # (a◌̕◌̀◌֮◌𞀩b; à◌֮◌𞀩◌̕b; a◌֮◌̀◌𞀩◌̕b; à◌֮◌𞀩◌̕b; a◌֮◌̀◌𞀩◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER IOTATED BIG YUS, LATIN SMALL LETTER B
+0061 1E029 0315 0300 05AE 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062; # (a◌𞀩◌̕◌̀◌֮b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IOTATED BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E02A 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062; # (a◌̕◌̀◌֮◌𞀪b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER FITA, LATIN SMALL LETTER B
+0061 1E02A 0315 0300 05AE 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062; # (a◌𞀪◌̕◌̀◌֮b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER FITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E08F 0062;00E0 05AE 1E08F 0315 0062;0061 05AE 0300 1E08F 0315 0062;00E0 05AE 1E08F 0315 0062;0061 05AE 0300 1E08F 0315 0062; # (a◌̕◌̀◌֮◌𞂏b; à◌֮◌𞂏◌̕b; a◌֮◌̀◌𞂏◌̕b; à◌֮◌𞂏◌̕b; a◌֮◌̀◌𞂏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I, LATIN SMALL LETTER B
+0061 1E08F 0315 0300 05AE 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062; # (a◌𞂏◌̕◌̀◌֮b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E130 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062; # (a◌̕◌̀◌֮◌𞄰b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-B, LATIN SMALL LETTER B
+0061 1E130 0315 0300 05AE 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062; # (a◌𞄰◌̕◌̀◌֮b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E131 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062; # (a◌̕◌̀◌֮◌𞄱b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-M, LATIN SMALL LETTER B
+0061 1E131 0315 0300 05AE 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062; # (a◌𞄱◌̕◌̀◌֮b; a◌֮◌𞄱◌̀◌̕b; a◌֮◌𞄱◌̀◌̕b; a◌֮◌𞄱◌̀◌̕b; a◌֮◌𞄱◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-M, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E132 0062;00E0 05AE 1E132 0315 0062;0061 05AE 0300 1E132 0315 0062;00E0 05AE 1E132 0315 0062;0061 05AE 0300 1E132 0315 0062; # (a◌̕◌̀◌֮◌𞄲b; à◌֮◌𞄲◌̕b; a◌֮◌̀◌𞄲◌̕b; à◌֮◌𞄲◌̕b; a◌֮◌̀◌𞄲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-J, LATIN SMALL LETTER B
+0061 1E132 0315 0300 05AE 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062; # (a◌𞄲◌̕◌̀◌֮b; a◌֮◌𞄲◌̀◌̕b; a◌֮◌𞄲◌̀◌̕b; a◌֮◌𞄲◌̀◌̕b; a◌֮◌𞄲◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-J, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E133 0062;00E0 05AE 1E133 0315 0062;0061 05AE 0300 1E133 0315 0062;00E0 05AE 1E133 0315 0062;0061 05AE 0300 1E133 0315 0062; # (a◌̕◌̀◌֮◌𞄳b; à◌֮◌𞄳◌̕b; a◌֮◌̀◌𞄳◌̕b; à◌֮◌𞄳◌̕b; a◌֮◌̀◌𞄳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-V, LATIN SMALL LETTER B
+0061 1E133 0315 0300 05AE 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062; # (a◌𞄳◌̕◌̀◌֮b; a◌֮◌𞄳◌̀◌̕b; a◌֮◌𞄳◌̀◌̕b; a◌֮◌𞄳◌̀◌̕b; a◌֮◌𞄳◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-V, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E134 0062;00E0 05AE 1E134 0315 0062;0061 05AE 0300 1E134 0315 0062;00E0 05AE 1E134 0315 0062;0061 05AE 0300 1E134 0315 0062; # (a◌̕◌̀◌֮◌𞄴b; à◌֮◌𞄴◌̕b; a◌֮◌̀◌𞄴◌̕b; à◌֮◌𞄴◌̕b; a◌֮◌̀◌𞄴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-S, LATIN SMALL LETTER B
+0061 1E134 0315 0300 05AE 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062; # (a◌𞄴◌̕◌̀◌֮b; a◌֮◌𞄴◌̀◌̕b; a◌֮◌𞄴◌̀◌̕b; a◌֮◌𞄴◌̀◌̕b; a◌֮◌𞄴◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-S, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E135 0062;00E0 05AE 1E135 0315 0062;0061 05AE 0300 1E135 0315 0062;00E0 05AE 1E135 0315 0062;0061 05AE 0300 1E135 0315 0062; # (a◌̕◌̀◌֮◌𞄵b; à◌֮◌𞄵◌̕b; a◌֮◌̀◌𞄵◌̕b; à◌֮◌𞄵◌̕b; a◌֮◌̀◌𞄵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-G, LATIN SMALL LETTER B
+0061 1E135 0315 0300 05AE 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062; # (a◌𞄵◌̕◌̀◌֮b; a◌֮◌𞄵◌̀◌̕b; a◌֮◌𞄵◌̀◌̕b; a◌֮◌𞄵◌̀◌̕b; a◌֮◌𞄵◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-G, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E136 0062;00E0 05AE 1E136 0315 0062;0061 05AE 0300 1E136 0315 0062;00E0 05AE 1E136 0315 0062;0061 05AE 0300 1E136 0315 0062; # (a◌̕◌̀◌֮◌𞄶b; à◌֮◌𞄶◌̕b; a◌֮◌̀◌𞄶◌̕b; à◌֮◌𞄶◌̕b; a◌֮◌̀◌𞄶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-D, LATIN SMALL LETTER B
+0061 1E136 0315 0300 05AE 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062; # (a◌𞄶◌̕◌̀◌֮b; a◌֮◌𞄶◌̀◌̕b; a◌֮◌𞄶◌̀◌̕b; a◌֮◌𞄶◌̀◌̕b; a◌֮◌𞄶◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-D, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2AE 0062;00E0 05AE 1E2AE 0315 0062;0061 05AE 0300 1E2AE 0315 0062;00E0 05AE 1E2AE 0315 0062;0061 05AE 0300 1E2AE 0315 0062; # (a◌̕◌̀◌֮◌𞊮b; à◌֮◌𞊮◌̕b; a◌֮◌̀◌𞊮◌̕b; à◌֮◌𞊮◌̕b; a◌֮◌̀◌𞊮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, TOTO SIGN RISING TONE, LATIN SMALL LETTER B
+0061 1E2AE 0315 0300 05AE 0062;0061 05AE 1E2AE 0300 0315 0062;0061 05AE 1E2AE 0300 0315 0062;0061 05AE 1E2AE 0300 0315 0062;0061 05AE 1E2AE 0300 0315 0062; # (a◌𞊮◌̕◌̀◌֮b; a◌֮◌𞊮◌̀◌̕b; a◌֮◌𞊮◌̀◌̕b; a◌֮◌𞊮◌̀◌̕b; a◌֮◌𞊮◌̀◌̕b; ) LATIN SMALL LETTER A, TOTO SIGN RISING TONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2EC 0062;00E0 05AE 1E2EC 0315 0062;0061 05AE 0300 1E2EC 0315 0062;00E0 05AE 1E2EC 0315 0062;0061 05AE 0300 1E2EC 0315 0062; # (a◌̕◌̀◌֮◌𞋬b; à◌֮◌𞋬◌̕b; a◌֮◌̀◌𞋬◌̕b; à◌֮◌𞋬◌̕b; a◌֮◌̀◌𞋬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE TUP, LATIN SMALL LETTER B
+0061 1E2EC 0315 0300 05AE 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062; # (a◌𞋬◌̕◌̀◌֮b; a◌֮◌𞋬◌̀◌̕b; a◌֮◌𞋬◌̀◌̕b; a◌֮◌𞋬◌̀◌̕b; a◌֮◌𞋬◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE TUP, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2ED 0062;00E0 05AE 1E2ED 0315 0062;0061 05AE 0300 1E2ED 0315 0062;00E0 05AE 1E2ED 0315 0062;0061 05AE 0300 1E2ED 0315 0062; # (a◌̕◌̀◌֮◌𞋭b; à◌֮◌𞋭◌̕b; a◌֮◌̀◌𞋭◌̕b; à◌֮◌𞋭◌̕b; a◌֮◌̀◌𞋭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE TUPNI, LATIN SMALL LETTER B
+0061 1E2ED 0315 0300 05AE 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062; # (a◌𞋭◌̕◌̀◌֮b; a◌֮◌𞋭◌̀◌̕b; a◌֮◌𞋭◌̀◌̕b; a◌֮◌𞋭◌̀◌̕b; a◌֮◌𞋭◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE TUPNI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2EE 0062;00E0 05AE 1E2EE 0315 0062;0061 05AE 0300 1E2EE 0315 0062;00E0 05AE 1E2EE 0315 0062;0061 05AE 0300 1E2EE 0315 0062; # (a◌̕◌̀◌֮◌𞋮b; à◌֮◌𞋮◌̕b; a◌֮◌̀◌𞋮◌̕b; à◌֮◌𞋮◌̕b; a◌֮◌̀◌𞋮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOI, LATIN SMALL LETTER B
+0061 1E2EE 0315 0300 05AE 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062; # (a◌𞋮◌̕◌̀◌֮b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2EF 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062; # (a◌̕◌̀◌֮◌𞋯b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOINI, LATIN SMALL LETTER B
+0061 1E2EF 0315 0300 05AE 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062; # (a◌𞋯◌̕◌̀◌֮b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOINI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035C 0315 0300 1E4EC 0062;00E0 0315 1E4EC 035C 0062;0061 0300 0315 1E4EC 035C 0062;00E0 0315 1E4EC 035C 0062;0061 0300 0315 1E4EC 035C 0062; # (a◌͜◌̕◌̀◌𞓬b; à◌̕◌𞓬◌͜b; a◌̀◌̕◌𞓬◌͜b; à◌̕◌𞓬◌͜b; a◌̀◌̕◌𞓬◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, NAG MUNDARI SIGN MUHOR, LATIN SMALL LETTER B
+0061 1E4EC 035C 0315 0300 0062;00E0 1E4EC 0315 035C 0062;0061 0300 1E4EC 0315 035C 0062;00E0 1E4EC 0315 035C 0062;0061 0300 1E4EC 0315 035C 0062; # (a◌𞓬◌͜◌̕◌̀b; à◌𞓬◌̕◌͜b; a◌̀◌𞓬◌̕◌͜b; à◌𞓬◌̕◌͜b; a◌̀◌𞓬◌̕◌͜b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN MUHOR, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 035C 0315 0300 1E4ED 0062;00E0 0315 1E4ED 035C 0062;0061 0300 0315 1E4ED 035C 0062;00E0 0315 1E4ED 035C 0062;0061 0300 0315 1E4ED 035C 0062; # (a◌͜◌̕◌̀◌𞓭b; à◌̕◌𞓭◌͜b; a◌̀◌̕◌𞓭◌͜b; à◌̕◌𞓭◌͜b; a◌̀◌̕◌𞓭◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, NAG MUNDARI SIGN TOYOR, LATIN SMALL LETTER B
+0061 1E4ED 035C 0315 0300 0062;00E0 1E4ED 0315 035C 0062;0061 0300 1E4ED 0315 035C 0062;00E0 1E4ED 0315 035C 0062;0061 0300 1E4ED 0315 035C 0062; # (a◌𞓭◌͜◌̕◌̀b; à◌𞓭◌̕◌͜b; a◌̀◌𞓭◌̕◌͜b; à◌𞓭◌̕◌͜b; a◌̀◌𞓭◌̕◌͜b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN TOYOR, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E4EE 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062; # (a◌֚◌̖◌᷺◌𞓮b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, NAG MUNDARI SIGN IKIR, LATIN SMALL LETTER B
+0061 1E4EE 059A 0316 1DFA 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062; # (a◌𞓮◌֚◌̖◌᷺b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN IKIR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E4EF 0062;00E0 05AE 1E4EF 0315 0062;0061 05AE 0300 1E4EF 0315 0062;00E0 05AE 1E4EF 0315 0062;0061 05AE 0300 1E4EF 0315 0062; # (a◌̕◌̀◌֮◌𞓯b; à◌֮◌𞓯◌̕b; a◌֮◌̀◌𞓯◌̕b; à◌֮◌𞓯◌̕b; a◌֮◌̀◌𞓯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NAG MUNDARI SIGN SUTUH, LATIN SMALL LETTER B
+0061 1E4EF 0315 0300 05AE 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062; # (a◌𞓯◌̕◌̀◌֮b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN SUTUH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D0 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062; # (a◌֚◌̖◌᷺◌𞣐b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TEENS, LATIN SMALL LETTER B
+0061 1E8D0 059A 0316 1DFA 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062; # (a◌𞣐◌֚◌̖◌᷺b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D1 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062; # (a◌֚◌̖◌᷺◌𞣑b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TENS, LATIN SMALL LETTER B
+0061 1E8D1 059A 0316 1DFA 0062;0061 1DFA 1E8D1 0316 059A 0062;0061 1DFA 1E8D1 0316 059A 0062;0061 1DFA 1E8D1 0316 059A 0062;0061 1DFA 1E8D1 0316 059A 0062; # (a◌𞣑◌֚◌̖◌᷺b; a◌᷺◌𞣑◌̖◌֚b; a◌᷺◌𞣑◌̖◌֚b; a◌᷺◌𞣑◌̖◌֚b; a◌᷺◌𞣑◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D2 0062;0061 1DFA 0316 1E8D2 059A 0062;0061 1DFA 0316 1E8D2 059A 0062;0061 1DFA 0316 1E8D2 059A 0062;0061 1DFA 0316 1E8D2 059A 0062; # (a◌֚◌̖◌᷺◌𞣒b; a◌᷺◌̖◌𞣒◌֚b; a◌᷺◌̖◌𞣒◌֚b; a◌᷺◌̖◌𞣒◌֚b; a◌᷺◌̖◌𞣒◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER HUNDREDS, LATIN SMALL LETTER B
+0061 1E8D2 059A 0316 1DFA 0062;0061 1DFA 1E8D2 0316 059A 0062;0061 1DFA 1E8D2 0316 059A 0062;0061 1DFA 1E8D2 0316 059A 0062;0061 1DFA 1E8D2 0316 059A 0062; # (a◌𞣒◌֚◌̖◌᷺b; a◌᷺◌𞣒◌̖◌֚b; a◌᷺◌𞣒◌̖◌֚b; a◌᷺◌𞣒◌̖◌֚b; a◌᷺◌𞣒◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER HUNDREDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D3 0062;0061 1DFA 0316 1E8D3 059A 0062;0061 1DFA 0316 1E8D3 059A 0062;0061 1DFA 0316 1E8D3 059A 0062;0061 1DFA 0316 1E8D3 059A 0062; # (a◌֚◌̖◌᷺◌𞣓b; a◌᷺◌̖◌𞣓◌֚b; a◌᷺◌̖◌𞣓◌֚b; a◌᷺◌̖◌𞣓◌֚b; a◌᷺◌̖◌𞣓◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER THOUSANDS, LATIN SMALL LETTER B
+0061 1E8D3 059A 0316 1DFA 0062;0061 1DFA 1E8D3 0316 059A 0062;0061 1DFA 1E8D3 0316 059A 0062;0061 1DFA 1E8D3 0316 059A 0062;0061 1DFA 1E8D3 0316 059A 0062; # (a◌𞣓◌֚◌̖◌᷺b; a◌᷺◌𞣓◌̖◌֚b; a◌᷺◌𞣓◌̖◌֚b; a◌᷺◌𞣓◌̖◌֚b; a◌᷺◌𞣓◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER THOUSANDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D4 0062;0061 1DFA 0316 1E8D4 059A 0062;0061 1DFA 0316 1E8D4 059A 0062;0061 1DFA 0316 1E8D4 059A 0062;0061 1DFA 0316 1E8D4 059A 0062; # (a◌֚◌̖◌᷺◌𞣔b; a◌᷺◌̖◌𞣔◌֚b; a◌᷺◌̖◌𞣔◌֚b; a◌᷺◌̖◌𞣔◌֚b; a◌᷺◌̖◌𞣔◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS, LATIN SMALL LETTER B
+0061 1E8D4 059A 0316 1DFA 0062;0061 1DFA 1E8D4 0316 059A 0062;0061 1DFA 1E8D4 0316 059A 0062;0061 1DFA 1E8D4 0316 059A 0062;0061 1DFA 1E8D4 0316 059A 0062; # (a◌𞣔◌֚◌̖◌᷺b; a◌᷺◌𞣔◌̖◌֚b; a◌᷺◌𞣔◌̖◌֚b; a◌᷺◌𞣔◌̖◌֚b; a◌᷺◌𞣔◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D5 0062;0061 1DFA 0316 1E8D5 059A 0062;0061 1DFA 0316 1E8D5 059A 0062;0061 1DFA 0316 1E8D5 059A 0062;0061 1DFA 0316 1E8D5 059A 0062; # (a◌֚◌̖◌᷺◌𞣕b; a◌᷺◌̖◌𞣕◌֚b; a◌᷺◌̖◌𞣕◌֚b; a◌᷺◌̖◌𞣕◌֚b; a◌᷺◌̖◌𞣕◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS, LATIN SMALL LETTER B
+0061 1E8D5 059A 0316 1DFA 0062;0061 1DFA 1E8D5 0316 059A 0062;0061 1DFA 1E8D5 0316 059A 0062;0061 1DFA 1E8D5 0316 059A 0062;0061 1DFA 1E8D5 0316 059A 0062; # (a◌𞣕◌֚◌̖◌᷺b; a◌᷺◌𞣕◌̖◌֚b; a◌᷺◌𞣕◌̖◌֚b; a◌᷺◌𞣕◌̖◌֚b; a◌᷺◌𞣕◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E8D6 0062;0061 1DFA 0316 1E8D6 059A 0062;0061 1DFA 0316 1E8D6 059A 0062;0061 1DFA 0316 1E8D6 059A 0062;0061 1DFA 0316 1E8D6 059A 0062; # (a◌֚◌̖◌᷺◌𞣖b; a◌᷺◌̖◌𞣖◌֚b; a◌᷺◌̖◌𞣖◌֚b; a◌᷺◌̖◌𞣖◌֚b; a◌᷺◌̖◌𞣖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER MILLIONS, LATIN SMALL LETTER B
+0061 1E8D6 059A 0316 1DFA 0062;0061 1DFA 1E8D6 0316 059A 0062;0061 1DFA 1E8D6 0316 059A 0062;0061 1DFA 1E8D6 0316 059A 0062;0061 1DFA 1E8D6 0316 059A 0062; # (a◌𞣖◌֚◌̖◌᷺b; a◌᷺◌𞣖◌̖◌֚b; a◌᷺◌𞣖◌̖◌֚b; a◌᷺◌𞣖◌̖◌֚b; a◌᷺◌𞣖◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER MILLIONS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E944 0062;00E0 05AE 1E944 0315 0062;0061 05AE 0300 1E944 0315 0062;00E0 05AE 1E944 0315 0062;0061 05AE 0300 1E944 0315 0062; # (a◌̕◌̀◌֮◌𞥄b; à◌֮◌𞥄◌̕b; a◌֮◌̀◌𞥄◌̕b; à◌֮◌𞥄◌̕b; a◌֮◌̀◌𞥄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ADLAM ALIF LENGTHENER, LATIN SMALL LETTER B
+0061 1E944 0315 0300 05AE 0062;0061 05AE 1E944 0300 0315 0062;0061 05AE 1E944 0300 0315 0062;0061 05AE 1E944 0300 0315 0062;0061 05AE 1E944 0300 0315 0062; # (a◌𞥄◌̕◌̀◌֮b; a◌֮◌𞥄◌̀◌̕b; a◌֮◌𞥄◌̀◌̕b; a◌֮◌𞥄◌̀◌̕b; a◌֮◌𞥄◌̀◌̕b; ) LATIN SMALL LETTER A, ADLAM ALIF LENGTHENER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E945 0062;00E0 05AE 1E945 0315 0062;0061 05AE 0300 1E945 0315 0062;00E0 05AE 1E945 0315 0062;0061 05AE 0300 1E945 0315 0062; # (a◌̕◌̀◌֮◌𞥅b; à◌֮◌𞥅◌̕b; a◌֮◌̀◌𞥅◌̕b; à◌֮◌𞥅◌̕b; a◌֮◌̀◌𞥅◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ADLAM VOWEL LENGTHENER, LATIN SMALL LETTER B
+0061 1E945 0315 0300 05AE 0062;0061 05AE 1E945 0300 0315 0062;0061 05AE 1E945 0300 0315 0062;0061 05AE 1E945 0300 0315 0062;0061 05AE 1E945 0300 0315 0062; # (a◌𞥅◌̕◌̀◌֮b; a◌֮◌𞥅◌̀◌̕b; a◌֮◌𞥅◌̀◌̕b; a◌֮◌𞥅◌̀◌̕b; a◌֮◌𞥅◌̀◌̕b; ) LATIN SMALL LETTER A, ADLAM VOWEL LENGTHENER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E946 0062;00E0 05AE 1E946 0315 0062;0061 05AE 0300 1E946 0315 0062;00E0 05AE 1E946 0315 0062;0061 05AE 0300 1E946 0315 0062; # (a◌̕◌̀◌֮◌𞥆b; à◌֮◌𞥆◌̕b; a◌֮◌̀◌𞥆◌̕b; à◌֮◌𞥆◌̕b; a◌֮◌̀◌𞥆◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ADLAM GEMINATION MARK, LATIN SMALL LETTER B
+0061 1E946 0315 0300 05AE 0062;0061 05AE 1E946 0300 0315 0062;0061 05AE 1E946 0300 0315 0062;0061 05AE 1E946 0300 0315 0062;0061 05AE 1E946 0300 0315 0062; # (a◌𞥆◌̕◌̀◌֮b; a◌֮◌𞥆◌̀◌̕b; a◌֮◌𞥆◌̀◌̕b; a◌֮◌𞥆◌̀◌̕b; a◌֮◌𞥆◌̀◌̕b; ) LATIN SMALL LETTER A, ADLAM GEMINATION MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E947 0062;00E0 05AE 1E947 0315 0062;0061 05AE 0300 1E947 0315 0062;00E0 05AE 1E947 0315 0062;0061 05AE 0300 1E947 0315 0062; # (a◌̕◌̀◌֮◌𞥇b; à◌֮◌𞥇◌̕b; a◌֮◌̀◌𞥇◌̕b; à◌֮◌𞥇◌̕b; a◌֮◌̀◌𞥇◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ADLAM HAMZA, LATIN SMALL LETTER B
+0061 1E947 0315 0300 05AE 0062;0061 05AE 1E947 0300 0315 0062;0061 05AE 1E947 0300 0315 0062;0061 05AE 1E947 0300 0315 0062;0061 05AE 1E947 0300 0315 0062; # (a◌𞥇◌̕◌̀◌֮b; a◌֮◌𞥇◌̀◌̕b; a◌֮◌𞥇◌̀◌̕b; a◌֮◌𞥇◌̀◌̕b; a◌֮◌𞥇◌̀◌̕b; ) LATIN SMALL LETTER A, ADLAM HAMZA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E948 0062;00E0 05AE 1E948 0315 0062;0061 05AE 0300 1E948 0315 0062;00E0 05AE 1E948 0315 0062;0061 05AE 0300 1E948 0315 0062; # (a◌̕◌̀◌֮◌𞥈b; à◌֮◌𞥈◌̕b; a◌֮◌̀◌𞥈◌̕b; à◌֮◌𞥈◌̕b; a◌֮◌̀◌𞥈◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ADLAM CONSONANT MODIFIER, LATIN SMALL LETTER B
+0061 1E948 0315 0300 05AE 0062;0061 05AE 1E948 0300 0315 0062;0061 05AE 1E948 0300 0315 0062;0061 05AE 1E948 0300 0315 0062;0061 05AE 1E948 0300 0315 0062; # (a◌𞥈◌̕◌̀◌֮b; a◌֮◌𞥈◌̀◌̕b; a◌֮◌𞥈◌̀◌̕b; a◌֮◌𞥈◌̀◌̕b; a◌֮◌𞥈◌̀◌̕b; ) LATIN SMALL LETTER A, ADLAM CONSONANT MODIFIER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E949 0062;00E0 05AE 1E949 0315 0062;0061 05AE 0300 1E949 0315 0062;00E0 05AE 1E949 0315 0062;0061 05AE 0300 1E949 0315 0062; # (a◌̕◌̀◌֮◌𞥉b; à◌֮◌𞥉◌̕b; a◌֮◌̀◌𞥉◌̕b; à◌֮◌𞥉◌̕b; a◌֮◌̀◌𞥉◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ADLAM GEMINATE CONSONANT MODIFIER, LATIN SMALL LETTER B
+0061 1E949 0315 0300 05AE 0062;0061 05AE 1E949 0300 0315 0062;0061 05AE 1E949 0300 0315 0062;0061 05AE 1E949 0300 0315 0062;0061 05AE 1E949 0300 0315 0062; # (a◌𞥉◌̕◌̀◌֮b; a◌֮◌𞥉◌̀◌̕b; a◌֮◌𞥉◌̀◌̕b; a◌֮◌𞥉◌̀◌̕b; a◌֮◌𞥉◌̀◌̕b; ) LATIN SMALL LETTER A, ADLAM GEMINATE CONSONANT MODIFIER, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1E94A 0062;0061 16FF0 093C 1E94A 3099 0062;0061 16FF0 093C 1E94A 3099 0062;0061 16FF0 093C 1E94A 3099 0062;0061 16FF0 093C 1E94A 3099 0062; # (a◌゙◌𖿰़◌𞥊b; a𖿰◌़◌𞥊◌゙b; a𖿰◌़◌𞥊◌゙b; a𖿰◌़◌𞥊◌゙b; a𖿰◌़◌𞥊◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, ADLAM NUKTA, LATIN SMALL LETTER B
+0061 1E94A 3099 093C 16FF0 0062;0061 16FF0 1E94A 093C 3099 0062;0061 16FF0 1E94A 093C 3099 0062;0061 16FF0 1E94A 093C 3099 0062;0061 16FF0 1E94A 093C 3099 0062; # (a◌𞥊◌゙◌𖿰़b; a𖿰◌𞥊◌़◌゙b; a𖿰◌𞥊◌़◌゙b; a𖿰◌𞥊◌़◌゙b; a𖿰◌𞥊◌़◌゙b; ) LATIN SMALL LETTER A, ADLAM NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
+#
+@Part3 # PRI #29 Test
+#
+09C7 0334 09BE;09C7 0334 09BE;09C7 0334 09BE;09C7 0334 09BE;09C7 0334 09BE; # (ে◌̴া; ে◌̴া; ে◌̴া; ে◌̴া; ে◌̴া; ) BENGALI VOWEL SIGN E, COMBINING TILDE OVERLAY, BENGALI VOWEL SIGN AA
+09C7 0334 09D7;09C7 0334 09D7;09C7 0334 09D7;09C7 0334 09D7;09C7 0334 09D7; # (ে◌̴ৗ; ে◌̴ৗ; ে◌̴ৗ; ে◌̴ৗ; ে◌̴ৗ; ) BENGALI VOWEL SIGN E, COMBINING TILDE OVERLAY, BENGALI AU LENGTH MARK
+0B47 0334 0B3E;0B47 0334 0B3E;0B47 0334 0B3E;0B47 0334 0B3E;0B47 0334 0B3E; # (େ◌̴ା; େ◌̴ା; େ◌̴ା; େ◌̴ା; େ◌̴ା; ) ORIYA VOWEL SIGN E, COMBINING TILDE OVERLAY, ORIYA VOWEL SIGN AA
+0B47 0334 0B56;0B47 0334 0B56;0B47 0334 0B56;0B47 0334 0B56;0B47 0334 0B56; # (େ◌̴◌ୖ; େ◌̴◌ୖ; େ◌̴◌ୖ; େ◌̴◌ୖ; େ◌̴◌ୖ; ) ORIYA VOWEL SIGN E, COMBINING TILDE OVERLAY, ORIYA AI LENGTH MARK
+0B47 0334 0B57;0B47 0334 0B57;0B47 0334 0B57;0B47 0334 0B57;0B47 0334 0B57; # (େ◌̴ୗ; େ◌̴ୗ; େ◌̴ୗ; େ◌̴ୗ; େ◌̴ୗ; ) ORIYA VOWEL SIGN E, COMBINING TILDE OVERLAY, ORIYA AU LENGTH MARK
+0B92 0334 0BD7;0B92 0334 0BD7;0B92 0334 0BD7;0B92 0334 0BD7;0B92 0334 0BD7; # (ஒ◌̴ௗ; ஒ◌̴ௗ; ஒ◌̴ௗ; ஒ◌̴ௗ; ஒ◌̴ௗ; ) TAMIL LETTER O, COMBINING TILDE OVERLAY, TAMIL AU LENGTH MARK
+0BC6 0334 0BBE;0BC6 0334 0BBE;0BC6 0334 0BBE;0BC6 0334 0BBE;0BC6 0334 0BBE; # (ெ◌̴ா; ெ◌̴ா; ெ◌̴ா; ெ◌̴ா; ெ◌̴ா; ) TAMIL VOWEL SIGN E, COMBINING TILDE OVERLAY, TAMIL VOWEL SIGN AA
+0BC6 0334 0BD7;0BC6 0334 0BD7;0BC6 0334 0BD7;0BC6 0334 0BD7;0BC6 0334 0BD7; # (ெ◌̴ௗ; ெ◌̴ௗ; ெ◌̴ௗ; ெ◌̴ௗ; ெ◌̴ௗ; ) TAMIL VOWEL SIGN E, COMBINING TILDE OVERLAY, TAMIL AU LENGTH MARK
+0BC7 0334 0BBE;0BC7 0334 0BBE;0BC7 0334 0BBE;0BC7 0334 0BBE;0BC7 0334 0BBE; # (ே◌̴ா; ே◌̴ா; ே◌̴ா; ே◌̴ா; ே◌̴ா; ) TAMIL VOWEL SIGN EE, COMBINING TILDE OVERLAY, TAMIL VOWEL SIGN AA
+0CBF 0334 0CD5;0CBF 0334 0CD5;0CBF 0334 0CD5;0CBF 0334 0CD5;0CBF 0334 0CD5; # (◌ಿ◌̴ೕ; ◌ಿ◌̴ೕ; ◌ಿ◌̴ೕ; ◌ಿ◌̴ೕ; ◌ಿ◌̴ೕ; ) KANNADA VOWEL SIGN I, COMBINING TILDE OVERLAY, KANNADA LENGTH MARK
+0CC6 0334 0CC2;0CC6 0334 0CC2;0CC6 0334 0CC2;0CC6 0334 0CC2;0CC6 0334 0CC2; # (◌ೆ◌̴ೂ; ◌ೆ◌̴ೂ; ◌ೆ◌̴ೂ; ◌ೆ◌̴ೂ; ◌ೆ◌̴ೂ; ) KANNADA VOWEL SIGN E, COMBINING TILDE OVERLAY, KANNADA VOWEL SIGN UU
+0CC6 0334 0CD5;0CC6 0334 0CD5;0CC6 0334 0CD5;0CC6 0334 0CD5;0CC6 0334 0CD5; # (◌ೆ◌̴ೕ; ◌ೆ◌̴ೕ; ◌ೆ◌̴ೕ; ◌ೆ◌̴ೕ; ◌ೆ◌̴ೕ; ) KANNADA VOWEL SIGN E, COMBINING TILDE OVERLAY, KANNADA LENGTH MARK
+0CC6 0334 0CD6;0CC6 0334 0CD6;0CC6 0334 0CD6;0CC6 0334 0CD6;0CC6 0334 0CD6; # (◌ೆ◌̴ೖ; ◌ೆ◌̴ೖ; ◌ೆ◌̴ೖ; ◌ೆ◌̴ೖ; ◌ೆ◌̴ೖ; ) KANNADA VOWEL SIGN E, COMBINING TILDE OVERLAY, KANNADA AI LENGTH MARK
+0CCA 0334 0CD5;0CCA 0334 0CD5;0CC6 0CC2 0334 0CD5;0CCA 0334 0CD5;0CC6 0CC2 0334 0CD5; # (ೊ◌̴ೕ; ೊ◌̴ೕ; ◌ೊ◌̴ೕ; ೊ◌̴ೕ; ◌ೊ◌̴ೕ; ) KANNADA VOWEL SIGN O, COMBINING TILDE OVERLAY, KANNADA LENGTH MARK
+0D46 0334 0D3E;0D46 0334 0D3E;0D46 0334 0D3E;0D46 0334 0D3E;0D46 0334 0D3E; # (െ◌̴ാ; െ◌̴ാ; െ◌̴ാ; െ◌̴ാ; െ◌̴ാ; ) MALAYALAM VOWEL SIGN E, COMBINING TILDE OVERLAY, MALAYALAM VOWEL SIGN AA
+0D46 0334 0D57;0D46 0334 0D57;0D46 0334 0D57;0D46 0334 0D57;0D46 0334 0D57; # (െ◌̴ൗ; െ◌̴ൗ; െ◌̴ൗ; െ◌̴ൗ; െ◌̴ൗ; ) MALAYALAM VOWEL SIGN E, COMBINING TILDE OVERLAY, MALAYALAM AU LENGTH MARK
+0D47 0334 0D3E;0D47 0334 0D3E;0D47 0334 0D3E;0D47 0334 0D3E;0D47 0334 0D3E; # (േ◌̴ാ; േ◌̴ാ; േ◌̴ാ; േ◌̴ാ; േ◌̴ാ; ) MALAYALAM VOWEL SIGN EE, COMBINING TILDE OVERLAY, MALAYALAM VOWEL SIGN AA
+0DD9 0334 0DCF;0DD9 0334 0DCF;0DD9 0334 0DCF;0DD9 0334 0DCF;0DD9 0334 0DCF; # (ෙ◌̴ා; ෙ◌̴ා; ෙ◌̴ා; ෙ◌̴ා; ෙ◌̴ා; ) SINHALA VOWEL SIGN KOMBUVA, COMBINING TILDE OVERLAY, SINHALA VOWEL SIGN AELA-PILLA
+0DD9 0334 0DDF;0DD9 0334 0DDF;0DD9 0334 0DDF;0DD9 0334 0DDF;0DD9 0334 0DDF; # (ෙ◌̴ෟ; ෙ◌̴ෟ; ෙ◌̴ෟ; ෙ◌̴ෟ; ෙ◌̴ෟ; ) SINHALA VOWEL SIGN KOMBUVA, COMBINING TILDE OVERLAY, SINHALA VOWEL SIGN GAYANUKITTA
+0F40 0334 0FB5;0F40 0334 0FB5;0F40 0334 0FB5;0F40 0334 0FB5;0F40 0334 0FB5; # (ཀ◌̴◌ྵ; ཀ◌̴◌ྵ; ཀ◌̴◌ྵ; ཀ◌̴◌ྵ; ཀ◌̴◌ྵ; ) TIBETAN LETTER KA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER SSA
+0F42 0334 0FB7;0F42 0334 0FB7;0F42 0334 0FB7;0F42 0334 0FB7;0F42 0334 0FB7; # (ག◌̴◌ྷ; ག◌̴◌ྷ; ག◌̴◌ྷ; ག◌̴◌ྷ; ག◌̴◌ྷ; ) TIBETAN LETTER GA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0F4C 0334 0FB7;0F4C 0334 0FB7;0F4C 0334 0FB7;0F4C 0334 0FB7;0F4C 0334 0FB7; # (ཌ◌̴◌ྷ; ཌ◌̴◌ྷ; ཌ◌̴◌ྷ; ཌ◌̴◌ྷ; ཌ◌̴◌ྷ; ) TIBETAN LETTER DDA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0F51 0334 0FB7;0F51 0334 0FB7;0F51 0334 0FB7;0F51 0334 0FB7;0F51 0334 0FB7; # (ད◌̴◌ྷ; ད◌̴◌ྷ; ད◌̴◌ྷ; ད◌̴◌ྷ; ད◌̴◌ྷ; ) TIBETAN LETTER DA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0F56 0334 0FB7;0F56 0334 0FB7;0F56 0334 0FB7;0F56 0334 0FB7;0F56 0334 0FB7; # (བ◌̴◌ྷ; བ◌̴◌ྷ; བ◌̴◌ྷ; བ◌̴◌ྷ; བ◌̴◌ྷ; ) TIBETAN LETTER BA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0F5B 0334 0FB7;0F5B 0334 0FB7;0F5B 0334 0FB7;0F5B 0334 0FB7;0F5B 0334 0FB7; # (ཛ◌̴◌ྷ; ཛ◌̴◌ྷ; ཛ◌̴◌ྷ; ཛ◌̴◌ྷ; ཛ◌̴◌ྷ; ) TIBETAN LETTER DZA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0F90 0334 0FB5;0F90 0334 0FB5;0F90 0334 0FB5;0F90 0334 0FB5;0F90 0334 0FB5; # (◌ྐ◌̴◌ྵ; ◌ྐ◌̴◌ྵ; ◌ྐ◌̴◌ྵ; ◌ྐ◌̴◌ྵ; ◌ྐ◌̴◌ྵ; ) TIBETAN SUBJOINED LETTER KA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER SSA
+0F92 0334 0FB7;0F92 0334 0FB7;0F92 0334 0FB7;0F92 0334 0FB7;0F92 0334 0FB7; # (◌ྒ◌̴◌ྷ; ◌ྒ◌̴◌ྷ; ◌ྒ◌̴◌ྷ; ◌ྒ◌̴◌ྷ; ◌ྒ◌̴◌ྷ; ) TIBETAN SUBJOINED LETTER GA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0F9C 0334 0FB7;0F9C 0334 0FB7;0F9C 0334 0FB7;0F9C 0334 0FB7;0F9C 0334 0FB7; # (◌ྜ◌̴◌ྷ; ◌ྜ◌̴◌ྷ; ◌ྜ◌̴◌ྷ; ◌ྜ◌̴◌ྷ; ◌ྜ◌̴◌ྷ; ) TIBETAN SUBJOINED LETTER DDA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0FA1 0334 0FB7;0FA1 0334 0FB7;0FA1 0334 0FB7;0FA1 0334 0FB7;0FA1 0334 0FB7; # (◌ྡ◌̴◌ྷ; ◌ྡ◌̴◌ྷ; ◌ྡ◌̴◌ྷ; ◌ྡ◌̴◌ྷ; ◌ྡ◌̴◌ྷ; ) TIBETAN SUBJOINED LETTER DA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0FA6 0334 0FB7;0FA6 0334 0FB7;0FA6 0334 0FB7;0FA6 0334 0FB7;0FA6 0334 0FB7; # (◌ྦ◌̴◌ྷ; ◌ྦ◌̴◌ྷ; ◌ྦ◌̴◌ྷ; ◌ྦ◌̴◌ྷ; ◌ྦ◌̴◌ྷ; ) TIBETAN SUBJOINED LETTER BA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+0FAB 0334 0FB7;0FAB 0334 0FB7;0FAB 0334 0FB7;0FAB 0334 0FB7;0FAB 0334 0FB7; # (◌ྫ◌̴◌ྷ; ◌ྫ◌̴◌ྷ; ◌ྫ◌̴◌ྷ; ◌ྫ◌̴◌ྷ; ◌ྫ◌̴◌ྷ; ) TIBETAN SUBJOINED LETTER DZA, COMBINING TILDE OVERLAY, TIBETAN SUBJOINED LETTER HA
+1025 0334 102E;1025 0334 102E;1025 0334 102E;1025 0334 102E;1025 0334 102E; # (ဥ◌̴◌ီ; ဥ◌̴◌ီ; ဥ◌̴◌ီ; ဥ◌̴◌ီ; ဥ◌̴◌ီ; ) MYANMAR LETTER U, COMBINING TILDE OVERLAY, MYANMAR VOWEL SIGN II
+1100 0334 1161;1100 0334 1161;1100 0334 1161;1100 0334 1161;1100 0334 1161; # (ᄀ◌̴ᅡ; ᄀ◌̴ᅡ; ᄀ◌̴ᅡ; ᄀ◌̴ᅡ; ᄀ◌̴ᅡ; ) HANGUL CHOSEONG KIYEOK, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG A
+1100 0334 116E;1100 0334 116E;1100 0334 116E;1100 0334 116E;1100 0334 116E; # (ᄀ◌̴ᅮ; ᄀ◌̴ᅮ; ᄀ◌̴ᅮ; ᄀ◌̴ᅮ; ᄀ◌̴ᅮ; ) HANGUL CHOSEONG KIYEOK, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG U
+1101 0334 1166;1101 0334 1166;1101 0334 1166;1101 0334 1166;1101 0334 1166; # (ᄁ◌̴ᅦ; ᄁ◌̴ᅦ; ᄁ◌̴ᅦ; ᄁ◌̴ᅦ; ᄁ◌̴ᅦ; ) HANGUL CHOSEONG SSANGKIYEOK, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG E
+1101 0334 1173;1101 0334 1173;1101 0334 1173;1101 0334 1173;1101 0334 1173; # (ᄁ◌̴ᅳ; ᄁ◌̴ᅳ; ᄁ◌̴ᅳ; ᄁ◌̴ᅳ; ᄁ◌̴ᅳ; ) HANGUL CHOSEONG SSANGKIYEOK, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG EU
+1102 0334 116B;1102 0334 116B;1102 0334 116B;1102 0334 116B;1102 0334 116B; # (ᄂ◌̴ᅫ; ᄂ◌̴ᅫ; ᄂ◌̴ᅫ; ᄂ◌̴ᅫ; ᄂ◌̴ᅫ; ) HANGUL CHOSEONG NIEUN, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WAE
+1103 0334 1163;1103 0334 1163;1103 0334 1163;1103 0334 1163;1103 0334 1163; # (ᄃ◌̴ᅣ; ᄃ◌̴ᅣ; ᄃ◌̴ᅣ; ᄃ◌̴ᅣ; ᄃ◌̴ᅣ; ) HANGUL CHOSEONG TIKEUT, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YA
+1103 0334 1170;1103 0334 1170;1103 0334 1170;1103 0334 1170;1103 0334 1170; # (ᄃ◌̴ᅰ; ᄃ◌̴ᅰ; ᄃ◌̴ᅰ; ᄃ◌̴ᅰ; ᄃ◌̴ᅰ; ) HANGUL CHOSEONG TIKEUT, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WE
+1104 0334 1168;1104 0334 1168;1104 0334 1168;1104 0334 1168;1104 0334 1168; # (ᄄ◌̴ᅨ; ᄄ◌̴ᅨ; ᄄ◌̴ᅨ; ᄄ◌̴ᅨ; ᄄ◌̴ᅨ; ) HANGUL CHOSEONG SSANGTIKEUT, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YE
+1104 0334 1175;1104 0334 1175;1104 0334 1175;1104 0334 1175;1104 0334 1175; # (ᄄ◌̴ᅵ; ᄄ◌̴ᅵ; ᄄ◌̴ᅵ; ᄄ◌̴ᅵ; ᄄ◌̴ᅵ; ) HANGUL CHOSEONG SSANGTIKEUT, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG I
+1105 0334 116D;1105 0334 116D;1105 0334 116D;1105 0334 116D;1105 0334 116D; # (ᄅ◌̴ᅭ; ᄅ◌̴ᅭ; ᄅ◌̴ᅭ; ᄅ◌̴ᅭ; ᄅ◌̴ᅭ; ) HANGUL CHOSEONG RIEUL, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YO
+1106 0334 1165;1106 0334 1165;1106 0334 1165;1106 0334 1165;1106 0334 1165; # (ᄆ◌̴ᅥ; ᄆ◌̴ᅥ; ᄆ◌̴ᅥ; ᄆ◌̴ᅥ; ᄆ◌̴ᅥ; ) HANGUL CHOSEONG MIEUM, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG EO
+1106 0334 1172;1106 0334 1172;1106 0334 1172;1106 0334 1172;1106 0334 1172; # (ᄆ◌̴ᅲ; ᄆ◌̴ᅲ; ᄆ◌̴ᅲ; ᄆ◌̴ᅲ; ᄆ◌̴ᅲ; ) HANGUL CHOSEONG MIEUM, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YU
+1107 0334 116A;1107 0334 116A;1107 0334 116A;1107 0334 116A;1107 0334 116A; # (ᄇ◌̴ᅪ; ᄇ◌̴ᅪ; ᄇ◌̴ᅪ; ᄇ◌̴ᅪ; ᄇ◌̴ᅪ; ) HANGUL CHOSEONG PIEUP, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WA
+1108 0334 1162;1108 0334 1162;1108 0334 1162;1108 0334 1162;1108 0334 1162; # (ᄈ◌̴ᅢ; ᄈ◌̴ᅢ; ᄈ◌̴ᅢ; ᄈ◌̴ᅢ; ᄈ◌̴ᅢ; ) HANGUL CHOSEONG SSANGPIEUP, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG AE
+1108 0334 116F;1108 0334 116F;1108 0334 116F;1108 0334 116F;1108 0334 116F; # (ᄈ◌̴ᅯ; ᄈ◌̴ᅯ; ᄈ◌̴ᅯ; ᄈ◌̴ᅯ; ᄈ◌̴ᅯ; ) HANGUL CHOSEONG SSANGPIEUP, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WEO
+1109 0334 1167;1109 0334 1167;1109 0334 1167;1109 0334 1167;1109 0334 1167; # (ᄉ◌̴ᅧ; ᄉ◌̴ᅧ; ᄉ◌̴ᅧ; ᄉ◌̴ᅧ; ᄉ◌̴ᅧ; ) HANGUL CHOSEONG SIOS, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YEO
+1109 0334 1174;1109 0334 1174;1109 0334 1174;1109 0334 1174;1109 0334 1174; # (ᄉ◌̴ᅴ; ᄉ◌̴ᅴ; ᄉ◌̴ᅴ; ᄉ◌̴ᅴ; ᄉ◌̴ᅴ; ) HANGUL CHOSEONG SIOS, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YI
+110A 0334 116C;110A 0334 116C;110A 0334 116C;110A 0334 116C;110A 0334 116C; # (ᄊ◌̴ᅬ; ᄊ◌̴ᅬ; ᄊ◌̴ᅬ; ᄊ◌̴ᅬ; ᄊ◌̴ᅬ; ) HANGUL CHOSEONG SSANGSIOS, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG OE
+110B 0334 1164;110B 0334 1164;110B 0334 1164;110B 0334 1164;110B 0334 1164; # (ᄋ◌̴ᅤ; ᄋ◌̴ᅤ; ᄋ◌̴ᅤ; ᄋ◌̴ᅤ; ᄋ◌̴ᅤ; ) HANGUL CHOSEONG IEUNG, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YAE
+110B 0334 1171;110B 0334 1171;110B 0334 1171;110B 0334 1171;110B 0334 1171; # (ᄋ◌̴ᅱ; ᄋ◌̴ᅱ; ᄋ◌̴ᅱ; ᄋ◌̴ᅱ; ᄋ◌̴ᅱ; ) HANGUL CHOSEONG IEUNG, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WI
+110C 0334 1169;110C 0334 1169;110C 0334 1169;110C 0334 1169;110C 0334 1169; # (ᄌ◌̴ᅩ; ᄌ◌̴ᅩ; ᄌ◌̴ᅩ; ᄌ◌̴ᅩ; ᄌ◌̴ᅩ; ) HANGUL CHOSEONG CIEUC, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG O
+110D 0334 1161;110D 0334 1161;110D 0334 1161;110D 0334 1161;110D 0334 1161; # (ᄍ◌̴ᅡ; ᄍ◌̴ᅡ; ᄍ◌̴ᅡ; ᄍ◌̴ᅡ; ᄍ◌̴ᅡ; ) HANGUL CHOSEONG SSANGCIEUC, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG A
+110D 0334 116E;110D 0334 116E;110D 0334 116E;110D 0334 116E;110D 0334 116E; # (ᄍ◌̴ᅮ; ᄍ◌̴ᅮ; ᄍ◌̴ᅮ; ᄍ◌̴ᅮ; ᄍ◌̴ᅮ; ) HANGUL CHOSEONG SSANGCIEUC, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG U
+110E 0334 1166;110E 0334 1166;110E 0334 1166;110E 0334 1166;110E 0334 1166; # (ᄎ◌̴ᅦ; ᄎ◌̴ᅦ; ᄎ◌̴ᅦ; ᄎ◌̴ᅦ; ᄎ◌̴ᅦ; ) HANGUL CHOSEONG CHIEUCH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG E
+110E 0334 1173;110E 0334 1173;110E 0334 1173;110E 0334 1173;110E 0334 1173; # (ᄎ◌̴ᅳ; ᄎ◌̴ᅳ; ᄎ◌̴ᅳ; ᄎ◌̴ᅳ; ᄎ◌̴ᅳ; ) HANGUL CHOSEONG CHIEUCH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG EU
+110F 0334 116B;110F 0334 116B;110F 0334 116B;110F 0334 116B;110F 0334 116B; # (ᄏ◌̴ᅫ; ᄏ◌̴ᅫ; ᄏ◌̴ᅫ; ᄏ◌̴ᅫ; ᄏ◌̴ᅫ; ) HANGUL CHOSEONG KHIEUKH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WAE
+1110 0334 1163;1110 0334 1163;1110 0334 1163;1110 0334 1163;1110 0334 1163; # (ᄐ◌̴ᅣ; ᄐ◌̴ᅣ; ᄐ◌̴ᅣ; ᄐ◌̴ᅣ; ᄐ◌̴ᅣ; ) HANGUL CHOSEONG THIEUTH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YA
+1110 0334 1170;1110 0334 1170;1110 0334 1170;1110 0334 1170;1110 0334 1170; # (ᄐ◌̴ᅰ; ᄐ◌̴ᅰ; ᄐ◌̴ᅰ; ᄐ◌̴ᅰ; ᄐ◌̴ᅰ; ) HANGUL CHOSEONG THIEUTH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG WE
+1111 0334 1168;1111 0334 1168;1111 0334 1168;1111 0334 1168;1111 0334 1168; # (ᄑ◌̴ᅨ; ᄑ◌̴ᅨ; ᄑ◌̴ᅨ; ᄑ◌̴ᅨ; ᄑ◌̴ᅨ; ) HANGUL CHOSEONG PHIEUPH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YE
+1111 0334 1175;1111 0334 1175;1111 0334 1175;1111 0334 1175;1111 0334 1175; # (ᄑ◌̴ᅵ; ᄑ◌̴ᅵ; ᄑ◌̴ᅵ; ᄑ◌̴ᅵ; ᄑ◌̴ᅵ; ) HANGUL CHOSEONG PHIEUPH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG I
+1112 0334 116D;1112 0334 116D;1112 0334 116D;1112 0334 116D;1112 0334 116D; # (ᄒ◌̴ᅭ; ᄒ◌̴ᅭ; ᄒ◌̴ᅭ; ᄒ◌̴ᅭ; ᄒ◌̴ᅭ; ) HANGUL CHOSEONG HIEUH, COMBINING TILDE OVERLAY, HANGUL JUNGSEONG YO
+1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35; # (ᬅ◌̴ᬵ; ᬅ◌̴ᬵ; ᬅ◌̴ᬵ; ᬅ◌̴ᬵ; ᬅ◌̴ᬵ; ) BALINESE LETTER AKARA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35; # (ᬇ◌̴ᬵ; ᬇ◌̴ᬵ; ᬇ◌̴ᬵ; ᬇ◌̴ᬵ; ᬇ◌̴ᬵ; ) BALINESE LETTER IKARA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35; # (ᬉ◌̴ᬵ; ᬉ◌̴ᬵ; ᬉ◌̴ᬵ; ᬉ◌̴ᬵ; ᬉ◌̴ᬵ; ) BALINESE LETTER UKARA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35; # (ᬋ◌̴ᬵ; ᬋ◌̴ᬵ; ᬋ◌̴ᬵ; ᬋ◌̴ᬵ; ᬋ◌̴ᬵ; ) BALINESE LETTER RA REPA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35; # (ᬍ◌̴ᬵ; ᬍ◌̴ᬵ; ᬍ◌̴ᬵ; ᬍ◌̴ᬵ; ᬍ◌̴ᬵ; ) BALINESE LETTER LA LENGA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35; # (ᬑ◌̴ᬵ; ᬑ◌̴ᬵ; ᬑ◌̴ᬵ; ᬑ◌̴ᬵ; ᬑ◌̴ᬵ; ) BALINESE LETTER OKARA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35; # (◌ᬺ◌̴ᬵ; ◌ᬺ◌̴ᬵ; ◌ᬺ◌̴ᬵ; ◌ᬺ◌̴ᬵ; ◌ᬺ◌̴ᬵ; ) BALINESE VOWEL SIGN RA REPA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35; # (◌ᬼ◌̴ᬵ; ◌ᬼ◌̴ᬵ; ◌ᬼ◌̴ᬵ; ◌ᬼ◌̴ᬵ; ◌ᬼ◌̴ᬵ; ) BALINESE VOWEL SIGN LA LENGA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35; # (ᬾ◌̴ᬵ; ᬾ◌̴ᬵ; ᬾ◌̴ᬵ; ᬾ◌̴ᬵ; ᬾ◌̴ᬵ; ) BALINESE VOWEL SIGN TALING, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35; # (ᬿ◌̴ᬵ; ᬿ◌̴ᬵ; ᬿ◌̴ᬵ; ᬿ◌̴ᬵ; ᬿ◌̴ᬵ; ) BALINESE VOWEL SIGN TALING REPA, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35; # (◌ᭂ◌̴ᬵ; ◌ᭂ◌̴ᬵ; ◌ᭂ◌̴ᬵ; ◌ᭂ◌̴ᬵ; ◌ᭂ◌̴ᬵ; ) BALINESE VOWEL SIGN PEPET, COMBINING TILDE OVERLAY, BALINESE VOWEL SIGN TEDUNG
+AC54 0334 11AE;AC54 0334 11AE;1100 1164 0334 11AE;AC54 0334 11AE;1100 1164 0334 11AE; # (걔◌̴ᆮ; 걔◌̴ᆮ; 걔◌̴ᆮ; 걔◌̴ᆮ; 걔◌̴ᆮ; ) HANGUL SYLLABLE GYAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+ACA8 0334 11B5;ACA8 0334 11B5;1100 1167 0334 11B5;ACA8 0334 11B5;1100 1167 0334 11B5; # (겨◌̴ᆵ; 겨◌̴ᆵ; 겨◌̴ᆵ; 겨◌̴ᆵ; 겨◌̴ᆵ; ) HANGUL SYLLABLE GYEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+ACFC 0334 11BC;ACFC 0334 11BC;1100 116A 0334 11BC;ACFC 0334 11BC;1100 116A 0334 11BC; # (과◌̴ᆼ; 과◌̴ᆼ; 과◌̴ᆼ; 과◌̴ᆼ; 과◌̴ᆼ; ) HANGUL SYLLABLE GWA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+ADC0 0334 11AE;ADC0 0334 11AE;1100 1171 0334 11AE;ADC0 0334 11AE;1100 1171 0334 11AE; # (귀◌̴ᆮ; 귀◌̴ᆮ; 귀◌̴ᆮ; 귀◌̴ᆮ; 귀◌̴ᆮ; ) HANGUL SYLLABLE GWI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+AE14 0334 11B5;AE14 0334 11B5;1100 1174 0334 11B5;AE14 0334 11B5;1100 1174 0334 11B5; # (긔◌̴ᆵ; 긔◌̴ᆵ; 긔◌̴ᆵ; 긔◌̴ᆵ; 긔◌̴ᆵ; ) HANGUL SYLLABLE GYI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+AE68 0334 11BC;AE68 0334 11BC;1101 1162 0334 11BC;AE68 0334 11BC;1101 1162 0334 11BC; # (깨◌̴ᆼ; 깨◌̴ᆼ; 깨◌̴ᆼ; 깨◌̴ᆼ; 깨◌̴ᆼ; ) HANGUL SYLLABLE GGAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+AF2C 0334 11AE;AF2C 0334 11AE;1101 1169 0334 11AE;AF2C 0334 11AE;1101 1169 0334 11AE; # (꼬◌̴ᆮ; 꼬◌̴ᆮ; 꼬◌̴ᆮ; 꼬◌̴ᆮ; 꼬◌̴ᆮ; ) HANGUL SYLLABLE GGO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+AF80 0334 11B5;AF80 0334 11B5;1101 116C 0334 11B5;AF80 0334 11B5;1101 116C 0334 11B5; # (꾀◌̴ᆵ; 꾀◌̴ᆵ; 꾀◌̴ᆵ; 꾀◌̴ᆵ; 꾀◌̴ᆵ; ) HANGUL SYLLABLE GGOE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+AFD4 0334 11BC;AFD4 0334 11BC;1101 116F 0334 11BC;AFD4 0334 11BC;1101 116F 0334 11BC; # (꿔◌̴ᆼ; 꿔◌̴ᆼ; 꿔◌̴ᆼ; 꿔◌̴ᆼ; 꿔◌̴ᆼ; ) HANGUL SYLLABLE GGWEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B098 0334 11AE;B098 0334 11AE;1102 1161 0334 11AE;B098 0334 11AE;1102 1161 0334 11AE; # (나◌̴ᆮ; 나◌̴ᆮ; 나◌̴ᆮ; 나◌̴ᆮ; 나◌̴ᆮ; ) HANGUL SYLLABLE NA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B0EC 0334 11B5;B0EC 0334 11B5;1102 1164 0334 11B5;B0EC 0334 11B5;1102 1164 0334 11B5; # (냬◌̴ᆵ; 냬◌̴ᆵ; 냬◌̴ᆵ; 냬◌̴ᆵ; 냬◌̴ᆵ; ) HANGUL SYLLABLE NYAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B140 0334 11BC;B140 0334 11BC;1102 1167 0334 11BC;B140 0334 11BC;1102 1167 0334 11BC; # (녀◌̴ᆼ; 녀◌̴ᆼ; 녀◌̴ᆼ; 녀◌̴ᆼ; 녀◌̴ᆼ; ) HANGUL SYLLABLE NYEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B204 0334 11AE;B204 0334 11AE;1102 116E 0334 11AE;B204 0334 11AE;1102 116E 0334 11AE; # (누◌̴ᆮ; 누◌̴ᆮ; 누◌̴ᆮ; 누◌̴ᆮ; 누◌̴ᆮ; ) HANGUL SYLLABLE NU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B258 0334 11B5;B258 0334 11B5;1102 1171 0334 11B5;B258 0334 11B5;1102 1171 0334 11B5; # (뉘◌̴ᆵ; 뉘◌̴ᆵ; 뉘◌̴ᆵ; 뉘◌̴ᆵ; 뉘◌̴ᆵ; ) HANGUL SYLLABLE NWI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B2AC 0334 11BC;B2AC 0334 11BC;1102 1174 0334 11BC;B2AC 0334 11BC;1102 1174 0334 11BC; # (늬◌̴ᆼ; 늬◌̴ᆼ; 늬◌̴ᆼ; 늬◌̴ᆼ; 늬◌̴ᆼ; ) HANGUL SYLLABLE NYI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B370 0334 11AE;B370 0334 11AE;1103 1166 0334 11AE;B370 0334 11AE;1103 1166 0334 11AE; # (데◌̴ᆮ; 데◌̴ᆮ; 데◌̴ᆮ; 데◌̴ᆮ; 데◌̴ᆮ; ) HANGUL SYLLABLE DE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B3C4 0334 11B5;B3C4 0334 11B5;1103 1169 0334 11B5;B3C4 0334 11B5;1103 1169 0334 11B5; # (도◌̴ᆵ; 도◌̴ᆵ; 도◌̴ᆵ; 도◌̴ᆵ; 도◌̴ᆵ; ) HANGUL SYLLABLE DO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B418 0334 11BC;B418 0334 11BC;1103 116C 0334 11BC;B418 0334 11BC;1103 116C 0334 11BC; # (되◌̴ᆼ; 되◌̴ᆼ; 되◌̴ᆼ; 되◌̴ᆼ; 되◌̴ᆼ; ) HANGUL SYLLABLE DOE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B4DC 0334 11AE;B4DC 0334 11AE;1103 1173 0334 11AE;B4DC 0334 11AE;1103 1173 0334 11AE; # (드◌̴ᆮ; 드◌̴ᆮ; 드◌̴ᆮ; 드◌̴ᆮ; 드◌̴ᆮ; ) HANGUL SYLLABLE DEU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B530 0334 11B5;B530 0334 11B5;1104 1161 0334 11B5;B530 0334 11B5;1104 1161 0334 11B5; # (따◌̴ᆵ; 따◌̴ᆵ; 따◌̴ᆵ; 따◌̴ᆵ; 따◌̴ᆵ; ) HANGUL SYLLABLE DDA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B584 0334 11BC;B584 0334 11BC;1104 1164 0334 11BC;B584 0334 11BC;1104 1164 0334 11BC; # (떄◌̴ᆼ; 떄◌̴ᆼ; 떄◌̴ᆼ; 떄◌̴ᆼ; 떄◌̴ᆼ; ) HANGUL SYLLABLE DDYAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B648 0334 11AE;B648 0334 11AE;1104 116B 0334 11AE;B648 0334 11AE;1104 116B 0334 11AE; # (뙈◌̴ᆮ; 뙈◌̴ᆮ; 뙈◌̴ᆮ; 뙈◌̴ᆮ; 뙈◌̴ᆮ; ) HANGUL SYLLABLE DDWAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B69C 0334 11B5;B69C 0334 11B5;1104 116E 0334 11B5;B69C 0334 11B5;1104 116E 0334 11B5; # (뚜◌̴ᆵ; 뚜◌̴ᆵ; 뚜◌̴ᆵ; 뚜◌̴ᆵ; 뚜◌̴ᆵ; ) HANGUL SYLLABLE DDU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B6F0 0334 11BC;B6F0 0334 11BC;1104 1171 0334 11BC;B6F0 0334 11BC;1104 1171 0334 11BC; # (뛰◌̴ᆼ; 뛰◌̴ᆼ; 뛰◌̴ᆼ; 뛰◌̴ᆼ; 뛰◌̴ᆼ; ) HANGUL SYLLABLE DDWI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B7B4 0334 11AE;B7B4 0334 11AE;1105 1163 0334 11AE;B7B4 0334 11AE;1105 1163 0334 11AE; # (랴◌̴ᆮ; 랴◌̴ᆮ; 랴◌̴ᆮ; 랴◌̴ᆮ; 랴◌̴ᆮ; ) HANGUL SYLLABLE RYA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B808 0334 11B5;B808 0334 11B5;1105 1166 0334 11B5;B808 0334 11B5;1105 1166 0334 11B5; # (레◌̴ᆵ; 레◌̴ᆵ; 레◌̴ᆵ; 레◌̴ᆵ; 레◌̴ᆵ; ) HANGUL SYLLABLE RE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B85C 0334 11BC;B85C 0334 11BC;1105 1169 0334 11BC;B85C 0334 11BC;1105 1169 0334 11BC; # (로◌̴ᆼ; 로◌̴ᆼ; 로◌̴ᆼ; 로◌̴ᆼ; 로◌̴ᆼ; ) HANGUL SYLLABLE RO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+B920 0334 11AE;B920 0334 11AE;1105 1170 0334 11AE;B920 0334 11AE;1105 1170 0334 11AE; # (뤠◌̴ᆮ; 뤠◌̴ᆮ; 뤠◌̴ᆮ; 뤠◌̴ᆮ; 뤠◌̴ᆮ; ) HANGUL SYLLABLE RWE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+B974 0334 11B5;B974 0334 11B5;1105 1173 0334 11B5;B974 0334 11B5;1105 1173 0334 11B5; # (르◌̴ᆵ; 르◌̴ᆵ; 르◌̴ᆵ; 르◌̴ᆵ; 르◌̴ᆵ; ) HANGUL SYLLABLE REU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+B9C8 0334 11BC;B9C8 0334 11BC;1106 1161 0334 11BC;B9C8 0334 11BC;1106 1161 0334 11BC; # (마◌̴ᆼ; 마◌̴ᆼ; 마◌̴ᆼ; 마◌̴ᆼ; 마◌̴ᆼ; ) HANGUL SYLLABLE MA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+BA8C 0334 11AE;BA8C 0334 11AE;1106 1168 0334 11AE;BA8C 0334 11AE;1106 1168 0334 11AE; # (몌◌̴ᆮ; 몌◌̴ᆮ; 몌◌̴ᆮ; 몌◌̴ᆮ; 몌◌̴ᆮ; ) HANGUL SYLLABLE MYE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+BAE0 0334 11B5;BAE0 0334 11B5;1106 116B 0334 11B5;BAE0 0334 11B5;1106 116B 0334 11B5; # (뫠◌̴ᆵ; 뫠◌̴ᆵ; 뫠◌̴ᆵ; 뫠◌̴ᆵ; 뫠◌̴ᆵ; ) HANGUL SYLLABLE MWAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+BB34 0334 11BC;BB34 0334 11BC;1106 116E 0334 11BC;BB34 0334 11BC;1106 116E 0334 11BC; # (무◌̴ᆼ; 무◌̴ᆼ; 무◌̴ᆼ; 무◌̴ᆼ; 무◌̴ᆼ; ) HANGUL SYLLABLE MU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+BBF8 0334 11AE;BBF8 0334 11AE;1106 1175 0334 11AE;BBF8 0334 11AE;1106 1175 0334 11AE; # (미◌̴ᆮ; 미◌̴ᆮ; 미◌̴ᆮ; 미◌̴ᆮ; 미◌̴ᆮ; ) HANGUL SYLLABLE MI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+BC4C 0334 11B5;BC4C 0334 11B5;1107 1163 0334 11B5;BC4C 0334 11B5;1107 1163 0334 11B5; # (뱌◌̴ᆵ; 뱌◌̴ᆵ; 뱌◌̴ᆵ; 뱌◌̴ᆵ; 뱌◌̴ᆵ; ) HANGUL SYLLABLE BYA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+BCA0 0334 11BC;BCA0 0334 11BC;1107 1166 0334 11BC;BCA0 0334 11BC;1107 1166 0334 11BC; # (베◌̴ᆼ; 베◌̴ᆼ; 베◌̴ᆼ; 베◌̴ᆼ; 베◌̴ᆼ; ) HANGUL SYLLABLE BE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+BD64 0334 11AE;BD64 0334 11AE;1107 116D 0334 11AE;BD64 0334 11AE;1107 116D 0334 11AE; # (뵤◌̴ᆮ; 뵤◌̴ᆮ; 뵤◌̴ᆮ; 뵤◌̴ᆮ; 뵤◌̴ᆮ; ) HANGUL SYLLABLE BYO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+BDB8 0334 11B5;BDB8 0334 11B5;1107 1170 0334 11B5;BDB8 0334 11B5;1107 1170 0334 11B5; # (붸◌̴ᆵ; 붸◌̴ᆵ; 붸◌̴ᆵ; 붸◌̴ᆵ; 붸◌̴ᆵ; ) HANGUL SYLLABLE BWE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+BE0C 0334 11BC;BE0C 0334 11BC;1107 1173 0334 11BC;BE0C 0334 11BC;1107 1173 0334 11BC; # (브◌̴ᆼ; 브◌̴ᆼ; 브◌̴ᆼ; 브◌̴ᆼ; 브◌̴ᆼ; ) HANGUL SYLLABLE BEU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+BED0 0334 11AE;BED0 0334 11AE;1108 1165 0334 11AE;BED0 0334 11AE;1108 1165 0334 11AE; # (뻐◌̴ᆮ; 뻐◌̴ᆮ; 뻐◌̴ᆮ; 뻐◌̴ᆮ; 뻐◌̴ᆮ; ) HANGUL SYLLABLE BBEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+BF24 0334 11B5;BF24 0334 11B5;1108 1168 0334 11B5;BF24 0334 11B5;1108 1168 0334 11B5; # (뼤◌̴ᆵ; 뼤◌̴ᆵ; 뼤◌̴ᆵ; 뼤◌̴ᆵ; 뼤◌̴ᆵ; ) HANGUL SYLLABLE BBYE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+BF78 0334 11BC;BF78 0334 11BC;1108 116B 0334 11BC;BF78 0334 11BC;1108 116B 0334 11BC; # (뽸◌̴ᆼ; 뽸◌̴ᆼ; 뽸◌̴ᆼ; 뽸◌̴ᆼ; 뽸◌̴ᆼ; ) HANGUL SYLLABLE BBWAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C03C 0334 11AE;C03C 0334 11AE;1108 1172 0334 11AE;C03C 0334 11AE;1108 1172 0334 11AE; # (쀼◌̴ᆮ; 쀼◌̴ᆮ; 쀼◌̴ᆮ; 쀼◌̴ᆮ; 쀼◌̴ᆮ; ) HANGUL SYLLABLE BBYU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C090 0334 11B5;C090 0334 11B5;1108 1175 0334 11B5;C090 0334 11B5;1108 1175 0334 11B5; # (삐◌̴ᆵ; 삐◌̴ᆵ; 삐◌̴ᆵ; 삐◌̴ᆵ; 삐◌̴ᆵ; ) HANGUL SYLLABLE BBI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C0E4 0334 11BC;C0E4 0334 11BC;1109 1163 0334 11BC;C0E4 0334 11BC;1109 1163 0334 11BC; # (샤◌̴ᆼ; 샤◌̴ᆼ; 샤◌̴ᆼ; 샤◌̴ᆼ; 샤◌̴ᆼ; ) HANGUL SYLLABLE SYA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C1A8 0334 11AE;C1A8 0334 11AE;1109 116A 0334 11AE;C1A8 0334 11AE;1109 116A 0334 11AE; # (솨◌̴ᆮ; 솨◌̴ᆮ; 솨◌̴ᆮ; 솨◌̴ᆮ; 솨◌̴ᆮ; ) HANGUL SYLLABLE SWA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C1FC 0334 11B5;C1FC 0334 11B5;1109 116D 0334 11B5;C1FC 0334 11B5;1109 116D 0334 11B5; # (쇼◌̴ᆵ; 쇼◌̴ᆵ; 쇼◌̴ᆵ; 쇼◌̴ᆵ; 쇼◌̴ᆵ; ) HANGUL SYLLABLE SYO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C250 0334 11BC;C250 0334 11BC;1109 1170 0334 11BC;C250 0334 11BC;1109 1170 0334 11BC; # (쉐◌̴ᆼ; 쉐◌̴ᆼ; 쉐◌̴ᆼ; 쉐◌̴ᆼ; 쉐◌̴ᆼ; ) HANGUL SYLLABLE SWE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C314 0334 11AE;C314 0334 11AE;110A 1162 0334 11AE;C314 0334 11AE;110A 1162 0334 11AE; # (쌔◌̴ᆮ; 쌔◌̴ᆮ; 쌔◌̴ᆮ; 쌔◌̴ᆮ; 쌔◌̴ᆮ; ) HANGUL SYLLABLE SSAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C368 0334 11B5;C368 0334 11B5;110A 1165 0334 11B5;C368 0334 11B5;110A 1165 0334 11B5; # (써◌̴ᆵ; 써◌̴ᆵ; 써◌̴ᆵ; 써◌̴ᆵ; 써◌̴ᆵ; ) HANGUL SYLLABLE SSEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C3BC 0334 11BC;C3BC 0334 11BC;110A 1168 0334 11BC;C3BC 0334 11BC;110A 1168 0334 11BC; # (쎼◌̴ᆼ; 쎼◌̴ᆼ; 쎼◌̴ᆼ; 쎼◌̴ᆼ; 쎼◌̴ᆼ; ) HANGUL SYLLABLE SSYE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C480 0334 11AE;C480 0334 11AE;110A 116F 0334 11AE;C480 0334 11AE;110A 116F 0334 11AE; # (쒀◌̴ᆮ; 쒀◌̴ᆮ; 쒀◌̴ᆮ; 쒀◌̴ᆮ; 쒀◌̴ᆮ; ) HANGUL SYLLABLE SSWEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C4D4 0334 11B5;C4D4 0334 11B5;110A 1172 0334 11B5;C4D4 0334 11B5;110A 1172 0334 11B5; # (쓔◌̴ᆵ; 쓔◌̴ᆵ; 쓔◌̴ᆵ; 쓔◌̴ᆵ; 쓔◌̴ᆵ; ) HANGUL SYLLABLE SSYU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C528 0334 11BC;C528 0334 11BC;110A 1175 0334 11BC;C528 0334 11BC;110A 1175 0334 11BC; # (씨◌̴ᆼ; 씨◌̴ᆼ; 씨◌̴ᆼ; 씨◌̴ᆼ; 씨◌̴ᆼ; ) HANGUL SYLLABLE SSI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C5EC 0334 11AE;C5EC 0334 11AE;110B 1167 0334 11AE;C5EC 0334 11AE;110B 1167 0334 11AE; # (여◌̴ᆮ; 여◌̴ᆮ; 여◌̴ᆮ; 여◌̴ᆮ; 여◌̴ᆮ; ) HANGUL SYLLABLE YEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C640 0334 11B5;C640 0334 11B5;110B 116A 0334 11B5;C640 0334 11B5;110B 116A 0334 11B5; # (와◌̴ᆵ; 와◌̴ᆵ; 와◌̴ᆵ; 와◌̴ᆵ; 와◌̴ᆵ; ) HANGUL SYLLABLE WA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C694 0334 11BC;C694 0334 11BC;110B 116D 0334 11BC;C694 0334 11BC;110B 116D 0334 11BC; # (요◌̴ᆼ; 요◌̴ᆼ; 요◌̴ᆼ; 요◌̴ᆼ; 요◌̴ᆼ; ) HANGUL SYLLABLE YO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C758 0334 11AE;C758 0334 11AE;110B 1174 0334 11AE;C758 0334 11AE;110B 1174 0334 11AE; # (의◌̴ᆮ; 의◌̴ᆮ; 의◌̴ᆮ; 의◌̴ᆮ; 의◌̴ᆮ; ) HANGUL SYLLABLE YI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C7AC 0334 11B5;C7AC 0334 11B5;110C 1162 0334 11B5;C7AC 0334 11B5;110C 1162 0334 11B5; # (재◌̴ᆵ; 재◌̴ᆵ; 재◌̴ᆵ; 재◌̴ᆵ; 재◌̴ᆵ; ) HANGUL SYLLABLE JAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C800 0334 11BC;C800 0334 11BC;110C 1165 0334 11BC;C800 0334 11BC;110C 1165 0334 11BC; # (저◌̴ᆼ; 저◌̴ᆼ; 저◌̴ᆼ; 저◌̴ᆼ; 저◌̴ᆼ; ) HANGUL SYLLABLE JEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+C8C4 0334 11AE;C8C4 0334 11AE;110C 116C 0334 11AE;C8C4 0334 11AE;110C 116C 0334 11AE; # (죄◌̴ᆮ; 죄◌̴ᆮ; 죄◌̴ᆮ; 죄◌̴ᆮ; 죄◌̴ᆮ; ) HANGUL SYLLABLE JOE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+C918 0334 11B5;C918 0334 11B5;110C 116F 0334 11B5;C918 0334 11B5;110C 116F 0334 11B5; # (줘◌̴ᆵ; 줘◌̴ᆵ; 줘◌̴ᆵ; 줘◌̴ᆵ; 줘◌̴ᆵ; ) HANGUL SYLLABLE JWEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+C96C 0334 11BC;C96C 0334 11BC;110C 1172 0334 11BC;C96C 0334 11BC;110C 1172 0334 11BC; # (쥬◌̴ᆼ; 쥬◌̴ᆼ; 쥬◌̴ᆼ; 쥬◌̴ᆼ; 쥬◌̴ᆼ; ) HANGUL SYLLABLE JYU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+CA30 0334 11AE;CA30 0334 11AE;110D 1164 0334 11AE;CA30 0334 11AE;110D 1164 0334 11AE; # (쨰◌̴ᆮ; 쨰◌̴ᆮ; 쨰◌̴ᆮ; 쨰◌̴ᆮ; 쨰◌̴ᆮ; ) HANGUL SYLLABLE JJYAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+CA84 0334 11B5;CA84 0334 11B5;110D 1167 0334 11B5;CA84 0334 11B5;110D 1167 0334 11B5; # (쪄◌̴ᆵ; 쪄◌̴ᆵ; 쪄◌̴ᆵ; 쪄◌̴ᆵ; 쪄◌̴ᆵ; ) HANGUL SYLLABLE JJYEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+CAD8 0334 11BC;CAD8 0334 11BC;110D 116A 0334 11BC;CAD8 0334 11BC;110D 116A 0334 11BC; # (쫘◌̴ᆼ; 쫘◌̴ᆼ; 쫘◌̴ᆼ; 쫘◌̴ᆼ; 쫘◌̴ᆼ; ) HANGUL SYLLABLE JJWA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+CB9C 0334 11AE;CB9C 0334 11AE;110D 1171 0334 11AE;CB9C 0334 11AE;110D 1171 0334 11AE; # (쮜◌̴ᆮ; 쮜◌̴ᆮ; 쮜◌̴ᆮ; 쮜◌̴ᆮ; 쮜◌̴ᆮ; ) HANGUL SYLLABLE JJWI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+CBF0 0334 11B5;CBF0 0334 11B5;110D 1174 0334 11B5;CBF0 0334 11B5;110D 1174 0334 11B5; # (쯰◌̴ᆵ; 쯰◌̴ᆵ; 쯰◌̴ᆵ; 쯰◌̴ᆵ; 쯰◌̴ᆵ; ) HANGUL SYLLABLE JJYI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+CC44 0334 11BC;CC44 0334 11BC;110E 1162 0334 11BC;CC44 0334 11BC;110E 1162 0334 11BC; # (채◌̴ᆼ; 채◌̴ᆼ; 채◌̴ᆼ; 채◌̴ᆼ; 채◌̴ᆼ; ) HANGUL SYLLABLE CAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+CD08 0334 11AE;CD08 0334 11AE;110E 1169 0334 11AE;CD08 0334 11AE;110E 1169 0334 11AE; # (초◌̴ᆮ; 초◌̴ᆮ; 초◌̴ᆮ; 초◌̴ᆮ; 초◌̴ᆮ; ) HANGUL SYLLABLE CO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+CD5C 0334 11B5;CD5C 0334 11B5;110E 116C 0334 11B5;CD5C 0334 11B5;110E 116C 0334 11B5; # (최◌̴ᆵ; 최◌̴ᆵ; 최◌̴ᆵ; 최◌̴ᆵ; 최◌̴ᆵ; ) HANGUL SYLLABLE COE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+CDB0 0334 11BC;CDB0 0334 11BC;110E 116F 0334 11BC;CDB0 0334 11BC;110E 116F 0334 11BC; # (춰◌̴ᆼ; 춰◌̴ᆼ; 춰◌̴ᆼ; 춰◌̴ᆼ; 춰◌̴ᆼ; ) HANGUL SYLLABLE CWEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+CE74 0334 11AE;CE74 0334 11AE;110F 1161 0334 11AE;CE74 0334 11AE;110F 1161 0334 11AE; # (카◌̴ᆮ; 카◌̴ᆮ; 카◌̴ᆮ; 카◌̴ᆮ; 카◌̴ᆮ; ) HANGUL SYLLABLE KA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+CEC8 0334 11B5;CEC8 0334 11B5;110F 1164 0334 11B5;CEC8 0334 11B5;110F 1164 0334 11B5; # (컈◌̴ᆵ; 컈◌̴ᆵ; 컈◌̴ᆵ; 컈◌̴ᆵ; 컈◌̴ᆵ; ) HANGUL SYLLABLE KYAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+CF1C 0334 11BC;CF1C 0334 11BC;110F 1167 0334 11BC;CF1C 0334 11BC;110F 1167 0334 11BC; # (켜◌̴ᆼ; 켜◌̴ᆼ; 켜◌̴ᆼ; 켜◌̴ᆼ; 켜◌̴ᆼ; ) HANGUL SYLLABLE KYEO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+CFE0 0334 11AE;CFE0 0334 11AE;110F 116E 0334 11AE;CFE0 0334 11AE;110F 116E 0334 11AE; # (쿠◌̴ᆮ; 쿠◌̴ᆮ; 쿠◌̴ᆮ; 쿠◌̴ᆮ; 쿠◌̴ᆮ; ) HANGUL SYLLABLE KU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+D034 0334 11B5;D034 0334 11B5;110F 1171 0334 11B5;D034 0334 11B5;110F 1171 0334 11B5; # (퀴◌̴ᆵ; 퀴◌̴ᆵ; 퀴◌̴ᆵ; 퀴◌̴ᆵ; 퀴◌̴ᆵ; ) HANGUL SYLLABLE KWI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+D088 0334 11BC;D088 0334 11BC;110F 1174 0334 11BC;D088 0334 11BC;110F 1174 0334 11BC; # (킈◌̴ᆼ; 킈◌̴ᆼ; 킈◌̴ᆼ; 킈◌̴ᆼ; 킈◌̴ᆼ; ) HANGUL SYLLABLE KYI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+D14C 0334 11AE;D14C 0334 11AE;1110 1166 0334 11AE;D14C 0334 11AE;1110 1166 0334 11AE; # (테◌̴ᆮ; 테◌̴ᆮ; 테◌̴ᆮ; 테◌̴ᆮ; 테◌̴ᆮ; ) HANGUL SYLLABLE TE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+D1A0 0334 11B5;D1A0 0334 11B5;1110 1169 0334 11B5;D1A0 0334 11B5;1110 1169 0334 11B5; # (토◌̴ᆵ; 토◌̴ᆵ; 토◌̴ᆵ; 토◌̴ᆵ; 토◌̴ᆵ; ) HANGUL SYLLABLE TO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+D1F4 0334 11BC;D1F4 0334 11BC;1110 116C 0334 11BC;D1F4 0334 11BC;1110 116C 0334 11BC; # (퇴◌̴ᆼ; 퇴◌̴ᆼ; 퇴◌̴ᆼ; 퇴◌̴ᆼ; 퇴◌̴ᆼ; ) HANGUL SYLLABLE TOE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+D2B8 0334 11AE;D2B8 0334 11AE;1110 1173 0334 11AE;D2B8 0334 11AE;1110 1173 0334 11AE; # (트◌̴ᆮ; 트◌̴ᆮ; 트◌̴ᆮ; 트◌̴ᆮ; 트◌̴ᆮ; ) HANGUL SYLLABLE TEU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+D30C 0334 11B5;D30C 0334 11B5;1111 1161 0334 11B5;D30C 0334 11B5;1111 1161 0334 11B5; # (파◌̴ᆵ; 파◌̴ᆵ; 파◌̴ᆵ; 파◌̴ᆵ; 파◌̴ᆵ; ) HANGUL SYLLABLE PA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+D360 0334 11BC;D360 0334 11BC;1111 1164 0334 11BC;D360 0334 11BC;1111 1164 0334 11BC; # (퍠◌̴ᆼ; 퍠◌̴ᆼ; 퍠◌̴ᆼ; 퍠◌̴ᆼ; 퍠◌̴ᆼ; ) HANGUL SYLLABLE PYAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+D424 0334 11AE;D424 0334 11AE;1111 116B 0334 11AE;D424 0334 11AE;1111 116B 0334 11AE; # (퐤◌̴ᆮ; 퐤◌̴ᆮ; 퐤◌̴ᆮ; 퐤◌̴ᆮ; 퐤◌̴ᆮ; ) HANGUL SYLLABLE PWAE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+D478 0334 11B5;D478 0334 11B5;1111 116E 0334 11B5;D478 0334 11B5;1111 116E 0334 11B5; # (푸◌̴ᆵ; 푸◌̴ᆵ; 푸◌̴ᆵ; 푸◌̴ᆵ; 푸◌̴ᆵ; ) HANGUL SYLLABLE PU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+D4CC 0334 11BC;D4CC 0334 11BC;1111 1171 0334 11BC;D4CC 0334 11BC;1111 1171 0334 11BC; # (퓌◌̴ᆼ; 퓌◌̴ᆼ; 퓌◌̴ᆼ; 퓌◌̴ᆼ; 퓌◌̴ᆼ; ) HANGUL SYLLABLE PWI, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+D590 0334 11AE;D590 0334 11AE;1112 1163 0334 11AE;D590 0334 11AE;1112 1163 0334 11AE; # (햐◌̴ᆮ; 햐◌̴ᆮ; 햐◌̴ᆮ; 햐◌̴ᆮ; 햐◌̴ᆮ; ) HANGUL SYLLABLE HYA, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+D5E4 0334 11B5;D5E4 0334 11B5;1112 1166 0334 11B5;D5E4 0334 11B5;1112 1166 0334 11B5; # (헤◌̴ᆵ; 헤◌̴ᆵ; 헤◌̴ᆵ; 헤◌̴ᆵ; 헤◌̴ᆵ; ) HANGUL SYLLABLE HE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+D638 0334 11BC;D638 0334 11BC;1112 1169 0334 11BC;D638 0334 11BC;1112 1169 0334 11BC; # (호◌̴ᆼ; 호◌̴ᆼ; 호◌̴ᆼ; 호◌̴ᆼ; 호◌̴ᆼ; ) HANGUL SYLLABLE HO, COMBINING TILDE OVERLAY, HANGUL JONGSEONG IEUNG
+D6FC 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE; # (훼◌̴ᆮ; 훼◌̴ᆮ; 훼◌̴ᆮ; 훼◌̴ᆮ; 훼◌̴ᆮ; ) HANGUL SYLLABLE HWE, COMBINING TILDE OVERLAY, HANGUL JONGSEONG TIKEUT
+D750 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5; # (흐◌̴ᆵ; 흐◌̴ᆵ; 흐◌̴ᆵ; 흐◌̴ᆵ; 흐◌̴ᆵ; ) HANGUL SYLLABLE HEU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
+11131 0334 11127;11131 0334 11127;11131 0334 11127;11131 0334 11127;11131 0334 11127; # (◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ) CHAKMA O MARK, COMBINING TILDE OVERLAY, CHAKMA VOWEL SIGN A
+11132 0334 11127;11132 0334 11127;11132 0334 11127;11132 0334 11127;11132 0334 11127; # (◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ) CHAKMA AU MARK, COMBINING TILDE OVERLAY, CHAKMA VOWEL SIGN A
+11347 0334 1133E;11347 0334 1133E;11347 0334 1133E;11347 0334 1133E;11347 0334 1133E; # (𑍇◌̴𑌾; 𑍇◌̴𑌾; 𑍇◌̴𑌾; 𑍇◌̴𑌾; 𑍇◌̴𑌾; ) GRANTHA VOWEL SIGN EE, COMBINING TILDE OVERLAY, GRANTHA VOWEL SIGN AA
+11347 0334 11357;11347 0334 11357;11347 0334 11357;11347 0334 11357;11347 0334 11357; # (𑍇◌̴𑍗; 𑍇◌̴𑍗; 𑍇◌̴𑍗; 𑍇◌̴𑍗; 𑍇◌̴𑍗; ) GRANTHA VOWEL SIGN EE, COMBINING TILDE OVERLAY, GRANTHA AU LENGTH MARK
+114B9 0334 114B0;114B9 0334 114B0;114B9 0334 114B0;114B9 0334 114B0;114B9 0334 114B0; # (𑒹◌̴𑒰; 𑒹◌̴𑒰; 𑒹◌̴𑒰; 𑒹◌̴𑒰; 𑒹◌̴𑒰; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE OVERLAY, TIRHUTA VOWEL SIGN AA
+114B9 0334 114BA;114B9 0334 114BA;114B9 0334 114BA;114B9 0334 114BA;114B9 0334 114BA; # (𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE OVERLAY, TIRHUTA VOWEL SIGN SHORT E
+114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD; # (𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE OVERLAY, TIRHUTA VOWEL SIGN SHORT O
+115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF; # (𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; ) SIDDHAM VOWEL SIGN E, COMBINING TILDE OVERLAY, SIDDHAM VOWEL SIGN AA
+115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF; # (𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; ) SIDDHAM VOWEL SIGN AI, COMBINING TILDE OVERLAY, SIDDHAM VOWEL SIGN AA
+11935 0334 11930;11935 0334 11930;11935 0334 11930;11935 0334 11930;11935 0334 11930; # (𑤵◌̴𑤰; 𑤵◌̴𑤰; 𑤵◌̴𑤰; 𑤵◌̴𑤰; 𑤵◌̴𑤰; ) DIVES AKURU VOWEL SIGN E, COMBINING TILDE OVERLAY, DIVES AKURU VOWEL SIGN AA
+#
+# EOF
Index: gnu/usr.bin/perl/lib/unicore/NormalizationCorrections.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/NormalizationCorrections.txt,v
diff -u -p -a -u -p -r1.6 NormalizationCorrections.txt
--- gnu/usr.bin/perl/lib/unicore/NormalizationCorrections.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/NormalizationCorrections.txt	21 Feb 2024 15:47:02 -0000
@@ -1,10 +1,10 @@
-# NormalizationCorrections-14.0.0.txt
-# Date: 2021-03-16, 22:07:00 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# NormalizationCorrections-15.0.0.txt
+# Date: 2022-05-03, 18:53:00 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
 #
 # This file is a normative contributory data file in the
 # Unicode Character Database.
Index: gnu/usr.bin/perl/lib/unicore/PropList.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/PropList.txt,v
diff -u -p -a -u -p -r1.6 PropList.txt
--- gnu/usr.bin/perl/lib/unicore/PropList.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/PropList.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# PropList-14.0.0.txt
-# Date: 2021-08-12, 23:13:05 GMT
-# © 2021 Unicode®, Inc.
+# PropList-15.0.0.txt
+# Date: 2022-08-05, 22:17:16 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -215,6 +215,7 @@ FF64          ; Terminal_Punctuation # P
 11C41..11C43  ; Terminal_Punctuation # Po   [3] BHAIKSUKI DANDA..BHAIKSUKI WORD SEPARATOR
 11C71         ; Terminal_Punctuation # Po       MARCHEN MARK SHAD
 11EF7..11EF8  ; Terminal_Punctuation # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F44  ; Terminal_Punctuation # Po   [2] KAWI DANDA..KAWI DOUBLE DANDA
 12470..12474  ; Terminal_Punctuation # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 16A6E..16A6F  ; Terminal_Punctuation # Po   [2] MRO DANDA..MRO DOUBLE DANDA
 16AF5         ; Terminal_Punctuation # Po       BASSA VAH FULL STOP
@@ -224,7 +225,7 @@ FF64          ; Terminal_Punctuation # P
 1BC9F         ; Terminal_Punctuation # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1DA87..1DA8A  ; Terminal_Punctuation # Po   [4] SIGNWRITING COMMA..SIGNWRITING COLON
 
-# Total code points: 276
+# Total code points: 278
 
 # ================================================
 
@@ -507,6 +508,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FUL
 0BD7          ; Other_Alphabetic # Mc       TAMIL AU LENGTH MARK
 0C00          ; Other_Alphabetic # Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE
 0C01..0C03    ; Other_Alphabetic # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04          ; Other_Alphabetic # Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE
 0C3E..0C40    ; Other_Alphabetic # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
 0C41..0C44    ; Other_Alphabetic # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
 0C46..0C48    ; Other_Alphabetic # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
@@ -524,6 +526,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FUL
 0CCC          ; Other_Alphabetic # Mn       KANNADA VOWEL SIGN AU
 0CD5..0CD6    ; Other_Alphabetic # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Other_Alphabetic # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3          ; Other_Alphabetic # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; Other_Alphabetic # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Other_Alphabetic # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; Other_Alphabetic # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
@@ -548,7 +551,7 @@ FF41..FF46    ; Hex_Digit # L&   [6] FUL
 0ECD          ; Other_Alphabetic # Mn       LAO NIGGAHITA
 0F71..0F7E    ; Other_Alphabetic # Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
 0F7F          ; Other_Alphabetic # Mc       TIBETAN SIGN RNAM BCAD
-0F80..0F81    ; Other_Alphabetic # Mn   [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II
+0F80..0F83    ; Other_Alphabetic # Mn   [4] TIBETAN VOWEL SIGN REVERSED I..TIBETAN SIGN SNA LDAN
 0F8D..0F97    ; Other_Alphabetic # Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
 0F99..0FBC    ; Other_Alphabetic # Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
 102B..102C    ; Other_Alphabetic # Mc   [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
@@ -692,6 +695,7 @@ FB1E          ; Other_Alphabetic # Mn   
 11002         ; Other_Alphabetic # Mc       BRAHMI SIGN VISARGA
 11038..11045  ; Other_Alphabetic # Mn  [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU
 11073..11074  ; Other_Alphabetic # Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+11080..11081  ; Other_Alphabetic # Mn   [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
 11082         ; Other_Alphabetic # Mc       KAITHI SIGN VISARGA
 110B0..110B2  ; Other_Alphabetic # Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
 110B3..110B6  ; Other_Alphabetic # Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -715,6 +719,7 @@ FB1E          ; Other_Alphabetic # Mn   
 11234         ; Other_Alphabetic # Mn       KHOJKI SIGN ANUSVARA
 11237         ; Other_Alphabetic # Mn       KHOJKI SIGN SHADDA
 1123E         ; Other_Alphabetic # Mn       KHOJKI SIGN SUKUN
+11241         ; Other_Alphabetic # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Other_Alphabetic # Mn       KHUDAWADI SIGN ANUSVARA
 112E0..112E2  ; Other_Alphabetic # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
 112E3..112E8  ; Other_Alphabetic # Mn   [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
@@ -807,6 +812,12 @@ FB1E          ; Other_Alphabetic # Mn   
 11D96         ; Other_Alphabetic # Mc       GUNJALA GONDI SIGN VISARGA
 11EF3..11EF4  ; Other_Alphabetic # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; Other_Alphabetic # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; Other_Alphabetic # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03         ; Other_Alphabetic # Mc       KAWI SIGN VISARGA
+11F34..11F35  ; Other_Alphabetic # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; Other_Alphabetic # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; Other_Alphabetic # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; Other_Alphabetic # Mn       KAWI VOWEL SIGN EU
 16F4F         ; Other_Alphabetic # Mn       MIAO SIGN CONSONANT MODIFIER BAR
 16F51..16F87  ; Other_Alphabetic # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
 16F8F..16F92  ; Other_Alphabetic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
@@ -817,12 +828,13 @@ FB1E          ; Other_Alphabetic # Mn   
 1E01B..1E021  ; Other_Alphabetic # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Other_Alphabetic # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Other_Alphabetic # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; Other_Alphabetic # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E947         ; Other_Alphabetic # Mn       ADLAM HAMZA
 1F130..1F149  ; Other_Alphabetic # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
 1F150..1F169  ; Other_Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
 1F170..1F189  ; Other_Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 1404
+# Total code points: 1425
 
 # ================================================
 
@@ -840,14 +852,15 @@ FA70..FAD9    ; Ideographic # Lo [106] C
 18D00..18D08  ; Ideographic # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
 1B170..1B2FB  ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 20000..2A6DF  ; Ideographic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; Ideographic # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; Ideographic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 101661
+# Total code points: 105854
 
 # ================================================
 
@@ -1028,6 +1041,7 @@ FFE3          ; Diacritic # Sk       FUL
 10AE5..10AE6  ; Diacritic # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D22..10D23  ; Diacritic # Lo   [2] HANIFI ROHINGYA MARK SAKIN..HANIFI ROHINGYA MARK NA KHONNA
 10D24..10D27  ; Diacritic # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10EFD..10EFF  ; Diacritic # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Diacritic # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Diacritic # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11046         ; Diacritic # Mn       BRAHMI VIRAMA
@@ -1064,6 +1078,7 @@ FFE3          ; Diacritic # Sk       FUL
 11D42         ; Diacritic # Mn       MASARAM GONDI SIGN NUKTA
 11D44..11D45  ; Diacritic # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
 11D97         ; Diacritic # Mn       GUNJALA GONDI VIRAMA
+13447..13455  ; Diacritic # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Diacritic # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Diacritic # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F8F..16F92  ; Diacritic # Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW
@@ -1079,6 +1094,7 @@ FFE3          ; Diacritic # Sk       FUL
 1D17B..1D182  ; Diacritic # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D185..1D18B  ; Diacritic # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
 1D1AA..1D1AD  ; Diacritic # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1E030..1E06D  ; Diacritic # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E130..1E136  ; Diacritic # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; Diacritic # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Diacritic # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
@@ -1086,7 +1102,7 @@ FFE3          ; Diacritic # Sk       FUL
 1E944..1E946  ; Diacritic # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
 1E948..1E94A  ; Diacritic # Mn   [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
 
-# Total code points: 1064
+# Total code points: 1144
 
 # ================================================
 
@@ -1135,6 +1151,7 @@ FF70          ; Extender # Lm       HALF
 02E0..02E4    ; Other_Lowercase # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
 0345          ; Other_Lowercase # Mn       COMBINING GREEK YPOGEGRAMMENI
 037A          ; Other_Lowercase # Lm       GREEK YPOGEGRAMMENI
+10FC          ; Other_Lowercase # Lm       MODIFIER LETTER GEORGIAN NAR
 1D2C..1D6A    ; Other_Lowercase # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
 1D78          ; Other_Lowercase # Lm       MODIFIER LETTER CYRILLIC EN
 1D9B..1DBF    ; Other_Lowercase # Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
@@ -1146,14 +1163,17 @@ FF70          ; Extender # Lm       HALF
 2C7C..2C7D    ; Other_Lowercase # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
 A69C..A69D    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A770          ; Other_Lowercase # Lm       MODIFIER LETTER US
+A7F2..A7F4    ; Other_Lowercase # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
 A7F8..A7F9    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 AB5C..AB5F    ; Other_Lowercase # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB69          ; Other_Lowercase # Lm       MODIFIER LETTER SMALL TURNED W
 10780         ; Other_Lowercase # Lm       MODIFIER LETTER SMALL CAPITAL AA
 10783..10785  ; Other_Lowercase # Lm   [3] MODIFIER LETTER SMALL AE..MODIFIER LETTER SMALL B WITH HOOK
 10787..107B0  ; Other_Lowercase # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
 107B2..107BA  ; Other_Lowercase # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+1E030..1E06D  ; Other_Lowercase # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 
-# Total code points: 244
+# Total code points: 311
 
 # ================================================
 
@@ -1251,13 +1271,14 @@ FA21          ; Unified_Ideograph # Lo  
 FA23..FA24    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
 FA27..FA29    ; Unified_Ideograph # Lo   [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
 20000..2A6DF  ; Unified_Ideograph # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; Unified_Ideograph # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; Unified_Ideograph # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 30000..3134A  ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Unified_Ideograph # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 92865
+# Total code points: 97058
 
 # ================================================
 
@@ -1323,8 +1344,10 @@ E0001         ; Deprecated # Cf       LA
 1D65E..1D65F  ; Soft_Dotted # L&   [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
 1D692..1D693  ; Soft_Dotted # L&   [2] MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J
 1DF1A         ; Soft_Dotted # L&       LATIN SMALL LETTER I WITH STROKE AND RETROFLEX HOOK
+1E04C..1E04D  ; Soft_Dotted # Lm   [2] MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I..MODIFIER LETTER CYRILLIC SMALL JE
+1E068         ; Soft_Dotted # Lm       CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 
-# Total code points: 47
+# Total code points: 50
 
 # ================================================
 
@@ -1430,6 +1453,7 @@ FF61          ; Sentence_Terminal # Po  
 11A9B..11A9C  ; Sentence_Terminal # Po   [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD
 11C41..11C42  ; Sentence_Terminal # Po   [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA
 11EF7..11EF8  ; Sentence_Terminal # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F44  ; Sentence_Terminal # Po   [2] KAWI DANDA..KAWI DOUBLE DANDA
 16A6E..16A6F  ; Sentence_Terminal # Po   [2] MRO DANDA..MRO DOUBLE DANDA
 16AF5         ; Sentence_Terminal # Po       BASSA VAH FULL STOP
 16B37..16B38  ; Sentence_Terminal # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
@@ -1438,7 +1462,7 @@ FF61          ; Sentence_Terminal # Po  
 1BC9F         ; Sentence_Terminal # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1DA88         ; Sentence_Terminal # Po       SIGNWRITING FULL STOP
 
-# Total code points: 152
+# Total code points: 154
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/PropValueAliases.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/PropValueAliases.txt,v
diff -u -p -a -u -p -r1.6 PropValueAliases.txt
--- gnu/usr.bin/perl/lib/unicore/PropValueAliases.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/PropValueAliases.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# PropertyValueAliases-14.0.0.txt
-# Date: 2021-05-10, 21:08:53 GMT
-# © 2021 Unicode®, Inc.
+# PropertyValueAliases-15.0.0.txt
+# Date: 2022-08-05, 23:42:17 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # This file contains aliases for property values used in the UCD.
 # These names can be used for XML formats of UCD data, for regular-expression
@@ -90,6 +90,7 @@ age; 12.0                             ; 
 age; 12.1                             ; V12_1
 age; 13.0                             ; V13_0
 age; 14.0                             ; V14_0
+age; 15.0                             ; V15_0
 age; NA                               ; Unassigned
 
 # Alphabetic (Alpha)
@@ -135,7 +136,6 @@ Bidi_M; Y                             ; 
 
 # Bidi_Mirroring_Glyph (bmg)
 
-# @missing: 0000..10FFFF; Bidi_Mirroring_Glyph; <none>
 
 # Bidi_Paired_Bracket (bpb)
 
@@ -162,6 +162,7 @@ blk; Ancient_Symbols                  ; 
 blk; Arabic                           ; Arabic
 blk; Arabic_Ext_A                     ; Arabic_Extended_A
 blk; Arabic_Ext_B                     ; Arabic_Extended_B
+blk; Arabic_Ext_C                     ; Arabic_Extended_C
 blk; Arabic_Math                      ; Arabic_Mathematical_Alphabetic_Symbols
 blk; Arabic_PF_A                      ; Arabic_Presentation_Forms_A      ; Arabic_Presentation_Forms-A
 blk; Arabic_PF_B                      ; Arabic_Presentation_Forms_B
@@ -206,6 +207,7 @@ blk; CJK_Ext_D                        ; 
 blk; CJK_Ext_E                        ; CJK_Unified_Ideographs_Extension_E
 blk; CJK_Ext_F                        ; CJK_Unified_Ideographs_Extension_F
 blk; CJK_Ext_G                        ; CJK_Unified_Ideographs_Extension_G
+blk; CJK_Ext_H                        ; CJK_Unified_Ideographs_Extension_H
 blk; CJK_Radicals_Sup                 ; CJK_Radicals_Supplement
 blk; CJK_Strokes                      ; CJK_Strokes
 blk; CJK_Symbols                      ; CJK_Symbols_And_Punctuation
@@ -223,10 +225,12 @@ blk; Cyrillic                         ; 
 blk; Cyrillic_Ext_A                   ; Cyrillic_Extended_A
 blk; Cyrillic_Ext_B                   ; Cyrillic_Extended_B
 blk; Cyrillic_Ext_C                   ; Cyrillic_Extended_C
+blk; Cyrillic_Ext_D                   ; Cyrillic_Extended_D
 blk; Cyrillic_Sup                     ; Cyrillic_Supplement              ; Cyrillic_Supplementary
 blk; Deseret                          ; Deseret
 blk; Devanagari                       ; Devanagari
 blk; Devanagari_Ext                   ; Devanagari_Extended
+blk; Devanagari_Ext_A                 ; Devanagari_Extended_A
 blk; Diacriticals                     ; Combining_Diacritical_Marks
 blk; Diacriticals_Ext                 ; Combining_Diacritical_Marks_Extended
 blk; Diacriticals_For_Symbols         ; Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols
@@ -288,6 +292,7 @@ blk; Jamo_Ext_A                       ; 
 blk; Jamo_Ext_B                       ; Hangul_Jamo_Extended_B
 blk; Javanese                         ; Javanese
 blk; Kaithi                           ; Kaithi
+blk; Kaktovik_Numerals                ; Kaktovik_Numerals
 blk; Kana_Ext_A                       ; Kana_Extended_A
 blk; Kana_Ext_B                       ; Kana_Extended_B
 blk; Kana_Sup                         ; Kana_Supplement
@@ -296,6 +301,7 @@ blk; Kangxi                           ; 
 blk; Kannada                          ; Kannada
 blk; Katakana                         ; Katakana
 blk; Katakana_Ext                     ; Katakana_Phonetic_Extensions
+blk; Kawi                             ; Kawi
 blk; Kayah_Li                         ; Kayah_Li
 blk; Kharoshthi                       ; Kharoshthi
 blk; Khitan_Small_Script              ; Khitan_Small_Script
@@ -360,6 +366,7 @@ blk; Myanmar                          ; 
 blk; Myanmar_Ext_A                    ; Myanmar_Extended_A
 blk; Myanmar_Ext_B                    ; Myanmar_Extended_B
 blk; Nabataean                        ; Nabataean
+blk; Nag_Mundari                      ; Nag_Mundari
 blk; Nandinagari                      ; Nandinagari
 blk; NB                               ; No_Block
 blk; New_Tai_Lue                      ; New_Tai_Lue
@@ -663,7 +670,6 @@ EPres; Y                              ; 
 
 # Equivalent_Unified_Ideograph (EqUIdeo)
 
-# @missing: 0000..10FFFF; Equivalent_Unified_Ideograph; <none>
 
 # Expands_On_NFC (XO_NFC)
 
@@ -1143,7 +1149,6 @@ NFD_QC; Y                             ; 
 
 # NFKC_Casefold (NFKC_CF)
 
-# @missing: 0000..10FFFF; NFKC_Casefold; <code point>
 
 # NFKC_Quick_Check (NFKC_QC)
 
@@ -1313,6 +1318,7 @@ sc ; Ital                             ; 
 sc ; Java                             ; Javanese
 sc ; Kali                             ; Kayah_Li
 sc ; Kana                             ; Katakana
+sc ; Kawi                             ; Kawi
 sc ; Khar                             ; Kharoshthi
 sc ; Khmr                             ; Khmer
 sc ; Khoj                             ; Khojki
@@ -1345,6 +1351,7 @@ sc ; Mroo                             ; 
 sc ; Mtei                             ; Meetei_Mayek
 sc ; Mult                             ; Multani
 sc ; Mymr                             ; Myanmar
+sc ; Nagm                             ; Nag_Mundari
 sc ; Nand                             ; Nandinagari
 sc ; Narb                             ; Old_North_Arabian
 sc ; Nbat                             ; Nabataean
@@ -1418,7 +1425,6 @@ sc ; Zzzz                             ; 
 
 # Script_Extensions (scx)
 
-# @missing: 0000..10FFFF; Script_Extensions; <script>
 
 # Sentence_Break (SB)
 
Index: gnu/usr.bin/perl/lib/unicore/PropertyAliases.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/PropertyAliases.txt,v
diff -u -p -a -u -p -r1.6 PropertyAliases.txt
--- gnu/usr.bin/perl/lib/unicore/PropertyAliases.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/PropertyAliases.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# PropertyAliases-14.0.0.txt
-# Date: 2021-03-08, 19:35:48 GMT
-# © 2021 Unicode®, Inc.
+# PropertyAliases-15.0.0.txt
+# Date: 2022-02-02, 23:35:44 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # This file contains aliases for properties used in the UCD.
 # These names can be used for XML formats of UCD data, for regular-expression
Index: gnu/usr.bin/perl/lib/unicore/ReadMe.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/ReadMe.txt,v
diff -u -p -a -u -p -r1.6 ReadMe.txt
--- gnu/usr.bin/perl/lib/unicore/ReadMe.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/ReadMe.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # Unicode Character Database
-# Date: 2021-09-10, 17:22:00 GMT [KW]
-# © 2021 Unicode®, Inc.
+# Date: 2022-09-02
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
@@ -10,7 +10,7 @@
 # UAX #44, "Unicode Character Database"
 # UTS #51, "Unicode Emoji"
 #
-# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode14.0.0/
+# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode15.0.0/
 
 This directory contains the final data files
-for the Unicode Character Database, for Version 14.0.0 of the Unicode Standard.
+for the Unicode Character Database, for Version 15.0.0 of the Unicode Standard.
Index: gnu/usr.bin/perl/lib/unicore/ScriptExtensions.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/ScriptExtensions.txt,v
diff -u -p -a -u -p -r1.6 ScriptExtensions.txt
--- gnu/usr.bin/perl/lib/unicore/ScriptExtensions.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/ScriptExtensions.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# ScriptExtensions-14.0.0.txt
-# Date: 2021-06-04, 02:19:38 GMT
-# © 2021 Unicode®, Inc.
+# ScriptExtensions-15.0.0.txt
+# Date: 2022-02-02, 00:57:11 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # The Script_Extensions property indicates which characters are commonly used
 # with more than one script, but with a limited number of scripts.
Index: gnu/usr.bin/perl/lib/unicore/Scripts.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/Scripts.txt,v
diff -u -p -a -u -p -r1.6 Scripts.txt
--- gnu/usr.bin/perl/lib/unicore/Scripts.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/Scripts.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# Scripts-14.0.0.txt
-# Date: 2021-07-10, 00:35:31 GMT
-# © 2021 Unicode®, Inc.
+# Scripts-15.0.0.txt
+# Date: 2022-04-26, 23:15:02 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 # For more information, see:
 #   UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
 #     Especially the sections:
@@ -532,6 +532,7 @@ FFFC..FFFD    ; Common # So   [2] OBJECT
 1D183..1D184  ; Common # So   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
 1D18C..1D1A9  ; Common # So  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
 1D1AE..1D1EA  ; Common # So  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
+1D2C0..1D2D3  ; Common # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; Common # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356  ; Common # So  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378  ; Common # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -601,10 +602,10 @@ FFFC..FFFD    ; Common # So   [2] OBJECT
 1F300..1F3FA  ; Common # So [251] CYCLONE..AMPHORA
 1F3FB..1F3FF  ; Common # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 1F400..1F6D7  ; Common # So [728] RAT..ELEVATOR
-1F6DD..1F6EC  ; Common # So  [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6DC..1F6EC  ; Common # So  [17] WIRELESS..AIRPLANE ARRIVING
 1F6F0..1F6FC  ; Common # So  [13] SATELLITE..ROLLER SKATE
-1F700..1F773  ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8  ; Common # So  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776  ; Common # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9  ; Common # So  [95] HAUMEA..NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; Common # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0         ; Common # So       HEAVY EQUALS SIGN
 1F800..1F80B  ; Common # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -615,22 +616,20 @@ FFFC..FFFD    ; Common # So   [2] OBJECT
 1F8B0..1F8B1  ; Common # So   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
 1F900..1FA53  ; Common # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
 1FA60..1FA6D  ; Common # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74  ; Common # So   [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C  ; Common # So   [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86  ; Common # So   [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC  ; Common # So  [29] RINGED PLANET..HAMSA
-1FAB0..1FABA  ; Common # So  [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5  ; Common # So   [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9  ; Common # So  [10] BLUEBERRIES..JAR
-1FAE0..1FAE7  ; Common # So   [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6  ; Common # So   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C  ; Common # So  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; Common # So   [9] YO-YO..FLUTE
+1FA90..1FABD  ; Common # So  [46] RINGED PLANET..WING
+1FABF..1FAC5  ; Common # So   [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB  ; Common # So  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; Common # So   [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8  ; Common # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 1FB00..1FB92  ; Common # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; Common # So  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 1FBF0..1FBF9  ; Common # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 E0001         ; Common # Cf       LANGUAGE TAG
 E0020..E007F  ; Common # Cf  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 8252
+# Total code points: 8301
 
 # ================================================
 
@@ -697,8 +696,9 @@ FF41..FF5A    ; Latin # L&  [26] FULLWID
 1DF00..1DF09  ; Latin # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; Latin # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; Latin # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Latin # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 
-# Total code points: 1475
+# Total code points: 1481
 
 # ================================================
 
@@ -784,8 +784,10 @@ A680..A69B    ; Cyrillic # L&  [28] CYRI
 A69C..A69D    ; Cyrillic # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
 A69E..A69F    ; Cyrillic # Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
 FE2E..FE2F    ; Cyrillic # Mn   [2] COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+1E030..1E06D  ; Cyrillic # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; Cyrillic # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 
-# Total code points: 443
+# Total code points: 506
 
 # ================================================
 
@@ -883,6 +885,7 @@ FDFD..FDFF    ; Arabic # So   [3] ARABIC
 FE70..FE74    ; Arabic # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
 FE76..FEFC    ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
 10E60..10E7E  ; Arabic # No  [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10EFD..10EFF  ; Arabic # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 1EE00..1EE03  ; Arabic # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
 1EE05..1EE1F  ; Arabic # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
 1EE21..1EE22  ; Arabic # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -918,7 +921,7 @@ FE76..FEFC    ; Arabic # Lo [135] ARABIC
 1EEAB..1EEBB  ; Arabic # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 1EEF0..1EEF1  ; Arabic # Sm   [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
 
-# Total code points: 1365
+# Total code points: 1368
 
 # ================================================
 
@@ -970,8 +973,9 @@ A8FB          ; Devanagari # Lo       DE
 A8FC          ; Devanagari # Po       DEVANAGARI SIGN SIDDHAM
 A8FD..A8FE    ; Devanagari # Lo   [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
 A8FF          ; Devanagari # Mn       DEVANAGARI VOWEL SIGN AY
+11B00..11B09  ; Devanagari # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 
-# Total code points: 154
+# Total code points: 164
 
 # ================================================
 
@@ -1182,8 +1186,9 @@ A8FF          ; Devanagari # Mn       DE
 0CE2..0CE3    ; Kannada # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; Kannada # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; Kannada # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; Kannada # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 
-# Total code points: 90
+# Total code points: 91
 
 # ================================================
 
@@ -1263,11 +1268,11 @@ A8FF          ; Devanagari # Mn       DE
 0EBD          ; Lao # Lo       LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4    ; Lao # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; Lao # Lm       LAO KO LA
-0EC8..0ECD    ; Lao # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Lao # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9    ; Lao # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF    ; Lao # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 
-# Total code points: 82
+# Total code points: 83
 
 # ================================================
 
@@ -1532,10 +1537,11 @@ AB70..ABBF    ; Cherokee # L&  [80] CHER
 309D..309E    ; Hiragana # Lm   [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
 309F          ; Hiragana # Lo       HIRAGANA DIGRAPH YORI
 1B001..1B11F  ; Hiragana # Lo [287] HIRAGANA LETTER ARCHAIC YE..HIRAGANA LETTER ARCHAIC WU
+1B132         ; Hiragana # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; Hiragana # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
 1F200         ; Hiragana # So       SQUARE HIRAGANA HOKA
 
-# Total code points: 380
+# Total code points: 381
 
 # ================================================
 
@@ -1552,9 +1558,10 @@ FF71..FF9D    ; Katakana # Lo  [45] HALF
 1AFFD..1AFFE  ; Katakana # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000         ; Katakana # Lo       KATAKANA LETTER ARCHAIC E
 1B120..1B122  ; Katakana # Lo   [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
+1B155         ; Katakana # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Katakana # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 
-# Total code points: 320
+# Total code points: 321
 
 # ================================================
 
@@ -1582,14 +1589,15 @@ FA70..FAD9    ; Han # Lo [106] CJK COMPA
 16FE3         ; Han # Lm       OLD CHINESE ITERATION MARK
 16FF0..16FF1  ; Han # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
 20000..2A6DF  ; Han # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; Han # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; Han # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Han # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 94215
+# Total code points: 98408
 
 # ================================================
 
@@ -2093,10 +2101,13 @@ AADE..AADF    ; Tai_Viet # Po   [2] TAI 
 
 # ================================================
 
-13000..1342E  ; Egyptian_Hieroglyphs # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438  ; Egyptian_Hieroglyphs # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F  ; Egyptian_Hieroglyphs # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F  ; Egyptian_Hieroglyphs # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440         ; Egyptian_Hieroglyphs # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446  ; Egyptian_Hieroglyphs # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455  ; Egyptian_Hieroglyphs # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 
-# Total code points: 1080
+# Total code points: 1110
 
 # ================================================
 
@@ -2440,8 +2451,10 @@ ABF0..ABF9    ; Meetei_Mayek # Nd  [10] 
 11236..11237  ; Khojki # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 11238..1123D  ; Khojki # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
 1123E         ; Khojki # Mn       KHOJKI SIGN SUKUN
+1123F..11240  ; Khojki # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241         ; Khojki # Mn       KHOJKI VOWEL SIGN VOCALIC R
 
-# Total code points: 62
+# Total code points: 65
 
 # ================================================
 
@@ -2987,5 +3000,32 @@ ABF0..ABF9    ; Meetei_Mayek # Nd  [10] 
 105BB..105BC  ; Vithkuqi # L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
 
 # Total code points: 70
+
+# ================================================
+
+11F00..11F01  ; Kawi # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; Kawi # Lo       KAWI SIGN REPHA
+11F03         ; Kawi # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; Kawi # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; Kawi # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; Kawi # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; Kawi # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; Kawi # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; Kawi # Mn       KAWI VOWEL SIGN EU
+11F41         ; Kawi # Mc       KAWI SIGN KILLER
+11F42         ; Kawi # Mn       KAWI CONJOINER
+11F43..11F4F  ; Kawi # Po  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59  ; Kawi # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+
+# Total code points: 86
+
+# ================================================
+
+1E4D0..1E4EA  ; Nag_Mundari # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; Nag_Mundari # Lm       NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF  ; Nag_Mundari # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9  ; Nag_Mundari # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+
+# Total code points: 42
 
 # EOF
Index: gnu/usr.bin/perl/lib/unicore/SpecialCasing.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/SpecialCasing.txt,v
diff -u -p -a -u -p -r1.6 SpecialCasing.txt
--- gnu/usr.bin/perl/lib/unicore/SpecialCasing.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/SpecialCasing.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# SpecialCasing-14.0.0.txt
-# Date: 2021-03-08, 19:35:55 GMT
-# © 2021 Unicode®, Inc.
+# SpecialCasing-15.0.0.txt
+# Date: 2022-02-02, 23:35:52 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Special Casing
 #
Index: gnu/usr.bin/perl/lib/unicore/StandardizedVariants.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/StandardizedVariants.txt,v
diff -u -p -a -u -p -r1.6 StandardizedVariants.txt
--- gnu/usr.bin/perl/lib/unicore/StandardizedVariants.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/StandardizedVariants.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# StandardizedVariants-14.0.0.txt
-# Date: 2021-01-26, 18:20:00 GMT [KW, LI, RP]
-# © 2021 Unicode®, Inc.
+# StandardizedVariants-15.0.0.txt
+# Date: 2022-08-16, 19:08:00 GMT [KW]
+# © 2022 Unicode®, Inc.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Specification of the variation sequences that are defined in the
@@ -26,7 +26,7 @@
 #
 # For more information on standardized variation sequences,
 # see Section 23.4, Variation Selectors,
-# in The Unicode Standard, Version 14.0.
+# in The Unicode Standard, Version 15.0.
 #
 # For more information on the Ideographic Variation Database,
 # see https://www.unicode.org/ivd/
@@ -261,6 +261,113 @@ A868 FE00; phags-pa letter reversed shap
 1887 180D; fourth form; final # MONGOLIAN LETTER ALI GALI A
 1888 180B; second form; final # MONGOLIAN LETTER ALI GALI I
 188A 180B; second form; initial medial # MONGOLIAN LETTER ALI GALI NGA
+
+# Egyptian hieroglyph rotational variants
+
+# Rotations are clockwise for when rendered normally as left-to-right.
+# Rotations are counter-clockwise when text is mirrored right-to-left.
+
+13091 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH D027
+13092 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH D027A
+13093 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH D028
+130A9 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH D047
+1310F FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH F016
+13117 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH F023
+1311C FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH F028
+13121 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH F032
+13127 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH F037A
+13139 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH F051
+13139 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH F051
+13183 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH H005
+13187 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH H008
+131A0 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH K006
+131A0 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH K006
+131B1 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH M003
+131B1 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH M003
+131B8 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH M009
+131B9 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH M010
+131BA FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH M010A
+131CB FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH M017
+131EE FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH M044
+131EE FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH M044
+131F8 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH N010
+131F9 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH N011
+131F9 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH N011
+131FA FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH N012
+131FA FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH N012
+13216 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH N035
+13257 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH O006
+1327B FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH O029
+1327F FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH O031
+1327F FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH O031
+13285 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH O036
+1328C FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH O039
+132A4 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH P008
+132A4 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH P008
+132AA FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH Q003
+132CB FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH R024
+132DC FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH S010
+132E7 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH S018
+132E7 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH S018
+132E9 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH S020
+132F8 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH S033
+132FD FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH S037
+13302 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH S042
+13303 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH S043
+13307 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH T001
+13308 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T002
+13310 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T008
+13311 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T008A
+13312 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T009
+13312 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T009
+13313 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T009A
+13313 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T009A
+13314 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T010
+13314 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T010
+1331B FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH T016
+1331B FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T016
+1331C FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T016A
+13321 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T021
+13321 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T021
+13322 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH T022
+13322 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T022
+13331 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH T035
+13331 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH T035
+1333B FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH U007
+1333C FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH U008
+1334A FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH U022
+13361 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH U042
+13373 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH V007A
+13377 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH V010
+13378 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH V011
+1337D FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH V012A
+13385 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH V019
+13399 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH V026
+1339A FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH V027
+133AF FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH W001
+133B0 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH W002
+133BF FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH W014
+133D3 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH X004A
+133DD FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH Y002
+133F2 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH Z007
+133F5 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH Z010
+133F6 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH Z011
+13403 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH Z015I
+13416 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH AA008
+13419 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH AA011
+13419 FE01; rotated 180 degrees; # EGYPTIAN HIEROGLYPH AA011
+13419 FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH AA011
+1341A FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH AA012
+13423 FE00; rotated 90 degrees; # EGYPTIAN HIEROGLYPH AA021
+1342C FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH AA030
+1342E FE02; rotated 270 degrees; # EGYPTIAN HIEROGLYPH AA032
+
+# Egyptian hieroglyph expanded variants
+
+13443 FE00; expanded ; # EGYPTIAN HIEROGLYPH LOST SIGN
+13444 FE00; expanded ; # EGYPTIAN HIEROGLYPH HALF LOST SIGN
+13445 FE00; expanded ; # EGYPTIAN HIEROGLYPH TALL LOST SIGN
+13446 FE00; expanded ; # EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 
 # CJK compatibility ideographs
 
Index: gnu/usr.bin/perl/lib/unicore/TestNorm.pl
===================================================================
RCS file: gnu/usr.bin/perl/lib/unicore/TestNorm.pl
diff -N gnu/usr.bin/perl/lib/unicore/TestNorm.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/unicore/TestNorm.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,19134 @@
+use utf8;
+use Test::More;
+
+sub ord_string {    # Convert packed ords to printable string
+    use charnames ();
+    return "'" . join("", map { '\N{' . charnames::viacode($_) . '}' }
+                                                unpack "U*", shift) .  "'";
+    #return "'" . join(" ", map { sprintf "%04X", $_ } unpack "U*", shift) .  "'";
+}
+
+sub Test_N {
+    my ($source, $nfc, $nfd, $nfkc, $nfkd) = @_;
+    my $display_source = ord_string($source);
+    my $display_nfc = ord_string($nfc);
+    my $display_nfd = ord_string($nfd);
+    my $display_nfkc = ord_string($nfkc);
+    my $display_nfkd = ord_string($nfkd);
+
+    use Unicode::Normalize;
+    #    NFC
+    #      nfc ==  toNFC(source) ==  toNFC(nfc) ==  toNFC(nfd)
+    #      nfkc ==  toNFC(nfkc) ==  toNFC(nfkd)
+    #
+    #    NFD
+    #      nfd ==  toNFD(source) ==  toNFD(nfc) ==  toNFD(nfd)
+    #      nfkd ==  toNFD(nfkc) ==  toNFD(nfkd)
+    #
+    #    NFKC
+    #      nfkc == toNFKC(source) == toNFKC(nfc) == toNFKC(nfd) ==
+    #      toNFKC(nfkc) == toNFKC(nfkd)
+    #
+    #    NFKD
+    #      nfkd == toNFKD(source) == toNFKD(nfc) == toNFKD(nfd) ==
+    #      toNFKD(nfkc) == toNFKD(nfkd)
+
+    is(NFC($source), $nfc, "NFC($display_source) eq $display_nfc");
+    is(NFC($nfc), $nfc, "NFC($display_nfc) eq $display_nfc");
+    is(NFC($nfd), $nfc, "NFC($display_nfd) eq $display_nfc");
+    is(NFC($nfkc), $nfkc, "NFC($display_nfkc) eq $display_nfkc");
+    is(NFC($nfkd), $nfkc, "NFC($display_nfkd) eq $display_nfkc");
+
+    is(NFD($source), $nfd, "NFD($display_source) eq $display_nfd");
+    is(NFD($nfc), $nfd, "NFD($display_nfc) eq $display_nfd");
+    is(NFD($nfd), $nfd, "NFD($display_nfd) eq $display_nfd");
+    is(NFD($nfkc), $nfkd, "NFD($display_nfkc) eq $display_nfkd");
+    is(NFD($nfkd), $nfkd, "NFD($display_nfkd) eq $display_nfkd");
+
+    is(NFKC($source), $nfkc, "NFKC($display_source) eq $display_nfkc");
+    is(NFKC($nfc), $nfkc, "NFKC($display_nfc) eq $display_nfkc");
+    is(NFKC($nfd), $nfkc, "NFKC($display_nfd) eq $display_nfkc");
+    is(NFKC($nfkc), $nfkc, "NFKC($display_nfkc) eq $display_nfkc");
+    is(NFKC($nfkd), $nfkc, "NFKC($display_nfkd) eq $display_nfkc");
+
+    is(NFKD($source), $nfkd, "NFKD($display_source) eq $display_nfkd");
+    is(NFKD($nfc), $nfkd, "NFKD($display_nfc) eq $display_nfkd");
+    is(NFKD($nfd), $nfkd, "NFKD($display_nfd) eq $display_nfkd");
+    is(NFKD($nfkc), $nfkd, "NFKD($display_nfkc) eq $display_nfkd");
+    is(NFKD($nfkd), $nfkd, "NFKD($display_nfkd) eq $display_nfkd");
+}
+Test_N(q␇Ḋ␇, q␇Ḋ␇, q␇Ḋ␇, q␇Ḋ␇, q␇Ḋ␇);
+Test_N(q␇Ḍ␇, q␇Ḍ␇, q␇Ḍ␇, q␇Ḍ␇, q␇Ḍ␇);
+Test_N(q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇);
+Test_N(q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇);
+Test_N(q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇);
+Test_N(q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇, q␇Ḍ̇␇);
+Test_N(q␇Ḋ̛␇, q␇Ḋ̛␇, q␇Ḋ̛␇, q␇Ḋ̛␇, q␇Ḋ̛␇);
+Test_N(q␇Ḍ̛␇, q␇Ḍ̛␇, q␇Ḍ̛␇, q␇Ḍ̛␇, q␇Ḍ̛␇);
+Test_N(q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇);
+Test_N(q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇);
+Test_N(q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇);
+Test_N(q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇, q␇Ḍ̛̇␇);
+Test_N(q␇È␇, q␇È␇, q␇È␇, q␇È␇, q␇È␇);
+Test_N(q␇Ē␇, q␇Ē␇, q␇Ē␇, q␇Ē␇, q␇Ē␇);
+Test_N(q␇È␇, q␇È␇, q␇È␇, q␇È␇, q␇È␇);
+Test_N(q␇Ē␇, q␇Ē␇, q␇Ē␇, q␇Ē␇, q␇Ē␇);
+Test_N(q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇);
+Test_N(q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇);
+Test_N(q␇Ḕ̄␇, q␇Ḕ̄␇, q␇Ḕ̄␇, q␇Ḕ̄␇, q␇Ḕ̄␇);
+Test_N(q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇);
+Test_N(q␇È̄␇, q␇È̄␇, q␇È̄␇, q␇È̄␇, q␇È̄␇);
+Test_N(q␇ֱָֹ֑׃ְ֬֟␇, q␇ֱָֹ֑׃ְ֬֟␇, q␇ֱָֹ֑׃ְ֬֟␇, q␇ֱָֹ֑׃ְ֬֟␇, q␇ֱָֹ֑׃ְ֬֟␇);
+Test_N(q␇ְַּ֥֒׀֭ׄ␇, q␇ְַּ֥֒׀֭ׄ␇, q␇ְַּ֥֒׀֭ׄ␇, q␇ְַּ֥֒׀֭ׄ␇, q␇ְַּ֥֒׀֭ׄ␇);
+Test_N(q␇ᄀ각␇, q␇ᄀ각␇, q␇ᄀ각␇, q␇ᄀ각␇, q␇ᄀ각␇);
+Test_N(q␇ᄀ각ᆨ␇, q␇ᄀ각ᆨ␇, q␇ᄀ각ᆨ␇, q␇ᄀ각ᆨ␇, q␇ᄀ각ᆨ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇¨␇, q␇¨␇, q␇¨␇, q␇ ̈␇, q␇ ̈␇);
+Test_N(q␇ª␇, q␇ª␇, q␇ª␇, q␇a␇, q␇a␇);
+Test_N(q␇¯␇, q␇¯␇, q␇¯␇, q␇ ̄␇, q␇ ̄␇);
+Test_N(q␇²␇, q␇²␇, q␇²␇, q␇2␇, q␇2␇);
+Test_N(q␇³␇, q␇³␇, q␇³␇, q␇3␇, q␇3␇);
+Test_N(q␇´␇, q␇´␇, q␇´␇, q␇ ́␇, q␇ ́␇);
+Test_N(q␇µ␇, q␇µ␇, q␇µ␇, q␇μ␇, q␇μ␇);
+Test_N(q␇¸␇, q␇¸␇, q␇¸␇, q␇ ̧␇, q␇ ̧␇);
+Test_N(q␇¹␇, q␇¹␇, q␇¹␇, q␇1␇, q␇1␇);
+Test_N(q␇º␇, q␇º␇, q␇º␇, q␇o␇, q␇o␇);
+Test_N(q␇¼␇, q␇¼␇, q␇¼␇, q␇1⁄4␇, q␇1⁄4␇);
+Test_N(q␇½␇, q␇½␇, q␇½␇, q␇1⁄2␇, q␇1⁄2␇);
+Test_N(q␇¾␇, q␇¾␇, q␇¾␇, q␇3⁄4␇, q␇3⁄4␇);
+Test_N(q␇À␇, q␇À␇, q␇À␇, q␇À␇, q␇À␇);
+Test_N(q␇Á␇, q␇Á␇, q␇Á␇, q␇Á␇, q␇Á␇);
+Test_N(q␇Â␇, q␇Â␇, q␇Â␇, q␇Â␇, q␇Â␇);
+Test_N(q␇Ã␇, q␇Ã␇, q␇Ã␇, q␇Ã␇, q␇Ã␇);
+Test_N(q␇Ä␇, q␇Ä␇, q␇Ä␇, q␇Ä␇, q␇Ä␇);
+Test_N(q␇Å␇, q␇Å␇, q␇Å␇, q␇Å␇, q␇Å␇);
+Test_N(q␇Ç␇, q␇Ç␇, q␇Ç␇, q␇Ç␇, q␇Ç␇);
+Test_N(q␇È␇, q␇È␇, q␇È␇, q␇È␇, q␇È␇);
+Test_N(q␇É␇, q␇É␇, q␇É␇, q␇É␇, q␇É␇);
+Test_N(q␇Ê␇, q␇Ê␇, q␇Ê␇, q␇Ê␇, q␇Ê␇);
+Test_N(q␇Ë␇, q␇Ë␇, q␇Ë␇, q␇Ë␇, q␇Ë␇);
+Test_N(q␇Ì␇, q␇Ì␇, q␇Ì␇, q␇Ì␇, q␇Ì␇);
+Test_N(q␇Í␇, q␇Í␇, q␇Í␇, q␇Í␇, q␇Í␇);
+Test_N(q␇Î␇, q␇Î␇, q␇Î␇, q␇Î␇, q␇Î␇);
+Test_N(q␇Ï␇, q␇Ï␇, q␇Ï␇, q␇Ï␇, q␇Ï␇);
+Test_N(q␇Ñ␇, q␇Ñ␇, q␇Ñ␇, q␇Ñ␇, q␇Ñ␇);
+Test_N(q␇Ò␇, q␇Ò␇, q␇Ò␇, q␇Ò␇, q␇Ò␇);
+Test_N(q␇Ó␇, q␇Ó␇, q␇Ó␇, q␇Ó␇, q␇Ó␇);
+Test_N(q␇Ô␇, q␇Ô␇, q␇Ô␇, q␇Ô␇, q␇Ô␇);
+Test_N(q␇Õ␇, q␇Õ␇, q␇Õ␇, q␇Õ␇, q␇Õ␇);
+Test_N(q␇Ö␇, q␇Ö␇, q␇Ö␇, q␇Ö␇, q␇Ö␇);
+Test_N(q␇Ù␇, q␇Ù␇, q␇Ù␇, q␇Ù␇, q␇Ù␇);
+Test_N(q␇Ú␇, q␇Ú␇, q␇Ú␇, q␇Ú␇, q␇Ú␇);
+Test_N(q␇Û␇, q␇Û␇, q␇Û␇, q␇Û␇, q␇Û␇);
+Test_N(q␇Ü␇, q␇Ü␇, q␇Ü␇, q␇Ü␇, q␇Ü␇);
+Test_N(q␇Ý␇, q␇Ý␇, q␇Ý␇, q␇Ý␇, q␇Ý␇);
+Test_N(q␇à␇, q␇à␇, q␇à␇, q␇à␇, q␇à␇);
+Test_N(q␇á␇, q␇á␇, q␇á␇, q␇á␇, q␇á␇);
+Test_N(q␇â␇, q␇â␇, q␇â␇, q␇â␇, q␇â␇);
+Test_N(q␇ã␇, q␇ã␇, q␇ã␇, q␇ã␇, q␇ã␇);
+Test_N(q␇ä␇, q␇ä␇, q␇ä␇, q␇ä␇, q␇ä␇);
+Test_N(q␇å␇, q␇å␇, q␇å␇, q␇å␇, q␇å␇);
+Test_N(q␇ç␇, q␇ç␇, q␇ç␇, q␇ç␇, q␇ç␇);
+Test_N(q␇è␇, q␇è␇, q␇è␇, q␇è␇, q␇è␇);
+Test_N(q␇é␇, q␇é␇, q␇é␇, q␇é␇, q␇é␇);
+Test_N(q␇ê␇, q␇ê␇, q␇ê␇, q␇ê␇, q␇ê␇);
+Test_N(q␇ë␇, q␇ë␇, q␇ë␇, q␇ë␇, q␇ë␇);
+Test_N(q␇ì␇, q␇ì␇, q␇ì␇, q␇ì␇, q␇ì␇);
+Test_N(q␇í␇, q␇í␇, q␇í␇, q␇í␇, q␇í␇);
+Test_N(q␇î␇, q␇î␇, q␇î␇, q␇î␇, q␇î␇);
+Test_N(q␇ï␇, q␇ï␇, q␇ï␇, q␇ï␇, q␇ï␇);
+Test_N(q␇ñ␇, q␇ñ␇, q␇ñ␇, q␇ñ␇, q␇ñ␇);
+Test_N(q␇ò␇, q␇ò␇, q␇ò␇, q␇ò␇, q␇ò␇);
+Test_N(q␇ó␇, q␇ó␇, q␇ó␇, q␇ó␇, q␇ó␇);
+Test_N(q␇ô␇, q␇ô␇, q␇ô␇, q␇ô␇, q␇ô␇);
+Test_N(q␇õ␇, q␇õ␇, q␇õ␇, q␇õ␇, q␇õ␇);
+Test_N(q␇ö␇, q␇ö␇, q␇ö␇, q␇ö␇, q␇ö␇);
+Test_N(q␇ù␇, q␇ù␇, q␇ù␇, q␇ù␇, q␇ù␇);
+Test_N(q␇ú␇, q␇ú␇, q␇ú␇, q␇ú␇, q␇ú␇);
+Test_N(q␇û␇, q␇û␇, q␇û␇, q␇û␇, q␇û␇);
+Test_N(q␇ü␇, q␇ü␇, q␇ü␇, q␇ü␇, q␇ü␇);
+Test_N(q␇ý␇, q␇ý␇, q␇ý␇, q␇ý␇, q␇ý␇);
+Test_N(q␇ÿ␇, q␇ÿ␇, q␇ÿ␇, q␇ÿ␇, q␇ÿ␇);
+Test_N(q␇Ā␇, q␇Ā␇, q␇Ā␇, q␇Ā␇, q␇Ā␇);
+Test_N(q␇ā␇, q␇ā␇, q␇ā␇, q␇ā␇, q␇ā␇);
+Test_N(q␇Ă␇, q␇Ă␇, q␇Ă␇, q␇Ă␇, q␇Ă␇);
+Test_N(q␇ă␇, q␇ă␇, q␇ă␇, q␇ă␇, q␇ă␇);
+Test_N(q␇Ą␇, q␇Ą␇, q␇Ą␇, q␇Ą␇, q␇Ą␇);
+Test_N(q␇ą␇, q␇ą␇, q␇ą␇, q␇ą␇, q␇ą␇);
+Test_N(q␇Ć␇, q␇Ć␇, q␇Ć␇, q␇Ć␇, q␇Ć␇);
+Test_N(q␇ć␇, q␇ć␇, q␇ć␇, q␇ć␇, q␇ć␇);
+Test_N(q␇Ĉ␇, q␇Ĉ␇, q␇Ĉ␇, q␇Ĉ␇, q␇Ĉ␇);
+Test_N(q␇ĉ␇, q␇ĉ␇, q␇ĉ␇, q␇ĉ␇, q␇ĉ␇);
+Test_N(q␇Ċ␇, q␇Ċ␇, q␇Ċ␇, q␇Ċ␇, q␇Ċ␇);
+Test_N(q␇ċ␇, q␇ċ␇, q␇ċ␇, q␇ċ␇, q␇ċ␇);
+Test_N(q␇Č␇, q␇Č␇, q␇Č␇, q␇Č␇, q␇Č␇);
+Test_N(q␇č␇, q␇č␇, q␇č␇, q␇č␇, q␇č␇);
+Test_N(q␇Ď␇, q␇Ď␇, q␇Ď␇, q␇Ď␇, q␇Ď␇);
+Test_N(q␇ď␇, q␇ď␇, q␇ď␇, q␇ď␇, q␇ď␇);
+Test_N(q␇Ē␇, q␇Ē␇, q␇Ē␇, q␇Ē␇, q␇Ē␇);
+Test_N(q␇ē␇, q␇ē␇, q␇ē␇, q␇ē␇, q␇ē␇);
+Test_N(q␇Ĕ␇, q␇Ĕ␇, q␇Ĕ␇, q␇Ĕ␇, q␇Ĕ␇);
+Test_N(q␇ĕ␇, q␇ĕ␇, q␇ĕ␇, q␇ĕ␇, q␇ĕ␇);
+Test_N(q␇Ė␇, q␇Ė␇, q␇Ė␇, q␇Ė␇, q␇Ė␇);
+Test_N(q␇ė␇, q␇ė␇, q␇ė␇, q␇ė␇, q␇ė␇);
+Test_N(q␇Ę␇, q␇Ę␇, q␇Ę␇, q␇Ę␇, q␇Ę␇);
+Test_N(q␇ę␇, q␇ę␇, q␇ę␇, q␇ę␇, q␇ę␇);
+Test_N(q␇Ě␇, q␇Ě␇, q␇Ě␇, q␇Ě␇, q␇Ě␇);
+Test_N(q␇ě␇, q␇ě␇, q␇ě␇, q␇ě␇, q␇ě␇);
+Test_N(q␇Ĝ␇, q␇Ĝ␇, q␇Ĝ␇, q␇Ĝ␇, q␇Ĝ␇);
+Test_N(q␇ĝ␇, q␇ĝ␇, q␇ĝ␇, q␇ĝ␇, q␇ĝ␇);
+Test_N(q␇Ğ␇, q␇Ğ␇, q␇Ğ␇, q␇Ğ␇, q␇Ğ␇);
+Test_N(q␇ğ␇, q␇ğ␇, q␇ğ␇, q␇ğ␇, q␇ğ␇);
+Test_N(q␇Ġ␇, q␇Ġ␇, q␇Ġ␇, q␇Ġ␇, q␇Ġ␇);
+Test_N(q␇ġ␇, q␇ġ␇, q␇ġ␇, q␇ġ␇, q␇ġ␇);
+Test_N(q␇Ģ␇, q␇Ģ␇, q␇Ģ␇, q␇Ģ␇, q␇Ģ␇);
+Test_N(q␇ģ␇, q␇ģ␇, q␇ģ␇, q␇ģ␇, q␇ģ␇);
+Test_N(q␇Ĥ␇, q␇Ĥ␇, q␇Ĥ␇, q␇Ĥ␇, q␇Ĥ␇);
+Test_N(q␇ĥ␇, q␇ĥ␇, q␇ĥ␇, q␇ĥ␇, q␇ĥ␇);
+Test_N(q␇Ĩ␇, q␇Ĩ␇, q␇Ĩ␇, q␇Ĩ␇, q␇Ĩ␇);
+Test_N(q␇ĩ␇, q␇ĩ␇, q␇ĩ␇, q␇ĩ␇, q␇ĩ␇);
+Test_N(q␇Ī␇, q␇Ī␇, q␇Ī␇, q␇Ī␇, q␇Ī␇);
+Test_N(q␇ī␇, q␇ī␇, q␇ī␇, q␇ī␇, q␇ī␇);
+Test_N(q␇Ĭ␇, q␇Ĭ␇, q␇Ĭ␇, q␇Ĭ␇, q␇Ĭ␇);
+Test_N(q␇ĭ␇, q␇ĭ␇, q␇ĭ␇, q␇ĭ␇, q␇ĭ␇);
+Test_N(q␇Į␇, q␇Į␇, q␇Į␇, q␇Į␇, q␇Į␇);
+Test_N(q␇į␇, q␇į␇, q␇į␇, q␇į␇, q␇į␇);
+Test_N(q␇İ␇, q␇İ␇, q␇İ␇, q␇İ␇, q␇İ␇);
+Test_N(q␇IJ␇, q␇IJ␇, q␇IJ␇, q␇IJ␇, q␇IJ␇);
+Test_N(q␇ij␇, q␇ij␇, q␇ij␇, q␇ij␇, q␇ij␇);
+Test_N(q␇Ĵ␇, q␇Ĵ␇, q␇Ĵ␇, q␇Ĵ␇, q␇Ĵ␇);
+Test_N(q␇ĵ␇, q␇ĵ␇, q␇ĵ␇, q␇ĵ␇, q␇ĵ␇);
+Test_N(q␇Ķ␇, q␇Ķ␇, q␇Ķ␇, q␇Ķ␇, q␇Ķ␇);
+Test_N(q␇ķ␇, q␇ķ␇, q␇ķ␇, q␇ķ␇, q␇ķ␇);
+Test_N(q␇Ĺ␇, q␇Ĺ␇, q␇Ĺ␇, q␇Ĺ␇, q␇Ĺ␇);
+Test_N(q␇ĺ␇, q␇ĺ␇, q␇ĺ␇, q␇ĺ␇, q␇ĺ␇);
+Test_N(q␇Ļ␇, q␇Ļ␇, q␇Ļ␇, q␇Ļ␇, q␇Ļ␇);
+Test_N(q␇ļ␇, q␇ļ␇, q␇ļ␇, q␇ļ␇, q␇ļ␇);
+Test_N(q␇Ľ␇, q␇Ľ␇, q␇Ľ␇, q␇Ľ␇, q␇Ľ␇);
+Test_N(q␇ľ␇, q␇ľ␇, q␇ľ␇, q␇ľ␇, q␇ľ␇);
+Test_N(q␇Ŀ␇, q␇Ŀ␇, q␇Ŀ␇, q␇L·␇, q␇L·␇);
+Test_N(q␇ŀ␇, q␇ŀ␇, q␇ŀ␇, q␇l·␇, q␇l·␇);
+Test_N(q␇Ń␇, q␇Ń␇, q␇Ń␇, q␇Ń␇, q␇Ń␇);
+Test_N(q␇ń␇, q␇ń␇, q␇ń␇, q␇ń␇, q␇ń␇);
+Test_N(q␇Ņ␇, q␇Ņ␇, q␇Ņ␇, q␇Ņ␇, q␇Ņ␇);
+Test_N(q␇ņ␇, q␇ņ␇, q␇ņ␇, q␇ņ␇, q␇ņ␇);
+Test_N(q␇Ň␇, q␇Ň␇, q␇Ň␇, q␇Ň␇, q␇Ň␇);
+Test_N(q␇ň␇, q␇ň␇, q␇ň␇, q␇ň␇, q␇ň␇);
+Test_N(q␇ʼn␇, q␇ʼn␇, q␇ʼn␇, q␇ʼn␇, q␇ʼn␇);
+Test_N(q␇Ō␇, q␇Ō␇, q␇Ō␇, q␇Ō␇, q␇Ō␇);
+Test_N(q␇ō␇, q␇ō␇, q␇ō␇, q␇ō␇, q␇ō␇);
+Test_N(q␇Ŏ␇, q␇Ŏ␇, q␇Ŏ␇, q␇Ŏ␇, q␇Ŏ␇);
+Test_N(q␇ŏ␇, q␇ŏ␇, q␇ŏ␇, q␇ŏ␇, q␇ŏ␇);
+Test_N(q␇Ő␇, q␇Ő␇, q␇Ő␇, q␇Ő␇, q␇Ő␇);
+Test_N(q␇ő␇, q␇ő␇, q␇ő␇, q␇ő␇, q␇ő␇);
+Test_N(q␇Ŕ␇, q␇Ŕ␇, q␇Ŕ␇, q␇Ŕ␇, q␇Ŕ␇);
+Test_N(q␇ŕ␇, q␇ŕ␇, q␇ŕ␇, q␇ŕ␇, q␇ŕ␇);
+Test_N(q␇Ŗ␇, q␇Ŗ␇, q␇Ŗ␇, q␇Ŗ␇, q␇Ŗ␇);
+Test_N(q␇ŗ␇, q␇ŗ␇, q␇ŗ␇, q␇ŗ␇, q␇ŗ␇);
+Test_N(q␇Ř␇, q␇Ř␇, q␇Ř␇, q␇Ř␇, q␇Ř␇);
+Test_N(q␇ř␇, q␇ř␇, q␇ř␇, q␇ř␇, q␇ř␇);
+Test_N(q␇Ś␇, q␇Ś␇, q␇Ś␇, q␇Ś␇, q␇Ś␇);
+Test_N(q␇ś␇, q␇ś␇, q␇ś␇, q␇ś␇, q␇ś␇);
+Test_N(q␇Ŝ␇, q␇Ŝ␇, q␇Ŝ␇, q␇Ŝ␇, q␇Ŝ␇);
+Test_N(q␇ŝ␇, q␇ŝ␇, q␇ŝ␇, q␇ŝ␇, q␇ŝ␇);
+Test_N(q␇Ş␇, q␇Ş␇, q␇Ş␇, q␇Ş␇, q␇Ş␇);
+Test_N(q␇ş␇, q␇ş␇, q␇ş␇, q␇ş␇, q␇ş␇);
+Test_N(q␇Š␇, q␇Š␇, q␇Š␇, q␇Š␇, q␇Š␇);
+Test_N(q␇š␇, q␇š␇, q␇š␇, q␇š␇, q␇š␇);
+Test_N(q␇Ţ␇, q␇Ţ␇, q␇Ţ␇, q␇Ţ␇, q␇Ţ␇);
+Test_N(q␇ţ␇, q␇ţ␇, q␇ţ␇, q␇ţ␇, q␇ţ␇);
+Test_N(q␇Ť␇, q␇Ť␇, q␇Ť␇, q␇Ť␇, q␇Ť␇);
+Test_N(q␇ť␇, q␇ť␇, q␇ť␇, q␇ť␇, q␇ť␇);
+Test_N(q␇Ũ␇, q␇Ũ␇, q␇Ũ␇, q␇Ũ␇, q␇Ũ␇);
+Test_N(q␇ũ␇, q␇ũ␇, q␇ũ␇, q␇ũ␇, q␇ũ␇);
+Test_N(q␇Ū␇, q␇Ū␇, q␇Ū␇, q␇Ū␇, q␇Ū␇);
+Test_N(q␇ū␇, q␇ū␇, q␇ū␇, q␇ū␇, q␇ū␇);
+Test_N(q␇Ŭ␇, q␇Ŭ␇, q␇Ŭ␇, q␇Ŭ␇, q␇Ŭ␇);
+Test_N(q␇ŭ␇, q␇ŭ␇, q␇ŭ␇, q␇ŭ␇, q␇ŭ␇);
+Test_N(q␇Ů␇, q␇Ů␇, q␇Ů␇, q␇Ů␇, q␇Ů␇);
+Test_N(q␇ů␇, q␇ů␇, q␇ů␇, q␇ů␇, q␇ů␇);
+Test_N(q␇Ű␇, q␇Ű␇, q␇Ű␇, q␇Ű␇, q␇Ű␇);
+Test_N(q␇ű␇, q␇ű␇, q␇ű␇, q␇ű␇, q␇ű␇);
+Test_N(q␇Ų␇, q␇Ų␇, q␇Ų␇, q␇Ų␇, q␇Ų␇);
+Test_N(q␇ų␇, q␇ų␇, q␇ų␇, q␇ų␇, q␇ų␇);
+Test_N(q␇Ŵ␇, q␇Ŵ␇, q␇Ŵ␇, q␇Ŵ␇, q␇Ŵ␇);
+Test_N(q␇ŵ␇, q␇ŵ␇, q␇ŵ␇, q␇ŵ␇, q␇ŵ␇);
+Test_N(q␇Ŷ␇, q␇Ŷ␇, q␇Ŷ␇, q␇Ŷ␇, q␇Ŷ␇);
+Test_N(q␇ŷ␇, q␇ŷ␇, q␇ŷ␇, q␇ŷ␇, q␇ŷ␇);
+Test_N(q␇Ÿ␇, q␇Ÿ␇, q␇Ÿ␇, q␇Ÿ␇, q␇Ÿ␇);
+Test_N(q␇Ź␇, q␇Ź␇, q␇Ź␇, q␇Ź␇, q␇Ź␇);
+Test_N(q␇ź␇, q␇ź␇, q␇ź␇, q␇ź␇, q␇ź␇);
+Test_N(q␇Ż␇, q␇Ż␇, q␇Ż␇, q␇Ż␇, q␇Ż␇);
+Test_N(q␇ż␇, q␇ż␇, q␇ż␇, q␇ż␇, q␇ż␇);
+Test_N(q␇Ž␇, q␇Ž␇, q␇Ž␇, q␇Ž␇, q␇Ž␇);
+Test_N(q␇ž␇, q␇ž␇, q␇ž␇, q␇ž␇, q␇ž␇);
+Test_N(q␇ſ␇, q␇ſ␇, q␇ſ␇, q␇s␇, q␇s␇);
+Test_N(q␇Ơ␇, q␇Ơ␇, q␇Ơ␇, q␇Ơ␇, q␇Ơ␇);
+Test_N(q␇ơ␇, q␇ơ␇, q␇ơ␇, q␇ơ␇, q␇ơ␇);
+Test_N(q␇Ư␇, q␇Ư␇, q␇Ư␇, q␇Ư␇, q␇Ư␇);
+Test_N(q␇ư␇, q␇ư␇, q␇ư␇, q␇ư␇, q␇ư␇);
+Test_N(q␇DŽ␇, q␇DŽ␇, q␇DŽ␇, q␇DŽ␇, q␇DŽ␇);
+Test_N(q␇Dž␇, q␇Dž␇, q␇Dž␇, q␇Dž␇, q␇Dž␇);
+Test_N(q␇dž␇, q␇dž␇, q␇dž␇, q␇dž␇, q␇dž␇);
+Test_N(q␇LJ␇, q␇LJ␇, q␇LJ␇, q␇LJ␇, q␇LJ␇);
+Test_N(q␇Lj␇, q␇Lj␇, q␇Lj␇, q␇Lj␇, q␇Lj␇);
+Test_N(q␇lj␇, q␇lj␇, q␇lj␇, q␇lj␇, q␇lj␇);
+Test_N(q␇NJ␇, q␇NJ␇, q␇NJ␇, q␇NJ␇, q␇NJ␇);
+Test_N(q␇Nj␇, q␇Nj␇, q␇Nj␇, q␇Nj␇, q␇Nj␇);
+Test_N(q␇nj␇, q␇nj␇, q␇nj␇, q␇nj␇, q␇nj␇);
+Test_N(q␇Ǎ␇, q␇Ǎ␇, q␇Ǎ␇, q␇Ǎ␇, q␇Ǎ␇);
+Test_N(q␇ǎ␇, q␇ǎ␇, q␇ǎ␇, q␇ǎ␇, q␇ǎ␇);
+Test_N(q␇Ǐ␇, q␇Ǐ␇, q␇Ǐ␇, q␇Ǐ␇, q␇Ǐ␇);
+Test_N(q␇ǐ␇, q␇ǐ␇, q␇ǐ␇, q␇ǐ␇, q␇ǐ␇);
+Test_N(q␇Ǒ␇, q␇Ǒ␇, q␇Ǒ␇, q␇Ǒ␇, q␇Ǒ␇);
+Test_N(q␇ǒ␇, q␇ǒ␇, q␇ǒ␇, q␇ǒ␇, q␇ǒ␇);
+Test_N(q␇Ǔ␇, q␇Ǔ␇, q␇Ǔ␇, q␇Ǔ␇, q␇Ǔ␇);
+Test_N(q␇ǔ␇, q␇ǔ␇, q␇ǔ␇, q␇ǔ␇, q␇ǔ␇);
+Test_N(q␇Ǖ␇, q␇Ǖ␇, q␇Ǖ␇, q␇Ǖ␇, q␇Ǖ␇);
+Test_N(q␇ǖ␇, q␇ǖ␇, q␇ǖ␇, q␇ǖ␇, q␇ǖ␇);
+Test_N(q␇Ǘ␇, q␇Ǘ␇, q␇Ǘ␇, q␇Ǘ␇, q␇Ǘ␇);
+Test_N(q␇ǘ␇, q␇ǘ␇, q␇ǘ␇, q␇ǘ␇, q␇ǘ␇);
+Test_N(q␇Ǚ␇, q␇Ǚ␇, q␇Ǚ␇, q␇Ǚ␇, q␇Ǚ␇);
+Test_N(q␇ǚ␇, q␇ǚ␇, q␇ǚ␇, q␇ǚ␇, q␇ǚ␇);
+Test_N(q␇Ǜ␇, q␇Ǜ␇, q␇Ǜ␇, q␇Ǜ␇, q␇Ǜ␇);
+Test_N(q␇ǜ␇, q␇ǜ␇, q␇ǜ␇, q␇ǜ␇, q␇ǜ␇);
+Test_N(q␇Ǟ␇, q␇Ǟ␇, q␇Ǟ␇, q␇Ǟ␇, q␇Ǟ␇);
+Test_N(q␇ǟ␇, q␇ǟ␇, q␇ǟ␇, q␇ǟ␇, q␇ǟ␇);
+Test_N(q␇Ǡ␇, q␇Ǡ␇, q␇Ǡ␇, q␇Ǡ␇, q␇Ǡ␇);
+Test_N(q␇ǡ␇, q␇ǡ␇, q␇ǡ␇, q␇ǡ␇, q␇ǡ␇);
+Test_N(q␇Ǣ␇, q␇Ǣ␇, q␇Ǣ␇, q␇Ǣ␇, q␇Ǣ␇);
+Test_N(q␇ǣ␇, q␇ǣ␇, q␇ǣ␇, q␇ǣ␇, q␇ǣ␇);
+Test_N(q␇Ǧ␇, q␇Ǧ␇, q␇Ǧ␇, q␇Ǧ␇, q␇Ǧ␇);
+Test_N(q␇ǧ␇, q␇ǧ␇, q␇ǧ␇, q␇ǧ␇, q␇ǧ␇);
+Test_N(q␇Ǩ␇, q␇Ǩ␇, q␇Ǩ␇, q␇Ǩ␇, q␇Ǩ␇);
+Test_N(q␇ǩ␇, q␇ǩ␇, q␇ǩ␇, q␇ǩ␇, q␇ǩ␇);
+Test_N(q␇Ǫ␇, q␇Ǫ␇, q␇Ǫ␇, q␇Ǫ␇, q␇Ǫ␇);
+Test_N(q␇ǫ␇, q␇ǫ␇, q␇ǫ␇, q␇ǫ␇, q␇ǫ␇);
+Test_N(q␇Ǭ␇, q␇Ǭ␇, q␇Ǭ␇, q␇Ǭ␇, q␇Ǭ␇);
+Test_N(q␇ǭ␇, q␇ǭ␇, q␇ǭ␇, q␇ǭ␇, q␇ǭ␇);
+Test_N(q␇Ǯ␇, q␇Ǯ␇, q␇Ǯ␇, q␇Ǯ␇, q␇Ǯ␇);
+Test_N(q␇ǯ␇, q␇ǯ␇, q␇ǯ␇, q␇ǯ␇, q␇ǯ␇);
+Test_N(q␇ǰ␇, q␇ǰ␇, q␇ǰ␇, q␇ǰ␇, q␇ǰ␇);
+Test_N(q␇DZ␇, q␇DZ␇, q␇DZ␇, q␇DZ␇, q␇DZ␇);
+Test_N(q␇Dz␇, q␇Dz␇, q␇Dz␇, q␇Dz␇, q␇Dz␇);
+Test_N(q␇dz␇, q␇dz␇, q␇dz␇, q␇dz␇, q␇dz␇);
+Test_N(q␇Ǵ␇, q␇Ǵ␇, q␇Ǵ␇, q␇Ǵ␇, q␇Ǵ␇);
+Test_N(q␇ǵ␇, q␇ǵ␇, q␇ǵ␇, q␇ǵ␇, q␇ǵ␇);
+Test_N(q␇Ǹ␇, q␇Ǹ␇, q␇Ǹ␇, q␇Ǹ␇, q␇Ǹ␇);
+Test_N(q␇ǹ␇, q␇ǹ␇, q␇ǹ␇, q␇ǹ␇, q␇ǹ␇);
+Test_N(q␇Ǻ␇, q␇Ǻ␇, q␇Ǻ␇, q␇Ǻ␇, q␇Ǻ␇);
+Test_N(q␇ǻ␇, q␇ǻ␇, q␇ǻ␇, q␇ǻ␇, q␇ǻ␇);
+Test_N(q␇Ǽ␇, q␇Ǽ␇, q␇Ǽ␇, q␇Ǽ␇, q␇Ǽ␇);
+Test_N(q␇ǽ␇, q␇ǽ␇, q␇ǽ␇, q␇ǽ␇, q␇ǽ␇);
+Test_N(q␇Ǿ␇, q␇Ǿ␇, q␇Ǿ␇, q␇Ǿ␇, q␇Ǿ␇);
+Test_N(q␇ǿ␇, q␇ǿ␇, q␇ǿ␇, q␇ǿ␇, q␇ǿ␇);
+Test_N(q␇Ȁ␇, q␇Ȁ␇, q␇Ȁ␇, q␇Ȁ␇, q␇Ȁ␇);
+Test_N(q␇ȁ␇, q␇ȁ␇, q␇ȁ␇, q␇ȁ␇, q␇ȁ␇);
+Test_N(q␇Ȃ␇, q␇Ȃ␇, q␇Ȃ␇, q␇Ȃ␇, q␇Ȃ␇);
+Test_N(q␇ȃ␇, q␇ȃ␇, q␇ȃ␇, q␇ȃ␇, q␇ȃ␇);
+Test_N(q␇Ȅ␇, q␇Ȅ␇, q␇Ȅ␇, q␇Ȅ␇, q␇Ȅ␇);
+Test_N(q␇ȅ␇, q␇ȅ␇, q␇ȅ␇, q␇ȅ␇, q␇ȅ␇);
+Test_N(q␇Ȇ␇, q␇Ȇ␇, q␇Ȇ␇, q␇Ȇ␇, q␇Ȇ␇);
+Test_N(q␇ȇ␇, q␇ȇ␇, q␇ȇ␇, q␇ȇ␇, q␇ȇ␇);
+Test_N(q␇Ȉ␇, q␇Ȉ␇, q␇Ȉ␇, q␇Ȉ␇, q␇Ȉ␇);
+Test_N(q␇ȉ␇, q␇ȉ␇, q␇ȉ␇, q␇ȉ␇, q␇ȉ␇);
+Test_N(q␇Ȋ␇, q␇Ȋ␇, q␇Ȋ␇, q␇Ȋ␇, q␇Ȋ␇);
+Test_N(q␇ȋ␇, q␇ȋ␇, q␇ȋ␇, q␇ȋ␇, q␇ȋ␇);
+Test_N(q␇Ȍ␇, q␇Ȍ␇, q␇Ȍ␇, q␇Ȍ␇, q␇Ȍ␇);
+Test_N(q␇ȍ␇, q␇ȍ␇, q␇ȍ␇, q␇ȍ␇, q␇ȍ␇);
+Test_N(q␇Ȏ␇, q␇Ȏ␇, q␇Ȏ␇, q␇Ȏ␇, q␇Ȏ␇);
+Test_N(q␇ȏ␇, q␇ȏ␇, q␇ȏ␇, q␇ȏ␇, q␇ȏ␇);
+Test_N(q␇Ȑ␇, q␇Ȑ␇, q␇Ȑ␇, q␇Ȑ␇, q␇Ȑ␇);
+Test_N(q␇ȑ␇, q␇ȑ␇, q␇ȑ␇, q␇ȑ␇, q␇ȑ␇);
+Test_N(q␇Ȓ␇, q␇Ȓ␇, q␇Ȓ␇, q␇Ȓ␇, q␇Ȓ␇);
+Test_N(q␇ȓ␇, q␇ȓ␇, q␇ȓ␇, q␇ȓ␇, q␇ȓ␇);
+Test_N(q␇Ȕ␇, q␇Ȕ␇, q␇Ȕ␇, q␇Ȕ␇, q␇Ȕ␇);
+Test_N(q␇ȕ␇, q␇ȕ␇, q␇ȕ␇, q␇ȕ␇, q␇ȕ␇);
+Test_N(q␇Ȗ␇, q␇Ȗ␇, q␇Ȗ␇, q␇Ȗ␇, q␇Ȗ␇);
+Test_N(q␇ȗ␇, q␇ȗ␇, q␇ȗ␇, q␇ȗ␇, q␇ȗ␇);
+Test_N(q␇Ș␇, q␇Ș␇, q␇Ș␇, q␇Ș␇, q␇Ș␇);
+Test_N(q␇ș␇, q␇ș␇, q␇ș␇, q␇ș␇, q␇ș␇);
+Test_N(q␇Ț␇, q␇Ț␇, q␇Ț␇, q␇Ț␇, q␇Ț␇);
+Test_N(q␇ț␇, q␇ț␇, q␇ț␇, q␇ț␇, q␇ț␇);
+Test_N(q␇Ȟ␇, q␇Ȟ␇, q␇Ȟ␇, q␇Ȟ␇, q␇Ȟ␇);
+Test_N(q␇ȟ␇, q␇ȟ␇, q␇ȟ␇, q␇ȟ␇, q␇ȟ␇);
+Test_N(q␇Ȧ␇, q␇Ȧ␇, q␇Ȧ␇, q␇Ȧ␇, q␇Ȧ␇);
+Test_N(q␇ȧ␇, q␇ȧ␇, q␇ȧ␇, q␇ȧ␇, q␇ȧ␇);
+Test_N(q␇Ȩ␇, q␇Ȩ␇, q␇Ȩ␇, q␇Ȩ␇, q␇Ȩ␇);
+Test_N(q␇ȩ␇, q␇ȩ␇, q␇ȩ␇, q␇ȩ␇, q␇ȩ␇);
+Test_N(q␇Ȫ␇, q␇Ȫ␇, q␇Ȫ␇, q␇Ȫ␇, q␇Ȫ␇);
+Test_N(q␇ȫ␇, q␇ȫ␇, q␇ȫ␇, q␇ȫ␇, q␇ȫ␇);
+Test_N(q␇Ȭ␇, q␇Ȭ␇, q␇Ȭ␇, q␇Ȭ␇, q␇Ȭ␇);
+Test_N(q␇ȭ␇, q␇ȭ␇, q␇ȭ␇, q␇ȭ␇, q␇ȭ␇);
+Test_N(q␇Ȯ␇, q␇Ȯ␇, q␇Ȯ␇, q␇Ȯ␇, q␇Ȯ␇);
+Test_N(q␇ȯ␇, q␇ȯ␇, q␇ȯ␇, q␇ȯ␇, q␇ȯ␇);
+Test_N(q␇Ȱ␇, q␇Ȱ␇, q␇Ȱ␇, q␇Ȱ␇, q␇Ȱ␇);
+Test_N(q␇ȱ␇, q␇ȱ␇, q␇ȱ␇, q␇ȱ␇, q␇ȱ␇);
+Test_N(q␇Ȳ␇, q␇Ȳ␇, q␇Ȳ␇, q␇Ȳ␇, q␇Ȳ␇);
+Test_N(q␇ȳ␇, q␇ȳ␇, q␇ȳ␇, q␇ȳ␇, q␇ȳ␇);
+Test_N(q␇ʰ␇, q␇ʰ␇, q␇ʰ␇, q␇h␇, q␇h␇);
+Test_N(q␇ʱ␇, q␇ʱ␇, q␇ʱ␇, q␇ɦ␇, q␇ɦ␇);
+Test_N(q␇ʲ␇, q␇ʲ␇, q␇ʲ␇, q␇j␇, q␇j␇);
+Test_N(q␇ʳ␇, q␇ʳ␇, q␇ʳ␇, q␇r␇, q␇r␇);
+Test_N(q␇ʴ␇, q␇ʴ␇, q␇ʴ␇, q␇ɹ␇, q␇ɹ␇);
+Test_N(q␇ʵ␇, q␇ʵ␇, q␇ʵ␇, q␇ɻ␇, q␇ɻ␇);
+Test_N(q␇ʶ␇, q␇ʶ␇, q␇ʶ␇, q␇ʁ␇, q␇ʁ␇);
+Test_N(q␇ʷ␇, q␇ʷ␇, q␇ʷ␇, q␇w␇, q␇w␇);
+Test_N(q␇ʸ␇, q␇ʸ␇, q␇ʸ␇, q␇y␇, q␇y␇);
+Test_N(q␇˘␇, q␇˘␇, q␇˘␇, q␇ ̆␇, q␇ ̆␇);
+Test_N(q␇˙␇, q␇˙␇, q␇˙␇, q␇ ̇␇, q␇ ̇␇);
+Test_N(q␇˚␇, q␇˚␇, q␇˚␇, q␇ ̊␇, q␇ ̊␇);
+Test_N(q␇˛␇, q␇˛␇, q␇˛␇, q␇ ̨␇, q␇ ̨␇);
+Test_N(q␇˜␇, q␇˜␇, q␇˜␇, q␇ ̃␇, q␇ ̃␇);
+Test_N(q␇˝␇, q␇˝␇, q␇˝␇, q␇ ̋␇, q␇ ̋␇);
+Test_N(q␇ˠ␇, q␇ˠ␇, q␇ˠ␇, q␇ɣ␇, q␇ɣ␇);
+Test_N(q␇ˡ␇, q␇ˡ␇, q␇ˡ␇, q␇l␇, q␇l␇);
+Test_N(q␇ˢ␇, q␇ˢ␇, q␇ˢ␇, q␇s␇, q␇s␇);
+Test_N(q␇ˣ␇, q␇ˣ␇, q␇ˣ␇, q␇x␇, q␇x␇);
+Test_N(q␇ˤ␇, q␇ˤ␇, q␇ˤ␇, q␇ʕ␇, q␇ʕ␇);
+Test_N(q␇̀␇, q␇̀␇, q␇̀␇, q␇̀␇, q␇̀␇);
+Test_N(q␇́␇, q␇́␇, q␇́␇, q␇́␇, q␇́␇);
+Test_N(q␇̓␇, q␇̓␇, q␇̓␇, q␇̓␇, q␇̓␇);
+Test_N(q␇̈́␇, q␇̈́␇, q␇̈́␇, q␇̈́␇, q␇̈́␇);
+Test_N(q␇ʹ␇, q␇ʹ␇, q␇ʹ␇, q␇ʹ␇, q␇ʹ␇);
+Test_N(q␇ͺ␇, q␇ͺ␇, q␇ͺ␇, q␇ ͅ␇, q␇ ͅ␇);
+Test_N(q␇;␇, q␇;␇, q␇;␇, q␇;␇, q␇;␇);
+Test_N(q␇΄␇, q␇΄␇, q␇΄␇, q␇ ́␇, q␇ ́␇);
+Test_N(q␇΅␇, q␇΅␇, q␇΅␇, q␇ ̈́␇, q␇ ̈́␇);
+Test_N(q␇Ά␇, q␇Ά␇, q␇Ά␇, q␇Ά␇, q␇Ά␇);
+Test_N(q␇·␇, q␇·␇, q␇·␇, q␇·␇, q␇·␇);
+Test_N(q␇Έ␇, q␇Έ␇, q␇Έ␇, q␇Έ␇, q␇Έ␇);
+Test_N(q␇Ή␇, q␇Ή␇, q␇Ή␇, q␇Ή␇, q␇Ή␇);
+Test_N(q␇Ί␇, q␇Ί␇, q␇Ί␇, q␇Ί␇, q␇Ί␇);
+Test_N(q␇Ό␇, q␇Ό␇, q␇Ό␇, q␇Ό␇, q␇Ό␇);
+Test_N(q␇Ύ␇, q␇Ύ␇, q␇Ύ␇, q␇Ύ␇, q␇Ύ␇);
+Test_N(q␇Ώ␇, q␇Ώ␇, q␇Ώ␇, q␇Ώ␇, q␇Ώ␇);
+Test_N(q␇ΐ␇, q␇ΐ␇, q␇ΐ␇, q␇ΐ␇, q␇ΐ␇);
+Test_N(q␇Ϊ␇, q␇Ϊ␇, q␇Ϊ␇, q␇Ϊ␇, q␇Ϊ␇);
+Test_N(q␇Ϋ␇, q␇Ϋ␇, q␇Ϋ␇, q␇Ϋ␇, q␇Ϋ␇);
+Test_N(q␇ά␇, q␇ά␇, q␇ά␇, q␇ά␇, q␇ά␇);
+Test_N(q␇έ␇, q␇έ␇, q␇έ␇, q␇έ␇, q␇έ␇);
+Test_N(q␇ή␇, q␇ή␇, q␇ή␇, q␇ή␇, q␇ή␇);
+Test_N(q␇ί␇, q␇ί␇, q␇ί␇, q␇ί␇, q␇ί␇);
+Test_N(q␇ΰ␇, q␇ΰ␇, q␇ΰ␇, q␇ΰ␇, q␇ΰ␇);
+Test_N(q␇ϊ␇, q␇ϊ␇, q␇ϊ␇, q␇ϊ␇, q␇ϊ␇);
+Test_N(q␇ϋ␇, q␇ϋ␇, q␇ϋ␇, q␇ϋ␇, q␇ϋ␇);
+Test_N(q␇ό␇, q␇ό␇, q␇ό␇, q␇ό␇, q␇ό␇);
+Test_N(q␇ύ␇, q␇ύ␇, q␇ύ␇, q␇ύ␇, q␇ύ␇);
+Test_N(q␇ώ␇, q␇ώ␇, q␇ώ␇, q␇ώ␇, q␇ώ␇);
+Test_N(q␇ϐ␇, q␇ϐ␇, q␇ϐ␇, q␇β␇, q␇β␇);
+Test_N(q␇ϑ␇, q␇ϑ␇, q␇ϑ␇, q␇θ␇, q␇θ␇);
+Test_N(q␇ϒ␇, q␇ϒ␇, q␇ϒ␇, q␇Υ␇, q␇Υ␇);
+Test_N(q␇ϓ␇, q␇ϓ␇, q␇ϓ␇, q␇Ύ␇, q␇Ύ␇);
+Test_N(q␇ϔ␇, q␇ϔ␇, q␇ϔ␇, q␇Ϋ␇, q␇Ϋ␇);
+Test_N(q␇ϕ␇, q␇ϕ␇, q␇ϕ␇, q␇φ␇, q␇φ␇);
+Test_N(q␇ϖ␇, q␇ϖ␇, q␇ϖ␇, q␇π␇, q␇π␇);
+Test_N(q␇ϰ␇, q␇ϰ␇, q␇ϰ␇, q␇κ␇, q␇κ␇);
+Test_N(q␇ϱ␇, q␇ϱ␇, q␇ϱ␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇ϲ␇, q␇ϲ␇, q␇ϲ␇, q␇ς␇, q␇ς␇);
+Test_N(q␇ϴ␇, q␇ϴ␇, q␇ϴ␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇ϵ␇, q␇ϵ␇, q␇ϵ␇, q␇ε␇, q␇ε␇);
+Test_N(q␇Ϲ␇, q␇Ϲ␇, q␇Ϲ␇, q␇Σ␇, q␇Σ␇);
+Test_N(q␇Ѐ␇, q␇Ѐ␇, q␇Ѐ␇, q␇Ѐ␇, q␇Ѐ␇);
+Test_N(q␇Ё␇, q␇Ё␇, q␇Ё␇, q␇Ё␇, q␇Ё␇);
+Test_N(q␇Ѓ␇, q␇Ѓ␇, q␇Ѓ␇, q␇Ѓ␇, q␇Ѓ␇);
+Test_N(q␇Ї␇, q␇Ї␇, q␇Ї␇, q␇Ї␇, q␇Ї␇);
+Test_N(q␇Ќ␇, q␇Ќ␇, q␇Ќ␇, q␇Ќ␇, q␇Ќ␇);
+Test_N(q␇Ѝ␇, q␇Ѝ␇, q␇Ѝ␇, q␇Ѝ␇, q␇Ѝ␇);
+Test_N(q␇Ў␇, q␇Ў␇, q␇Ў␇, q␇Ў␇, q␇Ў␇);
+Test_N(q␇Й␇, q␇Й␇, q␇Й␇, q␇Й␇, q␇Й␇);
+Test_N(q␇й␇, q␇й␇, q␇й␇, q␇й␇, q␇й␇);
+Test_N(q␇ѐ␇, q␇ѐ␇, q␇ѐ␇, q␇ѐ␇, q␇ѐ␇);
+Test_N(q␇ё␇, q␇ё␇, q␇ё␇, q␇ё␇, q␇ё␇);
+Test_N(q␇ѓ␇, q␇ѓ␇, q␇ѓ␇, q␇ѓ␇, q␇ѓ␇);
+Test_N(q␇ї␇, q␇ї␇, q␇ї␇, q␇ї␇, q␇ї␇);
+Test_N(q␇ќ␇, q␇ќ␇, q␇ќ␇, q␇ќ␇, q␇ќ␇);
+Test_N(q␇ѝ␇, q␇ѝ␇, q␇ѝ␇, q␇ѝ␇, q␇ѝ␇);
+Test_N(q␇ў␇, q␇ў␇, q␇ў␇, q␇ў␇, q␇ў␇);
+Test_N(q␇Ѷ␇, q␇Ѷ␇, q␇Ѷ␇, q␇Ѷ␇, q␇Ѷ␇);
+Test_N(q␇ѷ␇, q␇ѷ␇, q␇ѷ␇, q␇ѷ␇, q␇ѷ␇);
+Test_N(q␇Ӂ␇, q␇Ӂ␇, q␇Ӂ␇, q␇Ӂ␇, q␇Ӂ␇);
+Test_N(q␇ӂ␇, q␇ӂ␇, q␇ӂ␇, q␇ӂ␇, q␇ӂ␇);
+Test_N(q␇Ӑ␇, q␇Ӑ␇, q␇Ӑ␇, q␇Ӑ␇, q␇Ӑ␇);
+Test_N(q␇ӑ␇, q␇ӑ␇, q␇ӑ␇, q␇ӑ␇, q␇ӑ␇);
+Test_N(q␇Ӓ␇, q␇Ӓ␇, q␇Ӓ␇, q␇Ӓ␇, q␇Ӓ␇);
+Test_N(q␇ӓ␇, q␇ӓ␇, q␇ӓ␇, q␇ӓ␇, q␇ӓ␇);
+Test_N(q␇Ӗ␇, q␇Ӗ␇, q␇Ӗ␇, q␇Ӗ␇, q␇Ӗ␇);
+Test_N(q␇ӗ␇, q␇ӗ␇, q␇ӗ␇, q␇ӗ␇, q␇ӗ␇);
+Test_N(q␇Ӛ␇, q␇Ӛ␇, q␇Ӛ␇, q␇Ӛ␇, q␇Ӛ␇);
+Test_N(q␇ӛ␇, q␇ӛ␇, q␇ӛ␇, q␇ӛ␇, q␇ӛ␇);
+Test_N(q␇Ӝ␇, q␇Ӝ␇, q␇Ӝ␇, q␇Ӝ␇, q␇Ӝ␇);
+Test_N(q␇ӝ␇, q␇ӝ␇, q␇ӝ␇, q␇ӝ␇, q␇ӝ␇);
+Test_N(q␇Ӟ␇, q␇Ӟ␇, q␇Ӟ␇, q␇Ӟ␇, q␇Ӟ␇);
+Test_N(q␇ӟ␇, q␇ӟ␇, q␇ӟ␇, q␇ӟ␇, q␇ӟ␇);
+Test_N(q␇Ӣ␇, q␇Ӣ␇, q␇Ӣ␇, q␇Ӣ␇, q␇Ӣ␇);
+Test_N(q␇ӣ␇, q␇ӣ␇, q␇ӣ␇, q␇ӣ␇, q␇ӣ␇);
+Test_N(q␇Ӥ␇, q␇Ӥ␇, q␇Ӥ␇, q␇Ӥ␇, q␇Ӥ␇);
+Test_N(q␇ӥ␇, q␇ӥ␇, q␇ӥ␇, q␇ӥ␇, q␇ӥ␇);
+Test_N(q␇Ӧ␇, q␇Ӧ␇, q␇Ӧ␇, q␇Ӧ␇, q␇Ӧ␇);
+Test_N(q␇ӧ␇, q␇ӧ␇, q␇ӧ␇, q␇ӧ␇, q␇ӧ␇);
+Test_N(q␇Ӫ␇, q␇Ӫ␇, q␇Ӫ␇, q␇Ӫ␇, q␇Ӫ␇);
+Test_N(q␇ӫ␇, q␇ӫ␇, q␇ӫ␇, q␇ӫ␇, q␇ӫ␇);
+Test_N(q␇Ӭ␇, q␇Ӭ␇, q␇Ӭ␇, q␇Ӭ␇, q␇Ӭ␇);
+Test_N(q␇ӭ␇, q␇ӭ␇, q␇ӭ␇, q␇ӭ␇, q␇ӭ␇);
+Test_N(q␇Ӯ␇, q␇Ӯ␇, q␇Ӯ␇, q␇Ӯ␇, q␇Ӯ␇);
+Test_N(q␇ӯ␇, q␇ӯ␇, q␇ӯ␇, q␇ӯ␇, q␇ӯ␇);
+Test_N(q␇Ӱ␇, q␇Ӱ␇, q␇Ӱ␇, q␇Ӱ␇, q␇Ӱ␇);
+Test_N(q␇ӱ␇, q␇ӱ␇, q␇ӱ␇, q␇ӱ␇, q␇ӱ␇);
+Test_N(q␇Ӳ␇, q␇Ӳ␇, q␇Ӳ␇, q␇Ӳ␇, q␇Ӳ␇);
+Test_N(q␇ӳ␇, q␇ӳ␇, q␇ӳ␇, q␇ӳ␇, q␇ӳ␇);
+Test_N(q␇Ӵ␇, q␇Ӵ␇, q␇Ӵ␇, q␇Ӵ␇, q␇Ӵ␇);
+Test_N(q␇ӵ␇, q␇ӵ␇, q␇ӵ␇, q␇ӵ␇, q␇ӵ␇);
+Test_N(q␇Ӹ␇, q␇Ӹ␇, q␇Ӹ␇, q␇Ӹ␇, q␇Ӹ␇);
+Test_N(q␇ӹ␇, q␇ӹ␇, q␇ӹ␇, q␇ӹ␇, q␇ӹ␇);
+Test_N(q␇և␇, q␇և␇, q␇և␇, q␇եւ␇, q␇եւ␇);
+Test_N(q␇آ␇, q␇آ␇, q␇آ␇, q␇آ␇, q␇آ␇);
+Test_N(q␇أ␇, q␇أ␇, q␇أ␇, q␇أ␇, q␇أ␇);
+Test_N(q␇ؤ␇, q␇ؤ␇, q␇ؤ␇, q␇ؤ␇, q␇ؤ␇);
+Test_N(q␇إ␇, q␇إ␇, q␇إ␇, q␇إ␇, q␇إ␇);
+Test_N(q␇ئ␇, q␇ئ␇, q␇ئ␇, q␇ئ␇, q␇ئ␇);
+Test_N(q␇ٵ␇, q␇ٵ␇, q␇ٵ␇, q␇اٴ␇, q␇اٴ␇);
+Test_N(q␇ٶ␇, q␇ٶ␇, q␇ٶ␇, q␇وٴ␇, q␇وٴ␇);
+Test_N(q␇ٷ␇, q␇ٷ␇, q␇ٷ␇, q␇ۇٴ␇, q␇ۇٴ␇);
+Test_N(q␇ٸ␇, q␇ٸ␇, q␇ٸ␇, q␇يٴ␇, q␇يٴ␇);
+Test_N(q␇ۀ␇, q␇ۀ␇, q␇ۀ␇, q␇ۀ␇, q␇ۀ␇);
+Test_N(q␇ۂ␇, q␇ۂ␇, q␇ۂ␇, q␇ۂ␇, q␇ۂ␇);
+Test_N(q␇ۓ␇, q␇ۓ␇, q␇ۓ␇, q␇ۓ␇, q␇ۓ␇);
+Test_N(q␇ऩ␇, q␇ऩ␇, q␇ऩ␇, q␇ऩ␇, q␇ऩ␇);
+Test_N(q␇ऱ␇, q␇ऱ␇, q␇ऱ␇, q␇ऱ␇, q␇ऱ␇);
+Test_N(q␇ऴ␇, q␇ऴ␇, q␇ऴ␇, q␇ऴ␇, q␇ऴ␇);
+Test_N(q␇क़␇, q␇क़␇, q␇क़␇, q␇क़␇, q␇क़␇);
+Test_N(q␇ख़␇, q␇ख़␇, q␇ख़␇, q␇ख़␇, q␇ख़␇);
+Test_N(q␇ग़␇, q␇ग़␇, q␇ग़␇, q␇ग़␇, q␇ग़␇);
+Test_N(q␇ज़␇, q␇ज़␇, q␇ज़␇, q␇ज़␇, q␇ज़␇);
+Test_N(q␇ड़␇, q␇ड़␇, q␇ड़␇, q␇ड़␇, q␇ड़␇);
+Test_N(q␇ढ़␇, q␇ढ़␇, q␇ढ़␇, q␇ढ़␇, q␇ढ़␇);
+Test_N(q␇फ़␇, q␇फ़␇, q␇फ़␇, q␇फ़␇, q␇फ़␇);
+Test_N(q␇य़␇, q␇य़␇, q␇य़␇, q␇य़␇, q␇य़␇);
+Test_N(q␇ো␇, q␇ো␇, q␇ো␇, q␇ো␇, q␇ো␇);
+Test_N(q␇ৌ␇, q␇ৌ␇, q␇ৌ␇, q␇ৌ␇, q␇ৌ␇);
+Test_N(q␇ড়␇, q␇ড়␇, q␇ড়␇, q␇ড়␇, q␇ড়␇);
+Test_N(q␇ঢ়␇, q␇ঢ়␇, q␇ঢ়␇, q␇ঢ়␇, q␇ঢ়␇);
+Test_N(q␇য়␇, q␇য়␇, q␇য়␇, q␇য়␇, q␇য়␇);
+Test_N(q␇ਲ਼␇, q␇ਲ਼␇, q␇ਲ਼␇, q␇ਲ਼␇, q␇ਲ਼␇);
+Test_N(q␇ਸ਼␇, q␇ਸ਼␇, q␇ਸ਼␇, q␇ਸ਼␇, q␇ਸ਼␇);
+Test_N(q␇ਖ਼␇, q␇ਖ਼␇, q␇ਖ਼␇, q␇ਖ਼␇, q␇ਖ਼␇);
+Test_N(q␇ਗ਼␇, q␇ਗ਼␇, q␇ਗ਼␇, q␇ਗ਼␇, q␇ਗ਼␇);
+Test_N(q␇ਜ਼␇, q␇ਜ਼␇, q␇ਜ਼␇, q␇ਜ਼␇, q␇ਜ਼␇);
+Test_N(q␇ਫ਼␇, q␇ਫ਼␇, q␇ਫ਼␇, q␇ਫ਼␇, q␇ਫ਼␇);
+Test_N(q␇ୈ␇, q␇ୈ␇, q␇ୈ␇, q␇ୈ␇, q␇ୈ␇);
+Test_N(q␇ୋ␇, q␇ୋ␇, q␇ୋ␇, q␇ୋ␇, q␇ୋ␇);
+Test_N(q␇ୌ␇, q␇ୌ␇, q␇ୌ␇, q␇ୌ␇, q␇ୌ␇);
+Test_N(q␇ଡ଼␇, q␇ଡ଼␇, q␇ଡ଼␇, q␇ଡ଼␇, q␇ଡ଼␇);
+Test_N(q␇ଢ଼␇, q␇ଢ଼␇, q␇ଢ଼␇, q␇ଢ଼␇, q␇ଢ଼␇);
+Test_N(q␇ஔ␇, q␇ஔ␇, q␇ஔ␇, q␇ஔ␇, q␇ஔ␇);
+Test_N(q␇ொ␇, q␇ொ␇, q␇ொ␇, q␇ொ␇, q␇ொ␇);
+Test_N(q␇ோ␇, q␇ோ␇, q␇ோ␇, q␇ோ␇, q␇ோ␇);
+Test_N(q␇ௌ␇, q␇ௌ␇, q␇ௌ␇, q␇ௌ␇, q␇ௌ␇);
+Test_N(q␇ై␇, q␇ై␇, q␇ై␇, q␇ై␇, q␇ై␇);
+Test_N(q␇ೀ␇, q␇ೀ␇, q␇ೀ␇, q␇ೀ␇, q␇ೀ␇);
+Test_N(q␇ೇ␇, q␇ೇ␇, q␇ೇ␇, q␇ೇ␇, q␇ೇ␇);
+Test_N(q␇ೈ␇, q␇ೈ␇, q␇ೈ␇, q␇ೈ␇, q␇ೈ␇);
+Test_N(q␇ೊ␇, q␇ೊ␇, q␇ೊ␇, q␇ೊ␇, q␇ೊ␇);
+Test_N(q␇ೋ␇, q␇ೋ␇, q␇ೋ␇, q␇ೋ␇, q␇ೋ␇);
+Test_N(q␇ൊ␇, q␇ൊ␇, q␇ൊ␇, q␇ൊ␇, q␇ൊ␇);
+Test_N(q␇ോ␇, q␇ോ␇, q␇ോ␇, q␇ോ␇, q␇ോ␇);
+Test_N(q␇ൌ␇, q␇ൌ␇, q␇ൌ␇, q␇ൌ␇, q␇ൌ␇);
+Test_N(q␇ේ␇, q␇ේ␇, q␇ේ␇, q␇ේ␇, q␇ේ␇);
+Test_N(q␇ො␇, q␇ො␇, q␇ො␇, q␇ො␇, q␇ො␇);
+Test_N(q␇ෝ␇, q␇ෝ␇, q␇ෝ␇, q␇ෝ␇, q␇ෝ␇);
+Test_N(q␇ෞ␇, q␇ෞ␇, q␇ෞ␇, q␇ෞ␇, q␇ෞ␇);
+Test_N(q␇ำ␇, q␇ำ␇, q␇ำ␇, q␇ํา␇, q␇ํา␇);
+Test_N(q␇ຳ␇, q␇ຳ␇, q␇ຳ␇, q␇ໍາ␇, q␇ໍາ␇);
+Test_N(q␇ໜ␇, q␇ໜ␇, q␇ໜ␇, q␇ຫນ␇, q␇ຫນ␇);
+Test_N(q␇ໝ␇, q␇ໝ␇, q␇ໝ␇, q␇ຫມ␇, q␇ຫມ␇);
+Test_N(q␇༌␇, q␇༌␇, q␇༌␇, q␇་␇, q␇་␇);
+Test_N(q␇གྷ␇, q␇གྷ␇, q␇གྷ␇, q␇གྷ␇, q␇གྷ␇);
+Test_N(q␇ཌྷ␇, q␇ཌྷ␇, q␇ཌྷ␇, q␇ཌྷ␇, q␇ཌྷ␇);
+Test_N(q␇དྷ␇, q␇དྷ␇, q␇དྷ␇, q␇དྷ␇, q␇དྷ␇);
+Test_N(q␇བྷ␇, q␇བྷ␇, q␇བྷ␇, q␇བྷ␇, q␇བྷ␇);
+Test_N(q␇ཛྷ␇, q␇ཛྷ␇, q␇ཛྷ␇, q␇ཛྷ␇, q␇ཛྷ␇);
+Test_N(q␇ཀྵ␇, q␇ཀྵ␇, q␇ཀྵ␇, q␇ཀྵ␇, q␇ཀྵ␇);
+Test_N(q␇ཱི␇, q␇ཱི␇, q␇ཱི␇, q␇ཱི␇, q␇ཱི␇);
+Test_N(q␇ཱུ␇, q␇ཱུ␇, q␇ཱུ␇, q␇ཱུ␇, q␇ཱུ␇);
+Test_N(q␇ྲྀ␇, q␇ྲྀ␇, q␇ྲྀ␇, q␇ྲྀ␇, q␇ྲྀ␇);
+Test_N(q␇ཷ␇, q␇ཷ␇, q␇ཷ␇, q␇ྲཱྀ␇, q␇ྲཱྀ␇);
+Test_N(q␇ླྀ␇, q␇ླྀ␇, q␇ླྀ␇, q␇ླྀ␇, q␇ླྀ␇);
+Test_N(q␇ཹ␇, q␇ཹ␇, q␇ཹ␇, q␇ླཱྀ␇, q␇ླཱྀ␇);
+Test_N(q␇ཱྀ␇, q␇ཱྀ␇, q␇ཱྀ␇, q␇ཱྀ␇, q␇ཱྀ␇);
+Test_N(q␇ྒྷ␇, q␇ྒྷ␇, q␇ྒྷ␇, q␇ྒྷ␇, q␇ྒྷ␇);
+Test_N(q␇ྜྷ␇, q␇ྜྷ␇, q␇ྜྷ␇, q␇ྜྷ␇, q␇ྜྷ␇);
+Test_N(q␇ྡྷ␇, q␇ྡྷ␇, q␇ྡྷ␇, q␇ྡྷ␇, q␇ྡྷ␇);
+Test_N(q␇ྦྷ␇, q␇ྦྷ␇, q␇ྦྷ␇, q␇ྦྷ␇, q␇ྦྷ␇);
+Test_N(q␇ྫྷ␇, q␇ྫྷ␇, q␇ྫྷ␇, q␇ྫྷ␇, q␇ྫྷ␇);
+Test_N(q␇ྐྵ␇, q␇ྐྵ␇, q␇ྐྵ␇, q␇ྐྵ␇, q␇ྐྵ␇);
+Test_N(q␇ဦ␇, q␇ဦ␇, q␇ဦ␇, q␇ဦ␇, q␇ဦ␇);
+Test_N(q␇ჼ␇, q␇ჼ␇, q␇ჼ␇, q␇ნ␇, q␇ნ␇);
+Test_N(q␇ᬆ␇, q␇ᬆ␇, q␇ᬆ␇, q␇ᬆ␇, q␇ᬆ␇);
+Test_N(q␇ᬈ␇, q␇ᬈ␇, q␇ᬈ␇, q␇ᬈ␇, q␇ᬈ␇);
+Test_N(q␇ᬊ␇, q␇ᬊ␇, q␇ᬊ␇, q␇ᬊ␇, q␇ᬊ␇);
+Test_N(q␇ᬌ␇, q␇ᬌ␇, q␇ᬌ␇, q␇ᬌ␇, q␇ᬌ␇);
+Test_N(q␇ᬎ␇, q␇ᬎ␇, q␇ᬎ␇, q␇ᬎ␇, q␇ᬎ␇);
+Test_N(q␇ᬒ␇, q␇ᬒ␇, q␇ᬒ␇, q␇ᬒ␇, q␇ᬒ␇);
+Test_N(q␇ᬻ␇, q␇ᬻ␇, q␇ᬻ␇, q␇ᬻ␇, q␇ᬻ␇);
+Test_N(q␇ᬽ␇, q␇ᬽ␇, q␇ᬽ␇, q␇ᬽ␇, q␇ᬽ␇);
+Test_N(q␇ᭀ␇, q␇ᭀ␇, q␇ᭀ␇, q␇ᭀ␇, q␇ᭀ␇);
+Test_N(q␇ᭁ␇, q␇ᭁ␇, q␇ᭁ␇, q␇ᭁ␇, q␇ᭁ␇);
+Test_N(q␇ᭃ␇, q␇ᭃ␇, q␇ᭃ␇, q␇ᭃ␇, q␇ᭃ␇);
+Test_N(q␇ᴬ␇, q␇ᴬ␇, q␇ᴬ␇, q␇A␇, q␇A␇);
+Test_N(q␇ᴭ␇, q␇ᴭ␇, q␇ᴭ␇, q␇Æ␇, q␇Æ␇);
+Test_N(q␇ᴮ␇, q␇ᴮ␇, q␇ᴮ␇, q␇B␇, q␇B␇);
+Test_N(q␇ᴰ␇, q␇ᴰ␇, q␇ᴰ␇, q␇D␇, q␇D␇);
+Test_N(q␇ᴱ␇, q␇ᴱ␇, q␇ᴱ␇, q␇E␇, q␇E␇);
+Test_N(q␇ᴲ␇, q␇ᴲ␇, q␇ᴲ␇, q␇Ǝ␇, q␇Ǝ␇);
+Test_N(q␇ᴳ␇, q␇ᴳ␇, q␇ᴳ␇, q␇G␇, q␇G␇);
+Test_N(q␇ᴴ␇, q␇ᴴ␇, q␇ᴴ␇, q␇H␇, q␇H␇);
+Test_N(q␇ᴵ␇, q␇ᴵ␇, q␇ᴵ␇, q␇I␇, q␇I␇);
+Test_N(q␇ᴶ␇, q␇ᴶ␇, q␇ᴶ␇, q␇J␇, q␇J␇);
+Test_N(q␇ᴷ␇, q␇ᴷ␇, q␇ᴷ␇, q␇K␇, q␇K␇);
+Test_N(q␇ᴸ␇, q␇ᴸ␇, q␇ᴸ␇, q␇L␇, q␇L␇);
+Test_N(q␇ᴹ␇, q␇ᴹ␇, q␇ᴹ␇, q␇M␇, q␇M␇);
+Test_N(q␇ᴺ␇, q␇ᴺ␇, q␇ᴺ␇, q␇N␇, q␇N␇);
+Test_N(q␇ᴼ␇, q␇ᴼ␇, q␇ᴼ␇, q␇O␇, q␇O␇);
+Test_N(q␇ᴽ␇, q␇ᴽ␇, q␇ᴽ␇, q␇Ȣ␇, q␇Ȣ␇);
+Test_N(q␇ᴾ␇, q␇ᴾ␇, q␇ᴾ␇, q␇P␇, q␇P␇);
+Test_N(q␇ᴿ␇, q␇ᴿ␇, q␇ᴿ␇, q␇R␇, q␇R␇);
+Test_N(q␇ᵀ␇, q␇ᵀ␇, q␇ᵀ␇, q␇T␇, q␇T␇);
+Test_N(q␇ᵁ␇, q␇ᵁ␇, q␇ᵁ␇, q␇U␇, q␇U␇);
+Test_N(q␇ᵂ␇, q␇ᵂ␇, q␇ᵂ␇, q␇W␇, q␇W␇);
+Test_N(q␇ᵃ␇, q␇ᵃ␇, q␇ᵃ␇, q␇a␇, q␇a␇);
+Test_N(q␇ᵄ␇, q␇ᵄ␇, q␇ᵄ␇, q␇ɐ␇, q␇ɐ␇);
+Test_N(q␇ᵅ␇, q␇ᵅ␇, q␇ᵅ␇, q␇ɑ␇, q␇ɑ␇);
+Test_N(q␇ᵆ␇, q␇ᵆ␇, q␇ᵆ␇, q␇ᴂ␇, q␇ᴂ␇);
+Test_N(q␇ᵇ␇, q␇ᵇ␇, q␇ᵇ␇, q␇b␇, q␇b␇);
+Test_N(q␇ᵈ␇, q␇ᵈ␇, q␇ᵈ␇, q␇d␇, q␇d␇);
+Test_N(q␇ᵉ␇, q␇ᵉ␇, q␇ᵉ␇, q␇e␇, q␇e␇);
+Test_N(q␇ᵊ␇, q␇ᵊ␇, q␇ᵊ␇, q␇ə␇, q␇ə␇);
+Test_N(q␇ᵋ␇, q␇ᵋ␇, q␇ᵋ␇, q␇ɛ␇, q␇ɛ␇);
+Test_N(q␇ᵌ␇, q␇ᵌ␇, q␇ᵌ␇, q␇ɜ␇, q␇ɜ␇);
+Test_N(q␇ᵍ␇, q␇ᵍ␇, q␇ᵍ␇, q␇g␇, q␇g␇);
+Test_N(q␇ᵏ␇, q␇ᵏ␇, q␇ᵏ␇, q␇k␇, q␇k␇);
+Test_N(q␇ᵐ␇, q␇ᵐ␇, q␇ᵐ␇, q␇m␇, q␇m␇);
+Test_N(q␇ᵑ␇, q␇ᵑ␇, q␇ᵑ␇, q␇ŋ␇, q␇ŋ␇);
+Test_N(q␇ᵒ␇, q␇ᵒ␇, q␇ᵒ␇, q␇o␇, q␇o␇);
+Test_N(q␇ᵓ␇, q␇ᵓ␇, q␇ᵓ␇, q␇ɔ␇, q␇ɔ␇);
+Test_N(q␇ᵔ␇, q␇ᵔ␇, q␇ᵔ␇, q␇ᴖ␇, q␇ᴖ␇);
+Test_N(q␇ᵕ␇, q␇ᵕ␇, q␇ᵕ␇, q␇ᴗ␇, q␇ᴗ␇);
+Test_N(q␇ᵖ␇, q␇ᵖ␇, q␇ᵖ␇, q␇p␇, q␇p␇);
+Test_N(q␇ᵗ␇, q␇ᵗ␇, q␇ᵗ␇, q␇t␇, q␇t␇);
+Test_N(q␇ᵘ␇, q␇ᵘ␇, q␇ᵘ␇, q␇u␇, q␇u␇);
+Test_N(q␇ᵙ␇, q␇ᵙ␇, q␇ᵙ␇, q␇ᴝ␇, q␇ᴝ␇);
+Test_N(q␇ᵚ␇, q␇ᵚ␇, q␇ᵚ␇, q␇ɯ␇, q␇ɯ␇);
+Test_N(q␇ᵛ␇, q␇ᵛ␇, q␇ᵛ␇, q␇v␇, q␇v␇);
+Test_N(q␇ᵜ␇, q␇ᵜ␇, q␇ᵜ␇, q␇ᴥ␇, q␇ᴥ␇);
+Test_N(q␇ᵝ␇, q␇ᵝ␇, q␇ᵝ␇, q␇β␇, q␇β␇);
+Test_N(q␇ᵞ␇, q␇ᵞ␇, q␇ᵞ␇, q␇γ␇, q␇γ␇);
+Test_N(q␇ᵟ␇, q␇ᵟ␇, q␇ᵟ␇, q␇δ␇, q␇δ␇);
+Test_N(q␇ᵠ␇, q␇ᵠ␇, q␇ᵠ␇, q␇φ␇, q␇φ␇);
+Test_N(q␇ᵡ␇, q␇ᵡ␇, q␇ᵡ␇, q␇χ␇, q␇χ␇);
+Test_N(q␇ᵢ␇, q␇ᵢ␇, q␇ᵢ␇, q␇i␇, q␇i␇);
+Test_N(q␇ᵣ␇, q␇ᵣ␇, q␇ᵣ␇, q␇r␇, q␇r␇);
+Test_N(q␇ᵤ␇, q␇ᵤ␇, q␇ᵤ␇, q␇u␇, q␇u␇);
+Test_N(q␇ᵥ␇, q␇ᵥ␇, q␇ᵥ␇, q␇v␇, q␇v␇);
+Test_N(q␇ᵦ␇, q␇ᵦ␇, q␇ᵦ␇, q␇β␇, q␇β␇);
+Test_N(q␇ᵧ␇, q␇ᵧ␇, q␇ᵧ␇, q␇γ␇, q␇γ␇);
+Test_N(q␇ᵨ␇, q␇ᵨ␇, q␇ᵨ␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇ᵩ␇, q␇ᵩ␇, q␇ᵩ␇, q␇φ␇, q␇φ␇);
+Test_N(q␇ᵪ␇, q␇ᵪ␇, q␇ᵪ␇, q␇χ␇, q␇χ␇);
+Test_N(q␇ᵸ␇, q␇ᵸ␇, q␇ᵸ␇, q␇н␇, q␇н␇);
+Test_N(q␇ᶛ␇, q␇ᶛ␇, q␇ᶛ␇, q␇ɒ␇, q␇ɒ␇);
+Test_N(q␇ᶜ␇, q␇ᶜ␇, q␇ᶜ␇, q␇c␇, q␇c␇);
+Test_N(q␇ᶝ␇, q␇ᶝ␇, q␇ᶝ␇, q␇ɕ␇, q␇ɕ␇);
+Test_N(q␇ᶞ␇, q␇ᶞ␇, q␇ᶞ␇, q␇ð␇, q␇ð␇);
+Test_N(q␇ᶟ␇, q␇ᶟ␇, q␇ᶟ␇, q␇ɜ␇, q␇ɜ␇);
+Test_N(q␇ᶠ␇, q␇ᶠ␇, q␇ᶠ␇, q␇f␇, q␇f␇);
+Test_N(q␇ᶡ␇, q␇ᶡ␇, q␇ᶡ␇, q␇ɟ␇, q␇ɟ␇);
+Test_N(q␇ᶢ␇, q␇ᶢ␇, q␇ᶢ␇, q␇ɡ␇, q␇ɡ␇);
+Test_N(q␇ᶣ␇, q␇ᶣ␇, q␇ᶣ␇, q␇ɥ␇, q␇ɥ␇);
+Test_N(q␇ᶤ␇, q␇ᶤ␇, q␇ᶤ␇, q␇ɨ␇, q␇ɨ␇);
+Test_N(q␇ᶥ␇, q␇ᶥ␇, q␇ᶥ␇, q␇ɩ␇, q␇ɩ␇);
+Test_N(q␇ᶦ␇, q␇ᶦ␇, q␇ᶦ␇, q␇ɪ␇, q␇ɪ␇);
+Test_N(q␇ᶧ␇, q␇ᶧ␇, q␇ᶧ␇, q␇ᵻ␇, q␇ᵻ␇);
+Test_N(q␇ᶨ␇, q␇ᶨ␇, q␇ᶨ␇, q␇ʝ␇, q␇ʝ␇);
+Test_N(q␇ᶩ␇, q␇ᶩ␇, q␇ᶩ␇, q␇ɭ␇, q␇ɭ␇);
+Test_N(q␇ᶪ␇, q␇ᶪ␇, q␇ᶪ␇, q␇ᶅ␇, q␇ᶅ␇);
+Test_N(q␇ᶫ␇, q␇ᶫ␇, q␇ᶫ␇, q␇ʟ␇, q␇ʟ␇);
+Test_N(q␇ᶬ␇, q␇ᶬ␇, q␇ᶬ␇, q␇ɱ␇, q␇ɱ␇);
+Test_N(q␇ᶭ␇, q␇ᶭ␇, q␇ᶭ␇, q␇ɰ␇, q␇ɰ␇);
+Test_N(q␇ᶮ␇, q␇ᶮ␇, q␇ᶮ␇, q␇ɲ␇, q␇ɲ␇);
+Test_N(q␇ᶯ␇, q␇ᶯ␇, q␇ᶯ␇, q␇ɳ␇, q␇ɳ␇);
+Test_N(q␇ᶰ␇, q␇ᶰ␇, q␇ᶰ␇, q␇ɴ␇, q␇ɴ␇);
+Test_N(q␇ᶱ␇, q␇ᶱ␇, q␇ᶱ␇, q␇ɵ␇, q␇ɵ␇);
+Test_N(q␇ᶲ␇, q␇ᶲ␇, q␇ᶲ␇, q␇ɸ␇, q␇ɸ␇);
+Test_N(q␇ᶳ␇, q␇ᶳ␇, q␇ᶳ␇, q␇ʂ␇, q␇ʂ␇);
+Test_N(q␇ᶴ␇, q␇ᶴ␇, q␇ᶴ␇, q␇ʃ␇, q␇ʃ␇);
+Test_N(q␇ᶵ␇, q␇ᶵ␇, q␇ᶵ␇, q␇ƫ␇, q␇ƫ␇);
+Test_N(q␇ᶶ␇, q␇ᶶ␇, q␇ᶶ␇, q␇ʉ␇, q␇ʉ␇);
+Test_N(q␇ᶷ␇, q␇ᶷ␇, q␇ᶷ␇, q␇ʊ␇, q␇ʊ␇);
+Test_N(q␇ᶸ␇, q␇ᶸ␇, q␇ᶸ␇, q␇ᴜ␇, q␇ᴜ␇);
+Test_N(q␇ᶹ␇, q␇ᶹ␇, q␇ᶹ␇, q␇ʋ␇, q␇ʋ␇);
+Test_N(q␇ᶺ␇, q␇ᶺ␇, q␇ᶺ␇, q␇ʌ␇, q␇ʌ␇);
+Test_N(q␇ᶻ␇, q␇ᶻ␇, q␇ᶻ␇, q␇z␇, q␇z␇);
+Test_N(q␇ᶼ␇, q␇ᶼ␇, q␇ᶼ␇, q␇ʐ␇, q␇ʐ␇);
+Test_N(q␇ᶽ␇, q␇ᶽ␇, q␇ᶽ␇, q␇ʑ␇, q␇ʑ␇);
+Test_N(q␇ᶾ␇, q␇ᶾ␇, q␇ᶾ␇, q␇ʒ␇, q␇ʒ␇);
+Test_N(q␇ᶿ␇, q␇ᶿ␇, q␇ᶿ␇, q␇θ␇, q␇θ␇);
+Test_N(q␇Ḁ␇, q␇Ḁ␇, q␇Ḁ␇, q␇Ḁ␇, q␇Ḁ␇);
+Test_N(q␇ḁ␇, q␇ḁ␇, q␇ḁ␇, q␇ḁ␇, q␇ḁ␇);
+Test_N(q␇Ḃ␇, q␇Ḃ␇, q␇Ḃ␇, q␇Ḃ␇, q␇Ḃ␇);
+Test_N(q␇ḃ␇, q␇ḃ␇, q␇ḃ␇, q␇ḃ␇, q␇ḃ␇);
+Test_N(q␇Ḅ␇, q␇Ḅ␇, q␇Ḅ␇, q␇Ḅ␇, q␇Ḅ␇);
+Test_N(q␇ḅ␇, q␇ḅ␇, q␇ḅ␇, q␇ḅ␇, q␇ḅ␇);
+Test_N(q␇Ḇ␇, q␇Ḇ␇, q␇Ḇ␇, q␇Ḇ␇, q␇Ḇ␇);
+Test_N(q␇ḇ␇, q␇ḇ␇, q␇ḇ␇, q␇ḇ␇, q␇ḇ␇);
+Test_N(q␇Ḉ␇, q␇Ḉ␇, q␇Ḉ␇, q␇Ḉ␇, q␇Ḉ␇);
+Test_N(q␇ḉ␇, q␇ḉ␇, q␇ḉ␇, q␇ḉ␇, q␇ḉ␇);
+Test_N(q␇Ḋ␇, q␇Ḋ␇, q␇Ḋ␇, q␇Ḋ␇, q␇Ḋ␇);
+Test_N(q␇ḋ␇, q␇ḋ␇, q␇ḋ␇, q␇ḋ␇, q␇ḋ␇);
+Test_N(q␇Ḍ␇, q␇Ḍ␇, q␇Ḍ␇, q␇Ḍ␇, q␇Ḍ␇);
+Test_N(q␇ḍ␇, q␇ḍ␇, q␇ḍ␇, q␇ḍ␇, q␇ḍ␇);
+Test_N(q␇Ḏ␇, q␇Ḏ␇, q␇Ḏ␇, q␇Ḏ␇, q␇Ḏ␇);
+Test_N(q␇ḏ␇, q␇ḏ␇, q␇ḏ␇, q␇ḏ␇, q␇ḏ␇);
+Test_N(q␇Ḑ␇, q␇Ḑ␇, q␇Ḑ␇, q␇Ḑ␇, q␇Ḑ␇);
+Test_N(q␇ḑ␇, q␇ḑ␇, q␇ḑ␇, q␇ḑ␇, q␇ḑ␇);
+Test_N(q␇Ḓ␇, q␇Ḓ␇, q␇Ḓ␇, q␇Ḓ␇, q␇Ḓ␇);
+Test_N(q␇ḓ␇, q␇ḓ␇, q␇ḓ␇, q␇ḓ␇, q␇ḓ␇);
+Test_N(q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇, q␇Ḕ␇);
+Test_N(q␇ḕ␇, q␇ḕ␇, q␇ḕ␇, q␇ḕ␇, q␇ḕ␇);
+Test_N(q␇Ḗ␇, q␇Ḗ␇, q␇Ḗ␇, q␇Ḗ␇, q␇Ḗ␇);
+Test_N(q␇ḗ␇, q␇ḗ␇, q␇ḗ␇, q␇ḗ␇, q␇ḗ␇);
+Test_N(q␇Ḙ␇, q␇Ḙ␇, q␇Ḙ␇, q␇Ḙ␇, q␇Ḙ␇);
+Test_N(q␇ḙ␇, q␇ḙ␇, q␇ḙ␇, q␇ḙ␇, q␇ḙ␇);
+Test_N(q␇Ḛ␇, q␇Ḛ␇, q␇Ḛ␇, q␇Ḛ␇, q␇Ḛ␇);
+Test_N(q␇ḛ␇, q␇ḛ␇, q␇ḛ␇, q␇ḛ␇, q␇ḛ␇);
+Test_N(q␇Ḝ␇, q␇Ḝ␇, q␇Ḝ␇, q␇Ḝ␇, q␇Ḝ␇);
+Test_N(q␇ḝ␇, q␇ḝ␇, q␇ḝ␇, q␇ḝ␇, q␇ḝ␇);
+Test_N(q␇Ḟ␇, q␇Ḟ␇, q␇Ḟ␇, q␇Ḟ␇, q␇Ḟ␇);
+Test_N(q␇ḟ␇, q␇ḟ␇, q␇ḟ␇, q␇ḟ␇, q␇ḟ␇);
+Test_N(q␇Ḡ␇, q␇Ḡ␇, q␇Ḡ␇, q␇Ḡ␇, q␇Ḡ␇);
+Test_N(q␇ḡ␇, q␇ḡ␇, q␇ḡ␇, q␇ḡ␇, q␇ḡ␇);
+Test_N(q␇Ḣ␇, q␇Ḣ␇, q␇Ḣ␇, q␇Ḣ␇, q␇Ḣ␇);
+Test_N(q␇ḣ␇, q␇ḣ␇, q␇ḣ␇, q␇ḣ␇, q␇ḣ␇);
+Test_N(q␇Ḥ␇, q␇Ḥ␇, q␇Ḥ␇, q␇Ḥ␇, q␇Ḥ␇);
+Test_N(q␇ḥ␇, q␇ḥ␇, q␇ḥ␇, q␇ḥ␇, q␇ḥ␇);
+Test_N(q␇Ḧ␇, q␇Ḧ␇, q␇Ḧ␇, q␇Ḧ␇, q␇Ḧ␇);
+Test_N(q␇ḧ␇, q␇ḧ␇, q␇ḧ␇, q␇ḧ␇, q␇ḧ␇);
+Test_N(q␇Ḩ␇, q␇Ḩ␇, q␇Ḩ␇, q␇Ḩ␇, q␇Ḩ␇);
+Test_N(q␇ḩ␇, q␇ḩ␇, q␇ḩ␇, q␇ḩ␇, q␇ḩ␇);
+Test_N(q␇Ḫ␇, q␇Ḫ␇, q␇Ḫ␇, q␇Ḫ␇, q␇Ḫ␇);
+Test_N(q␇ḫ␇, q␇ḫ␇, q␇ḫ␇, q␇ḫ␇, q␇ḫ␇);
+Test_N(q␇Ḭ␇, q␇Ḭ␇, q␇Ḭ␇, q␇Ḭ␇, q␇Ḭ␇);
+Test_N(q␇ḭ␇, q␇ḭ␇, q␇ḭ␇, q␇ḭ␇, q␇ḭ␇);
+Test_N(q␇Ḯ␇, q␇Ḯ␇, q␇Ḯ␇, q␇Ḯ␇, q␇Ḯ␇);
+Test_N(q␇ḯ␇, q␇ḯ␇, q␇ḯ␇, q␇ḯ␇, q␇ḯ␇);
+Test_N(q␇Ḱ␇, q␇Ḱ␇, q␇Ḱ␇, q␇Ḱ␇, q␇Ḱ␇);
+Test_N(q␇ḱ␇, q␇ḱ␇, q␇ḱ␇, q␇ḱ␇, q␇ḱ␇);
+Test_N(q␇Ḳ␇, q␇Ḳ␇, q␇Ḳ␇, q␇Ḳ␇, q␇Ḳ␇);
+Test_N(q␇ḳ␇, q␇ḳ␇, q␇ḳ␇, q␇ḳ␇, q␇ḳ␇);
+Test_N(q␇Ḵ␇, q␇Ḵ␇, q␇Ḵ␇, q␇Ḵ␇, q␇Ḵ␇);
+Test_N(q␇ḵ␇, q␇ḵ␇, q␇ḵ␇, q␇ḵ␇, q␇ḵ␇);
+Test_N(q␇Ḷ␇, q␇Ḷ␇, q␇Ḷ␇, q␇Ḷ␇, q␇Ḷ␇);
+Test_N(q␇ḷ␇, q␇ḷ␇, q␇ḷ␇, q␇ḷ␇, q␇ḷ␇);
+Test_N(q␇Ḹ␇, q␇Ḹ␇, q␇Ḹ␇, q␇Ḹ␇, q␇Ḹ␇);
+Test_N(q␇ḹ␇, q␇ḹ␇, q␇ḹ␇, q␇ḹ␇, q␇ḹ␇);
+Test_N(q␇Ḻ␇, q␇Ḻ␇, q␇Ḻ␇, q␇Ḻ␇, q␇Ḻ␇);
+Test_N(q␇ḻ␇, q␇ḻ␇, q␇ḻ␇, q␇ḻ␇, q␇ḻ␇);
+Test_N(q␇Ḽ␇, q␇Ḽ␇, q␇Ḽ␇, q␇Ḽ␇, q␇Ḽ␇);
+Test_N(q␇ḽ␇, q␇ḽ␇, q␇ḽ␇, q␇ḽ␇, q␇ḽ␇);
+Test_N(q␇Ḿ␇, q␇Ḿ␇, q␇Ḿ␇, q␇Ḿ␇, q␇Ḿ␇);
+Test_N(q␇ḿ␇, q␇ḿ␇, q␇ḿ␇, q␇ḿ␇, q␇ḿ␇);
+Test_N(q␇Ṁ␇, q␇Ṁ␇, q␇Ṁ␇, q␇Ṁ␇, q␇Ṁ␇);
+Test_N(q␇ṁ␇, q␇ṁ␇, q␇ṁ␇, q␇ṁ␇, q␇ṁ␇);
+Test_N(q␇Ṃ␇, q␇Ṃ␇, q␇Ṃ␇, q␇Ṃ␇, q␇Ṃ␇);
+Test_N(q␇ṃ␇, q␇ṃ␇, q␇ṃ␇, q␇ṃ␇, q␇ṃ␇);
+Test_N(q␇Ṅ␇, q␇Ṅ␇, q␇Ṅ␇, q␇Ṅ␇, q␇Ṅ␇);
+Test_N(q␇ṅ␇, q␇ṅ␇, q␇ṅ␇, q␇ṅ␇, q␇ṅ␇);
+Test_N(q␇Ṇ␇, q␇Ṇ␇, q␇Ṇ␇, q␇Ṇ␇, q␇Ṇ␇);
+Test_N(q␇ṇ␇, q␇ṇ␇, q␇ṇ␇, q␇ṇ␇, q␇ṇ␇);
+Test_N(q␇Ṉ␇, q␇Ṉ␇, q␇Ṉ␇, q␇Ṉ␇, q␇Ṉ␇);
+Test_N(q␇ṉ␇, q␇ṉ␇, q␇ṉ␇, q␇ṉ␇, q␇ṉ␇);
+Test_N(q␇Ṋ␇, q␇Ṋ␇, q␇Ṋ␇, q␇Ṋ␇, q␇Ṋ␇);
+Test_N(q␇ṋ␇, q␇ṋ␇, q␇ṋ␇, q␇ṋ␇, q␇ṋ␇);
+Test_N(q␇Ṍ␇, q␇Ṍ␇, q␇Ṍ␇, q␇Ṍ␇, q␇Ṍ␇);
+Test_N(q␇ṍ␇, q␇ṍ␇, q␇ṍ␇, q␇ṍ␇, q␇ṍ␇);
+Test_N(q␇Ṏ␇, q␇Ṏ␇, q␇Ṏ␇, q␇Ṏ␇, q␇Ṏ␇);
+Test_N(q␇ṏ␇, q␇ṏ␇, q␇ṏ␇, q␇ṏ␇, q␇ṏ␇);
+Test_N(q␇Ṑ␇, q␇Ṑ␇, q␇Ṑ␇, q␇Ṑ␇, q␇Ṑ␇);
+Test_N(q␇ṑ␇, q␇ṑ␇, q␇ṑ␇, q␇ṑ␇, q␇ṑ␇);
+Test_N(q␇Ṓ␇, q␇Ṓ␇, q␇Ṓ␇, q␇Ṓ␇, q␇Ṓ␇);
+Test_N(q␇ṓ␇, q␇ṓ␇, q␇ṓ␇, q␇ṓ␇, q␇ṓ␇);
+Test_N(q␇Ṕ␇, q␇Ṕ␇, q␇Ṕ␇, q␇Ṕ␇, q␇Ṕ␇);
+Test_N(q␇ṕ␇, q␇ṕ␇, q␇ṕ␇, q␇ṕ␇, q␇ṕ␇);
+Test_N(q␇Ṗ␇, q␇Ṗ␇, q␇Ṗ␇, q␇Ṗ␇, q␇Ṗ␇);
+Test_N(q␇ṗ␇, q␇ṗ␇, q␇ṗ␇, q␇ṗ␇, q␇ṗ␇);
+Test_N(q␇Ṙ␇, q␇Ṙ␇, q␇Ṙ␇, q␇Ṙ␇, q␇Ṙ␇);
+Test_N(q␇ṙ␇, q␇ṙ␇, q␇ṙ␇, q␇ṙ␇, q␇ṙ␇);
+Test_N(q␇Ṛ␇, q␇Ṛ␇, q␇Ṛ␇, q␇Ṛ␇, q␇Ṛ␇);
+Test_N(q␇ṛ␇, q␇ṛ␇, q␇ṛ␇, q␇ṛ␇, q␇ṛ␇);
+Test_N(q␇Ṝ␇, q␇Ṝ␇, q␇Ṝ␇, q␇Ṝ␇, q␇Ṝ␇);
+Test_N(q␇ṝ␇, q␇ṝ␇, q␇ṝ␇, q␇ṝ␇, q␇ṝ␇);
+Test_N(q␇Ṟ␇, q␇Ṟ␇, q␇Ṟ␇, q␇Ṟ␇, q␇Ṟ␇);
+Test_N(q␇ṟ␇, q␇ṟ␇, q␇ṟ␇, q␇ṟ␇, q␇ṟ␇);
+Test_N(q␇Ṡ␇, q␇Ṡ␇, q␇Ṡ␇, q␇Ṡ␇, q␇Ṡ␇);
+Test_N(q␇ṡ␇, q␇ṡ␇, q␇ṡ␇, q␇ṡ␇, q␇ṡ␇);
+Test_N(q␇Ṣ␇, q␇Ṣ␇, q␇Ṣ␇, q␇Ṣ␇, q␇Ṣ␇);
+Test_N(q␇ṣ␇, q␇ṣ␇, q␇ṣ␇, q␇ṣ␇, q␇ṣ␇);
+Test_N(q␇Ṥ␇, q␇Ṥ␇, q␇Ṥ␇, q␇Ṥ␇, q␇Ṥ␇);
+Test_N(q␇ṥ␇, q␇ṥ␇, q␇ṥ␇, q␇ṥ␇, q␇ṥ␇);
+Test_N(q␇Ṧ␇, q␇Ṧ␇, q␇Ṧ␇, q␇Ṧ␇, q␇Ṧ␇);
+Test_N(q␇ṧ␇, q␇ṧ␇, q␇ṧ␇, q␇ṧ␇, q␇ṧ␇);
+Test_N(q␇Ṩ␇, q␇Ṩ␇, q␇Ṩ␇, q␇Ṩ␇, q␇Ṩ␇);
+Test_N(q␇ṩ␇, q␇ṩ␇, q␇ṩ␇, q␇ṩ␇, q␇ṩ␇);
+Test_N(q␇Ṫ␇, q␇Ṫ␇, q␇Ṫ␇, q␇Ṫ␇, q␇Ṫ␇);
+Test_N(q␇ṫ␇, q␇ṫ␇, q␇ṫ␇, q␇ṫ␇, q␇ṫ␇);
+Test_N(q␇Ṭ␇, q␇Ṭ␇, q␇Ṭ␇, q␇Ṭ␇, q␇Ṭ␇);
+Test_N(q␇ṭ␇, q␇ṭ␇, q␇ṭ␇, q␇ṭ␇, q␇ṭ␇);
+Test_N(q␇Ṯ␇, q␇Ṯ␇, q␇Ṯ␇, q␇Ṯ␇, q␇Ṯ␇);
+Test_N(q␇ṯ␇, q␇ṯ␇, q␇ṯ␇, q␇ṯ␇, q␇ṯ␇);
+Test_N(q␇Ṱ␇, q␇Ṱ␇, q␇Ṱ␇, q␇Ṱ␇, q␇Ṱ␇);
+Test_N(q␇ṱ␇, q␇ṱ␇, q␇ṱ␇, q␇ṱ␇, q␇ṱ␇);
+Test_N(q␇Ṳ␇, q␇Ṳ␇, q␇Ṳ␇, q␇Ṳ␇, q␇Ṳ␇);
+Test_N(q␇ṳ␇, q␇ṳ␇, q␇ṳ␇, q␇ṳ␇, q␇ṳ␇);
+Test_N(q␇Ṵ␇, q␇Ṵ␇, q␇Ṵ␇, q␇Ṵ␇, q␇Ṵ␇);
+Test_N(q␇ṵ␇, q␇ṵ␇, q␇ṵ␇, q␇ṵ␇, q␇ṵ␇);
+Test_N(q␇Ṷ␇, q␇Ṷ␇, q␇Ṷ␇, q␇Ṷ␇, q␇Ṷ␇);
+Test_N(q␇ṷ␇, q␇ṷ␇, q␇ṷ␇, q␇ṷ␇, q␇ṷ␇);
+Test_N(q␇Ṹ␇, q␇Ṹ␇, q␇Ṹ␇, q␇Ṹ␇, q␇Ṹ␇);
+Test_N(q␇ṹ␇, q␇ṹ␇, q␇ṹ␇, q␇ṹ␇, q␇ṹ␇);
+Test_N(q␇Ṻ␇, q␇Ṻ␇, q␇Ṻ␇, q␇Ṻ␇, q␇Ṻ␇);
+Test_N(q␇ṻ␇, q␇ṻ␇, q␇ṻ␇, q␇ṻ␇, q␇ṻ␇);
+Test_N(q␇Ṽ␇, q␇Ṽ␇, q␇Ṽ␇, q␇Ṽ␇, q␇Ṽ␇);
+Test_N(q␇ṽ␇, q␇ṽ␇, q␇ṽ␇, q␇ṽ␇, q␇ṽ␇);
+Test_N(q␇Ṿ␇, q␇Ṿ␇, q␇Ṿ␇, q␇Ṿ␇, q␇Ṿ␇);
+Test_N(q␇ṿ␇, q␇ṿ␇, q␇ṿ␇, q␇ṿ␇, q␇ṿ␇);
+Test_N(q␇Ẁ␇, q␇Ẁ␇, q␇Ẁ␇, q␇Ẁ␇, q␇Ẁ␇);
+Test_N(q␇ẁ␇, q␇ẁ␇, q␇ẁ␇, q␇ẁ␇, q␇ẁ␇);
+Test_N(q␇Ẃ␇, q␇Ẃ␇, q␇Ẃ␇, q␇Ẃ␇, q␇Ẃ␇);
+Test_N(q␇ẃ␇, q␇ẃ␇, q␇ẃ␇, q␇ẃ␇, q␇ẃ␇);
+Test_N(q␇Ẅ␇, q␇Ẅ␇, q␇Ẅ␇, q␇Ẅ␇, q␇Ẅ␇);
+Test_N(q␇ẅ␇, q␇ẅ␇, q␇ẅ␇, q␇ẅ␇, q␇ẅ␇);
+Test_N(q␇Ẇ␇, q␇Ẇ␇, q␇Ẇ␇, q␇Ẇ␇, q␇Ẇ␇);
+Test_N(q␇ẇ␇, q␇ẇ␇, q␇ẇ␇, q␇ẇ␇, q␇ẇ␇);
+Test_N(q␇Ẉ␇, q␇Ẉ␇, q␇Ẉ␇, q␇Ẉ␇, q␇Ẉ␇);
+Test_N(q␇ẉ␇, q␇ẉ␇, q␇ẉ␇, q␇ẉ␇, q␇ẉ␇);
+Test_N(q␇Ẋ␇, q␇Ẋ␇, q␇Ẋ␇, q␇Ẋ␇, q␇Ẋ␇);
+Test_N(q␇ẋ␇, q␇ẋ␇, q␇ẋ␇, q␇ẋ␇, q␇ẋ␇);
+Test_N(q␇Ẍ␇, q␇Ẍ␇, q␇Ẍ␇, q␇Ẍ␇, q␇Ẍ␇);
+Test_N(q␇ẍ␇, q␇ẍ␇, q␇ẍ␇, q␇ẍ␇, q␇ẍ␇);
+Test_N(q␇Ẏ␇, q␇Ẏ␇, q␇Ẏ␇, q␇Ẏ␇, q␇Ẏ␇);
+Test_N(q␇ẏ␇, q␇ẏ␇, q␇ẏ␇, q␇ẏ␇, q␇ẏ␇);
+Test_N(q␇Ẑ␇, q␇Ẑ␇, q␇Ẑ␇, q␇Ẑ␇, q␇Ẑ␇);
+Test_N(q␇ẑ␇, q␇ẑ␇, q␇ẑ␇, q␇ẑ␇, q␇ẑ␇);
+Test_N(q␇Ẓ␇, q␇Ẓ␇, q␇Ẓ␇, q␇Ẓ␇, q␇Ẓ␇);
+Test_N(q␇ẓ␇, q␇ẓ␇, q␇ẓ␇, q␇ẓ␇, q␇ẓ␇);
+Test_N(q␇Ẕ␇, q␇Ẕ␇, q␇Ẕ␇, q␇Ẕ␇, q␇Ẕ␇);
+Test_N(q␇ẕ␇, q␇ẕ␇, q␇ẕ␇, q␇ẕ␇, q␇ẕ␇);
+Test_N(q␇ẖ␇, q␇ẖ␇, q␇ẖ␇, q␇ẖ␇, q␇ẖ␇);
+Test_N(q␇ẗ␇, q␇ẗ␇, q␇ẗ␇, q␇ẗ␇, q␇ẗ␇);
+Test_N(q␇ẘ␇, q␇ẘ␇, q␇ẘ␇, q␇ẘ␇, q␇ẘ␇);
+Test_N(q␇ẙ␇, q␇ẙ␇, q␇ẙ␇, q␇ẙ␇, q␇ẙ␇);
+Test_N(q␇ẚ␇, q␇ẚ␇, q␇ẚ␇, q␇aʾ␇, q␇aʾ␇);
+Test_N(q␇ẛ␇, q␇ẛ␇, q␇ẛ␇, q␇ṡ␇, q␇ṡ␇);
+Test_N(q␇Ạ␇, q␇Ạ␇, q␇Ạ␇, q␇Ạ␇, q␇Ạ␇);
+Test_N(q␇ạ␇, q␇ạ␇, q␇ạ␇, q␇ạ␇, q␇ạ␇);
+Test_N(q␇Ả␇, q␇Ả␇, q␇Ả␇, q␇Ả␇, q␇Ả␇);
+Test_N(q␇ả␇, q␇ả␇, q␇ả␇, q␇ả␇, q␇ả␇);
+Test_N(q␇Ấ␇, q␇Ấ␇, q␇Ấ␇, q␇Ấ␇, q␇Ấ␇);
+Test_N(q␇ấ␇, q␇ấ␇, q␇ấ␇, q␇ấ␇, q␇ấ␇);
+Test_N(q␇Ầ␇, q␇Ầ␇, q␇Ầ␇, q␇Ầ␇, q␇Ầ␇);
+Test_N(q␇ầ␇, q␇ầ␇, q␇ầ␇, q␇ầ␇, q␇ầ␇);
+Test_N(q␇Ẩ␇, q␇Ẩ␇, q␇Ẩ␇, q␇Ẩ␇, q␇Ẩ␇);
+Test_N(q␇ẩ␇, q␇ẩ␇, q␇ẩ␇, q␇ẩ␇, q␇ẩ␇);
+Test_N(q␇Ẫ␇, q␇Ẫ␇, q␇Ẫ␇, q␇Ẫ␇, q␇Ẫ␇);
+Test_N(q␇ẫ␇, q␇ẫ␇, q␇ẫ␇, q␇ẫ␇, q␇ẫ␇);
+Test_N(q␇Ậ␇, q␇Ậ␇, q␇Ậ␇, q␇Ậ␇, q␇Ậ␇);
+Test_N(q␇ậ␇, q␇ậ␇, q␇ậ␇, q␇ậ␇, q␇ậ␇);
+Test_N(q␇Ắ␇, q␇Ắ␇, q␇Ắ␇, q␇Ắ␇, q␇Ắ␇);
+Test_N(q␇ắ␇, q␇ắ␇, q␇ắ␇, q␇ắ␇, q␇ắ␇);
+Test_N(q␇Ằ␇, q␇Ằ␇, q␇Ằ␇, q␇Ằ␇, q␇Ằ␇);
+Test_N(q␇ằ␇, q␇ằ␇, q␇ằ␇, q␇ằ␇, q␇ằ␇);
+Test_N(q␇Ẳ␇, q␇Ẳ␇, q␇Ẳ␇, q␇Ẳ␇, q␇Ẳ␇);
+Test_N(q␇ẳ␇, q␇ẳ␇, q␇ẳ␇, q␇ẳ␇, q␇ẳ␇);
+Test_N(q␇Ẵ␇, q␇Ẵ␇, q␇Ẵ␇, q␇Ẵ␇, q␇Ẵ␇);
+Test_N(q␇ẵ␇, q␇ẵ␇, q␇ẵ␇, q␇ẵ␇, q␇ẵ␇);
+Test_N(q␇Ặ␇, q␇Ặ␇, q␇Ặ␇, q␇Ặ␇, q␇Ặ␇);
+Test_N(q␇ặ␇, q␇ặ␇, q␇ặ␇, q␇ặ␇, q␇ặ␇);
+Test_N(q␇Ẹ␇, q␇Ẹ␇, q␇Ẹ␇, q␇Ẹ␇, q␇Ẹ␇);
+Test_N(q␇ẹ␇, q␇ẹ␇, q␇ẹ␇, q␇ẹ␇, q␇ẹ␇);
+Test_N(q␇Ẻ␇, q␇Ẻ␇, q␇Ẻ␇, q␇Ẻ␇, q␇Ẻ␇);
+Test_N(q␇ẻ␇, q␇ẻ␇, q␇ẻ␇, q␇ẻ␇, q␇ẻ␇);
+Test_N(q␇Ẽ␇, q␇Ẽ␇, q␇Ẽ␇, q␇Ẽ␇, q␇Ẽ␇);
+Test_N(q␇ẽ␇, q␇ẽ␇, q␇ẽ␇, q␇ẽ␇, q␇ẽ␇);
+Test_N(q␇Ế␇, q␇Ế␇, q␇Ế␇, q␇Ế␇, q␇Ế␇);
+Test_N(q␇ế␇, q␇ế␇, q␇ế␇, q␇ế␇, q␇ế␇);
+Test_N(q␇Ề␇, q␇Ề␇, q␇Ề␇, q␇Ề␇, q␇Ề␇);
+Test_N(q␇ề␇, q␇ề␇, q␇ề␇, q␇ề␇, q␇ề␇);
+Test_N(q␇Ể␇, q␇Ể␇, q␇Ể␇, q␇Ể␇, q␇Ể␇);
+Test_N(q␇ể␇, q␇ể␇, q␇ể␇, q␇ể␇, q␇ể␇);
+Test_N(q␇Ễ␇, q␇Ễ␇, q␇Ễ␇, q␇Ễ␇, q␇Ễ␇);
+Test_N(q␇ễ␇, q␇ễ␇, q␇ễ␇, q␇ễ␇, q␇ễ␇);
+Test_N(q␇Ệ␇, q␇Ệ␇, q␇Ệ␇, q␇Ệ␇, q␇Ệ␇);
+Test_N(q␇ệ␇, q␇ệ␇, q␇ệ␇, q␇ệ␇, q␇ệ␇);
+Test_N(q␇Ỉ␇, q␇Ỉ␇, q␇Ỉ␇, q␇Ỉ␇, q␇Ỉ␇);
+Test_N(q␇ỉ␇, q␇ỉ␇, q␇ỉ␇, q␇ỉ␇, q␇ỉ␇);
+Test_N(q␇Ị␇, q␇Ị␇, q␇Ị␇, q␇Ị␇, q␇Ị␇);
+Test_N(q␇ị␇, q␇ị␇, q␇ị␇, q␇ị␇, q␇ị␇);
+Test_N(q␇Ọ␇, q␇Ọ␇, q␇Ọ␇, q␇Ọ␇, q␇Ọ␇);
+Test_N(q␇ọ␇, q␇ọ␇, q␇ọ␇, q␇ọ␇, q␇ọ␇);
+Test_N(q␇Ỏ␇, q␇Ỏ␇, q␇Ỏ␇, q␇Ỏ␇, q␇Ỏ␇);
+Test_N(q␇ỏ␇, q␇ỏ␇, q␇ỏ␇, q␇ỏ␇, q␇ỏ␇);
+Test_N(q␇Ố␇, q␇Ố␇, q␇Ố␇, q␇Ố␇, q␇Ố␇);
+Test_N(q␇ố␇, q␇ố␇, q␇ố␇, q␇ố␇, q␇ố␇);
+Test_N(q␇Ồ␇, q␇Ồ␇, q␇Ồ␇, q␇Ồ␇, q␇Ồ␇);
+Test_N(q␇ồ␇, q␇ồ␇, q␇ồ␇, q␇ồ␇, q␇ồ␇);
+Test_N(q␇Ổ␇, q␇Ổ␇, q␇Ổ␇, q␇Ổ␇, q␇Ổ␇);
+Test_N(q␇ổ␇, q␇ổ␇, q␇ổ␇, q␇ổ␇, q␇ổ␇);
+Test_N(q␇Ỗ␇, q␇Ỗ␇, q␇Ỗ␇, q␇Ỗ␇, q␇Ỗ␇);
+Test_N(q␇ỗ␇, q␇ỗ␇, q␇ỗ␇, q␇ỗ␇, q␇ỗ␇);
+Test_N(q␇Ộ␇, q␇Ộ␇, q␇Ộ␇, q␇Ộ␇, q␇Ộ␇);
+Test_N(q␇ộ␇, q␇ộ␇, q␇ộ␇, q␇ộ␇, q␇ộ␇);
+Test_N(q␇Ớ␇, q␇Ớ␇, q␇Ớ␇, q␇Ớ␇, q␇Ớ␇);
+Test_N(q␇ớ␇, q␇ớ␇, q␇ớ␇, q␇ớ␇, q␇ớ␇);
+Test_N(q␇Ờ␇, q␇Ờ␇, q␇Ờ␇, q␇Ờ␇, q␇Ờ␇);
+Test_N(q␇ờ␇, q␇ờ␇, q␇ờ␇, q␇ờ␇, q␇ờ␇);
+Test_N(q␇Ở␇, q␇Ở␇, q␇Ở␇, q␇Ở␇, q␇Ở␇);
+Test_N(q␇ở␇, q␇ở␇, q␇ở␇, q␇ở␇, q␇ở␇);
+Test_N(q␇Ỡ␇, q␇Ỡ␇, q␇Ỡ␇, q␇Ỡ␇, q␇Ỡ␇);
+Test_N(q␇ỡ␇, q␇ỡ␇, q␇ỡ␇, q␇ỡ␇, q␇ỡ␇);
+Test_N(q␇Ợ␇, q␇Ợ␇, q␇Ợ␇, q␇Ợ␇, q␇Ợ␇);
+Test_N(q␇ợ␇, q␇ợ␇, q␇ợ␇, q␇ợ␇, q␇ợ␇);
+Test_N(q␇Ụ␇, q␇Ụ␇, q␇Ụ␇, q␇Ụ␇, q␇Ụ␇);
+Test_N(q␇ụ␇, q␇ụ␇, q␇ụ␇, q␇ụ␇, q␇ụ␇);
+Test_N(q␇Ủ␇, q␇Ủ␇, q␇Ủ␇, q␇Ủ␇, q␇Ủ␇);
+Test_N(q␇ủ␇, q␇ủ␇, q␇ủ␇, q␇ủ␇, q␇ủ␇);
+Test_N(q␇Ứ␇, q␇Ứ␇, q␇Ứ␇, q␇Ứ␇, q␇Ứ␇);
+Test_N(q␇ứ␇, q␇ứ␇, q␇ứ␇, q␇ứ␇, q␇ứ␇);
+Test_N(q␇Ừ␇, q␇Ừ␇, q␇Ừ␇, q␇Ừ␇, q␇Ừ␇);
+Test_N(q␇ừ␇, q␇ừ␇, q␇ừ␇, q␇ừ␇, q␇ừ␇);
+Test_N(q␇Ử␇, q␇Ử␇, q␇Ử␇, q␇Ử␇, q␇Ử␇);
+Test_N(q␇ử␇, q␇ử␇, q␇ử␇, q␇ử␇, q␇ử␇);
+Test_N(q␇Ữ␇, q␇Ữ␇, q␇Ữ␇, q␇Ữ␇, q␇Ữ␇);
+Test_N(q␇ữ␇, q␇ữ␇, q␇ữ␇, q␇ữ␇, q␇ữ␇);
+Test_N(q␇Ự␇, q␇Ự␇, q␇Ự␇, q␇Ự␇, q␇Ự␇);
+Test_N(q␇ự␇, q␇ự␇, q␇ự␇, q␇ự␇, q␇ự␇);
+Test_N(q␇Ỳ␇, q␇Ỳ␇, q␇Ỳ␇, q␇Ỳ␇, q␇Ỳ␇);
+Test_N(q␇ỳ␇, q␇ỳ␇, q␇ỳ␇, q␇ỳ␇, q␇ỳ␇);
+Test_N(q␇Ỵ␇, q␇Ỵ␇, q␇Ỵ␇, q␇Ỵ␇, q␇Ỵ␇);
+Test_N(q␇ỵ␇, q␇ỵ␇, q␇ỵ␇, q␇ỵ␇, q␇ỵ␇);
+Test_N(q␇Ỷ␇, q␇Ỷ␇, q␇Ỷ␇, q␇Ỷ␇, q␇Ỷ␇);
+Test_N(q␇ỷ␇, q␇ỷ␇, q␇ỷ␇, q␇ỷ␇, q␇ỷ␇);
+Test_N(q␇Ỹ␇, q␇Ỹ␇, q␇Ỹ␇, q␇Ỹ␇, q␇Ỹ␇);
+Test_N(q␇ỹ␇, q␇ỹ␇, q␇ỹ␇, q␇ỹ␇, q␇ỹ␇);
+Test_N(q␇ἀ␇, q␇ἀ␇, q␇ἀ␇, q␇ἀ␇, q␇ἀ␇);
+Test_N(q␇ἁ␇, q␇ἁ␇, q␇ἁ␇, q␇ἁ␇, q␇ἁ␇);
+Test_N(q␇ἂ␇, q␇ἂ␇, q␇ἂ␇, q␇ἂ␇, q␇ἂ␇);
+Test_N(q␇ἃ␇, q␇ἃ␇, q␇ἃ␇, q␇ἃ␇, q␇ἃ␇);
+Test_N(q␇ἄ␇, q␇ἄ␇, q␇ἄ␇, q␇ἄ␇, q␇ἄ␇);
+Test_N(q␇ἅ␇, q␇ἅ␇, q␇ἅ␇, q␇ἅ␇, q␇ἅ␇);
+Test_N(q␇ἆ␇, q␇ἆ␇, q␇ἆ␇, q␇ἆ␇, q␇ἆ␇);
+Test_N(q␇ἇ␇, q␇ἇ␇, q␇ἇ␇, q␇ἇ␇, q␇ἇ␇);
+Test_N(q␇Ἀ␇, q␇Ἀ␇, q␇Ἀ␇, q␇Ἀ␇, q␇Ἀ␇);
+Test_N(q␇Ἁ␇, q␇Ἁ␇, q␇Ἁ␇, q␇Ἁ␇, q␇Ἁ␇);
+Test_N(q␇Ἂ␇, q␇Ἂ␇, q␇Ἂ␇, q␇Ἂ␇, q␇Ἂ␇);
+Test_N(q␇Ἃ␇, q␇Ἃ␇, q␇Ἃ␇, q␇Ἃ␇, q␇Ἃ␇);
+Test_N(q␇Ἄ␇, q␇Ἄ␇, q␇Ἄ␇, q␇Ἄ␇, q␇Ἄ␇);
+Test_N(q␇Ἅ␇, q␇Ἅ␇, q␇Ἅ␇, q␇Ἅ␇, q␇Ἅ␇);
+Test_N(q␇Ἆ␇, q␇Ἆ␇, q␇Ἆ␇, q␇Ἆ␇, q␇Ἆ␇);
+Test_N(q␇Ἇ␇, q␇Ἇ␇, q␇Ἇ␇, q␇Ἇ␇, q␇Ἇ␇);
+Test_N(q␇ἐ␇, q␇ἐ␇, q␇ἐ␇, q␇ἐ␇, q␇ἐ␇);
+Test_N(q␇ἑ␇, q␇ἑ␇, q␇ἑ␇, q␇ἑ␇, q␇ἑ␇);
+Test_N(q␇ἒ␇, q␇ἒ␇, q␇ἒ␇, q␇ἒ␇, q␇ἒ␇);
+Test_N(q␇ἓ␇, q␇ἓ␇, q␇ἓ␇, q␇ἓ␇, q␇ἓ␇);
+Test_N(q␇ἔ␇, q␇ἔ␇, q␇ἔ␇, q␇ἔ␇, q␇ἔ␇);
+Test_N(q␇ἕ␇, q␇ἕ␇, q␇ἕ␇, q␇ἕ␇, q␇ἕ␇);
+Test_N(q␇Ἐ␇, q␇Ἐ␇, q␇Ἐ␇, q␇Ἐ␇, q␇Ἐ␇);
+Test_N(q␇Ἑ␇, q␇Ἑ␇, q␇Ἑ␇, q␇Ἑ␇, q␇Ἑ␇);
+Test_N(q␇Ἒ␇, q␇Ἒ␇, q␇Ἒ␇, q␇Ἒ␇, q␇Ἒ␇);
+Test_N(q␇Ἓ␇, q␇Ἓ␇, q␇Ἓ␇, q␇Ἓ␇, q␇Ἓ␇);
+Test_N(q␇Ἔ␇, q␇Ἔ␇, q␇Ἔ␇, q␇Ἔ␇, q␇Ἔ␇);
+Test_N(q␇Ἕ␇, q␇Ἕ␇, q␇Ἕ␇, q␇Ἕ␇, q␇Ἕ␇);
+Test_N(q␇ἠ␇, q␇ἠ␇, q␇ἠ␇, q␇ἠ␇, q␇ἠ␇);
+Test_N(q␇ἡ␇, q␇ἡ␇, q␇ἡ␇, q␇ἡ␇, q␇ἡ␇);
+Test_N(q␇ἢ␇, q␇ἢ␇, q␇ἢ␇, q␇ἢ␇, q␇ἢ␇);
+Test_N(q␇ἣ␇, q␇ἣ␇, q␇ἣ␇, q␇ἣ␇, q␇ἣ␇);
+Test_N(q␇ἤ␇, q␇ἤ␇, q␇ἤ␇, q␇ἤ␇, q␇ἤ␇);
+Test_N(q␇ἥ␇, q␇ἥ␇, q␇ἥ␇, q␇ἥ␇, q␇ἥ␇);
+Test_N(q␇ἦ␇, q␇ἦ␇, q␇ἦ␇, q␇ἦ␇, q␇ἦ␇);
+Test_N(q␇ἧ␇, q␇ἧ␇, q␇ἧ␇, q␇ἧ␇, q␇ἧ␇);
+Test_N(q␇Ἠ␇, q␇Ἠ␇, q␇Ἠ␇, q␇Ἠ␇, q␇Ἠ␇);
+Test_N(q␇Ἡ␇, q␇Ἡ␇, q␇Ἡ␇, q␇Ἡ␇, q␇Ἡ␇);
+Test_N(q␇Ἢ␇, q␇Ἢ␇, q␇Ἢ␇, q␇Ἢ␇, q␇Ἢ␇);
+Test_N(q␇Ἣ␇, q␇Ἣ␇, q␇Ἣ␇, q␇Ἣ␇, q␇Ἣ␇);
+Test_N(q␇Ἤ␇, q␇Ἤ␇, q␇Ἤ␇, q␇Ἤ␇, q␇Ἤ␇);
+Test_N(q␇Ἥ␇, q␇Ἥ␇, q␇Ἥ␇, q␇Ἥ␇, q␇Ἥ␇);
+Test_N(q␇Ἦ␇, q␇Ἦ␇, q␇Ἦ␇, q␇Ἦ␇, q␇Ἦ␇);
+Test_N(q␇Ἧ␇, q␇Ἧ␇, q␇Ἧ␇, q␇Ἧ␇, q␇Ἧ␇);
+Test_N(q␇ἰ␇, q␇ἰ␇, q␇ἰ␇, q␇ἰ␇, q␇ἰ␇);
+Test_N(q␇ἱ␇, q␇ἱ␇, q␇ἱ␇, q␇ἱ␇, q␇ἱ␇);
+Test_N(q␇ἲ␇, q␇ἲ␇, q␇ἲ␇, q␇ἲ␇, q␇ἲ␇);
+Test_N(q␇ἳ␇, q␇ἳ␇, q␇ἳ␇, q␇ἳ␇, q␇ἳ␇);
+Test_N(q␇ἴ␇, q␇ἴ␇, q␇ἴ␇, q␇ἴ␇, q␇ἴ␇);
+Test_N(q␇ἵ␇, q␇ἵ␇, q␇ἵ␇, q␇ἵ␇, q␇ἵ␇);
+Test_N(q␇ἶ␇, q␇ἶ␇, q␇ἶ␇, q␇ἶ␇, q␇ἶ␇);
+Test_N(q␇ἷ␇, q␇ἷ␇, q␇ἷ␇, q␇ἷ␇, q␇ἷ␇);
+Test_N(q␇Ἰ␇, q␇Ἰ␇, q␇Ἰ␇, q␇Ἰ␇, q␇Ἰ␇);
+Test_N(q␇Ἱ␇, q␇Ἱ␇, q␇Ἱ␇, q␇Ἱ␇, q␇Ἱ␇);
+Test_N(q␇Ἲ␇, q␇Ἲ␇, q␇Ἲ␇, q␇Ἲ␇, q␇Ἲ␇);
+Test_N(q␇Ἳ␇, q␇Ἳ␇, q␇Ἳ␇, q␇Ἳ␇, q␇Ἳ␇);
+Test_N(q␇Ἴ␇, q␇Ἴ␇, q␇Ἴ␇, q␇Ἴ␇, q␇Ἴ␇);
+Test_N(q␇Ἵ␇, q␇Ἵ␇, q␇Ἵ␇, q␇Ἵ␇, q␇Ἵ␇);
+Test_N(q␇Ἶ␇, q␇Ἶ␇, q␇Ἶ␇, q␇Ἶ␇, q␇Ἶ␇);
+Test_N(q␇Ἷ␇, q␇Ἷ␇, q␇Ἷ␇, q␇Ἷ␇, q␇Ἷ␇);
+Test_N(q␇ὀ␇, q␇ὀ␇, q␇ὀ␇, q␇ὀ␇, q␇ὀ␇);
+Test_N(q␇ὁ␇, q␇ὁ␇, q␇ὁ␇, q␇ὁ␇, q␇ὁ␇);
+Test_N(q␇ὂ␇, q␇ὂ␇, q␇ὂ␇, q␇ὂ␇, q␇ὂ␇);
+Test_N(q␇ὃ␇, q␇ὃ␇, q␇ὃ␇, q␇ὃ␇, q␇ὃ␇);
+Test_N(q␇ὄ␇, q␇ὄ␇, q␇ὄ␇, q␇ὄ␇, q␇ὄ␇);
+Test_N(q␇ὅ␇, q␇ὅ␇, q␇ὅ␇, q␇ὅ␇, q␇ὅ␇);
+Test_N(q␇Ὀ␇, q␇Ὀ␇, q␇Ὀ␇, q␇Ὀ␇, q␇Ὀ␇);
+Test_N(q␇Ὁ␇, q␇Ὁ␇, q␇Ὁ␇, q␇Ὁ␇, q␇Ὁ␇);
+Test_N(q␇Ὂ␇, q␇Ὂ␇, q␇Ὂ␇, q␇Ὂ␇, q␇Ὂ␇);
+Test_N(q␇Ὃ␇, q␇Ὃ␇, q␇Ὃ␇, q␇Ὃ␇, q␇Ὃ␇);
+Test_N(q␇Ὄ␇, q␇Ὄ␇, q␇Ὄ␇, q␇Ὄ␇, q␇Ὄ␇);
+Test_N(q␇Ὅ␇, q␇Ὅ␇, q␇Ὅ␇, q␇Ὅ␇, q␇Ὅ␇);
+Test_N(q␇ὐ␇, q␇ὐ␇, q␇ὐ␇, q␇ὐ␇, q␇ὐ␇);
+Test_N(q␇ὑ␇, q␇ὑ␇, q␇ὑ␇, q␇ὑ␇, q␇ὑ␇);
+Test_N(q␇ὒ␇, q␇ὒ␇, q␇ὒ␇, q␇ὒ␇, q␇ὒ␇);
+Test_N(q␇ὓ␇, q␇ὓ␇, q␇ὓ␇, q␇ὓ␇, q␇ὓ␇);
+Test_N(q␇ὔ␇, q␇ὔ␇, q␇ὔ␇, q␇ὔ␇, q␇ὔ␇);
+Test_N(q␇ὕ␇, q␇ὕ␇, q␇ὕ␇, q␇ὕ␇, q␇ὕ␇);
+Test_N(q␇ὖ␇, q␇ὖ␇, q␇ὖ␇, q␇ὖ␇, q␇ὖ␇);
+Test_N(q␇ὗ␇, q␇ὗ␇, q␇ὗ␇, q␇ὗ␇, q␇ὗ␇);
+Test_N(q␇Ὑ␇, q␇Ὑ␇, q␇Ὑ␇, q␇Ὑ␇, q␇Ὑ␇);
+Test_N(q␇Ὓ␇, q␇Ὓ␇, q␇Ὓ␇, q␇Ὓ␇, q␇Ὓ␇);
+Test_N(q␇Ὕ␇, q␇Ὕ␇, q␇Ὕ␇, q␇Ὕ␇, q␇Ὕ␇);
+Test_N(q␇Ὗ␇, q␇Ὗ␇, q␇Ὗ␇, q␇Ὗ␇, q␇Ὗ␇);
+Test_N(q␇ὠ␇, q␇ὠ␇, q␇ὠ␇, q␇ὠ␇, q␇ὠ␇);
+Test_N(q␇ὡ␇, q␇ὡ␇, q␇ὡ␇, q␇ὡ␇, q␇ὡ␇);
+Test_N(q␇ὢ␇, q␇ὢ␇, q␇ὢ␇, q␇ὢ␇, q␇ὢ␇);
+Test_N(q␇ὣ␇, q␇ὣ␇, q␇ὣ␇, q␇ὣ␇, q␇ὣ␇);
+Test_N(q␇ὤ␇, q␇ὤ␇, q␇ὤ␇, q␇ὤ␇, q␇ὤ␇);
+Test_N(q␇ὥ␇, q␇ὥ␇, q␇ὥ␇, q␇ὥ␇, q␇ὥ␇);
+Test_N(q␇ὦ␇, q␇ὦ␇, q␇ὦ␇, q␇ὦ␇, q␇ὦ␇);
+Test_N(q␇ὧ␇, q␇ὧ␇, q␇ὧ␇, q␇ὧ␇, q␇ὧ␇);
+Test_N(q␇Ὠ␇, q␇Ὠ␇, q␇Ὠ␇, q␇Ὠ␇, q␇Ὠ␇);
+Test_N(q␇Ὡ␇, q␇Ὡ␇, q␇Ὡ␇, q␇Ὡ␇, q␇Ὡ␇);
+Test_N(q␇Ὢ␇, q␇Ὢ␇, q␇Ὢ␇, q␇Ὢ␇, q␇Ὢ␇);
+Test_N(q␇Ὣ␇, q␇Ὣ␇, q␇Ὣ␇, q␇Ὣ␇, q␇Ὣ␇);
+Test_N(q␇Ὤ␇, q␇Ὤ␇, q␇Ὤ␇, q␇Ὤ␇, q␇Ὤ␇);
+Test_N(q␇Ὥ␇, q␇Ὥ␇, q␇Ὥ␇, q␇Ὥ␇, q␇Ὥ␇);
+Test_N(q␇Ὦ␇, q␇Ὦ␇, q␇Ὦ␇, q␇Ὦ␇, q␇Ὦ␇);
+Test_N(q␇Ὧ␇, q␇Ὧ␇, q␇Ὧ␇, q␇Ὧ␇, q␇Ὧ␇);
+Test_N(q␇ὰ␇, q␇ὰ␇, q␇ὰ␇, q␇ὰ␇, q␇ὰ␇);
+Test_N(q␇ά␇, q␇ά␇, q␇ά␇, q␇ά␇, q␇ά␇);
+Test_N(q␇ὲ␇, q␇ὲ␇, q␇ὲ␇, q␇ὲ␇, q␇ὲ␇);
+Test_N(q␇έ␇, q␇έ␇, q␇έ␇, q␇έ␇, q␇έ␇);
+Test_N(q␇ὴ␇, q␇ὴ␇, q␇ὴ␇, q␇ὴ␇, q␇ὴ␇);
+Test_N(q␇ή␇, q␇ή␇, q␇ή␇, q␇ή␇, q␇ή␇);
+Test_N(q␇ὶ␇, q␇ὶ␇, q␇ὶ␇, q␇ὶ␇, q␇ὶ␇);
+Test_N(q␇ί␇, q␇ί␇, q␇ί␇, q␇ί␇, q␇ί␇);
+Test_N(q␇ὸ␇, q␇ὸ␇, q␇ὸ␇, q␇ὸ␇, q␇ὸ␇);
+Test_N(q␇ό␇, q␇ό␇, q␇ό␇, q␇ό␇, q␇ό␇);
+Test_N(q␇ὺ␇, q␇ὺ␇, q␇ὺ␇, q␇ὺ␇, q␇ὺ␇);
+Test_N(q␇ύ␇, q␇ύ␇, q␇ύ␇, q␇ύ␇, q␇ύ␇);
+Test_N(q␇ὼ␇, q␇ὼ␇, q␇ὼ␇, q␇ὼ␇, q␇ὼ␇);
+Test_N(q␇ώ␇, q␇ώ␇, q␇ώ␇, q␇ώ␇, q␇ώ␇);
+Test_N(q␇ᾀ␇, q␇ᾀ␇, q␇ᾀ␇, q␇ᾀ␇, q␇ᾀ␇);
+Test_N(q␇ᾁ␇, q␇ᾁ␇, q␇ᾁ␇, q␇ᾁ␇, q␇ᾁ␇);
+Test_N(q␇ᾂ␇, q␇ᾂ␇, q␇ᾂ␇, q␇ᾂ␇, q␇ᾂ␇);
+Test_N(q␇ᾃ␇, q␇ᾃ␇, q␇ᾃ␇, q␇ᾃ␇, q␇ᾃ␇);
+Test_N(q␇ᾄ␇, q␇ᾄ␇, q␇ᾄ␇, q␇ᾄ␇, q␇ᾄ␇);
+Test_N(q␇ᾅ␇, q␇ᾅ␇, q␇ᾅ␇, q␇ᾅ␇, q␇ᾅ␇);
+Test_N(q␇ᾆ␇, q␇ᾆ␇, q␇ᾆ␇, q␇ᾆ␇, q␇ᾆ␇);
+Test_N(q␇ᾇ␇, q␇ᾇ␇, q␇ᾇ␇, q␇ᾇ␇, q␇ᾇ␇);
+Test_N(q␇ᾈ␇, q␇ᾈ␇, q␇ᾈ␇, q␇ᾈ␇, q␇ᾈ␇);
+Test_N(q␇ᾉ␇, q␇ᾉ␇, q␇ᾉ␇, q␇ᾉ␇, q␇ᾉ␇);
+Test_N(q␇ᾊ␇, q␇ᾊ␇, q␇ᾊ␇, q␇ᾊ␇, q␇ᾊ␇);
+Test_N(q␇ᾋ␇, q␇ᾋ␇, q␇ᾋ␇, q␇ᾋ␇, q␇ᾋ␇);
+Test_N(q␇ᾌ␇, q␇ᾌ␇, q␇ᾌ␇, q␇ᾌ␇, q␇ᾌ␇);
+Test_N(q␇ᾍ␇, q␇ᾍ␇, q␇ᾍ␇, q␇ᾍ␇, q␇ᾍ␇);
+Test_N(q␇ᾎ␇, q␇ᾎ␇, q␇ᾎ␇, q␇ᾎ␇, q␇ᾎ␇);
+Test_N(q␇ᾏ␇, q␇ᾏ␇, q␇ᾏ␇, q␇ᾏ␇, q␇ᾏ␇);
+Test_N(q␇ᾐ␇, q␇ᾐ␇, q␇ᾐ␇, q␇ᾐ␇, q␇ᾐ␇);
+Test_N(q␇ᾑ␇, q␇ᾑ␇, q␇ᾑ␇, q␇ᾑ␇, q␇ᾑ␇);
+Test_N(q␇ᾒ␇, q␇ᾒ␇, q␇ᾒ␇, q␇ᾒ␇, q␇ᾒ␇);
+Test_N(q␇ᾓ␇, q␇ᾓ␇, q␇ᾓ␇, q␇ᾓ␇, q␇ᾓ␇);
+Test_N(q␇ᾔ␇, q␇ᾔ␇, q␇ᾔ␇, q␇ᾔ␇, q␇ᾔ␇);
+Test_N(q␇ᾕ␇, q␇ᾕ␇, q␇ᾕ␇, q␇ᾕ␇, q␇ᾕ␇);
+Test_N(q␇ᾖ␇, q␇ᾖ␇, q␇ᾖ␇, q␇ᾖ␇, q␇ᾖ␇);
+Test_N(q␇ᾗ␇, q␇ᾗ␇, q␇ᾗ␇, q␇ᾗ␇, q␇ᾗ␇);
+Test_N(q␇ᾘ␇, q␇ᾘ␇, q␇ᾘ␇, q␇ᾘ␇, q␇ᾘ␇);
+Test_N(q␇ᾙ␇, q␇ᾙ␇, q␇ᾙ␇, q␇ᾙ␇, q␇ᾙ␇);
+Test_N(q␇ᾚ␇, q␇ᾚ␇, q␇ᾚ␇, q␇ᾚ␇, q␇ᾚ␇);
+Test_N(q␇ᾛ␇, q␇ᾛ␇, q␇ᾛ␇, q␇ᾛ␇, q␇ᾛ␇);
+Test_N(q␇ᾜ␇, q␇ᾜ␇, q␇ᾜ␇, q␇ᾜ␇, q␇ᾜ␇);
+Test_N(q␇ᾝ␇, q␇ᾝ␇, q␇ᾝ␇, q␇ᾝ␇, q␇ᾝ␇);
+Test_N(q␇ᾞ␇, q␇ᾞ␇, q␇ᾞ␇, q␇ᾞ␇, q␇ᾞ␇);
+Test_N(q␇ᾟ␇, q␇ᾟ␇, q␇ᾟ␇, q␇ᾟ␇, q␇ᾟ␇);
+Test_N(q␇ᾠ␇, q␇ᾠ␇, q␇ᾠ␇, q␇ᾠ␇, q␇ᾠ␇);
+Test_N(q␇ᾡ␇, q␇ᾡ␇, q␇ᾡ␇, q␇ᾡ␇, q␇ᾡ␇);
+Test_N(q␇ᾢ␇, q␇ᾢ␇, q␇ᾢ␇, q␇ᾢ␇, q␇ᾢ␇);
+Test_N(q␇ᾣ␇, q␇ᾣ␇, q␇ᾣ␇, q␇ᾣ␇, q␇ᾣ␇);
+Test_N(q␇ᾤ␇, q␇ᾤ␇, q␇ᾤ␇, q␇ᾤ␇, q␇ᾤ␇);
+Test_N(q␇ᾥ␇, q␇ᾥ␇, q␇ᾥ␇, q␇ᾥ␇, q␇ᾥ␇);
+Test_N(q␇ᾦ␇, q␇ᾦ␇, q␇ᾦ␇, q␇ᾦ␇, q␇ᾦ␇);
+Test_N(q␇ᾧ␇, q␇ᾧ␇, q␇ᾧ␇, q␇ᾧ␇, q␇ᾧ␇);
+Test_N(q␇ᾨ␇, q␇ᾨ␇, q␇ᾨ␇, q␇ᾨ␇, q␇ᾨ␇);
+Test_N(q␇ᾩ␇, q␇ᾩ␇, q␇ᾩ␇, q␇ᾩ␇, q␇ᾩ␇);
+Test_N(q␇ᾪ␇, q␇ᾪ␇, q␇ᾪ␇, q␇ᾪ␇, q␇ᾪ␇);
+Test_N(q␇ᾫ␇, q␇ᾫ␇, q␇ᾫ␇, q␇ᾫ␇, q␇ᾫ␇);
+Test_N(q␇ᾬ␇, q␇ᾬ␇, q␇ᾬ␇, q␇ᾬ␇, q␇ᾬ␇);
+Test_N(q␇ᾭ␇, q␇ᾭ␇, q␇ᾭ␇, q␇ᾭ␇, q␇ᾭ␇);
+Test_N(q␇ᾮ␇, q␇ᾮ␇, q␇ᾮ␇, q␇ᾮ␇, q␇ᾮ␇);
+Test_N(q␇ᾯ␇, q␇ᾯ␇, q␇ᾯ␇, q␇ᾯ␇, q␇ᾯ␇);
+Test_N(q␇ᾰ␇, q␇ᾰ␇, q␇ᾰ␇, q␇ᾰ␇, q␇ᾰ␇);
+Test_N(q␇ᾱ␇, q␇ᾱ␇, q␇ᾱ␇, q␇ᾱ␇, q␇ᾱ␇);
+Test_N(q␇ᾲ␇, q␇ᾲ␇, q␇ᾲ␇, q␇ᾲ␇, q␇ᾲ␇);
+Test_N(q␇ᾳ␇, q␇ᾳ␇, q␇ᾳ␇, q␇ᾳ␇, q␇ᾳ␇);
+Test_N(q␇ᾴ␇, q␇ᾴ␇, q␇ᾴ␇, q␇ᾴ␇, q␇ᾴ␇);
+Test_N(q␇ᾶ␇, q␇ᾶ␇, q␇ᾶ␇, q␇ᾶ␇, q␇ᾶ␇);
+Test_N(q␇ᾷ␇, q␇ᾷ␇, q␇ᾷ␇, q␇ᾷ␇, q␇ᾷ␇);
+Test_N(q␇Ᾰ␇, q␇Ᾰ␇, q␇Ᾰ␇, q␇Ᾰ␇, q␇Ᾰ␇);
+Test_N(q␇Ᾱ␇, q␇Ᾱ␇, q␇Ᾱ␇, q␇Ᾱ␇, q␇Ᾱ␇);
+Test_N(q␇Ὰ␇, q␇Ὰ␇, q␇Ὰ␇, q␇Ὰ␇, q␇Ὰ␇);
+Test_N(q␇Ά␇, q␇Ά␇, q␇Ά␇, q␇Ά␇, q␇Ά␇);
+Test_N(q␇ᾼ␇, q␇ᾼ␇, q␇ᾼ␇, q␇ᾼ␇, q␇ᾼ␇);
+Test_N(q␇᾽␇, q␇᾽␇, q␇᾽␇, q␇ ̓␇, q␇ ̓␇);
+Test_N(q␇ι␇, q␇ι␇, q␇ι␇, q␇ι␇, q␇ι␇);
+Test_N(q␇᾿␇, q␇᾿␇, q␇᾿␇, q␇ ̓␇, q␇ ̓␇);
+Test_N(q␇῀␇, q␇῀␇, q␇῀␇, q␇ ͂␇, q␇ ͂␇);
+Test_N(q␇῁␇, q␇῁␇, q␇῁␇, q␇ ̈͂␇, q␇ ̈͂␇);
+Test_N(q␇ῂ␇, q␇ῂ␇, q␇ῂ␇, q␇ῂ␇, q␇ῂ␇);
+Test_N(q␇ῃ␇, q␇ῃ␇, q␇ῃ␇, q␇ῃ␇, q␇ῃ␇);
+Test_N(q␇ῄ␇, q␇ῄ␇, q␇ῄ␇, q␇ῄ␇, q␇ῄ␇);
+Test_N(q␇ῆ␇, q␇ῆ␇, q␇ῆ␇, q␇ῆ␇, q␇ῆ␇);
+Test_N(q␇ῇ␇, q␇ῇ␇, q␇ῇ␇, q␇ῇ␇, q␇ῇ␇);
+Test_N(q␇Ὲ␇, q␇Ὲ␇, q␇Ὲ␇, q␇Ὲ␇, q␇Ὲ␇);
+Test_N(q␇Έ␇, q␇Έ␇, q␇Έ␇, q␇Έ␇, q␇Έ␇);
+Test_N(q␇Ὴ␇, q␇Ὴ␇, q␇Ὴ␇, q␇Ὴ␇, q␇Ὴ␇);
+Test_N(q␇Ή␇, q␇Ή␇, q␇Ή␇, q␇Ή␇, q␇Ή␇);
+Test_N(q␇ῌ␇, q␇ῌ␇, q␇ῌ␇, q␇ῌ␇, q␇ῌ␇);
+Test_N(q␇῍␇, q␇῍␇, q␇῍␇, q␇ ̓̀␇, q␇ ̓̀␇);
+Test_N(q␇῎␇, q␇῎␇, q␇῎␇, q␇ ̓́␇, q␇ ̓́␇);
+Test_N(q␇῏␇, q␇῏␇, q␇῏␇, q␇ ̓͂␇, q␇ ̓͂␇);
+Test_N(q␇ῐ␇, q␇ῐ␇, q␇ῐ␇, q␇ῐ␇, q␇ῐ␇);
+Test_N(q␇ῑ␇, q␇ῑ␇, q␇ῑ␇, q␇ῑ␇, q␇ῑ␇);
+Test_N(q␇ῒ␇, q␇ῒ␇, q␇ῒ␇, q␇ῒ␇, q␇ῒ␇);
+Test_N(q␇ΐ␇, q␇ΐ␇, q␇ΐ␇, q␇ΐ␇, q␇ΐ␇);
+Test_N(q␇ῖ␇, q␇ῖ␇, q␇ῖ␇, q␇ῖ␇, q␇ῖ␇);
+Test_N(q␇ῗ␇, q␇ῗ␇, q␇ῗ␇, q␇ῗ␇, q␇ῗ␇);
+Test_N(q␇Ῐ␇, q␇Ῐ␇, q␇Ῐ␇, q␇Ῐ␇, q␇Ῐ␇);
+Test_N(q␇Ῑ␇, q␇Ῑ␇, q␇Ῑ␇, q␇Ῑ␇, q␇Ῑ␇);
+Test_N(q␇Ὶ␇, q␇Ὶ␇, q␇Ὶ␇, q␇Ὶ␇, q␇Ὶ␇);
+Test_N(q␇Ί␇, q␇Ί␇, q␇Ί␇, q␇Ί␇, q␇Ί␇);
+Test_N(q␇῝␇, q␇῝␇, q␇῝␇, q␇ ̔̀␇, q␇ ̔̀␇);
+Test_N(q␇῞␇, q␇῞␇, q␇῞␇, q␇ ̔́␇, q␇ ̔́␇);
+Test_N(q␇῟␇, q␇῟␇, q␇῟␇, q␇ ̔͂␇, q␇ ̔͂␇);
+Test_N(q␇ῠ␇, q␇ῠ␇, q␇ῠ␇, q␇ῠ␇, q␇ῠ␇);
+Test_N(q␇ῡ␇, q␇ῡ␇, q␇ῡ␇, q␇ῡ␇, q␇ῡ␇);
+Test_N(q␇ῢ␇, q␇ῢ␇, q␇ῢ␇, q␇ῢ␇, q␇ῢ␇);
+Test_N(q␇ΰ␇, q␇ΰ␇, q␇ΰ␇, q␇ΰ␇, q␇ΰ␇);
+Test_N(q␇ῤ␇, q␇ῤ␇, q␇ῤ␇, q␇ῤ␇, q␇ῤ␇);
+Test_N(q␇ῥ␇, q␇ῥ␇, q␇ῥ␇, q␇ῥ␇, q␇ῥ␇);
+Test_N(q␇ῦ␇, q␇ῦ␇, q␇ῦ␇, q␇ῦ␇, q␇ῦ␇);
+Test_N(q␇ῧ␇, q␇ῧ␇, q␇ῧ␇, q␇ῧ␇, q␇ῧ␇);
+Test_N(q␇Ῠ␇, q␇Ῠ␇, q␇Ῠ␇, q␇Ῠ␇, q␇Ῠ␇);
+Test_N(q␇Ῡ␇, q␇Ῡ␇, q␇Ῡ␇, q␇Ῡ␇, q␇Ῡ␇);
+Test_N(q␇Ὺ␇, q␇Ὺ␇, q␇Ὺ␇, q␇Ὺ␇, q␇Ὺ␇);
+Test_N(q␇Ύ␇, q␇Ύ␇, q␇Ύ␇, q␇Ύ␇, q␇Ύ␇);
+Test_N(q␇Ῥ␇, q␇Ῥ␇, q␇Ῥ␇, q␇Ῥ␇, q␇Ῥ␇);
+Test_N(q␇῭␇, q␇῭␇, q␇῭␇, q␇ ̈̀␇, q␇ ̈̀␇);
+Test_N(q␇΅␇, q␇΅␇, q␇΅␇, q␇ ̈́␇, q␇ ̈́␇);
+Test_N(q␇`␇, q␇`␇, q␇`␇, q␇`␇, q␇`␇);
+Test_N(q␇ῲ␇, q␇ῲ␇, q␇ῲ␇, q␇ῲ␇, q␇ῲ␇);
+Test_N(q␇ῳ␇, q␇ῳ␇, q␇ῳ␇, q␇ῳ␇, q␇ῳ␇);
+Test_N(q␇ῴ␇, q␇ῴ␇, q␇ῴ␇, q␇ῴ␇, q␇ῴ␇);
+Test_N(q␇ῶ␇, q␇ῶ␇, q␇ῶ␇, q␇ῶ␇, q␇ῶ␇);
+Test_N(q␇ῷ␇, q␇ῷ␇, q␇ῷ␇, q␇ῷ␇, q␇ῷ␇);
+Test_N(q␇Ὸ␇, q␇Ὸ␇, q␇Ὸ␇, q␇Ὸ␇, q␇Ὸ␇);
+Test_N(q␇Ό␇, q␇Ό␇, q␇Ό␇, q␇Ό␇, q␇Ό␇);
+Test_N(q␇Ὼ␇, q␇Ὼ␇, q␇Ὼ␇, q␇Ὼ␇, q␇Ὼ␇);
+Test_N(q␇Ώ␇, q␇Ώ␇, q␇Ώ␇, q␇Ώ␇, q␇Ώ␇);
+Test_N(q␇ῼ␇, q␇ῼ␇, q␇ῼ␇, q␇ῼ␇, q␇ῼ␇);
+Test_N(q␇´␇, q␇´␇, q␇´␇, q␇ ́␇, q␇ ́␇);
+Test_N(q␇῾␇, q␇῾␇, q␇῾␇, q␇ ̔␇, q␇ ̔␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇‑␇, q␇‑␇, q␇‑␇, q␇‐␇, q␇‐␇);
+Test_N(q␇‗␇, q␇‗␇, q␇‗␇, q␇ ̳␇, q␇ ̳␇);
+Test_N(q␇․␇, q␇․␇, q␇․␇, q␇.␇, q␇.␇);
+Test_N(q␇‥␇, q␇‥␇, q␇‥␇, q␇..␇, q␇..␇);
+Test_N(q␇…␇, q␇…␇, q␇…␇, q␇...␇, q␇...␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇″␇, q␇″␇, q␇″␇, q␇′′␇, q␇′′␇);
+Test_N(q␇‴␇, q␇‴␇, q␇‴␇, q␇′′′␇, q␇′′′␇);
+Test_N(q␇‶␇, q␇‶␇, q␇‶␇, q␇‵‵␇, q␇‵‵␇);
+Test_N(q␇‷␇, q␇‷␇, q␇‷␇, q␇‵‵‵␇, q␇‵‵‵␇);
+Test_N(q␇‼␇, q␇‼␇, q␇‼␇, q␇!!␇, q␇!!␇);
+Test_N(q␇‾␇, q␇‾␇, q␇‾␇, q␇ ̅␇, q␇ ̅␇);
+Test_N(q␇⁇␇, q␇⁇␇, q␇⁇␇, q␇??␇, q␇??␇);
+Test_N(q␇⁈␇, q␇⁈␇, q␇⁈␇, q␇?!␇, q␇?!␇);
+Test_N(q␇⁉␇, q␇⁉␇, q␇⁉␇, q␇!?␇, q␇!?␇);
+Test_N(q␇⁗␇, q␇⁗␇, q␇⁗␇, q␇′′′′␇, q␇′′′′␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇⁰␇, q␇⁰␇, q␇⁰␇, q␇0␇, q␇0␇);
+Test_N(q␇ⁱ␇, q␇ⁱ␇, q␇ⁱ␇, q␇i␇, q␇i␇);
+Test_N(q␇⁴␇, q␇⁴␇, q␇⁴␇, q␇4␇, q␇4␇);
+Test_N(q␇⁵␇, q␇⁵␇, q␇⁵␇, q␇5␇, q␇5␇);
+Test_N(q␇⁶␇, q␇⁶␇, q␇⁶␇, q␇6␇, q␇6␇);
+Test_N(q␇⁷␇, q␇⁷␇, q␇⁷␇, q␇7␇, q␇7␇);
+Test_N(q␇⁸␇, q␇⁸␇, q␇⁸␇, q␇8␇, q␇8␇);
+Test_N(q␇⁹␇, q␇⁹␇, q␇⁹␇, q␇9␇, q␇9␇);
+Test_N(q␇⁺␇, q␇⁺␇, q␇⁺␇, q␇+␇, q␇+␇);
+Test_N(q␇⁻␇, q␇⁻␇, q␇⁻␇, q␇−␇, q␇−␇);
+Test_N(q␇⁼␇, q␇⁼␇, q␇⁼␇, q␇=␇, q␇=␇);
+Test_N(q␇⁽␇, q␇⁽␇, q␇⁽␇, q␇(␇, q␇(␇);
+Test_N(q␇⁾␇, q␇⁾␇, q␇⁾␇, q␇)␇, q␇)␇);
+Test_N(q␇ⁿ␇, q␇ⁿ␇, q␇ⁿ␇, q␇n␇, q␇n␇);
+Test_N(q␇₀␇, q␇₀␇, q␇₀␇, q␇0␇, q␇0␇);
+Test_N(q␇₁␇, q␇₁␇, q␇₁␇, q␇1␇, q␇1␇);
+Test_N(q␇₂␇, q␇₂␇, q␇₂␇, q␇2␇, q␇2␇);
+Test_N(q␇₃␇, q␇₃␇, q␇₃␇, q␇3␇, q␇3␇);
+Test_N(q␇₄␇, q␇₄␇, q␇₄␇, q␇4␇, q␇4␇);
+Test_N(q␇₅␇, q␇₅␇, q␇₅␇, q␇5␇, q␇5␇);
+Test_N(q␇₆␇, q␇₆␇, q␇₆␇, q␇6␇, q␇6␇);
+Test_N(q␇₇␇, q␇₇␇, q␇₇␇, q␇7␇, q␇7␇);
+Test_N(q␇₈␇, q␇₈␇, q␇₈␇, q␇8␇, q␇8␇);
+Test_N(q␇₉␇, q␇₉␇, q␇₉␇, q␇9␇, q␇9␇);
+Test_N(q␇₊␇, q␇₊␇, q␇₊␇, q␇+␇, q␇+␇);
+Test_N(q␇₋␇, q␇₋␇, q␇₋␇, q␇−␇, q␇−␇);
+Test_N(q␇₌␇, q␇₌␇, q␇₌␇, q␇=␇, q␇=␇);
+Test_N(q␇₍␇, q␇₍␇, q␇₍␇, q␇(␇, q␇(␇);
+Test_N(q␇₎␇, q␇₎␇, q␇₎␇, q␇)␇, q␇)␇);
+Test_N(q␇ₐ␇, q␇ₐ␇, q␇ₐ␇, q␇a␇, q␇a␇);
+Test_N(q␇ₑ␇, q␇ₑ␇, q␇ₑ␇, q␇e␇, q␇e␇);
+Test_N(q␇ₒ␇, q␇ₒ␇, q␇ₒ␇, q␇o␇, q␇o␇);
+Test_N(q␇ₓ␇, q␇ₓ␇, q␇ₓ␇, q␇x␇, q␇x␇);
+Test_N(q␇ₔ␇, q␇ₔ␇, q␇ₔ␇, q␇ə␇, q␇ə␇);
+Test_N(q␇ₕ␇, q␇ₕ␇, q␇ₕ␇, q␇h␇, q␇h␇);
+Test_N(q␇ₖ␇, q␇ₖ␇, q␇ₖ␇, q␇k␇, q␇k␇);
+Test_N(q␇ₗ␇, q␇ₗ␇, q␇ₗ␇, q␇l␇, q␇l␇);
+Test_N(q␇ₘ␇, q␇ₘ␇, q␇ₘ␇, q␇m␇, q␇m␇);
+Test_N(q␇ₙ␇, q␇ₙ␇, q␇ₙ␇, q␇n␇, q␇n␇);
+Test_N(q␇ₚ␇, q␇ₚ␇, q␇ₚ␇, q␇p␇, q␇p␇);
+Test_N(q␇ₛ␇, q␇ₛ␇, q␇ₛ␇, q␇s␇, q␇s␇);
+Test_N(q␇ₜ␇, q␇ₜ␇, q␇ₜ␇, q␇t␇, q␇t␇);
+Test_N(q␇₨␇, q␇₨␇, q␇₨␇, q␇Rs␇, q␇Rs␇);
+Test_N(q␇℀␇, q␇℀␇, q␇℀␇, q␇a/c␇, q␇a/c␇);
+Test_N(q␇℁␇, q␇℁␇, q␇℁␇, q␇a/s␇, q␇a/s␇);
+Test_N(q␇ℂ␇, q␇ℂ␇, q␇ℂ␇, q␇C␇, q␇C␇);
+Test_N(q␇℃␇, q␇℃␇, q␇℃␇, q␇°C␇, q␇°C␇);
+Test_N(q␇℅␇, q␇℅␇, q␇℅␇, q␇c/o␇, q␇c/o␇);
+Test_N(q␇℆␇, q␇℆␇, q␇℆␇, q␇c/u␇, q␇c/u␇);
+Test_N(q␇ℇ␇, q␇ℇ␇, q␇ℇ␇, q␇Ɛ␇, q␇Ɛ␇);
+Test_N(q␇℉␇, q␇℉␇, q␇℉␇, q␇°F␇, q␇°F␇);
+Test_N(q␇ℊ␇, q␇ℊ␇, q␇ℊ␇, q␇g␇, q␇g␇);
+Test_N(q␇ℋ␇, q␇ℋ␇, q␇ℋ␇, q␇H␇, q␇H␇);
+Test_N(q␇ℌ␇, q␇ℌ␇, q␇ℌ␇, q␇H␇, q␇H␇);
+Test_N(q␇ℍ␇, q␇ℍ␇, q␇ℍ␇, q␇H␇, q␇H␇);
+Test_N(q␇ℎ␇, q␇ℎ␇, q␇ℎ␇, q␇h␇, q␇h␇);
+Test_N(q␇ℏ␇, q␇ℏ␇, q␇ℏ␇, q␇ħ␇, q␇ħ␇);
+Test_N(q␇ℐ␇, q␇ℐ␇, q␇ℐ␇, q␇I␇, q␇I␇);
+Test_N(q␇ℑ␇, q␇ℑ␇, q␇ℑ␇, q␇I␇, q␇I␇);
+Test_N(q␇ℒ␇, q␇ℒ␇, q␇ℒ␇, q␇L␇, q␇L␇);
+Test_N(q␇ℓ␇, q␇ℓ␇, q␇ℓ␇, q␇l␇, q␇l␇);
+Test_N(q␇ℕ␇, q␇ℕ␇, q␇ℕ␇, q␇N␇, q␇N␇);
+Test_N(q␇№␇, q␇№␇, q␇№␇, q␇No␇, q␇No␇);
+Test_N(q␇ℙ␇, q␇ℙ␇, q␇ℙ␇, q␇P␇, q␇P␇);
+Test_N(q␇ℚ␇, q␇ℚ␇, q␇ℚ␇, q␇Q␇, q␇Q␇);
+Test_N(q␇ℛ␇, q␇ℛ␇, q␇ℛ␇, q␇R␇, q␇R␇);
+Test_N(q␇ℜ␇, q␇ℜ␇, q␇ℜ␇, q␇R␇, q␇R␇);
+Test_N(q␇ℝ␇, q␇ℝ␇, q␇ℝ␇, q␇R␇, q␇R␇);
+Test_N(q␇℠␇, q␇℠␇, q␇℠␇, q␇SM␇, q␇SM␇);
+Test_N(q␇℡␇, q␇℡␇, q␇℡␇, q␇TEL␇, q␇TEL␇);
+Test_N(q␇™␇, q␇™␇, q␇™␇, q␇TM␇, q␇TM␇);
+Test_N(q␇ℤ␇, q␇ℤ␇, q␇ℤ␇, q␇Z␇, q␇Z␇);
+Test_N(q␇Ω␇, q␇Ω␇, q␇Ω␇, q␇Ω␇, q␇Ω␇);
+Test_N(q␇ℨ␇, q␇ℨ␇, q␇ℨ␇, q␇Z␇, q␇Z␇);
+Test_N(q␇K␇, q␇K␇, q␇K␇, q␇K␇, q␇K␇);
+Test_N(q␇Å␇, q␇Å␇, q␇Å␇, q␇Å␇, q␇Å␇);
+Test_N(q␇ℬ␇, q␇ℬ␇, q␇ℬ␇, q␇B␇, q␇B␇);
+Test_N(q␇ℭ␇, q␇ℭ␇, q␇ℭ␇, q␇C␇, q␇C␇);
+Test_N(q␇ℯ␇, q␇ℯ␇, q␇ℯ␇, q␇e␇, q␇e␇);
+Test_N(q␇ℰ␇, q␇ℰ␇, q␇ℰ␇, q␇E␇, q␇E␇);
+Test_N(q␇ℱ␇, q␇ℱ␇, q␇ℱ␇, q␇F␇, q␇F␇);
+Test_N(q␇ℳ␇, q␇ℳ␇, q␇ℳ␇, q␇M␇, q␇M␇);
+Test_N(q␇ℴ␇, q␇ℴ␇, q␇ℴ␇, q␇o␇, q␇o␇);
+Test_N(q␇ℵ␇, q␇ℵ␇, q␇ℵ␇, q␇א␇, q␇א␇);
+Test_N(q␇ℶ␇, q␇ℶ␇, q␇ℶ␇, q␇ב␇, q␇ב␇);
+Test_N(q␇ℷ␇, q␇ℷ␇, q␇ℷ␇, q␇ג␇, q␇ג␇);
+Test_N(q␇ℸ␇, q␇ℸ␇, q␇ℸ␇, q␇ד␇, q␇ד␇);
+Test_N(q␇ℹ␇, q␇ℹ␇, q␇ℹ␇, q␇i␇, q␇i␇);
+Test_N(q␇℻␇, q␇℻␇, q␇℻␇, q␇FAX␇, q␇FAX␇);
+Test_N(q␇ℼ␇, q␇ℼ␇, q␇ℼ␇, q␇π␇, q␇π␇);
+Test_N(q␇ℽ␇, q␇ℽ␇, q␇ℽ␇, q␇γ␇, q␇γ␇);
+Test_N(q␇ℾ␇, q␇ℾ␇, q␇ℾ␇, q␇Γ␇, q␇Γ␇);
+Test_N(q␇ℿ␇, q␇ℿ␇, q␇ℿ␇, q␇Π␇, q␇Π␇);
+Test_N(q␇⅀␇, q␇⅀␇, q␇⅀␇, q␇∑␇, q␇∑␇);
+Test_N(q␇ⅅ␇, q␇ⅅ␇, q␇ⅅ␇, q␇D␇, q␇D␇);
+Test_N(q␇ⅆ␇, q␇ⅆ␇, q␇ⅆ␇, q␇d␇, q␇d␇);
+Test_N(q␇ⅇ␇, q␇ⅇ␇, q␇ⅇ␇, q␇e␇, q␇e␇);
+Test_N(q␇ⅈ␇, q␇ⅈ␇, q␇ⅈ␇, q␇i␇, q␇i␇);
+Test_N(q␇ⅉ␇, q␇ⅉ␇, q␇ⅉ␇, q␇j␇, q␇j␇);
+Test_N(q␇⅐␇, q␇⅐␇, q␇⅐␇, q␇1⁄7␇, q␇1⁄7␇);
+Test_N(q␇⅑␇, q␇⅑␇, q␇⅑␇, q␇1⁄9␇, q␇1⁄9␇);
+Test_N(q␇⅒␇, q␇⅒␇, q␇⅒␇, q␇1⁄10␇, q␇1⁄10␇);
+Test_N(q␇⅓␇, q␇⅓␇, q␇⅓␇, q␇1⁄3␇, q␇1⁄3␇);
+Test_N(q␇⅔␇, q␇⅔␇, q␇⅔␇, q␇2⁄3␇, q␇2⁄3␇);
+Test_N(q␇⅕␇, q␇⅕␇, q␇⅕␇, q␇1⁄5␇, q␇1⁄5␇);
+Test_N(q␇⅖␇, q␇⅖␇, q␇⅖␇, q␇2⁄5␇, q␇2⁄5␇);
+Test_N(q␇⅗␇, q␇⅗␇, q␇⅗␇, q␇3⁄5␇, q␇3⁄5␇);
+Test_N(q␇⅘␇, q␇⅘␇, q␇⅘␇, q␇4⁄5␇, q␇4⁄5␇);
+Test_N(q␇⅙␇, q␇⅙␇, q␇⅙␇, q␇1⁄6␇, q␇1⁄6␇);
+Test_N(q␇⅚␇, q␇⅚␇, q␇⅚␇, q␇5⁄6␇, q␇5⁄6␇);
+Test_N(q␇⅛␇, q␇⅛␇, q␇⅛␇, q␇1⁄8␇, q␇1⁄8␇);
+Test_N(q␇⅜␇, q␇⅜␇, q␇⅜␇, q␇3⁄8␇, q␇3⁄8␇);
+Test_N(q␇⅝␇, q␇⅝␇, q␇⅝␇, q␇5⁄8␇, q␇5⁄8␇);
+Test_N(q␇⅞␇, q␇⅞␇, q␇⅞␇, q␇7⁄8␇, q␇7⁄8␇);
+Test_N(q␇⅟␇, q␇⅟␇, q␇⅟␇, q␇1⁄␇, q␇1⁄␇);
+Test_N(q␇Ⅰ␇, q␇Ⅰ␇, q␇Ⅰ␇, q␇I␇, q␇I␇);
+Test_N(q␇Ⅱ␇, q␇Ⅱ␇, q␇Ⅱ␇, q␇II␇, q␇II␇);
+Test_N(q␇Ⅲ␇, q␇Ⅲ␇, q␇Ⅲ␇, q␇III␇, q␇III␇);
+Test_N(q␇Ⅳ␇, q␇Ⅳ␇, q␇Ⅳ␇, q␇IV␇, q␇IV␇);
+Test_N(q␇Ⅴ␇, q␇Ⅴ␇, q␇Ⅴ␇, q␇V␇, q␇V␇);
+Test_N(q␇Ⅵ␇, q␇Ⅵ␇, q␇Ⅵ␇, q␇VI␇, q␇VI␇);
+Test_N(q␇Ⅶ␇, q␇Ⅶ␇, q␇Ⅶ␇, q␇VII␇, q␇VII␇);
+Test_N(q␇Ⅷ␇, q␇Ⅷ␇, q␇Ⅷ␇, q␇VIII␇, q␇VIII␇);
+Test_N(q␇Ⅸ␇, q␇Ⅸ␇, q␇Ⅸ␇, q␇IX␇, q␇IX␇);
+Test_N(q␇Ⅹ␇, q␇Ⅹ␇, q␇Ⅹ␇, q␇X␇, q␇X␇);
+Test_N(q␇Ⅺ␇, q␇Ⅺ␇, q␇Ⅺ␇, q␇XI␇, q␇XI␇);
+Test_N(q␇Ⅻ␇, q␇Ⅻ␇, q␇Ⅻ␇, q␇XII␇, q␇XII␇);
+Test_N(q␇Ⅼ␇, q␇Ⅼ␇, q␇Ⅼ␇, q␇L␇, q␇L␇);
+Test_N(q␇Ⅽ␇, q␇Ⅽ␇, q␇Ⅽ␇, q␇C␇, q␇C␇);
+Test_N(q␇Ⅾ␇, q␇Ⅾ␇, q␇Ⅾ␇, q␇D␇, q␇D␇);
+Test_N(q␇Ⅿ␇, q␇Ⅿ␇, q␇Ⅿ␇, q␇M␇, q␇M␇);
+Test_N(q␇ⅰ␇, q␇ⅰ␇, q␇ⅰ␇, q␇i␇, q␇i␇);
+Test_N(q␇ⅱ␇, q␇ⅱ␇, q␇ⅱ␇, q␇ii␇, q␇ii␇);
+Test_N(q␇ⅲ␇, q␇ⅲ␇, q␇ⅲ␇, q␇iii␇, q␇iii␇);
+Test_N(q␇ⅳ␇, q␇ⅳ␇, q␇ⅳ␇, q␇iv␇, q␇iv␇);
+Test_N(q␇ⅴ␇, q␇ⅴ␇, q␇ⅴ␇, q␇v␇, q␇v␇);
+Test_N(q␇ⅵ␇, q␇ⅵ␇, q␇ⅵ␇, q␇vi␇, q␇vi␇);
+Test_N(q␇ⅶ␇, q␇ⅶ␇, q␇ⅶ␇, q␇vii␇, q␇vii␇);
+Test_N(q␇ⅷ␇, q␇ⅷ␇, q␇ⅷ␇, q␇viii␇, q␇viii␇);
+Test_N(q␇ⅸ␇, q␇ⅸ␇, q␇ⅸ␇, q␇ix␇, q␇ix␇);
+Test_N(q␇ⅹ␇, q␇ⅹ␇, q␇ⅹ␇, q␇x␇, q␇x␇);
+Test_N(q␇ⅺ␇, q␇ⅺ␇, q␇ⅺ␇, q␇xi␇, q␇xi␇);
+Test_N(q␇ⅻ␇, q␇ⅻ␇, q␇ⅻ␇, q␇xii␇, q␇xii␇);
+Test_N(q␇ⅼ␇, q␇ⅼ␇, q␇ⅼ␇, q␇l␇, q␇l␇);
+Test_N(q␇ⅽ␇, q␇ⅽ␇, q␇ⅽ␇, q␇c␇, q␇c␇);
+Test_N(q␇ⅾ␇, q␇ⅾ␇, q␇ⅾ␇, q␇d␇, q␇d␇);
+Test_N(q␇ⅿ␇, q␇ⅿ␇, q␇ⅿ␇, q␇m␇, q␇m␇);
+Test_N(q␇↉␇, q␇↉␇, q␇↉␇, q␇0⁄3␇, q␇0⁄3␇);
+Test_N(q␇↚␇, q␇↚␇, q␇↚␇, q␇↚␇, q␇↚␇);
+Test_N(q␇↛␇, q␇↛␇, q␇↛␇, q␇↛␇, q␇↛␇);
+Test_N(q␇↮␇, q␇↮␇, q␇↮␇, q␇↮␇, q␇↮␇);
+Test_N(q␇⇍␇, q␇⇍␇, q␇⇍␇, q␇⇍␇, q␇⇍␇);
+Test_N(q␇⇎␇, q␇⇎␇, q␇⇎␇, q␇⇎␇, q␇⇎␇);
+Test_N(q␇⇏␇, q␇⇏␇, q␇⇏␇, q␇⇏␇, q␇⇏␇);
+Test_N(q␇∄␇, q␇∄␇, q␇∄␇, q␇∄␇, q␇∄␇);
+Test_N(q␇∉␇, q␇∉␇, q␇∉␇, q␇∉␇, q␇∉␇);
+Test_N(q␇∌␇, q␇∌␇, q␇∌␇, q␇∌␇, q␇∌␇);
+Test_N(q␇∤␇, q␇∤␇, q␇∤␇, q␇∤␇, q␇∤␇);
+Test_N(q␇∦␇, q␇∦␇, q␇∦␇, q␇∦␇, q␇∦␇);
+Test_N(q␇∬␇, q␇∬␇, q␇∬␇, q␇∫∫␇, q␇∫∫␇);
+Test_N(q␇∭␇, q␇∭␇, q␇∭␇, q␇∫∫∫␇, q␇∫∫∫␇);
+Test_N(q␇∯␇, q␇∯␇, q␇∯␇, q␇∮∮␇, q␇∮∮␇);
+Test_N(q␇∰␇, q␇∰␇, q␇∰␇, q␇∮∮∮␇, q␇∮∮∮␇);
+Test_N(q␇≁␇, q␇≁␇, q␇≁␇, q␇≁␇, q␇≁␇);
+Test_N(q␇≄␇, q␇≄␇, q␇≄␇, q␇≄␇, q␇≄␇);
+Test_N(q␇≇␇, q␇≇␇, q␇≇␇, q␇≇␇, q␇≇␇);
+Test_N(q␇≉␇, q␇≉␇, q␇≉␇, q␇≉␇, q␇≉␇);
+Test_N(q␇≠␇, q␇≠␇, q␇≠␇, q␇≠␇, q␇≠␇);
+Test_N(q␇≢␇, q␇≢␇, q␇≢␇, q␇≢␇, q␇≢␇);
+Test_N(q␇≭␇, q␇≭␇, q␇≭␇, q␇≭␇, q␇≭␇);
+Test_N(q␇≮␇, q␇≮␇, q␇≮␇, q␇≮␇, q␇≮␇);
+Test_N(q␇≯␇, q␇≯␇, q␇≯␇, q␇≯␇, q␇≯␇);
+Test_N(q␇≰␇, q␇≰␇, q␇≰␇, q␇≰␇, q␇≰␇);
+Test_N(q␇≱␇, q␇≱␇, q␇≱␇, q␇≱␇, q␇≱␇);
+Test_N(q␇≴␇, q␇≴␇, q␇≴␇, q␇≴␇, q␇≴␇);
+Test_N(q␇≵␇, q␇≵␇, q␇≵␇, q␇≵␇, q␇≵␇);
+Test_N(q␇≸␇, q␇≸␇, q␇≸␇, q␇≸␇, q␇≸␇);
+Test_N(q␇≹␇, q␇≹␇, q␇≹␇, q␇≹␇, q␇≹␇);
+Test_N(q␇⊀␇, q␇⊀␇, q␇⊀␇, q␇⊀␇, q␇⊀␇);
+Test_N(q␇⊁␇, q␇⊁␇, q␇⊁␇, q␇⊁␇, q␇⊁␇);
+Test_N(q␇⊄␇, q␇⊄␇, q␇⊄␇, q␇⊄␇, q␇⊄␇);
+Test_N(q␇⊅␇, q␇⊅␇, q␇⊅␇, q␇⊅␇, q␇⊅␇);
+Test_N(q␇⊈␇, q␇⊈␇, q␇⊈␇, q␇⊈␇, q␇⊈␇);
+Test_N(q␇⊉␇, q␇⊉␇, q␇⊉␇, q␇⊉␇, q␇⊉␇);
+Test_N(q␇⊬␇, q␇⊬␇, q␇⊬␇, q␇⊬␇, q␇⊬␇);
+Test_N(q␇⊭␇, q␇⊭␇, q␇⊭␇, q␇⊭␇, q␇⊭␇);
+Test_N(q␇⊮␇, q␇⊮␇, q␇⊮␇, q␇⊮␇, q␇⊮␇);
+Test_N(q␇⊯␇, q␇⊯␇, q␇⊯␇, q␇⊯␇, q␇⊯␇);
+Test_N(q␇⋠␇, q␇⋠␇, q␇⋠␇, q␇⋠␇, q␇⋠␇);
+Test_N(q␇⋡␇, q␇⋡␇, q␇⋡␇, q␇⋡␇, q␇⋡␇);
+Test_N(q␇⋢␇, q␇⋢␇, q␇⋢␇, q␇⋢␇, q␇⋢␇);
+Test_N(q␇⋣␇, q␇⋣␇, q␇⋣␇, q␇⋣␇, q␇⋣␇);
+Test_N(q␇⋪␇, q␇⋪␇, q␇⋪␇, q␇⋪␇, q␇⋪␇);
+Test_N(q␇⋫␇, q␇⋫␇, q␇⋫␇, q␇⋫␇, q␇⋫␇);
+Test_N(q␇⋬␇, q␇⋬␇, q␇⋬␇, q␇⋬␇, q␇⋬␇);
+Test_N(q␇⋭␇, q␇⋭␇, q␇⋭␇, q␇⋭␇, q␇⋭␇);
+Test_N(q␇〈␇, q␇〈␇, q␇〈␇, q␇〈␇, q␇〈␇);
+Test_N(q␇〉␇, q␇〉␇, q␇〉␇, q␇〉␇, q␇〉␇);
+Test_N(q␇①␇, q␇①␇, q␇①␇, q␇1␇, q␇1␇);
+Test_N(q␇②␇, q␇②␇, q␇②␇, q␇2␇, q␇2␇);
+Test_N(q␇③␇, q␇③␇, q␇③␇, q␇3␇, q␇3␇);
+Test_N(q␇④␇, q␇④␇, q␇④␇, q␇4␇, q␇4␇);
+Test_N(q␇⑤␇, q␇⑤␇, q␇⑤␇, q␇5␇, q␇5␇);
+Test_N(q␇⑥␇, q␇⑥␇, q␇⑥␇, q␇6␇, q␇6␇);
+Test_N(q␇⑦␇, q␇⑦␇, q␇⑦␇, q␇7␇, q␇7␇);
+Test_N(q␇⑧␇, q␇⑧␇, q␇⑧␇, q␇8␇, q␇8␇);
+Test_N(q␇⑨␇, q␇⑨␇, q␇⑨␇, q␇9␇, q␇9␇);
+Test_N(q␇⑩␇, q␇⑩␇, q␇⑩␇, q␇10␇, q␇10␇);
+Test_N(q␇⑪␇, q␇⑪␇, q␇⑪␇, q␇11␇, q␇11␇);
+Test_N(q␇⑫␇, q␇⑫␇, q␇⑫␇, q␇12␇, q␇12␇);
+Test_N(q␇⑬␇, q␇⑬␇, q␇⑬␇, q␇13␇, q␇13␇);
+Test_N(q␇⑭␇, q␇⑭␇, q␇⑭␇, q␇14␇, q␇14␇);
+Test_N(q␇⑮␇, q␇⑮␇, q␇⑮␇, q␇15␇, q␇15␇);
+Test_N(q␇⑯␇, q␇⑯␇, q␇⑯␇, q␇16␇, q␇16␇);
+Test_N(q␇⑰␇, q␇⑰␇, q␇⑰␇, q␇17␇, q␇17␇);
+Test_N(q␇⑱␇, q␇⑱␇, q␇⑱␇, q␇18␇, q␇18␇);
+Test_N(q␇⑲␇, q␇⑲␇, q␇⑲␇, q␇19␇, q␇19␇);
+Test_N(q␇⑳␇, q␇⑳␇, q␇⑳␇, q␇20␇, q␇20␇);
+Test_N(q␇⑴␇, q␇⑴␇, q␇⑴␇, q␇(1)␇, q␇(1)␇);
+Test_N(q␇⑵␇, q␇⑵␇, q␇⑵␇, q␇(2)␇, q␇(2)␇);
+Test_N(q␇⑶␇, q␇⑶␇, q␇⑶␇, q␇(3)␇, q␇(3)␇);
+Test_N(q␇⑷␇, q␇⑷␇, q␇⑷␇, q␇(4)␇, q␇(4)␇);
+Test_N(q␇⑸␇, q␇⑸␇, q␇⑸␇, q␇(5)␇, q␇(5)␇);
+Test_N(q␇⑹␇, q␇⑹␇, q␇⑹␇, q␇(6)␇, q␇(6)␇);
+Test_N(q␇⑺␇, q␇⑺␇, q␇⑺␇, q␇(7)␇, q␇(7)␇);
+Test_N(q␇⑻␇, q␇⑻␇, q␇⑻␇, q␇(8)␇, q␇(8)␇);
+Test_N(q␇⑼␇, q␇⑼␇, q␇⑼␇, q␇(9)␇, q␇(9)␇);
+Test_N(q␇⑽␇, q␇⑽␇, q␇⑽␇, q␇(10)␇, q␇(10)␇);
+Test_N(q␇⑾␇, q␇⑾␇, q␇⑾␇, q␇(11)␇, q␇(11)␇);
+Test_N(q␇⑿␇, q␇⑿␇, q␇⑿␇, q␇(12)␇, q␇(12)␇);
+Test_N(q␇⒀␇, q␇⒀␇, q␇⒀␇, q␇(13)␇, q␇(13)␇);
+Test_N(q␇⒁␇, q␇⒁␇, q␇⒁␇, q␇(14)␇, q␇(14)␇);
+Test_N(q␇⒂␇, q␇⒂␇, q␇⒂␇, q␇(15)␇, q␇(15)␇);
+Test_N(q␇⒃␇, q␇⒃␇, q␇⒃␇, q␇(16)␇, q␇(16)␇);
+Test_N(q␇⒄␇, q␇⒄␇, q␇⒄␇, q␇(17)␇, q␇(17)␇);
+Test_N(q␇⒅␇, q␇⒅␇, q␇⒅␇, q␇(18)␇, q␇(18)␇);
+Test_N(q␇⒆␇, q␇⒆␇, q␇⒆␇, q␇(19)␇, q␇(19)␇);
+Test_N(q␇⒇␇, q␇⒇␇, q␇⒇␇, q␇(20)␇, q␇(20)␇);
+Test_N(q␇⒈␇, q␇⒈␇, q␇⒈␇, q␇1.␇, q␇1.␇);
+Test_N(q␇⒉␇, q␇⒉␇, q␇⒉␇, q␇2.␇, q␇2.␇);
+Test_N(q␇⒊␇, q␇⒊␇, q␇⒊␇, q␇3.␇, q␇3.␇);
+Test_N(q␇⒋␇, q␇⒋␇, q␇⒋␇, q␇4.␇, q␇4.␇);
+Test_N(q␇⒌␇, q␇⒌␇, q␇⒌␇, q␇5.␇, q␇5.␇);
+Test_N(q␇⒍␇, q␇⒍␇, q␇⒍␇, q␇6.␇, q␇6.␇);
+Test_N(q␇⒎␇, q␇⒎␇, q␇⒎␇, q␇7.␇, q␇7.␇);
+Test_N(q␇⒏␇, q␇⒏␇, q␇⒏␇, q␇8.␇, q␇8.␇);
+Test_N(q␇⒐␇, q␇⒐␇, q␇⒐␇, q␇9.␇, q␇9.␇);
+Test_N(q␇⒑␇, q␇⒑␇, q␇⒑␇, q␇10.␇, q␇10.␇);
+Test_N(q␇⒒␇, q␇⒒␇, q␇⒒␇, q␇11.␇, q␇11.␇);
+Test_N(q␇⒓␇, q␇⒓␇, q␇⒓␇, q␇12.␇, q␇12.␇);
+Test_N(q␇⒔␇, q␇⒔␇, q␇⒔␇, q␇13.␇, q␇13.␇);
+Test_N(q␇⒕␇, q␇⒕␇, q␇⒕␇, q␇14.␇, q␇14.␇);
+Test_N(q␇⒖␇, q␇⒖␇, q␇⒖␇, q␇15.␇, q␇15.␇);
+Test_N(q␇⒗␇, q␇⒗␇, q␇⒗␇, q␇16.␇, q␇16.␇);
+Test_N(q␇⒘␇, q␇⒘␇, q␇⒘␇, q␇17.␇, q␇17.␇);
+Test_N(q␇⒙␇, q␇⒙␇, q␇⒙␇, q␇18.␇, q␇18.␇);
+Test_N(q␇⒚␇, q␇⒚␇, q␇⒚␇, q␇19.␇, q␇19.␇);
+Test_N(q␇⒛␇, q␇⒛␇, q␇⒛␇, q␇20.␇, q␇20.␇);
+Test_N(q␇⒜␇, q␇⒜␇, q␇⒜␇, q␇(a)␇, q␇(a)␇);
+Test_N(q␇⒝␇, q␇⒝␇, q␇⒝␇, q␇(b)␇, q␇(b)␇);
+Test_N(q␇⒞␇, q␇⒞␇, q␇⒞␇, q␇(c)␇, q␇(c)␇);
+Test_N(q␇⒟␇, q␇⒟␇, q␇⒟␇, q␇(d)␇, q␇(d)␇);
+Test_N(q␇⒠␇, q␇⒠␇, q␇⒠␇, q␇(e)␇, q␇(e)␇);
+Test_N(q␇⒡␇, q␇⒡␇, q␇⒡␇, q␇(f)␇, q␇(f)␇);
+Test_N(q␇⒢␇, q␇⒢␇, q␇⒢␇, q␇(g)␇, q␇(g)␇);
+Test_N(q␇⒣␇, q␇⒣␇, q␇⒣␇, q␇(h)␇, q␇(h)␇);
+Test_N(q␇⒤␇, q␇⒤␇, q␇⒤␇, q␇(i)␇, q␇(i)␇);
+Test_N(q␇⒥␇, q␇⒥␇, q␇⒥␇, q␇(j)␇, q␇(j)␇);
+Test_N(q␇⒦␇, q␇⒦␇, q␇⒦␇, q␇(k)␇, q␇(k)␇);
+Test_N(q␇⒧␇, q␇⒧␇, q␇⒧␇, q␇(l)␇, q␇(l)␇);
+Test_N(q␇⒨␇, q␇⒨␇, q␇⒨␇, q␇(m)␇, q␇(m)␇);
+Test_N(q␇⒩␇, q␇⒩␇, q␇⒩␇, q␇(n)␇, q␇(n)␇);
+Test_N(q␇⒪␇, q␇⒪␇, q␇⒪␇, q␇(o)␇, q␇(o)␇);
+Test_N(q␇⒫␇, q␇⒫␇, q␇⒫␇, q␇(p)␇, q␇(p)␇);
+Test_N(q␇⒬␇, q␇⒬␇, q␇⒬␇, q␇(q)␇, q␇(q)␇);
+Test_N(q␇⒭␇, q␇⒭␇, q␇⒭␇, q␇(r)␇, q␇(r)␇);
+Test_N(q␇⒮␇, q␇⒮␇, q␇⒮␇, q␇(s)␇, q␇(s)␇);
+Test_N(q␇⒯␇, q␇⒯␇, q␇⒯␇, q␇(t)␇, q␇(t)␇);
+Test_N(q␇⒰␇, q␇⒰␇, q␇⒰␇, q␇(u)␇, q␇(u)␇);
+Test_N(q␇⒱␇, q␇⒱␇, q␇⒱␇, q␇(v)␇, q␇(v)␇);
+Test_N(q␇⒲␇, q␇⒲␇, q␇⒲␇, q␇(w)␇, q␇(w)␇);
+Test_N(q␇⒳␇, q␇⒳␇, q␇⒳␇, q␇(x)␇, q␇(x)␇);
+Test_N(q␇⒴␇, q␇⒴␇, q␇⒴␇, q␇(y)␇, q␇(y)␇);
+Test_N(q␇⒵␇, q␇⒵␇, q␇⒵␇, q␇(z)␇, q␇(z)␇);
+Test_N(q␇Ⓐ␇, q␇Ⓐ␇, q␇Ⓐ␇, q␇A␇, q␇A␇);
+Test_N(q␇Ⓑ␇, q␇Ⓑ␇, q␇Ⓑ␇, q␇B␇, q␇B␇);
+Test_N(q␇Ⓒ␇, q␇Ⓒ␇, q␇Ⓒ␇, q␇C␇, q␇C␇);
+Test_N(q␇Ⓓ␇, q␇Ⓓ␇, q␇Ⓓ␇, q␇D␇, q␇D␇);
+Test_N(q␇Ⓔ␇, q␇Ⓔ␇, q␇Ⓔ␇, q␇E␇, q␇E␇);
+Test_N(q␇Ⓕ␇, q␇Ⓕ␇, q␇Ⓕ␇, q␇F␇, q␇F␇);
+Test_N(q␇Ⓖ␇, q␇Ⓖ␇, q␇Ⓖ␇, q␇G␇, q␇G␇);
+Test_N(q␇Ⓗ␇, q␇Ⓗ␇, q␇Ⓗ␇, q␇H␇, q␇H␇);
+Test_N(q␇Ⓘ␇, q␇Ⓘ␇, q␇Ⓘ␇, q␇I␇, q␇I␇);
+Test_N(q␇Ⓙ␇, q␇Ⓙ␇, q␇Ⓙ␇, q␇J␇, q␇J␇);
+Test_N(q␇Ⓚ␇, q␇Ⓚ␇, q␇Ⓚ␇, q␇K␇, q␇K␇);
+Test_N(q␇Ⓛ␇, q␇Ⓛ␇, q␇Ⓛ␇, q␇L␇, q␇L␇);
+Test_N(q␇Ⓜ␇, q␇Ⓜ␇, q␇Ⓜ␇, q␇M␇, q␇M␇);
+Test_N(q␇Ⓝ␇, q␇Ⓝ␇, q␇Ⓝ␇, q␇N␇, q␇N␇);
+Test_N(q␇Ⓞ␇, q␇Ⓞ␇, q␇Ⓞ␇, q␇O␇, q␇O␇);
+Test_N(q␇Ⓟ␇, q␇Ⓟ␇, q␇Ⓟ␇, q␇P␇, q␇P␇);
+Test_N(q␇Ⓠ␇, q␇Ⓠ␇, q␇Ⓠ␇, q␇Q␇, q␇Q␇);
+Test_N(q␇Ⓡ␇, q␇Ⓡ␇, q␇Ⓡ␇, q␇R␇, q␇R␇);
+Test_N(q␇Ⓢ␇, q␇Ⓢ␇, q␇Ⓢ␇, q␇S␇, q␇S␇);
+Test_N(q␇Ⓣ␇, q␇Ⓣ␇, q␇Ⓣ␇, q␇T␇, q␇T␇);
+Test_N(q␇Ⓤ␇, q␇Ⓤ␇, q␇Ⓤ␇, q␇U␇, q␇U␇);
+Test_N(q␇Ⓥ␇, q␇Ⓥ␇, q␇Ⓥ␇, q␇V␇, q␇V␇);
+Test_N(q␇Ⓦ␇, q␇Ⓦ␇, q␇Ⓦ␇, q␇W␇, q␇W␇);
+Test_N(q␇Ⓧ␇, q␇Ⓧ␇, q␇Ⓧ␇, q␇X␇, q␇X␇);
+Test_N(q␇Ⓨ␇, q␇Ⓨ␇, q␇Ⓨ␇, q␇Y␇, q␇Y␇);
+Test_N(q␇Ⓩ␇, q␇Ⓩ␇, q␇Ⓩ␇, q␇Z␇, q␇Z␇);
+Test_N(q␇ⓐ␇, q␇ⓐ␇, q␇ⓐ␇, q␇a␇, q␇a␇);
+Test_N(q␇ⓑ␇, q␇ⓑ␇, q␇ⓑ␇, q␇b␇, q␇b␇);
+Test_N(q␇ⓒ␇, q␇ⓒ␇, q␇ⓒ␇, q␇c␇, q␇c␇);
+Test_N(q␇ⓓ␇, q␇ⓓ␇, q␇ⓓ␇, q␇d␇, q␇d␇);
+Test_N(q␇ⓔ␇, q␇ⓔ␇, q␇ⓔ␇, q␇e␇, q␇e␇);
+Test_N(q␇ⓕ␇, q␇ⓕ␇, q␇ⓕ␇, q␇f␇, q␇f␇);
+Test_N(q␇ⓖ␇, q␇ⓖ␇, q␇ⓖ␇, q␇g␇, q␇g␇);
+Test_N(q␇ⓗ␇, q␇ⓗ␇, q␇ⓗ␇, q␇h␇, q␇h␇);
+Test_N(q␇ⓘ␇, q␇ⓘ␇, q␇ⓘ␇, q␇i␇, q␇i␇);
+Test_N(q␇ⓙ␇, q␇ⓙ␇, q␇ⓙ␇, q␇j␇, q␇j␇);
+Test_N(q␇ⓚ␇, q␇ⓚ␇, q␇ⓚ␇, q␇k␇, q␇k␇);
+Test_N(q␇ⓛ␇, q␇ⓛ␇, q␇ⓛ␇, q␇l␇, q␇l␇);
+Test_N(q␇ⓜ␇, q␇ⓜ␇, q␇ⓜ␇, q␇m␇, q␇m␇);
+Test_N(q␇ⓝ␇, q␇ⓝ␇, q␇ⓝ␇, q␇n␇, q␇n␇);
+Test_N(q␇ⓞ␇, q␇ⓞ␇, q␇ⓞ␇, q␇o␇, q␇o␇);
+Test_N(q␇ⓟ␇, q␇ⓟ␇, q␇ⓟ␇, q␇p␇, q␇p␇);
+Test_N(q␇ⓠ␇, q␇ⓠ␇, q␇ⓠ␇, q␇q␇, q␇q␇);
+Test_N(q␇ⓡ␇, q␇ⓡ␇, q␇ⓡ␇, q␇r␇, q␇r␇);
+Test_N(q␇ⓢ␇, q␇ⓢ␇, q␇ⓢ␇, q␇s␇, q␇s␇);
+Test_N(q␇ⓣ␇, q␇ⓣ␇, q␇ⓣ␇, q␇t␇, q␇t␇);
+Test_N(q␇ⓤ␇, q␇ⓤ␇, q␇ⓤ␇, q␇u␇, q␇u␇);
+Test_N(q␇ⓥ␇, q␇ⓥ␇, q␇ⓥ␇, q␇v␇, q␇v␇);
+Test_N(q␇ⓦ␇, q␇ⓦ␇, q␇ⓦ␇, q␇w␇, q␇w␇);
+Test_N(q␇ⓧ␇, q␇ⓧ␇, q␇ⓧ␇, q␇x␇, q␇x␇);
+Test_N(q␇ⓨ␇, q␇ⓨ␇, q␇ⓨ␇, q␇y␇, q␇y␇);
+Test_N(q␇ⓩ␇, q␇ⓩ␇, q␇ⓩ␇, q␇z␇, q␇z␇);
+Test_N(q␇⓪␇, q␇⓪␇, q␇⓪␇, q␇0␇, q␇0␇);
+Test_N(q␇⨌␇, q␇⨌␇, q␇⨌␇, q␇∫∫∫∫␇, q␇∫∫∫∫␇);
+Test_N(q␇⩴␇, q␇⩴␇, q␇⩴␇, q␇::=␇, q␇::=␇);
+Test_N(q␇⩵␇, q␇⩵␇, q␇⩵␇, q␇==␇, q␇==␇);
+Test_N(q␇⩶␇, q␇⩶␇, q␇⩶␇, q␇===␇, q␇===␇);
+Test_N(q␇⫝̸␇, q␇⫝̸␇, q␇⫝̸␇, q␇⫝̸␇, q␇⫝̸␇);
+Test_N(q␇ⱼ␇, q␇ⱼ␇, q␇ⱼ␇, q␇j␇, q␇j␇);
+Test_N(q␇ⱽ␇, q␇ⱽ␇, q␇ⱽ␇, q␇V␇, q␇V␇);
+Test_N(q␇ⵯ␇, q␇ⵯ␇, q␇ⵯ␇, q␇ⵡ␇, q␇ⵡ␇);
+Test_N(q␇⺟␇, q␇⺟␇, q␇⺟␇, q␇母␇, q␇母␇);
+Test_N(q␇⻳␇, q␇⻳␇, q␇⻳␇, q␇龟␇, q␇龟␇);
+Test_N(q␇⼀␇, q␇⼀␇, q␇⼀␇, q␇一␇, q␇一␇);
+Test_N(q␇⼁␇, q␇⼁␇, q␇⼁␇, q␇丨␇, q␇丨␇);
+Test_N(q␇⼂␇, q␇⼂␇, q␇⼂␇, q␇丶␇, q␇丶␇);
+Test_N(q␇⼃␇, q␇⼃␇, q␇⼃␇, q␇丿␇, q␇丿␇);
+Test_N(q␇⼄␇, q␇⼄␇, q␇⼄␇, q␇乙␇, q␇乙␇);
+Test_N(q␇⼅␇, q␇⼅␇, q␇⼅␇, q␇亅␇, q␇亅␇);
+Test_N(q␇⼆␇, q␇⼆␇, q␇⼆␇, q␇二␇, q␇二␇);
+Test_N(q␇⼇␇, q␇⼇␇, q␇⼇␇, q␇亠␇, q␇亠␇);
+Test_N(q␇⼈␇, q␇⼈␇, q␇⼈␇, q␇人␇, q␇人␇);
+Test_N(q␇⼉␇, q␇⼉␇, q␇⼉␇, q␇儿␇, q␇儿␇);
+Test_N(q␇⼊␇, q␇⼊␇, q␇⼊␇, q␇入␇, q␇入␇);
+Test_N(q␇⼋␇, q␇⼋␇, q␇⼋␇, q␇八␇, q␇八␇);
+Test_N(q␇⼌␇, q␇⼌␇, q␇⼌␇, q␇冂␇, q␇冂␇);
+Test_N(q␇⼍␇, q␇⼍␇, q␇⼍␇, q␇冖␇, q␇冖␇);
+Test_N(q␇⼎␇, q␇⼎␇, q␇⼎␇, q␇冫␇, q␇冫␇);
+Test_N(q␇⼏␇, q␇⼏␇, q␇⼏␇, q␇几␇, q␇几␇);
+Test_N(q␇⼐␇, q␇⼐␇, q␇⼐␇, q␇凵␇, q␇凵␇);
+Test_N(q␇⼑␇, q␇⼑␇, q␇⼑␇, q␇刀␇, q␇刀␇);
+Test_N(q␇⼒␇, q␇⼒␇, q␇⼒␇, q␇力␇, q␇力␇);
+Test_N(q␇⼓␇, q␇⼓␇, q␇⼓␇, q␇勹␇, q␇勹␇);
+Test_N(q␇⼔␇, q␇⼔␇, q␇⼔␇, q␇匕␇, q␇匕␇);
+Test_N(q␇⼕␇, q␇⼕␇, q␇⼕␇, q␇匚␇, q␇匚␇);
+Test_N(q␇⼖␇, q␇⼖␇, q␇⼖␇, q␇匸␇, q␇匸␇);
+Test_N(q␇⼗␇, q␇⼗␇, q␇⼗␇, q␇十␇, q␇十␇);
+Test_N(q␇⼘␇, q␇⼘␇, q␇⼘␇, q␇卜␇, q␇卜␇);
+Test_N(q␇⼙␇, q␇⼙␇, q␇⼙␇, q␇卩␇, q␇卩␇);
+Test_N(q␇⼚␇, q␇⼚␇, q␇⼚␇, q␇厂␇, q␇厂␇);
+Test_N(q␇⼛␇, q␇⼛␇, q␇⼛␇, q␇厶␇, q␇厶␇);
+Test_N(q␇⼜␇, q␇⼜␇, q␇⼜␇, q␇又␇, q␇又␇);
+Test_N(q␇⼝␇, q␇⼝␇, q␇⼝␇, q␇口␇, q␇口␇);
+Test_N(q␇⼞␇, q␇⼞␇, q␇⼞␇, q␇囗␇, q␇囗␇);
+Test_N(q␇⼟␇, q␇⼟␇, q␇⼟␇, q␇土␇, q␇土␇);
+Test_N(q␇⼠␇, q␇⼠␇, q␇⼠␇, q␇士␇, q␇士␇);
+Test_N(q␇⼡␇, q␇⼡␇, q␇⼡␇, q␇夂␇, q␇夂␇);
+Test_N(q␇⼢␇, q␇⼢␇, q␇⼢␇, q␇夊␇, q␇夊␇);
+Test_N(q␇⼣␇, q␇⼣␇, q␇⼣␇, q␇夕␇, q␇夕␇);
+Test_N(q␇⼤␇, q␇⼤␇, q␇⼤␇, q␇大␇, q␇大␇);
+Test_N(q␇⼥␇, q␇⼥␇, q␇⼥␇, q␇女␇, q␇女␇);
+Test_N(q␇⼦␇, q␇⼦␇, q␇⼦␇, q␇子␇, q␇子␇);
+Test_N(q␇⼧␇, q␇⼧␇, q␇⼧␇, q␇宀␇, q␇宀␇);
+Test_N(q␇⼨␇, q␇⼨␇, q␇⼨␇, q␇寸␇, q␇寸␇);
+Test_N(q␇⼩␇, q␇⼩␇, q␇⼩␇, q␇小␇, q␇小␇);
+Test_N(q␇⼪␇, q␇⼪␇, q␇⼪␇, q␇尢␇, q␇尢␇);
+Test_N(q␇⼫␇, q␇⼫␇, q␇⼫␇, q␇尸␇, q␇尸␇);
+Test_N(q␇⼬␇, q␇⼬␇, q␇⼬␇, q␇屮␇, q␇屮␇);
+Test_N(q␇⼭␇, q␇⼭␇, q␇⼭␇, q␇山␇, q␇山␇);
+Test_N(q␇⼮␇, q␇⼮␇, q␇⼮␇, q␇巛␇, q␇巛␇);
+Test_N(q␇⼯␇, q␇⼯␇, q␇⼯␇, q␇工␇, q␇工␇);
+Test_N(q␇⼰␇, q␇⼰␇, q␇⼰␇, q␇己␇, q␇己␇);
+Test_N(q␇⼱␇, q␇⼱␇, q␇⼱␇, q␇巾␇, q␇巾␇);
+Test_N(q␇⼲␇, q␇⼲␇, q␇⼲␇, q␇干␇, q␇干␇);
+Test_N(q␇⼳␇, q␇⼳␇, q␇⼳␇, q␇幺␇, q␇幺␇);
+Test_N(q␇⼴␇, q␇⼴␇, q␇⼴␇, q␇广␇, q␇广␇);
+Test_N(q␇⼵␇, q␇⼵␇, q␇⼵␇, q␇廴␇, q␇廴␇);
+Test_N(q␇⼶␇, q␇⼶␇, q␇⼶␇, q␇廾␇, q␇廾␇);
+Test_N(q␇⼷␇, q␇⼷␇, q␇⼷␇, q␇弋␇, q␇弋␇);
+Test_N(q␇⼸␇, q␇⼸␇, q␇⼸␇, q␇弓␇, q␇弓␇);
+Test_N(q␇⼹␇, q␇⼹␇, q␇⼹␇, q␇彐␇, q␇彐␇);
+Test_N(q␇⼺␇, q␇⼺␇, q␇⼺␇, q␇彡␇, q␇彡␇);
+Test_N(q␇⼻␇, q␇⼻␇, q␇⼻␇, q␇彳␇, q␇彳␇);
+Test_N(q␇⼼␇, q␇⼼␇, q␇⼼␇, q␇心␇, q␇心␇);
+Test_N(q␇⼽␇, q␇⼽␇, q␇⼽␇, q␇戈␇, q␇戈␇);
+Test_N(q␇⼾␇, q␇⼾␇, q␇⼾␇, q␇戶␇, q␇戶␇);
+Test_N(q␇⼿␇, q␇⼿␇, q␇⼿␇, q␇手␇, q␇手␇);
+Test_N(q␇⽀␇, q␇⽀␇, q␇⽀␇, q␇支␇, q␇支␇);
+Test_N(q␇⽁␇, q␇⽁␇, q␇⽁␇, q␇攴␇, q␇攴␇);
+Test_N(q␇⽂␇, q␇⽂␇, q␇⽂␇, q␇文␇, q␇文␇);
+Test_N(q␇⽃␇, q␇⽃␇, q␇⽃␇, q␇斗␇, q␇斗␇);
+Test_N(q␇⽄␇, q␇⽄␇, q␇⽄␇, q␇斤␇, q␇斤␇);
+Test_N(q␇⽅␇, q␇⽅␇, q␇⽅␇, q␇方␇, q␇方␇);
+Test_N(q␇⽆␇, q␇⽆␇, q␇⽆␇, q␇无␇, q␇无␇);
+Test_N(q␇⽇␇, q␇⽇␇, q␇⽇␇, q␇日␇, q␇日␇);
+Test_N(q␇⽈␇, q␇⽈␇, q␇⽈␇, q␇曰␇, q␇曰␇);
+Test_N(q␇⽉␇, q␇⽉␇, q␇⽉␇, q␇月␇, q␇月␇);
+Test_N(q␇⽊␇, q␇⽊␇, q␇⽊␇, q␇木␇, q␇木␇);
+Test_N(q␇⽋␇, q␇⽋␇, q␇⽋␇, q␇欠␇, q␇欠␇);
+Test_N(q␇⽌␇, q␇⽌␇, q␇⽌␇, q␇止␇, q␇止␇);
+Test_N(q␇⽍␇, q␇⽍␇, q␇⽍␇, q␇歹␇, q␇歹␇);
+Test_N(q␇⽎␇, q␇⽎␇, q␇⽎␇, q␇殳␇, q␇殳␇);
+Test_N(q␇⽏␇, q␇⽏␇, q␇⽏␇, q␇毋␇, q␇毋␇);
+Test_N(q␇⽐␇, q␇⽐␇, q␇⽐␇, q␇比␇, q␇比␇);
+Test_N(q␇⽑␇, q␇⽑␇, q␇⽑␇, q␇毛␇, q␇毛␇);
+Test_N(q␇⽒␇, q␇⽒␇, q␇⽒␇, q␇氏␇, q␇氏␇);
+Test_N(q␇⽓␇, q␇⽓␇, q␇⽓␇, q␇气␇, q␇气␇);
+Test_N(q␇⽔␇, q␇⽔␇, q␇⽔␇, q␇水␇, q␇水␇);
+Test_N(q␇⽕␇, q␇⽕␇, q␇⽕␇, q␇火␇, q␇火␇);
+Test_N(q␇⽖␇, q␇⽖␇, q␇⽖␇, q␇爪␇, q␇爪␇);
+Test_N(q␇⽗␇, q␇⽗␇, q␇⽗␇, q␇父␇, q␇父␇);
+Test_N(q␇⽘␇, q␇⽘␇, q␇⽘␇, q␇爻␇, q␇爻␇);
+Test_N(q␇⽙␇, q␇⽙␇, q␇⽙␇, q␇爿␇, q␇爿␇);
+Test_N(q␇⽚␇, q␇⽚␇, q␇⽚␇, q␇片␇, q␇片␇);
+Test_N(q␇⽛␇, q␇⽛␇, q␇⽛␇, q␇牙␇, q␇牙␇);
+Test_N(q␇⽜␇, q␇⽜␇, q␇⽜␇, q␇牛␇, q␇牛␇);
+Test_N(q␇⽝␇, q␇⽝␇, q␇⽝␇, q␇犬␇, q␇犬␇);
+Test_N(q␇⽞␇, q␇⽞␇, q␇⽞␇, q␇玄␇, q␇玄␇);
+Test_N(q␇⽟␇, q␇⽟␇, q␇⽟␇, q␇玉␇, q␇玉␇);
+Test_N(q␇⽠␇, q␇⽠␇, q␇⽠␇, q␇瓜␇, q␇瓜␇);
+Test_N(q␇⽡␇, q␇⽡␇, q␇⽡␇, q␇瓦␇, q␇瓦␇);
+Test_N(q␇⽢␇, q␇⽢␇, q␇⽢␇, q␇甘␇, q␇甘␇);
+Test_N(q␇⽣␇, q␇⽣␇, q␇⽣␇, q␇生␇, q␇生␇);
+Test_N(q␇⽤␇, q␇⽤␇, q␇⽤␇, q␇用␇, q␇用␇);
+Test_N(q␇⽥␇, q␇⽥␇, q␇⽥␇, q␇田␇, q␇田␇);
+Test_N(q␇⽦␇, q␇⽦␇, q␇⽦␇, q␇疋␇, q␇疋␇);
+Test_N(q␇⽧␇, q␇⽧␇, q␇⽧␇, q␇疒␇, q␇疒␇);
+Test_N(q␇⽨␇, q␇⽨␇, q␇⽨␇, q␇癶␇, q␇癶␇);
+Test_N(q␇⽩␇, q␇⽩␇, q␇⽩␇, q␇白␇, q␇白␇);
+Test_N(q␇⽪␇, q␇⽪␇, q␇⽪␇, q␇皮␇, q␇皮␇);
+Test_N(q␇⽫␇, q␇⽫␇, q␇⽫␇, q␇皿␇, q␇皿␇);
+Test_N(q␇⽬␇, q␇⽬␇, q␇⽬␇, q␇目␇, q␇目␇);
+Test_N(q␇⽭␇, q␇⽭␇, q␇⽭␇, q␇矛␇, q␇矛␇);
+Test_N(q␇⽮␇, q␇⽮␇, q␇⽮␇, q␇矢␇, q␇矢␇);
+Test_N(q␇⽯␇, q␇⽯␇, q␇⽯␇, q␇石␇, q␇石␇);
+Test_N(q␇⽰␇, q␇⽰␇, q␇⽰␇, q␇示␇, q␇示␇);
+Test_N(q␇⽱␇, q␇⽱␇, q␇⽱␇, q␇禸␇, q␇禸␇);
+Test_N(q␇⽲␇, q␇⽲␇, q␇⽲␇, q␇禾␇, q␇禾␇);
+Test_N(q␇⽳␇, q␇⽳␇, q␇⽳␇, q␇穴␇, q␇穴␇);
+Test_N(q␇⽴␇, q␇⽴␇, q␇⽴␇, q␇立␇, q␇立␇);
+Test_N(q␇⽵␇, q␇⽵␇, q␇⽵␇, q␇竹␇, q␇竹␇);
+Test_N(q␇⽶␇, q␇⽶␇, q␇⽶␇, q␇米␇, q␇米␇);
+Test_N(q␇⽷␇, q␇⽷␇, q␇⽷␇, q␇糸␇, q␇糸␇);
+Test_N(q␇⽸␇, q␇⽸␇, q␇⽸␇, q␇缶␇, q␇缶␇);
+Test_N(q␇⽹␇, q␇⽹␇, q␇⽹␇, q␇网␇, q␇网␇);
+Test_N(q␇⽺␇, q␇⽺␇, q␇⽺␇, q␇羊␇, q␇羊␇);
+Test_N(q␇⽻␇, q␇⽻␇, q␇⽻␇, q␇羽␇, q␇羽␇);
+Test_N(q␇⽼␇, q␇⽼␇, q␇⽼␇, q␇老␇, q␇老␇);
+Test_N(q␇⽽␇, q␇⽽␇, q␇⽽␇, q␇而␇, q␇而␇);
+Test_N(q␇⽾␇, q␇⽾␇, q␇⽾␇, q␇耒␇, q␇耒␇);
+Test_N(q␇⽿␇, q␇⽿␇, q␇⽿␇, q␇耳␇, q␇耳␇);
+Test_N(q␇⾀␇, q␇⾀␇, q␇⾀␇, q␇聿␇, q␇聿␇);
+Test_N(q␇⾁␇, q␇⾁␇, q␇⾁␇, q␇肉␇, q␇肉␇);
+Test_N(q␇⾂␇, q␇⾂␇, q␇⾂␇, q␇臣␇, q␇臣␇);
+Test_N(q␇⾃␇, q␇⾃␇, q␇⾃␇, q␇自␇, q␇自␇);
+Test_N(q␇⾄␇, q␇⾄␇, q␇⾄␇, q␇至␇, q␇至␇);
+Test_N(q␇⾅␇, q␇⾅␇, q␇⾅␇, q␇臼␇, q␇臼␇);
+Test_N(q␇⾆␇, q␇⾆␇, q␇⾆␇, q␇舌␇, q␇舌␇);
+Test_N(q␇⾇␇, q␇⾇␇, q␇⾇␇, q␇舛␇, q␇舛␇);
+Test_N(q␇⾈␇, q␇⾈␇, q␇⾈␇, q␇舟␇, q␇舟␇);
+Test_N(q␇⾉␇, q␇⾉␇, q␇⾉␇, q␇艮␇, q␇艮␇);
+Test_N(q␇⾊␇, q␇⾊␇, q␇⾊␇, q␇色␇, q␇色␇);
+Test_N(q␇⾋␇, q␇⾋␇, q␇⾋␇, q␇艸␇, q␇艸␇);
+Test_N(q␇⾌␇, q␇⾌␇, q␇⾌␇, q␇虍␇, q␇虍␇);
+Test_N(q␇⾍␇, q␇⾍␇, q␇⾍␇, q␇虫␇, q␇虫␇);
+Test_N(q␇⾎␇, q␇⾎␇, q␇⾎␇, q␇血␇, q␇血␇);
+Test_N(q␇⾏␇, q␇⾏␇, q␇⾏␇, q␇行␇, q␇行␇);
+Test_N(q␇⾐␇, q␇⾐␇, q␇⾐␇, q␇衣␇, q␇衣␇);
+Test_N(q␇⾑␇, q␇⾑␇, q␇⾑␇, q␇襾␇, q␇襾␇);
+Test_N(q␇⾒␇, q␇⾒␇, q␇⾒␇, q␇見␇, q␇見␇);
+Test_N(q␇⾓␇, q␇⾓␇, q␇⾓␇, q␇角␇, q␇角␇);
+Test_N(q␇⾔␇, q␇⾔␇, q␇⾔␇, q␇言␇, q␇言␇);
+Test_N(q␇⾕␇, q␇⾕␇, q␇⾕␇, q␇谷␇, q␇谷␇);
+Test_N(q␇⾖␇, q␇⾖␇, q␇⾖␇, q␇豆␇, q␇豆␇);
+Test_N(q␇⾗␇, q␇⾗␇, q␇⾗␇, q␇豕␇, q␇豕␇);
+Test_N(q␇⾘␇, q␇⾘␇, q␇⾘␇, q␇豸␇, q␇豸␇);
+Test_N(q␇⾙␇, q␇⾙␇, q␇⾙␇, q␇貝␇, q␇貝␇);
+Test_N(q␇⾚␇, q␇⾚␇, q␇⾚␇, q␇赤␇, q␇赤␇);
+Test_N(q␇⾛␇, q␇⾛␇, q␇⾛␇, q␇走␇, q␇走␇);
+Test_N(q␇⾜␇, q␇⾜␇, q␇⾜␇, q␇足␇, q␇足␇);
+Test_N(q␇⾝␇, q␇⾝␇, q␇⾝␇, q␇身␇, q␇身␇);
+Test_N(q␇⾞␇, q␇⾞␇, q␇⾞␇, q␇車␇, q␇車␇);
+Test_N(q␇⾟␇, q␇⾟␇, q␇⾟␇, q␇辛␇, q␇辛␇);
+Test_N(q␇⾠␇, q␇⾠␇, q␇⾠␇, q␇辰␇, q␇辰␇);
+Test_N(q␇⾡␇, q␇⾡␇, q␇⾡␇, q␇辵␇, q␇辵␇);
+Test_N(q␇⾢␇, q␇⾢␇, q␇⾢␇, q␇邑␇, q␇邑␇);
+Test_N(q␇⾣␇, q␇⾣␇, q␇⾣␇, q␇酉␇, q␇酉␇);
+Test_N(q␇⾤␇, q␇⾤␇, q␇⾤␇, q␇釆␇, q␇釆␇);
+Test_N(q␇⾥␇, q␇⾥␇, q␇⾥␇, q␇里␇, q␇里␇);
+Test_N(q␇⾦␇, q␇⾦␇, q␇⾦␇, q␇金␇, q␇金␇);
+Test_N(q␇⾧␇, q␇⾧␇, q␇⾧␇, q␇長␇, q␇長␇);
+Test_N(q␇⾨␇, q␇⾨␇, q␇⾨␇, q␇門␇, q␇門␇);
+Test_N(q␇⾩␇, q␇⾩␇, q␇⾩␇, q␇阜␇, q␇阜␇);
+Test_N(q␇⾪␇, q␇⾪␇, q␇⾪␇, q␇隶␇, q␇隶␇);
+Test_N(q␇⾫␇, q␇⾫␇, q␇⾫␇, q␇隹␇, q␇隹␇);
+Test_N(q␇⾬␇, q␇⾬␇, q␇⾬␇, q␇雨␇, q␇雨␇);
+Test_N(q␇⾭␇, q␇⾭␇, q␇⾭␇, q␇靑␇, q␇靑␇);
+Test_N(q␇⾮␇, q␇⾮␇, q␇⾮␇, q␇非␇, q␇非␇);
+Test_N(q␇⾯␇, q␇⾯␇, q␇⾯␇, q␇面␇, q␇面␇);
+Test_N(q␇⾰␇, q␇⾰␇, q␇⾰␇, q␇革␇, q␇革␇);
+Test_N(q␇⾱␇, q␇⾱␇, q␇⾱␇, q␇韋␇, q␇韋␇);
+Test_N(q␇⾲␇, q␇⾲␇, q␇⾲␇, q␇韭␇, q␇韭␇);
+Test_N(q␇⾳␇, q␇⾳␇, q␇⾳␇, q␇音␇, q␇音␇);
+Test_N(q␇⾴␇, q␇⾴␇, q␇⾴␇, q␇頁␇, q␇頁␇);
+Test_N(q␇⾵␇, q␇⾵␇, q␇⾵␇, q␇風␇, q␇風␇);
+Test_N(q␇⾶␇, q␇⾶␇, q␇⾶␇, q␇飛␇, q␇飛␇);
+Test_N(q␇⾷␇, q␇⾷␇, q␇⾷␇, q␇食␇, q␇食␇);
+Test_N(q␇⾸␇, q␇⾸␇, q␇⾸␇, q␇首␇, q␇首␇);
+Test_N(q␇⾹␇, q␇⾹␇, q␇⾹␇, q␇香␇, q␇香␇);
+Test_N(q␇⾺␇, q␇⾺␇, q␇⾺␇, q␇馬␇, q␇馬␇);
+Test_N(q␇⾻␇, q␇⾻␇, q␇⾻␇, q␇骨␇, q␇骨␇);
+Test_N(q␇⾼␇, q␇⾼␇, q␇⾼␇, q␇高␇, q␇高␇);
+Test_N(q␇⾽␇, q␇⾽␇, q␇⾽␇, q␇髟␇, q␇髟␇);
+Test_N(q␇⾾␇, q␇⾾␇, q␇⾾␇, q␇鬥␇, q␇鬥␇);
+Test_N(q␇⾿␇, q␇⾿␇, q␇⾿␇, q␇鬯␇, q␇鬯␇);
+Test_N(q␇⿀␇, q␇⿀␇, q␇⿀␇, q␇鬲␇, q␇鬲␇);
+Test_N(q␇⿁␇, q␇⿁␇, q␇⿁␇, q␇鬼␇, q␇鬼␇);
+Test_N(q␇⿂␇, q␇⿂␇, q␇⿂␇, q␇魚␇, q␇魚␇);
+Test_N(q␇⿃␇, q␇⿃␇, q␇⿃␇, q␇鳥␇, q␇鳥␇);
+Test_N(q␇⿄␇, q␇⿄␇, q␇⿄␇, q␇鹵␇, q␇鹵␇);
+Test_N(q␇⿅␇, q␇⿅␇, q␇⿅␇, q␇鹿␇, q␇鹿␇);
+Test_N(q␇⿆␇, q␇⿆␇, q␇⿆␇, q␇麥␇, q␇麥␇);
+Test_N(q␇⿇␇, q␇⿇␇, q␇⿇␇, q␇麻␇, q␇麻␇);
+Test_N(q␇⿈␇, q␇⿈␇, q␇⿈␇, q␇黃␇, q␇黃␇);
+Test_N(q␇⿉␇, q␇⿉␇, q␇⿉␇, q␇黍␇, q␇黍␇);
+Test_N(q␇⿊␇, q␇⿊␇, q␇⿊␇, q␇黑␇, q␇黑␇);
+Test_N(q␇⿋␇, q␇⿋␇, q␇⿋␇, q␇黹␇, q␇黹␇);
+Test_N(q␇⿌␇, q␇⿌␇, q␇⿌␇, q␇黽␇, q␇黽␇);
+Test_N(q␇⿍␇, q␇⿍␇, q␇⿍␇, q␇鼎␇, q␇鼎␇);
+Test_N(q␇⿎␇, q␇⿎␇, q␇⿎␇, q␇鼓␇, q␇鼓␇);
+Test_N(q␇⿏␇, q␇⿏␇, q␇⿏␇, q␇鼠␇, q␇鼠␇);
+Test_N(q␇⿐␇, q␇⿐␇, q␇⿐␇, q␇鼻␇, q␇鼻␇);
+Test_N(q␇⿑␇, q␇⿑␇, q␇⿑␇, q␇齊␇, q␇齊␇);
+Test_N(q␇⿒␇, q␇⿒␇, q␇⿒␇, q␇齒␇, q␇齒␇);
+Test_N(q␇⿓␇, q␇⿓␇, q␇⿓␇, q␇龍␇, q␇龍␇);
+Test_N(q␇⿔␇, q␇⿔␇, q␇⿔␇, q␇龜␇, q␇龜␇);
+Test_N(q␇⿕␇, q␇⿕␇, q␇⿕␇, q␇龠␇, q␇龠␇);
+Test_N(q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇, q␇ ␇);
+Test_N(q␇〶␇, q␇〶␇, q␇〶␇, q␇〒␇, q␇〒␇);
+Test_N(q␇〸␇, q␇〸␇, q␇〸␇, q␇十␇, q␇十␇);
+Test_N(q␇〹␇, q␇〹␇, q␇〹␇, q␇卄␇, q␇卄␇);
+Test_N(q␇〺␇, q␇〺␇, q␇〺␇, q␇卅␇, q␇卅␇);
+Test_N(q␇が␇, q␇が␇, q␇が␇, q␇が␇, q␇が␇);
+Test_N(q␇ぎ␇, q␇ぎ␇, q␇ぎ␇, q␇ぎ␇, q␇ぎ␇);
+Test_N(q␇ぐ␇, q␇ぐ␇, q␇ぐ␇, q␇ぐ␇, q␇ぐ␇);
+Test_N(q␇げ␇, q␇げ␇, q␇げ␇, q␇げ␇, q␇げ␇);
+Test_N(q␇ご␇, q␇ご␇, q␇ご␇, q␇ご␇, q␇ご␇);
+Test_N(q␇ざ␇, q␇ざ␇, q␇ざ␇, q␇ざ␇, q␇ざ␇);
+Test_N(q␇じ␇, q␇じ␇, q␇じ␇, q␇じ␇, q␇じ␇);
+Test_N(q␇ず␇, q␇ず␇, q␇ず␇, q␇ず␇, q␇ず␇);
+Test_N(q␇ぜ␇, q␇ぜ␇, q␇ぜ␇, q␇ぜ␇, q␇ぜ␇);
+Test_N(q␇ぞ␇, q␇ぞ␇, q␇ぞ␇, q␇ぞ␇, q␇ぞ␇);
+Test_N(q␇だ␇, q␇だ␇, q␇だ␇, q␇だ␇, q␇だ␇);
+Test_N(q␇ぢ␇, q␇ぢ␇, q␇ぢ␇, q␇ぢ␇, q␇ぢ␇);
+Test_N(q␇づ␇, q␇づ␇, q␇づ␇, q␇づ␇, q␇づ␇);
+Test_N(q␇で␇, q␇で␇, q␇で␇, q␇で␇, q␇で␇);
+Test_N(q␇ど␇, q␇ど␇, q␇ど␇, q␇ど␇, q␇ど␇);
+Test_N(q␇ば␇, q␇ば␇, q␇ば␇, q␇ば␇, q␇ば␇);
+Test_N(q␇ぱ␇, q␇ぱ␇, q␇ぱ␇, q␇ぱ␇, q␇ぱ␇);
+Test_N(q␇び␇, q␇び␇, q␇び␇, q␇び␇, q␇び␇);
+Test_N(q␇ぴ␇, q␇ぴ␇, q␇ぴ␇, q␇ぴ␇, q␇ぴ␇);
+Test_N(q␇ぶ␇, q␇ぶ␇, q␇ぶ␇, q␇ぶ␇, q␇ぶ␇);
+Test_N(q␇ぷ␇, q␇ぷ␇, q␇ぷ␇, q␇ぷ␇, q␇ぷ␇);
+Test_N(q␇べ␇, q␇べ␇, q␇べ␇, q␇べ␇, q␇べ␇);
+Test_N(q␇ぺ␇, q␇ぺ␇, q␇ぺ␇, q␇ぺ␇, q␇ぺ␇);
+Test_N(q␇ぼ␇, q␇ぼ␇, q␇ぼ␇, q␇ぼ␇, q␇ぼ␇);
+Test_N(q␇ぽ␇, q␇ぽ␇, q␇ぽ␇, q␇ぽ␇, q␇ぽ␇);
+Test_N(q␇ゔ␇, q␇ゔ␇, q␇ゔ␇, q␇ゔ␇, q␇ゔ␇);
+Test_N(q␇゛␇, q␇゛␇, q␇゛␇, q␇ ゙␇, q␇ ゙␇);
+Test_N(q␇゜␇, q␇゜␇, q␇゜␇, q␇ ゚␇, q␇ ゚␇);
+Test_N(q␇ゞ␇, q␇ゞ␇, q␇ゞ␇, q␇ゞ␇, q␇ゞ␇);
+Test_N(q␇ゟ␇, q␇ゟ␇, q␇ゟ␇, q␇より␇, q␇より␇);
+Test_N(q␇ガ␇, q␇ガ␇, q␇ガ␇, q␇ガ␇, q␇ガ␇);
+Test_N(q␇ギ␇, q␇ギ␇, q␇ギ␇, q␇ギ␇, q␇ギ␇);
+Test_N(q␇グ␇, q␇グ␇, q␇グ␇, q␇グ␇, q␇グ␇);
+Test_N(q␇ゲ␇, q␇ゲ␇, q␇ゲ␇, q␇ゲ␇, q␇ゲ␇);
+Test_N(q␇ゴ␇, q␇ゴ␇, q␇ゴ␇, q␇ゴ␇, q␇ゴ␇);
+Test_N(q␇ザ␇, q␇ザ␇, q␇ザ␇, q␇ザ␇, q␇ザ␇);
+Test_N(q␇ジ␇, q␇ジ␇, q␇ジ␇, q␇ジ␇, q␇ジ␇);
+Test_N(q␇ズ␇, q␇ズ␇, q␇ズ␇, q␇ズ␇, q␇ズ␇);
+Test_N(q␇ゼ␇, q␇ゼ␇, q␇ゼ␇, q␇ゼ␇, q␇ゼ␇);
+Test_N(q␇ゾ␇, q␇ゾ␇, q␇ゾ␇, q␇ゾ␇, q␇ゾ␇);
+Test_N(q␇ダ␇, q␇ダ␇, q␇ダ␇, q␇ダ␇, q␇ダ␇);
+Test_N(q␇ヂ␇, q␇ヂ␇, q␇ヂ␇, q␇ヂ␇, q␇ヂ␇);
+Test_N(q␇ヅ␇, q␇ヅ␇, q␇ヅ␇, q␇ヅ␇, q␇ヅ␇);
+Test_N(q␇デ␇, q␇デ␇, q␇デ␇, q␇デ␇, q␇デ␇);
+Test_N(q␇ド␇, q␇ド␇, q␇ド␇, q␇ド␇, q␇ド␇);
+Test_N(q␇バ␇, q␇バ␇, q␇バ␇, q␇バ␇, q␇バ␇);
+Test_N(q␇パ␇, q␇パ␇, q␇パ␇, q␇パ␇, q␇パ␇);
+Test_N(q␇ビ␇, q␇ビ␇, q␇ビ␇, q␇ビ␇, q␇ビ␇);
+Test_N(q␇ピ␇, q␇ピ␇, q␇ピ␇, q␇ピ␇, q␇ピ␇);
+Test_N(q␇ブ␇, q␇ブ␇, q␇ブ␇, q␇ブ␇, q␇ブ␇);
+Test_N(q␇プ␇, q␇プ␇, q␇プ␇, q␇プ␇, q␇プ␇);
+Test_N(q␇ベ␇, q␇ベ␇, q␇ベ␇, q␇ベ␇, q␇ベ␇);
+Test_N(q␇ペ␇, q␇ペ␇, q␇ペ␇, q␇ペ␇, q␇ペ␇);
+Test_N(q␇ボ␇, q␇ボ␇, q␇ボ␇, q␇ボ␇, q␇ボ␇);
+Test_N(q␇ポ␇, q␇ポ␇, q␇ポ␇, q␇ポ␇, q␇ポ␇);
+Test_N(q␇ヴ␇, q␇ヴ␇, q␇ヴ␇, q␇ヴ␇, q␇ヴ␇);
+Test_N(q␇ヷ␇, q␇ヷ␇, q␇ヷ␇, q␇ヷ␇, q␇ヷ␇);
+Test_N(q␇ヸ␇, q␇ヸ␇, q␇ヸ␇, q␇ヸ␇, q␇ヸ␇);
+Test_N(q␇ヹ␇, q␇ヹ␇, q␇ヹ␇, q␇ヹ␇, q␇ヹ␇);
+Test_N(q␇ヺ␇, q␇ヺ␇, q␇ヺ␇, q␇ヺ␇, q␇ヺ␇);
+Test_N(q␇ヾ␇, q␇ヾ␇, q␇ヾ␇, q␇ヾ␇, q␇ヾ␇);
+Test_N(q␇ヿ␇, q␇ヿ␇, q␇ヿ␇, q␇コト␇, q␇コト␇);
+Test_N(q␇ㄱ␇, q␇ㄱ␇, q␇ㄱ␇, q␇ᄀ␇, q␇ᄀ␇);
+Test_N(q␇ㄲ␇, q␇ㄲ␇, q␇ㄲ␇, q␇ᄁ␇, q␇ᄁ␇);
+Test_N(q␇ㄳ␇, q␇ㄳ␇, q␇ㄳ␇, q␇ᆪ␇, q␇ᆪ␇);
+Test_N(q␇ㄴ␇, q␇ㄴ␇, q␇ㄴ␇, q␇ᄂ␇, q␇ᄂ␇);
+Test_N(q␇ㄵ␇, q␇ㄵ␇, q␇ㄵ␇, q␇ᆬ␇, q␇ᆬ␇);
+Test_N(q␇ㄶ␇, q␇ㄶ␇, q␇ㄶ␇, q␇ᆭ␇, q␇ᆭ␇);
+Test_N(q␇ㄷ␇, q␇ㄷ␇, q␇ㄷ␇, q␇ᄃ␇, q␇ᄃ␇);
+Test_N(q␇ㄸ␇, q␇ㄸ␇, q␇ㄸ␇, q␇ᄄ␇, q␇ᄄ␇);
+Test_N(q␇ㄹ␇, q␇ㄹ␇, q␇ㄹ␇, q␇ᄅ␇, q␇ᄅ␇);
+Test_N(q␇ㄺ␇, q␇ㄺ␇, q␇ㄺ␇, q␇ᆰ␇, q␇ᆰ␇);
+Test_N(q␇ㄻ␇, q␇ㄻ␇, q␇ㄻ␇, q␇ᆱ␇, q␇ᆱ␇);
+Test_N(q␇ㄼ␇, q␇ㄼ␇, q␇ㄼ␇, q␇ᆲ␇, q␇ᆲ␇);
+Test_N(q␇ㄽ␇, q␇ㄽ␇, q␇ㄽ␇, q␇ᆳ␇, q␇ᆳ␇);
+Test_N(q␇ㄾ␇, q␇ㄾ␇, q␇ㄾ␇, q␇ᆴ␇, q␇ᆴ␇);
+Test_N(q␇ㄿ␇, q␇ㄿ␇, q␇ㄿ␇, q␇ᆵ␇, q␇ᆵ␇);
+Test_N(q␇ㅀ␇, q␇ㅀ␇, q␇ㅀ␇, q␇ᄚ␇, q␇ᄚ␇);
+Test_N(q␇ㅁ␇, q␇ㅁ␇, q␇ㅁ␇, q␇ᄆ␇, q␇ᄆ␇);
+Test_N(q␇ㅂ␇, q␇ㅂ␇, q␇ㅂ␇, q␇ᄇ␇, q␇ᄇ␇);
+Test_N(q␇ㅃ␇, q␇ㅃ␇, q␇ㅃ␇, q␇ᄈ␇, q␇ᄈ␇);
+Test_N(q␇ㅄ␇, q␇ㅄ␇, q␇ㅄ␇, q␇ᄡ␇, q␇ᄡ␇);
+Test_N(q␇ㅅ␇, q␇ㅅ␇, q␇ㅅ␇, q␇ᄉ␇, q␇ᄉ␇);
+Test_N(q␇ㅆ␇, q␇ㅆ␇, q␇ㅆ␇, q␇ᄊ␇, q␇ᄊ␇);
+Test_N(q␇ㅇ␇, q␇ㅇ␇, q␇ㅇ␇, q␇ᄋ␇, q␇ᄋ␇);
+Test_N(q␇ㅈ␇, q␇ㅈ␇, q␇ㅈ␇, q␇ᄌ␇, q␇ᄌ␇);
+Test_N(q␇ㅉ␇, q␇ㅉ␇, q␇ㅉ␇, q␇ᄍ␇, q␇ᄍ␇);
+Test_N(q␇ㅊ␇, q␇ㅊ␇, q␇ㅊ␇, q␇ᄎ␇, q␇ᄎ␇);
+Test_N(q␇ㅋ␇, q␇ㅋ␇, q␇ㅋ␇, q␇ᄏ␇, q␇ᄏ␇);
+Test_N(q␇ㅌ␇, q␇ㅌ␇, q␇ㅌ␇, q␇ᄐ␇, q␇ᄐ␇);
+Test_N(q␇ㅍ␇, q␇ㅍ␇, q␇ㅍ␇, q␇ᄑ␇, q␇ᄑ␇);
+Test_N(q␇ㅎ␇, q␇ㅎ␇, q␇ㅎ␇, q␇ᄒ␇, q␇ᄒ␇);
+Test_N(q␇ㅏ␇, q␇ㅏ␇, q␇ㅏ␇, q␇ᅡ␇, q␇ᅡ␇);
+Test_N(q␇ㅐ␇, q␇ㅐ␇, q␇ㅐ␇, q␇ᅢ␇, q␇ᅢ␇);
+Test_N(q␇ㅑ␇, q␇ㅑ␇, q␇ㅑ␇, q␇ᅣ␇, q␇ᅣ␇);
+Test_N(q␇ㅒ␇, q␇ㅒ␇, q␇ㅒ␇, q␇ᅤ␇, q␇ᅤ␇);
+Test_N(q␇ㅓ␇, q␇ㅓ␇, q␇ㅓ␇, q␇ᅥ␇, q␇ᅥ␇);
+Test_N(q␇ㅔ␇, q␇ㅔ␇, q␇ㅔ␇, q␇ᅦ␇, q␇ᅦ␇);
+Test_N(q␇ㅕ␇, q␇ㅕ␇, q␇ㅕ␇, q␇ᅧ␇, q␇ᅧ␇);
+Test_N(q␇ㅖ␇, q␇ㅖ␇, q␇ㅖ␇, q␇ᅨ␇, q␇ᅨ␇);
+Test_N(q␇ㅗ␇, q␇ㅗ␇, q␇ㅗ␇, q␇ᅩ␇, q␇ᅩ␇);
+Test_N(q␇ㅘ␇, q␇ㅘ␇, q␇ㅘ␇, q␇ᅪ␇, q␇ᅪ␇);
+Test_N(q␇ㅙ␇, q␇ㅙ␇, q␇ㅙ␇, q␇ᅫ␇, q␇ᅫ␇);
+Test_N(q␇ㅚ␇, q␇ㅚ␇, q␇ㅚ␇, q␇ᅬ␇, q␇ᅬ␇);
+Test_N(q␇ㅛ␇, q␇ㅛ␇, q␇ㅛ␇, q␇ᅭ␇, q␇ᅭ␇);
+Test_N(q␇ㅜ␇, q␇ㅜ␇, q␇ㅜ␇, q␇ᅮ␇, q␇ᅮ␇);
+Test_N(q␇ㅝ␇, q␇ㅝ␇, q␇ㅝ␇, q␇ᅯ␇, q␇ᅯ␇);
+Test_N(q␇ㅞ␇, q␇ㅞ␇, q␇ㅞ␇, q␇ᅰ␇, q␇ᅰ␇);
+Test_N(q␇ㅟ␇, q␇ㅟ␇, q␇ㅟ␇, q␇ᅱ␇, q␇ᅱ␇);
+Test_N(q␇ㅠ␇, q␇ㅠ␇, q␇ㅠ␇, q␇ᅲ␇, q␇ᅲ␇);
+Test_N(q␇ㅡ␇, q␇ㅡ␇, q␇ㅡ␇, q␇ᅳ␇, q␇ᅳ␇);
+Test_N(q␇ㅢ␇, q␇ㅢ␇, q␇ㅢ␇, q␇ᅴ␇, q␇ᅴ␇);
+Test_N(q␇ㅣ␇, q␇ㅣ␇, q␇ㅣ␇, q␇ᅵ␇, q␇ᅵ␇);
+Test_N(q␇ㅤ␇, q␇ㅤ␇, q␇ㅤ␇, q␇ᅠ␇, q␇ᅠ␇);
+Test_N(q␇ㅥ␇, q␇ㅥ␇, q␇ㅥ␇, q␇ᄔ␇, q␇ᄔ␇);
+Test_N(q␇ㅦ␇, q␇ㅦ␇, q␇ㅦ␇, q␇ᄕ␇, q␇ᄕ␇);
+Test_N(q␇ㅧ␇, q␇ㅧ␇, q␇ㅧ␇, q␇ᇇ␇, q␇ᇇ␇);
+Test_N(q␇ㅨ␇, q␇ㅨ␇, q␇ㅨ␇, q␇ᇈ␇, q␇ᇈ␇);
+Test_N(q␇ㅩ␇, q␇ㅩ␇, q␇ㅩ␇, q␇ᇌ␇, q␇ᇌ␇);
+Test_N(q␇ㅪ␇, q␇ㅪ␇, q␇ㅪ␇, q␇ᇎ␇, q␇ᇎ␇);
+Test_N(q␇ㅫ␇, q␇ㅫ␇, q␇ㅫ␇, q␇ᇓ␇, q␇ᇓ␇);
+Test_N(q␇ㅬ␇, q␇ㅬ␇, q␇ㅬ␇, q␇ᇗ␇, q␇ᇗ␇);
+Test_N(q␇ㅭ␇, q␇ㅭ␇, q␇ㅭ␇, q␇ᇙ␇, q␇ᇙ␇);
+Test_N(q␇ㅮ␇, q␇ㅮ␇, q␇ㅮ␇, q␇ᄜ␇, q␇ᄜ␇);
+Test_N(q␇ㅯ␇, q␇ㅯ␇, q␇ㅯ␇, q␇ᇝ␇, q␇ᇝ␇);
+Test_N(q␇ㅰ␇, q␇ㅰ␇, q␇ㅰ␇, q␇ᇟ␇, q␇ᇟ␇);
+Test_N(q␇ㅱ␇, q␇ㅱ␇, q␇ㅱ␇, q␇ᄝ␇, q␇ᄝ␇);
+Test_N(q␇ㅲ␇, q␇ㅲ␇, q␇ㅲ␇, q␇ᄞ␇, q␇ᄞ␇);
+Test_N(q␇ㅳ␇, q␇ㅳ␇, q␇ㅳ␇, q␇ᄠ␇, q␇ᄠ␇);
+Test_N(q␇ㅴ␇, q␇ㅴ␇, q␇ㅴ␇, q␇ᄢ␇, q␇ᄢ␇);
+Test_N(q␇ㅵ␇, q␇ㅵ␇, q␇ㅵ␇, q␇ᄣ␇, q␇ᄣ␇);
+Test_N(q␇ㅶ␇, q␇ㅶ␇, q␇ㅶ␇, q␇ᄧ␇, q␇ᄧ␇);
+Test_N(q␇ㅷ␇, q␇ㅷ␇, q␇ㅷ␇, q␇ᄩ␇, q␇ᄩ␇);
+Test_N(q␇ㅸ␇, q␇ㅸ␇, q␇ㅸ␇, q␇ᄫ␇, q␇ᄫ␇);
+Test_N(q␇ㅹ␇, q␇ㅹ␇, q␇ㅹ␇, q␇ᄬ␇, q␇ᄬ␇);
+Test_N(q␇ㅺ␇, q␇ㅺ␇, q␇ㅺ␇, q␇ᄭ␇, q␇ᄭ␇);
+Test_N(q␇ㅻ␇, q␇ㅻ␇, q␇ㅻ␇, q␇ᄮ␇, q␇ᄮ␇);
+Test_N(q␇ㅼ␇, q␇ㅼ␇, q␇ㅼ␇, q␇ᄯ␇, q␇ᄯ␇);
+Test_N(q␇ㅽ␇, q␇ㅽ␇, q␇ㅽ␇, q␇ᄲ␇, q␇ᄲ␇);
+Test_N(q␇ㅾ␇, q␇ㅾ␇, q␇ㅾ␇, q␇ᄶ␇, q␇ᄶ␇);
+Test_N(q␇ㅿ␇, q␇ㅿ␇, q␇ㅿ␇, q␇ᅀ␇, q␇ᅀ␇);
+Test_N(q␇ㆀ␇, q␇ㆀ␇, q␇ㆀ␇, q␇ᅇ␇, q␇ᅇ␇);
+Test_N(q␇ㆁ␇, q␇ㆁ␇, q␇ㆁ␇, q␇ᅌ␇, q␇ᅌ␇);
+Test_N(q␇ㆂ␇, q␇ㆂ␇, q␇ㆂ␇, q␇ᇱ␇, q␇ᇱ␇);
+Test_N(q␇ㆃ␇, q␇ㆃ␇, q␇ㆃ␇, q␇ᇲ␇, q␇ᇲ␇);
+Test_N(q␇ㆄ␇, q␇ㆄ␇, q␇ㆄ␇, q␇ᅗ␇, q␇ᅗ␇);
+Test_N(q␇ㆅ␇, q␇ㆅ␇, q␇ㆅ␇, q␇ᅘ␇, q␇ᅘ␇);
+Test_N(q␇ㆆ␇, q␇ㆆ␇, q␇ㆆ␇, q␇ᅙ␇, q␇ᅙ␇);
+Test_N(q␇ㆇ␇, q␇ㆇ␇, q␇ㆇ␇, q␇ᆄ␇, q␇ᆄ␇);
+Test_N(q␇ㆈ␇, q␇ㆈ␇, q␇ㆈ␇, q␇ᆅ␇, q␇ᆅ␇);
+Test_N(q␇ㆉ␇, q␇ㆉ␇, q␇ㆉ␇, q␇ᆈ␇, q␇ᆈ␇);
+Test_N(q␇ㆊ␇, q␇ㆊ␇, q␇ㆊ␇, q␇ᆑ␇, q␇ᆑ␇);
+Test_N(q␇ㆋ␇, q␇ㆋ␇, q␇ㆋ␇, q␇ᆒ␇, q␇ᆒ␇);
+Test_N(q␇ㆌ␇, q␇ㆌ␇, q␇ㆌ␇, q␇ᆔ␇, q␇ᆔ␇);
+Test_N(q␇ㆍ␇, q␇ㆍ␇, q␇ㆍ␇, q␇ᆞ␇, q␇ᆞ␇);
+Test_N(q␇ㆎ␇, q␇ㆎ␇, q␇ㆎ␇, q␇ᆡ␇, q␇ᆡ␇);
+Test_N(q␇㆒␇, q␇㆒␇, q␇㆒␇, q␇一␇, q␇一␇);
+Test_N(q␇㆓␇, q␇㆓␇, q␇㆓␇, q␇二␇, q␇二␇);
+Test_N(q␇㆔␇, q␇㆔␇, q␇㆔␇, q␇三␇, q␇三␇);
+Test_N(q␇㆕␇, q␇㆕␇, q␇㆕␇, q␇四␇, q␇四␇);
+Test_N(q␇㆖␇, q␇㆖␇, q␇㆖␇, q␇上␇, q␇上␇);
+Test_N(q␇㆗␇, q␇㆗␇, q␇㆗␇, q␇中␇, q␇中␇);
+Test_N(q␇㆘␇, q␇㆘␇, q␇㆘␇, q␇下␇, q␇下␇);
+Test_N(q␇㆙␇, q␇㆙␇, q␇㆙␇, q␇甲␇, q␇甲␇);
+Test_N(q␇㆚␇, q␇㆚␇, q␇㆚␇, q␇乙␇, q␇乙␇);
+Test_N(q␇㆛␇, q␇㆛␇, q␇㆛␇, q␇丙␇, q␇丙␇);
+Test_N(q␇㆜␇, q␇㆜␇, q␇㆜␇, q␇丁␇, q␇丁␇);
+Test_N(q␇㆝␇, q␇㆝␇, q␇㆝␇, q␇天␇, q␇天␇);
+Test_N(q␇㆞␇, q␇㆞␇, q␇㆞␇, q␇地␇, q␇地␇);
+Test_N(q␇㆟␇, q␇㆟␇, q␇㆟␇, q␇人␇, q␇人␇);
+Test_N(q␇㈀␇, q␇㈀␇, q␇㈀␇, q␇(ᄀ)␇, q␇(ᄀ)␇);
+Test_N(q␇㈁␇, q␇㈁␇, q␇㈁␇, q␇(ᄂ)␇, q␇(ᄂ)␇);
+Test_N(q␇㈂␇, q␇㈂␇, q␇㈂␇, q␇(ᄃ)␇, q␇(ᄃ)␇);
+Test_N(q␇㈃␇, q␇㈃␇, q␇㈃␇, q␇(ᄅ)␇, q␇(ᄅ)␇);
+Test_N(q␇㈄␇, q␇㈄␇, q␇㈄␇, q␇(ᄆ)␇, q␇(ᄆ)␇);
+Test_N(q␇㈅␇, q␇㈅␇, q␇㈅␇, q␇(ᄇ)␇, q␇(ᄇ)␇);
+Test_N(q␇㈆␇, q␇㈆␇, q␇㈆␇, q␇(ᄉ)␇, q␇(ᄉ)␇);
+Test_N(q␇㈇␇, q␇㈇␇, q␇㈇␇, q␇(ᄋ)␇, q␇(ᄋ)␇);
+Test_N(q␇㈈␇, q␇㈈␇, q␇㈈␇, q␇(ᄌ)␇, q␇(ᄌ)␇);
+Test_N(q␇㈉␇, q␇㈉␇, q␇㈉␇, q␇(ᄎ)␇, q␇(ᄎ)␇);
+Test_N(q␇㈊␇, q␇㈊␇, q␇㈊␇, q␇(ᄏ)␇, q␇(ᄏ)␇);
+Test_N(q␇㈋␇, q␇㈋␇, q␇㈋␇, q␇(ᄐ)␇, q␇(ᄐ)␇);
+Test_N(q␇㈌␇, q␇㈌␇, q␇㈌␇, q␇(ᄑ)␇, q␇(ᄑ)␇);
+Test_N(q␇㈍␇, q␇㈍␇, q␇㈍␇, q␇(ᄒ)␇, q␇(ᄒ)␇);
+Test_N(q␇㈎␇, q␇㈎␇, q␇㈎␇, q␇(가)␇, q␇(가)␇);
+Test_N(q␇㈏␇, q␇㈏␇, q␇㈏␇, q␇(나)␇, q␇(나)␇);
+Test_N(q␇㈐␇, q␇㈐␇, q␇㈐␇, q␇(다)␇, q␇(다)␇);
+Test_N(q␇㈑␇, q␇㈑␇, q␇㈑␇, q␇(라)␇, q␇(라)␇);
+Test_N(q␇㈒␇, q␇㈒␇, q␇㈒␇, q␇(마)␇, q␇(마)␇);
+Test_N(q␇㈓␇, q␇㈓␇, q␇㈓␇, q␇(바)␇, q␇(바)␇);
+Test_N(q␇㈔␇, q␇㈔␇, q␇㈔␇, q␇(사)␇, q␇(사)␇);
+Test_N(q␇㈕␇, q␇㈕␇, q␇㈕␇, q␇(아)␇, q␇(아)␇);
+Test_N(q␇㈖␇, q␇㈖␇, q␇㈖␇, q␇(자)␇, q␇(자)␇);
+Test_N(q␇㈗␇, q␇㈗␇, q␇㈗␇, q␇(차)␇, q␇(차)␇);
+Test_N(q␇㈘␇, q␇㈘␇, q␇㈘␇, q␇(카)␇, q␇(카)␇);
+Test_N(q␇㈙␇, q␇㈙␇, q␇㈙␇, q␇(타)␇, q␇(타)␇);
+Test_N(q␇㈚␇, q␇㈚␇, q␇㈚␇, q␇(파)␇, q␇(파)␇);
+Test_N(q␇㈛␇, q␇㈛␇, q␇㈛␇, q␇(하)␇, q␇(하)␇);
+Test_N(q␇㈜␇, q␇㈜␇, q␇㈜␇, q␇(주)␇, q␇(주)␇);
+Test_N(q␇㈝␇, q␇㈝␇, q␇㈝␇, q␇(오전)␇, q␇(오전)␇);
+Test_N(q␇㈞␇, q␇㈞␇, q␇㈞␇, q␇(오후)␇, q␇(오후)␇);
+Test_N(q␇㈠␇, q␇㈠␇, q␇㈠␇, q␇(一)␇, q␇(一)␇);
+Test_N(q␇㈡␇, q␇㈡␇, q␇㈡␇, q␇(二)␇, q␇(二)␇);
+Test_N(q␇㈢␇, q␇㈢␇, q␇㈢␇, q␇(三)␇, q␇(三)␇);
+Test_N(q␇㈣␇, q␇㈣␇, q␇㈣␇, q␇(四)␇, q␇(四)␇);
+Test_N(q␇㈤␇, q␇㈤␇, q␇㈤␇, q␇(五)␇, q␇(五)␇);
+Test_N(q␇㈥␇, q␇㈥␇, q␇㈥␇, q␇(六)␇, q␇(六)␇);
+Test_N(q␇㈦␇, q␇㈦␇, q␇㈦␇, q␇(七)␇, q␇(七)␇);
+Test_N(q␇㈧␇, q␇㈧␇, q␇㈧␇, q␇(八)␇, q␇(八)␇);
+Test_N(q␇㈨␇, q␇㈨␇, q␇㈨␇, q␇(九)␇, q␇(九)␇);
+Test_N(q␇㈩␇, q␇㈩␇, q␇㈩␇, q␇(十)␇, q␇(十)␇);
+Test_N(q␇㈪␇, q␇㈪␇, q␇㈪␇, q␇(月)␇, q␇(月)␇);
+Test_N(q␇㈫␇, q␇㈫␇, q␇㈫␇, q␇(火)␇, q␇(火)␇);
+Test_N(q␇㈬␇, q␇㈬␇, q␇㈬␇, q␇(水)␇, q␇(水)␇);
+Test_N(q␇㈭␇, q␇㈭␇, q␇㈭␇, q␇(木)␇, q␇(木)␇);
+Test_N(q␇㈮␇, q␇㈮␇, q␇㈮␇, q␇(金)␇, q␇(金)␇);
+Test_N(q␇㈯␇, q␇㈯␇, q␇㈯␇, q␇(土)␇, q␇(土)␇);
+Test_N(q␇㈰␇, q␇㈰␇, q␇㈰␇, q␇(日)␇, q␇(日)␇);
+Test_N(q␇㈱␇, q␇㈱␇, q␇㈱␇, q␇(株)␇, q␇(株)␇);
+Test_N(q␇㈲␇, q␇㈲␇, q␇㈲␇, q␇(有)␇, q␇(有)␇);
+Test_N(q␇㈳␇, q␇㈳␇, q␇㈳␇, q␇(社)␇, q␇(社)␇);
+Test_N(q␇㈴␇, q␇㈴␇, q␇㈴␇, q␇(名)␇, q␇(名)␇);
+Test_N(q␇㈵␇, q␇㈵␇, q␇㈵␇, q␇(特)␇, q␇(特)␇);
+Test_N(q␇㈶␇, q␇㈶␇, q␇㈶␇, q␇(財)␇, q␇(財)␇);
+Test_N(q␇㈷␇, q␇㈷␇, q␇㈷␇, q␇(祝)␇, q␇(祝)␇);
+Test_N(q␇㈸␇, q␇㈸␇, q␇㈸␇, q␇(労)␇, q␇(労)␇);
+Test_N(q␇㈹␇, q␇㈹␇, q␇㈹␇, q␇(代)␇, q␇(代)␇);
+Test_N(q␇㈺␇, q␇㈺␇, q␇㈺␇, q␇(呼)␇, q␇(呼)␇);
+Test_N(q␇㈻␇, q␇㈻␇, q␇㈻␇, q␇(学)␇, q␇(学)␇);
+Test_N(q␇㈼␇, q␇㈼␇, q␇㈼␇, q␇(監)␇, q␇(監)␇);
+Test_N(q␇㈽␇, q␇㈽␇, q␇㈽␇, q␇(企)␇, q␇(企)␇);
+Test_N(q␇㈾␇, q␇㈾␇, q␇㈾␇, q␇(資)␇, q␇(資)␇);
+Test_N(q␇㈿␇, q␇㈿␇, q␇㈿␇, q␇(協)␇, q␇(協)␇);
+Test_N(q␇㉀␇, q␇㉀␇, q␇㉀␇, q␇(祭)␇, q␇(祭)␇);
+Test_N(q␇㉁␇, q␇㉁␇, q␇㉁␇, q␇(休)␇, q␇(休)␇);
+Test_N(q␇㉂␇, q␇㉂␇, q␇㉂␇, q␇(自)␇, q␇(自)␇);
+Test_N(q␇㉃␇, q␇㉃␇, q␇㉃␇, q␇(至)␇, q␇(至)␇);
+Test_N(q␇㉄␇, q␇㉄␇, q␇㉄␇, q␇問␇, q␇問␇);
+Test_N(q␇㉅␇, q␇㉅␇, q␇㉅␇, q␇幼␇, q␇幼␇);
+Test_N(q␇㉆␇, q␇㉆␇, q␇㉆␇, q␇文␇, q␇文␇);
+Test_N(q␇㉇␇, q␇㉇␇, q␇㉇␇, q␇箏␇, q␇箏␇);
+Test_N(q␇㉐␇, q␇㉐␇, q␇㉐␇, q␇PTE␇, q␇PTE␇);
+Test_N(q␇㉑␇, q␇㉑␇, q␇㉑␇, q␇21␇, q␇21␇);
+Test_N(q␇㉒␇, q␇㉒␇, q␇㉒␇, q␇22␇, q␇22␇);
+Test_N(q␇㉓␇, q␇㉓␇, q␇㉓␇, q␇23␇, q␇23␇);
+Test_N(q␇㉔␇, q␇㉔␇, q␇㉔␇, q␇24␇, q␇24␇);
+Test_N(q␇㉕␇, q␇㉕␇, q␇㉕␇, q␇25␇, q␇25␇);
+Test_N(q␇㉖␇, q␇㉖␇, q␇㉖␇, q␇26␇, q␇26␇);
+Test_N(q␇㉗␇, q␇㉗␇, q␇㉗␇, q␇27␇, q␇27␇);
+Test_N(q␇㉘␇, q␇㉘␇, q␇㉘␇, q␇28␇, q␇28␇);
+Test_N(q␇㉙␇, q␇㉙␇, q␇㉙␇, q␇29␇, q␇29␇);
+Test_N(q␇㉚␇, q␇㉚␇, q␇㉚␇, q␇30␇, q␇30␇);
+Test_N(q␇㉛␇, q␇㉛␇, q␇㉛␇, q␇31␇, q␇31␇);
+Test_N(q␇㉜␇, q␇㉜␇, q␇㉜␇, q␇32␇, q␇32␇);
+Test_N(q␇㉝␇, q␇㉝␇, q␇㉝␇, q␇33␇, q␇33␇);
+Test_N(q␇㉞␇, q␇㉞␇, q␇㉞␇, q␇34␇, q␇34␇);
+Test_N(q␇㉟␇, q␇㉟␇, q␇㉟␇, q␇35␇, q␇35␇);
+Test_N(q␇㉠␇, q␇㉠␇, q␇㉠␇, q␇ᄀ␇, q␇ᄀ␇);
+Test_N(q␇㉡␇, q␇㉡␇, q␇㉡␇, q␇ᄂ␇, q␇ᄂ␇);
+Test_N(q␇㉢␇, q␇㉢␇, q␇㉢␇, q␇ᄃ␇, q␇ᄃ␇);
+Test_N(q␇㉣␇, q␇㉣␇, q␇㉣␇, q␇ᄅ␇, q␇ᄅ␇);
+Test_N(q␇㉤␇, q␇㉤␇, q␇㉤␇, q␇ᄆ␇, q␇ᄆ␇);
+Test_N(q␇㉥␇, q␇㉥␇, q␇㉥␇, q␇ᄇ␇, q␇ᄇ␇);
+Test_N(q␇㉦␇, q␇㉦␇, q␇㉦␇, q␇ᄉ␇, q␇ᄉ␇);
+Test_N(q␇㉧␇, q␇㉧␇, q␇㉧␇, q␇ᄋ␇, q␇ᄋ␇);
+Test_N(q␇㉨␇, q␇㉨␇, q␇㉨␇, q␇ᄌ␇, q␇ᄌ␇);
+Test_N(q␇㉩␇, q␇㉩␇, q␇㉩␇, q␇ᄎ␇, q␇ᄎ␇);
+Test_N(q␇㉪␇, q␇㉪␇, q␇㉪␇, q␇ᄏ␇, q␇ᄏ␇);
+Test_N(q␇㉫␇, q␇㉫␇, q␇㉫␇, q␇ᄐ␇, q␇ᄐ␇);
+Test_N(q␇㉬␇, q␇㉬␇, q␇㉬␇, q␇ᄑ␇, q␇ᄑ␇);
+Test_N(q␇㉭␇, q␇㉭␇, q␇㉭␇, q␇ᄒ␇, q␇ᄒ␇);
+Test_N(q␇㉮␇, q␇㉮␇, q␇㉮␇, q␇가␇, q␇가␇);
+Test_N(q␇㉯␇, q␇㉯␇, q␇㉯␇, q␇나␇, q␇나␇);
+Test_N(q␇㉰␇, q␇㉰␇, q␇㉰␇, q␇다␇, q␇다␇);
+Test_N(q␇㉱␇, q␇㉱␇, q␇㉱␇, q␇라␇, q␇라␇);
+Test_N(q␇㉲␇, q␇㉲␇, q␇㉲␇, q␇마␇, q␇마␇);
+Test_N(q␇㉳␇, q␇㉳␇, q␇㉳␇, q␇바␇, q␇바␇);
+Test_N(q␇㉴␇, q␇㉴␇, q␇㉴␇, q␇사␇, q␇사␇);
+Test_N(q␇㉵␇, q␇㉵␇, q␇㉵␇, q␇아␇, q␇아␇);
+Test_N(q␇㉶␇, q␇㉶␇, q␇㉶␇, q␇자␇, q␇자␇);
+Test_N(q␇㉷␇, q␇㉷␇, q␇㉷␇, q␇차␇, q␇차␇);
+Test_N(q␇㉸␇, q␇㉸␇, q␇㉸␇, q␇카␇, q␇카␇);
+Test_N(q␇㉹␇, q␇㉹␇, q␇㉹␇, q␇타␇, q␇타␇);
+Test_N(q␇㉺␇, q␇㉺␇, q␇㉺␇, q␇파␇, q␇파␇);
+Test_N(q␇㉻␇, q␇㉻␇, q␇㉻␇, q␇하␇, q␇하␇);
+Test_N(q␇㉼␇, q␇㉼␇, q␇㉼␇, q␇참고␇, q␇참고␇);
+Test_N(q␇㉽␇, q␇㉽␇, q␇㉽␇, q␇주의␇, q␇주의␇);
+Test_N(q␇㉾␇, q␇㉾␇, q␇㉾␇, q␇우␇, q␇우␇);
+Test_N(q␇㊀␇, q␇㊀␇, q␇㊀␇, q␇一␇, q␇一␇);
+Test_N(q␇㊁␇, q␇㊁␇, q␇㊁␇, q␇二␇, q␇二␇);
+Test_N(q␇㊂␇, q␇㊂␇, q␇㊂␇, q␇三␇, q␇三␇);
+Test_N(q␇㊃␇, q␇㊃␇, q␇㊃␇, q␇四␇, q␇四␇);
+Test_N(q␇㊄␇, q␇㊄␇, q␇㊄␇, q␇五␇, q␇五␇);
+Test_N(q␇㊅␇, q␇㊅␇, q␇㊅␇, q␇六␇, q␇六␇);
+Test_N(q␇㊆␇, q␇㊆␇, q␇㊆␇, q␇七␇, q␇七␇);
+Test_N(q␇㊇␇, q␇㊇␇, q␇㊇␇, q␇八␇, q␇八␇);
+Test_N(q␇㊈␇, q␇㊈␇, q␇㊈␇, q␇九␇, q␇九␇);
+Test_N(q␇㊉␇, q␇㊉␇, q␇㊉␇, q␇十␇, q␇十␇);
+Test_N(q␇㊊␇, q␇㊊␇, q␇㊊␇, q␇月␇, q␇月␇);
+Test_N(q␇㊋␇, q␇㊋␇, q␇㊋␇, q␇火␇, q␇火␇);
+Test_N(q␇㊌␇, q␇㊌␇, q␇㊌␇, q␇水␇, q␇水␇);
+Test_N(q␇㊍␇, q␇㊍␇, q␇㊍␇, q␇木␇, q␇木␇);
+Test_N(q␇㊎␇, q␇㊎␇, q␇㊎␇, q␇金␇, q␇金␇);
+Test_N(q␇㊏␇, q␇㊏␇, q␇㊏␇, q␇土␇, q␇土␇);
+Test_N(q␇㊐␇, q␇㊐␇, q␇㊐␇, q␇日␇, q␇日␇);
+Test_N(q␇㊑␇, q␇㊑␇, q␇㊑␇, q␇株␇, q␇株␇);
+Test_N(q␇㊒␇, q␇㊒␇, q␇㊒␇, q␇有␇, q␇有␇);
+Test_N(q␇㊓␇, q␇㊓␇, q␇㊓␇, q␇社␇, q␇社␇);
+Test_N(q␇㊔␇, q␇㊔␇, q␇㊔␇, q␇名␇, q␇名␇);
+Test_N(q␇㊕␇, q␇㊕␇, q␇㊕␇, q␇特␇, q␇特␇);
+Test_N(q␇㊖␇, q␇㊖␇, q␇㊖␇, q␇財␇, q␇財␇);
+Test_N(q␇㊗␇, q␇㊗␇, q␇㊗␇, q␇祝␇, q␇祝␇);
+Test_N(q␇㊘␇, q␇㊘␇, q␇㊘␇, q␇労␇, q␇労␇);
+Test_N(q␇㊙␇, q␇㊙␇, q␇㊙␇, q␇秘␇, q␇秘␇);
+Test_N(q␇㊚␇, q␇㊚␇, q␇㊚␇, q␇男␇, q␇男␇);
+Test_N(q␇㊛␇, q␇㊛␇, q␇㊛␇, q␇女␇, q␇女␇);
+Test_N(q␇㊜␇, q␇㊜␇, q␇㊜␇, q␇適␇, q␇適␇);
+Test_N(q␇㊝␇, q␇㊝␇, q␇㊝␇, q␇優␇, q␇優␇);
+Test_N(q␇㊞␇, q␇㊞␇, q␇㊞␇, q␇印␇, q␇印␇);
+Test_N(q␇㊟␇, q␇㊟␇, q␇㊟␇, q␇注␇, q␇注␇);
+Test_N(q␇㊠␇, q␇㊠␇, q␇㊠␇, q␇項␇, q␇項␇);
+Test_N(q␇㊡␇, q␇㊡␇, q␇㊡␇, q␇休␇, q␇休␇);
+Test_N(q␇㊢␇, q␇㊢␇, q␇㊢␇, q␇写␇, q␇写␇);
+Test_N(q␇㊣␇, q␇㊣␇, q␇㊣␇, q␇正␇, q␇正␇);
+Test_N(q␇㊤␇, q␇㊤␇, q␇㊤␇, q␇上␇, q␇上␇);
+Test_N(q␇㊥␇, q␇㊥␇, q␇㊥␇, q␇中␇, q␇中␇);
+Test_N(q␇㊦␇, q␇㊦␇, q␇㊦␇, q␇下␇, q␇下␇);
+Test_N(q␇㊧␇, q␇㊧␇, q␇㊧␇, q␇左␇, q␇左␇);
+Test_N(q␇㊨␇, q␇㊨␇, q␇㊨␇, q␇右␇, q␇右␇);
+Test_N(q␇㊩␇, q␇㊩␇, q␇㊩␇, q␇医␇, q␇医␇);
+Test_N(q␇㊪␇, q␇㊪␇, q␇㊪␇, q␇宗␇, q␇宗␇);
+Test_N(q␇㊫␇, q␇㊫␇, q␇㊫␇, q␇学␇, q␇学␇);
+Test_N(q␇㊬␇, q␇㊬␇, q␇㊬␇, q␇監␇, q␇監␇);
+Test_N(q␇㊭␇, q␇㊭␇, q␇㊭␇, q␇企␇, q␇企␇);
+Test_N(q␇㊮␇, q␇㊮␇, q␇㊮␇, q␇資␇, q␇資␇);
+Test_N(q␇㊯␇, q␇㊯␇, q␇㊯␇, q␇協␇, q␇協␇);
+Test_N(q␇㊰␇, q␇㊰␇, q␇㊰␇, q␇夜␇, q␇夜␇);
+Test_N(q␇㊱␇, q␇㊱␇, q␇㊱␇, q␇36␇, q␇36␇);
+Test_N(q␇㊲␇, q␇㊲␇, q␇㊲␇, q␇37␇, q␇37␇);
+Test_N(q␇㊳␇, q␇㊳␇, q␇㊳␇, q␇38␇, q␇38␇);
+Test_N(q␇㊴␇, q␇㊴␇, q␇㊴␇, q␇39␇, q␇39␇);
+Test_N(q␇㊵␇, q␇㊵␇, q␇㊵␇, q␇40␇, q␇40␇);
+Test_N(q␇㊶␇, q␇㊶␇, q␇㊶␇, q␇41␇, q␇41␇);
+Test_N(q␇㊷␇, q␇㊷␇, q␇㊷␇, q␇42␇, q␇42␇);
+Test_N(q␇㊸␇, q␇㊸␇, q␇㊸␇, q␇43␇, q␇43␇);
+Test_N(q␇㊹␇, q␇㊹␇, q␇㊹␇, q␇44␇, q␇44␇);
+Test_N(q␇㊺␇, q␇㊺␇, q␇㊺␇, q␇45␇, q␇45␇);
+Test_N(q␇㊻␇, q␇㊻␇, q␇㊻␇, q␇46␇, q␇46␇);
+Test_N(q␇㊼␇, q␇㊼␇, q␇㊼␇, q␇47␇, q␇47␇);
+Test_N(q␇㊽␇, q␇㊽␇, q␇㊽␇, q␇48␇, q␇48␇);
+Test_N(q␇㊾␇, q␇㊾␇, q␇㊾␇, q␇49␇, q␇49␇);
+Test_N(q␇㊿␇, q␇㊿␇, q␇㊿␇, q␇50␇, q␇50␇);
+Test_N(q␇㋀␇, q␇㋀␇, q␇㋀␇, q␇1月␇, q␇1月␇);
+Test_N(q␇㋁␇, q␇㋁␇, q␇㋁␇, q␇2月␇, q␇2月␇);
+Test_N(q␇㋂␇, q␇㋂␇, q␇㋂␇, q␇3月␇, q␇3月␇);
+Test_N(q␇㋃␇, q␇㋃␇, q␇㋃␇, q␇4月␇, q␇4月␇);
+Test_N(q␇㋄␇, q␇㋄␇, q␇㋄␇, q␇5月␇, q␇5月␇);
+Test_N(q␇㋅␇, q␇㋅␇, q␇㋅␇, q␇6月␇, q␇6月␇);
+Test_N(q␇㋆␇, q␇㋆␇, q␇㋆␇, q␇7月␇, q␇7月␇);
+Test_N(q␇㋇␇, q␇㋇␇, q␇㋇␇, q␇8月␇, q␇8月␇);
+Test_N(q␇㋈␇, q␇㋈␇, q␇㋈␇, q␇9月␇, q␇9月␇);
+Test_N(q␇㋉␇, q␇㋉␇, q␇㋉␇, q␇10月␇, q␇10月␇);
+Test_N(q␇㋊␇, q␇㋊␇, q␇㋊␇, q␇11月␇, q␇11月␇);
+Test_N(q␇㋋␇, q␇㋋␇, q␇㋋␇, q␇12月␇, q␇12月␇);
+Test_N(q␇㋌␇, q␇㋌␇, q␇㋌␇, q␇Hg␇, q␇Hg␇);
+Test_N(q␇㋍␇, q␇㋍␇, q␇㋍␇, q␇erg␇, q␇erg␇);
+Test_N(q␇㋎␇, q␇㋎␇, q␇㋎␇, q␇eV␇, q␇eV␇);
+Test_N(q␇㋏␇, q␇㋏␇, q␇㋏␇, q␇LTD␇, q␇LTD␇);
+Test_N(q␇㋐␇, q␇㋐␇, q␇㋐␇, q␇ア␇, q␇ア␇);
+Test_N(q␇㋑␇, q␇㋑␇, q␇㋑␇, q␇イ␇, q␇イ␇);
+Test_N(q␇㋒␇, q␇㋒␇, q␇㋒␇, q␇ウ␇, q␇ウ␇);
+Test_N(q␇㋓␇, q␇㋓␇, q␇㋓␇, q␇エ␇, q␇エ␇);
+Test_N(q␇㋔␇, q␇㋔␇, q␇㋔␇, q␇オ␇, q␇オ␇);
+Test_N(q␇㋕␇, q␇㋕␇, q␇㋕␇, q␇カ␇, q␇カ␇);
+Test_N(q␇㋖␇, q␇㋖␇, q␇㋖␇, q␇キ␇, q␇キ␇);
+Test_N(q␇㋗␇, q␇㋗␇, q␇㋗␇, q␇ク␇, q␇ク␇);
+Test_N(q␇㋘␇, q␇㋘␇, q␇㋘␇, q␇ケ␇, q␇ケ␇);
+Test_N(q␇㋙␇, q␇㋙␇, q␇㋙␇, q␇コ␇, q␇コ␇);
+Test_N(q␇㋚␇, q␇㋚␇, q␇㋚␇, q␇サ␇, q␇サ␇);
+Test_N(q␇㋛␇, q␇㋛␇, q␇㋛␇, q␇シ␇, q␇シ␇);
+Test_N(q␇㋜␇, q␇㋜␇, q␇㋜␇, q␇ス␇, q␇ス␇);
+Test_N(q␇㋝␇, q␇㋝␇, q␇㋝␇, q␇セ␇, q␇セ␇);
+Test_N(q␇㋞␇, q␇㋞␇, q␇㋞␇, q␇ソ␇, q␇ソ␇);
+Test_N(q␇㋟␇, q␇㋟␇, q␇㋟␇, q␇タ␇, q␇タ␇);
+Test_N(q␇㋠␇, q␇㋠␇, q␇㋠␇, q␇チ␇, q␇チ␇);
+Test_N(q␇㋡␇, q␇㋡␇, q␇㋡␇, q␇ツ␇, q␇ツ␇);
+Test_N(q␇㋢␇, q␇㋢␇, q␇㋢␇, q␇テ␇, q␇テ␇);
+Test_N(q␇㋣␇, q␇㋣␇, q␇㋣␇, q␇ト␇, q␇ト␇);
+Test_N(q␇㋤␇, q␇㋤␇, q␇㋤␇, q␇ナ␇, q␇ナ␇);
+Test_N(q␇㋥␇, q␇㋥␇, q␇㋥␇, q␇ニ␇, q␇ニ␇);
+Test_N(q␇㋦␇, q␇㋦␇, q␇㋦␇, q␇ヌ␇, q␇ヌ␇);
+Test_N(q␇㋧␇, q␇㋧␇, q␇㋧␇, q␇ネ␇, q␇ネ␇);
+Test_N(q␇㋨␇, q␇㋨␇, q␇㋨␇, q␇ノ␇, q␇ノ␇);
+Test_N(q␇㋩␇, q␇㋩␇, q␇㋩␇, q␇ハ␇, q␇ハ␇);
+Test_N(q␇㋪␇, q␇㋪␇, q␇㋪␇, q␇ヒ␇, q␇ヒ␇);
+Test_N(q␇㋫␇, q␇㋫␇, q␇㋫␇, q␇フ␇, q␇フ␇);
+Test_N(q␇㋬␇, q␇㋬␇, q␇㋬␇, q␇ヘ␇, q␇ヘ␇);
+Test_N(q␇㋭␇, q␇㋭␇, q␇㋭␇, q␇ホ␇, q␇ホ␇);
+Test_N(q␇㋮␇, q␇㋮␇, q␇㋮␇, q␇マ␇, q␇マ␇);
+Test_N(q␇㋯␇, q␇㋯␇, q␇㋯␇, q␇ミ␇, q␇ミ␇);
+Test_N(q␇㋰␇, q␇㋰␇, q␇㋰␇, q␇ム␇, q␇ム␇);
+Test_N(q␇㋱␇, q␇㋱␇, q␇㋱␇, q␇メ␇, q␇メ␇);
+Test_N(q␇㋲␇, q␇㋲␇, q␇㋲␇, q␇モ␇, q␇モ␇);
+Test_N(q␇㋳␇, q␇㋳␇, q␇㋳␇, q␇ヤ␇, q␇ヤ␇);
+Test_N(q␇㋴␇, q␇㋴␇, q␇㋴␇, q␇ユ␇, q␇ユ␇);
+Test_N(q␇㋵␇, q␇㋵␇, q␇㋵␇, q␇ヨ␇, q␇ヨ␇);
+Test_N(q␇㋶␇, q␇㋶␇, q␇㋶␇, q␇ラ␇, q␇ラ␇);
+Test_N(q␇㋷␇, q␇㋷␇, q␇㋷␇, q␇リ␇, q␇リ␇);
+Test_N(q␇㋸␇, q␇㋸␇, q␇㋸␇, q␇ル␇, q␇ル␇);
+Test_N(q␇㋹␇, q␇㋹␇, q␇㋹␇, q␇レ␇, q␇レ␇);
+Test_N(q␇㋺␇, q␇㋺␇, q␇㋺␇, q␇ロ␇, q␇ロ␇);
+Test_N(q␇㋻␇, q␇㋻␇, q␇㋻␇, q␇ワ␇, q␇ワ␇);
+Test_N(q␇㋼␇, q␇㋼␇, q␇㋼␇, q␇ヰ␇, q␇ヰ␇);
+Test_N(q␇㋽␇, q␇㋽␇, q␇㋽␇, q␇ヱ␇, q␇ヱ␇);
+Test_N(q␇㋾␇, q␇㋾␇, q␇㋾␇, q␇ヲ␇, q␇ヲ␇);
+Test_N(q␇㋿␇, q␇㋿␇, q␇㋿␇, q␇令和␇, q␇令和␇);
+Test_N(q␇㌀␇, q␇㌀␇, q␇㌀␇, q␇アパート␇, q␇アパート␇);
+Test_N(q␇㌁␇, q␇㌁␇, q␇㌁␇, q␇アルファ␇, q␇アルファ␇);
+Test_N(q␇㌂␇, q␇㌂␇, q␇㌂␇, q␇アンペア␇, q␇アンペア␇);
+Test_N(q␇㌃␇, q␇㌃␇, q␇㌃␇, q␇アール␇, q␇アール␇);
+Test_N(q␇㌄␇, q␇㌄␇, q␇㌄␇, q␇イニング␇, q␇イニング␇);
+Test_N(q␇㌅␇, q␇㌅␇, q␇㌅␇, q␇インチ␇, q␇インチ␇);
+Test_N(q␇㌆␇, q␇㌆␇, q␇㌆␇, q␇ウォン␇, q␇ウォン␇);
+Test_N(q␇㌇␇, q␇㌇␇, q␇㌇␇, q␇エスクード␇, q␇エスクード␇);
+Test_N(q␇㌈␇, q␇㌈␇, q␇㌈␇, q␇エーカー␇, q␇エーカー␇);
+Test_N(q␇㌉␇, q␇㌉␇, q␇㌉␇, q␇オンス␇, q␇オンス␇);
+Test_N(q␇㌊␇, q␇㌊␇, q␇㌊␇, q␇オーム␇, q␇オーム␇);
+Test_N(q␇㌋␇, q␇㌋␇, q␇㌋␇, q␇カイリ␇, q␇カイリ␇);
+Test_N(q␇㌌␇, q␇㌌␇, q␇㌌␇, q␇カラット␇, q␇カラット␇);
+Test_N(q␇㌍␇, q␇㌍␇, q␇㌍␇, q␇カロリー␇, q␇カロリー␇);
+Test_N(q␇㌎␇, q␇㌎␇, q␇㌎␇, q␇ガロン␇, q␇ガロン␇);
+Test_N(q␇㌏␇, q␇㌏␇, q␇㌏␇, q␇ガンマ␇, q␇ガンマ␇);
+Test_N(q␇㌐␇, q␇㌐␇, q␇㌐␇, q␇ギガ␇, q␇ギガ␇);
+Test_N(q␇㌑␇, q␇㌑␇, q␇㌑␇, q␇ギニー␇, q␇ギニー␇);
+Test_N(q␇㌒␇, q␇㌒␇, q␇㌒␇, q␇キュリー␇, q␇キュリー␇);
+Test_N(q␇㌓␇, q␇㌓␇, q␇㌓␇, q␇ギルダー␇, q␇ギルダー␇);
+Test_N(q␇㌔␇, q␇㌔␇, q␇㌔␇, q␇キロ␇, q␇キロ␇);
+Test_N(q␇㌕␇, q␇㌕␇, q␇㌕␇, q␇キログラム␇, q␇キログラム␇);
+Test_N(q␇㌖␇, q␇㌖␇, q␇㌖␇, q␇キロメートル␇, q␇キロメートル␇);
+Test_N(q␇㌗␇, q␇㌗␇, q␇㌗␇, q␇キロワット␇, q␇キロワット␇);
+Test_N(q␇㌘␇, q␇㌘␇, q␇㌘␇, q␇グラム␇, q␇グラム␇);
+Test_N(q␇㌙␇, q␇㌙␇, q␇㌙␇, q␇グラムトン␇, q␇グラムトン␇);
+Test_N(q␇㌚␇, q␇㌚␇, q␇㌚␇, q␇クルゼイロ␇, q␇クルゼイロ␇);
+Test_N(q␇㌛␇, q␇㌛␇, q␇㌛␇, q␇クローネ␇, q␇クローネ␇);
+Test_N(q␇㌜␇, q␇㌜␇, q␇㌜␇, q␇ケース␇, q␇ケース␇);
+Test_N(q␇㌝␇, q␇㌝␇, q␇㌝␇, q␇コルナ␇, q␇コルナ␇);
+Test_N(q␇㌞␇, q␇㌞␇, q␇㌞␇, q␇コーポ␇, q␇コーポ␇);
+Test_N(q␇㌟␇, q␇㌟␇, q␇㌟␇, q␇サイクル␇, q␇サイクル␇);
+Test_N(q␇㌠␇, q␇㌠␇, q␇㌠␇, q␇サンチーム␇, q␇サンチーム␇);
+Test_N(q␇㌡␇, q␇㌡␇, q␇㌡␇, q␇シリング␇, q␇シリング␇);
+Test_N(q␇㌢␇, q␇㌢␇, q␇㌢␇, q␇センチ␇, q␇センチ␇);
+Test_N(q␇㌣␇, q␇㌣␇, q␇㌣␇, q␇セント␇, q␇セント␇);
+Test_N(q␇㌤␇, q␇㌤␇, q␇㌤␇, q␇ダース␇, q␇ダース␇);
+Test_N(q␇㌥␇, q␇㌥␇, q␇㌥␇, q␇デシ␇, q␇デシ␇);
+Test_N(q␇㌦␇, q␇㌦␇, q␇㌦␇, q␇ドル␇, q␇ドル␇);
+Test_N(q␇㌧␇, q␇㌧␇, q␇㌧␇, q␇トン␇, q␇トン␇);
+Test_N(q␇㌨␇, q␇㌨␇, q␇㌨␇, q␇ナノ␇, q␇ナノ␇);
+Test_N(q␇㌩␇, q␇㌩␇, q␇㌩␇, q␇ノット␇, q␇ノット␇);
+Test_N(q␇㌪␇, q␇㌪␇, q␇㌪␇, q␇ハイツ␇, q␇ハイツ␇);
+Test_N(q␇㌫␇, q␇㌫␇, q␇㌫␇, q␇パーセント␇, q␇パーセント␇);
+Test_N(q␇㌬␇, q␇㌬␇, q␇㌬␇, q␇パーツ␇, q␇パーツ␇);
+Test_N(q␇㌭␇, q␇㌭␇, q␇㌭␇, q␇バーレル␇, q␇バーレル␇);
+Test_N(q␇㌮␇, q␇㌮␇, q␇㌮␇, q␇ピアストル␇, q␇ピアストル␇);
+Test_N(q␇㌯␇, q␇㌯␇, q␇㌯␇, q␇ピクル␇, q␇ピクル␇);
+Test_N(q␇㌰␇, q␇㌰␇, q␇㌰␇, q␇ピコ␇, q␇ピコ␇);
+Test_N(q␇㌱␇, q␇㌱␇, q␇㌱␇, q␇ビル␇, q␇ビル␇);
+Test_N(q␇㌲␇, q␇㌲␇, q␇㌲␇, q␇ファラッド␇, q␇ファラッド␇);
+Test_N(q␇㌳␇, q␇㌳␇, q␇㌳␇, q␇フィート␇, q␇フィート␇);
+Test_N(q␇㌴␇, q␇㌴␇, q␇㌴␇, q␇ブッシェル␇, q␇ブッシェル␇);
+Test_N(q␇㌵␇, q␇㌵␇, q␇㌵␇, q␇フラン␇, q␇フラン␇);
+Test_N(q␇㌶␇, q␇㌶␇, q␇㌶␇, q␇ヘクタール␇, q␇ヘクタール␇);
+Test_N(q␇㌷␇, q␇㌷␇, q␇㌷␇, q␇ペソ␇, q␇ペソ␇);
+Test_N(q␇㌸␇, q␇㌸␇, q␇㌸␇, q␇ペニヒ␇, q␇ペニヒ␇);
+Test_N(q␇㌹␇, q␇㌹␇, q␇㌹␇, q␇ヘルツ␇, q␇ヘルツ␇);
+Test_N(q␇㌺␇, q␇㌺␇, q␇㌺␇, q␇ペンス␇, q␇ペンス␇);
+Test_N(q␇㌻␇, q␇㌻␇, q␇㌻␇, q␇ページ␇, q␇ページ␇);
+Test_N(q␇㌼␇, q␇㌼␇, q␇㌼␇, q␇ベータ␇, q␇ベータ␇);
+Test_N(q␇㌽␇, q␇㌽␇, q␇㌽␇, q␇ポイント␇, q␇ポイント␇);
+Test_N(q␇㌾␇, q␇㌾␇, q␇㌾␇, q␇ボルト␇, q␇ボルト␇);
+Test_N(q␇㌿␇, q␇㌿␇, q␇㌿␇, q␇ホン␇, q␇ホン␇);
+Test_N(q␇㍀␇, q␇㍀␇, q␇㍀␇, q␇ポンド␇, q␇ポンド␇);
+Test_N(q␇㍁␇, q␇㍁␇, q␇㍁␇, q␇ホール␇, q␇ホール␇);
+Test_N(q␇㍂␇, q␇㍂␇, q␇㍂␇, q␇ホーン␇, q␇ホーン␇);
+Test_N(q␇㍃␇, q␇㍃␇, q␇㍃␇, q␇マイクロ␇, q␇マイクロ␇);
+Test_N(q␇㍄␇, q␇㍄␇, q␇㍄␇, q␇マイル␇, q␇マイル␇);
+Test_N(q␇㍅␇, q␇㍅␇, q␇㍅␇, q␇マッハ␇, q␇マッハ␇);
+Test_N(q␇㍆␇, q␇㍆␇, q␇㍆␇, q␇マルク␇, q␇マルク␇);
+Test_N(q␇㍇␇, q␇㍇␇, q␇㍇␇, q␇マンション␇, q␇マンション␇);
+Test_N(q␇㍈␇, q␇㍈␇, q␇㍈␇, q␇ミクロン␇, q␇ミクロン␇);
+Test_N(q␇㍉␇, q␇㍉␇, q␇㍉␇, q␇ミリ␇, q␇ミリ␇);
+Test_N(q␇㍊␇, q␇㍊␇, q␇㍊␇, q␇ミリバール␇, q␇ミリバール␇);
+Test_N(q␇㍋␇, q␇㍋␇, q␇㍋␇, q␇メガ␇, q␇メガ␇);
+Test_N(q␇㍌␇, q␇㍌␇, q␇㍌␇, q␇メガトン␇, q␇メガトン␇);
+Test_N(q␇㍍␇, q␇㍍␇, q␇㍍␇, q␇メートル␇, q␇メートル␇);
+Test_N(q␇㍎␇, q␇㍎␇, q␇㍎␇, q␇ヤード␇, q␇ヤード␇);
+Test_N(q␇㍏␇, q␇㍏␇, q␇㍏␇, q␇ヤール␇, q␇ヤール␇);
+Test_N(q␇㍐␇, q␇㍐␇, q␇㍐␇, q␇ユアン␇, q␇ユアン␇);
+Test_N(q␇㍑␇, q␇㍑␇, q␇㍑␇, q␇リットル␇, q␇リットル␇);
+Test_N(q␇㍒␇, q␇㍒␇, q␇㍒␇, q␇リラ␇, q␇リラ␇);
+Test_N(q␇㍓␇, q␇㍓␇, q␇㍓␇, q␇ルピー␇, q␇ルピー␇);
+Test_N(q␇㍔␇, q␇㍔␇, q␇㍔␇, q␇ルーブル␇, q␇ルーブル␇);
+Test_N(q␇㍕␇, q␇㍕␇, q␇㍕␇, q␇レム␇, q␇レム␇);
+Test_N(q␇㍖␇, q␇㍖␇, q␇㍖␇, q␇レントゲン␇, q␇レントゲン␇);
+Test_N(q␇㍗␇, q␇㍗␇, q␇㍗␇, q␇ワット␇, q␇ワット␇);
+Test_N(q␇㍘␇, q␇㍘␇, q␇㍘␇, q␇0点␇, q␇0点␇);
+Test_N(q␇㍙␇, q␇㍙␇, q␇㍙␇, q␇1点␇, q␇1点␇);
+Test_N(q␇㍚␇, q␇㍚␇, q␇㍚␇, q␇2点␇, q␇2点␇);
+Test_N(q␇㍛␇, q␇㍛␇, q␇㍛␇, q␇3点␇, q␇3点␇);
+Test_N(q␇㍜␇, q␇㍜␇, q␇㍜␇, q␇4点␇, q␇4点␇);
+Test_N(q␇㍝␇, q␇㍝␇, q␇㍝␇, q␇5点␇, q␇5点␇);
+Test_N(q␇㍞␇, q␇㍞␇, q␇㍞␇, q␇6点␇, q␇6点␇);
+Test_N(q␇㍟␇, q␇㍟␇, q␇㍟␇, q␇7点␇, q␇7点␇);
+Test_N(q␇㍠␇, q␇㍠␇, q␇㍠␇, q␇8点␇, q␇8点␇);
+Test_N(q␇㍡␇, q␇㍡␇, q␇㍡␇, q␇9点␇, q␇9点␇);
+Test_N(q␇㍢␇, q␇㍢␇, q␇㍢␇, q␇10点␇, q␇10点␇);
+Test_N(q␇㍣␇, q␇㍣␇, q␇㍣␇, q␇11点␇, q␇11点␇);
+Test_N(q␇㍤␇, q␇㍤␇, q␇㍤␇, q␇12点␇, q␇12点␇);
+Test_N(q␇㍥␇, q␇㍥␇, q␇㍥␇, q␇13点␇, q␇13点␇);
+Test_N(q␇㍦␇, q␇㍦␇, q␇㍦␇, q␇14点␇, q␇14点␇);
+Test_N(q␇㍧␇, q␇㍧␇, q␇㍧␇, q␇15点␇, q␇15点␇);
+Test_N(q␇㍨␇, q␇㍨␇, q␇㍨␇, q␇16点␇, q␇16点␇);
+Test_N(q␇㍩␇, q␇㍩␇, q␇㍩␇, q␇17点␇, q␇17点␇);
+Test_N(q␇㍪␇, q␇㍪␇, q␇㍪␇, q␇18点␇, q␇18点␇);
+Test_N(q␇㍫␇, q␇㍫␇, q␇㍫␇, q␇19点␇, q␇19点␇);
+Test_N(q␇㍬␇, q␇㍬␇, q␇㍬␇, q␇20点␇, q␇20点␇);
+Test_N(q␇㍭␇, q␇㍭␇, q␇㍭␇, q␇21点␇, q␇21点␇);
+Test_N(q␇㍮␇, q␇㍮␇, q␇㍮␇, q␇22点␇, q␇22点␇);
+Test_N(q␇㍯␇, q␇㍯␇, q␇㍯␇, q␇23点␇, q␇23点␇);
+Test_N(q␇㍰␇, q␇㍰␇, q␇㍰␇, q␇24点␇, q␇24点␇);
+Test_N(q␇㍱␇, q␇㍱␇, q␇㍱␇, q␇hPa␇, q␇hPa␇);
+Test_N(q␇㍲␇, q␇㍲␇, q␇㍲␇, q␇da␇, q␇da␇);
+Test_N(q␇㍳␇, q␇㍳␇, q␇㍳␇, q␇AU␇, q␇AU␇);
+Test_N(q␇㍴␇, q␇㍴␇, q␇㍴␇, q␇bar␇, q␇bar␇);
+Test_N(q␇㍵␇, q␇㍵␇, q␇㍵␇, q␇oV␇, q␇oV␇);
+Test_N(q␇㍶␇, q␇㍶␇, q␇㍶␇, q␇pc␇, q␇pc␇);
+Test_N(q␇㍷␇, q␇㍷␇, q␇㍷␇, q␇dm␇, q␇dm␇);
+Test_N(q␇㍸␇, q␇㍸␇, q␇㍸␇, q␇dm2␇, q␇dm2␇);
+Test_N(q␇㍹␇, q␇㍹␇, q␇㍹␇, q␇dm3␇, q␇dm3␇);
+Test_N(q␇㍺␇, q␇㍺␇, q␇㍺␇, q␇IU␇, q␇IU␇);
+Test_N(q␇㍻␇, q␇㍻␇, q␇㍻␇, q␇平成␇, q␇平成␇);
+Test_N(q␇㍼␇, q␇㍼␇, q␇㍼␇, q␇昭和␇, q␇昭和␇);
+Test_N(q␇㍽␇, q␇㍽␇, q␇㍽␇, q␇大正␇, q␇大正␇);
+Test_N(q␇㍾␇, q␇㍾␇, q␇㍾␇, q␇明治␇, q␇明治␇);
+Test_N(q␇㍿␇, q␇㍿␇, q␇㍿␇, q␇株式会社␇, q␇株式会社␇);
+Test_N(q␇㎀␇, q␇㎀␇, q␇㎀␇, q␇pA␇, q␇pA␇);
+Test_N(q␇㎁␇, q␇㎁␇, q␇㎁␇, q␇nA␇, q␇nA␇);
+Test_N(q␇㎂␇, q␇㎂␇, q␇㎂␇, q␇μA␇, q␇μA␇);
+Test_N(q␇㎃␇, q␇㎃␇, q␇㎃␇, q␇mA␇, q␇mA␇);
+Test_N(q␇㎄␇, q␇㎄␇, q␇㎄␇, q␇kA␇, q␇kA␇);
+Test_N(q␇㎅␇, q␇㎅␇, q␇㎅␇, q␇KB␇, q␇KB␇);
+Test_N(q␇㎆␇, q␇㎆␇, q␇㎆␇, q␇MB␇, q␇MB␇);
+Test_N(q␇㎇␇, q␇㎇␇, q␇㎇␇, q␇GB␇, q␇GB␇);
+Test_N(q␇㎈␇, q␇㎈␇, q␇㎈␇, q␇cal␇, q␇cal␇);
+Test_N(q␇㎉␇, q␇㎉␇, q␇㎉␇, q␇kcal␇, q␇kcal␇);
+Test_N(q␇㎊␇, q␇㎊␇, q␇㎊␇, q␇pF␇, q␇pF␇);
+Test_N(q␇㎋␇, q␇㎋␇, q␇㎋␇, q␇nF␇, q␇nF␇);
+Test_N(q␇㎌␇, q␇㎌␇, q␇㎌␇, q␇μF␇, q␇μF␇);
+Test_N(q␇㎍␇, q␇㎍␇, q␇㎍␇, q␇μg␇, q␇μg␇);
+Test_N(q␇㎎␇, q␇㎎␇, q␇㎎␇, q␇mg␇, q␇mg␇);
+Test_N(q␇㎏␇, q␇㎏␇, q␇㎏␇, q␇kg␇, q␇kg␇);
+Test_N(q␇㎐␇, q␇㎐␇, q␇㎐␇, q␇Hz␇, q␇Hz␇);
+Test_N(q␇㎑␇, q␇㎑␇, q␇㎑␇, q␇kHz␇, q␇kHz␇);
+Test_N(q␇㎒␇, q␇㎒␇, q␇㎒␇, q␇MHz␇, q␇MHz␇);
+Test_N(q␇㎓␇, q␇㎓␇, q␇㎓␇, q␇GHz␇, q␇GHz␇);
+Test_N(q␇㎔␇, q␇㎔␇, q␇㎔␇, q␇THz␇, q␇THz␇);
+Test_N(q␇㎕␇, q␇㎕␇, q␇㎕␇, q␇μl␇, q␇μl␇);
+Test_N(q␇㎖␇, q␇㎖␇, q␇㎖␇, q␇ml␇, q␇ml␇);
+Test_N(q␇㎗␇, q␇㎗␇, q␇㎗␇, q␇dl␇, q␇dl␇);
+Test_N(q␇㎘␇, q␇㎘␇, q␇㎘␇, q␇kl␇, q␇kl␇);
+Test_N(q␇㎙␇, q␇㎙␇, q␇㎙␇, q␇fm␇, q␇fm␇);
+Test_N(q␇㎚␇, q␇㎚␇, q␇㎚␇, q␇nm␇, q␇nm␇);
+Test_N(q␇㎛␇, q␇㎛␇, q␇㎛␇, q␇μm␇, q␇μm␇);
+Test_N(q␇㎜␇, q␇㎜␇, q␇㎜␇, q␇mm␇, q␇mm␇);
+Test_N(q␇㎝␇, q␇㎝␇, q␇㎝␇, q␇cm␇, q␇cm␇);
+Test_N(q␇㎞␇, q␇㎞␇, q␇㎞␇, q␇km␇, q␇km␇);
+Test_N(q␇㎟␇, q␇㎟␇, q␇㎟␇, q␇mm2␇, q␇mm2␇);
+Test_N(q␇㎠␇, q␇㎠␇, q␇㎠␇, q␇cm2␇, q␇cm2␇);
+Test_N(q␇㎡␇, q␇㎡␇, q␇㎡␇, q␇m2␇, q␇m2␇);
+Test_N(q␇㎢␇, q␇㎢␇, q␇㎢␇, q␇km2␇, q␇km2␇);
+Test_N(q␇㎣␇, q␇㎣␇, q␇㎣␇, q␇mm3␇, q␇mm3␇);
+Test_N(q␇㎤␇, q␇㎤␇, q␇㎤␇, q␇cm3␇, q␇cm3␇);
+Test_N(q␇㎥␇, q␇㎥␇, q␇㎥␇, q␇m3␇, q␇m3␇);
+Test_N(q␇㎦␇, q␇㎦␇, q␇㎦␇, q␇km3␇, q␇km3␇);
+Test_N(q␇㎧␇, q␇㎧␇, q␇㎧␇, q␇m∕s␇, q␇m∕s␇);
+Test_N(q␇㎨␇, q␇㎨␇, q␇㎨␇, q␇m∕s2␇, q␇m∕s2␇);
+Test_N(q␇㎩␇, q␇㎩␇, q␇㎩␇, q␇Pa␇, q␇Pa␇);
+Test_N(q␇㎪␇, q␇㎪␇, q␇㎪␇, q␇kPa␇, q␇kPa␇);
+Test_N(q␇㎫␇, q␇㎫␇, q␇㎫␇, q␇MPa␇, q␇MPa␇);
+Test_N(q␇㎬␇, q␇㎬␇, q␇㎬␇, q␇GPa␇, q␇GPa␇);
+Test_N(q␇㎭␇, q␇㎭␇, q␇㎭␇, q␇rad␇, q␇rad␇);
+Test_N(q␇㎮␇, q␇㎮␇, q␇㎮␇, q␇rad∕s␇, q␇rad∕s␇);
+Test_N(q␇㎯␇, q␇㎯␇, q␇㎯␇, q␇rad∕s2␇, q␇rad∕s2␇);
+Test_N(q␇㎰␇, q␇㎰␇, q␇㎰␇, q␇ps␇, q␇ps␇);
+Test_N(q␇㎱␇, q␇㎱␇, q␇㎱␇, q␇ns␇, q␇ns␇);
+Test_N(q␇㎲␇, q␇㎲␇, q␇㎲␇, q␇μs␇, q␇μs␇);
+Test_N(q␇㎳␇, q␇㎳␇, q␇㎳␇, q␇ms␇, q␇ms␇);
+Test_N(q␇㎴␇, q␇㎴␇, q␇㎴␇, q␇pV␇, q␇pV␇);
+Test_N(q␇㎵␇, q␇㎵␇, q␇㎵␇, q␇nV␇, q␇nV␇);
+Test_N(q␇㎶␇, q␇㎶␇, q␇㎶␇, q␇μV␇, q␇μV␇);
+Test_N(q␇㎷␇, q␇㎷␇, q␇㎷␇, q␇mV␇, q␇mV␇);
+Test_N(q␇㎸␇, q␇㎸␇, q␇㎸␇, q␇kV␇, q␇kV␇);
+Test_N(q␇㎹␇, q␇㎹␇, q␇㎹␇, q␇MV␇, q␇MV␇);
+Test_N(q␇㎺␇, q␇㎺␇, q␇㎺␇, q␇pW␇, q␇pW␇);
+Test_N(q␇㎻␇, q␇㎻␇, q␇㎻␇, q␇nW␇, q␇nW␇);
+Test_N(q␇㎼␇, q␇㎼␇, q␇㎼␇, q␇μW␇, q␇μW␇);
+Test_N(q␇㎽␇, q␇㎽␇, q␇㎽␇, q␇mW␇, q␇mW␇);
+Test_N(q␇㎾␇, q␇㎾␇, q␇㎾␇, q␇kW␇, q␇kW␇);
+Test_N(q␇㎿␇, q␇㎿␇, q␇㎿␇, q␇MW␇, q␇MW␇);
+Test_N(q␇㏀␇, q␇㏀␇, q␇㏀␇, q␇kΩ␇, q␇kΩ␇);
+Test_N(q␇㏁␇, q␇㏁␇, q␇㏁␇, q␇MΩ␇, q␇MΩ␇);
+Test_N(q␇㏂␇, q␇㏂␇, q␇㏂␇, q␇a.m.␇, q␇a.m.␇);
+Test_N(q␇㏃␇, q␇㏃␇, q␇㏃␇, q␇Bq␇, q␇Bq␇);
+Test_N(q␇㏄␇, q␇㏄␇, q␇㏄␇, q␇cc␇, q␇cc␇);
+Test_N(q␇㏅␇, q␇㏅␇, q␇㏅␇, q␇cd␇, q␇cd␇);
+Test_N(q␇㏆␇, q␇㏆␇, q␇㏆␇, q␇C∕kg␇, q␇C∕kg␇);
+Test_N(q␇㏇␇, q␇㏇␇, q␇㏇␇, q␇Co.␇, q␇Co.␇);
+Test_N(q␇㏈␇, q␇㏈␇, q␇㏈␇, q␇dB␇, q␇dB␇);
+Test_N(q␇㏉␇, q␇㏉␇, q␇㏉␇, q␇Gy␇, q␇Gy␇);
+Test_N(q␇㏊␇, q␇㏊␇, q␇㏊␇, q␇ha␇, q␇ha␇);
+Test_N(q␇㏋␇, q␇㏋␇, q␇㏋␇, q␇HP␇, q␇HP␇);
+Test_N(q␇㏌␇, q␇㏌␇, q␇㏌␇, q␇in␇, q␇in␇);
+Test_N(q␇㏍␇, q␇㏍␇, q␇㏍␇, q␇KK␇, q␇KK␇);
+Test_N(q␇㏎␇, q␇㏎␇, q␇㏎␇, q␇KM␇, q␇KM␇);
+Test_N(q␇㏏␇, q␇㏏␇, q␇㏏␇, q␇kt␇, q␇kt␇);
+Test_N(q␇㏐␇, q␇㏐␇, q␇㏐␇, q␇lm␇, q␇lm␇);
+Test_N(q␇㏑␇, q␇㏑␇, q␇㏑␇, q␇ln␇, q␇ln␇);
+Test_N(q␇㏒␇, q␇㏒␇, q␇㏒␇, q␇log␇, q␇log␇);
+Test_N(q␇㏓␇, q␇㏓␇, q␇㏓␇, q␇lx␇, q␇lx␇);
+Test_N(q␇㏔␇, q␇㏔␇, q␇㏔␇, q␇mb␇, q␇mb␇);
+Test_N(q␇㏕␇, q␇㏕␇, q␇㏕␇, q␇mil␇, q␇mil␇);
+Test_N(q␇㏖␇, q␇㏖␇, q␇㏖␇, q␇mol␇, q␇mol␇);
+Test_N(q␇㏗␇, q␇㏗␇, q␇㏗␇, q␇PH␇, q␇PH␇);
+Test_N(q␇㏘␇, q␇㏘␇, q␇㏘␇, q␇p.m.␇, q␇p.m.␇);
+Test_N(q␇㏙␇, q␇㏙␇, q␇㏙␇, q␇PPM␇, q␇PPM␇);
+Test_N(q␇㏚␇, q␇㏚␇, q␇㏚␇, q␇PR␇, q␇PR␇);
+Test_N(q␇㏛␇, q␇㏛␇, q␇㏛␇, q␇sr␇, q␇sr␇);
+Test_N(q␇㏜␇, q␇㏜␇, q␇㏜␇, q␇Sv␇, q␇Sv␇);
+Test_N(q␇㏝␇, q␇㏝␇, q␇㏝␇, q␇Wb␇, q␇Wb␇);
+Test_N(q␇㏞␇, q␇㏞␇, q␇㏞␇, q␇V∕m␇, q␇V∕m␇);
+Test_N(q␇㏟␇, q␇㏟␇, q␇㏟␇, q␇A∕m␇, q␇A∕m␇);
+Test_N(q␇㏠␇, q␇㏠␇, q␇㏠␇, q␇1日␇, q␇1日␇);
+Test_N(q␇㏡␇, q␇㏡␇, q␇㏡␇, q␇2日␇, q␇2日␇);
+Test_N(q␇㏢␇, q␇㏢␇, q␇㏢␇, q␇3日␇, q␇3日␇);
+Test_N(q␇㏣␇, q␇㏣␇, q␇㏣␇, q␇4日␇, q␇4日␇);
+Test_N(q␇㏤␇, q␇㏤␇, q␇㏤␇, q␇5日␇, q␇5日␇);
+Test_N(q␇㏥␇, q␇㏥␇, q␇㏥␇, q␇6日␇, q␇6日␇);
+Test_N(q␇㏦␇, q␇㏦␇, q␇㏦␇, q␇7日␇, q␇7日␇);
+Test_N(q␇㏧␇, q␇㏧␇, q␇㏧␇, q␇8日␇, q␇8日␇);
+Test_N(q␇㏨␇, q␇㏨␇, q␇㏨␇, q␇9日␇, q␇9日␇);
+Test_N(q␇㏩␇, q␇㏩␇, q␇㏩␇, q␇10日␇, q␇10日␇);
+Test_N(q␇㏪␇, q␇㏪␇, q␇㏪␇, q␇11日␇, q␇11日␇);
+Test_N(q␇㏫␇, q␇㏫␇, q␇㏫␇, q␇12日␇, q␇12日␇);
+Test_N(q␇㏬␇, q␇㏬␇, q␇㏬␇, q␇13日␇, q␇13日␇);
+Test_N(q␇㏭␇, q␇㏭␇, q␇㏭␇, q␇14日␇, q␇14日␇);
+Test_N(q␇㏮␇, q␇㏮␇, q␇㏮␇, q␇15日␇, q␇15日␇);
+Test_N(q␇㏯␇, q␇㏯␇, q␇㏯␇, q␇16日␇, q␇16日␇);
+Test_N(q␇㏰␇, q␇㏰␇, q␇㏰␇, q␇17日␇, q␇17日␇);
+Test_N(q␇㏱␇, q␇㏱␇, q␇㏱␇, q␇18日␇, q␇18日␇);
+Test_N(q␇㏲␇, q␇㏲␇, q␇㏲␇, q␇19日␇, q␇19日␇);
+Test_N(q␇㏳␇, q␇㏳␇, q␇㏳␇, q␇20日␇, q␇20日␇);
+Test_N(q␇㏴␇, q␇㏴␇, q␇㏴␇, q␇21日␇, q␇21日␇);
+Test_N(q␇㏵␇, q␇㏵␇, q␇㏵␇, q␇22日␇, q␇22日␇);
+Test_N(q␇㏶␇, q␇㏶␇, q␇㏶␇, q␇23日␇, q␇23日␇);
+Test_N(q␇㏷␇, q␇㏷␇, q␇㏷␇, q␇24日␇, q␇24日␇);
+Test_N(q␇㏸␇, q␇㏸␇, q␇㏸␇, q␇25日␇, q␇25日␇);
+Test_N(q␇㏹␇, q␇㏹␇, q␇㏹␇, q␇26日␇, q␇26日␇);
+Test_N(q␇㏺␇, q␇㏺␇, q␇㏺␇, q␇27日␇, q␇27日␇);
+Test_N(q␇㏻␇, q␇㏻␇, q␇㏻␇, q␇28日␇, q␇28日␇);
+Test_N(q␇㏼␇, q␇㏼␇, q␇㏼␇, q␇29日␇, q␇29日␇);
+Test_N(q␇㏽␇, q␇㏽␇, q␇㏽␇, q␇30日␇, q␇30日␇);
+Test_N(q␇㏾␇, q␇㏾␇, q␇㏾␇, q␇31日␇, q␇31日␇);
+Test_N(q␇㏿␇, q␇㏿␇, q␇㏿␇, q␇gal␇, q␇gal␇);
+Test_N(q␇ꚜ␇, q␇ꚜ␇, q␇ꚜ␇, q␇ъ␇, q␇ъ␇);
+Test_N(q␇ꚝ␇, q␇ꚝ␇, q␇ꚝ␇, q␇ь␇, q␇ь␇);
+Test_N(q␇ꝰ␇, q␇ꝰ␇, q␇ꝰ␇, q␇ꝯ␇, q␇ꝯ␇);
+Test_N(q␇ꟲ␇, q␇ꟲ␇, q␇ꟲ␇, q␇C␇, q␇C␇);
+Test_N(q␇ꟳ␇, q␇ꟳ␇, q␇ꟳ␇, q␇F␇, q␇F␇);
+Test_N(q␇ꟴ␇, q␇ꟴ␇, q␇ꟴ␇, q␇Q␇, q␇Q␇);
+Test_N(q␇ꟸ␇, q␇ꟸ␇, q␇ꟸ␇, q␇Ħ␇, q␇Ħ␇);
+Test_N(q␇ꟹ␇, q␇ꟹ␇, q␇ꟹ␇, q␇œ␇, q␇œ␇);
+Test_N(q␇ꭜ␇, q␇ꭜ␇, q␇ꭜ␇, q␇ꜧ␇, q␇ꜧ␇);
+Test_N(q␇ꭝ␇, q␇ꭝ␇, q␇ꭝ␇, q␇ꬷ␇, q␇ꬷ␇);
+Test_N(q␇ꭞ␇, q␇ꭞ␇, q␇ꭞ␇, q␇ɫ␇, q␇ɫ␇);
+Test_N(q␇ꭟ␇, q␇ꭟ␇, q␇ꭟ␇, q␇ꭒ␇, q␇ꭒ␇);
+Test_N(q␇ꭩ␇, q␇ꭩ␇, q␇ꭩ␇, q␇ʍ␇, q␇ʍ␇);
+Test_N(q␇가␇, q␇가␇, q␇가␇, q␇가␇, q␇가␇);
+Test_N(q␇각␇, q␇각␇, q␇각␇, q␇각␇, q␇각␇);
+Test_N(q␇갂␇, q␇갂␇, q␇갂␇, q␇갂␇, q␇갂␇);
+Test_N(q␇갃␇, q␇갃␇, q␇갃␇, q␇갃␇, q␇갃␇);
+Test_N(q␇간␇, q␇간␇, q␇간␇, q␇간␇, q␇간␇);
+Test_N(q␇갅␇, q␇갅␇, q␇갅␇, q␇갅␇, q␇갅␇);
+Test_N(q␇갆␇, q␇갆␇, q␇갆␇, q␇갆␇, q␇갆␇);
+Test_N(q␇갇␇, q␇갇␇, q␇갇␇, q␇갇␇, q␇갇␇);
+Test_N(q␇갈␇, q␇갈␇, q␇갈␇, q␇갈␇, q␇갈␇);
+Test_N(q␇갉␇, q␇갉␇, q␇갉␇, q␇갉␇, q␇갉␇);
+Test_N(q␇갊␇, q␇갊␇, q␇갊␇, q␇갊␇, q␇갊␇);
+Test_N(q␇갋␇, q␇갋␇, q␇갋␇, q␇갋␇, q␇갋␇);
+Test_N(q␇갌␇, q␇갌␇, q␇갌␇, q␇갌␇, q␇갌␇);
+Test_N(q␇갍␇, q␇갍␇, q␇갍␇, q␇갍␇, q␇갍␇);
+Test_N(q␇갎␇, q␇갎␇, q␇갎␇, q␇갎␇, q␇갎␇);
+Test_N(q␇갏␇, q␇갏␇, q␇갏␇, q␇갏␇, q␇갏␇);
+Test_N(q␇감␇, q␇감␇, q␇감␇, q␇감␇, q␇감␇);
+Test_N(q␇갑␇, q␇갑␇, q␇갑␇, q␇갑␇, q␇갑␇);
+Test_N(q␇값␇, q␇값␇, q␇값␇, q␇값␇, q␇값␇);
+Test_N(q␇갓␇, q␇갓␇, q␇갓␇, q␇갓␇, q␇갓␇);
+Test_N(q␇갔␇, q␇갔␇, q␇갔␇, q␇갔␇, q␇갔␇);
+Test_N(q␇강␇, q␇강␇, q␇강␇, q␇강␇, q␇강␇);
+Test_N(q␇갖␇, q␇갖␇, q␇갖␇, q␇갖␇, q␇갖␇);
+Test_N(q␇갗␇, q␇갗␇, q␇갗␇, q␇갗␇, q␇갗␇);
+Test_N(q␇갘␇, q␇갘␇, q␇갘␇, q␇갘␇, q␇갘␇);
+Test_N(q␇같␇, q␇같␇, q␇같␇, q␇같␇, q␇같␇);
+Test_N(q␇갚␇, q␇갚␇, q␇갚␇, q␇갚␇, q␇갚␇);
+Test_N(q␇갛␇, q␇갛␇, q␇갛␇, q␇갛␇, q␇갛␇);
+Test_N(q␇개␇, q␇개␇, q␇개␇, q␇개␇, q␇개␇);
+Test_N(q␇객␇, q␇객␇, q␇객␇, q␇객␇, q␇객␇);
+Test_N(q␇갞␇, q␇갞␇, q␇갞␇, q␇갞␇, q␇갞␇);
+Test_N(q␇갟␇, q␇갟␇, q␇갟␇, q␇갟␇, q␇갟␇);
+Test_N(q␇갠␇, q␇갠␇, q␇갠␇, q␇갠␇, q␇갠␇);
+Test_N(q␇갡␇, q␇갡␇, q␇갡␇, q␇갡␇, q␇갡␇);
+Test_N(q␇갢␇, q␇갢␇, q␇갢␇, q␇갢␇, q␇갢␇);
+Test_N(q␇갣␇, q␇갣␇, q␇갣␇, q␇갣␇, q␇갣␇);
+Test_N(q␇갤␇, q␇갤␇, q␇갤␇, q␇갤␇, q␇갤␇);
+Test_N(q␇갥␇, q␇갥␇, q␇갥␇, q␇갥␇, q␇갥␇);
+Test_N(q␇갦␇, q␇갦␇, q␇갦␇, q␇갦␇, q␇갦␇);
+Test_N(q␇갧␇, q␇갧␇, q␇갧␇, q␇갧␇, q␇갧␇);
+Test_N(q␇갨␇, q␇갨␇, q␇갨␇, q␇갨␇, q␇갨␇);
+Test_N(q␇갩␇, q␇갩␇, q␇갩␇, q␇갩␇, q␇갩␇);
+Test_N(q␇갪␇, q␇갪␇, q␇갪␇, q␇갪␇, q␇갪␇);
+Test_N(q␇갫␇, q␇갫␇, q␇갫␇, q␇갫␇, q␇갫␇);
+Test_N(q␇갬␇, q␇갬␇, q␇갬␇, q␇갬␇, q␇갬␇);
+Test_N(q␇갭␇, q␇갭␇, q␇갭␇, q␇갭␇, q␇갭␇);
+Test_N(q␇갮␇, q␇갮␇, q␇갮␇, q␇갮␇, q␇갮␇);
+Test_N(q␇갯␇, q␇갯␇, q␇갯␇, q␇갯␇, q␇갯␇);
+Test_N(q␇갰␇, q␇갰␇, q␇갰␇, q␇갰␇, q␇갰␇);
+Test_N(q␇갱␇, q␇갱␇, q␇갱␇, q␇갱␇, q␇갱␇);
+Test_N(q␇갲␇, q␇갲␇, q␇갲␇, q␇갲␇, q␇갲␇);
+Test_N(q␇갳␇, q␇갳␇, q␇갳␇, q␇갳␇, q␇갳␇);
+Test_N(q␇갴␇, q␇갴␇, q␇갴␇, q␇갴␇, q␇갴␇);
+Test_N(q␇갵␇, q␇갵␇, q␇갵␇, q␇갵␇, q␇갵␇);
+Test_N(q␇갶␇, q␇갶␇, q␇갶␇, q␇갶␇, q␇갶␇);
+Test_N(q␇갷␇, q␇갷␇, q␇갷␇, q␇갷␇, q␇갷␇);
+Test_N(q␇갸␇, q␇갸␇, q␇갸␇, q␇갸␇, q␇갸␇);
+Test_N(q␇갹␇, q␇갹␇, q␇갹␇, q␇갹␇, q␇갹␇);
+Test_N(q␇갺␇, q␇갺␇, q␇갺␇, q␇갺␇, q␇갺␇);
+Test_N(q␇갻␇, q␇갻␇, q␇갻␇, q␇갻␇, q␇갻␇);
+Test_N(q␇갼␇, q␇갼␇, q␇갼␇, q␇갼␇, q␇갼␇);
+Test_N(q␇갽␇, q␇갽␇, q␇갽␇, q␇갽␇, q␇갽␇);
+Test_N(q␇갾␇, q␇갾␇, q␇갾␇, q␇갾␇, q␇갾␇);
+Test_N(q␇갿␇, q␇갿␇, q␇갿␇, q␇갿␇, q␇갿␇);
+Test_N(q␇걀␇, q␇걀␇, q␇걀␇, q␇걀␇, q␇걀␇);
+Test_N(q␇걁␇, q␇걁␇, q␇걁␇, q␇걁␇, q␇걁␇);
+Test_N(q␇걂␇, q␇걂␇, q␇걂␇, q␇걂␇, q␇걂␇);
+Test_N(q␇걃␇, q␇걃␇, q␇걃␇, q␇걃␇, q␇걃␇);
+Test_N(q␇걄␇, q␇걄␇, q␇걄␇, q␇걄␇, q␇걄␇);
+Test_N(q␇걅␇, q␇걅␇, q␇걅␇, q␇걅␇, q␇걅␇);
+Test_N(q␇걆␇, q␇걆␇, q␇걆␇, q␇걆␇, q␇걆␇);
+Test_N(q␇걇␇, q␇걇␇, q␇걇␇, q␇걇␇, q␇걇␇);
+Test_N(q␇걈␇, q␇걈␇, q␇걈␇, q␇걈␇, q␇걈␇);
+Test_N(q␇걉␇, q␇걉␇, q␇걉␇, q␇걉␇, q␇걉␇);
+Test_N(q␇걊␇, q␇걊␇, q␇걊␇, q␇걊␇, q␇걊␇);
+Test_N(q␇걋␇, q␇걋␇, q␇걋␇, q␇걋␇, q␇걋␇);
+Test_N(q␇걌␇, q␇걌␇, q␇걌␇, q␇걌␇, q␇걌␇);
+Test_N(q␇걍␇, q␇걍␇, q␇걍␇, q␇걍␇, q␇걍␇);
+Test_N(q␇걎␇, q␇걎␇, q␇걎␇, q␇걎␇, q␇걎␇);
+Test_N(q␇걏␇, q␇걏␇, q␇걏␇, q␇걏␇, q␇걏␇);
+Test_N(q␇걐␇, q␇걐␇, q␇걐␇, q␇걐␇, q␇걐␇);
+Test_N(q␇걑␇, q␇걑␇, q␇걑␇, q␇걑␇, q␇걑␇);
+Test_N(q␇걒␇, q␇걒␇, q␇걒␇, q␇걒␇, q␇걒␇);
+Test_N(q␇걓␇, q␇걓␇, q␇걓␇, q␇걓␇, q␇걓␇);
+Test_N(q␇걔␇, q␇걔␇, q␇걔␇, q␇걔␇, q␇걔␇);
+Test_N(q␇걕␇, q␇걕␇, q␇걕␇, q␇걕␇, q␇걕␇);
+Test_N(q␇걖␇, q␇걖␇, q␇걖␇, q␇걖␇, q␇걖␇);
+Test_N(q␇걗␇, q␇걗␇, q␇걗␇, q␇걗␇, q␇걗␇);
+Test_N(q␇걘␇, q␇걘␇, q␇걘␇, q␇걘␇, q␇걘␇);
+Test_N(q␇걙␇, q␇걙␇, q␇걙␇, q␇걙␇, q␇걙␇);
+Test_N(q␇걚␇, q␇걚␇, q␇걚␇, q␇걚␇, q␇걚␇);
+Test_N(q␇걛␇, q␇걛␇, q␇걛␇, q␇걛␇, q␇걛␇);
+Test_N(q␇걜␇, q␇걜␇, q␇걜␇, q␇걜␇, q␇걜␇);
+Test_N(q␇걝␇, q␇걝␇, q␇걝␇, q␇걝␇, q␇걝␇);
+Test_N(q␇걞␇, q␇걞␇, q␇걞␇, q␇걞␇, q␇걞␇);
+Test_N(q␇걟␇, q␇걟␇, q␇걟␇, q␇걟␇, q␇걟␇);
+Test_N(q␇걠␇, q␇걠␇, q␇걠␇, q␇걠␇, q␇걠␇);
+Test_N(q␇걡␇, q␇걡␇, q␇걡␇, q␇걡␇, q␇걡␇);
+Test_N(q␇걢␇, q␇걢␇, q␇걢␇, q␇걢␇, q␇걢␇);
+Test_N(q␇걣␇, q␇걣␇, q␇걣␇, q␇걣␇, q␇걣␇);
+Test_N(q␇걤␇, q␇걤␇, q␇걤␇, q␇걤␇, q␇걤␇);
+Test_N(q␇걥␇, q␇걥␇, q␇걥␇, q␇걥␇, q␇걥␇);
+Test_N(q␇걦␇, q␇걦␇, q␇걦␇, q␇걦␇, q␇걦␇);
+Test_N(q␇걧␇, q␇걧␇, q␇걧␇, q␇걧␇, q␇걧␇);
+Test_N(q␇걨␇, q␇걨␇, q␇걨␇, q␇걨␇, q␇걨␇);
+Test_N(q␇걩␇, q␇걩␇, q␇걩␇, q␇걩␇, q␇걩␇);
+Test_N(q␇걪␇, q␇걪␇, q␇걪␇, q␇걪␇, q␇걪␇);
+Test_N(q␇걫␇, q␇걫␇, q␇걫␇, q␇걫␇, q␇걫␇);
+Test_N(q␇걬␇, q␇걬␇, q␇걬␇, q␇걬␇, q␇걬␇);
+Test_N(q␇걭␇, q␇걭␇, q␇걭␇, q␇걭␇, q␇걭␇);
+Test_N(q␇걮␇, q␇걮␇, q␇걮␇, q␇걮␇, q␇걮␇);
+Test_N(q␇걯␇, q␇걯␇, q␇걯␇, q␇걯␇, q␇걯␇);
+Test_N(q␇거␇, q␇거␇, q␇거␇, q␇거␇, q␇거␇);
+Test_N(q␇걱␇, q␇걱␇, q␇걱␇, q␇걱␇, q␇걱␇);
+Test_N(q␇걲␇, q␇걲␇, q␇걲␇, q␇걲␇, q␇걲␇);
+Test_N(q␇걳␇, q␇걳␇, q␇걳␇, q␇걳␇, q␇걳␇);
+Test_N(q␇건␇, q␇건␇, q␇건␇, q␇건␇, q␇건␇);
+Test_N(q␇걵␇, q␇걵␇, q␇걵␇, q␇걵␇, q␇걵␇);
+Test_N(q␇걶␇, q␇걶␇, q␇걶␇, q␇걶␇, q␇걶␇);
+Test_N(q␇걷␇, q␇걷␇, q␇걷␇, q␇걷␇, q␇걷␇);
+Test_N(q␇걸␇, q␇걸␇, q␇걸␇, q␇걸␇, q␇걸␇);
+Test_N(q␇걹␇, q␇걹␇, q␇걹␇, q␇걹␇, q␇걹␇);
+Test_N(q␇걺␇, q␇걺␇, q␇걺␇, q␇걺␇, q␇걺␇);
+Test_N(q␇걻␇, q␇걻␇, q␇걻␇, q␇걻␇, q␇걻␇);
+Test_N(q␇걼␇, q␇걼␇, q␇걼␇, q␇걼␇, q␇걼␇);
+Test_N(q␇걽␇, q␇걽␇, q␇걽␇, q␇걽␇, q␇걽␇);
+Test_N(q␇걾␇, q␇걾␇, q␇걾␇, q␇걾␇, q␇걾␇);
+Test_N(q␇걿␇, q␇걿␇, q␇걿␇, q␇걿␇, q␇걿␇);
+Test_N(q␇검␇, q␇검␇, q␇검␇, q␇검␇, q␇검␇);
+Test_N(q␇겁␇, q␇겁␇, q␇겁␇, q␇겁␇, q␇겁␇);
+Test_N(q␇겂␇, q␇겂␇, q␇겂␇, q␇겂␇, q␇겂␇);
+Test_N(q␇것␇, q␇것␇, q␇것␇, q␇것␇, q␇것␇);
+Test_N(q␇겄␇, q␇겄␇, q␇겄␇, q␇겄␇, q␇겄␇);
+Test_N(q␇겅␇, q␇겅␇, q␇겅␇, q␇겅␇, q␇겅␇);
+Test_N(q␇겆␇, q␇겆␇, q␇겆␇, q␇겆␇, q␇겆␇);
+Test_N(q␇겇␇, q␇겇␇, q␇겇␇, q␇겇␇, q␇겇␇);
+Test_N(q␇겈␇, q␇겈␇, q␇겈␇, q␇겈␇, q␇겈␇);
+Test_N(q␇겉␇, q␇겉␇, q␇겉␇, q␇겉␇, q␇겉␇);
+Test_N(q␇겊␇, q␇겊␇, q␇겊␇, q␇겊␇, q␇겊␇);
+Test_N(q␇겋␇, q␇겋␇, q␇겋␇, q␇겋␇, q␇겋␇);
+Test_N(q␇게␇, q␇게␇, q␇게␇, q␇게␇, q␇게␇);
+Test_N(q␇겍␇, q␇겍␇, q␇겍␇, q␇겍␇, q␇겍␇);
+Test_N(q␇겎␇, q␇겎␇, q␇겎␇, q␇겎␇, q␇겎␇);
+Test_N(q␇겏␇, q␇겏␇, q␇겏␇, q␇겏␇, q␇겏␇);
+Test_N(q␇겐␇, q␇겐␇, q␇겐␇, q␇겐␇, q␇겐␇);
+Test_N(q␇겑␇, q␇겑␇, q␇겑␇, q␇겑␇, q␇겑␇);
+Test_N(q␇겒␇, q␇겒␇, q␇겒␇, q␇겒␇, q␇겒␇);
+Test_N(q␇겓␇, q␇겓␇, q␇겓␇, q␇겓␇, q␇겓␇);
+Test_N(q␇겔␇, q␇겔␇, q␇겔␇, q␇겔␇, q␇겔␇);
+Test_N(q␇겕␇, q␇겕␇, q␇겕␇, q␇겕␇, q␇겕␇);
+Test_N(q␇겖␇, q␇겖␇, q␇겖␇, q␇겖␇, q␇겖␇);
+Test_N(q␇겗␇, q␇겗␇, q␇겗␇, q␇겗␇, q␇겗␇);
+Test_N(q␇겘␇, q␇겘␇, q␇겘␇, q␇겘␇, q␇겘␇);
+Test_N(q␇겙␇, q␇겙␇, q␇겙␇, q␇겙␇, q␇겙␇);
+Test_N(q␇겚␇, q␇겚␇, q␇겚␇, q␇겚␇, q␇겚␇);
+Test_N(q␇겛␇, q␇겛␇, q␇겛␇, q␇겛␇, q␇겛␇);
+Test_N(q␇겜␇, q␇겜␇, q␇겜␇, q␇겜␇, q␇겜␇);
+Test_N(q␇겝␇, q␇겝␇, q␇겝␇, q␇겝␇, q␇겝␇);
+Test_N(q␇겞␇, q␇겞␇, q␇겞␇, q␇겞␇, q␇겞␇);
+Test_N(q␇겟␇, q␇겟␇, q␇겟␇, q␇겟␇, q␇겟␇);
+Test_N(q␇겠␇, q␇겠␇, q␇겠␇, q␇겠␇, q␇겠␇);
+Test_N(q␇겡␇, q␇겡␇, q␇겡␇, q␇겡␇, q␇겡␇);
+Test_N(q␇겢␇, q␇겢␇, q␇겢␇, q␇겢␇, q␇겢␇);
+Test_N(q␇겣␇, q␇겣␇, q␇겣␇, q␇겣␇, q␇겣␇);
+Test_N(q␇겤␇, q␇겤␇, q␇겤␇, q␇겤␇, q␇겤␇);
+Test_N(q␇겥␇, q␇겥␇, q␇겥␇, q␇겥␇, q␇겥␇);
+Test_N(q␇겦␇, q␇겦␇, q␇겦␇, q␇겦␇, q␇겦␇);
+Test_N(q␇겧␇, q␇겧␇, q␇겧␇, q␇겧␇, q␇겧␇);
+Test_N(q␇겨␇, q␇겨␇, q␇겨␇, q␇겨␇, q␇겨␇);
+Test_N(q␇격␇, q␇격␇, q␇격␇, q␇격␇, q␇격␇);
+Test_N(q␇겪␇, q␇겪␇, q␇겪␇, q␇겪␇, q␇겪␇);
+Test_N(q␇겫␇, q␇겫␇, q␇겫␇, q␇겫␇, q␇겫␇);
+Test_N(q␇견␇, q␇견␇, q␇견␇, q␇견␇, q␇견␇);
+Test_N(q␇겭␇, q␇겭␇, q␇겭␇, q␇겭␇, q␇겭␇);
+Test_N(q␇겮␇, q␇겮␇, q␇겮␇, q␇겮␇, q␇겮␇);
+Test_N(q␇겯␇, q␇겯␇, q␇겯␇, q␇겯␇, q␇겯␇);
+Test_N(q␇결␇, q␇결␇, q␇결␇, q␇결␇, q␇결␇);
+Test_N(q␇겱␇, q␇겱␇, q␇겱␇, q␇겱␇, q␇겱␇);
+Test_N(q␇겲␇, q␇겲␇, q␇겲␇, q␇겲␇, q␇겲␇);
+Test_N(q␇겳␇, q␇겳␇, q␇겳␇, q␇겳␇, q␇겳␇);
+Test_N(q␇겴␇, q␇겴␇, q␇겴␇, q␇겴␇, q␇겴␇);
+Test_N(q␇겵␇, q␇겵␇, q␇겵␇, q␇겵␇, q␇겵␇);
+Test_N(q␇겶␇, q␇겶␇, q␇겶␇, q␇겶␇, q␇겶␇);
+Test_N(q␇겷␇, q␇겷␇, q␇겷␇, q␇겷␇, q␇겷␇);
+Test_N(q␇겸␇, q␇겸␇, q␇겸␇, q␇겸␇, q␇겸␇);
+Test_N(q␇겹␇, q␇겹␇, q␇겹␇, q␇겹␇, q␇겹␇);
+Test_N(q␇겺␇, q␇겺␇, q␇겺␇, q␇겺␇, q␇겺␇);
+Test_N(q␇겻␇, q␇겻␇, q␇겻␇, q␇겻␇, q␇겻␇);
+Test_N(q␇겼␇, q␇겼␇, q␇겼␇, q␇겼␇, q␇겼␇);
+Test_N(q␇경␇, q␇경␇, q␇경␇, q␇경␇, q␇경␇);
+Test_N(q␇겾␇, q␇겾␇, q␇겾␇, q␇겾␇, q␇겾␇);
+Test_N(q␇겿␇, q␇겿␇, q␇겿␇, q␇겿␇, q␇겿␇);
+Test_N(q␇곀␇, q␇곀␇, q␇곀␇, q␇곀␇, q␇곀␇);
+Test_N(q␇곁␇, q␇곁␇, q␇곁␇, q␇곁␇, q␇곁␇);
+Test_N(q␇곂␇, q␇곂␇, q␇곂␇, q␇곂␇, q␇곂␇);
+Test_N(q␇곃␇, q␇곃␇, q␇곃␇, q␇곃␇, q␇곃␇);
+Test_N(q␇계␇, q␇계␇, q␇계␇, q␇계␇, q␇계␇);
+Test_N(q␇곅␇, q␇곅␇, q␇곅␇, q␇곅␇, q␇곅␇);
+Test_N(q␇곆␇, q␇곆␇, q␇곆␇, q␇곆␇, q␇곆␇);
+Test_N(q␇곇␇, q␇곇␇, q␇곇␇, q␇곇␇, q␇곇␇);
+Test_N(q␇곈␇, q␇곈␇, q␇곈␇, q␇곈␇, q␇곈␇);
+Test_N(q␇곉␇, q␇곉␇, q␇곉␇, q␇곉␇, q␇곉␇);
+Test_N(q␇곊␇, q␇곊␇, q␇곊␇, q␇곊␇, q␇곊␇);
+Test_N(q␇곋␇, q␇곋␇, q␇곋␇, q␇곋␇, q␇곋␇);
+Test_N(q␇곌␇, q␇곌␇, q␇곌␇, q␇곌␇, q␇곌␇);
+Test_N(q␇곍␇, q␇곍␇, q␇곍␇, q␇곍␇, q␇곍␇);
+Test_N(q␇곎␇, q␇곎␇, q␇곎␇, q␇곎␇, q␇곎␇);
+Test_N(q␇곏␇, q␇곏␇, q␇곏␇, q␇곏␇, q␇곏␇);
+Test_N(q␇곐␇, q␇곐␇, q␇곐␇, q␇곐␇, q␇곐␇);
+Test_N(q␇곑␇, q␇곑␇, q␇곑␇, q␇곑␇, q␇곑␇);
+Test_N(q␇곒␇, q␇곒␇, q␇곒␇, q␇곒␇, q␇곒␇);
+Test_N(q␇곓␇, q␇곓␇, q␇곓␇, q␇곓␇, q␇곓␇);
+Test_N(q␇곔␇, q␇곔␇, q␇곔␇, q␇곔␇, q␇곔␇);
+Test_N(q␇곕␇, q␇곕␇, q␇곕␇, q␇곕␇, q␇곕␇);
+Test_N(q␇곖␇, q␇곖␇, q␇곖␇, q␇곖␇, q␇곖␇);
+Test_N(q␇곗␇, q␇곗␇, q␇곗␇, q␇곗␇, q␇곗␇);
+Test_N(q␇곘␇, q␇곘␇, q␇곘␇, q␇곘␇, q␇곘␇);
+Test_N(q␇곙␇, q␇곙␇, q␇곙␇, q␇곙␇, q␇곙␇);
+Test_N(q␇곚␇, q␇곚␇, q␇곚␇, q␇곚␇, q␇곚␇);
+Test_N(q␇곛␇, q␇곛␇, q␇곛␇, q␇곛␇, q␇곛␇);
+Test_N(q␇곜␇, q␇곜␇, q␇곜␇, q␇곜␇, q␇곜␇);
+Test_N(q␇곝␇, q␇곝␇, q␇곝␇, q␇곝␇, q␇곝␇);
+Test_N(q␇곞␇, q␇곞␇, q␇곞␇, q␇곞␇, q␇곞␇);
+Test_N(q␇곟␇, q␇곟␇, q␇곟␇, q␇곟␇, q␇곟␇);
+Test_N(q␇고␇, q␇고␇, q␇고␇, q␇고␇, q␇고␇);
+Test_N(q␇곡␇, q␇곡␇, q␇곡␇, q␇곡␇, q␇곡␇);
+Test_N(q␇곢␇, q␇곢␇, q␇곢␇, q␇곢␇, q␇곢␇);
+Test_N(q␇곣␇, q␇곣␇, q␇곣␇, q␇곣␇, q␇곣␇);
+Test_N(q␇곤␇, q␇곤␇, q␇곤␇, q␇곤␇, q␇곤␇);
+Test_N(q␇곥␇, q␇곥␇, q␇곥␇, q␇곥␇, q␇곥␇);
+Test_N(q␇곦␇, q␇곦␇, q␇곦␇, q␇곦␇, q␇곦␇);
+Test_N(q␇곧␇, q␇곧␇, q␇곧␇, q␇곧␇, q␇곧␇);
+Test_N(q␇골␇, q␇골␇, q␇골␇, q␇골␇, q␇골␇);
+Test_N(q␇곩␇, q␇곩␇, q␇곩␇, q␇곩␇, q␇곩␇);
+Test_N(q␇곪␇, q␇곪␇, q␇곪␇, q␇곪␇, q␇곪␇);
+Test_N(q␇곫␇, q␇곫␇, q␇곫␇, q␇곫␇, q␇곫␇);
+Test_N(q␇곬␇, q␇곬␇, q␇곬␇, q␇곬␇, q␇곬␇);
+Test_N(q␇곭␇, q␇곭␇, q␇곭␇, q␇곭␇, q␇곭␇);
+Test_N(q␇곮␇, q␇곮␇, q␇곮␇, q␇곮␇, q␇곮␇);
+Test_N(q␇곯␇, q␇곯␇, q␇곯␇, q␇곯␇, q␇곯␇);
+Test_N(q␇곰␇, q␇곰␇, q␇곰␇, q␇곰␇, q␇곰␇);
+Test_N(q␇곱␇, q␇곱␇, q␇곱␇, q␇곱␇, q␇곱␇);
+Test_N(q␇곲␇, q␇곲␇, q␇곲␇, q␇곲␇, q␇곲␇);
+Test_N(q␇곳␇, q␇곳␇, q␇곳␇, q␇곳␇, q␇곳␇);
+Test_N(q␇곴␇, q␇곴␇, q␇곴␇, q␇곴␇, q␇곴␇);
+Test_N(q␇공␇, q␇공␇, q␇공␇, q␇공␇, q␇공␇);
+Test_N(q␇곶␇, q␇곶␇, q␇곶␇, q␇곶␇, q␇곶␇);
+Test_N(q␇곷␇, q␇곷␇, q␇곷␇, q␇곷␇, q␇곷␇);
+Test_N(q␇곸␇, q␇곸␇, q␇곸␇, q␇곸␇, q␇곸␇);
+Test_N(q␇곹␇, q␇곹␇, q␇곹␇, q␇곹␇, q␇곹␇);
+Test_N(q␇곺␇, q␇곺␇, q␇곺␇, q␇곺␇, q␇곺␇);
+Test_N(q␇곻␇, q␇곻␇, q␇곻␇, q␇곻␇, q␇곻␇);
+Test_N(q␇과␇, q␇과␇, q␇과␇, q␇과␇, q␇과␇);
+Test_N(q␇곽␇, q␇곽␇, q␇곽␇, q␇곽␇, q␇곽␇);
+Test_N(q␇곾␇, q␇곾␇, q␇곾␇, q␇곾␇, q␇곾␇);
+Test_N(q␇곿␇, q␇곿␇, q␇곿␇, q␇곿␇, q␇곿␇);
+Test_N(q␇관␇, q␇관␇, q␇관␇, q␇관␇, q␇관␇);
+Test_N(q␇괁␇, q␇괁␇, q␇괁␇, q␇괁␇, q␇괁␇);
+Test_N(q␇괂␇, q␇괂␇, q␇괂␇, q␇괂␇, q␇괂␇);
+Test_N(q␇괃␇, q␇괃␇, q␇괃␇, q␇괃␇, q␇괃␇);
+Test_N(q␇괄␇, q␇괄␇, q␇괄␇, q␇괄␇, q␇괄␇);
+Test_N(q␇괅␇, q␇괅␇, q␇괅␇, q␇괅␇, q␇괅␇);
+Test_N(q␇괆␇, q␇괆␇, q␇괆␇, q␇괆␇, q␇괆␇);
+Test_N(q␇괇␇, q␇괇␇, q␇괇␇, q␇괇␇, q␇괇␇);
+Test_N(q␇괈␇, q␇괈␇, q␇괈␇, q␇괈␇, q␇괈␇);
+Test_N(q␇괉␇, q␇괉␇, q␇괉␇, q␇괉␇, q␇괉␇);
+Test_N(q␇괊␇, q␇괊␇, q␇괊␇, q␇괊␇, q␇괊␇);
+Test_N(q␇괋␇, q␇괋␇, q␇괋␇, q␇괋␇, q␇괋␇);
+Test_N(q␇괌␇, q␇괌␇, q␇괌␇, q␇괌␇, q␇괌␇);
+Test_N(q␇괍␇, q␇괍␇, q␇괍␇, q␇괍␇, q␇괍␇);
+Test_N(q␇괎␇, q␇괎␇, q␇괎␇, q␇괎␇, q␇괎␇);
+Test_N(q␇괏␇, q␇괏␇, q␇괏␇, q␇괏␇, q␇괏␇);
+Test_N(q␇괐␇, q␇괐␇, q␇괐␇, q␇괐␇, q␇괐␇);
+Test_N(q␇광␇, q␇광␇, q␇광␇, q␇광␇, q␇광␇);
+Test_N(q␇괒␇, q␇괒␇, q␇괒␇, q␇괒␇, q␇괒␇);
+Test_N(q␇괓␇, q␇괓␇, q␇괓␇, q␇괓␇, q␇괓␇);
+Test_N(q␇괔␇, q␇괔␇, q␇괔␇, q␇괔␇, q␇괔␇);
+Test_N(q␇괕␇, q␇괕␇, q␇괕␇, q␇괕␇, q␇괕␇);
+Test_N(q␇괖␇, q␇괖␇, q␇괖␇, q␇괖␇, q␇괖␇);
+Test_N(q␇괗␇, q␇괗␇, q␇괗␇, q␇괗␇, q␇괗␇);
+Test_N(q␇괘␇, q␇괘␇, q␇괘␇, q␇괘␇, q␇괘␇);
+Test_N(q␇괙␇, q␇괙␇, q␇괙␇, q␇괙␇, q␇괙␇);
+Test_N(q␇괚␇, q␇괚␇, q␇괚␇, q␇괚␇, q␇괚␇);
+Test_N(q␇괛␇, q␇괛␇, q␇괛␇, q␇괛␇, q␇괛␇);
+Test_N(q␇괜␇, q␇괜␇, q␇괜␇, q␇괜␇, q␇괜␇);
+Test_N(q␇괝␇, q␇괝␇, q␇괝␇, q␇괝␇, q␇괝␇);
+Test_N(q␇괞␇, q␇괞␇, q␇괞␇, q␇괞␇, q␇괞␇);
+Test_N(q␇괟␇, q␇괟␇, q␇괟␇, q␇괟␇, q␇괟␇);
+Test_N(q␇괠␇, q␇괠␇, q␇괠␇, q␇괠␇, q␇괠␇);
+Test_N(q␇괡␇, q␇괡␇, q␇괡␇, q␇괡␇, q␇괡␇);
+Test_N(q␇괢␇, q␇괢␇, q␇괢␇, q␇괢␇, q␇괢␇);
+Test_N(q␇괣␇, q␇괣␇, q␇괣␇, q␇괣␇, q␇괣␇);
+Test_N(q␇괤␇, q␇괤␇, q␇괤␇, q␇괤␇, q␇괤␇);
+Test_N(q␇괥␇, q␇괥␇, q␇괥␇, q␇괥␇, q␇괥␇);
+Test_N(q␇괦␇, q␇괦␇, q␇괦␇, q␇괦␇, q␇괦␇);
+Test_N(q␇괧␇, q␇괧␇, q␇괧␇, q␇괧␇, q␇괧␇);
+Test_N(q␇괨␇, q␇괨␇, q␇괨␇, q␇괨␇, q␇괨␇);
+Test_N(q␇괩␇, q␇괩␇, q␇괩␇, q␇괩␇, q␇괩␇);
+Test_N(q␇괪␇, q␇괪␇, q␇괪␇, q␇괪␇, q␇괪␇);
+Test_N(q␇괫␇, q␇괫␇, q␇괫␇, q␇괫␇, q␇괫␇);
+Test_N(q␇괬␇, q␇괬␇, q␇괬␇, q␇괬␇, q␇괬␇);
+Test_N(q␇괭␇, q␇괭␇, q␇괭␇, q␇괭␇, q␇괭␇);
+Test_N(q␇괮␇, q␇괮␇, q␇괮␇, q␇괮␇, q␇괮␇);
+Test_N(q␇괯␇, q␇괯␇, q␇괯␇, q␇괯␇, q␇괯␇);
+Test_N(q␇괰␇, q␇괰␇, q␇괰␇, q␇괰␇, q␇괰␇);
+Test_N(q␇괱␇, q␇괱␇, q␇괱␇, q␇괱␇, q␇괱␇);
+Test_N(q␇괲␇, q␇괲␇, q␇괲␇, q␇괲␇, q␇괲␇);
+Test_N(q␇괳␇, q␇괳␇, q␇괳␇, q␇괳␇, q␇괳␇);
+Test_N(q␇괴␇, q␇괴␇, q␇괴␇, q␇괴␇, q␇괴␇);
+Test_N(q␇괵␇, q␇괵␇, q␇괵␇, q␇괵␇, q␇괵␇);
+Test_N(q␇괶␇, q␇괶␇, q␇괶␇, q␇괶␇, q␇괶␇);
+Test_N(q␇괷␇, q␇괷␇, q␇괷␇, q␇괷␇, q␇괷␇);
+Test_N(q␇괸␇, q␇괸␇, q␇괸␇, q␇괸␇, q␇괸␇);
+Test_N(q␇괹␇, q␇괹␇, q␇괹␇, q␇괹␇, q␇괹␇);
+Test_N(q␇괺␇, q␇괺␇, q␇괺␇, q␇괺␇, q␇괺␇);
+Test_N(q␇괻␇, q␇괻␇, q␇괻␇, q␇괻␇, q␇괻␇);
+Test_N(q␇괼␇, q␇괼␇, q␇괼␇, q␇괼␇, q␇괼␇);
+Test_N(q␇괽␇, q␇괽␇, q␇괽␇, q␇괽␇, q␇괽␇);
+Test_N(q␇괾␇, q␇괾␇, q␇괾␇, q␇괾␇, q␇괾␇);
+Test_N(q␇괿␇, q␇괿␇, q␇괿␇, q␇괿␇, q␇괿␇);
+Test_N(q␇굀␇, q␇굀␇, q␇굀␇, q␇굀␇, q␇굀␇);
+Test_N(q␇굁␇, q␇굁␇, q␇굁␇, q␇굁␇, q␇굁␇);
+Test_N(q␇굂␇, q␇굂␇, q␇굂␇, q␇굂␇, q␇굂␇);
+Test_N(q␇굃␇, q␇굃␇, q␇굃␇, q␇굃␇, q␇굃␇);
+Test_N(q␇굄␇, q␇굄␇, q␇굄␇, q␇굄␇, q␇굄␇);
+Test_N(q␇굅␇, q␇굅␇, q␇굅␇, q␇굅␇, q␇굅␇);
+Test_N(q␇굆␇, q␇굆␇, q␇굆␇, q␇굆␇, q␇굆␇);
+Test_N(q␇굇␇, q␇굇␇, q␇굇␇, q␇굇␇, q␇굇␇);
+Test_N(q␇굈␇, q␇굈␇, q␇굈␇, q␇굈␇, q␇굈␇);
+Test_N(q␇굉␇, q␇굉␇, q␇굉␇, q␇굉␇, q␇굉␇);
+Test_N(q␇굊␇, q␇굊␇, q␇굊␇, q␇굊␇, q␇굊␇);
+Test_N(q␇굋␇, q␇굋␇, q␇굋␇, q␇굋␇, q␇굋␇);
+Test_N(q␇굌␇, q␇굌␇, q␇굌␇, q␇굌␇, q␇굌␇);
+Test_N(q␇굍␇, q␇굍␇, q␇굍␇, q␇굍␇, q␇굍␇);
+Test_N(q␇굎␇, q␇굎␇, q␇굎␇, q␇굎␇, q␇굎␇);
+Test_N(q␇굏␇, q␇굏␇, q␇굏␇, q␇굏␇, q␇굏␇);
+Test_N(q␇교␇, q␇교␇, q␇교␇, q␇교␇, q␇교␇);
+Test_N(q␇굑␇, q␇굑␇, q␇굑␇, q␇굑␇, q␇굑␇);
+Test_N(q␇굒␇, q␇굒␇, q␇굒␇, q␇굒␇, q␇굒␇);
+Test_N(q␇굓␇, q␇굓␇, q␇굓␇, q␇굓␇, q␇굓␇);
+Test_N(q␇굔␇, q␇굔␇, q␇굔␇, q␇굔␇, q␇굔␇);
+Test_N(q␇굕␇, q␇굕␇, q␇굕␇, q␇굕␇, q␇굕␇);
+Test_N(q␇굖␇, q␇굖␇, q␇굖␇, q␇굖␇, q␇굖␇);
+Test_N(q␇굗␇, q␇굗␇, q␇굗␇, q␇굗␇, q␇굗␇);
+Test_N(q␇굘␇, q␇굘␇, q␇굘␇, q␇굘␇, q␇굘␇);
+Test_N(q␇굙␇, q␇굙␇, q␇굙␇, q␇굙␇, q␇굙␇);
+Test_N(q␇굚␇, q␇굚␇, q␇굚␇, q␇굚␇, q␇굚␇);
+Test_N(q␇굛␇, q␇굛␇, q␇굛␇, q␇굛␇, q␇굛␇);
+Test_N(q␇굜␇, q␇굜␇, q␇굜␇, q␇굜␇, q␇굜␇);
+Test_N(q␇굝␇, q␇굝␇, q␇굝␇, q␇굝␇, q␇굝␇);
+Test_N(q␇굞␇, q␇굞␇, q␇굞␇, q␇굞␇, q␇굞␇);
+Test_N(q␇굟␇, q␇굟␇, q␇굟␇, q␇굟␇, q␇굟␇);
+Test_N(q␇굠␇, q␇굠␇, q␇굠␇, q␇굠␇, q␇굠␇);
+Test_N(q␇굡␇, q␇굡␇, q␇굡␇, q␇굡␇, q␇굡␇);
+Test_N(q␇굢␇, q␇굢␇, q␇굢␇, q␇굢␇, q␇굢␇);
+Test_N(q␇굣␇, q␇굣␇, q␇굣␇, q␇굣␇, q␇굣␇);
+Test_N(q␇굤␇, q␇굤␇, q␇굤␇, q␇굤␇, q␇굤␇);
+Test_N(q␇굥␇, q␇굥␇, q␇굥␇, q␇굥␇, q␇굥␇);
+Test_N(q␇굦␇, q␇굦␇, q␇굦␇, q␇굦␇, q␇굦␇);
+Test_N(q␇굧␇, q␇굧␇, q␇굧␇, q␇굧␇, q␇굧␇);
+Test_N(q␇굨␇, q␇굨␇, q␇굨␇, q␇굨␇, q␇굨␇);
+Test_N(q␇굩␇, q␇굩␇, q␇굩␇, q␇굩␇, q␇굩␇);
+Test_N(q␇굪␇, q␇굪␇, q␇굪␇, q␇굪␇, q␇굪␇);
+Test_N(q␇굫␇, q␇굫␇, q␇굫␇, q␇굫␇, q␇굫␇);
+Test_N(q␇구␇, q␇구␇, q␇구␇, q␇구␇, q␇구␇);
+Test_N(q␇국␇, q␇국␇, q␇국␇, q␇국␇, q␇국␇);
+Test_N(q␇굮␇, q␇굮␇, q␇굮␇, q␇굮␇, q␇굮␇);
+Test_N(q␇굯␇, q␇굯␇, q␇굯␇, q␇굯␇, q␇굯␇);
+Test_N(q␇군␇, q␇군␇, q␇군␇, q␇군␇, q␇군␇);
+Test_N(q␇굱␇, q␇굱␇, q␇굱␇, q␇굱␇, q␇굱␇);
+Test_N(q␇굲␇, q␇굲␇, q␇굲␇, q␇굲␇, q␇굲␇);
+Test_N(q␇굳␇, q␇굳␇, q␇굳␇, q␇굳␇, q␇굳␇);
+Test_N(q␇굴␇, q␇굴␇, q␇굴␇, q␇굴␇, q␇굴␇);
+Test_N(q␇굵␇, q␇굵␇, q␇굵␇, q␇굵␇, q␇굵␇);
+Test_N(q␇굶␇, q␇굶␇, q␇굶␇, q␇굶␇, q␇굶␇);
+Test_N(q␇굷␇, q␇굷␇, q␇굷␇, q␇굷␇, q␇굷␇);
+Test_N(q␇굸␇, q␇굸␇, q␇굸␇, q␇굸␇, q␇굸␇);
+Test_N(q␇굹␇, q␇굹␇, q␇굹␇, q␇굹␇, q␇굹␇);
+Test_N(q␇굺␇, q␇굺␇, q␇굺␇, q␇굺␇, q␇굺␇);
+Test_N(q␇굻␇, q␇굻␇, q␇굻␇, q␇굻␇, q␇굻␇);
+Test_N(q␇굼␇, q␇굼␇, q␇굼␇, q␇굼␇, q␇굼␇);
+Test_N(q␇굽␇, q␇굽␇, q␇굽␇, q␇굽␇, q␇굽␇);
+Test_N(q␇굾␇, q␇굾␇, q␇굾␇, q␇굾␇, q␇굾␇);
+Test_N(q␇굿␇, q␇굿␇, q␇굿␇, q␇굿␇, q␇굿␇);
+Test_N(q␇궀␇, q␇궀␇, q␇궀␇, q␇궀␇, q␇궀␇);
+Test_N(q␇궁␇, q␇궁␇, q␇궁␇, q␇궁␇, q␇궁␇);
+Test_N(q␇궂␇, q␇궂␇, q␇궂␇, q␇궂␇, q␇궂␇);
+Test_N(q␇궃␇, q␇궃␇, q␇궃␇, q␇궃␇, q␇궃␇);
+Test_N(q␇궄␇, q␇궄␇, q␇궄␇, q␇궄␇, q␇궄␇);
+Test_N(q␇궅␇, q␇궅␇, q␇궅␇, q␇궅␇, q␇궅␇);
+Test_N(q␇궆␇, q␇궆␇, q␇궆␇, q␇궆␇, q␇궆␇);
+Test_N(q␇궇␇, q␇궇␇, q␇궇␇, q␇궇␇, q␇궇␇);
+Test_N(q␇궈␇, q␇궈␇, q␇궈␇, q␇궈␇, q␇궈␇);
+Test_N(q␇궉␇, q␇궉␇, q␇궉␇, q␇궉␇, q␇궉␇);
+Test_N(q␇궊␇, q␇궊␇, q␇궊␇, q␇궊␇, q␇궊␇);
+Test_N(q␇궋␇, q␇궋␇, q␇궋␇, q␇궋␇, q␇궋␇);
+Test_N(q␇권␇, q␇권␇, q␇권␇, q␇권␇, q␇권␇);
+Test_N(q␇궍␇, q␇궍␇, q␇궍␇, q␇궍␇, q␇궍␇);
+Test_N(q␇궎␇, q␇궎␇, q␇궎␇, q␇궎␇, q␇궎␇);
+Test_N(q␇궏␇, q␇궏␇, q␇궏␇, q␇궏␇, q␇궏␇);
+Test_N(q␇궐␇, q␇궐␇, q␇궐␇, q␇궐␇, q␇궐␇);
+Test_N(q␇궑␇, q␇궑␇, q␇궑␇, q␇궑␇, q␇궑␇);
+Test_N(q␇궒␇, q␇궒␇, q␇궒␇, q␇궒␇, q␇궒␇);
+Test_N(q␇궓␇, q␇궓␇, q␇궓␇, q␇궓␇, q␇궓␇);
+Test_N(q␇궔␇, q␇궔␇, q␇궔␇, q␇궔␇, q␇궔␇);
+Test_N(q␇궕␇, q␇궕␇, q␇궕␇, q␇궕␇, q␇궕␇);
+Test_N(q␇궖␇, q␇궖␇, q␇궖␇, q␇궖␇, q␇궖␇);
+Test_N(q␇궗␇, q␇궗␇, q␇궗␇, q␇궗␇, q␇궗␇);
+Test_N(q␇궘␇, q␇궘␇, q␇궘␇, q␇궘␇, q␇궘␇);
+Test_N(q␇궙␇, q␇궙␇, q␇궙␇, q␇궙␇, q␇궙␇);
+Test_N(q␇궚␇, q␇궚␇, q␇궚␇, q␇궚␇, q␇궚␇);
+Test_N(q␇궛␇, q␇궛␇, q␇궛␇, q␇궛␇, q␇궛␇);
+Test_N(q␇궜␇, q␇궜␇, q␇궜␇, q␇궜␇, q␇궜␇);
+Test_N(q␇궝␇, q␇궝␇, q␇궝␇, q␇궝␇, q␇궝␇);
+Test_N(q␇궞␇, q␇궞␇, q␇궞␇, q␇궞␇, q␇궞␇);
+Test_N(q␇궟␇, q␇궟␇, q␇궟␇, q␇궟␇, q␇궟␇);
+Test_N(q␇궠␇, q␇궠␇, q␇궠␇, q␇궠␇, q␇궠␇);
+Test_N(q␇궡␇, q␇궡␇, q␇궡␇, q␇궡␇, q␇궡␇);
+Test_N(q␇궢␇, q␇궢␇, q␇궢␇, q␇궢␇, q␇궢␇);
+Test_N(q␇궣␇, q␇궣␇, q␇궣␇, q␇궣␇, q␇궣␇);
+Test_N(q␇궤␇, q␇궤␇, q␇궤␇, q␇궤␇, q␇궤␇);
+Test_N(q␇궥␇, q␇궥␇, q␇궥␇, q␇궥␇, q␇궥␇);
+Test_N(q␇궦␇, q␇궦␇, q␇궦␇, q␇궦␇, q␇궦␇);
+Test_N(q␇궧␇, q␇궧␇, q␇궧␇, q␇궧␇, q␇궧␇);
+Test_N(q␇궨␇, q␇궨␇, q␇궨␇, q␇궨␇, q␇궨␇);
+Test_N(q␇궩␇, q␇궩␇, q␇궩␇, q␇궩␇, q␇궩␇);
+Test_N(q␇궪␇, q␇궪␇, q␇궪␇, q␇궪␇, q␇궪␇);
+Test_N(q␇궫␇, q␇궫␇, q␇궫␇, q␇궫␇, q␇궫␇);
+Test_N(q␇궬␇, q␇궬␇, q␇궬␇, q␇궬␇, q␇궬␇);
+Test_N(q␇궭␇, q␇궭␇, q␇궭␇, q␇궭␇, q␇궭␇);
+Test_N(q␇궮␇, q␇궮␇, q␇궮␇, q␇궮␇, q␇궮␇);
+Test_N(q␇궯␇, q␇궯␇, q␇궯␇, q␇궯␇, q␇궯␇);
+Test_N(q␇궰␇, q␇궰␇, q␇궰␇, q␇궰␇, q␇궰␇);
+Test_N(q␇궱␇, q␇궱␇, q␇궱␇, q␇궱␇, q␇궱␇);
+Test_N(q␇궲␇, q␇궲␇, q␇궲␇, q␇궲␇, q␇궲␇);
+Test_N(q␇궳␇, q␇궳␇, q␇궳␇, q␇궳␇, q␇궳␇);
+Test_N(q␇궴␇, q␇궴␇, q␇궴␇, q␇궴␇, q␇궴␇);
+Test_N(q␇궵␇, q␇궵␇, q␇궵␇, q␇궵␇, q␇궵␇);
+Test_N(q␇궶␇, q␇궶␇, q␇궶␇, q␇궶␇, q␇궶␇);
+Test_N(q␇궷␇, q␇궷␇, q␇궷␇, q␇궷␇, q␇궷␇);
+Test_N(q␇궸␇, q␇궸␇, q␇궸␇, q␇궸␇, q␇궸␇);
+Test_N(q␇궹␇, q␇궹␇, q␇궹␇, q␇궹␇, q␇궹␇);
+Test_N(q␇궺␇, q␇궺␇, q␇궺␇, q␇궺␇, q␇궺␇);
+Test_N(q␇궻␇, q␇궻␇, q␇궻␇, q␇궻␇, q␇궻␇);
+Test_N(q␇궼␇, q␇궼␇, q␇궼␇, q␇궼␇, q␇궼␇);
+Test_N(q␇궽␇, q␇궽␇, q␇궽␇, q␇궽␇, q␇궽␇);
+Test_N(q␇궾␇, q␇궾␇, q␇궾␇, q␇궾␇, q␇궾␇);
+Test_N(q␇궿␇, q␇궿␇, q␇궿␇, q␇궿␇, q␇궿␇);
+Test_N(q␇귀␇, q␇귀␇, q␇귀␇, q␇귀␇, q␇귀␇);
+Test_N(q␇귁␇, q␇귁␇, q␇귁␇, q␇귁␇, q␇귁␇);
+Test_N(q␇귂␇, q␇귂␇, q␇귂␇, q␇귂␇, q␇귂␇);
+Test_N(q␇귃␇, q␇귃␇, q␇귃␇, q␇귃␇, q␇귃␇);
+Test_N(q␇귄␇, q␇귄␇, q␇귄␇, q␇귄␇, q␇귄␇);
+Test_N(q␇귅␇, q␇귅␇, q␇귅␇, q␇귅␇, q␇귅␇);
+Test_N(q␇귆␇, q␇귆␇, q␇귆␇, q␇귆␇, q␇귆␇);
+Test_N(q␇귇␇, q␇귇␇, q␇귇␇, q␇귇␇, q␇귇␇);
+Test_N(q␇귈␇, q␇귈␇, q␇귈␇, q␇귈␇, q␇귈␇);
+Test_N(q␇귉␇, q␇귉␇, q␇귉␇, q␇귉␇, q␇귉␇);
+Test_N(q␇귊␇, q␇귊␇, q␇귊␇, q␇귊␇, q␇귊␇);
+Test_N(q␇귋␇, q␇귋␇, q␇귋␇, q␇귋␇, q␇귋␇);
+Test_N(q␇귌␇, q␇귌␇, q␇귌␇, q␇귌␇, q␇귌␇);
+Test_N(q␇귍␇, q␇귍␇, q␇귍␇, q␇귍␇, q␇귍␇);
+Test_N(q␇귎␇, q␇귎␇, q␇귎␇, q␇귎␇, q␇귎␇);
+Test_N(q␇귏␇, q␇귏␇, q␇귏␇, q␇귏␇, q␇귏␇);
+Test_N(q␇귐␇, q␇귐␇, q␇귐␇, q␇귐␇, q␇귐␇);
+Test_N(q␇귑␇, q␇귑␇, q␇귑␇, q␇귑␇, q␇귑␇);
+Test_N(q␇귒␇, q␇귒␇, q␇귒␇, q␇귒␇, q␇귒␇);
+Test_N(q␇귓␇, q␇귓␇, q␇귓␇, q␇귓␇, q␇귓␇);
+Test_N(q␇귔␇, q␇귔␇, q␇귔␇, q␇귔␇, q␇귔␇);
+Test_N(q␇귕␇, q␇귕␇, q␇귕␇, q␇귕␇, q␇귕␇);
+Test_N(q␇귖␇, q␇귖␇, q␇귖␇, q␇귖␇, q␇귖␇);
+Test_N(q␇귗␇, q␇귗␇, q␇귗␇, q␇귗␇, q␇귗␇);
+Test_N(q␇귘␇, q␇귘␇, q␇귘␇, q␇귘␇, q␇귘␇);
+Test_N(q␇귙␇, q␇귙␇, q␇귙␇, q␇귙␇, q␇귙␇);
+Test_N(q␇귚␇, q␇귚␇, q␇귚␇, q␇귚␇, q␇귚␇);
+Test_N(q␇귛␇, q␇귛␇, q␇귛␇, q␇귛␇, q␇귛␇);
+Test_N(q␇규␇, q␇규␇, q␇규␇, q␇규␇, q␇규␇);
+Test_N(q␇귝␇, q␇귝␇, q␇귝␇, q␇귝␇, q␇귝␇);
+Test_N(q␇귞␇, q␇귞␇, q␇귞␇, q␇귞␇, q␇귞␇);
+Test_N(q␇귟␇, q␇귟␇, q␇귟␇, q␇귟␇, q␇귟␇);
+Test_N(q␇균␇, q␇균␇, q␇균␇, q␇균␇, q␇균␇);
+Test_N(q␇귡␇, q␇귡␇, q␇귡␇, q␇귡␇, q␇귡␇);
+Test_N(q␇귢␇, q␇귢␇, q␇귢␇, q␇귢␇, q␇귢␇);
+Test_N(q␇귣␇, q␇귣␇, q␇귣␇, q␇귣␇, q␇귣␇);
+Test_N(q␇귤␇, q␇귤␇, q␇귤␇, q␇귤␇, q␇귤␇);
+Test_N(q␇귥␇, q␇귥␇, q␇귥␇, q␇귥␇, q␇귥␇);
+Test_N(q␇귦␇, q␇귦␇, q␇귦␇, q␇귦␇, q␇귦␇);
+Test_N(q␇귧␇, q␇귧␇, q␇귧␇, q␇귧␇, q␇귧␇);
+Test_N(q␇귨␇, q␇귨␇, q␇귨␇, q␇귨␇, q␇귨␇);
+Test_N(q␇귩␇, q␇귩␇, q␇귩␇, q␇귩␇, q␇귩␇);
+Test_N(q␇귪␇, q␇귪␇, q␇귪␇, q␇귪␇, q␇귪␇);
+Test_N(q␇귫␇, q␇귫␇, q␇귫␇, q␇귫␇, q␇귫␇);
+Test_N(q␇귬␇, q␇귬␇, q␇귬␇, q␇귬␇, q␇귬␇);
+Test_N(q␇귭␇, q␇귭␇, q␇귭␇, q␇귭␇, q␇귭␇);
+Test_N(q␇귮␇, q␇귮␇, q␇귮␇, q␇귮␇, q␇귮␇);
+Test_N(q␇귯␇, q␇귯␇, q␇귯␇, q␇귯␇, q␇귯␇);
+Test_N(q␇귰␇, q␇귰␇, q␇귰␇, q␇귰␇, q␇귰␇);
+Test_N(q␇귱␇, q␇귱␇, q␇귱␇, q␇귱␇, q␇귱␇);
+Test_N(q␇귲␇, q␇귲␇, q␇귲␇, q␇귲␇, q␇귲␇);
+Test_N(q␇귳␇, q␇귳␇, q␇귳␇, q␇귳␇, q␇귳␇);
+Test_N(q␇귴␇, q␇귴␇, q␇귴␇, q␇귴␇, q␇귴␇);
+Test_N(q␇귵␇, q␇귵␇, q␇귵␇, q␇귵␇, q␇귵␇);
+Test_N(q␇귶␇, q␇귶␇, q␇귶␇, q␇귶␇, q␇귶␇);
+Test_N(q␇귷␇, q␇귷␇, q␇귷␇, q␇귷␇, q␇귷␇);
+Test_N(q␇그␇, q␇그␇, q␇그␇, q␇그␇, q␇그␇);
+Test_N(q␇극␇, q␇극␇, q␇극␇, q␇극␇, q␇극␇);
+Test_N(q␇귺␇, q␇귺␇, q␇귺␇, q␇귺␇, q␇귺␇);
+Test_N(q␇귻␇, q␇귻␇, q␇귻␇, q␇귻␇, q␇귻␇);
+Test_N(q␇근␇, q␇근␇, q␇근␇, q␇근␇, q␇근␇);
+Test_N(q␇귽␇, q␇귽␇, q␇귽␇, q␇귽␇, q␇귽␇);
+Test_N(q␇귾␇, q␇귾␇, q␇귾␇, q␇귾␇, q␇귾␇);
+Test_N(q␇귿␇, q␇귿␇, q␇귿␇, q␇귿␇, q␇귿␇);
+Test_N(q␇글␇, q␇글␇, q␇글␇, q␇글␇, q␇글␇);
+Test_N(q␇긁␇, q␇긁␇, q␇긁␇, q␇긁␇, q␇긁␇);
+Test_N(q␇긂␇, q␇긂␇, q␇긂␇, q␇긂␇, q␇긂␇);
+Test_N(q␇긃␇, q␇긃␇, q␇긃␇, q␇긃␇, q␇긃␇);
+Test_N(q␇긄␇, q␇긄␇, q␇긄␇, q␇긄␇, q␇긄␇);
+Test_N(q␇긅␇, q␇긅␇, q␇긅␇, q␇긅␇, q␇긅␇);
+Test_N(q␇긆␇, q␇긆␇, q␇긆␇, q␇긆␇, q␇긆␇);
+Test_N(q␇긇␇, q␇긇␇, q␇긇␇, q␇긇␇, q␇긇␇);
+Test_N(q␇금␇, q␇금␇, q␇금␇, q␇금␇, q␇금␇);
+Test_N(q␇급␇, q␇급␇, q␇급␇, q␇급␇, q␇급␇);
+Test_N(q␇긊␇, q␇긊␇, q␇긊␇, q␇긊␇, q␇긊␇);
+Test_N(q␇긋␇, q␇긋␇, q␇긋␇, q␇긋␇, q␇긋␇);
+Test_N(q␇긌␇, q␇긌␇, q␇긌␇, q␇긌␇, q␇긌␇);
+Test_N(q␇긍␇, q␇긍␇, q␇긍␇, q␇긍␇, q␇긍␇);
+Test_N(q␇긎␇, q␇긎␇, q␇긎␇, q␇긎␇, q␇긎␇);
+Test_N(q␇긏␇, q␇긏␇, q␇긏␇, q␇긏␇, q␇긏␇);
+Test_N(q␇긐␇, q␇긐␇, q␇긐␇, q␇긐␇, q␇긐␇);
+Test_N(q␇긑␇, q␇긑␇, q␇긑␇, q␇긑␇, q␇긑␇);
+Test_N(q␇긒␇, q␇긒␇, q␇긒␇, q␇긒␇, q␇긒␇);
+Test_N(q␇긓␇, q␇긓␇, q␇긓␇, q␇긓␇, q␇긓␇);
+Test_N(q␇긔␇, q␇긔␇, q␇긔␇, q␇긔␇, q␇긔␇);
+Test_N(q␇긕␇, q␇긕␇, q␇긕␇, q␇긕␇, q␇긕␇);
+Test_N(q␇긖␇, q␇긖␇, q␇긖␇, q␇긖␇, q␇긖␇);
+Test_N(q␇긗␇, q␇긗␇, q␇긗␇, q␇긗␇, q␇긗␇);
+Test_N(q␇긘␇, q␇긘␇, q␇긘␇, q␇긘␇, q␇긘␇);
+Test_N(q␇긙␇, q␇긙␇, q␇긙␇, q␇긙␇, q␇긙␇);
+Test_N(q␇긚␇, q␇긚␇, q␇긚␇, q␇긚␇, q␇긚␇);
+Test_N(q␇긛␇, q␇긛␇, q␇긛␇, q␇긛␇, q␇긛␇);
+Test_N(q␇긜␇, q␇긜␇, q␇긜␇, q␇긜␇, q␇긜␇);
+Test_N(q␇긝␇, q␇긝␇, q␇긝␇, q␇긝␇, q␇긝␇);
+Test_N(q␇긞␇, q␇긞␇, q␇긞␇, q␇긞␇, q␇긞␇);
+Test_N(q␇긟␇, q␇긟␇, q␇긟␇, q␇긟␇, q␇긟␇);
+Test_N(q␇긠␇, q␇긠␇, q␇긠␇, q␇긠␇, q␇긠␇);
+Test_N(q␇긡␇, q␇긡␇, q␇긡␇, q␇긡␇, q␇긡␇);
+Test_N(q␇긢␇, q␇긢␇, q␇긢␇, q␇긢␇, q␇긢␇);
+Test_N(q␇긣␇, q␇긣␇, q␇긣␇, q␇긣␇, q␇긣␇);
+Test_N(q␇긤␇, q␇긤␇, q␇긤␇, q␇긤␇, q␇긤␇);
+Test_N(q␇긥␇, q␇긥␇, q␇긥␇, q␇긥␇, q␇긥␇);
+Test_N(q␇긦␇, q␇긦␇, q␇긦␇, q␇긦␇, q␇긦␇);
+Test_N(q␇긧␇, q␇긧␇, q␇긧␇, q␇긧␇, q␇긧␇);
+Test_N(q␇긨␇, q␇긨␇, q␇긨␇, q␇긨␇, q␇긨␇);
+Test_N(q␇긩␇, q␇긩␇, q␇긩␇, q␇긩␇, q␇긩␇);
+Test_N(q␇긪␇, q␇긪␇, q␇긪␇, q␇긪␇, q␇긪␇);
+Test_N(q␇긫␇, q␇긫␇, q␇긫␇, q␇긫␇, q␇긫␇);
+Test_N(q␇긬␇, q␇긬␇, q␇긬␇, q␇긬␇, q␇긬␇);
+Test_N(q␇긭␇, q␇긭␇, q␇긭␇, q␇긭␇, q␇긭␇);
+Test_N(q␇긮␇, q␇긮␇, q␇긮␇, q␇긮␇, q␇긮␇);
+Test_N(q␇긯␇, q␇긯␇, q␇긯␇, q␇긯␇, q␇긯␇);
+Test_N(q␇기␇, q␇기␇, q␇기␇, q␇기␇, q␇기␇);
+Test_N(q␇긱␇, q␇긱␇, q␇긱␇, q␇긱␇, q␇긱␇);
+Test_N(q␇긲␇, q␇긲␇, q␇긲␇, q␇긲␇, q␇긲␇);
+Test_N(q␇긳␇, q␇긳␇, q␇긳␇, q␇긳␇, q␇긳␇);
+Test_N(q␇긴␇, q␇긴␇, q␇긴␇, q␇긴␇, q␇긴␇);
+Test_N(q␇긵␇, q␇긵␇, q␇긵␇, q␇긵␇, q␇긵␇);
+Test_N(q␇긶␇, q␇긶␇, q␇긶␇, q␇긶␇, q␇긶␇);
+Test_N(q␇긷␇, q␇긷␇, q␇긷␇, q␇긷␇, q␇긷␇);
+Test_N(q␇길␇, q␇길␇, q␇길␇, q␇길␇, q␇길␇);
+Test_N(q␇긹␇, q␇긹␇, q␇긹␇, q␇긹␇, q␇긹␇);
+Test_N(q␇긺␇, q␇긺␇, q␇긺␇, q␇긺␇, q␇긺␇);
+Test_N(q␇긻␇, q␇긻␇, q␇긻␇, q␇긻␇, q␇긻␇);
+Test_N(q␇긼␇, q␇긼␇, q␇긼␇, q␇긼␇, q␇긼␇);
+Test_N(q␇긽␇, q␇긽␇, q␇긽␇, q␇긽␇, q␇긽␇);
+Test_N(q␇긾␇, q␇긾␇, q␇긾␇, q␇긾␇, q␇긾␇);
+Test_N(q␇긿␇, q␇긿␇, q␇긿␇, q␇긿␇, q␇긿␇);
+Test_N(q␇김␇, q␇김␇, q␇김␇, q␇김␇, q␇김␇);
+Test_N(q␇깁␇, q␇깁␇, q␇깁␇, q␇깁␇, q␇깁␇);
+Test_N(q␇깂␇, q␇깂␇, q␇깂␇, q␇깂␇, q␇깂␇);
+Test_N(q␇깃␇, q␇깃␇, q␇깃␇, q␇깃␇, q␇깃␇);
+Test_N(q␇깄␇, q␇깄␇, q␇깄␇, q␇깄␇, q␇깄␇);
+Test_N(q␇깅␇, q␇깅␇, q␇깅␇, q␇깅␇, q␇깅␇);
+Test_N(q␇깆␇, q␇깆␇, q␇깆␇, q␇깆␇, q␇깆␇);
+Test_N(q␇깇␇, q␇깇␇, q␇깇␇, q␇깇␇, q␇깇␇);
+Test_N(q␇깈␇, q␇깈␇, q␇깈␇, q␇깈␇, q␇깈␇);
+Test_N(q␇깉␇, q␇깉␇, q␇깉␇, q␇깉␇, q␇깉␇);
+Test_N(q␇깊␇, q␇깊␇, q␇깊␇, q␇깊␇, q␇깊␇);
+Test_N(q␇깋␇, q␇깋␇, q␇깋␇, q␇깋␇, q␇깋␇);
+Test_N(q␇까␇, q␇까␇, q␇까␇, q␇까␇, q␇까␇);
+Test_N(q␇깍␇, q␇깍␇, q␇깍␇, q␇깍␇, q␇깍␇);
+Test_N(q␇깎␇, q␇깎␇, q␇깎␇, q␇깎␇, q␇깎␇);
+Test_N(q␇깏␇, q␇깏␇, q␇깏␇, q␇깏␇, q␇깏␇);
+Test_N(q␇깐␇, q␇깐␇, q␇깐␇, q␇깐␇, q␇깐␇);
+Test_N(q␇깑␇, q␇깑␇, q␇깑␇, q␇깑␇, q␇깑␇);
+Test_N(q␇깒␇, q␇깒␇, q␇깒␇, q␇깒␇, q␇깒␇);
+Test_N(q␇깓␇, q␇깓␇, q␇깓␇, q␇깓␇, q␇깓␇);
+Test_N(q␇깔␇, q␇깔␇, q␇깔␇, q␇깔␇, q␇깔␇);
+Test_N(q␇깕␇, q␇깕␇, q␇깕␇, q␇깕␇, q␇깕␇);
+Test_N(q␇깖␇, q␇깖␇, q␇깖␇, q␇깖␇, q␇깖␇);
+Test_N(q␇깗␇, q␇깗␇, q␇깗␇, q␇깗␇, q␇깗␇);
+Test_N(q␇깘␇, q␇깘␇, q␇깘␇, q␇깘␇, q␇깘␇);
+Test_N(q␇깙␇, q␇깙␇, q␇깙␇, q␇깙␇, q␇깙␇);
+Test_N(q␇깚␇, q␇깚␇, q␇깚␇, q␇깚␇, q␇깚␇);
+Test_N(q␇깛␇, q␇깛␇, q␇깛␇, q␇깛␇, q␇깛␇);
+Test_N(q␇깜␇, q␇깜␇, q␇깜␇, q␇깜␇, q␇깜␇);
+Test_N(q␇깝␇, q␇깝␇, q␇깝␇, q␇깝␇, q␇깝␇);
+Test_N(q␇깞␇, q␇깞␇, q␇깞␇, q␇깞␇, q␇깞␇);
+Test_N(q␇깟␇, q␇깟␇, q␇깟␇, q␇깟␇, q␇깟␇);
+Test_N(q␇깠␇, q␇깠␇, q␇깠␇, q␇깠␇, q␇깠␇);
+Test_N(q␇깡␇, q␇깡␇, q␇깡␇, q␇깡␇, q␇깡␇);
+Test_N(q␇깢␇, q␇깢␇, q␇깢␇, q␇깢␇, q␇깢␇);
+Test_N(q␇깣␇, q␇깣␇, q␇깣␇, q␇깣␇, q␇깣␇);
+Test_N(q␇깤␇, q␇깤␇, q␇깤␇, q␇깤␇, q␇깤␇);
+Test_N(q␇깥␇, q␇깥␇, q␇깥␇, q␇깥␇, q␇깥␇);
+Test_N(q␇깦␇, q␇깦␇, q␇깦␇, q␇깦␇, q␇깦␇);
+Test_N(q␇깧␇, q␇깧␇, q␇깧␇, q␇깧␇, q␇깧␇);
+Test_N(q␇깨␇, q␇깨␇, q␇깨␇, q␇깨␇, q␇깨␇);
+Test_N(q␇깩␇, q␇깩␇, q␇깩␇, q␇깩␇, q␇깩␇);
+Test_N(q␇깪␇, q␇깪␇, q␇깪␇, q␇깪␇, q␇깪␇);
+Test_N(q␇깫␇, q␇깫␇, q␇깫␇, q␇깫␇, q␇깫␇);
+Test_N(q␇깬␇, q␇깬␇, q␇깬␇, q␇깬␇, q␇깬␇);
+Test_N(q␇깭␇, q␇깭␇, q␇깭␇, q␇깭␇, q␇깭␇);
+Test_N(q␇깮␇, q␇깮␇, q␇깮␇, q␇깮␇, q␇깮␇);
+Test_N(q␇깯␇, q␇깯␇, q␇깯␇, q␇깯␇, q␇깯␇);
+Test_N(q␇깰␇, q␇깰␇, q␇깰␇, q␇깰␇, q␇깰␇);
+Test_N(q␇깱␇, q␇깱␇, q␇깱␇, q␇깱␇, q␇깱␇);
+Test_N(q␇깲␇, q␇깲␇, q␇깲␇, q␇깲␇, q␇깲␇);
+Test_N(q␇깳␇, q␇깳␇, q␇깳␇, q␇깳␇, q␇깳␇);
+Test_N(q␇깴␇, q␇깴␇, q␇깴␇, q␇깴␇, q␇깴␇);
+Test_N(q␇깵␇, q␇깵␇, q␇깵␇, q␇깵␇, q␇깵␇);
+Test_N(q␇깶␇, q␇깶␇, q␇깶␇, q␇깶␇, q␇깶␇);
+Test_N(q␇깷␇, q␇깷␇, q␇깷␇, q␇깷␇, q␇깷␇);
+Test_N(q␇깸␇, q␇깸␇, q␇깸␇, q␇깸␇, q␇깸␇);
+Test_N(q␇깹␇, q␇깹␇, q␇깹␇, q␇깹␇, q␇깹␇);
+Test_N(q␇깺␇, q␇깺␇, q␇깺␇, q␇깺␇, q␇깺␇);
+Test_N(q␇깻␇, q␇깻␇, q␇깻␇, q␇깻␇, q␇깻␇);
+Test_N(q␇깼␇, q␇깼␇, q␇깼␇, q␇깼␇, q␇깼␇);
+Test_N(q␇깽␇, q␇깽␇, q␇깽␇, q␇깽␇, q␇깽␇);
+Test_N(q␇깾␇, q␇깾␇, q␇깾␇, q␇깾␇, q␇깾␇);
+Test_N(q␇깿␇, q␇깿␇, q␇깿␇, q␇깿␇, q␇깿␇);
+Test_N(q␇꺀␇, q␇꺀␇, q␇꺀␇, q␇꺀␇, q␇꺀␇);
+Test_N(q␇꺁␇, q␇꺁␇, q␇꺁␇, q␇꺁␇, q␇꺁␇);
+Test_N(q␇꺂␇, q␇꺂␇, q␇꺂␇, q␇꺂␇, q␇꺂␇);
+Test_N(q␇꺃␇, q␇꺃␇, q␇꺃␇, q␇꺃␇, q␇꺃␇);
+Test_N(q␇꺄␇, q␇꺄␇, q␇꺄␇, q␇꺄␇, q␇꺄␇);
+Test_N(q␇꺅␇, q␇꺅␇, q␇꺅␇, q␇꺅␇, q␇꺅␇);
+Test_N(q␇꺆␇, q␇꺆␇, q␇꺆␇, q␇꺆␇, q␇꺆␇);
+Test_N(q␇꺇␇, q␇꺇␇, q␇꺇␇, q␇꺇␇, q␇꺇␇);
+Test_N(q␇꺈␇, q␇꺈␇, q␇꺈␇, q␇꺈␇, q␇꺈␇);
+Test_N(q␇꺉␇, q␇꺉␇, q␇꺉␇, q␇꺉␇, q␇꺉␇);
+Test_N(q␇꺊␇, q␇꺊␇, q␇꺊␇, q␇꺊␇, q␇꺊␇);
+Test_N(q␇꺋␇, q␇꺋␇, q␇꺋␇, q␇꺋␇, q␇꺋␇);
+Test_N(q␇꺌␇, q␇꺌␇, q␇꺌␇, q␇꺌␇, q␇꺌␇);
+Test_N(q␇꺍␇, q␇꺍␇, q␇꺍␇, q␇꺍␇, q␇꺍␇);
+Test_N(q␇꺎␇, q␇꺎␇, q␇꺎␇, q␇꺎␇, q␇꺎␇);
+Test_N(q␇꺏␇, q␇꺏␇, q␇꺏␇, q␇꺏␇, q␇꺏␇);
+Test_N(q␇꺐␇, q␇꺐␇, q␇꺐␇, q␇꺐␇, q␇꺐␇);
+Test_N(q␇꺑␇, q␇꺑␇, q␇꺑␇, q␇꺑␇, q␇꺑␇);
+Test_N(q␇꺒␇, q␇꺒␇, q␇꺒␇, q␇꺒␇, q␇꺒␇);
+Test_N(q␇꺓␇, q␇꺓␇, q␇꺓␇, q␇꺓␇, q␇꺓␇);
+Test_N(q␇꺔␇, q␇꺔␇, q␇꺔␇, q␇꺔␇, q␇꺔␇);
+Test_N(q␇꺕␇, q␇꺕␇, q␇꺕␇, q␇꺕␇, q␇꺕␇);
+Test_N(q␇꺖␇, q␇꺖␇, q␇꺖␇, q␇꺖␇, q␇꺖␇);
+Test_N(q␇꺗␇, q␇꺗␇, q␇꺗␇, q␇꺗␇, q␇꺗␇);
+Test_N(q␇꺘␇, q␇꺘␇, q␇꺘␇, q␇꺘␇, q␇꺘␇);
+Test_N(q␇꺙␇, q␇꺙␇, q␇꺙␇, q␇꺙␇, q␇꺙␇);
+Test_N(q␇꺚␇, q␇꺚␇, q␇꺚␇, q␇꺚␇, q␇꺚␇);
+Test_N(q␇꺛␇, q␇꺛␇, q␇꺛␇, q␇꺛␇, q␇꺛␇);
+Test_N(q␇꺜␇, q␇꺜␇, q␇꺜␇, q␇꺜␇, q␇꺜␇);
+Test_N(q␇꺝␇, q␇꺝␇, q␇꺝␇, q␇꺝␇, q␇꺝␇);
+Test_N(q␇꺞␇, q␇꺞␇, q␇꺞␇, q␇꺞␇, q␇꺞␇);
+Test_N(q␇꺟␇, q␇꺟␇, q␇꺟␇, q␇꺟␇, q␇꺟␇);
+Test_N(q␇꺠␇, q␇꺠␇, q␇꺠␇, q␇꺠␇, q␇꺠␇);
+Test_N(q␇꺡␇, q␇꺡␇, q␇꺡␇, q␇꺡␇, q␇꺡␇);
+Test_N(q␇꺢␇, q␇꺢␇, q␇꺢␇, q␇꺢␇, q␇꺢␇);
+Test_N(q␇꺣␇, q␇꺣␇, q␇꺣␇, q␇꺣␇, q␇꺣␇);
+Test_N(q␇꺤␇, q␇꺤␇, q␇꺤␇, q␇꺤␇, q␇꺤␇);
+Test_N(q␇꺥␇, q␇꺥␇, q␇꺥␇, q␇꺥␇, q␇꺥␇);
+Test_N(q␇꺦␇, q␇꺦␇, q␇꺦␇, q␇꺦␇, q␇꺦␇);
+Test_N(q␇꺧␇, q␇꺧␇, q␇꺧␇, q␇꺧␇, q␇꺧␇);
+Test_N(q␇꺨␇, q␇꺨␇, q␇꺨␇, q␇꺨␇, q␇꺨␇);
+Test_N(q␇꺩␇, q␇꺩␇, q␇꺩␇, q␇꺩␇, q␇꺩␇);
+Test_N(q␇꺪␇, q␇꺪␇, q␇꺪␇, q␇꺪␇, q␇꺪␇);
+Test_N(q␇꺫␇, q␇꺫␇, q␇꺫␇, q␇꺫␇, q␇꺫␇);
+Test_N(q␇꺬␇, q␇꺬␇, q␇꺬␇, q␇꺬␇, q␇꺬␇);
+Test_N(q␇꺭␇, q␇꺭␇, q␇꺭␇, q␇꺭␇, q␇꺭␇);
+Test_N(q␇꺮␇, q␇꺮␇, q␇꺮␇, q␇꺮␇, q␇꺮␇);
+Test_N(q␇꺯␇, q␇꺯␇, q␇꺯␇, q␇꺯␇, q␇꺯␇);
+Test_N(q␇꺰␇, q␇꺰␇, q␇꺰␇, q␇꺰␇, q␇꺰␇);
+Test_N(q␇꺱␇, q␇꺱␇, q␇꺱␇, q␇꺱␇, q␇꺱␇);
+Test_N(q␇꺲␇, q␇꺲␇, q␇꺲␇, q␇꺲␇, q␇꺲␇);
+Test_N(q␇꺳␇, q␇꺳␇, q␇꺳␇, q␇꺳␇, q␇꺳␇);
+Test_N(q␇꺴␇, q␇꺴␇, q␇꺴␇, q␇꺴␇, q␇꺴␇);
+Test_N(q␇꺵␇, q␇꺵␇, q␇꺵␇, q␇꺵␇, q␇꺵␇);
+Test_N(q␇꺶␇, q␇꺶␇, q␇꺶␇, q␇꺶␇, q␇꺶␇);
+Test_N(q␇꺷␇, q␇꺷␇, q␇꺷␇, q␇꺷␇, q␇꺷␇);
+Test_N(q␇꺸␇, q␇꺸␇, q␇꺸␇, q␇꺸␇, q␇꺸␇);
+Test_N(q␇꺹␇, q␇꺹␇, q␇꺹␇, q␇꺹␇, q␇꺹␇);
+Test_N(q␇꺺␇, q␇꺺␇, q␇꺺␇, q␇꺺␇, q␇꺺␇);
+Test_N(q␇꺻␇, q␇꺻␇, q␇꺻␇, q␇꺻␇, q␇꺻␇);
+Test_N(q␇꺼␇, q␇꺼␇, q␇꺼␇, q␇꺼␇, q␇꺼␇);
+Test_N(q␇꺽␇, q␇꺽␇, q␇꺽␇, q␇꺽␇, q␇꺽␇);
+Test_N(q␇꺾␇, q␇꺾␇, q␇꺾␇, q␇꺾␇, q␇꺾␇);
+Test_N(q␇꺿␇, q␇꺿␇, q␇꺿␇, q␇꺿␇, q␇꺿␇);
+Test_N(q␇껀␇, q␇껀␇, q␇껀␇, q␇껀␇, q␇껀␇);
+Test_N(q␇껁␇, q␇껁␇, q␇껁␇, q␇껁␇, q␇껁␇);
+Test_N(q␇껂␇, q␇껂␇, q␇껂␇, q␇껂␇, q␇껂␇);
+Test_N(q␇껃␇, q␇껃␇, q␇껃␇, q␇껃␇, q␇껃␇);
+Test_N(q␇껄␇, q␇껄␇, q␇껄␇, q␇껄␇, q␇껄␇);
+Test_N(q␇껅␇, q␇껅␇, q␇껅␇, q␇껅␇, q␇껅␇);
+Test_N(q␇껆␇, q␇껆␇, q␇껆␇, q␇껆␇, q␇껆␇);
+Test_N(q␇껇␇, q␇껇␇, q␇껇␇, q␇껇␇, q␇껇␇);
+Test_N(q␇껈␇, q␇껈␇, q␇껈␇, q␇껈␇, q␇껈␇);
+Test_N(q␇껉␇, q␇껉␇, q␇껉␇, q␇껉␇, q␇껉␇);
+Test_N(q␇껊␇, q␇껊␇, q␇껊␇, q␇껊␇, q␇껊␇);
+Test_N(q␇껋␇, q␇껋␇, q␇껋␇, q␇껋␇, q␇껋␇);
+Test_N(q␇껌␇, q␇껌␇, q␇껌␇, q␇껌␇, q␇껌␇);
+Test_N(q␇껍␇, q␇껍␇, q␇껍␇, q␇껍␇, q␇껍␇);
+Test_N(q␇껎␇, q␇껎␇, q␇껎␇, q␇껎␇, q␇껎␇);
+Test_N(q␇껏␇, q␇껏␇, q␇껏␇, q␇껏␇, q␇껏␇);
+Test_N(q␇껐␇, q␇껐␇, q␇껐␇, q␇껐␇, q␇껐␇);
+Test_N(q␇껑␇, q␇껑␇, q␇껑␇, q␇껑␇, q␇껑␇);
+Test_N(q␇껒␇, q␇껒␇, q␇껒␇, q␇껒␇, q␇껒␇);
+Test_N(q␇껓␇, q␇껓␇, q␇껓␇, q␇껓␇, q␇껓␇);
+Test_N(q␇껔␇, q␇껔␇, q␇껔␇, q␇껔␇, q␇껔␇);
+Test_N(q␇껕␇, q␇껕␇, q␇껕␇, q␇껕␇, q␇껕␇);
+Test_N(q␇껖␇, q␇껖␇, q␇껖␇, q␇껖␇, q␇껖␇);
+Test_N(q␇껗␇, q␇껗␇, q␇껗␇, q␇껗␇, q␇껗␇);
+Test_N(q␇께␇, q␇께␇, q␇께␇, q␇께␇, q␇께␇);
+Test_N(q␇껙␇, q␇껙␇, q␇껙␇, q␇껙␇, q␇껙␇);
+Test_N(q␇껚␇, q␇껚␇, q␇껚␇, q␇껚␇, q␇껚␇);
+Test_N(q␇껛␇, q␇껛␇, q␇껛␇, q␇껛␇, q␇껛␇);
+Test_N(q␇껜␇, q␇껜␇, q␇껜␇, q␇껜␇, q␇껜␇);
+Test_N(q␇껝␇, q␇껝␇, q␇껝␇, q␇껝␇, q␇껝␇);
+Test_N(q␇껞␇, q␇껞␇, q␇껞␇, q␇껞␇, q␇껞␇);
+Test_N(q␇껟␇, q␇껟␇, q␇껟␇, q␇껟␇, q␇껟␇);
+Test_N(q␇껠␇, q␇껠␇, q␇껠␇, q␇껠␇, q␇껠␇);
+Test_N(q␇껡␇, q␇껡␇, q␇껡␇, q␇껡␇, q␇껡␇);
+Test_N(q␇껢␇, q␇껢␇, q␇껢␇, q␇껢␇, q␇껢␇);
+Test_N(q␇껣␇, q␇껣␇, q␇껣␇, q␇껣␇, q␇껣␇);
+Test_N(q␇껤␇, q␇껤␇, q␇껤␇, q␇껤␇, q␇껤␇);
+Test_N(q␇껥␇, q␇껥␇, q␇껥␇, q␇껥␇, q␇껥␇);
+Test_N(q␇껦␇, q␇껦␇, q␇껦␇, q␇껦␇, q␇껦␇);
+Test_N(q␇껧␇, q␇껧␇, q␇껧␇, q␇껧␇, q␇껧␇);
+Test_N(q␇껨␇, q␇껨␇, q␇껨␇, q␇껨␇, q␇껨␇);
+Test_N(q␇껩␇, q␇껩␇, q␇껩␇, q␇껩␇, q␇껩␇);
+Test_N(q␇껪␇, q␇껪␇, q␇껪␇, q␇껪␇, q␇껪␇);
+Test_N(q␇껫␇, q␇껫␇, q␇껫␇, q␇껫␇, q␇껫␇);
+Test_N(q␇껬␇, q␇껬␇, q␇껬␇, q␇껬␇, q␇껬␇);
+Test_N(q␇껭␇, q␇껭␇, q␇껭␇, q␇껭␇, q␇껭␇);
+Test_N(q␇껮␇, q␇껮␇, q␇껮␇, q␇껮␇, q␇껮␇);
+Test_N(q␇껯␇, q␇껯␇, q␇껯␇, q␇껯␇, q␇껯␇);
+Test_N(q␇껰␇, q␇껰␇, q␇껰␇, q␇껰␇, q␇껰␇);
+Test_N(q␇껱␇, q␇껱␇, q␇껱␇, q␇껱␇, q␇껱␇);
+Test_N(q␇껲␇, q␇껲␇, q␇껲␇, q␇껲␇, q␇껲␇);
+Test_N(q␇껳␇, q␇껳␇, q␇껳␇, q␇껳␇, q␇껳␇);
+Test_N(q␇껴␇, q␇껴␇, q␇껴␇, q␇껴␇, q␇껴␇);
+Test_N(q␇껵␇, q␇껵␇, q␇껵␇, q␇껵␇, q␇껵␇);
+Test_N(q␇껶␇, q␇껶␇, q␇껶␇, q␇껶␇, q␇껶␇);
+Test_N(q␇껷␇, q␇껷␇, q␇껷␇, q␇껷␇, q␇껷␇);
+Test_N(q␇껸␇, q␇껸␇, q␇껸␇, q␇껸␇, q␇껸␇);
+Test_N(q␇껹␇, q␇껹␇, q␇껹␇, q␇껹␇, q␇껹␇);
+Test_N(q␇껺␇, q␇껺␇, q␇껺␇, q␇껺␇, q␇껺␇);
+Test_N(q␇껻␇, q␇껻␇, q␇껻␇, q␇껻␇, q␇껻␇);
+Test_N(q␇껼␇, q␇껼␇, q␇껼␇, q␇껼␇, q␇껼␇);
+Test_N(q␇껽␇, q␇껽␇, q␇껽␇, q␇껽␇, q␇껽␇);
+Test_N(q␇껾␇, q␇껾␇, q␇껾␇, q␇껾␇, q␇껾␇);
+Test_N(q␇껿␇, q␇껿␇, q␇껿␇, q␇껿␇, q␇껿␇);
+Test_N(q␇꼀␇, q␇꼀␇, q␇꼀␇, q␇꼀␇, q␇꼀␇);
+Test_N(q␇꼁␇, q␇꼁␇, q␇꼁␇, q␇꼁␇, q␇꼁␇);
+Test_N(q␇꼂␇, q␇꼂␇, q␇꼂␇, q␇꼂␇, q␇꼂␇);
+Test_N(q␇꼃␇, q␇꼃␇, q␇꼃␇, q␇꼃␇, q␇꼃␇);
+Test_N(q␇꼄␇, q␇꼄␇, q␇꼄␇, q␇꼄␇, q␇꼄␇);
+Test_N(q␇꼅␇, q␇꼅␇, q␇꼅␇, q␇꼅␇, q␇꼅␇);
+Test_N(q␇꼆␇, q␇꼆␇, q␇꼆␇, q␇꼆␇, q␇꼆␇);
+Test_N(q␇꼇␇, q␇꼇␇, q␇꼇␇, q␇꼇␇, q␇꼇␇);
+Test_N(q␇꼈␇, q␇꼈␇, q␇꼈␇, q␇꼈␇, q␇꼈␇);
+Test_N(q␇꼉␇, q␇꼉␇, q␇꼉␇, q␇꼉␇, q␇꼉␇);
+Test_N(q␇꼊␇, q␇꼊␇, q␇꼊␇, q␇꼊␇, q␇꼊␇);
+Test_N(q␇꼋␇, q␇꼋␇, q␇꼋␇, q␇꼋␇, q␇꼋␇);
+Test_N(q␇꼌␇, q␇꼌␇, q␇꼌␇, q␇꼌␇, q␇꼌␇);
+Test_N(q␇꼍␇, q␇꼍␇, q␇꼍␇, q␇꼍␇, q␇꼍␇);
+Test_N(q␇꼎␇, q␇꼎␇, q␇꼎␇, q␇꼎␇, q␇꼎␇);
+Test_N(q␇꼏␇, q␇꼏␇, q␇꼏␇, q␇꼏␇, q␇꼏␇);
+Test_N(q␇꼐␇, q␇꼐␇, q␇꼐␇, q␇꼐␇, q␇꼐␇);
+Test_N(q␇꼑␇, q␇꼑␇, q␇꼑␇, q␇꼑␇, q␇꼑␇);
+Test_N(q␇꼒␇, q␇꼒␇, q␇꼒␇, q␇꼒␇, q␇꼒␇);
+Test_N(q␇꼓␇, q␇꼓␇, q␇꼓␇, q␇꼓␇, q␇꼓␇);
+Test_N(q␇꼔␇, q␇꼔␇, q␇꼔␇, q␇꼔␇, q␇꼔␇);
+Test_N(q␇꼕␇, q␇꼕␇, q␇꼕␇, q␇꼕␇, q␇꼕␇);
+Test_N(q␇꼖␇, q␇꼖␇, q␇꼖␇, q␇꼖␇, q␇꼖␇);
+Test_N(q␇꼗␇, q␇꼗␇, q␇꼗␇, q␇꼗␇, q␇꼗␇);
+Test_N(q␇꼘␇, q␇꼘␇, q␇꼘␇, q␇꼘␇, q␇꼘␇);
+Test_N(q␇꼙␇, q␇꼙␇, q␇꼙␇, q␇꼙␇, q␇꼙␇);
+Test_N(q␇꼚␇, q␇꼚␇, q␇꼚␇, q␇꼚␇, q␇꼚␇);
+Test_N(q␇꼛␇, q␇꼛␇, q␇꼛␇, q␇꼛␇, q␇꼛␇);
+Test_N(q␇꼜␇, q␇꼜␇, q␇꼜␇, q␇꼜␇, q␇꼜␇);
+Test_N(q␇꼝␇, q␇꼝␇, q␇꼝␇, q␇꼝␇, q␇꼝␇);
+Test_N(q␇꼞␇, q␇꼞␇, q␇꼞␇, q␇꼞␇, q␇꼞␇);
+Test_N(q␇꼟␇, q␇꼟␇, q␇꼟␇, q␇꼟␇, q␇꼟␇);
+Test_N(q␇꼠␇, q␇꼠␇, q␇꼠␇, q␇꼠␇, q␇꼠␇);
+Test_N(q␇꼡␇, q␇꼡␇, q␇꼡␇, q␇꼡␇, q␇꼡␇);
+Test_N(q␇꼢␇, q␇꼢␇, q␇꼢␇, q␇꼢␇, q␇꼢␇);
+Test_N(q␇꼣␇, q␇꼣␇, q␇꼣␇, q␇꼣␇, q␇꼣␇);
+Test_N(q␇꼤␇, q␇꼤␇, q␇꼤␇, q␇꼤␇, q␇꼤␇);
+Test_N(q␇꼥␇, q␇꼥␇, q␇꼥␇, q␇꼥␇, q␇꼥␇);
+Test_N(q␇꼦␇, q␇꼦␇, q␇꼦␇, q␇꼦␇, q␇꼦␇);
+Test_N(q␇꼧␇, q␇꼧␇, q␇꼧␇, q␇꼧␇, q␇꼧␇);
+Test_N(q␇꼨␇, q␇꼨␇, q␇꼨␇, q␇꼨␇, q␇꼨␇);
+Test_N(q␇꼩␇, q␇꼩␇, q␇꼩␇, q␇꼩␇, q␇꼩␇);
+Test_N(q␇꼪␇, q␇꼪␇, q␇꼪␇, q␇꼪␇, q␇꼪␇);
+Test_N(q␇꼫␇, q␇꼫␇, q␇꼫␇, q␇꼫␇, q␇꼫␇);
+Test_N(q␇꼬␇, q␇꼬␇, q␇꼬␇, q␇꼬␇, q␇꼬␇);
+Test_N(q␇꼭␇, q␇꼭␇, q␇꼭␇, q␇꼭␇, q␇꼭␇);
+Test_N(q␇꼮␇, q␇꼮␇, q␇꼮␇, q␇꼮␇, q␇꼮␇);
+Test_N(q␇꼯␇, q␇꼯␇, q␇꼯␇, q␇꼯␇, q␇꼯␇);
+Test_N(q␇꼰␇, q␇꼰␇, q␇꼰␇, q␇꼰␇, q␇꼰␇);
+Test_N(q␇꼱␇, q␇꼱␇, q␇꼱␇, q␇꼱␇, q␇꼱␇);
+Test_N(q␇꼲␇, q␇꼲␇, q␇꼲␇, q␇꼲␇, q␇꼲␇);
+Test_N(q␇꼳␇, q␇꼳␇, q␇꼳␇, q␇꼳␇, q␇꼳␇);
+Test_N(q␇꼴␇, q␇꼴␇, q␇꼴␇, q␇꼴␇, q␇꼴␇);
+Test_N(q␇꼵␇, q␇꼵␇, q␇꼵␇, q␇꼵␇, q␇꼵␇);
+Test_N(q␇꼶␇, q␇꼶␇, q␇꼶␇, q␇꼶␇, q␇꼶␇);
+Test_N(q␇꼷␇, q␇꼷␇, q␇꼷␇, q␇꼷␇, q␇꼷␇);
+Test_N(q␇꼸␇, q␇꼸␇, q␇꼸␇, q␇꼸␇, q␇꼸␇);
+Test_N(q␇꼹␇, q␇꼹␇, q␇꼹␇, q␇꼹␇, q␇꼹␇);
+Test_N(q␇꼺␇, q␇꼺␇, q␇꼺␇, q␇꼺␇, q␇꼺␇);
+Test_N(q␇꼻␇, q␇꼻␇, q␇꼻␇, q␇꼻␇, q␇꼻␇);
+Test_N(q␇꼼␇, q␇꼼␇, q␇꼼␇, q␇꼼␇, q␇꼼␇);
+Test_N(q␇꼽␇, q␇꼽␇, q␇꼽␇, q␇꼽␇, q␇꼽␇);
+Test_N(q␇꼾␇, q␇꼾␇, q␇꼾␇, q␇꼾␇, q␇꼾␇);
+Test_N(q␇꼿␇, q␇꼿␇, q␇꼿␇, q␇꼿␇, q␇꼿␇);
+Test_N(q␇꽀␇, q␇꽀␇, q␇꽀␇, q␇꽀␇, q␇꽀␇);
+Test_N(q␇꽁␇, q␇꽁␇, q␇꽁␇, q␇꽁␇, q␇꽁␇);
+Test_N(q␇꽂␇, q␇꽂␇, q␇꽂␇, q␇꽂␇, q␇꽂␇);
+Test_N(q␇꽃␇, q␇꽃␇, q␇꽃␇, q␇꽃␇, q␇꽃␇);
+Test_N(q␇꽄␇, q␇꽄␇, q␇꽄␇, q␇꽄␇, q␇꽄␇);
+Test_N(q␇꽅␇, q␇꽅␇, q␇꽅␇, q␇꽅␇, q␇꽅␇);
+Test_N(q␇꽆␇, q␇꽆␇, q␇꽆␇, q␇꽆␇, q␇꽆␇);
+Test_N(q␇꽇␇, q␇꽇␇, q␇꽇␇, q␇꽇␇, q␇꽇␇);
+Test_N(q␇꽈␇, q␇꽈␇, q␇꽈␇, q␇꽈␇, q␇꽈␇);
+Test_N(q␇꽉␇, q␇꽉␇, q␇꽉␇, q␇꽉␇, q␇꽉␇);
+Test_N(q␇꽊␇, q␇꽊␇, q␇꽊␇, q␇꽊␇, q␇꽊␇);
+Test_N(q␇꽋␇, q␇꽋␇, q␇꽋␇, q␇꽋␇, q␇꽋␇);
+Test_N(q␇꽌␇, q␇꽌␇, q␇꽌␇, q␇꽌␇, q␇꽌␇);
+Test_N(q␇꽍␇, q␇꽍␇, q␇꽍␇, q␇꽍␇, q␇꽍␇);
+Test_N(q␇꽎␇, q␇꽎␇, q␇꽎␇, q␇꽎␇, q␇꽎␇);
+Test_N(q␇꽏␇, q␇꽏␇, q␇꽏␇, q␇꽏␇, q␇꽏␇);
+Test_N(q␇꽐␇, q␇꽐␇, q␇꽐␇, q␇꽐␇, q␇꽐␇);
+Test_N(q␇꽑␇, q␇꽑␇, q␇꽑␇, q␇꽑␇, q␇꽑␇);
+Test_N(q␇꽒␇, q␇꽒␇, q␇꽒␇, q␇꽒␇, q␇꽒␇);
+Test_N(q␇꽓␇, q␇꽓␇, q␇꽓␇, q␇꽓␇, q␇꽓␇);
+Test_N(q␇꽔␇, q␇꽔␇, q␇꽔␇, q␇꽔␇, q␇꽔␇);
+Test_N(q␇꽕␇, q␇꽕␇, q␇꽕␇, q␇꽕␇, q␇꽕␇);
+Test_N(q␇꽖␇, q␇꽖␇, q␇꽖␇, q␇꽖␇, q␇꽖␇);
+Test_N(q␇꽗␇, q␇꽗␇, q␇꽗␇, q␇꽗␇, q␇꽗␇);
+Test_N(q␇꽘␇, q␇꽘␇, q␇꽘␇, q␇꽘␇, q␇꽘␇);
+Test_N(q␇꽙␇, q␇꽙␇, q␇꽙␇, q␇꽙␇, q␇꽙␇);
+Test_N(q␇꽚␇, q␇꽚␇, q␇꽚␇, q␇꽚␇, q␇꽚␇);
+Test_N(q␇꽛␇, q␇꽛␇, q␇꽛␇, q␇꽛␇, q␇꽛␇);
+Test_N(q␇꽜␇, q␇꽜␇, q␇꽜␇, q␇꽜␇, q␇꽜␇);
+Test_N(q␇꽝␇, q␇꽝␇, q␇꽝␇, q␇꽝␇, q␇꽝␇);
+Test_N(q␇꽞␇, q␇꽞␇, q␇꽞␇, q␇꽞␇, q␇꽞␇);
+Test_N(q␇꽟␇, q␇꽟␇, q␇꽟␇, q␇꽟␇, q␇꽟␇);
+Test_N(q␇꽠␇, q␇꽠␇, q␇꽠␇, q␇꽠␇, q␇꽠␇);
+Test_N(q␇꽡␇, q␇꽡␇, q␇꽡␇, q␇꽡␇, q␇꽡␇);
+Test_N(q␇꽢␇, q␇꽢␇, q␇꽢␇, q␇꽢␇, q␇꽢␇);
+Test_N(q␇꽣␇, q␇꽣␇, q␇꽣␇, q␇꽣␇, q␇꽣␇);
+Test_N(q␇꽤␇, q␇꽤␇, q␇꽤␇, q␇꽤␇, q␇꽤␇);
+Test_N(q␇꽥␇, q␇꽥␇, q␇꽥␇, q␇꽥␇, q␇꽥␇);
+Test_N(q␇꽦␇, q␇꽦␇, q␇꽦␇, q␇꽦␇, q␇꽦␇);
+Test_N(q␇꽧␇, q␇꽧␇, q␇꽧␇, q␇꽧␇, q␇꽧␇);
+Test_N(q␇꽨␇, q␇꽨␇, q␇꽨␇, q␇꽨␇, q␇꽨␇);
+Test_N(q␇꽩␇, q␇꽩␇, q␇꽩␇, q␇꽩␇, q␇꽩␇);
+Test_N(q␇꽪␇, q␇꽪␇, q␇꽪␇, q␇꽪␇, q␇꽪␇);
+Test_N(q␇꽫␇, q␇꽫␇, q␇꽫␇, q␇꽫␇, q␇꽫␇);
+Test_N(q␇꽬␇, q␇꽬␇, q␇꽬␇, q␇꽬␇, q␇꽬␇);
+Test_N(q␇꽭␇, q␇꽭␇, q␇꽭␇, q␇꽭␇, q␇꽭␇);
+Test_N(q␇꽮␇, q␇꽮␇, q␇꽮␇, q␇꽮␇, q␇꽮␇);
+Test_N(q␇꽯␇, q␇꽯␇, q␇꽯␇, q␇꽯␇, q␇꽯␇);
+Test_N(q␇꽰␇, q␇꽰␇, q␇꽰␇, q␇꽰␇, q␇꽰␇);
+Test_N(q␇꽱␇, q␇꽱␇, q␇꽱␇, q␇꽱␇, q␇꽱␇);
+Test_N(q␇꽲␇, q␇꽲␇, q␇꽲␇, q␇꽲␇, q␇꽲␇);
+Test_N(q␇꽳␇, q␇꽳␇, q␇꽳␇, q␇꽳␇, q␇꽳␇);
+Test_N(q␇꽴␇, q␇꽴␇, q␇꽴␇, q␇꽴␇, q␇꽴␇);
+Test_N(q␇꽵␇, q␇꽵␇, q␇꽵␇, q␇꽵␇, q␇꽵␇);
+Test_N(q␇꽶␇, q␇꽶␇, q␇꽶␇, q␇꽶␇, q␇꽶␇);
+Test_N(q␇꽷␇, q␇꽷␇, q␇꽷␇, q␇꽷␇, q␇꽷␇);
+Test_N(q␇꽸␇, q␇꽸␇, q␇꽸␇, q␇꽸␇, q␇꽸␇);
+Test_N(q␇꽹␇, q␇꽹␇, q␇꽹␇, q␇꽹␇, q␇꽹␇);
+Test_N(q␇꽺␇, q␇꽺␇, q␇꽺␇, q␇꽺␇, q␇꽺␇);
+Test_N(q␇꽻␇, q␇꽻␇, q␇꽻␇, q␇꽻␇, q␇꽻␇);
+Test_N(q␇꽼␇, q␇꽼␇, q␇꽼␇, q␇꽼␇, q␇꽼␇);
+Test_N(q␇꽽␇, q␇꽽␇, q␇꽽␇, q␇꽽␇, q␇꽽␇);
+Test_N(q␇꽾␇, q␇꽾␇, q␇꽾␇, q␇꽾␇, q␇꽾␇);
+Test_N(q␇꽿␇, q␇꽿␇, q␇꽿␇, q␇꽿␇, q␇꽿␇);
+Test_N(q␇꾀␇, q␇꾀␇, q␇꾀␇, q␇꾀␇, q␇꾀␇);
+Test_N(q␇꾁␇, q␇꾁␇, q␇꾁␇, q␇꾁␇, q␇꾁␇);
+Test_N(q␇꾂␇, q␇꾂␇, q␇꾂␇, q␇꾂␇, q␇꾂␇);
+Test_N(q␇꾃␇, q␇꾃␇, q␇꾃␇, q␇꾃␇, q␇꾃␇);
+Test_N(q␇꾄␇, q␇꾄␇, q␇꾄␇, q␇꾄␇, q␇꾄␇);
+Test_N(q␇꾅␇, q␇꾅␇, q␇꾅␇, q␇꾅␇, q␇꾅␇);
+Test_N(q␇꾆␇, q␇꾆␇, q␇꾆␇, q␇꾆␇, q␇꾆␇);
+Test_N(q␇꾇␇, q␇꾇␇, q␇꾇␇, q␇꾇␇, q␇꾇␇);
+Test_N(q␇꾈␇, q␇꾈␇, q␇꾈␇, q␇꾈␇, q␇꾈␇);
+Test_N(q␇꾉␇, q␇꾉␇, q␇꾉␇, q␇꾉␇, q␇꾉␇);
+Test_N(q␇꾊␇, q␇꾊␇, q␇꾊␇, q␇꾊␇, q␇꾊␇);
+Test_N(q␇꾋␇, q␇꾋␇, q␇꾋␇, q␇꾋␇, q␇꾋␇);
+Test_N(q␇꾌␇, q␇꾌␇, q␇꾌␇, q␇꾌␇, q␇꾌␇);
+Test_N(q␇꾍␇, q␇꾍␇, q␇꾍␇, q␇꾍␇, q␇꾍␇);
+Test_N(q␇꾎␇, q␇꾎␇, q␇꾎␇, q␇꾎␇, q␇꾎␇);
+Test_N(q␇꾏␇, q␇꾏␇, q␇꾏␇, q␇꾏␇, q␇꾏␇);
+Test_N(q␇꾐␇, q␇꾐␇, q␇꾐␇, q␇꾐␇, q␇꾐␇);
+Test_N(q␇꾑␇, q␇꾑␇, q␇꾑␇, q␇꾑␇, q␇꾑␇);
+Test_N(q␇꾒␇, q␇꾒␇, q␇꾒␇, q␇꾒␇, q␇꾒␇);
+Test_N(q␇꾓␇, q␇꾓␇, q␇꾓␇, q␇꾓␇, q␇꾓␇);
+Test_N(q␇꾔␇, q␇꾔␇, q␇꾔␇, q␇꾔␇, q␇꾔␇);
+Test_N(q␇꾕␇, q␇꾕␇, q␇꾕␇, q␇꾕␇, q␇꾕␇);
+Test_N(q␇꾖␇, q␇꾖␇, q␇꾖␇, q␇꾖␇, q␇꾖␇);
+Test_N(q␇꾗␇, q␇꾗␇, q␇꾗␇, q␇꾗␇, q␇꾗␇);
+Test_N(q␇꾘␇, q␇꾘␇, q␇꾘␇, q␇꾘␇, q␇꾘␇);
+Test_N(q␇꾙␇, q␇꾙␇, q␇꾙␇, q␇꾙␇, q␇꾙␇);
+Test_N(q␇꾚␇, q␇꾚␇, q␇꾚␇, q␇꾚␇, q␇꾚␇);
+Test_N(q␇꾛␇, q␇꾛␇, q␇꾛␇, q␇꾛␇, q␇꾛␇);
+Test_N(q␇꾜␇, q␇꾜␇, q␇꾜␇, q␇꾜␇, q␇꾜␇);
+Test_N(q␇꾝␇, q␇꾝␇, q␇꾝␇, q␇꾝␇, q␇꾝␇);
+Test_N(q␇꾞␇, q␇꾞␇, q␇꾞␇, q␇꾞␇, q␇꾞␇);
+Test_N(q␇꾟␇, q␇꾟␇, q␇꾟␇, q␇꾟␇, q␇꾟␇);
+Test_N(q␇꾠␇, q␇꾠␇, q␇꾠␇, q␇꾠␇, q␇꾠␇);
+Test_N(q␇꾡␇, q␇꾡␇, q␇꾡␇, q␇꾡␇, q␇꾡␇);
+Test_N(q␇꾢␇, q␇꾢␇, q␇꾢␇, q␇꾢␇, q␇꾢␇);
+Test_N(q␇꾣␇, q␇꾣␇, q␇꾣␇, q␇꾣␇, q␇꾣␇);
+Test_N(q␇꾤␇, q␇꾤␇, q␇꾤␇, q␇꾤␇, q␇꾤␇);
+Test_N(q␇꾥␇, q␇꾥␇, q␇꾥␇, q␇꾥␇, q␇꾥␇);
+Test_N(q␇꾦␇, q␇꾦␇, q␇꾦␇, q␇꾦␇, q␇꾦␇);
+Test_N(q␇꾧␇, q␇꾧␇, q␇꾧␇, q␇꾧␇, q␇꾧␇);
+Test_N(q␇꾨␇, q␇꾨␇, q␇꾨␇, q␇꾨␇, q␇꾨␇);
+Test_N(q␇꾩␇, q␇꾩␇, q␇꾩␇, q␇꾩␇, q␇꾩␇);
+Test_N(q␇꾪␇, q␇꾪␇, q␇꾪␇, q␇꾪␇, q␇꾪␇);
+Test_N(q␇꾫␇, q␇꾫␇, q␇꾫␇, q␇꾫␇, q␇꾫␇);
+Test_N(q␇꾬␇, q␇꾬␇, q␇꾬␇, q␇꾬␇, q␇꾬␇);
+Test_N(q␇꾭␇, q␇꾭␇, q␇꾭␇, q␇꾭␇, q␇꾭␇);
+Test_N(q␇꾮␇, q␇꾮␇, q␇꾮␇, q␇꾮␇, q␇꾮␇);
+Test_N(q␇꾯␇, q␇꾯␇, q␇꾯␇, q␇꾯␇, q␇꾯␇);
+Test_N(q␇꾰␇, q␇꾰␇, q␇꾰␇, q␇꾰␇, q␇꾰␇);
+Test_N(q␇꾱␇, q␇꾱␇, q␇꾱␇, q␇꾱␇, q␇꾱␇);
+Test_N(q␇꾲␇, q␇꾲␇, q␇꾲␇, q␇꾲␇, q␇꾲␇);
+Test_N(q␇꾳␇, q␇꾳␇, q␇꾳␇, q␇꾳␇, q␇꾳␇);
+Test_N(q␇꾴␇, q␇꾴␇, q␇꾴␇, q␇꾴␇, q␇꾴␇);
+Test_N(q␇꾵␇, q␇꾵␇, q␇꾵␇, q␇꾵␇, q␇꾵␇);
+Test_N(q␇꾶␇, q␇꾶␇, q␇꾶␇, q␇꾶␇, q␇꾶␇);
+Test_N(q␇꾷␇, q␇꾷␇, q␇꾷␇, q␇꾷␇, q␇꾷␇);
+Test_N(q␇꾸␇, q␇꾸␇, q␇꾸␇, q␇꾸␇, q␇꾸␇);
+Test_N(q␇꾹␇, q␇꾹␇, q␇꾹␇, q␇꾹␇, q␇꾹␇);
+Test_N(q␇꾺␇, q␇꾺␇, q␇꾺␇, q␇꾺␇, q␇꾺␇);
+Test_N(q␇꾻␇, q␇꾻␇, q␇꾻␇, q␇꾻␇, q␇꾻␇);
+Test_N(q␇꾼␇, q␇꾼␇, q␇꾼␇, q␇꾼␇, q␇꾼␇);
+Test_N(q␇꾽␇, q␇꾽␇, q␇꾽␇, q␇꾽␇, q␇꾽␇);
+Test_N(q␇꾾␇, q␇꾾␇, q␇꾾␇, q␇꾾␇, q␇꾾␇);
+Test_N(q␇꾿␇, q␇꾿␇, q␇꾿␇, q␇꾿␇, q␇꾿␇);
+Test_N(q␇꿀␇, q␇꿀␇, q␇꿀␇, q␇꿀␇, q␇꿀␇);
+Test_N(q␇꿁␇, q␇꿁␇, q␇꿁␇, q␇꿁␇, q␇꿁␇);
+Test_N(q␇꿂␇, q␇꿂␇, q␇꿂␇, q␇꿂␇, q␇꿂␇);
+Test_N(q␇꿃␇, q␇꿃␇, q␇꿃␇, q␇꿃␇, q␇꿃␇);
+Test_N(q␇꿄␇, q␇꿄␇, q␇꿄␇, q␇꿄␇, q␇꿄␇);
+Test_N(q␇꿅␇, q␇꿅␇, q␇꿅␇, q␇꿅␇, q␇꿅␇);
+Test_N(q␇꿆␇, q␇꿆␇, q␇꿆␇, q␇꿆␇, q␇꿆␇);
+Test_N(q␇꿇␇, q␇꿇␇, q␇꿇␇, q␇꿇␇, q␇꿇␇);
+Test_N(q␇꿈␇, q␇꿈␇, q␇꿈␇, q␇꿈␇, q␇꿈␇);
+Test_N(q␇꿉␇, q␇꿉␇, q␇꿉␇, q␇꿉␇, q␇꿉␇);
+Test_N(q␇꿊␇, q␇꿊␇, q␇꿊␇, q␇꿊␇, q␇꿊␇);
+Test_N(q␇꿋␇, q␇꿋␇, q␇꿋␇, q␇꿋␇, q␇꿋␇);
+Test_N(q␇꿌␇, q␇꿌␇, q␇꿌␇, q␇꿌␇, q␇꿌␇);
+Test_N(q␇꿍␇, q␇꿍␇, q␇꿍␇, q␇꿍␇, q␇꿍␇);
+Test_N(q␇꿎␇, q␇꿎␇, q␇꿎␇, q␇꿎␇, q␇꿎␇);
+Test_N(q␇꿏␇, q␇꿏␇, q␇꿏␇, q␇꿏␇, q␇꿏␇);
+Test_N(q␇꿐␇, q␇꿐␇, q␇꿐␇, q␇꿐␇, q␇꿐␇);
+Test_N(q␇꿑␇, q␇꿑␇, q␇꿑␇, q␇꿑␇, q␇꿑␇);
+Test_N(q␇꿒␇, q␇꿒␇, q␇꿒␇, q␇꿒␇, q␇꿒␇);
+Test_N(q␇꿓␇, q␇꿓␇, q␇꿓␇, q␇꿓␇, q␇꿓␇);
+Test_N(q␇꿔␇, q␇꿔␇, q␇꿔␇, q␇꿔␇, q␇꿔␇);
+Test_N(q␇꿕␇, q␇꿕␇, q␇꿕␇, q␇꿕␇, q␇꿕␇);
+Test_N(q␇꿖␇, q␇꿖␇, q␇꿖␇, q␇꿖␇, q␇꿖␇);
+Test_N(q␇꿗␇, q␇꿗␇, q␇꿗␇, q␇꿗␇, q␇꿗␇);
+Test_N(q␇꿘␇, q␇꿘␇, q␇꿘␇, q␇꿘␇, q␇꿘␇);
+Test_N(q␇꿙␇, q␇꿙␇, q␇꿙␇, q␇꿙␇, q␇꿙␇);
+Test_N(q␇꿚␇, q␇꿚␇, q␇꿚␇, q␇꿚␇, q␇꿚␇);
+Test_N(q␇꿛␇, q␇꿛␇, q␇꿛␇, q␇꿛␇, q␇꿛␇);
+Test_N(q␇꿜␇, q␇꿜␇, q␇꿜␇, q␇꿜␇, q␇꿜␇);
+Test_N(q␇꿝␇, q␇꿝␇, q␇꿝␇, q␇꿝␇, q␇꿝␇);
+Test_N(q␇꿞␇, q␇꿞␇, q␇꿞␇, q␇꿞␇, q␇꿞␇);
+Test_N(q␇꿟␇, q␇꿟␇, q␇꿟␇, q␇꿟␇, q␇꿟␇);
+Test_N(q␇꿠␇, q␇꿠␇, q␇꿠␇, q␇꿠␇, q␇꿠␇);
+Test_N(q␇꿡␇, q␇꿡␇, q␇꿡␇, q␇꿡␇, q␇꿡␇);
+Test_N(q␇꿢␇, q␇꿢␇, q␇꿢␇, q␇꿢␇, q␇꿢␇);
+Test_N(q␇꿣␇, q␇꿣␇, q␇꿣␇, q␇꿣␇, q␇꿣␇);
+Test_N(q␇꿤␇, q␇꿤␇, q␇꿤␇, q␇꿤␇, q␇꿤␇);
+Test_N(q␇꿥␇, q␇꿥␇, q␇꿥␇, q␇꿥␇, q␇꿥␇);
+Test_N(q␇꿦␇, q␇꿦␇, q␇꿦␇, q␇꿦␇, q␇꿦␇);
+Test_N(q␇꿧␇, q␇꿧␇, q␇꿧␇, q␇꿧␇, q␇꿧␇);
+Test_N(q␇꿨␇, q␇꿨␇, q␇꿨␇, q␇꿨␇, q␇꿨␇);
+Test_N(q␇꿩␇, q␇꿩␇, q␇꿩␇, q␇꿩␇, q␇꿩␇);
+Test_N(q␇꿪␇, q␇꿪␇, q␇꿪␇, q␇꿪␇, q␇꿪␇);
+Test_N(q␇꿫␇, q␇꿫␇, q␇꿫␇, q␇꿫␇, q␇꿫␇);
+Test_N(q␇꿬␇, q␇꿬␇, q␇꿬␇, q␇꿬␇, q␇꿬␇);
+Test_N(q␇꿭␇, q␇꿭␇, q␇꿭␇, q␇꿭␇, q␇꿭␇);
+Test_N(q␇꿮␇, q␇꿮␇, q␇꿮␇, q␇꿮␇, q␇꿮␇);
+Test_N(q␇꿯␇, q␇꿯␇, q␇꿯␇, q␇꿯␇, q␇꿯␇);
+Test_N(q␇꿰␇, q␇꿰␇, q␇꿰␇, q␇꿰␇, q␇꿰␇);
+Test_N(q␇꿱␇, q␇꿱␇, q␇꿱␇, q␇꿱␇, q␇꿱␇);
+Test_N(q␇꿲␇, q␇꿲␇, q␇꿲␇, q␇꿲␇, q␇꿲␇);
+Test_N(q␇꿳␇, q␇꿳␇, q␇꿳␇, q␇꿳␇, q␇꿳␇);
+Test_N(q␇꿴␇, q␇꿴␇, q␇꿴␇, q␇꿴␇, q␇꿴␇);
+Test_N(q␇꿵␇, q␇꿵␇, q␇꿵␇, q␇꿵␇, q␇꿵␇);
+Test_N(q␇꿶␇, q␇꿶␇, q␇꿶␇, q␇꿶␇, q␇꿶␇);
+Test_N(q␇꿷␇, q␇꿷␇, q␇꿷␇, q␇꿷␇, q␇꿷␇);
+Test_N(q␇꿸␇, q␇꿸␇, q␇꿸␇, q␇꿸␇, q␇꿸␇);
+Test_N(q␇꿹␇, q␇꿹␇, q␇꿹␇, q␇꿹␇, q␇꿹␇);
+Test_N(q␇꿺␇, q␇꿺␇, q␇꿺␇, q␇꿺␇, q␇꿺␇);
+Test_N(q␇꿻␇, q␇꿻␇, q␇꿻␇, q␇꿻␇, q␇꿻␇);
+Test_N(q␇꿼␇, q␇꿼␇, q␇꿼␇, q␇꿼␇, q␇꿼␇);
+Test_N(q␇꿽␇, q␇꿽␇, q␇꿽␇, q␇꿽␇, q␇꿽␇);
+Test_N(q␇꿾␇, q␇꿾␇, q␇꿾␇, q␇꿾␇, q␇꿾␇);
+Test_N(q␇꿿␇, q␇꿿␇, q␇꿿␇, q␇꿿␇, q␇꿿␇);
+Test_N(q␇뀀␇, q␇뀀␇, q␇뀀␇, q␇뀀␇, q␇뀀␇);
+Test_N(q␇뀁␇, q␇뀁␇, q␇뀁␇, q␇뀁␇, q␇뀁␇);
+Test_N(q␇뀂␇, q␇뀂␇, q␇뀂␇, q␇뀂␇, q␇뀂␇);
+Test_N(q␇뀃␇, q␇뀃␇, q␇뀃␇, q␇뀃␇, q␇뀃␇);
+Test_N(q␇뀄␇, q␇뀄␇, q␇뀄␇, q␇뀄␇, q␇뀄␇);
+Test_N(q␇뀅␇, q␇뀅␇, q␇뀅␇, q␇뀅␇, q␇뀅␇);
+Test_N(q␇뀆␇, q␇뀆␇, q␇뀆␇, q␇뀆␇, q␇뀆␇);
+Test_N(q␇뀇␇, q␇뀇␇, q␇뀇␇, q␇뀇␇, q␇뀇␇);
+Test_N(q␇뀈␇, q␇뀈␇, q␇뀈␇, q␇뀈␇, q␇뀈␇);
+Test_N(q␇뀉␇, q␇뀉␇, q␇뀉␇, q␇뀉␇, q␇뀉␇);
+Test_N(q␇뀊␇, q␇뀊␇, q␇뀊␇, q␇뀊␇, q␇뀊␇);
+Test_N(q␇뀋␇, q␇뀋␇, q␇뀋␇, q␇뀋␇, q␇뀋␇);
+Test_N(q␇뀌␇, q␇뀌␇, q␇뀌␇, q␇뀌␇, q␇뀌␇);
+Test_N(q␇뀍␇, q␇뀍␇, q␇뀍␇, q␇뀍␇, q␇뀍␇);
+Test_N(q␇뀎␇, q␇뀎␇, q␇뀎␇, q␇뀎␇, q␇뀎␇);
+Test_N(q␇뀏␇, q␇뀏␇, q␇뀏␇, q␇뀏␇, q␇뀏␇);
+Test_N(q␇뀐␇, q␇뀐␇, q␇뀐␇, q␇뀐␇, q␇뀐␇);
+Test_N(q␇뀑␇, q␇뀑␇, q␇뀑␇, q␇뀑␇, q␇뀑␇);
+Test_N(q␇뀒␇, q␇뀒␇, q␇뀒␇, q␇뀒␇, q␇뀒␇);
+Test_N(q␇뀓␇, q␇뀓␇, q␇뀓␇, q␇뀓␇, q␇뀓␇);
+Test_N(q␇뀔␇, q␇뀔␇, q␇뀔␇, q␇뀔␇, q␇뀔␇);
+Test_N(q␇뀕␇, q␇뀕␇, q␇뀕␇, q␇뀕␇, q␇뀕␇);
+Test_N(q␇뀖␇, q␇뀖␇, q␇뀖␇, q␇뀖␇, q␇뀖␇);
+Test_N(q␇뀗␇, q␇뀗␇, q␇뀗␇, q␇뀗␇, q␇뀗␇);
+Test_N(q␇뀘␇, q␇뀘␇, q␇뀘␇, q␇뀘␇, q␇뀘␇);
+Test_N(q␇뀙␇, q␇뀙␇, q␇뀙␇, q␇뀙␇, q␇뀙␇);
+Test_N(q␇뀚␇, q␇뀚␇, q␇뀚␇, q␇뀚␇, q␇뀚␇);
+Test_N(q␇뀛␇, q␇뀛␇, q␇뀛␇, q␇뀛␇, q␇뀛␇);
+Test_N(q␇뀜␇, q␇뀜␇, q␇뀜␇, q␇뀜␇, q␇뀜␇);
+Test_N(q␇뀝␇, q␇뀝␇, q␇뀝␇, q␇뀝␇, q␇뀝␇);
+Test_N(q␇뀞␇, q␇뀞␇, q␇뀞␇, q␇뀞␇, q␇뀞␇);
+Test_N(q␇뀟␇, q␇뀟␇, q␇뀟␇, q␇뀟␇, q␇뀟␇);
+Test_N(q␇뀠␇, q␇뀠␇, q␇뀠␇, q␇뀠␇, q␇뀠␇);
+Test_N(q␇뀡␇, q␇뀡␇, q␇뀡␇, q␇뀡␇, q␇뀡␇);
+Test_N(q␇뀢␇, q␇뀢␇, q␇뀢␇, q␇뀢␇, q␇뀢␇);
+Test_N(q␇뀣␇, q␇뀣␇, q␇뀣␇, q␇뀣␇, q␇뀣␇);
+Test_N(q␇뀤␇, q␇뀤␇, q␇뀤␇, q␇뀤␇, q␇뀤␇);
+Test_N(q␇뀥␇, q␇뀥␇, q␇뀥␇, q␇뀥␇, q␇뀥␇);
+Test_N(q␇뀦␇, q␇뀦␇, q␇뀦␇, q␇뀦␇, q␇뀦␇);
+Test_N(q␇뀧␇, q␇뀧␇, q␇뀧␇, q␇뀧␇, q␇뀧␇);
+Test_N(q␇뀨␇, q␇뀨␇, q␇뀨␇, q␇뀨␇, q␇뀨␇);
+Test_N(q␇뀩␇, q␇뀩␇, q␇뀩␇, q␇뀩␇, q␇뀩␇);
+Test_N(q␇뀪␇, q␇뀪␇, q␇뀪␇, q␇뀪␇, q␇뀪␇);
+Test_N(q␇뀫␇, q␇뀫␇, q␇뀫␇, q␇뀫␇, q␇뀫␇);
+Test_N(q␇뀬␇, q␇뀬␇, q␇뀬␇, q␇뀬␇, q␇뀬␇);
+Test_N(q␇뀭␇, q␇뀭␇, q␇뀭␇, q␇뀭␇, q␇뀭␇);
+Test_N(q␇뀮␇, q␇뀮␇, q␇뀮␇, q␇뀮␇, q␇뀮␇);
+Test_N(q␇뀯␇, q␇뀯␇, q␇뀯␇, q␇뀯␇, q␇뀯␇);
+Test_N(q␇뀰␇, q␇뀰␇, q␇뀰␇, q␇뀰␇, q␇뀰␇);
+Test_N(q␇뀱␇, q␇뀱␇, q␇뀱␇, q␇뀱␇, q␇뀱␇);
+Test_N(q␇뀲␇, q␇뀲␇, q␇뀲␇, q␇뀲␇, q␇뀲␇);
+Test_N(q␇뀳␇, q␇뀳␇, q␇뀳␇, q␇뀳␇, q␇뀳␇);
+Test_N(q␇뀴␇, q␇뀴␇, q␇뀴␇, q␇뀴␇, q␇뀴␇);
+Test_N(q␇뀵␇, q␇뀵␇, q␇뀵␇, q␇뀵␇, q␇뀵␇);
+Test_N(q␇뀶␇, q␇뀶␇, q␇뀶␇, q␇뀶␇, q␇뀶␇);
+Test_N(q␇뀷␇, q␇뀷␇, q␇뀷␇, q␇뀷␇, q␇뀷␇);
+Test_N(q␇뀸␇, q␇뀸␇, q␇뀸␇, q␇뀸␇, q␇뀸␇);
+Test_N(q␇뀹␇, q␇뀹␇, q␇뀹␇, q␇뀹␇, q␇뀹␇);
+Test_N(q␇뀺␇, q␇뀺␇, q␇뀺␇, q␇뀺␇, q␇뀺␇);
+Test_N(q␇뀻␇, q␇뀻␇, q␇뀻␇, q␇뀻␇, q␇뀻␇);
+Test_N(q␇뀼␇, q␇뀼␇, q␇뀼␇, q␇뀼␇, q␇뀼␇);
+Test_N(q␇뀽␇, q␇뀽␇, q␇뀽␇, q␇뀽␇, q␇뀽␇);
+Test_N(q␇뀾␇, q␇뀾␇, q␇뀾␇, q␇뀾␇, q␇뀾␇);
+Test_N(q␇뀿␇, q␇뀿␇, q␇뀿␇, q␇뀿␇, q␇뀿␇);
+Test_N(q␇끀␇, q␇끀␇, q␇끀␇, q␇끀␇, q␇끀␇);
+Test_N(q␇끁␇, q␇끁␇, q␇끁␇, q␇끁␇, q␇끁␇);
+Test_N(q␇끂␇, q␇끂␇, q␇끂␇, q␇끂␇, q␇끂␇);
+Test_N(q␇끃␇, q␇끃␇, q␇끃␇, q␇끃␇, q␇끃␇);
+Test_N(q␇끄␇, q␇끄␇, q␇끄␇, q␇끄␇, q␇끄␇);
+Test_N(q␇끅␇, q␇끅␇, q␇끅␇, q␇끅␇, q␇끅␇);
+Test_N(q␇끆␇, q␇끆␇, q␇끆␇, q␇끆␇, q␇끆␇);
+Test_N(q␇끇␇, q␇끇␇, q␇끇␇, q␇끇␇, q␇끇␇);
+Test_N(q␇끈␇, q␇끈␇, q␇끈␇, q␇끈␇, q␇끈␇);
+Test_N(q␇끉␇, q␇끉␇, q␇끉␇, q␇끉␇, q␇끉␇);
+Test_N(q␇끊␇, q␇끊␇, q␇끊␇, q␇끊␇, q␇끊␇);
+Test_N(q␇끋␇, q␇끋␇, q␇끋␇, q␇끋␇, q␇끋␇);
+Test_N(q␇끌␇, q␇끌␇, q␇끌␇, q␇끌␇, q␇끌␇);
+Test_N(q␇끍␇, q␇끍␇, q␇끍␇, q␇끍␇, q␇끍␇);
+Test_N(q␇끎␇, q␇끎␇, q␇끎␇, q␇끎␇, q␇끎␇);
+Test_N(q␇끏␇, q␇끏␇, q␇끏␇, q␇끏␇, q␇끏␇);
+Test_N(q␇끐␇, q␇끐␇, q␇끐␇, q␇끐␇, q␇끐␇);
+Test_N(q␇끑␇, q␇끑␇, q␇끑␇, q␇끑␇, q␇끑␇);
+Test_N(q␇끒␇, q␇끒␇, q␇끒␇, q␇끒␇, q␇끒␇);
+Test_N(q␇끓␇, q␇끓␇, q␇끓␇, q␇끓␇, q␇끓␇);
+Test_N(q␇끔␇, q␇끔␇, q␇끔␇, q␇끔␇, q␇끔␇);
+Test_N(q␇끕␇, q␇끕␇, q␇끕␇, q␇끕␇, q␇끕␇);
+Test_N(q␇끖␇, q␇끖␇, q␇끖␇, q␇끖␇, q␇끖␇);
+Test_N(q␇끗␇, q␇끗␇, q␇끗␇, q␇끗␇, q␇끗␇);
+Test_N(q␇끘␇, q␇끘␇, q␇끘␇, q␇끘␇, q␇끘␇);
+Test_N(q␇끙␇, q␇끙␇, q␇끙␇, q␇끙␇, q␇끙␇);
+Test_N(q␇끚␇, q␇끚␇, q␇끚␇, q␇끚␇, q␇끚␇);
+Test_N(q␇끛␇, q␇끛␇, q␇끛␇, q␇끛␇, q␇끛␇);
+Test_N(q␇끜␇, q␇끜␇, q␇끜␇, q␇끜␇, q␇끜␇);
+Test_N(q␇끝␇, q␇끝␇, q␇끝␇, q␇끝␇, q␇끝␇);
+Test_N(q␇끞␇, q␇끞␇, q␇끞␇, q␇끞␇, q␇끞␇);
+Test_N(q␇끟␇, q␇끟␇, q␇끟␇, q␇끟␇, q␇끟␇);
+Test_N(q␇끠␇, q␇끠␇, q␇끠␇, q␇끠␇, q␇끠␇);
+Test_N(q␇끡␇, q␇끡␇, q␇끡␇, q␇끡␇, q␇끡␇);
+Test_N(q␇끢␇, q␇끢␇, q␇끢␇, q␇끢␇, q␇끢␇);
+Test_N(q␇끣␇, q␇끣␇, q␇끣␇, q␇끣␇, q␇끣␇);
+Test_N(q␇끤␇, q␇끤␇, q␇끤␇, q␇끤␇, q␇끤␇);
+Test_N(q␇끥␇, q␇끥␇, q␇끥␇, q␇끥␇, q␇끥␇);
+Test_N(q␇끦␇, q␇끦␇, q␇끦␇, q␇끦␇, q␇끦␇);
+Test_N(q␇끧␇, q␇끧␇, q␇끧␇, q␇끧␇, q␇끧␇);
+Test_N(q␇끨␇, q␇끨␇, q␇끨␇, q␇끨␇, q␇끨␇);
+Test_N(q␇끩␇, q␇끩␇, q␇끩␇, q␇끩␇, q␇끩␇);
+Test_N(q␇끪␇, q␇끪␇, q␇끪␇, q␇끪␇, q␇끪␇);
+Test_N(q␇끫␇, q␇끫␇, q␇끫␇, q␇끫␇, q␇끫␇);
+Test_N(q␇끬␇, q␇끬␇, q␇끬␇, q␇끬␇, q␇끬␇);
+Test_N(q␇끭␇, q␇끭␇, q␇끭␇, q␇끭␇, q␇끭␇);
+Test_N(q␇끮␇, q␇끮␇, q␇끮␇, q␇끮␇, q␇끮␇);
+Test_N(q␇끯␇, q␇끯␇, q␇끯␇, q␇끯␇, q␇끯␇);
+Test_N(q␇끰␇, q␇끰␇, q␇끰␇, q␇끰␇, q␇끰␇);
+Test_N(q␇끱␇, q␇끱␇, q␇끱␇, q␇끱␇, q␇끱␇);
+Test_N(q␇끲␇, q␇끲␇, q␇끲␇, q␇끲␇, q␇끲␇);
+Test_N(q␇끳␇, q␇끳␇, q␇끳␇, q␇끳␇, q␇끳␇);
+Test_N(q␇끴␇, q␇끴␇, q␇끴␇, q␇끴␇, q␇끴␇);
+Test_N(q␇끵␇, q␇끵␇, q␇끵␇, q␇끵␇, q␇끵␇);
+Test_N(q␇끶␇, q␇끶␇, q␇끶␇, q␇끶␇, q␇끶␇);
+Test_N(q␇끷␇, q␇끷␇, q␇끷␇, q␇끷␇, q␇끷␇);
+Test_N(q␇끸␇, q␇끸␇, q␇끸␇, q␇끸␇, q␇끸␇);
+Test_N(q␇끹␇, q␇끹␇, q␇끹␇, q␇끹␇, q␇끹␇);
+Test_N(q␇끺␇, q␇끺␇, q␇끺␇, q␇끺␇, q␇끺␇);
+Test_N(q␇끻␇, q␇끻␇, q␇끻␇, q␇끻␇, q␇끻␇);
+Test_N(q␇끼␇, q␇끼␇, q␇끼␇, q␇끼␇, q␇끼␇);
+Test_N(q␇끽␇, q␇끽␇, q␇끽␇, q␇끽␇, q␇끽␇);
+Test_N(q␇끾␇, q␇끾␇, q␇끾␇, q␇끾␇, q␇끾␇);
+Test_N(q␇끿␇, q␇끿␇, q␇끿␇, q␇끿␇, q␇끿␇);
+Test_N(q␇낀␇, q␇낀␇, q␇낀␇, q␇낀␇, q␇낀␇);
+Test_N(q␇낁␇, q␇낁␇, q␇낁␇, q␇낁␇, q␇낁␇);
+Test_N(q␇낂␇, q␇낂␇, q␇낂␇, q␇낂␇, q␇낂␇);
+Test_N(q␇낃␇, q␇낃␇, q␇낃␇, q␇낃␇, q␇낃␇);
+Test_N(q␇낄␇, q␇낄␇, q␇낄␇, q␇낄␇, q␇낄␇);
+Test_N(q␇낅␇, q␇낅␇, q␇낅␇, q␇낅␇, q␇낅␇);
+Test_N(q␇낆␇, q␇낆␇, q␇낆␇, q␇낆␇, q␇낆␇);
+Test_N(q␇낇␇, q␇낇␇, q␇낇␇, q␇낇␇, q␇낇␇);
+Test_N(q␇낈␇, q␇낈␇, q␇낈␇, q␇낈␇, q␇낈␇);
+Test_N(q␇낉␇, q␇낉␇, q␇낉␇, q␇낉␇, q␇낉␇);
+Test_N(q␇낊␇, q␇낊␇, q␇낊␇, q␇낊␇, q␇낊␇);
+Test_N(q␇낋␇, q␇낋␇, q␇낋␇, q␇낋␇, q␇낋␇);
+Test_N(q␇낌␇, q␇낌␇, q␇낌␇, q␇낌␇, q␇낌␇);
+Test_N(q␇낍␇, q␇낍␇, q␇낍␇, q␇낍␇, q␇낍␇);
+Test_N(q␇낎␇, q␇낎␇, q␇낎␇, q␇낎␇, q␇낎␇);
+Test_N(q␇낏␇, q␇낏␇, q␇낏␇, q␇낏␇, q␇낏␇);
+Test_N(q␇낐␇, q␇낐␇, q␇낐␇, q␇낐␇, q␇낐␇);
+Test_N(q␇낑␇, q␇낑␇, q␇낑␇, q␇낑␇, q␇낑␇);
+Test_N(q␇낒␇, q␇낒␇, q␇낒␇, q␇낒␇, q␇낒␇);
+Test_N(q␇낓␇, q␇낓␇, q␇낓␇, q␇낓␇, q␇낓␇);
+Test_N(q␇낔␇, q␇낔␇, q␇낔␇, q␇낔␇, q␇낔␇);
+Test_N(q␇낕␇, q␇낕␇, q␇낕␇, q␇낕␇, q␇낕␇);
+Test_N(q␇낖␇, q␇낖␇, q␇낖␇, q␇낖␇, q␇낖␇);
+Test_N(q␇낗␇, q␇낗␇, q␇낗␇, q␇낗␇, q␇낗␇);
+Test_N(q␇나␇, q␇나␇, q␇나␇, q␇나␇, q␇나␇);
+Test_N(q␇낙␇, q␇낙␇, q␇낙␇, q␇낙␇, q␇낙␇);
+Test_N(q␇낚␇, q␇낚␇, q␇낚␇, q␇낚␇, q␇낚␇);
+Test_N(q␇낛␇, q␇낛␇, q␇낛␇, q␇낛␇, q␇낛␇);
+Test_N(q␇난␇, q␇난␇, q␇난␇, q␇난␇, q␇난␇);
+Test_N(q␇낝␇, q␇낝␇, q␇낝␇, q␇낝␇, q␇낝␇);
+Test_N(q␇낞␇, q␇낞␇, q␇낞␇, q␇낞␇, q␇낞␇);
+Test_N(q␇낟␇, q␇낟␇, q␇낟␇, q␇낟␇, q␇낟␇);
+Test_N(q␇날␇, q␇날␇, q␇날␇, q␇날␇, q␇날␇);
+Test_N(q␇낡␇, q␇낡␇, q␇낡␇, q␇낡␇, q␇낡␇);
+Test_N(q␇낢␇, q␇낢␇, q␇낢␇, q␇낢␇, q␇낢␇);
+Test_N(q␇낣␇, q␇낣␇, q␇낣␇, q␇낣␇, q␇낣␇);
+Test_N(q␇낤␇, q␇낤␇, q␇낤␇, q␇낤␇, q␇낤␇);
+Test_N(q␇낥␇, q␇낥␇, q␇낥␇, q␇낥␇, q␇낥␇);
+Test_N(q␇낦␇, q␇낦␇, q␇낦␇, q␇낦␇, q␇낦␇);
+Test_N(q␇낧␇, q␇낧␇, q␇낧␇, q␇낧␇, q␇낧␇);
+Test_N(q␇남␇, q␇남␇, q␇남␇, q␇남␇, q␇남␇);
+Test_N(q␇납␇, q␇납␇, q␇납␇, q␇납␇, q␇납␇);
+Test_N(q␇낪␇, q␇낪␇, q␇낪␇, q␇낪␇, q␇낪␇);
+Test_N(q␇낫␇, q␇낫␇, q␇낫␇, q␇낫␇, q␇낫␇);
+Test_N(q␇났␇, q␇났␇, q␇났␇, q␇났␇, q␇났␇);
+Test_N(q␇낭␇, q␇낭␇, q␇낭␇, q␇낭␇, q␇낭␇);
+Test_N(q␇낮␇, q␇낮␇, q␇낮␇, q␇낮␇, q␇낮␇);
+Test_N(q␇낯␇, q␇낯␇, q␇낯␇, q␇낯␇, q␇낯␇);
+Test_N(q␇낰␇, q␇낰␇, q␇낰␇, q␇낰␇, q␇낰␇);
+Test_N(q␇낱␇, q␇낱␇, q␇낱␇, q␇낱␇, q␇낱␇);
+Test_N(q␇낲␇, q␇낲␇, q␇낲␇, q␇낲␇, q␇낲␇);
+Test_N(q␇낳␇, q␇낳␇, q␇낳␇, q␇낳␇, q␇낳␇);
+Test_N(q␇내␇, q␇내␇, q␇내␇, q␇내␇, q␇내␇);
+Test_N(q␇낵␇, q␇낵␇, q␇낵␇, q␇낵␇, q␇낵␇);
+Test_N(q␇낶␇, q␇낶␇, q␇낶␇, q␇낶␇, q␇낶␇);
+Test_N(q␇낷␇, q␇낷␇, q␇낷␇, q␇낷␇, q␇낷␇);
+Test_N(q␇낸␇, q␇낸␇, q␇낸␇, q␇낸␇, q␇낸␇);
+Test_N(q␇낹␇, q␇낹␇, q␇낹␇, q␇낹␇, q␇낹␇);
+Test_N(q␇낺␇, q␇낺␇, q␇낺␇, q␇낺␇, q␇낺␇);
+Test_N(q␇낻␇, q␇낻␇, q␇낻␇, q␇낻␇, q␇낻␇);
+Test_N(q␇낼␇, q␇낼␇, q␇낼␇, q␇낼␇, q␇낼␇);
+Test_N(q␇낽␇, q␇낽␇, q␇낽␇, q␇낽␇, q␇낽␇);
+Test_N(q␇낾␇, q␇낾␇, q␇낾␇, q␇낾␇, q␇낾␇);
+Test_N(q␇낿␇, q␇낿␇, q␇낿␇, q␇낿␇, q␇낿␇);
+Test_N(q␇냀␇, q␇냀␇, q␇냀␇, q␇냀␇, q␇냀␇);
+Test_N(q␇냁␇, q␇냁␇, q␇냁␇, q␇냁␇, q␇냁␇);
+Test_N(q␇냂␇, q␇냂␇, q␇냂␇, q␇냂␇, q␇냂␇);
+Test_N(q␇냃␇, q␇냃␇, q␇냃␇, q␇냃␇, q␇냃␇);
+Test_N(q␇냄␇, q␇냄␇, q␇냄␇, q␇냄␇, q␇냄␇);
+Test_N(q␇냅␇, q␇냅␇, q␇냅␇, q␇냅␇, q␇냅␇);
+Test_N(q␇냆␇, q␇냆␇, q␇냆␇, q␇냆␇, q␇냆␇);
+Test_N(q␇냇␇, q␇냇␇, q␇냇␇, q␇냇␇, q␇냇␇);
+Test_N(q␇냈␇, q␇냈␇, q␇냈␇, q␇냈␇, q␇냈␇);
+Test_N(q␇냉␇, q␇냉␇, q␇냉␇, q␇냉␇, q␇냉␇);
+Test_N(q␇냊␇, q␇냊␇, q␇냊␇, q␇냊␇, q␇냊␇);
+Test_N(q␇냋␇, q␇냋␇, q␇냋␇, q␇냋␇, q␇냋␇);
+Test_N(q␇냌␇, q␇냌␇, q␇냌␇, q␇냌␇, q␇냌␇);
+Test_N(q␇냍␇, q␇냍␇, q␇냍␇, q␇냍␇, q␇냍␇);
+Test_N(q␇냎␇, q␇냎␇, q␇냎␇, q␇냎␇, q␇냎␇);
+Test_N(q␇냏␇, q␇냏␇, q␇냏␇, q␇냏␇, q␇냏␇);
+Test_N(q␇냐␇, q␇냐␇, q␇냐␇, q␇냐␇, q␇냐␇);
+Test_N(q␇냑␇, q␇냑␇, q␇냑␇, q␇냑␇, q␇냑␇);
+Test_N(q␇냒␇, q␇냒␇, q␇냒␇, q␇냒␇, q␇냒␇);
+Test_N(q␇냓␇, q␇냓␇, q␇냓␇, q␇냓␇, q␇냓␇);
+Test_N(q␇냔␇, q␇냔␇, q␇냔␇, q␇냔␇, q␇냔␇);
+Test_N(q␇냕␇, q␇냕␇, q␇냕␇, q␇냕␇, q␇냕␇);
+Test_N(q␇냖␇, q␇냖␇, q␇냖␇, q␇냖␇, q␇냖␇);
+Test_N(q␇냗␇, q␇냗␇, q␇냗␇, q␇냗␇, q␇냗␇);
+Test_N(q␇냘␇, q␇냘␇, q␇냘␇, q␇냘␇, q␇냘␇);
+Test_N(q␇냙␇, q␇냙␇, q␇냙␇, q␇냙␇, q␇냙␇);
+Test_N(q␇냚␇, q␇냚␇, q␇냚␇, q␇냚␇, q␇냚␇);
+Test_N(q␇냛␇, q␇냛␇, q␇냛␇, q␇냛␇, q␇냛␇);
+Test_N(q␇냜␇, q␇냜␇, q␇냜␇, q␇냜␇, q␇냜␇);
+Test_N(q␇냝␇, q␇냝␇, q␇냝␇, q␇냝␇, q␇냝␇);
+Test_N(q␇냞␇, q␇냞␇, q␇냞␇, q␇냞␇, q␇냞␇);
+Test_N(q␇냟␇, q␇냟␇, q␇냟␇, q␇냟␇, q␇냟␇);
+Test_N(q␇냠␇, q␇냠␇, q␇냠␇, q␇냠␇, q␇냠␇);
+Test_N(q␇냡␇, q␇냡␇, q␇냡␇, q␇냡␇, q␇냡␇);
+Test_N(q␇냢␇, q␇냢␇, q␇냢␇, q␇냢␇, q␇냢␇);
+Test_N(q␇냣␇, q␇냣␇, q␇냣␇, q␇냣␇, q␇냣␇);
+Test_N(q␇냤␇, q␇냤␇, q␇냤␇, q␇냤␇, q␇냤␇);
+Test_N(q␇냥␇, q␇냥␇, q␇냥␇, q␇냥␇, q␇냥␇);
+Test_N(q␇냦␇, q␇냦␇, q␇냦␇, q␇냦␇, q␇냦␇);
+Test_N(q␇냧␇, q␇냧␇, q␇냧␇, q␇냧␇, q␇냧␇);
+Test_N(q␇냨␇, q␇냨␇, q␇냨␇, q␇냨␇, q␇냨␇);
+Test_N(q␇냩␇, q␇냩␇, q␇냩␇, q␇냩␇, q␇냩␇);
+Test_N(q␇냪␇, q␇냪␇, q␇냪␇, q␇냪␇, q␇냪␇);
+Test_N(q␇냫␇, q␇냫␇, q␇냫␇, q␇냫␇, q␇냫␇);
+Test_N(q␇냬␇, q␇냬␇, q␇냬␇, q␇냬␇, q␇냬␇);
+Test_N(q␇냭␇, q␇냭␇, q␇냭␇, q␇냭␇, q␇냭␇);
+Test_N(q␇냮␇, q␇냮␇, q␇냮␇, q␇냮␇, q␇냮␇);
+Test_N(q␇냯␇, q␇냯␇, q␇냯␇, q␇냯␇, q␇냯␇);
+Test_N(q␇냰␇, q␇냰␇, q␇냰␇, q␇냰␇, q␇냰␇);
+Test_N(q␇냱␇, q␇냱␇, q␇냱␇, q␇냱␇, q␇냱␇);
+Test_N(q␇냲␇, q␇냲␇, q␇냲␇, q␇냲␇, q␇냲␇);
+Test_N(q␇냳␇, q␇냳␇, q␇냳␇, q␇냳␇, q␇냳␇);
+Test_N(q␇냴␇, q␇냴␇, q␇냴␇, q␇냴␇, q␇냴␇);
+Test_N(q␇냵␇, q␇냵␇, q␇냵␇, q␇냵␇, q␇냵␇);
+Test_N(q␇냶␇, q␇냶␇, q␇냶␇, q␇냶␇, q␇냶␇);
+Test_N(q␇냷␇, q␇냷␇, q␇냷␇, q␇냷␇, q␇냷␇);
+Test_N(q␇냸␇, q␇냸␇, q␇냸␇, q␇냸␇, q␇냸␇);
+Test_N(q␇냹␇, q␇냹␇, q␇냹␇, q␇냹␇, q␇냹␇);
+Test_N(q␇냺␇, q␇냺␇, q␇냺␇, q␇냺␇, q␇냺␇);
+Test_N(q␇냻␇, q␇냻␇, q␇냻␇, q␇냻␇, q␇냻␇);
+Test_N(q␇냼␇, q␇냼␇, q␇냼␇, q␇냼␇, q␇냼␇);
+Test_N(q␇냽␇, q␇냽␇, q␇냽␇, q␇냽␇, q␇냽␇);
+Test_N(q␇냾␇, q␇냾␇, q␇냾␇, q␇냾␇, q␇냾␇);
+Test_N(q␇냿␇, q␇냿␇, q␇냿␇, q␇냿␇, q␇냿␇);
+Test_N(q␇넀␇, q␇넀␇, q␇넀␇, q␇넀␇, q␇넀␇);
+Test_N(q␇넁␇, q␇넁␇, q␇넁␇, q␇넁␇, q␇넁␇);
+Test_N(q␇넂␇, q␇넂␇, q␇넂␇, q␇넂␇, q␇넂␇);
+Test_N(q␇넃␇, q␇넃␇, q␇넃␇, q␇넃␇, q␇넃␇);
+Test_N(q␇넄␇, q␇넄␇, q␇넄␇, q␇넄␇, q␇넄␇);
+Test_N(q␇넅␇, q␇넅␇, q␇넅␇, q␇넅␇, q␇넅␇);
+Test_N(q␇넆␇, q␇넆␇, q␇넆␇, q␇넆␇, q␇넆␇);
+Test_N(q␇넇␇, q␇넇␇, q␇넇␇, q␇넇␇, q␇넇␇);
+Test_N(q␇너␇, q␇너␇, q␇너␇, q␇너␇, q␇너␇);
+Test_N(q␇넉␇, q␇넉␇, q␇넉␇, q␇넉␇, q␇넉␇);
+Test_N(q␇넊␇, q␇넊␇, q␇넊␇, q␇넊␇, q␇넊␇);
+Test_N(q␇넋␇, q␇넋␇, q␇넋␇, q␇넋␇, q␇넋␇);
+Test_N(q␇넌␇, q␇넌␇, q␇넌␇, q␇넌␇, q␇넌␇);
+Test_N(q␇넍␇, q␇넍␇, q␇넍␇, q␇넍␇, q␇넍␇);
+Test_N(q␇넎␇, q␇넎␇, q␇넎␇, q␇넎␇, q␇넎␇);
+Test_N(q␇넏␇, q␇넏␇, q␇넏␇, q␇넏␇, q␇넏␇);
+Test_N(q␇널␇, q␇널␇, q␇널␇, q␇널␇, q␇널␇);
+Test_N(q␇넑␇, q␇넑␇, q␇넑␇, q␇넑␇, q␇넑␇);
+Test_N(q␇넒␇, q␇넒␇, q␇넒␇, q␇넒␇, q␇넒␇);
+Test_N(q␇넓␇, q␇넓␇, q␇넓␇, q␇넓␇, q␇넓␇);
+Test_N(q␇넔␇, q␇넔␇, q␇넔␇, q␇넔␇, q␇넔␇);
+Test_N(q␇넕␇, q␇넕␇, q␇넕␇, q␇넕␇, q␇넕␇);
+Test_N(q␇넖␇, q␇넖␇, q␇넖␇, q␇넖␇, q␇넖␇);
+Test_N(q␇넗␇, q␇넗␇, q␇넗␇, q␇넗␇, q␇넗␇);
+Test_N(q␇넘␇, q␇넘␇, q␇넘␇, q␇넘␇, q␇넘␇);
+Test_N(q␇넙␇, q␇넙␇, q␇넙␇, q␇넙␇, q␇넙␇);
+Test_N(q␇넚␇, q␇넚␇, q␇넚␇, q␇넚␇, q␇넚␇);
+Test_N(q␇넛␇, q␇넛␇, q␇넛␇, q␇넛␇, q␇넛␇);
+Test_N(q␇넜␇, q␇넜␇, q␇넜␇, q␇넜␇, q␇넜␇);
+Test_N(q␇넝␇, q␇넝␇, q␇넝␇, q␇넝␇, q␇넝␇);
+Test_N(q␇넞␇, q␇넞␇, q␇넞␇, q␇넞␇, q␇넞␇);
+Test_N(q␇넟␇, q␇넟␇, q␇넟␇, q␇넟␇, q␇넟␇);
+Test_N(q␇넠␇, q␇넠␇, q␇넠␇, q␇넠␇, q␇넠␇);
+Test_N(q␇넡␇, q␇넡␇, q␇넡␇, q␇넡␇, q␇넡␇);
+Test_N(q␇넢␇, q␇넢␇, q␇넢␇, q␇넢␇, q␇넢␇);
+Test_N(q␇넣␇, q␇넣␇, q␇넣␇, q␇넣␇, q␇넣␇);
+Test_N(q␇네␇, q␇네␇, q␇네␇, q␇네␇, q␇네␇);
+Test_N(q␇넥␇, q␇넥␇, q␇넥␇, q␇넥␇, q␇넥␇);
+Test_N(q␇넦␇, q␇넦␇, q␇넦␇, q␇넦␇, q␇넦␇);
+Test_N(q␇넧␇, q␇넧␇, q␇넧␇, q␇넧␇, q␇넧␇);
+Test_N(q␇넨␇, q␇넨␇, q␇넨␇, q␇넨␇, q␇넨␇);
+Test_N(q␇넩␇, q␇넩␇, q␇넩␇, q␇넩␇, q␇넩␇);
+Test_N(q␇넪␇, q␇넪␇, q␇넪␇, q␇넪␇, q␇넪␇);
+Test_N(q␇넫␇, q␇넫␇, q␇넫␇, q␇넫␇, q␇넫␇);
+Test_N(q␇넬␇, q␇넬␇, q␇넬␇, q␇넬␇, q␇넬␇);
+Test_N(q␇넭␇, q␇넭␇, q␇넭␇, q␇넭␇, q␇넭␇);
+Test_N(q␇넮␇, q␇넮␇, q␇넮␇, q␇넮␇, q␇넮␇);
+Test_N(q␇넯␇, q␇넯␇, q␇넯␇, q␇넯␇, q␇넯␇);
+Test_N(q␇넰␇, q␇넰␇, q␇넰␇, q␇넰␇, q␇넰␇);
+Test_N(q␇넱␇, q␇넱␇, q␇넱␇, q␇넱␇, q␇넱␇);
+Test_N(q␇넲␇, q␇넲␇, q␇넲␇, q␇넲␇, q␇넲␇);
+Test_N(q␇넳␇, q␇넳␇, q␇넳␇, q␇넳␇, q␇넳␇);
+Test_N(q␇넴␇, q␇넴␇, q␇넴␇, q␇넴␇, q␇넴␇);
+Test_N(q␇넵␇, q␇넵␇, q␇넵␇, q␇넵␇, q␇넵␇);
+Test_N(q␇넶␇, q␇넶␇, q␇넶␇, q␇넶␇, q␇넶␇);
+Test_N(q␇넷␇, q␇넷␇, q␇넷␇, q␇넷␇, q␇넷␇);
+Test_N(q␇넸␇, q␇넸␇, q␇넸␇, q␇넸␇, q␇넸␇);
+Test_N(q␇넹␇, q␇넹␇, q␇넹␇, q␇넹␇, q␇넹␇);
+Test_N(q␇넺␇, q␇넺␇, q␇넺␇, q␇넺␇, q␇넺␇);
+Test_N(q␇넻␇, q␇넻␇, q␇넻␇, q␇넻␇, q␇넻␇);
+Test_N(q␇넼␇, q␇넼␇, q␇넼␇, q␇넼␇, q␇넼␇);
+Test_N(q␇넽␇, q␇넽␇, q␇넽␇, q␇넽␇, q␇넽␇);
+Test_N(q␇넾␇, q␇넾␇, q␇넾␇, q␇넾␇, q␇넾␇);
+Test_N(q␇넿␇, q␇넿␇, q␇넿␇, q␇넿␇, q␇넿␇);
+Test_N(q␇녀␇, q␇녀␇, q␇녀␇, q␇녀␇, q␇녀␇);
+Test_N(q␇녁␇, q␇녁␇, q␇녁␇, q␇녁␇, q␇녁␇);
+Test_N(q␇녂␇, q␇녂␇, q␇녂␇, q␇녂␇, q␇녂␇);
+Test_N(q␇녃␇, q␇녃␇, q␇녃␇, q␇녃␇, q␇녃␇);
+Test_N(q␇년␇, q␇년␇, q␇년␇, q␇년␇, q␇년␇);
+Test_N(q␇녅␇, q␇녅␇, q␇녅␇, q␇녅␇, q␇녅␇);
+Test_N(q␇녆␇, q␇녆␇, q␇녆␇, q␇녆␇, q␇녆␇);
+Test_N(q␇녇␇, q␇녇␇, q␇녇␇, q␇녇␇, q␇녇␇);
+Test_N(q␇녈␇, q␇녈␇, q␇녈␇, q␇녈␇, q␇녈␇);
+Test_N(q␇녉␇, q␇녉␇, q␇녉␇, q␇녉␇, q␇녉␇);
+Test_N(q␇녊␇, q␇녊␇, q␇녊␇, q␇녊␇, q␇녊␇);
+Test_N(q␇녋␇, q␇녋␇, q␇녋␇, q␇녋␇, q␇녋␇);
+Test_N(q␇녌␇, q␇녌␇, q␇녌␇, q␇녌␇, q␇녌␇);
+Test_N(q␇녍␇, q␇녍␇, q␇녍␇, q␇녍␇, q␇녍␇);
+Test_N(q␇녎␇, q␇녎␇, q␇녎␇, q␇녎␇, q␇녎␇);
+Test_N(q␇녏␇, q␇녏␇, q␇녏␇, q␇녏␇, q␇녏␇);
+Test_N(q␇념␇, q␇념␇, q␇념␇, q␇념␇, q␇념␇);
+Test_N(q␇녑␇, q␇녑␇, q␇녑␇, q␇녑␇, q␇녑␇);
+Test_N(q␇녒␇, q␇녒␇, q␇녒␇, q␇녒␇, q␇녒␇);
+Test_N(q␇녓␇, q␇녓␇, q␇녓␇, q␇녓␇, q␇녓␇);
+Test_N(q␇녔␇, q␇녔␇, q␇녔␇, q␇녔␇, q␇녔␇);
+Test_N(q␇녕␇, q␇녕␇, q␇녕␇, q␇녕␇, q␇녕␇);
+Test_N(q␇녖␇, q␇녖␇, q␇녖␇, q␇녖␇, q␇녖␇);
+Test_N(q␇녗␇, q␇녗␇, q␇녗␇, q␇녗␇, q␇녗␇);
+Test_N(q␇녘␇, q␇녘␇, q␇녘␇, q␇녘␇, q␇녘␇);
+Test_N(q␇녙␇, q␇녙␇, q␇녙␇, q␇녙␇, q␇녙␇);
+Test_N(q␇녚␇, q␇녚␇, q␇녚␇, q␇녚␇, q␇녚␇);
+Test_N(q␇녛␇, q␇녛␇, q␇녛␇, q␇녛␇, q␇녛␇);
+Test_N(q␇녜␇, q␇녜␇, q␇녜␇, q␇녜␇, q␇녜␇);
+Test_N(q␇녝␇, q␇녝␇, q␇녝␇, q␇녝␇, q␇녝␇);
+Test_N(q␇녞␇, q␇녞␇, q␇녞␇, q␇녞␇, q␇녞␇);
+Test_N(q␇녟␇, q␇녟␇, q␇녟␇, q␇녟␇, q␇녟␇);
+Test_N(q␇녠␇, q␇녠␇, q␇녠␇, q␇녠␇, q␇녠␇);
+Test_N(q␇녡␇, q␇녡␇, q␇녡␇, q␇녡␇, q␇녡␇);
+Test_N(q␇녢␇, q␇녢␇, q␇녢␇, q␇녢␇, q␇녢␇);
+Test_N(q␇녣␇, q␇녣␇, q␇녣␇, q␇녣␇, q␇녣␇);
+Test_N(q␇녤␇, q␇녤␇, q␇녤␇, q␇녤␇, q␇녤␇);
+Test_N(q␇녥␇, q␇녥␇, q␇녥␇, q␇녥␇, q␇녥␇);
+Test_N(q␇녦␇, q␇녦␇, q␇녦␇, q␇녦␇, q␇녦␇);
+Test_N(q␇녧␇, q␇녧␇, q␇녧␇, q␇녧␇, q␇녧␇);
+Test_N(q␇녨␇, q␇녨␇, q␇녨␇, q␇녨␇, q␇녨␇);
+Test_N(q␇녩␇, q␇녩␇, q␇녩␇, q␇녩␇, q␇녩␇);
+Test_N(q␇녪␇, q␇녪␇, q␇녪␇, q␇녪␇, q␇녪␇);
+Test_N(q␇녫␇, q␇녫␇, q␇녫␇, q␇녫␇, q␇녫␇);
+Test_N(q␇녬␇, q␇녬␇, q␇녬␇, q␇녬␇, q␇녬␇);
+Test_N(q␇녭␇, q␇녭␇, q␇녭␇, q␇녭␇, q␇녭␇);
+Test_N(q␇녮␇, q␇녮␇, q␇녮␇, q␇녮␇, q␇녮␇);
+Test_N(q␇녯␇, q␇녯␇, q␇녯␇, q␇녯␇, q␇녯␇);
+Test_N(q␇녰␇, q␇녰␇, q␇녰␇, q␇녰␇, q␇녰␇);
+Test_N(q␇녱␇, q␇녱␇, q␇녱␇, q␇녱␇, q␇녱␇);
+Test_N(q␇녲␇, q␇녲␇, q␇녲␇, q␇녲␇, q␇녲␇);
+Test_N(q␇녳␇, q␇녳␇, q␇녳␇, q␇녳␇, q␇녳␇);
+Test_N(q␇녴␇, q␇녴␇, q␇녴␇, q␇녴␇, q␇녴␇);
+Test_N(q␇녵␇, q␇녵␇, q␇녵␇, q␇녵␇, q␇녵␇);
+Test_N(q␇녶␇, q␇녶␇, q␇녶␇, q␇녶␇, q␇녶␇);
+Test_N(q␇녷␇, q␇녷␇, q␇녷␇, q␇녷␇, q␇녷␇);
+Test_N(q␇노␇, q␇노␇, q␇노␇, q␇노␇, q␇노␇);
+Test_N(q␇녹␇, q␇녹␇, q␇녹␇, q␇녹␇, q␇녹␇);
+Test_N(q␇녺␇, q␇녺␇, q␇녺␇, q␇녺␇, q␇녺␇);
+Test_N(q␇녻␇, q␇녻␇, q␇녻␇, q␇녻␇, q␇녻␇);
+Test_N(q␇논␇, q␇논␇, q␇논␇, q␇논␇, q␇논␇);
+Test_N(q␇녽␇, q␇녽␇, q␇녽␇, q␇녽␇, q␇녽␇);
+Test_N(q␇녾␇, q␇녾␇, q␇녾␇, q␇녾␇, q␇녾␇);
+Test_N(q␇녿␇, q␇녿␇, q␇녿␇, q␇녿␇, q␇녿␇);
+Test_N(q␇놀␇, q␇놀␇, q␇놀␇, q␇놀␇, q␇놀␇);
+Test_N(q␇놁␇, q␇놁␇, q␇놁␇, q␇놁␇, q␇놁␇);
+Test_N(q␇놂␇, q␇놂␇, q␇놂␇, q␇놂␇, q␇놂␇);
+Test_N(q␇놃␇, q␇놃␇, q␇놃␇, q␇놃␇, q␇놃␇);
+Test_N(q␇놄␇, q␇놄␇, q␇놄␇, q␇놄␇, q␇놄␇);
+Test_N(q␇놅␇, q␇놅␇, q␇놅␇, q␇놅␇, q␇놅␇);
+Test_N(q␇놆␇, q␇놆␇, q␇놆␇, q␇놆␇, q␇놆␇);
+Test_N(q␇놇␇, q␇놇␇, q␇놇␇, q␇놇␇, q␇놇␇);
+Test_N(q␇놈␇, q␇놈␇, q␇놈␇, q␇놈␇, q␇놈␇);
+Test_N(q␇놉␇, q␇놉␇, q␇놉␇, q␇놉␇, q␇놉␇);
+Test_N(q␇놊␇, q␇놊␇, q␇놊␇, q␇놊␇, q␇놊␇);
+Test_N(q␇놋␇, q␇놋␇, q␇놋␇, q␇놋␇, q␇놋␇);
+Test_N(q␇놌␇, q␇놌␇, q␇놌␇, q␇놌␇, q␇놌␇);
+Test_N(q␇농␇, q␇농␇, q␇농␇, q␇농␇, q␇농␇);
+Test_N(q␇놎␇, q␇놎␇, q␇놎␇, q␇놎␇, q␇놎␇);
+Test_N(q␇놏␇, q␇놏␇, q␇놏␇, q␇놏␇, q␇놏␇);
+Test_N(q␇놐␇, q␇놐␇, q␇놐␇, q␇놐␇, q␇놐␇);
+Test_N(q␇놑␇, q␇놑␇, q␇놑␇, q␇놑␇, q␇놑␇);
+Test_N(q␇높␇, q␇높␇, q␇높␇, q␇높␇, q␇높␇);
+Test_N(q␇놓␇, q␇놓␇, q␇놓␇, q␇놓␇, q␇놓␇);
+Test_N(q␇놔␇, q␇놔␇, q␇놔␇, q␇놔␇, q␇놔␇);
+Test_N(q␇놕␇, q␇놕␇, q␇놕␇, q␇놕␇, q␇놕␇);
+Test_N(q␇놖␇, q␇놖␇, q␇놖␇, q␇놖␇, q␇놖␇);
+Test_N(q␇놗␇, q␇놗␇, q␇놗␇, q␇놗␇, q␇놗␇);
+Test_N(q␇놘␇, q␇놘␇, q␇놘␇, q␇놘␇, q␇놘␇);
+Test_N(q␇놙␇, q␇놙␇, q␇놙␇, q␇놙␇, q␇놙␇);
+Test_N(q␇놚␇, q␇놚␇, q␇놚␇, q␇놚␇, q␇놚␇);
+Test_N(q␇놛␇, q␇놛␇, q␇놛␇, q␇놛␇, q␇놛␇);
+Test_N(q␇놜␇, q␇놜␇, q␇놜␇, q␇놜␇, q␇놜␇);
+Test_N(q␇놝␇, q␇놝␇, q␇놝␇, q␇놝␇, q␇놝␇);
+Test_N(q␇놞␇, q␇놞␇, q␇놞␇, q␇놞␇, q␇놞␇);
+Test_N(q␇놟␇, q␇놟␇, q␇놟␇, q␇놟␇, q␇놟␇);
+Test_N(q␇놠␇, q␇놠␇, q␇놠␇, q␇놠␇, q␇놠␇);
+Test_N(q␇놡␇, q␇놡␇, q␇놡␇, q␇놡␇, q␇놡␇);
+Test_N(q␇놢␇, q␇놢␇, q␇놢␇, q␇놢␇, q␇놢␇);
+Test_N(q␇놣␇, q␇놣␇, q␇놣␇, q␇놣␇, q␇놣␇);
+Test_N(q␇놤␇, q␇놤␇, q␇놤␇, q␇놤␇, q␇놤␇);
+Test_N(q␇놥␇, q␇놥␇, q␇놥␇, q␇놥␇, q␇놥␇);
+Test_N(q␇놦␇, q␇놦␇, q␇놦␇, q␇놦␇, q␇놦␇);
+Test_N(q␇놧␇, q␇놧␇, q␇놧␇, q␇놧␇, q␇놧␇);
+Test_N(q␇놨␇, q␇놨␇, q␇놨␇, q␇놨␇, q␇놨␇);
+Test_N(q␇놩␇, q␇놩␇, q␇놩␇, q␇놩␇, q␇놩␇);
+Test_N(q␇놪␇, q␇놪␇, q␇놪␇, q␇놪␇, q␇놪␇);
+Test_N(q␇놫␇, q␇놫␇, q␇놫␇, q␇놫␇, q␇놫␇);
+Test_N(q␇놬␇, q␇놬␇, q␇놬␇, q␇놬␇, q␇놬␇);
+Test_N(q␇놭␇, q␇놭␇, q␇놭␇, q␇놭␇, q␇놭␇);
+Test_N(q␇놮␇, q␇놮␇, q␇놮␇, q␇놮␇, q␇놮␇);
+Test_N(q␇놯␇, q␇놯␇, q␇놯␇, q␇놯␇, q␇놯␇);
+Test_N(q␇놰␇, q␇놰␇, q␇놰␇, q␇놰␇, q␇놰␇);
+Test_N(q␇놱␇, q␇놱␇, q␇놱␇, q␇놱␇, q␇놱␇);
+Test_N(q␇놲␇, q␇놲␇, q␇놲␇, q␇놲␇, q␇놲␇);
+Test_N(q␇놳␇, q␇놳␇, q␇놳␇, q␇놳␇, q␇놳␇);
+Test_N(q␇놴␇, q␇놴␇, q␇놴␇, q␇놴␇, q␇놴␇);
+Test_N(q␇놵␇, q␇놵␇, q␇놵␇, q␇놵␇, q␇놵␇);
+Test_N(q␇놶␇, q␇놶␇, q␇놶␇, q␇놶␇, q␇놶␇);
+Test_N(q␇놷␇, q␇놷␇, q␇놷␇, q␇놷␇, q␇놷␇);
+Test_N(q␇놸␇, q␇놸␇, q␇놸␇, q␇놸␇, q␇놸␇);
+Test_N(q␇놹␇, q␇놹␇, q␇놹␇, q␇놹␇, q␇놹␇);
+Test_N(q␇놺␇, q␇놺␇, q␇놺␇, q␇놺␇, q␇놺␇);
+Test_N(q␇놻␇, q␇놻␇, q␇놻␇, q␇놻␇, q␇놻␇);
+Test_N(q␇놼␇, q␇놼␇, q␇놼␇, q␇놼␇, q␇놼␇);
+Test_N(q␇놽␇, q␇놽␇, q␇놽␇, q␇놽␇, q␇놽␇);
+Test_N(q␇놾␇, q␇놾␇, q␇놾␇, q␇놾␇, q␇놾␇);
+Test_N(q␇놿␇, q␇놿␇, q␇놿␇, q␇놿␇, q␇놿␇);
+Test_N(q␇뇀␇, q␇뇀␇, q␇뇀␇, q␇뇀␇, q␇뇀␇);
+Test_N(q␇뇁␇, q␇뇁␇, q␇뇁␇, q␇뇁␇, q␇뇁␇);
+Test_N(q␇뇂␇, q␇뇂␇, q␇뇂␇, q␇뇂␇, q␇뇂␇);
+Test_N(q␇뇃␇, q␇뇃␇, q␇뇃␇, q␇뇃␇, q␇뇃␇);
+Test_N(q␇뇄␇, q␇뇄␇, q␇뇄␇, q␇뇄␇, q␇뇄␇);
+Test_N(q␇뇅␇, q␇뇅␇, q␇뇅␇, q␇뇅␇, q␇뇅␇);
+Test_N(q␇뇆␇, q␇뇆␇, q␇뇆␇, q␇뇆␇, q␇뇆␇);
+Test_N(q␇뇇␇, q␇뇇␇, q␇뇇␇, q␇뇇␇, q␇뇇␇);
+Test_N(q␇뇈␇, q␇뇈␇, q␇뇈␇, q␇뇈␇, q␇뇈␇);
+Test_N(q␇뇉␇, q␇뇉␇, q␇뇉␇, q␇뇉␇, q␇뇉␇);
+Test_N(q␇뇊␇, q␇뇊␇, q␇뇊␇, q␇뇊␇, q␇뇊␇);
+Test_N(q␇뇋␇, q␇뇋␇, q␇뇋␇, q␇뇋␇, q␇뇋␇);
+Test_N(q␇뇌␇, q␇뇌␇, q␇뇌␇, q␇뇌␇, q␇뇌␇);
+Test_N(q␇뇍␇, q␇뇍␇, q␇뇍␇, q␇뇍␇, q␇뇍␇);
+Test_N(q␇뇎␇, q␇뇎␇, q␇뇎␇, q␇뇎␇, q␇뇎␇);
+Test_N(q␇뇏␇, q␇뇏␇, q␇뇏␇, q␇뇏␇, q␇뇏␇);
+Test_N(q␇뇐␇, q␇뇐␇, q␇뇐␇, q␇뇐␇, q␇뇐␇);
+Test_N(q␇뇑␇, q␇뇑␇, q␇뇑␇, q␇뇑␇, q␇뇑␇);
+Test_N(q␇뇒␇, q␇뇒␇, q␇뇒␇, q␇뇒␇, q␇뇒␇);
+Test_N(q␇뇓␇, q␇뇓␇, q␇뇓␇, q␇뇓␇, q␇뇓␇);
+Test_N(q␇뇔␇, q␇뇔␇, q␇뇔␇, q␇뇔␇, q␇뇔␇);
+Test_N(q␇뇕␇, q␇뇕␇, q␇뇕␇, q␇뇕␇, q␇뇕␇);
+Test_N(q␇뇖␇, q␇뇖␇, q␇뇖␇, q␇뇖␇, q␇뇖␇);
+Test_N(q␇뇗␇, q␇뇗␇, q␇뇗␇, q␇뇗␇, q␇뇗␇);
+Test_N(q␇뇘␇, q␇뇘␇, q␇뇘␇, q␇뇘␇, q␇뇘␇);
+Test_N(q␇뇙␇, q␇뇙␇, q␇뇙␇, q␇뇙␇, q␇뇙␇);
+Test_N(q␇뇚␇, q␇뇚␇, q␇뇚␇, q␇뇚␇, q␇뇚␇);
+Test_N(q␇뇛␇, q␇뇛␇, q␇뇛␇, q␇뇛␇, q␇뇛␇);
+Test_N(q␇뇜␇, q␇뇜␇, q␇뇜␇, q␇뇜␇, q␇뇜␇);
+Test_N(q␇뇝␇, q␇뇝␇, q␇뇝␇, q␇뇝␇, q␇뇝␇);
+Test_N(q␇뇞␇, q␇뇞␇, q␇뇞␇, q␇뇞␇, q␇뇞␇);
+Test_N(q␇뇟␇, q␇뇟␇, q␇뇟␇, q␇뇟␇, q␇뇟␇);
+Test_N(q␇뇠␇, q␇뇠␇, q␇뇠␇, q␇뇠␇, q␇뇠␇);
+Test_N(q␇뇡␇, q␇뇡␇, q␇뇡␇, q␇뇡␇, q␇뇡␇);
+Test_N(q␇뇢␇, q␇뇢␇, q␇뇢␇, q␇뇢␇, q␇뇢␇);
+Test_N(q␇뇣␇, q␇뇣␇, q␇뇣␇, q␇뇣␇, q␇뇣␇);
+Test_N(q␇뇤␇, q␇뇤␇, q␇뇤␇, q␇뇤␇, q␇뇤␇);
+Test_N(q␇뇥␇, q␇뇥␇, q␇뇥␇, q␇뇥␇, q␇뇥␇);
+Test_N(q␇뇦␇, q␇뇦␇, q␇뇦␇, q␇뇦␇, q␇뇦␇);
+Test_N(q␇뇧␇, q␇뇧␇, q␇뇧␇, q␇뇧␇, q␇뇧␇);
+Test_N(q␇뇨␇, q␇뇨␇, q␇뇨␇, q␇뇨␇, q␇뇨␇);
+Test_N(q␇뇩␇, q␇뇩␇, q␇뇩␇, q␇뇩␇, q␇뇩␇);
+Test_N(q␇뇪␇, q␇뇪␇, q␇뇪␇, q␇뇪␇, q␇뇪␇);
+Test_N(q␇뇫␇, q␇뇫␇, q␇뇫␇, q␇뇫␇, q␇뇫␇);
+Test_N(q␇뇬␇, q␇뇬␇, q␇뇬␇, q␇뇬␇, q␇뇬␇);
+Test_N(q␇뇭␇, q␇뇭␇, q␇뇭␇, q␇뇭␇, q␇뇭␇);
+Test_N(q␇뇮␇, q␇뇮␇, q␇뇮␇, q␇뇮␇, q␇뇮␇);
+Test_N(q␇뇯␇, q␇뇯␇, q␇뇯␇, q␇뇯␇, q␇뇯␇);
+Test_N(q␇뇰␇, q␇뇰␇, q␇뇰␇, q␇뇰␇, q␇뇰␇);
+Test_N(q␇뇱␇, q␇뇱␇, q␇뇱␇, q␇뇱␇, q␇뇱␇);
+Test_N(q␇뇲␇, q␇뇲␇, q␇뇲␇, q␇뇲␇, q␇뇲␇);
+Test_N(q␇뇳␇, q␇뇳␇, q␇뇳␇, q␇뇳␇, q␇뇳␇);
+Test_N(q␇뇴␇, q␇뇴␇, q␇뇴␇, q␇뇴␇, q␇뇴␇);
+Test_N(q␇뇵␇, q␇뇵␇, q␇뇵␇, q␇뇵␇, q␇뇵␇);
+Test_N(q␇뇶␇, q␇뇶␇, q␇뇶␇, q␇뇶␇, q␇뇶␇);
+Test_N(q␇뇷␇, q␇뇷␇, q␇뇷␇, q␇뇷␇, q␇뇷␇);
+Test_N(q␇뇸␇, q␇뇸␇, q␇뇸␇, q␇뇸␇, q␇뇸␇);
+Test_N(q␇뇹␇, q␇뇹␇, q␇뇹␇, q␇뇹␇, q␇뇹␇);
+Test_N(q␇뇺␇, q␇뇺␇, q␇뇺␇, q␇뇺␇, q␇뇺␇);
+Test_N(q␇뇻␇, q␇뇻␇, q␇뇻␇, q␇뇻␇, q␇뇻␇);
+Test_N(q␇뇼␇, q␇뇼␇, q␇뇼␇, q␇뇼␇, q␇뇼␇);
+Test_N(q␇뇽␇, q␇뇽␇, q␇뇽␇, q␇뇽␇, q␇뇽␇);
+Test_N(q␇뇾␇, q␇뇾␇, q␇뇾␇, q␇뇾␇, q␇뇾␇);
+Test_N(q␇뇿␇, q␇뇿␇, q␇뇿␇, q␇뇿␇, q␇뇿␇);
+Test_N(q␇눀␇, q␇눀␇, q␇눀␇, q␇눀␇, q␇눀␇);
+Test_N(q␇눁␇, q␇눁␇, q␇눁␇, q␇눁␇, q␇눁␇);
+Test_N(q␇눂␇, q␇눂␇, q␇눂␇, q␇눂␇, q␇눂␇);
+Test_N(q␇눃␇, q␇눃␇, q␇눃␇, q␇눃␇, q␇눃␇);
+Test_N(q␇누␇, q␇누␇, q␇누␇, q␇누␇, q␇누␇);
+Test_N(q␇눅␇, q␇눅␇, q␇눅␇, q␇눅␇, q␇눅␇);
+Test_N(q␇눆␇, q␇눆␇, q␇눆␇, q␇눆␇, q␇눆␇);
+Test_N(q␇눇␇, q␇눇␇, q␇눇␇, q␇눇␇, q␇눇␇);
+Test_N(q␇눈␇, q␇눈␇, q␇눈␇, q␇눈␇, q␇눈␇);
+Test_N(q␇눉␇, q␇눉␇, q␇눉␇, q␇눉␇, q␇눉␇);
+Test_N(q␇눊␇, q␇눊␇, q␇눊␇, q␇눊␇, q␇눊␇);
+Test_N(q␇눋␇, q␇눋␇, q␇눋␇, q␇눋␇, q␇눋␇);
+Test_N(q␇눌␇, q␇눌␇, q␇눌␇, q␇눌␇, q␇눌␇);
+Test_N(q␇눍␇, q␇눍␇, q␇눍␇, q␇눍␇, q␇눍␇);
+Test_N(q␇눎␇, q␇눎␇, q␇눎␇, q␇눎␇, q␇눎␇);
+Test_N(q␇눏␇, q␇눏␇, q␇눏␇, q␇눏␇, q␇눏␇);
+Test_N(q␇눐␇, q␇눐␇, q␇눐␇, q␇눐␇, q␇눐␇);
+Test_N(q␇눑␇, q␇눑␇, q␇눑␇, q␇눑␇, q␇눑␇);
+Test_N(q␇눒␇, q␇눒␇, q␇눒␇, q␇눒␇, q␇눒␇);
+Test_N(q␇눓␇, q␇눓␇, q␇눓␇, q␇눓␇, q␇눓␇);
+Test_N(q␇눔␇, q␇눔␇, q␇눔␇, q␇눔␇, q␇눔␇);
+Test_N(q␇눕␇, q␇눕␇, q␇눕␇, q␇눕␇, q␇눕␇);
+Test_N(q␇눖␇, q␇눖␇, q␇눖␇, q␇눖␇, q␇눖␇);
+Test_N(q␇눗␇, q␇눗␇, q␇눗␇, q␇눗␇, q␇눗␇);
+Test_N(q␇눘␇, q␇눘␇, q␇눘␇, q␇눘␇, q␇눘␇);
+Test_N(q␇눙␇, q␇눙␇, q␇눙␇, q␇눙␇, q␇눙␇);
+Test_N(q␇눚␇, q␇눚␇, q␇눚␇, q␇눚␇, q␇눚␇);
+Test_N(q␇눛␇, q␇눛␇, q␇눛␇, q␇눛␇, q␇눛␇);
+Test_N(q␇눜␇, q␇눜␇, q␇눜␇, q␇눜␇, q␇눜␇);
+Test_N(q␇눝␇, q␇눝␇, q␇눝␇, q␇눝␇, q␇눝␇);
+Test_N(q␇눞␇, q␇눞␇, q␇눞␇, q␇눞␇, q␇눞␇);
+Test_N(q␇눟␇, q␇눟␇, q␇눟␇, q␇눟␇, q␇눟␇);
+Test_N(q␇눠␇, q␇눠␇, q␇눠␇, q␇눠␇, q␇눠␇);
+Test_N(q␇눡␇, q␇눡␇, q␇눡␇, q␇눡␇, q␇눡␇);
+Test_N(q␇눢␇, q␇눢␇, q␇눢␇, q␇눢␇, q␇눢␇);
+Test_N(q␇눣␇, q␇눣␇, q␇눣␇, q␇눣␇, q␇눣␇);
+Test_N(q␇눤␇, q␇눤␇, q␇눤␇, q␇눤␇, q␇눤␇);
+Test_N(q␇눥␇, q␇눥␇, q␇눥␇, q␇눥␇, q␇눥␇);
+Test_N(q␇눦␇, q␇눦␇, q␇눦␇, q␇눦␇, q␇눦␇);
+Test_N(q␇눧␇, q␇눧␇, q␇눧␇, q␇눧␇, q␇눧␇);
+Test_N(q␇눨␇, q␇눨␇, q␇눨␇, q␇눨␇, q␇눨␇);
+Test_N(q␇눩␇, q␇눩␇, q␇눩␇, q␇눩␇, q␇눩␇);
+Test_N(q␇눪␇, q␇눪␇, q␇눪␇, q␇눪␇, q␇눪␇);
+Test_N(q␇눫␇, q␇눫␇, q␇눫␇, q␇눫␇, q␇눫␇);
+Test_N(q␇눬␇, q␇눬␇, q␇눬␇, q␇눬␇, q␇눬␇);
+Test_N(q␇눭␇, q␇눭␇, q␇눭␇, q␇눭␇, q␇눭␇);
+Test_N(q␇눮␇, q␇눮␇, q␇눮␇, q␇눮␇, q␇눮␇);
+Test_N(q␇눯␇, q␇눯␇, q␇눯␇, q␇눯␇, q␇눯␇);
+Test_N(q␇눰␇, q␇눰␇, q␇눰␇, q␇눰␇, q␇눰␇);
+Test_N(q␇눱␇, q␇눱␇, q␇눱␇, q␇눱␇, q␇눱␇);
+Test_N(q␇눲␇, q␇눲␇, q␇눲␇, q␇눲␇, q␇눲␇);
+Test_N(q␇눳␇, q␇눳␇, q␇눳␇, q␇눳␇, q␇눳␇);
+Test_N(q␇눴␇, q␇눴␇, q␇눴␇, q␇눴␇, q␇눴␇);
+Test_N(q␇눵␇, q␇눵␇, q␇눵␇, q␇눵␇, q␇눵␇);
+Test_N(q␇눶␇, q␇눶␇, q␇눶␇, q␇눶␇, q␇눶␇);
+Test_N(q␇눷␇, q␇눷␇, q␇눷␇, q␇눷␇, q␇눷␇);
+Test_N(q␇눸␇, q␇눸␇, q␇눸␇, q␇눸␇, q␇눸␇);
+Test_N(q␇눹␇, q␇눹␇, q␇눹␇, q␇눹␇, q␇눹␇);
+Test_N(q␇눺␇, q␇눺␇, q␇눺␇, q␇눺␇, q␇눺␇);
+Test_N(q␇눻␇, q␇눻␇, q␇눻␇, q␇눻␇, q␇눻␇);
+Test_N(q␇눼␇, q␇눼␇, q␇눼␇, q␇눼␇, q␇눼␇);
+Test_N(q␇눽␇, q␇눽␇, q␇눽␇, q␇눽␇, q␇눽␇);
+Test_N(q␇눾␇, q␇눾␇, q␇눾␇, q␇눾␇, q␇눾␇);
+Test_N(q␇눿␇, q␇눿␇, q␇눿␇, q␇눿␇, q␇눿␇);
+Test_N(q␇뉀␇, q␇뉀␇, q␇뉀␇, q␇뉀␇, q␇뉀␇);
+Test_N(q␇뉁␇, q␇뉁␇, q␇뉁␇, q␇뉁␇, q␇뉁␇);
+Test_N(q␇뉂␇, q␇뉂␇, q␇뉂␇, q␇뉂␇, q␇뉂␇);
+Test_N(q␇뉃␇, q␇뉃␇, q␇뉃␇, q␇뉃␇, q␇뉃␇);
+Test_N(q␇뉄␇, q␇뉄␇, q␇뉄␇, q␇뉄␇, q␇뉄␇);
+Test_N(q␇뉅␇, q␇뉅␇, q␇뉅␇, q␇뉅␇, q␇뉅␇);
+Test_N(q␇뉆␇, q␇뉆␇, q␇뉆␇, q␇뉆␇, q␇뉆␇);
+Test_N(q␇뉇␇, q␇뉇␇, q␇뉇␇, q␇뉇␇, q␇뉇␇);
+Test_N(q␇뉈␇, q␇뉈␇, q␇뉈␇, q␇뉈␇, q␇뉈␇);
+Test_N(q␇뉉␇, q␇뉉␇, q␇뉉␇, q␇뉉␇, q␇뉉␇);
+Test_N(q␇뉊␇, q␇뉊␇, q␇뉊␇, q␇뉊␇, q␇뉊␇);
+Test_N(q␇뉋␇, q␇뉋␇, q␇뉋␇, q␇뉋␇, q␇뉋␇);
+Test_N(q␇뉌␇, q␇뉌␇, q␇뉌␇, q␇뉌␇, q␇뉌␇);
+Test_N(q␇뉍␇, q␇뉍␇, q␇뉍␇, q␇뉍␇, q␇뉍␇);
+Test_N(q␇뉎␇, q␇뉎␇, q␇뉎␇, q␇뉎␇, q␇뉎␇);
+Test_N(q␇뉏␇, q␇뉏␇, q␇뉏␇, q␇뉏␇, q␇뉏␇);
+Test_N(q␇뉐␇, q␇뉐␇, q␇뉐␇, q␇뉐␇, q␇뉐␇);
+Test_N(q␇뉑␇, q␇뉑␇, q␇뉑␇, q␇뉑␇, q␇뉑␇);
+Test_N(q␇뉒␇, q␇뉒␇, q␇뉒␇, q␇뉒␇, q␇뉒␇);
+Test_N(q␇뉓␇, q␇뉓␇, q␇뉓␇, q␇뉓␇, q␇뉓␇);
+Test_N(q␇뉔␇, q␇뉔␇, q␇뉔␇, q␇뉔␇, q␇뉔␇);
+Test_N(q␇뉕␇, q␇뉕␇, q␇뉕␇, q␇뉕␇, q␇뉕␇);
+Test_N(q␇뉖␇, q␇뉖␇, q␇뉖␇, q␇뉖␇, q␇뉖␇);
+Test_N(q␇뉗␇, q␇뉗␇, q␇뉗␇, q␇뉗␇, q␇뉗␇);
+Test_N(q␇뉘␇, q␇뉘␇, q␇뉘␇, q␇뉘␇, q␇뉘␇);
+Test_N(q␇뉙␇, q␇뉙␇, q␇뉙␇, q␇뉙␇, q␇뉙␇);
+Test_N(q␇뉚␇, q␇뉚␇, q␇뉚␇, q␇뉚␇, q␇뉚␇);
+Test_N(q␇뉛␇, q␇뉛␇, q␇뉛␇, q␇뉛␇, q␇뉛␇);
+Test_N(q␇뉜␇, q␇뉜␇, q␇뉜␇, q␇뉜␇, q␇뉜␇);
+Test_N(q␇뉝␇, q␇뉝␇, q␇뉝␇, q␇뉝␇, q␇뉝␇);
+Test_N(q␇뉞␇, q␇뉞␇, q␇뉞␇, q␇뉞␇, q␇뉞␇);
+Test_N(q␇뉟␇, q␇뉟␇, q␇뉟␇, q␇뉟␇, q␇뉟␇);
+Test_N(q␇뉠␇, q␇뉠␇, q␇뉠␇, q␇뉠␇, q␇뉠␇);
+Test_N(q␇뉡␇, q␇뉡␇, q␇뉡␇, q␇뉡␇, q␇뉡␇);
+Test_N(q␇뉢␇, q␇뉢␇, q␇뉢␇, q␇뉢␇, q␇뉢␇);
+Test_N(q␇뉣␇, q␇뉣␇, q␇뉣␇, q␇뉣␇, q␇뉣␇);
+Test_N(q␇뉤␇, q␇뉤␇, q␇뉤␇, q␇뉤␇, q␇뉤␇);
+Test_N(q␇뉥␇, q␇뉥␇, q␇뉥␇, q␇뉥␇, q␇뉥␇);
+Test_N(q␇뉦␇, q␇뉦␇, q␇뉦␇, q␇뉦␇, q␇뉦␇);
+Test_N(q␇뉧␇, q␇뉧␇, q␇뉧␇, q␇뉧␇, q␇뉧␇);
+Test_N(q␇뉨␇, q␇뉨␇, q␇뉨␇, q␇뉨␇, q␇뉨␇);
+Test_N(q␇뉩␇, q␇뉩␇, q␇뉩␇, q␇뉩␇, q␇뉩␇);
+Test_N(q␇뉪␇, q␇뉪␇, q␇뉪␇, q␇뉪␇, q␇뉪␇);
+Test_N(q␇뉫␇, q␇뉫␇, q␇뉫␇, q␇뉫␇, q␇뉫␇);
+Test_N(q␇뉬␇, q␇뉬␇, q␇뉬␇, q␇뉬␇, q␇뉬␇);
+Test_N(q␇뉭␇, q␇뉭␇, q␇뉭␇, q␇뉭␇, q␇뉭␇);
+Test_N(q␇뉮␇, q␇뉮␇, q␇뉮␇, q␇뉮␇, q␇뉮␇);
+Test_N(q␇뉯␇, q␇뉯␇, q␇뉯␇, q␇뉯␇, q␇뉯␇);
+Test_N(q␇뉰␇, q␇뉰␇, q␇뉰␇, q␇뉰␇, q␇뉰␇);
+Test_N(q␇뉱␇, q␇뉱␇, q␇뉱␇, q␇뉱␇, q␇뉱␇);
+Test_N(q␇뉲␇, q␇뉲␇, q␇뉲␇, q␇뉲␇, q␇뉲␇);
+Test_N(q␇뉳␇, q␇뉳␇, q␇뉳␇, q␇뉳␇, q␇뉳␇);
+Test_N(q␇뉴␇, q␇뉴␇, q␇뉴␇, q␇뉴␇, q␇뉴␇);
+Test_N(q␇뉵␇, q␇뉵␇, q␇뉵␇, q␇뉵␇, q␇뉵␇);
+Test_N(q␇뉶␇, q␇뉶␇, q␇뉶␇, q␇뉶␇, q␇뉶␇);
+Test_N(q␇뉷␇, q␇뉷␇, q␇뉷␇, q␇뉷␇, q␇뉷␇);
+Test_N(q␇뉸␇, q␇뉸␇, q␇뉸␇, q␇뉸␇, q␇뉸␇);
+Test_N(q␇뉹␇, q␇뉹␇, q␇뉹␇, q␇뉹␇, q␇뉹␇);
+Test_N(q␇뉺␇, q␇뉺␇, q␇뉺␇, q␇뉺␇, q␇뉺␇);
+Test_N(q␇뉻␇, q␇뉻␇, q␇뉻␇, q␇뉻␇, q␇뉻␇);
+Test_N(q␇뉼␇, q␇뉼␇, q␇뉼␇, q␇뉼␇, q␇뉼␇);
+Test_N(q␇뉽␇, q␇뉽␇, q␇뉽␇, q␇뉽␇, q␇뉽␇);
+Test_N(q␇뉾␇, q␇뉾␇, q␇뉾␇, q␇뉾␇, q␇뉾␇);
+Test_N(q␇뉿␇, q␇뉿␇, q␇뉿␇, q␇뉿␇, q␇뉿␇);
+Test_N(q␇늀␇, q␇늀␇, q␇늀␇, q␇늀␇, q␇늀␇);
+Test_N(q␇늁␇, q␇늁␇, q␇늁␇, q␇늁␇, q␇늁␇);
+Test_N(q␇늂␇, q␇늂␇, q␇늂␇, q␇늂␇, q␇늂␇);
+Test_N(q␇늃␇, q␇늃␇, q␇늃␇, q␇늃␇, q␇늃␇);
+Test_N(q␇늄␇, q␇늄␇, q␇늄␇, q␇늄␇, q␇늄␇);
+Test_N(q␇늅␇, q␇늅␇, q␇늅␇, q␇늅␇, q␇늅␇);
+Test_N(q␇늆␇, q␇늆␇, q␇늆␇, q␇늆␇, q␇늆␇);
+Test_N(q␇늇␇, q␇늇␇, q␇늇␇, q␇늇␇, q␇늇␇);
+Test_N(q␇늈␇, q␇늈␇, q␇늈␇, q␇늈␇, q␇늈␇);
+Test_N(q␇늉␇, q␇늉␇, q␇늉␇, q␇늉␇, q␇늉␇);
+Test_N(q␇늊␇, q␇늊␇, q␇늊␇, q␇늊␇, q␇늊␇);
+Test_N(q␇늋␇, q␇늋␇, q␇늋␇, q␇늋␇, q␇늋␇);
+Test_N(q␇늌␇, q␇늌␇, q␇늌␇, q␇늌␇, q␇늌␇);
+Test_N(q␇늍␇, q␇늍␇, q␇늍␇, q␇늍␇, q␇늍␇);
+Test_N(q␇늎␇, q␇늎␇, q␇늎␇, q␇늎␇, q␇늎␇);
+Test_N(q␇늏␇, q␇늏␇, q␇늏␇, q␇늏␇, q␇늏␇);
+Test_N(q␇느␇, q␇느␇, q␇느␇, q␇느␇, q␇느␇);
+Test_N(q␇늑␇, q␇늑␇, q␇늑␇, q␇늑␇, q␇늑␇);
+Test_N(q␇늒␇, q␇늒␇, q␇늒␇, q␇늒␇, q␇늒␇);
+Test_N(q␇늓␇, q␇늓␇, q␇늓␇, q␇늓␇, q␇늓␇);
+Test_N(q␇는␇, q␇는␇, q␇는␇, q␇는␇, q␇는␇);
+Test_N(q␇늕␇, q␇늕␇, q␇늕␇, q␇늕␇, q␇늕␇);
+Test_N(q␇늖␇, q␇늖␇, q␇늖␇, q␇늖␇, q␇늖␇);
+Test_N(q␇늗␇, q␇늗␇, q␇늗␇, q␇늗␇, q␇늗␇);
+Test_N(q␇늘␇, q␇늘␇, q␇늘␇, q␇늘␇, q␇늘␇);
+Test_N(q␇늙␇, q␇늙␇, q␇늙␇, q␇늙␇, q␇늙␇);
+Test_N(q␇늚␇, q␇늚␇, q␇늚␇, q␇늚␇, q␇늚␇);
+Test_N(q␇늛␇, q␇늛␇, q␇늛␇, q␇늛␇, q␇늛␇);
+Test_N(q␇늜␇, q␇늜␇, q␇늜␇, q␇늜␇, q␇늜␇);
+Test_N(q␇늝␇, q␇늝␇, q␇늝␇, q␇늝␇, q␇늝␇);
+Test_N(q␇늞␇, q␇늞␇, q␇늞␇, q␇늞␇, q␇늞␇);
+Test_N(q␇늟␇, q␇늟␇, q␇늟␇, q␇늟␇, q␇늟␇);
+Test_N(q␇늠␇, q␇늠␇, q␇늠␇, q␇늠␇, q␇늠␇);
+Test_N(q␇늡␇, q␇늡␇, q␇늡␇, q␇늡␇, q␇늡␇);
+Test_N(q␇늢␇, q␇늢␇, q␇늢␇, q␇늢␇, q␇늢␇);
+Test_N(q␇늣␇, q␇늣␇, q␇늣␇, q␇늣␇, q␇늣␇);
+Test_N(q␇늤␇, q␇늤␇, q␇늤␇, q␇늤␇, q␇늤␇);
+Test_N(q␇능␇, q␇능␇, q␇능␇, q␇능␇, q␇능␇);
+Test_N(q␇늦␇, q␇늦␇, q␇늦␇, q␇늦␇, q␇늦␇);
+Test_N(q␇늧␇, q␇늧␇, q␇늧␇, q␇늧␇, q␇늧␇);
+Test_N(q␇늨␇, q␇늨␇, q␇늨␇, q␇늨␇, q␇늨␇);
+Test_N(q␇늩␇, q␇늩␇, q␇늩␇, q␇늩␇, q␇늩␇);
+Test_N(q␇늪␇, q␇늪␇, q␇늪␇, q␇늪␇, q␇늪␇);
+Test_N(q␇늫␇, q␇늫␇, q␇늫␇, q␇늫␇, q␇늫␇);
+Test_N(q␇늬␇, q␇늬␇, q␇늬␇, q␇늬␇, q␇늬␇);
+Test_N(q␇늭␇, q␇늭␇, q␇늭␇, q␇늭␇, q␇늭␇);
+Test_N(q␇늮␇, q␇늮␇, q␇늮␇, q␇늮␇, q␇늮␇);
+Test_N(q␇늯␇, q␇늯␇, q␇늯␇, q␇늯␇, q␇늯␇);
+Test_N(q␇늰␇, q␇늰␇, q␇늰␇, q␇늰␇, q␇늰␇);
+Test_N(q␇늱␇, q␇늱␇, q␇늱␇, q␇늱␇, q␇늱␇);
+Test_N(q␇늲␇, q␇늲␇, q␇늲␇, q␇늲␇, q␇늲␇);
+Test_N(q␇늳␇, q␇늳␇, q␇늳␇, q␇늳␇, q␇늳␇);
+Test_N(q␇늴␇, q␇늴␇, q␇늴␇, q␇늴␇, q␇늴␇);
+Test_N(q␇늵␇, q␇늵␇, q␇늵␇, q␇늵␇, q␇늵␇);
+Test_N(q␇늶␇, q␇늶␇, q␇늶␇, q␇늶␇, q␇늶␇);
+Test_N(q␇늷␇, q␇늷␇, q␇늷␇, q␇늷␇, q␇늷␇);
+Test_N(q␇늸␇, q␇늸␇, q␇늸␇, q␇늸␇, q␇늸␇);
+Test_N(q␇늹␇, q␇늹␇, q␇늹␇, q␇늹␇, q␇늹␇);
+Test_N(q␇늺␇, q␇늺␇, q␇늺␇, q␇늺␇, q␇늺␇);
+Test_N(q␇늻␇, q␇늻␇, q␇늻␇, q␇늻␇, q␇늻␇);
+Test_N(q␇늼␇, q␇늼␇, q␇늼␇, q␇늼␇, q␇늼␇);
+Test_N(q␇늽␇, q␇늽␇, q␇늽␇, q␇늽␇, q␇늽␇);
+Test_N(q␇늾␇, q␇늾␇, q␇늾␇, q␇늾␇, q␇늾␇);
+Test_N(q␇늿␇, q␇늿␇, q␇늿␇, q␇늿␇, q␇늿␇);
+Test_N(q␇닀␇, q␇닀␇, q␇닀␇, q␇닀␇, q␇닀␇);
+Test_N(q␇닁␇, q␇닁␇, q␇닁␇, q␇닁␇, q␇닁␇);
+Test_N(q␇닂␇, q␇닂␇, q␇닂␇, q␇닂␇, q␇닂␇);
+Test_N(q␇닃␇, q␇닃␇, q␇닃␇, q␇닃␇, q␇닃␇);
+Test_N(q␇닄␇, q␇닄␇, q␇닄␇, q␇닄␇, q␇닄␇);
+Test_N(q␇닅␇, q␇닅␇, q␇닅␇, q␇닅␇, q␇닅␇);
+Test_N(q␇닆␇, q␇닆␇, q␇닆␇, q␇닆␇, q␇닆␇);
+Test_N(q␇닇␇, q␇닇␇, q␇닇␇, q␇닇␇, q␇닇␇);
+Test_N(q␇니␇, q␇니␇, q␇니␇, q␇니␇, q␇니␇);
+Test_N(q␇닉␇, q␇닉␇, q␇닉␇, q␇닉␇, q␇닉␇);
+Test_N(q␇닊␇, q␇닊␇, q␇닊␇, q␇닊␇, q␇닊␇);
+Test_N(q␇닋␇, q␇닋␇, q␇닋␇, q␇닋␇, q␇닋␇);
+Test_N(q␇닌␇, q␇닌␇, q␇닌␇, q␇닌␇, q␇닌␇);
+Test_N(q␇닍␇, q␇닍␇, q␇닍␇, q␇닍␇, q␇닍␇);
+Test_N(q␇닎␇, q␇닎␇, q␇닎␇, q␇닎␇, q␇닎␇);
+Test_N(q␇닏␇, q␇닏␇, q␇닏␇, q␇닏␇, q␇닏␇);
+Test_N(q␇닐␇, q␇닐␇, q␇닐␇, q␇닐␇, q␇닐␇);
+Test_N(q␇닑␇, q␇닑␇, q␇닑␇, q␇닑␇, q␇닑␇);
+Test_N(q␇닒␇, q␇닒␇, q␇닒␇, q␇닒␇, q␇닒␇);
+Test_N(q␇닓␇, q␇닓␇, q␇닓␇, q␇닓␇, q␇닓␇);
+Test_N(q␇닔␇, q␇닔␇, q␇닔␇, q␇닔␇, q␇닔␇);
+Test_N(q␇닕␇, q␇닕␇, q␇닕␇, q␇닕␇, q␇닕␇);
+Test_N(q␇닖␇, q␇닖␇, q␇닖␇, q␇닖␇, q␇닖␇);
+Test_N(q␇닗␇, q␇닗␇, q␇닗␇, q␇닗␇, q␇닗␇);
+Test_N(q␇님␇, q␇님␇, q␇님␇, q␇님␇, q␇님␇);
+Test_N(q␇닙␇, q␇닙␇, q␇닙␇, q␇닙␇, q␇닙␇);
+Test_N(q␇닚␇, q␇닚␇, q␇닚␇, q␇닚␇, q␇닚␇);
+Test_N(q␇닛␇, q␇닛␇, q␇닛␇, q␇닛␇, q␇닛␇);
+Test_N(q␇닜␇, q␇닜␇, q␇닜␇, q␇닜␇, q␇닜␇);
+Test_N(q␇닝␇, q␇닝␇, q␇닝␇, q␇닝␇, q␇닝␇);
+Test_N(q␇닞␇, q␇닞␇, q␇닞␇, q␇닞␇, q␇닞␇);
+Test_N(q␇닟␇, q␇닟␇, q␇닟␇, q␇닟␇, q␇닟␇);
+Test_N(q␇닠␇, q␇닠␇, q␇닠␇, q␇닠␇, q␇닠␇);
+Test_N(q␇닡␇, q␇닡␇, q␇닡␇, q␇닡␇, q␇닡␇);
+Test_N(q␇닢␇, q␇닢␇, q␇닢␇, q␇닢␇, q␇닢␇);
+Test_N(q␇닣␇, q␇닣␇, q␇닣␇, q␇닣␇, q␇닣␇);
+Test_N(q␇다␇, q␇다␇, q␇다␇, q␇다␇, q␇다␇);
+Test_N(q␇닥␇, q␇닥␇, q␇닥␇, q␇닥␇, q␇닥␇);
+Test_N(q␇닦␇, q␇닦␇, q␇닦␇, q␇닦␇, q␇닦␇);
+Test_N(q␇닧␇, q␇닧␇, q␇닧␇, q␇닧␇, q␇닧␇);
+Test_N(q␇단␇, q␇단␇, q␇단␇, q␇단␇, q␇단␇);
+Test_N(q␇닩␇, q␇닩␇, q␇닩␇, q␇닩␇, q␇닩␇);
+Test_N(q␇닪␇, q␇닪␇, q␇닪␇, q␇닪␇, q␇닪␇);
+Test_N(q␇닫␇, q␇닫␇, q␇닫␇, q␇닫␇, q␇닫␇);
+Test_N(q␇달␇, q␇달␇, q␇달␇, q␇달␇, q␇달␇);
+Test_N(q␇닭␇, q␇닭␇, q␇닭␇, q␇닭␇, q␇닭␇);
+Test_N(q␇닮␇, q␇닮␇, q␇닮␇, q␇닮␇, q␇닮␇);
+Test_N(q␇닯␇, q␇닯␇, q␇닯␇, q␇닯␇, q␇닯␇);
+Test_N(q␇닰␇, q␇닰␇, q␇닰␇, q␇닰␇, q␇닰␇);
+Test_N(q␇닱␇, q␇닱␇, q␇닱␇, q␇닱␇, q␇닱␇);
+Test_N(q␇닲␇, q␇닲␇, q␇닲␇, q␇닲␇, q␇닲␇);
+Test_N(q␇닳␇, q␇닳␇, q␇닳␇, q␇닳␇, q␇닳␇);
+Test_N(q␇담␇, q␇담␇, q␇담␇, q␇담␇, q␇담␇);
+Test_N(q␇답␇, q␇답␇, q␇답␇, q␇답␇, q␇답␇);
+Test_N(q␇닶␇, q␇닶␇, q␇닶␇, q␇닶␇, q␇닶␇);
+Test_N(q␇닷␇, q␇닷␇, q␇닷␇, q␇닷␇, q␇닷␇);
+Test_N(q␇닸␇, q␇닸␇, q␇닸␇, q␇닸␇, q␇닸␇);
+Test_N(q␇당␇, q␇당␇, q␇당␇, q␇당␇, q␇당␇);
+Test_N(q␇닺␇, q␇닺␇, q␇닺␇, q␇닺␇, q␇닺␇);
+Test_N(q␇닻␇, q␇닻␇, q␇닻␇, q␇닻␇, q␇닻␇);
+Test_N(q␇닼␇, q␇닼␇, q␇닼␇, q␇닼␇, q␇닼␇);
+Test_N(q␇닽␇, q␇닽␇, q␇닽␇, q␇닽␇, q␇닽␇);
+Test_N(q␇닾␇, q␇닾␇, q␇닾␇, q␇닾␇, q␇닾␇);
+Test_N(q␇닿␇, q␇닿␇, q␇닿␇, q␇닿␇, q␇닿␇);
+Test_N(q␇대␇, q␇대␇, q␇대␇, q␇대␇, q␇대␇);
+Test_N(q␇댁␇, q␇댁␇, q␇댁␇, q␇댁␇, q␇댁␇);
+Test_N(q␇댂␇, q␇댂␇, q␇댂␇, q␇댂␇, q␇댂␇);
+Test_N(q␇댃␇, q␇댃␇, q␇댃␇, q␇댃␇, q␇댃␇);
+Test_N(q␇댄␇, q␇댄␇, q␇댄␇, q␇댄␇, q␇댄␇);
+Test_N(q␇댅␇, q␇댅␇, q␇댅␇, q␇댅␇, q␇댅␇);
+Test_N(q␇댆␇, q␇댆␇, q␇댆␇, q␇댆␇, q␇댆␇);
+Test_N(q␇댇␇, q␇댇␇, q␇댇␇, q␇댇␇, q␇댇␇);
+Test_N(q␇댈␇, q␇댈␇, q␇댈␇, q␇댈␇, q␇댈␇);
+Test_N(q␇댉␇, q␇댉␇, q␇댉␇, q␇댉␇, q␇댉␇);
+Test_N(q␇댊␇, q␇댊␇, q␇댊␇, q␇댊␇, q␇댊␇);
+Test_N(q␇댋␇, q␇댋␇, q␇댋␇, q␇댋␇, q␇댋␇);
+Test_N(q␇댌␇, q␇댌␇, q␇댌␇, q␇댌␇, q␇댌␇);
+Test_N(q␇댍␇, q␇댍␇, q␇댍␇, q␇댍␇, q␇댍␇);
+Test_N(q␇댎␇, q␇댎␇, q␇댎␇, q␇댎␇, q␇댎␇);
+Test_N(q␇댏␇, q␇댏␇, q␇댏␇, q␇댏␇, q␇댏␇);
+Test_N(q␇댐␇, q␇댐␇, q␇댐␇, q␇댐␇, q␇댐␇);
+Test_N(q␇댑␇, q␇댑␇, q␇댑␇, q␇댑␇, q␇댑␇);
+Test_N(q␇댒␇, q␇댒␇, q␇댒␇, q␇댒␇, q␇댒␇);
+Test_N(q␇댓␇, q␇댓␇, q␇댓␇, q␇댓␇, q␇댓␇);
+Test_N(q␇댔␇, q␇댔␇, q␇댔␇, q␇댔␇, q␇댔␇);
+Test_N(q␇댕␇, q␇댕␇, q␇댕␇, q␇댕␇, q␇댕␇);
+Test_N(q␇댖␇, q␇댖␇, q␇댖␇, q␇댖␇, q␇댖␇);
+Test_N(q␇댗␇, q␇댗␇, q␇댗␇, q␇댗␇, q␇댗␇);
+Test_N(q␇댘␇, q␇댘␇, q␇댘␇, q␇댘␇, q␇댘␇);
+Test_N(q␇댙␇, q␇댙␇, q␇댙␇, q␇댙␇, q␇댙␇);
+Test_N(q␇댚␇, q␇댚␇, q␇댚␇, q␇댚␇, q␇댚␇);
+Test_N(q␇댛␇, q␇댛␇, q␇댛␇, q␇댛␇, q␇댛␇);
+Test_N(q␇댜␇, q␇댜␇, q␇댜␇, q␇댜␇, q␇댜␇);
+Test_N(q␇댝␇, q␇댝␇, q␇댝␇, q␇댝␇, q␇댝␇);
+Test_N(q␇댞␇, q␇댞␇, q␇댞␇, q␇댞␇, q␇댞␇);
+Test_N(q␇댟␇, q␇댟␇, q␇댟␇, q␇댟␇, q␇댟␇);
+Test_N(q␇댠␇, q␇댠␇, q␇댠␇, q␇댠␇, q␇댠␇);
+Test_N(q␇댡␇, q␇댡␇, q␇댡␇, q␇댡␇, q␇댡␇);
+Test_N(q␇댢␇, q␇댢␇, q␇댢␇, q␇댢␇, q␇댢␇);
+Test_N(q␇댣␇, q␇댣␇, q␇댣␇, q␇댣␇, q␇댣␇);
+Test_N(q␇댤␇, q␇댤␇, q␇댤␇, q␇댤␇, q␇댤␇);
+Test_N(q␇댥␇, q␇댥␇, q␇댥␇, q␇댥␇, q␇댥␇);
+Test_N(q␇댦␇, q␇댦␇, q␇댦␇, q␇댦␇, q␇댦␇);
+Test_N(q␇댧␇, q␇댧␇, q␇댧␇, q␇댧␇, q␇댧␇);
+Test_N(q␇댨␇, q␇댨␇, q␇댨␇, q␇댨␇, q␇댨␇);
+Test_N(q␇댩␇, q␇댩␇, q␇댩␇, q␇댩␇, q␇댩␇);
+Test_N(q␇댪␇, q␇댪␇, q␇댪␇, q␇댪␇, q␇댪␇);
+Test_N(q␇댫␇, q␇댫␇, q␇댫␇, q␇댫␇, q␇댫␇);
+Test_N(q␇댬␇, q␇댬␇, q␇댬␇, q␇댬␇, q␇댬␇);
+Test_N(q␇댭␇, q␇댭␇, q␇댭␇, q␇댭␇, q␇댭␇);
+Test_N(q␇댮␇, q␇댮␇, q␇댮␇, q␇댮␇, q␇댮␇);
+Test_N(q␇댯␇, q␇댯␇, q␇댯␇, q␇댯␇, q␇댯␇);
+Test_N(q␇댰␇, q␇댰␇, q␇댰␇, q␇댰␇, q␇댰␇);
+Test_N(q␇댱␇, q␇댱␇, q␇댱␇, q␇댱␇, q␇댱␇);
+Test_N(q␇댲␇, q␇댲␇, q␇댲␇, q␇댲␇, q␇댲␇);
+Test_N(q␇댳␇, q␇댳␇, q␇댳␇, q␇댳␇, q␇댳␇);
+Test_N(q␇댴␇, q␇댴␇, q␇댴␇, q␇댴␇, q␇댴␇);
+Test_N(q␇댵␇, q␇댵␇, q␇댵␇, q␇댵␇, q␇댵␇);
+Test_N(q␇댶␇, q␇댶␇, q␇댶␇, q␇댶␇, q␇댶␇);
+Test_N(q␇댷␇, q␇댷␇, q␇댷␇, q␇댷␇, q␇댷␇);
+Test_N(q␇댸␇, q␇댸␇, q␇댸␇, q␇댸␇, q␇댸␇);
+Test_N(q␇댹␇, q␇댹␇, q␇댹␇, q␇댹␇, q␇댹␇);
+Test_N(q␇댺␇, q␇댺␇, q␇댺␇, q␇댺␇, q␇댺␇);
+Test_N(q␇댻␇, q␇댻␇, q␇댻␇, q␇댻␇, q␇댻␇);
+Test_N(q␇댼␇, q␇댼␇, q␇댼␇, q␇댼␇, q␇댼␇);
+Test_N(q␇댽␇, q␇댽␇, q␇댽␇, q␇댽␇, q␇댽␇);
+Test_N(q␇댾␇, q␇댾␇, q␇댾␇, q␇댾␇, q␇댾␇);
+Test_N(q␇댿␇, q␇댿␇, q␇댿␇, q␇댿␇, q␇댿␇);
+Test_N(q␇덀␇, q␇덀␇, q␇덀␇, q␇덀␇, q␇덀␇);
+Test_N(q␇덁␇, q␇덁␇, q␇덁␇, q␇덁␇, q␇덁␇);
+Test_N(q␇덂␇, q␇덂␇, q␇덂␇, q␇덂␇, q␇덂␇);
+Test_N(q␇덃␇, q␇덃␇, q␇덃␇, q␇덃␇, q␇덃␇);
+Test_N(q␇덄␇, q␇덄␇, q␇덄␇, q␇덄␇, q␇덄␇);
+Test_N(q␇덅␇, q␇덅␇, q␇덅␇, q␇덅␇, q␇덅␇);
+Test_N(q␇덆␇, q␇덆␇, q␇덆␇, q␇덆␇, q␇덆␇);
+Test_N(q␇덇␇, q␇덇␇, q␇덇␇, q␇덇␇, q␇덇␇);
+Test_N(q␇덈␇, q␇덈␇, q␇덈␇, q␇덈␇, q␇덈␇);
+Test_N(q␇덉␇, q␇덉␇, q␇덉␇, q␇덉␇, q␇덉␇);
+Test_N(q␇덊␇, q␇덊␇, q␇덊␇, q␇덊␇, q␇덊␇);
+Test_N(q␇덋␇, q␇덋␇, q␇덋␇, q␇덋␇, q␇덋␇);
+Test_N(q␇덌␇, q␇덌␇, q␇덌␇, q␇덌␇, q␇덌␇);
+Test_N(q␇덍␇, q␇덍␇, q␇덍␇, q␇덍␇, q␇덍␇);
+Test_N(q␇덎␇, q␇덎␇, q␇덎␇, q␇덎␇, q␇덎␇);
+Test_N(q␇덏␇, q␇덏␇, q␇덏␇, q␇덏␇, q␇덏␇);
+Test_N(q␇덐␇, q␇덐␇, q␇덐␇, q␇덐␇, q␇덐␇);
+Test_N(q␇덑␇, q␇덑␇, q␇덑␇, q␇덑␇, q␇덑␇);
+Test_N(q␇덒␇, q␇덒␇, q␇덒␇, q␇덒␇, q␇덒␇);
+Test_N(q␇덓␇, q␇덓␇, q␇덓␇, q␇덓␇, q␇덓␇);
+Test_N(q␇더␇, q␇더␇, q␇더␇, q␇더␇, q␇더␇);
+Test_N(q␇덕␇, q␇덕␇, q␇덕␇, q␇덕␇, q␇덕␇);
+Test_N(q␇덖␇, q␇덖␇, q␇덖␇, q␇덖␇, q␇덖␇);
+Test_N(q␇덗␇, q␇덗␇, q␇덗␇, q␇덗␇, q␇덗␇);
+Test_N(q␇던␇, q␇던␇, q␇던␇, q␇던␇, q␇던␇);
+Test_N(q␇덙␇, q␇덙␇, q␇덙␇, q␇덙␇, q␇덙␇);
+Test_N(q␇덚␇, q␇덚␇, q␇덚␇, q␇덚␇, q␇덚␇);
+Test_N(q␇덛␇, q␇덛␇, q␇덛␇, q␇덛␇, q␇덛␇);
+Test_N(q␇덜␇, q␇덜␇, q␇덜␇, q␇덜␇, q␇덜␇);
+Test_N(q␇덝␇, q␇덝␇, q␇덝␇, q␇덝␇, q␇덝␇);
+Test_N(q␇덞␇, q␇덞␇, q␇덞␇, q␇덞␇, q␇덞␇);
+Test_N(q␇덟␇, q␇덟␇, q␇덟␇, q␇덟␇, q␇덟␇);
+Test_N(q␇덠␇, q␇덠␇, q␇덠␇, q␇덠␇, q␇덠␇);
+Test_N(q␇덡␇, q␇덡␇, q␇덡␇, q␇덡␇, q␇덡␇);
+Test_N(q␇덢␇, q␇덢␇, q␇덢␇, q␇덢␇, q␇덢␇);
+Test_N(q␇덣␇, q␇덣␇, q␇덣␇, q␇덣␇, q␇덣␇);
+Test_N(q␇덤␇, q␇덤␇, q␇덤␇, q␇덤␇, q␇덤␇);
+Test_N(q␇덥␇, q␇덥␇, q␇덥␇, q␇덥␇, q␇덥␇);
+Test_N(q␇덦␇, q␇덦␇, q␇덦␇, q␇덦␇, q␇덦␇);
+Test_N(q␇덧␇, q␇덧␇, q␇덧␇, q␇덧␇, q␇덧␇);
+Test_N(q␇덨␇, q␇덨␇, q␇덨␇, q␇덨␇, q␇덨␇);
+Test_N(q␇덩␇, q␇덩␇, q␇덩␇, q␇덩␇, q␇덩␇);
+Test_N(q␇덪␇, q␇덪␇, q␇덪␇, q␇덪␇, q␇덪␇);
+Test_N(q␇덫␇, q␇덫␇, q␇덫␇, q␇덫␇, q␇덫␇);
+Test_N(q␇덬␇, q␇덬␇, q␇덬␇, q␇덬␇, q␇덬␇);
+Test_N(q␇덭␇, q␇덭␇, q␇덭␇, q␇덭␇, q␇덭␇);
+Test_N(q␇덮␇, q␇덮␇, q␇덮␇, q␇덮␇, q␇덮␇);
+Test_N(q␇덯␇, q␇덯␇, q␇덯␇, q␇덯␇, q␇덯␇);
+Test_N(q␇데␇, q␇데␇, q␇데␇, q␇데␇, q␇데␇);
+Test_N(q␇덱␇, q␇덱␇, q␇덱␇, q␇덱␇, q␇덱␇);
+Test_N(q␇덲␇, q␇덲␇, q␇덲␇, q␇덲␇, q␇덲␇);
+Test_N(q␇덳␇, q␇덳␇, q␇덳␇, q␇덳␇, q␇덳␇);
+Test_N(q␇덴␇, q␇덴␇, q␇덴␇, q␇덴␇, q␇덴␇);
+Test_N(q␇덵␇, q␇덵␇, q␇덵␇, q␇덵␇, q␇덵␇);
+Test_N(q␇덶␇, q␇덶␇, q␇덶␇, q␇덶␇, q␇덶␇);
+Test_N(q␇덷␇, q␇덷␇, q␇덷␇, q␇덷␇, q␇덷␇);
+Test_N(q␇델␇, q␇델␇, q␇델␇, q␇델␇, q␇델␇);
+Test_N(q␇덹␇, q␇덹␇, q␇덹␇, q␇덹␇, q␇덹␇);
+Test_N(q␇덺␇, q␇덺␇, q␇덺␇, q␇덺␇, q␇덺␇);
+Test_N(q␇덻␇, q␇덻␇, q␇덻␇, q␇덻␇, q␇덻␇);
+Test_N(q␇덼␇, q␇덼␇, q␇덼␇, q␇덼␇, q␇덼␇);
+Test_N(q␇덽␇, q␇덽␇, q␇덽␇, q␇덽␇, q␇덽␇);
+Test_N(q␇덾␇, q␇덾␇, q␇덾␇, q␇덾␇, q␇덾␇);
+Test_N(q␇덿␇, q␇덿␇, q␇덿␇, q␇덿␇, q␇덿␇);
+Test_N(q␇뎀␇, q␇뎀␇, q␇뎀␇, q␇뎀␇, q␇뎀␇);
+Test_N(q␇뎁␇, q␇뎁␇, q␇뎁␇, q␇뎁␇, q␇뎁␇);
+Test_N(q␇뎂␇, q␇뎂␇, q␇뎂␇, q␇뎂␇, q␇뎂␇);
+Test_N(q␇뎃␇, q␇뎃␇, q␇뎃␇, q␇뎃␇, q␇뎃␇);
+Test_N(q␇뎄␇, q␇뎄␇, q␇뎄␇, q␇뎄␇, q␇뎄␇);
+Test_N(q␇뎅␇, q␇뎅␇, q␇뎅␇, q␇뎅␇, q␇뎅␇);
+Test_N(q␇뎆␇, q␇뎆␇, q␇뎆␇, q␇뎆␇, q␇뎆␇);
+Test_N(q␇뎇␇, q␇뎇␇, q␇뎇␇, q␇뎇␇, q␇뎇␇);
+Test_N(q␇뎈␇, q␇뎈␇, q␇뎈␇, q␇뎈␇, q␇뎈␇);
+Test_N(q␇뎉␇, q␇뎉␇, q␇뎉␇, q␇뎉␇, q␇뎉␇);
+Test_N(q␇뎊␇, q␇뎊␇, q␇뎊␇, q␇뎊␇, q␇뎊␇);
+Test_N(q␇뎋␇, q␇뎋␇, q␇뎋␇, q␇뎋␇, q␇뎋␇);
+Test_N(q␇뎌␇, q␇뎌␇, q␇뎌␇, q␇뎌␇, q␇뎌␇);
+Test_N(q␇뎍␇, q␇뎍␇, q␇뎍␇, q␇뎍␇, q␇뎍␇);
+Test_N(q␇뎎␇, q␇뎎␇, q␇뎎␇, q␇뎎␇, q␇뎎␇);
+Test_N(q␇뎏␇, q␇뎏␇, q␇뎏␇, q␇뎏␇, q␇뎏␇);
+Test_N(q␇뎐␇, q␇뎐␇, q␇뎐␇, q␇뎐␇, q␇뎐␇);
+Test_N(q␇뎑␇, q␇뎑␇, q␇뎑␇, q␇뎑␇, q␇뎑␇);
+Test_N(q␇뎒␇, q␇뎒␇, q␇뎒␇, q␇뎒␇, q␇뎒␇);
+Test_N(q␇뎓␇, q␇뎓␇, q␇뎓␇, q␇뎓␇, q␇뎓␇);
+Test_N(q␇뎔␇, q␇뎔␇, q␇뎔␇, q␇뎔␇, q␇뎔␇);
+Test_N(q␇뎕␇, q␇뎕␇, q␇뎕␇, q␇뎕␇, q␇뎕␇);
+Test_N(q␇뎖␇, q␇뎖␇, q␇뎖␇, q␇뎖␇, q␇뎖␇);
+Test_N(q␇뎗␇, q␇뎗␇, q␇뎗␇, q␇뎗␇, q␇뎗␇);
+Test_N(q␇뎘␇, q␇뎘␇, q␇뎘␇, q␇뎘␇, q␇뎘␇);
+Test_N(q␇뎙␇, q␇뎙␇, q␇뎙␇, q␇뎙␇, q␇뎙␇);
+Test_N(q␇뎚␇, q␇뎚␇, q␇뎚␇, q␇뎚␇, q␇뎚␇);
+Test_N(q␇뎛␇, q␇뎛␇, q␇뎛␇, q␇뎛␇, q␇뎛␇);
+Test_N(q␇뎜␇, q␇뎜␇, q␇뎜␇, q␇뎜␇, q␇뎜␇);
+Test_N(q␇뎝␇, q␇뎝␇, q␇뎝␇, q␇뎝␇, q␇뎝␇);
+Test_N(q␇뎞␇, q␇뎞␇, q␇뎞␇, q␇뎞␇, q␇뎞␇);
+Test_N(q␇뎟␇, q␇뎟␇, q␇뎟␇, q␇뎟␇, q␇뎟␇);
+Test_N(q␇뎠␇, q␇뎠␇, q␇뎠␇, q␇뎠␇, q␇뎠␇);
+Test_N(q␇뎡␇, q␇뎡␇, q␇뎡␇, q␇뎡␇, q␇뎡␇);
+Test_N(q␇뎢␇, q␇뎢␇, q␇뎢␇, q␇뎢␇, q␇뎢␇);
+Test_N(q␇뎣␇, q␇뎣␇, q␇뎣␇, q␇뎣␇, q␇뎣␇);
+Test_N(q␇뎤␇, q␇뎤␇, q␇뎤␇, q␇뎤␇, q␇뎤␇);
+Test_N(q␇뎥␇, q␇뎥␇, q␇뎥␇, q␇뎥␇, q␇뎥␇);
+Test_N(q␇뎦␇, q␇뎦␇, q␇뎦␇, q␇뎦␇, q␇뎦␇);
+Test_N(q␇뎧␇, q␇뎧␇, q␇뎧␇, q␇뎧␇, q␇뎧␇);
+Test_N(q␇뎨␇, q␇뎨␇, q␇뎨␇, q␇뎨␇, q␇뎨␇);
+Test_N(q␇뎩␇, q␇뎩␇, q␇뎩␇, q␇뎩␇, q␇뎩␇);
+Test_N(q␇뎪␇, q␇뎪␇, q␇뎪␇, q␇뎪␇, q␇뎪␇);
+Test_N(q␇뎫␇, q␇뎫␇, q␇뎫␇, q␇뎫␇, q␇뎫␇);
+Test_N(q␇뎬␇, q␇뎬␇, q␇뎬␇, q␇뎬␇, q␇뎬␇);
+Test_N(q␇뎭␇, q␇뎭␇, q␇뎭␇, q␇뎭␇, q␇뎭␇);
+Test_N(q␇뎮␇, q␇뎮␇, q␇뎮␇, q␇뎮␇, q␇뎮␇);
+Test_N(q␇뎯␇, q␇뎯␇, q␇뎯␇, q␇뎯␇, q␇뎯␇);
+Test_N(q␇뎰␇, q␇뎰␇, q␇뎰␇, q␇뎰␇, q␇뎰␇);
+Test_N(q␇뎱␇, q␇뎱␇, q␇뎱␇, q␇뎱␇, q␇뎱␇);
+Test_N(q␇뎲␇, q␇뎲␇, q␇뎲␇, q␇뎲␇, q␇뎲␇);
+Test_N(q␇뎳␇, q␇뎳␇, q␇뎳␇, q␇뎳␇, q␇뎳␇);
+Test_N(q␇뎴␇, q␇뎴␇, q␇뎴␇, q␇뎴␇, q␇뎴␇);
+Test_N(q␇뎵␇, q␇뎵␇, q␇뎵␇, q␇뎵␇, q␇뎵␇);
+Test_N(q␇뎶␇, q␇뎶␇, q␇뎶␇, q␇뎶␇, q␇뎶␇);
+Test_N(q␇뎷␇, q␇뎷␇, q␇뎷␇, q␇뎷␇, q␇뎷␇);
+Test_N(q␇뎸␇, q␇뎸␇, q␇뎸␇, q␇뎸␇, q␇뎸␇);
+Test_N(q␇뎹␇, q␇뎹␇, q␇뎹␇, q␇뎹␇, q␇뎹␇);
+Test_N(q␇뎺␇, q␇뎺␇, q␇뎺␇, q␇뎺␇, q␇뎺␇);
+Test_N(q␇뎻␇, q␇뎻␇, q␇뎻␇, q␇뎻␇, q␇뎻␇);
+Test_N(q␇뎼␇, q␇뎼␇, q␇뎼␇, q␇뎼␇, q␇뎼␇);
+Test_N(q␇뎽␇, q␇뎽␇, q␇뎽␇, q␇뎽␇, q␇뎽␇);
+Test_N(q␇뎾␇, q␇뎾␇, q␇뎾␇, q␇뎾␇, q␇뎾␇);
+Test_N(q␇뎿␇, q␇뎿␇, q␇뎿␇, q␇뎿␇, q␇뎿␇);
+Test_N(q␇돀␇, q␇돀␇, q␇돀␇, q␇돀␇, q␇돀␇);
+Test_N(q␇돁␇, q␇돁␇, q␇돁␇, q␇돁␇, q␇돁␇);
+Test_N(q␇돂␇, q␇돂␇, q␇돂␇, q␇돂␇, q␇돂␇);
+Test_N(q␇돃␇, q␇돃␇, q␇돃␇, q␇돃␇, q␇돃␇);
+Test_N(q␇도␇, q␇도␇, q␇도␇, q␇도␇, q␇도␇);
+Test_N(q␇독␇, q␇독␇, q␇독␇, q␇독␇, q␇독␇);
+Test_N(q␇돆␇, q␇돆␇, q␇돆␇, q␇돆␇, q␇돆␇);
+Test_N(q␇돇␇, q␇돇␇, q␇돇␇, q␇돇␇, q␇돇␇);
+Test_N(q␇돈␇, q␇돈␇, q␇돈␇, q␇돈␇, q␇돈␇);
+Test_N(q␇돉␇, q␇돉␇, q␇돉␇, q␇돉␇, q␇돉␇);
+Test_N(q␇돊␇, q␇돊␇, q␇돊␇, q␇돊␇, q␇돊␇);
+Test_N(q␇돋␇, q␇돋␇, q␇돋␇, q␇돋␇, q␇돋␇);
+Test_N(q␇돌␇, q␇돌␇, q␇돌␇, q␇돌␇, q␇돌␇);
+Test_N(q␇돍␇, q␇돍␇, q␇돍␇, q␇돍␇, q␇돍␇);
+Test_N(q␇돎␇, q␇돎␇, q␇돎␇, q␇돎␇, q␇돎␇);
+Test_N(q␇돏␇, q␇돏␇, q␇돏␇, q␇돏␇, q␇돏␇);
+Test_N(q␇돐␇, q␇돐␇, q␇돐␇, q␇돐␇, q␇돐␇);
+Test_N(q␇돑␇, q␇돑␇, q␇돑␇, q␇돑␇, q␇돑␇);
+Test_N(q␇돒␇, q␇돒␇, q␇돒␇, q␇돒␇, q␇돒␇);
+Test_N(q␇돓␇, q␇돓␇, q␇돓␇, q␇돓␇, q␇돓␇);
+Test_N(q␇돔␇, q␇돔␇, q␇돔␇, q␇돔␇, q␇돔␇);
+Test_N(q␇돕␇, q␇돕␇, q␇돕␇, q␇돕␇, q␇돕␇);
+Test_N(q␇돖␇, q␇돖␇, q␇돖␇, q␇돖␇, q␇돖␇);
+Test_N(q␇돗␇, q␇돗␇, q␇돗␇, q␇돗␇, q␇돗␇);
+Test_N(q␇돘␇, q␇돘␇, q␇돘␇, q␇돘␇, q␇돘␇);
+Test_N(q␇동␇, q␇동␇, q␇동␇, q␇동␇, q␇동␇);
+Test_N(q␇돚␇, q␇돚␇, q␇돚␇, q␇돚␇, q␇돚␇);
+Test_N(q␇돛␇, q␇돛␇, q␇돛␇, q␇돛␇, q␇돛␇);
+Test_N(q␇돜␇, q␇돜␇, q␇돜␇, q␇돜␇, q␇돜␇);
+Test_N(q␇돝␇, q␇돝␇, q␇돝␇, q␇돝␇, q␇돝␇);
+Test_N(q␇돞␇, q␇돞␇, q␇돞␇, q␇돞␇, q␇돞␇);
+Test_N(q␇돟␇, q␇돟␇, q␇돟␇, q␇돟␇, q␇돟␇);
+Test_N(q␇돠␇, q␇돠␇, q␇돠␇, q␇돠␇, q␇돠␇);
+Test_N(q␇돡␇, q␇돡␇, q␇돡␇, q␇돡␇, q␇돡␇);
+Test_N(q␇돢␇, q␇돢␇, q␇돢␇, q␇돢␇, q␇돢␇);
+Test_N(q␇돣␇, q␇돣␇, q␇돣␇, q␇돣␇, q␇돣␇);
+Test_N(q␇돤␇, q␇돤␇, q␇돤␇, q␇돤␇, q␇돤␇);
+Test_N(q␇돥␇, q␇돥␇, q␇돥␇, q␇돥␇, q␇돥␇);
+Test_N(q␇돦␇, q␇돦␇, q␇돦␇, q␇돦␇, q␇돦␇);
+Test_N(q␇돧␇, q␇돧␇, q␇돧␇, q␇돧␇, q␇돧␇);
+Test_N(q␇돨␇, q␇돨␇, q␇돨␇, q␇돨␇, q␇돨␇);
+Test_N(q␇돩␇, q␇돩␇, q␇돩␇, q␇돩␇, q␇돩␇);
+Test_N(q␇돪␇, q␇돪␇, q␇돪␇, q␇돪␇, q␇돪␇);
+Test_N(q␇돫␇, q␇돫␇, q␇돫␇, q␇돫␇, q␇돫␇);
+Test_N(q␇돬␇, q␇돬␇, q␇돬␇, q␇돬␇, q␇돬␇);
+Test_N(q␇돭␇, q␇돭␇, q␇돭␇, q␇돭␇, q␇돭␇);
+Test_N(q␇돮␇, q␇돮␇, q␇돮␇, q␇돮␇, q␇돮␇);
+Test_N(q␇돯␇, q␇돯␇, q␇돯␇, q␇돯␇, q␇돯␇);
+Test_N(q␇돰␇, q␇돰␇, q␇돰␇, q␇돰␇, q␇돰␇);
+Test_N(q␇돱␇, q␇돱␇, q␇돱␇, q␇돱␇, q␇돱␇);
+Test_N(q␇돲␇, q␇돲␇, q␇돲␇, q␇돲␇, q␇돲␇);
+Test_N(q␇돳␇, q␇돳␇, q␇돳␇, q␇돳␇, q␇돳␇);
+Test_N(q␇돴␇, q␇돴␇, q␇돴␇, q␇돴␇, q␇돴␇);
+Test_N(q␇돵␇, q␇돵␇, q␇돵␇, q␇돵␇, q␇돵␇);
+Test_N(q␇돶␇, q␇돶␇, q␇돶␇, q␇돶␇, q␇돶␇);
+Test_N(q␇돷␇, q␇돷␇, q␇돷␇, q␇돷␇, q␇돷␇);
+Test_N(q␇돸␇, q␇돸␇, q␇돸␇, q␇돸␇, q␇돸␇);
+Test_N(q␇돹␇, q␇돹␇, q␇돹␇, q␇돹␇, q␇돹␇);
+Test_N(q␇돺␇, q␇돺␇, q␇돺␇, q␇돺␇, q␇돺␇);
+Test_N(q␇돻␇, q␇돻␇, q␇돻␇, q␇돻␇, q␇돻␇);
+Test_N(q␇돼␇, q␇돼␇, q␇돼␇, q␇돼␇, q␇돼␇);
+Test_N(q␇돽␇, q␇돽␇, q␇돽␇, q␇돽␇, q␇돽␇);
+Test_N(q␇돾␇, q␇돾␇, q␇돾␇, q␇돾␇, q␇돾␇);
+Test_N(q␇돿␇, q␇돿␇, q␇돿␇, q␇돿␇, q␇돿␇);
+Test_N(q␇됀␇, q␇됀␇, q␇됀␇, q␇됀␇, q␇됀␇);
+Test_N(q␇됁␇, q␇됁␇, q␇됁␇, q␇됁␇, q␇됁␇);
+Test_N(q␇됂␇, q␇됂␇, q␇됂␇, q␇됂␇, q␇됂␇);
+Test_N(q␇됃␇, q␇됃␇, q␇됃␇, q␇됃␇, q␇됃␇);
+Test_N(q␇됄␇, q␇됄␇, q␇됄␇, q␇됄␇, q␇됄␇);
+Test_N(q␇됅␇, q␇됅␇, q␇됅␇, q␇됅␇, q␇됅␇);
+Test_N(q␇됆␇, q␇됆␇, q␇됆␇, q␇됆␇, q␇됆␇);
+Test_N(q␇됇␇, q␇됇␇, q␇됇␇, q␇됇␇, q␇됇␇);
+Test_N(q␇됈␇, q␇됈␇, q␇됈␇, q␇됈␇, q␇됈␇);
+Test_N(q␇됉␇, q␇됉␇, q␇됉␇, q␇됉␇, q␇됉␇);
+Test_N(q␇됊␇, q␇됊␇, q␇됊␇, q␇됊␇, q␇됊␇);
+Test_N(q␇됋␇, q␇됋␇, q␇됋␇, q␇됋␇, q␇됋␇);
+Test_N(q␇됌␇, q␇됌␇, q␇됌␇, q␇됌␇, q␇됌␇);
+Test_N(q␇됍␇, q␇됍␇, q␇됍␇, q␇됍␇, q␇됍␇);
+Test_N(q␇됎␇, q␇됎␇, q␇됎␇, q␇됎␇, q␇됎␇);
+Test_N(q␇됏␇, q␇됏␇, q␇됏␇, q␇됏␇, q␇됏␇);
+Test_N(q␇됐␇, q␇됐␇, q␇됐␇, q␇됐␇, q␇됐␇);
+Test_N(q␇됑␇, q␇됑␇, q␇됑␇, q␇됑␇, q␇됑␇);
+Test_N(q␇됒␇, q␇됒␇, q␇됒␇, q␇됒␇, q␇됒␇);
+Test_N(q␇됓␇, q␇됓␇, q␇됓␇, q␇됓␇, q␇됓␇);
+Test_N(q␇됔␇, q␇됔␇, q␇됔␇, q␇됔␇, q␇됔␇);
+Test_N(q␇됕␇, q␇됕␇, q␇됕␇, q␇됕␇, q␇됕␇);
+Test_N(q␇됖␇, q␇됖␇, q␇됖␇, q␇됖␇, q␇됖␇);
+Test_N(q␇됗␇, q␇됗␇, q␇됗␇, q␇됗␇, q␇됗␇);
+Test_N(q␇되␇, q␇되␇, q␇되␇, q␇되␇, q␇되␇);
+Test_N(q␇됙␇, q␇됙␇, q␇됙␇, q␇됙␇, q␇됙␇);
+Test_N(q␇됚␇, q␇됚␇, q␇됚␇, q␇됚␇, q␇됚␇);
+Test_N(q␇됛␇, q␇됛␇, q␇됛␇, q␇됛␇, q␇됛␇);
+Test_N(q␇된␇, q␇된␇, q␇된␇, q␇된␇, q␇된␇);
+Test_N(q␇됝␇, q␇됝␇, q␇됝␇, q␇됝␇, q␇됝␇);
+Test_N(q␇됞␇, q␇됞␇, q␇됞␇, q␇됞␇, q␇됞␇);
+Test_N(q␇됟␇, q␇됟␇, q␇됟␇, q␇됟␇, q␇됟␇);
+Test_N(q␇될␇, q␇될␇, q␇될␇, q␇될␇, q␇될␇);
+Test_N(q␇됡␇, q␇됡␇, q␇됡␇, q␇됡␇, q␇됡␇);
+Test_N(q␇됢␇, q␇됢␇, q␇됢␇, q␇됢␇, q␇됢␇);
+Test_N(q␇됣␇, q␇됣␇, q␇됣␇, q␇됣␇, q␇됣␇);
+Test_N(q␇됤␇, q␇됤␇, q␇됤␇, q␇됤␇, q␇됤␇);
+Test_N(q␇됥␇, q␇됥␇, q␇됥␇, q␇됥␇, q␇됥␇);
+Test_N(q␇됦␇, q␇됦␇, q␇됦␇, q␇됦␇, q␇됦␇);
+Test_N(q␇됧␇, q␇됧␇, q␇됧␇, q␇됧␇, q␇됧␇);
+Test_N(q␇됨␇, q␇됨␇, q␇됨␇, q␇됨␇, q␇됨␇);
+Test_N(q␇됩␇, q␇됩␇, q␇됩␇, q␇됩␇, q␇됩␇);
+Test_N(q␇됪␇, q␇됪␇, q␇됪␇, q␇됪␇, q␇됪␇);
+Test_N(q␇됫␇, q␇됫␇, q␇됫␇, q␇됫␇, q␇됫␇);
+Test_N(q␇됬␇, q␇됬␇, q␇됬␇, q␇됬␇, q␇됬␇);
+Test_N(q␇됭␇, q␇됭␇, q␇됭␇, q␇됭␇, q␇됭␇);
+Test_N(q␇됮␇, q␇됮␇, q␇됮␇, q␇됮␇, q␇됮␇);
+Test_N(q␇됯␇, q␇됯␇, q␇됯␇, q␇됯␇, q␇됯␇);
+Test_N(q␇됰␇, q␇됰␇, q␇됰␇, q␇됰␇, q␇됰␇);
+Test_N(q␇됱␇, q␇됱␇, q␇됱␇, q␇됱␇, q␇됱␇);
+Test_N(q␇됲␇, q␇됲␇, q␇됲␇, q␇됲␇, q␇됲␇);
+Test_N(q␇됳␇, q␇됳␇, q␇됳␇, q␇됳␇, q␇됳␇);
+Test_N(q␇됴␇, q␇됴␇, q␇됴␇, q␇됴␇, q␇됴␇);
+Test_N(q␇됵␇, q␇됵␇, q␇됵␇, q␇됵␇, q␇됵␇);
+Test_N(q␇됶␇, q␇됶␇, q␇됶␇, q␇됶␇, q␇됶␇);
+Test_N(q␇됷␇, q␇됷␇, q␇됷␇, q␇됷␇, q␇됷␇);
+Test_N(q␇됸␇, q␇됸␇, q␇됸␇, q␇됸␇, q␇됸␇);
+Test_N(q␇됹␇, q␇됹␇, q␇됹␇, q␇됹␇, q␇됹␇);
+Test_N(q␇됺␇, q␇됺␇, q␇됺␇, q␇됺␇, q␇됺␇);
+Test_N(q␇됻␇, q␇됻␇, q␇됻␇, q␇됻␇, q␇됻␇);
+Test_N(q␇됼␇, q␇됼␇, q␇됼␇, q␇됼␇, q␇됼␇);
+Test_N(q␇됽␇, q␇됽␇, q␇됽␇, q␇됽␇, q␇됽␇);
+Test_N(q␇됾␇, q␇됾␇, q␇됾␇, q␇됾␇, q␇됾␇);
+Test_N(q␇됿␇, q␇됿␇, q␇됿␇, q␇됿␇, q␇됿␇);
+Test_N(q␇둀␇, q␇둀␇, q␇둀␇, q␇둀␇, q␇둀␇);
+Test_N(q␇둁␇, q␇둁␇, q␇둁␇, q␇둁␇, q␇둁␇);
+Test_N(q␇둂␇, q␇둂␇, q␇둂␇, q␇둂␇, q␇둂␇);
+Test_N(q␇둃␇, q␇둃␇, q␇둃␇, q␇둃␇, q␇둃␇);
+Test_N(q␇둄␇, q␇둄␇, q␇둄␇, q␇둄␇, q␇둄␇);
+Test_N(q␇둅␇, q␇둅␇, q␇둅␇, q␇둅␇, q␇둅␇);
+Test_N(q␇둆␇, q␇둆␇, q␇둆␇, q␇둆␇, q␇둆␇);
+Test_N(q␇둇␇, q␇둇␇, q␇둇␇, q␇둇␇, q␇둇␇);
+Test_N(q␇둈␇, q␇둈␇, q␇둈␇, q␇둈␇, q␇둈␇);
+Test_N(q␇둉␇, q␇둉␇, q␇둉␇, q␇둉␇, q␇둉␇);
+Test_N(q␇둊␇, q␇둊␇, q␇둊␇, q␇둊␇, q␇둊␇);
+Test_N(q␇둋␇, q␇둋␇, q␇둋␇, q␇둋␇, q␇둋␇);
+Test_N(q␇둌␇, q␇둌␇, q␇둌␇, q␇둌␇, q␇둌␇);
+Test_N(q␇둍␇, q␇둍␇, q␇둍␇, q␇둍␇, q␇둍␇);
+Test_N(q␇둎␇, q␇둎␇, q␇둎␇, q␇둎␇, q␇둎␇);
+Test_N(q␇둏␇, q␇둏␇, q␇둏␇, q␇둏␇, q␇둏␇);
+Test_N(q␇두␇, q␇두␇, q␇두␇, q␇두␇, q␇두␇);
+Test_N(q␇둑␇, q␇둑␇, q␇둑␇, q␇둑␇, q␇둑␇);
+Test_N(q␇둒␇, q␇둒␇, q␇둒␇, q␇둒␇, q␇둒␇);
+Test_N(q␇둓␇, q␇둓␇, q␇둓␇, q␇둓␇, q␇둓␇);
+Test_N(q␇둔␇, q␇둔␇, q␇둔␇, q␇둔␇, q␇둔␇);
+Test_N(q␇둕␇, q␇둕␇, q␇둕␇, q␇둕␇, q␇둕␇);
+Test_N(q␇둖␇, q␇둖␇, q␇둖␇, q␇둖␇, q␇둖␇);
+Test_N(q␇둗␇, q␇둗␇, q␇둗␇, q␇둗␇, q␇둗␇);
+Test_N(q␇둘␇, q␇둘␇, q␇둘␇, q␇둘␇, q␇둘␇);
+Test_N(q␇둙␇, q␇둙␇, q␇둙␇, q␇둙␇, q␇둙␇);
+Test_N(q␇둚␇, q␇둚␇, q␇둚␇, q␇둚␇, q␇둚␇);
+Test_N(q␇둛␇, q␇둛␇, q␇둛␇, q␇둛␇, q␇둛␇);
+Test_N(q␇둜␇, q␇둜␇, q␇둜␇, q␇둜␇, q␇둜␇);
+Test_N(q␇둝␇, q␇둝␇, q␇둝␇, q␇둝␇, q␇둝␇);
+Test_N(q␇둞␇, q␇둞␇, q␇둞␇, q␇둞␇, q␇둞␇);
+Test_N(q␇둟␇, q␇둟␇, q␇둟␇, q␇둟␇, q␇둟␇);
+Test_N(q␇둠␇, q␇둠␇, q␇둠␇, q␇둠␇, q␇둠␇);
+Test_N(q␇둡␇, q␇둡␇, q␇둡␇, q␇둡␇, q␇둡␇);
+Test_N(q␇둢␇, q␇둢␇, q␇둢␇, q␇둢␇, q␇둢␇);
+Test_N(q␇둣␇, q␇둣␇, q␇둣␇, q␇둣␇, q␇둣␇);
+Test_N(q␇둤␇, q␇둤␇, q␇둤␇, q␇둤␇, q␇둤␇);
+Test_N(q␇둥␇, q␇둥␇, q␇둥␇, q␇둥␇, q␇둥␇);
+Test_N(q␇둦␇, q␇둦␇, q␇둦␇, q␇둦␇, q␇둦␇);
+Test_N(q␇둧␇, q␇둧␇, q␇둧␇, q␇둧␇, q␇둧␇);
+Test_N(q␇둨␇, q␇둨␇, q␇둨␇, q␇둨␇, q␇둨␇);
+Test_N(q␇둩␇, q␇둩␇, q␇둩␇, q␇둩␇, q␇둩␇);
+Test_N(q␇둪␇, q␇둪␇, q␇둪␇, q␇둪␇, q␇둪␇);
+Test_N(q␇둫␇, q␇둫␇, q␇둫␇, q␇둫␇, q␇둫␇);
+Test_N(q␇둬␇, q␇둬␇, q␇둬␇, q␇둬␇, q␇둬␇);
+Test_N(q␇둭␇, q␇둭␇, q␇둭␇, q␇둭␇, q␇둭␇);
+Test_N(q␇둮␇, q␇둮␇, q␇둮␇, q␇둮␇, q␇둮␇);
+Test_N(q␇둯␇, q␇둯␇, q␇둯␇, q␇둯␇, q␇둯␇);
+Test_N(q␇둰␇, q␇둰␇, q␇둰␇, q␇둰␇, q␇둰␇);
+Test_N(q␇둱␇, q␇둱␇, q␇둱␇, q␇둱␇, q␇둱␇);
+Test_N(q␇둲␇, q␇둲␇, q␇둲␇, q␇둲␇, q␇둲␇);
+Test_N(q␇둳␇, q␇둳␇, q␇둳␇, q␇둳␇, q␇둳␇);
+Test_N(q␇둴␇, q␇둴␇, q␇둴␇, q␇둴␇, q␇둴␇);
+Test_N(q␇둵␇, q␇둵␇, q␇둵␇, q␇둵␇, q␇둵␇);
+Test_N(q␇둶␇, q␇둶␇, q␇둶␇, q␇둶␇, q␇둶␇);
+Test_N(q␇둷␇, q␇둷␇, q␇둷␇, q␇둷␇, q␇둷␇);
+Test_N(q␇둸␇, q␇둸␇, q␇둸␇, q␇둸␇, q␇둸␇);
+Test_N(q␇둹␇, q␇둹␇, q␇둹␇, q␇둹␇, q␇둹␇);
+Test_N(q␇둺␇, q␇둺␇, q␇둺␇, q␇둺␇, q␇둺␇);
+Test_N(q␇둻␇, q␇둻␇, q␇둻␇, q␇둻␇, q␇둻␇);
+Test_N(q␇둼␇, q␇둼␇, q␇둼␇, q␇둼␇, q␇둼␇);
+Test_N(q␇둽␇, q␇둽␇, q␇둽␇, q␇둽␇, q␇둽␇);
+Test_N(q␇둾␇, q␇둾␇, q␇둾␇, q␇둾␇, q␇둾␇);
+Test_N(q␇둿␇, q␇둿␇, q␇둿␇, q␇둿␇, q␇둿␇);
+Test_N(q␇뒀␇, q␇뒀␇, q␇뒀␇, q␇뒀␇, q␇뒀␇);
+Test_N(q␇뒁␇, q␇뒁␇, q␇뒁␇, q␇뒁␇, q␇뒁␇);
+Test_N(q␇뒂␇, q␇뒂␇, q␇뒂␇, q␇뒂␇, q␇뒂␇);
+Test_N(q␇뒃␇, q␇뒃␇, q␇뒃␇, q␇뒃␇, q␇뒃␇);
+Test_N(q␇뒄␇, q␇뒄␇, q␇뒄␇, q␇뒄␇, q␇뒄␇);
+Test_N(q␇뒅␇, q␇뒅␇, q␇뒅␇, q␇뒅␇, q␇뒅␇);
+Test_N(q␇뒆␇, q␇뒆␇, q␇뒆␇, q␇뒆␇, q␇뒆␇);
+Test_N(q␇뒇␇, q␇뒇␇, q␇뒇␇, q␇뒇␇, q␇뒇␇);
+Test_N(q␇뒈␇, q␇뒈␇, q␇뒈␇, q␇뒈␇, q␇뒈␇);
+Test_N(q␇뒉␇, q␇뒉␇, q␇뒉␇, q␇뒉␇, q␇뒉␇);
+Test_N(q␇뒊␇, q␇뒊␇, q␇뒊␇, q␇뒊␇, q␇뒊␇);
+Test_N(q␇뒋␇, q␇뒋␇, q␇뒋␇, q␇뒋␇, q␇뒋␇);
+Test_N(q␇뒌␇, q␇뒌␇, q␇뒌␇, q␇뒌␇, q␇뒌␇);
+Test_N(q␇뒍␇, q␇뒍␇, q␇뒍␇, q␇뒍␇, q␇뒍␇);
+Test_N(q␇뒎␇, q␇뒎␇, q␇뒎␇, q␇뒎␇, q␇뒎␇);
+Test_N(q␇뒏␇, q␇뒏␇, q␇뒏␇, q␇뒏␇, q␇뒏␇);
+Test_N(q␇뒐␇, q␇뒐␇, q␇뒐␇, q␇뒐␇, q␇뒐␇);
+Test_N(q␇뒑␇, q␇뒑␇, q␇뒑␇, q␇뒑␇, q␇뒑␇);
+Test_N(q␇뒒␇, q␇뒒␇, q␇뒒␇, q␇뒒␇, q␇뒒␇);
+Test_N(q␇뒓␇, q␇뒓␇, q␇뒓␇, q␇뒓␇, q␇뒓␇);
+Test_N(q␇뒔␇, q␇뒔␇, q␇뒔␇, q␇뒔␇, q␇뒔␇);
+Test_N(q␇뒕␇, q␇뒕␇, q␇뒕␇, q␇뒕␇, q␇뒕␇);
+Test_N(q␇뒖␇, q␇뒖␇, q␇뒖␇, q␇뒖␇, q␇뒖␇);
+Test_N(q␇뒗␇, q␇뒗␇, q␇뒗␇, q␇뒗␇, q␇뒗␇);
+Test_N(q␇뒘␇, q␇뒘␇, q␇뒘␇, q␇뒘␇, q␇뒘␇);
+Test_N(q␇뒙␇, q␇뒙␇, q␇뒙␇, q␇뒙␇, q␇뒙␇);
+Test_N(q␇뒚␇, q␇뒚␇, q␇뒚␇, q␇뒚␇, q␇뒚␇);
+Test_N(q␇뒛␇, q␇뒛␇, q␇뒛␇, q␇뒛␇, q␇뒛␇);
+Test_N(q␇뒜␇, q␇뒜␇, q␇뒜␇, q␇뒜␇, q␇뒜␇);
+Test_N(q␇뒝␇, q␇뒝␇, q␇뒝␇, q␇뒝␇, q␇뒝␇);
+Test_N(q␇뒞␇, q␇뒞␇, q␇뒞␇, q␇뒞␇, q␇뒞␇);
+Test_N(q␇뒟␇, q␇뒟␇, q␇뒟␇, q␇뒟␇, q␇뒟␇);
+Test_N(q␇뒠␇, q␇뒠␇, q␇뒠␇, q␇뒠␇, q␇뒠␇);
+Test_N(q␇뒡␇, q␇뒡␇, q␇뒡␇, q␇뒡␇, q␇뒡␇);
+Test_N(q␇뒢␇, q␇뒢␇, q␇뒢␇, q␇뒢␇, q␇뒢␇);
+Test_N(q␇뒣␇, q␇뒣␇, q␇뒣␇, q␇뒣␇, q␇뒣␇);
+Test_N(q␇뒤␇, q␇뒤␇, q␇뒤␇, q␇뒤␇, q␇뒤␇);
+Test_N(q␇뒥␇, q␇뒥␇, q␇뒥␇, q␇뒥␇, q␇뒥␇);
+Test_N(q␇뒦␇, q␇뒦␇, q␇뒦␇, q␇뒦␇, q␇뒦␇);
+Test_N(q␇뒧␇, q␇뒧␇, q␇뒧␇, q␇뒧␇, q␇뒧␇);
+Test_N(q␇뒨␇, q␇뒨␇, q␇뒨␇, q␇뒨␇, q␇뒨␇);
+Test_N(q␇뒩␇, q␇뒩␇, q␇뒩␇, q␇뒩␇, q␇뒩␇);
+Test_N(q␇뒪␇, q␇뒪␇, q␇뒪␇, q␇뒪␇, q␇뒪␇);
+Test_N(q␇뒫␇, q␇뒫␇, q␇뒫␇, q␇뒫␇, q␇뒫␇);
+Test_N(q␇뒬␇, q␇뒬␇, q␇뒬␇, q␇뒬␇, q␇뒬␇);
+Test_N(q␇뒭␇, q␇뒭␇, q␇뒭␇, q␇뒭␇, q␇뒭␇);
+Test_N(q␇뒮␇, q␇뒮␇, q␇뒮␇, q␇뒮␇, q␇뒮␇);
+Test_N(q␇뒯␇, q␇뒯␇, q␇뒯␇, q␇뒯␇, q␇뒯␇);
+Test_N(q␇뒰␇, q␇뒰␇, q␇뒰␇, q␇뒰␇, q␇뒰␇);
+Test_N(q␇뒱␇, q␇뒱␇, q␇뒱␇, q␇뒱␇, q␇뒱␇);
+Test_N(q␇뒲␇, q␇뒲␇, q␇뒲␇, q␇뒲␇, q␇뒲␇);
+Test_N(q␇뒳␇, q␇뒳␇, q␇뒳␇, q␇뒳␇, q␇뒳␇);
+Test_N(q␇뒴␇, q␇뒴␇, q␇뒴␇, q␇뒴␇, q␇뒴␇);
+Test_N(q␇뒵␇, q␇뒵␇, q␇뒵␇, q␇뒵␇, q␇뒵␇);
+Test_N(q␇뒶␇, q␇뒶␇, q␇뒶␇, q␇뒶␇, q␇뒶␇);
+Test_N(q␇뒷␇, q␇뒷␇, q␇뒷␇, q␇뒷␇, q␇뒷␇);
+Test_N(q␇뒸␇, q␇뒸␇, q␇뒸␇, q␇뒸␇, q␇뒸␇);
+Test_N(q␇뒹␇, q␇뒹␇, q␇뒹␇, q␇뒹␇, q␇뒹␇);
+Test_N(q␇뒺␇, q␇뒺␇, q␇뒺␇, q␇뒺␇, q␇뒺␇);
+Test_N(q␇뒻␇, q␇뒻␇, q␇뒻␇, q␇뒻␇, q␇뒻␇);
+Test_N(q␇뒼␇, q␇뒼␇, q␇뒼␇, q␇뒼␇, q␇뒼␇);
+Test_N(q␇뒽␇, q␇뒽␇, q␇뒽␇, q␇뒽␇, q␇뒽␇);
+Test_N(q␇뒾␇, q␇뒾␇, q␇뒾␇, q␇뒾␇, q␇뒾␇);
+Test_N(q␇뒿␇, q␇뒿␇, q␇뒿␇, q␇뒿␇, q␇뒿␇);
+Test_N(q␇듀␇, q␇듀␇, q␇듀␇, q␇듀␇, q␇듀␇);
+Test_N(q␇듁␇, q␇듁␇, q␇듁␇, q␇듁␇, q␇듁␇);
+Test_N(q␇듂␇, q␇듂␇, q␇듂␇, q␇듂␇, q␇듂␇);
+Test_N(q␇듃␇, q␇듃␇, q␇듃␇, q␇듃␇, q␇듃␇);
+Test_N(q␇듄␇, q␇듄␇, q␇듄␇, q␇듄␇, q␇듄␇);
+Test_N(q␇듅␇, q␇듅␇, q␇듅␇, q␇듅␇, q␇듅␇);
+Test_N(q␇듆␇, q␇듆␇, q␇듆␇, q␇듆␇, q␇듆␇);
+Test_N(q␇듇␇, q␇듇␇, q␇듇␇, q␇듇␇, q␇듇␇);
+Test_N(q␇듈␇, q␇듈␇, q␇듈␇, q␇듈␇, q␇듈␇);
+Test_N(q␇듉␇, q␇듉␇, q␇듉␇, q␇듉␇, q␇듉␇);
+Test_N(q␇듊␇, q␇듊␇, q␇듊␇, q␇듊␇, q␇듊␇);
+Test_N(q␇듋␇, q␇듋␇, q␇듋␇, q␇듋␇, q␇듋␇);
+Test_N(q␇듌␇, q␇듌␇, q␇듌␇, q␇듌␇, q␇듌␇);
+Test_N(q␇듍␇, q␇듍␇, q␇듍␇, q␇듍␇, q␇듍␇);
+Test_N(q␇듎␇, q␇듎␇, q␇듎␇, q␇듎␇, q␇듎␇);
+Test_N(q␇듏␇, q␇듏␇, q␇듏␇, q␇듏␇, q␇듏␇);
+Test_N(q␇듐␇, q␇듐␇, q␇듐␇, q␇듐␇, q␇듐␇);
+Test_N(q␇듑␇, q␇듑␇, q␇듑␇, q␇듑␇, q␇듑␇);
+Test_N(q␇듒␇, q␇듒␇, q␇듒␇, q␇듒␇, q␇듒␇);
+Test_N(q␇듓␇, q␇듓␇, q␇듓␇, q␇듓␇, q␇듓␇);
+Test_N(q␇듔␇, q␇듔␇, q␇듔␇, q␇듔␇, q␇듔␇);
+Test_N(q␇듕␇, q␇듕␇, q␇듕␇, q␇듕␇, q␇듕␇);
+Test_N(q␇듖␇, q␇듖␇, q␇듖␇, q␇듖␇, q␇듖␇);
+Test_N(q␇듗␇, q␇듗␇, q␇듗␇, q␇듗␇, q␇듗␇);
+Test_N(q␇듘␇, q␇듘␇, q␇듘␇, q␇듘␇, q␇듘␇);
+Test_N(q␇듙␇, q␇듙␇, q␇듙␇, q␇듙␇, q␇듙␇);
+Test_N(q␇듚␇, q␇듚␇, q␇듚␇, q␇듚␇, q␇듚␇);
+Test_N(q␇듛␇, q␇듛␇, q␇듛␇, q␇듛␇, q␇듛␇);
+Test_N(q␇드␇, q␇드␇, q␇드␇, q␇드␇, q␇드␇);
+Test_N(q␇득␇, q␇득␇, q␇득␇, q␇득␇, q␇득␇);
+Test_N(q␇듞␇, q␇듞␇, q␇듞␇, q␇듞␇, q␇듞␇);
+Test_N(q␇듟␇, q␇듟␇, q␇듟␇, q␇듟␇, q␇듟␇);
+Test_N(q␇든␇, q␇든␇, q␇든␇, q␇든␇, q␇든␇);
+Test_N(q␇듡␇, q␇듡␇, q␇듡␇, q␇듡␇, q␇듡␇);
+Test_N(q␇듢␇, q␇듢␇, q␇듢␇, q␇듢␇, q␇듢␇);
+Test_N(q␇듣␇, q␇듣␇, q␇듣␇, q␇듣␇, q␇듣␇);
+Test_N(q␇들␇, q␇들␇, q␇들␇, q␇들␇, q␇들␇);
+Test_N(q␇듥␇, q␇듥␇, q␇듥␇, q␇듥␇, q␇듥␇);
+Test_N(q␇듦␇, q␇듦␇, q␇듦␇, q␇듦␇, q␇듦␇);
+Test_N(q␇듧␇, q␇듧␇, q␇듧␇, q␇듧␇, q␇듧␇);
+Test_N(q␇듨␇, q␇듨␇, q␇듨␇, q␇듨␇, q␇듨␇);
+Test_N(q␇듩␇, q␇듩␇, q␇듩␇, q␇듩␇, q␇듩␇);
+Test_N(q␇듪␇, q␇듪␇, q␇듪␇, q␇듪␇, q␇듪␇);
+Test_N(q␇듫␇, q␇듫␇, q␇듫␇, q␇듫␇, q␇듫␇);
+Test_N(q␇듬␇, q␇듬␇, q␇듬␇, q␇듬␇, q␇듬␇);
+Test_N(q␇듭␇, q␇듭␇, q␇듭␇, q␇듭␇, q␇듭␇);
+Test_N(q␇듮␇, q␇듮␇, q␇듮␇, q␇듮␇, q␇듮␇);
+Test_N(q␇듯␇, q␇듯␇, q␇듯␇, q␇듯␇, q␇듯␇);
+Test_N(q␇듰␇, q␇듰␇, q␇듰␇, q␇듰␇, q␇듰␇);
+Test_N(q␇등␇, q␇등␇, q␇등␇, q␇등␇, q␇등␇);
+Test_N(q␇듲␇, q␇듲␇, q␇듲␇, q␇듲␇, q␇듲␇);
+Test_N(q␇듳␇, q␇듳␇, q␇듳␇, q␇듳␇, q␇듳␇);
+Test_N(q␇듴␇, q␇듴␇, q␇듴␇, q␇듴␇, q␇듴␇);
+Test_N(q␇듵␇, q␇듵␇, q␇듵␇, q␇듵␇, q␇듵␇);
+Test_N(q␇듶␇, q␇듶␇, q␇듶␇, q␇듶␇, q␇듶␇);
+Test_N(q␇듷␇, q␇듷␇, q␇듷␇, q␇듷␇, q␇듷␇);
+Test_N(q␇듸␇, q␇듸␇, q␇듸␇, q␇듸␇, q␇듸␇);
+Test_N(q␇듹␇, q␇듹␇, q␇듹␇, q␇듹␇, q␇듹␇);
+Test_N(q␇듺␇, q␇듺␇, q␇듺␇, q␇듺␇, q␇듺␇);
+Test_N(q␇듻␇, q␇듻␇, q␇듻␇, q␇듻␇, q␇듻␇);
+Test_N(q␇듼␇, q␇듼␇, q␇듼␇, q␇듼␇, q␇듼␇);
+Test_N(q␇듽␇, q␇듽␇, q␇듽␇, q␇듽␇, q␇듽␇);
+Test_N(q␇듾␇, q␇듾␇, q␇듾␇, q␇듾␇, q␇듾␇);
+Test_N(q␇듿␇, q␇듿␇, q␇듿␇, q␇듿␇, q␇듿␇);
+Test_N(q␇딀␇, q␇딀␇, q␇딀␇, q␇딀␇, q␇딀␇);
+Test_N(q␇딁␇, q␇딁␇, q␇딁␇, q␇딁␇, q␇딁␇);
+Test_N(q␇딂␇, q␇딂␇, q␇딂␇, q␇딂␇, q␇딂␇);
+Test_N(q␇딃␇, q␇딃␇, q␇딃␇, q␇딃␇, q␇딃␇);
+Test_N(q␇딄␇, q␇딄␇, q␇딄␇, q␇딄␇, q␇딄␇);
+Test_N(q␇딅␇, q␇딅␇, q␇딅␇, q␇딅␇, q␇딅␇);
+Test_N(q␇딆␇, q␇딆␇, q␇딆␇, q␇딆␇, q␇딆␇);
+Test_N(q␇딇␇, q␇딇␇, q␇딇␇, q␇딇␇, q␇딇␇);
+Test_N(q␇딈␇, q␇딈␇, q␇딈␇, q␇딈␇, q␇딈␇);
+Test_N(q␇딉␇, q␇딉␇, q␇딉␇, q␇딉␇, q␇딉␇);
+Test_N(q␇딊␇, q␇딊␇, q␇딊␇, q␇딊␇, q␇딊␇);
+Test_N(q␇딋␇, q␇딋␇, q␇딋␇, q␇딋␇, q␇딋␇);
+Test_N(q␇딌␇, q␇딌␇, q␇딌␇, q␇딌␇, q␇딌␇);
+Test_N(q␇딍␇, q␇딍␇, q␇딍␇, q␇딍␇, q␇딍␇);
+Test_N(q␇딎␇, q␇딎␇, q␇딎␇, q␇딎␇, q␇딎␇);
+Test_N(q␇딏␇, q␇딏␇, q␇딏␇, q␇딏␇, q␇딏␇);
+Test_N(q␇딐␇, q␇딐␇, q␇딐␇, q␇딐␇, q␇딐␇);
+Test_N(q␇딑␇, q␇딑␇, q␇딑␇, q␇딑␇, q␇딑␇);
+Test_N(q␇딒␇, q␇딒␇, q␇딒␇, q␇딒␇, q␇딒␇);
+Test_N(q␇딓␇, q␇딓␇, q␇딓␇, q␇딓␇, q␇딓␇);
+Test_N(q␇디␇, q␇디␇, q␇디␇, q␇디␇, q␇디␇);
+Test_N(q␇딕␇, q␇딕␇, q␇딕␇, q␇딕␇, q␇딕␇);
+Test_N(q␇딖␇, q␇딖␇, q␇딖␇, q␇딖␇, q␇딖␇);
+Test_N(q␇딗␇, q␇딗␇, q␇딗␇, q␇딗␇, q␇딗␇);
+Test_N(q␇딘␇, q␇딘␇, q␇딘␇, q␇딘␇, q␇딘␇);
+Test_N(q␇딙␇, q␇딙␇, q␇딙␇, q␇딙␇, q␇딙␇);
+Test_N(q␇딚␇, q␇딚␇, q␇딚␇, q␇딚␇, q␇딚␇);
+Test_N(q␇딛␇, q␇딛␇, q␇딛␇, q␇딛␇, q␇딛␇);
+Test_N(q␇딜␇, q␇딜␇, q␇딜␇, q␇딜␇, q␇딜␇);
+Test_N(q␇딝␇, q␇딝␇, q␇딝␇, q␇딝␇, q␇딝␇);
+Test_N(q␇딞␇, q␇딞␇, q␇딞␇, q␇딞␇, q␇딞␇);
+Test_N(q␇딟␇, q␇딟␇, q␇딟␇, q␇딟␇, q␇딟␇);
+Test_N(q␇딠␇, q␇딠␇, q␇딠␇, q␇딠␇, q␇딠␇);
+Test_N(q␇딡␇, q␇딡␇, q␇딡␇, q␇딡␇, q␇딡␇);
+Test_N(q␇딢␇, q␇딢␇, q␇딢␇, q␇딢␇, q␇딢␇);
+Test_N(q␇딣␇, q␇딣␇, q␇딣␇, q␇딣␇, q␇딣␇);
+Test_N(q␇딤␇, q␇딤␇, q␇딤␇, q␇딤␇, q␇딤␇);
+Test_N(q␇딥␇, q␇딥␇, q␇딥␇, q␇딥␇, q␇딥␇);
+Test_N(q␇딦␇, q␇딦␇, q␇딦␇, q␇딦␇, q␇딦␇);
+Test_N(q␇딧␇, q␇딧␇, q␇딧␇, q␇딧␇, q␇딧␇);
+Test_N(q␇딨␇, q␇딨␇, q␇딨␇, q␇딨␇, q␇딨␇);
+Test_N(q␇딩␇, q␇딩␇, q␇딩␇, q␇딩␇, q␇딩␇);
+Test_N(q␇딪␇, q␇딪␇, q␇딪␇, q␇딪␇, q␇딪␇);
+Test_N(q␇딫␇, q␇딫␇, q␇딫␇, q␇딫␇, q␇딫␇);
+Test_N(q␇딬␇, q␇딬␇, q␇딬␇, q␇딬␇, q␇딬␇);
+Test_N(q␇딭␇, q␇딭␇, q␇딭␇, q␇딭␇, q␇딭␇);
+Test_N(q␇딮␇, q␇딮␇, q␇딮␇, q␇딮␇, q␇딮␇);
+Test_N(q␇딯␇, q␇딯␇, q␇딯␇, q␇딯␇, q␇딯␇);
+Test_N(q␇따␇, q␇따␇, q␇따␇, q␇따␇, q␇따␇);
+Test_N(q␇딱␇, q␇딱␇, q␇딱␇, q␇딱␇, q␇딱␇);
+Test_N(q␇딲␇, q␇딲␇, q␇딲␇, q␇딲␇, q␇딲␇);
+Test_N(q␇딳␇, q␇딳␇, q␇딳␇, q␇딳␇, q␇딳␇);
+Test_N(q␇딴␇, q␇딴␇, q␇딴␇, q␇딴␇, q␇딴␇);
+Test_N(q␇딵␇, q␇딵␇, q␇딵␇, q␇딵␇, q␇딵␇);
+Test_N(q␇딶␇, q␇딶␇, q␇딶␇, q␇딶␇, q␇딶␇);
+Test_N(q␇딷␇, q␇딷␇, q␇딷␇, q␇딷␇, q␇딷␇);
+Test_N(q␇딸␇, q␇딸␇, q␇딸␇, q␇딸␇, q␇딸␇);
+Test_N(q␇딹␇, q␇딹␇, q␇딹␇, q␇딹␇, q␇딹␇);
+Test_N(q␇딺␇, q␇딺␇, q␇딺␇, q␇딺␇, q␇딺␇);
+Test_N(q␇딻␇, q␇딻␇, q␇딻␇, q␇딻␇, q␇딻␇);
+Test_N(q␇딼␇, q␇딼␇, q␇딼␇, q␇딼␇, q␇딼␇);
+Test_N(q␇딽␇, q␇딽␇, q␇딽␇, q␇딽␇, q␇딽␇);
+Test_N(q␇딾␇, q␇딾␇, q␇딾␇, q␇딾␇, q␇딾␇);
+Test_N(q␇딿␇, q␇딿␇, q␇딿␇, q␇딿␇, q␇딿␇);
+Test_N(q␇땀␇, q␇땀␇, q␇땀␇, q␇땀␇, q␇땀␇);
+Test_N(q␇땁␇, q␇땁␇, q␇땁␇, q␇땁␇, q␇땁␇);
+Test_N(q␇땂␇, q␇땂␇, q␇땂␇, q␇땂␇, q␇땂␇);
+Test_N(q␇땃␇, q␇땃␇, q␇땃␇, q␇땃␇, q␇땃␇);
+Test_N(q␇땄␇, q␇땄␇, q␇땄␇, q␇땄␇, q␇땄␇);
+Test_N(q␇땅␇, q␇땅␇, q␇땅␇, q␇땅␇, q␇땅␇);
+Test_N(q␇땆␇, q␇땆␇, q␇땆␇, q␇땆␇, q␇땆␇);
+Test_N(q␇땇␇, q␇땇␇, q␇땇␇, q␇땇␇, q␇땇␇);
+Test_N(q␇땈␇, q␇땈␇, q␇땈␇, q␇땈␇, q␇땈␇);
+Test_N(q␇땉␇, q␇땉␇, q␇땉␇, q␇땉␇, q␇땉␇);
+Test_N(q␇땊␇, q␇땊␇, q␇땊␇, q␇땊␇, q␇땊␇);
+Test_N(q␇땋␇, q␇땋␇, q␇땋␇, q␇땋␇, q␇땋␇);
+Test_N(q␇때␇, q␇때␇, q␇때␇, q␇때␇, q␇때␇);
+Test_N(q␇땍␇, q␇땍␇, q␇땍␇, q␇땍␇, q␇땍␇);
+Test_N(q␇땎␇, q␇땎␇, q␇땎␇, q␇땎␇, q␇땎␇);
+Test_N(q␇땏␇, q␇땏␇, q␇땏␇, q␇땏␇, q␇땏␇);
+Test_N(q␇땐␇, q␇땐␇, q␇땐␇, q␇땐␇, q␇땐␇);
+Test_N(q␇땑␇, q␇땑␇, q␇땑␇, q␇땑␇, q␇땑␇);
+Test_N(q␇땒␇, q␇땒␇, q␇땒␇, q␇땒␇, q␇땒␇);
+Test_N(q␇땓␇, q␇땓␇, q␇땓␇, q␇땓␇, q␇땓␇);
+Test_N(q␇땔␇, q␇땔␇, q␇땔␇, q␇땔␇, q␇땔␇);
+Test_N(q␇땕␇, q␇땕␇, q␇땕␇, q␇땕␇, q␇땕␇);
+Test_N(q␇땖␇, q␇땖␇, q␇땖␇, q␇땖␇, q␇땖␇);
+Test_N(q␇땗␇, q␇땗␇, q␇땗␇, q␇땗␇, q␇땗␇);
+Test_N(q␇땘␇, q␇땘␇, q␇땘␇, q␇땘␇, q␇땘␇);
+Test_N(q␇땙␇, q␇땙␇, q␇땙␇, q␇땙␇, q␇땙␇);
+Test_N(q␇땚␇, q␇땚␇, q␇땚␇, q␇땚␇, q␇땚␇);
+Test_N(q␇땛␇, q␇땛␇, q␇땛␇, q␇땛␇, q␇땛␇);
+Test_N(q␇땜␇, q␇땜␇, q␇땜␇, q␇땜␇, q␇땜␇);
+Test_N(q␇땝␇, q␇땝␇, q␇땝␇, q␇땝␇, q␇땝␇);
+Test_N(q␇땞␇, q␇땞␇, q␇땞␇, q␇땞␇, q␇땞␇);
+Test_N(q␇땟␇, q␇땟␇, q␇땟␇, q␇땟␇, q␇땟␇);
+Test_N(q␇땠␇, q␇땠␇, q␇땠␇, q␇땠␇, q␇땠␇);
+Test_N(q␇땡␇, q␇땡␇, q␇땡␇, q␇땡␇, q␇땡␇);
+Test_N(q␇땢␇, q␇땢␇, q␇땢␇, q␇땢␇, q␇땢␇);
+Test_N(q␇땣␇, q␇땣␇, q␇땣␇, q␇땣␇, q␇땣␇);
+Test_N(q␇땤␇, q␇땤␇, q␇땤␇, q␇땤␇, q␇땤␇);
+Test_N(q␇땥␇, q␇땥␇, q␇땥␇, q␇땥␇, q␇땥␇);
+Test_N(q␇땦␇, q␇땦␇, q␇땦␇, q␇땦␇, q␇땦␇);
+Test_N(q␇땧␇, q␇땧␇, q␇땧␇, q␇땧␇, q␇땧␇);
+Test_N(q␇땨␇, q␇땨␇, q␇땨␇, q␇땨␇, q␇땨␇);
+Test_N(q␇땩␇, q␇땩␇, q␇땩␇, q␇땩␇, q␇땩␇);
+Test_N(q␇땪␇, q␇땪␇, q␇땪␇, q␇땪␇, q␇땪␇);
+Test_N(q␇땫␇, q␇땫␇, q␇땫␇, q␇땫␇, q␇땫␇);
+Test_N(q␇땬␇, q␇땬␇, q␇땬␇, q␇땬␇, q␇땬␇);
+Test_N(q␇땭␇, q␇땭␇, q␇땭␇, q␇땭␇, q␇땭␇);
+Test_N(q␇땮␇, q␇땮␇, q␇땮␇, q␇땮␇, q␇땮␇);
+Test_N(q␇땯␇, q␇땯␇, q␇땯␇, q␇땯␇, q␇땯␇);
+Test_N(q␇땰␇, q␇땰␇, q␇땰␇, q␇땰␇, q␇땰␇);
+Test_N(q␇땱␇, q␇땱␇, q␇땱␇, q␇땱␇, q␇땱␇);
+Test_N(q␇땲␇, q␇땲␇, q␇땲␇, q␇땲␇, q␇땲␇);
+Test_N(q␇땳␇, q␇땳␇, q␇땳␇, q␇땳␇, q␇땳␇);
+Test_N(q␇땴␇, q␇땴␇, q␇땴␇, q␇땴␇, q␇땴␇);
+Test_N(q␇땵␇, q␇땵␇, q␇땵␇, q␇땵␇, q␇땵␇);
+Test_N(q␇땶␇, q␇땶␇, q␇땶␇, q␇땶␇, q␇땶␇);
+Test_N(q␇땷␇, q␇땷␇, q␇땷␇, q␇땷␇, q␇땷␇);
+Test_N(q␇땸␇, q␇땸␇, q␇땸␇, q␇땸␇, q␇땸␇);
+Test_N(q␇땹␇, q␇땹␇, q␇땹␇, q␇땹␇, q␇땹␇);
+Test_N(q␇땺␇, q␇땺␇, q␇땺␇, q␇땺␇, q␇땺␇);
+Test_N(q␇땻␇, q␇땻␇, q␇땻␇, q␇땻␇, q␇땻␇);
+Test_N(q␇땼␇, q␇땼␇, q␇땼␇, q␇땼␇, q␇땼␇);
+Test_N(q␇땽␇, q␇땽␇, q␇땽␇, q␇땽␇, q␇땽␇);
+Test_N(q␇땾␇, q␇땾␇, q␇땾␇, q␇땾␇, q␇땾␇);
+Test_N(q␇땿␇, q␇땿␇, q␇땿␇, q␇땿␇, q␇땿␇);
+Test_N(q␇떀␇, q␇떀␇, q␇떀␇, q␇떀␇, q␇떀␇);
+Test_N(q␇떁␇, q␇떁␇, q␇떁␇, q␇떁␇, q␇떁␇);
+Test_N(q␇떂␇, q␇떂␇, q␇떂␇, q␇떂␇, q␇떂␇);
+Test_N(q␇떃␇, q␇떃␇, q␇떃␇, q␇떃␇, q␇떃␇);
+Test_N(q␇떄␇, q␇떄␇, q␇떄␇, q␇떄␇, q␇떄␇);
+Test_N(q␇떅␇, q␇떅␇, q␇떅␇, q␇떅␇, q␇떅␇);
+Test_N(q␇떆␇, q␇떆␇, q␇떆␇, q␇떆␇, q␇떆␇);
+Test_N(q␇떇␇, q␇떇␇, q␇떇␇, q␇떇␇, q␇떇␇);
+Test_N(q␇떈␇, q␇떈␇, q␇떈␇, q␇떈␇, q␇떈␇);
+Test_N(q␇떉␇, q␇떉␇, q␇떉␇, q␇떉␇, q␇떉␇);
+Test_N(q␇떊␇, q␇떊␇, q␇떊␇, q␇떊␇, q␇떊␇);
+Test_N(q␇떋␇, q␇떋␇, q␇떋␇, q␇떋␇, q␇떋␇);
+Test_N(q␇떌␇, q␇떌␇, q␇떌␇, q␇떌␇, q␇떌␇);
+Test_N(q␇떍␇, q␇떍␇, q␇떍␇, q␇떍␇, q␇떍␇);
+Test_N(q␇떎␇, q␇떎␇, q␇떎␇, q␇떎␇, q␇떎␇);
+Test_N(q␇떏␇, q␇떏␇, q␇떏␇, q␇떏␇, q␇떏␇);
+Test_N(q␇떐␇, q␇떐␇, q␇떐␇, q␇떐␇, q␇떐␇);
+Test_N(q␇떑␇, q␇떑␇, q␇떑␇, q␇떑␇, q␇떑␇);
+Test_N(q␇떒␇, q␇떒␇, q␇떒␇, q␇떒␇, q␇떒␇);
+Test_N(q␇떓␇, q␇떓␇, q␇떓␇, q␇떓␇, q␇떓␇);
+Test_N(q␇떔␇, q␇떔␇, q␇떔␇, q␇떔␇, q␇떔␇);
+Test_N(q␇떕␇, q␇떕␇, q␇떕␇, q␇떕␇, q␇떕␇);
+Test_N(q␇떖␇, q␇떖␇, q␇떖␇, q␇떖␇, q␇떖␇);
+Test_N(q␇떗␇, q␇떗␇, q␇떗␇, q␇떗␇, q␇떗␇);
+Test_N(q␇떘␇, q␇떘␇, q␇떘␇, q␇떘␇, q␇떘␇);
+Test_N(q␇떙␇, q␇떙␇, q␇떙␇, q␇떙␇, q␇떙␇);
+Test_N(q␇떚␇, q␇떚␇, q␇떚␇, q␇떚␇, q␇떚␇);
+Test_N(q␇떛␇, q␇떛␇, q␇떛␇, q␇떛␇, q␇떛␇);
+Test_N(q␇떜␇, q␇떜␇, q␇떜␇, q␇떜␇, q␇떜␇);
+Test_N(q␇떝␇, q␇떝␇, q␇떝␇, q␇떝␇, q␇떝␇);
+Test_N(q␇떞␇, q␇떞␇, q␇떞␇, q␇떞␇, q␇떞␇);
+Test_N(q␇떟␇, q␇떟␇, q␇떟␇, q␇떟␇, q␇떟␇);
+Test_N(q␇떠␇, q␇떠␇, q␇떠␇, q␇떠␇, q␇떠␇);
+Test_N(q␇떡␇, q␇떡␇, q␇떡␇, q␇떡␇, q␇떡␇);
+Test_N(q␇떢␇, q␇떢␇, q␇떢␇, q␇떢␇, q␇떢␇);
+Test_N(q␇떣␇, q␇떣␇, q␇떣␇, q␇떣␇, q␇떣␇);
+Test_N(q␇떤␇, q␇떤␇, q␇떤␇, q␇떤␇, q␇떤␇);
+Test_N(q␇떥␇, q␇떥␇, q␇떥␇, q␇떥␇, q␇떥␇);
+Test_N(q␇떦␇, q␇떦␇, q␇떦␇, q␇떦␇, q␇떦␇);
+Test_N(q␇떧␇, q␇떧␇, q␇떧␇, q␇떧␇, q␇떧␇);
+Test_N(q␇떨␇, q␇떨␇, q␇떨␇, q␇떨␇, q␇떨␇);
+Test_N(q␇떩␇, q␇떩␇, q␇떩␇, q␇떩␇, q␇떩␇);
+Test_N(q␇떪␇, q␇떪␇, q␇떪␇, q␇떪␇, q␇떪␇);
+Test_N(q␇떫␇, q␇떫␇, q␇떫␇, q␇떫␇, q␇떫␇);
+Test_N(q␇떬␇, q␇떬␇, q␇떬␇, q␇떬␇, q␇떬␇);
+Test_N(q␇떭␇, q␇떭␇, q␇떭␇, q␇떭␇, q␇떭␇);
+Test_N(q␇떮␇, q␇떮␇, q␇떮␇, q␇떮␇, q␇떮␇);
+Test_N(q␇떯␇, q␇떯␇, q␇떯␇, q␇떯␇, q␇떯␇);
+Test_N(q␇떰␇, q␇떰␇, q␇떰␇, q␇떰␇, q␇떰␇);
+Test_N(q␇떱␇, q␇떱␇, q␇떱␇, q␇떱␇, q␇떱␇);
+Test_N(q␇떲␇, q␇떲␇, q␇떲␇, q␇떲␇, q␇떲␇);
+Test_N(q␇떳␇, q␇떳␇, q␇떳␇, q␇떳␇, q␇떳␇);
+Test_N(q␇떴␇, q␇떴␇, q␇떴␇, q␇떴␇, q␇떴␇);
+Test_N(q␇떵␇, q␇떵␇, q␇떵␇, q␇떵␇, q␇떵␇);
+Test_N(q␇떶␇, q␇떶␇, q␇떶␇, q␇떶␇, q␇떶␇);
+Test_N(q␇떷␇, q␇떷␇, q␇떷␇, q␇떷␇, q␇떷␇);
+Test_N(q␇떸␇, q␇떸␇, q␇떸␇, q␇떸␇, q␇떸␇);
+Test_N(q␇떹␇, q␇떹␇, q␇떹␇, q␇떹␇, q␇떹␇);
+Test_N(q␇떺␇, q␇떺␇, q␇떺␇, q␇떺␇, q␇떺␇);
+Test_N(q␇떻␇, q␇떻␇, q␇떻␇, q␇떻␇, q␇떻␇);
+Test_N(q␇떼␇, q␇떼␇, q␇떼␇, q␇떼␇, q␇떼␇);
+Test_N(q␇떽␇, q␇떽␇, q␇떽␇, q␇떽␇, q␇떽␇);
+Test_N(q␇떾␇, q␇떾␇, q␇떾␇, q␇떾␇, q␇떾␇);
+Test_N(q␇떿␇, q␇떿␇, q␇떿␇, q␇떿␇, q␇떿␇);
+Test_N(q␇뗀␇, q␇뗀␇, q␇뗀␇, q␇뗀␇, q␇뗀␇);
+Test_N(q␇뗁␇, q␇뗁␇, q␇뗁␇, q␇뗁␇, q␇뗁␇);
+Test_N(q␇뗂␇, q␇뗂␇, q␇뗂␇, q␇뗂␇, q␇뗂␇);
+Test_N(q␇뗃␇, q␇뗃␇, q␇뗃␇, q␇뗃␇, q␇뗃␇);
+Test_N(q␇뗄␇, q␇뗄␇, q␇뗄␇, q␇뗄␇, q␇뗄␇);
+Test_N(q␇뗅␇, q␇뗅␇, q␇뗅␇, q␇뗅␇, q␇뗅␇);
+Test_N(q␇뗆␇, q␇뗆␇, q␇뗆␇, q␇뗆␇, q␇뗆␇);
+Test_N(q␇뗇␇, q␇뗇␇, q␇뗇␇, q␇뗇␇, q␇뗇␇);
+Test_N(q␇뗈␇, q␇뗈␇, q␇뗈␇, q␇뗈␇, q␇뗈␇);
+Test_N(q␇뗉␇, q␇뗉␇, q␇뗉␇, q␇뗉␇, q␇뗉␇);
+Test_N(q␇뗊␇, q␇뗊␇, q␇뗊␇, q␇뗊␇, q␇뗊␇);
+Test_N(q␇뗋␇, q␇뗋␇, q␇뗋␇, q␇뗋␇, q␇뗋␇);
+Test_N(q␇뗌␇, q␇뗌␇, q␇뗌␇, q␇뗌␇, q␇뗌␇);
+Test_N(q␇뗍␇, q␇뗍␇, q␇뗍␇, q␇뗍␇, q␇뗍␇);
+Test_N(q␇뗎␇, q␇뗎␇, q␇뗎␇, q␇뗎␇, q␇뗎␇);
+Test_N(q␇뗏␇, q␇뗏␇, q␇뗏␇, q␇뗏␇, q␇뗏␇);
+Test_N(q␇뗐␇, q␇뗐␇, q␇뗐␇, q␇뗐␇, q␇뗐␇);
+Test_N(q␇뗑␇, q␇뗑␇, q␇뗑␇, q␇뗑␇, q␇뗑␇);
+Test_N(q␇뗒␇, q␇뗒␇, q␇뗒␇, q␇뗒␇, q␇뗒␇);
+Test_N(q␇뗓␇, q␇뗓␇, q␇뗓␇, q␇뗓␇, q␇뗓␇);
+Test_N(q␇뗔␇, q␇뗔␇, q␇뗔␇, q␇뗔␇, q␇뗔␇);
+Test_N(q␇뗕␇, q␇뗕␇, q␇뗕␇, q␇뗕␇, q␇뗕␇);
+Test_N(q␇뗖␇, q␇뗖␇, q␇뗖␇, q␇뗖␇, q␇뗖␇);
+Test_N(q␇뗗␇, q␇뗗␇, q␇뗗␇, q␇뗗␇, q␇뗗␇);
+Test_N(q␇뗘␇, q␇뗘␇, q␇뗘␇, q␇뗘␇, q␇뗘␇);
+Test_N(q␇뗙␇, q␇뗙␇, q␇뗙␇, q␇뗙␇, q␇뗙␇);
+Test_N(q␇뗚␇, q␇뗚␇, q␇뗚␇, q␇뗚␇, q␇뗚␇);
+Test_N(q␇뗛␇, q␇뗛␇, q␇뗛␇, q␇뗛␇, q␇뗛␇);
+Test_N(q␇뗜␇, q␇뗜␇, q␇뗜␇, q␇뗜␇, q␇뗜␇);
+Test_N(q␇뗝␇, q␇뗝␇, q␇뗝␇, q␇뗝␇, q␇뗝␇);
+Test_N(q␇뗞␇, q␇뗞␇, q␇뗞␇, q␇뗞␇, q␇뗞␇);
+Test_N(q␇뗟␇, q␇뗟␇, q␇뗟␇, q␇뗟␇, q␇뗟␇);
+Test_N(q␇뗠␇, q␇뗠␇, q␇뗠␇, q␇뗠␇, q␇뗠␇);
+Test_N(q␇뗡␇, q␇뗡␇, q␇뗡␇, q␇뗡␇, q␇뗡␇);
+Test_N(q␇뗢␇, q␇뗢␇, q␇뗢␇, q␇뗢␇, q␇뗢␇);
+Test_N(q␇뗣␇, q␇뗣␇, q␇뗣␇, q␇뗣␇, q␇뗣␇);
+Test_N(q␇뗤␇, q␇뗤␇, q␇뗤␇, q␇뗤␇, q␇뗤␇);
+Test_N(q␇뗥␇, q␇뗥␇, q␇뗥␇, q␇뗥␇, q␇뗥␇);
+Test_N(q␇뗦␇, q␇뗦␇, q␇뗦␇, q␇뗦␇, q␇뗦␇);
+Test_N(q␇뗧␇, q␇뗧␇, q␇뗧␇, q␇뗧␇, q␇뗧␇);
+Test_N(q␇뗨␇, q␇뗨␇, q␇뗨␇, q␇뗨␇, q␇뗨␇);
+Test_N(q␇뗩␇, q␇뗩␇, q␇뗩␇, q␇뗩␇, q␇뗩␇);
+Test_N(q␇뗪␇, q␇뗪␇, q␇뗪␇, q␇뗪␇, q␇뗪␇);
+Test_N(q␇뗫␇, q␇뗫␇, q␇뗫␇, q␇뗫␇, q␇뗫␇);
+Test_N(q␇뗬␇, q␇뗬␇, q␇뗬␇, q␇뗬␇, q␇뗬␇);
+Test_N(q␇뗭␇, q␇뗭␇, q␇뗭␇, q␇뗭␇, q␇뗭␇);
+Test_N(q␇뗮␇, q␇뗮␇, q␇뗮␇, q␇뗮␇, q␇뗮␇);
+Test_N(q␇뗯␇, q␇뗯␇, q␇뗯␇, q␇뗯␇, q␇뗯␇);
+Test_N(q␇뗰␇, q␇뗰␇, q␇뗰␇, q␇뗰␇, q␇뗰␇);
+Test_N(q␇뗱␇, q␇뗱␇, q␇뗱␇, q␇뗱␇, q␇뗱␇);
+Test_N(q␇뗲␇, q␇뗲␇, q␇뗲␇, q␇뗲␇, q␇뗲␇);
+Test_N(q␇뗳␇, q␇뗳␇, q␇뗳␇, q␇뗳␇, q␇뗳␇);
+Test_N(q␇뗴␇, q␇뗴␇, q␇뗴␇, q␇뗴␇, q␇뗴␇);
+Test_N(q␇뗵␇, q␇뗵␇, q␇뗵␇, q␇뗵␇, q␇뗵␇);
+Test_N(q␇뗶␇, q␇뗶␇, q␇뗶␇, q␇뗶␇, q␇뗶␇);
+Test_N(q␇뗷␇, q␇뗷␇, q␇뗷␇, q␇뗷␇, q␇뗷␇);
+Test_N(q␇뗸␇, q␇뗸␇, q␇뗸␇, q␇뗸␇, q␇뗸␇);
+Test_N(q␇뗹␇, q␇뗹␇, q␇뗹␇, q␇뗹␇, q␇뗹␇);
+Test_N(q␇뗺␇, q␇뗺␇, q␇뗺␇, q␇뗺␇, q␇뗺␇);
+Test_N(q␇뗻␇, q␇뗻␇, q␇뗻␇, q␇뗻␇, q␇뗻␇);
+Test_N(q␇뗼␇, q␇뗼␇, q␇뗼␇, q␇뗼␇, q␇뗼␇);
+Test_N(q␇뗽␇, q␇뗽␇, q␇뗽␇, q␇뗽␇, q␇뗽␇);
+Test_N(q␇뗾␇, q␇뗾␇, q␇뗾␇, q␇뗾␇, q␇뗾␇);
+Test_N(q␇뗿␇, q␇뗿␇, q␇뗿␇, q␇뗿␇, q␇뗿␇);
+Test_N(q␇똀␇, q␇똀␇, q␇똀␇, q␇똀␇, q␇똀␇);
+Test_N(q␇똁␇, q␇똁␇, q␇똁␇, q␇똁␇, q␇똁␇);
+Test_N(q␇똂␇, q␇똂␇, q␇똂␇, q␇똂␇, q␇똂␇);
+Test_N(q␇똃␇, q␇똃␇, q␇똃␇, q␇똃␇, q␇똃␇);
+Test_N(q␇똄␇, q␇똄␇, q␇똄␇, q␇똄␇, q␇똄␇);
+Test_N(q␇똅␇, q␇똅␇, q␇똅␇, q␇똅␇, q␇똅␇);
+Test_N(q␇똆␇, q␇똆␇, q␇똆␇, q␇똆␇, q␇똆␇);
+Test_N(q␇똇␇, q␇똇␇, q␇똇␇, q␇똇␇, q␇똇␇);
+Test_N(q␇똈␇, q␇똈␇, q␇똈␇, q␇똈␇, q␇똈␇);
+Test_N(q␇똉␇, q␇똉␇, q␇똉␇, q␇똉␇, q␇똉␇);
+Test_N(q␇똊␇, q␇똊␇, q␇똊␇, q␇똊␇, q␇똊␇);
+Test_N(q␇똋␇, q␇똋␇, q␇똋␇, q␇똋␇, q␇똋␇);
+Test_N(q␇똌␇, q␇똌␇, q␇똌␇, q␇똌␇, q␇똌␇);
+Test_N(q␇똍␇, q␇똍␇, q␇똍␇, q␇똍␇, q␇똍␇);
+Test_N(q␇똎␇, q␇똎␇, q␇똎␇, q␇똎␇, q␇똎␇);
+Test_N(q␇똏␇, q␇똏␇, q␇똏␇, q␇똏␇, q␇똏␇);
+Test_N(q␇또␇, q␇또␇, q␇또␇, q␇또␇, q␇또␇);
+Test_N(q␇똑␇, q␇똑␇, q␇똑␇, q␇똑␇, q␇똑␇);
+Test_N(q␇똒␇, q␇똒␇, q␇똒␇, q␇똒␇, q␇똒␇);
+Test_N(q␇똓␇, q␇똓␇, q␇똓␇, q␇똓␇, q␇똓␇);
+Test_N(q␇똔␇, q␇똔␇, q␇똔␇, q␇똔␇, q␇똔␇);
+Test_N(q␇똕␇, q␇똕␇, q␇똕␇, q␇똕␇, q␇똕␇);
+Test_N(q␇똖␇, q␇똖␇, q␇똖␇, q␇똖␇, q␇똖␇);
+Test_N(q␇똗␇, q␇똗␇, q␇똗␇, q␇똗␇, q␇똗␇);
+Test_N(q␇똘␇, q␇똘␇, q␇똘␇, q␇똘␇, q␇똘␇);
+Test_N(q␇똙␇, q␇똙␇, q␇똙␇, q␇똙␇, q␇똙␇);
+Test_N(q␇똚␇, q␇똚␇, q␇똚␇, q␇똚␇, q␇똚␇);
+Test_N(q␇똛␇, q␇똛␇, q␇똛␇, q␇똛␇, q␇똛␇);
+Test_N(q␇똜␇, q␇똜␇, q␇똜␇, q␇똜␇, q␇똜␇);
+Test_N(q␇똝␇, q␇똝␇, q␇똝␇, q␇똝␇, q␇똝␇);
+Test_N(q␇똞␇, q␇똞␇, q␇똞␇, q␇똞␇, q␇똞␇);
+Test_N(q␇똟␇, q␇똟␇, q␇똟␇, q␇똟␇, q␇똟␇);
+Test_N(q␇똠␇, q␇똠␇, q␇똠␇, q␇똠␇, q␇똠␇);
+Test_N(q␇똡␇, q␇똡␇, q␇똡␇, q␇똡␇, q␇똡␇);
+Test_N(q␇똢␇, q␇똢␇, q␇똢␇, q␇똢␇, q␇똢␇);
+Test_N(q␇똣␇, q␇똣␇, q␇똣␇, q␇똣␇, q␇똣␇);
+Test_N(q␇똤␇, q␇똤␇, q␇똤␇, q␇똤␇, q␇똤␇);
+Test_N(q␇똥␇, q␇똥␇, q␇똥␇, q␇똥␇, q␇똥␇);
+Test_N(q␇똦␇, q␇똦␇, q␇똦␇, q␇똦␇, q␇똦␇);
+Test_N(q␇똧␇, q␇똧␇, q␇똧␇, q␇똧␇, q␇똧␇);
+Test_N(q␇똨␇, q␇똨␇, q␇똨␇, q␇똨␇, q␇똨␇);
+Test_N(q␇똩␇, q␇똩␇, q␇똩␇, q␇똩␇, q␇똩␇);
+Test_N(q␇똪␇, q␇똪␇, q␇똪␇, q␇똪␇, q␇똪␇);
+Test_N(q␇똫␇, q␇똫␇, q␇똫␇, q␇똫␇, q␇똫␇);
+Test_N(q␇똬␇, q␇똬␇, q␇똬␇, q␇똬␇, q␇똬␇);
+Test_N(q␇똭␇, q␇똭␇, q␇똭␇, q␇똭␇, q␇똭␇);
+Test_N(q␇똮␇, q␇똮␇, q␇똮␇, q␇똮␇, q␇똮␇);
+Test_N(q␇똯␇, q␇똯␇, q␇똯␇, q␇똯␇, q␇똯␇);
+Test_N(q␇똰␇, q␇똰␇, q␇똰␇, q␇똰␇, q␇똰␇);
+Test_N(q␇똱␇, q␇똱␇, q␇똱␇, q␇똱␇, q␇똱␇);
+Test_N(q␇똲␇, q␇똲␇, q␇똲␇, q␇똲␇, q␇똲␇);
+Test_N(q␇똳␇, q␇똳␇, q␇똳␇, q␇똳␇, q␇똳␇);
+Test_N(q␇똴␇, q␇똴␇, q␇똴␇, q␇똴␇, q␇똴␇);
+Test_N(q␇똵␇, q␇똵␇, q␇똵␇, q␇똵␇, q␇똵␇);
+Test_N(q␇똶␇, q␇똶␇, q␇똶␇, q␇똶␇, q␇똶␇);
+Test_N(q␇똷␇, q␇똷␇, q␇똷␇, q␇똷␇, q␇똷␇);
+Test_N(q␇똸␇, q␇똸␇, q␇똸␇, q␇똸␇, q␇똸␇);
+Test_N(q␇똹␇, q␇똹␇, q␇똹␇, q␇똹␇, q␇똹␇);
+Test_N(q␇똺␇, q␇똺␇, q␇똺␇, q␇똺␇, q␇똺␇);
+Test_N(q␇똻␇, q␇똻␇, q␇똻␇, q␇똻␇, q␇똻␇);
+Test_N(q␇똼␇, q␇똼␇, q␇똼␇, q␇똼␇, q␇똼␇);
+Test_N(q␇똽␇, q␇똽␇, q␇똽␇, q␇똽␇, q␇똽␇);
+Test_N(q␇똾␇, q␇똾␇, q␇똾␇, q␇똾␇, q␇똾␇);
+Test_N(q␇똿␇, q␇똿␇, q␇똿␇, q␇똿␇, q␇똿␇);
+Test_N(q␇뙀␇, q␇뙀␇, q␇뙀␇, q␇뙀␇, q␇뙀␇);
+Test_N(q␇뙁␇, q␇뙁␇, q␇뙁␇, q␇뙁␇, q␇뙁␇);
+Test_N(q␇뙂␇, q␇뙂␇, q␇뙂␇, q␇뙂␇, q␇뙂␇);
+Test_N(q␇뙃␇, q␇뙃␇, q␇뙃␇, q␇뙃␇, q␇뙃␇);
+Test_N(q␇뙄␇, q␇뙄␇, q␇뙄␇, q␇뙄␇, q␇뙄␇);
+Test_N(q␇뙅␇, q␇뙅␇, q␇뙅␇, q␇뙅␇, q␇뙅␇);
+Test_N(q␇뙆␇, q␇뙆␇, q␇뙆␇, q␇뙆␇, q␇뙆␇);
+Test_N(q␇뙇␇, q␇뙇␇, q␇뙇␇, q␇뙇␇, q␇뙇␇);
+Test_N(q␇뙈␇, q␇뙈␇, q␇뙈␇, q␇뙈␇, q␇뙈␇);
+Test_N(q␇뙉␇, q␇뙉␇, q␇뙉␇, q␇뙉␇, q␇뙉␇);
+Test_N(q␇뙊␇, q␇뙊␇, q␇뙊␇, q␇뙊␇, q␇뙊␇);
+Test_N(q␇뙋␇, q␇뙋␇, q␇뙋␇, q␇뙋␇, q␇뙋␇);
+Test_N(q␇뙌␇, q␇뙌␇, q␇뙌␇, q␇뙌␇, q␇뙌␇);
+Test_N(q␇뙍␇, q␇뙍␇, q␇뙍␇, q␇뙍␇, q␇뙍␇);
+Test_N(q␇뙎␇, q␇뙎␇, q␇뙎␇, q␇뙎␇, q␇뙎␇);
+Test_N(q␇뙏␇, q␇뙏␇, q␇뙏␇, q␇뙏␇, q␇뙏␇);
+Test_N(q␇뙐␇, q␇뙐␇, q␇뙐␇, q␇뙐␇, q␇뙐␇);
+Test_N(q␇뙑␇, q␇뙑␇, q␇뙑␇, q␇뙑␇, q␇뙑␇);
+Test_N(q␇뙒␇, q␇뙒␇, q␇뙒␇, q␇뙒␇, q␇뙒␇);
+Test_N(q␇뙓␇, q␇뙓␇, q␇뙓␇, q␇뙓␇, q␇뙓␇);
+Test_N(q␇뙔␇, q␇뙔␇, q␇뙔␇, q␇뙔␇, q␇뙔␇);
+Test_N(q␇뙕␇, q␇뙕␇, q␇뙕␇, q␇뙕␇, q␇뙕␇);
+Test_N(q␇뙖␇, q␇뙖␇, q␇뙖␇, q␇뙖␇, q␇뙖␇);
+Test_N(q␇뙗␇, q␇뙗␇, q␇뙗␇, q␇뙗␇, q␇뙗␇);
+Test_N(q␇뙘␇, q␇뙘␇, q␇뙘␇, q␇뙘␇, q␇뙘␇);
+Test_N(q␇뙙␇, q␇뙙␇, q␇뙙␇, q␇뙙␇, q␇뙙␇);
+Test_N(q␇뙚␇, q␇뙚␇, q␇뙚␇, q␇뙚␇, q␇뙚␇);
+Test_N(q␇뙛␇, q␇뙛␇, q␇뙛␇, q␇뙛␇, q␇뙛␇);
+Test_N(q␇뙜␇, q␇뙜␇, q␇뙜␇, q␇뙜␇, q␇뙜␇);
+Test_N(q␇뙝␇, q␇뙝␇, q␇뙝␇, q␇뙝␇, q␇뙝␇);
+Test_N(q␇뙞␇, q␇뙞␇, q␇뙞␇, q␇뙞␇, q␇뙞␇);
+Test_N(q␇뙟␇, q␇뙟␇, q␇뙟␇, q␇뙟␇, q␇뙟␇);
+Test_N(q␇뙠␇, q␇뙠␇, q␇뙠␇, q␇뙠␇, q␇뙠␇);
+Test_N(q␇뙡␇, q␇뙡␇, q␇뙡␇, q␇뙡␇, q␇뙡␇);
+Test_N(q␇뙢␇, q␇뙢␇, q␇뙢␇, q␇뙢␇, q␇뙢␇);
+Test_N(q␇뙣␇, q␇뙣␇, q␇뙣␇, q␇뙣␇, q␇뙣␇);
+Test_N(q␇뙤␇, q␇뙤␇, q␇뙤␇, q␇뙤␇, q␇뙤␇);
+Test_N(q␇뙥␇, q␇뙥␇, q␇뙥␇, q␇뙥␇, q␇뙥␇);
+Test_N(q␇뙦␇, q␇뙦␇, q␇뙦␇, q␇뙦␇, q␇뙦␇);
+Test_N(q␇뙧␇, q␇뙧␇, q␇뙧␇, q␇뙧␇, q␇뙧␇);
+Test_N(q␇뙨␇, q␇뙨␇, q␇뙨␇, q␇뙨␇, q␇뙨␇);
+Test_N(q␇뙩␇, q␇뙩␇, q␇뙩␇, q␇뙩␇, q␇뙩␇);
+Test_N(q␇뙪␇, q␇뙪␇, q␇뙪␇, q␇뙪␇, q␇뙪␇);
+Test_N(q␇뙫␇, q␇뙫␇, q␇뙫␇, q␇뙫␇, q␇뙫␇);
+Test_N(q␇뙬␇, q␇뙬␇, q␇뙬␇, q␇뙬␇, q␇뙬␇);
+Test_N(q␇뙭␇, q␇뙭␇, q␇뙭␇, q␇뙭␇, q␇뙭␇);
+Test_N(q␇뙮␇, q␇뙮␇, q␇뙮␇, q␇뙮␇, q␇뙮␇);
+Test_N(q␇뙯␇, q␇뙯␇, q␇뙯␇, q␇뙯␇, q␇뙯␇);
+Test_N(q␇뙰␇, q␇뙰␇, q␇뙰␇, q␇뙰␇, q␇뙰␇);
+Test_N(q␇뙱␇, q␇뙱␇, q␇뙱␇, q␇뙱␇, q␇뙱␇);
+Test_N(q␇뙲␇, q␇뙲␇, q␇뙲␇, q␇뙲␇, q␇뙲␇);
+Test_N(q␇뙳␇, q␇뙳␇, q␇뙳␇, q␇뙳␇, q␇뙳␇);
+Test_N(q␇뙴␇, q␇뙴␇, q␇뙴␇, q␇뙴␇, q␇뙴␇);
+Test_N(q␇뙵␇, q␇뙵␇, q␇뙵␇, q␇뙵␇, q␇뙵␇);
+Test_N(q␇뙶␇, q␇뙶␇, q␇뙶␇, q␇뙶␇, q␇뙶␇);
+Test_N(q␇뙷␇, q␇뙷␇, q␇뙷␇, q␇뙷␇, q␇뙷␇);
+Test_N(q␇뙸␇, q␇뙸␇, q␇뙸␇, q␇뙸␇, q␇뙸␇);
+Test_N(q␇뙹␇, q␇뙹␇, q␇뙹␇, q␇뙹␇, q␇뙹␇);
+Test_N(q␇뙺␇, q␇뙺␇, q␇뙺␇, q␇뙺␇, q␇뙺␇);
+Test_N(q␇뙻␇, q␇뙻␇, q␇뙻␇, q␇뙻␇, q␇뙻␇);
+Test_N(q␇뙼␇, q␇뙼␇, q␇뙼␇, q␇뙼␇, q␇뙼␇);
+Test_N(q␇뙽␇, q␇뙽␇, q␇뙽␇, q␇뙽␇, q␇뙽␇);
+Test_N(q␇뙾␇, q␇뙾␇, q␇뙾␇, q␇뙾␇, q␇뙾␇);
+Test_N(q␇뙿␇, q␇뙿␇, q␇뙿␇, q␇뙿␇, q␇뙿␇);
+Test_N(q␇뚀␇, q␇뚀␇, q␇뚀␇, q␇뚀␇, q␇뚀␇);
+Test_N(q␇뚁␇, q␇뚁␇, q␇뚁␇, q␇뚁␇, q␇뚁␇);
+Test_N(q␇뚂␇, q␇뚂␇, q␇뚂␇, q␇뚂␇, q␇뚂␇);
+Test_N(q␇뚃␇, q␇뚃␇, q␇뚃␇, q␇뚃␇, q␇뚃␇);
+Test_N(q␇뚄␇, q␇뚄␇, q␇뚄␇, q␇뚄␇, q␇뚄␇);
+Test_N(q␇뚅␇, q␇뚅␇, q␇뚅␇, q␇뚅␇, q␇뚅␇);
+Test_N(q␇뚆␇, q␇뚆␇, q␇뚆␇, q␇뚆␇, q␇뚆␇);
+Test_N(q␇뚇␇, q␇뚇␇, q␇뚇␇, q␇뚇␇, q␇뚇␇);
+Test_N(q␇뚈␇, q␇뚈␇, q␇뚈␇, q␇뚈␇, q␇뚈␇);
+Test_N(q␇뚉␇, q␇뚉␇, q␇뚉␇, q␇뚉␇, q␇뚉␇);
+Test_N(q␇뚊␇, q␇뚊␇, q␇뚊␇, q␇뚊␇, q␇뚊␇);
+Test_N(q␇뚋␇, q␇뚋␇, q␇뚋␇, q␇뚋␇, q␇뚋␇);
+Test_N(q␇뚌␇, q␇뚌␇, q␇뚌␇, q␇뚌␇, q␇뚌␇);
+Test_N(q␇뚍␇, q␇뚍␇, q␇뚍␇, q␇뚍␇, q␇뚍␇);
+Test_N(q␇뚎␇, q␇뚎␇, q␇뚎␇, q␇뚎␇, q␇뚎␇);
+Test_N(q␇뚏␇, q␇뚏␇, q␇뚏␇, q␇뚏␇, q␇뚏␇);
+Test_N(q␇뚐␇, q␇뚐␇, q␇뚐␇, q␇뚐␇, q␇뚐␇);
+Test_N(q␇뚑␇, q␇뚑␇, q␇뚑␇, q␇뚑␇, q␇뚑␇);
+Test_N(q␇뚒␇, q␇뚒␇, q␇뚒␇, q␇뚒␇, q␇뚒␇);
+Test_N(q␇뚓␇, q␇뚓␇, q␇뚓␇, q␇뚓␇, q␇뚓␇);
+Test_N(q␇뚔␇, q␇뚔␇, q␇뚔␇, q␇뚔␇, q␇뚔␇);
+Test_N(q␇뚕␇, q␇뚕␇, q␇뚕␇, q␇뚕␇, q␇뚕␇);
+Test_N(q␇뚖␇, q␇뚖␇, q␇뚖␇, q␇뚖␇, q␇뚖␇);
+Test_N(q␇뚗␇, q␇뚗␇, q␇뚗␇, q␇뚗␇, q␇뚗␇);
+Test_N(q␇뚘␇, q␇뚘␇, q␇뚘␇, q␇뚘␇, q␇뚘␇);
+Test_N(q␇뚙␇, q␇뚙␇, q␇뚙␇, q␇뚙␇, q␇뚙␇);
+Test_N(q␇뚚␇, q␇뚚␇, q␇뚚␇, q␇뚚␇, q␇뚚␇);
+Test_N(q␇뚛␇, q␇뚛␇, q␇뚛␇, q␇뚛␇, q␇뚛␇);
+Test_N(q␇뚜␇, q␇뚜␇, q␇뚜␇, q␇뚜␇, q␇뚜␇);
+Test_N(q␇뚝␇, q␇뚝␇, q␇뚝␇, q␇뚝␇, q␇뚝␇);
+Test_N(q␇뚞␇, q␇뚞␇, q␇뚞␇, q␇뚞␇, q␇뚞␇);
+Test_N(q␇뚟␇, q␇뚟␇, q␇뚟␇, q␇뚟␇, q␇뚟␇);
+Test_N(q␇뚠␇, q␇뚠␇, q␇뚠␇, q␇뚠␇, q␇뚠␇);
+Test_N(q␇뚡␇, q␇뚡␇, q␇뚡␇, q␇뚡␇, q␇뚡␇);
+Test_N(q␇뚢␇, q␇뚢␇, q␇뚢␇, q␇뚢␇, q␇뚢␇);
+Test_N(q␇뚣␇, q␇뚣␇, q␇뚣␇, q␇뚣␇, q␇뚣␇);
+Test_N(q␇뚤␇, q␇뚤␇, q␇뚤␇, q␇뚤␇, q␇뚤␇);
+Test_N(q␇뚥␇, q␇뚥␇, q␇뚥␇, q␇뚥␇, q␇뚥␇);
+Test_N(q␇뚦␇, q␇뚦␇, q␇뚦␇, q␇뚦␇, q␇뚦␇);
+Test_N(q␇뚧␇, q␇뚧␇, q␇뚧␇, q␇뚧␇, q␇뚧␇);
+Test_N(q␇뚨␇, q␇뚨␇, q␇뚨␇, q␇뚨␇, q␇뚨␇);
+Test_N(q␇뚩␇, q␇뚩␇, q␇뚩␇, q␇뚩␇, q␇뚩␇);
+Test_N(q␇뚪␇, q␇뚪␇, q␇뚪␇, q␇뚪␇, q␇뚪␇);
+Test_N(q␇뚫␇, q␇뚫␇, q␇뚫␇, q␇뚫␇, q␇뚫␇);
+Test_N(q␇뚬␇, q␇뚬␇, q␇뚬␇, q␇뚬␇, q␇뚬␇);
+Test_N(q␇뚭␇, q␇뚭␇, q␇뚭␇, q␇뚭␇, q␇뚭␇);
+Test_N(q␇뚮␇, q␇뚮␇, q␇뚮␇, q␇뚮␇, q␇뚮␇);
+Test_N(q␇뚯␇, q␇뚯␇, q␇뚯␇, q␇뚯␇, q␇뚯␇);
+Test_N(q␇뚰␇, q␇뚰␇, q␇뚰␇, q␇뚰␇, q␇뚰␇);
+Test_N(q␇뚱␇, q␇뚱␇, q␇뚱␇, q␇뚱␇, q␇뚱␇);
+Test_N(q␇뚲␇, q␇뚲␇, q␇뚲␇, q␇뚲␇, q␇뚲␇);
+Test_N(q␇뚳␇, q␇뚳␇, q␇뚳␇, q␇뚳␇, q␇뚳␇);
+Test_N(q␇뚴␇, q␇뚴␇, q␇뚴␇, q␇뚴␇, q␇뚴␇);
+Test_N(q␇뚵␇, q␇뚵␇, q␇뚵␇, q␇뚵␇, q␇뚵␇);
+Test_N(q␇뚶␇, q␇뚶␇, q␇뚶␇, q␇뚶␇, q␇뚶␇);
+Test_N(q␇뚷␇, q␇뚷␇, q␇뚷␇, q␇뚷␇, q␇뚷␇);
+Test_N(q␇뚸␇, q␇뚸␇, q␇뚸␇, q␇뚸␇, q␇뚸␇);
+Test_N(q␇뚹␇, q␇뚹␇, q␇뚹␇, q␇뚹␇, q␇뚹␇);
+Test_N(q␇뚺␇, q␇뚺␇, q␇뚺␇, q␇뚺␇, q␇뚺␇);
+Test_N(q␇뚻␇, q␇뚻␇, q␇뚻␇, q␇뚻␇, q␇뚻␇);
+Test_N(q␇뚼␇, q␇뚼␇, q␇뚼␇, q␇뚼␇, q␇뚼␇);
+Test_N(q␇뚽␇, q␇뚽␇, q␇뚽␇, q␇뚽␇, q␇뚽␇);
+Test_N(q␇뚾␇, q␇뚾␇, q␇뚾␇, q␇뚾␇, q␇뚾␇);
+Test_N(q␇뚿␇, q␇뚿␇, q␇뚿␇, q␇뚿␇, q␇뚿␇);
+Test_N(q␇뛀␇, q␇뛀␇, q␇뛀␇, q␇뛀␇, q␇뛀␇);
+Test_N(q␇뛁␇, q␇뛁␇, q␇뛁␇, q␇뛁␇, q␇뛁␇);
+Test_N(q␇뛂␇, q␇뛂␇, q␇뛂␇, q␇뛂␇, q␇뛂␇);
+Test_N(q␇뛃␇, q␇뛃␇, q␇뛃␇, q␇뛃␇, q␇뛃␇);
+Test_N(q␇뛄␇, q␇뛄␇, q␇뛄␇, q␇뛄␇, q␇뛄␇);
+Test_N(q␇뛅␇, q␇뛅␇, q␇뛅␇, q␇뛅␇, q␇뛅␇);
+Test_N(q␇뛆␇, q␇뛆␇, q␇뛆␇, q␇뛆␇, q␇뛆␇);
+Test_N(q␇뛇␇, q␇뛇␇, q␇뛇␇, q␇뛇␇, q␇뛇␇);
+Test_N(q␇뛈␇, q␇뛈␇, q␇뛈␇, q␇뛈␇, q␇뛈␇);
+Test_N(q␇뛉␇, q␇뛉␇, q␇뛉␇, q␇뛉␇, q␇뛉␇);
+Test_N(q␇뛊␇, q␇뛊␇, q␇뛊␇, q␇뛊␇, q␇뛊␇);
+Test_N(q␇뛋␇, q␇뛋␇, q␇뛋␇, q␇뛋␇, q␇뛋␇);
+Test_N(q␇뛌␇, q␇뛌␇, q␇뛌␇, q␇뛌␇, q␇뛌␇);
+Test_N(q␇뛍␇, q␇뛍␇, q␇뛍␇, q␇뛍␇, q␇뛍␇);
+Test_N(q␇뛎␇, q␇뛎␇, q␇뛎␇, q␇뛎␇, q␇뛎␇);
+Test_N(q␇뛏␇, q␇뛏␇, q␇뛏␇, q␇뛏␇, q␇뛏␇);
+Test_N(q␇뛐␇, q␇뛐␇, q␇뛐␇, q␇뛐␇, q␇뛐␇);
+Test_N(q␇뛑␇, q␇뛑␇, q␇뛑␇, q␇뛑␇, q␇뛑␇);
+Test_N(q␇뛒␇, q␇뛒␇, q␇뛒␇, q␇뛒␇, q␇뛒␇);
+Test_N(q␇뛓␇, q␇뛓␇, q␇뛓␇, q␇뛓␇, q␇뛓␇);
+Test_N(q␇뛔␇, q␇뛔␇, q␇뛔␇, q␇뛔␇, q␇뛔␇);
+Test_N(q␇뛕␇, q␇뛕␇, q␇뛕␇, q␇뛕␇, q␇뛕␇);
+Test_N(q␇뛖␇, q␇뛖␇, q␇뛖␇, q␇뛖␇, q␇뛖␇);
+Test_N(q␇뛗␇, q␇뛗␇, q␇뛗␇, q␇뛗␇, q␇뛗␇);
+Test_N(q␇뛘␇, q␇뛘␇, q␇뛘␇, q␇뛘␇, q␇뛘␇);
+Test_N(q␇뛙␇, q␇뛙␇, q␇뛙␇, q␇뛙␇, q␇뛙␇);
+Test_N(q␇뛚␇, q␇뛚␇, q␇뛚␇, q␇뛚␇, q␇뛚␇);
+Test_N(q␇뛛␇, q␇뛛␇, q␇뛛␇, q␇뛛␇, q␇뛛␇);
+Test_N(q␇뛜␇, q␇뛜␇, q␇뛜␇, q␇뛜␇, q␇뛜␇);
+Test_N(q␇뛝␇, q␇뛝␇, q␇뛝␇, q␇뛝␇, q␇뛝␇);
+Test_N(q␇뛞␇, q␇뛞␇, q␇뛞␇, q␇뛞␇, q␇뛞␇);
+Test_N(q␇뛟␇, q␇뛟␇, q␇뛟␇, q␇뛟␇, q␇뛟␇);
+Test_N(q␇뛠␇, q␇뛠␇, q␇뛠␇, q␇뛠␇, q␇뛠␇);
+Test_N(q␇뛡␇, q␇뛡␇, q␇뛡␇, q␇뛡␇, q␇뛡␇);
+Test_N(q␇뛢␇, q␇뛢␇, q␇뛢␇, q␇뛢␇, q␇뛢␇);
+Test_N(q␇뛣␇, q␇뛣␇, q␇뛣␇, q␇뛣␇, q␇뛣␇);
+Test_N(q␇뛤␇, q␇뛤␇, q␇뛤␇, q␇뛤␇, q␇뛤␇);
+Test_N(q␇뛥␇, q␇뛥␇, q␇뛥␇, q␇뛥␇, q␇뛥␇);
+Test_N(q␇뛦␇, q␇뛦␇, q␇뛦␇, q␇뛦␇, q␇뛦␇);
+Test_N(q␇뛧␇, q␇뛧␇, q␇뛧␇, q␇뛧␇, q␇뛧␇);
+Test_N(q␇뛨␇, q␇뛨␇, q␇뛨␇, q␇뛨␇, q␇뛨␇);
+Test_N(q␇뛩␇, q␇뛩␇, q␇뛩␇, q␇뛩␇, q␇뛩␇);
+Test_N(q␇뛪␇, q␇뛪␇, q␇뛪␇, q␇뛪␇, q␇뛪␇);
+Test_N(q␇뛫␇, q␇뛫␇, q␇뛫␇, q␇뛫␇, q␇뛫␇);
+Test_N(q␇뛬␇, q␇뛬␇, q␇뛬␇, q␇뛬␇, q␇뛬␇);
+Test_N(q␇뛭␇, q␇뛭␇, q␇뛭␇, q␇뛭␇, q␇뛭␇);
+Test_N(q␇뛮␇, q␇뛮␇, q␇뛮␇, q␇뛮␇, q␇뛮␇);
+Test_N(q␇뛯␇, q␇뛯␇, q␇뛯␇, q␇뛯␇, q␇뛯␇);
+Test_N(q␇뛰␇, q␇뛰␇, q␇뛰␇, q␇뛰␇, q␇뛰␇);
+Test_N(q␇뛱␇, q␇뛱␇, q␇뛱␇, q␇뛱␇, q␇뛱␇);
+Test_N(q␇뛲␇, q␇뛲␇, q␇뛲␇, q␇뛲␇, q␇뛲␇);
+Test_N(q␇뛳␇, q␇뛳␇, q␇뛳␇, q␇뛳␇, q␇뛳␇);
+Test_N(q␇뛴␇, q␇뛴␇, q␇뛴␇, q␇뛴␇, q␇뛴␇);
+Test_N(q␇뛵␇, q␇뛵␇, q␇뛵␇, q␇뛵␇, q␇뛵␇);
+Test_N(q␇뛶␇, q␇뛶␇, q␇뛶␇, q␇뛶␇, q␇뛶␇);
+Test_N(q␇뛷␇, q␇뛷␇, q␇뛷␇, q␇뛷␇, q␇뛷␇);
+Test_N(q␇뛸␇, q␇뛸␇, q␇뛸␇, q␇뛸␇, q␇뛸␇);
+Test_N(q␇뛹␇, q␇뛹␇, q␇뛹␇, q␇뛹␇, q␇뛹␇);
+Test_N(q␇뛺␇, q␇뛺␇, q␇뛺␇, q␇뛺␇, q␇뛺␇);
+Test_N(q␇뛻␇, q␇뛻␇, q␇뛻␇, q␇뛻␇, q␇뛻␇);
+Test_N(q␇뛼␇, q␇뛼␇, q␇뛼␇, q␇뛼␇, q␇뛼␇);
+Test_N(q␇뛽␇, q␇뛽␇, q␇뛽␇, q␇뛽␇, q␇뛽␇);
+Test_N(q␇뛾␇, q␇뛾␇, q␇뛾␇, q␇뛾␇, q␇뛾␇);
+Test_N(q␇뛿␇, q␇뛿␇, q␇뛿␇, q␇뛿␇, q␇뛿␇);
+Test_N(q␇뜀␇, q␇뜀␇, q␇뜀␇, q␇뜀␇, q␇뜀␇);
+Test_N(q␇뜁␇, q␇뜁␇, q␇뜁␇, q␇뜁␇, q␇뜁␇);
+Test_N(q␇뜂␇, q␇뜂␇, q␇뜂␇, q␇뜂␇, q␇뜂␇);
+Test_N(q␇뜃␇, q␇뜃␇, q␇뜃␇, q␇뜃␇, q␇뜃␇);
+Test_N(q␇뜄␇, q␇뜄␇, q␇뜄␇, q␇뜄␇, q␇뜄␇);
+Test_N(q␇뜅␇, q␇뜅␇, q␇뜅␇, q␇뜅␇, q␇뜅␇);
+Test_N(q␇뜆␇, q␇뜆␇, q␇뜆␇, q␇뜆␇, q␇뜆␇);
+Test_N(q␇뜇␇, q␇뜇␇, q␇뜇␇, q␇뜇␇, q␇뜇␇);
+Test_N(q␇뜈␇, q␇뜈␇, q␇뜈␇, q␇뜈␇, q␇뜈␇);
+Test_N(q␇뜉␇, q␇뜉␇, q␇뜉␇, q␇뜉␇, q␇뜉␇);
+Test_N(q␇뜊␇, q␇뜊␇, q␇뜊␇, q␇뜊␇, q␇뜊␇);
+Test_N(q␇뜋␇, q␇뜋␇, q␇뜋␇, q␇뜋␇, q␇뜋␇);
+Test_N(q␇뜌␇, q␇뜌␇, q␇뜌␇, q␇뜌␇, q␇뜌␇);
+Test_N(q␇뜍␇, q␇뜍␇, q␇뜍␇, q␇뜍␇, q␇뜍␇);
+Test_N(q␇뜎␇, q␇뜎␇, q␇뜎␇, q␇뜎␇, q␇뜎␇);
+Test_N(q␇뜏␇, q␇뜏␇, q␇뜏␇, q␇뜏␇, q␇뜏␇);
+Test_N(q␇뜐␇, q␇뜐␇, q␇뜐␇, q␇뜐␇, q␇뜐␇);
+Test_N(q␇뜑␇, q␇뜑␇, q␇뜑␇, q␇뜑␇, q␇뜑␇);
+Test_N(q␇뜒␇, q␇뜒␇, q␇뜒␇, q␇뜒␇, q␇뜒␇);
+Test_N(q␇뜓␇, q␇뜓␇, q␇뜓␇, q␇뜓␇, q␇뜓␇);
+Test_N(q␇뜔␇, q␇뜔␇, q␇뜔␇, q␇뜔␇, q␇뜔␇);
+Test_N(q␇뜕␇, q␇뜕␇, q␇뜕␇, q␇뜕␇, q␇뜕␇);
+Test_N(q␇뜖␇, q␇뜖␇, q␇뜖␇, q␇뜖␇, q␇뜖␇);
+Test_N(q␇뜗␇, q␇뜗␇, q␇뜗␇, q␇뜗␇, q␇뜗␇);
+Test_N(q␇뜘␇, q␇뜘␇, q␇뜘␇, q␇뜘␇, q␇뜘␇);
+Test_N(q␇뜙␇, q␇뜙␇, q␇뜙␇, q␇뜙␇, q␇뜙␇);
+Test_N(q␇뜚␇, q␇뜚␇, q␇뜚␇, q␇뜚␇, q␇뜚␇);
+Test_N(q␇뜛␇, q␇뜛␇, q␇뜛␇, q␇뜛␇, q␇뜛␇);
+Test_N(q␇뜜␇, q␇뜜␇, q␇뜜␇, q␇뜜␇, q␇뜜␇);
+Test_N(q␇뜝␇, q␇뜝␇, q␇뜝␇, q␇뜝␇, q␇뜝␇);
+Test_N(q␇뜞␇, q␇뜞␇, q␇뜞␇, q␇뜞␇, q␇뜞␇);
+Test_N(q␇뜟␇, q␇뜟␇, q␇뜟␇, q␇뜟␇, q␇뜟␇);
+Test_N(q␇뜠␇, q␇뜠␇, q␇뜠␇, q␇뜠␇, q␇뜠␇);
+Test_N(q␇뜡␇, q␇뜡␇, q␇뜡␇, q␇뜡␇, q␇뜡␇);
+Test_N(q␇뜢␇, q␇뜢␇, q␇뜢␇, q␇뜢␇, q␇뜢␇);
+Test_N(q␇뜣␇, q␇뜣␇, q␇뜣␇, q␇뜣␇, q␇뜣␇);
+Test_N(q␇뜤␇, q␇뜤␇, q␇뜤␇, q␇뜤␇, q␇뜤␇);
+Test_N(q␇뜥␇, q␇뜥␇, q␇뜥␇, q␇뜥␇, q␇뜥␇);
+Test_N(q␇뜦␇, q␇뜦␇, q␇뜦␇, q␇뜦␇, q␇뜦␇);
+Test_N(q␇뜧␇, q␇뜧␇, q␇뜧␇, q␇뜧␇, q␇뜧␇);
+Test_N(q␇뜨␇, q␇뜨␇, q␇뜨␇, q␇뜨␇, q␇뜨␇);
+Test_N(q␇뜩␇, q␇뜩␇, q␇뜩␇, q␇뜩␇, q␇뜩␇);
+Test_N(q␇뜪␇, q␇뜪␇, q␇뜪␇, q␇뜪␇, q␇뜪␇);
+Test_N(q␇뜫␇, q␇뜫␇, q␇뜫␇, q␇뜫␇, q␇뜫␇);
+Test_N(q␇뜬␇, q␇뜬␇, q␇뜬␇, q␇뜬␇, q␇뜬␇);
+Test_N(q␇뜭␇, q␇뜭␇, q␇뜭␇, q␇뜭␇, q␇뜭␇);
+Test_N(q␇뜮␇, q␇뜮␇, q␇뜮␇, q␇뜮␇, q␇뜮␇);
+Test_N(q␇뜯␇, q␇뜯␇, q␇뜯␇, q␇뜯␇, q␇뜯␇);
+Test_N(q␇뜰␇, q␇뜰␇, q␇뜰␇, q␇뜰␇, q␇뜰␇);
+Test_N(q␇뜱␇, q␇뜱␇, q␇뜱␇, q␇뜱␇, q␇뜱␇);
+Test_N(q␇뜲␇, q␇뜲␇, q␇뜲␇, q␇뜲␇, q␇뜲␇);
+Test_N(q␇뜳␇, q␇뜳␇, q␇뜳␇, q␇뜳␇, q␇뜳␇);
+Test_N(q␇뜴␇, q␇뜴␇, q␇뜴␇, q␇뜴␇, q␇뜴␇);
+Test_N(q␇뜵␇, q␇뜵␇, q␇뜵␇, q␇뜵␇, q␇뜵␇);
+Test_N(q␇뜶␇, q␇뜶␇, q␇뜶␇, q␇뜶␇, q␇뜶␇);
+Test_N(q␇뜷␇, q␇뜷␇, q␇뜷␇, q␇뜷␇, q␇뜷␇);
+Test_N(q␇뜸␇, q␇뜸␇, q␇뜸␇, q␇뜸␇, q␇뜸␇);
+Test_N(q␇뜹␇, q␇뜹␇, q␇뜹␇, q␇뜹␇, q␇뜹␇);
+Test_N(q␇뜺␇, q␇뜺␇, q␇뜺␇, q␇뜺␇, q␇뜺␇);
+Test_N(q␇뜻␇, q␇뜻␇, q␇뜻␇, q␇뜻␇, q␇뜻␇);
+Test_N(q␇뜼␇, q␇뜼␇, q␇뜼␇, q␇뜼␇, q␇뜼␇);
+Test_N(q␇뜽␇, q␇뜽␇, q␇뜽␇, q␇뜽␇, q␇뜽␇);
+Test_N(q␇뜾␇, q␇뜾␇, q␇뜾␇, q␇뜾␇, q␇뜾␇);
+Test_N(q␇뜿␇, q␇뜿␇, q␇뜿␇, q␇뜿␇, q␇뜿␇);
+Test_N(q␇띀␇, q␇띀␇, q␇띀␇, q␇띀␇, q␇띀␇);
+Test_N(q␇띁␇, q␇띁␇, q␇띁␇, q␇띁␇, q␇띁␇);
+Test_N(q␇띂␇, q␇띂␇, q␇띂␇, q␇띂␇, q␇띂␇);
+Test_N(q␇띃␇, q␇띃␇, q␇띃␇, q␇띃␇, q␇띃␇);
+Test_N(q␇띄␇, q␇띄␇, q␇띄␇, q␇띄␇, q␇띄␇);
+Test_N(q␇띅␇, q␇띅␇, q␇띅␇, q␇띅␇, q␇띅␇);
+Test_N(q␇띆␇, q␇띆␇, q␇띆␇, q␇띆␇, q␇띆␇);
+Test_N(q␇띇␇, q␇띇␇, q␇띇␇, q␇띇␇, q␇띇␇);
+Test_N(q␇띈␇, q␇띈␇, q␇띈␇, q␇띈␇, q␇띈␇);
+Test_N(q␇띉␇, q␇띉␇, q␇띉␇, q␇띉␇, q␇띉␇);
+Test_N(q␇띊␇, q␇띊␇, q␇띊␇, q␇띊␇, q␇띊␇);
+Test_N(q␇띋␇, q␇띋␇, q␇띋␇, q␇띋␇, q␇띋␇);
+Test_N(q␇띌␇, q␇띌␇, q␇띌␇, q␇띌␇, q␇띌␇);
+Test_N(q␇띍␇, q␇띍␇, q␇띍␇, q␇띍␇, q␇띍␇);
+Test_N(q␇띎␇, q␇띎␇, q␇띎␇, q␇띎␇, q␇띎␇);
+Test_N(q␇띏␇, q␇띏␇, q␇띏␇, q␇띏␇, q␇띏␇);
+Test_N(q␇띐␇, q␇띐␇, q␇띐␇, q␇띐␇, q␇띐␇);
+Test_N(q␇띑␇, q␇띑␇, q␇띑␇, q␇띑␇, q␇띑␇);
+Test_N(q␇띒␇, q␇띒␇, q␇띒␇, q␇띒␇, q␇띒␇);
+Test_N(q␇띓␇, q␇띓␇, q␇띓␇, q␇띓␇, q␇띓␇);
+Test_N(q␇띔␇, q␇띔␇, q␇띔␇, q␇띔␇, q␇띔␇);
+Test_N(q␇띕␇, q␇띕␇, q␇띕␇, q␇띕␇, q␇띕␇);
+Test_N(q␇띖␇, q␇띖␇, q␇띖␇, q␇띖␇, q␇띖␇);
+Test_N(q␇띗␇, q␇띗␇, q␇띗␇, q␇띗␇, q␇띗␇);
+Test_N(q␇띘␇, q␇띘␇, q␇띘␇, q␇띘␇, q␇띘␇);
+Test_N(q␇띙␇, q␇띙␇, q␇띙␇, q␇띙␇, q␇띙␇);
+Test_N(q␇띚␇, q␇띚␇, q␇띚␇, q␇띚␇, q␇띚␇);
+Test_N(q␇띛␇, q␇띛␇, q␇띛␇, q␇띛␇, q␇띛␇);
+Test_N(q␇띜␇, q␇띜␇, q␇띜␇, q␇띜␇, q␇띜␇);
+Test_N(q␇띝␇, q␇띝␇, q␇띝␇, q␇띝␇, q␇띝␇);
+Test_N(q␇띞␇, q␇띞␇, q␇띞␇, q␇띞␇, q␇띞␇);
+Test_N(q␇띟␇, q␇띟␇, q␇띟␇, q␇띟␇, q␇띟␇);
+Test_N(q␇띠␇, q␇띠␇, q␇띠␇, q␇띠␇, q␇띠␇);
+Test_N(q␇띡␇, q␇띡␇, q␇띡␇, q␇띡␇, q␇띡␇);
+Test_N(q␇띢␇, q␇띢␇, q␇띢␇, q␇띢␇, q␇띢␇);
+Test_N(q␇띣␇, q␇띣␇, q␇띣␇, q␇띣␇, q␇띣␇);
+Test_N(q␇띤␇, q␇띤␇, q␇띤␇, q␇띤␇, q␇띤␇);
+Test_N(q␇띥␇, q␇띥␇, q␇띥␇, q␇띥␇, q␇띥␇);
+Test_N(q␇띦␇, q␇띦␇, q␇띦␇, q␇띦␇, q␇띦␇);
+Test_N(q␇띧␇, q␇띧␇, q␇띧␇, q␇띧␇, q␇띧␇);
+Test_N(q␇띨␇, q␇띨␇, q␇띨␇, q␇띨␇, q␇띨␇);
+Test_N(q␇띩␇, q␇띩␇, q␇띩␇, q␇띩␇, q␇띩␇);
+Test_N(q␇띪␇, q␇띪␇, q␇띪␇, q␇띪␇, q␇띪␇);
+Test_N(q␇띫␇, q␇띫␇, q␇띫␇, q␇띫␇, q␇띫␇);
+Test_N(q␇띬␇, q␇띬␇, q␇띬␇, q␇띬␇, q␇띬␇);
+Test_N(q␇띭␇, q␇띭␇, q␇띭␇, q␇띭␇, q␇띭␇);
+Test_N(q␇띮␇, q␇띮␇, q␇띮␇, q␇띮␇, q␇띮␇);
+Test_N(q␇띯␇, q␇띯␇, q␇띯␇, q␇띯␇, q␇띯␇);
+Test_N(q␇띰␇, q␇띰␇, q␇띰␇, q␇띰␇, q␇띰␇);
+Test_N(q␇띱␇, q␇띱␇, q␇띱␇, q␇띱␇, q␇띱␇);
+Test_N(q␇띲␇, q␇띲␇, q␇띲␇, q␇띲␇, q␇띲␇);
+Test_N(q␇띳␇, q␇띳␇, q␇띳␇, q␇띳␇, q␇띳␇);
+Test_N(q␇띴␇, q␇띴␇, q␇띴␇, q␇띴␇, q␇띴␇);
+Test_N(q␇띵␇, q␇띵␇, q␇띵␇, q␇띵␇, q␇띵␇);
+Test_N(q␇띶␇, q␇띶␇, q␇띶␇, q␇띶␇, q␇띶␇);
+Test_N(q␇띷␇, q␇띷␇, q␇띷␇, q␇띷␇, q␇띷␇);
+Test_N(q␇띸␇, q␇띸␇, q␇띸␇, q␇띸␇, q␇띸␇);
+Test_N(q␇띹␇, q␇띹␇, q␇띹␇, q␇띹␇, q␇띹␇);
+Test_N(q␇띺␇, q␇띺␇, q␇띺␇, q␇띺␇, q␇띺␇);
+Test_N(q␇띻␇, q␇띻␇, q␇띻␇, q␇띻␇, q␇띻␇);
+Test_N(q␇라␇, q␇라␇, q␇라␇, q␇라␇, q␇라␇);
+Test_N(q␇락␇, q␇락␇, q␇락␇, q␇락␇, q␇락␇);
+Test_N(q␇띾␇, q␇띾␇, q␇띾␇, q␇띾␇, q␇띾␇);
+Test_N(q␇띿␇, q␇띿␇, q␇띿␇, q␇띿␇, q␇띿␇);
+Test_N(q␇란␇, q␇란␇, q␇란␇, q␇란␇, q␇란␇);
+Test_N(q␇랁␇, q␇랁␇, q␇랁␇, q␇랁␇, q␇랁␇);
+Test_N(q␇랂␇, q␇랂␇, q␇랂␇, q␇랂␇, q␇랂␇);
+Test_N(q␇랃␇, q␇랃␇, q␇랃␇, q␇랃␇, q␇랃␇);
+Test_N(q␇랄␇, q␇랄␇, q␇랄␇, q␇랄␇, q␇랄␇);
+Test_N(q␇랅␇, q␇랅␇, q␇랅␇, q␇랅␇, q␇랅␇);
+Test_N(q␇랆␇, q␇랆␇, q␇랆␇, q␇랆␇, q␇랆␇);
+Test_N(q␇랇␇, q␇랇␇, q␇랇␇, q␇랇␇, q␇랇␇);
+Test_N(q␇랈␇, q␇랈␇, q␇랈␇, q␇랈␇, q␇랈␇);
+Test_N(q␇랉␇, q␇랉␇, q␇랉␇, q␇랉␇, q␇랉␇);
+Test_N(q␇랊␇, q␇랊␇, q␇랊␇, q␇랊␇, q␇랊␇);
+Test_N(q␇랋␇, q␇랋␇, q␇랋␇, q␇랋␇, q␇랋␇);
+Test_N(q␇람␇, q␇람␇, q␇람␇, q␇람␇, q␇람␇);
+Test_N(q␇랍␇, q␇랍␇, q␇랍␇, q␇랍␇, q␇랍␇);
+Test_N(q␇랎␇, q␇랎␇, q␇랎␇, q␇랎␇, q␇랎␇);
+Test_N(q␇랏␇, q␇랏␇, q␇랏␇, q␇랏␇, q␇랏␇);
+Test_N(q␇랐␇, q␇랐␇, q␇랐␇, q␇랐␇, q␇랐␇);
+Test_N(q␇랑␇, q␇랑␇, q␇랑␇, q␇랑␇, q␇랑␇);
+Test_N(q␇랒␇, q␇랒␇, q␇랒␇, q␇랒␇, q␇랒␇);
+Test_N(q␇랓␇, q␇랓␇, q␇랓␇, q␇랓␇, q␇랓␇);
+Test_N(q␇랔␇, q␇랔␇, q␇랔␇, q␇랔␇, q␇랔␇);
+Test_N(q␇랕␇, q␇랕␇, q␇랕␇, q␇랕␇, q␇랕␇);
+Test_N(q␇랖␇, q␇랖␇, q␇랖␇, q␇랖␇, q␇랖␇);
+Test_N(q␇랗␇, q␇랗␇, q␇랗␇, q␇랗␇, q␇랗␇);
+Test_N(q␇래␇, q␇래␇, q␇래␇, q␇래␇, q␇래␇);
+Test_N(q␇랙␇, q␇랙␇, q␇랙␇, q␇랙␇, q␇랙␇);
+Test_N(q␇랚␇, q␇랚␇, q␇랚␇, q␇랚␇, q␇랚␇);
+Test_N(q␇랛␇, q␇랛␇, q␇랛␇, q␇랛␇, q␇랛␇);
+Test_N(q␇랜␇, q␇랜␇, q␇랜␇, q␇랜␇, q␇랜␇);
+Test_N(q␇랝␇, q␇랝␇, q␇랝␇, q␇랝␇, q␇랝␇);
+Test_N(q␇랞␇, q␇랞␇, q␇랞␇, q␇랞␇, q␇랞␇);
+Test_N(q␇랟␇, q␇랟␇, q␇랟␇, q␇랟␇, q␇랟␇);
+Test_N(q␇랠␇, q␇랠␇, q␇랠␇, q␇랠␇, q␇랠␇);
+Test_N(q␇랡␇, q␇랡␇, q␇랡␇, q␇랡␇, q␇랡␇);
+Test_N(q␇랢␇, q␇랢␇, q␇랢␇, q␇랢␇, q␇랢␇);
+Test_N(q␇랣␇, q␇랣␇, q␇랣␇, q␇랣␇, q␇랣␇);
+Test_N(q␇랤␇, q␇랤␇, q␇랤␇, q␇랤␇, q␇랤␇);
+Test_N(q␇랥␇, q␇랥␇, q␇랥␇, q␇랥␇, q␇랥␇);
+Test_N(q␇랦␇, q␇랦␇, q␇랦␇, q␇랦␇, q␇랦␇);
+Test_N(q␇랧␇, q␇랧␇, q␇랧␇, q␇랧␇, q␇랧␇);
+Test_N(q␇램␇, q␇램␇, q␇램␇, q␇램␇, q␇램␇);
+Test_N(q␇랩␇, q␇랩␇, q␇랩␇, q␇랩␇, q␇랩␇);
+Test_N(q␇랪␇, q␇랪␇, q␇랪␇, q␇랪␇, q␇랪␇);
+Test_N(q␇랫␇, q␇랫␇, q␇랫␇, q␇랫␇, q␇랫␇);
+Test_N(q␇랬␇, q␇랬␇, q␇랬␇, q␇랬␇, q␇랬␇);
+Test_N(q␇랭␇, q␇랭␇, q␇랭␇, q␇랭␇, q␇랭␇);
+Test_N(q␇랮␇, q␇랮␇, q␇랮␇, q␇랮␇, q␇랮␇);
+Test_N(q␇랯␇, q␇랯␇, q␇랯␇, q␇랯␇, q␇랯␇);
+Test_N(q␇랰␇, q␇랰␇, q␇랰␇, q␇랰␇, q␇랰␇);
+Test_N(q␇랱␇, q␇랱␇, q␇랱␇, q␇랱␇, q␇랱␇);
+Test_N(q␇랲␇, q␇랲␇, q␇랲␇, q␇랲␇, q␇랲␇);
+Test_N(q␇랳␇, q␇랳␇, q␇랳␇, q␇랳␇, q␇랳␇);
+Test_N(q␇랴␇, q␇랴␇, q␇랴␇, q␇랴␇, q␇랴␇);
+Test_N(q␇략␇, q␇략␇, q␇략␇, q␇략␇, q␇략␇);
+Test_N(q␇랶␇, q␇랶␇, q␇랶␇, q␇랶␇, q␇랶␇);
+Test_N(q␇랷␇, q␇랷␇, q␇랷␇, q␇랷␇, q␇랷␇);
+Test_N(q␇랸␇, q␇랸␇, q␇랸␇, q␇랸␇, q␇랸␇);
+Test_N(q␇랹␇, q␇랹␇, q␇랹␇, q␇랹␇, q␇랹␇);
+Test_N(q␇랺␇, q␇랺␇, q␇랺␇, q␇랺␇, q␇랺␇);
+Test_N(q␇랻␇, q␇랻␇, q␇랻␇, q␇랻␇, q␇랻␇);
+Test_N(q␇랼␇, q␇랼␇, q␇랼␇, q␇랼␇, q␇랼␇);
+Test_N(q␇랽␇, q␇랽␇, q␇랽␇, q␇랽␇, q␇랽␇);
+Test_N(q␇랾␇, q␇랾␇, q␇랾␇, q␇랾␇, q␇랾␇);
+Test_N(q␇랿␇, q␇랿␇, q␇랿␇, q␇랿␇, q␇랿␇);
+Test_N(q␇럀␇, q␇럀␇, q␇럀␇, q␇럀␇, q␇럀␇);
+Test_N(q␇럁␇, q␇럁␇, q␇럁␇, q␇럁␇, q␇럁␇);
+Test_N(q␇럂␇, q␇럂␇, q␇럂␇, q␇럂␇, q␇럂␇);
+Test_N(q␇럃␇, q␇럃␇, q␇럃␇, q␇럃␇, q␇럃␇);
+Test_N(q␇럄␇, q␇럄␇, q␇럄␇, q␇럄␇, q␇럄␇);
+Test_N(q␇럅␇, q␇럅␇, q␇럅␇, q␇럅␇, q␇럅␇);
+Test_N(q␇럆␇, q␇럆␇, q␇럆␇, q␇럆␇, q␇럆␇);
+Test_N(q␇럇␇, q␇럇␇, q␇럇␇, q␇럇␇, q␇럇␇);
+Test_N(q␇럈␇, q␇럈␇, q␇럈␇, q␇럈␇, q␇럈␇);
+Test_N(q␇량␇, q␇량␇, q␇량␇, q␇량␇, q␇량␇);
+Test_N(q␇럊␇, q␇럊␇, q␇럊␇, q␇럊␇, q␇럊␇);
+Test_N(q␇럋␇, q␇럋␇, q␇럋␇, q␇럋␇, q␇럋␇);
+Test_N(q␇럌␇, q␇럌␇, q␇럌␇, q␇럌␇, q␇럌␇);
+Test_N(q␇럍␇, q␇럍␇, q␇럍␇, q␇럍␇, q␇럍␇);
+Test_N(q␇럎␇, q␇럎␇, q␇럎␇, q␇럎␇, q␇럎␇);
+Test_N(q␇럏␇, q␇럏␇, q␇럏␇, q␇럏␇, q␇럏␇);
+Test_N(q␇럐␇, q␇럐␇, q␇럐␇, q␇럐␇, q␇럐␇);
+Test_N(q␇럑␇, q␇럑␇, q␇럑␇, q␇럑␇, q␇럑␇);
+Test_N(q␇럒␇, q␇럒␇, q␇럒␇, q␇럒␇, q␇럒␇);
+Test_N(q␇럓␇, q␇럓␇, q␇럓␇, q␇럓␇, q␇럓␇);
+Test_N(q␇럔␇, q␇럔␇, q␇럔␇, q␇럔␇, q␇럔␇);
+Test_N(q␇럕␇, q␇럕␇, q␇럕␇, q␇럕␇, q␇럕␇);
+Test_N(q␇럖␇, q␇럖␇, q␇럖␇, q␇럖␇, q␇럖␇);
+Test_N(q␇럗␇, q␇럗␇, q␇럗␇, q␇럗␇, q␇럗␇);
+Test_N(q␇럘␇, q␇럘␇, q␇럘␇, q␇럘␇, q␇럘␇);
+Test_N(q␇럙␇, q␇럙␇, q␇럙␇, q␇럙␇, q␇럙␇);
+Test_N(q␇럚␇, q␇럚␇, q␇럚␇, q␇럚␇, q␇럚␇);
+Test_N(q␇럛␇, q␇럛␇, q␇럛␇, q␇럛␇, q␇럛␇);
+Test_N(q␇럜␇, q␇럜␇, q␇럜␇, q␇럜␇, q␇럜␇);
+Test_N(q␇럝␇, q␇럝␇, q␇럝␇, q␇럝␇, q␇럝␇);
+Test_N(q␇럞␇, q␇럞␇, q␇럞␇, q␇럞␇, q␇럞␇);
+Test_N(q␇럟␇, q␇럟␇, q␇럟␇, q␇럟␇, q␇럟␇);
+Test_N(q␇럠␇, q␇럠␇, q␇럠␇, q␇럠␇, q␇럠␇);
+Test_N(q␇럡␇, q␇럡␇, q␇럡␇, q␇럡␇, q␇럡␇);
+Test_N(q␇럢␇, q␇럢␇, q␇럢␇, q␇럢␇, q␇럢␇);
+Test_N(q␇럣␇, q␇럣␇, q␇럣␇, q␇럣␇, q␇럣␇);
+Test_N(q␇럤␇, q␇럤␇, q␇럤␇, q␇럤␇, q␇럤␇);
+Test_N(q␇럥␇, q␇럥␇, q␇럥␇, q␇럥␇, q␇럥␇);
+Test_N(q␇럦␇, q␇럦␇, q␇럦␇, q␇럦␇, q␇럦␇);
+Test_N(q␇럧␇, q␇럧␇, q␇럧␇, q␇럧␇, q␇럧␇);
+Test_N(q␇럨␇, q␇럨␇, q␇럨␇, q␇럨␇, q␇럨␇);
+Test_N(q␇럩␇, q␇럩␇, q␇럩␇, q␇럩␇, q␇럩␇);
+Test_N(q␇럪␇, q␇럪␇, q␇럪␇, q␇럪␇, q␇럪␇);
+Test_N(q␇럫␇, q␇럫␇, q␇럫␇, q␇럫␇, q␇럫␇);
+Test_N(q␇러␇, q␇러␇, q␇러␇, q␇러␇, q␇러␇);
+Test_N(q␇럭␇, q␇럭␇, q␇럭␇, q␇럭␇, q␇럭␇);
+Test_N(q␇럮␇, q␇럮␇, q␇럮␇, q␇럮␇, q␇럮␇);
+Test_N(q␇럯␇, q␇럯␇, q␇럯␇, q␇럯␇, q␇럯␇);
+Test_N(q␇런␇, q␇런␇, q␇런␇, q␇런␇, q␇런␇);
+Test_N(q␇럱␇, q␇럱␇, q␇럱␇, q␇럱␇, q␇럱␇);
+Test_N(q␇럲␇, q␇럲␇, q␇럲␇, q␇럲␇, q␇럲␇);
+Test_N(q␇럳␇, q␇럳␇, q␇럳␇, q␇럳␇, q␇럳␇);
+Test_N(q␇럴␇, q␇럴␇, q␇럴␇, q␇럴␇, q␇럴␇);
+Test_N(q␇럵␇, q␇럵␇, q␇럵␇, q␇럵␇, q␇럵␇);
+Test_N(q␇럶␇, q␇럶␇, q␇럶␇, q␇럶␇, q␇럶␇);
+Test_N(q␇럷␇, q␇럷␇, q␇럷␇, q␇럷␇, q␇럷␇);
+Test_N(q␇럸␇, q␇럸␇, q␇럸␇, q␇럸␇, q␇럸␇);
+Test_N(q␇럹␇, q␇럹␇, q␇럹␇, q␇럹␇, q␇럹␇);
+Test_N(q␇럺␇, q␇럺␇, q␇럺␇, q␇럺␇, q␇럺␇);
+Test_N(q␇럻␇, q␇럻␇, q␇럻␇, q␇럻␇, q␇럻␇);
+Test_N(q␇럼␇, q␇럼␇, q␇럼␇, q␇럼␇, q␇럼␇);
+Test_N(q␇럽␇, q␇럽␇, q␇럽␇, q␇럽␇, q␇럽␇);
+Test_N(q␇럾␇, q␇럾␇, q␇럾␇, q␇럾␇, q␇럾␇);
+Test_N(q␇럿␇, q␇럿␇, q␇럿␇, q␇럿␇, q␇럿␇);
+Test_N(q␇렀␇, q␇렀␇, q␇렀␇, q␇렀␇, q␇렀␇);
+Test_N(q␇렁␇, q␇렁␇, q␇렁␇, q␇렁␇, q␇렁␇);
+Test_N(q␇렂␇, q␇렂␇, q␇렂␇, q␇렂␇, q␇렂␇);
+Test_N(q␇렃␇, q␇렃␇, q␇렃␇, q␇렃␇, q␇렃␇);
+Test_N(q␇렄␇, q␇렄␇, q␇렄␇, q␇렄␇, q␇렄␇);
+Test_N(q␇렅␇, q␇렅␇, q␇렅␇, q␇렅␇, q␇렅␇);
+Test_N(q␇렆␇, q␇렆␇, q␇렆␇, q␇렆␇, q␇렆␇);
+Test_N(q␇렇␇, q␇렇␇, q␇렇␇, q␇렇␇, q␇렇␇);
+Test_N(q␇레␇, q␇레␇, q␇레␇, q␇레␇, q␇레␇);
+Test_N(q␇렉␇, q␇렉␇, q␇렉␇, q␇렉␇, q␇렉␇);
+Test_N(q␇렊␇, q␇렊␇, q␇렊␇, q␇렊␇, q␇렊␇);
+Test_N(q␇렋␇, q␇렋␇, q␇렋␇, q␇렋␇, q␇렋␇);
+Test_N(q␇렌␇, q␇렌␇, q␇렌␇, q␇렌␇, q␇렌␇);
+Test_N(q␇렍␇, q␇렍␇, q␇렍␇, q␇렍␇, q␇렍␇);
+Test_N(q␇렎␇, q␇렎␇, q␇렎␇, q␇렎␇, q␇렎␇);
+Test_N(q␇렏␇, q␇렏␇, q␇렏␇, q␇렏␇, q␇렏␇);
+Test_N(q␇렐␇, q␇렐␇, q␇렐␇, q␇렐␇, q␇렐␇);
+Test_N(q␇렑␇, q␇렑␇, q␇렑␇, q␇렑␇, q␇렑␇);
+Test_N(q␇렒␇, q␇렒␇, q␇렒␇, q␇렒␇, q␇렒␇);
+Test_N(q␇렓␇, q␇렓␇, q␇렓␇, q␇렓␇, q␇렓␇);
+Test_N(q␇렔␇, q␇렔␇, q␇렔␇, q␇렔␇, q␇렔␇);
+Test_N(q␇렕␇, q␇렕␇, q␇렕␇, q␇렕␇, q␇렕␇);
+Test_N(q␇렖␇, q␇렖␇, q␇렖␇, q␇렖␇, q␇렖␇);
+Test_N(q␇렗␇, q␇렗␇, q␇렗␇, q␇렗␇, q␇렗␇);
+Test_N(q␇렘␇, q␇렘␇, q␇렘␇, q␇렘␇, q␇렘␇);
+Test_N(q␇렙␇, q␇렙␇, q␇렙␇, q␇렙␇, q␇렙␇);
+Test_N(q␇렚␇, q␇렚␇, q␇렚␇, q␇렚␇, q␇렚␇);
+Test_N(q␇렛␇, q␇렛␇, q␇렛␇, q␇렛␇, q␇렛␇);
+Test_N(q␇렜␇, q␇렜␇, q␇렜␇, q␇렜␇, q␇렜␇);
+Test_N(q␇렝␇, q␇렝␇, q␇렝␇, q␇렝␇, q␇렝␇);
+Test_N(q␇렞␇, q␇렞␇, q␇렞␇, q␇렞␇, q␇렞␇);
+Test_N(q␇렟␇, q␇렟␇, q␇렟␇, q␇렟␇, q␇렟␇);
+Test_N(q␇렠␇, q␇렠␇, q␇렠␇, q␇렠␇, q␇렠␇);
+Test_N(q␇렡␇, q␇렡␇, q␇렡␇, q␇렡␇, q␇렡␇);
+Test_N(q␇렢␇, q␇렢␇, q␇렢␇, q␇렢␇, q␇렢␇);
+Test_N(q␇렣␇, q␇렣␇, q␇렣␇, q␇렣␇, q␇렣␇);
+Test_N(q␇려␇, q␇려␇, q␇려␇, q␇려␇, q␇려␇);
+Test_N(q␇력␇, q␇력␇, q␇력␇, q␇력␇, q␇력␇);
+Test_N(q␇렦␇, q␇렦␇, q␇렦␇, q␇렦␇, q␇렦␇);
+Test_N(q␇렧␇, q␇렧␇, q␇렧␇, q␇렧␇, q␇렧␇);
+Test_N(q␇련␇, q␇련␇, q␇련␇, q␇련␇, q␇련␇);
+Test_N(q␇렩␇, q␇렩␇, q␇렩␇, q␇렩␇, q␇렩␇);
+Test_N(q␇렪␇, q␇렪␇, q␇렪␇, q␇렪␇, q␇렪␇);
+Test_N(q␇렫␇, q␇렫␇, q␇렫␇, q␇렫␇, q␇렫␇);
+Test_N(q␇렬␇, q␇렬␇, q␇렬␇, q␇렬␇, q␇렬␇);
+Test_N(q␇렭␇, q␇렭␇, q␇렭␇, q␇렭␇, q␇렭␇);
+Test_N(q␇렮␇, q␇렮␇, q␇렮␇, q␇렮␇, q␇렮␇);
+Test_N(q␇렯␇, q␇렯␇, q␇렯␇, q␇렯␇, q␇렯␇);
+Test_N(q␇렰␇, q␇렰␇, q␇렰␇, q␇렰␇, q␇렰␇);
+Test_N(q␇렱␇, q␇렱␇, q␇렱␇, q␇렱␇, q␇렱␇);
+Test_N(q␇렲␇, q␇렲␇, q␇렲␇, q␇렲␇, q␇렲␇);
+Test_N(q␇렳␇, q␇렳␇, q␇렳␇, q␇렳␇, q␇렳␇);
+Test_N(q␇렴␇, q␇렴␇, q␇렴␇, q␇렴␇, q␇렴␇);
+Test_N(q␇렵␇, q␇렵␇, q␇렵␇, q␇렵␇, q␇렵␇);
+Test_N(q␇렶␇, q␇렶␇, q␇렶␇, q␇렶␇, q␇렶␇);
+Test_N(q␇렷␇, q␇렷␇, q␇렷␇, q␇렷␇, q␇렷␇);
+Test_N(q␇렸␇, q␇렸␇, q␇렸␇, q␇렸␇, q␇렸␇);
+Test_N(q␇령␇, q␇령␇, q␇령␇, q␇령␇, q␇령␇);
+Test_N(q␇렺␇, q␇렺␇, q␇렺␇, q␇렺␇, q␇렺␇);
+Test_N(q␇렻␇, q␇렻␇, q␇렻␇, q␇렻␇, q␇렻␇);
+Test_N(q␇렼␇, q␇렼␇, q␇렼␇, q␇렼␇, q␇렼␇);
+Test_N(q␇렽␇, q␇렽␇, q␇렽␇, q␇렽␇, q␇렽␇);
+Test_N(q␇렾␇, q␇렾␇, q␇렾␇, q␇렾␇, q␇렾␇);
+Test_N(q␇렿␇, q␇렿␇, q␇렿␇, q␇렿␇, q␇렿␇);
+Test_N(q␇례␇, q␇례␇, q␇례␇, q␇례␇, q␇례␇);
+Test_N(q␇롁␇, q␇롁␇, q␇롁␇, q␇롁␇, q␇롁␇);
+Test_N(q␇롂␇, q␇롂␇, q␇롂␇, q␇롂␇, q␇롂␇);
+Test_N(q␇롃␇, q␇롃␇, q␇롃␇, q␇롃␇, q␇롃␇);
+Test_N(q␇롄␇, q␇롄␇, q␇롄␇, q␇롄␇, q␇롄␇);
+Test_N(q␇롅␇, q␇롅␇, q␇롅␇, q␇롅␇, q␇롅␇);
+Test_N(q␇롆␇, q␇롆␇, q␇롆␇, q␇롆␇, q␇롆␇);
+Test_N(q␇롇␇, q␇롇␇, q␇롇␇, q␇롇␇, q␇롇␇);
+Test_N(q␇롈␇, q␇롈␇, q␇롈␇, q␇롈␇, q␇롈␇);
+Test_N(q␇롉␇, q␇롉␇, q␇롉␇, q␇롉␇, q␇롉␇);
+Test_N(q␇롊␇, q␇롊␇, q␇롊␇, q␇롊␇, q␇롊␇);
+Test_N(q␇롋␇, q␇롋␇, q␇롋␇, q␇롋␇, q␇롋␇);
+Test_N(q␇롌␇, q␇롌␇, q␇롌␇, q␇롌␇, q␇롌␇);
+Test_N(q␇롍␇, q␇롍␇, q␇롍␇, q␇롍␇, q␇롍␇);
+Test_N(q␇롎␇, q␇롎␇, q␇롎␇, q␇롎␇, q␇롎␇);
+Test_N(q␇롏␇, q␇롏␇, q␇롏␇, q␇롏␇, q␇롏␇);
+Test_N(q␇롐␇, q␇롐␇, q␇롐␇, q␇롐␇, q␇롐␇);
+Test_N(q␇롑␇, q␇롑␇, q␇롑␇, q␇롑␇, q␇롑␇);
+Test_N(q␇롒␇, q␇롒␇, q␇롒␇, q␇롒␇, q␇롒␇);
+Test_N(q␇롓␇, q␇롓␇, q␇롓␇, q␇롓␇, q␇롓␇);
+Test_N(q␇롔␇, q␇롔␇, q␇롔␇, q␇롔␇, q␇롔␇);
+Test_N(q␇롕␇, q␇롕␇, q␇롕␇, q␇롕␇, q␇롕␇);
+Test_N(q␇롖␇, q␇롖␇, q␇롖␇, q␇롖␇, q␇롖␇);
+Test_N(q␇롗␇, q␇롗␇, q␇롗␇, q␇롗␇, q␇롗␇);
+Test_N(q␇롘␇, q␇롘␇, q␇롘␇, q␇롘␇, q␇롘␇);
+Test_N(q␇롙␇, q␇롙␇, q␇롙␇, q␇롙␇, q␇롙␇);
+Test_N(q␇롚␇, q␇롚␇, q␇롚␇, q␇롚␇, q␇롚␇);
+Test_N(q␇롛␇, q␇롛␇, q␇롛␇, q␇롛␇, q␇롛␇);
+Test_N(q␇로␇, q␇로␇, q␇로␇, q␇로␇, q␇로␇);
+Test_N(q␇록␇, q␇록␇, q␇록␇, q␇록␇, q␇록␇);
+Test_N(q␇롞␇, q␇롞␇, q␇롞␇, q␇롞␇, q␇롞␇);
+Test_N(q␇롟␇, q␇롟␇, q␇롟␇, q␇롟␇, q␇롟␇);
+Test_N(q␇론␇, q␇론␇, q␇론␇, q␇론␇, q␇론␇);
+Test_N(q␇롡␇, q␇롡␇, q␇롡␇, q␇롡␇, q␇롡␇);
+Test_N(q␇롢␇, q␇롢␇, q␇롢␇, q␇롢␇, q␇롢␇);
+Test_N(q␇롣␇, q␇롣␇, q␇롣␇, q␇롣␇, q␇롣␇);
+Test_N(q␇롤␇, q␇롤␇, q␇롤␇, q␇롤␇, q␇롤␇);
+Test_N(q␇롥␇, q␇롥␇, q␇롥␇, q␇롥␇, q␇롥␇);
+Test_N(q␇롦␇, q␇롦␇, q␇롦␇, q␇롦␇, q␇롦␇);
+Test_N(q␇롧␇, q␇롧␇, q␇롧␇, q␇롧␇, q␇롧␇);
+Test_N(q␇롨␇, q␇롨␇, q␇롨␇, q␇롨␇, q␇롨␇);
+Test_N(q␇롩␇, q␇롩␇, q␇롩␇, q␇롩␇, q␇롩␇);
+Test_N(q␇롪␇, q␇롪␇, q␇롪␇, q␇롪␇, q␇롪␇);
+Test_N(q␇롫␇, q␇롫␇, q␇롫␇, q␇롫␇, q␇롫␇);
+Test_N(q␇롬␇, q␇롬␇, q␇롬␇, q␇롬␇, q␇롬␇);
+Test_N(q␇롭␇, q␇롭␇, q␇롭␇, q␇롭␇, q␇롭␇);
+Test_N(q␇롮␇, q␇롮␇, q␇롮␇, q␇롮␇, q␇롮␇);
+Test_N(q␇롯␇, q␇롯␇, q␇롯␇, q␇롯␇, q␇롯␇);
+Test_N(q␇롰␇, q␇롰␇, q␇롰␇, q␇롰␇, q␇롰␇);
+Test_N(q␇롱␇, q␇롱␇, q␇롱␇, q␇롱␇, q␇롱␇);
+Test_N(q␇롲␇, q␇롲␇, q␇롲␇, q␇롲␇, q␇롲␇);
+Test_N(q␇롳␇, q␇롳␇, q␇롳␇, q␇롳␇, q␇롳␇);
+Test_N(q␇롴␇, q␇롴␇, q␇롴␇, q␇롴␇, q␇롴␇);
+Test_N(q␇롵␇, q␇롵␇, q␇롵␇, q␇롵␇, q␇롵␇);
+Test_N(q␇롶␇, q␇롶␇, q␇롶␇, q␇롶␇, q␇롶␇);
+Test_N(q␇롷␇, q␇롷␇, q␇롷␇, q␇롷␇, q␇롷␇);
+Test_N(q␇롸␇, q␇롸␇, q␇롸␇, q␇롸␇, q␇롸␇);
+Test_N(q␇롹␇, q␇롹␇, q␇롹␇, q␇롹␇, q␇롹␇);
+Test_N(q␇롺␇, q␇롺␇, q␇롺␇, q␇롺␇, q␇롺␇);
+Test_N(q␇롻␇, q␇롻␇, q␇롻␇, q␇롻␇, q␇롻␇);
+Test_N(q␇롼␇, q␇롼␇, q␇롼␇, q␇롼␇, q␇롼␇);
+Test_N(q␇롽␇, q␇롽␇, q␇롽␇, q␇롽␇, q␇롽␇);
+Test_N(q␇롾␇, q␇롾␇, q␇롾␇, q␇롾␇, q␇롾␇);
+Test_N(q␇롿␇, q␇롿␇, q␇롿␇, q␇롿␇, q␇롿␇);
+Test_N(q␇뢀␇, q␇뢀␇, q␇뢀␇, q␇뢀␇, q␇뢀␇);
+Test_N(q␇뢁␇, q␇뢁␇, q␇뢁␇, q␇뢁␇, q␇뢁␇);
+Test_N(q␇뢂␇, q␇뢂␇, q␇뢂␇, q␇뢂␇, q␇뢂␇);
+Test_N(q␇뢃␇, q␇뢃␇, q␇뢃␇, q␇뢃␇, q␇뢃␇);
+Test_N(q␇뢄␇, q␇뢄␇, q␇뢄␇, q␇뢄␇, q␇뢄␇);
+Test_N(q␇뢅␇, q␇뢅␇, q␇뢅␇, q␇뢅␇, q␇뢅␇);
+Test_N(q␇뢆␇, q␇뢆␇, q␇뢆␇, q␇뢆␇, q␇뢆␇);
+Test_N(q␇뢇␇, q␇뢇␇, q␇뢇␇, q␇뢇␇, q␇뢇␇);
+Test_N(q␇뢈␇, q␇뢈␇, q␇뢈␇, q␇뢈␇, q␇뢈␇);
+Test_N(q␇뢉␇, q␇뢉␇, q␇뢉␇, q␇뢉␇, q␇뢉␇);
+Test_N(q␇뢊␇, q␇뢊␇, q␇뢊␇, q␇뢊␇, q␇뢊␇);
+Test_N(q␇뢋␇, q␇뢋␇, q␇뢋␇, q␇뢋␇, q␇뢋␇);
+Test_N(q␇뢌␇, q␇뢌␇, q␇뢌␇, q␇뢌␇, q␇뢌␇);
+Test_N(q␇뢍␇, q␇뢍␇, q␇뢍␇, q␇뢍␇, q␇뢍␇);
+Test_N(q␇뢎␇, q␇뢎␇, q␇뢎␇, q␇뢎␇, q␇뢎␇);
+Test_N(q␇뢏␇, q␇뢏␇, q␇뢏␇, q␇뢏␇, q␇뢏␇);
+Test_N(q␇뢐␇, q␇뢐␇, q␇뢐␇, q␇뢐␇, q␇뢐␇);
+Test_N(q␇뢑␇, q␇뢑␇, q␇뢑␇, q␇뢑␇, q␇뢑␇);
+Test_N(q␇뢒␇, q␇뢒␇, q␇뢒␇, q␇뢒␇, q␇뢒␇);
+Test_N(q␇뢓␇, q␇뢓␇, q␇뢓␇, q␇뢓␇, q␇뢓␇);
+Test_N(q␇뢔␇, q␇뢔␇, q␇뢔␇, q␇뢔␇, q␇뢔␇);
+Test_N(q␇뢕␇, q␇뢕␇, q␇뢕␇, q␇뢕␇, q␇뢕␇);
+Test_N(q␇뢖␇, q␇뢖␇, q␇뢖␇, q␇뢖␇, q␇뢖␇);
+Test_N(q␇뢗␇, q␇뢗␇, q␇뢗␇, q␇뢗␇, q␇뢗␇);
+Test_N(q␇뢘␇, q␇뢘␇, q␇뢘␇, q␇뢘␇, q␇뢘␇);
+Test_N(q␇뢙␇, q␇뢙␇, q␇뢙␇, q␇뢙␇, q␇뢙␇);
+Test_N(q␇뢚␇, q␇뢚␇, q␇뢚␇, q␇뢚␇, q␇뢚␇);
+Test_N(q␇뢛␇, q␇뢛␇, q␇뢛␇, q␇뢛␇, q␇뢛␇);
+Test_N(q␇뢜␇, q␇뢜␇, q␇뢜␇, q␇뢜␇, q␇뢜␇);
+Test_N(q␇뢝␇, q␇뢝␇, q␇뢝␇, q␇뢝␇, q␇뢝␇);
+Test_N(q␇뢞␇, q␇뢞␇, q␇뢞␇, q␇뢞␇, q␇뢞␇);
+Test_N(q␇뢟␇, q␇뢟␇, q␇뢟␇, q␇뢟␇, q␇뢟␇);
+Test_N(q␇뢠␇, q␇뢠␇, q␇뢠␇, q␇뢠␇, q␇뢠␇);
+Test_N(q␇뢡␇, q␇뢡␇, q␇뢡␇, q␇뢡␇, q␇뢡␇);
+Test_N(q␇뢢␇, q␇뢢␇, q␇뢢␇, q␇뢢␇, q␇뢢␇);
+Test_N(q␇뢣␇, q␇뢣␇, q␇뢣␇, q␇뢣␇, q␇뢣␇);
+Test_N(q␇뢤␇, q␇뢤␇, q␇뢤␇, q␇뢤␇, q␇뢤␇);
+Test_N(q␇뢥␇, q␇뢥␇, q␇뢥␇, q␇뢥␇, q␇뢥␇);
+Test_N(q␇뢦␇, q␇뢦␇, q␇뢦␇, q␇뢦␇, q␇뢦␇);
+Test_N(q␇뢧␇, q␇뢧␇, q␇뢧␇, q␇뢧␇, q␇뢧␇);
+Test_N(q␇뢨␇, q␇뢨␇, q␇뢨␇, q␇뢨␇, q␇뢨␇);
+Test_N(q␇뢩␇, q␇뢩␇, q␇뢩␇, q␇뢩␇, q␇뢩␇);
+Test_N(q␇뢪␇, q␇뢪␇, q␇뢪␇, q␇뢪␇, q␇뢪␇);
+Test_N(q␇뢫␇, q␇뢫␇, q␇뢫␇, q␇뢫␇, q␇뢫␇);
+Test_N(q␇뢬␇, q␇뢬␇, q␇뢬␇, q␇뢬␇, q␇뢬␇);
+Test_N(q␇뢭␇, q␇뢭␇, q␇뢭␇, q␇뢭␇, q␇뢭␇);
+Test_N(q␇뢮␇, q␇뢮␇, q␇뢮␇, q␇뢮␇, q␇뢮␇);
+Test_N(q␇뢯␇, q␇뢯␇, q␇뢯␇, q␇뢯␇, q␇뢯␇);
+Test_N(q␇뢰␇, q␇뢰␇, q␇뢰␇, q␇뢰␇, q␇뢰␇);
+Test_N(q␇뢱␇, q␇뢱␇, q␇뢱␇, q␇뢱␇, q␇뢱␇);
+Test_N(q␇뢲␇, q␇뢲␇, q␇뢲␇, q␇뢲␇, q␇뢲␇);
+Test_N(q␇뢳␇, q␇뢳␇, q␇뢳␇, q␇뢳␇, q␇뢳␇);
+Test_N(q␇뢴␇, q␇뢴␇, q␇뢴␇, q␇뢴␇, q␇뢴␇);
+Test_N(q␇뢵␇, q␇뢵␇, q␇뢵␇, q␇뢵␇, q␇뢵␇);
+Test_N(q␇뢶␇, q␇뢶␇, q␇뢶␇, q␇뢶␇, q␇뢶␇);
+Test_N(q␇뢷␇, q␇뢷␇, q␇뢷␇, q␇뢷␇, q␇뢷␇);
+Test_N(q␇뢸␇, q␇뢸␇, q␇뢸␇, q␇뢸␇, q␇뢸␇);
+Test_N(q␇뢹␇, q␇뢹␇, q␇뢹␇, q␇뢹␇, q␇뢹␇);
+Test_N(q␇뢺␇, q␇뢺␇, q␇뢺␇, q␇뢺␇, q␇뢺␇);
+Test_N(q␇뢻␇, q␇뢻␇, q␇뢻␇, q␇뢻␇, q␇뢻␇);
+Test_N(q␇뢼␇, q␇뢼␇, q␇뢼␇, q␇뢼␇, q␇뢼␇);
+Test_N(q␇뢽␇, q␇뢽␇, q␇뢽␇, q␇뢽␇, q␇뢽␇);
+Test_N(q␇뢾␇, q␇뢾␇, q␇뢾␇, q␇뢾␇, q␇뢾␇);
+Test_N(q␇뢿␇, q␇뢿␇, q␇뢿␇, q␇뢿␇, q␇뢿␇);
+Test_N(q␇룀␇, q␇룀␇, q␇룀␇, q␇룀␇, q␇룀␇);
+Test_N(q␇룁␇, q␇룁␇, q␇룁␇, q␇룁␇, q␇룁␇);
+Test_N(q␇룂␇, q␇룂␇, q␇룂␇, q␇룂␇, q␇룂␇);
+Test_N(q␇룃␇, q␇룃␇, q␇룃␇, q␇룃␇, q␇룃␇);
+Test_N(q␇룄␇, q␇룄␇, q␇룄␇, q␇룄␇, q␇룄␇);
+Test_N(q␇룅␇, q␇룅␇, q␇룅␇, q␇룅␇, q␇룅␇);
+Test_N(q␇룆␇, q␇룆␇, q␇룆␇, q␇룆␇, q␇룆␇);
+Test_N(q␇룇␇, q␇룇␇, q␇룇␇, q␇룇␇, q␇룇␇);
+Test_N(q␇룈␇, q␇룈␇, q␇룈␇, q␇룈␇, q␇룈␇);
+Test_N(q␇룉␇, q␇룉␇, q␇룉␇, q␇룉␇, q␇룉␇);
+Test_N(q␇룊␇, q␇룊␇, q␇룊␇, q␇룊␇, q␇룊␇);
+Test_N(q␇룋␇, q␇룋␇, q␇룋␇, q␇룋␇, q␇룋␇);
+Test_N(q␇료␇, q␇료␇, q␇료␇, q␇료␇, q␇료␇);
+Test_N(q␇룍␇, q␇룍␇, q␇룍␇, q␇룍␇, q␇룍␇);
+Test_N(q␇룎␇, q␇룎␇, q␇룎␇, q␇룎␇, q␇룎␇);
+Test_N(q␇룏␇, q␇룏␇, q␇룏␇, q␇룏␇, q␇룏␇);
+Test_N(q␇룐␇, q␇룐␇, q␇룐␇, q␇룐␇, q␇룐␇);
+Test_N(q␇룑␇, q␇룑␇, q␇룑␇, q␇룑␇, q␇룑␇);
+Test_N(q␇룒␇, q␇룒␇, q␇룒␇, q␇룒␇, q␇룒␇);
+Test_N(q␇룓␇, q␇룓␇, q␇룓␇, q␇룓␇, q␇룓␇);
+Test_N(q␇룔␇, q␇룔␇, q␇룔␇, q␇룔␇, q␇룔␇);
+Test_N(q␇룕␇, q␇룕␇, q␇룕␇, q␇룕␇, q␇룕␇);
+Test_N(q␇룖␇, q␇룖␇, q␇룖␇, q␇룖␇, q␇룖␇);
+Test_N(q␇룗␇, q␇룗␇, q␇룗␇, q␇룗␇, q␇룗␇);
+Test_N(q␇룘␇, q␇룘␇, q␇룘␇, q␇룘␇, q␇룘␇);
+Test_N(q␇룙␇, q␇룙␇, q␇룙␇, q␇룙␇, q␇룙␇);
+Test_N(q␇룚␇, q␇룚␇, q␇룚␇, q␇룚␇, q␇룚␇);
+Test_N(q␇룛␇, q␇룛␇, q␇룛␇, q␇룛␇, q␇룛␇);
+Test_N(q␇룜␇, q␇룜␇, q␇룜␇, q␇룜␇, q␇룜␇);
+Test_N(q␇룝␇, q␇룝␇, q␇룝␇, q␇룝␇, q␇룝␇);
+Test_N(q␇룞␇, q␇룞␇, q␇룞␇, q␇룞␇, q␇룞␇);
+Test_N(q␇룟␇, q␇룟␇, q␇룟␇, q␇룟␇, q␇룟␇);
+Test_N(q␇룠␇, q␇룠␇, q␇룠␇, q␇룠␇, q␇룠␇);
+Test_N(q␇룡␇, q␇룡␇, q␇룡␇, q␇룡␇, q␇룡␇);
+Test_N(q␇룢␇, q␇룢␇, q␇룢␇, q␇룢␇, q␇룢␇);
+Test_N(q␇룣␇, q␇룣␇, q␇룣␇, q␇룣␇, q␇룣␇);
+Test_N(q␇룤␇, q␇룤␇, q␇룤␇, q␇룤␇, q␇룤␇);
+Test_N(q␇룥␇, q␇룥␇, q␇룥␇, q␇룥␇, q␇룥␇);
+Test_N(q␇룦␇, q␇룦␇, q␇룦␇, q␇룦␇, q␇룦␇);
+Test_N(q␇룧␇, q␇룧␇, q␇룧␇, q␇룧␇, q␇룧␇);
+Test_N(q␇루␇, q␇루␇, q␇루␇, q␇루␇, q␇루␇);
+Test_N(q␇룩␇, q␇룩␇, q␇룩␇, q␇룩␇, q␇룩␇);
+Test_N(q␇룪␇, q␇룪␇, q␇룪␇, q␇룪␇, q␇룪␇);
+Test_N(q␇룫␇, q␇룫␇, q␇룫␇, q␇룫␇, q␇룫␇);
+Test_N(q␇룬␇, q␇룬␇, q␇룬␇, q␇룬␇, q␇룬␇);
+Test_N(q␇룭␇, q␇룭␇, q␇룭␇, q␇룭␇, q␇룭␇);
+Test_N(q␇룮␇, q␇룮␇, q␇룮␇, q␇룮␇, q␇룮␇);
+Test_N(q␇룯␇, q␇룯␇, q␇룯␇, q␇룯␇, q␇룯␇);
+Test_N(q␇룰␇, q␇룰␇, q␇룰␇, q␇룰␇, q␇룰␇);
+Test_N(q␇룱␇, q␇룱␇, q␇룱␇, q␇룱␇, q␇룱␇);
+Test_N(q␇룲␇, q␇룲␇, q␇룲␇, q␇룲␇, q␇룲␇);
+Test_N(q␇룳␇, q␇룳␇, q␇룳␇, q␇룳␇, q␇룳␇);
+Test_N(q␇룴␇, q␇룴␇, q␇룴␇, q␇룴␇, q␇룴␇);
+Test_N(q␇룵␇, q␇룵␇, q␇룵␇, q␇룵␇, q␇룵␇);
+Test_N(q␇룶␇, q␇룶␇, q␇룶␇, q␇룶␇, q␇룶␇);
+Test_N(q␇룷␇, q␇룷␇, q␇룷␇, q␇룷␇, q␇룷␇);
+Test_N(q␇룸␇, q␇룸␇, q␇룸␇, q␇룸␇, q␇룸␇);
+Test_N(q␇룹␇, q␇룹␇, q␇룹␇, q␇룹␇, q␇룹␇);
+Test_N(q␇룺␇, q␇룺␇, q␇룺␇, q␇룺␇, q␇룺␇);
+Test_N(q␇룻␇, q␇룻␇, q␇룻␇, q␇룻␇, q␇룻␇);
+Test_N(q␇룼␇, q␇룼␇, q␇룼␇, q␇룼␇, q␇룼␇);
+Test_N(q␇룽␇, q␇룽␇, q␇룽␇, q␇룽␇, q␇룽␇);
+Test_N(q␇룾␇, q␇룾␇, q␇룾␇, q␇룾␇, q␇룾␇);
+Test_N(q␇룿␇, q␇룿␇, q␇룿␇, q␇룿␇, q␇룿␇);
+Test_N(q␇뤀␇, q␇뤀␇, q␇뤀␇, q␇뤀␇, q␇뤀␇);
+Test_N(q␇뤁␇, q␇뤁␇, q␇뤁␇, q␇뤁␇, q␇뤁␇);
+Test_N(q␇뤂␇, q␇뤂␇, q␇뤂␇, q␇뤂␇, q␇뤂␇);
+Test_N(q␇뤃␇, q␇뤃␇, q␇뤃␇, q␇뤃␇, q␇뤃␇);
+Test_N(q␇뤄␇, q␇뤄␇, q␇뤄␇, q␇뤄␇, q␇뤄␇);
+Test_N(q␇뤅␇, q␇뤅␇, q␇뤅␇, q␇뤅␇, q␇뤅␇);
+Test_N(q␇뤆␇, q␇뤆␇, q␇뤆␇, q␇뤆␇, q␇뤆␇);
+Test_N(q␇뤇␇, q␇뤇␇, q␇뤇␇, q␇뤇␇, q␇뤇␇);
+Test_N(q␇뤈␇, q␇뤈␇, q␇뤈␇, q␇뤈␇, q␇뤈␇);
+Test_N(q␇뤉␇, q␇뤉␇, q␇뤉␇, q␇뤉␇, q␇뤉␇);
+Test_N(q␇뤊␇, q␇뤊␇, q␇뤊␇, q␇뤊␇, q␇뤊␇);
+Test_N(q␇뤋␇, q␇뤋␇, q␇뤋␇, q␇뤋␇, q␇뤋␇);
+Test_N(q␇뤌␇, q␇뤌␇, q␇뤌␇, q␇뤌␇, q␇뤌␇);
+Test_N(q␇뤍␇, q␇뤍␇, q␇뤍␇, q␇뤍␇, q␇뤍␇);
+Test_N(q␇뤎␇, q␇뤎␇, q␇뤎␇, q␇뤎␇, q␇뤎␇);
+Test_N(q␇뤏␇, q␇뤏␇, q␇뤏␇, q␇뤏␇, q␇뤏␇);
+Test_N(q␇뤐␇, q␇뤐␇, q␇뤐␇, q␇뤐␇, q␇뤐␇);
+Test_N(q␇뤑␇, q␇뤑␇, q␇뤑␇, q␇뤑␇, q␇뤑␇);
+Test_N(q␇뤒␇, q␇뤒␇, q␇뤒␇, q␇뤒␇, q␇뤒␇);
+Test_N(q␇뤓␇, q␇뤓␇, q␇뤓␇, q␇뤓␇, q␇뤓␇);
+Test_N(q␇뤔␇, q␇뤔␇, q␇뤔␇, q␇뤔␇, q␇뤔␇);
+Test_N(q␇뤕␇, q␇뤕␇, q␇뤕␇, q␇뤕␇, q␇뤕␇);
+Test_N(q␇뤖␇, q␇뤖␇, q␇뤖␇, q␇뤖␇, q␇뤖␇);
+Test_N(q␇뤗␇, q␇뤗␇, q␇뤗␇, q␇뤗␇, q␇뤗␇);
+Test_N(q␇뤘␇, q␇뤘␇, q␇뤘␇, q␇뤘␇, q␇뤘␇);
+Test_N(q␇뤙␇, q␇뤙␇, q␇뤙␇, q␇뤙␇, q␇뤙␇);
+Test_N(q␇뤚␇, q␇뤚␇, q␇뤚␇, q␇뤚␇, q␇뤚␇);
+Test_N(q␇뤛␇, q␇뤛␇, q␇뤛␇, q␇뤛␇, q␇뤛␇);
+Test_N(q␇뤜␇, q␇뤜␇, q␇뤜␇, q␇뤜␇, q␇뤜␇);
+Test_N(q␇뤝␇, q␇뤝␇, q␇뤝␇, q␇뤝␇, q␇뤝␇);
+Test_N(q␇뤞␇, q␇뤞␇, q␇뤞␇, q␇뤞␇, q␇뤞␇);
+Test_N(q␇뤟␇, q␇뤟␇, q␇뤟␇, q␇뤟␇, q␇뤟␇);
+Test_N(q␇뤠␇, q␇뤠␇, q␇뤠␇, q␇뤠␇, q␇뤠␇);
+Test_N(q␇뤡␇, q␇뤡␇, q␇뤡␇, q␇뤡␇, q␇뤡␇);
+Test_N(q␇뤢␇, q␇뤢␇, q␇뤢␇, q␇뤢␇, q␇뤢␇);
+Test_N(q␇뤣␇, q␇뤣␇, q␇뤣␇, q␇뤣␇, q␇뤣␇);
+Test_N(q␇뤤␇, q␇뤤␇, q␇뤤␇, q␇뤤␇, q␇뤤␇);
+Test_N(q␇뤥␇, q␇뤥␇, q␇뤥␇, q␇뤥␇, q␇뤥␇);
+Test_N(q␇뤦␇, q␇뤦␇, q␇뤦␇, q␇뤦␇, q␇뤦␇);
+Test_N(q␇뤧␇, q␇뤧␇, q␇뤧␇, q␇뤧␇, q␇뤧␇);
+Test_N(q␇뤨␇, q␇뤨␇, q␇뤨␇, q␇뤨␇, q␇뤨␇);
+Test_N(q␇뤩␇, q␇뤩␇, q␇뤩␇, q␇뤩␇, q␇뤩␇);
+Test_N(q␇뤪␇, q␇뤪␇, q␇뤪␇, q␇뤪␇, q␇뤪␇);
+Test_N(q␇뤫␇, q␇뤫␇, q␇뤫␇, q␇뤫␇, q␇뤫␇);
+Test_N(q␇뤬␇, q␇뤬␇, q␇뤬␇, q␇뤬␇, q␇뤬␇);
+Test_N(q␇뤭␇, q␇뤭␇, q␇뤭␇, q␇뤭␇, q␇뤭␇);
+Test_N(q␇뤮␇, q␇뤮␇, q␇뤮␇, q␇뤮␇, q␇뤮␇);
+Test_N(q␇뤯␇, q␇뤯␇, q␇뤯␇, q␇뤯␇, q␇뤯␇);
+Test_N(q␇뤰␇, q␇뤰␇, q␇뤰␇, q␇뤰␇, q␇뤰␇);
+Test_N(q␇뤱␇, q␇뤱␇, q␇뤱␇, q␇뤱␇, q␇뤱␇);
+Test_N(q␇뤲␇, q␇뤲␇, q␇뤲␇, q␇뤲␇, q␇뤲␇);
+Test_N(q␇뤳␇, q␇뤳␇, q␇뤳␇, q␇뤳␇, q␇뤳␇);
+Test_N(q␇뤴␇, q␇뤴␇, q␇뤴␇, q␇뤴␇, q␇뤴␇);
+Test_N(q␇뤵␇, q␇뤵␇, q␇뤵␇, q␇뤵␇, q␇뤵␇);
+Test_N(q␇뤶␇, q␇뤶␇, q␇뤶␇, q␇뤶␇, q␇뤶␇);
+Test_N(q␇뤷␇, q␇뤷␇, q␇뤷␇, q␇뤷␇, q␇뤷␇);
+Test_N(q␇뤸␇, q␇뤸␇, q␇뤸␇, q␇뤸␇, q␇뤸␇);
+Test_N(q␇뤹␇, q␇뤹␇, q␇뤹␇, q␇뤹␇, q␇뤹␇);
+Test_N(q␇뤺␇, q␇뤺␇, q␇뤺␇, q␇뤺␇, q␇뤺␇);
+Test_N(q␇뤻␇, q␇뤻␇, q␇뤻␇, q␇뤻␇, q␇뤻␇);
+Test_N(q␇뤼␇, q␇뤼␇, q␇뤼␇, q␇뤼␇, q␇뤼␇);
+Test_N(q␇뤽␇, q␇뤽␇, q␇뤽␇, q␇뤽␇, q␇뤽␇);
+Test_N(q␇뤾␇, q␇뤾␇, q␇뤾␇, q␇뤾␇, q␇뤾␇);
+Test_N(q␇뤿␇, q␇뤿␇, q␇뤿␇, q␇뤿␇, q␇뤿␇);
+Test_N(q␇륀␇, q␇륀␇, q␇륀␇, q␇륀␇, q␇륀␇);
+Test_N(q␇륁␇, q␇륁␇, q␇륁␇, q␇륁␇, q␇륁␇);
+Test_N(q␇륂␇, q␇륂␇, q␇륂␇, q␇륂␇, q␇륂␇);
+Test_N(q␇륃␇, q␇륃␇, q␇륃␇, q␇륃␇, q␇륃␇);
+Test_N(q␇륄␇, q␇륄␇, q␇륄␇, q␇륄␇, q␇륄␇);
+Test_N(q␇륅␇, q␇륅␇, q␇륅␇, q␇륅␇, q␇륅␇);
+Test_N(q␇륆␇, q␇륆␇, q␇륆␇, q␇륆␇, q␇륆␇);
+Test_N(q␇륇␇, q␇륇␇, q␇륇␇, q␇륇␇, q␇륇␇);
+Test_N(q␇륈␇, q␇륈␇, q␇륈␇, q␇륈␇, q␇륈␇);
+Test_N(q␇륉␇, q␇륉␇, q␇륉␇, q␇륉␇, q␇륉␇);
+Test_N(q␇륊␇, q␇륊␇, q␇륊␇, q␇륊␇, q␇륊␇);
+Test_N(q␇륋␇, q␇륋␇, q␇륋␇, q␇륋␇, q␇륋␇);
+Test_N(q␇륌␇, q␇륌␇, q␇륌␇, q␇륌␇, q␇륌␇);
+Test_N(q␇륍␇, q␇륍␇, q␇륍␇, q␇륍␇, q␇륍␇);
+Test_N(q␇륎␇, q␇륎␇, q␇륎␇, q␇륎␇, q␇륎␇);
+Test_N(q␇륏␇, q␇륏␇, q␇륏␇, q␇륏␇, q␇륏␇);
+Test_N(q␇륐␇, q␇륐␇, q␇륐␇, q␇륐␇, q␇륐␇);
+Test_N(q␇륑␇, q␇륑␇, q␇륑␇, q␇륑␇, q␇륑␇);
+Test_N(q␇륒␇, q␇륒␇, q␇륒␇, q␇륒␇, q␇륒␇);
+Test_N(q␇륓␇, q␇륓␇, q␇륓␇, q␇륓␇, q␇륓␇);
+Test_N(q␇륔␇, q␇륔␇, q␇륔␇, q␇륔␇, q␇륔␇);
+Test_N(q␇륕␇, q␇륕␇, q␇륕␇, q␇륕␇, q␇륕␇);
+Test_N(q␇륖␇, q␇륖␇, q␇륖␇, q␇륖␇, q␇륖␇);
+Test_N(q␇륗␇, q␇륗␇, q␇륗␇, q␇륗␇, q␇륗␇);
+Test_N(q␇류␇, q␇류␇, q␇류␇, q␇류␇, q␇류␇);
+Test_N(q␇륙␇, q␇륙␇, q␇륙␇, q␇륙␇, q␇륙␇);
+Test_N(q␇륚␇, q␇륚␇, q␇륚␇, q␇륚␇, q␇륚␇);
+Test_N(q␇륛␇, q␇륛␇, q␇륛␇, q␇륛␇, q␇륛␇);
+Test_N(q␇륜␇, q␇륜␇, q␇륜␇, q␇륜␇, q␇륜␇);
+Test_N(q␇륝␇, q␇륝␇, q␇륝␇, q␇륝␇, q␇륝␇);
+Test_N(q␇륞␇, q␇륞␇, q␇륞␇, q␇륞␇, q␇륞␇);
+Test_N(q␇륟␇, q␇륟␇, q␇륟␇, q␇륟␇, q␇륟␇);
+Test_N(q␇률␇, q␇률␇, q␇률␇, q␇률␇, q␇률␇);
+Test_N(q␇륡␇, q␇륡␇, q␇륡␇, q␇륡␇, q␇륡␇);
+Test_N(q␇륢␇, q␇륢␇, q␇륢␇, q␇륢␇, q␇륢␇);
+Test_N(q␇륣␇, q␇륣␇, q␇륣␇, q␇륣␇, q␇륣␇);
+Test_N(q␇륤␇, q␇륤␇, q␇륤␇, q␇륤␇, q␇륤␇);
+Test_N(q␇륥␇, q␇륥␇, q␇륥␇, q␇륥␇, q␇륥␇);
+Test_N(q␇륦␇, q␇륦␇, q␇륦␇, q␇륦␇, q␇륦␇);
+Test_N(q␇륧␇, q␇륧␇, q␇륧␇, q␇륧␇, q␇륧␇);
+Test_N(q␇륨␇, q␇륨␇, q␇륨␇, q␇륨␇, q␇륨␇);
+Test_N(q␇륩␇, q␇륩␇, q␇륩␇, q␇륩␇, q␇륩␇);
+Test_N(q␇륪␇, q␇륪␇, q␇륪␇, q␇륪␇, q␇륪␇);
+Test_N(q␇륫␇, q␇륫␇, q␇륫␇, q␇륫␇, q␇륫␇);
+Test_N(q␇륬␇, q␇륬␇, q␇륬␇, q␇륬␇, q␇륬␇);
+Test_N(q␇륭␇, q␇륭␇, q␇륭␇, q␇륭␇, q␇륭␇);
+Test_N(q␇륮␇, q␇륮␇, q␇륮␇, q␇륮␇, q␇륮␇);
+Test_N(q␇륯␇, q␇륯␇, q␇륯␇, q␇륯␇, q␇륯␇);
+Test_N(q␇륰␇, q␇륰␇, q␇륰␇, q␇륰␇, q␇륰␇);
+Test_N(q␇륱␇, q␇륱␇, q␇륱␇, q␇륱␇, q␇륱␇);
+Test_N(q␇륲␇, q␇륲␇, q␇륲␇, q␇륲␇, q␇륲␇);
+Test_N(q␇륳␇, q␇륳␇, q␇륳␇, q␇륳␇, q␇륳␇);
+Test_N(q␇르␇, q␇르␇, q␇르␇, q␇르␇, q␇르␇);
+Test_N(q␇륵␇, q␇륵␇, q␇륵␇, q␇륵␇, q␇륵␇);
+Test_N(q␇륶␇, q␇륶␇, q␇륶␇, q␇륶␇, q␇륶␇);
+Test_N(q␇륷␇, q␇륷␇, q␇륷␇, q␇륷␇, q␇륷␇);
+Test_N(q␇른␇, q␇른␇, q␇른␇, q␇른␇, q␇른␇);
+Test_N(q␇륹␇, q␇륹␇, q␇륹␇, q␇륹␇, q␇륹␇);
+Test_N(q␇륺␇, q␇륺␇, q␇륺␇, q␇륺␇, q␇륺␇);
+Test_N(q␇륻␇, q␇륻␇, q␇륻␇, q␇륻␇, q␇륻␇);
+Test_N(q␇를␇, q␇를␇, q␇를␇, q␇를␇, q␇를␇);
+Test_N(q␇륽␇, q␇륽␇, q␇륽␇, q␇륽␇, q␇륽␇);
+Test_N(q␇륾␇, q␇륾␇, q␇륾␇, q␇륾␇, q␇륾␇);
+Test_N(q␇륿␇, q␇륿␇, q␇륿␇, q␇륿␇, q␇륿␇);
+Test_N(q␇릀␇, q␇릀␇, q␇릀␇, q␇릀␇, q␇릀␇);
+Test_N(q␇릁␇, q␇릁␇, q␇릁␇, q␇릁␇, q␇릁␇);
+Test_N(q␇릂␇, q␇릂␇, q␇릂␇, q␇릂␇, q␇릂␇);
+Test_N(q␇릃␇, q␇릃␇, q␇릃␇, q␇릃␇, q␇릃␇);
+Test_N(q␇름␇, q␇름␇, q␇름␇, q␇름␇, q␇름␇);
+Test_N(q␇릅␇, q␇릅␇, q␇릅␇, q␇릅␇, q␇릅␇);
+Test_N(q␇릆␇, q␇릆␇, q␇릆␇, q␇릆␇, q␇릆␇);
+Test_N(q␇릇␇, q␇릇␇, q␇릇␇, q␇릇␇, q␇릇␇);
+Test_N(q␇릈␇, q␇릈␇, q␇릈␇, q␇릈␇, q␇릈␇);
+Test_N(q␇릉␇, q␇릉␇, q␇릉␇, q␇릉␇, q␇릉␇);
+Test_N(q␇릊␇, q␇릊␇, q␇릊␇, q␇릊␇, q␇릊␇);
+Test_N(q␇릋␇, q␇릋␇, q␇릋␇, q␇릋␇, q␇릋␇);
+Test_N(q␇릌␇, q␇릌␇, q␇릌␇, q␇릌␇, q␇릌␇);
+Test_N(q␇릍␇, q␇릍␇, q␇릍␇, q␇릍␇, q␇릍␇);
+Test_N(q␇릎␇, q␇릎␇, q␇릎␇, q␇릎␇, q␇릎␇);
+Test_N(q␇릏␇, q␇릏␇, q␇릏␇, q␇릏␇, q␇릏␇);
+Test_N(q␇릐␇, q␇릐␇, q␇릐␇, q␇릐␇, q␇릐␇);
+Test_N(q␇릑␇, q␇릑␇, q␇릑␇, q␇릑␇, q␇릑␇);
+Test_N(q␇릒␇, q␇릒␇, q␇릒␇, q␇릒␇, q␇릒␇);
+Test_N(q␇릓␇, q␇릓␇, q␇릓␇, q␇릓␇, q␇릓␇);
+Test_N(q␇릔␇, q␇릔␇, q␇릔␇, q␇릔␇, q␇릔␇);
+Test_N(q␇릕␇, q␇릕␇, q␇릕␇, q␇릕␇, q␇릕␇);
+Test_N(q␇릖␇, q␇릖␇, q␇릖␇, q␇릖␇, q␇릖␇);
+Test_N(q␇릗␇, q␇릗␇, q␇릗␇, q␇릗␇, q␇릗␇);
+Test_N(q␇릘␇, q␇릘␇, q␇릘␇, q␇릘␇, q␇릘␇);
+Test_N(q␇릙␇, q␇릙␇, q␇릙␇, q␇릙␇, q␇릙␇);
+Test_N(q␇릚␇, q␇릚␇, q␇릚␇, q␇릚␇, q␇릚␇);
+Test_N(q␇릛␇, q␇릛␇, q␇릛␇, q␇릛␇, q␇릛␇);
+Test_N(q␇릜␇, q␇릜␇, q␇릜␇, q␇릜␇, q␇릜␇);
+Test_N(q␇릝␇, q␇릝␇, q␇릝␇, q␇릝␇, q␇릝␇);
+Test_N(q␇릞␇, q␇릞␇, q␇릞␇, q␇릞␇, q␇릞␇);
+Test_N(q␇릟␇, q␇릟␇, q␇릟␇, q␇릟␇, q␇릟␇);
+Test_N(q␇릠␇, q␇릠␇, q␇릠␇, q␇릠␇, q␇릠␇);
+Test_N(q␇릡␇, q␇릡␇, q␇릡␇, q␇릡␇, q␇릡␇);
+Test_N(q␇릢␇, q␇릢␇, q␇릢␇, q␇릢␇, q␇릢␇);
+Test_N(q␇릣␇, q␇릣␇, q␇릣␇, q␇릣␇, q␇릣␇);
+Test_N(q␇릤␇, q␇릤␇, q␇릤␇, q␇릤␇, q␇릤␇);
+Test_N(q␇릥␇, q␇릥␇, q␇릥␇, q␇릥␇, q␇릥␇);
+Test_N(q␇릦␇, q␇릦␇, q␇릦␇, q␇릦␇, q␇릦␇);
+Test_N(q␇릧␇, q␇릧␇, q␇릧␇, q␇릧␇, q␇릧␇);
+Test_N(q␇릨␇, q␇릨␇, q␇릨␇, q␇릨␇, q␇릨␇);
+Test_N(q␇릩␇, q␇릩␇, q␇릩␇, q␇릩␇, q␇릩␇);
+Test_N(q␇릪␇, q␇릪␇, q␇릪␇, q␇릪␇, q␇릪␇);
+Test_N(q␇릫␇, q␇릫␇, q␇릫␇, q␇릫␇, q␇릫␇);
+Test_N(q␇리␇, q␇리␇, q␇리␇, q␇리␇, q␇리␇);
+Test_N(q␇릭␇, q␇릭␇, q␇릭␇, q␇릭␇, q␇릭␇);
+Test_N(q␇릮␇, q␇릮␇, q␇릮␇, q␇릮␇, q␇릮␇);
+Test_N(q␇릯␇, q␇릯␇, q␇릯␇, q␇릯␇, q␇릯␇);
+Test_N(q␇린␇, q␇린␇, q␇린␇, q␇린␇, q␇린␇);
+Test_N(q␇릱␇, q␇릱␇, q␇릱␇, q␇릱␇, q␇릱␇);
+Test_N(q␇릲␇, q␇릲␇, q␇릲␇, q␇릲␇, q␇릲␇);
+Test_N(q␇릳␇, q␇릳␇, q␇릳␇, q␇릳␇, q␇릳␇);
+Test_N(q␇릴␇, q␇릴␇, q␇릴␇, q␇릴␇, q␇릴␇);
+Test_N(q␇릵␇, q␇릵␇, q␇릵␇, q␇릵␇, q␇릵␇);
+Test_N(q␇릶␇, q␇릶␇, q␇릶␇, q␇릶␇, q␇릶␇);
+Test_N(q␇릷␇, q␇릷␇, q␇릷␇, q␇릷␇, q␇릷␇);
+Test_N(q␇릸␇, q␇릸␇, q␇릸␇, q␇릸␇, q␇릸␇);
+Test_N(q␇릹␇, q␇릹␇, q␇릹␇, q␇릹␇, q␇릹␇);
+Test_N(q␇릺␇, q␇릺␇, q␇릺␇, q␇릺␇, q␇릺␇);
+Test_N(q␇릻␇, q␇릻␇, q␇릻␇, q␇릻␇, q␇릻␇);
+Test_N(q␇림␇, q␇림␇, q␇림␇, q␇림␇, q␇림␇);
+Test_N(q␇립␇, q␇립␇, q␇립␇, q␇립␇, q␇립␇);
+Test_N(q␇릾␇, q␇릾␇, q␇릾␇, q␇릾␇, q␇릾␇);
+Test_N(q␇릿␇, q␇릿␇, q␇릿␇, q␇릿␇, q␇릿␇);
+Test_N(q␇맀␇, q␇맀␇, q␇맀␇, q␇맀␇, q␇맀␇);
+Test_N(q␇링␇, q␇링␇, q␇링␇, q␇링␇, q␇링␇);
+Test_N(q␇맂␇, q␇맂␇, q␇맂␇, q␇맂␇, q␇맂␇);
+Test_N(q␇맃␇, q␇맃␇, q␇맃␇, q␇맃␇, q␇맃␇);
+Test_N(q␇맄␇, q␇맄␇, q␇맄␇, q␇맄␇, q␇맄␇);
+Test_N(q␇맅␇, q␇맅␇, q␇맅␇, q␇맅␇, q␇맅␇);
+Test_N(q␇맆␇, q␇맆␇, q␇맆␇, q␇맆␇, q␇맆␇);
+Test_N(q␇맇␇, q␇맇␇, q␇맇␇, q␇맇␇, q␇맇␇);
+Test_N(q␇마␇, q␇마␇, q␇마␇, q␇마␇, q␇마␇);
+Test_N(q␇막␇, q␇막␇, q␇막␇, q␇막␇, q␇막␇);
+Test_N(q␇맊␇, q␇맊␇, q␇맊␇, q␇맊␇, q␇맊␇);
+Test_N(q␇맋␇, q␇맋␇, q␇맋␇, q␇맋␇, q␇맋␇);
+Test_N(q␇만␇, q␇만␇, q␇만␇, q␇만␇, q␇만␇);
+Test_N(q␇맍␇, q␇맍␇, q␇맍␇, q␇맍␇, q␇맍␇);
+Test_N(q␇많␇, q␇많␇, q␇많␇, q␇많␇, q␇많␇);
+Test_N(q␇맏␇, q␇맏␇, q␇맏␇, q␇맏␇, q␇맏␇);
+Test_N(q␇말␇, q␇말␇, q␇말␇, q␇말␇, q␇말␇);
+Test_N(q␇맑␇, q␇맑␇, q␇맑␇, q␇맑␇, q␇맑␇);
+Test_N(q␇맒␇, q␇맒␇, q␇맒␇, q␇맒␇, q␇맒␇);
+Test_N(q␇맓␇, q␇맓␇, q␇맓␇, q␇맓␇, q␇맓␇);
+Test_N(q␇맔␇, q␇맔␇, q␇맔␇, q␇맔␇, q␇맔␇);
+Test_N(q␇맕␇, q␇맕␇, q␇맕␇, q␇맕␇, q␇맕␇);
+Test_N(q␇맖␇, q␇맖␇, q␇맖␇, q␇맖␇, q␇맖␇);
+Test_N(q␇맗␇, q␇맗␇, q␇맗␇, q␇맗␇, q␇맗␇);
+Test_N(q␇맘␇, q␇맘␇, q␇맘␇, q␇맘␇, q␇맘␇);
+Test_N(q␇맙␇, q␇맙␇, q␇맙␇, q␇맙␇, q␇맙␇);
+Test_N(q␇맚␇, q␇맚␇, q␇맚␇, q␇맚␇, q␇맚␇);
+Test_N(q␇맛␇, q␇맛␇, q␇맛␇, q␇맛␇, q␇맛␇);
+Test_N(q␇맜␇, q␇맜␇, q␇맜␇, q␇맜␇, q␇맜␇);
+Test_N(q␇망␇, q␇망␇, q␇망␇, q␇망␇, q␇망␇);
+Test_N(q␇맞␇, q␇맞␇, q␇맞␇, q␇맞␇, q␇맞␇);
+Test_N(q␇맟␇, q␇맟␇, q␇맟␇, q␇맟␇, q␇맟␇);
+Test_N(q␇맠␇, q␇맠␇, q␇맠␇, q␇맠␇, q␇맠␇);
+Test_N(q␇맡␇, q␇맡␇, q␇맡␇, q␇맡␇, q␇맡␇);
+Test_N(q␇맢␇, q␇맢␇, q␇맢␇, q␇맢␇, q␇맢␇);
+Test_N(q␇맣␇, q␇맣␇, q␇맣␇, q␇맣␇, q␇맣␇);
+Test_N(q␇매␇, q␇매␇, q␇매␇, q␇매␇, q␇매␇);
+Test_N(q␇맥␇, q␇맥␇, q␇맥␇, q␇맥␇, q␇맥␇);
+Test_N(q␇맦␇, q␇맦␇, q␇맦␇, q␇맦␇, q␇맦␇);
+Test_N(q␇맧␇, q␇맧␇, q␇맧␇, q␇맧␇, q␇맧␇);
+Test_N(q␇맨␇, q␇맨␇, q␇맨␇, q␇맨␇, q␇맨␇);
+Test_N(q␇맩␇, q␇맩␇, q␇맩␇, q␇맩␇, q␇맩␇);
+Test_N(q␇맪␇, q␇맪␇, q␇맪␇, q␇맪␇, q␇맪␇);
+Test_N(q␇맫␇, q␇맫␇, q␇맫␇, q␇맫␇, q␇맫␇);
+Test_N(q␇맬␇, q␇맬␇, q␇맬␇, q␇맬␇, q␇맬␇);
+Test_N(q␇맭␇, q␇맭␇, q␇맭␇, q␇맭␇, q␇맭␇);
+Test_N(q␇맮␇, q␇맮␇, q␇맮␇, q␇맮␇, q␇맮␇);
+Test_N(q␇맯␇, q␇맯␇, q␇맯␇, q␇맯␇, q␇맯␇);
+Test_N(q␇맰␇, q␇맰␇, q␇맰␇, q␇맰␇, q␇맰␇);
+Test_N(q␇맱␇, q␇맱␇, q␇맱␇, q␇맱␇, q␇맱␇);
+Test_N(q␇맲␇, q␇맲␇, q␇맲␇, q␇맲␇, q␇맲␇);
+Test_N(q␇맳␇, q␇맳␇, q␇맳␇, q␇맳␇, q␇맳␇);
+Test_N(q␇맴␇, q␇맴␇, q␇맴␇, q␇맴␇, q␇맴␇);
+Test_N(q␇맵␇, q␇맵␇, q␇맵␇, q␇맵␇, q␇맵␇);
+Test_N(q␇맶␇, q␇맶␇, q␇맶␇, q␇맶␇, q␇맶␇);
+Test_N(q␇맷␇, q␇맷␇, q␇맷␇, q␇맷␇, q␇맷␇);
+Test_N(q␇맸␇, q␇맸␇, q␇맸␇, q␇맸␇, q␇맸␇);
+Test_N(q␇맹␇, q␇맹␇, q␇맹␇, q␇맹␇, q␇맹␇);
+Test_N(q␇맺␇, q␇맺␇, q␇맺␇, q␇맺␇, q␇맺␇);
+Test_N(q␇맻␇, q␇맻␇, q␇맻␇, q␇맻␇, q␇맻␇);
+Test_N(q␇맼␇, q␇맼␇, q␇맼␇, q␇맼␇, q␇맼␇);
+Test_N(q␇맽␇, q␇맽␇, q␇맽␇, q␇맽␇, q␇맽␇);
+Test_N(q␇맾␇, q␇맾␇, q␇맾␇, q␇맾␇, q␇맾␇);
+Test_N(q␇맿␇, q␇맿␇, q␇맿␇, q␇맿␇, q␇맿␇);
+Test_N(q␇먀␇, q␇먀␇, q␇먀␇, q␇먀␇, q␇먀␇);
+Test_N(q␇먁␇, q␇먁␇, q␇먁␇, q␇먁␇, q␇먁␇);
+Test_N(q␇먂␇, q␇먂␇, q␇먂␇, q␇먂␇, q␇먂␇);
+Test_N(q␇먃␇, q␇먃␇, q␇먃␇, q␇먃␇, q␇먃␇);
+Test_N(q␇먄␇, q␇먄␇, q␇먄␇, q␇먄␇, q␇먄␇);
+Test_N(q␇먅␇, q␇먅␇, q␇먅␇, q␇먅␇, q␇먅␇);
+Test_N(q␇먆␇, q␇먆␇, q␇먆␇, q␇먆␇, q␇먆␇);
+Test_N(q␇먇␇, q␇먇␇, q␇먇␇, q␇먇␇, q␇먇␇);
+Test_N(q␇먈␇, q␇먈␇, q␇먈␇, q␇먈␇, q␇먈␇);
+Test_N(q␇먉␇, q␇먉␇, q␇먉␇, q␇먉␇, q␇먉␇);
+Test_N(q␇먊␇, q␇먊␇, q␇먊␇, q␇먊␇, q␇먊␇);
+Test_N(q␇먋␇, q␇먋␇, q␇먋␇, q␇먋␇, q␇먋␇);
+Test_N(q␇먌␇, q␇먌␇, q␇먌␇, q␇먌␇, q␇먌␇);
+Test_N(q␇먍␇, q␇먍␇, q␇먍␇, q␇먍␇, q␇먍␇);
+Test_N(q␇먎␇, q␇먎␇, q␇먎␇, q␇먎␇, q␇먎␇);
+Test_N(q␇먏␇, q␇먏␇, q␇먏␇, q␇먏␇, q␇먏␇);
+Test_N(q␇먐␇, q␇먐␇, q␇먐␇, q␇먐␇, q␇먐␇);
+Test_N(q␇먑␇, q␇먑␇, q␇먑␇, q␇먑␇, q␇먑␇);
+Test_N(q␇먒␇, q␇먒␇, q␇먒␇, q␇먒␇, q␇먒␇);
+Test_N(q␇먓␇, q␇먓␇, q␇먓␇, q␇먓␇, q␇먓␇);
+Test_N(q␇먔␇, q␇먔␇, q␇먔␇, q␇먔␇, q␇먔␇);
+Test_N(q␇먕␇, q␇먕␇, q␇먕␇, q␇먕␇, q␇먕␇);
+Test_N(q␇먖␇, q␇먖␇, q␇먖␇, q␇먖␇, q␇먖␇);
+Test_N(q␇먗␇, q␇먗␇, q␇먗␇, q␇먗␇, q␇먗␇);
+Test_N(q␇먘␇, q␇먘␇, q␇먘␇, q␇먘␇, q␇먘␇);
+Test_N(q␇먙␇, q␇먙␇, q␇먙␇, q␇먙␇, q␇먙␇);
+Test_N(q␇먚␇, q␇먚␇, q␇먚␇, q␇먚␇, q␇먚␇);
+Test_N(q␇먛␇, q␇먛␇, q␇먛␇, q␇먛␇, q␇먛␇);
+Test_N(q␇먜␇, q␇먜␇, q␇먜␇, q␇먜␇, q␇먜␇);
+Test_N(q␇먝␇, q␇먝␇, q␇먝␇, q␇먝␇, q␇먝␇);
+Test_N(q␇먞␇, q␇먞␇, q␇먞␇, q␇먞␇, q␇먞␇);
+Test_N(q␇먟␇, q␇먟␇, q␇먟␇, q␇먟␇, q␇먟␇);
+Test_N(q␇먠␇, q␇먠␇, q␇먠␇, q␇먠␇, q␇먠␇);
+Test_N(q␇먡␇, q␇먡␇, q␇먡␇, q␇먡␇, q␇먡␇);
+Test_N(q␇먢␇, q␇먢␇, q␇먢␇, q␇먢␇, q␇먢␇);
+Test_N(q␇먣␇, q␇먣␇, q␇먣␇, q␇먣␇, q␇먣␇);
+Test_N(q␇먤␇, q␇먤␇, q␇먤␇, q␇먤␇, q␇먤␇);
+Test_N(q␇먥␇, q␇먥␇, q␇먥␇, q␇먥␇, q␇먥␇);
+Test_N(q␇먦␇, q␇먦␇, q␇먦␇, q␇먦␇, q␇먦␇);
+Test_N(q␇먧␇, q␇먧␇, q␇먧␇, q␇먧␇, q␇먧␇);
+Test_N(q␇먨␇, q␇먨␇, q␇먨␇, q␇먨␇, q␇먨␇);
+Test_N(q␇먩␇, q␇먩␇, q␇먩␇, q␇먩␇, q␇먩␇);
+Test_N(q␇먪␇, q␇먪␇, q␇먪␇, q␇먪␇, q␇먪␇);
+Test_N(q␇먫␇, q␇먫␇, q␇먫␇, q␇먫␇, q␇먫␇);
+Test_N(q␇먬␇, q␇먬␇, q␇먬␇, q␇먬␇, q␇먬␇);
+Test_N(q␇먭␇, q␇먭␇, q␇먭␇, q␇먭␇, q␇먭␇);
+Test_N(q␇먮␇, q␇먮␇, q␇먮␇, q␇먮␇, q␇먮␇);
+Test_N(q␇먯␇, q␇먯␇, q␇먯␇, q␇먯␇, q␇먯␇);
+Test_N(q␇먰␇, q␇먰␇, q␇먰␇, q␇먰␇, q␇먰␇);
+Test_N(q␇먱␇, q␇먱␇, q␇먱␇, q␇먱␇, q␇먱␇);
+Test_N(q␇먲␇, q␇먲␇, q␇먲␇, q␇먲␇, q␇먲␇);
+Test_N(q␇먳␇, q␇먳␇, q␇먳␇, q␇먳␇, q␇먳␇);
+Test_N(q␇먴␇, q␇먴␇, q␇먴␇, q␇먴␇, q␇먴␇);
+Test_N(q␇먵␇, q␇먵␇, q␇먵␇, q␇먵␇, q␇먵␇);
+Test_N(q␇먶␇, q␇먶␇, q␇먶␇, q␇먶␇, q␇먶␇);
+Test_N(q␇먷␇, q␇먷␇, q␇먷␇, q␇먷␇, q␇먷␇);
+Test_N(q␇머␇, q␇머␇, q␇머␇, q␇머␇, q␇머␇);
+Test_N(q␇먹␇, q␇먹␇, q␇먹␇, q␇먹␇, q␇먹␇);
+Test_N(q␇먺␇, q␇먺␇, q␇먺␇, q␇먺␇, q␇먺␇);
+Test_N(q␇먻␇, q␇먻␇, q␇먻␇, q␇먻␇, q␇먻␇);
+Test_N(q␇먼␇, q␇먼␇, q␇먼␇, q␇먼␇, q␇먼␇);
+Test_N(q␇먽␇, q␇먽␇, q␇먽␇, q␇먽␇, q␇먽␇);
+Test_N(q␇먾␇, q␇먾␇, q␇먾␇, q␇먾␇, q␇먾␇);
+Test_N(q␇먿␇, q␇먿␇, q␇먿␇, q␇먿␇, q␇먿␇);
+Test_N(q␇멀␇, q␇멀␇, q␇멀␇, q␇멀␇, q␇멀␇);
+Test_N(q␇멁␇, q␇멁␇, q␇멁␇, q␇멁␇, q␇멁␇);
+Test_N(q␇멂␇, q␇멂␇, q␇멂␇, q␇멂␇, q␇멂␇);
+Test_N(q␇멃␇, q␇멃␇, q␇멃␇, q␇멃␇, q␇멃␇);
+Test_N(q␇멄␇, q␇멄␇, q␇멄␇, q␇멄␇, q␇멄␇);
+Test_N(q␇멅␇, q␇멅␇, q␇멅␇, q␇멅␇, q␇멅␇);
+Test_N(q␇멆␇, q␇멆␇, q␇멆␇, q␇멆␇, q␇멆␇);
+Test_N(q␇멇␇, q␇멇␇, q␇멇␇, q␇멇␇, q␇멇␇);
+Test_N(q␇멈␇, q␇멈␇, q␇멈␇, q␇멈␇, q␇멈␇);
+Test_N(q␇멉␇, q␇멉␇, q␇멉␇, q␇멉␇, q␇멉␇);
+Test_N(q␇멊␇, q␇멊␇, q␇멊␇, q␇멊␇, q␇멊␇);
+Test_N(q␇멋␇, q␇멋␇, q␇멋␇, q␇멋␇, q␇멋␇);
+Test_N(q␇멌␇, q␇멌␇, q␇멌␇, q␇멌␇, q␇멌␇);
+Test_N(q␇멍␇, q␇멍␇, q␇멍␇, q␇멍␇, q␇멍␇);
+Test_N(q␇멎␇, q␇멎␇, q␇멎␇, q␇멎␇, q␇멎␇);
+Test_N(q␇멏␇, q␇멏␇, q␇멏␇, q␇멏␇, q␇멏␇);
+Test_N(q␇멐␇, q␇멐␇, q␇멐␇, q␇멐␇, q␇멐␇);
+Test_N(q␇멑␇, q␇멑␇, q␇멑␇, q␇멑␇, q␇멑␇);
+Test_N(q␇멒␇, q␇멒␇, q␇멒␇, q␇멒␇, q␇멒␇);
+Test_N(q␇멓␇, q␇멓␇, q␇멓␇, q␇멓␇, q␇멓␇);
+Test_N(q␇메␇, q␇메␇, q␇메␇, q␇메␇, q␇메␇);
+Test_N(q␇멕␇, q␇멕␇, q␇멕␇, q␇멕␇, q␇멕␇);
+Test_N(q␇멖␇, q␇멖␇, q␇멖␇, q␇멖␇, q␇멖␇);
+Test_N(q␇멗␇, q␇멗␇, q␇멗␇, q␇멗␇, q␇멗␇);
+Test_N(q␇멘␇, q␇멘␇, q␇멘␇, q␇멘␇, q␇멘␇);
+Test_N(q␇멙␇, q␇멙␇, q␇멙␇, q␇멙␇, q␇멙␇);
+Test_N(q␇멚␇, q␇멚␇, q␇멚␇, q␇멚␇, q␇멚␇);
+Test_N(q␇멛␇, q␇멛␇, q␇멛␇, q␇멛␇, q␇멛␇);
+Test_N(q␇멜␇, q␇멜␇, q␇멜␇, q␇멜␇, q␇멜␇);
+Test_N(q␇멝␇, q␇멝␇, q␇멝␇, q␇멝␇, q␇멝␇);
+Test_N(q␇멞␇, q␇멞␇, q␇멞␇, q␇멞␇, q␇멞␇);
+Test_N(q␇멟␇, q␇멟␇, q␇멟␇, q␇멟␇, q␇멟␇);
+Test_N(q␇멠␇, q␇멠␇, q␇멠␇, q␇멠␇, q␇멠␇);
+Test_N(q␇멡␇, q␇멡␇, q␇멡␇, q␇멡␇, q␇멡␇);
+Test_N(q␇멢␇, q␇멢␇, q␇멢␇, q␇멢␇, q␇멢␇);
+Test_N(q␇멣␇, q␇멣␇, q␇멣␇, q␇멣␇, q␇멣␇);
+Test_N(q␇멤␇, q␇멤␇, q␇멤␇, q␇멤␇, q␇멤␇);
+Test_N(q␇멥␇, q␇멥␇, q␇멥␇, q␇멥␇, q␇멥␇);
+Test_N(q␇멦␇, q␇멦␇, q␇멦␇, q␇멦␇, q␇멦␇);
+Test_N(q␇멧␇, q␇멧␇, q␇멧␇, q␇멧␇, q␇멧␇);
+Test_N(q␇멨␇, q␇멨␇, q␇멨␇, q␇멨␇, q␇멨␇);
+Test_N(q␇멩␇, q␇멩␇, q␇멩␇, q␇멩␇, q␇멩␇);
+Test_N(q␇멪␇, q␇멪␇, q␇멪␇, q␇멪␇, q␇멪␇);
+Test_N(q␇멫␇, q␇멫␇, q␇멫␇, q␇멫␇, q␇멫␇);
+Test_N(q␇멬␇, q␇멬␇, q␇멬␇, q␇멬␇, q␇멬␇);
+Test_N(q␇멭␇, q␇멭␇, q␇멭␇, q␇멭␇, q␇멭␇);
+Test_N(q␇멮␇, q␇멮␇, q␇멮␇, q␇멮␇, q␇멮␇);
+Test_N(q␇멯␇, q␇멯␇, q␇멯␇, q␇멯␇, q␇멯␇);
+Test_N(q␇며␇, q␇며␇, q␇며␇, q␇며␇, q␇며␇);
+Test_N(q␇멱␇, q␇멱␇, q␇멱␇, q␇멱␇, q␇멱␇);
+Test_N(q␇멲␇, q␇멲␇, q␇멲␇, q␇멲␇, q␇멲␇);
+Test_N(q␇멳␇, q␇멳␇, q␇멳␇, q␇멳␇, q␇멳␇);
+Test_N(q␇면␇, q␇면␇, q␇면␇, q␇면␇, q␇면␇);
+Test_N(q␇멵␇, q␇멵␇, q␇멵␇, q␇멵␇, q␇멵␇);
+Test_N(q␇멶␇, q␇멶␇, q␇멶␇, q␇멶␇, q␇멶␇);
+Test_N(q␇멷␇, q␇멷␇, q␇멷␇, q␇멷␇, q␇멷␇);
+Test_N(q␇멸␇, q␇멸␇, q␇멸␇, q␇멸␇, q␇멸␇);
+Test_N(q␇멹␇, q␇멹␇, q␇멹␇, q␇멹␇, q␇멹␇);
+Test_N(q␇멺␇, q␇멺␇, q␇멺␇, q␇멺␇, q␇멺␇);
+Test_N(q␇멻␇, q␇멻␇, q␇멻␇, q␇멻␇, q␇멻␇);
+Test_N(q␇멼␇, q␇멼␇, q␇멼␇, q␇멼␇, q␇멼␇);
+Test_N(q␇멽␇, q␇멽␇, q␇멽␇, q␇멽␇, q␇멽␇);
+Test_N(q␇멾␇, q␇멾␇, q␇멾␇, q␇멾␇, q␇멾␇);
+Test_N(q␇멿␇, q␇멿␇, q␇멿␇, q␇멿␇, q␇멿␇);
+Test_N(q␇몀␇, q␇몀␇, q␇몀␇, q␇몀␇, q␇몀␇);
+Test_N(q␇몁␇, q␇몁␇, q␇몁␇, q␇몁␇, q␇몁␇);
+Test_N(q␇몂␇, q␇몂␇, q␇몂␇, q␇몂␇, q␇몂␇);
+Test_N(q␇몃␇, q␇몃␇, q␇몃␇, q␇몃␇, q␇몃␇);
+Test_N(q␇몄␇, q␇몄␇, q␇몄␇, q␇몄␇, q␇몄␇);
+Test_N(q␇명␇, q␇명␇, q␇명␇, q␇명␇, q␇명␇);
+Test_N(q␇몆␇, q␇몆␇, q␇몆␇, q␇몆␇, q␇몆␇);
+Test_N(q␇몇␇, q␇몇␇, q␇몇␇, q␇몇␇, q␇몇␇);
+Test_N(q␇몈␇, q␇몈␇, q␇몈␇, q␇몈␇, q␇몈␇);
+Test_N(q␇몉␇, q␇몉␇, q␇몉␇, q␇몉␇, q␇몉␇);
+Test_N(q␇몊␇, q␇몊␇, q␇몊␇, q␇몊␇, q␇몊␇);
+Test_N(q␇몋␇, q␇몋␇, q␇몋␇, q␇몋␇, q␇몋␇);
+Test_N(q␇몌␇, q␇몌␇, q␇몌␇, q␇몌␇, q␇몌␇);
+Test_N(q␇몍␇, q␇몍␇, q␇몍␇, q␇몍␇, q␇몍␇);
+Test_N(q␇몎␇, q␇몎␇, q␇몎␇, q␇몎␇, q␇몎␇);
+Test_N(q␇몏␇, q␇몏␇, q␇몏␇, q␇몏␇, q␇몏␇);
+Test_N(q␇몐␇, q␇몐␇, q␇몐␇, q␇몐␇, q␇몐␇);
+Test_N(q␇몑␇, q␇몑␇, q␇몑␇, q␇몑␇, q␇몑␇);
+Test_N(q␇몒␇, q␇몒␇, q␇몒␇, q␇몒␇, q␇몒␇);
+Test_N(q␇몓␇, q␇몓␇, q␇몓␇, q␇몓␇, q␇몓␇);
+Test_N(q␇몔␇, q␇몔␇, q␇몔␇, q␇몔␇, q␇몔␇);
+Test_N(q␇몕␇, q␇몕␇, q␇몕␇, q␇몕␇, q␇몕␇);
+Test_N(q␇몖␇, q␇몖␇, q␇몖␇, q␇몖␇, q␇몖␇);
+Test_N(q␇몗␇, q␇몗␇, q␇몗␇, q␇몗␇, q␇몗␇);
+Test_N(q␇몘␇, q␇몘␇, q␇몘␇, q␇몘␇, q␇몘␇);
+Test_N(q␇몙␇, q␇몙␇, q␇몙␇, q␇몙␇, q␇몙␇);
+Test_N(q␇몚␇, q␇몚␇, q␇몚␇, q␇몚␇, q␇몚␇);
+Test_N(q␇몛␇, q␇몛␇, q␇몛␇, q␇몛␇, q␇몛␇);
+Test_N(q␇몜␇, q␇몜␇, q␇몜␇, q␇몜␇, q␇몜␇);
+Test_N(q␇몝␇, q␇몝␇, q␇몝␇, q␇몝␇, q␇몝␇);
+Test_N(q␇몞␇, q␇몞␇, q␇몞␇, q␇몞␇, q␇몞␇);
+Test_N(q␇몟␇, q␇몟␇, q␇몟␇, q␇몟␇, q␇몟␇);
+Test_N(q␇몠␇, q␇몠␇, q␇몠␇, q␇몠␇, q␇몠␇);
+Test_N(q␇몡␇, q␇몡␇, q␇몡␇, q␇몡␇, q␇몡␇);
+Test_N(q␇몢␇, q␇몢␇, q␇몢␇, q␇몢␇, q␇몢␇);
+Test_N(q␇몣␇, q␇몣␇, q␇몣␇, q␇몣␇, q␇몣␇);
+Test_N(q␇몤␇, q␇몤␇, q␇몤␇, q␇몤␇, q␇몤␇);
+Test_N(q␇몥␇, q␇몥␇, q␇몥␇, q␇몥␇, q␇몥␇);
+Test_N(q␇몦␇, q␇몦␇, q␇몦␇, q␇몦␇, q␇몦␇);
+Test_N(q␇몧␇, q␇몧␇, q␇몧␇, q␇몧␇, q␇몧␇);
+Test_N(q␇모␇, q␇모␇, q␇모␇, q␇모␇, q␇모␇);
+Test_N(q␇목␇, q␇목␇, q␇목␇, q␇목␇, q␇목␇);
+Test_N(q␇몪␇, q␇몪␇, q␇몪␇, q␇몪␇, q␇몪␇);
+Test_N(q␇몫␇, q␇몫␇, q␇몫␇, q␇몫␇, q␇몫␇);
+Test_N(q␇몬␇, q␇몬␇, q␇몬␇, q␇몬␇, q␇몬␇);
+Test_N(q␇몭␇, q␇몭␇, q␇몭␇, q␇몭␇, q␇몭␇);
+Test_N(q␇몮␇, q␇몮␇, q␇몮␇, q␇몮␇, q␇몮␇);
+Test_N(q␇몯␇, q␇몯␇, q␇몯␇, q␇몯␇, q␇몯␇);
+Test_N(q␇몰␇, q␇몰␇, q␇몰␇, q␇몰␇, q␇몰␇);
+Test_N(q␇몱␇, q␇몱␇, q␇몱␇, q␇몱␇, q␇몱␇);
+Test_N(q␇몲␇, q␇몲␇, q␇몲␇, q␇몲␇, q␇몲␇);
+Test_N(q␇몳␇, q␇몳␇, q␇몳␇, q␇몳␇, q␇몳␇);
+Test_N(q␇몴␇, q␇몴␇, q␇몴␇, q␇몴␇, q␇몴␇);
+Test_N(q␇몵␇, q␇몵␇, q␇몵␇, q␇몵␇, q␇몵␇);
+Test_N(q␇몶␇, q␇몶␇, q␇몶␇, q␇몶␇, q␇몶␇);
+Test_N(q␇몷␇, q␇몷␇, q␇몷␇, q␇몷␇, q␇몷␇);
+Test_N(q␇몸␇, q␇몸␇, q␇몸␇, q␇몸␇, q␇몸␇);
+Test_N(q␇몹␇, q␇몹␇, q␇몹␇, q␇몹␇, q␇몹␇);
+Test_N(q␇몺␇, q␇몺␇, q␇몺␇, q␇몺␇, q␇몺␇);
+Test_N(q␇못␇, q␇못␇, q␇못␇, q␇못␇, q␇못␇);
+Test_N(q␇몼␇, q␇몼␇, q␇몼␇, q␇몼␇, q␇몼␇);
+Test_N(q␇몽␇, q␇몽␇, q␇몽␇, q␇몽␇, q␇몽␇);
+Test_N(q␇몾␇, q␇몾␇, q␇몾␇, q␇몾␇, q␇몾␇);
+Test_N(q␇몿␇, q␇몿␇, q␇몿␇, q␇몿␇, q␇몿␇);
+Test_N(q␇뫀␇, q␇뫀␇, q␇뫀␇, q␇뫀␇, q␇뫀␇);
+Test_N(q␇뫁␇, q␇뫁␇, q␇뫁␇, q␇뫁␇, q␇뫁␇);
+Test_N(q␇뫂␇, q␇뫂␇, q␇뫂␇, q␇뫂␇, q␇뫂␇);
+Test_N(q␇뫃␇, q␇뫃␇, q␇뫃␇, q␇뫃␇, q␇뫃␇);
+Test_N(q␇뫄␇, q␇뫄␇, q␇뫄␇, q␇뫄␇, q␇뫄␇);
+Test_N(q␇뫅␇, q␇뫅␇, q␇뫅␇, q␇뫅␇, q␇뫅␇);
+Test_N(q␇뫆␇, q␇뫆␇, q␇뫆␇, q␇뫆␇, q␇뫆␇);
+Test_N(q␇뫇␇, q␇뫇␇, q␇뫇␇, q␇뫇␇, q␇뫇␇);
+Test_N(q␇뫈␇, q␇뫈␇, q␇뫈␇, q␇뫈␇, q␇뫈␇);
+Test_N(q␇뫉␇, q␇뫉␇, q␇뫉␇, q␇뫉␇, q␇뫉␇);
+Test_N(q␇뫊␇, q␇뫊␇, q␇뫊␇, q␇뫊␇, q␇뫊␇);
+Test_N(q␇뫋␇, q␇뫋␇, q␇뫋␇, q␇뫋␇, q␇뫋␇);
+Test_N(q␇뫌␇, q␇뫌␇, q␇뫌␇, q␇뫌␇, q␇뫌␇);
+Test_N(q␇뫍␇, q␇뫍␇, q␇뫍␇, q␇뫍␇, q␇뫍␇);
+Test_N(q␇뫎␇, q␇뫎␇, q␇뫎␇, q␇뫎␇, q␇뫎␇);
+Test_N(q␇뫏␇, q␇뫏␇, q␇뫏␇, q␇뫏␇, q␇뫏␇);
+Test_N(q␇뫐␇, q␇뫐␇, q␇뫐␇, q␇뫐␇, q␇뫐␇);
+Test_N(q␇뫑␇, q␇뫑␇, q␇뫑␇, q␇뫑␇, q␇뫑␇);
+Test_N(q␇뫒␇, q␇뫒␇, q␇뫒␇, q␇뫒␇, q␇뫒␇);
+Test_N(q␇뫓␇, q␇뫓␇, q␇뫓␇, q␇뫓␇, q␇뫓␇);
+Test_N(q␇뫔␇, q␇뫔␇, q␇뫔␇, q␇뫔␇, q␇뫔␇);
+Test_N(q␇뫕␇, q␇뫕␇, q␇뫕␇, q␇뫕␇, q␇뫕␇);
+Test_N(q␇뫖␇, q␇뫖␇, q␇뫖␇, q␇뫖␇, q␇뫖␇);
+Test_N(q␇뫗␇, q␇뫗␇, q␇뫗␇, q␇뫗␇, q␇뫗␇);
+Test_N(q␇뫘␇, q␇뫘␇, q␇뫘␇, q␇뫘␇, q␇뫘␇);
+Test_N(q␇뫙␇, q␇뫙␇, q␇뫙␇, q␇뫙␇, q␇뫙␇);
+Test_N(q␇뫚␇, q␇뫚␇, q␇뫚␇, q␇뫚␇, q␇뫚␇);
+Test_N(q␇뫛␇, q␇뫛␇, q␇뫛␇, q␇뫛␇, q␇뫛␇);
+Test_N(q␇뫜␇, q␇뫜␇, q␇뫜␇, q␇뫜␇, q␇뫜␇);
+Test_N(q␇뫝␇, q␇뫝␇, q␇뫝␇, q␇뫝␇, q␇뫝␇);
+Test_N(q␇뫞␇, q␇뫞␇, q␇뫞␇, q␇뫞␇, q␇뫞␇);
+Test_N(q␇뫟␇, q␇뫟␇, q␇뫟␇, q␇뫟␇, q␇뫟␇);
+Test_N(q␇뫠␇, q␇뫠␇, q␇뫠␇, q␇뫠␇, q␇뫠␇);
+Test_N(q␇뫡␇, q␇뫡␇, q␇뫡␇, q␇뫡␇, q␇뫡␇);
+Test_N(q␇뫢␇, q␇뫢␇, q␇뫢␇, q␇뫢␇, q␇뫢␇);
+Test_N(q␇뫣␇, q␇뫣␇, q␇뫣␇, q␇뫣␇, q␇뫣␇);
+Test_N(q␇뫤␇, q␇뫤␇, q␇뫤␇, q␇뫤␇, q␇뫤␇);
+Test_N(q␇뫥␇, q␇뫥␇, q␇뫥␇, q␇뫥␇, q␇뫥␇);
+Test_N(q␇뫦␇, q␇뫦␇, q␇뫦␇, q␇뫦␇, q␇뫦␇);
+Test_N(q␇뫧␇, q␇뫧␇, q␇뫧␇, q␇뫧␇, q␇뫧␇);
+Test_N(q␇뫨␇, q␇뫨␇, q␇뫨␇, q␇뫨␇, q␇뫨␇);
+Test_N(q␇뫩␇, q␇뫩␇, q␇뫩␇, q␇뫩␇, q␇뫩␇);
+Test_N(q␇뫪␇, q␇뫪␇, q␇뫪␇, q␇뫪␇, q␇뫪␇);
+Test_N(q␇뫫␇, q␇뫫␇, q␇뫫␇, q␇뫫␇, q␇뫫␇);
+Test_N(q␇뫬␇, q␇뫬␇, q␇뫬␇, q␇뫬␇, q␇뫬␇);
+Test_N(q␇뫭␇, q␇뫭␇, q␇뫭␇, q␇뫭␇, q␇뫭␇);
+Test_N(q␇뫮␇, q␇뫮␇, q␇뫮␇, q␇뫮␇, q␇뫮␇);
+Test_N(q␇뫯␇, q␇뫯␇, q␇뫯␇, q␇뫯␇, q␇뫯␇);
+Test_N(q␇뫰␇, q␇뫰␇, q␇뫰␇, q␇뫰␇, q␇뫰␇);
+Test_N(q␇뫱␇, q␇뫱␇, q␇뫱␇, q␇뫱␇, q␇뫱␇);
+Test_N(q␇뫲␇, q␇뫲␇, q␇뫲␇, q␇뫲␇, q␇뫲␇);
+Test_N(q␇뫳␇, q␇뫳␇, q␇뫳␇, q␇뫳␇, q␇뫳␇);
+Test_N(q␇뫴␇, q␇뫴␇, q␇뫴␇, q␇뫴␇, q␇뫴␇);
+Test_N(q␇뫵␇, q␇뫵␇, q␇뫵␇, q␇뫵␇, q␇뫵␇);
+Test_N(q␇뫶␇, q␇뫶␇, q␇뫶␇, q␇뫶␇, q␇뫶␇);
+Test_N(q␇뫷␇, q␇뫷␇, q␇뫷␇, q␇뫷␇, q␇뫷␇);
+Test_N(q␇뫸␇, q␇뫸␇, q␇뫸␇, q␇뫸␇, q␇뫸␇);
+Test_N(q␇뫹␇, q␇뫹␇, q␇뫹␇, q␇뫹␇, q␇뫹␇);
+Test_N(q␇뫺␇, q␇뫺␇, q␇뫺␇, q␇뫺␇, q␇뫺␇);
+Test_N(q␇뫻␇, q␇뫻␇, q␇뫻␇, q␇뫻␇, q␇뫻␇);
+Test_N(q␇뫼␇, q␇뫼␇, q␇뫼␇, q␇뫼␇, q␇뫼␇);
+Test_N(q␇뫽␇, q␇뫽␇, q␇뫽␇, q␇뫽␇, q␇뫽␇);
+Test_N(q␇뫾␇, q␇뫾␇, q␇뫾␇, q␇뫾␇, q␇뫾␇);
+Test_N(q␇뫿␇, q␇뫿␇, q␇뫿␇, q␇뫿␇, q␇뫿␇);
+Test_N(q␇묀␇, q␇묀␇, q␇묀␇, q␇묀␇, q␇묀␇);
+Test_N(q␇묁␇, q␇묁␇, q␇묁␇, q␇묁␇, q␇묁␇);
+Test_N(q␇묂␇, q␇묂␇, q␇묂␇, q␇묂␇, q␇묂␇);
+Test_N(q␇묃␇, q␇묃␇, q␇묃␇, q␇묃␇, q␇묃␇);
+Test_N(q␇묄␇, q␇묄␇, q␇묄␇, q␇묄␇, q␇묄␇);
+Test_N(q␇묅␇, q␇묅␇, q␇묅␇, q␇묅␇, q␇묅␇);
+Test_N(q␇묆␇, q␇묆␇, q␇묆␇, q␇묆␇, q␇묆␇);
+Test_N(q␇묇␇, q␇묇␇, q␇묇␇, q␇묇␇, q␇묇␇);
+Test_N(q␇묈␇, q␇묈␇, q␇묈␇, q␇묈␇, q␇묈␇);
+Test_N(q␇묉␇, q␇묉␇, q␇묉␇, q␇묉␇, q␇묉␇);
+Test_N(q␇묊␇, q␇묊␇, q␇묊␇, q␇묊␇, q␇묊␇);
+Test_N(q␇묋␇, q␇묋␇, q␇묋␇, q␇묋␇, q␇묋␇);
+Test_N(q␇묌␇, q␇묌␇, q␇묌␇, q␇묌␇, q␇묌␇);
+Test_N(q␇묍␇, q␇묍␇, q␇묍␇, q␇묍␇, q␇묍␇);
+Test_N(q␇묎␇, q␇묎␇, q␇묎␇, q␇묎␇, q␇묎␇);
+Test_N(q␇묏␇, q␇묏␇, q␇묏␇, q␇묏␇, q␇묏␇);
+Test_N(q␇묐␇, q␇묐␇, q␇묐␇, q␇묐␇, q␇묐␇);
+Test_N(q␇묑␇, q␇묑␇, q␇묑␇, q␇묑␇, q␇묑␇);
+Test_N(q␇묒␇, q␇묒␇, q␇묒␇, q␇묒␇, q␇묒␇);
+Test_N(q␇묓␇, q␇묓␇, q␇묓␇, q␇묓␇, q␇묓␇);
+Test_N(q␇묔␇, q␇묔␇, q␇묔␇, q␇묔␇, q␇묔␇);
+Test_N(q␇묕␇, q␇묕␇, q␇묕␇, q␇묕␇, q␇묕␇);
+Test_N(q␇묖␇, q␇묖␇, q␇묖␇, q␇묖␇, q␇묖␇);
+Test_N(q␇묗␇, q␇묗␇, q␇묗␇, q␇묗␇, q␇묗␇);
+Test_N(q␇묘␇, q␇묘␇, q␇묘␇, q␇묘␇, q␇묘␇);
+Test_N(q␇묙␇, q␇묙␇, q␇묙␇, q␇묙␇, q␇묙␇);
+Test_N(q␇묚␇, q␇묚␇, q␇묚␇, q␇묚␇, q␇묚␇);
+Test_N(q␇묛␇, q␇묛␇, q␇묛␇, q␇묛␇, q␇묛␇);
+Test_N(q␇묜␇, q␇묜␇, q␇묜␇, q␇묜␇, q␇묜␇);
+Test_N(q␇묝␇, q␇묝␇, q␇묝␇, q␇묝␇, q␇묝␇);
+Test_N(q␇묞␇, q␇묞␇, q␇묞␇, q␇묞␇, q␇묞␇);
+Test_N(q␇묟␇, q␇묟␇, q␇묟␇, q␇묟␇, q␇묟␇);
+Test_N(q␇묠␇, q␇묠␇, q␇묠␇, q␇묠␇, q␇묠␇);
+Test_N(q␇묡␇, q␇묡␇, q␇묡␇, q␇묡␇, q␇묡␇);
+Test_N(q␇묢␇, q␇묢␇, q␇묢␇, q␇묢␇, q␇묢␇);
+Test_N(q␇묣␇, q␇묣␇, q␇묣␇, q␇묣␇, q␇묣␇);
+Test_N(q␇묤␇, q␇묤␇, q␇묤␇, q␇묤␇, q␇묤␇);
+Test_N(q␇묥␇, q␇묥␇, q␇묥␇, q␇묥␇, q␇묥␇);
+Test_N(q␇묦␇, q␇묦␇, q␇묦␇, q␇묦␇, q␇묦␇);
+Test_N(q␇묧␇, q␇묧␇, q␇묧␇, q␇묧␇, q␇묧␇);
+Test_N(q␇묨␇, q␇묨␇, q␇묨␇, q␇묨␇, q␇묨␇);
+Test_N(q␇묩␇, q␇묩␇, q␇묩␇, q␇묩␇, q␇묩␇);
+Test_N(q␇묪␇, q␇묪␇, q␇묪␇, q␇묪␇, q␇묪␇);
+Test_N(q␇묫␇, q␇묫␇, q␇묫␇, q␇묫␇, q␇묫␇);
+Test_N(q␇묬␇, q␇묬␇, q␇묬␇, q␇묬␇, q␇묬␇);
+Test_N(q␇묭␇, q␇묭␇, q␇묭␇, q␇묭␇, q␇묭␇);
+Test_N(q␇묮␇, q␇묮␇, q␇묮␇, q␇묮␇, q␇묮␇);
+Test_N(q␇묯␇, q␇묯␇, q␇묯␇, q␇묯␇, q␇묯␇);
+Test_N(q␇묰␇, q␇묰␇, q␇묰␇, q␇묰␇, q␇묰␇);
+Test_N(q␇묱␇, q␇묱␇, q␇묱␇, q␇묱␇, q␇묱␇);
+Test_N(q␇묲␇, q␇묲␇, q␇묲␇, q␇묲␇, q␇묲␇);
+Test_N(q␇묳␇, q␇묳␇, q␇묳␇, q␇묳␇, q␇묳␇);
+Test_N(q␇무␇, q␇무␇, q␇무␇, q␇무␇, q␇무␇);
+Test_N(q␇묵␇, q␇묵␇, q␇묵␇, q␇묵␇, q␇묵␇);
+Test_N(q␇묶␇, q␇묶␇, q␇묶␇, q␇묶␇, q␇묶␇);
+Test_N(q␇묷␇, q␇묷␇, q␇묷␇, q␇묷␇, q␇묷␇);
+Test_N(q␇문␇, q␇문␇, q␇문␇, q␇문␇, q␇문␇);
+Test_N(q␇묹␇, q␇묹␇, q␇묹␇, q␇묹␇, q␇묹␇);
+Test_N(q␇묺␇, q␇묺␇, q␇묺␇, q␇묺␇, q␇묺␇);
+Test_N(q␇묻␇, q␇묻␇, q␇묻␇, q␇묻␇, q␇묻␇);
+Test_N(q␇물␇, q␇물␇, q␇물␇, q␇물␇, q␇물␇);
+Test_N(q␇묽␇, q␇묽␇, q␇묽␇, q␇묽␇, q␇묽␇);
+Test_N(q␇묾␇, q␇묾␇, q␇묾␇, q␇묾␇, q␇묾␇);
+Test_N(q␇묿␇, q␇묿␇, q␇묿␇, q␇묿␇, q␇묿␇);
+Test_N(q␇뭀␇, q␇뭀␇, q␇뭀␇, q␇뭀␇, q␇뭀␇);
+Test_N(q␇뭁␇, q␇뭁␇, q␇뭁␇, q␇뭁␇, q␇뭁␇);
+Test_N(q␇뭂␇, q␇뭂␇, q␇뭂␇, q␇뭂␇, q␇뭂␇);
+Test_N(q␇뭃␇, q␇뭃␇, q␇뭃␇, q␇뭃␇, q␇뭃␇);
+Test_N(q␇뭄␇, q␇뭄␇, q␇뭄␇, q␇뭄␇, q␇뭄␇);
+Test_N(q␇뭅␇, q␇뭅␇, q␇뭅␇, q␇뭅␇, q␇뭅␇);
+Test_N(q␇뭆␇, q␇뭆␇, q␇뭆␇, q␇뭆␇, q␇뭆␇);
+Test_N(q␇뭇␇, q␇뭇␇, q␇뭇␇, q␇뭇␇, q␇뭇␇);
+Test_N(q␇뭈␇, q␇뭈␇, q␇뭈␇, q␇뭈␇, q␇뭈␇);
+Test_N(q␇뭉␇, q␇뭉␇, q␇뭉␇, q␇뭉␇, q␇뭉␇);
+Test_N(q␇뭊␇, q␇뭊␇, q␇뭊␇, q␇뭊␇, q␇뭊␇);
+Test_N(q␇뭋␇, q␇뭋␇, q␇뭋␇, q␇뭋␇, q␇뭋␇);
+Test_N(q␇뭌␇, q␇뭌␇, q␇뭌␇, q␇뭌␇, q␇뭌␇);
+Test_N(q␇뭍␇, q␇뭍␇, q␇뭍␇, q␇뭍␇, q␇뭍␇);
+Test_N(q␇뭎␇, q␇뭎␇, q␇뭎␇, q␇뭎␇, q␇뭎␇);
+Test_N(q␇뭏␇, q␇뭏␇, q␇뭏␇, q␇뭏␇, q␇뭏␇);
+Test_N(q␇뭐␇, q␇뭐␇, q␇뭐␇, q␇뭐␇, q␇뭐␇);
+Test_N(q␇뭑␇, q␇뭑␇, q␇뭑␇, q␇뭑␇, q␇뭑␇);
+Test_N(q␇뭒␇, q␇뭒␇, q␇뭒␇, q␇뭒␇, q␇뭒␇);
+Test_N(q␇뭓␇, q␇뭓␇, q␇뭓␇, q␇뭓␇, q␇뭓␇);
+Test_N(q␇뭔␇, q␇뭔␇, q␇뭔␇, q␇뭔␇, q␇뭔␇);
+Test_N(q␇뭕␇, q␇뭕␇, q␇뭕␇, q␇뭕␇, q␇뭕␇);
+Test_N(q␇뭖␇, q␇뭖␇, q␇뭖␇, q␇뭖␇, q␇뭖␇);
+Test_N(q␇뭗␇, q␇뭗␇, q␇뭗␇, q␇뭗␇, q␇뭗␇);
+Test_N(q␇뭘␇, q␇뭘␇, q␇뭘␇, q␇뭘␇, q␇뭘␇);
+Test_N(q␇뭙␇, q␇뭙␇, q␇뭙␇, q␇뭙␇, q␇뭙␇);
+Test_N(q␇뭚␇, q␇뭚␇, q␇뭚␇, q␇뭚␇, q␇뭚␇);
+Test_N(q␇뭛␇, q␇뭛␇, q␇뭛␇, q␇뭛␇, q␇뭛␇);
+Test_N(q␇뭜␇, q␇뭜␇, q␇뭜␇, q␇뭜␇, q␇뭜␇);
+Test_N(q␇뭝␇, q␇뭝␇, q␇뭝␇, q␇뭝␇, q␇뭝␇);
+Test_N(q␇뭞␇, q␇뭞␇, q␇뭞␇, q␇뭞␇, q␇뭞␇);
+Test_N(q␇뭟␇, q␇뭟␇, q␇뭟␇, q␇뭟␇, q␇뭟␇);
+Test_N(q␇뭠␇, q␇뭠␇, q␇뭠␇, q␇뭠␇, q␇뭠␇);
+Test_N(q␇뭡␇, q␇뭡␇, q␇뭡␇, q␇뭡␇, q␇뭡␇);
+Test_N(q␇뭢␇, q␇뭢␇, q␇뭢␇, q␇뭢␇, q␇뭢␇);
+Test_N(q␇뭣␇, q␇뭣␇, q␇뭣␇, q␇뭣␇, q␇뭣␇);
+Test_N(q␇뭤␇, q␇뭤␇, q␇뭤␇, q␇뭤␇, q␇뭤␇);
+Test_N(q␇뭥␇, q␇뭥␇, q␇뭥␇, q␇뭥␇, q␇뭥␇);
+Test_N(q␇뭦␇, q␇뭦␇, q␇뭦␇, q␇뭦␇, q␇뭦␇);
+Test_N(q␇뭧␇, q␇뭧␇, q␇뭧␇, q␇뭧␇, q␇뭧␇);
+Test_N(q␇뭨␇, q␇뭨␇, q␇뭨␇, q␇뭨␇, q␇뭨␇);
+Test_N(q␇뭩␇, q␇뭩␇, q␇뭩␇, q␇뭩␇, q␇뭩␇);
+Test_N(q␇뭪␇, q␇뭪␇, q␇뭪␇, q␇뭪␇, q␇뭪␇);
+Test_N(q␇뭫␇, q␇뭫␇, q␇뭫␇, q␇뭫␇, q␇뭫␇);
+Test_N(q␇뭬␇, q␇뭬␇, q␇뭬␇, q␇뭬␇, q␇뭬␇);
+Test_N(q␇뭭␇, q␇뭭␇, q␇뭭␇, q␇뭭␇, q␇뭭␇);
+Test_N(q␇뭮␇, q␇뭮␇, q␇뭮␇, q␇뭮␇, q␇뭮␇);
+Test_N(q␇뭯␇, q␇뭯␇, q␇뭯␇, q␇뭯␇, q␇뭯␇);
+Test_N(q␇뭰␇, q␇뭰␇, q␇뭰␇, q␇뭰␇, q␇뭰␇);
+Test_N(q␇뭱␇, q␇뭱␇, q␇뭱␇, q␇뭱␇, q␇뭱␇);
+Test_N(q␇뭲␇, q␇뭲␇, q␇뭲␇, q␇뭲␇, q␇뭲␇);
+Test_N(q␇뭳␇, q␇뭳␇, q␇뭳␇, q␇뭳␇, q␇뭳␇);
+Test_N(q␇뭴␇, q␇뭴␇, q␇뭴␇, q␇뭴␇, q␇뭴␇);
+Test_N(q␇뭵␇, q␇뭵␇, q␇뭵␇, q␇뭵␇, q␇뭵␇);
+Test_N(q␇뭶␇, q␇뭶␇, q␇뭶␇, q␇뭶␇, q␇뭶␇);
+Test_N(q␇뭷␇, q␇뭷␇, q␇뭷␇, q␇뭷␇, q␇뭷␇);
+Test_N(q␇뭸␇, q␇뭸␇, q␇뭸␇, q␇뭸␇, q␇뭸␇);
+Test_N(q␇뭹␇, q␇뭹␇, q␇뭹␇, q␇뭹␇, q␇뭹␇);
+Test_N(q␇뭺␇, q␇뭺␇, q␇뭺␇, q␇뭺␇, q␇뭺␇);
+Test_N(q␇뭻␇, q␇뭻␇, q␇뭻␇, q␇뭻␇, q␇뭻␇);
+Test_N(q␇뭼␇, q␇뭼␇, q␇뭼␇, q␇뭼␇, q␇뭼␇);
+Test_N(q␇뭽␇, q␇뭽␇, q␇뭽␇, q␇뭽␇, q␇뭽␇);
+Test_N(q␇뭾␇, q␇뭾␇, q␇뭾␇, q␇뭾␇, q␇뭾␇);
+Test_N(q␇뭿␇, q␇뭿␇, q␇뭿␇, q␇뭿␇, q␇뭿␇);
+Test_N(q␇뮀␇, q␇뮀␇, q␇뮀␇, q␇뮀␇, q␇뮀␇);
+Test_N(q␇뮁␇, q␇뮁␇, q␇뮁␇, q␇뮁␇, q␇뮁␇);
+Test_N(q␇뮂␇, q␇뮂␇, q␇뮂␇, q␇뮂␇, q␇뮂␇);
+Test_N(q␇뮃␇, q␇뮃␇, q␇뮃␇, q␇뮃␇, q␇뮃␇);
+Test_N(q␇뮄␇, q␇뮄␇, q␇뮄␇, q␇뮄␇, q␇뮄␇);
+Test_N(q␇뮅␇, q␇뮅␇, q␇뮅␇, q␇뮅␇, q␇뮅␇);
+Test_N(q␇뮆␇, q␇뮆␇, q␇뮆␇, q␇뮆␇, q␇뮆␇);
+Test_N(q␇뮇␇, q␇뮇␇, q␇뮇␇, q␇뮇␇, q␇뮇␇);
+Test_N(q␇뮈␇, q␇뮈␇, q␇뮈␇, q␇뮈␇, q␇뮈␇);
+Test_N(q␇뮉␇, q␇뮉␇, q␇뮉␇, q␇뮉␇, q␇뮉␇);
+Test_N(q␇뮊␇, q␇뮊␇, q␇뮊␇, q␇뮊␇, q␇뮊␇);
+Test_N(q␇뮋␇, q␇뮋␇, q␇뮋␇, q␇뮋␇, q␇뮋␇);
+Test_N(q␇뮌␇, q␇뮌␇, q␇뮌␇, q␇뮌␇, q␇뮌␇);
+Test_N(q␇뮍␇, q␇뮍␇, q␇뮍␇, q␇뮍␇, q␇뮍␇);
+Test_N(q␇뮎␇, q␇뮎␇, q␇뮎␇, q␇뮎␇, q␇뮎␇);
+Test_N(q␇뮏␇, q␇뮏␇, q␇뮏␇, q␇뮏␇, q␇뮏␇);
+Test_N(q␇뮐␇, q␇뮐␇, q␇뮐␇, q␇뮐␇, q␇뮐␇);
+Test_N(q␇뮑␇, q␇뮑␇, q␇뮑␇, q␇뮑␇, q␇뮑␇);
+Test_N(q␇뮒␇, q␇뮒␇, q␇뮒␇, q␇뮒␇, q␇뮒␇);
+Test_N(q␇뮓␇, q␇뮓␇, q␇뮓␇, q␇뮓␇, q␇뮓␇);
+Test_N(q␇뮔␇, q␇뮔␇, q␇뮔␇, q␇뮔␇, q␇뮔␇);
+Test_N(q␇뮕␇, q␇뮕␇, q␇뮕␇, q␇뮕␇, q␇뮕␇);
+Test_N(q␇뮖␇, q␇뮖␇, q␇뮖␇, q␇뮖␇, q␇뮖␇);
+Test_N(q␇뮗␇, q␇뮗␇, q␇뮗␇, q␇뮗␇, q␇뮗␇);
+Test_N(q␇뮘␇, q␇뮘␇, q␇뮘␇, q␇뮘␇, q␇뮘␇);
+Test_N(q␇뮙␇, q␇뮙␇, q␇뮙␇, q␇뮙␇, q␇뮙␇);
+Test_N(q␇뮚␇, q␇뮚␇, q␇뮚␇, q␇뮚␇, q␇뮚␇);
+Test_N(q␇뮛␇, q␇뮛␇, q␇뮛␇, q␇뮛␇, q␇뮛␇);
+Test_N(q␇뮜␇, q␇뮜␇, q␇뮜␇, q␇뮜␇, q␇뮜␇);
+Test_N(q␇뮝␇, q␇뮝␇, q␇뮝␇, q␇뮝␇, q␇뮝␇);
+Test_N(q␇뮞␇, q␇뮞␇, q␇뮞␇, q␇뮞␇, q␇뮞␇);
+Test_N(q␇뮟␇, q␇뮟␇, q␇뮟␇, q␇뮟␇, q␇뮟␇);
+Test_N(q␇뮠␇, q␇뮠␇, q␇뮠␇, q␇뮠␇, q␇뮠␇);
+Test_N(q␇뮡␇, q␇뮡␇, q␇뮡␇, q␇뮡␇, q␇뮡␇);
+Test_N(q␇뮢␇, q␇뮢␇, q␇뮢␇, q␇뮢␇, q␇뮢␇);
+Test_N(q␇뮣␇, q␇뮣␇, q␇뮣␇, q␇뮣␇, q␇뮣␇);
+Test_N(q␇뮤␇, q␇뮤␇, q␇뮤␇, q␇뮤␇, q␇뮤␇);
+Test_N(q␇뮥␇, q␇뮥␇, q␇뮥␇, q␇뮥␇, q␇뮥␇);
+Test_N(q␇뮦␇, q␇뮦␇, q␇뮦␇, q␇뮦␇, q␇뮦␇);
+Test_N(q␇뮧␇, q␇뮧␇, q␇뮧␇, q␇뮧␇, q␇뮧␇);
+Test_N(q␇뮨␇, q␇뮨␇, q␇뮨␇, q␇뮨␇, q␇뮨␇);
+Test_N(q␇뮩␇, q␇뮩␇, q␇뮩␇, q␇뮩␇, q␇뮩␇);
+Test_N(q␇뮪␇, q␇뮪␇, q␇뮪␇, q␇뮪␇, q␇뮪␇);
+Test_N(q␇뮫␇, q␇뮫␇, q␇뮫␇, q␇뮫␇, q␇뮫␇);
+Test_N(q␇뮬␇, q␇뮬␇, q␇뮬␇, q␇뮬␇, q␇뮬␇);
+Test_N(q␇뮭␇, q␇뮭␇, q␇뮭␇, q␇뮭␇, q␇뮭␇);
+Test_N(q␇뮮␇, q␇뮮␇, q␇뮮␇, q␇뮮␇, q␇뮮␇);
+Test_N(q␇뮯␇, q␇뮯␇, q␇뮯␇, q␇뮯␇, q␇뮯␇);
+Test_N(q␇뮰␇, q␇뮰␇, q␇뮰␇, q␇뮰␇, q␇뮰␇);
+Test_N(q␇뮱␇, q␇뮱␇, q␇뮱␇, q␇뮱␇, q␇뮱␇);
+Test_N(q␇뮲␇, q␇뮲␇, q␇뮲␇, q␇뮲␇, q␇뮲␇);
+Test_N(q␇뮳␇, q␇뮳␇, q␇뮳␇, q␇뮳␇, q␇뮳␇);
+Test_N(q␇뮴␇, q␇뮴␇, q␇뮴␇, q␇뮴␇, q␇뮴␇);
+Test_N(q␇뮵␇, q␇뮵␇, q␇뮵␇, q␇뮵␇, q␇뮵␇);
+Test_N(q␇뮶␇, q␇뮶␇, q␇뮶␇, q␇뮶␇, q␇뮶␇);
+Test_N(q␇뮷␇, q␇뮷␇, q␇뮷␇, q␇뮷␇, q␇뮷␇);
+Test_N(q␇뮸␇, q␇뮸␇, q␇뮸␇, q␇뮸␇, q␇뮸␇);
+Test_N(q␇뮹␇, q␇뮹␇, q␇뮹␇, q␇뮹␇, q␇뮹␇);
+Test_N(q␇뮺␇, q␇뮺␇, q␇뮺␇, q␇뮺␇, q␇뮺␇);
+Test_N(q␇뮻␇, q␇뮻␇, q␇뮻␇, q␇뮻␇, q␇뮻␇);
+Test_N(q␇뮼␇, q␇뮼␇, q␇뮼␇, q␇뮼␇, q␇뮼␇);
+Test_N(q␇뮽␇, q␇뮽␇, q␇뮽␇, q␇뮽␇, q␇뮽␇);
+Test_N(q␇뮾␇, q␇뮾␇, q␇뮾␇, q␇뮾␇, q␇뮾␇);
+Test_N(q␇뮿␇, q␇뮿␇, q␇뮿␇, q␇뮿␇, q␇뮿␇);
+Test_N(q␇므␇, q␇므␇, q␇므␇, q␇므␇, q␇므␇);
+Test_N(q␇믁␇, q␇믁␇, q␇믁␇, q␇믁␇, q␇믁␇);
+Test_N(q␇믂␇, q␇믂␇, q␇믂␇, q␇믂␇, q␇믂␇);
+Test_N(q␇믃␇, q␇믃␇, q␇믃␇, q␇믃␇, q␇믃␇);
+Test_N(q␇믄␇, q␇믄␇, q␇믄␇, q␇믄␇, q␇믄␇);
+Test_N(q␇믅␇, q␇믅␇, q␇믅␇, q␇믅␇, q␇믅␇);
+Test_N(q␇믆␇, q␇믆␇, q␇믆␇, q␇믆␇, q␇믆␇);
+Test_N(q␇믇␇, q␇믇␇, q␇믇␇, q␇믇␇, q␇믇␇);
+Test_N(q␇믈␇, q␇믈␇, q␇믈␇, q␇믈␇, q␇믈␇);
+Test_N(q␇믉␇, q␇믉␇, q␇믉␇, q␇믉␇, q␇믉␇);
+Test_N(q␇믊␇, q␇믊␇, q␇믊␇, q␇믊␇, q␇믊␇);
+Test_N(q␇믋␇, q␇믋␇, q␇믋␇, q␇믋␇, q␇믋␇);
+Test_N(q␇믌␇, q␇믌␇, q␇믌␇, q␇믌␇, q␇믌␇);
+Test_N(q␇믍␇, q␇믍␇, q␇믍␇, q␇믍␇, q␇믍␇);
+Test_N(q␇믎␇, q␇믎␇, q␇믎␇, q␇믎␇, q␇믎␇);
+Test_N(q␇믏␇, q␇믏␇, q␇믏␇, q␇믏␇, q␇믏␇);
+Test_N(q␇믐␇, q␇믐␇, q␇믐␇, q␇믐␇, q␇믐␇);
+Test_N(q␇믑␇, q␇믑␇, q␇믑␇, q␇믑␇, q␇믑␇);
+Test_N(q␇믒␇, q␇믒␇, q␇믒␇, q␇믒␇, q␇믒␇);
+Test_N(q␇믓␇, q␇믓␇, q␇믓␇, q␇믓␇, q␇믓␇);
+Test_N(q␇믔␇, q␇믔␇, q␇믔␇, q␇믔␇, q␇믔␇);
+Test_N(q␇믕␇, q␇믕␇, q␇믕␇, q␇믕␇, q␇믕␇);
+Test_N(q␇믖␇, q␇믖␇, q␇믖␇, q␇믖␇, q␇믖␇);
+Test_N(q␇믗␇, q␇믗␇, q␇믗␇, q␇믗␇, q␇믗␇);
+Test_N(q␇믘␇, q␇믘␇, q␇믘␇, q␇믘␇, q␇믘␇);
+Test_N(q␇믙␇, q␇믙␇, q␇믙␇, q␇믙␇, q␇믙␇);
+Test_N(q␇믚␇, q␇믚␇, q␇믚␇, q␇믚␇, q␇믚␇);
+Test_N(q␇믛␇, q␇믛␇, q␇믛␇, q␇믛␇, q␇믛␇);
+Test_N(q␇믜␇, q␇믜␇, q␇믜␇, q␇믜␇, q␇믜␇);
+Test_N(q␇믝␇, q␇믝␇, q␇믝␇, q␇믝␇, q␇믝␇);
+Test_N(q␇믞␇, q␇믞␇, q␇믞␇, q␇믞␇, q␇믞␇);
+Test_N(q␇믟␇, q␇믟␇, q␇믟␇, q␇믟␇, q␇믟␇);
+Test_N(q␇믠␇, q␇믠␇, q␇믠␇, q␇믠␇, q␇믠␇);
+Test_N(q␇믡␇, q␇믡␇, q␇믡␇, q␇믡␇, q␇믡␇);
+Test_N(q␇믢␇, q␇믢␇, q␇믢␇, q␇믢␇, q␇믢␇);
+Test_N(q␇믣␇, q␇믣␇, q␇믣␇, q␇믣␇, q␇믣␇);
+Test_N(q␇믤␇, q␇믤␇, q␇믤␇, q␇믤␇, q␇믤␇);
+Test_N(q␇믥␇, q␇믥␇, q␇믥␇, q␇믥␇, q␇믥␇);
+Test_N(q␇믦␇, q␇믦␇, q␇믦␇, q␇믦␇, q␇믦␇);
+Test_N(q␇믧␇, q␇믧␇, q␇믧␇, q␇믧␇, q␇믧␇);
+Test_N(q␇믨␇, q␇믨␇, q␇믨␇, q␇믨␇, q␇믨␇);
+Test_N(q␇믩␇, q␇믩␇, q␇믩␇, q␇믩␇, q␇믩␇);
+Test_N(q␇믪␇, q␇믪␇, q␇믪␇, q␇믪␇, q␇믪␇);
+Test_N(q␇믫␇, q␇믫␇, q␇믫␇, q␇믫␇, q␇믫␇);
+Test_N(q␇믬␇, q␇믬␇, q␇믬␇, q␇믬␇, q␇믬␇);
+Test_N(q␇믭␇, q␇믭␇, q␇믭␇, q␇믭␇, q␇믭␇);
+Test_N(q␇믮␇, q␇믮␇, q␇믮␇, q␇믮␇, q␇믮␇);
+Test_N(q␇믯␇, q␇믯␇, q␇믯␇, q␇믯␇, q␇믯␇);
+Test_N(q␇믰␇, q␇믰␇, q␇믰␇, q␇믰␇, q␇믰␇);
+Test_N(q␇믱␇, q␇믱␇, q␇믱␇, q␇믱␇, q␇믱␇);
+Test_N(q␇믲␇, q␇믲␇, q␇믲␇, q␇믲␇, q␇믲␇);
+Test_N(q␇믳␇, q␇믳␇, q␇믳␇, q␇믳␇, q␇믳␇);
+Test_N(q␇믴␇, q␇믴␇, q␇믴␇, q␇믴␇, q␇믴␇);
+Test_N(q␇믵␇, q␇믵␇, q␇믵␇, q␇믵␇, q␇믵␇);
+Test_N(q␇믶␇, q␇믶␇, q␇믶␇, q␇믶␇, q␇믶␇);
+Test_N(q␇믷␇, q␇믷␇, q␇믷␇, q␇믷␇, q␇믷␇);
+Test_N(q␇미␇, q␇미␇, q␇미␇, q␇미␇, q␇미␇);
+Test_N(q␇믹␇, q␇믹␇, q␇믹␇, q␇믹␇, q␇믹␇);
+Test_N(q␇믺␇, q␇믺␇, q␇믺␇, q␇믺␇, q␇믺␇);
+Test_N(q␇믻␇, q␇믻␇, q␇믻␇, q␇믻␇, q␇믻␇);
+Test_N(q␇민␇, q␇민␇, q␇민␇, q␇민␇, q␇민␇);
+Test_N(q␇믽␇, q␇믽␇, q␇믽␇, q␇믽␇, q␇믽␇);
+Test_N(q␇믾␇, q␇믾␇, q␇믾␇, q␇믾␇, q␇믾␇);
+Test_N(q␇믿␇, q␇믿␇, q␇믿␇, q␇믿␇, q␇믿␇);
+Test_N(q␇밀␇, q␇밀␇, q␇밀␇, q␇밀␇, q␇밀␇);
+Test_N(q␇밁␇, q␇밁␇, q␇밁␇, q␇밁␇, q␇밁␇);
+Test_N(q␇밂␇, q␇밂␇, q␇밂␇, q␇밂␇, q␇밂␇);
+Test_N(q␇밃␇, q␇밃␇, q␇밃␇, q␇밃␇, q␇밃␇);
+Test_N(q␇밄␇, q␇밄␇, q␇밄␇, q␇밄␇, q␇밄␇);
+Test_N(q␇밅␇, q␇밅␇, q␇밅␇, q␇밅␇, q␇밅␇);
+Test_N(q␇밆␇, q␇밆␇, q␇밆␇, q␇밆␇, q␇밆␇);
+Test_N(q␇밇␇, q␇밇␇, q␇밇␇, q␇밇␇, q␇밇␇);
+Test_N(q␇밈␇, q␇밈␇, q␇밈␇, q␇밈␇, q␇밈␇);
+Test_N(q␇밉␇, q␇밉␇, q␇밉␇, q␇밉␇, q␇밉␇);
+Test_N(q␇밊␇, q␇밊␇, q␇밊␇, q␇밊␇, q␇밊␇);
+Test_N(q␇밋␇, q␇밋␇, q␇밋␇, q␇밋␇, q␇밋␇);
+Test_N(q␇밌␇, q␇밌␇, q␇밌␇, q␇밌␇, q␇밌␇);
+Test_N(q␇밍␇, q␇밍␇, q␇밍␇, q␇밍␇, q␇밍␇);
+Test_N(q␇밎␇, q␇밎␇, q␇밎␇, q␇밎␇, q␇밎␇);
+Test_N(q␇및␇, q␇및␇, q␇및␇, q␇및␇, q␇및␇);
+Test_N(q␇밐␇, q␇밐␇, q␇밐␇, q␇밐␇, q␇밐␇);
+Test_N(q␇밑␇, q␇밑␇, q␇밑␇, q␇밑␇, q␇밑␇);
+Test_N(q␇밒␇, q␇밒␇, q␇밒␇, q␇밒␇, q␇밒␇);
+Test_N(q␇밓␇, q␇밓␇, q␇밓␇, q␇밓␇, q␇밓␇);
+Test_N(q␇바␇, q␇바␇, q␇바␇, q␇바␇, q␇바␇);
+Test_N(q␇박␇, q␇박␇, q␇박␇, q␇박␇, q␇박␇);
+Test_N(q␇밖␇, q␇밖␇, q␇밖␇, q␇밖␇, q␇밖␇);
+Test_N(q␇밗␇, q␇밗␇, q␇밗␇, q␇밗␇, q␇밗␇);
+Test_N(q␇반␇, q␇반␇, q␇반␇, q␇반␇, q␇반␇);
+Test_N(q␇밙␇, q␇밙␇, q␇밙␇, q␇밙␇, q␇밙␇);
+Test_N(q␇밚␇, q␇밚␇, q␇밚␇, q␇밚␇, q␇밚␇);
+Test_N(q␇받␇, q␇받␇, q␇받␇, q␇받␇, q␇받␇);
+Test_N(q␇발␇, q␇발␇, q␇발␇, q␇발␇, q␇발␇);
+Test_N(q␇밝␇, q␇밝␇, q␇밝␇, q␇밝␇, q␇밝␇);
+Test_N(q␇밞␇, q␇밞␇, q␇밞␇, q␇밞␇, q␇밞␇);
+Test_N(q␇밟␇, q␇밟␇, q␇밟␇, q␇밟␇, q␇밟␇);
+Test_N(q␇밠␇, q␇밠␇, q␇밠␇, q␇밠␇, q␇밠␇);
+Test_N(q␇밡␇, q␇밡␇, q␇밡␇, q␇밡␇, q␇밡␇);
+Test_N(q␇밢␇, q␇밢␇, q␇밢␇, q␇밢␇, q␇밢␇);
+Test_N(q␇밣␇, q␇밣␇, q␇밣␇, q␇밣␇, q␇밣␇);
+Test_N(q␇밤␇, q␇밤␇, q␇밤␇, q␇밤␇, q␇밤␇);
+Test_N(q␇밥␇, q␇밥␇, q␇밥␇, q␇밥␇, q␇밥␇);
+Test_N(q␇밦␇, q␇밦␇, q␇밦␇, q␇밦␇, q␇밦␇);
+Test_N(q␇밧␇, q␇밧␇, q␇밧␇, q␇밧␇, q␇밧␇);
+Test_N(q␇밨␇, q␇밨␇, q␇밨␇, q␇밨␇, q␇밨␇);
+Test_N(q␇방␇, q␇방␇, q␇방␇, q␇방␇, q␇방␇);
+Test_N(q␇밪␇, q␇밪␇, q␇밪␇, q␇밪␇, q␇밪␇);
+Test_N(q␇밫␇, q␇밫␇, q␇밫␇, q␇밫␇, q␇밫␇);
+Test_N(q␇밬␇, q␇밬␇, q␇밬␇, q␇밬␇, q␇밬␇);
+Test_N(q␇밭␇, q␇밭␇, q␇밭␇, q␇밭␇, q␇밭␇);
+Test_N(q␇밮␇, q␇밮␇, q␇밮␇, q␇밮␇, q␇밮␇);
+Test_N(q␇밯␇, q␇밯␇, q␇밯␇, q␇밯␇, q␇밯␇);
+Test_N(q␇배␇, q␇배␇, q␇배␇, q␇배␇, q␇배␇);
+Test_N(q␇백␇, q␇백␇, q␇백␇, q␇백␇, q␇백␇);
+Test_N(q␇밲␇, q␇밲␇, q␇밲␇, q␇밲␇, q␇밲␇);
+Test_N(q␇밳␇, q␇밳␇, q␇밳␇, q␇밳␇, q␇밳␇);
+Test_N(q␇밴␇, q␇밴␇, q␇밴␇, q␇밴␇, q␇밴␇);
+Test_N(q␇밵␇, q␇밵␇, q␇밵␇, q␇밵␇, q␇밵␇);
+Test_N(q␇밶␇, q␇밶␇, q␇밶␇, q␇밶␇, q␇밶␇);
+Test_N(q␇밷␇, q␇밷␇, q␇밷␇, q␇밷␇, q␇밷␇);
+Test_N(q␇밸␇, q␇밸␇, q␇밸␇, q␇밸␇, q␇밸␇);
+Test_N(q␇밹␇, q␇밹␇, q␇밹␇, q␇밹␇, q␇밹␇);
+Test_N(q␇밺␇, q␇밺␇, q␇밺␇, q␇밺␇, q␇밺␇);
+Test_N(q␇밻␇, q␇밻␇, q␇밻␇, q␇밻␇, q␇밻␇);
+Test_N(q␇밼␇, q␇밼␇, q␇밼␇, q␇밼␇, q␇밼␇);
+Test_N(q␇밽␇, q␇밽␇, q␇밽␇, q␇밽␇, q␇밽␇);
+Test_N(q␇밾␇, q␇밾␇, q␇밾␇, q␇밾␇, q␇밾␇);
+Test_N(q␇밿␇, q␇밿␇, q␇밿␇, q␇밿␇, q␇밿␇);
+Test_N(q␇뱀␇, q␇뱀␇, q␇뱀␇, q␇뱀␇, q␇뱀␇);
+Test_N(q␇뱁␇, q␇뱁␇, q␇뱁␇, q␇뱁␇, q␇뱁␇);
+Test_N(q␇뱂␇, q␇뱂␇, q␇뱂␇, q␇뱂␇, q␇뱂␇);
+Test_N(q␇뱃␇, q␇뱃␇, q␇뱃␇, q␇뱃␇, q␇뱃␇);
+Test_N(q␇뱄␇, q␇뱄␇, q␇뱄␇, q␇뱄␇, q␇뱄␇);
+Test_N(q␇뱅␇, q␇뱅␇, q␇뱅␇, q␇뱅␇, q␇뱅␇);
+Test_N(q␇뱆␇, q␇뱆␇, q␇뱆␇, q␇뱆␇, q␇뱆␇);
+Test_N(q␇뱇␇, q␇뱇␇, q␇뱇␇, q␇뱇␇, q␇뱇␇);
+Test_N(q␇뱈␇, q␇뱈␇, q␇뱈␇, q␇뱈␇, q␇뱈␇);
+Test_N(q␇뱉␇, q␇뱉␇, q␇뱉␇, q␇뱉␇, q␇뱉␇);
+Test_N(q␇뱊␇, q␇뱊␇, q␇뱊␇, q␇뱊␇, q␇뱊␇);
+Test_N(q␇뱋␇, q␇뱋␇, q␇뱋␇, q␇뱋␇, q␇뱋␇);
+Test_N(q␇뱌␇, q␇뱌␇, q␇뱌␇, q␇뱌␇, q␇뱌␇);
+Test_N(q␇뱍␇, q␇뱍␇, q␇뱍␇, q␇뱍␇, q␇뱍␇);
+Test_N(q␇뱎␇, q␇뱎␇, q␇뱎␇, q␇뱎␇, q␇뱎␇);
+Test_N(q␇뱏␇, q␇뱏␇, q␇뱏␇, q␇뱏␇, q␇뱏␇);
+Test_N(q␇뱐␇, q␇뱐␇, q␇뱐␇, q␇뱐␇, q␇뱐␇);
+Test_N(q␇뱑␇, q␇뱑␇, q␇뱑␇, q␇뱑␇, q␇뱑␇);
+Test_N(q␇뱒␇, q␇뱒␇, q␇뱒␇, q␇뱒␇, q␇뱒␇);
+Test_N(q␇뱓␇, q␇뱓␇, q␇뱓␇, q␇뱓␇, q␇뱓␇);
+Test_N(q␇뱔␇, q␇뱔␇, q␇뱔␇, q␇뱔␇, q␇뱔␇);
+Test_N(q␇뱕␇, q␇뱕␇, q␇뱕␇, q␇뱕␇, q␇뱕␇);
+Test_N(q␇뱖␇, q␇뱖␇, q␇뱖␇, q␇뱖␇, q␇뱖␇);
+Test_N(q␇뱗␇, q␇뱗␇, q␇뱗␇, q␇뱗␇, q␇뱗␇);
+Test_N(q␇뱘␇, q␇뱘␇, q␇뱘␇, q␇뱘␇, q␇뱘␇);
+Test_N(q␇뱙␇, q␇뱙␇, q␇뱙␇, q␇뱙␇, q␇뱙␇);
+Test_N(q␇뱚␇, q␇뱚␇, q␇뱚␇, q␇뱚␇, q␇뱚␇);
+Test_N(q␇뱛␇, q␇뱛␇, q␇뱛␇, q␇뱛␇, q␇뱛␇);
+Test_N(q␇뱜␇, q␇뱜␇, q␇뱜␇, q␇뱜␇, q␇뱜␇);
+Test_N(q␇뱝␇, q␇뱝␇, q␇뱝␇, q␇뱝␇, q␇뱝␇);
+Test_N(q␇뱞␇, q␇뱞␇, q␇뱞␇, q␇뱞␇, q␇뱞␇);
+Test_N(q␇뱟␇, q␇뱟␇, q␇뱟␇, q␇뱟␇, q␇뱟␇);
+Test_N(q␇뱠␇, q␇뱠␇, q␇뱠␇, q␇뱠␇, q␇뱠␇);
+Test_N(q␇뱡␇, q␇뱡␇, q␇뱡␇, q␇뱡␇, q␇뱡␇);
+Test_N(q␇뱢␇, q␇뱢␇, q␇뱢␇, q␇뱢␇, q␇뱢␇);
+Test_N(q␇뱣␇, q␇뱣␇, q␇뱣␇, q␇뱣␇, q␇뱣␇);
+Test_N(q␇뱤␇, q␇뱤␇, q␇뱤␇, q␇뱤␇, q␇뱤␇);
+Test_N(q␇뱥␇, q␇뱥␇, q␇뱥␇, q␇뱥␇, q␇뱥␇);
+Test_N(q␇뱦␇, q␇뱦␇, q␇뱦␇, q␇뱦␇, q␇뱦␇);
+Test_N(q␇뱧␇, q␇뱧␇, q␇뱧␇, q␇뱧␇, q␇뱧␇);
+Test_N(q␇뱨␇, q␇뱨␇, q␇뱨␇, q␇뱨␇, q␇뱨␇);
+Test_N(q␇뱩␇, q␇뱩␇, q␇뱩␇, q␇뱩␇, q␇뱩␇);
+Test_N(q␇뱪␇, q␇뱪␇, q␇뱪␇, q␇뱪␇, q␇뱪␇);
+Test_N(q␇뱫␇, q␇뱫␇, q␇뱫␇, q␇뱫␇, q␇뱫␇);
+Test_N(q␇뱬␇, q␇뱬␇, q␇뱬␇, q␇뱬␇, q␇뱬␇);
+Test_N(q␇뱭␇, q␇뱭␇, q␇뱭␇, q␇뱭␇, q␇뱭␇);
+Test_N(q␇뱮␇, q␇뱮␇, q␇뱮␇, q␇뱮␇, q␇뱮␇);
+Test_N(q␇뱯␇, q␇뱯␇, q␇뱯␇, q␇뱯␇, q␇뱯␇);
+Test_N(q␇뱰␇, q␇뱰␇, q␇뱰␇, q␇뱰␇, q␇뱰␇);
+Test_N(q␇뱱␇, q␇뱱␇, q␇뱱␇, q␇뱱␇, q␇뱱␇);
+Test_N(q␇뱲␇, q␇뱲␇, q␇뱲␇, q␇뱲␇, q␇뱲␇);
+Test_N(q␇뱳␇, q␇뱳␇, q␇뱳␇, q␇뱳␇, q␇뱳␇);
+Test_N(q␇뱴␇, q␇뱴␇, q␇뱴␇, q␇뱴␇, q␇뱴␇);
+Test_N(q␇뱵␇, q␇뱵␇, q␇뱵␇, q␇뱵␇, q␇뱵␇);
+Test_N(q␇뱶␇, q␇뱶␇, q␇뱶␇, q␇뱶␇, q␇뱶␇);
+Test_N(q␇뱷␇, q␇뱷␇, q␇뱷␇, q␇뱷␇, q␇뱷␇);
+Test_N(q␇뱸␇, q␇뱸␇, q␇뱸␇, q␇뱸␇, q␇뱸␇);
+Test_N(q␇뱹␇, q␇뱹␇, q␇뱹␇, q␇뱹␇, q␇뱹␇);
+Test_N(q␇뱺␇, q␇뱺␇, q␇뱺␇, q␇뱺␇, q␇뱺␇);
+Test_N(q␇뱻␇, q␇뱻␇, q␇뱻␇, q␇뱻␇, q␇뱻␇);
+Test_N(q␇뱼␇, q␇뱼␇, q␇뱼␇, q␇뱼␇, q␇뱼␇);
+Test_N(q␇뱽␇, q␇뱽␇, q␇뱽␇, q␇뱽␇, q␇뱽␇);
+Test_N(q␇뱾␇, q␇뱾␇, q␇뱾␇, q␇뱾␇, q␇뱾␇);
+Test_N(q␇뱿␇, q␇뱿␇, q␇뱿␇, q␇뱿␇, q␇뱿␇);
+Test_N(q␇벀␇, q␇벀␇, q␇벀␇, q␇벀␇, q␇벀␇);
+Test_N(q␇벁␇, q␇벁␇, q␇벁␇, q␇벁␇, q␇벁␇);
+Test_N(q␇벂␇, q␇벂␇, q␇벂␇, q␇벂␇, q␇벂␇);
+Test_N(q␇벃␇, q␇벃␇, q␇벃␇, q␇벃␇, q␇벃␇);
+Test_N(q␇버␇, q␇버␇, q␇버␇, q␇버␇, q␇버␇);
+Test_N(q␇벅␇, q␇벅␇, q␇벅␇, q␇벅␇, q␇벅␇);
+Test_N(q␇벆␇, q␇벆␇, q␇벆␇, q␇벆␇, q␇벆␇);
+Test_N(q␇벇␇, q␇벇␇, q␇벇␇, q␇벇␇, q␇벇␇);
+Test_N(q␇번␇, q␇번␇, q␇번␇, q␇번␇, q␇번␇);
+Test_N(q␇벉␇, q␇벉␇, q␇벉␇, q␇벉␇, q␇벉␇);
+Test_N(q␇벊␇, q␇벊␇, q␇벊␇, q␇벊␇, q␇벊␇);
+Test_N(q␇벋␇, q␇벋␇, q␇벋␇, q␇벋␇, q␇벋␇);
+Test_N(q␇벌␇, q␇벌␇, q␇벌␇, q␇벌␇, q␇벌␇);
+Test_N(q␇벍␇, q␇벍␇, q␇벍␇, q␇벍␇, q␇벍␇);
+Test_N(q␇벎␇, q␇벎␇, q␇벎␇, q␇벎␇, q␇벎␇);
+Test_N(q␇벏␇, q␇벏␇, q␇벏␇, q␇벏␇, q␇벏␇);
+Test_N(q␇벐␇, q␇벐␇, q␇벐␇, q␇벐␇, q␇벐␇);
+Test_N(q␇벑␇, q␇벑␇, q␇벑␇, q␇벑␇, q␇벑␇);
+Test_N(q␇벒␇, q␇벒␇, q␇벒␇, q␇벒␇, q␇벒␇);
+Test_N(q␇벓␇, q␇벓␇, q␇벓␇, q␇벓␇, q␇벓␇);
+Test_N(q␇범␇, q␇범␇, q␇범␇, q␇범␇, q␇범␇);
+Test_N(q␇법␇, q␇법␇, q␇법␇, q␇법␇, q␇법␇);
+Test_N(q␇벖␇, q␇벖␇, q␇벖␇, q␇벖␇, q␇벖␇);
+Test_N(q␇벗␇, q␇벗␇, q␇벗␇, q␇벗␇, q␇벗␇);
+Test_N(q␇벘␇, q␇벘␇, q␇벘␇, q␇벘␇, q␇벘␇);
+Test_N(q␇벙␇, q␇벙␇, q␇벙␇, q␇벙␇, q␇벙␇);
+Test_N(q␇벚␇, q␇벚␇, q␇벚␇, q␇벚␇, q␇벚␇);
+Test_N(q␇벛␇, q␇벛␇, q␇벛␇, q␇벛␇, q␇벛␇);
+Test_N(q␇벜␇, q␇벜␇, q␇벜␇, q␇벜␇, q␇벜␇);
+Test_N(q␇벝␇, q␇벝␇, q␇벝␇, q␇벝␇, q␇벝␇);
+Test_N(q␇벞␇, q␇벞␇, q␇벞␇, q␇벞␇, q␇벞␇);
+Test_N(q␇벟␇, q␇벟␇, q␇벟␇, q␇벟␇, q␇벟␇);
+Test_N(q␇베␇, q␇베␇, q␇베␇, q␇베␇, q␇베␇);
+Test_N(q␇벡␇, q␇벡␇, q␇벡␇, q␇벡␇, q␇벡␇);
+Test_N(q␇벢␇, q␇벢␇, q␇벢␇, q␇벢␇, q␇벢␇);
+Test_N(q␇벣␇, q␇벣␇, q␇벣␇, q␇벣␇, q␇벣␇);
+Test_N(q␇벤␇, q␇벤␇, q␇벤␇, q␇벤␇, q␇벤␇);
+Test_N(q␇벥␇, q␇벥␇, q␇벥␇, q␇벥␇, q␇벥␇);
+Test_N(q␇벦␇, q␇벦␇, q␇벦␇, q␇벦␇, q␇벦␇);
+Test_N(q␇벧␇, q␇벧␇, q␇벧␇, q␇벧␇, q␇벧␇);
+Test_N(q␇벨␇, q␇벨␇, q␇벨␇, q␇벨␇, q␇벨␇);
+Test_N(q␇벩␇, q␇벩␇, q␇벩␇, q␇벩␇, q␇벩␇);
+Test_N(q␇벪␇, q␇벪␇, q␇벪␇, q␇벪␇, q␇벪␇);
+Test_N(q␇벫␇, q␇벫␇, q␇벫␇, q␇벫␇, q␇벫␇);
+Test_N(q␇벬␇, q␇벬␇, q␇벬␇, q␇벬␇, q␇벬␇);
+Test_N(q␇벭␇, q␇벭␇, q␇벭␇, q␇벭␇, q␇벭␇);
+Test_N(q␇벮␇, q␇벮␇, q␇벮␇, q␇벮␇, q␇벮␇);
+Test_N(q␇벯␇, q␇벯␇, q␇벯␇, q␇벯␇, q␇벯␇);
+Test_N(q␇벰␇, q␇벰␇, q␇벰␇, q␇벰␇, q␇벰␇);
+Test_N(q␇벱␇, q␇벱␇, q␇벱␇, q␇벱␇, q␇벱␇);
+Test_N(q␇벲␇, q␇벲␇, q␇벲␇, q␇벲␇, q␇벲␇);
+Test_N(q␇벳␇, q␇벳␇, q␇벳␇, q␇벳␇, q␇벳␇);
+Test_N(q␇벴␇, q␇벴␇, q␇벴␇, q␇벴␇, q␇벴␇);
+Test_N(q␇벵␇, q␇벵␇, q␇벵␇, q␇벵␇, q␇벵␇);
+Test_N(q␇벶␇, q␇벶␇, q␇벶␇, q␇벶␇, q␇벶␇);
+Test_N(q␇벷␇, q␇벷␇, q␇벷␇, q␇벷␇, q␇벷␇);
+Test_N(q␇벸␇, q␇벸␇, q␇벸␇, q␇벸␇, q␇벸␇);
+Test_N(q␇벹␇, q␇벹␇, q␇벹␇, q␇벹␇, q␇벹␇);
+Test_N(q␇벺␇, q␇벺␇, q␇벺␇, q␇벺␇, q␇벺␇);
+Test_N(q␇벻␇, q␇벻␇, q␇벻␇, q␇벻␇, q␇벻␇);
+Test_N(q␇벼␇, q␇벼␇, q␇벼␇, q␇벼␇, q␇벼␇);
+Test_N(q␇벽␇, q␇벽␇, q␇벽␇, q␇벽␇, q␇벽␇);
+Test_N(q␇벾␇, q␇벾␇, q␇벾␇, q␇벾␇, q␇벾␇);
+Test_N(q␇벿␇, q␇벿␇, q␇벿␇, q␇벿␇, q␇벿␇);
+Test_N(q␇변␇, q␇변␇, q␇변␇, q␇변␇, q␇변␇);
+Test_N(q␇볁␇, q␇볁␇, q␇볁␇, q␇볁␇, q␇볁␇);
+Test_N(q␇볂␇, q␇볂␇, q␇볂␇, q␇볂␇, q␇볂␇);
+Test_N(q␇볃␇, q␇볃␇, q␇볃␇, q␇볃␇, q␇볃␇);
+Test_N(q␇별␇, q␇별␇, q␇별␇, q␇별␇, q␇별␇);
+Test_N(q␇볅␇, q␇볅␇, q␇볅␇, q␇볅␇, q␇볅␇);
+Test_N(q␇볆␇, q␇볆␇, q␇볆␇, q␇볆␇, q␇볆␇);
+Test_N(q␇볇␇, q␇볇␇, q␇볇␇, q␇볇␇, q␇볇␇);
+Test_N(q␇볈␇, q␇볈␇, q␇볈␇, q␇볈␇, q␇볈␇);
+Test_N(q␇볉␇, q␇볉␇, q␇볉␇, q␇볉␇, q␇볉␇);
+Test_N(q␇볊␇, q␇볊␇, q␇볊␇, q␇볊␇, q␇볊␇);
+Test_N(q␇볋␇, q␇볋␇, q␇볋␇, q␇볋␇, q␇볋␇);
+Test_N(q␇볌␇, q␇볌␇, q␇볌␇, q␇볌␇, q␇볌␇);
+Test_N(q␇볍␇, q␇볍␇, q␇볍␇, q␇볍␇, q␇볍␇);
+Test_N(q␇볎␇, q␇볎␇, q␇볎␇, q␇볎␇, q␇볎␇);
+Test_N(q␇볏␇, q␇볏␇, q␇볏␇, q␇볏␇, q␇볏␇);
+Test_N(q␇볐␇, q␇볐␇, q␇볐␇, q␇볐␇, q␇볐␇);
+Test_N(q␇병␇, q␇병␇, q␇병␇, q␇병␇, q␇병␇);
+Test_N(q␇볒␇, q␇볒␇, q␇볒␇, q␇볒␇, q␇볒␇);
+Test_N(q␇볓␇, q␇볓␇, q␇볓␇, q␇볓␇, q␇볓␇);
+Test_N(q␇볔␇, q␇볔␇, q␇볔␇, q␇볔␇, q␇볔␇);
+Test_N(q␇볕␇, q␇볕␇, q␇볕␇, q␇볕␇, q␇볕␇);
+Test_N(q␇볖␇, q␇볖␇, q␇볖␇, q␇볖␇, q␇볖␇);
+Test_N(q␇볗␇, q␇볗␇, q␇볗␇, q␇볗␇, q␇볗␇);
+Test_N(q␇볘␇, q␇볘␇, q␇볘␇, q␇볘␇, q␇볘␇);
+Test_N(q␇볙␇, q␇볙␇, q␇볙␇, q␇볙␇, q␇볙␇);
+Test_N(q␇볚␇, q␇볚␇, q␇볚␇, q␇볚␇, q␇볚␇);
+Test_N(q␇볛␇, q␇볛␇, q␇볛␇, q␇볛␇, q␇볛␇);
+Test_N(q␇볜␇, q␇볜␇, q␇볜␇, q␇볜␇, q␇볜␇);
+Test_N(q␇볝␇, q␇볝␇, q␇볝␇, q␇볝␇, q␇볝␇);
+Test_N(q␇볞␇, q␇볞␇, q␇볞␇, q␇볞␇, q␇볞␇);
+Test_N(q␇볟␇, q␇볟␇, q␇볟␇, q␇볟␇, q␇볟␇);
+Test_N(q␇볠␇, q␇볠␇, q␇볠␇, q␇볠␇, q␇볠␇);
+Test_N(q␇볡␇, q␇볡␇, q␇볡␇, q␇볡␇, q␇볡␇);
+Test_N(q␇볢␇, q␇볢␇, q␇볢␇, q␇볢␇, q␇볢␇);
+Test_N(q␇볣␇, q␇볣␇, q␇볣␇, q␇볣␇, q␇볣␇);
+Test_N(q␇볤␇, q␇볤␇, q␇볤␇, q␇볤␇, q␇볤␇);
+Test_N(q␇볥␇, q␇볥␇, q␇볥␇, q␇볥␇, q␇볥␇);
+Test_N(q␇볦␇, q␇볦␇, q␇볦␇, q␇볦␇, q␇볦␇);
+Test_N(q␇볧␇, q␇볧␇, q␇볧␇, q␇볧␇, q␇볧␇);
+Test_N(q␇볨␇, q␇볨␇, q␇볨␇, q␇볨␇, q␇볨␇);
+Test_N(q␇볩␇, q␇볩␇, q␇볩␇, q␇볩␇, q␇볩␇);
+Test_N(q␇볪␇, q␇볪␇, q␇볪␇, q␇볪␇, q␇볪␇);
+Test_N(q␇볫␇, q␇볫␇, q␇볫␇, q␇볫␇, q␇볫␇);
+Test_N(q␇볬␇, q␇볬␇, q␇볬␇, q␇볬␇, q␇볬␇);
+Test_N(q␇볭␇, q␇볭␇, q␇볭␇, q␇볭␇, q␇볭␇);
+Test_N(q␇볮␇, q␇볮␇, q␇볮␇, q␇볮␇, q␇볮␇);
+Test_N(q␇볯␇, q␇볯␇, q␇볯␇, q␇볯␇, q␇볯␇);
+Test_N(q␇볰␇, q␇볰␇, q␇볰␇, q␇볰␇, q␇볰␇);
+Test_N(q␇볱␇, q␇볱␇, q␇볱␇, q␇볱␇, q␇볱␇);
+Test_N(q␇볲␇, q␇볲␇, q␇볲␇, q␇볲␇, q␇볲␇);
+Test_N(q␇볳␇, q␇볳␇, q␇볳␇, q␇볳␇, q␇볳␇);
+Test_N(q␇보␇, q␇보␇, q␇보␇, q␇보␇, q␇보␇);
+Test_N(q␇복␇, q␇복␇, q␇복␇, q␇복␇, q␇복␇);
+Test_N(q␇볶␇, q␇볶␇, q␇볶␇, q␇볶␇, q␇볶␇);
+Test_N(q␇볷␇, q␇볷␇, q␇볷␇, q␇볷␇, q␇볷␇);
+Test_N(q␇본␇, q␇본␇, q␇본␇, q␇본␇, q␇본␇);
+Test_N(q␇볹␇, q␇볹␇, q␇볹␇, q␇볹␇, q␇볹␇);
+Test_N(q␇볺␇, q␇볺␇, q␇볺␇, q␇볺␇, q␇볺␇);
+Test_N(q␇볻␇, q␇볻␇, q␇볻␇, q␇볻␇, q␇볻␇);
+Test_N(q␇볼␇, q␇볼␇, q␇볼␇, q␇볼␇, q␇볼␇);
+Test_N(q␇볽␇, q␇볽␇, q␇볽␇, q␇볽␇, q␇볽␇);
+Test_N(q␇볾␇, q␇볾␇, q␇볾␇, q␇볾␇, q␇볾␇);
+Test_N(q␇볿␇, q␇볿␇, q␇볿␇, q␇볿␇, q␇볿␇);
+Test_N(q␇봀␇, q␇봀␇, q␇봀␇, q␇봀␇, q␇봀␇);
+Test_N(q␇봁␇, q␇봁␇, q␇봁␇, q␇봁␇, q␇봁␇);
+Test_N(q␇봂␇, q␇봂␇, q␇봂␇, q␇봂␇, q␇봂␇);
+Test_N(q␇봃␇, q␇봃␇, q␇봃␇, q␇봃␇, q␇봃␇);
+Test_N(q␇봄␇, q␇봄␇, q␇봄␇, q␇봄␇, q␇봄␇);
+Test_N(q␇봅␇, q␇봅␇, q␇봅␇, q␇봅␇, q␇봅␇);
+Test_N(q␇봆␇, q␇봆␇, q␇봆␇, q␇봆␇, q␇봆␇);
+Test_N(q␇봇␇, q␇봇␇, q␇봇␇, q␇봇␇, q␇봇␇);
+Test_N(q␇봈␇, q␇봈␇, q␇봈␇, q␇봈␇, q␇봈␇);
+Test_N(q␇봉␇, q␇봉␇, q␇봉␇, q␇봉␇, q␇봉␇);
+Test_N(q␇봊␇, q␇봊␇, q␇봊␇, q␇봊␇, q␇봊␇);
+Test_N(q␇봋␇, q␇봋␇, q␇봋␇, q␇봋␇, q␇봋␇);
+Test_N(q␇봌␇, q␇봌␇, q␇봌␇, q␇봌␇, q␇봌␇);
+Test_N(q␇봍␇, q␇봍␇, q␇봍␇, q␇봍␇, q␇봍␇);
+Test_N(q␇봎␇, q␇봎␇, q␇봎␇, q␇봎␇, q␇봎␇);
+Test_N(q␇봏␇, q␇봏␇, q␇봏␇, q␇봏␇, q␇봏␇);
+Test_N(q␇봐␇, q␇봐␇, q␇봐␇, q␇봐␇, q␇봐␇);
+Test_N(q␇봑␇, q␇봑␇, q␇봑␇, q␇봑␇, q␇봑␇);
+Test_N(q␇봒␇, q␇봒␇, q␇봒␇, q␇봒␇, q␇봒␇);
+Test_N(q␇봓␇, q␇봓␇, q␇봓␇, q␇봓␇, q␇봓␇);
+Test_N(q␇봔␇, q␇봔␇, q␇봔␇, q␇봔␇, q␇봔␇);
+Test_N(q␇봕␇, q␇봕␇, q␇봕␇, q␇봕␇, q␇봕␇);
+Test_N(q␇봖␇, q␇봖␇, q␇봖␇, q␇봖␇, q␇봖␇);
+Test_N(q␇봗␇, q␇봗␇, q␇봗␇, q␇봗␇, q␇봗␇);
+Test_N(q␇봘␇, q␇봘␇, q␇봘␇, q␇봘␇, q␇봘␇);
+Test_N(q␇봙␇, q␇봙␇, q␇봙␇, q␇봙␇, q␇봙␇);
+Test_N(q␇봚␇, q␇봚␇, q␇봚␇, q␇봚␇, q␇봚␇);
+Test_N(q␇봛␇, q␇봛␇, q␇봛␇, q␇봛␇, q␇봛␇);
+Test_N(q␇봜␇, q␇봜␇, q␇봜␇, q␇봜␇, q␇봜␇);
+Test_N(q␇봝␇, q␇봝␇, q␇봝␇, q␇봝␇, q␇봝␇);
+Test_N(q␇봞␇, q␇봞␇, q␇봞␇, q␇봞␇, q␇봞␇);
+Test_N(q␇봟␇, q␇봟␇, q␇봟␇, q␇봟␇, q␇봟␇);
+Test_N(q␇봠␇, q␇봠␇, q␇봠␇, q␇봠␇, q␇봠␇);
+Test_N(q␇봡␇, q␇봡␇, q␇봡␇, q␇봡␇, q␇봡␇);
+Test_N(q␇봢␇, q␇봢␇, q␇봢␇, q␇봢␇, q␇봢␇);
+Test_N(q␇봣␇, q␇봣␇, q␇봣␇, q␇봣␇, q␇봣␇);
+Test_N(q␇봤␇, q␇봤␇, q␇봤␇, q␇봤␇, q␇봤␇);
+Test_N(q␇봥␇, q␇봥␇, q␇봥␇, q␇봥␇, q␇봥␇);
+Test_N(q␇봦␇, q␇봦␇, q␇봦␇, q␇봦␇, q␇봦␇);
+Test_N(q␇봧␇, q␇봧␇, q␇봧␇, q␇봧␇, q␇봧␇);
+Test_N(q␇봨␇, q␇봨␇, q␇봨␇, q␇봨␇, q␇봨␇);
+Test_N(q␇봩␇, q␇봩␇, q␇봩␇, q␇봩␇, q␇봩␇);
+Test_N(q␇봪␇, q␇봪␇, q␇봪␇, q␇봪␇, q␇봪␇);
+Test_N(q␇봫␇, q␇봫␇, q␇봫␇, q␇봫␇, q␇봫␇);
+Test_N(q␇봬␇, q␇봬␇, q␇봬␇, q␇봬␇, q␇봬␇);
+Test_N(q␇봭␇, q␇봭␇, q␇봭␇, q␇봭␇, q␇봭␇);
+Test_N(q␇봮␇, q␇봮␇, q␇봮␇, q␇봮␇, q␇봮␇);
+Test_N(q␇봯␇, q␇봯␇, q␇봯␇, q␇봯␇, q␇봯␇);
+Test_N(q␇봰␇, q␇봰␇, q␇봰␇, q␇봰␇, q␇봰␇);
+Test_N(q␇봱␇, q␇봱␇, q␇봱␇, q␇봱␇, q␇봱␇);
+Test_N(q␇봲␇, q␇봲␇, q␇봲␇, q␇봲␇, q␇봲␇);
+Test_N(q␇봳␇, q␇봳␇, q␇봳␇, q␇봳␇, q␇봳␇);
+Test_N(q␇봴␇, q␇봴␇, q␇봴␇, q␇봴␇, q␇봴␇);
+Test_N(q␇봵␇, q␇봵␇, q␇봵␇, q␇봵␇, q␇봵␇);
+Test_N(q␇봶␇, q␇봶␇, q␇봶␇, q␇봶␇, q␇봶␇);
+Test_N(q␇봷␇, q␇봷␇, q␇봷␇, q␇봷␇, q␇봷␇);
+Test_N(q␇봸␇, q␇봸␇, q␇봸␇, q␇봸␇, q␇봸␇);
+Test_N(q␇봹␇, q␇봹␇, q␇봹␇, q␇봹␇, q␇봹␇);
+Test_N(q␇봺␇, q␇봺␇, q␇봺␇, q␇봺␇, q␇봺␇);
+Test_N(q␇봻␇, q␇봻␇, q␇봻␇, q␇봻␇, q␇봻␇);
+Test_N(q␇봼␇, q␇봼␇, q␇봼␇, q␇봼␇, q␇봼␇);
+Test_N(q␇봽␇, q␇봽␇, q␇봽␇, q␇봽␇, q␇봽␇);
+Test_N(q␇봾␇, q␇봾␇, q␇봾␇, q␇봾␇, q␇봾␇);
+Test_N(q␇봿␇, q␇봿␇, q␇봿␇, q␇봿␇, q␇봿␇);
+Test_N(q␇뵀␇, q␇뵀␇, q␇뵀␇, q␇뵀␇, q␇뵀␇);
+Test_N(q␇뵁␇, q␇뵁␇, q␇뵁␇, q␇뵁␇, q␇뵁␇);
+Test_N(q␇뵂␇, q␇뵂␇, q␇뵂␇, q␇뵂␇, q␇뵂␇);
+Test_N(q␇뵃␇, q␇뵃␇, q␇뵃␇, q␇뵃␇, q␇뵃␇);
+Test_N(q␇뵄␇, q␇뵄␇, q␇뵄␇, q␇뵄␇, q␇뵄␇);
+Test_N(q␇뵅␇, q␇뵅␇, q␇뵅␇, q␇뵅␇, q␇뵅␇);
+Test_N(q␇뵆␇, q␇뵆␇, q␇뵆␇, q␇뵆␇, q␇뵆␇);
+Test_N(q␇뵇␇, q␇뵇␇, q␇뵇␇, q␇뵇␇, q␇뵇␇);
+Test_N(q␇뵈␇, q␇뵈␇, q␇뵈␇, q␇뵈␇, q␇뵈␇);
+Test_N(q␇뵉␇, q␇뵉␇, q␇뵉␇, q␇뵉␇, q␇뵉␇);
+Test_N(q␇뵊␇, q␇뵊␇, q␇뵊␇, q␇뵊␇, q␇뵊␇);
+Test_N(q␇뵋␇, q␇뵋␇, q␇뵋␇, q␇뵋␇, q␇뵋␇);
+Test_N(q␇뵌␇, q␇뵌␇, q␇뵌␇, q␇뵌␇, q␇뵌␇);
+Test_N(q␇뵍␇, q␇뵍␇, q␇뵍␇, q␇뵍␇, q␇뵍␇);
+Test_N(q␇뵎␇, q␇뵎␇, q␇뵎␇, q␇뵎␇, q␇뵎␇);
+Test_N(q␇뵏␇, q␇뵏␇, q␇뵏␇, q␇뵏␇, q␇뵏␇);
+Test_N(q␇뵐␇, q␇뵐␇, q␇뵐␇, q␇뵐␇, q␇뵐␇);
+Test_N(q␇뵑␇, q␇뵑␇, q␇뵑␇, q␇뵑␇, q␇뵑␇);
+Test_N(q␇뵒␇, q␇뵒␇, q␇뵒␇, q␇뵒␇, q␇뵒␇);
+Test_N(q␇뵓␇, q␇뵓␇, q␇뵓␇, q␇뵓␇, q␇뵓␇);
+Test_N(q␇뵔␇, q␇뵔␇, q␇뵔␇, q␇뵔␇, q␇뵔␇);
+Test_N(q␇뵕␇, q␇뵕␇, q␇뵕␇, q␇뵕␇, q␇뵕␇);
+Test_N(q␇뵖␇, q␇뵖␇, q␇뵖␇, q␇뵖␇, q␇뵖␇);
+Test_N(q␇뵗␇, q␇뵗␇, q␇뵗␇, q␇뵗␇, q␇뵗␇);
+Test_N(q␇뵘␇, q␇뵘␇, q␇뵘␇, q␇뵘␇, q␇뵘␇);
+Test_N(q␇뵙␇, q␇뵙␇, q␇뵙␇, q␇뵙␇, q␇뵙␇);
+Test_N(q␇뵚␇, q␇뵚␇, q␇뵚␇, q␇뵚␇, q␇뵚␇);
+Test_N(q␇뵛␇, q␇뵛␇, q␇뵛␇, q␇뵛␇, q␇뵛␇);
+Test_N(q␇뵜␇, q␇뵜␇, q␇뵜␇, q␇뵜␇, q␇뵜␇);
+Test_N(q␇뵝␇, q␇뵝␇, q␇뵝␇, q␇뵝␇, q␇뵝␇);
+Test_N(q␇뵞␇, q␇뵞␇, q␇뵞␇, q␇뵞␇, q␇뵞␇);
+Test_N(q␇뵟␇, q␇뵟␇, q␇뵟␇, q␇뵟␇, q␇뵟␇);
+Test_N(q␇뵠␇, q␇뵠␇, q␇뵠␇, q␇뵠␇, q␇뵠␇);
+Test_N(q␇뵡␇, q␇뵡␇, q␇뵡␇, q␇뵡␇, q␇뵡␇);
+Test_N(q␇뵢␇, q␇뵢␇, q␇뵢␇, q␇뵢␇, q␇뵢␇);
+Test_N(q␇뵣␇, q␇뵣␇, q␇뵣␇, q␇뵣␇, q␇뵣␇);
+Test_N(q␇뵤␇, q␇뵤␇, q␇뵤␇, q␇뵤␇, q␇뵤␇);
+Test_N(q␇뵥␇, q␇뵥␇, q␇뵥␇, q␇뵥␇, q␇뵥␇);
+Test_N(q␇뵦␇, q␇뵦␇, q␇뵦␇, q␇뵦␇, q␇뵦␇);
+Test_N(q␇뵧␇, q␇뵧␇, q␇뵧␇, q␇뵧␇, q␇뵧␇);
+Test_N(q␇뵨␇, q␇뵨␇, q␇뵨␇, q␇뵨␇, q␇뵨␇);
+Test_N(q␇뵩␇, q␇뵩␇, q␇뵩␇, q␇뵩␇, q␇뵩␇);
+Test_N(q␇뵪␇, q␇뵪␇, q␇뵪␇, q␇뵪␇, q␇뵪␇);
+Test_N(q␇뵫␇, q␇뵫␇, q␇뵫␇, q␇뵫␇, q␇뵫␇);
+Test_N(q␇뵬␇, q␇뵬␇, q␇뵬␇, q␇뵬␇, q␇뵬␇);
+Test_N(q␇뵭␇, q␇뵭␇, q␇뵭␇, q␇뵭␇, q␇뵭␇);
+Test_N(q␇뵮␇, q␇뵮␇, q␇뵮␇, q␇뵮␇, q␇뵮␇);
+Test_N(q␇뵯␇, q␇뵯␇, q␇뵯␇, q␇뵯␇, q␇뵯␇);
+Test_N(q␇뵰␇, q␇뵰␇, q␇뵰␇, q␇뵰␇, q␇뵰␇);
+Test_N(q␇뵱␇, q␇뵱␇, q␇뵱␇, q␇뵱␇, q␇뵱␇);
+Test_N(q␇뵲␇, q␇뵲␇, q␇뵲␇, q␇뵲␇, q␇뵲␇);
+Test_N(q␇뵳␇, q␇뵳␇, q␇뵳␇, q␇뵳␇, q␇뵳␇);
+Test_N(q␇뵴␇, q␇뵴␇, q␇뵴␇, q␇뵴␇, q␇뵴␇);
+Test_N(q␇뵵␇, q␇뵵␇, q␇뵵␇, q␇뵵␇, q␇뵵␇);
+Test_N(q␇뵶␇, q␇뵶␇, q␇뵶␇, q␇뵶␇, q␇뵶␇);
+Test_N(q␇뵷␇, q␇뵷␇, q␇뵷␇, q␇뵷␇, q␇뵷␇);
+Test_N(q␇뵸␇, q␇뵸␇, q␇뵸␇, q␇뵸␇, q␇뵸␇);
+Test_N(q␇뵹␇, q␇뵹␇, q␇뵹␇, q␇뵹␇, q␇뵹␇);
+Test_N(q␇뵺␇, q␇뵺␇, q␇뵺␇, q␇뵺␇, q␇뵺␇);
+Test_N(q␇뵻␇, q␇뵻␇, q␇뵻␇, q␇뵻␇, q␇뵻␇);
+Test_N(q␇뵼␇, q␇뵼␇, q␇뵼␇, q␇뵼␇, q␇뵼␇);
+Test_N(q␇뵽␇, q␇뵽␇, q␇뵽␇, q␇뵽␇, q␇뵽␇);
+Test_N(q␇뵾␇, q␇뵾␇, q␇뵾␇, q␇뵾␇, q␇뵾␇);
+Test_N(q␇뵿␇, q␇뵿␇, q␇뵿␇, q␇뵿␇, q␇뵿␇);
+Test_N(q␇부␇, q␇부␇, q␇부␇, q␇부␇, q␇부␇);
+Test_N(q␇북␇, q␇북␇, q␇북␇, q␇북␇, q␇북␇);
+Test_N(q␇붂␇, q␇붂␇, q␇붂␇, q␇붂␇, q␇붂␇);
+Test_N(q␇붃␇, q␇붃␇, q␇붃␇, q␇붃␇, q␇붃␇);
+Test_N(q␇분␇, q␇분␇, q␇분␇, q␇분␇, q␇분␇);
+Test_N(q␇붅␇, q␇붅␇, q␇붅␇, q␇붅␇, q␇붅␇);
+Test_N(q␇붆␇, q␇붆␇, q␇붆␇, q␇붆␇, q␇붆␇);
+Test_N(q␇붇␇, q␇붇␇, q␇붇␇, q␇붇␇, q␇붇␇);
+Test_N(q␇불␇, q␇불␇, q␇불␇, q␇불␇, q␇불␇);
+Test_N(q␇붉␇, q␇붉␇, q␇붉␇, q␇붉␇, q␇붉␇);
+Test_N(q␇붊␇, q␇붊␇, q␇붊␇, q␇붊␇, q␇붊␇);
+Test_N(q␇붋␇, q␇붋␇, q␇붋␇, q␇붋␇, q␇붋␇);
+Test_N(q␇붌␇, q␇붌␇, q␇붌␇, q␇붌␇, q␇붌␇);
+Test_N(q␇붍␇, q␇붍␇, q␇붍␇, q␇붍␇, q␇붍␇);
+Test_N(q␇붎␇, q␇붎␇, q␇붎␇, q␇붎␇, q␇붎␇);
+Test_N(q␇붏␇, q␇붏␇, q␇붏␇, q␇붏␇, q␇붏␇);
+Test_N(q␇붐␇, q␇붐␇, q␇붐␇, q␇붐␇, q␇붐␇);
+Test_N(q␇붑␇, q␇붑␇, q␇붑␇, q␇붑␇, q␇붑␇);
+Test_N(q␇붒␇, q␇붒␇, q␇붒␇, q␇붒␇, q␇붒␇);
+Test_N(q␇붓␇, q␇붓␇, q␇붓␇, q␇붓␇, q␇붓␇);
+Test_N(q␇붔␇, q␇붔␇, q␇붔␇, q␇붔␇, q␇붔␇);
+Test_N(q␇붕␇, q␇붕␇, q␇붕␇, q␇붕␇, q␇붕␇);
+Test_N(q␇붖␇, q␇붖␇, q␇붖␇, q␇붖␇, q␇붖␇);
+Test_N(q␇붗␇, q␇붗␇, q␇붗␇, q␇붗␇, q␇붗␇);
+Test_N(q␇붘␇, q␇붘␇, q␇붘␇, q␇붘␇, q␇붘␇);
+Test_N(q␇붙␇, q␇붙␇, q␇붙␇, q␇붙␇, q␇붙␇);
+Test_N(q␇붚␇, q␇붚␇, q␇붚␇, q␇붚␇, q␇붚␇);
+Test_N(q␇붛␇, q␇붛␇, q␇붛␇, q␇붛␇, q␇붛␇);
+Test_N(q␇붜␇, q␇붜␇, q␇붜␇, q␇붜␇, q␇붜␇);
+Test_N(q␇붝␇, q␇붝␇, q␇붝␇, q␇붝␇, q␇붝␇);
+Test_N(q␇붞␇, q␇붞␇, q␇붞␇, q␇붞␇, q␇붞␇);
+Test_N(q␇붟␇, q␇붟␇, q␇붟␇, q␇붟␇, q␇붟␇);
+Test_N(q␇붠␇, q␇붠␇, q␇붠␇, q␇붠␇, q␇붠␇);
+Test_N(q␇붡␇, q␇붡␇, q␇붡␇, q␇붡␇, q␇붡␇);
+Test_N(q␇붢␇, q␇붢␇, q␇붢␇, q␇붢␇, q␇붢␇);
+Test_N(q␇붣␇, q␇붣␇, q␇붣␇, q␇붣␇, q␇붣␇);
+Test_N(q␇붤␇, q␇붤␇, q␇붤␇, q␇붤␇, q␇붤␇);
+Test_N(q␇붥␇, q␇붥␇, q␇붥␇, q␇붥␇, q␇붥␇);
+Test_N(q␇붦␇, q␇붦␇, q␇붦␇, q␇붦␇, q␇붦␇);
+Test_N(q␇붧␇, q␇붧␇, q␇붧␇, q␇붧␇, q␇붧␇);
+Test_N(q␇붨␇, q␇붨␇, q␇붨␇, q␇붨␇, q␇붨␇);
+Test_N(q␇붩␇, q␇붩␇, q␇붩␇, q␇붩␇, q␇붩␇);
+Test_N(q␇붪␇, q␇붪␇, q␇붪␇, q␇붪␇, q␇붪␇);
+Test_N(q␇붫␇, q␇붫␇, q␇붫␇, q␇붫␇, q␇붫␇);
+Test_N(q␇붬␇, q␇붬␇, q␇붬␇, q␇붬␇, q␇붬␇);
+Test_N(q␇붭␇, q␇붭␇, q␇붭␇, q␇붭␇, q␇붭␇);
+Test_N(q␇붮␇, q␇붮␇, q␇붮␇, q␇붮␇, q␇붮␇);
+Test_N(q␇붯␇, q␇붯␇, q␇붯␇, q␇붯␇, q␇붯␇);
+Test_N(q␇붰␇, q␇붰␇, q␇붰␇, q␇붰␇, q␇붰␇);
+Test_N(q␇붱␇, q␇붱␇, q␇붱␇, q␇붱␇, q␇붱␇);
+Test_N(q␇붲␇, q␇붲␇, q␇붲␇, q␇붲␇, q␇붲␇);
+Test_N(q␇붳␇, q␇붳␇, q␇붳␇, q␇붳␇, q␇붳␇);
+Test_N(q␇붴␇, q␇붴␇, q␇붴␇, q␇붴␇, q␇붴␇);
+Test_N(q␇붵␇, q␇붵␇, q␇붵␇, q␇붵␇, q␇붵␇);
+Test_N(q␇붶␇, q␇붶␇, q␇붶␇, q␇붶␇, q␇붶␇);
+Test_N(q␇붷␇, q␇붷␇, q␇붷␇, q␇붷␇, q␇붷␇);
+Test_N(q␇붸␇, q␇붸␇, q␇붸␇, q␇붸␇, q␇붸␇);
+Test_N(q␇붹␇, q␇붹␇, q␇붹␇, q␇붹␇, q␇붹␇);
+Test_N(q␇붺␇, q␇붺␇, q␇붺␇, q␇붺␇, q␇붺␇);
+Test_N(q␇붻␇, q␇붻␇, q␇붻␇, q␇붻␇, q␇붻␇);
+Test_N(q␇붼␇, q␇붼␇, q␇붼␇, q␇붼␇, q␇붼␇);
+Test_N(q␇붽␇, q␇붽␇, q␇붽␇, q␇붽␇, q␇붽␇);
+Test_N(q␇붾␇, q␇붾␇, q␇붾␇, q␇붾␇, q␇붾␇);
+Test_N(q␇붿␇, q␇붿␇, q␇붿␇, q␇붿␇, q␇붿␇);
+Test_N(q␇뷀␇, q␇뷀␇, q␇뷀␇, q␇뷀␇, q␇뷀␇);
+Test_N(q␇뷁␇, q␇뷁␇, q␇뷁␇, q␇뷁␇, q␇뷁␇);
+Test_N(q␇뷂␇, q␇뷂␇, q␇뷂␇, q␇뷂␇, q␇뷂␇);
+Test_N(q␇뷃␇, q␇뷃␇, q␇뷃␇, q␇뷃␇, q␇뷃␇);
+Test_N(q␇뷄␇, q␇뷄␇, q␇뷄␇, q␇뷄␇, q␇뷄␇);
+Test_N(q␇뷅␇, q␇뷅␇, q␇뷅␇, q␇뷅␇, q␇뷅␇);
+Test_N(q␇뷆␇, q␇뷆␇, q␇뷆␇, q␇뷆␇, q␇뷆␇);
+Test_N(q␇뷇␇, q␇뷇␇, q␇뷇␇, q␇뷇␇, q␇뷇␇);
+Test_N(q␇뷈␇, q␇뷈␇, q␇뷈␇, q␇뷈␇, q␇뷈␇);
+Test_N(q␇뷉␇, q␇뷉␇, q␇뷉␇, q␇뷉␇, q␇뷉␇);
+Test_N(q␇뷊␇, q␇뷊␇, q␇뷊␇, q␇뷊␇, q␇뷊␇);
+Test_N(q␇뷋␇, q␇뷋␇, q␇뷋␇, q␇뷋␇, q␇뷋␇);
+Test_N(q␇뷌␇, q␇뷌␇, q␇뷌␇, q␇뷌␇, q␇뷌␇);
+Test_N(q␇뷍␇, q␇뷍␇, q␇뷍␇, q␇뷍␇, q␇뷍␇);
+Test_N(q␇뷎␇, q␇뷎␇, q␇뷎␇, q␇뷎␇, q␇뷎␇);
+Test_N(q␇뷏␇, q␇뷏␇, q␇뷏␇, q␇뷏␇, q␇뷏␇);
+Test_N(q␇뷐␇, q␇뷐␇, q␇뷐␇, q␇뷐␇, q␇뷐␇);
+Test_N(q␇뷑␇, q␇뷑␇, q␇뷑␇, q␇뷑␇, q␇뷑␇);
+Test_N(q␇뷒␇, q␇뷒␇, q␇뷒␇, q␇뷒␇, q␇뷒␇);
+Test_N(q␇뷓␇, q␇뷓␇, q␇뷓␇, q␇뷓␇, q␇뷓␇);
+Test_N(q␇뷔␇, q␇뷔␇, q␇뷔␇, q␇뷔␇, q␇뷔␇);
+Test_N(q␇뷕␇, q␇뷕␇, q␇뷕␇, q␇뷕␇, q␇뷕␇);
+Test_N(q␇뷖␇, q␇뷖␇, q␇뷖␇, q␇뷖␇, q␇뷖␇);
+Test_N(q␇뷗␇, q␇뷗␇, q␇뷗␇, q␇뷗␇, q␇뷗␇);
+Test_N(q␇뷘␇, q␇뷘␇, q␇뷘␇, q␇뷘␇, q␇뷘␇);
+Test_N(q␇뷙␇, q␇뷙␇, q␇뷙␇, q␇뷙␇, q␇뷙␇);
+Test_N(q␇뷚␇, q␇뷚␇, q␇뷚␇, q␇뷚␇, q␇뷚␇);
+Test_N(q␇뷛␇, q␇뷛␇, q␇뷛␇, q␇뷛␇, q␇뷛␇);
+Test_N(q␇뷜␇, q␇뷜␇, q␇뷜␇, q␇뷜␇, q␇뷜␇);
+Test_N(q␇뷝␇, q␇뷝␇, q␇뷝␇, q␇뷝␇, q␇뷝␇);
+Test_N(q␇뷞␇, q␇뷞␇, q␇뷞␇, q␇뷞␇, q␇뷞␇);
+Test_N(q␇뷟␇, q␇뷟␇, q␇뷟␇, q␇뷟␇, q␇뷟␇);
+Test_N(q␇뷠␇, q␇뷠␇, q␇뷠␇, q␇뷠␇, q␇뷠␇);
+Test_N(q␇뷡␇, q␇뷡␇, q␇뷡␇, q␇뷡␇, q␇뷡␇);
+Test_N(q␇뷢␇, q␇뷢␇, q␇뷢␇, q␇뷢␇, q␇뷢␇);
+Test_N(q␇뷣␇, q␇뷣␇, q␇뷣␇, q␇뷣␇, q␇뷣␇);
+Test_N(q␇뷤␇, q␇뷤␇, q␇뷤␇, q␇뷤␇, q␇뷤␇);
+Test_N(q␇뷥␇, q␇뷥␇, q␇뷥␇, q␇뷥␇, q␇뷥␇);
+Test_N(q␇뷦␇, q␇뷦␇, q␇뷦␇, q␇뷦␇, q␇뷦␇);
+Test_N(q␇뷧␇, q␇뷧␇, q␇뷧␇, q␇뷧␇, q␇뷧␇);
+Test_N(q␇뷨␇, q␇뷨␇, q␇뷨␇, q␇뷨␇, q␇뷨␇);
+Test_N(q␇뷩␇, q␇뷩␇, q␇뷩␇, q␇뷩␇, q␇뷩␇);
+Test_N(q␇뷪␇, q␇뷪␇, q␇뷪␇, q␇뷪␇, q␇뷪␇);
+Test_N(q␇뷫␇, q␇뷫␇, q␇뷫␇, q␇뷫␇, q␇뷫␇);
+Test_N(q␇뷬␇, q␇뷬␇, q␇뷬␇, q␇뷬␇, q␇뷬␇);
+Test_N(q␇뷭␇, q␇뷭␇, q␇뷭␇, q␇뷭␇, q␇뷭␇);
+Test_N(q␇뷮␇, q␇뷮␇, q␇뷮␇, q␇뷮␇, q␇뷮␇);
+Test_N(q␇뷯␇, q␇뷯␇, q␇뷯␇, q␇뷯␇, q␇뷯␇);
+Test_N(q␇뷰␇, q␇뷰␇, q␇뷰␇, q␇뷰␇, q␇뷰␇);
+Test_N(q␇뷱␇, q␇뷱␇, q␇뷱␇, q␇뷱␇, q␇뷱␇);
+Test_N(q␇뷲␇, q␇뷲␇, q␇뷲␇, q␇뷲␇, q␇뷲␇);
+Test_N(q␇뷳␇, q␇뷳␇, q␇뷳␇, q␇뷳␇, q␇뷳␇);
+Test_N(q␇뷴␇, q␇뷴␇, q␇뷴␇, q␇뷴␇, q␇뷴␇);
+Test_N(q␇뷵␇, q␇뷵␇, q␇뷵␇, q␇뷵␇, q␇뷵␇);
+Test_N(q␇뷶␇, q␇뷶␇, q␇뷶␇, q␇뷶␇, q␇뷶␇);
+Test_N(q␇뷷␇, q␇뷷␇, q␇뷷␇, q␇뷷␇, q␇뷷␇);
+Test_N(q␇뷸␇, q␇뷸␇, q␇뷸␇, q␇뷸␇, q␇뷸␇);
+Test_N(q␇뷹␇, q␇뷹␇, q␇뷹␇, q␇뷹␇, q␇뷹␇);
+Test_N(q␇뷺␇, q␇뷺␇, q␇뷺␇, q␇뷺␇, q␇뷺␇);
+Test_N(q␇뷻␇, q␇뷻␇, q␇뷻␇, q␇뷻␇, q␇뷻␇);
+Test_N(q␇뷼␇, q␇뷼␇, q␇뷼␇, q␇뷼␇, q␇뷼␇);
+Test_N(q␇뷽␇, q␇뷽␇, q␇뷽␇, q␇뷽␇, q␇뷽␇);
+Test_N(q␇뷾␇, q␇뷾␇, q␇뷾␇, q␇뷾␇, q␇뷾␇);
+Test_N(q␇뷿␇, q␇뷿␇, q␇뷿␇, q␇뷿␇, q␇뷿␇);
+Test_N(q␇븀␇, q␇븀␇, q␇븀␇, q␇븀␇, q␇븀␇);
+Test_N(q␇븁␇, q␇븁␇, q␇븁␇, q␇븁␇, q␇븁␇);
+Test_N(q␇븂␇, q␇븂␇, q␇븂␇, q␇븂␇, q␇븂␇);
+Test_N(q␇븃␇, q␇븃␇, q␇븃␇, q␇븃␇, q␇븃␇);
+Test_N(q␇븄␇, q␇븄␇, q␇븄␇, q␇븄␇, q␇븄␇);
+Test_N(q␇븅␇, q␇븅␇, q␇븅␇, q␇븅␇, q␇븅␇);
+Test_N(q␇븆␇, q␇븆␇, q␇븆␇, q␇븆␇, q␇븆␇);
+Test_N(q␇븇␇, q␇븇␇, q␇븇␇, q␇븇␇, q␇븇␇);
+Test_N(q␇븈␇, q␇븈␇, q␇븈␇, q␇븈␇, q␇븈␇);
+Test_N(q␇븉␇, q␇븉␇, q␇븉␇, q␇븉␇, q␇븉␇);
+Test_N(q␇븊␇, q␇븊␇, q␇븊␇, q␇븊␇, q␇븊␇);
+Test_N(q␇븋␇, q␇븋␇, q␇븋␇, q␇븋␇, q␇븋␇);
+Test_N(q␇브␇, q␇브␇, q␇브␇, q␇브␇, q␇브␇);
+Test_N(q␇븍␇, q␇븍␇, q␇븍␇, q␇븍␇, q␇븍␇);
+Test_N(q␇븎␇, q␇븎␇, q␇븎␇, q␇븎␇, q␇븎␇);
+Test_N(q␇븏␇, q␇븏␇, q␇븏␇, q␇븏␇, q␇븏␇);
+Test_N(q␇븐␇, q␇븐␇, q␇븐␇, q␇븐␇, q␇븐␇);
+Test_N(q␇븑␇, q␇븑␇, q␇븑␇, q␇븑␇, q␇븑␇);
+Test_N(q␇븒␇, q␇븒␇, q␇븒␇, q␇븒␇, q␇븒␇);
+Test_N(q␇븓␇, q␇븓␇, q␇븓␇, q␇븓␇, q␇븓␇);
+Test_N(q␇블␇, q␇블␇, q␇블␇, q␇블␇, q␇블␇);
+Test_N(q␇븕␇, q␇븕␇, q␇븕␇, q␇븕␇, q␇븕␇);
+Test_N(q␇븖␇, q␇븖␇, q␇븖␇, q␇븖␇, q␇븖␇);
+Test_N(q␇븗␇, q␇븗␇, q␇븗␇, q␇븗␇, q␇븗␇);
+Test_N(q␇븘␇, q␇븘␇, q␇븘␇, q␇븘␇, q␇븘␇);
+Test_N(q␇븙␇, q␇븙␇, q␇븙␇, q␇븙␇, q␇븙␇);
+Test_N(q␇븚␇, q␇븚␇, q␇븚␇, q␇븚␇, q␇븚␇);
+Test_N(q␇븛␇, q␇븛␇, q␇븛␇, q␇븛␇, q␇븛␇);
+Test_N(q␇븜␇, q␇븜␇, q␇븜␇, q␇븜␇, q␇븜␇);
+Test_N(q␇븝␇, q␇븝␇, q␇븝␇, q␇븝␇, q␇븝␇);
+Test_N(q␇븞␇, q␇븞␇, q␇븞␇, q␇븞␇, q␇븞␇);
+Test_N(q␇븟␇, q␇븟␇, q␇븟␇, q␇븟␇, q␇븟␇);
+Test_N(q␇븠␇, q␇븠␇, q␇븠␇, q␇븠␇, q␇븠␇);
+Test_N(q␇븡␇, q␇븡␇, q␇븡␇, q␇븡␇, q␇븡␇);
+Test_N(q␇븢␇, q␇븢␇, q␇븢␇, q␇븢␇, q␇븢␇);
+Test_N(q␇븣␇, q␇븣␇, q␇븣␇, q␇븣␇, q␇븣␇);
+Test_N(q␇븤␇, q␇븤␇, q␇븤␇, q␇븤␇, q␇븤␇);
+Test_N(q␇븥␇, q␇븥␇, q␇븥␇, q␇븥␇, q␇븥␇);
+Test_N(q␇븦␇, q␇븦␇, q␇븦␇, q␇븦␇, q␇븦␇);
+Test_N(q␇븧␇, q␇븧␇, q␇븧␇, q␇븧␇, q␇븧␇);
+Test_N(q␇븨␇, q␇븨␇, q␇븨␇, q␇븨␇, q␇븨␇);
+Test_N(q␇븩␇, q␇븩␇, q␇븩␇, q␇븩␇, q␇븩␇);
+Test_N(q␇븪␇, q␇븪␇, q␇븪␇, q␇븪␇, q␇븪␇);
+Test_N(q␇븫␇, q␇븫␇, q␇븫␇, q␇븫␇, q␇븫␇);
+Test_N(q␇븬␇, q␇븬␇, q␇븬␇, q␇븬␇, q␇븬␇);
+Test_N(q␇븭␇, q␇븭␇, q␇븭␇, q␇븭␇, q␇븭␇);
+Test_N(q␇븮␇, q␇븮␇, q␇븮␇, q␇븮␇, q␇븮␇);
+Test_N(q␇븯␇, q␇븯␇, q␇븯␇, q␇븯␇, q␇븯␇);
+Test_N(q␇븰␇, q␇븰␇, q␇븰␇, q␇븰␇, q␇븰␇);
+Test_N(q␇븱␇, q␇븱␇, q␇븱␇, q␇븱␇, q␇븱␇);
+Test_N(q␇븲␇, q␇븲␇, q␇븲␇, q␇븲␇, q␇븲␇);
+Test_N(q␇븳␇, q␇븳␇, q␇븳␇, q␇븳␇, q␇븳␇);
+Test_N(q␇븴␇, q␇븴␇, q␇븴␇, q␇븴␇, q␇븴␇);
+Test_N(q␇븵␇, q␇븵␇, q␇븵␇, q␇븵␇, q␇븵␇);
+Test_N(q␇븶␇, q␇븶␇, q␇븶␇, q␇븶␇, q␇븶␇);
+Test_N(q␇븷␇, q␇븷␇, q␇븷␇, q␇븷␇, q␇븷␇);
+Test_N(q␇븸␇, q␇븸␇, q␇븸␇, q␇븸␇, q␇븸␇);
+Test_N(q␇븹␇, q␇븹␇, q␇븹␇, q␇븹␇, q␇븹␇);
+Test_N(q␇븺␇, q␇븺␇, q␇븺␇, q␇븺␇, q␇븺␇);
+Test_N(q␇븻␇, q␇븻␇, q␇븻␇, q␇븻␇, q␇븻␇);
+Test_N(q␇븼␇, q␇븼␇, q␇븼␇, q␇븼␇, q␇븼␇);
+Test_N(q␇븽␇, q␇븽␇, q␇븽␇, q␇븽␇, q␇븽␇);
+Test_N(q␇븾␇, q␇븾␇, q␇븾␇, q␇븾␇, q␇븾␇);
+Test_N(q␇븿␇, q␇븿␇, q␇븿␇, q␇븿␇, q␇븿␇);
+Test_N(q␇빀␇, q␇빀␇, q␇빀␇, q␇빀␇, q␇빀␇);
+Test_N(q␇빁␇, q␇빁␇, q␇빁␇, q␇빁␇, q␇빁␇);
+Test_N(q␇빂␇, q␇빂␇, q␇빂␇, q␇빂␇, q␇빂␇);
+Test_N(q␇빃␇, q␇빃␇, q␇빃␇, q␇빃␇, q␇빃␇);
+Test_N(q␇비␇, q␇비␇, q␇비␇, q␇비␇, q␇비␇);
+Test_N(q␇빅␇, q␇빅␇, q␇빅␇, q␇빅␇, q␇빅␇);
+Test_N(q␇빆␇, q␇빆␇, q␇빆␇, q␇빆␇, q␇빆␇);
+Test_N(q␇빇␇, q␇빇␇, q␇빇␇, q␇빇␇, q␇빇␇);
+Test_N(q␇빈␇, q␇빈␇, q␇빈␇, q␇빈␇, q␇빈␇);
+Test_N(q␇빉␇, q␇빉␇, q␇빉␇, q␇빉␇, q␇빉␇);
+Test_N(q␇빊␇, q␇빊␇, q␇빊␇, q␇빊␇, q␇빊␇);
+Test_N(q␇빋␇, q␇빋␇, q␇빋␇, q␇빋␇, q␇빋␇);
+Test_N(q␇빌␇, q␇빌␇, q␇빌␇, q␇빌␇, q␇빌␇);
+Test_N(q␇빍␇, q␇빍␇, q␇빍␇, q␇빍␇, q␇빍␇);
+Test_N(q␇빎␇, q␇빎␇, q␇빎␇, q␇빎␇, q␇빎␇);
+Test_N(q␇빏␇, q␇빏␇, q␇빏␇, q␇빏␇, q␇빏␇);
+Test_N(q␇빐␇, q␇빐␇, q␇빐␇, q␇빐␇, q␇빐␇);
+Test_N(q␇빑␇, q␇빑␇, q␇빑␇, q␇빑␇, q␇빑␇);
+Test_N(q␇빒␇, q␇빒␇, q␇빒␇, q␇빒␇, q␇빒␇);
+Test_N(q␇빓␇, q␇빓␇, q␇빓␇, q␇빓␇, q␇빓␇);
+Test_N(q␇빔␇, q␇빔␇, q␇빔␇, q␇빔␇, q␇빔␇);
+Test_N(q␇빕␇, q␇빕␇, q␇빕␇, q␇빕␇, q␇빕␇);
+Test_N(q␇빖␇, q␇빖␇, q␇빖␇, q␇빖␇, q␇빖␇);
+Test_N(q␇빗␇, q␇빗␇, q␇빗␇, q␇빗␇, q␇빗␇);
+Test_N(q␇빘␇, q␇빘␇, q␇빘␇, q␇빘␇, q␇빘␇);
+Test_N(q␇빙␇, q␇빙␇, q␇빙␇, q␇빙␇, q␇빙␇);
+Test_N(q␇빚␇, q␇빚␇, q␇빚␇, q␇빚␇, q␇빚␇);
+Test_N(q␇빛␇, q␇빛␇, q␇빛␇, q␇빛␇, q␇빛␇);
+Test_N(q␇빜␇, q␇빜␇, q␇빜␇, q␇빜␇, q␇빜␇);
+Test_N(q␇빝␇, q␇빝␇, q␇빝␇, q␇빝␇, q␇빝␇);
+Test_N(q␇빞␇, q␇빞␇, q␇빞␇, q␇빞␇, q␇빞␇);
+Test_N(q␇빟␇, q␇빟␇, q␇빟␇, q␇빟␇, q␇빟␇);
+Test_N(q␇빠␇, q␇빠␇, q␇빠␇, q␇빠␇, q␇빠␇);
+Test_N(q␇빡␇, q␇빡␇, q␇빡␇, q␇빡␇, q␇빡␇);
+Test_N(q␇빢␇, q␇빢␇, q␇빢␇, q␇빢␇, q␇빢␇);
+Test_N(q␇빣␇, q␇빣␇, q␇빣␇, q␇빣␇, q␇빣␇);
+Test_N(q␇빤␇, q␇빤␇, q␇빤␇, q␇빤␇, q␇빤␇);
+Test_N(q␇빥␇, q␇빥␇, q␇빥␇, q␇빥␇, q␇빥␇);
+Test_N(q␇빦␇, q␇빦␇, q␇빦␇, q␇빦␇, q␇빦␇);
+Test_N(q␇빧␇, q␇빧␇, q␇빧␇, q␇빧␇, q␇빧␇);
+Test_N(q␇빨␇, q␇빨␇, q␇빨␇, q␇빨␇, q␇빨␇);
+Test_N(q␇빩␇, q␇빩␇, q␇빩␇, q␇빩␇, q␇빩␇);
+Test_N(q␇빪␇, q␇빪␇, q␇빪␇, q␇빪␇, q␇빪␇);
+Test_N(q␇빫␇, q␇빫␇, q␇빫␇, q␇빫␇, q␇빫␇);
+Test_N(q␇빬␇, q␇빬␇, q␇빬␇, q␇빬␇, q␇빬␇);
+Test_N(q␇빭␇, q␇빭␇, q␇빭␇, q␇빭␇, q␇빭␇);
+Test_N(q␇빮␇, q␇빮␇, q␇빮␇, q␇빮␇, q␇빮␇);
+Test_N(q␇빯␇, q␇빯␇, q␇빯␇, q␇빯␇, q␇빯␇);
+Test_N(q␇빰␇, q␇빰␇, q␇빰␇, q␇빰␇, q␇빰␇);
+Test_N(q␇빱␇, q␇빱␇, q␇빱␇, q␇빱␇, q␇빱␇);
+Test_N(q␇빲␇, q␇빲␇, q␇빲␇, q␇빲␇, q␇빲␇);
+Test_N(q␇빳␇, q␇빳␇, q␇빳␇, q␇빳␇, q␇빳␇);
+Test_N(q␇빴␇, q␇빴␇, q␇빴␇, q␇빴␇, q␇빴␇);
+Test_N(q␇빵␇, q␇빵␇, q␇빵␇, q␇빵␇, q␇빵␇);
+Test_N(q␇빶␇, q␇빶␇, q␇빶␇, q␇빶␇, q␇빶␇);
+Test_N(q␇빷␇, q␇빷␇, q␇빷␇, q␇빷␇, q␇빷␇);
+Test_N(q␇빸␇, q␇빸␇, q␇빸␇, q␇빸␇, q␇빸␇);
+Test_N(q␇빹␇, q␇빹␇, q␇빹␇, q␇빹␇, q␇빹␇);
+Test_N(q␇빺␇, q␇빺␇, q␇빺␇, q␇빺␇, q␇빺␇);
+Test_N(q␇빻␇, q␇빻␇, q␇빻␇, q␇빻␇, q␇빻␇);
+Test_N(q␇빼␇, q␇빼␇, q␇빼␇, q␇빼␇, q␇빼␇);
+Test_N(q␇빽␇, q␇빽␇, q␇빽␇, q␇빽␇, q␇빽␇);
+Test_N(q␇빾␇, q␇빾␇, q␇빾␇, q␇빾␇, q␇빾␇);
+Test_N(q␇빿␇, q␇빿␇, q␇빿␇, q␇빿␇, q␇빿␇);
+Test_N(q␇뺀␇, q␇뺀␇, q␇뺀␇, q␇뺀␇, q␇뺀␇);
+Test_N(q␇뺁␇, q␇뺁␇, q␇뺁␇, q␇뺁␇, q␇뺁␇);
+Test_N(q␇뺂␇, q␇뺂␇, q␇뺂␇, q␇뺂␇, q␇뺂␇);
+Test_N(q␇뺃␇, q␇뺃␇, q␇뺃␇, q␇뺃␇, q␇뺃␇);
+Test_N(q␇뺄␇, q␇뺄␇, q␇뺄␇, q␇뺄␇, q␇뺄␇);
+Test_N(q␇뺅␇, q␇뺅␇, q␇뺅␇, q␇뺅␇, q␇뺅␇);
+Test_N(q␇뺆␇, q␇뺆␇, q␇뺆␇, q␇뺆␇, q␇뺆␇);
+Test_N(q␇뺇␇, q␇뺇␇, q␇뺇␇, q␇뺇␇, q␇뺇␇);
+Test_N(q␇뺈␇, q␇뺈␇, q␇뺈␇, q␇뺈␇, q␇뺈␇);
+Test_N(q␇뺉␇, q␇뺉␇, q␇뺉␇, q␇뺉␇, q␇뺉␇);
+Test_N(q␇뺊␇, q␇뺊␇, q␇뺊␇, q␇뺊␇, q␇뺊␇);
+Test_N(q␇뺋␇, q␇뺋␇, q␇뺋␇, q␇뺋␇, q␇뺋␇);
+Test_N(q␇뺌␇, q␇뺌␇, q␇뺌␇, q␇뺌␇, q␇뺌␇);
+Test_N(q␇뺍␇, q␇뺍␇, q␇뺍␇, q␇뺍␇, q␇뺍␇);
+Test_N(q␇뺎␇, q␇뺎␇, q␇뺎␇, q␇뺎␇, q␇뺎␇);
+Test_N(q␇뺏␇, q␇뺏␇, q␇뺏␇, q␇뺏␇, q␇뺏␇);
+Test_N(q␇뺐␇, q␇뺐␇, q␇뺐␇, q␇뺐␇, q␇뺐␇);
+Test_N(q␇뺑␇, q␇뺑␇, q␇뺑␇, q␇뺑␇, q␇뺑␇);
+Test_N(q␇뺒␇, q␇뺒␇, q␇뺒␇, q␇뺒␇, q␇뺒␇);
+Test_N(q␇뺓␇, q␇뺓␇, q␇뺓␇, q␇뺓␇, q␇뺓␇);
+Test_N(q␇뺔␇, q␇뺔␇, q␇뺔␇, q␇뺔␇, q␇뺔␇);
+Test_N(q␇뺕␇, q␇뺕␇, q␇뺕␇, q␇뺕␇, q␇뺕␇);
+Test_N(q␇뺖␇, q␇뺖␇, q␇뺖␇, q␇뺖␇, q␇뺖␇);
+Test_N(q␇뺗␇, q␇뺗␇, q␇뺗␇, q␇뺗␇, q␇뺗␇);
+Test_N(q␇뺘␇, q␇뺘␇, q␇뺘␇, q␇뺘␇, q␇뺘␇);
+Test_N(q␇뺙␇, q␇뺙␇, q␇뺙␇, q␇뺙␇, q␇뺙␇);
+Test_N(q␇뺚␇, q␇뺚␇, q␇뺚␇, q␇뺚␇, q␇뺚␇);
+Test_N(q␇뺛␇, q␇뺛␇, q␇뺛␇, q␇뺛␇, q␇뺛␇);
+Test_N(q␇뺜␇, q␇뺜␇, q␇뺜␇, q␇뺜␇, q␇뺜␇);
+Test_N(q␇뺝␇, q␇뺝␇, q␇뺝␇, q␇뺝␇, q␇뺝␇);
+Test_N(q␇뺞␇, q␇뺞␇, q␇뺞␇, q␇뺞␇, q␇뺞␇);
+Test_N(q␇뺟␇, q␇뺟␇, q␇뺟␇, q␇뺟␇, q␇뺟␇);
+Test_N(q␇뺠␇, q␇뺠␇, q␇뺠␇, q␇뺠␇, q␇뺠␇);
+Test_N(q␇뺡␇, q␇뺡␇, q␇뺡␇, q␇뺡␇, q␇뺡␇);
+Test_N(q␇뺢␇, q␇뺢␇, q␇뺢␇, q␇뺢␇, q␇뺢␇);
+Test_N(q␇뺣␇, q␇뺣␇, q␇뺣␇, q␇뺣␇, q␇뺣␇);
+Test_N(q␇뺤␇, q␇뺤␇, q␇뺤␇, q␇뺤␇, q␇뺤␇);
+Test_N(q␇뺥␇, q␇뺥␇, q␇뺥␇, q␇뺥␇, q␇뺥␇);
+Test_N(q␇뺦␇, q␇뺦␇, q␇뺦␇, q␇뺦␇, q␇뺦␇);
+Test_N(q␇뺧␇, q␇뺧␇, q␇뺧␇, q␇뺧␇, q␇뺧␇);
+Test_N(q␇뺨␇, q␇뺨␇, q␇뺨␇, q␇뺨␇, q␇뺨␇);
+Test_N(q␇뺩␇, q␇뺩␇, q␇뺩␇, q␇뺩␇, q␇뺩␇);
+Test_N(q␇뺪␇, q␇뺪␇, q␇뺪␇, q␇뺪␇, q␇뺪␇);
+Test_N(q␇뺫␇, q␇뺫␇, q␇뺫␇, q␇뺫␇, q␇뺫␇);
+Test_N(q␇뺬␇, q␇뺬␇, q␇뺬␇, q␇뺬␇, q␇뺬␇);
+Test_N(q␇뺭␇, q␇뺭␇, q␇뺭␇, q␇뺭␇, q␇뺭␇);
+Test_N(q␇뺮␇, q␇뺮␇, q␇뺮␇, q␇뺮␇, q␇뺮␇);
+Test_N(q␇뺯␇, q␇뺯␇, q␇뺯␇, q␇뺯␇, q␇뺯␇);
+Test_N(q␇뺰␇, q␇뺰␇, q␇뺰␇, q␇뺰␇, q␇뺰␇);
+Test_N(q␇뺱␇, q␇뺱␇, q␇뺱␇, q␇뺱␇, q␇뺱␇);
+Test_N(q␇뺲␇, q␇뺲␇, q␇뺲␇, q␇뺲␇, q␇뺲␇);
+Test_N(q␇뺳␇, q␇뺳␇, q␇뺳␇, q␇뺳␇, q␇뺳␇);
+Test_N(q␇뺴␇, q␇뺴␇, q␇뺴␇, q␇뺴␇, q␇뺴␇);
+Test_N(q␇뺵␇, q␇뺵␇, q␇뺵␇, q␇뺵␇, q␇뺵␇);
+Test_N(q␇뺶␇, q␇뺶␇, q␇뺶␇, q␇뺶␇, q␇뺶␇);
+Test_N(q␇뺷␇, q␇뺷␇, q␇뺷␇, q␇뺷␇, q␇뺷␇);
+Test_N(q␇뺸␇, q␇뺸␇, q␇뺸␇, q␇뺸␇, q␇뺸␇);
+Test_N(q␇뺹␇, q␇뺹␇, q␇뺹␇, q␇뺹␇, q␇뺹␇);
+Test_N(q␇뺺␇, q␇뺺␇, q␇뺺␇, q␇뺺␇, q␇뺺␇);
+Test_N(q␇뺻␇, q␇뺻␇, q␇뺻␇, q␇뺻␇, q␇뺻␇);
+Test_N(q␇뺼␇, q␇뺼␇, q␇뺼␇, q␇뺼␇, q␇뺼␇);
+Test_N(q␇뺽␇, q␇뺽␇, q␇뺽␇, q␇뺽␇, q␇뺽␇);
+Test_N(q␇뺾␇, q␇뺾␇, q␇뺾␇, q␇뺾␇, q␇뺾␇);
+Test_N(q␇뺿␇, q␇뺿␇, q␇뺿␇, q␇뺿␇, q␇뺿␇);
+Test_N(q␇뻀␇, q␇뻀␇, q␇뻀␇, q␇뻀␇, q␇뻀␇);
+Test_N(q␇뻁␇, q␇뻁␇, q␇뻁␇, q␇뻁␇, q␇뻁␇);
+Test_N(q␇뻂␇, q␇뻂␇, q␇뻂␇, q␇뻂␇, q␇뻂␇);
+Test_N(q␇뻃␇, q␇뻃␇, q␇뻃␇, q␇뻃␇, q␇뻃␇);
+Test_N(q␇뻄␇, q␇뻄␇, q␇뻄␇, q␇뻄␇, q␇뻄␇);
+Test_N(q␇뻅␇, q␇뻅␇, q␇뻅␇, q␇뻅␇, q␇뻅␇);
+Test_N(q␇뻆␇, q␇뻆␇, q␇뻆␇, q␇뻆␇, q␇뻆␇);
+Test_N(q␇뻇␇, q␇뻇␇, q␇뻇␇, q␇뻇␇, q␇뻇␇);
+Test_N(q␇뻈␇, q␇뻈␇, q␇뻈␇, q␇뻈␇, q␇뻈␇);
+Test_N(q␇뻉␇, q␇뻉␇, q␇뻉␇, q␇뻉␇, q␇뻉␇);
+Test_N(q␇뻊␇, q␇뻊␇, q␇뻊␇, q␇뻊␇, q␇뻊␇);
+Test_N(q␇뻋␇, q␇뻋␇, q␇뻋␇, q␇뻋␇, q␇뻋␇);
+Test_N(q␇뻌␇, q␇뻌␇, q␇뻌␇, q␇뻌␇, q␇뻌␇);
+Test_N(q␇뻍␇, q␇뻍␇, q␇뻍␇, q␇뻍␇, q␇뻍␇);
+Test_N(q␇뻎␇, q␇뻎␇, q␇뻎␇, q␇뻎␇, q␇뻎␇);
+Test_N(q␇뻏␇, q␇뻏␇, q␇뻏␇, q␇뻏␇, q␇뻏␇);
+Test_N(q␇뻐␇, q␇뻐␇, q␇뻐␇, q␇뻐␇, q␇뻐␇);
+Test_N(q␇뻑␇, q␇뻑␇, q␇뻑␇, q␇뻑␇, q␇뻑␇);
+Test_N(q␇뻒␇, q␇뻒␇, q␇뻒␇, q␇뻒␇, q␇뻒␇);
+Test_N(q␇뻓␇, q␇뻓␇, q␇뻓␇, q␇뻓␇, q␇뻓␇);
+Test_N(q␇뻔␇, q␇뻔␇, q␇뻔␇, q␇뻔␇, q␇뻔␇);
+Test_N(q␇뻕␇, q␇뻕␇, q␇뻕␇, q␇뻕␇, q␇뻕␇);
+Test_N(q␇뻖␇, q␇뻖␇, q␇뻖␇, q␇뻖␇, q␇뻖␇);
+Test_N(q␇뻗␇, q␇뻗␇, q␇뻗␇, q␇뻗␇, q␇뻗␇);
+Test_N(q␇뻘␇, q␇뻘␇, q␇뻘␇, q␇뻘␇, q␇뻘␇);
+Test_N(q␇뻙␇, q␇뻙␇, q␇뻙␇, q␇뻙␇, q␇뻙␇);
+Test_N(q␇뻚␇, q␇뻚␇, q␇뻚␇, q␇뻚␇, q␇뻚␇);
+Test_N(q␇뻛␇, q␇뻛␇, q␇뻛␇, q␇뻛␇, q␇뻛␇);
+Test_N(q␇뻜␇, q␇뻜␇, q␇뻜␇, q␇뻜␇, q␇뻜␇);
+Test_N(q␇뻝␇, q␇뻝␇, q␇뻝␇, q␇뻝␇, q␇뻝␇);
+Test_N(q␇뻞␇, q␇뻞␇, q␇뻞␇, q␇뻞␇, q␇뻞␇);
+Test_N(q␇뻟␇, q␇뻟␇, q␇뻟␇, q␇뻟␇, q␇뻟␇);
+Test_N(q␇뻠␇, q␇뻠␇, q␇뻠␇, q␇뻠␇, q␇뻠␇);
+Test_N(q␇뻡␇, q␇뻡␇, q␇뻡␇, q␇뻡␇, q␇뻡␇);
+Test_N(q␇뻢␇, q␇뻢␇, q␇뻢␇, q␇뻢␇, q␇뻢␇);
+Test_N(q␇뻣␇, q␇뻣␇, q␇뻣␇, q␇뻣␇, q␇뻣␇);
+Test_N(q␇뻤␇, q␇뻤␇, q␇뻤␇, q␇뻤␇, q␇뻤␇);
+Test_N(q␇뻥␇, q␇뻥␇, q␇뻥␇, q␇뻥␇, q␇뻥␇);
+Test_N(q␇뻦␇, q␇뻦␇, q␇뻦␇, q␇뻦␇, q␇뻦␇);
+Test_N(q␇뻧␇, q␇뻧␇, q␇뻧␇, q␇뻧␇, q␇뻧␇);
+Test_N(q␇뻨␇, q␇뻨␇, q␇뻨␇, q␇뻨␇, q␇뻨␇);
+Test_N(q␇뻩␇, q␇뻩␇, q␇뻩␇, q␇뻩␇, q␇뻩␇);
+Test_N(q␇뻪␇, q␇뻪␇, q␇뻪␇, q␇뻪␇, q␇뻪␇);
+Test_N(q␇뻫␇, q␇뻫␇, q␇뻫␇, q␇뻫␇, q␇뻫␇);
+Test_N(q␇뻬␇, q␇뻬␇, q␇뻬␇, q␇뻬␇, q␇뻬␇);
+Test_N(q␇뻭␇, q␇뻭␇, q␇뻭␇, q␇뻭␇, q␇뻭␇);
+Test_N(q␇뻮␇, q␇뻮␇, q␇뻮␇, q␇뻮␇, q␇뻮␇);
+Test_N(q␇뻯␇, q␇뻯␇, q␇뻯␇, q␇뻯␇, q␇뻯␇);
+Test_N(q␇뻰␇, q␇뻰␇, q␇뻰␇, q␇뻰␇, q␇뻰␇);
+Test_N(q␇뻱␇, q␇뻱␇, q␇뻱␇, q␇뻱␇, q␇뻱␇);
+Test_N(q␇뻲␇, q␇뻲␇, q␇뻲␇, q␇뻲␇, q␇뻲␇);
+Test_N(q␇뻳␇, q␇뻳␇, q␇뻳␇, q␇뻳␇, q␇뻳␇);
+Test_N(q␇뻴␇, q␇뻴␇, q␇뻴␇, q␇뻴␇, q␇뻴␇);
+Test_N(q␇뻵␇, q␇뻵␇, q␇뻵␇, q␇뻵␇, q␇뻵␇);
+Test_N(q␇뻶␇, q␇뻶␇, q␇뻶␇, q␇뻶␇, q␇뻶␇);
+Test_N(q␇뻷␇, q␇뻷␇, q␇뻷␇, q␇뻷␇, q␇뻷␇);
+Test_N(q␇뻸␇, q␇뻸␇, q␇뻸␇, q␇뻸␇, q␇뻸␇);
+Test_N(q␇뻹␇, q␇뻹␇, q␇뻹␇, q␇뻹␇, q␇뻹␇);
+Test_N(q␇뻺␇, q␇뻺␇, q␇뻺␇, q␇뻺␇, q␇뻺␇);
+Test_N(q␇뻻␇, q␇뻻␇, q␇뻻␇, q␇뻻␇, q␇뻻␇);
+Test_N(q␇뻼␇, q␇뻼␇, q␇뻼␇, q␇뻼␇, q␇뻼␇);
+Test_N(q␇뻽␇, q␇뻽␇, q␇뻽␇, q␇뻽␇, q␇뻽␇);
+Test_N(q␇뻾␇, q␇뻾␇, q␇뻾␇, q␇뻾␇, q␇뻾␇);
+Test_N(q␇뻿␇, q␇뻿␇, q␇뻿␇, q␇뻿␇, q␇뻿␇);
+Test_N(q␇뼀␇, q␇뼀␇, q␇뼀␇, q␇뼀␇, q␇뼀␇);
+Test_N(q␇뼁␇, q␇뼁␇, q␇뼁␇, q␇뼁␇, q␇뼁␇);
+Test_N(q␇뼂␇, q␇뼂␇, q␇뼂␇, q␇뼂␇, q␇뼂␇);
+Test_N(q␇뼃␇, q␇뼃␇, q␇뼃␇, q␇뼃␇, q␇뼃␇);
+Test_N(q␇뼄␇, q␇뼄␇, q␇뼄␇, q␇뼄␇, q␇뼄␇);
+Test_N(q␇뼅␇, q␇뼅␇, q␇뼅␇, q␇뼅␇, q␇뼅␇);
+Test_N(q␇뼆␇, q␇뼆␇, q␇뼆␇, q␇뼆␇, q␇뼆␇);
+Test_N(q␇뼇␇, q␇뼇␇, q␇뼇␇, q␇뼇␇, q␇뼇␇);
+Test_N(q␇뼈␇, q␇뼈␇, q␇뼈␇, q␇뼈␇, q␇뼈␇);
+Test_N(q␇뼉␇, q␇뼉␇, q␇뼉␇, q␇뼉␇, q␇뼉␇);
+Test_N(q␇뼊␇, q␇뼊␇, q␇뼊␇, q␇뼊␇, q␇뼊␇);
+Test_N(q␇뼋␇, q␇뼋␇, q␇뼋␇, q␇뼋␇, q␇뼋␇);
+Test_N(q␇뼌␇, q␇뼌␇, q␇뼌␇, q␇뼌␇, q␇뼌␇);
+Test_N(q␇뼍␇, q␇뼍␇, q␇뼍␇, q␇뼍␇, q␇뼍␇);
+Test_N(q␇뼎␇, q␇뼎␇, q␇뼎␇, q␇뼎␇, q␇뼎␇);
+Test_N(q␇뼏␇, q␇뼏␇, q␇뼏␇, q␇뼏␇, q␇뼏␇);
+Test_N(q␇뼐␇, q␇뼐␇, q␇뼐␇, q␇뼐␇, q␇뼐␇);
+Test_N(q␇뼑␇, q␇뼑␇, q␇뼑␇, q␇뼑␇, q␇뼑␇);
+Test_N(q␇뼒␇, q␇뼒␇, q␇뼒␇, q␇뼒␇, q␇뼒␇);
+Test_N(q␇뼓␇, q␇뼓␇, q␇뼓␇, q␇뼓␇, q␇뼓␇);
+Test_N(q␇뼔␇, q␇뼔␇, q␇뼔␇, q␇뼔␇, q␇뼔␇);
+Test_N(q␇뼕␇, q␇뼕␇, q␇뼕␇, q␇뼕␇, q␇뼕␇);
+Test_N(q␇뼖␇, q␇뼖␇, q␇뼖␇, q␇뼖␇, q␇뼖␇);
+Test_N(q␇뼗␇, q␇뼗␇, q␇뼗␇, q␇뼗␇, q␇뼗␇);
+Test_N(q␇뼘␇, q␇뼘␇, q␇뼘␇, q␇뼘␇, q␇뼘␇);
+Test_N(q␇뼙␇, q␇뼙␇, q␇뼙␇, q␇뼙␇, q␇뼙␇);
+Test_N(q␇뼚␇, q␇뼚␇, q␇뼚␇, q␇뼚␇, q␇뼚␇);
+Test_N(q␇뼛␇, q␇뼛␇, q␇뼛␇, q␇뼛␇, q␇뼛␇);
+Test_N(q␇뼜␇, q␇뼜␇, q␇뼜␇, q␇뼜␇, q␇뼜␇);
+Test_N(q␇뼝␇, q␇뼝␇, q␇뼝␇, q␇뼝␇, q␇뼝␇);
+Test_N(q␇뼞␇, q␇뼞␇, q␇뼞␇, q␇뼞␇, q␇뼞␇);
+Test_N(q␇뼟␇, q␇뼟␇, q␇뼟␇, q␇뼟␇, q␇뼟␇);
+Test_N(q␇뼠␇, q␇뼠␇, q␇뼠␇, q␇뼠␇, q␇뼠␇);
+Test_N(q␇뼡␇, q␇뼡␇, q␇뼡␇, q␇뼡␇, q␇뼡␇);
+Test_N(q␇뼢␇, q␇뼢␇, q␇뼢␇, q␇뼢␇, q␇뼢␇);
+Test_N(q␇뼣␇, q␇뼣␇, q␇뼣␇, q␇뼣␇, q␇뼣␇);
+Test_N(q␇뼤␇, q␇뼤␇, q␇뼤␇, q␇뼤␇, q␇뼤␇);
+Test_N(q␇뼥␇, q␇뼥␇, q␇뼥␇, q␇뼥␇, q␇뼥␇);
+Test_N(q␇뼦␇, q␇뼦␇, q␇뼦␇, q␇뼦␇, q␇뼦␇);
+Test_N(q␇뼧␇, q␇뼧␇, q␇뼧␇, q␇뼧␇, q␇뼧␇);
+Test_N(q␇뼨␇, q␇뼨␇, q␇뼨␇, q␇뼨␇, q␇뼨␇);
+Test_N(q␇뼩␇, q␇뼩␇, q␇뼩␇, q␇뼩␇, q␇뼩␇);
+Test_N(q␇뼪␇, q␇뼪␇, q␇뼪␇, q␇뼪␇, q␇뼪␇);
+Test_N(q␇뼫␇, q␇뼫␇, q␇뼫␇, q␇뼫␇, q␇뼫␇);
+Test_N(q␇뼬␇, q␇뼬␇, q␇뼬␇, q␇뼬␇, q␇뼬␇);
+Test_N(q␇뼭␇, q␇뼭␇, q␇뼭␇, q␇뼭␇, q␇뼭␇);
+Test_N(q␇뼮␇, q␇뼮␇, q␇뼮␇, q␇뼮␇, q␇뼮␇);
+Test_N(q␇뼯␇, q␇뼯␇, q␇뼯␇, q␇뼯␇, q␇뼯␇);
+Test_N(q␇뼰␇, q␇뼰␇, q␇뼰␇, q␇뼰␇, q␇뼰␇);
+Test_N(q␇뼱␇, q␇뼱␇, q␇뼱␇, q␇뼱␇, q␇뼱␇);
+Test_N(q␇뼲␇, q␇뼲␇, q␇뼲␇, q␇뼲␇, q␇뼲␇);
+Test_N(q␇뼳␇, q␇뼳␇, q␇뼳␇, q␇뼳␇, q␇뼳␇);
+Test_N(q␇뼴␇, q␇뼴␇, q␇뼴␇, q␇뼴␇, q␇뼴␇);
+Test_N(q␇뼵␇, q␇뼵␇, q␇뼵␇, q␇뼵␇, q␇뼵␇);
+Test_N(q␇뼶␇, q␇뼶␇, q␇뼶␇, q␇뼶␇, q␇뼶␇);
+Test_N(q␇뼷␇, q␇뼷␇, q␇뼷␇, q␇뼷␇, q␇뼷␇);
+Test_N(q␇뼸␇, q␇뼸␇, q␇뼸␇, q␇뼸␇, q␇뼸␇);
+Test_N(q␇뼹␇, q␇뼹␇, q␇뼹␇, q␇뼹␇, q␇뼹␇);
+Test_N(q␇뼺␇, q␇뼺␇, q␇뼺␇, q␇뼺␇, q␇뼺␇);
+Test_N(q␇뼻␇, q␇뼻␇, q␇뼻␇, q␇뼻␇, q␇뼻␇);
+Test_N(q␇뼼␇, q␇뼼␇, q␇뼼␇, q␇뼼␇, q␇뼼␇);
+Test_N(q␇뼽␇, q␇뼽␇, q␇뼽␇, q␇뼽␇, q␇뼽␇);
+Test_N(q␇뼾␇, q␇뼾␇, q␇뼾␇, q␇뼾␇, q␇뼾␇);
+Test_N(q␇뼿␇, q␇뼿␇, q␇뼿␇, q␇뼿␇, q␇뼿␇);
+Test_N(q␇뽀␇, q␇뽀␇, q␇뽀␇, q␇뽀␇, q␇뽀␇);
+Test_N(q␇뽁␇, q␇뽁␇, q␇뽁␇, q␇뽁␇, q␇뽁␇);
+Test_N(q␇뽂␇, q␇뽂␇, q␇뽂␇, q␇뽂␇, q␇뽂␇);
+Test_N(q␇뽃␇, q␇뽃␇, q␇뽃␇, q␇뽃␇, q␇뽃␇);
+Test_N(q␇뽄␇, q␇뽄␇, q␇뽄␇, q␇뽄␇, q␇뽄␇);
+Test_N(q␇뽅␇, q␇뽅␇, q␇뽅␇, q␇뽅␇, q␇뽅␇);
+Test_N(q␇뽆␇, q␇뽆␇, q␇뽆␇, q␇뽆␇, q␇뽆␇);
+Test_N(q␇뽇␇, q␇뽇␇, q␇뽇␇, q␇뽇␇, q␇뽇␇);
+Test_N(q␇뽈␇, q␇뽈␇, q␇뽈␇, q␇뽈␇, q␇뽈␇);
+Test_N(q␇뽉␇, q␇뽉␇, q␇뽉␇, q␇뽉␇, q␇뽉␇);
+Test_N(q␇뽊␇, q␇뽊␇, q␇뽊␇, q␇뽊␇, q␇뽊␇);
+Test_N(q␇뽋␇, q␇뽋␇, q␇뽋␇, q␇뽋␇, q␇뽋␇);
+Test_N(q␇뽌␇, q␇뽌␇, q␇뽌␇, q␇뽌␇, q␇뽌␇);
+Test_N(q␇뽍␇, q␇뽍␇, q␇뽍␇, q␇뽍␇, q␇뽍␇);
+Test_N(q␇뽎␇, q␇뽎␇, q␇뽎␇, q␇뽎␇, q␇뽎␇);
+Test_N(q␇뽏␇, q␇뽏␇, q␇뽏␇, q␇뽏␇, q␇뽏␇);
+Test_N(q␇뽐␇, q␇뽐␇, q␇뽐␇, q␇뽐␇, q␇뽐␇);
+Test_N(q␇뽑␇, q␇뽑␇, q␇뽑␇, q␇뽑␇, q␇뽑␇);
+Test_N(q␇뽒␇, q␇뽒␇, q␇뽒␇, q␇뽒␇, q␇뽒␇);
+Test_N(q␇뽓␇, q␇뽓␇, q␇뽓␇, q␇뽓␇, q␇뽓␇);
+Test_N(q␇뽔␇, q␇뽔␇, q␇뽔␇, q␇뽔␇, q␇뽔␇);
+Test_N(q␇뽕␇, q␇뽕␇, q␇뽕␇, q␇뽕␇, q␇뽕␇);
+Test_N(q␇뽖␇, q␇뽖␇, q␇뽖␇, q␇뽖␇, q␇뽖␇);
+Test_N(q␇뽗␇, q␇뽗␇, q␇뽗␇, q␇뽗␇, q␇뽗␇);
+Test_N(q␇뽘␇, q␇뽘␇, q␇뽘␇, q␇뽘␇, q␇뽘␇);
+Test_N(q␇뽙␇, q␇뽙␇, q␇뽙␇, q␇뽙␇, q␇뽙␇);
+Test_N(q␇뽚␇, q␇뽚␇, q␇뽚␇, q␇뽚␇, q␇뽚␇);
+Test_N(q␇뽛␇, q␇뽛␇, q␇뽛␇, q␇뽛␇, q␇뽛␇);
+Test_N(q␇뽜␇, q␇뽜␇, q␇뽜␇, q␇뽜␇, q␇뽜␇);
+Test_N(q␇뽝␇, q␇뽝␇, q␇뽝␇, q␇뽝␇, q␇뽝␇);
+Test_N(q␇뽞␇, q␇뽞␇, q␇뽞␇, q␇뽞␇, q␇뽞␇);
+Test_N(q␇뽟␇, q␇뽟␇, q␇뽟␇, q␇뽟␇, q␇뽟␇);
+Test_N(q␇뽠␇, q␇뽠␇, q␇뽠␇, q␇뽠␇, q␇뽠␇);
+Test_N(q␇뽡␇, q␇뽡␇, q␇뽡␇, q␇뽡␇, q␇뽡␇);
+Test_N(q␇뽢␇, q␇뽢␇, q␇뽢␇, q␇뽢␇, q␇뽢␇);
+Test_N(q␇뽣␇, q␇뽣␇, q␇뽣␇, q␇뽣␇, q␇뽣␇);
+Test_N(q␇뽤␇, q␇뽤␇, q␇뽤␇, q␇뽤␇, q␇뽤␇);
+Test_N(q␇뽥␇, q␇뽥␇, q␇뽥␇, q␇뽥␇, q␇뽥␇);
+Test_N(q␇뽦␇, q␇뽦␇, q␇뽦␇, q␇뽦␇, q␇뽦␇);
+Test_N(q␇뽧␇, q␇뽧␇, q␇뽧␇, q␇뽧␇, q␇뽧␇);
+Test_N(q␇뽨␇, q␇뽨␇, q␇뽨␇, q␇뽨␇, q␇뽨␇);
+Test_N(q␇뽩␇, q␇뽩␇, q␇뽩␇, q␇뽩␇, q␇뽩␇);
+Test_N(q␇뽪␇, q␇뽪␇, q␇뽪␇, q␇뽪␇, q␇뽪␇);
+Test_N(q␇뽫␇, q␇뽫␇, q␇뽫␇, q␇뽫␇, q␇뽫␇);
+Test_N(q␇뽬␇, q␇뽬␇, q␇뽬␇, q␇뽬␇, q␇뽬␇);
+Test_N(q␇뽭␇, q␇뽭␇, q␇뽭␇, q␇뽭␇, q␇뽭␇);
+Test_N(q␇뽮␇, q␇뽮␇, q␇뽮␇, q␇뽮␇, q␇뽮␇);
+Test_N(q␇뽯␇, q␇뽯␇, q␇뽯␇, q␇뽯␇, q␇뽯␇);
+Test_N(q␇뽰␇, q␇뽰␇, q␇뽰␇, q␇뽰␇, q␇뽰␇);
+Test_N(q␇뽱␇, q␇뽱␇, q␇뽱␇, q␇뽱␇, q␇뽱␇);
+Test_N(q␇뽲␇, q␇뽲␇, q␇뽲␇, q␇뽲␇, q␇뽲␇);
+Test_N(q␇뽳␇, q␇뽳␇, q␇뽳␇, q␇뽳␇, q␇뽳␇);
+Test_N(q␇뽴␇, q␇뽴␇, q␇뽴␇, q␇뽴␇, q␇뽴␇);
+Test_N(q␇뽵␇, q␇뽵␇, q␇뽵␇, q␇뽵␇, q␇뽵␇);
+Test_N(q␇뽶␇, q␇뽶␇, q␇뽶␇, q␇뽶␇, q␇뽶␇);
+Test_N(q␇뽷␇, q␇뽷␇, q␇뽷␇, q␇뽷␇, q␇뽷␇);
+Test_N(q␇뽸␇, q␇뽸␇, q␇뽸␇, q␇뽸␇, q␇뽸␇);
+Test_N(q␇뽹␇, q␇뽹␇, q␇뽹␇, q␇뽹␇, q␇뽹␇);
+Test_N(q␇뽺␇, q␇뽺␇, q␇뽺␇, q␇뽺␇, q␇뽺␇);
+Test_N(q␇뽻␇, q␇뽻␇, q␇뽻␇, q␇뽻␇, q␇뽻␇);
+Test_N(q␇뽼␇, q␇뽼␇, q␇뽼␇, q␇뽼␇, q␇뽼␇);
+Test_N(q␇뽽␇, q␇뽽␇, q␇뽽␇, q␇뽽␇, q␇뽽␇);
+Test_N(q␇뽾␇, q␇뽾␇, q␇뽾␇, q␇뽾␇, q␇뽾␇);
+Test_N(q␇뽿␇, q␇뽿␇, q␇뽿␇, q␇뽿␇, q␇뽿␇);
+Test_N(q␇뾀␇, q␇뾀␇, q␇뾀␇, q␇뾀␇, q␇뾀␇);
+Test_N(q␇뾁␇, q␇뾁␇, q␇뾁␇, q␇뾁␇, q␇뾁␇);
+Test_N(q␇뾂␇, q␇뾂␇, q␇뾂␇, q␇뾂␇, q␇뾂␇);
+Test_N(q␇뾃␇, q␇뾃␇, q␇뾃␇, q␇뾃␇, q␇뾃␇);
+Test_N(q␇뾄␇, q␇뾄␇, q␇뾄␇, q␇뾄␇, q␇뾄␇);
+Test_N(q␇뾅␇, q␇뾅␇, q␇뾅␇, q␇뾅␇, q␇뾅␇);
+Test_N(q␇뾆␇, q␇뾆␇, q␇뾆␇, q␇뾆␇, q␇뾆␇);
+Test_N(q␇뾇␇, q␇뾇␇, q␇뾇␇, q␇뾇␇, q␇뾇␇);
+Test_N(q␇뾈␇, q␇뾈␇, q␇뾈␇, q␇뾈␇, q␇뾈␇);
+Test_N(q␇뾉␇, q␇뾉␇, q␇뾉␇, q␇뾉␇, q␇뾉␇);
+Test_N(q␇뾊␇, q␇뾊␇, q␇뾊␇, q␇뾊␇, q␇뾊␇);
+Test_N(q␇뾋␇, q␇뾋␇, q␇뾋␇, q␇뾋␇, q␇뾋␇);
+Test_N(q␇뾌␇, q␇뾌␇, q␇뾌␇, q␇뾌␇, q␇뾌␇);
+Test_N(q␇뾍␇, q␇뾍␇, q␇뾍␇, q␇뾍␇, q␇뾍␇);
+Test_N(q␇뾎␇, q␇뾎␇, q␇뾎␇, q␇뾎␇, q␇뾎␇);
+Test_N(q␇뾏␇, q␇뾏␇, q␇뾏␇, q␇뾏␇, q␇뾏␇);
+Test_N(q␇뾐␇, q␇뾐␇, q␇뾐␇, q␇뾐␇, q␇뾐␇);
+Test_N(q␇뾑␇, q␇뾑␇, q␇뾑␇, q␇뾑␇, q␇뾑␇);
+Test_N(q␇뾒␇, q␇뾒␇, q␇뾒␇, q␇뾒␇, q␇뾒␇);
+Test_N(q␇뾓␇, q␇뾓␇, q␇뾓␇, q␇뾓␇, q␇뾓␇);
+Test_N(q␇뾔␇, q␇뾔␇, q␇뾔␇, q␇뾔␇, q␇뾔␇);
+Test_N(q␇뾕␇, q␇뾕␇, q␇뾕␇, q␇뾕␇, q␇뾕␇);
+Test_N(q␇뾖␇, q␇뾖␇, q␇뾖␇, q␇뾖␇, q␇뾖␇);
+Test_N(q␇뾗␇, q␇뾗␇, q␇뾗␇, q␇뾗␇, q␇뾗␇);
+Test_N(q␇뾘␇, q␇뾘␇, q␇뾘␇, q␇뾘␇, q␇뾘␇);
+Test_N(q␇뾙␇, q␇뾙␇, q␇뾙␇, q␇뾙␇, q␇뾙␇);
+Test_N(q␇뾚␇, q␇뾚␇, q␇뾚␇, q␇뾚␇, q␇뾚␇);
+Test_N(q␇뾛␇, q␇뾛␇, q␇뾛␇, q␇뾛␇, q␇뾛␇);
+Test_N(q␇뾜␇, q␇뾜␇, q␇뾜␇, q␇뾜␇, q␇뾜␇);
+Test_N(q␇뾝␇, q␇뾝␇, q␇뾝␇, q␇뾝␇, q␇뾝␇);
+Test_N(q␇뾞␇, q␇뾞␇, q␇뾞␇, q␇뾞␇, q␇뾞␇);
+Test_N(q␇뾟␇, q␇뾟␇, q␇뾟␇, q␇뾟␇, q␇뾟␇);
+Test_N(q␇뾠␇, q␇뾠␇, q␇뾠␇, q␇뾠␇, q␇뾠␇);
+Test_N(q␇뾡␇, q␇뾡␇, q␇뾡␇, q␇뾡␇, q␇뾡␇);
+Test_N(q␇뾢␇, q␇뾢␇, q␇뾢␇, q␇뾢␇, q␇뾢␇);
+Test_N(q␇뾣␇, q␇뾣␇, q␇뾣␇, q␇뾣␇, q␇뾣␇);
+Test_N(q␇뾤␇, q␇뾤␇, q␇뾤␇, q␇뾤␇, q␇뾤␇);
+Test_N(q␇뾥␇, q␇뾥␇, q␇뾥␇, q␇뾥␇, q␇뾥␇);
+Test_N(q␇뾦␇, q␇뾦␇, q␇뾦␇, q␇뾦␇, q␇뾦␇);
+Test_N(q␇뾧␇, q␇뾧␇, q␇뾧␇, q␇뾧␇, q␇뾧␇);
+Test_N(q␇뾨␇, q␇뾨␇, q␇뾨␇, q␇뾨␇, q␇뾨␇);
+Test_N(q␇뾩␇, q␇뾩␇, q␇뾩␇, q␇뾩␇, q␇뾩␇);
+Test_N(q␇뾪␇, q␇뾪␇, q␇뾪␇, q␇뾪␇, q␇뾪␇);
+Test_N(q␇뾫␇, q␇뾫␇, q␇뾫␇, q␇뾫␇, q␇뾫␇);
+Test_N(q␇뾬␇, q␇뾬␇, q␇뾬␇, q␇뾬␇, q␇뾬␇);
+Test_N(q␇뾭␇, q␇뾭␇, q␇뾭␇, q␇뾭␇, q␇뾭␇);
+Test_N(q␇뾮␇, q␇뾮␇, q␇뾮␇, q␇뾮␇, q␇뾮␇);
+Test_N(q␇뾯␇, q␇뾯␇, q␇뾯␇, q␇뾯␇, q␇뾯␇);
+Test_N(q␇뾰␇, q␇뾰␇, q␇뾰␇, q␇뾰␇, q␇뾰␇);
+Test_N(q␇뾱␇, q␇뾱␇, q␇뾱␇, q␇뾱␇, q␇뾱␇);
+Test_N(q␇뾲␇, q␇뾲␇, q␇뾲␇, q␇뾲␇, q␇뾲␇);
+Test_N(q␇뾳␇, q␇뾳␇, q␇뾳␇, q␇뾳␇, q␇뾳␇);
+Test_N(q␇뾴␇, q␇뾴␇, q␇뾴␇, q␇뾴␇, q␇뾴␇);
+Test_N(q␇뾵␇, q␇뾵␇, q␇뾵␇, q␇뾵␇, q␇뾵␇);
+Test_N(q␇뾶␇, q␇뾶␇, q␇뾶␇, q␇뾶␇, q␇뾶␇);
+Test_N(q␇뾷␇, q␇뾷␇, q␇뾷␇, q␇뾷␇, q␇뾷␇);
+Test_N(q␇뾸␇, q␇뾸␇, q␇뾸␇, q␇뾸␇, q␇뾸␇);
+Test_N(q␇뾹␇, q␇뾹␇, q␇뾹␇, q␇뾹␇, q␇뾹␇);
+Test_N(q␇뾺␇, q␇뾺␇, q␇뾺␇, q␇뾺␇, q␇뾺␇);
+Test_N(q␇뾻␇, q␇뾻␇, q␇뾻␇, q␇뾻␇, q␇뾻␇);
+Test_N(q␇뾼␇, q␇뾼␇, q␇뾼␇, q␇뾼␇, q␇뾼␇);
+Test_N(q␇뾽␇, q␇뾽␇, q␇뾽␇, q␇뾽␇, q␇뾽␇);
+Test_N(q␇뾾␇, q␇뾾␇, q␇뾾␇, q␇뾾␇, q␇뾾␇);
+Test_N(q␇뾿␇, q␇뾿␇, q␇뾿␇, q␇뾿␇, q␇뾿␇);
+Test_N(q␇뿀␇, q␇뿀␇, q␇뿀␇, q␇뿀␇, q␇뿀␇);
+Test_N(q␇뿁␇, q␇뿁␇, q␇뿁␇, q␇뿁␇, q␇뿁␇);
+Test_N(q␇뿂␇, q␇뿂␇, q␇뿂␇, q␇뿂␇, q␇뿂␇);
+Test_N(q␇뿃␇, q␇뿃␇, q␇뿃␇, q␇뿃␇, q␇뿃␇);
+Test_N(q␇뿄␇, q␇뿄␇, q␇뿄␇, q␇뿄␇, q␇뿄␇);
+Test_N(q␇뿅␇, q␇뿅␇, q␇뿅␇, q␇뿅␇, q␇뿅␇);
+Test_N(q␇뿆␇, q␇뿆␇, q␇뿆␇, q␇뿆␇, q␇뿆␇);
+Test_N(q␇뿇␇, q␇뿇␇, q␇뿇␇, q␇뿇␇, q␇뿇␇);
+Test_N(q␇뿈␇, q␇뿈␇, q␇뿈␇, q␇뿈␇, q␇뿈␇);
+Test_N(q␇뿉␇, q␇뿉␇, q␇뿉␇, q␇뿉␇, q␇뿉␇);
+Test_N(q␇뿊␇, q␇뿊␇, q␇뿊␇, q␇뿊␇, q␇뿊␇);
+Test_N(q␇뿋␇, q␇뿋␇, q␇뿋␇, q␇뿋␇, q␇뿋␇);
+Test_N(q␇뿌␇, q␇뿌␇, q␇뿌␇, q␇뿌␇, q␇뿌␇);
+Test_N(q␇뿍␇, q␇뿍␇, q␇뿍␇, q␇뿍␇, q␇뿍␇);
+Test_N(q␇뿎␇, q␇뿎␇, q␇뿎␇, q␇뿎␇, q␇뿎␇);
+Test_N(q␇뿏␇, q␇뿏␇, q␇뿏␇, q␇뿏␇, q␇뿏␇);
+Test_N(q␇뿐␇, q␇뿐␇, q␇뿐␇, q␇뿐␇, q␇뿐␇);
+Test_N(q␇뿑␇, q␇뿑␇, q␇뿑␇, q␇뿑␇, q␇뿑␇);
+Test_N(q␇뿒␇, q␇뿒␇, q␇뿒␇, q␇뿒␇, q␇뿒␇);
+Test_N(q␇뿓␇, q␇뿓␇, q␇뿓␇, q␇뿓␇, q␇뿓␇);
+Test_N(q␇뿔␇, q␇뿔␇, q␇뿔␇, q␇뿔␇, q␇뿔␇);
+Test_N(q␇뿕␇, q␇뿕␇, q␇뿕␇, q␇뿕␇, q␇뿕␇);
+Test_N(q␇뿖␇, q␇뿖␇, q␇뿖␇, q␇뿖␇, q␇뿖␇);
+Test_N(q␇뿗␇, q␇뿗␇, q␇뿗␇, q␇뿗␇, q␇뿗␇);
+Test_N(q␇뿘␇, q␇뿘␇, q␇뿘␇, q␇뿘␇, q␇뿘␇);
+Test_N(q␇뿙␇, q␇뿙␇, q␇뿙␇, q␇뿙␇, q␇뿙␇);
+Test_N(q␇뿚␇, q␇뿚␇, q␇뿚␇, q␇뿚␇, q␇뿚␇);
+Test_N(q␇뿛␇, q␇뿛␇, q␇뿛␇, q␇뿛␇, q␇뿛␇);
+Test_N(q␇뿜␇, q␇뿜␇, q␇뿜␇, q␇뿜␇, q␇뿜␇);
+Test_N(q␇뿝␇, q␇뿝␇, q␇뿝␇, q␇뿝␇, q␇뿝␇);
+Test_N(q␇뿞␇, q␇뿞␇, q␇뿞␇, q␇뿞␇, q␇뿞␇);
+Test_N(q␇뿟␇, q␇뿟␇, q␇뿟␇, q␇뿟␇, q␇뿟␇);
+Test_N(q␇뿠␇, q␇뿠␇, q␇뿠␇, q␇뿠␇, q␇뿠␇);
+Test_N(q␇뿡␇, q␇뿡␇, q␇뿡␇, q␇뿡␇, q␇뿡␇);
+Test_N(q␇뿢␇, q␇뿢␇, q␇뿢␇, q␇뿢␇, q␇뿢␇);
+Test_N(q␇뿣␇, q␇뿣␇, q␇뿣␇, q␇뿣␇, q␇뿣␇);
+Test_N(q␇뿤␇, q␇뿤␇, q␇뿤␇, q␇뿤␇, q␇뿤␇);
+Test_N(q␇뿥␇, q␇뿥␇, q␇뿥␇, q␇뿥␇, q␇뿥␇);
+Test_N(q␇뿦␇, q␇뿦␇, q␇뿦␇, q␇뿦␇, q␇뿦␇);
+Test_N(q␇뿧␇, q␇뿧␇, q␇뿧␇, q␇뿧␇, q␇뿧␇);
+Test_N(q␇뿨␇, q␇뿨␇, q␇뿨␇, q␇뿨␇, q␇뿨␇);
+Test_N(q␇뿩␇, q␇뿩␇, q␇뿩␇, q␇뿩␇, q␇뿩␇);
+Test_N(q␇뿪␇, q␇뿪␇, q␇뿪␇, q␇뿪␇, q␇뿪␇);
+Test_N(q␇뿫␇, q␇뿫␇, q␇뿫␇, q␇뿫␇, q␇뿫␇);
+Test_N(q␇뿬␇, q␇뿬␇, q␇뿬␇, q␇뿬␇, q␇뿬␇);
+Test_N(q␇뿭␇, q␇뿭␇, q␇뿭␇, q␇뿭␇, q␇뿭␇);
+Test_N(q␇뿮␇, q␇뿮␇, q␇뿮␇, q␇뿮␇, q␇뿮␇);
+Test_N(q␇뿯␇, q␇뿯␇, q␇뿯␇, q␇뿯␇, q␇뿯␇);
+Test_N(q␇뿰␇, q␇뿰␇, q␇뿰␇, q␇뿰␇, q␇뿰␇);
+Test_N(q␇뿱␇, q␇뿱␇, q␇뿱␇, q␇뿱␇, q␇뿱␇);
+Test_N(q␇뿲␇, q␇뿲␇, q␇뿲␇, q␇뿲␇, q␇뿲␇);
+Test_N(q␇뿳␇, q␇뿳␇, q␇뿳␇, q␇뿳␇, q␇뿳␇);
+Test_N(q␇뿴␇, q␇뿴␇, q␇뿴␇, q␇뿴␇, q␇뿴␇);
+Test_N(q␇뿵␇, q␇뿵␇, q␇뿵␇, q␇뿵␇, q␇뿵␇);
+Test_N(q␇뿶␇, q␇뿶␇, q␇뿶␇, q␇뿶␇, q␇뿶␇);
+Test_N(q␇뿷␇, q␇뿷␇, q␇뿷␇, q␇뿷␇, q␇뿷␇);
+Test_N(q␇뿸␇, q␇뿸␇, q␇뿸␇, q␇뿸␇, q␇뿸␇);
+Test_N(q␇뿹␇, q␇뿹␇, q␇뿹␇, q␇뿹␇, q␇뿹␇);
+Test_N(q␇뿺␇, q␇뿺␇, q␇뿺␇, q␇뿺␇, q␇뿺␇);
+Test_N(q␇뿻␇, q␇뿻␇, q␇뿻␇, q␇뿻␇, q␇뿻␇);
+Test_N(q␇뿼␇, q␇뿼␇, q␇뿼␇, q␇뿼␇, q␇뿼␇);
+Test_N(q␇뿽␇, q␇뿽␇, q␇뿽␇, q␇뿽␇, q␇뿽␇);
+Test_N(q␇뿾␇, q␇뿾␇, q␇뿾␇, q␇뿾␇, q␇뿾␇);
+Test_N(q␇뿿␇, q␇뿿␇, q␇뿿␇, q␇뿿␇, q␇뿿␇);
+Test_N(q␇쀀␇, q␇쀀␇, q␇쀀␇, q␇쀀␇, q␇쀀␇);
+Test_N(q␇쀁␇, q␇쀁␇, q␇쀁␇, q␇쀁␇, q␇쀁␇);
+Test_N(q␇쀂␇, q␇쀂␇, q␇쀂␇, q␇쀂␇, q␇쀂␇);
+Test_N(q␇쀃␇, q␇쀃␇, q␇쀃␇, q␇쀃␇, q␇쀃␇);
+Test_N(q␇쀄␇, q␇쀄␇, q␇쀄␇, q␇쀄␇, q␇쀄␇);
+Test_N(q␇쀅␇, q␇쀅␇, q␇쀅␇, q␇쀅␇, q␇쀅␇);
+Test_N(q␇쀆␇, q␇쀆␇, q␇쀆␇, q␇쀆␇, q␇쀆␇);
+Test_N(q␇쀇␇, q␇쀇␇, q␇쀇␇, q␇쀇␇, q␇쀇␇);
+Test_N(q␇쀈␇, q␇쀈␇, q␇쀈␇, q␇쀈␇, q␇쀈␇);
+Test_N(q␇쀉␇, q␇쀉␇, q␇쀉␇, q␇쀉␇, q␇쀉␇);
+Test_N(q␇쀊␇, q␇쀊␇, q␇쀊␇, q␇쀊␇, q␇쀊␇);
+Test_N(q␇쀋␇, q␇쀋␇, q␇쀋␇, q␇쀋␇, q␇쀋␇);
+Test_N(q␇쀌␇, q␇쀌␇, q␇쀌␇, q␇쀌␇, q␇쀌␇);
+Test_N(q␇쀍␇, q␇쀍␇, q␇쀍␇, q␇쀍␇, q␇쀍␇);
+Test_N(q␇쀎␇, q␇쀎␇, q␇쀎␇, q␇쀎␇, q␇쀎␇);
+Test_N(q␇쀏␇, q␇쀏␇, q␇쀏␇, q␇쀏␇, q␇쀏␇);
+Test_N(q␇쀐␇, q␇쀐␇, q␇쀐␇, q␇쀐␇, q␇쀐␇);
+Test_N(q␇쀑␇, q␇쀑␇, q␇쀑␇, q␇쀑␇, q␇쀑␇);
+Test_N(q␇쀒␇, q␇쀒␇, q␇쀒␇, q␇쀒␇, q␇쀒␇);
+Test_N(q␇쀓␇, q␇쀓␇, q␇쀓␇, q␇쀓␇, q␇쀓␇);
+Test_N(q␇쀔␇, q␇쀔␇, q␇쀔␇, q␇쀔␇, q␇쀔␇);
+Test_N(q␇쀕␇, q␇쀕␇, q␇쀕␇, q␇쀕␇, q␇쀕␇);
+Test_N(q␇쀖␇, q␇쀖␇, q␇쀖␇, q␇쀖␇, q␇쀖␇);
+Test_N(q␇쀗␇, q␇쀗␇, q␇쀗␇, q␇쀗␇, q␇쀗␇);
+Test_N(q␇쀘␇, q␇쀘␇, q␇쀘␇, q␇쀘␇, q␇쀘␇);
+Test_N(q␇쀙␇, q␇쀙␇, q␇쀙␇, q␇쀙␇, q␇쀙␇);
+Test_N(q␇쀚␇, q␇쀚␇, q␇쀚␇, q␇쀚␇, q␇쀚␇);
+Test_N(q␇쀛␇, q␇쀛␇, q␇쀛␇, q␇쀛␇, q␇쀛␇);
+Test_N(q␇쀜␇, q␇쀜␇, q␇쀜␇, q␇쀜␇, q␇쀜␇);
+Test_N(q␇쀝␇, q␇쀝␇, q␇쀝␇, q␇쀝␇, q␇쀝␇);
+Test_N(q␇쀞␇, q␇쀞␇, q␇쀞␇, q␇쀞␇, q␇쀞␇);
+Test_N(q␇쀟␇, q␇쀟␇, q␇쀟␇, q␇쀟␇, q␇쀟␇);
+Test_N(q␇쀠␇, q␇쀠␇, q␇쀠␇, q␇쀠␇, q␇쀠␇);
+Test_N(q␇쀡␇, q␇쀡␇, q␇쀡␇, q␇쀡␇, q␇쀡␇);
+Test_N(q␇쀢␇, q␇쀢␇, q␇쀢␇, q␇쀢␇, q␇쀢␇);
+Test_N(q␇쀣␇, q␇쀣␇, q␇쀣␇, q␇쀣␇, q␇쀣␇);
+Test_N(q␇쀤␇, q␇쀤␇, q␇쀤␇, q␇쀤␇, q␇쀤␇);
+Test_N(q␇쀥␇, q␇쀥␇, q␇쀥␇, q␇쀥␇, q␇쀥␇);
+Test_N(q␇쀦␇, q␇쀦␇, q␇쀦␇, q␇쀦␇, q␇쀦␇);
+Test_N(q␇쀧␇, q␇쀧␇, q␇쀧␇, q␇쀧␇, q␇쀧␇);
+Test_N(q␇쀨␇, q␇쀨␇, q␇쀨␇, q␇쀨␇, q␇쀨␇);
+Test_N(q␇쀩␇, q␇쀩␇, q␇쀩␇, q␇쀩␇, q␇쀩␇);
+Test_N(q␇쀪␇, q␇쀪␇, q␇쀪␇, q␇쀪␇, q␇쀪␇);
+Test_N(q␇쀫␇, q␇쀫␇, q␇쀫␇, q␇쀫␇, q␇쀫␇);
+Test_N(q␇쀬␇, q␇쀬␇, q␇쀬␇, q␇쀬␇, q␇쀬␇);
+Test_N(q␇쀭␇, q␇쀭␇, q␇쀭␇, q␇쀭␇, q␇쀭␇);
+Test_N(q␇쀮␇, q␇쀮␇, q␇쀮␇, q␇쀮␇, q␇쀮␇);
+Test_N(q␇쀯␇, q␇쀯␇, q␇쀯␇, q␇쀯␇, q␇쀯␇);
+Test_N(q␇쀰␇, q␇쀰␇, q␇쀰␇, q␇쀰␇, q␇쀰␇);
+Test_N(q␇쀱␇, q␇쀱␇, q␇쀱␇, q␇쀱␇, q␇쀱␇);
+Test_N(q␇쀲␇, q␇쀲␇, q␇쀲␇, q␇쀲␇, q␇쀲␇);
+Test_N(q␇쀳␇, q␇쀳␇, q␇쀳␇, q␇쀳␇, q␇쀳␇);
+Test_N(q␇쀴␇, q␇쀴␇, q␇쀴␇, q␇쀴␇, q␇쀴␇);
+Test_N(q␇쀵␇, q␇쀵␇, q␇쀵␇, q␇쀵␇, q␇쀵␇);
+Test_N(q␇쀶␇, q␇쀶␇, q␇쀶␇, q␇쀶␇, q␇쀶␇);
+Test_N(q␇쀷␇, q␇쀷␇, q␇쀷␇, q␇쀷␇, q␇쀷␇);
+Test_N(q␇쀸␇, q␇쀸␇, q␇쀸␇, q␇쀸␇, q␇쀸␇);
+Test_N(q␇쀹␇, q␇쀹␇, q␇쀹␇, q␇쀹␇, q␇쀹␇);
+Test_N(q␇쀺␇, q␇쀺␇, q␇쀺␇, q␇쀺␇, q␇쀺␇);
+Test_N(q␇쀻␇, q␇쀻␇, q␇쀻␇, q␇쀻␇, q␇쀻␇);
+Test_N(q␇쀼␇, q␇쀼␇, q␇쀼␇, q␇쀼␇, q␇쀼␇);
+Test_N(q␇쀽␇, q␇쀽␇, q␇쀽␇, q␇쀽␇, q␇쀽␇);
+Test_N(q␇쀾␇, q␇쀾␇, q␇쀾␇, q␇쀾␇, q␇쀾␇);
+Test_N(q␇쀿␇, q␇쀿␇, q␇쀿␇, q␇쀿␇, q␇쀿␇);
+Test_N(q␇쁀␇, q␇쁀␇, q␇쁀␇, q␇쁀␇, q␇쁀␇);
+Test_N(q␇쁁␇, q␇쁁␇, q␇쁁␇, q␇쁁␇, q␇쁁␇);
+Test_N(q␇쁂␇, q␇쁂␇, q␇쁂␇, q␇쁂␇, q␇쁂␇);
+Test_N(q␇쁃␇, q␇쁃␇, q␇쁃␇, q␇쁃␇, q␇쁃␇);
+Test_N(q␇쁄␇, q␇쁄␇, q␇쁄␇, q␇쁄␇, q␇쁄␇);
+Test_N(q␇쁅␇, q␇쁅␇, q␇쁅␇, q␇쁅␇, q␇쁅␇);
+Test_N(q␇쁆␇, q␇쁆␇, q␇쁆␇, q␇쁆␇, q␇쁆␇);
+Test_N(q␇쁇␇, q␇쁇␇, q␇쁇␇, q␇쁇␇, q␇쁇␇);
+Test_N(q␇쁈␇, q␇쁈␇, q␇쁈␇, q␇쁈␇, q␇쁈␇);
+Test_N(q␇쁉␇, q␇쁉␇, q␇쁉␇, q␇쁉␇, q␇쁉␇);
+Test_N(q␇쁊␇, q␇쁊␇, q␇쁊␇, q␇쁊␇, q␇쁊␇);
+Test_N(q␇쁋␇, q␇쁋␇, q␇쁋␇, q␇쁋␇, q␇쁋␇);
+Test_N(q␇쁌␇, q␇쁌␇, q␇쁌␇, q␇쁌␇, q␇쁌␇);
+Test_N(q␇쁍␇, q␇쁍␇, q␇쁍␇, q␇쁍␇, q␇쁍␇);
+Test_N(q␇쁎␇, q␇쁎␇, q␇쁎␇, q␇쁎␇, q␇쁎␇);
+Test_N(q␇쁏␇, q␇쁏␇, q␇쁏␇, q␇쁏␇, q␇쁏␇);
+Test_N(q␇쁐␇, q␇쁐␇, q␇쁐␇, q␇쁐␇, q␇쁐␇);
+Test_N(q␇쁑␇, q␇쁑␇, q␇쁑␇, q␇쁑␇, q␇쁑␇);
+Test_N(q␇쁒␇, q␇쁒␇, q␇쁒␇, q␇쁒␇, q␇쁒␇);
+Test_N(q␇쁓␇, q␇쁓␇, q␇쁓␇, q␇쁓␇, q␇쁓␇);
+Test_N(q␇쁔␇, q␇쁔␇, q␇쁔␇, q␇쁔␇, q␇쁔␇);
+Test_N(q␇쁕␇, q␇쁕␇, q␇쁕␇, q␇쁕␇, q␇쁕␇);
+Test_N(q␇쁖␇, q␇쁖␇, q␇쁖␇, q␇쁖␇, q␇쁖␇);
+Test_N(q␇쁗␇, q␇쁗␇, q␇쁗␇, q␇쁗␇, q␇쁗␇);
+Test_N(q␇쁘␇, q␇쁘␇, q␇쁘␇, q␇쁘␇, q␇쁘␇);
+Test_N(q␇쁙␇, q␇쁙␇, q␇쁙␇, q␇쁙␇, q␇쁙␇);
+Test_N(q␇쁚␇, q␇쁚␇, q␇쁚␇, q␇쁚␇, q␇쁚␇);
+Test_N(q␇쁛␇, q␇쁛␇, q␇쁛␇, q␇쁛␇, q␇쁛␇);
+Test_N(q␇쁜␇, q␇쁜␇, q␇쁜␇, q␇쁜␇, q␇쁜␇);
+Test_N(q␇쁝␇, q␇쁝␇, q␇쁝␇, q␇쁝␇, q␇쁝␇);
+Test_N(q␇쁞␇, q␇쁞␇, q␇쁞␇, q␇쁞␇, q␇쁞␇);
+Test_N(q␇쁟␇, q␇쁟␇, q␇쁟␇, q␇쁟␇, q␇쁟␇);
+Test_N(q␇쁠␇, q␇쁠␇, q␇쁠␇, q␇쁠␇, q␇쁠␇);
+Test_N(q␇쁡␇, q␇쁡␇, q␇쁡␇, q␇쁡␇, q␇쁡␇);
+Test_N(q␇쁢␇, q␇쁢␇, q␇쁢␇, q␇쁢␇, q␇쁢␇);
+Test_N(q␇쁣␇, q␇쁣␇, q␇쁣␇, q␇쁣␇, q␇쁣␇);
+Test_N(q␇쁤␇, q␇쁤␇, q␇쁤␇, q␇쁤␇, q␇쁤␇);
+Test_N(q␇쁥␇, q␇쁥␇, q␇쁥␇, q␇쁥␇, q␇쁥␇);
+Test_N(q␇쁦␇, q␇쁦␇, q␇쁦␇, q␇쁦␇, q␇쁦␇);
+Test_N(q␇쁧␇, q␇쁧␇, q␇쁧␇, q␇쁧␇, q␇쁧␇);
+Test_N(q␇쁨␇, q␇쁨␇, q␇쁨␇, q␇쁨␇, q␇쁨␇);
+Test_N(q␇쁩␇, q␇쁩␇, q␇쁩␇, q␇쁩␇, q␇쁩␇);
+Test_N(q␇쁪␇, q␇쁪␇, q␇쁪␇, q␇쁪␇, q␇쁪␇);
+Test_N(q␇쁫␇, q␇쁫␇, q␇쁫␇, q␇쁫␇, q␇쁫␇);
+Test_N(q␇쁬␇, q␇쁬␇, q␇쁬␇, q␇쁬␇, q␇쁬␇);
+Test_N(q␇쁭␇, q␇쁭␇, q␇쁭␇, q␇쁭␇, q␇쁭␇);
+Test_N(q␇쁮␇, q␇쁮␇, q␇쁮␇, q␇쁮␇, q␇쁮␇);
+Test_N(q␇쁯␇, q␇쁯␇, q␇쁯␇, q␇쁯␇, q␇쁯␇);
+Test_N(q␇쁰␇, q␇쁰␇, q␇쁰␇, q␇쁰␇, q␇쁰␇);
+Test_N(q␇쁱␇, q␇쁱␇, q␇쁱␇, q␇쁱␇, q␇쁱␇);
+Test_N(q␇쁲␇, q␇쁲␇, q␇쁲␇, q␇쁲␇, q␇쁲␇);
+Test_N(q␇쁳␇, q␇쁳␇, q␇쁳␇, q␇쁳␇, q␇쁳␇);
+Test_N(q␇쁴␇, q␇쁴␇, q␇쁴␇, q␇쁴␇, q␇쁴␇);
+Test_N(q␇쁵␇, q␇쁵␇, q␇쁵␇, q␇쁵␇, q␇쁵␇);
+Test_N(q␇쁶␇, q␇쁶␇, q␇쁶␇, q␇쁶␇, q␇쁶␇);
+Test_N(q␇쁷␇, q␇쁷␇, q␇쁷␇, q␇쁷␇, q␇쁷␇);
+Test_N(q␇쁸␇, q␇쁸␇, q␇쁸␇, q␇쁸␇, q␇쁸␇);
+Test_N(q␇쁹␇, q␇쁹␇, q␇쁹␇, q␇쁹␇, q␇쁹␇);
+Test_N(q␇쁺␇, q␇쁺␇, q␇쁺␇, q␇쁺␇, q␇쁺␇);
+Test_N(q␇쁻␇, q␇쁻␇, q␇쁻␇, q␇쁻␇, q␇쁻␇);
+Test_N(q␇쁼␇, q␇쁼␇, q␇쁼␇, q␇쁼␇, q␇쁼␇);
+Test_N(q␇쁽␇, q␇쁽␇, q␇쁽␇, q␇쁽␇, q␇쁽␇);
+Test_N(q␇쁾␇, q␇쁾␇, q␇쁾␇, q␇쁾␇, q␇쁾␇);
+Test_N(q␇쁿␇, q␇쁿␇, q␇쁿␇, q␇쁿␇, q␇쁿␇);
+Test_N(q␇삀␇, q␇삀␇, q␇삀␇, q␇삀␇, q␇삀␇);
+Test_N(q␇삁␇, q␇삁␇, q␇삁␇, q␇삁␇, q␇삁␇);
+Test_N(q␇삂␇, q␇삂␇, q␇삂␇, q␇삂␇, q␇삂␇);
+Test_N(q␇삃␇, q␇삃␇, q␇삃␇, q␇삃␇, q␇삃␇);
+Test_N(q␇삄␇, q␇삄␇, q␇삄␇, q␇삄␇, q␇삄␇);
+Test_N(q␇삅␇, q␇삅␇, q␇삅␇, q␇삅␇, q␇삅␇);
+Test_N(q␇삆␇, q␇삆␇, q␇삆␇, q␇삆␇, q␇삆␇);
+Test_N(q␇삇␇, q␇삇␇, q␇삇␇, q␇삇␇, q␇삇␇);
+Test_N(q␇삈␇, q␇삈␇, q␇삈␇, q␇삈␇, q␇삈␇);
+Test_N(q␇삉␇, q␇삉␇, q␇삉␇, q␇삉␇, q␇삉␇);
+Test_N(q␇삊␇, q␇삊␇, q␇삊␇, q␇삊␇, q␇삊␇);
+Test_N(q␇삋␇, q␇삋␇, q␇삋␇, q␇삋␇, q␇삋␇);
+Test_N(q␇삌␇, q␇삌␇, q␇삌␇, q␇삌␇, q␇삌␇);
+Test_N(q␇삍␇, q␇삍␇, q␇삍␇, q␇삍␇, q␇삍␇);
+Test_N(q␇삎␇, q␇삎␇, q␇삎␇, q␇삎␇, q␇삎␇);
+Test_N(q␇삏␇, q␇삏␇, q␇삏␇, q␇삏␇, q␇삏␇);
+Test_N(q␇삐␇, q␇삐␇, q␇삐␇, q␇삐␇, q␇삐␇);
+Test_N(q␇삑␇, q␇삑␇, q␇삑␇, q␇삑␇, q␇삑␇);
+Test_N(q␇삒␇, q␇삒␇, q␇삒␇, q␇삒␇, q␇삒␇);
+Test_N(q␇삓␇, q␇삓␇, q␇삓␇, q␇삓␇, q␇삓␇);
+Test_N(q␇삔␇, q␇삔␇, q␇삔␇, q␇삔␇, q␇삔␇);
+Test_N(q␇삕␇, q␇삕␇, q␇삕␇, q␇삕␇, q␇삕␇);
+Test_N(q␇삖␇, q␇삖␇, q␇삖␇, q␇삖␇, q␇삖␇);
+Test_N(q␇삗␇, q␇삗␇, q␇삗␇, q␇삗␇, q␇삗␇);
+Test_N(q␇삘␇, q␇삘␇, q␇삘␇, q␇삘␇, q␇삘␇);
+Test_N(q␇삙␇, q␇삙␇, q␇삙␇, q␇삙␇, q␇삙␇);
+Test_N(q␇삚␇, q␇삚␇, q␇삚␇, q␇삚␇, q␇삚␇);
+Test_N(q␇삛␇, q␇삛␇, q␇삛␇, q␇삛␇, q␇삛␇);
+Test_N(q␇삜␇, q␇삜␇, q␇삜␇, q␇삜␇, q␇삜␇);
+Test_N(q␇삝␇, q␇삝␇, q␇삝␇, q␇삝␇, q␇삝␇);
+Test_N(q␇삞␇, q␇삞␇, q␇삞␇, q␇삞␇, q␇삞␇);
+Test_N(q␇삟␇, q␇삟␇, q␇삟␇, q␇삟␇, q␇삟␇);
+Test_N(q␇삠␇, q␇삠␇, q␇삠␇, q␇삠␇, q␇삠␇);
+Test_N(q␇삡␇, q␇삡␇, q␇삡␇, q␇삡␇, q␇삡␇);
+Test_N(q␇삢␇, q␇삢␇, q␇삢␇, q␇삢␇, q␇삢␇);
+Test_N(q␇삣␇, q␇삣␇, q␇삣␇, q␇삣␇, q␇삣␇);
+Test_N(q␇삤␇, q␇삤␇, q␇삤␇, q␇삤␇, q␇삤␇);
+Test_N(q␇삥␇, q␇삥␇, q␇삥␇, q␇삥␇, q␇삥␇);
+Test_N(q␇삦␇, q␇삦␇, q␇삦␇, q␇삦␇, q␇삦␇);
+Test_N(q␇삧␇, q␇삧␇, q␇삧␇, q␇삧␇, q␇삧␇);
+Test_N(q␇삨␇, q␇삨␇, q␇삨␇, q␇삨␇, q␇삨␇);
+Test_N(q␇삩␇, q␇삩␇, q␇삩␇, q␇삩␇, q␇삩␇);
+Test_N(q␇삪␇, q␇삪␇, q␇삪␇, q␇삪␇, q␇삪␇);
+Test_N(q␇삫␇, q␇삫␇, q␇삫␇, q␇삫␇, q␇삫␇);
+Test_N(q␇사␇, q␇사␇, q␇사␇, q␇사␇, q␇사␇);
+Test_N(q␇삭␇, q␇삭␇, q␇삭␇, q␇삭␇, q␇삭␇);
+Test_N(q␇삮␇, q␇삮␇, q␇삮␇, q␇삮␇, q␇삮␇);
+Test_N(q␇삯␇, q␇삯␇, q␇삯␇, q␇삯␇, q␇삯␇);
+Test_N(q␇산␇, q␇산␇, q␇산␇, q␇산␇, q␇산␇);
+Test_N(q␇삱␇, q␇삱␇, q␇삱␇, q␇삱␇, q␇삱␇);
+Test_N(q␇삲␇, q␇삲␇, q␇삲␇, q␇삲␇, q␇삲␇);
+Test_N(q␇삳␇, q␇삳␇, q␇삳␇, q␇삳␇, q␇삳␇);
+Test_N(q␇살␇, q␇살␇, q␇살␇, q␇살␇, q␇살␇);
+Test_N(q␇삵␇, q␇삵␇, q␇삵␇, q␇삵␇, q␇삵␇);
+Test_N(q␇삶␇, q␇삶␇, q␇삶␇, q␇삶␇, q␇삶␇);
+Test_N(q␇삷␇, q␇삷␇, q␇삷␇, q␇삷␇, q␇삷␇);
+Test_N(q␇삸␇, q␇삸␇, q␇삸␇, q␇삸␇, q␇삸␇);
+Test_N(q␇삹␇, q␇삹␇, q␇삹␇, q␇삹␇, q␇삹␇);
+Test_N(q␇삺␇, q␇삺␇, q␇삺␇, q␇삺␇, q␇삺␇);
+Test_N(q␇삻␇, q␇삻␇, q␇삻␇, q␇삻␇, q␇삻␇);
+Test_N(q␇삼␇, q␇삼␇, q␇삼␇, q␇삼␇, q␇삼␇);
+Test_N(q␇삽␇, q␇삽␇, q␇삽␇, q␇삽␇, q␇삽␇);
+Test_N(q␇삾␇, q␇삾␇, q␇삾␇, q␇삾␇, q␇삾␇);
+Test_N(q␇삿␇, q␇삿␇, q␇삿␇, q␇삿␇, q␇삿␇);
+Test_N(q␇샀␇, q␇샀␇, q␇샀␇, q␇샀␇, q␇샀␇);
+Test_N(q␇상␇, q␇상␇, q␇상␇, q␇상␇, q␇상␇);
+Test_N(q␇샂␇, q␇샂␇, q␇샂␇, q␇샂␇, q␇샂␇);
+Test_N(q␇샃␇, q␇샃␇, q␇샃␇, q␇샃␇, q␇샃␇);
+Test_N(q␇샄␇, q␇샄␇, q␇샄␇, q␇샄␇, q␇샄␇);
+Test_N(q␇샅␇, q␇샅␇, q␇샅␇, q␇샅␇, q␇샅␇);
+Test_N(q␇샆␇, q␇샆␇, q␇샆␇, q␇샆␇, q␇샆␇);
+Test_N(q␇샇␇, q␇샇␇, q␇샇␇, q␇샇␇, q␇샇␇);
+Test_N(q␇새␇, q␇새␇, q␇새␇, q␇새␇, q␇새␇);
+Test_N(q␇색␇, q␇색␇, q␇색␇, q␇색␇, q␇색␇);
+Test_N(q␇샊␇, q␇샊␇, q␇샊␇, q␇샊␇, q␇샊␇);
+Test_N(q␇샋␇, q␇샋␇, q␇샋␇, q␇샋␇, q␇샋␇);
+Test_N(q␇샌␇, q␇샌␇, q␇샌␇, q␇샌␇, q␇샌␇);
+Test_N(q␇샍␇, q␇샍␇, q␇샍␇, q␇샍␇, q␇샍␇);
+Test_N(q␇샎␇, q␇샎␇, q␇샎␇, q␇샎␇, q␇샎␇);
+Test_N(q␇샏␇, q␇샏␇, q␇샏␇, q␇샏␇, q␇샏␇);
+Test_N(q␇샐␇, q␇샐␇, q␇샐␇, q␇샐␇, q␇샐␇);
+Test_N(q␇샑␇, q␇샑␇, q␇샑␇, q␇샑␇, q␇샑␇);
+Test_N(q␇샒␇, q␇샒␇, q␇샒␇, q␇샒␇, q␇샒␇);
+Test_N(q␇샓␇, q␇샓␇, q␇샓␇, q␇샓␇, q␇샓␇);
+Test_N(q␇샔␇, q␇샔␇, q␇샔␇, q␇샔␇, q␇샔␇);
+Test_N(q␇샕␇, q␇샕␇, q␇샕␇, q␇샕␇, q␇샕␇);
+Test_N(q␇샖␇, q␇샖␇, q␇샖␇, q␇샖␇, q␇샖␇);
+Test_N(q␇샗␇, q␇샗␇, q␇샗␇, q␇샗␇, q␇샗␇);
+Test_N(q␇샘␇, q␇샘␇, q␇샘␇, q␇샘␇, q␇샘␇);
+Test_N(q␇샙␇, q␇샙␇, q␇샙␇, q␇샙␇, q␇샙␇);
+Test_N(q␇샚␇, q␇샚␇, q␇샚␇, q␇샚␇, q␇샚␇);
+Test_N(q␇샛␇, q␇샛␇, q␇샛␇, q␇샛␇, q␇샛␇);
+Test_N(q␇샜␇, q␇샜␇, q␇샜␇, q␇샜␇, q␇샜␇);
+Test_N(q␇생␇, q␇생␇, q␇생␇, q␇생␇, q␇생␇);
+Test_N(q␇샞␇, q␇샞␇, q␇샞␇, q␇샞␇, q␇샞␇);
+Test_N(q␇샟␇, q␇샟␇, q␇샟␇, q␇샟␇, q␇샟␇);
+Test_N(q␇샠␇, q␇샠␇, q␇샠␇, q␇샠␇, q␇샠␇);
+Test_N(q␇샡␇, q␇샡␇, q␇샡␇, q␇샡␇, q␇샡␇);
+Test_N(q␇샢␇, q␇샢␇, q␇샢␇, q␇샢␇, q␇샢␇);
+Test_N(q␇샣␇, q␇샣␇, q␇샣␇, q␇샣␇, q␇샣␇);
+Test_N(q␇샤␇, q␇샤␇, q␇샤␇, q␇샤␇, q␇샤␇);
+Test_N(q␇샥␇, q␇샥␇, q␇샥␇, q␇샥␇, q␇샥␇);
+Test_N(q␇샦␇, q␇샦␇, q␇샦␇, q␇샦␇, q␇샦␇);
+Test_N(q␇샧␇, q␇샧␇, q␇샧␇, q␇샧␇, q␇샧␇);
+Test_N(q␇샨␇, q␇샨␇, q␇샨␇, q␇샨␇, q␇샨␇);
+Test_N(q␇샩␇, q␇샩␇, q␇샩␇, q␇샩␇, q␇샩␇);
+Test_N(q␇샪␇, q␇샪␇, q␇샪␇, q␇샪␇, q␇샪␇);
+Test_N(q␇샫␇, q␇샫␇, q␇샫␇, q␇샫␇, q␇샫␇);
+Test_N(q␇샬␇, q␇샬␇, q␇샬␇, q␇샬␇, q␇샬␇);
+Test_N(q␇샭␇, q␇샭␇, q␇샭␇, q␇샭␇, q␇샭␇);
+Test_N(q␇샮␇, q␇샮␇, q␇샮␇, q␇샮␇, q␇샮␇);
+Test_N(q␇샯␇, q␇샯␇, q␇샯␇, q␇샯␇, q␇샯␇);
+Test_N(q␇샰␇, q␇샰␇, q␇샰␇, q␇샰␇, q␇샰␇);
+Test_N(q␇샱␇, q␇샱␇, q␇샱␇, q␇샱␇, q␇샱␇);
+Test_N(q␇샲␇, q␇샲␇, q␇샲␇, q␇샲␇, q␇샲␇);
+Test_N(q␇샳␇, q␇샳␇, q␇샳␇, q␇샳␇, q␇샳␇);
+Test_N(q␇샴␇, q␇샴␇, q␇샴␇, q␇샴␇, q␇샴␇);
+Test_N(q␇샵␇, q␇샵␇, q␇샵␇, q␇샵␇, q␇샵␇);
+Test_N(q␇샶␇, q␇샶␇, q␇샶␇, q␇샶␇, q␇샶␇);
+Test_N(q␇샷␇, q␇샷␇, q␇샷␇, q␇샷␇, q␇샷␇);
+Test_N(q␇샸␇, q␇샸␇, q␇샸␇, q␇샸␇, q␇샸␇);
+Test_N(q␇샹␇, q␇샹␇, q␇샹␇, q␇샹␇, q␇샹␇);
+Test_N(q␇샺␇, q␇샺␇, q␇샺␇, q␇샺␇, q␇샺␇);
+Test_N(q␇샻␇, q␇샻␇, q␇샻␇, q␇샻␇, q␇샻␇);
+Test_N(q␇샼␇, q␇샼␇, q␇샼␇, q␇샼␇, q␇샼␇);
+Test_N(q␇샽␇, q␇샽␇, q␇샽␇, q␇샽␇, q␇샽␇);
+Test_N(q␇샾␇, q␇샾␇, q␇샾␇, q␇샾␇, q␇샾␇);
+Test_N(q␇샿␇, q␇샿␇, q␇샿␇, q␇샿␇, q␇샿␇);
+Test_N(q␇섀␇, q␇섀␇, q␇섀␇, q␇섀␇, q␇섀␇);
+Test_N(q␇섁␇, q␇섁␇, q␇섁␇, q␇섁␇, q␇섁␇);
+Test_N(q␇섂␇, q␇섂␇, q␇섂␇, q␇섂␇, q␇섂␇);
+Test_N(q␇섃␇, q␇섃␇, q␇섃␇, q␇섃␇, q␇섃␇);
+Test_N(q␇섄␇, q␇섄␇, q␇섄␇, q␇섄␇, q␇섄␇);
+Test_N(q␇섅␇, q␇섅␇, q␇섅␇, q␇섅␇, q␇섅␇);
+Test_N(q␇섆␇, q␇섆␇, q␇섆␇, q␇섆␇, q␇섆␇);
+Test_N(q␇섇␇, q␇섇␇, q␇섇␇, q␇섇␇, q␇섇␇);
+Test_N(q␇섈␇, q␇섈␇, q␇섈␇, q␇섈␇, q␇섈␇);
+Test_N(q␇섉␇, q␇섉␇, q␇섉␇, q␇섉␇, q␇섉␇);
+Test_N(q␇섊␇, q␇섊␇, q␇섊␇, q␇섊␇, q␇섊␇);
+Test_N(q␇섋␇, q␇섋␇, q␇섋␇, q␇섋␇, q␇섋␇);
+Test_N(q␇섌␇, q␇섌␇, q␇섌␇, q␇섌␇, q␇섌␇);
+Test_N(q␇섍␇, q␇섍␇, q␇섍␇, q␇섍␇, q␇섍␇);
+Test_N(q␇섎␇, q␇섎␇, q␇섎␇, q␇섎␇, q␇섎␇);
+Test_N(q␇섏␇, q␇섏␇, q␇섏␇, q␇섏␇, q␇섏␇);
+Test_N(q␇섐␇, q␇섐␇, q␇섐␇, q␇섐␇, q␇섐␇);
+Test_N(q␇섑␇, q␇섑␇, q␇섑␇, q␇섑␇, q␇섑␇);
+Test_N(q␇섒␇, q␇섒␇, q␇섒␇, q␇섒␇, q␇섒␇);
+Test_N(q␇섓␇, q␇섓␇, q␇섓␇, q␇섓␇, q␇섓␇);
+Test_N(q␇섔␇, q␇섔␇, q␇섔␇, q␇섔␇, q␇섔␇);
+Test_N(q␇섕␇, q␇섕␇, q␇섕␇, q␇섕␇, q␇섕␇);
+Test_N(q␇섖␇, q␇섖␇, q␇섖␇, q␇섖␇, q␇섖␇);
+Test_N(q␇섗␇, q␇섗␇, q␇섗␇, q␇섗␇, q␇섗␇);
+Test_N(q␇섘␇, q␇섘␇, q␇섘␇, q␇섘␇, q␇섘␇);
+Test_N(q␇섙␇, q␇섙␇, q␇섙␇, q␇섙␇, q␇섙␇);
+Test_N(q␇섚␇, q␇섚␇, q␇섚␇, q␇섚␇, q␇섚␇);
+Test_N(q␇섛␇, q␇섛␇, q␇섛␇, q␇섛␇, q␇섛␇);
+Test_N(q␇서␇, q␇서␇, q␇서␇, q␇서␇, q␇서␇);
+Test_N(q␇석␇, q␇석␇, q␇석␇, q␇석␇, q␇석␇);
+Test_N(q␇섞␇, q␇섞␇, q␇섞␇, q␇섞␇, q␇섞␇);
+Test_N(q␇섟␇, q␇섟␇, q␇섟␇, q␇섟␇, q␇섟␇);
+Test_N(q␇선␇, q␇선␇, q␇선␇, q␇선␇, q␇선␇);
+Test_N(q␇섡␇, q␇섡␇, q␇섡␇, q␇섡␇, q␇섡␇);
+Test_N(q␇섢␇, q␇섢␇, q␇섢␇, q␇섢␇, q␇섢␇);
+Test_N(q␇섣␇, q␇섣␇, q␇섣␇, q␇섣␇, q␇섣␇);
+Test_N(q␇설␇, q␇설␇, q␇설␇, q␇설␇, q␇설␇);
+Test_N(q␇섥␇, q␇섥␇, q␇섥␇, q␇섥␇, q␇섥␇);
+Test_N(q␇섦␇, q␇섦␇, q␇섦␇, q␇섦␇, q␇섦␇);
+Test_N(q␇섧␇, q␇섧␇, q␇섧␇, q␇섧␇, q␇섧␇);
+Test_N(q␇섨␇, q␇섨␇, q␇섨␇, q␇섨␇, q␇섨␇);
+Test_N(q␇섩␇, q␇섩␇, q␇섩␇, q␇섩␇, q␇섩␇);
+Test_N(q␇섪␇, q␇섪␇, q␇섪␇, q␇섪␇, q␇섪␇);
+Test_N(q␇섫␇, q␇섫␇, q␇섫␇, q␇섫␇, q␇섫␇);
+Test_N(q␇섬␇, q␇섬␇, q␇섬␇, q␇섬␇, q␇섬␇);
+Test_N(q␇섭␇, q␇섭␇, q␇섭␇, q␇섭␇, q␇섭␇);
+Test_N(q␇섮␇, q␇섮␇, q␇섮␇, q␇섮␇, q␇섮␇);
+Test_N(q␇섯␇, q␇섯␇, q␇섯␇, q␇섯␇, q␇섯␇);
+Test_N(q␇섰␇, q␇섰␇, q␇섰␇, q␇섰␇, q␇섰␇);
+Test_N(q␇성␇, q␇성␇, q␇성␇, q␇성␇, q␇성␇);
+Test_N(q␇섲␇, q␇섲␇, q␇섲␇, q␇섲␇, q␇섲␇);
+Test_N(q␇섳␇, q␇섳␇, q␇섳␇, q␇섳␇, q␇섳␇);
+Test_N(q␇섴␇, q␇섴␇, q␇섴␇, q␇섴␇, q␇섴␇);
+Test_N(q␇섵␇, q␇섵␇, q␇섵␇, q␇섵␇, q␇섵␇);
+Test_N(q␇섶␇, q␇섶␇, q␇섶␇, q␇섶␇, q␇섶␇);
+Test_N(q␇섷␇, q␇섷␇, q␇섷␇, q␇섷␇, q␇섷␇);
+Test_N(q␇세␇, q␇세␇, q␇세␇, q␇세␇, q␇세␇);
+Test_N(q␇섹␇, q␇섹␇, q␇섹␇, q␇섹␇, q␇섹␇);
+Test_N(q␇섺␇, q␇섺␇, q␇섺␇, q␇섺␇, q␇섺␇);
+Test_N(q␇섻␇, q␇섻␇, q␇섻␇, q␇섻␇, q␇섻␇);
+Test_N(q␇센␇, q␇센␇, q␇센␇, q␇센␇, q␇센␇);
+Test_N(q␇섽␇, q␇섽␇, q␇섽␇, q␇섽␇, q␇섽␇);
+Test_N(q␇섾␇, q␇섾␇, q␇섾␇, q␇섾␇, q␇섾␇);
+Test_N(q␇섿␇, q␇섿␇, q␇섿␇, q␇섿␇, q␇섿␇);
+Test_N(q␇셀␇, q␇셀␇, q␇셀␇, q␇셀␇, q␇셀␇);
+Test_N(q␇셁␇, q␇셁␇, q␇셁␇, q␇셁␇, q␇셁␇);
+Test_N(q␇셂␇, q␇셂␇, q␇셂␇, q␇셂␇, q␇셂␇);
+Test_N(q␇셃␇, q␇셃␇, q␇셃␇, q␇셃␇, q␇셃␇);
+Test_N(q␇셄␇, q␇셄␇, q␇셄␇, q␇셄␇, q␇셄␇);
+Test_N(q␇셅␇, q␇셅␇, q␇셅␇, q␇셅␇, q␇셅␇);
+Test_N(q␇셆␇, q␇셆␇, q␇셆␇, q␇셆␇, q␇셆␇);
+Test_N(q␇셇␇, q␇셇␇, q␇셇␇, q␇셇␇, q␇셇␇);
+Test_N(q␇셈␇, q␇셈␇, q␇셈␇, q␇셈␇, q␇셈␇);
+Test_N(q␇셉␇, q␇셉␇, q␇셉␇, q␇셉␇, q␇셉␇);
+Test_N(q␇셊␇, q␇셊␇, q␇셊␇, q␇셊␇, q␇셊␇);
+Test_N(q␇셋␇, q␇셋␇, q␇셋␇, q␇셋␇, q␇셋␇);
+Test_N(q␇셌␇, q␇셌␇, q␇셌␇, q␇셌␇, q␇셌␇);
+Test_N(q␇셍␇, q␇셍␇, q␇셍␇, q␇셍␇, q␇셍␇);
+Test_N(q␇셎␇, q␇셎␇, q␇셎␇, q␇셎␇, q␇셎␇);
+Test_N(q␇셏␇, q␇셏␇, q␇셏␇, q␇셏␇, q␇셏␇);
+Test_N(q␇셐␇, q␇셐␇, q␇셐␇, q␇셐␇, q␇셐␇);
+Test_N(q␇셑␇, q␇셑␇, q␇셑␇, q␇셑␇, q␇셑␇);
+Test_N(q␇셒␇, q␇셒␇, q␇셒␇, q␇셒␇, q␇셒␇);
+Test_N(q␇셓␇, q␇셓␇, q␇셓␇, q␇셓␇, q␇셓␇);
+Test_N(q␇셔␇, q␇셔␇, q␇셔␇, q␇셔␇, q␇셔␇);
+Test_N(q␇셕␇, q␇셕␇, q␇셕␇, q␇셕␇, q␇셕␇);
+Test_N(q␇셖␇, q␇셖␇, q␇셖␇, q␇셖␇, q␇셖␇);
+Test_N(q␇셗␇, q␇셗␇, q␇셗␇, q␇셗␇, q␇셗␇);
+Test_N(q␇션␇, q␇션␇, q␇션␇, q␇션␇, q␇션␇);
+Test_N(q␇셙␇, q␇셙␇, q␇셙␇, q␇셙␇, q␇셙␇);
+Test_N(q␇셚␇, q␇셚␇, q␇셚␇, q␇셚␇, q␇셚␇);
+Test_N(q␇셛␇, q␇셛␇, q␇셛␇, q␇셛␇, q␇셛␇);
+Test_N(q␇셜␇, q␇셜␇, q␇셜␇, q␇셜␇, q␇셜␇);
+Test_N(q␇셝␇, q␇셝␇, q␇셝␇, q␇셝␇, q␇셝␇);
+Test_N(q␇셞␇, q␇셞␇, q␇셞␇, q␇셞␇, q␇셞␇);
+Test_N(q␇셟␇, q␇셟␇, q␇셟␇, q␇셟␇, q␇셟␇);
+Test_N(q␇셠␇, q␇셠␇, q␇셠␇, q␇셠␇, q␇셠␇);
+Test_N(q␇셡␇, q␇셡␇, q␇셡␇, q␇셡␇, q␇셡␇);
+Test_N(q␇셢␇, q␇셢␇, q␇셢␇, q␇셢␇, q␇셢␇);
+Test_N(q␇셣␇, q␇셣␇, q␇셣␇, q␇셣␇, q␇셣␇);
+Test_N(q␇셤␇, q␇셤␇, q␇셤␇, q␇셤␇, q␇셤␇);
+Test_N(q␇셥␇, q␇셥␇, q␇셥␇, q␇셥␇, q␇셥␇);
+Test_N(q␇셦␇, q␇셦␇, q␇셦␇, q␇셦␇, q␇셦␇);
+Test_N(q␇셧␇, q␇셧␇, q␇셧␇, q␇셧␇, q␇셧␇);
+Test_N(q␇셨␇, q␇셨␇, q␇셨␇, q␇셨␇, q␇셨␇);
+Test_N(q␇셩␇, q␇셩␇, q␇셩␇, q␇셩␇, q␇셩␇);
+Test_N(q␇셪␇, q␇셪␇, q␇셪␇, q␇셪␇, q␇셪␇);
+Test_N(q␇셫␇, q␇셫␇, q␇셫␇, q␇셫␇, q␇셫␇);
+Test_N(q␇셬␇, q␇셬␇, q␇셬␇, q␇셬␇, q␇셬␇);
+Test_N(q␇셭␇, q␇셭␇, q␇셭␇, q␇셭␇, q␇셭␇);
+Test_N(q␇셮␇, q␇셮␇, q␇셮␇, q␇셮␇, q␇셮␇);
+Test_N(q␇셯␇, q␇셯␇, q␇셯␇, q␇셯␇, q␇셯␇);
+Test_N(q␇셰␇, q␇셰␇, q␇셰␇, q␇셰␇, q␇셰␇);
+Test_N(q␇셱␇, q␇셱␇, q␇셱␇, q␇셱␇, q␇셱␇);
+Test_N(q␇셲␇, q␇셲␇, q␇셲␇, q␇셲␇, q␇셲␇);
+Test_N(q␇셳␇, q␇셳␇, q␇셳␇, q␇셳␇, q␇셳␇);
+Test_N(q␇셴␇, q␇셴␇, q␇셴␇, q␇셴␇, q␇셴␇);
+Test_N(q␇셵␇, q␇셵␇, q␇셵␇, q␇셵␇, q␇셵␇);
+Test_N(q␇셶␇, q␇셶␇, q␇셶␇, q␇셶␇, q␇셶␇);
+Test_N(q␇셷␇, q␇셷␇, q␇셷␇, q␇셷␇, q␇셷␇);
+Test_N(q␇셸␇, q␇셸␇, q␇셸␇, q␇셸␇, q␇셸␇);
+Test_N(q␇셹␇, q␇셹␇, q␇셹␇, q␇셹␇, q␇셹␇);
+Test_N(q␇셺␇, q␇셺␇, q␇셺␇, q␇셺␇, q␇셺␇);
+Test_N(q␇셻␇, q␇셻␇, q␇셻␇, q␇셻␇, q␇셻␇);
+Test_N(q␇셼␇, q␇셼␇, q␇셼␇, q␇셼␇, q␇셼␇);
+Test_N(q␇셽␇, q␇셽␇, q␇셽␇, q␇셽␇, q␇셽␇);
+Test_N(q␇셾␇, q␇셾␇, q␇셾␇, q␇셾␇, q␇셾␇);
+Test_N(q␇셿␇, q␇셿␇, q␇셿␇, q␇셿␇, q␇셿␇);
+Test_N(q␇솀␇, q␇솀␇, q␇솀␇, q␇솀␇, q␇솀␇);
+Test_N(q␇솁␇, q␇솁␇, q␇솁␇, q␇솁␇, q␇솁␇);
+Test_N(q␇솂␇, q␇솂␇, q␇솂␇, q␇솂␇, q␇솂␇);
+Test_N(q␇솃␇, q␇솃␇, q␇솃␇, q␇솃␇, q␇솃␇);
+Test_N(q␇솄␇, q␇솄␇, q␇솄␇, q␇솄␇, q␇솄␇);
+Test_N(q␇솅␇, q␇솅␇, q␇솅␇, q␇솅␇, q␇솅␇);
+Test_N(q␇솆␇, q␇솆␇, q␇솆␇, q␇솆␇, q␇솆␇);
+Test_N(q␇솇␇, q␇솇␇, q␇솇␇, q␇솇␇, q␇솇␇);
+Test_N(q␇솈␇, q␇솈␇, q␇솈␇, q␇솈␇, q␇솈␇);
+Test_N(q␇솉␇, q␇솉␇, q␇솉␇, q␇솉␇, q␇솉␇);
+Test_N(q␇솊␇, q␇솊␇, q␇솊␇, q␇솊␇, q␇솊␇);
+Test_N(q␇솋␇, q␇솋␇, q␇솋␇, q␇솋␇, q␇솋␇);
+Test_N(q␇소␇, q␇소␇, q␇소␇, q␇소␇, q␇소␇);
+Test_N(q␇속␇, q␇속␇, q␇속␇, q␇속␇, q␇속␇);
+Test_N(q␇솎␇, q␇솎␇, q␇솎␇, q␇솎␇, q␇솎␇);
+Test_N(q␇솏␇, q␇솏␇, q␇솏␇, q␇솏␇, q␇솏␇);
+Test_N(q␇손␇, q␇손␇, q␇손␇, q␇손␇, q␇손␇);
+Test_N(q␇솑␇, q␇솑␇, q␇솑␇, q␇솑␇, q␇솑␇);
+Test_N(q␇솒␇, q␇솒␇, q␇솒␇, q␇솒␇, q␇솒␇);
+Test_N(q␇솓␇, q␇솓␇, q␇솓␇, q␇솓␇, q␇솓␇);
+Test_N(q␇솔␇, q␇솔␇, q␇솔␇, q␇솔␇, q␇솔␇);
+Test_N(q␇솕␇, q␇솕␇, q␇솕␇, q␇솕␇, q␇솕␇);
+Test_N(q␇솖␇, q␇솖␇, q␇솖␇, q␇솖␇, q␇솖␇);
+Test_N(q␇솗␇, q␇솗␇, q␇솗␇, q␇솗␇, q␇솗␇);
+Test_N(q␇솘␇, q␇솘␇, q␇솘␇, q␇솘␇, q␇솘␇);
+Test_N(q␇솙␇, q␇솙␇, q␇솙␇, q␇솙␇, q␇솙␇);
+Test_N(q␇솚␇, q␇솚␇, q␇솚␇, q␇솚␇, q␇솚␇);
+Test_N(q␇솛␇, q␇솛␇, q␇솛␇, q␇솛␇, q␇솛␇);
+Test_N(q␇솜␇, q␇솜␇, q␇솜␇, q␇솜␇, q␇솜␇);
+Test_N(q␇솝␇, q␇솝␇, q␇솝␇, q␇솝␇, q␇솝␇);
+Test_N(q␇솞␇, q␇솞␇, q␇솞␇, q␇솞␇, q␇솞␇);
+Test_N(q␇솟␇, q␇솟␇, q␇솟␇, q␇솟␇, q␇솟␇);
+Test_N(q␇솠␇, q␇솠␇, q␇솠␇, q␇솠␇, q␇솠␇);
+Test_N(q␇송␇, q␇송␇, q␇송␇, q␇송␇, q␇송␇);
+Test_N(q␇솢␇, q␇솢␇, q␇솢␇, q␇솢␇, q␇솢␇);
+Test_N(q␇솣␇, q␇솣␇, q␇솣␇, q␇솣␇, q␇솣␇);
+Test_N(q␇솤␇, q␇솤␇, q␇솤␇, q␇솤␇, q␇솤␇);
+Test_N(q␇솥␇, q␇솥␇, q␇솥␇, q␇솥␇, q␇솥␇);
+Test_N(q␇솦␇, q␇솦␇, q␇솦␇, q␇솦␇, q␇솦␇);
+Test_N(q␇솧␇, q␇솧␇, q␇솧␇, q␇솧␇, q␇솧␇);
+Test_N(q␇솨␇, q␇솨␇, q␇솨␇, q␇솨␇, q␇솨␇);
+Test_N(q␇솩␇, q␇솩␇, q␇솩␇, q␇솩␇, q␇솩␇);
+Test_N(q␇솪␇, q␇솪␇, q␇솪␇, q␇솪␇, q␇솪␇);
+Test_N(q␇솫␇, q␇솫␇, q␇솫␇, q␇솫␇, q␇솫␇);
+Test_N(q␇솬␇, q␇솬␇, q␇솬␇, q␇솬␇, q␇솬␇);
+Test_N(q␇솭␇, q␇솭␇, q␇솭␇, q␇솭␇, q␇솭␇);
+Test_N(q␇솮␇, q␇솮␇, q␇솮␇, q␇솮␇, q␇솮␇);
+Test_N(q␇솯␇, q␇솯␇, q␇솯␇, q␇솯␇, q␇솯␇);
+Test_N(q␇솰␇, q␇솰␇, q␇솰␇, q␇솰␇, q␇솰␇);
+Test_N(q␇솱␇, q␇솱␇, q␇솱␇, q␇솱␇, q␇솱␇);
+Test_N(q␇솲␇, q␇솲␇, q␇솲␇, q␇솲␇, q␇솲␇);
+Test_N(q␇솳␇, q␇솳␇, q␇솳␇, q␇솳␇, q␇솳␇);
+Test_N(q␇솴␇, q␇솴␇, q␇솴␇, q␇솴␇, q␇솴␇);
+Test_N(q␇솵␇, q␇솵␇, q␇솵␇, q␇솵␇, q␇솵␇);
+Test_N(q␇솶␇, q␇솶␇, q␇솶␇, q␇솶␇, q␇솶␇);
+Test_N(q␇솷␇, q␇솷␇, q␇솷␇, q␇솷␇, q␇솷␇);
+Test_N(q␇솸␇, q␇솸␇, q␇솸␇, q␇솸␇, q␇솸␇);
+Test_N(q␇솹␇, q␇솹␇, q␇솹␇, q␇솹␇, q␇솹␇);
+Test_N(q␇솺␇, q␇솺␇, q␇솺␇, q␇솺␇, q␇솺␇);
+Test_N(q␇솻␇, q␇솻␇, q␇솻␇, q␇솻␇, q␇솻␇);
+Test_N(q␇솼␇, q␇솼␇, q␇솼␇, q␇솼␇, q␇솼␇);
+Test_N(q␇솽␇, q␇솽␇, q␇솽␇, q␇솽␇, q␇솽␇);
+Test_N(q␇솾␇, q␇솾␇, q␇솾␇, q␇솾␇, q␇솾␇);
+Test_N(q␇솿␇, q␇솿␇, q␇솿␇, q␇솿␇, q␇솿␇);
+Test_N(q␇쇀␇, q␇쇀␇, q␇쇀␇, q␇쇀␇, q␇쇀␇);
+Test_N(q␇쇁␇, q␇쇁␇, q␇쇁␇, q␇쇁␇, q␇쇁␇);
+Test_N(q␇쇂␇, q␇쇂␇, q␇쇂␇, q␇쇂␇, q␇쇂␇);
+Test_N(q␇쇃␇, q␇쇃␇, q␇쇃␇, q␇쇃␇, q␇쇃␇);
+Test_N(q␇쇄␇, q␇쇄␇, q␇쇄␇, q␇쇄␇, q␇쇄␇);
+Test_N(q␇쇅␇, q␇쇅␇, q␇쇅␇, q␇쇅␇, q␇쇅␇);
+Test_N(q␇쇆␇, q␇쇆␇, q␇쇆␇, q␇쇆␇, q␇쇆␇);
+Test_N(q␇쇇␇, q␇쇇␇, q␇쇇␇, q␇쇇␇, q␇쇇␇);
+Test_N(q␇쇈␇, q␇쇈␇, q␇쇈␇, q␇쇈␇, q␇쇈␇);
+Test_N(q␇쇉␇, q␇쇉␇, q␇쇉␇, q␇쇉␇, q␇쇉␇);
+Test_N(q␇쇊␇, q␇쇊␇, q␇쇊␇, q␇쇊␇, q␇쇊␇);
+Test_N(q␇쇋␇, q␇쇋␇, q␇쇋␇, q␇쇋␇, q␇쇋␇);
+Test_N(q␇쇌␇, q␇쇌␇, q␇쇌␇, q␇쇌␇, q␇쇌␇);
+Test_N(q␇쇍␇, q␇쇍␇, q␇쇍␇, q␇쇍␇, q␇쇍␇);
+Test_N(q␇쇎␇, q␇쇎␇, q␇쇎␇, q␇쇎␇, q␇쇎␇);
+Test_N(q␇쇏␇, q␇쇏␇, q␇쇏␇, q␇쇏␇, q␇쇏␇);
+Test_N(q␇쇐␇, q␇쇐␇, q␇쇐␇, q␇쇐␇, q␇쇐␇);
+Test_N(q␇쇑␇, q␇쇑␇, q␇쇑␇, q␇쇑␇, q␇쇑␇);
+Test_N(q␇쇒␇, q␇쇒␇, q␇쇒␇, q␇쇒␇, q␇쇒␇);
+Test_N(q␇쇓␇, q␇쇓␇, q␇쇓␇, q␇쇓␇, q␇쇓␇);
+Test_N(q␇쇔␇, q␇쇔␇, q␇쇔␇, q␇쇔␇, q␇쇔␇);
+Test_N(q␇쇕␇, q␇쇕␇, q␇쇕␇, q␇쇕␇, q␇쇕␇);
+Test_N(q␇쇖␇, q␇쇖␇, q␇쇖␇, q␇쇖␇, q␇쇖␇);
+Test_N(q␇쇗␇, q␇쇗␇, q␇쇗␇, q␇쇗␇, q␇쇗␇);
+Test_N(q␇쇘␇, q␇쇘␇, q␇쇘␇, q␇쇘␇, q␇쇘␇);
+Test_N(q␇쇙␇, q␇쇙␇, q␇쇙␇, q␇쇙␇, q␇쇙␇);
+Test_N(q␇쇚␇, q␇쇚␇, q␇쇚␇, q␇쇚␇, q␇쇚␇);
+Test_N(q␇쇛␇, q␇쇛␇, q␇쇛␇, q␇쇛␇, q␇쇛␇);
+Test_N(q␇쇜␇, q␇쇜␇, q␇쇜␇, q␇쇜␇, q␇쇜␇);
+Test_N(q␇쇝␇, q␇쇝␇, q␇쇝␇, q␇쇝␇, q␇쇝␇);
+Test_N(q␇쇞␇, q␇쇞␇, q␇쇞␇, q␇쇞␇, q␇쇞␇);
+Test_N(q␇쇟␇, q␇쇟␇, q␇쇟␇, q␇쇟␇, q␇쇟␇);
+Test_N(q␇쇠␇, q␇쇠␇, q␇쇠␇, q␇쇠␇, q␇쇠␇);
+Test_N(q␇쇡␇, q␇쇡␇, q␇쇡␇, q␇쇡␇, q␇쇡␇);
+Test_N(q␇쇢␇, q␇쇢␇, q␇쇢␇, q␇쇢␇, q␇쇢␇);
+Test_N(q␇쇣␇, q␇쇣␇, q␇쇣␇, q␇쇣␇, q␇쇣␇);
+Test_N(q␇쇤␇, q␇쇤␇, q␇쇤␇, q␇쇤␇, q␇쇤␇);
+Test_N(q␇쇥␇, q␇쇥␇, q␇쇥␇, q␇쇥␇, q␇쇥␇);
+Test_N(q␇쇦␇, q␇쇦␇, q␇쇦␇, q␇쇦␇, q␇쇦␇);
+Test_N(q␇쇧␇, q␇쇧␇, q␇쇧␇, q␇쇧␇, q␇쇧␇);
+Test_N(q␇쇨␇, q␇쇨␇, q␇쇨␇, q␇쇨␇, q␇쇨␇);
+Test_N(q␇쇩␇, q␇쇩␇, q␇쇩␇, q␇쇩␇, q␇쇩␇);
+Test_N(q␇쇪␇, q␇쇪␇, q␇쇪␇, q␇쇪␇, q␇쇪␇);
+Test_N(q␇쇫␇, q␇쇫␇, q␇쇫␇, q␇쇫␇, q␇쇫␇);
+Test_N(q␇쇬␇, q␇쇬␇, q␇쇬␇, q␇쇬␇, q␇쇬␇);
+Test_N(q␇쇭␇, q␇쇭␇, q␇쇭␇, q␇쇭␇, q␇쇭␇);
+Test_N(q␇쇮␇, q␇쇮␇, q␇쇮␇, q␇쇮␇, q␇쇮␇);
+Test_N(q␇쇯␇, q␇쇯␇, q␇쇯␇, q␇쇯␇, q␇쇯␇);
+Test_N(q␇쇰␇, q␇쇰␇, q␇쇰␇, q␇쇰␇, q␇쇰␇);
+Test_N(q␇쇱␇, q␇쇱␇, q␇쇱␇, q␇쇱␇, q␇쇱␇);
+Test_N(q␇쇲␇, q␇쇲␇, q␇쇲␇, q␇쇲␇, q␇쇲␇);
+Test_N(q␇쇳␇, q␇쇳␇, q␇쇳␇, q␇쇳␇, q␇쇳␇);
+Test_N(q␇쇴␇, q␇쇴␇, q␇쇴␇, q␇쇴␇, q␇쇴␇);
+Test_N(q␇쇵␇, q␇쇵␇, q␇쇵␇, q␇쇵␇, q␇쇵␇);
+Test_N(q␇쇶␇, q␇쇶␇, q␇쇶␇, q␇쇶␇, q␇쇶␇);
+Test_N(q␇쇷␇, q␇쇷␇, q␇쇷␇, q␇쇷␇, q␇쇷␇);
+Test_N(q␇쇸␇, q␇쇸␇, q␇쇸␇, q␇쇸␇, q␇쇸␇);
+Test_N(q␇쇹␇, q␇쇹␇, q␇쇹␇, q␇쇹␇, q␇쇹␇);
+Test_N(q␇쇺␇, q␇쇺␇, q␇쇺␇, q␇쇺␇, q␇쇺␇);
+Test_N(q␇쇻␇, q␇쇻␇, q␇쇻␇, q␇쇻␇, q␇쇻␇);
+Test_N(q␇쇼␇, q␇쇼␇, q␇쇼␇, q␇쇼␇, q␇쇼␇);
+Test_N(q␇쇽␇, q␇쇽␇, q␇쇽␇, q␇쇽␇, q␇쇽␇);
+Test_N(q␇쇾␇, q␇쇾␇, q␇쇾␇, q␇쇾␇, q␇쇾␇);
+Test_N(q␇쇿␇, q␇쇿␇, q␇쇿␇, q␇쇿␇, q␇쇿␇);
+Test_N(q␇숀␇, q␇숀␇, q␇숀␇, q␇숀␇, q␇숀␇);
+Test_N(q␇숁␇, q␇숁␇, q␇숁␇, q␇숁␇, q␇숁␇);
+Test_N(q␇숂␇, q␇숂␇, q␇숂␇, q␇숂␇, q␇숂␇);
+Test_N(q␇숃␇, q␇숃␇, q␇숃␇, q␇숃␇, q␇숃␇);
+Test_N(q␇숄␇, q␇숄␇, q␇숄␇, q␇숄␇, q␇숄␇);
+Test_N(q␇숅␇, q␇숅␇, q␇숅␇, q␇숅␇, q␇숅␇);
+Test_N(q␇숆␇, q␇숆␇, q␇숆␇, q␇숆␇, q␇숆␇);
+Test_N(q␇숇␇, q␇숇␇, q␇숇␇, q␇숇␇, q␇숇␇);
+Test_N(q␇숈␇, q␇숈␇, q␇숈␇, q␇숈␇, q␇숈␇);
+Test_N(q␇숉␇, q␇숉␇, q␇숉␇, q␇숉␇, q␇숉␇);
+Test_N(q␇숊␇, q␇숊␇, q␇숊␇, q␇숊␇, q␇숊␇);
+Test_N(q␇숋␇, q␇숋␇, q␇숋␇, q␇숋␇, q␇숋␇);
+Test_N(q␇숌␇, q␇숌␇, q␇숌␇, q␇숌␇, q␇숌␇);
+Test_N(q␇숍␇, q␇숍␇, q␇숍␇, q␇숍␇, q␇숍␇);
+Test_N(q␇숎␇, q␇숎␇, q␇숎␇, q␇숎␇, q␇숎␇);
+Test_N(q␇숏␇, q␇숏␇, q␇숏␇, q␇숏␇, q␇숏␇);
+Test_N(q␇숐␇, q␇숐␇, q␇숐␇, q␇숐␇, q␇숐␇);
+Test_N(q␇숑␇, q␇숑␇, q␇숑␇, q␇숑␇, q␇숑␇);
+Test_N(q␇숒␇, q␇숒␇, q␇숒␇, q␇숒␇, q␇숒␇);
+Test_N(q␇숓␇, q␇숓␇, q␇숓␇, q␇숓␇, q␇숓␇);
+Test_N(q␇숔␇, q␇숔␇, q␇숔␇, q␇숔␇, q␇숔␇);
+Test_N(q␇숕␇, q␇숕␇, q␇숕␇, q␇숕␇, q␇숕␇);
+Test_N(q␇숖␇, q␇숖␇, q␇숖␇, q␇숖␇, q␇숖␇);
+Test_N(q␇숗␇, q␇숗␇, q␇숗␇, q␇숗␇, q␇숗␇);
+Test_N(q␇수␇, q␇수␇, q␇수␇, q␇수␇, q␇수␇);
+Test_N(q␇숙␇, q␇숙␇, q␇숙␇, q␇숙␇, q␇숙␇);
+Test_N(q␇숚␇, q␇숚␇, q␇숚␇, q␇숚␇, q␇숚␇);
+Test_N(q␇숛␇, q␇숛␇, q␇숛␇, q␇숛␇, q␇숛␇);
+Test_N(q␇순␇, q␇순␇, q␇순␇, q␇순␇, q␇순␇);
+Test_N(q␇숝␇, q␇숝␇, q␇숝␇, q␇숝␇, q␇숝␇);
+Test_N(q␇숞␇, q␇숞␇, q␇숞␇, q␇숞␇, q␇숞␇);
+Test_N(q␇숟␇, q␇숟␇, q␇숟␇, q␇숟␇, q␇숟␇);
+Test_N(q␇술␇, q␇술␇, q␇술␇, q␇술␇, q␇술␇);
+Test_N(q␇숡␇, q␇숡␇, q␇숡␇, q␇숡␇, q␇숡␇);
+Test_N(q␇숢␇, q␇숢␇, q␇숢␇, q␇숢␇, q␇숢␇);
+Test_N(q␇숣␇, q␇숣␇, q␇숣␇, q␇숣␇, q␇숣␇);
+Test_N(q␇숤␇, q␇숤␇, q␇숤␇, q␇숤␇, q␇숤␇);
+Test_N(q␇숥␇, q␇숥␇, q␇숥␇, q␇숥␇, q␇숥␇);
+Test_N(q␇숦␇, q␇숦␇, q␇숦␇, q␇숦␇, q␇숦␇);
+Test_N(q␇숧␇, q␇숧␇, q␇숧␇, q␇숧␇, q␇숧␇);
+Test_N(q␇숨␇, q␇숨␇, q␇숨␇, q␇숨␇, q␇숨␇);
+Test_N(q␇숩␇, q␇숩␇, q␇숩␇, q␇숩␇, q␇숩␇);
+Test_N(q␇숪␇, q␇숪␇, q␇숪␇, q␇숪␇, q␇숪␇);
+Test_N(q␇숫␇, q␇숫␇, q␇숫␇, q␇숫␇, q␇숫␇);
+Test_N(q␇숬␇, q␇숬␇, q␇숬␇, q␇숬␇, q␇숬␇);
+Test_N(q␇숭␇, q␇숭␇, q␇숭␇, q␇숭␇, q␇숭␇);
+Test_N(q␇숮␇, q␇숮␇, q␇숮␇, q␇숮␇, q␇숮␇);
+Test_N(q␇숯␇, q␇숯␇, q␇숯␇, q␇숯␇, q␇숯␇);
+Test_N(q␇숰␇, q␇숰␇, q␇숰␇, q␇숰␇, q␇숰␇);
+Test_N(q␇숱␇, q␇숱␇, q␇숱␇, q␇숱␇, q␇숱␇);
+Test_N(q␇숲␇, q␇숲␇, q␇숲␇, q␇숲␇, q␇숲␇);
+Test_N(q␇숳␇, q␇숳␇, q␇숳␇, q␇숳␇, q␇숳␇);
+Test_N(q␇숴␇, q␇숴␇, q␇숴␇, q␇숴␇, q␇숴␇);
+Test_N(q␇숵␇, q␇숵␇, q␇숵␇, q␇숵␇, q␇숵␇);
+Test_N(q␇숶␇, q␇숶␇, q␇숶␇, q␇숶␇, q␇숶␇);
+Test_N(q␇숷␇, q␇숷␇, q␇숷␇, q␇숷␇, q␇숷␇);
+Test_N(q␇숸␇, q␇숸␇, q␇숸␇, q␇숸␇, q␇숸␇);
+Test_N(q␇숹␇, q␇숹␇, q␇숹␇, q␇숹␇, q␇숹␇);
+Test_N(q␇숺␇, q␇숺␇, q␇숺␇, q␇숺␇, q␇숺␇);
+Test_N(q␇숻␇, q␇숻␇, q␇숻␇, q␇숻␇, q␇숻␇);
+Test_N(q␇숼␇, q␇숼␇, q␇숼␇, q␇숼␇, q␇숼␇);
+Test_N(q␇숽␇, q␇숽␇, q␇숽␇, q␇숽␇, q␇숽␇);
+Test_N(q␇숾␇, q␇숾␇, q␇숾␇, q␇숾␇, q␇숾␇);
+Test_N(q␇숿␇, q␇숿␇, q␇숿␇, q␇숿␇, q␇숿␇);
+Test_N(q␇쉀␇, q␇쉀␇, q␇쉀␇, q␇쉀␇, q␇쉀␇);
+Test_N(q␇쉁␇, q␇쉁␇, q␇쉁␇, q␇쉁␇, q␇쉁␇);
+Test_N(q␇쉂␇, q␇쉂␇, q␇쉂␇, q␇쉂␇, q␇쉂␇);
+Test_N(q␇쉃␇, q␇쉃␇, q␇쉃␇, q␇쉃␇, q␇쉃␇);
+Test_N(q␇쉄␇, q␇쉄␇, q␇쉄␇, q␇쉄␇, q␇쉄␇);
+Test_N(q␇쉅␇, q␇쉅␇, q␇쉅␇, q␇쉅␇, q␇쉅␇);
+Test_N(q␇쉆␇, q␇쉆␇, q␇쉆␇, q␇쉆␇, q␇쉆␇);
+Test_N(q␇쉇␇, q␇쉇␇, q␇쉇␇, q␇쉇␇, q␇쉇␇);
+Test_N(q␇쉈␇, q␇쉈␇, q␇쉈␇, q␇쉈␇, q␇쉈␇);
+Test_N(q␇쉉␇, q␇쉉␇, q␇쉉␇, q␇쉉␇, q␇쉉␇);
+Test_N(q␇쉊␇, q␇쉊␇, q␇쉊␇, q␇쉊␇, q␇쉊␇);
+Test_N(q␇쉋␇, q␇쉋␇, q␇쉋␇, q␇쉋␇, q␇쉋␇);
+Test_N(q␇쉌␇, q␇쉌␇, q␇쉌␇, q␇쉌␇, q␇쉌␇);
+Test_N(q␇쉍␇, q␇쉍␇, q␇쉍␇, q␇쉍␇, q␇쉍␇);
+Test_N(q␇쉎␇, q␇쉎␇, q␇쉎␇, q␇쉎␇, q␇쉎␇);
+Test_N(q␇쉏␇, q␇쉏␇, q␇쉏␇, q␇쉏␇, q␇쉏␇);
+Test_N(q␇쉐␇, q␇쉐␇, q␇쉐␇, q␇쉐␇, q␇쉐␇);
+Test_N(q␇쉑␇, q␇쉑␇, q␇쉑␇, q␇쉑␇, q␇쉑␇);
+Test_N(q␇쉒␇, q␇쉒␇, q␇쉒␇, q␇쉒␇, q␇쉒␇);
+Test_N(q␇쉓␇, q␇쉓␇, q␇쉓␇, q␇쉓␇, q␇쉓␇);
+Test_N(q␇쉔␇, q␇쉔␇, q␇쉔␇, q␇쉔␇, q␇쉔␇);
+Test_N(q␇쉕␇, q␇쉕␇, q␇쉕␇, q␇쉕␇, q␇쉕␇);
+Test_N(q␇쉖␇, q␇쉖␇, q␇쉖␇, q␇쉖␇, q␇쉖␇);
+Test_N(q␇쉗␇, q␇쉗␇, q␇쉗␇, q␇쉗␇, q␇쉗␇);
+Test_N(q␇쉘␇, q␇쉘␇, q␇쉘␇, q␇쉘␇, q␇쉘␇);
+Test_N(q␇쉙␇, q␇쉙␇, q␇쉙␇, q␇쉙␇, q␇쉙␇);
+Test_N(q␇쉚␇, q␇쉚␇, q␇쉚␇, q␇쉚␇, q␇쉚␇);
+Test_N(q␇쉛␇, q␇쉛␇, q␇쉛␇, q␇쉛␇, q␇쉛␇);
+Test_N(q␇쉜␇, q␇쉜␇, q␇쉜␇, q␇쉜␇, q␇쉜␇);
+Test_N(q␇쉝␇, q␇쉝␇, q␇쉝␇, q␇쉝␇, q␇쉝␇);
+Test_N(q␇쉞␇, q␇쉞␇, q␇쉞␇, q␇쉞␇, q␇쉞␇);
+Test_N(q␇쉟␇, q␇쉟␇, q␇쉟␇, q␇쉟␇, q␇쉟␇);
+Test_N(q␇쉠␇, q␇쉠␇, q␇쉠␇, q␇쉠␇, q␇쉠␇);
+Test_N(q␇쉡␇, q␇쉡␇, q␇쉡␇, q␇쉡␇, q␇쉡␇);
+Test_N(q␇쉢␇, q␇쉢␇, q␇쉢␇, q␇쉢␇, q␇쉢␇);
+Test_N(q␇쉣␇, q␇쉣␇, q␇쉣␇, q␇쉣␇, q␇쉣␇);
+Test_N(q␇쉤␇, q␇쉤␇, q␇쉤␇, q␇쉤␇, q␇쉤␇);
+Test_N(q␇쉥␇, q␇쉥␇, q␇쉥␇, q␇쉥␇, q␇쉥␇);
+Test_N(q␇쉦␇, q␇쉦␇, q␇쉦␇, q␇쉦␇, q␇쉦␇);
+Test_N(q␇쉧␇, q␇쉧␇, q␇쉧␇, q␇쉧␇, q␇쉧␇);
+Test_N(q␇쉨␇, q␇쉨␇, q␇쉨␇, q␇쉨␇, q␇쉨␇);
+Test_N(q␇쉩␇, q␇쉩␇, q␇쉩␇, q␇쉩␇, q␇쉩␇);
+Test_N(q␇쉪␇, q␇쉪␇, q␇쉪␇, q␇쉪␇, q␇쉪␇);
+Test_N(q␇쉫␇, q␇쉫␇, q␇쉫␇, q␇쉫␇, q␇쉫␇);
+Test_N(q␇쉬␇, q␇쉬␇, q␇쉬␇, q␇쉬␇, q␇쉬␇);
+Test_N(q␇쉭␇, q␇쉭␇, q␇쉭␇, q␇쉭␇, q␇쉭␇);
+Test_N(q␇쉮␇, q␇쉮␇, q␇쉮␇, q␇쉮␇, q␇쉮␇);
+Test_N(q␇쉯␇, q␇쉯␇, q␇쉯␇, q␇쉯␇, q␇쉯␇);
+Test_N(q␇쉰␇, q␇쉰␇, q␇쉰␇, q␇쉰␇, q␇쉰␇);
+Test_N(q␇쉱␇, q␇쉱␇, q␇쉱␇, q␇쉱␇, q␇쉱␇);
+Test_N(q␇쉲␇, q␇쉲␇, q␇쉲␇, q␇쉲␇, q␇쉲␇);
+Test_N(q␇쉳␇, q␇쉳␇, q␇쉳␇, q␇쉳␇, q␇쉳␇);
+Test_N(q␇쉴␇, q␇쉴␇, q␇쉴␇, q␇쉴␇, q␇쉴␇);
+Test_N(q␇쉵␇, q␇쉵␇, q␇쉵␇, q␇쉵␇, q␇쉵␇);
+Test_N(q␇쉶␇, q␇쉶␇, q␇쉶␇, q␇쉶␇, q␇쉶␇);
+Test_N(q␇쉷␇, q␇쉷␇, q␇쉷␇, q␇쉷␇, q␇쉷␇);
+Test_N(q␇쉸␇, q␇쉸␇, q␇쉸␇, q␇쉸␇, q␇쉸␇);
+Test_N(q␇쉹␇, q␇쉹␇, q␇쉹␇, q␇쉹␇, q␇쉹␇);
+Test_N(q␇쉺␇, q␇쉺␇, q␇쉺␇, q␇쉺␇, q␇쉺␇);
+Test_N(q␇쉻␇, q␇쉻␇, q␇쉻␇, q␇쉻␇, q␇쉻␇);
+Test_N(q␇쉼␇, q␇쉼␇, q␇쉼␇, q␇쉼␇, q␇쉼␇);
+Test_N(q␇쉽␇, q␇쉽␇, q␇쉽␇, q␇쉽␇, q␇쉽␇);
+Test_N(q␇쉾␇, q␇쉾␇, q␇쉾␇, q␇쉾␇, q␇쉾␇);
+Test_N(q␇쉿␇, q␇쉿␇, q␇쉿␇, q␇쉿␇, q␇쉿␇);
+Test_N(q␇슀␇, q␇슀␇, q␇슀␇, q␇슀␇, q␇슀␇);
+Test_N(q␇슁␇, q␇슁␇, q␇슁␇, q␇슁␇, q␇슁␇);
+Test_N(q␇슂␇, q␇슂␇, q␇슂␇, q␇슂␇, q␇슂␇);
+Test_N(q␇슃␇, q␇슃␇, q␇슃␇, q␇슃␇, q␇슃␇);
+Test_N(q␇슄␇, q␇슄␇, q␇슄␇, q␇슄␇, q␇슄␇);
+Test_N(q␇슅␇, q␇슅␇, q␇슅␇, q␇슅␇, q␇슅␇);
+Test_N(q␇슆␇, q␇슆␇, q␇슆␇, q␇슆␇, q␇슆␇);
+Test_N(q␇슇␇, q␇슇␇, q␇슇␇, q␇슇␇, q␇슇␇);
+Test_N(q␇슈␇, q␇슈␇, q␇슈␇, q␇슈␇, q␇슈␇);
+Test_N(q␇슉␇, q␇슉␇, q␇슉␇, q␇슉␇, q␇슉␇);
+Test_N(q␇슊␇, q␇슊␇, q␇슊␇, q␇슊␇, q␇슊␇);
+Test_N(q␇슋␇, q␇슋␇, q␇슋␇, q␇슋␇, q␇슋␇);
+Test_N(q␇슌␇, q␇슌␇, q␇슌␇, q␇슌␇, q␇슌␇);
+Test_N(q␇슍␇, q␇슍␇, q␇슍␇, q␇슍␇, q␇슍␇);
+Test_N(q␇슎␇, q␇슎␇, q␇슎␇, q␇슎␇, q␇슎␇);
+Test_N(q␇슏␇, q␇슏␇, q␇슏␇, q␇슏␇, q␇슏␇);
+Test_N(q␇슐␇, q␇슐␇, q␇슐␇, q␇슐␇, q␇슐␇);
+Test_N(q␇슑␇, q␇슑␇, q␇슑␇, q␇슑␇, q␇슑␇);
+Test_N(q␇슒␇, q␇슒␇, q␇슒␇, q␇슒␇, q␇슒␇);
+Test_N(q␇슓␇, q␇슓␇, q␇슓␇, q␇슓␇, q␇슓␇);
+Test_N(q␇슔␇, q␇슔␇, q␇슔␇, q␇슔␇, q␇슔␇);
+Test_N(q␇슕␇, q␇슕␇, q␇슕␇, q␇슕␇, q␇슕␇);
+Test_N(q␇슖␇, q␇슖␇, q␇슖␇, q␇슖␇, q␇슖␇);
+Test_N(q␇슗␇, q␇슗␇, q␇슗␇, q␇슗␇, q␇슗␇);
+Test_N(q␇슘␇, q␇슘␇, q␇슘␇, q␇슘␇, q␇슘␇);
+Test_N(q␇슙␇, q␇슙␇, q␇슙␇, q␇슙␇, q␇슙␇);
+Test_N(q␇슚␇, q␇슚␇, q␇슚␇, q␇슚␇, q␇슚␇);
+Test_N(q␇슛␇, q␇슛␇, q␇슛␇, q␇슛␇, q␇슛␇);
+Test_N(q␇슜␇, q␇슜␇, q␇슜␇, q␇슜␇, q␇슜␇);
+Test_N(q␇슝␇, q␇슝␇, q␇슝␇, q␇슝␇, q␇슝␇);
+Test_N(q␇슞␇, q␇슞␇, q␇슞␇, q␇슞␇, q␇슞␇);
+Test_N(q␇슟␇, q␇슟␇, q␇슟␇, q␇슟␇, q␇슟␇);
+Test_N(q␇슠␇, q␇슠␇, q␇슠␇, q␇슠␇, q␇슠␇);
+Test_N(q␇슡␇, q␇슡␇, q␇슡␇, q␇슡␇, q␇슡␇);
+Test_N(q␇슢␇, q␇슢␇, q␇슢␇, q␇슢␇, q␇슢␇);
+Test_N(q␇슣␇, q␇슣␇, q␇슣␇, q␇슣␇, q␇슣␇);
+Test_N(q␇스␇, q␇스␇, q␇스␇, q␇스␇, q␇스␇);
+Test_N(q␇슥␇, q␇슥␇, q␇슥␇, q␇슥␇, q␇슥␇);
+Test_N(q␇슦␇, q␇슦␇, q␇슦␇, q␇슦␇, q␇슦␇);
+Test_N(q␇슧␇, q␇슧␇, q␇슧␇, q␇슧␇, q␇슧␇);
+Test_N(q␇슨␇, q␇슨␇, q␇슨␇, q␇슨␇, q␇슨␇);
+Test_N(q␇슩␇, q␇슩␇, q␇슩␇, q␇슩␇, q␇슩␇);
+Test_N(q␇슪␇, q␇슪␇, q␇슪␇, q␇슪␇, q␇슪␇);
+Test_N(q␇슫␇, q␇슫␇, q␇슫␇, q␇슫␇, q␇슫␇);
+Test_N(q␇슬␇, q␇슬␇, q␇슬␇, q␇슬␇, q␇슬␇);
+Test_N(q␇슭␇, q␇슭␇, q␇슭␇, q␇슭␇, q␇슭␇);
+Test_N(q␇슮␇, q␇슮␇, q␇슮␇, q␇슮␇, q␇슮␇);
+Test_N(q␇슯␇, q␇슯␇, q␇슯␇, q␇슯␇, q␇슯␇);
+Test_N(q␇슰␇, q␇슰␇, q␇슰␇, q␇슰␇, q␇슰␇);
+Test_N(q␇슱␇, q␇슱␇, q␇슱␇, q␇슱␇, q␇슱␇);
+Test_N(q␇슲␇, q␇슲␇, q␇슲␇, q␇슲␇, q␇슲␇);
+Test_N(q␇슳␇, q␇슳␇, q␇슳␇, q␇슳␇, q␇슳␇);
+Test_N(q␇슴␇, q␇슴␇, q␇슴␇, q␇슴␇, q␇슴␇);
+Test_N(q␇습␇, q␇습␇, q␇습␇, q␇습␇, q␇습␇);
+Test_N(q␇슶␇, q␇슶␇, q␇슶␇, q␇슶␇, q␇슶␇);
+Test_N(q␇슷␇, q␇슷␇, q␇슷␇, q␇슷␇, q␇슷␇);
+Test_N(q␇슸␇, q␇슸␇, q␇슸␇, q␇슸␇, q␇슸␇);
+Test_N(q␇승␇, q␇승␇, q␇승␇, q␇승␇, q␇승␇);
+Test_N(q␇슺␇, q␇슺␇, q␇슺␇, q␇슺␇, q␇슺␇);
+Test_N(q␇슻␇, q␇슻␇, q␇슻␇, q␇슻␇, q␇슻␇);
+Test_N(q␇슼␇, q␇슼␇, q␇슼␇, q␇슼␇, q␇슼␇);
+Test_N(q␇슽␇, q␇슽␇, q␇슽␇, q␇슽␇, q␇슽␇);
+Test_N(q␇슾␇, q␇슾␇, q␇슾␇, q␇슾␇, q␇슾␇);
+Test_N(q␇슿␇, q␇슿␇, q␇슿␇, q␇슿␇, q␇슿␇);
+Test_N(q␇싀␇, q␇싀␇, q␇싀␇, q␇싀␇, q␇싀␇);
+Test_N(q␇싁␇, q␇싁␇, q␇싁␇, q␇싁␇, q␇싁␇);
+Test_N(q␇싂␇, q␇싂␇, q␇싂␇, q␇싂␇, q␇싂␇);
+Test_N(q␇싃␇, q␇싃␇, q␇싃␇, q␇싃␇, q␇싃␇);
+Test_N(q␇싄␇, q␇싄␇, q␇싄␇, q␇싄␇, q␇싄␇);
+Test_N(q␇싅␇, q␇싅␇, q␇싅␇, q␇싅␇, q␇싅␇);
+Test_N(q␇싆␇, q␇싆␇, q␇싆␇, q␇싆␇, q␇싆␇);
+Test_N(q␇싇␇, q␇싇␇, q␇싇␇, q␇싇␇, q␇싇␇);
+Test_N(q␇싈␇, q␇싈␇, q␇싈␇, q␇싈␇, q␇싈␇);
+Test_N(q␇싉␇, q␇싉␇, q␇싉␇, q␇싉␇, q␇싉␇);
+Test_N(q␇싊␇, q␇싊␇, q␇싊␇, q␇싊␇, q␇싊␇);
+Test_N(q␇싋␇, q␇싋␇, q␇싋␇, q␇싋␇, q␇싋␇);
+Test_N(q␇싌␇, q␇싌␇, q␇싌␇, q␇싌␇, q␇싌␇);
+Test_N(q␇싍␇, q␇싍␇, q␇싍␇, q␇싍␇, q␇싍␇);
+Test_N(q␇싎␇, q␇싎␇, q␇싎␇, q␇싎␇, q␇싎␇);
+Test_N(q␇싏␇, q␇싏␇, q␇싏␇, q␇싏␇, q␇싏␇);
+Test_N(q␇싐␇, q␇싐␇, q␇싐␇, q␇싐␇, q␇싐␇);
+Test_N(q␇싑␇, q␇싑␇, q␇싑␇, q␇싑␇, q␇싑␇);
+Test_N(q␇싒␇, q␇싒␇, q␇싒␇, q␇싒␇, q␇싒␇);
+Test_N(q␇싓␇, q␇싓␇, q␇싓␇, q␇싓␇, q␇싓␇);
+Test_N(q␇싔␇, q␇싔␇, q␇싔␇, q␇싔␇, q␇싔␇);
+Test_N(q␇싕␇, q␇싕␇, q␇싕␇, q␇싕␇, q␇싕␇);
+Test_N(q␇싖␇, q␇싖␇, q␇싖␇, q␇싖␇, q␇싖␇);
+Test_N(q␇싗␇, q␇싗␇, q␇싗␇, q␇싗␇, q␇싗␇);
+Test_N(q␇싘␇, q␇싘␇, q␇싘␇, q␇싘␇, q␇싘␇);
+Test_N(q␇싙␇, q␇싙␇, q␇싙␇, q␇싙␇, q␇싙␇);
+Test_N(q␇싚␇, q␇싚␇, q␇싚␇, q␇싚␇, q␇싚␇);
+Test_N(q␇싛␇, q␇싛␇, q␇싛␇, q␇싛␇, q␇싛␇);
+Test_N(q␇시␇, q␇시␇, q␇시␇, q␇시␇, q␇시␇);
+Test_N(q␇식␇, q␇식␇, q␇식␇, q␇식␇, q␇식␇);
+Test_N(q␇싞␇, q␇싞␇, q␇싞␇, q␇싞␇, q␇싞␇);
+Test_N(q␇싟␇, q␇싟␇, q␇싟␇, q␇싟␇, q␇싟␇);
+Test_N(q␇신␇, q␇신␇, q␇신␇, q␇신␇, q␇신␇);
+Test_N(q␇싡␇, q␇싡␇, q␇싡␇, q␇싡␇, q␇싡␇);
+Test_N(q␇싢␇, q␇싢␇, q␇싢␇, q␇싢␇, q␇싢␇);
+Test_N(q␇싣␇, q␇싣␇, q␇싣␇, q␇싣␇, q␇싣␇);
+Test_N(q␇실␇, q␇실␇, q␇실␇, q␇실␇, q␇실␇);
+Test_N(q␇싥␇, q␇싥␇, q␇싥␇, q␇싥␇, q␇싥␇);
+Test_N(q␇싦␇, q␇싦␇, q␇싦␇, q␇싦␇, q␇싦␇);
+Test_N(q␇싧␇, q␇싧␇, q␇싧␇, q␇싧␇, q␇싧␇);
+Test_N(q␇싨␇, q␇싨␇, q␇싨␇, q␇싨␇, q␇싨␇);
+Test_N(q␇싩␇, q␇싩␇, q␇싩␇, q␇싩␇, q␇싩␇);
+Test_N(q␇싪␇, q␇싪␇, q␇싪␇, q␇싪␇, q␇싪␇);
+Test_N(q␇싫␇, q␇싫␇, q␇싫␇, q␇싫␇, q␇싫␇);
+Test_N(q␇심␇, q␇심␇, q␇심␇, q␇심␇, q␇심␇);
+Test_N(q␇십␇, q␇십␇, q␇십␇, q␇십␇, q␇십␇);
+Test_N(q␇싮␇, q␇싮␇, q␇싮␇, q␇싮␇, q␇싮␇);
+Test_N(q␇싯␇, q␇싯␇, q␇싯␇, q␇싯␇, q␇싯␇);
+Test_N(q␇싰␇, q␇싰␇, q␇싰␇, q␇싰␇, q␇싰␇);
+Test_N(q␇싱␇, q␇싱␇, q␇싱␇, q␇싱␇, q␇싱␇);
+Test_N(q␇싲␇, q␇싲␇, q␇싲␇, q␇싲␇, q␇싲␇);
+Test_N(q␇싳␇, q␇싳␇, q␇싳␇, q␇싳␇, q␇싳␇);
+Test_N(q␇싴␇, q␇싴␇, q␇싴␇, q␇싴␇, q␇싴␇);
+Test_N(q␇싵␇, q␇싵␇, q␇싵␇, q␇싵␇, q␇싵␇);
+Test_N(q␇싶␇, q␇싶␇, q␇싶␇, q␇싶␇, q␇싶␇);
+Test_N(q␇싷␇, q␇싷␇, q␇싷␇, q␇싷␇, q␇싷␇);
+Test_N(q␇싸␇, q␇싸␇, q␇싸␇, q␇싸␇, q␇싸␇);
+Test_N(q␇싹␇, q␇싹␇, q␇싹␇, q␇싹␇, q␇싹␇);
+Test_N(q␇싺␇, q␇싺␇, q␇싺␇, q␇싺␇, q␇싺␇);
+Test_N(q␇싻␇, q␇싻␇, q␇싻␇, q␇싻␇, q␇싻␇);
+Test_N(q␇싼␇, q␇싼␇, q␇싼␇, q␇싼␇, q␇싼␇);
+Test_N(q␇싽␇, q␇싽␇, q␇싽␇, q␇싽␇, q␇싽␇);
+Test_N(q␇싾␇, q␇싾␇, q␇싾␇, q␇싾␇, q␇싾␇);
+Test_N(q␇싿␇, q␇싿␇, q␇싿␇, q␇싿␇, q␇싿␇);
+Test_N(q␇쌀␇, q␇쌀␇, q␇쌀␇, q␇쌀␇, q␇쌀␇);
+Test_N(q␇쌁␇, q␇쌁␇, q␇쌁␇, q␇쌁␇, q␇쌁␇);
+Test_N(q␇쌂␇, q␇쌂␇, q␇쌂␇, q␇쌂␇, q␇쌂␇);
+Test_N(q␇쌃␇, q␇쌃␇, q␇쌃␇, q␇쌃␇, q␇쌃␇);
+Test_N(q␇쌄␇, q␇쌄␇, q␇쌄␇, q␇쌄␇, q␇쌄␇);
+Test_N(q␇쌅␇, q␇쌅␇, q␇쌅␇, q␇쌅␇, q␇쌅␇);
+Test_N(q␇쌆␇, q␇쌆␇, q␇쌆␇, q␇쌆␇, q␇쌆␇);
+Test_N(q␇쌇␇, q␇쌇␇, q␇쌇␇, q␇쌇␇, q␇쌇␇);
+Test_N(q␇쌈␇, q␇쌈␇, q␇쌈␇, q␇쌈␇, q␇쌈␇);
+Test_N(q␇쌉␇, q␇쌉␇, q␇쌉␇, q␇쌉␇, q␇쌉␇);
+Test_N(q␇쌊␇, q␇쌊␇, q␇쌊␇, q␇쌊␇, q␇쌊␇);
+Test_N(q␇쌋␇, q␇쌋␇, q␇쌋␇, q␇쌋␇, q␇쌋␇);
+Test_N(q␇쌌␇, q␇쌌␇, q␇쌌␇, q␇쌌␇, q␇쌌␇);
+Test_N(q␇쌍␇, q␇쌍␇, q␇쌍␇, q␇쌍␇, q␇쌍␇);
+Test_N(q␇쌎␇, q␇쌎␇, q␇쌎␇, q␇쌎␇, q␇쌎␇);
+Test_N(q␇쌏␇, q␇쌏␇, q␇쌏␇, q␇쌏␇, q␇쌏␇);
+Test_N(q␇쌐␇, q␇쌐␇, q␇쌐␇, q␇쌐␇, q␇쌐␇);
+Test_N(q␇쌑␇, q␇쌑␇, q␇쌑␇, q␇쌑␇, q␇쌑␇);
+Test_N(q␇쌒␇, q␇쌒␇, q␇쌒␇, q␇쌒␇, q␇쌒␇);
+Test_N(q␇쌓␇, q␇쌓␇, q␇쌓␇, q␇쌓␇, q␇쌓␇);
+Test_N(q␇쌔␇, q␇쌔␇, q␇쌔␇, q␇쌔␇, q␇쌔␇);
+Test_N(q␇쌕␇, q␇쌕␇, q␇쌕␇, q␇쌕␇, q␇쌕␇);
+Test_N(q␇쌖␇, q␇쌖␇, q␇쌖␇, q␇쌖␇, q␇쌖␇);
+Test_N(q␇쌗␇, q␇쌗␇, q␇쌗␇, q␇쌗␇, q␇쌗␇);
+Test_N(q␇쌘␇, q␇쌘␇, q␇쌘␇, q␇쌘␇, q␇쌘␇);
+Test_N(q␇쌙␇, q␇쌙␇, q␇쌙␇, q␇쌙␇, q␇쌙␇);
+Test_N(q␇쌚␇, q␇쌚␇, q␇쌚␇, q␇쌚␇, q␇쌚␇);
+Test_N(q␇쌛␇, q␇쌛␇, q␇쌛␇, q␇쌛␇, q␇쌛␇);
+Test_N(q␇쌜␇, q␇쌜␇, q␇쌜␇, q␇쌜␇, q␇쌜␇);
+Test_N(q␇쌝␇, q␇쌝␇, q␇쌝␇, q␇쌝␇, q␇쌝␇);
+Test_N(q␇쌞␇, q␇쌞␇, q␇쌞␇, q␇쌞␇, q␇쌞␇);
+Test_N(q␇쌟␇, q␇쌟␇, q␇쌟␇, q␇쌟␇, q␇쌟␇);
+Test_N(q␇쌠␇, q␇쌠␇, q␇쌠␇, q␇쌠␇, q␇쌠␇);
+Test_N(q␇쌡␇, q␇쌡␇, q␇쌡␇, q␇쌡␇, q␇쌡␇);
+Test_N(q␇쌢␇, q␇쌢␇, q␇쌢␇, q␇쌢␇, q␇쌢␇);
+Test_N(q␇쌣␇, q␇쌣␇, q␇쌣␇, q␇쌣␇, q␇쌣␇);
+Test_N(q␇쌤␇, q␇쌤␇, q␇쌤␇, q␇쌤␇, q␇쌤␇);
+Test_N(q␇쌥␇, q␇쌥␇, q␇쌥␇, q␇쌥␇, q␇쌥␇);
+Test_N(q␇쌦␇, q␇쌦␇, q␇쌦␇, q␇쌦␇, q␇쌦␇);
+Test_N(q␇쌧␇, q␇쌧␇, q␇쌧␇, q␇쌧␇, q␇쌧␇);
+Test_N(q␇쌨␇, q␇쌨␇, q␇쌨␇, q␇쌨␇, q␇쌨␇);
+Test_N(q␇쌩␇, q␇쌩␇, q␇쌩␇, q␇쌩␇, q␇쌩␇);
+Test_N(q␇쌪␇, q␇쌪␇, q␇쌪␇, q␇쌪␇, q␇쌪␇);
+Test_N(q␇쌫␇, q␇쌫␇, q␇쌫␇, q␇쌫␇, q␇쌫␇);
+Test_N(q␇쌬␇, q␇쌬␇, q␇쌬␇, q␇쌬␇, q␇쌬␇);
+Test_N(q␇쌭␇, q␇쌭␇, q␇쌭␇, q␇쌭␇, q␇쌭␇);
+Test_N(q␇쌮␇, q␇쌮␇, q␇쌮␇, q␇쌮␇, q␇쌮␇);
+Test_N(q␇쌯␇, q␇쌯␇, q␇쌯␇, q␇쌯␇, q␇쌯␇);
+Test_N(q␇쌰␇, q␇쌰␇, q␇쌰␇, q␇쌰␇, q␇쌰␇);
+Test_N(q␇쌱␇, q␇쌱␇, q␇쌱␇, q␇쌱␇, q␇쌱␇);
+Test_N(q␇쌲␇, q␇쌲␇, q␇쌲␇, q␇쌲␇, q␇쌲␇);
+Test_N(q␇쌳␇, q␇쌳␇, q␇쌳␇, q␇쌳␇, q␇쌳␇);
+Test_N(q␇쌴␇, q␇쌴␇, q␇쌴␇, q␇쌴␇, q␇쌴␇);
+Test_N(q␇쌵␇, q␇쌵␇, q␇쌵␇, q␇쌵␇, q␇쌵␇);
+Test_N(q␇쌶␇, q␇쌶␇, q␇쌶␇, q␇쌶␇, q␇쌶␇);
+Test_N(q␇쌷␇, q␇쌷␇, q␇쌷␇, q␇쌷␇, q␇쌷␇);
+Test_N(q␇쌸␇, q␇쌸␇, q␇쌸␇, q␇쌸␇, q␇쌸␇);
+Test_N(q␇쌹␇, q␇쌹␇, q␇쌹␇, q␇쌹␇, q␇쌹␇);
+Test_N(q␇쌺␇, q␇쌺␇, q␇쌺␇, q␇쌺␇, q␇쌺␇);
+Test_N(q␇쌻␇, q␇쌻␇, q␇쌻␇, q␇쌻␇, q␇쌻␇);
+Test_N(q␇쌼␇, q␇쌼␇, q␇쌼␇, q␇쌼␇, q␇쌼␇);
+Test_N(q␇쌽␇, q␇쌽␇, q␇쌽␇, q␇쌽␇, q␇쌽␇);
+Test_N(q␇쌾␇, q␇쌾␇, q␇쌾␇, q␇쌾␇, q␇쌾␇);
+Test_N(q␇쌿␇, q␇쌿␇, q␇쌿␇, q␇쌿␇, q␇쌿␇);
+Test_N(q␇썀␇, q␇썀␇, q␇썀␇, q␇썀␇, q␇썀␇);
+Test_N(q␇썁␇, q␇썁␇, q␇썁␇, q␇썁␇, q␇썁␇);
+Test_N(q␇썂␇, q␇썂␇, q␇썂␇, q␇썂␇, q␇썂␇);
+Test_N(q␇썃␇, q␇썃␇, q␇썃␇, q␇썃␇, q␇썃␇);
+Test_N(q␇썄␇, q␇썄␇, q␇썄␇, q␇썄␇, q␇썄␇);
+Test_N(q␇썅␇, q␇썅␇, q␇썅␇, q␇썅␇, q␇썅␇);
+Test_N(q␇썆␇, q␇썆␇, q␇썆␇, q␇썆␇, q␇썆␇);
+Test_N(q␇썇␇, q␇썇␇, q␇썇␇, q␇썇␇, q␇썇␇);
+Test_N(q␇썈␇, q␇썈␇, q␇썈␇, q␇썈␇, q␇썈␇);
+Test_N(q␇썉␇, q␇썉␇, q␇썉␇, q␇썉␇, q␇썉␇);
+Test_N(q␇썊␇, q␇썊␇, q␇썊␇, q␇썊␇, q␇썊␇);
+Test_N(q␇썋␇, q␇썋␇, q␇썋␇, q␇썋␇, q␇썋␇);
+Test_N(q␇썌␇, q␇썌␇, q␇썌␇, q␇썌␇, q␇썌␇);
+Test_N(q␇썍␇, q␇썍␇, q␇썍␇, q␇썍␇, q␇썍␇);
+Test_N(q␇썎␇, q␇썎␇, q␇썎␇, q␇썎␇, q␇썎␇);
+Test_N(q␇썏␇, q␇썏␇, q␇썏␇, q␇썏␇, q␇썏␇);
+Test_N(q␇썐␇, q␇썐␇, q␇썐␇, q␇썐␇, q␇썐␇);
+Test_N(q␇썑␇, q␇썑␇, q␇썑␇, q␇썑␇, q␇썑␇);
+Test_N(q␇썒␇, q␇썒␇, q␇썒␇, q␇썒␇, q␇썒␇);
+Test_N(q␇썓␇, q␇썓␇, q␇썓␇, q␇썓␇, q␇썓␇);
+Test_N(q␇썔␇, q␇썔␇, q␇썔␇, q␇썔␇, q␇썔␇);
+Test_N(q␇썕␇, q␇썕␇, q␇썕␇, q␇썕␇, q␇썕␇);
+Test_N(q␇썖␇, q␇썖␇, q␇썖␇, q␇썖␇, q␇썖␇);
+Test_N(q␇썗␇, q␇썗␇, q␇썗␇, q␇썗␇, q␇썗␇);
+Test_N(q␇썘␇, q␇썘␇, q␇썘␇, q␇썘␇, q␇썘␇);
+Test_N(q␇썙␇, q␇썙␇, q␇썙␇, q␇썙␇, q␇썙␇);
+Test_N(q␇썚␇, q␇썚␇, q␇썚␇, q␇썚␇, q␇썚␇);
+Test_N(q␇썛␇, q␇썛␇, q␇썛␇, q␇썛␇, q␇썛␇);
+Test_N(q␇썜␇, q␇썜␇, q␇썜␇, q␇썜␇, q␇썜␇);
+Test_N(q␇썝␇, q␇썝␇, q␇썝␇, q␇썝␇, q␇썝␇);
+Test_N(q␇썞␇, q␇썞␇, q␇썞␇, q␇썞␇, q␇썞␇);
+Test_N(q␇썟␇, q␇썟␇, q␇썟␇, q␇썟␇, q␇썟␇);
+Test_N(q␇썠␇, q␇썠␇, q␇썠␇, q␇썠␇, q␇썠␇);
+Test_N(q␇썡␇, q␇썡␇, q␇썡␇, q␇썡␇, q␇썡␇);
+Test_N(q␇썢␇, q␇썢␇, q␇썢␇, q␇썢␇, q␇썢␇);
+Test_N(q␇썣␇, q␇썣␇, q␇썣␇, q␇썣␇, q␇썣␇);
+Test_N(q␇썤␇, q␇썤␇, q␇썤␇, q␇썤␇, q␇썤␇);
+Test_N(q␇썥␇, q␇썥␇, q␇썥␇, q␇썥␇, q␇썥␇);
+Test_N(q␇썦␇, q␇썦␇, q␇썦␇, q␇썦␇, q␇썦␇);
+Test_N(q␇썧␇, q␇썧␇, q␇썧␇, q␇썧␇, q␇썧␇);
+Test_N(q␇써␇, q␇써␇, q␇써␇, q␇써␇, q␇써␇);
+Test_N(q␇썩␇, q␇썩␇, q␇썩␇, q␇썩␇, q␇썩␇);
+Test_N(q␇썪␇, q␇썪␇, q␇썪␇, q␇썪␇, q␇썪␇);
+Test_N(q␇썫␇, q␇썫␇, q␇썫␇, q␇썫␇, q␇썫␇);
+Test_N(q␇썬␇, q␇썬␇, q␇썬␇, q␇썬␇, q␇썬␇);
+Test_N(q␇썭␇, q␇썭␇, q␇썭␇, q␇썭␇, q␇썭␇);
+Test_N(q␇썮␇, q␇썮␇, q␇썮␇, q␇썮␇, q␇썮␇);
+Test_N(q␇썯␇, q␇썯␇, q␇썯␇, q␇썯␇, q␇썯␇);
+Test_N(q␇썰␇, q␇썰␇, q␇썰␇, q␇썰␇, q␇썰␇);
+Test_N(q␇썱␇, q␇썱␇, q␇썱␇, q␇썱␇, q␇썱␇);
+Test_N(q␇썲␇, q␇썲␇, q␇썲␇, q␇썲␇, q␇썲␇);
+Test_N(q␇썳␇, q␇썳␇, q␇썳␇, q␇썳␇, q␇썳␇);
+Test_N(q␇썴␇, q␇썴␇, q␇썴␇, q␇썴␇, q␇썴␇);
+Test_N(q␇썵␇, q␇썵␇, q␇썵␇, q␇썵␇, q␇썵␇);
+Test_N(q␇썶␇, q␇썶␇, q␇썶␇, q␇썶␇, q␇썶␇);
+Test_N(q␇썷␇, q␇썷␇, q␇썷␇, q␇썷␇, q␇썷␇);
+Test_N(q␇썸␇, q␇썸␇, q␇썸␇, q␇썸␇, q␇썸␇);
+Test_N(q␇썹␇, q␇썹␇, q␇썹␇, q␇썹␇, q␇썹␇);
+Test_N(q␇썺␇, q␇썺␇, q␇썺␇, q␇썺␇, q␇썺␇);
+Test_N(q␇썻␇, q␇썻␇, q␇썻␇, q␇썻␇, q␇썻␇);
+Test_N(q␇썼␇, q␇썼␇, q␇썼␇, q␇썼␇, q␇썼␇);
+Test_N(q␇썽␇, q␇썽␇, q␇썽␇, q␇썽␇, q␇썽␇);
+Test_N(q␇썾␇, q␇썾␇, q␇썾␇, q␇썾␇, q␇썾␇);
+Test_N(q␇썿␇, q␇썿␇, q␇썿␇, q␇썿␇, q␇썿␇);
+Test_N(q␇쎀␇, q␇쎀␇, q␇쎀␇, q␇쎀␇, q␇쎀␇);
+Test_N(q␇쎁␇, q␇쎁␇, q␇쎁␇, q␇쎁␇, q␇쎁␇);
+Test_N(q␇쎂␇, q␇쎂␇, q␇쎂␇, q␇쎂␇, q␇쎂␇);
+Test_N(q␇쎃␇, q␇쎃␇, q␇쎃␇, q␇쎃␇, q␇쎃␇);
+Test_N(q␇쎄␇, q␇쎄␇, q␇쎄␇, q␇쎄␇, q␇쎄␇);
+Test_N(q␇쎅␇, q␇쎅␇, q␇쎅␇, q␇쎅␇, q␇쎅␇);
+Test_N(q␇쎆␇, q␇쎆␇, q␇쎆␇, q␇쎆␇, q␇쎆␇);
+Test_N(q␇쎇␇, q␇쎇␇, q␇쎇␇, q␇쎇␇, q␇쎇␇);
+Test_N(q␇쎈␇, q␇쎈␇, q␇쎈␇, q␇쎈␇, q␇쎈␇);
+Test_N(q␇쎉␇, q␇쎉␇, q␇쎉␇, q␇쎉␇, q␇쎉␇);
+Test_N(q␇쎊␇, q␇쎊␇, q␇쎊␇, q␇쎊␇, q␇쎊␇);
+Test_N(q␇쎋␇, q␇쎋␇, q␇쎋␇, q␇쎋␇, q␇쎋␇);
+Test_N(q␇쎌␇, q␇쎌␇, q␇쎌␇, q␇쎌␇, q␇쎌␇);
+Test_N(q␇쎍␇, q␇쎍␇, q␇쎍␇, q␇쎍␇, q␇쎍␇);
+Test_N(q␇쎎␇, q␇쎎␇, q␇쎎␇, q␇쎎␇, q␇쎎␇);
+Test_N(q␇쎏␇, q␇쎏␇, q␇쎏␇, q␇쎏␇, q␇쎏␇);
+Test_N(q␇쎐␇, q␇쎐␇, q␇쎐␇, q␇쎐␇, q␇쎐␇);
+Test_N(q␇쎑␇, q␇쎑␇, q␇쎑␇, q␇쎑␇, q␇쎑␇);
+Test_N(q␇쎒␇, q␇쎒␇, q␇쎒␇, q␇쎒␇, q␇쎒␇);
+Test_N(q␇쎓␇, q␇쎓␇, q␇쎓␇, q␇쎓␇, q␇쎓␇);
+Test_N(q␇쎔␇, q␇쎔␇, q␇쎔␇, q␇쎔␇, q␇쎔␇);
+Test_N(q␇쎕␇, q␇쎕␇, q␇쎕␇, q␇쎕␇, q␇쎕␇);
+Test_N(q␇쎖␇, q␇쎖␇, q␇쎖␇, q␇쎖␇, q␇쎖␇);
+Test_N(q␇쎗␇, q␇쎗␇, q␇쎗␇, q␇쎗␇, q␇쎗␇);
+Test_N(q␇쎘␇, q␇쎘␇, q␇쎘␇, q␇쎘␇, q␇쎘␇);
+Test_N(q␇쎙␇, q␇쎙␇, q␇쎙␇, q␇쎙␇, q␇쎙␇);
+Test_N(q␇쎚␇, q␇쎚␇, q␇쎚␇, q␇쎚␇, q␇쎚␇);
+Test_N(q␇쎛␇, q␇쎛␇, q␇쎛␇, q␇쎛␇, q␇쎛␇);
+Test_N(q␇쎜␇, q␇쎜␇, q␇쎜␇, q␇쎜␇, q␇쎜␇);
+Test_N(q␇쎝␇, q␇쎝␇, q␇쎝␇, q␇쎝␇, q␇쎝␇);
+Test_N(q␇쎞␇, q␇쎞␇, q␇쎞␇, q␇쎞␇, q␇쎞␇);
+Test_N(q␇쎟␇, q␇쎟␇, q␇쎟␇, q␇쎟␇, q␇쎟␇);
+Test_N(q␇쎠␇, q␇쎠␇, q␇쎠␇, q␇쎠␇, q␇쎠␇);
+Test_N(q␇쎡␇, q␇쎡␇, q␇쎡␇, q␇쎡␇, q␇쎡␇);
+Test_N(q␇쎢␇, q␇쎢␇, q␇쎢␇, q␇쎢␇, q␇쎢␇);
+Test_N(q␇쎣␇, q␇쎣␇, q␇쎣␇, q␇쎣␇, q␇쎣␇);
+Test_N(q␇쎤␇, q␇쎤␇, q␇쎤␇, q␇쎤␇, q␇쎤␇);
+Test_N(q␇쎥␇, q␇쎥␇, q␇쎥␇, q␇쎥␇, q␇쎥␇);
+Test_N(q␇쎦␇, q␇쎦␇, q␇쎦␇, q␇쎦␇, q␇쎦␇);
+Test_N(q␇쎧␇, q␇쎧␇, q␇쎧␇, q␇쎧␇, q␇쎧␇);
+Test_N(q␇쎨␇, q␇쎨␇, q␇쎨␇, q␇쎨␇, q␇쎨␇);
+Test_N(q␇쎩␇, q␇쎩␇, q␇쎩␇, q␇쎩␇, q␇쎩␇);
+Test_N(q␇쎪␇, q␇쎪␇, q␇쎪␇, q␇쎪␇, q␇쎪␇);
+Test_N(q␇쎫␇, q␇쎫␇, q␇쎫␇, q␇쎫␇, q␇쎫␇);
+Test_N(q␇쎬␇, q␇쎬␇, q␇쎬␇, q␇쎬␇, q␇쎬␇);
+Test_N(q␇쎭␇, q␇쎭␇, q␇쎭␇, q␇쎭␇, q␇쎭␇);
+Test_N(q␇쎮␇, q␇쎮␇, q␇쎮␇, q␇쎮␇, q␇쎮␇);
+Test_N(q␇쎯␇, q␇쎯␇, q␇쎯␇, q␇쎯␇, q␇쎯␇);
+Test_N(q␇쎰␇, q␇쎰␇, q␇쎰␇, q␇쎰␇, q␇쎰␇);
+Test_N(q␇쎱␇, q␇쎱␇, q␇쎱␇, q␇쎱␇, q␇쎱␇);
+Test_N(q␇쎲␇, q␇쎲␇, q␇쎲␇, q␇쎲␇, q␇쎲␇);
+Test_N(q␇쎳␇, q␇쎳␇, q␇쎳␇, q␇쎳␇, q␇쎳␇);
+Test_N(q␇쎴␇, q␇쎴␇, q␇쎴␇, q␇쎴␇, q␇쎴␇);
+Test_N(q␇쎵␇, q␇쎵␇, q␇쎵␇, q␇쎵␇, q␇쎵␇);
+Test_N(q␇쎶␇, q␇쎶␇, q␇쎶␇, q␇쎶␇, q␇쎶␇);
+Test_N(q␇쎷␇, q␇쎷␇, q␇쎷␇, q␇쎷␇, q␇쎷␇);
+Test_N(q␇쎸␇, q␇쎸␇, q␇쎸␇, q␇쎸␇, q␇쎸␇);
+Test_N(q␇쎹␇, q␇쎹␇, q␇쎹␇, q␇쎹␇, q␇쎹␇);
+Test_N(q␇쎺␇, q␇쎺␇, q␇쎺␇, q␇쎺␇, q␇쎺␇);
+Test_N(q␇쎻␇, q␇쎻␇, q␇쎻␇, q␇쎻␇, q␇쎻␇);
+Test_N(q␇쎼␇, q␇쎼␇, q␇쎼␇, q␇쎼␇, q␇쎼␇);
+Test_N(q␇쎽␇, q␇쎽␇, q␇쎽␇, q␇쎽␇, q␇쎽␇);
+Test_N(q␇쎾␇, q␇쎾␇, q␇쎾␇, q␇쎾␇, q␇쎾␇);
+Test_N(q␇쎿␇, q␇쎿␇, q␇쎿␇, q␇쎿␇, q␇쎿␇);
+Test_N(q␇쏀␇, q␇쏀␇, q␇쏀␇, q␇쏀␇, q␇쏀␇);
+Test_N(q␇쏁␇, q␇쏁␇, q␇쏁␇, q␇쏁␇, q␇쏁␇);
+Test_N(q␇쏂␇, q␇쏂␇, q␇쏂␇, q␇쏂␇, q␇쏂␇);
+Test_N(q␇쏃␇, q␇쏃␇, q␇쏃␇, q␇쏃␇, q␇쏃␇);
+Test_N(q␇쏄␇, q␇쏄␇, q␇쏄␇, q␇쏄␇, q␇쏄␇);
+Test_N(q␇쏅␇, q␇쏅␇, q␇쏅␇, q␇쏅␇, q␇쏅␇);
+Test_N(q␇쏆␇, q␇쏆␇, q␇쏆␇, q␇쏆␇, q␇쏆␇);
+Test_N(q␇쏇␇, q␇쏇␇, q␇쏇␇, q␇쏇␇, q␇쏇␇);
+Test_N(q␇쏈␇, q␇쏈␇, q␇쏈␇, q␇쏈␇, q␇쏈␇);
+Test_N(q␇쏉␇, q␇쏉␇, q␇쏉␇, q␇쏉␇, q␇쏉␇);
+Test_N(q␇쏊␇, q␇쏊␇, q␇쏊␇, q␇쏊␇, q␇쏊␇);
+Test_N(q␇쏋␇, q␇쏋␇, q␇쏋␇, q␇쏋␇, q␇쏋␇);
+Test_N(q␇쏌␇, q␇쏌␇, q␇쏌␇, q␇쏌␇, q␇쏌␇);
+Test_N(q␇쏍␇, q␇쏍␇, q␇쏍␇, q␇쏍␇, q␇쏍␇);
+Test_N(q␇쏎␇, q␇쏎␇, q␇쏎␇, q␇쏎␇, q␇쏎␇);
+Test_N(q␇쏏␇, q␇쏏␇, q␇쏏␇, q␇쏏␇, q␇쏏␇);
+Test_N(q␇쏐␇, q␇쏐␇, q␇쏐␇, q␇쏐␇, q␇쏐␇);
+Test_N(q␇쏑␇, q␇쏑␇, q␇쏑␇, q␇쏑␇, q␇쏑␇);
+Test_N(q␇쏒␇, q␇쏒␇, q␇쏒␇, q␇쏒␇, q␇쏒␇);
+Test_N(q␇쏓␇, q␇쏓␇, q␇쏓␇, q␇쏓␇, q␇쏓␇);
+Test_N(q␇쏔␇, q␇쏔␇, q␇쏔␇, q␇쏔␇, q␇쏔␇);
+Test_N(q␇쏕␇, q␇쏕␇, q␇쏕␇, q␇쏕␇, q␇쏕␇);
+Test_N(q␇쏖␇, q␇쏖␇, q␇쏖␇, q␇쏖␇, q␇쏖␇);
+Test_N(q␇쏗␇, q␇쏗␇, q␇쏗␇, q␇쏗␇, q␇쏗␇);
+Test_N(q␇쏘␇, q␇쏘␇, q␇쏘␇, q␇쏘␇, q␇쏘␇);
+Test_N(q␇쏙␇, q␇쏙␇, q␇쏙␇, q␇쏙␇, q␇쏙␇);
+Test_N(q␇쏚␇, q␇쏚␇, q␇쏚␇, q␇쏚␇, q␇쏚␇);
+Test_N(q␇쏛␇, q␇쏛␇, q␇쏛␇, q␇쏛␇, q␇쏛␇);
+Test_N(q␇쏜␇, q␇쏜␇, q␇쏜␇, q␇쏜␇, q␇쏜␇);
+Test_N(q␇쏝␇, q␇쏝␇, q␇쏝␇, q␇쏝␇, q␇쏝␇);
+Test_N(q␇쏞␇, q␇쏞␇, q␇쏞␇, q␇쏞␇, q␇쏞␇);
+Test_N(q␇쏟␇, q␇쏟␇, q␇쏟␇, q␇쏟␇, q␇쏟␇);
+Test_N(q␇쏠␇, q␇쏠␇, q␇쏠␇, q␇쏠␇, q␇쏠␇);
+Test_N(q␇쏡␇, q␇쏡␇, q␇쏡␇, q␇쏡␇, q␇쏡␇);
+Test_N(q␇쏢␇, q␇쏢␇, q␇쏢␇, q␇쏢␇, q␇쏢␇);
+Test_N(q␇쏣␇, q␇쏣␇, q␇쏣␇, q␇쏣␇, q␇쏣␇);
+Test_N(q␇쏤␇, q␇쏤␇, q␇쏤␇, q␇쏤␇, q␇쏤␇);
+Test_N(q␇쏥␇, q␇쏥␇, q␇쏥␇, q␇쏥␇, q␇쏥␇);
+Test_N(q␇쏦␇, q␇쏦␇, q␇쏦␇, q␇쏦␇, q␇쏦␇);
+Test_N(q␇쏧␇, q␇쏧␇, q␇쏧␇, q␇쏧␇, q␇쏧␇);
+Test_N(q␇쏨␇, q␇쏨␇, q␇쏨␇, q␇쏨␇, q␇쏨␇);
+Test_N(q␇쏩␇, q␇쏩␇, q␇쏩␇, q␇쏩␇, q␇쏩␇);
+Test_N(q␇쏪␇, q␇쏪␇, q␇쏪␇, q␇쏪␇, q␇쏪␇);
+Test_N(q␇쏫␇, q␇쏫␇, q␇쏫␇, q␇쏫␇, q␇쏫␇);
+Test_N(q␇쏬␇, q␇쏬␇, q␇쏬␇, q␇쏬␇, q␇쏬␇);
+Test_N(q␇쏭␇, q␇쏭␇, q␇쏭␇, q␇쏭␇, q␇쏭␇);
+Test_N(q␇쏮␇, q␇쏮␇, q␇쏮␇, q␇쏮␇, q␇쏮␇);
+Test_N(q␇쏯␇, q␇쏯␇, q␇쏯␇, q␇쏯␇, q␇쏯␇);
+Test_N(q␇쏰␇, q␇쏰␇, q␇쏰␇, q␇쏰␇, q␇쏰␇);
+Test_N(q␇쏱␇, q␇쏱␇, q␇쏱␇, q␇쏱␇, q␇쏱␇);
+Test_N(q␇쏲␇, q␇쏲␇, q␇쏲␇, q␇쏲␇, q␇쏲␇);
+Test_N(q␇쏳␇, q␇쏳␇, q␇쏳␇, q␇쏳␇, q␇쏳␇);
+Test_N(q␇쏴␇, q␇쏴␇, q␇쏴␇, q␇쏴␇, q␇쏴␇);
+Test_N(q␇쏵␇, q␇쏵␇, q␇쏵␇, q␇쏵␇, q␇쏵␇);
+Test_N(q␇쏶␇, q␇쏶␇, q␇쏶␇, q␇쏶␇, q␇쏶␇);
+Test_N(q␇쏷␇, q␇쏷␇, q␇쏷␇, q␇쏷␇, q␇쏷␇);
+Test_N(q␇쏸␇, q␇쏸␇, q␇쏸␇, q␇쏸␇, q␇쏸␇);
+Test_N(q␇쏹␇, q␇쏹␇, q␇쏹␇, q␇쏹␇, q␇쏹␇);
+Test_N(q␇쏺␇, q␇쏺␇, q␇쏺␇, q␇쏺␇, q␇쏺␇);
+Test_N(q␇쏻␇, q␇쏻␇, q␇쏻␇, q␇쏻␇, q␇쏻␇);
+Test_N(q␇쏼␇, q␇쏼␇, q␇쏼␇, q␇쏼␇, q␇쏼␇);
+Test_N(q␇쏽␇, q␇쏽␇, q␇쏽␇, q␇쏽␇, q␇쏽␇);
+Test_N(q␇쏾␇, q␇쏾␇, q␇쏾␇, q␇쏾␇, q␇쏾␇);
+Test_N(q␇쏿␇, q␇쏿␇, q␇쏿␇, q␇쏿␇, q␇쏿␇);
+Test_N(q␇쐀␇, q␇쐀␇, q␇쐀␇, q␇쐀␇, q␇쐀␇);
+Test_N(q␇쐁␇, q␇쐁␇, q␇쐁␇, q␇쐁␇, q␇쐁␇);
+Test_N(q␇쐂␇, q␇쐂␇, q␇쐂␇, q␇쐂␇, q␇쐂␇);
+Test_N(q␇쐃␇, q␇쐃␇, q␇쐃␇, q␇쐃␇, q␇쐃␇);
+Test_N(q␇쐄␇, q␇쐄␇, q␇쐄␇, q␇쐄␇, q␇쐄␇);
+Test_N(q␇쐅␇, q␇쐅␇, q␇쐅␇, q␇쐅␇, q␇쐅␇);
+Test_N(q␇쐆␇, q␇쐆␇, q␇쐆␇, q␇쐆␇, q␇쐆␇);
+Test_N(q␇쐇␇, q␇쐇␇, q␇쐇␇, q␇쐇␇, q␇쐇␇);
+Test_N(q␇쐈␇, q␇쐈␇, q␇쐈␇, q␇쐈␇, q␇쐈␇);
+Test_N(q␇쐉␇, q␇쐉␇, q␇쐉␇, q␇쐉␇, q␇쐉␇);
+Test_N(q␇쐊␇, q␇쐊␇, q␇쐊␇, q␇쐊␇, q␇쐊␇);
+Test_N(q␇쐋␇, q␇쐋␇, q␇쐋␇, q␇쐋␇, q␇쐋␇);
+Test_N(q␇쐌␇, q␇쐌␇, q␇쐌␇, q␇쐌␇, q␇쐌␇);
+Test_N(q␇쐍␇, q␇쐍␇, q␇쐍␇, q␇쐍␇, q␇쐍␇);
+Test_N(q␇쐎␇, q␇쐎␇, q␇쐎␇, q␇쐎␇, q␇쐎␇);
+Test_N(q␇쐏␇, q␇쐏␇, q␇쐏␇, q␇쐏␇, q␇쐏␇);
+Test_N(q␇쐐␇, q␇쐐␇, q␇쐐␇, q␇쐐␇, q␇쐐␇);
+Test_N(q␇쐑␇, q␇쐑␇, q␇쐑␇, q␇쐑␇, q␇쐑␇);
+Test_N(q␇쐒␇, q␇쐒␇, q␇쐒␇, q␇쐒␇, q␇쐒␇);
+Test_N(q␇쐓␇, q␇쐓␇, q␇쐓␇, q␇쐓␇, q␇쐓␇);
+Test_N(q␇쐔␇, q␇쐔␇, q␇쐔␇, q␇쐔␇, q␇쐔␇);
+Test_N(q␇쐕␇, q␇쐕␇, q␇쐕␇, q␇쐕␇, q␇쐕␇);
+Test_N(q␇쐖␇, q␇쐖␇, q␇쐖␇, q␇쐖␇, q␇쐖␇);
+Test_N(q␇쐗␇, q␇쐗␇, q␇쐗␇, q␇쐗␇, q␇쐗␇);
+Test_N(q␇쐘␇, q␇쐘␇, q␇쐘␇, q␇쐘␇, q␇쐘␇);
+Test_N(q␇쐙␇, q␇쐙␇, q␇쐙␇, q␇쐙␇, q␇쐙␇);
+Test_N(q␇쐚␇, q␇쐚␇, q␇쐚␇, q␇쐚␇, q␇쐚␇);
+Test_N(q␇쐛␇, q␇쐛␇, q␇쐛␇, q␇쐛␇, q␇쐛␇);
+Test_N(q␇쐜␇, q␇쐜␇, q␇쐜␇, q␇쐜␇, q␇쐜␇);
+Test_N(q␇쐝␇, q␇쐝␇, q␇쐝␇, q␇쐝␇, q␇쐝␇);
+Test_N(q␇쐞␇, q␇쐞␇, q␇쐞␇, q␇쐞␇, q␇쐞␇);
+Test_N(q␇쐟␇, q␇쐟␇, q␇쐟␇, q␇쐟␇, q␇쐟␇);
+Test_N(q␇쐠␇, q␇쐠␇, q␇쐠␇, q␇쐠␇, q␇쐠␇);
+Test_N(q␇쐡␇, q␇쐡␇, q␇쐡␇, q␇쐡␇, q␇쐡␇);
+Test_N(q␇쐢␇, q␇쐢␇, q␇쐢␇, q␇쐢␇, q␇쐢␇);
+Test_N(q␇쐣␇, q␇쐣␇, q␇쐣␇, q␇쐣␇, q␇쐣␇);
+Test_N(q␇쐤␇, q␇쐤␇, q␇쐤␇, q␇쐤␇, q␇쐤␇);
+Test_N(q␇쐥␇, q␇쐥␇, q␇쐥␇, q␇쐥␇, q␇쐥␇);
+Test_N(q␇쐦␇, q␇쐦␇, q␇쐦␇, q␇쐦␇, q␇쐦␇);
+Test_N(q␇쐧␇, q␇쐧␇, q␇쐧␇, q␇쐧␇, q␇쐧␇);
+Test_N(q␇쐨␇, q␇쐨␇, q␇쐨␇, q␇쐨␇, q␇쐨␇);
+Test_N(q␇쐩␇, q␇쐩␇, q␇쐩␇, q␇쐩␇, q␇쐩␇);
+Test_N(q␇쐪␇, q␇쐪␇, q␇쐪␇, q␇쐪␇, q␇쐪␇);
+Test_N(q␇쐫␇, q␇쐫␇, q␇쐫␇, q␇쐫␇, q␇쐫␇);
+Test_N(q␇쐬␇, q␇쐬␇, q␇쐬␇, q␇쐬␇, q␇쐬␇);
+Test_N(q␇쐭␇, q␇쐭␇, q␇쐭␇, q␇쐭␇, q␇쐭␇);
+Test_N(q␇쐮␇, q␇쐮␇, q␇쐮␇, q␇쐮␇, q␇쐮␇);
+Test_N(q␇쐯␇, q␇쐯␇, q␇쐯␇, q␇쐯␇, q␇쐯␇);
+Test_N(q␇쐰␇, q␇쐰␇, q␇쐰␇, q␇쐰␇, q␇쐰␇);
+Test_N(q␇쐱␇, q␇쐱␇, q␇쐱␇, q␇쐱␇, q␇쐱␇);
+Test_N(q␇쐲␇, q␇쐲␇, q␇쐲␇, q␇쐲␇, q␇쐲␇);
+Test_N(q␇쐳␇, q␇쐳␇, q␇쐳␇, q␇쐳␇, q␇쐳␇);
+Test_N(q␇쐴␇, q␇쐴␇, q␇쐴␇, q␇쐴␇, q␇쐴␇);
+Test_N(q␇쐵␇, q␇쐵␇, q␇쐵␇, q␇쐵␇, q␇쐵␇);
+Test_N(q␇쐶␇, q␇쐶␇, q␇쐶␇, q␇쐶␇, q␇쐶␇);
+Test_N(q␇쐷␇, q␇쐷␇, q␇쐷␇, q␇쐷␇, q␇쐷␇);
+Test_N(q␇쐸␇, q␇쐸␇, q␇쐸␇, q␇쐸␇, q␇쐸␇);
+Test_N(q␇쐹␇, q␇쐹␇, q␇쐹␇, q␇쐹␇, q␇쐹␇);
+Test_N(q␇쐺␇, q␇쐺␇, q␇쐺␇, q␇쐺␇, q␇쐺␇);
+Test_N(q␇쐻␇, q␇쐻␇, q␇쐻␇, q␇쐻␇, q␇쐻␇);
+Test_N(q␇쐼␇, q␇쐼␇, q␇쐼␇, q␇쐼␇, q␇쐼␇);
+Test_N(q␇쐽␇, q␇쐽␇, q␇쐽␇, q␇쐽␇, q␇쐽␇);
+Test_N(q␇쐾␇, q␇쐾␇, q␇쐾␇, q␇쐾␇, q␇쐾␇);
+Test_N(q␇쐿␇, q␇쐿␇, q␇쐿␇, q␇쐿␇, q␇쐿␇);
+Test_N(q␇쑀␇, q␇쑀␇, q␇쑀␇, q␇쑀␇, q␇쑀␇);
+Test_N(q␇쑁␇, q␇쑁␇, q␇쑁␇, q␇쑁␇, q␇쑁␇);
+Test_N(q␇쑂␇, q␇쑂␇, q␇쑂␇, q␇쑂␇, q␇쑂␇);
+Test_N(q␇쑃␇, q␇쑃␇, q␇쑃␇, q␇쑃␇, q␇쑃␇);
+Test_N(q␇쑄␇, q␇쑄␇, q␇쑄␇, q␇쑄␇, q␇쑄␇);
+Test_N(q␇쑅␇, q␇쑅␇, q␇쑅␇, q␇쑅␇, q␇쑅␇);
+Test_N(q␇쑆␇, q␇쑆␇, q␇쑆␇, q␇쑆␇, q␇쑆␇);
+Test_N(q␇쑇␇, q␇쑇␇, q␇쑇␇, q␇쑇␇, q␇쑇␇);
+Test_N(q␇쑈␇, q␇쑈␇, q␇쑈␇, q␇쑈␇, q␇쑈␇);
+Test_N(q␇쑉␇, q␇쑉␇, q␇쑉␇, q␇쑉␇, q␇쑉␇);
+Test_N(q␇쑊␇, q␇쑊␇, q␇쑊␇, q␇쑊␇, q␇쑊␇);
+Test_N(q␇쑋␇, q␇쑋␇, q␇쑋␇, q␇쑋␇, q␇쑋␇);
+Test_N(q␇쑌␇, q␇쑌␇, q␇쑌␇, q␇쑌␇, q␇쑌␇);
+Test_N(q␇쑍␇, q␇쑍␇, q␇쑍␇, q␇쑍␇, q␇쑍␇);
+Test_N(q␇쑎␇, q␇쑎␇, q␇쑎␇, q␇쑎␇, q␇쑎␇);
+Test_N(q␇쑏␇, q␇쑏␇, q␇쑏␇, q␇쑏␇, q␇쑏␇);
+Test_N(q␇쑐␇, q␇쑐␇, q␇쑐␇, q␇쑐␇, q␇쑐␇);
+Test_N(q␇쑑␇, q␇쑑␇, q␇쑑␇, q␇쑑␇, q␇쑑␇);
+Test_N(q␇쑒␇, q␇쑒␇, q␇쑒␇, q␇쑒␇, q␇쑒␇);
+Test_N(q␇쑓␇, q␇쑓␇, q␇쑓␇, q␇쑓␇, q␇쑓␇);
+Test_N(q␇쑔␇, q␇쑔␇, q␇쑔␇, q␇쑔␇, q␇쑔␇);
+Test_N(q␇쑕␇, q␇쑕␇, q␇쑕␇, q␇쑕␇, q␇쑕␇);
+Test_N(q␇쑖␇, q␇쑖␇, q␇쑖␇, q␇쑖␇, q␇쑖␇);
+Test_N(q␇쑗␇, q␇쑗␇, q␇쑗␇, q␇쑗␇, q␇쑗␇);
+Test_N(q␇쑘␇, q␇쑘␇, q␇쑘␇, q␇쑘␇, q␇쑘␇);
+Test_N(q␇쑙␇, q␇쑙␇, q␇쑙␇, q␇쑙␇, q␇쑙␇);
+Test_N(q␇쑚␇, q␇쑚␇, q␇쑚␇, q␇쑚␇, q␇쑚␇);
+Test_N(q␇쑛␇, q␇쑛␇, q␇쑛␇, q␇쑛␇, q␇쑛␇);
+Test_N(q␇쑜␇, q␇쑜␇, q␇쑜␇, q␇쑜␇, q␇쑜␇);
+Test_N(q␇쑝␇, q␇쑝␇, q␇쑝␇, q␇쑝␇, q␇쑝␇);
+Test_N(q␇쑞␇, q␇쑞␇, q␇쑞␇, q␇쑞␇, q␇쑞␇);
+Test_N(q␇쑟␇, q␇쑟␇, q␇쑟␇, q␇쑟␇, q␇쑟␇);
+Test_N(q␇쑠␇, q␇쑠␇, q␇쑠␇, q␇쑠␇, q␇쑠␇);
+Test_N(q␇쑡␇, q␇쑡␇, q␇쑡␇, q␇쑡␇, q␇쑡␇);
+Test_N(q␇쑢␇, q␇쑢␇, q␇쑢␇, q␇쑢␇, q␇쑢␇);
+Test_N(q␇쑣␇, q␇쑣␇, q␇쑣␇, q␇쑣␇, q␇쑣␇);
+Test_N(q␇쑤␇, q␇쑤␇, q␇쑤␇, q␇쑤␇, q␇쑤␇);
+Test_N(q␇쑥␇, q␇쑥␇, q␇쑥␇, q␇쑥␇, q␇쑥␇);
+Test_N(q␇쑦␇, q␇쑦␇, q␇쑦␇, q␇쑦␇, q␇쑦␇);
+Test_N(q␇쑧␇, q␇쑧␇, q␇쑧␇, q␇쑧␇, q␇쑧␇);
+Test_N(q␇쑨␇, q␇쑨␇, q␇쑨␇, q␇쑨␇, q␇쑨␇);
+Test_N(q␇쑩␇, q␇쑩␇, q␇쑩␇, q␇쑩␇, q␇쑩␇);
+Test_N(q␇쑪␇, q␇쑪␇, q␇쑪␇, q␇쑪␇, q␇쑪␇);
+Test_N(q␇쑫␇, q␇쑫␇, q␇쑫␇, q␇쑫␇, q␇쑫␇);
+Test_N(q␇쑬␇, q␇쑬␇, q␇쑬␇, q␇쑬␇, q␇쑬␇);
+Test_N(q␇쑭␇, q␇쑭␇, q␇쑭␇, q␇쑭␇, q␇쑭␇);
+Test_N(q␇쑮␇, q␇쑮␇, q␇쑮␇, q␇쑮␇, q␇쑮␇);
+Test_N(q␇쑯␇, q␇쑯␇, q␇쑯␇, q␇쑯␇, q␇쑯␇);
+Test_N(q␇쑰␇, q␇쑰␇, q␇쑰␇, q␇쑰␇, q␇쑰␇);
+Test_N(q␇쑱␇, q␇쑱␇, q␇쑱␇, q␇쑱␇, q␇쑱␇);
+Test_N(q␇쑲␇, q␇쑲␇, q␇쑲␇, q␇쑲␇, q␇쑲␇);
+Test_N(q␇쑳␇, q␇쑳␇, q␇쑳␇, q␇쑳␇, q␇쑳␇);
+Test_N(q␇쑴␇, q␇쑴␇, q␇쑴␇, q␇쑴␇, q␇쑴␇);
+Test_N(q␇쑵␇, q␇쑵␇, q␇쑵␇, q␇쑵␇, q␇쑵␇);
+Test_N(q␇쑶␇, q␇쑶␇, q␇쑶␇, q␇쑶␇, q␇쑶␇);
+Test_N(q␇쑷␇, q␇쑷␇, q␇쑷␇, q␇쑷␇, q␇쑷␇);
+Test_N(q␇쑸␇, q␇쑸␇, q␇쑸␇, q␇쑸␇, q␇쑸␇);
+Test_N(q␇쑹␇, q␇쑹␇, q␇쑹␇, q␇쑹␇, q␇쑹␇);
+Test_N(q␇쑺␇, q␇쑺␇, q␇쑺␇, q␇쑺␇, q␇쑺␇);
+Test_N(q␇쑻␇, q␇쑻␇, q␇쑻␇, q␇쑻␇, q␇쑻␇);
+Test_N(q␇쑼␇, q␇쑼␇, q␇쑼␇, q␇쑼␇, q␇쑼␇);
+Test_N(q␇쑽␇, q␇쑽␇, q␇쑽␇, q␇쑽␇, q␇쑽␇);
+Test_N(q␇쑾␇, q␇쑾␇, q␇쑾␇, q␇쑾␇, q␇쑾␇);
+Test_N(q␇쑿␇, q␇쑿␇, q␇쑿␇, q␇쑿␇, q␇쑿␇);
+Test_N(q␇쒀␇, q␇쒀␇, q␇쒀␇, q␇쒀␇, q␇쒀␇);
+Test_N(q␇쒁␇, q␇쒁␇, q␇쒁␇, q␇쒁␇, q␇쒁␇);
+Test_N(q␇쒂␇, q␇쒂␇, q␇쒂␇, q␇쒂␇, q␇쒂␇);
+Test_N(q␇쒃␇, q␇쒃␇, q␇쒃␇, q␇쒃␇, q␇쒃␇);
+Test_N(q␇쒄␇, q␇쒄␇, q␇쒄␇, q␇쒄␇, q␇쒄␇);
+Test_N(q␇쒅␇, q␇쒅␇, q␇쒅␇, q␇쒅␇, q␇쒅␇);
+Test_N(q␇쒆␇, q␇쒆␇, q␇쒆␇, q␇쒆␇, q␇쒆␇);
+Test_N(q␇쒇␇, q␇쒇␇, q␇쒇␇, q␇쒇␇, q␇쒇␇);
+Test_N(q␇쒈␇, q␇쒈␇, q␇쒈␇, q␇쒈␇, q␇쒈␇);
+Test_N(q␇쒉␇, q␇쒉␇, q␇쒉␇, q␇쒉␇, q␇쒉␇);
+Test_N(q␇쒊␇, q␇쒊␇, q␇쒊␇, q␇쒊␇, q␇쒊␇);
+Test_N(q␇쒋␇, q␇쒋␇, q␇쒋␇, q␇쒋␇, q␇쒋␇);
+Test_N(q␇쒌␇, q␇쒌␇, q␇쒌␇, q␇쒌␇, q␇쒌␇);
+Test_N(q␇쒍␇, q␇쒍␇, q␇쒍␇, q␇쒍␇, q␇쒍␇);
+Test_N(q␇쒎␇, q␇쒎␇, q␇쒎␇, q␇쒎␇, q␇쒎␇);
+Test_N(q␇쒏␇, q␇쒏␇, q␇쒏␇, q␇쒏␇, q␇쒏␇);
+Test_N(q␇쒐␇, q␇쒐␇, q␇쒐␇, q␇쒐␇, q␇쒐␇);
+Test_N(q␇쒑␇, q␇쒑␇, q␇쒑␇, q␇쒑␇, q␇쒑␇);
+Test_N(q␇쒒␇, q␇쒒␇, q␇쒒␇, q␇쒒␇, q␇쒒␇);
+Test_N(q␇쒓␇, q␇쒓␇, q␇쒓␇, q␇쒓␇, q␇쒓␇);
+Test_N(q␇쒔␇, q␇쒔␇, q␇쒔␇, q␇쒔␇, q␇쒔␇);
+Test_N(q␇쒕␇, q␇쒕␇, q␇쒕␇, q␇쒕␇, q␇쒕␇);
+Test_N(q␇쒖␇, q␇쒖␇, q␇쒖␇, q␇쒖␇, q␇쒖␇);
+Test_N(q␇쒗␇, q␇쒗␇, q␇쒗␇, q␇쒗␇, q␇쒗␇);
+Test_N(q␇쒘␇, q␇쒘␇, q␇쒘␇, q␇쒘␇, q␇쒘␇);
+Test_N(q␇쒙␇, q␇쒙␇, q␇쒙␇, q␇쒙␇, q␇쒙␇);
+Test_N(q␇쒚␇, q␇쒚␇, q␇쒚␇, q␇쒚␇, q␇쒚␇);
+Test_N(q␇쒛␇, q␇쒛␇, q␇쒛␇, q␇쒛␇, q␇쒛␇);
+Test_N(q␇쒜␇, q␇쒜␇, q␇쒜␇, q␇쒜␇, q␇쒜␇);
+Test_N(q␇쒝␇, q␇쒝␇, q␇쒝␇, q␇쒝␇, q␇쒝␇);
+Test_N(q␇쒞␇, q␇쒞␇, q␇쒞␇, q␇쒞␇, q␇쒞␇);
+Test_N(q␇쒟␇, q␇쒟␇, q␇쒟␇, q␇쒟␇, q␇쒟␇);
+Test_N(q␇쒠␇, q␇쒠␇, q␇쒠␇, q␇쒠␇, q␇쒠␇);
+Test_N(q␇쒡␇, q␇쒡␇, q␇쒡␇, q␇쒡␇, q␇쒡␇);
+Test_N(q␇쒢␇, q␇쒢␇, q␇쒢␇, q␇쒢␇, q␇쒢␇);
+Test_N(q␇쒣␇, q␇쒣␇, q␇쒣␇, q␇쒣␇, q␇쒣␇);
+Test_N(q␇쒤␇, q␇쒤␇, q␇쒤␇, q␇쒤␇, q␇쒤␇);
+Test_N(q␇쒥␇, q␇쒥␇, q␇쒥␇, q␇쒥␇, q␇쒥␇);
+Test_N(q␇쒦␇, q␇쒦␇, q␇쒦␇, q␇쒦␇, q␇쒦␇);
+Test_N(q␇쒧␇, q␇쒧␇, q␇쒧␇, q␇쒧␇, q␇쒧␇);
+Test_N(q␇쒨␇, q␇쒨␇, q␇쒨␇, q␇쒨␇, q␇쒨␇);
+Test_N(q␇쒩␇, q␇쒩␇, q␇쒩␇, q␇쒩␇, q␇쒩␇);
+Test_N(q␇쒪␇, q␇쒪␇, q␇쒪␇, q␇쒪␇, q␇쒪␇);
+Test_N(q␇쒫␇, q␇쒫␇, q␇쒫␇, q␇쒫␇, q␇쒫␇);
+Test_N(q␇쒬␇, q␇쒬␇, q␇쒬␇, q␇쒬␇, q␇쒬␇);
+Test_N(q␇쒭␇, q␇쒭␇, q␇쒭␇, q␇쒭␇, q␇쒭␇);
+Test_N(q␇쒮␇, q␇쒮␇, q␇쒮␇, q␇쒮␇, q␇쒮␇);
+Test_N(q␇쒯␇, q␇쒯␇, q␇쒯␇, q␇쒯␇, q␇쒯␇);
+Test_N(q␇쒰␇, q␇쒰␇, q␇쒰␇, q␇쒰␇, q␇쒰␇);
+Test_N(q␇쒱␇, q␇쒱␇, q␇쒱␇, q␇쒱␇, q␇쒱␇);
+Test_N(q␇쒲␇, q␇쒲␇, q␇쒲␇, q␇쒲␇, q␇쒲␇);
+Test_N(q␇쒳␇, q␇쒳␇, q␇쒳␇, q␇쒳␇, q␇쒳␇);
+Test_N(q␇쒴␇, q␇쒴␇, q␇쒴␇, q␇쒴␇, q␇쒴␇);
+Test_N(q␇쒵␇, q␇쒵␇, q␇쒵␇, q␇쒵␇, q␇쒵␇);
+Test_N(q␇쒶␇, q␇쒶␇, q␇쒶␇, q␇쒶␇, q␇쒶␇);
+Test_N(q␇쒷␇, q␇쒷␇, q␇쒷␇, q␇쒷␇, q␇쒷␇);
+Test_N(q␇쒸␇, q␇쒸␇, q␇쒸␇, q␇쒸␇, q␇쒸␇);
+Test_N(q␇쒹␇, q␇쒹␇, q␇쒹␇, q␇쒹␇, q␇쒹␇);
+Test_N(q␇쒺␇, q␇쒺␇, q␇쒺␇, q␇쒺␇, q␇쒺␇);
+Test_N(q␇쒻␇, q␇쒻␇, q␇쒻␇, q␇쒻␇, q␇쒻␇);
+Test_N(q␇쒼␇, q␇쒼␇, q␇쒼␇, q␇쒼␇, q␇쒼␇);
+Test_N(q␇쒽␇, q␇쒽␇, q␇쒽␇, q␇쒽␇, q␇쒽␇);
+Test_N(q␇쒾␇, q␇쒾␇, q␇쒾␇, q␇쒾␇, q␇쒾␇);
+Test_N(q␇쒿␇, q␇쒿␇, q␇쒿␇, q␇쒿␇, q␇쒿␇);
+Test_N(q␇쓀␇, q␇쓀␇, q␇쓀␇, q␇쓀␇, q␇쓀␇);
+Test_N(q␇쓁␇, q␇쓁␇, q␇쓁␇, q␇쓁␇, q␇쓁␇);
+Test_N(q␇쓂␇, q␇쓂␇, q␇쓂␇, q␇쓂␇, q␇쓂␇);
+Test_N(q␇쓃␇, q␇쓃␇, q␇쓃␇, q␇쓃␇, q␇쓃␇);
+Test_N(q␇쓄␇, q␇쓄␇, q␇쓄␇, q␇쓄␇, q␇쓄␇);
+Test_N(q␇쓅␇, q␇쓅␇, q␇쓅␇, q␇쓅␇, q␇쓅␇);
+Test_N(q␇쓆␇, q␇쓆␇, q␇쓆␇, q␇쓆␇, q␇쓆␇);
+Test_N(q␇쓇␇, q␇쓇␇, q␇쓇␇, q␇쓇␇, q␇쓇␇);
+Test_N(q␇쓈␇, q␇쓈␇, q␇쓈␇, q␇쓈␇, q␇쓈␇);
+Test_N(q␇쓉␇, q␇쓉␇, q␇쓉␇, q␇쓉␇, q␇쓉␇);
+Test_N(q␇쓊␇, q␇쓊␇, q␇쓊␇, q␇쓊␇, q␇쓊␇);
+Test_N(q␇쓋␇, q␇쓋␇, q␇쓋␇, q␇쓋␇, q␇쓋␇);
+Test_N(q␇쓌␇, q␇쓌␇, q␇쓌␇, q␇쓌␇, q␇쓌␇);
+Test_N(q␇쓍␇, q␇쓍␇, q␇쓍␇, q␇쓍␇, q␇쓍␇);
+Test_N(q␇쓎␇, q␇쓎␇, q␇쓎␇, q␇쓎␇, q␇쓎␇);
+Test_N(q␇쓏␇, q␇쓏␇, q␇쓏␇, q␇쓏␇, q␇쓏␇);
+Test_N(q␇쓐␇, q␇쓐␇, q␇쓐␇, q␇쓐␇, q␇쓐␇);
+Test_N(q␇쓑␇, q␇쓑␇, q␇쓑␇, q␇쓑␇, q␇쓑␇);
+Test_N(q␇쓒␇, q␇쓒␇, q␇쓒␇, q␇쓒␇, q␇쓒␇);
+Test_N(q␇쓓␇, q␇쓓␇, q␇쓓␇, q␇쓓␇, q␇쓓␇);
+Test_N(q␇쓔␇, q␇쓔␇, q␇쓔␇, q␇쓔␇, q␇쓔␇);
+Test_N(q␇쓕␇, q␇쓕␇, q␇쓕␇, q␇쓕␇, q␇쓕␇);
+Test_N(q␇쓖␇, q␇쓖␇, q␇쓖␇, q␇쓖␇, q␇쓖␇);
+Test_N(q␇쓗␇, q␇쓗␇, q␇쓗␇, q␇쓗␇, q␇쓗␇);
+Test_N(q␇쓘␇, q␇쓘␇, q␇쓘␇, q␇쓘␇, q␇쓘␇);
+Test_N(q␇쓙␇, q␇쓙␇, q␇쓙␇, q␇쓙␇, q␇쓙␇);
+Test_N(q␇쓚␇, q␇쓚␇, q␇쓚␇, q␇쓚␇, q␇쓚␇);
+Test_N(q␇쓛␇, q␇쓛␇, q␇쓛␇, q␇쓛␇, q␇쓛␇);
+Test_N(q␇쓜␇, q␇쓜␇, q␇쓜␇, q␇쓜␇, q␇쓜␇);
+Test_N(q␇쓝␇, q␇쓝␇, q␇쓝␇, q␇쓝␇, q␇쓝␇);
+Test_N(q␇쓞␇, q␇쓞␇, q␇쓞␇, q␇쓞␇, q␇쓞␇);
+Test_N(q␇쓟␇, q␇쓟␇, q␇쓟␇, q␇쓟␇, q␇쓟␇);
+Test_N(q␇쓠␇, q␇쓠␇, q␇쓠␇, q␇쓠␇, q␇쓠␇);
+Test_N(q␇쓡␇, q␇쓡␇, q␇쓡␇, q␇쓡␇, q␇쓡␇);
+Test_N(q␇쓢␇, q␇쓢␇, q␇쓢␇, q␇쓢␇, q␇쓢␇);
+Test_N(q␇쓣␇, q␇쓣␇, q␇쓣␇, q␇쓣␇, q␇쓣␇);
+Test_N(q␇쓤␇, q␇쓤␇, q␇쓤␇, q␇쓤␇, q␇쓤␇);
+Test_N(q␇쓥␇, q␇쓥␇, q␇쓥␇, q␇쓥␇, q␇쓥␇);
+Test_N(q␇쓦␇, q␇쓦␇, q␇쓦␇, q␇쓦␇, q␇쓦␇);
+Test_N(q␇쓧␇, q␇쓧␇, q␇쓧␇, q␇쓧␇, q␇쓧␇);
+Test_N(q␇쓨␇, q␇쓨␇, q␇쓨␇, q␇쓨␇, q␇쓨␇);
+Test_N(q␇쓩␇, q␇쓩␇, q␇쓩␇, q␇쓩␇, q␇쓩␇);
+Test_N(q␇쓪␇, q␇쓪␇, q␇쓪␇, q␇쓪␇, q␇쓪␇);
+Test_N(q␇쓫␇, q␇쓫␇, q␇쓫␇, q␇쓫␇, q␇쓫␇);
+Test_N(q␇쓬␇, q␇쓬␇, q␇쓬␇, q␇쓬␇, q␇쓬␇);
+Test_N(q␇쓭␇, q␇쓭␇, q␇쓭␇, q␇쓭␇, q␇쓭␇);
+Test_N(q␇쓮␇, q␇쓮␇, q␇쓮␇, q␇쓮␇, q␇쓮␇);
+Test_N(q␇쓯␇, q␇쓯␇, q␇쓯␇, q␇쓯␇, q␇쓯␇);
+Test_N(q␇쓰␇, q␇쓰␇, q␇쓰␇, q␇쓰␇, q␇쓰␇);
+Test_N(q␇쓱␇, q␇쓱␇, q␇쓱␇, q␇쓱␇, q␇쓱␇);
+Test_N(q␇쓲␇, q␇쓲␇, q␇쓲␇, q␇쓲␇, q␇쓲␇);
+Test_N(q␇쓳␇, q␇쓳␇, q␇쓳␇, q␇쓳␇, q␇쓳␇);
+Test_N(q␇쓴␇, q␇쓴␇, q␇쓴␇, q␇쓴␇, q␇쓴␇);
+Test_N(q␇쓵␇, q␇쓵␇, q␇쓵␇, q␇쓵␇, q␇쓵␇);
+Test_N(q␇쓶␇, q␇쓶␇, q␇쓶␇, q␇쓶␇, q␇쓶␇);
+Test_N(q␇쓷␇, q␇쓷␇, q␇쓷␇, q␇쓷␇, q␇쓷␇);
+Test_N(q␇쓸␇, q␇쓸␇, q␇쓸␇, q␇쓸␇, q␇쓸␇);
+Test_N(q␇쓹␇, q␇쓹␇, q␇쓹␇, q␇쓹␇, q␇쓹␇);
+Test_N(q␇쓺␇, q␇쓺␇, q␇쓺␇, q␇쓺␇, q␇쓺␇);
+Test_N(q␇쓻␇, q␇쓻␇, q␇쓻␇, q␇쓻␇, q␇쓻␇);
+Test_N(q␇쓼␇, q␇쓼␇, q␇쓼␇, q␇쓼␇, q␇쓼␇);
+Test_N(q␇쓽␇, q␇쓽␇, q␇쓽␇, q␇쓽␇, q␇쓽␇);
+Test_N(q␇쓾␇, q␇쓾␇, q␇쓾␇, q␇쓾␇, q␇쓾␇);
+Test_N(q␇쓿␇, q␇쓿␇, q␇쓿␇, q␇쓿␇, q␇쓿␇);
+Test_N(q␇씀␇, q␇씀␇, q␇씀␇, q␇씀␇, q␇씀␇);
+Test_N(q␇씁␇, q␇씁␇, q␇씁␇, q␇씁␇, q␇씁␇);
+Test_N(q␇씂␇, q␇씂␇, q␇씂␇, q␇씂␇, q␇씂␇);
+Test_N(q␇씃␇, q␇씃␇, q␇씃␇, q␇씃␇, q␇씃␇);
+Test_N(q␇씄␇, q␇씄␇, q␇씄␇, q␇씄␇, q␇씄␇);
+Test_N(q␇씅␇, q␇씅␇, q␇씅␇, q␇씅␇, q␇씅␇);
+Test_N(q␇씆␇, q␇씆␇, q␇씆␇, q␇씆␇, q␇씆␇);
+Test_N(q␇씇␇, q␇씇␇, q␇씇␇, q␇씇␇, q␇씇␇);
+Test_N(q␇씈␇, q␇씈␇, q␇씈␇, q␇씈␇, q␇씈␇);
+Test_N(q␇씉␇, q␇씉␇, q␇씉␇, q␇씉␇, q␇씉␇);
+Test_N(q␇씊␇, q␇씊␇, q␇씊␇, q␇씊␇, q␇씊␇);
+Test_N(q␇씋␇, q␇씋␇, q␇씋␇, q␇씋␇, q␇씋␇);
+Test_N(q␇씌␇, q␇씌␇, q␇씌␇, q␇씌␇, q␇씌␇);
+Test_N(q␇씍␇, q␇씍␇, q␇씍␇, q␇씍␇, q␇씍␇);
+Test_N(q␇씎␇, q␇씎␇, q␇씎␇, q␇씎␇, q␇씎␇);
+Test_N(q␇씏␇, q␇씏␇, q␇씏␇, q␇씏␇, q␇씏␇);
+Test_N(q␇씐␇, q␇씐␇, q␇씐␇, q␇씐␇, q␇씐␇);
+Test_N(q␇씑␇, q␇씑␇, q␇씑␇, q␇씑␇, q␇씑␇);
+Test_N(q␇씒␇, q␇씒␇, q␇씒␇, q␇씒␇, q␇씒␇);
+Test_N(q␇씓␇, q␇씓␇, q␇씓␇, q␇씓␇, q␇씓␇);
+Test_N(q␇씔␇, q␇씔␇, q␇씔␇, q␇씔␇, q␇씔␇);
+Test_N(q␇씕␇, q␇씕␇, q␇씕␇, q␇씕␇, q␇씕␇);
+Test_N(q␇씖␇, q␇씖␇, q␇씖␇, q␇씖␇, q␇씖␇);
+Test_N(q␇씗␇, q␇씗␇, q␇씗␇, q␇씗␇, q␇씗␇);
+Test_N(q␇씘␇, q␇씘␇, q␇씘␇, q␇씘␇, q␇씘␇);
+Test_N(q␇씙␇, q␇씙␇, q␇씙␇, q␇씙␇, q␇씙␇);
+Test_N(q␇씚␇, q␇씚␇, q␇씚␇, q␇씚␇, q␇씚␇);
+Test_N(q␇씛␇, q␇씛␇, q␇씛␇, q␇씛␇, q␇씛␇);
+Test_N(q␇씜␇, q␇씜␇, q␇씜␇, q␇씜␇, q␇씜␇);
+Test_N(q␇씝␇, q␇씝␇, q␇씝␇, q␇씝␇, q␇씝␇);
+Test_N(q␇씞␇, q␇씞␇, q␇씞␇, q␇씞␇, q␇씞␇);
+Test_N(q␇씟␇, q␇씟␇, q␇씟␇, q␇씟␇, q␇씟␇);
+Test_N(q␇씠␇, q␇씠␇, q␇씠␇, q␇씠␇, q␇씠␇);
+Test_N(q␇씡␇, q␇씡␇, q␇씡␇, q␇씡␇, q␇씡␇);
+Test_N(q␇씢␇, q␇씢␇, q␇씢␇, q␇씢␇, q␇씢␇);
+Test_N(q␇씣␇, q␇씣␇, q␇씣␇, q␇씣␇, q␇씣␇);
+Test_N(q␇씤␇, q␇씤␇, q␇씤␇, q␇씤␇, q␇씤␇);
+Test_N(q␇씥␇, q␇씥␇, q␇씥␇, q␇씥␇, q␇씥␇);
+Test_N(q␇씦␇, q␇씦␇, q␇씦␇, q␇씦␇, q␇씦␇);
+Test_N(q␇씧␇, q␇씧␇, q␇씧␇, q␇씧␇, q␇씧␇);
+Test_N(q␇씨␇, q␇씨␇, q␇씨␇, q␇씨␇, q␇씨␇);
+Test_N(q␇씩␇, q␇씩␇, q␇씩␇, q␇씩␇, q␇씩␇);
+Test_N(q␇씪␇, q␇씪␇, q␇씪␇, q␇씪␇, q␇씪␇);
+Test_N(q␇씫␇, q␇씫␇, q␇씫␇, q␇씫␇, q␇씫␇);
+Test_N(q␇씬␇, q␇씬␇, q␇씬␇, q␇씬␇, q␇씬␇);
+Test_N(q␇씭␇, q␇씭␇, q␇씭␇, q␇씭␇, q␇씭␇);
+Test_N(q␇씮␇, q␇씮␇, q␇씮␇, q␇씮␇, q␇씮␇);
+Test_N(q␇씯␇, q␇씯␇, q␇씯␇, q␇씯␇, q␇씯␇);
+Test_N(q␇씰␇, q␇씰␇, q␇씰␇, q␇씰␇, q␇씰␇);
+Test_N(q␇씱␇, q␇씱␇, q␇씱␇, q␇씱␇, q␇씱␇);
+Test_N(q␇씲␇, q␇씲␇, q␇씲␇, q␇씲␇, q␇씲␇);
+Test_N(q␇씳␇, q␇씳␇, q␇씳␇, q␇씳␇, q␇씳␇);
+Test_N(q␇씴␇, q␇씴␇, q␇씴␇, q␇씴␇, q␇씴␇);
+Test_N(q␇씵␇, q␇씵␇, q␇씵␇, q␇씵␇, q␇씵␇);
+Test_N(q␇씶␇, q␇씶␇, q␇씶␇, q␇씶␇, q␇씶␇);
+Test_N(q␇씷␇, q␇씷␇, q␇씷␇, q␇씷␇, q␇씷␇);
+Test_N(q␇씸␇, q␇씸␇, q␇씸␇, q␇씸␇, q␇씸␇);
+Test_N(q␇씹␇, q␇씹␇, q␇씹␇, q␇씹␇, q␇씹␇);
+Test_N(q␇씺␇, q␇씺␇, q␇씺␇, q␇씺␇, q␇씺␇);
+Test_N(q␇씻␇, q␇씻␇, q␇씻␇, q␇씻␇, q␇씻␇);
+Test_N(q␇씼␇, q␇씼␇, q␇씼␇, q␇씼␇, q␇씼␇);
+Test_N(q␇씽␇, q␇씽␇, q␇씽␇, q␇씽␇, q␇씽␇);
+Test_N(q␇씾␇, q␇씾␇, q␇씾␇, q␇씾␇, q␇씾␇);
+Test_N(q␇씿␇, q␇씿␇, q␇씿␇, q␇씿␇, q␇씿␇);
+Test_N(q␇앀␇, q␇앀␇, q␇앀␇, q␇앀␇, q␇앀␇);
+Test_N(q␇앁␇, q␇앁␇, q␇앁␇, q␇앁␇, q␇앁␇);
+Test_N(q␇앂␇, q␇앂␇, q␇앂␇, q␇앂␇, q␇앂␇);
+Test_N(q␇앃␇, q␇앃␇, q␇앃␇, q␇앃␇, q␇앃␇);
+Test_N(q␇아␇, q␇아␇, q␇아␇, q␇아␇, q␇아␇);
+Test_N(q␇악␇, q␇악␇, q␇악␇, q␇악␇, q␇악␇);
+Test_N(q␇앆␇, q␇앆␇, q␇앆␇, q␇앆␇, q␇앆␇);
+Test_N(q␇앇␇, q␇앇␇, q␇앇␇, q␇앇␇, q␇앇␇);
+Test_N(q␇안␇, q␇안␇, q␇안␇, q␇안␇, q␇안␇);
+Test_N(q␇앉␇, q␇앉␇, q␇앉␇, q␇앉␇, q␇앉␇);
+Test_N(q␇않␇, q␇않␇, q␇않␇, q␇않␇, q␇않␇);
+Test_N(q␇앋␇, q␇앋␇, q␇앋␇, q␇앋␇, q␇앋␇);
+Test_N(q␇알␇, q␇알␇, q␇알␇, q␇알␇, q␇알␇);
+Test_N(q␇앍␇, q␇앍␇, q␇앍␇, q␇앍␇, q␇앍␇);
+Test_N(q␇앎␇, q␇앎␇, q␇앎␇, q␇앎␇, q␇앎␇);
+Test_N(q␇앏␇, q␇앏␇, q␇앏␇, q␇앏␇, q␇앏␇);
+Test_N(q␇앐␇, q␇앐␇, q␇앐␇, q␇앐␇, q␇앐␇);
+Test_N(q␇앑␇, q␇앑␇, q␇앑␇, q␇앑␇, q␇앑␇);
+Test_N(q␇앒␇, q␇앒␇, q␇앒␇, q␇앒␇, q␇앒␇);
+Test_N(q␇앓␇, q␇앓␇, q␇앓␇, q␇앓␇, q␇앓␇);
+Test_N(q␇암␇, q␇암␇, q␇암␇, q␇암␇, q␇암␇);
+Test_N(q␇압␇, q␇압␇, q␇압␇, q␇압␇, q␇압␇);
+Test_N(q␇앖␇, q␇앖␇, q␇앖␇, q␇앖␇, q␇앖␇);
+Test_N(q␇앗␇, q␇앗␇, q␇앗␇, q␇앗␇, q␇앗␇);
+Test_N(q␇았␇, q␇았␇, q␇았␇, q␇았␇, q␇았␇);
+Test_N(q␇앙␇, q␇앙␇, q␇앙␇, q␇앙␇, q␇앙␇);
+Test_N(q␇앚␇, q␇앚␇, q␇앚␇, q␇앚␇, q␇앚␇);
+Test_N(q␇앛␇, q␇앛␇, q␇앛␇, q␇앛␇, q␇앛␇);
+Test_N(q␇앜␇, q␇앜␇, q␇앜␇, q␇앜␇, q␇앜␇);
+Test_N(q␇앝␇, q␇앝␇, q␇앝␇, q␇앝␇, q␇앝␇);
+Test_N(q␇앞␇, q␇앞␇, q␇앞␇, q␇앞␇, q␇앞␇);
+Test_N(q␇앟␇, q␇앟␇, q␇앟␇, q␇앟␇, q␇앟␇);
+Test_N(q␇애␇, q␇애␇, q␇애␇, q␇애␇, q␇애␇);
+Test_N(q␇액␇, q␇액␇, q␇액␇, q␇액␇, q␇액␇);
+Test_N(q␇앢␇, q␇앢␇, q␇앢␇, q␇앢␇, q␇앢␇);
+Test_N(q␇앣␇, q␇앣␇, q␇앣␇, q␇앣␇, q␇앣␇);
+Test_N(q␇앤␇, q␇앤␇, q␇앤␇, q␇앤␇, q␇앤␇);
+Test_N(q␇앥␇, q␇앥␇, q␇앥␇, q␇앥␇, q␇앥␇);
+Test_N(q␇앦␇, q␇앦␇, q␇앦␇, q␇앦␇, q␇앦␇);
+Test_N(q␇앧␇, q␇앧␇, q␇앧␇, q␇앧␇, q␇앧␇);
+Test_N(q␇앨␇, q␇앨␇, q␇앨␇, q␇앨␇, q␇앨␇);
+Test_N(q␇앩␇, q␇앩␇, q␇앩␇, q␇앩␇, q␇앩␇);
+Test_N(q␇앪␇, q␇앪␇, q␇앪␇, q␇앪␇, q␇앪␇);
+Test_N(q␇앫␇, q␇앫␇, q␇앫␇, q␇앫␇, q␇앫␇);
+Test_N(q␇앬␇, q␇앬␇, q␇앬␇, q␇앬␇, q␇앬␇);
+Test_N(q␇앭␇, q␇앭␇, q␇앭␇, q␇앭␇, q␇앭␇);
+Test_N(q␇앮␇, q␇앮␇, q␇앮␇, q␇앮␇, q␇앮␇);
+Test_N(q␇앯␇, q␇앯␇, q␇앯␇, q␇앯␇, q␇앯␇);
+Test_N(q␇앰␇, q␇앰␇, q␇앰␇, q␇앰␇, q␇앰␇);
+Test_N(q␇앱␇, q␇앱␇, q␇앱␇, q␇앱␇, q␇앱␇);
+Test_N(q␇앲␇, q␇앲␇, q␇앲␇, q␇앲␇, q␇앲␇);
+Test_N(q␇앳␇, q␇앳␇, q␇앳␇, q␇앳␇, q␇앳␇);
+Test_N(q␇앴␇, q␇앴␇, q␇앴␇, q␇앴␇, q␇앴␇);
+Test_N(q␇앵␇, q␇앵␇, q␇앵␇, q␇앵␇, q␇앵␇);
+Test_N(q␇앶␇, q␇앶␇, q␇앶␇, q␇앶␇, q␇앶␇);
+Test_N(q␇앷␇, q␇앷␇, q␇앷␇, q␇앷␇, q␇앷␇);
+Test_N(q␇앸␇, q␇앸␇, q␇앸␇, q␇앸␇, q␇앸␇);
+Test_N(q␇앹␇, q␇앹␇, q␇앹␇, q␇앹␇, q␇앹␇);
+Test_N(q␇앺␇, q␇앺␇, q␇앺␇, q␇앺␇, q␇앺␇);
+Test_N(q␇앻␇, q␇앻␇, q␇앻␇, q␇앻␇, q␇앻␇);
+Test_N(q␇야␇, q␇야␇, q␇야␇, q␇야␇, q␇야␇);
+Test_N(q␇약␇, q␇약␇, q␇약␇, q␇약␇, q␇약␇);
+Test_N(q␇앾␇, q␇앾␇, q␇앾␇, q␇앾␇, q␇앾␇);
+Test_N(q␇앿␇, q␇앿␇, q␇앿␇, q␇앿␇, q␇앿␇);
+Test_N(q␇얀␇, q␇얀␇, q␇얀␇, q␇얀␇, q␇얀␇);
+Test_N(q␇얁␇, q␇얁␇, q␇얁␇, q␇얁␇, q␇얁␇);
+Test_N(q␇얂␇, q␇얂␇, q␇얂␇, q␇얂␇, q␇얂␇);
+Test_N(q␇얃␇, q␇얃␇, q␇얃␇, q␇얃␇, q␇얃␇);
+Test_N(q␇얄␇, q␇얄␇, q␇얄␇, q␇얄␇, q␇얄␇);
+Test_N(q␇얅␇, q␇얅␇, q␇얅␇, q␇얅␇, q␇얅␇);
+Test_N(q␇얆␇, q␇얆␇, q␇얆␇, q␇얆␇, q␇얆␇);
+Test_N(q␇얇␇, q␇얇␇, q␇얇␇, q␇얇␇, q␇얇␇);
+Test_N(q␇얈␇, q␇얈␇, q␇얈␇, q␇얈␇, q␇얈␇);
+Test_N(q␇얉␇, q␇얉␇, q␇얉␇, q␇얉␇, q␇얉␇);
+Test_N(q␇얊␇, q␇얊␇, q␇얊␇, q␇얊␇, q␇얊␇);
+Test_N(q␇얋␇, q␇얋␇, q␇얋␇, q␇얋␇, q␇얋␇);
+Test_N(q␇얌␇, q␇얌␇, q␇얌␇, q␇얌␇, q␇얌␇);
+Test_N(q␇얍␇, q␇얍␇, q␇얍␇, q␇얍␇, q␇얍␇);
+Test_N(q␇얎␇, q␇얎␇, q␇얎␇, q␇얎␇, q␇얎␇);
+Test_N(q␇얏␇, q␇얏␇, q␇얏␇, q␇얏␇, q␇얏␇);
+Test_N(q␇얐␇, q␇얐␇, q␇얐␇, q␇얐␇, q␇얐␇);
+Test_N(q␇양␇, q␇양␇, q␇양␇, q␇양␇, q␇양␇);
+Test_N(q␇얒␇, q␇얒␇, q␇얒␇, q␇얒␇, q␇얒␇);
+Test_N(q␇얓␇, q␇얓␇, q␇얓␇, q␇얓␇, q␇얓␇);
+Test_N(q␇얔␇, q␇얔␇, q␇얔␇, q␇얔␇, q␇얔␇);
+Test_N(q␇얕␇, q␇얕␇, q␇얕␇, q␇얕␇, q␇얕␇);
+Test_N(q␇얖␇, q␇얖␇, q␇얖␇, q␇얖␇, q␇얖␇);
+Test_N(q␇얗␇, q␇얗␇, q␇얗␇, q␇얗␇, q␇얗␇);
+Test_N(q␇얘␇, q␇얘␇, q␇얘␇, q␇얘␇, q␇얘␇);
+Test_N(q␇얙␇, q␇얙␇, q␇얙␇, q␇얙␇, q␇얙␇);
+Test_N(q␇얚␇, q␇얚␇, q␇얚␇, q␇얚␇, q␇얚␇);
+Test_N(q␇얛␇, q␇얛␇, q␇얛␇, q␇얛␇, q␇얛␇);
+Test_N(q␇얜␇, q␇얜␇, q␇얜␇, q␇얜␇, q␇얜␇);
+Test_N(q␇얝␇, q␇얝␇, q␇얝␇, q␇얝␇, q␇얝␇);
+Test_N(q␇얞␇, q␇얞␇, q␇얞␇, q␇얞␇, q␇얞␇);
+Test_N(q␇얟␇, q␇얟␇, q␇얟␇, q␇얟␇, q␇얟␇);
+Test_N(q␇얠␇, q␇얠␇, q␇얠␇, q␇얠␇, q␇얠␇);
+Test_N(q␇얡␇, q␇얡␇, q␇얡␇, q␇얡␇, q␇얡␇);
+Test_N(q␇얢␇, q␇얢␇, q␇얢␇, q␇얢␇, q␇얢␇);
+Test_N(q␇얣␇, q␇얣␇, q␇얣␇, q␇얣␇, q␇얣␇);
+Test_N(q␇얤␇, q␇얤␇, q␇얤␇, q␇얤␇, q␇얤␇);
+Test_N(q␇얥␇, q␇얥␇, q␇얥␇, q␇얥␇, q␇얥␇);
+Test_N(q␇얦␇, q␇얦␇, q␇얦␇, q␇얦␇, q␇얦␇);
+Test_N(q␇얧␇, q␇얧␇, q␇얧␇, q␇얧␇, q␇얧␇);
+Test_N(q␇얨␇, q␇얨␇, q␇얨␇, q␇얨␇, q␇얨␇);
+Test_N(q␇얩␇, q␇얩␇, q␇얩␇, q␇얩␇, q␇얩␇);
+Test_N(q␇얪␇, q␇얪␇, q␇얪␇, q␇얪␇, q␇얪␇);
+Test_N(q␇얫␇, q␇얫␇, q␇얫␇, q␇얫␇, q␇얫␇);
+Test_N(q␇얬␇, q␇얬␇, q␇얬␇, q␇얬␇, q␇얬␇);
+Test_N(q␇얭␇, q␇얭␇, q␇얭␇, q␇얭␇, q␇얭␇);
+Test_N(q␇얮␇, q␇얮␇, q␇얮␇, q␇얮␇, q␇얮␇);
+Test_N(q␇얯␇, q␇얯␇, q␇얯␇, q␇얯␇, q␇얯␇);
+Test_N(q␇얰␇, q␇얰␇, q␇얰␇, q␇얰␇, q␇얰␇);
+Test_N(q␇얱␇, q␇얱␇, q␇얱␇, q␇얱␇, q␇얱␇);
+Test_N(q␇얲␇, q␇얲␇, q␇얲␇, q␇얲␇, q␇얲␇);
+Test_N(q␇얳␇, q␇얳␇, q␇얳␇, q␇얳␇, q␇얳␇);
+Test_N(q␇어␇, q␇어␇, q␇어␇, q␇어␇, q␇어␇);
+Test_N(q␇억␇, q␇억␇, q␇억␇, q␇억␇, q␇억␇);
+Test_N(q␇얶␇, q␇얶␇, q␇얶␇, q␇얶␇, q␇얶␇);
+Test_N(q␇얷␇, q␇얷␇, q␇얷␇, q␇얷␇, q␇얷␇);
+Test_N(q␇언␇, q␇언␇, q␇언␇, q␇언␇, q␇언␇);
+Test_N(q␇얹␇, q␇얹␇, q␇얹␇, q␇얹␇, q␇얹␇);
+Test_N(q␇얺␇, q␇얺␇, q␇얺␇, q␇얺␇, q␇얺␇);
+Test_N(q␇얻␇, q␇얻␇, q␇얻␇, q␇얻␇, q␇얻␇);
+Test_N(q␇얼␇, q␇얼␇, q␇얼␇, q␇얼␇, q␇얼␇);
+Test_N(q␇얽␇, q␇얽␇, q␇얽␇, q␇얽␇, q␇얽␇);
+Test_N(q␇얾␇, q␇얾␇, q␇얾␇, q␇얾␇, q␇얾␇);
+Test_N(q␇얿␇, q␇얿␇, q␇얿␇, q␇얿␇, q␇얿␇);
+Test_N(q␇엀␇, q␇엀␇, q␇엀␇, q␇엀␇, q␇엀␇);
+Test_N(q␇엁␇, q␇엁␇, q␇엁␇, q␇엁␇, q␇엁␇);
+Test_N(q␇엂␇, q␇엂␇, q␇엂␇, q␇엂␇, q␇엂␇);
+Test_N(q␇엃␇, q␇엃␇, q␇엃␇, q␇엃␇, q␇엃␇);
+Test_N(q␇엄␇, q␇엄␇, q␇엄␇, q␇엄␇, q␇엄␇);
+Test_N(q␇업␇, q␇업␇, q␇업␇, q␇업␇, q␇업␇);
+Test_N(q␇없␇, q␇없␇, q␇없␇, q␇없␇, q␇없␇);
+Test_N(q␇엇␇, q␇엇␇, q␇엇␇, q␇엇␇, q␇엇␇);
+Test_N(q␇었␇, q␇었␇, q␇었␇, q␇었␇, q␇었␇);
+Test_N(q␇엉␇, q␇엉␇, q␇엉␇, q␇엉␇, q␇엉␇);
+Test_N(q␇엊␇, q␇엊␇, q␇엊␇, q␇엊␇, q␇엊␇);
+Test_N(q␇엋␇, q␇엋␇, q␇엋␇, q␇엋␇, q␇엋␇);
+Test_N(q␇엌␇, q␇엌␇, q␇엌␇, q␇엌␇, q␇엌␇);
+Test_N(q␇엍␇, q␇엍␇, q␇엍␇, q␇엍␇, q␇엍␇);
+Test_N(q␇엎␇, q␇엎␇, q␇엎␇, q␇엎␇, q␇엎␇);
+Test_N(q␇엏␇, q␇엏␇, q␇엏␇, q␇엏␇, q␇엏␇);
+Test_N(q␇에␇, q␇에␇, q␇에␇, q␇에␇, q␇에␇);
+Test_N(q␇엑␇, q␇엑␇, q␇엑␇, q␇엑␇, q␇엑␇);
+Test_N(q␇엒␇, q␇엒␇, q␇엒␇, q␇엒␇, q␇엒␇);
+Test_N(q␇엓␇, q␇엓␇, q␇엓␇, q␇엓␇, q␇엓␇);
+Test_N(q␇엔␇, q␇엔␇, q␇엔␇, q␇엔␇, q␇엔␇);
+Test_N(q␇엕␇, q␇엕␇, q␇엕␇, q␇엕␇, q␇엕␇);
+Test_N(q␇엖␇, q␇엖␇, q␇엖␇, q␇엖␇, q␇엖␇);
+Test_N(q␇엗␇, q␇엗␇, q␇엗␇, q␇엗␇, q␇엗␇);
+Test_N(q␇엘␇, q␇엘␇, q␇엘␇, q␇엘␇, q␇엘␇);
+Test_N(q␇엙␇, q␇엙␇, q␇엙␇, q␇엙␇, q␇엙␇);
+Test_N(q␇엚␇, q␇엚␇, q␇엚␇, q␇엚␇, q␇엚␇);
+Test_N(q␇엛␇, q␇엛␇, q␇엛␇, q␇엛␇, q␇엛␇);
+Test_N(q␇엜␇, q␇엜␇, q␇엜␇, q␇엜␇, q␇엜␇);
+Test_N(q␇엝␇, q␇엝␇, q␇엝␇, q␇엝␇, q␇엝␇);
+Test_N(q␇엞␇, q␇엞␇, q␇엞␇, q␇엞␇, q␇엞␇);
+Test_N(q␇엟␇, q␇엟␇, q␇엟␇, q␇엟␇, q␇엟␇);
+Test_N(q␇엠␇, q␇엠␇, q␇엠␇, q␇엠␇, q␇엠␇);
+Test_N(q␇엡␇, q␇엡␇, q␇엡␇, q␇엡␇, q␇엡␇);
+Test_N(q␇엢␇, q␇엢␇, q␇엢␇, q␇엢␇, q␇엢␇);
+Test_N(q␇엣␇, q␇엣␇, q␇엣␇, q␇엣␇, q␇엣␇);
+Test_N(q␇엤␇, q␇엤␇, q␇엤␇, q␇엤␇, q␇엤␇);
+Test_N(q␇엥␇, q␇엥␇, q␇엥␇, q␇엥␇, q␇엥␇);
+Test_N(q␇엦␇, q␇엦␇, q␇엦␇, q␇엦␇, q␇엦␇);
+Test_N(q␇엧␇, q␇엧␇, q␇엧␇, q␇엧␇, q␇엧␇);
+Test_N(q␇엨␇, q␇엨␇, q␇엨␇, q␇엨␇, q␇엨␇);
+Test_N(q␇엩␇, q␇엩␇, q␇엩␇, q␇엩␇, q␇엩␇);
+Test_N(q␇엪␇, q␇엪␇, q␇엪␇, q␇엪␇, q␇엪␇);
+Test_N(q␇엫␇, q␇엫␇, q␇엫␇, q␇엫␇, q␇엫␇);
+Test_N(q␇여␇, q␇여␇, q␇여␇, q␇여␇, q␇여␇);
+Test_N(q␇역␇, q␇역␇, q␇역␇, q␇역␇, q␇역␇);
+Test_N(q␇엮␇, q␇엮␇, q␇엮␇, q␇엮␇, q␇엮␇);
+Test_N(q␇엯␇, q␇엯␇, q␇엯␇, q␇엯␇, q␇엯␇);
+Test_N(q␇연␇, q␇연␇, q␇연␇, q␇연␇, q␇연␇);
+Test_N(q␇엱␇, q␇엱␇, q␇엱␇, q␇엱␇, q␇엱␇);
+Test_N(q␇엲␇, q␇엲␇, q␇엲␇, q␇엲␇, q␇엲␇);
+Test_N(q␇엳␇, q␇엳␇, q␇엳␇, q␇엳␇, q␇엳␇);
+Test_N(q␇열␇, q␇열␇, q␇열␇, q␇열␇, q␇열␇);
+Test_N(q␇엵␇, q␇엵␇, q␇엵␇, q␇엵␇, q␇엵␇);
+Test_N(q␇엶␇, q␇엶␇, q␇엶␇, q␇엶␇, q␇엶␇);
+Test_N(q␇엷␇, q␇엷␇, q␇엷␇, q␇엷␇, q␇엷␇);
+Test_N(q␇엸␇, q␇엸␇, q␇엸␇, q␇엸␇, q␇엸␇);
+Test_N(q␇엹␇, q␇엹␇, q␇엹␇, q␇엹␇, q␇엹␇);
+Test_N(q␇엺␇, q␇엺␇, q␇엺␇, q␇엺␇, q␇엺␇);
+Test_N(q␇엻␇, q␇엻␇, q␇엻␇, q␇엻␇, q␇엻␇);
+Test_N(q␇염␇, q␇염␇, q␇염␇, q␇염␇, q␇염␇);
+Test_N(q␇엽␇, q␇엽␇, q␇엽␇, q␇엽␇, q␇엽␇);
+Test_N(q␇엾␇, q␇엾␇, q␇엾␇, q␇엾␇, q␇엾␇);
+Test_N(q␇엿␇, q␇엿␇, q␇엿␇, q␇엿␇, q␇엿␇);
+Test_N(q␇였␇, q␇였␇, q␇였␇, q␇였␇, q␇였␇);
+Test_N(q␇영␇, q␇영␇, q␇영␇, q␇영␇, q␇영␇);
+Test_N(q␇옂␇, q␇옂␇, q␇옂␇, q␇옂␇, q␇옂␇);
+Test_N(q␇옃␇, q␇옃␇, q␇옃␇, q␇옃␇, q␇옃␇);
+Test_N(q␇옄␇, q␇옄␇, q␇옄␇, q␇옄␇, q␇옄␇);
+Test_N(q␇옅␇, q␇옅␇, q␇옅␇, q␇옅␇, q␇옅␇);
+Test_N(q␇옆␇, q␇옆␇, q␇옆␇, q␇옆␇, q␇옆␇);
+Test_N(q␇옇␇, q␇옇␇, q␇옇␇, q␇옇␇, q␇옇␇);
+Test_N(q␇예␇, q␇예␇, q␇예␇, q␇예␇, q␇예␇);
+Test_N(q␇옉␇, q␇옉␇, q␇옉␇, q␇옉␇, q␇옉␇);
+Test_N(q␇옊␇, q␇옊␇, q␇옊␇, q␇옊␇, q␇옊␇);
+Test_N(q␇옋␇, q␇옋␇, q␇옋␇, q␇옋␇, q␇옋␇);
+Test_N(q␇옌␇, q␇옌␇, q␇옌␇, q␇옌␇, q␇옌␇);
+Test_N(q␇옍␇, q␇옍␇, q␇옍␇, q␇옍␇, q␇옍␇);
+Test_N(q␇옎␇, q␇옎␇, q␇옎␇, q␇옎␇, q␇옎␇);
+Test_N(q␇옏␇, q␇옏␇, q␇옏␇, q␇옏␇, q␇옏␇);
+Test_N(q␇옐␇, q␇옐␇, q␇옐␇, q␇옐␇, q␇옐␇);
+Test_N(q␇옑␇, q␇옑␇, q␇옑␇, q␇옑␇, q␇옑␇);
+Test_N(q␇옒␇, q␇옒␇, q␇옒␇, q␇옒␇, q␇옒␇);
+Test_N(q␇옓␇, q␇옓␇, q␇옓␇, q␇옓␇, q␇옓␇);
+Test_N(q␇옔␇, q␇옔␇, q␇옔␇, q␇옔␇, q␇옔␇);
+Test_N(q␇옕␇, q␇옕␇, q␇옕␇, q␇옕␇, q␇옕␇);
+Test_N(q␇옖␇, q␇옖␇, q␇옖␇, q␇옖␇, q␇옖␇);
+Test_N(q␇옗␇, q␇옗␇, q␇옗␇, q␇옗␇, q␇옗␇);
+Test_N(q␇옘␇, q␇옘␇, q␇옘␇, q␇옘␇, q␇옘␇);
+Test_N(q␇옙␇, q␇옙␇, q␇옙␇, q␇옙␇, q␇옙␇);
+Test_N(q␇옚␇, q␇옚␇, q␇옚␇, q␇옚␇, q␇옚␇);
+Test_N(q␇옛␇, q␇옛␇, q␇옛␇, q␇옛␇, q␇옛␇);
+Test_N(q␇옜␇, q␇옜␇, q␇옜␇, q␇옜␇, q␇옜␇);
+Test_N(q␇옝␇, q␇옝␇, q␇옝␇, q␇옝␇, q␇옝␇);
+Test_N(q␇옞␇, q␇옞␇, q␇옞␇, q␇옞␇, q␇옞␇);
+Test_N(q␇옟␇, q␇옟␇, q␇옟␇, q␇옟␇, q␇옟␇);
+Test_N(q␇옠␇, q␇옠␇, q␇옠␇, q␇옠␇, q␇옠␇);
+Test_N(q␇옡␇, q␇옡␇, q␇옡␇, q␇옡␇, q␇옡␇);
+Test_N(q␇옢␇, q␇옢␇, q␇옢␇, q␇옢␇, q␇옢␇);
+Test_N(q␇옣␇, q␇옣␇, q␇옣␇, q␇옣␇, q␇옣␇);
+Test_N(q␇오␇, q␇오␇, q␇오␇, q␇오␇, q␇오␇);
+Test_N(q␇옥␇, q␇옥␇, q␇옥␇, q␇옥␇, q␇옥␇);
+Test_N(q␇옦␇, q␇옦␇, q␇옦␇, q␇옦␇, q␇옦␇);
+Test_N(q␇옧␇, q␇옧␇, q␇옧␇, q␇옧␇, q␇옧␇);
+Test_N(q␇온␇, q␇온␇, q␇온␇, q␇온␇, q␇온␇);
+Test_N(q␇옩␇, q␇옩␇, q␇옩␇, q␇옩␇, q␇옩␇);
+Test_N(q␇옪␇, q␇옪␇, q␇옪␇, q␇옪␇, q␇옪␇);
+Test_N(q␇옫␇, q␇옫␇, q␇옫␇, q␇옫␇, q␇옫␇);
+Test_N(q␇올␇, q␇올␇, q␇올␇, q␇올␇, q␇올␇);
+Test_N(q␇옭␇, q␇옭␇, q␇옭␇, q␇옭␇, q␇옭␇);
+Test_N(q␇옮␇, q␇옮␇, q␇옮␇, q␇옮␇, q␇옮␇);
+Test_N(q␇옯␇, q␇옯␇, q␇옯␇, q␇옯␇, q␇옯␇);
+Test_N(q␇옰␇, q␇옰␇, q␇옰␇, q␇옰␇, q␇옰␇);
+Test_N(q␇옱␇, q␇옱␇, q␇옱␇, q␇옱␇, q␇옱␇);
+Test_N(q␇옲␇, q␇옲␇, q␇옲␇, q␇옲␇, q␇옲␇);
+Test_N(q␇옳␇, q␇옳␇, q␇옳␇, q␇옳␇, q␇옳␇);
+Test_N(q␇옴␇, q␇옴␇, q␇옴␇, q␇옴␇, q␇옴␇);
+Test_N(q␇옵␇, q␇옵␇, q␇옵␇, q␇옵␇, q␇옵␇);
+Test_N(q␇옶␇, q␇옶␇, q␇옶␇, q␇옶␇, q␇옶␇);
+Test_N(q␇옷␇, q␇옷␇, q␇옷␇, q␇옷␇, q␇옷␇);
+Test_N(q␇옸␇, q␇옸␇, q␇옸␇, q␇옸␇, q␇옸␇);
+Test_N(q␇옹␇, q␇옹␇, q␇옹␇, q␇옹␇, q␇옹␇);
+Test_N(q␇옺␇, q␇옺␇, q␇옺␇, q␇옺␇, q␇옺␇);
+Test_N(q␇옻␇, q␇옻␇, q␇옻␇, q␇옻␇, q␇옻␇);
+Test_N(q␇옼␇, q␇옼␇, q␇옼␇, q␇옼␇, q␇옼␇);
+Test_N(q␇옽␇, q␇옽␇, q␇옽␇, q␇옽␇, q␇옽␇);
+Test_N(q␇옾␇, q␇옾␇, q␇옾␇, q␇옾␇, q␇옾␇);
+Test_N(q␇옿␇, q␇옿␇, q␇옿␇, q␇옿␇, q␇옿␇);
+Test_N(q␇와␇, q␇와␇, q␇와␇, q␇와␇, q␇와␇);
+Test_N(q␇왁␇, q␇왁␇, q␇왁␇, q␇왁␇, q␇왁␇);
+Test_N(q␇왂␇, q␇왂␇, q␇왂␇, q␇왂␇, q␇왂␇);
+Test_N(q␇왃␇, q␇왃␇, q␇왃␇, q␇왃␇, q␇왃␇);
+Test_N(q␇완␇, q␇완␇, q␇완␇, q␇완␇, q␇완␇);
+Test_N(q␇왅␇, q␇왅␇, q␇왅␇, q␇왅␇, q␇왅␇);
+Test_N(q␇왆␇, q␇왆␇, q␇왆␇, q␇왆␇, q␇왆␇);
+Test_N(q␇왇␇, q␇왇␇, q␇왇␇, q␇왇␇, q␇왇␇);
+Test_N(q␇왈␇, q␇왈␇, q␇왈␇, q␇왈␇, q␇왈␇);
+Test_N(q␇왉␇, q␇왉␇, q␇왉␇, q␇왉␇, q␇왉␇);
+Test_N(q␇왊␇, q␇왊␇, q␇왊␇, q␇왊␇, q␇왊␇);
+Test_N(q␇왋␇, q␇왋␇, q␇왋␇, q␇왋␇, q␇왋␇);
+Test_N(q␇왌␇, q␇왌␇, q␇왌␇, q␇왌␇, q␇왌␇);
+Test_N(q␇왍␇, q␇왍␇, q␇왍␇, q␇왍␇, q␇왍␇);
+Test_N(q␇왎␇, q␇왎␇, q␇왎␇, q␇왎␇, q␇왎␇);
+Test_N(q␇왏␇, q␇왏␇, q␇왏␇, q␇왏␇, q␇왏␇);
+Test_N(q␇왐␇, q␇왐␇, q␇왐␇, q␇왐␇, q␇왐␇);
+Test_N(q␇왑␇, q␇왑␇, q␇왑␇, q␇왑␇, q␇왑␇);
+Test_N(q␇왒␇, q␇왒␇, q␇왒␇, q␇왒␇, q␇왒␇);
+Test_N(q␇왓␇, q␇왓␇, q␇왓␇, q␇왓␇, q␇왓␇);
+Test_N(q␇왔␇, q␇왔␇, q␇왔␇, q␇왔␇, q␇왔␇);
+Test_N(q␇왕␇, q␇왕␇, q␇왕␇, q␇왕␇, q␇왕␇);
+Test_N(q␇왖␇, q␇왖␇, q␇왖␇, q␇왖␇, q␇왖␇);
+Test_N(q␇왗␇, q␇왗␇, q␇왗␇, q␇왗␇, q␇왗␇);
+Test_N(q␇왘␇, q␇왘␇, q␇왘␇, q␇왘␇, q␇왘␇);
+Test_N(q␇왙␇, q␇왙␇, q␇왙␇, q␇왙␇, q␇왙␇);
+Test_N(q␇왚␇, q␇왚␇, q␇왚␇, q␇왚␇, q␇왚␇);
+Test_N(q␇왛␇, q␇왛␇, q␇왛␇, q␇왛␇, q␇왛␇);
+Test_N(q␇왜␇, q␇왜␇, q␇왜␇, q␇왜␇, q␇왜␇);
+Test_N(q␇왝␇, q␇왝␇, q␇왝␇, q␇왝␇, q␇왝␇);
+Test_N(q␇왞␇, q␇왞␇, q␇왞␇, q␇왞␇, q␇왞␇);
+Test_N(q␇왟␇, q␇왟␇, q␇왟␇, q␇왟␇, q␇왟␇);
+Test_N(q␇왠␇, q␇왠␇, q␇왠␇, q␇왠␇, q␇왠␇);
+Test_N(q␇왡␇, q␇왡␇, q␇왡␇, q␇왡␇, q␇왡␇);
+Test_N(q␇왢␇, q␇왢␇, q␇왢␇, q␇왢␇, q␇왢␇);
+Test_N(q␇왣␇, q␇왣␇, q␇왣␇, q␇왣␇, q␇왣␇);
+Test_N(q␇왤␇, q␇왤␇, q␇왤␇, q␇왤␇, q␇왤␇);
+Test_N(q␇왥␇, q␇왥␇, q␇왥␇, q␇왥␇, q␇왥␇);
+Test_N(q␇왦␇, q␇왦␇, q␇왦␇, q␇왦␇, q␇왦␇);
+Test_N(q␇왧␇, q␇왧␇, q␇왧␇, q␇왧␇, q␇왧␇);
+Test_N(q␇왨␇, q␇왨␇, q␇왨␇, q␇왨␇, q␇왨␇);
+Test_N(q␇왩␇, q␇왩␇, q␇왩␇, q␇왩␇, q␇왩␇);
+Test_N(q␇왪␇, q␇왪␇, q␇왪␇, q␇왪␇, q␇왪␇);
+Test_N(q␇왫␇, q␇왫␇, q␇왫␇, q␇왫␇, q␇왫␇);
+Test_N(q␇왬␇, q␇왬␇, q␇왬␇, q␇왬␇, q␇왬␇);
+Test_N(q␇왭␇, q␇왭␇, q␇왭␇, q␇왭␇, q␇왭␇);
+Test_N(q␇왮␇, q␇왮␇, q␇왮␇, q␇왮␇, q␇왮␇);
+Test_N(q␇왯␇, q␇왯␇, q␇왯␇, q␇왯␇, q␇왯␇);
+Test_N(q␇왰␇, q␇왰␇, q␇왰␇, q␇왰␇, q␇왰␇);
+Test_N(q␇왱␇, q␇왱␇, q␇왱␇, q␇왱␇, q␇왱␇);
+Test_N(q␇왲␇, q␇왲␇, q␇왲␇, q␇왲␇, q␇왲␇);
+Test_N(q␇왳␇, q␇왳␇, q␇왳␇, q␇왳␇, q␇왳␇);
+Test_N(q␇왴␇, q␇왴␇, q␇왴␇, q␇왴␇, q␇왴␇);
+Test_N(q␇왵␇, q␇왵␇, q␇왵␇, q␇왵␇, q␇왵␇);
+Test_N(q␇왶␇, q␇왶␇, q␇왶␇, q␇왶␇, q␇왶␇);
+Test_N(q␇왷␇, q␇왷␇, q␇왷␇, q␇왷␇, q␇왷␇);
+Test_N(q␇외␇, q␇외␇, q␇외␇, q␇외␇, q␇외␇);
+Test_N(q␇왹␇, q␇왹␇, q␇왹␇, q␇왹␇, q␇왹␇);
+Test_N(q␇왺␇, q␇왺␇, q␇왺␇, q␇왺␇, q␇왺␇);
+Test_N(q␇왻␇, q␇왻␇, q␇왻␇, q␇왻␇, q␇왻␇);
+Test_N(q␇왼␇, q␇왼␇, q␇왼␇, q␇왼␇, q␇왼␇);
+Test_N(q␇왽␇, q␇왽␇, q␇왽␇, q␇왽␇, q␇왽␇);
+Test_N(q␇왾␇, q␇왾␇, q␇왾␇, q␇왾␇, q␇왾␇);
+Test_N(q␇왿␇, q␇왿␇, q␇왿␇, q␇왿␇, q␇왿␇);
+Test_N(q␇욀␇, q␇욀␇, q␇욀␇, q␇욀␇, q␇욀␇);
+Test_N(q␇욁␇, q␇욁␇, q␇욁␇, q␇욁␇, q␇욁␇);
+Test_N(q␇욂␇, q␇욂␇, q␇욂␇, q␇욂␇, q␇욂␇);
+Test_N(q␇욃␇, q␇욃␇, q␇욃␇, q␇욃␇, q␇욃␇);
+Test_N(q␇욄␇, q␇욄␇, q␇욄␇, q␇욄␇, q␇욄␇);
+Test_N(q␇욅␇, q␇욅␇, q␇욅␇, q␇욅␇, q␇욅␇);
+Test_N(q␇욆␇, q␇욆␇, q␇욆␇, q␇욆␇, q␇욆␇);
+Test_N(q␇욇␇, q␇욇␇, q␇욇␇, q␇욇␇, q␇욇␇);
+Test_N(q␇욈␇, q␇욈␇, q␇욈␇, q␇욈␇, q␇욈␇);
+Test_N(q␇욉␇, q␇욉␇, q␇욉␇, q␇욉␇, q␇욉␇);
+Test_N(q␇욊␇, q␇욊␇, q␇욊␇, q␇욊␇, q␇욊␇);
+Test_N(q␇욋␇, q␇욋␇, q␇욋␇, q␇욋␇, q␇욋␇);
+Test_N(q␇욌␇, q␇욌␇, q␇욌␇, q␇욌␇, q␇욌␇);
+Test_N(q␇욍␇, q␇욍␇, q␇욍␇, q␇욍␇, q␇욍␇);
+Test_N(q␇욎␇, q␇욎␇, q␇욎␇, q␇욎␇, q␇욎␇);
+Test_N(q␇욏␇, q␇욏␇, q␇욏␇, q␇욏␇, q␇욏␇);
+Test_N(q␇욐␇, q␇욐␇, q␇욐␇, q␇욐␇, q␇욐␇);
+Test_N(q␇욑␇, q␇욑␇, q␇욑␇, q␇욑␇, q␇욑␇);
+Test_N(q␇욒␇, q␇욒␇, q␇욒␇, q␇욒␇, q␇욒␇);
+Test_N(q␇욓␇, q␇욓␇, q␇욓␇, q␇욓␇, q␇욓␇);
+Test_N(q␇요␇, q␇요␇, q␇요␇, q␇요␇, q␇요␇);
+Test_N(q␇욕␇, q␇욕␇, q␇욕␇, q␇욕␇, q␇욕␇);
+Test_N(q␇욖␇, q␇욖␇, q␇욖␇, q␇욖␇, q␇욖␇);
+Test_N(q␇욗␇, q␇욗␇, q␇욗␇, q␇욗␇, q␇욗␇);
+Test_N(q␇욘␇, q␇욘␇, q␇욘␇, q␇욘␇, q␇욘␇);
+Test_N(q␇욙␇, q␇욙␇, q␇욙␇, q␇욙␇, q␇욙␇);
+Test_N(q␇욚␇, q␇욚␇, q␇욚␇, q␇욚␇, q␇욚␇);
+Test_N(q␇욛␇, q␇욛␇, q␇욛␇, q␇욛␇, q␇욛␇);
+Test_N(q␇욜␇, q␇욜␇, q␇욜␇, q␇욜␇, q␇욜␇);
+Test_N(q␇욝␇, q␇욝␇, q␇욝␇, q␇욝␇, q␇욝␇);
+Test_N(q␇욞␇, q␇욞␇, q␇욞␇, q␇욞␇, q␇욞␇);
+Test_N(q␇욟␇, q␇욟␇, q␇욟␇, q␇욟␇, q␇욟␇);
+Test_N(q␇욠␇, q␇욠␇, q␇욠␇, q␇욠␇, q␇욠␇);
+Test_N(q␇욡␇, q␇욡␇, q␇욡␇, q␇욡␇, q␇욡␇);
+Test_N(q␇욢␇, q␇욢␇, q␇욢␇, q␇욢␇, q␇욢␇);
+Test_N(q␇욣␇, q␇욣␇, q␇욣␇, q␇욣␇, q␇욣␇);
+Test_N(q␇욤␇, q␇욤␇, q␇욤␇, q␇욤␇, q␇욤␇);
+Test_N(q␇욥␇, q␇욥␇, q␇욥␇, q␇욥␇, q␇욥␇);
+Test_N(q␇욦␇, q␇욦␇, q␇욦␇, q␇욦␇, q␇욦␇);
+Test_N(q␇욧␇, q␇욧␇, q␇욧␇, q␇욧␇, q␇욧␇);
+Test_N(q␇욨␇, q␇욨␇, q␇욨␇, q␇욨␇, q␇욨␇);
+Test_N(q␇용␇, q␇용␇, q␇용␇, q␇용␇, q␇용␇);
+Test_N(q␇욪␇, q␇욪␇, q␇욪␇, q␇욪␇, q␇욪␇);
+Test_N(q␇욫␇, q␇욫␇, q␇욫␇, q␇욫␇, q␇욫␇);
+Test_N(q␇욬␇, q␇욬␇, q␇욬␇, q␇욬␇, q␇욬␇);
+Test_N(q␇욭␇, q␇욭␇, q␇욭␇, q␇욭␇, q␇욭␇);
+Test_N(q␇욮␇, q␇욮␇, q␇욮␇, q␇욮␇, q␇욮␇);
+Test_N(q␇욯␇, q␇욯␇, q␇욯␇, q␇욯␇, q␇욯␇);
+Test_N(q␇우␇, q␇우␇, q␇우␇, q␇우␇, q␇우␇);
+Test_N(q␇욱␇, q␇욱␇, q␇욱␇, q␇욱␇, q␇욱␇);
+Test_N(q␇욲␇, q␇욲␇, q␇욲␇, q␇욲␇, q␇욲␇);
+Test_N(q␇욳␇, q␇욳␇, q␇욳␇, q␇욳␇, q␇욳␇);
+Test_N(q␇운␇, q␇운␇, q␇운␇, q␇운␇, q␇운␇);
+Test_N(q␇욵␇, q␇욵␇, q␇욵␇, q␇욵␇, q␇욵␇);
+Test_N(q␇욶␇, q␇욶␇, q␇욶␇, q␇욶␇, q␇욶␇);
+Test_N(q␇욷␇, q␇욷␇, q␇욷␇, q␇욷␇, q␇욷␇);
+Test_N(q␇울␇, q␇울␇, q␇울␇, q␇울␇, q␇울␇);
+Test_N(q␇욹␇, q␇욹␇, q␇욹␇, q␇욹␇, q␇욹␇);
+Test_N(q␇욺␇, q␇욺␇, q␇욺␇, q␇욺␇, q␇욺␇);
+Test_N(q␇욻␇, q␇욻␇, q␇욻␇, q␇욻␇, q␇욻␇);
+Test_N(q␇욼␇, q␇욼␇, q␇욼␇, q␇욼␇, q␇욼␇);
+Test_N(q␇욽␇, q␇욽␇, q␇욽␇, q␇욽␇, q␇욽␇);
+Test_N(q␇욾␇, q␇욾␇, q␇욾␇, q␇욾␇, q␇욾␇);
+Test_N(q␇욿␇, q␇욿␇, q␇욿␇, q␇욿␇, q␇욿␇);
+Test_N(q␇움␇, q␇움␇, q␇움␇, q␇움␇, q␇움␇);
+Test_N(q␇웁␇, q␇웁␇, q␇웁␇, q␇웁␇, q␇웁␇);
+Test_N(q␇웂␇, q␇웂␇, q␇웂␇, q␇웂␇, q␇웂␇);
+Test_N(q␇웃␇, q␇웃␇, q␇웃␇, q␇웃␇, q␇웃␇);
+Test_N(q␇웄␇, q␇웄␇, q␇웄␇, q␇웄␇, q␇웄␇);
+Test_N(q␇웅␇, q␇웅␇, q␇웅␇, q␇웅␇, q␇웅␇);
+Test_N(q␇웆␇, q␇웆␇, q␇웆␇, q␇웆␇, q␇웆␇);
+Test_N(q␇웇␇, q␇웇␇, q␇웇␇, q␇웇␇, q␇웇␇);
+Test_N(q␇웈␇, q␇웈␇, q␇웈␇, q␇웈␇, q␇웈␇);
+Test_N(q␇웉␇, q␇웉␇, q␇웉␇, q␇웉␇, q␇웉␇);
+Test_N(q␇웊␇, q␇웊␇, q␇웊␇, q␇웊␇, q␇웊␇);
+Test_N(q␇웋␇, q␇웋␇, q␇웋␇, q␇웋␇, q␇웋␇);
+Test_N(q␇워␇, q␇워␇, q␇워␇, q␇워␇, q␇워␇);
+Test_N(q␇웍␇, q␇웍␇, q␇웍␇, q␇웍␇, q␇웍␇);
+Test_N(q␇웎␇, q␇웎␇, q␇웎␇, q␇웎␇, q␇웎␇);
+Test_N(q␇웏␇, q␇웏␇, q␇웏␇, q␇웏␇, q␇웏␇);
+Test_N(q␇원␇, q␇원␇, q␇원␇, q␇원␇, q␇원␇);
+Test_N(q␇웑␇, q␇웑␇, q␇웑␇, q␇웑␇, q␇웑␇);
+Test_N(q␇웒␇, q␇웒␇, q␇웒␇, q␇웒␇, q␇웒␇);
+Test_N(q␇웓␇, q␇웓␇, q␇웓␇, q␇웓␇, q␇웓␇);
+Test_N(q␇월␇, q␇월␇, q␇월␇, q␇월␇, q␇월␇);
+Test_N(q␇웕␇, q␇웕␇, q␇웕␇, q␇웕␇, q␇웕␇);
+Test_N(q␇웖␇, q␇웖␇, q␇웖␇, q␇웖␇, q␇웖␇);
+Test_N(q␇웗␇, q␇웗␇, q␇웗␇, q␇웗␇, q␇웗␇);
+Test_N(q␇웘␇, q␇웘␇, q␇웘␇, q␇웘␇, q␇웘␇);
+Test_N(q␇웙␇, q␇웙␇, q␇웙␇, q␇웙␇, q␇웙␇);
+Test_N(q␇웚␇, q␇웚␇, q␇웚␇, q␇웚␇, q␇웚␇);
+Test_N(q␇웛␇, q␇웛␇, q␇웛␇, q␇웛␇, q␇웛␇);
+Test_N(q␇웜␇, q␇웜␇, q␇웜␇, q␇웜␇, q␇웜␇);
+Test_N(q␇웝␇, q␇웝␇, q␇웝␇, q␇웝␇, q␇웝␇);
+Test_N(q␇웞␇, q␇웞␇, q␇웞␇, q␇웞␇, q␇웞␇);
+Test_N(q␇웟␇, q␇웟␇, q␇웟␇, q␇웟␇, q␇웟␇);
+Test_N(q␇웠␇, q␇웠␇, q␇웠␇, q␇웠␇, q␇웠␇);
+Test_N(q␇웡␇, q␇웡␇, q␇웡␇, q␇웡␇, q␇웡␇);
+Test_N(q␇웢␇, q␇웢␇, q␇웢␇, q␇웢␇, q␇웢␇);
+Test_N(q␇웣␇, q␇웣␇, q␇웣␇, q␇웣␇, q␇웣␇);
+Test_N(q␇웤␇, q␇웤␇, q␇웤␇, q␇웤␇, q␇웤␇);
+Test_N(q␇웥␇, q␇웥␇, q␇웥␇, q␇웥␇, q␇웥␇);
+Test_N(q␇웦␇, q␇웦␇, q␇웦␇, q␇웦␇, q␇웦␇);
+Test_N(q␇웧␇, q␇웧␇, q␇웧␇, q␇웧␇, q␇웧␇);
+Test_N(q␇웨␇, q␇웨␇, q␇웨␇, q␇웨␇, q␇웨␇);
+Test_N(q␇웩␇, q␇웩␇, q␇웩␇, q␇웩␇, q␇웩␇);
+Test_N(q␇웪␇, q␇웪␇, q␇웪␇, q␇웪␇, q␇웪␇);
+Test_N(q␇웫␇, q␇웫␇, q␇웫␇, q␇웫␇, q␇웫␇);
+Test_N(q␇웬␇, q␇웬␇, q␇웬␇, q␇웬␇, q␇웬␇);
+Test_N(q␇웭␇, q␇웭␇, q␇웭␇, q␇웭␇, q␇웭␇);
+Test_N(q␇웮␇, q␇웮␇, q␇웮␇, q␇웮␇, q␇웮␇);
+Test_N(q␇웯␇, q␇웯␇, q␇웯␇, q␇웯␇, q␇웯␇);
+Test_N(q␇웰␇, q␇웰␇, q␇웰␇, q␇웰␇, q␇웰␇);
+Test_N(q␇웱␇, q␇웱␇, q␇웱␇, q␇웱␇, q␇웱␇);
+Test_N(q␇웲␇, q␇웲␇, q␇웲␇, q␇웲␇, q␇웲␇);
+Test_N(q␇웳␇, q␇웳␇, q␇웳␇, q␇웳␇, q␇웳␇);
+Test_N(q␇웴␇, q␇웴␇, q␇웴␇, q␇웴␇, q␇웴␇);
+Test_N(q␇웵␇, q␇웵␇, q␇웵␇, q␇웵␇, q␇웵␇);
+Test_N(q␇웶␇, q␇웶␇, q␇웶␇, q␇웶␇, q␇웶␇);
+Test_N(q␇웷␇, q␇웷␇, q␇웷␇, q␇웷␇, q␇웷␇);
+Test_N(q␇웸␇, q␇웸␇, q␇웸␇, q␇웸␇, q␇웸␇);
+Test_N(q␇웹␇, q␇웹␇, q␇웹␇, q␇웹␇, q␇웹␇);
+Test_N(q␇웺␇, q␇웺␇, q␇웺␇, q␇웺␇, q␇웺␇);
+Test_N(q␇웻␇, q␇웻␇, q␇웻␇, q␇웻␇, q␇웻␇);
+Test_N(q␇웼␇, q␇웼␇, q␇웼␇, q␇웼␇, q␇웼␇);
+Test_N(q␇웽␇, q␇웽␇, q␇웽␇, q␇웽␇, q␇웽␇);
+Test_N(q␇웾␇, q␇웾␇, q␇웾␇, q␇웾␇, q␇웾␇);
+Test_N(q␇웿␇, q␇웿␇, q␇웿␇, q␇웿␇, q␇웿␇);
+Test_N(q␇윀␇, q␇윀␇, q␇윀␇, q␇윀␇, q␇윀␇);
+Test_N(q␇윁␇, q␇윁␇, q␇윁␇, q␇윁␇, q␇윁␇);
+Test_N(q␇윂␇, q␇윂␇, q␇윂␇, q␇윂␇, q␇윂␇);
+Test_N(q␇윃␇, q␇윃␇, q␇윃␇, q␇윃␇, q␇윃␇);
+Test_N(q␇위␇, q␇위␇, q␇위␇, q␇위␇, q␇위␇);
+Test_N(q␇윅␇, q␇윅␇, q␇윅␇, q␇윅␇, q␇윅␇);
+Test_N(q␇윆␇, q␇윆␇, q␇윆␇, q␇윆␇, q␇윆␇);
+Test_N(q␇윇␇, q␇윇␇, q␇윇␇, q␇윇␇, q␇윇␇);
+Test_N(q␇윈␇, q␇윈␇, q␇윈␇, q␇윈␇, q␇윈␇);
+Test_N(q␇윉␇, q␇윉␇, q␇윉␇, q␇윉␇, q␇윉␇);
+Test_N(q␇윊␇, q␇윊␇, q␇윊␇, q␇윊␇, q␇윊␇);
+Test_N(q␇윋␇, q␇윋␇, q␇윋␇, q␇윋␇, q␇윋␇);
+Test_N(q␇윌␇, q␇윌␇, q␇윌␇, q␇윌␇, q␇윌␇);
+Test_N(q␇윍␇, q␇윍␇, q␇윍␇, q␇윍␇, q␇윍␇);
+Test_N(q␇윎␇, q␇윎␇, q␇윎␇, q␇윎␇, q␇윎␇);
+Test_N(q␇윏␇, q␇윏␇, q␇윏␇, q␇윏␇, q␇윏␇);
+Test_N(q␇윐␇, q␇윐␇, q␇윐␇, q␇윐␇, q␇윐␇);
+Test_N(q␇윑␇, q␇윑␇, q␇윑␇, q␇윑␇, q␇윑␇);
+Test_N(q␇윒␇, q␇윒␇, q␇윒␇, q␇윒␇, q␇윒␇);
+Test_N(q␇윓␇, q␇윓␇, q␇윓␇, q␇윓␇, q␇윓␇);
+Test_N(q␇윔␇, q␇윔␇, q␇윔␇, q␇윔␇, q␇윔␇);
+Test_N(q␇윕␇, q␇윕␇, q␇윕␇, q␇윕␇, q␇윕␇);
+Test_N(q␇윖␇, q␇윖␇, q␇윖␇, q␇윖␇, q␇윖␇);
+Test_N(q␇윗␇, q␇윗␇, q␇윗␇, q␇윗␇, q␇윗␇);
+Test_N(q␇윘␇, q␇윘␇, q␇윘␇, q␇윘␇, q␇윘␇);
+Test_N(q␇윙␇, q␇윙␇, q␇윙␇, q␇윙␇, q␇윙␇);
+Test_N(q␇윚␇, q␇윚␇, q␇윚␇, q␇윚␇, q␇윚␇);
+Test_N(q␇윛␇, q␇윛␇, q␇윛␇, q␇윛␇, q␇윛␇);
+Test_N(q␇윜␇, q␇윜␇, q␇윜␇, q␇윜␇, q␇윜␇);
+Test_N(q␇윝␇, q␇윝␇, q␇윝␇, q␇윝␇, q␇윝␇);
+Test_N(q␇윞␇, q␇윞␇, q␇윞␇, q␇윞␇, q␇윞␇);
+Test_N(q␇윟␇, q␇윟␇, q␇윟␇, q␇윟␇, q␇윟␇);
+Test_N(q␇유␇, q␇유␇, q␇유␇, q␇유␇, q␇유␇);
+Test_N(q␇육␇, q␇육␇, q␇육␇, q␇육␇, q␇육␇);
+Test_N(q␇윢␇, q␇윢␇, q␇윢␇, q␇윢␇, q␇윢␇);
+Test_N(q␇윣␇, q␇윣␇, q␇윣␇, q␇윣␇, q␇윣␇);
+Test_N(q␇윤␇, q␇윤␇, q␇윤␇, q␇윤␇, q␇윤␇);
+Test_N(q␇윥␇, q␇윥␇, q␇윥␇, q␇윥␇, q␇윥␇);
+Test_N(q␇윦␇, q␇윦␇, q␇윦␇, q␇윦␇, q␇윦␇);
+Test_N(q␇윧␇, q␇윧␇, q␇윧␇, q␇윧␇, q␇윧␇);
+Test_N(q␇율␇, q␇율␇, q␇율␇, q␇율␇, q␇율␇);
+Test_N(q␇윩␇, q␇윩␇, q␇윩␇, q␇윩␇, q␇윩␇);
+Test_N(q␇윪␇, q␇윪␇, q␇윪␇, q␇윪␇, q␇윪␇);
+Test_N(q␇윫␇, q␇윫␇, q␇윫␇, q␇윫␇, q␇윫␇);
+Test_N(q␇윬␇, q␇윬␇, q␇윬␇, q␇윬␇, q␇윬␇);
+Test_N(q␇윭␇, q␇윭␇, q␇윭␇, q␇윭␇, q␇윭␇);
+Test_N(q␇윮␇, q␇윮␇, q␇윮␇, q␇윮␇, q␇윮␇);
+Test_N(q␇윯␇, q␇윯␇, q␇윯␇, q␇윯␇, q␇윯␇);
+Test_N(q␇윰␇, q␇윰␇, q␇윰␇, q␇윰␇, q␇윰␇);
+Test_N(q␇윱␇, q␇윱␇, q␇윱␇, q␇윱␇, q␇윱␇);
+Test_N(q␇윲␇, q␇윲␇, q␇윲␇, q␇윲␇, q␇윲␇);
+Test_N(q␇윳␇, q␇윳␇, q␇윳␇, q␇윳␇, q␇윳␇);
+Test_N(q␇윴␇, q␇윴␇, q␇윴␇, q␇윴␇, q␇윴␇);
+Test_N(q␇융␇, q␇융␇, q␇융␇, q␇융␇, q␇융␇);
+Test_N(q␇윶␇, q␇윶␇, q␇윶␇, q␇윶␇, q␇윶␇);
+Test_N(q␇윷␇, q␇윷␇, q␇윷␇, q␇윷␇, q␇윷␇);
+Test_N(q␇윸␇, q␇윸␇, q␇윸␇, q␇윸␇, q␇윸␇);
+Test_N(q␇윹␇, q␇윹␇, q␇윹␇, q␇윹␇, q␇윹␇);
+Test_N(q␇윺␇, q␇윺␇, q␇윺␇, q␇윺␇, q␇윺␇);
+Test_N(q␇윻␇, q␇윻␇, q␇윻␇, q␇윻␇, q␇윻␇);
+Test_N(q␇으␇, q␇으␇, q␇으␇, q␇으␇, q␇으␇);
+Test_N(q␇윽␇, q␇윽␇, q␇윽␇, q␇윽␇, q␇윽␇);
+Test_N(q␇윾␇, q␇윾␇, q␇윾␇, q␇윾␇, q␇윾␇);
+Test_N(q␇윿␇, q␇윿␇, q␇윿␇, q␇윿␇, q␇윿␇);
+Test_N(q␇은␇, q␇은␇, q␇은␇, q␇은␇, q␇은␇);
+Test_N(q␇읁␇, q␇읁␇, q␇읁␇, q␇읁␇, q␇읁␇);
+Test_N(q␇읂␇, q␇읂␇, q␇읂␇, q␇읂␇, q␇읂␇);
+Test_N(q␇읃␇, q␇읃␇, q␇읃␇, q␇읃␇, q␇읃␇);
+Test_N(q␇을␇, q␇을␇, q␇을␇, q␇을␇, q␇을␇);
+Test_N(q␇읅␇, q␇읅␇, q␇읅␇, q␇읅␇, q␇읅␇);
+Test_N(q␇읆␇, q␇읆␇, q␇읆␇, q␇읆␇, q␇읆␇);
+Test_N(q␇읇␇, q␇읇␇, q␇읇␇, q␇읇␇, q␇읇␇);
+Test_N(q␇읈␇, q␇읈␇, q␇읈␇, q␇읈␇, q␇읈␇);
+Test_N(q␇읉␇, q␇읉␇, q␇읉␇, q␇읉␇, q␇읉␇);
+Test_N(q␇읊␇, q␇읊␇, q␇읊␇, q␇읊␇, q␇읊␇);
+Test_N(q␇읋␇, q␇읋␇, q␇읋␇, q␇읋␇, q␇읋␇);
+Test_N(q␇음␇, q␇음␇, q␇음␇, q␇음␇, q␇음␇);
+Test_N(q␇읍␇, q␇읍␇, q␇읍␇, q␇읍␇, q␇읍␇);
+Test_N(q␇읎␇, q␇읎␇, q␇읎␇, q␇읎␇, q␇읎␇);
+Test_N(q␇읏␇, q␇읏␇, q␇읏␇, q␇읏␇, q␇읏␇);
+Test_N(q␇읐␇, q␇읐␇, q␇읐␇, q␇읐␇, q␇읐␇);
+Test_N(q␇응␇, q␇응␇, q␇응␇, q␇응␇, q␇응␇);
+Test_N(q␇읒␇, q␇읒␇, q␇읒␇, q␇읒␇, q␇읒␇);
+Test_N(q␇읓␇, q␇읓␇, q␇읓␇, q␇읓␇, q␇읓␇);
+Test_N(q␇읔␇, q␇읔␇, q␇읔␇, q␇읔␇, q␇읔␇);
+Test_N(q␇읕␇, q␇읕␇, q␇읕␇, q␇읕␇, q␇읕␇);
+Test_N(q␇읖␇, q␇읖␇, q␇읖␇, q␇읖␇, q␇읖␇);
+Test_N(q␇읗␇, q␇읗␇, q␇읗␇, q␇읗␇, q␇읗␇);
+Test_N(q␇의␇, q␇의␇, q␇의␇, q␇의␇, q␇의␇);
+Test_N(q␇읙␇, q␇읙␇, q␇읙␇, q␇읙␇, q␇읙␇);
+Test_N(q␇읚␇, q␇읚␇, q␇읚␇, q␇읚␇, q␇읚␇);
+Test_N(q␇읛␇, q␇읛␇, q␇읛␇, q␇읛␇, q␇읛␇);
+Test_N(q␇읜␇, q␇읜␇, q␇읜␇, q␇읜␇, q␇읜␇);
+Test_N(q␇읝␇, q␇읝␇, q␇읝␇, q␇읝␇, q␇읝␇);
+Test_N(q␇읞␇, q␇읞␇, q␇읞␇, q␇읞␇, q␇읞␇);
+Test_N(q␇읟␇, q␇읟␇, q␇읟␇, q␇읟␇, q␇읟␇);
+Test_N(q␇읠␇, q␇읠␇, q␇읠␇, q␇읠␇, q␇읠␇);
+Test_N(q␇읡␇, q␇읡␇, q␇읡␇, q␇읡␇, q␇읡␇);
+Test_N(q␇읢␇, q␇읢␇, q␇읢␇, q␇읢␇, q␇읢␇);
+Test_N(q␇읣␇, q␇읣␇, q␇읣␇, q␇읣␇, q␇읣␇);
+Test_N(q␇읤␇, q␇읤␇, q␇읤␇, q␇읤␇, q␇읤␇);
+Test_N(q␇읥␇, q␇읥␇, q␇읥␇, q␇읥␇, q␇읥␇);
+Test_N(q␇읦␇, q␇읦␇, q␇읦␇, q␇읦␇, q␇읦␇);
+Test_N(q␇읧␇, q␇읧␇, q␇읧␇, q␇읧␇, q␇읧␇);
+Test_N(q␇읨␇, q␇읨␇, q␇읨␇, q␇읨␇, q␇읨␇);
+Test_N(q␇읩␇, q␇읩␇, q␇읩␇, q␇읩␇, q␇읩␇);
+Test_N(q␇읪␇, q␇읪␇, q␇읪␇, q␇읪␇, q␇읪␇);
+Test_N(q␇읫␇, q␇읫␇, q␇읫␇, q␇읫␇, q␇읫␇);
+Test_N(q␇읬␇, q␇읬␇, q␇읬␇, q␇읬␇, q␇읬␇);
+Test_N(q␇읭␇, q␇읭␇, q␇읭␇, q␇읭␇, q␇읭␇);
+Test_N(q␇읮␇, q␇읮␇, q␇읮␇, q␇읮␇, q␇읮␇);
+Test_N(q␇읯␇, q␇읯␇, q␇읯␇, q␇읯␇, q␇읯␇);
+Test_N(q␇읰␇, q␇읰␇, q␇읰␇, q␇읰␇, q␇읰␇);
+Test_N(q␇읱␇, q␇읱␇, q␇읱␇, q␇읱␇, q␇읱␇);
+Test_N(q␇읲␇, q␇읲␇, q␇읲␇, q␇읲␇, q␇읲␇);
+Test_N(q␇읳␇, q␇읳␇, q␇읳␇, q␇읳␇, q␇읳␇);
+Test_N(q␇이␇, q␇이␇, q␇이␇, q␇이␇, q␇이␇);
+Test_N(q␇익␇, q␇익␇, q␇익␇, q␇익␇, q␇익␇);
+Test_N(q␇읶␇, q␇읶␇, q␇읶␇, q␇읶␇, q␇읶␇);
+Test_N(q␇읷␇, q␇읷␇, q␇읷␇, q␇읷␇, q␇읷␇);
+Test_N(q␇인␇, q␇인␇, q␇인␇, q␇인␇, q␇인␇);
+Test_N(q␇읹␇, q␇읹␇, q␇읹␇, q␇읹␇, q␇읹␇);
+Test_N(q␇읺␇, q␇읺␇, q␇읺␇, q␇읺␇, q␇읺␇);
+Test_N(q␇읻␇, q␇읻␇, q␇읻␇, q␇읻␇, q␇읻␇);
+Test_N(q␇일␇, q␇일␇, q␇일␇, q␇일␇, q␇일␇);
+Test_N(q␇읽␇, q␇읽␇, q␇읽␇, q␇읽␇, q␇읽␇);
+Test_N(q␇읾␇, q␇읾␇, q␇읾␇, q␇읾␇, q␇읾␇);
+Test_N(q␇읿␇, q␇읿␇, q␇읿␇, q␇읿␇, q␇읿␇);
+Test_N(q␇잀␇, q␇잀␇, q␇잀␇, q␇잀␇, q␇잀␇);
+Test_N(q␇잁␇, q␇잁␇, q␇잁␇, q␇잁␇, q␇잁␇);
+Test_N(q␇잂␇, q␇잂␇, q␇잂␇, q␇잂␇, q␇잂␇);
+Test_N(q␇잃␇, q␇잃␇, q␇잃␇, q␇잃␇, q␇잃␇);
+Test_N(q␇임␇, q␇임␇, q␇임␇, q␇임␇, q␇임␇);
+Test_N(q␇입␇, q␇입␇, q␇입␇, q␇입␇, q␇입␇);
+Test_N(q␇잆␇, q␇잆␇, q␇잆␇, q␇잆␇, q␇잆␇);
+Test_N(q␇잇␇, q␇잇␇, q␇잇␇, q␇잇␇, q␇잇␇);
+Test_N(q␇있␇, q␇있␇, q␇있␇, q␇있␇, q␇있␇);
+Test_N(q␇잉␇, q␇잉␇, q␇잉␇, q␇잉␇, q␇잉␇);
+Test_N(q␇잊␇, q␇잊␇, q␇잊␇, q␇잊␇, q␇잊␇);
+Test_N(q␇잋␇, q␇잋␇, q␇잋␇, q␇잋␇, q␇잋␇);
+Test_N(q␇잌␇, q␇잌␇, q␇잌␇, q␇잌␇, q␇잌␇);
+Test_N(q␇잍␇, q␇잍␇, q␇잍␇, q␇잍␇, q␇잍␇);
+Test_N(q␇잎␇, q␇잎␇, q␇잎␇, q␇잎␇, q␇잎␇);
+Test_N(q␇잏␇, q␇잏␇, q␇잏␇, q␇잏␇, q␇잏␇);
+Test_N(q␇자␇, q␇자␇, q␇자␇, q␇자␇, q␇자␇);
+Test_N(q␇작␇, q␇작␇, q␇작␇, q␇작␇, q␇작␇);
+Test_N(q␇잒␇, q␇잒␇, q␇잒␇, q␇잒␇, q␇잒␇);
+Test_N(q␇잓␇, q␇잓␇, q␇잓␇, q␇잓␇, q␇잓␇);
+Test_N(q␇잔␇, q␇잔␇, q␇잔␇, q␇잔␇, q␇잔␇);
+Test_N(q␇잕␇, q␇잕␇, q␇잕␇, q␇잕␇, q␇잕␇);
+Test_N(q␇잖␇, q␇잖␇, q␇잖␇, q␇잖␇, q␇잖␇);
+Test_N(q␇잗␇, q␇잗␇, q␇잗␇, q␇잗␇, q␇잗␇);
+Test_N(q␇잘␇, q␇잘␇, q␇잘␇, q␇잘␇, q␇잘␇);
+Test_N(q␇잙␇, q␇잙␇, q␇잙␇, q␇잙␇, q␇잙␇);
+Test_N(q␇잚␇, q␇잚␇, q␇잚␇, q␇잚␇, q␇잚␇);
+Test_N(q␇잛␇, q␇잛␇, q␇잛␇, q␇잛␇, q␇잛␇);
+Test_N(q␇잜␇, q␇잜␇, q␇잜␇, q␇잜␇, q␇잜␇);
+Test_N(q␇잝␇, q␇잝␇, q␇잝␇, q␇잝␇, q␇잝␇);
+Test_N(q␇잞␇, q␇잞␇, q␇잞␇, q␇잞␇, q␇잞␇);
+Test_N(q␇잟␇, q␇잟␇, q␇잟␇, q␇잟␇, q␇잟␇);
+Test_N(q␇잠␇, q␇잠␇, q␇잠␇, q␇잠␇, q␇잠␇);
+Test_N(q␇잡␇, q␇잡␇, q␇잡␇, q␇잡␇, q␇잡␇);
+Test_N(q␇잢␇, q␇잢␇, q␇잢␇, q␇잢␇, q␇잢␇);
+Test_N(q␇잣␇, q␇잣␇, q␇잣␇, q␇잣␇, q␇잣␇);
+Test_N(q␇잤␇, q␇잤␇, q␇잤␇, q␇잤␇, q␇잤␇);
+Test_N(q␇장␇, q␇장␇, q␇장␇, q␇장␇, q␇장␇);
+Test_N(q␇잦␇, q␇잦␇, q␇잦␇, q␇잦␇, q␇잦␇);
+Test_N(q␇잧␇, q␇잧␇, q␇잧␇, q␇잧␇, q␇잧␇);
+Test_N(q␇잨␇, q␇잨␇, q␇잨␇, q␇잨␇, q␇잨␇);
+Test_N(q␇잩␇, q␇잩␇, q␇잩␇, q␇잩␇, q␇잩␇);
+Test_N(q␇잪␇, q␇잪␇, q␇잪␇, q␇잪␇, q␇잪␇);
+Test_N(q␇잫␇, q␇잫␇, q␇잫␇, q␇잫␇, q␇잫␇);
+Test_N(q␇재␇, q␇재␇, q␇재␇, q␇재␇, q␇재␇);
+Test_N(q␇잭␇, q␇잭␇, q␇잭␇, q␇잭␇, q␇잭␇);
+Test_N(q␇잮␇, q␇잮␇, q␇잮␇, q␇잮␇, q␇잮␇);
+Test_N(q␇잯␇, q␇잯␇, q␇잯␇, q␇잯␇, q␇잯␇);
+Test_N(q␇잰␇, q␇잰␇, q␇잰␇, q␇잰␇, q␇잰␇);
+Test_N(q␇잱␇, q␇잱␇, q␇잱␇, q␇잱␇, q␇잱␇);
+Test_N(q␇잲␇, q␇잲␇, q␇잲␇, q␇잲␇, q␇잲␇);
+Test_N(q␇잳␇, q␇잳␇, q␇잳␇, q␇잳␇, q␇잳␇);
+Test_N(q␇잴␇, q␇잴␇, q␇잴␇, q␇잴␇, q␇잴␇);
+Test_N(q␇잵␇, q␇잵␇, q␇잵␇, q␇잵␇, q␇잵␇);
+Test_N(q␇잶␇, q␇잶␇, q␇잶␇, q␇잶␇, q␇잶␇);
+Test_N(q␇잷␇, q␇잷␇, q␇잷␇, q␇잷␇, q␇잷␇);
+Test_N(q␇잸␇, q␇잸␇, q␇잸␇, q␇잸␇, q␇잸␇);
+Test_N(q␇잹␇, q␇잹␇, q␇잹␇, q␇잹␇, q␇잹␇);
+Test_N(q␇잺␇, q␇잺␇, q␇잺␇, q␇잺␇, q␇잺␇);
+Test_N(q␇잻␇, q␇잻␇, q␇잻␇, q␇잻␇, q␇잻␇);
+Test_N(q␇잼␇, q␇잼␇, q␇잼␇, q␇잼␇, q␇잼␇);
+Test_N(q␇잽␇, q␇잽␇, q␇잽␇, q␇잽␇, q␇잽␇);
+Test_N(q␇잾␇, q␇잾␇, q␇잾␇, q␇잾␇, q␇잾␇);
+Test_N(q␇잿␇, q␇잿␇, q␇잿␇, q␇잿␇, q␇잿␇);
+Test_N(q␇쟀␇, q␇쟀␇, q␇쟀␇, q␇쟀␇, q␇쟀␇);
+Test_N(q␇쟁␇, q␇쟁␇, q␇쟁␇, q␇쟁␇, q␇쟁␇);
+Test_N(q␇쟂␇, q␇쟂␇, q␇쟂␇, q␇쟂␇, q␇쟂␇);
+Test_N(q␇쟃␇, q␇쟃␇, q␇쟃␇, q␇쟃␇, q␇쟃␇);
+Test_N(q␇쟄␇, q␇쟄␇, q␇쟄␇, q␇쟄␇, q␇쟄␇);
+Test_N(q␇쟅␇, q␇쟅␇, q␇쟅␇, q␇쟅␇, q␇쟅␇);
+Test_N(q␇쟆␇, q␇쟆␇, q␇쟆␇, q␇쟆␇, q␇쟆␇);
+Test_N(q␇쟇␇, q␇쟇␇, q␇쟇␇, q␇쟇␇, q␇쟇␇);
+Test_N(q␇쟈␇, q␇쟈␇, q␇쟈␇, q␇쟈␇, q␇쟈␇);
+Test_N(q␇쟉␇, q␇쟉␇, q␇쟉␇, q␇쟉␇, q␇쟉␇);
+Test_N(q␇쟊␇, q␇쟊␇, q␇쟊␇, q␇쟊␇, q␇쟊␇);
+Test_N(q␇쟋␇, q␇쟋␇, q␇쟋␇, q␇쟋␇, q␇쟋␇);
+Test_N(q␇쟌␇, q␇쟌␇, q␇쟌␇, q␇쟌␇, q␇쟌␇);
+Test_N(q␇쟍␇, q␇쟍␇, q␇쟍␇, q␇쟍␇, q␇쟍␇);
+Test_N(q␇쟎␇, q␇쟎␇, q␇쟎␇, q␇쟎␇, q␇쟎␇);
+Test_N(q␇쟏␇, q␇쟏␇, q␇쟏␇, q␇쟏␇, q␇쟏␇);
+Test_N(q␇쟐␇, q␇쟐␇, q␇쟐␇, q␇쟐␇, q␇쟐␇);
+Test_N(q␇쟑␇, q␇쟑␇, q␇쟑␇, q␇쟑␇, q␇쟑␇);
+Test_N(q␇쟒␇, q␇쟒␇, q␇쟒␇, q␇쟒␇, q␇쟒␇);
+Test_N(q␇쟓␇, q␇쟓␇, q␇쟓␇, q␇쟓␇, q␇쟓␇);
+Test_N(q␇쟔␇, q␇쟔␇, q␇쟔␇, q␇쟔␇, q␇쟔␇);
+Test_N(q␇쟕␇, q␇쟕␇, q␇쟕␇, q␇쟕␇, q␇쟕␇);
+Test_N(q␇쟖␇, q␇쟖␇, q␇쟖␇, q␇쟖␇, q␇쟖␇);
+Test_N(q␇쟗␇, q␇쟗␇, q␇쟗␇, q␇쟗␇, q␇쟗␇);
+Test_N(q␇쟘␇, q␇쟘␇, q␇쟘␇, q␇쟘␇, q␇쟘␇);
+Test_N(q␇쟙␇, q␇쟙␇, q␇쟙␇, q␇쟙␇, q␇쟙␇);
+Test_N(q␇쟚␇, q␇쟚␇, q␇쟚␇, q␇쟚␇, q␇쟚␇);
+Test_N(q␇쟛␇, q␇쟛␇, q␇쟛␇, q␇쟛␇, q␇쟛␇);
+Test_N(q␇쟜␇, q␇쟜␇, q␇쟜␇, q␇쟜␇, q␇쟜␇);
+Test_N(q␇쟝␇, q␇쟝␇, q␇쟝␇, q␇쟝␇, q␇쟝␇);
+Test_N(q␇쟞␇, q␇쟞␇, q␇쟞␇, q␇쟞␇, q␇쟞␇);
+Test_N(q␇쟟␇, q␇쟟␇, q␇쟟␇, q␇쟟␇, q␇쟟␇);
+Test_N(q␇쟠␇, q␇쟠␇, q␇쟠␇, q␇쟠␇, q␇쟠␇);
+Test_N(q␇쟡␇, q␇쟡␇, q␇쟡␇, q␇쟡␇, q␇쟡␇);
+Test_N(q␇쟢␇, q␇쟢␇, q␇쟢␇, q␇쟢␇, q␇쟢␇);
+Test_N(q␇쟣␇, q␇쟣␇, q␇쟣␇, q␇쟣␇, q␇쟣␇);
+Test_N(q␇쟤␇, q␇쟤␇, q␇쟤␇, q␇쟤␇, q␇쟤␇);
+Test_N(q␇쟥␇, q␇쟥␇, q␇쟥␇, q␇쟥␇, q␇쟥␇);
+Test_N(q␇쟦␇, q␇쟦␇, q␇쟦␇, q␇쟦␇, q␇쟦␇);
+Test_N(q␇쟧␇, q␇쟧␇, q␇쟧␇, q␇쟧␇, q␇쟧␇);
+Test_N(q␇쟨␇, q␇쟨␇, q␇쟨␇, q␇쟨␇, q␇쟨␇);
+Test_N(q␇쟩␇, q␇쟩␇, q␇쟩␇, q␇쟩␇, q␇쟩␇);
+Test_N(q␇쟪␇, q␇쟪␇, q␇쟪␇, q␇쟪␇, q␇쟪␇);
+Test_N(q␇쟫␇, q␇쟫␇, q␇쟫␇, q␇쟫␇, q␇쟫␇);
+Test_N(q␇쟬␇, q␇쟬␇, q␇쟬␇, q␇쟬␇, q␇쟬␇);
+Test_N(q␇쟭␇, q␇쟭␇, q␇쟭␇, q␇쟭␇, q␇쟭␇);
+Test_N(q␇쟮␇, q␇쟮␇, q␇쟮␇, q␇쟮␇, q␇쟮␇);
+Test_N(q␇쟯␇, q␇쟯␇, q␇쟯␇, q␇쟯␇, q␇쟯␇);
+Test_N(q␇쟰␇, q␇쟰␇, q␇쟰␇, q␇쟰␇, q␇쟰␇);
+Test_N(q␇쟱␇, q␇쟱␇, q␇쟱␇, q␇쟱␇, q␇쟱␇);
+Test_N(q␇쟲␇, q␇쟲␇, q␇쟲␇, q␇쟲␇, q␇쟲␇);
+Test_N(q␇쟳␇, q␇쟳␇, q␇쟳␇, q␇쟳␇, q␇쟳␇);
+Test_N(q␇쟴␇, q␇쟴␇, q␇쟴␇, q␇쟴␇, q␇쟴␇);
+Test_N(q␇쟵␇, q␇쟵␇, q␇쟵␇, q␇쟵␇, q␇쟵␇);
+Test_N(q␇쟶␇, q␇쟶␇, q␇쟶␇, q␇쟶␇, q␇쟶␇);
+Test_N(q␇쟷␇, q␇쟷␇, q␇쟷␇, q␇쟷␇, q␇쟷␇);
+Test_N(q␇쟸␇, q␇쟸␇, q␇쟸␇, q␇쟸␇, q␇쟸␇);
+Test_N(q␇쟹␇, q␇쟹␇, q␇쟹␇, q␇쟹␇, q␇쟹␇);
+Test_N(q␇쟺␇, q␇쟺␇, q␇쟺␇, q␇쟺␇, q␇쟺␇);
+Test_N(q␇쟻␇, q␇쟻␇, q␇쟻␇, q␇쟻␇, q␇쟻␇);
+Test_N(q␇쟼␇, q␇쟼␇, q␇쟼␇, q␇쟼␇, q␇쟼␇);
+Test_N(q␇쟽␇, q␇쟽␇, q␇쟽␇, q␇쟽␇, q␇쟽␇);
+Test_N(q␇쟾␇, q␇쟾␇, q␇쟾␇, q␇쟾␇, q␇쟾␇);
+Test_N(q␇쟿␇, q␇쟿␇, q␇쟿␇, q␇쟿␇, q␇쟿␇);
+Test_N(q␇저␇, q␇저␇, q␇저␇, q␇저␇, q␇저␇);
+Test_N(q␇적␇, q␇적␇, q␇적␇, q␇적␇, q␇적␇);
+Test_N(q␇젂␇, q␇젂␇, q␇젂␇, q␇젂␇, q␇젂␇);
+Test_N(q␇젃␇, q␇젃␇, q␇젃␇, q␇젃␇, q␇젃␇);
+Test_N(q␇전␇, q␇전␇, q␇전␇, q␇전␇, q␇전␇);
+Test_N(q␇젅␇, q␇젅␇, q␇젅␇, q␇젅␇, q␇젅␇);
+Test_N(q␇젆␇, q␇젆␇, q␇젆␇, q␇젆␇, q␇젆␇);
+Test_N(q␇젇␇, q␇젇␇, q␇젇␇, q␇젇␇, q␇젇␇);
+Test_N(q␇절␇, q␇절␇, q␇절␇, q␇절␇, q␇절␇);
+Test_N(q␇젉␇, q␇젉␇, q␇젉␇, q␇젉␇, q␇젉␇);
+Test_N(q␇젊␇, q␇젊␇, q␇젊␇, q␇젊␇, q␇젊␇);
+Test_N(q␇젋␇, q␇젋␇, q␇젋␇, q␇젋␇, q␇젋␇);
+Test_N(q␇젌␇, q␇젌␇, q␇젌␇, q␇젌␇, q␇젌␇);
+Test_N(q␇젍␇, q␇젍␇, q␇젍␇, q␇젍␇, q␇젍␇);
+Test_N(q␇젎␇, q␇젎␇, q␇젎␇, q␇젎␇, q␇젎␇);
+Test_N(q␇젏␇, q␇젏␇, q␇젏␇, q␇젏␇, q␇젏␇);
+Test_N(q␇점␇, q␇점␇, q␇점␇, q␇점␇, q␇점␇);
+Test_N(q␇접␇, q␇접␇, q␇접␇, q␇접␇, q␇접␇);
+Test_N(q␇젒␇, q␇젒␇, q␇젒␇, q␇젒␇, q␇젒␇);
+Test_N(q␇젓␇, q␇젓␇, q␇젓␇, q␇젓␇, q␇젓␇);
+Test_N(q␇젔␇, q␇젔␇, q␇젔␇, q␇젔␇, q␇젔␇);
+Test_N(q␇정␇, q␇정␇, q␇정␇, q␇정␇, q␇정␇);
+Test_N(q␇젖␇, q␇젖␇, q␇젖␇, q␇젖␇, q␇젖␇);
+Test_N(q␇젗␇, q␇젗␇, q␇젗␇, q␇젗␇, q␇젗␇);
+Test_N(q␇젘␇, q␇젘␇, q␇젘␇, q␇젘␇, q␇젘␇);
+Test_N(q␇젙␇, q␇젙␇, q␇젙␇, q␇젙␇, q␇젙␇);
+Test_N(q␇젚␇, q␇젚␇, q␇젚␇, q␇젚␇, q␇젚␇);
+Test_N(q␇젛␇, q␇젛␇, q␇젛␇, q␇젛␇, q␇젛␇);
+Test_N(q␇제␇, q␇제␇, q␇제␇, q␇제␇, q␇제␇);
+Test_N(q␇젝␇, q␇젝␇, q␇젝␇, q␇젝␇, q␇젝␇);
+Test_N(q␇젞␇, q␇젞␇, q␇젞␇, q␇젞␇, q␇젞␇);
+Test_N(q␇젟␇, q␇젟␇, q␇젟␇, q␇젟␇, q␇젟␇);
+Test_N(q␇젠␇, q␇젠␇, q␇젠␇, q␇젠␇, q␇젠␇);
+Test_N(q␇젡␇, q␇젡␇, q␇젡␇, q␇젡␇, q␇젡␇);
+Test_N(q␇젢␇, q␇젢␇, q␇젢␇, q␇젢␇, q␇젢␇);
+Test_N(q␇젣␇, q␇젣␇, q␇젣␇, q␇젣␇, q␇젣␇);
+Test_N(q␇젤␇, q␇젤␇, q␇젤␇, q␇젤␇, q␇젤␇);
+Test_N(q␇젥␇, q␇젥␇, q␇젥␇, q␇젥␇, q␇젥␇);
+Test_N(q␇젦␇, q␇젦␇, q␇젦␇, q␇젦␇, q␇젦␇);
+Test_N(q␇젧␇, q␇젧␇, q␇젧␇, q␇젧␇, q␇젧␇);
+Test_N(q␇젨␇, q␇젨␇, q␇젨␇, q␇젨␇, q␇젨␇);
+Test_N(q␇젩␇, q␇젩␇, q␇젩␇, q␇젩␇, q␇젩␇);
+Test_N(q␇젪␇, q␇젪␇, q␇젪␇, q␇젪␇, q␇젪␇);
+Test_N(q␇젫␇, q␇젫␇, q␇젫␇, q␇젫␇, q␇젫␇);
+Test_N(q␇젬␇, q␇젬␇, q␇젬␇, q␇젬␇, q␇젬␇);
+Test_N(q␇젭␇, q␇젭␇, q␇젭␇, q␇젭␇, q␇젭␇);
+Test_N(q␇젮␇, q␇젮␇, q␇젮␇, q␇젮␇, q␇젮␇);
+Test_N(q␇젯␇, q␇젯␇, q␇젯␇, q␇젯␇, q␇젯␇);
+Test_N(q␇젰␇, q␇젰␇, q␇젰␇, q␇젰␇, q␇젰␇);
+Test_N(q␇젱␇, q␇젱␇, q␇젱␇, q␇젱␇, q␇젱␇);
+Test_N(q␇젲␇, q␇젲␇, q␇젲␇, q␇젲␇, q␇젲␇);
+Test_N(q␇젳␇, q␇젳␇, q␇젳␇, q␇젳␇, q␇젳␇);
+Test_N(q␇젴␇, q␇젴␇, q␇젴␇, q␇젴␇, q␇젴␇);
+Test_N(q␇젵␇, q␇젵␇, q␇젵␇, q␇젵␇, q␇젵␇);
+Test_N(q␇젶␇, q␇젶␇, q␇젶␇, q␇젶␇, q␇젶␇);
+Test_N(q␇젷␇, q␇젷␇, q␇젷␇, q␇젷␇, q␇젷␇);
+Test_N(q␇져␇, q␇져␇, q␇져␇, q␇져␇, q␇져␇);
+Test_N(q␇젹␇, q␇젹␇, q␇젹␇, q␇젹␇, q␇젹␇);
+Test_N(q␇젺␇, q␇젺␇, q␇젺␇, q␇젺␇, q␇젺␇);
+Test_N(q␇젻␇, q␇젻␇, q␇젻␇, q␇젻␇, q␇젻␇);
+Test_N(q␇젼␇, q␇젼␇, q␇젼␇, q␇젼␇, q␇젼␇);
+Test_N(q␇젽␇, q␇젽␇, q␇젽␇, q␇젽␇, q␇젽␇);
+Test_N(q␇젾␇, q␇젾␇, q␇젾␇, q␇젾␇, q␇젾␇);
+Test_N(q␇젿␇, q␇젿␇, q␇젿␇, q␇젿␇, q␇젿␇);
+Test_N(q␇졀␇, q␇졀␇, q␇졀␇, q␇졀␇, q␇졀␇);
+Test_N(q␇졁␇, q␇졁␇, q␇졁␇, q␇졁␇, q␇졁␇);
+Test_N(q␇졂␇, q␇졂␇, q␇졂␇, q␇졂␇, q␇졂␇);
+Test_N(q␇졃␇, q␇졃␇, q␇졃␇, q␇졃␇, q␇졃␇);
+Test_N(q␇졄␇, q␇졄␇, q␇졄␇, q␇졄␇, q␇졄␇);
+Test_N(q␇졅␇, q␇졅␇, q␇졅␇, q␇졅␇, q␇졅␇);
+Test_N(q␇졆␇, q␇졆␇, q␇졆␇, q␇졆␇, q␇졆␇);
+Test_N(q␇졇␇, q␇졇␇, q␇졇␇, q␇졇␇, q␇졇␇);
+Test_N(q␇졈␇, q␇졈␇, q␇졈␇, q␇졈␇, q␇졈␇);
+Test_N(q␇졉␇, q␇졉␇, q␇졉␇, q␇졉␇, q␇졉␇);
+Test_N(q␇졊␇, q␇졊␇, q␇졊␇, q␇졊␇, q␇졊␇);
+Test_N(q␇졋␇, q␇졋␇, q␇졋␇, q␇졋␇, q␇졋␇);
+Test_N(q␇졌␇, q␇졌␇, q␇졌␇, q␇졌␇, q␇졌␇);
+Test_N(q␇졍␇, q␇졍␇, q␇졍␇, q␇졍␇, q␇졍␇);
+Test_N(q␇졎␇, q␇졎␇, q␇졎␇, q␇졎␇, q␇졎␇);
+Test_N(q␇졏␇, q␇졏␇, q␇졏␇, q␇졏␇, q␇졏␇);
+Test_N(q␇졐␇, q␇졐␇, q␇졐␇, q␇졐␇, q␇졐␇);
+Test_N(q␇졑␇, q␇졑␇, q␇졑␇, q␇졑␇, q␇졑␇);
+Test_N(q␇졒␇, q␇졒␇, q␇졒␇, q␇졒␇, q␇졒␇);
+Test_N(q␇졓␇, q␇졓␇, q␇졓␇, q␇졓␇, q␇졓␇);
+Test_N(q␇졔␇, q␇졔␇, q␇졔␇, q␇졔␇, q␇졔␇);
+Test_N(q␇졕␇, q␇졕␇, q␇졕␇, q␇졕␇, q␇졕␇);
+Test_N(q␇졖␇, q␇졖␇, q␇졖␇, q␇졖␇, q␇졖␇);
+Test_N(q␇졗␇, q␇졗␇, q␇졗␇, q␇졗␇, q␇졗␇);
+Test_N(q␇졘␇, q␇졘␇, q␇졘␇, q␇졘␇, q␇졘␇);
+Test_N(q␇졙␇, q␇졙␇, q␇졙␇, q␇졙␇, q␇졙␇);
+Test_N(q␇졚␇, q␇졚␇, q␇졚␇, q␇졚␇, q␇졚␇);
+Test_N(q␇졛␇, q␇졛␇, q␇졛␇, q␇졛␇, q␇졛␇);
+Test_N(q␇졜␇, q␇졜␇, q␇졜␇, q␇졜␇, q␇졜␇);
+Test_N(q␇졝␇, q␇졝␇, q␇졝␇, q␇졝␇, q␇졝␇);
+Test_N(q␇졞␇, q␇졞␇, q␇졞␇, q␇졞␇, q␇졞␇);
+Test_N(q␇졟␇, q␇졟␇, q␇졟␇, q␇졟␇, q␇졟␇);
+Test_N(q␇졠␇, q␇졠␇, q␇졠␇, q␇졠␇, q␇졠␇);
+Test_N(q␇졡␇, q␇졡␇, q␇졡␇, q␇졡␇, q␇졡␇);
+Test_N(q␇졢␇, q␇졢␇, q␇졢␇, q␇졢␇, q␇졢␇);
+Test_N(q␇졣␇, q␇졣␇, q␇졣␇, q␇졣␇, q␇졣␇);
+Test_N(q␇졤␇, q␇졤␇, q␇졤␇, q␇졤␇, q␇졤␇);
+Test_N(q␇졥␇, q␇졥␇, q␇졥␇, q␇졥␇, q␇졥␇);
+Test_N(q␇졦␇, q␇졦␇, q␇졦␇, q␇졦␇, q␇졦␇);
+Test_N(q␇졧␇, q␇졧␇, q␇졧␇, q␇졧␇, q␇졧␇);
+Test_N(q␇졨␇, q␇졨␇, q␇졨␇, q␇졨␇, q␇졨␇);
+Test_N(q␇졩␇, q␇졩␇, q␇졩␇, q␇졩␇, q␇졩␇);
+Test_N(q␇졪␇, q␇졪␇, q␇졪␇, q␇졪␇, q␇졪␇);
+Test_N(q␇졫␇, q␇졫␇, q␇졫␇, q␇졫␇, q␇졫␇);
+Test_N(q␇졬␇, q␇졬␇, q␇졬␇, q␇졬␇, q␇졬␇);
+Test_N(q␇졭␇, q␇졭␇, q␇졭␇, q␇졭␇, q␇졭␇);
+Test_N(q␇졮␇, q␇졮␇, q␇졮␇, q␇졮␇, q␇졮␇);
+Test_N(q␇졯␇, q␇졯␇, q␇졯␇, q␇졯␇, q␇졯␇);
+Test_N(q␇조␇, q␇조␇, q␇조␇, q␇조␇, q␇조␇);
+Test_N(q␇족␇, q␇족␇, q␇족␇, q␇족␇, q␇족␇);
+Test_N(q␇졲␇, q␇졲␇, q␇졲␇, q␇졲␇, q␇졲␇);
+Test_N(q␇졳␇, q␇졳␇, q␇졳␇, q␇졳␇, q␇졳␇);
+Test_N(q␇존␇, q␇존␇, q␇존␇, q␇존␇, q␇존␇);
+Test_N(q␇졵␇, q␇졵␇, q␇졵␇, q␇졵␇, q␇졵␇);
+Test_N(q␇졶␇, q␇졶␇, q␇졶␇, q␇졶␇, q␇졶␇);
+Test_N(q␇졷␇, q␇졷␇, q␇졷␇, q␇졷␇, q␇졷␇);
+Test_N(q␇졸␇, q␇졸␇, q␇졸␇, q␇졸␇, q␇졸␇);
+Test_N(q␇졹␇, q␇졹␇, q␇졹␇, q␇졹␇, q␇졹␇);
+Test_N(q␇졺␇, q␇졺␇, q␇졺␇, q␇졺␇, q␇졺␇);
+Test_N(q␇졻␇, q␇졻␇, q␇졻␇, q␇졻␇, q␇졻␇);
+Test_N(q␇졼␇, q␇졼␇, q␇졼␇, q␇졼␇, q␇졼␇);
+Test_N(q␇졽␇, q␇졽␇, q␇졽␇, q␇졽␇, q␇졽␇);
+Test_N(q␇졾␇, q␇졾␇, q␇졾␇, q␇졾␇, q␇졾␇);
+Test_N(q␇졿␇, q␇졿␇, q␇졿␇, q␇졿␇, q␇졿␇);
+Test_N(q␇좀␇, q␇좀␇, q␇좀␇, q␇좀␇, q␇좀␇);
+Test_N(q␇좁␇, q␇좁␇, q␇좁␇, q␇좁␇, q␇좁␇);
+Test_N(q␇좂␇, q␇좂␇, q␇좂␇, q␇좂␇, q␇좂␇);
+Test_N(q␇좃␇, q␇좃␇, q␇좃␇, q␇좃␇, q␇좃␇);
+Test_N(q␇좄␇, q␇좄␇, q␇좄␇, q␇좄␇, q␇좄␇);
+Test_N(q␇종␇, q␇종␇, q␇종␇, q␇종␇, q␇종␇);
+Test_N(q␇좆␇, q␇좆␇, q␇좆␇, q␇좆␇, q␇좆␇);
+Test_N(q␇좇␇, q␇좇␇, q␇좇␇, q␇좇␇, q␇좇␇);
+Test_N(q␇좈␇, q␇좈␇, q␇좈␇, q␇좈␇, q␇좈␇);
+Test_N(q␇좉␇, q␇좉␇, q␇좉␇, q␇좉␇, q␇좉␇);
+Test_N(q␇좊␇, q␇좊␇, q␇좊␇, q␇좊␇, q␇좊␇);
+Test_N(q␇좋␇, q␇좋␇, q␇좋␇, q␇좋␇, q␇좋␇);
+Test_N(q␇좌␇, q␇좌␇, q␇좌␇, q␇좌␇, q␇좌␇);
+Test_N(q␇좍␇, q␇좍␇, q␇좍␇, q␇좍␇, q␇좍␇);
+Test_N(q␇좎␇, q␇좎␇, q␇좎␇, q␇좎␇, q␇좎␇);
+Test_N(q␇좏␇, q␇좏␇, q␇좏␇, q␇좏␇, q␇좏␇);
+Test_N(q␇좐␇, q␇좐␇, q␇좐␇, q␇좐␇, q␇좐␇);
+Test_N(q␇좑␇, q␇좑␇, q␇좑␇, q␇좑␇, q␇좑␇);
+Test_N(q␇좒␇, q␇좒␇, q␇좒␇, q␇좒␇, q␇좒␇);
+Test_N(q␇좓␇, q␇좓␇, q␇좓␇, q␇좓␇, q␇좓␇);
+Test_N(q␇좔␇, q␇좔␇, q␇좔␇, q␇좔␇, q␇좔␇);
+Test_N(q␇좕␇, q␇좕␇, q␇좕␇, q␇좕␇, q␇좕␇);
+Test_N(q␇좖␇, q␇좖␇, q␇좖␇, q␇좖␇, q␇좖␇);
+Test_N(q␇좗␇, q␇좗␇, q␇좗␇, q␇좗␇, q␇좗␇);
+Test_N(q␇좘␇, q␇좘␇, q␇좘␇, q␇좘␇, q␇좘␇);
+Test_N(q␇좙␇, q␇좙␇, q␇좙␇, q␇좙␇, q␇좙␇);
+Test_N(q␇좚␇, q␇좚␇, q␇좚␇, q␇좚␇, q␇좚␇);
+Test_N(q␇좛␇, q␇좛␇, q␇좛␇, q␇좛␇, q␇좛␇);
+Test_N(q␇좜␇, q␇좜␇, q␇좜␇, q␇좜␇, q␇좜␇);
+Test_N(q␇좝␇, q␇좝␇, q␇좝␇, q␇좝␇, q␇좝␇);
+Test_N(q␇좞␇, q␇좞␇, q␇좞␇, q␇좞␇, q␇좞␇);
+Test_N(q␇좟␇, q␇좟␇, q␇좟␇, q␇좟␇, q␇좟␇);
+Test_N(q␇좠␇, q␇좠␇, q␇좠␇, q␇좠␇, q␇좠␇);
+Test_N(q␇좡␇, q␇좡␇, q␇좡␇, q␇좡␇, q␇좡␇);
+Test_N(q␇좢␇, q␇좢␇, q␇좢␇, q␇좢␇, q␇좢␇);
+Test_N(q␇좣␇, q␇좣␇, q␇좣␇, q␇좣␇, q␇좣␇);
+Test_N(q␇좤␇, q␇좤␇, q␇좤␇, q␇좤␇, q␇좤␇);
+Test_N(q␇좥␇, q␇좥␇, q␇좥␇, q␇좥␇, q␇좥␇);
+Test_N(q␇좦␇, q␇좦␇, q␇좦␇, q␇좦␇, q␇좦␇);
+Test_N(q␇좧␇, q␇좧␇, q␇좧␇, q␇좧␇, q␇좧␇);
+Test_N(q␇좨␇, q␇좨␇, q␇좨␇, q␇좨␇, q␇좨␇);
+Test_N(q␇좩␇, q␇좩␇, q␇좩␇, q␇좩␇, q␇좩␇);
+Test_N(q␇좪␇, q␇좪␇, q␇좪␇, q␇좪␇, q␇좪␇);
+Test_N(q␇좫␇, q␇좫␇, q␇좫␇, q␇좫␇, q␇좫␇);
+Test_N(q␇좬␇, q␇좬␇, q␇좬␇, q␇좬␇, q␇좬␇);
+Test_N(q␇좭␇, q␇좭␇, q␇좭␇, q␇좭␇, q␇좭␇);
+Test_N(q␇좮␇, q␇좮␇, q␇좮␇, q␇좮␇, q␇좮␇);
+Test_N(q␇좯␇, q␇좯␇, q␇좯␇, q␇좯␇, q␇좯␇);
+Test_N(q␇좰␇, q␇좰␇, q␇좰␇, q␇좰␇, q␇좰␇);
+Test_N(q␇좱␇, q␇좱␇, q␇좱␇, q␇좱␇, q␇좱␇);
+Test_N(q␇좲␇, q␇좲␇, q␇좲␇, q␇좲␇, q␇좲␇);
+Test_N(q␇좳␇, q␇좳␇, q␇좳␇, q␇좳␇, q␇좳␇);
+Test_N(q␇좴␇, q␇좴␇, q␇좴␇, q␇좴␇, q␇좴␇);
+Test_N(q␇좵␇, q␇좵␇, q␇좵␇, q␇좵␇, q␇좵␇);
+Test_N(q␇좶␇, q␇좶␇, q␇좶␇, q␇좶␇, q␇좶␇);
+Test_N(q␇좷␇, q␇좷␇, q␇좷␇, q␇좷␇, q␇좷␇);
+Test_N(q␇좸␇, q␇좸␇, q␇좸␇, q␇좸␇, q␇좸␇);
+Test_N(q␇좹␇, q␇좹␇, q␇좹␇, q␇좹␇, q␇좹␇);
+Test_N(q␇좺␇, q␇좺␇, q␇좺␇, q␇좺␇, q␇좺␇);
+Test_N(q␇좻␇, q␇좻␇, q␇좻␇, q␇좻␇, q␇좻␇);
+Test_N(q␇좼␇, q␇좼␇, q␇좼␇, q␇좼␇, q␇좼␇);
+Test_N(q␇좽␇, q␇좽␇, q␇좽␇, q␇좽␇, q␇좽␇);
+Test_N(q␇좾␇, q␇좾␇, q␇좾␇, q␇좾␇, q␇좾␇);
+Test_N(q␇좿␇, q␇좿␇, q␇좿␇, q␇좿␇, q␇좿␇);
+Test_N(q␇죀␇, q␇죀␇, q␇죀␇, q␇죀␇, q␇죀␇);
+Test_N(q␇죁␇, q␇죁␇, q␇죁␇, q␇죁␇, q␇죁␇);
+Test_N(q␇죂␇, q␇죂␇, q␇죂␇, q␇죂␇, q␇죂␇);
+Test_N(q␇죃␇, q␇죃␇, q␇죃␇, q␇죃␇, q␇죃␇);
+Test_N(q␇죄␇, q␇죄␇, q␇죄␇, q␇죄␇, q␇죄␇);
+Test_N(q␇죅␇, q␇죅␇, q␇죅␇, q␇죅␇, q␇죅␇);
+Test_N(q␇죆␇, q␇죆␇, q␇죆␇, q␇죆␇, q␇죆␇);
+Test_N(q␇죇␇, q␇죇␇, q␇죇␇, q␇죇␇, q␇죇␇);
+Test_N(q␇죈␇, q␇죈␇, q␇죈␇, q␇죈␇, q␇죈␇);
+Test_N(q␇죉␇, q␇죉␇, q␇죉␇, q␇죉␇, q␇죉␇);
+Test_N(q␇죊␇, q␇죊␇, q␇죊␇, q␇죊␇, q␇죊␇);
+Test_N(q␇죋␇, q␇죋␇, q␇죋␇, q␇죋␇, q␇죋␇);
+Test_N(q␇죌␇, q␇죌␇, q␇죌␇, q␇죌␇, q␇죌␇);
+Test_N(q␇죍␇, q␇죍␇, q␇죍␇, q␇죍␇, q␇죍␇);
+Test_N(q␇죎␇, q␇죎␇, q␇죎␇, q␇죎␇, q␇죎␇);
+Test_N(q␇죏␇, q␇죏␇, q␇죏␇, q␇죏␇, q␇죏␇);
+Test_N(q␇죐␇, q␇죐␇, q␇죐␇, q␇죐␇, q␇죐␇);
+Test_N(q␇죑␇, q␇죑␇, q␇죑␇, q␇죑␇, q␇죑␇);
+Test_N(q␇죒␇, q␇죒␇, q␇죒␇, q␇죒␇, q␇죒␇);
+Test_N(q␇죓␇, q␇죓␇, q␇죓␇, q␇죓␇, q␇죓␇);
+Test_N(q␇죔␇, q␇죔␇, q␇죔␇, q␇죔␇, q␇죔␇);
+Test_N(q␇죕␇, q␇죕␇, q␇죕␇, q␇죕␇, q␇죕␇);
+Test_N(q␇죖␇, q␇죖␇, q␇죖␇, q␇죖␇, q␇죖␇);
+Test_N(q␇죗␇, q␇죗␇, q␇죗␇, q␇죗␇, q␇죗␇);
+Test_N(q␇죘␇, q␇죘␇, q␇죘␇, q␇죘␇, q␇죘␇);
+Test_N(q␇죙␇, q␇죙␇, q␇죙␇, q␇죙␇, q␇죙␇);
+Test_N(q␇죚␇, q␇죚␇, q␇죚␇, q␇죚␇, q␇죚␇);
+Test_N(q␇죛␇, q␇죛␇, q␇죛␇, q␇죛␇, q␇죛␇);
+Test_N(q␇죜␇, q␇죜␇, q␇죜␇, q␇죜␇, q␇죜␇);
+Test_N(q␇죝␇, q␇죝␇, q␇죝␇, q␇죝␇, q␇죝␇);
+Test_N(q␇죞␇, q␇죞␇, q␇죞␇, q␇죞␇, q␇죞␇);
+Test_N(q␇죟␇, q␇죟␇, q␇죟␇, q␇죟␇, q␇죟␇);
+Test_N(q␇죠␇, q␇죠␇, q␇죠␇, q␇죠␇, q␇죠␇);
+Test_N(q␇죡␇, q␇죡␇, q␇죡␇, q␇죡␇, q␇죡␇);
+Test_N(q␇죢␇, q␇죢␇, q␇죢␇, q␇죢␇, q␇죢␇);
+Test_N(q␇죣␇, q␇죣␇, q␇죣␇, q␇죣␇, q␇죣␇);
+Test_N(q␇죤␇, q␇죤␇, q␇죤␇, q␇죤␇, q␇죤␇);
+Test_N(q␇죥␇, q␇죥␇, q␇죥␇, q␇죥␇, q␇죥␇);
+Test_N(q␇죦␇, q␇죦␇, q␇죦␇, q␇죦␇, q␇죦␇);
+Test_N(q␇죧␇, q␇죧␇, q␇죧␇, q␇죧␇, q␇죧␇);
+Test_N(q␇죨␇, q␇죨␇, q␇죨␇, q␇죨␇, q␇죨␇);
+Test_N(q␇죩␇, q␇죩␇, q␇죩␇, q␇죩␇, q␇죩␇);
+Test_N(q␇죪␇, q␇죪␇, q␇죪␇, q␇죪␇, q␇죪␇);
+Test_N(q␇죫␇, q␇죫␇, q␇죫␇, q␇죫␇, q␇죫␇);
+Test_N(q␇죬␇, q␇죬␇, q␇죬␇, q␇죬␇, q␇죬␇);
+Test_N(q␇죭␇, q␇죭␇, q␇죭␇, q␇죭␇, q␇죭␇);
+Test_N(q␇죮␇, q␇죮␇, q␇죮␇, q␇죮␇, q␇죮␇);
+Test_N(q␇죯␇, q␇죯␇, q␇죯␇, q␇죯␇, q␇죯␇);
+Test_N(q␇죰␇, q␇죰␇, q␇죰␇, q␇죰␇, q␇죰␇);
+Test_N(q␇죱␇, q␇죱␇, q␇죱␇, q␇죱␇, q␇죱␇);
+Test_N(q␇죲␇, q␇죲␇, q␇죲␇, q␇죲␇, q␇죲␇);
+Test_N(q␇죳␇, q␇죳␇, q␇죳␇, q␇죳␇, q␇죳␇);
+Test_N(q␇죴␇, q␇죴␇, q␇죴␇, q␇죴␇, q␇죴␇);
+Test_N(q␇죵␇, q␇죵␇, q␇죵␇, q␇죵␇, q␇죵␇);
+Test_N(q␇죶␇, q␇죶␇, q␇죶␇, q␇죶␇, q␇죶␇);
+Test_N(q␇죷␇, q␇죷␇, q␇죷␇, q␇죷␇, q␇죷␇);
+Test_N(q␇죸␇, q␇죸␇, q␇죸␇, q␇죸␇, q␇죸␇);
+Test_N(q␇죹␇, q␇죹␇, q␇죹␇, q␇죹␇, q␇죹␇);
+Test_N(q␇죺␇, q␇죺␇, q␇죺␇, q␇죺␇, q␇죺␇);
+Test_N(q␇죻␇, q␇죻␇, q␇죻␇, q␇죻␇, q␇죻␇);
+Test_N(q␇주␇, q␇주␇, q␇주␇, q␇주␇, q␇주␇);
+Test_N(q␇죽␇, q␇죽␇, q␇죽␇, q␇죽␇, q␇죽␇);
+Test_N(q␇죾␇, q␇죾␇, q␇죾␇, q␇죾␇, q␇죾␇);
+Test_N(q␇죿␇, q␇죿␇, q␇죿␇, q␇죿␇, q␇죿␇);
+Test_N(q␇준␇, q␇준␇, q␇준␇, q␇준␇, q␇준␇);
+Test_N(q␇줁␇, q␇줁␇, q␇줁␇, q␇줁␇, q␇줁␇);
+Test_N(q␇줂␇, q␇줂␇, q␇줂␇, q␇줂␇, q␇줂␇);
+Test_N(q␇줃␇, q␇줃␇, q␇줃␇, q␇줃␇, q␇줃␇);
+Test_N(q␇줄␇, q␇줄␇, q␇줄␇, q␇줄␇, q␇줄␇);
+Test_N(q␇줅␇, q␇줅␇, q␇줅␇, q␇줅␇, q␇줅␇);
+Test_N(q␇줆␇, q␇줆␇, q␇줆␇, q␇줆␇, q␇줆␇);
+Test_N(q␇줇␇, q␇줇␇, q␇줇␇, q␇줇␇, q␇줇␇);
+Test_N(q␇줈␇, q␇줈␇, q␇줈␇, q␇줈␇, q␇줈␇);
+Test_N(q␇줉␇, q␇줉␇, q␇줉␇, q␇줉␇, q␇줉␇);
+Test_N(q␇줊␇, q␇줊␇, q␇줊␇, q␇줊␇, q␇줊␇);
+Test_N(q␇줋␇, q␇줋␇, q␇줋␇, q␇줋␇, q␇줋␇);
+Test_N(q␇줌␇, q␇줌␇, q␇줌␇, q␇줌␇, q␇줌␇);
+Test_N(q␇줍␇, q␇줍␇, q␇줍␇, q␇줍␇, q␇줍␇);
+Test_N(q␇줎␇, q␇줎␇, q␇줎␇, q␇줎␇, q␇줎␇);
+Test_N(q␇줏␇, q␇줏␇, q␇줏␇, q␇줏␇, q␇줏␇);
+Test_N(q␇줐␇, q␇줐␇, q␇줐␇, q␇줐␇, q␇줐␇);
+Test_N(q␇중␇, q␇중␇, q␇중␇, q␇중␇, q␇중␇);
+Test_N(q␇줒␇, q␇줒␇, q␇줒␇, q␇줒␇, q␇줒␇);
+Test_N(q␇줓␇, q␇줓␇, q␇줓␇, q␇줓␇, q␇줓␇);
+Test_N(q␇줔␇, q␇줔␇, q␇줔␇, q␇줔␇, q␇줔␇);
+Test_N(q␇줕␇, q␇줕␇, q␇줕␇, q␇줕␇, q␇줕␇);
+Test_N(q␇줖␇, q␇줖␇, q␇줖␇, q␇줖␇, q␇줖␇);
+Test_N(q␇줗␇, q␇줗␇, q␇줗␇, q␇줗␇, q␇줗␇);
+Test_N(q␇줘␇, q␇줘␇, q␇줘␇, q␇줘␇, q␇줘␇);
+Test_N(q␇줙␇, q␇줙␇, q␇줙␇, q␇줙␇, q␇줙␇);
+Test_N(q␇줚␇, q␇줚␇, q␇줚␇, q␇줚␇, q␇줚␇);
+Test_N(q␇줛␇, q␇줛␇, q␇줛␇, q␇줛␇, q␇줛␇);
+Test_N(q␇줜␇, q␇줜␇, q␇줜␇, q␇줜␇, q␇줜␇);
+Test_N(q␇줝␇, q␇줝␇, q␇줝␇, q␇줝␇, q␇줝␇);
+Test_N(q␇줞␇, q␇줞␇, q␇줞␇, q␇줞␇, q␇줞␇);
+Test_N(q␇줟␇, q␇줟␇, q␇줟␇, q␇줟␇, q␇줟␇);
+Test_N(q␇줠␇, q␇줠␇, q␇줠␇, q␇줠␇, q␇줠␇);
+Test_N(q␇줡␇, q␇줡␇, q␇줡␇, q␇줡␇, q␇줡␇);
+Test_N(q␇줢␇, q␇줢␇, q␇줢␇, q␇줢␇, q␇줢␇);
+Test_N(q␇줣␇, q␇줣␇, q␇줣␇, q␇줣␇, q␇줣␇);
+Test_N(q␇줤␇, q␇줤␇, q␇줤␇, q␇줤␇, q␇줤␇);
+Test_N(q␇줥␇, q␇줥␇, q␇줥␇, q␇줥␇, q␇줥␇);
+Test_N(q␇줦␇, q␇줦␇, q␇줦␇, q␇줦␇, q␇줦␇);
+Test_N(q␇줧␇, q␇줧␇, q␇줧␇, q␇줧␇, q␇줧␇);
+Test_N(q␇줨␇, q␇줨␇, q␇줨␇, q␇줨␇, q␇줨␇);
+Test_N(q␇줩␇, q␇줩␇, q␇줩␇, q␇줩␇, q␇줩␇);
+Test_N(q␇줪␇, q␇줪␇, q␇줪␇, q␇줪␇, q␇줪␇);
+Test_N(q␇줫␇, q␇줫␇, q␇줫␇, q␇줫␇, q␇줫␇);
+Test_N(q␇줬␇, q␇줬␇, q␇줬␇, q␇줬␇, q␇줬␇);
+Test_N(q␇줭␇, q␇줭␇, q␇줭␇, q␇줭␇, q␇줭␇);
+Test_N(q␇줮␇, q␇줮␇, q␇줮␇, q␇줮␇, q␇줮␇);
+Test_N(q␇줯␇, q␇줯␇, q␇줯␇, q␇줯␇, q␇줯␇);
+Test_N(q␇줰␇, q␇줰␇, q␇줰␇, q␇줰␇, q␇줰␇);
+Test_N(q␇줱␇, q␇줱␇, q␇줱␇, q␇줱␇, q␇줱␇);
+Test_N(q␇줲␇, q␇줲␇, q␇줲␇, q␇줲␇, q␇줲␇);
+Test_N(q␇줳␇, q␇줳␇, q␇줳␇, q␇줳␇, q␇줳␇);
+Test_N(q␇줴␇, q␇줴␇, q␇줴␇, q␇줴␇, q␇줴␇);
+Test_N(q␇줵␇, q␇줵␇, q␇줵␇, q␇줵␇, q␇줵␇);
+Test_N(q␇줶␇, q␇줶␇, q␇줶␇, q␇줶␇, q␇줶␇);
+Test_N(q␇줷␇, q␇줷␇, q␇줷␇, q␇줷␇, q␇줷␇);
+Test_N(q␇줸␇, q␇줸␇, q␇줸␇, q␇줸␇, q␇줸␇);
+Test_N(q␇줹␇, q␇줹␇, q␇줹␇, q␇줹␇, q␇줹␇);
+Test_N(q␇줺␇, q␇줺␇, q␇줺␇, q␇줺␇, q␇줺␇);
+Test_N(q␇줻␇, q␇줻␇, q␇줻␇, q␇줻␇, q␇줻␇);
+Test_N(q␇줼␇, q␇줼␇, q␇줼␇, q␇줼␇, q␇줼␇);
+Test_N(q␇줽␇, q␇줽␇, q␇줽␇, q␇줽␇, q␇줽␇);
+Test_N(q␇줾␇, q␇줾␇, q␇줾␇, q␇줾␇, q␇줾␇);
+Test_N(q␇줿␇, q␇줿␇, q␇줿␇, q␇줿␇, q␇줿␇);
+Test_N(q␇쥀␇, q␇쥀␇, q␇쥀␇, q␇쥀␇, q␇쥀␇);
+Test_N(q␇쥁␇, q␇쥁␇, q␇쥁␇, q␇쥁␇, q␇쥁␇);
+Test_N(q␇쥂␇, q␇쥂␇, q␇쥂␇, q␇쥂␇, q␇쥂␇);
+Test_N(q␇쥃␇, q␇쥃␇, q␇쥃␇, q␇쥃␇, q␇쥃␇);
+Test_N(q␇쥄␇, q␇쥄␇, q␇쥄␇, q␇쥄␇, q␇쥄␇);
+Test_N(q␇쥅␇, q␇쥅␇, q␇쥅␇, q␇쥅␇, q␇쥅␇);
+Test_N(q␇쥆␇, q␇쥆␇, q␇쥆␇, q␇쥆␇, q␇쥆␇);
+Test_N(q␇쥇␇, q␇쥇␇, q␇쥇␇, q␇쥇␇, q␇쥇␇);
+Test_N(q␇쥈␇, q␇쥈␇, q␇쥈␇, q␇쥈␇, q␇쥈␇);
+Test_N(q␇쥉␇, q␇쥉␇, q␇쥉␇, q␇쥉␇, q␇쥉␇);
+Test_N(q␇쥊␇, q␇쥊␇, q␇쥊␇, q␇쥊␇, q␇쥊␇);
+Test_N(q␇쥋␇, q␇쥋␇, q␇쥋␇, q␇쥋␇, q␇쥋␇);
+Test_N(q␇쥌␇, q␇쥌␇, q␇쥌␇, q␇쥌␇, q␇쥌␇);
+Test_N(q␇쥍␇, q␇쥍␇, q␇쥍␇, q␇쥍␇, q␇쥍␇);
+Test_N(q␇쥎␇, q␇쥎␇, q␇쥎␇, q␇쥎␇, q␇쥎␇);
+Test_N(q␇쥏␇, q␇쥏␇, q␇쥏␇, q␇쥏␇, q␇쥏␇);
+Test_N(q␇쥐␇, q␇쥐␇, q␇쥐␇, q␇쥐␇, q␇쥐␇);
+Test_N(q␇쥑␇, q␇쥑␇, q␇쥑␇, q␇쥑␇, q␇쥑␇);
+Test_N(q␇쥒␇, q␇쥒␇, q␇쥒␇, q␇쥒␇, q␇쥒␇);
+Test_N(q␇쥓␇, q␇쥓␇, q␇쥓␇, q␇쥓␇, q␇쥓␇);
+Test_N(q␇쥔␇, q␇쥔␇, q␇쥔␇, q␇쥔␇, q␇쥔␇);
+Test_N(q␇쥕␇, q␇쥕␇, q␇쥕␇, q␇쥕␇, q␇쥕␇);
+Test_N(q␇쥖␇, q␇쥖␇, q␇쥖␇, q␇쥖␇, q␇쥖␇);
+Test_N(q␇쥗␇, q␇쥗␇, q␇쥗␇, q␇쥗␇, q␇쥗␇);
+Test_N(q␇쥘␇, q␇쥘␇, q␇쥘␇, q␇쥘␇, q␇쥘␇);
+Test_N(q␇쥙␇, q␇쥙␇, q␇쥙␇, q␇쥙␇, q␇쥙␇);
+Test_N(q␇쥚␇, q␇쥚␇, q␇쥚␇, q␇쥚␇, q␇쥚␇);
+Test_N(q␇쥛␇, q␇쥛␇, q␇쥛␇, q␇쥛␇, q␇쥛␇);
+Test_N(q␇쥜␇, q␇쥜␇, q␇쥜␇, q␇쥜␇, q␇쥜␇);
+Test_N(q␇쥝␇, q␇쥝␇, q␇쥝␇, q␇쥝␇, q␇쥝␇);
+Test_N(q␇쥞␇, q␇쥞␇, q␇쥞␇, q␇쥞␇, q␇쥞␇);
+Test_N(q␇쥟␇, q␇쥟␇, q␇쥟␇, q␇쥟␇, q␇쥟␇);
+Test_N(q␇쥠␇, q␇쥠␇, q␇쥠␇, q␇쥠␇, q␇쥠␇);
+Test_N(q␇쥡␇, q␇쥡␇, q␇쥡␇, q␇쥡␇, q␇쥡␇);
+Test_N(q␇쥢␇, q␇쥢␇, q␇쥢␇, q␇쥢␇, q␇쥢␇);
+Test_N(q␇쥣␇, q␇쥣␇, q␇쥣␇, q␇쥣␇, q␇쥣␇);
+Test_N(q␇쥤␇, q␇쥤␇, q␇쥤␇, q␇쥤␇, q␇쥤␇);
+Test_N(q␇쥥␇, q␇쥥␇, q␇쥥␇, q␇쥥␇, q␇쥥␇);
+Test_N(q␇쥦␇, q␇쥦␇, q␇쥦␇, q␇쥦␇, q␇쥦␇);
+Test_N(q␇쥧␇, q␇쥧␇, q␇쥧␇, q␇쥧␇, q␇쥧␇);
+Test_N(q␇쥨␇, q␇쥨␇, q␇쥨␇, q␇쥨␇, q␇쥨␇);
+Test_N(q␇쥩␇, q␇쥩␇, q␇쥩␇, q␇쥩␇, q␇쥩␇);
+Test_N(q␇쥪␇, q␇쥪␇, q␇쥪␇, q␇쥪␇, q␇쥪␇);
+Test_N(q␇쥫␇, q␇쥫␇, q␇쥫␇, q␇쥫␇, q␇쥫␇);
+Test_N(q␇쥬␇, q␇쥬␇, q␇쥬␇, q␇쥬␇, q␇쥬␇);
+Test_N(q␇쥭␇, q␇쥭␇, q␇쥭␇, q␇쥭␇, q␇쥭␇);
+Test_N(q␇쥮␇, q␇쥮␇, q␇쥮␇, q␇쥮␇, q␇쥮␇);
+Test_N(q␇쥯␇, q␇쥯␇, q␇쥯␇, q␇쥯␇, q␇쥯␇);
+Test_N(q␇쥰␇, q␇쥰␇, q␇쥰␇, q␇쥰␇, q␇쥰␇);
+Test_N(q␇쥱␇, q␇쥱␇, q␇쥱␇, q␇쥱␇, q␇쥱␇);
+Test_N(q␇쥲␇, q␇쥲␇, q␇쥲␇, q␇쥲␇, q␇쥲␇);
+Test_N(q␇쥳␇, q␇쥳␇, q␇쥳␇, q␇쥳␇, q␇쥳␇);
+Test_N(q␇쥴␇, q␇쥴␇, q␇쥴␇, q␇쥴␇, q␇쥴␇);
+Test_N(q␇쥵␇, q␇쥵␇, q␇쥵␇, q␇쥵␇, q␇쥵␇);
+Test_N(q␇쥶␇, q␇쥶␇, q␇쥶␇, q␇쥶␇, q␇쥶␇);
+Test_N(q␇쥷␇, q␇쥷␇, q␇쥷␇, q␇쥷␇, q␇쥷␇);
+Test_N(q␇쥸␇, q␇쥸␇, q␇쥸␇, q␇쥸␇, q␇쥸␇);
+Test_N(q␇쥹␇, q␇쥹␇, q␇쥹␇, q␇쥹␇, q␇쥹␇);
+Test_N(q␇쥺␇, q␇쥺␇, q␇쥺␇, q␇쥺␇, q␇쥺␇);
+Test_N(q␇쥻␇, q␇쥻␇, q␇쥻␇, q␇쥻␇, q␇쥻␇);
+Test_N(q␇쥼␇, q␇쥼␇, q␇쥼␇, q␇쥼␇, q␇쥼␇);
+Test_N(q␇쥽␇, q␇쥽␇, q␇쥽␇, q␇쥽␇, q␇쥽␇);
+Test_N(q␇쥾␇, q␇쥾␇, q␇쥾␇, q␇쥾␇, q␇쥾␇);
+Test_N(q␇쥿␇, q␇쥿␇, q␇쥿␇, q␇쥿␇, q␇쥿␇);
+Test_N(q␇즀␇, q␇즀␇, q␇즀␇, q␇즀␇, q␇즀␇);
+Test_N(q␇즁␇, q␇즁␇, q␇즁␇, q␇즁␇, q␇즁␇);
+Test_N(q␇즂␇, q␇즂␇, q␇즂␇, q␇즂␇, q␇즂␇);
+Test_N(q␇즃␇, q␇즃␇, q␇즃␇, q␇즃␇, q␇즃␇);
+Test_N(q␇즄␇, q␇즄␇, q␇즄␇, q␇즄␇, q␇즄␇);
+Test_N(q␇즅␇, q␇즅␇, q␇즅␇, q␇즅␇, q␇즅␇);
+Test_N(q␇즆␇, q␇즆␇, q␇즆␇, q␇즆␇, q␇즆␇);
+Test_N(q␇즇␇, q␇즇␇, q␇즇␇, q␇즇␇, q␇즇␇);
+Test_N(q␇즈␇, q␇즈␇, q␇즈␇, q␇즈␇, q␇즈␇);
+Test_N(q␇즉␇, q␇즉␇, q␇즉␇, q␇즉␇, q␇즉␇);
+Test_N(q␇즊␇, q␇즊␇, q␇즊␇, q␇즊␇, q␇즊␇);
+Test_N(q␇즋␇, q␇즋␇, q␇즋␇, q␇즋␇, q␇즋␇);
+Test_N(q␇즌␇, q␇즌␇, q␇즌␇, q␇즌␇, q␇즌␇);
+Test_N(q␇즍␇, q␇즍␇, q␇즍␇, q␇즍␇, q␇즍␇);
+Test_N(q␇즎␇, q␇즎␇, q␇즎␇, q␇즎␇, q␇즎␇);
+Test_N(q␇즏␇, q␇즏␇, q␇즏␇, q␇즏␇, q␇즏␇);
+Test_N(q␇즐␇, q␇즐␇, q␇즐␇, q␇즐␇, q␇즐␇);
+Test_N(q␇즑␇, q␇즑␇, q␇즑␇, q␇즑␇, q␇즑␇);
+Test_N(q␇즒␇, q␇즒␇, q␇즒␇, q␇즒␇, q␇즒␇);
+Test_N(q␇즓␇, q␇즓␇, q␇즓␇, q␇즓␇, q␇즓␇);
+Test_N(q␇즔␇, q␇즔␇, q␇즔␇, q␇즔␇, q␇즔␇);
+Test_N(q␇즕␇, q␇즕␇, q␇즕␇, q␇즕␇, q␇즕␇);
+Test_N(q␇즖␇, q␇즖␇, q␇즖␇, q␇즖␇, q␇즖␇);
+Test_N(q␇즗␇, q␇즗␇, q␇즗␇, q␇즗␇, q␇즗␇);
+Test_N(q␇즘␇, q␇즘␇, q␇즘␇, q␇즘␇, q␇즘␇);
+Test_N(q␇즙␇, q␇즙␇, q␇즙␇, q␇즙␇, q␇즙␇);
+Test_N(q␇즚␇, q␇즚␇, q␇즚␇, q␇즚␇, q␇즚␇);
+Test_N(q␇즛␇, q␇즛␇, q␇즛␇, q␇즛␇, q␇즛␇);
+Test_N(q␇즜␇, q␇즜␇, q␇즜␇, q␇즜␇, q␇즜␇);
+Test_N(q␇증␇, q␇증␇, q␇증␇, q␇증␇, q␇증␇);
+Test_N(q␇즞␇, q␇즞␇, q␇즞␇, q␇즞␇, q␇즞␇);
+Test_N(q␇즟␇, q␇즟␇, q␇즟␇, q␇즟␇, q␇즟␇);
+Test_N(q␇즠␇, q␇즠␇, q␇즠␇, q␇즠␇, q␇즠␇);
+Test_N(q␇즡␇, q␇즡␇, q␇즡␇, q␇즡␇, q␇즡␇);
+Test_N(q␇즢␇, q␇즢␇, q␇즢␇, q␇즢␇, q␇즢␇);
+Test_N(q␇즣␇, q␇즣␇, q␇즣␇, q␇즣␇, q␇즣␇);
+Test_N(q␇즤␇, q␇즤␇, q␇즤␇, q␇즤␇, q␇즤␇);
+Test_N(q␇즥␇, q␇즥␇, q␇즥␇, q␇즥␇, q␇즥␇);
+Test_N(q␇즦␇, q␇즦␇, q␇즦␇, q␇즦␇, q␇즦␇);
+Test_N(q␇즧␇, q␇즧␇, q␇즧␇, q␇즧␇, q␇즧␇);
+Test_N(q␇즨␇, q␇즨␇, q␇즨␇, q␇즨␇, q␇즨␇);
+Test_N(q␇즩␇, q␇즩␇, q␇즩␇, q␇즩␇, q␇즩␇);
+Test_N(q␇즪␇, q␇즪␇, q␇즪␇, q␇즪␇, q␇즪␇);
+Test_N(q␇즫␇, q␇즫␇, q␇즫␇, q␇즫␇, q␇즫␇);
+Test_N(q␇즬␇, q␇즬␇, q␇즬␇, q␇즬␇, q␇즬␇);
+Test_N(q␇즭␇, q␇즭␇, q␇즭␇, q␇즭␇, q␇즭␇);
+Test_N(q␇즮␇, q␇즮␇, q␇즮␇, q␇즮␇, q␇즮␇);
+Test_N(q␇즯␇, q␇즯␇, q␇즯␇, q␇즯␇, q␇즯␇);
+Test_N(q␇즰␇, q␇즰␇, q␇즰␇, q␇즰␇, q␇즰␇);
+Test_N(q␇즱␇, q␇즱␇, q␇즱␇, q␇즱␇, q␇즱␇);
+Test_N(q␇즲␇, q␇즲␇, q␇즲␇, q␇즲␇, q␇즲␇);
+Test_N(q␇즳␇, q␇즳␇, q␇즳␇, q␇즳␇, q␇즳␇);
+Test_N(q␇즴␇, q␇즴␇, q␇즴␇, q␇즴␇, q␇즴␇);
+Test_N(q␇즵␇, q␇즵␇, q␇즵␇, q␇즵␇, q␇즵␇);
+Test_N(q␇즶␇, q␇즶␇, q␇즶␇, q␇즶␇, q␇즶␇);
+Test_N(q␇즷␇, q␇즷␇, q␇즷␇, q␇즷␇, q␇즷␇);
+Test_N(q␇즸␇, q␇즸␇, q␇즸␇, q␇즸␇, q␇즸␇);
+Test_N(q␇즹␇, q␇즹␇, q␇즹␇, q␇즹␇, q␇즹␇);
+Test_N(q␇즺␇, q␇즺␇, q␇즺␇, q␇즺␇, q␇즺␇);
+Test_N(q␇즻␇, q␇즻␇, q␇즻␇, q␇즻␇, q␇즻␇);
+Test_N(q␇즼␇, q␇즼␇, q␇즼␇, q␇즼␇, q␇즼␇);
+Test_N(q␇즽␇, q␇즽␇, q␇즽␇, q␇즽␇, q␇즽␇);
+Test_N(q␇즾␇, q␇즾␇, q␇즾␇, q␇즾␇, q␇즾␇);
+Test_N(q␇즿␇, q␇즿␇, q␇즿␇, q␇즿␇, q␇즿␇);
+Test_N(q␇지␇, q␇지␇, q␇지␇, q␇지␇, q␇지␇);
+Test_N(q␇직␇, q␇직␇, q␇직␇, q␇직␇, q␇직␇);
+Test_N(q␇짂␇, q␇짂␇, q␇짂␇, q␇짂␇, q␇짂␇);
+Test_N(q␇짃␇, q␇짃␇, q␇짃␇, q␇짃␇, q␇짃␇);
+Test_N(q␇진␇, q␇진␇, q␇진␇, q␇진␇, q␇진␇);
+Test_N(q␇짅␇, q␇짅␇, q␇짅␇, q␇짅␇, q␇짅␇);
+Test_N(q␇짆␇, q␇짆␇, q␇짆␇, q␇짆␇, q␇짆␇);
+Test_N(q␇짇␇, q␇짇␇, q␇짇␇, q␇짇␇, q␇짇␇);
+Test_N(q␇질␇, q␇질␇, q␇질␇, q␇질␇, q␇질␇);
+Test_N(q␇짉␇, q␇짉␇, q␇짉␇, q␇짉␇, q␇짉␇);
+Test_N(q␇짊␇, q␇짊␇, q␇짊␇, q␇짊␇, q␇짊␇);
+Test_N(q␇짋␇, q␇짋␇, q␇짋␇, q␇짋␇, q␇짋␇);
+Test_N(q␇짌␇, q␇짌␇, q␇짌␇, q␇짌␇, q␇짌␇);
+Test_N(q␇짍␇, q␇짍␇, q␇짍␇, q␇짍␇, q␇짍␇);
+Test_N(q␇짎␇, q␇짎␇, q␇짎␇, q␇짎␇, q␇짎␇);
+Test_N(q␇짏␇, q␇짏␇, q␇짏␇, q␇짏␇, q␇짏␇);
+Test_N(q␇짐␇, q␇짐␇, q␇짐␇, q␇짐␇, q␇짐␇);
+Test_N(q␇집␇, q␇집␇, q␇집␇, q␇집␇, q␇집␇);
+Test_N(q␇짒␇, q␇짒␇, q␇짒␇, q␇짒␇, q␇짒␇);
+Test_N(q␇짓␇, q␇짓␇, q␇짓␇, q␇짓␇, q␇짓␇);
+Test_N(q␇짔␇, q␇짔␇, q␇짔␇, q␇짔␇, q␇짔␇);
+Test_N(q␇징␇, q␇징␇, q␇징␇, q␇징␇, q␇징␇);
+Test_N(q␇짖␇, q␇짖␇, q␇짖␇, q␇짖␇, q␇짖␇);
+Test_N(q␇짗␇, q␇짗␇, q␇짗␇, q␇짗␇, q␇짗␇);
+Test_N(q␇짘␇, q␇짘␇, q␇짘␇, q␇짘␇, q␇짘␇);
+Test_N(q␇짙␇, q␇짙␇, q␇짙␇, q␇짙␇, q␇짙␇);
+Test_N(q␇짚␇, q␇짚␇, q␇짚␇, q␇짚␇, q␇짚␇);
+Test_N(q␇짛␇, q␇짛␇, q␇짛␇, q␇짛␇, q␇짛␇);
+Test_N(q␇짜␇, q␇짜␇, q␇짜␇, q␇짜␇, q␇짜␇);
+Test_N(q␇짝␇, q␇짝␇, q␇짝␇, q␇짝␇, q␇짝␇);
+Test_N(q␇짞␇, q␇짞␇, q␇짞␇, q␇짞␇, q␇짞␇);
+Test_N(q␇짟␇, q␇짟␇, q␇짟␇, q␇짟␇, q␇짟␇);
+Test_N(q␇짠␇, q␇짠␇, q␇짠␇, q␇짠␇, q␇짠␇);
+Test_N(q␇짡␇, q␇짡␇, q␇짡␇, q␇짡␇, q␇짡␇);
+Test_N(q␇짢␇, q␇짢␇, q␇짢␇, q␇짢␇, q␇짢␇);
+Test_N(q␇짣␇, q␇짣␇, q␇짣␇, q␇짣␇, q␇짣␇);
+Test_N(q␇짤␇, q␇짤␇, q␇짤␇, q␇짤␇, q␇짤␇);
+Test_N(q␇짥␇, q␇짥␇, q␇짥␇, q␇짥␇, q␇짥␇);
+Test_N(q␇짦␇, q␇짦␇, q␇짦␇, q␇짦␇, q␇짦␇);
+Test_N(q␇짧␇, q␇짧␇, q␇짧␇, q␇짧␇, q␇짧␇);
+Test_N(q␇짨␇, q␇짨␇, q␇짨␇, q␇짨␇, q␇짨␇);
+Test_N(q␇짩␇, q␇짩␇, q␇짩␇, q␇짩␇, q␇짩␇);
+Test_N(q␇짪␇, q␇짪␇, q␇짪␇, q␇짪␇, q␇짪␇);
+Test_N(q␇짫␇, q␇짫␇, q␇짫␇, q␇짫␇, q␇짫␇);
+Test_N(q␇짬␇, q␇짬␇, q␇짬␇, q␇짬␇, q␇짬␇);
+Test_N(q␇짭␇, q␇짭␇, q␇짭␇, q␇짭␇, q␇짭␇);
+Test_N(q␇짮␇, q␇짮␇, q␇짮␇, q␇짮␇, q␇짮␇);
+Test_N(q␇짯␇, q␇짯␇, q␇짯␇, q␇짯␇, q␇짯␇);
+Test_N(q␇짰␇, q␇짰␇, q␇짰␇, q␇짰␇, q␇짰␇);
+Test_N(q␇짱␇, q␇짱␇, q␇짱␇, q␇짱␇, q␇짱␇);
+Test_N(q␇짲␇, q␇짲␇, q␇짲␇, q␇짲␇, q␇짲␇);
+Test_N(q␇짳␇, q␇짳␇, q␇짳␇, q␇짳␇, q␇짳␇);
+Test_N(q␇짴␇, q␇짴␇, q␇짴␇, q␇짴␇, q␇짴␇);
+Test_N(q␇짵␇, q␇짵␇, q␇짵␇, q␇짵␇, q␇짵␇);
+Test_N(q␇짶␇, q␇짶␇, q␇짶␇, q␇짶␇, q␇짶␇);
+Test_N(q␇짷␇, q␇짷␇, q␇짷␇, q␇짷␇, q␇짷␇);
+Test_N(q␇째␇, q␇째␇, q␇째␇, q␇째␇, q␇째␇);
+Test_N(q␇짹␇, q␇짹␇, q␇짹␇, q␇짹␇, q␇짹␇);
+Test_N(q␇짺␇, q␇짺␇, q␇짺␇, q␇짺␇, q␇짺␇);
+Test_N(q␇짻␇, q␇짻␇, q␇짻␇, q␇짻␇, q␇짻␇);
+Test_N(q␇짼␇, q␇짼␇, q␇짼␇, q␇짼␇, q␇짼␇);
+Test_N(q␇짽␇, q␇짽␇, q␇짽␇, q␇짽␇, q␇짽␇);
+Test_N(q␇짾␇, q␇짾␇, q␇짾␇, q␇짾␇, q␇짾␇);
+Test_N(q␇짿␇, q␇짿␇, q␇짿␇, q␇짿␇, q␇짿␇);
+Test_N(q␇쨀␇, q␇쨀␇, q␇쨀␇, q␇쨀␇, q␇쨀␇);
+Test_N(q␇쨁␇, q␇쨁␇, q␇쨁␇, q␇쨁␇, q␇쨁␇);
+Test_N(q␇쨂␇, q␇쨂␇, q␇쨂␇, q␇쨂␇, q␇쨂␇);
+Test_N(q␇쨃␇, q␇쨃␇, q␇쨃␇, q␇쨃␇, q␇쨃␇);
+Test_N(q␇쨄␇, q␇쨄␇, q␇쨄␇, q␇쨄␇, q␇쨄␇);
+Test_N(q␇쨅␇, q␇쨅␇, q␇쨅␇, q␇쨅␇, q␇쨅␇);
+Test_N(q␇쨆␇, q␇쨆␇, q␇쨆␇, q␇쨆␇, q␇쨆␇);
+Test_N(q␇쨇␇, q␇쨇␇, q␇쨇␇, q␇쨇␇, q␇쨇␇);
+Test_N(q␇쨈␇, q␇쨈␇, q␇쨈␇, q␇쨈␇, q␇쨈␇);
+Test_N(q␇쨉␇, q␇쨉␇, q␇쨉␇, q␇쨉␇, q␇쨉␇);
+Test_N(q␇쨊␇, q␇쨊␇, q␇쨊␇, q␇쨊␇, q␇쨊␇);
+Test_N(q␇쨋␇, q␇쨋␇, q␇쨋␇, q␇쨋␇, q␇쨋␇);
+Test_N(q␇쨌␇, q␇쨌␇, q␇쨌␇, q␇쨌␇, q␇쨌␇);
+Test_N(q␇쨍␇, q␇쨍␇, q␇쨍␇, q␇쨍␇, q␇쨍␇);
+Test_N(q␇쨎␇, q␇쨎␇, q␇쨎␇, q␇쨎␇, q␇쨎␇);
+Test_N(q␇쨏␇, q␇쨏␇, q␇쨏␇, q␇쨏␇, q␇쨏␇);
+Test_N(q␇쨐␇, q␇쨐␇, q␇쨐␇, q␇쨐␇, q␇쨐␇);
+Test_N(q␇쨑␇, q␇쨑␇, q␇쨑␇, q␇쨑␇, q␇쨑␇);
+Test_N(q␇쨒␇, q␇쨒␇, q␇쨒␇, q␇쨒␇, q␇쨒␇);
+Test_N(q␇쨓␇, q␇쨓␇, q␇쨓␇, q␇쨓␇, q␇쨓␇);
+Test_N(q␇쨔␇, q␇쨔␇, q␇쨔␇, q␇쨔␇, q␇쨔␇);
+Test_N(q␇쨕␇, q␇쨕␇, q␇쨕␇, q␇쨕␇, q␇쨕␇);
+Test_N(q␇쨖␇, q␇쨖␇, q␇쨖␇, q␇쨖␇, q␇쨖␇);
+Test_N(q␇쨗␇, q␇쨗␇, q␇쨗␇, q␇쨗␇, q␇쨗␇);
+Test_N(q␇쨘␇, q␇쨘␇, q␇쨘␇, q␇쨘␇, q␇쨘␇);
+Test_N(q␇쨙␇, q␇쨙␇, q␇쨙␇, q␇쨙␇, q␇쨙␇);
+Test_N(q␇쨚␇, q␇쨚␇, q␇쨚␇, q␇쨚␇, q␇쨚␇);
+Test_N(q␇쨛␇, q␇쨛␇, q␇쨛␇, q␇쨛␇, q␇쨛␇);
+Test_N(q␇쨜␇, q␇쨜␇, q␇쨜␇, q␇쨜␇, q␇쨜␇);
+Test_N(q␇쨝␇, q␇쨝␇, q␇쨝␇, q␇쨝␇, q␇쨝␇);
+Test_N(q␇쨞␇, q␇쨞␇, q␇쨞␇, q␇쨞␇, q␇쨞␇);
+Test_N(q␇쨟␇, q␇쨟␇, q␇쨟␇, q␇쨟␇, q␇쨟␇);
+Test_N(q␇쨠␇, q␇쨠␇, q␇쨠␇, q␇쨠␇, q␇쨠␇);
+Test_N(q␇쨡␇, q␇쨡␇, q␇쨡␇, q␇쨡␇, q␇쨡␇);
+Test_N(q␇쨢␇, q␇쨢␇, q␇쨢␇, q␇쨢␇, q␇쨢␇);
+Test_N(q␇쨣␇, q␇쨣␇, q␇쨣␇, q␇쨣␇, q␇쨣␇);
+Test_N(q␇쨤␇, q␇쨤␇, q␇쨤␇, q␇쨤␇, q␇쨤␇);
+Test_N(q␇쨥␇, q␇쨥␇, q␇쨥␇, q␇쨥␇, q␇쨥␇);
+Test_N(q␇쨦␇, q␇쨦␇, q␇쨦␇, q␇쨦␇, q␇쨦␇);
+Test_N(q␇쨧␇, q␇쨧␇, q␇쨧␇, q␇쨧␇, q␇쨧␇);
+Test_N(q␇쨨␇, q␇쨨␇, q␇쨨␇, q␇쨨␇, q␇쨨␇);
+Test_N(q␇쨩␇, q␇쨩␇, q␇쨩␇, q␇쨩␇, q␇쨩␇);
+Test_N(q␇쨪␇, q␇쨪␇, q␇쨪␇, q␇쨪␇, q␇쨪␇);
+Test_N(q␇쨫␇, q␇쨫␇, q␇쨫␇, q␇쨫␇, q␇쨫␇);
+Test_N(q␇쨬␇, q␇쨬␇, q␇쨬␇, q␇쨬␇, q␇쨬␇);
+Test_N(q␇쨭␇, q␇쨭␇, q␇쨭␇, q␇쨭␇, q␇쨭␇);
+Test_N(q␇쨮␇, q␇쨮␇, q␇쨮␇, q␇쨮␇, q␇쨮␇);
+Test_N(q␇쨯␇, q␇쨯␇, q␇쨯␇, q␇쨯␇, q␇쨯␇);
+Test_N(q␇쨰␇, q␇쨰␇, q␇쨰␇, q␇쨰␇, q␇쨰␇);
+Test_N(q␇쨱␇, q␇쨱␇, q␇쨱␇, q␇쨱␇, q␇쨱␇);
+Test_N(q␇쨲␇, q␇쨲␇, q␇쨲␇, q␇쨲␇, q␇쨲␇);
+Test_N(q␇쨳␇, q␇쨳␇, q␇쨳␇, q␇쨳␇, q␇쨳␇);
+Test_N(q␇쨴␇, q␇쨴␇, q␇쨴␇, q␇쨴␇, q␇쨴␇);
+Test_N(q␇쨵␇, q␇쨵␇, q␇쨵␇, q␇쨵␇, q␇쨵␇);
+Test_N(q␇쨶␇, q␇쨶␇, q␇쨶␇, q␇쨶␇, q␇쨶␇);
+Test_N(q␇쨷␇, q␇쨷␇, q␇쨷␇, q␇쨷␇, q␇쨷␇);
+Test_N(q␇쨸␇, q␇쨸␇, q␇쨸␇, q␇쨸␇, q␇쨸␇);
+Test_N(q␇쨹␇, q␇쨹␇, q␇쨹␇, q␇쨹␇, q␇쨹␇);
+Test_N(q␇쨺␇, q␇쨺␇, q␇쨺␇, q␇쨺␇, q␇쨺␇);
+Test_N(q␇쨻␇, q␇쨻␇, q␇쨻␇, q␇쨻␇, q␇쨻␇);
+Test_N(q␇쨼␇, q␇쨼␇, q␇쨼␇, q␇쨼␇, q␇쨼␇);
+Test_N(q␇쨽␇, q␇쨽␇, q␇쨽␇, q␇쨽␇, q␇쨽␇);
+Test_N(q␇쨾␇, q␇쨾␇, q␇쨾␇, q␇쨾␇, q␇쨾␇);
+Test_N(q␇쨿␇, q␇쨿␇, q␇쨿␇, q␇쨿␇, q␇쨿␇);
+Test_N(q␇쩀␇, q␇쩀␇, q␇쩀␇, q␇쩀␇, q␇쩀␇);
+Test_N(q␇쩁␇, q␇쩁␇, q␇쩁␇, q␇쩁␇, q␇쩁␇);
+Test_N(q␇쩂␇, q␇쩂␇, q␇쩂␇, q␇쩂␇, q␇쩂␇);
+Test_N(q␇쩃␇, q␇쩃␇, q␇쩃␇, q␇쩃␇, q␇쩃␇);
+Test_N(q␇쩄␇, q␇쩄␇, q␇쩄␇, q␇쩄␇, q␇쩄␇);
+Test_N(q␇쩅␇, q␇쩅␇, q␇쩅␇, q␇쩅␇, q␇쩅␇);
+Test_N(q␇쩆␇, q␇쩆␇, q␇쩆␇, q␇쩆␇, q␇쩆␇);
+Test_N(q␇쩇␇, q␇쩇␇, q␇쩇␇, q␇쩇␇, q␇쩇␇);
+Test_N(q␇쩈␇, q␇쩈␇, q␇쩈␇, q␇쩈␇, q␇쩈␇);
+Test_N(q␇쩉␇, q␇쩉␇, q␇쩉␇, q␇쩉␇, q␇쩉␇);
+Test_N(q␇쩊␇, q␇쩊␇, q␇쩊␇, q␇쩊␇, q␇쩊␇);
+Test_N(q␇쩋␇, q␇쩋␇, q␇쩋␇, q␇쩋␇, q␇쩋␇);
+Test_N(q␇쩌␇, q␇쩌␇, q␇쩌␇, q␇쩌␇, q␇쩌␇);
+Test_N(q␇쩍␇, q␇쩍␇, q␇쩍␇, q␇쩍␇, q␇쩍␇);
+Test_N(q␇쩎␇, q␇쩎␇, q␇쩎␇, q␇쩎␇, q␇쩎␇);
+Test_N(q␇쩏␇, q␇쩏␇, q␇쩏␇, q␇쩏␇, q␇쩏␇);
+Test_N(q␇쩐␇, q␇쩐␇, q␇쩐␇, q␇쩐␇, q␇쩐␇);
+Test_N(q␇쩑␇, q␇쩑␇, q␇쩑␇, q␇쩑␇, q␇쩑␇);
+Test_N(q␇쩒␇, q␇쩒␇, q␇쩒␇, q␇쩒␇, q␇쩒␇);
+Test_N(q␇쩓␇, q␇쩓␇, q␇쩓␇, q␇쩓␇, q␇쩓␇);
+Test_N(q␇쩔␇, q␇쩔␇, q␇쩔␇, q␇쩔␇, q␇쩔␇);
+Test_N(q␇쩕␇, q␇쩕␇, q␇쩕␇, q␇쩕␇, q␇쩕␇);
+Test_N(q␇쩖␇, q␇쩖␇, q␇쩖␇, q␇쩖␇, q␇쩖␇);
+Test_N(q␇쩗␇, q␇쩗␇, q␇쩗␇, q␇쩗␇, q␇쩗␇);
+Test_N(q␇쩘␇, q␇쩘␇, q␇쩘␇, q␇쩘␇, q␇쩘␇);
+Test_N(q␇쩙␇, q␇쩙␇, q␇쩙␇, q␇쩙␇, q␇쩙␇);
+Test_N(q␇쩚␇, q␇쩚␇, q␇쩚␇, q␇쩚␇, q␇쩚␇);
+Test_N(q␇쩛␇, q␇쩛␇, q␇쩛␇, q␇쩛␇, q␇쩛␇);
+Test_N(q␇쩜␇, q␇쩜␇, q␇쩜␇, q␇쩜␇, q␇쩜␇);
+Test_N(q␇쩝␇, q␇쩝␇, q␇쩝␇, q␇쩝␇, q␇쩝␇);
+Test_N(q␇쩞␇, q␇쩞␇, q␇쩞␇, q␇쩞␇, q␇쩞␇);
+Test_N(q␇쩟␇, q␇쩟␇, q␇쩟␇, q␇쩟␇, q␇쩟␇);
+Test_N(q␇쩠␇, q␇쩠␇, q␇쩠␇, q␇쩠␇, q␇쩠␇);
+Test_N(q␇쩡␇, q␇쩡␇, q␇쩡␇, q␇쩡␇, q␇쩡␇);
+Test_N(q␇쩢␇, q␇쩢␇, q␇쩢␇, q␇쩢␇, q␇쩢␇);
+Test_N(q␇쩣␇, q␇쩣␇, q␇쩣␇, q␇쩣␇, q␇쩣␇);
+Test_N(q␇쩤␇, q␇쩤␇, q␇쩤␇, q␇쩤␇, q␇쩤␇);
+Test_N(q␇쩥␇, q␇쩥␇, q␇쩥␇, q␇쩥␇, q␇쩥␇);
+Test_N(q␇쩦␇, q␇쩦␇, q␇쩦␇, q␇쩦␇, q␇쩦␇);
+Test_N(q␇쩧␇, q␇쩧␇, q␇쩧␇, q␇쩧␇, q␇쩧␇);
+Test_N(q␇쩨␇, q␇쩨␇, q␇쩨␇, q␇쩨␇, q␇쩨␇);
+Test_N(q␇쩩␇, q␇쩩␇, q␇쩩␇, q␇쩩␇, q␇쩩␇);
+Test_N(q␇쩪␇, q␇쩪␇, q␇쩪␇, q␇쩪␇, q␇쩪␇);
+Test_N(q␇쩫␇, q␇쩫␇, q␇쩫␇, q␇쩫␇, q␇쩫␇);
+Test_N(q␇쩬␇, q␇쩬␇, q␇쩬␇, q␇쩬␇, q␇쩬␇);
+Test_N(q␇쩭␇, q␇쩭␇, q␇쩭␇, q␇쩭␇, q␇쩭␇);
+Test_N(q␇쩮␇, q␇쩮␇, q␇쩮␇, q␇쩮␇, q␇쩮␇);
+Test_N(q␇쩯␇, q␇쩯␇, q␇쩯␇, q␇쩯␇, q␇쩯␇);
+Test_N(q␇쩰␇, q␇쩰␇, q␇쩰␇, q␇쩰␇, q␇쩰␇);
+Test_N(q␇쩱␇, q␇쩱␇, q␇쩱␇, q␇쩱␇, q␇쩱␇);
+Test_N(q␇쩲␇, q␇쩲␇, q␇쩲␇, q␇쩲␇, q␇쩲␇);
+Test_N(q␇쩳␇, q␇쩳␇, q␇쩳␇, q␇쩳␇, q␇쩳␇);
+Test_N(q␇쩴␇, q␇쩴␇, q␇쩴␇, q␇쩴␇, q␇쩴␇);
+Test_N(q␇쩵␇, q␇쩵␇, q␇쩵␇, q␇쩵␇, q␇쩵␇);
+Test_N(q␇쩶␇, q␇쩶␇, q␇쩶␇, q␇쩶␇, q␇쩶␇);
+Test_N(q␇쩷␇, q␇쩷␇, q␇쩷␇, q␇쩷␇, q␇쩷␇);
+Test_N(q␇쩸␇, q␇쩸␇, q␇쩸␇, q␇쩸␇, q␇쩸␇);
+Test_N(q␇쩹␇, q␇쩹␇, q␇쩹␇, q␇쩹␇, q␇쩹␇);
+Test_N(q␇쩺␇, q␇쩺␇, q␇쩺␇, q␇쩺␇, q␇쩺␇);
+Test_N(q␇쩻␇, q␇쩻␇, q␇쩻␇, q␇쩻␇, q␇쩻␇);
+Test_N(q␇쩼␇, q␇쩼␇, q␇쩼␇, q␇쩼␇, q␇쩼␇);
+Test_N(q␇쩽␇, q␇쩽␇, q␇쩽␇, q␇쩽␇, q␇쩽␇);
+Test_N(q␇쩾␇, q␇쩾␇, q␇쩾␇, q␇쩾␇, q␇쩾␇);
+Test_N(q␇쩿␇, q␇쩿␇, q␇쩿␇, q␇쩿␇, q␇쩿␇);
+Test_N(q␇쪀␇, q␇쪀␇, q␇쪀␇, q␇쪀␇, q␇쪀␇);
+Test_N(q␇쪁␇, q␇쪁␇, q␇쪁␇, q␇쪁␇, q␇쪁␇);
+Test_N(q␇쪂␇, q␇쪂␇, q␇쪂␇, q␇쪂␇, q␇쪂␇);
+Test_N(q␇쪃␇, q␇쪃␇, q␇쪃␇, q␇쪃␇, q␇쪃␇);
+Test_N(q␇쪄␇, q␇쪄␇, q␇쪄␇, q␇쪄␇, q␇쪄␇);
+Test_N(q␇쪅␇, q␇쪅␇, q␇쪅␇, q␇쪅␇, q␇쪅␇);
+Test_N(q␇쪆␇, q␇쪆␇, q␇쪆␇, q␇쪆␇, q␇쪆␇);
+Test_N(q␇쪇␇, q␇쪇␇, q␇쪇␇, q␇쪇␇, q␇쪇␇);
+Test_N(q␇쪈␇, q␇쪈␇, q␇쪈␇, q␇쪈␇, q␇쪈␇);
+Test_N(q␇쪉␇, q␇쪉␇, q␇쪉␇, q␇쪉␇, q␇쪉␇);
+Test_N(q␇쪊␇, q␇쪊␇, q␇쪊␇, q␇쪊␇, q␇쪊␇);
+Test_N(q␇쪋␇, q␇쪋␇, q␇쪋␇, q␇쪋␇, q␇쪋␇);
+Test_N(q␇쪌␇, q␇쪌␇, q␇쪌␇, q␇쪌␇, q␇쪌␇);
+Test_N(q␇쪍␇, q␇쪍␇, q␇쪍␇, q␇쪍␇, q␇쪍␇);
+Test_N(q␇쪎␇, q␇쪎␇, q␇쪎␇, q␇쪎␇, q␇쪎␇);
+Test_N(q␇쪏␇, q␇쪏␇, q␇쪏␇, q␇쪏␇, q␇쪏␇);
+Test_N(q␇쪐␇, q␇쪐␇, q␇쪐␇, q␇쪐␇, q␇쪐␇);
+Test_N(q␇쪑␇, q␇쪑␇, q␇쪑␇, q␇쪑␇, q␇쪑␇);
+Test_N(q␇쪒␇, q␇쪒␇, q␇쪒␇, q␇쪒␇, q␇쪒␇);
+Test_N(q␇쪓␇, q␇쪓␇, q␇쪓␇, q␇쪓␇, q␇쪓␇);
+Test_N(q␇쪔␇, q␇쪔␇, q␇쪔␇, q␇쪔␇, q␇쪔␇);
+Test_N(q␇쪕␇, q␇쪕␇, q␇쪕␇, q␇쪕␇, q␇쪕␇);
+Test_N(q␇쪖␇, q␇쪖␇, q␇쪖␇, q␇쪖␇, q␇쪖␇);
+Test_N(q␇쪗␇, q␇쪗␇, q␇쪗␇, q␇쪗␇, q␇쪗␇);
+Test_N(q␇쪘␇, q␇쪘␇, q␇쪘␇, q␇쪘␇, q␇쪘␇);
+Test_N(q␇쪙␇, q␇쪙␇, q␇쪙␇, q␇쪙␇, q␇쪙␇);
+Test_N(q␇쪚␇, q␇쪚␇, q␇쪚␇, q␇쪚␇, q␇쪚␇);
+Test_N(q␇쪛␇, q␇쪛␇, q␇쪛␇, q␇쪛␇, q␇쪛␇);
+Test_N(q␇쪜␇, q␇쪜␇, q␇쪜␇, q␇쪜␇, q␇쪜␇);
+Test_N(q␇쪝␇, q␇쪝␇, q␇쪝␇, q␇쪝␇, q␇쪝␇);
+Test_N(q␇쪞␇, q␇쪞␇, q␇쪞␇, q␇쪞␇, q␇쪞␇);
+Test_N(q␇쪟␇, q␇쪟␇, q␇쪟␇, q␇쪟␇, q␇쪟␇);
+Test_N(q␇쪠␇, q␇쪠␇, q␇쪠␇, q␇쪠␇, q␇쪠␇);
+Test_N(q␇쪡␇, q␇쪡␇, q␇쪡␇, q␇쪡␇, q␇쪡␇);
+Test_N(q␇쪢␇, q␇쪢␇, q␇쪢␇, q␇쪢␇, q␇쪢␇);
+Test_N(q␇쪣␇, q␇쪣␇, q␇쪣␇, q␇쪣␇, q␇쪣␇);
+Test_N(q␇쪤␇, q␇쪤␇, q␇쪤␇, q␇쪤␇, q␇쪤␇);
+Test_N(q␇쪥␇, q␇쪥␇, q␇쪥␇, q␇쪥␇, q␇쪥␇);
+Test_N(q␇쪦␇, q␇쪦␇, q␇쪦␇, q␇쪦␇, q␇쪦␇);
+Test_N(q␇쪧␇, q␇쪧␇, q␇쪧␇, q␇쪧␇, q␇쪧␇);
+Test_N(q␇쪨␇, q␇쪨␇, q␇쪨␇, q␇쪨␇, q␇쪨␇);
+Test_N(q␇쪩␇, q␇쪩␇, q␇쪩␇, q␇쪩␇, q␇쪩␇);
+Test_N(q␇쪪␇, q␇쪪␇, q␇쪪␇, q␇쪪␇, q␇쪪␇);
+Test_N(q␇쪫␇, q␇쪫␇, q␇쪫␇, q␇쪫␇, q␇쪫␇);
+Test_N(q␇쪬␇, q␇쪬␇, q␇쪬␇, q␇쪬␇, q␇쪬␇);
+Test_N(q␇쪭␇, q␇쪭␇, q␇쪭␇, q␇쪭␇, q␇쪭␇);
+Test_N(q␇쪮␇, q␇쪮␇, q␇쪮␇, q␇쪮␇, q␇쪮␇);
+Test_N(q␇쪯␇, q␇쪯␇, q␇쪯␇, q␇쪯␇, q␇쪯␇);
+Test_N(q␇쪰␇, q␇쪰␇, q␇쪰␇, q␇쪰␇, q␇쪰␇);
+Test_N(q␇쪱␇, q␇쪱␇, q␇쪱␇, q␇쪱␇, q␇쪱␇);
+Test_N(q␇쪲␇, q␇쪲␇, q␇쪲␇, q␇쪲␇, q␇쪲␇);
+Test_N(q␇쪳␇, q␇쪳␇, q␇쪳␇, q␇쪳␇, q␇쪳␇);
+Test_N(q␇쪴␇, q␇쪴␇, q␇쪴␇, q␇쪴␇, q␇쪴␇);
+Test_N(q␇쪵␇, q␇쪵␇, q␇쪵␇, q␇쪵␇, q␇쪵␇);
+Test_N(q␇쪶␇, q␇쪶␇, q␇쪶␇, q␇쪶␇, q␇쪶␇);
+Test_N(q␇쪷␇, q␇쪷␇, q␇쪷␇, q␇쪷␇, q␇쪷␇);
+Test_N(q␇쪸␇, q␇쪸␇, q␇쪸␇, q␇쪸␇, q␇쪸␇);
+Test_N(q␇쪹␇, q␇쪹␇, q␇쪹␇, q␇쪹␇, q␇쪹␇);
+Test_N(q␇쪺␇, q␇쪺␇, q␇쪺␇, q␇쪺␇, q␇쪺␇);
+Test_N(q␇쪻␇, q␇쪻␇, q␇쪻␇, q␇쪻␇, q␇쪻␇);
+Test_N(q␇쪼␇, q␇쪼␇, q␇쪼␇, q␇쪼␇, q␇쪼␇);
+Test_N(q␇쪽␇, q␇쪽␇, q␇쪽␇, q␇쪽␇, q␇쪽␇);
+Test_N(q␇쪾␇, q␇쪾␇, q␇쪾␇, q␇쪾␇, q␇쪾␇);
+Test_N(q␇쪿␇, q␇쪿␇, q␇쪿␇, q␇쪿␇, q␇쪿␇);
+Test_N(q␇쫀␇, q␇쫀␇, q␇쫀␇, q␇쫀␇, q␇쫀␇);
+Test_N(q␇쫁␇, q␇쫁␇, q␇쫁␇, q␇쫁␇, q␇쫁␇);
+Test_N(q␇쫂␇, q␇쫂␇, q␇쫂␇, q␇쫂␇, q␇쫂␇);
+Test_N(q␇쫃␇, q␇쫃␇, q␇쫃␇, q␇쫃␇, q␇쫃␇);
+Test_N(q␇쫄␇, q␇쫄␇, q␇쫄␇, q␇쫄␇, q␇쫄␇);
+Test_N(q␇쫅␇, q␇쫅␇, q␇쫅␇, q␇쫅␇, q␇쫅␇);
+Test_N(q␇쫆␇, q␇쫆␇, q␇쫆␇, q␇쫆␇, q␇쫆␇);
+Test_N(q␇쫇␇, q␇쫇␇, q␇쫇␇, q␇쫇␇, q␇쫇␇);
+Test_N(q␇쫈␇, q␇쫈␇, q␇쫈␇, q␇쫈␇, q␇쫈␇);
+Test_N(q␇쫉␇, q␇쫉␇, q␇쫉␇, q␇쫉␇, q␇쫉␇);
+Test_N(q␇쫊␇, q␇쫊␇, q␇쫊␇, q␇쫊␇, q␇쫊␇);
+Test_N(q␇쫋␇, q␇쫋␇, q␇쫋␇, q␇쫋␇, q␇쫋␇);
+Test_N(q␇쫌␇, q␇쫌␇, q␇쫌␇, q␇쫌␇, q␇쫌␇);
+Test_N(q␇쫍␇, q␇쫍␇, q␇쫍␇, q␇쫍␇, q␇쫍␇);
+Test_N(q␇쫎␇, q␇쫎␇, q␇쫎␇, q␇쫎␇, q␇쫎␇);
+Test_N(q␇쫏␇, q␇쫏␇, q␇쫏␇, q␇쫏␇, q␇쫏␇);
+Test_N(q␇쫐␇, q␇쫐␇, q␇쫐␇, q␇쫐␇, q␇쫐␇);
+Test_N(q␇쫑␇, q␇쫑␇, q␇쫑␇, q␇쫑␇, q␇쫑␇);
+Test_N(q␇쫒␇, q␇쫒␇, q␇쫒␇, q␇쫒␇, q␇쫒␇);
+Test_N(q␇쫓␇, q␇쫓␇, q␇쫓␇, q␇쫓␇, q␇쫓␇);
+Test_N(q␇쫔␇, q␇쫔␇, q␇쫔␇, q␇쫔␇, q␇쫔␇);
+Test_N(q␇쫕␇, q␇쫕␇, q␇쫕␇, q␇쫕␇, q␇쫕␇);
+Test_N(q␇쫖␇, q␇쫖␇, q␇쫖␇, q␇쫖␇, q␇쫖␇);
+Test_N(q␇쫗␇, q␇쫗␇, q␇쫗␇, q␇쫗␇, q␇쫗␇);
+Test_N(q␇쫘␇, q␇쫘␇, q␇쫘␇, q␇쫘␇, q␇쫘␇);
+Test_N(q␇쫙␇, q␇쫙␇, q␇쫙␇, q␇쫙␇, q␇쫙␇);
+Test_N(q␇쫚␇, q␇쫚␇, q␇쫚␇, q␇쫚␇, q␇쫚␇);
+Test_N(q␇쫛␇, q␇쫛␇, q␇쫛␇, q␇쫛␇, q␇쫛␇);
+Test_N(q␇쫜␇, q␇쫜␇, q␇쫜␇, q␇쫜␇, q␇쫜␇);
+Test_N(q␇쫝␇, q␇쫝␇, q␇쫝␇, q␇쫝␇, q␇쫝␇);
+Test_N(q␇쫞␇, q␇쫞␇, q␇쫞␇, q␇쫞␇, q␇쫞␇);
+Test_N(q␇쫟␇, q␇쫟␇, q␇쫟␇, q␇쫟␇, q␇쫟␇);
+Test_N(q␇쫠␇, q␇쫠␇, q␇쫠␇, q␇쫠␇, q␇쫠␇);
+Test_N(q␇쫡␇, q␇쫡␇, q␇쫡␇, q␇쫡␇, q␇쫡␇);
+Test_N(q␇쫢␇, q␇쫢␇, q␇쫢␇, q␇쫢␇, q␇쫢␇);
+Test_N(q␇쫣␇, q␇쫣␇, q␇쫣␇, q␇쫣␇, q␇쫣␇);
+Test_N(q␇쫤␇, q␇쫤␇, q␇쫤␇, q␇쫤␇, q␇쫤␇);
+Test_N(q␇쫥␇, q␇쫥␇, q␇쫥␇, q␇쫥␇, q␇쫥␇);
+Test_N(q␇쫦␇, q␇쫦␇, q␇쫦␇, q␇쫦␇, q␇쫦␇);
+Test_N(q␇쫧␇, q␇쫧␇, q␇쫧␇, q␇쫧␇, q␇쫧␇);
+Test_N(q␇쫨␇, q␇쫨␇, q␇쫨␇, q␇쫨␇, q␇쫨␇);
+Test_N(q␇쫩␇, q␇쫩␇, q␇쫩␇, q␇쫩␇, q␇쫩␇);
+Test_N(q␇쫪␇, q␇쫪␇, q␇쫪␇, q␇쫪␇, q␇쫪␇);
+Test_N(q␇쫫␇, q␇쫫␇, q␇쫫␇, q␇쫫␇, q␇쫫␇);
+Test_N(q␇쫬␇, q␇쫬␇, q␇쫬␇, q␇쫬␇, q␇쫬␇);
+Test_N(q␇쫭␇, q␇쫭␇, q␇쫭␇, q␇쫭␇, q␇쫭␇);
+Test_N(q␇쫮␇, q␇쫮␇, q␇쫮␇, q␇쫮␇, q␇쫮␇);
+Test_N(q␇쫯␇, q␇쫯␇, q␇쫯␇, q␇쫯␇, q␇쫯␇);
+Test_N(q␇쫰␇, q␇쫰␇, q␇쫰␇, q␇쫰␇, q␇쫰␇);
+Test_N(q␇쫱␇, q␇쫱␇, q␇쫱␇, q␇쫱␇, q␇쫱␇);
+Test_N(q␇쫲␇, q␇쫲␇, q␇쫲␇, q␇쫲␇, q␇쫲␇);
+Test_N(q␇쫳␇, q␇쫳␇, q␇쫳␇, q␇쫳␇, q␇쫳␇);
+Test_N(q␇쫴␇, q␇쫴␇, q␇쫴␇, q␇쫴␇, q␇쫴␇);
+Test_N(q␇쫵␇, q␇쫵␇, q␇쫵␇, q␇쫵␇, q␇쫵␇);
+Test_N(q␇쫶␇, q␇쫶␇, q␇쫶␇, q␇쫶␇, q␇쫶␇);
+Test_N(q␇쫷␇, q␇쫷␇, q␇쫷␇, q␇쫷␇, q␇쫷␇);
+Test_N(q␇쫸␇, q␇쫸␇, q␇쫸␇, q␇쫸␇, q␇쫸␇);
+Test_N(q␇쫹␇, q␇쫹␇, q␇쫹␇, q␇쫹␇, q␇쫹␇);
+Test_N(q␇쫺␇, q␇쫺␇, q␇쫺␇, q␇쫺␇, q␇쫺␇);
+Test_N(q␇쫻␇, q␇쫻␇, q␇쫻␇, q␇쫻␇, q␇쫻␇);
+Test_N(q␇쫼␇, q␇쫼␇, q␇쫼␇, q␇쫼␇, q␇쫼␇);
+Test_N(q␇쫽␇, q␇쫽␇, q␇쫽␇, q␇쫽␇, q␇쫽␇);
+Test_N(q␇쫾␇, q␇쫾␇, q␇쫾␇, q␇쫾␇, q␇쫾␇);
+Test_N(q␇쫿␇, q␇쫿␇, q␇쫿␇, q␇쫿␇, q␇쫿␇);
+Test_N(q␇쬀␇, q␇쬀␇, q␇쬀␇, q␇쬀␇, q␇쬀␇);
+Test_N(q␇쬁␇, q␇쬁␇, q␇쬁␇, q␇쬁␇, q␇쬁␇);
+Test_N(q␇쬂␇, q␇쬂␇, q␇쬂␇, q␇쬂␇, q␇쬂␇);
+Test_N(q␇쬃␇, q␇쬃␇, q␇쬃␇, q␇쬃␇, q␇쬃␇);
+Test_N(q␇쬄␇, q␇쬄␇, q␇쬄␇, q␇쬄␇, q␇쬄␇);
+Test_N(q␇쬅␇, q␇쬅␇, q␇쬅␇, q␇쬅␇, q␇쬅␇);
+Test_N(q␇쬆␇, q␇쬆␇, q␇쬆␇, q␇쬆␇, q␇쬆␇);
+Test_N(q␇쬇␇, q␇쬇␇, q␇쬇␇, q␇쬇␇, q␇쬇␇);
+Test_N(q␇쬈␇, q␇쬈␇, q␇쬈␇, q␇쬈␇, q␇쬈␇);
+Test_N(q␇쬉␇, q␇쬉␇, q␇쬉␇, q␇쬉␇, q␇쬉␇);
+Test_N(q␇쬊␇, q␇쬊␇, q␇쬊␇, q␇쬊␇, q␇쬊␇);
+Test_N(q␇쬋␇, q␇쬋␇, q␇쬋␇, q␇쬋␇, q␇쬋␇);
+Test_N(q␇쬌␇, q␇쬌␇, q␇쬌␇, q␇쬌␇, q␇쬌␇);
+Test_N(q␇쬍␇, q␇쬍␇, q␇쬍␇, q␇쬍␇, q␇쬍␇);
+Test_N(q␇쬎␇, q␇쬎␇, q␇쬎␇, q␇쬎␇, q␇쬎␇);
+Test_N(q␇쬏␇, q␇쬏␇, q␇쬏␇, q␇쬏␇, q␇쬏␇);
+Test_N(q␇쬐␇, q␇쬐␇, q␇쬐␇, q␇쬐␇, q␇쬐␇);
+Test_N(q␇쬑␇, q␇쬑␇, q␇쬑␇, q␇쬑␇, q␇쬑␇);
+Test_N(q␇쬒␇, q␇쬒␇, q␇쬒␇, q␇쬒␇, q␇쬒␇);
+Test_N(q␇쬓␇, q␇쬓␇, q␇쬓␇, q␇쬓␇, q␇쬓␇);
+Test_N(q␇쬔␇, q␇쬔␇, q␇쬔␇, q␇쬔␇, q␇쬔␇);
+Test_N(q␇쬕␇, q␇쬕␇, q␇쬕␇, q␇쬕␇, q␇쬕␇);
+Test_N(q␇쬖␇, q␇쬖␇, q␇쬖␇, q␇쬖␇, q␇쬖␇);
+Test_N(q␇쬗␇, q␇쬗␇, q␇쬗␇, q␇쬗␇, q␇쬗␇);
+Test_N(q␇쬘␇, q␇쬘␇, q␇쬘␇, q␇쬘␇, q␇쬘␇);
+Test_N(q␇쬙␇, q␇쬙␇, q␇쬙␇, q␇쬙␇, q␇쬙␇);
+Test_N(q␇쬚␇, q␇쬚␇, q␇쬚␇, q␇쬚␇, q␇쬚␇);
+Test_N(q␇쬛␇, q␇쬛␇, q␇쬛␇, q␇쬛␇, q␇쬛␇);
+Test_N(q␇쬜␇, q␇쬜␇, q␇쬜␇, q␇쬜␇, q␇쬜␇);
+Test_N(q␇쬝␇, q␇쬝␇, q␇쬝␇, q␇쬝␇, q␇쬝␇);
+Test_N(q␇쬞␇, q␇쬞␇, q␇쬞␇, q␇쬞␇, q␇쬞␇);
+Test_N(q␇쬟␇, q␇쬟␇, q␇쬟␇, q␇쬟␇, q␇쬟␇);
+Test_N(q␇쬠␇, q␇쬠␇, q␇쬠␇, q␇쬠␇, q␇쬠␇);
+Test_N(q␇쬡␇, q␇쬡␇, q␇쬡␇, q␇쬡␇, q␇쬡␇);
+Test_N(q␇쬢␇, q␇쬢␇, q␇쬢␇, q␇쬢␇, q␇쬢␇);
+Test_N(q␇쬣␇, q␇쬣␇, q␇쬣␇, q␇쬣␇, q␇쬣␇);
+Test_N(q␇쬤␇, q␇쬤␇, q␇쬤␇, q␇쬤␇, q␇쬤␇);
+Test_N(q␇쬥␇, q␇쬥␇, q␇쬥␇, q␇쬥␇, q␇쬥␇);
+Test_N(q␇쬦␇, q␇쬦␇, q␇쬦␇, q␇쬦␇, q␇쬦␇);
+Test_N(q␇쬧␇, q␇쬧␇, q␇쬧␇, q␇쬧␇, q␇쬧␇);
+Test_N(q␇쬨␇, q␇쬨␇, q␇쬨␇, q␇쬨␇, q␇쬨␇);
+Test_N(q␇쬩␇, q␇쬩␇, q␇쬩␇, q␇쬩␇, q␇쬩␇);
+Test_N(q␇쬪␇, q␇쬪␇, q␇쬪␇, q␇쬪␇, q␇쬪␇);
+Test_N(q␇쬫␇, q␇쬫␇, q␇쬫␇, q␇쬫␇, q␇쬫␇);
+Test_N(q␇쬬␇, q␇쬬␇, q␇쬬␇, q␇쬬␇, q␇쬬␇);
+Test_N(q␇쬭␇, q␇쬭␇, q␇쬭␇, q␇쬭␇, q␇쬭␇);
+Test_N(q␇쬮␇, q␇쬮␇, q␇쬮␇, q␇쬮␇, q␇쬮␇);
+Test_N(q␇쬯␇, q␇쬯␇, q␇쬯␇, q␇쬯␇, q␇쬯␇);
+Test_N(q␇쬰␇, q␇쬰␇, q␇쬰␇, q␇쬰␇, q␇쬰␇);
+Test_N(q␇쬱␇, q␇쬱␇, q␇쬱␇, q␇쬱␇, q␇쬱␇);
+Test_N(q␇쬲␇, q␇쬲␇, q␇쬲␇, q␇쬲␇, q␇쬲␇);
+Test_N(q␇쬳␇, q␇쬳␇, q␇쬳␇, q␇쬳␇, q␇쬳␇);
+Test_N(q␇쬴␇, q␇쬴␇, q␇쬴␇, q␇쬴␇, q␇쬴␇);
+Test_N(q␇쬵␇, q␇쬵␇, q␇쬵␇, q␇쬵␇, q␇쬵␇);
+Test_N(q␇쬶␇, q␇쬶␇, q␇쬶␇, q␇쬶␇, q␇쬶␇);
+Test_N(q␇쬷␇, q␇쬷␇, q␇쬷␇, q␇쬷␇, q␇쬷␇);
+Test_N(q␇쬸␇, q␇쬸␇, q␇쬸␇, q␇쬸␇, q␇쬸␇);
+Test_N(q␇쬹␇, q␇쬹␇, q␇쬹␇, q␇쬹␇, q␇쬹␇);
+Test_N(q␇쬺␇, q␇쬺␇, q␇쬺␇, q␇쬺␇, q␇쬺␇);
+Test_N(q␇쬻␇, q␇쬻␇, q␇쬻␇, q␇쬻␇, q␇쬻␇);
+Test_N(q␇쬼␇, q␇쬼␇, q␇쬼␇, q␇쬼␇, q␇쬼␇);
+Test_N(q␇쬽␇, q␇쬽␇, q␇쬽␇, q␇쬽␇, q␇쬽␇);
+Test_N(q␇쬾␇, q␇쬾␇, q␇쬾␇, q␇쬾␇, q␇쬾␇);
+Test_N(q␇쬿␇, q␇쬿␇, q␇쬿␇, q␇쬿␇, q␇쬿␇);
+Test_N(q␇쭀␇, q␇쭀␇, q␇쭀␇, q␇쭀␇, q␇쭀␇);
+Test_N(q␇쭁␇, q␇쭁␇, q␇쭁␇, q␇쭁␇, q␇쭁␇);
+Test_N(q␇쭂␇, q␇쭂␇, q␇쭂␇, q␇쭂␇, q␇쭂␇);
+Test_N(q␇쭃␇, q␇쭃␇, q␇쭃␇, q␇쭃␇, q␇쭃␇);
+Test_N(q␇쭄␇, q␇쭄␇, q␇쭄␇, q␇쭄␇, q␇쭄␇);
+Test_N(q␇쭅␇, q␇쭅␇, q␇쭅␇, q␇쭅␇, q␇쭅␇);
+Test_N(q␇쭆␇, q␇쭆␇, q␇쭆␇, q␇쭆␇, q␇쭆␇);
+Test_N(q␇쭇␇, q␇쭇␇, q␇쭇␇, q␇쭇␇, q␇쭇␇);
+Test_N(q␇쭈␇, q␇쭈␇, q␇쭈␇, q␇쭈␇, q␇쭈␇);
+Test_N(q␇쭉␇, q␇쭉␇, q␇쭉␇, q␇쭉␇, q␇쭉␇);
+Test_N(q␇쭊␇, q␇쭊␇, q␇쭊␇, q␇쭊␇, q␇쭊␇);
+Test_N(q␇쭋␇, q␇쭋␇, q␇쭋␇, q␇쭋␇, q␇쭋␇);
+Test_N(q␇쭌␇, q␇쭌␇, q␇쭌␇, q␇쭌␇, q␇쭌␇);
+Test_N(q␇쭍␇, q␇쭍␇, q␇쭍␇, q␇쭍␇, q␇쭍␇);
+Test_N(q␇쭎␇, q␇쭎␇, q␇쭎␇, q␇쭎␇, q␇쭎␇);
+Test_N(q␇쭏␇, q␇쭏␇, q␇쭏␇, q␇쭏␇, q␇쭏␇);
+Test_N(q␇쭐␇, q␇쭐␇, q␇쭐␇, q␇쭐␇, q␇쭐␇);
+Test_N(q␇쭑␇, q␇쭑␇, q␇쭑␇, q␇쭑␇, q␇쭑␇);
+Test_N(q␇쭒␇, q␇쭒␇, q␇쭒␇, q␇쭒␇, q␇쭒␇);
+Test_N(q␇쭓␇, q␇쭓␇, q␇쭓␇, q␇쭓␇, q␇쭓␇);
+Test_N(q␇쭔␇, q␇쭔␇, q␇쭔␇, q␇쭔␇, q␇쭔␇);
+Test_N(q␇쭕␇, q␇쭕␇, q␇쭕␇, q␇쭕␇, q␇쭕␇);
+Test_N(q␇쭖␇, q␇쭖␇, q␇쭖␇, q␇쭖␇, q␇쭖␇);
+Test_N(q␇쭗␇, q␇쭗␇, q␇쭗␇, q␇쭗␇, q␇쭗␇);
+Test_N(q␇쭘␇, q␇쭘␇, q␇쭘␇, q␇쭘␇, q␇쭘␇);
+Test_N(q␇쭙␇, q␇쭙␇, q␇쭙␇, q␇쭙␇, q␇쭙␇);
+Test_N(q␇쭚␇, q␇쭚␇, q␇쭚␇, q␇쭚␇, q␇쭚␇);
+Test_N(q␇쭛␇, q␇쭛␇, q␇쭛␇, q␇쭛␇, q␇쭛␇);
+Test_N(q␇쭜␇, q␇쭜␇, q␇쭜␇, q␇쭜␇, q␇쭜␇);
+Test_N(q␇쭝␇, q␇쭝␇, q␇쭝␇, q␇쭝␇, q␇쭝␇);
+Test_N(q␇쭞␇, q␇쭞␇, q␇쭞␇, q␇쭞␇, q␇쭞␇);
+Test_N(q␇쭟␇, q␇쭟␇, q␇쭟␇, q␇쭟␇, q␇쭟␇);
+Test_N(q␇쭠␇, q␇쭠␇, q␇쭠␇, q␇쭠␇, q␇쭠␇);
+Test_N(q␇쭡␇, q␇쭡␇, q␇쭡␇, q␇쭡␇, q␇쭡␇);
+Test_N(q␇쭢␇, q␇쭢␇, q␇쭢␇, q␇쭢␇, q␇쭢␇);
+Test_N(q␇쭣␇, q␇쭣␇, q␇쭣␇, q␇쭣␇, q␇쭣␇);
+Test_N(q␇쭤␇, q␇쭤␇, q␇쭤␇, q␇쭤␇, q␇쭤␇);
+Test_N(q␇쭥␇, q␇쭥␇, q␇쭥␇, q␇쭥␇, q␇쭥␇);
+Test_N(q␇쭦␇, q␇쭦␇, q␇쭦␇, q␇쭦␇, q␇쭦␇);
+Test_N(q␇쭧␇, q␇쭧␇, q␇쭧␇, q␇쭧␇, q␇쭧␇);
+Test_N(q␇쭨␇, q␇쭨␇, q␇쭨␇, q␇쭨␇, q␇쭨␇);
+Test_N(q␇쭩␇, q␇쭩␇, q␇쭩␇, q␇쭩␇, q␇쭩␇);
+Test_N(q␇쭪␇, q␇쭪␇, q␇쭪␇, q␇쭪␇, q␇쭪␇);
+Test_N(q␇쭫␇, q␇쭫␇, q␇쭫␇, q␇쭫␇, q␇쭫␇);
+Test_N(q␇쭬␇, q␇쭬␇, q␇쭬␇, q␇쭬␇, q␇쭬␇);
+Test_N(q␇쭭␇, q␇쭭␇, q␇쭭␇, q␇쭭␇, q␇쭭␇);
+Test_N(q␇쭮␇, q␇쭮␇, q␇쭮␇, q␇쭮␇, q␇쭮␇);
+Test_N(q␇쭯␇, q␇쭯␇, q␇쭯␇, q␇쭯␇, q␇쭯␇);
+Test_N(q␇쭰␇, q␇쭰␇, q␇쭰␇, q␇쭰␇, q␇쭰␇);
+Test_N(q␇쭱␇, q␇쭱␇, q␇쭱␇, q␇쭱␇, q␇쭱␇);
+Test_N(q␇쭲␇, q␇쭲␇, q␇쭲␇, q␇쭲␇, q␇쭲␇);
+Test_N(q␇쭳␇, q␇쭳␇, q␇쭳␇, q␇쭳␇, q␇쭳␇);
+Test_N(q␇쭴␇, q␇쭴␇, q␇쭴␇, q␇쭴␇, q␇쭴␇);
+Test_N(q␇쭵␇, q␇쭵␇, q␇쭵␇, q␇쭵␇, q␇쭵␇);
+Test_N(q␇쭶␇, q␇쭶␇, q␇쭶␇, q␇쭶␇, q␇쭶␇);
+Test_N(q␇쭷␇, q␇쭷␇, q␇쭷␇, q␇쭷␇, q␇쭷␇);
+Test_N(q␇쭸␇, q␇쭸␇, q␇쭸␇, q␇쭸␇, q␇쭸␇);
+Test_N(q␇쭹␇, q␇쭹␇, q␇쭹␇, q␇쭹␇, q␇쭹␇);
+Test_N(q␇쭺␇, q␇쭺␇, q␇쭺␇, q␇쭺␇, q␇쭺␇);
+Test_N(q␇쭻␇, q␇쭻␇, q␇쭻␇, q␇쭻␇, q␇쭻␇);
+Test_N(q␇쭼␇, q␇쭼␇, q␇쭼␇, q␇쭼␇, q␇쭼␇);
+Test_N(q␇쭽␇, q␇쭽␇, q␇쭽␇, q␇쭽␇, q␇쭽␇);
+Test_N(q␇쭾␇, q␇쭾␇, q␇쭾␇, q␇쭾␇, q␇쭾␇);
+Test_N(q␇쭿␇, q␇쭿␇, q␇쭿␇, q␇쭿␇, q␇쭿␇);
+Test_N(q␇쮀␇, q␇쮀␇, q␇쮀␇, q␇쮀␇, q␇쮀␇);
+Test_N(q␇쮁␇, q␇쮁␇, q␇쮁␇, q␇쮁␇, q␇쮁␇);
+Test_N(q␇쮂␇, q␇쮂␇, q␇쮂␇, q␇쮂␇, q␇쮂␇);
+Test_N(q␇쮃␇, q␇쮃␇, q␇쮃␇, q␇쮃␇, q␇쮃␇);
+Test_N(q␇쮄␇, q␇쮄␇, q␇쮄␇, q␇쮄␇, q␇쮄␇);
+Test_N(q␇쮅␇, q␇쮅␇, q␇쮅␇, q␇쮅␇, q␇쮅␇);
+Test_N(q␇쮆␇, q␇쮆␇, q␇쮆␇, q␇쮆␇, q␇쮆␇);
+Test_N(q␇쮇␇, q␇쮇␇, q␇쮇␇, q␇쮇␇, q␇쮇␇);
+Test_N(q␇쮈␇, q␇쮈␇, q␇쮈␇, q␇쮈␇, q␇쮈␇);
+Test_N(q␇쮉␇, q␇쮉␇, q␇쮉␇, q␇쮉␇, q␇쮉␇);
+Test_N(q␇쮊␇, q␇쮊␇, q␇쮊␇, q␇쮊␇, q␇쮊␇);
+Test_N(q␇쮋␇, q␇쮋␇, q␇쮋␇, q␇쮋␇, q␇쮋␇);
+Test_N(q␇쮌␇, q␇쮌␇, q␇쮌␇, q␇쮌␇, q␇쮌␇);
+Test_N(q␇쮍␇, q␇쮍␇, q␇쮍␇, q␇쮍␇, q␇쮍␇);
+Test_N(q␇쮎␇, q␇쮎␇, q␇쮎␇, q␇쮎␇, q␇쮎␇);
+Test_N(q␇쮏␇, q␇쮏␇, q␇쮏␇, q␇쮏␇, q␇쮏␇);
+Test_N(q␇쮐␇, q␇쮐␇, q␇쮐␇, q␇쮐␇, q␇쮐␇);
+Test_N(q␇쮑␇, q␇쮑␇, q␇쮑␇, q␇쮑␇, q␇쮑␇);
+Test_N(q␇쮒␇, q␇쮒␇, q␇쮒␇, q␇쮒␇, q␇쮒␇);
+Test_N(q␇쮓␇, q␇쮓␇, q␇쮓␇, q␇쮓␇, q␇쮓␇);
+Test_N(q␇쮔␇, q␇쮔␇, q␇쮔␇, q␇쮔␇, q␇쮔␇);
+Test_N(q␇쮕␇, q␇쮕␇, q␇쮕␇, q␇쮕␇, q␇쮕␇);
+Test_N(q␇쮖␇, q␇쮖␇, q␇쮖␇, q␇쮖␇, q␇쮖␇);
+Test_N(q␇쮗␇, q␇쮗␇, q␇쮗␇, q␇쮗␇, q␇쮗␇);
+Test_N(q␇쮘␇, q␇쮘␇, q␇쮘␇, q␇쮘␇, q␇쮘␇);
+Test_N(q␇쮙␇, q␇쮙␇, q␇쮙␇, q␇쮙␇, q␇쮙␇);
+Test_N(q␇쮚␇, q␇쮚␇, q␇쮚␇, q␇쮚␇, q␇쮚␇);
+Test_N(q␇쮛␇, q␇쮛␇, q␇쮛␇, q␇쮛␇, q␇쮛␇);
+Test_N(q␇쮜␇, q␇쮜␇, q␇쮜␇, q␇쮜␇, q␇쮜␇);
+Test_N(q␇쮝␇, q␇쮝␇, q␇쮝␇, q␇쮝␇, q␇쮝␇);
+Test_N(q␇쮞␇, q␇쮞␇, q␇쮞␇, q␇쮞␇, q␇쮞␇);
+Test_N(q␇쮟␇, q␇쮟␇, q␇쮟␇, q␇쮟␇, q␇쮟␇);
+Test_N(q␇쮠␇, q␇쮠␇, q␇쮠␇, q␇쮠␇, q␇쮠␇);
+Test_N(q␇쮡␇, q␇쮡␇, q␇쮡␇, q␇쮡␇, q␇쮡␇);
+Test_N(q␇쮢␇, q␇쮢␇, q␇쮢␇, q␇쮢␇, q␇쮢␇);
+Test_N(q␇쮣␇, q␇쮣␇, q␇쮣␇, q␇쮣␇, q␇쮣␇);
+Test_N(q␇쮤␇, q␇쮤␇, q␇쮤␇, q␇쮤␇, q␇쮤␇);
+Test_N(q␇쮥␇, q␇쮥␇, q␇쮥␇, q␇쮥␇, q␇쮥␇);
+Test_N(q␇쮦␇, q␇쮦␇, q␇쮦␇, q␇쮦␇, q␇쮦␇);
+Test_N(q␇쮧␇, q␇쮧␇, q␇쮧␇, q␇쮧␇, q␇쮧␇);
+Test_N(q␇쮨␇, q␇쮨␇, q␇쮨␇, q␇쮨␇, q␇쮨␇);
+Test_N(q␇쮩␇, q␇쮩␇, q␇쮩␇, q␇쮩␇, q␇쮩␇);
+Test_N(q␇쮪␇, q␇쮪␇, q␇쮪␇, q␇쮪␇, q␇쮪␇);
+Test_N(q␇쮫␇, q␇쮫␇, q␇쮫␇, q␇쮫␇, q␇쮫␇);
+Test_N(q␇쮬␇, q␇쮬␇, q␇쮬␇, q␇쮬␇, q␇쮬␇);
+Test_N(q␇쮭␇, q␇쮭␇, q␇쮭␇, q␇쮭␇, q␇쮭␇);
+Test_N(q␇쮮␇, q␇쮮␇, q␇쮮␇, q␇쮮␇, q␇쮮␇);
+Test_N(q␇쮯␇, q␇쮯␇, q␇쮯␇, q␇쮯␇, q␇쮯␇);
+Test_N(q␇쮰␇, q␇쮰␇, q␇쮰␇, q␇쮰␇, q␇쮰␇);
+Test_N(q␇쮱␇, q␇쮱␇, q␇쮱␇, q␇쮱␇, q␇쮱␇);
+Test_N(q␇쮲␇, q␇쮲␇, q␇쮲␇, q␇쮲␇, q␇쮲␇);
+Test_N(q␇쮳␇, q␇쮳␇, q␇쮳␇, q␇쮳␇, q␇쮳␇);
+Test_N(q␇쮴␇, q␇쮴␇, q␇쮴␇, q␇쮴␇, q␇쮴␇);
+Test_N(q␇쮵␇, q␇쮵␇, q␇쮵␇, q␇쮵␇, q␇쮵␇);
+Test_N(q␇쮶␇, q␇쮶␇, q␇쮶␇, q␇쮶␇, q␇쮶␇);
+Test_N(q␇쮷␇, q␇쮷␇, q␇쮷␇, q␇쮷␇, q␇쮷␇);
+Test_N(q␇쮸␇, q␇쮸␇, q␇쮸␇, q␇쮸␇, q␇쮸␇);
+Test_N(q␇쮹␇, q␇쮹␇, q␇쮹␇, q␇쮹␇, q␇쮹␇);
+Test_N(q␇쮺␇, q␇쮺␇, q␇쮺␇, q␇쮺␇, q␇쮺␇);
+Test_N(q␇쮻␇, q␇쮻␇, q␇쮻␇, q␇쮻␇, q␇쮻␇);
+Test_N(q␇쮼␇, q␇쮼␇, q␇쮼␇, q␇쮼␇, q␇쮼␇);
+Test_N(q␇쮽␇, q␇쮽␇, q␇쮽␇, q␇쮽␇, q␇쮽␇);
+Test_N(q␇쮾␇, q␇쮾␇, q␇쮾␇, q␇쮾␇, q␇쮾␇);
+Test_N(q␇쮿␇, q␇쮿␇, q␇쮿␇, q␇쮿␇, q␇쮿␇);
+Test_N(q␇쯀␇, q␇쯀␇, q␇쯀␇, q␇쯀␇, q␇쯀␇);
+Test_N(q␇쯁␇, q␇쯁␇, q␇쯁␇, q␇쯁␇, q␇쯁␇);
+Test_N(q␇쯂␇, q␇쯂␇, q␇쯂␇, q␇쯂␇, q␇쯂␇);
+Test_N(q␇쯃␇, q␇쯃␇, q␇쯃␇, q␇쯃␇, q␇쯃␇);
+Test_N(q␇쯄␇, q␇쯄␇, q␇쯄␇, q␇쯄␇, q␇쯄␇);
+Test_N(q␇쯅␇, q␇쯅␇, q␇쯅␇, q␇쯅␇, q␇쯅␇);
+Test_N(q␇쯆␇, q␇쯆␇, q␇쯆␇, q␇쯆␇, q␇쯆␇);
+Test_N(q␇쯇␇, q␇쯇␇, q␇쯇␇, q␇쯇␇, q␇쯇␇);
+Test_N(q␇쯈␇, q␇쯈␇, q␇쯈␇, q␇쯈␇, q␇쯈␇);
+Test_N(q␇쯉␇, q␇쯉␇, q␇쯉␇, q␇쯉␇, q␇쯉␇);
+Test_N(q␇쯊␇, q␇쯊␇, q␇쯊␇, q␇쯊␇, q␇쯊␇);
+Test_N(q␇쯋␇, q␇쯋␇, q␇쯋␇, q␇쯋␇, q␇쯋␇);
+Test_N(q␇쯌␇, q␇쯌␇, q␇쯌␇, q␇쯌␇, q␇쯌␇);
+Test_N(q␇쯍␇, q␇쯍␇, q␇쯍␇, q␇쯍␇, q␇쯍␇);
+Test_N(q␇쯎␇, q␇쯎␇, q␇쯎␇, q␇쯎␇, q␇쯎␇);
+Test_N(q␇쯏␇, q␇쯏␇, q␇쯏␇, q␇쯏␇, q␇쯏␇);
+Test_N(q␇쯐␇, q␇쯐␇, q␇쯐␇, q␇쯐␇, q␇쯐␇);
+Test_N(q␇쯑␇, q␇쯑␇, q␇쯑␇, q␇쯑␇, q␇쯑␇);
+Test_N(q␇쯒␇, q␇쯒␇, q␇쯒␇, q␇쯒␇, q␇쯒␇);
+Test_N(q␇쯓␇, q␇쯓␇, q␇쯓␇, q␇쯓␇, q␇쯓␇);
+Test_N(q␇쯔␇, q␇쯔␇, q␇쯔␇, q␇쯔␇, q␇쯔␇);
+Test_N(q␇쯕␇, q␇쯕␇, q␇쯕␇, q␇쯕␇, q␇쯕␇);
+Test_N(q␇쯖␇, q␇쯖␇, q␇쯖␇, q␇쯖␇, q␇쯖␇);
+Test_N(q␇쯗␇, q␇쯗␇, q␇쯗␇, q␇쯗␇, q␇쯗␇);
+Test_N(q␇쯘␇, q␇쯘␇, q␇쯘␇, q␇쯘␇, q␇쯘␇);
+Test_N(q␇쯙␇, q␇쯙␇, q␇쯙␇, q␇쯙␇, q␇쯙␇);
+Test_N(q␇쯚␇, q␇쯚␇, q␇쯚␇, q␇쯚␇, q␇쯚␇);
+Test_N(q␇쯛␇, q␇쯛␇, q␇쯛␇, q␇쯛␇, q␇쯛␇);
+Test_N(q␇쯜␇, q␇쯜␇, q␇쯜␇, q␇쯜␇, q␇쯜␇);
+Test_N(q␇쯝␇, q␇쯝␇, q␇쯝␇, q␇쯝␇, q␇쯝␇);
+Test_N(q␇쯞␇, q␇쯞␇, q␇쯞␇, q␇쯞␇, q␇쯞␇);
+Test_N(q␇쯟␇, q␇쯟␇, q␇쯟␇, q␇쯟␇, q␇쯟␇);
+Test_N(q␇쯠␇, q␇쯠␇, q␇쯠␇, q␇쯠␇, q␇쯠␇);
+Test_N(q␇쯡␇, q␇쯡␇, q␇쯡␇, q␇쯡␇, q␇쯡␇);
+Test_N(q␇쯢␇, q␇쯢␇, q␇쯢␇, q␇쯢␇, q␇쯢␇);
+Test_N(q␇쯣␇, q␇쯣␇, q␇쯣␇, q␇쯣␇, q␇쯣␇);
+Test_N(q␇쯤␇, q␇쯤␇, q␇쯤␇, q␇쯤␇, q␇쯤␇);
+Test_N(q␇쯥␇, q␇쯥␇, q␇쯥␇, q␇쯥␇, q␇쯥␇);
+Test_N(q␇쯦␇, q␇쯦␇, q␇쯦␇, q␇쯦␇, q␇쯦␇);
+Test_N(q␇쯧␇, q␇쯧␇, q␇쯧␇, q␇쯧␇, q␇쯧␇);
+Test_N(q␇쯨␇, q␇쯨␇, q␇쯨␇, q␇쯨␇, q␇쯨␇);
+Test_N(q␇쯩␇, q␇쯩␇, q␇쯩␇, q␇쯩␇, q␇쯩␇);
+Test_N(q␇쯪␇, q␇쯪␇, q␇쯪␇, q␇쯪␇, q␇쯪␇);
+Test_N(q␇쯫␇, q␇쯫␇, q␇쯫␇, q␇쯫␇, q␇쯫␇);
+Test_N(q␇쯬␇, q␇쯬␇, q␇쯬␇, q␇쯬␇, q␇쯬␇);
+Test_N(q␇쯭␇, q␇쯭␇, q␇쯭␇, q␇쯭␇, q␇쯭␇);
+Test_N(q␇쯮␇, q␇쯮␇, q␇쯮␇, q␇쯮␇, q␇쯮␇);
+Test_N(q␇쯯␇, q␇쯯␇, q␇쯯␇, q␇쯯␇, q␇쯯␇);
+Test_N(q␇쯰␇, q␇쯰␇, q␇쯰␇, q␇쯰␇, q␇쯰␇);
+Test_N(q␇쯱␇, q␇쯱␇, q␇쯱␇, q␇쯱␇, q␇쯱␇);
+Test_N(q␇쯲␇, q␇쯲␇, q␇쯲␇, q␇쯲␇, q␇쯲␇);
+Test_N(q␇쯳␇, q␇쯳␇, q␇쯳␇, q␇쯳␇, q␇쯳␇);
+Test_N(q␇쯴␇, q␇쯴␇, q␇쯴␇, q␇쯴␇, q␇쯴␇);
+Test_N(q␇쯵␇, q␇쯵␇, q␇쯵␇, q␇쯵␇, q␇쯵␇);
+Test_N(q␇쯶␇, q␇쯶␇, q␇쯶␇, q␇쯶␇, q␇쯶␇);
+Test_N(q␇쯷␇, q␇쯷␇, q␇쯷␇, q␇쯷␇, q␇쯷␇);
+Test_N(q␇쯸␇, q␇쯸␇, q␇쯸␇, q␇쯸␇, q␇쯸␇);
+Test_N(q␇쯹␇, q␇쯹␇, q␇쯹␇, q␇쯹␇, q␇쯹␇);
+Test_N(q␇쯺␇, q␇쯺␇, q␇쯺␇, q␇쯺␇, q␇쯺␇);
+Test_N(q␇쯻␇, q␇쯻␇, q␇쯻␇, q␇쯻␇, q␇쯻␇);
+Test_N(q␇쯼␇, q␇쯼␇, q␇쯼␇, q␇쯼␇, q␇쯼␇);
+Test_N(q␇쯽␇, q␇쯽␇, q␇쯽␇, q␇쯽␇, q␇쯽␇);
+Test_N(q␇쯾␇, q␇쯾␇, q␇쯾␇, q␇쯾␇, q␇쯾␇);
+Test_N(q␇쯿␇, q␇쯿␇, q␇쯿␇, q␇쯿␇, q␇쯿␇);
+Test_N(q␇찀␇, q␇찀␇, q␇찀␇, q␇찀␇, q␇찀␇);
+Test_N(q␇찁␇, q␇찁␇, q␇찁␇, q␇찁␇, q␇찁␇);
+Test_N(q␇찂␇, q␇찂␇, q␇찂␇, q␇찂␇, q␇찂␇);
+Test_N(q␇찃␇, q␇찃␇, q␇찃␇, q␇찃␇, q␇찃␇);
+Test_N(q␇찄␇, q␇찄␇, q␇찄␇, q␇찄␇, q␇찄␇);
+Test_N(q␇찅␇, q␇찅␇, q␇찅␇, q␇찅␇, q␇찅␇);
+Test_N(q␇찆␇, q␇찆␇, q␇찆␇, q␇찆␇, q␇찆␇);
+Test_N(q␇찇␇, q␇찇␇, q␇찇␇, q␇찇␇, q␇찇␇);
+Test_N(q␇찈␇, q␇찈␇, q␇찈␇, q␇찈␇, q␇찈␇);
+Test_N(q␇찉␇, q␇찉␇, q␇찉␇, q␇찉␇, q␇찉␇);
+Test_N(q␇찊␇, q␇찊␇, q␇찊␇, q␇찊␇, q␇찊␇);
+Test_N(q␇찋␇, q␇찋␇, q␇찋␇, q␇찋␇, q␇찋␇);
+Test_N(q␇찌␇, q␇찌␇, q␇찌␇, q␇찌␇, q␇찌␇);
+Test_N(q␇찍␇, q␇찍␇, q␇찍␇, q␇찍␇, q␇찍␇);
+Test_N(q␇찎␇, q␇찎␇, q␇찎␇, q␇찎␇, q␇찎␇);
+Test_N(q␇찏␇, q␇찏␇, q␇찏␇, q␇찏␇, q␇찏␇);
+Test_N(q␇찐␇, q␇찐␇, q␇찐␇, q␇찐␇, q␇찐␇);
+Test_N(q␇찑␇, q␇찑␇, q␇찑␇, q␇찑␇, q␇찑␇);
+Test_N(q␇찒␇, q␇찒␇, q␇찒␇, q␇찒␇, q␇찒␇);
+Test_N(q␇찓␇, q␇찓␇, q␇찓␇, q␇찓␇, q␇찓␇);
+Test_N(q␇찔␇, q␇찔␇, q␇찔␇, q␇찔␇, q␇찔␇);
+Test_N(q␇찕␇, q␇찕␇, q␇찕␇, q␇찕␇, q␇찕␇);
+Test_N(q␇찖␇, q␇찖␇, q␇찖␇, q␇찖␇, q␇찖␇);
+Test_N(q␇찗␇, q␇찗␇, q␇찗␇, q␇찗␇, q␇찗␇);
+Test_N(q␇찘␇, q␇찘␇, q␇찘␇, q␇찘␇, q␇찘␇);
+Test_N(q␇찙␇, q␇찙␇, q␇찙␇, q␇찙␇, q␇찙␇);
+Test_N(q␇찚␇, q␇찚␇, q␇찚␇, q␇찚␇, q␇찚␇);
+Test_N(q␇찛␇, q␇찛␇, q␇찛␇, q␇찛␇, q␇찛␇);
+Test_N(q␇찜␇, q␇찜␇, q␇찜␇, q␇찜␇, q␇찜␇);
+Test_N(q␇찝␇, q␇찝␇, q␇찝␇, q␇찝␇, q␇찝␇);
+Test_N(q␇찞␇, q␇찞␇, q␇찞␇, q␇찞␇, q␇찞␇);
+Test_N(q␇찟␇, q␇찟␇, q␇찟␇, q␇찟␇, q␇찟␇);
+Test_N(q␇찠␇, q␇찠␇, q␇찠␇, q␇찠␇, q␇찠␇);
+Test_N(q␇찡␇, q␇찡␇, q␇찡␇, q␇찡␇, q␇찡␇);
+Test_N(q␇찢␇, q␇찢␇, q␇찢␇, q␇찢␇, q␇찢␇);
+Test_N(q␇찣␇, q␇찣␇, q␇찣␇, q␇찣␇, q␇찣␇);
+Test_N(q␇찤␇, q␇찤␇, q␇찤␇, q␇찤␇, q␇찤␇);
+Test_N(q␇찥␇, q␇찥␇, q␇찥␇, q␇찥␇, q␇찥␇);
+Test_N(q␇찦␇, q␇찦␇, q␇찦␇, q␇찦␇, q␇찦␇);
+Test_N(q␇찧␇, q␇찧␇, q␇찧␇, q␇찧␇, q␇찧␇);
+Test_N(q␇차␇, q␇차␇, q␇차␇, q␇차␇, q␇차␇);
+Test_N(q␇착␇, q␇착␇, q␇착␇, q␇착␇, q␇착␇);
+Test_N(q␇찪␇, q␇찪␇, q␇찪␇, q␇찪␇, q␇찪␇);
+Test_N(q␇찫␇, q␇찫␇, q␇찫␇, q␇찫␇, q␇찫␇);
+Test_N(q␇찬␇, q␇찬␇, q␇찬␇, q␇찬␇, q␇찬␇);
+Test_N(q␇찭␇, q␇찭␇, q␇찭␇, q␇찭␇, q␇찭␇);
+Test_N(q␇찮␇, q␇찮␇, q␇찮␇, q␇찮␇, q␇찮␇);
+Test_N(q␇찯␇, q␇찯␇, q␇찯␇, q␇찯␇, q␇찯␇);
+Test_N(q␇찰␇, q␇찰␇, q␇찰␇, q␇찰␇, q␇찰␇);
+Test_N(q␇찱␇, q␇찱␇, q␇찱␇, q␇찱␇, q␇찱␇);
+Test_N(q␇찲␇, q␇찲␇, q␇찲␇, q␇찲␇, q␇찲␇);
+Test_N(q␇찳␇, q␇찳␇, q␇찳␇, q␇찳␇, q␇찳␇);
+Test_N(q␇찴␇, q␇찴␇, q␇찴␇, q␇찴␇, q␇찴␇);
+Test_N(q␇찵␇, q␇찵␇, q␇찵␇, q␇찵␇, q␇찵␇);
+Test_N(q␇찶␇, q␇찶␇, q␇찶␇, q␇찶␇, q␇찶␇);
+Test_N(q␇찷␇, q␇찷␇, q␇찷␇, q␇찷␇, q␇찷␇);
+Test_N(q␇참␇, q␇참␇, q␇참␇, q␇참␇, q␇참␇);
+Test_N(q␇찹␇, q␇찹␇, q␇찹␇, q␇찹␇, q␇찹␇);
+Test_N(q␇찺␇, q␇찺␇, q␇찺␇, q␇찺␇, q␇찺␇);
+Test_N(q␇찻␇, q␇찻␇, q␇찻␇, q␇찻␇, q␇찻␇);
+Test_N(q␇찼␇, q␇찼␇, q␇찼␇, q␇찼␇, q␇찼␇);
+Test_N(q␇창␇, q␇창␇, q␇창␇, q␇창␇, q␇창␇);
+Test_N(q␇찾␇, q␇찾␇, q␇찾␇, q␇찾␇, q␇찾␇);
+Test_N(q␇찿␇, q␇찿␇, q␇찿␇, q␇찿␇, q␇찿␇);
+Test_N(q␇챀␇, q␇챀␇, q␇챀␇, q␇챀␇, q␇챀␇);
+Test_N(q␇챁␇, q␇챁␇, q␇챁␇, q␇챁␇, q␇챁␇);
+Test_N(q␇챂␇, q␇챂␇, q␇챂␇, q␇챂␇, q␇챂␇);
+Test_N(q␇챃␇, q␇챃␇, q␇챃␇, q␇챃␇, q␇챃␇);
+Test_N(q␇채␇, q␇채␇, q␇채␇, q␇채␇, q␇채␇);
+Test_N(q␇책␇, q␇책␇, q␇책␇, q␇책␇, q␇책␇);
+Test_N(q␇챆␇, q␇챆␇, q␇챆␇, q␇챆␇, q␇챆␇);
+Test_N(q␇챇␇, q␇챇␇, q␇챇␇, q␇챇␇, q␇챇␇);
+Test_N(q␇챈␇, q␇챈␇, q␇챈␇, q␇챈␇, q␇챈␇);
+Test_N(q␇챉␇, q␇챉␇, q␇챉␇, q␇챉␇, q␇챉␇);
+Test_N(q␇챊␇, q␇챊␇, q␇챊␇, q␇챊␇, q␇챊␇);
+Test_N(q␇챋␇, q␇챋␇, q␇챋␇, q␇챋␇, q␇챋␇);
+Test_N(q␇챌␇, q␇챌␇, q␇챌␇, q␇챌␇, q␇챌␇);
+Test_N(q␇챍␇, q␇챍␇, q␇챍␇, q␇챍␇, q␇챍␇);
+Test_N(q␇챎␇, q␇챎␇, q␇챎␇, q␇챎␇, q␇챎␇);
+Test_N(q␇챏␇, q␇챏␇, q␇챏␇, q␇챏␇, q␇챏␇);
+Test_N(q␇챐␇, q␇챐␇, q␇챐␇, q␇챐␇, q␇챐␇);
+Test_N(q␇챑␇, q␇챑␇, q␇챑␇, q␇챑␇, q␇챑␇);
+Test_N(q␇챒␇, q␇챒␇, q␇챒␇, q␇챒␇, q␇챒␇);
+Test_N(q␇챓␇, q␇챓␇, q␇챓␇, q␇챓␇, q␇챓␇);
+Test_N(q␇챔␇, q␇챔␇, q␇챔␇, q␇챔␇, q␇챔␇);
+Test_N(q␇챕␇, q␇챕␇, q␇챕␇, q␇챕␇, q␇챕␇);
+Test_N(q␇챖␇, q␇챖␇, q␇챖␇, q␇챖␇, q␇챖␇);
+Test_N(q␇챗␇, q␇챗␇, q␇챗␇, q␇챗␇, q␇챗␇);
+Test_N(q␇챘␇, q␇챘␇, q␇챘␇, q␇챘␇, q␇챘␇);
+Test_N(q␇챙␇, q␇챙␇, q␇챙␇, q␇챙␇, q␇챙␇);
+Test_N(q␇챚␇, q␇챚␇, q␇챚␇, q␇챚␇, q␇챚␇);
+Test_N(q␇챛␇, q␇챛␇, q␇챛␇, q␇챛␇, q␇챛␇);
+Test_N(q␇챜␇, q␇챜␇, q␇챜␇, q␇챜␇, q␇챜␇);
+Test_N(q␇챝␇, q␇챝␇, q␇챝␇, q␇챝␇, q␇챝␇);
+Test_N(q␇챞␇, q␇챞␇, q␇챞␇, q␇챞␇, q␇챞␇);
+Test_N(q␇챟␇, q␇챟␇, q␇챟␇, q␇챟␇, q␇챟␇);
+Test_N(q␇챠␇, q␇챠␇, q␇챠␇, q␇챠␇, q␇챠␇);
+Test_N(q␇챡␇, q␇챡␇, q␇챡␇, q␇챡␇, q␇챡␇);
+Test_N(q␇챢␇, q␇챢␇, q␇챢␇, q␇챢␇, q␇챢␇);
+Test_N(q␇챣␇, q␇챣␇, q␇챣␇, q␇챣␇, q␇챣␇);
+Test_N(q␇챤␇, q␇챤␇, q␇챤␇, q␇챤␇, q␇챤␇);
+Test_N(q␇챥␇, q␇챥␇, q␇챥␇, q␇챥␇, q␇챥␇);
+Test_N(q␇챦␇, q␇챦␇, q␇챦␇, q␇챦␇, q␇챦␇);
+Test_N(q␇챧␇, q␇챧␇, q␇챧␇, q␇챧␇, q␇챧␇);
+Test_N(q␇챨␇, q␇챨␇, q␇챨␇, q␇챨␇, q␇챨␇);
+Test_N(q␇챩␇, q␇챩␇, q␇챩␇, q␇챩␇, q␇챩␇);
+Test_N(q␇챪␇, q␇챪␇, q␇챪␇, q␇챪␇, q␇챪␇);
+Test_N(q␇챫␇, q␇챫␇, q␇챫␇, q␇챫␇, q␇챫␇);
+Test_N(q␇챬␇, q␇챬␇, q␇챬␇, q␇챬␇, q␇챬␇);
+Test_N(q␇챭␇, q␇챭␇, q␇챭␇, q␇챭␇, q␇챭␇);
+Test_N(q␇챮␇, q␇챮␇, q␇챮␇, q␇챮␇, q␇챮␇);
+Test_N(q␇챯␇, q␇챯␇, q␇챯␇, q␇챯␇, q␇챯␇);
+Test_N(q␇챰␇, q␇챰␇, q␇챰␇, q␇챰␇, q␇챰␇);
+Test_N(q␇챱␇, q␇챱␇, q␇챱␇, q␇챱␇, q␇챱␇);
+Test_N(q␇챲␇, q␇챲␇, q␇챲␇, q␇챲␇, q␇챲␇);
+Test_N(q␇챳␇, q␇챳␇, q␇챳␇, q␇챳␇, q␇챳␇);
+Test_N(q␇챴␇, q␇챴␇, q␇챴␇, q␇챴␇, q␇챴␇);
+Test_N(q␇챵␇, q␇챵␇, q␇챵␇, q␇챵␇, q␇챵␇);
+Test_N(q␇챶␇, q␇챶␇, q␇챶␇, q␇챶␇, q␇챶␇);
+Test_N(q␇챷␇, q␇챷␇, q␇챷␇, q␇챷␇, q␇챷␇);
+Test_N(q␇챸␇, q␇챸␇, q␇챸␇, q␇챸␇, q␇챸␇);
+Test_N(q␇챹␇, q␇챹␇, q␇챹␇, q␇챹␇, q␇챹␇);
+Test_N(q␇챺␇, q␇챺␇, q␇챺␇, q␇챺␇, q␇챺␇);
+Test_N(q␇챻␇, q␇챻␇, q␇챻␇, q␇챻␇, q␇챻␇);
+Test_N(q␇챼␇, q␇챼␇, q␇챼␇, q␇챼␇, q␇챼␇);
+Test_N(q␇챽␇, q␇챽␇, q␇챽␇, q␇챽␇, q␇챽␇);
+Test_N(q␇챾␇, q␇챾␇, q␇챾␇, q␇챾␇, q␇챾␇);
+Test_N(q␇챿␇, q␇챿␇, q␇챿␇, q␇챿␇, q␇챿␇);
+Test_N(q␇첀␇, q␇첀␇, q␇첀␇, q␇첀␇, q␇첀␇);
+Test_N(q␇첁␇, q␇첁␇, q␇첁␇, q␇첁␇, q␇첁␇);
+Test_N(q␇첂␇, q␇첂␇, q␇첂␇, q␇첂␇, q␇첂␇);
+Test_N(q␇첃␇, q␇첃␇, q␇첃␇, q␇첃␇, q␇첃␇);
+Test_N(q␇첄␇, q␇첄␇, q␇첄␇, q␇첄␇, q␇첄␇);
+Test_N(q␇첅␇, q␇첅␇, q␇첅␇, q␇첅␇, q␇첅␇);
+Test_N(q␇첆␇, q␇첆␇, q␇첆␇, q␇첆␇, q␇첆␇);
+Test_N(q␇첇␇, q␇첇␇, q␇첇␇, q␇첇␇, q␇첇␇);
+Test_N(q␇첈␇, q␇첈␇, q␇첈␇, q␇첈␇, q␇첈␇);
+Test_N(q␇첉␇, q␇첉␇, q␇첉␇, q␇첉␇, q␇첉␇);
+Test_N(q␇첊␇, q␇첊␇, q␇첊␇, q␇첊␇, q␇첊␇);
+Test_N(q␇첋␇, q␇첋␇, q␇첋␇, q␇첋␇, q␇첋␇);
+Test_N(q␇첌␇, q␇첌␇, q␇첌␇, q␇첌␇, q␇첌␇);
+Test_N(q␇첍␇, q␇첍␇, q␇첍␇, q␇첍␇, q␇첍␇);
+Test_N(q␇첎␇, q␇첎␇, q␇첎␇, q␇첎␇, q␇첎␇);
+Test_N(q␇첏␇, q␇첏␇, q␇첏␇, q␇첏␇, q␇첏␇);
+Test_N(q␇첐␇, q␇첐␇, q␇첐␇, q␇첐␇, q␇첐␇);
+Test_N(q␇첑␇, q␇첑␇, q␇첑␇, q␇첑␇, q␇첑␇);
+Test_N(q␇첒␇, q␇첒␇, q␇첒␇, q␇첒␇, q␇첒␇);
+Test_N(q␇첓␇, q␇첓␇, q␇첓␇, q␇첓␇, q␇첓␇);
+Test_N(q␇첔␇, q␇첔␇, q␇첔␇, q␇첔␇, q␇첔␇);
+Test_N(q␇첕␇, q␇첕␇, q␇첕␇, q␇첕␇, q␇첕␇);
+Test_N(q␇첖␇, q␇첖␇, q␇첖␇, q␇첖␇, q␇첖␇);
+Test_N(q␇첗␇, q␇첗␇, q␇첗␇, q␇첗␇, q␇첗␇);
+Test_N(q␇처␇, q␇처␇, q␇처␇, q␇처␇, q␇처␇);
+Test_N(q␇척␇, q␇척␇, q␇척␇, q␇척␇, q␇척␇);
+Test_N(q␇첚␇, q␇첚␇, q␇첚␇, q␇첚␇, q␇첚␇);
+Test_N(q␇첛␇, q␇첛␇, q␇첛␇, q␇첛␇, q␇첛␇);
+Test_N(q␇천␇, q␇천␇, q␇천␇, q␇천␇, q␇천␇);
+Test_N(q␇첝␇, q␇첝␇, q␇첝␇, q␇첝␇, q␇첝␇);
+Test_N(q␇첞␇, q␇첞␇, q␇첞␇, q␇첞␇, q␇첞␇);
+Test_N(q␇첟␇, q␇첟␇, q␇첟␇, q␇첟␇, q␇첟␇);
+Test_N(q␇철␇, q␇철␇, q␇철␇, q␇철␇, q␇철␇);
+Test_N(q␇첡␇, q␇첡␇, q␇첡␇, q␇첡␇, q␇첡␇);
+Test_N(q␇첢␇, q␇첢␇, q␇첢␇, q␇첢␇, q␇첢␇);
+Test_N(q␇첣␇, q␇첣␇, q␇첣␇, q␇첣␇, q␇첣␇);
+Test_N(q␇첤␇, q␇첤␇, q␇첤␇, q␇첤␇, q␇첤␇);
+Test_N(q␇첥␇, q␇첥␇, q␇첥␇, q␇첥␇, q␇첥␇);
+Test_N(q␇첦␇, q␇첦␇, q␇첦␇, q␇첦␇, q␇첦␇);
+Test_N(q␇첧␇, q␇첧␇, q␇첧␇, q␇첧␇, q␇첧␇);
+Test_N(q␇첨␇, q␇첨␇, q␇첨␇, q␇첨␇, q␇첨␇);
+Test_N(q␇첩␇, q␇첩␇, q␇첩␇, q␇첩␇, q␇첩␇);
+Test_N(q␇첪␇, q␇첪␇, q␇첪␇, q␇첪␇, q␇첪␇);
+Test_N(q␇첫␇, q␇첫␇, q␇첫␇, q␇첫␇, q␇첫␇);
+Test_N(q␇첬␇, q␇첬␇, q␇첬␇, q␇첬␇, q␇첬␇);
+Test_N(q␇청␇, q␇청␇, q␇청␇, q␇청␇, q␇청␇);
+Test_N(q␇첮␇, q␇첮␇, q␇첮␇, q␇첮␇, q␇첮␇);
+Test_N(q␇첯␇, q␇첯␇, q␇첯␇, q␇첯␇, q␇첯␇);
+Test_N(q␇첰␇, q␇첰␇, q␇첰␇, q␇첰␇, q␇첰␇);
+Test_N(q␇첱␇, q␇첱␇, q␇첱␇, q␇첱␇, q␇첱␇);
+Test_N(q␇첲␇, q␇첲␇, q␇첲␇, q␇첲␇, q␇첲␇);
+Test_N(q␇첳␇, q␇첳␇, q␇첳␇, q␇첳␇, q␇첳␇);
+Test_N(q␇체␇, q␇체␇, q␇체␇, q␇체␇, q␇체␇);
+Test_N(q␇첵␇, q␇첵␇, q␇첵␇, q␇첵␇, q␇첵␇);
+Test_N(q␇첶␇, q␇첶␇, q␇첶␇, q␇첶␇, q␇첶␇);
+Test_N(q␇첷␇, q␇첷␇, q␇첷␇, q␇첷␇, q␇첷␇);
+Test_N(q␇첸␇, q␇첸␇, q␇첸␇, q␇첸␇, q␇첸␇);
+Test_N(q␇첹␇, q␇첹␇, q␇첹␇, q␇첹␇, q␇첹␇);
+Test_N(q␇첺␇, q␇첺␇, q␇첺␇, q␇첺␇, q␇첺␇);
+Test_N(q␇첻␇, q␇첻␇, q␇첻␇, q␇첻␇, q␇첻␇);
+Test_N(q␇첼␇, q␇첼␇, q␇첼␇, q␇첼␇, q␇첼␇);
+Test_N(q␇첽␇, q␇첽␇, q␇첽␇, q␇첽␇, q␇첽␇);
+Test_N(q␇첾␇, q␇첾␇, q␇첾␇, q␇첾␇, q␇첾␇);
+Test_N(q␇첿␇, q␇첿␇, q␇첿␇, q␇첿␇, q␇첿␇);
+Test_N(q␇쳀␇, q␇쳀␇, q␇쳀␇, q␇쳀␇, q␇쳀␇);
+Test_N(q␇쳁␇, q␇쳁␇, q␇쳁␇, q␇쳁␇, q␇쳁␇);
+Test_N(q␇쳂␇, q␇쳂␇, q␇쳂␇, q␇쳂␇, q␇쳂␇);
+Test_N(q␇쳃␇, q␇쳃␇, q␇쳃␇, q␇쳃␇, q␇쳃␇);
+Test_N(q␇쳄␇, q␇쳄␇, q␇쳄␇, q␇쳄␇, q␇쳄␇);
+Test_N(q␇쳅␇, q␇쳅␇, q␇쳅␇, q␇쳅␇, q␇쳅␇);
+Test_N(q␇쳆␇, q␇쳆␇, q␇쳆␇, q␇쳆␇, q␇쳆␇);
+Test_N(q␇쳇␇, q␇쳇␇, q␇쳇␇, q␇쳇␇, q␇쳇␇);
+Test_N(q␇쳈␇, q␇쳈␇, q␇쳈␇, q␇쳈␇, q␇쳈␇);
+Test_N(q␇쳉␇, q␇쳉␇, q␇쳉␇, q␇쳉␇, q␇쳉␇);
+Test_N(q␇쳊␇, q␇쳊␇, q␇쳊␇, q␇쳊␇, q␇쳊␇);
+Test_N(q␇쳋␇, q␇쳋␇, q␇쳋␇, q␇쳋␇, q␇쳋␇);
+Test_N(q␇쳌␇, q␇쳌␇, q␇쳌␇, q␇쳌␇, q␇쳌␇);
+Test_N(q␇쳍␇, q␇쳍␇, q␇쳍␇, q␇쳍␇, q␇쳍␇);
+Test_N(q␇쳎␇, q␇쳎␇, q␇쳎␇, q␇쳎␇, q␇쳎␇);
+Test_N(q␇쳏␇, q␇쳏␇, q␇쳏␇, q␇쳏␇, q␇쳏␇);
+Test_N(q␇쳐␇, q␇쳐␇, q␇쳐␇, q␇쳐␇, q␇쳐␇);
+Test_N(q␇쳑␇, q␇쳑␇, q␇쳑␇, q␇쳑␇, q␇쳑␇);
+Test_N(q␇쳒␇, q␇쳒␇, q␇쳒␇, q␇쳒␇, q␇쳒␇);
+Test_N(q␇쳓␇, q␇쳓␇, q␇쳓␇, q␇쳓␇, q␇쳓␇);
+Test_N(q␇쳔␇, q␇쳔␇, q␇쳔␇, q␇쳔␇, q␇쳔␇);
+Test_N(q␇쳕␇, q␇쳕␇, q␇쳕␇, q␇쳕␇, q␇쳕␇);
+Test_N(q␇쳖␇, q␇쳖␇, q␇쳖␇, q␇쳖␇, q␇쳖␇);
+Test_N(q␇쳗␇, q␇쳗␇, q␇쳗␇, q␇쳗␇, q␇쳗␇);
+Test_N(q␇쳘␇, q␇쳘␇, q␇쳘␇, q␇쳘␇, q␇쳘␇);
+Test_N(q␇쳙␇, q␇쳙␇, q␇쳙␇, q␇쳙␇, q␇쳙␇);
+Test_N(q␇쳚␇, q␇쳚␇, q␇쳚␇, q␇쳚␇, q␇쳚␇);
+Test_N(q␇쳛␇, q␇쳛␇, q␇쳛␇, q␇쳛␇, q␇쳛␇);
+Test_N(q␇쳜␇, q␇쳜␇, q␇쳜␇, q␇쳜␇, q␇쳜␇);
+Test_N(q␇쳝␇, q␇쳝␇, q␇쳝␇, q␇쳝␇, q␇쳝␇);
+Test_N(q␇쳞␇, q␇쳞␇, q␇쳞␇, q␇쳞␇, q␇쳞␇);
+Test_N(q␇쳟␇, q␇쳟␇, q␇쳟␇, q␇쳟␇, q␇쳟␇);
+Test_N(q␇쳠␇, q␇쳠␇, q␇쳠␇, q␇쳠␇, q␇쳠␇);
+Test_N(q␇쳡␇, q␇쳡␇, q␇쳡␇, q␇쳡␇, q␇쳡␇);
+Test_N(q␇쳢␇, q␇쳢␇, q␇쳢␇, q␇쳢␇, q␇쳢␇);
+Test_N(q␇쳣␇, q␇쳣␇, q␇쳣␇, q␇쳣␇, q␇쳣␇);
+Test_N(q␇쳤␇, q␇쳤␇, q␇쳤␇, q␇쳤␇, q␇쳤␇);
+Test_N(q␇쳥␇, q␇쳥␇, q␇쳥␇, q␇쳥␇, q␇쳥␇);
+Test_N(q␇쳦␇, q␇쳦␇, q␇쳦␇, q␇쳦␇, q␇쳦␇);
+Test_N(q␇쳧␇, q␇쳧␇, q␇쳧␇, q␇쳧␇, q␇쳧␇);
+Test_N(q␇쳨␇, q␇쳨␇, q␇쳨␇, q␇쳨␇, q␇쳨␇);
+Test_N(q␇쳩␇, q␇쳩␇, q␇쳩␇, q␇쳩␇, q␇쳩␇);
+Test_N(q␇쳪␇, q␇쳪␇, q␇쳪␇, q␇쳪␇, q␇쳪␇);
+Test_N(q␇쳫␇, q␇쳫␇, q␇쳫␇, q␇쳫␇, q␇쳫␇);
+Test_N(q␇쳬␇, q␇쳬␇, q␇쳬␇, q␇쳬␇, q␇쳬␇);
+Test_N(q␇쳭␇, q␇쳭␇, q␇쳭␇, q␇쳭␇, q␇쳭␇);
+Test_N(q␇쳮␇, q␇쳮␇, q␇쳮␇, q␇쳮␇, q␇쳮␇);
+Test_N(q␇쳯␇, q␇쳯␇, q␇쳯␇, q␇쳯␇, q␇쳯␇);
+Test_N(q␇쳰␇, q␇쳰␇, q␇쳰␇, q␇쳰␇, q␇쳰␇);
+Test_N(q␇쳱␇, q␇쳱␇, q␇쳱␇, q␇쳱␇, q␇쳱␇);
+Test_N(q␇쳲␇, q␇쳲␇, q␇쳲␇, q␇쳲␇, q␇쳲␇);
+Test_N(q␇쳳␇, q␇쳳␇, q␇쳳␇, q␇쳳␇, q␇쳳␇);
+Test_N(q␇쳴␇, q␇쳴␇, q␇쳴␇, q␇쳴␇, q␇쳴␇);
+Test_N(q␇쳵␇, q␇쳵␇, q␇쳵␇, q␇쳵␇, q␇쳵␇);
+Test_N(q␇쳶␇, q␇쳶␇, q␇쳶␇, q␇쳶␇, q␇쳶␇);
+Test_N(q␇쳷␇, q␇쳷␇, q␇쳷␇, q␇쳷␇, q␇쳷␇);
+Test_N(q␇쳸␇, q␇쳸␇, q␇쳸␇, q␇쳸␇, q␇쳸␇);
+Test_N(q␇쳹␇, q␇쳹␇, q␇쳹␇, q␇쳹␇, q␇쳹␇);
+Test_N(q␇쳺␇, q␇쳺␇, q␇쳺␇, q␇쳺␇, q␇쳺␇);
+Test_N(q␇쳻␇, q␇쳻␇, q␇쳻␇, q␇쳻␇, q␇쳻␇);
+Test_N(q␇쳼␇, q␇쳼␇, q␇쳼␇, q␇쳼␇, q␇쳼␇);
+Test_N(q␇쳽␇, q␇쳽␇, q␇쳽␇, q␇쳽␇, q␇쳽␇);
+Test_N(q␇쳾␇, q␇쳾␇, q␇쳾␇, q␇쳾␇, q␇쳾␇);
+Test_N(q␇쳿␇, q␇쳿␇, q␇쳿␇, q␇쳿␇, q␇쳿␇);
+Test_N(q␇촀␇, q␇촀␇, q␇촀␇, q␇촀␇, q␇촀␇);
+Test_N(q␇촁␇, q␇촁␇, q␇촁␇, q␇촁␇, q␇촁␇);
+Test_N(q␇촂␇, q␇촂␇, q␇촂␇, q␇촂␇, q␇촂␇);
+Test_N(q␇촃␇, q␇촃␇, q␇촃␇, q␇촃␇, q␇촃␇);
+Test_N(q␇촄␇, q␇촄␇, q␇촄␇, q␇촄␇, q␇촄␇);
+Test_N(q␇촅␇, q␇촅␇, q␇촅␇, q␇촅␇, q␇촅␇);
+Test_N(q␇촆␇, q␇촆␇, q␇촆␇, q␇촆␇, q␇촆␇);
+Test_N(q␇촇␇, q␇촇␇, q␇촇␇, q␇촇␇, q␇촇␇);
+Test_N(q␇초␇, q␇초␇, q␇초␇, q␇초␇, q␇초␇);
+Test_N(q␇촉␇, q␇촉␇, q␇촉␇, q␇촉␇, q␇촉␇);
+Test_N(q␇촊␇, q␇촊␇, q␇촊␇, q␇촊␇, q␇촊␇);
+Test_N(q␇촋␇, q␇촋␇, q␇촋␇, q␇촋␇, q␇촋␇);
+Test_N(q␇촌␇, q␇촌␇, q␇촌␇, q␇촌␇, q␇촌␇);
+Test_N(q␇촍␇, q␇촍␇, q␇촍␇, q␇촍␇, q␇촍␇);
+Test_N(q␇촎␇, q␇촎␇, q␇촎␇, q␇촎␇, q␇촎␇);
+Test_N(q␇촏␇, q␇촏␇, q␇촏␇, q␇촏␇, q␇촏␇);
+Test_N(q␇촐␇, q␇촐␇, q␇촐␇, q␇촐␇, q␇촐␇);
+Test_N(q␇촑␇, q␇촑␇, q␇촑␇, q␇촑␇, q␇촑␇);
+Test_N(q␇촒␇, q␇촒␇, q␇촒␇, q␇촒␇, q␇촒␇);
+Test_N(q␇촓␇, q␇촓␇, q␇촓␇, q␇촓␇, q␇촓␇);
+Test_N(q␇촔␇, q␇촔␇, q␇촔␇, q␇촔␇, q␇촔␇);
+Test_N(q␇촕␇, q␇촕␇, q␇촕␇, q␇촕␇, q␇촕␇);
+Test_N(q␇촖␇, q␇촖␇, q␇촖␇, q␇촖␇, q␇촖␇);
+Test_N(q␇촗␇, q␇촗␇, q␇촗␇, q␇촗␇, q␇촗␇);
+Test_N(q␇촘␇, q␇촘␇, q␇촘␇, q␇촘␇, q␇촘␇);
+Test_N(q␇촙␇, q␇촙␇, q␇촙␇, q␇촙␇, q␇촙␇);
+Test_N(q␇촚␇, q␇촚␇, q␇촚␇, q␇촚␇, q␇촚␇);
+Test_N(q␇촛␇, q␇촛␇, q␇촛␇, q␇촛␇, q␇촛␇);
+Test_N(q␇촜␇, q␇촜␇, q␇촜␇, q␇촜␇, q␇촜␇);
+Test_N(q␇총␇, q␇총␇, q␇총␇, q␇총␇, q␇총␇);
+Test_N(q␇촞␇, q␇촞␇, q␇촞␇, q␇촞␇, q␇촞␇);
+Test_N(q␇촟␇, q␇촟␇, q␇촟␇, q␇촟␇, q␇촟␇);
+Test_N(q␇촠␇, q␇촠␇, q␇촠␇, q␇촠␇, q␇촠␇);
+Test_N(q␇촡␇, q␇촡␇, q␇촡␇, q␇촡␇, q␇촡␇);
+Test_N(q␇촢␇, q␇촢␇, q␇촢␇, q␇촢␇, q␇촢␇);
+Test_N(q␇촣␇, q␇촣␇, q␇촣␇, q␇촣␇, q␇촣␇);
+Test_N(q␇촤␇, q␇촤␇, q␇촤␇, q␇촤␇, q␇촤␇);
+Test_N(q␇촥␇, q␇촥␇, q␇촥␇, q␇촥␇, q␇촥␇);
+Test_N(q␇촦␇, q␇촦␇, q␇촦␇, q␇촦␇, q␇촦␇);
+Test_N(q␇촧␇, q␇촧␇, q␇촧␇, q␇촧␇, q␇촧␇);
+Test_N(q␇촨␇, q␇촨␇, q␇촨␇, q␇촨␇, q␇촨␇);
+Test_N(q␇촩␇, q␇촩␇, q␇촩␇, q␇촩␇, q␇촩␇);
+Test_N(q␇촪␇, q␇촪␇, q␇촪␇, q␇촪␇, q␇촪␇);
+Test_N(q␇촫␇, q␇촫␇, q␇촫␇, q␇촫␇, q␇촫␇);
+Test_N(q␇촬␇, q␇촬␇, q␇촬␇, q␇촬␇, q␇촬␇);
+Test_N(q␇촭␇, q␇촭␇, q␇촭␇, q␇촭␇, q␇촭␇);
+Test_N(q␇촮␇, q␇촮␇, q␇촮␇, q␇촮␇, q␇촮␇);
+Test_N(q␇촯␇, q␇촯␇, q␇촯␇, q␇촯␇, q␇촯␇);
+Test_N(q␇촰␇, q␇촰␇, q␇촰␇, q␇촰␇, q␇촰␇);
+Test_N(q␇촱␇, q␇촱␇, q␇촱␇, q␇촱␇, q␇촱␇);
+Test_N(q␇촲␇, q␇촲␇, q␇촲␇, q␇촲␇, q␇촲␇);
+Test_N(q␇촳␇, q␇촳␇, q␇촳␇, q␇촳␇, q␇촳␇);
+Test_N(q␇촴␇, q␇촴␇, q␇촴␇, q␇촴␇, q␇촴␇);
+Test_N(q␇촵␇, q␇촵␇, q␇촵␇, q␇촵␇, q␇촵␇);
+Test_N(q␇촶␇, q␇촶␇, q␇촶␇, q␇촶␇, q␇촶␇);
+Test_N(q␇촷␇, q␇촷␇, q␇촷␇, q␇촷␇, q␇촷␇);
+Test_N(q␇촸␇, q␇촸␇, q␇촸␇, q␇촸␇, q␇촸␇);
+Test_N(q␇촹␇, q␇촹␇, q␇촹␇, q␇촹␇, q␇촹␇);
+Test_N(q␇촺␇, q␇촺␇, q␇촺␇, q␇촺␇, q␇촺␇);
+Test_N(q␇촻␇, q␇촻␇, q␇촻␇, q␇촻␇, q␇촻␇);
+Test_N(q␇촼␇, q␇촼␇, q␇촼␇, q␇촼␇, q␇촼␇);
+Test_N(q␇촽␇, q␇촽␇, q␇촽␇, q␇촽␇, q␇촽␇);
+Test_N(q␇촾␇, q␇촾␇, q␇촾␇, q␇촾␇, q␇촾␇);
+Test_N(q␇촿␇, q␇촿␇, q␇촿␇, q␇촿␇, q␇촿␇);
+Test_N(q␇쵀␇, q␇쵀␇, q␇쵀␇, q␇쵀␇, q␇쵀␇);
+Test_N(q␇쵁␇, q␇쵁␇, q␇쵁␇, q␇쵁␇, q␇쵁␇);
+Test_N(q␇쵂␇, q␇쵂␇, q␇쵂␇, q␇쵂␇, q␇쵂␇);
+Test_N(q␇쵃␇, q␇쵃␇, q␇쵃␇, q␇쵃␇, q␇쵃␇);
+Test_N(q␇쵄␇, q␇쵄␇, q␇쵄␇, q␇쵄␇, q␇쵄␇);
+Test_N(q␇쵅␇, q␇쵅␇, q␇쵅␇, q␇쵅␇, q␇쵅␇);
+Test_N(q␇쵆␇, q␇쵆␇, q␇쵆␇, q␇쵆␇, q␇쵆␇);
+Test_N(q␇쵇␇, q␇쵇␇, q␇쵇␇, q␇쵇␇, q␇쵇␇);
+Test_N(q␇쵈␇, q␇쵈␇, q␇쵈␇, q␇쵈␇, q␇쵈␇);
+Test_N(q␇쵉␇, q␇쵉␇, q␇쵉␇, q␇쵉␇, q␇쵉␇);
+Test_N(q␇쵊␇, q␇쵊␇, q␇쵊␇, q␇쵊␇, q␇쵊␇);
+Test_N(q␇쵋␇, q␇쵋␇, q␇쵋␇, q␇쵋␇, q␇쵋␇);
+Test_N(q␇쵌␇, q␇쵌␇, q␇쵌␇, q␇쵌␇, q␇쵌␇);
+Test_N(q␇쵍␇, q␇쵍␇, q␇쵍␇, q␇쵍␇, q␇쵍␇);
+Test_N(q␇쵎␇, q␇쵎␇, q␇쵎␇, q␇쵎␇, q␇쵎␇);
+Test_N(q␇쵏␇, q␇쵏␇, q␇쵏␇, q␇쵏␇, q␇쵏␇);
+Test_N(q␇쵐␇, q␇쵐␇, q␇쵐␇, q␇쵐␇, q␇쵐␇);
+Test_N(q␇쵑␇, q␇쵑␇, q␇쵑␇, q␇쵑␇, q␇쵑␇);
+Test_N(q␇쵒␇, q␇쵒␇, q␇쵒␇, q␇쵒␇, q␇쵒␇);
+Test_N(q␇쵓␇, q␇쵓␇, q␇쵓␇, q␇쵓␇, q␇쵓␇);
+Test_N(q␇쵔␇, q␇쵔␇, q␇쵔␇, q␇쵔␇, q␇쵔␇);
+Test_N(q␇쵕␇, q␇쵕␇, q␇쵕␇, q␇쵕␇, q␇쵕␇);
+Test_N(q␇쵖␇, q␇쵖␇, q␇쵖␇, q␇쵖␇, q␇쵖␇);
+Test_N(q␇쵗␇, q␇쵗␇, q␇쵗␇, q␇쵗␇, q␇쵗␇);
+Test_N(q␇쵘␇, q␇쵘␇, q␇쵘␇, q␇쵘␇, q␇쵘␇);
+Test_N(q␇쵙␇, q␇쵙␇, q␇쵙␇, q␇쵙␇, q␇쵙␇);
+Test_N(q␇쵚␇, q␇쵚␇, q␇쵚␇, q␇쵚␇, q␇쵚␇);
+Test_N(q␇쵛␇, q␇쵛␇, q␇쵛␇, q␇쵛␇, q␇쵛␇);
+Test_N(q␇최␇, q␇최␇, q␇최␇, q␇최␇, q␇최␇);
+Test_N(q␇쵝␇, q␇쵝␇, q␇쵝␇, q␇쵝␇, q␇쵝␇);
+Test_N(q␇쵞␇, q␇쵞␇, q␇쵞␇, q␇쵞␇, q␇쵞␇);
+Test_N(q␇쵟␇, q␇쵟␇, q␇쵟␇, q␇쵟␇, q␇쵟␇);
+Test_N(q␇쵠␇, q␇쵠␇, q␇쵠␇, q␇쵠␇, q␇쵠␇);
+Test_N(q␇쵡␇, q␇쵡␇, q␇쵡␇, q␇쵡␇, q␇쵡␇);
+Test_N(q␇쵢␇, q␇쵢␇, q␇쵢␇, q␇쵢␇, q␇쵢␇);
+Test_N(q␇쵣␇, q␇쵣␇, q␇쵣␇, q␇쵣␇, q␇쵣␇);
+Test_N(q␇쵤␇, q␇쵤␇, q␇쵤␇, q␇쵤␇, q␇쵤␇);
+Test_N(q␇쵥␇, q␇쵥␇, q␇쵥␇, q␇쵥␇, q␇쵥␇);
+Test_N(q␇쵦␇, q␇쵦␇, q␇쵦␇, q␇쵦␇, q␇쵦␇);
+Test_N(q␇쵧␇, q␇쵧␇, q␇쵧␇, q␇쵧␇, q␇쵧␇);
+Test_N(q␇쵨␇, q␇쵨␇, q␇쵨␇, q␇쵨␇, q␇쵨␇);
+Test_N(q␇쵩␇, q␇쵩␇, q␇쵩␇, q␇쵩␇, q␇쵩␇);
+Test_N(q␇쵪␇, q␇쵪␇, q␇쵪␇, q␇쵪␇, q␇쵪␇);
+Test_N(q␇쵫␇, q␇쵫␇, q␇쵫␇, q␇쵫␇, q␇쵫␇);
+Test_N(q␇쵬␇, q␇쵬␇, q␇쵬␇, q␇쵬␇, q␇쵬␇);
+Test_N(q␇쵭␇, q␇쵭␇, q␇쵭␇, q␇쵭␇, q␇쵭␇);
+Test_N(q␇쵮␇, q␇쵮␇, q␇쵮␇, q␇쵮␇, q␇쵮␇);
+Test_N(q␇쵯␇, q␇쵯␇, q␇쵯␇, q␇쵯␇, q␇쵯␇);
+Test_N(q␇쵰␇, q␇쵰␇, q␇쵰␇, q␇쵰␇, q␇쵰␇);
+Test_N(q␇쵱␇, q␇쵱␇, q␇쵱␇, q␇쵱␇, q␇쵱␇);
+Test_N(q␇쵲␇, q␇쵲␇, q␇쵲␇, q␇쵲␇, q␇쵲␇);
+Test_N(q␇쵳␇, q␇쵳␇, q␇쵳␇, q␇쵳␇, q␇쵳␇);
+Test_N(q␇쵴␇, q␇쵴␇, q␇쵴␇, q␇쵴␇, q␇쵴␇);
+Test_N(q␇쵵␇, q␇쵵␇, q␇쵵␇, q␇쵵␇, q␇쵵␇);
+Test_N(q␇쵶␇, q␇쵶␇, q␇쵶␇, q␇쵶␇, q␇쵶␇);
+Test_N(q␇쵷␇, q␇쵷␇, q␇쵷␇, q␇쵷␇, q␇쵷␇);
+Test_N(q␇쵸␇, q␇쵸␇, q␇쵸␇, q␇쵸␇, q␇쵸␇);
+Test_N(q␇쵹␇, q␇쵹␇, q␇쵹␇, q␇쵹␇, q␇쵹␇);
+Test_N(q␇쵺␇, q␇쵺␇, q␇쵺␇, q␇쵺␇, q␇쵺␇);
+Test_N(q␇쵻␇, q␇쵻␇, q␇쵻␇, q␇쵻␇, q␇쵻␇);
+Test_N(q␇쵼␇, q␇쵼␇, q␇쵼␇, q␇쵼␇, q␇쵼␇);
+Test_N(q␇쵽␇, q␇쵽␇, q␇쵽␇, q␇쵽␇, q␇쵽␇);
+Test_N(q␇쵾␇, q␇쵾␇, q␇쵾␇, q␇쵾␇, q␇쵾␇);
+Test_N(q␇쵿␇, q␇쵿␇, q␇쵿␇, q␇쵿␇, q␇쵿␇);
+Test_N(q␇춀␇, q␇춀␇, q␇춀␇, q␇춀␇, q␇춀␇);
+Test_N(q␇춁␇, q␇춁␇, q␇춁␇, q␇춁␇, q␇춁␇);
+Test_N(q␇춂␇, q␇춂␇, q␇춂␇, q␇춂␇, q␇춂␇);
+Test_N(q␇춃␇, q␇춃␇, q␇춃␇, q␇춃␇, q␇춃␇);
+Test_N(q␇춄␇, q␇춄␇, q␇춄␇, q␇춄␇, q␇춄␇);
+Test_N(q␇춅␇, q␇춅␇, q␇춅␇, q␇춅␇, q␇춅␇);
+Test_N(q␇춆␇, q␇춆␇, q␇춆␇, q␇춆␇, q␇춆␇);
+Test_N(q␇춇␇, q␇춇␇, q␇춇␇, q␇춇␇, q␇춇␇);
+Test_N(q␇춈␇, q␇춈␇, q␇춈␇, q␇춈␇, q␇춈␇);
+Test_N(q␇춉␇, q␇춉␇, q␇춉␇, q␇춉␇, q␇춉␇);
+Test_N(q␇춊␇, q␇춊␇, q␇춊␇, q␇춊␇, q␇춊␇);
+Test_N(q␇춋␇, q␇춋␇, q␇춋␇, q␇춋␇, q␇춋␇);
+Test_N(q␇춌␇, q␇춌␇, q␇춌␇, q␇춌␇, q␇춌␇);
+Test_N(q␇춍␇, q␇춍␇, q␇춍␇, q␇춍␇, q␇춍␇);
+Test_N(q␇춎␇, q␇춎␇, q␇춎␇, q␇춎␇, q␇춎␇);
+Test_N(q␇춏␇, q␇춏␇, q␇춏␇, q␇춏␇, q␇춏␇);
+Test_N(q␇춐␇, q␇춐␇, q␇춐␇, q␇춐␇, q␇춐␇);
+Test_N(q␇춑␇, q␇춑␇, q␇춑␇, q␇춑␇, q␇춑␇);
+Test_N(q␇춒␇, q␇춒␇, q␇춒␇, q␇춒␇, q␇춒␇);
+Test_N(q␇춓␇, q␇춓␇, q␇춓␇, q␇춓␇, q␇춓␇);
+Test_N(q␇추␇, q␇추␇, q␇추␇, q␇추␇, q␇추␇);
+Test_N(q␇축␇, q␇축␇, q␇축␇, q␇축␇, q␇축␇);
+Test_N(q␇춖␇, q␇춖␇, q␇춖␇, q␇춖␇, q␇춖␇);
+Test_N(q␇춗␇, q␇춗␇, q␇춗␇, q␇춗␇, q␇춗␇);
+Test_N(q␇춘␇, q␇춘␇, q␇춘␇, q␇춘␇, q␇춘␇);
+Test_N(q␇춙␇, q␇춙␇, q␇춙␇, q␇춙␇, q␇춙␇);
+Test_N(q␇춚␇, q␇춚␇, q␇춚␇, q␇춚␇, q␇춚␇);
+Test_N(q␇춛␇, q␇춛␇, q␇춛␇, q␇춛␇, q␇춛␇);
+Test_N(q␇출␇, q␇출␇, q␇출␇, q␇출␇, q␇출␇);
+Test_N(q␇춝␇, q␇춝␇, q␇춝␇, q␇춝␇, q␇춝␇);
+Test_N(q␇춞␇, q␇춞␇, q␇춞␇, q␇춞␇, q␇춞␇);
+Test_N(q␇춟␇, q␇춟␇, q␇춟␇, q␇춟␇, q␇춟␇);
+Test_N(q␇춠␇, q␇춠␇, q␇춠␇, q␇춠␇, q␇춠␇);
+Test_N(q␇춡␇, q␇춡␇, q␇춡␇, q␇춡␇, q␇춡␇);
+Test_N(q␇춢␇, q␇춢␇, q␇춢␇, q␇춢␇, q␇춢␇);
+Test_N(q␇춣␇, q␇춣␇, q␇춣␇, q␇춣␇, q␇춣␇);
+Test_N(q␇춤␇, q␇춤␇, q␇춤␇, q␇춤␇, q␇춤␇);
+Test_N(q␇춥␇, q␇춥␇, q␇춥␇, q␇춥␇, q␇춥␇);
+Test_N(q␇춦␇, q␇춦␇, q␇춦␇, q␇춦␇, q␇춦␇);
+Test_N(q␇춧␇, q␇춧␇, q␇춧␇, q␇춧␇, q␇춧␇);
+Test_N(q␇춨␇, q␇춨␇, q␇춨␇, q␇춨␇, q␇춨␇);
+Test_N(q␇충␇, q␇충␇, q␇충␇, q␇충␇, q␇충␇);
+Test_N(q␇춪␇, q␇춪␇, q␇춪␇, q␇춪␇, q␇춪␇);
+Test_N(q␇춫␇, q␇춫␇, q␇춫␇, q␇춫␇, q␇춫␇);
+Test_N(q␇춬␇, q␇춬␇, q␇춬␇, q␇춬␇, q␇춬␇);
+Test_N(q␇춭␇, q␇춭␇, q␇춭␇, q␇춭␇, q␇춭␇);
+Test_N(q␇춮␇, q␇춮␇, q␇춮␇, q␇춮␇, q␇춮␇);
+Test_N(q␇춯␇, q␇춯␇, q␇춯␇, q␇춯␇, q␇춯␇);
+Test_N(q␇춰␇, q␇춰␇, q␇춰␇, q␇춰␇, q␇춰␇);
+Test_N(q␇춱␇, q␇춱␇, q␇춱␇, q␇춱␇, q␇춱␇);
+Test_N(q␇춲␇, q␇춲␇, q␇춲␇, q␇춲␇, q␇춲␇);
+Test_N(q␇춳␇, q␇춳␇, q␇춳␇, q␇춳␇, q␇춳␇);
+Test_N(q␇춴␇, q␇춴␇, q␇춴␇, q␇춴␇, q␇춴␇);
+Test_N(q␇춵␇, q␇춵␇, q␇춵␇, q␇춵␇, q␇춵␇);
+Test_N(q␇춶␇, q␇춶␇, q␇춶␇, q␇춶␇, q␇춶␇);
+Test_N(q␇춷␇, q␇춷␇, q␇춷␇, q␇춷␇, q␇춷␇);
+Test_N(q␇춸␇, q␇춸␇, q␇춸␇, q␇춸␇, q␇춸␇);
+Test_N(q␇춹␇, q␇춹␇, q␇춹␇, q␇춹␇, q␇춹␇);
+Test_N(q␇춺␇, q␇춺␇, q␇춺␇, q␇춺␇, q␇춺␇);
+Test_N(q␇춻␇, q␇춻␇, q␇춻␇, q␇춻␇, q␇춻␇);
+Test_N(q␇춼␇, q␇춼␇, q␇춼␇, q␇춼␇, q␇춼␇);
+Test_N(q␇춽␇, q␇춽␇, q␇춽␇, q␇춽␇, q␇춽␇);
+Test_N(q␇춾␇, q␇춾␇, q␇춾␇, q␇춾␇, q␇춾␇);
+Test_N(q␇춿␇, q␇춿␇, q␇춿␇, q␇춿␇, q␇춿␇);
+Test_N(q␇췀␇, q␇췀␇, q␇췀␇, q␇췀␇, q␇췀␇);
+Test_N(q␇췁␇, q␇췁␇, q␇췁␇, q␇췁␇, q␇췁␇);
+Test_N(q␇췂␇, q␇췂␇, q␇췂␇, q␇췂␇, q␇췂␇);
+Test_N(q␇췃␇, q␇췃␇, q␇췃␇, q␇췃␇, q␇췃␇);
+Test_N(q␇췄␇, q␇췄␇, q␇췄␇, q␇췄␇, q␇췄␇);
+Test_N(q␇췅␇, q␇췅␇, q␇췅␇, q␇췅␇, q␇췅␇);
+Test_N(q␇췆␇, q␇췆␇, q␇췆␇, q␇췆␇, q␇췆␇);
+Test_N(q␇췇␇, q␇췇␇, q␇췇␇, q␇췇␇, q␇췇␇);
+Test_N(q␇췈␇, q␇췈␇, q␇췈␇, q␇췈␇, q␇췈␇);
+Test_N(q␇췉␇, q␇췉␇, q␇췉␇, q␇췉␇, q␇췉␇);
+Test_N(q␇췊␇, q␇췊␇, q␇췊␇, q␇췊␇, q␇췊␇);
+Test_N(q␇췋␇, q␇췋␇, q␇췋␇, q␇췋␇, q␇췋␇);
+Test_N(q␇췌␇, q␇췌␇, q␇췌␇, q␇췌␇, q␇췌␇);
+Test_N(q␇췍␇, q␇췍␇, q␇췍␇, q␇췍␇, q␇췍␇);
+Test_N(q␇췎␇, q␇췎␇, q␇췎␇, q␇췎␇, q␇췎␇);
+Test_N(q␇췏␇, q␇췏␇, q␇췏␇, q␇췏␇, q␇췏␇);
+Test_N(q␇췐␇, q␇췐␇, q␇췐␇, q␇췐␇, q␇췐␇);
+Test_N(q␇췑␇, q␇췑␇, q␇췑␇, q␇췑␇, q␇췑␇);
+Test_N(q␇췒␇, q␇췒␇, q␇췒␇, q␇췒␇, q␇췒␇);
+Test_N(q␇췓␇, q␇췓␇, q␇췓␇, q␇췓␇, q␇췓␇);
+Test_N(q␇췔␇, q␇췔␇, q␇췔␇, q␇췔␇, q␇췔␇);
+Test_N(q␇췕␇, q␇췕␇, q␇췕␇, q␇췕␇, q␇췕␇);
+Test_N(q␇췖␇, q␇췖␇, q␇췖␇, q␇췖␇, q␇췖␇);
+Test_N(q␇췗␇, q␇췗␇, q␇췗␇, q␇췗␇, q␇췗␇);
+Test_N(q␇췘␇, q␇췘␇, q␇췘␇, q␇췘␇, q␇췘␇);
+Test_N(q␇췙␇, q␇췙␇, q␇췙␇, q␇췙␇, q␇췙␇);
+Test_N(q␇췚␇, q␇췚␇, q␇췚␇, q␇췚␇, q␇췚␇);
+Test_N(q␇췛␇, q␇췛␇, q␇췛␇, q␇췛␇, q␇췛␇);
+Test_N(q␇췜␇, q␇췜␇, q␇췜␇, q␇췜␇, q␇췜␇);
+Test_N(q␇췝␇, q␇췝␇, q␇췝␇, q␇췝␇, q␇췝␇);
+Test_N(q␇췞␇, q␇췞␇, q␇췞␇, q␇췞␇, q␇췞␇);
+Test_N(q␇췟␇, q␇췟␇, q␇췟␇, q␇췟␇, q␇췟␇);
+Test_N(q␇췠␇, q␇췠␇, q␇췠␇, q␇췠␇, q␇췠␇);
+Test_N(q␇췡␇, q␇췡␇, q␇췡␇, q␇췡␇, q␇췡␇);
+Test_N(q␇췢␇, q␇췢␇, q␇췢␇, q␇췢␇, q␇췢␇);
+Test_N(q␇췣␇, q␇췣␇, q␇췣␇, q␇췣␇, q␇췣␇);
+Test_N(q␇췤␇, q␇췤␇, q␇췤␇, q␇췤␇, q␇췤␇);
+Test_N(q␇췥␇, q␇췥␇, q␇췥␇, q␇췥␇, q␇췥␇);
+Test_N(q␇췦␇, q␇췦␇, q␇췦␇, q␇췦␇, q␇췦␇);
+Test_N(q␇췧␇, q␇췧␇, q␇췧␇, q␇췧␇, q␇췧␇);
+Test_N(q␇취␇, q␇취␇, q␇취␇, q␇취␇, q␇취␇);
+Test_N(q␇췩␇, q␇췩␇, q␇췩␇, q␇췩␇, q␇췩␇);
+Test_N(q␇췪␇, q␇췪␇, q␇췪␇, q␇췪␇, q␇췪␇);
+Test_N(q␇췫␇, q␇췫␇, q␇췫␇, q␇췫␇, q␇췫␇);
+Test_N(q␇췬␇, q␇췬␇, q␇췬␇, q␇췬␇, q␇췬␇);
+Test_N(q␇췭␇, q␇췭␇, q␇췭␇, q␇췭␇, q␇췭␇);
+Test_N(q␇췮␇, q␇췮␇, q␇췮␇, q␇췮␇, q␇췮␇);
+Test_N(q␇췯␇, q␇췯␇, q␇췯␇, q␇췯␇, q␇췯␇);
+Test_N(q␇췰␇, q␇췰␇, q␇췰␇, q␇췰␇, q␇췰␇);
+Test_N(q␇췱␇, q␇췱␇, q␇췱␇, q␇췱␇, q␇췱␇);
+Test_N(q␇췲␇, q␇췲␇, q␇췲␇, q␇췲␇, q␇췲␇);
+Test_N(q␇췳␇, q␇췳␇, q␇췳␇, q␇췳␇, q␇췳␇);
+Test_N(q␇췴␇, q␇췴␇, q␇췴␇, q␇췴␇, q␇췴␇);
+Test_N(q␇췵␇, q␇췵␇, q␇췵␇, q␇췵␇, q␇췵␇);
+Test_N(q␇췶␇, q␇췶␇, q␇췶␇, q␇췶␇, q␇췶␇);
+Test_N(q␇췷␇, q␇췷␇, q␇췷␇, q␇췷␇, q␇췷␇);
+Test_N(q␇췸␇, q␇췸␇, q␇췸␇, q␇췸␇, q␇췸␇);
+Test_N(q␇췹␇, q␇췹␇, q␇췹␇, q␇췹␇, q␇췹␇);
+Test_N(q␇췺␇, q␇췺␇, q␇췺␇, q␇췺␇, q␇췺␇);
+Test_N(q␇췻␇, q␇췻␇, q␇췻␇, q␇췻␇, q␇췻␇);
+Test_N(q␇췼␇, q␇췼␇, q␇췼␇, q␇췼␇, q␇췼␇);
+Test_N(q␇췽␇, q␇췽␇, q␇췽␇, q␇췽␇, q␇췽␇);
+Test_N(q␇췾␇, q␇췾␇, q␇췾␇, q␇췾␇, q␇췾␇);
+Test_N(q␇췿␇, q␇췿␇, q␇췿␇, q␇췿␇, q␇췿␇);
+Test_N(q␇츀␇, q␇츀␇, q␇츀␇, q␇츀␇, q␇츀␇);
+Test_N(q␇츁␇, q␇츁␇, q␇츁␇, q␇츁␇, q␇츁␇);
+Test_N(q␇츂␇, q␇츂␇, q␇츂␇, q␇츂␇, q␇츂␇);
+Test_N(q␇츃␇, q␇츃␇, q␇츃␇, q␇츃␇, q␇츃␇);
+Test_N(q␇츄␇, q␇츄␇, q␇츄␇, q␇츄␇, q␇츄␇);
+Test_N(q␇츅␇, q␇츅␇, q␇츅␇, q␇츅␇, q␇츅␇);
+Test_N(q␇츆␇, q␇츆␇, q␇츆␇, q␇츆␇, q␇츆␇);
+Test_N(q␇츇␇, q␇츇␇, q␇츇␇, q␇츇␇, q␇츇␇);
+Test_N(q␇츈␇, q␇츈␇, q␇츈␇, q␇츈␇, q␇츈␇);
+Test_N(q␇츉␇, q␇츉␇, q␇츉␇, q␇츉␇, q␇츉␇);
+Test_N(q␇츊␇, q␇츊␇, q␇츊␇, q␇츊␇, q␇츊␇);
+Test_N(q␇츋␇, q␇츋␇, q␇츋␇, q␇츋␇, q␇츋␇);
+Test_N(q␇츌␇, q␇츌␇, q␇츌␇, q␇츌␇, q␇츌␇);
+Test_N(q␇츍␇, q␇츍␇, q␇츍␇, q␇츍␇, q␇츍␇);
+Test_N(q␇츎␇, q␇츎␇, q␇츎␇, q␇츎␇, q␇츎␇);
+Test_N(q␇츏␇, q␇츏␇, q␇츏␇, q␇츏␇, q␇츏␇);
+Test_N(q␇츐␇, q␇츐␇, q␇츐␇, q␇츐␇, q␇츐␇);
+Test_N(q␇츑␇, q␇츑␇, q␇츑␇, q␇츑␇, q␇츑␇);
+Test_N(q␇츒␇, q␇츒␇, q␇츒␇, q␇츒␇, q␇츒␇);
+Test_N(q␇츓␇, q␇츓␇, q␇츓␇, q␇츓␇, q␇츓␇);
+Test_N(q␇츔␇, q␇츔␇, q␇츔␇, q␇츔␇, q␇츔␇);
+Test_N(q␇츕␇, q␇츕␇, q␇츕␇, q␇츕␇, q␇츕␇);
+Test_N(q␇츖␇, q␇츖␇, q␇츖␇, q␇츖␇, q␇츖␇);
+Test_N(q␇츗␇, q␇츗␇, q␇츗␇, q␇츗␇, q␇츗␇);
+Test_N(q␇츘␇, q␇츘␇, q␇츘␇, q␇츘␇, q␇츘␇);
+Test_N(q␇츙␇, q␇츙␇, q␇츙␇, q␇츙␇, q␇츙␇);
+Test_N(q␇츚␇, q␇츚␇, q␇츚␇, q␇츚␇, q␇츚␇);
+Test_N(q␇츛␇, q␇츛␇, q␇츛␇, q␇츛␇, q␇츛␇);
+Test_N(q␇츜␇, q␇츜␇, q␇츜␇, q␇츜␇, q␇츜␇);
+Test_N(q␇츝␇, q␇츝␇, q␇츝␇, q␇츝␇, q␇츝␇);
+Test_N(q␇츞␇, q␇츞␇, q␇츞␇, q␇츞␇, q␇츞␇);
+Test_N(q␇츟␇, q␇츟␇, q␇츟␇, q␇츟␇, q␇츟␇);
+Test_N(q␇츠␇, q␇츠␇, q␇츠␇, q␇츠␇, q␇츠␇);
+Test_N(q␇측␇, q␇측␇, q␇측␇, q␇측␇, q␇측␇);
+Test_N(q␇츢␇, q␇츢␇, q␇츢␇, q␇츢␇, q␇츢␇);
+Test_N(q␇츣␇, q␇츣␇, q␇츣␇, q␇츣␇, q␇츣␇);
+Test_N(q␇츤␇, q␇츤␇, q␇츤␇, q␇츤␇, q␇츤␇);
+Test_N(q␇츥␇, q␇츥␇, q␇츥␇, q␇츥␇, q␇츥␇);
+Test_N(q␇츦␇, q␇츦␇, q␇츦␇, q␇츦␇, q␇츦␇);
+Test_N(q␇츧␇, q␇츧␇, q␇츧␇, q␇츧␇, q␇츧␇);
+Test_N(q␇츨␇, q␇츨␇, q␇츨␇, q␇츨␇, q␇츨␇);
+Test_N(q␇츩␇, q␇츩␇, q␇츩␇, q␇츩␇, q␇츩␇);
+Test_N(q␇츪␇, q␇츪␇, q␇츪␇, q␇츪␇, q␇츪␇);
+Test_N(q␇츫␇, q␇츫␇, q␇츫␇, q␇츫␇, q␇츫␇);
+Test_N(q␇츬␇, q␇츬␇, q␇츬␇, q␇츬␇, q␇츬␇);
+Test_N(q␇츭␇, q␇츭␇, q␇츭␇, q␇츭␇, q␇츭␇);
+Test_N(q␇츮␇, q␇츮␇, q␇츮␇, q␇츮␇, q␇츮␇);
+Test_N(q␇츯␇, q␇츯␇, q␇츯␇, q␇츯␇, q␇츯␇);
+Test_N(q␇츰␇, q␇츰␇, q␇츰␇, q␇츰␇, q␇츰␇);
+Test_N(q␇츱␇, q␇츱␇, q␇츱␇, q␇츱␇, q␇츱␇);
+Test_N(q␇츲␇, q␇츲␇, q␇츲␇, q␇츲␇, q␇츲␇);
+Test_N(q␇츳␇, q␇츳␇, q␇츳␇, q␇츳␇, q␇츳␇);
+Test_N(q␇츴␇, q␇츴␇, q␇츴␇, q␇츴␇, q␇츴␇);
+Test_N(q␇층␇, q␇층␇, q␇층␇, q␇층␇, q␇층␇);
+Test_N(q␇츶␇, q␇츶␇, q␇츶␇, q␇츶␇, q␇츶␇);
+Test_N(q␇츷␇, q␇츷␇, q␇츷␇, q␇츷␇, q␇츷␇);
+Test_N(q␇츸␇, q␇츸␇, q␇츸␇, q␇츸␇, q␇츸␇);
+Test_N(q␇츹␇, q␇츹␇, q␇츹␇, q␇츹␇, q␇츹␇);
+Test_N(q␇츺␇, q␇츺␇, q␇츺␇, q␇츺␇, q␇츺␇);
+Test_N(q␇츻␇, q␇츻␇, q␇츻␇, q␇츻␇, q␇츻␇);
+Test_N(q␇츼␇, q␇츼␇, q␇츼␇, q␇츼␇, q␇츼␇);
+Test_N(q␇츽␇, q␇츽␇, q␇츽␇, q␇츽␇, q␇츽␇);
+Test_N(q␇츾␇, q␇츾␇, q␇츾␇, q␇츾␇, q␇츾␇);
+Test_N(q␇츿␇, q␇츿␇, q␇츿␇, q␇츿␇, q␇츿␇);
+Test_N(q␇칀␇, q␇칀␇, q␇칀␇, q␇칀␇, q␇칀␇);
+Test_N(q␇칁␇, q␇칁␇, q␇칁␇, q␇칁␇, q␇칁␇);
+Test_N(q␇칂␇, q␇칂␇, q␇칂␇, q␇칂␇, q␇칂␇);
+Test_N(q␇칃␇, q␇칃␇, q␇칃␇, q␇칃␇, q␇칃␇);
+Test_N(q␇칄␇, q␇칄␇, q␇칄␇, q␇칄␇, q␇칄␇);
+Test_N(q␇칅␇, q␇칅␇, q␇칅␇, q␇칅␇, q␇칅␇);
+Test_N(q␇칆␇, q␇칆␇, q␇칆␇, q␇칆␇, q␇칆␇);
+Test_N(q␇칇␇, q␇칇␇, q␇칇␇, q␇칇␇, q␇칇␇);
+Test_N(q␇칈␇, q␇칈␇, q␇칈␇, q␇칈␇, q␇칈␇);
+Test_N(q␇칉␇, q␇칉␇, q␇칉␇, q␇칉␇, q␇칉␇);
+Test_N(q␇칊␇, q␇칊␇, q␇칊␇, q␇칊␇, q␇칊␇);
+Test_N(q␇칋␇, q␇칋␇, q␇칋␇, q␇칋␇, q␇칋␇);
+Test_N(q␇칌␇, q␇칌␇, q␇칌␇, q␇칌␇, q␇칌␇);
+Test_N(q␇칍␇, q␇칍␇, q␇칍␇, q␇칍␇, q␇칍␇);
+Test_N(q␇칎␇, q␇칎␇, q␇칎␇, q␇칎␇, q␇칎␇);
+Test_N(q␇칏␇, q␇칏␇, q␇칏␇, q␇칏␇, q␇칏␇);
+Test_N(q␇칐␇, q␇칐␇, q␇칐␇, q␇칐␇, q␇칐␇);
+Test_N(q␇칑␇, q␇칑␇, q␇칑␇, q␇칑␇, q␇칑␇);
+Test_N(q␇칒␇, q␇칒␇, q␇칒␇, q␇칒␇, q␇칒␇);
+Test_N(q␇칓␇, q␇칓␇, q␇칓␇, q␇칓␇, q␇칓␇);
+Test_N(q␇칔␇, q␇칔␇, q␇칔␇, q␇칔␇, q␇칔␇);
+Test_N(q␇칕␇, q␇칕␇, q␇칕␇, q␇칕␇, q␇칕␇);
+Test_N(q␇칖␇, q␇칖␇, q␇칖␇, q␇칖␇, q␇칖␇);
+Test_N(q␇칗␇, q␇칗␇, q␇칗␇, q␇칗␇, q␇칗␇);
+Test_N(q␇치␇, q␇치␇, q␇치␇, q␇치␇, q␇치␇);
+Test_N(q␇칙␇, q␇칙␇, q␇칙␇, q␇칙␇, q␇칙␇);
+Test_N(q␇칚␇, q␇칚␇, q␇칚␇, q␇칚␇, q␇칚␇);
+Test_N(q␇칛␇, q␇칛␇, q␇칛␇, q␇칛␇, q␇칛␇);
+Test_N(q␇친␇, q␇친␇, q␇친␇, q␇친␇, q␇친␇);
+Test_N(q␇칝␇, q␇칝␇, q␇칝␇, q␇칝␇, q␇칝␇);
+Test_N(q␇칞␇, q␇칞␇, q␇칞␇, q␇칞␇, q␇칞␇);
+Test_N(q␇칟␇, q␇칟␇, q␇칟␇, q␇칟␇, q␇칟␇);
+Test_N(q␇칠␇, q␇칠␇, q␇칠␇, q␇칠␇, q␇칠␇);
+Test_N(q␇칡␇, q␇칡␇, q␇칡␇, q␇칡␇, q␇칡␇);
+Test_N(q␇칢␇, q␇칢␇, q␇칢␇, q␇칢␇, q␇칢␇);
+Test_N(q␇칣␇, q␇칣␇, q␇칣␇, q␇칣␇, q␇칣␇);
+Test_N(q␇칤␇, q␇칤␇, q␇칤␇, q␇칤␇, q␇칤␇);
+Test_N(q␇칥␇, q␇칥␇, q␇칥␇, q␇칥␇, q␇칥␇);
+Test_N(q␇칦␇, q␇칦␇, q␇칦␇, q␇칦␇, q␇칦␇);
+Test_N(q␇칧␇, q␇칧␇, q␇칧␇, q␇칧␇, q␇칧␇);
+Test_N(q␇침␇, q␇침␇, q␇침␇, q␇침␇, q␇침␇);
+Test_N(q␇칩␇, q␇칩␇, q␇칩␇, q␇칩␇, q␇칩␇);
+Test_N(q␇칪␇, q␇칪␇, q␇칪␇, q␇칪␇, q␇칪␇);
+Test_N(q␇칫␇, q␇칫␇, q␇칫␇, q␇칫␇, q␇칫␇);
+Test_N(q␇칬␇, q␇칬␇, q␇칬␇, q␇칬␇, q␇칬␇);
+Test_N(q␇칭␇, q␇칭␇, q␇칭␇, q␇칭␇, q␇칭␇);
+Test_N(q␇칮␇, q␇칮␇, q␇칮␇, q␇칮␇, q␇칮␇);
+Test_N(q␇칯␇, q␇칯␇, q␇칯␇, q␇칯␇, q␇칯␇);
+Test_N(q␇칰␇, q␇칰␇, q␇칰␇, q␇칰␇, q␇칰␇);
+Test_N(q␇칱␇, q␇칱␇, q␇칱␇, q␇칱␇, q␇칱␇);
+Test_N(q␇칲␇, q␇칲␇, q␇칲␇, q␇칲␇, q␇칲␇);
+Test_N(q␇칳␇, q␇칳␇, q␇칳␇, q␇칳␇, q␇칳␇);
+Test_N(q␇카␇, q␇카␇, q␇카␇, q␇카␇, q␇카␇);
+Test_N(q␇칵␇, q␇칵␇, q␇칵␇, q␇칵␇, q␇칵␇);
+Test_N(q␇칶␇, q␇칶␇, q␇칶␇, q␇칶␇, q␇칶␇);
+Test_N(q␇칷␇, q␇칷␇, q␇칷␇, q␇칷␇, q␇칷␇);
+Test_N(q␇칸␇, q␇칸␇, q␇칸␇, q␇칸␇, q␇칸␇);
+Test_N(q␇칹␇, q␇칹␇, q␇칹␇, q␇칹␇, q␇칹␇);
+Test_N(q␇칺␇, q␇칺␇, q␇칺␇, q␇칺␇, q␇칺␇);
+Test_N(q␇칻␇, q␇칻␇, q␇칻␇, q␇칻␇, q␇칻␇);
+Test_N(q␇칼␇, q␇칼␇, q␇칼␇, q␇칼␇, q␇칼␇);
+Test_N(q␇칽␇, q␇칽␇, q␇칽␇, q␇칽␇, q␇칽␇);
+Test_N(q␇칾␇, q␇칾␇, q␇칾␇, q␇칾␇, q␇칾␇);
+Test_N(q␇칿␇, q␇칿␇, q␇칿␇, q␇칿␇, q␇칿␇);
+Test_N(q␇캀␇, q␇캀␇, q␇캀␇, q␇캀␇, q␇캀␇);
+Test_N(q␇캁␇, q␇캁␇, q␇캁␇, q␇캁␇, q␇캁␇);
+Test_N(q␇캂␇, q␇캂␇, q␇캂␇, q␇캂␇, q␇캂␇);
+Test_N(q␇캃␇, q␇캃␇, q␇캃␇, q␇캃␇, q␇캃␇);
+Test_N(q␇캄␇, q␇캄␇, q␇캄␇, q␇캄␇, q␇캄␇);
+Test_N(q␇캅␇, q␇캅␇, q␇캅␇, q␇캅␇, q␇캅␇);
+Test_N(q␇캆␇, q␇캆␇, q␇캆␇, q␇캆␇, q␇캆␇);
+Test_N(q␇캇␇, q␇캇␇, q␇캇␇, q␇캇␇, q␇캇␇);
+Test_N(q␇캈␇, q␇캈␇, q␇캈␇, q␇캈␇, q␇캈␇);
+Test_N(q␇캉␇, q␇캉␇, q␇캉␇, q␇캉␇, q␇캉␇);
+Test_N(q␇캊␇, q␇캊␇, q␇캊␇, q␇캊␇, q␇캊␇);
+Test_N(q␇캋␇, q␇캋␇, q␇캋␇, q␇캋␇, q␇캋␇);
+Test_N(q␇캌␇, q␇캌␇, q␇캌␇, q␇캌␇, q␇캌␇);
+Test_N(q␇캍␇, q␇캍␇, q␇캍␇, q␇캍␇, q␇캍␇);
+Test_N(q␇캎␇, q␇캎␇, q␇캎␇, q␇캎␇, q␇캎␇);
+Test_N(q␇캏␇, q␇캏␇, q␇캏␇, q␇캏␇, q␇캏␇);
+Test_N(q␇캐␇, q␇캐␇, q␇캐␇, q␇캐␇, q␇캐␇);
+Test_N(q␇캑␇, q␇캑␇, q␇캑␇, q␇캑␇, q␇캑␇);
+Test_N(q␇캒␇, q␇캒␇, q␇캒␇, q␇캒␇, q␇캒␇);
+Test_N(q␇캓␇, q␇캓␇, q␇캓␇, q␇캓␇, q␇캓␇);
+Test_N(q␇캔␇, q␇캔␇, q␇캔␇, q␇캔␇, q␇캔␇);
+Test_N(q␇캕␇, q␇캕␇, q␇캕␇, q␇캕␇, q␇캕␇);
+Test_N(q␇캖␇, q␇캖␇, q␇캖␇, q␇캖␇, q␇캖␇);
+Test_N(q␇캗␇, q␇캗␇, q␇캗␇, q␇캗␇, q␇캗␇);
+Test_N(q␇캘␇, q␇캘␇, q␇캘␇, q␇캘␇, q␇캘␇);
+Test_N(q␇캙␇, q␇캙␇, q␇캙␇, q␇캙␇, q␇캙␇);
+Test_N(q␇캚␇, q␇캚␇, q␇캚␇, q␇캚␇, q␇캚␇);
+Test_N(q␇캛␇, q␇캛␇, q␇캛␇, q␇캛␇, q␇캛␇);
+Test_N(q␇캜␇, q␇캜␇, q␇캜␇, q␇캜␇, q␇캜␇);
+Test_N(q␇캝␇, q␇캝␇, q␇캝␇, q␇캝␇, q␇캝␇);
+Test_N(q␇캞␇, q␇캞␇, q␇캞␇, q␇캞␇, q␇캞␇);
+Test_N(q␇캟␇, q␇캟␇, q␇캟␇, q␇캟␇, q␇캟␇);
+Test_N(q␇캠␇, q␇캠␇, q␇캠␇, q␇캠␇, q␇캠␇);
+Test_N(q␇캡␇, q␇캡␇, q␇캡␇, q␇캡␇, q␇캡␇);
+Test_N(q␇캢␇, q␇캢␇, q␇캢␇, q␇캢␇, q␇캢␇);
+Test_N(q␇캣␇, q␇캣␇, q␇캣␇, q␇캣␇, q␇캣␇);
+Test_N(q␇캤␇, q␇캤␇, q␇캤␇, q␇캤␇, q␇캤␇);
+Test_N(q␇캥␇, q␇캥␇, q␇캥␇, q␇캥␇, q␇캥␇);
+Test_N(q␇캦␇, q␇캦␇, q␇캦␇, q␇캦␇, q␇캦␇);
+Test_N(q␇캧␇, q␇캧␇, q␇캧␇, q␇캧␇, q␇캧␇);
+Test_N(q␇캨␇, q␇캨␇, q␇캨␇, q␇캨␇, q␇캨␇);
+Test_N(q␇캩␇, q␇캩␇, q␇캩␇, q␇캩␇, q␇캩␇);
+Test_N(q␇캪␇, q␇캪␇, q␇캪␇, q␇캪␇, q␇캪␇);
+Test_N(q␇캫␇, q␇캫␇, q␇캫␇, q␇캫␇, q␇캫␇);
+Test_N(q␇캬␇, q␇캬␇, q␇캬␇, q␇캬␇, q␇캬␇);
+Test_N(q␇캭␇, q␇캭␇, q␇캭␇, q␇캭␇, q␇캭␇);
+Test_N(q␇캮␇, q␇캮␇, q␇캮␇, q␇캮␇, q␇캮␇);
+Test_N(q␇캯␇, q␇캯␇, q␇캯␇, q␇캯␇, q␇캯␇);
+Test_N(q␇캰␇, q␇캰␇, q␇캰␇, q␇캰␇, q␇캰␇);
+Test_N(q␇캱␇, q␇캱␇, q␇캱␇, q␇캱␇, q␇캱␇);
+Test_N(q␇캲␇, q␇캲␇, q␇캲␇, q␇캲␇, q␇캲␇);
+Test_N(q␇캳␇, q␇캳␇, q␇캳␇, q␇캳␇, q␇캳␇);
+Test_N(q␇캴␇, q␇캴␇, q␇캴␇, q␇캴␇, q␇캴␇);
+Test_N(q␇캵␇, q␇캵␇, q␇캵␇, q␇캵␇, q␇캵␇);
+Test_N(q␇캶␇, q␇캶␇, q␇캶␇, q␇캶␇, q␇캶␇);
+Test_N(q␇캷␇, q␇캷␇, q␇캷␇, q␇캷␇, q␇캷␇);
+Test_N(q␇캸␇, q␇캸␇, q␇캸␇, q␇캸␇, q␇캸␇);
+Test_N(q␇캹␇, q␇캹␇, q␇캹␇, q␇캹␇, q␇캹␇);
+Test_N(q␇캺␇, q␇캺␇, q␇캺␇, q␇캺␇, q␇캺␇);
+Test_N(q␇캻␇, q␇캻␇, q␇캻␇, q␇캻␇, q␇캻␇);
+Test_N(q␇캼␇, q␇캼␇, q␇캼␇, q␇캼␇, q␇캼␇);
+Test_N(q␇캽␇, q␇캽␇, q␇캽␇, q␇캽␇, q␇캽␇);
+Test_N(q␇캾␇, q␇캾␇, q␇캾␇, q␇캾␇, q␇캾␇);
+Test_N(q␇캿␇, q␇캿␇, q␇캿␇, q␇캿␇, q␇캿␇);
+Test_N(q␇컀␇, q␇컀␇, q␇컀␇, q␇컀␇, q␇컀␇);
+Test_N(q␇컁␇, q␇컁␇, q␇컁␇, q␇컁␇, q␇컁␇);
+Test_N(q␇컂␇, q␇컂␇, q␇컂␇, q␇컂␇, q␇컂␇);
+Test_N(q␇컃␇, q␇컃␇, q␇컃␇, q␇컃␇, q␇컃␇);
+Test_N(q␇컄␇, q␇컄␇, q␇컄␇, q␇컄␇, q␇컄␇);
+Test_N(q␇컅␇, q␇컅␇, q␇컅␇, q␇컅␇, q␇컅␇);
+Test_N(q␇컆␇, q␇컆␇, q␇컆␇, q␇컆␇, q␇컆␇);
+Test_N(q␇컇␇, q␇컇␇, q␇컇␇, q␇컇␇, q␇컇␇);
+Test_N(q␇컈␇, q␇컈␇, q␇컈␇, q␇컈␇, q␇컈␇);
+Test_N(q␇컉␇, q␇컉␇, q␇컉␇, q␇컉␇, q␇컉␇);
+Test_N(q␇컊␇, q␇컊␇, q␇컊␇, q␇컊␇, q␇컊␇);
+Test_N(q␇컋␇, q␇컋␇, q␇컋␇, q␇컋␇, q␇컋␇);
+Test_N(q␇컌␇, q␇컌␇, q␇컌␇, q␇컌␇, q␇컌␇);
+Test_N(q␇컍␇, q␇컍␇, q␇컍␇, q␇컍␇, q␇컍␇);
+Test_N(q␇컎␇, q␇컎␇, q␇컎␇, q␇컎␇, q␇컎␇);
+Test_N(q␇컏␇, q␇컏␇, q␇컏␇, q␇컏␇, q␇컏␇);
+Test_N(q␇컐␇, q␇컐␇, q␇컐␇, q␇컐␇, q␇컐␇);
+Test_N(q␇컑␇, q␇컑␇, q␇컑␇, q␇컑␇, q␇컑␇);
+Test_N(q␇컒␇, q␇컒␇, q␇컒␇, q␇컒␇, q␇컒␇);
+Test_N(q␇컓␇, q␇컓␇, q␇컓␇, q␇컓␇, q␇컓␇);
+Test_N(q␇컔␇, q␇컔␇, q␇컔␇, q␇컔␇, q␇컔␇);
+Test_N(q␇컕␇, q␇컕␇, q␇컕␇, q␇컕␇, q␇컕␇);
+Test_N(q␇컖␇, q␇컖␇, q␇컖␇, q␇컖␇, q␇컖␇);
+Test_N(q␇컗␇, q␇컗␇, q␇컗␇, q␇컗␇, q␇컗␇);
+Test_N(q␇컘␇, q␇컘␇, q␇컘␇, q␇컘␇, q␇컘␇);
+Test_N(q␇컙␇, q␇컙␇, q␇컙␇, q␇컙␇, q␇컙␇);
+Test_N(q␇컚␇, q␇컚␇, q␇컚␇, q␇컚␇, q␇컚␇);
+Test_N(q␇컛␇, q␇컛␇, q␇컛␇, q␇컛␇, q␇컛␇);
+Test_N(q␇컜␇, q␇컜␇, q␇컜␇, q␇컜␇, q␇컜␇);
+Test_N(q␇컝␇, q␇컝␇, q␇컝␇, q␇컝␇, q␇컝␇);
+Test_N(q␇컞␇, q␇컞␇, q␇컞␇, q␇컞␇, q␇컞␇);
+Test_N(q␇컟␇, q␇컟␇, q␇컟␇, q␇컟␇, q␇컟␇);
+Test_N(q␇컠␇, q␇컠␇, q␇컠␇, q␇컠␇, q␇컠␇);
+Test_N(q␇컡␇, q␇컡␇, q␇컡␇, q␇컡␇, q␇컡␇);
+Test_N(q␇컢␇, q␇컢␇, q␇컢␇, q␇컢␇, q␇컢␇);
+Test_N(q␇컣␇, q␇컣␇, q␇컣␇, q␇컣␇, q␇컣␇);
+Test_N(q␇커␇, q␇커␇, q␇커␇, q␇커␇, q␇커␇);
+Test_N(q␇컥␇, q␇컥␇, q␇컥␇, q␇컥␇, q␇컥␇);
+Test_N(q␇컦␇, q␇컦␇, q␇컦␇, q␇컦␇, q␇컦␇);
+Test_N(q␇컧␇, q␇컧␇, q␇컧␇, q␇컧␇, q␇컧␇);
+Test_N(q␇컨␇, q␇컨␇, q␇컨␇, q␇컨␇, q␇컨␇);
+Test_N(q␇컩␇, q␇컩␇, q␇컩␇, q␇컩␇, q␇컩␇);
+Test_N(q␇컪␇, q␇컪␇, q␇컪␇, q␇컪␇, q␇컪␇);
+Test_N(q␇컫␇, q␇컫␇, q␇컫␇, q␇컫␇, q␇컫␇);
+Test_N(q␇컬␇, q␇컬␇, q␇컬␇, q␇컬␇, q␇컬␇);
+Test_N(q␇컭␇, q␇컭␇, q␇컭␇, q␇컭␇, q␇컭␇);
+Test_N(q␇컮␇, q␇컮␇, q␇컮␇, q␇컮␇, q␇컮␇);
+Test_N(q␇컯␇, q␇컯␇, q␇컯␇, q␇컯␇, q␇컯␇);
+Test_N(q␇컰␇, q␇컰␇, q␇컰␇, q␇컰␇, q␇컰␇);
+Test_N(q␇컱␇, q␇컱␇, q␇컱␇, q␇컱␇, q␇컱␇);
+Test_N(q␇컲␇, q␇컲␇, q␇컲␇, q␇컲␇, q␇컲␇);
+Test_N(q␇컳␇, q␇컳␇, q␇컳␇, q␇컳␇, q␇컳␇);
+Test_N(q␇컴␇, q␇컴␇, q␇컴␇, q␇컴␇, q␇컴␇);
+Test_N(q␇컵␇, q␇컵␇, q␇컵␇, q␇컵␇, q␇컵␇);
+Test_N(q␇컶␇, q␇컶␇, q␇컶␇, q␇컶␇, q␇컶␇);
+Test_N(q␇컷␇, q␇컷␇, q␇컷␇, q␇컷␇, q␇컷␇);
+Test_N(q␇컸␇, q␇컸␇, q␇컸␇, q␇컸␇, q␇컸␇);
+Test_N(q␇컹␇, q␇컹␇, q␇컹␇, q␇컹␇, q␇컹␇);
+Test_N(q␇컺␇, q␇컺␇, q␇컺␇, q␇컺␇, q␇컺␇);
+Test_N(q␇컻␇, q␇컻␇, q␇컻␇, q␇컻␇, q␇컻␇);
+Test_N(q␇컼␇, q␇컼␇, q␇컼␇, q␇컼␇, q␇컼␇);
+Test_N(q␇컽␇, q␇컽␇, q␇컽␇, q␇컽␇, q␇컽␇);
+Test_N(q␇컾␇, q␇컾␇, q␇컾␇, q␇컾␇, q␇컾␇);
+Test_N(q␇컿␇, q␇컿␇, q␇컿␇, q␇컿␇, q␇컿␇);
+Test_N(q␇케␇, q␇케␇, q␇케␇, q␇케␇, q␇케␇);
+Test_N(q␇켁␇, q␇켁␇, q␇켁␇, q␇켁␇, q␇켁␇);
+Test_N(q␇켂␇, q␇켂␇, q␇켂␇, q␇켂␇, q␇켂␇);
+Test_N(q␇켃␇, q␇켃␇, q␇켃␇, q␇켃␇, q␇켃␇);
+Test_N(q␇켄␇, q␇켄␇, q␇켄␇, q␇켄␇, q␇켄␇);
+Test_N(q␇켅␇, q␇켅␇, q␇켅␇, q␇켅␇, q␇켅␇);
+Test_N(q␇켆␇, q␇켆␇, q␇켆␇, q␇켆␇, q␇켆␇);
+Test_N(q␇켇␇, q␇켇␇, q␇켇␇, q␇켇␇, q␇켇␇);
+Test_N(q␇켈␇, q␇켈␇, q␇켈␇, q␇켈␇, q␇켈␇);
+Test_N(q␇켉␇, q␇켉␇, q␇켉␇, q␇켉␇, q␇켉␇);
+Test_N(q␇켊␇, q␇켊␇, q␇켊␇, q␇켊␇, q␇켊␇);
+Test_N(q␇켋␇, q␇켋␇, q␇켋␇, q␇켋␇, q␇켋␇);
+Test_N(q␇켌␇, q␇켌␇, q␇켌␇, q␇켌␇, q␇켌␇);
+Test_N(q␇켍␇, q␇켍␇, q␇켍␇, q␇켍␇, q␇켍␇);
+Test_N(q␇켎␇, q␇켎␇, q␇켎␇, q␇켎␇, q␇켎␇);
+Test_N(q␇켏␇, q␇켏␇, q␇켏␇, q␇켏␇, q␇켏␇);
+Test_N(q␇켐␇, q␇켐␇, q␇켐␇, q␇켐␇, q␇켐␇);
+Test_N(q␇켑␇, q␇켑␇, q␇켑␇, q␇켑␇, q␇켑␇);
+Test_N(q␇켒␇, q␇켒␇, q␇켒␇, q␇켒␇, q␇켒␇);
+Test_N(q␇켓␇, q␇켓␇, q␇켓␇, q␇켓␇, q␇켓␇);
+Test_N(q␇켔␇, q␇켔␇, q␇켔␇, q␇켔␇, q␇켔␇);
+Test_N(q␇켕␇, q␇켕␇, q␇켕␇, q␇켕␇, q␇켕␇);
+Test_N(q␇켖␇, q␇켖␇, q␇켖␇, q␇켖␇, q␇켖␇);
+Test_N(q␇켗␇, q␇켗␇, q␇켗␇, q␇켗␇, q␇켗␇);
+Test_N(q␇켘␇, q␇켘␇, q␇켘␇, q␇켘␇, q␇켘␇);
+Test_N(q␇켙␇, q␇켙␇, q␇켙␇, q␇켙␇, q␇켙␇);
+Test_N(q␇켚␇, q␇켚␇, q␇켚␇, q␇켚␇, q␇켚␇);
+Test_N(q␇켛␇, q␇켛␇, q␇켛␇, q␇켛␇, q␇켛␇);
+Test_N(q␇켜␇, q␇켜␇, q␇켜␇, q␇켜␇, q␇켜␇);
+Test_N(q␇켝␇, q␇켝␇, q␇켝␇, q␇켝␇, q␇켝␇);
+Test_N(q␇켞␇, q␇켞␇, q␇켞␇, q␇켞␇, q␇켞␇);
+Test_N(q␇켟␇, q␇켟␇, q␇켟␇, q␇켟␇, q␇켟␇);
+Test_N(q␇켠␇, q␇켠␇, q␇켠␇, q␇켠␇, q␇켠␇);
+Test_N(q␇켡␇, q␇켡␇, q␇켡␇, q␇켡␇, q␇켡␇);
+Test_N(q␇켢␇, q␇켢␇, q␇켢␇, q␇켢␇, q␇켢␇);
+Test_N(q␇켣␇, q␇켣␇, q␇켣␇, q␇켣␇, q␇켣␇);
+Test_N(q␇켤␇, q␇켤␇, q␇켤␇, q␇켤␇, q␇켤␇);
+Test_N(q␇켥␇, q␇켥␇, q␇켥␇, q␇켥␇, q␇켥␇);
+Test_N(q␇켦␇, q␇켦␇, q␇켦␇, q␇켦␇, q␇켦␇);
+Test_N(q␇켧␇, q␇켧␇, q␇켧␇, q␇켧␇, q␇켧␇);
+Test_N(q␇켨␇, q␇켨␇, q␇켨␇, q␇켨␇, q␇켨␇);
+Test_N(q␇켩␇, q␇켩␇, q␇켩␇, q␇켩␇, q␇켩␇);
+Test_N(q␇켪␇, q␇켪␇, q␇켪␇, q␇켪␇, q␇켪␇);
+Test_N(q␇켫␇, q␇켫␇, q␇켫␇, q␇켫␇, q␇켫␇);
+Test_N(q␇켬␇, q␇켬␇, q␇켬␇, q␇켬␇, q␇켬␇);
+Test_N(q␇켭␇, q␇켭␇, q␇켭␇, q␇켭␇, q␇켭␇);
+Test_N(q␇켮␇, q␇켮␇, q␇켮␇, q␇켮␇, q␇켮␇);
+Test_N(q␇켯␇, q␇켯␇, q␇켯␇, q␇켯␇, q␇켯␇);
+Test_N(q␇켰␇, q␇켰␇, q␇켰␇, q␇켰␇, q␇켰␇);
+Test_N(q␇켱␇, q␇켱␇, q␇켱␇, q␇켱␇, q␇켱␇);
+Test_N(q␇켲␇, q␇켲␇, q␇켲␇, q␇켲␇, q␇켲␇);
+Test_N(q␇켳␇, q␇켳␇, q␇켳␇, q␇켳␇, q␇켳␇);
+Test_N(q␇켴␇, q␇켴␇, q␇켴␇, q␇켴␇, q␇켴␇);
+Test_N(q␇켵␇, q␇켵␇, q␇켵␇, q␇켵␇, q␇켵␇);
+Test_N(q␇켶␇, q␇켶␇, q␇켶␇, q␇켶␇, q␇켶␇);
+Test_N(q␇켷␇, q␇켷␇, q␇켷␇, q␇켷␇, q␇켷␇);
+Test_N(q␇켸␇, q␇켸␇, q␇켸␇, q␇켸␇, q␇켸␇);
+Test_N(q␇켹␇, q␇켹␇, q␇켹␇, q␇켹␇, q␇켹␇);
+Test_N(q␇켺␇, q␇켺␇, q␇켺␇, q␇켺␇, q␇켺␇);
+Test_N(q␇켻␇, q␇켻␇, q␇켻␇, q␇켻␇, q␇켻␇);
+Test_N(q␇켼␇, q␇켼␇, q␇켼␇, q␇켼␇, q␇켼␇);
+Test_N(q␇켽␇, q␇켽␇, q␇켽␇, q␇켽␇, q␇켽␇);
+Test_N(q␇켾␇, q␇켾␇, q␇켾␇, q␇켾␇, q␇켾␇);
+Test_N(q␇켿␇, q␇켿␇, q␇켿␇, q␇켿␇, q␇켿␇);
+Test_N(q␇콀␇, q␇콀␇, q␇콀␇, q␇콀␇, q␇콀␇);
+Test_N(q␇콁␇, q␇콁␇, q␇콁␇, q␇콁␇, q␇콁␇);
+Test_N(q␇콂␇, q␇콂␇, q␇콂␇, q␇콂␇, q␇콂␇);
+Test_N(q␇콃␇, q␇콃␇, q␇콃␇, q␇콃␇, q␇콃␇);
+Test_N(q␇콄␇, q␇콄␇, q␇콄␇, q␇콄␇, q␇콄␇);
+Test_N(q␇콅␇, q␇콅␇, q␇콅␇, q␇콅␇, q␇콅␇);
+Test_N(q␇콆␇, q␇콆␇, q␇콆␇, q␇콆␇, q␇콆␇);
+Test_N(q␇콇␇, q␇콇␇, q␇콇␇, q␇콇␇, q␇콇␇);
+Test_N(q␇콈␇, q␇콈␇, q␇콈␇, q␇콈␇, q␇콈␇);
+Test_N(q␇콉␇, q␇콉␇, q␇콉␇, q␇콉␇, q␇콉␇);
+Test_N(q␇콊␇, q␇콊␇, q␇콊␇, q␇콊␇, q␇콊␇);
+Test_N(q␇콋␇, q␇콋␇, q␇콋␇, q␇콋␇, q␇콋␇);
+Test_N(q␇콌␇, q␇콌␇, q␇콌␇, q␇콌␇, q␇콌␇);
+Test_N(q␇콍␇, q␇콍␇, q␇콍␇, q␇콍␇, q␇콍␇);
+Test_N(q␇콎␇, q␇콎␇, q␇콎␇, q␇콎␇, q␇콎␇);
+Test_N(q␇콏␇, q␇콏␇, q␇콏␇, q␇콏␇, q␇콏␇);
+Test_N(q␇콐␇, q␇콐␇, q␇콐␇, q␇콐␇, q␇콐␇);
+Test_N(q␇콑␇, q␇콑␇, q␇콑␇, q␇콑␇, q␇콑␇);
+Test_N(q␇콒␇, q␇콒␇, q␇콒␇, q␇콒␇, q␇콒␇);
+Test_N(q␇콓␇, q␇콓␇, q␇콓␇, q␇콓␇, q␇콓␇);
+Test_N(q␇코␇, q␇코␇, q␇코␇, q␇코␇, q␇코␇);
+Test_N(q␇콕␇, q␇콕␇, q␇콕␇, q␇콕␇, q␇콕␇);
+Test_N(q␇콖␇, q␇콖␇, q␇콖␇, q␇콖␇, q␇콖␇);
+Test_N(q␇콗␇, q␇콗␇, q␇콗␇, q␇콗␇, q␇콗␇);
+Test_N(q␇콘␇, q␇콘␇, q␇콘␇, q␇콘␇, q␇콘␇);
+Test_N(q␇콙␇, q␇콙␇, q␇콙␇, q␇콙␇, q␇콙␇);
+Test_N(q␇콚␇, q␇콚␇, q␇콚␇, q␇콚␇, q␇콚␇);
+Test_N(q␇콛␇, q␇콛␇, q␇콛␇, q␇콛␇, q␇콛␇);
+Test_N(q␇콜␇, q␇콜␇, q␇콜␇, q␇콜␇, q␇콜␇);
+Test_N(q␇콝␇, q␇콝␇, q␇콝␇, q␇콝␇, q␇콝␇);
+Test_N(q␇콞␇, q␇콞␇, q␇콞␇, q␇콞␇, q␇콞␇);
+Test_N(q␇콟␇, q␇콟␇, q␇콟␇, q␇콟␇, q␇콟␇);
+Test_N(q␇콠␇, q␇콠␇, q␇콠␇, q␇콠␇, q␇콠␇);
+Test_N(q␇콡␇, q␇콡␇, q␇콡␇, q␇콡␇, q␇콡␇);
+Test_N(q␇콢␇, q␇콢␇, q␇콢␇, q␇콢␇, q␇콢␇);
+Test_N(q␇콣␇, q␇콣␇, q␇콣␇, q␇콣␇, q␇콣␇);
+Test_N(q␇콤␇, q␇콤␇, q␇콤␇, q␇콤␇, q␇콤␇);
+Test_N(q␇콥␇, q␇콥␇, q␇콥␇, q␇콥␇, q␇콥␇);
+Test_N(q␇콦␇, q␇콦␇, q␇콦␇, q␇콦␇, q␇콦␇);
+Test_N(q␇콧␇, q␇콧␇, q␇콧␇, q␇콧␇, q␇콧␇);
+Test_N(q␇콨␇, q␇콨␇, q␇콨␇, q␇콨␇, q␇콨␇);
+Test_N(q␇콩␇, q␇콩␇, q␇콩␇, q␇콩␇, q␇콩␇);
+Test_N(q␇콪␇, q␇콪␇, q␇콪␇, q␇콪␇, q␇콪␇);
+Test_N(q␇콫␇, q␇콫␇, q␇콫␇, q␇콫␇, q␇콫␇);
+Test_N(q␇콬␇, q␇콬␇, q␇콬␇, q␇콬␇, q␇콬␇);
+Test_N(q␇콭␇, q␇콭␇, q␇콭␇, q␇콭␇, q␇콭␇);
+Test_N(q␇콮␇, q␇콮␇, q␇콮␇, q␇콮␇, q␇콮␇);
+Test_N(q␇콯␇, q␇콯␇, q␇콯␇, q␇콯␇, q␇콯␇);
+Test_N(q␇콰␇, q␇콰␇, q␇콰␇, q␇콰␇, q␇콰␇);
+Test_N(q␇콱␇, q␇콱␇, q␇콱␇, q␇콱␇, q␇콱␇);
+Test_N(q␇콲␇, q␇콲␇, q␇콲␇, q␇콲␇, q␇콲␇);
+Test_N(q␇콳␇, q␇콳␇, q␇콳␇, q␇콳␇, q␇콳␇);
+Test_N(q␇콴␇, q␇콴␇, q␇콴␇, q␇콴␇, q␇콴␇);
+Test_N(q␇콵␇, q␇콵␇, q␇콵␇, q␇콵␇, q␇콵␇);
+Test_N(q␇콶␇, q␇콶␇, q␇콶␇, q␇콶␇, q␇콶␇);
+Test_N(q␇콷␇, q␇콷␇, q␇콷␇, q␇콷␇, q␇콷␇);
+Test_N(q␇콸␇, q␇콸␇, q␇콸␇, q␇콸␇, q␇콸␇);
+Test_N(q␇콹␇, q␇콹␇, q␇콹␇, q␇콹␇, q␇콹␇);
+Test_N(q␇콺␇, q␇콺␇, q␇콺␇, q␇콺␇, q␇콺␇);
+Test_N(q␇콻␇, q␇콻␇, q␇콻␇, q␇콻␇, q␇콻␇);
+Test_N(q␇콼␇, q␇콼␇, q␇콼␇, q␇콼␇, q␇콼␇);
+Test_N(q␇콽␇, q␇콽␇, q␇콽␇, q␇콽␇, q␇콽␇);
+Test_N(q␇콾␇, q␇콾␇, q␇콾␇, q␇콾␇, q␇콾␇);
+Test_N(q␇콿␇, q␇콿␇, q␇콿␇, q␇콿␇, q␇콿␇);
+Test_N(q␇쾀␇, q␇쾀␇, q␇쾀␇, q␇쾀␇, q␇쾀␇);
+Test_N(q␇쾁␇, q␇쾁␇, q␇쾁␇, q␇쾁␇, q␇쾁␇);
+Test_N(q␇쾂␇, q␇쾂␇, q␇쾂␇, q␇쾂␇, q␇쾂␇);
+Test_N(q␇쾃␇, q␇쾃␇, q␇쾃␇, q␇쾃␇, q␇쾃␇);
+Test_N(q␇쾄␇, q␇쾄␇, q␇쾄␇, q␇쾄␇, q␇쾄␇);
+Test_N(q␇쾅␇, q␇쾅␇, q␇쾅␇, q␇쾅␇, q␇쾅␇);
+Test_N(q␇쾆␇, q␇쾆␇, q␇쾆␇, q␇쾆␇, q␇쾆␇);
+Test_N(q␇쾇␇, q␇쾇␇, q␇쾇␇, q␇쾇␇, q␇쾇␇);
+Test_N(q␇쾈␇, q␇쾈␇, q␇쾈␇, q␇쾈␇, q␇쾈␇);
+Test_N(q␇쾉␇, q␇쾉␇, q␇쾉␇, q␇쾉␇, q␇쾉␇);
+Test_N(q␇쾊␇, q␇쾊␇, q␇쾊␇, q␇쾊␇, q␇쾊␇);
+Test_N(q␇쾋␇, q␇쾋␇, q␇쾋␇, q␇쾋␇, q␇쾋␇);
+Test_N(q␇쾌␇, q␇쾌␇, q␇쾌␇, q␇쾌␇, q␇쾌␇);
+Test_N(q␇쾍␇, q␇쾍␇, q␇쾍␇, q␇쾍␇, q␇쾍␇);
+Test_N(q␇쾎␇, q␇쾎␇, q␇쾎␇, q␇쾎␇, q␇쾎␇);
+Test_N(q␇쾏␇, q␇쾏␇, q␇쾏␇, q␇쾏␇, q␇쾏␇);
+Test_N(q␇쾐␇, q␇쾐␇, q␇쾐␇, q␇쾐␇, q␇쾐␇);
+Test_N(q␇쾑␇, q␇쾑␇, q␇쾑␇, q␇쾑␇, q␇쾑␇);
+Test_N(q␇쾒␇, q␇쾒␇, q␇쾒␇, q␇쾒␇, q␇쾒␇);
+Test_N(q␇쾓␇, q␇쾓␇, q␇쾓␇, q␇쾓␇, q␇쾓␇);
+Test_N(q␇쾔␇, q␇쾔␇, q␇쾔␇, q␇쾔␇, q␇쾔␇);
+Test_N(q␇쾕␇, q␇쾕␇, q␇쾕␇, q␇쾕␇, q␇쾕␇);
+Test_N(q␇쾖␇, q␇쾖␇, q␇쾖␇, q␇쾖␇, q␇쾖␇);
+Test_N(q␇쾗␇, q␇쾗␇, q␇쾗␇, q␇쾗␇, q␇쾗␇);
+Test_N(q␇쾘␇, q␇쾘␇, q␇쾘␇, q␇쾘␇, q␇쾘␇);
+Test_N(q␇쾙␇, q␇쾙␇, q␇쾙␇, q␇쾙␇, q␇쾙␇);
+Test_N(q␇쾚␇, q␇쾚␇, q␇쾚␇, q␇쾚␇, q␇쾚␇);
+Test_N(q␇쾛␇, q␇쾛␇, q␇쾛␇, q␇쾛␇, q␇쾛␇);
+Test_N(q␇쾜␇, q␇쾜␇, q␇쾜␇, q␇쾜␇, q␇쾜␇);
+Test_N(q␇쾝␇, q␇쾝␇, q␇쾝␇, q␇쾝␇, q␇쾝␇);
+Test_N(q␇쾞␇, q␇쾞␇, q␇쾞␇, q␇쾞␇, q␇쾞␇);
+Test_N(q␇쾟␇, q␇쾟␇, q␇쾟␇, q␇쾟␇, q␇쾟␇);
+Test_N(q␇쾠␇, q␇쾠␇, q␇쾠␇, q␇쾠␇, q␇쾠␇);
+Test_N(q␇쾡␇, q␇쾡␇, q␇쾡␇, q␇쾡␇, q␇쾡␇);
+Test_N(q␇쾢␇, q␇쾢␇, q␇쾢␇, q␇쾢␇, q␇쾢␇);
+Test_N(q␇쾣␇, q␇쾣␇, q␇쾣␇, q␇쾣␇, q␇쾣␇);
+Test_N(q␇쾤␇, q␇쾤␇, q␇쾤␇, q␇쾤␇, q␇쾤␇);
+Test_N(q␇쾥␇, q␇쾥␇, q␇쾥␇, q␇쾥␇, q␇쾥␇);
+Test_N(q␇쾦␇, q␇쾦␇, q␇쾦␇, q␇쾦␇, q␇쾦␇);
+Test_N(q␇쾧␇, q␇쾧␇, q␇쾧␇, q␇쾧␇, q␇쾧␇);
+Test_N(q␇쾨␇, q␇쾨␇, q␇쾨␇, q␇쾨␇, q␇쾨␇);
+Test_N(q␇쾩␇, q␇쾩␇, q␇쾩␇, q␇쾩␇, q␇쾩␇);
+Test_N(q␇쾪␇, q␇쾪␇, q␇쾪␇, q␇쾪␇, q␇쾪␇);
+Test_N(q␇쾫␇, q␇쾫␇, q␇쾫␇, q␇쾫␇, q␇쾫␇);
+Test_N(q␇쾬␇, q␇쾬␇, q␇쾬␇, q␇쾬␇, q␇쾬␇);
+Test_N(q␇쾭␇, q␇쾭␇, q␇쾭␇, q␇쾭␇, q␇쾭␇);
+Test_N(q␇쾮␇, q␇쾮␇, q␇쾮␇, q␇쾮␇, q␇쾮␇);
+Test_N(q␇쾯␇, q␇쾯␇, q␇쾯␇, q␇쾯␇, q␇쾯␇);
+Test_N(q␇쾰␇, q␇쾰␇, q␇쾰␇, q␇쾰␇, q␇쾰␇);
+Test_N(q␇쾱␇, q␇쾱␇, q␇쾱␇, q␇쾱␇, q␇쾱␇);
+Test_N(q␇쾲␇, q␇쾲␇, q␇쾲␇, q␇쾲␇, q␇쾲␇);
+Test_N(q␇쾳␇, q␇쾳␇, q␇쾳␇, q␇쾳␇, q␇쾳␇);
+Test_N(q␇쾴␇, q␇쾴␇, q␇쾴␇, q␇쾴␇, q␇쾴␇);
+Test_N(q␇쾵␇, q␇쾵␇, q␇쾵␇, q␇쾵␇, q␇쾵␇);
+Test_N(q␇쾶␇, q␇쾶␇, q␇쾶␇, q␇쾶␇, q␇쾶␇);
+Test_N(q␇쾷␇, q␇쾷␇, q␇쾷␇, q␇쾷␇, q␇쾷␇);
+Test_N(q␇쾸␇, q␇쾸␇, q␇쾸␇, q␇쾸␇, q␇쾸␇);
+Test_N(q␇쾹␇, q␇쾹␇, q␇쾹␇, q␇쾹␇, q␇쾹␇);
+Test_N(q␇쾺␇, q␇쾺␇, q␇쾺␇, q␇쾺␇, q␇쾺␇);
+Test_N(q␇쾻␇, q␇쾻␇, q␇쾻␇, q␇쾻␇, q␇쾻␇);
+Test_N(q␇쾼␇, q␇쾼␇, q␇쾼␇, q␇쾼␇, q␇쾼␇);
+Test_N(q␇쾽␇, q␇쾽␇, q␇쾽␇, q␇쾽␇, q␇쾽␇);
+Test_N(q␇쾾␇, q␇쾾␇, q␇쾾␇, q␇쾾␇, q␇쾾␇);
+Test_N(q␇쾿␇, q␇쾿␇, q␇쾿␇, q␇쾿␇, q␇쾿␇);
+Test_N(q␇쿀␇, q␇쿀␇, q␇쿀␇, q␇쿀␇, q␇쿀␇);
+Test_N(q␇쿁␇, q␇쿁␇, q␇쿁␇, q␇쿁␇, q␇쿁␇);
+Test_N(q␇쿂␇, q␇쿂␇, q␇쿂␇, q␇쿂␇, q␇쿂␇);
+Test_N(q␇쿃␇, q␇쿃␇, q␇쿃␇, q␇쿃␇, q␇쿃␇);
+Test_N(q␇쿄␇, q␇쿄␇, q␇쿄␇, q␇쿄␇, q␇쿄␇);
+Test_N(q␇쿅␇, q␇쿅␇, q␇쿅␇, q␇쿅␇, q␇쿅␇);
+Test_N(q␇쿆␇, q␇쿆␇, q␇쿆␇, q␇쿆␇, q␇쿆␇);
+Test_N(q␇쿇␇, q␇쿇␇, q␇쿇␇, q␇쿇␇, q␇쿇␇);
+Test_N(q␇쿈␇, q␇쿈␇, q␇쿈␇, q␇쿈␇, q␇쿈␇);
+Test_N(q␇쿉␇, q␇쿉␇, q␇쿉␇, q␇쿉␇, q␇쿉␇);
+Test_N(q␇쿊␇, q␇쿊␇, q␇쿊␇, q␇쿊␇, q␇쿊␇);
+Test_N(q␇쿋␇, q␇쿋␇, q␇쿋␇, q␇쿋␇, q␇쿋␇);
+Test_N(q␇쿌␇, q␇쿌␇, q␇쿌␇, q␇쿌␇, q␇쿌␇);
+Test_N(q␇쿍␇, q␇쿍␇, q␇쿍␇, q␇쿍␇, q␇쿍␇);
+Test_N(q␇쿎␇, q␇쿎␇, q␇쿎␇, q␇쿎␇, q␇쿎␇);
+Test_N(q␇쿏␇, q␇쿏␇, q␇쿏␇, q␇쿏␇, q␇쿏␇);
+Test_N(q␇쿐␇, q␇쿐␇, q␇쿐␇, q␇쿐␇, q␇쿐␇);
+Test_N(q␇쿑␇, q␇쿑␇, q␇쿑␇, q␇쿑␇, q␇쿑␇);
+Test_N(q␇쿒␇, q␇쿒␇, q␇쿒␇, q␇쿒␇, q␇쿒␇);
+Test_N(q␇쿓␇, q␇쿓␇, q␇쿓␇, q␇쿓␇, q␇쿓␇);
+Test_N(q␇쿔␇, q␇쿔␇, q␇쿔␇, q␇쿔␇, q␇쿔␇);
+Test_N(q␇쿕␇, q␇쿕␇, q␇쿕␇, q␇쿕␇, q␇쿕␇);
+Test_N(q␇쿖␇, q␇쿖␇, q␇쿖␇, q␇쿖␇, q␇쿖␇);
+Test_N(q␇쿗␇, q␇쿗␇, q␇쿗␇, q␇쿗␇, q␇쿗␇);
+Test_N(q␇쿘␇, q␇쿘␇, q␇쿘␇, q␇쿘␇, q␇쿘␇);
+Test_N(q␇쿙␇, q␇쿙␇, q␇쿙␇, q␇쿙␇, q␇쿙␇);
+Test_N(q␇쿚␇, q␇쿚␇, q␇쿚␇, q␇쿚␇, q␇쿚␇);
+Test_N(q␇쿛␇, q␇쿛␇, q␇쿛␇, q␇쿛␇, q␇쿛␇);
+Test_N(q␇쿜␇, q␇쿜␇, q␇쿜␇, q␇쿜␇, q␇쿜␇);
+Test_N(q␇쿝␇, q␇쿝␇, q␇쿝␇, q␇쿝␇, q␇쿝␇);
+Test_N(q␇쿞␇, q␇쿞␇, q␇쿞␇, q␇쿞␇, q␇쿞␇);
+Test_N(q␇쿟␇, q␇쿟␇, q␇쿟␇, q␇쿟␇, q␇쿟␇);
+Test_N(q␇쿠␇, q␇쿠␇, q␇쿠␇, q␇쿠␇, q␇쿠␇);
+Test_N(q␇쿡␇, q␇쿡␇, q␇쿡␇, q␇쿡␇, q␇쿡␇);
+Test_N(q␇쿢␇, q␇쿢␇, q␇쿢␇, q␇쿢␇, q␇쿢␇);
+Test_N(q␇쿣␇, q␇쿣␇, q␇쿣␇, q␇쿣␇, q␇쿣␇);
+Test_N(q␇쿤␇, q␇쿤␇, q␇쿤␇, q␇쿤␇, q␇쿤␇);
+Test_N(q␇쿥␇, q␇쿥␇, q␇쿥␇, q␇쿥␇, q␇쿥␇);
+Test_N(q␇쿦␇, q␇쿦␇, q␇쿦␇, q␇쿦␇, q␇쿦␇);
+Test_N(q␇쿧␇, q␇쿧␇, q␇쿧␇, q␇쿧␇, q␇쿧␇);
+Test_N(q␇쿨␇, q␇쿨␇, q␇쿨␇, q␇쿨␇, q␇쿨␇);
+Test_N(q␇쿩␇, q␇쿩␇, q␇쿩␇, q␇쿩␇, q␇쿩␇);
+Test_N(q␇쿪␇, q␇쿪␇, q␇쿪␇, q␇쿪␇, q␇쿪␇);
+Test_N(q␇쿫␇, q␇쿫␇, q␇쿫␇, q␇쿫␇, q␇쿫␇);
+Test_N(q␇쿬␇, q␇쿬␇, q␇쿬␇, q␇쿬␇, q␇쿬␇);
+Test_N(q␇쿭␇, q␇쿭␇, q␇쿭␇, q␇쿭␇, q␇쿭␇);
+Test_N(q␇쿮␇, q␇쿮␇, q␇쿮␇, q␇쿮␇, q␇쿮␇);
+Test_N(q␇쿯␇, q␇쿯␇, q␇쿯␇, q␇쿯␇, q␇쿯␇);
+Test_N(q␇쿰␇, q␇쿰␇, q␇쿰␇, q␇쿰␇, q␇쿰␇);
+Test_N(q␇쿱␇, q␇쿱␇, q␇쿱␇, q␇쿱␇, q␇쿱␇);
+Test_N(q␇쿲␇, q␇쿲␇, q␇쿲␇, q␇쿲␇, q␇쿲␇);
+Test_N(q␇쿳␇, q␇쿳␇, q␇쿳␇, q␇쿳␇, q␇쿳␇);
+Test_N(q␇쿴␇, q␇쿴␇, q␇쿴␇, q␇쿴␇, q␇쿴␇);
+Test_N(q␇쿵␇, q␇쿵␇, q␇쿵␇, q␇쿵␇, q␇쿵␇);
+Test_N(q␇쿶␇, q␇쿶␇, q␇쿶␇, q␇쿶␇, q␇쿶␇);
+Test_N(q␇쿷␇, q␇쿷␇, q␇쿷␇, q␇쿷␇, q␇쿷␇);
+Test_N(q␇쿸␇, q␇쿸␇, q␇쿸␇, q␇쿸␇, q␇쿸␇);
+Test_N(q␇쿹␇, q␇쿹␇, q␇쿹␇, q␇쿹␇, q␇쿹␇);
+Test_N(q␇쿺␇, q␇쿺␇, q␇쿺␇, q␇쿺␇, q␇쿺␇);
+Test_N(q␇쿻␇, q␇쿻␇, q␇쿻␇, q␇쿻␇, q␇쿻␇);
+Test_N(q␇쿼␇, q␇쿼␇, q␇쿼␇, q␇쿼␇, q␇쿼␇);
+Test_N(q␇쿽␇, q␇쿽␇, q␇쿽␇, q␇쿽␇, q␇쿽␇);
+Test_N(q␇쿾␇, q␇쿾␇, q␇쿾␇, q␇쿾␇, q␇쿾␇);
+Test_N(q␇쿿␇, q␇쿿␇, q␇쿿␇, q␇쿿␇, q␇쿿␇);
+Test_N(q␇퀀␇, q␇퀀␇, q␇퀀␇, q␇퀀␇, q␇퀀␇);
+Test_N(q␇퀁␇, q␇퀁␇, q␇퀁␇, q␇퀁␇, q␇퀁␇);
+Test_N(q␇퀂␇, q␇퀂␇, q␇퀂␇, q␇퀂␇, q␇퀂␇);
+Test_N(q␇퀃␇, q␇퀃␇, q␇퀃␇, q␇퀃␇, q␇퀃␇);
+Test_N(q␇퀄␇, q␇퀄␇, q␇퀄␇, q␇퀄␇, q␇퀄␇);
+Test_N(q␇퀅␇, q␇퀅␇, q␇퀅␇, q␇퀅␇, q␇퀅␇);
+Test_N(q␇퀆␇, q␇퀆␇, q␇퀆␇, q␇퀆␇, q␇퀆␇);
+Test_N(q␇퀇␇, q␇퀇␇, q␇퀇␇, q␇퀇␇, q␇퀇␇);
+Test_N(q␇퀈␇, q␇퀈␇, q␇퀈␇, q␇퀈␇, q␇퀈␇);
+Test_N(q␇퀉␇, q␇퀉␇, q␇퀉␇, q␇퀉␇, q␇퀉␇);
+Test_N(q␇퀊␇, q␇퀊␇, q␇퀊␇, q␇퀊␇, q␇퀊␇);
+Test_N(q␇퀋␇, q␇퀋␇, q␇퀋␇, q␇퀋␇, q␇퀋␇);
+Test_N(q␇퀌␇, q␇퀌␇, q␇퀌␇, q␇퀌␇, q␇퀌␇);
+Test_N(q␇퀍␇, q␇퀍␇, q␇퀍␇, q␇퀍␇, q␇퀍␇);
+Test_N(q␇퀎␇, q␇퀎␇, q␇퀎␇, q␇퀎␇, q␇퀎␇);
+Test_N(q␇퀏␇, q␇퀏␇, q␇퀏␇, q␇퀏␇, q␇퀏␇);
+Test_N(q␇퀐␇, q␇퀐␇, q␇퀐␇, q␇퀐␇, q␇퀐␇);
+Test_N(q␇퀑␇, q␇퀑␇, q␇퀑␇, q␇퀑␇, q␇퀑␇);
+Test_N(q␇퀒␇, q␇퀒␇, q␇퀒␇, q␇퀒␇, q␇퀒␇);
+Test_N(q␇퀓␇, q␇퀓␇, q␇퀓␇, q␇퀓␇, q␇퀓␇);
+Test_N(q␇퀔␇, q␇퀔␇, q␇퀔␇, q␇퀔␇, q␇퀔␇);
+Test_N(q␇퀕␇, q␇퀕␇, q␇퀕␇, q␇퀕␇, q␇퀕␇);
+Test_N(q␇퀖␇, q␇퀖␇, q␇퀖␇, q␇퀖␇, q␇퀖␇);
+Test_N(q␇퀗␇, q␇퀗␇, q␇퀗␇, q␇퀗␇, q␇퀗␇);
+Test_N(q␇퀘␇, q␇퀘␇, q␇퀘␇, q␇퀘␇, q␇퀘␇);
+Test_N(q␇퀙␇, q␇퀙␇, q␇퀙␇, q␇퀙␇, q␇퀙␇);
+Test_N(q␇퀚␇, q␇퀚␇, q␇퀚␇, q␇퀚␇, q␇퀚␇);
+Test_N(q␇퀛␇, q␇퀛␇, q␇퀛␇, q␇퀛␇, q␇퀛␇);
+Test_N(q␇퀜␇, q␇퀜␇, q␇퀜␇, q␇퀜␇, q␇퀜␇);
+Test_N(q␇퀝␇, q␇퀝␇, q␇퀝␇, q␇퀝␇, q␇퀝␇);
+Test_N(q␇퀞␇, q␇퀞␇, q␇퀞␇, q␇퀞␇, q␇퀞␇);
+Test_N(q␇퀟␇, q␇퀟␇, q␇퀟␇, q␇퀟␇, q␇퀟␇);
+Test_N(q␇퀠␇, q␇퀠␇, q␇퀠␇, q␇퀠␇, q␇퀠␇);
+Test_N(q␇퀡␇, q␇퀡␇, q␇퀡␇, q␇퀡␇, q␇퀡␇);
+Test_N(q␇퀢␇, q␇퀢␇, q␇퀢␇, q␇퀢␇, q␇퀢␇);
+Test_N(q␇퀣␇, q␇퀣␇, q␇퀣␇, q␇퀣␇, q␇퀣␇);
+Test_N(q␇퀤␇, q␇퀤␇, q␇퀤␇, q␇퀤␇, q␇퀤␇);
+Test_N(q␇퀥␇, q␇퀥␇, q␇퀥␇, q␇퀥␇, q␇퀥␇);
+Test_N(q␇퀦␇, q␇퀦␇, q␇퀦␇, q␇퀦␇, q␇퀦␇);
+Test_N(q␇퀧␇, q␇퀧␇, q␇퀧␇, q␇퀧␇, q␇퀧␇);
+Test_N(q␇퀨␇, q␇퀨␇, q␇퀨␇, q␇퀨␇, q␇퀨␇);
+Test_N(q␇퀩␇, q␇퀩␇, q␇퀩␇, q␇퀩␇, q␇퀩␇);
+Test_N(q␇퀪␇, q␇퀪␇, q␇퀪␇, q␇퀪␇, q␇퀪␇);
+Test_N(q␇퀫␇, q␇퀫␇, q␇퀫␇, q␇퀫␇, q␇퀫␇);
+Test_N(q␇퀬␇, q␇퀬␇, q␇퀬␇, q␇퀬␇, q␇퀬␇);
+Test_N(q␇퀭␇, q␇퀭␇, q␇퀭␇, q␇퀭␇, q␇퀭␇);
+Test_N(q␇퀮␇, q␇퀮␇, q␇퀮␇, q␇퀮␇, q␇퀮␇);
+Test_N(q␇퀯␇, q␇퀯␇, q␇퀯␇, q␇퀯␇, q␇퀯␇);
+Test_N(q␇퀰␇, q␇퀰␇, q␇퀰␇, q␇퀰␇, q␇퀰␇);
+Test_N(q␇퀱␇, q␇퀱␇, q␇퀱␇, q␇퀱␇, q␇퀱␇);
+Test_N(q␇퀲␇, q␇퀲␇, q␇퀲␇, q␇퀲␇, q␇퀲␇);
+Test_N(q␇퀳␇, q␇퀳␇, q␇퀳␇, q␇퀳␇, q␇퀳␇);
+Test_N(q␇퀴␇, q␇퀴␇, q␇퀴␇, q␇퀴␇, q␇퀴␇);
+Test_N(q␇퀵␇, q␇퀵␇, q␇퀵␇, q␇퀵␇, q␇퀵␇);
+Test_N(q␇퀶␇, q␇퀶␇, q␇퀶␇, q␇퀶␇, q␇퀶␇);
+Test_N(q␇퀷␇, q␇퀷␇, q␇퀷␇, q␇퀷␇, q␇퀷␇);
+Test_N(q␇퀸␇, q␇퀸␇, q␇퀸␇, q␇퀸␇, q␇퀸␇);
+Test_N(q␇퀹␇, q␇퀹␇, q␇퀹␇, q␇퀹␇, q␇퀹␇);
+Test_N(q␇퀺␇, q␇퀺␇, q␇퀺␇, q␇퀺␇, q␇퀺␇);
+Test_N(q␇퀻␇, q␇퀻␇, q␇퀻␇, q␇퀻␇, q␇퀻␇);
+Test_N(q␇퀼␇, q␇퀼␇, q␇퀼␇, q␇퀼␇, q␇퀼␇);
+Test_N(q␇퀽␇, q␇퀽␇, q␇퀽␇, q␇퀽␇, q␇퀽␇);
+Test_N(q␇퀾␇, q␇퀾␇, q␇퀾␇, q␇퀾␇, q␇퀾␇);
+Test_N(q␇퀿␇, q␇퀿␇, q␇퀿␇, q␇퀿␇, q␇퀿␇);
+Test_N(q␇큀␇, q␇큀␇, q␇큀␇, q␇큀␇, q␇큀␇);
+Test_N(q␇큁␇, q␇큁␇, q␇큁␇, q␇큁␇, q␇큁␇);
+Test_N(q␇큂␇, q␇큂␇, q␇큂␇, q␇큂␇, q␇큂␇);
+Test_N(q␇큃␇, q␇큃␇, q␇큃␇, q␇큃␇, q␇큃␇);
+Test_N(q␇큄␇, q␇큄␇, q␇큄␇, q␇큄␇, q␇큄␇);
+Test_N(q␇큅␇, q␇큅␇, q␇큅␇, q␇큅␇, q␇큅␇);
+Test_N(q␇큆␇, q␇큆␇, q␇큆␇, q␇큆␇, q␇큆␇);
+Test_N(q␇큇␇, q␇큇␇, q␇큇␇, q␇큇␇, q␇큇␇);
+Test_N(q␇큈␇, q␇큈␇, q␇큈␇, q␇큈␇, q␇큈␇);
+Test_N(q␇큉␇, q␇큉␇, q␇큉␇, q␇큉␇, q␇큉␇);
+Test_N(q␇큊␇, q␇큊␇, q␇큊␇, q␇큊␇, q␇큊␇);
+Test_N(q␇큋␇, q␇큋␇, q␇큋␇, q␇큋␇, q␇큋␇);
+Test_N(q␇큌␇, q␇큌␇, q␇큌␇, q␇큌␇, q␇큌␇);
+Test_N(q␇큍␇, q␇큍␇, q␇큍␇, q␇큍␇, q␇큍␇);
+Test_N(q␇큎␇, q␇큎␇, q␇큎␇, q␇큎␇, q␇큎␇);
+Test_N(q␇큏␇, q␇큏␇, q␇큏␇, q␇큏␇, q␇큏␇);
+Test_N(q␇큐␇, q␇큐␇, q␇큐␇, q␇큐␇, q␇큐␇);
+Test_N(q␇큑␇, q␇큑␇, q␇큑␇, q␇큑␇, q␇큑␇);
+Test_N(q␇큒␇, q␇큒␇, q␇큒␇, q␇큒␇, q␇큒␇);
+Test_N(q␇큓␇, q␇큓␇, q␇큓␇, q␇큓␇, q␇큓␇);
+Test_N(q␇큔␇, q␇큔␇, q␇큔␇, q␇큔␇, q␇큔␇);
+Test_N(q␇큕␇, q␇큕␇, q␇큕␇, q␇큕␇, q␇큕␇);
+Test_N(q␇큖␇, q␇큖␇, q␇큖␇, q␇큖␇, q␇큖␇);
+Test_N(q␇큗␇, q␇큗␇, q␇큗␇, q␇큗␇, q␇큗␇);
+Test_N(q␇큘␇, q␇큘␇, q␇큘␇, q␇큘␇, q␇큘␇);
+Test_N(q␇큙␇, q␇큙␇, q␇큙␇, q␇큙␇, q␇큙␇);
+Test_N(q␇큚␇, q␇큚␇, q␇큚␇, q␇큚␇, q␇큚␇);
+Test_N(q␇큛␇, q␇큛␇, q␇큛␇, q␇큛␇, q␇큛␇);
+Test_N(q␇큜␇, q␇큜␇, q␇큜␇, q␇큜␇, q␇큜␇);
+Test_N(q␇큝␇, q␇큝␇, q␇큝␇, q␇큝␇, q␇큝␇);
+Test_N(q␇큞␇, q␇큞␇, q␇큞␇, q␇큞␇, q␇큞␇);
+Test_N(q␇큟␇, q␇큟␇, q␇큟␇, q␇큟␇, q␇큟␇);
+Test_N(q␇큠␇, q␇큠␇, q␇큠␇, q␇큠␇, q␇큠␇);
+Test_N(q␇큡␇, q␇큡␇, q␇큡␇, q␇큡␇, q␇큡␇);
+Test_N(q␇큢␇, q␇큢␇, q␇큢␇, q␇큢␇, q␇큢␇);
+Test_N(q␇큣␇, q␇큣␇, q␇큣␇, q␇큣␇, q␇큣␇);
+Test_N(q␇큤␇, q␇큤␇, q␇큤␇, q␇큤␇, q␇큤␇);
+Test_N(q␇큥␇, q␇큥␇, q␇큥␇, q␇큥␇, q␇큥␇);
+Test_N(q␇큦␇, q␇큦␇, q␇큦␇, q␇큦␇, q␇큦␇);
+Test_N(q␇큧␇, q␇큧␇, q␇큧␇, q␇큧␇, q␇큧␇);
+Test_N(q␇큨␇, q␇큨␇, q␇큨␇, q␇큨␇, q␇큨␇);
+Test_N(q␇큩␇, q␇큩␇, q␇큩␇, q␇큩␇, q␇큩␇);
+Test_N(q␇큪␇, q␇큪␇, q␇큪␇, q␇큪␇, q␇큪␇);
+Test_N(q␇큫␇, q␇큫␇, q␇큫␇, q␇큫␇, q␇큫␇);
+Test_N(q␇크␇, q␇크␇, q␇크␇, q␇크␇, q␇크␇);
+Test_N(q␇큭␇, q␇큭␇, q␇큭␇, q␇큭␇, q␇큭␇);
+Test_N(q␇큮␇, q␇큮␇, q␇큮␇, q␇큮␇, q␇큮␇);
+Test_N(q␇큯␇, q␇큯␇, q␇큯␇, q␇큯␇, q␇큯␇);
+Test_N(q␇큰␇, q␇큰␇, q␇큰␇, q␇큰␇, q␇큰␇);
+Test_N(q␇큱␇, q␇큱␇, q␇큱␇, q␇큱␇, q␇큱␇);
+Test_N(q␇큲␇, q␇큲␇, q␇큲␇, q␇큲␇, q␇큲␇);
+Test_N(q␇큳␇, q␇큳␇, q␇큳␇, q␇큳␇, q␇큳␇);
+Test_N(q␇클␇, q␇클␇, q␇클␇, q␇클␇, q␇클␇);
+Test_N(q␇큵␇, q␇큵␇, q␇큵␇, q␇큵␇, q␇큵␇);
+Test_N(q␇큶␇, q␇큶␇, q␇큶␇, q␇큶␇, q␇큶␇);
+Test_N(q␇큷␇, q␇큷␇, q␇큷␇, q␇큷␇, q␇큷␇);
+Test_N(q␇큸␇, q␇큸␇, q␇큸␇, q␇큸␇, q␇큸␇);
+Test_N(q␇큹␇, q␇큹␇, q␇큹␇, q␇큹␇, q␇큹␇);
+Test_N(q␇큺␇, q␇큺␇, q␇큺␇, q␇큺␇, q␇큺␇);
+Test_N(q␇큻␇, q␇큻␇, q␇큻␇, q␇큻␇, q␇큻␇);
+Test_N(q␇큼␇, q␇큼␇, q␇큼␇, q␇큼␇, q␇큼␇);
+Test_N(q␇큽␇, q␇큽␇, q␇큽␇, q␇큽␇, q␇큽␇);
+Test_N(q␇큾␇, q␇큾␇, q␇큾␇, q␇큾␇, q␇큾␇);
+Test_N(q␇큿␇, q␇큿␇, q␇큿␇, q␇큿␇, q␇큿␇);
+Test_N(q␇킀␇, q␇킀␇, q␇킀␇, q␇킀␇, q␇킀␇);
+Test_N(q␇킁␇, q␇킁␇, q␇킁␇, q␇킁␇, q␇킁␇);
+Test_N(q␇킂␇, q␇킂␇, q␇킂␇, q␇킂␇, q␇킂␇);
+Test_N(q␇킃␇, q␇킃␇, q␇킃␇, q␇킃␇, q␇킃␇);
+Test_N(q␇킄␇, q␇킄␇, q␇킄␇, q␇킄␇, q␇킄␇);
+Test_N(q␇킅␇, q␇킅␇, q␇킅␇, q␇킅␇, q␇킅␇);
+Test_N(q␇킆␇, q␇킆␇, q␇킆␇, q␇킆␇, q␇킆␇);
+Test_N(q␇킇␇, q␇킇␇, q␇킇␇, q␇킇␇, q␇킇␇);
+Test_N(q␇킈␇, q␇킈␇, q␇킈␇, q␇킈␇, q␇킈␇);
+Test_N(q␇킉␇, q␇킉␇, q␇킉␇, q␇킉␇, q␇킉␇);
+Test_N(q␇킊␇, q␇킊␇, q␇킊␇, q␇킊␇, q␇킊␇);
+Test_N(q␇킋␇, q␇킋␇, q␇킋␇, q␇킋␇, q␇킋␇);
+Test_N(q␇킌␇, q␇킌␇, q␇킌␇, q␇킌␇, q␇킌␇);
+Test_N(q␇킍␇, q␇킍␇, q␇킍␇, q␇킍␇, q␇킍␇);
+Test_N(q␇킎␇, q␇킎␇, q␇킎␇, q␇킎␇, q␇킎␇);
+Test_N(q␇킏␇, q␇킏␇, q␇킏␇, q␇킏␇, q␇킏␇);
+Test_N(q␇킐␇, q␇킐␇, q␇킐␇, q␇킐␇, q␇킐␇);
+Test_N(q␇킑␇, q␇킑␇, q␇킑␇, q␇킑␇, q␇킑␇);
+Test_N(q␇킒␇, q␇킒␇, q␇킒␇, q␇킒␇, q␇킒␇);
+Test_N(q␇킓␇, q␇킓␇, q␇킓␇, q␇킓␇, q␇킓␇);
+Test_N(q␇킔␇, q␇킔␇, q␇킔␇, q␇킔␇, q␇킔␇);
+Test_N(q␇킕␇, q␇킕␇, q␇킕␇, q␇킕␇, q␇킕␇);
+Test_N(q␇킖␇, q␇킖␇, q␇킖␇, q␇킖␇, q␇킖␇);
+Test_N(q␇킗␇, q␇킗␇, q␇킗␇, q␇킗␇, q␇킗␇);
+Test_N(q␇킘␇, q␇킘␇, q␇킘␇, q␇킘␇, q␇킘␇);
+Test_N(q␇킙␇, q␇킙␇, q␇킙␇, q␇킙␇, q␇킙␇);
+Test_N(q␇킚␇, q␇킚␇, q␇킚␇, q␇킚␇, q␇킚␇);
+Test_N(q␇킛␇, q␇킛␇, q␇킛␇, q␇킛␇, q␇킛␇);
+Test_N(q␇킜␇, q␇킜␇, q␇킜␇, q␇킜␇, q␇킜␇);
+Test_N(q␇킝␇, q␇킝␇, q␇킝␇, q␇킝␇, q␇킝␇);
+Test_N(q␇킞␇, q␇킞␇, q␇킞␇, q␇킞␇, q␇킞␇);
+Test_N(q␇킟␇, q␇킟␇, q␇킟␇, q␇킟␇, q␇킟␇);
+Test_N(q␇킠␇, q␇킠␇, q␇킠␇, q␇킠␇, q␇킠␇);
+Test_N(q␇킡␇, q␇킡␇, q␇킡␇, q␇킡␇, q␇킡␇);
+Test_N(q␇킢␇, q␇킢␇, q␇킢␇, q␇킢␇, q␇킢␇);
+Test_N(q␇킣␇, q␇킣␇, q␇킣␇, q␇킣␇, q␇킣␇);
+Test_N(q␇키␇, q␇키␇, q␇키␇, q␇키␇, q␇키␇);
+Test_N(q␇킥␇, q␇킥␇, q␇킥␇, q␇킥␇, q␇킥␇);
+Test_N(q␇킦␇, q␇킦␇, q␇킦␇, q␇킦␇, q␇킦␇);
+Test_N(q␇킧␇, q␇킧␇, q␇킧␇, q␇킧␇, q␇킧␇);
+Test_N(q␇킨␇, q␇킨␇, q␇킨␇, q␇킨␇, q␇킨␇);
+Test_N(q␇킩␇, q␇킩␇, q␇킩␇, q␇킩␇, q␇킩␇);
+Test_N(q␇킪␇, q␇킪␇, q␇킪␇, q␇킪␇, q␇킪␇);
+Test_N(q␇킫␇, q␇킫␇, q␇킫␇, q␇킫␇, q␇킫␇);
+Test_N(q␇킬␇, q␇킬␇, q␇킬␇, q␇킬␇, q␇킬␇);
+Test_N(q␇킭␇, q␇킭␇, q␇킭␇, q␇킭␇, q␇킭␇);
+Test_N(q␇킮␇, q␇킮␇, q␇킮␇, q␇킮␇, q␇킮␇);
+Test_N(q␇킯␇, q␇킯␇, q␇킯␇, q␇킯␇, q␇킯␇);
+Test_N(q␇킰␇, q␇킰␇, q␇킰␇, q␇킰␇, q␇킰␇);
+Test_N(q␇킱␇, q␇킱␇, q␇킱␇, q␇킱␇, q␇킱␇);
+Test_N(q␇킲␇, q␇킲␇, q␇킲␇, q␇킲␇, q␇킲␇);
+Test_N(q␇킳␇, q␇킳␇, q␇킳␇, q␇킳␇, q␇킳␇);
+Test_N(q␇킴␇, q␇킴␇, q␇킴␇, q␇킴␇, q␇킴␇);
+Test_N(q␇킵␇, q␇킵␇, q␇킵␇, q␇킵␇, q␇킵␇);
+Test_N(q␇킶␇, q␇킶␇, q␇킶␇, q␇킶␇, q␇킶␇);
+Test_N(q␇킷␇, q␇킷␇, q␇킷␇, q␇킷␇, q␇킷␇);
+Test_N(q␇킸␇, q␇킸␇, q␇킸␇, q␇킸␇, q␇킸␇);
+Test_N(q␇킹␇, q␇킹␇, q␇킹␇, q␇킹␇, q␇킹␇);
+Test_N(q␇킺␇, q␇킺␇, q␇킺␇, q␇킺␇, q␇킺␇);
+Test_N(q␇킻␇, q␇킻␇, q␇킻␇, q␇킻␇, q␇킻␇);
+Test_N(q␇킼␇, q␇킼␇, q␇킼␇, q␇킼␇, q␇킼␇);
+Test_N(q␇킽␇, q␇킽␇, q␇킽␇, q␇킽␇, q␇킽␇);
+Test_N(q␇킾␇, q␇킾␇, q␇킾␇, q␇킾␇, q␇킾␇);
+Test_N(q␇킿␇, q␇킿␇, q␇킿␇, q␇킿␇, q␇킿␇);
+Test_N(q␇타␇, q␇타␇, q␇타␇, q␇타␇, q␇타␇);
+Test_N(q␇탁␇, q␇탁␇, q␇탁␇, q␇탁␇, q␇탁␇);
+Test_N(q␇탂␇, q␇탂␇, q␇탂␇, q␇탂␇, q␇탂␇);
+Test_N(q␇탃␇, q␇탃␇, q␇탃␇, q␇탃␇, q␇탃␇);
+Test_N(q␇탄␇, q␇탄␇, q␇탄␇, q␇탄␇, q␇탄␇);
+Test_N(q␇탅␇, q␇탅␇, q␇탅␇, q␇탅␇, q␇탅␇);
+Test_N(q␇탆␇, q␇탆␇, q␇탆␇, q␇탆␇, q␇탆␇);
+Test_N(q␇탇␇, q␇탇␇, q␇탇␇, q␇탇␇, q␇탇␇);
+Test_N(q␇탈␇, q␇탈␇, q␇탈␇, q␇탈␇, q␇탈␇);
+Test_N(q␇탉␇, q␇탉␇, q␇탉␇, q␇탉␇, q␇탉␇);
+Test_N(q␇탊␇, q␇탊␇, q␇탊␇, q␇탊␇, q␇탊␇);
+Test_N(q␇탋␇, q␇탋␇, q␇탋␇, q␇탋␇, q␇탋␇);
+Test_N(q␇탌␇, q␇탌␇, q␇탌␇, q␇탌␇, q␇탌␇);
+Test_N(q␇탍␇, q␇탍␇, q␇탍␇, q␇탍␇, q␇탍␇);
+Test_N(q␇탎␇, q␇탎␇, q␇탎␇, q␇탎␇, q␇탎␇);
+Test_N(q␇탏␇, q␇탏␇, q␇탏␇, q␇탏␇, q␇탏␇);
+Test_N(q␇탐␇, q␇탐␇, q␇탐␇, q␇탐␇, q␇탐␇);
+Test_N(q␇탑␇, q␇탑␇, q␇탑␇, q␇탑␇, q␇탑␇);
+Test_N(q␇탒␇, q␇탒␇, q␇탒␇, q␇탒␇, q␇탒␇);
+Test_N(q␇탓␇, q␇탓␇, q␇탓␇, q␇탓␇, q␇탓␇);
+Test_N(q␇탔␇, q␇탔␇, q␇탔␇, q␇탔␇, q␇탔␇);
+Test_N(q␇탕␇, q␇탕␇, q␇탕␇, q␇탕␇, q␇탕␇);
+Test_N(q␇탖␇, q␇탖␇, q␇탖␇, q␇탖␇, q␇탖␇);
+Test_N(q␇탗␇, q␇탗␇, q␇탗␇, q␇탗␇, q␇탗␇);
+Test_N(q␇탘␇, q␇탘␇, q␇탘␇, q␇탘␇, q␇탘␇);
+Test_N(q␇탙␇, q␇탙␇, q␇탙␇, q␇탙␇, q␇탙␇);
+Test_N(q␇탚␇, q␇탚␇, q␇탚␇, q␇탚␇, q␇탚␇);
+Test_N(q␇탛␇, q␇탛␇, q␇탛␇, q␇탛␇, q␇탛␇);
+Test_N(q␇태␇, q␇태␇, q␇태␇, q␇태␇, q␇태␇);
+Test_N(q␇택␇, q␇택␇, q␇택␇, q␇택␇, q␇택␇);
+Test_N(q␇탞␇, q␇탞␇, q␇탞␇, q␇탞␇, q␇탞␇);
+Test_N(q␇탟␇, q␇탟␇, q␇탟␇, q␇탟␇, q␇탟␇);
+Test_N(q␇탠␇, q␇탠␇, q␇탠␇, q␇탠␇, q␇탠␇);
+Test_N(q␇탡␇, q␇탡␇, q␇탡␇, q␇탡␇, q␇탡␇);
+Test_N(q␇탢␇, q␇탢␇, q␇탢␇, q␇탢␇, q␇탢␇);
+Test_N(q␇탣␇, q␇탣␇, q␇탣␇, q␇탣␇, q␇탣␇);
+Test_N(q␇탤␇, q␇탤␇, q␇탤␇, q␇탤␇, q␇탤␇);
+Test_N(q␇탥␇, q␇탥␇, q␇탥␇, q␇탥␇, q␇탥␇);
+Test_N(q␇탦␇, q␇탦␇, q␇탦␇, q␇탦␇, q␇탦␇);
+Test_N(q␇탧␇, q␇탧␇, q␇탧␇, q␇탧␇, q␇탧␇);
+Test_N(q␇탨␇, q␇탨␇, q␇탨␇, q␇탨␇, q␇탨␇);
+Test_N(q␇탩␇, q␇탩␇, q␇탩␇, q␇탩␇, q␇탩␇);
+Test_N(q␇탪␇, q␇탪␇, q␇탪␇, q␇탪␇, q␇탪␇);
+Test_N(q␇탫␇, q␇탫␇, q␇탫␇, q␇탫␇, q␇탫␇);
+Test_N(q␇탬␇, q␇탬␇, q␇탬␇, q␇탬␇, q␇탬␇);
+Test_N(q␇탭␇, q␇탭␇, q␇탭␇, q␇탭␇, q␇탭␇);
+Test_N(q␇탮␇, q␇탮␇, q␇탮␇, q␇탮␇, q␇탮␇);
+Test_N(q␇탯␇, q␇탯␇, q␇탯␇, q␇탯␇, q␇탯␇);
+Test_N(q␇탰␇, q␇탰␇, q␇탰␇, q␇탰␇, q␇탰␇);
+Test_N(q␇탱␇, q␇탱␇, q␇탱␇, q␇탱␇, q␇탱␇);
+Test_N(q␇탲␇, q␇탲␇, q␇탲␇, q␇탲␇, q␇탲␇);
+Test_N(q␇탳␇, q␇탳␇, q␇탳␇, q␇탳␇, q␇탳␇);
+Test_N(q␇탴␇, q␇탴␇, q␇탴␇, q␇탴␇, q␇탴␇);
+Test_N(q␇탵␇, q␇탵␇, q␇탵␇, q␇탵␇, q␇탵␇);
+Test_N(q␇탶␇, q␇탶␇, q␇탶␇, q␇탶␇, q␇탶␇);
+Test_N(q␇탷␇, q␇탷␇, q␇탷␇, q␇탷␇, q␇탷␇);
+Test_N(q␇탸␇, q␇탸␇, q␇탸␇, q␇탸␇, q␇탸␇);
+Test_N(q␇탹␇, q␇탹␇, q␇탹␇, q␇탹␇, q␇탹␇);
+Test_N(q␇탺␇, q␇탺␇, q␇탺␇, q␇탺␇, q␇탺␇);
+Test_N(q␇탻␇, q␇탻␇, q␇탻␇, q␇탻␇, q␇탻␇);
+Test_N(q␇탼␇, q␇탼␇, q␇탼␇, q␇탼␇, q␇탼␇);
+Test_N(q␇탽␇, q␇탽␇, q␇탽␇, q␇탽␇, q␇탽␇);
+Test_N(q␇탾␇, q␇탾␇, q␇탾␇, q␇탾␇, q␇탾␇);
+Test_N(q␇탿␇, q␇탿␇, q␇탿␇, q␇탿␇, q␇탿␇);
+Test_N(q␇턀␇, q␇턀␇, q␇턀␇, q␇턀␇, q␇턀␇);
+Test_N(q␇턁␇, q␇턁␇, q␇턁␇, q␇턁␇, q␇턁␇);
+Test_N(q␇턂␇, q␇턂␇, q␇턂␇, q␇턂␇, q␇턂␇);
+Test_N(q␇턃␇, q␇턃␇, q␇턃␇, q␇턃␇, q␇턃␇);
+Test_N(q␇턄␇, q␇턄␇, q␇턄␇, q␇턄␇, q␇턄␇);
+Test_N(q␇턅␇, q␇턅␇, q␇턅␇, q␇턅␇, q␇턅␇);
+Test_N(q␇턆␇, q␇턆␇, q␇턆␇, q␇턆␇, q␇턆␇);
+Test_N(q␇턇␇, q␇턇␇, q␇턇␇, q␇턇␇, q␇턇␇);
+Test_N(q␇턈␇, q␇턈␇, q␇턈␇, q␇턈␇, q␇턈␇);
+Test_N(q␇턉␇, q␇턉␇, q␇턉␇, q␇턉␇, q␇턉␇);
+Test_N(q␇턊␇, q␇턊␇, q␇턊␇, q␇턊␇, q␇턊␇);
+Test_N(q␇턋␇, q␇턋␇, q␇턋␇, q␇턋␇, q␇턋␇);
+Test_N(q␇턌␇, q␇턌␇, q␇턌␇, q␇턌␇, q␇턌␇);
+Test_N(q␇턍␇, q␇턍␇, q␇턍␇, q␇턍␇, q␇턍␇);
+Test_N(q␇턎␇, q␇턎␇, q␇턎␇, q␇턎␇, q␇턎␇);
+Test_N(q␇턏␇, q␇턏␇, q␇턏␇, q␇턏␇, q␇턏␇);
+Test_N(q␇턐␇, q␇턐␇, q␇턐␇, q␇턐␇, q␇턐␇);
+Test_N(q␇턑␇, q␇턑␇, q␇턑␇, q␇턑␇, q␇턑␇);
+Test_N(q␇턒␇, q␇턒␇, q␇턒␇, q␇턒␇, q␇턒␇);
+Test_N(q␇턓␇, q␇턓␇, q␇턓␇, q␇턓␇, q␇턓␇);
+Test_N(q␇턔␇, q␇턔␇, q␇턔␇, q␇턔␇, q␇턔␇);
+Test_N(q␇턕␇, q␇턕␇, q␇턕␇, q␇턕␇, q␇턕␇);
+Test_N(q␇턖␇, q␇턖␇, q␇턖␇, q␇턖␇, q␇턖␇);
+Test_N(q␇턗␇, q␇턗␇, q␇턗␇, q␇턗␇, q␇턗␇);
+Test_N(q␇턘␇, q␇턘␇, q␇턘␇, q␇턘␇, q␇턘␇);
+Test_N(q␇턙␇, q␇턙␇, q␇턙␇, q␇턙␇, q␇턙␇);
+Test_N(q␇턚␇, q␇턚␇, q␇턚␇, q␇턚␇, q␇턚␇);
+Test_N(q␇턛␇, q␇턛␇, q␇턛␇, q␇턛␇, q␇턛␇);
+Test_N(q␇턜␇, q␇턜␇, q␇턜␇, q␇턜␇, q␇턜␇);
+Test_N(q␇턝␇, q␇턝␇, q␇턝␇, q␇턝␇, q␇턝␇);
+Test_N(q␇턞␇, q␇턞␇, q␇턞␇, q␇턞␇, q␇턞␇);
+Test_N(q␇턟␇, q␇턟␇, q␇턟␇, q␇턟␇, q␇턟␇);
+Test_N(q␇턠␇, q␇턠␇, q␇턠␇, q␇턠␇, q␇턠␇);
+Test_N(q␇턡␇, q␇턡␇, q␇턡␇, q␇턡␇, q␇턡␇);
+Test_N(q␇턢␇, q␇턢␇, q␇턢␇, q␇턢␇, q␇턢␇);
+Test_N(q␇턣␇, q␇턣␇, q␇턣␇, q␇턣␇, q␇턣␇);
+Test_N(q␇턤␇, q␇턤␇, q␇턤␇, q␇턤␇, q␇턤␇);
+Test_N(q␇턥␇, q␇턥␇, q␇턥␇, q␇턥␇, q␇턥␇);
+Test_N(q␇턦␇, q␇턦␇, q␇턦␇, q␇턦␇, q␇턦␇);
+Test_N(q␇턧␇, q␇턧␇, q␇턧␇, q␇턧␇, q␇턧␇);
+Test_N(q␇턨␇, q␇턨␇, q␇턨␇, q␇턨␇, q␇턨␇);
+Test_N(q␇턩␇, q␇턩␇, q␇턩␇, q␇턩␇, q␇턩␇);
+Test_N(q␇턪␇, q␇턪␇, q␇턪␇, q␇턪␇, q␇턪␇);
+Test_N(q␇턫␇, q␇턫␇, q␇턫␇, q␇턫␇, q␇턫␇);
+Test_N(q␇턬␇, q␇턬␇, q␇턬␇, q␇턬␇, q␇턬␇);
+Test_N(q␇턭␇, q␇턭␇, q␇턭␇, q␇턭␇, q␇턭␇);
+Test_N(q␇턮␇, q␇턮␇, q␇턮␇, q␇턮␇, q␇턮␇);
+Test_N(q␇턯␇, q␇턯␇, q␇턯␇, q␇턯␇, q␇턯␇);
+Test_N(q␇터␇, q␇터␇, q␇터␇, q␇터␇, q␇터␇);
+Test_N(q␇턱␇, q␇턱␇, q␇턱␇, q␇턱␇, q␇턱␇);
+Test_N(q␇턲␇, q␇턲␇, q␇턲␇, q␇턲␇, q␇턲␇);
+Test_N(q␇턳␇, q␇턳␇, q␇턳␇, q␇턳␇, q␇턳␇);
+Test_N(q␇턴␇, q␇턴␇, q␇턴␇, q␇턴␇, q␇턴␇);
+Test_N(q␇턵␇, q␇턵␇, q␇턵␇, q␇턵␇, q␇턵␇);
+Test_N(q␇턶␇, q␇턶␇, q␇턶␇, q␇턶␇, q␇턶␇);
+Test_N(q␇턷␇, q␇턷␇, q␇턷␇, q␇턷␇, q␇턷␇);
+Test_N(q␇털␇, q␇털␇, q␇털␇, q␇털␇, q␇털␇);
+Test_N(q␇턹␇, q␇턹␇, q␇턹␇, q␇턹␇, q␇턹␇);
+Test_N(q␇턺␇, q␇턺␇, q␇턺␇, q␇턺␇, q␇턺␇);
+Test_N(q␇턻␇, q␇턻␇, q␇턻␇, q␇턻␇, q␇턻␇);
+Test_N(q␇턼␇, q␇턼␇, q␇턼␇, q␇턼␇, q␇턼␇);
+Test_N(q␇턽␇, q␇턽␇, q␇턽␇, q␇턽␇, q␇턽␇);
+Test_N(q␇턾␇, q␇턾␇, q␇턾␇, q␇턾␇, q␇턾␇);
+Test_N(q␇턿␇, q␇턿␇, q␇턿␇, q␇턿␇, q␇턿␇);
+Test_N(q␇텀␇, q␇텀␇, q␇텀␇, q␇텀␇, q␇텀␇);
+Test_N(q␇텁␇, q␇텁␇, q␇텁␇, q␇텁␇, q␇텁␇);
+Test_N(q␇텂␇, q␇텂␇, q␇텂␇, q␇텂␇, q␇텂␇);
+Test_N(q␇텃␇, q␇텃␇, q␇텃␇, q␇텃␇, q␇텃␇);
+Test_N(q␇텄␇, q␇텄␇, q␇텄␇, q␇텄␇, q␇텄␇);
+Test_N(q␇텅␇, q␇텅␇, q␇텅␇, q␇텅␇, q␇텅␇);
+Test_N(q␇텆␇, q␇텆␇, q␇텆␇, q␇텆␇, q␇텆␇);
+Test_N(q␇텇␇, q␇텇␇, q␇텇␇, q␇텇␇, q␇텇␇);
+Test_N(q␇텈␇, q␇텈␇, q␇텈␇, q␇텈␇, q␇텈␇);
+Test_N(q␇텉␇, q␇텉␇, q␇텉␇, q␇텉␇, q␇텉␇);
+Test_N(q␇텊␇, q␇텊␇, q␇텊␇, q␇텊␇, q␇텊␇);
+Test_N(q␇텋␇, q␇텋␇, q␇텋␇, q␇텋␇, q␇텋␇);
+Test_N(q␇테␇, q␇테␇, q␇테␇, q␇테␇, q␇테␇);
+Test_N(q␇텍␇, q␇텍␇, q␇텍␇, q␇텍␇, q␇텍␇);
+Test_N(q␇텎␇, q␇텎␇, q␇텎␇, q␇텎␇, q␇텎␇);
+Test_N(q␇텏␇, q␇텏␇, q␇텏␇, q␇텏␇, q␇텏␇);
+Test_N(q␇텐␇, q␇텐␇, q␇텐␇, q␇텐␇, q␇텐␇);
+Test_N(q␇텑␇, q␇텑␇, q␇텑␇, q␇텑␇, q␇텑␇);
+Test_N(q␇텒␇, q␇텒␇, q␇텒␇, q␇텒␇, q␇텒␇);
+Test_N(q␇텓␇, q␇텓␇, q␇텓␇, q␇텓␇, q␇텓␇);
+Test_N(q␇텔␇, q␇텔␇, q␇텔␇, q␇텔␇, q␇텔␇);
+Test_N(q␇텕␇, q␇텕␇, q␇텕␇, q␇텕␇, q␇텕␇);
+Test_N(q␇텖␇, q␇텖␇, q␇텖␇, q␇텖␇, q␇텖␇);
+Test_N(q␇텗␇, q␇텗␇, q␇텗␇, q␇텗␇, q␇텗␇);
+Test_N(q␇텘␇, q␇텘␇, q␇텘␇, q␇텘␇, q␇텘␇);
+Test_N(q␇텙␇, q␇텙␇, q␇텙␇, q␇텙␇, q␇텙␇);
+Test_N(q␇텚␇, q␇텚␇, q␇텚␇, q␇텚␇, q␇텚␇);
+Test_N(q␇텛␇, q␇텛␇, q␇텛␇, q␇텛␇, q␇텛␇);
+Test_N(q␇템␇, q␇템␇, q␇템␇, q␇템␇, q␇템␇);
+Test_N(q␇텝␇, q␇텝␇, q␇텝␇, q␇텝␇, q␇텝␇);
+Test_N(q␇텞␇, q␇텞␇, q␇텞␇, q␇텞␇, q␇텞␇);
+Test_N(q␇텟␇, q␇텟␇, q␇텟␇, q␇텟␇, q␇텟␇);
+Test_N(q␇텠␇, q␇텠␇, q␇텠␇, q␇텠␇, q␇텠␇);
+Test_N(q␇텡␇, q␇텡␇, q␇텡␇, q␇텡␇, q␇텡␇);
+Test_N(q␇텢␇, q␇텢␇, q␇텢␇, q␇텢␇, q␇텢␇);
+Test_N(q␇텣␇, q␇텣␇, q␇텣␇, q␇텣␇, q␇텣␇);
+Test_N(q␇텤␇, q␇텤␇, q␇텤␇, q␇텤␇, q␇텤␇);
+Test_N(q␇텥␇, q␇텥␇, q␇텥␇, q␇텥␇, q␇텥␇);
+Test_N(q␇텦␇, q␇텦␇, q␇텦␇, q␇텦␇, q␇텦␇);
+Test_N(q␇텧␇, q␇텧␇, q␇텧␇, q␇텧␇, q␇텧␇);
+Test_N(q␇텨␇, q␇텨␇, q␇텨␇, q␇텨␇, q␇텨␇);
+Test_N(q␇텩␇, q␇텩␇, q␇텩␇, q␇텩␇, q␇텩␇);
+Test_N(q␇텪␇, q␇텪␇, q␇텪␇, q␇텪␇, q␇텪␇);
+Test_N(q␇텫␇, q␇텫␇, q␇텫␇, q␇텫␇, q␇텫␇);
+Test_N(q␇텬␇, q␇텬␇, q␇텬␇, q␇텬␇, q␇텬␇);
+Test_N(q␇텭␇, q␇텭␇, q␇텭␇, q␇텭␇, q␇텭␇);
+Test_N(q␇텮␇, q␇텮␇, q␇텮␇, q␇텮␇, q␇텮␇);
+Test_N(q␇텯␇, q␇텯␇, q␇텯␇, q␇텯␇, q␇텯␇);
+Test_N(q␇텰␇, q␇텰␇, q␇텰␇, q␇텰␇, q␇텰␇);
+Test_N(q␇텱␇, q␇텱␇, q␇텱␇, q␇텱␇, q␇텱␇);
+Test_N(q␇텲␇, q␇텲␇, q␇텲␇, q␇텲␇, q␇텲␇);
+Test_N(q␇텳␇, q␇텳␇, q␇텳␇, q␇텳␇, q␇텳␇);
+Test_N(q␇텴␇, q␇텴␇, q␇텴␇, q␇텴␇, q␇텴␇);
+Test_N(q␇텵␇, q␇텵␇, q␇텵␇, q␇텵␇, q␇텵␇);
+Test_N(q␇텶␇, q␇텶␇, q␇텶␇, q␇텶␇, q␇텶␇);
+Test_N(q␇텷␇, q␇텷␇, q␇텷␇, q␇텷␇, q␇텷␇);
+Test_N(q␇텸␇, q␇텸␇, q␇텸␇, q␇텸␇, q␇텸␇);
+Test_N(q␇텹␇, q␇텹␇, q␇텹␇, q␇텹␇, q␇텹␇);
+Test_N(q␇텺␇, q␇텺␇, q␇텺␇, q␇텺␇, q␇텺␇);
+Test_N(q␇텻␇, q␇텻␇, q␇텻␇, q␇텻␇, q␇텻␇);
+Test_N(q␇텼␇, q␇텼␇, q␇텼␇, q␇텼␇, q␇텼␇);
+Test_N(q␇텽␇, q␇텽␇, q␇텽␇, q␇텽␇, q␇텽␇);
+Test_N(q␇텾␇, q␇텾␇, q␇텾␇, q␇텾␇, q␇텾␇);
+Test_N(q␇텿␇, q␇텿␇, q␇텿␇, q␇텿␇, q␇텿␇);
+Test_N(q␇톀␇, q␇톀␇, q␇톀␇, q␇톀␇, q␇톀␇);
+Test_N(q␇톁␇, q␇톁␇, q␇톁␇, q␇톁␇, q␇톁␇);
+Test_N(q␇톂␇, q␇톂␇, q␇톂␇, q␇톂␇, q␇톂␇);
+Test_N(q␇톃␇, q␇톃␇, q␇톃␇, q␇톃␇, q␇톃␇);
+Test_N(q␇톄␇, q␇톄␇, q␇톄␇, q␇톄␇, q␇톄␇);
+Test_N(q␇톅␇, q␇톅␇, q␇톅␇, q␇톅␇, q␇톅␇);
+Test_N(q␇톆␇, q␇톆␇, q␇톆␇, q␇톆␇, q␇톆␇);
+Test_N(q␇톇␇, q␇톇␇, q␇톇␇, q␇톇␇, q␇톇␇);
+Test_N(q␇톈␇, q␇톈␇, q␇톈␇, q␇톈␇, q␇톈␇);
+Test_N(q␇톉␇, q␇톉␇, q␇톉␇, q␇톉␇, q␇톉␇);
+Test_N(q␇톊␇, q␇톊␇, q␇톊␇, q␇톊␇, q␇톊␇);
+Test_N(q␇톋␇, q␇톋␇, q␇톋␇, q␇톋␇, q␇톋␇);
+Test_N(q␇톌␇, q␇톌␇, q␇톌␇, q␇톌␇, q␇톌␇);
+Test_N(q␇톍␇, q␇톍␇, q␇톍␇, q␇톍␇, q␇톍␇);
+Test_N(q␇톎␇, q␇톎␇, q␇톎␇, q␇톎␇, q␇톎␇);
+Test_N(q␇톏␇, q␇톏␇, q␇톏␇, q␇톏␇, q␇톏␇);
+Test_N(q␇톐␇, q␇톐␇, q␇톐␇, q␇톐␇, q␇톐␇);
+Test_N(q␇톑␇, q␇톑␇, q␇톑␇, q␇톑␇, q␇톑␇);
+Test_N(q␇톒␇, q␇톒␇, q␇톒␇, q␇톒␇, q␇톒␇);
+Test_N(q␇톓␇, q␇톓␇, q␇톓␇, q␇톓␇, q␇톓␇);
+Test_N(q␇톔␇, q␇톔␇, q␇톔␇, q␇톔␇, q␇톔␇);
+Test_N(q␇톕␇, q␇톕␇, q␇톕␇, q␇톕␇, q␇톕␇);
+Test_N(q␇톖␇, q␇톖␇, q␇톖␇, q␇톖␇, q␇톖␇);
+Test_N(q␇톗␇, q␇톗␇, q␇톗␇, q␇톗␇, q␇톗␇);
+Test_N(q␇톘␇, q␇톘␇, q␇톘␇, q␇톘␇, q␇톘␇);
+Test_N(q␇톙␇, q␇톙␇, q␇톙␇, q␇톙␇, q␇톙␇);
+Test_N(q␇톚␇, q␇톚␇, q␇톚␇, q␇톚␇, q␇톚␇);
+Test_N(q␇톛␇, q␇톛␇, q␇톛␇, q␇톛␇, q␇톛␇);
+Test_N(q␇톜␇, q␇톜␇, q␇톜␇, q␇톜␇, q␇톜␇);
+Test_N(q␇톝␇, q␇톝␇, q␇톝␇, q␇톝␇, q␇톝␇);
+Test_N(q␇톞␇, q␇톞␇, q␇톞␇, q␇톞␇, q␇톞␇);
+Test_N(q␇톟␇, q␇톟␇, q␇톟␇, q␇톟␇, q␇톟␇);
+Test_N(q␇토␇, q␇토␇, q␇토␇, q␇토␇, q␇토␇);
+Test_N(q␇톡␇, q␇톡␇, q␇톡␇, q␇톡␇, q␇톡␇);
+Test_N(q␇톢␇, q␇톢␇, q␇톢␇, q␇톢␇, q␇톢␇);
+Test_N(q␇톣␇, q␇톣␇, q␇톣␇, q␇톣␇, q␇톣␇);
+Test_N(q␇톤␇, q␇톤␇, q␇톤␇, q␇톤␇, q␇톤␇);
+Test_N(q␇톥␇, q␇톥␇, q␇톥␇, q␇톥␇, q␇톥␇);
+Test_N(q␇톦␇, q␇톦␇, q␇톦␇, q␇톦␇, q␇톦␇);
+Test_N(q␇톧␇, q␇톧␇, q␇톧␇, q␇톧␇, q␇톧␇);
+Test_N(q␇톨␇, q␇톨␇, q␇톨␇, q␇톨␇, q␇톨␇);
+Test_N(q␇톩␇, q␇톩␇, q␇톩␇, q␇톩␇, q␇톩␇);
+Test_N(q␇톪␇, q␇톪␇, q␇톪␇, q␇톪␇, q␇톪␇);
+Test_N(q␇톫␇, q␇톫␇, q␇톫␇, q␇톫␇, q␇톫␇);
+Test_N(q␇톬␇, q␇톬␇, q␇톬␇, q␇톬␇, q␇톬␇);
+Test_N(q␇톭␇, q␇톭␇, q␇톭␇, q␇톭␇, q␇톭␇);
+Test_N(q␇톮␇, q␇톮␇, q␇톮␇, q␇톮␇, q␇톮␇);
+Test_N(q␇톯␇, q␇톯␇, q␇톯␇, q␇톯␇, q␇톯␇);
+Test_N(q␇톰␇, q␇톰␇, q␇톰␇, q␇톰␇, q␇톰␇);
+Test_N(q␇톱␇, q␇톱␇, q␇톱␇, q␇톱␇, q␇톱␇);
+Test_N(q␇톲␇, q␇톲␇, q␇톲␇, q␇톲␇, q␇톲␇);
+Test_N(q␇톳␇, q␇톳␇, q␇톳␇, q␇톳␇, q␇톳␇);
+Test_N(q␇톴␇, q␇톴␇, q␇톴␇, q␇톴␇, q␇톴␇);
+Test_N(q␇통␇, q␇통␇, q␇통␇, q␇통␇, q␇통␇);
+Test_N(q␇톶␇, q␇톶␇, q␇톶␇, q␇톶␇, q␇톶␇);
+Test_N(q␇톷␇, q␇톷␇, q␇톷␇, q␇톷␇, q␇톷␇);
+Test_N(q␇톸␇, q␇톸␇, q␇톸␇, q␇톸␇, q␇톸␇);
+Test_N(q␇톹␇, q␇톹␇, q␇톹␇, q␇톹␇, q␇톹␇);
+Test_N(q␇톺␇, q␇톺␇, q␇톺␇, q␇톺␇, q␇톺␇);
+Test_N(q␇톻␇, q␇톻␇, q␇톻␇, q␇톻␇, q␇톻␇);
+Test_N(q␇톼␇, q␇톼␇, q␇톼␇, q␇톼␇, q␇톼␇);
+Test_N(q␇톽␇, q␇톽␇, q␇톽␇, q␇톽␇, q␇톽␇);
+Test_N(q␇톾␇, q␇톾␇, q␇톾␇, q␇톾␇, q␇톾␇);
+Test_N(q␇톿␇, q␇톿␇, q␇톿␇, q␇톿␇, q␇톿␇);
+Test_N(q␇퇀␇, q␇퇀␇, q␇퇀␇, q␇퇀␇, q␇퇀␇);
+Test_N(q␇퇁␇, q␇퇁␇, q␇퇁␇, q␇퇁␇, q␇퇁␇);
+Test_N(q␇퇂␇, q␇퇂␇, q␇퇂␇, q␇퇂␇, q␇퇂␇);
+Test_N(q␇퇃␇, q␇퇃␇, q␇퇃␇, q␇퇃␇, q␇퇃␇);
+Test_N(q␇퇄␇, q␇퇄␇, q␇퇄␇, q␇퇄␇, q␇퇄␇);
+Test_N(q␇퇅␇, q␇퇅␇, q␇퇅␇, q␇퇅␇, q␇퇅␇);
+Test_N(q␇퇆␇, q␇퇆␇, q␇퇆␇, q␇퇆␇, q␇퇆␇);
+Test_N(q␇퇇␇, q␇퇇␇, q␇퇇␇, q␇퇇␇, q␇퇇␇);
+Test_N(q␇퇈␇, q␇퇈␇, q␇퇈␇, q␇퇈␇, q␇퇈␇);
+Test_N(q␇퇉␇, q␇퇉␇, q␇퇉␇, q␇퇉␇, q␇퇉␇);
+Test_N(q␇퇊␇, q␇퇊␇, q␇퇊␇, q␇퇊␇, q␇퇊␇);
+Test_N(q␇퇋␇, q␇퇋␇, q␇퇋␇, q␇퇋␇, q␇퇋␇);
+Test_N(q␇퇌␇, q␇퇌␇, q␇퇌␇, q␇퇌␇, q␇퇌␇);
+Test_N(q␇퇍␇, q␇퇍␇, q␇퇍␇, q␇퇍␇, q␇퇍␇);
+Test_N(q␇퇎␇, q␇퇎␇, q␇퇎␇, q␇퇎␇, q␇퇎␇);
+Test_N(q␇퇏␇, q␇퇏␇, q␇퇏␇, q␇퇏␇, q␇퇏␇);
+Test_N(q␇퇐␇, q␇퇐␇, q␇퇐␇, q␇퇐␇, q␇퇐␇);
+Test_N(q␇퇑␇, q␇퇑␇, q␇퇑␇, q␇퇑␇, q␇퇑␇);
+Test_N(q␇퇒␇, q␇퇒␇, q␇퇒␇, q␇퇒␇, q␇퇒␇);
+Test_N(q␇퇓␇, q␇퇓␇, q␇퇓␇, q␇퇓␇, q␇퇓␇);
+Test_N(q␇퇔␇, q␇퇔␇, q␇퇔␇, q␇퇔␇, q␇퇔␇);
+Test_N(q␇퇕␇, q␇퇕␇, q␇퇕␇, q␇퇕␇, q␇퇕␇);
+Test_N(q␇퇖␇, q␇퇖␇, q␇퇖␇, q␇퇖␇, q␇퇖␇);
+Test_N(q␇퇗␇, q␇퇗␇, q␇퇗␇, q␇퇗␇, q␇퇗␇);
+Test_N(q␇퇘␇, q␇퇘␇, q␇퇘␇, q␇퇘␇, q␇퇘␇);
+Test_N(q␇퇙␇, q␇퇙␇, q␇퇙␇, q␇퇙␇, q␇퇙␇);
+Test_N(q␇퇚␇, q␇퇚␇, q␇퇚␇, q␇퇚␇, q␇퇚␇);
+Test_N(q␇퇛␇, q␇퇛␇, q␇퇛␇, q␇퇛␇, q␇퇛␇);
+Test_N(q␇퇜␇, q␇퇜␇, q␇퇜␇, q␇퇜␇, q␇퇜␇);
+Test_N(q␇퇝␇, q␇퇝␇, q␇퇝␇, q␇퇝␇, q␇퇝␇);
+Test_N(q␇퇞␇, q␇퇞␇, q␇퇞␇, q␇퇞␇, q␇퇞␇);
+Test_N(q␇퇟␇, q␇퇟␇, q␇퇟␇, q␇퇟␇, q␇퇟␇);
+Test_N(q␇퇠␇, q␇퇠␇, q␇퇠␇, q␇퇠␇, q␇퇠␇);
+Test_N(q␇퇡␇, q␇퇡␇, q␇퇡␇, q␇퇡␇, q␇퇡␇);
+Test_N(q␇퇢␇, q␇퇢␇, q␇퇢␇, q␇퇢␇, q␇퇢␇);
+Test_N(q␇퇣␇, q␇퇣␇, q␇퇣␇, q␇퇣␇, q␇퇣␇);
+Test_N(q␇퇤␇, q␇퇤␇, q␇퇤␇, q␇퇤␇, q␇퇤␇);
+Test_N(q␇퇥␇, q␇퇥␇, q␇퇥␇, q␇퇥␇, q␇퇥␇);
+Test_N(q␇퇦␇, q␇퇦␇, q␇퇦␇, q␇퇦␇, q␇퇦␇);
+Test_N(q␇퇧␇, q␇퇧␇, q␇퇧␇, q␇퇧␇, q␇퇧␇);
+Test_N(q␇퇨␇, q␇퇨␇, q␇퇨␇, q␇퇨␇, q␇퇨␇);
+Test_N(q␇퇩␇, q␇퇩␇, q␇퇩␇, q␇퇩␇, q␇퇩␇);
+Test_N(q␇퇪␇, q␇퇪␇, q␇퇪␇, q␇퇪␇, q␇퇪␇);
+Test_N(q␇퇫␇, q␇퇫␇, q␇퇫␇, q␇퇫␇, q␇퇫␇);
+Test_N(q␇퇬␇, q␇퇬␇, q␇퇬␇, q␇퇬␇, q␇퇬␇);
+Test_N(q␇퇭␇, q␇퇭␇, q␇퇭␇, q␇퇭␇, q␇퇭␇);
+Test_N(q␇퇮␇, q␇퇮␇, q␇퇮␇, q␇퇮␇, q␇퇮␇);
+Test_N(q␇퇯␇, q␇퇯␇, q␇퇯␇, q␇퇯␇, q␇퇯␇);
+Test_N(q␇퇰␇, q␇퇰␇, q␇퇰␇, q␇퇰␇, q␇퇰␇);
+Test_N(q␇퇱␇, q␇퇱␇, q␇퇱␇, q␇퇱␇, q␇퇱␇);
+Test_N(q␇퇲␇, q␇퇲␇, q␇퇲␇, q␇퇲␇, q␇퇲␇);
+Test_N(q␇퇳␇, q␇퇳␇, q␇퇳␇, q␇퇳␇, q␇퇳␇);
+Test_N(q␇퇴␇, q␇퇴␇, q␇퇴␇, q␇퇴␇, q␇퇴␇);
+Test_N(q␇퇵␇, q␇퇵␇, q␇퇵␇, q␇퇵␇, q␇퇵␇);
+Test_N(q␇퇶␇, q␇퇶␇, q␇퇶␇, q␇퇶␇, q␇퇶␇);
+Test_N(q␇퇷␇, q␇퇷␇, q␇퇷␇, q␇퇷␇, q␇퇷␇);
+Test_N(q␇퇸␇, q␇퇸␇, q␇퇸␇, q␇퇸␇, q␇퇸␇);
+Test_N(q␇퇹␇, q␇퇹␇, q␇퇹␇, q␇퇹␇, q␇퇹␇);
+Test_N(q␇퇺␇, q␇퇺␇, q␇퇺␇, q␇퇺␇, q␇퇺␇);
+Test_N(q␇퇻␇, q␇퇻␇, q␇퇻␇, q␇퇻␇, q␇퇻␇);
+Test_N(q␇퇼␇, q␇퇼␇, q␇퇼␇, q␇퇼␇, q␇퇼␇);
+Test_N(q␇퇽␇, q␇퇽␇, q␇퇽␇, q␇퇽␇, q␇퇽␇);
+Test_N(q␇퇾␇, q␇퇾␇, q␇퇾␇, q␇퇾␇, q␇퇾␇);
+Test_N(q␇퇿␇, q␇퇿␇, q␇퇿␇, q␇퇿␇, q␇퇿␇);
+Test_N(q␇툀␇, q␇툀␇, q␇툀␇, q␇툀␇, q␇툀␇);
+Test_N(q␇툁␇, q␇툁␇, q␇툁␇, q␇툁␇, q␇툁␇);
+Test_N(q␇툂␇, q␇툂␇, q␇툂␇, q␇툂␇, q␇툂␇);
+Test_N(q␇툃␇, q␇툃␇, q␇툃␇, q␇툃␇, q␇툃␇);
+Test_N(q␇툄␇, q␇툄␇, q␇툄␇, q␇툄␇, q␇툄␇);
+Test_N(q␇툅␇, q␇툅␇, q␇툅␇, q␇툅␇, q␇툅␇);
+Test_N(q␇툆␇, q␇툆␇, q␇툆␇, q␇툆␇, q␇툆␇);
+Test_N(q␇툇␇, q␇툇␇, q␇툇␇, q␇툇␇, q␇툇␇);
+Test_N(q␇툈␇, q␇툈␇, q␇툈␇, q␇툈␇, q␇툈␇);
+Test_N(q␇툉␇, q␇툉␇, q␇툉␇, q␇툉␇, q␇툉␇);
+Test_N(q␇툊␇, q␇툊␇, q␇툊␇, q␇툊␇, q␇툊␇);
+Test_N(q␇툋␇, q␇툋␇, q␇툋␇, q␇툋␇, q␇툋␇);
+Test_N(q␇툌␇, q␇툌␇, q␇툌␇, q␇툌␇, q␇툌␇);
+Test_N(q␇툍␇, q␇툍␇, q␇툍␇, q␇툍␇, q␇툍␇);
+Test_N(q␇툎␇, q␇툎␇, q␇툎␇, q␇툎␇, q␇툎␇);
+Test_N(q␇툏␇, q␇툏␇, q␇툏␇, q␇툏␇, q␇툏␇);
+Test_N(q␇툐␇, q␇툐␇, q␇툐␇, q␇툐␇, q␇툐␇);
+Test_N(q␇툑␇, q␇툑␇, q␇툑␇, q␇툑␇, q␇툑␇);
+Test_N(q␇툒␇, q␇툒␇, q␇툒␇, q␇툒␇, q␇툒␇);
+Test_N(q␇툓␇, q␇툓␇, q␇툓␇, q␇툓␇, q␇툓␇);
+Test_N(q␇툔␇, q␇툔␇, q␇툔␇, q␇툔␇, q␇툔␇);
+Test_N(q␇툕␇, q␇툕␇, q␇툕␇, q␇툕␇, q␇툕␇);
+Test_N(q␇툖␇, q␇툖␇, q␇툖␇, q␇툖␇, q␇툖␇);
+Test_N(q␇툗␇, q␇툗␇, q␇툗␇, q␇툗␇, q␇툗␇);
+Test_N(q␇툘␇, q␇툘␇, q␇툘␇, q␇툘␇, q␇툘␇);
+Test_N(q␇툙␇, q␇툙␇, q␇툙␇, q␇툙␇, q␇툙␇);
+Test_N(q␇툚␇, q␇툚␇, q␇툚␇, q␇툚␇, q␇툚␇);
+Test_N(q␇툛␇, q␇툛␇, q␇툛␇, q␇툛␇, q␇툛␇);
+Test_N(q␇툜␇, q␇툜␇, q␇툜␇, q␇툜␇, q␇툜␇);
+Test_N(q␇툝␇, q␇툝␇, q␇툝␇, q␇툝␇, q␇툝␇);
+Test_N(q␇툞␇, q␇툞␇, q␇툞␇, q␇툞␇, q␇툞␇);
+Test_N(q␇툟␇, q␇툟␇, q␇툟␇, q␇툟␇, q␇툟␇);
+Test_N(q␇툠␇, q␇툠␇, q␇툠␇, q␇툠␇, q␇툠␇);
+Test_N(q␇툡␇, q␇툡␇, q␇툡␇, q␇툡␇, q␇툡␇);
+Test_N(q␇툢␇, q␇툢␇, q␇툢␇, q␇툢␇, q␇툢␇);
+Test_N(q␇툣␇, q␇툣␇, q␇툣␇, q␇툣␇, q␇툣␇);
+Test_N(q␇툤␇, q␇툤␇, q␇툤␇, q␇툤␇, q␇툤␇);
+Test_N(q␇툥␇, q␇툥␇, q␇툥␇, q␇툥␇, q␇툥␇);
+Test_N(q␇툦␇, q␇툦␇, q␇툦␇, q␇툦␇, q␇툦␇);
+Test_N(q␇툧␇, q␇툧␇, q␇툧␇, q␇툧␇, q␇툧␇);
+Test_N(q␇툨␇, q␇툨␇, q␇툨␇, q␇툨␇, q␇툨␇);
+Test_N(q␇툩␇, q␇툩␇, q␇툩␇, q␇툩␇, q␇툩␇);
+Test_N(q␇툪␇, q␇툪␇, q␇툪␇, q␇툪␇, q␇툪␇);
+Test_N(q␇툫␇, q␇툫␇, q␇툫␇, q␇툫␇, q␇툫␇);
+Test_N(q␇투␇, q␇투␇, q␇투␇, q␇투␇, q␇투␇);
+Test_N(q␇툭␇, q␇툭␇, q␇툭␇, q␇툭␇, q␇툭␇);
+Test_N(q␇툮␇, q␇툮␇, q␇툮␇, q␇툮␇, q␇툮␇);
+Test_N(q␇툯␇, q␇툯␇, q␇툯␇, q␇툯␇, q␇툯␇);
+Test_N(q␇툰␇, q␇툰␇, q␇툰␇, q␇툰␇, q␇툰␇);
+Test_N(q␇툱␇, q␇툱␇, q␇툱␇, q␇툱␇, q␇툱␇);
+Test_N(q␇툲␇, q␇툲␇, q␇툲␇, q␇툲␇, q␇툲␇);
+Test_N(q␇툳␇, q␇툳␇, q␇툳␇, q␇툳␇, q␇툳␇);
+Test_N(q␇툴␇, q␇툴␇, q␇툴␇, q␇툴␇, q␇툴␇);
+Test_N(q␇툵␇, q␇툵␇, q␇툵␇, q␇툵␇, q␇툵␇);
+Test_N(q␇툶␇, q␇툶␇, q␇툶␇, q␇툶␇, q␇툶␇);
+Test_N(q␇툷␇, q␇툷␇, q␇툷␇, q␇툷␇, q␇툷␇);
+Test_N(q␇툸␇, q␇툸␇, q␇툸␇, q␇툸␇, q␇툸␇);
+Test_N(q␇툹␇, q␇툹␇, q␇툹␇, q␇툹␇, q␇툹␇);
+Test_N(q␇툺␇, q␇툺␇, q␇툺␇, q␇툺␇, q␇툺␇);
+Test_N(q␇툻␇, q␇툻␇, q␇툻␇, q␇툻␇, q␇툻␇);
+Test_N(q␇툼␇, q␇툼␇, q␇툼␇, q␇툼␇, q␇툼␇);
+Test_N(q␇툽␇, q␇툽␇, q␇툽␇, q␇툽␇, q␇툽␇);
+Test_N(q␇툾␇, q␇툾␇, q␇툾␇, q␇툾␇, q␇툾␇);
+Test_N(q␇툿␇, q␇툿␇, q␇툿␇, q␇툿␇, q␇툿␇);
+Test_N(q␇퉀␇, q␇퉀␇, q␇퉀␇, q␇퉀␇, q␇퉀␇);
+Test_N(q␇퉁␇, q␇퉁␇, q␇퉁␇, q␇퉁␇, q␇퉁␇);
+Test_N(q␇퉂␇, q␇퉂␇, q␇퉂␇, q␇퉂␇, q␇퉂␇);
+Test_N(q␇퉃␇, q␇퉃␇, q␇퉃␇, q␇퉃␇, q␇퉃␇);
+Test_N(q␇퉄␇, q␇퉄␇, q␇퉄␇, q␇퉄␇, q␇퉄␇);
+Test_N(q␇퉅␇, q␇퉅␇, q␇퉅␇, q␇퉅␇, q␇퉅␇);
+Test_N(q␇퉆␇, q␇퉆␇, q␇퉆␇, q␇퉆␇, q␇퉆␇);
+Test_N(q␇퉇␇, q␇퉇␇, q␇퉇␇, q␇퉇␇, q␇퉇␇);
+Test_N(q␇퉈␇, q␇퉈␇, q␇퉈␇, q␇퉈␇, q␇퉈␇);
+Test_N(q␇퉉␇, q␇퉉␇, q␇퉉␇, q␇퉉␇, q␇퉉␇);
+Test_N(q␇퉊␇, q␇퉊␇, q␇퉊␇, q␇퉊␇, q␇퉊␇);
+Test_N(q␇퉋␇, q␇퉋␇, q␇퉋␇, q␇퉋␇, q␇퉋␇);
+Test_N(q␇퉌␇, q␇퉌␇, q␇퉌␇, q␇퉌␇, q␇퉌␇);
+Test_N(q␇퉍␇, q␇퉍␇, q␇퉍␇, q␇퉍␇, q␇퉍␇);
+Test_N(q␇퉎␇, q␇퉎␇, q␇퉎␇, q␇퉎␇, q␇퉎␇);
+Test_N(q␇퉏␇, q␇퉏␇, q␇퉏␇, q␇퉏␇, q␇퉏␇);
+Test_N(q␇퉐␇, q␇퉐␇, q␇퉐␇, q␇퉐␇, q␇퉐␇);
+Test_N(q␇퉑␇, q␇퉑␇, q␇퉑␇, q␇퉑␇, q␇퉑␇);
+Test_N(q␇퉒␇, q␇퉒␇, q␇퉒␇, q␇퉒␇, q␇퉒␇);
+Test_N(q␇퉓␇, q␇퉓␇, q␇퉓␇, q␇퉓␇, q␇퉓␇);
+Test_N(q␇퉔␇, q␇퉔␇, q␇퉔␇, q␇퉔␇, q␇퉔␇);
+Test_N(q␇퉕␇, q␇퉕␇, q␇퉕␇, q␇퉕␇, q␇퉕␇);
+Test_N(q␇퉖␇, q␇퉖␇, q␇퉖␇, q␇퉖␇, q␇퉖␇);
+Test_N(q␇퉗␇, q␇퉗␇, q␇퉗␇, q␇퉗␇, q␇퉗␇);
+Test_N(q␇퉘␇, q␇퉘␇, q␇퉘␇, q␇퉘␇, q␇퉘␇);
+Test_N(q␇퉙␇, q␇퉙␇, q␇퉙␇, q␇퉙␇, q␇퉙␇);
+Test_N(q␇퉚␇, q␇퉚␇, q␇퉚␇, q␇퉚␇, q␇퉚␇);
+Test_N(q␇퉛␇, q␇퉛␇, q␇퉛␇, q␇퉛␇, q␇퉛␇);
+Test_N(q␇퉜␇, q␇퉜␇, q␇퉜␇, q␇퉜␇, q␇퉜␇);
+Test_N(q␇퉝␇, q␇퉝␇, q␇퉝␇, q␇퉝␇, q␇퉝␇);
+Test_N(q␇퉞␇, q␇퉞␇, q␇퉞␇, q␇퉞␇, q␇퉞␇);
+Test_N(q␇퉟␇, q␇퉟␇, q␇퉟␇, q␇퉟␇, q␇퉟␇);
+Test_N(q␇퉠␇, q␇퉠␇, q␇퉠␇, q␇퉠␇, q␇퉠␇);
+Test_N(q␇퉡␇, q␇퉡␇, q␇퉡␇, q␇퉡␇, q␇퉡␇);
+Test_N(q␇퉢␇, q␇퉢␇, q␇퉢␇, q␇퉢␇, q␇퉢␇);
+Test_N(q␇퉣␇, q␇퉣␇, q␇퉣␇, q␇퉣␇, q␇퉣␇);
+Test_N(q␇퉤␇, q␇퉤␇, q␇퉤␇, q␇퉤␇, q␇퉤␇);
+Test_N(q␇퉥␇, q␇퉥␇, q␇퉥␇, q␇퉥␇, q␇퉥␇);
+Test_N(q␇퉦␇, q␇퉦␇, q␇퉦␇, q␇퉦␇, q␇퉦␇);
+Test_N(q␇퉧␇, q␇퉧␇, q␇퉧␇, q␇퉧␇, q␇퉧␇);
+Test_N(q␇퉨␇, q␇퉨␇, q␇퉨␇, q␇퉨␇, q␇퉨␇);
+Test_N(q␇퉩␇, q␇퉩␇, q␇퉩␇, q␇퉩␇, q␇퉩␇);
+Test_N(q␇퉪␇, q␇퉪␇, q␇퉪␇, q␇퉪␇, q␇퉪␇);
+Test_N(q␇퉫␇, q␇퉫␇, q␇퉫␇, q␇퉫␇, q␇퉫␇);
+Test_N(q␇퉬␇, q␇퉬␇, q␇퉬␇, q␇퉬␇, q␇퉬␇);
+Test_N(q␇퉭␇, q␇퉭␇, q␇퉭␇, q␇퉭␇, q␇퉭␇);
+Test_N(q␇퉮␇, q␇퉮␇, q␇퉮␇, q␇퉮␇, q␇퉮␇);
+Test_N(q␇퉯␇, q␇퉯␇, q␇퉯␇, q␇퉯␇, q␇퉯␇);
+Test_N(q␇퉰␇, q␇퉰␇, q␇퉰␇, q␇퉰␇, q␇퉰␇);
+Test_N(q␇퉱␇, q␇퉱␇, q␇퉱␇, q␇퉱␇, q␇퉱␇);
+Test_N(q␇퉲␇, q␇퉲␇, q␇퉲␇, q␇퉲␇, q␇퉲␇);
+Test_N(q␇퉳␇, q␇퉳␇, q␇퉳␇, q␇퉳␇, q␇퉳␇);
+Test_N(q␇퉴␇, q␇퉴␇, q␇퉴␇, q␇퉴␇, q␇퉴␇);
+Test_N(q␇퉵␇, q␇퉵␇, q␇퉵␇, q␇퉵␇, q␇퉵␇);
+Test_N(q␇퉶␇, q␇퉶␇, q␇퉶␇, q␇퉶␇, q␇퉶␇);
+Test_N(q␇퉷␇, q␇퉷␇, q␇퉷␇, q␇퉷␇, q␇퉷␇);
+Test_N(q␇퉸␇, q␇퉸␇, q␇퉸␇, q␇퉸␇, q␇퉸␇);
+Test_N(q␇퉹␇, q␇퉹␇, q␇퉹␇, q␇퉹␇, q␇퉹␇);
+Test_N(q␇퉺␇, q␇퉺␇, q␇퉺␇, q␇퉺␇, q␇퉺␇);
+Test_N(q␇퉻␇, q␇퉻␇, q␇퉻␇, q␇퉻␇, q␇퉻␇);
+Test_N(q␇퉼␇, q␇퉼␇, q␇퉼␇, q␇퉼␇, q␇퉼␇);
+Test_N(q␇퉽␇, q␇퉽␇, q␇퉽␇, q␇퉽␇, q␇퉽␇);
+Test_N(q␇퉾␇, q␇퉾␇, q␇퉾␇, q␇퉾␇, q␇퉾␇);
+Test_N(q␇퉿␇, q␇퉿␇, q␇퉿␇, q␇퉿␇, q␇퉿␇);
+Test_N(q␇튀␇, q␇튀␇, q␇튀␇, q␇튀␇, q␇튀␇);
+Test_N(q␇튁␇, q␇튁␇, q␇튁␇, q␇튁␇, q␇튁␇);
+Test_N(q␇튂␇, q␇튂␇, q␇튂␇, q␇튂␇, q␇튂␇);
+Test_N(q␇튃␇, q␇튃␇, q␇튃␇, q␇튃␇, q␇튃␇);
+Test_N(q␇튄␇, q␇튄␇, q␇튄␇, q␇튄␇, q␇튄␇);
+Test_N(q␇튅␇, q␇튅␇, q␇튅␇, q␇튅␇, q␇튅␇);
+Test_N(q␇튆␇, q␇튆␇, q␇튆␇, q␇튆␇, q␇튆␇);
+Test_N(q␇튇␇, q␇튇␇, q␇튇␇, q␇튇␇, q␇튇␇);
+Test_N(q␇튈␇, q␇튈␇, q␇튈␇, q␇튈␇, q␇튈␇);
+Test_N(q␇튉␇, q␇튉␇, q␇튉␇, q␇튉␇, q␇튉␇);
+Test_N(q␇튊␇, q␇튊␇, q␇튊␇, q␇튊␇, q␇튊␇);
+Test_N(q␇튋␇, q␇튋␇, q␇튋␇, q␇튋␇, q␇튋␇);
+Test_N(q␇튌␇, q␇튌␇, q␇튌␇, q␇튌␇, q␇튌␇);
+Test_N(q␇튍␇, q␇튍␇, q␇튍␇, q␇튍␇, q␇튍␇);
+Test_N(q␇튎␇, q␇튎␇, q␇튎␇, q␇튎␇, q␇튎␇);
+Test_N(q␇튏␇, q␇튏␇, q␇튏␇, q␇튏␇, q␇튏␇);
+Test_N(q␇튐␇, q␇튐␇, q␇튐␇, q␇튐␇, q␇튐␇);
+Test_N(q␇튑␇, q␇튑␇, q␇튑␇, q␇튑␇, q␇튑␇);
+Test_N(q␇튒␇, q␇튒␇, q␇튒␇, q␇튒␇, q␇튒␇);
+Test_N(q␇튓␇, q␇튓␇, q␇튓␇, q␇튓␇, q␇튓␇);
+Test_N(q␇튔␇, q␇튔␇, q␇튔␇, q␇튔␇, q␇튔␇);
+Test_N(q␇튕␇, q␇튕␇, q␇튕␇, q␇튕␇, q␇튕␇);
+Test_N(q␇튖␇, q␇튖␇, q␇튖␇, q␇튖␇, q␇튖␇);
+Test_N(q␇튗␇, q␇튗␇, q␇튗␇, q␇튗␇, q␇튗␇);
+Test_N(q␇튘␇, q␇튘␇, q␇튘␇, q␇튘␇, q␇튘␇);
+Test_N(q␇튙␇, q␇튙␇, q␇튙␇, q␇튙␇, q␇튙␇);
+Test_N(q␇튚␇, q␇튚␇, q␇튚␇, q␇튚␇, q␇튚␇);
+Test_N(q␇튛␇, q␇튛␇, q␇튛␇, q␇튛␇, q␇튛␇);
+Test_N(q␇튜␇, q␇튜␇, q␇튜␇, q␇튜␇, q␇튜␇);
+Test_N(q␇튝␇, q␇튝␇, q␇튝␇, q␇튝␇, q␇튝␇);
+Test_N(q␇튞␇, q␇튞␇, q␇튞␇, q␇튞␇, q␇튞␇);
+Test_N(q␇튟␇, q␇튟␇, q␇튟␇, q␇튟␇, q␇튟␇);
+Test_N(q␇튠␇, q␇튠␇, q␇튠␇, q␇튠␇, q␇튠␇);
+Test_N(q␇튡␇, q␇튡␇, q␇튡␇, q␇튡␇, q␇튡␇);
+Test_N(q␇튢␇, q␇튢␇, q␇튢␇, q␇튢␇, q␇튢␇);
+Test_N(q␇튣␇, q␇튣␇, q␇튣␇, q␇튣␇, q␇튣␇);
+Test_N(q␇튤␇, q␇튤␇, q␇튤␇, q␇튤␇, q␇튤␇);
+Test_N(q␇튥␇, q␇튥␇, q␇튥␇, q␇튥␇, q␇튥␇);
+Test_N(q␇튦␇, q␇튦␇, q␇튦␇, q␇튦␇, q␇튦␇);
+Test_N(q␇튧␇, q␇튧␇, q␇튧␇, q␇튧␇, q␇튧␇);
+Test_N(q␇튨␇, q␇튨␇, q␇튨␇, q␇튨␇, q␇튨␇);
+Test_N(q␇튩␇, q␇튩␇, q␇튩␇, q␇튩␇, q␇튩␇);
+Test_N(q␇튪␇, q␇튪␇, q␇튪␇, q␇튪␇, q␇튪␇);
+Test_N(q␇튫␇, q␇튫␇, q␇튫␇, q␇튫␇, q␇튫␇);
+Test_N(q␇튬␇, q␇튬␇, q␇튬␇, q␇튬␇, q␇튬␇);
+Test_N(q␇튭␇, q␇튭␇, q␇튭␇, q␇튭␇, q␇튭␇);
+Test_N(q␇튮␇, q␇튮␇, q␇튮␇, q␇튮␇, q␇튮␇);
+Test_N(q␇튯␇, q␇튯␇, q␇튯␇, q␇튯␇, q␇튯␇);
+Test_N(q␇튰␇, q␇튰␇, q␇튰␇, q␇튰␇, q␇튰␇);
+Test_N(q␇튱␇, q␇튱␇, q␇튱␇, q␇튱␇, q␇튱␇);
+Test_N(q␇튲␇, q␇튲␇, q␇튲␇, q␇튲␇, q␇튲␇);
+Test_N(q␇튳␇, q␇튳␇, q␇튳␇, q␇튳␇, q␇튳␇);
+Test_N(q␇튴␇, q␇튴␇, q␇튴␇, q␇튴␇, q␇튴␇);
+Test_N(q␇튵␇, q␇튵␇, q␇튵␇, q␇튵␇, q␇튵␇);
+Test_N(q␇튶␇, q␇튶␇, q␇튶␇, q␇튶␇, q␇튶␇);
+Test_N(q␇튷␇, q␇튷␇, q␇튷␇, q␇튷␇, q␇튷␇);
+Test_N(q␇트␇, q␇트␇, q␇트␇, q␇트␇, q␇트␇);
+Test_N(q␇특␇, q␇특␇, q␇특␇, q␇특␇, q␇특␇);
+Test_N(q␇튺␇, q␇튺␇, q␇튺␇, q␇튺␇, q␇튺␇);
+Test_N(q␇튻␇, q␇튻␇, q␇튻␇, q␇튻␇, q␇튻␇);
+Test_N(q␇튼␇, q␇튼␇, q␇튼␇, q␇튼␇, q␇튼␇);
+Test_N(q␇튽␇, q␇튽␇, q␇튽␇, q␇튽␇, q␇튽␇);
+Test_N(q␇튾␇, q␇튾␇, q␇튾␇, q␇튾␇, q␇튾␇);
+Test_N(q␇튿␇, q␇튿␇, q␇튿␇, q␇튿␇, q␇튿␇);
+Test_N(q␇틀␇, q␇틀␇, q␇틀␇, q␇틀␇, q␇틀␇);
+Test_N(q␇틁␇, q␇틁␇, q␇틁␇, q␇틁␇, q␇틁␇);
+Test_N(q␇틂␇, q␇틂␇, q␇틂␇, q␇틂␇, q␇틂␇);
+Test_N(q␇틃␇, q␇틃␇, q␇틃␇, q␇틃␇, q␇틃␇);
+Test_N(q␇틄␇, q␇틄␇, q␇틄␇, q␇틄␇, q␇틄␇);
+Test_N(q␇틅␇, q␇틅␇, q␇틅␇, q␇틅␇, q␇틅␇);
+Test_N(q␇틆␇, q␇틆␇, q␇틆␇, q␇틆␇, q␇틆␇);
+Test_N(q␇틇␇, q␇틇␇, q␇틇␇, q␇틇␇, q␇틇␇);
+Test_N(q␇틈␇, q␇틈␇, q␇틈␇, q␇틈␇, q␇틈␇);
+Test_N(q␇틉␇, q␇틉␇, q␇틉␇, q␇틉␇, q␇틉␇);
+Test_N(q␇틊␇, q␇틊␇, q␇틊␇, q␇틊␇, q␇틊␇);
+Test_N(q␇틋␇, q␇틋␇, q␇틋␇, q␇틋␇, q␇틋␇);
+Test_N(q␇틌␇, q␇틌␇, q␇틌␇, q␇틌␇, q␇틌␇);
+Test_N(q␇틍␇, q␇틍␇, q␇틍␇, q␇틍␇, q␇틍␇);
+Test_N(q␇틎␇, q␇틎␇, q␇틎␇, q␇틎␇, q␇틎␇);
+Test_N(q␇틏␇, q␇틏␇, q␇틏␇, q␇틏␇, q␇틏␇);
+Test_N(q␇틐␇, q␇틐␇, q␇틐␇, q␇틐␇, q␇틐␇);
+Test_N(q␇틑␇, q␇틑␇, q␇틑␇, q␇틑␇, q␇틑␇);
+Test_N(q␇틒␇, q␇틒␇, q␇틒␇, q␇틒␇, q␇틒␇);
+Test_N(q␇틓␇, q␇틓␇, q␇틓␇, q␇틓␇, q␇틓␇);
+Test_N(q␇틔␇, q␇틔␇, q␇틔␇, q␇틔␇, q␇틔␇);
+Test_N(q␇틕␇, q␇틕␇, q␇틕␇, q␇틕␇, q␇틕␇);
+Test_N(q␇틖␇, q␇틖␇, q␇틖␇, q␇틖␇, q␇틖␇);
+Test_N(q␇틗␇, q␇틗␇, q␇틗␇, q␇틗␇, q␇틗␇);
+Test_N(q␇틘␇, q␇틘␇, q␇틘␇, q␇틘␇, q␇틘␇);
+Test_N(q␇틙␇, q␇틙␇, q␇틙␇, q␇틙␇, q␇틙␇);
+Test_N(q␇틚␇, q␇틚␇, q␇틚␇, q␇틚␇, q␇틚␇);
+Test_N(q␇틛␇, q␇틛␇, q␇틛␇, q␇틛␇, q␇틛␇);
+Test_N(q␇틜␇, q␇틜␇, q␇틜␇, q␇틜␇, q␇틜␇);
+Test_N(q␇틝␇, q␇틝␇, q␇틝␇, q␇틝␇, q␇틝␇);
+Test_N(q␇틞␇, q␇틞␇, q␇틞␇, q␇틞␇, q␇틞␇);
+Test_N(q␇틟␇, q␇틟␇, q␇틟␇, q␇틟␇, q␇틟␇);
+Test_N(q␇틠␇, q␇틠␇, q␇틠␇, q␇틠␇, q␇틠␇);
+Test_N(q␇틡␇, q␇틡␇, q␇틡␇, q␇틡␇, q␇틡␇);
+Test_N(q␇틢␇, q␇틢␇, q␇틢␇, q␇틢␇, q␇틢␇);
+Test_N(q␇틣␇, q␇틣␇, q␇틣␇, q␇틣␇, q␇틣␇);
+Test_N(q␇틤␇, q␇틤␇, q␇틤␇, q␇틤␇, q␇틤␇);
+Test_N(q␇틥␇, q␇틥␇, q␇틥␇, q␇틥␇, q␇틥␇);
+Test_N(q␇틦␇, q␇틦␇, q␇틦␇, q␇틦␇, q␇틦␇);
+Test_N(q␇틧␇, q␇틧␇, q␇틧␇, q␇틧␇, q␇틧␇);
+Test_N(q␇틨␇, q␇틨␇, q␇틨␇, q␇틨␇, q␇틨␇);
+Test_N(q␇틩␇, q␇틩␇, q␇틩␇, q␇틩␇, q␇틩␇);
+Test_N(q␇틪␇, q␇틪␇, q␇틪␇, q␇틪␇, q␇틪␇);
+Test_N(q␇틫␇, q␇틫␇, q␇틫␇, q␇틫␇, q␇틫␇);
+Test_N(q␇틬␇, q␇틬␇, q␇틬␇, q␇틬␇, q␇틬␇);
+Test_N(q␇틭␇, q␇틭␇, q␇틭␇, q␇틭␇, q␇틭␇);
+Test_N(q␇틮␇, q␇틮␇, q␇틮␇, q␇틮␇, q␇틮␇);
+Test_N(q␇틯␇, q␇틯␇, q␇틯␇, q␇틯␇, q␇틯␇);
+Test_N(q␇티␇, q␇티␇, q␇티␇, q␇티␇, q␇티␇);
+Test_N(q␇틱␇, q␇틱␇, q␇틱␇, q␇틱␇, q␇틱␇);
+Test_N(q␇틲␇, q␇틲␇, q␇틲␇, q␇틲␇, q␇틲␇);
+Test_N(q␇틳␇, q␇틳␇, q␇틳␇, q␇틳␇, q␇틳␇);
+Test_N(q␇틴␇, q␇틴␇, q␇틴␇, q␇틴␇, q␇틴␇);
+Test_N(q␇틵␇, q␇틵␇, q␇틵␇, q␇틵␇, q␇틵␇);
+Test_N(q␇틶␇, q␇틶␇, q␇틶␇, q␇틶␇, q␇틶␇);
+Test_N(q␇틷␇, q␇틷␇, q␇틷␇, q␇틷␇, q␇틷␇);
+Test_N(q␇틸␇, q␇틸␇, q␇틸␇, q␇틸␇, q␇틸␇);
+Test_N(q␇틹␇, q␇틹␇, q␇틹␇, q␇틹␇, q␇틹␇);
+Test_N(q␇틺␇, q␇틺␇, q␇틺␇, q␇틺␇, q␇틺␇);
+Test_N(q␇틻␇, q␇틻␇, q␇틻␇, q␇틻␇, q␇틻␇);
+Test_N(q␇틼␇, q␇틼␇, q␇틼␇, q␇틼␇, q␇틼␇);
+Test_N(q␇틽␇, q␇틽␇, q␇틽␇, q␇틽␇, q␇틽␇);
+Test_N(q␇틾␇, q␇틾␇, q␇틾␇, q␇틾␇, q␇틾␇);
+Test_N(q␇틿␇, q␇틿␇, q␇틿␇, q␇틿␇, q␇틿␇);
+Test_N(q␇팀␇, q␇팀␇, q␇팀␇, q␇팀␇, q␇팀␇);
+Test_N(q␇팁␇, q␇팁␇, q␇팁␇, q␇팁␇, q␇팁␇);
+Test_N(q␇팂␇, q␇팂␇, q␇팂␇, q␇팂␇, q␇팂␇);
+Test_N(q␇팃␇, q␇팃␇, q␇팃␇, q␇팃␇, q␇팃␇);
+Test_N(q␇팄␇, q␇팄␇, q␇팄␇, q␇팄␇, q␇팄␇);
+Test_N(q␇팅␇, q␇팅␇, q␇팅␇, q␇팅␇, q␇팅␇);
+Test_N(q␇팆␇, q␇팆␇, q␇팆␇, q␇팆␇, q␇팆␇);
+Test_N(q␇팇␇, q␇팇␇, q␇팇␇, q␇팇␇, q␇팇␇);
+Test_N(q␇팈␇, q␇팈␇, q␇팈␇, q␇팈␇, q␇팈␇);
+Test_N(q␇팉␇, q␇팉␇, q␇팉␇, q␇팉␇, q␇팉␇);
+Test_N(q␇팊␇, q␇팊␇, q␇팊␇, q␇팊␇, q␇팊␇);
+Test_N(q␇팋␇, q␇팋␇, q␇팋␇, q␇팋␇, q␇팋␇);
+Test_N(q␇파␇, q␇파␇, q␇파␇, q␇파␇, q␇파␇);
+Test_N(q␇팍␇, q␇팍␇, q␇팍␇, q␇팍␇, q␇팍␇);
+Test_N(q␇팎␇, q␇팎␇, q␇팎␇, q␇팎␇, q␇팎␇);
+Test_N(q␇팏␇, q␇팏␇, q␇팏␇, q␇팏␇, q␇팏␇);
+Test_N(q␇판␇, q␇판␇, q␇판␇, q␇판␇, q␇판␇);
+Test_N(q␇팑␇, q␇팑␇, q␇팑␇, q␇팑␇, q␇팑␇);
+Test_N(q␇팒␇, q␇팒␇, q␇팒␇, q␇팒␇, q␇팒␇);
+Test_N(q␇팓␇, q␇팓␇, q␇팓␇, q␇팓␇, q␇팓␇);
+Test_N(q␇팔␇, q␇팔␇, q␇팔␇, q␇팔␇, q␇팔␇);
+Test_N(q␇팕␇, q␇팕␇, q␇팕␇, q␇팕␇, q␇팕␇);
+Test_N(q␇팖␇, q␇팖␇, q␇팖␇, q␇팖␇, q␇팖␇);
+Test_N(q␇팗␇, q␇팗␇, q␇팗␇, q␇팗␇, q␇팗␇);
+Test_N(q␇팘␇, q␇팘␇, q␇팘␇, q␇팘␇, q␇팘␇);
+Test_N(q␇팙␇, q␇팙␇, q␇팙␇, q␇팙␇, q␇팙␇);
+Test_N(q␇팚␇, q␇팚␇, q␇팚␇, q␇팚␇, q␇팚␇);
+Test_N(q␇팛␇, q␇팛␇, q␇팛␇, q␇팛␇, q␇팛␇);
+Test_N(q␇팜␇, q␇팜␇, q␇팜␇, q␇팜␇, q␇팜␇);
+Test_N(q␇팝␇, q␇팝␇, q␇팝␇, q␇팝␇, q␇팝␇);
+Test_N(q␇팞␇, q␇팞␇, q␇팞␇, q␇팞␇, q␇팞␇);
+Test_N(q␇팟␇, q␇팟␇, q␇팟␇, q␇팟␇, q␇팟␇);
+Test_N(q␇팠␇, q␇팠␇, q␇팠␇, q␇팠␇, q␇팠␇);
+Test_N(q␇팡␇, q␇팡␇, q␇팡␇, q␇팡␇, q␇팡␇);
+Test_N(q␇팢␇, q␇팢␇, q␇팢␇, q␇팢␇, q␇팢␇);
+Test_N(q␇팣␇, q␇팣␇, q␇팣␇, q␇팣␇, q␇팣␇);
+Test_N(q␇팤␇, q␇팤␇, q␇팤␇, q␇팤␇, q␇팤␇);
+Test_N(q␇팥␇, q␇팥␇, q␇팥␇, q␇팥␇, q␇팥␇);
+Test_N(q␇팦␇, q␇팦␇, q␇팦␇, q␇팦␇, q␇팦␇);
+Test_N(q␇팧␇, q␇팧␇, q␇팧␇, q␇팧␇, q␇팧␇);
+Test_N(q␇패␇, q␇패␇, q␇패␇, q␇패␇, q␇패␇);
+Test_N(q␇팩␇, q␇팩␇, q␇팩␇, q␇팩␇, q␇팩␇);
+Test_N(q␇팪␇, q␇팪␇, q␇팪␇, q␇팪␇, q␇팪␇);
+Test_N(q␇팫␇, q␇팫␇, q␇팫␇, q␇팫␇, q␇팫␇);
+Test_N(q␇팬␇, q␇팬␇, q␇팬␇, q␇팬␇, q␇팬␇);
+Test_N(q␇팭␇, q␇팭␇, q␇팭␇, q␇팭␇, q␇팭␇);
+Test_N(q␇팮␇, q␇팮␇, q␇팮␇, q␇팮␇, q␇팮␇);
+Test_N(q␇팯␇, q␇팯␇, q␇팯␇, q␇팯␇, q␇팯␇);
+Test_N(q␇팰␇, q␇팰␇, q␇팰␇, q␇팰␇, q␇팰␇);
+Test_N(q␇팱␇, q␇팱␇, q␇팱␇, q␇팱␇, q␇팱␇);
+Test_N(q␇팲␇, q␇팲␇, q␇팲␇, q␇팲␇, q␇팲␇);
+Test_N(q␇팳␇, q␇팳␇, q␇팳␇, q␇팳␇, q␇팳␇);
+Test_N(q␇팴␇, q␇팴␇, q␇팴␇, q␇팴␇, q␇팴␇);
+Test_N(q␇팵␇, q␇팵␇, q␇팵␇, q␇팵␇, q␇팵␇);
+Test_N(q␇팶␇, q␇팶␇, q␇팶␇, q␇팶␇, q␇팶␇);
+Test_N(q␇팷␇, q␇팷␇, q␇팷␇, q␇팷␇, q␇팷␇);
+Test_N(q␇팸␇, q␇팸␇, q␇팸␇, q␇팸␇, q␇팸␇);
+Test_N(q␇팹␇, q␇팹␇, q␇팹␇, q␇팹␇, q␇팹␇);
+Test_N(q␇팺␇, q␇팺␇, q␇팺␇, q␇팺␇, q␇팺␇);
+Test_N(q␇팻␇, q␇팻␇, q␇팻␇, q␇팻␇, q␇팻␇);
+Test_N(q␇팼␇, q␇팼␇, q␇팼␇, q␇팼␇, q␇팼␇);
+Test_N(q␇팽␇, q␇팽␇, q␇팽␇, q␇팽␇, q␇팽␇);
+Test_N(q␇팾␇, q␇팾␇, q␇팾␇, q␇팾␇, q␇팾␇);
+Test_N(q␇팿␇, q␇팿␇, q␇팿␇, q␇팿␇, q␇팿␇);
+Test_N(q␇퍀␇, q␇퍀␇, q␇퍀␇, q␇퍀␇, q␇퍀␇);
+Test_N(q␇퍁␇, q␇퍁␇, q␇퍁␇, q␇퍁␇, q␇퍁␇);
+Test_N(q␇퍂␇, q␇퍂␇, q␇퍂␇, q␇퍂␇, q␇퍂␇);
+Test_N(q␇퍃␇, q␇퍃␇, q␇퍃␇, q␇퍃␇, q␇퍃␇);
+Test_N(q␇퍄␇, q␇퍄␇, q␇퍄␇, q␇퍄␇, q␇퍄␇);
+Test_N(q␇퍅␇, q␇퍅␇, q␇퍅␇, q␇퍅␇, q␇퍅␇);
+Test_N(q␇퍆␇, q␇퍆␇, q␇퍆␇, q␇퍆␇, q␇퍆␇);
+Test_N(q␇퍇␇, q␇퍇␇, q␇퍇␇, q␇퍇␇, q␇퍇␇);
+Test_N(q␇퍈␇, q␇퍈␇, q␇퍈␇, q␇퍈␇, q␇퍈␇);
+Test_N(q␇퍉␇, q␇퍉␇, q␇퍉␇, q␇퍉␇, q␇퍉␇);
+Test_N(q␇퍊␇, q␇퍊␇, q␇퍊␇, q␇퍊␇, q␇퍊␇);
+Test_N(q␇퍋␇, q␇퍋␇, q␇퍋␇, q␇퍋␇, q␇퍋␇);
+Test_N(q␇퍌␇, q␇퍌␇, q␇퍌␇, q␇퍌␇, q␇퍌␇);
+Test_N(q␇퍍␇, q␇퍍␇, q␇퍍␇, q␇퍍␇, q␇퍍␇);
+Test_N(q␇퍎␇, q␇퍎␇, q␇퍎␇, q␇퍎␇, q␇퍎␇);
+Test_N(q␇퍏␇, q␇퍏␇, q␇퍏␇, q␇퍏␇, q␇퍏␇);
+Test_N(q␇퍐␇, q␇퍐␇, q␇퍐␇, q␇퍐␇, q␇퍐␇);
+Test_N(q␇퍑␇, q␇퍑␇, q␇퍑␇, q␇퍑␇, q␇퍑␇);
+Test_N(q␇퍒␇, q␇퍒␇, q␇퍒␇, q␇퍒␇, q␇퍒␇);
+Test_N(q␇퍓␇, q␇퍓␇, q␇퍓␇, q␇퍓␇, q␇퍓␇);
+Test_N(q␇퍔␇, q␇퍔␇, q␇퍔␇, q␇퍔␇, q␇퍔␇);
+Test_N(q␇퍕␇, q␇퍕␇, q␇퍕␇, q␇퍕␇, q␇퍕␇);
+Test_N(q␇퍖␇, q␇퍖␇, q␇퍖␇, q␇퍖␇, q␇퍖␇);
+Test_N(q␇퍗␇, q␇퍗␇, q␇퍗␇, q␇퍗␇, q␇퍗␇);
+Test_N(q␇퍘␇, q␇퍘␇, q␇퍘␇, q␇퍘␇, q␇퍘␇);
+Test_N(q␇퍙␇, q␇퍙␇, q␇퍙␇, q␇퍙␇, q␇퍙␇);
+Test_N(q␇퍚␇, q␇퍚␇, q␇퍚␇, q␇퍚␇, q␇퍚␇);
+Test_N(q␇퍛␇, q␇퍛␇, q␇퍛␇, q␇퍛␇, q␇퍛␇);
+Test_N(q␇퍜␇, q␇퍜␇, q␇퍜␇, q␇퍜␇, q␇퍜␇);
+Test_N(q␇퍝␇, q␇퍝␇, q␇퍝␇, q␇퍝␇, q␇퍝␇);
+Test_N(q␇퍞␇, q␇퍞␇, q␇퍞␇, q␇퍞␇, q␇퍞␇);
+Test_N(q␇퍟␇, q␇퍟␇, q␇퍟␇, q␇퍟␇, q␇퍟␇);
+Test_N(q␇퍠␇, q␇퍠␇, q␇퍠␇, q␇퍠␇, q␇퍠␇);
+Test_N(q␇퍡␇, q␇퍡␇, q␇퍡␇, q␇퍡␇, q␇퍡␇);
+Test_N(q␇퍢␇, q␇퍢␇, q␇퍢␇, q␇퍢␇, q␇퍢␇);
+Test_N(q␇퍣␇, q␇퍣␇, q␇퍣␇, q␇퍣␇, q␇퍣␇);
+Test_N(q␇퍤␇, q␇퍤␇, q␇퍤␇, q␇퍤␇, q␇퍤␇);
+Test_N(q␇퍥␇, q␇퍥␇, q␇퍥␇, q␇퍥␇, q␇퍥␇);
+Test_N(q␇퍦␇, q␇퍦␇, q␇퍦␇, q␇퍦␇, q␇퍦␇);
+Test_N(q␇퍧␇, q␇퍧␇, q␇퍧␇, q␇퍧␇, q␇퍧␇);
+Test_N(q␇퍨␇, q␇퍨␇, q␇퍨␇, q␇퍨␇, q␇퍨␇);
+Test_N(q␇퍩␇, q␇퍩␇, q␇퍩␇, q␇퍩␇, q␇퍩␇);
+Test_N(q␇퍪␇, q␇퍪␇, q␇퍪␇, q␇퍪␇, q␇퍪␇);
+Test_N(q␇퍫␇, q␇퍫␇, q␇퍫␇, q␇퍫␇, q␇퍫␇);
+Test_N(q␇퍬␇, q␇퍬␇, q␇퍬␇, q␇퍬␇, q␇퍬␇);
+Test_N(q␇퍭␇, q␇퍭␇, q␇퍭␇, q␇퍭␇, q␇퍭␇);
+Test_N(q␇퍮␇, q␇퍮␇, q␇퍮␇, q␇퍮␇, q␇퍮␇);
+Test_N(q␇퍯␇, q␇퍯␇, q␇퍯␇, q␇퍯␇, q␇퍯␇);
+Test_N(q␇퍰␇, q␇퍰␇, q␇퍰␇, q␇퍰␇, q␇퍰␇);
+Test_N(q␇퍱␇, q␇퍱␇, q␇퍱␇, q␇퍱␇, q␇퍱␇);
+Test_N(q␇퍲␇, q␇퍲␇, q␇퍲␇, q␇퍲␇, q␇퍲␇);
+Test_N(q␇퍳␇, q␇퍳␇, q␇퍳␇, q␇퍳␇, q␇퍳␇);
+Test_N(q␇퍴␇, q␇퍴␇, q␇퍴␇, q␇퍴␇, q␇퍴␇);
+Test_N(q␇퍵␇, q␇퍵␇, q␇퍵␇, q␇퍵␇, q␇퍵␇);
+Test_N(q␇퍶␇, q␇퍶␇, q␇퍶␇, q␇퍶␇, q␇퍶␇);
+Test_N(q␇퍷␇, q␇퍷␇, q␇퍷␇, q␇퍷␇, q␇퍷␇);
+Test_N(q␇퍸␇, q␇퍸␇, q␇퍸␇, q␇퍸␇, q␇퍸␇);
+Test_N(q␇퍹␇, q␇퍹␇, q␇퍹␇, q␇퍹␇, q␇퍹␇);
+Test_N(q␇퍺␇, q␇퍺␇, q␇퍺␇, q␇퍺␇, q␇퍺␇);
+Test_N(q␇퍻␇, q␇퍻␇, q␇퍻␇, q␇퍻␇, q␇퍻␇);
+Test_N(q␇퍼␇, q␇퍼␇, q␇퍼␇, q␇퍼␇, q␇퍼␇);
+Test_N(q␇퍽␇, q␇퍽␇, q␇퍽␇, q␇퍽␇, q␇퍽␇);
+Test_N(q␇퍾␇, q␇퍾␇, q␇퍾␇, q␇퍾␇, q␇퍾␇);
+Test_N(q␇퍿␇, q␇퍿␇, q␇퍿␇, q␇퍿␇, q␇퍿␇);
+Test_N(q␇펀␇, q␇펀␇, q␇펀␇, q␇펀␇, q␇펀␇);
+Test_N(q␇펁␇, q␇펁␇, q␇펁␇, q␇펁␇, q␇펁␇);
+Test_N(q␇펂␇, q␇펂␇, q␇펂␇, q␇펂␇, q␇펂␇);
+Test_N(q␇펃␇, q␇펃␇, q␇펃␇, q␇펃␇, q␇펃␇);
+Test_N(q␇펄␇, q␇펄␇, q␇펄␇, q␇펄␇, q␇펄␇);
+Test_N(q␇펅␇, q␇펅␇, q␇펅␇, q␇펅␇, q␇펅␇);
+Test_N(q␇펆␇, q␇펆␇, q␇펆␇, q␇펆␇, q␇펆␇);
+Test_N(q␇펇␇, q␇펇␇, q␇펇␇, q␇펇␇, q␇펇␇);
+Test_N(q␇펈␇, q␇펈␇, q␇펈␇, q␇펈␇, q␇펈␇);
+Test_N(q␇펉␇, q␇펉␇, q␇펉␇, q␇펉␇, q␇펉␇);
+Test_N(q␇펊␇, q␇펊␇, q␇펊␇, q␇펊␇, q␇펊␇);
+Test_N(q␇펋␇, q␇펋␇, q␇펋␇, q␇펋␇, q␇펋␇);
+Test_N(q␇펌␇, q␇펌␇, q␇펌␇, q␇펌␇, q␇펌␇);
+Test_N(q␇펍␇, q␇펍␇, q␇펍␇, q␇펍␇, q␇펍␇);
+Test_N(q␇펎␇, q␇펎␇, q␇펎␇, q␇펎␇, q␇펎␇);
+Test_N(q␇펏␇, q␇펏␇, q␇펏␇, q␇펏␇, q␇펏␇);
+Test_N(q␇펐␇, q␇펐␇, q␇펐␇, q␇펐␇, q␇펐␇);
+Test_N(q␇펑␇, q␇펑␇, q␇펑␇, q␇펑␇, q␇펑␇);
+Test_N(q␇펒␇, q␇펒␇, q␇펒␇, q␇펒␇, q␇펒␇);
+Test_N(q␇펓␇, q␇펓␇, q␇펓␇, q␇펓␇, q␇펓␇);
+Test_N(q␇펔␇, q␇펔␇, q␇펔␇, q␇펔␇, q␇펔␇);
+Test_N(q␇펕␇, q␇펕␇, q␇펕␇, q␇펕␇, q␇펕␇);
+Test_N(q␇펖␇, q␇펖␇, q␇펖␇, q␇펖␇, q␇펖␇);
+Test_N(q␇펗␇, q␇펗␇, q␇펗␇, q␇펗␇, q␇펗␇);
+Test_N(q␇페␇, q␇페␇, q␇페␇, q␇페␇, q␇페␇);
+Test_N(q␇펙␇, q␇펙␇, q␇펙␇, q␇펙␇, q␇펙␇);
+Test_N(q␇펚␇, q␇펚␇, q␇펚␇, q␇펚␇, q␇펚␇);
+Test_N(q␇펛␇, q␇펛␇, q␇펛␇, q␇펛␇, q␇펛␇);
+Test_N(q␇펜␇, q␇펜␇, q␇펜␇, q␇펜␇, q␇펜␇);
+Test_N(q␇펝␇, q␇펝␇, q␇펝␇, q␇펝␇, q␇펝␇);
+Test_N(q␇펞␇, q␇펞␇, q␇펞␇, q␇펞␇, q␇펞␇);
+Test_N(q␇펟␇, q␇펟␇, q␇펟␇, q␇펟␇, q␇펟␇);
+Test_N(q␇펠␇, q␇펠␇, q␇펠␇, q␇펠␇, q␇펠␇);
+Test_N(q␇펡␇, q␇펡␇, q␇펡␇, q␇펡␇, q␇펡␇);
+Test_N(q␇펢␇, q␇펢␇, q␇펢␇, q␇펢␇, q␇펢␇);
+Test_N(q␇펣␇, q␇펣␇, q␇펣␇, q␇펣␇, q␇펣␇);
+Test_N(q␇펤␇, q␇펤␇, q␇펤␇, q␇펤␇, q␇펤␇);
+Test_N(q␇펥␇, q␇펥␇, q␇펥␇, q␇펥␇, q␇펥␇);
+Test_N(q␇펦␇, q␇펦␇, q␇펦␇, q␇펦␇, q␇펦␇);
+Test_N(q␇펧␇, q␇펧␇, q␇펧␇, q␇펧␇, q␇펧␇);
+Test_N(q␇펨␇, q␇펨␇, q␇펨␇, q␇펨␇, q␇펨␇);
+Test_N(q␇펩␇, q␇펩␇, q␇펩␇, q␇펩␇, q␇펩␇);
+Test_N(q␇펪␇, q␇펪␇, q␇펪␇, q␇펪␇, q␇펪␇);
+Test_N(q␇펫␇, q␇펫␇, q␇펫␇, q␇펫␇, q␇펫␇);
+Test_N(q␇펬␇, q␇펬␇, q␇펬␇, q␇펬␇, q␇펬␇);
+Test_N(q␇펭␇, q␇펭␇, q␇펭␇, q␇펭␇, q␇펭␇);
+Test_N(q␇펮␇, q␇펮␇, q␇펮␇, q␇펮␇, q␇펮␇);
+Test_N(q␇펯␇, q␇펯␇, q␇펯␇, q␇펯␇, q␇펯␇);
+Test_N(q␇펰␇, q␇펰␇, q␇펰␇, q␇펰␇, q␇펰␇);
+Test_N(q␇펱␇, q␇펱␇, q␇펱␇, q␇펱␇, q␇펱␇);
+Test_N(q␇펲␇, q␇펲␇, q␇펲␇, q␇펲␇, q␇펲␇);
+Test_N(q␇펳␇, q␇펳␇, q␇펳␇, q␇펳␇, q␇펳␇);
+Test_N(q␇펴␇, q␇펴␇, q␇펴␇, q␇펴␇, q␇펴␇);
+Test_N(q␇펵␇, q␇펵␇, q␇펵␇, q␇펵␇, q␇펵␇);
+Test_N(q␇펶␇, q␇펶␇, q␇펶␇, q␇펶␇, q␇펶␇);
+Test_N(q␇펷␇, q␇펷␇, q␇펷␇, q␇펷␇, q␇펷␇);
+Test_N(q␇편␇, q␇편␇, q␇편␇, q␇편␇, q␇편␇);
+Test_N(q␇펹␇, q␇펹␇, q␇펹␇, q␇펹␇, q␇펹␇);
+Test_N(q␇펺␇, q␇펺␇, q␇펺␇, q␇펺␇, q␇펺␇);
+Test_N(q␇펻␇, q␇펻␇, q␇펻␇, q␇펻␇, q␇펻␇);
+Test_N(q␇펼␇, q␇펼␇, q␇펼␇, q␇펼␇, q␇펼␇);
+Test_N(q␇펽␇, q␇펽␇, q␇펽␇, q␇펽␇, q␇펽␇);
+Test_N(q␇펾␇, q␇펾␇, q␇펾␇, q␇펾␇, q␇펾␇);
+Test_N(q␇펿␇, q␇펿␇, q␇펿␇, q␇펿␇, q␇펿␇);
+Test_N(q␇폀␇, q␇폀␇, q␇폀␇, q␇폀␇, q␇폀␇);
+Test_N(q␇폁␇, q␇폁␇, q␇폁␇, q␇폁␇, q␇폁␇);
+Test_N(q␇폂␇, q␇폂␇, q␇폂␇, q␇폂␇, q␇폂␇);
+Test_N(q␇폃␇, q␇폃␇, q␇폃␇, q␇폃␇, q␇폃␇);
+Test_N(q␇폄␇, q␇폄␇, q␇폄␇, q␇폄␇, q␇폄␇);
+Test_N(q␇폅␇, q␇폅␇, q␇폅␇, q␇폅␇, q␇폅␇);
+Test_N(q␇폆␇, q␇폆␇, q␇폆␇, q␇폆␇, q␇폆␇);
+Test_N(q␇폇␇, q␇폇␇, q␇폇␇, q␇폇␇, q␇폇␇);
+Test_N(q␇폈␇, q␇폈␇, q␇폈␇, q␇폈␇, q␇폈␇);
+Test_N(q␇평␇, q␇평␇, q␇평␇, q␇평␇, q␇평␇);
+Test_N(q␇폊␇, q␇폊␇, q␇폊␇, q␇폊␇, q␇폊␇);
+Test_N(q␇폋␇, q␇폋␇, q␇폋␇, q␇폋␇, q␇폋␇);
+Test_N(q␇폌␇, q␇폌␇, q␇폌␇, q␇폌␇, q␇폌␇);
+Test_N(q␇폍␇, q␇폍␇, q␇폍␇, q␇폍␇, q␇폍␇);
+Test_N(q␇폎␇, q␇폎␇, q␇폎␇, q␇폎␇, q␇폎␇);
+Test_N(q␇폏␇, q␇폏␇, q␇폏␇, q␇폏␇, q␇폏␇);
+Test_N(q␇폐␇, q␇폐␇, q␇폐␇, q␇폐␇, q␇폐␇);
+Test_N(q␇폑␇, q␇폑␇, q␇폑␇, q␇폑␇, q␇폑␇);
+Test_N(q␇폒␇, q␇폒␇, q␇폒␇, q␇폒␇, q␇폒␇);
+Test_N(q␇폓␇, q␇폓␇, q␇폓␇, q␇폓␇, q␇폓␇);
+Test_N(q␇폔␇, q␇폔␇, q␇폔␇, q␇폔␇, q␇폔␇);
+Test_N(q␇폕␇, q␇폕␇, q␇폕␇, q␇폕␇, q␇폕␇);
+Test_N(q␇폖␇, q␇폖␇, q␇폖␇, q␇폖␇, q␇폖␇);
+Test_N(q␇폗␇, q␇폗␇, q␇폗␇, q␇폗␇, q␇폗␇);
+Test_N(q␇폘␇, q␇폘␇, q␇폘␇, q␇폘␇, q␇폘␇);
+Test_N(q␇폙␇, q␇폙␇, q␇폙␇, q␇폙␇, q␇폙␇);
+Test_N(q␇폚␇, q␇폚␇, q␇폚␇, q␇폚␇, q␇폚␇);
+Test_N(q␇폛␇, q␇폛␇, q␇폛␇, q␇폛␇, q␇폛␇);
+Test_N(q␇폜␇, q␇폜␇, q␇폜␇, q␇폜␇, q␇폜␇);
+Test_N(q␇폝␇, q␇폝␇, q␇폝␇, q␇폝␇, q␇폝␇);
+Test_N(q␇폞␇, q␇폞␇, q␇폞␇, q␇폞␇, q␇폞␇);
+Test_N(q␇폟␇, q␇폟␇, q␇폟␇, q␇폟␇, q␇폟␇);
+Test_N(q␇폠␇, q␇폠␇, q␇폠␇, q␇폠␇, q␇폠␇);
+Test_N(q␇폡␇, q␇폡␇, q␇폡␇, q␇폡␇, q␇폡␇);
+Test_N(q␇폢␇, q␇폢␇, q␇폢␇, q␇폢␇, q␇폢␇);
+Test_N(q␇폣␇, q␇폣␇, q␇폣␇, q␇폣␇, q␇폣␇);
+Test_N(q␇폤␇, q␇폤␇, q␇폤␇, q␇폤␇, q␇폤␇);
+Test_N(q␇폥␇, q␇폥␇, q␇폥␇, q␇폥␇, q␇폥␇);
+Test_N(q␇폦␇, q␇폦␇, q␇폦␇, q␇폦␇, q␇폦␇);
+Test_N(q␇폧␇, q␇폧␇, q␇폧␇, q␇폧␇, q␇폧␇);
+Test_N(q␇폨␇, q␇폨␇, q␇폨␇, q␇폨␇, q␇폨␇);
+Test_N(q␇폩␇, q␇폩␇, q␇폩␇, q␇폩␇, q␇폩␇);
+Test_N(q␇폪␇, q␇폪␇, q␇폪␇, q␇폪␇, q␇폪␇);
+Test_N(q␇폫␇, q␇폫␇, q␇폫␇, q␇폫␇, q␇폫␇);
+Test_N(q␇포␇, q␇포␇, q␇포␇, q␇포␇, q␇포␇);
+Test_N(q␇폭␇, q␇폭␇, q␇폭␇, q␇폭␇, q␇폭␇);
+Test_N(q␇폮␇, q␇폮␇, q␇폮␇, q␇폮␇, q␇폮␇);
+Test_N(q␇폯␇, q␇폯␇, q␇폯␇, q␇폯␇, q␇폯␇);
+Test_N(q␇폰␇, q␇폰␇, q␇폰␇, q␇폰␇, q␇폰␇);
+Test_N(q␇폱␇, q␇폱␇, q␇폱␇, q␇폱␇, q␇폱␇);
+Test_N(q␇폲␇, q␇폲␇, q␇폲␇, q␇폲␇, q␇폲␇);
+Test_N(q␇폳␇, q␇폳␇, q␇폳␇, q␇폳␇, q␇폳␇);
+Test_N(q␇폴␇, q␇폴␇, q␇폴␇, q␇폴␇, q␇폴␇);
+Test_N(q␇폵␇, q␇폵␇, q␇폵␇, q␇폵␇, q␇폵␇);
+Test_N(q␇폶␇, q␇폶␇, q␇폶␇, q␇폶␇, q␇폶␇);
+Test_N(q␇폷␇, q␇폷␇, q␇폷␇, q␇폷␇, q␇폷␇);
+Test_N(q␇폸␇, q␇폸␇, q␇폸␇, q␇폸␇, q␇폸␇);
+Test_N(q␇폹␇, q␇폹␇, q␇폹␇, q␇폹␇, q␇폹␇);
+Test_N(q␇폺␇, q␇폺␇, q␇폺␇, q␇폺␇, q␇폺␇);
+Test_N(q␇폻␇, q␇폻␇, q␇폻␇, q␇폻␇, q␇폻␇);
+Test_N(q␇폼␇, q␇폼␇, q␇폼␇, q␇폼␇, q␇폼␇);
+Test_N(q␇폽␇, q␇폽␇, q␇폽␇, q␇폽␇, q␇폽␇);
+Test_N(q␇폾␇, q␇폾␇, q␇폾␇, q␇폾␇, q␇폾␇);
+Test_N(q␇폿␇, q␇폿␇, q␇폿␇, q␇폿␇, q␇폿␇);
+Test_N(q␇퐀␇, q␇퐀␇, q␇퐀␇, q␇퐀␇, q␇퐀␇);
+Test_N(q␇퐁␇, q␇퐁␇, q␇퐁␇, q␇퐁␇, q␇퐁␇);
+Test_N(q␇퐂␇, q␇퐂␇, q␇퐂␇, q␇퐂␇, q␇퐂␇);
+Test_N(q␇퐃␇, q␇퐃␇, q␇퐃␇, q␇퐃␇, q␇퐃␇);
+Test_N(q␇퐄␇, q␇퐄␇, q␇퐄␇, q␇퐄␇, q␇퐄␇);
+Test_N(q␇퐅␇, q␇퐅␇, q␇퐅␇, q␇퐅␇, q␇퐅␇);
+Test_N(q␇퐆␇, q␇퐆␇, q␇퐆␇, q␇퐆␇, q␇퐆␇);
+Test_N(q␇퐇␇, q␇퐇␇, q␇퐇␇, q␇퐇␇, q␇퐇␇);
+Test_N(q␇퐈␇, q␇퐈␇, q␇퐈␇, q␇퐈␇, q␇퐈␇);
+Test_N(q␇퐉␇, q␇퐉␇, q␇퐉␇, q␇퐉␇, q␇퐉␇);
+Test_N(q␇퐊␇, q␇퐊␇, q␇퐊␇, q␇퐊␇, q␇퐊␇);
+Test_N(q␇퐋␇, q␇퐋␇, q␇퐋␇, q␇퐋␇, q␇퐋␇);
+Test_N(q␇퐌␇, q␇퐌␇, q␇퐌␇, q␇퐌␇, q␇퐌␇);
+Test_N(q␇퐍␇, q␇퐍␇, q␇퐍␇, q␇퐍␇, q␇퐍␇);
+Test_N(q␇퐎␇, q␇퐎␇, q␇퐎␇, q␇퐎␇, q␇퐎␇);
+Test_N(q␇퐏␇, q␇퐏␇, q␇퐏␇, q␇퐏␇, q␇퐏␇);
+Test_N(q␇퐐␇, q␇퐐␇, q␇퐐␇, q␇퐐␇, q␇퐐␇);
+Test_N(q␇퐑␇, q␇퐑␇, q␇퐑␇, q␇퐑␇, q␇퐑␇);
+Test_N(q␇퐒␇, q␇퐒␇, q␇퐒␇, q␇퐒␇, q␇퐒␇);
+Test_N(q␇퐓␇, q␇퐓␇, q␇퐓␇, q␇퐓␇, q␇퐓␇);
+Test_N(q␇퐔␇, q␇퐔␇, q␇퐔␇, q␇퐔␇, q␇퐔␇);
+Test_N(q␇퐕␇, q␇퐕␇, q␇퐕␇, q␇퐕␇, q␇퐕␇);
+Test_N(q␇퐖␇, q␇퐖␇, q␇퐖␇, q␇퐖␇, q␇퐖␇);
+Test_N(q␇퐗␇, q␇퐗␇, q␇퐗␇, q␇퐗␇, q␇퐗␇);
+Test_N(q␇퐘␇, q␇퐘␇, q␇퐘␇, q␇퐘␇, q␇퐘␇);
+Test_N(q␇퐙␇, q␇퐙␇, q␇퐙␇, q␇퐙␇, q␇퐙␇);
+Test_N(q␇퐚␇, q␇퐚␇, q␇퐚␇, q␇퐚␇, q␇퐚␇);
+Test_N(q␇퐛␇, q␇퐛␇, q␇퐛␇, q␇퐛␇, q␇퐛␇);
+Test_N(q␇퐜␇, q␇퐜␇, q␇퐜␇, q␇퐜␇, q␇퐜␇);
+Test_N(q␇퐝␇, q␇퐝␇, q␇퐝␇, q␇퐝␇, q␇퐝␇);
+Test_N(q␇퐞␇, q␇퐞␇, q␇퐞␇, q␇퐞␇, q␇퐞␇);
+Test_N(q␇퐟␇, q␇퐟␇, q␇퐟␇, q␇퐟␇, q␇퐟␇);
+Test_N(q␇퐠␇, q␇퐠␇, q␇퐠␇, q␇퐠␇, q␇퐠␇);
+Test_N(q␇퐡␇, q␇퐡␇, q␇퐡␇, q␇퐡␇, q␇퐡␇);
+Test_N(q␇퐢␇, q␇퐢␇, q␇퐢␇, q␇퐢␇, q␇퐢␇);
+Test_N(q␇퐣␇, q␇퐣␇, q␇퐣␇, q␇퐣␇, q␇퐣␇);
+Test_N(q␇퐤␇, q␇퐤␇, q␇퐤␇, q␇퐤␇, q␇퐤␇);
+Test_N(q␇퐥␇, q␇퐥␇, q␇퐥␇, q␇퐥␇, q␇퐥␇);
+Test_N(q␇퐦␇, q␇퐦␇, q␇퐦␇, q␇퐦␇, q␇퐦␇);
+Test_N(q␇퐧␇, q␇퐧␇, q␇퐧␇, q␇퐧␇, q␇퐧␇);
+Test_N(q␇퐨␇, q␇퐨␇, q␇퐨␇, q␇퐨␇, q␇퐨␇);
+Test_N(q␇퐩␇, q␇퐩␇, q␇퐩␇, q␇퐩␇, q␇퐩␇);
+Test_N(q␇퐪␇, q␇퐪␇, q␇퐪␇, q␇퐪␇, q␇퐪␇);
+Test_N(q␇퐫␇, q␇퐫␇, q␇퐫␇, q␇퐫␇, q␇퐫␇);
+Test_N(q␇퐬␇, q␇퐬␇, q␇퐬␇, q␇퐬␇, q␇퐬␇);
+Test_N(q␇퐭␇, q␇퐭␇, q␇퐭␇, q␇퐭␇, q␇퐭␇);
+Test_N(q␇퐮␇, q␇퐮␇, q␇퐮␇, q␇퐮␇, q␇퐮␇);
+Test_N(q␇퐯␇, q␇퐯␇, q␇퐯␇, q␇퐯␇, q␇퐯␇);
+Test_N(q␇퐰␇, q␇퐰␇, q␇퐰␇, q␇퐰␇, q␇퐰␇);
+Test_N(q␇퐱␇, q␇퐱␇, q␇퐱␇, q␇퐱␇, q␇퐱␇);
+Test_N(q␇퐲␇, q␇퐲␇, q␇퐲␇, q␇퐲␇, q␇퐲␇);
+Test_N(q␇퐳␇, q␇퐳␇, q␇퐳␇, q␇퐳␇, q␇퐳␇);
+Test_N(q␇퐴␇, q␇퐴␇, q␇퐴␇, q␇퐴␇, q␇퐴␇);
+Test_N(q␇퐵␇, q␇퐵␇, q␇퐵␇, q␇퐵␇, q␇퐵␇);
+Test_N(q␇퐶␇, q␇퐶␇, q␇퐶␇, q␇퐶␇, q␇퐶␇);
+Test_N(q␇퐷␇, q␇퐷␇, q␇퐷␇, q␇퐷␇, q␇퐷␇);
+Test_N(q␇퐸␇, q␇퐸␇, q␇퐸␇, q␇퐸␇, q␇퐸␇);
+Test_N(q␇퐹␇, q␇퐹␇, q␇퐹␇, q␇퐹␇, q␇퐹␇);
+Test_N(q␇퐺␇, q␇퐺␇, q␇퐺␇, q␇퐺␇, q␇퐺␇);
+Test_N(q␇퐻␇, q␇퐻␇, q␇퐻␇, q␇퐻␇, q␇퐻␇);
+Test_N(q␇퐼␇, q␇퐼␇, q␇퐼␇, q␇퐼␇, q␇퐼␇);
+Test_N(q␇퐽␇, q␇퐽␇, q␇퐽␇, q␇퐽␇, q␇퐽␇);
+Test_N(q␇퐾␇, q␇퐾␇, q␇퐾␇, q␇퐾␇, q␇퐾␇);
+Test_N(q␇퐿␇, q␇퐿␇, q␇퐿␇, q␇퐿␇, q␇퐿␇);
+Test_N(q␇푀␇, q␇푀␇, q␇푀␇, q␇푀␇, q␇푀␇);
+Test_N(q␇푁␇, q␇푁␇, q␇푁␇, q␇푁␇, q␇푁␇);
+Test_N(q␇푂␇, q␇푂␇, q␇푂␇, q␇푂␇, q␇푂␇);
+Test_N(q␇푃␇, q␇푃␇, q␇푃␇, q␇푃␇, q␇푃␇);
+Test_N(q␇푄␇, q␇푄␇, q␇푄␇, q␇푄␇, q␇푄␇);
+Test_N(q␇푅␇, q␇푅␇, q␇푅␇, q␇푅␇, q␇푅␇);
+Test_N(q␇푆␇, q␇푆␇, q␇푆␇, q␇푆␇, q␇푆␇);
+Test_N(q␇푇␇, q␇푇␇, q␇푇␇, q␇푇␇, q␇푇␇);
+Test_N(q␇푈␇, q␇푈␇, q␇푈␇, q␇푈␇, q␇푈␇);
+Test_N(q␇푉␇, q␇푉␇, q␇푉␇, q␇푉␇, q␇푉␇);
+Test_N(q␇푊␇, q␇푊␇, q␇푊␇, q␇푊␇, q␇푊␇);
+Test_N(q␇푋␇, q␇푋␇, q␇푋␇, q␇푋␇, q␇푋␇);
+Test_N(q␇푌␇, q␇푌␇, q␇푌␇, q␇푌␇, q␇푌␇);
+Test_N(q␇푍␇, q␇푍␇, q␇푍␇, q␇푍␇, q␇푍␇);
+Test_N(q␇푎␇, q␇푎␇, q␇푎␇, q␇푎␇, q␇푎␇);
+Test_N(q␇푏␇, q␇푏␇, q␇푏␇, q␇푏␇, q␇푏␇);
+Test_N(q␇푐␇, q␇푐␇, q␇푐␇, q␇푐␇, q␇푐␇);
+Test_N(q␇푑␇, q␇푑␇, q␇푑␇, q␇푑␇, q␇푑␇);
+Test_N(q␇푒␇, q␇푒␇, q␇푒␇, q␇푒␇, q␇푒␇);
+Test_N(q␇푓␇, q␇푓␇, q␇푓␇, q␇푓␇, q␇푓␇);
+Test_N(q␇푔␇, q␇푔␇, q␇푔␇, q␇푔␇, q␇푔␇);
+Test_N(q␇푕␇, q␇푕␇, q␇푕␇, q␇푕␇, q␇푕␇);
+Test_N(q␇푖␇, q␇푖␇, q␇푖␇, q␇푖␇, q␇푖␇);
+Test_N(q␇푗␇, q␇푗␇, q␇푗␇, q␇푗␇, q␇푗␇);
+Test_N(q␇푘␇, q␇푘␇, q␇푘␇, q␇푘␇, q␇푘␇);
+Test_N(q␇푙␇, q␇푙␇, q␇푙␇, q␇푙␇, q␇푙␇);
+Test_N(q␇푚␇, q␇푚␇, q␇푚␇, q␇푚␇, q␇푚␇);
+Test_N(q␇푛␇, q␇푛␇, q␇푛␇, q␇푛␇, q␇푛␇);
+Test_N(q␇표␇, q␇표␇, q␇표␇, q␇표␇, q␇표␇);
+Test_N(q␇푝␇, q␇푝␇, q␇푝␇, q␇푝␇, q␇푝␇);
+Test_N(q␇푞␇, q␇푞␇, q␇푞␇, q␇푞␇, q␇푞␇);
+Test_N(q␇푟␇, q␇푟␇, q␇푟␇, q␇푟␇, q␇푟␇);
+Test_N(q␇푠␇, q␇푠␇, q␇푠␇, q␇푠␇, q␇푠␇);
+Test_N(q␇푡␇, q␇푡␇, q␇푡␇, q␇푡␇, q␇푡␇);
+Test_N(q␇푢␇, q␇푢␇, q␇푢␇, q␇푢␇, q␇푢␇);
+Test_N(q␇푣␇, q␇푣␇, q␇푣␇, q␇푣␇, q␇푣␇);
+Test_N(q␇푤␇, q␇푤␇, q␇푤␇, q␇푤␇, q␇푤␇);
+Test_N(q␇푥␇, q␇푥␇, q␇푥␇, q␇푥␇, q␇푥␇);
+Test_N(q␇푦␇, q␇푦␇, q␇푦␇, q␇푦␇, q␇푦␇);
+Test_N(q␇푧␇, q␇푧␇, q␇푧␇, q␇푧␇, q␇푧␇);
+Test_N(q␇푨␇, q␇푨␇, q␇푨␇, q␇푨␇, q␇푨␇);
+Test_N(q␇푩␇, q␇푩␇, q␇푩␇, q␇푩␇, q␇푩␇);
+Test_N(q␇푪␇, q␇푪␇, q␇푪␇, q␇푪␇, q␇푪␇);
+Test_N(q␇푫␇, q␇푫␇, q␇푫␇, q␇푫␇, q␇푫␇);
+Test_N(q␇푬␇, q␇푬␇, q␇푬␇, q␇푬␇, q␇푬␇);
+Test_N(q␇푭␇, q␇푭␇, q␇푭␇, q␇푭␇, q␇푭␇);
+Test_N(q␇푮␇, q␇푮␇, q␇푮␇, q␇푮␇, q␇푮␇);
+Test_N(q␇푯␇, q␇푯␇, q␇푯␇, q␇푯␇, q␇푯␇);
+Test_N(q␇푰␇, q␇푰␇, q␇푰␇, q␇푰␇, q␇푰␇);
+Test_N(q␇푱␇, q␇푱␇, q␇푱␇, q␇푱␇, q␇푱␇);
+Test_N(q␇푲␇, q␇푲␇, q␇푲␇, q␇푲␇, q␇푲␇);
+Test_N(q␇푳␇, q␇푳␇, q␇푳␇, q␇푳␇, q␇푳␇);
+Test_N(q␇푴␇, q␇푴␇, q␇푴␇, q␇푴␇, q␇푴␇);
+Test_N(q␇푵␇, q␇푵␇, q␇푵␇, q␇푵␇, q␇푵␇);
+Test_N(q␇푶␇, q␇푶␇, q␇푶␇, q␇푶␇, q␇푶␇);
+Test_N(q␇푷␇, q␇푷␇, q␇푷␇, q␇푷␇, q␇푷␇);
+Test_N(q␇푸␇, q␇푸␇, q␇푸␇, q␇푸␇, q␇푸␇);
+Test_N(q␇푹␇, q␇푹␇, q␇푹␇, q␇푹␇, q␇푹␇);
+Test_N(q␇푺␇, q␇푺␇, q␇푺␇, q␇푺␇, q␇푺␇);
+Test_N(q␇푻␇, q␇푻␇, q␇푻␇, q␇푻␇, q␇푻␇);
+Test_N(q␇푼␇, q␇푼␇, q␇푼␇, q␇푼␇, q␇푼␇);
+Test_N(q␇푽␇, q␇푽␇, q␇푽␇, q␇푽␇, q␇푽␇);
+Test_N(q␇푾␇, q␇푾␇, q␇푾␇, q␇푾␇, q␇푾␇);
+Test_N(q␇푿␇, q␇푿␇, q␇푿␇, q␇푿␇, q␇푿␇);
+Test_N(q␇풀␇, q␇풀␇, q␇풀␇, q␇풀␇, q␇풀␇);
+Test_N(q␇풁␇, q␇풁␇, q␇풁␇, q␇풁␇, q␇풁␇);
+Test_N(q␇풂␇, q␇풂␇, q␇풂␇, q␇풂␇, q␇풂␇);
+Test_N(q␇풃␇, q␇풃␇, q␇풃␇, q␇풃␇, q␇풃␇);
+Test_N(q␇풄␇, q␇풄␇, q␇풄␇, q␇풄␇, q␇풄␇);
+Test_N(q␇풅␇, q␇풅␇, q␇풅␇, q␇풅␇, q␇풅␇);
+Test_N(q␇풆␇, q␇풆␇, q␇풆␇, q␇풆␇, q␇풆␇);
+Test_N(q␇풇␇, q␇풇␇, q␇풇␇, q␇풇␇, q␇풇␇);
+Test_N(q␇품␇, q␇품␇, q␇품␇, q␇품␇, q␇품␇);
+Test_N(q␇풉␇, q␇풉␇, q␇풉␇, q␇풉␇, q␇풉␇);
+Test_N(q␇풊␇, q␇풊␇, q␇풊␇, q␇풊␇, q␇풊␇);
+Test_N(q␇풋␇, q␇풋␇, q␇풋␇, q␇풋␇, q␇풋␇);
+Test_N(q␇풌␇, q␇풌␇, q␇풌␇, q␇풌␇, q␇풌␇);
+Test_N(q␇풍␇, q␇풍␇, q␇풍␇, q␇풍␇, q␇풍␇);
+Test_N(q␇풎␇, q␇풎␇, q␇풎␇, q␇풎␇, q␇풎␇);
+Test_N(q␇풏␇, q␇풏␇, q␇풏␇, q␇풏␇, q␇풏␇);
+Test_N(q␇풐␇, q␇풐␇, q␇풐␇, q␇풐␇, q␇풐␇);
+Test_N(q␇풑␇, q␇풑␇, q␇풑␇, q␇풑␇, q␇풑␇);
+Test_N(q␇풒␇, q␇풒␇, q␇풒␇, q␇풒␇, q␇풒␇);
+Test_N(q␇풓␇, q␇풓␇, q␇풓␇, q␇풓␇, q␇풓␇);
+Test_N(q␇풔␇, q␇풔␇, q␇풔␇, q␇풔␇, q␇풔␇);
+Test_N(q␇풕␇, q␇풕␇, q␇풕␇, q␇풕␇, q␇풕␇);
+Test_N(q␇풖␇, q␇풖␇, q␇풖␇, q␇풖␇, q␇풖␇);
+Test_N(q␇풗␇, q␇풗␇, q␇풗␇, q␇풗␇, q␇풗␇);
+Test_N(q␇풘␇, q␇풘␇, q␇풘␇, q␇풘␇, q␇풘␇);
+Test_N(q␇풙␇, q␇풙␇, q␇풙␇, q␇풙␇, q␇풙␇);
+Test_N(q␇풚␇, q␇풚␇, q␇풚␇, q␇풚␇, q␇풚␇);
+Test_N(q␇풛␇, q␇풛␇, q␇풛␇, q␇풛␇, q␇풛␇);
+Test_N(q␇풜␇, q␇풜␇, q␇풜␇, q␇풜␇, q␇풜␇);
+Test_N(q␇풝␇, q␇풝␇, q␇풝␇, q␇풝␇, q␇풝␇);
+Test_N(q␇풞␇, q␇풞␇, q␇풞␇, q␇풞␇, q␇풞␇);
+Test_N(q␇풟␇, q␇풟␇, q␇풟␇, q␇풟␇, q␇풟␇);
+Test_N(q␇풠␇, q␇풠␇, q␇풠␇, q␇풠␇, q␇풠␇);
+Test_N(q␇풡␇, q␇풡␇, q␇풡␇, q␇풡␇, q␇풡␇);
+Test_N(q␇풢␇, q␇풢␇, q␇풢␇, q␇풢␇, q␇풢␇);
+Test_N(q␇풣␇, q␇풣␇, q␇풣␇, q␇풣␇, q␇풣␇);
+Test_N(q␇풤␇, q␇풤␇, q␇풤␇, q␇풤␇, q␇풤␇);
+Test_N(q␇풥␇, q␇풥␇, q␇풥␇, q␇풥␇, q␇풥␇);
+Test_N(q␇풦␇, q␇풦␇, q␇풦␇, q␇풦␇, q␇풦␇);
+Test_N(q␇풧␇, q␇풧␇, q␇풧␇, q␇풧␇, q␇풧␇);
+Test_N(q␇풨␇, q␇풨␇, q␇풨␇, q␇풨␇, q␇풨␇);
+Test_N(q␇풩␇, q␇풩␇, q␇풩␇, q␇풩␇, q␇풩␇);
+Test_N(q␇풪␇, q␇풪␇, q␇풪␇, q␇풪␇, q␇풪␇);
+Test_N(q␇풫␇, q␇풫␇, q␇풫␇, q␇풫␇, q␇풫␇);
+Test_N(q␇풬␇, q␇풬␇, q␇풬␇, q␇풬␇, q␇풬␇);
+Test_N(q␇풭␇, q␇풭␇, q␇풭␇, q␇풭␇, q␇풭␇);
+Test_N(q␇풮␇, q␇풮␇, q␇풮␇, q␇풮␇, q␇풮␇);
+Test_N(q␇풯␇, q␇풯␇, q␇풯␇, q␇풯␇, q␇풯␇);
+Test_N(q␇풰␇, q␇풰␇, q␇풰␇, q␇풰␇, q␇풰␇);
+Test_N(q␇풱␇, q␇풱␇, q␇풱␇, q␇풱␇, q␇풱␇);
+Test_N(q␇풲␇, q␇풲␇, q␇풲␇, q␇풲␇, q␇풲␇);
+Test_N(q␇풳␇, q␇풳␇, q␇풳␇, q␇풳␇, q␇풳␇);
+Test_N(q␇풴␇, q␇풴␇, q␇풴␇, q␇풴␇, q␇풴␇);
+Test_N(q␇풵␇, q␇풵␇, q␇풵␇, q␇풵␇, q␇풵␇);
+Test_N(q␇풶␇, q␇풶␇, q␇풶␇, q␇풶␇, q␇풶␇);
+Test_N(q␇풷␇, q␇풷␇, q␇풷␇, q␇풷␇, q␇풷␇);
+Test_N(q␇풸␇, q␇풸␇, q␇풸␇, q␇풸␇, q␇풸␇);
+Test_N(q␇풹␇, q␇풹␇, q␇풹␇, q␇풹␇, q␇풹␇);
+Test_N(q␇풺␇, q␇풺␇, q␇풺␇, q␇풺␇, q␇풺␇);
+Test_N(q␇풻␇, q␇풻␇, q␇풻␇, q␇풻␇, q␇풻␇);
+Test_N(q␇풼␇, q␇풼␇, q␇풼␇, q␇풼␇, q␇풼␇);
+Test_N(q␇풽␇, q␇풽␇, q␇풽␇, q␇풽␇, q␇풽␇);
+Test_N(q␇풾␇, q␇풾␇, q␇풾␇, q␇풾␇, q␇풾␇);
+Test_N(q␇풿␇, q␇풿␇, q␇풿␇, q␇풿␇, q␇풿␇);
+Test_N(q␇퓀␇, q␇퓀␇, q␇퓀␇, q␇퓀␇, q␇퓀␇);
+Test_N(q␇퓁␇, q␇퓁␇, q␇퓁␇, q␇퓁␇, q␇퓁␇);
+Test_N(q␇퓂␇, q␇퓂␇, q␇퓂␇, q␇퓂␇, q␇퓂␇);
+Test_N(q␇퓃␇, q␇퓃␇, q␇퓃␇, q␇퓃␇, q␇퓃␇);
+Test_N(q␇퓄␇, q␇퓄␇, q␇퓄␇, q␇퓄␇, q␇퓄␇);
+Test_N(q␇퓅␇, q␇퓅␇, q␇퓅␇, q␇퓅␇, q␇퓅␇);
+Test_N(q␇퓆␇, q␇퓆␇, q␇퓆␇, q␇퓆␇, q␇퓆␇);
+Test_N(q␇퓇␇, q␇퓇␇, q␇퓇␇, q␇퓇␇, q␇퓇␇);
+Test_N(q␇퓈␇, q␇퓈␇, q␇퓈␇, q␇퓈␇, q␇퓈␇);
+Test_N(q␇퓉␇, q␇퓉␇, q␇퓉␇, q␇퓉␇, q␇퓉␇);
+Test_N(q␇퓊␇, q␇퓊␇, q␇퓊␇, q␇퓊␇, q␇퓊␇);
+Test_N(q␇퓋␇, q␇퓋␇, q␇퓋␇, q␇퓋␇, q␇퓋␇);
+Test_N(q␇퓌␇, q␇퓌␇, q␇퓌␇, q␇퓌␇, q␇퓌␇);
+Test_N(q␇퓍␇, q␇퓍␇, q␇퓍␇, q␇퓍␇, q␇퓍␇);
+Test_N(q␇퓎␇, q␇퓎␇, q␇퓎␇, q␇퓎␇, q␇퓎␇);
+Test_N(q␇퓏␇, q␇퓏␇, q␇퓏␇, q␇퓏␇, q␇퓏␇);
+Test_N(q␇퓐␇, q␇퓐␇, q␇퓐␇, q␇퓐␇, q␇퓐␇);
+Test_N(q␇퓑␇, q␇퓑␇, q␇퓑␇, q␇퓑␇, q␇퓑␇);
+Test_N(q␇퓒␇, q␇퓒␇, q␇퓒␇, q␇퓒␇, q␇퓒␇);
+Test_N(q␇퓓␇, q␇퓓␇, q␇퓓␇, q␇퓓␇, q␇퓓␇);
+Test_N(q␇퓔␇, q␇퓔␇, q␇퓔␇, q␇퓔␇, q␇퓔␇);
+Test_N(q␇퓕␇, q␇퓕␇, q␇퓕␇, q␇퓕␇, q␇퓕␇);
+Test_N(q␇퓖␇, q␇퓖␇, q␇퓖␇, q␇퓖␇, q␇퓖␇);
+Test_N(q␇퓗␇, q␇퓗␇, q␇퓗␇, q␇퓗␇, q␇퓗␇);
+Test_N(q␇퓘␇, q␇퓘␇, q␇퓘␇, q␇퓘␇, q␇퓘␇);
+Test_N(q␇퓙␇, q␇퓙␇, q␇퓙␇, q␇퓙␇, q␇퓙␇);
+Test_N(q␇퓚␇, q␇퓚␇, q␇퓚␇, q␇퓚␇, q␇퓚␇);
+Test_N(q␇퓛␇, q␇퓛␇, q␇퓛␇, q␇퓛␇, q␇퓛␇);
+Test_N(q␇퓜␇, q␇퓜␇, q␇퓜␇, q␇퓜␇, q␇퓜␇);
+Test_N(q␇퓝␇, q␇퓝␇, q␇퓝␇, q␇퓝␇, q␇퓝␇);
+Test_N(q␇퓞␇, q␇퓞␇, q␇퓞␇, q␇퓞␇, q␇퓞␇);
+Test_N(q␇퓟␇, q␇퓟␇, q␇퓟␇, q␇퓟␇, q␇퓟␇);
+Test_N(q␇퓠␇, q␇퓠␇, q␇퓠␇, q␇퓠␇, q␇퓠␇);
+Test_N(q␇퓡␇, q␇퓡␇, q␇퓡␇, q␇퓡␇, q␇퓡␇);
+Test_N(q␇퓢␇, q␇퓢␇, q␇퓢␇, q␇퓢␇, q␇퓢␇);
+Test_N(q␇퓣␇, q␇퓣␇, q␇퓣␇, q␇퓣␇, q␇퓣␇);
+Test_N(q␇퓤␇, q␇퓤␇, q␇퓤␇, q␇퓤␇, q␇퓤␇);
+Test_N(q␇퓥␇, q␇퓥␇, q␇퓥␇, q␇퓥␇, q␇퓥␇);
+Test_N(q␇퓦␇, q␇퓦␇, q␇퓦␇, q␇퓦␇, q␇퓦␇);
+Test_N(q␇퓧␇, q␇퓧␇, q␇퓧␇, q␇퓧␇, q␇퓧␇);
+Test_N(q␇퓨␇, q␇퓨␇, q␇퓨␇, q␇퓨␇, q␇퓨␇);
+Test_N(q␇퓩␇, q␇퓩␇, q␇퓩␇, q␇퓩␇, q␇퓩␇);
+Test_N(q␇퓪␇, q␇퓪␇, q␇퓪␇, q␇퓪␇, q␇퓪␇);
+Test_N(q␇퓫␇, q␇퓫␇, q␇퓫␇, q␇퓫␇, q␇퓫␇);
+Test_N(q␇퓬␇, q␇퓬␇, q␇퓬␇, q␇퓬␇, q␇퓬␇);
+Test_N(q␇퓭␇, q␇퓭␇, q␇퓭␇, q␇퓭␇, q␇퓭␇);
+Test_N(q␇퓮␇, q␇퓮␇, q␇퓮␇, q␇퓮␇, q␇퓮␇);
+Test_N(q␇퓯␇, q␇퓯␇, q␇퓯␇, q␇퓯␇, q␇퓯␇);
+Test_N(q␇퓰␇, q␇퓰␇, q␇퓰␇, q␇퓰␇, q␇퓰␇);
+Test_N(q␇퓱␇, q␇퓱␇, q␇퓱␇, q␇퓱␇, q␇퓱␇);
+Test_N(q␇퓲␇, q␇퓲␇, q␇퓲␇, q␇퓲␇, q␇퓲␇);
+Test_N(q␇퓳␇, q␇퓳␇, q␇퓳␇, q␇퓳␇, q␇퓳␇);
+Test_N(q␇퓴␇, q␇퓴␇, q␇퓴␇, q␇퓴␇, q␇퓴␇);
+Test_N(q␇퓵␇, q␇퓵␇, q␇퓵␇, q␇퓵␇, q␇퓵␇);
+Test_N(q␇퓶␇, q␇퓶␇, q␇퓶␇, q␇퓶␇, q␇퓶␇);
+Test_N(q␇퓷␇, q␇퓷␇, q␇퓷␇, q␇퓷␇, q␇퓷␇);
+Test_N(q␇퓸␇, q␇퓸␇, q␇퓸␇, q␇퓸␇, q␇퓸␇);
+Test_N(q␇퓹␇, q␇퓹␇, q␇퓹␇, q␇퓹␇, q␇퓹␇);
+Test_N(q␇퓺␇, q␇퓺␇, q␇퓺␇, q␇퓺␇, q␇퓺␇);
+Test_N(q␇퓻␇, q␇퓻␇, q␇퓻␇, q␇퓻␇, q␇퓻␇);
+Test_N(q␇퓼␇, q␇퓼␇, q␇퓼␇, q␇퓼␇, q␇퓼␇);
+Test_N(q␇퓽␇, q␇퓽␇, q␇퓽␇, q␇퓽␇, q␇퓽␇);
+Test_N(q␇퓾␇, q␇퓾␇, q␇퓾␇, q␇퓾␇, q␇퓾␇);
+Test_N(q␇퓿␇, q␇퓿␇, q␇퓿␇, q␇퓿␇, q␇퓿␇);
+Test_N(q␇픀␇, q␇픀␇, q␇픀␇, q␇픀␇, q␇픀␇);
+Test_N(q␇픁␇, q␇픁␇, q␇픁␇, q␇픁␇, q␇픁␇);
+Test_N(q␇픂␇, q␇픂␇, q␇픂␇, q␇픂␇, q␇픂␇);
+Test_N(q␇픃␇, q␇픃␇, q␇픃␇, q␇픃␇, q␇픃␇);
+Test_N(q␇프␇, q␇프␇, q␇프␇, q␇프␇, q␇프␇);
+Test_N(q␇픅␇, q␇픅␇, q␇픅␇, q␇픅␇, q␇픅␇);
+Test_N(q␇픆␇, q␇픆␇, q␇픆␇, q␇픆␇, q␇픆␇);
+Test_N(q␇픇␇, q␇픇␇, q␇픇␇, q␇픇␇, q␇픇␇);
+Test_N(q␇픈␇, q␇픈␇, q␇픈␇, q␇픈␇, q␇픈␇);
+Test_N(q␇픉␇, q␇픉␇, q␇픉␇, q␇픉␇, q␇픉␇);
+Test_N(q␇픊␇, q␇픊␇, q␇픊␇, q␇픊␇, q␇픊␇);
+Test_N(q␇픋␇, q␇픋␇, q␇픋␇, q␇픋␇, q␇픋␇);
+Test_N(q␇플␇, q␇플␇, q␇플␇, q␇플␇, q␇플␇);
+Test_N(q␇픍␇, q␇픍␇, q␇픍␇, q␇픍␇, q␇픍␇);
+Test_N(q␇픎␇, q␇픎␇, q␇픎␇, q␇픎␇, q␇픎␇);
+Test_N(q␇픏␇, q␇픏␇, q␇픏␇, q␇픏␇, q␇픏␇);
+Test_N(q␇픐␇, q␇픐␇, q␇픐␇, q␇픐␇, q␇픐␇);
+Test_N(q␇픑␇, q␇픑␇, q␇픑␇, q␇픑␇, q␇픑␇);
+Test_N(q␇픒␇, q␇픒␇, q␇픒␇, q␇픒␇, q␇픒␇);
+Test_N(q␇픓␇, q␇픓␇, q␇픓␇, q␇픓␇, q␇픓␇);
+Test_N(q␇픔␇, q␇픔␇, q␇픔␇, q␇픔␇, q␇픔␇);
+Test_N(q␇픕␇, q␇픕␇, q␇픕␇, q␇픕␇, q␇픕␇);
+Test_N(q␇픖␇, q␇픖␇, q␇픖␇, q␇픖␇, q␇픖␇);
+Test_N(q␇픗␇, q␇픗␇, q␇픗␇, q␇픗␇, q␇픗␇);
+Test_N(q␇픘␇, q␇픘␇, q␇픘␇, q␇픘␇, q␇픘␇);
+Test_N(q␇픙␇, q␇픙␇, q␇픙␇, q␇픙␇, q␇픙␇);
+Test_N(q␇픚␇, q␇픚␇, q␇픚␇, q␇픚␇, q␇픚␇);
+Test_N(q␇픛␇, q␇픛␇, q␇픛␇, q␇픛␇, q␇픛␇);
+Test_N(q␇픜␇, q␇픜␇, q␇픜␇, q␇픜␇, q␇픜␇);
+Test_N(q␇픝␇, q␇픝␇, q␇픝␇, q␇픝␇, q␇픝␇);
+Test_N(q␇픞␇, q␇픞␇, q␇픞␇, q␇픞␇, q␇픞␇);
+Test_N(q␇픟␇, q␇픟␇, q␇픟␇, q␇픟␇, q␇픟␇);
+Test_N(q␇픠␇, q␇픠␇, q␇픠␇, q␇픠␇, q␇픠␇);
+Test_N(q␇픡␇, q␇픡␇, q␇픡␇, q␇픡␇, q␇픡␇);
+Test_N(q␇픢␇, q␇픢␇, q␇픢␇, q␇픢␇, q␇픢␇);
+Test_N(q␇픣␇, q␇픣␇, q␇픣␇, q␇픣␇, q␇픣␇);
+Test_N(q␇픤␇, q␇픤␇, q␇픤␇, q␇픤␇, q␇픤␇);
+Test_N(q␇픥␇, q␇픥␇, q␇픥␇, q␇픥␇, q␇픥␇);
+Test_N(q␇픦␇, q␇픦␇, q␇픦␇, q␇픦␇, q␇픦␇);
+Test_N(q␇픧␇, q␇픧␇, q␇픧␇, q␇픧␇, q␇픧␇);
+Test_N(q␇픨␇, q␇픨␇, q␇픨␇, q␇픨␇, q␇픨␇);
+Test_N(q␇픩␇, q␇픩␇, q␇픩␇, q␇픩␇, q␇픩␇);
+Test_N(q␇픪␇, q␇픪␇, q␇픪␇, q␇픪␇, q␇픪␇);
+Test_N(q␇픫␇, q␇픫␇, q␇픫␇, q␇픫␇, q␇픫␇);
+Test_N(q␇픬␇, q␇픬␇, q␇픬␇, q␇픬␇, q␇픬␇);
+Test_N(q␇픭␇, q␇픭␇, q␇픭␇, q␇픭␇, q␇픭␇);
+Test_N(q␇픮␇, q␇픮␇, q␇픮␇, q␇픮␇, q␇픮␇);
+Test_N(q␇픯␇, q␇픯␇, q␇픯␇, q␇픯␇, q␇픯␇);
+Test_N(q␇픰␇, q␇픰␇, q␇픰␇, q␇픰␇, q␇픰␇);
+Test_N(q␇픱␇, q␇픱␇, q␇픱␇, q␇픱␇, q␇픱␇);
+Test_N(q␇픲␇, q␇픲␇, q␇픲␇, q␇픲␇, q␇픲␇);
+Test_N(q␇픳␇, q␇픳␇, q␇픳␇, q␇픳␇, q␇픳␇);
+Test_N(q␇픴␇, q␇픴␇, q␇픴␇, q␇픴␇, q␇픴␇);
+Test_N(q␇픵␇, q␇픵␇, q␇픵␇, q␇픵␇, q␇픵␇);
+Test_N(q␇픶␇, q␇픶␇, q␇픶␇, q␇픶␇, q␇픶␇);
+Test_N(q␇픷␇, q␇픷␇, q␇픷␇, q␇픷␇, q␇픷␇);
+Test_N(q␇픸␇, q␇픸␇, q␇픸␇, q␇픸␇, q␇픸␇);
+Test_N(q␇픹␇, q␇픹␇, q␇픹␇, q␇픹␇, q␇픹␇);
+Test_N(q␇픺␇, q␇픺␇, q␇픺␇, q␇픺␇, q␇픺␇);
+Test_N(q␇픻␇, q␇픻␇, q␇픻␇, q␇픻␇, q␇픻␇);
+Test_N(q␇피␇, q␇피␇, q␇피␇, q␇피␇, q␇피␇);
+Test_N(q␇픽␇, q␇픽␇, q␇픽␇, q␇픽␇, q␇픽␇);
+Test_N(q␇픾␇, q␇픾␇, q␇픾␇, q␇픾␇, q␇픾␇);
+Test_N(q␇픿␇, q␇픿␇, q␇픿␇, q␇픿␇, q␇픿␇);
+Test_N(q␇핀␇, q␇핀␇, q␇핀␇, q␇핀␇, q␇핀␇);
+Test_N(q␇핁␇, q␇핁␇, q␇핁␇, q␇핁␇, q␇핁␇);
+Test_N(q␇핂␇, q␇핂␇, q␇핂␇, q␇핂␇, q␇핂␇);
+Test_N(q␇핃␇, q␇핃␇, q␇핃␇, q␇핃␇, q␇핃␇);
+Test_N(q␇필␇, q␇필␇, q␇필␇, q␇필␇, q␇필␇);
+Test_N(q␇핅␇, q␇핅␇, q␇핅␇, q␇핅␇, q␇핅␇);
+Test_N(q␇핆␇, q␇핆␇, q␇핆␇, q␇핆␇, q␇핆␇);
+Test_N(q␇핇␇, q␇핇␇, q␇핇␇, q␇핇␇, q␇핇␇);
+Test_N(q␇핈␇, q␇핈␇, q␇핈␇, q␇핈␇, q␇핈␇);
+Test_N(q␇핉␇, q␇핉␇, q␇핉␇, q␇핉␇, q␇핉␇);
+Test_N(q␇핊␇, q␇핊␇, q␇핊␇, q␇핊␇, q␇핊␇);
+Test_N(q␇핋␇, q␇핋␇, q␇핋␇, q␇핋␇, q␇핋␇);
+Test_N(q␇핌␇, q␇핌␇, q␇핌␇, q␇핌␇, q␇핌␇);
+Test_N(q␇핍␇, q␇핍␇, q␇핍␇, q␇핍␇, q␇핍␇);
+Test_N(q␇핎␇, q␇핎␇, q␇핎␇, q␇핎␇, q␇핎␇);
+Test_N(q␇핏␇, q␇핏␇, q␇핏␇, q␇핏␇, q␇핏␇);
+Test_N(q␇핐␇, q␇핐␇, q␇핐␇, q␇핐␇, q␇핐␇);
+Test_N(q␇핑␇, q␇핑␇, q␇핑␇, q␇핑␇, q␇핑␇);
+Test_N(q␇핒␇, q␇핒␇, q␇핒␇, q␇핒␇, q␇핒␇);
+Test_N(q␇핓␇, q␇핓␇, q␇핓␇, q␇핓␇, q␇핓␇);
+Test_N(q␇핔␇, q␇핔␇, q␇핔␇, q␇핔␇, q␇핔␇);
+Test_N(q␇핕␇, q␇핕␇, q␇핕␇, q␇핕␇, q␇핕␇);
+Test_N(q␇핖␇, q␇핖␇, q␇핖␇, q␇핖␇, q␇핖␇);
+Test_N(q␇핗␇, q␇핗␇, q␇핗␇, q␇핗␇, q␇핗␇);
+Test_N(q␇하␇, q␇하␇, q␇하␇, q␇하␇, q␇하␇);
+Test_N(q␇학␇, q␇학␇, q␇학␇, q␇학␇, q␇학␇);
+Test_N(q␇핚␇, q␇핚␇, q␇핚␇, q␇핚␇, q␇핚␇);
+Test_N(q␇핛␇, q␇핛␇, q␇핛␇, q␇핛␇, q␇핛␇);
+Test_N(q␇한␇, q␇한␇, q␇한␇, q␇한␇, q␇한␇);
+Test_N(q␇핝␇, q␇핝␇, q␇핝␇, q␇핝␇, q␇핝␇);
+Test_N(q␇핞␇, q␇핞␇, q␇핞␇, q␇핞␇, q␇핞␇);
+Test_N(q␇핟␇, q␇핟␇, q␇핟␇, q␇핟␇, q␇핟␇);
+Test_N(q␇할␇, q␇할␇, q␇할␇, q␇할␇, q␇할␇);
+Test_N(q␇핡␇, q␇핡␇, q␇핡␇, q␇핡␇, q␇핡␇);
+Test_N(q␇핢␇, q␇핢␇, q␇핢␇, q␇핢␇, q␇핢␇);
+Test_N(q␇핣␇, q␇핣␇, q␇핣␇, q␇핣␇, q␇핣␇);
+Test_N(q␇핤␇, q␇핤␇, q␇핤␇, q␇핤␇, q␇핤␇);
+Test_N(q␇핥␇, q␇핥␇, q␇핥␇, q␇핥␇, q␇핥␇);
+Test_N(q␇핦␇, q␇핦␇, q␇핦␇, q␇핦␇, q␇핦␇);
+Test_N(q␇핧␇, q␇핧␇, q␇핧␇, q␇핧␇, q␇핧␇);
+Test_N(q␇함␇, q␇함␇, q␇함␇, q␇함␇, q␇함␇);
+Test_N(q␇합␇, q␇합␇, q␇합␇, q␇합␇, q␇합␇);
+Test_N(q␇핪␇, q␇핪␇, q␇핪␇, q␇핪␇, q␇핪␇);
+Test_N(q␇핫␇, q␇핫␇, q␇핫␇, q␇핫␇, q␇핫␇);
+Test_N(q␇핬␇, q␇핬␇, q␇핬␇, q␇핬␇, q␇핬␇);
+Test_N(q␇항␇, q␇항␇, q␇항␇, q␇항␇, q␇항␇);
+Test_N(q␇핮␇, q␇핮␇, q␇핮␇, q␇핮␇, q␇핮␇);
+Test_N(q␇핯␇, q␇핯␇, q␇핯␇, q␇핯␇, q␇핯␇);
+Test_N(q␇핰␇, q␇핰␇, q␇핰␇, q␇핰␇, q␇핰␇);
+Test_N(q␇핱␇, q␇핱␇, q␇핱␇, q␇핱␇, q␇핱␇);
+Test_N(q␇핲␇, q␇핲␇, q␇핲␇, q␇핲␇, q␇핲␇);
+Test_N(q␇핳␇, q␇핳␇, q␇핳␇, q␇핳␇, q␇핳␇);
+Test_N(q␇해␇, q␇해␇, q␇해␇, q␇해␇, q␇해␇);
+Test_N(q␇핵␇, q␇핵␇, q␇핵␇, q␇핵␇, q␇핵␇);
+Test_N(q␇핶␇, q␇핶␇, q␇핶␇, q␇핶␇, q␇핶␇);
+Test_N(q␇핷␇, q␇핷␇, q␇핷␇, q␇핷␇, q␇핷␇);
+Test_N(q␇핸␇, q␇핸␇, q␇핸␇, q␇핸␇, q␇핸␇);
+Test_N(q␇핹␇, q␇핹␇, q␇핹␇, q␇핹␇, q␇핹␇);
+Test_N(q␇핺␇, q␇핺␇, q␇핺␇, q␇핺␇, q␇핺␇);
+Test_N(q␇핻␇, q␇핻␇, q␇핻␇, q␇핻␇, q␇핻␇);
+Test_N(q␇핼␇, q␇핼␇, q␇핼␇, q␇핼␇, q␇핼␇);
+Test_N(q␇핽␇, q␇핽␇, q␇핽␇, q␇핽␇, q␇핽␇);
+Test_N(q␇핾␇, q␇핾␇, q␇핾␇, q␇핾␇, q␇핾␇);
+Test_N(q␇핿␇, q␇핿␇, q␇핿␇, q␇핿␇, q␇핿␇);
+Test_N(q␇햀␇, q␇햀␇, q␇햀␇, q␇햀␇, q␇햀␇);
+Test_N(q␇햁␇, q␇햁␇, q␇햁␇, q␇햁␇, q␇햁␇);
+Test_N(q␇햂␇, q␇햂␇, q␇햂␇, q␇햂␇, q␇햂␇);
+Test_N(q␇햃␇, q␇햃␇, q␇햃␇, q␇햃␇, q␇햃␇);
+Test_N(q␇햄␇, q␇햄␇, q␇햄␇, q␇햄␇, q␇햄␇);
+Test_N(q␇햅␇, q␇햅␇, q␇햅␇, q␇햅␇, q␇햅␇);
+Test_N(q␇햆␇, q␇햆␇, q␇햆␇, q␇햆␇, q␇햆␇);
+Test_N(q␇햇␇, q␇햇␇, q␇햇␇, q␇햇␇, q␇햇␇);
+Test_N(q␇했␇, q␇했␇, q␇했␇, q␇했␇, q␇했␇);
+Test_N(q␇행␇, q␇행␇, q␇행␇, q␇행␇, q␇행␇);
+Test_N(q␇햊␇, q␇햊␇, q␇햊␇, q␇햊␇, q␇햊␇);
+Test_N(q␇햋␇, q␇햋␇, q␇햋␇, q␇햋␇, q␇햋␇);
+Test_N(q␇햌␇, q␇햌␇, q␇햌␇, q␇햌␇, q␇햌␇);
+Test_N(q␇햍␇, q␇햍␇, q␇햍␇, q␇햍␇, q␇햍␇);
+Test_N(q␇햎␇, q␇햎␇, q␇햎␇, q␇햎␇, q␇햎␇);
+Test_N(q␇햏␇, q␇햏␇, q␇햏␇, q␇햏␇, q␇햏␇);
+Test_N(q␇햐␇, q␇햐␇, q␇햐␇, q␇햐␇, q␇햐␇);
+Test_N(q␇햑␇, q␇햑␇, q␇햑␇, q␇햑␇, q␇햑␇);
+Test_N(q␇햒␇, q␇햒␇, q␇햒␇, q␇햒␇, q␇햒␇);
+Test_N(q␇햓␇, q␇햓␇, q␇햓␇, q␇햓␇, q␇햓␇);
+Test_N(q␇햔␇, q␇햔␇, q␇햔␇, q␇햔␇, q␇햔␇);
+Test_N(q␇햕␇, q␇햕␇, q␇햕␇, q␇햕␇, q␇햕␇);
+Test_N(q␇햖␇, q␇햖␇, q␇햖␇, q␇햖␇, q␇햖␇);
+Test_N(q␇햗␇, q␇햗␇, q␇햗␇, q␇햗␇, q␇햗␇);
+Test_N(q␇햘␇, q␇햘␇, q␇햘␇, q␇햘␇, q␇햘␇);
+Test_N(q␇햙␇, q␇햙␇, q␇햙␇, q␇햙␇, q␇햙␇);
+Test_N(q␇햚␇, q␇햚␇, q␇햚␇, q␇햚␇, q␇햚␇);
+Test_N(q␇햛␇, q␇햛␇, q␇햛␇, q␇햛␇, q␇햛␇);
+Test_N(q␇햜␇, q␇햜␇, q␇햜␇, q␇햜␇, q␇햜␇);
+Test_N(q␇햝␇, q␇햝␇, q␇햝␇, q␇햝␇, q␇햝␇);
+Test_N(q␇햞␇, q␇햞␇, q␇햞␇, q␇햞␇, q␇햞␇);
+Test_N(q␇햟␇, q␇햟␇, q␇햟␇, q␇햟␇, q␇햟␇);
+Test_N(q␇햠␇, q␇햠␇, q␇햠␇, q␇햠␇, q␇햠␇);
+Test_N(q␇햡␇, q␇햡␇, q␇햡␇, q␇햡␇, q␇햡␇);
+Test_N(q␇햢␇, q␇햢␇, q␇햢␇, q␇햢␇, q␇햢␇);
+Test_N(q␇햣␇, q␇햣␇, q␇햣␇, q␇햣␇, q␇햣␇);
+Test_N(q␇햤␇, q␇햤␇, q␇햤␇, q␇햤␇, q␇햤␇);
+Test_N(q␇향␇, q␇향␇, q␇향␇, q␇향␇, q␇향␇);
+Test_N(q␇햦␇, q␇햦␇, q␇햦␇, q␇햦␇, q␇햦␇);
+Test_N(q␇햧␇, q␇햧␇, q␇햧␇, q␇햧␇, q␇햧␇);
+Test_N(q␇햨␇, q␇햨␇, q␇햨␇, q␇햨␇, q␇햨␇);
+Test_N(q␇햩␇, q␇햩␇, q␇햩␇, q␇햩␇, q␇햩␇);
+Test_N(q␇햪␇, q␇햪␇, q␇햪␇, q␇햪␇, q␇햪␇);
+Test_N(q␇햫␇, q␇햫␇, q␇햫␇, q␇햫␇, q␇햫␇);
+Test_N(q␇햬␇, q␇햬␇, q␇햬␇, q␇햬␇, q␇햬␇);
+Test_N(q␇햭␇, q␇햭␇, q␇햭␇, q␇햭␇, q␇햭␇);
+Test_N(q␇햮␇, q␇햮␇, q␇햮␇, q␇햮␇, q␇햮␇);
+Test_N(q␇햯␇, q␇햯␇, q␇햯␇, q␇햯␇, q␇햯␇);
+Test_N(q␇햰␇, q␇햰␇, q␇햰␇, q␇햰␇, q␇햰␇);
+Test_N(q␇햱␇, q␇햱␇, q␇햱␇, q␇햱␇, q␇햱␇);
+Test_N(q␇햲␇, q␇햲␇, q␇햲␇, q␇햲␇, q␇햲␇);
+Test_N(q␇햳␇, q␇햳␇, q␇햳␇, q␇햳␇, q␇햳␇);
+Test_N(q␇햴␇, q␇햴␇, q␇햴␇, q␇햴␇, q␇햴␇);
+Test_N(q␇햵␇, q␇햵␇, q␇햵␇, q␇햵␇, q␇햵␇);
+Test_N(q␇햶␇, q␇햶␇, q␇햶␇, q␇햶␇, q␇햶␇);
+Test_N(q␇햷␇, q␇햷␇, q␇햷␇, q␇햷␇, q␇햷␇);
+Test_N(q␇햸␇, q␇햸␇, q␇햸␇, q␇햸␇, q␇햸␇);
+Test_N(q␇햹␇, q␇햹␇, q␇햹␇, q␇햹␇, q␇햹␇);
+Test_N(q␇햺␇, q␇햺␇, q␇햺␇, q␇햺␇, q␇햺␇);
+Test_N(q␇햻␇, q␇햻␇, q␇햻␇, q␇햻␇, q␇햻␇);
+Test_N(q␇햼␇, q␇햼␇, q␇햼␇, q␇햼␇, q␇햼␇);
+Test_N(q␇햽␇, q␇햽␇, q␇햽␇, q␇햽␇, q␇햽␇);
+Test_N(q␇햾␇, q␇햾␇, q␇햾␇, q␇햾␇, q␇햾␇);
+Test_N(q␇햿␇, q␇햿␇, q␇햿␇, q␇햿␇, q␇햿␇);
+Test_N(q␇헀␇, q␇헀␇, q␇헀␇, q␇헀␇, q␇헀␇);
+Test_N(q␇헁␇, q␇헁␇, q␇헁␇, q␇헁␇, q␇헁␇);
+Test_N(q␇헂␇, q␇헂␇, q␇헂␇, q␇헂␇, q␇헂␇);
+Test_N(q␇헃␇, q␇헃␇, q␇헃␇, q␇헃␇, q␇헃␇);
+Test_N(q␇헄␇, q␇헄␇, q␇헄␇, q␇헄␇, q␇헄␇);
+Test_N(q␇헅␇, q␇헅␇, q␇헅␇, q␇헅␇, q␇헅␇);
+Test_N(q␇헆␇, q␇헆␇, q␇헆␇, q␇헆␇, q␇헆␇);
+Test_N(q␇헇␇, q␇헇␇, q␇헇␇, q␇헇␇, q␇헇␇);
+Test_N(q␇허␇, q␇허␇, q␇허␇, q␇허␇, q␇허␇);
+Test_N(q␇헉␇, q␇헉␇, q␇헉␇, q␇헉␇, q␇헉␇);
+Test_N(q␇헊␇, q␇헊␇, q␇헊␇, q␇헊␇, q␇헊␇);
+Test_N(q␇헋␇, q␇헋␇, q␇헋␇, q␇헋␇, q␇헋␇);
+Test_N(q␇헌␇, q␇헌␇, q␇헌␇, q␇헌␇, q␇헌␇);
+Test_N(q␇헍␇, q␇헍␇, q␇헍␇, q␇헍␇, q␇헍␇);
+Test_N(q␇헎␇, q␇헎␇, q␇헎␇, q␇헎␇, q␇헎␇);
+Test_N(q␇헏␇, q␇헏␇, q␇헏␇, q␇헏␇, q␇헏␇);
+Test_N(q␇헐␇, q␇헐␇, q␇헐␇, q␇헐␇, q␇헐␇);
+Test_N(q␇헑␇, q␇헑␇, q␇헑␇, q␇헑␇, q␇헑␇);
+Test_N(q␇헒␇, q␇헒␇, q␇헒␇, q␇헒␇, q␇헒␇);
+Test_N(q␇헓␇, q␇헓␇, q␇헓␇, q␇헓␇, q␇헓␇);
+Test_N(q␇헔␇, q␇헔␇, q␇헔␇, q␇헔␇, q␇헔␇);
+Test_N(q␇헕␇, q␇헕␇, q␇헕␇, q␇헕␇, q␇헕␇);
+Test_N(q␇헖␇, q␇헖␇, q␇헖␇, q␇헖␇, q␇헖␇);
+Test_N(q␇헗␇, q␇헗␇, q␇헗␇, q␇헗␇, q␇헗␇);
+Test_N(q␇험␇, q␇험␇, q␇험␇, q␇험␇, q␇험␇);
+Test_N(q␇헙␇, q␇헙␇, q␇헙␇, q␇헙␇, q␇헙␇);
+Test_N(q␇헚␇, q␇헚␇, q␇헚␇, q␇헚␇, q␇헚␇);
+Test_N(q␇헛␇, q␇헛␇, q␇헛␇, q␇헛␇, q␇헛␇);
+Test_N(q␇헜␇, q␇헜␇, q␇헜␇, q␇헜␇, q␇헜␇);
+Test_N(q␇헝␇, q␇헝␇, q␇헝␇, q␇헝␇, q␇헝␇);
+Test_N(q␇헞␇, q␇헞␇, q␇헞␇, q␇헞␇, q␇헞␇);
+Test_N(q␇헟␇, q␇헟␇, q␇헟␇, q␇헟␇, q␇헟␇);
+Test_N(q␇헠␇, q␇헠␇, q␇헠␇, q␇헠␇, q␇헠␇);
+Test_N(q␇헡␇, q␇헡␇, q␇헡␇, q␇헡␇, q␇헡␇);
+Test_N(q␇헢␇, q␇헢␇, q␇헢␇, q␇헢␇, q␇헢␇);
+Test_N(q␇헣␇, q␇헣␇, q␇헣␇, q␇헣␇, q␇헣␇);
+Test_N(q␇헤␇, q␇헤␇, q␇헤␇, q␇헤␇, q␇헤␇);
+Test_N(q␇헥␇, q␇헥␇, q␇헥␇, q␇헥␇, q␇헥␇);
+Test_N(q␇헦␇, q␇헦␇, q␇헦␇, q␇헦␇, q␇헦␇);
+Test_N(q␇헧␇, q␇헧␇, q␇헧␇, q␇헧␇, q␇헧␇);
+Test_N(q␇헨␇, q␇헨␇, q␇헨␇, q␇헨␇, q␇헨␇);
+Test_N(q␇헩␇, q␇헩␇, q␇헩␇, q␇헩␇, q␇헩␇);
+Test_N(q␇헪␇, q␇헪␇, q␇헪␇, q␇헪␇, q␇헪␇);
+Test_N(q␇헫␇, q␇헫␇, q␇헫␇, q␇헫␇, q␇헫␇);
+Test_N(q␇헬␇, q␇헬␇, q␇헬␇, q␇헬␇, q␇헬␇);
+Test_N(q␇헭␇, q␇헭␇, q␇헭␇, q␇헭␇, q␇헭␇);
+Test_N(q␇헮␇, q␇헮␇, q␇헮␇, q␇헮␇, q␇헮␇);
+Test_N(q␇헯␇, q␇헯␇, q␇헯␇, q␇헯␇, q␇헯␇);
+Test_N(q␇헰␇, q␇헰␇, q␇헰␇, q␇헰␇, q␇헰␇);
+Test_N(q␇헱␇, q␇헱␇, q␇헱␇, q␇헱␇, q␇헱␇);
+Test_N(q␇헲␇, q␇헲␇, q␇헲␇, q␇헲␇, q␇헲␇);
+Test_N(q␇헳␇, q␇헳␇, q␇헳␇, q␇헳␇, q␇헳␇);
+Test_N(q␇헴␇, q␇헴␇, q␇헴␇, q␇헴␇, q␇헴␇);
+Test_N(q␇헵␇, q␇헵␇, q␇헵␇, q␇헵␇, q␇헵␇);
+Test_N(q␇헶␇, q␇헶␇, q␇헶␇, q␇헶␇, q␇헶␇);
+Test_N(q␇헷␇, q␇헷␇, q␇헷␇, q␇헷␇, q␇헷␇);
+Test_N(q␇헸␇, q␇헸␇, q␇헸␇, q␇헸␇, q␇헸␇);
+Test_N(q␇헹␇, q␇헹␇, q␇헹␇, q␇헹␇, q␇헹␇);
+Test_N(q␇헺␇, q␇헺␇, q␇헺␇, q␇헺␇, q␇헺␇);
+Test_N(q␇헻␇, q␇헻␇, q␇헻␇, q␇헻␇, q␇헻␇);
+Test_N(q␇헼␇, q␇헼␇, q␇헼␇, q␇헼␇, q␇헼␇);
+Test_N(q␇헽␇, q␇헽␇, q␇헽␇, q␇헽␇, q␇헽␇);
+Test_N(q␇헾␇, q␇헾␇, q␇헾␇, q␇헾␇, q␇헾␇);
+Test_N(q␇헿␇, q␇헿␇, q␇헿␇, q␇헿␇, q␇헿␇);
+Test_N(q␇혀␇, q␇혀␇, q␇혀␇, q␇혀␇, q␇혀␇);
+Test_N(q␇혁␇, q␇혁␇, q␇혁␇, q␇혁␇, q␇혁␇);
+Test_N(q␇혂␇, q␇혂␇, q␇혂␇, q␇혂␇, q␇혂␇);
+Test_N(q␇혃␇, q␇혃␇, q␇혃␇, q␇혃␇, q␇혃␇);
+Test_N(q␇현␇, q␇현␇, q␇현␇, q␇현␇, q␇현␇);
+Test_N(q␇혅␇, q␇혅␇, q␇혅␇, q␇혅␇, q␇혅␇);
+Test_N(q␇혆␇, q␇혆␇, q␇혆␇, q␇혆␇, q␇혆␇);
+Test_N(q␇혇␇, q␇혇␇, q␇혇␇, q␇혇␇, q␇혇␇);
+Test_N(q␇혈␇, q␇혈␇, q␇혈␇, q␇혈␇, q␇혈␇);
+Test_N(q␇혉␇, q␇혉␇, q␇혉␇, q␇혉␇, q␇혉␇);
+Test_N(q␇혊␇, q␇혊␇, q␇혊␇, q␇혊␇, q␇혊␇);
+Test_N(q␇혋␇, q␇혋␇, q␇혋␇, q␇혋␇, q␇혋␇);
+Test_N(q␇혌␇, q␇혌␇, q␇혌␇, q␇혌␇, q␇혌␇);
+Test_N(q␇혍␇, q␇혍␇, q␇혍␇, q␇혍␇, q␇혍␇);
+Test_N(q␇혎␇, q␇혎␇, q␇혎␇, q␇혎␇, q␇혎␇);
+Test_N(q␇혏␇, q␇혏␇, q␇혏␇, q␇혏␇, q␇혏␇);
+Test_N(q␇혐␇, q␇혐␇, q␇혐␇, q␇혐␇, q␇혐␇);
+Test_N(q␇협␇, q␇협␇, q␇협␇, q␇협␇, q␇협␇);
+Test_N(q␇혒␇, q␇혒␇, q␇혒␇, q␇혒␇, q␇혒␇);
+Test_N(q␇혓␇, q␇혓␇, q␇혓␇, q␇혓␇, q␇혓␇);
+Test_N(q␇혔␇, q␇혔␇, q␇혔␇, q␇혔␇, q␇혔␇);
+Test_N(q␇형␇, q␇형␇, q␇형␇, q␇형␇, q␇형␇);
+Test_N(q␇혖␇, q␇혖␇, q␇혖␇, q␇혖␇, q␇혖␇);
+Test_N(q␇혗␇, q␇혗␇, q␇혗␇, q␇혗␇, q␇혗␇);
+Test_N(q␇혘␇, q␇혘␇, q␇혘␇, q␇혘␇, q␇혘␇);
+Test_N(q␇혙␇, q␇혙␇, q␇혙␇, q␇혙␇, q␇혙␇);
+Test_N(q␇혚␇, q␇혚␇, q␇혚␇, q␇혚␇, q␇혚␇);
+Test_N(q␇혛␇, q␇혛␇, q␇혛␇, q␇혛␇, q␇혛␇);
+Test_N(q␇혜␇, q␇혜␇, q␇혜␇, q␇혜␇, q␇혜␇);
+Test_N(q␇혝␇, q␇혝␇, q␇혝␇, q␇혝␇, q␇혝␇);
+Test_N(q␇혞␇, q␇혞␇, q␇혞␇, q␇혞␇, q␇혞␇);
+Test_N(q␇혟␇, q␇혟␇, q␇혟␇, q␇혟␇, q␇혟␇);
+Test_N(q␇혠␇, q␇혠␇, q␇혠␇, q␇혠␇, q␇혠␇);
+Test_N(q␇혡␇, q␇혡␇, q␇혡␇, q␇혡␇, q␇혡␇);
+Test_N(q␇혢␇, q␇혢␇, q␇혢␇, q␇혢␇, q␇혢␇);
+Test_N(q␇혣␇, q␇혣␇, q␇혣␇, q␇혣␇, q␇혣␇);
+Test_N(q␇혤␇, q␇혤␇, q␇혤␇, q␇혤␇, q␇혤␇);
+Test_N(q␇혥␇, q␇혥␇, q␇혥␇, q␇혥␇, q␇혥␇);
+Test_N(q␇혦␇, q␇혦␇, q␇혦␇, q␇혦␇, q␇혦␇);
+Test_N(q␇혧␇, q␇혧␇, q␇혧␇, q␇혧␇, q␇혧␇);
+Test_N(q␇혨␇, q␇혨␇, q␇혨␇, q␇혨␇, q␇혨␇);
+Test_N(q␇혩␇, q␇혩␇, q␇혩␇, q␇혩␇, q␇혩␇);
+Test_N(q␇혪␇, q␇혪␇, q␇혪␇, q␇혪␇, q␇혪␇);
+Test_N(q␇혫␇, q␇혫␇, q␇혫␇, q␇혫␇, q␇혫␇);
+Test_N(q␇혬␇, q␇혬␇, q␇혬␇, q␇혬␇, q␇혬␇);
+Test_N(q␇혭␇, q␇혭␇, q␇혭␇, q␇혭␇, q␇혭␇);
+Test_N(q␇혮␇, q␇혮␇, q␇혮␇, q␇혮␇, q␇혮␇);
+Test_N(q␇혯␇, q␇혯␇, q␇혯␇, q␇혯␇, q␇혯␇);
+Test_N(q␇혰␇, q␇혰␇, q␇혰␇, q␇혰␇, q␇혰␇);
+Test_N(q␇혱␇, q␇혱␇, q␇혱␇, q␇혱␇, q␇혱␇);
+Test_N(q␇혲␇, q␇혲␇, q␇혲␇, q␇혲␇, q␇혲␇);
+Test_N(q␇혳␇, q␇혳␇, q␇혳␇, q␇혳␇, q␇혳␇);
+Test_N(q␇혴␇, q␇혴␇, q␇혴␇, q␇혴␇, q␇혴␇);
+Test_N(q␇혵␇, q␇혵␇, q␇혵␇, q␇혵␇, q␇혵␇);
+Test_N(q␇혶␇, q␇혶␇, q␇혶␇, q␇혶␇, q␇혶␇);
+Test_N(q␇혷␇, q␇혷␇, q␇혷␇, q␇혷␇, q␇혷␇);
+Test_N(q␇호␇, q␇호␇, q␇호␇, q␇호␇, q␇호␇);
+Test_N(q␇혹␇, q␇혹␇, q␇혹␇, q␇혹␇, q␇혹␇);
+Test_N(q␇혺␇, q␇혺␇, q␇혺␇, q␇혺␇, q␇혺␇);
+Test_N(q␇혻␇, q␇혻␇, q␇혻␇, q␇혻␇, q␇혻␇);
+Test_N(q␇혼␇, q␇혼␇, q␇혼␇, q␇혼␇, q␇혼␇);
+Test_N(q␇혽␇, q␇혽␇, q␇혽␇, q␇혽␇, q␇혽␇);
+Test_N(q␇혾␇, q␇혾␇, q␇혾␇, q␇혾␇, q␇혾␇);
+Test_N(q␇혿␇, q␇혿␇, q␇혿␇, q␇혿␇, q␇혿␇);
+Test_N(q␇홀␇, q␇홀␇, q␇홀␇, q␇홀␇, q␇홀␇);
+Test_N(q␇홁␇, q␇홁␇, q␇홁␇, q␇홁␇, q␇홁␇);
+Test_N(q␇홂␇, q␇홂␇, q␇홂␇, q␇홂␇, q␇홂␇);
+Test_N(q␇홃␇, q␇홃␇, q␇홃␇, q␇홃␇, q␇홃␇);
+Test_N(q␇홄␇, q␇홄␇, q␇홄␇, q␇홄␇, q␇홄␇);
+Test_N(q␇홅␇, q␇홅␇, q␇홅␇, q␇홅␇, q␇홅␇);
+Test_N(q␇홆␇, q␇홆␇, q␇홆␇, q␇홆␇, q␇홆␇);
+Test_N(q␇홇␇, q␇홇␇, q␇홇␇, q␇홇␇, q␇홇␇);
+Test_N(q␇홈␇, q␇홈␇, q␇홈␇, q␇홈␇, q␇홈␇);
+Test_N(q␇홉␇, q␇홉␇, q␇홉␇, q␇홉␇, q␇홉␇);
+Test_N(q␇홊␇, q␇홊␇, q␇홊␇, q␇홊␇, q␇홊␇);
+Test_N(q␇홋␇, q␇홋␇, q␇홋␇, q␇홋␇, q␇홋␇);
+Test_N(q␇홌␇, q␇홌␇, q␇홌␇, q␇홌␇, q␇홌␇);
+Test_N(q␇홍␇, q␇홍␇, q␇홍␇, q␇홍␇, q␇홍␇);
+Test_N(q␇홎␇, q␇홎␇, q␇홎␇, q␇홎␇, q␇홎␇);
+Test_N(q␇홏␇, q␇홏␇, q␇홏␇, q␇홏␇, q␇홏␇);
+Test_N(q␇홐␇, q␇홐␇, q␇홐␇, q␇홐␇, q␇홐␇);
+Test_N(q␇홑␇, q␇홑␇, q␇홑␇, q␇홑␇, q␇홑␇);
+Test_N(q␇홒␇, q␇홒␇, q␇홒␇, q␇홒␇, q␇홒␇);
+Test_N(q␇홓␇, q␇홓␇, q␇홓␇, q␇홓␇, q␇홓␇);
+Test_N(q␇화␇, q␇화␇, q␇화␇, q␇화␇, q␇화␇);
+Test_N(q␇확␇, q␇확␇, q␇확␇, q␇확␇, q␇확␇);
+Test_N(q␇홖␇, q␇홖␇, q␇홖␇, q␇홖␇, q␇홖␇);
+Test_N(q␇홗␇, q␇홗␇, q␇홗␇, q␇홗␇, q␇홗␇);
+Test_N(q␇환␇, q␇환␇, q␇환␇, q␇환␇, q␇환␇);
+Test_N(q␇홙␇, q␇홙␇, q␇홙␇, q␇홙␇, q␇홙␇);
+Test_N(q␇홚␇, q␇홚␇, q␇홚␇, q␇홚␇, q␇홚␇);
+Test_N(q␇홛␇, q␇홛␇, q␇홛␇, q␇홛␇, q␇홛␇);
+Test_N(q␇활␇, q␇활␇, q␇활␇, q␇활␇, q␇활␇);
+Test_N(q␇홝␇, q␇홝␇, q␇홝␇, q␇홝␇, q␇홝␇);
+Test_N(q␇홞␇, q␇홞␇, q␇홞␇, q␇홞␇, q␇홞␇);
+Test_N(q␇홟␇, q␇홟␇, q␇홟␇, q␇홟␇, q␇홟␇);
+Test_N(q␇홠␇, q␇홠␇, q␇홠␇, q␇홠␇, q␇홠␇);
+Test_N(q␇홡␇, q␇홡␇, q␇홡␇, q␇홡␇, q␇홡␇);
+Test_N(q␇홢␇, q␇홢␇, q␇홢␇, q␇홢␇, q␇홢␇);
+Test_N(q␇홣␇, q␇홣␇, q␇홣␇, q␇홣␇, q␇홣␇);
+Test_N(q␇홤␇, q␇홤␇, q␇홤␇, q␇홤␇, q␇홤␇);
+Test_N(q␇홥␇, q␇홥␇, q␇홥␇, q␇홥␇, q␇홥␇);
+Test_N(q␇홦␇, q␇홦␇, q␇홦␇, q␇홦␇, q␇홦␇);
+Test_N(q␇홧␇, q␇홧␇, q␇홧␇, q␇홧␇, q␇홧␇);
+Test_N(q␇홨␇, q␇홨␇, q␇홨␇, q␇홨␇, q␇홨␇);
+Test_N(q␇황␇, q␇황␇, q␇황␇, q␇황␇, q␇황␇);
+Test_N(q␇홪␇, q␇홪␇, q␇홪␇, q␇홪␇, q␇홪␇);
+Test_N(q␇홫␇, q␇홫␇, q␇홫␇, q␇홫␇, q␇홫␇);
+Test_N(q␇홬␇, q␇홬␇, q␇홬␇, q␇홬␇, q␇홬␇);
+Test_N(q␇홭␇, q␇홭␇, q␇홭␇, q␇홭␇, q␇홭␇);
+Test_N(q␇홮␇, q␇홮␇, q␇홮␇, q␇홮␇, q␇홮␇);
+Test_N(q␇홯␇, q␇홯␇, q␇홯␇, q␇홯␇, q␇홯␇);
+Test_N(q␇홰␇, q␇홰␇, q␇홰␇, q␇홰␇, q␇홰␇);
+Test_N(q␇홱␇, q␇홱␇, q␇홱␇, q␇홱␇, q␇홱␇);
+Test_N(q␇홲␇, q␇홲␇, q␇홲␇, q␇홲␇, q␇홲␇);
+Test_N(q␇홳␇, q␇홳␇, q␇홳␇, q␇홳␇, q␇홳␇);
+Test_N(q␇홴␇, q␇홴␇, q␇홴␇, q␇홴␇, q␇홴␇);
+Test_N(q␇홵␇, q␇홵␇, q␇홵␇, q␇홵␇, q␇홵␇);
+Test_N(q␇홶␇, q␇홶␇, q␇홶␇, q␇홶␇, q␇홶␇);
+Test_N(q␇홷␇, q␇홷␇, q␇홷␇, q␇홷␇, q␇홷␇);
+Test_N(q␇홸␇, q␇홸␇, q␇홸␇, q␇홸␇, q␇홸␇);
+Test_N(q␇홹␇, q␇홹␇, q␇홹␇, q␇홹␇, q␇홹␇);
+Test_N(q␇홺␇, q␇홺␇, q␇홺␇, q␇홺␇, q␇홺␇);
+Test_N(q␇홻␇, q␇홻␇, q␇홻␇, q␇홻␇, q␇홻␇);
+Test_N(q␇홼␇, q␇홼␇, q␇홼␇, q␇홼␇, q␇홼␇);
+Test_N(q␇홽␇, q␇홽␇, q␇홽␇, q␇홽␇, q␇홽␇);
+Test_N(q␇홾␇, q␇홾␇, q␇홾␇, q␇홾␇, q␇홾␇);
+Test_N(q␇홿␇, q␇홿␇, q␇홿␇, q␇홿␇, q␇홿␇);
+Test_N(q␇횀␇, q␇횀␇, q␇횀␇, q␇횀␇, q␇횀␇);
+Test_N(q␇횁␇, q␇횁␇, q␇횁␇, q␇횁␇, q␇횁␇);
+Test_N(q␇횂␇, q␇횂␇, q␇횂␇, q␇횂␇, q␇횂␇);
+Test_N(q␇횃␇, q␇횃␇, q␇횃␇, q␇횃␇, q␇횃␇);
+Test_N(q␇횄␇, q␇횄␇, q␇횄␇, q␇횄␇, q␇횄␇);
+Test_N(q␇횅␇, q␇횅␇, q␇횅␇, q␇횅␇, q␇횅␇);
+Test_N(q␇횆␇, q␇횆␇, q␇횆␇, q␇횆␇, q␇횆␇);
+Test_N(q␇횇␇, q␇횇␇, q␇횇␇, q␇횇␇, q␇횇␇);
+Test_N(q␇횈␇, q␇횈␇, q␇횈␇, q␇횈␇, q␇횈␇);
+Test_N(q␇횉␇, q␇횉␇, q␇횉␇, q␇횉␇, q␇횉␇);
+Test_N(q␇횊␇, q␇횊␇, q␇횊␇, q␇횊␇, q␇횊␇);
+Test_N(q␇횋␇, q␇횋␇, q␇횋␇, q␇횋␇, q␇횋␇);
+Test_N(q␇회␇, q␇회␇, q␇회␇, q␇회␇, q␇회␇);
+Test_N(q␇획␇, q␇획␇, q␇획␇, q␇획␇, q␇획␇);
+Test_N(q␇횎␇, q␇횎␇, q␇횎␇, q␇횎␇, q␇횎␇);
+Test_N(q␇횏␇, q␇횏␇, q␇횏␇, q␇횏␇, q␇횏␇);
+Test_N(q␇횐␇, q␇횐␇, q␇횐␇, q␇횐␇, q␇횐␇);
+Test_N(q␇횑␇, q␇횑␇, q␇횑␇, q␇횑␇, q␇횑␇);
+Test_N(q␇횒␇, q␇횒␇, q␇횒␇, q␇횒␇, q␇횒␇);
+Test_N(q␇횓␇, q␇횓␇, q␇횓␇, q␇횓␇, q␇횓␇);
+Test_N(q␇횔␇, q␇횔␇, q␇횔␇, q␇횔␇, q␇횔␇);
+Test_N(q␇횕␇, q␇횕␇, q␇횕␇, q␇횕␇, q␇횕␇);
+Test_N(q␇횖␇, q␇횖␇, q␇횖␇, q␇횖␇, q␇횖␇);
+Test_N(q␇횗␇, q␇횗␇, q␇횗␇, q␇횗␇, q␇횗␇);
+Test_N(q␇횘␇, q␇횘␇, q␇횘␇, q␇횘␇, q␇횘␇);
+Test_N(q␇횙␇, q␇횙␇, q␇횙␇, q␇횙␇, q␇횙␇);
+Test_N(q␇횚␇, q␇횚␇, q␇횚␇, q␇횚␇, q␇횚␇);
+Test_N(q␇횛␇, q␇횛␇, q␇횛␇, q␇횛␇, q␇횛␇);
+Test_N(q␇횜␇, q␇횜␇, q␇횜␇, q␇횜␇, q␇횜␇);
+Test_N(q␇횝␇, q␇횝␇, q␇횝␇, q␇횝␇, q␇횝␇);
+Test_N(q␇횞␇, q␇횞␇, q␇횞␇, q␇횞␇, q␇횞␇);
+Test_N(q␇횟␇, q␇횟␇, q␇횟␇, q␇횟␇, q␇횟␇);
+Test_N(q␇횠␇, q␇횠␇, q␇횠␇, q␇횠␇, q␇횠␇);
+Test_N(q␇횡␇, q␇횡␇, q␇횡␇, q␇횡␇, q␇횡␇);
+Test_N(q␇횢␇, q␇횢␇, q␇횢␇, q␇횢␇, q␇횢␇);
+Test_N(q␇횣␇, q␇횣␇, q␇횣␇, q␇횣␇, q␇횣␇);
+Test_N(q␇횤␇, q␇횤␇, q␇횤␇, q␇횤␇, q␇횤␇);
+Test_N(q␇횥␇, q␇횥␇, q␇횥␇, q␇횥␇, q␇횥␇);
+Test_N(q␇횦␇, q␇횦␇, q␇횦␇, q␇횦␇, q␇횦␇);
+Test_N(q␇횧␇, q␇횧␇, q␇횧␇, q␇횧␇, q␇횧␇);
+Test_N(q␇효␇, q␇효␇, q␇효␇, q␇효␇, q␇효␇);
+Test_N(q␇횩␇, q␇횩␇, q␇횩␇, q␇횩␇, q␇횩␇);
+Test_N(q␇횪␇, q␇횪␇, q␇횪␇, q␇횪␇, q␇횪␇);
+Test_N(q␇횫␇, q␇횫␇, q␇횫␇, q␇횫␇, q␇횫␇);
+Test_N(q␇횬␇, q␇횬␇, q␇횬␇, q␇횬␇, q␇횬␇);
+Test_N(q␇횭␇, q␇횭␇, q␇횭␇, q␇횭␇, q␇횭␇);
+Test_N(q␇횮␇, q␇횮␇, q␇횮␇, q␇횮␇, q␇횮␇);
+Test_N(q␇횯␇, q␇횯␇, q␇횯␇, q␇횯␇, q␇횯␇);
+Test_N(q␇횰␇, q␇횰␇, q␇횰␇, q␇횰␇, q␇횰␇);
+Test_N(q␇횱␇, q␇횱␇, q␇횱␇, q␇횱␇, q␇횱␇);
+Test_N(q␇횲␇, q␇횲␇, q␇횲␇, q␇횲␇, q␇횲␇);
+Test_N(q␇횳␇, q␇횳␇, q␇횳␇, q␇횳␇, q␇횳␇);
+Test_N(q␇횴␇, q␇횴␇, q␇횴␇, q␇횴␇, q␇횴␇);
+Test_N(q␇횵␇, q␇횵␇, q␇횵␇, q␇횵␇, q␇횵␇);
+Test_N(q␇횶␇, q␇횶␇, q␇횶␇, q␇횶␇, q␇횶␇);
+Test_N(q␇횷␇, q␇횷␇, q␇횷␇, q␇횷␇, q␇횷␇);
+Test_N(q␇횸␇, q␇횸␇, q␇횸␇, q␇횸␇, q␇횸␇);
+Test_N(q␇횹␇, q␇횹␇, q␇횹␇, q␇횹␇, q␇횹␇);
+Test_N(q␇횺␇, q␇횺␇, q␇횺␇, q␇횺␇, q␇횺␇);
+Test_N(q␇횻␇, q␇횻␇, q␇횻␇, q␇횻␇, q␇횻␇);
+Test_N(q␇횼␇, q␇횼␇, q␇횼␇, q␇횼␇, q␇횼␇);
+Test_N(q␇횽␇, q␇횽␇, q␇횽␇, q␇횽␇, q␇횽␇);
+Test_N(q␇횾␇, q␇횾␇, q␇횾␇, q␇횾␇, q␇횾␇);
+Test_N(q␇횿␇, q␇횿␇, q␇횿␇, q␇횿␇, q␇횿␇);
+Test_N(q␇훀␇, q␇훀␇, q␇훀␇, q␇훀␇, q␇훀␇);
+Test_N(q␇훁␇, q␇훁␇, q␇훁␇, q␇훁␇, q␇훁␇);
+Test_N(q␇훂␇, q␇훂␇, q␇훂␇, q␇훂␇, q␇훂␇);
+Test_N(q␇훃␇, q␇훃␇, q␇훃␇, q␇훃␇, q␇훃␇);
+Test_N(q␇후␇, q␇후␇, q␇후␇, q␇후␇, q␇후␇);
+Test_N(q␇훅␇, q␇훅␇, q␇훅␇, q␇훅␇, q␇훅␇);
+Test_N(q␇훆␇, q␇훆␇, q␇훆␇, q␇훆␇, q␇훆␇);
+Test_N(q␇훇␇, q␇훇␇, q␇훇␇, q␇훇␇, q␇훇␇);
+Test_N(q␇훈␇, q␇훈␇, q␇훈␇, q␇훈␇, q␇훈␇);
+Test_N(q␇훉␇, q␇훉␇, q␇훉␇, q␇훉␇, q␇훉␇);
+Test_N(q␇훊␇, q␇훊␇, q␇훊␇, q␇훊␇, q␇훊␇);
+Test_N(q␇훋␇, q␇훋␇, q␇훋␇, q␇훋␇, q␇훋␇);
+Test_N(q␇훌␇, q␇훌␇, q␇훌␇, q␇훌␇, q␇훌␇);
+Test_N(q␇훍␇, q␇훍␇, q␇훍␇, q␇훍␇, q␇훍␇);
+Test_N(q␇훎␇, q␇훎␇, q␇훎␇, q␇훎␇, q␇훎␇);
+Test_N(q␇훏␇, q␇훏␇, q␇훏␇, q␇훏␇, q␇훏␇);
+Test_N(q␇훐␇, q␇훐␇, q␇훐␇, q␇훐␇, q␇훐␇);
+Test_N(q␇훑␇, q␇훑␇, q␇훑␇, q␇훑␇, q␇훑␇);
+Test_N(q␇훒␇, q␇훒␇, q␇훒␇, q␇훒␇, q␇훒␇);
+Test_N(q␇훓␇, q␇훓␇, q␇훓␇, q␇훓␇, q␇훓␇);
+Test_N(q␇훔␇, q␇훔␇, q␇훔␇, q␇훔␇, q␇훔␇);
+Test_N(q␇훕␇, q␇훕␇, q␇훕␇, q␇훕␇, q␇훕␇);
+Test_N(q␇훖␇, q␇훖␇, q␇훖␇, q␇훖␇, q␇훖␇);
+Test_N(q␇훗␇, q␇훗␇, q␇훗␇, q␇훗␇, q␇훗␇);
+Test_N(q␇훘␇, q␇훘␇, q␇훘␇, q␇훘␇, q␇훘␇);
+Test_N(q␇훙␇, q␇훙␇, q␇훙␇, q␇훙␇, q␇훙␇);
+Test_N(q␇훚␇, q␇훚␇, q␇훚␇, q␇훚␇, q␇훚␇);
+Test_N(q␇훛␇, q␇훛␇, q␇훛␇, q␇훛␇, q␇훛␇);
+Test_N(q␇훜␇, q␇훜␇, q␇훜␇, q␇훜␇, q␇훜␇);
+Test_N(q␇훝␇, q␇훝␇, q␇훝␇, q␇훝␇, q␇훝␇);
+Test_N(q␇훞␇, q␇훞␇, q␇훞␇, q␇훞␇, q␇훞␇);
+Test_N(q␇훟␇, q␇훟␇, q␇훟␇, q␇훟␇, q␇훟␇);
+Test_N(q␇훠␇, q␇훠␇, q␇훠␇, q␇훠␇, q␇훠␇);
+Test_N(q␇훡␇, q␇훡␇, q␇훡␇, q␇훡␇, q␇훡␇);
+Test_N(q␇훢␇, q␇훢␇, q␇훢␇, q␇훢␇, q␇훢␇);
+Test_N(q␇훣␇, q␇훣␇, q␇훣␇, q␇훣␇, q␇훣␇);
+Test_N(q␇훤␇, q␇훤␇, q␇훤␇, q␇훤␇, q␇훤␇);
+Test_N(q␇훥␇, q␇훥␇, q␇훥␇, q␇훥␇, q␇훥␇);
+Test_N(q␇훦␇, q␇훦␇, q␇훦␇, q␇훦␇, q␇훦␇);
+Test_N(q␇훧␇, q␇훧␇, q␇훧␇, q␇훧␇, q␇훧␇);
+Test_N(q␇훨␇, q␇훨␇, q␇훨␇, q␇훨␇, q␇훨␇);
+Test_N(q␇훩␇, q␇훩␇, q␇훩␇, q␇훩␇, q␇훩␇);
+Test_N(q␇훪␇, q␇훪␇, q␇훪␇, q␇훪␇, q␇훪␇);
+Test_N(q␇훫␇, q␇훫␇, q␇훫␇, q␇훫␇, q␇훫␇);
+Test_N(q␇훬␇, q␇훬␇, q␇훬␇, q␇훬␇, q␇훬␇);
+Test_N(q␇훭␇, q␇훭␇, q␇훭␇, q␇훭␇, q␇훭␇);
+Test_N(q␇훮␇, q␇훮␇, q␇훮␇, q␇훮␇, q␇훮␇);
+Test_N(q␇훯␇, q␇훯␇, q␇훯␇, q␇훯␇, q␇훯␇);
+Test_N(q␇훰␇, q␇훰␇, q␇훰␇, q␇훰␇, q␇훰␇);
+Test_N(q␇훱␇, q␇훱␇, q␇훱␇, q␇훱␇, q␇훱␇);
+Test_N(q␇훲␇, q␇훲␇, q␇훲␇, q␇훲␇, q␇훲␇);
+Test_N(q␇훳␇, q␇훳␇, q␇훳␇, q␇훳␇, q␇훳␇);
+Test_N(q␇훴␇, q␇훴␇, q␇훴␇, q␇훴␇, q␇훴␇);
+Test_N(q␇훵␇, q␇훵␇, q␇훵␇, q␇훵␇, q␇훵␇);
+Test_N(q␇훶␇, q␇훶␇, q␇훶␇, q␇훶␇, q␇훶␇);
+Test_N(q␇훷␇, q␇훷␇, q␇훷␇, q␇훷␇, q␇훷␇);
+Test_N(q␇훸␇, q␇훸␇, q␇훸␇, q␇훸␇, q␇훸␇);
+Test_N(q␇훹␇, q␇훹␇, q␇훹␇, q␇훹␇, q␇훹␇);
+Test_N(q␇훺␇, q␇훺␇, q␇훺␇, q␇훺␇, q␇훺␇);
+Test_N(q␇훻␇, q␇훻␇, q␇훻␇, q␇훻␇, q␇훻␇);
+Test_N(q␇훼␇, q␇훼␇, q␇훼␇, q␇훼␇, q␇훼␇);
+Test_N(q␇훽␇, q␇훽␇, q␇훽␇, q␇훽␇, q␇훽␇);
+Test_N(q␇훾␇, q␇훾␇, q␇훾␇, q␇훾␇, q␇훾␇);
+Test_N(q␇훿␇, q␇훿␇, q␇훿␇, q␇훿␇, q␇훿␇);
+Test_N(q␇휀␇, q␇휀␇, q␇휀␇, q␇휀␇, q␇휀␇);
+Test_N(q␇휁␇, q␇휁␇, q␇휁␇, q␇휁␇, q␇휁␇);
+Test_N(q␇휂␇, q␇휂␇, q␇휂␇, q␇휂␇, q␇휂␇);
+Test_N(q␇휃␇, q␇휃␇, q␇휃␇, q␇휃␇, q␇휃␇);
+Test_N(q␇휄␇, q␇휄␇, q␇휄␇, q␇휄␇, q␇휄␇);
+Test_N(q␇휅␇, q␇휅␇, q␇휅␇, q␇휅␇, q␇휅␇);
+Test_N(q␇휆␇, q␇휆␇, q␇휆␇, q␇휆␇, q␇휆␇);
+Test_N(q␇휇␇, q␇휇␇, q␇휇␇, q␇휇␇, q␇휇␇);
+Test_N(q␇휈␇, q␇휈␇, q␇휈␇, q␇휈␇, q␇휈␇);
+Test_N(q␇휉␇, q␇휉␇, q␇휉␇, q␇휉␇, q␇휉␇);
+Test_N(q␇휊␇, q␇휊␇, q␇휊␇, q␇휊␇, q␇휊␇);
+Test_N(q␇휋␇, q␇휋␇, q␇휋␇, q␇휋␇, q␇휋␇);
+Test_N(q␇휌␇, q␇휌␇, q␇휌␇, q␇휌␇, q␇휌␇);
+Test_N(q␇휍␇, q␇휍␇, q␇휍␇, q␇휍␇, q␇휍␇);
+Test_N(q␇휎␇, q␇휎␇, q␇휎␇, q␇휎␇, q␇휎␇);
+Test_N(q␇휏␇, q␇휏␇, q␇휏␇, q␇휏␇, q␇휏␇);
+Test_N(q␇휐␇, q␇휐␇, q␇휐␇, q␇휐␇, q␇휐␇);
+Test_N(q␇휑␇, q␇휑␇, q␇휑␇, q␇휑␇, q␇휑␇);
+Test_N(q␇휒␇, q␇휒␇, q␇휒␇, q␇휒␇, q␇휒␇);
+Test_N(q␇휓␇, q␇휓␇, q␇휓␇, q␇휓␇, q␇휓␇);
+Test_N(q␇휔␇, q␇휔␇, q␇휔␇, q␇휔␇, q␇휔␇);
+Test_N(q␇휕␇, q␇휕␇, q␇휕␇, q␇휕␇, q␇휕␇);
+Test_N(q␇휖␇, q␇휖␇, q␇휖␇, q␇휖␇, q␇휖␇);
+Test_N(q␇휗␇, q␇휗␇, q␇휗␇, q␇휗␇, q␇휗␇);
+Test_N(q␇휘␇, q␇휘␇, q␇휘␇, q␇휘␇, q␇휘␇);
+Test_N(q␇휙␇, q␇휙␇, q␇휙␇, q␇휙␇, q␇휙␇);
+Test_N(q␇휚␇, q␇휚␇, q␇휚␇, q␇휚␇, q␇휚␇);
+Test_N(q␇휛␇, q␇휛␇, q␇휛␇, q␇휛␇, q␇휛␇);
+Test_N(q␇휜␇, q␇휜␇, q␇휜␇, q␇휜␇, q␇휜␇);
+Test_N(q␇휝␇, q␇휝␇, q␇휝␇, q␇휝␇, q␇휝␇);
+Test_N(q␇휞␇, q␇휞␇, q␇휞␇, q␇휞␇, q␇휞␇);
+Test_N(q␇휟␇, q␇휟␇, q␇휟␇, q␇휟␇, q␇휟␇);
+Test_N(q␇휠␇, q␇휠␇, q␇휠␇, q␇휠␇, q␇휠␇);
+Test_N(q␇휡␇, q␇휡␇, q␇휡␇, q␇휡␇, q␇휡␇);
+Test_N(q␇휢␇, q␇휢␇, q␇휢␇, q␇휢␇, q␇휢␇);
+Test_N(q␇휣␇, q␇휣␇, q␇휣␇, q␇휣␇, q␇휣␇);
+Test_N(q␇휤␇, q␇휤␇, q␇휤␇, q␇휤␇, q␇휤␇);
+Test_N(q␇휥␇, q␇휥␇, q␇휥␇, q␇휥␇, q␇휥␇);
+Test_N(q␇휦␇, q␇휦␇, q␇휦␇, q␇휦␇, q␇휦␇);
+Test_N(q␇휧␇, q␇휧␇, q␇휧␇, q␇휧␇, q␇휧␇);
+Test_N(q␇휨␇, q␇휨␇, q␇휨␇, q␇휨␇, q␇휨␇);
+Test_N(q␇휩␇, q␇휩␇, q␇휩␇, q␇휩␇, q␇휩␇);
+Test_N(q␇휪␇, q␇휪␇, q␇휪␇, q␇휪␇, q␇휪␇);
+Test_N(q␇휫␇, q␇휫␇, q␇휫␇, q␇휫␇, q␇휫␇);
+Test_N(q␇휬␇, q␇휬␇, q␇휬␇, q␇휬␇, q␇휬␇);
+Test_N(q␇휭␇, q␇휭␇, q␇휭␇, q␇휭␇, q␇휭␇);
+Test_N(q␇휮␇, q␇휮␇, q␇휮␇, q␇휮␇, q␇휮␇);
+Test_N(q␇휯␇, q␇휯␇, q␇휯␇, q␇휯␇, q␇휯␇);
+Test_N(q␇휰␇, q␇휰␇, q␇휰␇, q␇휰␇, q␇휰␇);
+Test_N(q␇휱␇, q␇휱␇, q␇휱␇, q␇휱␇, q␇휱␇);
+Test_N(q␇휲␇, q␇휲␇, q␇휲␇, q␇휲␇, q␇휲␇);
+Test_N(q␇휳␇, q␇휳␇, q␇휳␇, q␇휳␇, q␇휳␇);
+Test_N(q␇휴␇, q␇휴␇, q␇휴␇, q␇휴␇, q␇휴␇);
+Test_N(q␇휵␇, q␇휵␇, q␇휵␇, q␇휵␇, q␇휵␇);
+Test_N(q␇휶␇, q␇휶␇, q␇휶␇, q␇휶␇, q␇휶␇);
+Test_N(q␇휷␇, q␇휷␇, q␇휷␇, q␇휷␇, q␇휷␇);
+Test_N(q␇휸␇, q␇휸␇, q␇휸␇, q␇휸␇, q␇휸␇);
+Test_N(q␇휹␇, q␇휹␇, q␇휹␇, q␇휹␇, q␇휹␇);
+Test_N(q␇휺␇, q␇휺␇, q␇휺␇, q␇휺␇, q␇휺␇);
+Test_N(q␇휻␇, q␇휻␇, q␇휻␇, q␇휻␇, q␇휻␇);
+Test_N(q␇휼␇, q␇휼␇, q␇휼␇, q␇휼␇, q␇휼␇);
+Test_N(q␇휽␇, q␇휽␇, q␇휽␇, q␇휽␇, q␇휽␇);
+Test_N(q␇휾␇, q␇휾␇, q␇휾␇, q␇휾␇, q␇휾␇);
+Test_N(q␇휿␇, q␇휿␇, q␇휿␇, q␇휿␇, q␇휿␇);
+Test_N(q␇흀␇, q␇흀␇, q␇흀␇, q␇흀␇, q␇흀␇);
+Test_N(q␇흁␇, q␇흁␇, q␇흁␇, q␇흁␇, q␇흁␇);
+Test_N(q␇흂␇, q␇흂␇, q␇흂␇, q␇흂␇, q␇흂␇);
+Test_N(q␇흃␇, q␇흃␇, q␇흃␇, q␇흃␇, q␇흃␇);
+Test_N(q␇흄␇, q␇흄␇, q␇흄␇, q␇흄␇, q␇흄␇);
+Test_N(q␇흅␇, q␇흅␇, q␇흅␇, q␇흅␇, q␇흅␇);
+Test_N(q␇흆␇, q␇흆␇, q␇흆␇, q␇흆␇, q␇흆␇);
+Test_N(q␇흇␇, q␇흇␇, q␇흇␇, q␇흇␇, q␇흇␇);
+Test_N(q␇흈␇, q␇흈␇, q␇흈␇, q␇흈␇, q␇흈␇);
+Test_N(q␇흉␇, q␇흉␇, q␇흉␇, q␇흉␇, q␇흉␇);
+Test_N(q␇흊␇, q␇흊␇, q␇흊␇, q␇흊␇, q␇흊␇);
+Test_N(q␇흋␇, q␇흋␇, q␇흋␇, q␇흋␇, q␇흋␇);
+Test_N(q␇흌␇, q␇흌␇, q␇흌␇, q␇흌␇, q␇흌␇);
+Test_N(q␇흍␇, q␇흍␇, q␇흍␇, q␇흍␇, q␇흍␇);
+Test_N(q␇흎␇, q␇흎␇, q␇흎␇, q␇흎␇, q␇흎␇);
+Test_N(q␇흏␇, q␇흏␇, q␇흏␇, q␇흏␇, q␇흏␇);
+Test_N(q␇흐␇, q␇흐␇, q␇흐␇, q␇흐␇, q␇흐␇);
+Test_N(q␇흑␇, q␇흑␇, q␇흑␇, q␇흑␇, q␇흑␇);
+Test_N(q␇흒␇, q␇흒␇, q␇흒␇, q␇흒␇, q␇흒␇);
+Test_N(q␇흓␇, q␇흓␇, q␇흓␇, q␇흓␇, q␇흓␇);
+Test_N(q␇흔␇, q␇흔␇, q␇흔␇, q␇흔␇, q␇흔␇);
+Test_N(q␇흕␇, q␇흕␇, q␇흕␇, q␇흕␇, q␇흕␇);
+Test_N(q␇흖␇, q␇흖␇, q␇흖␇, q␇흖␇, q␇흖␇);
+Test_N(q␇흗␇, q␇흗␇, q␇흗␇, q␇흗␇, q␇흗␇);
+Test_N(q␇흘␇, q␇흘␇, q␇흘␇, q␇흘␇, q␇흘␇);
+Test_N(q␇흙␇, q␇흙␇, q␇흙␇, q␇흙␇, q␇흙␇);
+Test_N(q␇흚␇, q␇흚␇, q␇흚␇, q␇흚␇, q␇흚␇);
+Test_N(q␇흛␇, q␇흛␇, q␇흛␇, q␇흛␇, q␇흛␇);
+Test_N(q␇흜␇, q␇흜␇, q␇흜␇, q␇흜␇, q␇흜␇);
+Test_N(q␇흝␇, q␇흝␇, q␇흝␇, q␇흝␇, q␇흝␇);
+Test_N(q␇흞␇, q␇흞␇, q␇흞␇, q␇흞␇, q␇흞␇);
+Test_N(q␇흟␇, q␇흟␇, q␇흟␇, q␇흟␇, q␇흟␇);
+Test_N(q␇흠␇, q␇흠␇, q␇흠␇, q␇흠␇, q␇흠␇);
+Test_N(q␇흡␇, q␇흡␇, q␇흡␇, q␇흡␇, q␇흡␇);
+Test_N(q␇흢␇, q␇흢␇, q␇흢␇, q␇흢␇, q␇흢␇);
+Test_N(q␇흣␇, q␇흣␇, q␇흣␇, q␇흣␇, q␇흣␇);
+Test_N(q␇흤␇, q␇흤␇, q␇흤␇, q␇흤␇, q␇흤␇);
+Test_N(q␇흥␇, q␇흥␇, q␇흥␇, q␇흥␇, q␇흥␇);
+Test_N(q␇흦␇, q␇흦␇, q␇흦␇, q␇흦␇, q␇흦␇);
+Test_N(q␇흧␇, q␇흧␇, q␇흧␇, q␇흧␇, q␇흧␇);
+Test_N(q␇흨␇, q␇흨␇, q␇흨␇, q␇흨␇, q␇흨␇);
+Test_N(q␇흩␇, q␇흩␇, q␇흩␇, q␇흩␇, q␇흩␇);
+Test_N(q␇흪␇, q␇흪␇, q␇흪␇, q␇흪␇, q␇흪␇);
+Test_N(q␇흫␇, q␇흫␇, q␇흫␇, q␇흫␇, q␇흫␇);
+Test_N(q␇희␇, q␇희␇, q␇희␇, q␇희␇, q␇희␇);
+Test_N(q␇흭␇, q␇흭␇, q␇흭␇, q␇흭␇, q␇흭␇);
+Test_N(q␇흮␇, q␇흮␇, q␇흮␇, q␇흮␇, q␇흮␇);
+Test_N(q␇흯␇, q␇흯␇, q␇흯␇, q␇흯␇, q␇흯␇);
+Test_N(q␇흰␇, q␇흰␇, q␇흰␇, q␇흰␇, q␇흰␇);
+Test_N(q␇흱␇, q␇흱␇, q␇흱␇, q␇흱␇, q␇흱␇);
+Test_N(q␇흲␇, q␇흲␇, q␇흲␇, q␇흲␇, q␇흲␇);
+Test_N(q␇흳␇, q␇흳␇, q␇흳␇, q␇흳␇, q␇흳␇);
+Test_N(q␇흴␇, q␇흴␇, q␇흴␇, q␇흴␇, q␇흴␇);
+Test_N(q␇흵␇, q␇흵␇, q␇흵␇, q␇흵␇, q␇흵␇);
+Test_N(q␇흶␇, q␇흶␇, q␇흶␇, q␇흶␇, q␇흶␇);
+Test_N(q␇흷␇, q␇흷␇, q␇흷␇, q␇흷␇, q␇흷␇);
+Test_N(q␇흸␇, q␇흸␇, q␇흸␇, q␇흸␇, q␇흸␇);
+Test_N(q␇흹␇, q␇흹␇, q␇흹␇, q␇흹␇, q␇흹␇);
+Test_N(q␇흺␇, q␇흺␇, q␇흺␇, q␇흺␇, q␇흺␇);
+Test_N(q␇흻␇, q␇흻␇, q␇흻␇, q␇흻␇, q␇흻␇);
+Test_N(q␇흼␇, q␇흼␇, q␇흼␇, q␇흼␇, q␇흼␇);
+Test_N(q␇흽␇, q␇흽␇, q␇흽␇, q␇흽␇, q␇흽␇);
+Test_N(q␇흾␇, q␇흾␇, q␇흾␇, q␇흾␇, q␇흾␇);
+Test_N(q␇흿␇, q␇흿␇, q␇흿␇, q␇흿␇, q␇흿␇);
+Test_N(q␇힀␇, q␇힀␇, q␇힀␇, q␇힀␇, q␇힀␇);
+Test_N(q␇힁␇, q␇힁␇, q␇힁␇, q␇힁␇, q␇힁␇);
+Test_N(q␇힂␇, q␇힂␇, q␇힂␇, q␇힂␇, q␇힂␇);
+Test_N(q␇힃␇, q␇힃␇, q␇힃␇, q␇힃␇, q␇힃␇);
+Test_N(q␇힄␇, q␇힄␇, q␇힄␇, q␇힄␇, q␇힄␇);
+Test_N(q␇힅␇, q␇힅␇, q␇힅␇, q␇힅␇, q␇힅␇);
+Test_N(q␇힆␇, q␇힆␇, q␇힆␇, q␇힆␇, q␇힆␇);
+Test_N(q␇힇␇, q␇힇␇, q␇힇␇, q␇힇␇, q␇힇␇);
+Test_N(q␇히␇, q␇히␇, q␇히␇, q␇히␇, q␇히␇);
+Test_N(q␇힉␇, q␇힉␇, q␇힉␇, q␇힉␇, q␇힉␇);
+Test_N(q␇힊␇, q␇힊␇, q␇힊␇, q␇힊␇, q␇힊␇);
+Test_N(q␇힋␇, q␇힋␇, q␇힋␇, q␇힋␇, q␇힋␇);
+Test_N(q␇힌␇, q␇힌␇, q␇힌␇, q␇힌␇, q␇힌␇);
+Test_N(q␇힍␇, q␇힍␇, q␇힍␇, q␇힍␇, q␇힍␇);
+Test_N(q␇힎␇, q␇힎␇, q␇힎␇, q␇힎␇, q␇힎␇);
+Test_N(q␇힏␇, q␇힏␇, q␇힏␇, q␇힏␇, q␇힏␇);
+Test_N(q␇힐␇, q␇힐␇, q␇힐␇, q␇힐␇, q␇힐␇);
+Test_N(q␇힑␇, q␇힑␇, q␇힑␇, q␇힑␇, q␇힑␇);
+Test_N(q␇힒␇, q␇힒␇, q␇힒␇, q␇힒␇, q␇힒␇);
+Test_N(q␇힓␇, q␇힓␇, q␇힓␇, q␇힓␇, q␇힓␇);
+Test_N(q␇힔␇, q␇힔␇, q␇힔␇, q␇힔␇, q␇힔␇);
+Test_N(q␇힕␇, q␇힕␇, q␇힕␇, q␇힕␇, q␇힕␇);
+Test_N(q␇힖␇, q␇힖␇, q␇힖␇, q␇힖␇, q␇힖␇);
+Test_N(q␇힗␇, q␇힗␇, q␇힗␇, q␇힗␇, q␇힗␇);
+Test_N(q␇힘␇, q␇힘␇, q␇힘␇, q␇힘␇, q␇힘␇);
+Test_N(q␇힙␇, q␇힙␇, q␇힙␇, q␇힙␇, q␇힙␇);
+Test_N(q␇힚␇, q␇힚␇, q␇힚␇, q␇힚␇, q␇힚␇);
+Test_N(q␇힛␇, q␇힛␇, q␇힛␇, q␇힛␇, q␇힛␇);
+Test_N(q␇힜␇, q␇힜␇, q␇힜␇, q␇힜␇, q␇힜␇);
+Test_N(q␇힝␇, q␇힝␇, q␇힝␇, q␇힝␇, q␇힝␇);
+Test_N(q␇힞␇, q␇힞␇, q␇힞␇, q␇힞␇, q␇힞␇);
+Test_N(q␇힟␇, q␇힟␇, q␇힟␇, q␇힟␇, q␇힟␇);
+Test_N(q␇힠␇, q␇힠␇, q␇힠␇, q␇힠␇, q␇힠␇);
+Test_N(q␇힡␇, q␇힡␇, q␇힡␇, q␇힡␇, q␇힡␇);
+Test_N(q␇힢␇, q␇힢␇, q␇힢␇, q␇힢␇, q␇힢␇);
+Test_N(q␇힣␇, q␇힣␇, q␇힣␇, q␇힣␇, q␇힣␇);
+Test_N(q␇豈␇, q␇豈␇, q␇豈␇, q␇豈␇, q␇豈␇);
+Test_N(q␇更␇, q␇更␇, q␇更␇, q␇更␇, q␇更␇);
+Test_N(q␇車␇, q␇車␇, q␇車␇, q␇車␇, q␇車␇);
+Test_N(q␇賈␇, q␇賈␇, q␇賈␇, q␇賈␇, q␇賈␇);
+Test_N(q␇滑␇, q␇滑␇, q␇滑␇, q␇滑␇, q␇滑␇);
+Test_N(q␇串␇, q␇串␇, q␇串␇, q␇串␇, q␇串␇);
+Test_N(q␇句␇, q␇句␇, q␇句␇, q␇句␇, q␇句␇);
+Test_N(q␇龜␇, q␇龜␇, q␇龜␇, q␇龜␇, q␇龜␇);
+Test_N(q␇龜␇, q␇龜␇, q␇龜␇, q␇龜␇, q␇龜␇);
+Test_N(q␇契␇, q␇契␇, q␇契␇, q␇契␇, q␇契␇);
+Test_N(q␇金␇, q␇金␇, q␇金␇, q␇金␇, q␇金␇);
+Test_N(q␇喇␇, q␇喇␇, q␇喇␇, q␇喇␇, q␇喇␇);
+Test_N(q␇奈␇, q␇奈␇, q␇奈␇, q␇奈␇, q␇奈␇);
+Test_N(q␇懶␇, q␇懶␇, q␇懶␇, q␇懶␇, q␇懶␇);
+Test_N(q␇癩␇, q␇癩␇, q␇癩␇, q␇癩␇, q␇癩␇);
+Test_N(q␇羅␇, q␇羅␇, q␇羅␇, q␇羅␇, q␇羅␇);
+Test_N(q␇蘿␇, q␇蘿␇, q␇蘿␇, q␇蘿␇, q␇蘿␇);
+Test_N(q␇螺␇, q␇螺␇, q␇螺␇, q␇螺␇, q␇螺␇);
+Test_N(q␇裸␇, q␇裸␇, q␇裸␇, q␇裸␇, q␇裸␇);
+Test_N(q␇邏␇, q␇邏␇, q␇邏␇, q␇邏␇, q␇邏␇);
+Test_N(q␇樂␇, q␇樂␇, q␇樂␇, q␇樂␇, q␇樂␇);
+Test_N(q␇洛␇, q␇洛␇, q␇洛␇, q␇洛␇, q␇洛␇);
+Test_N(q␇烙␇, q␇烙␇, q␇烙␇, q␇烙␇, q␇烙␇);
+Test_N(q␇珞␇, q␇珞␇, q␇珞␇, q␇珞␇, q␇珞␇);
+Test_N(q␇落␇, q␇落␇, q␇落␇, q␇落␇, q␇落␇);
+Test_N(q␇酪␇, q␇酪␇, q␇酪␇, q␇酪␇, q␇酪␇);
+Test_N(q␇駱␇, q␇駱␇, q␇駱␇, q␇駱␇, q␇駱␇);
+Test_N(q␇亂␇, q␇亂␇, q␇亂␇, q␇亂␇, q␇亂␇);
+Test_N(q␇卵␇, q␇卵␇, q␇卵␇, q␇卵␇, q␇卵␇);
+Test_N(q␇欄␇, q␇欄␇, q␇欄␇, q␇欄␇, q␇欄␇);
+Test_N(q␇爛␇, q␇爛␇, q␇爛␇, q␇爛␇, q␇爛␇);
+Test_N(q␇蘭␇, q␇蘭␇, q␇蘭␇, q␇蘭␇, q␇蘭␇);
+Test_N(q␇鸞␇, q␇鸞␇, q␇鸞␇, q␇鸞␇, q␇鸞␇);
+Test_N(q␇嵐␇, q␇嵐␇, q␇嵐␇, q␇嵐␇, q␇嵐␇);
+Test_N(q␇濫␇, q␇濫␇, q␇濫␇, q␇濫␇, q␇濫␇);
+Test_N(q␇藍␇, q␇藍␇, q␇藍␇, q␇藍␇, q␇藍␇);
+Test_N(q␇襤␇, q␇襤␇, q␇襤␇, q␇襤␇, q␇襤␇);
+Test_N(q␇拉␇, q␇拉␇, q␇拉␇, q␇拉␇, q␇拉␇);
+Test_N(q␇臘␇, q␇臘␇, q␇臘␇, q␇臘␇, q␇臘␇);
+Test_N(q␇蠟␇, q␇蠟␇, q␇蠟␇, q␇蠟␇, q␇蠟␇);
+Test_N(q␇廊␇, q␇廊␇, q␇廊␇, q␇廊␇, q␇廊␇);
+Test_N(q␇朗␇, q␇朗␇, q␇朗␇, q␇朗␇, q␇朗␇);
+Test_N(q␇浪␇, q␇浪␇, q␇浪␇, q␇浪␇, q␇浪␇);
+Test_N(q␇狼␇, q␇狼␇, q␇狼␇, q␇狼␇, q␇狼␇);
+Test_N(q␇郎␇, q␇郎␇, q␇郎␇, q␇郎␇, q␇郎␇);
+Test_N(q␇來␇, q␇來␇, q␇來␇, q␇來␇, q␇來␇);
+Test_N(q␇冷␇, q␇冷␇, q␇冷␇, q␇冷␇, q␇冷␇);
+Test_N(q␇勞␇, q␇勞␇, q␇勞␇, q␇勞␇, q␇勞␇);
+Test_N(q␇擄␇, q␇擄␇, q␇擄␇, q␇擄␇, q␇擄␇);
+Test_N(q␇櫓␇, q␇櫓␇, q␇櫓␇, q␇櫓␇, q␇櫓␇);
+Test_N(q␇爐␇, q␇爐␇, q␇爐␇, q␇爐␇, q␇爐␇);
+Test_N(q␇盧␇, q␇盧␇, q␇盧␇, q␇盧␇, q␇盧␇);
+Test_N(q␇老␇, q␇老␇, q␇老␇, q␇老␇, q␇老␇);
+Test_N(q␇蘆␇, q␇蘆␇, q␇蘆␇, q␇蘆␇, q␇蘆␇);
+Test_N(q␇虜␇, q␇虜␇, q␇虜␇, q␇虜␇, q␇虜␇);
+Test_N(q␇路␇, q␇路␇, q␇路␇, q␇路␇, q␇路␇);
+Test_N(q␇露␇, q␇露␇, q␇露␇, q␇露␇, q␇露␇);
+Test_N(q␇魯␇, q␇魯␇, q␇魯␇, q␇魯␇, q␇魯␇);
+Test_N(q␇鷺␇, q␇鷺␇, q␇鷺␇, q␇鷺␇, q␇鷺␇);
+Test_N(q␇碌␇, q␇碌␇, q␇碌␇, q␇碌␇, q␇碌␇);
+Test_N(q␇祿␇, q␇祿␇, q␇祿␇, q␇祿␇, q␇祿␇);
+Test_N(q␇綠␇, q␇綠␇, q␇綠␇, q␇綠␇, q␇綠␇);
+Test_N(q␇菉␇, q␇菉␇, q␇菉␇, q␇菉␇, q␇菉␇);
+Test_N(q␇錄␇, q␇錄␇, q␇錄␇, q␇錄␇, q␇錄␇);
+Test_N(q␇鹿␇, q␇鹿␇, q␇鹿␇, q␇鹿␇, q␇鹿␇);
+Test_N(q␇論␇, q␇論␇, q␇論␇, q␇論␇, q␇論␇);
+Test_N(q␇壟␇, q␇壟␇, q␇壟␇, q␇壟␇, q␇壟␇);
+Test_N(q␇弄␇, q␇弄␇, q␇弄␇, q␇弄␇, q␇弄␇);
+Test_N(q␇籠␇, q␇籠␇, q␇籠␇, q␇籠␇, q␇籠␇);
+Test_N(q␇聾␇, q␇聾␇, q␇聾␇, q␇聾␇, q␇聾␇);
+Test_N(q␇牢␇, q␇牢␇, q␇牢␇, q␇牢␇, q␇牢␇);
+Test_N(q␇磊␇, q␇磊␇, q␇磊␇, q␇磊␇, q␇磊␇);
+Test_N(q␇賂␇, q␇賂␇, q␇賂␇, q␇賂␇, q␇賂␇);
+Test_N(q␇雷␇, q␇雷␇, q␇雷␇, q␇雷␇, q␇雷␇);
+Test_N(q␇壘␇, q␇壘␇, q␇壘␇, q␇壘␇, q␇壘␇);
+Test_N(q␇屢␇, q␇屢␇, q␇屢␇, q␇屢␇, q␇屢␇);
+Test_N(q␇樓␇, q␇樓␇, q␇樓␇, q␇樓␇, q␇樓␇);
+Test_N(q␇淚␇, q␇淚␇, q␇淚␇, q␇淚␇, q␇淚␇);
+Test_N(q␇漏␇, q␇漏␇, q␇漏␇, q␇漏␇, q␇漏␇);
+Test_N(q␇累␇, q␇累␇, q␇累␇, q␇累␇, q␇累␇);
+Test_N(q␇縷␇, q␇縷␇, q␇縷␇, q␇縷␇, q␇縷␇);
+Test_N(q␇陋␇, q␇陋␇, q␇陋␇, q␇陋␇, q␇陋␇);
+Test_N(q␇勒␇, q␇勒␇, q␇勒␇, q␇勒␇, q␇勒␇);
+Test_N(q␇肋␇, q␇肋␇, q␇肋␇, q␇肋␇, q␇肋␇);
+Test_N(q␇凜␇, q␇凜␇, q␇凜␇, q␇凜␇, q␇凜␇);
+Test_N(q␇凌␇, q␇凌␇, q␇凌␇, q␇凌␇, q␇凌␇);
+Test_N(q␇稜␇, q␇稜␇, q␇稜␇, q␇稜␇, q␇稜␇);
+Test_N(q␇綾␇, q␇綾␇, q␇綾␇, q␇綾␇, q␇綾␇);
+Test_N(q␇菱␇, q␇菱␇, q␇菱␇, q␇菱␇, q␇菱␇);
+Test_N(q␇陵␇, q␇陵␇, q␇陵␇, q␇陵␇, q␇陵␇);
+Test_N(q␇讀␇, q␇讀␇, q␇讀␇, q␇讀␇, q␇讀␇);
+Test_N(q␇拏␇, q␇拏␇, q␇拏␇, q␇拏␇, q␇拏␇);
+Test_N(q␇樂␇, q␇樂␇, q␇樂␇, q␇樂␇, q␇樂␇);
+Test_N(q␇諾␇, q␇諾␇, q␇諾␇, q␇諾␇, q␇諾␇);
+Test_N(q␇丹␇, q␇丹␇, q␇丹␇, q␇丹␇, q␇丹␇);
+Test_N(q␇寧␇, q␇寧␇, q␇寧␇, q␇寧␇, q␇寧␇);
+Test_N(q␇怒␇, q␇怒␇, q␇怒␇, q␇怒␇, q␇怒␇);
+Test_N(q␇率␇, q␇率␇, q␇率␇, q␇率␇, q␇率␇);
+Test_N(q␇異␇, q␇異␇, q␇異␇, q␇異␇, q␇異␇);
+Test_N(q␇北␇, q␇北␇, q␇北␇, q␇北␇, q␇北␇);
+Test_N(q␇磻␇, q␇磻␇, q␇磻␇, q␇磻␇, q␇磻␇);
+Test_N(q␇便␇, q␇便␇, q␇便␇, q␇便␇, q␇便␇);
+Test_N(q␇復␇, q␇復␇, q␇復␇, q␇復␇, q␇復␇);
+Test_N(q␇不␇, q␇不␇, q␇不␇, q␇不␇, q␇不␇);
+Test_N(q␇泌␇, q␇泌␇, q␇泌␇, q␇泌␇, q␇泌␇);
+Test_N(q␇數␇, q␇數␇, q␇數␇, q␇數␇, q␇數␇);
+Test_N(q␇索␇, q␇索␇, q␇索␇, q␇索␇, q␇索␇);
+Test_N(q␇參␇, q␇參␇, q␇參␇, q␇參␇, q␇參␇);
+Test_N(q␇塞␇, q␇塞␇, q␇塞␇, q␇塞␇, q␇塞␇);
+Test_N(q␇省␇, q␇省␇, q␇省␇, q␇省␇, q␇省␇);
+Test_N(q␇葉␇, q␇葉␇, q␇葉␇, q␇葉␇, q␇葉␇);
+Test_N(q␇說␇, q␇說␇, q␇說␇, q␇說␇, q␇說␇);
+Test_N(q␇殺␇, q␇殺␇, q␇殺␇, q␇殺␇, q␇殺␇);
+Test_N(q␇辰␇, q␇辰␇, q␇辰␇, q␇辰␇, q␇辰␇);
+Test_N(q␇沈␇, q␇沈␇, q␇沈␇, q␇沈␇, q␇沈␇);
+Test_N(q␇拾␇, q␇拾␇, q␇拾␇, q␇拾␇, q␇拾␇);
+Test_N(q␇若␇, q␇若␇, q␇若␇, q␇若␇, q␇若␇);
+Test_N(q␇掠␇, q␇掠␇, q␇掠␇, q␇掠␇, q␇掠␇);
+Test_N(q␇略␇, q␇略␇, q␇略␇, q␇略␇, q␇略␇);
+Test_N(q␇亮␇, q␇亮␇, q␇亮␇, q␇亮␇, q␇亮␇);
+Test_N(q␇兩␇, q␇兩␇, q␇兩␇, q␇兩␇, q␇兩␇);
+Test_N(q␇凉␇, q␇凉␇, q␇凉␇, q␇凉␇, q␇凉␇);
+Test_N(q␇梁␇, q␇梁␇, q␇梁␇, q␇梁␇, q␇梁␇);
+Test_N(q␇糧␇, q␇糧␇, q␇糧␇, q␇糧␇, q␇糧␇);
+Test_N(q␇良␇, q␇良␇, q␇良␇, q␇良␇, q␇良␇);
+Test_N(q␇諒␇, q␇諒␇, q␇諒␇, q␇諒␇, q␇諒␇);
+Test_N(q␇量␇, q␇量␇, q␇量␇, q␇量␇, q␇量␇);
+Test_N(q␇勵␇, q␇勵␇, q␇勵␇, q␇勵␇, q␇勵␇);
+Test_N(q␇呂␇, q␇呂␇, q␇呂␇, q␇呂␇, q␇呂␇);
+Test_N(q␇女␇, q␇女␇, q␇女␇, q␇女␇, q␇女␇);
+Test_N(q␇廬␇, q␇廬␇, q␇廬␇, q␇廬␇, q␇廬␇);
+Test_N(q␇旅␇, q␇旅␇, q␇旅␇, q␇旅␇, q␇旅␇);
+Test_N(q␇濾␇, q␇濾␇, q␇濾␇, q␇濾␇, q␇濾␇);
+Test_N(q␇礪␇, q␇礪␇, q␇礪␇, q␇礪␇, q␇礪␇);
+Test_N(q␇閭␇, q␇閭␇, q␇閭␇, q␇閭␇, q␇閭␇);
+Test_N(q␇驪␇, q␇驪␇, q␇驪␇, q␇驪␇, q␇驪␇);
+Test_N(q␇麗␇, q␇麗␇, q␇麗␇, q␇麗␇, q␇麗␇);
+Test_N(q␇黎␇, q␇黎␇, q␇黎␇, q␇黎␇, q␇黎␇);
+Test_N(q␇力␇, q␇力␇, q␇力␇, q␇力␇, q␇力␇);
+Test_N(q␇曆␇, q␇曆␇, q␇曆␇, q␇曆␇, q␇曆␇);
+Test_N(q␇歷␇, q␇歷␇, q␇歷␇, q␇歷␇, q␇歷␇);
+Test_N(q␇轢␇, q␇轢␇, q␇轢␇, q␇轢␇, q␇轢␇);
+Test_N(q␇年␇, q␇年␇, q␇年␇, q␇年␇, q␇年␇);
+Test_N(q␇憐␇, q␇憐␇, q␇憐␇, q␇憐␇, q␇憐␇);
+Test_N(q␇戀␇, q␇戀␇, q␇戀␇, q␇戀␇, q␇戀␇);
+Test_N(q␇撚␇, q␇撚␇, q␇撚␇, q␇撚␇, q␇撚␇);
+Test_N(q␇漣␇, q␇漣␇, q␇漣␇, q␇漣␇, q␇漣␇);
+Test_N(q␇煉␇, q␇煉␇, q␇煉␇, q␇煉␇, q␇煉␇);
+Test_N(q␇璉␇, q␇璉␇, q␇璉␇, q␇璉␇, q␇璉␇);
+Test_N(q␇秊␇, q␇秊␇, q␇秊␇, q␇秊␇, q␇秊␇);
+Test_N(q␇練␇, q␇練␇, q␇練␇, q␇練␇, q␇練␇);
+Test_N(q␇聯␇, q␇聯␇, q␇聯␇, q␇聯␇, q␇聯␇);
+Test_N(q␇輦␇, q␇輦␇, q␇輦␇, q␇輦␇, q␇輦␇);
+Test_N(q␇蓮␇, q␇蓮␇, q␇蓮␇, q␇蓮␇, q␇蓮␇);
+Test_N(q␇連␇, q␇連␇, q␇連␇, q␇連␇, q␇連␇);
+Test_N(q␇鍊␇, q␇鍊␇, q␇鍊␇, q␇鍊␇, q␇鍊␇);
+Test_N(q␇列␇, q␇列␇, q␇列␇, q␇列␇, q␇列␇);
+Test_N(q␇劣␇, q␇劣␇, q␇劣␇, q␇劣␇, q␇劣␇);
+Test_N(q␇咽␇, q␇咽␇, q␇咽␇, q␇咽␇, q␇咽␇);
+Test_N(q␇烈␇, q␇烈␇, q␇烈␇, q␇烈␇, q␇烈␇);
+Test_N(q␇裂␇, q␇裂␇, q␇裂␇, q␇裂␇, q␇裂␇);
+Test_N(q␇說␇, q␇說␇, q␇說␇, q␇說␇, q␇說␇);
+Test_N(q␇廉␇, q␇廉␇, q␇廉␇, q␇廉␇, q␇廉␇);
+Test_N(q␇念␇, q␇念␇, q␇念␇, q␇念␇, q␇念␇);
+Test_N(q␇捻␇, q␇捻␇, q␇捻␇, q␇捻␇, q␇捻␇);
+Test_N(q␇殮␇, q␇殮␇, q␇殮␇, q␇殮␇, q␇殮␇);
+Test_N(q␇簾␇, q␇簾␇, q␇簾␇, q␇簾␇, q␇簾␇);
+Test_N(q␇獵␇, q␇獵␇, q␇獵␇, q␇獵␇, q␇獵␇);
+Test_N(q␇令␇, q␇令␇, q␇令␇, q␇令␇, q␇令␇);
+Test_N(q␇囹␇, q␇囹␇, q␇囹␇, q␇囹␇, q␇囹␇);
+Test_N(q␇寧␇, q␇寧␇, q␇寧␇, q␇寧␇, q␇寧␇);
+Test_N(q␇嶺␇, q␇嶺␇, q␇嶺␇, q␇嶺␇, q␇嶺␇);
+Test_N(q␇怜␇, q␇怜␇, q␇怜␇, q␇怜␇, q␇怜␇);
+Test_N(q␇玲␇, q␇玲␇, q␇玲␇, q␇玲␇, q␇玲␇);
+Test_N(q␇瑩␇, q␇瑩␇, q␇瑩␇, q␇瑩␇, q␇瑩␇);
+Test_N(q␇羚␇, q␇羚␇, q␇羚␇, q␇羚␇, q␇羚␇);
+Test_N(q␇聆␇, q␇聆␇, q␇聆␇, q␇聆␇, q␇聆␇);
+Test_N(q␇鈴␇, q␇鈴␇, q␇鈴␇, q␇鈴␇, q␇鈴␇);
+Test_N(q␇零␇, q␇零␇, q␇零␇, q␇零␇, q␇零␇);
+Test_N(q␇靈␇, q␇靈␇, q␇靈␇, q␇靈␇, q␇靈␇);
+Test_N(q␇領␇, q␇領␇, q␇領␇, q␇領␇, q␇領␇);
+Test_N(q␇例␇, q␇例␇, q␇例␇, q␇例␇, q␇例␇);
+Test_N(q␇禮␇, q␇禮␇, q␇禮␇, q␇禮␇, q␇禮␇);
+Test_N(q␇醴␇, q␇醴␇, q␇醴␇, q␇醴␇, q␇醴␇);
+Test_N(q␇隸␇, q␇隸␇, q␇隸␇, q␇隸␇, q␇隸␇);
+Test_N(q␇惡␇, q␇惡␇, q␇惡␇, q␇惡␇, q␇惡␇);
+Test_N(q␇了␇, q␇了␇, q␇了␇, q␇了␇, q␇了␇);
+Test_N(q␇僚␇, q␇僚␇, q␇僚␇, q␇僚␇, q␇僚␇);
+Test_N(q␇寮␇, q␇寮␇, q␇寮␇, q␇寮␇, q␇寮␇);
+Test_N(q␇尿␇, q␇尿␇, q␇尿␇, q␇尿␇, q␇尿␇);
+Test_N(q␇料␇, q␇料␇, q␇料␇, q␇料␇, q␇料␇);
+Test_N(q␇樂␇, q␇樂␇, q␇樂␇, q␇樂␇, q␇樂␇);
+Test_N(q␇燎␇, q␇燎␇, q␇燎␇, q␇燎␇, q␇燎␇);
+Test_N(q␇療␇, q␇療␇, q␇療␇, q␇療␇, q␇療␇);
+Test_N(q␇蓼␇, q␇蓼␇, q␇蓼␇, q␇蓼␇, q␇蓼␇);
+Test_N(q␇遼␇, q␇遼␇, q␇遼␇, q␇遼␇, q␇遼␇);
+Test_N(q␇龍␇, q␇龍␇, q␇龍␇, q␇龍␇, q␇龍␇);
+Test_N(q␇暈␇, q␇暈␇, q␇暈␇, q␇暈␇, q␇暈␇);
+Test_N(q␇阮␇, q␇阮␇, q␇阮␇, q␇阮␇, q␇阮␇);
+Test_N(q␇劉␇, q␇劉␇, q␇劉␇, q␇劉␇, q␇劉␇);
+Test_N(q␇杻␇, q␇杻␇, q␇杻␇, q␇杻␇, q␇杻␇);
+Test_N(q␇柳␇, q␇柳␇, q␇柳␇, q␇柳␇, q␇柳␇);
+Test_N(q␇流␇, q␇流␇, q␇流␇, q␇流␇, q␇流␇);
+Test_N(q␇溜␇, q␇溜␇, q␇溜␇, q␇溜␇, q␇溜␇);
+Test_N(q␇琉␇, q␇琉␇, q␇琉␇, q␇琉␇, q␇琉␇);
+Test_N(q␇留␇, q␇留␇, q␇留␇, q␇留␇, q␇留␇);
+Test_N(q␇硫␇, q␇硫␇, q␇硫␇, q␇硫␇, q␇硫␇);
+Test_N(q␇紐␇, q␇紐␇, q␇紐␇, q␇紐␇, q␇紐␇);
+Test_N(q␇類␇, q␇類␇, q␇類␇, q␇類␇, q␇類␇);
+Test_N(q␇六␇, q␇六␇, q␇六␇, q␇六␇, q␇六␇);
+Test_N(q␇戮␇, q␇戮␇, q␇戮␇, q␇戮␇, q␇戮␇);
+Test_N(q␇陸␇, q␇陸␇, q␇陸␇, q␇陸␇, q␇陸␇);
+Test_N(q␇倫␇, q␇倫␇, q␇倫␇, q␇倫␇, q␇倫␇);
+Test_N(q␇崙␇, q␇崙␇, q␇崙␇, q␇崙␇, q␇崙␇);
+Test_N(q␇淪␇, q␇淪␇, q␇淪␇, q␇淪␇, q␇淪␇);
+Test_N(q␇輪␇, q␇輪␇, q␇輪␇, q␇輪␇, q␇輪␇);
+Test_N(q␇律␇, q␇律␇, q␇律␇, q␇律␇, q␇律␇);
+Test_N(q␇慄␇, q␇慄␇, q␇慄␇, q␇慄␇, q␇慄␇);
+Test_N(q␇栗␇, q␇栗␇, q␇栗␇, q␇栗␇, q␇栗␇);
+Test_N(q␇率␇, q␇率␇, q␇率␇, q␇率␇, q␇率␇);
+Test_N(q␇隆␇, q␇隆␇, q␇隆␇, q␇隆␇, q␇隆␇);
+Test_N(q␇利␇, q␇利␇, q␇利␇, q␇利␇, q␇利␇);
+Test_N(q␇吏␇, q␇吏␇, q␇吏␇, q␇吏␇, q␇吏␇);
+Test_N(q␇履␇, q␇履␇, q␇履␇, q␇履␇, q␇履␇);
+Test_N(q␇易␇, q␇易␇, q␇易␇, q␇易␇, q␇易␇);
+Test_N(q␇李␇, q␇李␇, q␇李␇, q␇李␇, q␇李␇);
+Test_N(q␇梨␇, q␇梨␇, q␇梨␇, q␇梨␇, q␇梨␇);
+Test_N(q␇泥␇, q␇泥␇, q␇泥␇, q␇泥␇, q␇泥␇);
+Test_N(q␇理␇, q␇理␇, q␇理␇, q␇理␇, q␇理␇);
+Test_N(q␇痢␇, q␇痢␇, q␇痢␇, q␇痢␇, q␇痢␇);
+Test_N(q␇罹␇, q␇罹␇, q␇罹␇, q␇罹␇, q␇罹␇);
+Test_N(q␇裏␇, q␇裏␇, q␇裏␇, q␇裏␇, q␇裏␇);
+Test_N(q␇裡␇, q␇裡␇, q␇裡␇, q␇裡␇, q␇裡␇);
+Test_N(q␇里␇, q␇里␇, q␇里␇, q␇里␇, q␇里␇);
+Test_N(q␇離␇, q␇離␇, q␇離␇, q␇離␇, q␇離␇);
+Test_N(q␇匿␇, q␇匿␇, q␇匿␇, q␇匿␇, q␇匿␇);
+Test_N(q␇溺␇, q␇溺␇, q␇溺␇, q␇溺␇, q␇溺␇);
+Test_N(q␇吝␇, q␇吝␇, q␇吝␇, q␇吝␇, q␇吝␇);
+Test_N(q␇燐␇, q␇燐␇, q␇燐␇, q␇燐␇, q␇燐␇);
+Test_N(q␇璘␇, q␇璘␇, q␇璘␇, q␇璘␇, q␇璘␇);
+Test_N(q␇藺␇, q␇藺␇, q␇藺␇, q␇藺␇, q␇藺␇);
+Test_N(q␇隣␇, q␇隣␇, q␇隣␇, q␇隣␇, q␇隣␇);
+Test_N(q␇鱗␇, q␇鱗␇, q␇鱗␇, q␇鱗␇, q␇鱗␇);
+Test_N(q␇麟␇, q␇麟␇, q␇麟␇, q␇麟␇, q␇麟␇);
+Test_N(q␇林␇, q␇林␇, q␇林␇, q␇林␇, q␇林␇);
+Test_N(q␇淋␇, q␇淋␇, q␇淋␇, q␇淋␇, q␇淋␇);
+Test_N(q␇臨␇, q␇臨␇, q␇臨␇, q␇臨␇, q␇臨␇);
+Test_N(q␇立␇, q␇立␇, q␇立␇, q␇立␇, q␇立␇);
+Test_N(q␇笠␇, q␇笠␇, q␇笠␇, q␇笠␇, q␇笠␇);
+Test_N(q␇粒␇, q␇粒␇, q␇粒␇, q␇粒␇, q␇粒␇);
+Test_N(q␇狀␇, q␇狀␇, q␇狀␇, q␇狀␇, q␇狀␇);
+Test_N(q␇炙␇, q␇炙␇, q␇炙␇, q␇炙␇, q␇炙␇);
+Test_N(q␇識␇, q␇識␇, q␇識␇, q␇識␇, q␇識␇);
+Test_N(q␇什␇, q␇什␇, q␇什␇, q␇什␇, q␇什␇);
+Test_N(q␇茶␇, q␇茶␇, q␇茶␇, q␇茶␇, q␇茶␇);
+Test_N(q␇刺␇, q␇刺␇, q␇刺␇, q␇刺␇, q␇刺␇);
+Test_N(q␇切␇, q␇切␇, q␇切␇, q␇切␇, q␇切␇);
+Test_N(q␇度␇, q␇度␇, q␇度␇, q␇度␇, q␇度␇);
+Test_N(q␇拓␇, q␇拓␇, q␇拓␇, q␇拓␇, q␇拓␇);
+Test_N(q␇糖␇, q␇糖␇, q␇糖␇, q␇糖␇, q␇糖␇);
+Test_N(q␇宅␇, q␇宅␇, q␇宅␇, q␇宅␇, q␇宅␇);
+Test_N(q␇洞␇, q␇洞␇, q␇洞␇, q␇洞␇, q␇洞␇);
+Test_N(q␇暴␇, q␇暴␇, q␇暴␇, q␇暴␇, q␇暴␇);
+Test_N(q␇輻␇, q␇輻␇, q␇輻␇, q␇輻␇, q␇輻␇);
+Test_N(q␇行␇, q␇行␇, q␇行␇, q␇行␇, q␇行␇);
+Test_N(q␇降␇, q␇降␇, q␇降␇, q␇降␇, q␇降␇);
+Test_N(q␇見␇, q␇見␇, q␇見␇, q␇見␇, q␇見␇);
+Test_N(q␇廓␇, q␇廓␇, q␇廓␇, q␇廓␇, q␇廓␇);
+Test_N(q␇兀␇, q␇兀␇, q␇兀␇, q␇兀␇, q␇兀␇);
+Test_N(q␇嗀␇, q␇嗀␇, q␇嗀␇, q␇嗀␇, q␇嗀␇);
+Test_N(q␇塚␇, q␇塚␇, q␇塚␇, q␇塚␇, q␇塚␇);
+Test_N(q␇晴␇, q␇晴␇, q␇晴␇, q␇晴␇, q␇晴␇);
+Test_N(q␇凞␇, q␇凞␇, q␇凞␇, q␇凞␇, q␇凞␇);
+Test_N(q␇猪␇, q␇猪␇, q␇猪␇, q␇猪␇, q␇猪␇);
+Test_N(q␇益␇, q␇益␇, q␇益␇, q␇益␇, q␇益␇);
+Test_N(q␇礼␇, q␇礼␇, q␇礼␇, q␇礼␇, q␇礼␇);
+Test_N(q␇神␇, q␇神␇, q␇神␇, q␇神␇, q␇神␇);
+Test_N(q␇祥␇, q␇祥␇, q␇祥␇, q␇祥␇, q␇祥␇);
+Test_N(q␇福␇, q␇福␇, q␇福␇, q␇福␇, q␇福␇);
+Test_N(q␇靖␇, q␇靖␇, q␇靖␇, q␇靖␇, q␇靖␇);
+Test_N(q␇精␇, q␇精␇, q␇精␇, q␇精␇, q␇精␇);
+Test_N(q␇羽␇, q␇羽␇, q␇羽␇, q␇羽␇, q␇羽␇);
+Test_N(q␇蘒␇, q␇蘒␇, q␇蘒␇, q␇蘒␇, q␇蘒␇);
+Test_N(q␇諸␇, q␇諸␇, q␇諸␇, q␇諸␇, q␇諸␇);
+Test_N(q␇逸␇, q␇逸␇, q␇逸␇, q␇逸␇, q␇逸␇);
+Test_N(q␇都␇, q␇都␇, q␇都␇, q␇都␇, q␇都␇);
+Test_N(q␇飯␇, q␇飯␇, q␇飯␇, q␇飯␇, q␇飯␇);
+Test_N(q␇飼␇, q␇飼␇, q␇飼␇, q␇飼␇, q␇飼␇);
+Test_N(q␇館␇, q␇館␇, q␇館␇, q␇館␇, q␇館␇);
+Test_N(q␇鶴␇, q␇鶴␇, q␇鶴␇, q␇鶴␇, q␇鶴␇);
+Test_N(q␇郞␇, q␇郞␇, q␇郞␇, q␇郞␇, q␇郞␇);
+Test_N(q␇隷␇, q␇隷␇, q␇隷␇, q␇隷␇, q␇隷␇);
+Test_N(q␇侮␇, q␇侮␇, q␇侮␇, q␇侮␇, q␇侮␇);
+Test_N(q␇僧␇, q␇僧␇, q␇僧␇, q␇僧␇, q␇僧␇);
+Test_N(q␇免␇, q␇免␇, q␇免␇, q␇免␇, q␇免␇);
+Test_N(q␇勉␇, q␇勉␇, q␇勉␇, q␇勉␇, q␇勉␇);
+Test_N(q␇勤␇, q␇勤␇, q␇勤␇, q␇勤␇, q␇勤␇);
+Test_N(q␇卑␇, q␇卑␇, q␇卑␇, q␇卑␇, q␇卑␇);
+Test_N(q␇喝␇, q␇喝␇, q␇喝␇, q␇喝␇, q␇喝␇);
+Test_N(q␇嘆␇, q␇嘆␇, q␇嘆␇, q␇嘆␇, q␇嘆␇);
+Test_N(q␇器␇, q␇器␇, q␇器␇, q␇器␇, q␇器␇);
+Test_N(q␇塀␇, q␇塀␇, q␇塀␇, q␇塀␇, q␇塀␇);
+Test_N(q␇墨␇, q␇墨␇, q␇墨␇, q␇墨␇, q␇墨␇);
+Test_N(q␇層␇, q␇層␇, q␇層␇, q␇層␇, q␇層␇);
+Test_N(q␇屮␇, q␇屮␇, q␇屮␇, q␇屮␇, q␇屮␇);
+Test_N(q␇悔␇, q␇悔␇, q␇悔␇, q␇悔␇, q␇悔␇);
+Test_N(q␇慨␇, q␇慨␇, q␇慨␇, q␇慨␇, q␇慨␇);
+Test_N(q␇憎␇, q␇憎␇, q␇憎␇, q␇憎␇, q␇憎␇);
+Test_N(q␇懲␇, q␇懲␇, q␇懲␇, q␇懲␇, q␇懲␇);
+Test_N(q␇敏␇, q␇敏␇, q␇敏␇, q␇敏␇, q␇敏␇);
+Test_N(q␇既␇, q␇既␇, q␇既␇, q␇既␇, q␇既␇);
+Test_N(q␇暑␇, q␇暑␇, q␇暑␇, q␇暑␇, q␇暑␇);
+Test_N(q␇梅␇, q␇梅␇, q␇梅␇, q␇梅␇, q␇梅␇);
+Test_N(q␇海␇, q␇海␇, q␇海␇, q␇海␇, q␇海␇);
+Test_N(q␇渚␇, q␇渚␇, q␇渚␇, q␇渚␇, q␇渚␇);
+Test_N(q␇漢␇, q␇漢␇, q␇漢␇, q␇漢␇, q␇漢␇);
+Test_N(q␇煮␇, q␇煮␇, q␇煮␇, q␇煮␇, q␇煮␇);
+Test_N(q␇爫␇, q␇爫␇, q␇爫␇, q␇爫␇, q␇爫␇);
+Test_N(q␇琢␇, q␇琢␇, q␇琢␇, q␇琢␇, q␇琢␇);
+Test_N(q␇碑␇, q␇碑␇, q␇碑␇, q␇碑␇, q␇碑␇);
+Test_N(q␇社␇, q␇社␇, q␇社␇, q␇社␇, q␇社␇);
+Test_N(q␇祉␇, q␇祉␇, q␇祉␇, q␇祉␇, q␇祉␇);
+Test_N(q␇祈␇, q␇祈␇, q␇祈␇, q␇祈␇, q␇祈␇);
+Test_N(q␇祐␇, q␇祐␇, q␇祐␇, q␇祐␇, q␇祐␇);
+Test_N(q␇祖␇, q␇祖␇, q␇祖␇, q␇祖␇, q␇祖␇);
+Test_N(q␇祝␇, q␇祝␇, q␇祝␇, q␇祝␇, q␇祝␇);
+Test_N(q␇禍␇, q␇禍␇, q␇禍␇, q␇禍␇, q␇禍␇);
+Test_N(q␇禎␇, q␇禎␇, q␇禎␇, q␇禎␇, q␇禎␇);
+Test_N(q␇穀␇, q␇穀␇, q␇穀␇, q␇穀␇, q␇穀␇);
+Test_N(q␇突␇, q␇突␇, q␇突␇, q␇突␇, q␇突␇);
+Test_N(q␇節␇, q␇節␇, q␇節␇, q␇節␇, q␇節␇);
+Test_N(q␇練␇, q␇練␇, q␇練␇, q␇練␇, q␇練␇);
+Test_N(q␇縉␇, q␇縉␇, q␇縉␇, q␇縉␇, q␇縉␇);
+Test_N(q␇繁␇, q␇繁␇, q␇繁␇, q␇繁␇, q␇繁␇);
+Test_N(q␇署␇, q␇署␇, q␇署␇, q␇署␇, q␇署␇);
+Test_N(q␇者␇, q␇者␇, q␇者␇, q␇者␇, q␇者␇);
+Test_N(q␇臭␇, q␇臭␇, q␇臭␇, q␇臭␇, q␇臭␇);
+Test_N(q␇艹␇, q␇艹␇, q␇艹␇, q␇艹␇, q␇艹␇);
+Test_N(q␇艹␇, q␇艹␇, q␇艹␇, q␇艹␇, q␇艹␇);
+Test_N(q␇著␇, q␇著␇, q␇著␇, q␇著␇, q␇著␇);
+Test_N(q␇褐␇, q␇褐␇, q␇褐␇, q␇褐␇, q␇褐␇);
+Test_N(q␇視␇, q␇視␇, q␇視␇, q␇視␇, q␇視␇);
+Test_N(q␇謁␇, q␇謁␇, q␇謁␇, q␇謁␇, q␇謁␇);
+Test_N(q␇謹␇, q␇謹␇, q␇謹␇, q␇謹␇, q␇謹␇);
+Test_N(q␇賓␇, q␇賓␇, q␇賓␇, q␇賓␇, q␇賓␇);
+Test_N(q␇贈␇, q␇贈␇, q␇贈␇, q␇贈␇, q␇贈␇);
+Test_N(q␇辶␇, q␇辶␇, q␇辶␇, q␇辶␇, q␇辶␇);
+Test_N(q␇逸␇, q␇逸␇, q␇逸␇, q␇逸␇, q␇逸␇);
+Test_N(q␇難␇, q␇難␇, q␇難␇, q␇難␇, q␇難␇);
+Test_N(q␇響␇, q␇響␇, q␇響␇, q␇響␇, q␇響␇);
+Test_N(q␇頻␇, q␇頻␇, q␇頻␇, q␇頻␇, q␇頻␇);
+Test_N(q␇恵␇, q␇恵␇, q␇恵␇, q␇恵␇, q␇恵␇);
+Test_N(q␇𤋮␇, q␇𤋮␇, q␇𤋮␇, q␇𤋮␇, q␇𤋮␇);
+Test_N(q␇舘␇, q␇舘␇, q␇舘␇, q␇舘␇, q␇舘␇);
+Test_N(q␇並␇, q␇並␇, q␇並␇, q␇並␇, q␇並␇);
+Test_N(q␇况␇, q␇况␇, q␇况␇, q␇况␇, q␇况␇);
+Test_N(q␇全␇, q␇全␇, q␇全␇, q␇全␇, q␇全␇);
+Test_N(q␇侀␇, q␇侀␇, q␇侀␇, q␇侀␇, q␇侀␇);
+Test_N(q␇充␇, q␇充␇, q␇充␇, q␇充␇, q␇充␇);
+Test_N(q␇冀␇, q␇冀␇, q␇冀␇, q␇冀␇, q␇冀␇);
+Test_N(q␇勇␇, q␇勇␇, q␇勇␇, q␇勇␇, q␇勇␇);
+Test_N(q␇勺␇, q␇勺␇, q␇勺␇, q␇勺␇, q␇勺␇);
+Test_N(q␇喝␇, q␇喝␇, q␇喝␇, q␇喝␇, q␇喝␇);
+Test_N(q␇啕␇, q␇啕␇, q␇啕␇, q␇啕␇, q␇啕␇);
+Test_N(q␇喙␇, q␇喙␇, q␇喙␇, q␇喙␇, q␇喙␇);
+Test_N(q␇嗢␇, q␇嗢␇, q␇嗢␇, q␇嗢␇, q␇嗢␇);
+Test_N(q␇塚␇, q␇塚␇, q␇塚␇, q␇塚␇, q␇塚␇);
+Test_N(q␇墳␇, q␇墳␇, q␇墳␇, q␇墳␇, q␇墳␇);
+Test_N(q␇奄␇, q␇奄␇, q␇奄␇, q␇奄␇, q␇奄␇);
+Test_N(q␇奔␇, q␇奔␇, q␇奔␇, q␇奔␇, q␇奔␇);
+Test_N(q␇婢␇, q␇婢␇, q␇婢␇, q␇婢␇, q␇婢␇);
+Test_N(q␇嬨␇, q␇嬨␇, q␇嬨␇, q␇嬨␇, q␇嬨␇);
+Test_N(q␇廒␇, q␇廒␇, q␇廒␇, q␇廒␇, q␇廒␇);
+Test_N(q␇廙␇, q␇廙␇, q␇廙␇, q␇廙␇, q␇廙␇);
+Test_N(q␇彩␇, q␇彩␇, q␇彩␇, q␇彩␇, q␇彩␇);
+Test_N(q␇徭␇, q␇徭␇, q␇徭␇, q␇徭␇, q␇徭␇);
+Test_N(q␇惘␇, q␇惘␇, q␇惘␇, q␇惘␇, q␇惘␇);
+Test_N(q␇慎␇, q␇慎␇, q␇慎␇, q␇慎␇, q␇慎␇);
+Test_N(q␇愈␇, q␇愈␇, q␇愈␇, q␇愈␇, q␇愈␇);
+Test_N(q␇憎␇, q␇憎␇, q␇憎␇, q␇憎␇, q␇憎␇);
+Test_N(q␇慠␇, q␇慠␇, q␇慠␇, q␇慠␇, q␇慠␇);
+Test_N(q␇懲␇, q␇懲␇, q␇懲␇, q␇懲␇, q␇懲␇);
+Test_N(q␇戴␇, q␇戴␇, q␇戴␇, q␇戴␇, q␇戴␇);
+Test_N(q␇揄␇, q␇揄␇, q␇揄␇, q␇揄␇, q␇揄␇);
+Test_N(q␇搜␇, q␇搜␇, q␇搜␇, q␇搜␇, q␇搜␇);
+Test_N(q␇摒␇, q␇摒␇, q␇摒␇, q␇摒␇, q␇摒␇);
+Test_N(q␇敖␇, q␇敖␇, q␇敖␇, q␇敖␇, q␇敖␇);
+Test_N(q␇晴␇, q␇晴␇, q␇晴␇, q␇晴␇, q␇晴␇);
+Test_N(q␇朗␇, q␇朗␇, q␇朗␇, q␇朗␇, q␇朗␇);
+Test_N(q␇望␇, q␇望␇, q␇望␇, q␇望␇, q␇望␇);
+Test_N(q␇杖␇, q␇杖␇, q␇杖␇, q␇杖␇, q␇杖␇);
+Test_N(q␇歹␇, q␇歹␇, q␇歹␇, q␇歹␇, q␇歹␇);
+Test_N(q␇殺␇, q␇殺␇, q␇殺␇, q␇殺␇, q␇殺␇);
+Test_N(q␇流␇, q␇流␇, q␇流␇, q␇流␇, q␇流␇);
+Test_N(q␇滛␇, q␇滛␇, q␇滛␇, q␇滛␇, q␇滛␇);
+Test_N(q␇滋␇, q␇滋␇, q␇滋␇, q␇滋␇, q␇滋␇);
+Test_N(q␇漢␇, q␇漢␇, q␇漢␇, q␇漢␇, q␇漢␇);
+Test_N(q␇瀞␇, q␇瀞␇, q␇瀞␇, q␇瀞␇, q␇瀞␇);
+Test_N(q␇煮␇, q␇煮␇, q␇煮␇, q␇煮␇, q␇煮␇);
+Test_N(q␇瞧␇, q␇瞧␇, q␇瞧␇, q␇瞧␇, q␇瞧␇);
+Test_N(q␇爵␇, q␇爵␇, q␇爵␇, q␇爵␇, q␇爵␇);
+Test_N(q␇犯␇, q␇犯␇, q␇犯␇, q␇犯␇, q␇犯␇);
+Test_N(q␇猪␇, q␇猪␇, q␇猪␇, q␇猪␇, q␇猪␇);
+Test_N(q␇瑱␇, q␇瑱␇, q␇瑱␇, q␇瑱␇, q␇瑱␇);
+Test_N(q␇甆␇, q␇甆␇, q␇甆␇, q␇甆␇, q␇甆␇);
+Test_N(q␇画␇, q␇画␇, q␇画␇, q␇画␇, q␇画␇);
+Test_N(q␇瘝␇, q␇瘝␇, q␇瘝␇, q␇瘝␇, q␇瘝␇);
+Test_N(q␇瘟␇, q␇瘟␇, q␇瘟␇, q␇瘟␇, q␇瘟␇);
+Test_N(q␇益␇, q␇益␇, q␇益␇, q␇益␇, q␇益␇);
+Test_N(q␇盛␇, q␇盛␇, q␇盛␇, q␇盛␇, q␇盛␇);
+Test_N(q␇直␇, q␇直␇, q␇直␇, q␇直␇, q␇直␇);
+Test_N(q␇睊␇, q␇睊␇, q␇睊␇, q␇睊␇, q␇睊␇);
+Test_N(q␇着␇, q␇着␇, q␇着␇, q␇着␇, q␇着␇);
+Test_N(q␇磌␇, q␇磌␇, q␇磌␇, q␇磌␇, q␇磌␇);
+Test_N(q␇窱␇, q␇窱␇, q␇窱␇, q␇窱␇, q␇窱␇);
+Test_N(q␇節␇, q␇節␇, q␇節␇, q␇節␇, q␇節␇);
+Test_N(q␇类␇, q␇类␇, q␇类␇, q␇类␇, q␇类␇);
+Test_N(q␇絛␇, q␇絛␇, q␇絛␇, q␇絛␇, q␇絛␇);
+Test_N(q␇練␇, q␇練␇, q␇練␇, q␇練␇, q␇練␇);
+Test_N(q␇缾␇, q␇缾␇, q␇缾␇, q␇缾␇, q␇缾␇);
+Test_N(q␇者␇, q␇者␇, q␇者␇, q␇者␇, q␇者␇);
+Test_N(q␇荒␇, q␇荒␇, q␇荒␇, q␇荒␇, q␇荒␇);
+Test_N(q␇華␇, q␇華␇, q␇華␇, q␇華␇, q␇華␇);
+Test_N(q␇蝹␇, q␇蝹␇, q␇蝹␇, q␇蝹␇, q␇蝹␇);
+Test_N(q␇襁␇, q␇襁␇, q␇襁␇, q␇襁␇, q␇襁␇);
+Test_N(q␇覆␇, q␇覆␇, q␇覆␇, q␇覆␇, q␇覆␇);
+Test_N(q␇視␇, q␇視␇, q␇視␇, q␇視␇, q␇視␇);
+Test_N(q␇調␇, q␇調␇, q␇調␇, q␇調␇, q␇調␇);
+Test_N(q␇諸␇, q␇諸␇, q␇諸␇, q␇諸␇, q␇諸␇);
+Test_N(q␇請␇, q␇請␇, q␇請␇, q␇請␇, q␇請␇);
+Test_N(q␇謁␇, q␇謁␇, q␇謁␇, q␇謁␇, q␇謁␇);
+Test_N(q␇諾␇, q␇諾␇, q␇諾␇, q␇諾␇, q␇諾␇);
+Test_N(q␇諭␇, q␇諭␇, q␇諭␇, q␇諭␇, q␇諭␇);
+Test_N(q␇謹␇, q␇謹␇, q␇謹␇, q␇謹␇, q␇謹␇);
+Test_N(q␇變␇, q␇變␇, q␇變␇, q␇變␇, q␇變␇);
+Test_N(q␇贈␇, q␇贈␇, q␇贈␇, q␇贈␇, q␇贈␇);
+Test_N(q␇輸␇, q␇輸␇, q␇輸␇, q␇輸␇, q␇輸␇);
+Test_N(q␇遲␇, q␇遲␇, q␇遲␇, q␇遲␇, q␇遲␇);
+Test_N(q␇醙␇, q␇醙␇, q␇醙␇, q␇醙␇, q␇醙␇);
+Test_N(q␇鉶␇, q␇鉶␇, q␇鉶␇, q␇鉶␇, q␇鉶␇);
+Test_N(q␇陼␇, q␇陼␇, q␇陼␇, q␇陼␇, q␇陼␇);
+Test_N(q␇難␇, q␇難␇, q␇難␇, q␇難␇, q␇難␇);
+Test_N(q␇靖␇, q␇靖␇, q␇靖␇, q␇靖␇, q␇靖␇);
+Test_N(q␇韛␇, q␇韛␇, q␇韛␇, q␇韛␇, q␇韛␇);
+Test_N(q␇響␇, q␇響␇, q␇響␇, q␇響␇, q␇響␇);
+Test_N(q␇頋␇, q␇頋␇, q␇頋␇, q␇頋␇, q␇頋␇);
+Test_N(q␇頻␇, q␇頻␇, q␇頻␇, q␇頻␇, q␇頻␇);
+Test_N(q␇鬒␇, q␇鬒␇, q␇鬒␇, q␇鬒␇, q␇鬒␇);
+Test_N(q␇龜␇, q␇龜␇, q␇龜␇, q␇龜␇, q␇龜␇);
+Test_N(q␇𢡊␇, q␇𢡊␇, q␇𢡊␇, q␇𢡊␇, q␇𢡊␇);
+Test_N(q␇𢡄␇, q␇𢡄␇, q␇𢡄␇, q␇𢡄␇, q␇𢡄␇);
+Test_N(q␇𣏕␇, q␇𣏕␇, q␇𣏕␇, q␇𣏕␇, q␇𣏕␇);
+Test_N(q␇㮝␇, q␇㮝␇, q␇㮝␇, q␇㮝␇, q␇㮝␇);
+Test_N(q␇䀘␇, q␇䀘␇, q␇䀘␇, q␇䀘␇, q␇䀘␇);
+Test_N(q␇䀹␇, q␇䀹␇, q␇䀹␇, q␇䀹␇, q␇䀹␇);
+Test_N(q␇𥉉␇, q␇𥉉␇, q␇𥉉␇, q␇𥉉␇, q␇𥉉␇);
+Test_N(q␇𥳐␇, q␇𥳐␇, q␇𥳐␇, q␇𥳐␇, q␇𥳐␇);
+Test_N(q␇𧻓␇, q␇𧻓␇, q␇𧻓␇, q␇𧻓␇, q␇𧻓␇);
+Test_N(q␇齃␇, q␇齃␇, q␇齃␇, q␇齃␇, q␇齃␇);
+Test_N(q␇龎␇, q␇龎␇, q␇龎␇, q␇龎␇, q␇龎␇);
+Test_N(q␇ff␇, q␇ff␇, q␇ff␇, q␇ff␇, q␇ff␇);
+Test_N(q␇fi␇, q␇fi␇, q␇fi␇, q␇fi␇, q␇fi␇);
+Test_N(q␇fl␇, q␇fl␇, q␇fl␇, q␇fl␇, q␇fl␇);
+Test_N(q␇ffi␇, q␇ffi␇, q␇ffi␇, q␇ffi␇, q␇ffi␇);
+Test_N(q␇ffl␇, q␇ffl␇, q␇ffl␇, q␇ffl␇, q␇ffl␇);
+Test_N(q␇ſt␇, q␇ſt␇, q␇ſt␇, q␇st␇, q␇st␇);
+Test_N(q␇st␇, q␇st␇, q␇st␇, q␇st␇, q␇st␇);
+Test_N(q␇ﬓ␇, q␇ﬓ␇, q␇ﬓ␇, q␇մն␇, q␇մն␇);
+Test_N(q␇ﬔ␇, q␇ﬔ␇, q␇ﬔ␇, q␇մե␇, q␇մե␇);
+Test_N(q␇ﬕ␇, q␇ﬕ␇, q␇ﬕ␇, q␇մի␇, q␇մի␇);
+Test_N(q␇ﬖ␇, q␇ﬖ␇, q␇ﬖ␇, q␇վն␇, q␇վն␇);
+Test_N(q␇ﬗ␇, q␇ﬗ␇, q␇ﬗ␇, q␇մխ␇, q␇մխ␇);
+Test_N(q␇יִ␇, q␇יִ␇, q␇יִ␇, q␇יִ␇, q␇יִ␇);
+Test_N(q␇ײַ␇, q␇ײַ␇, q␇ײַ␇, q␇ײַ␇, q␇ײַ␇);
+Test_N(q␇ﬠ␇, q␇ﬠ␇, q␇ﬠ␇, q␇ע␇, q␇ע␇);
+Test_N(q␇ﬡ␇, q␇ﬡ␇, q␇ﬡ␇, q␇א␇, q␇א␇);
+Test_N(q␇ﬢ␇, q␇ﬢ␇, q␇ﬢ␇, q␇ד␇, q␇ד␇);
+Test_N(q␇ﬣ␇, q␇ﬣ␇, q␇ﬣ␇, q␇ה␇, q␇ה␇);
+Test_N(q␇ﬤ␇, q␇ﬤ␇, q␇ﬤ␇, q␇כ␇, q␇כ␇);
+Test_N(q␇ﬥ␇, q␇ﬥ␇, q␇ﬥ␇, q␇ל␇, q␇ל␇);
+Test_N(q␇ﬦ␇, q␇ﬦ␇, q␇ﬦ␇, q␇ם␇, q␇ם␇);
+Test_N(q␇ﬧ␇, q␇ﬧ␇, q␇ﬧ␇, q␇ר␇, q␇ר␇);
+Test_N(q␇ﬨ␇, q␇ﬨ␇, q␇ﬨ␇, q␇ת␇, q␇ת␇);
+Test_N(q␇﬩␇, q␇﬩␇, q␇﬩␇, q␇+␇, q␇+␇);
+Test_N(q␇שׁ␇, q␇שׁ␇, q␇שׁ␇, q␇שׁ␇, q␇שׁ␇);
+Test_N(q␇שׂ␇, q␇שׂ␇, q␇שׂ␇, q␇שׂ␇, q␇שׂ␇);
+Test_N(q␇שּׁ␇, q␇שּׁ␇, q␇שּׁ␇, q␇שּׁ␇, q␇שּׁ␇);
+Test_N(q␇שּׂ␇, q␇שּׂ␇, q␇שּׂ␇, q␇שּׂ␇, q␇שּׂ␇);
+Test_N(q␇אַ␇, q␇אַ␇, q␇אַ␇, q␇אַ␇, q␇אַ␇);
+Test_N(q␇אָ␇, q␇אָ␇, q␇אָ␇, q␇אָ␇, q␇אָ␇);
+Test_N(q␇אּ␇, q␇אּ␇, q␇אּ␇, q␇אּ␇, q␇אּ␇);
+Test_N(q␇בּ␇, q␇בּ␇, q␇בּ␇, q␇בּ␇, q␇בּ␇);
+Test_N(q␇גּ␇, q␇גּ␇, q␇גּ␇, q␇גּ␇, q␇גּ␇);
+Test_N(q␇דּ␇, q␇דּ␇, q␇דּ␇, q␇דּ␇, q␇דּ␇);
+Test_N(q␇הּ␇, q␇הּ␇, q␇הּ␇, q␇הּ␇, q␇הּ␇);
+Test_N(q␇וּ␇, q␇וּ␇, q␇וּ␇, q␇וּ␇, q␇וּ␇);
+Test_N(q␇זּ␇, q␇זּ␇, q␇זּ␇, q␇זּ␇, q␇זּ␇);
+Test_N(q␇טּ␇, q␇טּ␇, q␇טּ␇, q␇טּ␇, q␇טּ␇);
+Test_N(q␇יּ␇, q␇יּ␇, q␇יּ␇, q␇יּ␇, q␇יּ␇);
+Test_N(q␇ךּ␇, q␇ךּ␇, q␇ךּ␇, q␇ךּ␇, q␇ךּ␇);
+Test_N(q␇כּ␇, q␇כּ␇, q␇כּ␇, q␇כּ␇, q␇כּ␇);
+Test_N(q␇לּ␇, q␇לּ␇, q␇לּ␇, q␇לּ␇, q␇לּ␇);
+Test_N(q␇מּ␇, q␇מּ␇, q␇מּ␇, q␇מּ␇, q␇מּ␇);
+Test_N(q␇נּ␇, q␇נּ␇, q␇נּ␇, q␇נּ␇, q␇נּ␇);
+Test_N(q␇סּ␇, q␇סּ␇, q␇סּ␇, q␇סּ␇, q␇סּ␇);
+Test_N(q␇ףּ␇, q␇ףּ␇, q␇ףּ␇, q␇ףּ␇, q␇ףּ␇);
+Test_N(q␇פּ␇, q␇פּ␇, q␇פּ␇, q␇פּ␇, q␇פּ␇);
+Test_N(q␇צּ␇, q␇צּ␇, q␇צּ␇, q␇צּ␇, q␇צּ␇);
+Test_N(q␇קּ␇, q␇קּ␇, q␇קּ␇, q␇קּ␇, q␇קּ␇);
+Test_N(q␇רּ␇, q␇רּ␇, q␇רּ␇, q␇רּ␇, q␇רּ␇);
+Test_N(q␇שּ␇, q␇שּ␇, q␇שּ␇, q␇שּ␇, q␇שּ␇);
+Test_N(q␇תּ␇, q␇תּ␇, q␇תּ␇, q␇תּ␇, q␇תּ␇);
+Test_N(q␇וֹ␇, q␇וֹ␇, q␇וֹ␇, q␇וֹ␇, q␇וֹ␇);
+Test_N(q␇בֿ␇, q␇בֿ␇, q␇בֿ␇, q␇בֿ␇, q␇בֿ␇);
+Test_N(q␇כֿ␇, q␇כֿ␇, q␇כֿ␇, q␇כֿ␇, q␇כֿ␇);
+Test_N(q␇פֿ␇, q␇פֿ␇, q␇פֿ␇, q␇פֿ␇, q␇פֿ␇);
+Test_N(q␇ﭏ␇, q␇ﭏ␇, q␇ﭏ␇, q␇אל␇, q␇אל␇);
+Test_N(q␇ﭐ␇, q␇ﭐ␇, q␇ﭐ␇, q␇ٱ␇, q␇ٱ␇);
+Test_N(q␇ﭑ␇, q␇ﭑ␇, q␇ﭑ␇, q␇ٱ␇, q␇ٱ␇);
+Test_N(q␇ﭒ␇, q␇ﭒ␇, q␇ﭒ␇, q␇ٻ␇, q␇ٻ␇);
+Test_N(q␇ﭓ␇, q␇ﭓ␇, q␇ﭓ␇, q␇ٻ␇, q␇ٻ␇);
+Test_N(q␇ﭔ␇, q␇ﭔ␇, q␇ﭔ␇, q␇ٻ␇, q␇ٻ␇);
+Test_N(q␇ﭕ␇, q␇ﭕ␇, q␇ﭕ␇, q␇ٻ␇, q␇ٻ␇);
+Test_N(q␇ﭖ␇, q␇ﭖ␇, q␇ﭖ␇, q␇پ␇, q␇پ␇);
+Test_N(q␇ﭗ␇, q␇ﭗ␇, q␇ﭗ␇, q␇پ␇, q␇پ␇);
+Test_N(q␇ﭘ␇, q␇ﭘ␇, q␇ﭘ␇, q␇پ␇, q␇پ␇);
+Test_N(q␇ﭙ␇, q␇ﭙ␇, q␇ﭙ␇, q␇پ␇, q␇پ␇);
+Test_N(q␇ﭚ␇, q␇ﭚ␇, q␇ﭚ␇, q␇ڀ␇, q␇ڀ␇);
+Test_N(q␇ﭛ␇, q␇ﭛ␇, q␇ﭛ␇, q␇ڀ␇, q␇ڀ␇);
+Test_N(q␇ﭜ␇, q␇ﭜ␇, q␇ﭜ␇, q␇ڀ␇, q␇ڀ␇);
+Test_N(q␇ﭝ␇, q␇ﭝ␇, q␇ﭝ␇, q␇ڀ␇, q␇ڀ␇);
+Test_N(q␇ﭞ␇, q␇ﭞ␇, q␇ﭞ␇, q␇ٺ␇, q␇ٺ␇);
+Test_N(q␇ﭟ␇, q␇ﭟ␇, q␇ﭟ␇, q␇ٺ␇, q␇ٺ␇);
+Test_N(q␇ﭠ␇, q␇ﭠ␇, q␇ﭠ␇, q␇ٺ␇, q␇ٺ␇);
+Test_N(q␇ﭡ␇, q␇ﭡ␇, q␇ﭡ␇, q␇ٺ␇, q␇ٺ␇);
+Test_N(q␇ﭢ␇, q␇ﭢ␇, q␇ﭢ␇, q␇ٿ␇, q␇ٿ␇);
+Test_N(q␇ﭣ␇, q␇ﭣ␇, q␇ﭣ␇, q␇ٿ␇, q␇ٿ␇);
+Test_N(q␇ﭤ␇, q␇ﭤ␇, q␇ﭤ␇, q␇ٿ␇, q␇ٿ␇);
+Test_N(q␇ﭥ␇, q␇ﭥ␇, q␇ﭥ␇, q␇ٿ␇, q␇ٿ␇);
+Test_N(q␇ﭦ␇, q␇ﭦ␇, q␇ﭦ␇, q␇ٹ␇, q␇ٹ␇);
+Test_N(q␇ﭧ␇, q␇ﭧ␇, q␇ﭧ␇, q␇ٹ␇, q␇ٹ␇);
+Test_N(q␇ﭨ␇, q␇ﭨ␇, q␇ﭨ␇, q␇ٹ␇, q␇ٹ␇);
+Test_N(q␇ﭩ␇, q␇ﭩ␇, q␇ﭩ␇, q␇ٹ␇, q␇ٹ␇);
+Test_N(q␇ﭪ␇, q␇ﭪ␇, q␇ﭪ␇, q␇ڤ␇, q␇ڤ␇);
+Test_N(q␇ﭫ␇, q␇ﭫ␇, q␇ﭫ␇, q␇ڤ␇, q␇ڤ␇);
+Test_N(q␇ﭬ␇, q␇ﭬ␇, q␇ﭬ␇, q␇ڤ␇, q␇ڤ␇);
+Test_N(q␇ﭭ␇, q␇ﭭ␇, q␇ﭭ␇, q␇ڤ␇, q␇ڤ␇);
+Test_N(q␇ﭮ␇, q␇ﭮ␇, q␇ﭮ␇, q␇ڦ␇, q␇ڦ␇);
+Test_N(q␇ﭯ␇, q␇ﭯ␇, q␇ﭯ␇, q␇ڦ␇, q␇ڦ␇);
+Test_N(q␇ﭰ␇, q␇ﭰ␇, q␇ﭰ␇, q␇ڦ␇, q␇ڦ␇);
+Test_N(q␇ﭱ␇, q␇ﭱ␇, q␇ﭱ␇, q␇ڦ␇, q␇ڦ␇);
+Test_N(q␇ﭲ␇, q␇ﭲ␇, q␇ﭲ␇, q␇ڄ␇, q␇ڄ␇);
+Test_N(q␇ﭳ␇, q␇ﭳ␇, q␇ﭳ␇, q␇ڄ␇, q␇ڄ␇);
+Test_N(q␇ﭴ␇, q␇ﭴ␇, q␇ﭴ␇, q␇ڄ␇, q␇ڄ␇);
+Test_N(q␇ﭵ␇, q␇ﭵ␇, q␇ﭵ␇, q␇ڄ␇, q␇ڄ␇);
+Test_N(q␇ﭶ␇, q␇ﭶ␇, q␇ﭶ␇, q␇ڃ␇, q␇ڃ␇);
+Test_N(q␇ﭷ␇, q␇ﭷ␇, q␇ﭷ␇, q␇ڃ␇, q␇ڃ␇);
+Test_N(q␇ﭸ␇, q␇ﭸ␇, q␇ﭸ␇, q␇ڃ␇, q␇ڃ␇);
+Test_N(q␇ﭹ␇, q␇ﭹ␇, q␇ﭹ␇, q␇ڃ␇, q␇ڃ␇);
+Test_N(q␇ﭺ␇, q␇ﭺ␇, q␇ﭺ␇, q␇چ␇, q␇چ␇);
+Test_N(q␇ﭻ␇, q␇ﭻ␇, q␇ﭻ␇, q␇چ␇, q␇چ␇);
+Test_N(q␇ﭼ␇, q␇ﭼ␇, q␇ﭼ␇, q␇چ␇, q␇چ␇);
+Test_N(q␇ﭽ␇, q␇ﭽ␇, q␇ﭽ␇, q␇چ␇, q␇چ␇);
+Test_N(q␇ﭾ␇, q␇ﭾ␇, q␇ﭾ␇, q␇ڇ␇, q␇ڇ␇);
+Test_N(q␇ﭿ␇, q␇ﭿ␇, q␇ﭿ␇, q␇ڇ␇, q␇ڇ␇);
+Test_N(q␇ﮀ␇, q␇ﮀ␇, q␇ﮀ␇, q␇ڇ␇, q␇ڇ␇);
+Test_N(q␇ﮁ␇, q␇ﮁ␇, q␇ﮁ␇, q␇ڇ␇, q␇ڇ␇);
+Test_N(q␇ﮂ␇, q␇ﮂ␇, q␇ﮂ␇, q␇ڍ␇, q␇ڍ␇);
+Test_N(q␇ﮃ␇, q␇ﮃ␇, q␇ﮃ␇, q␇ڍ␇, q␇ڍ␇);
+Test_N(q␇ﮄ␇, q␇ﮄ␇, q␇ﮄ␇, q␇ڌ␇, q␇ڌ␇);
+Test_N(q␇ﮅ␇, q␇ﮅ␇, q␇ﮅ␇, q␇ڌ␇, q␇ڌ␇);
+Test_N(q␇ﮆ␇, q␇ﮆ␇, q␇ﮆ␇, q␇ڎ␇, q␇ڎ␇);
+Test_N(q␇ﮇ␇, q␇ﮇ␇, q␇ﮇ␇, q␇ڎ␇, q␇ڎ␇);
+Test_N(q␇ﮈ␇, q␇ﮈ␇, q␇ﮈ␇, q␇ڈ␇, q␇ڈ␇);
+Test_N(q␇ﮉ␇, q␇ﮉ␇, q␇ﮉ␇, q␇ڈ␇, q␇ڈ␇);
+Test_N(q␇ﮊ␇, q␇ﮊ␇, q␇ﮊ␇, q␇ژ␇, q␇ژ␇);
+Test_N(q␇ﮋ␇, q␇ﮋ␇, q␇ﮋ␇, q␇ژ␇, q␇ژ␇);
+Test_N(q␇ﮌ␇, q␇ﮌ␇, q␇ﮌ␇, q␇ڑ␇, q␇ڑ␇);
+Test_N(q␇ﮍ␇, q␇ﮍ␇, q␇ﮍ␇, q␇ڑ␇, q␇ڑ␇);
+Test_N(q␇ﮎ␇, q␇ﮎ␇, q␇ﮎ␇, q␇ک␇, q␇ک␇);
+Test_N(q␇ﮏ␇, q␇ﮏ␇, q␇ﮏ␇, q␇ک␇, q␇ک␇);
+Test_N(q␇ﮐ␇, q␇ﮐ␇, q␇ﮐ␇, q␇ک␇, q␇ک␇);
+Test_N(q␇ﮑ␇, q␇ﮑ␇, q␇ﮑ␇, q␇ک␇, q␇ک␇);
+Test_N(q␇ﮒ␇, q␇ﮒ␇, q␇ﮒ␇, q␇گ␇, q␇گ␇);
+Test_N(q␇ﮓ␇, q␇ﮓ␇, q␇ﮓ␇, q␇گ␇, q␇گ␇);
+Test_N(q␇ﮔ␇, q␇ﮔ␇, q␇ﮔ␇, q␇گ␇, q␇گ␇);
+Test_N(q␇ﮕ␇, q␇ﮕ␇, q␇ﮕ␇, q␇گ␇, q␇گ␇);
+Test_N(q␇ﮖ␇, q␇ﮖ␇, q␇ﮖ␇, q␇ڳ␇, q␇ڳ␇);
+Test_N(q␇ﮗ␇, q␇ﮗ␇, q␇ﮗ␇, q␇ڳ␇, q␇ڳ␇);
+Test_N(q␇ﮘ␇, q␇ﮘ␇, q␇ﮘ␇, q␇ڳ␇, q␇ڳ␇);
+Test_N(q␇ﮙ␇, q␇ﮙ␇, q␇ﮙ␇, q␇ڳ␇, q␇ڳ␇);
+Test_N(q␇ﮚ␇, q␇ﮚ␇, q␇ﮚ␇, q␇ڱ␇, q␇ڱ␇);
+Test_N(q␇ﮛ␇, q␇ﮛ␇, q␇ﮛ␇, q␇ڱ␇, q␇ڱ␇);
+Test_N(q␇ﮜ␇, q␇ﮜ␇, q␇ﮜ␇, q␇ڱ␇, q␇ڱ␇);
+Test_N(q␇ﮝ␇, q␇ﮝ␇, q␇ﮝ␇, q␇ڱ␇, q␇ڱ␇);
+Test_N(q␇ﮞ␇, q␇ﮞ␇, q␇ﮞ␇, q␇ں␇, q␇ں␇);
+Test_N(q␇ﮟ␇, q␇ﮟ␇, q␇ﮟ␇, q␇ں␇, q␇ں␇);
+Test_N(q␇ﮠ␇, q␇ﮠ␇, q␇ﮠ␇, q␇ڻ␇, q␇ڻ␇);
+Test_N(q␇ﮡ␇, q␇ﮡ␇, q␇ﮡ␇, q␇ڻ␇, q␇ڻ␇);
+Test_N(q␇ﮢ␇, q␇ﮢ␇, q␇ﮢ␇, q␇ڻ␇, q␇ڻ␇);
+Test_N(q␇ﮣ␇, q␇ﮣ␇, q␇ﮣ␇, q␇ڻ␇, q␇ڻ␇);
+Test_N(q␇ﮤ␇, q␇ﮤ␇, q␇ﮤ␇, q␇ۀ␇, q␇ۀ␇);
+Test_N(q␇ﮥ␇, q␇ﮥ␇, q␇ﮥ␇, q␇ۀ␇, q␇ۀ␇);
+Test_N(q␇ﮦ␇, q␇ﮦ␇, q␇ﮦ␇, q␇ہ␇, q␇ہ␇);
+Test_N(q␇ﮧ␇, q␇ﮧ␇, q␇ﮧ␇, q␇ہ␇, q␇ہ␇);
+Test_N(q␇ﮨ␇, q␇ﮨ␇, q␇ﮨ␇, q␇ہ␇, q␇ہ␇);
+Test_N(q␇ﮩ␇, q␇ﮩ␇, q␇ﮩ␇, q␇ہ␇, q␇ہ␇);
+Test_N(q␇ﮪ␇, q␇ﮪ␇, q␇ﮪ␇, q␇ھ␇, q␇ھ␇);
+Test_N(q␇ﮫ␇, q␇ﮫ␇, q␇ﮫ␇, q␇ھ␇, q␇ھ␇);
+Test_N(q␇ﮬ␇, q␇ﮬ␇, q␇ﮬ␇, q␇ھ␇, q␇ھ␇);
+Test_N(q␇ﮭ␇, q␇ﮭ␇, q␇ﮭ␇, q␇ھ␇, q␇ھ␇);
+Test_N(q␇ﮮ␇, q␇ﮮ␇, q␇ﮮ␇, q␇ے␇, q␇ے␇);
+Test_N(q␇ﮯ␇, q␇ﮯ␇, q␇ﮯ␇, q␇ے␇, q␇ے␇);
+Test_N(q␇ﮰ␇, q␇ﮰ␇, q␇ﮰ␇, q␇ۓ␇, q␇ۓ␇);
+Test_N(q␇ﮱ␇, q␇ﮱ␇, q␇ﮱ␇, q␇ۓ␇, q␇ۓ␇);
+Test_N(q␇ﯓ␇, q␇ﯓ␇, q␇ﯓ␇, q␇ڭ␇, q␇ڭ␇);
+Test_N(q␇ﯔ␇, q␇ﯔ␇, q␇ﯔ␇, q␇ڭ␇, q␇ڭ␇);
+Test_N(q␇ﯕ␇, q␇ﯕ␇, q␇ﯕ␇, q␇ڭ␇, q␇ڭ␇);
+Test_N(q␇ﯖ␇, q␇ﯖ␇, q␇ﯖ␇, q␇ڭ␇, q␇ڭ␇);
+Test_N(q␇ﯗ␇, q␇ﯗ␇, q␇ﯗ␇, q␇ۇ␇, q␇ۇ␇);
+Test_N(q␇ﯘ␇, q␇ﯘ␇, q␇ﯘ␇, q␇ۇ␇, q␇ۇ␇);
+Test_N(q␇ﯙ␇, q␇ﯙ␇, q␇ﯙ␇, q␇ۆ␇, q␇ۆ␇);
+Test_N(q␇ﯚ␇, q␇ﯚ␇, q␇ﯚ␇, q␇ۆ␇, q␇ۆ␇);
+Test_N(q␇ﯛ␇, q␇ﯛ␇, q␇ﯛ␇, q␇ۈ␇, q␇ۈ␇);
+Test_N(q␇ﯜ␇, q␇ﯜ␇, q␇ﯜ␇, q␇ۈ␇, q␇ۈ␇);
+Test_N(q␇ﯝ␇, q␇ﯝ␇, q␇ﯝ␇, q␇ۇٴ␇, q␇ۇٴ␇);
+Test_N(q␇ﯞ␇, q␇ﯞ␇, q␇ﯞ␇, q␇ۋ␇, q␇ۋ␇);
+Test_N(q␇ﯟ␇, q␇ﯟ␇, q␇ﯟ␇, q␇ۋ␇, q␇ۋ␇);
+Test_N(q␇ﯠ␇, q␇ﯠ␇, q␇ﯠ␇, q␇ۅ␇, q␇ۅ␇);
+Test_N(q␇ﯡ␇, q␇ﯡ␇, q␇ﯡ␇, q␇ۅ␇, q␇ۅ␇);
+Test_N(q␇ﯢ␇, q␇ﯢ␇, q␇ﯢ␇, q␇ۉ␇, q␇ۉ␇);
+Test_N(q␇ﯣ␇, q␇ﯣ␇, q␇ﯣ␇, q␇ۉ␇, q␇ۉ␇);
+Test_N(q␇ﯤ␇, q␇ﯤ␇, q␇ﯤ␇, q␇ې␇, q␇ې␇);
+Test_N(q␇ﯥ␇, q␇ﯥ␇, q␇ﯥ␇, q␇ې␇, q␇ې␇);
+Test_N(q␇ﯦ␇, q␇ﯦ␇, q␇ﯦ␇, q␇ې␇, q␇ې␇);
+Test_N(q␇ﯧ␇, q␇ﯧ␇, q␇ﯧ␇, q␇ې␇, q␇ې␇);
+Test_N(q␇ﯨ␇, q␇ﯨ␇, q␇ﯨ␇, q␇ى␇, q␇ى␇);
+Test_N(q␇ﯩ␇, q␇ﯩ␇, q␇ﯩ␇, q␇ى␇, q␇ى␇);
+Test_N(q␇ﯪ␇, q␇ﯪ␇, q␇ﯪ␇, q␇ئا␇, q␇ئا␇);
+Test_N(q␇ﯫ␇, q␇ﯫ␇, q␇ﯫ␇, q␇ئا␇, q␇ئا␇);
+Test_N(q␇ﯬ␇, q␇ﯬ␇, q␇ﯬ␇, q␇ئە␇, q␇ئە␇);
+Test_N(q␇ﯭ␇, q␇ﯭ␇, q␇ﯭ␇, q␇ئە␇, q␇ئە␇);
+Test_N(q␇ﯮ␇, q␇ﯮ␇, q␇ﯮ␇, q␇ئو␇, q␇ئو␇);
+Test_N(q␇ﯯ␇, q␇ﯯ␇, q␇ﯯ␇, q␇ئو␇, q␇ئو␇);
+Test_N(q␇ﯰ␇, q␇ﯰ␇, q␇ﯰ␇, q␇ئۇ␇, q␇ئۇ␇);
+Test_N(q␇ﯱ␇, q␇ﯱ␇, q␇ﯱ␇, q␇ئۇ␇, q␇ئۇ␇);
+Test_N(q␇ﯲ␇, q␇ﯲ␇, q␇ﯲ␇, q␇ئۆ␇, q␇ئۆ␇);
+Test_N(q␇ﯳ␇, q␇ﯳ␇, q␇ﯳ␇, q␇ئۆ␇, q␇ئۆ␇);
+Test_N(q␇ﯴ␇, q␇ﯴ␇, q␇ﯴ␇, q␇ئۈ␇, q␇ئۈ␇);
+Test_N(q␇ﯵ␇, q␇ﯵ␇, q␇ﯵ␇, q␇ئۈ␇, q␇ئۈ␇);
+Test_N(q␇ﯶ␇, q␇ﯶ␇, q␇ﯶ␇, q␇ئې␇, q␇ئې␇);
+Test_N(q␇ﯷ␇, q␇ﯷ␇, q␇ﯷ␇, q␇ئې␇, q␇ئې␇);
+Test_N(q␇ﯸ␇, q␇ﯸ␇, q␇ﯸ␇, q␇ئې␇, q␇ئې␇);
+Test_N(q␇ﯹ␇, q␇ﯹ␇, q␇ﯹ␇, q␇ئى␇, q␇ئى␇);
+Test_N(q␇ﯺ␇, q␇ﯺ␇, q␇ﯺ␇, q␇ئى␇, q␇ئى␇);
+Test_N(q␇ﯻ␇, q␇ﯻ␇, q␇ﯻ␇, q␇ئى␇, q␇ئى␇);
+Test_N(q␇ﯼ␇, q␇ﯼ␇, q␇ﯼ␇, q␇ی␇, q␇ی␇);
+Test_N(q␇ﯽ␇, q␇ﯽ␇, q␇ﯽ␇, q␇ی␇, q␇ی␇);
+Test_N(q␇ﯾ␇, q␇ﯾ␇, q␇ﯾ␇, q␇ی␇, q␇ی␇);
+Test_N(q␇ﯿ␇, q␇ﯿ␇, q␇ﯿ␇, q␇ی␇, q␇ی␇);
+Test_N(q␇ﰀ␇, q␇ﰀ␇, q␇ﰀ␇, q␇ئج␇, q␇ئج␇);
+Test_N(q␇ﰁ␇, q␇ﰁ␇, q␇ﰁ␇, q␇ئح␇, q␇ئح␇);
+Test_N(q␇ﰂ␇, q␇ﰂ␇, q␇ﰂ␇, q␇ئم␇, q␇ئم␇);
+Test_N(q␇ﰃ␇, q␇ﰃ␇, q␇ﰃ␇, q␇ئى␇, q␇ئى␇);
+Test_N(q␇ﰄ␇, q␇ﰄ␇, q␇ﰄ␇, q␇ئي␇, q␇ئي␇);
+Test_N(q␇ﰅ␇, q␇ﰅ␇, q␇ﰅ␇, q␇بج␇, q␇بج␇);
+Test_N(q␇ﰆ␇, q␇ﰆ␇, q␇ﰆ␇, q␇بح␇, q␇بح␇);
+Test_N(q␇ﰇ␇, q␇ﰇ␇, q␇ﰇ␇, q␇بخ␇, q␇بخ␇);
+Test_N(q␇ﰈ␇, q␇ﰈ␇, q␇ﰈ␇, q␇بم␇, q␇بم␇);
+Test_N(q␇ﰉ␇, q␇ﰉ␇, q␇ﰉ␇, q␇بى␇, q␇بى␇);
+Test_N(q␇ﰊ␇, q␇ﰊ␇, q␇ﰊ␇, q␇بي␇, q␇بي␇);
+Test_N(q␇ﰋ␇, q␇ﰋ␇, q␇ﰋ␇, q␇تج␇, q␇تج␇);
+Test_N(q␇ﰌ␇, q␇ﰌ␇, q␇ﰌ␇, q␇تح␇, q␇تح␇);
+Test_N(q␇ﰍ␇, q␇ﰍ␇, q␇ﰍ␇, q␇تخ␇, q␇تخ␇);
+Test_N(q␇ﰎ␇, q␇ﰎ␇, q␇ﰎ␇, q␇تم␇, q␇تم␇);
+Test_N(q␇ﰏ␇, q␇ﰏ␇, q␇ﰏ␇, q␇تى␇, q␇تى␇);
+Test_N(q␇ﰐ␇, q␇ﰐ␇, q␇ﰐ␇, q␇تي␇, q␇تي␇);
+Test_N(q␇ﰑ␇, q␇ﰑ␇, q␇ﰑ␇, q␇ثج␇, q␇ثج␇);
+Test_N(q␇ﰒ␇, q␇ﰒ␇, q␇ﰒ␇, q␇ثم␇, q␇ثم␇);
+Test_N(q␇ﰓ␇, q␇ﰓ␇, q␇ﰓ␇, q␇ثى␇, q␇ثى␇);
+Test_N(q␇ﰔ␇, q␇ﰔ␇, q␇ﰔ␇, q␇ثي␇, q␇ثي␇);
+Test_N(q␇ﰕ␇, q␇ﰕ␇, q␇ﰕ␇, q␇جح␇, q␇جح␇);
+Test_N(q␇ﰖ␇, q␇ﰖ␇, q␇ﰖ␇, q␇جم␇, q␇جم␇);
+Test_N(q␇ﰗ␇, q␇ﰗ␇, q␇ﰗ␇, q␇حج␇, q␇حج␇);
+Test_N(q␇ﰘ␇, q␇ﰘ␇, q␇ﰘ␇, q␇حم␇, q␇حم␇);
+Test_N(q␇ﰙ␇, q␇ﰙ␇, q␇ﰙ␇, q␇خج␇, q␇خج␇);
+Test_N(q␇ﰚ␇, q␇ﰚ␇, q␇ﰚ␇, q␇خح␇, q␇خح␇);
+Test_N(q␇ﰛ␇, q␇ﰛ␇, q␇ﰛ␇, q␇خم␇, q␇خم␇);
+Test_N(q␇ﰜ␇, q␇ﰜ␇, q␇ﰜ␇, q␇سج␇, q␇سج␇);
+Test_N(q␇ﰝ␇, q␇ﰝ␇, q␇ﰝ␇, q␇سح␇, q␇سح␇);
+Test_N(q␇ﰞ␇, q␇ﰞ␇, q␇ﰞ␇, q␇سخ␇, q␇سخ␇);
+Test_N(q␇ﰟ␇, q␇ﰟ␇, q␇ﰟ␇, q␇سم␇, q␇سم␇);
+Test_N(q␇ﰠ␇, q␇ﰠ␇, q␇ﰠ␇, q␇صح␇, q␇صح␇);
+Test_N(q␇ﰡ␇, q␇ﰡ␇, q␇ﰡ␇, q␇صم␇, q␇صم␇);
+Test_N(q␇ﰢ␇, q␇ﰢ␇, q␇ﰢ␇, q␇ضج␇, q␇ضج␇);
+Test_N(q␇ﰣ␇, q␇ﰣ␇, q␇ﰣ␇, q␇ضح␇, q␇ضح␇);
+Test_N(q␇ﰤ␇, q␇ﰤ␇, q␇ﰤ␇, q␇ضخ␇, q␇ضخ␇);
+Test_N(q␇ﰥ␇, q␇ﰥ␇, q␇ﰥ␇, q␇ضم␇, q␇ضم␇);
+Test_N(q␇ﰦ␇, q␇ﰦ␇, q␇ﰦ␇, q␇طح␇, q␇طح␇);
+Test_N(q␇ﰧ␇, q␇ﰧ␇, q␇ﰧ␇, q␇طم␇, q␇طم␇);
+Test_N(q␇ﰨ␇, q␇ﰨ␇, q␇ﰨ␇, q␇ظم␇, q␇ظم␇);
+Test_N(q␇ﰩ␇, q␇ﰩ␇, q␇ﰩ␇, q␇عج␇, q␇عج␇);
+Test_N(q␇ﰪ␇, q␇ﰪ␇, q␇ﰪ␇, q␇عم␇, q␇عم␇);
+Test_N(q␇ﰫ␇, q␇ﰫ␇, q␇ﰫ␇, q␇غج␇, q␇غج␇);
+Test_N(q␇ﰬ␇, q␇ﰬ␇, q␇ﰬ␇, q␇غم␇, q␇غم␇);
+Test_N(q␇ﰭ␇, q␇ﰭ␇, q␇ﰭ␇, q␇فج␇, q␇فج␇);
+Test_N(q␇ﰮ␇, q␇ﰮ␇, q␇ﰮ␇, q␇فح␇, q␇فح␇);
+Test_N(q␇ﰯ␇, q␇ﰯ␇, q␇ﰯ␇, q␇فخ␇, q␇فخ␇);
+Test_N(q␇ﰰ␇, q␇ﰰ␇, q␇ﰰ␇, q␇فم␇, q␇فم␇);
+Test_N(q␇ﰱ␇, q␇ﰱ␇, q␇ﰱ␇, q␇فى␇, q␇فى␇);
+Test_N(q␇ﰲ␇, q␇ﰲ␇, q␇ﰲ␇, q␇في␇, q␇في␇);
+Test_N(q␇ﰳ␇, q␇ﰳ␇, q␇ﰳ␇, q␇قح␇, q␇قح␇);
+Test_N(q␇ﰴ␇, q␇ﰴ␇, q␇ﰴ␇, q␇قم␇, q␇قم␇);
+Test_N(q␇ﰵ␇, q␇ﰵ␇, q␇ﰵ␇, q␇قى␇, q␇قى␇);
+Test_N(q␇ﰶ␇, q␇ﰶ␇, q␇ﰶ␇, q␇قي␇, q␇قي␇);
+Test_N(q␇ﰷ␇, q␇ﰷ␇, q␇ﰷ␇, q␇كا␇, q␇كا␇);
+Test_N(q␇ﰸ␇, q␇ﰸ␇, q␇ﰸ␇, q␇كج␇, q␇كج␇);
+Test_N(q␇ﰹ␇, q␇ﰹ␇, q␇ﰹ␇, q␇كح␇, q␇كح␇);
+Test_N(q␇ﰺ␇, q␇ﰺ␇, q␇ﰺ␇, q␇كخ␇, q␇كخ␇);
+Test_N(q␇ﰻ␇, q␇ﰻ␇, q␇ﰻ␇, q␇كل␇, q␇كل␇);
+Test_N(q␇ﰼ␇, q␇ﰼ␇, q␇ﰼ␇, q␇كم␇, q␇كم␇);
+Test_N(q␇ﰽ␇, q␇ﰽ␇, q␇ﰽ␇, q␇كى␇, q␇كى␇);
+Test_N(q␇ﰾ␇, q␇ﰾ␇, q␇ﰾ␇, q␇كي␇, q␇كي␇);
+Test_N(q␇ﰿ␇, q␇ﰿ␇, q␇ﰿ␇, q␇لج␇, q␇لج␇);
+Test_N(q␇ﱀ␇, q␇ﱀ␇, q␇ﱀ␇, q␇لح␇, q␇لح␇);
+Test_N(q␇ﱁ␇, q␇ﱁ␇, q␇ﱁ␇, q␇لخ␇, q␇لخ␇);
+Test_N(q␇ﱂ␇, q␇ﱂ␇, q␇ﱂ␇, q␇لم␇, q␇لم␇);
+Test_N(q␇ﱃ␇, q␇ﱃ␇, q␇ﱃ␇, q␇لى␇, q␇لى␇);
+Test_N(q␇ﱄ␇, q␇ﱄ␇, q␇ﱄ␇, q␇لي␇, q␇لي␇);
+Test_N(q␇ﱅ␇, q␇ﱅ␇, q␇ﱅ␇, q␇مج␇, q␇مج␇);
+Test_N(q␇ﱆ␇, q␇ﱆ␇, q␇ﱆ␇, q␇مح␇, q␇مح␇);
+Test_N(q␇ﱇ␇, q␇ﱇ␇, q␇ﱇ␇, q␇مخ␇, q␇مخ␇);
+Test_N(q␇ﱈ␇, q␇ﱈ␇, q␇ﱈ␇, q␇مم␇, q␇مم␇);
+Test_N(q␇ﱉ␇, q␇ﱉ␇, q␇ﱉ␇, q␇مى␇, q␇مى␇);
+Test_N(q␇ﱊ␇, q␇ﱊ␇, q␇ﱊ␇, q␇مي␇, q␇مي␇);
+Test_N(q␇ﱋ␇, q␇ﱋ␇, q␇ﱋ␇, q␇نج␇, q␇نج␇);
+Test_N(q␇ﱌ␇, q␇ﱌ␇, q␇ﱌ␇, q␇نح␇, q␇نح␇);
+Test_N(q␇ﱍ␇, q␇ﱍ␇, q␇ﱍ␇, q␇نخ␇, q␇نخ␇);
+Test_N(q␇ﱎ␇, q␇ﱎ␇, q␇ﱎ␇, q␇نم␇, q␇نم␇);
+Test_N(q␇ﱏ␇, q␇ﱏ␇, q␇ﱏ␇, q␇نى␇, q␇نى␇);
+Test_N(q␇ﱐ␇, q␇ﱐ␇, q␇ﱐ␇, q␇ني␇, q␇ني␇);
+Test_N(q␇ﱑ␇, q␇ﱑ␇, q␇ﱑ␇, q␇هج␇, q␇هج␇);
+Test_N(q␇ﱒ␇, q␇ﱒ␇, q␇ﱒ␇, q␇هم␇, q␇هم␇);
+Test_N(q␇ﱓ␇, q␇ﱓ␇, q␇ﱓ␇, q␇هى␇, q␇هى␇);
+Test_N(q␇ﱔ␇, q␇ﱔ␇, q␇ﱔ␇, q␇هي␇, q␇هي␇);
+Test_N(q␇ﱕ␇, q␇ﱕ␇, q␇ﱕ␇, q␇يج␇, q␇يج␇);
+Test_N(q␇ﱖ␇, q␇ﱖ␇, q␇ﱖ␇, q␇يح␇, q␇يح␇);
+Test_N(q␇ﱗ␇, q␇ﱗ␇, q␇ﱗ␇, q␇يخ␇, q␇يخ␇);
+Test_N(q␇ﱘ␇, q␇ﱘ␇, q␇ﱘ␇, q␇يم␇, q␇يم␇);
+Test_N(q␇ﱙ␇, q␇ﱙ␇, q␇ﱙ␇, q␇يى␇, q␇يى␇);
+Test_N(q␇ﱚ␇, q␇ﱚ␇, q␇ﱚ␇, q␇يي␇, q␇يي␇);
+Test_N(q␇ﱛ␇, q␇ﱛ␇, q␇ﱛ␇, q␇ذٰ␇, q␇ذٰ␇);
+Test_N(q␇ﱜ␇, q␇ﱜ␇, q␇ﱜ␇, q␇رٰ␇, q␇رٰ␇);
+Test_N(q␇ﱝ␇, q␇ﱝ␇, q␇ﱝ␇, q␇ىٰ␇, q␇ىٰ␇);
+Test_N(q␇ﱞ␇, q␇ﱞ␇, q␇ﱞ␇, q␇ ٌّ␇, q␇ ٌّ␇);
+Test_N(q␇ﱟ␇, q␇ﱟ␇, q␇ﱟ␇, q␇ ٍّ␇, q␇ ٍّ␇);
+Test_N(q␇ﱠ␇, q␇ﱠ␇, q␇ﱠ␇, q␇ َّ␇, q␇ َّ␇);
+Test_N(q␇ﱡ␇, q␇ﱡ␇, q␇ﱡ␇, q␇ ُّ␇, q␇ ُّ␇);
+Test_N(q␇ﱢ␇, q␇ﱢ␇, q␇ﱢ␇, q␇ ِّ␇, q␇ ِّ␇);
+Test_N(q␇ﱣ␇, q␇ﱣ␇, q␇ﱣ␇, q␇ ّٰ␇, q␇ ّٰ␇);
+Test_N(q␇ﱤ␇, q␇ﱤ␇, q␇ﱤ␇, q␇ئر␇, q␇ئر␇);
+Test_N(q␇ﱥ␇, q␇ﱥ␇, q␇ﱥ␇, q␇ئز␇, q␇ئز␇);
+Test_N(q␇ﱦ␇, q␇ﱦ␇, q␇ﱦ␇, q␇ئم␇, q␇ئم␇);
+Test_N(q␇ﱧ␇, q␇ﱧ␇, q␇ﱧ␇, q␇ئن␇, q␇ئن␇);
+Test_N(q␇ﱨ␇, q␇ﱨ␇, q␇ﱨ␇, q␇ئى␇, q␇ئى␇);
+Test_N(q␇ﱩ␇, q␇ﱩ␇, q␇ﱩ␇, q␇ئي␇, q␇ئي␇);
+Test_N(q␇ﱪ␇, q␇ﱪ␇, q␇ﱪ␇, q␇بر␇, q␇بر␇);
+Test_N(q␇ﱫ␇, q␇ﱫ␇, q␇ﱫ␇, q␇بز␇, q␇بز␇);
+Test_N(q␇ﱬ␇, q␇ﱬ␇, q␇ﱬ␇, q␇بم␇, q␇بم␇);
+Test_N(q␇ﱭ␇, q␇ﱭ␇, q␇ﱭ␇, q␇بن␇, q␇بن␇);
+Test_N(q␇ﱮ␇, q␇ﱮ␇, q␇ﱮ␇, q␇بى␇, q␇بى␇);
+Test_N(q␇ﱯ␇, q␇ﱯ␇, q␇ﱯ␇, q␇بي␇, q␇بي␇);
+Test_N(q␇ﱰ␇, q␇ﱰ␇, q␇ﱰ␇, q␇تر␇, q␇تر␇);
+Test_N(q␇ﱱ␇, q␇ﱱ␇, q␇ﱱ␇, q␇تز␇, q␇تز␇);
+Test_N(q␇ﱲ␇, q␇ﱲ␇, q␇ﱲ␇, q␇تم␇, q␇تم␇);
+Test_N(q␇ﱳ␇, q␇ﱳ␇, q␇ﱳ␇, q␇تن␇, q␇تن␇);
+Test_N(q␇ﱴ␇, q␇ﱴ␇, q␇ﱴ␇, q␇تى␇, q␇تى␇);
+Test_N(q␇ﱵ␇, q␇ﱵ␇, q␇ﱵ␇, q␇تي␇, q␇تي␇);
+Test_N(q␇ﱶ␇, q␇ﱶ␇, q␇ﱶ␇, q␇ثر␇, q␇ثر␇);
+Test_N(q␇ﱷ␇, q␇ﱷ␇, q␇ﱷ␇, q␇ثز␇, q␇ثز␇);
+Test_N(q␇ﱸ␇, q␇ﱸ␇, q␇ﱸ␇, q␇ثم␇, q␇ثم␇);
+Test_N(q␇ﱹ␇, q␇ﱹ␇, q␇ﱹ␇, q␇ثن␇, q␇ثن␇);
+Test_N(q␇ﱺ␇, q␇ﱺ␇, q␇ﱺ␇, q␇ثى␇, q␇ثى␇);
+Test_N(q␇ﱻ␇, q␇ﱻ␇, q␇ﱻ␇, q␇ثي␇, q␇ثي␇);
+Test_N(q␇ﱼ␇, q␇ﱼ␇, q␇ﱼ␇, q␇فى␇, q␇فى␇);
+Test_N(q␇ﱽ␇, q␇ﱽ␇, q␇ﱽ␇, q␇في␇, q␇في␇);
+Test_N(q␇ﱾ␇, q␇ﱾ␇, q␇ﱾ␇, q␇قى␇, q␇قى␇);
+Test_N(q␇ﱿ␇, q␇ﱿ␇, q␇ﱿ␇, q␇قي␇, q␇قي␇);
+Test_N(q␇ﲀ␇, q␇ﲀ␇, q␇ﲀ␇, q␇كا␇, q␇كا␇);
+Test_N(q␇ﲁ␇, q␇ﲁ␇, q␇ﲁ␇, q␇كل␇, q␇كل␇);
+Test_N(q␇ﲂ␇, q␇ﲂ␇, q␇ﲂ␇, q␇كم␇, q␇كم␇);
+Test_N(q␇ﲃ␇, q␇ﲃ␇, q␇ﲃ␇, q␇كى␇, q␇كى␇);
+Test_N(q␇ﲄ␇, q␇ﲄ␇, q␇ﲄ␇, q␇كي␇, q␇كي␇);
+Test_N(q␇ﲅ␇, q␇ﲅ␇, q␇ﲅ␇, q␇لم␇, q␇لم␇);
+Test_N(q␇ﲆ␇, q␇ﲆ␇, q␇ﲆ␇, q␇لى␇, q␇لى␇);
+Test_N(q␇ﲇ␇, q␇ﲇ␇, q␇ﲇ␇, q␇لي␇, q␇لي␇);
+Test_N(q␇ﲈ␇, q␇ﲈ␇, q␇ﲈ␇, q␇ما␇, q␇ما␇);
+Test_N(q␇ﲉ␇, q␇ﲉ␇, q␇ﲉ␇, q␇مم␇, q␇مم␇);
+Test_N(q␇ﲊ␇, q␇ﲊ␇, q␇ﲊ␇, q␇نر␇, q␇نر␇);
+Test_N(q␇ﲋ␇, q␇ﲋ␇, q␇ﲋ␇, q␇نز␇, q␇نز␇);
+Test_N(q␇ﲌ␇, q␇ﲌ␇, q␇ﲌ␇, q␇نم␇, q␇نم␇);
+Test_N(q␇ﲍ␇, q␇ﲍ␇, q␇ﲍ␇, q␇نن␇, q␇نن␇);
+Test_N(q␇ﲎ␇, q␇ﲎ␇, q␇ﲎ␇, q␇نى␇, q␇نى␇);
+Test_N(q␇ﲏ␇, q␇ﲏ␇, q␇ﲏ␇, q␇ني␇, q␇ني␇);
+Test_N(q␇ﲐ␇, q␇ﲐ␇, q␇ﲐ␇, q␇ىٰ␇, q␇ىٰ␇);
+Test_N(q␇ﲑ␇, q␇ﲑ␇, q␇ﲑ␇, q␇ير␇, q␇ير␇);
+Test_N(q␇ﲒ␇, q␇ﲒ␇, q␇ﲒ␇, q␇يز␇, q␇يز␇);
+Test_N(q␇ﲓ␇, q␇ﲓ␇, q␇ﲓ␇, q␇يم␇, q␇يم␇);
+Test_N(q␇ﲔ␇, q␇ﲔ␇, q␇ﲔ␇, q␇ين␇, q␇ين␇);
+Test_N(q␇ﲕ␇, q␇ﲕ␇, q␇ﲕ␇, q␇يى␇, q␇يى␇);
+Test_N(q␇ﲖ␇, q␇ﲖ␇, q␇ﲖ␇, q␇يي␇, q␇يي␇);
+Test_N(q␇ﲗ␇, q␇ﲗ␇, q␇ﲗ␇, q␇ئج␇, q␇ئج␇);
+Test_N(q␇ﲘ␇, q␇ﲘ␇, q␇ﲘ␇, q␇ئح␇, q␇ئح␇);
+Test_N(q␇ﲙ␇, q␇ﲙ␇, q␇ﲙ␇, q␇ئخ␇, q␇ئخ␇);
+Test_N(q␇ﲚ␇, q␇ﲚ␇, q␇ﲚ␇, q␇ئم␇, q␇ئم␇);
+Test_N(q␇ﲛ␇, q␇ﲛ␇, q␇ﲛ␇, q␇ئه␇, q␇ئه␇);
+Test_N(q␇ﲜ␇, q␇ﲜ␇, q␇ﲜ␇, q␇بج␇, q␇بج␇);
+Test_N(q␇ﲝ␇, q␇ﲝ␇, q␇ﲝ␇, q␇بح␇, q␇بح␇);
+Test_N(q␇ﲞ␇, q␇ﲞ␇, q␇ﲞ␇, q␇بخ␇, q␇بخ␇);
+Test_N(q␇ﲟ␇, q␇ﲟ␇, q␇ﲟ␇, q␇بم␇, q␇بم␇);
+Test_N(q␇ﲠ␇, q␇ﲠ␇, q␇ﲠ␇, q␇به␇, q␇به␇);
+Test_N(q␇ﲡ␇, q␇ﲡ␇, q␇ﲡ␇, q␇تج␇, q␇تج␇);
+Test_N(q␇ﲢ␇, q␇ﲢ␇, q␇ﲢ␇, q␇تح␇, q␇تح␇);
+Test_N(q␇ﲣ␇, q␇ﲣ␇, q␇ﲣ␇, q␇تخ␇, q␇تخ␇);
+Test_N(q␇ﲤ␇, q␇ﲤ␇, q␇ﲤ␇, q␇تم␇, q␇تم␇);
+Test_N(q␇ﲥ␇, q␇ﲥ␇, q␇ﲥ␇, q␇ته␇, q␇ته␇);
+Test_N(q␇ﲦ␇, q␇ﲦ␇, q␇ﲦ␇, q␇ثم␇, q␇ثم␇);
+Test_N(q␇ﲧ␇, q␇ﲧ␇, q␇ﲧ␇, q␇جح␇, q␇جح␇);
+Test_N(q␇ﲨ␇, q␇ﲨ␇, q␇ﲨ␇, q␇جم␇, q␇جم␇);
+Test_N(q␇ﲩ␇, q␇ﲩ␇, q␇ﲩ␇, q␇حج␇, q␇حج␇);
+Test_N(q␇ﲪ␇, q␇ﲪ␇, q␇ﲪ␇, q␇حم␇, q␇حم␇);
+Test_N(q␇ﲫ␇, q␇ﲫ␇, q␇ﲫ␇, q␇خج␇, q␇خج␇);
+Test_N(q␇ﲬ␇, q␇ﲬ␇, q␇ﲬ␇, q␇خم␇, q␇خم␇);
+Test_N(q␇ﲭ␇, q␇ﲭ␇, q␇ﲭ␇, q␇سج␇, q␇سج␇);
+Test_N(q␇ﲮ␇, q␇ﲮ␇, q␇ﲮ␇, q␇سح␇, q␇سح␇);
+Test_N(q␇ﲯ␇, q␇ﲯ␇, q␇ﲯ␇, q␇سخ␇, q␇سخ␇);
+Test_N(q␇ﲰ␇, q␇ﲰ␇, q␇ﲰ␇, q␇سم␇, q␇سم␇);
+Test_N(q␇ﲱ␇, q␇ﲱ␇, q␇ﲱ␇, q␇صح␇, q␇صح␇);
+Test_N(q␇ﲲ␇, q␇ﲲ␇, q␇ﲲ␇, q␇صخ␇, q␇صخ␇);
+Test_N(q␇ﲳ␇, q␇ﲳ␇, q␇ﲳ␇, q␇صم␇, q␇صم␇);
+Test_N(q␇ﲴ␇, q␇ﲴ␇, q␇ﲴ␇, q␇ضج␇, q␇ضج␇);
+Test_N(q␇ﲵ␇, q␇ﲵ␇, q␇ﲵ␇, q␇ضح␇, q␇ضح␇);
+Test_N(q␇ﲶ␇, q␇ﲶ␇, q␇ﲶ␇, q␇ضخ␇, q␇ضخ␇);
+Test_N(q␇ﲷ␇, q␇ﲷ␇, q␇ﲷ␇, q␇ضم␇, q␇ضم␇);
+Test_N(q␇ﲸ␇, q␇ﲸ␇, q␇ﲸ␇, q␇طح␇, q␇طح␇);
+Test_N(q␇ﲹ␇, q␇ﲹ␇, q␇ﲹ␇, q␇ظم␇, q␇ظم␇);
+Test_N(q␇ﲺ␇, q␇ﲺ␇, q␇ﲺ␇, q␇عج␇, q␇عج␇);
+Test_N(q␇ﲻ␇, q␇ﲻ␇, q␇ﲻ␇, q␇عم␇, q␇عم␇);
+Test_N(q␇ﲼ␇, q␇ﲼ␇, q␇ﲼ␇, q␇غج␇, q␇غج␇);
+Test_N(q␇ﲽ␇, q␇ﲽ␇, q␇ﲽ␇, q␇غم␇, q␇غم␇);
+Test_N(q␇ﲾ␇, q␇ﲾ␇, q␇ﲾ␇, q␇فج␇, q␇فج␇);
+Test_N(q␇ﲿ␇, q␇ﲿ␇, q␇ﲿ␇, q␇فح␇, q␇فح␇);
+Test_N(q␇ﳀ␇, q␇ﳀ␇, q␇ﳀ␇, q␇فخ␇, q␇فخ␇);
+Test_N(q␇ﳁ␇, q␇ﳁ␇, q␇ﳁ␇, q␇فم␇, q␇فم␇);
+Test_N(q␇ﳂ␇, q␇ﳂ␇, q␇ﳂ␇, q␇قح␇, q␇قح␇);
+Test_N(q␇ﳃ␇, q␇ﳃ␇, q␇ﳃ␇, q␇قم␇, q␇قم␇);
+Test_N(q␇ﳄ␇, q␇ﳄ␇, q␇ﳄ␇, q␇كج␇, q␇كج␇);
+Test_N(q␇ﳅ␇, q␇ﳅ␇, q␇ﳅ␇, q␇كح␇, q␇كح␇);
+Test_N(q␇ﳆ␇, q␇ﳆ␇, q␇ﳆ␇, q␇كخ␇, q␇كخ␇);
+Test_N(q␇ﳇ␇, q␇ﳇ␇, q␇ﳇ␇, q␇كل␇, q␇كل␇);
+Test_N(q␇ﳈ␇, q␇ﳈ␇, q␇ﳈ␇, q␇كم␇, q␇كم␇);
+Test_N(q␇ﳉ␇, q␇ﳉ␇, q␇ﳉ␇, q␇لج␇, q␇لج␇);
+Test_N(q␇ﳊ␇, q␇ﳊ␇, q␇ﳊ␇, q␇لح␇, q␇لح␇);
+Test_N(q␇ﳋ␇, q␇ﳋ␇, q␇ﳋ␇, q␇لخ␇, q␇لخ␇);
+Test_N(q␇ﳌ␇, q␇ﳌ␇, q␇ﳌ␇, q␇لم␇, q␇لم␇);
+Test_N(q␇ﳍ␇, q␇ﳍ␇, q␇ﳍ␇, q␇له␇, q␇له␇);
+Test_N(q␇ﳎ␇, q␇ﳎ␇, q␇ﳎ␇, q␇مج␇, q␇مج␇);
+Test_N(q␇ﳏ␇, q␇ﳏ␇, q␇ﳏ␇, q␇مح␇, q␇مح␇);
+Test_N(q␇ﳐ␇, q␇ﳐ␇, q␇ﳐ␇, q␇مخ␇, q␇مخ␇);
+Test_N(q␇ﳑ␇, q␇ﳑ␇, q␇ﳑ␇, q␇مم␇, q␇مم␇);
+Test_N(q␇ﳒ␇, q␇ﳒ␇, q␇ﳒ␇, q␇نج␇, q␇نج␇);
+Test_N(q␇ﳓ␇, q␇ﳓ␇, q␇ﳓ␇, q␇نح␇, q␇نح␇);
+Test_N(q␇ﳔ␇, q␇ﳔ␇, q␇ﳔ␇, q␇نخ␇, q␇نخ␇);
+Test_N(q␇ﳕ␇, q␇ﳕ␇, q␇ﳕ␇, q␇نم␇, q␇نم␇);
+Test_N(q␇ﳖ␇, q␇ﳖ␇, q␇ﳖ␇, q␇نه␇, q␇نه␇);
+Test_N(q␇ﳗ␇, q␇ﳗ␇, q␇ﳗ␇, q␇هج␇, q␇هج␇);
+Test_N(q␇ﳘ␇, q␇ﳘ␇, q␇ﳘ␇, q␇هم␇, q␇هم␇);
+Test_N(q␇ﳙ␇, q␇ﳙ␇, q␇ﳙ␇, q␇هٰ␇, q␇هٰ␇);
+Test_N(q␇ﳚ␇, q␇ﳚ␇, q␇ﳚ␇, q␇يج␇, q␇يج␇);
+Test_N(q␇ﳛ␇, q␇ﳛ␇, q␇ﳛ␇, q␇يح␇, q␇يح␇);
+Test_N(q␇ﳜ␇, q␇ﳜ␇, q␇ﳜ␇, q␇يخ␇, q␇يخ␇);
+Test_N(q␇ﳝ␇, q␇ﳝ␇, q␇ﳝ␇, q␇يم␇, q␇يم␇);
+Test_N(q␇ﳞ␇, q␇ﳞ␇, q␇ﳞ␇, q␇يه␇, q␇يه␇);
+Test_N(q␇ﳟ␇, q␇ﳟ␇, q␇ﳟ␇, q␇ئم␇, q␇ئم␇);
+Test_N(q␇ﳠ␇, q␇ﳠ␇, q␇ﳠ␇, q␇ئه␇, q␇ئه␇);
+Test_N(q␇ﳡ␇, q␇ﳡ␇, q␇ﳡ␇, q␇بم␇, q␇بم␇);
+Test_N(q␇ﳢ␇, q␇ﳢ␇, q␇ﳢ␇, q␇به␇, q␇به␇);
+Test_N(q␇ﳣ␇, q␇ﳣ␇, q␇ﳣ␇, q␇تم␇, q␇تم␇);
+Test_N(q␇ﳤ␇, q␇ﳤ␇, q␇ﳤ␇, q␇ته␇, q␇ته␇);
+Test_N(q␇ﳥ␇, q␇ﳥ␇, q␇ﳥ␇, q␇ثم␇, q␇ثم␇);
+Test_N(q␇ﳦ␇, q␇ﳦ␇, q␇ﳦ␇, q␇ثه␇, q␇ثه␇);
+Test_N(q␇ﳧ␇, q␇ﳧ␇, q␇ﳧ␇, q␇سم␇, q␇سم␇);
+Test_N(q␇ﳨ␇, q␇ﳨ␇, q␇ﳨ␇, q␇سه␇, q␇سه␇);
+Test_N(q␇ﳩ␇, q␇ﳩ␇, q␇ﳩ␇, q␇شم␇, q␇شم␇);
+Test_N(q␇ﳪ␇, q␇ﳪ␇, q␇ﳪ␇, q␇شه␇, q␇شه␇);
+Test_N(q␇ﳫ␇, q␇ﳫ␇, q␇ﳫ␇, q␇كل␇, q␇كل␇);
+Test_N(q␇ﳬ␇, q␇ﳬ␇, q␇ﳬ␇, q␇كم␇, q␇كم␇);
+Test_N(q␇ﳭ␇, q␇ﳭ␇, q␇ﳭ␇, q␇لم␇, q␇لم␇);
+Test_N(q␇ﳮ␇, q␇ﳮ␇, q␇ﳮ␇, q␇نم␇, q␇نم␇);
+Test_N(q␇ﳯ␇, q␇ﳯ␇, q␇ﳯ␇, q␇نه␇, q␇نه␇);
+Test_N(q␇ﳰ␇, q␇ﳰ␇, q␇ﳰ␇, q␇يم␇, q␇يم␇);
+Test_N(q␇ﳱ␇, q␇ﳱ␇, q␇ﳱ␇, q␇يه␇, q␇يه␇);
+Test_N(q␇ﳲ␇, q␇ﳲ␇, q␇ﳲ␇, q␇ـَّ␇, q␇ـَّ␇);
+Test_N(q␇ﳳ␇, q␇ﳳ␇, q␇ﳳ␇, q␇ـُّ␇, q␇ـُّ␇);
+Test_N(q␇ﳴ␇, q␇ﳴ␇, q␇ﳴ␇, q␇ـِّ␇, q␇ـِّ␇);
+Test_N(q␇ﳵ␇, q␇ﳵ␇, q␇ﳵ␇, q␇طى␇, q␇طى␇);
+Test_N(q␇ﳶ␇, q␇ﳶ␇, q␇ﳶ␇, q␇طي␇, q␇طي␇);
+Test_N(q␇ﳷ␇, q␇ﳷ␇, q␇ﳷ␇, q␇عى␇, q␇عى␇);
+Test_N(q␇ﳸ␇, q␇ﳸ␇, q␇ﳸ␇, q␇عي␇, q␇عي␇);
+Test_N(q␇ﳹ␇, q␇ﳹ␇, q␇ﳹ␇, q␇غى␇, q␇غى␇);
+Test_N(q␇ﳺ␇, q␇ﳺ␇, q␇ﳺ␇, q␇غي␇, q␇غي␇);
+Test_N(q␇ﳻ␇, q␇ﳻ␇, q␇ﳻ␇, q␇سى␇, q␇سى␇);
+Test_N(q␇ﳼ␇, q␇ﳼ␇, q␇ﳼ␇, q␇سي␇, q␇سي␇);
+Test_N(q␇ﳽ␇, q␇ﳽ␇, q␇ﳽ␇, q␇شى␇, q␇شى␇);
+Test_N(q␇ﳾ␇, q␇ﳾ␇, q␇ﳾ␇, q␇شي␇, q␇شي␇);
+Test_N(q␇ﳿ␇, q␇ﳿ␇, q␇ﳿ␇, q␇حى␇, q␇حى␇);
+Test_N(q␇ﴀ␇, q␇ﴀ␇, q␇ﴀ␇, q␇حي␇, q␇حي␇);
+Test_N(q␇ﴁ␇, q␇ﴁ␇, q␇ﴁ␇, q␇جى␇, q␇جى␇);
+Test_N(q␇ﴂ␇, q␇ﴂ␇, q␇ﴂ␇, q␇جي␇, q␇جي␇);
+Test_N(q␇ﴃ␇, q␇ﴃ␇, q␇ﴃ␇, q␇خى␇, q␇خى␇);
+Test_N(q␇ﴄ␇, q␇ﴄ␇, q␇ﴄ␇, q␇خي␇, q␇خي␇);
+Test_N(q␇ﴅ␇, q␇ﴅ␇, q␇ﴅ␇, q␇صى␇, q␇صى␇);
+Test_N(q␇ﴆ␇, q␇ﴆ␇, q␇ﴆ␇, q␇صي␇, q␇صي␇);
+Test_N(q␇ﴇ␇, q␇ﴇ␇, q␇ﴇ␇, q␇ضى␇, q␇ضى␇);
+Test_N(q␇ﴈ␇, q␇ﴈ␇, q␇ﴈ␇, q␇ضي␇, q␇ضي␇);
+Test_N(q␇ﴉ␇, q␇ﴉ␇, q␇ﴉ␇, q␇شج␇, q␇شج␇);
+Test_N(q␇ﴊ␇, q␇ﴊ␇, q␇ﴊ␇, q␇شح␇, q␇شح␇);
+Test_N(q␇ﴋ␇, q␇ﴋ␇, q␇ﴋ␇, q␇شخ␇, q␇شخ␇);
+Test_N(q␇ﴌ␇, q␇ﴌ␇, q␇ﴌ␇, q␇شم␇, q␇شم␇);
+Test_N(q␇ﴍ␇, q␇ﴍ␇, q␇ﴍ␇, q␇شر␇, q␇شر␇);
+Test_N(q␇ﴎ␇, q␇ﴎ␇, q␇ﴎ␇, q␇سر␇, q␇سر␇);
+Test_N(q␇ﴏ␇, q␇ﴏ␇, q␇ﴏ␇, q␇صر␇, q␇صر␇);
+Test_N(q␇ﴐ␇, q␇ﴐ␇, q␇ﴐ␇, q␇ضر␇, q␇ضر␇);
+Test_N(q␇ﴑ␇, q␇ﴑ␇, q␇ﴑ␇, q␇طى␇, q␇طى␇);
+Test_N(q␇ﴒ␇, q␇ﴒ␇, q␇ﴒ␇, q␇طي␇, q␇طي␇);
+Test_N(q␇ﴓ␇, q␇ﴓ␇, q␇ﴓ␇, q␇عى␇, q␇عى␇);
+Test_N(q␇ﴔ␇, q␇ﴔ␇, q␇ﴔ␇, q␇عي␇, q␇عي␇);
+Test_N(q␇ﴕ␇, q␇ﴕ␇, q␇ﴕ␇, q␇غى␇, q␇غى␇);
+Test_N(q␇ﴖ␇, q␇ﴖ␇, q␇ﴖ␇, q␇غي␇, q␇غي␇);
+Test_N(q␇ﴗ␇, q␇ﴗ␇, q␇ﴗ␇, q␇سى␇, q␇سى␇);
+Test_N(q␇ﴘ␇, q␇ﴘ␇, q␇ﴘ␇, q␇سي␇, q␇سي␇);
+Test_N(q␇ﴙ␇, q␇ﴙ␇, q␇ﴙ␇, q␇شى␇, q␇شى␇);
+Test_N(q␇ﴚ␇, q␇ﴚ␇, q␇ﴚ␇, q␇شي␇, q␇شي␇);
+Test_N(q␇ﴛ␇, q␇ﴛ␇, q␇ﴛ␇, q␇حى␇, q␇حى␇);
+Test_N(q␇ﴜ␇, q␇ﴜ␇, q␇ﴜ␇, q␇حي␇, q␇حي␇);
+Test_N(q␇ﴝ␇, q␇ﴝ␇, q␇ﴝ␇, q␇جى␇, q␇جى␇);
+Test_N(q␇ﴞ␇, q␇ﴞ␇, q␇ﴞ␇, q␇جي␇, q␇جي␇);
+Test_N(q␇ﴟ␇, q␇ﴟ␇, q␇ﴟ␇, q␇خى␇, q␇خى␇);
+Test_N(q␇ﴠ␇, q␇ﴠ␇, q␇ﴠ␇, q␇خي␇, q␇خي␇);
+Test_N(q␇ﴡ␇, q␇ﴡ␇, q␇ﴡ␇, q␇صى␇, q␇صى␇);
+Test_N(q␇ﴢ␇, q␇ﴢ␇, q␇ﴢ␇, q␇صي␇, q␇صي␇);
+Test_N(q␇ﴣ␇, q␇ﴣ␇, q␇ﴣ␇, q␇ضى␇, q␇ضى␇);
+Test_N(q␇ﴤ␇, q␇ﴤ␇, q␇ﴤ␇, q␇ضي␇, q␇ضي␇);
+Test_N(q␇ﴥ␇, q␇ﴥ␇, q␇ﴥ␇, q␇شج␇, q␇شج␇);
+Test_N(q␇ﴦ␇, q␇ﴦ␇, q␇ﴦ␇, q␇شح␇, q␇شح␇);
+Test_N(q␇ﴧ␇, q␇ﴧ␇, q␇ﴧ␇, q␇شخ␇, q␇شخ␇);
+Test_N(q␇ﴨ␇, q␇ﴨ␇, q␇ﴨ␇, q␇شم␇, q␇شم␇);
+Test_N(q␇ﴩ␇, q␇ﴩ␇, q␇ﴩ␇, q␇شر␇, q␇شر␇);
+Test_N(q␇ﴪ␇, q␇ﴪ␇, q␇ﴪ␇, q␇سر␇, q␇سر␇);
+Test_N(q␇ﴫ␇, q␇ﴫ␇, q␇ﴫ␇, q␇صر␇, q␇صر␇);
+Test_N(q␇ﴬ␇, q␇ﴬ␇, q␇ﴬ␇, q␇ضر␇, q␇ضر␇);
+Test_N(q␇ﴭ␇, q␇ﴭ␇, q␇ﴭ␇, q␇شج␇, q␇شج␇);
+Test_N(q␇ﴮ␇, q␇ﴮ␇, q␇ﴮ␇, q␇شح␇, q␇شح␇);
+Test_N(q␇ﴯ␇, q␇ﴯ␇, q␇ﴯ␇, q␇شخ␇, q␇شخ␇);
+Test_N(q␇ﴰ␇, q␇ﴰ␇, q␇ﴰ␇, q␇شم␇, q␇شم␇);
+Test_N(q␇ﴱ␇, q␇ﴱ␇, q␇ﴱ␇, q␇سه␇, q␇سه␇);
+Test_N(q␇ﴲ␇, q␇ﴲ␇, q␇ﴲ␇, q␇شه␇, q␇شه␇);
+Test_N(q␇ﴳ␇, q␇ﴳ␇, q␇ﴳ␇, q␇طم␇, q␇طم␇);
+Test_N(q␇ﴴ␇, q␇ﴴ␇, q␇ﴴ␇, q␇سج␇, q␇سج␇);
+Test_N(q␇ﴵ␇, q␇ﴵ␇, q␇ﴵ␇, q␇سح␇, q␇سح␇);
+Test_N(q␇ﴶ␇, q␇ﴶ␇, q␇ﴶ␇, q␇سخ␇, q␇سخ␇);
+Test_N(q␇ﴷ␇, q␇ﴷ␇, q␇ﴷ␇, q␇شج␇, q␇شج␇);
+Test_N(q␇ﴸ␇, q␇ﴸ␇, q␇ﴸ␇, q␇شح␇, q␇شح␇);
+Test_N(q␇ﴹ␇, q␇ﴹ␇, q␇ﴹ␇, q␇شخ␇, q␇شخ␇);
+Test_N(q␇ﴺ␇, q␇ﴺ␇, q␇ﴺ␇, q␇طم␇, q␇طم␇);
+Test_N(q␇ﴻ␇, q␇ﴻ␇, q␇ﴻ␇, q␇ظم␇, q␇ظم␇);
+Test_N(q␇ﴼ␇, q␇ﴼ␇, q␇ﴼ␇, q␇اً␇, q␇اً␇);
+Test_N(q␇ﴽ␇, q␇ﴽ␇, q␇ﴽ␇, q␇اً␇, q␇اً␇);
+Test_N(q␇ﵐ␇, q␇ﵐ␇, q␇ﵐ␇, q␇تجم␇, q␇تجم␇);
+Test_N(q␇ﵑ␇, q␇ﵑ␇, q␇ﵑ␇, q␇تحج␇, q␇تحج␇);
+Test_N(q␇ﵒ␇, q␇ﵒ␇, q␇ﵒ␇, q␇تحج␇, q␇تحج␇);
+Test_N(q␇ﵓ␇, q␇ﵓ␇, q␇ﵓ␇, q␇تحم␇, q␇تحم␇);
+Test_N(q␇ﵔ␇, q␇ﵔ␇, q␇ﵔ␇, q␇تخم␇, q␇تخم␇);
+Test_N(q␇ﵕ␇, q␇ﵕ␇, q␇ﵕ␇, q␇تمج␇, q␇تمج␇);
+Test_N(q␇ﵖ␇, q␇ﵖ␇, q␇ﵖ␇, q␇تمح␇, q␇تمح␇);
+Test_N(q␇ﵗ␇, q␇ﵗ␇, q␇ﵗ␇, q␇تمخ␇, q␇تمخ␇);
+Test_N(q␇ﵘ␇, q␇ﵘ␇, q␇ﵘ␇, q␇جمح␇, q␇جمح␇);
+Test_N(q␇ﵙ␇, q␇ﵙ␇, q␇ﵙ␇, q␇جمح␇, q␇جمح␇);
+Test_N(q␇ﵚ␇, q␇ﵚ␇, q␇ﵚ␇, q␇حمي␇, q␇حمي␇);
+Test_N(q␇ﵛ␇, q␇ﵛ␇, q␇ﵛ␇, q␇حمى␇, q␇حمى␇);
+Test_N(q␇ﵜ␇, q␇ﵜ␇, q␇ﵜ␇, q␇سحج␇, q␇سحج␇);
+Test_N(q␇ﵝ␇, q␇ﵝ␇, q␇ﵝ␇, q␇سجح␇, q␇سجح␇);
+Test_N(q␇ﵞ␇, q␇ﵞ␇, q␇ﵞ␇, q␇سجى␇, q␇سجى␇);
+Test_N(q␇ﵟ␇, q␇ﵟ␇, q␇ﵟ␇, q␇سمح␇, q␇سمح␇);
+Test_N(q␇ﵠ␇, q␇ﵠ␇, q␇ﵠ␇, q␇سمح␇, q␇سمح␇);
+Test_N(q␇ﵡ␇, q␇ﵡ␇, q␇ﵡ␇, q␇سمج␇, q␇سمج␇);
+Test_N(q␇ﵢ␇, q␇ﵢ␇, q␇ﵢ␇, q␇سمم␇, q␇سمم␇);
+Test_N(q␇ﵣ␇, q␇ﵣ␇, q␇ﵣ␇, q␇سمم␇, q␇سمم␇);
+Test_N(q␇ﵤ␇, q␇ﵤ␇, q␇ﵤ␇, q␇صحح␇, q␇صحح␇);
+Test_N(q␇ﵥ␇, q␇ﵥ␇, q␇ﵥ␇, q␇صحح␇, q␇صحح␇);
+Test_N(q␇ﵦ␇, q␇ﵦ␇, q␇ﵦ␇, q␇صمم␇, q␇صمم␇);
+Test_N(q␇ﵧ␇, q␇ﵧ␇, q␇ﵧ␇, q␇شحم␇, q␇شحم␇);
+Test_N(q␇ﵨ␇, q␇ﵨ␇, q␇ﵨ␇, q␇شحم␇, q␇شحم␇);
+Test_N(q␇ﵩ␇, q␇ﵩ␇, q␇ﵩ␇, q␇شجي␇, q␇شجي␇);
+Test_N(q␇ﵪ␇, q␇ﵪ␇, q␇ﵪ␇, q␇شمخ␇, q␇شمخ␇);
+Test_N(q␇ﵫ␇, q␇ﵫ␇, q␇ﵫ␇, q␇شمخ␇, q␇شمخ␇);
+Test_N(q␇ﵬ␇, q␇ﵬ␇, q␇ﵬ␇, q␇شمم␇, q␇شمم␇);
+Test_N(q␇ﵭ␇, q␇ﵭ␇, q␇ﵭ␇, q␇شمم␇, q␇شمم␇);
+Test_N(q␇ﵮ␇, q␇ﵮ␇, q␇ﵮ␇, q␇ضحى␇, q␇ضحى␇);
+Test_N(q␇ﵯ␇, q␇ﵯ␇, q␇ﵯ␇, q␇ضخم␇, q␇ضخم␇);
+Test_N(q␇ﵰ␇, q␇ﵰ␇, q␇ﵰ␇, q␇ضخم␇, q␇ضخم␇);
+Test_N(q␇ﵱ␇, q␇ﵱ␇, q␇ﵱ␇, q␇طمح␇, q␇طمح␇);
+Test_N(q␇ﵲ␇, q␇ﵲ␇, q␇ﵲ␇, q␇طمح␇, q␇طمح␇);
+Test_N(q␇ﵳ␇, q␇ﵳ␇, q␇ﵳ␇, q␇طمم␇, q␇طمم␇);
+Test_N(q␇ﵴ␇, q␇ﵴ␇, q␇ﵴ␇, q␇طمي␇, q␇طمي␇);
+Test_N(q␇ﵵ␇, q␇ﵵ␇, q␇ﵵ␇, q␇عجم␇, q␇عجم␇);
+Test_N(q␇ﵶ␇, q␇ﵶ␇, q␇ﵶ␇, q␇عمم␇, q␇عمم␇);
+Test_N(q␇ﵷ␇, q␇ﵷ␇, q␇ﵷ␇, q␇عمم␇, q␇عمم␇);
+Test_N(q␇ﵸ␇, q␇ﵸ␇, q␇ﵸ␇, q␇عمى␇, q␇عمى␇);
+Test_N(q␇ﵹ␇, q␇ﵹ␇, q␇ﵹ␇, q␇غمم␇, q␇غمم␇);
+Test_N(q␇ﵺ␇, q␇ﵺ␇, q␇ﵺ␇, q␇غمي␇, q␇غمي␇);
+Test_N(q␇ﵻ␇, q␇ﵻ␇, q␇ﵻ␇, q␇غمى␇, q␇غمى␇);
+Test_N(q␇ﵼ␇, q␇ﵼ␇, q␇ﵼ␇, q␇فخم␇, q␇فخم␇);
+Test_N(q␇ﵽ␇, q␇ﵽ␇, q␇ﵽ␇, q␇فخم␇, q␇فخم␇);
+Test_N(q␇ﵾ␇, q␇ﵾ␇, q␇ﵾ␇, q␇قمح␇, q␇قمح␇);
+Test_N(q␇ﵿ␇, q␇ﵿ␇, q␇ﵿ␇, q␇قمم␇, q␇قمم␇);
+Test_N(q␇ﶀ␇, q␇ﶀ␇, q␇ﶀ␇, q␇لحم␇, q␇لحم␇);
+Test_N(q␇ﶁ␇, q␇ﶁ␇, q␇ﶁ␇, q␇لحي␇, q␇لحي␇);
+Test_N(q␇ﶂ␇, q␇ﶂ␇, q␇ﶂ␇, q␇لحى␇, q␇لحى␇);
+Test_N(q␇ﶃ␇, q␇ﶃ␇, q␇ﶃ␇, q␇لجج␇, q␇لجج␇);
+Test_N(q␇ﶄ␇, q␇ﶄ␇, q␇ﶄ␇, q␇لجج␇, q␇لجج␇);
+Test_N(q␇ﶅ␇, q␇ﶅ␇, q␇ﶅ␇, q␇لخم␇, q␇لخم␇);
+Test_N(q␇ﶆ␇, q␇ﶆ␇, q␇ﶆ␇, q␇لخم␇, q␇لخم␇);
+Test_N(q␇ﶇ␇, q␇ﶇ␇, q␇ﶇ␇, q␇لمح␇, q␇لمح␇);
+Test_N(q␇ﶈ␇, q␇ﶈ␇, q␇ﶈ␇, q␇لمح␇, q␇لمح␇);
+Test_N(q␇ﶉ␇, q␇ﶉ␇, q␇ﶉ␇, q␇محج␇, q␇محج␇);
+Test_N(q␇ﶊ␇, q␇ﶊ␇, q␇ﶊ␇, q␇محم␇, q␇محم␇);
+Test_N(q␇ﶋ␇, q␇ﶋ␇, q␇ﶋ␇, q␇محي␇, q␇محي␇);
+Test_N(q␇ﶌ␇, q␇ﶌ␇, q␇ﶌ␇, q␇مجح␇, q␇مجح␇);
+Test_N(q␇ﶍ␇, q␇ﶍ␇, q␇ﶍ␇, q␇مجم␇, q␇مجم␇);
+Test_N(q␇ﶎ␇, q␇ﶎ␇, q␇ﶎ␇, q␇مخج␇, q␇مخج␇);
+Test_N(q␇ﶏ␇, q␇ﶏ␇, q␇ﶏ␇, q␇مخم␇, q␇مخم␇);
+Test_N(q␇ﶒ␇, q␇ﶒ␇, q␇ﶒ␇, q␇مجخ␇, q␇مجخ␇);
+Test_N(q␇ﶓ␇, q␇ﶓ␇, q␇ﶓ␇, q␇همج␇, q␇همج␇);
+Test_N(q␇ﶔ␇, q␇ﶔ␇, q␇ﶔ␇, q␇همم␇, q␇همم␇);
+Test_N(q␇ﶕ␇, q␇ﶕ␇, q␇ﶕ␇, q␇نحم␇, q␇نحم␇);
+Test_N(q␇ﶖ␇, q␇ﶖ␇, q␇ﶖ␇, q␇نحى␇, q␇نحى␇);
+Test_N(q␇ﶗ␇, q␇ﶗ␇, q␇ﶗ␇, q␇نجم␇, q␇نجم␇);
+Test_N(q␇ﶘ␇, q␇ﶘ␇, q␇ﶘ␇, q␇نجم␇, q␇نجم␇);
+Test_N(q␇ﶙ␇, q␇ﶙ␇, q␇ﶙ␇, q␇نجى␇, q␇نجى␇);
+Test_N(q␇ﶚ␇, q␇ﶚ␇, q␇ﶚ␇, q␇نمي␇, q␇نمي␇);
+Test_N(q␇ﶛ␇, q␇ﶛ␇, q␇ﶛ␇, q␇نمى␇, q␇نمى␇);
+Test_N(q␇ﶜ␇, q␇ﶜ␇, q␇ﶜ␇, q␇يمم␇, q␇يمم␇);
+Test_N(q␇ﶝ␇, q␇ﶝ␇, q␇ﶝ␇, q␇يمم␇, q␇يمم␇);
+Test_N(q␇ﶞ␇, q␇ﶞ␇, q␇ﶞ␇, q␇بخي␇, q␇بخي␇);
+Test_N(q␇ﶟ␇, q␇ﶟ␇, q␇ﶟ␇, q␇تجي␇, q␇تجي␇);
+Test_N(q␇ﶠ␇, q␇ﶠ␇, q␇ﶠ␇, q␇تجى␇, q␇تجى␇);
+Test_N(q␇ﶡ␇, q␇ﶡ␇, q␇ﶡ␇, q␇تخي␇, q␇تخي␇);
+Test_N(q␇ﶢ␇, q␇ﶢ␇, q␇ﶢ␇, q␇تخى␇, q␇تخى␇);
+Test_N(q␇ﶣ␇, q␇ﶣ␇, q␇ﶣ␇, q␇تمي␇, q␇تمي␇);
+Test_N(q␇ﶤ␇, q␇ﶤ␇, q␇ﶤ␇, q␇تمى␇, q␇تمى␇);
+Test_N(q␇ﶥ␇, q␇ﶥ␇, q␇ﶥ␇, q␇جمي␇, q␇جمي␇);
+Test_N(q␇ﶦ␇, q␇ﶦ␇, q␇ﶦ␇, q␇جحى␇, q␇جحى␇);
+Test_N(q␇ﶧ␇, q␇ﶧ␇, q␇ﶧ␇, q␇جمى␇, q␇جمى␇);
+Test_N(q␇ﶨ␇, q␇ﶨ␇, q␇ﶨ␇, q␇سخى␇, q␇سخى␇);
+Test_N(q␇ﶩ␇, q␇ﶩ␇, q␇ﶩ␇, q␇صحي␇, q␇صحي␇);
+Test_N(q␇ﶪ␇, q␇ﶪ␇, q␇ﶪ␇, q␇شحي␇, q␇شحي␇);
+Test_N(q␇ﶫ␇, q␇ﶫ␇, q␇ﶫ␇, q␇ضحي␇, q␇ضحي␇);
+Test_N(q␇ﶬ␇, q␇ﶬ␇, q␇ﶬ␇, q␇لجي␇, q␇لجي␇);
+Test_N(q␇ﶭ␇, q␇ﶭ␇, q␇ﶭ␇, q␇لمي␇, q␇لمي␇);
+Test_N(q␇ﶮ␇, q␇ﶮ␇, q␇ﶮ␇, q␇يحي␇, q␇يحي␇);
+Test_N(q␇ﶯ␇, q␇ﶯ␇, q␇ﶯ␇, q␇يجي␇, q␇يجي␇);
+Test_N(q␇ﶰ␇, q␇ﶰ␇, q␇ﶰ␇, q␇يمي␇, q␇يمي␇);
+Test_N(q␇ﶱ␇, q␇ﶱ␇, q␇ﶱ␇, q␇ممي␇, q␇ممي␇);
+Test_N(q␇ﶲ␇, q␇ﶲ␇, q␇ﶲ␇, q␇قمي␇, q␇قمي␇);
+Test_N(q␇ﶳ␇, q␇ﶳ␇, q␇ﶳ␇, q␇نحي␇, q␇نحي␇);
+Test_N(q␇ﶴ␇, q␇ﶴ␇, q␇ﶴ␇, q␇قمح␇, q␇قمح␇);
+Test_N(q␇ﶵ␇, q␇ﶵ␇, q␇ﶵ␇, q␇لحم␇, q␇لحم␇);
+Test_N(q␇ﶶ␇, q␇ﶶ␇, q␇ﶶ␇, q␇عمي␇, q␇عمي␇);
+Test_N(q␇ﶷ␇, q␇ﶷ␇, q␇ﶷ␇, q␇كمي␇, q␇كمي␇);
+Test_N(q␇ﶸ␇, q␇ﶸ␇, q␇ﶸ␇, q␇نجح␇, q␇نجح␇);
+Test_N(q␇ﶹ␇, q␇ﶹ␇, q␇ﶹ␇, q␇مخي␇, q␇مخي␇);
+Test_N(q␇ﶺ␇, q␇ﶺ␇, q␇ﶺ␇, q␇لجم␇, q␇لجم␇);
+Test_N(q␇ﶻ␇, q␇ﶻ␇, q␇ﶻ␇, q␇كمم␇, q␇كمم␇);
+Test_N(q␇ﶼ␇, q␇ﶼ␇, q␇ﶼ␇, q␇لجم␇, q␇لجم␇);
+Test_N(q␇ﶽ␇, q␇ﶽ␇, q␇ﶽ␇, q␇نجح␇, q␇نجح␇);
+Test_N(q␇ﶾ␇, q␇ﶾ␇, q␇ﶾ␇, q␇جحي␇, q␇جحي␇);
+Test_N(q␇ﶿ␇, q␇ﶿ␇, q␇ﶿ␇, q␇حجي␇, q␇حجي␇);
+Test_N(q␇ﷀ␇, q␇ﷀ␇, q␇ﷀ␇, q␇مجي␇, q␇مجي␇);
+Test_N(q␇ﷁ␇, q␇ﷁ␇, q␇ﷁ␇, q␇فمي␇, q␇فمي␇);
+Test_N(q␇ﷂ␇, q␇ﷂ␇, q␇ﷂ␇, q␇بحي␇, q␇بحي␇);
+Test_N(q␇ﷃ␇, q␇ﷃ␇, q␇ﷃ␇, q␇كمم␇, q␇كمم␇);
+Test_N(q␇ﷄ␇, q␇ﷄ␇, q␇ﷄ␇, q␇عجم␇, q␇عجم␇);
+Test_N(q␇ﷅ␇, q␇ﷅ␇, q␇ﷅ␇, q␇صمم␇, q␇صمم␇);
+Test_N(q␇ﷆ␇, q␇ﷆ␇, q␇ﷆ␇, q␇سخي␇, q␇سخي␇);
+Test_N(q␇ﷇ␇, q␇ﷇ␇, q␇ﷇ␇, q␇نجي␇, q␇نجي␇);
+Test_N(q␇ﷰ␇, q␇ﷰ␇, q␇ﷰ␇, q␇صلے␇, q␇صلے␇);
+Test_N(q␇ﷱ␇, q␇ﷱ␇, q␇ﷱ␇, q␇قلے␇, q␇قلے␇);
+Test_N(q␇ﷲ␇, q␇ﷲ␇, q␇ﷲ␇, q␇الله␇, q␇الله␇);
+Test_N(q␇ﷳ␇, q␇ﷳ␇, q␇ﷳ␇, q␇اكبر␇, q␇اكبر␇);
+Test_N(q␇ﷴ␇, q␇ﷴ␇, q␇ﷴ␇, q␇محمد␇, q␇محمد␇);
+Test_N(q␇ﷵ␇, q␇ﷵ␇, q␇ﷵ␇, q␇صلعم␇, q␇صلعم␇);
+Test_N(q␇ﷶ␇, q␇ﷶ␇, q␇ﷶ␇, q␇رسول␇, q␇رسول␇);
+Test_N(q␇ﷷ␇, q␇ﷷ␇, q␇ﷷ␇, q␇عليه␇, q␇عليه␇);
+Test_N(q␇ﷸ␇, q␇ﷸ␇, q␇ﷸ␇, q␇وسلم␇, q␇وسلم␇);
+Test_N(q␇ﷹ␇, q␇ﷹ␇, q␇ﷹ␇, q␇صلى␇, q␇صلى␇);
+Test_N(q␇ﷺ␇, q␇ﷺ␇, q␇ﷺ␇, q␇صلى الله عليه وسلم␇, q␇صلى الله عليه وسلم␇);
+Test_N(q␇ﷻ␇, q␇ﷻ␇, q␇ﷻ␇, q␇جل جلاله␇, q␇جل جلاله␇);
+Test_N(q␇﷼␇, q␇﷼␇, q␇﷼␇, q␇ریال␇, q␇ریال␇);
+Test_N(q␇︐␇, q␇︐␇, q␇︐␇, q␇,␇, q␇,␇);
+Test_N(q␇︑␇, q␇︑␇, q␇︑␇, q␇、␇, q␇、␇);
+Test_N(q␇︒␇, q␇︒␇, q␇︒␇, q␇。␇, q␇。␇);
+Test_N(q␇︓␇, q␇︓␇, q␇︓␇, q␇:␇, q␇:␇);
+Test_N(q␇︔␇, q␇︔␇, q␇︔␇, q␇;␇, q␇;␇);
+Test_N(q␇︕␇, q␇︕␇, q␇︕␇, q␇!␇, q␇!␇);
+Test_N(q␇︖␇, q␇︖␇, q␇︖␇, q␇?␇, q␇?␇);
+Test_N(q␇︗␇, q␇︗␇, q␇︗␇, q␇〖␇, q␇〖␇);
+Test_N(q␇︘␇, q␇︘␇, q␇︘␇, q␇〗␇, q␇〗␇);
+Test_N(q␇︙␇, q␇︙␇, q␇︙␇, q␇...␇, q␇...␇);
+Test_N(q␇︰␇, q␇︰␇, q␇︰␇, q␇..␇, q␇..␇);
+Test_N(q␇︱␇, q␇︱␇, q␇︱␇, q␇—␇, q␇—␇);
+Test_N(q␇︲␇, q␇︲␇, q␇︲␇, q␇–␇, q␇–␇);
+Test_N(q␇︳␇, q␇︳␇, q␇︳␇, q␇_␇, q␇_␇);
+Test_N(q␇︴␇, q␇︴␇, q␇︴␇, q␇_␇, q␇_␇);
+Test_N(q␇︵␇, q␇︵␇, q␇︵␇, q␇(␇, q␇(␇);
+Test_N(q␇︶␇, q␇︶␇, q␇︶␇, q␇)␇, q␇)␇);
+Test_N(q␇︷␇, q␇︷␇, q␇︷␇, q␇{␇, q␇{␇);
+Test_N(q␇︸␇, q␇︸␇, q␇︸␇, q␇}␇, q␇}␇);
+Test_N(q␇︹␇, q␇︹␇, q␇︹␇, q␇〔␇, q␇〔␇);
+Test_N(q␇︺␇, q␇︺␇, q␇︺␇, q␇〕␇, q␇〕␇);
+Test_N(q␇︻␇, q␇︻␇, q␇︻␇, q␇【␇, q␇【␇);
+Test_N(q␇︼␇, q␇︼␇, q␇︼␇, q␇】␇, q␇】␇);
+Test_N(q␇︽␇, q␇︽␇, q␇︽␇, q␇《␇, q␇《␇);
+Test_N(q␇︾␇, q␇︾␇, q␇︾␇, q␇》␇, q␇》␇);
+Test_N(q␇︿␇, q␇︿␇, q␇︿␇, q␇〈␇, q␇〈␇);
+Test_N(q␇﹀␇, q␇﹀␇, q␇﹀␇, q␇〉␇, q␇〉␇);
+Test_N(q␇﹁␇, q␇﹁␇, q␇﹁␇, q␇「␇, q␇「␇);
+Test_N(q␇﹂␇, q␇﹂␇, q␇﹂␇, q␇」␇, q␇」␇);
+Test_N(q␇﹃␇, q␇﹃␇, q␇﹃␇, q␇『␇, q␇『␇);
+Test_N(q␇﹄␇, q␇﹄␇, q␇﹄␇, q␇』␇, q␇』␇);
+Test_N(q␇﹇␇, q␇﹇␇, q␇﹇␇, q␇[␇, q␇[␇);
+Test_N(q␇﹈␇, q␇﹈␇, q␇﹈␇, q␇]␇, q␇]␇);
+Test_N(q␇﹉␇, q␇﹉␇, q␇﹉␇, q␇ ̅␇, q␇ ̅␇);
+Test_N(q␇﹊␇, q␇﹊␇, q␇﹊␇, q␇ ̅␇, q␇ ̅␇);
+Test_N(q␇﹋␇, q␇﹋␇, q␇﹋␇, q␇ ̅␇, q␇ ̅␇);
+Test_N(q␇﹌␇, q␇﹌␇, q␇﹌␇, q␇ ̅␇, q␇ ̅␇);
+Test_N(q␇﹍␇, q␇﹍␇, q␇﹍␇, q␇_␇, q␇_␇);
+Test_N(q␇﹎␇, q␇﹎␇, q␇﹎␇, q␇_␇, q␇_␇);
+Test_N(q␇﹏␇, q␇﹏␇, q␇﹏␇, q␇_␇, q␇_␇);
+Test_N(q␇﹐␇, q␇﹐␇, q␇﹐␇, q␇,␇, q␇,␇);
+Test_N(q␇﹑␇, q␇﹑␇, q␇﹑␇, q␇、␇, q␇、␇);
+Test_N(q␇﹒␇, q␇﹒␇, q␇﹒␇, q␇.␇, q␇.␇);
+Test_N(q␇﹔␇, q␇﹔␇, q␇﹔␇, q␇;␇, q␇;␇);
+Test_N(q␇﹕␇, q␇﹕␇, q␇﹕␇, q␇:␇, q␇:␇);
+Test_N(q␇﹖␇, q␇﹖␇, q␇﹖␇, q␇?␇, q␇?␇);
+Test_N(q␇﹗␇, q␇﹗␇, q␇﹗␇, q␇!␇, q␇!␇);
+Test_N(q␇﹘␇, q␇﹘␇, q␇﹘␇, q␇—␇, q␇—␇);
+Test_N(q␇﹙␇, q␇﹙␇, q␇﹙␇, q␇(␇, q␇(␇);
+Test_N(q␇﹚␇, q␇﹚␇, q␇﹚␇, q␇)␇, q␇)␇);
+Test_N(q␇﹛␇, q␇﹛␇, q␇﹛␇, q␇{␇, q␇{␇);
+Test_N(q␇﹜␇, q␇﹜␇, q␇﹜␇, q␇}␇, q␇}␇);
+Test_N(q␇﹝␇, q␇﹝␇, q␇﹝␇, q␇〔␇, q␇〔␇);
+Test_N(q␇﹞␇, q␇﹞␇, q␇﹞␇, q␇〕␇, q␇〕␇);
+Test_N(q␇﹟␇, q␇﹟␇, q␇﹟␇, q␇#␇, q␇#␇);
+Test_N(q␇﹠␇, q␇﹠␇, q␇﹠␇, q␇&␇, q␇&␇);
+Test_N(q␇﹡␇, q␇﹡␇, q␇﹡␇, q␇*␇, q␇*␇);
+Test_N(q␇﹢␇, q␇﹢␇, q␇﹢␇, q␇+␇, q␇+␇);
+Test_N(q␇﹣␇, q␇﹣␇, q␇﹣␇, q␇-␇, q␇-␇);
+Test_N(q␇﹤␇, q␇﹤␇, q␇﹤␇, q␇<␇, q␇<␇);
+Test_N(q␇﹥␇, q␇﹥␇, q␇﹥␇, q␇>␇, q␇>␇);
+Test_N(q␇﹦␇, q␇﹦␇, q␇﹦␇, q␇=␇, q␇=␇);
+Test_N(q␇﹨␇, q␇﹨␇, q␇﹨␇, q␇\\␇, q␇\\␇);
+Test_N(q␇﹩␇, q␇﹩␇, q␇﹩␇, q␇$␇, q␇$␇);
+Test_N(q␇﹪␇, q␇﹪␇, q␇﹪␇, q␇%␇, q␇%␇);
+Test_N(q␇﹫␇, q␇﹫␇, q␇﹫␇, q␇@␇, q␇@␇);
+Test_N(q␇ﹰ␇, q␇ﹰ␇, q␇ﹰ␇, q␇ ً␇, q␇ ً␇);
+Test_N(q␇ﹱ␇, q␇ﹱ␇, q␇ﹱ␇, q␇ـً␇, q␇ـً␇);
+Test_N(q␇ﹲ␇, q␇ﹲ␇, q␇ﹲ␇, q␇ ٌ␇, q␇ ٌ␇);
+Test_N(q␇ﹴ␇, q␇ﹴ␇, q␇ﹴ␇, q␇ ٍ␇, q␇ ٍ␇);
+Test_N(q␇ﹶ␇, q␇ﹶ␇, q␇ﹶ␇, q␇ َ␇, q␇ َ␇);
+Test_N(q␇ﹷ␇, q␇ﹷ␇, q␇ﹷ␇, q␇ـَ␇, q␇ـَ␇);
+Test_N(q␇ﹸ␇, q␇ﹸ␇, q␇ﹸ␇, q␇ ُ␇, q␇ ُ␇);
+Test_N(q␇ﹹ␇, q␇ﹹ␇, q␇ﹹ␇, q␇ـُ␇, q␇ـُ␇);
+Test_N(q␇ﹺ␇, q␇ﹺ␇, q␇ﹺ␇, q␇ ِ␇, q␇ ِ␇);
+Test_N(q␇ﹻ␇, q␇ﹻ␇, q␇ﹻ␇, q␇ـِ␇, q␇ـِ␇);
+Test_N(q␇ﹼ␇, q␇ﹼ␇, q␇ﹼ␇, q␇ ّ␇, q␇ ّ␇);
+Test_N(q␇ﹽ␇, q␇ﹽ␇, q␇ﹽ␇, q␇ـّ␇, q␇ـّ␇);
+Test_N(q␇ﹾ␇, q␇ﹾ␇, q␇ﹾ␇, q␇ ْ␇, q␇ ْ␇);
+Test_N(q␇ﹿ␇, q␇ﹿ␇, q␇ﹿ␇, q␇ـْ␇, q␇ـْ␇);
+Test_N(q␇ﺀ␇, q␇ﺀ␇, q␇ﺀ␇, q␇ء␇, q␇ء␇);
+Test_N(q␇ﺁ␇, q␇ﺁ␇, q␇ﺁ␇, q␇آ␇, q␇آ␇);
+Test_N(q␇ﺂ␇, q␇ﺂ␇, q␇ﺂ␇, q␇آ␇, q␇آ␇);
+Test_N(q␇ﺃ␇, q␇ﺃ␇, q␇ﺃ␇, q␇أ␇, q␇أ␇);
+Test_N(q␇ﺄ␇, q␇ﺄ␇, q␇ﺄ␇, q␇أ␇, q␇أ␇);
+Test_N(q␇ﺅ␇, q␇ﺅ␇, q␇ﺅ␇, q␇ؤ␇, q␇ؤ␇);
+Test_N(q␇ﺆ␇, q␇ﺆ␇, q␇ﺆ␇, q␇ؤ␇, q␇ؤ␇);
+Test_N(q␇ﺇ␇, q␇ﺇ␇, q␇ﺇ␇, q␇إ␇, q␇إ␇);
+Test_N(q␇ﺈ␇, q␇ﺈ␇, q␇ﺈ␇, q␇إ␇, q␇إ␇);
+Test_N(q␇ﺉ␇, q␇ﺉ␇, q␇ﺉ␇, q␇ئ␇, q␇ئ␇);
+Test_N(q␇ﺊ␇, q␇ﺊ␇, q␇ﺊ␇, q␇ئ␇, q␇ئ␇);
+Test_N(q␇ﺋ␇, q␇ﺋ␇, q␇ﺋ␇, q␇ئ␇, q␇ئ␇);
+Test_N(q␇ﺌ␇, q␇ﺌ␇, q␇ﺌ␇, q␇ئ␇, q␇ئ␇);
+Test_N(q␇ﺍ␇, q␇ﺍ␇, q␇ﺍ␇, q␇ا␇, q␇ا␇);
+Test_N(q␇ﺎ␇, q␇ﺎ␇, q␇ﺎ␇, q␇ا␇, q␇ا␇);
+Test_N(q␇ﺏ␇, q␇ﺏ␇, q␇ﺏ␇, q␇ب␇, q␇ب␇);
+Test_N(q␇ﺐ␇, q␇ﺐ␇, q␇ﺐ␇, q␇ب␇, q␇ب␇);
+Test_N(q␇ﺑ␇, q␇ﺑ␇, q␇ﺑ␇, q␇ب␇, q␇ب␇);
+Test_N(q␇ﺒ␇, q␇ﺒ␇, q␇ﺒ␇, q␇ب␇, q␇ب␇);
+Test_N(q␇ﺓ␇, q␇ﺓ␇, q␇ﺓ␇, q␇ة␇, q␇ة␇);
+Test_N(q␇ﺔ␇, q␇ﺔ␇, q␇ﺔ␇, q␇ة␇, q␇ة␇);
+Test_N(q␇ﺕ␇, q␇ﺕ␇, q␇ﺕ␇, q␇ت␇, q␇ت␇);
+Test_N(q␇ﺖ␇, q␇ﺖ␇, q␇ﺖ␇, q␇ت␇, q␇ت␇);
+Test_N(q␇ﺗ␇, q␇ﺗ␇, q␇ﺗ␇, q␇ت␇, q␇ت␇);
+Test_N(q␇ﺘ␇, q␇ﺘ␇, q␇ﺘ␇, q␇ت␇, q␇ت␇);
+Test_N(q␇ﺙ␇, q␇ﺙ␇, q␇ﺙ␇, q␇ث␇, q␇ث␇);
+Test_N(q␇ﺚ␇, q␇ﺚ␇, q␇ﺚ␇, q␇ث␇, q␇ث␇);
+Test_N(q␇ﺛ␇, q␇ﺛ␇, q␇ﺛ␇, q␇ث␇, q␇ث␇);
+Test_N(q␇ﺜ␇, q␇ﺜ␇, q␇ﺜ␇, q␇ث␇, q␇ث␇);
+Test_N(q␇ﺝ␇, q␇ﺝ␇, q␇ﺝ␇, q␇ج␇, q␇ج␇);
+Test_N(q␇ﺞ␇, q␇ﺞ␇, q␇ﺞ␇, q␇ج␇, q␇ج␇);
+Test_N(q␇ﺟ␇, q␇ﺟ␇, q␇ﺟ␇, q␇ج␇, q␇ج␇);
+Test_N(q␇ﺠ␇, q␇ﺠ␇, q␇ﺠ␇, q␇ج␇, q␇ج␇);
+Test_N(q␇ﺡ␇, q␇ﺡ␇, q␇ﺡ␇, q␇ح␇, q␇ح␇);
+Test_N(q␇ﺢ␇, q␇ﺢ␇, q␇ﺢ␇, q␇ح␇, q␇ح␇);
+Test_N(q␇ﺣ␇, q␇ﺣ␇, q␇ﺣ␇, q␇ح␇, q␇ح␇);
+Test_N(q␇ﺤ␇, q␇ﺤ␇, q␇ﺤ␇, q␇ح␇, q␇ح␇);
+Test_N(q␇ﺥ␇, q␇ﺥ␇, q␇ﺥ␇, q␇خ␇, q␇خ␇);
+Test_N(q␇ﺦ␇, q␇ﺦ␇, q␇ﺦ␇, q␇خ␇, q␇خ␇);
+Test_N(q␇ﺧ␇, q␇ﺧ␇, q␇ﺧ␇, q␇خ␇, q␇خ␇);
+Test_N(q␇ﺨ␇, q␇ﺨ␇, q␇ﺨ␇, q␇خ␇, q␇خ␇);
+Test_N(q␇ﺩ␇, q␇ﺩ␇, q␇ﺩ␇, q␇د␇, q␇د␇);
+Test_N(q␇ﺪ␇, q␇ﺪ␇, q␇ﺪ␇, q␇د␇, q␇د␇);
+Test_N(q␇ﺫ␇, q␇ﺫ␇, q␇ﺫ␇, q␇ذ␇, q␇ذ␇);
+Test_N(q␇ﺬ␇, q␇ﺬ␇, q␇ﺬ␇, q␇ذ␇, q␇ذ␇);
+Test_N(q␇ﺭ␇, q␇ﺭ␇, q␇ﺭ␇, q␇ر␇, q␇ر␇);
+Test_N(q␇ﺮ␇, q␇ﺮ␇, q␇ﺮ␇, q␇ر␇, q␇ر␇);
+Test_N(q␇ﺯ␇, q␇ﺯ␇, q␇ﺯ␇, q␇ز␇, q␇ز␇);
+Test_N(q␇ﺰ␇, q␇ﺰ␇, q␇ﺰ␇, q␇ز␇, q␇ز␇);
+Test_N(q␇ﺱ␇, q␇ﺱ␇, q␇ﺱ␇, q␇س␇, q␇س␇);
+Test_N(q␇ﺲ␇, q␇ﺲ␇, q␇ﺲ␇, q␇س␇, q␇س␇);
+Test_N(q␇ﺳ␇, q␇ﺳ␇, q␇ﺳ␇, q␇س␇, q␇س␇);
+Test_N(q␇ﺴ␇, q␇ﺴ␇, q␇ﺴ␇, q␇س␇, q␇س␇);
+Test_N(q␇ﺵ␇, q␇ﺵ␇, q␇ﺵ␇, q␇ش␇, q␇ش␇);
+Test_N(q␇ﺶ␇, q␇ﺶ␇, q␇ﺶ␇, q␇ش␇, q␇ش␇);
+Test_N(q␇ﺷ␇, q␇ﺷ␇, q␇ﺷ␇, q␇ش␇, q␇ش␇);
+Test_N(q␇ﺸ␇, q␇ﺸ␇, q␇ﺸ␇, q␇ش␇, q␇ش␇);
+Test_N(q␇ﺹ␇, q␇ﺹ␇, q␇ﺹ␇, q␇ص␇, q␇ص␇);
+Test_N(q␇ﺺ␇, q␇ﺺ␇, q␇ﺺ␇, q␇ص␇, q␇ص␇);
+Test_N(q␇ﺻ␇, q␇ﺻ␇, q␇ﺻ␇, q␇ص␇, q␇ص␇);
+Test_N(q␇ﺼ␇, q␇ﺼ␇, q␇ﺼ␇, q␇ص␇, q␇ص␇);
+Test_N(q␇ﺽ␇, q␇ﺽ␇, q␇ﺽ␇, q␇ض␇, q␇ض␇);
+Test_N(q␇ﺾ␇, q␇ﺾ␇, q␇ﺾ␇, q␇ض␇, q␇ض␇);
+Test_N(q␇ﺿ␇, q␇ﺿ␇, q␇ﺿ␇, q␇ض␇, q␇ض␇);
+Test_N(q␇ﻀ␇, q␇ﻀ␇, q␇ﻀ␇, q␇ض␇, q␇ض␇);
+Test_N(q␇ﻁ␇, q␇ﻁ␇, q␇ﻁ␇, q␇ط␇, q␇ط␇);
+Test_N(q␇ﻂ␇, q␇ﻂ␇, q␇ﻂ␇, q␇ط␇, q␇ط␇);
+Test_N(q␇ﻃ␇, q␇ﻃ␇, q␇ﻃ␇, q␇ط␇, q␇ط␇);
+Test_N(q␇ﻄ␇, q␇ﻄ␇, q␇ﻄ␇, q␇ط␇, q␇ط␇);
+Test_N(q␇ﻅ␇, q␇ﻅ␇, q␇ﻅ␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇ﻆ␇, q␇ﻆ␇, q␇ﻆ␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇ﻇ␇, q␇ﻇ␇, q␇ﻇ␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇ﻈ␇, q␇ﻈ␇, q␇ﻈ␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇ﻉ␇, q␇ﻉ␇, q␇ﻉ␇, q␇ع␇, q␇ع␇);
+Test_N(q␇ﻊ␇, q␇ﻊ␇, q␇ﻊ␇, q␇ع␇, q␇ع␇);
+Test_N(q␇ﻋ␇, q␇ﻋ␇, q␇ﻋ␇, q␇ع␇, q␇ع␇);
+Test_N(q␇ﻌ␇, q␇ﻌ␇, q␇ﻌ␇, q␇ع␇, q␇ع␇);
+Test_N(q␇ﻍ␇, q␇ﻍ␇, q␇ﻍ␇, q␇غ␇, q␇غ␇);
+Test_N(q␇ﻎ␇, q␇ﻎ␇, q␇ﻎ␇, q␇غ␇, q␇غ␇);
+Test_N(q␇ﻏ␇, q␇ﻏ␇, q␇ﻏ␇, q␇غ␇, q␇غ␇);
+Test_N(q␇ﻐ␇, q␇ﻐ␇, q␇ﻐ␇, q␇غ␇, q␇غ␇);
+Test_N(q␇ﻑ␇, q␇ﻑ␇, q␇ﻑ␇, q␇ف␇, q␇ف␇);
+Test_N(q␇ﻒ␇, q␇ﻒ␇, q␇ﻒ␇, q␇ف␇, q␇ف␇);
+Test_N(q␇ﻓ␇, q␇ﻓ␇, q␇ﻓ␇, q␇ف␇, q␇ف␇);
+Test_N(q␇ﻔ␇, q␇ﻔ␇, q␇ﻔ␇, q␇ف␇, q␇ف␇);
+Test_N(q␇ﻕ␇, q␇ﻕ␇, q␇ﻕ␇, q␇ق␇, q␇ق␇);
+Test_N(q␇ﻖ␇, q␇ﻖ␇, q␇ﻖ␇, q␇ق␇, q␇ق␇);
+Test_N(q␇ﻗ␇, q␇ﻗ␇, q␇ﻗ␇, q␇ق␇, q␇ق␇);
+Test_N(q␇ﻘ␇, q␇ﻘ␇, q␇ﻘ␇, q␇ق␇, q␇ق␇);
+Test_N(q␇ﻙ␇, q␇ﻙ␇, q␇ﻙ␇, q␇ك␇, q␇ك␇);
+Test_N(q␇ﻚ␇, q␇ﻚ␇, q␇ﻚ␇, q␇ك␇, q␇ك␇);
+Test_N(q␇ﻛ␇, q␇ﻛ␇, q␇ﻛ␇, q␇ك␇, q␇ك␇);
+Test_N(q␇ﻜ␇, q␇ﻜ␇, q␇ﻜ␇, q␇ك␇, q␇ك␇);
+Test_N(q␇ﻝ␇, q␇ﻝ␇, q␇ﻝ␇, q␇ل␇, q␇ل␇);
+Test_N(q␇ﻞ␇, q␇ﻞ␇, q␇ﻞ␇, q␇ل␇, q␇ل␇);
+Test_N(q␇ﻟ␇, q␇ﻟ␇, q␇ﻟ␇, q␇ل␇, q␇ل␇);
+Test_N(q␇ﻠ␇, q␇ﻠ␇, q␇ﻠ␇, q␇ل␇, q␇ل␇);
+Test_N(q␇ﻡ␇, q␇ﻡ␇, q␇ﻡ␇, q␇م␇, q␇م␇);
+Test_N(q␇ﻢ␇, q␇ﻢ␇, q␇ﻢ␇, q␇م␇, q␇م␇);
+Test_N(q␇ﻣ␇, q␇ﻣ␇, q␇ﻣ␇, q␇م␇, q␇م␇);
+Test_N(q␇ﻤ␇, q␇ﻤ␇, q␇ﻤ␇, q␇م␇, q␇م␇);
+Test_N(q␇ﻥ␇, q␇ﻥ␇, q␇ﻥ␇, q␇ن␇, q␇ن␇);
+Test_N(q␇ﻦ␇, q␇ﻦ␇, q␇ﻦ␇, q␇ن␇, q␇ن␇);
+Test_N(q␇ﻧ␇, q␇ﻧ␇, q␇ﻧ␇, q␇ن␇, q␇ن␇);
+Test_N(q␇ﻨ␇, q␇ﻨ␇, q␇ﻨ␇, q␇ن␇, q␇ن␇);
+Test_N(q␇ﻩ␇, q␇ﻩ␇, q␇ﻩ␇, q␇ه␇, q␇ه␇);
+Test_N(q␇ﻪ␇, q␇ﻪ␇, q␇ﻪ␇, q␇ه␇, q␇ه␇);
+Test_N(q␇ﻫ␇, q␇ﻫ␇, q␇ﻫ␇, q␇ه␇, q␇ه␇);
+Test_N(q␇ﻬ␇, q␇ﻬ␇, q␇ﻬ␇, q␇ه␇, q␇ه␇);
+Test_N(q␇ﻭ␇, q␇ﻭ␇, q␇ﻭ␇, q␇و␇, q␇و␇);
+Test_N(q␇ﻮ␇, q␇ﻮ␇, q␇ﻮ␇, q␇و␇, q␇و␇);
+Test_N(q␇ﻯ␇, q␇ﻯ␇, q␇ﻯ␇, q␇ى␇, q␇ى␇);
+Test_N(q␇ﻰ␇, q␇ﻰ␇, q␇ﻰ␇, q␇ى␇, q␇ى␇);
+Test_N(q␇ﻱ␇, q␇ﻱ␇, q␇ﻱ␇, q␇ي␇, q␇ي␇);
+Test_N(q␇ﻲ␇, q␇ﻲ␇, q␇ﻲ␇, q␇ي␇, q␇ي␇);
+Test_N(q␇ﻳ␇, q␇ﻳ␇, q␇ﻳ␇, q␇ي␇, q␇ي␇);
+Test_N(q␇ﻴ␇, q␇ﻴ␇, q␇ﻴ␇, q␇ي␇, q␇ي␇);
+Test_N(q␇ﻵ␇, q␇ﻵ␇, q␇ﻵ␇, q␇لآ␇, q␇لآ␇);
+Test_N(q␇ﻶ␇, q␇ﻶ␇, q␇ﻶ␇, q␇لآ␇, q␇لآ␇);
+Test_N(q␇ﻷ␇, q␇ﻷ␇, q␇ﻷ␇, q␇لأ␇, q␇لأ␇);
+Test_N(q␇ﻸ␇, q␇ﻸ␇, q␇ﻸ␇, q␇لأ␇, q␇لأ␇);
+Test_N(q␇ﻹ␇, q␇ﻹ␇, q␇ﻹ␇, q␇لإ␇, q␇لإ␇);
+Test_N(q␇ﻺ␇, q␇ﻺ␇, q␇ﻺ␇, q␇لإ␇, q␇لإ␇);
+Test_N(q␇ﻻ␇, q␇ﻻ␇, q␇ﻻ␇, q␇لا␇, q␇لا␇);
+Test_N(q␇ﻼ␇, q␇ﻼ␇, q␇ﻼ␇, q␇لا␇, q␇لا␇);
+Test_N(q␇!␇, q␇!␇, q␇!␇, q␇!␇, q␇!␇);
+Test_N(q␇"␇, q␇"␇, q␇"␇, q␇"␇, q␇"␇);
+Test_N(q␇#␇, q␇#␇, q␇#␇, q␇#␇, q␇#␇);
+Test_N(q␇$␇, q␇$␇, q␇$␇, q␇$␇, q␇$␇);
+Test_N(q␇%␇, q␇%␇, q␇%␇, q␇%␇, q␇%␇);
+Test_N(q␇&␇, q␇&␇, q␇&␇, q␇&␇, q␇&␇);
+Test_N(q␇'␇, q␇'␇, q␇'␇, q␇'␇, q␇'␇);
+Test_N(q␇(␇, q␇(␇, q␇(␇, q␇(␇, q␇(␇);
+Test_N(q␇)␇, q␇)␇, q␇)␇, q␇)␇, q␇)␇);
+Test_N(q␇*␇, q␇*␇, q␇*␇, q␇*␇, q␇*␇);
+Test_N(q␇+␇, q␇+␇, q␇+␇, q␇+␇, q␇+␇);
+Test_N(q␇,␇, q␇,␇, q␇,␇, q␇,␇, q␇,␇);
+Test_N(q␇-␇, q␇-␇, q␇-␇, q␇-␇, q␇-␇);
+Test_N(q␇.␇, q␇.␇, q␇.␇, q␇.␇, q␇.␇);
+Test_N(q␇/␇, q␇/␇, q␇/␇, q␇/␇, q␇/␇);
+Test_N(q␇0␇, q␇0␇, q␇0␇, q␇0␇, q␇0␇);
+Test_N(q␇1␇, q␇1␇, q␇1␇, q␇1␇, q␇1␇);
+Test_N(q␇2␇, q␇2␇, q␇2␇, q␇2␇, q␇2␇);
+Test_N(q␇3␇, q␇3␇, q␇3␇, q␇3␇, q␇3␇);
+Test_N(q␇4␇, q␇4␇, q␇4␇, q␇4␇, q␇4␇);
+Test_N(q␇5␇, q␇5␇, q␇5␇, q␇5␇, q␇5␇);
+Test_N(q␇6␇, q␇6␇, q␇6␇, q␇6␇, q␇6␇);
+Test_N(q␇7␇, q␇7␇, q␇7␇, q␇7␇, q␇7␇);
+Test_N(q␇8␇, q␇8␇, q␇8␇, q␇8␇, q␇8␇);
+Test_N(q␇9␇, q␇9␇, q␇9␇, q␇9␇, q␇9␇);
+Test_N(q␇:␇, q␇:␇, q␇:␇, q␇:␇, q␇:␇);
+Test_N(q␇;␇, q␇;␇, q␇;␇, q␇;␇, q␇;␇);
+Test_N(q␇<␇, q␇<␇, q␇<␇, q␇<␇, q␇<␇);
+Test_N(q␇=␇, q␇=␇, q␇=␇, q␇=␇, q␇=␇);
+Test_N(q␇>␇, q␇>␇, q␇>␇, q␇>␇, q␇>␇);
+Test_N(q␇?␇, q␇?␇, q␇?␇, q␇?␇, q␇?␇);
+Test_N(q␇@␇, q␇@␇, q␇@␇, q␇@␇, q␇@␇);
+Test_N(q␇A␇, q␇A␇, q␇A␇, q␇A␇, q␇A␇);
+Test_N(q␇B␇, q␇B␇, q␇B␇, q␇B␇, q␇B␇);
+Test_N(q␇C␇, q␇C␇, q␇C␇, q␇C␇, q␇C␇);
+Test_N(q␇D␇, q␇D␇, q␇D␇, q␇D␇, q␇D␇);
+Test_N(q␇E␇, q␇E␇, q␇E␇, q␇E␇, q␇E␇);
+Test_N(q␇F␇, q␇F␇, q␇F␇, q␇F␇, q␇F␇);
+Test_N(q␇G␇, q␇G␇, q␇G␇, q␇G␇, q␇G␇);
+Test_N(q␇H␇, q␇H␇, q␇H␇, q␇H␇, q␇H␇);
+Test_N(q␇I␇, q␇I␇, q␇I␇, q␇I␇, q␇I␇);
+Test_N(q␇J␇, q␇J␇, q␇J␇, q␇J␇, q␇J␇);
+Test_N(q␇K␇, q␇K␇, q␇K␇, q␇K␇, q␇K␇);
+Test_N(q␇L␇, q␇L␇, q␇L␇, q␇L␇, q␇L␇);
+Test_N(q␇M␇, q␇M␇, q␇M␇, q␇M␇, q␇M␇);
+Test_N(q␇N␇, q␇N␇, q␇N␇, q␇N␇, q␇N␇);
+Test_N(q␇O␇, q␇O␇, q␇O␇, q␇O␇, q␇O␇);
+Test_N(q␇P␇, q␇P␇, q␇P␇, q␇P␇, q␇P␇);
+Test_N(q␇Q␇, q␇Q␇, q␇Q␇, q␇Q␇, q␇Q␇);
+Test_N(q␇R␇, q␇R␇, q␇R␇, q␇R␇, q␇R␇);
+Test_N(q␇S␇, q␇S␇, q␇S␇, q␇S␇, q␇S␇);
+Test_N(q␇T␇, q␇T␇, q␇T␇, q␇T␇, q␇T␇);
+Test_N(q␇U␇, q␇U␇, q␇U␇, q␇U␇, q␇U␇);
+Test_N(q␇V␇, q␇V␇, q␇V␇, q␇V␇, q␇V␇);
+Test_N(q␇W␇, q␇W␇, q␇W␇, q␇W␇, q␇W␇);
+Test_N(q␇X␇, q␇X␇, q␇X␇, q␇X␇, q␇X␇);
+Test_N(q␇Y␇, q␇Y␇, q␇Y␇, q␇Y␇, q␇Y␇);
+Test_N(q␇Z␇, q␇Z␇, q␇Z␇, q␇Z␇, q␇Z␇);
+Test_N(q␇[␇, q␇[␇, q␇[␇, q␇[␇, q␇[␇);
+Test_N(q␇\␇, q␇\␇, q␇\␇, q␇\\␇, q␇\\␇);
+Test_N(q␇]␇, q␇]␇, q␇]␇, q␇]␇, q␇]␇);
+Test_N(q␇^␇, q␇^␇, q␇^␇, q␇^␇, q␇^␇);
+Test_N(q␇_␇, q␇_␇, q␇_␇, q␇_␇, q␇_␇);
+Test_N(q␇`␇, q␇`␇, q␇`␇, q␇`␇, q␇`␇);
+Test_N(q␇a␇, q␇a␇, q␇a␇, q␇a␇, q␇a␇);
+Test_N(q␇b␇, q␇b␇, q␇b␇, q␇b␇, q␇b␇);
+Test_N(q␇c␇, q␇c␇, q␇c␇, q␇c␇, q␇c␇);
+Test_N(q␇d␇, q␇d␇, q␇d␇, q␇d␇, q␇d␇);
+Test_N(q␇e␇, q␇e␇, q␇e␇, q␇e␇, q␇e␇);
+Test_N(q␇f␇, q␇f␇, q␇f␇, q␇f␇, q␇f␇);
+Test_N(q␇g␇, q␇g␇, q␇g␇, q␇g␇, q␇g␇);
+Test_N(q␇h␇, q␇h␇, q␇h␇, q␇h␇, q␇h␇);
+Test_N(q␇i␇, q␇i␇, q␇i␇, q␇i␇, q␇i␇);
+Test_N(q␇j␇, q␇j␇, q␇j␇, q␇j␇, q␇j␇);
+Test_N(q␇k␇, q␇k␇, q␇k␇, q␇k␇, q␇k␇);
+Test_N(q␇l␇, q␇l␇, q␇l␇, q␇l␇, q␇l␇);
+Test_N(q␇m␇, q␇m␇, q␇m␇, q␇m␇, q␇m␇);
+Test_N(q␇n␇, q␇n␇, q␇n␇, q␇n␇, q␇n␇);
+Test_N(q␇o␇, q␇o␇, q␇o␇, q␇o␇, q␇o␇);
+Test_N(q␇p␇, q␇p␇, q␇p␇, q␇p␇, q␇p␇);
+Test_N(q␇q␇, q␇q␇, q␇q␇, q␇q␇, q␇q␇);
+Test_N(q␇r␇, q␇r␇, q␇r␇, q␇r␇, q␇r␇);
+Test_N(q␇s␇, q␇s␇, q␇s␇, q␇s␇, q␇s␇);
+Test_N(q␇t␇, q␇t␇, q␇t␇, q␇t␇, q␇t␇);
+Test_N(q␇u␇, q␇u␇, q␇u␇, q␇u␇, q␇u␇);
+Test_N(q␇v␇, q␇v␇, q␇v␇, q␇v␇, q␇v␇);
+Test_N(q␇w␇, q␇w␇, q␇w␇, q␇w␇, q␇w␇);
+Test_N(q␇x␇, q␇x␇, q␇x␇, q␇x␇, q␇x␇);
+Test_N(q␇y␇, q␇y␇, q␇y␇, q␇y␇, q␇y␇);
+Test_N(q␇z␇, q␇z␇, q␇z␇, q␇z␇, q␇z␇);
+Test_N(q␇{␇, q␇{␇, q␇{␇, q␇{␇, q␇{␇);
+Test_N(q␇|␇, q␇|␇, q␇|␇, q␇|␇, q␇|␇);
+Test_N(q␇}␇, q␇}␇, q␇}␇, q␇}␇, q␇}␇);
+Test_N(q␇~␇, q␇~␇, q␇~␇, q␇~␇, q␇~␇);
+Test_N(q␇⦅␇, q␇⦅␇, q␇⦅␇, q␇⦅␇, q␇⦅␇);
+Test_N(q␇⦆␇, q␇⦆␇, q␇⦆␇, q␇⦆␇, q␇⦆␇);
+Test_N(q␇。␇, q␇。␇, q␇。␇, q␇。␇, q␇。␇);
+Test_N(q␇「␇, q␇「␇, q␇「␇, q␇「␇, q␇「␇);
+Test_N(q␇」␇, q␇」␇, q␇」␇, q␇」␇, q␇」␇);
+Test_N(q␇、␇, q␇、␇, q␇、␇, q␇、␇, q␇、␇);
+Test_N(q␇・␇, q␇・␇, q␇・␇, q␇・␇, q␇・␇);
+Test_N(q␇ヲ␇, q␇ヲ␇, q␇ヲ␇, q␇ヲ␇, q␇ヲ␇);
+Test_N(q␇ァ␇, q␇ァ␇, q␇ァ␇, q␇ァ␇, q␇ァ␇);
+Test_N(q␇ィ␇, q␇ィ␇, q␇ィ␇, q␇ィ␇, q␇ィ␇);
+Test_N(q␇ゥ␇, q␇ゥ␇, q␇ゥ␇, q␇ゥ␇, q␇ゥ␇);
+Test_N(q␇ェ␇, q␇ェ␇, q␇ェ␇, q␇ェ␇, q␇ェ␇);
+Test_N(q␇ォ␇, q␇ォ␇, q␇ォ␇, q␇ォ␇, q␇ォ␇);
+Test_N(q␇ャ␇, q␇ャ␇, q␇ャ␇, q␇ャ␇, q␇ャ␇);
+Test_N(q␇ュ␇, q␇ュ␇, q␇ュ␇, q␇ュ␇, q␇ュ␇);
+Test_N(q␇ョ␇, q␇ョ␇, q␇ョ␇, q␇ョ␇, q␇ョ␇);
+Test_N(q␇ッ␇, q␇ッ␇, q␇ッ␇, q␇ッ␇, q␇ッ␇);
+Test_N(q␇ー␇, q␇ー␇, q␇ー␇, q␇ー␇, q␇ー␇);
+Test_N(q␇ア␇, q␇ア␇, q␇ア␇, q␇ア␇, q␇ア␇);
+Test_N(q␇イ␇, q␇イ␇, q␇イ␇, q␇イ␇, q␇イ␇);
+Test_N(q␇ウ␇, q␇ウ␇, q␇ウ␇, q␇ウ␇, q␇ウ␇);
+Test_N(q␇エ␇, q␇エ␇, q␇エ␇, q␇エ␇, q␇エ␇);
+Test_N(q␇オ␇, q␇オ␇, q␇オ␇, q␇オ␇, q␇オ␇);
+Test_N(q␇カ␇, q␇カ␇, q␇カ␇, q␇カ␇, q␇カ␇);
+Test_N(q␇キ␇, q␇キ␇, q␇キ␇, q␇キ␇, q␇キ␇);
+Test_N(q␇ク␇, q␇ク␇, q␇ク␇, q␇ク␇, q␇ク␇);
+Test_N(q␇ケ␇, q␇ケ␇, q␇ケ␇, q␇ケ␇, q␇ケ␇);
+Test_N(q␇コ␇, q␇コ␇, q␇コ␇, q␇コ␇, q␇コ␇);
+Test_N(q␇サ␇, q␇サ␇, q␇サ␇, q␇サ␇, q␇サ␇);
+Test_N(q␇シ␇, q␇シ␇, q␇シ␇, q␇シ␇, q␇シ␇);
+Test_N(q␇ス␇, q␇ス␇, q␇ス␇, q␇ス␇, q␇ス␇);
+Test_N(q␇セ␇, q␇セ␇, q␇セ␇, q␇セ␇, q␇セ␇);
+Test_N(q␇ソ␇, q␇ソ␇, q␇ソ␇, q␇ソ␇, q␇ソ␇);
+Test_N(q␇タ␇, q␇タ␇, q␇タ␇, q␇タ␇, q␇タ␇);
+Test_N(q␇チ␇, q␇チ␇, q␇チ␇, q␇チ␇, q␇チ␇);
+Test_N(q␇ツ␇, q␇ツ␇, q␇ツ␇, q␇ツ␇, q␇ツ␇);
+Test_N(q␇テ␇, q␇テ␇, q␇テ␇, q␇テ␇, q␇テ␇);
+Test_N(q␇ト␇, q␇ト␇, q␇ト␇, q␇ト␇, q␇ト␇);
+Test_N(q␇ナ␇, q␇ナ␇, q␇ナ␇, q␇ナ␇, q␇ナ␇);
+Test_N(q␇ニ␇, q␇ニ␇, q␇ニ␇, q␇ニ␇, q␇ニ␇);
+Test_N(q␇ヌ␇, q␇ヌ␇, q␇ヌ␇, q␇ヌ␇, q␇ヌ␇);
+Test_N(q␇ネ␇, q␇ネ␇, q␇ネ␇, q␇ネ␇, q␇ネ␇);
+Test_N(q␇ノ␇, q␇ノ␇, q␇ノ␇, q␇ノ␇, q␇ノ␇);
+Test_N(q␇ハ␇, q␇ハ␇, q␇ハ␇, q␇ハ␇, q␇ハ␇);
+Test_N(q␇ヒ␇, q␇ヒ␇, q␇ヒ␇, q␇ヒ␇, q␇ヒ␇);
+Test_N(q␇フ␇, q␇フ␇, q␇フ␇, q␇フ␇, q␇フ␇);
+Test_N(q␇ヘ␇, q␇ヘ␇, q␇ヘ␇, q␇ヘ␇, q␇ヘ␇);
+Test_N(q␇ホ␇, q␇ホ␇, q␇ホ␇, q␇ホ␇, q␇ホ␇);
+Test_N(q␇マ␇, q␇マ␇, q␇マ␇, q␇マ␇, q␇マ␇);
+Test_N(q␇ミ␇, q␇ミ␇, q␇ミ␇, q␇ミ␇, q␇ミ␇);
+Test_N(q␇ム␇, q␇ム␇, q␇ム␇, q␇ム␇, q␇ム␇);
+Test_N(q␇メ␇, q␇メ␇, q␇メ␇, q␇メ␇, q␇メ␇);
+Test_N(q␇モ␇, q␇モ␇, q␇モ␇, q␇モ␇, q␇モ␇);
+Test_N(q␇ヤ␇, q␇ヤ␇, q␇ヤ␇, q␇ヤ␇, q␇ヤ␇);
+Test_N(q␇ユ␇, q␇ユ␇, q␇ユ␇, q␇ユ␇, q␇ユ␇);
+Test_N(q␇ヨ␇, q␇ヨ␇, q␇ヨ␇, q␇ヨ␇, q␇ヨ␇);
+Test_N(q␇ラ␇, q␇ラ␇, q␇ラ␇, q␇ラ␇, q␇ラ␇);
+Test_N(q␇リ␇, q␇リ␇, q␇リ␇, q␇リ␇, q␇リ␇);
+Test_N(q␇ル␇, q␇ル␇, q␇ル␇, q␇ル␇, q␇ル␇);
+Test_N(q␇レ␇, q␇レ␇, q␇レ␇, q␇レ␇, q␇レ␇);
+Test_N(q␇ロ␇, q␇ロ␇, q␇ロ␇, q␇ロ␇, q␇ロ␇);
+Test_N(q␇ワ␇, q␇ワ␇, q␇ワ␇, q␇ワ␇, q␇ワ␇);
+Test_N(q␇ン␇, q␇ン␇, q␇ン␇, q␇ン␇, q␇ン␇);
+Test_N(q␇゙␇, q␇゙␇, q␇゙␇, q␇゙␇, q␇゙␇);
+Test_N(q␇゚␇, q␇゚␇, q␇゚␇, q␇゚␇, q␇゚␇);
+Test_N(q␇ᅠ␇, q␇ᅠ␇, q␇ᅠ␇, q␇ᅠ␇, q␇ᅠ␇);
+Test_N(q␇ᄀ␇, q␇ᄀ␇, q␇ᄀ␇, q␇ᄀ␇, q␇ᄀ␇);
+Test_N(q␇ᄁ␇, q␇ᄁ␇, q␇ᄁ␇, q␇ᄁ␇, q␇ᄁ␇);
+Test_N(q␇ᆪ␇, q␇ᆪ␇, q␇ᆪ␇, q␇ᆪ␇, q␇ᆪ␇);
+Test_N(q␇ᄂ␇, q␇ᄂ␇, q␇ᄂ␇, q␇ᄂ␇, q␇ᄂ␇);
+Test_N(q␇ᆬ␇, q␇ᆬ␇, q␇ᆬ␇, q␇ᆬ␇, q␇ᆬ␇);
+Test_N(q␇ᆭ␇, q␇ᆭ␇, q␇ᆭ␇, q␇ᆭ␇, q␇ᆭ␇);
+Test_N(q␇ᄃ␇, q␇ᄃ␇, q␇ᄃ␇, q␇ᄃ␇, q␇ᄃ␇);
+Test_N(q␇ᄄ␇, q␇ᄄ␇, q␇ᄄ␇, q␇ᄄ␇, q␇ᄄ␇);
+Test_N(q␇ᄅ␇, q␇ᄅ␇, q␇ᄅ␇, q␇ᄅ␇, q␇ᄅ␇);
+Test_N(q␇ᆰ␇, q␇ᆰ␇, q␇ᆰ␇, q␇ᆰ␇, q␇ᆰ␇);
+Test_N(q␇ᆱ␇, q␇ᆱ␇, q␇ᆱ␇, q␇ᆱ␇, q␇ᆱ␇);
+Test_N(q␇ᆲ␇, q␇ᆲ␇, q␇ᆲ␇, q␇ᆲ␇, q␇ᆲ␇);
+Test_N(q␇ᆳ␇, q␇ᆳ␇, q␇ᆳ␇, q␇ᆳ␇, q␇ᆳ␇);
+Test_N(q␇ᆴ␇, q␇ᆴ␇, q␇ᆴ␇, q␇ᆴ␇, q␇ᆴ␇);
+Test_N(q␇ᆵ␇, q␇ᆵ␇, q␇ᆵ␇, q␇ᆵ␇, q␇ᆵ␇);
+Test_N(q␇ᄚ␇, q␇ᄚ␇, q␇ᄚ␇, q␇ᄚ␇, q␇ᄚ␇);
+Test_N(q␇ᄆ␇, q␇ᄆ␇, q␇ᄆ␇, q␇ᄆ␇, q␇ᄆ␇);
+Test_N(q␇ᄇ␇, q␇ᄇ␇, q␇ᄇ␇, q␇ᄇ␇, q␇ᄇ␇);
+Test_N(q␇ᄈ␇, q␇ᄈ␇, q␇ᄈ␇, q␇ᄈ␇, q␇ᄈ␇);
+Test_N(q␇ᄡ␇, q␇ᄡ␇, q␇ᄡ␇, q␇ᄡ␇, q␇ᄡ␇);
+Test_N(q␇ᄉ␇, q␇ᄉ␇, q␇ᄉ␇, q␇ᄉ␇, q␇ᄉ␇);
+Test_N(q␇ᄊ␇, q␇ᄊ␇, q␇ᄊ␇, q␇ᄊ␇, q␇ᄊ␇);
+Test_N(q␇ᄋ␇, q␇ᄋ␇, q␇ᄋ␇, q␇ᄋ␇, q␇ᄋ␇);
+Test_N(q␇ᄌ␇, q␇ᄌ␇, q␇ᄌ␇, q␇ᄌ␇, q␇ᄌ␇);
+Test_N(q␇ᄍ␇, q␇ᄍ␇, q␇ᄍ␇, q␇ᄍ␇, q␇ᄍ␇);
+Test_N(q␇ᄎ␇, q␇ᄎ␇, q␇ᄎ␇, q␇ᄎ␇, q␇ᄎ␇);
+Test_N(q␇ᄏ␇, q␇ᄏ␇, q␇ᄏ␇, q␇ᄏ␇, q␇ᄏ␇);
+Test_N(q␇ᄐ␇, q␇ᄐ␇, q␇ᄐ␇, q␇ᄐ␇, q␇ᄐ␇);
+Test_N(q␇ᄑ␇, q␇ᄑ␇, q␇ᄑ␇, q␇ᄑ␇, q␇ᄑ␇);
+Test_N(q␇ᄒ␇, q␇ᄒ␇, q␇ᄒ␇, q␇ᄒ␇, q␇ᄒ␇);
+Test_N(q␇ᅡ␇, q␇ᅡ␇, q␇ᅡ␇, q␇ᅡ␇, q␇ᅡ␇);
+Test_N(q␇ᅢ␇, q␇ᅢ␇, q␇ᅢ␇, q␇ᅢ␇, q␇ᅢ␇);
+Test_N(q␇ᅣ␇, q␇ᅣ␇, q␇ᅣ␇, q␇ᅣ␇, q␇ᅣ␇);
+Test_N(q␇ᅤ␇, q␇ᅤ␇, q␇ᅤ␇, q␇ᅤ␇, q␇ᅤ␇);
+Test_N(q␇ᅥ␇, q␇ᅥ␇, q␇ᅥ␇, q␇ᅥ␇, q␇ᅥ␇);
+Test_N(q␇ᅦ␇, q␇ᅦ␇, q␇ᅦ␇, q␇ᅦ␇, q␇ᅦ␇);
+Test_N(q␇ᅧ␇, q␇ᅧ␇, q␇ᅧ␇, q␇ᅧ␇, q␇ᅧ␇);
+Test_N(q␇ᅨ␇, q␇ᅨ␇, q␇ᅨ␇, q␇ᅨ␇, q␇ᅨ␇);
+Test_N(q␇ᅩ␇, q␇ᅩ␇, q␇ᅩ␇, q␇ᅩ␇, q␇ᅩ␇);
+Test_N(q␇ᅪ␇, q␇ᅪ␇, q␇ᅪ␇, q␇ᅪ␇, q␇ᅪ␇);
+Test_N(q␇ᅫ␇, q␇ᅫ␇, q␇ᅫ␇, q␇ᅫ␇, q␇ᅫ␇);
+Test_N(q␇ᅬ␇, q␇ᅬ␇, q␇ᅬ␇, q␇ᅬ␇, q␇ᅬ␇);
+Test_N(q␇ᅭ␇, q␇ᅭ␇, q␇ᅭ␇, q␇ᅭ␇, q␇ᅭ␇);
+Test_N(q␇ᅮ␇, q␇ᅮ␇, q␇ᅮ␇, q␇ᅮ␇, q␇ᅮ␇);
+Test_N(q␇ᅯ␇, q␇ᅯ␇, q␇ᅯ␇, q␇ᅯ␇, q␇ᅯ␇);
+Test_N(q␇ᅰ␇, q␇ᅰ␇, q␇ᅰ␇, q␇ᅰ␇, q␇ᅰ␇);
+Test_N(q␇ᅱ␇, q␇ᅱ␇, q␇ᅱ␇, q␇ᅱ␇, q␇ᅱ␇);
+Test_N(q␇ᅲ␇, q␇ᅲ␇, q␇ᅲ␇, q␇ᅲ␇, q␇ᅲ␇);
+Test_N(q␇ᅳ␇, q␇ᅳ␇, q␇ᅳ␇, q␇ᅳ␇, q␇ᅳ␇);
+Test_N(q␇ᅴ␇, q␇ᅴ␇, q␇ᅴ␇, q␇ᅴ␇, q␇ᅴ␇);
+Test_N(q␇ᅵ␇, q␇ᅵ␇, q␇ᅵ␇, q␇ᅵ␇, q␇ᅵ␇);
+Test_N(q␇¢␇, q␇¢␇, q␇¢␇, q␇¢␇, q␇¢␇);
+Test_N(q␇£␇, q␇£␇, q␇£␇, q␇£␇, q␇£␇);
+Test_N(q␇¬␇, q␇¬␇, q␇¬␇, q␇¬␇, q␇¬␇);
+Test_N(q␇ ̄␇, q␇ ̄␇, q␇ ̄␇, q␇ ̄␇, q␇ ̄␇);
+Test_N(q␇¦␇, q␇¦␇, q␇¦␇, q␇¦␇, q␇¦␇);
+Test_N(q␇¥␇, q␇¥␇, q␇¥␇, q␇¥␇, q␇¥␇);
+Test_N(q␇₩␇, q␇₩␇, q␇₩␇, q␇₩␇, q␇₩␇);
+Test_N(q␇│␇, q␇│␇, q␇│␇, q␇│␇, q␇│␇);
+Test_N(q␇←␇, q␇←␇, q␇←␇, q␇←␇, q␇←␇);
+Test_N(q␇↑␇, q␇↑␇, q␇↑␇, q␇↑␇, q␇↑␇);
+Test_N(q␇→␇, q␇→␇, q␇→␇, q␇→␇, q␇→␇);
+Test_N(q␇↓␇, q␇↓␇, q␇↓␇, q␇↓␇, q␇↓␇);
+Test_N(q␇■␇, q␇■␇, q␇■␇, q␇■␇, q␇■␇);
+Test_N(q␇○␇, q␇○␇, q␇○␇, q␇○␇, q␇○␇);
+Test_N(q␇𐞁␇, q␇𐞁␇, q␇𐞁␇, q␇ː␇, q␇ː␇);
+Test_N(q␇𐞂␇, q␇𐞂␇, q␇𐞂␇, q␇ˑ␇, q␇ˑ␇);
+Test_N(q␇𐞃␇, q␇𐞃␇, q␇𐞃␇, q␇æ␇, q␇æ␇);
+Test_N(q␇𐞄␇, q␇𐞄␇, q␇𐞄␇, q␇ʙ␇, q␇ʙ␇);
+Test_N(q␇𐞅␇, q␇𐞅␇, q␇𐞅␇, q␇ɓ␇, q␇ɓ␇);
+Test_N(q␇𐞇␇, q␇𐞇␇, q␇𐞇␇, q␇ʣ␇, q␇ʣ␇);
+Test_N(q␇𐞈␇, q␇𐞈␇, q␇𐞈␇, q␇ꭦ␇, q␇ꭦ␇);
+Test_N(q␇𐞉␇, q␇𐞉␇, q␇𐞉␇, q␇ʥ␇, q␇ʥ␇);
+Test_N(q␇𐞊␇, q␇𐞊␇, q␇𐞊␇, q␇ʤ␇, q␇ʤ␇);
+Test_N(q␇𐞋␇, q␇𐞋␇, q␇𐞋␇, q␇ɖ␇, q␇ɖ␇);
+Test_N(q␇𐞌␇, q␇𐞌␇, q␇𐞌␇, q␇ɗ␇, q␇ɗ␇);
+Test_N(q␇𐞍␇, q␇𐞍␇, q␇𐞍␇, q␇ᶑ␇, q␇ᶑ␇);
+Test_N(q␇𐞎␇, q␇𐞎␇, q␇𐞎␇, q␇ɘ␇, q␇ɘ␇);
+Test_N(q␇𐞏␇, q␇𐞏␇, q␇𐞏␇, q␇ɞ␇, q␇ɞ␇);
+Test_N(q␇𐞐␇, q␇𐞐␇, q␇𐞐␇, q␇ʩ␇, q␇ʩ␇);
+Test_N(q␇𐞑␇, q␇𐞑␇, q␇𐞑␇, q␇ɤ␇, q␇ɤ␇);
+Test_N(q␇𐞒␇, q␇𐞒␇, q␇𐞒␇, q␇ɢ␇, q␇ɢ␇);
+Test_N(q␇𐞓␇, q␇𐞓␇, q␇𐞓␇, q␇ɠ␇, q␇ɠ␇);
+Test_N(q␇𐞔␇, q␇𐞔␇, q␇𐞔␇, q␇ʛ␇, q␇ʛ␇);
+Test_N(q␇𐞕␇, q␇𐞕␇, q␇𐞕␇, q␇ħ␇, q␇ħ␇);
+Test_N(q␇𐞖␇, q␇𐞖␇, q␇𐞖␇, q␇ʜ␇, q␇ʜ␇);
+Test_N(q␇𐞗␇, q␇𐞗␇, q␇𐞗␇, q␇ɧ␇, q␇ɧ␇);
+Test_N(q␇𐞘␇, q␇𐞘␇, q␇𐞘␇, q␇ʄ␇, q␇ʄ␇);
+Test_N(q␇𐞙␇, q␇𐞙␇, q␇𐞙␇, q␇ʪ␇, q␇ʪ␇);
+Test_N(q␇𐞚␇, q␇𐞚␇, q␇𐞚␇, q␇ʫ␇, q␇ʫ␇);
+Test_N(q␇𐞛␇, q␇𐞛␇, q␇𐞛␇, q␇ɬ␇, q␇ɬ␇);
+Test_N(q␇𐞜␇, q␇𐞜␇, q␇𐞜␇, q␇𝼄␇, q␇𝼄␇);
+Test_N(q␇𐞝␇, q␇𐞝␇, q␇𐞝␇, q␇ꞎ␇, q␇ꞎ␇);
+Test_N(q␇𐞞␇, q␇𐞞␇, q␇𐞞␇, q␇ɮ␇, q␇ɮ␇);
+Test_N(q␇𐞟␇, q␇𐞟␇, q␇𐞟␇, q␇𝼅␇, q␇𝼅␇);
+Test_N(q␇𐞠␇, q␇𐞠␇, q␇𐞠␇, q␇ʎ␇, q␇ʎ␇);
+Test_N(q␇𐞡␇, q␇𐞡␇, q␇𐞡␇, q␇𝼆␇, q␇𝼆␇);
+Test_N(q␇𐞢␇, q␇𐞢␇, q␇𐞢␇, q␇ø␇, q␇ø␇);
+Test_N(q␇𐞣␇, q␇𐞣␇, q␇𐞣␇, q␇ɶ␇, q␇ɶ␇);
+Test_N(q␇𐞤␇, q␇𐞤␇, q␇𐞤␇, q␇ɷ␇, q␇ɷ␇);
+Test_N(q␇𐞥␇, q␇𐞥␇, q␇𐞥␇, q␇q␇, q␇q␇);
+Test_N(q␇𐞦␇, q␇𐞦␇, q␇𐞦␇, q␇ɺ␇, q␇ɺ␇);
+Test_N(q␇𐞧␇, q␇𐞧␇, q␇𐞧␇, q␇𝼈␇, q␇𝼈␇);
+Test_N(q␇𐞨␇, q␇𐞨␇, q␇𐞨␇, q␇ɽ␇, q␇ɽ␇);
+Test_N(q␇𐞩␇, q␇𐞩␇, q␇𐞩␇, q␇ɾ␇, q␇ɾ␇);
+Test_N(q␇𐞪␇, q␇𐞪␇, q␇𐞪␇, q␇ʀ␇, q␇ʀ␇);
+Test_N(q␇𐞫␇, q␇𐞫␇, q␇𐞫␇, q␇ʨ␇, q␇ʨ␇);
+Test_N(q␇𐞬␇, q␇𐞬␇, q␇𐞬␇, q␇ʦ␇, q␇ʦ␇);
+Test_N(q␇𐞭␇, q␇𐞭␇, q␇𐞭␇, q␇ꭧ␇, q␇ꭧ␇);
+Test_N(q␇𐞮␇, q␇𐞮␇, q␇𐞮␇, q␇ʧ␇, q␇ʧ␇);
+Test_N(q␇𐞯␇, q␇𐞯␇, q␇𐞯␇, q␇ʈ␇, q␇ʈ␇);
+Test_N(q␇𐞰␇, q␇𐞰␇, q␇𐞰␇, q␇ⱱ␇, q␇ⱱ␇);
+Test_N(q␇𐞲␇, q␇𐞲␇, q␇𐞲␇, q␇ʏ␇, q␇ʏ␇);
+Test_N(q␇𐞳␇, q␇𐞳␇, q␇𐞳␇, q␇ʡ␇, q␇ʡ␇);
+Test_N(q␇𐞴␇, q␇𐞴␇, q␇𐞴␇, q␇ʢ␇, q␇ʢ␇);
+Test_N(q␇𐞵␇, q␇𐞵␇, q␇𐞵␇, q␇ʘ␇, q␇ʘ␇);
+Test_N(q␇𐞶␇, q␇𐞶␇, q␇𐞶␇, q␇ǀ␇, q␇ǀ␇);
+Test_N(q␇𐞷␇, q␇𐞷␇, q␇𐞷␇, q␇ǁ␇, q␇ǁ␇);
+Test_N(q␇𐞸␇, q␇𐞸␇, q␇𐞸␇, q␇ǂ␇, q␇ǂ␇);
+Test_N(q␇𐞹␇, q␇𐞹␇, q␇𐞹␇, q␇𝼊␇, q␇𝼊␇);
+Test_N(q␇𐞺␇, q␇𐞺␇, q␇𐞺␇, q␇𝼞␇, q␇𝼞␇);
+Test_N(q␇𑂚␇, q␇𑂚␇, q␇𑂚␇, q␇𑂚␇, q␇𑂚␇);
+Test_N(q␇𑂜␇, q␇𑂜␇, q␇𑂜␇, q␇𑂜␇, q␇𑂜␇);
+Test_N(q␇𑂫␇, q␇𑂫␇, q␇𑂫␇, q␇𑂫␇, q␇𑂫␇);
+Test_N(q␇𑄮␇, q␇𑄮␇, q␇𑄮␇, q␇𑄮␇, q␇𑄮␇);
+Test_N(q␇𑄯␇, q␇𑄯␇, q␇𑄯␇, q␇𑄯␇, q␇𑄯␇);
+Test_N(q␇𑍋␇, q␇𑍋␇, q␇𑍋␇, q␇𑍋␇, q␇𑍋␇);
+Test_N(q␇𑍌␇, q␇𑍌␇, q␇𑍌␇, q␇𑍌␇, q␇𑍌␇);
+Test_N(q␇𑒻␇, q␇𑒻␇, q␇𑒻␇, q␇𑒻␇, q␇𑒻␇);
+Test_N(q␇𑒼␇, q␇𑒼␇, q␇𑒼␇, q␇𑒼␇, q␇𑒼␇);
+Test_N(q␇𑒾␇, q␇𑒾␇, q␇𑒾␇, q␇𑒾␇, q␇𑒾␇);
+Test_N(q␇𑖺␇, q␇𑖺␇, q␇𑖺␇, q␇𑖺␇, q␇𑖺␇);
+Test_N(q␇𑖻␇, q␇𑖻␇, q␇𑖻␇, q␇𑖻␇, q␇𑖻␇);
+Test_N(q␇𑤸␇, q␇𑤸␇, q␇𑤸␇, q␇𑤸␇, q␇𑤸␇);
+Test_N(q␇𝅗𝅥␇, q␇𝅗𝅥␇, q␇𝅗𝅥␇, q␇𝅗𝅥␇, q␇𝅗𝅥␇);
+Test_N(q␇𝅘𝅥␇, q␇𝅘𝅥␇, q␇𝅘𝅥␇, q␇𝅘𝅥␇, q␇𝅘𝅥␇);
+Test_N(q␇𝅘𝅥𝅮␇, q␇𝅘𝅥𝅮␇, q␇𝅘𝅥𝅮␇, q␇𝅘𝅥𝅮␇, q␇𝅘𝅥𝅮␇);
+Test_N(q␇𝅘𝅥𝅯␇, q␇𝅘𝅥𝅯␇, q␇𝅘𝅥𝅯␇, q␇𝅘𝅥𝅯␇, q␇𝅘𝅥𝅯␇);
+Test_N(q␇𝅘𝅥𝅰␇, q␇𝅘𝅥𝅰␇, q␇𝅘𝅥𝅰␇, q␇𝅘𝅥𝅰␇, q␇𝅘𝅥𝅰␇);
+Test_N(q␇𝅘𝅥𝅱␇, q␇𝅘𝅥𝅱␇, q␇𝅘𝅥𝅱␇, q␇𝅘𝅥𝅱␇, q␇𝅘𝅥𝅱␇);
+Test_N(q␇𝅘𝅥𝅲␇, q␇𝅘𝅥𝅲␇, q␇𝅘𝅥𝅲␇, q␇𝅘𝅥𝅲␇, q␇𝅘𝅥𝅲␇);
+Test_N(q␇𝆹𝅥␇, q␇𝆹𝅥␇, q␇𝆹𝅥␇, q␇𝆹𝅥␇, q␇𝆹𝅥␇);
+Test_N(q␇𝆺𝅥␇, q␇𝆺𝅥␇, q␇𝆺𝅥␇, q␇𝆺𝅥␇, q␇𝆺𝅥␇);
+Test_N(q␇𝆹𝅥𝅮␇, q␇𝆹𝅥𝅮␇, q␇𝆹𝅥𝅮␇, q␇𝆹𝅥𝅮␇, q␇𝆹𝅥𝅮␇);
+Test_N(q␇𝆺𝅥𝅮␇, q␇𝆺𝅥𝅮␇, q␇𝆺𝅥𝅮␇, q␇𝆺𝅥𝅮␇, q␇𝆺𝅥𝅮␇);
+Test_N(q␇𝆹𝅥𝅯␇, q␇𝆹𝅥𝅯␇, q␇𝆹𝅥𝅯␇, q␇𝆹𝅥𝅯␇, q␇𝆹𝅥𝅯␇);
+Test_N(q␇𝆺𝅥𝅯␇, q␇𝆺𝅥𝅯␇, q␇𝆺𝅥𝅯␇, q␇𝆺𝅥𝅯␇, q␇𝆺𝅥𝅯␇);
+Test_N(q␇𝐀␇, q␇𝐀␇, q␇𝐀␇, q␇A␇, q␇A␇);
+Test_N(q␇𝐁␇, q␇𝐁␇, q␇𝐁␇, q␇B␇, q␇B␇);
+Test_N(q␇𝐂␇, q␇𝐂␇, q␇𝐂␇, q␇C␇, q␇C␇);
+Test_N(q␇𝐃␇, q␇𝐃␇, q␇𝐃␇, q␇D␇, q␇D␇);
+Test_N(q␇𝐄␇, q␇𝐄␇, q␇𝐄␇, q␇E␇, q␇E␇);
+Test_N(q␇𝐅␇, q␇𝐅␇, q␇𝐅␇, q␇F␇, q␇F␇);
+Test_N(q␇𝐆␇, q␇𝐆␇, q␇𝐆␇, q␇G␇, q␇G␇);
+Test_N(q␇𝐇␇, q␇𝐇␇, q␇𝐇␇, q␇H␇, q␇H␇);
+Test_N(q␇𝐈␇, q␇𝐈␇, q␇𝐈␇, q␇I␇, q␇I␇);
+Test_N(q␇𝐉␇, q␇𝐉␇, q␇𝐉␇, q␇J␇, q␇J␇);
+Test_N(q␇𝐊␇, q␇𝐊␇, q␇𝐊␇, q␇K␇, q␇K␇);
+Test_N(q␇𝐋␇, q␇𝐋␇, q␇𝐋␇, q␇L␇, q␇L␇);
+Test_N(q␇𝐌␇, q␇𝐌␇, q␇𝐌␇, q␇M␇, q␇M␇);
+Test_N(q␇𝐍␇, q␇𝐍␇, q␇𝐍␇, q␇N␇, q␇N␇);
+Test_N(q␇𝐎␇, q␇𝐎␇, q␇𝐎␇, q␇O␇, q␇O␇);
+Test_N(q␇𝐏␇, q␇𝐏␇, q␇𝐏␇, q␇P␇, q␇P␇);
+Test_N(q␇𝐐␇, q␇𝐐␇, q␇𝐐␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝐑␇, q␇𝐑␇, q␇𝐑␇, q␇R␇, q␇R␇);
+Test_N(q␇𝐒␇, q␇𝐒␇, q␇𝐒␇, q␇S␇, q␇S␇);
+Test_N(q␇𝐓␇, q␇𝐓␇, q␇𝐓␇, q␇T␇, q␇T␇);
+Test_N(q␇𝐔␇, q␇𝐔␇, q␇𝐔␇, q␇U␇, q␇U␇);
+Test_N(q␇𝐕␇, q␇𝐕␇, q␇𝐕␇, q␇V␇, q␇V␇);
+Test_N(q␇𝐖␇, q␇𝐖␇, q␇𝐖␇, q␇W␇, q␇W␇);
+Test_N(q␇𝐗␇, q␇𝐗␇, q␇𝐗␇, q␇X␇, q␇X␇);
+Test_N(q␇𝐘␇, q␇𝐘␇, q␇𝐘␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝐙␇, q␇𝐙␇, q␇𝐙␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝐚␇, q␇𝐚␇, q␇𝐚␇, q␇a␇, q␇a␇);
+Test_N(q␇𝐛␇, q␇𝐛␇, q␇𝐛␇, q␇b␇, q␇b␇);
+Test_N(q␇𝐜␇, q␇𝐜␇, q␇𝐜␇, q␇c␇, q␇c␇);
+Test_N(q␇𝐝␇, q␇𝐝␇, q␇𝐝␇, q␇d␇, q␇d␇);
+Test_N(q␇𝐞␇, q␇𝐞␇, q␇𝐞␇, q␇e␇, q␇e␇);
+Test_N(q␇𝐟␇, q␇𝐟␇, q␇𝐟␇, q␇f␇, q␇f␇);
+Test_N(q␇𝐠␇, q␇𝐠␇, q␇𝐠␇, q␇g␇, q␇g␇);
+Test_N(q␇𝐡␇, q␇𝐡␇, q␇𝐡␇, q␇h␇, q␇h␇);
+Test_N(q␇𝐢␇, q␇𝐢␇, q␇𝐢␇, q␇i␇, q␇i␇);
+Test_N(q␇𝐣␇, q␇𝐣␇, q␇𝐣␇, q␇j␇, q␇j␇);
+Test_N(q␇𝐤␇, q␇𝐤␇, q␇𝐤␇, q␇k␇, q␇k␇);
+Test_N(q␇𝐥␇, q␇𝐥␇, q␇𝐥␇, q␇l␇, q␇l␇);
+Test_N(q␇𝐦␇, q␇𝐦␇, q␇𝐦␇, q␇m␇, q␇m␇);
+Test_N(q␇𝐧␇, q␇𝐧␇, q␇𝐧␇, q␇n␇, q␇n␇);
+Test_N(q␇𝐨␇, q␇𝐨␇, q␇𝐨␇, q␇o␇, q␇o␇);
+Test_N(q␇𝐩␇, q␇𝐩␇, q␇𝐩␇, q␇p␇, q␇p␇);
+Test_N(q␇𝐪␇, q␇𝐪␇, q␇𝐪␇, q␇q␇, q␇q␇);
+Test_N(q␇𝐫␇, q␇𝐫␇, q␇𝐫␇, q␇r␇, q␇r␇);
+Test_N(q␇𝐬␇, q␇𝐬␇, q␇𝐬␇, q␇s␇, q␇s␇);
+Test_N(q␇𝐭␇, q␇𝐭␇, q␇𝐭␇, q␇t␇, q␇t␇);
+Test_N(q␇𝐮␇, q␇𝐮␇, q␇𝐮␇, q␇u␇, q␇u␇);
+Test_N(q␇𝐯␇, q␇𝐯␇, q␇𝐯␇, q␇v␇, q␇v␇);
+Test_N(q␇𝐰␇, q␇𝐰␇, q␇𝐰␇, q␇w␇, q␇w␇);
+Test_N(q␇𝐱␇, q␇𝐱␇, q␇𝐱␇, q␇x␇, q␇x␇);
+Test_N(q␇𝐲␇, q␇𝐲␇, q␇𝐲␇, q␇y␇, q␇y␇);
+Test_N(q␇𝐳␇, q␇𝐳␇, q␇𝐳␇, q␇z␇, q␇z␇);
+Test_N(q␇𝐴␇, q␇𝐴␇, q␇𝐴␇, q␇A␇, q␇A␇);
+Test_N(q␇𝐵␇, q␇𝐵␇, q␇𝐵␇, q␇B␇, q␇B␇);
+Test_N(q␇𝐶␇, q␇𝐶␇, q␇𝐶␇, q␇C␇, q␇C␇);
+Test_N(q␇𝐷␇, q␇𝐷␇, q␇𝐷␇, q␇D␇, q␇D␇);
+Test_N(q␇𝐸␇, q␇𝐸␇, q␇𝐸␇, q␇E␇, q␇E␇);
+Test_N(q␇𝐹␇, q␇𝐹␇, q␇𝐹␇, q␇F␇, q␇F␇);
+Test_N(q␇𝐺␇, q␇𝐺␇, q␇𝐺␇, q␇G␇, q␇G␇);
+Test_N(q␇𝐻␇, q␇𝐻␇, q␇𝐻␇, q␇H␇, q␇H␇);
+Test_N(q␇𝐼␇, q␇𝐼␇, q␇𝐼␇, q␇I␇, q␇I␇);
+Test_N(q␇𝐽␇, q␇𝐽␇, q␇𝐽␇, q␇J␇, q␇J␇);
+Test_N(q␇𝐾␇, q␇𝐾␇, q␇𝐾␇, q␇K␇, q␇K␇);
+Test_N(q␇𝐿␇, q␇𝐿␇, q␇𝐿␇, q␇L␇, q␇L␇);
+Test_N(q␇𝑀␇, q␇𝑀␇, q␇𝑀␇, q␇M␇, q␇M␇);
+Test_N(q␇𝑁␇, q␇𝑁␇, q␇𝑁␇, q␇N␇, q␇N␇);
+Test_N(q␇𝑂␇, q␇𝑂␇, q␇𝑂␇, q␇O␇, q␇O␇);
+Test_N(q␇𝑃␇, q␇𝑃␇, q␇𝑃␇, q␇P␇, q␇P␇);
+Test_N(q␇𝑄␇, q␇𝑄␇, q␇𝑄␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝑅␇, q␇𝑅␇, q␇𝑅␇, q␇R␇, q␇R␇);
+Test_N(q␇𝑆␇, q␇𝑆␇, q␇𝑆␇, q␇S␇, q␇S␇);
+Test_N(q␇𝑇␇, q␇𝑇␇, q␇𝑇␇, q␇T␇, q␇T␇);
+Test_N(q␇𝑈␇, q␇𝑈␇, q␇𝑈␇, q␇U␇, q␇U␇);
+Test_N(q␇𝑉␇, q␇𝑉␇, q␇𝑉␇, q␇V␇, q␇V␇);
+Test_N(q␇𝑊␇, q␇𝑊␇, q␇𝑊␇, q␇W␇, q␇W␇);
+Test_N(q␇𝑋␇, q␇𝑋␇, q␇𝑋␇, q␇X␇, q␇X␇);
+Test_N(q␇𝑌␇, q␇𝑌␇, q␇𝑌␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝑍␇, q␇𝑍␇, q␇𝑍␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝑎␇, q␇𝑎␇, q␇𝑎␇, q␇a␇, q␇a␇);
+Test_N(q␇𝑏␇, q␇𝑏␇, q␇𝑏␇, q␇b␇, q␇b␇);
+Test_N(q␇𝑐␇, q␇𝑐␇, q␇𝑐␇, q␇c␇, q␇c␇);
+Test_N(q␇𝑑␇, q␇𝑑␇, q␇𝑑␇, q␇d␇, q␇d␇);
+Test_N(q␇𝑒␇, q␇𝑒␇, q␇𝑒␇, q␇e␇, q␇e␇);
+Test_N(q␇𝑓␇, q␇𝑓␇, q␇𝑓␇, q␇f␇, q␇f␇);
+Test_N(q␇𝑔␇, q␇𝑔␇, q␇𝑔␇, q␇g␇, q␇g␇);
+Test_N(q␇𝑖␇, q␇𝑖␇, q␇𝑖␇, q␇i␇, q␇i␇);
+Test_N(q␇𝑗␇, q␇𝑗␇, q␇𝑗␇, q␇j␇, q␇j␇);
+Test_N(q␇𝑘␇, q␇𝑘␇, q␇𝑘␇, q␇k␇, q␇k␇);
+Test_N(q␇𝑙␇, q␇𝑙␇, q␇𝑙␇, q␇l␇, q␇l␇);
+Test_N(q␇𝑚␇, q␇𝑚␇, q␇𝑚␇, q␇m␇, q␇m␇);
+Test_N(q␇𝑛␇, q␇𝑛␇, q␇𝑛␇, q␇n␇, q␇n␇);
+Test_N(q␇𝑜␇, q␇𝑜␇, q␇𝑜␇, q␇o␇, q␇o␇);
+Test_N(q␇𝑝␇, q␇𝑝␇, q␇𝑝␇, q␇p␇, q␇p␇);
+Test_N(q␇𝑞␇, q␇𝑞␇, q␇𝑞␇, q␇q␇, q␇q␇);
+Test_N(q␇𝑟␇, q␇𝑟␇, q␇𝑟␇, q␇r␇, q␇r␇);
+Test_N(q␇𝑠␇, q␇𝑠␇, q␇𝑠␇, q␇s␇, q␇s␇);
+Test_N(q␇𝑡␇, q␇𝑡␇, q␇𝑡␇, q␇t␇, q␇t␇);
+Test_N(q␇𝑢␇, q␇𝑢␇, q␇𝑢␇, q␇u␇, q␇u␇);
+Test_N(q␇𝑣␇, q␇𝑣␇, q␇𝑣␇, q␇v␇, q␇v␇);
+Test_N(q␇𝑤␇, q␇𝑤␇, q␇𝑤␇, q␇w␇, q␇w␇);
+Test_N(q␇𝑥␇, q␇𝑥␇, q␇𝑥␇, q␇x␇, q␇x␇);
+Test_N(q␇𝑦␇, q␇𝑦␇, q␇𝑦␇, q␇y␇, q␇y␇);
+Test_N(q␇𝑧␇, q␇𝑧␇, q␇𝑧␇, q␇z␇, q␇z␇);
+Test_N(q␇𝑨␇, q␇𝑨␇, q␇𝑨␇, q␇A␇, q␇A␇);
+Test_N(q␇𝑩␇, q␇𝑩␇, q␇𝑩␇, q␇B␇, q␇B␇);
+Test_N(q␇𝑪␇, q␇𝑪␇, q␇𝑪␇, q␇C␇, q␇C␇);
+Test_N(q␇𝑫␇, q␇𝑫␇, q␇𝑫␇, q␇D␇, q␇D␇);
+Test_N(q␇𝑬␇, q␇𝑬␇, q␇𝑬␇, q␇E␇, q␇E␇);
+Test_N(q␇𝑭␇, q␇𝑭␇, q␇𝑭␇, q␇F␇, q␇F␇);
+Test_N(q␇𝑮␇, q␇𝑮␇, q␇𝑮␇, q␇G␇, q␇G␇);
+Test_N(q␇𝑯␇, q␇𝑯␇, q␇𝑯␇, q␇H␇, q␇H␇);
+Test_N(q␇𝑰␇, q␇𝑰␇, q␇𝑰␇, q␇I␇, q␇I␇);
+Test_N(q␇𝑱␇, q␇𝑱␇, q␇𝑱␇, q␇J␇, q␇J␇);
+Test_N(q␇𝑲␇, q␇𝑲␇, q␇𝑲␇, q␇K␇, q␇K␇);
+Test_N(q␇𝑳␇, q␇𝑳␇, q␇𝑳␇, q␇L␇, q␇L␇);
+Test_N(q␇𝑴␇, q␇𝑴␇, q␇𝑴␇, q␇M␇, q␇M␇);
+Test_N(q␇𝑵␇, q␇𝑵␇, q␇𝑵␇, q␇N␇, q␇N␇);
+Test_N(q␇𝑶␇, q␇𝑶␇, q␇𝑶␇, q␇O␇, q␇O␇);
+Test_N(q␇𝑷␇, q␇𝑷␇, q␇𝑷␇, q␇P␇, q␇P␇);
+Test_N(q␇𝑸␇, q␇𝑸␇, q␇𝑸␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝑹␇, q␇𝑹␇, q␇𝑹␇, q␇R␇, q␇R␇);
+Test_N(q␇𝑺␇, q␇𝑺␇, q␇𝑺␇, q␇S␇, q␇S␇);
+Test_N(q␇𝑻␇, q␇𝑻␇, q␇𝑻␇, q␇T␇, q␇T␇);
+Test_N(q␇𝑼␇, q␇𝑼␇, q␇𝑼␇, q␇U␇, q␇U␇);
+Test_N(q␇𝑽␇, q␇𝑽␇, q␇𝑽␇, q␇V␇, q␇V␇);
+Test_N(q␇𝑾␇, q␇𝑾␇, q␇𝑾␇, q␇W␇, q␇W␇);
+Test_N(q␇𝑿␇, q␇𝑿␇, q␇𝑿␇, q␇X␇, q␇X␇);
+Test_N(q␇𝒀␇, q␇𝒀␇, q␇𝒀␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝒁␇, q␇𝒁␇, q␇𝒁␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝒂␇, q␇𝒂␇, q␇𝒂␇, q␇a␇, q␇a␇);
+Test_N(q␇𝒃␇, q␇𝒃␇, q␇𝒃␇, q␇b␇, q␇b␇);
+Test_N(q␇𝒄␇, q␇𝒄␇, q␇𝒄␇, q␇c␇, q␇c␇);
+Test_N(q␇𝒅␇, q␇𝒅␇, q␇𝒅␇, q␇d␇, q␇d␇);
+Test_N(q␇𝒆␇, q␇𝒆␇, q␇𝒆␇, q␇e␇, q␇e␇);
+Test_N(q␇𝒇␇, q␇𝒇␇, q␇𝒇␇, q␇f␇, q␇f␇);
+Test_N(q␇𝒈␇, q␇𝒈␇, q␇𝒈␇, q␇g␇, q␇g␇);
+Test_N(q␇𝒉␇, q␇𝒉␇, q␇𝒉␇, q␇h␇, q␇h␇);
+Test_N(q␇𝒊␇, q␇𝒊␇, q␇𝒊␇, q␇i␇, q␇i␇);
+Test_N(q␇𝒋␇, q␇𝒋␇, q␇𝒋␇, q␇j␇, q␇j␇);
+Test_N(q␇𝒌␇, q␇𝒌␇, q␇𝒌␇, q␇k␇, q␇k␇);
+Test_N(q␇𝒍␇, q␇𝒍␇, q␇𝒍␇, q␇l␇, q␇l␇);
+Test_N(q␇𝒎␇, q␇𝒎␇, q␇𝒎␇, q␇m␇, q␇m␇);
+Test_N(q␇𝒏␇, q␇𝒏␇, q␇𝒏␇, q␇n␇, q␇n␇);
+Test_N(q␇𝒐␇, q␇𝒐␇, q␇𝒐␇, q␇o␇, q␇o␇);
+Test_N(q␇𝒑␇, q␇𝒑␇, q␇𝒑␇, q␇p␇, q␇p␇);
+Test_N(q␇𝒒␇, q␇𝒒␇, q␇𝒒␇, q␇q␇, q␇q␇);
+Test_N(q␇𝒓␇, q␇𝒓␇, q␇𝒓␇, q␇r␇, q␇r␇);
+Test_N(q␇𝒔␇, q␇𝒔␇, q␇𝒔␇, q␇s␇, q␇s␇);
+Test_N(q␇𝒕␇, q␇𝒕␇, q␇𝒕␇, q␇t␇, q␇t␇);
+Test_N(q␇𝒖␇, q␇𝒖␇, q␇𝒖␇, q␇u␇, q␇u␇);
+Test_N(q␇𝒗␇, q␇𝒗␇, q␇𝒗␇, q␇v␇, q␇v␇);
+Test_N(q␇𝒘␇, q␇𝒘␇, q␇𝒘␇, q␇w␇, q␇w␇);
+Test_N(q␇𝒙␇, q␇𝒙␇, q␇𝒙␇, q␇x␇, q␇x␇);
+Test_N(q␇𝒚␇, q␇𝒚␇, q␇𝒚␇, q␇y␇, q␇y␇);
+Test_N(q␇𝒛␇, q␇𝒛␇, q␇𝒛␇, q␇z␇, q␇z␇);
+Test_N(q␇𝒜␇, q␇𝒜␇, q␇𝒜␇, q␇A␇, q␇A␇);
+Test_N(q␇𝒞␇, q␇𝒞␇, q␇𝒞␇, q␇C␇, q␇C␇);
+Test_N(q␇𝒟␇, q␇𝒟␇, q␇𝒟␇, q␇D␇, q␇D␇);
+Test_N(q␇𝒢␇, q␇𝒢␇, q␇𝒢␇, q␇G␇, q␇G␇);
+Test_N(q␇𝒥␇, q␇𝒥␇, q␇𝒥␇, q␇J␇, q␇J␇);
+Test_N(q␇𝒦␇, q␇𝒦␇, q␇𝒦␇, q␇K␇, q␇K␇);
+Test_N(q␇𝒩␇, q␇𝒩␇, q␇𝒩␇, q␇N␇, q␇N␇);
+Test_N(q␇𝒪␇, q␇𝒪␇, q␇𝒪␇, q␇O␇, q␇O␇);
+Test_N(q␇𝒫␇, q␇𝒫␇, q␇𝒫␇, q␇P␇, q␇P␇);
+Test_N(q␇𝒬␇, q␇𝒬␇, q␇𝒬␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝒮␇, q␇𝒮␇, q␇𝒮␇, q␇S␇, q␇S␇);
+Test_N(q␇𝒯␇, q␇𝒯␇, q␇𝒯␇, q␇T␇, q␇T␇);
+Test_N(q␇𝒰␇, q␇𝒰␇, q␇𝒰␇, q␇U␇, q␇U␇);
+Test_N(q␇𝒱␇, q␇𝒱␇, q␇𝒱␇, q␇V␇, q␇V␇);
+Test_N(q␇𝒲␇, q␇𝒲␇, q␇𝒲␇, q␇W␇, q␇W␇);
+Test_N(q␇𝒳␇, q␇𝒳␇, q␇𝒳␇, q␇X␇, q␇X␇);
+Test_N(q␇𝒴␇, q␇𝒴␇, q␇𝒴␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝒵␇, q␇𝒵␇, q␇𝒵␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝒶␇, q␇𝒶␇, q␇𝒶␇, q␇a␇, q␇a␇);
+Test_N(q␇𝒷␇, q␇𝒷␇, q␇𝒷␇, q␇b␇, q␇b␇);
+Test_N(q␇𝒸␇, q␇𝒸␇, q␇𝒸␇, q␇c␇, q␇c␇);
+Test_N(q␇𝒹␇, q␇𝒹␇, q␇𝒹␇, q␇d␇, q␇d␇);
+Test_N(q␇𝒻␇, q␇𝒻␇, q␇𝒻␇, q␇f␇, q␇f␇);
+Test_N(q␇𝒽␇, q␇𝒽␇, q␇𝒽␇, q␇h␇, q␇h␇);
+Test_N(q␇𝒾␇, q␇𝒾␇, q␇𝒾␇, q␇i␇, q␇i␇);
+Test_N(q␇𝒿␇, q␇𝒿␇, q␇𝒿␇, q␇j␇, q␇j␇);
+Test_N(q␇𝓀␇, q␇𝓀␇, q␇𝓀␇, q␇k␇, q␇k␇);
+Test_N(q␇𝓁␇, q␇𝓁␇, q␇𝓁␇, q␇l␇, q␇l␇);
+Test_N(q␇𝓂␇, q␇𝓂␇, q␇𝓂␇, q␇m␇, q␇m␇);
+Test_N(q␇𝓃␇, q␇𝓃␇, q␇𝓃␇, q␇n␇, q␇n␇);
+Test_N(q␇𝓅␇, q␇𝓅␇, q␇𝓅␇, q␇p␇, q␇p␇);
+Test_N(q␇𝓆␇, q␇𝓆␇, q␇𝓆␇, q␇q␇, q␇q␇);
+Test_N(q␇𝓇␇, q␇𝓇␇, q␇𝓇␇, q␇r␇, q␇r␇);
+Test_N(q␇𝓈␇, q␇𝓈␇, q␇𝓈␇, q␇s␇, q␇s␇);
+Test_N(q␇𝓉␇, q␇𝓉␇, q␇𝓉␇, q␇t␇, q␇t␇);
+Test_N(q␇𝓊␇, q␇𝓊␇, q␇𝓊␇, q␇u␇, q␇u␇);
+Test_N(q␇𝓋␇, q␇𝓋␇, q␇𝓋␇, q␇v␇, q␇v␇);
+Test_N(q␇𝓌␇, q␇𝓌␇, q␇𝓌␇, q␇w␇, q␇w␇);
+Test_N(q␇𝓍␇, q␇𝓍␇, q␇𝓍␇, q␇x␇, q␇x␇);
+Test_N(q␇𝓎␇, q␇𝓎␇, q␇𝓎␇, q␇y␇, q␇y␇);
+Test_N(q␇𝓏␇, q␇𝓏␇, q␇𝓏␇, q␇z␇, q␇z␇);
+Test_N(q␇𝓐␇, q␇𝓐␇, q␇𝓐␇, q␇A␇, q␇A␇);
+Test_N(q␇𝓑␇, q␇𝓑␇, q␇𝓑␇, q␇B␇, q␇B␇);
+Test_N(q␇𝓒␇, q␇𝓒␇, q␇𝓒␇, q␇C␇, q␇C␇);
+Test_N(q␇𝓓␇, q␇𝓓␇, q␇𝓓␇, q␇D␇, q␇D␇);
+Test_N(q␇𝓔␇, q␇𝓔␇, q␇𝓔␇, q␇E␇, q␇E␇);
+Test_N(q␇𝓕␇, q␇𝓕␇, q␇𝓕␇, q␇F␇, q␇F␇);
+Test_N(q␇𝓖␇, q␇𝓖␇, q␇𝓖␇, q␇G␇, q␇G␇);
+Test_N(q␇𝓗␇, q␇𝓗␇, q␇𝓗␇, q␇H␇, q␇H␇);
+Test_N(q␇𝓘␇, q␇𝓘␇, q␇𝓘␇, q␇I␇, q␇I␇);
+Test_N(q␇𝓙␇, q␇𝓙␇, q␇𝓙␇, q␇J␇, q␇J␇);
+Test_N(q␇𝓚␇, q␇𝓚␇, q␇𝓚␇, q␇K␇, q␇K␇);
+Test_N(q␇𝓛␇, q␇𝓛␇, q␇𝓛␇, q␇L␇, q␇L␇);
+Test_N(q␇𝓜␇, q␇𝓜␇, q␇𝓜␇, q␇M␇, q␇M␇);
+Test_N(q␇𝓝␇, q␇𝓝␇, q␇𝓝␇, q␇N␇, q␇N␇);
+Test_N(q␇𝓞␇, q␇𝓞␇, q␇𝓞␇, q␇O␇, q␇O␇);
+Test_N(q␇𝓟␇, q␇𝓟␇, q␇𝓟␇, q␇P␇, q␇P␇);
+Test_N(q␇𝓠␇, q␇𝓠␇, q␇𝓠␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝓡␇, q␇𝓡␇, q␇𝓡␇, q␇R␇, q␇R␇);
+Test_N(q␇𝓢␇, q␇𝓢␇, q␇𝓢␇, q␇S␇, q␇S␇);
+Test_N(q␇𝓣␇, q␇𝓣␇, q␇𝓣␇, q␇T␇, q␇T␇);
+Test_N(q␇𝓤␇, q␇𝓤␇, q␇𝓤␇, q␇U␇, q␇U␇);
+Test_N(q␇𝓥␇, q␇𝓥␇, q␇𝓥␇, q␇V␇, q␇V␇);
+Test_N(q␇𝓦␇, q␇𝓦␇, q␇𝓦␇, q␇W␇, q␇W␇);
+Test_N(q␇𝓧␇, q␇𝓧␇, q␇𝓧␇, q␇X␇, q␇X␇);
+Test_N(q␇𝓨␇, q␇𝓨␇, q␇𝓨␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝓩␇, q␇𝓩␇, q␇𝓩␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝓪␇, q␇𝓪␇, q␇𝓪␇, q␇a␇, q␇a␇);
+Test_N(q␇𝓫␇, q␇𝓫␇, q␇𝓫␇, q␇b␇, q␇b␇);
+Test_N(q␇𝓬␇, q␇𝓬␇, q␇𝓬␇, q␇c␇, q␇c␇);
+Test_N(q␇𝓭␇, q␇𝓭␇, q␇𝓭␇, q␇d␇, q␇d␇);
+Test_N(q␇𝓮␇, q␇𝓮␇, q␇𝓮␇, q␇e␇, q␇e␇);
+Test_N(q␇𝓯␇, q␇𝓯␇, q␇𝓯␇, q␇f␇, q␇f␇);
+Test_N(q␇𝓰␇, q␇𝓰␇, q␇𝓰␇, q␇g␇, q␇g␇);
+Test_N(q␇𝓱␇, q␇𝓱␇, q␇𝓱␇, q␇h␇, q␇h␇);
+Test_N(q␇𝓲␇, q␇𝓲␇, q␇𝓲␇, q␇i␇, q␇i␇);
+Test_N(q␇𝓳␇, q␇𝓳␇, q␇𝓳␇, q␇j␇, q␇j␇);
+Test_N(q␇𝓴␇, q␇𝓴␇, q␇𝓴␇, q␇k␇, q␇k␇);
+Test_N(q␇𝓵␇, q␇𝓵␇, q␇𝓵␇, q␇l␇, q␇l␇);
+Test_N(q␇𝓶␇, q␇𝓶␇, q␇𝓶␇, q␇m␇, q␇m␇);
+Test_N(q␇𝓷␇, q␇𝓷␇, q␇𝓷␇, q␇n␇, q␇n␇);
+Test_N(q␇𝓸␇, q␇𝓸␇, q␇𝓸␇, q␇o␇, q␇o␇);
+Test_N(q␇𝓹␇, q␇𝓹␇, q␇𝓹␇, q␇p␇, q␇p␇);
+Test_N(q␇𝓺␇, q␇𝓺␇, q␇𝓺␇, q␇q␇, q␇q␇);
+Test_N(q␇𝓻␇, q␇𝓻␇, q␇𝓻␇, q␇r␇, q␇r␇);
+Test_N(q␇𝓼␇, q␇𝓼␇, q␇𝓼␇, q␇s␇, q␇s␇);
+Test_N(q␇𝓽␇, q␇𝓽␇, q␇𝓽␇, q␇t␇, q␇t␇);
+Test_N(q␇𝓾␇, q␇𝓾␇, q␇𝓾␇, q␇u␇, q␇u␇);
+Test_N(q␇𝓿␇, q␇𝓿␇, q␇𝓿␇, q␇v␇, q␇v␇);
+Test_N(q␇𝔀␇, q␇𝔀␇, q␇𝔀␇, q␇w␇, q␇w␇);
+Test_N(q␇𝔁␇, q␇𝔁␇, q␇𝔁␇, q␇x␇, q␇x␇);
+Test_N(q␇𝔂␇, q␇𝔂␇, q␇𝔂␇, q␇y␇, q␇y␇);
+Test_N(q␇𝔃␇, q␇𝔃␇, q␇𝔃␇, q␇z␇, q␇z␇);
+Test_N(q␇𝔄␇, q␇𝔄␇, q␇𝔄␇, q␇A␇, q␇A␇);
+Test_N(q␇𝔅␇, q␇𝔅␇, q␇𝔅␇, q␇B␇, q␇B␇);
+Test_N(q␇𝔇␇, q␇𝔇␇, q␇𝔇␇, q␇D␇, q␇D␇);
+Test_N(q␇𝔈␇, q␇𝔈␇, q␇𝔈␇, q␇E␇, q␇E␇);
+Test_N(q␇𝔉␇, q␇𝔉␇, q␇𝔉␇, q␇F␇, q␇F␇);
+Test_N(q␇𝔊␇, q␇𝔊␇, q␇𝔊␇, q␇G␇, q␇G␇);
+Test_N(q␇𝔍␇, q␇𝔍␇, q␇𝔍␇, q␇J␇, q␇J␇);
+Test_N(q␇𝔎␇, q␇𝔎␇, q␇𝔎␇, q␇K␇, q␇K␇);
+Test_N(q␇𝔏␇, q␇𝔏␇, q␇𝔏␇, q␇L␇, q␇L␇);
+Test_N(q␇𝔐␇, q␇𝔐␇, q␇𝔐␇, q␇M␇, q␇M␇);
+Test_N(q␇𝔑␇, q␇𝔑␇, q␇𝔑␇, q␇N␇, q␇N␇);
+Test_N(q␇𝔒␇, q␇𝔒␇, q␇𝔒␇, q␇O␇, q␇O␇);
+Test_N(q␇𝔓␇, q␇𝔓␇, q␇𝔓␇, q␇P␇, q␇P␇);
+Test_N(q␇𝔔␇, q␇𝔔␇, q␇𝔔␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝔖␇, q␇𝔖␇, q␇𝔖␇, q␇S␇, q␇S␇);
+Test_N(q␇𝔗␇, q␇𝔗␇, q␇𝔗␇, q␇T␇, q␇T␇);
+Test_N(q␇𝔘␇, q␇𝔘␇, q␇𝔘␇, q␇U␇, q␇U␇);
+Test_N(q␇𝔙␇, q␇𝔙␇, q␇𝔙␇, q␇V␇, q␇V␇);
+Test_N(q␇𝔚␇, q␇𝔚␇, q␇𝔚␇, q␇W␇, q␇W␇);
+Test_N(q␇𝔛␇, q␇𝔛␇, q␇𝔛␇, q␇X␇, q␇X␇);
+Test_N(q␇𝔜␇, q␇𝔜␇, q␇𝔜␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝔞␇, q␇𝔞␇, q␇𝔞␇, q␇a␇, q␇a␇);
+Test_N(q␇𝔟␇, q␇𝔟␇, q␇𝔟␇, q␇b␇, q␇b␇);
+Test_N(q␇𝔠␇, q␇𝔠␇, q␇𝔠␇, q␇c␇, q␇c␇);
+Test_N(q␇𝔡␇, q␇𝔡␇, q␇𝔡␇, q␇d␇, q␇d␇);
+Test_N(q␇𝔢␇, q␇𝔢␇, q␇𝔢␇, q␇e␇, q␇e␇);
+Test_N(q␇𝔣␇, q␇𝔣␇, q␇𝔣␇, q␇f␇, q␇f␇);
+Test_N(q␇𝔤␇, q␇𝔤␇, q␇𝔤␇, q␇g␇, q␇g␇);
+Test_N(q␇𝔥␇, q␇𝔥␇, q␇𝔥␇, q␇h␇, q␇h␇);
+Test_N(q␇𝔦␇, q␇𝔦␇, q␇𝔦␇, q␇i␇, q␇i␇);
+Test_N(q␇𝔧␇, q␇𝔧␇, q␇𝔧␇, q␇j␇, q␇j␇);
+Test_N(q␇𝔨␇, q␇𝔨␇, q␇𝔨␇, q␇k␇, q␇k␇);
+Test_N(q␇𝔩␇, q␇𝔩␇, q␇𝔩␇, q␇l␇, q␇l␇);
+Test_N(q␇𝔪␇, q␇𝔪␇, q␇𝔪␇, q␇m␇, q␇m␇);
+Test_N(q␇𝔫␇, q␇𝔫␇, q␇𝔫␇, q␇n␇, q␇n␇);
+Test_N(q␇𝔬␇, q␇𝔬␇, q␇𝔬␇, q␇o␇, q␇o␇);
+Test_N(q␇𝔭␇, q␇𝔭␇, q␇𝔭␇, q␇p␇, q␇p␇);
+Test_N(q␇𝔮␇, q␇𝔮␇, q␇𝔮␇, q␇q␇, q␇q␇);
+Test_N(q␇𝔯␇, q␇𝔯␇, q␇𝔯␇, q␇r␇, q␇r␇);
+Test_N(q␇𝔰␇, q␇𝔰␇, q␇𝔰␇, q␇s␇, q␇s␇);
+Test_N(q␇𝔱␇, q␇𝔱␇, q␇𝔱␇, q␇t␇, q␇t␇);
+Test_N(q␇𝔲␇, q␇𝔲␇, q␇𝔲␇, q␇u␇, q␇u␇);
+Test_N(q␇𝔳␇, q␇𝔳␇, q␇𝔳␇, q␇v␇, q␇v␇);
+Test_N(q␇𝔴␇, q␇𝔴␇, q␇𝔴␇, q␇w␇, q␇w␇);
+Test_N(q␇𝔵␇, q␇𝔵␇, q␇𝔵␇, q␇x␇, q␇x␇);
+Test_N(q␇𝔶␇, q␇𝔶␇, q␇𝔶␇, q␇y␇, q␇y␇);
+Test_N(q␇𝔷␇, q␇𝔷␇, q␇𝔷␇, q␇z␇, q␇z␇);
+Test_N(q␇𝔸␇, q␇𝔸␇, q␇𝔸␇, q␇A␇, q␇A␇);
+Test_N(q␇𝔹␇, q␇𝔹␇, q␇𝔹␇, q␇B␇, q␇B␇);
+Test_N(q␇𝔻␇, q␇𝔻␇, q␇𝔻␇, q␇D␇, q␇D␇);
+Test_N(q␇𝔼␇, q␇𝔼␇, q␇𝔼␇, q␇E␇, q␇E␇);
+Test_N(q␇𝔽␇, q␇𝔽␇, q␇𝔽␇, q␇F␇, q␇F␇);
+Test_N(q␇𝔾␇, q␇𝔾␇, q␇𝔾␇, q␇G␇, q␇G␇);
+Test_N(q␇𝕀␇, q␇𝕀␇, q␇𝕀␇, q␇I␇, q␇I␇);
+Test_N(q␇𝕁␇, q␇𝕁␇, q␇𝕁␇, q␇J␇, q␇J␇);
+Test_N(q␇𝕂␇, q␇𝕂␇, q␇𝕂␇, q␇K␇, q␇K␇);
+Test_N(q␇𝕃␇, q␇𝕃␇, q␇𝕃␇, q␇L␇, q␇L␇);
+Test_N(q␇𝕄␇, q␇𝕄␇, q␇𝕄␇, q␇M␇, q␇M␇);
+Test_N(q␇𝕆␇, q␇𝕆␇, q␇𝕆␇, q␇O␇, q␇O␇);
+Test_N(q␇𝕊␇, q␇𝕊␇, q␇𝕊␇, q␇S␇, q␇S␇);
+Test_N(q␇𝕋␇, q␇𝕋␇, q␇𝕋␇, q␇T␇, q␇T␇);
+Test_N(q␇𝕌␇, q␇𝕌␇, q␇𝕌␇, q␇U␇, q␇U␇);
+Test_N(q␇𝕍␇, q␇𝕍␇, q␇𝕍␇, q␇V␇, q␇V␇);
+Test_N(q␇𝕎␇, q␇𝕎␇, q␇𝕎␇, q␇W␇, q␇W␇);
+Test_N(q␇𝕏␇, q␇𝕏␇, q␇𝕏␇, q␇X␇, q␇X␇);
+Test_N(q␇𝕐␇, q␇𝕐␇, q␇𝕐␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝕒␇, q␇𝕒␇, q␇𝕒␇, q␇a␇, q␇a␇);
+Test_N(q␇𝕓␇, q␇𝕓␇, q␇𝕓␇, q␇b␇, q␇b␇);
+Test_N(q␇𝕔␇, q␇𝕔␇, q␇𝕔␇, q␇c␇, q␇c␇);
+Test_N(q␇𝕕␇, q␇𝕕␇, q␇𝕕␇, q␇d␇, q␇d␇);
+Test_N(q␇𝕖␇, q␇𝕖␇, q␇𝕖␇, q␇e␇, q␇e␇);
+Test_N(q␇𝕗␇, q␇𝕗␇, q␇𝕗␇, q␇f␇, q␇f␇);
+Test_N(q␇𝕘␇, q␇𝕘␇, q␇𝕘␇, q␇g␇, q␇g␇);
+Test_N(q␇𝕙␇, q␇𝕙␇, q␇𝕙␇, q␇h␇, q␇h␇);
+Test_N(q␇𝕚␇, q␇𝕚␇, q␇𝕚␇, q␇i␇, q␇i␇);
+Test_N(q␇𝕛␇, q␇𝕛␇, q␇𝕛␇, q␇j␇, q␇j␇);
+Test_N(q␇𝕜␇, q␇𝕜␇, q␇𝕜␇, q␇k␇, q␇k␇);
+Test_N(q␇𝕝␇, q␇𝕝␇, q␇𝕝␇, q␇l␇, q␇l␇);
+Test_N(q␇𝕞␇, q␇𝕞␇, q␇𝕞␇, q␇m␇, q␇m␇);
+Test_N(q␇𝕟␇, q␇𝕟␇, q␇𝕟␇, q␇n␇, q␇n␇);
+Test_N(q␇𝕠␇, q␇𝕠␇, q␇𝕠␇, q␇o␇, q␇o␇);
+Test_N(q␇𝕡␇, q␇𝕡␇, q␇𝕡␇, q␇p␇, q␇p␇);
+Test_N(q␇𝕢␇, q␇𝕢␇, q␇𝕢␇, q␇q␇, q␇q␇);
+Test_N(q␇𝕣␇, q␇𝕣␇, q␇𝕣␇, q␇r␇, q␇r␇);
+Test_N(q␇𝕤␇, q␇𝕤␇, q␇𝕤␇, q␇s␇, q␇s␇);
+Test_N(q␇𝕥␇, q␇𝕥␇, q␇𝕥␇, q␇t␇, q␇t␇);
+Test_N(q␇𝕦␇, q␇𝕦␇, q␇𝕦␇, q␇u␇, q␇u␇);
+Test_N(q␇𝕧␇, q␇𝕧␇, q␇𝕧␇, q␇v␇, q␇v␇);
+Test_N(q␇𝕨␇, q␇𝕨␇, q␇𝕨␇, q␇w␇, q␇w␇);
+Test_N(q␇𝕩␇, q␇𝕩␇, q␇𝕩␇, q␇x␇, q␇x␇);
+Test_N(q␇𝕪␇, q␇𝕪␇, q␇𝕪␇, q␇y␇, q␇y␇);
+Test_N(q␇𝕫␇, q␇𝕫␇, q␇𝕫␇, q␇z␇, q␇z␇);
+Test_N(q␇𝕬␇, q␇𝕬␇, q␇𝕬␇, q␇A␇, q␇A␇);
+Test_N(q␇𝕭␇, q␇𝕭␇, q␇𝕭␇, q␇B␇, q␇B␇);
+Test_N(q␇𝕮␇, q␇𝕮␇, q␇𝕮␇, q␇C␇, q␇C␇);
+Test_N(q␇𝕯␇, q␇𝕯␇, q␇𝕯␇, q␇D␇, q␇D␇);
+Test_N(q␇𝕰␇, q␇𝕰␇, q␇𝕰␇, q␇E␇, q␇E␇);
+Test_N(q␇𝕱␇, q␇𝕱␇, q␇𝕱␇, q␇F␇, q␇F␇);
+Test_N(q␇𝕲␇, q␇𝕲␇, q␇𝕲␇, q␇G␇, q␇G␇);
+Test_N(q␇𝕳␇, q␇𝕳␇, q␇𝕳␇, q␇H␇, q␇H␇);
+Test_N(q␇𝕴␇, q␇𝕴␇, q␇𝕴␇, q␇I␇, q␇I␇);
+Test_N(q␇𝕵␇, q␇𝕵␇, q␇𝕵␇, q␇J␇, q␇J␇);
+Test_N(q␇𝕶␇, q␇𝕶␇, q␇𝕶␇, q␇K␇, q␇K␇);
+Test_N(q␇𝕷␇, q␇𝕷␇, q␇𝕷␇, q␇L␇, q␇L␇);
+Test_N(q␇𝕸␇, q␇𝕸␇, q␇𝕸␇, q␇M␇, q␇M␇);
+Test_N(q␇𝕹␇, q␇𝕹␇, q␇𝕹␇, q␇N␇, q␇N␇);
+Test_N(q␇𝕺␇, q␇𝕺␇, q␇𝕺␇, q␇O␇, q␇O␇);
+Test_N(q␇𝕻␇, q␇𝕻␇, q␇𝕻␇, q␇P␇, q␇P␇);
+Test_N(q␇𝕼␇, q␇𝕼␇, q␇𝕼␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝕽␇, q␇𝕽␇, q␇𝕽␇, q␇R␇, q␇R␇);
+Test_N(q␇𝕾␇, q␇𝕾␇, q␇𝕾␇, q␇S␇, q␇S␇);
+Test_N(q␇𝕿␇, q␇𝕿␇, q␇𝕿␇, q␇T␇, q␇T␇);
+Test_N(q␇𝖀␇, q␇𝖀␇, q␇𝖀␇, q␇U␇, q␇U␇);
+Test_N(q␇𝖁␇, q␇𝖁␇, q␇𝖁␇, q␇V␇, q␇V␇);
+Test_N(q␇𝖂␇, q␇𝖂␇, q␇𝖂␇, q␇W␇, q␇W␇);
+Test_N(q␇𝖃␇, q␇𝖃␇, q␇𝖃␇, q␇X␇, q␇X␇);
+Test_N(q␇𝖄␇, q␇𝖄␇, q␇𝖄␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝖅␇, q␇𝖅␇, q␇𝖅␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝖆␇, q␇𝖆␇, q␇𝖆␇, q␇a␇, q␇a␇);
+Test_N(q␇𝖇␇, q␇𝖇␇, q␇𝖇␇, q␇b␇, q␇b␇);
+Test_N(q␇𝖈␇, q␇𝖈␇, q␇𝖈␇, q␇c␇, q␇c␇);
+Test_N(q␇𝖉␇, q␇𝖉␇, q␇𝖉␇, q␇d␇, q␇d␇);
+Test_N(q␇𝖊␇, q␇𝖊␇, q␇𝖊␇, q␇e␇, q␇e␇);
+Test_N(q␇𝖋␇, q␇𝖋␇, q␇𝖋␇, q␇f␇, q␇f␇);
+Test_N(q␇𝖌␇, q␇𝖌␇, q␇𝖌␇, q␇g␇, q␇g␇);
+Test_N(q␇𝖍␇, q␇𝖍␇, q␇𝖍␇, q␇h␇, q␇h␇);
+Test_N(q␇𝖎␇, q␇𝖎␇, q␇𝖎␇, q␇i␇, q␇i␇);
+Test_N(q␇𝖏␇, q␇𝖏␇, q␇𝖏␇, q␇j␇, q␇j␇);
+Test_N(q␇𝖐␇, q␇𝖐␇, q␇𝖐␇, q␇k␇, q␇k␇);
+Test_N(q␇𝖑␇, q␇𝖑␇, q␇𝖑␇, q␇l␇, q␇l␇);
+Test_N(q␇𝖒␇, q␇𝖒␇, q␇𝖒␇, q␇m␇, q␇m␇);
+Test_N(q␇𝖓␇, q␇𝖓␇, q␇𝖓␇, q␇n␇, q␇n␇);
+Test_N(q␇𝖔␇, q␇𝖔␇, q␇𝖔␇, q␇o␇, q␇o␇);
+Test_N(q␇𝖕␇, q␇𝖕␇, q␇𝖕␇, q␇p␇, q␇p␇);
+Test_N(q␇𝖖␇, q␇𝖖␇, q␇𝖖␇, q␇q␇, q␇q␇);
+Test_N(q␇𝖗␇, q␇𝖗␇, q␇𝖗␇, q␇r␇, q␇r␇);
+Test_N(q␇𝖘␇, q␇𝖘␇, q␇𝖘␇, q␇s␇, q␇s␇);
+Test_N(q␇𝖙␇, q␇𝖙␇, q␇𝖙␇, q␇t␇, q␇t␇);
+Test_N(q␇𝖚␇, q␇𝖚␇, q␇𝖚␇, q␇u␇, q␇u␇);
+Test_N(q␇𝖛␇, q␇𝖛␇, q␇𝖛␇, q␇v␇, q␇v␇);
+Test_N(q␇𝖜␇, q␇𝖜␇, q␇𝖜␇, q␇w␇, q␇w␇);
+Test_N(q␇𝖝␇, q␇𝖝␇, q␇𝖝␇, q␇x␇, q␇x␇);
+Test_N(q␇𝖞␇, q␇𝖞␇, q␇𝖞␇, q␇y␇, q␇y␇);
+Test_N(q␇𝖟␇, q␇𝖟␇, q␇𝖟␇, q␇z␇, q␇z␇);
+Test_N(q␇𝖠␇, q␇𝖠␇, q␇𝖠␇, q␇A␇, q␇A␇);
+Test_N(q␇𝖡␇, q␇𝖡␇, q␇𝖡␇, q␇B␇, q␇B␇);
+Test_N(q␇𝖢␇, q␇𝖢␇, q␇𝖢␇, q␇C␇, q␇C␇);
+Test_N(q␇𝖣␇, q␇𝖣␇, q␇𝖣␇, q␇D␇, q␇D␇);
+Test_N(q␇𝖤␇, q␇𝖤␇, q␇𝖤␇, q␇E␇, q␇E␇);
+Test_N(q␇𝖥␇, q␇𝖥␇, q␇𝖥␇, q␇F␇, q␇F␇);
+Test_N(q␇𝖦␇, q␇𝖦␇, q␇𝖦␇, q␇G␇, q␇G␇);
+Test_N(q␇𝖧␇, q␇𝖧␇, q␇𝖧␇, q␇H␇, q␇H␇);
+Test_N(q␇𝖨␇, q␇𝖨␇, q␇𝖨␇, q␇I␇, q␇I␇);
+Test_N(q␇𝖩␇, q␇𝖩␇, q␇𝖩␇, q␇J␇, q␇J␇);
+Test_N(q␇𝖪␇, q␇𝖪␇, q␇𝖪␇, q␇K␇, q␇K␇);
+Test_N(q␇𝖫␇, q␇𝖫␇, q␇𝖫␇, q␇L␇, q␇L␇);
+Test_N(q␇𝖬␇, q␇𝖬␇, q␇𝖬␇, q␇M␇, q␇M␇);
+Test_N(q␇𝖭␇, q␇𝖭␇, q␇𝖭␇, q␇N␇, q␇N␇);
+Test_N(q␇𝖮␇, q␇𝖮␇, q␇𝖮␇, q␇O␇, q␇O␇);
+Test_N(q␇𝖯␇, q␇𝖯␇, q␇𝖯␇, q␇P␇, q␇P␇);
+Test_N(q␇𝖰␇, q␇𝖰␇, q␇𝖰␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝖱␇, q␇𝖱␇, q␇𝖱␇, q␇R␇, q␇R␇);
+Test_N(q␇𝖲␇, q␇𝖲␇, q␇𝖲␇, q␇S␇, q␇S␇);
+Test_N(q␇𝖳␇, q␇𝖳␇, q␇𝖳␇, q␇T␇, q␇T␇);
+Test_N(q␇𝖴␇, q␇𝖴␇, q␇𝖴␇, q␇U␇, q␇U␇);
+Test_N(q␇𝖵␇, q␇𝖵␇, q␇𝖵␇, q␇V␇, q␇V␇);
+Test_N(q␇𝖶␇, q␇𝖶␇, q␇𝖶␇, q␇W␇, q␇W␇);
+Test_N(q␇𝖷␇, q␇𝖷␇, q␇𝖷␇, q␇X␇, q␇X␇);
+Test_N(q␇𝖸␇, q␇𝖸␇, q␇𝖸␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝖹␇, q␇𝖹␇, q␇𝖹␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝖺␇, q␇𝖺␇, q␇𝖺␇, q␇a␇, q␇a␇);
+Test_N(q␇𝖻␇, q␇𝖻␇, q␇𝖻␇, q␇b␇, q␇b␇);
+Test_N(q␇𝖼␇, q␇𝖼␇, q␇𝖼␇, q␇c␇, q␇c␇);
+Test_N(q␇𝖽␇, q␇𝖽␇, q␇𝖽␇, q␇d␇, q␇d␇);
+Test_N(q␇𝖾␇, q␇𝖾␇, q␇𝖾␇, q␇e␇, q␇e␇);
+Test_N(q␇𝖿␇, q␇𝖿␇, q␇𝖿␇, q␇f␇, q␇f␇);
+Test_N(q␇𝗀␇, q␇𝗀␇, q␇𝗀␇, q␇g␇, q␇g␇);
+Test_N(q␇𝗁␇, q␇𝗁␇, q␇𝗁␇, q␇h␇, q␇h␇);
+Test_N(q␇𝗂␇, q␇𝗂␇, q␇𝗂␇, q␇i␇, q␇i␇);
+Test_N(q␇𝗃␇, q␇𝗃␇, q␇𝗃␇, q␇j␇, q␇j␇);
+Test_N(q␇𝗄␇, q␇𝗄␇, q␇𝗄␇, q␇k␇, q␇k␇);
+Test_N(q␇𝗅␇, q␇𝗅␇, q␇𝗅␇, q␇l␇, q␇l␇);
+Test_N(q␇𝗆␇, q␇𝗆␇, q␇𝗆␇, q␇m␇, q␇m␇);
+Test_N(q␇𝗇␇, q␇𝗇␇, q␇𝗇␇, q␇n␇, q␇n␇);
+Test_N(q␇𝗈␇, q␇𝗈␇, q␇𝗈␇, q␇o␇, q␇o␇);
+Test_N(q␇𝗉␇, q␇𝗉␇, q␇𝗉␇, q␇p␇, q␇p␇);
+Test_N(q␇𝗊␇, q␇𝗊␇, q␇𝗊␇, q␇q␇, q␇q␇);
+Test_N(q␇𝗋␇, q␇𝗋␇, q␇𝗋␇, q␇r␇, q␇r␇);
+Test_N(q␇𝗌␇, q␇𝗌␇, q␇𝗌␇, q␇s␇, q␇s␇);
+Test_N(q␇𝗍␇, q␇𝗍␇, q␇𝗍␇, q␇t␇, q␇t␇);
+Test_N(q␇𝗎␇, q␇𝗎␇, q␇𝗎␇, q␇u␇, q␇u␇);
+Test_N(q␇𝗏␇, q␇𝗏␇, q␇𝗏␇, q␇v␇, q␇v␇);
+Test_N(q␇𝗐␇, q␇𝗐␇, q␇𝗐␇, q␇w␇, q␇w␇);
+Test_N(q␇𝗑␇, q␇𝗑␇, q␇𝗑␇, q␇x␇, q␇x␇);
+Test_N(q␇𝗒␇, q␇𝗒␇, q␇𝗒␇, q␇y␇, q␇y␇);
+Test_N(q␇𝗓␇, q␇𝗓␇, q␇𝗓␇, q␇z␇, q␇z␇);
+Test_N(q␇𝗔␇, q␇𝗔␇, q␇𝗔␇, q␇A␇, q␇A␇);
+Test_N(q␇𝗕␇, q␇𝗕␇, q␇𝗕␇, q␇B␇, q␇B␇);
+Test_N(q␇𝗖␇, q␇𝗖␇, q␇𝗖␇, q␇C␇, q␇C␇);
+Test_N(q␇𝗗␇, q␇𝗗␇, q␇𝗗␇, q␇D␇, q␇D␇);
+Test_N(q␇𝗘␇, q␇𝗘␇, q␇𝗘␇, q␇E␇, q␇E␇);
+Test_N(q␇𝗙␇, q␇𝗙␇, q␇𝗙␇, q␇F␇, q␇F␇);
+Test_N(q␇𝗚␇, q␇𝗚␇, q␇𝗚␇, q␇G␇, q␇G␇);
+Test_N(q␇𝗛␇, q␇𝗛␇, q␇𝗛␇, q␇H␇, q␇H␇);
+Test_N(q␇𝗜␇, q␇𝗜␇, q␇𝗜␇, q␇I␇, q␇I␇);
+Test_N(q␇𝗝␇, q␇𝗝␇, q␇𝗝␇, q␇J␇, q␇J␇);
+Test_N(q␇𝗞␇, q␇𝗞␇, q␇𝗞␇, q␇K␇, q␇K␇);
+Test_N(q␇𝗟␇, q␇𝗟␇, q␇𝗟␇, q␇L␇, q␇L␇);
+Test_N(q␇𝗠␇, q␇𝗠␇, q␇𝗠␇, q␇M␇, q␇M␇);
+Test_N(q␇𝗡␇, q␇𝗡␇, q␇𝗡␇, q␇N␇, q␇N␇);
+Test_N(q␇𝗢␇, q␇𝗢␇, q␇𝗢␇, q␇O␇, q␇O␇);
+Test_N(q␇𝗣␇, q␇𝗣␇, q␇𝗣␇, q␇P␇, q␇P␇);
+Test_N(q␇𝗤␇, q␇𝗤␇, q␇𝗤␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝗥␇, q␇𝗥␇, q␇𝗥␇, q␇R␇, q␇R␇);
+Test_N(q␇𝗦␇, q␇𝗦␇, q␇𝗦␇, q␇S␇, q␇S␇);
+Test_N(q␇𝗧␇, q␇𝗧␇, q␇𝗧␇, q␇T␇, q␇T␇);
+Test_N(q␇𝗨␇, q␇𝗨␇, q␇𝗨␇, q␇U␇, q␇U␇);
+Test_N(q␇𝗩␇, q␇𝗩␇, q␇𝗩␇, q␇V␇, q␇V␇);
+Test_N(q␇𝗪␇, q␇𝗪␇, q␇𝗪␇, q␇W␇, q␇W␇);
+Test_N(q␇𝗫␇, q␇𝗫␇, q␇𝗫␇, q␇X␇, q␇X␇);
+Test_N(q␇𝗬␇, q␇𝗬␇, q␇𝗬␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝗭␇, q␇𝗭␇, q␇𝗭␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝗮␇, q␇𝗮␇, q␇𝗮␇, q␇a␇, q␇a␇);
+Test_N(q␇𝗯␇, q␇𝗯␇, q␇𝗯␇, q␇b␇, q␇b␇);
+Test_N(q␇𝗰␇, q␇𝗰␇, q␇𝗰␇, q␇c␇, q␇c␇);
+Test_N(q␇𝗱␇, q␇𝗱␇, q␇𝗱␇, q␇d␇, q␇d␇);
+Test_N(q␇𝗲␇, q␇𝗲␇, q␇𝗲␇, q␇e␇, q␇e␇);
+Test_N(q␇𝗳␇, q␇𝗳␇, q␇𝗳␇, q␇f␇, q␇f␇);
+Test_N(q␇𝗴␇, q␇𝗴␇, q␇𝗴␇, q␇g␇, q␇g␇);
+Test_N(q␇𝗵␇, q␇𝗵␇, q␇𝗵␇, q␇h␇, q␇h␇);
+Test_N(q␇𝗶␇, q␇𝗶␇, q␇𝗶␇, q␇i␇, q␇i␇);
+Test_N(q␇𝗷␇, q␇𝗷␇, q␇𝗷␇, q␇j␇, q␇j␇);
+Test_N(q␇𝗸␇, q␇𝗸␇, q␇𝗸␇, q␇k␇, q␇k␇);
+Test_N(q␇𝗹␇, q␇𝗹␇, q␇𝗹␇, q␇l␇, q␇l␇);
+Test_N(q␇𝗺␇, q␇𝗺␇, q␇𝗺␇, q␇m␇, q␇m␇);
+Test_N(q␇𝗻␇, q␇𝗻␇, q␇𝗻␇, q␇n␇, q␇n␇);
+Test_N(q␇𝗼␇, q␇𝗼␇, q␇𝗼␇, q␇o␇, q␇o␇);
+Test_N(q␇𝗽␇, q␇𝗽␇, q␇𝗽␇, q␇p␇, q␇p␇);
+Test_N(q␇𝗾␇, q␇𝗾␇, q␇𝗾␇, q␇q␇, q␇q␇);
+Test_N(q␇𝗿␇, q␇𝗿␇, q␇𝗿␇, q␇r␇, q␇r␇);
+Test_N(q␇𝘀␇, q␇𝘀␇, q␇𝘀␇, q␇s␇, q␇s␇);
+Test_N(q␇𝘁␇, q␇𝘁␇, q␇𝘁␇, q␇t␇, q␇t␇);
+Test_N(q␇𝘂␇, q␇𝘂␇, q␇𝘂␇, q␇u␇, q␇u␇);
+Test_N(q␇𝘃␇, q␇𝘃␇, q␇𝘃␇, q␇v␇, q␇v␇);
+Test_N(q␇𝘄␇, q␇𝘄␇, q␇𝘄␇, q␇w␇, q␇w␇);
+Test_N(q␇𝘅␇, q␇𝘅␇, q␇𝘅␇, q␇x␇, q␇x␇);
+Test_N(q␇𝘆␇, q␇𝘆␇, q␇𝘆␇, q␇y␇, q␇y␇);
+Test_N(q␇𝘇␇, q␇𝘇␇, q␇𝘇␇, q␇z␇, q␇z␇);
+Test_N(q␇𝘈␇, q␇𝘈␇, q␇𝘈␇, q␇A␇, q␇A␇);
+Test_N(q␇𝘉␇, q␇𝘉␇, q␇𝘉␇, q␇B␇, q␇B␇);
+Test_N(q␇𝘊␇, q␇𝘊␇, q␇𝘊␇, q␇C␇, q␇C␇);
+Test_N(q␇𝘋␇, q␇𝘋␇, q␇𝘋␇, q␇D␇, q␇D␇);
+Test_N(q␇𝘌␇, q␇𝘌␇, q␇𝘌␇, q␇E␇, q␇E␇);
+Test_N(q␇𝘍␇, q␇𝘍␇, q␇𝘍␇, q␇F␇, q␇F␇);
+Test_N(q␇𝘎␇, q␇𝘎␇, q␇𝘎␇, q␇G␇, q␇G␇);
+Test_N(q␇𝘏␇, q␇𝘏␇, q␇𝘏␇, q␇H␇, q␇H␇);
+Test_N(q␇𝘐␇, q␇𝘐␇, q␇𝘐␇, q␇I␇, q␇I␇);
+Test_N(q␇𝘑␇, q␇𝘑␇, q␇𝘑␇, q␇J␇, q␇J␇);
+Test_N(q␇𝘒␇, q␇𝘒␇, q␇𝘒␇, q␇K␇, q␇K␇);
+Test_N(q␇𝘓␇, q␇𝘓␇, q␇𝘓␇, q␇L␇, q␇L␇);
+Test_N(q␇𝘔␇, q␇𝘔␇, q␇𝘔␇, q␇M␇, q␇M␇);
+Test_N(q␇𝘕␇, q␇𝘕␇, q␇𝘕␇, q␇N␇, q␇N␇);
+Test_N(q␇𝘖␇, q␇𝘖␇, q␇𝘖␇, q␇O␇, q␇O␇);
+Test_N(q␇𝘗␇, q␇𝘗␇, q␇𝘗␇, q␇P␇, q␇P␇);
+Test_N(q␇𝘘␇, q␇𝘘␇, q␇𝘘␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝘙␇, q␇𝘙␇, q␇𝘙␇, q␇R␇, q␇R␇);
+Test_N(q␇𝘚␇, q␇𝘚␇, q␇𝘚␇, q␇S␇, q␇S␇);
+Test_N(q␇𝘛␇, q␇𝘛␇, q␇𝘛␇, q␇T␇, q␇T␇);
+Test_N(q␇𝘜␇, q␇𝘜␇, q␇𝘜␇, q␇U␇, q␇U␇);
+Test_N(q␇𝘝␇, q␇𝘝␇, q␇𝘝␇, q␇V␇, q␇V␇);
+Test_N(q␇𝘞␇, q␇𝘞␇, q␇𝘞␇, q␇W␇, q␇W␇);
+Test_N(q␇𝘟␇, q␇𝘟␇, q␇𝘟␇, q␇X␇, q␇X␇);
+Test_N(q␇𝘠␇, q␇𝘠␇, q␇𝘠␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝘡␇, q␇𝘡␇, q␇𝘡␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝘢␇, q␇𝘢␇, q␇𝘢␇, q␇a␇, q␇a␇);
+Test_N(q␇𝘣␇, q␇𝘣␇, q␇𝘣␇, q␇b␇, q␇b␇);
+Test_N(q␇𝘤␇, q␇𝘤␇, q␇𝘤␇, q␇c␇, q␇c␇);
+Test_N(q␇𝘥␇, q␇𝘥␇, q␇𝘥␇, q␇d␇, q␇d␇);
+Test_N(q␇𝘦␇, q␇𝘦␇, q␇𝘦␇, q␇e␇, q␇e␇);
+Test_N(q␇𝘧␇, q␇𝘧␇, q␇𝘧␇, q␇f␇, q␇f␇);
+Test_N(q␇𝘨␇, q␇𝘨␇, q␇𝘨␇, q␇g␇, q␇g␇);
+Test_N(q␇𝘩␇, q␇𝘩␇, q␇𝘩␇, q␇h␇, q␇h␇);
+Test_N(q␇𝘪␇, q␇𝘪␇, q␇𝘪␇, q␇i␇, q␇i␇);
+Test_N(q␇𝘫␇, q␇𝘫␇, q␇𝘫␇, q␇j␇, q␇j␇);
+Test_N(q␇𝘬␇, q␇𝘬␇, q␇𝘬␇, q␇k␇, q␇k␇);
+Test_N(q␇𝘭␇, q␇𝘭␇, q␇𝘭␇, q␇l␇, q␇l␇);
+Test_N(q␇𝘮␇, q␇𝘮␇, q␇𝘮␇, q␇m␇, q␇m␇);
+Test_N(q␇𝘯␇, q␇𝘯␇, q␇𝘯␇, q␇n␇, q␇n␇);
+Test_N(q␇𝘰␇, q␇𝘰␇, q␇𝘰␇, q␇o␇, q␇o␇);
+Test_N(q␇𝘱␇, q␇𝘱␇, q␇𝘱␇, q␇p␇, q␇p␇);
+Test_N(q␇𝘲␇, q␇𝘲␇, q␇𝘲␇, q␇q␇, q␇q␇);
+Test_N(q␇𝘳␇, q␇𝘳␇, q␇𝘳␇, q␇r␇, q␇r␇);
+Test_N(q␇𝘴␇, q␇𝘴␇, q␇𝘴␇, q␇s␇, q␇s␇);
+Test_N(q␇𝘵␇, q␇𝘵␇, q␇𝘵␇, q␇t␇, q␇t␇);
+Test_N(q␇𝘶␇, q␇𝘶␇, q␇𝘶␇, q␇u␇, q␇u␇);
+Test_N(q␇𝘷␇, q␇𝘷␇, q␇𝘷␇, q␇v␇, q␇v␇);
+Test_N(q␇𝘸␇, q␇𝘸␇, q␇𝘸␇, q␇w␇, q␇w␇);
+Test_N(q␇𝘹␇, q␇𝘹␇, q␇𝘹␇, q␇x␇, q␇x␇);
+Test_N(q␇𝘺␇, q␇𝘺␇, q␇𝘺␇, q␇y␇, q␇y␇);
+Test_N(q␇𝘻␇, q␇𝘻␇, q␇𝘻␇, q␇z␇, q␇z␇);
+Test_N(q␇𝘼␇, q␇𝘼␇, q␇𝘼␇, q␇A␇, q␇A␇);
+Test_N(q␇𝘽␇, q␇𝘽␇, q␇𝘽␇, q␇B␇, q␇B␇);
+Test_N(q␇𝘾␇, q␇𝘾␇, q␇𝘾␇, q␇C␇, q␇C␇);
+Test_N(q␇𝘿␇, q␇𝘿␇, q␇𝘿␇, q␇D␇, q␇D␇);
+Test_N(q␇𝙀␇, q␇𝙀␇, q␇𝙀␇, q␇E␇, q␇E␇);
+Test_N(q␇𝙁␇, q␇𝙁␇, q␇𝙁␇, q␇F␇, q␇F␇);
+Test_N(q␇𝙂␇, q␇𝙂␇, q␇𝙂␇, q␇G␇, q␇G␇);
+Test_N(q␇𝙃␇, q␇𝙃␇, q␇𝙃␇, q␇H␇, q␇H␇);
+Test_N(q␇𝙄␇, q␇𝙄␇, q␇𝙄␇, q␇I␇, q␇I␇);
+Test_N(q␇𝙅␇, q␇𝙅␇, q␇𝙅␇, q␇J␇, q␇J␇);
+Test_N(q␇𝙆␇, q␇𝙆␇, q␇𝙆␇, q␇K␇, q␇K␇);
+Test_N(q␇𝙇␇, q␇𝙇␇, q␇𝙇␇, q␇L␇, q␇L␇);
+Test_N(q␇𝙈␇, q␇𝙈␇, q␇𝙈␇, q␇M␇, q␇M␇);
+Test_N(q␇𝙉␇, q␇𝙉␇, q␇𝙉␇, q␇N␇, q␇N␇);
+Test_N(q␇𝙊␇, q␇𝙊␇, q␇𝙊␇, q␇O␇, q␇O␇);
+Test_N(q␇𝙋␇, q␇𝙋␇, q␇𝙋␇, q␇P␇, q␇P␇);
+Test_N(q␇𝙌␇, q␇𝙌␇, q␇𝙌␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝙍␇, q␇𝙍␇, q␇𝙍␇, q␇R␇, q␇R␇);
+Test_N(q␇𝙎␇, q␇𝙎␇, q␇𝙎␇, q␇S␇, q␇S␇);
+Test_N(q␇𝙏␇, q␇𝙏␇, q␇𝙏␇, q␇T␇, q␇T␇);
+Test_N(q␇𝙐␇, q␇𝙐␇, q␇𝙐␇, q␇U␇, q␇U␇);
+Test_N(q␇𝙑␇, q␇𝙑␇, q␇𝙑␇, q␇V␇, q␇V␇);
+Test_N(q␇𝙒␇, q␇𝙒␇, q␇𝙒␇, q␇W␇, q␇W␇);
+Test_N(q␇𝙓␇, q␇𝙓␇, q␇𝙓␇, q␇X␇, q␇X␇);
+Test_N(q␇𝙔␇, q␇𝙔␇, q␇𝙔␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝙕␇, q␇𝙕␇, q␇𝙕␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝙖␇, q␇𝙖␇, q␇𝙖␇, q␇a␇, q␇a␇);
+Test_N(q␇𝙗␇, q␇𝙗␇, q␇𝙗␇, q␇b␇, q␇b␇);
+Test_N(q␇𝙘␇, q␇𝙘␇, q␇𝙘␇, q␇c␇, q␇c␇);
+Test_N(q␇𝙙␇, q␇𝙙␇, q␇𝙙␇, q␇d␇, q␇d␇);
+Test_N(q␇𝙚␇, q␇𝙚␇, q␇𝙚␇, q␇e␇, q␇e␇);
+Test_N(q␇𝙛␇, q␇𝙛␇, q␇𝙛␇, q␇f␇, q␇f␇);
+Test_N(q␇𝙜␇, q␇𝙜␇, q␇𝙜␇, q␇g␇, q␇g␇);
+Test_N(q␇𝙝␇, q␇𝙝␇, q␇𝙝␇, q␇h␇, q␇h␇);
+Test_N(q␇𝙞␇, q␇𝙞␇, q␇𝙞␇, q␇i␇, q␇i␇);
+Test_N(q␇𝙟␇, q␇𝙟␇, q␇𝙟␇, q␇j␇, q␇j␇);
+Test_N(q␇𝙠␇, q␇𝙠␇, q␇𝙠␇, q␇k␇, q␇k␇);
+Test_N(q␇𝙡␇, q␇𝙡␇, q␇𝙡␇, q␇l␇, q␇l␇);
+Test_N(q␇𝙢␇, q␇𝙢␇, q␇𝙢␇, q␇m␇, q␇m␇);
+Test_N(q␇𝙣␇, q␇𝙣␇, q␇𝙣␇, q␇n␇, q␇n␇);
+Test_N(q␇𝙤␇, q␇𝙤␇, q␇𝙤␇, q␇o␇, q␇o␇);
+Test_N(q␇𝙥␇, q␇𝙥␇, q␇𝙥␇, q␇p␇, q␇p␇);
+Test_N(q␇𝙦␇, q␇𝙦␇, q␇𝙦␇, q␇q␇, q␇q␇);
+Test_N(q␇𝙧␇, q␇𝙧␇, q␇𝙧␇, q␇r␇, q␇r␇);
+Test_N(q␇𝙨␇, q␇𝙨␇, q␇𝙨␇, q␇s␇, q␇s␇);
+Test_N(q␇𝙩␇, q␇𝙩␇, q␇𝙩␇, q␇t␇, q␇t␇);
+Test_N(q␇𝙪␇, q␇𝙪␇, q␇𝙪␇, q␇u␇, q␇u␇);
+Test_N(q␇𝙫␇, q␇𝙫␇, q␇𝙫␇, q␇v␇, q␇v␇);
+Test_N(q␇𝙬␇, q␇𝙬␇, q␇𝙬␇, q␇w␇, q␇w␇);
+Test_N(q␇𝙭␇, q␇𝙭␇, q␇𝙭␇, q␇x␇, q␇x␇);
+Test_N(q␇𝙮␇, q␇𝙮␇, q␇𝙮␇, q␇y␇, q␇y␇);
+Test_N(q␇𝙯␇, q␇𝙯␇, q␇𝙯␇, q␇z␇, q␇z␇);
+Test_N(q␇𝙰␇, q␇𝙰␇, q␇𝙰␇, q␇A␇, q␇A␇);
+Test_N(q␇𝙱␇, q␇𝙱␇, q␇𝙱␇, q␇B␇, q␇B␇);
+Test_N(q␇𝙲␇, q␇𝙲␇, q␇𝙲␇, q␇C␇, q␇C␇);
+Test_N(q␇𝙳␇, q␇𝙳␇, q␇𝙳␇, q␇D␇, q␇D␇);
+Test_N(q␇𝙴␇, q␇𝙴␇, q␇𝙴␇, q␇E␇, q␇E␇);
+Test_N(q␇𝙵␇, q␇𝙵␇, q␇𝙵␇, q␇F␇, q␇F␇);
+Test_N(q␇𝙶␇, q␇𝙶␇, q␇𝙶␇, q␇G␇, q␇G␇);
+Test_N(q␇𝙷␇, q␇𝙷␇, q␇𝙷␇, q␇H␇, q␇H␇);
+Test_N(q␇𝙸␇, q␇𝙸␇, q␇𝙸␇, q␇I␇, q␇I␇);
+Test_N(q␇𝙹␇, q␇𝙹␇, q␇𝙹␇, q␇J␇, q␇J␇);
+Test_N(q␇𝙺␇, q␇𝙺␇, q␇𝙺␇, q␇K␇, q␇K␇);
+Test_N(q␇𝙻␇, q␇𝙻␇, q␇𝙻␇, q␇L␇, q␇L␇);
+Test_N(q␇𝙼␇, q␇𝙼␇, q␇𝙼␇, q␇M␇, q␇M␇);
+Test_N(q␇𝙽␇, q␇𝙽␇, q␇𝙽␇, q␇N␇, q␇N␇);
+Test_N(q␇𝙾␇, q␇𝙾␇, q␇𝙾␇, q␇O␇, q␇O␇);
+Test_N(q␇𝙿␇, q␇𝙿␇, q␇𝙿␇, q␇P␇, q␇P␇);
+Test_N(q␇𝚀␇, q␇𝚀␇, q␇𝚀␇, q␇Q␇, q␇Q␇);
+Test_N(q␇𝚁␇, q␇𝚁␇, q␇𝚁␇, q␇R␇, q␇R␇);
+Test_N(q␇𝚂␇, q␇𝚂␇, q␇𝚂␇, q␇S␇, q␇S␇);
+Test_N(q␇𝚃␇, q␇𝚃␇, q␇𝚃␇, q␇T␇, q␇T␇);
+Test_N(q␇𝚄␇, q␇𝚄␇, q␇𝚄␇, q␇U␇, q␇U␇);
+Test_N(q␇𝚅␇, q␇𝚅␇, q␇𝚅␇, q␇V␇, q␇V␇);
+Test_N(q␇𝚆␇, q␇𝚆␇, q␇𝚆␇, q␇W␇, q␇W␇);
+Test_N(q␇𝚇␇, q␇𝚇␇, q␇𝚇␇, q␇X␇, q␇X␇);
+Test_N(q␇𝚈␇, q␇𝚈␇, q␇𝚈␇, q␇Y␇, q␇Y␇);
+Test_N(q␇𝚉␇, q␇𝚉␇, q␇𝚉␇, q␇Z␇, q␇Z␇);
+Test_N(q␇𝚊␇, q␇𝚊␇, q␇𝚊␇, q␇a␇, q␇a␇);
+Test_N(q␇𝚋␇, q␇𝚋␇, q␇𝚋␇, q␇b␇, q␇b␇);
+Test_N(q␇𝚌␇, q␇𝚌␇, q␇𝚌␇, q␇c␇, q␇c␇);
+Test_N(q␇𝚍␇, q␇𝚍␇, q␇𝚍␇, q␇d␇, q␇d␇);
+Test_N(q␇𝚎␇, q␇𝚎␇, q␇𝚎␇, q␇e␇, q␇e␇);
+Test_N(q␇𝚏␇, q␇𝚏␇, q␇𝚏␇, q␇f␇, q␇f␇);
+Test_N(q␇𝚐␇, q␇𝚐␇, q␇𝚐␇, q␇g␇, q␇g␇);
+Test_N(q␇𝚑␇, q␇𝚑␇, q␇𝚑␇, q␇h␇, q␇h␇);
+Test_N(q␇𝚒␇, q␇𝚒␇, q␇𝚒␇, q␇i␇, q␇i␇);
+Test_N(q␇𝚓␇, q␇𝚓␇, q␇𝚓␇, q␇j␇, q␇j␇);
+Test_N(q␇𝚔␇, q␇𝚔␇, q␇𝚔␇, q␇k␇, q␇k␇);
+Test_N(q␇𝚕␇, q␇𝚕␇, q␇𝚕␇, q␇l␇, q␇l␇);
+Test_N(q␇𝚖␇, q␇𝚖␇, q␇𝚖␇, q␇m␇, q␇m␇);
+Test_N(q␇𝚗␇, q␇𝚗␇, q␇𝚗␇, q␇n␇, q␇n␇);
+Test_N(q␇𝚘␇, q␇𝚘␇, q␇𝚘␇, q␇o␇, q␇o␇);
+Test_N(q␇𝚙␇, q␇𝚙␇, q␇𝚙␇, q␇p␇, q␇p␇);
+Test_N(q␇𝚚␇, q␇𝚚␇, q␇𝚚␇, q␇q␇, q␇q␇);
+Test_N(q␇𝚛␇, q␇𝚛␇, q␇𝚛␇, q␇r␇, q␇r␇);
+Test_N(q␇𝚜␇, q␇𝚜␇, q␇𝚜␇, q␇s␇, q␇s␇);
+Test_N(q␇𝚝␇, q␇𝚝␇, q␇𝚝␇, q␇t␇, q␇t␇);
+Test_N(q␇𝚞␇, q␇𝚞␇, q␇𝚞␇, q␇u␇, q␇u␇);
+Test_N(q␇𝚟␇, q␇𝚟␇, q␇𝚟␇, q␇v␇, q␇v␇);
+Test_N(q␇𝚠␇, q␇𝚠␇, q␇𝚠␇, q␇w␇, q␇w␇);
+Test_N(q␇𝚡␇, q␇𝚡␇, q␇𝚡␇, q␇x␇, q␇x␇);
+Test_N(q␇𝚢␇, q␇𝚢␇, q␇𝚢␇, q␇y␇, q␇y␇);
+Test_N(q␇𝚣␇, q␇𝚣␇, q␇𝚣␇, q␇z␇, q␇z␇);
+Test_N(q␇𝚤␇, q␇𝚤␇, q␇𝚤␇, q␇ı␇, q␇ı␇);
+Test_N(q␇𝚥␇, q␇𝚥␇, q␇𝚥␇, q␇ȷ␇, q␇ȷ␇);
+Test_N(q␇𝚨␇, q␇𝚨␇, q␇𝚨␇, q␇Α␇, q␇Α␇);
+Test_N(q␇𝚩␇, q␇𝚩␇, q␇𝚩␇, q␇Β␇, q␇Β␇);
+Test_N(q␇𝚪␇, q␇𝚪␇, q␇𝚪␇, q␇Γ␇, q␇Γ␇);
+Test_N(q␇𝚫␇, q␇𝚫␇, q␇𝚫␇, q␇Δ␇, q␇Δ␇);
+Test_N(q␇𝚬␇, q␇𝚬␇, q␇𝚬␇, q␇Ε␇, q␇Ε␇);
+Test_N(q␇𝚭␇, q␇𝚭␇, q␇𝚭␇, q␇Ζ␇, q␇Ζ␇);
+Test_N(q␇𝚮␇, q␇𝚮␇, q␇𝚮␇, q␇Η␇, q␇Η␇);
+Test_N(q␇𝚯␇, q␇𝚯␇, q␇𝚯␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝚰␇, q␇𝚰␇, q␇𝚰␇, q␇Ι␇, q␇Ι␇);
+Test_N(q␇𝚱␇, q␇𝚱␇, q␇𝚱␇, q␇Κ␇, q␇Κ␇);
+Test_N(q␇𝚲␇, q␇𝚲␇, q␇𝚲␇, q␇Λ␇, q␇Λ␇);
+Test_N(q␇𝚳␇, q␇𝚳␇, q␇𝚳␇, q␇Μ␇, q␇Μ␇);
+Test_N(q␇𝚴␇, q␇𝚴␇, q␇𝚴␇, q␇Ν␇, q␇Ν␇);
+Test_N(q␇𝚵␇, q␇𝚵␇, q␇𝚵␇, q␇Ξ␇, q␇Ξ␇);
+Test_N(q␇𝚶␇, q␇𝚶␇, q␇𝚶␇, q␇Ο␇, q␇Ο␇);
+Test_N(q␇𝚷␇, q␇𝚷␇, q␇𝚷␇, q␇Π␇, q␇Π␇);
+Test_N(q␇𝚸␇, q␇𝚸␇, q␇𝚸␇, q␇Ρ␇, q␇Ρ␇);
+Test_N(q␇𝚹␇, q␇𝚹␇, q␇𝚹␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝚺␇, q␇𝚺␇, q␇𝚺␇, q␇Σ␇, q␇Σ␇);
+Test_N(q␇𝚻␇, q␇𝚻␇, q␇𝚻␇, q␇Τ␇, q␇Τ␇);
+Test_N(q␇𝚼␇, q␇𝚼␇, q␇𝚼␇, q␇Υ␇, q␇Υ␇);
+Test_N(q␇𝚽␇, q␇𝚽␇, q␇𝚽␇, q␇Φ␇, q␇Φ␇);
+Test_N(q␇𝚾␇, q␇𝚾␇, q␇𝚾␇, q␇Χ␇, q␇Χ␇);
+Test_N(q␇𝚿␇, q␇𝚿␇, q␇𝚿␇, q␇Ψ␇, q␇Ψ␇);
+Test_N(q␇𝛀␇, q␇𝛀␇, q␇𝛀␇, q␇Ω␇, q␇Ω␇);
+Test_N(q␇𝛁␇, q␇𝛁␇, q␇𝛁␇, q␇∇␇, q␇∇␇);
+Test_N(q␇𝛂␇, q␇𝛂␇, q␇𝛂␇, q␇α␇, q␇α␇);
+Test_N(q␇𝛃␇, q␇𝛃␇, q␇𝛃␇, q␇β␇, q␇β␇);
+Test_N(q␇𝛄␇, q␇𝛄␇, q␇𝛄␇, q␇γ␇, q␇γ␇);
+Test_N(q␇𝛅␇, q␇𝛅␇, q␇𝛅␇, q␇δ␇, q␇δ␇);
+Test_N(q␇𝛆␇, q␇𝛆␇, q␇𝛆␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝛇␇, q␇𝛇␇, q␇𝛇␇, q␇ζ␇, q␇ζ␇);
+Test_N(q␇𝛈␇, q␇𝛈␇, q␇𝛈␇, q␇η␇, q␇η␇);
+Test_N(q␇𝛉␇, q␇𝛉␇, q␇𝛉␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝛊␇, q␇𝛊␇, q␇𝛊␇, q␇ι␇, q␇ι␇);
+Test_N(q␇𝛋␇, q␇𝛋␇, q␇𝛋␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝛌␇, q␇𝛌␇, q␇𝛌␇, q␇λ␇, q␇λ␇);
+Test_N(q␇𝛍␇, q␇𝛍␇, q␇𝛍␇, q␇μ␇, q␇μ␇);
+Test_N(q␇𝛎␇, q␇𝛎␇, q␇𝛎␇, q␇ν␇, q␇ν␇);
+Test_N(q␇𝛏␇, q␇𝛏␇, q␇𝛏␇, q␇ξ␇, q␇ξ␇);
+Test_N(q␇𝛐␇, q␇𝛐␇, q␇𝛐␇, q␇ο␇, q␇ο␇);
+Test_N(q␇𝛑␇, q␇𝛑␇, q␇𝛑␇, q␇π␇, q␇π␇);
+Test_N(q␇𝛒␇, q␇𝛒␇, q␇𝛒␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝛓␇, q␇𝛓␇, q␇𝛓␇, q␇ς␇, q␇ς␇);
+Test_N(q␇𝛔␇, q␇𝛔␇, q␇𝛔␇, q␇σ␇, q␇σ␇);
+Test_N(q␇𝛕␇, q␇𝛕␇, q␇𝛕␇, q␇τ␇, q␇τ␇);
+Test_N(q␇𝛖␇, q␇𝛖␇, q␇𝛖␇, q␇υ␇, q␇υ␇);
+Test_N(q␇𝛗␇, q␇𝛗␇, q␇𝛗␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝛘␇, q␇𝛘␇, q␇𝛘␇, q␇χ␇, q␇χ␇);
+Test_N(q␇𝛙␇, q␇𝛙␇, q␇𝛙␇, q␇ψ␇, q␇ψ␇);
+Test_N(q␇𝛚␇, q␇𝛚␇, q␇𝛚␇, q␇ω␇, q␇ω␇);
+Test_N(q␇𝛛␇, q␇𝛛␇, q␇𝛛␇, q␇∂␇, q␇∂␇);
+Test_N(q␇𝛜␇, q␇𝛜␇, q␇𝛜␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝛝␇, q␇𝛝␇, q␇𝛝␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝛞␇, q␇𝛞␇, q␇𝛞␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝛟␇, q␇𝛟␇, q␇𝛟␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝛠␇, q␇𝛠␇, q␇𝛠␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝛡␇, q␇𝛡␇, q␇𝛡␇, q␇π␇, q␇π␇);
+Test_N(q␇𝛢␇, q␇𝛢␇, q␇𝛢␇, q␇Α␇, q␇Α␇);
+Test_N(q␇𝛣␇, q␇𝛣␇, q␇𝛣␇, q␇Β␇, q␇Β␇);
+Test_N(q␇𝛤␇, q␇𝛤␇, q␇𝛤␇, q␇Γ␇, q␇Γ␇);
+Test_N(q␇𝛥␇, q␇𝛥␇, q␇𝛥␇, q␇Δ␇, q␇Δ␇);
+Test_N(q␇𝛦␇, q␇𝛦␇, q␇𝛦␇, q␇Ε␇, q␇Ε␇);
+Test_N(q␇𝛧␇, q␇𝛧␇, q␇𝛧␇, q␇Ζ␇, q␇Ζ␇);
+Test_N(q␇𝛨␇, q␇𝛨␇, q␇𝛨␇, q␇Η␇, q␇Η␇);
+Test_N(q␇𝛩␇, q␇𝛩␇, q␇𝛩␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝛪␇, q␇𝛪␇, q␇𝛪␇, q␇Ι␇, q␇Ι␇);
+Test_N(q␇𝛫␇, q␇𝛫␇, q␇𝛫␇, q␇Κ␇, q␇Κ␇);
+Test_N(q␇𝛬␇, q␇𝛬␇, q␇𝛬␇, q␇Λ␇, q␇Λ␇);
+Test_N(q␇𝛭␇, q␇𝛭␇, q␇𝛭␇, q␇Μ␇, q␇Μ␇);
+Test_N(q␇𝛮␇, q␇𝛮␇, q␇𝛮␇, q␇Ν␇, q␇Ν␇);
+Test_N(q␇𝛯␇, q␇𝛯␇, q␇𝛯␇, q␇Ξ␇, q␇Ξ␇);
+Test_N(q␇𝛰␇, q␇𝛰␇, q␇𝛰␇, q␇Ο␇, q␇Ο␇);
+Test_N(q␇𝛱␇, q␇𝛱␇, q␇𝛱␇, q␇Π␇, q␇Π␇);
+Test_N(q␇𝛲␇, q␇𝛲␇, q␇𝛲␇, q␇Ρ␇, q␇Ρ␇);
+Test_N(q␇𝛳␇, q␇𝛳␇, q␇𝛳␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝛴␇, q␇𝛴␇, q␇𝛴␇, q␇Σ␇, q␇Σ␇);
+Test_N(q␇𝛵␇, q␇𝛵␇, q␇𝛵␇, q␇Τ␇, q␇Τ␇);
+Test_N(q␇𝛶␇, q␇𝛶␇, q␇𝛶␇, q␇Υ␇, q␇Υ␇);
+Test_N(q␇𝛷␇, q␇𝛷␇, q␇𝛷␇, q␇Φ␇, q␇Φ␇);
+Test_N(q␇𝛸␇, q␇𝛸␇, q␇𝛸␇, q␇Χ␇, q␇Χ␇);
+Test_N(q␇𝛹␇, q␇𝛹␇, q␇𝛹␇, q␇Ψ␇, q␇Ψ␇);
+Test_N(q␇𝛺␇, q␇𝛺␇, q␇𝛺␇, q␇Ω␇, q␇Ω␇);
+Test_N(q␇𝛻␇, q␇𝛻␇, q␇𝛻␇, q␇∇␇, q␇∇␇);
+Test_N(q␇𝛼␇, q␇𝛼␇, q␇𝛼␇, q␇α␇, q␇α␇);
+Test_N(q␇𝛽␇, q␇𝛽␇, q␇𝛽␇, q␇β␇, q␇β␇);
+Test_N(q␇𝛾␇, q␇𝛾␇, q␇𝛾␇, q␇γ␇, q␇γ␇);
+Test_N(q␇𝛿␇, q␇𝛿␇, q␇𝛿␇, q␇δ␇, q␇δ␇);
+Test_N(q␇𝜀␇, q␇𝜀␇, q␇𝜀␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝜁␇, q␇𝜁␇, q␇𝜁␇, q␇ζ␇, q␇ζ␇);
+Test_N(q␇𝜂␇, q␇𝜂␇, q␇𝜂␇, q␇η␇, q␇η␇);
+Test_N(q␇𝜃␇, q␇𝜃␇, q␇𝜃␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝜄␇, q␇𝜄␇, q␇𝜄␇, q␇ι␇, q␇ι␇);
+Test_N(q␇𝜅␇, q␇𝜅␇, q␇𝜅␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝜆␇, q␇𝜆␇, q␇𝜆␇, q␇λ␇, q␇λ␇);
+Test_N(q␇𝜇␇, q␇𝜇␇, q␇𝜇␇, q␇μ␇, q␇μ␇);
+Test_N(q␇𝜈␇, q␇𝜈␇, q␇𝜈␇, q␇ν␇, q␇ν␇);
+Test_N(q␇𝜉␇, q␇𝜉␇, q␇𝜉␇, q␇ξ␇, q␇ξ␇);
+Test_N(q␇𝜊␇, q␇𝜊␇, q␇𝜊␇, q␇ο␇, q␇ο␇);
+Test_N(q␇𝜋␇, q␇𝜋␇, q␇𝜋␇, q␇π␇, q␇π␇);
+Test_N(q␇𝜌␇, q␇𝜌␇, q␇𝜌␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝜍␇, q␇𝜍␇, q␇𝜍␇, q␇ς␇, q␇ς␇);
+Test_N(q␇𝜎␇, q␇𝜎␇, q␇𝜎␇, q␇σ␇, q␇σ␇);
+Test_N(q␇𝜏␇, q␇𝜏␇, q␇𝜏␇, q␇τ␇, q␇τ␇);
+Test_N(q␇𝜐␇, q␇𝜐␇, q␇𝜐␇, q␇υ␇, q␇υ␇);
+Test_N(q␇𝜑␇, q␇𝜑␇, q␇𝜑␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝜒␇, q␇𝜒␇, q␇𝜒␇, q␇χ␇, q␇χ␇);
+Test_N(q␇𝜓␇, q␇𝜓␇, q␇𝜓␇, q␇ψ␇, q␇ψ␇);
+Test_N(q␇𝜔␇, q␇𝜔␇, q␇𝜔␇, q␇ω␇, q␇ω␇);
+Test_N(q␇𝜕␇, q␇𝜕␇, q␇𝜕␇, q␇∂␇, q␇∂␇);
+Test_N(q␇𝜖␇, q␇𝜖␇, q␇𝜖␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝜗␇, q␇𝜗␇, q␇𝜗␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝜘␇, q␇𝜘␇, q␇𝜘␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝜙␇, q␇𝜙␇, q␇𝜙␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝜚␇, q␇𝜚␇, q␇𝜚␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝜛␇, q␇𝜛␇, q␇𝜛␇, q␇π␇, q␇π␇);
+Test_N(q␇𝜜␇, q␇𝜜␇, q␇𝜜␇, q␇Α␇, q␇Α␇);
+Test_N(q␇𝜝␇, q␇𝜝␇, q␇𝜝␇, q␇Β␇, q␇Β␇);
+Test_N(q␇𝜞␇, q␇𝜞␇, q␇𝜞␇, q␇Γ␇, q␇Γ␇);
+Test_N(q␇𝜟␇, q␇𝜟␇, q␇𝜟␇, q␇Δ␇, q␇Δ␇);
+Test_N(q␇𝜠␇, q␇𝜠␇, q␇𝜠␇, q␇Ε␇, q␇Ε␇);
+Test_N(q␇𝜡␇, q␇𝜡␇, q␇𝜡␇, q␇Ζ␇, q␇Ζ␇);
+Test_N(q␇𝜢␇, q␇𝜢␇, q␇𝜢␇, q␇Η␇, q␇Η␇);
+Test_N(q␇𝜣␇, q␇𝜣␇, q␇𝜣␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝜤␇, q␇𝜤␇, q␇𝜤␇, q␇Ι␇, q␇Ι␇);
+Test_N(q␇𝜥␇, q␇𝜥␇, q␇𝜥␇, q␇Κ␇, q␇Κ␇);
+Test_N(q␇𝜦␇, q␇𝜦␇, q␇𝜦␇, q␇Λ␇, q␇Λ␇);
+Test_N(q␇𝜧␇, q␇𝜧␇, q␇𝜧␇, q␇Μ␇, q␇Μ␇);
+Test_N(q␇𝜨␇, q␇𝜨␇, q␇𝜨␇, q␇Ν␇, q␇Ν␇);
+Test_N(q␇𝜩␇, q␇𝜩␇, q␇𝜩␇, q␇Ξ␇, q␇Ξ␇);
+Test_N(q␇𝜪␇, q␇𝜪␇, q␇𝜪␇, q␇Ο␇, q␇Ο␇);
+Test_N(q␇𝜫␇, q␇𝜫␇, q␇𝜫␇, q␇Π␇, q␇Π␇);
+Test_N(q␇𝜬␇, q␇𝜬␇, q␇𝜬␇, q␇Ρ␇, q␇Ρ␇);
+Test_N(q␇𝜭␇, q␇𝜭␇, q␇𝜭␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝜮␇, q␇𝜮␇, q␇𝜮␇, q␇Σ␇, q␇Σ␇);
+Test_N(q␇𝜯␇, q␇𝜯␇, q␇𝜯␇, q␇Τ␇, q␇Τ␇);
+Test_N(q␇𝜰␇, q␇𝜰␇, q␇𝜰␇, q␇Υ␇, q␇Υ␇);
+Test_N(q␇𝜱␇, q␇𝜱␇, q␇𝜱␇, q␇Φ␇, q␇Φ␇);
+Test_N(q␇𝜲␇, q␇𝜲␇, q␇𝜲␇, q␇Χ␇, q␇Χ␇);
+Test_N(q␇𝜳␇, q␇𝜳␇, q␇𝜳␇, q␇Ψ␇, q␇Ψ␇);
+Test_N(q␇𝜴␇, q␇𝜴␇, q␇𝜴␇, q␇Ω␇, q␇Ω␇);
+Test_N(q␇𝜵␇, q␇𝜵␇, q␇𝜵␇, q␇∇␇, q␇∇␇);
+Test_N(q␇𝜶␇, q␇𝜶␇, q␇𝜶␇, q␇α␇, q␇α␇);
+Test_N(q␇𝜷␇, q␇𝜷␇, q␇𝜷␇, q␇β␇, q␇β␇);
+Test_N(q␇𝜸␇, q␇𝜸␇, q␇𝜸␇, q␇γ␇, q␇γ␇);
+Test_N(q␇𝜹␇, q␇𝜹␇, q␇𝜹␇, q␇δ␇, q␇δ␇);
+Test_N(q␇𝜺␇, q␇𝜺␇, q␇𝜺␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝜻␇, q␇𝜻␇, q␇𝜻␇, q␇ζ␇, q␇ζ␇);
+Test_N(q␇𝜼␇, q␇𝜼␇, q␇𝜼␇, q␇η␇, q␇η␇);
+Test_N(q␇𝜽␇, q␇𝜽␇, q␇𝜽␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝜾␇, q␇𝜾␇, q␇𝜾␇, q␇ι␇, q␇ι␇);
+Test_N(q␇𝜿␇, q␇𝜿␇, q␇𝜿␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝝀␇, q␇𝝀␇, q␇𝝀␇, q␇λ␇, q␇λ␇);
+Test_N(q␇𝝁␇, q␇𝝁␇, q␇𝝁␇, q␇μ␇, q␇μ␇);
+Test_N(q␇𝝂␇, q␇𝝂␇, q␇𝝂␇, q␇ν␇, q␇ν␇);
+Test_N(q␇𝝃␇, q␇𝝃␇, q␇𝝃␇, q␇ξ␇, q␇ξ␇);
+Test_N(q␇𝝄␇, q␇𝝄␇, q␇𝝄␇, q␇ο␇, q␇ο␇);
+Test_N(q␇𝝅␇, q␇𝝅␇, q␇𝝅␇, q␇π␇, q␇π␇);
+Test_N(q␇𝝆␇, q␇𝝆␇, q␇𝝆␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝝇␇, q␇𝝇␇, q␇𝝇␇, q␇ς␇, q␇ς␇);
+Test_N(q␇𝝈␇, q␇𝝈␇, q␇𝝈␇, q␇σ␇, q␇σ␇);
+Test_N(q␇𝝉␇, q␇𝝉␇, q␇𝝉␇, q␇τ␇, q␇τ␇);
+Test_N(q␇𝝊␇, q␇𝝊␇, q␇𝝊␇, q␇υ␇, q␇υ␇);
+Test_N(q␇𝝋␇, q␇𝝋␇, q␇𝝋␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝝌␇, q␇𝝌␇, q␇𝝌␇, q␇χ␇, q␇χ␇);
+Test_N(q␇𝝍␇, q␇𝝍␇, q␇𝝍␇, q␇ψ␇, q␇ψ␇);
+Test_N(q␇𝝎␇, q␇𝝎␇, q␇𝝎␇, q␇ω␇, q␇ω␇);
+Test_N(q␇𝝏␇, q␇𝝏␇, q␇𝝏␇, q␇∂␇, q␇∂␇);
+Test_N(q␇𝝐␇, q␇𝝐␇, q␇𝝐␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝝑␇, q␇𝝑␇, q␇𝝑␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝝒␇, q␇𝝒␇, q␇𝝒␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝝓␇, q␇𝝓␇, q␇𝝓␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝝔␇, q␇𝝔␇, q␇𝝔␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝝕␇, q␇𝝕␇, q␇𝝕␇, q␇π␇, q␇π␇);
+Test_N(q␇𝝖␇, q␇𝝖␇, q␇𝝖␇, q␇Α␇, q␇Α␇);
+Test_N(q␇𝝗␇, q␇𝝗␇, q␇𝝗␇, q␇Β␇, q␇Β␇);
+Test_N(q␇𝝘␇, q␇𝝘␇, q␇𝝘␇, q␇Γ␇, q␇Γ␇);
+Test_N(q␇𝝙␇, q␇𝝙␇, q␇𝝙␇, q␇Δ␇, q␇Δ␇);
+Test_N(q␇𝝚␇, q␇𝝚␇, q␇𝝚␇, q␇Ε␇, q␇Ε␇);
+Test_N(q␇𝝛␇, q␇𝝛␇, q␇𝝛␇, q␇Ζ␇, q␇Ζ␇);
+Test_N(q␇𝝜␇, q␇𝝜␇, q␇𝝜␇, q␇Η␇, q␇Η␇);
+Test_N(q␇𝝝␇, q␇𝝝␇, q␇𝝝␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝝞␇, q␇𝝞␇, q␇𝝞␇, q␇Ι␇, q␇Ι␇);
+Test_N(q␇𝝟␇, q␇𝝟␇, q␇𝝟␇, q␇Κ␇, q␇Κ␇);
+Test_N(q␇𝝠␇, q␇𝝠␇, q␇𝝠␇, q␇Λ␇, q␇Λ␇);
+Test_N(q␇𝝡␇, q␇𝝡␇, q␇𝝡␇, q␇Μ␇, q␇Μ␇);
+Test_N(q␇𝝢␇, q␇𝝢␇, q␇𝝢␇, q␇Ν␇, q␇Ν␇);
+Test_N(q␇𝝣␇, q␇𝝣␇, q␇𝝣␇, q␇Ξ␇, q␇Ξ␇);
+Test_N(q␇𝝤␇, q␇𝝤␇, q␇𝝤␇, q␇Ο␇, q␇Ο␇);
+Test_N(q␇𝝥␇, q␇𝝥␇, q␇𝝥␇, q␇Π␇, q␇Π␇);
+Test_N(q␇𝝦␇, q␇𝝦␇, q␇𝝦␇, q␇Ρ␇, q␇Ρ␇);
+Test_N(q␇𝝧␇, q␇𝝧␇, q␇𝝧␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝝨␇, q␇𝝨␇, q␇𝝨␇, q␇Σ␇, q␇Σ␇);
+Test_N(q␇𝝩␇, q␇𝝩␇, q␇𝝩␇, q␇Τ␇, q␇Τ␇);
+Test_N(q␇𝝪␇, q␇𝝪␇, q␇𝝪␇, q␇Υ␇, q␇Υ␇);
+Test_N(q␇𝝫␇, q␇𝝫␇, q␇𝝫␇, q␇Φ␇, q␇Φ␇);
+Test_N(q␇𝝬␇, q␇𝝬␇, q␇𝝬␇, q␇Χ␇, q␇Χ␇);
+Test_N(q␇𝝭␇, q␇𝝭␇, q␇𝝭␇, q␇Ψ␇, q␇Ψ␇);
+Test_N(q␇𝝮␇, q␇𝝮␇, q␇𝝮␇, q␇Ω␇, q␇Ω␇);
+Test_N(q␇𝝯␇, q␇𝝯␇, q␇𝝯␇, q␇∇␇, q␇∇␇);
+Test_N(q␇𝝰␇, q␇𝝰␇, q␇𝝰␇, q␇α␇, q␇α␇);
+Test_N(q␇𝝱␇, q␇𝝱␇, q␇𝝱␇, q␇β␇, q␇β␇);
+Test_N(q␇𝝲␇, q␇𝝲␇, q␇𝝲␇, q␇γ␇, q␇γ␇);
+Test_N(q␇𝝳␇, q␇𝝳␇, q␇𝝳␇, q␇δ␇, q␇δ␇);
+Test_N(q␇𝝴␇, q␇𝝴␇, q␇𝝴␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝝵␇, q␇𝝵␇, q␇𝝵␇, q␇ζ␇, q␇ζ␇);
+Test_N(q␇𝝶␇, q␇𝝶␇, q␇𝝶␇, q␇η␇, q␇η␇);
+Test_N(q␇𝝷␇, q␇𝝷␇, q␇𝝷␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝝸␇, q␇𝝸␇, q␇𝝸␇, q␇ι␇, q␇ι␇);
+Test_N(q␇𝝹␇, q␇𝝹␇, q␇𝝹␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝝺␇, q␇𝝺␇, q␇𝝺␇, q␇λ␇, q␇λ␇);
+Test_N(q␇𝝻␇, q␇𝝻␇, q␇𝝻␇, q␇μ␇, q␇μ␇);
+Test_N(q␇𝝼␇, q␇𝝼␇, q␇𝝼␇, q␇ν␇, q␇ν␇);
+Test_N(q␇𝝽␇, q␇𝝽␇, q␇𝝽␇, q␇ξ␇, q␇ξ␇);
+Test_N(q␇𝝾␇, q␇𝝾␇, q␇𝝾␇, q␇ο␇, q␇ο␇);
+Test_N(q␇𝝿␇, q␇𝝿␇, q␇𝝿␇, q␇π␇, q␇π␇);
+Test_N(q␇𝞀␇, q␇𝞀␇, q␇𝞀␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝞁␇, q␇𝞁␇, q␇𝞁␇, q␇ς␇, q␇ς␇);
+Test_N(q␇𝞂␇, q␇𝞂␇, q␇𝞂␇, q␇σ␇, q␇σ␇);
+Test_N(q␇𝞃␇, q␇𝞃␇, q␇𝞃␇, q␇τ␇, q␇τ␇);
+Test_N(q␇𝞄␇, q␇𝞄␇, q␇𝞄␇, q␇υ␇, q␇υ␇);
+Test_N(q␇𝞅␇, q␇𝞅␇, q␇𝞅␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝞆␇, q␇𝞆␇, q␇𝞆␇, q␇χ␇, q␇χ␇);
+Test_N(q␇𝞇␇, q␇𝞇␇, q␇𝞇␇, q␇ψ␇, q␇ψ␇);
+Test_N(q␇𝞈␇, q␇𝞈␇, q␇𝞈␇, q␇ω␇, q␇ω␇);
+Test_N(q␇𝞉␇, q␇𝞉␇, q␇𝞉␇, q␇∂␇, q␇∂␇);
+Test_N(q␇𝞊␇, q␇𝞊␇, q␇𝞊␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝞋␇, q␇𝞋␇, q␇𝞋␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝞌␇, q␇𝞌␇, q␇𝞌␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝞍␇, q␇𝞍␇, q␇𝞍␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝞎␇, q␇𝞎␇, q␇𝞎␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝞏␇, q␇𝞏␇, q␇𝞏␇, q␇π␇, q␇π␇);
+Test_N(q␇𝞐␇, q␇𝞐␇, q␇𝞐␇, q␇Α␇, q␇Α␇);
+Test_N(q␇𝞑␇, q␇𝞑␇, q␇𝞑␇, q␇Β␇, q␇Β␇);
+Test_N(q␇𝞒␇, q␇𝞒␇, q␇𝞒␇, q␇Γ␇, q␇Γ␇);
+Test_N(q␇𝞓␇, q␇𝞓␇, q␇𝞓␇, q␇Δ␇, q␇Δ␇);
+Test_N(q␇𝞔␇, q␇𝞔␇, q␇𝞔␇, q␇Ε␇, q␇Ε␇);
+Test_N(q␇𝞕␇, q␇𝞕␇, q␇𝞕␇, q␇Ζ␇, q␇Ζ␇);
+Test_N(q␇𝞖␇, q␇𝞖␇, q␇𝞖␇, q␇Η␇, q␇Η␇);
+Test_N(q␇𝞗␇, q␇𝞗␇, q␇𝞗␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝞘␇, q␇𝞘␇, q␇𝞘␇, q␇Ι␇, q␇Ι␇);
+Test_N(q␇𝞙␇, q␇𝞙␇, q␇𝞙␇, q␇Κ␇, q␇Κ␇);
+Test_N(q␇𝞚␇, q␇𝞚␇, q␇𝞚␇, q␇Λ␇, q␇Λ␇);
+Test_N(q␇𝞛␇, q␇𝞛␇, q␇𝞛␇, q␇Μ␇, q␇Μ␇);
+Test_N(q␇𝞜␇, q␇𝞜␇, q␇𝞜␇, q␇Ν␇, q␇Ν␇);
+Test_N(q␇𝞝␇, q␇𝞝␇, q␇𝞝␇, q␇Ξ␇, q␇Ξ␇);
+Test_N(q␇𝞞␇, q␇𝞞␇, q␇𝞞␇, q␇Ο␇, q␇Ο␇);
+Test_N(q␇𝞟␇, q␇𝞟␇, q␇𝞟␇, q␇Π␇, q␇Π␇);
+Test_N(q␇𝞠␇, q␇𝞠␇, q␇𝞠␇, q␇Ρ␇, q␇Ρ␇);
+Test_N(q␇𝞡␇, q␇𝞡␇, q␇𝞡␇, q␇Θ␇, q␇Θ␇);
+Test_N(q␇𝞢␇, q␇𝞢␇, q␇𝞢␇, q␇Σ␇, q␇Σ␇);
+Test_N(q␇𝞣␇, q␇𝞣␇, q␇𝞣␇, q␇Τ␇, q␇Τ␇);
+Test_N(q␇𝞤␇, q␇𝞤␇, q␇𝞤␇, q␇Υ␇, q␇Υ␇);
+Test_N(q␇𝞥␇, q␇𝞥␇, q␇𝞥␇, q␇Φ␇, q␇Φ␇);
+Test_N(q␇𝞦␇, q␇𝞦␇, q␇𝞦␇, q␇Χ␇, q␇Χ␇);
+Test_N(q␇𝞧␇, q␇𝞧␇, q␇𝞧␇, q␇Ψ␇, q␇Ψ␇);
+Test_N(q␇𝞨␇, q␇𝞨␇, q␇𝞨␇, q␇Ω␇, q␇Ω␇);
+Test_N(q␇𝞩␇, q␇𝞩␇, q␇𝞩␇, q␇∇␇, q␇∇␇);
+Test_N(q␇𝞪␇, q␇𝞪␇, q␇𝞪␇, q␇α␇, q␇α␇);
+Test_N(q␇𝞫␇, q␇𝞫␇, q␇𝞫␇, q␇β␇, q␇β␇);
+Test_N(q␇𝞬␇, q␇𝞬␇, q␇𝞬␇, q␇γ␇, q␇γ␇);
+Test_N(q␇𝞭␇, q␇𝞭␇, q␇𝞭␇, q␇δ␇, q␇δ␇);
+Test_N(q␇𝞮␇, q␇𝞮␇, q␇𝞮␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝞯␇, q␇𝞯␇, q␇𝞯␇, q␇ζ␇, q␇ζ␇);
+Test_N(q␇𝞰␇, q␇𝞰␇, q␇𝞰␇, q␇η␇, q␇η␇);
+Test_N(q␇𝞱␇, q␇𝞱␇, q␇𝞱␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝞲␇, q␇𝞲␇, q␇𝞲␇, q␇ι␇, q␇ι␇);
+Test_N(q␇𝞳␇, q␇𝞳␇, q␇𝞳␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝞴␇, q␇𝞴␇, q␇𝞴␇, q␇λ␇, q␇λ␇);
+Test_N(q␇𝞵␇, q␇𝞵␇, q␇𝞵␇, q␇μ␇, q␇μ␇);
+Test_N(q␇𝞶␇, q␇𝞶␇, q␇𝞶␇, q␇ν␇, q␇ν␇);
+Test_N(q␇𝞷␇, q␇𝞷␇, q␇𝞷␇, q␇ξ␇, q␇ξ␇);
+Test_N(q␇𝞸␇, q␇𝞸␇, q␇𝞸␇, q␇ο␇, q␇ο␇);
+Test_N(q␇𝞹␇, q␇𝞹␇, q␇𝞹␇, q␇π␇, q␇π␇);
+Test_N(q␇𝞺␇, q␇𝞺␇, q␇𝞺␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝞻␇, q␇𝞻␇, q␇𝞻␇, q␇ς␇, q␇ς␇);
+Test_N(q␇𝞼␇, q␇𝞼␇, q␇𝞼␇, q␇σ␇, q␇σ␇);
+Test_N(q␇𝞽␇, q␇𝞽␇, q␇𝞽␇, q␇τ␇, q␇τ␇);
+Test_N(q␇𝞾␇, q␇𝞾␇, q␇𝞾␇, q␇υ␇, q␇υ␇);
+Test_N(q␇𝞿␇, q␇𝞿␇, q␇𝞿␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝟀␇, q␇𝟀␇, q␇𝟀␇, q␇χ␇, q␇χ␇);
+Test_N(q␇𝟁␇, q␇𝟁␇, q␇𝟁␇, q␇ψ␇, q␇ψ␇);
+Test_N(q␇𝟂␇, q␇𝟂␇, q␇𝟂␇, q␇ω␇, q␇ω␇);
+Test_N(q␇𝟃␇, q␇𝟃␇, q␇𝟃␇, q␇∂␇, q␇∂␇);
+Test_N(q␇𝟄␇, q␇𝟄␇, q␇𝟄␇, q␇ε␇, q␇ε␇);
+Test_N(q␇𝟅␇, q␇𝟅␇, q␇𝟅␇, q␇θ␇, q␇θ␇);
+Test_N(q␇𝟆␇, q␇𝟆␇, q␇𝟆␇, q␇κ␇, q␇κ␇);
+Test_N(q␇𝟇␇, q␇𝟇␇, q␇𝟇␇, q␇φ␇, q␇φ␇);
+Test_N(q␇𝟈␇, q␇𝟈␇, q␇𝟈␇, q␇ρ␇, q␇ρ␇);
+Test_N(q␇𝟉␇, q␇𝟉␇, q␇𝟉␇, q␇π␇, q␇π␇);
+Test_N(q␇𝟊␇, q␇𝟊␇, q␇𝟊␇, q␇Ϝ␇, q␇Ϝ␇);
+Test_N(q␇𝟋␇, q␇𝟋␇, q␇𝟋␇, q␇ϝ␇, q␇ϝ␇);
+Test_N(q␇𝟎␇, q␇𝟎␇, q␇𝟎␇, q␇0␇, q␇0␇);
+Test_N(q␇𝟏␇, q␇𝟏␇, q␇𝟏␇, q␇1␇, q␇1␇);
+Test_N(q␇𝟐␇, q␇𝟐␇, q␇𝟐␇, q␇2␇, q␇2␇);
+Test_N(q␇𝟑␇, q␇𝟑␇, q␇𝟑␇, q␇3␇, q␇3␇);
+Test_N(q␇𝟒␇, q␇𝟒␇, q␇𝟒␇, q␇4␇, q␇4␇);
+Test_N(q␇𝟓␇, q␇𝟓␇, q␇𝟓␇, q␇5␇, q␇5␇);
+Test_N(q␇𝟔␇, q␇𝟔␇, q␇𝟔␇, q␇6␇, q␇6␇);
+Test_N(q␇𝟕␇, q␇𝟕␇, q␇𝟕␇, q␇7␇, q␇7␇);
+Test_N(q␇𝟖␇, q␇𝟖␇, q␇𝟖␇, q␇8␇, q␇8␇);
+Test_N(q␇𝟗␇, q␇𝟗␇, q␇𝟗␇, q␇9␇, q␇9␇);
+Test_N(q␇𝟘␇, q␇𝟘␇, q␇𝟘␇, q␇0␇, q␇0␇);
+Test_N(q␇𝟙␇, q␇𝟙␇, q␇𝟙␇, q␇1␇, q␇1␇);
+Test_N(q␇𝟚␇, q␇𝟚␇, q␇𝟚␇, q␇2␇, q␇2␇);
+Test_N(q␇𝟛␇, q␇𝟛␇, q␇𝟛␇, q␇3␇, q␇3␇);
+Test_N(q␇𝟜␇, q␇𝟜␇, q␇𝟜␇, q␇4␇, q␇4␇);
+Test_N(q␇𝟝␇, q␇𝟝␇, q␇𝟝␇, q␇5␇, q␇5␇);
+Test_N(q␇𝟞␇, q␇𝟞␇, q␇𝟞␇, q␇6␇, q␇6␇);
+Test_N(q␇𝟟␇, q␇𝟟␇, q␇𝟟␇, q␇7␇, q␇7␇);
+Test_N(q␇𝟠␇, q␇𝟠␇, q␇𝟠␇, q␇8␇, q␇8␇);
+Test_N(q␇𝟡␇, q␇𝟡␇, q␇𝟡␇, q␇9␇, q␇9␇);
+Test_N(q␇𝟢␇, q␇𝟢␇, q␇𝟢␇, q␇0␇, q␇0␇);
+Test_N(q␇𝟣␇, q␇𝟣␇, q␇𝟣␇, q␇1␇, q␇1␇);
+Test_N(q␇𝟤␇, q␇𝟤␇, q␇𝟤␇, q␇2␇, q␇2␇);
+Test_N(q␇𝟥␇, q␇𝟥␇, q␇𝟥␇, q␇3␇, q␇3␇);
+Test_N(q␇𝟦␇, q␇𝟦␇, q␇𝟦␇, q␇4␇, q␇4␇);
+Test_N(q␇𝟧␇, q␇𝟧␇, q␇𝟧␇, q␇5␇, q␇5␇);
+Test_N(q␇𝟨␇, q␇𝟨␇, q␇𝟨␇, q␇6␇, q␇6␇);
+Test_N(q␇𝟩␇, q␇𝟩␇, q␇𝟩␇, q␇7␇, q␇7␇);
+Test_N(q␇𝟪␇, q␇𝟪␇, q␇𝟪␇, q␇8␇, q␇8␇);
+Test_N(q␇𝟫␇, q␇𝟫␇, q␇𝟫␇, q␇9␇, q␇9␇);
+Test_N(q␇𝟬␇, q␇𝟬␇, q␇𝟬␇, q␇0␇, q␇0␇);
+Test_N(q␇𝟭␇, q␇𝟭␇, q␇𝟭␇, q␇1␇, q␇1␇);
+Test_N(q␇𝟮␇, q␇𝟮␇, q␇𝟮␇, q␇2␇, q␇2␇);
+Test_N(q␇𝟯␇, q␇𝟯␇, q␇𝟯␇, q␇3␇, q␇3␇);
+Test_N(q␇𝟰␇, q␇𝟰␇, q␇𝟰␇, q␇4␇, q␇4␇);
+Test_N(q␇𝟱␇, q␇𝟱␇, q␇𝟱␇, q␇5␇, q␇5␇);
+Test_N(q␇𝟲␇, q␇𝟲␇, q␇𝟲␇, q␇6␇, q␇6␇);
+Test_N(q␇𝟳␇, q␇𝟳␇, q␇𝟳␇, q␇7␇, q␇7␇);
+Test_N(q␇𝟴␇, q␇𝟴␇, q␇𝟴␇, q␇8␇, q␇8␇);
+Test_N(q␇𝟵␇, q␇𝟵␇, q␇𝟵␇, q␇9␇, q␇9␇);
+Test_N(q␇𝟶␇, q␇𝟶␇, q␇𝟶␇, q␇0␇, q␇0␇);
+Test_N(q␇𝟷␇, q␇𝟷␇, q␇𝟷␇, q␇1␇, q␇1␇);
+Test_N(q␇𝟸␇, q␇𝟸␇, q␇𝟸␇, q␇2␇, q␇2␇);
+Test_N(q␇𝟹␇, q␇𝟹␇, q␇𝟹␇, q␇3␇, q␇3␇);
+Test_N(q␇𝟺␇, q␇𝟺␇, q␇𝟺␇, q␇4␇, q␇4␇);
+Test_N(q␇𝟻␇, q␇𝟻␇, q␇𝟻␇, q␇5␇, q␇5␇);
+Test_N(q␇𝟼␇, q␇𝟼␇, q␇𝟼␇, q␇6␇, q␇6␇);
+Test_N(q␇𝟽␇, q␇𝟽␇, q␇𝟽␇, q␇7␇, q␇7␇);
+Test_N(q␇𝟾␇, q␇𝟾␇, q␇𝟾␇, q␇8␇, q␇8␇);
+Test_N(q␇𝟿␇, q␇𝟿␇, q␇𝟿␇, q␇9␇, q␇9␇);
+Test_N(q␇𞀰␇, q␇𞀰␇, q␇𞀰␇, q␇а␇, q␇а␇);
+Test_N(q␇𞀱␇, q␇𞀱␇, q␇𞀱␇, q␇б␇, q␇б␇);
+Test_N(q␇𞀲␇, q␇𞀲␇, q␇𞀲␇, q␇в␇, q␇в␇);
+Test_N(q␇𞀳␇, q␇𞀳␇, q␇𞀳␇, q␇г␇, q␇г␇);
+Test_N(q␇𞀴␇, q␇𞀴␇, q␇𞀴␇, q␇д␇, q␇д␇);
+Test_N(q␇𞀵␇, q␇𞀵␇, q␇𞀵␇, q␇е␇, q␇е␇);
+Test_N(q␇𞀶␇, q␇𞀶␇, q␇𞀶␇, q␇ж␇, q␇ж␇);
+Test_N(q␇𞀷␇, q␇𞀷␇, q␇𞀷␇, q␇з␇, q␇з␇);
+Test_N(q␇𞀸␇, q␇𞀸␇, q␇𞀸␇, q␇и␇, q␇и␇);
+Test_N(q␇𞀹␇, q␇𞀹␇, q␇𞀹␇, q␇к␇, q␇к␇);
+Test_N(q␇𞀺␇, q␇𞀺␇, q␇𞀺␇, q␇л␇, q␇л␇);
+Test_N(q␇𞀻␇, q␇𞀻␇, q␇𞀻␇, q␇м␇, q␇м␇);
+Test_N(q␇𞀼␇, q␇𞀼␇, q␇𞀼␇, q␇о␇, q␇о␇);
+Test_N(q␇𞀽␇, q␇𞀽␇, q␇𞀽␇, q␇п␇, q␇п␇);
+Test_N(q␇𞀾␇, q␇𞀾␇, q␇𞀾␇, q␇р␇, q␇р␇);
+Test_N(q␇𞀿␇, q␇𞀿␇, q␇𞀿␇, q␇с␇, q␇с␇);
+Test_N(q␇𞁀␇, q␇𞁀␇, q␇𞁀␇, q␇т␇, q␇т␇);
+Test_N(q␇𞁁␇, q␇𞁁␇, q␇𞁁␇, q␇у␇, q␇у␇);
+Test_N(q␇𞁂␇, q␇𞁂␇, q␇𞁂␇, q␇ф␇, q␇ф␇);
+Test_N(q␇𞁃␇, q␇𞁃␇, q␇𞁃␇, q␇х␇, q␇х␇);
+Test_N(q␇𞁄␇, q␇𞁄␇, q␇𞁄␇, q␇ц␇, q␇ц␇);
+Test_N(q␇𞁅␇, q␇𞁅␇, q␇𞁅␇, q␇ч␇, q␇ч␇);
+Test_N(q␇𞁆␇, q␇𞁆␇, q␇𞁆␇, q␇ш␇, q␇ш␇);
+Test_N(q␇𞁇␇, q␇𞁇␇, q␇𞁇␇, q␇ы␇, q␇ы␇);
+Test_N(q␇𞁈␇, q␇𞁈␇, q␇𞁈␇, q␇э␇, q␇э␇);
+Test_N(q␇𞁉␇, q␇𞁉␇, q␇𞁉␇, q␇ю␇, q␇ю␇);
+Test_N(q␇𞁊␇, q␇𞁊␇, q␇𞁊␇, q␇ꚉ␇, q␇ꚉ␇);
+Test_N(q␇𞁋␇, q␇𞁋␇, q␇𞁋␇, q␇ә␇, q␇ә␇);
+Test_N(q␇𞁌␇, q␇𞁌␇, q␇𞁌␇, q␇і␇, q␇і␇);
+Test_N(q␇𞁍␇, q␇𞁍␇, q␇𞁍␇, q␇ј␇, q␇ј␇);
+Test_N(q␇𞁎␇, q␇𞁎␇, q␇𞁎␇, q␇ө␇, q␇ө␇);
+Test_N(q␇𞁏␇, q␇𞁏␇, q␇𞁏␇, q␇ү␇, q␇ү␇);
+Test_N(q␇𞁐␇, q␇𞁐␇, q␇𞁐␇, q␇ӏ␇, q␇ӏ␇);
+Test_N(q␇𞁑␇, q␇𞁑␇, q␇𞁑␇, q␇а␇, q␇а␇);
+Test_N(q␇𞁒␇, q␇𞁒␇, q␇𞁒␇, q␇б␇, q␇б␇);
+Test_N(q␇𞁓␇, q␇𞁓␇, q␇𞁓␇, q␇в␇, q␇в␇);
+Test_N(q␇𞁔␇, q␇𞁔␇, q␇𞁔␇, q␇г␇, q␇г␇);
+Test_N(q␇𞁕␇, q␇𞁕␇, q␇𞁕␇, q␇д␇, q␇д␇);
+Test_N(q␇𞁖␇, q␇𞁖␇, q␇𞁖␇, q␇е␇, q␇е␇);
+Test_N(q␇𞁗␇, q␇𞁗␇, q␇𞁗␇, q␇ж␇, q␇ж␇);
+Test_N(q␇𞁘␇, q␇𞁘␇, q␇𞁘␇, q␇з␇, q␇з␇);
+Test_N(q␇𞁙␇, q␇𞁙␇, q␇𞁙␇, q␇и␇, q␇и␇);
+Test_N(q␇𞁚␇, q␇𞁚␇, q␇𞁚␇, q␇к␇, q␇к␇);
+Test_N(q␇𞁛␇, q␇𞁛␇, q␇𞁛␇, q␇л␇, q␇л␇);
+Test_N(q␇𞁜␇, q␇𞁜␇, q␇𞁜␇, q␇о␇, q␇о␇);
+Test_N(q␇𞁝␇, q␇𞁝␇, q␇𞁝␇, q␇п␇, q␇п␇);
+Test_N(q␇𞁞␇, q␇𞁞␇, q␇𞁞␇, q␇с␇, q␇с␇);
+Test_N(q␇𞁟␇, q␇𞁟␇, q␇𞁟␇, q␇у␇, q␇у␇);
+Test_N(q␇𞁠␇, q␇𞁠␇, q␇𞁠␇, q␇ф␇, q␇ф␇);
+Test_N(q␇𞁡␇, q␇𞁡␇, q␇𞁡␇, q␇х␇, q␇х␇);
+Test_N(q␇𞁢␇, q␇𞁢␇, q␇𞁢␇, q␇ц␇, q␇ц␇);
+Test_N(q␇𞁣␇, q␇𞁣␇, q␇𞁣␇, q␇ч␇, q␇ч␇);
+Test_N(q␇𞁤␇, q␇𞁤␇, q␇𞁤␇, q␇ш␇, q␇ш␇);
+Test_N(q␇𞁥␇, q␇𞁥␇, q␇𞁥␇, q␇ъ␇, q␇ъ␇);
+Test_N(q␇𞁦␇, q␇𞁦␇, q␇𞁦␇, q␇ы␇, q␇ы␇);
+Test_N(q␇𞁧␇, q␇𞁧␇, q␇𞁧␇, q␇ґ␇, q␇ґ␇);
+Test_N(q␇𞁨␇, q␇𞁨␇, q␇𞁨␇, q␇і␇, q␇і␇);
+Test_N(q␇𞁩␇, q␇𞁩␇, q␇𞁩␇, q␇ѕ␇, q␇ѕ␇);
+Test_N(q␇𞁪␇, q␇𞁪␇, q␇𞁪␇, q␇џ␇, q␇џ␇);
+Test_N(q␇𞁫␇, q␇𞁫␇, q␇𞁫␇, q␇ҫ␇, q␇ҫ␇);
+Test_N(q␇𞁬␇, q␇𞁬␇, q␇𞁬␇, q␇ꙑ␇, q␇ꙑ␇);
+Test_N(q␇𞁭␇, q␇𞁭␇, q␇𞁭␇, q␇ұ␇, q␇ұ␇);
+Test_N(q␇𞸀␇, q␇𞸀␇, q␇𞸀␇, q␇ا␇, q␇ا␇);
+Test_N(q␇𞸁␇, q␇𞸁␇, q␇𞸁␇, q␇ب␇, q␇ب␇);
+Test_N(q␇𞸂␇, q␇𞸂␇, q␇𞸂␇, q␇ج␇, q␇ج␇);
+Test_N(q␇𞸃␇, q␇𞸃␇, q␇𞸃␇, q␇د␇, q␇د␇);
+Test_N(q␇𞸅␇, q␇𞸅␇, q␇𞸅␇, q␇و␇, q␇و␇);
+Test_N(q␇𞸆␇, q␇𞸆␇, q␇𞸆␇, q␇ز␇, q␇ز␇);
+Test_N(q␇𞸇␇, q␇𞸇␇, q␇𞸇␇, q␇ح␇, q␇ح␇);
+Test_N(q␇𞸈␇, q␇𞸈␇, q␇𞸈␇, q␇ط␇, q␇ط␇);
+Test_N(q␇𞸉␇, q␇𞸉␇, q␇𞸉␇, q␇ي␇, q␇ي␇);
+Test_N(q␇𞸊␇, q␇𞸊␇, q␇𞸊␇, q␇ك␇, q␇ك␇);
+Test_N(q␇𞸋␇, q␇𞸋␇, q␇𞸋␇, q␇ل␇, q␇ل␇);
+Test_N(q␇𞸌␇, q␇𞸌␇, q␇𞸌␇, q␇م␇, q␇م␇);
+Test_N(q␇𞸍␇, q␇𞸍␇, q␇𞸍␇, q␇ن␇, q␇ن␇);
+Test_N(q␇𞸎␇, q␇𞸎␇, q␇𞸎␇, q␇س␇, q␇س␇);
+Test_N(q␇𞸏␇, q␇𞸏␇, q␇𞸏␇, q␇ع␇, q␇ع␇);
+Test_N(q␇𞸐␇, q␇𞸐␇, q␇𞸐␇, q␇ف␇, q␇ف␇);
+Test_N(q␇𞸑␇, q␇𞸑␇, q␇𞸑␇, q␇ص␇, q␇ص␇);
+Test_N(q␇𞸒␇, q␇𞸒␇, q␇𞸒␇, q␇ق␇, q␇ق␇);
+Test_N(q␇𞸓␇, q␇𞸓␇, q␇𞸓␇, q␇ر␇, q␇ر␇);
+Test_N(q␇𞸔␇, q␇𞸔␇, q␇𞸔␇, q␇ش␇, q␇ش␇);
+Test_N(q␇𞸕␇, q␇𞸕␇, q␇𞸕␇, q␇ت␇, q␇ت␇);
+Test_N(q␇𞸖␇, q␇𞸖␇, q␇𞸖␇, q␇ث␇, q␇ث␇);
+Test_N(q␇𞸗␇, q␇𞸗␇, q␇𞸗␇, q␇خ␇, q␇خ␇);
+Test_N(q␇𞸘␇, q␇𞸘␇, q␇𞸘␇, q␇ذ␇, q␇ذ␇);
+Test_N(q␇𞸙␇, q␇𞸙␇, q␇𞸙␇, q␇ض␇, q␇ض␇);
+Test_N(q␇𞸚␇, q␇𞸚␇, q␇𞸚␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇𞸛␇, q␇𞸛␇, q␇𞸛␇, q␇غ␇, q␇غ␇);
+Test_N(q␇𞸜␇, q␇𞸜␇, q␇𞸜␇, q␇ٮ␇, q␇ٮ␇);
+Test_N(q␇𞸝␇, q␇𞸝␇, q␇𞸝␇, q␇ں␇, q␇ں␇);
+Test_N(q␇𞸞␇, q␇𞸞␇, q␇𞸞␇, q␇ڡ␇, q␇ڡ␇);
+Test_N(q␇𞸟␇, q␇𞸟␇, q␇𞸟␇, q␇ٯ␇, q␇ٯ␇);
+Test_N(q␇𞸡␇, q␇𞸡␇, q␇𞸡␇, q␇ب␇, q␇ب␇);
+Test_N(q␇𞸢␇, q␇𞸢␇, q␇𞸢␇, q␇ج␇, q␇ج␇);
+Test_N(q␇𞸤␇, q␇𞸤␇, q␇𞸤␇, q␇ه␇, q␇ه␇);
+Test_N(q␇𞸧␇, q␇𞸧␇, q␇𞸧␇, q␇ح␇, q␇ح␇);
+Test_N(q␇𞸩␇, q␇𞸩␇, q␇𞸩␇, q␇ي␇, q␇ي␇);
+Test_N(q␇𞸪␇, q␇𞸪␇, q␇𞸪␇, q␇ك␇, q␇ك␇);
+Test_N(q␇𞸫␇, q␇𞸫␇, q␇𞸫␇, q␇ل␇, q␇ل␇);
+Test_N(q␇𞸬␇, q␇𞸬␇, q␇𞸬␇, q␇م␇, q␇م␇);
+Test_N(q␇𞸭␇, q␇𞸭␇, q␇𞸭␇, q␇ن␇, q␇ن␇);
+Test_N(q␇𞸮␇, q␇𞸮␇, q␇𞸮␇, q␇س␇, q␇س␇);
+Test_N(q␇𞸯␇, q␇𞸯␇, q␇𞸯␇, q␇ع␇, q␇ع␇);
+Test_N(q␇𞸰␇, q␇𞸰␇, q␇𞸰␇, q␇ف␇, q␇ف␇);
+Test_N(q␇𞸱␇, q␇𞸱␇, q␇𞸱␇, q␇ص␇, q␇ص␇);
+Test_N(q␇𞸲␇, q␇𞸲␇, q␇𞸲␇, q␇ق␇, q␇ق␇);
+Test_N(q␇𞸴␇, q␇𞸴␇, q␇𞸴␇, q␇ش␇, q␇ش␇);
+Test_N(q␇𞸵␇, q␇𞸵␇, q␇𞸵␇, q␇ت␇, q␇ت␇);
+Test_N(q␇𞸶␇, q␇𞸶␇, q␇𞸶␇, q␇ث␇, q␇ث␇);
+Test_N(q␇𞸷␇, q␇𞸷␇, q␇𞸷␇, q␇خ␇, q␇خ␇);
+Test_N(q␇𞸹␇, q␇𞸹␇, q␇𞸹␇, q␇ض␇, q␇ض␇);
+Test_N(q␇𞸻␇, q␇𞸻␇, q␇𞸻␇, q␇غ␇, q␇غ␇);
+Test_N(q␇𞹂␇, q␇𞹂␇, q␇𞹂␇, q␇ج␇, q␇ج␇);
+Test_N(q␇𞹇␇, q␇𞹇␇, q␇𞹇␇, q␇ح␇, q␇ح␇);
+Test_N(q␇𞹉␇, q␇𞹉␇, q␇𞹉␇, q␇ي␇, q␇ي␇);
+Test_N(q␇𞹋␇, q␇𞹋␇, q␇𞹋␇, q␇ل␇, q␇ل␇);
+Test_N(q␇𞹍␇, q␇𞹍␇, q␇𞹍␇, q␇ن␇, q␇ن␇);
+Test_N(q␇𞹎␇, q␇𞹎␇, q␇𞹎␇, q␇س␇, q␇س␇);
+Test_N(q␇𞹏␇, q␇𞹏␇, q␇𞹏␇, q␇ع␇, q␇ع␇);
+Test_N(q␇𞹑␇, q␇𞹑␇, q␇𞹑␇, q␇ص␇, q␇ص␇);
+Test_N(q␇𞹒␇, q␇𞹒␇, q␇𞹒␇, q␇ق␇, q␇ق␇);
+Test_N(q␇𞹔␇, q␇𞹔␇, q␇𞹔␇, q␇ش␇, q␇ش␇);
+Test_N(q␇𞹗␇, q␇𞹗␇, q␇𞹗␇, q␇خ␇, q␇خ␇);
+Test_N(q␇𞹙␇, q␇𞹙␇, q␇𞹙␇, q␇ض␇, q␇ض␇);
+Test_N(q␇𞹛␇, q␇𞹛␇, q␇𞹛␇, q␇غ␇, q␇غ␇);
+Test_N(q␇𞹝␇, q␇𞹝␇, q␇𞹝␇, q␇ں␇, q␇ں␇);
+Test_N(q␇𞹟␇, q␇𞹟␇, q␇𞹟␇, q␇ٯ␇, q␇ٯ␇);
+Test_N(q␇𞹡␇, q␇𞹡␇, q␇𞹡␇, q␇ب␇, q␇ب␇);
+Test_N(q␇𞹢␇, q␇𞹢␇, q␇𞹢␇, q␇ج␇, q␇ج␇);
+Test_N(q␇𞹤␇, q␇𞹤␇, q␇𞹤␇, q␇ه␇, q␇ه␇);
+Test_N(q␇𞹧␇, q␇𞹧␇, q␇𞹧␇, q␇ح␇, q␇ح␇);
+Test_N(q␇𞹨␇, q␇𞹨␇, q␇𞹨␇, q␇ط␇, q␇ط␇);
+Test_N(q␇𞹩␇, q␇𞹩␇, q␇𞹩␇, q␇ي␇, q␇ي␇);
+Test_N(q␇𞹪␇, q␇𞹪␇, q␇𞹪␇, q␇ك␇, q␇ك␇);
+Test_N(q␇𞹬␇, q␇𞹬␇, q␇𞹬␇, q␇م␇, q␇م␇);
+Test_N(q␇𞹭␇, q␇𞹭␇, q␇𞹭␇, q␇ن␇, q␇ن␇);
+Test_N(q␇𞹮␇, q␇𞹮␇, q␇𞹮␇, q␇س␇, q␇س␇);
+Test_N(q␇𞹯␇, q␇𞹯␇, q␇𞹯␇, q␇ع␇, q␇ع␇);
+Test_N(q␇𞹰␇, q␇𞹰␇, q␇𞹰␇, q␇ف␇, q␇ف␇);
+Test_N(q␇𞹱␇, q␇𞹱␇, q␇𞹱␇, q␇ص␇, q␇ص␇);
+Test_N(q␇𞹲␇, q␇𞹲␇, q␇𞹲␇, q␇ق␇, q␇ق␇);
+Test_N(q␇𞹴␇, q␇𞹴␇, q␇𞹴␇, q␇ش␇, q␇ش␇);
+Test_N(q␇𞹵␇, q␇𞹵␇, q␇𞹵␇, q␇ت␇, q␇ت␇);
+Test_N(q␇𞹶␇, q␇𞹶␇, q␇𞹶␇, q␇ث␇, q␇ث␇);
+Test_N(q␇𞹷␇, q␇𞹷␇, q␇𞹷␇, q␇خ␇, q␇خ␇);
+Test_N(q␇𞹹␇, q␇𞹹␇, q␇𞹹␇, q␇ض␇, q␇ض␇);
+Test_N(q␇𞹺␇, q␇𞹺␇, q␇𞹺␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇𞹻␇, q␇𞹻␇, q␇𞹻␇, q␇غ␇, q␇غ␇);
+Test_N(q␇𞹼␇, q␇𞹼␇, q␇𞹼␇, q␇ٮ␇, q␇ٮ␇);
+Test_N(q␇𞹾␇, q␇𞹾␇, q␇𞹾␇, q␇ڡ␇, q␇ڡ␇);
+Test_N(q␇𞺀␇, q␇𞺀␇, q␇𞺀␇, q␇ا␇, q␇ا␇);
+Test_N(q␇𞺁␇, q␇𞺁␇, q␇𞺁␇, q␇ب␇, q␇ب␇);
+Test_N(q␇𞺂␇, q␇𞺂␇, q␇𞺂␇, q␇ج␇, q␇ج␇);
+Test_N(q␇𞺃␇, q␇𞺃␇, q␇𞺃␇, q␇د␇, q␇د␇);
+Test_N(q␇𞺄␇, q␇𞺄␇, q␇𞺄␇, q␇ه␇, q␇ه␇);
+Test_N(q␇𞺅␇, q␇𞺅␇, q␇𞺅␇, q␇و␇, q␇و␇);
+Test_N(q␇𞺆␇, q␇𞺆␇, q␇𞺆␇, q␇ز␇, q␇ز␇);
+Test_N(q␇𞺇␇, q␇𞺇␇, q␇𞺇␇, q␇ح␇, q␇ح␇);
+Test_N(q␇𞺈␇, q␇𞺈␇, q␇𞺈␇, q␇ط␇, q␇ط␇);
+Test_N(q␇𞺉␇, q␇𞺉␇, q␇𞺉␇, q␇ي␇, q␇ي␇);
+Test_N(q␇𞺋␇, q␇𞺋␇, q␇𞺋␇, q␇ل␇, q␇ل␇);
+Test_N(q␇𞺌␇, q␇𞺌␇, q␇𞺌␇, q␇م␇, q␇م␇);
+Test_N(q␇𞺍␇, q␇𞺍␇, q␇𞺍␇, q␇ن␇, q␇ن␇);
+Test_N(q␇𞺎␇, q␇𞺎␇, q␇𞺎␇, q␇س␇, q␇س␇);
+Test_N(q␇𞺏␇, q␇𞺏␇, q␇𞺏␇, q␇ع␇, q␇ع␇);
+Test_N(q␇𞺐␇, q␇𞺐␇, q␇𞺐␇, q␇ف␇, q␇ف␇);
+Test_N(q␇𞺑␇, q␇𞺑␇, q␇𞺑␇, q␇ص␇, q␇ص␇);
+Test_N(q␇𞺒␇, q␇𞺒␇, q␇𞺒␇, q␇ق␇, q␇ق␇);
+Test_N(q␇𞺓␇, q␇𞺓␇, q␇𞺓␇, q␇ر␇, q␇ر␇);
+Test_N(q␇𞺔␇, q␇𞺔␇, q␇𞺔␇, q␇ش␇, q␇ش␇);
+Test_N(q␇𞺕␇, q␇𞺕␇, q␇𞺕␇, q␇ت␇, q␇ت␇);
+Test_N(q␇𞺖␇, q␇𞺖␇, q␇𞺖␇, q␇ث␇, q␇ث␇);
+Test_N(q␇𞺗␇, q␇𞺗␇, q␇𞺗␇, q␇خ␇, q␇خ␇);
+Test_N(q␇𞺘␇, q␇𞺘␇, q␇𞺘␇, q␇ذ␇, q␇ذ␇);
+Test_N(q␇𞺙␇, q␇𞺙␇, q␇𞺙␇, q␇ض␇, q␇ض␇);
+Test_N(q␇𞺚␇, q␇𞺚␇, q␇𞺚␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇𞺛␇, q␇𞺛␇, q␇𞺛␇, q␇غ␇, q␇غ␇);
+Test_N(q␇𞺡␇, q␇𞺡␇, q␇𞺡␇, q␇ب␇, q␇ب␇);
+Test_N(q␇𞺢␇, q␇𞺢␇, q␇𞺢␇, q␇ج␇, q␇ج␇);
+Test_N(q␇𞺣␇, q␇𞺣␇, q␇𞺣␇, q␇د␇, q␇د␇);
+Test_N(q␇𞺥␇, q␇𞺥␇, q␇𞺥␇, q␇و␇, q␇و␇);
+Test_N(q␇𞺦␇, q␇𞺦␇, q␇𞺦␇, q␇ز␇, q␇ز␇);
+Test_N(q␇𞺧␇, q␇𞺧␇, q␇𞺧␇, q␇ح␇, q␇ح␇);
+Test_N(q␇𞺨␇, q␇𞺨␇, q␇𞺨␇, q␇ط␇, q␇ط␇);
+Test_N(q␇𞺩␇, q␇𞺩␇, q␇𞺩␇, q␇ي␇, q␇ي␇);
+Test_N(q␇𞺫␇, q␇𞺫␇, q␇𞺫␇, q␇ل␇, q␇ل␇);
+Test_N(q␇𞺬␇, q␇𞺬␇, q␇𞺬␇, q␇م␇, q␇م␇);
+Test_N(q␇𞺭␇, q␇𞺭␇, q␇𞺭␇, q␇ن␇, q␇ن␇);
+Test_N(q␇𞺮␇, q␇𞺮␇, q␇𞺮␇, q␇س␇, q␇س␇);
+Test_N(q␇𞺯␇, q␇𞺯␇, q␇𞺯␇, q␇ع␇, q␇ع␇);
+Test_N(q␇𞺰␇, q␇𞺰␇, q␇𞺰␇, q␇ف␇, q␇ف␇);
+Test_N(q␇𞺱␇, q␇𞺱␇, q␇𞺱␇, q␇ص␇, q␇ص␇);
+Test_N(q␇𞺲␇, q␇𞺲␇, q␇𞺲␇, q␇ق␇, q␇ق␇);
+Test_N(q␇𞺳␇, q␇𞺳␇, q␇𞺳␇, q␇ر␇, q␇ر␇);
+Test_N(q␇𞺴␇, q␇𞺴␇, q␇𞺴␇, q␇ش␇, q␇ش␇);
+Test_N(q␇𞺵␇, q␇𞺵␇, q␇𞺵␇, q␇ت␇, q␇ت␇);
+Test_N(q␇𞺶␇, q␇𞺶␇, q␇𞺶␇, q␇ث␇, q␇ث␇);
+Test_N(q␇𞺷␇, q␇𞺷␇, q␇𞺷␇, q␇خ␇, q␇خ␇);
+Test_N(q␇𞺸␇, q␇𞺸␇, q␇𞺸␇, q␇ذ␇, q␇ذ␇);
+Test_N(q␇𞺹␇, q␇𞺹␇, q␇𞺹␇, q␇ض␇, q␇ض␇);
+Test_N(q␇𞺺␇, q␇𞺺␇, q␇𞺺␇, q␇ظ␇, q␇ظ␇);
+Test_N(q␇𞺻␇, q␇𞺻␇, q␇𞺻␇, q␇غ␇, q␇غ␇);
+Test_N(q␇🄀␇, q␇🄀␇, q␇🄀␇, q␇0.␇, q␇0.␇);
+Test_N(q␇🄁␇, q␇🄁␇, q␇🄁␇, q␇0,␇, q␇0,␇);
+Test_N(q␇🄂␇, q␇🄂␇, q␇🄂␇, q␇1,␇, q␇1,␇);
+Test_N(q␇🄃␇, q␇🄃␇, q␇🄃␇, q␇2,␇, q␇2,␇);
+Test_N(q␇🄄␇, q␇🄄␇, q␇🄄␇, q␇3,␇, q␇3,␇);
+Test_N(q␇🄅␇, q␇🄅␇, q␇🄅␇, q␇4,␇, q␇4,␇);
+Test_N(q␇🄆␇, q␇🄆␇, q␇🄆␇, q␇5,␇, q␇5,␇);
+Test_N(q␇🄇␇, q␇🄇␇, q␇🄇␇, q␇6,␇, q␇6,␇);
+Test_N(q␇🄈␇, q␇🄈␇, q␇🄈␇, q␇7,␇, q␇7,␇);
+Test_N(q␇🄉␇, q␇🄉␇, q␇🄉␇, q␇8,␇, q␇8,␇);
+Test_N(q␇🄊␇, q␇🄊␇, q␇🄊␇, q␇9,␇, q␇9,␇);
+Test_N(q␇🄐␇, q␇🄐␇, q␇🄐␇, q␇(A)␇, q␇(A)␇);
+Test_N(q␇🄑␇, q␇🄑␇, q␇🄑␇, q␇(B)␇, q␇(B)␇);
+Test_N(q␇🄒␇, q␇🄒␇, q␇🄒␇, q␇(C)␇, q␇(C)␇);
+Test_N(q␇🄓␇, q␇🄓␇, q␇🄓␇, q␇(D)␇, q␇(D)␇);
+Test_N(q␇🄔␇, q␇🄔␇, q␇🄔␇, q␇(E)␇, q␇(E)␇);
+Test_N(q␇🄕␇, q␇🄕␇, q␇🄕␇, q␇(F)␇, q␇(F)␇);
+Test_N(q␇🄖␇, q␇🄖␇, q␇🄖␇, q␇(G)␇, q␇(G)␇);
+Test_N(q␇🄗␇, q␇🄗␇, q␇🄗␇, q␇(H)␇, q␇(H)␇);
+Test_N(q␇🄘␇, q␇🄘␇, q␇🄘␇, q␇(I)␇, q␇(I)␇);
+Test_N(q␇🄙␇, q␇🄙␇, q␇🄙␇, q␇(J)␇, q␇(J)␇);
+Test_N(q␇🄚␇, q␇🄚␇, q␇🄚␇, q␇(K)␇, q␇(K)␇);
+Test_N(q␇🄛␇, q␇🄛␇, q␇🄛␇, q␇(L)␇, q␇(L)␇);
+Test_N(q␇🄜␇, q␇🄜␇, q␇🄜␇, q␇(M)␇, q␇(M)␇);
+Test_N(q␇🄝␇, q␇🄝␇, q␇🄝␇, q␇(N)␇, q␇(N)␇);
+Test_N(q␇🄞␇, q␇🄞␇, q␇🄞␇, q␇(O)␇, q␇(O)␇);
+Test_N(q␇🄟␇, q␇🄟␇, q␇🄟␇, q␇(P)␇, q␇(P)␇);
+Test_N(q␇🄠␇, q␇🄠␇, q␇🄠␇, q␇(Q)␇, q␇(Q)␇);
+Test_N(q␇🄡␇, q␇🄡␇, q␇🄡␇, q␇(R)␇, q␇(R)␇);
+Test_N(q␇🄢␇, q␇🄢␇, q␇🄢␇, q␇(S)␇, q␇(S)␇);
+Test_N(q␇🄣␇, q␇🄣␇, q␇🄣␇, q␇(T)␇, q␇(T)␇);
+Test_N(q␇🄤␇, q␇🄤␇, q␇🄤␇, q␇(U)␇, q␇(U)␇);
+Test_N(q␇🄥␇, q␇🄥␇, q␇🄥␇, q␇(V)␇, q␇(V)␇);
+Test_N(q␇🄦␇, q␇🄦␇, q␇🄦␇, q␇(W)␇, q␇(W)␇);
+Test_N(q␇🄧␇, q␇🄧␇, q␇🄧␇, q␇(X)␇, q␇(X)␇);
+Test_N(q␇🄨␇, q␇🄨␇, q␇🄨␇, q␇(Y)␇, q␇(Y)␇);
+Test_N(q␇🄩␇, q␇🄩␇, q␇🄩␇, q␇(Z)␇, q␇(Z)␇);
+Test_N(q␇🄪␇, q␇🄪␇, q␇🄪␇, q␇〔S〕␇, q␇〔S〕␇);
+Test_N(q␇🄫␇, q␇🄫␇, q␇🄫␇, q␇C␇, q␇C␇);
+Test_N(q␇🄬␇, q␇🄬␇, q␇🄬␇, q␇R␇, q␇R␇);
+Test_N(q␇🄭␇, q␇🄭␇, q␇🄭␇, q␇CD␇, q␇CD␇);
+Test_N(q␇🄮␇, q␇🄮␇, q␇🄮␇, q␇WZ␇, q␇WZ␇);
+Test_N(q␇🄰␇, q␇🄰␇, q␇🄰␇, q␇A␇, q␇A␇);
+Test_N(q␇🄱␇, q␇🄱␇, q␇🄱␇, q␇B␇, q␇B␇);
+Test_N(q␇🄲␇, q␇🄲␇, q␇🄲␇, q␇C␇, q␇C␇);
+Test_N(q␇🄳␇, q␇🄳␇, q␇🄳␇, q␇D␇, q␇D␇);
+Test_N(q␇🄴␇, q␇🄴␇, q␇🄴␇, q␇E␇, q␇E␇);
+Test_N(q␇🄵␇, q␇🄵␇, q␇🄵␇, q␇F␇, q␇F␇);
+Test_N(q␇🄶␇, q␇🄶␇, q␇🄶␇, q␇G␇, q␇G␇);
+Test_N(q␇🄷␇, q␇🄷␇, q␇🄷␇, q␇H␇, q␇H␇);
+Test_N(q␇🄸␇, q␇🄸␇, q␇🄸␇, q␇I␇, q␇I␇);
+Test_N(q␇🄹␇, q␇🄹␇, q␇🄹␇, q␇J␇, q␇J␇);
+Test_N(q␇🄺␇, q␇🄺␇, q␇🄺␇, q␇K␇, q␇K␇);
+Test_N(q␇🄻␇, q␇🄻␇, q␇🄻␇, q␇L␇, q␇L␇);
+Test_N(q␇🄼␇, q␇🄼␇, q␇🄼␇, q␇M␇, q␇M␇);
+Test_N(q␇🄽␇, q␇🄽␇, q␇🄽␇, q␇N␇, q␇N␇);
+Test_N(q␇🄾␇, q␇🄾␇, q␇🄾␇, q␇O␇, q␇O␇);
+Test_N(q␇🄿␇, q␇🄿␇, q␇🄿␇, q␇P␇, q␇P␇);
+Test_N(q␇🅀␇, q␇🅀␇, q␇🅀␇, q␇Q␇, q␇Q␇);
+Test_N(q␇🅁␇, q␇🅁␇, q␇🅁␇, q␇R␇, q␇R␇);
+Test_N(q␇🅂␇, q␇🅂␇, q␇🅂␇, q␇S␇, q␇S␇);
+Test_N(q␇🅃␇, q␇🅃␇, q␇🅃␇, q␇T␇, q␇T␇);
+Test_N(q␇🅄␇, q␇🅄␇, q␇🅄␇, q␇U␇, q␇U␇);
+Test_N(q␇🅅␇, q␇🅅␇, q␇🅅␇, q␇V␇, q␇V␇);
+Test_N(q␇🅆␇, q␇🅆␇, q␇🅆␇, q␇W␇, q␇W␇);
+Test_N(q␇🅇␇, q␇🅇␇, q␇🅇␇, q␇X␇, q␇X␇);
+Test_N(q␇🅈␇, q␇🅈␇, q␇🅈␇, q␇Y␇, q␇Y␇);
+Test_N(q␇🅉␇, q␇🅉␇, q␇🅉␇, q␇Z␇, q␇Z␇);
+Test_N(q␇🅊␇, q␇🅊␇, q␇🅊␇, q␇HV␇, q␇HV␇);
+Test_N(q␇🅋␇, q␇🅋␇, q␇🅋␇, q␇MV␇, q␇MV␇);
+Test_N(q␇🅌␇, q␇🅌␇, q␇🅌␇, q␇SD␇, q␇SD␇);
+Test_N(q␇🅍␇, q␇🅍␇, q␇🅍␇, q␇SS␇, q␇SS␇);
+Test_N(q␇🅎␇, q␇🅎␇, q␇🅎␇, q␇PPV␇, q␇PPV␇);
+Test_N(q␇🅏␇, q␇🅏␇, q␇🅏␇, q␇WC␇, q␇WC␇);
+Test_N(q␇🅪␇, q␇🅪␇, q␇🅪␇, q␇MC␇, q␇MC␇);
+Test_N(q␇🅫␇, q␇🅫␇, q␇🅫␇, q␇MD␇, q␇MD␇);
+Test_N(q␇🅬␇, q␇🅬␇, q␇🅬␇, q␇MR␇, q␇MR␇);
+Test_N(q␇🆐␇, q␇🆐␇, q␇🆐␇, q␇DJ␇, q␇DJ␇);
+Test_N(q␇🈀␇, q␇🈀␇, q␇🈀␇, q␇ほか␇, q␇ほか␇);
+Test_N(q␇🈁␇, q␇🈁␇, q␇🈁␇, q␇ココ␇, q␇ココ␇);
+Test_N(q␇🈂␇, q␇🈂␇, q␇🈂␇, q␇サ␇, q␇サ␇);
+Test_N(q␇🈐␇, q␇🈐␇, q␇🈐␇, q␇手␇, q␇手␇);
+Test_N(q␇🈑␇, q␇🈑␇, q␇🈑␇, q␇字␇, q␇字␇);
+Test_N(q␇🈒␇, q␇🈒␇, q␇🈒␇, q␇双␇, q␇双␇);
+Test_N(q␇🈓␇, q␇🈓␇, q␇🈓␇, q␇デ␇, q␇デ␇);
+Test_N(q␇🈔␇, q␇🈔␇, q␇🈔␇, q␇二␇, q␇二␇);
+Test_N(q␇🈕␇, q␇🈕␇, q␇🈕␇, q␇多␇, q␇多␇);
+Test_N(q␇🈖␇, q␇🈖␇, q␇🈖␇, q␇解␇, q␇解␇);
+Test_N(q␇🈗␇, q␇🈗␇, q␇🈗␇, q␇天␇, q␇天␇);
+Test_N(q␇🈘␇, q␇🈘␇, q␇🈘␇, q␇交␇, q␇交␇);
+Test_N(q␇🈙␇, q␇🈙␇, q␇🈙␇, q␇映␇, q␇映␇);
+Test_N(q␇🈚␇, q␇🈚␇, q␇🈚␇, q␇無␇, q␇無␇);
+Test_N(q␇🈛␇, q␇🈛␇, q␇🈛␇, q␇料␇, q␇料␇);
+Test_N(q␇🈜␇, q␇🈜␇, q␇🈜␇, q␇前␇, q␇前␇);
+Test_N(q␇🈝␇, q␇🈝␇, q␇🈝␇, q␇後␇, q␇後␇);
+Test_N(q␇🈞␇, q␇🈞␇, q␇🈞␇, q␇再␇, q␇再␇);
+Test_N(q␇🈟␇, q␇🈟␇, q␇🈟␇, q␇新␇, q␇新␇);
+Test_N(q␇🈠␇, q␇🈠␇, q␇🈠␇, q␇初␇, q␇初␇);
+Test_N(q␇🈡␇, q␇🈡␇, q␇🈡␇, q␇終␇, q␇終␇);
+Test_N(q␇🈢␇, q␇🈢␇, q␇🈢␇, q␇生␇, q␇生␇);
+Test_N(q␇🈣␇, q␇🈣␇, q␇🈣␇, q␇販␇, q␇販␇);
+Test_N(q␇🈤␇, q␇🈤␇, q␇🈤␇, q␇声␇, q␇声␇);
+Test_N(q␇🈥␇, q␇🈥␇, q␇🈥␇, q␇吹␇, q␇吹␇);
+Test_N(q␇🈦␇, q␇🈦␇, q␇🈦␇, q␇演␇, q␇演␇);
+Test_N(q␇🈧␇, q␇🈧␇, q␇🈧␇, q␇投␇, q␇投␇);
+Test_N(q␇🈨␇, q␇🈨␇, q␇🈨␇, q␇捕␇, q␇捕␇);
+Test_N(q␇🈩␇, q␇🈩␇, q␇🈩␇, q␇一␇, q␇一␇);
+Test_N(q␇🈪␇, q␇🈪␇, q␇🈪␇, q␇三␇, q␇三␇);
+Test_N(q␇🈫␇, q␇🈫␇, q␇🈫␇, q␇遊␇, q␇遊␇);
+Test_N(q␇🈬␇, q␇🈬␇, q␇🈬␇, q␇左␇, q␇左␇);
+Test_N(q␇🈭␇, q␇🈭␇, q␇🈭␇, q␇中␇, q␇中␇);
+Test_N(q␇🈮␇, q␇🈮␇, q␇🈮␇, q␇右␇, q␇右␇);
+Test_N(q␇🈯␇, q␇🈯␇, q␇🈯␇, q␇指␇, q␇指␇);
+Test_N(q␇🈰␇, q␇🈰␇, q␇🈰␇, q␇走␇, q␇走␇);
+Test_N(q␇🈱␇, q␇🈱␇, q␇🈱␇, q␇打␇, q␇打␇);
+Test_N(q␇🈲␇, q␇🈲␇, q␇🈲␇, q␇禁␇, q␇禁␇);
+Test_N(q␇🈳␇, q␇🈳␇, q␇🈳␇, q␇空␇, q␇空␇);
+Test_N(q␇🈴␇, q␇🈴␇, q␇🈴␇, q␇合␇, q␇合␇);
+Test_N(q␇🈵␇, q␇🈵␇, q␇🈵␇, q␇満␇, q␇満␇);
+Test_N(q␇🈶␇, q␇🈶␇, q␇🈶␇, q␇有␇, q␇有␇);
+Test_N(q␇🈷␇, q␇🈷␇, q␇🈷␇, q␇月␇, q␇月␇);
+Test_N(q␇🈸␇, q␇🈸␇, q␇🈸␇, q␇申␇, q␇申␇);
+Test_N(q␇🈹␇, q␇🈹␇, q␇🈹␇, q␇割␇, q␇割␇);
+Test_N(q␇🈺␇, q␇🈺␇, q␇🈺␇, q␇営␇, q␇営␇);
+Test_N(q␇🈻␇, q␇🈻␇, q␇🈻␇, q␇配␇, q␇配␇);
+Test_N(q␇🉀␇, q␇🉀␇, q␇🉀␇, q␇〔本〕␇, q␇〔本〕␇);
+Test_N(q␇🉁␇, q␇🉁␇, q␇🉁␇, q␇〔三〕␇, q␇〔三〕␇);
+Test_N(q␇🉂␇, q␇🉂␇, q␇🉂␇, q␇〔二〕␇, q␇〔二〕␇);
+Test_N(q␇🉃␇, q␇🉃␇, q␇🉃␇, q␇〔安〕␇, q␇〔安〕␇);
+Test_N(q␇🉄␇, q␇🉄␇, q␇🉄␇, q␇〔点〕␇, q␇〔点〕␇);
+Test_N(q␇🉅␇, q␇🉅␇, q␇🉅␇, q␇〔打〕␇, q␇〔打〕␇);
+Test_N(q␇🉆␇, q␇🉆␇, q␇🉆␇, q␇〔盗〕␇, q␇〔盗〕␇);
+Test_N(q␇🉇␇, q␇🉇␇, q␇🉇␇, q␇〔勝〕␇, q␇〔勝〕␇);
+Test_N(q␇🉈␇, q␇🉈␇, q␇🉈␇, q␇〔敗〕␇, q␇〔敗〕␇);
+Test_N(q␇🉐␇, q␇🉐␇, q␇🉐␇, q␇得␇, q␇得␇);
+Test_N(q␇🉑␇, q␇🉑␇, q␇🉑␇, q␇可␇, q␇可␇);
+Test_N(q␇🯰␇, q␇🯰␇, q␇🯰␇, q␇0␇, q␇0␇);
+Test_N(q␇🯱␇, q␇🯱␇, q␇🯱␇, q␇1␇, q␇1␇);
+Test_N(q␇🯲␇, q␇🯲␇, q␇🯲␇, q␇2␇, q␇2␇);
+Test_N(q␇🯳␇, q␇🯳␇, q␇🯳␇, q␇3␇, q␇3␇);
+Test_N(q␇🯴␇, q␇🯴␇, q␇🯴␇, q␇4␇, q␇4␇);
+Test_N(q␇🯵␇, q␇🯵␇, q␇🯵␇, q␇5␇, q␇5␇);
+Test_N(q␇🯶␇, q␇🯶␇, q␇🯶␇, q␇6␇, q␇6␇);
+Test_N(q␇🯷␇, q␇🯷␇, q␇🯷␇, q␇7␇, q␇7␇);
+Test_N(q␇🯸␇, q␇🯸␇, q␇🯸␇, q␇8␇, q␇8␇);
+Test_N(q␇🯹␇, q␇🯹␇, q␇🯹␇, q␇9␇, q␇9␇);
+Test_N(q␇丽␇, q␇丽␇, q␇丽␇, q␇丽␇, q␇丽␇);
+Test_N(q␇丸␇, q␇丸␇, q␇丸␇, q␇丸␇, q␇丸␇);
+Test_N(q␇乁␇, q␇乁␇, q␇乁␇, q␇乁␇, q␇乁␇);
+Test_N(q␇𠄢␇, q␇𠄢␇, q␇𠄢␇, q␇𠄢␇, q␇𠄢␇);
+Test_N(q␇你␇, q␇你␇, q␇你␇, q␇你␇, q␇你␇);
+Test_N(q␇侮␇, q␇侮␇, q␇侮␇, q␇侮␇, q␇侮␇);
+Test_N(q␇侻␇, q␇侻␇, q␇侻␇, q␇侻␇, q␇侻␇);
+Test_N(q␇倂␇, q␇倂␇, q␇倂␇, q␇倂␇, q␇倂␇);
+Test_N(q␇偺␇, q␇偺␇, q␇偺␇, q␇偺␇, q␇偺␇);
+Test_N(q␇備␇, q␇備␇, q␇備␇, q␇備␇, q␇備␇);
+Test_N(q␇僧␇, q␇僧␇, q␇僧␇, q␇僧␇, q␇僧␇);
+Test_N(q␇像␇, q␇像␇, q␇像␇, q␇像␇, q␇像␇);
+Test_N(q␇㒞␇, q␇㒞␇, q␇㒞␇, q␇㒞␇, q␇㒞␇);
+Test_N(q␇𠘺␇, q␇𠘺␇, q␇𠘺␇, q␇𠘺␇, q␇𠘺␇);
+Test_N(q␇免␇, q␇免␇, q␇免␇, q␇免␇, q␇免␇);
+Test_N(q␇兔␇, q␇兔␇, q␇兔␇, q␇兔␇, q␇兔␇);
+Test_N(q␇兤␇, q␇兤␇, q␇兤␇, q␇兤␇, q␇兤␇);
+Test_N(q␇具␇, q␇具␇, q␇具␇, q␇具␇, q␇具␇);
+Test_N(q␇𠔜␇, q␇𠔜␇, q␇𠔜␇, q␇𠔜␇, q␇𠔜␇);
+Test_N(q␇㒹␇, q␇㒹␇, q␇㒹␇, q␇㒹␇, q␇㒹␇);
+Test_N(q␇內␇, q␇內␇, q␇內␇, q␇內␇, q␇內␇);
+Test_N(q␇再␇, q␇再␇, q␇再␇, q␇再␇, q␇再␇);
+Test_N(q␇𠕋␇, q␇𠕋␇, q␇𠕋␇, q␇𠕋␇, q␇𠕋␇);
+Test_N(q␇冗␇, q␇冗␇, q␇冗␇, q␇冗␇, q␇冗␇);
+Test_N(q␇冤␇, q␇冤␇, q␇冤␇, q␇冤␇, q␇冤␇);
+Test_N(q␇仌␇, q␇仌␇, q␇仌␇, q␇仌␇, q␇仌␇);
+Test_N(q␇冬␇, q␇冬␇, q␇冬␇, q␇冬␇, q␇冬␇);
+Test_N(q␇况␇, q␇况␇, q␇况␇, q␇况␇, q␇况␇);
+Test_N(q␇𩇟␇, q␇𩇟␇, q␇𩇟␇, q␇𩇟␇, q␇𩇟␇);
+Test_N(q␇凵␇, q␇凵␇, q␇凵␇, q␇凵␇, q␇凵␇);
+Test_N(q␇刃␇, q␇刃␇, q␇刃␇, q␇刃␇, q␇刃␇);
+Test_N(q␇㓟␇, q␇㓟␇, q␇㓟␇, q␇㓟␇, q␇㓟␇);
+Test_N(q␇刻␇, q␇刻␇, q␇刻␇, q␇刻␇, q␇刻␇);
+Test_N(q␇剆␇, q␇剆␇, q␇剆␇, q␇剆␇, q␇剆␇);
+Test_N(q␇割␇, q␇割␇, q␇割␇, q␇割␇, q␇割␇);
+Test_N(q␇剷␇, q␇剷␇, q␇剷␇, q␇剷␇, q␇剷␇);
+Test_N(q␇㔕␇, q␇㔕␇, q␇㔕␇, q␇㔕␇, q␇㔕␇);
+Test_N(q␇勇␇, q␇勇␇, q␇勇␇, q␇勇␇, q␇勇␇);
+Test_N(q␇勉␇, q␇勉␇, q␇勉␇, q␇勉␇, q␇勉␇);
+Test_N(q␇勤␇, q␇勤␇, q␇勤␇, q␇勤␇, q␇勤␇);
+Test_N(q␇勺␇, q␇勺␇, q␇勺␇, q␇勺␇, q␇勺␇);
+Test_N(q␇包␇, q␇包␇, q␇包␇, q␇包␇, q␇包␇);
+Test_N(q␇匆␇, q␇匆␇, q␇匆␇, q␇匆␇, q␇匆␇);
+Test_N(q␇北␇, q␇北␇, q␇北␇, q␇北␇, q␇北␇);
+Test_N(q␇卉␇, q␇卉␇, q␇卉␇, q␇卉␇, q␇卉␇);
+Test_N(q␇卑␇, q␇卑␇, q␇卑␇, q␇卑␇, q␇卑␇);
+Test_N(q␇博␇, q␇博␇, q␇博␇, q␇博␇, q␇博␇);
+Test_N(q␇即␇, q␇即␇, q␇即␇, q␇即␇, q␇即␇);
+Test_N(q␇卽␇, q␇卽␇, q␇卽␇, q␇卽␇, q␇卽␇);
+Test_N(q␇卿␇, q␇卿␇, q␇卿␇, q␇卿␇, q␇卿␇);
+Test_N(q␇卿␇, q␇卿␇, q␇卿␇, q␇卿␇, q␇卿␇);
+Test_N(q␇卿␇, q␇卿␇, q␇卿␇, q␇卿␇, q␇卿␇);
+Test_N(q␇𠨬␇, q␇𠨬␇, q␇𠨬␇, q␇𠨬␇, q␇𠨬␇);
+Test_N(q␇灰␇, q␇灰␇, q␇灰␇, q␇灰␇, q␇灰␇);
+Test_N(q␇及␇, q␇及␇, q␇及␇, q␇及␇, q␇及␇);
+Test_N(q␇叟␇, q␇叟␇, q␇叟␇, q␇叟␇, q␇叟␇);
+Test_N(q␇𠭣␇, q␇𠭣␇, q␇𠭣␇, q␇𠭣␇, q␇𠭣␇);
+Test_N(q␇叫␇, q␇叫␇, q␇叫␇, q␇叫␇, q␇叫␇);
+Test_N(q␇叱␇, q␇叱␇, q␇叱␇, q␇叱␇, q␇叱␇);
+Test_N(q␇吆␇, q␇吆␇, q␇吆␇, q␇吆␇, q␇吆␇);
+Test_N(q␇咞␇, q␇咞␇, q␇咞␇, q␇咞␇, q␇咞␇);
+Test_N(q␇吸␇, q␇吸␇, q␇吸␇, q␇吸␇, q␇吸␇);
+Test_N(q␇呈␇, q␇呈␇, q␇呈␇, q␇呈␇, q␇呈␇);
+Test_N(q␇周␇, q␇周␇, q␇周␇, q␇周␇, q␇周␇);
+Test_N(q␇咢␇, q␇咢␇, q␇咢␇, q␇咢␇, q␇咢␇);
+Test_N(q␇哶␇, q␇哶␇, q␇哶␇, q␇哶␇, q␇哶␇);
+Test_N(q␇唐␇, q␇唐␇, q␇唐␇, q␇唐␇, q␇唐␇);
+Test_N(q␇啓␇, q␇啓␇, q␇啓␇, q␇啓␇, q␇啓␇);
+Test_N(q␇啣␇, q␇啣␇, q␇啣␇, q␇啣␇, q␇啣␇);
+Test_N(q␇善␇, q␇善␇, q␇善␇, q␇善␇, q␇善␇);
+Test_N(q␇善␇, q␇善␇, q␇善␇, q␇善␇, q␇善␇);
+Test_N(q␇喙␇, q␇喙␇, q␇喙␇, q␇喙␇, q␇喙␇);
+Test_N(q␇喫␇, q␇喫␇, q␇喫␇, q␇喫␇, q␇喫␇);
+Test_N(q␇喳␇, q␇喳␇, q␇喳␇, q␇喳␇, q␇喳␇);
+Test_N(q␇嗂␇, q␇嗂␇, q␇嗂␇, q␇嗂␇, q␇嗂␇);
+Test_N(q␇圖␇, q␇圖␇, q␇圖␇, q␇圖␇, q␇圖␇);
+Test_N(q␇嘆␇, q␇嘆␇, q␇嘆␇, q␇嘆␇, q␇嘆␇);
+Test_N(q␇圗␇, q␇圗␇, q␇圗␇, q␇圗␇, q␇圗␇);
+Test_N(q␇噑␇, q␇噑␇, q␇噑␇, q␇噑␇, q␇噑␇);
+Test_N(q␇噴␇, q␇噴␇, q␇噴␇, q␇噴␇, q␇噴␇);
+Test_N(q␇切␇, q␇切␇, q␇切␇, q␇切␇, q␇切␇);
+Test_N(q␇壮␇, q␇壮␇, q␇壮␇, q␇壮␇, q␇壮␇);
+Test_N(q␇城␇, q␇城␇, q␇城␇, q␇城␇, q␇城␇);
+Test_N(q␇埴␇, q␇埴␇, q␇埴␇, q␇埴␇, q␇埴␇);
+Test_N(q␇堍␇, q␇堍␇, q␇堍␇, q␇堍␇, q␇堍␇);
+Test_N(q␇型␇, q␇型␇, q␇型␇, q␇型␇, q␇型␇);
+Test_N(q␇堲␇, q␇堲␇, q␇堲␇, q␇堲␇, q␇堲␇);
+Test_N(q␇報␇, q␇報␇, q␇報␇, q␇報␇, q␇報␇);
+Test_N(q␇墬␇, q␇墬␇, q␇墬␇, q␇墬␇, q␇墬␇);
+Test_N(q␇𡓤␇, q␇𡓤␇, q␇𡓤␇, q␇𡓤␇, q␇𡓤␇);
+Test_N(q␇売␇, q␇売␇, q␇売␇, q␇売␇, q␇売␇);
+Test_N(q␇壷␇, q␇壷␇, q␇壷␇, q␇壷␇, q␇壷␇);
+Test_N(q␇夆␇, q␇夆␇, q␇夆␇, q␇夆␇, q␇夆␇);
+Test_N(q␇多␇, q␇多␇, q␇多␇, q␇多␇, q␇多␇);
+Test_N(q␇夢␇, q␇夢␇, q␇夢␇, q␇夢␇, q␇夢␇);
+Test_N(q␇奢␇, q␇奢␇, q␇奢␇, q␇奢␇, q␇奢␇);
+Test_N(q␇𡚨␇, q␇𡚨␇, q␇𡚨␇, q␇𡚨␇, q␇𡚨␇);
+Test_N(q␇𡛪␇, q␇𡛪␇, q␇𡛪␇, q␇𡛪␇, q␇𡛪␇);
+Test_N(q␇姬␇, q␇姬␇, q␇姬␇, q␇姬␇, q␇姬␇);
+Test_N(q␇娛␇, q␇娛␇, q␇娛␇, q␇娛␇, q␇娛␇);
+Test_N(q␇娧␇, q␇娧␇, q␇娧␇, q␇娧␇, q␇娧␇);
+Test_N(q␇姘␇, q␇姘␇, q␇姘␇, q␇姘␇, q␇姘␇);
+Test_N(q␇婦␇, q␇婦␇, q␇婦␇, q␇婦␇, q␇婦␇);
+Test_N(q␇㛮␇, q␇㛮␇, q␇㛮␇, q␇㛮␇, q␇㛮␇);
+Test_N(q␇㛼␇, q␇㛼␇, q␇㛼␇, q␇㛼␇, q␇㛼␇);
+Test_N(q␇嬈␇, q␇嬈␇, q␇嬈␇, q␇嬈␇, q␇嬈␇);
+Test_N(q␇嬾␇, q␇嬾␇, q␇嬾␇, q␇嬾␇, q␇嬾␇);
+Test_N(q␇嬾␇, q␇嬾␇, q␇嬾␇, q␇嬾␇, q␇嬾␇);
+Test_N(q␇𡧈␇, q␇𡧈␇, q␇𡧈␇, q␇𡧈␇, q␇𡧈␇);
+Test_N(q␇寃␇, q␇寃␇, q␇寃␇, q␇寃␇, q␇寃␇);
+Test_N(q␇寘␇, q␇寘␇, q␇寘␇, q␇寘␇, q␇寘␇);
+Test_N(q␇寧␇, q␇寧␇, q␇寧␇, q␇寧␇, q␇寧␇);
+Test_N(q␇寳␇, q␇寳␇, q␇寳␇, q␇寳␇, q␇寳␇);
+Test_N(q␇𡬘␇, q␇𡬘␇, q␇𡬘␇, q␇𡬘␇, q␇𡬘␇);
+Test_N(q␇寿␇, q␇寿␇, q␇寿␇, q␇寿␇, q␇寿␇);
+Test_N(q␇将␇, q␇将␇, q␇将␇, q␇将␇, q␇将␇);
+Test_N(q␇当␇, q␇当␇, q␇当␇, q␇当␇, q␇当␇);
+Test_N(q␇尢␇, q␇尢␇, q␇尢␇, q␇尢␇, q␇尢␇);
+Test_N(q␇㞁␇, q␇㞁␇, q␇㞁␇, q␇㞁␇, q␇㞁␇);
+Test_N(q␇屠␇, q␇屠␇, q␇屠␇, q␇屠␇, q␇屠␇);
+Test_N(q␇屮␇, q␇屮␇, q␇屮␇, q␇屮␇, q␇屮␇);
+Test_N(q␇峀␇, q␇峀␇, q␇峀␇, q␇峀␇, q␇峀␇);
+Test_N(q␇岍␇, q␇岍␇, q␇岍␇, q␇岍␇, q␇岍␇);
+Test_N(q␇𡷤␇, q␇𡷤␇, q␇𡷤␇, q␇𡷤␇, q␇𡷤␇);
+Test_N(q␇嵃␇, q␇嵃␇, q␇嵃␇, q␇嵃␇, q␇嵃␇);
+Test_N(q␇𡷦␇, q␇𡷦␇, q␇𡷦␇, q␇𡷦␇, q␇𡷦␇);
+Test_N(q␇嵮␇, q␇嵮␇, q␇嵮␇, q␇嵮␇, q␇嵮␇);
+Test_N(q␇嵫␇, q␇嵫␇, q␇嵫␇, q␇嵫␇, q␇嵫␇);
+Test_N(q␇嵼␇, q␇嵼␇, q␇嵼␇, q␇嵼␇, q␇嵼␇);
+Test_N(q␇巡␇, q␇巡␇, q␇巡␇, q␇巡␇, q␇巡␇);
+Test_N(q␇巢␇, q␇巢␇, q␇巢␇, q␇巢␇, q␇巢␇);
+Test_N(q␇㠯␇, q␇㠯␇, q␇㠯␇, q␇㠯␇, q␇㠯␇);
+Test_N(q␇巽␇, q␇巽␇, q␇巽␇, q␇巽␇, q␇巽␇);
+Test_N(q␇帨␇, q␇帨␇, q␇帨␇, q␇帨␇, q␇帨␇);
+Test_N(q␇帽␇, q␇帽␇, q␇帽␇, q␇帽␇, q␇帽␇);
+Test_N(q␇幩␇, q␇幩␇, q␇幩␇, q␇幩␇, q␇幩␇);
+Test_N(q␇㡢␇, q␇㡢␇, q␇㡢␇, q␇㡢␇, q␇㡢␇);
+Test_N(q␇𢆃␇, q␇𢆃␇, q␇𢆃␇, q␇𢆃␇, q␇𢆃␇);
+Test_N(q␇㡼␇, q␇㡼␇, q␇㡼␇, q␇㡼␇, q␇㡼␇);
+Test_N(q␇庰␇, q␇庰␇, q␇庰␇, q␇庰␇, q␇庰␇);
+Test_N(q␇庳␇, q␇庳␇, q␇庳␇, q␇庳␇, q␇庳␇);
+Test_N(q␇庶␇, q␇庶␇, q␇庶␇, q␇庶␇, q␇庶␇);
+Test_N(q␇廊␇, q␇廊␇, q␇廊␇, q␇廊␇, q␇廊␇);
+Test_N(q␇𪎒␇, q␇𪎒␇, q␇𪎒␇, q␇𪎒␇, q␇𪎒␇);
+Test_N(q␇廾␇, q␇廾␇, q␇廾␇, q␇廾␇, q␇廾␇);
+Test_N(q␇𢌱␇, q␇𢌱␇, q␇𢌱␇, q␇𢌱␇, q␇𢌱␇);
+Test_N(q␇𢌱␇, q␇𢌱␇, q␇𢌱␇, q␇𢌱␇, q␇𢌱␇);
+Test_N(q␇舁␇, q␇舁␇, q␇舁␇, q␇舁␇, q␇舁␇);
+Test_N(q␇弢␇, q␇弢␇, q␇弢␇, q␇弢␇, q␇弢␇);
+Test_N(q␇弢␇, q␇弢␇, q␇弢␇, q␇弢␇, q␇弢␇);
+Test_N(q␇㣇␇, q␇㣇␇, q␇㣇␇, q␇㣇␇, q␇㣇␇);
+Test_N(q␇𣊸␇, q␇𣊸␇, q␇𣊸␇, q␇𣊸␇, q␇𣊸␇);
+Test_N(q␇𦇚␇, q␇𦇚␇, q␇𦇚␇, q␇𦇚␇, q␇𦇚␇);
+Test_N(q␇形␇, q␇形␇, q␇形␇, q␇形␇, q␇形␇);
+Test_N(q␇彫␇, q␇彫␇, q␇彫␇, q␇彫␇, q␇彫␇);
+Test_N(q␇㣣␇, q␇㣣␇, q␇㣣␇, q␇㣣␇, q␇㣣␇);
+Test_N(q␇徚␇, q␇徚␇, q␇徚␇, q␇徚␇, q␇徚␇);
+Test_N(q␇忍␇, q␇忍␇, q␇忍␇, q␇忍␇, q␇忍␇);
+Test_N(q␇志␇, q␇志␇, q␇志␇, q␇志␇, q␇志␇);
+Test_N(q␇忹␇, q␇忹␇, q␇忹␇, q␇忹␇, q␇忹␇);
+Test_N(q␇悁␇, q␇悁␇, q␇悁␇, q␇悁␇, q␇悁␇);
+Test_N(q␇㤺␇, q␇㤺␇, q␇㤺␇, q␇㤺␇, q␇㤺␇);
+Test_N(q␇㤜␇, q␇㤜␇, q␇㤜␇, q␇㤜␇, q␇㤜␇);
+Test_N(q␇悔␇, q␇悔␇, q␇悔␇, q␇悔␇, q␇悔␇);
+Test_N(q␇𢛔␇, q␇𢛔␇, q␇𢛔␇, q␇𢛔␇, q␇𢛔␇);
+Test_N(q␇惇␇, q␇惇␇, q␇惇␇, q␇惇␇, q␇惇␇);
+Test_N(q␇慈␇, q␇慈␇, q␇慈␇, q␇慈␇, q␇慈␇);
+Test_N(q␇慌␇, q␇慌␇, q␇慌␇, q␇慌␇, q␇慌␇);
+Test_N(q␇慎␇, q␇慎␇, q␇慎␇, q␇慎␇, q␇慎␇);
+Test_N(q␇慌␇, q␇慌␇, q␇慌␇, q␇慌␇, q␇慌␇);
+Test_N(q␇慺␇, q␇慺␇, q␇慺␇, q␇慺␇, q␇慺␇);
+Test_N(q␇憎␇, q␇憎␇, q␇憎␇, q␇憎␇, q␇憎␇);
+Test_N(q␇憲␇, q␇憲␇, q␇憲␇, q␇憲␇, q␇憲␇);
+Test_N(q␇憤␇, q␇憤␇, q␇憤␇, q␇憤␇, q␇憤␇);
+Test_N(q␇憯␇, q␇憯␇, q␇憯␇, q␇憯␇, q␇憯␇);
+Test_N(q␇懞␇, q␇懞␇, q␇懞␇, q␇懞␇, q␇懞␇);
+Test_N(q␇懲␇, q␇懲␇, q␇懲␇, q␇懲␇, q␇懲␇);
+Test_N(q␇懶␇, q␇懶␇, q␇懶␇, q␇懶␇, q␇懶␇);
+Test_N(q␇成␇, q␇成␇, q␇成␇, q␇成␇, q␇成␇);
+Test_N(q␇戛␇, q␇戛␇, q␇戛␇, q␇戛␇, q␇戛␇);
+Test_N(q␇扝␇, q␇扝␇, q␇扝␇, q␇扝␇, q␇扝␇);
+Test_N(q␇抱␇, q␇抱␇, q␇抱␇, q␇抱␇, q␇抱␇);
+Test_N(q␇拔␇, q␇拔␇, q␇拔␇, q␇拔␇, q␇拔␇);
+Test_N(q␇捐␇, q␇捐␇, q␇捐␇, q␇捐␇, q␇捐␇);
+Test_N(q␇𢬌␇, q␇𢬌␇, q␇𢬌␇, q␇𢬌␇, q␇𢬌␇);
+Test_N(q␇挽␇, q␇挽␇, q␇挽␇, q␇挽␇, q␇挽␇);
+Test_N(q␇拼␇, q␇拼␇, q␇拼␇, q␇拼␇, q␇拼␇);
+Test_N(q␇捨␇, q␇捨␇, q␇捨␇, q␇捨␇, q␇捨␇);
+Test_N(q␇掃␇, q␇掃␇, q␇掃␇, q␇掃␇, q␇掃␇);
+Test_N(q␇揤␇, q␇揤␇, q␇揤␇, q␇揤␇, q␇揤␇);
+Test_N(q␇𢯱␇, q␇𢯱␇, q␇𢯱␇, q␇𢯱␇, q␇𢯱␇);
+Test_N(q␇搢␇, q␇搢␇, q␇搢␇, q␇搢␇, q␇搢␇);
+Test_N(q␇揅␇, q␇揅␇, q␇揅␇, q␇揅␇, q␇揅␇);
+Test_N(q␇掩␇, q␇掩␇, q␇掩␇, q␇掩␇, q␇掩␇);
+Test_N(q␇㨮␇, q␇㨮␇, q␇㨮␇, q␇㨮␇, q␇㨮␇);
+Test_N(q␇摩␇, q␇摩␇, q␇摩␇, q␇摩␇, q␇摩␇);
+Test_N(q␇摾␇, q␇摾␇, q␇摾␇, q␇摾␇, q␇摾␇);
+Test_N(q␇撝␇, q␇撝␇, q␇撝␇, q␇撝␇, q␇撝␇);
+Test_N(q␇摷␇, q␇摷␇, q␇摷␇, q␇摷␇, q␇摷␇);
+Test_N(q␇㩬␇, q␇㩬␇, q␇㩬␇, q␇㩬␇, q␇㩬␇);
+Test_N(q␇敏␇, q␇敏␇, q␇敏␇, q␇敏␇, q␇敏␇);
+Test_N(q␇敬␇, q␇敬␇, q␇敬␇, q␇敬␇, q␇敬␇);
+Test_N(q␇𣀊␇, q␇𣀊␇, q␇𣀊␇, q␇𣀊␇, q␇𣀊␇);
+Test_N(q␇旣␇, q␇旣␇, q␇旣␇, q␇旣␇, q␇旣␇);
+Test_N(q␇書␇, q␇書␇, q␇書␇, q␇書␇, q␇書␇);
+Test_N(q␇晉␇, q␇晉␇, q␇晉␇, q␇晉␇, q␇晉␇);
+Test_N(q␇㬙␇, q␇㬙␇, q␇㬙␇, q␇㬙␇, q␇㬙␇);
+Test_N(q␇暑␇, q␇暑␇, q␇暑␇, q␇暑␇, q␇暑␇);
+Test_N(q␇㬈␇, q␇㬈␇, q␇㬈␇, q␇㬈␇, q␇㬈␇);
+Test_N(q␇㫤␇, q␇㫤␇, q␇㫤␇, q␇㫤␇, q␇㫤␇);
+Test_N(q␇冒␇, q␇冒␇, q␇冒␇, q␇冒␇, q␇冒␇);
+Test_N(q␇冕␇, q␇冕␇, q␇冕␇, q␇冕␇, q␇冕␇);
+Test_N(q␇最␇, q␇最␇, q␇最␇, q␇最␇, q␇最␇);
+Test_N(q␇暜␇, q␇暜␇, q␇暜␇, q␇暜␇, q␇暜␇);
+Test_N(q␇肭␇, q␇肭␇, q␇肭␇, q␇肭␇, q␇肭␇);
+Test_N(q␇䏙␇, q␇䏙␇, q␇䏙␇, q␇䏙␇, q␇䏙␇);
+Test_N(q␇朗␇, q␇朗␇, q␇朗␇, q␇朗␇, q␇朗␇);
+Test_N(q␇望␇, q␇望␇, q␇望␇, q␇望␇, q␇望␇);
+Test_N(q␇朡␇, q␇朡␇, q␇朡␇, q␇朡␇, q␇朡␇);
+Test_N(q␇杞␇, q␇杞␇, q␇杞␇, q␇杞␇, q␇杞␇);
+Test_N(q␇杓␇, q␇杓␇, q␇杓␇, q␇杓␇, q␇杓␇);
+Test_N(q␇𣏃␇, q␇𣏃␇, q␇𣏃␇, q␇𣏃␇, q␇𣏃␇);
+Test_N(q␇㭉␇, q␇㭉␇, q␇㭉␇, q␇㭉␇, q␇㭉␇);
+Test_N(q␇柺␇, q␇柺␇, q␇柺␇, q␇柺␇, q␇柺␇);
+Test_N(q␇枅␇, q␇枅␇, q␇枅␇, q␇枅␇, q␇枅␇);
+Test_N(q␇桒␇, q␇桒␇, q␇桒␇, q␇桒␇, q␇桒␇);
+Test_N(q␇梅␇, q␇梅␇, q␇梅␇, q␇梅␇, q␇梅␇);
+Test_N(q␇𣑭␇, q␇𣑭␇, q␇𣑭␇, q␇𣑭␇, q␇𣑭␇);
+Test_N(q␇梎␇, q␇梎␇, q␇梎␇, q␇梎␇, q␇梎␇);
+Test_N(q␇栟␇, q␇栟␇, q␇栟␇, q␇栟␇, q␇栟␇);
+Test_N(q␇椔␇, q␇椔␇, q␇椔␇, q␇椔␇, q␇椔␇);
+Test_N(q␇㮝␇, q␇㮝␇, q␇㮝␇, q␇㮝␇, q␇㮝␇);
+Test_N(q␇楂␇, q␇楂␇, q␇楂␇, q␇楂␇, q␇楂␇);
+Test_N(q␇榣␇, q␇榣␇, q␇榣␇, q␇榣␇, q␇榣␇);
+Test_N(q␇槪␇, q␇槪␇, q␇槪␇, q␇槪␇, q␇槪␇);
+Test_N(q␇檨␇, q␇檨␇, q␇檨␇, q␇檨␇, q␇檨␇);
+Test_N(q␇𣚣␇, q␇𣚣␇, q␇𣚣␇, q␇𣚣␇, q␇𣚣␇);
+Test_N(q␇櫛␇, q␇櫛␇, q␇櫛␇, q␇櫛␇, q␇櫛␇);
+Test_N(q␇㰘␇, q␇㰘␇, q␇㰘␇, q␇㰘␇, q␇㰘␇);
+Test_N(q␇次␇, q␇次␇, q␇次␇, q␇次␇, q␇次␇);
+Test_N(q␇𣢧␇, q␇𣢧␇, q␇𣢧␇, q␇𣢧␇, q␇𣢧␇);
+Test_N(q␇歔␇, q␇歔␇, q␇歔␇, q␇歔␇, q␇歔␇);
+Test_N(q␇㱎␇, q␇㱎␇, q␇㱎␇, q␇㱎␇, q␇㱎␇);
+Test_N(q␇歲␇, q␇歲␇, q␇歲␇, q␇歲␇, q␇歲␇);
+Test_N(q␇殟␇, q␇殟␇, q␇殟␇, q␇殟␇, q␇殟␇);
+Test_N(q␇殺␇, q␇殺␇, q␇殺␇, q␇殺␇, q␇殺␇);
+Test_N(q␇殻␇, q␇殻␇, q␇殻␇, q␇殻␇, q␇殻␇);
+Test_N(q␇𣪍␇, q␇𣪍␇, q␇𣪍␇, q␇𣪍␇, q␇𣪍␇);
+Test_N(q␇𡴋␇, q␇𡴋␇, q␇𡴋␇, q␇𡴋␇, q␇𡴋␇);
+Test_N(q␇𣫺␇, q␇𣫺␇, q␇𣫺␇, q␇𣫺␇, q␇𣫺␇);
+Test_N(q␇汎␇, q␇汎␇, q␇汎␇, q␇汎␇, q␇汎␇);
+Test_N(q␇𣲼␇, q␇𣲼␇, q␇𣲼␇, q␇𣲼␇, q␇𣲼␇);
+Test_N(q␇沿␇, q␇沿␇, q␇沿␇, q␇沿␇, q␇沿␇);
+Test_N(q␇泍␇, q␇泍␇, q␇泍␇, q␇泍␇, q␇泍␇);
+Test_N(q␇汧␇, q␇汧␇, q␇汧␇, q␇汧␇, q␇汧␇);
+Test_N(q␇洖␇, q␇洖␇, q␇洖␇, q␇洖␇, q␇洖␇);
+Test_N(q␇派␇, q␇派␇, q␇派␇, q␇派␇, q␇派␇);
+Test_N(q␇海␇, q␇海␇, q␇海␇, q␇海␇, q␇海␇);
+Test_N(q␇流␇, q␇流␇, q␇流␇, q␇流␇, q␇流␇);
+Test_N(q␇浩␇, q␇浩␇, q␇浩␇, q␇浩␇, q␇浩␇);
+Test_N(q␇浸␇, q␇浸␇, q␇浸␇, q␇浸␇, q␇浸␇);
+Test_N(q␇涅␇, q␇涅␇, q␇涅␇, q␇涅␇, q␇涅␇);
+Test_N(q␇𣴞␇, q␇𣴞␇, q␇𣴞␇, q␇𣴞␇, q␇𣴞␇);
+Test_N(q␇洴␇, q␇洴␇, q␇洴␇, q␇洴␇, q␇洴␇);
+Test_N(q␇港␇, q␇港␇, q␇港␇, q␇港␇, q␇港␇);
+Test_N(q␇湮␇, q␇湮␇, q␇湮␇, q␇湮␇, q␇湮␇);
+Test_N(q␇㴳␇, q␇㴳␇, q␇㴳␇, q␇㴳␇, q␇㴳␇);
+Test_N(q␇滋␇, q␇滋␇, q␇滋␇, q␇滋␇, q␇滋␇);
+Test_N(q␇滇␇, q␇滇␇, q␇滇␇, q␇滇␇, q␇滇␇);
+Test_N(q␇𣻑␇, q␇𣻑␇, q␇𣻑␇, q␇𣻑␇, q␇𣻑␇);
+Test_N(q␇淹␇, q␇淹␇, q␇淹␇, q␇淹␇, q␇淹␇);
+Test_N(q␇潮␇, q␇潮␇, q␇潮␇, q␇潮␇, q␇潮␇);
+Test_N(q␇𣽞␇, q␇𣽞␇, q␇𣽞␇, q␇𣽞␇, q␇𣽞␇);
+Test_N(q␇𣾎␇, q␇𣾎␇, q␇𣾎␇, q␇𣾎␇, q␇𣾎␇);
+Test_N(q␇濆␇, q␇濆␇, q␇濆␇, q␇濆␇, q␇濆␇);
+Test_N(q␇瀹␇, q␇瀹␇, q␇瀹␇, q␇瀹␇, q␇瀹␇);
+Test_N(q␇瀞␇, q␇瀞␇, q␇瀞␇, q␇瀞␇, q␇瀞␇);
+Test_N(q␇瀛␇, q␇瀛␇, q␇瀛␇, q␇瀛␇, q␇瀛␇);
+Test_N(q␇㶖␇, q␇㶖␇, q␇㶖␇, q␇㶖␇, q␇㶖␇);
+Test_N(q␇灊␇, q␇灊␇, q␇灊␇, q␇灊␇, q␇灊␇);
+Test_N(q␇災␇, q␇災␇, q␇災␇, q␇災␇, q␇災␇);
+Test_N(q␇灷␇, q␇灷␇, q␇灷␇, q␇灷␇, q␇灷␇);
+Test_N(q␇炭␇, q␇炭␇, q␇炭␇, q␇炭␇, q␇炭␇);
+Test_N(q␇𠔥␇, q␇𠔥␇, q␇𠔥␇, q␇𠔥␇, q␇𠔥␇);
+Test_N(q␇煅␇, q␇煅␇, q␇煅␇, q␇煅␇, q␇煅␇);
+Test_N(q␇𤉣␇, q␇𤉣␇, q␇𤉣␇, q␇𤉣␇, q␇𤉣␇);
+Test_N(q␇熜␇, q␇熜␇, q␇熜␇, q␇熜␇, q␇熜␇);
+Test_N(q␇𤎫␇, q␇𤎫␇, q␇𤎫␇, q␇𤎫␇, q␇𤎫␇);
+Test_N(q␇爨␇, q␇爨␇, q␇爨␇, q␇爨␇, q␇爨␇);
+Test_N(q␇爵␇, q␇爵␇, q␇爵␇, q␇爵␇, q␇爵␇);
+Test_N(q␇牐␇, q␇牐␇, q␇牐␇, q␇牐␇, q␇牐␇);
+Test_N(q␇𤘈␇, q␇𤘈␇, q␇𤘈␇, q␇𤘈␇, q␇𤘈␇);
+Test_N(q␇犀␇, q␇犀␇, q␇犀␇, q␇犀␇, q␇犀␇);
+Test_N(q␇犕␇, q␇犕␇, q␇犕␇, q␇犕␇, q␇犕␇);
+Test_N(q␇𤜵␇, q␇𤜵␇, q␇𤜵␇, q␇𤜵␇, q␇𤜵␇);
+Test_N(q␇𤠔␇, q␇𤠔␇, q␇𤠔␇, q␇𤠔␇, q␇𤠔␇);
+Test_N(q␇獺␇, q␇獺␇, q␇獺␇, q␇獺␇, q␇獺␇);
+Test_N(q␇王␇, q␇王␇, q␇王␇, q␇王␇, q␇王␇);
+Test_N(q␇㺬␇, q␇㺬␇, q␇㺬␇, q␇㺬␇, q␇㺬␇);
+Test_N(q␇玥␇, q␇玥␇, q␇玥␇, q␇玥␇, q␇玥␇);
+Test_N(q␇㺸␇, q␇㺸␇, q␇㺸␇, q␇㺸␇, q␇㺸␇);
+Test_N(q␇㺸␇, q␇㺸␇, q␇㺸␇, q␇㺸␇, q␇㺸␇);
+Test_N(q␇瑇␇, q␇瑇␇, q␇瑇␇, q␇瑇␇, q␇瑇␇);
+Test_N(q␇瑜␇, q␇瑜␇, q␇瑜␇, q␇瑜␇, q␇瑜␇);
+Test_N(q␇瑱␇, q␇瑱␇, q␇瑱␇, q␇瑱␇, q␇瑱␇);
+Test_N(q␇璅␇, q␇璅␇, q␇璅␇, q␇璅␇, q␇璅␇);
+Test_N(q␇瓊␇, q␇瓊␇, q␇瓊␇, q␇瓊␇, q␇瓊␇);
+Test_N(q␇㼛␇, q␇㼛␇, q␇㼛␇, q␇㼛␇, q␇㼛␇);
+Test_N(q␇甤␇, q␇甤␇, q␇甤␇, q␇甤␇, q␇甤␇);
+Test_N(q␇𤰶␇, q␇𤰶␇, q␇𤰶␇, q␇𤰶␇, q␇𤰶␇);
+Test_N(q␇甾␇, q␇甾␇, q␇甾␇, q␇甾␇, q␇甾␇);
+Test_N(q␇𤲒␇, q␇𤲒␇, q␇𤲒␇, q␇𤲒␇, q␇𤲒␇);
+Test_N(q␇異␇, q␇異␇, q␇異␇, q␇異␇, q␇異␇);
+Test_N(q␇𢆟␇, q␇𢆟␇, q␇𢆟␇, q␇𢆟␇, q␇𢆟␇);
+Test_N(q␇瘐␇, q␇瘐␇, q␇瘐␇, q␇瘐␇, q␇瘐␇);
+Test_N(q␇𤾡␇, q␇𤾡␇, q␇𤾡␇, q␇𤾡␇, q␇𤾡␇);
+Test_N(q␇𤾸␇, q␇𤾸␇, q␇𤾸␇, q␇𤾸␇, q␇𤾸␇);
+Test_N(q␇𥁄␇, q␇𥁄␇, q␇𥁄␇, q␇𥁄␇, q␇𥁄␇);
+Test_N(q␇㿼␇, q␇㿼␇, q␇㿼␇, q␇㿼␇, q␇㿼␇);
+Test_N(q␇䀈␇, q␇䀈␇, q␇䀈␇, q␇䀈␇, q␇䀈␇);
+Test_N(q␇直␇, q␇直␇, q␇直␇, q␇直␇, q␇直␇);
+Test_N(q␇𥃳␇, q␇𥃳␇, q␇𥃳␇, q␇𥃳␇, q␇𥃳␇);
+Test_N(q␇𥃲␇, q␇𥃲␇, q␇𥃲␇, q␇𥃲␇, q␇𥃲␇);
+Test_N(q␇𥄙␇, q␇𥄙␇, q␇𥄙␇, q␇𥄙␇, q␇𥄙␇);
+Test_N(q␇𥄳␇, q␇𥄳␇, q␇𥄳␇, q␇𥄳␇, q␇𥄳␇);
+Test_N(q␇眞␇, q␇眞␇, q␇眞␇, q␇眞␇, q␇眞␇);
+Test_N(q␇真␇, q␇真␇, q␇真␇, q␇真␇, q␇真␇);
+Test_N(q␇真␇, q␇真␇, q␇真␇, q␇真␇, q␇真␇);
+Test_N(q␇睊␇, q␇睊␇, q␇睊␇, q␇睊␇, q␇睊␇);
+Test_N(q␇䀹␇, q␇䀹␇, q␇䀹␇, q␇䀹␇, q␇䀹␇);
+Test_N(q␇瞋␇, q␇瞋␇, q␇瞋␇, q␇瞋␇, q␇瞋␇);
+Test_N(q␇䁆␇, q␇䁆␇, q␇䁆␇, q␇䁆␇, q␇䁆␇);
+Test_N(q␇䂖␇, q␇䂖␇, q␇䂖␇, q␇䂖␇, q␇䂖␇);
+Test_N(q␇𥐝␇, q␇𥐝␇, q␇𥐝␇, q␇𥐝␇, q␇𥐝␇);
+Test_N(q␇硎␇, q␇硎␇, q␇硎␇, q␇硎␇, q␇硎␇);
+Test_N(q␇碌␇, q␇碌␇, q␇碌␇, q␇碌␇, q␇碌␇);
+Test_N(q␇磌␇, q␇磌␇, q␇磌␇, q␇磌␇, q␇磌␇);
+Test_N(q␇䃣␇, q␇䃣␇, q␇䃣␇, q␇䃣␇, q␇䃣␇);
+Test_N(q␇𥘦␇, q␇𥘦␇, q␇𥘦␇, q␇𥘦␇, q␇𥘦␇);
+Test_N(q␇祖␇, q␇祖␇, q␇祖␇, q␇祖␇, q␇祖␇);
+Test_N(q␇𥚚␇, q␇𥚚␇, q␇𥚚␇, q␇𥚚␇, q␇𥚚␇);
+Test_N(q␇𥛅␇, q␇𥛅␇, q␇𥛅␇, q␇𥛅␇, q␇𥛅␇);
+Test_N(q␇福␇, q␇福␇, q␇福␇, q␇福␇, q␇福␇);
+Test_N(q␇秫␇, q␇秫␇, q␇秫␇, q␇秫␇, q␇秫␇);
+Test_N(q␇䄯␇, q␇䄯␇, q␇䄯␇, q␇䄯␇, q␇䄯␇);
+Test_N(q␇穀␇, q␇穀␇, q␇穀␇, q␇穀␇, q␇穀␇);
+Test_N(q␇穊␇, q␇穊␇, q␇穊␇, q␇穊␇, q␇穊␇);
+Test_N(q␇穏␇, q␇穏␇, q␇穏␇, q␇穏␇, q␇穏␇);
+Test_N(q␇𥥼␇, q␇𥥼␇, q␇𥥼␇, q␇𥥼␇, q␇𥥼␇);
+Test_N(q␇𥪧␇, q␇𥪧␇, q␇𥪧␇, q␇𥪧␇, q␇𥪧␇);
+Test_N(q␇𥪧␇, q␇𥪧␇, q␇𥪧␇, q␇𥪧␇, q␇𥪧␇);
+Test_N(q␇竮␇, q␇竮␇, q␇竮␇, q␇竮␇, q␇竮␇);
+Test_N(q␇䈂␇, q␇䈂␇, q␇䈂␇, q␇䈂␇, q␇䈂␇);
+Test_N(q␇𥮫␇, q␇𥮫␇, q␇𥮫␇, q␇𥮫␇, q␇𥮫␇);
+Test_N(q␇篆␇, q␇篆␇, q␇篆␇, q␇篆␇, q␇篆␇);
+Test_N(q␇築␇, q␇築␇, q␇築␇, q␇築␇, q␇築␇);
+Test_N(q␇䈧␇, q␇䈧␇, q␇䈧␇, q␇䈧␇, q␇䈧␇);
+Test_N(q␇𥲀␇, q␇𥲀␇, q␇𥲀␇, q␇𥲀␇, q␇𥲀␇);
+Test_N(q␇糒␇, q␇糒␇, q␇糒␇, q␇糒␇, q␇糒␇);
+Test_N(q␇䊠␇, q␇䊠␇, q␇䊠␇, q␇䊠␇, q␇䊠␇);
+Test_N(q␇糨␇, q␇糨␇, q␇糨␇, q␇糨␇, q␇糨␇);
+Test_N(q␇糣␇, q␇糣␇, q␇糣␇, q␇糣␇, q␇糣␇);
+Test_N(q␇紀␇, q␇紀␇, q␇紀␇, q␇紀␇, q␇紀␇);
+Test_N(q␇𥾆␇, q␇𥾆␇, q␇𥾆␇, q␇𥾆␇, q␇𥾆␇);
+Test_N(q␇絣␇, q␇絣␇, q␇絣␇, q␇絣␇, q␇絣␇);
+Test_N(q␇䌁␇, q␇䌁␇, q␇䌁␇, q␇䌁␇, q␇䌁␇);
+Test_N(q␇緇␇, q␇緇␇, q␇緇␇, q␇緇␇, q␇緇␇);
+Test_N(q␇縂␇, q␇縂␇, q␇縂␇, q␇縂␇, q␇縂␇);
+Test_N(q␇繅␇, q␇繅␇, q␇繅␇, q␇繅␇, q␇繅␇);
+Test_N(q␇䌴␇, q␇䌴␇, q␇䌴␇, q␇䌴␇, q␇䌴␇);
+Test_N(q␇𦈨␇, q␇𦈨␇, q␇𦈨␇, q␇𦈨␇, q␇𦈨␇);
+Test_N(q␇𦉇␇, q␇𦉇␇, q␇𦉇␇, q␇𦉇␇, q␇𦉇␇);
+Test_N(q␇䍙␇, q␇䍙␇, q␇䍙␇, q␇䍙␇, q␇䍙␇);
+Test_N(q␇𦋙␇, q␇𦋙␇, q␇𦋙␇, q␇𦋙␇, q␇𦋙␇);
+Test_N(q␇罺␇, q␇罺␇, q␇罺␇, q␇罺␇, q␇罺␇);
+Test_N(q␇𦌾␇, q␇𦌾␇, q␇𦌾␇, q␇𦌾␇, q␇𦌾␇);
+Test_N(q␇羕␇, q␇羕␇, q␇羕␇, q␇羕␇, q␇羕␇);
+Test_N(q␇翺␇, q␇翺␇, q␇翺␇, q␇翺␇, q␇翺␇);
+Test_N(q␇者␇, q␇者␇, q␇者␇, q␇者␇, q␇者␇);
+Test_N(q␇𦓚␇, q␇𦓚␇, q␇𦓚␇, q␇𦓚␇, q␇𦓚␇);
+Test_N(q␇𦔣␇, q␇𦔣␇, q␇𦔣␇, q␇𦔣␇, q␇𦔣␇);
+Test_N(q␇聠␇, q␇聠␇, q␇聠␇, q␇聠␇, q␇聠␇);
+Test_N(q␇𦖨␇, q␇𦖨␇, q␇𦖨␇, q␇𦖨␇, q␇𦖨␇);
+Test_N(q␇聰␇, q␇聰␇, q␇聰␇, q␇聰␇, q␇聰␇);
+Test_N(q␇𣍟␇, q␇𣍟␇, q␇𣍟␇, q␇𣍟␇, q␇𣍟␇);
+Test_N(q␇䏕␇, q␇䏕␇, q␇䏕␇, q␇䏕␇, q␇䏕␇);
+Test_N(q␇育␇, q␇育␇, q␇育␇, q␇育␇, q␇育␇);
+Test_N(q␇脃␇, q␇脃␇, q␇脃␇, q␇脃␇, q␇脃␇);
+Test_N(q␇䐋␇, q␇䐋␇, q␇䐋␇, q␇䐋␇, q␇䐋␇);
+Test_N(q␇脾␇, q␇脾␇, q␇脾␇, q␇脾␇, q␇脾␇);
+Test_N(q␇媵␇, q␇媵␇, q␇媵␇, q␇媵␇, q␇媵␇);
+Test_N(q␇𦞧␇, q␇𦞧␇, q␇𦞧␇, q␇𦞧␇, q␇𦞧␇);
+Test_N(q␇𦞵␇, q␇𦞵␇, q␇𦞵␇, q␇𦞵␇, q␇𦞵␇);
+Test_N(q␇𣎓␇, q␇𣎓␇, q␇𣎓␇, q␇𣎓␇, q␇𣎓␇);
+Test_N(q␇𣎜␇, q␇𣎜␇, q␇𣎜␇, q␇𣎜␇, q␇𣎜␇);
+Test_N(q␇舁␇, q␇舁␇, q␇舁␇, q␇舁␇, q␇舁␇);
+Test_N(q␇舄␇, q␇舄␇, q␇舄␇, q␇舄␇, q␇舄␇);
+Test_N(q␇辞␇, q␇辞␇, q␇辞␇, q␇辞␇, q␇辞␇);
+Test_N(q␇䑫␇, q␇䑫␇, q␇䑫␇, q␇䑫␇, q␇䑫␇);
+Test_N(q␇芑␇, q␇芑␇, q␇芑␇, q␇芑␇, q␇芑␇);
+Test_N(q␇芋␇, q␇芋␇, q␇芋␇, q␇芋␇, q␇芋␇);
+Test_N(q␇芝␇, q␇芝␇, q␇芝␇, q␇芝␇, q␇芝␇);
+Test_N(q␇劳␇, q␇劳␇, q␇劳␇, q␇劳␇, q␇劳␇);
+Test_N(q␇花␇, q␇花␇, q␇花␇, q␇花␇, q␇花␇);
+Test_N(q␇芳␇, q␇芳␇, q␇芳␇, q␇芳␇, q␇芳␇);
+Test_N(q␇芽␇, q␇芽␇, q␇芽␇, q␇芽␇, q␇芽␇);
+Test_N(q␇苦␇, q␇苦␇, q␇苦␇, q␇苦␇, q␇苦␇);
+Test_N(q␇𦬼␇, q␇𦬼␇, q␇𦬼␇, q␇𦬼␇, q␇𦬼␇);
+Test_N(q␇若␇, q␇若␇, q␇若␇, q␇若␇, q␇若␇);
+Test_N(q␇茝␇, q␇茝␇, q␇茝␇, q␇茝␇, q␇茝␇);
+Test_N(q␇荣␇, q␇荣␇, q␇荣␇, q␇荣␇, q␇荣␇);
+Test_N(q␇莭␇, q␇莭␇, q␇莭␇, q␇莭␇, q␇莭␇);
+Test_N(q␇茣␇, q␇茣␇, q␇茣␇, q␇茣␇, q␇茣␇);
+Test_N(q␇莽␇, q␇莽␇, q␇莽␇, q␇莽␇, q␇莽␇);
+Test_N(q␇菧␇, q␇菧␇, q␇菧␇, q␇菧␇, q␇菧␇);
+Test_N(q␇著␇, q␇著␇, q␇著␇, q␇著␇, q␇著␇);
+Test_N(q␇荓␇, q␇荓␇, q␇荓␇, q␇荓␇, q␇荓␇);
+Test_N(q␇菊␇, q␇菊␇, q␇菊␇, q␇菊␇, q␇菊␇);
+Test_N(q␇菌␇, q␇菌␇, q␇菌␇, q␇菌␇, q␇菌␇);
+Test_N(q␇菜␇, q␇菜␇, q␇菜␇, q␇菜␇, q␇菜␇);
+Test_N(q␇𦰶␇, q␇𦰶␇, q␇𦰶␇, q␇𦰶␇, q␇𦰶␇);
+Test_N(q␇𦵫␇, q␇𦵫␇, q␇𦵫␇, q␇𦵫␇, q␇𦵫␇);
+Test_N(q␇𦳕␇, q␇𦳕␇, q␇𦳕␇, q␇𦳕␇, q␇𦳕␇);
+Test_N(q␇䔫␇, q␇䔫␇, q␇䔫␇, q␇䔫␇, q␇䔫␇);
+Test_N(q␇蓱␇, q␇蓱␇, q␇蓱␇, q␇蓱␇, q␇蓱␇);
+Test_N(q␇蓳␇, q␇蓳␇, q␇蓳␇, q␇蓳␇, q␇蓳␇);
+Test_N(q␇蔖␇, q␇蔖␇, q␇蔖␇, q␇蔖␇, q␇蔖␇);
+Test_N(q␇𧏊␇, q␇𧏊␇, q␇𧏊␇, q␇𧏊␇, q␇𧏊␇);
+Test_N(q␇蕤␇, q␇蕤␇, q␇蕤␇, q␇蕤␇, q␇蕤␇);
+Test_N(q␇𦼬␇, q␇𦼬␇, q␇𦼬␇, q␇𦼬␇, q␇𦼬␇);
+Test_N(q␇䕝␇, q␇䕝␇, q␇䕝␇, q␇䕝␇, q␇䕝␇);
+Test_N(q␇䕡␇, q␇䕡␇, q␇䕡␇, q␇䕡␇, q␇䕡␇);
+Test_N(q␇𦾱␇, q␇𦾱␇, q␇𦾱␇, q␇𦾱␇, q␇𦾱␇);
+Test_N(q␇𧃒␇, q␇𧃒␇, q␇𧃒␇, q␇𧃒␇, q␇𧃒␇);
+Test_N(q␇䕫␇, q␇䕫␇, q␇䕫␇, q␇䕫␇, q␇䕫␇);
+Test_N(q␇虐␇, q␇虐␇, q␇虐␇, q␇虐␇, q␇虐␇);
+Test_N(q␇虜␇, q␇虜␇, q␇虜␇, q␇虜␇, q␇虜␇);
+Test_N(q␇虧␇, q␇虧␇, q␇虧␇, q␇虧␇, q␇虧␇);
+Test_N(q␇虩␇, q␇虩␇, q␇虩␇, q␇虩␇, q␇虩␇);
+Test_N(q␇蚩␇, q␇蚩␇, q␇蚩␇, q␇蚩␇, q␇蚩␇);
+Test_N(q␇蚈␇, q␇蚈␇, q␇蚈␇, q␇蚈␇, q␇蚈␇);
+Test_N(q␇蜎␇, q␇蜎␇, q␇蜎␇, q␇蜎␇, q␇蜎␇);
+Test_N(q␇蛢␇, q␇蛢␇, q␇蛢␇, q␇蛢␇, q␇蛢␇);
+Test_N(q␇蝹␇, q␇蝹␇, q␇蝹␇, q␇蝹␇, q␇蝹␇);
+Test_N(q␇蜨␇, q␇蜨␇, q␇蜨␇, q␇蜨␇, q␇蜨␇);
+Test_N(q␇蝫␇, q␇蝫␇, q␇蝫␇, q␇蝫␇, q␇蝫␇);
+Test_N(q␇螆␇, q␇螆␇, q␇螆␇, q␇螆␇, q␇螆␇);
+Test_N(q␇䗗␇, q␇䗗␇, q␇䗗␇, q␇䗗␇, q␇䗗␇);
+Test_N(q␇蟡␇, q␇蟡␇, q␇蟡␇, q␇蟡␇, q␇蟡␇);
+Test_N(q␇蠁␇, q␇蠁␇, q␇蠁␇, q␇蠁␇, q␇蠁␇);
+Test_N(q␇䗹␇, q␇䗹␇, q␇䗹␇, q␇䗹␇, q␇䗹␇);
+Test_N(q␇衠␇, q␇衠␇, q␇衠␇, q␇衠␇, q␇衠␇);
+Test_N(q␇衣␇, q␇衣␇, q␇衣␇, q␇衣␇, q␇衣␇);
+Test_N(q␇𧙧␇, q␇𧙧␇, q␇𧙧␇, q␇𧙧␇, q␇𧙧␇);
+Test_N(q␇裗␇, q␇裗␇, q␇裗␇, q␇裗␇, q␇裗␇);
+Test_N(q␇裞␇, q␇裞␇, q␇裞␇, q␇裞␇, q␇裞␇);
+Test_N(q␇䘵␇, q␇䘵␇, q␇䘵␇, q␇䘵␇, q␇䘵␇);
+Test_N(q␇裺␇, q␇裺␇, q␇裺␇, q␇裺␇, q␇裺␇);
+Test_N(q␇㒻␇, q␇㒻␇, q␇㒻␇, q␇㒻␇, q␇㒻␇);
+Test_N(q␇𧢮␇, q␇𧢮␇, q␇𧢮␇, q␇𧢮␇, q␇𧢮␇);
+Test_N(q␇𧥦␇, q␇𧥦␇, q␇𧥦␇, q␇𧥦␇, q␇𧥦␇);
+Test_N(q␇䚾␇, q␇䚾␇, q␇䚾␇, q␇䚾␇, q␇䚾␇);
+Test_N(q␇䛇␇, q␇䛇␇, q␇䛇␇, q␇䛇␇, q␇䛇␇);
+Test_N(q␇誠␇, q␇誠␇, q␇誠␇, q␇誠␇, q␇誠␇);
+Test_N(q␇諭␇, q␇諭␇, q␇諭␇, q␇諭␇, q␇諭␇);
+Test_N(q␇變␇, q␇變␇, q␇變␇, q␇變␇, q␇變␇);
+Test_N(q␇豕␇, q␇豕␇, q␇豕␇, q␇豕␇, q␇豕␇);
+Test_N(q␇𧲨␇, q␇𧲨␇, q␇𧲨␇, q␇𧲨␇, q␇𧲨␇);
+Test_N(q␇貫␇, q␇貫␇, q␇貫␇, q␇貫␇, q␇貫␇);
+Test_N(q␇賁␇, q␇賁␇, q␇賁␇, q␇賁␇, q␇賁␇);
+Test_N(q␇贛␇, q␇贛␇, q␇贛␇, q␇贛␇, q␇贛␇);
+Test_N(q␇起␇, q␇起␇, q␇起␇, q␇起␇, q␇起␇);
+Test_N(q␇𧼯␇, q␇𧼯␇, q␇𧼯␇, q␇𧼯␇, q␇𧼯␇);
+Test_N(q␇𠠄␇, q␇𠠄␇, q␇𠠄␇, q␇𠠄␇, q␇𠠄␇);
+Test_N(q␇跋␇, q␇跋␇, q␇跋␇, q␇跋␇, q␇跋␇);
+Test_N(q␇趼␇, q␇趼␇, q␇趼␇, q␇趼␇, q␇趼␇);
+Test_N(q␇跰␇, q␇跰␇, q␇跰␇, q␇跰␇, q␇跰␇);
+Test_N(q␇𠣞␇, q␇𠣞␇, q␇𠣞␇, q␇𠣞␇, q␇𠣞␇);
+Test_N(q␇軔␇, q␇軔␇, q␇軔␇, q␇軔␇, q␇軔␇);
+Test_N(q␇輸␇, q␇輸␇, q␇輸␇, q␇輸␇, q␇輸␇);
+Test_N(q␇𨗒␇, q␇𨗒␇, q␇𨗒␇, q␇𨗒␇, q␇𨗒␇);
+Test_N(q␇𨗭␇, q␇𨗭␇, q␇𨗭␇, q␇𨗭␇, q␇𨗭␇);
+Test_N(q␇邔␇, q␇邔␇, q␇邔␇, q␇邔␇, q␇邔␇);
+Test_N(q␇郱␇, q␇郱␇, q␇郱␇, q␇郱␇, q␇郱␇);
+Test_N(q␇鄑␇, q␇鄑␇, q␇鄑␇, q␇鄑␇, q␇鄑␇);
+Test_N(q␇𨜮␇, q␇𨜮␇, q␇𨜮␇, q␇𨜮␇, q␇𨜮␇);
+Test_N(q␇鄛␇, q␇鄛␇, q␇鄛␇, q␇鄛␇, q␇鄛␇);
+Test_N(q␇鈸␇, q␇鈸␇, q␇鈸␇, q␇鈸␇, q␇鈸␇);
+Test_N(q␇鋗␇, q␇鋗␇, q␇鋗␇, q␇鋗␇, q␇鋗␇);
+Test_N(q␇鋘␇, q␇鋘␇, q␇鋘␇, q␇鋘␇, q␇鋘␇);
+Test_N(q␇鉼␇, q␇鉼␇, q␇鉼␇, q␇鉼␇, q␇鉼␇);
+Test_N(q␇鏹␇, q␇鏹␇, q␇鏹␇, q␇鏹␇, q␇鏹␇);
+Test_N(q␇鐕␇, q␇鐕␇, q␇鐕␇, q␇鐕␇, q␇鐕␇);
+Test_N(q␇𨯺␇, q␇𨯺␇, q␇𨯺␇, q␇𨯺␇, q␇𨯺␇);
+Test_N(q␇開␇, q␇開␇, q␇開␇, q␇開␇, q␇開␇);
+Test_N(q␇䦕␇, q␇䦕␇, q␇䦕␇, q␇䦕␇, q␇䦕␇);
+Test_N(q␇閷␇, q␇閷␇, q␇閷␇, q␇閷␇, q␇閷␇);
+Test_N(q␇𨵷␇, q␇𨵷␇, q␇𨵷␇, q␇𨵷␇, q␇𨵷␇);
+Test_N(q␇䧦␇, q␇䧦␇, q␇䧦␇, q␇䧦␇, q␇䧦␇);
+Test_N(q␇雃␇, q␇雃␇, q␇雃␇, q␇雃␇, q␇雃␇);
+Test_N(q␇嶲␇, q␇嶲␇, q␇嶲␇, q␇嶲␇, q␇嶲␇);
+Test_N(q␇霣␇, q␇霣␇, q␇霣␇, q␇霣␇, q␇霣␇);
+Test_N(q␇𩅅␇, q␇𩅅␇, q␇𩅅␇, q␇𩅅␇, q␇𩅅␇);
+Test_N(q␇𩈚␇, q␇𩈚␇, q␇𩈚␇, q␇𩈚␇, q␇𩈚␇);
+Test_N(q␇䩮␇, q␇䩮␇, q␇䩮␇, q␇䩮␇, q␇䩮␇);
+Test_N(q␇䩶␇, q␇䩶␇, q␇䩶␇, q␇䩶␇, q␇䩶␇);
+Test_N(q␇韠␇, q␇韠␇, q␇韠␇, q␇韠␇, q␇韠␇);
+Test_N(q␇𩐊␇, q␇𩐊␇, q␇𩐊␇, q␇𩐊␇, q␇𩐊␇);
+Test_N(q␇䪲␇, q␇䪲␇, q␇䪲␇, q␇䪲␇, q␇䪲␇);
+Test_N(q␇𩒖␇, q␇𩒖␇, q␇𩒖␇, q␇𩒖␇, q␇𩒖␇);
+Test_N(q␇頋␇, q␇頋␇, q␇頋␇, q␇頋␇, q␇頋␇);
+Test_N(q␇頋␇, q␇頋␇, q␇頋␇, q␇頋␇, q␇頋␇);
+Test_N(q␇頩␇, q␇頩␇, q␇頩␇, q␇頩␇, q␇頩␇);
+Test_N(q␇𩖶␇, q␇𩖶␇, q␇𩖶␇, q␇𩖶␇, q␇𩖶␇);
+Test_N(q␇飢␇, q␇飢␇, q␇飢␇, q␇飢␇, q␇飢␇);
+Test_N(q␇䬳␇, q␇䬳␇, q␇䬳␇, q␇䬳␇, q␇䬳␇);
+Test_N(q␇餩␇, q␇餩␇, q␇餩␇, q␇餩␇, q␇餩␇);
+Test_N(q␇馧␇, q␇馧␇, q␇馧␇, q␇馧␇, q␇馧␇);
+Test_N(q␇駂␇, q␇駂␇, q␇駂␇, q␇駂␇, q␇駂␇);
+Test_N(q␇駾␇, q␇駾␇, q␇駾␇, q␇駾␇, q␇駾␇);
+Test_N(q␇䯎␇, q␇䯎␇, q␇䯎␇, q␇䯎␇, q␇䯎␇);
+Test_N(q␇𩬰␇, q␇𩬰␇, q␇𩬰␇, q␇𩬰␇, q␇𩬰␇);
+Test_N(q␇鬒␇, q␇鬒␇, q␇鬒␇, q␇鬒␇, q␇鬒␇);
+Test_N(q␇鱀␇, q␇鱀␇, q␇鱀␇, q␇鱀␇, q␇鱀␇);
+Test_N(q␇鳽␇, q␇鳽␇, q␇鳽␇, q␇鳽␇, q␇鳽␇);
+Test_N(q␇䳎␇, q␇䳎␇, q␇䳎␇, q␇䳎␇, q␇䳎␇);
+Test_N(q␇䳭␇, q␇䳭␇, q␇䳭␇, q␇䳭␇, q␇䳭␇);
+Test_N(q␇鵧␇, q␇鵧␇, q␇鵧␇, q␇鵧␇, q␇鵧␇);
+Test_N(q␇𪃎␇, q␇𪃎␇, q␇𪃎␇, q␇𪃎␇, q␇𪃎␇);
+Test_N(q␇䳸␇, q␇䳸␇, q␇䳸␇, q␇䳸␇, q␇䳸␇);
+Test_N(q␇𪄅␇, q␇𪄅␇, q␇𪄅␇, q␇𪄅␇, q␇𪄅␇);
+Test_N(q␇𪈎␇, q␇𪈎␇, q␇𪈎␇, q␇𪈎␇, q␇𪈎␇);
+Test_N(q␇𪊑␇, q␇𪊑␇, q␇𪊑␇, q␇𪊑␇, q␇𪊑␇);
+Test_N(q␇麻␇, q␇麻␇, q␇麻␇, q␇麻␇, q␇麻␇);
+Test_N(q␇䵖␇, q␇䵖␇, q␇䵖␇, q␇䵖␇, q␇䵖␇);
+Test_N(q␇黹␇, q␇黹␇, q␇黹␇, q␇黹␇, q␇黹␇);
+Test_N(q␇黾␇, q␇黾␇, q␇黾␇, q␇黾␇, q␇黾␇);
+Test_N(q␇鼅␇, q␇鼅␇, q␇鼅␇, q␇鼅␇, q␇鼅␇);
+Test_N(q␇鼏␇, q␇鼏␇, q␇鼏␇, q␇鼏␇, q␇鼏␇);
+Test_N(q␇鼖␇, q␇鼖␇, q␇鼖␇, q␇鼖␇, q␇鼖␇);
+Test_N(q␇鼻␇, q␇鼻␇, q␇鼻␇, q␇鼻␇, q␇鼻␇);
+Test_N(q␇𪘀␇, q␇𪘀␇, q␇𪘀␇, q␇𪘀␇, q␇𪘀␇);
+Test_N(q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇);
+Test_N(q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇);
+Test_N(q␇à֮́̕b␇, q␇à֮́̕b␇, q␇à֮́̕b␇, q␇à֮́̕b␇, q␇à֮́̕b␇);
+Test_N(q␇á֮̀̕b␇, q␇á֮̀̕b␇, q␇á֮̀̕b␇, q␇á֮̀̕b␇, q␇á֮̀̕b␇);
+Test_N(q␇à֮̂̕b␇, q␇à֮̂̕b␇, q␇à֮̂̕b␇, q␇à֮̂̕b␇, q␇à֮̂̕b␇);
+Test_N(q␇ầ֮̕b␇, q␇ầ֮̕b␇, q␇ầ֮̕b␇, q␇ầ֮̕b␇, q␇ầ֮̕b␇);
+Test_N(q␇à֮̃̕b␇, q␇à֮̃̕b␇, q␇à֮̃̕b␇, q␇à֮̃̕b␇, q␇à֮̃̕b␇);
+Test_N(q␇ã֮̀̕b␇, q␇ã֮̀̕b␇, q␇ã֮̀̕b␇, q␇ã֮̀̕b␇, q␇ã֮̀̕b␇);
+Test_N(q␇à֮̄̕b␇, q␇à֮̄̕b␇, q␇à֮̄̕b␇, q␇à֮̄̕b␇, q␇à֮̄̕b␇);
+Test_N(q␇ā֮̀̕b␇, q␇ā֮̀̕b␇, q␇ā֮̀̕b␇, q␇ā֮̀̕b␇, q␇ā֮̀̕b␇);
+Test_N(q␇à֮̅̕b␇, q␇à֮̅̕b␇, q␇à֮̅̕b␇, q␇à֮̅̕b␇, q␇à֮̅̕b␇);
+Test_N(q␇a֮̅̀̕b␇, q␇a֮̅̀̕b␇, q␇a֮̅̀̕b␇, q␇a֮̅̀̕b␇, q␇a֮̅̀̕b␇);
+Test_N(q␇à֮̆̕b␇, q␇à֮̆̕b␇, q␇à֮̆̕b␇, q␇à֮̆̕b␇, q␇à֮̆̕b␇);
+Test_N(q␇ằ֮̕b␇, q␇ằ֮̕b␇, q␇ằ֮̕b␇, q␇ằ֮̕b␇, q␇ằ֮̕b␇);
+Test_N(q␇à֮̇̕b␇, q␇à֮̇̕b␇, q␇à֮̇̕b␇, q␇à֮̇̕b␇, q␇à֮̇̕b␇);
+Test_N(q␇ȧ֮̀̕b␇, q␇ȧ֮̀̕b␇, q␇ȧ֮̀̕b␇, q␇ȧ֮̀̕b␇, q␇ȧ֮̀̕b␇);
+Test_N(q␇à֮̈̕b␇, q␇à֮̈̕b␇, q␇à֮̈̕b␇, q␇à֮̈̕b␇, q␇à֮̈̕b␇);
+Test_N(q␇ä֮̀̕b␇, q␇ä֮̀̕b␇, q␇ä֮̀̕b␇, q␇ä֮̀̕b␇, q␇ä֮̀̕b␇);
+Test_N(q␇à֮̉̕b␇, q␇à֮̉̕b␇, q␇à֮̉̕b␇, q␇à֮̉̕b␇, q␇à֮̉̕b␇);
+Test_N(q␇ả֮̀̕b␇, q␇ả֮̀̕b␇, q␇ả֮̀̕b␇, q␇ả֮̀̕b␇, q␇ả֮̀̕b␇);
+Test_N(q␇à֮̊̕b␇, q␇à֮̊̕b␇, q␇à֮̊̕b␇, q␇à֮̊̕b␇, q␇à֮̊̕b␇);
+Test_N(q␇å֮̀̕b␇, q␇å֮̀̕b␇, q␇å֮̀̕b␇, q␇å֮̀̕b␇, q␇å֮̀̕b␇);
+Test_N(q␇à֮̋̕b␇, q␇à֮̋̕b␇, q␇à֮̋̕b␇, q␇à֮̋̕b␇, q␇à֮̋̕b␇);
+Test_N(q␇a֮̋̀̕b␇, q␇a֮̋̀̕b␇, q␇a֮̋̀̕b␇, q␇a֮̋̀̕b␇, q␇a֮̋̀̕b␇);
+Test_N(q␇à֮̌̕b␇, q␇à֮̌̕b␇, q␇à֮̌̕b␇, q␇à֮̌̕b␇, q␇à֮̌̕b␇);
+Test_N(q␇ǎ֮̀̕b␇, q␇ǎ֮̀̕b␇, q␇ǎ֮̀̕b␇, q␇ǎ֮̀̕b␇, q␇ǎ֮̀̕b␇);
+Test_N(q␇à֮̍̕b␇, q␇à֮̍̕b␇, q␇à֮̍̕b␇, q␇à֮̍̕b␇, q␇à֮̍̕b␇);
+Test_N(q␇a֮̍̀̕b␇, q␇a֮̍̀̕b␇, q␇a֮̍̀̕b␇, q␇a֮̍̀̕b␇, q␇a֮̍̀̕b␇);
+Test_N(q␇à֮̎̕b␇, q␇à֮̎̕b␇, q␇à֮̎̕b␇, q␇à֮̎̕b␇, q␇à֮̎̕b␇);
+Test_N(q␇a֮̎̀̕b␇, q␇a֮̎̀̕b␇, q␇a֮̎̀̕b␇, q␇a֮̎̀̕b␇, q␇a֮̎̀̕b␇);
+Test_N(q␇à֮̏̕b␇, q␇à֮̏̕b␇, q␇à֮̏̕b␇, q␇à֮̏̕b␇, q␇à֮̏̕b␇);
+Test_N(q␇ȁ֮̀̕b␇, q␇ȁ֮̀̕b␇, q␇ȁ֮̀̕b␇, q␇ȁ֮̀̕b␇, q␇ȁ֮̀̕b␇);
+Test_N(q␇à֮̐̕b␇, q␇à֮̐̕b␇, q␇à֮̐̕b␇, q␇à֮̐̕b␇, q␇à֮̐̕b␇);
+Test_N(q␇a֮̐̀̕b␇, q␇a֮̐̀̕b␇, q␇a֮̐̀̕b␇, q␇a֮̐̀̕b␇, q␇a֮̐̀̕b␇);
+Test_N(q␇à֮̑̕b␇, q␇à֮̑̕b␇, q␇à֮̑̕b␇, q␇à֮̑̕b␇, q␇à֮̑̕b␇);
+Test_N(q␇ȃ֮̀̕b␇, q␇ȃ֮̀̕b␇, q␇ȃ֮̀̕b␇, q␇ȃ֮̀̕b␇, q␇ȃ֮̀̕b␇);
+Test_N(q␇à֮̒̕b␇, q␇à֮̒̕b␇, q␇à֮̒̕b␇, q␇à֮̒̕b␇, q␇à֮̒̕b␇);
+Test_N(q␇a֮̒̀̕b␇, q␇a֮̒̀̕b␇, q␇a֮̒̀̕b␇, q␇a֮̒̀̕b␇, q␇a֮̒̀̕b␇);
+Test_N(q␇à֮̓̕b␇, q␇à֮̓̕b␇, q␇à֮̓̕b␇, q␇à֮̓̕b␇, q␇à֮̓̕b␇);
+Test_N(q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇);
+Test_N(q␇à֮̔̕b␇, q␇à֮̔̕b␇, q␇à֮̔̕b␇, q␇à֮̔̕b␇, q␇à֮̔̕b␇);
+Test_N(q␇a֮̔̀̕b␇, q␇a֮̔̀̕b␇, q␇a֮̔̀̕b␇, q␇a֮̔̀̕b␇, q␇a֮̔̀̕b␇);
+Test_N(q␇à̕̕͜b␇, q␇à̕̕͜b␇, q␇à̕̕͜b␇, q␇à̕̕͜b␇, q␇à̕̕͜b␇);
+Test_N(q␇à̕̕͜b␇, q␇à̕̕͜b␇, q␇à̕̕͜b␇, q␇à̕̕͜b␇, q␇à̕̕͜b␇);
+Test_N(q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇);
+Test_N(q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇, q␇a᷺̖̖֚b␇);
+Test_N(q␇a᷺̖̗֚b␇, q␇a᷺̖̗֚b␇, q␇a᷺̖̗֚b␇, q␇a᷺̖̗֚b␇, q␇a᷺̖̗֚b␇);
+Test_N(q␇a᷺̗̖֚b␇, q␇a᷺̗̖֚b␇, q␇a᷺̗̖֚b␇, q␇a᷺̗̖֚b␇, q␇a᷺̗̖֚b␇);
+Test_N(q␇a᷺̖̘֚b␇, q␇a᷺̖̘֚b␇, q␇a᷺̖̘֚b␇, q␇a᷺̖̘֚b␇, q␇a᷺̖̘֚b␇);
+Test_N(q␇a᷺̘̖֚b␇, q␇a᷺̘̖֚b␇, q␇a᷺̘̖֚b␇, q␇a᷺̘̖֚b␇, q␇a᷺̘̖֚b␇);
+Test_N(q␇a᷺̖̙֚b␇, q␇a᷺̖̙֚b␇, q␇a᷺̖̙֚b␇, q␇a᷺̖̙֚b␇, q␇a᷺̖̙֚b␇);
+Test_N(q␇a᷺̙̖֚b␇, q␇a᷺̙̖֚b␇, q␇a᷺̙̖֚b␇, q␇a᷺̙̖֚b␇, q␇a᷺̙̖֚b␇);
+Test_N(q␇à̕̚͜b␇, q␇à̕̚͜b␇, q␇à̕̚͜b␇, q␇à̕̚͜b␇, q␇à̕̚͜b␇);
+Test_N(q␇à̚̕͜b␇, q␇à̚̕͜b␇, q␇à̚̕͜b␇, q␇à̚̕͜b␇, q␇à̚̕͜b␇);
+Test_N(q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇);
+Test_N(q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇, q␇a᷎̛̛᷺b␇);
+Test_N(q␇a᷺̖̜֚b␇, q␇a᷺̖̜֚b␇, q␇a᷺̖̜֚b␇, q␇a᷺̖̜֚b␇, q␇a᷺̖̜֚b␇);
+Test_N(q␇a᷺̜̖֚b␇, q␇a᷺̜̖֚b␇, q␇a᷺̜̖֚b␇, q␇a᷺̜̖֚b␇, q␇a᷺̜̖֚b␇);
+Test_N(q␇a᷺̖̝֚b␇, q␇a᷺̖̝֚b␇, q␇a᷺̖̝֚b␇, q␇a᷺̖̝֚b␇, q␇a᷺̖̝֚b␇);
+Test_N(q␇a᷺̝̖֚b␇, q␇a᷺̝̖֚b␇, q␇a᷺̝̖֚b␇, q␇a᷺̝̖֚b␇, q␇a᷺̝̖֚b␇);
+Test_N(q␇a᷺̖̞֚b␇, q␇a᷺̖̞֚b␇, q␇a᷺̖̞֚b␇, q␇a᷺̖̞֚b␇, q␇a᷺̖̞֚b␇);
+Test_N(q␇a᷺̞̖֚b␇, q␇a᷺̞̖֚b␇, q␇a᷺̞̖֚b␇, q␇a᷺̞̖֚b␇, q␇a᷺̞̖֚b␇);
+Test_N(q␇a᷺̖̟֚b␇, q␇a᷺̖̟֚b␇, q␇a᷺̖̟֚b␇, q␇a᷺̖̟֚b␇, q␇a᷺̖̟֚b␇);
+Test_N(q␇a᷺̟̖֚b␇, q␇a᷺̟̖֚b␇, q␇a᷺̟̖֚b␇, q␇a᷺̟̖֚b␇, q␇a᷺̟̖֚b␇);
+Test_N(q␇a᷺̖̠֚b␇, q␇a᷺̖̠֚b␇, q␇a᷺̖̠֚b␇, q␇a᷺̖̠֚b␇, q␇a᷺̖̠֚b␇);
+Test_N(q␇a᷺̠̖֚b␇, q␇a᷺̠̖֚b␇, q␇a᷺̠̖֚b␇, q␇a᷺̠̖֚b␇, q␇a᷺̠̖֚b␇);
+Test_N(q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇);
+Test_N(q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇, q␇aུ̡̡᷎b␇);
+Test_N(q␇aུ̡̢᷎b␇, q␇aུ̡̢᷎b␇, q␇aུ̡̢᷎b␇, q␇aུ̡̢᷎b␇, q␇aུ̡̢᷎b␇);
+Test_N(q␇aུ̢̡᷎b␇, q␇aུ̢̡᷎b␇, q␇aུ̢̡᷎b␇, q␇aུ̢̡᷎b␇, q␇aུ̢̡᷎b␇);
+Test_N(q␇a᷺̖̣֚b␇, q␇a᷺̖̣֚b␇, q␇a᷺̖̣֚b␇, q␇a᷺̖̣֚b␇, q␇a᷺̖̣֚b␇);
+Test_N(q␇ạ᷺̖֚b␇, q␇ạ᷺̖֚b␇, q␇ạ᷺̖֚b␇, q␇ạ᷺̖֚b␇, q␇ạ᷺̖֚b␇);
+Test_N(q␇a᷺̖̤֚b␇, q␇a᷺̖̤֚b␇, q␇a᷺̖̤֚b␇, q␇a᷺̖̤֚b␇, q␇a᷺̖̤֚b␇);
+Test_N(q␇a᷺̤̖֚b␇, q␇a᷺̤̖֚b␇, q␇a᷺̤̖֚b␇, q␇a᷺̤̖֚b␇, q␇a᷺̤̖֚b␇);
+Test_N(q␇a᷺̖̥֚b␇, q␇a᷺̖̥֚b␇, q␇a᷺̖̥֚b␇, q␇a᷺̖̥֚b␇, q␇a᷺̖̥֚b␇);
+Test_N(q␇ḁ᷺̖֚b␇, q␇ḁ᷺̖֚b␇, q␇ḁ᷺̖֚b␇, q␇ḁ᷺̖֚b␇, q␇ḁ᷺̖֚b␇);
+Test_N(q␇a᷺̖̦֚b␇, q␇a᷺̖̦֚b␇, q␇a᷺̖̦֚b␇, q␇a᷺̖̦֚b␇, q␇a᷺̖̦֚b␇);
+Test_N(q␇a᷺̦̖֚b␇, q␇a᷺̦̖֚b␇, q␇a᷺̦̖֚b␇, q␇a᷺̦̖֚b␇, q␇a᷺̦̖֚b␇);
+Test_N(q␇aུ̡̧᷎b␇, q␇aུ̡̧᷎b␇, q␇aུ̡̧᷎b␇, q␇aུ̡̧᷎b␇, q␇aུ̡̧᷎b␇);
+Test_N(q␇aུ̧̡᷎b␇, q␇aུ̧̡᷎b␇, q␇aུ̧̡᷎b␇, q␇aུ̧̡᷎b␇, q␇aུ̧̡᷎b␇);
+Test_N(q␇aུ̡̨᷎b␇, q␇aུ̡̨᷎b␇, q␇aུ̡̨᷎b␇, q␇aུ̡̨᷎b␇, q␇aུ̡̨᷎b␇);
+Test_N(q␇ąུ̡᷎b␇, q␇ąུ̡᷎b␇, q␇ąུ̡᷎b␇, q␇ąུ̡᷎b␇, q␇ąུ̡᷎b␇);
+Test_N(q␇a᷺̖̩֚b␇, q␇a᷺̖̩֚b␇, q␇a᷺̖̩֚b␇, q␇a᷺̖̩֚b␇, q␇a᷺̖̩֚b␇);
+Test_N(q␇a᷺̩̖֚b␇, q␇a᷺̩̖֚b␇, q␇a᷺̩̖֚b␇, q␇a᷺̩̖֚b␇, q␇a᷺̩̖֚b␇);
+Test_N(q␇a᷺̖̪֚b␇, q␇a᷺̖̪֚b␇, q␇a᷺̖̪֚b␇, q␇a᷺̖̪֚b␇, q␇a᷺̖̪֚b␇);
+Test_N(q␇a᷺̪̖֚b␇, q␇a᷺̪̖֚b␇, q␇a᷺̪̖֚b␇, q␇a᷺̪̖֚b␇, q␇a᷺̪̖֚b␇);
+Test_N(q␇a᷺̖̫֚b␇, q␇a᷺̖̫֚b␇, q␇a᷺̖̫֚b␇, q␇a᷺̖̫֚b␇, q␇a᷺̖̫֚b␇);
+Test_N(q␇a᷺̫̖֚b␇, q␇a᷺̫̖֚b␇, q␇a᷺̫̖֚b␇, q␇a᷺̫̖֚b␇, q␇a᷺̫̖֚b␇);
+Test_N(q␇a᷺̖̬֚b␇, q␇a᷺̖̬֚b␇, q␇a᷺̖̬֚b␇, q␇a᷺̖̬֚b␇, q␇a᷺̖̬֚b␇);
+Test_N(q␇a᷺̬̖֚b␇, q␇a᷺̬̖֚b␇, q␇a᷺̬̖֚b␇, q␇a᷺̬̖֚b␇, q␇a᷺̬̖֚b␇);
+Test_N(q␇a᷺̖̭֚b␇, q␇a᷺̖̭֚b␇, q␇a᷺̖̭֚b␇, q␇a᷺̖̭֚b␇, q␇a᷺̖̭֚b␇);
+Test_N(q␇a᷺̭̖֚b␇, q␇a᷺̭̖֚b␇, q␇a᷺̭̖֚b␇, q␇a᷺̭̖֚b␇, q␇a᷺̭̖֚b␇);
+Test_N(q␇a᷺̖̮֚b␇, q␇a᷺̖̮֚b␇, q␇a᷺̖̮֚b␇, q␇a᷺̖̮֚b␇, q␇a᷺̖̮֚b␇);
+Test_N(q␇a᷺̮̖֚b␇, q␇a᷺̮̖֚b␇, q␇a᷺̮̖֚b␇, q␇a᷺̮̖֚b␇, q␇a᷺̮̖֚b␇);
+Test_N(q␇a᷺̖̯֚b␇, q␇a᷺̖̯֚b␇, q␇a᷺̖̯֚b␇, q␇a᷺̖̯֚b␇, q␇a᷺̖̯֚b␇);
+Test_N(q␇a᷺̯̖֚b␇, q␇a᷺̯̖֚b␇, q␇a᷺̯̖֚b␇, q␇a᷺̯̖֚b␇, q␇a᷺̯̖֚b␇);
+Test_N(q␇a᷺̖̰֚b␇, q␇a᷺̖̰֚b␇, q␇a᷺̖̰֚b␇, q␇a᷺̖̰֚b␇, q␇a᷺̖̰֚b␇);
+Test_N(q␇a᷺̰̖֚b␇, q␇a᷺̰̖֚b␇, q␇a᷺̰̖֚b␇, q␇a᷺̰̖֚b␇, q␇a᷺̰̖֚b␇);
+Test_N(q␇a᷺̖̱֚b␇, q␇a᷺̖̱֚b␇, q␇a᷺̖̱֚b␇, q␇a᷺̖̱֚b␇, q␇a᷺̖̱֚b␇);
+Test_N(q␇a᷺̱̖֚b␇, q␇a᷺̱̖֚b␇, q␇a᷺̱̖֚b␇, q␇a᷺̱̖֚b␇, q␇a᷺̱̖֚b␇);
+Test_N(q␇a᷺̖̲֚b␇, q␇a᷺̖̲֚b␇, q␇a᷺̖̲֚b␇, q␇a᷺̖̲֚b␇, q␇a᷺̖̲֚b␇);
+Test_N(q␇a᷺̲̖֚b␇, q␇a᷺̲̖֚b␇, q␇a᷺̲̖֚b␇, q␇a᷺̲̖֚b␇, q␇a᷺̲̖֚b␇);
+Test_N(q␇a᷺̖̳֚b␇, q␇a᷺̖̳֚b␇, q␇a᷺̖̳֚b␇, q␇a᷺̖̳֚b␇, q␇a᷺̖̳֚b␇);
+Test_N(q␇a᷺̳̖֚b␇, q␇a᷺̳̖֚b␇, q␇a᷺̳̖֚b␇, q␇a᷺̳̖֚b␇, q␇a᷺̳̖֚b␇);
+Test_N(q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇);
+Test_N(q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇, q␇a̴̴𖿰b␇);
+Test_N(q␇a̴̵𖿰b␇, q␇a̴̵𖿰b␇, q␇a̴̵𖿰b␇, q␇a̴̵𖿰b␇, q␇a̴̵𖿰b␇);
+Test_N(q␇a̵̴𖿰b␇, q␇a̵̴𖿰b␇, q␇a̵̴𖿰b␇, q␇a̵̴𖿰b␇, q␇a̵̴𖿰b␇);
+Test_N(q␇a̴̶𖿰b␇, q␇a̴̶𖿰b␇, q␇a̴̶𖿰b␇, q␇a̴̶𖿰b␇, q␇a̴̶𖿰b␇);
+Test_N(q␇a̶̴𖿰b␇, q␇a̶̴𖿰b␇, q␇a̶̴𖿰b␇, q␇a̶̴𖿰b␇, q␇a̶̴𖿰b␇);
+Test_N(q␇a̴̷𖿰b␇, q␇a̴̷𖿰b␇, q␇a̴̷𖿰b␇, q␇a̴̷𖿰b␇, q␇a̴̷𖿰b␇);
+Test_N(q␇a̷̴𖿰b␇, q␇a̷̴𖿰b␇, q␇a̷̴𖿰b␇, q␇a̷̴𖿰b␇, q␇a̷̴𖿰b␇);
+Test_N(q␇a̴̸𖿰b␇, q␇a̴̸𖿰b␇, q␇a̴̸𖿰b␇, q␇a̴̸𖿰b␇, q␇a̴̸𖿰b␇);
+Test_N(q␇a̸̴𖿰b␇, q␇a̸̴𖿰b␇, q␇a̸̴𖿰b␇, q␇a̸̴𖿰b␇, q␇a̸̴𖿰b␇);
+Test_N(q␇a᷺̖̹֚b␇, q␇a᷺̖̹֚b␇, q␇a᷺̖̹֚b␇, q␇a᷺̖̹֚b␇, q␇a᷺̖̹֚b␇);
+Test_N(q␇a᷺̹̖֚b␇, q␇a᷺̹̖֚b␇, q␇a᷺̹̖֚b␇, q␇a᷺̹̖֚b␇, q␇a᷺̹̖֚b␇);
+Test_N(q␇a᷺̖̺֚b␇, q␇a᷺̖̺֚b␇, q␇a᷺̖̺֚b␇, q␇a᷺̖̺֚b␇, q␇a᷺̖̺֚b␇);
+Test_N(q␇a᷺̺̖֚b␇, q␇a᷺̺̖֚b␇, q␇a᷺̺̖֚b␇, q␇a᷺̺̖֚b␇, q␇a᷺̺̖֚b␇);
+Test_N(q␇a᷺̖̻֚b␇, q␇a᷺̖̻֚b␇, q␇a᷺̖̻֚b␇, q␇a᷺̖̻֚b␇, q␇a᷺̖̻֚b␇);
+Test_N(q␇a᷺̻̖֚b␇, q␇a᷺̻̖֚b␇, q␇a᷺̻̖֚b␇, q␇a᷺̻̖֚b␇, q␇a᷺̻̖֚b␇);
+Test_N(q␇a᷺̖̼֚b␇, q␇a᷺̖̼֚b␇, q␇a᷺̖̼֚b␇, q␇a᷺̖̼֚b␇, q␇a᷺̖̼֚b␇);
+Test_N(q␇a᷺̼̖֚b␇, q␇a᷺̼̖֚b␇, q␇a᷺̼̖֚b␇, q␇a᷺̼̖֚b␇, q␇a᷺̼̖֚b␇);
+Test_N(q␇à֮̽̕b␇, q␇à֮̽̕b␇, q␇à֮̽̕b␇, q␇à֮̽̕b␇, q␇à֮̽̕b␇);
+Test_N(q␇a֮̽̀̕b␇, q␇a֮̽̀̕b␇, q␇a֮̽̀̕b␇, q␇a֮̽̀̕b␇, q␇a֮̽̀̕b␇);
+Test_N(q␇à֮̾̕b␇, q␇à֮̾̕b␇, q␇à֮̾̕b␇, q␇à֮̾̕b␇, q␇à֮̾̕b␇);
+Test_N(q␇a֮̾̀̕b␇, q␇a֮̾̀̕b␇, q␇a֮̾̀̕b␇, q␇a֮̾̀̕b␇, q␇a֮̾̀̕b␇);
+Test_N(q␇à֮̿̕b␇, q␇à֮̿̕b␇, q␇à֮̿̕b␇, q␇à֮̿̕b␇, q␇à֮̿̕b␇);
+Test_N(q␇a֮̿̀̕b␇, q␇a֮̿̀̕b␇, q␇a֮̿̀̕b␇, q␇a֮̿̀̕b␇, q␇a֮̿̀̕b␇);
+Test_N(q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇);
+Test_N(q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇, q␇à֮̀̕b␇);
+Test_N(q␇à֮́̕b␇, q␇à֮́̕b␇, q␇à֮́̕b␇, q␇à֮́̕b␇, q␇à֮́̕b␇);
+Test_N(q␇á֮̀̕b␇, q␇á֮̀̕b␇, q␇á֮̀̕b␇, q␇á֮̀̕b␇, q␇á֮̀̕b␇);
+Test_N(q␇à֮͂̕b␇, q␇à֮͂̕b␇, q␇à֮͂̕b␇, q␇à֮͂̕b␇, q␇à֮͂̕b␇);
+Test_N(q␇a֮͂̀̕b␇, q␇a֮͂̀̕b␇, q␇a֮͂̀̕b␇, q␇a֮͂̀̕b␇, q␇a֮͂̀̕b␇);
+Test_N(q␇à֮̓̕b␇, q␇à֮̓̕b␇, q␇à֮̓̕b␇, q␇à֮̓̕b␇, q␇à֮̓̕b␇);
+Test_N(q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇, q␇a֮̓̀̕b␇);
+Test_N(q␇à֮̈́̕b␇, q␇à֮̈́̕b␇, q␇à֮̈́̕b␇, q␇à֮̈́̕b␇, q␇à֮̈́̕b␇);
+Test_N(q␇ä֮́̀̕b␇, q␇ä֮́̀̕b␇, q␇ä֮́̀̕b␇, q␇ä֮́̀̕b␇, q␇ä֮́̀̕b␇);
+Test_N(q␇a͝ͅͅb␇, q␇a͝ͅͅb␇, q␇a͝ͅͅb␇, q␇a͝ͅͅb␇, q␇a͝ͅͅb␇);
+Test_N(q␇a͝ͅͅb␇, q␇a͝ͅͅb␇, q␇a͝ͅͅb␇, q␇a͝ͅͅb␇, q␇a͝ͅͅb␇);
+Test_N(q␇à֮͆̕b␇, q␇à֮͆̕b␇, q␇à֮͆̕b␇, q␇à֮͆̕b␇, q␇à֮͆̕b␇);
+Test_N(q␇a֮͆̀̕b␇, q␇a֮͆̀̕b␇, q␇a֮͆̀̕b␇, q␇a֮͆̀̕b␇, q␇a֮͆̀̕b␇);
+Test_N(q␇a᷺̖͇֚b␇, q␇a᷺̖͇֚b␇, q␇a᷺̖͇֚b␇, q␇a᷺̖͇֚b␇, q␇a᷺̖͇֚b␇);
+Test_N(q␇a᷺͇̖֚b␇, q␇a᷺͇̖֚b␇, q␇a᷺͇̖֚b␇, q␇a᷺͇̖֚b␇, q␇a᷺͇̖֚b␇);
+Test_N(q␇a᷺̖͈֚b␇, q␇a᷺̖͈֚b␇, q␇a᷺̖͈֚b␇, q␇a᷺̖͈֚b␇, q␇a᷺̖͈֚b␇);
+Test_N(q␇a᷺͈̖֚b␇, q␇a᷺͈̖֚b␇, q␇a᷺͈̖֚b␇, q␇a᷺͈̖֚b␇, q␇a᷺͈̖֚b␇);
+Test_N(q␇a᷺̖͉֚b␇, q␇a᷺̖͉֚b␇, q␇a᷺̖͉֚b␇, q␇a᷺̖͉֚b␇, q␇a᷺̖͉֚b␇);
+Test_N(q␇a᷺͉̖֚b␇, q␇a᷺͉̖֚b␇, q␇a᷺͉̖֚b␇, q␇a᷺͉̖֚b␇, q␇a᷺͉̖֚b␇);
+Test_N(q␇à֮͊̕b␇, q␇à֮͊̕b␇, q␇à֮͊̕b␇, q␇à֮͊̕b␇, q␇à֮͊̕b␇);
+Test_N(q␇a֮͊̀̕b␇, q␇a֮͊̀̕b␇, q␇a֮͊̀̕b␇, q␇a֮͊̀̕b␇, q␇a֮͊̀̕b␇);
+Test_N(q␇à֮͋̕b␇, q␇à֮͋̕b␇, q␇à֮͋̕b␇, q␇à֮͋̕b␇, q␇à֮͋̕b␇);
+Test_N(q␇a֮͋̀̕b␇, q␇a֮͋̀̕b␇, q␇a֮͋̀̕b␇, q␇a֮͋̀̕b␇, q␇a֮͋̀̕b␇);
+Test_N(q␇à֮͌̕b␇, q␇à֮͌̕b␇, q␇à֮͌̕b␇, q␇à֮͌̕b␇, q␇à֮͌̕b␇);
+Test_N(q␇a֮͌̀̕b␇, q␇a֮͌̀̕b␇, q␇a֮͌̀̕b␇, q␇a֮͌̀̕b␇, q␇a֮͌̀̕b␇);
+Test_N(q␇a᷺̖͍֚b␇, q␇a᷺̖͍֚b␇, q␇a᷺̖͍֚b␇, q␇a᷺̖͍֚b␇, q␇a᷺̖͍֚b␇);
+Test_N(q␇a᷺͍̖֚b␇, q␇a᷺͍̖֚b␇, q␇a᷺͍̖֚b␇, q␇a᷺͍̖֚b␇, q␇a᷺͍̖֚b␇);
+Test_N(q␇a᷺̖͎֚b␇, q␇a᷺̖͎֚b␇, q␇a᷺̖͎֚b␇, q␇a᷺̖͎֚b␇, q␇a᷺̖͎֚b␇);
+Test_N(q␇a᷺͎̖֚b␇, q␇a᷺͎̖֚b␇, q␇a᷺͎̖֚b␇, q␇a᷺͎̖֚b␇, q␇a᷺͎̖֚b␇);
+Test_N(q␇à֮͐̕b␇, q␇à֮͐̕b␇, q␇à֮͐̕b␇, q␇à֮͐̕b␇, q␇à֮͐̕b␇);
+Test_N(q␇a֮͐̀̕b␇, q␇a֮͐̀̕b␇, q␇a֮͐̀̕b␇, q␇a֮͐̀̕b␇, q␇a֮͐̀̕b␇);
+Test_N(q␇à֮͑̕b␇, q␇à֮͑̕b␇, q␇à֮͑̕b␇, q␇à֮͑̕b␇, q␇à֮͑̕b␇);
+Test_N(q␇a֮͑̀̕b␇, q␇a֮͑̀̕b␇, q␇a֮͑̀̕b␇, q␇a֮͑̀̕b␇, q␇a֮͑̀̕b␇);
+Test_N(q␇à֮͒̕b␇, q␇à֮͒̕b␇, q␇à֮͒̕b␇, q␇à֮͒̕b␇, q␇à֮͒̕b␇);
+Test_N(q␇a֮͒̀̕b␇, q␇a֮͒̀̕b␇, q␇a֮͒̀̕b␇, q␇a֮͒̀̕b␇, q␇a֮͒̀̕b␇);
+Test_N(q␇a᷺̖͓֚b␇, q␇a᷺̖͓֚b␇, q␇a᷺̖͓֚b␇, q␇a᷺̖͓֚b␇, q␇a᷺̖͓֚b␇);
+Test_N(q␇a᷺͓̖֚b␇, q␇a᷺͓̖֚b␇, q␇a᷺͓̖֚b␇, q␇a᷺͓̖֚b␇, q␇a᷺͓̖֚b␇);
+Test_N(q␇a᷺̖͔֚b␇, q␇a᷺̖͔֚b␇, q␇a᷺̖͔֚b␇, q␇a᷺̖͔֚b␇, q␇a᷺̖͔֚b␇);
+Test_N(q␇a᷺͔̖֚b␇, q␇a᷺͔̖֚b␇, q␇a᷺͔̖֚b␇, q␇a᷺͔̖֚b␇, q␇a᷺͔̖֚b␇);
+Test_N(q␇a᷺̖͕֚b␇, q␇a᷺̖͕֚b␇, q␇a᷺̖͕֚b␇, q␇a᷺̖͕֚b␇, q␇a᷺̖͕֚b␇);
+Test_N(q␇a᷺͕̖֚b␇, q␇a᷺͕̖֚b␇, q␇a᷺͕̖֚b␇, q␇a᷺͕̖֚b␇, q␇a᷺͕̖֚b␇);
+Test_N(q␇a᷺̖͖֚b␇, q␇a᷺̖͖֚b␇, q␇a᷺̖͖֚b␇, q␇a᷺̖͖֚b␇, q␇a᷺̖͖֚b␇);
+Test_N(q␇a᷺͖̖֚b␇, q␇a᷺͖̖֚b␇, q␇a᷺͖̖֚b␇, q␇a᷺͖̖֚b␇, q␇a᷺͖̖֚b␇);
+Test_N(q␇à֮͗̕b␇, q␇à֮͗̕b␇, q␇à֮͗̕b␇, q␇à֮͗̕b␇, q␇à֮͗̕b␇);
+Test_N(q␇a֮͗̀̕b␇, q␇a֮͗̀̕b␇, q␇a֮͗̀̕b␇, q␇a֮͗̀̕b␇, q␇a֮͗̀̕b␇);
+Test_N(q␇à̕͘͜b␇, q␇à̕͘͜b␇, q␇à̕͘͜b␇, q␇à̕͘͜b␇, q␇à̕͘͜b␇);
+Test_N(q␇à͘̕͜b␇, q␇à͘̕͜b␇, q␇à͘̕͜b␇, q␇à͘̕͜b␇, q␇à͘̕͜b␇);
+Test_N(q␇a᷺̖͙֚b␇, q␇a᷺̖͙֚b␇, q␇a᷺̖͙֚b␇, q␇a᷺̖͙֚b␇, q␇a᷺̖͙֚b␇);
+Test_N(q␇a᷺͙̖֚b␇, q␇a᷺͙̖֚b␇, q␇a᷺͙̖֚b␇, q␇a᷺͙̖֚b␇, q␇a᷺͙̖֚b␇);
+Test_N(q␇a᷺̖͚֚b␇, q␇a᷺̖͚֚b␇, q␇a᷺̖͚֚b␇, q␇a᷺̖͚֚b␇, q␇a᷺̖͚֚b␇);
+Test_N(q␇a᷺͚̖֚b␇, q␇a᷺͚̖֚b␇, q␇a᷺͚̖֚b␇, q␇a᷺͚̖֚b␇, q␇a᷺͚̖֚b␇);
+Test_N(q␇à֮͛̕b␇, q␇à֮͛̕b␇, q␇à֮͛̕b␇, q␇à֮͛̕b␇, q␇à֮͛̕b␇);
+Test_N(q␇a֮͛̀̕b␇, q␇a֮͛̀̕b␇, q␇a֮͛̀̕b␇, q␇a֮͛̀̕b␇, q␇a֮͛̀̕b␇);
+Test_N(q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇);
+Test_N(q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇, q␇a̕͜͜͝b␇);
+Test_N(q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇);
+Test_N(q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇, q␇a͜͝͝ͅb␇);
+Test_N(q␇a͜͝͞ͅb␇, q␇a͜͝͞ͅb␇, q␇a͜͝͞ͅb␇, q␇a͜͝͞ͅb␇, q␇a͜͝͞ͅb␇);
+Test_N(q␇a͜͞͝ͅb␇, q␇a͜͞͝ͅb␇, q␇a͜͞͝ͅb␇, q␇a͜͞͝ͅb␇, q␇a͜͞͝ͅb␇);
+Test_N(q␇a̕͜͟͝b␇, q␇a̕͜͟͝b␇, q␇a̕͜͟͝b␇, q␇a̕͜͟͝b␇, q␇a̕͜͟͝b␇);
+Test_N(q␇a̕͟͜͝b␇, q␇a̕͟͜͝b␇, q␇a̕͟͜͝b␇, q␇a̕͟͜͝b␇, q␇a̕͟͜͝b␇);
+Test_N(q␇a͜͝͠ͅb␇, q␇a͜͝͠ͅb␇, q␇a͜͝͠ͅb␇, q␇a͜͝͠ͅb␇, q␇a͜͝͠ͅb␇);
+Test_N(q␇a͜͠͝ͅb␇, q␇a͜͠͝ͅb␇, q␇a͜͠͝ͅb␇, q␇a͜͠͝ͅb␇, q␇a͜͠͝ͅb␇);
+Test_N(q␇a͜͝͡ͅb␇, q␇a͜͝͡ͅb␇, q␇a͜͝͡ͅb␇, q␇a͜͝͡ͅb␇, q␇a͜͝͡ͅb␇);
+Test_N(q␇a͜͡͝ͅb␇, q␇a͜͡͝ͅb␇, q␇a͜͡͝ͅb␇, q␇a͜͡͝ͅb␇, q␇a͜͡͝ͅb␇);
+Test_N(q␇a̕͜͢͝b␇, q␇a̕͜͢͝b␇, q␇a̕͜͢͝b␇, q␇a̕͜͢͝b␇, q␇a̕͜͢͝b␇);
+Test_N(q␇a̕͢͜͝b␇, q␇a̕͢͜͝b␇, q␇a̕͢͜͝b␇, q␇a̕͢͜͝b␇, q␇a̕͢͜͝b␇);
+Test_N(q␇à֮ͣ̕b␇, q␇à֮ͣ̕b␇, q␇à֮ͣ̕b␇, q␇à֮ͣ̕b␇, q␇à֮ͣ̕b␇);
+Test_N(q␇a֮ͣ̀̕b␇, q␇a֮ͣ̀̕b␇, q␇a֮ͣ̀̕b␇, q␇a֮ͣ̀̕b␇, q␇a֮ͣ̀̕b␇);
+Test_N(q␇à֮ͤ̕b␇, q␇à֮ͤ̕b␇, q␇à֮ͤ̕b␇, q␇à֮ͤ̕b␇, q␇à֮ͤ̕b␇);
+Test_N(q␇a֮ͤ̀̕b␇, q␇a֮ͤ̀̕b␇, q␇a֮ͤ̀̕b␇, q␇a֮ͤ̀̕b␇, q␇a֮ͤ̀̕b␇);
+Test_N(q␇à֮ͥ̕b␇, q␇à֮ͥ̕b␇, q␇à֮ͥ̕b␇, q␇à֮ͥ̕b␇, q␇à֮ͥ̕b␇);
+Test_N(q␇a֮ͥ̀̕b␇, q␇a֮ͥ̀̕b␇, q␇a֮ͥ̀̕b␇, q␇a֮ͥ̀̕b␇, q␇a֮ͥ̀̕b␇);
+Test_N(q␇à֮ͦ̕b␇, q␇à֮ͦ̕b␇, q␇à֮ͦ̕b␇, q␇à֮ͦ̕b␇, q␇à֮ͦ̕b␇);
+Test_N(q␇a֮ͦ̀̕b␇, q␇a֮ͦ̀̕b␇, q␇a֮ͦ̀̕b␇, q␇a֮ͦ̀̕b␇, q␇a֮ͦ̀̕b␇);
+Test_N(q␇à֮ͧ̕b␇, q␇à֮ͧ̕b␇, q␇à֮ͧ̕b␇, q␇à֮ͧ̕b␇, q␇à֮ͧ̕b␇);
+Test_N(q␇a֮ͧ̀̕b␇, q␇a֮ͧ̀̕b␇, q␇a֮ͧ̀̕b␇, q␇a֮ͧ̀̕b␇, q␇a֮ͧ̀̕b␇);
+Test_N(q␇à֮ͨ̕b␇, q␇à֮ͨ̕b␇, q␇à֮ͨ̕b␇, q␇à֮ͨ̕b␇, q␇à֮ͨ̕b␇);
+Test_N(q␇a֮ͨ̀̕b␇, q␇a֮ͨ̀̕b␇, q␇a֮ͨ̀̕b␇, q␇a֮ͨ̀̕b␇, q␇a֮ͨ̀̕b␇);
+Test_N(q␇à֮ͩ̕b␇, q␇à֮ͩ̕b␇, q␇à֮ͩ̕b␇, q␇à֮ͩ̕b␇, q␇à֮ͩ̕b␇);
+Test_N(q␇a֮ͩ̀̕b␇, q␇a֮ͩ̀̕b␇, q␇a֮ͩ̀̕b␇, q␇a֮ͩ̀̕b␇, q␇a֮ͩ̀̕b␇);
+Test_N(q␇à֮ͪ̕b␇, q␇à֮ͪ̕b␇, q␇à֮ͪ̕b␇, q␇à֮ͪ̕b␇, q␇à֮ͪ̕b␇);
+Test_N(q␇a֮ͪ̀̕b␇, q␇a֮ͪ̀̕b␇, q␇a֮ͪ̀̕b␇, q␇a֮ͪ̀̕b␇, q␇a֮ͪ̀̕b␇);
+Test_N(q␇à֮ͫ̕b␇, q␇à֮ͫ̕b␇, q␇à֮ͫ̕b␇, q␇à֮ͫ̕b␇, q␇à֮ͫ̕b␇);
+Test_N(q␇a֮ͫ̀̕b␇, q␇a֮ͫ̀̕b␇, q␇a֮ͫ̀̕b␇, q␇a֮ͫ̀̕b␇, q␇a֮ͫ̀̕b␇);
+Test_N(q␇à֮ͬ̕b␇, q␇à֮ͬ̕b␇, q␇à֮ͬ̕b␇, q␇à֮ͬ̕b␇, q␇à֮ͬ̕b␇);
+Test_N(q␇a֮ͬ̀̕b␇, q␇a֮ͬ̀̕b␇, q␇a֮ͬ̀̕b␇, q␇a֮ͬ̀̕b␇, q␇a֮ͬ̀̕b␇);
+Test_N(q␇à֮ͭ̕b␇, q␇à֮ͭ̕b␇, q␇à֮ͭ̕b␇, q␇à֮ͭ̕b␇, q␇à֮ͭ̕b␇);
+Test_N(q␇a֮ͭ̀̕b␇, q␇a֮ͭ̀̕b␇, q␇a֮ͭ̀̕b␇, q␇a֮ͭ̀̕b␇, q␇a֮ͭ̀̕b␇);
+Test_N(q␇à֮ͮ̕b␇, q␇à֮ͮ̕b␇, q␇à֮ͮ̕b␇, q␇à֮ͮ̕b␇, q␇à֮ͮ̕b␇);
+Test_N(q␇a֮ͮ̀̕b␇, q␇a֮ͮ̀̕b␇, q␇a֮ͮ̀̕b␇, q␇a֮ͮ̀̕b␇, q␇a֮ͮ̀̕b␇);
+Test_N(q␇à֮ͯ̕b␇, q␇à֮ͯ̕b␇, q␇à֮ͯ̕b␇, q␇à֮ͯ̕b␇, q␇à֮ͯ̕b␇);
+Test_N(q␇a֮ͯ̀̕b␇, q␇a֮ͯ̀̕b␇, q␇a֮ͯ̀̕b␇, q␇a֮ͯ̀̕b␇, q␇a֮ͯ̀̕b␇);
+Test_N(q␇à֮҃̕b␇, q␇à֮҃̕b␇, q␇à֮҃̕b␇, q␇à֮҃̕b␇, q␇à֮҃̕b␇);
+Test_N(q␇a֮҃̀̕b␇, q␇a֮҃̀̕b␇, q␇a֮҃̀̕b␇, q␇a֮҃̀̕b␇, q␇a֮҃̀̕b␇);
+Test_N(q␇à֮҄̕b␇, q␇à֮҄̕b␇, q␇à֮҄̕b␇, q␇à֮҄̕b␇, q␇à֮҄̕b␇);
+Test_N(q␇a֮҄̀̕b␇, q␇a֮҄̀̕b␇, q␇a֮҄̀̕b␇, q␇a֮҄̀̕b␇, q␇a֮҄̀̕b␇);
+Test_N(q␇à֮҅̕b␇, q␇à֮҅̕b␇, q␇à֮҅̕b␇, q␇à֮҅̕b␇, q␇à֮҅̕b␇);
+Test_N(q␇a֮҅̀̕b␇, q␇a֮҅̀̕b␇, q␇a֮҅̀̕b␇, q␇a֮҅̀̕b␇, q␇a֮҅̀̕b␇);
+Test_N(q␇à֮҆̕b␇, q␇à֮҆̕b␇, q␇à֮҆̕b␇, q␇à֮҆̕b␇, q␇à֮҆̕b␇);
+Test_N(q␇a֮҆̀̕b␇, q␇a֮҆̀̕b␇, q␇a֮҆̀̕b␇, q␇a֮҆̀̕b␇, q␇a֮҆̀̕b␇);
+Test_N(q␇à֮҇̕b␇, q␇à֮҇̕b␇, q␇à֮҇̕b␇, q␇à֮҇̕b␇, q␇à֮҇̕b␇);
+Test_N(q␇a֮҇̀̕b␇, q␇a֮҇̀̕b␇, q␇a֮҇̀̕b␇, q␇a֮҇̀̕b␇, q␇a֮҇̀̕b␇);
+Test_N(q␇a᷺̖֑֚b␇, q␇a᷺̖֑֚b␇, q␇a᷺̖֑֚b␇, q␇a᷺̖֑֚b␇, q␇a᷺̖֑֚b␇);
+Test_N(q␇a᷺֑̖֚b␇, q␇a᷺֑̖֚b␇, q␇a᷺֑̖֚b␇, q␇a᷺֑̖֚b␇, q␇a᷺֑̖֚b␇);
+Test_N(q␇à֮֒̕b␇, q␇à֮֒̕b␇, q␇à֮֒̕b␇, q␇à֮֒̕b␇, q␇à֮֒̕b␇);
+Test_N(q␇a֮֒̀̕b␇, q␇a֮֒̀̕b␇, q␇a֮֒̀̕b␇, q␇a֮֒̀̕b␇, q␇a֮֒̀̕b␇);
+Test_N(q␇à֮֓̕b␇, q␇à֮֓̕b␇, q␇à֮֓̕b␇, q␇à֮֓̕b␇, q␇à֮֓̕b␇);
+Test_N(q␇a֮֓̀̕b␇, q␇a֮֓̀̕b␇, q␇a֮֓̀̕b␇, q␇a֮֓̀̕b␇, q␇a֮֓̀̕b␇);
+Test_N(q␇à֮֔̕b␇, q␇à֮֔̕b␇, q␇à֮֔̕b␇, q␇à֮֔̕b␇, q␇à֮֔̕b␇);
+Test_N(q␇a֮֔̀̕b␇, q␇a֮֔̀̕b␇, q␇a֮֔̀̕b␇, q␇a֮֔̀̕b␇, q␇a֮֔̀̕b␇);
+Test_N(q␇à֮֕̕b␇, q␇à֮֕̕b␇, q␇à֮֕̕b␇, q␇à֮֕̕b␇, q␇à֮֕̕b␇);
+Test_N(q␇a֮֕̀̕b␇, q␇a֮֕̀̕b␇, q␇a֮֕̀̕b␇, q␇a֮֕̀̕b␇, q␇a֮֕̀̕b␇);
+Test_N(q␇a᷺̖֖֚b␇, q␇a᷺̖֖֚b␇, q␇a᷺̖֖֚b␇, q␇a᷺̖֖֚b␇, q␇a᷺̖֖֚b␇);
+Test_N(q␇a᷺֖̖֚b␇, q␇a᷺֖̖֚b␇, q␇a᷺֖̖֚b␇, q␇a᷺֖̖֚b␇, q␇a᷺֖̖֚b␇);
+Test_N(q␇à֮֗̕b␇, q␇à֮֗̕b␇, q␇à֮֗̕b␇, q␇à֮֗̕b␇, q␇à֮֗̕b␇);
+Test_N(q␇a֮֗̀̕b␇, q␇a֮֗̀̕b␇, q␇a֮֗̀̕b␇, q␇a֮֗̀̕b␇, q␇a֮֗̀̕b␇);
+Test_N(q␇à֮֘̕b␇, q␇à֮֘̕b␇, q␇à֮֘̕b␇, q␇à֮֘̕b␇, q␇à֮֘̕b␇);
+Test_N(q␇a֮֘̀̕b␇, q␇a֮֘̀̕b␇, q␇a֮֘̀̕b␇, q␇a֮֘̀̕b␇, q␇a֮֘̀̕b␇);
+Test_N(q␇à֮֙̕b␇, q␇à֮֙̕b␇, q␇à֮֙̕b␇, q␇à֮֙̕b␇, q␇à֮֙̕b␇);
+Test_N(q␇a֮֙̀̕b␇, q␇a֮֙̀̕b␇, q␇a֮֙̀̕b␇, q␇a֮֙̀̕b␇, q␇a֮֙̀̕b␇);
+Test_N(q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇);
+Test_N(q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇, q␇a̖֚֚〮b␇);
+Test_N(q␇a᷺̖֛֚b␇, q␇a᷺̖֛֚b␇, q␇a᷺̖֛֚b␇, q␇a᷺̖֛֚b␇, q␇a᷺̖֛֚b␇);
+Test_N(q␇a᷺֛̖֚b␇, q␇a᷺֛̖֚b␇, q␇a᷺֛̖֚b␇, q␇a᷺֛̖֚b␇, q␇a᷺֛̖֚b␇);
+Test_N(q␇à֮֜̕b␇, q␇à֮֜̕b␇, q␇à֮֜̕b␇, q␇à֮֜̕b␇, q␇à֮֜̕b␇);
+Test_N(q␇a֮֜̀̕b␇, q␇a֮֜̀̕b␇, q␇a֮֜̀̕b␇, q␇a֮֜̀̕b␇, q␇a֮֜̀̕b␇);
+Test_N(q␇à֮֝̕b␇, q␇à֮֝̕b␇, q␇à֮֝̕b␇, q␇à֮֝̕b␇, q␇à֮֝̕b␇);
+Test_N(q␇a֮֝̀̕b␇, q␇a֮֝̀̕b␇, q␇a֮֝̀̕b␇, q␇a֮֝̀̕b␇, q␇a֮֝̀̕b␇);
+Test_N(q␇à֮֞̕b␇, q␇à֮֞̕b␇, q␇à֮֞̕b␇, q␇à֮֞̕b␇, q␇à֮֞̕b␇);
+Test_N(q␇a֮֞̀̕b␇, q␇a֮֞̀̕b␇, q␇a֮֞̀̕b␇, q␇a֮֞̀̕b␇, q␇a֮֞̀̕b␇);
+Test_N(q␇à֮֟̕b␇, q␇à֮֟̕b␇, q␇à֮֟̕b␇, q␇à֮֟̕b␇, q␇à֮֟̕b␇);
+Test_N(q␇a֮֟̀̕b␇, q␇a֮֟̀̕b␇, q␇a֮֟̀̕b␇, q␇a֮֟̀̕b␇, q␇a֮֟̀̕b␇);
+Test_N(q␇à֮֠̕b␇, q␇à֮֠̕b␇, q␇à֮֠̕b␇, q␇à֮֠̕b␇, q␇à֮֠̕b␇);
+Test_N(q␇a֮֠̀̕b␇, q␇a֮֠̀̕b␇, q␇a֮֠̀̕b␇, q␇a֮֠̀̕b␇, q␇a֮֠̀̕b␇);
+Test_N(q␇à֮֡̕b␇, q␇à֮֡̕b␇, q␇à֮֡̕b␇, q␇à֮֡̕b␇, q␇à֮֡̕b␇);
+Test_N(q␇a֮֡̀̕b␇, q␇a֮֡̀̕b␇, q␇a֮֡̀̕b␇, q␇a֮֡̀̕b␇, q␇a֮֡̀̕b␇);
+Test_N(q␇a᷺̖֢֚b␇, q␇a᷺̖֢֚b␇, q␇a᷺̖֢֚b␇, q␇a᷺̖֢֚b␇, q␇a᷺̖֢֚b␇);
+Test_N(q␇a᷺֢̖֚b␇, q␇a᷺֢̖֚b␇, q␇a᷺֢̖֚b␇, q␇a᷺֢̖֚b␇, q␇a᷺֢̖֚b␇);
+Test_N(q␇a᷺̖֣֚b␇, q␇a᷺̖֣֚b␇, q␇a᷺̖֣֚b␇, q␇a᷺̖֣֚b␇, q␇a᷺̖֣֚b␇);
+Test_N(q␇a᷺֣̖֚b␇, q␇a᷺֣̖֚b␇, q␇a᷺֣̖֚b␇, q␇a᷺֣̖֚b␇, q␇a᷺֣̖֚b␇);
+Test_N(q␇a᷺̖֤֚b␇, q␇a᷺̖֤֚b␇, q␇a᷺̖֤֚b␇, q␇a᷺̖֤֚b␇, q␇a᷺̖֤֚b␇);
+Test_N(q␇a᷺֤̖֚b␇, q␇a᷺֤̖֚b␇, q␇a᷺֤̖֚b␇, q␇a᷺֤̖֚b␇, q␇a᷺֤̖֚b␇);
+Test_N(q␇a᷺̖֥֚b␇, q␇a᷺̖֥֚b␇, q␇a᷺̖֥֚b␇, q␇a᷺̖֥֚b␇, q␇a᷺̖֥֚b␇);
+Test_N(q␇a᷺֥̖֚b␇, q␇a᷺֥̖֚b␇, q␇a᷺֥̖֚b␇, q␇a᷺֥̖֚b␇, q␇a᷺֥̖֚b␇);
+Test_N(q␇a᷺̖֦֚b␇, q␇a᷺̖֦֚b␇, q␇a᷺̖֦֚b␇, q␇a᷺̖֦֚b␇, q␇a᷺̖֦֚b␇);
+Test_N(q␇a᷺֦̖֚b␇, q␇a᷺֦̖֚b␇, q␇a᷺֦̖֚b␇, q␇a᷺֦̖֚b␇, q␇a᷺֦̖֚b␇);
+Test_N(q␇a᷺̖֧֚b␇, q␇a᷺̖֧֚b␇, q␇a᷺̖֧֚b␇, q␇a᷺̖֧֚b␇, q␇a᷺̖֧֚b␇);
+Test_N(q␇a᷺֧̖֚b␇, q␇a᷺֧̖֚b␇, q␇a᷺֧̖֚b␇, q␇a᷺֧̖֚b␇, q␇a᷺֧̖֚b␇);
+Test_N(q␇à֮֨̕b␇, q␇à֮֨̕b␇, q␇à֮֨̕b␇, q␇à֮֨̕b␇, q␇à֮֨̕b␇);
+Test_N(q␇a֮֨̀̕b␇, q␇a֮֨̀̕b␇, q␇a֮֨̀̕b␇, q␇a֮֨̀̕b␇, q␇a֮֨̀̕b␇);
+Test_N(q␇à֮֩̕b␇, q␇à֮֩̕b␇, q␇à֮֩̕b␇, q␇à֮֩̕b␇, q␇à֮֩̕b␇);
+Test_N(q␇a֮֩̀̕b␇, q␇a֮֩̀̕b␇, q␇a֮֩̀̕b␇, q␇a֮֩̀̕b␇, q␇a֮֩̀̕b␇);
+Test_N(q␇a᷺̖֪֚b␇, q␇a᷺̖֪֚b␇, q␇a᷺̖֪֚b␇, q␇a᷺̖֪֚b␇, q␇a᷺̖֪֚b␇);
+Test_N(q␇a᷺֪̖֚b␇, q␇a᷺֪̖֚b␇, q␇a᷺֪̖֚b␇, q␇a᷺֪̖֚b␇, q␇a᷺֪̖֚b␇);
+Test_N(q␇à֮֫̕b␇, q␇à֮֫̕b␇, q␇à֮֫̕b␇, q␇à֮֫̕b␇, q␇à֮֫̕b␇);
+Test_N(q␇a֮֫̀̕b␇, q␇a֮֫̀̕b␇, q␇a֮֫̀̕b␇, q␇a֮֫̀̕b␇, q␇a֮֫̀̕b␇);
+Test_N(q␇à֮֬̕b␇, q␇à֮֬̕b␇, q␇à֮֬̕b␇, q␇à֮֬̕b␇, q␇à֮֬̕b␇);
+Test_N(q␇a֮֬̀̕b␇, q␇a֮֬̀̕b␇, q␇a֮֬̀̕b␇, q␇a֮֬̀̕b␇, q␇a֮֬̀̕b␇);
+Test_N(q␇a̖֚֭〮b␇, q␇a̖֚֭〮b␇, q␇a̖֚֭〮b␇, q␇a̖֚֭〮b␇, q␇a̖֚֭〮b␇);
+Test_N(q␇a̖֭֚〮b␇, q␇a̖֭֚〮b␇, q␇a̖֭֚〮b␇, q␇a̖֭֚〮b␇, q␇a̖֭֚〮b␇);
+Test_N(q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇);
+Test_N(q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇, q␇à𝅭֮֮b␇);
+Test_N(q␇à֮֯̕b␇, q␇à֮֯̕b␇, q␇à֮֯̕b␇, q␇à֮֯̕b␇, q␇à֮֯̕b␇);
+Test_N(q␇a֮֯̀̕b␇, q␇a֮֯̀̕b␇, q␇a֮֯̀̕b␇, q␇a֮֯̀̕b␇, q␇a֮֯̀̕b␇);
+Test_N(q␇a्ְְֱb␇, q␇a्ְְֱb␇, q␇a्ְְֱb␇, q␇a्ְְֱb␇, q␇a्ְְֱb␇);
+Test_N(q␇a्ְְֱb␇, q␇a्ְְֱb␇, q␇a्ְְֱb␇, q␇a्ְְֱb␇, q␇a्ְְֱb␇);
+Test_N(q␇aְֱֱֲb␇, q␇aְֱֱֲb␇, q␇aְֱֱֲb␇, q␇aְֱֱֲb␇, q␇aְֱֱֲb␇);
+Test_N(q␇aְֱֱֲb␇, q␇aְֱֱֲb␇, q␇aְֱֱֲb␇, q␇aְֱֱֲb␇, q␇aְֱֱֲb␇);
+Test_N(q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇);
+Test_N(q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇, q␇aֱֲֲֳb␇);
+Test_N(q␇aֲֳֳִb␇, q␇aֲֳֳִb␇, q␇aֲֳֳִb␇, q␇aֲֳֳִb␇, q␇aֲֳֳִb␇);
+Test_N(q␇aֲֳֳִb␇, q␇aֲֳֳִb␇, q␇aֲֳֳִb␇, q␇aֲֳֳִb␇, q␇aֲֳֳִb␇);
+Test_N(q␇aֳִִֵb␇, q␇aֳִִֵb␇, q␇aֳִִֵb␇, q␇aֳִִֵb␇, q␇aֳִִֵb␇);
+Test_N(q␇aֳִִֵb␇, q␇aֳִִֵb␇, q␇aֳִִֵb␇, q␇aֳִִֵb␇, q␇aֳִִֵb␇);
+Test_N(q␇aִֵֵֶb␇, q␇aִֵֵֶb␇, q␇aִֵֵֶb␇, q␇aִֵֵֶb␇, q␇aִֵֵֶb␇);
+Test_N(q␇aִֵֵֶb␇, q␇aִֵֵֶb␇, q␇aִֵֵֶb␇, q␇aִֵֵֶb␇, q␇aִֵֵֶb␇);
+Test_N(q␇aֵֶֶַb␇, q␇aֵֶֶַb␇, q␇aֵֶֶַb␇, q␇aֵֶֶַb␇, q␇aֵֶֶַb␇);
+Test_N(q␇aֵֶֶַb␇, q␇aֵֶֶַb␇, q␇aֵֶֶַb␇, q␇aֵֶֶַb␇, q␇aֵֶֶַb␇);
+Test_N(q␇aֶַַָb␇, q␇aֶַַָb␇, q␇aֶַַָb␇, q␇aֶַַָb␇, q␇aֶַַָb␇);
+Test_N(q␇aֶַַָb␇, q␇aֶַַָb␇, q␇aֶַַָb␇, q␇aֶַַָb␇, q␇aֶַַָb␇);
+Test_N(q␇aַָָֹb␇, q␇aַָָֹb␇, q␇aַָָֹb␇, q␇aַָָֹb␇, q␇aַָָֹb␇);
+Test_N(q␇aַָָֹb␇, q␇aַָָֹb␇, q␇aַָָֹb␇, q␇aַָָֹb␇, q␇aַָָֹb␇);
+Test_N(q␇aָֹֹֻb␇, q␇aָֹֹֻb␇, q␇aָֹֹֻb␇, q␇aָֹֹֻb␇, q␇aָֹֹֻb␇);
+Test_N(q␇aָֹֹֻb␇, q␇aָֹֹֻb␇, q␇aָֹֹֻb␇, q␇aָֹֹֻb␇, q␇aָֹֹֻb␇);
+Test_N(q␇aָֹֺֻb␇, q␇aָֹֺֻb␇, q␇aָֹֺֻb␇, q␇aָֹֺֻb␇, q␇aָֹֺֻb␇);
+Test_N(q␇aָֺֹֻb␇, q␇aָֺֹֻb␇, q␇aָֺֹֻb␇, q␇aָֺֹֻb␇, q␇aָֺֹֻb␇);
+Test_N(q␇aֹֻֻּb␇, q␇aֹֻֻּb␇, q␇aֹֻֻּb␇, q␇aֹֻֻּb␇, q␇aֹֻֻּb␇);
+Test_N(q␇aֹֻֻּb␇, q␇aֹֻֻּb␇, q␇aֹֻֻּb␇, q␇aֹֻֻּb␇, q␇aֹֻֻּb␇);
+Test_N(q␇aֻּּֽb␇, q␇aֻּּֽb␇, q␇aֻּּֽb␇, q␇aֻּּֽb␇, q␇aֻּּֽb␇);
+Test_N(q␇aֻּּֽb␇, q␇aֻּּֽb␇, q␇aֻּּֽb␇, q␇aֻּּֽb␇, q␇aֻּּֽb␇);
+Test_N(q␇aּֽֽֿb␇, q␇aּֽֽֿb␇, q␇aּֽֽֿb␇, q␇aּֽֽֿb␇, q␇aּֽֽֿb␇);
+Test_N(q␇aּֽֽֿb␇, q␇aּֽֽֿb␇, q␇aּֽֽֿb␇, q␇aּֽֽֿb␇, q␇aּֽֽֿb␇);
+Test_N(q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇);
+Test_N(q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇, q␇aֽֿֿׁb␇);
+Test_N(q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇);
+Test_N(q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇, q␇aֿׁׁׂb␇);
+Test_N(q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇);
+Test_N(q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇, q␇aׁׂׂﬞb␇);
+Test_N(q␇à֮ׄ̕b␇, q␇à֮ׄ̕b␇, q␇à֮ׄ̕b␇, q␇à֮ׄ̕b␇, q␇à֮ׄ̕b␇);
+Test_N(q␇a֮ׄ̀̕b␇, q␇a֮ׄ̀̕b␇, q␇a֮ׄ̀̕b␇, q␇a֮ׄ̀̕b␇, q␇a֮ׄ̀̕b␇);
+Test_N(q␇a᷺̖ׅ֚b␇, q␇a᷺̖ׅ֚b␇, q␇a᷺̖ׅ֚b␇, q␇a᷺̖ׅ֚b␇, q␇a᷺̖ׅ֚b␇);
+Test_N(q␇a᷺ׅ̖֚b␇, q␇a᷺ׅ̖֚b␇, q␇a᷺ׅ̖֚b␇, q␇a᷺ׅ̖֚b␇, q␇a᷺ׅ̖֚b␇);
+Test_N(q␇aַָׇֹb␇, q␇aַָׇֹb␇, q␇aַָׇֹb␇, q␇aַָׇֹb␇, q␇aַָׇֹb␇);
+Test_N(q␇aַׇָֹb␇, q␇aַׇָֹb␇, q␇aַׇָֹb␇, q␇aַׇָֹb␇, q␇aַׇָֹb␇);
+Test_N(q␇à֮ؐ̕b␇, q␇à֮ؐ̕b␇, q␇à֮ؐ̕b␇, q␇à֮ؐ̕b␇, q␇à֮ؐ̕b␇);
+Test_N(q␇a֮ؐ̀̕b␇, q␇a֮ؐ̀̕b␇, q␇a֮ؐ̀̕b␇, q␇a֮ؐ̀̕b␇, q␇a֮ؐ̀̕b␇);
+Test_N(q␇à֮ؑ̕b␇, q␇à֮ؑ̕b␇, q␇à֮ؑ̕b␇, q␇à֮ؑ̕b␇, q␇à֮ؑ̕b␇);
+Test_N(q␇a֮ؑ̀̕b␇, q␇a֮ؑ̀̕b␇, q␇a֮ؑ̀̕b␇, q␇a֮ؑ̀̕b␇, q␇a֮ؑ̀̕b␇);
+Test_N(q␇à֮ؒ̕b␇, q␇à֮ؒ̕b␇, q␇à֮ؒ̕b␇, q␇à֮ؒ̕b␇, q␇à֮ؒ̕b␇);
+Test_N(q␇a֮ؒ̀̕b␇, q␇a֮ؒ̀̕b␇, q␇a֮ؒ̀̕b␇, q␇a֮ؒ̀̕b␇, q␇a֮ؒ̀̕b␇);
+Test_N(q␇à֮ؓ̕b␇, q␇à֮ؓ̕b␇, q␇à֮ؓ̕b␇, q␇à֮ؓ̕b␇, q␇à֮ؓ̕b␇);
+Test_N(q␇a֮ؓ̀̕b␇, q␇a֮ؓ̀̕b␇, q␇a֮ؓ̀̕b␇, q␇a֮ؓ̀̕b␇, q␇a֮ؓ̀̕b␇);
+Test_N(q␇à֮ؔ̕b␇, q␇à֮ؔ̕b␇, q␇à֮ؔ̕b␇, q␇à֮ؔ̕b␇, q␇à֮ؔ̕b␇);
+Test_N(q␇a֮ؔ̀̕b␇, q␇a֮ؔ̀̕b␇, q␇a֮ؔ̀̕b␇, q␇a֮ؔ̀̕b␇, q␇a֮ؔ̀̕b␇);
+Test_N(q␇à֮ؕ̕b␇, q␇à֮ؕ̕b␇, q␇à֮ؕ̕b␇, q␇à֮ؕ̕b␇, q␇à֮ؕ̕b␇);
+Test_N(q␇a֮ؕ̀̕b␇, q␇a֮ؕ̀̕b␇, q␇a֮ؕ̀̕b␇, q␇a֮ؕ̀̕b␇, q␇a֮ؕ̀̕b␇);
+Test_N(q␇à֮ؖ̕b␇, q␇à֮ؖ̕b␇, q␇à֮ؖ̕b␇, q␇à֮ؖ̕b␇, q␇à֮ؖ̕b␇);
+Test_N(q␇a֮ؖ̀̕b␇, q␇a֮ؖ̀̕b␇, q␇a֮ؖ̀̕b␇, q␇a֮ؖ̀̕b␇, q␇a֮ؖ̀̕b␇);
+Test_N(q␇à֮ؗ̕b␇, q␇à֮ؗ̕b␇, q␇à֮ؗ̕b␇, q␇à֮ؗ̕b␇, q␇à֮ؗ̕b␇);
+Test_N(q␇a֮ؗ̀̕b␇, q␇a֮ؗ̀̕b␇, q␇a֮ؗ̀̕b␇, q␇a֮ؗ̀̕b␇, q␇a֮ؗ̀̕b␇);
+Test_N(q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇);
+Test_N(q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇, q␇aٍؘؘؙb␇);
+Test_N(q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇);
+Test_N(q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇, q␇aؘؙؙؚb␇);
+Test_N(q␇aؙؚؚّb␇, q␇aؙؚؚّb␇, q␇aؙؚؚّb␇, q␇aؙؚؚّb␇, q␇aؙؚؚّb␇);
+Test_N(q␇aؙؚؚّb␇, q␇aؙؚؚّb␇, q␇aؙؚؚّb␇, q␇aؙؚؚّb␇, q␇aؙؚؚّb␇);
+Test_N(q␇aﬞًًٌb␇, q␇aﬞًًٌb␇, q␇aﬞًًٌb␇, q␇aﬞًًٌb␇, q␇aﬞًًٌb␇);
+Test_N(q␇aﬞًًٌb␇, q␇aﬞًًٌb␇, q␇aﬞًًٌb␇, q␇aﬞًًٌb␇, q␇aﬞًًٌb␇);
+Test_N(q␇aًٌٌٍb␇, q␇aًٌٌٍb␇, q␇aًٌٌٍb␇, q␇aًٌٌٍb␇, q␇aًٌٌٍb␇);
+Test_N(q␇aًٌٌٍb␇, q␇aًٌٌٍb␇, q␇aًٌٌٍb␇, q␇aًٌٌٍb␇, q␇aًٌٌٍb␇);
+Test_N(q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇);
+Test_N(q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇, q␇aٌٍٍؘb␇);
+Test_N(q␇aٍؘَؙb␇, q␇aٍؘَؙb␇, q␇aٍؘَؙb␇, q␇aٍؘَؙb␇, q␇aٍؘَؙb␇);
+Test_N(q␇aٍَؘؙb␇, q␇aٍَؘؙb␇, q␇aٍَؘؙb␇, q␇aٍَؘؙb␇, q␇aٍَؘؙb␇);
+Test_N(q␇aؘؙُؚb␇, q␇aؘؙُؚb␇, q␇aؘؙُؚb␇, q␇aؘؙُؚb␇, q␇aؘؙُؚb␇);
+Test_N(q␇aؘُؙؚb␇, q␇aؘُؙؚb␇, q␇aؘُؙؚb␇, q␇aؘُؙؚb␇, q␇aؘُؙؚb␇);
+Test_N(q␇aؙؚِّb␇, q␇aؙؚِّb␇, q␇aؙؚِّb␇, q␇aؙؚِّb␇, q␇aؙؚِّb␇);
+Test_N(q␇aؙِؚّb␇, q␇aؙِؚّb␇, q␇aؙِؚّb␇, q␇aؙِؚّb␇, q␇aؙِؚّb␇);
+Test_N(q␇aؚّّْb␇, q␇aؚّّْb␇, q␇aؚّّْb␇, q␇aؚّّْb␇, q␇aؚّّْb␇);
+Test_N(q␇aؚّّْb␇, q␇aؚّّْb␇, q␇aؚّّْb␇, q␇aؚّّْb␇, q␇aؚّّْb␇);
+Test_N(q␇aّْْٰb␇, q␇aّْْٰb␇, q␇aّْْٰb␇, q␇aّْْٰb␇, q␇aّْْٰb␇);
+Test_N(q␇aّْْٰb␇, q␇aّْْٰb␇, q␇aّْْٰb␇, q␇aّْْٰb␇, q␇aّْْٰb␇);
+Test_N(q␇à֮ٓ̕b␇, q␇à֮ٓ̕b␇, q␇à֮ٓ̕b␇, q␇à֮ٓ̕b␇, q␇à֮ٓ̕b␇);
+Test_N(q␇a֮ٓ̀̕b␇, q␇a֮ٓ̀̕b␇, q␇a֮ٓ̀̕b␇, q␇a֮ٓ̀̕b␇, q␇a֮ٓ̀̕b␇);
+Test_N(q␇à֮ٔ̕b␇, q␇à֮ٔ̕b␇, q␇à֮ٔ̕b␇, q␇à֮ٔ̕b␇, q␇à֮ٔ̕b␇);
+Test_N(q␇a֮ٔ̀̕b␇, q␇a֮ٔ̀̕b␇, q␇a֮ٔ̀̕b␇, q␇a֮ٔ̀̕b␇, q␇a֮ٔ̀̕b␇);
+Test_N(q␇a᷺̖ٕ֚b␇, q␇a᷺̖ٕ֚b␇, q␇a᷺̖ٕ֚b␇, q␇a᷺̖ٕ֚b␇, q␇a᷺̖ٕ֚b␇);
+Test_N(q␇a᷺ٕ̖֚b␇, q␇a᷺ٕ̖֚b␇, q␇a᷺ٕ̖֚b␇, q␇a᷺ٕ̖֚b␇, q␇a᷺ٕ̖֚b␇);
+Test_N(q␇a᷺̖ٖ֚b␇, q␇a᷺̖ٖ֚b␇, q␇a᷺̖ٖ֚b␇, q␇a᷺̖ٖ֚b␇, q␇a᷺̖ٖ֚b␇);
+Test_N(q␇a᷺ٖ̖֚b␇, q␇a᷺ٖ̖֚b␇, q␇a᷺ٖ̖֚b␇, q␇a᷺ٖ̖֚b␇, q␇a᷺ٖ̖֚b␇);
+Test_N(q␇à֮ٗ̕b␇, q␇à֮ٗ̕b␇, q␇à֮ٗ̕b␇, q␇à֮ٗ̕b␇, q␇à֮ٗ̕b␇);
+Test_N(q␇a֮ٗ̀̕b␇, q␇a֮ٗ̀̕b␇, q␇a֮ٗ̀̕b␇, q␇a֮ٗ̀̕b␇, q␇a֮ٗ̀̕b␇);
+Test_N(q␇à֮٘̕b␇, q␇à֮٘̕b␇, q␇à֮٘̕b␇, q␇à֮٘̕b␇, q␇à֮٘̕b␇);
+Test_N(q␇a֮٘̀̕b␇, q␇a֮٘̀̕b␇, q␇a֮٘̀̕b␇, q␇a֮٘̀̕b␇, q␇a֮٘̀̕b␇);
+Test_N(q␇à֮ٙ̕b␇, q␇à֮ٙ̕b␇, q␇à֮ٙ̕b␇, q␇à֮ٙ̕b␇, q␇à֮ٙ̕b␇);
+Test_N(q␇a֮ٙ̀̕b␇, q␇a֮ٙ̀̕b␇, q␇a֮ٙ̀̕b␇, q␇a֮ٙ̀̕b␇, q␇a֮ٙ̀̕b␇);
+Test_N(q␇à֮ٚ̕b␇, q␇à֮ٚ̕b␇, q␇à֮ٚ̕b␇, q␇à֮ٚ̕b␇, q␇à֮ٚ̕b␇);
+Test_N(q␇a֮ٚ̀̕b␇, q␇a֮ٚ̀̕b␇, q␇a֮ٚ̀̕b␇, q␇a֮ٚ̀̕b␇, q␇a֮ٚ̀̕b␇);
+Test_N(q␇à֮ٛ̕b␇, q␇à֮ٛ̕b␇, q␇à֮ٛ̕b␇, q␇à֮ٛ̕b␇, q␇à֮ٛ̕b␇);
+Test_N(q␇a֮ٛ̀̕b␇, q␇a֮ٛ̀̕b␇, q␇a֮ٛ̀̕b␇, q␇a֮ٛ̀̕b␇, q␇a֮ٛ̀̕b␇);
+Test_N(q␇a᷺̖ٜ֚b␇, q␇a᷺̖ٜ֚b␇, q␇a᷺̖ٜ֚b␇, q␇a᷺̖ٜ֚b␇, q␇a᷺̖ٜ֚b␇);
+Test_N(q␇a᷺ٜ̖֚b␇, q␇a᷺ٜ̖֚b␇, q␇a᷺ٜ̖֚b␇, q␇a᷺ٜ̖֚b␇, q␇a᷺ٜ̖֚b␇);
+Test_N(q␇à֮ٝ̕b␇, q␇à֮ٝ̕b␇, q␇à֮ٝ̕b␇, q␇à֮ٝ̕b␇, q␇à֮ٝ̕b␇);
+Test_N(q␇a֮ٝ̀̕b␇, q␇a֮ٝ̀̕b␇, q␇a֮ٝ̀̕b␇, q␇a֮ٝ̀̕b␇, q␇a֮ٝ̀̕b␇);
+Test_N(q␇à֮ٞ̕b␇, q␇à֮ٞ̕b␇, q␇à֮ٞ̕b␇, q␇à֮ٞ̕b␇, q␇à֮ٞ̕b␇);
+Test_N(q␇a֮ٞ̀̕b␇, q␇a֮ٞ̀̕b␇, q␇a֮ٞ̀̕b␇, q␇a֮ٞ̀̕b␇, q␇a֮ٞ̀̕b␇);
+Test_N(q␇a᷺̖ٟ֚b␇, q␇a᷺̖ٟ֚b␇, q␇a᷺̖ٟ֚b␇, q␇a᷺̖ٟ֚b␇, q␇a᷺̖ٟ֚b␇);
+Test_N(q␇a᷺ٟ̖֚b␇, q␇a᷺ٟ̖֚b␇, q␇a᷺ٟ̖֚b␇, q␇a᷺ٟ̖֚b␇, q␇a᷺ٟ̖֚b␇);
+Test_N(q␇aْٰٰܑb␇, q␇aْٰٰܑb␇, q␇aْٰٰܑb␇, q␇aْٰٰܑb␇, q␇aْٰٰܑb␇);
+Test_N(q␇aْٰٰܑb␇, q␇aْٰٰܑb␇, q␇aْٰٰܑb␇, q␇aْٰٰܑb␇, q␇aْٰٰܑb␇);
+Test_N(q␇à֮ۖ̕b␇, q␇à֮ۖ̕b␇, q␇à֮ۖ̕b␇, q␇à֮ۖ̕b␇, q␇à֮ۖ̕b␇);
+Test_N(q␇a֮ۖ̀̕b␇, q␇a֮ۖ̀̕b␇, q␇a֮ۖ̀̕b␇, q␇a֮ۖ̀̕b␇, q␇a֮ۖ̀̕b␇);
+Test_N(q␇à֮ۗ̕b␇, q␇à֮ۗ̕b␇, q␇à֮ۗ̕b␇, q␇à֮ۗ̕b␇, q␇à֮ۗ̕b␇);
+Test_N(q␇a֮ۗ̀̕b␇, q␇a֮ۗ̀̕b␇, q␇a֮ۗ̀̕b␇, q␇a֮ۗ̀̕b␇, q␇a֮ۗ̀̕b␇);
+Test_N(q␇à֮ۘ̕b␇, q␇à֮ۘ̕b␇, q␇à֮ۘ̕b␇, q␇à֮ۘ̕b␇, q␇à֮ۘ̕b␇);
+Test_N(q␇a֮ۘ̀̕b␇, q␇a֮ۘ̀̕b␇, q␇a֮ۘ̀̕b␇, q␇a֮ۘ̀̕b␇, q␇a֮ۘ̀̕b␇);
+Test_N(q␇à֮ۙ̕b␇, q␇à֮ۙ̕b␇, q␇à֮ۙ̕b␇, q␇à֮ۙ̕b␇, q␇à֮ۙ̕b␇);
+Test_N(q␇a֮ۙ̀̕b␇, q␇a֮ۙ̀̕b␇, q␇a֮ۙ̀̕b␇, q␇a֮ۙ̀̕b␇, q␇a֮ۙ̀̕b␇);
+Test_N(q␇à֮ۚ̕b␇, q␇à֮ۚ̕b␇, q␇à֮ۚ̕b␇, q␇à֮ۚ̕b␇, q␇à֮ۚ̕b␇);
+Test_N(q␇a֮ۚ̀̕b␇, q␇a֮ۚ̀̕b␇, q␇a֮ۚ̀̕b␇, q␇a֮ۚ̀̕b␇, q␇a֮ۚ̀̕b␇);
+Test_N(q␇à֮ۛ̕b␇, q␇à֮ۛ̕b␇, q␇à֮ۛ̕b␇, q␇à֮ۛ̕b␇, q␇à֮ۛ̕b␇);
+Test_N(q␇a֮ۛ̀̕b␇, q␇a֮ۛ̀̕b␇, q␇a֮ۛ̀̕b␇, q␇a֮ۛ̀̕b␇, q␇a֮ۛ̀̕b␇);
+Test_N(q␇à֮ۜ̕b␇, q␇à֮ۜ̕b␇, q␇à֮ۜ̕b␇, q␇à֮ۜ̕b␇, q␇à֮ۜ̕b␇);
+Test_N(q␇a֮ۜ̀̕b␇, q␇a֮ۜ̀̕b␇, q␇a֮ۜ̀̕b␇, q␇a֮ۜ̀̕b␇, q␇a֮ۜ̀̕b␇);
+Test_N(q␇à֮۟̕b␇, q␇à֮۟̕b␇, q␇à֮۟̕b␇, q␇à֮۟̕b␇, q␇à֮۟̕b␇);
+Test_N(q␇a֮۟̀̕b␇, q␇a֮۟̀̕b␇, q␇a֮۟̀̕b␇, q␇a֮۟̀̕b␇, q␇a֮۟̀̕b␇);
+Test_N(q␇à֮۠̕b␇, q␇à֮۠̕b␇, q␇à֮۠̕b␇, q␇à֮۠̕b␇, q␇à֮۠̕b␇);
+Test_N(q␇a֮۠̀̕b␇, q␇a֮۠̀̕b␇, q␇a֮۠̀̕b␇, q␇a֮۠̀̕b␇, q␇a֮۠̀̕b␇);
+Test_N(q␇à֮ۡ̕b␇, q␇à֮ۡ̕b␇, q␇à֮ۡ̕b␇, q␇à֮ۡ̕b␇, q␇à֮ۡ̕b␇);
+Test_N(q␇a֮ۡ̀̕b␇, q␇a֮ۡ̀̕b␇, q␇a֮ۡ̀̕b␇, q␇a֮ۡ̀̕b␇, q␇a֮ۡ̀̕b␇);
+Test_N(q␇à֮ۢ̕b␇, q␇à֮ۢ̕b␇, q␇à֮ۢ̕b␇, q␇à֮ۢ̕b␇, q␇à֮ۢ̕b␇);
+Test_N(q␇a֮ۢ̀̕b␇, q␇a֮ۢ̀̕b␇, q␇a֮ۢ̀̕b␇, q␇a֮ۢ̀̕b␇, q␇a֮ۢ̀̕b␇);
+Test_N(q␇a᷺̖ۣ֚b␇, q␇a᷺̖ۣ֚b␇, q␇a᷺̖ۣ֚b␇, q␇a᷺̖ۣ֚b␇, q␇a᷺̖ۣ֚b␇);
+Test_N(q␇a᷺ۣ̖֚b␇, q␇a᷺ۣ̖֚b␇, q␇a᷺ۣ̖֚b␇, q␇a᷺ۣ̖֚b␇, q␇a᷺ۣ̖֚b␇);
+Test_N(q␇à֮ۤ̕b␇, q␇à֮ۤ̕b␇, q␇à֮ۤ̕b␇, q␇à֮ۤ̕b␇, q␇à֮ۤ̕b␇);
+Test_N(q␇a֮ۤ̀̕b␇, q␇a֮ۤ̀̕b␇, q␇a֮ۤ̀̕b␇, q␇a֮ۤ̀̕b␇, q␇a֮ۤ̀̕b␇);
+Test_N(q␇à֮ۧ̕b␇, q␇à֮ۧ̕b␇, q␇à֮ۧ̕b␇, q␇à֮ۧ̕b␇, q␇à֮ۧ̕b␇);
+Test_N(q␇a֮ۧ̀̕b␇, q␇a֮ۧ̀̕b␇, q␇a֮ۧ̀̕b␇, q␇a֮ۧ̀̕b␇, q␇a֮ۧ̀̕b␇);
+Test_N(q␇à֮ۨ̕b␇, q␇à֮ۨ̕b␇, q␇à֮ۨ̕b␇, q␇à֮ۨ̕b␇, q␇à֮ۨ̕b␇);
+Test_N(q␇a֮ۨ̀̕b␇, q␇a֮ۨ̀̕b␇, q␇a֮ۨ̀̕b␇, q␇a֮ۨ̀̕b␇, q␇a֮ۨ̀̕b␇);
+Test_N(q␇a᷺̖۪֚b␇, q␇a᷺̖۪֚b␇, q␇a᷺̖۪֚b␇, q␇a᷺̖۪֚b␇, q␇a᷺̖۪֚b␇);
+Test_N(q␇a᷺۪̖֚b␇, q␇a᷺۪̖֚b␇, q␇a᷺۪̖֚b␇, q␇a᷺۪̖֚b␇, q␇a᷺۪̖֚b␇);
+Test_N(q␇à֮۫̕b␇, q␇à֮۫̕b␇, q␇à֮۫̕b␇, q␇à֮۫̕b␇, q␇à֮۫̕b␇);
+Test_N(q␇a֮۫̀̕b␇, q␇a֮۫̀̕b␇, q␇a֮۫̀̕b␇, q␇a֮۫̀̕b␇, q␇a֮۫̀̕b␇);
+Test_N(q␇à֮۬̕b␇, q␇à֮۬̕b␇, q␇à֮۬̕b␇, q␇à֮۬̕b␇, q␇à֮۬̕b␇);
+Test_N(q␇a֮۬̀̕b␇, q␇a֮۬̀̕b␇, q␇a֮۬̀̕b␇, q␇a֮۬̀̕b␇, q␇a֮۬̀̕b␇);
+Test_N(q␇a᷺̖ۭ֚b␇, q␇a᷺̖ۭ֚b␇, q␇a᷺̖ۭ֚b␇, q␇a᷺̖ۭ֚b␇, q␇a᷺̖ۭ֚b␇);
+Test_N(q␇a᷺ۭ̖֚b␇, q␇a᷺ۭ̖֚b␇, q␇a᷺ۭ̖֚b␇, q␇a᷺ۭ̖֚b␇, q␇a᷺ۭ̖֚b␇);
+Test_N(q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇);
+Test_N(q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇, q␇aٰܑܑౕb␇);
+Test_N(q␇à֮ܰ̕b␇, q␇à֮ܰ̕b␇, q␇à֮ܰ̕b␇, q␇à֮ܰ̕b␇, q␇à֮ܰ̕b␇);
+Test_N(q␇a֮ܰ̀̕b␇, q␇a֮ܰ̀̕b␇, q␇a֮ܰ̀̕b␇, q␇a֮ܰ̀̕b␇, q␇a֮ܰ̀̕b␇);
+Test_N(q␇a᷺̖ܱ֚b␇, q␇a᷺̖ܱ֚b␇, q␇a᷺̖ܱ֚b␇, q␇a᷺̖ܱ֚b␇, q␇a᷺̖ܱ֚b␇);
+Test_N(q␇a᷺ܱ̖֚b␇, q␇a᷺ܱ̖֚b␇, q␇a᷺ܱ̖֚b␇, q␇a᷺ܱ̖֚b␇, q␇a᷺ܱ̖֚b␇);
+Test_N(q␇à֮ܲ̕b␇, q␇à֮ܲ̕b␇, q␇à֮ܲ̕b␇, q␇à֮ܲ̕b␇, q␇à֮ܲ̕b␇);
+Test_N(q␇a֮ܲ̀̕b␇, q␇a֮ܲ̀̕b␇, q␇a֮ܲ̀̕b␇, q␇a֮ܲ̀̕b␇, q␇a֮ܲ̀̕b␇);
+Test_N(q␇à֮ܳ̕b␇, q␇à֮ܳ̕b␇, q␇à֮ܳ̕b␇, q␇à֮ܳ̕b␇, q␇à֮ܳ̕b␇);
+Test_N(q␇a֮ܳ̀̕b␇, q␇a֮ܳ̀̕b␇, q␇a֮ܳ̀̕b␇, q␇a֮ܳ̀̕b␇, q␇a֮ܳ̀̕b␇);
+Test_N(q␇a᷺̖ܴ֚b␇, q␇a᷺̖ܴ֚b␇, q␇a᷺̖ܴ֚b␇, q␇a᷺̖ܴ֚b␇, q␇a᷺̖ܴ֚b␇);
+Test_N(q␇a᷺ܴ̖֚b␇, q␇a᷺ܴ̖֚b␇, q␇a᷺ܴ̖֚b␇, q␇a᷺ܴ̖֚b␇, q␇a᷺ܴ̖֚b␇);
+Test_N(q␇à֮ܵ̕b␇, q␇à֮ܵ̕b␇, q␇à֮ܵ̕b␇, q␇à֮ܵ̕b␇, q␇à֮ܵ̕b␇);
+Test_N(q␇a֮ܵ̀̕b␇, q␇a֮ܵ̀̕b␇, q␇a֮ܵ̀̕b␇, q␇a֮ܵ̀̕b␇, q␇a֮ܵ̀̕b␇);
+Test_N(q␇à֮ܶ̕b␇, q␇à֮ܶ̕b␇, q␇à֮ܶ̕b␇, q␇à֮ܶ̕b␇, q␇à֮ܶ̕b␇);
+Test_N(q␇a֮ܶ̀̕b␇, q␇a֮ܶ̀̕b␇, q␇a֮ܶ̀̕b␇, q␇a֮ܶ̀̕b␇, q␇a֮ܶ̀̕b␇);
+Test_N(q␇a᷺̖ܷ֚b␇, q␇a᷺̖ܷ֚b␇, q␇a᷺̖ܷ֚b␇, q␇a᷺̖ܷ֚b␇, q␇a᷺̖ܷ֚b␇);
+Test_N(q␇a᷺ܷ̖֚b␇, q␇a᷺ܷ̖֚b␇, q␇a᷺ܷ̖֚b␇, q␇a᷺ܷ̖֚b␇, q␇a᷺ܷ̖֚b␇);
+Test_N(q␇a᷺̖ܸ֚b␇, q␇a᷺̖ܸ֚b␇, q␇a᷺̖ܸ֚b␇, q␇a᷺̖ܸ֚b␇, q␇a᷺̖ܸ֚b␇);
+Test_N(q␇a᷺ܸ̖֚b␇, q␇a᷺ܸ̖֚b␇, q␇a᷺ܸ̖֚b␇, q␇a᷺ܸ̖֚b␇, q␇a᷺ܸ̖֚b␇);
+Test_N(q␇a᷺̖ܹ֚b␇, q␇a᷺̖ܹ֚b␇, q␇a᷺̖ܹ֚b␇, q␇a᷺̖ܹ֚b␇, q␇a᷺̖ܹ֚b␇);
+Test_N(q␇a᷺ܹ̖֚b␇, q␇a᷺ܹ̖֚b␇, q␇a᷺ܹ̖֚b␇, q␇a᷺ܹ̖֚b␇, q␇a᷺ܹ̖֚b␇);
+Test_N(q␇à֮ܺ̕b␇, q␇à֮ܺ̕b␇, q␇à֮ܺ̕b␇, q␇à֮ܺ̕b␇, q␇à֮ܺ̕b␇);
+Test_N(q␇a֮ܺ̀̕b␇, q␇a֮ܺ̀̕b␇, q␇a֮ܺ̀̕b␇, q␇a֮ܺ̀̕b␇, q␇a֮ܺ̀̕b␇);
+Test_N(q␇a᷺̖ܻ֚b␇, q␇a᷺̖ܻ֚b␇, q␇a᷺̖ܻ֚b␇, q␇a᷺̖ܻ֚b␇, q␇a᷺̖ܻ֚b␇);
+Test_N(q␇a᷺ܻ̖֚b␇, q␇a᷺ܻ̖֚b␇, q␇a᷺ܻ̖֚b␇, q␇a᷺ܻ̖֚b␇, q␇a᷺ܻ̖֚b␇);
+Test_N(q␇a᷺̖ܼ֚b␇, q␇a᷺̖ܼ֚b␇, q␇a᷺̖ܼ֚b␇, q␇a᷺̖ܼ֚b␇, q␇a᷺̖ܼ֚b␇);
+Test_N(q␇a᷺ܼ̖֚b␇, q␇a᷺ܼ̖֚b␇, q␇a᷺ܼ̖֚b␇, q␇a᷺ܼ̖֚b␇, q␇a᷺ܼ̖֚b␇);
+Test_N(q␇à֮ܽ̕b␇, q␇à֮ܽ̕b␇, q␇à֮ܽ̕b␇, q␇à֮ܽ̕b␇, q␇à֮ܽ̕b␇);
+Test_N(q␇a֮ܽ̀̕b␇, q␇a֮ܽ̀̕b␇, q␇a֮ܽ̀̕b␇, q␇a֮ܽ̀̕b␇, q␇a֮ܽ̀̕b␇);
+Test_N(q␇a᷺̖ܾ֚b␇, q␇a᷺̖ܾ֚b␇, q␇a᷺̖ܾ֚b␇, q␇a᷺̖ܾ֚b␇, q␇a᷺̖ܾ֚b␇);
+Test_N(q␇a᷺ܾ̖֚b␇, q␇a᷺ܾ̖֚b␇, q␇a᷺ܾ̖֚b␇, q␇a᷺ܾ̖֚b␇, q␇a᷺ܾ̖֚b␇);
+Test_N(q␇à֮ܿ̕b␇, q␇à֮ܿ̕b␇, q␇à֮ܿ̕b␇, q␇à֮ܿ̕b␇, q␇à֮ܿ̕b␇);
+Test_N(q␇a֮ܿ̀̕b␇, q␇a֮ܿ̀̕b␇, q␇a֮ܿ̀̕b␇, q␇a֮ܿ̀̕b␇, q␇a֮ܿ̀̕b␇);
+Test_N(q␇à֮݀̕b␇, q␇à֮݀̕b␇, q␇à֮݀̕b␇, q␇à֮݀̕b␇, q␇à֮݀̕b␇);
+Test_N(q␇a֮݀̀̕b␇, q␇a֮݀̀̕b␇, q␇a֮݀̀̕b␇, q␇a֮݀̀̕b␇, q␇a֮݀̀̕b␇);
+Test_N(q␇à֮݁̕b␇, q␇à֮݁̕b␇, q␇à֮݁̕b␇, q␇à֮݁̕b␇, q␇à֮݁̕b␇);
+Test_N(q␇a֮݁̀̕b␇, q␇a֮݁̀̕b␇, q␇a֮݁̀̕b␇, q␇a֮݁̀̕b␇, q␇a֮݁̀̕b␇);
+Test_N(q␇a᷺̖݂֚b␇, q␇a᷺̖݂֚b␇, q␇a᷺̖݂֚b␇, q␇a᷺̖݂֚b␇, q␇a᷺̖݂֚b␇);
+Test_N(q␇a᷺݂̖֚b␇, q␇a᷺݂̖֚b␇, q␇a᷺݂̖֚b␇, q␇a᷺݂̖֚b␇, q␇a᷺݂̖֚b␇);
+Test_N(q␇à֮݃̕b␇, q␇à֮݃̕b␇, q␇à֮݃̕b␇, q␇à֮݃̕b␇, q␇à֮݃̕b␇);
+Test_N(q␇a֮݃̀̕b␇, q␇a֮݃̀̕b␇, q␇a֮݃̀̕b␇, q␇a֮݃̀̕b␇, q␇a֮݃̀̕b␇);
+Test_N(q␇a᷺̖݄֚b␇, q␇a᷺̖݄֚b␇, q␇a᷺̖݄֚b␇, q␇a᷺̖݄֚b␇, q␇a᷺̖݄֚b␇);
+Test_N(q␇a᷺݄̖֚b␇, q␇a᷺݄̖֚b␇, q␇a᷺݄̖֚b␇, q␇a᷺݄̖֚b␇, q␇a᷺݄̖֚b␇);
+Test_N(q␇à֮݅̕b␇, q␇à֮݅̕b␇, q␇à֮݅̕b␇, q␇à֮݅̕b␇, q␇à֮݅̕b␇);
+Test_N(q␇a֮݅̀̕b␇, q␇a֮݅̀̕b␇, q␇a֮݅̀̕b␇, q␇a֮݅̀̕b␇, q␇a֮݅̀̕b␇);
+Test_N(q␇a᷺̖݆֚b␇, q␇a᷺̖݆֚b␇, q␇a᷺̖݆֚b␇, q␇a᷺̖݆֚b␇, q␇a᷺̖݆֚b␇);
+Test_N(q␇a᷺݆̖֚b␇, q␇a᷺݆̖֚b␇, q␇a᷺݆̖֚b␇, q␇a᷺݆̖֚b␇, q␇a᷺݆̖֚b␇);
+Test_N(q␇à֮݇̕b␇, q␇à֮݇̕b␇, q␇à֮݇̕b␇, q␇à֮݇̕b␇, q␇à֮݇̕b␇);
+Test_N(q␇a֮݇̀̕b␇, q␇a֮݇̀̕b␇, q␇a֮݇̀̕b␇, q␇a֮݇̀̕b␇, q␇a֮݇̀̕b␇);
+Test_N(q␇a᷺̖݈֚b␇, q␇a᷺̖݈֚b␇, q␇a᷺̖݈֚b␇, q␇a᷺̖݈֚b␇, q␇a᷺̖݈֚b␇);
+Test_N(q␇a᷺݈̖֚b␇, q␇a᷺݈̖֚b␇, q␇a᷺݈̖֚b␇, q␇a᷺݈̖֚b␇, q␇a᷺݈̖֚b␇);
+Test_N(q␇à֮݉̕b␇, q␇à֮݉̕b␇, q␇à֮݉̕b␇, q␇à֮݉̕b␇, q␇à֮݉̕b␇);
+Test_N(q␇a֮݉̀̕b␇, q␇a֮݉̀̕b␇, q␇a֮݉̀̕b␇, q␇a֮݉̀̕b␇, q␇a֮݉̀̕b␇);
+Test_N(q␇à֮݊̕b␇, q␇à֮݊̕b␇, q␇à֮݊̕b␇, q␇à֮݊̕b␇, q␇à֮݊̕b␇);
+Test_N(q␇a֮݊̀̕b␇, q␇a֮݊̀̕b␇, q␇a֮݊̀̕b␇, q␇a֮݊̀̕b␇, q␇a֮݊̀̕b␇);
+Test_N(q␇à֮߫̕b␇, q␇à֮߫̕b␇, q␇à֮߫̕b␇, q␇à֮߫̕b␇, q␇à֮߫̕b␇);
+Test_N(q␇a֮߫̀̕b␇, q␇a֮߫̀̕b␇, q␇a֮߫̀̕b␇, q␇a֮߫̀̕b␇, q␇a֮߫̀̕b␇);
+Test_N(q␇à֮߬̕b␇, q␇à֮߬̕b␇, q␇à֮߬̕b␇, q␇à֮߬̕b␇, q␇à֮߬̕b␇);
+Test_N(q␇a֮߬̀̕b␇, q␇a֮߬̀̕b␇, q␇a֮߬̀̕b␇, q␇a֮߬̀̕b␇, q␇a֮߬̀̕b␇);
+Test_N(q␇à֮߭̕b␇, q␇à֮߭̕b␇, q␇à֮߭̕b␇, q␇à֮߭̕b␇, q␇à֮߭̕b␇);
+Test_N(q␇a֮߭̀̕b␇, q␇a֮߭̀̕b␇, q␇a֮߭̀̕b␇, q␇a֮߭̀̕b␇, q␇a֮߭̀̕b␇);
+Test_N(q␇à֮߮̕b␇, q␇à֮߮̕b␇, q␇à֮߮̕b␇, q␇à֮߮̕b␇, q␇à֮߮̕b␇);
+Test_N(q␇a֮߮̀̕b␇, q␇a֮߮̀̕b␇, q␇a֮߮̀̕b␇, q␇a֮߮̀̕b␇, q␇a֮߮̀̕b␇);
+Test_N(q␇à֮߯̕b␇, q␇à֮߯̕b␇, q␇à֮߯̕b␇, q␇à֮߯̕b␇, q␇à֮߯̕b␇);
+Test_N(q␇a֮߯̀̕b␇, q␇a֮߯̀̕b␇, q␇a֮߯̀̕b␇, q␇a֮߯̀̕b␇, q␇a֮߯̀̕b␇);
+Test_N(q␇à֮߰̕b␇, q␇à֮߰̕b␇, q␇à֮߰̕b␇, q␇à֮߰̕b␇, q␇à֮߰̕b␇);
+Test_N(q␇a֮߰̀̕b␇, q␇a֮߰̀̕b␇, q␇a֮߰̀̕b␇, q␇a֮߰̀̕b␇, q␇a֮߰̀̕b␇);
+Test_N(q␇à֮߱̕b␇, q␇à֮߱̕b␇, q␇à֮߱̕b␇, q␇à֮߱̕b␇, q␇à֮߱̕b␇);
+Test_N(q␇a֮߱̀̕b␇, q␇a֮߱̀̕b␇, q␇a֮߱̀̕b␇, q␇a֮߱̀̕b␇, q␇a֮߱̀̕b␇);
+Test_N(q␇a᷺̖߲֚b␇, q␇a᷺̖߲֚b␇, q␇a᷺̖߲֚b␇, q␇a᷺̖߲֚b␇, q␇a᷺̖߲֚b␇);
+Test_N(q␇a᷺߲̖֚b␇, q␇a᷺߲̖֚b␇, q␇a᷺߲̖֚b␇, q␇a᷺߲̖֚b␇, q␇a᷺߲̖֚b␇);
+Test_N(q␇à֮߳̕b␇, q␇à֮߳̕b␇, q␇à֮߳̕b␇, q␇à֮߳̕b␇, q␇à֮߳̕b␇);
+Test_N(q␇a֮߳̀̕b␇, q␇a֮߳̀̕b␇, q␇a֮߳̀̕b␇, q␇a֮߳̀̕b␇, q␇a֮߳̀̕b␇);
+Test_N(q␇a᷺̖߽֚b␇, q␇a᷺̖߽֚b␇, q␇a᷺̖߽֚b␇, q␇a᷺̖߽֚b␇, q␇a᷺̖߽֚b␇);
+Test_N(q␇a᷺߽̖֚b␇, q␇a᷺߽̖֚b␇, q␇a᷺߽̖֚b␇, q␇a᷺߽̖֚b␇, q␇a᷺߽̖֚b␇);
+Test_N(q␇à֮ࠖ̕b␇, q␇à֮ࠖ̕b␇, q␇à֮ࠖ̕b␇, q␇à֮ࠖ̕b␇, q␇à֮ࠖ̕b␇);
+Test_N(q␇a֮ࠖ̀̕b␇, q␇a֮ࠖ̀̕b␇, q␇a֮ࠖ̀̕b␇, q␇a֮ࠖ̀̕b␇, q␇a֮ࠖ̀̕b␇);
+Test_N(q␇à֮ࠗ̕b␇, q␇à֮ࠗ̕b␇, q␇à֮ࠗ̕b␇, q␇à֮ࠗ̕b␇, q␇à֮ࠗ̕b␇);
+Test_N(q␇a֮ࠗ̀̕b␇, q␇a֮ࠗ̀̕b␇, q␇a֮ࠗ̀̕b␇, q␇a֮ࠗ̀̕b␇, q␇a֮ࠗ̀̕b␇);
+Test_N(q␇à֮࠘̕b␇, q␇à֮࠘̕b␇, q␇à֮࠘̕b␇, q␇à֮࠘̕b␇, q␇à֮࠘̕b␇);
+Test_N(q␇a֮࠘̀̕b␇, q␇a֮࠘̀̕b␇, q␇a֮࠘̀̕b␇, q␇a֮࠘̀̕b␇, q␇a֮࠘̀̕b␇);
+Test_N(q␇à֮࠙̕b␇, q␇à֮࠙̕b␇, q␇à֮࠙̕b␇, q␇à֮࠙̕b␇, q␇à֮࠙̕b␇);
+Test_N(q␇a֮࠙̀̕b␇, q␇a֮࠙̀̕b␇, q␇a֮࠙̀̕b␇, q␇a֮࠙̀̕b␇, q␇a֮࠙̀̕b␇);
+Test_N(q␇à֮ࠛ̕b␇, q␇à֮ࠛ̕b␇, q␇à֮ࠛ̕b␇, q␇à֮ࠛ̕b␇, q␇à֮ࠛ̕b␇);
+Test_N(q␇a֮ࠛ̀̕b␇, q␇a֮ࠛ̀̕b␇, q␇a֮ࠛ̀̕b␇, q␇a֮ࠛ̀̕b␇, q␇a֮ࠛ̀̕b␇);
+Test_N(q␇à֮ࠜ̕b␇, q␇à֮ࠜ̕b␇, q␇à֮ࠜ̕b␇, q␇à֮ࠜ̕b␇, q␇à֮ࠜ̕b␇);
+Test_N(q␇a֮ࠜ̀̕b␇, q␇a֮ࠜ̀̕b␇, q␇a֮ࠜ̀̕b␇, q␇a֮ࠜ̀̕b␇, q␇a֮ࠜ̀̕b␇);
+Test_N(q␇à֮ࠝ̕b␇, q␇à֮ࠝ̕b␇, q␇à֮ࠝ̕b␇, q␇à֮ࠝ̕b␇, q␇à֮ࠝ̕b␇);
+Test_N(q␇a֮ࠝ̀̕b␇, q␇a֮ࠝ̀̕b␇, q␇a֮ࠝ̀̕b␇, q␇a֮ࠝ̀̕b␇, q␇a֮ࠝ̀̕b␇);
+Test_N(q␇à֮ࠞ̕b␇, q␇à֮ࠞ̕b␇, q␇à֮ࠞ̕b␇, q␇à֮ࠞ̕b␇, q␇à֮ࠞ̕b␇);
+Test_N(q␇a֮ࠞ̀̕b␇, q␇a֮ࠞ̀̕b␇, q␇a֮ࠞ̀̕b␇, q␇a֮ࠞ̀̕b␇, q␇a֮ࠞ̀̕b␇);
+Test_N(q␇à֮ࠟ̕b␇, q␇à֮ࠟ̕b␇, q␇à֮ࠟ̕b␇, q␇à֮ࠟ̕b␇, q␇à֮ࠟ̕b␇);
+Test_N(q␇a֮ࠟ̀̕b␇, q␇a֮ࠟ̀̕b␇, q␇a֮ࠟ̀̕b␇, q␇a֮ࠟ̀̕b␇, q␇a֮ࠟ̀̕b␇);
+Test_N(q␇à֮ࠠ̕b␇, q␇à֮ࠠ̕b␇, q␇à֮ࠠ̕b␇, q␇à֮ࠠ̕b␇, q␇à֮ࠠ̕b␇);
+Test_N(q␇a֮ࠠ̀̕b␇, q␇a֮ࠠ̀̕b␇, q␇a֮ࠠ̀̕b␇, q␇a֮ࠠ̀̕b␇, q␇a֮ࠠ̀̕b␇);
+Test_N(q␇à֮ࠡ̕b␇, q␇à֮ࠡ̕b␇, q␇à֮ࠡ̕b␇, q␇à֮ࠡ̕b␇, q␇à֮ࠡ̕b␇);
+Test_N(q␇a֮ࠡ̀̕b␇, q␇a֮ࠡ̀̕b␇, q␇a֮ࠡ̀̕b␇, q␇a֮ࠡ̀̕b␇, q␇a֮ࠡ̀̕b␇);
+Test_N(q␇à֮ࠢ̕b␇, q␇à֮ࠢ̕b␇, q␇à֮ࠢ̕b␇, q␇à֮ࠢ̕b␇, q␇à֮ࠢ̕b␇);
+Test_N(q␇a֮ࠢ̀̕b␇, q␇a֮ࠢ̀̕b␇, q␇a֮ࠢ̀̕b␇, q␇a֮ࠢ̀̕b␇, q␇a֮ࠢ̀̕b␇);
+Test_N(q␇à֮ࠣ̕b␇, q␇à֮ࠣ̕b␇, q␇à֮ࠣ̕b␇, q␇à֮ࠣ̕b␇, q␇à֮ࠣ̕b␇);
+Test_N(q␇a֮ࠣ̀̕b␇, q␇a֮ࠣ̀̕b␇, q␇a֮ࠣ̀̕b␇, q␇a֮ࠣ̀̕b␇, q␇a֮ࠣ̀̕b␇);
+Test_N(q␇à֮ࠥ̕b␇, q␇à֮ࠥ̕b␇, q␇à֮ࠥ̕b␇, q␇à֮ࠥ̕b␇, q␇à֮ࠥ̕b␇);
+Test_N(q␇a֮ࠥ̀̕b␇, q␇a֮ࠥ̀̕b␇, q␇a֮ࠥ̀̕b␇, q␇a֮ࠥ̀̕b␇, q␇a֮ࠥ̀̕b␇);
+Test_N(q␇à֮ࠦ̕b␇, q␇à֮ࠦ̕b␇, q␇à֮ࠦ̕b␇, q␇à֮ࠦ̕b␇, q␇à֮ࠦ̕b␇);
+Test_N(q␇a֮ࠦ̀̕b␇, q␇a֮ࠦ̀̕b␇, q␇a֮ࠦ̀̕b␇, q␇a֮ࠦ̀̕b␇, q␇a֮ࠦ̀̕b␇);
+Test_N(q␇à֮ࠧ̕b␇, q␇à֮ࠧ̕b␇, q␇à֮ࠧ̕b␇, q␇à֮ࠧ̕b␇, q␇à֮ࠧ̕b␇);
+Test_N(q␇a֮ࠧ̀̕b␇, q␇a֮ࠧ̀̕b␇, q␇a֮ࠧ̀̕b␇, q␇a֮ࠧ̀̕b␇, q␇a֮ࠧ̀̕b␇);
+Test_N(q␇à֮ࠩ̕b␇, q␇à֮ࠩ̕b␇, q␇à֮ࠩ̕b␇, q␇à֮ࠩ̕b␇, q␇à֮ࠩ̕b␇);
+Test_N(q␇a֮ࠩ̀̕b␇, q␇a֮ࠩ̀̕b␇, q␇a֮ࠩ̀̕b␇, q␇a֮ࠩ̀̕b␇, q␇a֮ࠩ̀̕b␇);
+Test_N(q␇à֮ࠪ̕b␇, q␇à֮ࠪ̕b␇, q␇à֮ࠪ̕b␇, q␇à֮ࠪ̕b␇, q␇à֮ࠪ̕b␇);
+Test_N(q␇a֮ࠪ̀̕b␇, q␇a֮ࠪ̀̕b␇, q␇a֮ࠪ̀̕b␇, q␇a֮ࠪ̀̕b␇, q␇a֮ࠪ̀̕b␇);
+Test_N(q␇à֮ࠫ̕b␇, q␇à֮ࠫ̕b␇, q␇à֮ࠫ̕b␇, q␇à֮ࠫ̕b␇, q␇à֮ࠫ̕b␇);
+Test_N(q␇a֮ࠫ̀̕b␇, q␇a֮ࠫ̀̕b␇, q␇a֮ࠫ̀̕b␇, q␇a֮ࠫ̀̕b␇, q␇a֮ࠫ̀̕b␇);
+Test_N(q␇à֮ࠬ̕b␇, q␇à֮ࠬ̕b␇, q␇à֮ࠬ̕b␇, q␇à֮ࠬ̕b␇, q␇à֮ࠬ̕b␇);
+Test_N(q␇a֮ࠬ̀̕b␇, q␇a֮ࠬ̀̕b␇, q␇a֮ࠬ̀̕b␇, q␇a֮ࠬ̀̕b␇, q␇a֮ࠬ̀̕b␇);
+Test_N(q␇à֮࠭̕b␇, q␇à֮࠭̕b␇, q␇à֮࠭̕b␇, q␇à֮࠭̕b␇, q␇à֮࠭̕b␇);
+Test_N(q␇a֮࠭̀̕b␇, q␇a֮࠭̀̕b␇, q␇a֮࠭̀̕b␇, q␇a֮࠭̀̕b␇, q␇a֮࠭̀̕b␇);
+Test_N(q␇a᷺̖࡙֚b␇, q␇a᷺̖࡙֚b␇, q␇a᷺̖࡙֚b␇, q␇a᷺̖࡙֚b␇, q␇a᷺̖࡙֚b␇);
+Test_N(q␇a᷺࡙̖֚b␇, q␇a᷺࡙̖֚b␇, q␇a᷺࡙̖֚b␇, q␇a᷺࡙̖֚b␇, q␇a᷺࡙̖֚b␇);
+Test_N(q␇a᷺̖࡚֚b␇, q␇a᷺̖࡚֚b␇, q␇a᷺̖࡚֚b␇, q␇a᷺̖࡚֚b␇, q␇a᷺̖࡚֚b␇);
+Test_N(q␇a᷺࡚̖֚b␇, q␇a᷺࡚̖֚b␇, q␇a᷺࡚̖֚b␇, q␇a᷺࡚̖֚b␇, q␇a᷺࡚̖֚b␇);
+Test_N(q␇a᷺̖࡛֚b␇, q␇a᷺̖࡛֚b␇, q␇a᷺̖࡛֚b␇, q␇a᷺̖࡛֚b␇, q␇a᷺̖࡛֚b␇);
+Test_N(q␇a᷺࡛̖֚b␇, q␇a᷺࡛̖֚b␇, q␇a᷺࡛̖֚b␇, q␇a᷺࡛̖֚b␇, q␇a᷺࡛̖֚b␇);
+Test_N(q␇à֮࢘̕b␇, q␇à֮࢘̕b␇, q␇à֮࢘̕b␇, q␇à֮࢘̕b␇, q␇à֮࢘̕b␇);
+Test_N(q␇a֮࢘̀̕b␇, q␇a֮࢘̀̕b␇, q␇a֮࢘̀̕b␇, q␇a֮࢘̀̕b␇, q␇a֮࢘̀̕b␇);
+Test_N(q␇a᷺̖࢙֚b␇, q␇a᷺̖࢙֚b␇, q␇a᷺̖࢙֚b␇, q␇a᷺̖࢙֚b␇, q␇a᷺̖࢙֚b␇);
+Test_N(q␇a᷺࢙̖֚b␇, q␇a᷺࢙̖֚b␇, q␇a᷺࢙̖֚b␇, q␇a᷺࢙̖֚b␇, q␇a᷺࢙̖֚b␇);
+Test_N(q␇a᷺̖࢚֚b␇, q␇a᷺̖࢚֚b␇, q␇a᷺̖࢚֚b␇, q␇a᷺̖࢚֚b␇, q␇a᷺̖࢚֚b␇);
+Test_N(q␇a᷺࢚̖֚b␇, q␇a᷺࢚̖֚b␇, q␇a᷺࢚̖֚b␇, q␇a᷺࢚̖֚b␇, q␇a᷺࢚̖֚b␇);
+Test_N(q␇a᷺̖࢛֚b␇, q␇a᷺̖࢛֚b␇, q␇a᷺̖࢛֚b␇, q␇a᷺̖࢛֚b␇, q␇a᷺̖࢛֚b␇);
+Test_N(q␇a᷺࢛̖֚b␇, q␇a᷺࢛̖֚b␇, q␇a᷺࢛̖֚b␇, q␇a᷺࢛̖֚b␇, q␇a᷺࢛̖֚b␇);
+Test_N(q␇à֮࢜̕b␇, q␇à֮࢜̕b␇, q␇à֮࢜̕b␇, q␇à֮࢜̕b␇, q␇à֮࢜̕b␇);
+Test_N(q␇a֮࢜̀̕b␇, q␇a֮࢜̀̕b␇, q␇a֮࢜̀̕b␇, q␇a֮࢜̀̕b␇, q␇a֮࢜̀̕b␇);
+Test_N(q␇à֮࢝̕b␇, q␇à֮࢝̕b␇, q␇à֮࢝̕b␇, q␇à֮࢝̕b␇, q␇à֮࢝̕b␇);
+Test_N(q␇a֮࢝̀̕b␇, q␇a֮࢝̀̕b␇, q␇a֮࢝̀̕b␇, q␇a֮࢝̀̕b␇, q␇a֮࢝̀̕b␇);
+Test_N(q␇à֮࢞̕b␇, q␇à֮࢞̕b␇, q␇à֮࢞̕b␇, q␇à֮࢞̕b␇, q␇à֮࢞̕b␇);
+Test_N(q␇a֮࢞̀̕b␇, q␇a֮࢞̀̕b␇, q␇a֮࢞̀̕b␇, q␇a֮࢞̀̕b␇, q␇a֮࢞̀̕b␇);
+Test_N(q␇à֮࢟̕b␇, q␇à֮࢟̕b␇, q␇à֮࢟̕b␇, q␇à֮࢟̕b␇, q␇à֮࢟̕b␇);
+Test_N(q␇a֮࢟̀̕b␇, q␇a֮࢟̀̕b␇, q␇a֮࢟̀̕b␇, q␇a֮࢟̀̕b␇, q␇a֮࢟̀̕b␇);
+Test_N(q␇à֮࣊̕b␇, q␇à֮࣊̕b␇, q␇à֮࣊̕b␇, q␇à֮࣊̕b␇, q␇à֮࣊̕b␇);
+Test_N(q␇a֮࣊̀̕b␇, q␇a֮࣊̀̕b␇, q␇a֮࣊̀̕b␇, q␇a֮࣊̀̕b␇, q␇a֮࣊̀̕b␇);
+Test_N(q␇à֮࣋̕b␇, q␇à֮࣋̕b␇, q␇à֮࣋̕b␇, q␇à֮࣋̕b␇, q␇à֮࣋̕b␇);
+Test_N(q␇a֮࣋̀̕b␇, q␇a֮࣋̀̕b␇, q␇a֮࣋̀̕b␇, q␇a֮࣋̀̕b␇, q␇a֮࣋̀̕b␇);
+Test_N(q␇à֮࣌̕b␇, q␇à֮࣌̕b␇, q␇à֮࣌̕b␇, q␇à֮࣌̕b␇, q␇à֮࣌̕b␇);
+Test_N(q␇a֮࣌̀̕b␇, q␇a֮࣌̀̕b␇, q␇a֮࣌̀̕b␇, q␇a֮࣌̀̕b␇, q␇a֮࣌̀̕b␇);
+Test_N(q␇à֮࣍̕b␇, q␇à֮࣍̕b␇, q␇à֮࣍̕b␇, q␇à֮࣍̕b␇, q␇à֮࣍̕b␇);
+Test_N(q␇a֮࣍̀̕b␇, q␇a֮࣍̀̕b␇, q␇a֮࣍̀̕b␇, q␇a֮࣍̀̕b␇, q␇a֮࣍̀̕b␇);
+Test_N(q␇à֮࣎̕b␇, q␇à֮࣎̕b␇, q␇à֮࣎̕b␇, q␇à֮࣎̕b␇, q␇à֮࣎̕b␇);
+Test_N(q␇a֮࣎̀̕b␇, q␇a֮࣎̀̕b␇, q␇a֮࣎̀̕b␇, q␇a֮࣎̀̕b␇, q␇a֮࣎̀̕b␇);
+Test_N(q␇a᷺̖࣏֚b␇, q␇a᷺̖࣏֚b␇, q␇a᷺̖࣏֚b␇, q␇a᷺̖࣏֚b␇, q␇a᷺̖࣏֚b␇);
+Test_N(q␇a᷺࣏̖֚b␇, q␇a᷺࣏̖֚b␇, q␇a᷺࣏̖֚b␇, q␇a᷺࣏̖֚b␇, q␇a᷺࣏̖֚b␇);
+Test_N(q␇a᷺̖࣐֚b␇, q␇a᷺̖࣐֚b␇, q␇a᷺̖࣐֚b␇, q␇a᷺̖࣐֚b␇, q␇a᷺̖࣐֚b␇);
+Test_N(q␇a᷺࣐̖֚b␇, q␇a᷺࣐̖֚b␇, q␇a᷺࣐̖֚b␇, q␇a᷺࣐̖֚b␇, q␇a᷺࣐̖֚b␇);
+Test_N(q␇a᷺̖࣑֚b␇, q␇a᷺̖࣑֚b␇, q␇a᷺̖࣑֚b␇, q␇a᷺̖࣑֚b␇, q␇a᷺̖࣑֚b␇);
+Test_N(q␇a᷺࣑̖֚b␇, q␇a᷺࣑̖֚b␇, q␇a᷺࣑̖֚b␇, q␇a᷺࣑̖֚b␇, q␇a᷺࣑̖֚b␇);
+Test_N(q␇a᷺̖࣒֚b␇, q␇a᷺̖࣒֚b␇, q␇a᷺̖࣒֚b␇, q␇a᷺̖࣒֚b␇, q␇a᷺̖࣒֚b␇);
+Test_N(q␇a᷺࣒̖֚b␇, q␇a᷺࣒̖֚b␇, q␇a᷺࣒̖֚b␇, q␇a᷺࣒̖֚b␇, q␇a᷺࣒̖֚b␇);
+Test_N(q␇a᷺̖࣓֚b␇, q␇a᷺̖࣓֚b␇, q␇a᷺̖࣓֚b␇, q␇a᷺̖࣓֚b␇, q␇a᷺̖࣓֚b␇);
+Test_N(q␇a᷺࣓̖֚b␇, q␇a᷺࣓̖֚b␇, q␇a᷺࣓̖֚b␇, q␇a᷺࣓̖֚b␇, q␇a᷺࣓̖֚b␇);
+Test_N(q␇à֮ࣔ̕b␇, q␇à֮ࣔ̕b␇, q␇à֮ࣔ̕b␇, q␇à֮ࣔ̕b␇, q␇à֮ࣔ̕b␇);
+Test_N(q␇a֮ࣔ̀̕b␇, q␇a֮ࣔ̀̕b␇, q␇a֮ࣔ̀̕b␇, q␇a֮ࣔ̀̕b␇, q␇a֮ࣔ̀̕b␇);
+Test_N(q␇à֮ࣕ̕b␇, q␇à֮ࣕ̕b␇, q␇à֮ࣕ̕b␇, q␇à֮ࣕ̕b␇, q␇à֮ࣕ̕b␇);
+Test_N(q␇a֮ࣕ̀̕b␇, q␇a֮ࣕ̀̕b␇, q␇a֮ࣕ̀̕b␇, q␇a֮ࣕ̀̕b␇, q␇a֮ࣕ̀̕b␇);
+Test_N(q␇à֮ࣖ̕b␇, q␇à֮ࣖ̕b␇, q␇à֮ࣖ̕b␇, q␇à֮ࣖ̕b␇, q␇à֮ࣖ̕b␇);
+Test_N(q␇a֮ࣖ̀̕b␇, q␇a֮ࣖ̀̕b␇, q␇a֮ࣖ̀̕b␇, q␇a֮ࣖ̀̕b␇, q␇a֮ࣖ̀̕b␇);
+Test_N(q␇à֮ࣗ̕b␇, q␇à֮ࣗ̕b␇, q␇à֮ࣗ̕b␇, q␇à֮ࣗ̕b␇, q␇à֮ࣗ̕b␇);
+Test_N(q␇a֮ࣗ̀̕b␇, q␇a֮ࣗ̀̕b␇, q␇a֮ࣗ̀̕b␇, q␇a֮ࣗ̀̕b␇, q␇a֮ࣗ̀̕b␇);
+Test_N(q␇à֮ࣘ̕b␇, q␇à֮ࣘ̕b␇, q␇à֮ࣘ̕b␇, q␇à֮ࣘ̕b␇, q␇à֮ࣘ̕b␇);
+Test_N(q␇a֮ࣘ̀̕b␇, q␇a֮ࣘ̀̕b␇, q␇a֮ࣘ̀̕b␇, q␇a֮ࣘ̀̕b␇, q␇a֮ࣘ̀̕b␇);
+Test_N(q␇à֮ࣙ̕b␇, q␇à֮ࣙ̕b␇, q␇à֮ࣙ̕b␇, q␇à֮ࣙ̕b␇, q␇à֮ࣙ̕b␇);
+Test_N(q␇a֮ࣙ̀̕b␇, q␇a֮ࣙ̀̕b␇, q␇a֮ࣙ̀̕b␇, q␇a֮ࣙ̀̕b␇, q␇a֮ࣙ̀̕b␇);
+Test_N(q␇à֮ࣚ̕b␇, q␇à֮ࣚ̕b␇, q␇à֮ࣚ̕b␇, q␇à֮ࣚ̕b␇, q␇à֮ࣚ̕b␇);
+Test_N(q␇a֮ࣚ̀̕b␇, q␇a֮ࣚ̀̕b␇, q␇a֮ࣚ̀̕b␇, q␇a֮ࣚ̀̕b␇, q␇a֮ࣚ̀̕b␇);
+Test_N(q␇à֮ࣛ̕b␇, q␇à֮ࣛ̕b␇, q␇à֮ࣛ̕b␇, q␇à֮ࣛ̕b␇, q␇à֮ࣛ̕b␇);
+Test_N(q␇a֮ࣛ̀̕b␇, q␇a֮ࣛ̀̕b␇, q␇a֮ࣛ̀̕b␇, q␇a֮ࣛ̀̕b␇, q␇a֮ࣛ̀̕b␇);
+Test_N(q␇à֮ࣜ̕b␇, q␇à֮ࣜ̕b␇, q␇à֮ࣜ̕b␇, q␇à֮ࣜ̕b␇, q␇à֮ࣜ̕b␇);
+Test_N(q␇a֮ࣜ̀̕b␇, q␇a֮ࣜ̀̕b␇, q␇a֮ࣜ̀̕b␇, q␇a֮ࣜ̀̕b␇, q␇a֮ࣜ̀̕b␇);
+Test_N(q␇à֮ࣝ̕b␇, q␇à֮ࣝ̕b␇, q␇à֮ࣝ̕b␇, q␇à֮ࣝ̕b␇, q␇à֮ࣝ̕b␇);
+Test_N(q␇a֮ࣝ̀̕b␇, q␇a֮ࣝ̀̕b␇, q␇a֮ࣝ̀̕b␇, q␇a֮ࣝ̀̕b␇, q␇a֮ࣝ̀̕b␇);
+Test_N(q␇à֮ࣞ̕b␇, q␇à֮ࣞ̕b␇, q␇à֮ࣞ̕b␇, q␇à֮ࣞ̕b␇, q␇à֮ࣞ̕b␇);
+Test_N(q␇a֮ࣞ̀̕b␇, q␇a֮ࣞ̀̕b␇, q␇a֮ࣞ̀̕b␇, q␇a֮ࣞ̀̕b␇, q␇a֮ࣞ̀̕b␇);
+Test_N(q␇à֮ࣟ̕b␇, q␇à֮ࣟ̕b␇, q␇à֮ࣟ̕b␇, q␇à֮ࣟ̕b␇, q␇à֮ࣟ̕b␇);
+Test_N(q␇a֮ࣟ̀̕b␇, q␇a֮ࣟ̀̕b␇, q␇a֮ࣟ̀̕b␇, q␇a֮ࣟ̀̕b␇, q␇a֮ࣟ̀̕b␇);
+Test_N(q␇à֮࣠̕b␇, q␇à֮࣠̕b␇, q␇à֮࣠̕b␇, q␇à֮࣠̕b␇, q␇à֮࣠̕b␇);
+Test_N(q␇a֮࣠̀̕b␇, q␇a֮࣠̀̕b␇, q␇a֮࣠̀̕b␇, q␇a֮࣠̀̕b␇, q␇a֮࣠̀̕b␇);
+Test_N(q␇à֮࣡̕b␇, q␇à֮࣡̕b␇, q␇à֮࣡̕b␇, q␇à֮࣡̕b␇, q␇à֮࣡̕b␇);
+Test_N(q␇a֮࣡̀̕b␇, q␇a֮࣡̀̕b␇, q␇a֮࣡̀̕b␇, q␇a֮࣡̀̕b␇, q␇a֮࣡̀̕b␇);
+Test_N(q␇a᷺̖ࣣ֚b␇, q␇a᷺̖ࣣ֚b␇, q␇a᷺̖ࣣ֚b␇, q␇a᷺̖ࣣ֚b␇, q␇a᷺̖ࣣ֚b␇);
+Test_N(q␇a᷺ࣣ̖֚b␇, q␇a᷺ࣣ̖֚b␇, q␇a᷺ࣣ̖֚b␇, q␇a᷺ࣣ̖֚b␇, q␇a᷺ࣣ̖֚b␇);
+Test_N(q␇à֮ࣤ̕b␇, q␇à֮ࣤ̕b␇, q␇à֮ࣤ̕b␇, q␇à֮ࣤ̕b␇, q␇à֮ࣤ̕b␇);
+Test_N(q␇a֮ࣤ̀̕b␇, q␇a֮ࣤ̀̕b␇, q␇a֮ࣤ̀̕b␇, q␇a֮ࣤ̀̕b␇, q␇a֮ࣤ̀̕b␇);
+Test_N(q␇à֮ࣥ̕b␇, q␇à֮ࣥ̕b␇, q␇à֮ࣥ̕b␇, q␇à֮ࣥ̕b␇, q␇à֮ࣥ̕b␇);
+Test_N(q␇a֮ࣥ̀̕b␇, q␇a֮ࣥ̀̕b␇, q␇a֮ࣥ̀̕b␇, q␇a֮ࣥ̀̕b␇, q␇a֮ࣥ̀̕b␇);
+Test_N(q␇a᷺̖ࣦ֚b␇, q␇a᷺̖ࣦ֚b␇, q␇a᷺̖ࣦ֚b␇, q␇a᷺̖ࣦ֚b␇, q␇a᷺̖ࣦ֚b␇);
+Test_N(q␇a᷺ࣦ̖֚b␇, q␇a᷺ࣦ̖֚b␇, q␇a᷺ࣦ̖֚b␇, q␇a᷺ࣦ̖֚b␇, q␇a᷺ࣦ̖֚b␇);
+Test_N(q␇à֮ࣧ̕b␇, q␇à֮ࣧ̕b␇, q␇à֮ࣧ̕b␇, q␇à֮ࣧ̕b␇, q␇à֮ࣧ̕b␇);
+Test_N(q␇a֮ࣧ̀̕b␇, q␇a֮ࣧ̀̕b␇, q␇a֮ࣧ̀̕b␇, q␇a֮ࣧ̀̕b␇, q␇a֮ࣧ̀̕b␇);
+Test_N(q␇à֮ࣨ̕b␇, q␇à֮ࣨ̕b␇, q␇à֮ࣨ̕b␇, q␇à֮ࣨ̕b␇, q␇à֮ࣨ̕b␇);
+Test_N(q␇a֮ࣨ̀̕b␇, q␇a֮ࣨ̀̕b␇, q␇a֮ࣨ̀̕b␇, q␇a֮ࣨ̀̕b␇, q␇a֮ࣨ̀̕b␇);
+Test_N(q␇a᷺̖ࣩ֚b␇, q␇a᷺̖ࣩ֚b␇, q␇a᷺̖ࣩ֚b␇, q␇a᷺̖ࣩ֚b␇, q␇a᷺̖ࣩ֚b␇);
+Test_N(q␇a᷺ࣩ̖֚b␇, q␇a᷺ࣩ̖֚b␇, q␇a᷺ࣩ̖֚b␇, q␇a᷺ࣩ̖֚b␇, q␇a᷺ࣩ̖֚b␇);
+Test_N(q␇à֮࣪̕b␇, q␇à֮࣪̕b␇, q␇à֮࣪̕b␇, q␇à֮࣪̕b␇, q␇à֮࣪̕b␇);
+Test_N(q␇a֮࣪̀̕b␇, q␇a֮࣪̀̕b␇, q␇a֮࣪̀̕b␇, q␇a֮࣪̀̕b␇, q␇a֮࣪̀̕b␇);
+Test_N(q␇à֮࣫̕b␇, q␇à֮࣫̕b␇, q␇à֮࣫̕b␇, q␇à֮࣫̕b␇, q␇à֮࣫̕b␇);
+Test_N(q␇a֮࣫̀̕b␇, q␇a֮࣫̀̕b␇, q␇a֮࣫̀̕b␇, q␇a֮࣫̀̕b␇, q␇a֮࣫̀̕b␇);
+Test_N(q␇à֮࣬̕b␇, q␇à֮࣬̕b␇, q␇à֮࣬̕b␇, q␇à֮࣬̕b␇, q␇à֮࣬̕b␇);
+Test_N(q␇a֮࣬̀̕b␇, q␇a֮࣬̀̕b␇, q␇a֮࣬̀̕b␇, q␇a֮࣬̀̕b␇, q␇a֮࣬̀̕b␇);
+Test_N(q␇a᷺̖࣭֚b␇, q␇a᷺̖࣭֚b␇, q␇a᷺̖࣭֚b␇, q␇a᷺̖࣭֚b␇, q␇a᷺̖࣭֚b␇);
+Test_N(q␇a᷺࣭̖֚b␇, q␇a᷺࣭̖֚b␇, q␇a᷺࣭̖֚b␇, q␇a᷺࣭̖֚b␇, q␇a᷺࣭̖֚b␇);
+Test_N(q␇a᷺̖࣮֚b␇, q␇a᷺̖࣮֚b␇, q␇a᷺̖࣮֚b␇, q␇a᷺̖࣮֚b␇, q␇a᷺̖࣮֚b␇);
+Test_N(q␇a᷺࣮̖֚b␇, q␇a᷺࣮̖֚b␇, q␇a᷺࣮̖֚b␇, q␇a᷺࣮̖֚b␇, q␇a᷺࣮̖֚b␇);
+Test_N(q␇a᷺̖࣯֚b␇, q␇a᷺̖࣯֚b␇, q␇a᷺̖࣯֚b␇, q␇a᷺̖࣯֚b␇, q␇a᷺̖࣯֚b␇);
+Test_N(q␇a᷺࣯̖֚b␇, q␇a᷺࣯̖֚b␇, q␇a᷺࣯̖֚b␇, q␇a᷺࣯̖֚b␇, q␇a᷺࣯̖֚b␇);
+Test_N(q␇aﬞًࣰٌb␇, q␇aﬞًࣰٌb␇, q␇aﬞًࣰٌb␇, q␇aﬞًࣰٌb␇, q␇aﬞًࣰٌb␇);
+Test_N(q␇aﬞࣰًٌb␇, q␇aﬞࣰًٌb␇, q␇aﬞࣰًٌb␇, q␇aﬞࣰًٌb␇, q␇aﬞࣰًٌb␇);
+Test_N(q␇aًٌࣱٍb␇, q␇aًٌࣱٍb␇, q␇aًٌࣱٍb␇, q␇aًٌࣱٍb␇, q␇aًٌࣱٍb␇);
+Test_N(q␇aًࣱٌٍb␇, q␇aًࣱٌٍb␇, q␇aًࣱٌٍb␇, q␇aًࣱٌٍb␇, q␇aًࣱٌٍb␇);
+Test_N(q␇aٌٍࣲؘb␇, q␇aٌٍࣲؘb␇, q␇aٌٍࣲؘb␇, q␇aٌٍࣲؘb␇, q␇aٌٍࣲؘb␇);
+Test_N(q␇aٌࣲٍؘb␇, q␇aٌࣲٍؘb␇, q␇aٌࣲٍؘb␇, q␇aٌࣲٍؘb␇, q␇aٌࣲٍؘb␇);
+Test_N(q␇à֮ࣳ̕b␇, q␇à֮ࣳ̕b␇, q␇à֮ࣳ̕b␇, q␇à֮ࣳ̕b␇, q␇à֮ࣳ̕b␇);
+Test_N(q␇a֮ࣳ̀̕b␇, q␇a֮ࣳ̀̕b␇, q␇a֮ࣳ̀̕b␇, q␇a֮ࣳ̀̕b␇, q␇a֮ࣳ̀̕b␇);
+Test_N(q␇à֮ࣴ̕b␇, q␇à֮ࣴ̕b␇, q␇à֮ࣴ̕b␇, q␇à֮ࣴ̕b␇, q␇à֮ࣴ̕b␇);
+Test_N(q␇a֮ࣴ̀̕b␇, q␇a֮ࣴ̀̕b␇, q␇a֮ࣴ̀̕b␇, q␇a֮ࣴ̀̕b␇, q␇a֮ࣴ̀̕b␇);
+Test_N(q␇à֮ࣵ̕b␇, q␇à֮ࣵ̕b␇, q␇à֮ࣵ̕b␇, q␇à֮ࣵ̕b␇, q␇à֮ࣵ̕b␇);
+Test_N(q␇a֮ࣵ̀̕b␇, q␇a֮ࣵ̀̕b␇, q␇a֮ࣵ̀̕b␇, q␇a֮ࣵ̀̕b␇, q␇a֮ࣵ̀̕b␇);
+Test_N(q␇a᷺̖ࣶ֚b␇, q␇a᷺̖ࣶ֚b␇, q␇a᷺̖ࣶ֚b␇, q␇a᷺̖ࣶ֚b␇, q␇a᷺̖ࣶ֚b␇);
+Test_N(q␇a᷺ࣶ̖֚b␇, q␇a᷺ࣶ̖֚b␇, q␇a᷺ࣶ̖֚b␇, q␇a᷺ࣶ̖֚b␇, q␇a᷺ࣶ̖֚b␇);
+Test_N(q␇à֮ࣷ̕b␇, q␇à֮ࣷ̕b␇, q␇à֮ࣷ̕b␇, q␇à֮ࣷ̕b␇, q␇à֮ࣷ̕b␇);
+Test_N(q␇a֮ࣷ̀̕b␇, q␇a֮ࣷ̀̕b␇, q␇a֮ࣷ̀̕b␇, q␇a֮ࣷ̀̕b␇, q␇a֮ࣷ̀̕b␇);
+Test_N(q␇à֮ࣸ̕b␇, q␇à֮ࣸ̕b␇, q␇à֮ࣸ̕b␇, q␇à֮ࣸ̕b␇, q␇à֮ࣸ̕b␇);
+Test_N(q␇a֮ࣸ̀̕b␇, q␇a֮ࣸ̀̕b␇, q␇a֮ࣸ̀̕b␇, q␇a֮ࣸ̀̕b␇, q␇a֮ࣸ̀̕b␇);
+Test_N(q␇a᷺̖ࣹ֚b␇, q␇a᷺̖ࣹ֚b␇, q␇a᷺̖ࣹ֚b␇, q␇a᷺̖ࣹ֚b␇, q␇a᷺̖ࣹ֚b␇);
+Test_N(q␇a᷺ࣹ̖֚b␇, q␇a᷺ࣹ̖֚b␇, q␇a᷺ࣹ̖֚b␇, q␇a᷺ࣹ̖֚b␇, q␇a᷺ࣹ̖֚b␇);
+Test_N(q␇a᷺̖ࣺ֚b␇, q␇a᷺̖ࣺ֚b␇, q␇a᷺̖ࣺ֚b␇, q␇a᷺̖ࣺ֚b␇, q␇a᷺̖ࣺ֚b␇);
+Test_N(q␇a᷺ࣺ̖֚b␇, q␇a᷺ࣺ̖֚b␇, q␇a᷺ࣺ̖֚b␇, q␇a᷺ࣺ̖֚b␇, q␇a᷺ࣺ̖֚b␇);
+Test_N(q␇à֮ࣻ̕b␇, q␇à֮ࣻ̕b␇, q␇à֮ࣻ̕b␇, q␇à֮ࣻ̕b␇, q␇à֮ࣻ̕b␇);
+Test_N(q␇a֮ࣻ̀̕b␇, q␇a֮ࣻ̀̕b␇, q␇a֮ࣻ̀̕b␇, q␇a֮ࣻ̀̕b␇, q␇a֮ࣻ̀̕b␇);
+Test_N(q␇à֮ࣼ̕b␇, q␇à֮ࣼ̕b␇, q␇à֮ࣼ̕b␇, q␇à֮ࣼ̕b␇, q␇à֮ࣼ̕b␇);
+Test_N(q␇a֮ࣼ̀̕b␇, q␇a֮ࣼ̀̕b␇, q␇a֮ࣼ̀̕b␇, q␇a֮ࣼ̀̕b␇, q␇a֮ࣼ̀̕b␇);
+Test_N(q␇à֮ࣽ̕b␇, q␇à֮ࣽ̕b␇, q␇à֮ࣽ̕b␇, q␇à֮ࣽ̕b␇, q␇à֮ࣽ̕b␇);
+Test_N(q␇a֮ࣽ̀̕b␇, q␇a֮ࣽ̀̕b␇, q␇a֮ࣽ̀̕b␇, q␇a֮ࣽ̀̕b␇, q␇a֮ࣽ̀̕b␇);
+Test_N(q␇à֮ࣾ̕b␇, q␇à֮ࣾ̕b␇, q␇à֮ࣾ̕b␇, q␇à֮ࣾ̕b␇, q␇à֮ࣾ̕b␇);
+Test_N(q␇a֮ࣾ̀̕b␇, q␇a֮ࣾ̀̕b␇, q␇a֮ࣾ̀̕b␇, q␇a֮ࣾ̀̕b␇, q␇a֮ࣾ̀̕b␇);
+Test_N(q␇à֮ࣿ̕b␇, q␇à֮ࣿ̕b␇, q␇à֮ࣿ̕b␇, q␇à֮ࣿ̕b␇, q␇à֮ࣿ̕b␇);
+Test_N(q␇a֮ࣿ̀̕b␇, q␇a֮ࣿ̀̕b␇, q␇a֮ࣿ̀̕b␇, q␇a֮ࣿ̀̕b␇, q␇a֮ࣿ̀̕b␇);
+Test_N(q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇);
+Test_N(q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇, q␇a𖿰़़゙b␇);
+Test_N(q␇a゙््ְb␇, q␇a゙््ְb␇, q␇a゙््ְb␇, q␇a゙््ְb␇, q␇a゙््ְb␇);
+Test_N(q␇a゙््ְb␇, q␇a゙््ְb␇, q␇a゙््ְb␇, q␇a゙््ְb␇, q␇a゙््ְb␇);
+Test_N(q␇à֮॑̕b␇, q␇à֮॑̕b␇, q␇à֮॑̕b␇, q␇à֮॑̕b␇, q␇à֮॑̕b␇);
+Test_N(q␇a֮॑̀̕b␇, q␇a֮॑̀̕b␇, q␇a֮॑̀̕b␇, q␇a֮॑̀̕b␇, q␇a֮॑̀̕b␇);
+Test_N(q␇a᷺̖॒֚b␇, q␇a᷺̖॒֚b␇, q␇a᷺̖॒֚b␇, q␇a᷺̖॒֚b␇, q␇a᷺̖॒֚b␇);
+Test_N(q␇a᷺॒̖֚b␇, q␇a᷺॒̖֚b␇, q␇a᷺॒̖֚b␇, q␇a᷺॒̖֚b␇, q␇a᷺॒̖֚b␇);
+Test_N(q␇à֮॓̕b␇, q␇à֮॓̕b␇, q␇à֮॓̕b␇, q␇à֮॓̕b␇, q␇à֮॓̕b␇);
+Test_N(q␇a֮॓̀̕b␇, q␇a֮॓̀̕b␇, q␇a֮॓̀̕b␇, q␇a֮॓̀̕b␇, q␇a֮॓̀̕b␇);
+Test_N(q␇à֮॔̕b␇, q␇à֮॔̕b␇, q␇à֮॔̕b␇, q␇à֮॔̕b␇, q␇à֮॔̕b␇);
+Test_N(q␇a֮॔̀̕b␇, q␇a֮॔̀̕b␇, q␇a֮॔̀̕b␇, q␇a֮॔̀̕b␇, q␇a֮॔̀̕b␇);
+Test_N(q␇a𖿰़়゙b␇, q␇a𖿰़়゙b␇, q␇a𖿰़়゙b␇, q␇a𖿰़়゙b␇, q␇a𖿰़়゙b␇);
+Test_N(q␇a𖿰়़゙b␇, q␇a𖿰়़゙b␇, q␇a𖿰়़゙b␇, q␇a𖿰়़゙b␇, q␇a𖿰়़゙b␇);
+Test_N(q␇a゙्্ְb␇, q␇a゙्্ְb␇, q␇a゙्্ְb␇, q␇a゙्্ְb␇, q␇a゙्্ְb␇);
+Test_N(q␇a゙্्ְb␇, q␇a゙্्ְb␇, q␇a゙্्ְb␇, q␇a゙্्ְb␇, q␇a゙্्ְb␇);
+Test_N(q␇à֮৾̕b␇, q␇à֮৾̕b␇, q␇à֮৾̕b␇, q␇à֮৾̕b␇, q␇à֮৾̕b␇);
+Test_N(q␇a֮৾̀̕b␇, q␇a֮৾̀̕b␇, q␇a֮৾̀̕b␇, q␇a֮৾̀̕b␇, q␇a֮৾̀̕b␇);
+Test_N(q␇a𖿰़਼゙b␇, q␇a𖿰़਼゙b␇, q␇a𖿰़਼゙b␇, q␇a𖿰़਼゙b␇, q␇a𖿰़਼゙b␇);
+Test_N(q␇a𖿰਼़゙b␇, q␇a𖿰਼़゙b␇, q␇a𖿰਼़゙b␇, q␇a𖿰਼़゙b␇, q␇a𖿰਼़゙b␇);
+Test_N(q␇a゙्੍ְb␇, q␇a゙्੍ְb␇, q␇a゙्੍ְb␇, q␇a゙्੍ְb␇, q␇a゙्੍ְb␇);
+Test_N(q␇a゙੍्ְb␇, q␇a゙੍्ְb␇, q␇a゙੍्ְb␇, q␇a゙੍्ְb␇, q␇a゙੍्ְb␇);
+Test_N(q␇a𖿰़઼゙b␇, q␇a𖿰़઼゙b␇, q␇a𖿰़઼゙b␇, q␇a𖿰़઼゙b␇, q␇a𖿰़઼゙b␇);
+Test_N(q␇a𖿰઼़゙b␇, q␇a𖿰઼़゙b␇, q␇a𖿰઼़゙b␇, q␇a𖿰઼़゙b␇, q␇a𖿰઼़゙b␇);
+Test_N(q␇a゙्્ְb␇, q␇a゙्્ְb␇, q␇a゙्્ְb␇, q␇a゙्્ְb␇, q␇a゙्્ְb␇);
+Test_N(q␇a゙્्ְb␇, q␇a゙્्ְb␇, q␇a゙્्ְb␇, q␇a゙્्ְb␇, q␇a゙્्ְb␇);
+Test_N(q␇a𖿰़଼゙b␇, q␇a𖿰़଼゙b␇, q␇a𖿰़଼゙b␇, q␇a𖿰़଼゙b␇, q␇a𖿰़଼゙b␇);
+Test_N(q␇a𖿰଼़゙b␇, q␇a𖿰଼़゙b␇, q␇a𖿰଼़゙b␇, q␇a𖿰଼़゙b␇, q␇a𖿰଼़゙b␇);
+Test_N(q␇a゙्୍ְb␇, q␇a゙्୍ְb␇, q␇a゙्୍ְb␇, q␇a゙्୍ְb␇, q␇a゙्୍ְb␇);
+Test_N(q␇a゙୍्ְb␇, q␇a゙୍्ְb␇, q␇a゙୍्ְb␇, q␇a゙୍्ְb␇, q␇a゙୍्ְb␇);
+Test_N(q␇a゙्்ְb␇, q␇a゙्்ְb␇, q␇a゙्்ְb␇, q␇a゙्்ְb␇, q␇a゙्்ְb␇);
+Test_N(q␇a゙்्ְb␇, q␇a゙்्ְb␇, q␇a゙்्ְb␇, q␇a゙்्ְb␇, q␇a゙்्ְb␇);
+Test_N(q␇a𖿰़఼゙b␇, q␇a𖿰़఼゙b␇, q␇a𖿰़఼゙b␇, q␇a𖿰़఼゙b␇, q␇a𖿰़఼゙b␇);
+Test_N(q␇a𖿰఼़゙b␇, q␇a𖿰఼़゙b␇, q␇a𖿰఼़゙b␇, q␇a𖿰఼़゙b␇, q␇a𖿰఼़゙b␇);
+Test_N(q␇a゙्్ְb␇, q␇a゙्్ְb␇, q␇a゙्్ְb␇, q␇a゙्్ְb␇, q␇a゙्్ְb␇);
+Test_N(q␇a゙్्ְb␇, q␇a゙్्ְb␇, q␇a゙్्ְb␇, q␇a゙్्ְb␇, q␇a゙్्ְb␇);
+Test_N(q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇);
+Test_N(q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇, q␇aܑౕౕౖb␇);
+Test_N(q␇aౕౖౖุb␇, q␇aౕౖౖุb␇, q␇aౕౖౖุb␇, q␇aౕౖౖุb␇, q␇aౕౖౖุb␇);
+Test_N(q␇aౕౖౖุb␇, q␇aౕౖౖุb␇, q␇aౕౖౖุb␇, q␇aౕౖౖุb␇, q␇aౕౖౖุb␇);
+Test_N(q␇a𖿰़಼゙b␇, q␇a𖿰़಼゙b␇, q␇a𖿰़಼゙b␇, q␇a𖿰़಼゙b␇, q␇a𖿰़಼゙b␇);
+Test_N(q␇a𖿰಼़゙b␇, q␇a𖿰಼़゙b␇, q␇a𖿰಼़゙b␇, q␇a𖿰಼़゙b␇, q␇a𖿰಼़゙b␇);
+Test_N(q␇a゙्್ְb␇, q␇a゙्್ְb␇, q␇a゙्್ְb␇, q␇a゙्್ְb␇, q␇a゙्್ְb␇);
+Test_N(q␇a゙್्ְb␇, q␇a゙್्ְb␇, q␇a゙್्ְb␇, q␇a゙್्ְb␇, q␇a゙್्ְb␇);
+Test_N(q␇a゙्഻ְb␇, q␇a゙्഻ְb␇, q␇a゙्഻ְb␇, q␇a゙्഻ְb␇, q␇a゙्഻ְb␇);
+Test_N(q␇a゙഻्ְb␇, q␇a゙഻्ְb␇, q␇a゙഻्ְb␇, q␇a゙഻्ְb␇, q␇a゙഻्ְb␇);
+Test_N(q␇a゙्഼ְb␇, q␇a゙्഼ְb␇, q␇a゙्഼ְb␇, q␇a゙्഼ְb␇, q␇a゙्഼ְb␇);
+Test_N(q␇a゙഼्ְb␇, q␇a゙഼्ְb␇, q␇a゙഼्ְb␇, q␇a゙഼्ְb␇, q␇a゙഼्ְb␇);
+Test_N(q␇a゙्്ְb␇, q␇a゙्്ְb␇, q␇a゙्്ְb␇, q␇a゙्്ְb␇, q␇a゙्്ְb␇);
+Test_N(q␇a゙്्ְb␇, q␇a゙്्ְb␇, q␇a゙്्ְb␇, q␇a゙്्ְb␇, q␇a゙്्ְb␇);
+Test_N(q␇a゙्්ְb␇, q␇a゙्්ְb␇, q␇a゙्්ְb␇, q␇a゙्්ְb␇, q␇a゙्්ְb␇);
+Test_N(q␇a゙්्ְb␇, q␇a゙්्ְb␇, q␇a゙්्ְb␇, q␇a゙්्ְb␇, q␇a゙්्ְb␇);
+Test_N(q␇aౖุุ่b␇, q␇aౖุุ่b␇, q␇aౖุุ่b␇, q␇aౖุุ่b␇, q␇aౖุุ่b␇);
+Test_N(q␇aౖุุ่b␇, q␇aౖุุ่b␇, q␇aౖุุ่b␇, q␇aౖุุ่b␇, q␇aౖุุ่b␇);
+Test_N(q␇aౖุู่b␇, q␇aౖุู่b␇, q␇aౖุู่b␇, q␇aౖุู่b␇, q␇aౖุู่b␇);
+Test_N(q␇aౖูุ่b␇, q␇aౖูุ่b␇, q␇aౖูุ่b␇, q␇aౖูุ่b␇, q␇aౖูุ่b␇);
+Test_N(q␇a゙्ฺְb␇, q␇a゙्ฺְb␇, q␇a゙्ฺְb␇, q␇a゙्ฺְb␇, q␇a゙्ฺְb␇);
+Test_N(q␇a゙ฺ्ְb␇, q␇a゙ฺ्ְb␇, q␇a゙ฺ्ְb␇, q␇a゙ฺ्ְb␇, q␇a゙ฺ्ְb␇);
+Test_N(q␇aุ่่ຸb␇, q␇aุ่่ຸb␇, q␇aุ่่ຸb␇, q␇aุ่่ຸb␇, q␇aุ่่ຸb␇);
+Test_N(q␇aุ่่ຸb␇, q␇aุ่่ຸb␇, q␇aุ่่ຸb␇, q␇aุ่่ຸb␇, q␇aุ่่ຸb␇);
+Test_N(q␇aุ่้ຸb␇, q␇aุ่้ຸb␇, q␇aุ่้ຸb␇, q␇aุ่้ຸb␇, q␇aุ่้ຸb␇);
+Test_N(q␇aุ้่ຸb␇, q␇aุ้่ຸb␇, q␇aุ้่ຸb␇, q␇aุ้่ຸb␇, q␇aุ้่ຸb␇);
+Test_N(q␇aุ่๊ຸb␇, q␇aุ่๊ຸb␇, q␇aุ่๊ຸb␇, q␇aุ่๊ຸb␇, q␇aุ่๊ຸb␇);
+Test_N(q␇aุ๊่ຸb␇, q␇aุ๊่ຸb␇, q␇aุ๊่ຸb␇, q␇aุ๊่ຸb␇, q␇aุ๊่ຸb␇);
+Test_N(q␇aุ่๋ຸb␇, q␇aุ่๋ຸb␇, q␇aุ่๋ຸb␇, q␇aุ่๋ຸb␇, q␇aุ่๋ຸb␇);
+Test_N(q␇aุ๋่ຸb␇, q␇aุ๋่ຸb␇, q␇aุ๋่ຸb␇, q␇aุ๋่ຸb␇, q␇aุ๋่ຸb␇);
+Test_N(q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇);
+Test_N(q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇, q␇a่ຸຸ່b␇);
+Test_N(q␇a่ຸູ່b␇, q␇a่ຸູ່b␇, q␇a่ຸູ່b␇, q␇a่ຸູ່b␇, q␇a่ຸູ່b␇);
+Test_N(q␇a่ູຸ່b␇, q␇a่ູຸ່b␇, q␇a่ູຸ່b␇, q␇a่ູຸ່b␇, q␇a่ູຸ່b␇);
+Test_N(q␇a゙्຺ְb␇, q␇a゙्຺ְb␇, q␇a゙्຺ְb␇, q␇a゙्຺ְb␇, q␇a゙्຺ְb␇);
+Test_N(q␇a゙຺्ְb␇, q␇a゙຺्ְb␇, q␇a゙຺्ְb␇, q␇a゙຺्ְb␇, q␇a゙຺्ְb␇);
+Test_N(q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇);
+Test_N(q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇, q␇aຸ່່ཱb␇);
+Test_N(q␇aຸ່້ཱb␇, q␇aຸ່້ཱb␇, q␇aຸ່້ཱb␇, q␇aຸ່້ཱb␇, q␇aຸ່້ཱb␇);
+Test_N(q␇aຸ້່ཱb␇, q␇aຸ້່ཱb␇, q␇aຸ້່ཱb␇, q␇aຸ້່ཱb␇, q␇aຸ້່ཱb␇);
+Test_N(q␇aຸ່໊ཱb␇, q␇aຸ່໊ཱb␇, q␇aຸ່໊ཱb␇, q␇aຸ່໊ཱb␇, q␇aຸ່໊ཱb␇);
+Test_N(q␇aຸ໊່ཱb␇, q␇aຸ໊່ཱb␇, q␇aຸ໊່ཱb␇, q␇aຸ໊່ཱb␇, q␇aຸ໊່ཱb␇);
+Test_N(q␇aຸ່໋ཱb␇, q␇aຸ່໋ཱb␇, q␇aຸ່໋ཱb␇, q␇aຸ່໋ཱb␇, q␇aຸ່໋ཱb␇);
+Test_N(q␇aຸ໋່ཱb␇, q␇aຸ໋່ཱb␇, q␇aຸ໋່ཱb␇, q␇aຸ໋່ཱb␇, q␇aຸ໋່ཱb␇);
+Test_N(q␇a᷺̖༘֚b␇, q␇a᷺̖༘֚b␇, q␇a᷺̖༘֚b␇, q␇a᷺̖༘֚b␇, q␇a᷺̖༘֚b␇);
+Test_N(q␇a᷺༘̖֚b␇, q␇a᷺༘̖֚b␇, q␇a᷺༘̖֚b␇, q␇a᷺༘̖֚b␇, q␇a᷺༘̖֚b␇);
+Test_N(q␇a᷺̖༙֚b␇, q␇a᷺̖༙֚b␇, q␇a᷺̖༙֚b␇, q␇a᷺̖༙֚b␇, q␇a᷺̖༙֚b␇);
+Test_N(q␇a᷺༙̖֚b␇, q␇a᷺༙̖֚b␇, q␇a᷺༙̖֚b␇, q␇a᷺༙̖֚b␇, q␇a᷺༙̖֚b␇);
+Test_N(q␇a᷺̖༵֚b␇, q␇a᷺̖༵֚b␇, q␇a᷺̖༵֚b␇, q␇a᷺̖༵֚b␇, q␇a᷺̖༵֚b␇);
+Test_N(q␇a᷺༵̖֚b␇, q␇a᷺༵̖֚b␇, q␇a᷺༵̖֚b␇, q␇a᷺༵̖֚b␇, q␇a᷺༵̖֚b␇);
+Test_N(q␇a᷺̖༷֚b␇, q␇a᷺̖༷֚b␇, q␇a᷺̖༷֚b␇, q␇a᷺̖༷֚b␇, q␇a᷺̖༷֚b␇);
+Test_N(q␇a᷺༷̖֚b␇, q␇a᷺༷̖֚b␇, q␇a᷺༷̖֚b␇, q␇a᷺༷̖֚b␇, q␇a᷺༷̖֚b␇);
+Test_N(q␇a᷎̛༹᷺b␇, q␇a᷎̛༹᷺b␇, q␇a᷎̛༹᷺b␇, q␇a᷎̛༹᷺b␇, q␇a᷎̛༹᷺b␇);
+Test_N(q␇a᷎༹̛᷺b␇, q␇a᷎༹̛᷺b␇, q␇a᷎༹̛᷺b␇, q␇a᷎༹̛᷺b␇, q␇a᷎༹̛᷺b␇);
+Test_N(q␇a່ཱཱིb␇, q␇a່ཱཱིb␇, q␇a່ཱཱིb␇, q␇a່ཱཱིb␇, q␇a່ཱཱིb␇);
+Test_N(q␇a່ཱཱིb␇, q␇a່ཱཱིb␇, q␇a່ཱཱིb␇, q␇a່ཱཱིb␇, q␇a່ཱཱིb␇);
+Test_N(q␇aཱིིུb␇, q␇aཱིིུb␇, q␇aཱིིུb␇, q␇aཱིིུb␇, q␇aཱིིུb␇);
+Test_N(q␇aཱིིུb␇, q␇aཱིིུb␇, q␇aཱིིུb␇, q␇aཱིིུb␇, q␇aཱིིུb␇);
+Test_N(q␇aིུུ̡b␇, q␇aིུུ̡b␇, q␇aིུུ̡b␇, q␇aིུུ̡b␇, q␇aིུུ̡b␇);
+Test_N(q␇aིུུ̡b␇, q␇aིུུ̡b␇, q␇aིུུ̡b␇, q␇aིུུ̡b␇, q␇aིུུ̡b␇);
+Test_N(q␇aཱིེུb␇, q␇aཱིེུb␇, q␇aཱིེུb␇, q␇aཱིེུb␇, q␇aཱིེུb␇);
+Test_N(q␇aཱེིུb␇, q␇aཱེིུb␇, q␇aཱེིུb␇, q␇aཱེིུb␇, q␇aཱེིུb␇);
+Test_N(q␇aཱིཻུb␇, q␇aཱིཻུb␇, q␇aཱིཻུb␇, q␇aཱིཻུb␇, q␇aཱིཻུb␇);
+Test_N(q␇aཱཻིུb␇, q␇aཱཻིུb␇, q␇aཱཻིུb␇, q␇aཱཻིུb␇, q␇aཱཻིུb␇);
+Test_N(q␇aཱིོུb␇, q␇aཱིོུb␇, q␇aཱིོུb␇, q␇aཱིོུb␇, q␇aཱིོུb␇);
+Test_N(q␇aཱོིུb␇, q␇aཱོིུb␇, q␇aཱོིུb␇, q␇aཱོིུb␇, q␇aཱོིུb␇);
+Test_N(q␇aཱིཽུb␇, q␇aཱིཽུb␇, q␇aཱིཽུb␇, q␇aཱིཽུb␇, q␇aཱིཽུb␇);
+Test_N(q␇aཱཽིུb␇, q␇aཱཽིུb␇, q␇aཱཽིུb␇, q␇aཱཽིུb␇, q␇aཱཽིུb␇);
+Test_N(q␇aཱིྀུb␇, q␇aཱིྀུb␇, q␇aཱིྀུb␇, q␇aཱིྀུb␇, q␇aཱིྀུb␇);
+Test_N(q␇aཱྀིུb␇, q␇aཱྀིུb␇, q␇aཱྀིུb␇, q␇aཱྀིུb␇, q␇aཱྀིུb␇);
+Test_N(q␇à֮ྂ̕b␇, q␇à֮ྂ̕b␇, q␇à֮ྂ̕b␇, q␇à֮ྂ̕b␇, q␇à֮ྂ̕b␇);
+Test_N(q␇a֮ྂ̀̕b␇, q␇a֮ྂ̀̕b␇, q␇a֮ྂ̀̕b␇, q␇a֮ྂ̀̕b␇, q␇a֮ྂ̀̕b␇);
+Test_N(q␇à֮ྃ̕b␇, q␇à֮ྃ̕b␇, q␇à֮ྃ̕b␇, q␇à֮ྃ̕b␇, q␇à֮ྃ̕b␇);
+Test_N(q␇a֮ྃ̀̕b␇, q␇a֮ྃ̀̕b␇, q␇a֮ྃ̀̕b␇, q␇a֮ྃ̀̕b␇, q␇a֮ྃ̀̕b␇);
+Test_N(q␇a゙्྄ְb␇, q␇a゙्྄ְb␇, q␇a゙्྄ְb␇, q␇a゙्྄ְb␇, q␇a゙्྄ְb␇);
+Test_N(q␇a゙྄्ְb␇, q␇a゙྄्ְb␇, q␇a゙྄्ְb␇, q␇a゙྄्ְb␇, q␇a゙྄्ְb␇);
+Test_N(q␇à֮྆̕b␇, q␇à֮྆̕b␇, q␇à֮྆̕b␇, q␇à֮྆̕b␇, q␇à֮྆̕b␇);
+Test_N(q␇a֮྆̀̕b␇, q␇a֮྆̀̕b␇, q␇a֮྆̀̕b␇, q␇a֮྆̀̕b␇, q␇a֮྆̀̕b␇);
+Test_N(q␇à֮྇̕b␇, q␇à֮྇̕b␇, q␇à֮྇̕b␇, q␇à֮྇̕b␇, q␇à֮྇̕b␇);
+Test_N(q␇a֮྇̀̕b␇, q␇a֮྇̀̕b␇, q␇a֮྇̀̕b␇, q␇a֮྇̀̕b␇, q␇a֮྇̀̕b␇);
+Test_N(q␇a᷺̖࿆֚b␇, q␇a᷺̖࿆֚b␇, q␇a᷺̖࿆֚b␇, q␇a᷺̖࿆֚b␇, q␇a᷺̖࿆֚b␇);
+Test_N(q␇a᷺࿆̖֚b␇, q␇a᷺࿆̖֚b␇, q␇a᷺࿆̖֚b␇, q␇a᷺࿆̖֚b␇, q␇a᷺࿆̖֚b␇);
+Test_N(q␇a𖿰़့゙b␇, q␇a𖿰़့゙b␇, q␇a𖿰़့゙b␇, q␇a𖿰़့゙b␇, q␇a𖿰़့゙b␇);
+Test_N(q␇a𖿰့़゙b␇, q␇a𖿰့़゙b␇, q␇a𖿰့़゙b␇, q␇a𖿰့़゙b␇, q␇a𖿰့़゙b␇);
+Test_N(q␇a゙्္ְb␇, q␇a゙्္ְb␇, q␇a゙्္ְb␇, q␇a゙्္ְb␇, q␇a゙्္ְb␇);
+Test_N(q␇a゙္्ְb␇, q␇a゙္्ְb␇, q␇a゙္्ְb␇, q␇a゙္्ְb␇, q␇a゙္्ְb␇);
+Test_N(q␇a゙्်ְb␇, q␇a゙्်ְb␇, q␇a゙्်ְb␇, q␇a゙्်ְb␇, q␇a゙्်ְb␇);
+Test_N(q␇a゙်्ְb␇, q␇a゙်्ְb␇, q␇a゙်्ְb␇, q␇a゙်्ְb␇, q␇a゙်्ְb␇);
+Test_N(q␇a᷺̖ႍ֚b␇, q␇a᷺̖ႍ֚b␇, q␇a᷺̖ႍ֚b␇, q␇a᷺̖ႍ֚b␇, q␇a᷺̖ႍ֚b␇);
+Test_N(q␇a᷺ႍ̖֚b␇, q␇a᷺ႍ̖֚b␇, q␇a᷺ႍ̖֚b␇, q␇a᷺ႍ̖֚b␇, q␇a᷺ႍ̖֚b␇);
+Test_N(q␇à֮፝̕b␇, q␇à֮፝̕b␇, q␇à֮፝̕b␇, q␇à֮፝̕b␇, q␇à֮፝̕b␇);
+Test_N(q␇a֮፝̀̕b␇, q␇a֮፝̀̕b␇, q␇a֮፝̀̕b␇, q␇a֮፝̀̕b␇, q␇a֮፝̀̕b␇);
+Test_N(q␇à֮፞̕b␇, q␇à֮፞̕b␇, q␇à֮፞̕b␇, q␇à֮፞̕b␇, q␇à֮፞̕b␇);
+Test_N(q␇a֮፞̀̕b␇, q␇a֮፞̀̕b␇, q␇a֮፞̀̕b␇, q␇a֮፞̀̕b␇, q␇a֮፞̀̕b␇);
+Test_N(q␇à֮፟̕b␇, q␇à֮፟̕b␇, q␇à֮፟̕b␇, q␇à֮፟̕b␇, q␇à֮፟̕b␇);
+Test_N(q␇a֮፟̀̕b␇, q␇a֮፟̀̕b␇, q␇a֮፟̀̕b␇, q␇a֮፟̀̕b␇, q␇a֮፟̀̕b␇);
+Test_N(q␇a゙्᜔ְb␇, q␇a゙्᜔ְb␇, q␇a゙्᜔ְb␇, q␇a゙्᜔ְb␇, q␇a゙्᜔ְb␇);
+Test_N(q␇a゙᜔्ְb␇, q␇a゙᜔्ְb␇, q␇a゙᜔्ְb␇, q␇a゙᜔्ְb␇, q␇a゙᜔्ְb␇);
+Test_N(q␇a゙्᜕ְb␇, q␇a゙्᜕ְb␇, q␇a゙्᜕ְb␇, q␇a゙्᜕ְb␇, q␇a゙्᜕ְb␇);
+Test_N(q␇a゙᜕्ְb␇, q␇a゙᜕्ְb␇, q␇a゙᜕्ְb␇, q␇a゙᜕्ְb␇, q␇a゙᜕्ְb␇);
+Test_N(q␇a゙्᜴ְb␇, q␇a゙्᜴ְb␇, q␇a゙्᜴ְb␇, q␇a゙्᜴ְb␇, q␇a゙्᜴ְb␇);
+Test_N(q␇a゙᜴्ְb␇, q␇a゙᜴्ְb␇, q␇a゙᜴्ְb␇, q␇a゙᜴्ְb␇, q␇a゙᜴्ְb␇);
+Test_N(q␇a゙्្ְb␇, q␇a゙्្ְb␇, q␇a゙्្ְb␇, q␇a゙्្ְb␇, q␇a゙्្ְb␇);
+Test_N(q␇a゙្्ְb␇, q␇a゙្्ְb␇, q␇a゙្्ְb␇, q␇a゙្्ְb␇, q␇a゙្्ְb␇);
+Test_N(q␇à֮៝̕b␇, q␇à֮៝̕b␇, q␇à֮៝̕b␇, q␇à֮៝̕b␇, q␇à֮៝̕b␇);
+Test_N(q␇a֮៝̀̕b␇, q␇a֮៝̀̕b␇, q␇a֮៝̀̕b␇, q␇a֮៝̀̕b␇, q␇a֮៝̀̕b␇);
+Test_N(q␇à𝅭֮ᢩb␇, q␇à𝅭֮ᢩb␇, q␇à𝅭֮ᢩb␇, q␇à𝅭֮ᢩb␇, q␇à𝅭֮ᢩb␇);
+Test_N(q␇à𝅭ᢩ֮b␇, q␇à𝅭ᢩ֮b␇, q␇à𝅭ᢩ֮b␇, q␇à𝅭ᢩ֮b␇, q␇à𝅭ᢩ֮b␇);
+Test_N(q␇a̖֚᤹〮b␇, q␇a̖֚᤹〮b␇, q␇a̖֚᤹〮b␇, q␇a̖֚᤹〮b␇, q␇a̖֚᤹〮b␇);
+Test_N(q␇a̖᤹֚〮b␇, q␇a̖᤹֚〮b␇, q␇a̖᤹֚〮b␇, q␇a̖᤹֚〮b␇, q␇a̖᤹֚〮b␇);
+Test_N(q␇à֮᤺̕b␇, q␇à֮᤺̕b␇, q␇à֮᤺̕b␇, q␇à֮᤺̕b␇, q␇à֮᤺̕b␇);
+Test_N(q␇a֮᤺̀̕b␇, q␇a֮᤺̀̕b␇, q␇a֮᤺̀̕b␇, q␇a֮᤺̀̕b␇, q␇a֮᤺̀̕b␇);
+Test_N(q␇a᷺̖᤻֚b␇, q␇a᷺̖᤻֚b␇, q␇a᷺̖᤻֚b␇, q␇a᷺̖᤻֚b␇, q␇a᷺̖᤻֚b␇);
+Test_N(q␇a᷺᤻̖֚b␇, q␇a᷺᤻̖֚b␇, q␇a᷺᤻̖֚b␇, q␇a᷺᤻̖֚b␇, q␇a᷺᤻̖֚b␇);
+Test_N(q␇à֮ᨗ̕b␇, q␇à֮ᨗ̕b␇, q␇à֮ᨗ̕b␇, q␇à֮ᨗ̕b␇, q␇à֮ᨗ̕b␇);
+Test_N(q␇a֮ᨗ̀̕b␇, q␇a֮ᨗ̀̕b␇, q␇a֮ᨗ̀̕b␇, q␇a֮ᨗ̀̕b␇, q␇a֮ᨗ̀̕b␇);
+Test_N(q␇a᷺̖ᨘ֚b␇, q␇a᷺̖ᨘ֚b␇, q␇a᷺̖ᨘ֚b␇, q␇a᷺̖ᨘ֚b␇, q␇a᷺̖ᨘ֚b␇);
+Test_N(q␇a᷺ᨘ̖֚b␇, q␇a᷺ᨘ̖֚b␇, q␇a᷺ᨘ̖֚b␇, q␇a᷺ᨘ̖֚b␇, q␇a᷺ᨘ̖֚b␇);
+Test_N(q␇a゙्᩠ְb␇, q␇a゙्᩠ְb␇, q␇a゙्᩠ְb␇, q␇a゙्᩠ְb␇, q␇a゙्᩠ְb␇);
+Test_N(q␇a゙᩠्ְb␇, q␇a゙᩠्ְb␇, q␇a゙᩠्ְb␇, q␇a゙᩠्ְb␇, q␇a゙᩠्ְb␇);
+Test_N(q␇à֮᩵̕b␇, q␇à֮᩵̕b␇, q␇à֮᩵̕b␇, q␇à֮᩵̕b␇, q␇à֮᩵̕b␇);
+Test_N(q␇a֮᩵̀̕b␇, q␇a֮᩵̀̕b␇, q␇a֮᩵̀̕b␇, q␇a֮᩵̀̕b␇, q␇a֮᩵̀̕b␇);
+Test_N(q␇à֮᩶̕b␇, q␇à֮᩶̕b␇, q␇à֮᩶̕b␇, q␇à֮᩶̕b␇, q␇à֮᩶̕b␇);
+Test_N(q␇a֮᩶̀̕b␇, q␇a֮᩶̀̕b␇, q␇a֮᩶̀̕b␇, q␇a֮᩶̀̕b␇, q␇a֮᩶̀̕b␇);
+Test_N(q␇à֮᩷̕b␇, q␇à֮᩷̕b␇, q␇à֮᩷̕b␇, q␇à֮᩷̕b␇, q␇à֮᩷̕b␇);
+Test_N(q␇a֮᩷̀̕b␇, q␇a֮᩷̀̕b␇, q␇a֮᩷̀̕b␇, q␇a֮᩷̀̕b␇, q␇a֮᩷̀̕b␇);
+Test_N(q␇à֮᩸̕b␇, q␇à֮᩸̕b␇, q␇à֮᩸̕b␇, q␇à֮᩸̕b␇, q␇à֮᩸̕b␇);
+Test_N(q␇a֮᩸̀̕b␇, q␇a֮᩸̀̕b␇, q␇a֮᩸̀̕b␇, q␇a֮᩸̀̕b␇, q␇a֮᩸̀̕b␇);
+Test_N(q␇à֮᩹̕b␇, q␇à֮᩹̕b␇, q␇à֮᩹̕b␇, q␇à֮᩹̕b␇, q␇à֮᩹̕b␇);
+Test_N(q␇a֮᩹̀̕b␇, q␇a֮᩹̀̕b␇, q␇a֮᩹̀̕b␇, q␇a֮᩹̀̕b␇, q␇a֮᩹̀̕b␇);
+Test_N(q␇à֮᩺̕b␇, q␇à֮᩺̕b␇, q␇à֮᩺̕b␇, q␇à֮᩺̕b␇, q␇à֮᩺̕b␇);
+Test_N(q␇a֮᩺̀̕b␇, q␇a֮᩺̀̕b␇, q␇a֮᩺̀̕b␇, q␇a֮᩺̀̕b␇, q␇a֮᩺̀̕b␇);
+Test_N(q␇à֮᩻̕b␇, q␇à֮᩻̕b␇, q␇à֮᩻̕b␇, q␇à֮᩻̕b␇, q␇à֮᩻̕b␇);
+Test_N(q␇a֮᩻̀̕b␇, q␇a֮᩻̀̕b␇, q␇a֮᩻̀̕b␇, q␇a֮᩻̀̕b␇, q␇a֮᩻̀̕b␇);
+Test_N(q␇à֮᩼̕b␇, q␇à֮᩼̕b␇, q␇à֮᩼̕b␇, q␇à֮᩼̕b␇, q␇à֮᩼̕b␇);
+Test_N(q␇a֮᩼̀̕b␇, q␇a֮᩼̀̕b␇, q␇a֮᩼̀̕b␇, q␇a֮᩼̀̕b␇, q␇a֮᩼̀̕b␇);
+Test_N(q␇a᷺̖᩿֚b␇, q␇a᷺̖᩿֚b␇, q␇a᷺̖᩿֚b␇, q␇a᷺̖᩿֚b␇, q␇a᷺̖᩿֚b␇);
+Test_N(q␇a᷺᩿̖֚b␇, q␇a᷺᩿̖֚b␇, q␇a᷺᩿̖֚b␇, q␇a᷺᩿̖֚b␇, q␇a᷺᩿̖֚b␇);
+Test_N(q␇à֮᪰̕b␇, q␇à֮᪰̕b␇, q␇à֮᪰̕b␇, q␇à֮᪰̕b␇, q␇à֮᪰̕b␇);
+Test_N(q␇a֮᪰̀̕b␇, q␇a֮᪰̀̕b␇, q␇a֮᪰̀̕b␇, q␇a֮᪰̀̕b␇, q␇a֮᪰̀̕b␇);
+Test_N(q␇à֮᪱̕b␇, q␇à֮᪱̕b␇, q␇à֮᪱̕b␇, q␇à֮᪱̕b␇, q␇à֮᪱̕b␇);
+Test_N(q␇a֮᪱̀̕b␇, q␇a֮᪱̀̕b␇, q␇a֮᪱̀̕b␇, q␇a֮᪱̀̕b␇, q␇a֮᪱̀̕b␇);
+Test_N(q␇à֮᪲̕b␇, q␇à֮᪲̕b␇, q␇à֮᪲̕b␇, q␇à֮᪲̕b␇, q␇à֮᪲̕b␇);
+Test_N(q␇a֮᪲̀̕b␇, q␇a֮᪲̀̕b␇, q␇a֮᪲̀̕b␇, q␇a֮᪲̀̕b␇, q␇a֮᪲̀̕b␇);
+Test_N(q␇à֮᪳̕b␇, q␇à֮᪳̕b␇, q␇à֮᪳̕b␇, q␇à֮᪳̕b␇, q␇à֮᪳̕b␇);
+Test_N(q␇a֮᪳̀̕b␇, q␇a֮᪳̀̕b␇, q␇a֮᪳̀̕b␇, q␇a֮᪳̀̕b␇, q␇a֮᪳̀̕b␇);
+Test_N(q␇à֮᪴̕b␇, q␇à֮᪴̕b␇, q␇à֮᪴̕b␇, q␇à֮᪴̕b␇, q␇à֮᪴̕b␇);
+Test_N(q␇a֮᪴̀̕b␇, q␇a֮᪴̀̕b␇, q␇a֮᪴̀̕b␇, q␇a֮᪴̀̕b␇, q␇a֮᪴̀̕b␇);
+Test_N(q␇a᷺̖᪵֚b␇, q␇a᷺̖᪵֚b␇, q␇a᷺̖᪵֚b␇, q␇a᷺̖᪵֚b␇, q␇a᷺̖᪵֚b␇);
+Test_N(q␇a᷺᪵̖֚b␇, q␇a᷺᪵̖֚b␇, q␇a᷺᪵̖֚b␇, q␇a᷺᪵̖֚b␇, q␇a᷺᪵̖֚b␇);
+Test_N(q␇a᷺̖᪶֚b␇, q␇a᷺̖᪶֚b␇, q␇a᷺̖᪶֚b␇, q␇a᷺̖᪶֚b␇, q␇a᷺̖᪶֚b␇);
+Test_N(q␇a᷺᪶̖֚b␇, q␇a᷺᪶̖֚b␇, q␇a᷺᪶̖֚b␇, q␇a᷺᪶̖֚b␇, q␇a᷺᪶̖֚b␇);
+Test_N(q␇a᷺̖᪷֚b␇, q␇a᷺̖᪷֚b␇, q␇a᷺̖᪷֚b␇, q␇a᷺̖᪷֚b␇, q␇a᷺̖᪷֚b␇);
+Test_N(q␇a᷺᪷̖֚b␇, q␇a᷺᪷̖֚b␇, q␇a᷺᪷̖֚b␇, q␇a᷺᪷̖֚b␇, q␇a᷺᪷̖֚b␇);
+Test_N(q␇a᷺̖᪸֚b␇, q␇a᷺̖᪸֚b␇, q␇a᷺̖᪸֚b␇, q␇a᷺̖᪸֚b␇, q␇a᷺̖᪸֚b␇);
+Test_N(q␇a᷺᪸̖֚b␇, q␇a᷺᪸̖֚b␇, q␇a᷺᪸̖֚b␇, q␇a᷺᪸̖֚b␇, q␇a᷺᪸̖֚b␇);
+Test_N(q␇a᷺̖᪹֚b␇, q␇a᷺̖᪹֚b␇, q␇a᷺̖᪹֚b␇, q␇a᷺̖᪹֚b␇, q␇a᷺̖᪹֚b␇);
+Test_N(q␇a᷺᪹̖֚b␇, q␇a᷺᪹̖֚b␇, q␇a᷺᪹̖֚b␇, q␇a᷺᪹̖֚b␇, q␇a᷺᪹̖֚b␇);
+Test_N(q␇a᷺̖᪺֚b␇, q␇a᷺̖᪺֚b␇, q␇a᷺̖᪺֚b␇, q␇a᷺̖᪺֚b␇, q␇a᷺̖᪺֚b␇);
+Test_N(q␇a᷺᪺̖֚b␇, q␇a᷺᪺̖֚b␇, q␇a᷺᪺̖֚b␇, q␇a᷺᪺̖֚b␇, q␇a᷺᪺̖֚b␇);
+Test_N(q␇à֮᪻̕b␇, q␇à֮᪻̕b␇, q␇à֮᪻̕b␇, q␇à֮᪻̕b␇, q␇à֮᪻̕b␇);
+Test_N(q␇a֮᪻̀̕b␇, q␇a֮᪻̀̕b␇, q␇a֮᪻̀̕b␇, q␇a֮᪻̀̕b␇, q␇a֮᪻̀̕b␇);
+Test_N(q␇à֮᪼̕b␇, q␇à֮᪼̕b␇, q␇à֮᪼̕b␇, q␇à֮᪼̕b␇, q␇à֮᪼̕b␇);
+Test_N(q␇a֮᪼̀̕b␇, q␇a֮᪼̀̕b␇, q␇a֮᪼̀̕b␇, q␇a֮᪼̀̕b␇, q␇a֮᪼̀̕b␇);
+Test_N(q␇a᷺̖᪽֚b␇, q␇a᷺̖᪽֚b␇, q␇a᷺̖᪽֚b␇, q␇a᷺̖᪽֚b␇, q␇a᷺̖᪽֚b␇);
+Test_N(q␇a᷺᪽̖֚b␇, q␇a᷺᪽̖֚b␇, q␇a᷺᪽̖֚b␇, q␇a᷺᪽̖֚b␇, q␇a᷺᪽̖֚b␇);
+Test_N(q␇a᷺̖ᪿ֚b␇, q␇a᷺̖ᪿ֚b␇, q␇a᷺̖ᪿ֚b␇, q␇a᷺̖ᪿ֚b␇, q␇a᷺̖ᪿ֚b␇);
+Test_N(q␇a᷺ᪿ̖֚b␇, q␇a᷺ᪿ̖֚b␇, q␇a᷺ᪿ̖֚b␇, q␇a᷺ᪿ̖֚b␇, q␇a᷺ᪿ̖֚b␇);
+Test_N(q␇a᷺̖ᫀ֚b␇, q␇a᷺̖ᫀ֚b␇, q␇a᷺̖ᫀ֚b␇, q␇a᷺̖ᫀ֚b␇, q␇a᷺̖ᫀ֚b␇);
+Test_N(q␇a᷺ᫀ̖֚b␇, q␇a᷺ᫀ̖֚b␇, q␇a᷺ᫀ̖֚b␇, q␇a᷺ᫀ̖֚b␇, q␇a᷺ᫀ̖֚b␇);
+Test_N(q␇à֮᫁̕b␇, q␇à֮᫁̕b␇, q␇à֮᫁̕b␇, q␇à֮᫁̕b␇, q␇à֮᫁̕b␇);
+Test_N(q␇a֮᫁̀̕b␇, q␇a֮᫁̀̕b␇, q␇a֮᫁̀̕b␇, q␇a֮᫁̀̕b␇, q␇a֮᫁̀̕b␇);
+Test_N(q␇à֮᫂̕b␇, q␇à֮᫂̕b␇, q␇à֮᫂̕b␇, q␇à֮᫂̕b␇, q␇à֮᫂̕b␇);
+Test_N(q␇a֮᫂̀̕b␇, q␇a֮᫂̀̕b␇, q␇a֮᫂̀̕b␇, q␇a֮᫂̀̕b␇, q␇a֮᫂̀̕b␇);
+Test_N(q␇a᷺̖᫃֚b␇, q␇a᷺̖᫃֚b␇, q␇a᷺̖᫃֚b␇, q␇a᷺̖᫃֚b␇, q␇a᷺̖᫃֚b␇);
+Test_N(q␇a᷺᫃̖֚b␇, q␇a᷺᫃̖֚b␇, q␇a᷺᫃̖֚b␇, q␇a᷺᫃̖֚b␇, q␇a᷺᫃̖֚b␇);
+Test_N(q␇a᷺̖᫄֚b␇, q␇a᷺̖᫄֚b␇, q␇a᷺̖᫄֚b␇, q␇a᷺̖᫄֚b␇, q␇a᷺̖᫄֚b␇);
+Test_N(q␇a᷺᫄̖֚b␇, q␇a᷺᫄̖֚b␇, q␇a᷺᫄̖֚b␇, q␇a᷺᫄̖֚b␇, q␇a᷺᫄̖֚b␇);
+Test_N(q␇à֮᫅̕b␇, q␇à֮᫅̕b␇, q␇à֮᫅̕b␇, q␇à֮᫅̕b␇, q␇à֮᫅̕b␇);
+Test_N(q␇a֮᫅̀̕b␇, q␇a֮᫅̀̕b␇, q␇a֮᫅̀̕b␇, q␇a֮᫅̀̕b␇, q␇a֮᫅̀̕b␇);
+Test_N(q␇à֮᫆̕b␇, q␇à֮᫆̕b␇, q␇à֮᫆̕b␇, q␇à֮᫆̕b␇, q␇à֮᫆̕b␇);
+Test_N(q␇a֮᫆̀̕b␇, q␇a֮᫆̀̕b␇, q␇a֮᫆̀̕b␇, q␇a֮᫆̀̕b␇, q␇a֮᫆̀̕b␇);
+Test_N(q␇à֮᫇̕b␇, q␇à֮᫇̕b␇, q␇à֮᫇̕b␇, q␇à֮᫇̕b␇, q␇à֮᫇̕b␇);
+Test_N(q␇a֮᫇̀̕b␇, q␇a֮᫇̀̕b␇, q␇a֮᫇̀̕b␇, q␇a֮᫇̀̕b␇, q␇a֮᫇̀̕b␇);
+Test_N(q␇à֮᫈̕b␇, q␇à֮᫈̕b␇, q␇à֮᫈̕b␇, q␇à֮᫈̕b␇, q␇à֮᫈̕b␇);
+Test_N(q␇a֮᫈̀̕b␇, q␇a֮᫈̀̕b␇, q␇a֮᫈̀̕b␇, q␇a֮᫈̀̕b␇, q␇a֮᫈̀̕b␇);
+Test_N(q␇à֮᫉̕b␇, q␇à֮᫉̕b␇, q␇à֮᫉̕b␇, q␇à֮᫉̕b␇, q␇à֮᫉̕b␇);
+Test_N(q␇a֮᫉̀̕b␇, q␇a֮᫉̀̕b␇, q␇a֮᫉̀̕b␇, q␇a֮᫉̀̕b␇, q␇a֮᫉̀̕b␇);
+Test_N(q␇a᷺̖᫊֚b␇, q␇a᷺̖᫊֚b␇, q␇a᷺̖᫊֚b␇, q␇a᷺̖᫊֚b␇, q␇a᷺̖᫊֚b␇);
+Test_N(q␇a᷺᫊̖֚b␇, q␇a᷺᫊̖֚b␇, q␇a᷺᫊̖֚b␇, q␇a᷺᫊̖֚b␇, q␇a᷺᫊̖֚b␇);
+Test_N(q␇à֮᫋̕b␇, q␇à֮᫋̕b␇, q␇à֮᫋̕b␇, q␇à֮᫋̕b␇, q␇à֮᫋̕b␇);
+Test_N(q␇a֮᫋̀̕b␇, q␇a֮᫋̀̕b␇, q␇a֮᫋̀̕b␇, q␇a֮᫋̀̕b␇, q␇a֮᫋̀̕b␇);
+Test_N(q␇à֮ᫌ̕b␇, q␇à֮ᫌ̕b␇, q␇à֮ᫌ̕b␇, q␇à֮ᫌ̕b␇, q␇à֮ᫌ̕b␇);
+Test_N(q␇a֮ᫌ̀̕b␇, q␇a֮ᫌ̀̕b␇, q␇a֮ᫌ̀̕b␇, q␇a֮ᫌ̀̕b␇, q␇a֮ᫌ̀̕b␇);
+Test_N(q␇à֮ᫍ̕b␇, q␇à֮ᫍ̕b␇, q␇à֮ᫍ̕b␇, q␇à֮ᫍ̕b␇, q␇à֮ᫍ̕b␇);
+Test_N(q␇a֮ᫍ̀̕b␇, q␇a֮ᫍ̀̕b␇, q␇a֮ᫍ̀̕b␇, q␇a֮ᫍ̀̕b␇, q␇a֮ᫍ̀̕b␇);
+Test_N(q␇à֮ᫎ̕b␇, q␇à֮ᫎ̕b␇, q␇à֮ᫎ̕b␇, q␇à֮ᫎ̕b␇, q␇à֮ᫎ̕b␇);
+Test_N(q␇a֮ᫎ̀̕b␇, q␇a֮ᫎ̀̕b␇, q␇a֮ᫎ̀̕b␇, q␇a֮ᫎ̀̕b␇, q␇a֮ᫎ̀̕b␇);
+Test_N(q␇a𖿰़᬴゙b␇, q␇a𖿰़᬴゙b␇, q␇a𖿰़᬴゙b␇, q␇a𖿰़᬴゙b␇, q␇a𖿰़᬴゙b␇);
+Test_N(q␇a𖿰᬴़゙b␇, q␇a𖿰᬴़゙b␇, q␇a𖿰᬴़゙b␇, q␇a𖿰᬴़゙b␇, q␇a𖿰᬴़゙b␇);
+Test_N(q␇a゙्᭄ְb␇, q␇a゙्᭄ְb␇, q␇a゙्᭄ְb␇, q␇a゙्᭄ְb␇, q␇a゙्᭄ְb␇);
+Test_N(q␇a゙᭄्ְb␇, q␇a゙᭄्ְb␇, q␇a゙᭄्ְb␇, q␇a゙᭄्ְb␇, q␇a゙᭄्ְb␇);
+Test_N(q␇à֮᭫̕b␇, q␇à֮᭫̕b␇, q␇à֮᭫̕b␇, q␇à֮᭫̕b␇, q␇à֮᭫̕b␇);
+Test_N(q␇a֮᭫̀̕b␇, q␇a֮᭫̀̕b␇, q␇a֮᭫̀̕b␇, q␇a֮᭫̀̕b␇, q␇a֮᭫̀̕b␇);
+Test_N(q␇a᷺̖᭬֚b␇, q␇a᷺̖᭬֚b␇, q␇a᷺̖᭬֚b␇, q␇a᷺̖᭬֚b␇, q␇a᷺̖᭬֚b␇);
+Test_N(q␇a᷺᭬̖֚b␇, q␇a᷺᭬̖֚b␇, q␇a᷺᭬̖֚b␇, q␇a᷺᭬̖֚b␇, q␇a᷺᭬̖֚b␇);
+Test_N(q␇à֮᭭̕b␇, q␇à֮᭭̕b␇, q␇à֮᭭̕b␇, q␇à֮᭭̕b␇, q␇à֮᭭̕b␇);
+Test_N(q␇a֮᭭̀̕b␇, q␇a֮᭭̀̕b␇, q␇a֮᭭̀̕b␇, q␇a֮᭭̀̕b␇, q␇a֮᭭̀̕b␇);
+Test_N(q␇à֮᭮̕b␇, q␇à֮᭮̕b␇, q␇à֮᭮̕b␇, q␇à֮᭮̕b␇, q␇à֮᭮̕b␇);
+Test_N(q␇a֮᭮̀̕b␇, q␇a֮᭮̀̕b␇, q␇a֮᭮̀̕b␇, q␇a֮᭮̀̕b␇, q␇a֮᭮̀̕b␇);
+Test_N(q␇à֮᭯̕b␇, q␇à֮᭯̕b␇, q␇à֮᭯̕b␇, q␇à֮᭯̕b␇, q␇à֮᭯̕b␇);
+Test_N(q␇a֮᭯̀̕b␇, q␇a֮᭯̀̕b␇, q␇a֮᭯̀̕b␇, q␇a֮᭯̀̕b␇, q␇a֮᭯̀̕b␇);
+Test_N(q␇à֮᭰̕b␇, q␇à֮᭰̕b␇, q␇à֮᭰̕b␇, q␇à֮᭰̕b␇, q␇à֮᭰̕b␇);
+Test_N(q␇a֮᭰̀̕b␇, q␇a֮᭰̀̕b␇, q␇a֮᭰̀̕b␇, q␇a֮᭰̀̕b␇, q␇a֮᭰̀̕b␇);
+Test_N(q␇à֮᭱̕b␇, q␇à֮᭱̕b␇, q␇à֮᭱̕b␇, q␇à֮᭱̕b␇, q␇à֮᭱̕b␇);
+Test_N(q␇a֮᭱̀̕b␇, q␇a֮᭱̀̕b␇, q␇a֮᭱̀̕b␇, q␇a֮᭱̀̕b␇, q␇a֮᭱̀̕b␇);
+Test_N(q␇à֮᭲̕b␇, q␇à֮᭲̕b␇, q␇à֮᭲̕b␇, q␇à֮᭲̕b␇, q␇à֮᭲̕b␇);
+Test_N(q␇a֮᭲̀̕b␇, q␇a֮᭲̀̕b␇, q␇a֮᭲̀̕b␇, q␇a֮᭲̀̕b␇, q␇a֮᭲̀̕b␇);
+Test_N(q␇à֮᭳̕b␇, q␇à֮᭳̕b␇, q␇à֮᭳̕b␇, q␇à֮᭳̕b␇, q␇à֮᭳̕b␇);
+Test_N(q␇a֮᭳̀̕b␇, q␇a֮᭳̀̕b␇, q␇a֮᭳̀̕b␇, q␇a֮᭳̀̕b␇, q␇a֮᭳̀̕b␇);
+Test_N(q␇a゙्᮪ְb␇, q␇a゙्᮪ְb␇, q␇a゙्᮪ְb␇, q␇a゙्᮪ְb␇, q␇a゙्᮪ְb␇);
+Test_N(q␇a゙᮪्ְb␇, q␇a゙᮪्ְb␇, q␇a゙᮪्ְb␇, q␇a゙᮪्ְb␇, q␇a゙᮪्ְb␇);
+Test_N(q␇a゙्᮫ְb␇, q␇a゙्᮫ְb␇, q␇a゙्᮫ְb␇, q␇a゙्᮫ְb␇, q␇a゙्᮫ְb␇);
+Test_N(q␇a゙᮫्ְb␇, q␇a゙᮫्ְb␇, q␇a゙᮫्ְb␇, q␇a゙᮫्ְb␇, q␇a゙᮫्ְb␇);
+Test_N(q␇a𖿰़᯦゙b␇, q␇a𖿰़᯦゙b␇, q␇a𖿰़᯦゙b␇, q␇a𖿰़᯦゙b␇, q␇a𖿰़᯦゙b␇);
+Test_N(q␇a𖿰᯦़゙b␇, q␇a𖿰᯦़゙b␇, q␇a𖿰᯦़゙b␇, q␇a𖿰᯦़゙b␇, q␇a𖿰᯦़゙b␇);
+Test_N(q␇a゙्᯲ְb␇, q␇a゙्᯲ְb␇, q␇a゙्᯲ְb␇, q␇a゙्᯲ְb␇, q␇a゙्᯲ְb␇);
+Test_N(q␇a゙᯲्ְb␇, q␇a゙᯲्ְb␇, q␇a゙᯲्ְb␇, q␇a゙᯲्ְb␇, q␇a゙᯲्ְb␇);
+Test_N(q␇a゙्᯳ְb␇, q␇a゙्᯳ְb␇, q␇a゙्᯳ְb␇, q␇a゙्᯳ְb␇, q␇a゙्᯳ְb␇);
+Test_N(q␇a゙᯳्ְb␇, q␇a゙᯳्ְb␇, q␇a゙᯳्ְb␇, q␇a゙᯳्ְb␇, q␇a゙᯳्ְb␇);
+Test_N(q␇a𖿰़᰷゙b␇, q␇a𖿰़᰷゙b␇, q␇a𖿰़᰷゙b␇, q␇a𖿰़᰷゙b␇, q␇a𖿰़᰷゙b␇);
+Test_N(q␇a𖿰᰷़゙b␇, q␇a𖿰᰷़゙b␇, q␇a𖿰᰷़゙b␇, q␇a𖿰᰷़゙b␇, q␇a𖿰᰷़゙b␇);
+Test_N(q␇à֮᳐̕b␇, q␇à֮᳐̕b␇, q␇à֮᳐̕b␇, q␇à֮᳐̕b␇, q␇à֮᳐̕b␇);
+Test_N(q␇a֮᳐̀̕b␇, q␇a֮᳐̀̕b␇, q␇a֮᳐̀̕b␇, q␇a֮᳐̀̕b␇, q␇a֮᳐̀̕b␇);
+Test_N(q␇à֮᳑̕b␇, q␇à֮᳑̕b␇, q␇à֮᳑̕b␇, q␇à֮᳑̕b␇, q␇à֮᳑̕b␇);
+Test_N(q␇a֮᳑̀̕b␇, q␇a֮᳑̀̕b␇, q␇a֮᳑̀̕b␇, q␇a֮᳑̀̕b␇, q␇a֮᳑̀̕b␇);
+Test_N(q␇à֮᳒̕b␇, q␇à֮᳒̕b␇, q␇à֮᳒̕b␇, q␇à֮᳒̕b␇, q␇à֮᳒̕b␇);
+Test_N(q␇a֮᳒̀̕b␇, q␇a֮᳒̀̕b␇, q␇a֮᳒̀̕b␇, q␇a֮᳒̀̕b␇, q␇a֮᳒̀̕b␇);
+Test_N(q␇a̴᳔𖿰b␇, q␇a̴᳔𖿰b␇, q␇a̴᳔𖿰b␇, q␇a̴᳔𖿰b␇, q␇a̴᳔𖿰b␇);
+Test_N(q␇a᳔̴𖿰b␇, q␇a᳔̴𖿰b␇, q␇a᳔̴𖿰b␇, q␇a᳔̴𖿰b␇, q␇a᳔̴𖿰b␇);
+Test_N(q␇a᷺̖᳕֚b␇, q␇a᷺̖᳕֚b␇, q␇a᷺̖᳕֚b␇, q␇a᷺̖᳕֚b␇, q␇a᷺̖᳕֚b␇);
+Test_N(q␇a᷺᳕̖֚b␇, q␇a᷺᳕̖֚b␇, q␇a᷺᳕̖֚b␇, q␇a᷺᳕̖֚b␇, q␇a᷺᳕̖֚b␇);
+Test_N(q␇a᷺̖᳖֚b␇, q␇a᷺̖᳖֚b␇, q␇a᷺̖᳖֚b␇, q␇a᷺̖᳖֚b␇, q␇a᷺̖᳖֚b␇);
+Test_N(q␇a᷺᳖̖֚b␇, q␇a᷺᳖̖֚b␇, q␇a᷺᳖̖֚b␇, q␇a᷺᳖̖֚b␇, q␇a᷺᳖̖֚b␇);
+Test_N(q␇a᷺̖᳗֚b␇, q␇a᷺̖᳗֚b␇, q␇a᷺̖᳗֚b␇, q␇a᷺̖᳗֚b␇, q␇a᷺̖᳗֚b␇);
+Test_N(q␇a᷺᳗̖֚b␇, q␇a᷺᳗̖֚b␇, q␇a᷺᳗̖֚b␇, q␇a᷺᳗̖֚b␇, q␇a᷺᳗̖֚b␇);
+Test_N(q␇a᷺̖᳘֚b␇, q␇a᷺̖᳘֚b␇, q␇a᷺̖᳘֚b␇, q␇a᷺̖᳘֚b␇, q␇a᷺̖᳘֚b␇);
+Test_N(q␇a᷺᳘̖֚b␇, q␇a᷺᳘̖֚b␇, q␇a᷺᳘̖֚b␇, q␇a᷺᳘̖֚b␇, q␇a᷺᳘̖֚b␇);
+Test_N(q␇a᷺̖᳙֚b␇, q␇a᷺̖᳙֚b␇, q␇a᷺̖᳙֚b␇, q␇a᷺̖᳙֚b␇, q␇a᷺̖᳙֚b␇);
+Test_N(q␇a᷺᳙̖֚b␇, q␇a᷺᳙̖֚b␇, q␇a᷺᳙̖֚b␇, q␇a᷺᳙̖֚b␇, q␇a᷺᳙̖֚b␇);
+Test_N(q␇à֮᳚̕b␇, q␇à֮᳚̕b␇, q␇à֮᳚̕b␇, q␇à֮᳚̕b␇, q␇à֮᳚̕b␇);
+Test_N(q␇a֮᳚̀̕b␇, q␇a֮᳚̀̕b␇, q␇a֮᳚̀̕b␇, q␇a֮᳚̀̕b␇, q␇a֮᳚̀̕b␇);
+Test_N(q␇à֮᳛̕b␇, q␇à֮᳛̕b␇, q␇à֮᳛̕b␇, q␇à֮᳛̕b␇, q␇à֮᳛̕b␇);
+Test_N(q␇a֮᳛̀̕b␇, q␇a֮᳛̀̕b␇, q␇a֮᳛̀̕b␇, q␇a֮᳛̀̕b␇, q␇a֮᳛̀̕b␇);
+Test_N(q␇a᷺̖᳜֚b␇, q␇a᷺̖᳜֚b␇, q␇a᷺̖᳜֚b␇, q␇a᷺̖᳜֚b␇, q␇a᷺̖᳜֚b␇);
+Test_N(q␇a᷺᳜̖֚b␇, q␇a᷺᳜̖֚b␇, q␇a᷺᳜̖֚b␇, q␇a᷺᳜̖֚b␇, q␇a᷺᳜̖֚b␇);
+Test_N(q␇a᷺̖᳝֚b␇, q␇a᷺̖᳝֚b␇, q␇a᷺̖᳝֚b␇, q␇a᷺̖᳝֚b␇, q␇a᷺̖᳝֚b␇);
+Test_N(q␇a᷺᳝̖֚b␇, q␇a᷺᳝̖֚b␇, q␇a᷺᳝̖֚b␇, q␇a᷺᳝̖֚b␇, q␇a᷺᳝̖֚b␇);
+Test_N(q␇a᷺̖᳞֚b␇, q␇a᷺̖᳞֚b␇, q␇a᷺̖᳞֚b␇, q␇a᷺̖᳞֚b␇, q␇a᷺̖᳞֚b␇);
+Test_N(q␇a᷺᳞̖֚b␇, q␇a᷺᳞̖֚b␇, q␇a᷺᳞̖֚b␇, q␇a᷺᳞̖֚b␇, q␇a᷺᳞̖֚b␇);
+Test_N(q␇a᷺̖᳟֚b␇, q␇a᷺̖᳟֚b␇, q␇a᷺̖᳟֚b␇, q␇a᷺̖᳟֚b␇, q␇a᷺̖᳟֚b␇);
+Test_N(q␇a᷺᳟̖֚b␇, q␇a᷺᳟̖֚b␇, q␇a᷺᳟̖֚b␇, q␇a᷺᳟̖֚b␇, q␇a᷺᳟̖֚b␇);
+Test_N(q␇à֮᳠̕b␇, q␇à֮᳠̕b␇, q␇à֮᳠̕b␇, q␇à֮᳠̕b␇, q␇à֮᳠̕b␇);
+Test_N(q␇a֮᳠̀̕b␇, q␇a֮᳠̀̕b␇, q␇a֮᳠̀̕b␇, q␇a֮᳠̀̕b␇, q␇a֮᳠̀̕b␇);
+Test_N(q␇a̴᳢𖿰b␇, q␇a̴᳢𖿰b␇, q␇a̴᳢𖿰b␇, q␇a̴᳢𖿰b␇, q␇a̴᳢𖿰b␇);
+Test_N(q␇a᳢̴𖿰b␇, q␇a᳢̴𖿰b␇, q␇a᳢̴𖿰b␇, q␇a᳢̴𖿰b␇, q␇a᳢̴𖿰b␇);
+Test_N(q␇a̴᳣𖿰b␇, q␇a̴᳣𖿰b␇, q␇a̴᳣𖿰b␇, q␇a̴᳣𖿰b␇, q␇a̴᳣𖿰b␇);
+Test_N(q␇a᳣̴𖿰b␇, q␇a᳣̴𖿰b␇, q␇a᳣̴𖿰b␇, q␇a᳣̴𖿰b␇, q␇a᳣̴𖿰b␇);
+Test_N(q␇a̴᳤𖿰b␇, q␇a̴᳤𖿰b␇, q␇a̴᳤𖿰b␇, q␇a̴᳤𖿰b␇, q␇a̴᳤𖿰b␇);
+Test_N(q␇a᳤̴𖿰b␇, q␇a᳤̴𖿰b␇, q␇a᳤̴𖿰b␇, q␇a᳤̴𖿰b␇, q␇a᳤̴𖿰b␇);
+Test_N(q␇a̴᳥𖿰b␇, q␇a̴᳥𖿰b␇, q␇a̴᳥𖿰b␇, q␇a̴᳥𖿰b␇, q␇a̴᳥𖿰b␇);
+Test_N(q␇a᳥̴𖿰b␇, q␇a᳥̴𖿰b␇, q␇a᳥̴𖿰b␇, q␇a᳥̴𖿰b␇, q␇a᳥̴𖿰b␇);
+Test_N(q␇a̴᳦𖿰b␇, q␇a̴᳦𖿰b␇, q␇a̴᳦𖿰b␇, q␇a̴᳦𖿰b␇, q␇a̴᳦𖿰b␇);
+Test_N(q␇a᳦̴𖿰b␇, q␇a᳦̴𖿰b␇, q␇a᳦̴𖿰b␇, q␇a᳦̴𖿰b␇, q␇a᳦̴𖿰b␇);
+Test_N(q␇a̴᳧𖿰b␇, q␇a̴᳧𖿰b␇, q␇a̴᳧𖿰b␇, q␇a̴᳧𖿰b␇, q␇a̴᳧𖿰b␇);
+Test_N(q␇a᳧̴𖿰b␇, q␇a᳧̴𖿰b␇, q␇a᳧̴𖿰b␇, q␇a᳧̴𖿰b␇, q␇a᳧̴𖿰b␇);
+Test_N(q␇a̴᳨𖿰b␇, q␇a̴᳨𖿰b␇, q␇a̴᳨𖿰b␇, q␇a̴᳨𖿰b␇, q␇a̴᳨𖿰b␇);
+Test_N(q␇a᳨̴𖿰b␇, q␇a᳨̴𖿰b␇, q␇a᳨̴𖿰b␇, q␇a᳨̴𖿰b␇, q␇a᳨̴𖿰b␇);
+Test_N(q␇a᷺̖᳭֚b␇, q␇a᷺̖᳭֚b␇, q␇a᷺̖᳭֚b␇, q␇a᷺̖᳭֚b␇, q␇a᷺̖᳭֚b␇);
+Test_N(q␇a᷺᳭̖֚b␇, q␇a᷺᳭̖֚b␇, q␇a᷺᳭̖֚b␇, q␇a᷺᳭̖֚b␇, q␇a᷺᳭̖֚b␇);
+Test_N(q␇à֮᳴̕b␇, q␇à֮᳴̕b␇, q␇à֮᳴̕b␇, q␇à֮᳴̕b␇, q␇à֮᳴̕b␇);
+Test_N(q␇a֮᳴̀̕b␇, q␇a֮᳴̀̕b␇, q␇a֮᳴̀̕b␇, q␇a֮᳴̀̕b␇, q␇a֮᳴̀̕b␇);
+Test_N(q␇à֮᳸̕b␇, q␇à֮᳸̕b␇, q␇à֮᳸̕b␇, q␇à֮᳸̕b␇, q␇à֮᳸̕b␇);
+Test_N(q␇a֮᳸̀̕b␇, q␇a֮᳸̀̕b␇, q␇a֮᳸̀̕b␇, q␇a֮᳸̀̕b␇, q␇a֮᳸̀̕b␇);
+Test_N(q␇à֮᳹̕b␇, q␇à֮᳹̕b␇, q␇à֮᳹̕b␇, q␇à֮᳹̕b␇, q␇à֮᳹̕b␇);
+Test_N(q␇a֮᳹̀̕b␇, q␇a֮᳹̀̕b␇, q␇a֮᳹̀̕b␇, q␇a֮᳹̀̕b␇, q␇a֮᳹̀̕b␇);
+Test_N(q␇à֮᷀̕b␇, q␇à֮᷀̕b␇, q␇à֮᷀̕b␇, q␇à֮᷀̕b␇, q␇à֮᷀̕b␇);
+Test_N(q␇a֮᷀̀̕b␇, q␇a֮᷀̀̕b␇, q␇a֮᷀̀̕b␇, q␇a֮᷀̀̕b␇, q␇a֮᷀̀̕b␇);
+Test_N(q␇à֮᷁̕b␇, q␇à֮᷁̕b␇, q␇à֮᷁̕b␇, q␇à֮᷁̕b␇, q␇à֮᷁̕b␇);
+Test_N(q␇a֮᷁̀̕b␇, q␇a֮᷁̀̕b␇, q␇a֮᷁̀̕b␇, q␇a֮᷁̀̕b␇, q␇a֮᷁̀̕b␇);
+Test_N(q␇a᷺̖᷂֚b␇, q␇a᷺̖᷂֚b␇, q␇a᷺̖᷂֚b␇, q␇a᷺̖᷂֚b␇, q␇a᷺̖᷂֚b␇);
+Test_N(q␇a᷺᷂̖֚b␇, q␇a᷺᷂̖֚b␇, q␇a᷺᷂̖֚b␇, q␇a᷺᷂̖֚b␇, q␇a᷺᷂̖֚b␇);
+Test_N(q␇à֮᷃̕b␇, q␇à֮᷃̕b␇, q␇à֮᷃̕b␇, q␇à֮᷃̕b␇, q␇à֮᷃̕b␇);
+Test_N(q␇a֮᷃̀̕b␇, q␇a֮᷃̀̕b␇, q␇a֮᷃̀̕b␇, q␇a֮᷃̀̕b␇, q␇a֮᷃̀̕b␇);
+Test_N(q␇à֮᷄̕b␇, q␇à֮᷄̕b␇, q␇à֮᷄̕b␇, q␇à֮᷄̕b␇, q␇à֮᷄̕b␇);
+Test_N(q␇a֮᷄̀̕b␇, q␇a֮᷄̀̕b␇, q␇a֮᷄̀̕b␇, q␇a֮᷄̀̕b␇, q␇a֮᷄̀̕b␇);
+Test_N(q␇à֮᷅̕b␇, q␇à֮᷅̕b␇, q␇à֮᷅̕b␇, q␇à֮᷅̕b␇, q␇à֮᷅̕b␇);
+Test_N(q␇a֮᷅̀̕b␇, q␇a֮᷅̀̕b␇, q␇a֮᷅̀̕b␇, q␇a֮᷅̀̕b␇, q␇a֮᷅̀̕b␇);
+Test_N(q␇à֮᷆̕b␇, q␇à֮᷆̕b␇, q␇à֮᷆̕b␇, q␇à֮᷆̕b␇, q␇à֮᷆̕b␇);
+Test_N(q␇a֮᷆̀̕b␇, q␇a֮᷆̀̕b␇, q␇a֮᷆̀̕b␇, q␇a֮᷆̀̕b␇, q␇a֮᷆̀̕b␇);
+Test_N(q␇à֮᷇̕b␇, q␇à֮᷇̕b␇, q␇à֮᷇̕b␇, q␇à֮᷇̕b␇, q␇à֮᷇̕b␇);
+Test_N(q␇a֮᷇̀̕b␇, q␇a֮᷇̀̕b␇, q␇a֮᷇̀̕b␇, q␇a֮᷇̀̕b␇, q␇a֮᷇̀̕b␇);
+Test_N(q␇à֮᷈̕b␇, q␇à֮᷈̕b␇, q␇à֮᷈̕b␇, q␇à֮᷈̕b␇, q␇à֮᷈̕b␇);
+Test_N(q␇a֮᷈̀̕b␇, q␇a֮᷈̀̕b␇, q␇a֮᷈̀̕b␇, q␇a֮᷈̀̕b␇, q␇a֮᷈̀̕b␇);
+Test_N(q␇à֮᷉̕b␇, q␇à֮᷉̕b␇, q␇à֮᷉̕b␇, q␇à֮᷉̕b␇, q␇à֮᷉̕b␇);
+Test_N(q␇a֮᷉̀̕b␇, q␇a֮᷉̀̕b␇, q␇a֮᷉̀̕b␇, q␇a֮᷉̀̕b␇, q␇a֮᷉̀̕b␇);
+Test_N(q␇a᷺̖᷊֚b␇, q␇a᷺̖᷊֚b␇, q␇a᷺̖᷊֚b␇, q␇a᷺̖᷊֚b␇, q␇a᷺̖᷊֚b␇);
+Test_N(q␇a᷺᷊̖֚b␇, q␇a᷺᷊̖֚b␇, q␇a᷺᷊̖֚b␇, q␇a᷺᷊̖֚b␇, q␇a᷺᷊̖֚b␇);
+Test_N(q␇à֮᷋̕b␇, q␇à֮᷋̕b␇, q␇à֮᷋̕b␇, q␇à֮᷋̕b␇, q␇à֮᷋̕b␇);
+Test_N(q␇a֮᷋̀̕b␇, q␇a֮᷋̀̕b␇, q␇a֮᷋̀̕b␇, q␇a֮᷋̀̕b␇, q␇a֮᷋̀̕b␇);
+Test_N(q␇à֮᷌̕b␇, q␇à֮᷌̕b␇, q␇à֮᷌̕b␇, q␇à֮᷌̕b␇, q␇à֮᷌̕b␇);
+Test_N(q␇a֮᷌̀̕b␇, q␇a֮᷌̀̕b␇, q␇a֮᷌̀̕b␇, q␇a֮᷌̀̕b␇, q␇a֮᷌̀̕b␇);
+Test_N(q␇a͜͝᷍ͅb␇, q␇a͜͝᷍ͅb␇, q␇a͜͝᷍ͅb␇, q␇a͜͝᷍ͅb␇, q␇a͜͝᷍ͅb␇);
+Test_N(q␇a͜᷍͝ͅb␇, q␇a͜᷍͝ͅb␇, q␇a͜᷍͝ͅb␇, q␇a͜᷍͝ͅb␇, q␇a͜᷍͝ͅb␇);
+Test_N(q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇);
+Test_N(q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇, q␇a̡᷎᷎̛b␇);
+Test_N(q␇a᷺̖᷏֚b␇, q␇a᷺̖᷏֚b␇, q␇a᷺̖᷏֚b␇, q␇a᷺̖᷏֚b␇, q␇a᷺̖᷏֚b␇);
+Test_N(q␇a᷺᷏̖֚b␇, q␇a᷺᷏̖֚b␇, q␇a᷺᷏̖֚b␇, q␇a᷺᷏̖֚b␇, q␇a᷺᷏̖֚b␇);
+Test_N(q␇aུ̡᷐᷎b␇, q␇aུ̡᷐᷎b␇, q␇aུ̡᷐᷎b␇, q␇aུ̡᷐᷎b␇, q␇aུ̡᷐᷎b␇);
+Test_N(q␇aུ᷐̡᷎b␇, q␇aུ᷐̡᷎b␇, q␇aུ᷐̡᷎b␇, q␇aུ᷐̡᷎b␇, q␇aུ᷐̡᷎b␇);
+Test_N(q␇à֮᷑̕b␇, q␇à֮᷑̕b␇, q␇à֮᷑̕b␇, q␇à֮᷑̕b␇, q␇à֮᷑̕b␇);
+Test_N(q␇a֮᷑̀̕b␇, q␇a֮᷑̀̕b␇, q␇a֮᷑̀̕b␇, q␇a֮᷑̀̕b␇, q␇a֮᷑̀̕b␇);
+Test_N(q␇à֮᷒̕b␇, q␇à֮᷒̕b␇, q␇à֮᷒̕b␇, q␇à֮᷒̕b␇, q␇à֮᷒̕b␇);
+Test_N(q␇a֮᷒̀̕b␇, q␇a֮᷒̀̕b␇, q␇a֮᷒̀̕b␇, q␇a֮᷒̀̕b␇, q␇a֮᷒̀̕b␇);
+Test_N(q␇à֮ᷓ̕b␇, q␇à֮ᷓ̕b␇, q␇à֮ᷓ̕b␇, q␇à֮ᷓ̕b␇, q␇à֮ᷓ̕b␇);
+Test_N(q␇a֮ᷓ̀̕b␇, q␇a֮ᷓ̀̕b␇, q␇a֮ᷓ̀̕b␇, q␇a֮ᷓ̀̕b␇, q␇a֮ᷓ̀̕b␇);
+Test_N(q␇à֮ᷔ̕b␇, q␇à֮ᷔ̕b␇, q␇à֮ᷔ̕b␇, q␇à֮ᷔ̕b␇, q␇à֮ᷔ̕b␇);
+Test_N(q␇a֮ᷔ̀̕b␇, q␇a֮ᷔ̀̕b␇, q␇a֮ᷔ̀̕b␇, q␇a֮ᷔ̀̕b␇, q␇a֮ᷔ̀̕b␇);
+Test_N(q␇à֮ᷕ̕b␇, q␇à֮ᷕ̕b␇, q␇à֮ᷕ̕b␇, q␇à֮ᷕ̕b␇, q␇à֮ᷕ̕b␇);
+Test_N(q␇a֮ᷕ̀̕b␇, q␇a֮ᷕ̀̕b␇, q␇a֮ᷕ̀̕b␇, q␇a֮ᷕ̀̕b␇, q␇a֮ᷕ̀̕b␇);
+Test_N(q␇à֮ᷖ̕b␇, q␇à֮ᷖ̕b␇, q␇à֮ᷖ̕b␇, q␇à֮ᷖ̕b␇, q␇à֮ᷖ̕b␇);
+Test_N(q␇a֮ᷖ̀̕b␇, q␇a֮ᷖ̀̕b␇, q␇a֮ᷖ̀̕b␇, q␇a֮ᷖ̀̕b␇, q␇a֮ᷖ̀̕b␇);
+Test_N(q␇à֮ᷗ̕b␇, q␇à֮ᷗ̕b␇, q␇à֮ᷗ̕b␇, q␇à֮ᷗ̕b␇, q␇à֮ᷗ̕b␇);
+Test_N(q␇a֮ᷗ̀̕b␇, q␇a֮ᷗ̀̕b␇, q␇a֮ᷗ̀̕b␇, q␇a֮ᷗ̀̕b␇, q␇a֮ᷗ̀̕b␇);
+Test_N(q␇à֮ᷘ̕b␇, q␇à֮ᷘ̕b␇, q␇à֮ᷘ̕b␇, q␇à֮ᷘ̕b␇, q␇à֮ᷘ̕b␇);
+Test_N(q␇a֮ᷘ̀̕b␇, q␇a֮ᷘ̀̕b␇, q␇a֮ᷘ̀̕b␇, q␇a֮ᷘ̀̕b␇, q␇a֮ᷘ̀̕b␇);
+Test_N(q␇à֮ᷙ̕b␇, q␇à֮ᷙ̕b␇, q␇à֮ᷙ̕b␇, q␇à֮ᷙ̕b␇, q␇à֮ᷙ̕b␇);
+Test_N(q␇a֮ᷙ̀̕b␇, q␇a֮ᷙ̀̕b␇, q␇a֮ᷙ̀̕b␇, q␇a֮ᷙ̀̕b␇, q␇a֮ᷙ̀̕b␇);
+Test_N(q␇à֮ᷚ̕b␇, q␇à֮ᷚ̕b␇, q␇à֮ᷚ̕b␇, q␇à֮ᷚ̕b␇, q␇à֮ᷚ̕b␇);
+Test_N(q␇a֮ᷚ̀̕b␇, q␇a֮ᷚ̀̕b␇, q␇a֮ᷚ̀̕b␇, q␇a֮ᷚ̀̕b␇, q␇a֮ᷚ̀̕b␇);
+Test_N(q␇à֮ᷛ̕b␇, q␇à֮ᷛ̕b␇, q␇à֮ᷛ̕b␇, q␇à֮ᷛ̕b␇, q␇à֮ᷛ̕b␇);
+Test_N(q␇a֮ᷛ̀̕b␇, q␇a֮ᷛ̀̕b␇, q␇a֮ᷛ̀̕b␇, q␇a֮ᷛ̀̕b␇, q␇a֮ᷛ̀̕b␇);
+Test_N(q␇à֮ᷜ̕b␇, q␇à֮ᷜ̕b␇, q␇à֮ᷜ̕b␇, q␇à֮ᷜ̕b␇, q␇à֮ᷜ̕b␇);
+Test_N(q␇a֮ᷜ̀̕b␇, q␇a֮ᷜ̀̕b␇, q␇a֮ᷜ̀̕b␇, q␇a֮ᷜ̀̕b␇, q␇a֮ᷜ̀̕b␇);
+Test_N(q␇à֮ᷝ̕b␇, q␇à֮ᷝ̕b␇, q␇à֮ᷝ̕b␇, q␇à֮ᷝ̕b␇, q␇à֮ᷝ̕b␇);
+Test_N(q␇a֮ᷝ̀̕b␇, q␇a֮ᷝ̀̕b␇, q␇a֮ᷝ̀̕b␇, q␇a֮ᷝ̀̕b␇, q␇a֮ᷝ̀̕b␇);
+Test_N(q␇à֮ᷞ̕b␇, q␇à֮ᷞ̕b␇, q␇à֮ᷞ̕b␇, q␇à֮ᷞ̕b␇, q␇à֮ᷞ̕b␇);
+Test_N(q␇a֮ᷞ̀̕b␇, q␇a֮ᷞ̀̕b␇, q␇a֮ᷞ̀̕b␇, q␇a֮ᷞ̀̕b␇, q␇a֮ᷞ̀̕b␇);
+Test_N(q␇à֮ᷟ̕b␇, q␇à֮ᷟ̕b␇, q␇à֮ᷟ̕b␇, q␇à֮ᷟ̕b␇, q␇à֮ᷟ̕b␇);
+Test_N(q␇a֮ᷟ̀̕b␇, q␇a֮ᷟ̀̕b␇, q␇a֮ᷟ̀̕b␇, q␇a֮ᷟ̀̕b␇, q␇a֮ᷟ̀̕b␇);
+Test_N(q␇à֮ᷠ̕b␇, q␇à֮ᷠ̕b␇, q␇à֮ᷠ̕b␇, q␇à֮ᷠ̕b␇, q␇à֮ᷠ̕b␇);
+Test_N(q␇a֮ᷠ̀̕b␇, q␇a֮ᷠ̀̕b␇, q␇a֮ᷠ̀̕b␇, q␇a֮ᷠ̀̕b␇, q␇a֮ᷠ̀̕b␇);
+Test_N(q␇à֮ᷡ̕b␇, q␇à֮ᷡ̕b␇, q␇à֮ᷡ̕b␇, q␇à֮ᷡ̕b␇, q␇à֮ᷡ̕b␇);
+Test_N(q␇a֮ᷡ̀̕b␇, q␇a֮ᷡ̀̕b␇, q␇a֮ᷡ̀̕b␇, q␇a֮ᷡ̀̕b␇, q␇a֮ᷡ̀̕b␇);
+Test_N(q␇à֮ᷢ̕b␇, q␇à֮ᷢ̕b␇, q␇à֮ᷢ̕b␇, q␇à֮ᷢ̕b␇, q␇à֮ᷢ̕b␇);
+Test_N(q␇a֮ᷢ̀̕b␇, q␇a֮ᷢ̀̕b␇, q␇a֮ᷢ̀̕b␇, q␇a֮ᷢ̀̕b␇, q␇a֮ᷢ̀̕b␇);
+Test_N(q␇à֮ᷣ̕b␇, q␇à֮ᷣ̕b␇, q␇à֮ᷣ̕b␇, q␇à֮ᷣ̕b␇, q␇à֮ᷣ̕b␇);
+Test_N(q␇a֮ᷣ̀̕b␇, q␇a֮ᷣ̀̕b␇, q␇a֮ᷣ̀̕b␇, q␇a֮ᷣ̀̕b␇, q␇a֮ᷣ̀̕b␇);
+Test_N(q␇à֮ᷤ̕b␇, q␇à֮ᷤ̕b␇, q␇à֮ᷤ̕b␇, q␇à֮ᷤ̕b␇, q␇à֮ᷤ̕b␇);
+Test_N(q␇a֮ᷤ̀̕b␇, q␇a֮ᷤ̀̕b␇, q␇a֮ᷤ̀̕b␇, q␇a֮ᷤ̀̕b␇, q␇a֮ᷤ̀̕b␇);
+Test_N(q␇à֮ᷥ̕b␇, q␇à֮ᷥ̕b␇, q␇à֮ᷥ̕b␇, q␇à֮ᷥ̕b␇, q␇à֮ᷥ̕b␇);
+Test_N(q␇a֮ᷥ̀̕b␇, q␇a֮ᷥ̀̕b␇, q␇a֮ᷥ̀̕b␇, q␇a֮ᷥ̀̕b␇, q␇a֮ᷥ̀̕b␇);
+Test_N(q␇à֮ᷦ̕b␇, q␇à֮ᷦ̕b␇, q␇à֮ᷦ̕b␇, q␇à֮ᷦ̕b␇, q␇à֮ᷦ̕b␇);
+Test_N(q␇a֮ᷦ̀̕b␇, q␇a֮ᷦ̀̕b␇, q␇a֮ᷦ̀̕b␇, q␇a֮ᷦ̀̕b␇, q␇a֮ᷦ̀̕b␇);
+Test_N(q␇à֮ᷧ̕b␇, q␇à֮ᷧ̕b␇, q␇à֮ᷧ̕b␇, q␇à֮ᷧ̕b␇, q␇à֮ᷧ̕b␇);
+Test_N(q␇a֮ᷧ̀̕b␇, q␇a֮ᷧ̀̕b␇, q␇a֮ᷧ̀̕b␇, q␇a֮ᷧ̀̕b␇, q␇a֮ᷧ̀̕b␇);
+Test_N(q␇à֮ᷨ̕b␇, q␇à֮ᷨ̕b␇, q␇à֮ᷨ̕b␇, q␇à֮ᷨ̕b␇, q␇à֮ᷨ̕b␇);
+Test_N(q␇a֮ᷨ̀̕b␇, q␇a֮ᷨ̀̕b␇, q␇a֮ᷨ̀̕b␇, q␇a֮ᷨ̀̕b␇, q␇a֮ᷨ̀̕b␇);
+Test_N(q␇à֮ᷩ̕b␇, q␇à֮ᷩ̕b␇, q␇à֮ᷩ̕b␇, q␇à֮ᷩ̕b␇, q␇à֮ᷩ̕b␇);
+Test_N(q␇a֮ᷩ̀̕b␇, q␇a֮ᷩ̀̕b␇, q␇a֮ᷩ̀̕b␇, q␇a֮ᷩ̀̕b␇, q␇a֮ᷩ̀̕b␇);
+Test_N(q␇à֮ᷪ̕b␇, q␇à֮ᷪ̕b␇, q␇à֮ᷪ̕b␇, q␇à֮ᷪ̕b␇, q␇à֮ᷪ̕b␇);
+Test_N(q␇a֮ᷪ̀̕b␇, q␇a֮ᷪ̀̕b␇, q␇a֮ᷪ̀̕b␇, q␇a֮ᷪ̀̕b␇, q␇a֮ᷪ̀̕b␇);
+Test_N(q␇à֮ᷫ̕b␇, q␇à֮ᷫ̕b␇, q␇à֮ᷫ̕b␇, q␇à֮ᷫ̕b␇, q␇à֮ᷫ̕b␇);
+Test_N(q␇a֮ᷫ̀̕b␇, q␇a֮ᷫ̀̕b␇, q␇a֮ᷫ̀̕b␇, q␇a֮ᷫ̀̕b␇, q␇a֮ᷫ̀̕b␇);
+Test_N(q␇à֮ᷬ̕b␇, q␇à֮ᷬ̕b␇, q␇à֮ᷬ̕b␇, q␇à֮ᷬ̕b␇, q␇à֮ᷬ̕b␇);
+Test_N(q␇a֮ᷬ̀̕b␇, q␇a֮ᷬ̀̕b␇, q␇a֮ᷬ̀̕b␇, q␇a֮ᷬ̀̕b␇, q␇a֮ᷬ̀̕b␇);
+Test_N(q␇à֮ᷭ̕b␇, q␇à֮ᷭ̕b␇, q␇à֮ᷭ̕b␇, q␇à֮ᷭ̕b␇, q␇à֮ᷭ̕b␇);
+Test_N(q␇a֮ᷭ̀̕b␇, q␇a֮ᷭ̀̕b␇, q␇a֮ᷭ̀̕b␇, q␇a֮ᷭ̀̕b␇, q␇a֮ᷭ̀̕b␇);
+Test_N(q␇à֮ᷮ̕b␇, q␇à֮ᷮ̕b␇, q␇à֮ᷮ̕b␇, q␇à֮ᷮ̕b␇, q␇à֮ᷮ̕b␇);
+Test_N(q␇a֮ᷮ̀̕b␇, q␇a֮ᷮ̀̕b␇, q␇a֮ᷮ̀̕b␇, q␇a֮ᷮ̀̕b␇, q␇a֮ᷮ̀̕b␇);
+Test_N(q␇à֮ᷯ̕b␇, q␇à֮ᷯ̕b␇, q␇à֮ᷯ̕b␇, q␇à֮ᷯ̕b␇, q␇à֮ᷯ̕b␇);
+Test_N(q␇a֮ᷯ̀̕b␇, q␇a֮ᷯ̀̕b␇, q␇a֮ᷯ̀̕b␇, q␇a֮ᷯ̀̕b␇, q␇a֮ᷯ̀̕b␇);
+Test_N(q␇à֮ᷰ̕b␇, q␇à֮ᷰ̕b␇, q␇à֮ᷰ̕b␇, q␇à֮ᷰ̕b␇, q␇à֮ᷰ̕b␇);
+Test_N(q␇a֮ᷰ̀̕b␇, q␇a֮ᷰ̀̕b␇, q␇a֮ᷰ̀̕b␇, q␇a֮ᷰ̀̕b␇, q␇a֮ᷰ̀̕b␇);
+Test_N(q␇à֮ᷱ̕b␇, q␇à֮ᷱ̕b␇, q␇à֮ᷱ̕b␇, q␇à֮ᷱ̕b␇, q␇à֮ᷱ̕b␇);
+Test_N(q␇a֮ᷱ̀̕b␇, q␇a֮ᷱ̀̕b␇, q␇a֮ᷱ̀̕b␇, q␇a֮ᷱ̀̕b␇, q␇a֮ᷱ̀̕b␇);
+Test_N(q␇à֮ᷲ̕b␇, q␇à֮ᷲ̕b␇, q␇à֮ᷲ̕b␇, q␇à֮ᷲ̕b␇, q␇à֮ᷲ̕b␇);
+Test_N(q␇a֮ᷲ̀̕b␇, q␇a֮ᷲ̀̕b␇, q␇a֮ᷲ̀̕b␇, q␇a֮ᷲ̀̕b␇, q␇a֮ᷲ̀̕b␇);
+Test_N(q␇à֮ᷳ̕b␇, q␇à֮ᷳ̕b␇, q␇à֮ᷳ̕b␇, q␇à֮ᷳ̕b␇, q␇à֮ᷳ̕b␇);
+Test_N(q␇a֮ᷳ̀̕b␇, q␇a֮ᷳ̀̕b␇, q␇a֮ᷳ̀̕b␇, q␇a֮ᷳ̀̕b␇, q␇a֮ᷳ̀̕b␇);
+Test_N(q␇à֮ᷴ̕b␇, q␇à֮ᷴ̕b␇, q␇à֮ᷴ̕b␇, q␇à֮ᷴ̕b␇, q␇à֮ᷴ̕b␇);
+Test_N(q␇a֮ᷴ̀̕b␇, q␇a֮ᷴ̀̕b␇, q␇a֮ᷴ̀̕b␇, q␇a֮ᷴ̀̕b␇, q␇a֮ᷴ̀̕b␇);
+Test_N(q␇à֮᷵̕b␇, q␇à֮᷵̕b␇, q␇à֮᷵̕b␇, q␇à֮᷵̕b␇, q␇à֮᷵̕b␇);
+Test_N(q␇a֮᷵̀̕b␇, q␇a֮᷵̀̕b␇, q␇a֮᷵̀̕b␇, q␇a֮᷵̀̕b␇, q␇a֮᷵̀̕b␇);
+Test_N(q␇à̕᷶͜b␇, q␇à̕᷶͜b␇, q␇à̕᷶͜b␇, q␇à̕᷶͜b␇, q␇à̕᷶͜b␇);
+Test_N(q␇à᷶̕͜b␇, q␇à᷶̕͜b␇, q␇à᷶̕͜b␇, q␇à᷶̕͜b␇, q␇à᷶̕͜b␇);
+Test_N(q␇à𝅭֮᷷b␇, q␇à𝅭֮᷷b␇, q␇à𝅭֮᷷b␇, q␇à𝅭֮᷷b␇, q␇à𝅭֮᷷b␇);
+Test_N(q␇à𝅭᷷֮b␇, q␇à𝅭᷷֮b␇, q␇à𝅭᷷֮b␇, q␇à𝅭᷷֮b␇, q␇à𝅭᷷֮b␇);
+Test_N(q␇à𝅭֮᷸b␇, q␇à𝅭֮᷸b␇, q␇à𝅭֮᷸b␇, q␇à𝅭֮᷸b␇, q␇à𝅭֮᷸b␇);
+Test_N(q␇à𝅭᷸֮b␇, q␇à𝅭᷸֮b␇, q␇à𝅭᷸֮b␇, q␇à𝅭᷸֮b␇, q␇à𝅭᷸֮b␇);
+Test_N(q␇a᷺̖᷹֚b␇, q␇a᷺̖᷹֚b␇, q␇a᷺̖᷹֚b␇, q␇a᷺̖᷹֚b␇, q␇a᷺̖᷹֚b␇);
+Test_N(q␇a᷺᷹̖֚b␇, q␇a᷺᷹̖֚b␇, q␇a᷺᷹̖֚b␇, q␇a᷺᷹̖֚b␇, q␇a᷺᷹̖֚b␇);
+Test_N(q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇);
+Test_N(q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇, q␇a̛᷺᷺̖b␇);
+Test_N(q␇à֮᷻̕b␇, q␇à֮᷻̕b␇, q␇à֮᷻̕b␇, q␇à֮᷻̕b␇, q␇à֮᷻̕b␇);
+Test_N(q␇a֮᷻̀̕b␇, q␇a֮᷻̀̕b␇, q␇a֮᷻̀̕b␇, q␇a֮᷻̀̕b␇, q␇a֮᷻̀̕b␇);
+Test_N(q␇a̕͜᷼͝b␇, q␇a̕͜᷼͝b␇, q␇a̕͜᷼͝b␇, q␇a̕͜᷼͝b␇, q␇a̕͜᷼͝b␇);
+Test_N(q␇a̕᷼͜͝b␇, q␇a̕᷼͜͝b␇, q␇a̕᷼͜͝b␇, q␇a̕᷼͜͝b␇, q␇a̕᷼͜͝b␇);
+Test_N(q␇a᷺̖᷽֚b␇, q␇a᷺̖᷽֚b␇, q␇a᷺̖᷽֚b␇, q␇a᷺̖᷽֚b␇, q␇a᷺̖᷽֚b␇);
+Test_N(q␇a᷺᷽̖֚b␇, q␇a᷺᷽̖֚b␇, q␇a᷺᷽̖֚b␇, q␇a᷺᷽̖֚b␇, q␇a᷺᷽̖֚b␇);
+Test_N(q␇à֮᷾̕b␇, q␇à֮᷾̕b␇, q␇à֮᷾̕b␇, q␇à֮᷾̕b␇, q␇à֮᷾̕b␇);
+Test_N(q␇a֮᷾̀̕b␇, q␇a֮᷾̀̕b␇, q␇a֮᷾̀̕b␇, q␇a֮᷾̀̕b␇, q␇a֮᷾̀̕b␇);
+Test_N(q␇a᷺̖᷿֚b␇, q␇a᷺̖᷿֚b␇, q␇a᷺̖᷿֚b␇, q␇a᷺̖᷿֚b␇, q␇a᷺̖᷿֚b␇);
+Test_N(q␇a᷺᷿̖֚b␇, q␇a᷺᷿̖֚b␇, q␇a᷺᷿̖֚b␇, q␇a᷺᷿̖֚b␇, q␇a᷺᷿̖֚b␇);
+Test_N(q␇à֮⃐̕b␇, q␇à֮⃐̕b␇, q␇à֮⃐̕b␇, q␇à֮⃐̕b␇, q␇à֮⃐̕b␇);
+Test_N(q␇a֮⃐̀̕b␇, q␇a֮⃐̀̕b␇, q␇a֮⃐̀̕b␇, q␇a֮⃐̀̕b␇, q␇a֮⃐̀̕b␇);
+Test_N(q␇à֮⃑̕b␇, q␇à֮⃑̕b␇, q␇à֮⃑̕b␇, q␇à֮⃑̕b␇, q␇à֮⃑̕b␇);
+Test_N(q␇a֮⃑̀̕b␇, q␇a֮⃑̀̕b␇, q␇a֮⃑̀̕b␇, q␇a֮⃑̀̕b␇, q␇a֮⃑̀̕b␇);
+Test_N(q␇a̴⃒𖿰b␇, q␇a̴⃒𖿰b␇, q␇a̴⃒𖿰b␇, q␇a̴⃒𖿰b␇, q␇a̴⃒𖿰b␇);
+Test_N(q␇a⃒̴𖿰b␇, q␇a⃒̴𖿰b␇, q␇a⃒̴𖿰b␇, q␇a⃒̴𖿰b␇, q␇a⃒̴𖿰b␇);
+Test_N(q␇a̴⃓𖿰b␇, q␇a̴⃓𖿰b␇, q␇a̴⃓𖿰b␇, q␇a̴⃓𖿰b␇, q␇a̴⃓𖿰b␇);
+Test_N(q␇a⃓̴𖿰b␇, q␇a⃓̴𖿰b␇, q␇a⃓̴𖿰b␇, q␇a⃓̴𖿰b␇, q␇a⃓̴𖿰b␇);
+Test_N(q␇à֮⃔̕b␇, q␇à֮⃔̕b␇, q␇à֮⃔̕b␇, q␇à֮⃔̕b␇, q␇à֮⃔̕b␇);
+Test_N(q␇a֮⃔̀̕b␇, q␇a֮⃔̀̕b␇, q␇a֮⃔̀̕b␇, q␇a֮⃔̀̕b␇, q␇a֮⃔̀̕b␇);
+Test_N(q␇à֮⃕̕b␇, q␇à֮⃕̕b␇, q␇à֮⃕̕b␇, q␇à֮⃕̕b␇, q␇à֮⃕̕b␇);
+Test_N(q␇a֮⃕̀̕b␇, q␇a֮⃕̀̕b␇, q␇a֮⃕̀̕b␇, q␇a֮⃕̀̕b␇, q␇a֮⃕̀̕b␇);
+Test_N(q␇à֮⃖̕b␇, q␇à֮⃖̕b␇, q␇à֮⃖̕b␇, q␇à֮⃖̕b␇, q␇à֮⃖̕b␇);
+Test_N(q␇a֮⃖̀̕b␇, q␇a֮⃖̀̕b␇, q␇a֮⃖̀̕b␇, q␇a֮⃖̀̕b␇, q␇a֮⃖̀̕b␇);
+Test_N(q␇à֮⃗̕b␇, q␇à֮⃗̕b␇, q␇à֮⃗̕b␇, q␇à֮⃗̕b␇, q␇à֮⃗̕b␇);
+Test_N(q␇a֮⃗̀̕b␇, q␇a֮⃗̀̕b␇, q␇a֮⃗̀̕b␇, q␇a֮⃗̀̕b␇, q␇a֮⃗̀̕b␇);
+Test_N(q␇a̴⃘𖿰b␇, q␇a̴⃘𖿰b␇, q␇a̴⃘𖿰b␇, q␇a̴⃘𖿰b␇, q␇a̴⃘𖿰b␇);
+Test_N(q␇a⃘̴𖿰b␇, q␇a⃘̴𖿰b␇, q␇a⃘̴𖿰b␇, q␇a⃘̴𖿰b␇, q␇a⃘̴𖿰b␇);
+Test_N(q␇a̴⃙𖿰b␇, q␇a̴⃙𖿰b␇, q␇a̴⃙𖿰b␇, q␇a̴⃙𖿰b␇, q␇a̴⃙𖿰b␇);
+Test_N(q␇a⃙̴𖿰b␇, q␇a⃙̴𖿰b␇, q␇a⃙̴𖿰b␇, q␇a⃙̴𖿰b␇, q␇a⃙̴𖿰b␇);
+Test_N(q␇a̴⃚𖿰b␇, q␇a̴⃚𖿰b␇, q␇a̴⃚𖿰b␇, q␇a̴⃚𖿰b␇, q␇a̴⃚𖿰b␇);
+Test_N(q␇a⃚̴𖿰b␇, q␇a⃚̴𖿰b␇, q␇a⃚̴𖿰b␇, q␇a⃚̴𖿰b␇, q␇a⃚̴𖿰b␇);
+Test_N(q␇à֮⃛̕b␇, q␇à֮⃛̕b␇, q␇à֮⃛̕b␇, q␇à֮⃛̕b␇, q␇à֮⃛̕b␇);
+Test_N(q␇a֮⃛̀̕b␇, q␇a֮⃛̀̕b␇, q␇a֮⃛̀̕b␇, q␇a֮⃛̀̕b␇, q␇a֮⃛̀̕b␇);
+Test_N(q␇à֮⃜̕b␇, q␇à֮⃜̕b␇, q␇à֮⃜̕b␇, q␇à֮⃜̕b␇, q␇à֮⃜̕b␇);
+Test_N(q␇a֮⃜̀̕b␇, q␇a֮⃜̀̕b␇, q␇a֮⃜̀̕b␇, q␇a֮⃜̀̕b␇, q␇a֮⃜̀̕b␇);
+Test_N(q␇à֮⃡̕b␇, q␇à֮⃡̕b␇, q␇à֮⃡̕b␇, q␇à֮⃡̕b␇, q␇à֮⃡̕b␇);
+Test_N(q␇a֮⃡̀̕b␇, q␇a֮⃡̀̕b␇, q␇a֮⃡̀̕b␇, q␇a֮⃡̀̕b␇, q␇a֮⃡̀̕b␇);
+Test_N(q␇a̴⃥𖿰b␇, q␇a̴⃥𖿰b␇, q␇a̴⃥𖿰b␇, q␇a̴⃥𖿰b␇, q␇a̴⃥𖿰b␇);
+Test_N(q␇a⃥̴𖿰b␇, q␇a⃥̴𖿰b␇, q␇a⃥̴𖿰b␇, q␇a⃥̴𖿰b␇, q␇a⃥̴𖿰b␇);
+Test_N(q␇a̴⃦𖿰b␇, q␇a̴⃦𖿰b␇, q␇a̴⃦𖿰b␇, q␇a̴⃦𖿰b␇, q␇a̴⃦𖿰b␇);
+Test_N(q␇a⃦̴𖿰b␇, q␇a⃦̴𖿰b␇, q␇a⃦̴𖿰b␇, q␇a⃦̴𖿰b␇, q␇a⃦̴𖿰b␇);
+Test_N(q␇à֮⃧̕b␇, q␇à֮⃧̕b␇, q␇à֮⃧̕b␇, q␇à֮⃧̕b␇, q␇à֮⃧̕b␇);
+Test_N(q␇a֮⃧̀̕b␇, q␇a֮⃧̀̕b␇, q␇a֮⃧̀̕b␇, q␇a֮⃧̀̕b␇, q␇a֮⃧̀̕b␇);
+Test_N(q␇a᷺̖⃨֚b␇, q␇a᷺̖⃨֚b␇, q␇a᷺̖⃨֚b␇, q␇a᷺̖⃨֚b␇, q␇a᷺̖⃨֚b␇);
+Test_N(q␇a᷺⃨̖֚b␇, q␇a᷺⃨̖֚b␇, q␇a᷺⃨̖֚b␇, q␇a᷺⃨̖֚b␇, q␇a᷺⃨̖֚b␇);
+Test_N(q␇à֮⃩̕b␇, q␇à֮⃩̕b␇, q␇à֮⃩̕b␇, q␇à֮⃩̕b␇, q␇à֮⃩̕b␇);
+Test_N(q␇a֮⃩̀̕b␇, q␇a֮⃩̀̕b␇, q␇a֮⃩̀̕b␇, q␇a֮⃩̀̕b␇, q␇a֮⃩̀̕b␇);
+Test_N(q␇a̴⃪𖿰b␇, q␇a̴⃪𖿰b␇, q␇a̴⃪𖿰b␇, q␇a̴⃪𖿰b␇, q␇a̴⃪𖿰b␇);
+Test_N(q␇a⃪̴𖿰b␇, q␇a⃪̴𖿰b␇, q␇a⃪̴𖿰b␇, q␇a⃪̴𖿰b␇, q␇a⃪̴𖿰b␇);
+Test_N(q␇a̴⃫𖿰b␇, q␇a̴⃫𖿰b␇, q␇a̴⃫𖿰b␇, q␇a̴⃫𖿰b␇, q␇a̴⃫𖿰b␇);
+Test_N(q␇a⃫̴𖿰b␇, q␇a⃫̴𖿰b␇, q␇a⃫̴𖿰b␇, q␇a⃫̴𖿰b␇, q␇a⃫̴𖿰b␇);
+Test_N(q␇a᷺̖⃬֚b␇, q␇a᷺̖⃬֚b␇, q␇a᷺̖⃬֚b␇, q␇a᷺̖⃬֚b␇, q␇a᷺̖⃬֚b␇);
+Test_N(q␇a᷺⃬̖֚b␇, q␇a᷺⃬̖֚b␇, q␇a᷺⃬̖֚b␇, q␇a᷺⃬̖֚b␇, q␇a᷺⃬̖֚b␇);
+Test_N(q␇a᷺̖⃭֚b␇, q␇a᷺̖⃭֚b␇, q␇a᷺̖⃭֚b␇, q␇a᷺̖⃭֚b␇, q␇a᷺̖⃭֚b␇);
+Test_N(q␇a᷺⃭̖֚b␇, q␇a᷺⃭̖֚b␇, q␇a᷺⃭̖֚b␇, q␇a᷺⃭̖֚b␇, q␇a᷺⃭̖֚b␇);
+Test_N(q␇a᷺̖⃮֚b␇, q␇a᷺̖⃮֚b␇, q␇a᷺̖⃮֚b␇, q␇a᷺̖⃮֚b␇, q␇a᷺̖⃮֚b␇);
+Test_N(q␇a᷺⃮̖֚b␇, q␇a᷺⃮̖֚b␇, q␇a᷺⃮̖֚b␇, q␇a᷺⃮̖֚b␇, q␇a᷺⃮̖֚b␇);
+Test_N(q␇a᷺̖⃯֚b␇, q␇a᷺̖⃯֚b␇, q␇a᷺̖⃯֚b␇, q␇a᷺̖⃯֚b␇, q␇a᷺̖⃯֚b␇);
+Test_N(q␇a᷺⃯̖֚b␇, q␇a᷺⃯̖֚b␇, q␇a᷺⃯̖֚b␇, q␇a᷺⃯̖֚b␇, q␇a᷺⃯̖֚b␇);
+Test_N(q␇à֮⃰̕b␇, q␇à֮⃰̕b␇, q␇à֮⃰̕b␇, q␇à֮⃰̕b␇, q␇à֮⃰̕b␇);
+Test_N(q␇a֮⃰̀̕b␇, q␇a֮⃰̀̕b␇, q␇a֮⃰̀̕b␇, q␇a֮⃰̀̕b␇, q␇a֮⃰̀̕b␇);
+Test_N(q␇à֮⳯̕b␇, q␇à֮⳯̕b␇, q␇à֮⳯̕b␇, q␇à֮⳯̕b␇, q␇à֮⳯̕b␇);
+Test_N(q␇a֮⳯̀̕b␇, q␇a֮⳯̀̕b␇, q␇a֮⳯̀̕b␇, q␇a֮⳯̀̕b␇, q␇a֮⳯̀̕b␇);
+Test_N(q␇à֮⳰̕b␇, q␇à֮⳰̕b␇, q␇à֮⳰̕b␇, q␇à֮⳰̕b␇, q␇à֮⳰̕b␇);
+Test_N(q␇a֮⳰̀̕b␇, q␇a֮⳰̀̕b␇, q␇a֮⳰̀̕b␇, q␇a֮⳰̀̕b␇, q␇a֮⳰̀̕b␇);
+Test_N(q␇à֮⳱̕b␇, q␇à֮⳱̕b␇, q␇à֮⳱̕b␇, q␇à֮⳱̕b␇, q␇à֮⳱̕b␇);
+Test_N(q␇a֮⳱̀̕b␇, q␇a֮⳱̀̕b␇, q␇a֮⳱̀̕b␇, q␇a֮⳱̀̕b␇, q␇a֮⳱̀̕b␇);
+Test_N(q␇a゙्⵿ְb␇, q␇a゙्⵿ְb␇, q␇a゙्⵿ְb␇, q␇a゙्⵿ְb␇, q␇a゙्⵿ְb␇);
+Test_N(q␇a゙⵿्ְb␇, q␇a゙⵿्ְb␇, q␇a゙⵿्ְb␇, q␇a゙⵿्ְb␇, q␇a゙⵿्ְb␇);
+Test_N(q␇à֮ⷠ̕b␇, q␇à֮ⷠ̕b␇, q␇à֮ⷠ̕b␇, q␇à֮ⷠ̕b␇, q␇à֮ⷠ̕b␇);
+Test_N(q␇a֮ⷠ̀̕b␇, q␇a֮ⷠ̀̕b␇, q␇a֮ⷠ̀̕b␇, q␇a֮ⷠ̀̕b␇, q␇a֮ⷠ̀̕b␇);
+Test_N(q␇à֮ⷡ̕b␇, q␇à֮ⷡ̕b␇, q␇à֮ⷡ̕b␇, q␇à֮ⷡ̕b␇, q␇à֮ⷡ̕b␇);
+Test_N(q␇a֮ⷡ̀̕b␇, q␇a֮ⷡ̀̕b␇, q␇a֮ⷡ̀̕b␇, q␇a֮ⷡ̀̕b␇, q␇a֮ⷡ̀̕b␇);
+Test_N(q␇à֮ⷢ̕b␇, q␇à֮ⷢ̕b␇, q␇à֮ⷢ̕b␇, q␇à֮ⷢ̕b␇, q␇à֮ⷢ̕b␇);
+Test_N(q␇a֮ⷢ̀̕b␇, q␇a֮ⷢ̀̕b␇, q␇a֮ⷢ̀̕b␇, q␇a֮ⷢ̀̕b␇, q␇a֮ⷢ̀̕b␇);
+Test_N(q␇à֮ⷣ̕b␇, q␇à֮ⷣ̕b␇, q␇à֮ⷣ̕b␇, q␇à֮ⷣ̕b␇, q␇à֮ⷣ̕b␇);
+Test_N(q␇a֮ⷣ̀̕b␇, q␇a֮ⷣ̀̕b␇, q␇a֮ⷣ̀̕b␇, q␇a֮ⷣ̀̕b␇, q␇a֮ⷣ̀̕b␇);
+Test_N(q␇à֮ⷤ̕b␇, q␇à֮ⷤ̕b␇, q␇à֮ⷤ̕b␇, q␇à֮ⷤ̕b␇, q␇à֮ⷤ̕b␇);
+Test_N(q␇a֮ⷤ̀̕b␇, q␇a֮ⷤ̀̕b␇, q␇a֮ⷤ̀̕b␇, q␇a֮ⷤ̀̕b␇, q␇a֮ⷤ̀̕b␇);
+Test_N(q␇à֮ⷥ̕b␇, q␇à֮ⷥ̕b␇, q␇à֮ⷥ̕b␇, q␇à֮ⷥ̕b␇, q␇à֮ⷥ̕b␇);
+Test_N(q␇a֮ⷥ̀̕b␇, q␇a֮ⷥ̀̕b␇, q␇a֮ⷥ̀̕b␇, q␇a֮ⷥ̀̕b␇, q␇a֮ⷥ̀̕b␇);
+Test_N(q␇à֮ⷦ̕b␇, q␇à֮ⷦ̕b␇, q␇à֮ⷦ̕b␇, q␇à֮ⷦ̕b␇, q␇à֮ⷦ̕b␇);
+Test_N(q␇a֮ⷦ̀̕b␇, q␇a֮ⷦ̀̕b␇, q␇a֮ⷦ̀̕b␇, q␇a֮ⷦ̀̕b␇, q␇a֮ⷦ̀̕b␇);
+Test_N(q␇à֮ⷧ̕b␇, q␇à֮ⷧ̕b␇, q␇à֮ⷧ̕b␇, q␇à֮ⷧ̕b␇, q␇à֮ⷧ̕b␇);
+Test_N(q␇a֮ⷧ̀̕b␇, q␇a֮ⷧ̀̕b␇, q␇a֮ⷧ̀̕b␇, q␇a֮ⷧ̀̕b␇, q␇a֮ⷧ̀̕b␇);
+Test_N(q␇à֮ⷨ̕b␇, q␇à֮ⷨ̕b␇, q␇à֮ⷨ̕b␇, q␇à֮ⷨ̕b␇, q␇à֮ⷨ̕b␇);
+Test_N(q␇a֮ⷨ̀̕b␇, q␇a֮ⷨ̀̕b␇, q␇a֮ⷨ̀̕b␇, q␇a֮ⷨ̀̕b␇, q␇a֮ⷨ̀̕b␇);
+Test_N(q␇à֮ⷩ̕b␇, q␇à֮ⷩ̕b␇, q␇à֮ⷩ̕b␇, q␇à֮ⷩ̕b␇, q␇à֮ⷩ̕b␇);
+Test_N(q␇a֮ⷩ̀̕b␇, q␇a֮ⷩ̀̕b␇, q␇a֮ⷩ̀̕b␇, q␇a֮ⷩ̀̕b␇, q␇a֮ⷩ̀̕b␇);
+Test_N(q␇à֮ⷪ̕b␇, q␇à֮ⷪ̕b␇, q␇à֮ⷪ̕b␇, q␇à֮ⷪ̕b␇, q␇à֮ⷪ̕b␇);
+Test_N(q␇a֮ⷪ̀̕b␇, q␇a֮ⷪ̀̕b␇, q␇a֮ⷪ̀̕b␇, q␇a֮ⷪ̀̕b␇, q␇a֮ⷪ̀̕b␇);
+Test_N(q␇à֮ⷫ̕b␇, q␇à֮ⷫ̕b␇, q␇à֮ⷫ̕b␇, q␇à֮ⷫ̕b␇, q␇à֮ⷫ̕b␇);
+Test_N(q␇a֮ⷫ̀̕b␇, q␇a֮ⷫ̀̕b␇, q␇a֮ⷫ̀̕b␇, q␇a֮ⷫ̀̕b␇, q␇a֮ⷫ̀̕b␇);
+Test_N(q␇à֮ⷬ̕b␇, q␇à֮ⷬ̕b␇, q␇à֮ⷬ̕b␇, q␇à֮ⷬ̕b␇, q␇à֮ⷬ̕b␇);
+Test_N(q␇a֮ⷬ̀̕b␇, q␇a֮ⷬ̀̕b␇, q␇a֮ⷬ̀̕b␇, q␇a֮ⷬ̀̕b␇, q␇a֮ⷬ̀̕b␇);
+Test_N(q␇à֮ⷭ̕b␇, q␇à֮ⷭ̕b␇, q␇à֮ⷭ̕b␇, q␇à֮ⷭ̕b␇, q␇à֮ⷭ̕b␇);
+Test_N(q␇a֮ⷭ̀̕b␇, q␇a֮ⷭ̀̕b␇, q␇a֮ⷭ̀̕b␇, q␇a֮ⷭ̀̕b␇, q␇a֮ⷭ̀̕b␇);
+Test_N(q␇à֮ⷮ̕b␇, q␇à֮ⷮ̕b␇, q␇à֮ⷮ̕b␇, q␇à֮ⷮ̕b␇, q␇à֮ⷮ̕b␇);
+Test_N(q␇a֮ⷮ̀̕b␇, q␇a֮ⷮ̀̕b␇, q␇a֮ⷮ̀̕b␇, q␇a֮ⷮ̀̕b␇, q␇a֮ⷮ̀̕b␇);
+Test_N(q␇à֮ⷯ̕b␇, q␇à֮ⷯ̕b␇, q␇à֮ⷯ̕b␇, q␇à֮ⷯ̕b␇, q␇à֮ⷯ̕b␇);
+Test_N(q␇a֮ⷯ̀̕b␇, q␇a֮ⷯ̀̕b␇, q␇a֮ⷯ̀̕b␇, q␇a֮ⷯ̀̕b␇, q␇a֮ⷯ̀̕b␇);
+Test_N(q␇à֮ⷰ̕b␇, q␇à֮ⷰ̕b␇, q␇à֮ⷰ̕b␇, q␇à֮ⷰ̕b␇, q␇à֮ⷰ̕b␇);
+Test_N(q␇a֮ⷰ̀̕b␇, q␇a֮ⷰ̀̕b␇, q␇a֮ⷰ̀̕b␇, q␇a֮ⷰ̀̕b␇, q␇a֮ⷰ̀̕b␇);
+Test_N(q␇à֮ⷱ̕b␇, q␇à֮ⷱ̕b␇, q␇à֮ⷱ̕b␇, q␇à֮ⷱ̕b␇, q␇à֮ⷱ̕b␇);
+Test_N(q␇a֮ⷱ̀̕b␇, q␇a֮ⷱ̀̕b␇, q␇a֮ⷱ̀̕b␇, q␇a֮ⷱ̀̕b␇, q␇a֮ⷱ̀̕b␇);
+Test_N(q␇à֮ⷲ̕b␇, q␇à֮ⷲ̕b␇, q␇à֮ⷲ̕b␇, q␇à֮ⷲ̕b␇, q␇à֮ⷲ̕b␇);
+Test_N(q␇a֮ⷲ̀̕b␇, q␇a֮ⷲ̀̕b␇, q␇a֮ⷲ̀̕b␇, q␇a֮ⷲ̀̕b␇, q␇a֮ⷲ̀̕b␇);
+Test_N(q␇à֮ⷳ̕b␇, q␇à֮ⷳ̕b␇, q␇à֮ⷳ̕b␇, q␇à֮ⷳ̕b␇, q␇à֮ⷳ̕b␇);
+Test_N(q␇a֮ⷳ̀̕b␇, q␇a֮ⷳ̀̕b␇, q␇a֮ⷳ̀̕b␇, q␇a֮ⷳ̀̕b␇, q␇a֮ⷳ̀̕b␇);
+Test_N(q␇à֮ⷴ̕b␇, q␇à֮ⷴ̕b␇, q␇à֮ⷴ̕b␇, q␇à֮ⷴ̕b␇, q␇à֮ⷴ̕b␇);
+Test_N(q␇a֮ⷴ̀̕b␇, q␇a֮ⷴ̀̕b␇, q␇a֮ⷴ̀̕b␇, q␇a֮ⷴ̀̕b␇, q␇a֮ⷴ̀̕b␇);
+Test_N(q␇à֮ⷵ̕b␇, q␇à֮ⷵ̕b␇, q␇à֮ⷵ̕b␇, q␇à֮ⷵ̕b␇, q␇à֮ⷵ̕b␇);
+Test_N(q␇a֮ⷵ̀̕b␇, q␇a֮ⷵ̀̕b␇, q␇a֮ⷵ̀̕b␇, q␇a֮ⷵ̀̕b␇, q␇a֮ⷵ̀̕b␇);
+Test_N(q␇à֮ⷶ̕b␇, q␇à֮ⷶ̕b␇, q␇à֮ⷶ̕b␇, q␇à֮ⷶ̕b␇, q␇à֮ⷶ̕b␇);
+Test_N(q␇a֮ⷶ̀̕b␇, q␇a֮ⷶ̀̕b␇, q␇a֮ⷶ̀̕b␇, q␇a֮ⷶ̀̕b␇, q␇a֮ⷶ̀̕b␇);
+Test_N(q␇à֮ⷷ̕b␇, q␇à֮ⷷ̕b␇, q␇à֮ⷷ̕b␇, q␇à֮ⷷ̕b␇, q␇à֮ⷷ̕b␇);
+Test_N(q␇a֮ⷷ̀̕b␇, q␇a֮ⷷ̀̕b␇, q␇a֮ⷷ̀̕b␇, q␇a֮ⷷ̀̕b␇, q␇a֮ⷷ̀̕b␇);
+Test_N(q␇à֮ⷸ̕b␇, q␇à֮ⷸ̕b␇, q␇à֮ⷸ̕b␇, q␇à֮ⷸ̕b␇, q␇à֮ⷸ̕b␇);
+Test_N(q␇a֮ⷸ̀̕b␇, q␇a֮ⷸ̀̕b␇, q␇a֮ⷸ̀̕b␇, q␇a֮ⷸ̀̕b␇, q␇a֮ⷸ̀̕b␇);
+Test_N(q␇à֮ⷹ̕b␇, q␇à֮ⷹ̕b␇, q␇à֮ⷹ̕b␇, q␇à֮ⷹ̕b␇, q␇à֮ⷹ̕b␇);
+Test_N(q␇a֮ⷹ̀̕b␇, q␇a֮ⷹ̀̕b␇, q␇a֮ⷹ̀̕b␇, q␇a֮ⷹ̀̕b␇, q␇a֮ⷹ̀̕b␇);
+Test_N(q␇à֮ⷺ̕b␇, q␇à֮ⷺ̕b␇, q␇à֮ⷺ̕b␇, q␇à֮ⷺ̕b␇, q␇à֮ⷺ̕b␇);
+Test_N(q␇a֮ⷺ̀̕b␇, q␇a֮ⷺ̀̕b␇, q␇a֮ⷺ̀̕b␇, q␇a֮ⷺ̀̕b␇, q␇a֮ⷺ̀̕b␇);
+Test_N(q␇à֮ⷻ̕b␇, q␇à֮ⷻ̕b␇, q␇à֮ⷻ̕b␇, q␇à֮ⷻ̕b␇, q␇à֮ⷻ̕b␇);
+Test_N(q␇a֮ⷻ̀̕b␇, q␇a֮ⷻ̀̕b␇, q␇a֮ⷻ̀̕b␇, q␇a֮ⷻ̀̕b␇, q␇a֮ⷻ̀̕b␇);
+Test_N(q␇à֮ⷼ̕b␇, q␇à֮ⷼ̕b␇, q␇à֮ⷼ̕b␇, q␇à֮ⷼ̕b␇, q␇à֮ⷼ̕b␇);
+Test_N(q␇a֮ⷼ̀̕b␇, q␇a֮ⷼ̀̕b␇, q␇a֮ⷼ̀̕b␇, q␇a֮ⷼ̀̕b␇, q␇a֮ⷼ̀̕b␇);
+Test_N(q␇à֮ⷽ̕b␇, q␇à֮ⷽ̕b␇, q␇à֮ⷽ̕b␇, q␇à֮ⷽ̕b␇, q␇à֮ⷽ̕b␇);
+Test_N(q␇a֮ⷽ̀̕b␇, q␇a֮ⷽ̀̕b␇, q␇a֮ⷽ̀̕b␇, q␇a֮ⷽ̀̕b␇, q␇a֮ⷽ̀̕b␇);
+Test_N(q␇à֮ⷾ̕b␇, q␇à֮ⷾ̕b␇, q␇à֮ⷾ̕b␇, q␇à֮ⷾ̕b␇, q␇à֮ⷾ̕b␇);
+Test_N(q␇a֮ⷾ̀̕b␇, q␇a֮ⷾ̀̕b␇, q␇a֮ⷾ̀̕b␇, q␇a֮ⷾ̀̕b␇, q␇a֮ⷾ̀̕b␇);
+Test_N(q␇à֮ⷿ̕b␇, q␇à֮ⷿ̕b␇, q␇à֮ⷿ̕b␇, q␇à֮ⷿ̕b␇, q␇à֮ⷿ̕b␇);
+Test_N(q␇a֮ⷿ̀̕b␇, q␇a֮ⷿ̀̕b␇, q␇a֮ⷿ̀̕b␇, q␇a֮ⷿ̀̕b␇, q␇a֮ⷿ̀̕b␇);
+Test_N(q␇a̛᷺〪̖b␇, q␇a̛᷺〪̖b␇, q␇a̛᷺〪̖b␇, q␇a̛᷺〪̖b␇, q␇a̛᷺〪̖b␇);
+Test_N(q␇a̛〪᷺̖b␇, q␇a̛〪᷺̖b␇, q␇a̛〪᷺̖b␇, q␇a̛〪᷺̖b␇, q␇a̛〪᷺̖b␇);
+Test_N(q␇à𝅭֮〫b␇, q␇à𝅭֮〫b␇, q␇à𝅭֮〫b␇, q␇à𝅭֮〫b␇, q␇à𝅭֮〫b␇);
+Test_N(q␇à𝅭〫֮b␇, q␇à𝅭〫֮b␇, q␇à𝅭〫֮b␇, q␇à𝅭〫֮b␇, q␇à𝅭〫֮b␇);
+Test_N(q␇à̕〬͜b␇, q␇à̕〬͜b␇, q␇à̕〬͜b␇, q␇à̕〬͜b␇, q␇à̕〬͜b␇);
+Test_N(q␇à〬̕͜b␇, q␇à〬̕͜b␇, q␇à〬̕͜b␇, q␇à〬̕͜b␇, q␇à〬̕͜b␇);
+Test_N(q␇a̖֚〭〮b␇, q␇a̖֚〭〮b␇, q␇a̖֚〭〮b␇, q␇a̖֚〭〮b␇, q␇a̖֚〭〮b␇);
+Test_N(q␇a̖〭֚〮b␇, q␇a̖〭֚〮b␇, q␇a̖〭֚〮b␇, q␇a̖〭֚〮b␇, q␇a̖〭֚〮b␇);
+Test_N(q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇);
+Test_N(q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇, q␇a֚〮〮𝅭b␇);
+Test_N(q␇a֚〮〯𝅭b␇, q␇a֚〮〯𝅭b␇, q␇a֚〮〯𝅭b␇, q␇a֚〮〯𝅭b␇, q␇a֚〮〯𝅭b␇);
+Test_N(q␇a֚〯〮𝅭b␇, q␇a֚〯〮𝅭b␇, q␇a֚〯〮𝅭b␇, q␇a֚〯〮𝅭b␇, q␇a֚〯〮𝅭b␇);
+Test_N(q␇a़゙゙्b␇, q␇a़゙゙्b␇, q␇a़゙゙्b␇, q␇a़゙゙्b␇, q␇a़゙゙्b␇);
+Test_N(q␇a़゙゙्b␇, q␇a़゙゙्b␇, q␇a़゙゙्b␇, q␇a़゙゙्b␇, q␇a़゙゙्b␇);
+Test_N(q␇a़゙゚्b␇, q␇a़゙゚्b␇, q␇a़゙゚्b␇, q␇a़゙゚्b␇, q␇a़゙゚्b␇);
+Test_N(q␇a़゚゙्b␇, q␇a़゚゙्b␇, q␇a़゚゙्b␇, q␇a़゚゙्b␇, q␇a़゚゙्b␇);
+Test_N(q␇à֮꙯̕b␇, q␇à֮꙯̕b␇, q␇à֮꙯̕b␇, q␇à֮꙯̕b␇, q␇à֮꙯̕b␇);
+Test_N(q␇a֮꙯̀̕b␇, q␇a֮꙯̀̕b␇, q␇a֮꙯̀̕b␇, q␇a֮꙯̀̕b␇, q␇a֮꙯̀̕b␇);
+Test_N(q␇à֮ꙴ̕b␇, q␇à֮ꙴ̕b␇, q␇à֮ꙴ̕b␇, q␇à֮ꙴ̕b␇, q␇à֮ꙴ̕b␇);
+Test_N(q␇a֮ꙴ̀̕b␇, q␇a֮ꙴ̀̕b␇, q␇a֮ꙴ̀̕b␇, q␇a֮ꙴ̀̕b␇, q␇a֮ꙴ̀̕b␇);
+Test_N(q␇à֮ꙵ̕b␇, q␇à֮ꙵ̕b␇, q␇à֮ꙵ̕b␇, q␇à֮ꙵ̕b␇, q␇à֮ꙵ̕b␇);
+Test_N(q␇a֮ꙵ̀̕b␇, q␇a֮ꙵ̀̕b␇, q␇a֮ꙵ̀̕b␇, q␇a֮ꙵ̀̕b␇, q␇a֮ꙵ̀̕b␇);
+Test_N(q␇à֮ꙶ̕b␇, q␇à֮ꙶ̕b␇, q␇à֮ꙶ̕b␇, q␇à֮ꙶ̕b␇, q␇à֮ꙶ̕b␇);
+Test_N(q␇a֮ꙶ̀̕b␇, q␇a֮ꙶ̀̕b␇, q␇a֮ꙶ̀̕b␇, q␇a֮ꙶ̀̕b␇, q␇a֮ꙶ̀̕b␇);
+Test_N(q␇à֮ꙷ̕b␇, q␇à֮ꙷ̕b␇, q␇à֮ꙷ̕b␇, q␇à֮ꙷ̕b␇, q␇à֮ꙷ̕b␇);
+Test_N(q␇a֮ꙷ̀̕b␇, q␇a֮ꙷ̀̕b␇, q␇a֮ꙷ̀̕b␇, q␇a֮ꙷ̀̕b␇, q␇a֮ꙷ̀̕b␇);
+Test_N(q␇à֮ꙸ̕b␇, q␇à֮ꙸ̕b␇, q␇à֮ꙸ̕b␇, q␇à֮ꙸ̕b␇, q␇à֮ꙸ̕b␇);
+Test_N(q␇a֮ꙸ̀̕b␇, q␇a֮ꙸ̀̕b␇, q␇a֮ꙸ̀̕b␇, q␇a֮ꙸ̀̕b␇, q␇a֮ꙸ̀̕b␇);
+Test_N(q␇à֮ꙹ̕b␇, q␇à֮ꙹ̕b␇, q␇à֮ꙹ̕b␇, q␇à֮ꙹ̕b␇, q␇à֮ꙹ̕b␇);
+Test_N(q␇a֮ꙹ̀̕b␇, q␇a֮ꙹ̀̕b␇, q␇a֮ꙹ̀̕b␇, q␇a֮ꙹ̀̕b␇, q␇a֮ꙹ̀̕b␇);
+Test_N(q␇à֮ꙺ̕b␇, q␇à֮ꙺ̕b␇, q␇à֮ꙺ̕b␇, q␇à֮ꙺ̕b␇, q␇à֮ꙺ̕b␇);
+Test_N(q␇a֮ꙺ̀̕b␇, q␇a֮ꙺ̀̕b␇, q␇a֮ꙺ̀̕b␇, q␇a֮ꙺ̀̕b␇, q␇a֮ꙺ̀̕b␇);
+Test_N(q␇à֮ꙻ̕b␇, q␇à֮ꙻ̕b␇, q␇à֮ꙻ̕b␇, q␇à֮ꙻ̕b␇, q␇à֮ꙻ̕b␇);
+Test_N(q␇a֮ꙻ̀̕b␇, q␇a֮ꙻ̀̕b␇, q␇a֮ꙻ̀̕b␇, q␇a֮ꙻ̀̕b␇, q␇a֮ꙻ̀̕b␇);
+Test_N(q␇à֮꙼̕b␇, q␇à֮꙼̕b␇, q␇à֮꙼̕b␇, q␇à֮꙼̕b␇, q␇à֮꙼̕b␇);
+Test_N(q␇a֮꙼̀̕b␇, q␇a֮꙼̀̕b␇, q␇a֮꙼̀̕b␇, q␇a֮꙼̀̕b␇, q␇a֮꙼̀̕b␇);
+Test_N(q␇à֮꙽̕b␇, q␇à֮꙽̕b␇, q␇à֮꙽̕b␇, q␇à֮꙽̕b␇, q␇à֮꙽̕b␇);
+Test_N(q␇a֮꙽̀̕b␇, q␇a֮꙽̀̕b␇, q␇a֮꙽̀̕b␇, q␇a֮꙽̀̕b␇, q␇a֮꙽̀̕b␇);
+Test_N(q␇à֮ꚞ̕b␇, q␇à֮ꚞ̕b␇, q␇à֮ꚞ̕b␇, q␇à֮ꚞ̕b␇, q␇à֮ꚞ̕b␇);
+Test_N(q␇a֮ꚞ̀̕b␇, q␇a֮ꚞ̀̕b␇, q␇a֮ꚞ̀̕b␇, q␇a֮ꚞ̀̕b␇, q␇a֮ꚞ̀̕b␇);
+Test_N(q␇à֮ꚟ̕b␇, q␇à֮ꚟ̕b␇, q␇à֮ꚟ̕b␇, q␇à֮ꚟ̕b␇, q␇à֮ꚟ̕b␇);
+Test_N(q␇a֮ꚟ̀̕b␇, q␇a֮ꚟ̀̕b␇, q␇a֮ꚟ̀̕b␇, q␇a֮ꚟ̀̕b␇, q␇a֮ꚟ̀̕b␇);
+Test_N(q␇à֮꛰̕b␇, q␇à֮꛰̕b␇, q␇à֮꛰̕b␇, q␇à֮꛰̕b␇, q␇à֮꛰̕b␇);
+Test_N(q␇a֮꛰̀̕b␇, q␇a֮꛰̀̕b␇, q␇a֮꛰̀̕b␇, q␇a֮꛰̀̕b␇, q␇a֮꛰̀̕b␇);
+Test_N(q␇à֮꛱̕b␇, q␇à֮꛱̕b␇, q␇à֮꛱̕b␇, q␇à֮꛱̕b␇, q␇à֮꛱̕b␇);
+Test_N(q␇a֮꛱̀̕b␇, q␇a֮꛱̀̕b␇, q␇a֮꛱̀̕b␇, q␇a֮꛱̀̕b␇, q␇a֮꛱̀̕b␇);
+Test_N(q␇a゙्꠆ְb␇, q␇a゙्꠆ְb␇, q␇a゙्꠆ְb␇, q␇a゙्꠆ְb␇, q␇a゙्꠆ְb␇);
+Test_N(q␇a゙꠆्ְb␇, q␇a゙꠆्ְb␇, q␇a゙꠆्ְb␇, q␇a゙꠆्ְb␇, q␇a゙꠆्ְb␇);
+Test_N(q␇a゙्꠬ְb␇, q␇a゙्꠬ְb␇, q␇a゙्꠬ְb␇, q␇a゙्꠬ְb␇, q␇a゙्꠬ְb␇);
+Test_N(q␇a゙꠬्ְb␇, q␇a゙꠬्ְb␇, q␇a゙꠬्ְb␇, q␇a゙꠬्ְb␇, q␇a゙꠬्ְb␇);
+Test_N(q␇a゙्꣄ְb␇, q␇a゙्꣄ְb␇, q␇a゙्꣄ְb␇, q␇a゙्꣄ְb␇, q␇a゙्꣄ְb␇);
+Test_N(q␇a゙꣄्ְb␇, q␇a゙꣄्ְb␇, q␇a゙꣄्ְb␇, q␇a゙꣄्ְb␇, q␇a゙꣄्ְb␇);
+Test_N(q␇à֮꣠̕b␇, q␇à֮꣠̕b␇, q␇à֮꣠̕b␇, q␇à֮꣠̕b␇, q␇à֮꣠̕b␇);
+Test_N(q␇a֮꣠̀̕b␇, q␇a֮꣠̀̕b␇, q␇a֮꣠̀̕b␇, q␇a֮꣠̀̕b␇, q␇a֮꣠̀̕b␇);
+Test_N(q␇à֮꣡̕b␇, q␇à֮꣡̕b␇, q␇à֮꣡̕b␇, q␇à֮꣡̕b␇, q␇à֮꣡̕b␇);
+Test_N(q␇a֮꣡̀̕b␇, q␇a֮꣡̀̕b␇, q␇a֮꣡̀̕b␇, q␇a֮꣡̀̕b␇, q␇a֮꣡̀̕b␇);
+Test_N(q␇à֮꣢̕b␇, q␇à֮꣢̕b␇, q␇à֮꣢̕b␇, q␇à֮꣢̕b␇, q␇à֮꣢̕b␇);
+Test_N(q␇a֮꣢̀̕b␇, q␇a֮꣢̀̕b␇, q␇a֮꣢̀̕b␇, q␇a֮꣢̀̕b␇, q␇a֮꣢̀̕b␇);
+Test_N(q␇à֮꣣̕b␇, q␇à֮꣣̕b␇, q␇à֮꣣̕b␇, q␇à֮꣣̕b␇, q␇à֮꣣̕b␇);
+Test_N(q␇a֮꣣̀̕b␇, q␇a֮꣣̀̕b␇, q␇a֮꣣̀̕b␇, q␇a֮꣣̀̕b␇, q␇a֮꣣̀̕b␇);
+Test_N(q␇à֮꣤̕b␇, q␇à֮꣤̕b␇, q␇à֮꣤̕b␇, q␇à֮꣤̕b␇, q␇à֮꣤̕b␇);
+Test_N(q␇a֮꣤̀̕b␇, q␇a֮꣤̀̕b␇, q␇a֮꣤̀̕b␇, q␇a֮꣤̀̕b␇, q␇a֮꣤̀̕b␇);
+Test_N(q␇à֮꣥̕b␇, q␇à֮꣥̕b␇, q␇à֮꣥̕b␇, q␇à֮꣥̕b␇, q␇à֮꣥̕b␇);
+Test_N(q␇a֮꣥̀̕b␇, q␇a֮꣥̀̕b␇, q␇a֮꣥̀̕b␇, q␇a֮꣥̀̕b␇, q␇a֮꣥̀̕b␇);
+Test_N(q␇à֮꣦̕b␇, q␇à֮꣦̕b␇, q␇à֮꣦̕b␇, q␇à֮꣦̕b␇, q␇à֮꣦̕b␇);
+Test_N(q␇a֮꣦̀̕b␇, q␇a֮꣦̀̕b␇, q␇a֮꣦̀̕b␇, q␇a֮꣦̀̕b␇, q␇a֮꣦̀̕b␇);
+Test_N(q␇à֮꣧̕b␇, q␇à֮꣧̕b␇, q␇à֮꣧̕b␇, q␇à֮꣧̕b␇, q␇à֮꣧̕b␇);
+Test_N(q␇a֮꣧̀̕b␇, q␇a֮꣧̀̕b␇, q␇a֮꣧̀̕b␇, q␇a֮꣧̀̕b␇, q␇a֮꣧̀̕b␇);
+Test_N(q␇à֮꣨̕b␇, q␇à֮꣨̕b␇, q␇à֮꣨̕b␇, q␇à֮꣨̕b␇, q␇à֮꣨̕b␇);
+Test_N(q␇a֮꣨̀̕b␇, q␇a֮꣨̀̕b␇, q␇a֮꣨̀̕b␇, q␇a֮꣨̀̕b␇, q␇a֮꣨̀̕b␇);
+Test_N(q␇à֮꣩̕b␇, q␇à֮꣩̕b␇, q␇à֮꣩̕b␇, q␇à֮꣩̕b␇, q␇à֮꣩̕b␇);
+Test_N(q␇a֮꣩̀̕b␇, q␇a֮꣩̀̕b␇, q␇a֮꣩̀̕b␇, q␇a֮꣩̀̕b␇, q␇a֮꣩̀̕b␇);
+Test_N(q␇à֮꣪̕b␇, q␇à֮꣪̕b␇, q␇à֮꣪̕b␇, q␇à֮꣪̕b␇, q␇à֮꣪̕b␇);
+Test_N(q␇a֮꣪̀̕b␇, q␇a֮꣪̀̕b␇, q␇a֮꣪̀̕b␇, q␇a֮꣪̀̕b␇, q␇a֮꣪̀̕b␇);
+Test_N(q␇à֮꣫̕b␇, q␇à֮꣫̕b␇, q␇à֮꣫̕b␇, q␇à֮꣫̕b␇, q␇à֮꣫̕b␇);
+Test_N(q␇a֮꣫̀̕b␇, q␇a֮꣫̀̕b␇, q␇a֮꣫̀̕b␇, q␇a֮꣫̀̕b␇, q␇a֮꣫̀̕b␇);
+Test_N(q␇à֮꣬̕b␇, q␇à֮꣬̕b␇, q␇à֮꣬̕b␇, q␇à֮꣬̕b␇, q␇à֮꣬̕b␇);
+Test_N(q␇a֮꣬̀̕b␇, q␇a֮꣬̀̕b␇, q␇a֮꣬̀̕b␇, q␇a֮꣬̀̕b␇, q␇a֮꣬̀̕b␇);
+Test_N(q␇à֮꣭̕b␇, q␇à֮꣭̕b␇, q␇à֮꣭̕b␇, q␇à֮꣭̕b␇, q␇à֮꣭̕b␇);
+Test_N(q␇a֮꣭̀̕b␇, q␇a֮꣭̀̕b␇, q␇a֮꣭̀̕b␇, q␇a֮꣭̀̕b␇, q␇a֮꣭̀̕b␇);
+Test_N(q␇à֮꣮̕b␇, q␇à֮꣮̕b␇, q␇à֮꣮̕b␇, q␇à֮꣮̕b␇, q␇à֮꣮̕b␇);
+Test_N(q␇a֮꣮̀̕b␇, q␇a֮꣮̀̕b␇, q␇a֮꣮̀̕b␇, q␇a֮꣮̀̕b␇, q␇a֮꣮̀̕b␇);
+Test_N(q␇à֮꣯̕b␇, q␇à֮꣯̕b␇, q␇à֮꣯̕b␇, q␇à֮꣯̕b␇, q␇à֮꣯̕b␇);
+Test_N(q␇a֮꣯̀̕b␇, q␇a֮꣯̀̕b␇, q␇a֮꣯̀̕b␇, q␇a֮꣯̀̕b␇, q␇a֮꣯̀̕b␇);
+Test_N(q␇à֮꣰̕b␇, q␇à֮꣰̕b␇, q␇à֮꣰̕b␇, q␇à֮꣰̕b␇, q␇à֮꣰̕b␇);
+Test_N(q␇a֮꣰̀̕b␇, q␇a֮꣰̀̕b␇, q␇a֮꣰̀̕b␇, q␇a֮꣰̀̕b␇, q␇a֮꣰̀̕b␇);
+Test_N(q␇à֮꣱̕b␇, q␇à֮꣱̕b␇, q␇à֮꣱̕b␇, q␇à֮꣱̕b␇, q␇à֮꣱̕b␇);
+Test_N(q␇a֮꣱̀̕b␇, q␇a֮꣱̀̕b␇, q␇a֮꣱̀̕b␇, q␇a֮꣱̀̕b␇, q␇a֮꣱̀̕b␇);
+Test_N(q␇a᷺̖꤫֚b␇, q␇a᷺̖꤫֚b␇, q␇a᷺̖꤫֚b␇, q␇a᷺̖꤫֚b␇, q␇a᷺̖꤫֚b␇);
+Test_N(q␇a᷺꤫̖֚b␇, q␇a᷺꤫̖֚b␇, q␇a᷺꤫̖֚b␇, q␇a᷺꤫̖֚b␇, q␇a᷺꤫̖֚b␇);
+Test_N(q␇a᷺̖꤬֚b␇, q␇a᷺̖꤬֚b␇, q␇a᷺̖꤬֚b␇, q␇a᷺̖꤬֚b␇, q␇a᷺̖꤬֚b␇);
+Test_N(q␇a᷺꤬̖֚b␇, q␇a᷺꤬̖֚b␇, q␇a᷺꤬̖֚b␇, q␇a᷺꤬̖֚b␇, q␇a᷺꤬̖֚b␇);
+Test_N(q␇a᷺̖꤭֚b␇, q␇a᷺̖꤭֚b␇, q␇a᷺̖꤭֚b␇, q␇a᷺̖꤭֚b␇, q␇a᷺̖꤭֚b␇);
+Test_N(q␇a᷺꤭̖֚b␇, q␇a᷺꤭̖֚b␇, q␇a᷺꤭̖֚b␇, q␇a᷺꤭̖֚b␇, q␇a᷺꤭̖֚b␇);
+Test_N(q␇a゙्꥓ְb␇, q␇a゙्꥓ְb␇, q␇a゙्꥓ְb␇, q␇a゙्꥓ְb␇, q␇a゙्꥓ְb␇);
+Test_N(q␇a゙꥓्ְb␇, q␇a゙꥓्ְb␇, q␇a゙꥓्ְb␇, q␇a゙꥓्ְb␇, q␇a゙꥓्ְb␇);
+Test_N(q␇a𖿰़꦳゙b␇, q␇a𖿰़꦳゙b␇, q␇a𖿰़꦳゙b␇, q␇a𖿰़꦳゙b␇, q␇a𖿰़꦳゙b␇);
+Test_N(q␇a𖿰꦳़゙b␇, q␇a𖿰꦳़゙b␇, q␇a𖿰꦳़゙b␇, q␇a𖿰꦳़゙b␇, q␇a𖿰꦳़゙b␇);
+Test_N(q␇a゙्꧀ְb␇, q␇a゙्꧀ְb␇, q␇a゙्꧀ְb␇, q␇a゙्꧀ְb␇, q␇a゙्꧀ְb␇);
+Test_N(q␇a゙꧀्ְb␇, q␇a゙꧀्ְb␇, q␇a゙꧀्ְb␇, q␇a゙꧀्ְb␇, q␇a゙꧀्ְb␇);
+Test_N(q␇à֮ꪰ̕b␇, q␇à֮ꪰ̕b␇, q␇à֮ꪰ̕b␇, q␇à֮ꪰ̕b␇, q␇à֮ꪰ̕b␇);
+Test_N(q␇a֮ꪰ̀̕b␇, q␇a֮ꪰ̀̕b␇, q␇a֮ꪰ̀̕b␇, q␇a֮ꪰ̀̕b␇, q␇a֮ꪰ̀̕b␇);
+Test_N(q␇à֮ꪲ̕b␇, q␇à֮ꪲ̕b␇, q␇à֮ꪲ̕b␇, q␇à֮ꪲ̕b␇, q␇à֮ꪲ̕b␇);
+Test_N(q␇a֮ꪲ̀̕b␇, q␇a֮ꪲ̀̕b␇, q␇a֮ꪲ̀̕b␇, q␇a֮ꪲ̀̕b␇, q␇a֮ꪲ̀̕b␇);
+Test_N(q␇à֮ꪳ̕b␇, q␇à֮ꪳ̕b␇, q␇à֮ꪳ̕b␇, q␇à֮ꪳ̕b␇, q␇à֮ꪳ̕b␇);
+Test_N(q␇a֮ꪳ̀̕b␇, q␇a֮ꪳ̀̕b␇, q␇a֮ꪳ̀̕b␇, q␇a֮ꪳ̀̕b␇, q␇a֮ꪳ̀̕b␇);
+Test_N(q␇a᷺̖ꪴ֚b␇, q␇a᷺̖ꪴ֚b␇, q␇a᷺̖ꪴ֚b␇, q␇a᷺̖ꪴ֚b␇, q␇a᷺̖ꪴ֚b␇);
+Test_N(q␇a᷺ꪴ̖֚b␇, q␇a᷺ꪴ̖֚b␇, q␇a᷺ꪴ̖֚b␇, q␇a᷺ꪴ̖֚b␇, q␇a᷺ꪴ̖֚b␇);
+Test_N(q␇à֮ꪷ̕b␇, q␇à֮ꪷ̕b␇, q␇à֮ꪷ̕b␇, q␇à֮ꪷ̕b␇, q␇à֮ꪷ̕b␇);
+Test_N(q␇a֮ꪷ̀̕b␇, q␇a֮ꪷ̀̕b␇, q␇a֮ꪷ̀̕b␇, q␇a֮ꪷ̀̕b␇, q␇a֮ꪷ̀̕b␇);
+Test_N(q␇à֮ꪸ̕b␇, q␇à֮ꪸ̕b␇, q␇à֮ꪸ̕b␇, q␇à֮ꪸ̕b␇, q␇à֮ꪸ̕b␇);
+Test_N(q␇a֮ꪸ̀̕b␇, q␇a֮ꪸ̀̕b␇, q␇a֮ꪸ̀̕b␇, q␇a֮ꪸ̀̕b␇, q␇a֮ꪸ̀̕b␇);
+Test_N(q␇à֮ꪾ̕b␇, q␇à֮ꪾ̕b␇, q␇à֮ꪾ̕b␇, q␇à֮ꪾ̕b␇, q␇à֮ꪾ̕b␇);
+Test_N(q␇a֮ꪾ̀̕b␇, q␇a֮ꪾ̀̕b␇, q␇a֮ꪾ̀̕b␇, q␇a֮ꪾ̀̕b␇, q␇a֮ꪾ̀̕b␇);
+Test_N(q␇à֮꪿̕b␇, q␇à֮꪿̕b␇, q␇à֮꪿̕b␇, q␇à֮꪿̕b␇, q␇à֮꪿̕b␇);
+Test_N(q␇a֮꪿̀̕b␇, q␇a֮꪿̀̕b␇, q␇a֮꪿̀̕b␇, q␇a֮꪿̀̕b␇, q␇a֮꪿̀̕b␇);
+Test_N(q␇à֮꫁̕b␇, q␇à֮꫁̕b␇, q␇à֮꫁̕b␇, q␇à֮꫁̕b␇, q␇à֮꫁̕b␇);
+Test_N(q␇a֮꫁̀̕b␇, q␇a֮꫁̀̕b␇, q␇a֮꫁̀̕b␇, q␇a֮꫁̀̕b␇, q␇a֮꫁̀̕b␇);
+Test_N(q␇a゙्꫶ְb␇, q␇a゙्꫶ְb␇, q␇a゙्꫶ְb␇, q␇a゙्꫶ְb␇, q␇a゙्꫶ְb␇);
+Test_N(q␇a゙꫶्ְb␇, q␇a゙꫶्ְb␇, q␇a゙꫶्ְb␇, q␇a゙꫶्ְb␇, q␇a゙꫶्ְb␇);
+Test_N(q␇a゙्꯭ְb␇, q␇a゙्꯭ְb␇, q␇a゙्꯭ְb␇, q␇a゙्꯭ְb␇, q␇a゙्꯭ְb␇);
+Test_N(q␇a゙꯭्ְb␇, q␇a゙꯭्ְb␇, q␇a゙꯭्ְb␇, q␇a゙꯭्ְb␇, q␇a゙꯭्ְb␇);
+Test_N(q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇);
+Test_N(q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇, q␇aׂﬞﬞًb␇);
+Test_N(q␇à֮︠̕b␇, q␇à֮︠̕b␇, q␇à֮︠̕b␇, q␇à֮︠̕b␇, q␇à֮︠̕b␇);
+Test_N(q␇a֮︠̀̕b␇, q␇a֮︠̀̕b␇, q␇a֮︠̀̕b␇, q␇a֮︠̀̕b␇, q␇a֮︠̀̕b␇);
+Test_N(q␇à֮︡̕b␇, q␇à֮︡̕b␇, q␇à֮︡̕b␇, q␇à֮︡̕b␇, q␇à֮︡̕b␇);
+Test_N(q␇a֮︡̀̕b␇, q␇a֮︡̀̕b␇, q␇a֮︡̀̕b␇, q␇a֮︡̀̕b␇, q␇a֮︡̀̕b␇);
+Test_N(q␇à֮︢̕b␇, q␇à֮︢̕b␇, q␇à֮︢̕b␇, q␇à֮︢̕b␇, q␇à֮︢̕b␇);
+Test_N(q␇a֮︢̀̕b␇, q␇a֮︢̀̕b␇, q␇a֮︢̀̕b␇, q␇a֮︢̀̕b␇, q␇a֮︢̀̕b␇);
+Test_N(q␇à֮︣̕b␇, q␇à֮︣̕b␇, q␇à֮︣̕b␇, q␇à֮︣̕b␇, q␇à֮︣̕b␇);
+Test_N(q␇a֮︣̀̕b␇, q␇a֮︣̀̕b␇, q␇a֮︣̀̕b␇, q␇a֮︣̀̕b␇, q␇a֮︣̀̕b␇);
+Test_N(q␇à֮︤̕b␇, q␇à֮︤̕b␇, q␇à֮︤̕b␇, q␇à֮︤̕b␇, q␇à֮︤̕b␇);
+Test_N(q␇a֮︤̀̕b␇, q␇a֮︤̀̕b␇, q␇a֮︤̀̕b␇, q␇a֮︤̀̕b␇, q␇a֮︤̀̕b␇);
+Test_N(q␇à֮︥̕b␇, q␇à֮︥̕b␇, q␇à֮︥̕b␇, q␇à֮︥̕b␇, q␇à֮︥̕b␇);
+Test_N(q␇a֮︥̀̕b␇, q␇a֮︥̀̕b␇, q␇a֮︥̀̕b␇, q␇a֮︥̀̕b␇, q␇a֮︥̀̕b␇);
+Test_N(q␇à֮︦̕b␇, q␇à֮︦̕b␇, q␇à֮︦̕b␇, q␇à֮︦̕b␇, q␇à֮︦̕b␇);
+Test_N(q␇a֮︦̀̕b␇, q␇a֮︦̀̕b␇, q␇a֮︦̀̕b␇, q␇a֮︦̀̕b␇, q␇a֮︦̀̕b␇);
+Test_N(q␇a᷺̖︧֚b␇, q␇a᷺̖︧֚b␇, q␇a᷺̖︧֚b␇, q␇a᷺̖︧֚b␇, q␇a᷺̖︧֚b␇);
+Test_N(q␇a᷺︧̖֚b␇, q␇a᷺︧̖֚b␇, q␇a᷺︧̖֚b␇, q␇a᷺︧̖֚b␇, q␇a᷺︧̖֚b␇);
+Test_N(q␇a᷺̖︨֚b␇, q␇a᷺̖︨֚b␇, q␇a᷺̖︨֚b␇, q␇a᷺̖︨֚b␇, q␇a᷺̖︨֚b␇);
+Test_N(q␇a᷺︨̖֚b␇, q␇a᷺︨̖֚b␇, q␇a᷺︨̖֚b␇, q␇a᷺︨̖֚b␇, q␇a᷺︨̖֚b␇);
+Test_N(q␇a᷺̖︩֚b␇, q␇a᷺̖︩֚b␇, q␇a᷺̖︩֚b␇, q␇a᷺̖︩֚b␇, q␇a᷺̖︩֚b␇);
+Test_N(q␇a᷺︩̖֚b␇, q␇a᷺︩̖֚b␇, q␇a᷺︩̖֚b␇, q␇a᷺︩̖֚b␇, q␇a᷺︩̖֚b␇);
+Test_N(q␇a᷺̖︪֚b␇, q␇a᷺̖︪֚b␇, q␇a᷺̖︪֚b␇, q␇a᷺̖︪֚b␇, q␇a᷺̖︪֚b␇);
+Test_N(q␇a᷺︪̖֚b␇, q␇a᷺︪̖֚b␇, q␇a᷺︪̖֚b␇, q␇a᷺︪̖֚b␇, q␇a᷺︪̖֚b␇);
+Test_N(q␇a᷺̖︫֚b␇, q␇a᷺̖︫֚b␇, q␇a᷺̖︫֚b␇, q␇a᷺̖︫֚b␇, q␇a᷺̖︫֚b␇);
+Test_N(q␇a᷺︫̖֚b␇, q␇a᷺︫̖֚b␇, q␇a᷺︫̖֚b␇, q␇a᷺︫̖֚b␇, q␇a᷺︫̖֚b␇);
+Test_N(q␇a᷺̖︬֚b␇, q␇a᷺̖︬֚b␇, q␇a᷺̖︬֚b␇, q␇a᷺̖︬֚b␇, q␇a᷺̖︬֚b␇);
+Test_N(q␇a᷺︬̖֚b␇, q␇a᷺︬̖֚b␇, q␇a᷺︬̖֚b␇, q␇a᷺︬̖֚b␇, q␇a᷺︬̖֚b␇);
+Test_N(q␇a᷺̖︭֚b␇, q␇a᷺̖︭֚b␇, q␇a᷺̖︭֚b␇, q␇a᷺̖︭֚b␇, q␇a᷺̖︭֚b␇);
+Test_N(q␇a᷺︭̖֚b␇, q␇a᷺︭̖֚b␇, q␇a᷺︭̖֚b␇, q␇a᷺︭̖֚b␇, q␇a᷺︭̖֚b␇);
+Test_N(q␇à֮︮̕b␇, q␇à֮︮̕b␇, q␇à֮︮̕b␇, q␇à֮︮̕b␇, q␇à֮︮̕b␇);
+Test_N(q␇a֮︮̀̕b␇, q␇a֮︮̀̕b␇, q␇a֮︮̀̕b␇, q␇a֮︮̀̕b␇, q␇a֮︮̀̕b␇);
+Test_N(q␇à֮︯̕b␇, q␇à֮︯̕b␇, q␇à֮︯̕b␇, q␇à֮︯̕b␇, q␇à֮︯̕b␇);
+Test_N(q␇a֮︯̀̕b␇, q␇a֮︯̀̕b␇, q␇a֮︯̀̕b␇, q␇a֮︯̀̕b␇, q␇a֮︯̀̕b␇);
+Test_N(q␇a᷺̖𐇽֚b␇, q␇a᷺̖𐇽֚b␇, q␇a᷺̖𐇽֚b␇, q␇a᷺̖𐇽֚b␇, q␇a᷺̖𐇽֚b␇);
+Test_N(q␇a᷺𐇽̖֚b␇, q␇a᷺𐇽̖֚b␇, q␇a᷺𐇽̖֚b␇, q␇a᷺𐇽̖֚b␇, q␇a᷺𐇽̖֚b␇);
+Test_N(q␇a᷺̖𐋠֚b␇, q␇a᷺̖𐋠֚b␇, q␇a᷺̖𐋠֚b␇, q␇a᷺̖𐋠֚b␇, q␇a᷺̖𐋠֚b␇);
+Test_N(q␇a᷺𐋠̖֚b␇, q␇a᷺𐋠̖֚b␇, q␇a᷺𐋠̖֚b␇, q␇a᷺𐋠̖֚b␇, q␇a᷺𐋠̖֚b␇);
+Test_N(q␇à֮𐍶̕b␇, q␇à֮𐍶̕b␇, q␇à֮𐍶̕b␇, q␇à֮𐍶̕b␇, q␇à֮𐍶̕b␇);
+Test_N(q␇a֮𐍶̀̕b␇, q␇a֮𐍶̀̕b␇, q␇a֮𐍶̀̕b␇, q␇a֮𐍶̀̕b␇, q␇a֮𐍶̀̕b␇);
+Test_N(q␇à֮𐍷̕b␇, q␇à֮𐍷̕b␇, q␇à֮𐍷̕b␇, q␇à֮𐍷̕b␇, q␇à֮𐍷̕b␇);
+Test_N(q␇a֮𐍷̀̕b␇, q␇a֮𐍷̀̕b␇, q␇a֮𐍷̀̕b␇, q␇a֮𐍷̀̕b␇, q␇a֮𐍷̀̕b␇);
+Test_N(q␇à֮𐍸̕b␇, q␇à֮𐍸̕b␇, q␇à֮𐍸̕b␇, q␇à֮𐍸̕b␇, q␇à֮𐍸̕b␇);
+Test_N(q␇a֮𐍸̀̕b␇, q␇a֮𐍸̀̕b␇, q␇a֮𐍸̀̕b␇, q␇a֮𐍸̀̕b␇, q␇a֮𐍸̀̕b␇);
+Test_N(q␇à֮𐍹̕b␇, q␇à֮𐍹̕b␇, q␇à֮𐍹̕b␇, q␇à֮𐍹̕b␇, q␇à֮𐍹̕b␇);
+Test_N(q␇a֮𐍹̀̕b␇, q␇a֮𐍹̀̕b␇, q␇a֮𐍹̀̕b␇, q␇a֮𐍹̀̕b␇, q␇a֮𐍹̀̕b␇);
+Test_N(q␇à֮𐍺̕b␇, q␇à֮𐍺̕b␇, q␇à֮𐍺̕b␇, q␇à֮𐍺̕b␇, q␇à֮𐍺̕b␇);
+Test_N(q␇a֮𐍺̀̕b␇, q␇a֮𐍺̀̕b␇, q␇a֮𐍺̀̕b␇, q␇a֮𐍺̀̕b␇, q␇a֮𐍺̀̕b␇);
+Test_N(q␇a᷺̖𐨍֚b␇, q␇a᷺̖𐨍֚b␇, q␇a᷺̖𐨍֚b␇, q␇a᷺̖𐨍֚b␇, q␇a᷺̖𐨍֚b␇);
+Test_N(q␇a᷺𐨍̖֚b␇, q␇a᷺𐨍̖֚b␇, q␇a᷺𐨍̖֚b␇, q␇a᷺𐨍̖֚b␇, q␇a᷺𐨍̖֚b␇);
+Test_N(q␇à֮𐨏̕b␇, q␇à֮𐨏̕b␇, q␇à֮𐨏̕b␇, q␇à֮𐨏̕b␇, q␇à֮𐨏̕b␇);
+Test_N(q␇a֮𐨏̀̕b␇, q␇a֮𐨏̀̕b␇, q␇a֮𐨏̀̕b␇, q␇a֮𐨏̀̕b␇, q␇a֮𐨏̀̕b␇);
+Test_N(q␇à֮𐨸̕b␇, q␇à֮𐨸̕b␇, q␇à֮𐨸̕b␇, q␇à֮𐨸̕b␇, q␇à֮𐨸̕b␇);
+Test_N(q␇a֮𐨸̀̕b␇, q␇a֮𐨸̀̕b␇, q␇a֮𐨸̀̕b␇, q␇a֮𐨸̀̕b␇, q␇a֮𐨸̀̕b␇);
+Test_N(q␇a̴𐨹𖿰b␇, q␇a̴𐨹𖿰b␇, q␇a̴𐨹𖿰b␇, q␇a̴𐨹𖿰b␇, q␇a̴𐨹𖿰b␇);
+Test_N(q␇a𐨹̴𖿰b␇, q␇a𐨹̴𖿰b␇, q␇a𐨹̴𖿰b␇, q␇a𐨹̴𖿰b␇, q␇a𐨹̴𖿰b␇);
+Test_N(q␇a᷺̖𐨺֚b␇, q␇a᷺̖𐨺֚b␇, q␇a᷺̖𐨺֚b␇, q␇a᷺̖𐨺֚b␇, q␇a᷺̖𐨺֚b␇);
+Test_N(q␇a᷺𐨺̖֚b␇, q␇a᷺𐨺̖֚b␇, q␇a᷺𐨺̖֚b␇, q␇a᷺𐨺̖֚b␇, q␇a᷺𐨺̖֚b␇);
+Test_N(q␇a゙्𐨿ְb␇, q␇a゙्𐨿ְb␇, q␇a゙्𐨿ְb␇, q␇a゙्𐨿ְb␇, q␇a゙्𐨿ְb␇);
+Test_N(q␇a゙𐨿्ְb␇, q␇a゙𐨿्ְb␇, q␇a゙𐨿्ְb␇, q␇a゙𐨿्ְb␇, q␇a゙𐨿्ְb␇);
+Test_N(q␇à֮𐫥̕b␇, q␇à֮𐫥̕b␇, q␇à֮𐫥̕b␇, q␇à֮𐫥̕b␇, q␇à֮𐫥̕b␇);
+Test_N(q␇a֮𐫥̀̕b␇, q␇a֮𐫥̀̕b␇, q␇a֮𐫥̀̕b␇, q␇a֮𐫥̀̕b␇, q␇a֮𐫥̀̕b␇);
+Test_N(q␇a᷺̖𐫦֚b␇, q␇a᷺̖𐫦֚b␇, q␇a᷺̖𐫦֚b␇, q␇a᷺̖𐫦֚b␇, q␇a᷺̖𐫦֚b␇);
+Test_N(q␇a᷺𐫦̖֚b␇, q␇a᷺𐫦̖֚b␇, q␇a᷺𐫦̖֚b␇, q␇a᷺𐫦̖֚b␇, q␇a᷺𐫦̖֚b␇);
+Test_N(q␇à֮𐴤̕b␇, q␇à֮𐴤̕b␇, q␇à֮𐴤̕b␇, q␇à֮𐴤̕b␇, q␇à֮𐴤̕b␇);
+Test_N(q␇a֮𐴤̀̕b␇, q␇a֮𐴤̀̕b␇, q␇a֮𐴤̀̕b␇, q␇a֮𐴤̀̕b␇, q␇a֮𐴤̀̕b␇);
+Test_N(q␇à֮𐴥̕b␇, q␇à֮𐴥̕b␇, q␇à֮𐴥̕b␇, q␇à֮𐴥̕b␇, q␇à֮𐴥̕b␇);
+Test_N(q␇a֮𐴥̀̕b␇, q␇a֮𐴥̀̕b␇, q␇a֮𐴥̀̕b␇, q␇a֮𐴥̀̕b␇, q␇a֮𐴥̀̕b␇);
+Test_N(q␇à֮𐴦̕b␇, q␇à֮𐴦̕b␇, q␇à֮𐴦̕b␇, q␇à֮𐴦̕b␇, q␇à֮𐴦̕b␇);
+Test_N(q␇a֮𐴦̀̕b␇, q␇a֮𐴦̀̕b␇, q␇a֮𐴦̀̕b␇, q␇a֮𐴦̀̕b␇, q␇a֮𐴦̀̕b␇);
+Test_N(q␇à֮𐴧̕b␇, q␇à֮𐴧̕b␇, q␇à֮𐴧̕b␇, q␇à֮𐴧̕b␇, q␇à֮𐴧̕b␇);
+Test_N(q␇a֮𐴧̀̕b␇, q␇a֮𐴧̀̕b␇, q␇a֮𐴧̀̕b␇, q␇a֮𐴧̀̕b␇, q␇a֮𐴧̀̕b␇);
+Test_N(q␇à֮𐺫̕b␇, q␇à֮𐺫̕b␇, q␇à֮𐺫̕b␇, q␇à֮𐺫̕b␇, q␇à֮𐺫̕b␇);
+Test_N(q␇a֮𐺫̀̕b␇, q␇a֮𐺫̀̕b␇, q␇a֮𐺫̀̕b␇, q␇a֮𐺫̀̕b␇, q␇a֮𐺫̀̕b␇);
+Test_N(q␇à֮𐺬̕b␇, q␇à֮𐺬̕b␇, q␇à֮𐺬̕b␇, q␇à֮𐺬̕b␇, q␇à֮𐺬̕b␇);
+Test_N(q␇a֮𐺬̀̕b␇, q␇a֮𐺬̀̕b␇, q␇a֮𐺬̀̕b␇, q␇a֮𐺬̀̕b␇, q␇a֮𐺬̀̕b␇);
+Test_N(q␇a᷺̖𐻽֚b␇, q␇a᷺̖𐻽֚b␇, q␇a᷺̖𐻽֚b␇, q␇a᷺̖𐻽֚b␇, q␇a᷺̖𐻽֚b␇);
+Test_N(q␇a᷺𐻽̖֚b␇, q␇a᷺𐻽̖֚b␇, q␇a᷺𐻽̖֚b␇, q␇a᷺𐻽̖֚b␇, q␇a᷺𐻽̖֚b␇);
+Test_N(q␇a᷺̖𐻾֚b␇, q␇a᷺̖𐻾֚b␇, q␇a᷺̖𐻾֚b␇, q␇a᷺̖𐻾֚b␇, q␇a᷺̖𐻾֚b␇);
+Test_N(q␇a᷺𐻾̖֚b␇, q␇a᷺𐻾̖֚b␇, q␇a᷺𐻾̖֚b␇, q␇a᷺𐻾̖֚b␇, q␇a᷺𐻾̖֚b␇);
+Test_N(q␇a᷺̖𐻿֚b␇, q␇a᷺̖𐻿֚b␇, q␇a᷺̖𐻿֚b␇, q␇a᷺̖𐻿֚b␇, q␇a᷺̖𐻿֚b␇);
+Test_N(q␇a᷺𐻿̖֚b␇, q␇a᷺𐻿̖֚b␇, q␇a᷺𐻿̖֚b␇, q␇a᷺𐻿̖֚b␇, q␇a᷺𐻿̖֚b␇);
+Test_N(q␇a᷺̖𐽆֚b␇, q␇a᷺̖𐽆֚b␇, q␇a᷺̖𐽆֚b␇, q␇a᷺̖𐽆֚b␇, q␇a᷺̖𐽆֚b␇);
+Test_N(q␇a᷺𐽆̖֚b␇, q␇a᷺𐽆̖֚b␇, q␇a᷺𐽆̖֚b␇, q␇a᷺𐽆̖֚b␇, q␇a᷺𐽆̖֚b␇);
+Test_N(q␇a᷺̖𐽇֚b␇, q␇a᷺̖𐽇֚b␇, q␇a᷺̖𐽇֚b␇, q␇a᷺̖𐽇֚b␇, q␇a᷺̖𐽇֚b␇);
+Test_N(q␇a᷺𐽇̖֚b␇, q␇a᷺𐽇̖֚b␇, q␇a᷺𐽇̖֚b␇, q␇a᷺𐽇̖֚b␇, q␇a᷺𐽇̖֚b␇);
+Test_N(q␇à֮𐽈̕b␇, q␇à֮𐽈̕b␇, q␇à֮𐽈̕b␇, q␇à֮𐽈̕b␇, q␇à֮𐽈̕b␇);
+Test_N(q␇a֮𐽈̀̕b␇, q␇a֮𐽈̀̕b␇, q␇a֮𐽈̀̕b␇, q␇a֮𐽈̀̕b␇, q␇a֮𐽈̀̕b␇);
+Test_N(q␇à֮𐽉̕b␇, q␇à֮𐽉̕b␇, q␇à֮𐽉̕b␇, q␇à֮𐽉̕b␇, q␇à֮𐽉̕b␇);
+Test_N(q␇a֮𐽉̀̕b␇, q␇a֮𐽉̀̕b␇, q␇a֮𐽉̀̕b␇, q␇a֮𐽉̀̕b␇, q␇a֮𐽉̀̕b␇);
+Test_N(q␇à֮𐽊̕b␇, q␇à֮𐽊̕b␇, q␇à֮𐽊̕b␇, q␇à֮𐽊̕b␇, q␇à֮𐽊̕b␇);
+Test_N(q␇a֮𐽊̀̕b␇, q␇a֮𐽊̀̕b␇, q␇a֮𐽊̀̕b␇, q␇a֮𐽊̀̕b␇, q␇a֮𐽊̀̕b␇);
+Test_N(q␇a᷺̖𐽋֚b␇, q␇a᷺̖𐽋֚b␇, q␇a᷺̖𐽋֚b␇, q␇a᷺̖𐽋֚b␇, q␇a᷺̖𐽋֚b␇);
+Test_N(q␇a᷺𐽋̖֚b␇, q␇a᷺𐽋̖֚b␇, q␇a᷺𐽋̖֚b␇, q␇a᷺𐽋̖֚b␇, q␇a᷺𐽋̖֚b␇);
+Test_N(q␇à֮𐽌̕b␇, q␇à֮𐽌̕b␇, q␇à֮𐽌̕b␇, q␇à֮𐽌̕b␇, q␇à֮𐽌̕b␇);
+Test_N(q␇a֮𐽌̀̕b␇, q␇a֮𐽌̀̕b␇, q␇a֮𐽌̀̕b␇, q␇a֮𐽌̀̕b␇, q␇a֮𐽌̀̕b␇);
+Test_N(q␇a᷺̖𐽍֚b␇, q␇a᷺̖𐽍֚b␇, q␇a᷺̖𐽍֚b␇, q␇a᷺̖𐽍֚b␇, q␇a᷺̖𐽍֚b␇);
+Test_N(q␇a᷺𐽍̖֚b␇, q␇a᷺𐽍̖֚b␇, q␇a᷺𐽍̖֚b␇, q␇a᷺𐽍̖֚b␇, q␇a᷺𐽍̖֚b␇);
+Test_N(q␇a᷺̖𐽎֚b␇, q␇a᷺̖𐽎֚b␇, q␇a᷺̖𐽎֚b␇, q␇a᷺̖𐽎֚b␇, q␇a᷺̖𐽎֚b␇);
+Test_N(q␇a᷺𐽎̖֚b␇, q␇a᷺𐽎̖֚b␇, q␇a᷺𐽎̖֚b␇, q␇a᷺𐽎̖֚b␇, q␇a᷺𐽎̖֚b␇);
+Test_N(q␇a᷺̖𐽏֚b␇, q␇a᷺̖𐽏֚b␇, q␇a᷺̖𐽏֚b␇, q␇a᷺̖𐽏֚b␇, q␇a᷺̖𐽏֚b␇);
+Test_N(q␇a᷺𐽏̖֚b␇, q␇a᷺𐽏̖֚b␇, q␇a᷺𐽏̖֚b␇, q␇a᷺𐽏̖֚b␇, q␇a᷺𐽏̖֚b␇);
+Test_N(q␇a᷺̖𐽐֚b␇, q␇a᷺̖𐽐֚b␇, q␇a᷺̖𐽐֚b␇, q␇a᷺̖𐽐֚b␇, q␇a᷺̖𐽐֚b␇);
+Test_N(q␇a᷺𐽐̖֚b␇, q␇a᷺𐽐̖֚b␇, q␇a᷺𐽐̖֚b␇, q␇a᷺𐽐̖֚b␇, q␇a᷺𐽐̖֚b␇);
+Test_N(q␇à֮𐾂̕b␇, q␇à֮𐾂̕b␇, q␇à֮𐾂̕b␇, q␇à֮𐾂̕b␇, q␇à֮𐾂̕b␇);
+Test_N(q␇a֮𐾂̀̕b␇, q␇a֮𐾂̀̕b␇, q␇a֮𐾂̀̕b␇, q␇a֮𐾂̀̕b␇, q␇a֮𐾂̀̕b␇);
+Test_N(q␇a᷺̖𐾃֚b␇, q␇a᷺̖𐾃֚b␇, q␇a᷺̖𐾃֚b␇, q␇a᷺̖𐾃֚b␇, q␇a᷺̖𐾃֚b␇);
+Test_N(q␇a᷺𐾃̖֚b␇, q␇a᷺𐾃̖֚b␇, q␇a᷺𐾃̖֚b␇, q␇a᷺𐾃̖֚b␇, q␇a᷺𐾃̖֚b␇);
+Test_N(q␇à֮𐾄̕b␇, q␇à֮𐾄̕b␇, q␇à֮𐾄̕b␇, q␇à֮𐾄̕b␇, q␇à֮𐾄̕b␇);
+Test_N(q␇a֮𐾄̀̕b␇, q␇a֮𐾄̀̕b␇, q␇a֮𐾄̀̕b␇, q␇a֮𐾄̀̕b␇, q␇a֮𐾄̀̕b␇);
+Test_N(q␇a᷺̖𐾅֚b␇, q␇a᷺̖𐾅֚b␇, q␇a᷺̖𐾅֚b␇, q␇a᷺̖𐾅֚b␇, q␇a᷺̖𐾅֚b␇);
+Test_N(q␇a᷺𐾅̖֚b␇, q␇a᷺𐾅̖֚b␇, q␇a᷺𐾅̖֚b␇, q␇a᷺𐾅̖֚b␇, q␇a᷺𐾅̖֚b␇);
+Test_N(q␇a゙्𑁆ְb␇, q␇a゙्𑁆ְb␇, q␇a゙्𑁆ְb␇, q␇a゙्𑁆ְb␇, q␇a゙्𑁆ְb␇);
+Test_N(q␇a゙𑁆्ְb␇, q␇a゙𑁆्ְb␇, q␇a゙𑁆्ְb␇, q␇a゙𑁆्ְb␇, q␇a゙𑁆्ְb␇);
+Test_N(q␇a゙्𑁰ְb␇, q␇a゙्𑁰ְb␇, q␇a゙्𑁰ְb␇, q␇a゙्𑁰ְb␇, q␇a゙्𑁰ְb␇);
+Test_N(q␇a゙𑁰्ְb␇, q␇a゙𑁰्ְb␇, q␇a゙𑁰्ְb␇, q␇a゙𑁰्ְb␇, q␇a゙𑁰्ְb␇);
+Test_N(q␇a゙्𑁿ְb␇, q␇a゙्𑁿ְb␇, q␇a゙्𑁿ְb␇, q␇a゙्𑁿ְb␇, q␇a゙्𑁿ְb␇);
+Test_N(q␇a゙𑁿्ְb␇, q␇a゙𑁿्ְb␇, q␇a゙𑁿्ְb␇, q␇a゙𑁿्ְb␇, q␇a゙𑁿्ְb␇);
+Test_N(q␇a゙्𑂹ְb␇, q␇a゙्𑂹ְb␇, q␇a゙्𑂹ְb␇, q␇a゙्𑂹ְb␇, q␇a゙्𑂹ְb␇);
+Test_N(q␇a゙𑂹्ְb␇, q␇a゙𑂹्ְb␇, q␇a゙𑂹्ְb␇, q␇a゙𑂹्ְb␇, q␇a゙𑂹्ְb␇);
+Test_N(q␇a𖿰़𑂺゙b␇, q␇a𖿰़𑂺゙b␇, q␇a𖿰़𑂺゙b␇, q␇a𖿰़𑂺゙b␇, q␇a𖿰़𑂺゙b␇);
+Test_N(q␇a𖿰𑂺़゙b␇, q␇a𖿰𑂺़゙b␇, q␇a𖿰𑂺़゙b␇, q␇a𖿰𑂺़゙b␇, q␇a𖿰𑂺़゙b␇);
+Test_N(q␇à֮𑄀̕b␇, q␇à֮𑄀̕b␇, q␇à֮𑄀̕b␇, q␇à֮𑄀̕b␇, q␇à֮𑄀̕b␇);
+Test_N(q␇a֮𑄀̀̕b␇, q␇a֮𑄀̀̕b␇, q␇a֮𑄀̀̕b␇, q␇a֮𑄀̀̕b␇, q␇a֮𑄀̀̕b␇);
+Test_N(q␇à֮𑄁̕b␇, q␇à֮𑄁̕b␇, q␇à֮𑄁̕b␇, q␇à֮𑄁̕b␇, q␇à֮𑄁̕b␇);
+Test_N(q␇a֮𑄁̀̕b␇, q␇a֮𑄁̀̕b␇, q␇a֮𑄁̀̕b␇, q␇a֮𑄁̀̕b␇, q␇a֮𑄁̀̕b␇);
+Test_N(q␇à֮𑄂̕b␇, q␇à֮𑄂̕b␇, q␇à֮𑄂̕b␇, q␇à֮𑄂̕b␇, q␇à֮𑄂̕b␇);
+Test_N(q␇a֮𑄂̀̕b␇, q␇a֮𑄂̀̕b␇, q␇a֮𑄂̀̕b␇, q␇a֮𑄂̀̕b␇, q␇a֮𑄂̀̕b␇);
+Test_N(q␇a゙्𑄳ְb␇, q␇a゙्𑄳ְb␇, q␇a゙्𑄳ְb␇, q␇a゙्𑄳ְb␇, q␇a゙्𑄳ְb␇);
+Test_N(q␇a゙𑄳्ְb␇, q␇a゙𑄳्ְb␇, q␇a゙𑄳्ְb␇, q␇a゙𑄳्ְb␇, q␇a゙𑄳्ְb␇);
+Test_N(q␇a゙्𑄴ְb␇, q␇a゙्𑄴ְb␇, q␇a゙्𑄴ְb␇, q␇a゙्𑄴ְb␇, q␇a゙्𑄴ְb␇);
+Test_N(q␇a゙𑄴्ְb␇, q␇a゙𑄴्ְb␇, q␇a゙𑄴्ְb␇, q␇a゙𑄴्ְb␇, q␇a゙𑄴्ְb␇);
+Test_N(q␇a𖿰़𑅳゙b␇, q␇a𖿰़𑅳゙b␇, q␇a𖿰़𑅳゙b␇, q␇a𖿰़𑅳゙b␇, q␇a𖿰़𑅳゙b␇);
+Test_N(q␇a𖿰𑅳़゙b␇, q␇a𖿰𑅳़゙b␇, q␇a𖿰𑅳़゙b␇, q␇a𖿰𑅳़゙b␇, q␇a𖿰𑅳़゙b␇);
+Test_N(q␇a゙्𑇀ְb␇, q␇a゙्𑇀ְb␇, q␇a゙्𑇀ְb␇, q␇a゙्𑇀ְb␇, q␇a゙्𑇀ְb␇);
+Test_N(q␇a゙𑇀्ְb␇, q␇a゙𑇀्ְb␇, q␇a゙𑇀्ְb␇, q␇a゙𑇀्ְb␇, q␇a゙𑇀्ְb␇);
+Test_N(q␇a𖿰़𑇊゙b␇, q␇a𖿰़𑇊゙b␇, q␇a𖿰़𑇊゙b␇, q␇a𖿰़𑇊゙b␇, q␇a𖿰़𑇊゙b␇);
+Test_N(q␇a𖿰𑇊़゙b␇, q␇a𖿰𑇊़゙b␇, q␇a𖿰𑇊़゙b␇, q␇a𖿰𑇊़゙b␇, q␇a𖿰𑇊़゙b␇);
+Test_N(q␇a゙्𑈵ְb␇, q␇a゙्𑈵ְb␇, q␇a゙्𑈵ְb␇, q␇a゙्𑈵ְb␇, q␇a゙्𑈵ְb␇);
+Test_N(q␇a゙𑈵्ְb␇, q␇a゙𑈵्ְb␇, q␇a゙𑈵्ְb␇, q␇a゙𑈵्ְb␇, q␇a゙𑈵्ְb␇);
+Test_N(q␇a𖿰़𑈶゙b␇, q␇a𖿰़𑈶゙b␇, q␇a𖿰़𑈶゙b␇, q␇a𖿰़𑈶゙b␇, q␇a𖿰़𑈶゙b␇);
+Test_N(q␇a𖿰𑈶़゙b␇, q␇a𖿰𑈶़゙b␇, q␇a𖿰𑈶़゙b␇, q␇a𖿰𑈶़゙b␇, q␇a𖿰𑈶़゙b␇);
+Test_N(q␇a𖿰़𑋩゙b␇, q␇a𖿰़𑋩゙b␇, q␇a𖿰़𑋩゙b␇, q␇a𖿰़𑋩゙b␇, q␇a𖿰़𑋩゙b␇);
+Test_N(q␇a𖿰𑋩़゙b␇, q␇a𖿰𑋩़゙b␇, q␇a𖿰𑋩़゙b␇, q␇a𖿰𑋩़゙b␇, q␇a𖿰𑋩़゙b␇);
+Test_N(q␇a゙्𑋪ְb␇, q␇a゙्𑋪ְb␇, q␇a゙्𑋪ְb␇, q␇a゙्𑋪ְb␇, q␇a゙्𑋪ְb␇);
+Test_N(q␇a゙𑋪्ְb␇, q␇a゙𑋪्ְb␇, q␇a゙𑋪्ְb␇, q␇a゙𑋪्ְb␇, q␇a゙𑋪्ְb␇);
+Test_N(q␇a𖿰़𑌻゙b␇, q␇a𖿰़𑌻゙b␇, q␇a𖿰़𑌻゙b␇, q␇a𖿰़𑌻゙b␇, q␇a𖿰़𑌻゙b␇);
+Test_N(q␇a𖿰𑌻़゙b␇, q␇a𖿰𑌻़゙b␇, q␇a𖿰𑌻़゙b␇, q␇a𖿰𑌻़゙b␇, q␇a𖿰𑌻़゙b␇);
+Test_N(q␇a𖿰़𑌼゙b␇, q␇a𖿰़𑌼゙b␇, q␇a𖿰़𑌼゙b␇, q␇a𖿰़𑌼゙b␇, q␇a𖿰़𑌼゙b␇);
+Test_N(q␇a𖿰𑌼़゙b␇, q␇a𖿰𑌼़゙b␇, q␇a𖿰𑌼़゙b␇, q␇a𖿰𑌼़゙b␇, q␇a𖿰𑌼़゙b␇);
+Test_N(q␇a゙्𑍍ְb␇, q␇a゙्𑍍ְb␇, q␇a゙्𑍍ְb␇, q␇a゙्𑍍ְb␇, q␇a゙्𑍍ְb␇);
+Test_N(q␇a゙𑍍्ְb␇, q␇a゙𑍍्ְb␇, q␇a゙𑍍्ְb␇, q␇a゙𑍍्ְb␇, q␇a゙𑍍्ְb␇);
+Test_N(q␇à֮𑍦̕b␇, q␇à֮𑍦̕b␇, q␇à֮𑍦̕b␇, q␇à֮𑍦̕b␇, q␇à֮𑍦̕b␇);
+Test_N(q␇a֮𑍦̀̕b␇, q␇a֮𑍦̀̕b␇, q␇a֮𑍦̀̕b␇, q␇a֮𑍦̀̕b␇, q␇a֮𑍦̀̕b␇);
+Test_N(q␇à֮𑍧̕b␇, q␇à֮𑍧̕b␇, q␇à֮𑍧̕b␇, q␇à֮𑍧̕b␇, q␇à֮𑍧̕b␇);
+Test_N(q␇a֮𑍧̀̕b␇, q␇a֮𑍧̀̕b␇, q␇a֮𑍧̀̕b␇, q␇a֮𑍧̀̕b␇, q␇a֮𑍧̀̕b␇);
+Test_N(q␇à֮𑍨̕b␇, q␇à֮𑍨̕b␇, q␇à֮𑍨̕b␇, q␇à֮𑍨̕b␇, q␇à֮𑍨̕b␇);
+Test_N(q␇a֮𑍨̀̕b␇, q␇a֮𑍨̀̕b␇, q␇a֮𑍨̀̕b␇, q␇a֮𑍨̀̕b␇, q␇a֮𑍨̀̕b␇);
+Test_N(q␇à֮𑍩̕b␇, q␇à֮𑍩̕b␇, q␇à֮𑍩̕b␇, q␇à֮𑍩̕b␇, q␇à֮𑍩̕b␇);
+Test_N(q␇a֮𑍩̀̕b␇, q␇a֮𑍩̀̕b␇, q␇a֮𑍩̀̕b␇, q␇a֮𑍩̀̕b␇, q␇a֮𑍩̀̕b␇);
+Test_N(q␇à֮𑍪̕b␇, q␇à֮𑍪̕b␇, q␇à֮𑍪̕b␇, q␇à֮𑍪̕b␇, q␇à֮𑍪̕b␇);
+Test_N(q␇a֮𑍪̀̕b␇, q␇a֮𑍪̀̕b␇, q␇a֮𑍪̀̕b␇, q␇a֮𑍪̀̕b␇, q␇a֮𑍪̀̕b␇);
+Test_N(q␇à֮𑍫̕b␇, q␇à֮𑍫̕b␇, q␇à֮𑍫̕b␇, q␇à֮𑍫̕b␇, q␇à֮𑍫̕b␇);
+Test_N(q␇a֮𑍫̀̕b␇, q␇a֮𑍫̀̕b␇, q␇a֮𑍫̀̕b␇, q␇a֮𑍫̀̕b␇, q␇a֮𑍫̀̕b␇);
+Test_N(q␇à֮𑍬̕b␇, q␇à֮𑍬̕b␇, q␇à֮𑍬̕b␇, q␇à֮𑍬̕b␇, q␇à֮𑍬̕b␇);
+Test_N(q␇a֮𑍬̀̕b␇, q␇a֮𑍬̀̕b␇, q␇a֮𑍬̀̕b␇, q␇a֮𑍬̀̕b␇, q␇a֮𑍬̀̕b␇);
+Test_N(q␇à֮𑍰̕b␇, q␇à֮𑍰̕b␇, q␇à֮𑍰̕b␇, q␇à֮𑍰̕b␇, q␇à֮𑍰̕b␇);
+Test_N(q␇a֮𑍰̀̕b␇, q␇a֮𑍰̀̕b␇, q␇a֮𑍰̀̕b␇, q␇a֮𑍰̀̕b␇, q␇a֮𑍰̀̕b␇);
+Test_N(q␇à֮𑍱̕b␇, q␇à֮𑍱̕b␇, q␇à֮𑍱̕b␇, q␇à֮𑍱̕b␇, q␇à֮𑍱̕b␇);
+Test_N(q␇a֮𑍱̀̕b␇, q␇a֮𑍱̀̕b␇, q␇a֮𑍱̀̕b␇, q␇a֮𑍱̀̕b␇, q␇a֮𑍱̀̕b␇);
+Test_N(q␇à֮𑍲̕b␇, q␇à֮𑍲̕b␇, q␇à֮𑍲̕b␇, q␇à֮𑍲̕b␇, q␇à֮𑍲̕b␇);
+Test_N(q␇a֮𑍲̀̕b␇, q␇a֮𑍲̀̕b␇, q␇a֮𑍲̀̕b␇, q␇a֮𑍲̀̕b␇, q␇a֮𑍲̀̕b␇);
+Test_N(q␇à֮𑍳̕b␇, q␇à֮𑍳̕b␇, q␇à֮𑍳̕b␇, q␇à֮𑍳̕b␇, q␇à֮𑍳̕b␇);
+Test_N(q␇a֮𑍳̀̕b␇, q␇a֮𑍳̀̕b␇, q␇a֮𑍳̀̕b␇, q␇a֮𑍳̀̕b␇, q␇a֮𑍳̀̕b␇);
+Test_N(q␇à֮𑍴̕b␇, q␇à֮𑍴̕b␇, q␇à֮𑍴̕b␇, q␇à֮𑍴̕b␇, q␇à֮𑍴̕b␇);
+Test_N(q␇a֮𑍴̀̕b␇, q␇a֮𑍴̀̕b␇, q␇a֮𑍴̀̕b␇, q␇a֮𑍴̀̕b␇, q␇a֮𑍴̀̕b␇);
+Test_N(q␇a゙्𑑂ְb␇, q␇a゙्𑑂ְb␇, q␇a゙्𑑂ְb␇, q␇a゙्𑑂ְb␇, q␇a゙्𑑂ְb␇);
+Test_N(q␇a゙𑑂्ְb␇, q␇a゙𑑂्ְb␇, q␇a゙𑑂्ְb␇, q␇a゙𑑂्ְb␇, q␇a゙𑑂्ְb␇);
+Test_N(q␇a𖿰़𑑆゙b␇, q␇a𖿰़𑑆゙b␇, q␇a𖿰़𑑆゙b␇, q␇a𖿰़𑑆゙b␇, q␇a𖿰़𑑆゙b␇);
+Test_N(q␇a𖿰𑑆़゙b␇, q␇a𖿰𑑆़゙b␇, q␇a𖿰𑑆़゙b␇, q␇a𖿰𑑆़゙b␇, q␇a𖿰𑑆़゙b␇);
+Test_N(q␇à֮𑑞̕b␇, q␇à֮𑑞̕b␇, q␇à֮𑑞̕b␇, q␇à֮𑑞̕b␇, q␇à֮𑑞̕b␇);
+Test_N(q␇a֮𑑞̀̕b␇, q␇a֮𑑞̀̕b␇, q␇a֮𑑞̀̕b␇, q␇a֮𑑞̀̕b␇, q␇a֮𑑞̀̕b␇);
+Test_N(q␇a゙्𑓂ְb␇, q␇a゙्𑓂ְb␇, q␇a゙्𑓂ְb␇, q␇a゙्𑓂ְb␇, q␇a゙्𑓂ְb␇);
+Test_N(q␇a゙𑓂्ְb␇, q␇a゙𑓂्ְb␇, q␇a゙𑓂्ְb␇, q␇a゙𑓂्ְb␇, q␇a゙𑓂्ְb␇);
+Test_N(q␇a𖿰़𑓃゙b␇, q␇a𖿰़𑓃゙b␇, q␇a𖿰़𑓃゙b␇, q␇a𖿰़𑓃゙b␇, q␇a𖿰़𑓃゙b␇);
+Test_N(q␇a𖿰𑓃़゙b␇, q␇a𖿰𑓃़゙b␇, q␇a𖿰𑓃़゙b␇, q␇a𖿰𑓃़゙b␇, q␇a𖿰𑓃़゙b␇);
+Test_N(q␇a゙्𑖿ְb␇, q␇a゙्𑖿ְb␇, q␇a゙्𑖿ְb␇, q␇a゙्𑖿ְb␇, q␇a゙्𑖿ְb␇);
+Test_N(q␇a゙𑖿्ְb␇, q␇a゙𑖿्ְb␇, q␇a゙𑖿्ְb␇, q␇a゙𑖿्ְb␇, q␇a゙𑖿्ְb␇);
+Test_N(q␇a𖿰़𑗀゙b␇, q␇a𖿰़𑗀゙b␇, q␇a𖿰़𑗀゙b␇, q␇a𖿰़𑗀゙b␇, q␇a𖿰़𑗀゙b␇);
+Test_N(q␇a𖿰𑗀़゙b␇, q␇a𖿰𑗀़゙b␇, q␇a𖿰𑗀़゙b␇, q␇a𖿰𑗀़゙b␇, q␇a𖿰𑗀़゙b␇);
+Test_N(q␇a゙्𑘿ְb␇, q␇a゙्𑘿ְb␇, q␇a゙्𑘿ְb␇, q␇a゙्𑘿ְb␇, q␇a゙्𑘿ְb␇);
+Test_N(q␇a゙𑘿्ְb␇, q␇a゙𑘿्ְb␇, q␇a゙𑘿्ְb␇, q␇a゙𑘿्ְb␇, q␇a゙𑘿्ְb␇);
+Test_N(q␇a゙्𑚶ְb␇, q␇a゙्𑚶ְb␇, q␇a゙्𑚶ְb␇, q␇a゙्𑚶ְb␇, q␇a゙्𑚶ְb␇);
+Test_N(q␇a゙𑚶्ְb␇, q␇a゙𑚶्ְb␇, q␇a゙𑚶्ְb␇, q␇a゙𑚶्ְb␇, q␇a゙𑚶्ְb␇);
+Test_N(q␇a𖿰़𑚷゙b␇, q␇a𖿰़𑚷゙b␇, q␇a𖿰़𑚷゙b␇, q␇a𖿰़𑚷゙b␇, q␇a𖿰़𑚷゙b␇);
+Test_N(q␇a𖿰𑚷़゙b␇, q␇a𖿰𑚷़゙b␇, q␇a𖿰𑚷़゙b␇, q␇a𖿰𑚷़゙b␇, q␇a𖿰𑚷़゙b␇);
+Test_N(q␇a゙्𑜫ְb␇, q␇a゙्𑜫ְb␇, q␇a゙्𑜫ְb␇, q␇a゙्𑜫ְb␇, q␇a゙्𑜫ְb␇);
+Test_N(q␇a゙𑜫्ְb␇, q␇a゙𑜫्ְb␇, q␇a゙𑜫्ְb␇, q␇a゙𑜫्ְb␇, q␇a゙𑜫्ְb␇);
+Test_N(q␇a゙्𑠹ְb␇, q␇a゙्𑠹ְb␇, q␇a゙्𑠹ְb␇, q␇a゙्𑠹ְb␇, q␇a゙्𑠹ְb␇);
+Test_N(q␇a゙𑠹्ְb␇, q␇a゙𑠹्ְb␇, q␇a゙𑠹्ְb␇, q␇a゙𑠹्ְb␇, q␇a゙𑠹्ְb␇);
+Test_N(q␇a𖿰़𑠺゙b␇, q␇a𖿰़𑠺゙b␇, q␇a𖿰़𑠺゙b␇, q␇a𖿰़𑠺゙b␇, q␇a𖿰़𑠺゙b␇);
+Test_N(q␇a𖿰𑠺़゙b␇, q␇a𖿰𑠺़゙b␇, q␇a𖿰𑠺़゙b␇, q␇a𖿰𑠺़゙b␇, q␇a𖿰𑠺़゙b␇);
+Test_N(q␇a゙्𑤽ְb␇, q␇a゙्𑤽ְb␇, q␇a゙्𑤽ְb␇, q␇a゙्𑤽ְb␇, q␇a゙्𑤽ְb␇);
+Test_N(q␇a゙𑤽्ְb␇, q␇a゙𑤽्ְb␇, q␇a゙𑤽्ְb␇, q␇a゙𑤽्ְb␇, q␇a゙𑤽्ְb␇);
+Test_N(q␇a゙्𑤾ְb␇, q␇a゙्𑤾ְb␇, q␇a゙्𑤾ְb␇, q␇a゙्𑤾ְb␇, q␇a゙्𑤾ְb␇);
+Test_N(q␇a゙𑤾्ְb␇, q␇a゙𑤾्ְb␇, q␇a゙𑤾्ְb␇, q␇a゙𑤾्ְb␇, q␇a゙𑤾्ְb␇);
+Test_N(q␇a𖿰़𑥃゙b␇, q␇a𖿰़𑥃゙b␇, q␇a𖿰़𑥃゙b␇, q␇a𖿰़𑥃゙b␇, q␇a𖿰़𑥃゙b␇);
+Test_N(q␇a𖿰𑥃़゙b␇, q␇a𖿰𑥃़゙b␇, q␇a𖿰𑥃़゙b␇, q␇a𖿰𑥃़゙b␇, q␇a𖿰𑥃़゙b␇);
+Test_N(q␇a゙्𑧠ְb␇, q␇a゙्𑧠ְb␇, q␇a゙्𑧠ְb␇, q␇a゙्𑧠ְb␇, q␇a゙्𑧠ְb␇);
+Test_N(q␇a゙𑧠्ְb␇, q␇a゙𑧠्ְb␇, q␇a゙𑧠्ְb␇, q␇a゙𑧠्ְb␇, q␇a゙𑧠्ְb␇);
+Test_N(q␇a゙्𑨴ְb␇, q␇a゙्𑨴ְb␇, q␇a゙्𑨴ְb␇, q␇a゙्𑨴ְb␇, q␇a゙्𑨴ְb␇);
+Test_N(q␇a゙𑨴्ְb␇, q␇a゙𑨴्ְb␇, q␇a゙𑨴्ְb␇, q␇a゙𑨴्ְb␇, q␇a゙𑨴्ְb␇);
+Test_N(q␇a゙्𑩇ְb␇, q␇a゙्𑩇ְb␇, q␇a゙्𑩇ְb␇, q␇a゙्𑩇ְb␇, q␇a゙्𑩇ְb␇);
+Test_N(q␇a゙𑩇्ְb␇, q␇a゙𑩇्ְb␇, q␇a゙𑩇्ְb␇, q␇a゙𑩇्ְb␇, q␇a゙𑩇्ְb␇);
+Test_N(q␇a゙्𑪙ְb␇, q␇a゙्𑪙ְb␇, q␇a゙्𑪙ְb␇, q␇a゙्𑪙ְb␇, q␇a゙्𑪙ְb␇);
+Test_N(q␇a゙𑪙्ְb␇, q␇a゙𑪙्ְb␇, q␇a゙𑪙्ְb␇, q␇a゙𑪙्ְb␇, q␇a゙𑪙्ְb␇);
+Test_N(q␇a゙्𑰿ְb␇, q␇a゙्𑰿ְb␇, q␇a゙्𑰿ְb␇, q␇a゙्𑰿ְb␇, q␇a゙्𑰿ְb␇);
+Test_N(q␇a゙𑰿्ְb␇, q␇a゙𑰿्ְb␇, q␇a゙𑰿्ְb␇, q␇a゙𑰿्ְb␇, q␇a゙𑰿्ְb␇);
+Test_N(q␇a𖿰़𑵂゙b␇, q␇a𖿰़𑵂゙b␇, q␇a𖿰़𑵂゙b␇, q␇a𖿰़𑵂゙b␇, q␇a𖿰़𑵂゙b␇);
+Test_N(q␇a𖿰𑵂़゙b␇, q␇a𖿰𑵂़゙b␇, q␇a𖿰𑵂़゙b␇, q␇a𖿰𑵂़゙b␇, q␇a𖿰𑵂़゙b␇);
+Test_N(q␇a゙्𑵄ְb␇, q␇a゙्𑵄ְb␇, q␇a゙्𑵄ְb␇, q␇a゙्𑵄ְb␇, q␇a゙्𑵄ְb␇);
+Test_N(q␇a゙𑵄्ְb␇, q␇a゙𑵄्ְb␇, q␇a゙𑵄्ְb␇, q␇a゙𑵄्ְb␇, q␇a゙𑵄्ְb␇);
+Test_N(q␇a゙्𑵅ְb␇, q␇a゙्𑵅ְb␇, q␇a゙्𑵅ְb␇, q␇a゙्𑵅ְb␇, q␇a゙्𑵅ְb␇);
+Test_N(q␇a゙𑵅्ְb␇, q␇a゙𑵅्ְb␇, q␇a゙𑵅्ְb␇, q␇a゙𑵅्ְb␇, q␇a゙𑵅्ְb␇);
+Test_N(q␇a゙्𑶗ְb␇, q␇a゙्𑶗ְb␇, q␇a゙्𑶗ְb␇, q␇a゙्𑶗ְb␇, q␇a゙्𑶗ְb␇);
+Test_N(q␇a゙𑶗्ְb␇, q␇a゙𑶗्ְb␇, q␇a゙𑶗्ְb␇, q␇a゙𑶗्ְb␇, q␇a゙𑶗्ְb␇);
+Test_N(q␇a゙्𑽁ְb␇, q␇a゙्𑽁ְb␇, q␇a゙्𑽁ְb␇, q␇a゙्𑽁ְb␇, q␇a゙्𑽁ְb␇);
+Test_N(q␇a゙𑽁्ְb␇, q␇a゙𑽁्ְb␇, q␇a゙𑽁्ְb␇, q␇a゙𑽁्ְb␇, q␇a゙𑽁्ְb␇);
+Test_N(q␇a゙्𑽂ְb␇, q␇a゙्𑽂ְb␇, q␇a゙्𑽂ְb␇, q␇a゙्𑽂ְb␇, q␇a゙्𑽂ְb␇);
+Test_N(q␇a゙𑽂्ְb␇, q␇a゙𑽂्ְb␇, q␇a゙𑽂्ְb␇, q␇a゙𑽂्ְb␇, q␇a゙𑽂्ְb␇);
+Test_N(q␇a̴𖫰𖿰b␇, q␇a̴𖫰𖿰b␇, q␇a̴𖫰𖿰b␇, q␇a̴𖫰𖿰b␇, q␇a̴𖫰𖿰b␇);
+Test_N(q␇a𖫰̴𖿰b␇, q␇a𖫰̴𖿰b␇, q␇a𖫰̴𖿰b␇, q␇a𖫰̴𖿰b␇, q␇a𖫰̴𖿰b␇);
+Test_N(q␇a̴𖫱𖿰b␇, q␇a̴𖫱𖿰b␇, q␇a̴𖫱𖿰b␇, q␇a̴𖫱𖿰b␇, q␇a̴𖫱𖿰b␇);
+Test_N(q␇a𖫱̴𖿰b␇, q␇a𖫱̴𖿰b␇, q␇a𖫱̴𖿰b␇, q␇a𖫱̴𖿰b␇, q␇a𖫱̴𖿰b␇);
+Test_N(q␇a̴𖫲𖿰b␇, q␇a̴𖫲𖿰b␇, q␇a̴𖫲𖿰b␇, q␇a̴𖫲𖿰b␇, q␇a̴𖫲𖿰b␇);
+Test_N(q␇a𖫲̴𖿰b␇, q␇a𖫲̴𖿰b␇, q␇a𖫲̴𖿰b␇, q␇a𖫲̴𖿰b␇, q␇a𖫲̴𖿰b␇);
+Test_N(q␇a̴𖫳𖿰b␇, q␇a̴𖫳𖿰b␇, q␇a̴𖫳𖿰b␇, q␇a̴𖫳𖿰b␇, q␇a̴𖫳𖿰b␇);
+Test_N(q␇a𖫳̴𖿰b␇, q␇a𖫳̴𖿰b␇, q␇a𖫳̴𖿰b␇, q␇a𖫳̴𖿰b␇, q␇a𖫳̴𖿰b␇);
+Test_N(q␇a̴𖫴𖿰b␇, q␇a̴𖫴𖿰b␇, q␇a̴𖫴𖿰b␇, q␇a̴𖫴𖿰b␇, q␇a̴𖫴𖿰b␇);
+Test_N(q␇a𖫴̴𖿰b␇, q␇a𖫴̴𖿰b␇, q␇a𖫴̴𖿰b␇, q␇a𖫴̴𖿰b␇, q␇a𖫴̴𖿰b␇);
+Test_N(q␇à֮𖬰̕b␇, q␇à֮𖬰̕b␇, q␇à֮𖬰̕b␇, q␇à֮𖬰̕b␇, q␇à֮𖬰̕b␇);
+Test_N(q␇a֮𖬰̀̕b␇, q␇a֮𖬰̀̕b␇, q␇a֮𖬰̀̕b␇, q␇a֮𖬰̀̕b␇, q␇a֮𖬰̀̕b␇);
+Test_N(q␇à֮𖬱̕b␇, q␇à֮𖬱̕b␇, q␇à֮𖬱̕b␇, q␇à֮𖬱̕b␇, q␇à֮𖬱̕b␇);
+Test_N(q␇a֮𖬱̀̕b␇, q␇a֮𖬱̀̕b␇, q␇a֮𖬱̀̕b␇, q␇a֮𖬱̀̕b␇, q␇a֮𖬱̀̕b␇);
+Test_N(q␇à֮𖬲̕b␇, q␇à֮𖬲̕b␇, q␇à֮𖬲̕b␇, q␇à֮𖬲̕b␇, q␇à֮𖬲̕b␇);
+Test_N(q␇a֮𖬲̀̕b␇, q␇a֮𖬲̀̕b␇, q␇a֮𖬲̀̕b␇, q␇a֮𖬲̀̕b␇, q␇a֮𖬲̀̕b␇);
+Test_N(q␇à֮𖬳̕b␇, q␇à֮𖬳̕b␇, q␇à֮𖬳̕b␇, q␇à֮𖬳̕b␇, q␇à֮𖬳̕b␇);
+Test_N(q␇a֮𖬳̀̕b␇, q␇a֮𖬳̀̕b␇, q␇a֮𖬳̀̕b␇, q␇a֮𖬳̀̕b␇, q␇a֮𖬳̀̕b␇);
+Test_N(q␇à֮𖬴̕b␇, q␇à֮𖬴̕b␇, q␇à֮𖬴̕b␇, q␇à֮𖬴̕b␇, q␇à֮𖬴̕b␇);
+Test_N(q␇a֮𖬴̀̕b␇, q␇a֮𖬴̀̕b␇, q␇a֮𖬴̀̕b␇, q␇a֮𖬴̀̕b␇, q␇a֮𖬴̀̕b␇);
+Test_N(q␇à֮𖬵̕b␇, q␇à֮𖬵̕b␇, q␇à֮𖬵̕b␇, q␇à֮𖬵̕b␇, q␇à֮𖬵̕b␇);
+Test_N(q␇a֮𖬵̀̕b␇, q␇a֮𖬵̀̕b␇, q␇a֮𖬵̀̕b␇, q␇a֮𖬵̀̕b␇, q␇a֮𖬵̀̕b␇);
+Test_N(q␇à֮𖬶̕b␇, q␇à֮𖬶̕b␇, q␇à֮𖬶̕b␇, q␇à֮𖬶̕b␇, q␇à֮𖬶̕b␇);
+Test_N(q␇a֮𖬶̀̕b␇, q␇a֮𖬶̀̕b␇, q␇a֮𖬶̀̕b␇, q␇a֮𖬶̀̕b␇, q␇a֮𖬶̀̕b␇);
+Test_N(q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇);
+Test_N(q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇, q␇a̴𖿰𖿰़b␇);
+Test_N(q␇a̴𖿰𖿱़b␇, q␇a̴𖿰𖿱़b␇, q␇a̴𖿰𖿱़b␇, q␇a̴𖿰𖿱़b␇, q␇a̴𖿰𖿱़b␇);
+Test_N(q␇a̴𖿱𖿰़b␇, q␇a̴𖿱𖿰़b␇, q␇a̴𖿱𖿰़b␇, q␇a̴𖿱𖿰़b␇, q␇a̴𖿱𖿰़b␇);
+Test_N(q␇a̴𛲞𖿰b␇, q␇a̴𛲞𖿰b␇, q␇a̴𛲞𖿰b␇, q␇a̴𛲞𖿰b␇, q␇a̴𛲞𖿰b␇);
+Test_N(q␇a𛲞̴𖿰b␇, q␇a𛲞̴𖿰b␇, q␇a𛲞̴𖿰b␇, q␇a𛲞̴𖿰b␇, q␇a𛲞̴𖿰b␇);
+Test_N(q␇a᷎̛𝅥᷺b␇, q␇a᷎̛𝅥᷺b␇, q␇a᷎̛𝅥᷺b␇, q␇a᷎̛𝅥᷺b␇, q␇a᷎̛𝅥᷺b␇);
+Test_N(q␇a᷎𝅥̛᷺b␇, q␇a᷎𝅥̛᷺b␇, q␇a᷎𝅥̛᷺b␇, q␇a᷎𝅥̛᷺b␇, q␇a᷎𝅥̛᷺b␇);
+Test_N(q␇a᷎̛𝅦᷺b␇, q␇a᷎̛𝅦᷺b␇, q␇a᷎̛𝅦᷺b␇, q␇a᷎̛𝅦᷺b␇, q␇a᷎̛𝅦᷺b␇);
+Test_N(q␇a᷎𝅦̛᷺b␇, q␇a᷎𝅦̛᷺b␇, q␇a᷎𝅦̛᷺b␇, q␇a᷎𝅦̛᷺b␇, q␇a᷎𝅦̛᷺b␇);
+Test_N(q␇a̴𝅧𖿰b␇, q␇a̴𝅧𖿰b␇, q␇a̴𝅧𖿰b␇, q␇a̴𝅧𖿰b␇, q␇a̴𝅧𖿰b␇);
+Test_N(q␇a𝅧̴𖿰b␇, q␇a𝅧̴𖿰b␇, q␇a𝅧̴𖿰b␇, q␇a𝅧̴𖿰b␇, q␇a𝅧̴𖿰b␇);
+Test_N(q␇a̴𝅨𖿰b␇, q␇a̴𝅨𖿰b␇, q␇a̴𝅨𖿰b␇, q␇a̴𝅨𖿰b␇, q␇a̴𝅨𖿰b␇);
+Test_N(q␇a𝅨̴𖿰b␇, q␇a𝅨̴𖿰b␇, q␇a𝅨̴𖿰b␇, q␇a𝅨̴𖿰b␇, q␇a𝅨̴𖿰b␇);
+Test_N(q␇a̴𝅩𖿰b␇, q␇a̴𝅩𖿰b␇, q␇a̴𝅩𖿰b␇, q␇a̴𝅩𖿰b␇, q␇a̴𝅩𖿰b␇);
+Test_N(q␇a𝅩̴𖿰b␇, q␇a𝅩̴𖿰b␇, q␇a𝅩̴𖿰b␇, q␇a𝅩̴𖿰b␇, q␇a𝅩̴𖿰b␇);
+Test_N(q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇);
+Test_N(q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇, q␇a〮𝅭𝅭֮b␇);
+Test_N(q␇a᷎̛𝅮᷺b␇, q␇a᷎̛𝅮᷺b␇, q␇a᷎̛𝅮᷺b␇, q␇a᷎̛𝅮᷺b␇, q␇a᷎̛𝅮᷺b␇);
+Test_N(q␇a᷎𝅮̛᷺b␇, q␇a᷎𝅮̛᷺b␇, q␇a᷎𝅮̛᷺b␇, q␇a᷎𝅮̛᷺b␇, q␇a᷎𝅮̛᷺b␇);
+Test_N(q␇a᷎̛𝅯᷺b␇, q␇a᷎̛𝅯᷺b␇, q␇a᷎̛𝅯᷺b␇, q␇a᷎̛𝅯᷺b␇, q␇a᷎̛𝅯᷺b␇);
+Test_N(q␇a᷎𝅯̛᷺b␇, q␇a᷎𝅯̛᷺b␇, q␇a᷎𝅯̛᷺b␇, q␇a᷎𝅯̛᷺b␇, q␇a᷎𝅯̛᷺b␇);
+Test_N(q␇a᷎̛𝅰᷺b␇, q␇a᷎̛𝅰᷺b␇, q␇a᷎̛𝅰᷺b␇, q␇a᷎̛𝅰᷺b␇, q␇a᷎̛𝅰᷺b␇);
+Test_N(q␇a᷎𝅰̛᷺b␇, q␇a᷎𝅰̛᷺b␇, q␇a᷎𝅰̛᷺b␇, q␇a᷎𝅰̛᷺b␇, q␇a᷎𝅰̛᷺b␇);
+Test_N(q␇a᷎̛𝅱᷺b␇, q␇a᷎̛𝅱᷺b␇, q␇a᷎̛𝅱᷺b␇, q␇a᷎̛𝅱᷺b␇, q␇a᷎̛𝅱᷺b␇);
+Test_N(q␇a᷎𝅱̛᷺b␇, q␇a᷎𝅱̛᷺b␇, q␇a᷎𝅱̛᷺b␇, q␇a᷎𝅱̛᷺b␇, q␇a᷎𝅱̛᷺b␇);
+Test_N(q␇a᷎̛𝅲᷺b␇, q␇a᷎̛𝅲᷺b␇, q␇a᷎̛𝅲᷺b␇, q␇a᷎̛𝅲᷺b␇, q␇a᷎̛𝅲᷺b␇);
+Test_N(q␇a᷎𝅲̛᷺b␇, q␇a᷎𝅲̛᷺b␇, q␇a᷎𝅲̛᷺b␇, q␇a᷎𝅲̛᷺b␇, q␇a᷎𝅲̛᷺b␇);
+Test_N(q␇a᷺̖𝅻֚b␇, q␇a᷺̖𝅻֚b␇, q␇a᷺̖𝅻֚b␇, q␇a᷺̖𝅻֚b␇, q␇a᷺̖𝅻֚b␇);
+Test_N(q␇a᷺𝅻̖֚b␇, q␇a᷺𝅻̖֚b␇, q␇a᷺𝅻̖֚b␇, q␇a᷺𝅻̖֚b␇, q␇a᷺𝅻̖֚b␇);
+Test_N(q␇a᷺̖𝅼֚b␇, q␇a᷺̖𝅼֚b␇, q␇a᷺̖𝅼֚b␇, q␇a᷺̖𝅼֚b␇, q␇a᷺̖𝅼֚b␇);
+Test_N(q␇a᷺𝅼̖֚b␇, q␇a᷺𝅼̖֚b␇, q␇a᷺𝅼̖֚b␇, q␇a᷺𝅼̖֚b␇, q␇a᷺𝅼̖֚b␇);
+Test_N(q␇a᷺̖𝅽֚b␇, q␇a᷺̖𝅽֚b␇, q␇a᷺̖𝅽֚b␇, q␇a᷺̖𝅽֚b␇, q␇a᷺̖𝅽֚b␇);
+Test_N(q␇a᷺𝅽̖֚b␇, q␇a᷺𝅽̖֚b␇, q␇a᷺𝅽̖֚b␇, q␇a᷺𝅽̖֚b␇, q␇a᷺𝅽̖֚b␇);
+Test_N(q␇a᷺̖𝅾֚b␇, q␇a᷺̖𝅾֚b␇, q␇a᷺̖𝅾֚b␇, q␇a᷺̖𝅾֚b␇, q␇a᷺̖𝅾֚b␇);
+Test_N(q␇a᷺𝅾̖֚b␇, q␇a᷺𝅾̖֚b␇, q␇a᷺𝅾̖֚b␇, q␇a᷺𝅾̖֚b␇, q␇a᷺𝅾̖֚b␇);
+Test_N(q␇a᷺̖𝅿֚b␇, q␇a᷺̖𝅿֚b␇, q␇a᷺̖𝅿֚b␇, q␇a᷺̖𝅿֚b␇, q␇a᷺̖𝅿֚b␇);
+Test_N(q␇a᷺𝅿̖֚b␇, q␇a᷺𝅿̖֚b␇, q␇a᷺𝅿̖֚b␇, q␇a᷺𝅿̖֚b␇, q␇a᷺𝅿̖֚b␇);
+Test_N(q␇a᷺̖𝆀֚b␇, q␇a᷺̖𝆀֚b␇, q␇a᷺̖𝆀֚b␇, q␇a᷺̖𝆀֚b␇, q␇a᷺̖𝆀֚b␇);
+Test_N(q␇a᷺𝆀̖֚b␇, q␇a᷺𝆀̖֚b␇, q␇a᷺𝆀̖֚b␇, q␇a᷺𝆀̖֚b␇, q␇a᷺𝆀̖֚b␇);
+Test_N(q␇a᷺̖𝆁֚b␇, q␇a᷺̖𝆁֚b␇, q␇a᷺̖𝆁֚b␇, q␇a᷺̖𝆁֚b␇, q␇a᷺̖𝆁֚b␇);
+Test_N(q␇a᷺𝆁̖֚b␇, q␇a᷺𝆁̖֚b␇, q␇a᷺𝆁̖֚b␇, q␇a᷺𝆁̖֚b␇, q␇a᷺𝆁̖֚b␇);
+Test_N(q␇a᷺̖𝆂֚b␇, q␇a᷺̖𝆂֚b␇, q␇a᷺̖𝆂֚b␇, q␇a᷺̖𝆂֚b␇, q␇a᷺̖𝆂֚b␇);
+Test_N(q␇a᷺𝆂̖֚b␇, q␇a᷺𝆂̖֚b␇, q␇a᷺𝆂̖֚b␇, q␇a᷺𝆂̖֚b␇, q␇a᷺𝆂̖֚b␇);
+Test_N(q␇à֮𝆅̕b␇, q␇à֮𝆅̕b␇, q␇à֮𝆅̕b␇, q␇à֮𝆅̕b␇, q␇à֮𝆅̕b␇);
+Test_N(q␇a֮𝆅̀̕b␇, q␇a֮𝆅̀̕b␇, q␇a֮𝆅̀̕b␇, q␇a֮𝆅̀̕b␇, q␇a֮𝆅̀̕b␇);
+Test_N(q␇à֮𝆆̕b␇, q␇à֮𝆆̕b␇, q␇à֮𝆆̕b␇, q␇à֮𝆆̕b␇, q␇à֮𝆆̕b␇);
+Test_N(q␇a֮𝆆̀̕b␇, q␇a֮𝆆̀̕b␇, q␇a֮𝆆̀̕b␇, q␇a֮𝆆̀̕b␇, q␇a֮𝆆̀̕b␇);
+Test_N(q␇à֮𝆇̕b␇, q␇à֮𝆇̕b␇, q␇à֮𝆇̕b␇, q␇à֮𝆇̕b␇, q␇à֮𝆇̕b␇);
+Test_N(q␇a֮𝆇̀̕b␇, q␇a֮𝆇̀̕b␇, q␇a֮𝆇̀̕b␇, q␇a֮𝆇̀̕b␇, q␇a֮𝆇̀̕b␇);
+Test_N(q␇à֮𝆈̕b␇, q␇à֮𝆈̕b␇, q␇à֮𝆈̕b␇, q␇à֮𝆈̕b␇, q␇à֮𝆈̕b␇);
+Test_N(q␇a֮𝆈̀̕b␇, q␇a֮𝆈̀̕b␇, q␇a֮𝆈̀̕b␇, q␇a֮𝆈̀̕b␇, q␇a֮𝆈̀̕b␇);
+Test_N(q␇à֮𝆉̕b␇, q␇à֮𝆉̕b␇, q␇à֮𝆉̕b␇, q␇à֮𝆉̕b␇, q␇à֮𝆉̕b␇);
+Test_N(q␇a֮𝆉̀̕b␇, q␇a֮𝆉̀̕b␇, q␇a֮𝆉̀̕b␇, q␇a֮𝆉̀̕b␇, q␇a֮𝆉̀̕b␇);
+Test_N(q␇a᷺̖𝆊֚b␇, q␇a᷺̖𝆊֚b␇, q␇a᷺̖𝆊֚b␇, q␇a᷺̖𝆊֚b␇, q␇a᷺̖𝆊֚b␇);
+Test_N(q␇a᷺𝆊̖֚b␇, q␇a᷺𝆊̖֚b␇, q␇a᷺𝆊̖֚b␇, q␇a᷺𝆊̖֚b␇, q␇a᷺𝆊̖֚b␇);
+Test_N(q␇a᷺̖𝆋֚b␇, q␇a᷺̖𝆋֚b␇, q␇a᷺̖𝆋֚b␇, q␇a᷺̖𝆋֚b␇, q␇a᷺̖𝆋֚b␇);
+Test_N(q␇a᷺𝆋̖֚b␇, q␇a᷺𝆋̖֚b␇, q␇a᷺𝆋̖֚b␇, q␇a᷺𝆋̖֚b␇, q␇a᷺𝆋̖֚b␇);
+Test_N(q␇à֮𝆪̕b␇, q␇à֮𝆪̕b␇, q␇à֮𝆪̕b␇, q␇à֮𝆪̕b␇, q␇à֮𝆪̕b␇);
+Test_N(q␇a֮𝆪̀̕b␇, q␇a֮𝆪̀̕b␇, q␇a֮𝆪̀̕b␇, q␇a֮𝆪̀̕b␇, q␇a֮𝆪̀̕b␇);
+Test_N(q␇à֮𝆫̕b␇, q␇à֮𝆫̕b␇, q␇à֮𝆫̕b␇, q␇à֮𝆫̕b␇, q␇à֮𝆫̕b␇);
+Test_N(q␇a֮𝆫̀̕b␇, q␇a֮𝆫̀̕b␇, q␇a֮𝆫̀̕b␇, q␇a֮𝆫̀̕b␇, q␇a֮𝆫̀̕b␇);
+Test_N(q␇à֮𝆬̕b␇, q␇à֮𝆬̕b␇, q␇à֮𝆬̕b␇, q␇à֮𝆬̕b␇, q␇à֮𝆬̕b␇);
+Test_N(q␇a֮𝆬̀̕b␇, q␇a֮𝆬̀̕b␇, q␇a֮𝆬̀̕b␇, q␇a֮𝆬̀̕b␇, q␇a֮𝆬̀̕b␇);
+Test_N(q␇à֮𝆭̕b␇, q␇à֮𝆭̕b␇, q␇à֮𝆭̕b␇, q␇à֮𝆭̕b␇, q␇à֮𝆭̕b␇);
+Test_N(q␇a֮𝆭̀̕b␇, q␇a֮𝆭̀̕b␇, q␇a֮𝆭̀̕b␇, q␇a֮𝆭̀̕b␇, q␇a֮𝆭̀̕b␇);
+Test_N(q␇à֮𝉂̕b␇, q␇à֮𝉂̕b␇, q␇à֮𝉂̕b␇, q␇à֮𝉂̕b␇, q␇à֮𝉂̕b␇);
+Test_N(q␇a֮𝉂̀̕b␇, q␇a֮𝉂̀̕b␇, q␇a֮𝉂̀̕b␇, q␇a֮𝉂̀̕b␇, q␇a֮𝉂̀̕b␇);
+Test_N(q␇à֮𝉃̕b␇, q␇à֮𝉃̕b␇, q␇à֮𝉃̕b␇, q␇à֮𝉃̕b␇, q␇à֮𝉃̕b␇);
+Test_N(q␇a֮𝉃̀̕b␇, q␇a֮𝉃̀̕b␇, q␇a֮𝉃̀̕b␇, q␇a֮𝉃̀̕b␇, q␇a֮𝉃̀̕b␇);
+Test_N(q␇à֮𝉄̕b␇, q␇à֮𝉄̕b␇, q␇à֮𝉄̕b␇, q␇à֮𝉄̕b␇, q␇à֮𝉄̕b␇);
+Test_N(q␇a֮𝉄̀̕b␇, q␇a֮𝉄̀̕b␇, q␇a֮𝉄̀̕b␇, q␇a֮𝉄̀̕b␇, q␇a֮𝉄̀̕b␇);
+Test_N(q␇à֮𞀀̕b␇, q␇à֮𞀀̕b␇, q␇à֮𞀀̕b␇, q␇à֮𞀀̕b␇, q␇à֮𞀀̕b␇);
+Test_N(q␇a֮𞀀̀̕b␇, q␇a֮𞀀̀̕b␇, q␇a֮𞀀̀̕b␇, q␇a֮𞀀̀̕b␇, q␇a֮𞀀̀̕b␇);
+Test_N(q␇à֮𞀁̕b␇, q␇à֮𞀁̕b␇, q␇à֮𞀁̕b␇, q␇à֮𞀁̕b␇, q␇à֮𞀁̕b␇);
+Test_N(q␇a֮𞀁̀̕b␇, q␇a֮𞀁̀̕b␇, q␇a֮𞀁̀̕b␇, q␇a֮𞀁̀̕b␇, q␇a֮𞀁̀̕b␇);
+Test_N(q␇à֮𞀂̕b␇, q␇à֮𞀂̕b␇, q␇à֮𞀂̕b␇, q␇à֮𞀂̕b␇, q␇à֮𞀂̕b␇);
+Test_N(q␇a֮𞀂̀̕b␇, q␇a֮𞀂̀̕b␇, q␇a֮𞀂̀̕b␇, q␇a֮𞀂̀̕b␇, q␇a֮𞀂̀̕b␇);
+Test_N(q␇à֮𞀃̕b␇, q␇à֮𞀃̕b␇, q␇à֮𞀃̕b␇, q␇à֮𞀃̕b␇, q␇à֮𞀃̕b␇);
+Test_N(q␇a֮𞀃̀̕b␇, q␇a֮𞀃̀̕b␇, q␇a֮𞀃̀̕b␇, q␇a֮𞀃̀̕b␇, q␇a֮𞀃̀̕b␇);
+Test_N(q␇à֮𞀄̕b␇, q␇à֮𞀄̕b␇, q␇à֮𞀄̕b␇, q␇à֮𞀄̕b␇, q␇à֮𞀄̕b␇);
+Test_N(q␇a֮𞀄̀̕b␇, q␇a֮𞀄̀̕b␇, q␇a֮𞀄̀̕b␇, q␇a֮𞀄̀̕b␇, q␇a֮𞀄̀̕b␇);
+Test_N(q␇à֮𞀅̕b␇, q␇à֮𞀅̕b␇, q␇à֮𞀅̕b␇, q␇à֮𞀅̕b␇, q␇à֮𞀅̕b␇);
+Test_N(q␇a֮𞀅̀̕b␇, q␇a֮𞀅̀̕b␇, q␇a֮𞀅̀̕b␇, q␇a֮𞀅̀̕b␇, q␇a֮𞀅̀̕b␇);
+Test_N(q␇à֮𞀆̕b␇, q␇à֮𞀆̕b␇, q␇à֮𞀆̕b␇, q␇à֮𞀆̕b␇, q␇à֮𞀆̕b␇);
+Test_N(q␇a֮𞀆̀̕b␇, q␇a֮𞀆̀̕b␇, q␇a֮𞀆̀̕b␇, q␇a֮𞀆̀̕b␇, q␇a֮𞀆̀̕b␇);
+Test_N(q␇à֮𞀈̕b␇, q␇à֮𞀈̕b␇, q␇à֮𞀈̕b␇, q␇à֮𞀈̕b␇, q␇à֮𞀈̕b␇);
+Test_N(q␇a֮𞀈̀̕b␇, q␇a֮𞀈̀̕b␇, q␇a֮𞀈̀̕b␇, q␇a֮𞀈̀̕b␇, q␇a֮𞀈̀̕b␇);
+Test_N(q␇à֮𞀉̕b␇, q␇à֮𞀉̕b␇, q␇à֮𞀉̕b␇, q␇à֮𞀉̕b␇, q␇à֮𞀉̕b␇);
+Test_N(q␇a֮𞀉̀̕b␇, q␇a֮𞀉̀̕b␇, q␇a֮𞀉̀̕b␇, q␇a֮𞀉̀̕b␇, q␇a֮𞀉̀̕b␇);
+Test_N(q␇à֮𞀊̕b␇, q␇à֮𞀊̕b␇, q␇à֮𞀊̕b␇, q␇à֮𞀊̕b␇, q␇à֮𞀊̕b␇);
+Test_N(q␇a֮𞀊̀̕b␇, q␇a֮𞀊̀̕b␇, q␇a֮𞀊̀̕b␇, q␇a֮𞀊̀̕b␇, q␇a֮𞀊̀̕b␇);
+Test_N(q␇à֮𞀋̕b␇, q␇à֮𞀋̕b␇, q␇à֮𞀋̕b␇, q␇à֮𞀋̕b␇, q␇à֮𞀋̕b␇);
+Test_N(q␇a֮𞀋̀̕b␇, q␇a֮𞀋̀̕b␇, q␇a֮𞀋̀̕b␇, q␇a֮𞀋̀̕b␇, q␇a֮𞀋̀̕b␇);
+Test_N(q␇à֮𞀌̕b␇, q␇à֮𞀌̕b␇, q␇à֮𞀌̕b␇, q␇à֮𞀌̕b␇, q␇à֮𞀌̕b␇);
+Test_N(q␇a֮𞀌̀̕b␇, q␇a֮𞀌̀̕b␇, q␇a֮𞀌̀̕b␇, q␇a֮𞀌̀̕b␇, q␇a֮𞀌̀̕b␇);
+Test_N(q␇à֮𞀍̕b␇, q␇à֮𞀍̕b␇, q␇à֮𞀍̕b␇, q␇à֮𞀍̕b␇, q␇à֮𞀍̕b␇);
+Test_N(q␇a֮𞀍̀̕b␇, q␇a֮𞀍̀̕b␇, q␇a֮𞀍̀̕b␇, q␇a֮𞀍̀̕b␇, q␇a֮𞀍̀̕b␇);
+Test_N(q␇à֮𞀎̕b␇, q␇à֮𞀎̕b␇, q␇à֮𞀎̕b␇, q␇à֮𞀎̕b␇, q␇à֮𞀎̕b␇);
+Test_N(q␇a֮𞀎̀̕b␇, q␇a֮𞀎̀̕b␇, q␇a֮𞀎̀̕b␇, q␇a֮𞀎̀̕b␇, q␇a֮𞀎̀̕b␇);
+Test_N(q␇à֮𞀏̕b␇, q␇à֮𞀏̕b␇, q␇à֮𞀏̕b␇, q␇à֮𞀏̕b␇, q␇à֮𞀏̕b␇);
+Test_N(q␇a֮𞀏̀̕b␇, q␇a֮𞀏̀̕b␇, q␇a֮𞀏̀̕b␇, q␇a֮𞀏̀̕b␇, q␇a֮𞀏̀̕b␇);
+Test_N(q␇à֮𞀐̕b␇, q␇à֮𞀐̕b␇, q␇à֮𞀐̕b␇, q␇à֮𞀐̕b␇, q␇à֮𞀐̕b␇);
+Test_N(q␇a֮𞀐̀̕b␇, q␇a֮𞀐̀̕b␇, q␇a֮𞀐̀̕b␇, q␇a֮𞀐̀̕b␇, q␇a֮𞀐̀̕b␇);
+Test_N(q␇à֮𞀑̕b␇, q␇à֮𞀑̕b␇, q␇à֮𞀑̕b␇, q␇à֮𞀑̕b␇, q␇à֮𞀑̕b␇);
+Test_N(q␇a֮𞀑̀̕b␇, q␇a֮𞀑̀̕b␇, q␇a֮𞀑̀̕b␇, q␇a֮𞀑̀̕b␇, q␇a֮𞀑̀̕b␇);
+Test_N(q␇à֮𞀒̕b␇, q␇à֮𞀒̕b␇, q␇à֮𞀒̕b␇, q␇à֮𞀒̕b␇, q␇à֮𞀒̕b␇);
+Test_N(q␇a֮𞀒̀̕b␇, q␇a֮𞀒̀̕b␇, q␇a֮𞀒̀̕b␇, q␇a֮𞀒̀̕b␇, q␇a֮𞀒̀̕b␇);
+Test_N(q␇à֮𞀓̕b␇, q␇à֮𞀓̕b␇, q␇à֮𞀓̕b␇, q␇à֮𞀓̕b␇, q␇à֮𞀓̕b␇);
+Test_N(q␇a֮𞀓̀̕b␇, q␇a֮𞀓̀̕b␇, q␇a֮𞀓̀̕b␇, q␇a֮𞀓̀̕b␇, q␇a֮𞀓̀̕b␇);
+Test_N(q␇à֮𞀔̕b␇, q␇à֮𞀔̕b␇, q␇à֮𞀔̕b␇, q␇à֮𞀔̕b␇, q␇à֮𞀔̕b␇);
+Test_N(q␇a֮𞀔̀̕b␇, q␇a֮𞀔̀̕b␇, q␇a֮𞀔̀̕b␇, q␇a֮𞀔̀̕b␇, q␇a֮𞀔̀̕b␇);
+Test_N(q␇à֮𞀕̕b␇, q␇à֮𞀕̕b␇, q␇à֮𞀕̕b␇, q␇à֮𞀕̕b␇, q␇à֮𞀕̕b␇);
+Test_N(q␇a֮𞀕̀̕b␇, q␇a֮𞀕̀̕b␇, q␇a֮𞀕̀̕b␇, q␇a֮𞀕̀̕b␇, q␇a֮𞀕̀̕b␇);
+Test_N(q␇à֮𞀖̕b␇, q␇à֮𞀖̕b␇, q␇à֮𞀖̕b␇, q␇à֮𞀖̕b␇, q␇à֮𞀖̕b␇);
+Test_N(q␇a֮𞀖̀̕b␇, q␇a֮𞀖̀̕b␇, q␇a֮𞀖̀̕b␇, q␇a֮𞀖̀̕b␇, q␇a֮𞀖̀̕b␇);
+Test_N(q␇à֮𞀗̕b␇, q␇à֮𞀗̕b␇, q␇à֮𞀗̕b␇, q␇à֮𞀗̕b␇, q␇à֮𞀗̕b␇);
+Test_N(q␇a֮𞀗̀̕b␇, q␇a֮𞀗̀̕b␇, q␇a֮𞀗̀̕b␇, q␇a֮𞀗̀̕b␇, q␇a֮𞀗̀̕b␇);
+Test_N(q␇à֮𞀘̕b␇, q␇à֮𞀘̕b␇, q␇à֮𞀘̕b␇, q␇à֮𞀘̕b␇, q␇à֮𞀘̕b␇);
+Test_N(q␇a֮𞀘̀̕b␇, q␇a֮𞀘̀̕b␇, q␇a֮𞀘̀̕b␇, q␇a֮𞀘̀̕b␇, q␇a֮𞀘̀̕b␇);
+Test_N(q␇à֮𞀛̕b␇, q␇à֮𞀛̕b␇, q␇à֮𞀛̕b␇, q␇à֮𞀛̕b␇, q␇à֮𞀛̕b␇);
+Test_N(q␇a֮𞀛̀̕b␇, q␇a֮𞀛̀̕b␇, q␇a֮𞀛̀̕b␇, q␇a֮𞀛̀̕b␇, q␇a֮𞀛̀̕b␇);
+Test_N(q␇à֮𞀜̕b␇, q␇à֮𞀜̕b␇, q␇à֮𞀜̕b␇, q␇à֮𞀜̕b␇, q␇à֮𞀜̕b␇);
+Test_N(q␇a֮𞀜̀̕b␇, q␇a֮𞀜̀̕b␇, q␇a֮𞀜̀̕b␇, q␇a֮𞀜̀̕b␇, q␇a֮𞀜̀̕b␇);
+Test_N(q␇à֮𞀝̕b␇, q␇à֮𞀝̕b␇, q␇à֮𞀝̕b␇, q␇à֮𞀝̕b␇, q␇à֮𞀝̕b␇);
+Test_N(q␇a֮𞀝̀̕b␇, q␇a֮𞀝̀̕b␇, q␇a֮𞀝̀̕b␇, q␇a֮𞀝̀̕b␇, q␇a֮𞀝̀̕b␇);
+Test_N(q␇à֮𞀞̕b␇, q␇à֮𞀞̕b␇, q␇à֮𞀞̕b␇, q␇à֮𞀞̕b␇, q␇à֮𞀞̕b␇);
+Test_N(q␇a֮𞀞̀̕b␇, q␇a֮𞀞̀̕b␇, q␇a֮𞀞̀̕b␇, q␇a֮𞀞̀̕b␇, q␇a֮𞀞̀̕b␇);
+Test_N(q␇à֮𞀟̕b␇, q␇à֮𞀟̕b␇, q␇à֮𞀟̕b␇, q␇à֮𞀟̕b␇, q␇à֮𞀟̕b␇);
+Test_N(q␇a֮𞀟̀̕b␇, q␇a֮𞀟̀̕b␇, q␇a֮𞀟̀̕b␇, q␇a֮𞀟̀̕b␇, q␇a֮𞀟̀̕b␇);
+Test_N(q␇à֮𞀠̕b␇, q␇à֮𞀠̕b␇, q␇à֮𞀠̕b␇, q␇à֮𞀠̕b␇, q␇à֮𞀠̕b␇);
+Test_N(q␇a֮𞀠̀̕b␇, q␇a֮𞀠̀̕b␇, q␇a֮𞀠̀̕b␇, q␇a֮𞀠̀̕b␇, q␇a֮𞀠̀̕b␇);
+Test_N(q␇à֮𞀡̕b␇, q␇à֮𞀡̕b␇, q␇à֮𞀡̕b␇, q␇à֮𞀡̕b␇, q␇à֮𞀡̕b␇);
+Test_N(q␇a֮𞀡̀̕b␇, q␇a֮𞀡̀̕b␇, q␇a֮𞀡̀̕b␇, q␇a֮𞀡̀̕b␇, q␇a֮𞀡̀̕b␇);
+Test_N(q␇à֮𞀣̕b␇, q␇à֮𞀣̕b␇, q␇à֮𞀣̕b␇, q␇à֮𞀣̕b␇, q␇à֮𞀣̕b␇);
+Test_N(q␇a֮𞀣̀̕b␇, q␇a֮𞀣̀̕b␇, q␇a֮𞀣̀̕b␇, q␇a֮𞀣̀̕b␇, q␇a֮𞀣̀̕b␇);
+Test_N(q␇à֮𞀤̕b␇, q␇à֮𞀤̕b␇, q␇à֮𞀤̕b␇, q␇à֮𞀤̕b␇, q␇à֮𞀤̕b␇);
+Test_N(q␇a֮𞀤̀̕b␇, q␇a֮𞀤̀̕b␇, q␇a֮𞀤̀̕b␇, q␇a֮𞀤̀̕b␇, q␇a֮𞀤̀̕b␇);
+Test_N(q␇à֮𞀦̕b␇, q␇à֮𞀦̕b␇, q␇à֮𞀦̕b␇, q␇à֮𞀦̕b␇, q␇à֮𞀦̕b␇);
+Test_N(q␇a֮𞀦̀̕b␇, q␇a֮𞀦̀̕b␇, q␇a֮𞀦̀̕b␇, q␇a֮𞀦̀̕b␇, q␇a֮𞀦̀̕b␇);
+Test_N(q␇à֮𞀧̕b␇, q␇à֮𞀧̕b␇, q␇à֮𞀧̕b␇, q␇à֮𞀧̕b␇, q␇à֮𞀧̕b␇);
+Test_N(q␇a֮𞀧̀̕b␇, q␇a֮𞀧̀̕b␇, q␇a֮𞀧̀̕b␇, q␇a֮𞀧̀̕b␇, q␇a֮𞀧̀̕b␇);
+Test_N(q␇à֮𞀨̕b␇, q␇à֮𞀨̕b␇, q␇à֮𞀨̕b␇, q␇à֮𞀨̕b␇, q␇à֮𞀨̕b␇);
+Test_N(q␇a֮𞀨̀̕b␇, q␇a֮𞀨̀̕b␇, q␇a֮𞀨̀̕b␇, q␇a֮𞀨̀̕b␇, q␇a֮𞀨̀̕b␇);
+Test_N(q␇à֮𞀩̕b␇, q␇à֮𞀩̕b␇, q␇à֮𞀩̕b␇, q␇à֮𞀩̕b␇, q␇à֮𞀩̕b␇);
+Test_N(q␇a֮𞀩̀̕b␇, q␇a֮𞀩̀̕b␇, q␇a֮𞀩̀̕b␇, q␇a֮𞀩̀̕b␇, q␇a֮𞀩̀̕b␇);
+Test_N(q␇à֮𞀪̕b␇, q␇à֮𞀪̕b␇, q␇à֮𞀪̕b␇, q␇à֮𞀪̕b␇, q␇à֮𞀪̕b␇);
+Test_N(q␇a֮𞀪̀̕b␇, q␇a֮𞀪̀̕b␇, q␇a֮𞀪̀̕b␇, q␇a֮𞀪̀̕b␇, q␇a֮𞀪̀̕b␇);
+Test_N(q␇à֮𞂏̕b␇, q␇à֮𞂏̕b␇, q␇à֮𞂏̕b␇, q␇à֮𞂏̕b␇, q␇à֮𞂏̕b␇);
+Test_N(q␇a֮𞂏̀̕b␇, q␇a֮𞂏̀̕b␇, q␇a֮𞂏̀̕b␇, q␇a֮𞂏̀̕b␇, q␇a֮𞂏̀̕b␇);
+Test_N(q␇à֮𞄰̕b␇, q␇à֮𞄰̕b␇, q␇à֮𞄰̕b␇, q␇à֮𞄰̕b␇, q␇à֮𞄰̕b␇);
+Test_N(q␇a֮𞄰̀̕b␇, q␇a֮𞄰̀̕b␇, q␇a֮𞄰̀̕b␇, q␇a֮𞄰̀̕b␇, q␇a֮𞄰̀̕b␇);
+Test_N(q␇à֮𞄱̕b␇, q␇à֮𞄱̕b␇, q␇à֮𞄱̕b␇, q␇à֮𞄱̕b␇, q␇à֮𞄱̕b␇);
+Test_N(q␇a֮𞄱̀̕b␇, q␇a֮𞄱̀̕b␇, q␇a֮𞄱̀̕b␇, q␇a֮𞄱̀̕b␇, q␇a֮𞄱̀̕b␇);
+Test_N(q␇à֮𞄲̕b␇, q␇à֮𞄲̕b␇, q␇à֮𞄲̕b␇, q␇à֮𞄲̕b␇, q␇à֮𞄲̕b␇);
+Test_N(q␇a֮𞄲̀̕b␇, q␇a֮𞄲̀̕b␇, q␇a֮𞄲̀̕b␇, q␇a֮𞄲̀̕b␇, q␇a֮𞄲̀̕b␇);
+Test_N(q␇à֮𞄳̕b␇, q␇à֮𞄳̕b␇, q␇à֮𞄳̕b␇, q␇à֮𞄳̕b␇, q␇à֮𞄳̕b␇);
+Test_N(q␇a֮𞄳̀̕b␇, q␇a֮𞄳̀̕b␇, q␇a֮𞄳̀̕b␇, q␇a֮𞄳̀̕b␇, q␇a֮𞄳̀̕b␇);
+Test_N(q␇à֮𞄴̕b␇, q␇à֮𞄴̕b␇, q␇à֮𞄴̕b␇, q␇à֮𞄴̕b␇, q␇à֮𞄴̕b␇);
+Test_N(q␇a֮𞄴̀̕b␇, q␇a֮𞄴̀̕b␇, q␇a֮𞄴̀̕b␇, q␇a֮𞄴̀̕b␇, q␇a֮𞄴̀̕b␇);
+Test_N(q␇à֮𞄵̕b␇, q␇à֮𞄵̕b␇, q␇à֮𞄵̕b␇, q␇à֮𞄵̕b␇, q␇à֮𞄵̕b␇);
+Test_N(q␇a֮𞄵̀̕b␇, q␇a֮𞄵̀̕b␇, q␇a֮𞄵̀̕b␇, q␇a֮𞄵̀̕b␇, q␇a֮𞄵̀̕b␇);
+Test_N(q␇à֮𞄶̕b␇, q␇à֮𞄶̕b␇, q␇à֮𞄶̕b␇, q␇à֮𞄶̕b␇, q␇à֮𞄶̕b␇);
+Test_N(q␇a֮𞄶̀̕b␇, q␇a֮𞄶̀̕b␇, q␇a֮𞄶̀̕b␇, q␇a֮𞄶̀̕b␇, q␇a֮𞄶̀̕b␇);
+Test_N(q␇à֮𞊮̕b␇, q␇à֮𞊮̕b␇, q␇à֮𞊮̕b␇, q␇à֮𞊮̕b␇, q␇à֮𞊮̕b␇);
+Test_N(q␇a֮𞊮̀̕b␇, q␇a֮𞊮̀̕b␇, q␇a֮𞊮̀̕b␇, q␇a֮𞊮̀̕b␇, q␇a֮𞊮̀̕b␇);
+Test_N(q␇à֮𞋬̕b␇, q␇à֮𞋬̕b␇, q␇à֮𞋬̕b␇, q␇à֮𞋬̕b␇, q␇à֮𞋬̕b␇);
+Test_N(q␇a֮𞋬̀̕b␇, q␇a֮𞋬̀̕b␇, q␇a֮𞋬̀̕b␇, q␇a֮𞋬̀̕b␇, q␇a֮𞋬̀̕b␇);
+Test_N(q␇à֮𞋭̕b␇, q␇à֮𞋭̕b␇, q␇à֮𞋭̕b␇, q␇à֮𞋭̕b␇, q␇à֮𞋭̕b␇);
+Test_N(q␇a֮𞋭̀̕b␇, q␇a֮𞋭̀̕b␇, q␇a֮𞋭̀̕b␇, q␇a֮𞋭̀̕b␇, q␇a֮𞋭̀̕b␇);
+Test_N(q␇à֮𞋮̕b␇, q␇à֮𞋮̕b␇, q␇à֮𞋮̕b␇, q␇à֮𞋮̕b␇, q␇à֮𞋮̕b␇);
+Test_N(q␇a֮𞋮̀̕b␇, q␇a֮𞋮̀̕b␇, q␇a֮𞋮̀̕b␇, q␇a֮𞋮̀̕b␇, q␇a֮𞋮̀̕b␇);
+Test_N(q␇à֮𞋯̕b␇, q␇à֮𞋯̕b␇, q␇à֮𞋯̕b␇, q␇à֮𞋯̕b␇, q␇à֮𞋯̕b␇);
+Test_N(q␇a֮𞋯̀̕b␇, q␇a֮𞋯̀̕b␇, q␇a֮𞋯̀̕b␇, q␇a֮𞋯̀̕b␇, q␇a֮𞋯̀̕b␇);
+Test_N(q␇à̕𞓬͜b␇, q␇à̕𞓬͜b␇, q␇à̕𞓬͜b␇, q␇à̕𞓬͜b␇, q␇à̕𞓬͜b␇);
+Test_N(q␇à𞓬̕͜b␇, q␇à𞓬̕͜b␇, q␇à𞓬̕͜b␇, q␇à𞓬̕͜b␇, q␇à𞓬̕͜b␇);
+Test_N(q␇à̕𞓭͜b␇, q␇à̕𞓭͜b␇, q␇à̕𞓭͜b␇, q␇à̕𞓭͜b␇, q␇à̕𞓭͜b␇);
+Test_N(q␇à𞓭̕͜b␇, q␇à𞓭̕͜b␇, q␇à𞓭̕͜b␇, q␇à𞓭̕͜b␇, q␇à𞓭̕͜b␇);
+Test_N(q␇a᷺̖𞓮֚b␇, q␇a᷺̖𞓮֚b␇, q␇a᷺̖𞓮֚b␇, q␇a᷺̖𞓮֚b␇, q␇a᷺̖𞓮֚b␇);
+Test_N(q␇a᷺𞓮̖֚b␇, q␇a᷺𞓮̖֚b␇, q␇a᷺𞓮̖֚b␇, q␇a᷺𞓮̖֚b␇, q␇a᷺𞓮̖֚b␇);
+Test_N(q␇à֮𞓯̕b␇, q␇à֮𞓯̕b␇, q␇à֮𞓯̕b␇, q␇à֮𞓯̕b␇, q␇à֮𞓯̕b␇);
+Test_N(q␇a֮𞓯̀̕b␇, q␇a֮𞓯̀̕b␇, q␇a֮𞓯̀̕b␇, q␇a֮𞓯̀̕b␇, q␇a֮𞓯̀̕b␇);
+Test_N(q␇a᷺̖𞣐֚b␇, q␇a᷺̖𞣐֚b␇, q␇a᷺̖𞣐֚b␇, q␇a᷺̖𞣐֚b␇, q␇a᷺̖𞣐֚b␇);
+Test_N(q␇a᷺𞣐̖֚b␇, q␇a᷺𞣐̖֚b␇, q␇a᷺𞣐̖֚b␇, q␇a᷺𞣐̖֚b␇, q␇a᷺𞣐̖֚b␇);
+Test_N(q␇a᷺̖𞣑֚b␇, q␇a᷺̖𞣑֚b␇, q␇a᷺̖𞣑֚b␇, q␇a᷺̖𞣑֚b␇, q␇a᷺̖𞣑֚b␇);
+Test_N(q␇a᷺𞣑̖֚b␇, q␇a᷺𞣑̖֚b␇, q␇a᷺𞣑̖֚b␇, q␇a᷺𞣑̖֚b␇, q␇a᷺𞣑̖֚b␇);
+Test_N(q␇a᷺̖𞣒֚b␇, q␇a᷺̖𞣒֚b␇, q␇a᷺̖𞣒֚b␇, q␇a᷺̖𞣒֚b␇, q␇a᷺̖𞣒֚b␇);
+Test_N(q␇a᷺𞣒̖֚b␇, q␇a᷺𞣒̖֚b␇, q␇a᷺𞣒̖֚b␇, q␇a᷺𞣒̖֚b␇, q␇a᷺𞣒̖֚b␇);
+Test_N(q␇a᷺̖𞣓֚b␇, q␇a᷺̖𞣓֚b␇, q␇a᷺̖𞣓֚b␇, q␇a᷺̖𞣓֚b␇, q␇a᷺̖𞣓֚b␇);
+Test_N(q␇a᷺𞣓̖֚b␇, q␇a᷺𞣓̖֚b␇, q␇a᷺𞣓̖֚b␇, q␇a᷺𞣓̖֚b␇, q␇a᷺𞣓̖֚b␇);
+Test_N(q␇a᷺̖𞣔֚b␇, q␇a᷺̖𞣔֚b␇, q␇a᷺̖𞣔֚b␇, q␇a᷺̖𞣔֚b␇, q␇a᷺̖𞣔֚b␇);
+Test_N(q␇a᷺𞣔̖֚b␇, q␇a᷺𞣔̖֚b␇, q␇a᷺𞣔̖֚b␇, q␇a᷺𞣔̖֚b␇, q␇a᷺𞣔̖֚b␇);
+Test_N(q␇a᷺̖𞣕֚b␇, q␇a᷺̖𞣕֚b␇, q␇a᷺̖𞣕֚b␇, q␇a᷺̖𞣕֚b␇, q␇a᷺̖𞣕֚b␇);
+Test_N(q␇a᷺𞣕̖֚b␇, q␇a᷺𞣕̖֚b␇, q␇a᷺𞣕̖֚b␇, q␇a᷺𞣕̖֚b␇, q␇a᷺𞣕̖֚b␇);
+Test_N(q␇a᷺̖𞣖֚b␇, q␇a᷺̖𞣖֚b␇, q␇a᷺̖𞣖֚b␇, q␇a᷺̖𞣖֚b␇, q␇a᷺̖𞣖֚b␇);
+Test_N(q␇a᷺𞣖̖֚b␇, q␇a᷺𞣖̖֚b␇, q␇a᷺𞣖̖֚b␇, q␇a᷺𞣖̖֚b␇, q␇a᷺𞣖̖֚b␇);
+Test_N(q␇à֮𞥄̕b␇, q␇à֮𞥄̕b␇, q␇à֮𞥄̕b␇, q␇à֮𞥄̕b␇, q␇à֮𞥄̕b␇);
+Test_N(q␇a֮𞥄̀̕b␇, q␇a֮𞥄̀̕b␇, q␇a֮𞥄̀̕b␇, q␇a֮𞥄̀̕b␇, q␇a֮𞥄̀̕b␇);
+Test_N(q␇à֮𞥅̕b␇, q␇à֮𞥅̕b␇, q␇à֮𞥅̕b␇, q␇à֮𞥅̕b␇, q␇à֮𞥅̕b␇);
+Test_N(q␇a֮𞥅̀̕b␇, q␇a֮𞥅̀̕b␇, q␇a֮𞥅̀̕b␇, q␇a֮𞥅̀̕b␇, q␇a֮𞥅̀̕b␇);
+Test_N(q␇à֮𞥆̕b␇, q␇à֮𞥆̕b␇, q␇à֮𞥆̕b␇, q␇à֮𞥆̕b␇, q␇à֮𞥆̕b␇);
+Test_N(q␇a֮𞥆̀̕b␇, q␇a֮𞥆̀̕b␇, q␇a֮𞥆̀̕b␇, q␇a֮𞥆̀̕b␇, q␇a֮𞥆̀̕b␇);
+Test_N(q␇à֮𞥇̕b␇, q␇à֮𞥇̕b␇, q␇à֮𞥇̕b␇, q␇à֮𞥇̕b␇, q␇à֮𞥇̕b␇);
+Test_N(q␇a֮𞥇̀̕b␇, q␇a֮𞥇̀̕b␇, q␇a֮𞥇̀̕b␇, q␇a֮𞥇̀̕b␇, q␇a֮𞥇̀̕b␇);
+Test_N(q␇à֮𞥈̕b␇, q␇à֮𞥈̕b␇, q␇à֮𞥈̕b␇, q␇à֮𞥈̕b␇, q␇à֮𞥈̕b␇);
+Test_N(q␇a֮𞥈̀̕b␇, q␇a֮𞥈̀̕b␇, q␇a֮𞥈̀̕b␇, q␇a֮𞥈̀̕b␇, q␇a֮𞥈̀̕b␇);
+Test_N(q␇à֮𞥉̕b␇, q␇à֮𞥉̕b␇, q␇à֮𞥉̕b␇, q␇à֮𞥉̕b␇, q␇à֮𞥉̕b␇);
+Test_N(q␇a֮𞥉̀̕b␇, q␇a֮𞥉̀̕b␇, q␇a֮𞥉̀̕b␇, q␇a֮𞥉̀̕b␇, q␇a֮𞥉̀̕b␇);
+Test_N(q␇a𖿰़𞥊゙b␇, q␇a𖿰़𞥊゙b␇, q␇a𖿰़𞥊゙b␇, q␇a𖿰़𞥊゙b␇, q␇a𖿰़𞥊゙b␇);
+Test_N(q␇a𖿰𞥊़゙b␇, q␇a𖿰𞥊़゙b␇, q␇a𖿰𞥊़゙b␇, q␇a𖿰𞥊़゙b␇, q␇a𖿰𞥊़゙b␇);
+Test_N(q␇ে̴া␇, q␇ে̴া␇, q␇ে̴া␇, q␇ে̴া␇, q␇ে̴া␇);
+Test_N(q␇ে̴ৗ␇, q␇ে̴ৗ␇, q␇ে̴ৗ␇, q␇ে̴ৗ␇, q␇ে̴ৗ␇);
+Test_N(q␇େ̴ା␇, q␇େ̴ା␇, q␇େ̴ା␇, q␇େ̴ା␇, q␇େ̴ା␇);
+Test_N(q␇େ̴ୖ␇, q␇େ̴ୖ␇, q␇େ̴ୖ␇, q␇େ̴ୖ␇, q␇େ̴ୖ␇);
+Test_N(q␇େ̴ୗ␇, q␇େ̴ୗ␇, q␇େ̴ୗ␇, q␇େ̴ୗ␇, q␇େ̴ୗ␇);
+Test_N(q␇ஒ̴ௗ␇, q␇ஒ̴ௗ␇, q␇ஒ̴ௗ␇, q␇ஒ̴ௗ␇, q␇ஒ̴ௗ␇);
+Test_N(q␇ெ̴ா␇, q␇ெ̴ா␇, q␇ெ̴ா␇, q␇ெ̴ா␇, q␇ெ̴ா␇);
+Test_N(q␇ெ̴ௗ␇, q␇ெ̴ௗ␇, q␇ெ̴ௗ␇, q␇ெ̴ௗ␇, q␇ெ̴ௗ␇);
+Test_N(q␇ே̴ா␇, q␇ே̴ா␇, q␇ே̴ா␇, q␇ே̴ா␇, q␇ே̴ா␇);
+Test_N(q␇ಿ̴ೕ␇, q␇ಿ̴ೕ␇, q␇ಿ̴ೕ␇, q␇ಿ̴ೕ␇, q␇ಿ̴ೕ␇);
+Test_N(q␇ೆ̴ೂ␇, q␇ೆ̴ೂ␇, q␇ೆ̴ೂ␇, q␇ೆ̴ೂ␇, q␇ೆ̴ೂ␇);
+Test_N(q␇ೆ̴ೕ␇, q␇ೆ̴ೕ␇, q␇ೆ̴ೕ␇, q␇ೆ̴ೕ␇, q␇ೆ̴ೕ␇);
+Test_N(q␇ೆ̴ೖ␇, q␇ೆ̴ೖ␇, q␇ೆ̴ೖ␇, q␇ೆ̴ೖ␇, q␇ೆ̴ೖ␇);
+Test_N(q␇ೊ̴ೕ␇, q␇ೊ̴ೕ␇, q␇ೊ̴ೕ␇, q␇ೊ̴ೕ␇, q␇ೊ̴ೕ␇);
+Test_N(q␇െ̴ാ␇, q␇െ̴ാ␇, q␇െ̴ാ␇, q␇െ̴ാ␇, q␇െ̴ാ␇);
+Test_N(q␇െ̴ൗ␇, q␇െ̴ൗ␇, q␇െ̴ൗ␇, q␇െ̴ൗ␇, q␇െ̴ൗ␇);
+Test_N(q␇േ̴ാ␇, q␇േ̴ാ␇, q␇േ̴ാ␇, q␇േ̴ാ␇, q␇േ̴ാ␇);
+Test_N(q␇ෙ̴ා␇, q␇ෙ̴ා␇, q␇ෙ̴ා␇, q␇ෙ̴ා␇, q␇ෙ̴ා␇);
+Test_N(q␇ෙ̴ෟ␇, q␇ෙ̴ෟ␇, q␇ෙ̴ෟ␇, q␇ෙ̴ෟ␇, q␇ෙ̴ෟ␇);
+Test_N(q␇ཀ̴ྵ␇, q␇ཀ̴ྵ␇, q␇ཀ̴ྵ␇, q␇ཀ̴ྵ␇, q␇ཀ̴ྵ␇);
+Test_N(q␇ག̴ྷ␇, q␇ག̴ྷ␇, q␇ག̴ྷ␇, q␇ག̴ྷ␇, q␇ག̴ྷ␇);
+Test_N(q␇ཌ̴ྷ␇, q␇ཌ̴ྷ␇, q␇ཌ̴ྷ␇, q␇ཌ̴ྷ␇, q␇ཌ̴ྷ␇);
+Test_N(q␇ད̴ྷ␇, q␇ད̴ྷ␇, q␇ད̴ྷ␇, q␇ད̴ྷ␇, q␇ད̴ྷ␇);
+Test_N(q␇བ̴ྷ␇, q␇བ̴ྷ␇, q␇བ̴ྷ␇, q␇བ̴ྷ␇, q␇བ̴ྷ␇);
+Test_N(q␇ཛ̴ྷ␇, q␇ཛ̴ྷ␇, q␇ཛ̴ྷ␇, q␇ཛ̴ྷ␇, q␇ཛ̴ྷ␇);
+Test_N(q␇ྐ̴ྵ␇, q␇ྐ̴ྵ␇, q␇ྐ̴ྵ␇, q␇ྐ̴ྵ␇, q␇ྐ̴ྵ␇);
+Test_N(q␇ྒ̴ྷ␇, q␇ྒ̴ྷ␇, q␇ྒ̴ྷ␇, q␇ྒ̴ྷ␇, q␇ྒ̴ྷ␇);
+Test_N(q␇ྜ̴ྷ␇, q␇ྜ̴ྷ␇, q␇ྜ̴ྷ␇, q␇ྜ̴ྷ␇, q␇ྜ̴ྷ␇);
+Test_N(q␇ྡ̴ྷ␇, q␇ྡ̴ྷ␇, q␇ྡ̴ྷ␇, q␇ྡ̴ྷ␇, q␇ྡ̴ྷ␇);
+Test_N(q␇ྦ̴ྷ␇, q␇ྦ̴ྷ␇, q␇ྦ̴ྷ␇, q␇ྦ̴ྷ␇, q␇ྦ̴ྷ␇);
+Test_N(q␇ྫ̴ྷ␇, q␇ྫ̴ྷ␇, q␇ྫ̴ྷ␇, q␇ྫ̴ྷ␇, q␇ྫ̴ྷ␇);
+Test_N(q␇ဥ̴ီ␇, q␇ဥ̴ီ␇, q␇ဥ̴ီ␇, q␇ဥ̴ီ␇, q␇ဥ̴ီ␇);
+Test_N(q␇ᄀ̴ᅡ␇, q␇ᄀ̴ᅡ␇, q␇ᄀ̴ᅡ␇, q␇ᄀ̴ᅡ␇, q␇ᄀ̴ᅡ␇);
+Test_N(q␇ᄀ̴ᅮ␇, q␇ᄀ̴ᅮ␇, q␇ᄀ̴ᅮ␇, q␇ᄀ̴ᅮ␇, q␇ᄀ̴ᅮ␇);
+Test_N(q␇ᄁ̴ᅦ␇, q␇ᄁ̴ᅦ␇, q␇ᄁ̴ᅦ␇, q␇ᄁ̴ᅦ␇, q␇ᄁ̴ᅦ␇);
+Test_N(q␇ᄁ̴ᅳ␇, q␇ᄁ̴ᅳ␇, q␇ᄁ̴ᅳ␇, q␇ᄁ̴ᅳ␇, q␇ᄁ̴ᅳ␇);
+Test_N(q␇ᄂ̴ᅫ␇, q␇ᄂ̴ᅫ␇, q␇ᄂ̴ᅫ␇, q␇ᄂ̴ᅫ␇, q␇ᄂ̴ᅫ␇);
+Test_N(q␇ᄃ̴ᅣ␇, q␇ᄃ̴ᅣ␇, q␇ᄃ̴ᅣ␇, q␇ᄃ̴ᅣ␇, q␇ᄃ̴ᅣ␇);
+Test_N(q␇ᄃ̴ᅰ␇, q␇ᄃ̴ᅰ␇, q␇ᄃ̴ᅰ␇, q␇ᄃ̴ᅰ␇, q␇ᄃ̴ᅰ␇);
+Test_N(q␇ᄄ̴ᅨ␇, q␇ᄄ̴ᅨ␇, q␇ᄄ̴ᅨ␇, q␇ᄄ̴ᅨ␇, q␇ᄄ̴ᅨ␇);
+Test_N(q␇ᄄ̴ᅵ␇, q␇ᄄ̴ᅵ␇, q␇ᄄ̴ᅵ␇, q␇ᄄ̴ᅵ␇, q␇ᄄ̴ᅵ␇);
+Test_N(q␇ᄅ̴ᅭ␇, q␇ᄅ̴ᅭ␇, q␇ᄅ̴ᅭ␇, q␇ᄅ̴ᅭ␇, q␇ᄅ̴ᅭ␇);
+Test_N(q␇ᄆ̴ᅥ␇, q␇ᄆ̴ᅥ␇, q␇ᄆ̴ᅥ␇, q␇ᄆ̴ᅥ␇, q␇ᄆ̴ᅥ␇);
+Test_N(q␇ᄆ̴ᅲ␇, q␇ᄆ̴ᅲ␇, q␇ᄆ̴ᅲ␇, q␇ᄆ̴ᅲ␇, q␇ᄆ̴ᅲ␇);
+Test_N(q␇ᄇ̴ᅪ␇, q␇ᄇ̴ᅪ␇, q␇ᄇ̴ᅪ␇, q␇ᄇ̴ᅪ␇, q␇ᄇ̴ᅪ␇);
+Test_N(q␇ᄈ̴ᅢ␇, q␇ᄈ̴ᅢ␇, q␇ᄈ̴ᅢ␇, q␇ᄈ̴ᅢ␇, q␇ᄈ̴ᅢ␇);
+Test_N(q␇ᄈ̴ᅯ␇, q␇ᄈ̴ᅯ␇, q␇ᄈ̴ᅯ␇, q␇ᄈ̴ᅯ␇, q␇ᄈ̴ᅯ␇);
+Test_N(q␇ᄉ̴ᅧ␇, q␇ᄉ̴ᅧ␇, q␇ᄉ̴ᅧ␇, q␇ᄉ̴ᅧ␇, q␇ᄉ̴ᅧ␇);
+Test_N(q␇ᄉ̴ᅴ␇, q␇ᄉ̴ᅴ␇, q␇ᄉ̴ᅴ␇, q␇ᄉ̴ᅴ␇, q␇ᄉ̴ᅴ␇);
+Test_N(q␇ᄊ̴ᅬ␇, q␇ᄊ̴ᅬ␇, q␇ᄊ̴ᅬ␇, q␇ᄊ̴ᅬ␇, q␇ᄊ̴ᅬ␇);
+Test_N(q␇ᄋ̴ᅤ␇, q␇ᄋ̴ᅤ␇, q␇ᄋ̴ᅤ␇, q␇ᄋ̴ᅤ␇, q␇ᄋ̴ᅤ␇);
+Test_N(q␇ᄋ̴ᅱ␇, q␇ᄋ̴ᅱ␇, q␇ᄋ̴ᅱ␇, q␇ᄋ̴ᅱ␇, q␇ᄋ̴ᅱ␇);
+Test_N(q␇ᄌ̴ᅩ␇, q␇ᄌ̴ᅩ␇, q␇ᄌ̴ᅩ␇, q␇ᄌ̴ᅩ␇, q␇ᄌ̴ᅩ␇);
+Test_N(q␇ᄍ̴ᅡ␇, q␇ᄍ̴ᅡ␇, q␇ᄍ̴ᅡ␇, q␇ᄍ̴ᅡ␇, q␇ᄍ̴ᅡ␇);
+Test_N(q␇ᄍ̴ᅮ␇, q␇ᄍ̴ᅮ␇, q␇ᄍ̴ᅮ␇, q␇ᄍ̴ᅮ␇, q␇ᄍ̴ᅮ␇);
+Test_N(q␇ᄎ̴ᅦ␇, q␇ᄎ̴ᅦ␇, q␇ᄎ̴ᅦ␇, q␇ᄎ̴ᅦ␇, q␇ᄎ̴ᅦ␇);
+Test_N(q␇ᄎ̴ᅳ␇, q␇ᄎ̴ᅳ␇, q␇ᄎ̴ᅳ␇, q␇ᄎ̴ᅳ␇, q␇ᄎ̴ᅳ␇);
+Test_N(q␇ᄏ̴ᅫ␇, q␇ᄏ̴ᅫ␇, q␇ᄏ̴ᅫ␇, q␇ᄏ̴ᅫ␇, q␇ᄏ̴ᅫ␇);
+Test_N(q␇ᄐ̴ᅣ␇, q␇ᄐ̴ᅣ␇, q␇ᄐ̴ᅣ␇, q␇ᄐ̴ᅣ␇, q␇ᄐ̴ᅣ␇);
+Test_N(q␇ᄐ̴ᅰ␇, q␇ᄐ̴ᅰ␇, q␇ᄐ̴ᅰ␇, q␇ᄐ̴ᅰ␇, q␇ᄐ̴ᅰ␇);
+Test_N(q␇ᄑ̴ᅨ␇, q␇ᄑ̴ᅨ␇, q␇ᄑ̴ᅨ␇, q␇ᄑ̴ᅨ␇, q␇ᄑ̴ᅨ␇);
+Test_N(q␇ᄑ̴ᅵ␇, q␇ᄑ̴ᅵ␇, q␇ᄑ̴ᅵ␇, q␇ᄑ̴ᅵ␇, q␇ᄑ̴ᅵ␇);
+Test_N(q␇ᄒ̴ᅭ␇, q␇ᄒ̴ᅭ␇, q␇ᄒ̴ᅭ␇, q␇ᄒ̴ᅭ␇, q␇ᄒ̴ᅭ␇);
+Test_N(q␇ᬅ̴ᬵ␇, q␇ᬅ̴ᬵ␇, q␇ᬅ̴ᬵ␇, q␇ᬅ̴ᬵ␇, q␇ᬅ̴ᬵ␇);
+Test_N(q␇ᬇ̴ᬵ␇, q␇ᬇ̴ᬵ␇, q␇ᬇ̴ᬵ␇, q␇ᬇ̴ᬵ␇, q␇ᬇ̴ᬵ␇);
+Test_N(q␇ᬉ̴ᬵ␇, q␇ᬉ̴ᬵ␇, q␇ᬉ̴ᬵ␇, q␇ᬉ̴ᬵ␇, q␇ᬉ̴ᬵ␇);
+Test_N(q␇ᬋ̴ᬵ␇, q␇ᬋ̴ᬵ␇, q␇ᬋ̴ᬵ␇, q␇ᬋ̴ᬵ␇, q␇ᬋ̴ᬵ␇);
+Test_N(q␇ᬍ̴ᬵ␇, q␇ᬍ̴ᬵ␇, q␇ᬍ̴ᬵ␇, q␇ᬍ̴ᬵ␇, q␇ᬍ̴ᬵ␇);
+Test_N(q␇ᬑ̴ᬵ␇, q␇ᬑ̴ᬵ␇, q␇ᬑ̴ᬵ␇, q␇ᬑ̴ᬵ␇, q␇ᬑ̴ᬵ␇);
+Test_N(q␇ᬺ̴ᬵ␇, q␇ᬺ̴ᬵ␇, q␇ᬺ̴ᬵ␇, q␇ᬺ̴ᬵ␇, q␇ᬺ̴ᬵ␇);
+Test_N(q␇ᬼ̴ᬵ␇, q␇ᬼ̴ᬵ␇, q␇ᬼ̴ᬵ␇, q␇ᬼ̴ᬵ␇, q␇ᬼ̴ᬵ␇);
+Test_N(q␇ᬾ̴ᬵ␇, q␇ᬾ̴ᬵ␇, q␇ᬾ̴ᬵ␇, q␇ᬾ̴ᬵ␇, q␇ᬾ̴ᬵ␇);
+Test_N(q␇ᬿ̴ᬵ␇, q␇ᬿ̴ᬵ␇, q␇ᬿ̴ᬵ␇, q␇ᬿ̴ᬵ␇, q␇ᬿ̴ᬵ␇);
+Test_N(q␇ᭂ̴ᬵ␇, q␇ᭂ̴ᬵ␇, q␇ᭂ̴ᬵ␇, q␇ᭂ̴ᬵ␇, q␇ᭂ̴ᬵ␇);
+Test_N(q␇걔̴ᆮ␇, q␇걔̴ᆮ␇, q␇걔̴ᆮ␇, q␇걔̴ᆮ␇, q␇걔̴ᆮ␇);
+Test_N(q␇겨̴ᆵ␇, q␇겨̴ᆵ␇, q␇겨̴ᆵ␇, q␇겨̴ᆵ␇, q␇겨̴ᆵ␇);
+Test_N(q␇과̴ᆼ␇, q␇과̴ᆼ␇, q␇과̴ᆼ␇, q␇과̴ᆼ␇, q␇과̴ᆼ␇);
+Test_N(q␇귀̴ᆮ␇, q␇귀̴ᆮ␇, q␇귀̴ᆮ␇, q␇귀̴ᆮ␇, q␇귀̴ᆮ␇);
+Test_N(q␇긔̴ᆵ␇, q␇긔̴ᆵ␇, q␇긔̴ᆵ␇, q␇긔̴ᆵ␇, q␇긔̴ᆵ␇);
+Test_N(q␇깨̴ᆼ␇, q␇깨̴ᆼ␇, q␇깨̴ᆼ␇, q␇깨̴ᆼ␇, q␇깨̴ᆼ␇);
+Test_N(q␇꼬̴ᆮ␇, q␇꼬̴ᆮ␇, q␇꼬̴ᆮ␇, q␇꼬̴ᆮ␇, q␇꼬̴ᆮ␇);
+Test_N(q␇꾀̴ᆵ␇, q␇꾀̴ᆵ␇, q␇꾀̴ᆵ␇, q␇꾀̴ᆵ␇, q␇꾀̴ᆵ␇);
+Test_N(q␇꿔̴ᆼ␇, q␇꿔̴ᆼ␇, q␇꿔̴ᆼ␇, q␇꿔̴ᆼ␇, q␇꿔̴ᆼ␇);
+Test_N(q␇나̴ᆮ␇, q␇나̴ᆮ␇, q␇나̴ᆮ␇, q␇나̴ᆮ␇, q␇나̴ᆮ␇);
+Test_N(q␇냬̴ᆵ␇, q␇냬̴ᆵ␇, q␇냬̴ᆵ␇, q␇냬̴ᆵ␇, q␇냬̴ᆵ␇);
+Test_N(q␇녀̴ᆼ␇, q␇녀̴ᆼ␇, q␇녀̴ᆼ␇, q␇녀̴ᆼ␇, q␇녀̴ᆼ␇);
+Test_N(q␇누̴ᆮ␇, q␇누̴ᆮ␇, q␇누̴ᆮ␇, q␇누̴ᆮ␇, q␇누̴ᆮ␇);
+Test_N(q␇뉘̴ᆵ␇, q␇뉘̴ᆵ␇, q␇뉘̴ᆵ␇, q␇뉘̴ᆵ␇, q␇뉘̴ᆵ␇);
+Test_N(q␇늬̴ᆼ␇, q␇늬̴ᆼ␇, q␇늬̴ᆼ␇, q␇늬̴ᆼ␇, q␇늬̴ᆼ␇);
+Test_N(q␇데̴ᆮ␇, q␇데̴ᆮ␇, q␇데̴ᆮ␇, q␇데̴ᆮ␇, q␇데̴ᆮ␇);
+Test_N(q␇도̴ᆵ␇, q␇도̴ᆵ␇, q␇도̴ᆵ␇, q␇도̴ᆵ␇, q␇도̴ᆵ␇);
+Test_N(q␇되̴ᆼ␇, q␇되̴ᆼ␇, q␇되̴ᆼ␇, q␇되̴ᆼ␇, q␇되̴ᆼ␇);
+Test_N(q␇드̴ᆮ␇, q␇드̴ᆮ␇, q␇드̴ᆮ␇, q␇드̴ᆮ␇, q␇드̴ᆮ␇);
+Test_N(q␇따̴ᆵ␇, q␇따̴ᆵ␇, q␇따̴ᆵ␇, q␇따̴ᆵ␇, q␇따̴ᆵ␇);
+Test_N(q␇떄̴ᆼ␇, q␇떄̴ᆼ␇, q␇떄̴ᆼ␇, q␇떄̴ᆼ␇, q␇떄̴ᆼ␇);
+Test_N(q␇뙈̴ᆮ␇, q␇뙈̴ᆮ␇, q␇뙈̴ᆮ␇, q␇뙈̴ᆮ␇, q␇뙈̴ᆮ␇);
+Test_N(q␇뚜̴ᆵ␇, q␇뚜̴ᆵ␇, q␇뚜̴ᆵ␇, q␇뚜̴ᆵ␇, q␇뚜̴ᆵ␇);
+Test_N(q␇뛰̴ᆼ␇, q␇뛰̴ᆼ␇, q␇뛰̴ᆼ␇, q␇뛰̴ᆼ␇, q␇뛰̴ᆼ␇);
+Test_N(q␇랴̴ᆮ␇, q␇랴̴ᆮ␇, q␇랴̴ᆮ␇, q␇랴̴ᆮ␇, q␇랴̴ᆮ␇);
+Test_N(q␇레̴ᆵ␇, q␇레̴ᆵ␇, q␇레̴ᆵ␇, q␇레̴ᆵ␇, q␇레̴ᆵ␇);
+Test_N(q␇로̴ᆼ␇, q␇로̴ᆼ␇, q␇로̴ᆼ␇, q␇로̴ᆼ␇, q␇로̴ᆼ␇);
+Test_N(q␇뤠̴ᆮ␇, q␇뤠̴ᆮ␇, q␇뤠̴ᆮ␇, q␇뤠̴ᆮ␇, q␇뤠̴ᆮ␇);
+Test_N(q␇르̴ᆵ␇, q␇르̴ᆵ␇, q␇르̴ᆵ␇, q␇르̴ᆵ␇, q␇르̴ᆵ␇);
+Test_N(q␇마̴ᆼ␇, q␇마̴ᆼ␇, q␇마̴ᆼ␇, q␇마̴ᆼ␇, q␇마̴ᆼ␇);
+Test_N(q␇몌̴ᆮ␇, q␇몌̴ᆮ␇, q␇몌̴ᆮ␇, q␇몌̴ᆮ␇, q␇몌̴ᆮ␇);
+Test_N(q␇뫠̴ᆵ␇, q␇뫠̴ᆵ␇, q␇뫠̴ᆵ␇, q␇뫠̴ᆵ␇, q␇뫠̴ᆵ␇);
+Test_N(q␇무̴ᆼ␇, q␇무̴ᆼ␇, q␇무̴ᆼ␇, q␇무̴ᆼ␇, q␇무̴ᆼ␇);
+Test_N(q␇미̴ᆮ␇, q␇미̴ᆮ␇, q␇미̴ᆮ␇, q␇미̴ᆮ␇, q␇미̴ᆮ␇);
+Test_N(q␇뱌̴ᆵ␇, q␇뱌̴ᆵ␇, q␇뱌̴ᆵ␇, q␇뱌̴ᆵ␇, q␇뱌̴ᆵ␇);
+Test_N(q␇베̴ᆼ␇, q␇베̴ᆼ␇, q␇베̴ᆼ␇, q␇베̴ᆼ␇, q␇베̴ᆼ␇);
+Test_N(q␇뵤̴ᆮ␇, q␇뵤̴ᆮ␇, q␇뵤̴ᆮ␇, q␇뵤̴ᆮ␇, q␇뵤̴ᆮ␇);
+Test_N(q␇붸̴ᆵ␇, q␇붸̴ᆵ␇, q␇붸̴ᆵ␇, q␇붸̴ᆵ␇, q␇붸̴ᆵ␇);
+Test_N(q␇브̴ᆼ␇, q␇브̴ᆼ␇, q␇브̴ᆼ␇, q␇브̴ᆼ␇, q␇브̴ᆼ␇);
+Test_N(q␇뻐̴ᆮ␇, q␇뻐̴ᆮ␇, q␇뻐̴ᆮ␇, q␇뻐̴ᆮ␇, q␇뻐̴ᆮ␇);
+Test_N(q␇뼤̴ᆵ␇, q␇뼤̴ᆵ␇, q␇뼤̴ᆵ␇, q␇뼤̴ᆵ␇, q␇뼤̴ᆵ␇);
+Test_N(q␇뽸̴ᆼ␇, q␇뽸̴ᆼ␇, q␇뽸̴ᆼ␇, q␇뽸̴ᆼ␇, q␇뽸̴ᆼ␇);
+Test_N(q␇쀼̴ᆮ␇, q␇쀼̴ᆮ␇, q␇쀼̴ᆮ␇, q␇쀼̴ᆮ␇, q␇쀼̴ᆮ␇);
+Test_N(q␇삐̴ᆵ␇, q␇삐̴ᆵ␇, q␇삐̴ᆵ␇, q␇삐̴ᆵ␇, q␇삐̴ᆵ␇);
+Test_N(q␇샤̴ᆼ␇, q␇샤̴ᆼ␇, q␇샤̴ᆼ␇, q␇샤̴ᆼ␇, q␇샤̴ᆼ␇);
+Test_N(q␇솨̴ᆮ␇, q␇솨̴ᆮ␇, q␇솨̴ᆮ␇, q␇솨̴ᆮ␇, q␇솨̴ᆮ␇);
+Test_N(q␇쇼̴ᆵ␇, q␇쇼̴ᆵ␇, q␇쇼̴ᆵ␇, q␇쇼̴ᆵ␇, q␇쇼̴ᆵ␇);
+Test_N(q␇쉐̴ᆼ␇, q␇쉐̴ᆼ␇, q␇쉐̴ᆼ␇, q␇쉐̴ᆼ␇, q␇쉐̴ᆼ␇);
+Test_N(q␇쌔̴ᆮ␇, q␇쌔̴ᆮ␇, q␇쌔̴ᆮ␇, q␇쌔̴ᆮ␇, q␇쌔̴ᆮ␇);
+Test_N(q␇써̴ᆵ␇, q␇써̴ᆵ␇, q␇써̴ᆵ␇, q␇써̴ᆵ␇, q␇써̴ᆵ␇);
+Test_N(q␇쎼̴ᆼ␇, q␇쎼̴ᆼ␇, q␇쎼̴ᆼ␇, q␇쎼̴ᆼ␇, q␇쎼̴ᆼ␇);
+Test_N(q␇쒀̴ᆮ␇, q␇쒀̴ᆮ␇, q␇쒀̴ᆮ␇, q␇쒀̴ᆮ␇, q␇쒀̴ᆮ␇);
+Test_N(q␇쓔̴ᆵ␇, q␇쓔̴ᆵ␇, q␇쓔̴ᆵ␇, q␇쓔̴ᆵ␇, q␇쓔̴ᆵ␇);
+Test_N(q␇씨̴ᆼ␇, q␇씨̴ᆼ␇, q␇씨̴ᆼ␇, q␇씨̴ᆼ␇, q␇씨̴ᆼ␇);
+Test_N(q␇여̴ᆮ␇, q␇여̴ᆮ␇, q␇여̴ᆮ␇, q␇여̴ᆮ␇, q␇여̴ᆮ␇);
+Test_N(q␇와̴ᆵ␇, q␇와̴ᆵ␇, q␇와̴ᆵ␇, q␇와̴ᆵ␇, q␇와̴ᆵ␇);
+Test_N(q␇요̴ᆼ␇, q␇요̴ᆼ␇, q␇요̴ᆼ␇, q␇요̴ᆼ␇, q␇요̴ᆼ␇);
+Test_N(q␇의̴ᆮ␇, q␇의̴ᆮ␇, q␇의̴ᆮ␇, q␇의̴ᆮ␇, q␇의̴ᆮ␇);
+Test_N(q␇재̴ᆵ␇, q␇재̴ᆵ␇, q␇재̴ᆵ␇, q␇재̴ᆵ␇, q␇재̴ᆵ␇);
+Test_N(q␇저̴ᆼ␇, q␇저̴ᆼ␇, q␇저̴ᆼ␇, q␇저̴ᆼ␇, q␇저̴ᆼ␇);
+Test_N(q␇죄̴ᆮ␇, q␇죄̴ᆮ␇, q␇죄̴ᆮ␇, q␇죄̴ᆮ␇, q␇죄̴ᆮ␇);
+Test_N(q␇줘̴ᆵ␇, q␇줘̴ᆵ␇, q␇줘̴ᆵ␇, q␇줘̴ᆵ␇, q␇줘̴ᆵ␇);
+Test_N(q␇쥬̴ᆼ␇, q␇쥬̴ᆼ␇, q␇쥬̴ᆼ␇, q␇쥬̴ᆼ␇, q␇쥬̴ᆼ␇);
+Test_N(q␇쨰̴ᆮ␇, q␇쨰̴ᆮ␇, q␇쨰̴ᆮ␇, q␇쨰̴ᆮ␇, q␇쨰̴ᆮ␇);
+Test_N(q␇쪄̴ᆵ␇, q␇쪄̴ᆵ␇, q␇쪄̴ᆵ␇, q␇쪄̴ᆵ␇, q␇쪄̴ᆵ␇);
+Test_N(q␇쫘̴ᆼ␇, q␇쫘̴ᆼ␇, q␇쫘̴ᆼ␇, q␇쫘̴ᆼ␇, q␇쫘̴ᆼ␇);
+Test_N(q␇쮜̴ᆮ␇, q␇쮜̴ᆮ␇, q␇쮜̴ᆮ␇, q␇쮜̴ᆮ␇, q␇쮜̴ᆮ␇);
+Test_N(q␇쯰̴ᆵ␇, q␇쯰̴ᆵ␇, q␇쯰̴ᆵ␇, q␇쯰̴ᆵ␇, q␇쯰̴ᆵ␇);
+Test_N(q␇채̴ᆼ␇, q␇채̴ᆼ␇, q␇채̴ᆼ␇, q␇채̴ᆼ␇, q␇채̴ᆼ␇);
+Test_N(q␇초̴ᆮ␇, q␇초̴ᆮ␇, q␇초̴ᆮ␇, q␇초̴ᆮ␇, q␇초̴ᆮ␇);
+Test_N(q␇최̴ᆵ␇, q␇최̴ᆵ␇, q␇최̴ᆵ␇, q␇최̴ᆵ␇, q␇최̴ᆵ␇);
+Test_N(q␇춰̴ᆼ␇, q␇춰̴ᆼ␇, q␇춰̴ᆼ␇, q␇춰̴ᆼ␇, q␇춰̴ᆼ␇);
+Test_N(q␇카̴ᆮ␇, q␇카̴ᆮ␇, q␇카̴ᆮ␇, q␇카̴ᆮ␇, q␇카̴ᆮ␇);
+Test_N(q␇컈̴ᆵ␇, q␇컈̴ᆵ␇, q␇컈̴ᆵ␇, q␇컈̴ᆵ␇, q␇컈̴ᆵ␇);
+Test_N(q␇켜̴ᆼ␇, q␇켜̴ᆼ␇, q␇켜̴ᆼ␇, q␇켜̴ᆼ␇, q␇켜̴ᆼ␇);
+Test_N(q␇쿠̴ᆮ␇, q␇쿠̴ᆮ␇, q␇쿠̴ᆮ␇, q␇쿠̴ᆮ␇, q␇쿠̴ᆮ␇);
+Test_N(q␇퀴̴ᆵ␇, q␇퀴̴ᆵ␇, q␇퀴̴ᆵ␇, q␇퀴̴ᆵ␇, q␇퀴̴ᆵ␇);
+Test_N(q␇킈̴ᆼ␇, q␇킈̴ᆼ␇, q␇킈̴ᆼ␇, q␇킈̴ᆼ␇, q␇킈̴ᆼ␇);
+Test_N(q␇테̴ᆮ␇, q␇테̴ᆮ␇, q␇테̴ᆮ␇, q␇테̴ᆮ␇, q␇테̴ᆮ␇);
+Test_N(q␇토̴ᆵ␇, q␇토̴ᆵ␇, q␇토̴ᆵ␇, q␇토̴ᆵ␇, q␇토̴ᆵ␇);
+Test_N(q␇퇴̴ᆼ␇, q␇퇴̴ᆼ␇, q␇퇴̴ᆼ␇, q␇퇴̴ᆼ␇, q␇퇴̴ᆼ␇);
+Test_N(q␇트̴ᆮ␇, q␇트̴ᆮ␇, q␇트̴ᆮ␇, q␇트̴ᆮ␇, q␇트̴ᆮ␇);
+Test_N(q␇파̴ᆵ␇, q␇파̴ᆵ␇, q␇파̴ᆵ␇, q␇파̴ᆵ␇, q␇파̴ᆵ␇);
+Test_N(q␇퍠̴ᆼ␇, q␇퍠̴ᆼ␇, q␇퍠̴ᆼ␇, q␇퍠̴ᆼ␇, q␇퍠̴ᆼ␇);
+Test_N(q␇퐤̴ᆮ␇, q␇퐤̴ᆮ␇, q␇퐤̴ᆮ␇, q␇퐤̴ᆮ␇, q␇퐤̴ᆮ␇);
+Test_N(q␇푸̴ᆵ␇, q␇푸̴ᆵ␇, q␇푸̴ᆵ␇, q␇푸̴ᆵ␇, q␇푸̴ᆵ␇);
+Test_N(q␇퓌̴ᆼ␇, q␇퓌̴ᆼ␇, q␇퓌̴ᆼ␇, q␇퓌̴ᆼ␇, q␇퓌̴ᆼ␇);
+Test_N(q␇햐̴ᆮ␇, q␇햐̴ᆮ␇, q␇햐̴ᆮ␇, q␇햐̴ᆮ␇, q␇햐̴ᆮ␇);
+Test_N(q␇헤̴ᆵ␇, q␇헤̴ᆵ␇, q␇헤̴ᆵ␇, q␇헤̴ᆵ␇, q␇헤̴ᆵ␇);
+Test_N(q␇호̴ᆼ␇, q␇호̴ᆼ␇, q␇호̴ᆼ␇, q␇호̴ᆼ␇, q␇호̴ᆼ␇);
+Test_N(q␇훼̴ᆮ␇, q␇훼̴ᆮ␇, q␇훼̴ᆮ␇, q␇훼̴ᆮ␇, q␇훼̴ᆮ␇);
+Test_N(q␇흐̴ᆵ␇, q␇흐̴ᆵ␇, q␇흐̴ᆵ␇, q␇흐̴ᆵ␇, q␇흐̴ᆵ␇);
+Test_N(q␇𑄱̴𑄧␇, q␇𑄱̴𑄧␇, q␇𑄱̴𑄧␇, q␇𑄱̴𑄧␇, q␇𑄱̴𑄧␇);
+Test_N(q␇𑄲̴𑄧␇, q␇𑄲̴𑄧␇, q␇𑄲̴𑄧␇, q␇𑄲̴𑄧␇, q␇𑄲̴𑄧␇);
+Test_N(q␇𑍇̴𑌾␇, q␇𑍇̴𑌾␇, q␇𑍇̴𑌾␇, q␇𑍇̴𑌾␇, q␇𑍇̴𑌾␇);
+Test_N(q␇𑍇̴𑍗␇, q␇𑍇̴𑍗␇, q␇𑍇̴𑍗␇, q␇𑍇̴𑍗␇, q␇𑍇̴𑍗␇);
+Test_N(q␇𑒹̴𑒰␇, q␇𑒹̴𑒰␇, q␇𑒹̴𑒰␇, q␇𑒹̴𑒰␇, q␇𑒹̴𑒰␇);
+Test_N(q␇𑒹̴𑒺␇, q␇𑒹̴𑒺␇, q␇𑒹̴𑒺␇, q␇𑒹̴𑒺␇, q␇𑒹̴𑒺␇);
+Test_N(q␇𑒹̴𑒽␇, q␇𑒹̴𑒽␇, q␇𑒹̴𑒽␇, q␇𑒹̴𑒽␇, q␇𑒹̴𑒽␇);
+Test_N(q␇𑖸̴𑖯␇, q␇𑖸̴𑖯␇, q␇𑖸̴𑖯␇, q␇𑖸̴𑖯␇, q␇𑖸̴𑖯␇);
+Test_N(q␇𑖹̴𑖯␇, q␇𑖹̴𑖯␇, q␇𑖹̴𑖯␇, q␇𑖹̴𑖯␇, q␇𑖹̴𑖯␇);
+Test_N(q␇𑤵̴𑤰␇, q␇𑤵̴𑤰␇, q␇𑤵̴𑤰␇, q␇𑤵̴𑤰␇, q␇𑤵̴𑤰␇);
+done_testing();
\ No newline at end of file
Index: gnu/usr.bin/perl/lib/unicore/TestProp.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/TestProp.pl,v
diff -u -p -a -u -p -r1.10 TestProp.pl
--- gnu/usr.bin/perl/lib/unicore/TestProp.pl	15 Feb 2023 01:39:49 -0000	1.10
+++ gnu/usr.bin/perl/lib/unicore/TestProp.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 sub TODO_FAILING_BREAKS { 0 }
 
@@ -638,8 +638,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 177977, '\p{^Is_Age=0_0_0_0_0014.0}', "");
     Expect(1, 177977, '\P{Is_Age=0_0_0_0_0014.0}', "");
     Expect(0, 177977, '\P{^Is_Age=0_0_0_0_0014.0}', "");
-    Error('\p{Age= :=V2_0}');
-    Error('\P{Age= :=V2_0}');
+    Error('\p{Age= :=V15_0}');
+    Error('\P{Age= :=V15_0}');
+    Expect(1, 205743, '\p{Age=:\AV15_0\z:}', "");;
+    Expect(0, 205744, '\p{Age=:\AV15_0\z:}', "");;
+    Expect(1, 205743, '\p{Age=v150}', "");
+    Expect(0, 205743, '\p{^Age=v150}', "");
+    Expect(0, 205743, '\P{Age=v150}', "");
+    Expect(1, 205743, '\P{^Age=v150}', "");
+    Expect(0, 205744, '\p{Age=v150}', "");
+    Expect(1, 205744, '\p{^Age=v150}', "");
+    Expect(1, 205744, '\P{Age=v150}', "");
+    Expect(0, 205744, '\P{^Age=v150}', "");
+    Expect(1, 205743, '\p{Age=:\Av150\z:}', "");;
+    Expect(0, 205744, '\p{Age=:\Av150\z:}', "");;
+    Expect(1, 205743, '\p{Age=V15_0}', "");
+    Expect(0, 205743, '\p{^Age=V15_0}', "");
+    Expect(0, 205743, '\P{Age=V15_0}', "");
+    Expect(1, 205743, '\P{^Age=V15_0}', "");
+    Expect(0, 205744, '\p{Age=V15_0}', "");
+    Expect(1, 205744, '\p{^Age=V15_0}', "");
+    Expect(1, 205744, '\P{Age=V15_0}', "");
+    Expect(0, 205744, '\P{^Age=V15_0}', "");
+    Error('\p{Is_Age=/a/ -+00000015.0}');
+    Error('\P{Is_Age=/a/ -+00000015.0}');
+    Expect(1, 205743, '\p{Is_Age=1_5.0}', "");
+    Expect(0, 205743, '\p{^Is_Age=1_5.0}', "");
+    Expect(0, 205743, '\P{Is_Age=1_5.0}', "");
+    Expect(1, 205743, '\P{^Is_Age=1_5.0}', "");
+    Expect(0, 205744, '\p{Is_Age=1_5.0}', "");
+    Expect(1, 205744, '\p{^Is_Age=1_5.0}', "");
+    Expect(1, 205744, '\P{Is_Age=1_5.0}', "");
+    Expect(0, 205744, '\P{^Is_Age=1_5.0}', "");
+    Error('\p{Age=-	v2_0:=}');
+    Error('\P{Age=-	v2_0:=}');
     Expect(1, 983040, '\p{Age=:\AV2_0\z:}', "");;
     Expect(0, 983037, '\p{Age=:\AV2_0\z:}', "");;
     Expect(1, 983040, '\p{Age=v20}', "");
@@ -652,26 +684,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 983037, '\P{^Age=v20}', "");
     Expect(1, 983040, '\p{Age=:\Av20\z:}', "");;
     Expect(0, 983037, '\p{Age=:\Av20\z:}', "");;
-    Expect(1, 983040, '\p{Age=V2_0}', "");
-    Expect(0, 983040, '\p{^Age=V2_0}', "");
-    Expect(0, 983040, '\P{Age=V2_0}', "");
-    Expect(1, 983040, '\P{^Age=V2_0}', "");
-    Expect(0, 983037, '\p{Age=V2_0}', "");
-    Expect(1, 983037, '\p{^Age=V2_0}', "");
-    Expect(1, 983037, '\P{Age=V2_0}', "");
-    Expect(0, 983037, '\P{^Age=V2_0}', "");
-    Error('\p{Is_Age=/a/ -+0000002.0}');
-    Error('\P{Is_Age=/a/ -+0000002.0}');
-    Expect(1, 983040, '\p{Is_Age=2.0}', "");
-    Expect(0, 983040, '\p{^Is_Age=2.0}', "");
-    Expect(0, 983040, '\P{Is_Age=2.0}', "");
-    Expect(1, 983040, '\P{^Is_Age=2.0}', "");
-    Expect(0, 983037, '\p{Is_Age=2.0}', "");
-    Expect(1, 983037, '\p{^Is_Age=2.0}', "");
-    Expect(1, 983037, '\P{Is_Age=2.0}', "");
-    Expect(0, 983037, '\P{^Is_Age=2.0}', "");
-    Error('\p{Age: := _V2_1}');
-    Error('\P{Age: := _V2_1}');
+    Expect(1, 983040, '\p{Age=_	V2_0}', "");
+    Expect(0, 983040, '\p{^Age=_	V2_0}', "");
+    Expect(0, 983040, '\P{Age=_	V2_0}', "");
+    Expect(1, 983040, '\P{^Age=_	V2_0}', "");
+    Expect(0, 983037, '\p{Age=_	V2_0}', "");
+    Expect(1, 983037, '\p{^Age=_	V2_0}', "");
+    Expect(1, 983037, '\P{Age=_	V2_0}', "");
+    Expect(0, 983037, '\P{^Age=_	V2_0}', "");
+    Error('\p{Is_Age:/a/- +000002.0}');
+    Error('\P{Is_Age:/a/- +000002.0}');
+    Expect(1, 983040, '\p{Is_Age=+2.0}', "");
+    Expect(0, 983040, '\p{^Is_Age=+2.0}', "");
+    Expect(0, 983040, '\P{Is_Age=+2.0}', "");
+    Expect(1, 983040, '\P{^Is_Age=+2.0}', "");
+    Expect(0, 983037, '\p{Is_Age=+2.0}', "");
+    Expect(1, 983037, '\p{^Is_Age=+2.0}', "");
+    Expect(1, 983037, '\P{Is_Age=+2.0}', "");
+    Expect(0, 983037, '\P{^Is_Age=+2.0}', "");
+    Error('\p{Age=__V2_1/a/}');
+    Error('\P{Age=__V2_1/a/}');
     Expect(1, 65532, '\p{Age=:\AV2_1\z:}', "");;
     Expect(0, 65533, '\p{Age=:\AV2_1\z:}', "");;
     Expect(1, 65532, '\p{Age=v21}', "");
@@ -684,26 +716,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65533, '\P{^Age=v21}', "");
     Expect(1, 65532, '\p{Age=:\Av21\z:}', "");;
     Expect(0, 65533, '\p{Age=:\Av21\z:}', "");;
-    Expect(1, 65532, '\p{Age=	_V2_1}', "");
-    Expect(0, 65532, '\p{^Age=	_V2_1}', "");
-    Expect(0, 65532, '\P{Age=	_V2_1}', "");
-    Expect(1, 65532, '\P{^Age=	_V2_1}', "");
-    Expect(0, 65533, '\p{Age=	_V2_1}', "");
-    Expect(1, 65533, '\p{^Age=	_V2_1}', "");
-    Expect(1, 65533, '\P{Age=	_V2_1}', "");
-    Expect(0, 65533, '\P{^Age=	_V2_1}', "");
-    Error('\p{Is_Age=:=  002.1}');
-    Error('\P{Is_Age=:=  002.1}');
-    Expect(1, 65532, '\p{Is_Age=+002.1}', "");
-    Expect(0, 65532, '\p{^Is_Age=+002.1}', "");
-    Expect(0, 65532, '\P{Is_Age=+002.1}', "");
-    Expect(1, 65532, '\P{^Is_Age=+002.1}', "");
-    Expect(0, 65533, '\p{Is_Age=+002.1}', "");
-    Expect(1, 65533, '\p{^Is_Age=+002.1}', "");
-    Expect(1, 65533, '\P{Is_Age=+002.1}', "");
-    Expect(0, 65533, '\P{^Is_Age=+002.1}', "");
-    Error('\p{Age=-/a/v3_0}');
-    Error('\P{Age=-/a/v3_0}');
+    Expect(1, 65532, '\p{Age=__V2_1}', "");
+    Expect(0, 65532, '\p{^Age=__V2_1}', "");
+    Expect(0, 65532, '\P{Age=__V2_1}', "");
+    Expect(1, 65532, '\P{^Age=__V2_1}', "");
+    Expect(0, 65533, '\p{Age=__V2_1}', "");
+    Expect(1, 65533, '\p{^Age=__V2_1}', "");
+    Expect(1, 65533, '\P{Age=__V2_1}', "");
+    Expect(0, 65533, '\P{^Age=__V2_1}', "");
+    Error('\p{Is_Age=:=00000002.1}');
+    Error('\P{Is_Age=:=00000002.1}');
+    Expect(1, 65532, '\p{Is_Age=0_2.1}', "");
+    Expect(0, 65532, '\p{^Is_Age=0_2.1}', "");
+    Expect(0, 65532, '\P{Is_Age=0_2.1}', "");
+    Expect(1, 65532, '\P{^Is_Age=0_2.1}', "");
+    Expect(0, 65533, '\p{Is_Age=0_2.1}', "");
+    Expect(1, 65533, '\p{^Is_Age=0_2.1}', "");
+    Expect(1, 65533, '\P{Is_Age=0_2.1}', "");
+    Expect(0, 65533, '\P{^Is_Age=0_2.1}', "");
+    Error('\p{Age=/a/  V3_0}');
+    Error('\P{Age=/a/  V3_0}');
     Expect(1, 65531, '\p{Age=:\AV3_0\z:}', "");;
     Expect(0, 65532, '\p{Age=:\AV3_0\z:}', "");;
     Expect(1, 65531, '\p{Age=v30}', "");
@@ -716,26 +748,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65532, '\P{^Age=v30}', "");
     Expect(1, 65531, '\p{Age=:\Av30\z:}', "");;
     Expect(0, 65532, '\p{Age=:\Av30\z:}', "");;
-    Expect(1, 65531, '\p{Age=	V3_0}', "");
-    Expect(0, 65531, '\p{^Age=	V3_0}', "");
-    Expect(0, 65531, '\P{Age=	V3_0}', "");
-    Expect(1, 65531, '\P{^Age=	V3_0}', "");
-    Expect(0, 65532, '\p{Age=	V3_0}', "");
-    Expect(1, 65532, '\p{^Age=	V3_0}', "");
-    Expect(1, 65532, '\P{Age=	V3_0}', "");
-    Expect(0, 65532, '\P{^Age=	V3_0}', "");
-    Error('\p{Is_Age=:= 3.0}');
-    Error('\P{Is_Age=:= 3.0}');
-    Expect(1, 65531, '\p{Is_Age=3.0}', "");
-    Expect(0, 65531, '\p{^Is_Age=3.0}', "");
-    Expect(0, 65531, '\P{Is_Age=3.0}', "");
-    Expect(1, 65531, '\P{^Is_Age=3.0}', "");
-    Expect(0, 65532, '\p{Is_Age=3.0}', "");
-    Expect(1, 65532, '\p{^Is_Age=3.0}', "");
-    Expect(1, 65532, '\P{Is_Age=3.0}', "");
-    Expect(0, 65532, '\P{^Is_Age=3.0}', "");
-    Error('\p{Age=-/a/V3_1}');
-    Error('\P{Age=-/a/V3_1}');
+    Expect(1, 65531, '\p{Age=-_V3_0}', "");
+    Expect(0, 65531, '\p{^Age=-_V3_0}', "");
+    Expect(0, 65531, '\P{Age=-_V3_0}', "");
+    Expect(1, 65531, '\P{^Age=-_V3_0}', "");
+    Expect(0, 65532, '\p{Age=-_V3_0}', "");
+    Expect(1, 65532, '\p{^Age=-_V3_0}', "");
+    Expect(1, 65532, '\P{Age=-_V3_0}', "");
+    Expect(0, 65532, '\P{^Age=-_V3_0}', "");
+    Error('\p{Is_Age:		:=0000000003.0}');
+    Error('\P{Is_Age:		:=0000000003.0}');
+    Expect(1, 65531, '\p{Is_Age=0_3.0}', "");
+    Expect(0, 65531, '\p{^Is_Age=0_3.0}', "");
+    Expect(0, 65531, '\P{Is_Age=0_3.0}', "");
+    Expect(1, 65531, '\P{^Is_Age=0_3.0}', "");
+    Expect(0, 65532, '\p{Is_Age=0_3.0}', "");
+    Expect(1, 65532, '\p{^Is_Age=0_3.0}', "");
+    Expect(1, 65532, '\P{Is_Age=0_3.0}', "");
+    Expect(0, 65532, '\P{^Is_Age=0_3.0}', "");
+    Error('\p{Age=-:=V3_1}');
+    Error('\P{Age=-:=V3_1}');
     Expect(1, 917631, '\p{Age=:\AV3_1\z:}', "");;
     Expect(0, 917632, '\p{Age=:\AV3_1\z:}', "");;
     Expect(1, 917631, '\p{Age=v31}', "");
@@ -748,58 +780,58 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^Age=v31}', "");
     Expect(1, 917631, '\p{Age=:\Av31\z:}', "");;
     Expect(0, 917632, '\p{Age=:\Av31\z:}', "");;
-    Expect(1, 917631, '\p{Age=		V3_1}', "");
-    Expect(0, 917631, '\p{^Age=		V3_1}', "");
-    Expect(0, 917631, '\P{Age=		V3_1}', "");
-    Expect(1, 917631, '\P{^Age=		V3_1}', "");
-    Expect(0, 917632, '\p{Age=		V3_1}', "");
-    Expect(1, 917632, '\p{^Age=		V3_1}', "");
-    Expect(1, 917632, '\P{Age=		V3_1}', "");
-    Expect(0, 917632, '\P{^Age=		V3_1}', "");
-    Error('\p{Is_Age=:=- 0003.1}');
-    Error('\P{Is_Age=:=- 0003.1}');
-    Expect(1, 917631, '\p{Is_Age=+000003.1}', "");
-    Expect(0, 917631, '\p{^Is_Age=+000003.1}', "");
-    Expect(0, 917631, '\P{Is_Age=+000003.1}', "");
-    Expect(1, 917631, '\P{^Is_Age=+000003.1}', "");
-    Expect(0, 917632, '\p{Is_Age=+000003.1}', "");
-    Expect(1, 917632, '\p{^Is_Age=+000003.1}', "");
-    Expect(1, 917632, '\P{Is_Age=+000003.1}', "");
-    Expect(0, 917632, '\P{^Is_Age=+000003.1}', "");
-    Error('\p{Age=/a/__V3_2}');
-    Error('\P{Age=/a/__V3_2}');
+    Expect(1, 917631, '\p{Age=		v3_1}', "");
+    Expect(0, 917631, '\p{^Age=		v3_1}', "");
+    Expect(0, 917631, '\P{Age=		v3_1}', "");
+    Expect(1, 917631, '\P{^Age=		v3_1}', "");
+    Expect(0, 917632, '\p{Age=		v3_1}', "");
+    Expect(1, 917632, '\p{^Age=		v3_1}', "");
+    Expect(1, 917632, '\P{Age=		v3_1}', "");
+    Expect(0, 917632, '\P{^Age=		v3_1}', "");
+    Error('\p{Is_Age=		0_0_0_0_0_03.1/a/}');
+    Error('\P{Is_Age=		0_0_0_0_0_03.1/a/}');
+    Expect(1, 917631, '\p{Is_Age=0003.1}', "");
+    Expect(0, 917631, '\p{^Is_Age=0003.1}', "");
+    Expect(0, 917631, '\P{Is_Age=0003.1}', "");
+    Expect(1, 917631, '\P{^Is_Age=0003.1}', "");
+    Expect(0, 917632, '\p{Is_Age=0003.1}', "");
+    Expect(1, 917632, '\p{^Is_Age=0003.1}', "");
+    Expect(1, 917632, '\P{Is_Age=0003.1}', "");
+    Expect(0, 917632, '\P{^Is_Age=0003.1}', "");
+    Error('\p{Age=:=	V3_2}');
+    Error('\P{Age=:=	V3_2}');
     Expect(1, 65376, '\p{Age=:\AV3_2\z:}', "");;
     Expect(0, 65377, '\p{Age=:\AV3_2\z:}', "");;
-    Expect(1, 65376, '\p{Age=v32}', "");
-    Expect(0, 65376, '\p{^Age=v32}', "");
-    Expect(0, 65376, '\P{Age=v32}', "");
-    Expect(1, 65376, '\P{^Age=v32}', "");
-    Expect(0, 65377, '\p{Age=v32}', "");
-    Expect(1, 65377, '\p{^Age=v32}', "");
-    Expect(1, 65377, '\P{Age=v32}', "");
-    Expect(0, 65377, '\P{^Age=v32}', "");
+    Expect(1, 65376, '\p{Age:	v32}', "");
+    Expect(0, 65376, '\p{^Age:	v32}', "");
+    Expect(0, 65376, '\P{Age:	v32}', "");
+    Expect(1, 65376, '\P{^Age:	v32}', "");
+    Expect(0, 65377, '\p{Age:	v32}', "");
+    Expect(1, 65377, '\p{^Age:	v32}', "");
+    Expect(1, 65377, '\P{Age:	v32}', "");
+    Expect(0, 65377, '\P{^Age:	v32}', "");
     Expect(1, 65376, '\p{Age=:\Av32\z:}', "");;
     Expect(0, 65377, '\p{Age=:\Av32\z:}', "");;
-    Expect(1, 65376, '\p{Age=_	v3_2}', "");
-    Expect(0, 65376, '\p{^Age=_	v3_2}', "");
-    Expect(0, 65376, '\P{Age=_	v3_2}', "");
-    Expect(1, 65376, '\P{^Age=_	v3_2}', "");
-    Expect(0, 65377, '\p{Age=_	v3_2}', "");
-    Expect(1, 65377, '\p{^Age=_	v3_2}', "");
-    Expect(1, 65377, '\P{Age=_	v3_2}', "");
-    Expect(0, 65377, '\P{^Age=_	v3_2}', "");
-    Error('\p{Is_Age=:=-	0_0_03.2}');
-    Error('\P{Is_Age=:=-	0_0_03.2}');
-    Expect(1, 65376, '\p{Is_Age=+0000_3.2}', "");
-    Expect(0, 65376, '\p{^Is_Age=+0000_3.2}', "");
-    Expect(0, 65376, '\P{Is_Age=+0000_3.2}', "");
-    Expect(1, 65376, '\P{^Is_Age=+0000_3.2}', "");
-    Expect(0, 65377, '\p{Is_Age=+0000_3.2}', "");
-    Expect(1, 65377, '\p{^Is_Age=+0000_3.2}', "");
-    Expect(1, 65377, '\P{Is_Age=+0000_3.2}', "");
-    Expect(0, 65377, '\P{^Is_Age=+0000_3.2}', "");
-    Error('\p{Age=:=V4_0}');
-    Error('\P{Age=:=V4_0}');
+    Expect(1, 65376, '\p{Age= -v3_2}', "");
+    Expect(0, 65376, '\p{^Age= -v3_2}', "");
+    Expect(0, 65376, '\P{Age= -v3_2}', "");
+    Expect(1, 65376, '\P{^Age= -v3_2}', "");
+    Expect(0, 65377, '\p{Age= -v3_2}', "");
+    Expect(1, 65377, '\p{^Age= -v3_2}', "");
+    Expect(1, 65377, '\P{Age= -v3_2}', "");
+    Expect(0, 65377, '\P{^Age= -v3_2}', "");
+    Error('\p{Is_Age=_0_3.2:=}');
+    Error('\P{Is_Age=_0_3.2:=}');
+    Expect(1, 65376, '\p{Is_Age=+00003.2}', "");
+    Expect(0, 65376, '\p{^Is_Age=+00003.2}', "");
+    Expect(0, 65376, '\P{Is_Age=+00003.2}', "");
+    Expect(1, 65376, '\P{^Is_Age=+00003.2}', "");
+    Expect(0, 65377, '\p{Is_Age=+00003.2}', "");
+    Expect(1, 65377, '\p{^Is_Age=+00003.2}', "");
+    Expect(1, 65377, '\P{Is_Age=+00003.2}', "");
+    Expect(0, 65377, '\P{^Is_Age=+00003.2}', "");
+    Error('\p{Age=:=_V4_0}');
+    Error('\P{Age=:=_V4_0}');
     Expect(1, 917999, '\p{Age=:\AV4_0\z:}', "");;
     Expect(0, 918000, '\p{Age=:\AV4_0\z:}', "");;
     Expect(1, 917999, '\p{Age:	v40}', "");
@@ -812,58 +844,58 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^Age:	v40}', "");
     Expect(1, 917999, '\p{Age=:\Av40\z:}', "");;
     Expect(0, 918000, '\p{Age=:\Av40\z:}', "");;
-    Expect(1, 917999, '\p{Age= -v4_0}', "");
-    Expect(0, 917999, '\p{^Age= -v4_0}', "");
-    Expect(0, 917999, '\P{Age= -v4_0}', "");
-    Expect(1, 917999, '\P{^Age= -v4_0}', "");
-    Expect(0, 918000, '\p{Age= -v4_0}', "");
-    Expect(1, 918000, '\p{^Age= -v4_0}', "");
-    Expect(1, 918000, '\P{Age= -v4_0}', "");
-    Expect(0, 918000, '\P{^Age= -v4_0}', "");
-    Error('\p{Is_Age=_0_4.0:=}');
-    Error('\P{Is_Age=_0_4.0:=}');
-    Expect(1, 917999, '\p{Is_Age=+00004.0}', "");
-    Expect(0, 917999, '\p{^Is_Age=+00004.0}', "");
-    Expect(0, 917999, '\P{Is_Age=+00004.0}', "");
-    Expect(1, 917999, '\P{^Is_Age=+00004.0}', "");
-    Expect(0, 918000, '\p{Is_Age=+00004.0}', "");
-    Expect(1, 918000, '\p{^Is_Age=+00004.0}', "");
-    Expect(1, 918000, '\P{Is_Age=+00004.0}', "");
-    Expect(0, 918000, '\P{^Is_Age=+00004.0}', "");
-    Error('\p{Age=:=_V4_1}');
-    Error('\P{Age=:=_V4_1}');
+    Expect(1, 917999, '\p{Age=		v4_0}', "");
+    Expect(0, 917999, '\p{^Age=		v4_0}', "");
+    Expect(0, 917999, '\P{Age=		v4_0}', "");
+    Expect(1, 917999, '\P{^Age=		v4_0}', "");
+    Expect(0, 918000, '\p{Age=		v4_0}', "");
+    Expect(1, 918000, '\p{^Age=		v4_0}', "");
+    Expect(1, 918000, '\P{Age=		v4_0}', "");
+    Expect(0, 918000, '\P{^Age=		v4_0}', "");
+    Error('\p{Is_Age=:=00_4.0}');
+    Error('\P{Is_Age=:=00_4.0}');
+    Expect(1, 917999, '\p{Is_Age=00_00_4.0}', "");
+    Expect(0, 917999, '\p{^Is_Age=00_00_4.0}', "");
+    Expect(0, 917999, '\P{Is_Age=00_00_4.0}', "");
+    Expect(1, 917999, '\P{^Is_Age=00_00_4.0}', "");
+    Expect(0, 918000, '\p{Is_Age=00_00_4.0}', "");
+    Expect(1, 918000, '\p{^Is_Age=00_00_4.0}', "");
+    Expect(1, 918000, '\P{Is_Age=00_00_4.0}', "");
+    Expect(0, 918000, '\P{^Is_Age=00_00_4.0}', "");
+    Error('\p{Age:/a/_V4_1}');
+    Error('\P{Age:/a/_V4_1}');
     Expect(1, 120485, '\p{Age=:\AV4_1\z:}', "");;
     Expect(0, 120486, '\p{Age=:\AV4_1\z:}', "");;
-    Expect(1, 120485, '\p{Age:	v41}', "");
-    Expect(0, 120485, '\p{^Age:	v41}', "");
-    Expect(0, 120485, '\P{Age:	v41}', "");
-    Expect(1, 120485, '\P{^Age:	v41}', "");
-    Expect(0, 120486, '\p{Age:	v41}', "");
-    Expect(1, 120486, '\p{^Age:	v41}', "");
-    Expect(1, 120486, '\P{Age:	v41}', "");
-    Expect(0, 120486, '\P{^Age:	v41}', "");
+    Expect(1, 120485, '\p{Age=v41}', "");
+    Expect(0, 120485, '\p{^Age=v41}', "");
+    Expect(0, 120485, '\P{Age=v41}', "");
+    Expect(1, 120485, '\P{^Age=v41}', "");
+    Expect(0, 120486, '\p{Age=v41}', "");
+    Expect(1, 120486, '\p{^Age=v41}', "");
+    Expect(1, 120486, '\P{Age=v41}', "");
+    Expect(0, 120486, '\P{^Age=v41}', "");
     Expect(1, 120485, '\p{Age=:\Av41\z:}', "");;
     Expect(0, 120486, '\p{Age=:\Av41\z:}', "");;
-    Expect(1, 120485, '\p{Age=		v4_1}', "");
-    Expect(0, 120485, '\p{^Age=		v4_1}', "");
-    Expect(0, 120485, '\P{Age=		v4_1}', "");
-    Expect(1, 120485, '\P{^Age=		v4_1}', "");
-    Expect(0, 120486, '\p{Age=		v4_1}', "");
-    Expect(1, 120486, '\p{^Age=		v4_1}', "");
-    Expect(1, 120486, '\P{Age=		v4_1}', "");
-    Expect(0, 120486, '\P{^Age=		v4_1}', "");
-    Error('\p{Is_Age=:=00_4.1}');
-    Error('\P{Is_Age=:=00_4.1}');
-    Expect(1, 120485, '\p{Is_Age=00_00_4.1}', "");
-    Expect(0, 120485, '\p{^Is_Age=00_00_4.1}', "");
-    Expect(0, 120485, '\P{Is_Age=00_00_4.1}', "");
-    Expect(1, 120485, '\P{^Is_Age=00_00_4.1}', "");
-    Expect(0, 120486, '\p{Is_Age=00_00_4.1}', "");
-    Expect(1, 120486, '\p{^Is_Age=00_00_4.1}', "");
-    Expect(1, 120486, '\P{Is_Age=00_00_4.1}', "");
-    Expect(0, 120486, '\P{^Is_Age=00_00_4.1}', "");
-    Error('\p{Age:/a/_V5_0}');
-    Error('\P{Age:/a/_V5_0}');
+    Expect(1, 120485, '\p{Age=	-V4_1}', "");
+    Expect(0, 120485, '\p{^Age=	-V4_1}', "");
+    Expect(0, 120485, '\P{Age=	-V4_1}', "");
+    Expect(1, 120485, '\P{^Age=	-V4_1}', "");
+    Expect(0, 120486, '\p{Age=	-V4_1}', "");
+    Expect(1, 120486, '\p{^Age=	-V4_1}', "");
+    Expect(1, 120486, '\P{Age=	-V4_1}', "");
+    Expect(0, 120486, '\P{^Age=	-V4_1}', "");
+    Error('\p{Is_Age=/a/-_+0_4.1}');
+    Error('\P{Is_Age=/a/-_+0_4.1}');
+    Expect(1, 120485, '\p{Is_Age=+00_00_00_004.1}', "");
+    Expect(0, 120485, '\p{^Is_Age=+00_00_00_004.1}', "");
+    Expect(0, 120485, '\P{Is_Age=+00_00_00_004.1}', "");
+    Expect(1, 120485, '\P{^Is_Age=+00_00_00_004.1}', "");
+    Expect(0, 120486, '\p{Is_Age=+00_00_00_004.1}', "");
+    Expect(1, 120486, '\p{^Is_Age=+00_00_00_004.1}', "");
+    Expect(1, 120486, '\P{Is_Age=+00_00_00_004.1}', "");
+    Expect(0, 120486, '\P{^Is_Age=+00_00_00_004.1}', "");
+    Error('\p{Age=V5_0:=}');
+    Error('\P{Age=V5_0:=}');
     Expect(1, 120779, '\p{Age=:\AV5_0\z:}', "");;
     Expect(0, 120780, '\p{Age=:\AV5_0\z:}', "");;
     Expect(1, 120779, '\p{Age=v50}', "");
@@ -876,90 +908,90 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 120780, '\P{^Age=v50}', "");
     Expect(1, 120779, '\p{Age=:\Av50\z:}', "");;
     Expect(0, 120780, '\p{Age=:\Av50\z:}', "");;
-    Expect(1, 120779, '\p{Age=	-V5_0}', "");
-    Expect(0, 120779, '\p{^Age=	-V5_0}', "");
-    Expect(0, 120779, '\P{Age=	-V5_0}', "");
-    Expect(1, 120779, '\P{^Age=	-V5_0}', "");
-    Expect(0, 120780, '\p{Age=	-V5_0}', "");
-    Expect(1, 120780, '\p{^Age=	-V5_0}', "");
-    Expect(1, 120780, '\P{Age=	-V5_0}', "");
-    Expect(0, 120780, '\P{^Age=	-V5_0}', "");
-    Error('\p{Is_Age=/a/-_+0_5.0}');
-    Error('\P{Is_Age=/a/-_+0_5.0}');
-    Expect(1, 120779, '\p{Is_Age=+00_00_00_005.0}', "");
-    Expect(0, 120779, '\p{^Is_Age=+00_00_00_005.0}', "");
-    Expect(0, 120779, '\P{Is_Age=+00_00_00_005.0}', "");
-    Expect(1, 120779, '\P{^Is_Age=+00_00_00_005.0}', "");
-    Expect(0, 120780, '\p{Is_Age=+00_00_00_005.0}', "");
-    Expect(1, 120780, '\p{^Is_Age=+00_00_00_005.0}', "");
-    Expect(1, 120780, '\P{Is_Age=+00_00_00_005.0}', "");
-    Expect(0, 120780, '\P{^Is_Age=+00_00_00_005.0}', "");
-    Error('\p{Age=V5_1:=}');
-    Error('\P{Age=V5_1:=}');
+    Expect(1, 120779, '\p{Age=	V5_0}', "");
+    Expect(0, 120779, '\p{^Age=	V5_0}', "");
+    Expect(0, 120779, '\P{Age=	V5_0}', "");
+    Expect(1, 120779, '\P{^Age=	V5_0}', "");
+    Expect(0, 120780, '\p{Age=	V5_0}', "");
+    Expect(1, 120780, '\p{^Age=	V5_0}', "");
+    Expect(1, 120780, '\P{Age=	V5_0}', "");
+    Expect(0, 120780, '\P{^Age=	V5_0}', "");
+    Error('\p{Is_Age=/a/		5.0}');
+    Error('\P{Is_Age=/a/		5.0}');
+    Expect(1, 120779, '\p{Is_Age=0_0_0_05.0}', "");
+    Expect(0, 120779, '\p{^Is_Age=0_0_0_05.0}', "");
+    Expect(0, 120779, '\P{Is_Age=0_0_0_05.0}', "");
+    Expect(1, 120779, '\P{^Is_Age=0_0_0_05.0}', "");
+    Expect(0, 120780, '\p{Is_Age=0_0_0_05.0}', "");
+    Expect(1, 120780, '\p{^Is_Age=0_0_0_05.0}', "");
+    Expect(1, 120780, '\P{Is_Age=0_0_0_05.0}', "");
+    Expect(0, 120780, '\P{^Is_Age=0_0_0_05.0}', "");
+    Error('\p{Age=	:=V5_1}');
+    Error('\P{Age=	:=V5_1}');
     Expect(1, 127123, '\p{Age=:\AV5_1\z:}', "");;
     Expect(0, 127124, '\p{Age=:\AV5_1\z:}', "");;
-    Expect(1, 127123, '\p{Age=v51}', "");
-    Expect(0, 127123, '\p{^Age=v51}', "");
-    Expect(0, 127123, '\P{Age=v51}', "");
-    Expect(1, 127123, '\P{^Age=v51}', "");
-    Expect(0, 127124, '\p{Age=v51}', "");
-    Expect(1, 127124, '\p{^Age=v51}', "");
-    Expect(1, 127124, '\P{Age=v51}', "");
-    Expect(0, 127124, '\P{^Age=v51}', "");
+    Expect(1, 127123, '\p{Age: v51}', "");
+    Expect(0, 127123, '\p{^Age: v51}', "");
+    Expect(0, 127123, '\P{Age: v51}', "");
+    Expect(1, 127123, '\P{^Age: v51}', "");
+    Expect(0, 127124, '\p{Age: v51}', "");
+    Expect(1, 127124, '\p{^Age: v51}', "");
+    Expect(1, 127124, '\P{Age: v51}', "");
+    Expect(0, 127124, '\P{^Age: v51}', "");
     Expect(1, 127123, '\p{Age=:\Av51\z:}', "");;
     Expect(0, 127124, '\p{Age=:\Av51\z:}', "");;
-    Expect(1, 127123, '\p{Age=	V5_1}', "");
-    Expect(0, 127123, '\p{^Age=	V5_1}', "");
-    Expect(0, 127123, '\P{Age=	V5_1}', "");
-    Expect(1, 127123, '\P{^Age=	V5_1}', "");
-    Expect(0, 127124, '\p{Age=	V5_1}', "");
-    Expect(1, 127124, '\p{^Age=	V5_1}', "");
-    Expect(1, 127124, '\P{Age=	V5_1}', "");
-    Expect(0, 127124, '\P{^Age=	V5_1}', "");
-    Error('\p{Is_Age=/a/		5.1}');
-    Error('\P{Is_Age=/a/		5.1}');
-    Expect(1, 127123, '\p{Is_Age=0_0_0_05.1}', "");
-    Expect(0, 127123, '\p{^Is_Age=0_0_0_05.1}', "");
-    Expect(0, 127123, '\P{Is_Age=0_0_0_05.1}', "");
-    Expect(1, 127123, '\P{^Is_Age=0_0_0_05.1}', "");
-    Expect(0, 127124, '\p{Is_Age=0_0_0_05.1}', "");
-    Expect(1, 127124, '\p{^Is_Age=0_0_0_05.1}', "");
-    Expect(1, 127124, '\P{Is_Age=0_0_0_05.1}', "");
-    Expect(0, 127124, '\P{^Is_Age=0_0_0_05.1}', "");
-    Error('\p{Age=	:=V5_2}');
-    Error('\P{Age=	:=V5_2}');
+    Expect(1, 127123, '\p{Age= _V5_1}', "");
+    Expect(0, 127123, '\p{^Age= _V5_1}', "");
+    Expect(0, 127123, '\P{Age= _V5_1}', "");
+    Expect(1, 127123, '\P{^Age= _V5_1}', "");
+    Expect(0, 127124, '\p{Age= _V5_1}', "");
+    Expect(1, 127124, '\p{^Age= _V5_1}', "");
+    Expect(1, 127124, '\P{Age= _V5_1}', "");
+    Expect(0, 127124, '\P{^Age= _V5_1}', "");
+    Error('\p{Is_Age=_+000005.1:=}');
+    Error('\P{Is_Age=_+000005.1:=}');
+    Expect(1, 127123, '\p{Is_Age=+0000000005.1}', "");
+    Expect(0, 127123, '\p{^Is_Age=+0000000005.1}', "");
+    Expect(0, 127123, '\P{Is_Age=+0000000005.1}', "");
+    Expect(1, 127123, '\P{^Is_Age=+0000000005.1}', "");
+    Expect(0, 127124, '\p{Is_Age=+0000000005.1}', "");
+    Expect(1, 127124, '\p{^Is_Age=+0000000005.1}', "");
+    Expect(1, 127124, '\P{Is_Age=+0000000005.1}', "");
+    Expect(0, 127124, '\P{^Is_Age=+0000000005.1}', "");
+    Error('\p{Age:		/a/V5_2}');
+    Error('\P{Age:		/a/V5_2}');
     Expect(1, 177972, '\p{Age=:\AV5_2\z:}', "");;
     Expect(0, 177973, '\p{Age=:\AV5_2\z:}', "");;
-    Expect(1, 177972, '\p{Age: v52}', "");
-    Expect(0, 177972, '\p{^Age: v52}', "");
-    Expect(0, 177972, '\P{Age: v52}', "");
-    Expect(1, 177972, '\P{^Age: v52}', "");
-    Expect(0, 177973, '\p{Age: v52}', "");
-    Expect(1, 177973, '\p{^Age: v52}', "");
-    Expect(1, 177973, '\P{Age: v52}', "");
-    Expect(0, 177973, '\P{^Age: v52}', "");
+    Expect(1, 177972, '\p{Age=v52}', "");
+    Expect(0, 177972, '\p{^Age=v52}', "");
+    Expect(0, 177972, '\P{Age=v52}', "");
+    Expect(1, 177972, '\P{^Age=v52}', "");
+    Expect(0, 177973, '\p{Age=v52}', "");
+    Expect(1, 177973, '\p{^Age=v52}', "");
+    Expect(1, 177973, '\P{Age=v52}', "");
+    Expect(0, 177973, '\P{^Age=v52}', "");
     Expect(1, 177972, '\p{Age=:\Av52\z:}', "");;
     Expect(0, 177973, '\p{Age=:\Av52\z:}', "");;
-    Expect(1, 177972, '\p{Age= _V5_2}', "");
-    Expect(0, 177972, '\p{^Age= _V5_2}', "");
-    Expect(0, 177972, '\P{Age= _V5_2}', "");
-    Expect(1, 177972, '\P{^Age= _V5_2}', "");
-    Expect(0, 177973, '\p{Age= _V5_2}', "");
-    Expect(1, 177973, '\p{^Age= _V5_2}', "");
-    Expect(1, 177973, '\P{Age= _V5_2}', "");
-    Expect(0, 177973, '\P{^Age= _V5_2}', "");
-    Error('\p{Is_Age=_+000005.2:=}');
-    Error('\P{Is_Age=_+000005.2:=}');
-    Expect(1, 177972, '\p{Is_Age=+0000000005.2}', "");
-    Expect(0, 177972, '\p{^Is_Age=+0000000005.2}', "");
-    Expect(0, 177972, '\P{Is_Age=+0000000005.2}', "");
-    Expect(1, 177972, '\P{^Is_Age=+0000000005.2}', "");
-    Expect(0, 177973, '\p{Is_Age=+0000000005.2}', "");
-    Expect(1, 177973, '\p{^Is_Age=+0000000005.2}', "");
-    Expect(1, 177973, '\P{Is_Age=+0000000005.2}', "");
-    Expect(0, 177973, '\P{^Is_Age=+0000000005.2}', "");
-    Error('\p{Age:		/a/V6_0}');
-    Error('\P{Age:		/a/V6_0}');
+    Expect(1, 177972, '\p{Age=_ v5_2}', "");
+    Expect(0, 177972, '\p{^Age=_ v5_2}', "");
+    Expect(0, 177972, '\P{Age=_ v5_2}', "");
+    Expect(1, 177972, '\P{^Age=_ v5_2}', "");
+    Expect(0, 177973, '\p{Age=_ v5_2}', "");
+    Expect(1, 177973, '\p{^Age=_ v5_2}', "");
+    Expect(1, 177973, '\P{Age=_ v5_2}', "");
+    Expect(0, 177973, '\P{^Age=_ v5_2}', "");
+    Error('\p{Is_Age=- +00_5.2:=}');
+    Error('\P{Is_Age=- +00_5.2:=}');
+    Expect(1, 177972, '\p{Is_Age:	0_5.2}', "");
+    Expect(0, 177972, '\p{^Is_Age:	0_5.2}', "");
+    Expect(0, 177972, '\P{Is_Age:	0_5.2}', "");
+    Expect(1, 177972, '\P{^Is_Age:	0_5.2}', "");
+    Expect(0, 177973, '\p{Is_Age:	0_5.2}', "");
+    Expect(1, 177973, '\p{^Is_Age:	0_5.2}', "");
+    Expect(1, 177973, '\P{Is_Age:	0_5.2}', "");
+    Expect(0, 177973, '\P{^Is_Age:	0_5.2}', "");
+    Error('\p{Age=/a/V6_0}');
+    Error('\P{Age=/a/V6_0}');
     Expect(1, 178205, '\p{Age=:\AV6_0\z:}', "");;
     Expect(0, 178206, '\p{Age=:\AV6_0\z:}', "");;
     Expect(1, 178205, '\p{Age=v60}', "");
@@ -972,26 +1004,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 178206, '\P{^Age=v60}', "");
     Expect(1, 178205, '\p{Age=:\Av60\z:}', "");;
     Expect(0, 178206, '\p{Age=:\Av60\z:}', "");;
-    Expect(1, 178205, '\p{Age=_ v6_0}', "");
-    Expect(0, 178205, '\p{^Age=_ v6_0}', "");
-    Expect(0, 178205, '\P{Age=_ v6_0}', "");
-    Expect(1, 178205, '\P{^Age=_ v6_0}', "");
-    Expect(0, 178206, '\p{Age=_ v6_0}', "");
-    Expect(1, 178206, '\p{^Age=_ v6_0}', "");
-    Expect(1, 178206, '\P{Age=_ v6_0}', "");
-    Expect(0, 178206, '\P{^Age=_ v6_0}', "");
-    Error('\p{Is_Age=- +00_6.0:=}');
-    Error('\P{Is_Age=- +00_6.0:=}');
-    Expect(1, 178205, '\p{Is_Age:	0_6.0}', "");
-    Expect(0, 178205, '\p{^Is_Age:	0_6.0}', "");
-    Expect(0, 178205, '\P{Is_Age:	0_6.0}', "");
-    Expect(1, 178205, '\P{^Is_Age:	0_6.0}', "");
-    Expect(0, 178206, '\p{Is_Age:	0_6.0}', "");
-    Expect(1, 178206, '\p{^Is_Age:	0_6.0}', "");
-    Expect(1, 178206, '\P{Is_Age:	0_6.0}', "");
-    Expect(0, 178206, '\P{^Is_Age:	0_6.0}', "");
-    Error('\p{Age=/a/V6_1}');
-    Error('\P{Age=/a/V6_1}');
+    Expect(1, 178205, '\p{Age=_V6_0}', "");
+    Expect(0, 178205, '\p{^Age=_V6_0}', "");
+    Expect(0, 178205, '\P{Age=_V6_0}', "");
+    Expect(1, 178205, '\P{^Age=_V6_0}', "");
+    Expect(0, 178206, '\p{Age=_V6_0}', "");
+    Expect(1, 178206, '\p{^Age=_V6_0}', "");
+    Expect(1, 178206, '\P{Age=_V6_0}', "");
+    Expect(0, 178206, '\P{^Age=_V6_0}', "");
+    Error('\p{Is_Age= 00000000_6.0:=}');
+    Error('\P{Is_Age= 00000000_6.0:=}');
+    Expect(1, 178205, '\p{Is_Age=+0_6.0}', "");
+    Expect(0, 178205, '\p{^Is_Age=+0_6.0}', "");
+    Expect(0, 178205, '\P{Is_Age=+0_6.0}', "");
+    Expect(1, 178205, '\P{^Is_Age=+0_6.0}', "");
+    Expect(0, 178206, '\p{Is_Age=+0_6.0}', "");
+    Expect(1, 178206, '\p{^Is_Age=+0_6.0}', "");
+    Expect(1, 178206, '\P{Is_Age=+0_6.0}', "");
+    Expect(0, 178206, '\P{^Is_Age=+0_6.0}', "");
+    Error('\p{Age=:=_v6_1}');
+    Error('\P{Age=:=_v6_1}');
     Expect(1, 128564, '\p{Age=:\AV6_1\z:}', "");;
     Expect(0, 128565, '\p{Age=:\AV6_1\z:}', "");;
     Expect(1, 128564, '\p{Age=v61}', "");
@@ -1004,26 +1036,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128565, '\P{^Age=v61}', "");
     Expect(1, 128564, '\p{Age=:\Av61\z:}', "");;
     Expect(0, 128565, '\p{Age=:\Av61\z:}', "");;
-    Expect(1, 128564, '\p{Age=_V6_1}', "");
-    Expect(0, 128564, '\p{^Age=_V6_1}', "");
-    Expect(0, 128564, '\P{Age=_V6_1}', "");
-    Expect(1, 128564, '\P{^Age=_V6_1}', "");
-    Expect(0, 128565, '\p{Age=_V6_1}', "");
-    Expect(1, 128565, '\p{^Age=_V6_1}', "");
-    Expect(1, 128565, '\P{Age=_V6_1}', "");
-    Expect(0, 128565, '\P{^Age=_V6_1}', "");
-    Error('\p{Is_Age= 00000000_6.1:=}');
-    Error('\P{Is_Age= 00000000_6.1:=}');
-    Expect(1, 128564, '\p{Is_Age=+0_6.1}', "");
-    Expect(0, 128564, '\p{^Is_Age=+0_6.1}', "");
-    Expect(0, 128564, '\P{Is_Age=+0_6.1}', "");
-    Expect(1, 128564, '\P{^Is_Age=+0_6.1}', "");
-    Expect(0, 128565, '\p{Is_Age=+0_6.1}', "");
-    Expect(1, 128565, '\p{^Is_Age=+0_6.1}', "");
-    Expect(1, 128565, '\P{Is_Age=+0_6.1}', "");
-    Expect(0, 128565, '\P{^Is_Age=+0_6.1}', "");
-    Error('\p{Age=:=_v6_2}');
-    Error('\P{Age=:=_v6_2}');
+    Expect(1, 128564, '\p{Age=-V6_1}', "");
+    Expect(0, 128564, '\p{^Age=-V6_1}', "");
+    Expect(0, 128564, '\P{Age=-V6_1}', "");
+    Expect(1, 128564, '\P{^Age=-V6_1}', "");
+    Expect(0, 128565, '\p{Age=-V6_1}', "");
+    Expect(1, 128565, '\p{^Age=-V6_1}', "");
+    Expect(1, 128565, '\P{Age=-V6_1}', "");
+    Expect(0, 128565, '\P{^Age=-V6_1}', "");
+    Error('\p{Is_Age=_	0_6.1/a/}');
+    Error('\P{Is_Age=_	0_6.1/a/}');
+    Expect(1, 128564, '\p{Is_Age=00_00_00_00_6.1}', "");
+    Expect(0, 128564, '\p{^Is_Age=00_00_00_00_6.1}', "");
+    Expect(0, 128564, '\P{Is_Age=00_00_00_00_6.1}', "");
+    Expect(1, 128564, '\P{^Is_Age=00_00_00_00_6.1}', "");
+    Expect(0, 128565, '\p{Is_Age=00_00_00_00_6.1}', "");
+    Expect(1, 128565, '\p{^Is_Age=00_00_00_00_6.1}', "");
+    Expect(1, 128565, '\P{Is_Age=00_00_00_00_6.1}', "");
+    Expect(0, 128565, '\P{^Is_Age=00_00_00_00_6.1}', "");
+    Error('\p{Age=-	v6_2/a/}');
+    Error('\P{Age=-	v6_2/a/}');
     Expect(1, 8378, '\p{Age=:\AV6_2\z:}', "");;
     Expect(0, 8379, '\p{Age=:\AV6_2\z:}', "");;
     Expect(1, 8378, '\p{Age=v62}', "");
@@ -1036,26 +1068,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8379, '\P{^Age=v62}', "");
     Expect(1, 8378, '\p{Age=:\Av62\z:}', "");;
     Expect(0, 8379, '\p{Age=:\Av62\z:}', "");;
-    Expect(1, 8378, '\p{Age=-V6_2}', "");
-    Expect(0, 8378, '\p{^Age=-V6_2}', "");
-    Expect(0, 8378, '\P{Age=-V6_2}', "");
-    Expect(1, 8378, '\P{^Age=-V6_2}', "");
-    Expect(0, 8379, '\p{Age=-V6_2}', "");
-    Expect(1, 8379, '\p{^Age=-V6_2}', "");
-    Expect(1, 8379, '\P{Age=-V6_2}', "");
-    Expect(0, 8379, '\P{^Age=-V6_2}', "");
-    Error('\p{Is_Age=_	0_6.2/a/}');
-    Error('\P{Is_Age=_	0_6.2/a/}');
-    Expect(1, 8378, '\p{Is_Age=00_00_00_00_6.2}', "");
-    Expect(0, 8378, '\p{^Is_Age=00_00_00_00_6.2}', "");
-    Expect(0, 8378, '\P{Is_Age=00_00_00_00_6.2}', "");
-    Expect(1, 8378, '\P{^Is_Age=00_00_00_00_6.2}', "");
-    Expect(0, 8379, '\p{Is_Age=00_00_00_00_6.2}', "");
-    Expect(1, 8379, '\p{^Is_Age=00_00_00_00_6.2}', "");
-    Expect(1, 8379, '\P{Is_Age=00_00_00_00_6.2}', "");
-    Expect(0, 8379, '\P{^Is_Age=00_00_00_00_6.2}', "");
-    Error('\p{Age=-	v6_3/a/}');
-    Error('\P{Age=-	v6_3/a/}');
+    Expect(1, 8378, '\p{Age=  V6_2}', "");
+    Expect(0, 8378, '\p{^Age=  V6_2}', "");
+    Expect(0, 8378, '\P{Age=  V6_2}', "");
+    Expect(1, 8378, '\P{^Age=  V6_2}', "");
+    Expect(0, 8379, '\p{Age=  V6_2}', "");
+    Expect(1, 8379, '\p{^Age=  V6_2}', "");
+    Expect(1, 8379, '\P{Age=  V6_2}', "");
+    Expect(0, 8379, '\P{^Age=  V6_2}', "");
+    Error('\p{Is_Age=_/a/006.2}');
+    Error('\P{Is_Age=_/a/006.2}');
+    Expect(1, 8378, '\p{Is_Age=00000000_6.2}', "");
+    Expect(0, 8378, '\p{^Is_Age=00000000_6.2}', "");
+    Expect(0, 8378, '\P{Is_Age=00000000_6.2}', "");
+    Expect(1, 8378, '\P{^Is_Age=00000000_6.2}', "");
+    Expect(0, 8379, '\p{Is_Age=00000000_6.2}', "");
+    Expect(1, 8379, '\p{^Is_Age=00000000_6.2}', "");
+    Expect(1, 8379, '\P{Is_Age=00000000_6.2}', "");
+    Expect(0, 8379, '\P{^Is_Age=00000000_6.2}', "");
+    Error('\p{Age=/a/- V6_3}');
+    Error('\P{Age=/a/- V6_3}');
     Expect(1, 8297, '\p{Age=:\AV6_3\z:}', "");;
     Expect(0, 8298, '\p{Age=:\AV6_3\z:}', "");;
     Expect(1, 8297, '\p{Age=v63}', "");
@@ -1068,26 +1100,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8298, '\P{^Age=v63}', "");
     Expect(1, 8297, '\p{Age=:\Av63\z:}', "");;
     Expect(0, 8298, '\p{Age=:\Av63\z:}', "");;
-    Expect(1, 8297, '\p{Age=  V6_3}', "");
-    Expect(0, 8297, '\p{^Age=  V6_3}', "");
-    Expect(0, 8297, '\P{Age=  V6_3}', "");
-    Expect(1, 8297, '\P{^Age=  V6_3}', "");
-    Expect(0, 8298, '\p{Age=  V6_3}', "");
-    Expect(1, 8298, '\p{^Age=  V6_3}', "");
-    Expect(1, 8298, '\P{Age=  V6_3}', "");
-    Expect(0, 8298, '\P{^Age=  V6_3}', "");
-    Error('\p{Is_Age=_/a/006.3}');
-    Error('\P{Is_Age=_/a/006.3}');
-    Expect(1, 8297, '\p{Is_Age=00000000_6.3}', "");
-    Expect(0, 8297, '\p{^Is_Age=00000000_6.3}', "");
-    Expect(0, 8297, '\P{Is_Age=00000000_6.3}', "");
-    Expect(1, 8297, '\P{^Is_Age=00000000_6.3}', "");
-    Expect(0, 8298, '\p{Is_Age=00000000_6.3}', "");
-    Expect(1, 8298, '\p{^Is_Age=00000000_6.3}', "");
-    Expect(1, 8298, '\P{Is_Age=00000000_6.3}', "");
-    Expect(0, 8298, '\P{^Is_Age=00000000_6.3}', "");
-    Error('\p{Age=/a/- V7_0}');
-    Error('\P{Age=/a/- V7_0}');
+    Expect(1, 8297, '\p{Age=_	v6_3}', "");
+    Expect(0, 8297, '\p{^Age=_	v6_3}', "");
+    Expect(0, 8297, '\P{Age=_	v6_3}', "");
+    Expect(1, 8297, '\P{^Age=_	v6_3}', "");
+    Expect(0, 8298, '\p{Age=_	v6_3}', "");
+    Expect(1, 8298, '\p{^Age=_	v6_3}', "");
+    Expect(1, 8298, '\P{Age=_	v6_3}', "");
+    Expect(0, 8298, '\P{^Age=_	v6_3}', "");
+    Error('\p{Is_Age=:= _0000006.3}');
+    Error('\P{Is_Age=:= _0000006.3}');
+    Expect(1, 8297, '\p{Is_Age=+0000_0000_06.3}', "");
+    Expect(0, 8297, '\p{^Is_Age=+0000_0000_06.3}', "");
+    Expect(0, 8297, '\P{Is_Age=+0000_0000_06.3}', "");
+    Expect(1, 8297, '\P{^Is_Age=+0000_0000_06.3}', "");
+    Expect(0, 8298, '\p{Is_Age=+0000_0000_06.3}', "");
+    Expect(1, 8298, '\p{^Is_Age=+0000_0000_06.3}', "");
+    Expect(1, 8298, '\P{Is_Age=+0000_0000_06.3}', "");
+    Expect(0, 8298, '\P{^Is_Age=+0000_0000_06.3}', "");
+    Error('\p{Age= /a/v7_0}');
+    Error('\P{Age= /a/v7_0}');
     Expect(1, 129197, '\p{Age=:\AV7_0\z:}', "");;
     Expect(0, 129198, '\p{Age=:\AV7_0\z:}', "");;
     Expect(1, 129197, '\p{Age=v70}', "");
@@ -1100,26 +1132,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129198, '\P{^Age=v70}', "");
     Expect(1, 129197, '\p{Age=:\Av70\z:}', "");;
     Expect(0, 129198, '\p{Age=:\Av70\z:}', "");;
-    Expect(1, 129197, '\p{Age=_	v7_0}', "");
-    Expect(0, 129197, '\p{^Age=_	v7_0}', "");
-    Expect(0, 129197, '\P{Age=_	v7_0}', "");
-    Expect(1, 129197, '\P{^Age=_	v7_0}', "");
-    Expect(0, 129198, '\p{Age=_	v7_0}', "");
-    Expect(1, 129198, '\p{^Age=_	v7_0}', "");
-    Expect(1, 129198, '\P{Age=_	v7_0}', "");
-    Expect(0, 129198, '\P{^Age=_	v7_0}', "");
-    Error('\p{Is_Age=:= _0000007.0}');
-    Error('\P{Is_Age=:= _0000007.0}');
-    Expect(1, 129197, '\p{Is_Age=+0000_0000_07.0}', "");
-    Expect(0, 129197, '\p{^Is_Age=+0000_0000_07.0}', "");
-    Expect(0, 129197, '\P{Is_Age=+0000_0000_07.0}', "");
-    Expect(1, 129197, '\P{^Is_Age=+0000_0000_07.0}', "");
-    Expect(0, 129198, '\p{Is_Age=+0000_0000_07.0}', "");
-    Expect(1, 129198, '\p{^Is_Age=+0000_0000_07.0}', "");
-    Expect(1, 129198, '\P{Is_Age=+0000_0000_07.0}', "");
-    Expect(0, 129198, '\P{^Is_Age=+0000_0000_07.0}', "");
-    Error('\p{Age= /a/v8_0}');
-    Error('\P{Age= /a/v8_0}');
+    Expect(1, 129197, '\p{Age=	 V7_0}', "");
+    Expect(0, 129197, '\p{^Age=	 V7_0}', "");
+    Expect(0, 129197, '\P{Age=	 V7_0}', "");
+    Expect(1, 129197, '\P{^Age=	 V7_0}', "");
+    Expect(0, 129198, '\p{Age=	 V7_0}', "");
+    Expect(1, 129198, '\p{^Age=	 V7_0}', "");
+    Expect(1, 129198, '\P{Age=	 V7_0}', "");
+    Expect(0, 129198, '\P{^Age=	 V7_0}', "");
+    Error('\p{Is_Age= :=0007.0}');
+    Error('\P{Is_Age= :=0007.0}');
+    Expect(1, 129197, '\p{Is_Age=00000007.0}', "");
+    Expect(0, 129197, '\p{^Is_Age=00000007.0}', "");
+    Expect(0, 129197, '\P{Is_Age=00000007.0}', "");
+    Expect(1, 129197, '\P{^Is_Age=00000007.0}', "");
+    Expect(0, 129198, '\p{Is_Age=00000007.0}', "");
+    Expect(1, 129198, '\p{^Is_Age=00000007.0}', "");
+    Expect(1, 129198, '\P{Is_Age=00000007.0}', "");
+    Expect(0, 129198, '\P{^Is_Age=00000007.0}', "");
+    Error('\p{Age=	/a/V8_0}');
+    Error('\P{Age=	/a/V8_0}');
     Expect(1, 183969, '\p{Age=:\AV8_0\z:}', "");;
     Expect(0, 183970, '\p{Age=:\AV8_0\z:}', "");;
     Expect(1, 183969, '\p{Age=v80}', "");
@@ -1132,26 +1164,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 183970, '\P{^Age=v80}', "");
     Expect(1, 183969, '\p{Age=:\Av80\z:}', "");;
     Expect(0, 183970, '\p{Age=:\Av80\z:}', "");;
-    Expect(1, 183969, '\p{Age=	 V8_0}', "");
-    Expect(0, 183969, '\p{^Age=	 V8_0}', "");
-    Expect(0, 183969, '\P{Age=	 V8_0}', "");
-    Expect(1, 183969, '\P{^Age=	 V8_0}', "");
-    Expect(0, 183970, '\p{Age=	 V8_0}', "");
-    Expect(1, 183970, '\p{^Age=	 V8_0}', "");
-    Expect(1, 183970, '\P{Age=	 V8_0}', "");
-    Expect(0, 183970, '\P{^Age=	 V8_0}', "");
-    Error('\p{Is_Age= :=0008.0}');
-    Error('\P{Is_Age= :=0008.0}');
-    Expect(1, 183969, '\p{Is_Age=00000008.0}', "");
-    Expect(0, 183969, '\p{^Is_Age=00000008.0}', "");
-    Expect(0, 183969, '\P{Is_Age=00000008.0}', "");
-    Expect(1, 183969, '\P{^Is_Age=00000008.0}', "");
-    Expect(0, 183970, '\p{Is_Age=00000008.0}', "");
-    Expect(1, 183970, '\p{^Is_Age=00000008.0}', "");
-    Expect(1, 183970, '\P{Is_Age=00000008.0}', "");
-    Expect(0, 183970, '\P{^Is_Age=00000008.0}', "");
-    Error('\p{Age=	/a/V9_0}');
-    Error('\P{Age=	/a/V9_0}');
+    Expect(1, 183969, '\p{Age=_v8_0}', "");
+    Expect(0, 183969, '\p{^Age=_v8_0}', "");
+    Expect(0, 183969, '\P{Age=_v8_0}', "");
+    Expect(1, 183969, '\P{^Age=_v8_0}', "");
+    Expect(0, 183970, '\p{Age=_v8_0}', "");
+    Expect(1, 183970, '\p{^Age=_v8_0}', "");
+    Expect(1, 183970, '\P{Age=_v8_0}', "");
+    Expect(0, 183970, '\P{^Age=_v8_0}', "");
+    Error('\p{Is_Age=:=	_+008.0}');
+    Error('\P{Is_Age=:=	_+008.0}');
+    Expect(1, 183969, '\p{Is_Age=0_0_0_0_008.0}', "");
+    Expect(0, 183969, '\p{^Is_Age=0_0_0_0_008.0}', "");
+    Expect(0, 183969, '\P{Is_Age=0_0_0_0_008.0}', "");
+    Expect(1, 183969, '\P{^Is_Age=0_0_0_0_008.0}', "");
+    Expect(0, 183970, '\p{Is_Age=0_0_0_0_008.0}', "");
+    Expect(1, 183970, '\p{^Is_Age=0_0_0_0_008.0}', "");
+    Expect(1, 183970, '\P{Is_Age=0_0_0_0_008.0}', "");
+    Expect(0, 183970, '\P{^Is_Age=0_0_0_0_008.0}', "");
+    Error('\p{Age=-	V9_0:=}');
+    Error('\P{Age=-	V9_0:=}');
     Expect(1, 129425, '\p{Age=:\AV9_0\z:}', "");;
     Expect(0, 129426, '\p{Age=:\AV9_0\z:}', "");;
     Expect(1, 129425, '\p{Age=v90}', "");
@@ -1164,26 +1196,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129426, '\P{^Age=v90}', "");
     Expect(1, 129425, '\p{Age=:\Av90\z:}', "");;
     Expect(0, 129426, '\p{Age=:\Av90\z:}', "");;
-    Expect(1, 129425, '\p{Age=_v9_0}', "");
-    Expect(0, 129425, '\p{^Age=_v9_0}', "");
-    Expect(0, 129425, '\P{Age=_v9_0}', "");
-    Expect(1, 129425, '\P{^Age=_v9_0}', "");
-    Expect(0, 129426, '\p{Age=_v9_0}', "");
-    Expect(1, 129426, '\p{^Age=_v9_0}', "");
-    Expect(1, 129426, '\P{Age=_v9_0}', "");
-    Expect(0, 129426, '\P{^Age=_v9_0}', "");
-    Error('\p{Is_Age=:=	_+009.0}');
-    Error('\P{Is_Age=:=	_+009.0}');
-    Expect(1, 129425, '\p{Is_Age=0_0_0_0_009.0}', "");
-    Expect(0, 129425, '\p{^Is_Age=0_0_0_0_009.0}', "");
-    Expect(0, 129425, '\P{Is_Age=0_0_0_0_009.0}', "");
-    Expect(1, 129425, '\P{^Is_Age=0_0_0_0_009.0}', "");
-    Expect(0, 129426, '\p{Is_Age=0_0_0_0_009.0}', "");
-    Expect(1, 129426, '\p{^Is_Age=0_0_0_0_009.0}', "");
-    Expect(1, 129426, '\P{Is_Age=0_0_0_0_009.0}', "");
-    Expect(0, 129426, '\P{^Is_Age=0_0_0_0_009.0}', "");
-    Error('\p{Age=_/a/Unassigned}');
-    Error('\P{Age=_/a/Unassigned}');
+    Expect(1, 129425, '\p{Age=-V9_0}', "");
+    Expect(0, 129425, '\p{^Age=-V9_0}', "");
+    Expect(0, 129425, '\P{Age=-V9_0}', "");
+    Expect(1, 129425, '\P{^Age=-V9_0}', "");
+    Expect(0, 129426, '\p{Age=-V9_0}', "");
+    Expect(1, 129426, '\p{^Age=-V9_0}', "");
+    Expect(1, 129426, '\P{Age=-V9_0}', "");
+    Expect(0, 129426, '\P{^Age=-V9_0}', "");
+    Error('\p{Is_Age=/a/00000009.0}');
+    Error('\P{Is_Age=/a/00000009.0}');
+    Expect(1, 129425, '\p{Is_Age=0_0_0_0_0009.0}', "");
+    Expect(0, 129425, '\p{^Is_Age=0_0_0_0_0009.0}', "");
+    Expect(0, 129425, '\P{Is_Age=0_0_0_0_0009.0}', "");
+    Expect(1, 129425, '\P{^Is_Age=0_0_0_0_0009.0}', "");
+    Expect(0, 129426, '\p{Is_Age=0_0_0_0_0009.0}', "");
+    Expect(1, 129426, '\p{^Is_Age=0_0_0_0_0009.0}', "");
+    Expect(1, 129426, '\P{Is_Age=0_0_0_0_0009.0}', "");
+    Expect(0, 129426, '\P{^Is_Age=0_0_0_0_0009.0}', "");
+    Error('\p{Age=	:=unassigned}');
+    Error('\P{Age=	:=unassigned}');
     Expect(1, 983037, '\p{Age=:\AUnassigned\z:}', "");;
     Expect(0, 983040, '\p{Age=:\AUnassigned\z:}', "");;
     Expect(1, 983037, '\p{Age=unassigned}', "");
@@ -1196,16 +1228,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 983040, '\P{^Age=unassigned}', "");
     Expect(1, 983037, '\p{Age=:\Aunassigned\z:}', "");;
     Expect(0, 983040, '\p{Age=:\Aunassigned\z:}', "");;
-    Expect(1, 983037, '\p{Age=- Unassigned}', "");
-    Expect(0, 983037, '\p{^Age=- Unassigned}', "");
-    Expect(0, 983037, '\P{Age=- Unassigned}', "");
-    Expect(1, 983037, '\P{^Age=- Unassigned}', "");
-    Expect(0, 983040, '\p{Age=- Unassigned}', "");
-    Expect(1, 983040, '\p{^Age=- Unassigned}', "");
-    Expect(1, 983040, '\P{Age=- Unassigned}', "");
-    Expect(0, 983040, '\P{^Age=- Unassigned}', "");
-    Error('\p{Is_Age=/a/NA}');
-    Error('\P{Is_Age=/a/NA}');
+    Expect(1, 983037, '\p{Age=	UNASSIGNED}', "");
+    Expect(0, 983037, '\p{^Age=	UNASSIGNED}', "");
+    Expect(0, 983037, '\P{Age=	UNASSIGNED}', "");
+    Expect(1, 983037, '\P{^Age=	UNASSIGNED}', "");
+    Expect(0, 983040, '\p{Age=	UNASSIGNED}', "");
+    Expect(1, 983040, '\p{^Age=	UNASSIGNED}', "");
+    Expect(1, 983040, '\P{Age=	UNASSIGNED}', "");
+    Expect(0, 983040, '\P{^Age=	UNASSIGNED}', "");
+    Error('\p{Is_Age=/a/_ NA}');
+    Error('\P{Is_Age=/a/_ NA}');
     Expect(1, 983037, '\p{Is_Age=na}', "");
     Expect(0, 983037, '\p{^Is_Age=na}', "");
     Expect(0, 983037, '\P{Is_Age=na}', "");
@@ -1214,16 +1246,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 983040, '\p{^Is_Age=na}', "");
     Expect(1, 983040, '\P{Is_Age=na}', "");
     Expect(0, 983040, '\P{^Is_Age=na}', "");
-    Expect(1, 983037, '\p{Is_Age:	 NA}', "");
-    Expect(0, 983037, '\p{^Is_Age:	 NA}', "");
-    Expect(0, 983037, '\P{Is_Age:	 NA}', "");
-    Expect(1, 983037, '\P{^Is_Age:	 NA}', "");
-    Expect(0, 983040, '\p{Is_Age:	 NA}', "");
-    Expect(1, 983040, '\p{^Is_Age:	 NA}', "");
-    Expect(1, 983040, '\P{Is_Age:	 NA}', "");
-    Expect(0, 983040, '\P{^Is_Age:	 NA}', "");
-    Error('\p{ASCII_Hex_Digit=-No/a/}');
-    Error('\P{ASCII_Hex_Digit=-No/a/}');
+    Expect(1, 983037, '\p{Is_Age=_NA}', "");
+    Expect(0, 983037, '\p{^Is_Age=_NA}', "");
+    Expect(0, 983037, '\P{Is_Age=_NA}', "");
+    Expect(1, 983037, '\P{^Is_Age=_NA}', "");
+    Expect(0, 983040, '\p{Is_Age=_NA}', "");
+    Expect(1, 983040, '\p{^Is_Age=_NA}', "");
+    Expect(1, 983040, '\P{Is_Age=_NA}', "");
+    Expect(0, 983040, '\P{^Is_Age=_NA}', "");
+    Error('\p{ASCII_Hex_Digit=-/a/no}');
+    Error('\P{ASCII_Hex_Digit=-/a/no}');
     Expect(1, 103, '\p{ASCII_Hex_Digit=:\ANo\z:}', "");;
     Expect(0, 102, '\p{ASCII_Hex_Digit=:\ANo\z:}', "");;
     Expect(1, 103, '\p{ASCII_Hex_Digit=no}', "");
@@ -1236,56 +1268,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 102, '\P{^ASCII_Hex_Digit=no}', "");
     Expect(1, 103, '\p{ASCII_Hex_Digit=:\Ano\z:}', "");;
     Expect(0, 102, '\p{ASCII_Hex_Digit=:\Ano\z:}', "");;
-    Expect(1, 103, '\p{ASCII_Hex_Digit=  no}', "");
-    Expect(0, 103, '\p{^ASCII_Hex_Digit=  no}', "");
-    Expect(0, 103, '\P{ASCII_Hex_Digit=  no}', "");
-    Expect(1, 103, '\P{^ASCII_Hex_Digit=  no}', "");
-    Expect(0, 102, '\p{ASCII_Hex_Digit=  no}', "");
-    Expect(1, 102, '\p{^ASCII_Hex_Digit=  no}', "");
-    Expect(1, 102, '\P{ASCII_Hex_Digit=  no}', "");
-    Expect(0, 102, '\P{^ASCII_Hex_Digit=  no}', "");
-    Error('\p{AHex=:= 	N}');
-    Error('\P{AHex=:= 	N}');
+    Expect(1, 103, '\p{ASCII_Hex_Digit=-	No}', "");
+    Expect(0, 103, '\p{^ASCII_Hex_Digit=-	No}', "");
+    Expect(0, 103, '\P{ASCII_Hex_Digit=-	No}', "");
+    Expect(1, 103, '\P{^ASCII_Hex_Digit=-	No}', "");
+    Expect(0, 102, '\p{ASCII_Hex_Digit=-	No}', "");
+    Expect(1, 102, '\p{^ASCII_Hex_Digit=-	No}', "");
+    Expect(1, 102, '\P{ASCII_Hex_Digit=-	No}', "");
+    Expect(0, 102, '\P{^ASCII_Hex_Digit=-	No}', "");
+    Error('\p{AHex:	__N:=}');
+    Error('\P{AHex:	__N:=}');
     Expect(1, 103, '\p{AHex=:\AN\z:}', "");;
     Expect(0, 102, '\p{AHex=:\AN\z:}', "");;
-    Expect(1, 103, '\p{AHex=n}', "");
-    Expect(0, 103, '\p{^AHex=n}', "");
-    Expect(0, 103, '\P{AHex=n}', "");
-    Expect(1, 103, '\P{^AHex=n}', "");
-    Expect(0, 102, '\p{AHex=n}', "");
-    Expect(1, 102, '\p{^AHex=n}', "");
-    Expect(1, 102, '\P{AHex=n}', "");
-    Expect(0, 102, '\P{^AHex=n}', "");
+    Expect(1, 103, '\p{AHex:	n}', "");
+    Expect(0, 103, '\p{^AHex:	n}', "");
+    Expect(0, 103, '\P{AHex:	n}', "");
+    Expect(1, 103, '\P{^AHex:	n}', "");
+    Expect(0, 102, '\p{AHex:	n}', "");
+    Expect(1, 102, '\p{^AHex:	n}', "");
+    Expect(1, 102, '\P{AHex:	n}', "");
+    Expect(0, 102, '\P{^AHex:	n}', "");
     Expect(1, 103, '\p{AHex=:\An\z:}', "");;
     Expect(0, 102, '\p{AHex=:\An\z:}', "");;
-    Expect(1, 103, '\p{AHex= _N}', "");
-    Expect(0, 103, '\p{^AHex= _N}', "");
-    Expect(0, 103, '\P{AHex= _N}', "");
-    Expect(1, 103, '\P{^AHex= _N}', "");
-    Expect(0, 102, '\p{AHex= _N}', "");
-    Expect(1, 102, '\p{^AHex= _N}', "");
-    Expect(1, 102, '\P{AHex= _N}', "");
-    Expect(0, 102, '\P{^AHex= _N}', "");
-    Error('\p{Is_ASCII_Hex_Digit=_f:=}');
-    Error('\P{Is_ASCII_Hex_Digit=_f:=}');
-    Expect(1, 103, '\p{Is_ASCII_Hex_Digit=f}', "");
-    Expect(0, 103, '\p{^Is_ASCII_Hex_Digit=f}', "");
-    Expect(0, 103, '\P{Is_ASCII_Hex_Digit=f}', "");
-    Expect(1, 103, '\P{^Is_ASCII_Hex_Digit=f}', "");
-    Expect(0, 102, '\p{Is_ASCII_Hex_Digit=f}', "");
-    Expect(1, 102, '\p{^Is_ASCII_Hex_Digit=f}', "");
-    Expect(1, 102, '\P{Is_ASCII_Hex_Digit=f}', "");
-    Expect(0, 102, '\P{^Is_ASCII_Hex_Digit=f}', "");
-    Expect(1, 103, '\p{Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(0, 103, '\p{^Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(0, 103, '\P{Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(1, 103, '\P{^Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(0, 102, '\p{Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(1, 102, '\p{^Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(1, 102, '\P{Is_ASCII_Hex_Digit=	-F}', "");
-    Expect(0, 102, '\P{^Is_ASCII_Hex_Digit=	-F}', "");
-    Error('\p{Is_AHex=		FALSE/a/}');
-    Error('\P{Is_AHex=		FALSE/a/}');
+    Expect(1, 103, '\p{AHex=	n}', "");
+    Expect(0, 103, '\p{^AHex=	n}', "");
+    Expect(0, 103, '\P{AHex=	n}', "");
+    Expect(1, 103, '\P{^AHex=	n}', "");
+    Expect(0, 102, '\p{AHex=	n}', "");
+    Expect(1, 102, '\p{^AHex=	n}', "");
+    Expect(1, 102, '\P{AHex=	n}', "");
+    Expect(0, 102, '\P{^AHex=	n}', "");
+    Error('\p{Is_ASCII_Hex_Digit=	F/a/}');
+    Error('\P{Is_ASCII_Hex_Digit=	F/a/}');
+    Expect(1, 103, '\p{Is_ASCII_Hex_Digit:   f}', "");
+    Expect(0, 103, '\p{^Is_ASCII_Hex_Digit:   f}', "");
+    Expect(0, 103, '\P{Is_ASCII_Hex_Digit:   f}', "");
+    Expect(1, 103, '\P{^Is_ASCII_Hex_Digit:   f}', "");
+    Expect(0, 102, '\p{Is_ASCII_Hex_Digit:   f}', "");
+    Expect(1, 102, '\p{^Is_ASCII_Hex_Digit:   f}', "");
+    Expect(1, 102, '\P{Is_ASCII_Hex_Digit:   f}', "");
+    Expect(0, 102, '\P{^Is_ASCII_Hex_Digit:   f}', "");
+    Expect(1, 103, '\p{Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(0, 103, '\p{^Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(0, 103, '\P{Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(1, 103, '\P{^Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(0, 102, '\p{Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(1, 102, '\p{^Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(1, 102, '\P{Is_ASCII_Hex_Digit=_ F}', "");
+    Expect(0, 102, '\P{^Is_ASCII_Hex_Digit=_ F}', "");
+    Error('\p{Is_AHex=_	False:=}');
+    Error('\P{Is_AHex=_	False:=}');
     Expect(1, 103, '\p{Is_AHex=false}', "");
     Expect(0, 103, '\p{^Is_AHex=false}', "");
     Expect(0, 103, '\P{Is_AHex=false}', "");
@@ -1294,16 +1326,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 102, '\p{^Is_AHex=false}', "");
     Expect(1, 102, '\P{Is_AHex=false}', "");
     Expect(0, 102, '\P{^Is_AHex=false}', "");
-    Expect(1, 103, '\p{Is_AHex=	_False}', "");
-    Expect(0, 103, '\p{^Is_AHex=	_False}', "");
-    Expect(0, 103, '\P{Is_AHex=	_False}', "");
-    Expect(1, 103, '\P{^Is_AHex=	_False}', "");
-    Expect(0, 102, '\p{Is_AHex=	_False}', "");
-    Expect(1, 102, '\p{^Is_AHex=	_False}', "");
-    Expect(1, 102, '\P{Is_AHex=	_False}', "");
-    Expect(0, 102, '\P{^Is_AHex=	_False}', "");
-    Error('\p{ASCII_Hex_Digit=	/a/Yes}');
-    Error('\P{ASCII_Hex_Digit=	/a/Yes}');
+    Expect(1, 103, '\p{Is_AHex= -false}', "");
+    Expect(0, 103, '\p{^Is_AHex= -false}', "");
+    Expect(0, 103, '\P{Is_AHex= -false}', "");
+    Expect(1, 103, '\P{^Is_AHex= -false}', "");
+    Expect(0, 102, '\p{Is_AHex= -false}', "");
+    Expect(1, 102, '\p{^Is_AHex= -false}', "");
+    Expect(1, 102, '\P{Is_AHex= -false}', "");
+    Expect(0, 102, '\P{^Is_AHex= -false}', "");
+    Error('\p{ASCII_Hex_Digit=:=__Yes}');
+    Error('\P{ASCII_Hex_Digit=:=__Yes}');
     Expect(1, 102, '\p{ASCII_Hex_Digit=:\AYes\z:}', "");;
     Expect(0, 103, '\p{ASCII_Hex_Digit=:\AYes\z:}', "");;
     Expect(1, 102, '\p{ASCII_Hex_Digit=yes}', "");
@@ -1316,38 +1348,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 103, '\P{^ASCII_Hex_Digit=yes}', "");
     Expect(1, 102, '\p{ASCII_Hex_Digit=:\Ayes\z:}', "");;
     Expect(0, 103, '\p{ASCII_Hex_Digit=:\Ayes\z:}', "");;
-    Expect(1, 102, '\p{ASCII_Hex_Digit= 	yes}', "");
-    Expect(0, 102, '\p{^ASCII_Hex_Digit= 	yes}', "");
-    Expect(0, 102, '\P{ASCII_Hex_Digit= 	yes}', "");
-    Expect(1, 102, '\P{^ASCII_Hex_Digit= 	yes}', "");
-    Expect(0, 103, '\p{ASCII_Hex_Digit= 	yes}', "");
-    Expect(1, 103, '\p{^ASCII_Hex_Digit= 	yes}', "");
-    Expect(1, 103, '\P{ASCII_Hex_Digit= 	yes}', "");
-    Expect(0, 103, '\P{^ASCII_Hex_Digit= 	yes}', "");
-    Error('\p{AHex=/a/  Y}');
-    Error('\P{AHex=/a/  Y}');
+    Expect(1, 102, '\p{ASCII_Hex_Digit=	 YES}', "");
+    Expect(0, 102, '\p{^ASCII_Hex_Digit=	 YES}', "");
+    Expect(0, 102, '\P{ASCII_Hex_Digit=	 YES}', "");
+    Expect(1, 102, '\P{^ASCII_Hex_Digit=	 YES}', "");
+    Expect(0, 103, '\p{ASCII_Hex_Digit=	 YES}', "");
+    Expect(1, 103, '\p{^ASCII_Hex_Digit=	 YES}', "");
+    Expect(1, 103, '\P{ASCII_Hex_Digit=	 YES}', "");
+    Expect(0, 103, '\P{^ASCII_Hex_Digit=	 YES}', "");
+    Error('\p{AHex=-/a/y}');
+    Error('\P{AHex=-/a/y}');
     Expect(1, 102, '\p{AHex=:\AY\z:}', "");;
     Expect(0, 103, '\p{AHex=:\AY\z:}', "");;
-    Expect(1, 102, '\p{AHex=y}', "");
-    Expect(0, 102, '\p{^AHex=y}', "");
-    Expect(0, 102, '\P{AHex=y}', "");
-    Expect(1, 102, '\P{^AHex=y}', "");
-    Expect(0, 103, '\p{AHex=y}', "");
-    Expect(1, 103, '\p{^AHex=y}', "");
-    Expect(1, 103, '\P{AHex=y}', "");
-    Expect(0, 103, '\P{^AHex=y}', "");
+    Expect(1, 102, '\p{AHex:	y}', "");
+    Expect(0, 102, '\p{^AHex:	y}', "");
+    Expect(0, 102, '\P{AHex:	y}', "");
+    Expect(1, 102, '\P{^AHex:	y}', "");
+    Expect(0, 103, '\p{AHex:	y}', "");
+    Expect(1, 103, '\p{^AHex:	y}', "");
+    Expect(1, 103, '\P{AHex:	y}', "");
+    Expect(0, 103, '\P{^AHex:	y}', "");
     Expect(1, 102, '\p{AHex=:\Ay\z:}', "");;
     Expect(0, 103, '\p{AHex=:\Ay\z:}', "");;
-    Expect(1, 102, '\p{AHex=_y}', "");
-    Expect(0, 102, '\p{^AHex=_y}', "");
-    Expect(0, 102, '\P{AHex=_y}', "");
-    Expect(1, 102, '\P{^AHex=_y}', "");
-    Expect(0, 103, '\p{AHex=_y}', "");
-    Expect(1, 103, '\p{^AHex=_y}', "");
-    Expect(1, 103, '\P{AHex=_y}', "");
-    Expect(0, 103, '\P{^AHex=_y}', "");
-    Error('\p{Is_ASCII_Hex_Digit=-/a/T}');
-    Error('\P{Is_ASCII_Hex_Digit=-/a/T}');
+    Expect(1, 102, '\p{AHex=_ Y}', "");
+    Expect(0, 102, '\p{^AHex=_ Y}', "");
+    Expect(0, 102, '\P{AHex=_ Y}', "");
+    Expect(1, 102, '\P{^AHex=_ Y}', "");
+    Expect(0, 103, '\p{AHex=_ Y}', "");
+    Expect(1, 103, '\p{^AHex=_ Y}', "");
+    Expect(1, 103, '\P{AHex=_ Y}', "");
+    Expect(0, 103, '\P{^AHex=_ Y}', "");
+    Error('\p{Is_ASCII_Hex_Digit=--T:=}');
+    Error('\P{Is_ASCII_Hex_Digit=--T:=}');
     Expect(1, 102, '\p{Is_ASCII_Hex_Digit=t}', "");
     Expect(0, 102, '\p{^Is_ASCII_Hex_Digit=t}', "");
     Expect(0, 102, '\P{Is_ASCII_Hex_Digit=t}', "");
@@ -1356,16 +1388,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 103, '\p{^Is_ASCII_Hex_Digit=t}', "");
     Expect(1, 103, '\P{Is_ASCII_Hex_Digit=t}', "");
     Expect(0, 103, '\P{^Is_ASCII_Hex_Digit=t}', "");
-    Expect(1, 102, '\p{Is_ASCII_Hex_Digit=	t}', "");
-    Expect(0, 102, '\p{^Is_ASCII_Hex_Digit=	t}', "");
-    Expect(0, 102, '\P{Is_ASCII_Hex_Digit=	t}', "");
-    Expect(1, 102, '\P{^Is_ASCII_Hex_Digit=	t}', "");
-    Expect(0, 103, '\p{Is_ASCII_Hex_Digit=	t}', "");
-    Expect(1, 103, '\p{^Is_ASCII_Hex_Digit=	t}', "");
-    Expect(1, 103, '\P{Is_ASCII_Hex_Digit=	t}', "");
-    Expect(0, 103, '\P{^Is_ASCII_Hex_Digit=	t}', "");
-    Error('\p{Is_AHex=/a/--True}');
-    Error('\P{Is_AHex=/a/--True}');
+    Expect(1, 102, '\p{Is_ASCII_Hex_Digit=		T}', "");
+    Expect(0, 102, '\p{^Is_ASCII_Hex_Digit=		T}', "");
+    Expect(0, 102, '\P{Is_ASCII_Hex_Digit=		T}', "");
+    Expect(1, 102, '\P{^Is_ASCII_Hex_Digit=		T}', "");
+    Expect(0, 103, '\p{Is_ASCII_Hex_Digit=		T}', "");
+    Expect(1, 103, '\p{^Is_ASCII_Hex_Digit=		T}', "");
+    Expect(1, 103, '\P{Is_ASCII_Hex_Digit=		T}', "");
+    Expect(0, 103, '\P{^Is_ASCII_Hex_Digit=		T}', "");
+    Error('\p{Is_AHex=:=-true}');
+    Error('\P{Is_AHex=:=-true}');
     Expect(1, 102, '\p{Is_AHex=true}', "");
     Expect(0, 102, '\p{^Is_AHex=true}', "");
     Expect(0, 102, '\P{Is_AHex=true}', "");
@@ -1374,180 +1406,180 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 103, '\p{^Is_AHex=true}', "");
     Expect(1, 103, '\P{Is_AHex=true}', "");
     Expect(0, 103, '\P{^Is_AHex=true}', "");
-    Expect(1, 102, '\p{Is_AHex=	_true}', "");
-    Expect(0, 102, '\p{^Is_AHex=	_true}', "");
-    Expect(0, 102, '\P{Is_AHex=	_true}', "");
-    Expect(1, 102, '\P{^Is_AHex=	_true}', "");
-    Expect(0, 103, '\p{Is_AHex=	_true}', "");
-    Expect(1, 103, '\p{^Is_AHex=	_true}', "");
-    Expect(1, 103, '\P{Is_AHex=	_true}', "");
-    Expect(0, 103, '\P{^Is_AHex=	_true}', "");
-    Error('\p{Alphabetic= No:=}');
-    Error('\P{Alphabetic= No:=}');
-    Expect(1, 201547, '\p{Alphabetic=:\ANo\z:}', "");;
-    Expect(0, 201546, '\p{Alphabetic=:\ANo\z:}', "");;
-    Expect(1, 201547, '\p{Alphabetic=no}', "");
-    Expect(0, 201547, '\p{^Alphabetic=no}', "");
-    Expect(0, 201547, '\P{Alphabetic=no}', "");
-    Expect(1, 201547, '\P{^Alphabetic=no}', "");
-    Expect(0, 201546, '\p{Alphabetic=no}', "");
-    Expect(1, 201546, '\p{^Alphabetic=no}', "");
-    Expect(1, 201546, '\P{Alphabetic=no}', "");
-    Expect(0, 201546, '\P{^Alphabetic=no}', "");
-    Expect(1, 201547, '\p{Alphabetic=:\Ano\z:}', "");;
-    Expect(0, 201546, '\p{Alphabetic=:\Ano\z:}', "");;
-    Expect(1, 201547, '\p{Alphabetic=-no}', "");
-    Expect(0, 201547, '\p{^Alphabetic=-no}', "");
-    Expect(0, 201547, '\P{Alphabetic=-no}', "");
-    Expect(1, 201547, '\P{^Alphabetic=-no}', "");
-    Expect(0, 201546, '\p{Alphabetic=-no}', "");
-    Expect(1, 201546, '\p{^Alphabetic=-no}', "");
-    Expect(1, 201546, '\P{Alphabetic=-no}', "");
-    Expect(0, 201546, '\P{^Alphabetic=-no}', "");
-    Error('\p{Alpha=	N:=}');
-    Error('\P{Alpha=	N:=}');
-    Expect(1, 201547, '\p{Alpha=:\AN\z:}', "");;
-    Expect(0, 201546, '\p{Alpha=:\AN\z:}', "");;
-    Expect(1, 201547, '\p{Alpha=n}', "");
-    Expect(0, 201547, '\p{^Alpha=n}', "");
-    Expect(0, 201547, '\P{Alpha=n}', "");
-    Expect(1, 201547, '\P{^Alpha=n}', "");
-    Expect(0, 201546, '\p{Alpha=n}', "");
-    Expect(1, 201546, '\p{^Alpha=n}', "");
-    Expect(1, 201546, '\P{Alpha=n}', "");
-    Expect(0, 201546, '\P{^Alpha=n}', "");
-    Expect(1, 201547, '\p{Alpha=:\An\z:}', "");;
-    Expect(0, 201546, '\p{Alpha=:\An\z:}', "");;
-    Expect(1, 201547, '\p{Alpha=-n}', "");
-    Expect(0, 201547, '\p{^Alpha=-n}', "");
-    Expect(0, 201547, '\P{Alpha=-n}', "");
-    Expect(1, 201547, '\P{^Alpha=-n}', "");
-    Expect(0, 201546, '\p{Alpha=-n}', "");
-    Expect(1, 201546, '\p{^Alpha=-n}', "");
-    Expect(1, 201546, '\P{Alpha=-n}', "");
-    Expect(0, 201546, '\P{^Alpha=-n}', "");
-    Error('\p{Is_Alphabetic=/a/F}');
-    Error('\P{Is_Alphabetic=/a/F}');
-    Expect(1, 201547, '\p{Is_Alphabetic=f}', "");
-    Expect(0, 201547, '\p{^Is_Alphabetic=f}', "");
-    Expect(0, 201547, '\P{Is_Alphabetic=f}', "");
-    Expect(1, 201547, '\P{^Is_Alphabetic=f}', "");
-    Expect(0, 201546, '\p{Is_Alphabetic=f}', "");
-    Expect(1, 201546, '\p{^Is_Alphabetic=f}', "");
-    Expect(1, 201546, '\P{Is_Alphabetic=f}', "");
-    Expect(0, 201546, '\P{^Is_Alphabetic=f}', "");
-    Expect(1, 201547, '\p{Is_Alphabetic=_	F}', "");
-    Expect(0, 201547, '\p{^Is_Alphabetic=_	F}', "");
-    Expect(0, 201547, '\P{Is_Alphabetic=_	F}', "");
-    Expect(1, 201547, '\P{^Is_Alphabetic=_	F}', "");
-    Expect(0, 201546, '\p{Is_Alphabetic=_	F}', "");
-    Expect(1, 201546, '\p{^Is_Alphabetic=_	F}', "");
-    Expect(1, 201546, '\P{Is_Alphabetic=_	F}', "");
-    Expect(0, 201546, '\P{^Is_Alphabetic=_	F}', "");
-    Error('\p{Is_Alpha=/a/_False}');
-    Error('\P{Is_Alpha=/a/_False}');
-    Expect(1, 201547, '\p{Is_Alpha=false}', "");
-    Expect(0, 201547, '\p{^Is_Alpha=false}', "");
-    Expect(0, 201547, '\P{Is_Alpha=false}', "");
-    Expect(1, 201547, '\P{^Is_Alpha=false}', "");
-    Expect(0, 201546, '\p{Is_Alpha=false}', "");
-    Expect(1, 201546, '\p{^Is_Alpha=false}', "");
-    Expect(1, 201546, '\P{Is_Alpha=false}', "");
-    Expect(0, 201546, '\P{^Is_Alpha=false}', "");
-    Expect(1, 201547, '\p{Is_Alpha=	FALSE}', "");
-    Expect(0, 201547, '\p{^Is_Alpha=	FALSE}', "");
-    Expect(0, 201547, '\P{Is_Alpha=	FALSE}', "");
-    Expect(1, 201547, '\P{^Is_Alpha=	FALSE}', "");
-    Expect(0, 201546, '\p{Is_Alpha=	FALSE}', "");
-    Expect(1, 201546, '\p{^Is_Alpha=	FALSE}', "");
-    Expect(1, 201546, '\P{Is_Alpha=	FALSE}', "");
-    Expect(0, 201546, '\P{^Is_Alpha=	FALSE}', "");
-    Error('\p{Alphabetic=/a/__Yes}');
-    Error('\P{Alphabetic=/a/__Yes}');
-    Expect(1, 201546, '\p{Alphabetic=:\AYes\z:}', "");;
-    Expect(0, 201547, '\p{Alphabetic=:\AYes\z:}', "");;
-    Expect(1, 201546, '\p{Alphabetic=yes}', "");
-    Expect(0, 201546, '\p{^Alphabetic=yes}', "");
-    Expect(0, 201546, '\P{Alphabetic=yes}', "");
-    Expect(1, 201546, '\P{^Alphabetic=yes}', "");
-    Expect(0, 201547, '\p{Alphabetic=yes}', "");
-    Expect(1, 201547, '\p{^Alphabetic=yes}', "");
-    Expect(1, 201547, '\P{Alphabetic=yes}', "");
-    Expect(0, 201547, '\P{^Alphabetic=yes}', "");
-    Expect(1, 201546, '\p{Alphabetic=:\Ayes\z:}', "");;
-    Expect(0, 201547, '\p{Alphabetic=:\Ayes\z:}', "");;
-    Expect(1, 201546, '\p{Alphabetic= -Yes}', "");
-    Expect(0, 201546, '\p{^Alphabetic= -Yes}', "");
-    Expect(0, 201546, '\P{Alphabetic= -Yes}', "");
-    Expect(1, 201546, '\P{^Alphabetic= -Yes}', "");
-    Expect(0, 201547, '\p{Alphabetic= -Yes}', "");
-    Expect(1, 201547, '\p{^Alphabetic= -Yes}', "");
-    Expect(1, 201547, '\P{Alphabetic= -Yes}', "");
-    Expect(0, 201547, '\P{^Alphabetic= -Yes}', "");
-    Error('\p{Alpha=	/a/Y}');
-    Error('\P{Alpha=	/a/Y}');
-    Expect(1, 201546, '\p{Alpha=:\AY\z:}', "");;
-    Expect(0, 201547, '\p{Alpha=:\AY\z:}', "");;
-    Expect(1, 201546, '\p{Alpha:   y}', "");
-    Expect(0, 201546, '\p{^Alpha:   y}', "");
-    Expect(0, 201546, '\P{Alpha:   y}', "");
-    Expect(1, 201546, '\P{^Alpha:   y}', "");
-    Expect(0, 201547, '\p{Alpha:   y}', "");
-    Expect(1, 201547, '\p{^Alpha:   y}', "");
-    Expect(1, 201547, '\P{Alpha:   y}', "");
-    Expect(0, 201547, '\P{^Alpha:   y}', "");
-    Expect(1, 201546, '\p{Alpha=:\Ay\z:}', "");;
-    Expect(0, 201547, '\p{Alpha=:\Ay\z:}', "");;
-    Expect(1, 201546, '\p{Alpha: 		Y}', "");
-    Expect(0, 201546, '\p{^Alpha: 		Y}', "");
-    Expect(0, 201546, '\P{Alpha: 		Y}', "");
-    Expect(1, 201546, '\P{^Alpha: 		Y}', "");
-    Expect(0, 201547, '\p{Alpha: 		Y}', "");
-    Expect(1, 201547, '\p{^Alpha: 		Y}', "");
-    Expect(1, 201547, '\P{Alpha: 		Y}', "");
-    Expect(0, 201547, '\P{^Alpha: 		Y}', "");
-    Error('\p{Is_Alphabetic=/a/-	T}');
-    Error('\P{Is_Alphabetic=/a/-	T}');
-    Expect(1, 201546, '\p{Is_Alphabetic: t}', "");
-    Expect(0, 201546, '\p{^Is_Alphabetic: t}', "");
-    Expect(0, 201546, '\P{Is_Alphabetic: t}', "");
-    Expect(1, 201546, '\P{^Is_Alphabetic: t}', "");
-    Expect(0, 201547, '\p{Is_Alphabetic: t}', "");
-    Expect(1, 201547, '\p{^Is_Alphabetic: t}', "");
-    Expect(1, 201547, '\P{Is_Alphabetic: t}', "");
-    Expect(0, 201547, '\P{^Is_Alphabetic: t}', "");
-    Expect(1, 201546, '\p{Is_Alphabetic: --T}', "");
-    Expect(0, 201546, '\p{^Is_Alphabetic: --T}', "");
-    Expect(0, 201546, '\P{Is_Alphabetic: --T}', "");
-    Expect(1, 201546, '\P{^Is_Alphabetic: --T}', "");
-    Expect(0, 201547, '\p{Is_Alphabetic: --T}', "");
-    Expect(1, 201547, '\p{^Is_Alphabetic: --T}', "");
-    Expect(1, 201547, '\P{Is_Alphabetic: --T}', "");
-    Expect(0, 201547, '\P{^Is_Alphabetic: --T}', "");
-    Error('\p{Is_Alpha=--True/a/}');
-    Error('\P{Is_Alpha=--True/a/}');
-    Expect(1, 201546, '\p{Is_Alpha=true}', "");
-    Expect(0, 201546, '\p{^Is_Alpha=true}', "");
-    Expect(0, 201546, '\P{Is_Alpha=true}', "");
-    Expect(1, 201546, '\P{^Is_Alpha=true}', "");
-    Expect(0, 201547, '\p{Is_Alpha=true}', "");
-    Expect(1, 201547, '\p{^Is_Alpha=true}', "");
-    Expect(1, 201547, '\P{Is_Alpha=true}', "");
-    Expect(0, 201547, '\P{^Is_Alpha=true}', "");
-    Expect(1, 201546, '\p{Is_Alpha=		True}', "");
-    Expect(0, 201546, '\p{^Is_Alpha=		True}', "");
-    Expect(0, 201546, '\P{Is_Alpha=		True}', "");
-    Expect(1, 201546, '\P{^Is_Alpha=		True}', "");
-    Expect(0, 201547, '\p{Is_Alpha=		True}', "");
-    Expect(1, 201547, '\p{^Is_Alpha=		True}', "");
-    Expect(1, 201547, '\P{Is_Alpha=		True}', "");
-    Expect(0, 201547, '\P{^Is_Alpha=		True}', "");
+    Expect(1, 102, '\p{Is_AHex=- True}', "");
+    Expect(0, 102, '\p{^Is_AHex=- True}', "");
+    Expect(0, 102, '\P{Is_AHex=- True}', "");
+    Expect(1, 102, '\P{^Is_AHex=- True}', "");
+    Expect(0, 103, '\p{Is_AHex=- True}', "");
+    Expect(1, 103, '\p{^Is_AHex=- True}', "");
+    Expect(1, 103, '\P{Is_AHex=- True}', "");
+    Expect(0, 103, '\P{^Is_AHex=- True}', "");
+    Error('\p{Alphabetic=:=__no}');
+    Error('\P{Alphabetic=:=__no}');
+    Expect(1, 205744, '\p{Alphabetic=:\ANo\z:}', "");;
+    Expect(0, 205743, '\p{Alphabetic=:\ANo\z:}', "");;
+    Expect(1, 205744, '\p{Alphabetic=no}', "");
+    Expect(0, 205744, '\p{^Alphabetic=no}', "");
+    Expect(0, 205744, '\P{Alphabetic=no}', "");
+    Expect(1, 205744, '\P{^Alphabetic=no}', "");
+    Expect(0, 205743, '\p{Alphabetic=no}', "");
+    Expect(1, 205743, '\p{^Alphabetic=no}', "");
+    Expect(1, 205743, '\P{Alphabetic=no}', "");
+    Expect(0, 205743, '\P{^Alphabetic=no}', "");
+    Expect(1, 205744, '\p{Alphabetic=:\Ano\z:}', "");;
+    Expect(0, 205743, '\p{Alphabetic=:\Ano\z:}', "");;
+    Expect(1, 205744, '\p{Alphabetic=  No}', "");
+    Expect(0, 205744, '\p{^Alphabetic=  No}', "");
+    Expect(0, 205744, '\P{Alphabetic=  No}', "");
+    Expect(1, 205744, '\P{^Alphabetic=  No}', "");
+    Expect(0, 205743, '\p{Alphabetic=  No}', "");
+    Expect(1, 205743, '\p{^Alphabetic=  No}', "");
+    Expect(1, 205743, '\P{Alphabetic=  No}', "");
+    Expect(0, 205743, '\P{^Alphabetic=  No}', "");
+    Error('\p{Alpha:	_/a/N}');
+    Error('\P{Alpha:	_/a/N}');
+    Expect(1, 205744, '\p{Alpha=:\AN\z:}', "");;
+    Expect(0, 205743, '\p{Alpha=:\AN\z:}', "");;
+    Expect(1, 205744, '\p{Alpha=n}', "");
+    Expect(0, 205744, '\p{^Alpha=n}', "");
+    Expect(0, 205744, '\P{Alpha=n}', "");
+    Expect(1, 205744, '\P{^Alpha=n}', "");
+    Expect(0, 205743, '\p{Alpha=n}', "");
+    Expect(1, 205743, '\p{^Alpha=n}', "");
+    Expect(1, 205743, '\P{Alpha=n}', "");
+    Expect(0, 205743, '\P{^Alpha=n}', "");
+    Expect(1, 205744, '\p{Alpha=:\An\z:}', "");;
+    Expect(0, 205743, '\p{Alpha=:\An\z:}', "");;
+    Expect(1, 205744, '\p{Alpha=	_N}', "");
+    Expect(0, 205744, '\p{^Alpha=	_N}', "");
+    Expect(0, 205744, '\P{Alpha=	_N}', "");
+    Expect(1, 205744, '\P{^Alpha=	_N}', "");
+    Expect(0, 205743, '\p{Alpha=	_N}', "");
+    Expect(1, 205743, '\p{^Alpha=	_N}', "");
+    Expect(1, 205743, '\P{Alpha=	_N}', "");
+    Expect(0, 205743, '\P{^Alpha=	_N}', "");
+    Error('\p{Is_Alphabetic=:=--F}');
+    Error('\P{Is_Alphabetic=:=--F}');
+    Expect(1, 205744, '\p{Is_Alphabetic=f}', "");
+    Expect(0, 205744, '\p{^Is_Alphabetic=f}', "");
+    Expect(0, 205744, '\P{Is_Alphabetic=f}', "");
+    Expect(1, 205744, '\P{^Is_Alphabetic=f}', "");
+    Expect(0, 205743, '\p{Is_Alphabetic=f}', "");
+    Expect(1, 205743, '\p{^Is_Alphabetic=f}', "");
+    Expect(1, 205743, '\P{Is_Alphabetic=f}', "");
+    Expect(0, 205743, '\P{^Is_Alphabetic=f}', "");
+    Expect(1, 205744, '\p{Is_Alphabetic:    -F}', "");
+    Expect(0, 205744, '\p{^Is_Alphabetic:    -F}', "");
+    Expect(0, 205744, '\P{Is_Alphabetic:    -F}', "");
+    Expect(1, 205744, '\P{^Is_Alphabetic:    -F}', "");
+    Expect(0, 205743, '\p{Is_Alphabetic:    -F}', "");
+    Expect(1, 205743, '\p{^Is_Alphabetic:    -F}', "");
+    Expect(1, 205743, '\P{Is_Alphabetic:    -F}', "");
+    Expect(0, 205743, '\P{^Is_Alphabetic:    -F}', "");
+    Error('\p{Is_Alpha=:=-	FALSE}');
+    Error('\P{Is_Alpha=:=-	FALSE}');
+    Expect(1, 205744, '\p{Is_Alpha=false}', "");
+    Expect(0, 205744, '\p{^Is_Alpha=false}', "");
+    Expect(0, 205744, '\P{Is_Alpha=false}', "");
+    Expect(1, 205744, '\P{^Is_Alpha=false}', "");
+    Expect(0, 205743, '\p{Is_Alpha=false}', "");
+    Expect(1, 205743, '\p{^Is_Alpha=false}', "");
+    Expect(1, 205743, '\P{Is_Alpha=false}', "");
+    Expect(0, 205743, '\P{^Is_Alpha=false}', "");
+    Expect(1, 205744, '\p{Is_Alpha: 		false}', "");
+    Expect(0, 205744, '\p{^Is_Alpha: 		false}', "");
+    Expect(0, 205744, '\P{Is_Alpha: 		false}', "");
+    Expect(1, 205744, '\P{^Is_Alpha: 		false}', "");
+    Expect(0, 205743, '\p{Is_Alpha: 		false}', "");
+    Expect(1, 205743, '\p{^Is_Alpha: 		false}', "");
+    Expect(1, 205743, '\P{Is_Alpha: 		false}', "");
+    Expect(0, 205743, '\P{^Is_Alpha: 		false}', "");
+    Error('\p{Alphabetic=-YES/a/}');
+    Error('\P{Alphabetic=-YES/a/}');
+    Expect(1, 205743, '\p{Alphabetic=:\AYes\z:}', "");;
+    Expect(0, 205744, '\p{Alphabetic=:\AYes\z:}', "");;
+    Expect(1, 205743, '\p{Alphabetic=yes}', "");
+    Expect(0, 205743, '\p{^Alphabetic=yes}', "");
+    Expect(0, 205743, '\P{Alphabetic=yes}', "");
+    Expect(1, 205743, '\P{^Alphabetic=yes}', "");
+    Expect(0, 205744, '\p{Alphabetic=yes}', "");
+    Expect(1, 205744, '\p{^Alphabetic=yes}', "");
+    Expect(1, 205744, '\P{Alphabetic=yes}', "");
+    Expect(0, 205744, '\P{^Alphabetic=yes}', "");
+    Expect(1, 205743, '\p{Alphabetic=:\Ayes\z:}', "");;
+    Expect(0, 205744, '\p{Alphabetic=:\Ayes\z:}', "");;
+    Expect(1, 205743, '\p{Alphabetic=_-YES}', "");
+    Expect(0, 205743, '\p{^Alphabetic=_-YES}', "");
+    Expect(0, 205743, '\P{Alphabetic=_-YES}', "");
+    Expect(1, 205743, '\P{^Alphabetic=_-YES}', "");
+    Expect(0, 205744, '\p{Alphabetic=_-YES}', "");
+    Expect(1, 205744, '\p{^Alphabetic=_-YES}', "");
+    Expect(1, 205744, '\P{Alphabetic=_-YES}', "");
+    Expect(0, 205744, '\P{^Alphabetic=_-YES}', "");
+    Error('\p{Alpha=_:=Y}');
+    Error('\P{Alpha=_:=Y}');
+    Expect(1, 205743, '\p{Alpha=:\AY\z:}', "");;
+    Expect(0, 205744, '\p{Alpha=:\AY\z:}', "");;
+    Expect(1, 205743, '\p{Alpha=y}', "");
+    Expect(0, 205743, '\p{^Alpha=y}', "");
+    Expect(0, 205743, '\P{Alpha=y}', "");
+    Expect(1, 205743, '\P{^Alpha=y}', "");
+    Expect(0, 205744, '\p{Alpha=y}', "");
+    Expect(1, 205744, '\p{^Alpha=y}', "");
+    Expect(1, 205744, '\P{Alpha=y}', "");
+    Expect(0, 205744, '\P{^Alpha=y}', "");
+    Expect(1, 205743, '\p{Alpha=:\Ay\z:}', "");;
+    Expect(0, 205744, '\p{Alpha=:\Ay\z:}', "");;
+    Expect(1, 205743, '\p{Alpha= Y}', "");
+    Expect(0, 205743, '\p{^Alpha= Y}', "");
+    Expect(0, 205743, '\P{Alpha= Y}', "");
+    Expect(1, 205743, '\P{^Alpha= Y}', "");
+    Expect(0, 205744, '\p{Alpha= Y}', "");
+    Expect(1, 205744, '\p{^Alpha= Y}', "");
+    Expect(1, 205744, '\P{Alpha= Y}', "");
+    Expect(0, 205744, '\P{^Alpha= Y}', "");
+    Error('\p{Is_Alphabetic:	:=T}');
+    Error('\P{Is_Alphabetic:	:=T}');
+    Expect(1, 205743, '\p{Is_Alphabetic=t}', "");
+    Expect(0, 205743, '\p{^Is_Alphabetic=t}', "");
+    Expect(0, 205743, '\P{Is_Alphabetic=t}', "");
+    Expect(1, 205743, '\P{^Is_Alphabetic=t}', "");
+    Expect(0, 205744, '\p{Is_Alphabetic=t}', "");
+    Expect(1, 205744, '\p{^Is_Alphabetic=t}', "");
+    Expect(1, 205744, '\P{Is_Alphabetic=t}', "");
+    Expect(0, 205744, '\P{^Is_Alphabetic=t}', "");
+    Expect(1, 205743, '\p{Is_Alphabetic=_T}', "");
+    Expect(0, 205743, '\p{^Is_Alphabetic=_T}', "");
+    Expect(0, 205743, '\P{Is_Alphabetic=_T}', "");
+    Expect(1, 205743, '\P{^Is_Alphabetic=_T}', "");
+    Expect(0, 205744, '\p{Is_Alphabetic=_T}', "");
+    Expect(1, 205744, '\p{^Is_Alphabetic=_T}', "");
+    Expect(1, 205744, '\P{Is_Alphabetic=_T}', "");
+    Expect(0, 205744, '\P{^Is_Alphabetic=_T}', "");
+    Error('\p{Is_Alpha=-/a/true}');
+    Error('\P{Is_Alpha=-/a/true}');
+    Expect(1, 205743, '\p{Is_Alpha: true}', "");
+    Expect(0, 205743, '\p{^Is_Alpha: true}', "");
+    Expect(0, 205743, '\P{Is_Alpha: true}', "");
+    Expect(1, 205743, '\P{^Is_Alpha: true}', "");
+    Expect(0, 205744, '\p{Is_Alpha: true}', "");
+    Expect(1, 205744, '\p{^Is_Alpha: true}', "");
+    Expect(1, 205744, '\P{Is_Alpha: true}', "");
+    Expect(0, 205744, '\P{^Is_Alpha: true}', "");
+    Expect(1, 205743, '\p{Is_Alpha=	true}', "");
+    Expect(0, 205743, '\p{^Is_Alpha=	true}', "");
+    Expect(0, 205743, '\P{Is_Alpha=	true}', "");
+    Expect(1, 205743, '\P{^Is_Alpha=	true}', "");
+    Expect(0, 205744, '\p{Is_Alpha=	true}', "");
+    Expect(1, 205744, '\p{^Is_Alpha=	true}', "");
+    Expect(1, 205744, '\P{Is_Alpha=	true}', "");
+    Expect(0, 205744, '\P{^Is_Alpha=	true}', "");
     Error('\p{bidiclass}');
     Error('\P{bidiclass}');
     Error('\p{bc}');
     Error('\P{bc}');
-    Error('\p{Bidi_Class=	Arabic_LETTER/a/}');
-    Error('\P{Bidi_Class=	Arabic_LETTER/a/}');
+    Error('\p{Bidi_Class=	-Arabic_letter:=}');
+    Error('\P{Bidi_Class=	-Arabic_letter:=}');
     Expect(1, 126719, '\p{Bidi_Class=:\AArabic_Letter\z:}', "");;
     Expect(0, 126720, '\p{Bidi_Class=:\AArabic_Letter\z:}', "");;
     Expect(1, 126719, '\p{Bidi_Class=arabicletter}', "");
@@ -1560,16 +1592,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126720, '\P{^Bidi_Class=arabicletter}', "");
     Expect(1, 126719, '\p{Bidi_Class=:\Aarabicletter\z:}', "");;
     Expect(0, 126720, '\p{Bidi_Class=:\Aarabicletter\z:}', "");;
-    Expect(1, 126719, '\p{Bidi_Class=-	Arabic_Letter}', "");
-    Expect(0, 126719, '\p{^Bidi_Class=-	Arabic_Letter}', "");
-    Expect(0, 126719, '\P{Bidi_Class=-	Arabic_Letter}', "");
-    Expect(1, 126719, '\P{^Bidi_Class=-	Arabic_Letter}', "");
-    Expect(0, 126720, '\p{Bidi_Class=-	Arabic_Letter}', "");
-    Expect(1, 126720, '\p{^Bidi_Class=-	Arabic_Letter}', "");
-    Expect(1, 126720, '\P{Bidi_Class=-	Arabic_Letter}', "");
-    Expect(0, 126720, '\P{^Bidi_Class=-	Arabic_Letter}', "");
-    Error('\p{Bc=_/a/AL}');
-    Error('\P{Bc=_/a/AL}');
+    Expect(1, 126719, '\p{Bidi_Class=	-ARABIC_letter}', "");
+    Expect(0, 126719, '\p{^Bidi_Class=	-ARABIC_letter}', "");
+    Expect(0, 126719, '\P{Bidi_Class=	-ARABIC_letter}', "");
+    Expect(1, 126719, '\P{^Bidi_Class=	-ARABIC_letter}', "");
+    Expect(0, 126720, '\p{Bidi_Class=	-ARABIC_letter}', "");
+    Expect(1, 126720, '\p{^Bidi_Class=	-ARABIC_letter}', "");
+    Expect(1, 126720, '\P{Bidi_Class=	-ARABIC_letter}', "");
+    Expect(0, 126720, '\P{^Bidi_Class=	-ARABIC_letter}', "");
+    Error('\p{Bc=-/a/AL}');
+    Error('\P{Bc=-/a/AL}');
     Expect(1, 126719, '\p{Bc=:\AAL\z:}', "");;
     Expect(0, 126720, '\p{Bc=:\AAL\z:}', "");;
     Expect(1, 126719, '\p{Bc=al}', "");
@@ -1582,16 +1614,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126720, '\P{^Bc=al}', "");
     Expect(1, 126719, '\p{Bc=:\Aal\z:}', "");;
     Expect(0, 126720, '\p{Bc=:\Aal\z:}', "");;
-    Expect(1, 126719, '\p{Bc= 	al}', "");
-    Expect(0, 126719, '\p{^Bc= 	al}', "");
-    Expect(0, 126719, '\P{Bc= 	al}', "");
-    Expect(1, 126719, '\P{^Bc= 	al}', "");
-    Expect(0, 126720, '\p{Bc= 	al}', "");
-    Expect(1, 126720, '\p{^Bc= 	al}', "");
-    Expect(1, 126720, '\P{Bc= 	al}', "");
-    Expect(0, 126720, '\P{^Bc= 	al}', "");
-    Error('\p{Is_Bidi_Class=:=  ARABIC_letter}');
-    Error('\P{Is_Bidi_Class=:=  ARABIC_letter}');
+    Expect(1, 126719, '\p{Bc=	-AL}', "");
+    Expect(0, 126719, '\p{^Bc=	-AL}', "");
+    Expect(0, 126719, '\P{Bc=	-AL}', "");
+    Expect(1, 126719, '\P{^Bc=	-AL}', "");
+    Expect(0, 126720, '\p{Bc=	-AL}', "");
+    Expect(1, 126720, '\p{^Bc=	-AL}', "");
+    Expect(1, 126720, '\P{Bc=	-AL}', "");
+    Expect(0, 126720, '\P{^Bc=	-AL}', "");
+    Error('\p{Is_Bidi_Class:   -	Arabic_letter/a/}');
+    Error('\P{Is_Bidi_Class:   -	Arabic_letter/a/}');
     Expect(1, 126719, '\p{Is_Bidi_Class=arabicletter}', "");
     Expect(0, 126719, '\p{^Is_Bidi_Class=arabicletter}', "");
     Expect(0, 126719, '\P{Is_Bidi_Class=arabicletter}', "");
@@ -1600,34 +1632,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126720, '\p{^Is_Bidi_Class=arabicletter}', "");
     Expect(1, 126720, '\P{Is_Bidi_Class=arabicletter}', "");
     Expect(0, 126720, '\P{^Is_Bidi_Class=arabicletter}', "");
-    Expect(1, 126719, '\p{Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(0, 126719, '\p{^Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(0, 126719, '\P{Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(1, 126719, '\P{^Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(0, 126720, '\p{Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(1, 126720, '\p{^Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(1, 126720, '\P{Is_Bidi_Class=- Arabic_Letter}', "");
-    Expect(0, 126720, '\P{^Is_Bidi_Class=- Arabic_Letter}', "");
-    Error('\p{Is_Bc=	 AL/a/}');
-    Error('\P{Is_Bc=	 AL/a/}');
-    Expect(1, 126719, '\p{Is_Bc: al}', "");
-    Expect(0, 126719, '\p{^Is_Bc: al}', "");
-    Expect(0, 126719, '\P{Is_Bc: al}', "");
-    Expect(1, 126719, '\P{^Is_Bc: al}', "");
-    Expect(0, 126720, '\p{Is_Bc: al}', "");
-    Expect(1, 126720, '\p{^Is_Bc: al}', "");
-    Expect(1, 126720, '\P{Is_Bc: al}', "");
-    Expect(0, 126720, '\P{^Is_Bc: al}', "");
-    Expect(1, 126719, '\p{Is_Bc= _AL}', "");
-    Expect(0, 126719, '\p{^Is_Bc= _AL}', "");
-    Expect(0, 126719, '\P{Is_Bc= _AL}', "");
-    Expect(1, 126719, '\P{^Is_Bc= _AL}', "");
-    Expect(0, 126720, '\p{Is_Bc= _AL}', "");
-    Expect(1, 126720, '\p{^Is_Bc= _AL}', "");
-    Expect(1, 126720, '\P{Is_Bc= _AL}', "");
-    Expect(0, 126720, '\P{^Is_Bc= _AL}', "");
-    Error('\p{Bidi_Class= -Arabic_Number:=}');
-    Error('\P{Bidi_Class= -Arabic_Number:=}');
+    Expect(1, 126719, '\p{Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(0, 126719, '\p{^Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(0, 126719, '\P{Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(1, 126719, '\P{^Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(0, 126720, '\p{Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(1, 126720, '\p{^Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(1, 126720, '\P{Is_Bidi_Class=__Arabic_Letter}', "");
+    Expect(0, 126720, '\P{^Is_Bidi_Class=__Arabic_Letter}', "");
+    Error('\p{Is_Bc=__AL:=}');
+    Error('\P{Is_Bc=__AL:=}');
+    Expect(1, 126719, '\p{Is_Bc=al}', "");
+    Expect(0, 126719, '\p{^Is_Bc=al}', "");
+    Expect(0, 126719, '\P{Is_Bc=al}', "");
+    Expect(1, 126719, '\P{^Is_Bc=al}', "");
+    Expect(0, 126720, '\p{Is_Bc=al}', "");
+    Expect(1, 126720, '\p{^Is_Bc=al}', "");
+    Expect(1, 126720, '\P{Is_Bc=al}', "");
+    Expect(0, 126720, '\P{^Is_Bc=al}', "");
+    Expect(1, 126719, '\p{Is_Bc=_-AL}', "");
+    Expect(0, 126719, '\p{^Is_Bc=_-AL}', "");
+    Expect(0, 126719, '\P{Is_Bc=_-AL}', "");
+    Expect(1, 126719, '\P{^Is_Bc=_-AL}', "");
+    Expect(0, 126720, '\p{Is_Bc=_-AL}', "");
+    Expect(1, 126720, '\p{^Is_Bc=_-AL}', "");
+    Expect(1, 126720, '\P{Is_Bc=_-AL}', "");
+    Expect(0, 126720, '\P{^Is_Bc=_-AL}', "");
+    Error('\p{Bidi_Class=/a/-_ARABIC_Number}');
+    Error('\P{Bidi_Class=/a/-_ARABIC_Number}');
     Expect(1, 69246, '\p{Bidi_Class=:\AArabic_Number\z:}', "");;
     Expect(0, 69247, '\p{Bidi_Class=:\AArabic_Number\z:}', "");;
     Expect(1, 69246, '\p{Bidi_Class=arabicnumber}', "");
@@ -1640,16 +1672,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69247, '\P{^Bidi_Class=arabicnumber}', "");
     Expect(1, 69246, '\p{Bidi_Class=:\Aarabicnumber\z:}', "");;
     Expect(0, 69247, '\p{Bidi_Class=:\Aarabicnumber\z:}', "");;
-    Expect(1, 69246, '\p{Bidi_Class= _Arabic_Number}', "");
-    Expect(0, 69246, '\p{^Bidi_Class= _Arabic_Number}', "");
-    Expect(0, 69246, '\P{Bidi_Class= _Arabic_Number}', "");
-    Expect(1, 69246, '\P{^Bidi_Class= _Arabic_Number}', "");
-    Expect(0, 69247, '\p{Bidi_Class= _Arabic_Number}', "");
-    Expect(1, 69247, '\p{^Bidi_Class= _Arabic_Number}', "");
-    Expect(1, 69247, '\P{Bidi_Class= _Arabic_Number}', "");
-    Expect(0, 69247, '\P{^Bidi_Class= _Arabic_Number}', "");
-    Error('\p{Bc=:=-_AN}');
-    Error('\P{Bc=:=-_AN}');
+    Expect(1, 69246, '\p{Bidi_Class=-	Arabic_Number}', "");
+    Expect(0, 69246, '\p{^Bidi_Class=-	Arabic_Number}', "");
+    Expect(0, 69246, '\P{Bidi_Class=-	Arabic_Number}', "");
+    Expect(1, 69246, '\P{^Bidi_Class=-	Arabic_Number}', "");
+    Expect(0, 69247, '\p{Bidi_Class=-	Arabic_Number}', "");
+    Expect(1, 69247, '\p{^Bidi_Class=-	Arabic_Number}', "");
+    Expect(1, 69247, '\P{Bidi_Class=-	Arabic_Number}', "");
+    Expect(0, 69247, '\P{^Bidi_Class=-	Arabic_Number}', "");
+    Error('\p{Bc: 	an:=}');
+    Error('\P{Bc: 	an:=}');
     Expect(1, 69246, '\p{Bc=:\AAN\z:}', "");;
     Expect(0, 69247, '\p{Bc=:\AAN\z:}', "");;
     Expect(1, 69246, '\p{Bc=an}', "");
@@ -1662,16 +1694,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69247, '\P{^Bc=an}', "");
     Expect(1, 69246, '\p{Bc=:\Aan\z:}', "");;
     Expect(0, 69247, '\p{Bc=:\Aan\z:}', "");;
-    Expect(1, 69246, '\p{Bc=_an}', "");
-    Expect(0, 69246, '\p{^Bc=_an}', "");
-    Expect(0, 69246, '\P{Bc=_an}', "");
-    Expect(1, 69246, '\P{^Bc=_an}', "");
-    Expect(0, 69247, '\p{Bc=_an}', "");
-    Expect(1, 69247, '\p{^Bc=_an}', "");
-    Expect(1, 69247, '\P{Bc=_an}', "");
-    Expect(0, 69247, '\P{^Bc=_an}', "");
-    Error('\p{Is_Bidi_Class=	-arabic_NUMBER:=}');
-    Error('\P{Is_Bidi_Class=	-arabic_NUMBER:=}');
+    Expect(1, 69246, '\p{Bc=__AN}', "");
+    Expect(0, 69246, '\p{^Bc=__AN}', "");
+    Expect(0, 69246, '\P{Bc=__AN}', "");
+    Expect(1, 69246, '\P{^Bc=__AN}', "");
+    Expect(0, 69247, '\p{Bc=__AN}', "");
+    Expect(1, 69247, '\p{^Bc=__AN}', "");
+    Expect(1, 69247, '\P{Bc=__AN}', "");
+    Expect(0, 69247, '\P{^Bc=__AN}', "");
+    Error('\p{Is_Bidi_Class= -ARABIC_Number:=}');
+    Error('\P{Is_Bidi_Class= -ARABIC_Number:=}');
     Expect(1, 69246, '\p{Is_Bidi_Class=arabicnumber}', "");
     Expect(0, 69246, '\p{^Is_Bidi_Class=arabicnumber}', "");
     Expect(0, 69246, '\P{Is_Bidi_Class=arabicnumber}', "");
@@ -1680,16 +1712,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69247, '\p{^Is_Bidi_Class=arabicnumber}', "");
     Expect(1, 69247, '\P{Is_Bidi_Class=arabicnumber}', "");
     Expect(0, 69247, '\P{^Is_Bidi_Class=arabicnumber}', "");
-    Expect(1, 69246, '\p{Is_Bidi_Class=arabic_Number}', "");
-    Expect(0, 69246, '\p{^Is_Bidi_Class=arabic_Number}', "");
-    Expect(0, 69246, '\P{Is_Bidi_Class=arabic_Number}', "");
-    Expect(1, 69246, '\P{^Is_Bidi_Class=arabic_Number}', "");
-    Expect(0, 69247, '\p{Is_Bidi_Class=arabic_Number}', "");
-    Expect(1, 69247, '\p{^Is_Bidi_Class=arabic_Number}', "");
-    Expect(1, 69247, '\P{Is_Bidi_Class=arabic_Number}', "");
-    Expect(0, 69247, '\P{^Is_Bidi_Class=arabic_Number}', "");
-    Error('\p{Is_Bc=_an/a/}');
-    Error('\P{Is_Bc=_an/a/}');
+    Expect(1, 69246, '\p{Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(0, 69246, '\p{^Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(0, 69246, '\P{Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(1, 69246, '\P{^Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(0, 69247, '\p{Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(1, 69247, '\p{^Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(1, 69247, '\P{Is_Bidi_Class=	 Arabic_Number}', "");
+    Expect(0, 69247, '\P{^Is_Bidi_Class=	 Arabic_Number}', "");
+    Error('\p{Is_Bc=_AN/a/}');
+    Error('\P{Is_Bc=_AN/a/}');
     Expect(1, 69246, '\p{Is_Bc=an}', "");
     Expect(0, 69246, '\p{^Is_Bc=an}', "");
     Expect(0, 69246, '\P{Is_Bc=an}', "");
@@ -1698,16 +1730,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69247, '\p{^Is_Bc=an}', "");
     Expect(1, 69247, '\P{Is_Bc=an}', "");
     Expect(0, 69247, '\P{^Is_Bc=an}', "");
-    Expect(1, 69246, '\p{Is_Bc= _AN}', "");
-    Expect(0, 69246, '\p{^Is_Bc= _AN}', "");
-    Expect(0, 69246, '\P{Is_Bc= _AN}', "");
-    Expect(1, 69246, '\P{^Is_Bc= _AN}', "");
-    Expect(0, 69247, '\p{Is_Bc= _AN}', "");
-    Expect(1, 69247, '\p{^Is_Bc= _AN}', "");
-    Expect(1, 69247, '\P{Is_Bc= _AN}', "");
-    Expect(0, 69247, '\P{^Is_Bc= _AN}', "");
-    Error('\p{Bidi_Class=	 Paragraph_SEPARATOR/a/}');
-    Error('\P{Bidi_Class=	 Paragraph_SEPARATOR/a/}');
+    Expect(1, 69246, '\p{Is_Bc:   	 an}', "");
+    Expect(0, 69246, '\p{^Is_Bc:   	 an}', "");
+    Expect(0, 69246, '\P{Is_Bc:   	 an}', "");
+    Expect(1, 69246, '\P{^Is_Bc:   	 an}', "");
+    Expect(0, 69247, '\p{Is_Bc:   	 an}', "");
+    Expect(1, 69247, '\p{^Is_Bc:   	 an}', "");
+    Expect(1, 69247, '\P{Is_Bc:   	 an}', "");
+    Expect(0, 69247, '\P{^Is_Bc:   	 an}', "");
+    Error('\p{Bidi_Class=-:=Paragraph_Separator}');
+    Error('\P{Bidi_Class=-:=Paragraph_Separator}');
     Expect(1, 8233, '\p{Bidi_Class=:\AParagraph_Separator\z:}', "");;
     Expect(0, 8234, '\p{Bidi_Class=:\AParagraph_Separator\z:}', "");;
     Expect(1, 8233, '\p{Bidi_Class=paragraphseparator}', "");
@@ -1728,8 +1760,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8234, '\p{^Bidi_Class=_Paragraph_Separator}', "");
     Expect(1, 8234, '\P{Bidi_Class=_Paragraph_Separator}', "");
     Expect(0, 8234, '\P{^Bidi_Class=_Paragraph_Separator}', "");
-    Error('\p{Bc: B:=}');
-    Error('\P{Bc: B:=}');
+    Error('\p{Bc=/a/--b}');
+    Error('\P{Bc=/a/--b}');
     Expect(1, 8233, '\p{Bc=:\AB\z:}', "");;
     Expect(0, 8234, '\p{Bc=:\AB\z:}', "");;
     Expect(1, 8233, '\p{Bc=b}', "");
@@ -1750,8 +1782,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8234, '\p{^Bc=-b}', "");
     Expect(1, 8234, '\P{Bc=-b}', "");
     Expect(0, 8234, '\P{^Bc=-b}', "");
-    Error('\p{Is_Bidi_Class=:=-PARAGRAPH_Separator}');
-    Error('\P{Is_Bidi_Class=:=-PARAGRAPH_Separator}');
+    Error('\p{Is_Bidi_Class=	:=Paragraph_Separator}');
+    Error('\P{Is_Bidi_Class=	:=Paragraph_Separator}');
     Expect(1, 8233, '\p{Is_Bidi_Class=paragraphseparator}', "");
     Expect(0, 8233, '\p{^Is_Bidi_Class=paragraphseparator}', "");
     Expect(0, 8233, '\P{Is_Bidi_Class=paragraphseparator}', "");
@@ -1760,16 +1792,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8234, '\p{^Is_Bidi_Class=paragraphseparator}', "");
     Expect(1, 8234, '\P{Is_Bidi_Class=paragraphseparator}', "");
     Expect(0, 8234, '\P{^Is_Bidi_Class=paragraphseparator}', "");
-    Expect(1, 8233, '\p{Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(0, 8233, '\p{^Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(0, 8233, '\P{Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(1, 8233, '\P{^Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(0, 8234, '\p{Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(1, 8234, '\p{^Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(1, 8234, '\P{Is_Bidi_Class=_Paragraph_Separator}', "");
-    Expect(0, 8234, '\P{^Is_Bidi_Class=_Paragraph_Separator}', "");
-    Error('\p{Is_Bc=/a/--b}');
-    Error('\P{Is_Bc=/a/--b}');
+    Expect(1, 8233, '\p{Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(0, 8233, '\p{^Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(0, 8233, '\P{Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(1, 8233, '\P{^Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(0, 8234, '\p{Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(1, 8234, '\p{^Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(1, 8234, '\P{Is_Bidi_Class=	 Paragraph_separator}', "");
+    Expect(0, 8234, '\P{^Is_Bidi_Class=	 Paragraph_separator}', "");
+    Error('\p{Is_Bc=_/a/B}');
+    Error('\P{Is_Bc=_/a/B}');
     Expect(1, 8233, '\p{Is_Bc=b}', "");
     Expect(0, 8233, '\p{^Is_Bc=b}', "");
     Expect(0, 8233, '\P{Is_Bc=b}', "");
@@ -1778,38 +1810,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8234, '\p{^Is_Bc=b}', "");
     Expect(1, 8234, '\P{Is_Bc=b}', "");
     Expect(0, 8234, '\P{^Is_Bc=b}', "");
-    Expect(1, 8233, '\p{Is_Bc=-b}', "");
-    Expect(0, 8233, '\p{^Is_Bc=-b}', "");
-    Expect(0, 8233, '\P{Is_Bc=-b}', "");
-    Expect(1, 8233, '\P{^Is_Bc=-b}', "");
-    Expect(0, 8234, '\p{Is_Bc=-b}', "");
-    Expect(1, 8234, '\p{^Is_Bc=-b}', "");
-    Expect(1, 8234, '\P{Is_Bc=-b}', "");
-    Expect(0, 8234, '\P{^Is_Bc=-b}', "");
-    Error('\p{Bidi_Class=	:=Boundary_Neutral}');
-    Error('\P{Bidi_Class=	:=Boundary_Neutral}');
+    Expect(1, 8233, '\p{Is_Bc=		B}', "");
+    Expect(0, 8233, '\p{^Is_Bc=		B}', "");
+    Expect(0, 8233, '\P{Is_Bc=		B}', "");
+    Expect(1, 8233, '\P{^Is_Bc=		B}', "");
+    Expect(0, 8234, '\p{Is_Bc=		B}', "");
+    Expect(1, 8234, '\p{^Is_Bc=		B}', "");
+    Expect(1, 8234, '\P{Is_Bc=		B}', "");
+    Expect(0, 8234, '\P{^Is_Bc=		B}', "");
+    Error('\p{Bidi_Class=/a/	boundary_Neutral}');
+    Error('\P{Bidi_Class=/a/	boundary_Neutral}');
     Expect(1, 921599, '\p{Bidi_Class=:\ABoundary_Neutral\z:}', "");;
     Expect(0, 1114109, '\p{Bidi_Class=:\ABoundary_Neutral\z:}', "");;
-    Expect(1, 921599, '\p{Bidi_Class=boundaryneutral}', "");
-    Expect(0, 921599, '\p{^Bidi_Class=boundaryneutral}', "");
-    Expect(0, 921599, '\P{Bidi_Class=boundaryneutral}', "");
-    Expect(1, 921599, '\P{^Bidi_Class=boundaryneutral}', "");
-    Expect(0, 1114109, '\p{Bidi_Class=boundaryneutral}', "");
-    Expect(1, 1114109, '\p{^Bidi_Class=boundaryneutral}', "");
-    Expect(1, 1114109, '\P{Bidi_Class=boundaryneutral}', "");
-    Expect(0, 1114109, '\P{^Bidi_Class=boundaryneutral}', "");
+    Expect(1, 921599, '\p{Bidi_Class:   boundaryneutral}', "");
+    Expect(0, 921599, '\p{^Bidi_Class:   boundaryneutral}', "");
+    Expect(0, 921599, '\P{Bidi_Class:   boundaryneutral}', "");
+    Expect(1, 921599, '\P{^Bidi_Class:   boundaryneutral}', "");
+    Expect(0, 1114109, '\p{Bidi_Class:   boundaryneutral}', "");
+    Expect(1, 1114109, '\p{^Bidi_Class:   boundaryneutral}', "");
+    Expect(1, 1114109, '\P{Bidi_Class:   boundaryneutral}', "");
+    Expect(0, 1114109, '\P{^Bidi_Class:   boundaryneutral}', "");
     Expect(1, 921599, '\p{Bidi_Class=:\Aboundaryneutral\z:}', "");;
     Expect(0, 1114109, '\p{Bidi_Class=:\Aboundaryneutral\z:}', "");;
-    Expect(1, 921599, '\p{Bidi_Class=	 Boundary_neutral}', "");
-    Expect(0, 921599, '\p{^Bidi_Class=	 Boundary_neutral}', "");
-    Expect(0, 921599, '\P{Bidi_Class=	 Boundary_neutral}', "");
-    Expect(1, 921599, '\P{^Bidi_Class=	 Boundary_neutral}', "");
-    Expect(0, 1114109, '\p{Bidi_Class=	 Boundary_neutral}', "");
-    Expect(1, 1114109, '\p{^Bidi_Class=	 Boundary_neutral}', "");
-    Expect(1, 1114109, '\P{Bidi_Class=	 Boundary_neutral}', "");
-    Expect(0, 1114109, '\P{^Bidi_Class=	 Boundary_neutral}', "");
-    Error('\p{Bc=_/a/BN}');
-    Error('\P{Bc=_/a/BN}');
+    Expect(1, 921599, '\p{Bidi_Class=	Boundary_Neutral}', "");
+    Expect(0, 921599, '\p{^Bidi_Class=	Boundary_Neutral}', "");
+    Expect(0, 921599, '\P{Bidi_Class=	Boundary_Neutral}', "");
+    Expect(1, 921599, '\P{^Bidi_Class=	Boundary_Neutral}', "");
+    Expect(0, 1114109, '\p{Bidi_Class=	Boundary_Neutral}', "");
+    Expect(1, 1114109, '\p{^Bidi_Class=	Boundary_Neutral}', "");
+    Expect(1, 1114109, '\P{Bidi_Class=	Boundary_Neutral}', "");
+    Expect(0, 1114109, '\P{^Bidi_Class=	Boundary_Neutral}', "");
+    Error('\p{Bc=-BN:=}');
+    Error('\P{Bc=-BN:=}');
     Expect(1, 921599, '\p{Bc=:\ABN\z:}', "");;
     Expect(0, 1114109, '\p{Bc=:\ABN\z:}', "");;
     Expect(1, 921599, '\p{Bc=bn}', "");
@@ -1822,34 +1854,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1114109, '\P{^Bc=bn}', "");
     Expect(1, 921599, '\p{Bc=:\Abn\z:}', "");;
     Expect(0, 1114109, '\p{Bc=:\Abn\z:}', "");;
-    Expect(1, 921599, '\p{Bc=		BN}', "");
-    Expect(0, 921599, '\p{^Bc=		BN}', "");
-    Expect(0, 921599, '\P{Bc=		BN}', "");
-    Expect(1, 921599, '\P{^Bc=		BN}', "");
-    Expect(0, 1114109, '\p{Bc=		BN}', "");
-    Expect(1, 1114109, '\p{^Bc=		BN}', "");
-    Expect(1, 1114109, '\P{Bc=		BN}', "");
-    Expect(0, 1114109, '\P{^Bc=		BN}', "");
-    Error('\p{Is_Bidi_Class=/a/	boundary_Neutral}');
-    Error('\P{Is_Bidi_Class=/a/	boundary_Neutral}');
-    Expect(1, 921599, '\p{Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(0, 921599, '\p{^Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(0, 921599, '\P{Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(1, 921599, '\P{^Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(0, 1114109, '\p{Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(1, 1114109, '\p{^Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(1, 1114109, '\P{Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(0, 1114109, '\P{^Is_Bidi_Class:   boundaryneutral}', "");
-    Expect(1, 921599, '\p{Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(0, 921599, '\p{^Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(0, 921599, '\P{Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(1, 921599, '\P{^Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(0, 1114109, '\p{Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(1, 1114109, '\p{^Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(1, 1114109, '\P{Is_Bidi_Class=	Boundary_Neutral}', "");
-    Expect(0, 1114109, '\P{^Is_Bidi_Class=	Boundary_Neutral}', "");
-    Error('\p{Is_Bc=-BN:=}');
-    Error('\P{Is_Bc=-BN:=}');
+    Expect(1, 921599, '\p{Bc= bn}', "");
+    Expect(0, 921599, '\p{^Bc= bn}', "");
+    Expect(0, 921599, '\P{Bc= bn}', "");
+    Expect(1, 921599, '\P{^Bc= bn}', "");
+    Expect(0, 1114109, '\p{Bc= bn}', "");
+    Expect(1, 1114109, '\p{^Bc= bn}', "");
+    Expect(1, 1114109, '\P{Bc= bn}', "");
+    Expect(0, 1114109, '\P{^Bc= bn}', "");
+    Error('\p{Is_Bidi_Class=-/a/Boundary_neutral}');
+    Error('\P{Is_Bidi_Class=-/a/Boundary_neutral}');
+    Expect(1, 921599, '\p{Is_Bidi_Class=boundaryneutral}', "");
+    Expect(0, 921599, '\p{^Is_Bidi_Class=boundaryneutral}', "");
+    Expect(0, 921599, '\P{Is_Bidi_Class=boundaryneutral}', "");
+    Expect(1, 921599, '\P{^Is_Bidi_Class=boundaryneutral}', "");
+    Expect(0, 1114109, '\p{Is_Bidi_Class=boundaryneutral}', "");
+    Expect(1, 1114109, '\p{^Is_Bidi_Class=boundaryneutral}', "");
+    Expect(1, 1114109, '\P{Is_Bidi_Class=boundaryneutral}', "");
+    Expect(0, 1114109, '\P{^Is_Bidi_Class=boundaryneutral}', "");
+    Expect(1, 921599, '\p{Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(0, 921599, '\p{^Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(0, 921599, '\P{Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(1, 921599, '\P{^Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(0, 1114109, '\p{Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(1, 1114109, '\p{^Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(1, 1114109, '\P{Is_Bidi_Class=__boundary_Neutral}', "");
+    Expect(0, 1114109, '\P{^Is_Bidi_Class=__boundary_Neutral}', "");
+    Error('\p{Is_Bc=/a/bn}');
+    Error('\P{Is_Bc=/a/bn}');
     Expect(1, 921599, '\p{Is_Bc=bn}', "");
     Expect(0, 921599, '\p{^Is_Bc=bn}', "");
     Expect(0, 921599, '\P{Is_Bc=bn}', "");
@@ -1858,16 +1890,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1114109, '\p{^Is_Bc=bn}', "");
     Expect(1, 1114109, '\P{Is_Bc=bn}', "");
     Expect(0, 1114109, '\P{^Is_Bc=bn}', "");
-    Expect(1, 921599, '\p{Is_Bc= bn}', "");
-    Expect(0, 921599, '\p{^Is_Bc= bn}', "");
-    Expect(0, 921599, '\P{Is_Bc= bn}', "");
-    Expect(1, 921599, '\P{^Is_Bc= bn}', "");
-    Expect(0, 1114109, '\p{Is_Bc= bn}', "");
-    Expect(1, 1114109, '\p{^Is_Bc= bn}', "");
-    Expect(1, 1114109, '\P{Is_Bc= bn}', "");
-    Expect(0, 1114109, '\P{^Is_Bc= bn}', "");
-    Error('\p{Bidi_Class=-/a/Common_separator}');
-    Error('\P{Bidi_Class=-/a/Common_separator}');
+    Expect(1, 921599, '\p{Is_Bc=_ BN}', "");
+    Expect(0, 921599, '\p{^Is_Bc=_ BN}', "");
+    Expect(0, 921599, '\P{Is_Bc=_ BN}', "");
+    Expect(1, 921599, '\P{^Is_Bc=_ BN}', "");
+    Expect(0, 1114109, '\p{Is_Bc=_ BN}', "");
+    Expect(1, 1114109, '\p{^Is_Bc=_ BN}', "");
+    Expect(1, 1114109, '\P{Is_Bc=_ BN}', "");
+    Expect(0, 1114109, '\P{^Is_Bc=_ BN}', "");
+    Error('\p{Bidi_Class=_COMMON_Separator/a/}');
+    Error('\P{Bidi_Class=_COMMON_Separator/a/}');
     Expect(1, 65306, '\p{Bidi_Class=:\ACommon_Separator\z:}', "");;
     Expect(0, 65307, '\p{Bidi_Class=:\ACommon_Separator\z:}', "");;
     Expect(1, 65306, '\p{Bidi_Class=commonseparator}', "");
@@ -1880,16 +1912,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65307, '\P{^Bidi_Class=commonseparator}', "");
     Expect(1, 65306, '\p{Bidi_Class=:\Acommonseparator\z:}', "");;
     Expect(0, 65307, '\p{Bidi_Class=:\Acommonseparator\z:}', "");;
-    Expect(1, 65306, '\p{Bidi_Class=__common_Separator}', "");
-    Expect(0, 65306, '\p{^Bidi_Class=__common_Separator}', "");
-    Expect(0, 65306, '\P{Bidi_Class=__common_Separator}', "");
-    Expect(1, 65306, '\P{^Bidi_Class=__common_Separator}', "");
-    Expect(0, 65307, '\p{Bidi_Class=__common_Separator}', "");
-    Expect(1, 65307, '\p{^Bidi_Class=__common_Separator}', "");
-    Expect(1, 65307, '\P{Bidi_Class=__common_Separator}', "");
-    Expect(0, 65307, '\P{^Bidi_Class=__common_Separator}', "");
-    Error('\p{Bc=/a/cs}');
-    Error('\P{Bc=/a/cs}');
+    Expect(1, 65306, '\p{Bidi_Class=-	common_Separator}', "");
+    Expect(0, 65306, '\p{^Bidi_Class=-	common_Separator}', "");
+    Expect(0, 65306, '\P{Bidi_Class=-	common_Separator}', "");
+    Expect(1, 65306, '\P{^Bidi_Class=-	common_Separator}', "");
+    Expect(0, 65307, '\p{Bidi_Class=-	common_Separator}', "");
+    Expect(1, 65307, '\p{^Bidi_Class=-	common_Separator}', "");
+    Expect(1, 65307, '\P{Bidi_Class=-	common_Separator}', "");
+    Expect(0, 65307, '\P{^Bidi_Class=-	common_Separator}', "");
+    Error('\p{Bc=_-cs:=}');
+    Error('\P{Bc=_-cs:=}');
     Expect(1, 65306, '\p{Bc=:\ACS\z:}', "");;
     Expect(0, 65307, '\p{Bc=:\ACS\z:}', "");;
     Expect(1, 65306, '\p{Bc=cs}', "");
@@ -1902,16 +1934,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65307, '\P{^Bc=cs}', "");
     Expect(1, 65306, '\p{Bc=:\Acs\z:}', "");;
     Expect(0, 65307, '\p{Bc=:\Acs\z:}', "");;
-    Expect(1, 65306, '\p{Bc=_ CS}', "");
-    Expect(0, 65306, '\p{^Bc=_ CS}', "");
-    Expect(0, 65306, '\P{Bc=_ CS}', "");
-    Expect(1, 65306, '\P{^Bc=_ CS}', "");
-    Expect(0, 65307, '\p{Bc=_ CS}', "");
-    Expect(1, 65307, '\p{^Bc=_ CS}', "");
-    Expect(1, 65307, '\P{Bc=_ CS}', "");
-    Expect(0, 65307, '\P{^Bc=_ CS}', "");
-    Error('\p{Is_Bidi_Class=_COMMON_Separator/a/}');
-    Error('\P{Is_Bidi_Class=_COMMON_Separator/a/}');
+    Expect(1, 65306, '\p{Bc=		cs}', "");
+    Expect(0, 65306, '\p{^Bc=		cs}', "");
+    Expect(0, 65306, '\P{Bc=		cs}', "");
+    Expect(1, 65306, '\P{^Bc=		cs}', "");
+    Expect(0, 65307, '\p{Bc=		cs}', "");
+    Expect(1, 65307, '\p{^Bc=		cs}', "");
+    Expect(1, 65307, '\P{Bc=		cs}', "");
+    Expect(0, 65307, '\P{^Bc=		cs}', "");
+    Error('\p{Is_Bidi_Class:-/a/Common_Separator}');
+    Error('\P{Is_Bidi_Class:-/a/Common_Separator}');
     Expect(1, 65306, '\p{Is_Bidi_Class=commonseparator}', "");
     Expect(0, 65306, '\p{^Is_Bidi_Class=commonseparator}', "");
     Expect(0, 65306, '\P{Is_Bidi_Class=commonseparator}', "");
@@ -1920,16 +1952,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65307, '\p{^Is_Bidi_Class=commonseparator}', "");
     Expect(1, 65307, '\P{Is_Bidi_Class=commonseparator}', "");
     Expect(0, 65307, '\P{^Is_Bidi_Class=commonseparator}', "");
-    Expect(1, 65306, '\p{Is_Bidi_Class=-	common_Separator}', "");
-    Expect(0, 65306, '\p{^Is_Bidi_Class=-	common_Separator}', "");
-    Expect(0, 65306, '\P{Is_Bidi_Class=-	common_Separator}', "");
-    Expect(1, 65306, '\P{^Is_Bidi_Class=-	common_Separator}', "");
-    Expect(0, 65307, '\p{Is_Bidi_Class=-	common_Separator}', "");
-    Expect(1, 65307, '\p{^Is_Bidi_Class=-	common_Separator}', "");
-    Expect(1, 65307, '\P{Is_Bidi_Class=-	common_Separator}', "");
-    Expect(0, 65307, '\P{^Is_Bidi_Class=-	common_Separator}', "");
-    Error('\p{Is_Bc=_-cs:=}');
-    Error('\P{Is_Bc=_-cs:=}');
+    Expect(1, 65306, '\p{Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(0, 65306, '\p{^Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(0, 65306, '\P{Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(1, 65306, '\P{^Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(0, 65307, '\p{Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(1, 65307, '\p{^Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(1, 65307, '\P{Is_Bidi_Class=	-COMMON_Separator}', "");
+    Expect(0, 65307, '\P{^Is_Bidi_Class=	-COMMON_Separator}', "");
+    Error('\p{Is_Bc:		:=cs}');
+    Error('\P{Is_Bc:		:=cs}');
     Expect(1, 65306, '\p{Is_Bc=cs}', "");
     Expect(0, 65306, '\p{^Is_Bc=cs}', "");
     Expect(0, 65306, '\P{Is_Bc=cs}', "");
@@ -1938,16 +1970,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65307, '\p{^Is_Bc=cs}', "");
     Expect(1, 65307, '\P{Is_Bc=cs}', "");
     Expect(0, 65307, '\P{^Is_Bc=cs}', "");
-    Expect(1, 65306, '\p{Is_Bc=		cs}', "");
-    Expect(0, 65306, '\p{^Is_Bc=		cs}', "");
-    Expect(0, 65306, '\P{Is_Bc=		cs}', "");
-    Expect(1, 65306, '\P{^Is_Bc=		cs}', "");
-    Expect(0, 65307, '\p{Is_Bc=		cs}', "");
-    Expect(1, 65307, '\p{^Is_Bc=		cs}', "");
-    Expect(1, 65307, '\P{Is_Bc=		cs}', "");
-    Expect(0, 65307, '\P{^Is_Bc=		cs}', "");
-    Error('\p{Bidi_Class:-/a/European_Number}');
-    Error('\P{Bidi_Class:-/a/European_Number}');
+    Expect(1, 65306, '\p{Is_Bc=-_CS}', "");
+    Expect(0, 65306, '\p{^Is_Bc=-_CS}', "");
+    Expect(0, 65306, '\P{Is_Bc=-_CS}', "");
+    Expect(1, 65306, '\P{^Is_Bc=-_CS}', "");
+    Expect(0, 65307, '\p{Is_Bc=-_CS}', "");
+    Expect(1, 65307, '\p{^Is_Bc=-_CS}', "");
+    Expect(1, 65307, '\P{Is_Bc=-_CS}', "");
+    Expect(0, 65307, '\P{^Is_Bc=-_CS}', "");
+    Error('\p{Bidi_Class::=		European_number}');
+    Error('\P{Bidi_Class::=		European_number}');
     Expect(1, 130041, '\p{Bidi_Class=:\AEuropean_Number\z:}', "");;
     Expect(0, 130042, '\p{Bidi_Class=:\AEuropean_Number\z:}', "");;
     Expect(1, 130041, '\p{Bidi_Class=europeannumber}', "");
@@ -1960,16 +1992,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130042, '\P{^Bidi_Class=europeannumber}', "");
     Expect(1, 130041, '\p{Bidi_Class=:\Aeuropeannumber\z:}', "");;
     Expect(0, 130042, '\p{Bidi_Class=:\Aeuropeannumber\z:}', "");;
-    Expect(1, 130041, '\p{Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(0, 130041, '\p{^Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(0, 130041, '\P{Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(1, 130041, '\P{^Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(0, 130042, '\p{Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(1, 130042, '\p{^Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(1, 130042, '\P{Bidi_Class=	-EUROPEAN_Number}', "");
-    Expect(0, 130042, '\P{^Bidi_Class=	-EUROPEAN_Number}', "");
-    Error('\p{Bc:		:=en}');
-    Error('\P{Bc:		:=en}');
+    Expect(1, 130041, '\p{Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(0, 130041, '\p{^Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(0, 130041, '\P{Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(1, 130041, '\P{^Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(0, 130042, '\p{Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(1, 130042, '\p{^Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(1, 130042, '\P{Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Expect(0, 130042, '\P{^Bidi_Class=- EUROPEAN_NUMBER}', "");
+    Error('\p{Bc=	:=EN}');
+    Error('\P{Bc=	:=EN}');
     Expect(1, 130041, '\p{Bc=:\AEN\z:}', "");;
     Expect(0, 130042, '\p{Bc=:\AEN\z:}', "");;
     Expect(1, 130041, '\p{Bc=en}', "");
@@ -1982,16 +2014,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130042, '\P{^Bc=en}', "");
     Expect(1, 130041, '\p{Bc=:\Aen\z:}', "");;
     Expect(0, 130042, '\p{Bc=:\Aen\z:}', "");;
-    Expect(1, 130041, '\p{Bc=-_EN}', "");
-    Expect(0, 130041, '\p{^Bc=-_EN}', "");
-    Expect(0, 130041, '\P{Bc=-_EN}', "");
-    Expect(1, 130041, '\P{^Bc=-_EN}', "");
-    Expect(0, 130042, '\p{Bc=-_EN}', "");
-    Expect(1, 130042, '\p{^Bc=-_EN}', "");
-    Expect(1, 130042, '\P{Bc=-_EN}', "");
-    Expect(0, 130042, '\P{^Bc=-_EN}', "");
-    Error('\p{Is_Bidi_Class::=		European_number}');
-    Error('\P{Is_Bidi_Class::=		European_number}');
+    Expect(1, 130041, '\p{Bc=-EN}', "");
+    Expect(0, 130041, '\p{^Bc=-EN}', "");
+    Expect(0, 130041, '\P{Bc=-EN}', "");
+    Expect(1, 130041, '\P{^Bc=-EN}', "");
+    Expect(0, 130042, '\p{Bc=-EN}', "");
+    Expect(1, 130042, '\p{^Bc=-EN}', "");
+    Expect(1, 130042, '\P{Bc=-EN}', "");
+    Expect(0, 130042, '\P{^Bc=-EN}', "");
+    Error('\p{Is_Bidi_Class=:= 	european_number}');
+    Error('\P{Is_Bidi_Class=:= 	european_number}');
     Expect(1, 130041, '\p{Is_Bidi_Class=europeannumber}', "");
     Expect(0, 130041, '\p{^Is_Bidi_Class=europeannumber}', "");
     Expect(0, 130041, '\P{Is_Bidi_Class=europeannumber}', "");
@@ -2000,16 +2032,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130042, '\p{^Is_Bidi_Class=europeannumber}', "");
     Expect(1, 130042, '\P{Is_Bidi_Class=europeannumber}', "");
     Expect(0, 130042, '\P{^Is_Bidi_Class=europeannumber}', "");
-    Expect(1, 130041, '\p{Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(0, 130041, '\p{^Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(0, 130041, '\P{Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(1, 130041, '\P{^Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(0, 130042, '\p{Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(1, 130042, '\p{^Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(1, 130042, '\P{Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Expect(0, 130042, '\P{^Is_Bidi_Class=- EUROPEAN_NUMBER}', "");
-    Error('\p{Is_Bc=	:=EN}');
-    Error('\P{Is_Bc=	:=EN}');
+    Expect(1, 130041, '\p{Is_Bidi_Class=_ european_Number}', "");
+    Expect(0, 130041, '\p{^Is_Bidi_Class=_ european_Number}', "");
+    Expect(0, 130041, '\P{Is_Bidi_Class=_ european_Number}', "");
+    Expect(1, 130041, '\P{^Is_Bidi_Class=_ european_Number}', "");
+    Expect(0, 130042, '\p{Is_Bidi_Class=_ european_Number}', "");
+    Expect(1, 130042, '\p{^Is_Bidi_Class=_ european_Number}', "");
+    Expect(1, 130042, '\P{Is_Bidi_Class=_ european_Number}', "");
+    Expect(0, 130042, '\P{^Is_Bidi_Class=_ european_Number}', "");
+    Error('\p{Is_Bc=-:=EN}');
+    Error('\P{Is_Bc=-:=EN}');
     Expect(1, 130041, '\p{Is_Bc=en}', "");
     Expect(0, 130041, '\p{^Is_Bc=en}', "");
     Expect(0, 130041, '\P{Is_Bc=en}', "");
@@ -2018,16 +2050,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130042, '\p{^Is_Bc=en}', "");
     Expect(1, 130042, '\P{Is_Bc=en}', "");
     Expect(0, 130042, '\P{^Is_Bc=en}', "");
-    Expect(1, 130041, '\p{Is_Bc=-EN}', "");
-    Expect(0, 130041, '\p{^Is_Bc=-EN}', "");
-    Expect(0, 130041, '\P{Is_Bc=-EN}', "");
-    Expect(1, 130041, '\P{^Is_Bc=-EN}', "");
-    Expect(0, 130042, '\p{Is_Bc=-EN}', "");
-    Expect(1, 130042, '\p{^Is_Bc=-EN}', "");
-    Expect(1, 130042, '\P{Is_Bc=-EN}', "");
-    Expect(0, 130042, '\P{^Is_Bc=-EN}', "");
-    Error('\p{Bidi_Class=:= 	european_separator}');
-    Error('\P{Bidi_Class=:= 	european_separator}');
+    Expect(1, 130041, '\p{Is_Bc:-EN}', "");
+    Expect(0, 130041, '\p{^Is_Bc:-EN}', "");
+    Expect(0, 130041, '\P{Is_Bc:-EN}', "");
+    Expect(1, 130041, '\P{^Is_Bc:-EN}', "");
+    Expect(0, 130042, '\p{Is_Bc:-EN}', "");
+    Expect(1, 130042, '\p{^Is_Bc:-EN}', "");
+    Expect(1, 130042, '\P{Is_Bc:-EN}', "");
+    Expect(0, 130042, '\P{^Is_Bc:-EN}', "");
+    Error('\p{Bidi_Class=/a/--European_Separator}');
+    Error('\P{Bidi_Class=/a/--European_Separator}');
     Expect(1, 65293, '\p{Bidi_Class=:\AEuropean_Separator\z:}', "");;
     Expect(0, 65294, '\p{Bidi_Class=:\AEuropean_Separator\z:}', "");;
     Expect(1, 65293, '\p{Bidi_Class=europeanseparator}', "");
@@ -2040,16 +2072,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65294, '\P{^Bidi_Class=europeanseparator}', "");
     Expect(1, 65293, '\p{Bidi_Class=:\Aeuropeanseparator\z:}', "");;
     Expect(0, 65294, '\p{Bidi_Class=:\Aeuropeanseparator\z:}', "");;
-    Expect(1, 65293, '\p{Bidi_Class=_ european_Separator}', "");
-    Expect(0, 65293, '\p{^Bidi_Class=_ european_Separator}', "");
-    Expect(0, 65293, '\P{Bidi_Class=_ european_Separator}', "");
-    Expect(1, 65293, '\P{^Bidi_Class=_ european_Separator}', "");
-    Expect(0, 65294, '\p{Bidi_Class=_ european_Separator}', "");
-    Expect(1, 65294, '\p{^Bidi_Class=_ european_Separator}', "");
-    Expect(1, 65294, '\P{Bidi_Class=_ european_Separator}', "");
-    Expect(0, 65294, '\P{^Bidi_Class=_ european_Separator}', "");
-    Error('\p{Bc=-:=ES}');
-    Error('\P{Bc=-:=ES}');
+    Expect(1, 65293, '\p{Bidi_Class=_European_Separator}', "");
+    Expect(0, 65293, '\p{^Bidi_Class=_European_Separator}', "");
+    Expect(0, 65293, '\P{Bidi_Class=_European_Separator}', "");
+    Expect(1, 65293, '\P{^Bidi_Class=_European_Separator}', "");
+    Expect(0, 65294, '\p{Bidi_Class=_European_Separator}', "");
+    Expect(1, 65294, '\p{^Bidi_Class=_European_Separator}', "");
+    Expect(1, 65294, '\P{Bidi_Class=_European_Separator}', "");
+    Expect(0, 65294, '\P{^Bidi_Class=_European_Separator}', "");
+    Error('\p{Bc= ES/a/}');
+    Error('\P{Bc= ES/a/}');
     Expect(1, 65293, '\p{Bc=:\AES\z:}', "");;
     Expect(0, 65294, '\p{Bc=:\AES\z:}', "");;
     Expect(1, 65293, '\p{Bc=es}', "");
@@ -2062,16 +2094,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65294, '\P{^Bc=es}', "");
     Expect(1, 65293, '\p{Bc=:\Aes\z:}', "");;
     Expect(0, 65294, '\p{Bc=:\Aes\z:}', "");;
-    Expect(1, 65293, '\p{Bc:-ES}', "");
-    Expect(0, 65293, '\p{^Bc:-ES}', "");
-    Expect(0, 65293, '\P{Bc:-ES}', "");
-    Expect(1, 65293, '\P{^Bc:-ES}', "");
-    Expect(0, 65294, '\p{Bc:-ES}', "");
-    Expect(1, 65294, '\p{^Bc:-ES}', "");
-    Expect(1, 65294, '\P{Bc:-ES}', "");
-    Expect(0, 65294, '\P{^Bc:-ES}', "");
-    Error('\p{Is_Bidi_Class=/a/--European_Separator}');
-    Error('\P{Is_Bidi_Class=/a/--European_Separator}');
+    Expect(1, 65293, '\p{Bc=_ES}', "");
+    Expect(0, 65293, '\p{^Bc=_ES}', "");
+    Expect(0, 65293, '\P{Bc=_ES}', "");
+    Expect(1, 65293, '\P{^Bc=_ES}', "");
+    Expect(0, 65294, '\p{Bc=_ES}', "");
+    Expect(1, 65294, '\p{^Bc=_ES}', "");
+    Expect(1, 65294, '\P{Bc=_ES}', "");
+    Expect(0, 65294, '\P{^Bc=_ES}', "");
+    Error('\p{Is_Bidi_Class=- European_Separator/a/}');
+    Error('\P{Is_Bidi_Class=- European_Separator/a/}');
     Expect(1, 65293, '\p{Is_Bidi_Class=europeanseparator}', "");
     Expect(0, 65293, '\p{^Is_Bidi_Class=europeanseparator}', "");
     Expect(0, 65293, '\P{Is_Bidi_Class=europeanseparator}', "");
@@ -2080,16 +2112,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65294, '\p{^Is_Bidi_Class=europeanseparator}', "");
     Expect(1, 65294, '\P{Is_Bidi_Class=europeanseparator}', "");
     Expect(0, 65294, '\P{^Is_Bidi_Class=europeanseparator}', "");
-    Expect(1, 65293, '\p{Is_Bidi_Class=_European_Separator}', "");
-    Expect(0, 65293, '\p{^Is_Bidi_Class=_European_Separator}', "");
-    Expect(0, 65293, '\P{Is_Bidi_Class=_European_Separator}', "");
-    Expect(1, 65293, '\P{^Is_Bidi_Class=_European_Separator}', "");
-    Expect(0, 65294, '\p{Is_Bidi_Class=_European_Separator}', "");
-    Expect(1, 65294, '\p{^Is_Bidi_Class=_European_Separator}', "");
-    Expect(1, 65294, '\P{Is_Bidi_Class=_European_Separator}', "");
-    Expect(0, 65294, '\P{^Is_Bidi_Class=_European_Separator}', "");
-    Error('\p{Is_Bc= ES/a/}');
-    Error('\P{Is_Bc= ES/a/}');
+    Expect(1, 65293, '\p{Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(0, 65293, '\p{^Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(0, 65293, '\P{Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(1, 65293, '\P{^Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(0, 65294, '\p{Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(1, 65294, '\p{^Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(1, 65294, '\P{Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Expect(0, 65294, '\P{^Is_Bidi_Class:   	-EUROPEAN_Separator}', "");
+    Error('\p{Is_Bc=-/a/ES}');
+    Error('\P{Is_Bc=-/a/ES}');
     Expect(1, 65293, '\p{Is_Bc=es}', "");
     Expect(0, 65293, '\p{^Is_Bc=es}', "");
     Expect(0, 65293, '\P{Is_Bc=es}', "");
@@ -2098,16 +2130,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65294, '\p{^Is_Bc=es}', "");
     Expect(1, 65294, '\P{Is_Bc=es}', "");
     Expect(0, 65294, '\P{^Is_Bc=es}', "");
-    Expect(1, 65293, '\p{Is_Bc=_ES}', "");
-    Expect(0, 65293, '\p{^Is_Bc=_ES}', "");
-    Expect(0, 65293, '\P{Is_Bc=_ES}', "");
-    Expect(1, 65293, '\P{^Is_Bc=_ES}', "");
-    Expect(0, 65294, '\p{Is_Bc=_ES}', "");
-    Expect(1, 65294, '\p{^Is_Bc=_ES}', "");
-    Expect(1, 65294, '\P{Is_Bc=_ES}', "");
-    Expect(0, 65294, '\P{^Is_Bc=_ES}', "");
-    Error('\p{Bidi_Class=- European_Terminator/a/}');
-    Error('\P{Bidi_Class=- European_Terminator/a/}');
+    Expect(1, 65293, '\p{Is_Bc=- ES}', "");
+    Expect(0, 65293, '\p{^Is_Bc=- ES}', "");
+    Expect(0, 65293, '\P{Is_Bc=- ES}', "");
+    Expect(1, 65293, '\P{^Is_Bc=- ES}', "");
+    Expect(0, 65294, '\p{Is_Bc=- ES}', "");
+    Expect(1, 65294, '\p{^Is_Bc=- ES}', "");
+    Expect(1, 65294, '\P{Is_Bc=- ES}', "");
+    Expect(0, 65294, '\P{^Is_Bc=- ES}', "");
+    Error('\p{Bidi_Class=_European_TERMINATOR:=}');
+    Error('\P{Bidi_Class=_European_TERMINATOR:=}');
     Expect(1, 123647, '\p{Bidi_Class=:\AEuropean_Terminator\z:}', "");;
     Expect(0, 123648, '\p{Bidi_Class=:\AEuropean_Terminator\z:}', "");;
     Expect(1, 123647, '\p{Bidi_Class=europeanterminator}', "");
@@ -2120,16 +2152,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123648, '\P{^Bidi_Class=europeanterminator}', "");
     Expect(1, 123647, '\p{Bidi_Class=:\Aeuropeanterminator\z:}', "");;
     Expect(0, 123648, '\p{Bidi_Class=:\Aeuropeanterminator\z:}', "");;
-    Expect(1, 123647, '\p{Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(0, 123647, '\p{^Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(0, 123647, '\P{Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(1, 123647, '\P{^Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(0, 123648, '\p{Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(1, 123648, '\p{^Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(1, 123648, '\P{Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Expect(0, 123648, '\P{^Bidi_Class:   	-EUROPEAN_Terminator}', "");
-    Error('\p{Bc=-/a/ET}');
-    Error('\P{Bc=-/a/ET}');
+    Expect(1, 123647, '\p{Bidi_Class:	_	European_Terminator}', "");
+    Expect(0, 123647, '\p{^Bidi_Class:	_	European_Terminator}', "");
+    Expect(0, 123647, '\P{Bidi_Class:	_	European_Terminator}', "");
+    Expect(1, 123647, '\P{^Bidi_Class:	_	European_Terminator}', "");
+    Expect(0, 123648, '\p{Bidi_Class:	_	European_Terminator}', "");
+    Expect(1, 123648, '\p{^Bidi_Class:	_	European_Terminator}', "");
+    Expect(1, 123648, '\P{Bidi_Class:	_	European_Terminator}', "");
+    Expect(0, 123648, '\P{^Bidi_Class:	_	European_Terminator}', "");
+    Error('\p{Bc=:=__ET}');
+    Error('\P{Bc=:=__ET}');
     Expect(1, 123647, '\p{Bc=:\AET\z:}', "");;
     Expect(0, 123648, '\p{Bc=:\AET\z:}', "");;
     Expect(1, 123647, '\p{Bc=et}', "");
@@ -2142,16 +2174,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123648, '\P{^Bc=et}', "");
     Expect(1, 123647, '\p{Bc=:\Aet\z:}', "");;
     Expect(0, 123648, '\p{Bc=:\Aet\z:}', "");;
-    Expect(1, 123647, '\p{Bc=- ET}', "");
-    Expect(0, 123647, '\p{^Bc=- ET}', "");
-    Expect(0, 123647, '\P{Bc=- ET}', "");
-    Expect(1, 123647, '\P{^Bc=- ET}', "");
-    Expect(0, 123648, '\p{Bc=- ET}', "");
-    Expect(1, 123648, '\p{^Bc=- ET}', "");
-    Expect(1, 123648, '\P{Bc=- ET}', "");
-    Expect(0, 123648, '\P{^Bc=- ET}', "");
-    Error('\p{Is_Bidi_Class=_European_TERMINATOR:=}');
-    Error('\P{Is_Bidi_Class=_European_TERMINATOR:=}');
+    Expect(1, 123647, '\p{Bc=-ET}', "");
+    Expect(0, 123647, '\p{^Bc=-ET}', "");
+    Expect(0, 123647, '\P{Bc=-ET}', "");
+    Expect(1, 123647, '\P{^Bc=-ET}', "");
+    Expect(0, 123648, '\p{Bc=-ET}', "");
+    Expect(1, 123648, '\p{^Bc=-ET}', "");
+    Expect(1, 123648, '\P{Bc=-ET}', "");
+    Expect(0, 123648, '\P{^Bc=-ET}', "");
+    Error('\p{Is_Bidi_Class=_:=European_terminator}');
+    Error('\P{Is_Bidi_Class=_:=European_terminator}');
     Expect(1, 123647, '\p{Is_Bidi_Class=europeanterminator}', "");
     Expect(0, 123647, '\p{^Is_Bidi_Class=europeanterminator}', "");
     Expect(0, 123647, '\P{Is_Bidi_Class=europeanterminator}', "");
@@ -2160,16 +2192,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 123648, '\p{^Is_Bidi_Class=europeanterminator}', "");
     Expect(1, 123648, '\P{Is_Bidi_Class=europeanterminator}', "");
     Expect(0, 123648, '\P{^Is_Bidi_Class=europeanterminator}', "");
-    Expect(1, 123647, '\p{Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(0, 123647, '\p{^Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(0, 123647, '\P{Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(1, 123647, '\P{^Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(0, 123648, '\p{Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(1, 123648, '\p{^Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(1, 123648, '\P{Is_Bidi_Class:	_	European_Terminator}', "");
-    Expect(0, 123648, '\P{^Is_Bidi_Class:	_	European_Terminator}', "");
-    Error('\p{Is_Bc=:=__ET}');
-    Error('\P{Is_Bc=:=__ET}');
+    Expect(1, 123647, '\p{Is_Bidi_Class= European_terminator}', "");
+    Expect(0, 123647, '\p{^Is_Bidi_Class= European_terminator}', "");
+    Expect(0, 123647, '\P{Is_Bidi_Class= European_terminator}', "");
+    Expect(1, 123647, '\P{^Is_Bidi_Class= European_terminator}', "");
+    Expect(0, 123648, '\p{Is_Bidi_Class= European_terminator}', "");
+    Expect(1, 123648, '\p{^Is_Bidi_Class= European_terminator}', "");
+    Expect(1, 123648, '\P{Is_Bidi_Class= European_terminator}', "");
+    Expect(0, 123648, '\P{^Is_Bidi_Class= European_terminator}', "");
+    Error('\p{Is_Bc=:=ET}');
+    Error('\P{Is_Bc=:=ET}');
     Expect(1, 123647, '\p{Is_Bc=et}', "");
     Expect(0, 123647, '\p{^Is_Bc=et}', "");
     Expect(0, 123647, '\P{Is_Bc=et}', "");
@@ -2178,16 +2210,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 123648, '\p{^Is_Bc=et}', "");
     Expect(1, 123648, '\P{Is_Bc=et}', "");
     Expect(0, 123648, '\P{^Is_Bc=et}', "");
-    Expect(1, 123647, '\p{Is_Bc=-ET}', "");
-    Expect(0, 123647, '\p{^Is_Bc=-ET}', "");
-    Expect(0, 123647, '\P{Is_Bc=-ET}', "");
-    Expect(1, 123647, '\P{^Is_Bc=-ET}', "");
-    Expect(0, 123648, '\p{Is_Bc=-ET}', "");
-    Expect(1, 123648, '\p{^Is_Bc=-ET}', "");
-    Expect(1, 123648, '\P{Is_Bc=-ET}', "");
-    Expect(0, 123648, '\P{^Is_Bc=-ET}', "");
-    Error('\p{Bidi_Class=	-First_strong_ISOLATE:=}');
-    Error('\P{Bidi_Class=	-First_strong_ISOLATE:=}');
+    Expect(1, 123647, '\p{Is_Bc: _	et}', "");
+    Expect(0, 123647, '\p{^Is_Bc: _	et}', "");
+    Expect(0, 123647, '\P{Is_Bc: _	et}', "");
+    Expect(1, 123647, '\P{^Is_Bc: _	et}', "");
+    Expect(0, 123648, '\p{Is_Bc: _	et}', "");
+    Expect(1, 123648, '\p{^Is_Bc: _	et}', "");
+    Expect(1, 123648, '\P{Is_Bc: _	et}', "");
+    Expect(0, 123648, '\P{^Is_Bc: _	et}', "");
+    Error('\p{Bidi_Class: _:=First_Strong_Isolate}');
+    Error('\P{Bidi_Class: _:=First_Strong_Isolate}');
     Expect(1, 8296, '\p{Bidi_Class=:\AFirst_Strong_Isolate\z:}', "");;
     Expect(0, 8297, '\p{Bidi_Class=:\AFirst_Strong_Isolate\z:}', "");;
     Expect(1, 8296, '\p{Bidi_Class=firststrongisolate}', "");
@@ -2200,16 +2232,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8297, '\P{^Bidi_Class=firststrongisolate}', "");
     Expect(1, 8296, '\p{Bidi_Class=:\Afirststrongisolate\z:}', "");;
     Expect(0, 8297, '\p{Bidi_Class=:\Afirststrongisolate\z:}', "");;
-    Expect(1, 8296, '\p{Bidi_Class=First_Strong_Isolate}', "");
-    Expect(0, 8296, '\p{^Bidi_Class=First_Strong_Isolate}', "");
-    Expect(0, 8296, '\P{Bidi_Class=First_Strong_Isolate}', "");
-    Expect(1, 8296, '\P{^Bidi_Class=First_Strong_Isolate}', "");
-    Expect(0, 8297, '\p{Bidi_Class=First_Strong_Isolate}', "");
-    Expect(1, 8297, '\p{^Bidi_Class=First_Strong_Isolate}', "");
-    Expect(1, 8297, '\P{Bidi_Class=First_Strong_Isolate}', "");
-    Expect(0, 8297, '\P{^Bidi_Class=First_Strong_Isolate}', "");
-    Error('\p{Bc=/a/		FSI}');
-    Error('\P{Bc=/a/		FSI}');
+    Expect(1, 8296, '\p{Bidi_Class=_First_strong_Isolate}', "");
+    Expect(0, 8296, '\p{^Bidi_Class=_First_strong_Isolate}', "");
+    Expect(0, 8296, '\P{Bidi_Class=_First_strong_Isolate}', "");
+    Expect(1, 8296, '\P{^Bidi_Class=_First_strong_Isolate}', "");
+    Expect(0, 8297, '\p{Bidi_Class=_First_strong_Isolate}', "");
+    Expect(1, 8297, '\p{^Bidi_Class=_First_strong_Isolate}', "");
+    Expect(1, 8297, '\P{Bidi_Class=_First_strong_Isolate}', "");
+    Expect(0, 8297, '\P{^Bidi_Class=_First_strong_Isolate}', "");
+    Error('\p{Bc:  -FSI/a/}');
+    Error('\P{Bc:  -FSI/a/}');
     Expect(1, 8296, '\p{Bc=:\AFSI\z:}', "");;
     Expect(0, 8297, '\p{Bc=:\AFSI\z:}', "");;
     Expect(1, 8296, '\p{Bc=fsi}', "");
@@ -2222,16 +2254,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8297, '\P{^Bc=fsi}', "");
     Expect(1, 8296, '\p{Bc=:\Afsi\z:}', "");;
     Expect(0, 8297, '\p{Bc=:\Afsi\z:}', "");;
-    Expect(1, 8296, '\p{Bc=__FSI}', "");
-    Expect(0, 8296, '\p{^Bc=__FSI}', "");
-    Expect(0, 8296, '\P{Bc=__FSI}', "");
-    Expect(1, 8296, '\P{^Bc=__FSI}', "");
-    Expect(0, 8297, '\p{Bc=__FSI}', "");
-    Expect(1, 8297, '\p{^Bc=__FSI}', "");
-    Expect(1, 8297, '\P{Bc=__FSI}', "");
-    Expect(0, 8297, '\P{^Bc=__FSI}', "");
-    Error('\p{Is_Bidi_Class=-:=First_strong_isolate}');
-    Error('\P{Is_Bidi_Class=-:=First_strong_isolate}');
+    Expect(1, 8296, '\p{Bc=	 FSI}', "");
+    Expect(0, 8296, '\p{^Bc=	 FSI}', "");
+    Expect(0, 8296, '\P{Bc=	 FSI}', "");
+    Expect(1, 8296, '\P{^Bc=	 FSI}', "");
+    Expect(0, 8297, '\p{Bc=	 FSI}', "");
+    Expect(1, 8297, '\p{^Bc=	 FSI}', "");
+    Expect(1, 8297, '\P{Bc=	 FSI}', "");
+    Expect(0, 8297, '\P{^Bc=	 FSI}', "");
+    Error('\p{Is_Bidi_Class=-/a/first_Strong_Isolate}');
+    Error('\P{Is_Bidi_Class=-/a/first_Strong_Isolate}');
     Expect(1, 8296, '\p{Is_Bidi_Class=firststrongisolate}', "");
     Expect(0, 8296, '\p{^Is_Bidi_Class=firststrongisolate}', "");
     Expect(0, 8296, '\P{Is_Bidi_Class=firststrongisolate}', "");
@@ -2248,8 +2280,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8297, '\p{^Is_Bidi_Class=  First_STRONG_Isolate}', "");
     Expect(1, 8297, '\P{Is_Bidi_Class=  First_STRONG_Isolate}', "");
     Expect(0, 8297, '\P{^Is_Bidi_Class=  First_STRONG_Isolate}', "");
-    Error('\p{Is_Bc: _ fsi/a/}');
-    Error('\P{Is_Bc: _ fsi/a/}');
+    Error('\p{Is_Bc=	/a/FSI}');
+    Error('\P{Is_Bc=	/a/FSI}');
     Expect(1, 8296, '\p{Is_Bc=fsi}', "");
     Expect(0, 8296, '\p{^Is_Bc=fsi}', "");
     Expect(0, 8296, '\P{Is_Bc=fsi}', "");
@@ -2258,16 +2290,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8297, '\p{^Is_Bc=fsi}', "");
     Expect(1, 8297, '\P{Is_Bc=fsi}', "");
     Expect(0, 8297, '\P{^Is_Bc=fsi}', "");
-    Expect(1, 8296, '\p{Is_Bc=		FSI}', "");
-    Expect(0, 8296, '\p{^Is_Bc=		FSI}', "");
-    Expect(0, 8296, '\P{Is_Bc=		FSI}', "");
-    Expect(1, 8296, '\P{^Is_Bc=		FSI}', "");
-    Expect(0, 8297, '\p{Is_Bc=		FSI}', "");
-    Expect(1, 8297, '\p{^Is_Bc=		FSI}', "");
-    Expect(1, 8297, '\P{Is_Bc=		FSI}', "");
-    Expect(0, 8297, '\P{^Is_Bc=		FSI}', "");
-    Error('\p{Bidi_Class= :=LEFT_TO_RIGHT}');
-    Error('\P{Bidi_Class= :=LEFT_TO_RIGHT}');
+    Expect(1, 8296, '\p{Is_Bc=	FSI}', "");
+    Expect(0, 8296, '\p{^Is_Bc=	FSI}', "");
+    Expect(0, 8296, '\P{Is_Bc=	FSI}', "");
+    Expect(1, 8296, '\P{^Is_Bc=	FSI}', "");
+    Expect(0, 8297, '\p{Is_Bc=	FSI}', "");
+    Expect(1, 8297, '\p{^Is_Bc=	FSI}', "");
+    Expect(1, 8297, '\P{Is_Bc=	FSI}', "");
+    Expect(0, 8297, '\P{^Is_Bc=	FSI}', "");
+    Error('\p{Bidi_Class=	/a/Left_TO_Right}');
+    Error('\P{Bidi_Class=	/a/Left_TO_Right}');
     Expect(1, 1114109, '\p{Bidi_Class=:\ALeft_To_Right\z:}', "");;
     Expect(0, 921599, '\p{Bidi_Class=:\ALeft_To_Right\z:}', "");;
     Expect(1, 1114109, '\p{Bidi_Class=lefttoright}', "");
@@ -2280,38 +2312,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 921599, '\P{^Bidi_Class=lefttoright}', "");
     Expect(1, 1114109, '\p{Bidi_Class=:\Alefttoright\z:}', "");;
     Expect(0, 921599, '\p{Bidi_Class=:\Alefttoright\z:}', "");;
-    Expect(1, 1114109, '\p{Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(0, 1114109, '\p{^Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(0, 1114109, '\P{Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(1, 1114109, '\P{^Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(0, 921599, '\p{Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(1, 921599, '\p{^Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(1, 921599, '\P{Bidi_Class=_	LEFT_To_Right}', "");
-    Expect(0, 921599, '\P{^Bidi_Class=_	LEFT_To_Right}', "");
-    Error('\p{Bc: 	l:=}');
-    Error('\P{Bc: 	l:=}');
+    Expect(1, 1114109, '\p{Bidi_Class=_-Left_TO_Right}', "");
+    Expect(0, 1114109, '\p{^Bidi_Class=_-Left_TO_Right}', "");
+    Expect(0, 1114109, '\P{Bidi_Class=_-Left_TO_Right}', "");
+    Expect(1, 1114109, '\P{^Bidi_Class=_-Left_TO_Right}', "");
+    Expect(0, 921599, '\p{Bidi_Class=_-Left_TO_Right}', "");
+    Expect(1, 921599, '\p{^Bidi_Class=_-Left_TO_Right}', "");
+    Expect(1, 921599, '\P{Bidi_Class=_-Left_TO_Right}', "");
+    Expect(0, 921599, '\P{^Bidi_Class=_-Left_TO_Right}', "");
+    Error('\p{Bc=	/a/l}');
+    Error('\P{Bc=	/a/l}');
     Expect(1, 1114109, '\p{Bc=:\AL\z:}', "");;
     Expect(0, 921599, '\p{Bc=:\AL\z:}', "");;
-    Expect(1, 1114109, '\p{Bc: l}', "");
-    Expect(0, 1114109, '\p{^Bc: l}', "");
-    Expect(0, 1114109, '\P{Bc: l}', "");
-    Expect(1, 1114109, '\P{^Bc: l}', "");
-    Expect(0, 921599, '\p{Bc: l}', "");
-    Expect(1, 921599, '\p{^Bc: l}', "");
-    Expect(1, 921599, '\P{Bc: l}', "");
-    Expect(0, 921599, '\P{^Bc: l}', "");
+    Expect(1, 1114109, '\p{Bc=l}', "");
+    Expect(0, 1114109, '\p{^Bc=l}', "");
+    Expect(0, 1114109, '\P{Bc=l}', "");
+    Expect(1, 1114109, '\P{^Bc=l}', "");
+    Expect(0, 921599, '\p{Bc=l}', "");
+    Expect(1, 921599, '\p{^Bc=l}', "");
+    Expect(1, 921599, '\P{Bc=l}', "");
+    Expect(0, 921599, '\P{^Bc=l}', "");
     Expect(1, 1114109, '\p{Bc=:\Al\z:}', "");;
     Expect(0, 921599, '\p{Bc=:\Al\z:}', "");;
-    Expect(1, 1114109, '\p{Bc=  l}', "");
-    Expect(0, 1114109, '\p{^Bc=  l}', "");
-    Expect(0, 1114109, '\P{Bc=  l}', "");
-    Expect(1, 1114109, '\P{^Bc=  l}', "");
-    Expect(0, 921599, '\p{Bc=  l}', "");
-    Expect(1, 921599, '\p{^Bc=  l}', "");
-    Expect(1, 921599, '\P{Bc=  l}', "");
-    Expect(0, 921599, '\P{^Bc=  l}', "");
-    Error('\p{Is_Bidi_Class=-left_To_right/a/}');
-    Error('\P{Is_Bidi_Class=-left_To_right/a/}');
+    Expect(1, 1114109, '\p{Bc:   - L}', "");
+    Expect(0, 1114109, '\p{^Bc:   - L}', "");
+    Expect(0, 1114109, '\P{Bc:   - L}', "");
+    Expect(1, 1114109, '\P{^Bc:   - L}', "");
+    Expect(0, 921599, '\p{Bc:   - L}', "");
+    Expect(1, 921599, '\p{^Bc:   - L}', "");
+    Expect(1, 921599, '\P{Bc:   - L}', "");
+    Expect(0, 921599, '\P{^Bc:   - L}', "");
+    Error('\p{Is_Bidi_Class=	/a/Left_To_right}');
+    Error('\P{Is_Bidi_Class=	/a/Left_To_right}');
     Expect(1, 1114109, '\p{Is_Bidi_Class=lefttoright}', "");
     Expect(0, 1114109, '\p{^Is_Bidi_Class=lefttoright}', "");
     Expect(0, 1114109, '\P{Is_Bidi_Class=lefttoright}', "");
@@ -2320,16 +2352,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921599, '\p{^Is_Bidi_Class=lefttoright}', "");
     Expect(1, 921599, '\P{Is_Bidi_Class=lefttoright}', "");
     Expect(0, 921599, '\P{^Is_Bidi_Class=lefttoright}', "");
-    Expect(1, 1114109, '\p{Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(0, 1114109, '\p{^Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(0, 1114109, '\P{Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(1, 1114109, '\P{^Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(0, 921599, '\p{Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(1, 921599, '\p{^Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(1, 921599, '\P{Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Expect(0, 921599, '\P{^Is_Bidi_Class=--LEFT_To_RIGHT}', "");
-    Error('\p{Is_Bc:	-L:=}');
-    Error('\P{Is_Bc:	-L:=}');
+    Expect(1, 1114109, '\p{Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(0, 1114109, '\p{^Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(0, 1114109, '\P{Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(1, 1114109, '\P{^Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(0, 921599, '\p{Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(1, 921599, '\p{^Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(1, 921599, '\P{Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Expect(0, 921599, '\P{^Is_Bidi_Class=	LEFT_TO_Right}', "");
+    Error('\p{Is_Bc=_/a/L}');
+    Error('\P{Is_Bc=_/a/L}');
     Expect(1, 1114109, '\p{Is_Bc=l}', "");
     Expect(0, 1114109, '\p{^Is_Bc=l}', "");
     Expect(0, 1114109, '\P{Is_Bc=l}', "");
@@ -2338,16 +2370,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921599, '\p{^Is_Bc=l}', "");
     Expect(1, 921599, '\P{Is_Bc=l}', "");
     Expect(0, 921599, '\P{^Is_Bc=l}', "");
-    Expect(1, 1114109, '\p{Is_Bc=--L}', "");
-    Expect(0, 1114109, '\p{^Is_Bc=--L}', "");
-    Expect(0, 1114109, '\P{Is_Bc=--L}', "");
-    Expect(1, 1114109, '\P{^Is_Bc=--L}', "");
-    Expect(0, 921599, '\p{Is_Bc=--L}', "");
-    Expect(1, 921599, '\p{^Is_Bc=--L}', "");
-    Expect(1, 921599, '\P{Is_Bc=--L}', "");
-    Expect(0, 921599, '\P{^Is_Bc=--L}', "");
-    Error('\p{Bidi_Class= 	Left_To_Right_Embedding:=}');
-    Error('\P{Bidi_Class= 	Left_To_Right_Embedding:=}');
+    Expect(1, 1114109, '\p{Is_Bc=	L}', "");
+    Expect(0, 1114109, '\p{^Is_Bc=	L}', "");
+    Expect(0, 1114109, '\P{Is_Bc=	L}', "");
+    Expect(1, 1114109, '\P{^Is_Bc=	L}', "");
+    Expect(0, 921599, '\p{Is_Bc=	L}', "");
+    Expect(1, 921599, '\p{^Is_Bc=	L}', "");
+    Expect(1, 921599, '\P{Is_Bc=	L}', "");
+    Expect(0, 921599, '\P{^Is_Bc=	L}', "");
+    Error('\p{Bidi_Class:   /a/-left_to_Right_Embedding}');
+    Error('\P{Bidi_Class:   /a/-left_to_Right_Embedding}');
     Expect(1, 8234, '\p{Bidi_Class=:\ALeft_To_Right_Embedding\z:}', "");;
     Expect(0, 8235, '\p{Bidi_Class=:\ALeft_To_Right_Embedding\z:}', "");;
     Expect(1, 8234, '\p{Bidi_Class=lefttorightembedding}', "");
@@ -2360,38 +2392,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8235, '\P{^Bidi_Class=lefttorightembedding}', "");
     Expect(1, 8234, '\p{Bidi_Class=:\Alefttorightembedding\z:}', "");;
     Expect(0, 8235, '\p{Bidi_Class=:\Alefttorightembedding\z:}', "");;
-    Expect(1, 8234, '\p{Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(0, 8234, '\p{^Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(0, 8234, '\P{Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(1, 8234, '\P{^Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(0, 8235, '\p{Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(1, 8235, '\p{^Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(1, 8235, '\P{Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Expect(0, 8235, '\P{^Bidi_Class=  LEFT_To_Right_EMBEDDING}', "");
-    Error('\p{Bc=--LRE:=}');
-    Error('\P{Bc=--LRE:=}');
+    Expect(1, 8234, '\p{Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(0, 8234, '\p{^Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(0, 8234, '\P{Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(1, 8234, '\P{^Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(0, 8235, '\p{Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(1, 8235, '\p{^Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(1, 8235, '\P{Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Expect(0, 8235, '\P{^Bidi_Class= _left_To_RIGHT_EMBEDDING}', "");
+    Error('\p{Bc= :=LRE}');
+    Error('\P{Bc= :=LRE}');
     Expect(1, 8234, '\p{Bc=:\ALRE\z:}', "");;
     Expect(0, 8235, '\p{Bc=:\ALRE\z:}', "");;
-    Expect(1, 8234, '\p{Bc:lre}', "");
-    Expect(0, 8234, '\p{^Bc:lre}', "");
-    Expect(0, 8234, '\P{Bc:lre}', "");
-    Expect(1, 8234, '\P{^Bc:lre}', "");
-    Expect(0, 8235, '\p{Bc:lre}', "");
-    Expect(1, 8235, '\p{^Bc:lre}', "");
-    Expect(1, 8235, '\P{Bc:lre}', "");
-    Expect(0, 8235, '\P{^Bc:lre}', "");
+    Expect(1, 8234, '\p{Bc=lre}', "");
+    Expect(0, 8234, '\p{^Bc=lre}', "");
+    Expect(0, 8234, '\P{Bc=lre}', "");
+    Expect(1, 8234, '\P{^Bc=lre}', "");
+    Expect(0, 8235, '\p{Bc=lre}', "");
+    Expect(1, 8235, '\p{^Bc=lre}', "");
+    Expect(1, 8235, '\P{Bc=lre}', "");
+    Expect(0, 8235, '\P{^Bc=lre}', "");
     Expect(1, 8234, '\p{Bc=:\Alre\z:}', "");;
     Expect(0, 8235, '\p{Bc=:\Alre\z:}', "");;
-    Expect(1, 8234, '\p{Bc=--lre}', "");
-    Expect(0, 8234, '\p{^Bc=--lre}', "");
-    Expect(0, 8234, '\P{Bc=--lre}', "");
-    Expect(1, 8234, '\P{^Bc=--lre}', "");
-    Expect(0, 8235, '\p{Bc=--lre}', "");
-    Expect(1, 8235, '\p{^Bc=--lre}', "");
-    Expect(1, 8235, '\P{Bc=--lre}', "");
-    Expect(0, 8235, '\P{^Bc=--lre}', "");
-    Error('\p{Is_Bidi_Class=:=  LEFT_to_RIGHT_Embedding}');
-    Error('\P{Is_Bidi_Class=:=  LEFT_to_RIGHT_Embedding}');
+    Expect(1, 8234, '\p{Bc=_ LRE}', "");
+    Expect(0, 8234, '\p{^Bc=_ LRE}', "");
+    Expect(0, 8234, '\P{Bc=_ LRE}', "");
+    Expect(1, 8234, '\P{^Bc=_ LRE}', "");
+    Expect(0, 8235, '\p{Bc=_ LRE}', "");
+    Expect(1, 8235, '\p{^Bc=_ LRE}', "");
+    Expect(1, 8235, '\P{Bc=_ LRE}', "");
+    Expect(0, 8235, '\P{^Bc=_ LRE}', "");
+    Error('\p{Is_Bidi_Class=/a/LEFT_To_RIGHT_embedding}');
+    Error('\P{Is_Bidi_Class=/a/LEFT_To_RIGHT_embedding}');
     Expect(1, 8234, '\p{Is_Bidi_Class=lefttorightembedding}', "");
     Expect(0, 8234, '\p{^Is_Bidi_Class=lefttorightembedding}', "");
     Expect(0, 8234, '\P{Is_Bidi_Class=lefttorightembedding}', "");
@@ -2400,16 +2432,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8235, '\p{^Is_Bidi_Class=lefttorightembedding}', "");
     Expect(1, 8235, '\P{Is_Bidi_Class=lefttorightembedding}', "");
     Expect(0, 8235, '\P{^Is_Bidi_Class=lefttorightembedding}', "");
-    Expect(1, 8234, '\p{Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(0, 8234, '\p{^Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(0, 8234, '\P{Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(1, 8234, '\P{^Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(0, 8235, '\p{Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(1, 8235, '\p{^Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(1, 8235, '\P{Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Expect(0, 8235, '\P{^Is_Bidi_Class:		LEFT_TO_Right_embedding}', "");
-    Error('\p{Is_Bc=/a/lre}');
-    Error('\P{Is_Bc=/a/lre}');
+    Expect(1, 8234, '\p{Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(0, 8234, '\p{^Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(0, 8234, '\P{Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(1, 8234, '\P{^Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(0, 8235, '\p{Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(1, 8235, '\p{^Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(1, 8235, '\P{Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Expect(0, 8235, '\P{^Is_Bidi_Class=_Left_To_Right_Embedding}', "");
+    Error('\p{Is_Bc: _:=LRE}');
+    Error('\P{Is_Bc: _:=LRE}');
     Expect(1, 8234, '\p{Is_Bc=lre}', "");
     Expect(0, 8234, '\p{^Is_Bc=lre}', "");
     Expect(0, 8234, '\P{Is_Bc=lre}', "");
@@ -2418,16 +2450,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8235, '\p{^Is_Bc=lre}', "");
     Expect(1, 8235, '\P{Is_Bc=lre}', "");
     Expect(0, 8235, '\P{^Is_Bc=lre}', "");
-    Expect(1, 8234, '\p{Is_Bc=__LRE}', "");
-    Expect(0, 8234, '\p{^Is_Bc=__LRE}', "");
-    Expect(0, 8234, '\P{Is_Bc=__LRE}', "");
-    Expect(1, 8234, '\P{^Is_Bc=__LRE}', "");
-    Expect(0, 8235, '\p{Is_Bc=__LRE}', "");
-    Expect(1, 8235, '\p{^Is_Bc=__LRE}', "");
-    Expect(1, 8235, '\P{Is_Bc=__LRE}', "");
-    Expect(0, 8235, '\P{^Is_Bc=__LRE}', "");
-    Error('\p{Bidi_Class=_:=Left_To_right_Isolate}');
-    Error('\P{Bidi_Class=_:=Left_To_right_Isolate}');
+    Expect(1, 8234, '\p{Is_Bc= _lre}', "");
+    Expect(0, 8234, '\p{^Is_Bc= _lre}', "");
+    Expect(0, 8234, '\P{Is_Bc= _lre}', "");
+    Expect(1, 8234, '\P{^Is_Bc= _lre}', "");
+    Expect(0, 8235, '\p{Is_Bc= _lre}', "");
+    Expect(1, 8235, '\p{^Is_Bc= _lre}', "");
+    Expect(1, 8235, '\P{Is_Bc= _lre}', "");
+    Expect(0, 8235, '\P{^Is_Bc= _lre}', "");
+    Error('\p{Bidi_Class=-:=left_To_right_ISOLATE}');
+    Error('\P{Bidi_Class=-:=left_To_right_ISOLATE}');
     Expect(1, 8294, '\p{Bidi_Class=:\ALeft_To_Right_Isolate\z:}', "");;
     Expect(0, 8295, '\p{Bidi_Class=:\ALeft_To_Right_Isolate\z:}', "");;
     Expect(1, 8294, '\p{Bidi_Class=lefttorightisolate}', "");
@@ -2440,16 +2472,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8295, '\P{^Bidi_Class=lefttorightisolate}', "");
     Expect(1, 8294, '\p{Bidi_Class=:\Alefttorightisolate\z:}', "");;
     Expect(0, 8295, '\p{Bidi_Class=:\Alefttorightisolate\z:}', "");;
-    Expect(1, 8294, '\p{Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(0, 8294, '\p{^Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(0, 8294, '\P{Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(1, 8294, '\P{^Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(0, 8295, '\p{Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(1, 8295, '\p{^Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(1, 8295, '\P{Bidi_Class=--left_To_right_ISOLATE}', "");
-    Expect(0, 8295, '\P{^Bidi_Class=--left_To_right_ISOLATE}', "");
-    Error('\p{Bc: -:=LRI}');
-    Error('\P{Bc: -:=LRI}');
+    Expect(1, 8294, '\p{Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(0, 8294, '\p{^Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(0, 8294, '\P{Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(1, 8294, '\P{^Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(0, 8295, '\p{Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(1, 8295, '\p{^Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(1, 8295, '\P{Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Expect(0, 8295, '\P{^Bidi_Class=_-Left_To_RIGHT_ISOLATE}', "");
+    Error('\p{Bc=:= -LRI}');
+    Error('\P{Bc=:= -LRI}');
     Expect(1, 8294, '\p{Bc=:\ALRI\z:}', "");;
     Expect(0, 8295, '\p{Bc=:\ALRI\z:}', "");;
     Expect(1, 8294, '\p{Bc=lri}', "");
@@ -2462,16 +2494,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8295, '\P{^Bc=lri}', "");
     Expect(1, 8294, '\p{Bc=:\Alri\z:}', "");;
     Expect(0, 8295, '\p{Bc=:\Alri\z:}', "");;
-    Expect(1, 8294, '\p{Bc=LRI}', "");
-    Expect(0, 8294, '\p{^Bc=LRI}', "");
-    Expect(0, 8294, '\P{Bc=LRI}', "");
-    Expect(1, 8294, '\P{^Bc=LRI}', "");
-    Expect(0, 8295, '\p{Bc=LRI}', "");
-    Expect(1, 8295, '\p{^Bc=LRI}', "");
-    Expect(1, 8295, '\P{Bc=LRI}', "");
-    Expect(0, 8295, '\P{^Bc=LRI}', "");
-    Error('\p{Is_Bidi_Class=:= -left_To_RIGHT_Isolate}');
-    Error('\P{Is_Bidi_Class=:= -left_To_RIGHT_Isolate}');
+    Expect(1, 8294, '\p{Bc= _lri}', "");
+    Expect(0, 8294, '\p{^Bc= _lri}', "");
+    Expect(0, 8294, '\P{Bc= _lri}', "");
+    Expect(1, 8294, '\P{^Bc= _lri}', "");
+    Expect(0, 8295, '\p{Bc= _lri}', "");
+    Expect(1, 8295, '\p{^Bc= _lri}', "");
+    Expect(1, 8295, '\P{Bc= _lri}', "");
+    Expect(0, 8295, '\P{^Bc= _lri}', "");
+    Error('\p{Is_Bidi_Class=-/a/LEFT_TO_right_ISOLATE}');
+    Error('\P{Is_Bidi_Class=-/a/LEFT_TO_right_ISOLATE}');
     Expect(1, 8294, '\p{Is_Bidi_Class=lefttorightisolate}', "");
     Expect(0, 8294, '\p{^Is_Bidi_Class=lefttorightisolate}', "");
     Expect(0, 8294, '\P{Is_Bidi_Class=lefttorightisolate}', "");
@@ -2480,16 +2512,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8295, '\p{^Is_Bidi_Class=lefttorightisolate}', "");
     Expect(1, 8295, '\P{Is_Bidi_Class=lefttorightisolate}', "");
     Expect(0, 8295, '\P{^Is_Bidi_Class=lefttorightisolate}', "");
-    Expect(1, 8294, '\p{Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(0, 8294, '\p{^Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(0, 8294, '\P{Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(1, 8294, '\P{^Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(0, 8295, '\p{Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(1, 8295, '\p{^Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(1, 8295, '\P{Is_Bidi_Class=	left_To_right_isolate}', "");
-    Expect(0, 8295, '\P{^Is_Bidi_Class=	left_To_right_isolate}', "");
-    Error('\p{Is_Bc=-/a/LRI}');
-    Error('\P{Is_Bc=-/a/LRI}');
+    Expect(1, 8294, '\p{Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(0, 8294, '\p{^Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(0, 8294, '\P{Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(1, 8294, '\P{^Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(0, 8295, '\p{Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(1, 8295, '\p{^Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(1, 8295, '\P{Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Expect(0, 8295, '\P{^Is_Bidi_Class=_LEFT_to_Right_Isolate}', "");
+    Error('\p{Is_Bc=_:=lri}');
+    Error('\P{Is_Bc=_:=lri}');
     Expect(1, 8294, '\p{Is_Bc=lri}', "");
     Expect(0, 8294, '\p{^Is_Bc=lri}', "");
     Expect(0, 8294, '\P{Is_Bc=lri}', "");
@@ -2498,16 +2530,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8295, '\p{^Is_Bc=lri}', "");
     Expect(1, 8295, '\P{Is_Bc=lri}', "");
     Expect(0, 8295, '\P{^Is_Bc=lri}', "");
-    Expect(1, 8294, '\p{Is_Bc:    -LRI}', "");
-    Expect(0, 8294, '\p{^Is_Bc:    -LRI}', "");
-    Expect(0, 8294, '\P{Is_Bc:    -LRI}', "");
-    Expect(1, 8294, '\P{^Is_Bc:    -LRI}', "");
-    Expect(0, 8295, '\p{Is_Bc:    -LRI}', "");
-    Expect(1, 8295, '\p{^Is_Bc:    -LRI}', "");
-    Expect(1, 8295, '\P{Is_Bc:    -LRI}', "");
-    Expect(0, 8295, '\P{^Is_Bc:    -LRI}', "");
-    Error('\p{Bidi_Class=_:=Left_TO_Right_override}');
-    Error('\P{Bidi_Class=_:=Left_TO_Right_override}');
+    Expect(1, 8294, '\p{Is_Bc= 	LRI}', "");
+    Expect(0, 8294, '\p{^Is_Bc= 	LRI}', "");
+    Expect(0, 8294, '\P{Is_Bc= 	LRI}', "");
+    Expect(1, 8294, '\P{^Is_Bc= 	LRI}', "");
+    Expect(0, 8295, '\p{Is_Bc= 	LRI}', "");
+    Expect(1, 8295, '\p{^Is_Bc= 	LRI}', "");
+    Expect(1, 8295, '\P{Is_Bc= 	LRI}', "");
+    Expect(0, 8295, '\P{^Is_Bc= 	LRI}', "");
+    Error('\p{Bidi_Class=/a/__Left_TO_RIGHT_Override}');
+    Error('\P{Bidi_Class=/a/__Left_TO_RIGHT_Override}');
     Expect(1, 8237, '\p{Bidi_Class=:\ALeft_To_Right_Override\z:}', "");;
     Expect(0, 8238, '\p{Bidi_Class=:\ALeft_To_Right_Override\z:}', "");;
     Expect(1, 8237, '\p{Bidi_Class=lefttorightoverride}', "");
@@ -2520,16 +2552,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8238, '\P{^Bidi_Class=lefttorightoverride}', "");
     Expect(1, 8237, '\p{Bidi_Class=:\Alefttorightoverride\z:}', "");;
     Expect(0, 8238, '\p{Bidi_Class=:\Alefttorightoverride\z:}', "");;
-    Expect(1, 8237, '\p{Bidi_Class= Left_To_Right_override}', "");
-    Expect(0, 8237, '\p{^Bidi_Class= Left_To_Right_override}', "");
-    Expect(0, 8237, '\P{Bidi_Class= Left_To_Right_override}', "");
-    Expect(1, 8237, '\P{^Bidi_Class= Left_To_Right_override}', "");
-    Expect(0, 8238, '\p{Bidi_Class= Left_To_Right_override}', "");
-    Expect(1, 8238, '\p{^Bidi_Class= Left_To_Right_override}', "");
-    Expect(1, 8238, '\P{Bidi_Class= Left_To_Right_override}', "");
-    Expect(0, 8238, '\P{^Bidi_Class= Left_To_Right_override}', "");
-    Error('\p{Bc=/a/__LRO}');
-    Error('\P{Bc=/a/__LRO}');
+    Expect(1, 8237, '\p{Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(0, 8237, '\p{^Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(0, 8237, '\P{Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(1, 8237, '\P{^Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(0, 8238, '\p{Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(1, 8238, '\p{^Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(1, 8238, '\P{Bidi_Class=	Left_TO_Right_override}', "");
+    Expect(0, 8238, '\P{^Bidi_Class=	Left_TO_Right_override}', "");
+    Error('\p{Bc=	/a/LRO}');
+    Error('\P{Bc=	/a/LRO}');
     Expect(1, 8237, '\p{Bc=:\ALRO\z:}', "");;
     Expect(0, 8238, '\p{Bc=:\ALRO\z:}', "");;
     Expect(1, 8237, '\p{Bc=lro}', "");
@@ -2542,16 +2574,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8238, '\P{^Bc=lro}', "");
     Expect(1, 8237, '\p{Bc=:\Alro\z:}', "");;
     Expect(0, 8238, '\p{Bc=:\Alro\z:}', "");;
-    Expect(1, 8237, '\p{Bc=- LRO}', "");
-    Expect(0, 8237, '\p{^Bc=- LRO}', "");
-    Expect(0, 8237, '\P{Bc=- LRO}', "");
-    Expect(1, 8237, '\P{^Bc=- LRO}', "");
-    Expect(0, 8238, '\p{Bc=- LRO}', "");
-    Expect(1, 8238, '\p{^Bc=- LRO}', "");
-    Expect(1, 8238, '\P{Bc=- LRO}', "");
-    Expect(0, 8238, '\P{^Bc=- LRO}', "");
-    Error('\p{Is_Bidi_Class=	/a/Left_To_Right_Override}');
-    Error('\P{Is_Bidi_Class=	/a/Left_To_Right_Override}');
+    Expect(1, 8237, '\p{Bc= -lro}', "");
+    Expect(0, 8237, '\p{^Bc= -lro}', "");
+    Expect(0, 8237, '\P{Bc= -lro}', "");
+    Expect(1, 8237, '\P{^Bc= -lro}', "");
+    Expect(0, 8238, '\p{Bc= -lro}', "");
+    Expect(1, 8238, '\p{^Bc= -lro}', "");
+    Expect(1, 8238, '\P{Bc= -lro}', "");
+    Expect(0, 8238, '\P{^Bc= -lro}', "");
+    Error('\p{Is_Bidi_Class=_/a/LEFT_to_Right_Override}');
+    Error('\P{Is_Bidi_Class=_/a/LEFT_to_Right_Override}');
     Expect(1, 8237, '\p{Is_Bidi_Class=lefttorightoverride}', "");
     Expect(0, 8237, '\p{^Is_Bidi_Class=lefttorightoverride}', "");
     Expect(0, 8237, '\P{Is_Bidi_Class=lefttorightoverride}', "");
@@ -2560,34 +2592,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8238, '\p{^Is_Bidi_Class=lefttorightoverride}', "");
     Expect(1, 8238, '\P{Is_Bidi_Class=lefttorightoverride}', "");
     Expect(0, 8238, '\P{^Is_Bidi_Class=lefttorightoverride}', "");
-    Expect(1, 8237, '\p{Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(0, 8237, '\p{^Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(0, 8237, '\P{Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(1, 8237, '\P{^Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(0, 8238, '\p{Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(1, 8238, '\p{^Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(1, 8238, '\P{Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Expect(0, 8238, '\P{^Is_Bidi_Class=	left_TO_RIGHT_Override}', "");
-    Error('\p{Is_Bc=_/a/LRO}');
-    Error('\P{Is_Bc=_/a/LRO}');
-    Expect(1, 8237, '\p{Is_Bc=lro}', "");
-    Expect(0, 8237, '\p{^Is_Bc=lro}', "");
-    Expect(0, 8237, '\P{Is_Bc=lro}', "");
-    Expect(1, 8237, '\P{^Is_Bc=lro}', "");
-    Expect(0, 8238, '\p{Is_Bc=lro}', "");
-    Expect(1, 8238, '\p{^Is_Bc=lro}', "");
-    Expect(1, 8238, '\P{Is_Bc=lro}', "");
-    Expect(0, 8238, '\P{^Is_Bc=lro}', "");
-    Expect(1, 8237, '\p{Is_Bc=_-LRO}', "");
-    Expect(0, 8237, '\p{^Is_Bc=_-LRO}', "");
-    Expect(0, 8237, '\P{Is_Bc=_-LRO}', "");
-    Expect(1, 8237, '\P{^Is_Bc=_-LRO}', "");
-    Expect(0, 8238, '\p{Is_Bc=_-LRO}', "");
-    Expect(1, 8238, '\p{^Is_Bc=_-LRO}', "");
-    Expect(1, 8238, '\P{Is_Bc=_-LRO}', "");
-    Expect(0, 8238, '\P{^Is_Bc=_-LRO}', "");
-    Error('\p{Bidi_Class:    :=NONSPACING_mark}');
-    Error('\P{Bidi_Class:    :=NONSPACING_mark}');
+    Expect(1, 8237, '\p{Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(0, 8237, '\p{^Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(0, 8237, '\P{Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(1, 8237, '\P{^Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(0, 8238, '\p{Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(1, 8238, '\p{^Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(1, 8238, '\P{Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Expect(0, 8238, '\P{^Is_Bidi_Class=LEFT_to_right_OVERRIDE}', "");
+    Error('\p{Is_Bc:	/a/lro}');
+    Error('\P{Is_Bc:	/a/lro}');
+    Expect(1, 8237, '\p{Is_Bc:   lro}', "");
+    Expect(0, 8237, '\p{^Is_Bc:   lro}', "");
+    Expect(0, 8237, '\P{Is_Bc:   lro}', "");
+    Expect(1, 8237, '\P{^Is_Bc:   lro}', "");
+    Expect(0, 8238, '\p{Is_Bc:   lro}', "");
+    Expect(1, 8238, '\p{^Is_Bc:   lro}', "");
+    Expect(1, 8238, '\P{Is_Bc:   lro}', "");
+    Expect(0, 8238, '\P{^Is_Bc:   lro}', "");
+    Error('\p{Bidi_Class=-NONSPACING_Mark/a/}');
+    Error('\P{Bidi_Class=-NONSPACING_Mark/a/}');
     Expect(1, 917999, '\p{Bidi_Class=:\ANonspacing_Mark\z:}', "");;
     Expect(0, 918000, '\p{Bidi_Class=:\ANonspacing_Mark\z:}', "");;
     Expect(1, 917999, '\p{Bidi_Class=nonspacingmark}', "");
@@ -2600,16 +2624,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^Bidi_Class=nonspacingmark}', "");
     Expect(1, 917999, '\p{Bidi_Class=:\Anonspacingmark\z:}', "");;
     Expect(0, 918000, '\p{Bidi_Class=:\Anonspacingmark\z:}', "");;
-    Expect(1, 917999, '\p{Bidi_Class=		nonspacing_Mark}', "");
-    Expect(0, 917999, '\p{^Bidi_Class=		nonspacing_Mark}', "");
-    Expect(0, 917999, '\P{Bidi_Class=		nonspacing_Mark}', "");
-    Expect(1, 917999, '\P{^Bidi_Class=		nonspacing_Mark}', "");
-    Expect(0, 918000, '\p{Bidi_Class=		nonspacing_Mark}', "");
-    Expect(1, 918000, '\p{^Bidi_Class=		nonspacing_Mark}', "");
-    Expect(1, 918000, '\P{Bidi_Class=		nonspacing_Mark}', "");
-    Expect(0, 918000, '\P{^Bidi_Class=		nonspacing_Mark}', "");
-    Error('\p{Bc=/a/NSM}');
-    Error('\P{Bc=/a/NSM}');
+    Expect(1, 917999, '\p{Bidi_Class=		nonspacing_mark}', "");
+    Expect(0, 917999, '\p{^Bidi_Class=		nonspacing_mark}', "");
+    Expect(0, 917999, '\P{Bidi_Class=		nonspacing_mark}', "");
+    Expect(1, 917999, '\P{^Bidi_Class=		nonspacing_mark}', "");
+    Expect(0, 918000, '\p{Bidi_Class=		nonspacing_mark}', "");
+    Expect(1, 918000, '\p{^Bidi_Class=		nonspacing_mark}', "");
+    Expect(1, 918000, '\P{Bidi_Class=		nonspacing_mark}', "");
+    Expect(0, 918000, '\P{^Bidi_Class=		nonspacing_mark}', "");
+    Error('\p{Bc=- nsm:=}');
+    Error('\P{Bc=- nsm:=}');
     Expect(1, 917999, '\p{Bc=:\ANSM\z:}', "");;
     Expect(0, 918000, '\p{Bc=:\ANSM\z:}', "");;
     Expect(1, 917999, '\p{Bc=nsm}', "");
@@ -2622,34 +2646,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^Bc=nsm}', "");
     Expect(1, 917999, '\p{Bc=:\Ansm\z:}', "");;
     Expect(0, 918000, '\p{Bc=:\Ansm\z:}', "");;
-    Expect(1, 917999, '\p{Bc=  NSM}', "");
-    Expect(0, 917999, '\p{^Bc=  NSM}', "");
-    Expect(0, 917999, '\P{Bc=  NSM}', "");
-    Expect(1, 917999, '\P{^Bc=  NSM}', "");
-    Expect(0, 918000, '\p{Bc=  NSM}', "");
-    Expect(1, 918000, '\p{^Bc=  NSM}', "");
-    Expect(1, 918000, '\P{Bc=  NSM}', "");
-    Expect(0, 918000, '\P{^Bc=  NSM}', "");
-    Error('\p{Is_Bidi_Class=:=	-NONSPACING_Mark}');
-    Error('\P{Is_Bidi_Class=:=	-NONSPACING_Mark}');
-    Expect(1, 917999, '\p{Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(0, 917999, '\p{^Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(0, 917999, '\P{Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(1, 917999, '\P{^Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(0, 918000, '\p{Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(1, 918000, '\p{^Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(1, 918000, '\P{Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(0, 918000, '\P{^Is_Bidi_Class:	nonspacingmark}', "");
-    Expect(1, 917999, '\p{Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(0, 917999, '\p{^Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(0, 917999, '\P{Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(1, 917999, '\P{^Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(0, 918000, '\p{Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(1, 918000, '\p{^Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(1, 918000, '\P{Is_Bidi_Class= _NONSPACING_mark}', "");
-    Expect(0, 918000, '\P{^Is_Bidi_Class= _NONSPACING_mark}', "");
-    Error('\p{Is_Bc=-:=nsm}');
-    Error('\P{Is_Bc=-:=nsm}');
+    Expect(1, 917999, '\p{Bc=_ NSM}', "");
+    Expect(0, 917999, '\p{^Bc=_ NSM}', "");
+    Expect(0, 917999, '\P{Bc=_ NSM}', "");
+    Expect(1, 917999, '\P{^Bc=_ NSM}', "");
+    Expect(0, 918000, '\p{Bc=_ NSM}', "");
+    Expect(1, 918000, '\p{^Bc=_ NSM}', "");
+    Expect(1, 918000, '\P{Bc=_ NSM}', "");
+    Expect(0, 918000, '\P{^Bc=_ NSM}', "");
+    Error('\p{Is_Bidi_Class=/a/-nonspacing_Mark}');
+    Error('\P{Is_Bidi_Class=/a/-nonspacing_Mark}');
+    Expect(1, 917999, '\p{Is_Bidi_Class=nonspacingmark}', "");
+    Expect(0, 917999, '\p{^Is_Bidi_Class=nonspacingmark}', "");
+    Expect(0, 917999, '\P{Is_Bidi_Class=nonspacingmark}', "");
+    Expect(1, 917999, '\P{^Is_Bidi_Class=nonspacingmark}', "");
+    Expect(0, 918000, '\p{Is_Bidi_Class=nonspacingmark}', "");
+    Expect(1, 918000, '\p{^Is_Bidi_Class=nonspacingmark}', "");
+    Expect(1, 918000, '\P{Is_Bidi_Class=nonspacingmark}', "");
+    Expect(0, 918000, '\P{^Is_Bidi_Class=nonspacingmark}', "");
+    Expect(1, 917999, '\p{Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(0, 917999, '\p{^Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(0, 917999, '\P{Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(1, 917999, '\P{^Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(0, 918000, '\p{Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(1, 918000, '\p{^Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(1, 918000, '\P{Is_Bidi_Class=-Nonspacing_mark}', "");
+    Expect(0, 918000, '\P{^Is_Bidi_Class=-Nonspacing_mark}', "");
+    Error('\p{Is_Bc= nsm:=}');
+    Error('\P{Is_Bc= nsm:=}');
     Expect(1, 917999, '\p{Is_Bc=nsm}', "");
     Expect(0, 917999, '\p{^Is_Bc=nsm}', "");
     Expect(0, 917999, '\P{Is_Bc=nsm}', "");
@@ -2658,38 +2682,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_Bc=nsm}', "");
     Expect(1, 918000, '\P{Is_Bc=nsm}', "");
     Expect(0, 918000, '\P{^Is_Bc=nsm}', "");
-    Expect(1, 917999, '\p{Is_Bc:		NSM}', "");
-    Expect(0, 917999, '\p{^Is_Bc:		NSM}', "");
-    Expect(0, 917999, '\P{Is_Bc:		NSM}', "");
-    Expect(1, 917999, '\P{^Is_Bc:		NSM}', "");
-    Expect(0, 918000, '\p{Is_Bc:		NSM}', "");
-    Expect(1, 918000, '\p{^Is_Bc:		NSM}', "");
-    Expect(1, 918000, '\P{Is_Bc:		NSM}', "");
-    Expect(0, 918000, '\P{^Is_Bc:		NSM}', "");
-    Error('\p{Bidi_Class=/a/ OTHER_neutral}');
-    Error('\P{Bidi_Class=/a/ OTHER_neutral}');
+    Expect(1, 917999, '\p{Is_Bc= NSM}', "");
+    Expect(0, 917999, '\p{^Is_Bc= NSM}', "");
+    Expect(0, 917999, '\P{Is_Bc= NSM}', "");
+    Expect(1, 917999, '\P{^Is_Bc= NSM}', "");
+    Expect(0, 918000, '\p{Is_Bc= NSM}', "");
+    Expect(1, 918000, '\p{^Is_Bc= NSM}', "");
+    Expect(1, 918000, '\P{Is_Bc= NSM}', "");
+    Expect(0, 918000, '\P{^Is_Bc= NSM}', "");
+    Error('\p{Bidi_Class=:=Other_Neutral}');
+    Error('\P{Bidi_Class=:=Other_Neutral}');
     Expect(1, 129994, '\p{Bidi_Class=:\AOther_Neutral\z:}', "");;
     Expect(0, 129995, '\p{Bidi_Class=:\AOther_Neutral\z:}', "");;
-    Expect(1, 129994, '\p{Bidi_Class:   otherneutral}', "");
-    Expect(0, 129994, '\p{^Bidi_Class:   otherneutral}', "");
-    Expect(0, 129994, '\P{Bidi_Class:   otherneutral}', "");
-    Expect(1, 129994, '\P{^Bidi_Class:   otherneutral}', "");
-    Expect(0, 129995, '\p{Bidi_Class:   otherneutral}', "");
-    Expect(1, 129995, '\p{^Bidi_Class:   otherneutral}', "");
-    Expect(1, 129995, '\P{Bidi_Class:   otherneutral}', "");
-    Expect(0, 129995, '\P{^Bidi_Class:   otherneutral}', "");
+    Expect(1, 129994, '\p{Bidi_Class=otherneutral}', "");
+    Expect(0, 129994, '\p{^Bidi_Class=otherneutral}', "");
+    Expect(0, 129994, '\P{Bidi_Class=otherneutral}', "");
+    Expect(1, 129994, '\P{^Bidi_Class=otherneutral}', "");
+    Expect(0, 129995, '\p{Bidi_Class=otherneutral}', "");
+    Expect(1, 129995, '\p{^Bidi_Class=otherneutral}', "");
+    Expect(1, 129995, '\P{Bidi_Class=otherneutral}', "");
+    Expect(0, 129995, '\P{^Bidi_Class=otherneutral}', "");
     Expect(1, 129994, '\p{Bidi_Class=:\Aotherneutral\z:}', "");;
     Expect(0, 129995, '\p{Bidi_Class=:\Aotherneutral\z:}', "");;
-    Expect(1, 129994, '\p{Bidi_Class=	 Other_Neutral}', "");
-    Expect(0, 129994, '\p{^Bidi_Class=	 Other_Neutral}', "");
-    Expect(0, 129994, '\P{Bidi_Class=	 Other_Neutral}', "");
-    Expect(1, 129994, '\P{^Bidi_Class=	 Other_Neutral}', "");
-    Expect(0, 129995, '\p{Bidi_Class=	 Other_Neutral}', "");
-    Expect(1, 129995, '\p{^Bidi_Class=	 Other_Neutral}', "");
-    Expect(1, 129995, '\P{Bidi_Class=	 Other_Neutral}', "");
-    Expect(0, 129995, '\P{^Bidi_Class=	 Other_Neutral}', "");
-    Error('\p{Bc= :=ON}');
-    Error('\P{Bc= :=ON}');
+    Expect(1, 129994, '\p{Bidi_Class=-Other_Neutral}', "");
+    Expect(0, 129994, '\p{^Bidi_Class=-Other_Neutral}', "");
+    Expect(0, 129994, '\P{Bidi_Class=-Other_Neutral}', "");
+    Expect(1, 129994, '\P{^Bidi_Class=-Other_Neutral}', "");
+    Expect(0, 129995, '\p{Bidi_Class=-Other_Neutral}', "");
+    Expect(1, 129995, '\p{^Bidi_Class=-Other_Neutral}', "");
+    Expect(1, 129995, '\P{Bidi_Class=-Other_Neutral}', "");
+    Expect(0, 129995, '\P{^Bidi_Class=-Other_Neutral}', "");
+    Error('\p{Bc=-ON/a/}');
+    Error('\P{Bc=-ON/a/}');
     Expect(1, 129994, '\p{Bc=:\AON\z:}', "");;
     Expect(0, 129995, '\p{Bc=:\AON\z:}', "");;
     Expect(1, 129994, '\p{Bc=on}', "");
@@ -2702,16 +2726,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129995, '\P{^Bc=on}', "");
     Expect(1, 129994, '\p{Bc=:\Aon\z:}', "");;
     Expect(0, 129995, '\p{Bc=:\Aon\z:}', "");;
-    Expect(1, 129994, '\p{Bc=_ON}', "");
-    Expect(0, 129994, '\p{^Bc=_ON}', "");
-    Expect(0, 129994, '\P{Bc=_ON}', "");
-    Expect(1, 129994, '\P{^Bc=_ON}', "");
-    Expect(0, 129995, '\p{Bc=_ON}', "");
-    Expect(1, 129995, '\p{^Bc=_ON}', "");
-    Expect(1, 129995, '\P{Bc=_ON}', "");
-    Expect(0, 129995, '\P{^Bc=_ON}', "");
-    Error('\p{Is_Bidi_Class=--other_Neutral/a/}');
-    Error('\P{Is_Bidi_Class=--other_Neutral/a/}');
+    Expect(1, 129994, '\p{Bc=_-on}', "");
+    Expect(0, 129994, '\p{^Bc=_-on}', "");
+    Expect(0, 129994, '\P{Bc=_-on}', "");
+    Expect(1, 129994, '\P{^Bc=_-on}', "");
+    Expect(0, 129995, '\p{Bc=_-on}', "");
+    Expect(1, 129995, '\p{^Bc=_-on}', "");
+    Expect(1, 129995, '\P{Bc=_-on}', "");
+    Expect(0, 129995, '\P{^Bc=_-on}', "");
+    Error('\p{Is_Bidi_Class=:=-	OTHER_Neutral}');
+    Error('\P{Is_Bidi_Class=:=-	OTHER_Neutral}');
     Expect(1, 129994, '\p{Is_Bidi_Class=otherneutral}', "");
     Expect(0, 129994, '\p{^Is_Bidi_Class=otherneutral}', "");
     Expect(0, 129994, '\P{Is_Bidi_Class=otherneutral}', "");
@@ -2720,16 +2744,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129995, '\p{^Is_Bidi_Class=otherneutral}', "");
     Expect(1, 129995, '\P{Is_Bidi_Class=otherneutral}', "");
     Expect(0, 129995, '\P{^Is_Bidi_Class=otherneutral}', "");
-    Expect(1, 129994, '\p{Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(0, 129994, '\p{^Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(0, 129994, '\P{Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(1, 129994, '\P{^Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(0, 129995, '\p{Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(1, 129995, '\p{^Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(1, 129995, '\P{Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Expect(0, 129995, '\P{^Is_Bidi_Class=	 Other_NEUTRAL}', "");
-    Error('\p{Is_Bc=  ON:=}');
-    Error('\P{Is_Bc=  ON:=}');
+    Expect(1, 129994, '\p{Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(0, 129994, '\p{^Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(0, 129994, '\P{Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(1, 129994, '\P{^Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(0, 129995, '\p{Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(1, 129995, '\p{^Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(1, 129995, '\P{Is_Bidi_Class=--Other_Neutral}', "");
+    Expect(0, 129995, '\P{^Is_Bidi_Class=--Other_Neutral}', "");
+    Error('\p{Is_Bc=:=- ON}');
+    Error('\P{Is_Bc=:=- ON}');
     Expect(1, 129994, '\p{Is_Bc=on}', "");
     Expect(0, 129994, '\p{^Is_Bc=on}', "");
     Expect(0, 129994, '\P{Is_Bc=on}', "");
@@ -2738,16 +2762,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129995, '\p{^Is_Bc=on}', "");
     Expect(1, 129995, '\P{Is_Bc=on}', "");
     Expect(0, 129995, '\P{^Is_Bc=on}', "");
-    Expect(1, 129994, '\p{Is_Bc=_-on}', "");
-    Expect(0, 129994, '\p{^Is_Bc=_-on}', "");
-    Expect(0, 129994, '\P{Is_Bc=_-on}', "");
-    Expect(1, 129994, '\P{^Is_Bc=_-on}', "");
-    Expect(0, 129995, '\p{Is_Bc=_-on}', "");
-    Expect(1, 129995, '\p{^Is_Bc=_-on}', "");
-    Expect(1, 129995, '\P{Is_Bc=_-on}', "");
-    Expect(0, 129995, '\P{^Is_Bc=_-on}', "");
-    Error('\p{Bidi_Class=:=POP_directional_Format}');
-    Error('\P{Bidi_Class=:=POP_directional_Format}');
+    Expect(1, 129994, '\p{Is_Bc:- ON}', "");
+    Expect(0, 129994, '\p{^Is_Bc:- ON}', "");
+    Expect(0, 129994, '\P{Is_Bc:- ON}', "");
+    Expect(1, 129994, '\P{^Is_Bc:- ON}', "");
+    Expect(0, 129995, '\p{Is_Bc:- ON}', "");
+    Expect(1, 129995, '\p{^Is_Bc:- ON}', "");
+    Expect(1, 129995, '\P{Is_Bc:- ON}', "");
+    Expect(0, 129995, '\P{^Is_Bc:- ON}', "");
+    Error('\p{Bidi_Class=/a/--pop_Directional_Format}');
+    Error('\P{Bidi_Class=/a/--pop_Directional_Format}');
     Expect(1, 8236, '\p{Bidi_Class=:\APop_Directional_Format\z:}', "");;
     Expect(0, 8237, '\p{Bidi_Class=:\APop_Directional_Format\z:}', "");;
     Expect(1, 8236, '\p{Bidi_Class=popdirectionalformat}', "");
@@ -2760,16 +2784,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8237, '\P{^Bidi_Class=popdirectionalformat}', "");
     Expect(1, 8236, '\p{Bidi_Class=:\Apopdirectionalformat\z:}', "");;
     Expect(0, 8237, '\p{Bidi_Class=:\Apopdirectionalformat\z:}', "");;
-    Expect(1, 8236, '\p{Bidi_Class=_-pop_directional_Format}', "");
-    Expect(0, 8236, '\p{^Bidi_Class=_-pop_directional_Format}', "");
-    Expect(0, 8236, '\P{Bidi_Class=_-pop_directional_Format}', "");
-    Expect(1, 8236, '\P{^Bidi_Class=_-pop_directional_Format}', "");
-    Expect(0, 8237, '\p{Bidi_Class=_-pop_directional_Format}', "");
-    Expect(1, 8237, '\p{^Bidi_Class=_-pop_directional_Format}', "");
-    Expect(1, 8237, '\P{Bidi_Class=_-pop_directional_Format}', "");
-    Expect(0, 8237, '\P{^Bidi_Class=_-pop_directional_Format}', "");
-    Error('\p{Bc=	_pdf:=}');
-    Error('\P{Bc=	_pdf:=}');
+    Expect(1, 8236, '\p{Bidi_Class= pop_Directional_format}', "");
+    Expect(0, 8236, '\p{^Bidi_Class= pop_Directional_format}', "");
+    Expect(0, 8236, '\P{Bidi_Class= pop_Directional_format}', "");
+    Expect(1, 8236, '\P{^Bidi_Class= pop_Directional_format}', "");
+    Expect(0, 8237, '\p{Bidi_Class= pop_Directional_format}', "");
+    Expect(1, 8237, '\p{^Bidi_Class= pop_Directional_format}', "");
+    Expect(1, 8237, '\P{Bidi_Class= pop_Directional_format}', "");
+    Expect(0, 8237, '\P{^Bidi_Class= pop_Directional_format}', "");
+    Error('\p{Bc=	PDF/a/}');
+    Error('\P{Bc=	PDF/a/}');
     Expect(1, 8236, '\p{Bc=:\APDF\z:}', "");;
     Expect(0, 8237, '\p{Bc=:\APDF\z:}', "");;
     Expect(1, 8236, '\p{Bc=pdf}', "");
@@ -2782,16 +2806,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8237, '\P{^Bc=pdf}', "");
     Expect(1, 8236, '\p{Bc=:\Apdf\z:}', "");;
     Expect(0, 8237, '\p{Bc=:\Apdf\z:}', "");;
-    Expect(1, 8236, '\p{Bc= 	PDF}', "");
-    Expect(0, 8236, '\p{^Bc= 	PDF}', "");
-    Expect(0, 8236, '\P{Bc= 	PDF}', "");
-    Expect(1, 8236, '\P{^Bc= 	PDF}', "");
-    Expect(0, 8237, '\p{Bc= 	PDF}', "");
-    Expect(1, 8237, '\p{^Bc= 	PDF}', "");
-    Expect(1, 8237, '\P{Bc= 	PDF}', "");
-    Expect(0, 8237, '\P{^Bc= 	PDF}', "");
-    Error('\p{Is_Bidi_Class= /a/pop_DIRECTIONAL_Format}');
-    Error('\P{Is_Bidi_Class= /a/pop_DIRECTIONAL_Format}');
+    Expect(1, 8236, '\p{Bc=		pdf}', "");
+    Expect(0, 8236, '\p{^Bc=		pdf}', "");
+    Expect(0, 8236, '\P{Bc=		pdf}', "");
+    Expect(1, 8236, '\P{^Bc=		pdf}', "");
+    Expect(0, 8237, '\p{Bc=		pdf}', "");
+    Expect(1, 8237, '\p{^Bc=		pdf}', "");
+    Expect(1, 8237, '\P{Bc=		pdf}', "");
+    Expect(0, 8237, '\P{^Bc=		pdf}', "");
+    Error('\p{Is_Bidi_Class:   :=  POP_Directional_FORMAT}');
+    Error('\P{Is_Bidi_Class:   :=  POP_Directional_FORMAT}');
     Expect(1, 8236, '\p{Is_Bidi_Class=popdirectionalformat}', "");
     Expect(0, 8236, '\p{^Is_Bidi_Class=popdirectionalformat}', "");
     Expect(0, 8236, '\P{Is_Bidi_Class=popdirectionalformat}', "");
@@ -2800,16 +2824,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8237, '\p{^Is_Bidi_Class=popdirectionalformat}', "");
     Expect(1, 8237, '\P{Is_Bidi_Class=popdirectionalformat}', "");
     Expect(0, 8237, '\P{^Is_Bidi_Class=popdirectionalformat}', "");
-    Expect(1, 8236, '\p{Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(0, 8236, '\p{^Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(0, 8236, '\P{Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(1, 8236, '\P{^Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(0, 8237, '\p{Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(1, 8237, '\p{^Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(1, 8237, '\P{Is_Bidi_Class=Pop_Directional_Format}', "");
-    Expect(0, 8237, '\P{^Is_Bidi_Class=Pop_Directional_Format}', "");
-    Error('\p{Is_Bc=:=_ PDF}');
-    Error('\P{Is_Bc=:=_ PDF}');
+    Expect(1, 8236, '\p{Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(0, 8236, '\p{^Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(0, 8236, '\P{Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(1, 8236, '\P{^Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(0, 8237, '\p{Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(1, 8237, '\p{^Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(1, 8237, '\P{Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Expect(0, 8237, '\P{^Is_Bidi_Class= _POP_directional_FORMAT}', "");
+    Error('\p{Is_Bc=	:=PDF}');
+    Error('\P{Is_Bc=	:=PDF}');
     Expect(1, 8236, '\p{Is_Bc=pdf}', "");
     Expect(0, 8236, '\p{^Is_Bc=pdf}', "");
     Expect(0, 8236, '\P{Is_Bc=pdf}', "");
@@ -2818,16 +2842,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8237, '\p{^Is_Bc=pdf}', "");
     Expect(1, 8237, '\P{Is_Bc=pdf}', "");
     Expect(0, 8237, '\P{^Is_Bc=pdf}', "");
-    Expect(1, 8236, '\p{Is_Bc= -PDF}', "");
-    Expect(0, 8236, '\p{^Is_Bc= -PDF}', "");
-    Expect(0, 8236, '\P{Is_Bc= -PDF}', "");
-    Expect(1, 8236, '\P{^Is_Bc= -PDF}', "");
-    Expect(0, 8237, '\p{Is_Bc= -PDF}', "");
-    Expect(1, 8237, '\p{^Is_Bc= -PDF}', "");
-    Expect(1, 8237, '\P{Is_Bc= -PDF}', "");
-    Expect(0, 8237, '\P{^Is_Bc= -PDF}', "");
-    Error('\p{Bidi_Class= pop_DIRECTIONAL_Isolate/a/}');
-    Error('\P{Bidi_Class= pop_DIRECTIONAL_Isolate/a/}');
+    Expect(1, 8236, '\p{Is_Bc=	-pdf}', "");
+    Expect(0, 8236, '\p{^Is_Bc=	-pdf}', "");
+    Expect(0, 8236, '\P{Is_Bc=	-pdf}', "");
+    Expect(1, 8236, '\P{^Is_Bc=	-pdf}', "");
+    Expect(0, 8237, '\p{Is_Bc=	-pdf}', "");
+    Expect(1, 8237, '\p{^Is_Bc=	-pdf}', "");
+    Expect(1, 8237, '\P{Is_Bc=	-pdf}', "");
+    Expect(0, 8237, '\P{^Is_Bc=	-pdf}', "");
+    Error('\p{Bidi_Class=:=POP_Directional_Isolate}');
+    Error('\P{Bidi_Class=:=POP_Directional_Isolate}');
     Expect(1, 8297, '\p{Bidi_Class=:\APop_Directional_Isolate\z:}', "");;
     Expect(0, 8298, '\p{Bidi_Class=:\APop_Directional_Isolate\z:}', "");;
     Expect(1, 8297, '\p{Bidi_Class=popdirectionalisolate}', "");
@@ -2840,16 +2864,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8298, '\P{^Bidi_Class=popdirectionalisolate}', "");
     Expect(1, 8297, '\p{Bidi_Class=:\Apopdirectionalisolate\z:}', "");;
     Expect(0, 8298, '\p{Bidi_Class=:\Apopdirectionalisolate\z:}', "");;
-    Expect(1, 8297, '\p{Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(0, 8297, '\p{^Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(0, 8297, '\P{Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(1, 8297, '\P{^Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(0, 8298, '\p{Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(1, 8298, '\p{^Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(1, 8298, '\P{Bidi_Class=		POP_Directional_isolate}', "");
-    Expect(0, 8298, '\P{^Bidi_Class=		POP_Directional_isolate}', "");
-    Error('\p{Bc=:=-_PDI}');
-    Error('\P{Bc=:=-_PDI}');
+    Expect(1, 8297, '\p{Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(0, 8297, '\p{^Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(0, 8297, '\P{Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(1, 8297, '\P{^Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(0, 8298, '\p{Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(1, 8298, '\p{^Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(1, 8298, '\P{Bidi_Class=_-pop_directional_Isolate}', "");
+    Expect(0, 8298, '\P{^Bidi_Class=_-pop_directional_Isolate}', "");
+    Error('\p{Bc=:= pdi}');
+    Error('\P{Bc=:= pdi}');
     Expect(1, 8297, '\p{Bc=:\APDI\z:}', "");;
     Expect(0, 8298, '\p{Bc=:\APDI\z:}', "");;
     Expect(1, 8297, '\p{Bc=pdi}', "");
@@ -2862,52 +2886,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8298, '\P{^Bc=pdi}', "");
     Expect(1, 8297, '\p{Bc=:\Apdi\z:}', "");;
     Expect(0, 8298, '\p{Bc=:\Apdi\z:}', "");;
-    Expect(1, 8297, '\p{Bc= -pdi}', "");
-    Expect(0, 8297, '\p{^Bc= -pdi}', "");
-    Expect(0, 8297, '\P{Bc= -pdi}', "");
-    Expect(1, 8297, '\P{^Bc= -pdi}', "");
-    Expect(0, 8298, '\p{Bc= -pdi}', "");
-    Expect(1, 8298, '\p{^Bc= -pdi}', "");
-    Expect(1, 8298, '\P{Bc= -pdi}', "");
-    Expect(0, 8298, '\P{^Bc= -pdi}', "");
-    Error('\p{Is_Bidi_Class=-/a/pop_directional_Isolate}');
-    Error('\P{Is_Bidi_Class=-/a/pop_directional_Isolate}');
-    Expect(1, 8297, '\p{Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(0, 8297, '\p{^Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(0, 8297, '\P{Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(1, 8297, '\P{^Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(0, 8298, '\p{Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(1, 8298, '\p{^Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(1, 8298, '\P{Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(0, 8298, '\P{^Is_Bidi_Class: popdirectionalisolate}', "");
-    Expect(1, 8297, '\p{Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(0, 8297, '\p{^Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(0, 8297, '\P{Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(1, 8297, '\P{^Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(0, 8298, '\p{Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(1, 8298, '\p{^Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(1, 8298, '\P{Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Expect(0, 8298, '\P{^Is_Bidi_Class=		pop_Directional_ISOLATE}', "");
-    Error('\p{Is_Bc=-_PDI:=}');
-    Error('\P{Is_Bc=-_PDI:=}');
-    Expect(1, 8297, '\p{Is_Bc: pdi}', "");
-    Expect(0, 8297, '\p{^Is_Bc: pdi}', "");
-    Expect(0, 8297, '\P{Is_Bc: pdi}', "");
-    Expect(1, 8297, '\P{^Is_Bc: pdi}', "");
-    Expect(0, 8298, '\p{Is_Bc: pdi}', "");
-    Expect(1, 8298, '\p{^Is_Bc: pdi}', "");
-    Expect(1, 8298, '\P{Is_Bc: pdi}', "");
-    Expect(0, 8298, '\P{^Is_Bc: pdi}', "");
-    Expect(1, 8297, '\p{Is_Bc=	-PDI}', "");
-    Expect(0, 8297, '\p{^Is_Bc=	-PDI}', "");
-    Expect(0, 8297, '\P{Is_Bc=	-PDI}', "");
-    Expect(1, 8297, '\P{^Is_Bc=	-PDI}', "");
-    Expect(0, 8298, '\p{Is_Bc=	-PDI}', "");
-    Expect(1, 8298, '\p{^Is_Bc=	-PDI}', "");
-    Expect(1, 8298, '\P{Is_Bc=	-PDI}', "");
-    Expect(0, 8298, '\P{^Is_Bc=	-PDI}', "");
-    Error('\p{Bidi_Class:	-Right_To_Left/a/}');
-    Error('\P{Bidi_Class:	-Right_To_Left/a/}');
+    Expect(1, 8297, '\p{Bc:	 PDI}', "");
+    Expect(0, 8297, '\p{^Bc:	 PDI}', "");
+    Expect(0, 8297, '\P{Bc:	 PDI}', "");
+    Expect(1, 8297, '\P{^Bc:	 PDI}', "");
+    Expect(0, 8298, '\p{Bc:	 PDI}', "");
+    Expect(1, 8298, '\p{^Bc:	 PDI}', "");
+    Expect(1, 8298, '\P{Bc:	 PDI}', "");
+    Expect(0, 8298, '\P{^Bc:	 PDI}', "");
+    Error('\p{Is_Bidi_Class= _pop_Directional_Isolate/a/}');
+    Error('\P{Is_Bidi_Class= _pop_Directional_Isolate/a/}');
+    Expect(1, 8297, '\p{Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(0, 8297, '\p{^Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(0, 8297, '\P{Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(1, 8297, '\P{^Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(0, 8298, '\p{Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(1, 8298, '\p{^Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(1, 8298, '\P{Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(0, 8298, '\P{^Is_Bidi_Class=popdirectionalisolate}', "");
+    Expect(1, 8297, '\p{Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(0, 8297, '\p{^Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(0, 8297, '\P{Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(1, 8297, '\P{^Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(0, 8298, '\p{Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(1, 8298, '\p{^Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(1, 8298, '\P{Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Expect(0, 8298, '\P{^Is_Bidi_Class=-POP_DIRECTIONAL_Isolate}', "");
+    Error('\p{Is_Bc=/a/ PDI}');
+    Error('\P{Is_Bc=/a/ PDI}');
+    Expect(1, 8297, '\p{Is_Bc=pdi}', "");
+    Expect(0, 8297, '\p{^Is_Bc=pdi}', "");
+    Expect(0, 8297, '\P{Is_Bc=pdi}', "");
+    Expect(1, 8297, '\P{^Is_Bc=pdi}', "");
+    Expect(0, 8298, '\p{Is_Bc=pdi}', "");
+    Expect(1, 8298, '\p{^Is_Bc=pdi}', "");
+    Expect(1, 8298, '\P{Is_Bc=pdi}', "");
+    Expect(0, 8298, '\P{^Is_Bc=pdi}', "");
+    Expect(1, 8297, '\p{Is_Bc= 	PDI}', "");
+    Expect(0, 8297, '\p{^Is_Bc= 	PDI}', "");
+    Expect(0, 8297, '\P{Is_Bc= 	PDI}', "");
+    Expect(1, 8297, '\P{^Is_Bc= 	PDI}', "");
+    Expect(0, 8298, '\p{Is_Bc= 	PDI}', "");
+    Expect(1, 8298, '\p{^Is_Bc= 	PDI}', "");
+    Expect(1, 8298, '\P{Is_Bc= 	PDI}', "");
+    Expect(0, 8298, '\P{^Is_Bc= 	PDI}', "");
+    Error('\p{Bidi_Class=  Right_TO_left:=}');
+    Error('\P{Bidi_Class=  Right_TO_left:=}');
     Expect(1, 126975, '\p{Bidi_Class=:\ARight_To_Left\z:}', "");;
     Expect(0, 126976, '\p{Bidi_Class=:\ARight_To_Left\z:}', "");;
     Expect(1, 126975, '\p{Bidi_Class=righttoleft}', "");
@@ -2920,16 +2944,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126976, '\P{^Bidi_Class=righttoleft}', "");
     Expect(1, 126975, '\p{Bidi_Class=:\Arighttoleft\z:}', "");;
     Expect(0, 126976, '\p{Bidi_Class=:\Arighttoleft\z:}', "");;
-    Expect(1, 126975, '\p{Bidi_Class=  right_TO_LEFT}', "");
-    Expect(0, 126975, '\p{^Bidi_Class=  right_TO_LEFT}', "");
-    Expect(0, 126975, '\P{Bidi_Class=  right_TO_LEFT}', "");
-    Expect(1, 126975, '\P{^Bidi_Class=  right_TO_LEFT}', "");
-    Expect(0, 126976, '\p{Bidi_Class=  right_TO_LEFT}', "");
-    Expect(1, 126976, '\p{^Bidi_Class=  right_TO_LEFT}', "");
-    Expect(1, 126976, '\P{Bidi_Class=  right_TO_LEFT}', "");
-    Expect(0, 126976, '\P{^Bidi_Class=  right_TO_LEFT}', "");
-    Error('\p{Bc=_ R/a/}');
-    Error('\P{Bc=_ R/a/}');
+    Expect(1, 126975, '\p{Bidi_Class:     Right_To_left}', "");
+    Expect(0, 126975, '\p{^Bidi_Class:     Right_To_left}', "");
+    Expect(0, 126975, '\P{Bidi_Class:     Right_To_left}', "");
+    Expect(1, 126975, '\P{^Bidi_Class:     Right_To_left}', "");
+    Expect(0, 126976, '\p{Bidi_Class:     Right_To_left}', "");
+    Expect(1, 126976, '\p{^Bidi_Class:     Right_To_left}', "");
+    Expect(1, 126976, '\P{Bidi_Class:     Right_To_left}', "");
+    Expect(0, 126976, '\P{^Bidi_Class:     Right_To_left}', "");
+    Error('\p{Bc=--r/a/}');
+    Error('\P{Bc=--r/a/}');
     Expect(1, 126975, '\p{Bc=:\AR\z:}', "");;
     Expect(0, 126976, '\p{Bc=:\AR\z:}', "");;
     Expect(1, 126975, '\p{Bc=r}', "");
@@ -2942,16 +2966,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126976, '\P{^Bc=r}', "");
     Expect(1, 126975, '\p{Bc=:\Ar\z:}', "");;
     Expect(0, 126976, '\p{Bc=:\Ar\z:}', "");;
-    Expect(1, 126975, '\p{Bc: 	R}', "");
-    Expect(0, 126975, '\p{^Bc: 	R}', "");
-    Expect(0, 126975, '\P{Bc: 	R}', "");
-    Expect(1, 126975, '\P{^Bc: 	R}', "");
-    Expect(0, 126976, '\p{Bc: 	R}', "");
-    Expect(1, 126976, '\p{^Bc: 	R}', "");
-    Expect(1, 126976, '\P{Bc: 	R}', "");
-    Expect(0, 126976, '\P{^Bc: 	R}', "");
-    Error('\p{Is_Bidi_Class=/a/_right_TO_Left}');
-    Error('\P{Is_Bidi_Class=/a/_right_TO_Left}');
+    Expect(1, 126975, '\p{Bc=-_R}', "");
+    Expect(0, 126975, '\p{^Bc=-_R}', "");
+    Expect(0, 126975, '\P{Bc=-_R}', "");
+    Expect(1, 126975, '\P{^Bc=-_R}', "");
+    Expect(0, 126976, '\p{Bc=-_R}', "");
+    Expect(1, 126976, '\p{^Bc=-_R}', "");
+    Expect(1, 126976, '\P{Bc=-_R}', "");
+    Expect(0, 126976, '\P{^Bc=-_R}', "");
+    Error('\p{Is_Bidi_Class:   right_To_left:=}');
+    Error('\P{Is_Bidi_Class:   right_To_left:=}');
     Expect(1, 126975, '\p{Is_Bidi_Class=righttoleft}', "");
     Expect(0, 126975, '\p{^Is_Bidi_Class=righttoleft}', "");
     Expect(0, 126975, '\P{Is_Bidi_Class=righttoleft}', "");
@@ -2960,16 +2984,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126976, '\p{^Is_Bidi_Class=righttoleft}', "");
     Expect(1, 126976, '\P{Is_Bidi_Class=righttoleft}', "");
     Expect(0, 126976, '\P{^Is_Bidi_Class=righttoleft}', "");
-    Expect(1, 126975, '\p{Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(0, 126975, '\p{^Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(0, 126975, '\P{Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(1, 126975, '\P{^Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(0, 126976, '\p{Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(1, 126976, '\p{^Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(1, 126976, '\P{Is_Bidi_Class=-Right_To_Left}', "");
-    Expect(0, 126976, '\P{^Is_Bidi_Class=-Right_To_Left}', "");
-    Error('\p{Is_Bc=-:=R}');
-    Error('\P{Is_Bc=-:=R}');
+    Expect(1, 126975, '\p{Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(0, 126975, '\p{^Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(0, 126975, '\P{Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(1, 126975, '\P{^Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(0, 126976, '\p{Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(1, 126976, '\p{^Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(1, 126976, '\P{Is_Bidi_Class:   -_Right_To_Left}', "");
+    Expect(0, 126976, '\P{^Is_Bidi_Class:   -_Right_To_Left}', "");
+    Error('\p{Is_Bc=_/a/R}');
+    Error('\P{Is_Bc=_/a/R}');
     Expect(1, 126975, '\p{Is_Bc=r}', "");
     Expect(0, 126975, '\p{^Is_Bc=r}', "");
     Expect(0, 126975, '\P{Is_Bc=r}', "");
@@ -2978,16 +3002,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126976, '\p{^Is_Bc=r}', "");
     Expect(1, 126976, '\P{Is_Bc=r}', "");
     Expect(0, 126976, '\P{^Is_Bc=r}', "");
-    Expect(1, 126975, '\p{Is_Bc= R}', "");
-    Expect(0, 126975, '\p{^Is_Bc= R}', "");
-    Expect(0, 126975, '\P{Is_Bc= R}', "");
-    Expect(1, 126975, '\P{^Is_Bc= R}', "");
-    Expect(0, 126976, '\p{Is_Bc= R}', "");
-    Expect(1, 126976, '\p{^Is_Bc= R}', "");
-    Expect(1, 126976, '\P{Is_Bc= R}', "");
-    Expect(0, 126976, '\P{^Is_Bc= R}', "");
-    Error('\p{Bidi_Class=_Right_To_Left_Embedding:=}');
-    Error('\P{Bidi_Class=_Right_To_Left_Embedding:=}');
+    Expect(1, 126975, '\p{Is_Bc= -R}', "");
+    Expect(0, 126975, '\p{^Is_Bc= -R}', "");
+    Expect(0, 126975, '\P{Is_Bc= -R}', "");
+    Expect(1, 126975, '\P{^Is_Bc= -R}', "");
+    Expect(0, 126976, '\p{Is_Bc= -R}', "");
+    Expect(1, 126976, '\p{^Is_Bc= -R}', "");
+    Expect(1, 126976, '\P{Is_Bc= -R}', "");
+    Expect(0, 126976, '\P{^Is_Bc= -R}', "");
+    Error('\p{Bidi_Class=__Right_To_Left_Embedding:=}');
+    Error('\P{Bidi_Class=__Right_To_Left_Embedding:=}');
     Expect(1, 8235, '\p{Bidi_Class=:\ARight_To_Left_Embedding\z:}', "");;
     Expect(0, 8236, '\p{Bidi_Class=:\ARight_To_Left_Embedding\z:}', "");;
     Expect(1, 8235, '\p{Bidi_Class=righttoleftembedding}', "");
@@ -3000,16 +3024,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8236, '\P{^Bidi_Class=righttoleftembedding}', "");
     Expect(1, 8235, '\p{Bidi_Class=:\Arighttoleftembedding\z:}', "");;
     Expect(0, 8236, '\p{Bidi_Class=:\Arighttoleftembedding\z:}', "");;
-    Expect(1, 8235, '\p{Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(0, 8235, '\p{^Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(0, 8235, '\P{Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(1, 8235, '\P{^Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(0, 8236, '\p{Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(1, 8236, '\p{^Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(1, 8236, '\P{Bidi_Class=--right_to_LEFT_embedding}', "");
-    Expect(0, 8236, '\P{^Bidi_Class=--right_to_LEFT_embedding}', "");
-    Error('\p{Bc=	RLE:=}');
-    Error('\P{Bc=	RLE:=}');
+    Expect(1, 8235, '\p{Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(0, 8235, '\p{^Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(0, 8235, '\P{Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(1, 8235, '\P{^Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(0, 8236, '\p{Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(1, 8236, '\p{^Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(1, 8236, '\P{Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Expect(0, 8236, '\P{^Bidi_Class=	_Right_TO_Left_Embedding}', "");
+    Error('\p{Bc=		RLE/a/}');
+    Error('\P{Bc=		RLE/a/}');
     Expect(1, 8235, '\p{Bc=:\ARLE\z:}', "");;
     Expect(0, 8236, '\p{Bc=:\ARLE\z:}', "");;
     Expect(1, 8235, '\p{Bc=rle}', "");
@@ -3022,16 +3046,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8236, '\P{^Bc=rle}', "");
     Expect(1, 8235, '\p{Bc=:\Arle\z:}', "");;
     Expect(0, 8236, '\p{Bc=:\Arle\z:}', "");;
-    Expect(1, 8235, '\p{Bc=--RLE}', "");
-    Expect(0, 8235, '\p{^Bc=--RLE}', "");
-    Expect(0, 8235, '\P{Bc=--RLE}', "");
-    Expect(1, 8235, '\P{^Bc=--RLE}', "");
-    Expect(0, 8236, '\p{Bc=--RLE}', "");
-    Expect(1, 8236, '\p{^Bc=--RLE}', "");
-    Expect(1, 8236, '\P{Bc=--RLE}', "");
-    Expect(0, 8236, '\P{^Bc=--RLE}', "");
-    Error('\p{Is_Bidi_Class=_ Right_To_Left_embedding:=}');
-    Error('\P{Is_Bidi_Class=_ Right_To_Left_embedding:=}');
+    Expect(1, 8235, '\p{Bc= _rle}', "");
+    Expect(0, 8235, '\p{^Bc= _rle}', "");
+    Expect(0, 8235, '\P{Bc= _rle}', "");
+    Expect(1, 8235, '\P{^Bc= _rle}', "");
+    Expect(0, 8236, '\p{Bc= _rle}', "");
+    Expect(1, 8236, '\p{^Bc= _rle}', "");
+    Expect(1, 8236, '\P{Bc= _rle}', "");
+    Expect(0, 8236, '\P{^Bc= _rle}', "");
+    Error('\p{Is_Bidi_Class=/a/RIGHT_to_Left_embedding}');
+    Error('\P{Is_Bidi_Class=/a/RIGHT_to_Left_embedding}');
     Expect(1, 8235, '\p{Is_Bidi_Class=righttoleftembedding}', "");
     Expect(0, 8235, '\p{^Is_Bidi_Class=righttoleftembedding}', "");
     Expect(0, 8235, '\P{Is_Bidi_Class=righttoleftembedding}', "");
@@ -3040,16 +3064,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8236, '\p{^Is_Bidi_Class=righttoleftembedding}', "");
     Expect(1, 8236, '\P{Is_Bidi_Class=righttoleftembedding}', "");
     Expect(0, 8236, '\P{^Is_Bidi_Class=righttoleftembedding}', "");
-    Expect(1, 8235, '\p{Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(0, 8235, '\p{^Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(0, 8235, '\P{Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(1, 8235, '\P{^Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(0, 8236, '\p{Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(1, 8236, '\p{^Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(1, 8236, '\P{Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Expect(0, 8236, '\P{^Is_Bidi_Class=_	Right_To_LEFT_Embedding}', "");
-    Error('\p{Is_Bc=	RLE/a/}');
-    Error('\P{Is_Bc=	RLE/a/}');
+    Expect(1, 8235, '\p{Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(0, 8235, '\p{^Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(0, 8235, '\P{Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(1, 8235, '\P{^Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(0, 8236, '\p{Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(1, 8236, '\p{^Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(1, 8236, '\P{Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Expect(0, 8236, '\P{^Is_Bidi_Class=	 RIGHT_to_Left_Embedding}', "");
+    Error('\p{Is_Bc=:=_-RLE}');
+    Error('\P{Is_Bc=:=_-RLE}');
     Expect(1, 8235, '\p{Is_Bc=rle}', "");
     Expect(0, 8235, '\p{^Is_Bc=rle}', "");
     Expect(0, 8235, '\P{Is_Bc=rle}', "");
@@ -3058,16 +3082,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8236, '\p{^Is_Bc=rle}', "");
     Expect(1, 8236, '\P{Is_Bc=rle}', "");
     Expect(0, 8236, '\P{^Is_Bc=rle}', "");
-    Expect(1, 8235, '\p{Is_Bc= 	RLE}', "");
-    Expect(0, 8235, '\p{^Is_Bc= 	RLE}', "");
-    Expect(0, 8235, '\P{Is_Bc= 	RLE}', "");
-    Expect(1, 8235, '\P{^Is_Bc= 	RLE}', "");
-    Expect(0, 8236, '\p{Is_Bc= 	RLE}', "");
-    Expect(1, 8236, '\p{^Is_Bc= 	RLE}', "");
-    Expect(1, 8236, '\P{Is_Bc= 	RLE}', "");
-    Expect(0, 8236, '\P{^Is_Bc= 	RLE}', "");
-    Error('\p{Bidi_Class=/a/ RIGHT_TO_LEFT_isolate}');
-    Error('\P{Bidi_Class=/a/ RIGHT_TO_LEFT_isolate}');
+    Expect(1, 8235, '\p{Is_Bc=	RLE}', "");
+    Expect(0, 8235, '\p{^Is_Bc=	RLE}', "");
+    Expect(0, 8235, '\P{Is_Bc=	RLE}', "");
+    Expect(1, 8235, '\P{^Is_Bc=	RLE}', "");
+    Expect(0, 8236, '\p{Is_Bc=	RLE}', "");
+    Expect(1, 8236, '\p{^Is_Bc=	RLE}', "");
+    Expect(1, 8236, '\P{Is_Bc=	RLE}', "");
+    Expect(0, 8236, '\P{^Is_Bc=	RLE}', "");
+    Error('\p{Bidi_Class=-	Right_To_LEFT_isolate/a/}');
+    Error('\P{Bidi_Class=-	Right_To_LEFT_isolate/a/}');
     Expect(1, 8295, '\p{Bidi_Class=:\ARight_To_Left_Isolate\z:}', "");;
     Expect(0, 8296, '\p{Bidi_Class=:\ARight_To_Left_Isolate\z:}', "");;
     Expect(1, 8295, '\p{Bidi_Class=righttoleftisolate}', "");
@@ -3080,16 +3104,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8296, '\P{^Bidi_Class=righttoleftisolate}', "");
     Expect(1, 8295, '\p{Bidi_Class=:\Arighttoleftisolate\z:}', "");;
     Expect(0, 8296, '\p{Bidi_Class=:\Arighttoleftisolate\z:}', "");;
-    Expect(1, 8295, '\p{Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(0, 8295, '\p{^Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(0, 8295, '\P{Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(1, 8295, '\P{^Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(0, 8296, '\p{Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(1, 8296, '\p{^Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(1, 8296, '\P{Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Expect(0, 8296, '\P{^Bidi_Class=_ RIGHT_To_Left_Isolate}', "");
-    Error('\p{Bc=-_rli:=}');
-    Error('\P{Bc=-_rli:=}');
+    Expect(1, 8295, '\p{Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(0, 8295, '\p{^Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(0, 8295, '\P{Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(1, 8295, '\P{^Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(0, 8296, '\p{Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(1, 8296, '\p{^Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(1, 8296, '\P{Bidi_Class= Right_TO_Left_Isolate}', "");
+    Expect(0, 8296, '\P{^Bidi_Class= Right_TO_Left_Isolate}', "");
+    Error('\p{Bc:   /a/	_RLI}');
+    Error('\P{Bc:   /a/	_RLI}');
     Expect(1, 8295, '\p{Bc=:\ARLI\z:}', "");;
     Expect(0, 8296, '\p{Bc=:\ARLI\z:}', "");;
     Expect(1, 8295, '\p{Bc=rli}', "");
@@ -3102,16 +3126,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8296, '\P{^Bc=rli}', "");
     Expect(1, 8295, '\p{Bc=:\Arli\z:}', "");;
     Expect(0, 8296, '\p{Bc=:\Arli\z:}', "");;
-    Expect(1, 8295, '\p{Bc: -rli}', "");
-    Expect(0, 8295, '\p{^Bc: -rli}', "");
-    Expect(0, 8295, '\P{Bc: -rli}', "");
-    Expect(1, 8295, '\P{^Bc: -rli}', "");
-    Expect(0, 8296, '\p{Bc: -rli}', "");
-    Expect(1, 8296, '\p{^Bc: -rli}', "");
-    Expect(1, 8296, '\P{Bc: -rli}', "");
-    Expect(0, 8296, '\P{^Bc: -rli}', "");
-    Error('\p{Is_Bidi_Class=RIGHT_to_LEFT_Isolate/a/}');
-    Error('\P{Is_Bidi_Class=RIGHT_to_LEFT_Isolate/a/}');
+    Expect(1, 8295, '\p{Bc=-RLI}', "");
+    Expect(0, 8295, '\p{^Bc=-RLI}', "");
+    Expect(0, 8295, '\P{Bc=-RLI}', "");
+    Expect(1, 8295, '\P{^Bc=-RLI}', "");
+    Expect(0, 8296, '\p{Bc=-RLI}', "");
+    Expect(1, 8296, '\p{^Bc=-RLI}', "");
+    Expect(1, 8296, '\P{Bc=-RLI}', "");
+    Expect(0, 8296, '\P{^Bc=-RLI}', "");
+    Error('\p{Is_Bidi_Class=/a/	 Right_To_Left_ISOLATE}');
+    Error('\P{Is_Bidi_Class=/a/	 Right_To_Left_ISOLATE}');
     Expect(1, 8295, '\p{Is_Bidi_Class=righttoleftisolate}', "");
     Expect(0, 8295, '\p{^Is_Bidi_Class=righttoleftisolate}', "");
     Expect(0, 8295, '\P{Is_Bidi_Class=righttoleftisolate}', "");
@@ -3120,16 +3144,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8296, '\p{^Is_Bidi_Class=righttoleftisolate}', "");
     Expect(1, 8296, '\P{Is_Bidi_Class=righttoleftisolate}', "");
     Expect(0, 8296, '\P{^Is_Bidi_Class=righttoleftisolate}', "");
-    Expect(1, 8295, '\p{Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(0, 8295, '\p{^Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(0, 8295, '\P{Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(1, 8295, '\P{^Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(0, 8296, '\p{Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(1, 8296, '\p{^Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(1, 8296, '\P{Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Expect(0, 8296, '\P{^Is_Bidi_Class=_	right_to_Left_isolate}', "");
-    Error('\p{Is_Bc=/a/ 	RLI}');
-    Error('\P{Is_Bc=/a/ 	RLI}');
+    Expect(1, 8295, '\p{Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(0, 8295, '\p{^Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(0, 8295, '\P{Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(1, 8295, '\P{^Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(0, 8296, '\p{Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(1, 8296, '\p{^Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(1, 8296, '\P{Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Expect(0, 8296, '\P{^Is_Bidi_Class= 	Right_TO_Left_ISOLATE}', "");
+    Error('\p{Is_Bc:	/a/-	rli}');
+    Error('\P{Is_Bc:	/a/-	rli}');
     Expect(1, 8295, '\p{Is_Bc=rli}', "");
     Expect(0, 8295, '\p{^Is_Bc=rli}', "");
     Expect(0, 8295, '\P{Is_Bc=rli}', "");
@@ -3138,16 +3162,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8296, '\p{^Is_Bc=rli}', "");
     Expect(1, 8296, '\P{Is_Bc=rli}', "");
     Expect(0, 8296, '\P{^Is_Bc=rli}', "");
-    Expect(1, 8295, '\p{Is_Bc:	RLI}', "");
-    Expect(0, 8295, '\p{^Is_Bc:	RLI}', "");
-    Expect(0, 8295, '\P{Is_Bc:	RLI}', "");
-    Expect(1, 8295, '\P{^Is_Bc:	RLI}', "");
-    Expect(0, 8296, '\p{Is_Bc:	RLI}', "");
-    Expect(1, 8296, '\p{^Is_Bc:	RLI}', "");
-    Expect(1, 8296, '\P{Is_Bc:	RLI}', "");
-    Expect(0, 8296, '\P{^Is_Bc:	RLI}', "");
-    Error('\p{Bidi_Class=/a/	Right_TO_LEFT_Override}');
-    Error('\P{Bidi_Class=/a/	Right_TO_LEFT_Override}');
+    Expect(1, 8295, '\p{Is_Bc= -rli}', "");
+    Expect(0, 8295, '\p{^Is_Bc= -rli}', "");
+    Expect(0, 8295, '\P{Is_Bc= -rli}', "");
+    Expect(1, 8295, '\P{^Is_Bc= -rli}', "");
+    Expect(0, 8296, '\p{Is_Bc= -rli}', "");
+    Expect(1, 8296, '\p{^Is_Bc= -rli}', "");
+    Expect(1, 8296, '\P{Is_Bc= -rli}', "");
+    Expect(0, 8296, '\P{^Is_Bc= -rli}', "");
+    Error('\p{Bidi_Class:/a/Right_to_LEFT_OVERRIDE}');
+    Error('\P{Bidi_Class:/a/Right_to_LEFT_OVERRIDE}');
     Expect(1, 8238, '\p{Bidi_Class=:\ARight_To_Left_Override\z:}', "");;
     Expect(0, 8239, '\p{Bidi_Class=:\ARight_To_Left_Override\z:}', "");;
     Expect(1, 8238, '\p{Bidi_Class=righttoleftoverride}', "");
@@ -3160,16 +3184,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8239, '\P{^Bidi_Class=righttoleftoverride}', "");
     Expect(1, 8238, '\p{Bidi_Class=:\Arighttoleftoverride\z:}', "");;
     Expect(0, 8239, '\p{Bidi_Class=:\Arighttoleftoverride\z:}', "");;
-    Expect(1, 8238, '\p{Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(0, 8238, '\p{^Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(0, 8238, '\P{Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(1, 8238, '\P{^Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(0, 8239, '\p{Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(1, 8239, '\p{^Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(1, 8239, '\P{Bidi_Class=  Right_TO_Left_override}', "");
-    Expect(0, 8239, '\P{^Bidi_Class=  Right_TO_Left_override}', "");
-    Error('\p{Bc= -RLO/a/}');
-    Error('\P{Bc= -RLO/a/}');
+    Expect(1, 8238, '\p{Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(0, 8238, '\p{^Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(0, 8238, '\P{Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(1, 8238, '\P{^Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(0, 8239, '\p{Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(1, 8239, '\p{^Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(1, 8239, '\P{Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Expect(0, 8239, '\P{^Bidi_Class:   _ RIGHT_to_Left_Override}', "");
+    Error('\p{Bc=/a/	RLO}');
+    Error('\P{Bc=/a/	RLO}');
     Expect(1, 8238, '\p{Bc=:\ARLO\z:}', "");;
     Expect(0, 8239, '\p{Bc=:\ARLO\z:}', "");;
     Expect(1, 8238, '\p{Bc=rlo}', "");
@@ -3182,34 +3206,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8239, '\P{^Bc=rlo}', "");
     Expect(1, 8238, '\p{Bc=:\Arlo\z:}', "");;
     Expect(0, 8239, '\p{Bc=:\Arlo\z:}', "");;
-    Expect(1, 8238, '\p{Bc= rlo}', "");
-    Expect(0, 8238, '\p{^Bc= rlo}', "");
-    Expect(0, 8238, '\P{Bc= rlo}', "");
-    Expect(1, 8238, '\P{^Bc= rlo}', "");
-    Expect(0, 8239, '\p{Bc= rlo}', "");
-    Expect(1, 8239, '\p{^Bc= rlo}', "");
-    Expect(1, 8239, '\P{Bc= rlo}', "");
-    Expect(0, 8239, '\P{^Bc= rlo}', "");
-    Error('\p{Is_Bidi_Class= 	RIGHT_To_LEFT_OVERRIDE/a/}');
-    Error('\P{Is_Bidi_Class= 	RIGHT_To_LEFT_OVERRIDE/a/}');
-    Expect(1, 8238, '\p{Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(0, 8238, '\p{^Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(0, 8238, '\P{Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(1, 8238, '\P{^Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(0, 8239, '\p{Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(1, 8239, '\p{^Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(1, 8239, '\P{Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(0, 8239, '\P{^Is_Bidi_Class:righttoleftoverride}', "");
-    Expect(1, 8238, '\p{Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(0, 8238, '\p{^Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(0, 8238, '\P{Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(1, 8238, '\P{^Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(0, 8239, '\p{Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(1, 8239, '\p{^Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(1, 8239, '\P{Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Expect(0, 8239, '\P{^Is_Bidi_Class=  RIGHT_to_Left_Override}', "");
-    Error('\p{Is_Bc=:=	-rlo}');
-    Error('\P{Is_Bc=:=	-rlo}');
+    Expect(1, 8238, '\p{Bc=	 rlo}', "");
+    Expect(0, 8238, '\p{^Bc=	 rlo}', "");
+    Expect(0, 8238, '\P{Bc=	 rlo}', "");
+    Expect(1, 8238, '\P{^Bc=	 rlo}', "");
+    Expect(0, 8239, '\p{Bc=	 rlo}', "");
+    Expect(1, 8239, '\p{^Bc=	 rlo}', "");
+    Expect(1, 8239, '\P{Bc=	 rlo}', "");
+    Expect(0, 8239, '\P{^Bc=	 rlo}', "");
+    Error('\p{Is_Bidi_Class:_-Right_To_Left_override:=}');
+    Error('\P{Is_Bidi_Class:_-Right_To_Left_override:=}');
+    Expect(1, 8238, '\p{Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(0, 8238, '\p{^Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(0, 8238, '\P{Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(1, 8238, '\P{^Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(0, 8239, '\p{Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(1, 8239, '\p{^Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(1, 8239, '\P{Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(0, 8239, '\P{^Is_Bidi_Class=righttoleftoverride}', "");
+    Expect(1, 8238, '\p{Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(0, 8238, '\p{^Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(0, 8238, '\P{Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(1, 8238, '\P{^Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(0, 8239, '\p{Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(1, 8239, '\p{^Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(1, 8239, '\P{Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Expect(0, 8239, '\P{^Is_Bidi_Class= _RIGHT_To_Left_OVERRIDE}', "");
+    Error('\p{Is_Bc=:=- RLO}');
+    Error('\P{Is_Bc=:=- RLO}');
     Expect(1, 8238, '\p{Is_Bc=rlo}', "");
     Expect(0, 8238, '\p{^Is_Bc=rlo}', "");
     Expect(0, 8238, '\P{Is_Bc=rlo}', "");
@@ -3218,16 +3242,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8239, '\p{^Is_Bc=rlo}', "");
     Expect(1, 8239, '\P{Is_Bc=rlo}', "");
     Expect(0, 8239, '\P{^Is_Bc=rlo}', "");
-    Expect(1, 8238, '\p{Is_Bc=-	RLO}', "");
-    Expect(0, 8238, '\p{^Is_Bc=-	RLO}', "");
-    Expect(0, 8238, '\P{Is_Bc=-	RLO}', "");
-    Expect(1, 8238, '\P{^Is_Bc=-	RLO}', "");
-    Expect(0, 8239, '\p{Is_Bc=-	RLO}', "");
-    Expect(1, 8239, '\p{^Is_Bc=-	RLO}', "");
-    Expect(1, 8239, '\P{Is_Bc=-	RLO}', "");
-    Expect(0, 8239, '\P{^Is_Bc=-	RLO}', "");
-    Error('\p{Bidi_Class= Segment_separator/a/}');
-    Error('\P{Bidi_Class= Segment_separator/a/}');
+    Expect(1, 8238, '\p{Is_Bc=__RLO}', "");
+    Expect(0, 8238, '\p{^Is_Bc=__RLO}', "");
+    Expect(0, 8238, '\P{Is_Bc=__RLO}', "");
+    Expect(1, 8238, '\P{^Is_Bc=__RLO}', "");
+    Expect(0, 8239, '\p{Is_Bc=__RLO}', "");
+    Expect(1, 8239, '\p{^Is_Bc=__RLO}', "");
+    Expect(1, 8239, '\P{Is_Bc=__RLO}', "");
+    Expect(0, 8239, '\P{^Is_Bc=__RLO}', "");
+    Error('\p{Bidi_Class: :=-segment_SEPARATOR}');
+    Error('\P{Bidi_Class: :=-segment_SEPARATOR}');
     Expect(1, 31, '\p{Bidi_Class=:\ASegment_Separator\z:}', "");;
     Expect(0, 32, '\p{Bidi_Class=:\ASegment_Separator\z:}', "");;
     Expect(1, 31, '\p{Bidi_Class=segmentseparator}', "");
@@ -3240,16 +3264,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 32, '\P{^Bidi_Class=segmentseparator}', "");
     Expect(1, 31, '\p{Bidi_Class=:\Asegmentseparator\z:}', "");;
     Expect(0, 32, '\p{Bidi_Class=:\Asegmentseparator\z:}', "");;
-    Expect(1, 31, '\p{Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(0, 31, '\p{^Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(0, 31, '\P{Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(1, 31, '\P{^Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(0, 32, '\p{Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(1, 32, '\p{^Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(1, 32, '\P{Bidi_Class=	SEGMENT_Separator}', "");
-    Expect(0, 32, '\P{^Bidi_Class=	SEGMENT_Separator}', "");
-    Error('\p{Bc=/a/-	S}');
-    Error('\P{Bc=/a/-	S}');
+    Expect(1, 31, '\p{Bidi_Class=	segment_Separator}', "");
+    Expect(0, 31, '\p{^Bidi_Class=	segment_Separator}', "");
+    Expect(0, 31, '\P{Bidi_Class=	segment_Separator}', "");
+    Expect(1, 31, '\P{^Bidi_Class=	segment_Separator}', "");
+    Expect(0, 32, '\p{Bidi_Class=	segment_Separator}', "");
+    Expect(1, 32, '\p{^Bidi_Class=	segment_Separator}', "");
+    Expect(1, 32, '\P{Bidi_Class=	segment_Separator}', "");
+    Expect(0, 32, '\P{^Bidi_Class=	segment_Separator}', "");
+    Error('\p{Bc=	 S/a/}');
+    Error('\P{Bc=	 S/a/}');
     Expect(1, 31, '\p{Bc=:\AS\z:}', "");;
     Expect(0, 32, '\p{Bc=:\AS\z:}', "");;
     Expect(1, 31, '\p{Bc=s}', "");
@@ -3262,34 +3286,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 32, '\P{^Bc=s}', "");
     Expect(1, 31, '\p{Bc=:\As\z:}', "");;
     Expect(0, 32, '\p{Bc=:\As\z:}', "");;
-    Expect(1, 31, '\p{Bc=-s}', "");
-    Expect(0, 31, '\p{^Bc=-s}', "");
-    Expect(0, 31, '\P{Bc=-s}', "");
-    Expect(1, 31, '\P{^Bc=-s}', "");
-    Expect(0, 32, '\p{Bc=-s}', "");
-    Expect(1, 32, '\p{^Bc=-s}', "");
-    Expect(1, 32, '\P{Bc=-s}', "");
-    Expect(0, 32, '\P{^Bc=-s}', "");
-    Error('\p{Is_Bidi_Class=	_Segment_Separator:=}');
-    Error('\P{Is_Bidi_Class=	_Segment_Separator:=}');
-    Expect(1, 31, '\p{Is_Bidi_Class=segmentseparator}', "");
-    Expect(0, 31, '\p{^Is_Bidi_Class=segmentseparator}', "");
-    Expect(0, 31, '\P{Is_Bidi_Class=segmentseparator}', "");
-    Expect(1, 31, '\P{^Is_Bidi_Class=segmentseparator}', "");
-    Expect(0, 32, '\p{Is_Bidi_Class=segmentseparator}', "");
-    Expect(1, 32, '\p{^Is_Bidi_Class=segmentseparator}', "");
-    Expect(1, 32, '\P{Is_Bidi_Class=segmentseparator}', "");
-    Expect(0, 32, '\P{^Is_Bidi_Class=segmentseparator}', "");
-    Expect(1, 31, '\p{Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(0, 31, '\p{^Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(0, 31, '\P{Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(1, 31, '\P{^Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(0, 32, '\p{Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(1, 32, '\p{^Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(1, 32, '\P{Is_Bidi_Class=  Segment_Separator}', "");
-    Expect(0, 32, '\P{^Is_Bidi_Class=  Segment_Separator}', "");
-    Error('\p{Is_Bc=-:=S}');
-    Error('\P{Is_Bc=-:=S}');
+    Expect(1, 31, '\p{Bc=S}', "");
+    Expect(0, 31, '\p{^Bc=S}', "");
+    Expect(0, 31, '\P{Bc=S}', "");
+    Expect(1, 31, '\P{^Bc=S}', "");
+    Expect(0, 32, '\p{Bc=S}', "");
+    Expect(1, 32, '\p{^Bc=S}', "");
+    Expect(1, 32, '\P{Bc=S}', "");
+    Expect(0, 32, '\P{^Bc=S}', "");
+    Error('\p{Is_Bidi_Class=	Segment_Separator:=}');
+    Error('\P{Is_Bidi_Class=	Segment_Separator:=}');
+    Expect(1, 31, '\p{Is_Bidi_Class:   segmentseparator}', "");
+    Expect(0, 31, '\p{^Is_Bidi_Class:   segmentseparator}', "");
+    Expect(0, 31, '\P{Is_Bidi_Class:   segmentseparator}', "");
+    Expect(1, 31, '\P{^Is_Bidi_Class:   segmentseparator}', "");
+    Expect(0, 32, '\p{Is_Bidi_Class:   segmentseparator}', "");
+    Expect(1, 32, '\p{^Is_Bidi_Class:   segmentseparator}', "");
+    Expect(1, 32, '\P{Is_Bidi_Class:   segmentseparator}', "");
+    Expect(0, 32, '\P{^Is_Bidi_Class:   segmentseparator}', "");
+    Expect(1, 31, '\p{Is_Bidi_Class=-segment_Separator}', "");
+    Expect(0, 31, '\p{^Is_Bidi_Class=-segment_Separator}', "");
+    Expect(0, 31, '\P{Is_Bidi_Class=-segment_Separator}', "");
+    Expect(1, 31, '\P{^Is_Bidi_Class=-segment_Separator}', "");
+    Expect(0, 32, '\p{Is_Bidi_Class=-segment_Separator}', "");
+    Expect(1, 32, '\p{^Is_Bidi_Class=-segment_Separator}', "");
+    Expect(1, 32, '\P{Is_Bidi_Class=-segment_Separator}', "");
+    Expect(0, 32, '\P{^Is_Bidi_Class=-segment_Separator}', "");
+    Error('\p{Is_Bc:	 S/a/}');
+    Error('\P{Is_Bc:	 S/a/}');
     Expect(1, 31, '\p{Is_Bc=s}', "");
     Expect(0, 31, '\p{^Is_Bc=s}', "");
     Expect(0, 31, '\P{Is_Bc=s}', "");
@@ -3298,16 +3322,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 32, '\p{^Is_Bc=s}', "");
     Expect(1, 32, '\P{Is_Bc=s}', "");
     Expect(0, 32, '\P{^Is_Bc=s}', "");
-    Expect(1, 31, '\p{Is_Bc=_S}', "");
-    Expect(0, 31, '\p{^Is_Bc=_S}', "");
-    Expect(0, 31, '\P{Is_Bc=_S}', "");
-    Expect(1, 31, '\P{^Is_Bc=_S}', "");
-    Expect(0, 32, '\p{Is_Bc=_S}', "");
-    Expect(1, 32, '\p{^Is_Bc=_S}', "");
-    Expect(1, 32, '\P{Is_Bc=_S}', "");
-    Expect(0, 32, '\P{^Is_Bc=_S}', "");
-    Error('\p{Bidi_Class=/a/- White_Space}');
-    Error('\P{Bidi_Class=/a/- White_Space}');
+    Expect(1, 31, '\p{Is_Bc=_-S}', "");
+    Expect(0, 31, '\p{^Is_Bc=_-S}', "");
+    Expect(0, 31, '\P{Is_Bc=_-S}', "");
+    Expect(1, 31, '\P{^Is_Bc=_-S}', "");
+    Expect(0, 32, '\p{Is_Bc=_-S}', "");
+    Expect(1, 32, '\p{^Is_Bc=_-S}', "");
+    Expect(1, 32, '\P{Is_Bc=_-S}', "");
+    Expect(0, 32, '\P{^Is_Bc=_-S}', "");
+    Error('\p{Bidi_Class= :=White_Space}');
+    Error('\P{Bidi_Class= :=White_Space}');
     Expect(1, 12288, '\p{Bidi_Class=:\AWhite_Space\z:}', "");;
     Expect(0, 12289, '\p{Bidi_Class=:\AWhite_Space\z:}', "");;
     Expect(1, 12288, '\p{Bidi_Class=whitespace}', "");
@@ -3320,16 +3344,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12289, '\P{^Bidi_Class=whitespace}', "");
     Expect(1, 12288, '\p{Bidi_Class=:\Awhitespace\z:}', "");;
     Expect(0, 12289, '\p{Bidi_Class=:\Awhitespace\z:}', "");;
-    Expect(1, 12288, '\p{Bidi_Class= _White_Space}', "");
-    Expect(0, 12288, '\p{^Bidi_Class= _White_Space}', "");
-    Expect(0, 12288, '\P{Bidi_Class= _White_Space}', "");
-    Expect(1, 12288, '\P{^Bidi_Class= _White_Space}', "");
-    Expect(0, 12289, '\p{Bidi_Class= _White_Space}', "");
-    Expect(1, 12289, '\p{^Bidi_Class= _White_Space}', "");
-    Expect(1, 12289, '\P{Bidi_Class= _White_Space}', "");
-    Expect(0, 12289, '\P{^Bidi_Class= _White_Space}', "");
-    Error('\p{Bc=--ws:=}');
-    Error('\P{Bc=--ws:=}');
+    Expect(1, 12288, '\p{Bidi_Class=	 White_space}', "");
+    Expect(0, 12288, '\p{^Bidi_Class=	 White_space}', "");
+    Expect(0, 12288, '\P{Bidi_Class=	 White_space}', "");
+    Expect(1, 12288, '\P{^Bidi_Class=	 White_space}', "");
+    Expect(0, 12289, '\p{Bidi_Class=	 White_space}', "");
+    Expect(1, 12289, '\p{^Bidi_Class=	 White_space}', "");
+    Expect(1, 12289, '\P{Bidi_Class=	 White_space}', "");
+    Expect(0, 12289, '\P{^Bidi_Class=	 White_space}', "");
+    Error('\p{Bc=-:=WS}');
+    Error('\P{Bc=-:=WS}');
     Expect(1, 12288, '\p{Bc=:\AWS\z:}', "");;
     Expect(0, 12289, '\p{Bc=:\AWS\z:}', "");;
     Expect(1, 12288, '\p{Bc=ws}', "");
@@ -3350,8 +3374,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12289, '\p{^Bc=WS}', "");
     Expect(1, 12289, '\P{Bc=WS}', "");
     Expect(0, 12289, '\P{^Bc=WS}', "");
-    Error('\p{Is_Bidi_Class=:= WHITE_Space}');
-    Error('\P{Is_Bidi_Class=:= WHITE_Space}');
+    Error('\p{Is_Bidi_Class=-_WHITE_SPACE:=}');
+    Error('\P{Is_Bidi_Class=-_WHITE_SPACE:=}');
     Expect(1, 12288, '\p{Is_Bidi_Class=whitespace}', "");
     Expect(0, 12288, '\p{^Is_Bidi_Class=whitespace}', "");
     Expect(0, 12288, '\P{Is_Bidi_Class=whitespace}', "");
@@ -3360,34 +3384,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12289, '\p{^Is_Bidi_Class=whitespace}', "");
     Expect(1, 12289, '\P{Is_Bidi_Class=whitespace}', "");
     Expect(0, 12289, '\P{^Is_Bidi_Class=whitespace}', "");
-    Expect(1, 12288, '\p{Is_Bidi_Class=_white_Space}', "");
-    Expect(0, 12288, '\p{^Is_Bidi_Class=_white_Space}', "");
-    Expect(0, 12288, '\P{Is_Bidi_Class=_white_Space}', "");
-    Expect(1, 12288, '\P{^Is_Bidi_Class=_white_Space}', "");
-    Expect(0, 12289, '\p{Is_Bidi_Class=_white_Space}', "");
-    Expect(1, 12289, '\p{^Is_Bidi_Class=_white_Space}', "");
-    Expect(1, 12289, '\P{Is_Bidi_Class=_white_Space}', "");
-    Expect(0, 12289, '\P{^Is_Bidi_Class=_white_Space}', "");
-    Error('\p{Is_Bc= /a/ws}');
-    Error('\P{Is_Bc= /a/ws}');
-    Expect(1, 12288, '\p{Is_Bc=ws}', "");
-    Expect(0, 12288, '\p{^Is_Bc=ws}', "");
-    Expect(0, 12288, '\P{Is_Bc=ws}', "");
-    Expect(1, 12288, '\P{^Is_Bc=ws}', "");
-    Expect(0, 12289, '\p{Is_Bc=ws}', "");
-    Expect(1, 12289, '\p{^Is_Bc=ws}', "");
-    Expect(1, 12289, '\P{Is_Bc=ws}', "");
-    Expect(0, 12289, '\P{^Is_Bc=ws}', "");
-    Expect(1, 12288, '\p{Is_Bc=	_WS}', "");
-    Expect(0, 12288, '\p{^Is_Bc=	_WS}', "");
-    Expect(0, 12288, '\P{Is_Bc=	_WS}', "");
-    Expect(1, 12288, '\P{^Is_Bc=	_WS}', "");
-    Expect(0, 12289, '\p{Is_Bc=	_WS}', "");
-    Expect(1, 12289, '\p{^Is_Bc=	_WS}', "");
-    Expect(1, 12289, '\P{Is_Bc=	_WS}', "");
-    Expect(0, 12289, '\P{^Is_Bc=	_WS}', "");
-    Error('\p{Bidi_Control=	/a/NO}');
-    Error('\P{Bidi_Control=	/a/NO}');
+    Expect(1, 12288, '\p{Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(0, 12288, '\p{^Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(0, 12288, '\P{Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(1, 12288, '\P{^Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(0, 12289, '\p{Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(1, 12289, '\p{^Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(1, 12289, '\P{Is_Bidi_Class= WHITE_SPACE}', "");
+    Expect(0, 12289, '\P{^Is_Bidi_Class= WHITE_SPACE}', "");
+    Error('\p{Is_Bc=-/a/WS}');
+    Error('\P{Is_Bc=-/a/WS}');
+    Expect(1, 12288, '\p{Is_Bc:	ws}', "");
+    Expect(0, 12288, '\p{^Is_Bc:	ws}', "");
+    Expect(0, 12288, '\P{Is_Bc:	ws}', "");
+    Expect(1, 12288, '\P{^Is_Bc:	ws}', "");
+    Expect(0, 12289, '\p{Is_Bc:	ws}', "");
+    Expect(1, 12289, '\p{^Is_Bc:	ws}', "");
+    Expect(1, 12289, '\P{Is_Bc:	ws}', "");
+    Expect(0, 12289, '\P{^Is_Bc:	ws}', "");
+    Expect(1, 12288, '\p{Is_Bc=-_WS}', "");
+    Expect(0, 12288, '\p{^Is_Bc=-_WS}', "");
+    Expect(0, 12288, '\P{Is_Bc=-_WS}', "");
+    Expect(1, 12288, '\P{^Is_Bc=-_WS}', "");
+    Expect(0, 12289, '\p{Is_Bc=-_WS}', "");
+    Expect(1, 12289, '\p{^Is_Bc=-_WS}', "");
+    Expect(1, 12289, '\P{Is_Bc=-_WS}', "");
+    Expect(0, 12289, '\P{^Is_Bc=-_WS}', "");
+    Error('\p{Bidi_Control: _:=no}');
+    Error('\P{Bidi_Control: _:=no}');
     Expect(1, 8298, '\p{Bidi_Control=:\ANo\z:}', "");;
     Expect(0, 8297, '\p{Bidi_Control=:\ANo\z:}', "");;
     Expect(1, 8298, '\p{Bidi_Control=no}', "");
@@ -3400,56 +3424,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8297, '\P{^Bidi_Control=no}', "");
     Expect(1, 8298, '\p{Bidi_Control=:\Ano\z:}', "");;
     Expect(0, 8297, '\p{Bidi_Control=:\Ano\z:}', "");;
-    Expect(1, 8298, '\p{Bidi_Control:--NO}', "");
-    Expect(0, 8298, '\p{^Bidi_Control:--NO}', "");
-    Expect(0, 8298, '\P{Bidi_Control:--NO}', "");
-    Expect(1, 8298, '\P{^Bidi_Control:--NO}', "");
-    Expect(0, 8297, '\p{Bidi_Control:--NO}', "");
-    Expect(1, 8297, '\p{^Bidi_Control:--NO}', "");
-    Expect(1, 8297, '\P{Bidi_Control:--NO}', "");
-    Expect(0, 8297, '\P{^Bidi_Control:--NO}', "");
-    Error('\p{Bidi_C=_/a/N}');
-    Error('\P{Bidi_C=_/a/N}');
+    Expect(1, 8298, '\p{Bidi_Control=_no}', "");
+    Expect(0, 8298, '\p{^Bidi_Control=_no}', "");
+    Expect(0, 8298, '\P{Bidi_Control=_no}', "");
+    Expect(1, 8298, '\P{^Bidi_Control=_no}', "");
+    Expect(0, 8297, '\p{Bidi_Control=_no}', "");
+    Expect(1, 8297, '\p{^Bidi_Control=_no}', "");
+    Expect(1, 8297, '\P{Bidi_Control=_no}', "");
+    Expect(0, 8297, '\P{^Bidi_Control=_no}', "");
+    Error('\p{Bidi_C=_-N/a/}');
+    Error('\P{Bidi_C=_-N/a/}');
     Expect(1, 8298, '\p{Bidi_C=:\AN\z:}', "");;
     Expect(0, 8297, '\p{Bidi_C=:\AN\z:}', "");;
-    Expect(1, 8298, '\p{Bidi_C: n}', "");
-    Expect(0, 8298, '\p{^Bidi_C: n}', "");
-    Expect(0, 8298, '\P{Bidi_C: n}', "");
-    Expect(1, 8298, '\P{^Bidi_C: n}', "");
-    Expect(0, 8297, '\p{Bidi_C: n}', "");
-    Expect(1, 8297, '\p{^Bidi_C: n}', "");
-    Expect(1, 8297, '\P{Bidi_C: n}', "");
-    Expect(0, 8297, '\P{^Bidi_C: n}', "");
+    Expect(1, 8298, '\p{Bidi_C=n}', "");
+    Expect(0, 8298, '\p{^Bidi_C=n}', "");
+    Expect(0, 8298, '\P{Bidi_C=n}', "");
+    Expect(1, 8298, '\P{^Bidi_C=n}', "");
+    Expect(0, 8297, '\p{Bidi_C=n}', "");
+    Expect(1, 8297, '\p{^Bidi_C=n}', "");
+    Expect(1, 8297, '\P{Bidi_C=n}', "");
+    Expect(0, 8297, '\P{^Bidi_C=n}', "");
     Expect(1, 8298, '\p{Bidi_C=:\An\z:}', "");;
     Expect(0, 8297, '\p{Bidi_C=:\An\z:}', "");;
-    Expect(1, 8298, '\p{Bidi_C=_ n}', "");
-    Expect(0, 8298, '\p{^Bidi_C=_ n}', "");
-    Expect(0, 8298, '\P{Bidi_C=_ n}', "");
-    Expect(1, 8298, '\P{^Bidi_C=_ n}', "");
-    Expect(0, 8297, '\p{Bidi_C=_ n}', "");
-    Expect(1, 8297, '\p{^Bidi_C=_ n}', "");
-    Expect(1, 8297, '\P{Bidi_C=_ n}', "");
-    Expect(0, 8297, '\P{^Bidi_C=_ n}', "");
-    Error('\p{Is_Bidi_Control=_F/a/}');
-    Error('\P{Is_Bidi_Control=_F/a/}');
-    Expect(1, 8298, '\p{Is_Bidi_Control=f}', "");
-    Expect(0, 8298, '\p{^Is_Bidi_Control=f}', "");
-    Expect(0, 8298, '\P{Is_Bidi_Control=f}', "");
-    Expect(1, 8298, '\P{^Is_Bidi_Control=f}', "");
-    Expect(0, 8297, '\p{Is_Bidi_Control=f}', "");
-    Expect(1, 8297, '\p{^Is_Bidi_Control=f}', "");
-    Expect(1, 8297, '\P{Is_Bidi_Control=f}', "");
-    Expect(0, 8297, '\P{^Is_Bidi_Control=f}', "");
-    Expect(1, 8298, '\p{Is_Bidi_Control=-_F}', "");
-    Expect(0, 8298, '\p{^Is_Bidi_Control=-_F}', "");
-    Expect(0, 8298, '\P{Is_Bidi_Control=-_F}', "");
-    Expect(1, 8298, '\P{^Is_Bidi_Control=-_F}', "");
-    Expect(0, 8297, '\p{Is_Bidi_Control=-_F}', "");
-    Expect(1, 8297, '\p{^Is_Bidi_Control=-_F}', "");
-    Expect(1, 8297, '\P{Is_Bidi_Control=-_F}', "");
-    Expect(0, 8297, '\P{^Is_Bidi_Control=-_F}', "");
-    Error('\p{Is_Bidi_C=:=  false}');
-    Error('\P{Is_Bidi_C=:=  false}');
+    Expect(1, 8298, '\p{Bidi_C= 	N}', "");
+    Expect(0, 8298, '\p{^Bidi_C= 	N}', "");
+    Expect(0, 8298, '\P{Bidi_C= 	N}', "");
+    Expect(1, 8298, '\P{^Bidi_C= 	N}', "");
+    Expect(0, 8297, '\p{Bidi_C= 	N}', "");
+    Expect(1, 8297, '\p{^Bidi_C= 	N}', "");
+    Expect(1, 8297, '\P{Bidi_C= 	N}', "");
+    Expect(0, 8297, '\P{^Bidi_C= 	N}', "");
+    Error('\p{Is_Bidi_Control=:=_F}');
+    Error('\P{Is_Bidi_Control=:=_F}');
+    Expect(1, 8298, '\p{Is_Bidi_Control: f}', "");
+    Expect(0, 8298, '\p{^Is_Bidi_Control: f}', "");
+    Expect(0, 8298, '\P{Is_Bidi_Control: f}', "");
+    Expect(1, 8298, '\P{^Is_Bidi_Control: f}', "");
+    Expect(0, 8297, '\p{Is_Bidi_Control: f}', "");
+    Expect(1, 8297, '\p{^Is_Bidi_Control: f}', "");
+    Expect(1, 8297, '\P{Is_Bidi_Control: f}', "");
+    Expect(0, 8297, '\P{^Is_Bidi_Control: f}', "");
+    Expect(1, 8298, '\p{Is_Bidi_Control=	F}', "");
+    Expect(0, 8298, '\p{^Is_Bidi_Control=	F}', "");
+    Expect(0, 8298, '\P{Is_Bidi_Control=	F}', "");
+    Expect(1, 8298, '\P{^Is_Bidi_Control=	F}', "");
+    Expect(0, 8297, '\p{Is_Bidi_Control=	F}', "");
+    Expect(1, 8297, '\p{^Is_Bidi_Control=	F}', "");
+    Expect(1, 8297, '\P{Is_Bidi_Control=	F}', "");
+    Expect(0, 8297, '\P{^Is_Bidi_Control=	F}', "");
+    Error('\p{Is_Bidi_C=-false:=}');
+    Error('\P{Is_Bidi_C=-false:=}');
     Expect(1, 8298, '\p{Is_Bidi_C=false}', "");
     Expect(0, 8298, '\p{^Is_Bidi_C=false}', "");
     Expect(0, 8298, '\P{Is_Bidi_C=false}', "");
@@ -3458,16 +3482,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8297, '\p{^Is_Bidi_C=false}', "");
     Expect(1, 8297, '\P{Is_Bidi_C=false}', "");
     Expect(0, 8297, '\P{^Is_Bidi_C=false}', "");
-    Expect(1, 8298, '\p{Is_Bidi_C=_	False}', "");
-    Expect(0, 8298, '\p{^Is_Bidi_C=_	False}', "");
-    Expect(0, 8298, '\P{Is_Bidi_C=_	False}', "");
-    Expect(1, 8298, '\P{^Is_Bidi_C=_	False}', "");
-    Expect(0, 8297, '\p{Is_Bidi_C=_	False}', "");
-    Expect(1, 8297, '\p{^Is_Bidi_C=_	False}', "");
-    Expect(1, 8297, '\P{Is_Bidi_C=_	False}', "");
-    Expect(0, 8297, '\P{^Is_Bidi_C=_	False}', "");
-    Error('\p{Bidi_Control=/a/-	Yes}');
-    Error('\P{Bidi_Control=/a/-	Yes}');
+    Expect(1, 8298, '\p{Is_Bidi_C=-FALSE}', "");
+    Expect(0, 8298, '\p{^Is_Bidi_C=-FALSE}', "");
+    Expect(0, 8298, '\P{Is_Bidi_C=-FALSE}', "");
+    Expect(1, 8298, '\P{^Is_Bidi_C=-FALSE}', "");
+    Expect(0, 8297, '\p{Is_Bidi_C=-FALSE}', "");
+    Expect(1, 8297, '\p{^Is_Bidi_C=-FALSE}', "");
+    Expect(1, 8297, '\P{Is_Bidi_C=-FALSE}', "");
+    Expect(0, 8297, '\P{^Is_Bidi_C=-FALSE}', "");
+    Error('\p{Bidi_Control=  Yes:=}');
+    Error('\P{Bidi_Control=  Yes:=}');
     Expect(1, 8297, '\p{Bidi_Control=:\AYes\z:}', "");;
     Expect(0, 8298, '\p{Bidi_Control=:\AYes\z:}', "");;
     Expect(1, 8297, '\p{Bidi_Control=yes}', "");
@@ -3480,16 +3504,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8298, '\P{^Bidi_Control=yes}', "");
     Expect(1, 8297, '\p{Bidi_Control=:\Ayes\z:}', "");;
     Expect(0, 8298, '\p{Bidi_Control=:\Ayes\z:}', "");;
-    Expect(1, 8297, '\p{Bidi_Control=Yes}', "");
-    Expect(0, 8297, '\p{^Bidi_Control=Yes}', "");
-    Expect(0, 8297, '\P{Bidi_Control=Yes}', "");
-    Expect(1, 8297, '\P{^Bidi_Control=Yes}', "");
-    Expect(0, 8298, '\p{Bidi_Control=Yes}', "");
-    Expect(1, 8298, '\p{^Bidi_Control=Yes}', "");
-    Expect(1, 8298, '\P{Bidi_Control=Yes}', "");
-    Expect(0, 8298, '\P{^Bidi_Control=Yes}', "");
-    Error('\p{Bidi_C=:=y}');
-    Error('\P{Bidi_C=:=y}');
+    Expect(1, 8297, '\p{Bidi_Control=-YES}', "");
+    Expect(0, 8297, '\p{^Bidi_Control=-YES}', "");
+    Expect(0, 8297, '\P{Bidi_Control=-YES}', "");
+    Expect(1, 8297, '\P{^Bidi_Control=-YES}', "");
+    Expect(0, 8298, '\p{Bidi_Control=-YES}', "");
+    Expect(1, 8298, '\p{^Bidi_Control=-YES}', "");
+    Expect(1, 8298, '\P{Bidi_Control=-YES}', "");
+    Expect(0, 8298, '\P{^Bidi_Control=-YES}', "");
+    Error('\p{Bidi_C=/a/ Y}');
+    Error('\P{Bidi_C=/a/ Y}');
     Expect(1, 8297, '\p{Bidi_C=:\AY\z:}', "");;
     Expect(0, 8298, '\p{Bidi_C=:\AY\z:}', "");;
     Expect(1, 8297, '\p{Bidi_C=y}', "");
@@ -3502,16 +3526,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8298, '\P{^Bidi_C=y}', "");
     Expect(1, 8297, '\p{Bidi_C=:\Ay\z:}', "");;
     Expect(0, 8298, '\p{Bidi_C=:\Ay\z:}', "");;
-    Expect(1, 8297, '\p{Bidi_C:	 _Y}', "");
-    Expect(0, 8297, '\p{^Bidi_C:	 _Y}', "");
-    Expect(0, 8297, '\P{Bidi_C:	 _Y}', "");
-    Expect(1, 8297, '\P{^Bidi_C:	 _Y}', "");
-    Expect(0, 8298, '\p{Bidi_C:	 _Y}', "");
-    Expect(1, 8298, '\p{^Bidi_C:	 _Y}', "");
-    Expect(1, 8298, '\P{Bidi_C:	 _Y}', "");
-    Expect(0, 8298, '\P{^Bidi_C:	 _Y}', "");
-    Error('\p{Is_Bidi_Control=:=T}');
-    Error('\P{Is_Bidi_Control=:=T}');
+    Expect(1, 8297, '\p{Bidi_C:Y}', "");
+    Expect(0, 8297, '\p{^Bidi_C:Y}', "");
+    Expect(0, 8297, '\P{Bidi_C:Y}', "");
+    Expect(1, 8297, '\P{^Bidi_C:Y}', "");
+    Expect(0, 8298, '\p{Bidi_C:Y}', "");
+    Expect(1, 8298, '\p{^Bidi_C:Y}', "");
+    Expect(1, 8298, '\P{Bidi_C:Y}', "");
+    Expect(0, 8298, '\P{^Bidi_C:Y}', "");
+    Error('\p{Is_Bidi_Control=/a/_T}');
+    Error('\P{Is_Bidi_Control=/a/_T}');
     Expect(1, 8297, '\p{Is_Bidi_Control=t}', "");
     Expect(0, 8297, '\p{^Is_Bidi_Control=t}', "");
     Expect(0, 8297, '\P{Is_Bidi_Control=t}', "");
@@ -3520,16 +3544,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8298, '\p{^Is_Bidi_Control=t}', "");
     Expect(1, 8298, '\P{Is_Bidi_Control=t}', "");
     Expect(0, 8298, '\P{^Is_Bidi_Control=t}', "");
-    Expect(1, 8297, '\p{Is_Bidi_Control=	 T}', "");
-    Expect(0, 8297, '\p{^Is_Bidi_Control=	 T}', "");
-    Expect(0, 8297, '\P{Is_Bidi_Control=	 T}', "");
-    Expect(1, 8297, '\P{^Is_Bidi_Control=	 T}', "");
-    Expect(0, 8298, '\p{Is_Bidi_Control=	 T}', "");
-    Expect(1, 8298, '\p{^Is_Bidi_Control=	 T}', "");
-    Expect(1, 8298, '\P{Is_Bidi_Control=	 T}', "");
-    Expect(0, 8298, '\P{^Is_Bidi_Control=	 T}', "");
-    Error('\p{Is_Bidi_C=True/a/}');
-    Error('\P{Is_Bidi_C=True/a/}');
+    Expect(1, 8297, '\p{Is_Bidi_Control= T}', "");
+    Expect(0, 8297, '\p{^Is_Bidi_Control= T}', "");
+    Expect(0, 8297, '\P{Is_Bidi_Control= T}', "");
+    Expect(1, 8297, '\P{^Is_Bidi_Control= T}', "");
+    Expect(0, 8298, '\p{Is_Bidi_Control= T}', "");
+    Expect(1, 8298, '\p{^Is_Bidi_Control= T}', "");
+    Expect(1, 8298, '\P{Is_Bidi_Control= T}', "");
+    Expect(0, 8298, '\P{^Is_Bidi_Control= T}', "");
+    Error('\p{Is_Bidi_C=-True:=}');
+    Error('\P{Is_Bidi_C=-True:=}');
     Expect(1, 8297, '\p{Is_Bidi_C=true}', "");
     Expect(0, 8297, '\p{^Is_Bidi_C=true}', "");
     Expect(0, 8297, '\P{Is_Bidi_C=true}', "");
@@ -3538,16 +3562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8298, '\p{^Is_Bidi_C=true}', "");
     Expect(1, 8298, '\P{Is_Bidi_C=true}', "");
     Expect(0, 8298, '\P{^Is_Bidi_C=true}', "");
-    Expect(1, 8297, '\p{Is_Bidi_C=__TRUE}', "");
-    Expect(0, 8297, '\p{^Is_Bidi_C=__TRUE}', "");
-    Expect(0, 8297, '\P{Is_Bidi_C=__TRUE}', "");
-    Expect(1, 8297, '\P{^Is_Bidi_C=__TRUE}', "");
-    Expect(0, 8298, '\p{Is_Bidi_C=__TRUE}', "");
-    Expect(1, 8298, '\p{^Is_Bidi_C=__TRUE}', "");
-    Expect(1, 8298, '\P{Is_Bidi_C=__TRUE}', "");
-    Expect(0, 8298, '\P{^Is_Bidi_C=__TRUE}', "");
-    Error('\p{Bidi_Mirrored=/a/_no}');
-    Error('\P{Bidi_Mirrored=/a/_no}');
+    Expect(1, 8297, '\p{Is_Bidi_C=	TRUE}', "");
+    Expect(0, 8297, '\p{^Is_Bidi_C=	TRUE}', "");
+    Expect(0, 8297, '\P{Is_Bidi_C=	TRUE}', "");
+    Expect(1, 8297, '\P{^Is_Bidi_C=	TRUE}', "");
+    Expect(0, 8298, '\p{Is_Bidi_C=	TRUE}', "");
+    Expect(1, 8298, '\p{^Is_Bidi_C=	TRUE}', "");
+    Expect(1, 8298, '\P{Is_Bidi_C=	TRUE}', "");
+    Expect(0, 8298, '\P{^Is_Bidi_C=	TRUE}', "");
+    Error('\p{Bidi_Mirrored=	_No/a/}');
+    Error('\P{Bidi_Mirrored=	_No/a/}');
     Expect(1, 120772, '\p{Bidi_Mirrored=:\ANo\z:}', "");;
     Expect(0, 120771, '\p{Bidi_Mirrored=:\ANo\z:}', "");;
     Expect(1, 120772, '\p{Bidi_Mirrored=no}', "");
@@ -3560,16 +3584,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 120771, '\P{^Bidi_Mirrored=no}', "");
     Expect(1, 120772, '\p{Bidi_Mirrored=:\Ano\z:}', "");;
     Expect(0, 120771, '\p{Bidi_Mirrored=:\Ano\z:}', "");;
-    Expect(1, 120772, '\p{Bidi_Mirrored=-_No}', "");
-    Expect(0, 120772, '\p{^Bidi_Mirrored=-_No}', "");
-    Expect(0, 120772, '\P{Bidi_Mirrored=-_No}', "");
-    Expect(1, 120772, '\P{^Bidi_Mirrored=-_No}', "");
-    Expect(0, 120771, '\p{Bidi_Mirrored=-_No}', "");
-    Expect(1, 120771, '\p{^Bidi_Mirrored=-_No}', "");
-    Expect(1, 120771, '\P{Bidi_Mirrored=-_No}', "");
-    Expect(0, 120771, '\P{^Bidi_Mirrored=-_No}', "");
-    Error('\p{Bidi_M=:=N}');
-    Error('\P{Bidi_M=:=N}');
+    Expect(1, 120772, '\p{Bidi_Mirrored=  NO}', "");
+    Expect(0, 120772, '\p{^Bidi_Mirrored=  NO}', "");
+    Expect(0, 120772, '\P{Bidi_Mirrored=  NO}', "");
+    Expect(1, 120772, '\P{^Bidi_Mirrored=  NO}', "");
+    Expect(0, 120771, '\p{Bidi_Mirrored=  NO}', "");
+    Expect(1, 120771, '\p{^Bidi_Mirrored=  NO}', "");
+    Expect(1, 120771, '\P{Bidi_Mirrored=  NO}', "");
+    Expect(0, 120771, '\P{^Bidi_Mirrored=  NO}', "");
+    Error('\p{Bidi_M:	  N:=}');
+    Error('\P{Bidi_M:	  N:=}');
     Expect(1, 120772, '\p{Bidi_M=:\AN\z:}', "");;
     Expect(0, 120771, '\p{Bidi_M=:\AN\z:}', "");;
     Expect(1, 120772, '\p{Bidi_M=n}', "");
@@ -3582,34 +3606,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 120771, '\P{^Bidi_M=n}', "");
     Expect(1, 120772, '\p{Bidi_M=:\An\z:}', "");;
     Expect(0, 120771, '\p{Bidi_M=:\An\z:}', "");;
-    Expect(1, 120772, '\p{Bidi_M=-_N}', "");
-    Expect(0, 120772, '\p{^Bidi_M=-_N}', "");
-    Expect(0, 120772, '\P{Bidi_M=-_N}', "");
-    Expect(1, 120772, '\P{^Bidi_M=-_N}', "");
-    Expect(0, 120771, '\p{Bidi_M=-_N}', "");
-    Expect(1, 120771, '\p{^Bidi_M=-_N}', "");
-    Expect(1, 120771, '\P{Bidi_M=-_N}', "");
-    Expect(0, 120771, '\P{^Bidi_M=-_N}', "");
-    Error('\p{Is_Bidi_Mirrored=/a/	F}');
-    Error('\P{Is_Bidi_Mirrored=/a/	F}');
-    Expect(1, 120772, '\p{Is_Bidi_Mirrored:	f}', "");
-    Expect(0, 120772, '\p{^Is_Bidi_Mirrored:	f}', "");
-    Expect(0, 120772, '\P{Is_Bidi_Mirrored:	f}', "");
-    Expect(1, 120772, '\P{^Is_Bidi_Mirrored:	f}', "");
-    Expect(0, 120771, '\p{Is_Bidi_Mirrored:	f}', "");
-    Expect(1, 120771, '\p{^Is_Bidi_Mirrored:	f}', "");
-    Expect(1, 120771, '\P{Is_Bidi_Mirrored:	f}', "");
-    Expect(0, 120771, '\P{^Is_Bidi_Mirrored:	f}', "");
-    Expect(1, 120772, '\p{Is_Bidi_Mirrored= f}', "");
-    Expect(0, 120772, '\p{^Is_Bidi_Mirrored= f}', "");
-    Expect(0, 120772, '\P{Is_Bidi_Mirrored= f}', "");
-    Expect(1, 120772, '\P{^Is_Bidi_Mirrored= f}', "");
-    Expect(0, 120771, '\p{Is_Bidi_Mirrored= f}', "");
-    Expect(1, 120771, '\p{^Is_Bidi_Mirrored= f}', "");
-    Expect(1, 120771, '\P{Is_Bidi_Mirrored= f}', "");
-    Expect(0, 120771, '\P{^Is_Bidi_Mirrored= f}', "");
-    Error('\p{Is_Bidi_M=_False:=}');
-    Error('\P{Is_Bidi_M=_False:=}');
+    Expect(1, 120772, '\p{Bidi_M=_N}', "");
+    Expect(0, 120772, '\p{^Bidi_M=_N}', "");
+    Expect(0, 120772, '\P{Bidi_M=_N}', "");
+    Expect(1, 120772, '\P{^Bidi_M=_N}', "");
+    Expect(0, 120771, '\p{Bidi_M=_N}', "");
+    Expect(1, 120771, '\p{^Bidi_M=_N}', "");
+    Expect(1, 120771, '\P{Bidi_M=_N}', "");
+    Expect(0, 120771, '\P{^Bidi_M=_N}', "");
+    Error('\p{Is_Bidi_Mirrored=:=-F}');
+    Error('\P{Is_Bidi_Mirrored=:=-F}');
+    Expect(1, 120772, '\p{Is_Bidi_Mirrored=f}', "");
+    Expect(0, 120772, '\p{^Is_Bidi_Mirrored=f}', "");
+    Expect(0, 120772, '\P{Is_Bidi_Mirrored=f}', "");
+    Expect(1, 120772, '\P{^Is_Bidi_Mirrored=f}', "");
+    Expect(0, 120771, '\p{Is_Bidi_Mirrored=f}', "");
+    Expect(1, 120771, '\p{^Is_Bidi_Mirrored=f}', "");
+    Expect(1, 120771, '\P{Is_Bidi_Mirrored=f}', "");
+    Expect(0, 120771, '\P{^Is_Bidi_Mirrored=f}', "");
+    Expect(1, 120772, '\p{Is_Bidi_Mirrored=-	f}', "");
+    Expect(0, 120772, '\p{^Is_Bidi_Mirrored=-	f}', "");
+    Expect(0, 120772, '\P{Is_Bidi_Mirrored=-	f}', "");
+    Expect(1, 120772, '\P{^Is_Bidi_Mirrored=-	f}', "");
+    Expect(0, 120771, '\p{Is_Bidi_Mirrored=-	f}', "");
+    Expect(1, 120771, '\p{^Is_Bidi_Mirrored=-	f}', "");
+    Expect(1, 120771, '\P{Is_Bidi_Mirrored=-	f}', "");
+    Expect(0, 120771, '\P{^Is_Bidi_Mirrored=-	f}', "");
+    Error('\p{Is_Bidi_M=:=	 false}');
+    Error('\P{Is_Bidi_M=:=	 false}');
     Expect(1, 120772, '\p{Is_Bidi_M=false}', "");
     Expect(0, 120772, '\p{^Is_Bidi_M=false}', "");
     Expect(0, 120772, '\P{Is_Bidi_M=false}', "");
@@ -3618,16 +3642,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 120771, '\p{^Is_Bidi_M=false}', "");
     Expect(1, 120771, '\P{Is_Bidi_M=false}', "");
     Expect(0, 120771, '\P{^Is_Bidi_M=false}', "");
-    Expect(1, 120772, '\p{Is_Bidi_M=_False}', "");
-    Expect(0, 120772, '\p{^Is_Bidi_M=_False}', "");
-    Expect(0, 120772, '\P{Is_Bidi_M=_False}', "");
-    Expect(1, 120772, '\P{^Is_Bidi_M=_False}', "");
-    Expect(0, 120771, '\p{Is_Bidi_M=_False}', "");
-    Expect(1, 120771, '\p{^Is_Bidi_M=_False}', "");
-    Expect(1, 120771, '\P{Is_Bidi_M=_False}', "");
-    Expect(0, 120771, '\P{^Is_Bidi_M=_False}', "");
-    Error('\p{Bidi_Mirrored=/a/	Yes}');
-    Error('\P{Bidi_Mirrored=/a/	Yes}');
+    Expect(1, 120772, '\p{Is_Bidi_M: -False}', "");
+    Expect(0, 120772, '\p{^Is_Bidi_M: -False}', "");
+    Expect(0, 120772, '\P{Is_Bidi_M: -False}', "");
+    Expect(1, 120772, '\P{^Is_Bidi_M: -False}', "");
+    Expect(0, 120771, '\p{Is_Bidi_M: -False}', "");
+    Expect(1, 120771, '\p{^Is_Bidi_M: -False}', "");
+    Expect(1, 120771, '\P{Is_Bidi_M: -False}', "");
+    Expect(0, 120771, '\P{^Is_Bidi_M: -False}', "");
+    Error('\p{Bidi_Mirrored=-:=Yes}');
+    Error('\P{Bidi_Mirrored=-:=Yes}');
     Expect(1, 120771, '\p{Bidi_Mirrored=:\AYes\z:}', "");;
     Expect(0, 120772, '\p{Bidi_Mirrored=:\AYes\z:}', "");;
     Expect(1, 120771, '\p{Bidi_Mirrored=yes}', "");
@@ -3640,16 +3664,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 120772, '\P{^Bidi_Mirrored=yes}', "");
     Expect(1, 120771, '\p{Bidi_Mirrored=:\Ayes\z:}', "");;
     Expect(0, 120772, '\p{Bidi_Mirrored=:\Ayes\z:}', "");;
-    Expect(1, 120771, '\p{Bidi_Mirrored=_YES}', "");
-    Expect(0, 120771, '\p{^Bidi_Mirrored=_YES}', "");
-    Expect(0, 120771, '\P{Bidi_Mirrored=_YES}', "");
-    Expect(1, 120771, '\P{^Bidi_Mirrored=_YES}', "");
-    Expect(0, 120772, '\p{Bidi_Mirrored=_YES}', "");
-    Expect(1, 120772, '\p{^Bidi_Mirrored=_YES}', "");
-    Expect(1, 120772, '\P{Bidi_Mirrored=_YES}', "");
-    Expect(0, 120772, '\P{^Bidi_Mirrored=_YES}', "");
-    Error('\p{Bidi_M=-	Y/a/}');
-    Error('\P{Bidi_M=-	Y/a/}');
+    Expect(1, 120771, '\p{Bidi_Mirrored=- Yes}', "");
+    Expect(0, 120771, '\p{^Bidi_Mirrored=- Yes}', "");
+    Expect(0, 120771, '\P{Bidi_Mirrored=- Yes}', "");
+    Expect(1, 120771, '\P{^Bidi_Mirrored=- Yes}', "");
+    Expect(0, 120772, '\p{Bidi_Mirrored=- Yes}', "");
+    Expect(1, 120772, '\p{^Bidi_Mirrored=- Yes}', "");
+    Expect(1, 120772, '\P{Bidi_Mirrored=- Yes}', "");
+    Expect(0, 120772, '\P{^Bidi_Mirrored=- Yes}', "");
+    Error('\p{Bidi_M=__y/a/}');
+    Error('\P{Bidi_M=__y/a/}');
     Expect(1, 120771, '\p{Bidi_M=:\AY\z:}', "");;
     Expect(0, 120772, '\p{Bidi_M=:\AY\z:}', "");;
     Expect(1, 120771, '\p{Bidi_M=y}', "");
@@ -3662,16 +3686,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 120772, '\P{^Bidi_M=y}', "");
     Expect(1, 120771, '\p{Bidi_M=:\Ay\z:}', "");;
     Expect(0, 120772, '\p{Bidi_M=:\Ay\z:}', "");;
-    Expect(1, 120771, '\p{Bidi_M=_Y}', "");
-    Expect(0, 120771, '\p{^Bidi_M=_Y}', "");
-    Expect(0, 120771, '\P{Bidi_M=_Y}', "");
-    Expect(1, 120771, '\P{^Bidi_M=_Y}', "");
-    Expect(0, 120772, '\p{Bidi_M=_Y}', "");
-    Expect(1, 120772, '\p{^Bidi_M=_Y}', "");
-    Expect(1, 120772, '\P{Bidi_M=_Y}', "");
-    Expect(0, 120772, '\P{^Bidi_M=_Y}', "");
-    Error('\p{Is_Bidi_Mirrored:	/a/--T}');
-    Error('\P{Is_Bidi_Mirrored:	/a/--T}');
+    Expect(1, 120771, '\p{Bidi_M=	y}', "");
+    Expect(0, 120771, '\p{^Bidi_M=	y}', "");
+    Expect(0, 120771, '\P{Bidi_M=	y}', "");
+    Expect(1, 120771, '\P{^Bidi_M=	y}', "");
+    Expect(0, 120772, '\p{Bidi_M=	y}', "");
+    Expect(1, 120772, '\p{^Bidi_M=	y}', "");
+    Expect(1, 120772, '\P{Bidi_M=	y}', "");
+    Expect(0, 120772, '\P{^Bidi_M=	y}', "");
+    Error('\p{Is_Bidi_Mirrored=:=T}');
+    Error('\P{Is_Bidi_Mirrored=:=T}');
     Expect(1, 120771, '\p{Is_Bidi_Mirrored=t}', "");
     Expect(0, 120771, '\p{^Is_Bidi_Mirrored=t}', "");
     Expect(0, 120771, '\P{Is_Bidi_Mirrored=t}', "");
@@ -3680,16 +3704,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 120772, '\p{^Is_Bidi_Mirrored=t}', "");
     Expect(1, 120772, '\P{Is_Bidi_Mirrored=t}', "");
     Expect(0, 120772, '\P{^Is_Bidi_Mirrored=t}', "");
-    Expect(1, 120771, '\p{Is_Bidi_Mirrored= 	T}', "");
-    Expect(0, 120771, '\p{^Is_Bidi_Mirrored= 	T}', "");
-    Expect(0, 120771, '\P{Is_Bidi_Mirrored= 	T}', "");
-    Expect(1, 120771, '\P{^Is_Bidi_Mirrored= 	T}', "");
-    Expect(0, 120772, '\p{Is_Bidi_Mirrored= 	T}', "");
-    Expect(1, 120772, '\p{^Is_Bidi_Mirrored= 	T}', "");
-    Expect(1, 120772, '\P{Is_Bidi_Mirrored= 	T}', "");
-    Expect(0, 120772, '\P{^Is_Bidi_Mirrored= 	T}', "");
-    Error('\p{Is_Bidi_M=	:=True}');
-    Error('\P{Is_Bidi_M=	:=True}');
+    Expect(1, 120771, '\p{Is_Bidi_Mirrored=_ T}', "");
+    Expect(0, 120771, '\p{^Is_Bidi_Mirrored=_ T}', "");
+    Expect(0, 120771, '\P{Is_Bidi_Mirrored=_ T}', "");
+    Expect(1, 120771, '\P{^Is_Bidi_Mirrored=_ T}', "");
+    Expect(0, 120772, '\p{Is_Bidi_Mirrored=_ T}', "");
+    Expect(1, 120772, '\p{^Is_Bidi_Mirrored=_ T}', "");
+    Expect(1, 120772, '\P{Is_Bidi_Mirrored=_ T}', "");
+    Expect(0, 120772, '\P{^Is_Bidi_Mirrored=_ T}', "");
+    Error('\p{Is_Bidi_M=_-true/a/}');
+    Error('\P{Is_Bidi_M=_-true/a/}');
     Expect(1, 120771, '\p{Is_Bidi_M=true}', "");
     Expect(0, 120771, '\p{^Is_Bidi_M=true}', "");
     Expect(0, 120771, '\P{Is_Bidi_M=true}', "");
@@ -3698,20 +3722,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 120772, '\p{^Is_Bidi_M=true}', "");
     Expect(1, 120772, '\P{Is_Bidi_M=true}', "");
     Expect(0, 120772, '\P{^Is_Bidi_M=true}', "");
-    Expect(1, 120771, '\p{Is_Bidi_M=-True}', "");
-    Expect(0, 120771, '\p{^Is_Bidi_M=-True}', "");
-    Expect(0, 120771, '\P{Is_Bidi_M=-True}', "");
-    Expect(1, 120771, '\P{^Is_Bidi_M=-True}', "");
-    Expect(0, 120772, '\p{Is_Bidi_M=-True}', "");
-    Expect(1, 120772, '\p{^Is_Bidi_M=-True}', "");
-    Expect(1, 120772, '\P{Is_Bidi_M=-True}', "");
-    Expect(0, 120772, '\P{^Is_Bidi_M=-True}', "");
+    Expect(1, 120771, '\p{Is_Bidi_M= -TRUE}', "");
+    Expect(0, 120771, '\p{^Is_Bidi_M= -TRUE}', "");
+    Expect(0, 120771, '\P{Is_Bidi_M= -TRUE}', "");
+    Expect(1, 120771, '\P{^Is_Bidi_M= -TRUE}', "");
+    Expect(0, 120772, '\p{Is_Bidi_M= -TRUE}', "");
+    Expect(1, 120772, '\p{^Is_Bidi_M= -TRUE}', "");
+    Expect(1, 120772, '\P{Is_Bidi_M= -TRUE}', "");
+    Expect(0, 120772, '\P{^Is_Bidi_M= -TRUE}', "");
     Error('\p{block}');
     Error('\P{block}');
     Error('\p{blk}');
     Error('\P{blk}');
-    Error('\p{Block=:=-_Adlam}');
-    Error('\P{Block=:=-_Adlam}');
+    Error('\p{Block=:=	-Adlam}');
+    Error('\P{Block=:=	-Adlam}');
     Expect(1, 125279, '\p{Block=:\AAdlam\z:}', "");;
     Expect(0, 125280, '\p{Block=:\AAdlam\z:}', "");;
     Expect(1, 125279, '\p{Block=adlam}', "");
@@ -3724,16 +3748,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125280, '\P{^Block=adlam}', "");
     Expect(1, 125279, '\p{Block=:\Aadlam\z:}', "");;
     Expect(0, 125280, '\p{Block=:\Aadlam\z:}', "");;
-    Expect(1, 125279, '\p{Block=	-Adlam}', "");
-    Expect(0, 125279, '\p{^Block=	-Adlam}', "");
-    Expect(0, 125279, '\P{Block=	-Adlam}', "");
-    Expect(1, 125279, '\P{^Block=	-Adlam}', "");
-    Expect(0, 125280, '\p{Block=	-Adlam}', "");
-    Expect(1, 125280, '\p{^Block=	-Adlam}', "");
-    Expect(1, 125280, '\P{Block=	-Adlam}', "");
-    Expect(0, 125280, '\P{^Block=	-Adlam}', "");
-    Error('\p{Blk=_/a/Adlam}');
-    Error('\P{Blk=_/a/Adlam}');
+    Expect(1, 125279, '\p{Block=	-ADLAM}', "");
+    Expect(0, 125279, '\p{^Block=	-ADLAM}', "");
+    Expect(0, 125279, '\P{Block=	-ADLAM}', "");
+    Expect(1, 125279, '\P{^Block=	-ADLAM}', "");
+    Expect(0, 125280, '\p{Block=	-ADLAM}', "");
+    Expect(1, 125280, '\p{^Block=	-ADLAM}', "");
+    Expect(1, 125280, '\P{Block=	-ADLAM}', "");
+    Expect(0, 125280, '\P{^Block=	-ADLAM}', "");
+    Error('\p{Blk=:=_	ADLAM}');
+    Error('\P{Blk=:=_	ADLAM}');
     Expect(1, 125279, '\p{Blk=:\AAdlam\z:}', "");;
     Expect(0, 125280, '\p{Blk=:\AAdlam\z:}', "");;
     Expect(1, 125279, '\p{Blk=adlam}', "");
@@ -3746,16 +3770,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125280, '\P{^Blk=adlam}', "");
     Expect(1, 125279, '\p{Blk=:\Aadlam\z:}', "");;
     Expect(0, 125280, '\p{Blk=:\Aadlam\z:}', "");;
-    Expect(1, 125279, '\p{Blk:   --Adlam}', "");
-    Expect(0, 125279, '\p{^Blk:   --Adlam}', "");
-    Expect(0, 125279, '\P{Blk:   --Adlam}', "");
-    Expect(1, 125279, '\P{^Blk:   --Adlam}', "");
-    Expect(0, 125280, '\p{Blk:   --Adlam}', "");
-    Expect(1, 125280, '\p{^Blk:   --Adlam}', "");
-    Expect(1, 125280, '\P{Blk:   --Adlam}', "");
-    Expect(0, 125280, '\P{^Blk:   --Adlam}', "");
-    Error('\p{Is_Block=/a/	-Adlam}');
-    Error('\P{Is_Block=/a/	-Adlam}');
+    Expect(1, 125279, '\p{Blk= 	Adlam}', "");
+    Expect(0, 125279, '\p{^Blk= 	Adlam}', "");
+    Expect(0, 125279, '\P{Blk= 	Adlam}', "");
+    Expect(1, 125279, '\P{^Blk= 	Adlam}', "");
+    Expect(0, 125280, '\p{Blk= 	Adlam}', "");
+    Expect(1, 125280, '\p{^Blk= 	Adlam}', "");
+    Expect(1, 125280, '\P{Blk= 	Adlam}', "");
+    Expect(0, 125280, '\P{^Blk= 	Adlam}', "");
+    Error('\p{Is_Block:	_-ADLAM/a/}');
+    Error('\P{Is_Block:	_-ADLAM/a/}');
     Expect(1, 125279, '\p{Is_Block=adlam}', "");
     Expect(0, 125279, '\p{^Is_Block=adlam}', "");
     Expect(0, 125279, '\P{Is_Block=adlam}', "");
@@ -3764,16 +3788,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125280, '\p{^Is_Block=adlam}', "");
     Expect(1, 125280, '\P{Is_Block=adlam}', "");
     Expect(0, 125280, '\P{^Is_Block=adlam}', "");
-    Expect(1, 125279, '\p{Is_Block=_	adlam}', "");
-    Expect(0, 125279, '\p{^Is_Block=_	adlam}', "");
-    Expect(0, 125279, '\P{Is_Block=_	adlam}', "");
-    Expect(1, 125279, '\P{^Is_Block=_	adlam}', "");
-    Expect(0, 125280, '\p{Is_Block=_	adlam}', "");
-    Expect(1, 125280, '\p{^Is_Block=_	adlam}', "");
-    Expect(1, 125280, '\P{Is_Block=_	adlam}', "");
-    Expect(0, 125280, '\P{^Is_Block=_	adlam}', "");
-    Error('\p{Is_Blk=/a/Adlam}');
-    Error('\P{Is_Blk=/a/Adlam}');
+    Expect(1, 125279, '\p{Is_Block=__Adlam}', "");
+    Expect(0, 125279, '\p{^Is_Block=__Adlam}', "");
+    Expect(0, 125279, '\P{Is_Block=__Adlam}', "");
+    Expect(1, 125279, '\P{^Is_Block=__Adlam}', "");
+    Expect(0, 125280, '\p{Is_Block=__Adlam}', "");
+    Expect(1, 125280, '\p{^Is_Block=__Adlam}', "");
+    Expect(1, 125280, '\P{Is_Block=__Adlam}', "");
+    Expect(0, 125280, '\P{^Is_Block=__Adlam}', "");
+    Error('\p{Is_Blk=- adlam/a/}');
+    Error('\P{Is_Blk=- adlam/a/}');
     Expect(1, 125279, '\p{Is_Blk=adlam}', "");
     Expect(0, 125279, '\p{^Is_Blk=adlam}', "");
     Expect(0, 125279, '\P{Is_Blk=adlam}', "");
@@ -3782,16 +3806,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125280, '\p{^Is_Blk=adlam}', "");
     Expect(1, 125280, '\P{Is_Blk=adlam}', "");
     Expect(0, 125280, '\P{^Is_Blk=adlam}', "");
-    Expect(1, 125279, '\p{Is_Blk:	 -Adlam}', "");
-    Expect(0, 125279, '\p{^Is_Blk:	 -Adlam}', "");
-    Expect(0, 125279, '\P{Is_Blk:	 -Adlam}', "");
-    Expect(1, 125279, '\P{^Is_Blk:	 -Adlam}', "");
-    Expect(0, 125280, '\p{Is_Blk:	 -Adlam}', "");
-    Expect(1, 125280, '\p{^Is_Blk:	 -Adlam}', "");
-    Expect(1, 125280, '\P{Is_Blk:	 -Adlam}', "");
-    Expect(0, 125280, '\P{^Is_Blk:	 -Adlam}', "");
-    Error('\p{Block:   -/a/aegean_numbers}');
-    Error('\P{Block:   -/a/aegean_numbers}');
+    Expect(1, 125279, '\p{Is_Blk=-_ADLAM}', "");
+    Expect(0, 125279, '\p{^Is_Blk=-_ADLAM}', "");
+    Expect(0, 125279, '\P{Is_Blk=-_ADLAM}', "");
+    Expect(1, 125279, '\P{^Is_Blk=-_ADLAM}', "");
+    Expect(0, 125280, '\p{Is_Blk=-_ADLAM}', "");
+    Expect(1, 125280, '\p{^Is_Blk=-_ADLAM}', "");
+    Expect(1, 125280, '\P{Is_Blk=-_ADLAM}', "");
+    Expect(0, 125280, '\P{^Is_Blk=-_ADLAM}', "");
+    Error('\p{Block=:=Aegean_numbers}');
+    Error('\P{Block=:=Aegean_numbers}');
     Expect(1, 65855, '\p{Block=:\AAegean_Numbers\z:}', "");;
     Expect(0, 65856, '\p{Block=:\AAegean_Numbers\z:}', "");;
     Expect(1, 65855, '\p{Block=aegeannumbers}', "");
@@ -3804,16 +3828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65856, '\P{^Block=aegeannumbers}', "");
     Expect(1, 65855, '\p{Block=:\Aaegeannumbers\z:}', "");;
     Expect(0, 65856, '\p{Block=:\Aaegeannumbers\z:}', "");;
-    Expect(1, 65855, '\p{Block=_	Aegean_Numbers}', "");
-    Expect(0, 65855, '\p{^Block=_	Aegean_Numbers}', "");
-    Expect(0, 65855, '\P{Block=_	Aegean_Numbers}', "");
-    Expect(1, 65855, '\P{^Block=_	Aegean_Numbers}', "");
-    Expect(0, 65856, '\p{Block=_	Aegean_Numbers}', "");
-    Expect(1, 65856, '\p{^Block=_	Aegean_Numbers}', "");
-    Expect(1, 65856, '\P{Block=_	Aegean_Numbers}', "");
-    Expect(0, 65856, '\P{^Block=_	Aegean_Numbers}', "");
-    Error('\p{Blk=/a/aegean_Numbers}');
-    Error('\P{Blk=/a/aegean_Numbers}');
+    Expect(1, 65855, '\p{Block=_-Aegean_Numbers}', "");
+    Expect(0, 65855, '\p{^Block=_-Aegean_Numbers}', "");
+    Expect(0, 65855, '\P{Block=_-Aegean_Numbers}', "");
+    Expect(1, 65855, '\P{^Block=_-Aegean_Numbers}', "");
+    Expect(0, 65856, '\p{Block=_-Aegean_Numbers}', "");
+    Expect(1, 65856, '\p{^Block=_-Aegean_Numbers}', "");
+    Expect(1, 65856, '\P{Block=_-Aegean_Numbers}', "");
+    Expect(0, 65856, '\P{^Block=_-Aegean_Numbers}', "");
+    Error('\p{Blk=/a/AEGEAN_NUMBERS}');
+    Error('\P{Blk=/a/AEGEAN_NUMBERS}');
     Expect(1, 65855, '\p{Blk=:\AAegean_Numbers\z:}', "");;
     Expect(0, 65856, '\p{Blk=:\AAegean_Numbers\z:}', "");;
     Expect(1, 65855, '\p{Blk=aegeannumbers}', "");
@@ -3826,16 +3850,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65856, '\P{^Blk=aegeannumbers}', "");
     Expect(1, 65855, '\p{Blk=:\Aaegeannumbers\z:}', "");;
     Expect(0, 65856, '\p{Blk=:\Aaegeannumbers\z:}', "");;
-    Expect(1, 65855, '\p{Blk=	Aegean_Numbers}', "");
-    Expect(0, 65855, '\p{^Blk=	Aegean_Numbers}', "");
-    Expect(0, 65855, '\P{Blk=	Aegean_Numbers}', "");
-    Expect(1, 65855, '\P{^Blk=	Aegean_Numbers}', "");
-    Expect(0, 65856, '\p{Blk=	Aegean_Numbers}', "");
-    Expect(1, 65856, '\p{^Blk=	Aegean_Numbers}', "");
-    Expect(1, 65856, '\P{Blk=	Aegean_Numbers}', "");
-    Expect(0, 65856, '\P{^Blk=	Aegean_Numbers}', "");
-    Error('\p{Is_Block=/a/__aegean_Numbers}');
-    Error('\P{Is_Block=/a/__aegean_Numbers}');
+    Expect(1, 65855, '\p{Blk=-	AEGEAN_numbers}', "");
+    Expect(0, 65855, '\p{^Blk=-	AEGEAN_numbers}', "");
+    Expect(0, 65855, '\P{Blk=-	AEGEAN_numbers}', "");
+    Expect(1, 65855, '\P{^Blk=-	AEGEAN_numbers}', "");
+    Expect(0, 65856, '\p{Blk=-	AEGEAN_numbers}', "");
+    Expect(1, 65856, '\p{^Blk=-	AEGEAN_numbers}', "");
+    Expect(1, 65856, '\P{Blk=-	AEGEAN_numbers}', "");
+    Expect(0, 65856, '\P{^Blk=-	AEGEAN_numbers}', "");
+    Error('\p{Is_Block=/a/	 aegean_numbers}');
+    Error('\P{Is_Block=/a/	 aegean_numbers}');
     Expect(1, 65855, '\p{Is_Block=aegeannumbers}', "");
     Expect(0, 65855, '\p{^Is_Block=aegeannumbers}', "");
     Expect(0, 65855, '\P{Is_Block=aegeannumbers}', "");
@@ -3844,16 +3868,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65856, '\p{^Is_Block=aegeannumbers}', "");
     Expect(1, 65856, '\P{Is_Block=aegeannumbers}', "");
     Expect(0, 65856, '\P{^Is_Block=aegeannumbers}', "");
-    Expect(1, 65855, '\p{Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(0, 65855, '\p{^Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(0, 65855, '\P{Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(1, 65855, '\P{^Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(0, 65856, '\p{Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(1, 65856, '\p{^Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(1, 65856, '\P{Is_Block=--AEGEAN_NUMBERS}', "");
-    Expect(0, 65856, '\P{^Is_Block=--AEGEAN_NUMBERS}', "");
-    Error('\p{Is_Blk=:=	-Aegean_NUMBERS}');
-    Error('\P{Is_Blk=:=	-Aegean_NUMBERS}');
+    Expect(1, 65855, '\p{Is_Block=	 Aegean_Numbers}', "");
+    Expect(0, 65855, '\p{^Is_Block=	 Aegean_Numbers}', "");
+    Expect(0, 65855, '\P{Is_Block=	 Aegean_Numbers}', "");
+    Expect(1, 65855, '\P{^Is_Block=	 Aegean_Numbers}', "");
+    Expect(0, 65856, '\p{Is_Block=	 Aegean_Numbers}', "");
+    Expect(1, 65856, '\p{^Is_Block=	 Aegean_Numbers}', "");
+    Expect(1, 65856, '\P{Is_Block=	 Aegean_Numbers}', "");
+    Expect(0, 65856, '\P{^Is_Block=	 Aegean_Numbers}', "");
+    Error('\p{Is_Blk=-aegean_Numbers:=}');
+    Error('\P{Is_Blk=-aegean_Numbers:=}');
     Expect(1, 65855, '\p{Is_Blk=aegeannumbers}', "");
     Expect(0, 65855, '\p{^Is_Blk=aegeannumbers}', "");
     Expect(0, 65855, '\P{Is_Blk=aegeannumbers}', "");
@@ -3862,16 +3886,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65856, '\p{^Is_Blk=aegeannumbers}', "");
     Expect(1, 65856, '\P{Is_Blk=aegeannumbers}', "");
     Expect(0, 65856, '\P{^Is_Blk=aegeannumbers}', "");
-    Expect(1, 65855, '\p{Is_Blk=	Aegean_numbers}', "");
-    Expect(0, 65855, '\p{^Is_Blk=	Aegean_numbers}', "");
-    Expect(0, 65855, '\P{Is_Blk=	Aegean_numbers}', "");
-    Expect(1, 65855, '\P{^Is_Blk=	Aegean_numbers}', "");
-    Expect(0, 65856, '\p{Is_Blk=	Aegean_numbers}', "");
-    Expect(1, 65856, '\p{^Is_Blk=	Aegean_numbers}', "");
-    Expect(1, 65856, '\P{Is_Blk=	Aegean_numbers}', "");
-    Expect(0, 65856, '\P{^Is_Blk=	Aegean_numbers}', "");
-    Error('\p{Block=		Ahom:=}');
-    Error('\P{Block=		Ahom:=}');
+    Expect(1, 65855, '\p{Is_Blk=	_Aegean_numbers}', "");
+    Expect(0, 65855, '\p{^Is_Blk=	_Aegean_numbers}', "");
+    Expect(0, 65855, '\P{Is_Blk=	_Aegean_numbers}', "");
+    Expect(1, 65855, '\P{^Is_Blk=	_Aegean_numbers}', "");
+    Expect(0, 65856, '\p{Is_Blk=	_Aegean_numbers}', "");
+    Expect(1, 65856, '\p{^Is_Blk=	_Aegean_numbers}', "");
+    Expect(1, 65856, '\P{Is_Blk=	_Aegean_numbers}', "");
+    Expect(0, 65856, '\P{^Is_Blk=	_Aegean_numbers}', "");
+    Error('\p{Block=_/a/ahom}');
+    Error('\P{Block=_/a/ahom}');
     Expect(1, 71503, '\p{Block=:\AAhom\z:}', "");;
     Expect(0, 71504, '\p{Block=:\AAhom\z:}', "");;
     Expect(1, 71503, '\p{Block=ahom}', "");
@@ -3884,16 +3908,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71504, '\P{^Block=ahom}', "");
     Expect(1, 71503, '\p{Block=:\Aahom\z:}', "");;
     Expect(0, 71504, '\p{Block=:\Aahom\z:}', "");;
-    Expect(1, 71503, '\p{Block=_-AHOM}', "");
-    Expect(0, 71503, '\p{^Block=_-AHOM}', "");
-    Expect(0, 71503, '\P{Block=_-AHOM}', "");
-    Expect(1, 71503, '\P{^Block=_-AHOM}', "");
-    Expect(0, 71504, '\p{Block=_-AHOM}', "");
-    Expect(1, 71504, '\p{^Block=_-AHOM}', "");
-    Expect(1, 71504, '\P{Block=_-AHOM}', "");
-    Expect(0, 71504, '\P{^Block=_-AHOM}', "");
-    Error('\p{Blk=/a/	-Ahom}');
-    Error('\P{Blk=/a/	-Ahom}');
+    Expect(1, 71503, '\p{Block=Ahom}', "");
+    Expect(0, 71503, '\p{^Block=Ahom}', "");
+    Expect(0, 71503, '\P{Block=Ahom}', "");
+    Expect(1, 71503, '\P{^Block=Ahom}', "");
+    Expect(0, 71504, '\p{Block=Ahom}', "");
+    Expect(1, 71504, '\p{^Block=Ahom}', "");
+    Expect(1, 71504, '\P{Block=Ahom}', "");
+    Expect(0, 71504, '\P{^Block=Ahom}', "");
+    Error('\p{Blk:   _/a/ahom}');
+    Error('\P{Blk:   _/a/ahom}');
     Expect(1, 71503, '\p{Blk=:\AAhom\z:}', "");;
     Expect(0, 71504, '\p{Blk=:\AAhom\z:}', "");;
     Expect(1, 71503, '\p{Blk=ahom}', "");
@@ -3906,16 +3930,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71504, '\P{^Blk=ahom}', "");
     Expect(1, 71503, '\p{Blk=:\Aahom\z:}', "");;
     Expect(0, 71504, '\p{Blk=:\Aahom\z:}', "");;
-    Expect(1, 71503, '\p{Blk=_ ahom}', "");
-    Expect(0, 71503, '\p{^Blk=_ ahom}', "");
-    Expect(0, 71503, '\P{Blk=_ ahom}', "");
-    Expect(1, 71503, '\P{^Blk=_ ahom}', "");
-    Expect(0, 71504, '\p{Blk=_ ahom}', "");
-    Expect(1, 71504, '\p{^Blk=_ ahom}', "");
-    Expect(1, 71504, '\P{Blk=_ ahom}', "");
-    Expect(0, 71504, '\P{^Blk=_ ahom}', "");
-    Error('\p{Is_Block=:= _Ahom}');
-    Error('\P{Is_Block=:= _Ahom}');
+    Expect(1, 71503, '\p{Blk= -ahom}', "");
+    Expect(0, 71503, '\p{^Blk= -ahom}', "");
+    Expect(0, 71503, '\P{Blk= -ahom}', "");
+    Expect(1, 71503, '\P{^Blk= -ahom}', "");
+    Expect(0, 71504, '\p{Blk= -ahom}', "");
+    Expect(1, 71504, '\p{^Blk= -ahom}', "");
+    Expect(1, 71504, '\P{Blk= -ahom}', "");
+    Expect(0, 71504, '\P{^Blk= -ahom}', "");
+    Error('\p{Is_Block=/a/--ahom}');
+    Error('\P{Is_Block=/a/--ahom}');
     Expect(1, 71503, '\p{Is_Block=ahom}', "");
     Expect(0, 71503, '\p{^Is_Block=ahom}', "");
     Expect(0, 71503, '\P{Is_Block=ahom}', "");
@@ -3924,34 +3948,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71504, '\p{^Is_Block=ahom}', "");
     Expect(1, 71504, '\P{Is_Block=ahom}', "");
     Expect(0, 71504, '\P{^Is_Block=ahom}', "");
-    Expect(1, 71503, '\p{Is_Block:   --Ahom}', "");
-    Expect(0, 71503, '\p{^Is_Block:   --Ahom}', "");
-    Expect(0, 71503, '\P{Is_Block:   --Ahom}', "");
-    Expect(1, 71503, '\P{^Is_Block:   --Ahom}', "");
-    Expect(0, 71504, '\p{Is_Block:   --Ahom}', "");
-    Expect(1, 71504, '\p{^Is_Block:   --Ahom}', "");
-    Expect(1, 71504, '\P{Is_Block:   --Ahom}', "");
-    Expect(0, 71504, '\P{^Is_Block:   --Ahom}', "");
-    Error('\p{Is_Blk= /a/AHOM}');
-    Error('\P{Is_Blk= /a/AHOM}');
-    Expect(1, 71503, '\p{Is_Blk=ahom}', "");
-    Expect(0, 71503, '\p{^Is_Blk=ahom}', "");
-    Expect(0, 71503, '\P{Is_Blk=ahom}', "");
-    Expect(1, 71503, '\P{^Is_Blk=ahom}', "");
-    Expect(0, 71504, '\p{Is_Blk=ahom}', "");
-    Expect(1, 71504, '\p{^Is_Blk=ahom}', "");
-    Expect(1, 71504, '\P{Is_Blk=ahom}', "");
-    Expect(0, 71504, '\P{^Is_Blk=ahom}', "");
-    Expect(1, 71503, '\p{Is_Blk= Ahom}', "");
-    Expect(0, 71503, '\p{^Is_Blk= Ahom}', "");
-    Expect(0, 71503, '\P{Is_Blk= Ahom}', "");
-    Expect(1, 71503, '\P{^Is_Blk= Ahom}', "");
-    Expect(0, 71504, '\p{Is_Blk= Ahom}', "");
-    Expect(1, 71504, '\p{^Is_Blk= Ahom}', "");
-    Expect(1, 71504, '\P{Is_Blk= Ahom}', "");
-    Expect(0, 71504, '\P{^Is_Blk= Ahom}', "");
-    Error('\p{Block=/a/	alchemical_SYMBOLS}');
-    Error('\P{Block=/a/	alchemical_SYMBOLS}');
+    Expect(1, 71503, '\p{Is_Block= ahom}', "");
+    Expect(0, 71503, '\p{^Is_Block= ahom}', "");
+    Expect(0, 71503, '\P{Is_Block= ahom}', "");
+    Expect(1, 71503, '\P{^Is_Block= ahom}', "");
+    Expect(0, 71504, '\p{Is_Block= ahom}', "");
+    Expect(1, 71504, '\p{^Is_Block= ahom}', "");
+    Expect(1, 71504, '\P{Is_Block= ahom}', "");
+    Expect(0, 71504, '\P{^Is_Block= ahom}', "");
+    Error('\p{Is_Blk:		/a/AHOM}');
+    Error('\P{Is_Blk:		/a/AHOM}');
+    Expect(1, 71503, '\p{Is_Blk:ahom}', "");
+    Expect(0, 71503, '\p{^Is_Blk:ahom}', "");
+    Expect(0, 71503, '\P{Is_Blk:ahom}', "");
+    Expect(1, 71503, '\P{^Is_Blk:ahom}', "");
+    Expect(0, 71504, '\p{Is_Blk:ahom}', "");
+    Expect(1, 71504, '\p{^Is_Blk:ahom}', "");
+    Expect(1, 71504, '\P{Is_Blk:ahom}', "");
+    Expect(0, 71504, '\P{^Is_Blk:ahom}', "");
+    Expect(1, 71503, '\p{Is_Blk= ahom}', "");
+    Expect(0, 71503, '\p{^Is_Blk= ahom}', "");
+    Expect(0, 71503, '\P{Is_Blk= ahom}', "");
+    Expect(1, 71503, '\P{^Is_Blk= ahom}', "");
+    Expect(0, 71504, '\p{Is_Blk= ahom}', "");
+    Expect(1, 71504, '\p{^Is_Blk= ahom}', "");
+    Expect(1, 71504, '\P{Is_Blk= ahom}', "");
+    Expect(0, 71504, '\P{^Is_Blk= ahom}', "");
+    Error('\p{Block:   	:=alchemical_Symbols}');
+    Error('\P{Block:   	:=alchemical_Symbols}');
     Expect(1, 128895, '\p{Block=:\AAlchemical_Symbols\z:}', "");;
     Expect(0, 128896, '\p{Block=:\AAlchemical_Symbols\z:}', "");;
     Expect(1, 128895, '\p{Block=alchemicalsymbols}', "");
@@ -3964,38 +3988,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128896, '\P{^Block=alchemicalsymbols}', "");
     Expect(1, 128895, '\p{Block=:\Aalchemicalsymbols\z:}', "");;
     Expect(0, 128896, '\p{Block=:\Aalchemicalsymbols\z:}', "");;
-    Expect(1, 128895, '\p{Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(0, 128895, '\p{^Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(0, 128895, '\P{Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(1, 128895, '\P{^Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(0, 128896, '\p{Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(1, 128896, '\p{^Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(1, 128896, '\P{Block=_ ALCHEMICAL_Symbols}', "");
-    Expect(0, 128896, '\P{^Block=_ ALCHEMICAL_Symbols}', "");
-    Error('\p{Blk::=alchemical}');
-    Error('\P{Blk::=alchemical}');
+    Expect(1, 128895, '\p{Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(0, 128895, '\p{^Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(0, 128895, '\P{Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(1, 128895, '\P{^Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(0, 128896, '\p{Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(1, 128896, '\p{^Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(1, 128896, '\P{Block=_-ALCHEMICAL_Symbols}', "");
+    Expect(0, 128896, '\P{^Block=_-ALCHEMICAL_Symbols}', "");
+    Error('\p{Blk=:=ALCHEMICAL}');
+    Error('\P{Blk=:=ALCHEMICAL}');
     Expect(1, 128895, '\p{Blk=:\AAlchemical\z:}', "");;
     Expect(0, 128896, '\p{Blk=:\AAlchemical\z:}', "");;
-    Expect(1, 128895, '\p{Blk=alchemical}', "");
-    Expect(0, 128895, '\p{^Blk=alchemical}', "");
-    Expect(0, 128895, '\P{Blk=alchemical}', "");
-    Expect(1, 128895, '\P{^Blk=alchemical}', "");
-    Expect(0, 128896, '\p{Blk=alchemical}', "");
-    Expect(1, 128896, '\p{^Blk=alchemical}', "");
-    Expect(1, 128896, '\P{Blk=alchemical}', "");
-    Expect(0, 128896, '\P{^Blk=alchemical}', "");
+    Expect(1, 128895, '\p{Blk: alchemical}', "");
+    Expect(0, 128895, '\p{^Blk: alchemical}', "");
+    Expect(0, 128895, '\P{Blk: alchemical}', "");
+    Expect(1, 128895, '\P{^Blk: alchemical}', "");
+    Expect(0, 128896, '\p{Blk: alchemical}', "");
+    Expect(1, 128896, '\p{^Blk: alchemical}', "");
+    Expect(1, 128896, '\P{Blk: alchemical}', "");
+    Expect(0, 128896, '\P{^Blk: alchemical}', "");
     Expect(1, 128895, '\p{Blk=:\Aalchemical\z:}', "");;
     Expect(0, 128896, '\p{Blk=:\Aalchemical\z:}', "");;
-    Expect(1, 128895, '\p{Blk=-Alchemical}', "");
-    Expect(0, 128895, '\p{^Blk=-Alchemical}', "");
-    Expect(0, 128895, '\P{Blk=-Alchemical}', "");
-    Expect(1, 128895, '\P{^Blk=-Alchemical}', "");
-    Expect(0, 128896, '\p{Blk=-Alchemical}', "");
-    Expect(1, 128896, '\p{^Blk=-Alchemical}', "");
-    Expect(1, 128896, '\P{Blk=-Alchemical}', "");
-    Expect(0, 128896, '\P{^Blk=-Alchemical}', "");
-    Error('\p{Is_Block=:=	_alchemical_SYMBOLS}');
-    Error('\P{Is_Block=:=	_alchemical_SYMBOLS}');
+    Expect(1, 128895, '\p{Blk=--Alchemical}', "");
+    Expect(0, 128895, '\p{^Blk=--Alchemical}', "");
+    Expect(0, 128895, '\P{Blk=--Alchemical}', "");
+    Expect(1, 128895, '\P{^Blk=--Alchemical}', "");
+    Expect(0, 128896, '\p{Blk=--Alchemical}', "");
+    Expect(1, 128896, '\p{^Blk=--Alchemical}', "");
+    Expect(1, 128896, '\P{Blk=--Alchemical}', "");
+    Expect(0, 128896, '\P{^Blk=--Alchemical}', "");
+    Error('\p{Is_Block=		Alchemical_Symbols/a/}');
+    Error('\P{Is_Block=		Alchemical_Symbols/a/}');
     Expect(1, 128895, '\p{Is_Block=alchemicalsymbols}', "");
     Expect(0, 128895, '\p{^Is_Block=alchemicalsymbols}', "");
     Expect(0, 128895, '\P{Is_Block=alchemicalsymbols}', "");
@@ -4004,34 +4028,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128896, '\p{^Is_Block=alchemicalsymbols}', "");
     Expect(1, 128896, '\P{Is_Block=alchemicalsymbols}', "");
     Expect(0, 128896, '\P{^Is_Block=alchemicalsymbols}', "");
-    Expect(1, 128895, '\p{Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(0, 128895, '\p{^Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(0, 128895, '\P{Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(1, 128895, '\P{^Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(0, 128896, '\p{Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(1, 128896, '\p{^Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(1, 128896, '\P{Is_Block= Alchemical_SYMBOLS}', "");
-    Expect(0, 128896, '\P{^Is_Block= Alchemical_SYMBOLS}', "");
-    Error('\p{Is_Blk=- alchemical:=}');
-    Error('\P{Is_Blk=- alchemical:=}');
-    Expect(1, 128895, '\p{Is_Blk=alchemical}', "");
-    Expect(0, 128895, '\p{^Is_Blk=alchemical}', "");
-    Expect(0, 128895, '\P{Is_Blk=alchemical}', "");
-    Expect(1, 128895, '\P{^Is_Blk=alchemical}', "");
-    Expect(0, 128896, '\p{Is_Blk=alchemical}', "");
-    Expect(1, 128896, '\p{^Is_Blk=alchemical}', "");
-    Expect(1, 128896, '\P{Is_Blk=alchemical}', "");
-    Expect(0, 128896, '\P{^Is_Blk=alchemical}', "");
-    Expect(1, 128895, '\p{Is_Blk=	-Alchemical}', "");
-    Expect(0, 128895, '\p{^Is_Blk=	-Alchemical}', "");
-    Expect(0, 128895, '\P{Is_Blk=	-Alchemical}', "");
-    Expect(1, 128895, '\P{^Is_Blk=	-Alchemical}', "");
-    Expect(0, 128896, '\p{Is_Blk=	-Alchemical}', "");
-    Expect(1, 128896, '\p{^Is_Blk=	-Alchemical}', "");
-    Expect(1, 128896, '\P{Is_Blk=	-Alchemical}', "");
-    Expect(0, 128896, '\P{^Is_Blk=	-Alchemical}', "");
-    Error('\p{Block=	/a/Alphabetic_Presentation_Forms}');
-    Error('\P{Block=	/a/Alphabetic_Presentation_Forms}');
+    Expect(1, 128895, '\p{Is_Block=_Alchemical_Symbols}', "");
+    Expect(0, 128895, '\p{^Is_Block=_Alchemical_Symbols}', "");
+    Expect(0, 128895, '\P{Is_Block=_Alchemical_Symbols}', "");
+    Expect(1, 128895, '\P{^Is_Block=_Alchemical_Symbols}', "");
+    Expect(0, 128896, '\p{Is_Block=_Alchemical_Symbols}', "");
+    Expect(1, 128896, '\p{^Is_Block=_Alchemical_Symbols}', "");
+    Expect(1, 128896, '\P{Is_Block=_Alchemical_Symbols}', "");
+    Expect(0, 128896, '\P{^Is_Block=_Alchemical_Symbols}', "");
+    Error('\p{Is_Blk=--Alchemical/a/}');
+    Error('\P{Is_Blk=--Alchemical/a/}');
+    Expect(1, 128895, '\p{Is_Blk:alchemical}', "");
+    Expect(0, 128895, '\p{^Is_Blk:alchemical}', "");
+    Expect(0, 128895, '\P{Is_Blk:alchemical}', "");
+    Expect(1, 128895, '\P{^Is_Blk:alchemical}', "");
+    Expect(0, 128896, '\p{Is_Blk:alchemical}', "");
+    Expect(1, 128896, '\p{^Is_Blk:alchemical}', "");
+    Expect(1, 128896, '\P{Is_Blk:alchemical}', "");
+    Expect(0, 128896, '\P{^Is_Blk:alchemical}', "");
+    Expect(1, 128895, '\p{Is_Blk=	 ALCHEMICAL}', "");
+    Expect(0, 128895, '\p{^Is_Blk=	 ALCHEMICAL}', "");
+    Expect(0, 128895, '\P{Is_Blk=	 ALCHEMICAL}', "");
+    Expect(1, 128895, '\P{^Is_Blk=	 ALCHEMICAL}', "");
+    Expect(0, 128896, '\p{Is_Blk=	 ALCHEMICAL}', "");
+    Expect(1, 128896, '\p{^Is_Blk=	 ALCHEMICAL}', "");
+    Expect(1, 128896, '\P{Is_Blk=	 ALCHEMICAL}', "");
+    Expect(0, 128896, '\P{^Is_Blk=	 ALCHEMICAL}', "");
+    Error('\p{Block=		Alphabetic_presentation_FORMS:=}');
+    Error('\P{Block=		Alphabetic_presentation_FORMS:=}');
     Expect(1, 64335, '\p{Block=:\AAlphabetic_Presentation_Forms\z:}', "");;
     Expect(0, 64336, '\p{Block=:\AAlphabetic_Presentation_Forms\z:}', "");;
     Expect(1, 64335, '\p{Block=alphabeticpresentationforms}', "");
@@ -4044,16 +4068,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 64336, '\P{^Block=alphabeticpresentationforms}', "");
     Expect(1, 64335, '\p{Block=:\Aalphabeticpresentationforms\z:}', "");;
     Expect(0, 64336, '\p{Block=:\Aalphabeticpresentationforms\z:}', "");;
-    Expect(1, 64335, '\p{Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64335, '\p{^Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64335, '\P{Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(1, 64335, '\P{^Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64336, '\p{Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(1, 64336, '\p{^Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(1, 64336, '\P{Block=	 Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64336, '\P{^Block=	 Alphabetic_Presentation_Forms}', "");
-    Error('\p{Blk=-Alphabetic_PF/a/}');
-    Error('\P{Blk=-Alphabetic_PF/a/}');
+    Expect(1, 64335, '\p{Block=-	alphabetic_Presentation_forms}', "");
+    Expect(0, 64335, '\p{^Block=-	alphabetic_Presentation_forms}', "");
+    Expect(0, 64335, '\P{Block=-	alphabetic_Presentation_forms}', "");
+    Expect(1, 64335, '\P{^Block=-	alphabetic_Presentation_forms}', "");
+    Expect(0, 64336, '\p{Block=-	alphabetic_Presentation_forms}', "");
+    Expect(1, 64336, '\p{^Block=-	alphabetic_Presentation_forms}', "");
+    Expect(1, 64336, '\P{Block=-	alphabetic_Presentation_forms}', "");
+    Expect(0, 64336, '\P{^Block=-	alphabetic_Presentation_forms}', "");
+    Error('\p{Blk=/a/Alphabetic_PF}');
+    Error('\P{Blk=/a/Alphabetic_PF}');
     Expect(1, 64335, '\p{Blk=:\AAlphabetic_PF\z:}', "");;
     Expect(0, 64336, '\p{Blk=:\AAlphabetic_PF\z:}', "");;
     Expect(1, 64335, '\p{Blk=alphabeticpf}', "");
@@ -4066,16 +4090,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 64336, '\P{^Blk=alphabeticpf}', "");
     Expect(1, 64335, '\p{Blk=:\Aalphabeticpf\z:}', "");;
     Expect(0, 64336, '\p{Blk=:\Aalphabeticpf\z:}', "");;
-    Expect(1, 64335, '\p{Blk=__Alphabetic_PF}', "");
-    Expect(0, 64335, '\p{^Blk=__Alphabetic_PF}', "");
-    Expect(0, 64335, '\P{Blk=__Alphabetic_PF}', "");
-    Expect(1, 64335, '\P{^Blk=__Alphabetic_PF}', "");
-    Expect(0, 64336, '\p{Blk=__Alphabetic_PF}', "");
-    Expect(1, 64336, '\p{^Blk=__Alphabetic_PF}', "");
-    Expect(1, 64336, '\P{Blk=__Alphabetic_PF}', "");
-    Expect(0, 64336, '\P{^Blk=__Alphabetic_PF}', "");
-    Error('\p{Is_Block=:=  alphabetic_Presentation_Forms}');
-    Error('\P{Is_Block=:=  alphabetic_Presentation_Forms}');
+    Expect(1, 64335, '\p{Blk=	_Alphabetic_PF}', "");
+    Expect(0, 64335, '\p{^Blk=	_Alphabetic_PF}', "");
+    Expect(0, 64335, '\P{Blk=	_Alphabetic_PF}', "");
+    Expect(1, 64335, '\P{^Blk=	_Alphabetic_PF}', "");
+    Expect(0, 64336, '\p{Blk=	_Alphabetic_PF}', "");
+    Expect(1, 64336, '\p{^Blk=	_Alphabetic_PF}', "");
+    Expect(1, 64336, '\P{Blk=	_Alphabetic_PF}', "");
+    Expect(0, 64336, '\P{^Blk=	_Alphabetic_PF}', "");
+    Error('\p{Is_Block::=	Alphabetic_Presentation_Forms}');
+    Error('\P{Is_Block::=	Alphabetic_Presentation_Forms}');
     Expect(1, 64335, '\p{Is_Block=alphabeticpresentationforms}', "");
     Expect(0, 64335, '\p{^Is_Block=alphabeticpresentationforms}', "");
     Expect(0, 64335, '\P{Is_Block=alphabeticpresentationforms}', "");
@@ -4084,16 +4108,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 64336, '\p{^Is_Block=alphabeticpresentationforms}', "");
     Expect(1, 64336, '\P{Is_Block=alphabeticpresentationforms}', "");
     Expect(0, 64336, '\P{^Is_Block=alphabeticpresentationforms}', "");
-    Expect(1, 64335, '\p{Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(0, 64335, '\p{^Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(0, 64335, '\P{Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(1, 64335, '\P{^Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(0, 64336, '\p{Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(1, 64336, '\p{^Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(1, 64336, '\P{Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Expect(0, 64336, '\P{^Is_Block=	_ALPHABETIC_PRESENTATION_forms}', "");
-    Error('\p{Is_Blk=_:=ALPHABETIC_PF}');
-    Error('\P{Is_Blk=_:=ALPHABETIC_PF}');
+    Expect(1, 64335, '\p{Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(0, 64335, '\p{^Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(0, 64335, '\P{Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(1, 64335, '\P{^Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(0, 64336, '\p{Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(1, 64336, '\p{^Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(1, 64336, '\P{Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Expect(0, 64336, '\P{^Is_Block=	ALPHABETIC_PRESENTATION_Forms}', "");
+    Error('\p{Is_Blk:	:=ALPHABETIC_PF}');
+    Error('\P{Is_Blk:	:=ALPHABETIC_PF}');
     Expect(1, 64335, '\p{Is_Blk=alphabeticpf}', "");
     Expect(0, 64335, '\p{^Is_Blk=alphabeticpf}', "");
     Expect(0, 64335, '\P{Is_Blk=alphabeticpf}', "");
@@ -4102,16 +4126,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 64336, '\p{^Is_Blk=alphabeticpf}', "");
     Expect(1, 64336, '\P{Is_Blk=alphabeticpf}', "");
     Expect(0, 64336, '\P{^Is_Blk=alphabeticpf}', "");
-    Expect(1, 64335, '\p{Is_Blk=_	Alphabetic_PF}', "");
-    Expect(0, 64335, '\p{^Is_Blk=_	Alphabetic_PF}', "");
-    Expect(0, 64335, '\P{Is_Blk=_	Alphabetic_PF}', "");
-    Expect(1, 64335, '\P{^Is_Blk=_	Alphabetic_PF}', "");
-    Expect(0, 64336, '\p{Is_Blk=_	Alphabetic_PF}', "");
-    Expect(1, 64336, '\p{^Is_Blk=_	Alphabetic_PF}', "");
-    Expect(1, 64336, '\P{Is_Blk=_	Alphabetic_PF}', "");
-    Expect(0, 64336, '\P{^Is_Blk=_	Alphabetic_PF}', "");
-    Error('\p{Block:/a/ -Anatolian_Hieroglyphs}');
-    Error('\P{Block:/a/ -Anatolian_Hieroglyphs}');
+    Expect(1, 64335, '\p{Is_Blk=	Alphabetic_PF}', "");
+    Expect(0, 64335, '\p{^Is_Blk=	Alphabetic_PF}', "");
+    Expect(0, 64335, '\P{Is_Blk=	Alphabetic_PF}', "");
+    Expect(1, 64335, '\P{^Is_Blk=	Alphabetic_PF}', "");
+    Expect(0, 64336, '\p{Is_Blk=	Alphabetic_PF}', "");
+    Expect(1, 64336, '\p{^Is_Blk=	Alphabetic_PF}', "");
+    Expect(1, 64336, '\P{Is_Blk=	Alphabetic_PF}', "");
+    Expect(0, 64336, '\P{^Is_Blk=	Alphabetic_PF}', "");
+    Error('\p{Block=	Anatolian_Hieroglyphs:=}');
+    Error('\P{Block=	Anatolian_Hieroglyphs:=}');
     Expect(1, 83583, '\p{Block=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(0, 83584, '\p{Block=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(1, 83583, '\p{Block=anatolianhieroglyphs}', "");
@@ -4124,16 +4148,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 83584, '\P{^Block=anatolianhieroglyphs}', "");
     Expect(1, 83583, '\p{Block=:\Aanatolianhieroglyphs\z:}', "");;
     Expect(0, 83584, '\p{Block=:\Aanatolianhieroglyphs\z:}', "");;
-    Expect(1, 83583, '\p{Block=_Anatolian_hieroglyphs}', "");
-    Expect(0, 83583, '\p{^Block=_Anatolian_hieroglyphs}', "");
-    Expect(0, 83583, '\P{Block=_Anatolian_hieroglyphs}', "");
-    Expect(1, 83583, '\P{^Block=_Anatolian_hieroglyphs}', "");
-    Expect(0, 83584, '\p{Block=_Anatolian_hieroglyphs}', "");
-    Expect(1, 83584, '\p{^Block=_Anatolian_hieroglyphs}', "");
-    Expect(1, 83584, '\P{Block=_Anatolian_hieroglyphs}', "");
-    Expect(0, 83584, '\P{^Block=_Anatolian_hieroglyphs}', "");
-    Error('\p{Blk:		/a/anatolian_Hieroglyphs}');
-    Error('\P{Blk:		/a/anatolian_Hieroglyphs}');
+    Expect(1, 83583, '\p{Block=		Anatolian_Hieroglyphs}', "");
+    Expect(0, 83583, '\p{^Block=		Anatolian_Hieroglyphs}', "");
+    Expect(0, 83583, '\P{Block=		Anatolian_Hieroglyphs}', "");
+    Expect(1, 83583, '\P{^Block=		Anatolian_Hieroglyphs}', "");
+    Expect(0, 83584, '\p{Block=		Anatolian_Hieroglyphs}', "");
+    Expect(1, 83584, '\p{^Block=		Anatolian_Hieroglyphs}', "");
+    Expect(1, 83584, '\P{Block=		Anatolian_Hieroglyphs}', "");
+    Expect(0, 83584, '\P{^Block=		Anatolian_Hieroglyphs}', "");
+    Error('\p{Blk=	-ANATOLIAN_Hieroglyphs:=}');
+    Error('\P{Blk=	-ANATOLIAN_Hieroglyphs:=}');
     Expect(1, 83583, '\p{Blk=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(0, 83584, '\p{Blk=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(1, 83583, '\p{Blk=anatolianhieroglyphs}', "");
@@ -4146,34 +4170,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 83584, '\P{^Blk=anatolianhieroglyphs}', "");
     Expect(1, 83583, '\p{Blk=:\Aanatolianhieroglyphs\z:}', "");;
     Expect(0, 83584, '\p{Blk=:\Aanatolianhieroglyphs\z:}', "");;
-    Expect(1, 83583, '\p{Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83583, '\p{^Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83583, '\P{Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83583, '\P{^Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83584, '\p{Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83584, '\p{^Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83584, '\P{Blk=	_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83584, '\P{^Blk=	_Anatolian_Hieroglyphs}', "");
-    Error('\p{Is_Block=_:=Anatolian_Hieroglyphs}');
-    Error('\P{Is_Block=_:=Anatolian_Hieroglyphs}');
-    Expect(1, 83583, '\p{Is_Block=anatolianhieroglyphs}', "");
-    Expect(0, 83583, '\p{^Is_Block=anatolianhieroglyphs}', "");
-    Expect(0, 83583, '\P{Is_Block=anatolianhieroglyphs}', "");
-    Expect(1, 83583, '\P{^Is_Block=anatolianhieroglyphs}', "");
-    Expect(0, 83584, '\p{Is_Block=anatolianhieroglyphs}', "");
-    Expect(1, 83584, '\p{^Is_Block=anatolianhieroglyphs}', "");
-    Expect(1, 83584, '\P{Is_Block=anatolianhieroglyphs}', "");
-    Expect(0, 83584, '\P{^Is_Block=anatolianhieroglyphs}', "");
-    Expect(1, 83583, '\p{Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83583, '\p{^Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83583, '\P{Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83583, '\P{^Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83584, '\p{Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83584, '\p{^Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83584, '\P{Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83584, '\P{^Is_Block=	_ANATOLIAN_Hieroglyphs}', "");
-    Error('\p{Is_Blk= /a/ANATOLIAN_Hieroglyphs}');
-    Error('\P{Is_Blk= /a/ANATOLIAN_Hieroglyphs}');
+    Expect(1, 83583, '\p{Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(0, 83583, '\p{^Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(0, 83583, '\P{Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(1, 83583, '\P{^Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(0, 83584, '\p{Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(1, 83584, '\p{^Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(1, 83584, '\P{Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Expect(0, 83584, '\P{^Blk=  ANATOLIAN_Hieroglyphs}', "");
+    Error('\p{Is_Block=	-anatolian_Hieroglyphs/a/}');
+    Error('\P{Is_Block=	-anatolian_Hieroglyphs/a/}');
+    Expect(1, 83583, '\p{Is_Block:   anatolianhieroglyphs}', "");
+    Expect(0, 83583, '\p{^Is_Block:   anatolianhieroglyphs}', "");
+    Expect(0, 83583, '\P{Is_Block:   anatolianhieroglyphs}', "");
+    Expect(1, 83583, '\P{^Is_Block:   anatolianhieroglyphs}', "");
+    Expect(0, 83584, '\p{Is_Block:   anatolianhieroglyphs}', "");
+    Expect(1, 83584, '\p{^Is_Block:   anatolianhieroglyphs}', "");
+    Expect(1, 83584, '\P{Is_Block:   anatolianhieroglyphs}', "");
+    Expect(0, 83584, '\P{^Is_Block:   anatolianhieroglyphs}', "");
+    Expect(1, 83583, '\p{Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(0, 83583, '\p{^Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(0, 83583, '\P{Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(1, 83583, '\P{^Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(0, 83584, '\p{Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(1, 83584, '\p{^Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(1, 83584, '\P{Is_Block=_Anatolian_hieroglyphs}', "");
+    Expect(0, 83584, '\P{^Is_Block=_Anatolian_hieroglyphs}', "");
+    Error('\p{Is_Blk=/a/Anatolian_HIEROGLYPHS}');
+    Error('\P{Is_Blk=/a/Anatolian_HIEROGLYPHS}');
     Expect(1, 83583, '\p{Is_Blk=anatolianhieroglyphs}', "");
     Expect(0, 83583, '\p{^Is_Blk=anatolianhieroglyphs}', "");
     Expect(0, 83583, '\P{Is_Blk=anatolianhieroglyphs}', "");
@@ -4182,16 +4206,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 83584, '\p{^Is_Blk=anatolianhieroglyphs}', "");
     Expect(1, 83584, '\P{Is_Blk=anatolianhieroglyphs}', "");
     Expect(0, 83584, '\P{^Is_Blk=anatolianhieroglyphs}', "");
-    Expect(1, 83583, '\p{Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(0, 83583, '\p{^Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(0, 83583, '\P{Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(1, 83583, '\P{^Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(0, 83584, '\p{Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(1, 83584, '\p{^Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(1, 83584, '\P{Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Expect(0, 83584, '\P{^Is_Blk=-_ANATOLIAN_hieroglyphs}', "");
-    Error('\p{Block= -Ancient_Greek_musical_Notation:=}');
-    Error('\P{Block= -Ancient_Greek_musical_Notation:=}');
+    Expect(1, 83583, '\p{Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(0, 83583, '\p{^Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(0, 83583, '\P{Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(1, 83583, '\P{^Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(0, 83584, '\p{Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(1, 83584, '\p{^Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(1, 83584, '\P{Is_Blk: --Anatolian_hieroglyphs}', "");
+    Expect(0, 83584, '\P{^Is_Blk: --Anatolian_hieroglyphs}', "");
+    Error('\p{Block=:=-	Ancient_GREEK_musical_NOTATION}');
+    Error('\P{Block=:=-	Ancient_GREEK_musical_NOTATION}');
     Expect(1, 119375, '\p{Block=:\AAncient_Greek_Musical_Notation\z:}', "");;
     Expect(0, 119376, '\p{Block=:\AAncient_Greek_Musical_Notation\z:}', "");;
     Expect(1, 119375, '\p{Block=ancientgreekmusicalnotation}', "");
@@ -4204,16 +4228,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119376, '\P{^Block=ancientgreekmusicalnotation}', "");
     Expect(1, 119375, '\p{Block=:\Aancientgreekmusicalnotation\z:}', "");;
     Expect(0, 119376, '\p{Block=:\Aancientgreekmusicalnotation\z:}', "");;
-    Expect(1, 119375, '\p{Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(0, 119375, '\p{^Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(0, 119375, '\P{Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(1, 119375, '\P{^Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(0, 119376, '\p{Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(1, 119376, '\p{^Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(1, 119376, '\P{Block=__ANCIENT_greek_musical_Notation}', "");
-    Expect(0, 119376, '\P{^Block=__ANCIENT_greek_musical_Notation}', "");
-    Error('\p{Blk=/a/_-ancient_Greek_MUSIC}');
-    Error('\P{Blk=/a/_-ancient_Greek_MUSIC}');
+    Expect(1, 119375, '\p{Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(0, 119375, '\p{^Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(0, 119375, '\P{Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(1, 119375, '\P{^Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(0, 119376, '\p{Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(1, 119376, '\p{^Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(1, 119376, '\P{Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Expect(0, 119376, '\P{^Block= -ANCIENT_greek_Musical_NOTATION}', "");
+    Error('\p{Blk=	 Ancient_greek_music:=}');
+    Error('\P{Blk=	 Ancient_greek_music:=}');
     Expect(1, 119375, '\p{Blk=:\AAncient_Greek_Music\z:}', "");;
     Expect(0, 119376, '\p{Blk=:\AAncient_Greek_Music\z:}', "");;
     Expect(1, 119375, '\p{Blk=ancientgreekmusic}', "");
@@ -4226,34 +4250,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119376, '\P{^Blk=ancientgreekmusic}', "");
     Expect(1, 119375, '\p{Blk=:\Aancientgreekmusic\z:}', "");;
     Expect(0, 119376, '\p{Blk=:\Aancientgreekmusic\z:}', "");;
-    Expect(1, 119375, '\p{Blk=	_Ancient_greek_Music}', "");
-    Expect(0, 119375, '\p{^Blk=	_Ancient_greek_Music}', "");
-    Expect(0, 119375, '\P{Blk=	_Ancient_greek_Music}', "");
-    Expect(1, 119375, '\P{^Blk=	_Ancient_greek_Music}', "");
-    Expect(0, 119376, '\p{Blk=	_Ancient_greek_Music}', "");
-    Expect(1, 119376, '\p{^Blk=	_Ancient_greek_Music}', "");
-    Expect(1, 119376, '\P{Blk=	_Ancient_greek_Music}', "");
-    Expect(0, 119376, '\P{^Blk=	_Ancient_greek_Music}', "");
-    Error('\p{Is_Block=/a/-ANCIENT_greek_Musical_Notation}');
-    Error('\P{Is_Block=/a/-ANCIENT_greek_Musical_Notation}');
-    Expect(1, 119375, '\p{Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(0, 119375, '\p{^Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(0, 119375, '\P{Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(1, 119375, '\P{^Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(0, 119376, '\p{Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(1, 119376, '\p{^Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(1, 119376, '\P{Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(0, 119376, '\P{^Is_Block: ancientgreekmusicalnotation}', "");
-    Expect(1, 119375, '\p{Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119375, '\p{^Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119375, '\P{Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(1, 119375, '\P{^Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119376, '\p{Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(1, 119376, '\p{^Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(1, 119376, '\P{Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119376, '\P{^Is_Block=_Ancient_Greek_Musical_NOTATION}', "");
-    Error('\p{Is_Blk=__Ancient_Greek_MUSIC/a/}');
-    Error('\P{Is_Blk=__Ancient_Greek_MUSIC/a/}');
+    Expect(1, 119375, '\p{Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(0, 119375, '\p{^Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(0, 119375, '\P{Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(1, 119375, '\P{^Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(0, 119376, '\p{Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(1, 119376, '\p{^Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(1, 119376, '\P{Blk=-_Ancient_greek_MUSIC}', "");
+    Expect(0, 119376, '\P{^Blk=-_Ancient_greek_MUSIC}', "");
+    Error('\p{Is_Block=--Ancient_Greek_musical_Notation:=}');
+    Error('\P{Is_Block=--Ancient_Greek_musical_Notation:=}');
+    Expect(1, 119375, '\p{Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(0, 119375, '\p{^Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(0, 119375, '\P{Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(1, 119375, '\P{^Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(0, 119376, '\p{Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(1, 119376, '\p{^Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(1, 119376, '\P{Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(0, 119376, '\P{^Is_Block=ancientgreekmusicalnotation}', "");
+    Expect(1, 119375, '\p{Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(0, 119375, '\p{^Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(0, 119375, '\P{Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(1, 119375, '\P{^Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(0, 119376, '\p{Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(1, 119376, '\p{^Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(1, 119376, '\P{Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Expect(0, 119376, '\P{^Is_Block:   	_ancient_Greek_Musical_notation}', "");
+    Error('\p{Is_Blk=/a/ Ancient_Greek_Music}');
+    Error('\P{Is_Blk=/a/ Ancient_Greek_Music}');
     Expect(1, 119375, '\p{Is_Blk=ancientgreekmusic}', "");
     Expect(0, 119375, '\p{^Is_Blk=ancientgreekmusic}', "");
     Expect(0, 119375, '\P{Is_Blk=ancientgreekmusic}', "");
@@ -4262,16 +4286,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119376, '\p{^Is_Blk=ancientgreekmusic}', "");
     Expect(1, 119376, '\P{Is_Blk=ancientgreekmusic}', "");
     Expect(0, 119376, '\P{^Is_Blk=ancientgreekmusic}', "");
-    Expect(1, 119375, '\p{Is_Blk= ancient_Greek_Music}', "");
-    Expect(0, 119375, '\p{^Is_Blk= ancient_Greek_Music}', "");
-    Expect(0, 119375, '\P{Is_Blk= ancient_Greek_Music}', "");
-    Expect(1, 119375, '\P{^Is_Blk= ancient_Greek_Music}', "");
-    Expect(0, 119376, '\p{Is_Blk= ancient_Greek_Music}', "");
-    Expect(1, 119376, '\p{^Is_Blk= ancient_Greek_Music}', "");
-    Expect(1, 119376, '\P{Is_Blk= ancient_Greek_Music}', "");
-    Expect(0, 119376, '\P{^Is_Blk= ancient_Greek_Music}', "");
-    Error('\p{Block:   _ancient_Greek_Numbers:=}');
-    Error('\P{Block:   _ancient_Greek_Numbers:=}');
+    Expect(1, 119375, '\p{Is_Blk=__Ancient_Greek_music}', "");
+    Expect(0, 119375, '\p{^Is_Blk=__Ancient_Greek_music}', "");
+    Expect(0, 119375, '\P{Is_Blk=__Ancient_Greek_music}', "");
+    Expect(1, 119375, '\P{^Is_Blk=__Ancient_Greek_music}', "");
+    Expect(0, 119376, '\p{Is_Blk=__Ancient_Greek_music}', "");
+    Expect(1, 119376, '\p{^Is_Blk=__Ancient_Greek_music}', "");
+    Expect(1, 119376, '\P{Is_Blk=__Ancient_Greek_music}', "");
+    Expect(0, 119376, '\P{^Is_Blk=__Ancient_Greek_music}', "");
+    Error('\p{Block=_:=ANCIENT_greek_NUMBERS}');
+    Error('\P{Block=_:=ANCIENT_greek_NUMBERS}');
     Expect(1, 65935, '\p{Block=:\AAncient_Greek_Numbers\z:}', "");;
     Expect(0, 65936, '\p{Block=:\AAncient_Greek_Numbers\z:}', "");;
     Expect(1, 65935, '\p{Block=ancientgreeknumbers}', "");
@@ -4284,38 +4308,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65936, '\P{^Block=ancientgreeknumbers}', "");
     Expect(1, 65935, '\p{Block=:\Aancientgreeknumbers\z:}', "");;
     Expect(0, 65936, '\p{Block=:\Aancientgreeknumbers\z:}', "");;
-    Expect(1, 65935, '\p{Block=	Ancient_greek_numbers}', "");
-    Expect(0, 65935, '\p{^Block=	Ancient_greek_numbers}', "");
-    Expect(0, 65935, '\P{Block=	Ancient_greek_numbers}', "");
-    Expect(1, 65935, '\P{^Block=	Ancient_greek_numbers}', "");
-    Expect(0, 65936, '\p{Block=	Ancient_greek_numbers}', "");
-    Expect(1, 65936, '\p{^Block=	Ancient_greek_numbers}', "");
-    Expect(1, 65936, '\P{Block=	Ancient_greek_numbers}', "");
-    Expect(0, 65936, '\P{^Block=	Ancient_greek_numbers}', "");
-    Error('\p{Blk=/a/ -ancient_Greek_Numbers}');
-    Error('\P{Blk=/a/ -ancient_Greek_Numbers}');
+    Expect(1, 65935, '\p{Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(0, 65935, '\p{^Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(0, 65935, '\P{Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(1, 65935, '\P{^Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(0, 65936, '\p{Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(1, 65936, '\p{^Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(1, 65936, '\P{Block=	ancient_GREEK_NUMBERS}', "");
+    Expect(0, 65936, '\P{^Block=	ancient_GREEK_NUMBERS}', "");
+    Error('\p{Blk=_:=Ancient_GREEK_numbers}');
+    Error('\P{Blk=_:=Ancient_GREEK_numbers}');
     Expect(1, 65935, '\p{Blk=:\AAncient_Greek_Numbers\z:}', "");;
     Expect(0, 65936, '\p{Blk=:\AAncient_Greek_Numbers\z:}', "");;
-    Expect(1, 65935, '\p{Blk: ancientgreeknumbers}', "");
-    Expect(0, 65935, '\p{^Blk: ancientgreeknumbers}', "");
-    Expect(0, 65935, '\P{Blk: ancientgreeknumbers}', "");
-    Expect(1, 65935, '\P{^Blk: ancientgreeknumbers}', "");
-    Expect(0, 65936, '\p{Blk: ancientgreeknumbers}', "");
-    Expect(1, 65936, '\p{^Blk: ancientgreeknumbers}', "");
-    Expect(1, 65936, '\P{Blk: ancientgreeknumbers}', "");
-    Expect(0, 65936, '\P{^Blk: ancientgreeknumbers}', "");
+    Expect(1, 65935, '\p{Blk=ancientgreeknumbers}', "");
+    Expect(0, 65935, '\p{^Blk=ancientgreeknumbers}', "");
+    Expect(0, 65935, '\P{Blk=ancientgreeknumbers}', "");
+    Expect(1, 65935, '\P{^Blk=ancientgreeknumbers}', "");
+    Expect(0, 65936, '\p{Blk=ancientgreeknumbers}', "");
+    Expect(1, 65936, '\p{^Blk=ancientgreeknumbers}', "");
+    Expect(1, 65936, '\P{Blk=ancientgreeknumbers}', "");
+    Expect(0, 65936, '\P{^Blk=ancientgreeknumbers}', "");
     Expect(1, 65935, '\p{Blk=:\Aancientgreeknumbers\z:}', "");;
     Expect(0, 65936, '\p{Blk=:\Aancientgreeknumbers\z:}', "");;
-    Expect(1, 65935, '\p{Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(0, 65935, '\p{^Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(0, 65935, '\P{Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(1, 65935, '\P{^Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(0, 65936, '\p{Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(1, 65936, '\p{^Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(1, 65936, '\P{Blk= ANCIENT_GREEK_numbers}', "");
-    Expect(0, 65936, '\P{^Blk= ANCIENT_GREEK_numbers}', "");
-    Error('\p{Is_Block= :=ancient_Greek_Numbers}');
-    Error('\P{Is_Block= :=ancient_Greek_Numbers}');
+    Expect(1, 65935, '\p{Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(0, 65935, '\p{^Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(0, 65935, '\P{Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(1, 65935, '\P{^Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(0, 65936, '\p{Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(1, 65936, '\p{^Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(1, 65936, '\P{Blk=	_Ancient_Greek_Numbers}', "");
+    Expect(0, 65936, '\P{^Blk=	_Ancient_Greek_Numbers}', "");
+    Error('\p{Is_Block= /a/ANCIENT_Greek_numbers}');
+    Error('\P{Is_Block= /a/ANCIENT_Greek_numbers}');
     Expect(1, 65935, '\p{Is_Block=ancientgreeknumbers}', "");
     Expect(0, 65935, '\p{^Is_Block=ancientgreeknumbers}', "");
     Expect(0, 65935, '\P{Is_Block=ancientgreeknumbers}', "");
@@ -4324,56 +4348,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65936, '\p{^Is_Block=ancientgreeknumbers}', "");
     Expect(1, 65936, '\P{Is_Block=ancientgreeknumbers}', "");
     Expect(0, 65936, '\P{^Is_Block=ancientgreeknumbers}', "");
-    Expect(1, 65935, '\p{Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(0, 65935, '\p{^Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(0, 65935, '\P{Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(1, 65935, '\P{^Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(0, 65936, '\p{Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(1, 65936, '\p{^Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(1, 65936, '\P{Is_Block=-_ancient_GREEK_numbers}', "");
-    Expect(0, 65936, '\P{^Is_Block=-_ancient_GREEK_numbers}', "");
-    Error('\p{Is_Blk=	/a/Ancient_Greek_numbers}');
-    Error('\P{Is_Blk=	/a/Ancient_Greek_numbers}');
-    Expect(1, 65935, '\p{Is_Blk:   ancientgreeknumbers}', "");
-    Expect(0, 65935, '\p{^Is_Blk:   ancientgreeknumbers}', "");
-    Expect(0, 65935, '\P{Is_Blk:   ancientgreeknumbers}', "");
-    Expect(1, 65935, '\P{^Is_Blk:   ancientgreeknumbers}', "");
-    Expect(0, 65936, '\p{Is_Blk:   ancientgreeknumbers}', "");
-    Expect(1, 65936, '\p{^Is_Blk:   ancientgreeknumbers}', "");
-    Expect(1, 65936, '\P{Is_Blk:   ancientgreeknumbers}', "");
-    Expect(0, 65936, '\P{^Is_Blk:   ancientgreeknumbers}', "");
-    Expect(1, 65935, '\p{Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(0, 65935, '\p{^Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(0, 65935, '\P{Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(1, 65935, '\P{^Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(0, 65936, '\p{Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(1, 65936, '\p{^Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(1, 65936, '\P{Is_Blk=_ancient_greek_Numbers}', "");
-    Expect(0, 65936, '\P{^Is_Blk=_ancient_greek_Numbers}', "");
-    Error('\p{Block=:=-Ancient_symbols}');
-    Error('\P{Block=:=-Ancient_symbols}');
+    Expect(1, 65935, '\p{Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(0, 65935, '\p{^Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(0, 65935, '\P{Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(1, 65935, '\P{^Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(0, 65936, '\p{Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(1, 65936, '\p{^Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(1, 65936, '\P{Is_Block= Ancient_GREEK_Numbers}', "");
+    Expect(0, 65936, '\P{^Is_Block= Ancient_GREEK_Numbers}', "");
+    Error('\p{Is_Blk=	 Ancient_Greek_Numbers:=}');
+    Error('\P{Is_Blk=	 Ancient_Greek_Numbers:=}');
+    Expect(1, 65935, '\p{Is_Blk=ancientgreeknumbers}', "");
+    Expect(0, 65935, '\p{^Is_Blk=ancientgreeknumbers}', "");
+    Expect(0, 65935, '\P{Is_Blk=ancientgreeknumbers}', "");
+    Expect(1, 65935, '\P{^Is_Blk=ancientgreeknumbers}', "");
+    Expect(0, 65936, '\p{Is_Blk=ancientgreeknumbers}', "");
+    Expect(1, 65936, '\p{^Is_Blk=ancientgreeknumbers}', "");
+    Expect(1, 65936, '\P{Is_Blk=ancientgreeknumbers}', "");
+    Expect(0, 65936, '\P{^Is_Blk=ancientgreeknumbers}', "");
+    Expect(1, 65935, '\p{Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(0, 65935, '\p{^Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(0, 65935, '\P{Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(1, 65935, '\P{^Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(0, 65936, '\p{Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(1, 65936, '\p{^Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(1, 65936, '\P{Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Expect(0, 65936, '\P{^Is_Blk=	 Ancient_GREEK_Numbers}', "");
+    Error('\p{Block=_:=Ancient_Symbols}');
+    Error('\P{Block=_:=Ancient_Symbols}');
     Expect(1, 65999, '\p{Block=:\AAncient_Symbols\z:}', "");;
     Expect(0, 66000, '\p{Block=:\AAncient_Symbols\z:}', "");;
-    Expect(1, 65999, '\p{Block:	ancientsymbols}', "");
-    Expect(0, 65999, '\p{^Block:	ancientsymbols}', "");
-    Expect(0, 65999, '\P{Block:	ancientsymbols}', "");
-    Expect(1, 65999, '\P{^Block:	ancientsymbols}', "");
-    Expect(0, 66000, '\p{Block:	ancientsymbols}', "");
-    Expect(1, 66000, '\p{^Block:	ancientsymbols}', "");
-    Expect(1, 66000, '\P{Block:	ancientsymbols}', "");
-    Expect(0, 66000, '\P{^Block:	ancientsymbols}', "");
+    Expect(1, 65999, '\p{Block=ancientsymbols}', "");
+    Expect(0, 65999, '\p{^Block=ancientsymbols}', "");
+    Expect(0, 65999, '\P{Block=ancientsymbols}', "");
+    Expect(1, 65999, '\P{^Block=ancientsymbols}', "");
+    Expect(0, 66000, '\p{Block=ancientsymbols}', "");
+    Expect(1, 66000, '\p{^Block=ancientsymbols}', "");
+    Expect(1, 66000, '\P{Block=ancientsymbols}', "");
+    Expect(0, 66000, '\P{^Block=ancientsymbols}', "");
     Expect(1, 65999, '\p{Block=:\Aancientsymbols\z:}', "");;
     Expect(0, 66000, '\p{Block=:\Aancientsymbols\z:}', "");;
-    Expect(1, 65999, '\p{Block= Ancient_Symbols}', "");
-    Expect(0, 65999, '\p{^Block= Ancient_Symbols}', "");
-    Expect(0, 65999, '\P{Block= Ancient_Symbols}', "");
-    Expect(1, 65999, '\P{^Block= Ancient_Symbols}', "");
-    Expect(0, 66000, '\p{Block= Ancient_Symbols}', "");
-    Expect(1, 66000, '\p{^Block= Ancient_Symbols}', "");
-    Expect(1, 66000, '\P{Block= Ancient_Symbols}', "");
-    Expect(0, 66000, '\P{^Block= Ancient_Symbols}', "");
-    Error('\p{Blk=	:=ANCIENT_Symbols}');
-    Error('\P{Blk=	:=ANCIENT_Symbols}');
+    Expect(1, 65999, '\p{Block= -Ancient_SYMBOLS}', "");
+    Expect(0, 65999, '\p{^Block= -Ancient_SYMBOLS}', "");
+    Expect(0, 65999, '\P{Block= -Ancient_SYMBOLS}', "");
+    Expect(1, 65999, '\P{^Block= -Ancient_SYMBOLS}', "");
+    Expect(0, 66000, '\p{Block= -Ancient_SYMBOLS}', "");
+    Expect(1, 66000, '\p{^Block= -Ancient_SYMBOLS}', "");
+    Expect(1, 66000, '\P{Block= -Ancient_SYMBOLS}', "");
+    Expect(0, 66000, '\P{^Block= -Ancient_SYMBOLS}', "");
+    Error('\p{Blk=:=_ ancient_Symbols}');
+    Error('\P{Blk=:=_ ancient_Symbols}');
     Expect(1, 65999, '\p{Blk=:\AAncient_Symbols\z:}', "");;
     Expect(0, 66000, '\p{Blk=:\AAncient_Symbols\z:}', "");;
     Expect(1, 65999, '\p{Blk=ancientsymbols}', "");
@@ -4386,16 +4410,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66000, '\P{^Blk=ancientsymbols}', "");
     Expect(1, 65999, '\p{Blk=:\Aancientsymbols\z:}', "");;
     Expect(0, 66000, '\p{Blk=:\Aancientsymbols\z:}', "");;
-    Expect(1, 65999, '\p{Blk=	_Ancient_Symbols}', "");
-    Expect(0, 65999, '\p{^Blk=	_Ancient_Symbols}', "");
-    Expect(0, 65999, '\P{Blk=	_Ancient_Symbols}', "");
-    Expect(1, 65999, '\P{^Blk=	_Ancient_Symbols}', "");
-    Expect(0, 66000, '\p{Blk=	_Ancient_Symbols}', "");
-    Expect(1, 66000, '\p{^Blk=	_Ancient_Symbols}', "");
-    Expect(1, 66000, '\P{Blk=	_Ancient_Symbols}', "");
-    Expect(0, 66000, '\P{^Blk=	_Ancient_Symbols}', "");
-    Error('\p{Is_Block= /a/Ancient_SYMBOLS}');
-    Error('\P{Is_Block= /a/Ancient_SYMBOLS}');
+    Expect(1, 65999, '\p{Blk=	-Ancient_Symbols}', "");
+    Expect(0, 65999, '\p{^Blk=	-Ancient_Symbols}', "");
+    Expect(0, 65999, '\P{Blk=	-Ancient_Symbols}', "");
+    Expect(1, 65999, '\P{^Blk=	-Ancient_Symbols}', "");
+    Expect(0, 66000, '\p{Blk=	-Ancient_Symbols}', "");
+    Expect(1, 66000, '\p{^Blk=	-Ancient_Symbols}', "");
+    Expect(1, 66000, '\P{Blk=	-Ancient_Symbols}', "");
+    Expect(0, 66000, '\P{^Blk=	-Ancient_Symbols}', "");
+    Error('\p{Is_Block=-/a/Ancient_Symbols}');
+    Error('\P{Is_Block=-/a/Ancient_Symbols}');
     Expect(1, 65999, '\p{Is_Block=ancientsymbols}', "");
     Expect(0, 65999, '\p{^Is_Block=ancientsymbols}', "");
     Expect(0, 65999, '\P{Is_Block=ancientsymbols}', "");
@@ -4404,16 +4428,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66000, '\p{^Is_Block=ancientsymbols}', "");
     Expect(1, 66000, '\P{Is_Block=ancientsymbols}', "");
     Expect(0, 66000, '\P{^Is_Block=ancientsymbols}', "");
-    Expect(1, 65999, '\p{Is_Block=ancient_symbols}', "");
-    Expect(0, 65999, '\p{^Is_Block=ancient_symbols}', "");
-    Expect(0, 65999, '\P{Is_Block=ancient_symbols}', "");
-    Expect(1, 65999, '\P{^Is_Block=ancient_symbols}', "");
-    Expect(0, 66000, '\p{Is_Block=ancient_symbols}', "");
-    Expect(1, 66000, '\p{^Is_Block=ancient_symbols}', "");
-    Expect(1, 66000, '\P{Is_Block=ancient_symbols}', "");
-    Expect(0, 66000, '\P{^Is_Block=ancient_symbols}', "");
-    Error('\p{Is_Blk:   /a/	Ancient_Symbols}');
-    Error('\P{Is_Blk:   /a/	Ancient_Symbols}');
+    Expect(1, 65999, '\p{Is_Block:	- Ancient_symbols}', "");
+    Expect(0, 65999, '\p{^Is_Block:	- Ancient_symbols}', "");
+    Expect(0, 65999, '\P{Is_Block:	- Ancient_symbols}', "");
+    Expect(1, 65999, '\P{^Is_Block:	- Ancient_symbols}', "");
+    Expect(0, 66000, '\p{Is_Block:	- Ancient_symbols}', "");
+    Expect(1, 66000, '\p{^Is_Block:	- Ancient_symbols}', "");
+    Expect(1, 66000, '\P{Is_Block:	- Ancient_symbols}', "");
+    Expect(0, 66000, '\P{^Is_Block:	- Ancient_symbols}', "");
+    Error('\p{Is_Blk= :=Ancient_SYMBOLS}');
+    Error('\P{Is_Blk= :=Ancient_SYMBOLS}');
     Expect(1, 65999, '\p{Is_Blk=ancientsymbols}', "");
     Expect(0, 65999, '\p{^Is_Blk=ancientsymbols}', "");
     Expect(0, 65999, '\P{Is_Blk=ancientsymbols}', "");
@@ -4422,16 +4446,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66000, '\p{^Is_Blk=ancientsymbols}', "");
     Expect(1, 66000, '\P{Is_Blk=ancientsymbols}', "");
     Expect(0, 66000, '\P{^Is_Blk=ancientsymbols}', "");
-    Expect(1, 65999, '\p{Is_Blk=	_Ancient_Symbols}', "");
-    Expect(0, 65999, '\p{^Is_Blk=	_Ancient_Symbols}', "");
-    Expect(0, 65999, '\P{Is_Blk=	_Ancient_Symbols}', "");
-    Expect(1, 65999, '\P{^Is_Blk=	_Ancient_Symbols}', "");
-    Expect(0, 66000, '\p{Is_Blk=	_Ancient_Symbols}', "");
-    Expect(1, 66000, '\p{^Is_Blk=	_Ancient_Symbols}', "");
-    Expect(1, 66000, '\P{Is_Blk=	_Ancient_Symbols}', "");
-    Expect(0, 66000, '\P{^Is_Blk=	_Ancient_Symbols}', "");
-    Error('\p{Block=/a/	-Arabic}');
-    Error('\P{Block=/a/	-Arabic}');
+    Expect(1, 65999, '\p{Is_Blk= Ancient_symbols}', "");
+    Expect(0, 65999, '\p{^Is_Blk= Ancient_symbols}', "");
+    Expect(0, 65999, '\P{Is_Blk= Ancient_symbols}', "");
+    Expect(1, 65999, '\P{^Is_Blk= Ancient_symbols}', "");
+    Expect(0, 66000, '\p{Is_Blk= Ancient_symbols}', "");
+    Expect(1, 66000, '\p{^Is_Blk= Ancient_symbols}', "");
+    Expect(1, 66000, '\P{Is_Blk= Ancient_symbols}', "");
+    Expect(0, 66000, '\P{^Is_Blk= Ancient_symbols}', "");
+    Error('\p{Block=:=-_Arabic}');
+    Error('\P{Block=:=-_Arabic}');
     Expect(1, 1791, '\p{Block=:\AArabic\z:}', "");;
     Expect(0, 1792, '\p{Block=:\AArabic\z:}', "");;
     Expect(1, 1791, '\p{Block=arabic}', "");
@@ -4444,16 +4468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1792, '\P{^Block=arabic}', "");
     Expect(1, 1791, '\p{Block=:\Aarabic\z:}', "");;
     Expect(0, 1792, '\p{Block=:\Aarabic\z:}', "");;
-    Expect(1, 1791, '\p{Block= 	Arabic}', "");
-    Expect(0, 1791, '\p{^Block= 	Arabic}', "");
-    Expect(0, 1791, '\P{Block= 	Arabic}', "");
-    Expect(1, 1791, '\P{^Block= 	Arabic}', "");
-    Expect(0, 1792, '\p{Block= 	Arabic}', "");
-    Expect(1, 1792, '\p{^Block= 	Arabic}', "");
-    Expect(1, 1792, '\P{Block= 	Arabic}', "");
-    Expect(0, 1792, '\P{^Block= 	Arabic}', "");
-    Error('\p{Blk:   /a/__arabic}');
-    Error('\P{Blk:   /a/__arabic}');
+    Expect(1, 1791, '\p{Block=_arabic}', "");
+    Expect(0, 1791, '\p{^Block=_arabic}', "");
+    Expect(0, 1791, '\P{Block=_arabic}', "");
+    Expect(1, 1791, '\P{^Block=_arabic}', "");
+    Expect(0, 1792, '\p{Block=_arabic}', "");
+    Expect(1, 1792, '\p{^Block=_arabic}', "");
+    Expect(1, 1792, '\P{Block=_arabic}', "");
+    Expect(0, 1792, '\P{^Block=_arabic}', "");
+    Error('\p{Blk= 	arabic/a/}');
+    Error('\P{Blk= 	arabic/a/}');
     Expect(1, 1791, '\p{Blk=:\AArabic\z:}', "");;
     Expect(0, 1792, '\p{Blk=:\AArabic\z:}', "");;
     Expect(1, 1791, '\p{Blk=arabic}', "");
@@ -4466,16 +4490,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1792, '\P{^Blk=arabic}', "");
     Expect(1, 1791, '\p{Blk=:\Aarabic\z:}', "");;
     Expect(0, 1792, '\p{Blk=:\Aarabic\z:}', "");;
-    Expect(1, 1791, '\p{Blk=_ Arabic}', "");
-    Expect(0, 1791, '\p{^Blk=_ Arabic}', "");
-    Expect(0, 1791, '\P{Blk=_ Arabic}', "");
-    Expect(1, 1791, '\P{^Blk=_ Arabic}', "");
-    Expect(0, 1792, '\p{Blk=_ Arabic}', "");
-    Expect(1, 1792, '\p{^Blk=_ Arabic}', "");
-    Expect(1, 1792, '\P{Blk=_ Arabic}', "");
-    Expect(0, 1792, '\P{^Blk=_ Arabic}', "");
-    Error('\p{Is_Block=:=-_Arabic}');
-    Error('\P{Is_Block=:=-_Arabic}');
+    Expect(1, 1791, '\p{Blk=- arabic}', "");
+    Expect(0, 1791, '\p{^Blk=- arabic}', "");
+    Expect(0, 1791, '\P{Blk=- arabic}', "");
+    Expect(1, 1791, '\P{^Blk=- arabic}', "");
+    Expect(0, 1792, '\p{Blk=- arabic}', "");
+    Expect(1, 1792, '\p{^Blk=- arabic}', "");
+    Expect(1, 1792, '\P{Blk=- arabic}', "");
+    Expect(0, 1792, '\P{^Blk=- arabic}', "");
+    Error('\p{Is_Block:	/a/ -Arabic}');
+    Error('\P{Is_Block:	/a/ -Arabic}');
     Expect(1, 1791, '\p{Is_Block=arabic}', "");
     Expect(0, 1791, '\p{^Is_Block=arabic}', "");
     Expect(0, 1791, '\P{Is_Block=arabic}', "");
@@ -4484,16 +4508,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1792, '\p{^Is_Block=arabic}', "");
     Expect(1, 1792, '\P{Is_Block=arabic}', "");
     Expect(0, 1792, '\P{^Is_Block=arabic}', "");
-    Expect(1, 1791, '\p{Is_Block=_arabic}', "");
-    Expect(0, 1791, '\p{^Is_Block=_arabic}', "");
-    Expect(0, 1791, '\P{Is_Block=_arabic}', "");
-    Expect(1, 1791, '\P{^Is_Block=_arabic}', "");
-    Expect(0, 1792, '\p{Is_Block=_arabic}', "");
-    Expect(1, 1792, '\p{^Is_Block=_arabic}', "");
-    Expect(1, 1792, '\P{Is_Block=_arabic}', "");
-    Expect(0, 1792, '\P{^Is_Block=_arabic}', "");
-    Error('\p{Is_Blk=_:=arabic}');
-    Error('\P{Is_Blk=_:=arabic}');
+    Expect(1, 1791, '\p{Is_Block=__arabic}', "");
+    Expect(0, 1791, '\p{^Is_Block=__arabic}', "");
+    Expect(0, 1791, '\P{Is_Block=__arabic}', "");
+    Expect(1, 1791, '\P{^Is_Block=__arabic}', "");
+    Expect(0, 1792, '\p{Is_Block=__arabic}', "");
+    Expect(1, 1792, '\p{^Is_Block=__arabic}', "");
+    Expect(1, 1792, '\P{Is_Block=__arabic}', "");
+    Expect(0, 1792, '\P{^Is_Block=__arabic}', "");
+    Error('\p{Is_Blk=:=Arabic}');
+    Error('\P{Is_Blk=:=Arabic}');
     Expect(1, 1791, '\p{Is_Blk=arabic}', "");
     Expect(0, 1791, '\p{^Is_Blk=arabic}', "");
     Expect(0, 1791, '\P{Is_Blk=arabic}', "");
@@ -4502,16 +4526,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1792, '\p{^Is_Blk=arabic}', "");
     Expect(1, 1792, '\P{Is_Blk=arabic}', "");
     Expect(0, 1792, '\P{^Is_Blk=arabic}', "");
-    Expect(1, 1791, '\p{Is_Blk:	-	Arabic}', "");
-    Expect(0, 1791, '\p{^Is_Blk:	-	Arabic}', "");
-    Expect(0, 1791, '\P{Is_Blk:	-	Arabic}', "");
-    Expect(1, 1791, '\P{^Is_Blk:	-	Arabic}', "");
-    Expect(0, 1792, '\p{Is_Blk:	-	Arabic}', "");
-    Expect(1, 1792, '\p{^Is_Blk:	-	Arabic}', "");
-    Expect(1, 1792, '\P{Is_Blk:	-	Arabic}', "");
-    Expect(0, 1792, '\P{^Is_Blk:	-	Arabic}', "");
-    Error('\p{Block=_:=arabic_EXTENDED_A}');
-    Error('\P{Block=_:=arabic_EXTENDED_A}');
+    Expect(1, 1791, '\p{Is_Blk:	ARABIC}', "");
+    Expect(0, 1791, '\p{^Is_Blk:	ARABIC}', "");
+    Expect(0, 1791, '\P{Is_Blk:	ARABIC}', "");
+    Expect(1, 1791, '\P{^Is_Blk:	ARABIC}', "");
+    Expect(0, 1792, '\p{Is_Blk:	ARABIC}', "");
+    Expect(1, 1792, '\p{^Is_Blk:	ARABIC}', "");
+    Expect(1, 1792, '\P{Is_Blk:	ARABIC}', "");
+    Expect(0, 1792, '\P{^Is_Blk:	ARABIC}', "");
+    Error('\p{Block= _ARABIC_EXTENDED_A:=}');
+    Error('\P{Block= _ARABIC_EXTENDED_A:=}');
     Expect(1, 2303, '\p{Block=:\AArabic_Extended_A\z:}', "");;
     Expect(0, 2304, '\p{Block=:\AArabic_Extended_A\z:}', "");;
     Expect(1, 2303, '\p{Block=arabicextendeda}', "");
@@ -4524,16 +4548,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2304, '\P{^Block=arabicextendeda}', "");
     Expect(1, 2303, '\p{Block=:\Aarabicextendeda\z:}', "");;
     Expect(0, 2304, '\p{Block=:\Aarabicextendeda\z:}', "");;
-    Expect(1, 2303, '\p{Block=-ARABIC_EXTENDED_A}', "");
-    Expect(0, 2303, '\p{^Block=-ARABIC_EXTENDED_A}', "");
-    Expect(0, 2303, '\P{Block=-ARABIC_EXTENDED_A}', "");
-    Expect(1, 2303, '\P{^Block=-ARABIC_EXTENDED_A}', "");
-    Expect(0, 2304, '\p{Block=-ARABIC_EXTENDED_A}', "");
-    Expect(1, 2304, '\p{^Block=-ARABIC_EXTENDED_A}', "");
-    Expect(1, 2304, '\P{Block=-ARABIC_EXTENDED_A}', "");
-    Expect(0, 2304, '\P{^Block=-ARABIC_EXTENDED_A}', "");
-    Error('\p{Blk:--Arabic_EXT_A/a/}');
-    Error('\P{Blk:--Arabic_EXT_A/a/}');
+    Expect(1, 2303, '\p{Block=Arabic_Extended_a}', "");
+    Expect(0, 2303, '\p{^Block=Arabic_Extended_a}', "");
+    Expect(0, 2303, '\P{Block=Arabic_Extended_a}', "");
+    Expect(1, 2303, '\P{^Block=Arabic_Extended_a}', "");
+    Expect(0, 2304, '\p{Block=Arabic_Extended_a}', "");
+    Expect(1, 2304, '\p{^Block=Arabic_Extended_a}', "");
+    Expect(1, 2304, '\P{Block=Arabic_Extended_a}', "");
+    Expect(0, 2304, '\P{^Block=Arabic_Extended_a}', "");
+    Error('\p{Blk=-_Arabic_EXT_a:=}');
+    Error('\P{Blk=-_Arabic_EXT_a:=}');
     Expect(1, 2303, '\p{Blk=:\AArabic_Ext_A\z:}', "");;
     Expect(0, 2304, '\p{Blk=:\AArabic_Ext_A\z:}', "");;
     Expect(1, 2303, '\p{Blk=arabicexta}', "");
@@ -4546,16 +4570,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2304, '\P{^Blk=arabicexta}', "");
     Expect(1, 2303, '\p{Blk=:\Aarabicexta\z:}', "");;
     Expect(0, 2304, '\p{Blk=:\Aarabicexta\z:}', "");;
-    Expect(1, 2303, '\p{Blk=--arabic_Ext_A}', "");
-    Expect(0, 2303, '\p{^Blk=--arabic_Ext_A}', "");
-    Expect(0, 2303, '\P{Blk=--arabic_Ext_A}', "");
-    Expect(1, 2303, '\P{^Blk=--arabic_Ext_A}', "");
-    Expect(0, 2304, '\p{Blk=--arabic_Ext_A}', "");
-    Expect(1, 2304, '\p{^Blk=--arabic_Ext_A}', "");
-    Expect(1, 2304, '\P{Blk=--arabic_Ext_A}', "");
-    Expect(0, 2304, '\P{^Blk=--arabic_Ext_A}', "");
-    Error('\p{Is_Block=_:=Arabic_Extended_a}');
-    Error('\P{Is_Block=_:=Arabic_Extended_a}');
+    Expect(1, 2303, '\p{Blk= 	Arabic_EXT_A}', "");
+    Expect(0, 2303, '\p{^Blk= 	Arabic_EXT_A}', "");
+    Expect(0, 2303, '\P{Blk= 	Arabic_EXT_A}', "");
+    Expect(1, 2303, '\P{^Blk= 	Arabic_EXT_A}', "");
+    Expect(0, 2304, '\p{Blk= 	Arabic_EXT_A}', "");
+    Expect(1, 2304, '\p{^Blk= 	Arabic_EXT_A}', "");
+    Expect(1, 2304, '\P{Blk= 	Arabic_EXT_A}', "");
+    Expect(0, 2304, '\P{^Blk= 	Arabic_EXT_A}', "");
+    Error('\p{Is_Block=- Arabic_Extended_a/a/}');
+    Error('\P{Is_Block=- Arabic_Extended_a/a/}');
     Expect(1, 2303, '\p{Is_Block=arabicextendeda}', "");
     Expect(0, 2303, '\p{^Is_Block=arabicextendeda}', "");
     Expect(0, 2303, '\P{Is_Block=arabicextendeda}', "");
@@ -4564,16 +4588,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2304, '\p{^Is_Block=arabicextendeda}', "");
     Expect(1, 2304, '\P{Is_Block=arabicextendeda}', "");
     Expect(0, 2304, '\P{^Is_Block=arabicextendeda}', "");
-    Expect(1, 2303, '\p{Is_Block=__arabic_Extended_A}', "");
-    Expect(0, 2303, '\p{^Is_Block=__arabic_Extended_A}', "");
-    Expect(0, 2303, '\P{Is_Block=__arabic_Extended_A}', "");
-    Expect(1, 2303, '\P{^Is_Block=__arabic_Extended_A}', "");
-    Expect(0, 2304, '\p{Is_Block=__arabic_Extended_A}', "");
-    Expect(1, 2304, '\p{^Is_Block=__arabic_Extended_A}', "");
-    Expect(1, 2304, '\P{Is_Block=__arabic_Extended_A}', "");
-    Expect(0, 2304, '\P{^Is_Block=__arabic_Extended_A}', "");
-    Error('\p{Is_Blk=_-Arabic_Ext_A:=}');
-    Error('\P{Is_Blk=_-Arabic_Ext_A:=}');
+    Expect(1, 2303, '\p{Is_Block: __ARABIC_extended_A}', "");
+    Expect(0, 2303, '\p{^Is_Block: __ARABIC_extended_A}', "");
+    Expect(0, 2303, '\P{Is_Block: __ARABIC_extended_A}', "");
+    Expect(1, 2303, '\P{^Is_Block: __ARABIC_extended_A}', "");
+    Expect(0, 2304, '\p{Is_Block: __ARABIC_extended_A}', "");
+    Expect(1, 2304, '\p{^Is_Block: __ARABIC_extended_A}', "");
+    Expect(1, 2304, '\P{Is_Block: __ARABIC_extended_A}', "");
+    Expect(0, 2304, '\P{^Is_Block: __ARABIC_extended_A}', "");
+    Error('\p{Is_Blk=:=	_Arabic_ext_A}');
+    Error('\P{Is_Blk=:=	_Arabic_ext_A}');
     Expect(1, 2303, '\p{Is_Blk=arabicexta}', "");
     Expect(0, 2303, '\p{^Is_Blk=arabicexta}', "");
     Expect(0, 2303, '\P{Is_Blk=arabicexta}', "");
@@ -4582,16 +4606,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2304, '\p{^Is_Blk=arabicexta}', "");
     Expect(1, 2304, '\P{Is_Blk=arabicexta}', "");
     Expect(0, 2304, '\P{^Is_Blk=arabicexta}', "");
-    Expect(1, 2303, '\p{Is_Blk=	_arabic_Ext_A}', "");
-    Expect(0, 2303, '\p{^Is_Blk=	_arabic_Ext_A}', "");
-    Expect(0, 2303, '\P{Is_Blk=	_arabic_Ext_A}', "");
-    Expect(1, 2303, '\P{^Is_Blk=	_arabic_Ext_A}', "");
-    Expect(0, 2304, '\p{Is_Blk=	_arabic_Ext_A}', "");
-    Expect(1, 2304, '\p{^Is_Blk=	_arabic_Ext_A}', "");
-    Expect(1, 2304, '\P{Is_Blk=	_arabic_Ext_A}', "");
-    Expect(0, 2304, '\P{^Is_Blk=	_arabic_Ext_A}', "");
-    Error('\p{Block=_-ARABIC_Extended_b:=}');
-    Error('\P{Block=_-ARABIC_Extended_b:=}');
+    Expect(1, 2303, '\p{Is_Blk=- Arabic_Ext_A}', "");
+    Expect(0, 2303, '\p{^Is_Blk=- Arabic_Ext_A}', "");
+    Expect(0, 2303, '\P{Is_Blk=- Arabic_Ext_A}', "");
+    Expect(1, 2303, '\P{^Is_Blk=- Arabic_Ext_A}', "");
+    Expect(0, 2304, '\p{Is_Blk=- Arabic_Ext_A}', "");
+    Expect(1, 2304, '\p{^Is_Blk=- Arabic_Ext_A}', "");
+    Expect(1, 2304, '\P{Is_Blk=- Arabic_Ext_A}', "");
+    Expect(0, 2304, '\P{^Is_Blk=- Arabic_Ext_A}', "");
+    Error('\p{Block=-:=ARABIC_extended_B}');
+    Error('\P{Block=-:=ARABIC_extended_B}');
     Expect(1, 2207, '\p{Block=:\AArabic_Extended_B\z:}', "");;
     Expect(0, 2208, '\p{Block=:\AArabic_Extended_B\z:}', "");;
     Expect(1, 2207, '\p{Block=arabicextendedb}', "");
@@ -4604,16 +4628,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2208, '\P{^Block=arabicextendedb}', "");
     Expect(1, 2207, '\p{Block=:\Aarabicextendedb\z:}', "");;
     Expect(0, 2208, '\p{Block=:\Aarabicextendedb\z:}', "");;
-    Expect(1, 2207, '\p{Block=	_Arabic_Extended_B}', "");
-    Expect(0, 2207, '\p{^Block=	_Arabic_Extended_B}', "");
-    Expect(0, 2207, '\P{Block=	_Arabic_Extended_B}', "");
-    Expect(1, 2207, '\P{^Block=	_Arabic_Extended_B}', "");
-    Expect(0, 2208, '\p{Block=	_Arabic_Extended_B}', "");
-    Expect(1, 2208, '\p{^Block=	_Arabic_Extended_B}', "");
-    Expect(1, 2208, '\P{Block=	_Arabic_Extended_B}', "");
-    Expect(0, 2208, '\P{^Block=	_Arabic_Extended_B}', "");
-    Error('\p{Blk=__ARABIC_EXT_B/a/}');
-    Error('\P{Blk=__ARABIC_EXT_B/a/}');
+    Expect(1, 2207, '\p{Block=		ARABIC_Extended_B}', "");
+    Expect(0, 2207, '\p{^Block=		ARABIC_Extended_B}', "");
+    Expect(0, 2207, '\P{Block=		ARABIC_Extended_B}', "");
+    Expect(1, 2207, '\P{^Block=		ARABIC_Extended_B}', "");
+    Expect(0, 2208, '\p{Block=		ARABIC_Extended_B}', "");
+    Expect(1, 2208, '\p{^Block=		ARABIC_Extended_B}', "");
+    Expect(1, 2208, '\P{Block=		ARABIC_Extended_B}', "");
+    Expect(0, 2208, '\P{^Block=		ARABIC_Extended_B}', "");
+    Error('\p{Blk=	-ARABIC_ext_B:=}');
+    Error('\P{Blk=	-ARABIC_ext_B:=}');
     Expect(1, 2207, '\p{Blk=:\AArabic_Ext_B\z:}', "");;
     Expect(0, 2208, '\p{Blk=:\AArabic_Ext_B\z:}', "");;
     Expect(1, 2207, '\p{Blk=arabicextb}', "");
@@ -4626,34 +4650,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2208, '\P{^Blk=arabicextb}', "");
     Expect(1, 2207, '\p{Blk=:\Aarabicextb\z:}', "");;
     Expect(0, 2208, '\p{Blk=:\Aarabicextb\z:}', "");;
-    Expect(1, 2207, '\p{Blk:   	 Arabic_EXT_B}', "");
-    Expect(0, 2207, '\p{^Blk:   	 Arabic_EXT_B}', "");
-    Expect(0, 2207, '\P{Blk:   	 Arabic_EXT_B}', "");
-    Expect(1, 2207, '\P{^Blk:   	 Arabic_EXT_B}', "");
-    Expect(0, 2208, '\p{Blk:   	 Arabic_EXT_B}', "");
-    Expect(1, 2208, '\p{^Blk:   	 Arabic_EXT_B}', "");
-    Expect(1, 2208, '\P{Blk:   	 Arabic_EXT_B}', "");
-    Expect(0, 2208, '\P{^Blk:   	 Arabic_EXT_B}', "");
-    Error('\p{Is_Block=- arabic_Extended_b/a/}');
-    Error('\P{Is_Block=- arabic_Extended_b/a/}');
-    Expect(1, 2207, '\p{Is_Block:arabicextendedb}', "");
-    Expect(0, 2207, '\p{^Is_Block:arabicextendedb}', "");
-    Expect(0, 2207, '\P{Is_Block:arabicextendedb}', "");
-    Expect(1, 2207, '\P{^Is_Block:arabicextendedb}', "");
-    Expect(0, 2208, '\p{Is_Block:arabicextendedb}', "");
-    Expect(1, 2208, '\p{^Is_Block:arabicextendedb}', "");
-    Expect(1, 2208, '\P{Is_Block:arabicextendedb}', "");
-    Expect(0, 2208, '\P{^Is_Block:arabicextendedb}', "");
-    Expect(1, 2207, '\p{Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(0, 2207, '\p{^Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(0, 2207, '\P{Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(1, 2207, '\P{^Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(0, 2208, '\p{Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(1, 2208, '\p{^Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(1, 2208, '\P{Is_Block:	 -Arabic_Extended_B}', "");
-    Expect(0, 2208, '\P{^Is_Block:	 -Arabic_Extended_B}', "");
-    Error('\p{Is_Blk=/a/arabic_Ext_B}');
-    Error('\P{Is_Blk=/a/arabic_Ext_B}');
+    Expect(1, 2207, '\p{Blk:	--ARABIC_Ext_b}', "");
+    Expect(0, 2207, '\p{^Blk:	--ARABIC_Ext_b}', "");
+    Expect(0, 2207, '\P{Blk:	--ARABIC_Ext_b}', "");
+    Expect(1, 2207, '\P{^Blk:	--ARABIC_Ext_b}', "");
+    Expect(0, 2208, '\p{Blk:	--ARABIC_Ext_b}', "");
+    Expect(1, 2208, '\p{^Blk:	--ARABIC_Ext_b}', "");
+    Expect(1, 2208, '\P{Blk:	--ARABIC_Ext_b}', "");
+    Expect(0, 2208, '\P{^Blk:	--ARABIC_Ext_b}', "");
+    Error('\p{Is_Block=/a/  arabic_EXTENDED_B}');
+    Error('\P{Is_Block=/a/  arabic_EXTENDED_B}');
+    Expect(1, 2207, '\p{Is_Block=arabicextendedb}', "");
+    Expect(0, 2207, '\p{^Is_Block=arabicextendedb}', "");
+    Expect(0, 2207, '\P{Is_Block=arabicextendedb}', "");
+    Expect(1, 2207, '\P{^Is_Block=arabicextendedb}', "");
+    Expect(0, 2208, '\p{Is_Block=arabicextendedb}', "");
+    Expect(1, 2208, '\p{^Is_Block=arabicextendedb}', "");
+    Expect(1, 2208, '\P{Is_Block=arabicextendedb}', "");
+    Expect(0, 2208, '\P{^Is_Block=arabicextendedb}', "");
+    Expect(1, 2207, '\p{Is_Block=- Arabic_Extended_B}', "");
+    Expect(0, 2207, '\p{^Is_Block=- Arabic_Extended_B}', "");
+    Expect(0, 2207, '\P{Is_Block=- Arabic_Extended_B}', "");
+    Expect(1, 2207, '\P{^Is_Block=- Arabic_Extended_B}', "");
+    Expect(0, 2208, '\p{Is_Block=- Arabic_Extended_B}', "");
+    Expect(1, 2208, '\p{^Is_Block=- Arabic_Extended_B}', "");
+    Expect(1, 2208, '\P{Is_Block=- Arabic_Extended_B}', "");
+    Expect(0, 2208, '\P{^Is_Block=- Arabic_Extended_B}', "");
+    Error('\p{Is_Blk=/a/ 	arabic_Ext_B}');
+    Error('\P{Is_Blk=/a/ 	arabic_Ext_B}');
     Expect(1, 2207, '\p{Is_Blk=arabicextb}', "");
     Expect(0, 2207, '\p{^Is_Blk=arabicextb}', "");
     Expect(0, 2207, '\P{Is_Blk=arabicextb}', "");
@@ -4662,16 +4686,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2208, '\p{^Is_Blk=arabicextb}', "");
     Expect(1, 2208, '\P{Is_Blk=arabicextb}', "");
     Expect(0, 2208, '\P{^Is_Blk=arabicextb}', "");
-    Expect(1, 2207, '\p{Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(0, 2207, '\p{^Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(0, 2207, '\P{Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(1, 2207, '\P{^Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(0, 2208, '\p{Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(1, 2208, '\p{^Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(1, 2208, '\P{Is_Blk:		-ARABIC_Ext_B}', "");
-    Expect(0, 2208, '\P{^Is_Blk:		-ARABIC_Ext_B}', "");
-    Error('\p{Block:    /a/ARABIC_MATHEMATICAL_Alphabetic_symbols}');
-    Error('\P{Block:    /a/ARABIC_MATHEMATICAL_Alphabetic_symbols}');
+    Expect(1, 2207, '\p{Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(0, 2207, '\p{^Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(0, 2207, '\P{Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(1, 2207, '\P{^Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(0, 2208, '\p{Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(1, 2208, '\p{^Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(1, 2208, '\P{Is_Blk= _ARABIC_Ext_B}', "");
+    Expect(0, 2208, '\P{^Is_Blk= _ARABIC_Ext_B}', "");
+    Error('\p{Block= _arabic_Extended_C/a/}');
+    Error('\P{Block= _arabic_Extended_C/a/}');
+    Expect(1, 69375, '\p{Block=:\AArabic_Extended_C\z:}', "");;
+    Expect(0, 69376, '\p{Block=:\AArabic_Extended_C\z:}', "");;
+    Expect(1, 69375, '\p{Block=arabicextendedc}', "");
+    Expect(0, 69375, '\p{^Block=arabicextendedc}', "");
+    Expect(0, 69375, '\P{Block=arabicextendedc}', "");
+    Expect(1, 69375, '\P{^Block=arabicextendedc}', "");
+    Expect(0, 69376, '\p{Block=arabicextendedc}', "");
+    Expect(1, 69376, '\p{^Block=arabicextendedc}', "");
+    Expect(1, 69376, '\P{Block=arabicextendedc}', "");
+    Expect(0, 69376, '\P{^Block=arabicextendedc}', "");
+    Expect(1, 69375, '\p{Block=:\Aarabicextendedc\z:}', "");;
+    Expect(0, 69376, '\p{Block=:\Aarabicextendedc\z:}', "");;
+    Expect(1, 69375, '\p{Block=-arabic_Extended_C}', "");
+    Expect(0, 69375, '\p{^Block=-arabic_Extended_C}', "");
+    Expect(0, 69375, '\P{Block=-arabic_Extended_C}', "");
+    Expect(1, 69375, '\P{^Block=-arabic_Extended_C}', "");
+    Expect(0, 69376, '\p{Block=-arabic_Extended_C}', "");
+    Expect(1, 69376, '\p{^Block=-arabic_Extended_C}', "");
+    Expect(1, 69376, '\P{Block=-arabic_Extended_C}', "");
+    Expect(0, 69376, '\P{^Block=-arabic_Extended_C}', "");
+    Error('\p{Blk=_:=Arabic_ext_C}');
+    Error('\P{Blk=_:=Arabic_ext_C}');
+    Expect(1, 69375, '\p{Blk=:\AArabic_Ext_C\z:}', "");;
+    Expect(0, 69376, '\p{Blk=:\AArabic_Ext_C\z:}', "");;
+    Expect(1, 69375, '\p{Blk=arabicextc}', "");
+    Expect(0, 69375, '\p{^Blk=arabicextc}', "");
+    Expect(0, 69375, '\P{Blk=arabicextc}', "");
+    Expect(1, 69375, '\P{^Blk=arabicextc}', "");
+    Expect(0, 69376, '\p{Blk=arabicextc}', "");
+    Expect(1, 69376, '\p{^Blk=arabicextc}', "");
+    Expect(1, 69376, '\P{Blk=arabicextc}', "");
+    Expect(0, 69376, '\P{^Blk=arabicextc}', "");
+    Expect(1, 69375, '\p{Blk=:\Aarabicextc\z:}', "");;
+    Expect(0, 69376, '\p{Blk=:\Aarabicextc\z:}', "");;
+    Expect(1, 69375, '\p{Blk=_arabic_ext_C}', "");
+    Expect(0, 69375, '\p{^Blk=_arabic_ext_C}', "");
+    Expect(0, 69375, '\P{Blk=_arabic_ext_C}', "");
+    Expect(1, 69375, '\P{^Blk=_arabic_ext_C}', "");
+    Expect(0, 69376, '\p{Blk=_arabic_ext_C}', "");
+    Expect(1, 69376, '\p{^Blk=_arabic_ext_C}', "");
+    Expect(1, 69376, '\P{Blk=_arabic_ext_C}', "");
+    Expect(0, 69376, '\P{^Blk=_arabic_ext_C}', "");
+    Error('\p{Is_Block=	 arabic_Extended_C:=}');
+    Error('\P{Is_Block=	 arabic_Extended_C:=}');
+    Expect(1, 69375, '\p{Is_Block=arabicextendedc}', "");
+    Expect(0, 69375, '\p{^Is_Block=arabicextendedc}', "");
+    Expect(0, 69375, '\P{Is_Block=arabicextendedc}', "");
+    Expect(1, 69375, '\P{^Is_Block=arabicextendedc}', "");
+    Expect(0, 69376, '\p{Is_Block=arabicextendedc}', "");
+    Expect(1, 69376, '\p{^Is_Block=arabicextendedc}', "");
+    Expect(1, 69376, '\P{Is_Block=arabicextendedc}', "");
+    Expect(0, 69376, '\P{^Is_Block=arabicextendedc}', "");
+    Expect(1, 69375, '\p{Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(0, 69375, '\p{^Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(0, 69375, '\P{Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(1, 69375, '\P{^Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(0, 69376, '\p{Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(1, 69376, '\p{^Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(1, 69376, '\P{Is_Block=_	ARABIC_Extended_C}', "");
+    Expect(0, 69376, '\P{^Is_Block=_	ARABIC_Extended_C}', "");
+    Error('\p{Is_Blk=	:=ARABIC_Ext_C}');
+    Error('\P{Is_Blk=	:=ARABIC_Ext_C}');
+    Expect(1, 69375, '\p{Is_Blk=arabicextc}', "");
+    Expect(0, 69375, '\p{^Is_Blk=arabicextc}', "");
+    Expect(0, 69375, '\P{Is_Blk=arabicextc}', "");
+    Expect(1, 69375, '\P{^Is_Blk=arabicextc}', "");
+    Expect(0, 69376, '\p{Is_Blk=arabicextc}', "");
+    Expect(1, 69376, '\p{^Is_Blk=arabicextc}', "");
+    Expect(1, 69376, '\P{Is_Blk=arabicextc}', "");
+    Expect(0, 69376, '\P{^Is_Blk=arabicextc}', "");
+    Expect(1, 69375, '\p{Is_Blk= 	arabic_EXT_C}', "");
+    Expect(0, 69375, '\p{^Is_Blk= 	arabic_EXT_C}', "");
+    Expect(0, 69375, '\P{Is_Blk= 	arabic_EXT_C}', "");
+    Expect(1, 69375, '\P{^Is_Blk= 	arabic_EXT_C}', "");
+    Expect(0, 69376, '\p{Is_Blk= 	arabic_EXT_C}', "");
+    Expect(1, 69376, '\p{^Is_Blk= 	arabic_EXT_C}', "");
+    Expect(1, 69376, '\P{Is_Blk= 	arabic_EXT_C}', "");
+    Expect(0, 69376, '\P{^Is_Blk= 	arabic_EXT_C}', "");
+    Error('\p{Block=/a/ARABIC_Mathematical_Alphabetic_symbols}');
+    Error('\P{Block=/a/ARABIC_Mathematical_Alphabetic_symbols}');
     Expect(1, 126719, '\p{Block=:\AArabic_Mathematical_Alphabetic_Symbols\z:}', "");;
     Expect(0, 126720, '\p{Block=:\AArabic_Mathematical_Alphabetic_Symbols\z:}', "");;
     Expect(1, 126719, '\p{Block=arabicmathematicalalphabeticsymbols}', "");
@@ -4684,16 +4788,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126720, '\P{^Block=arabicmathematicalalphabeticsymbols}', "");
     Expect(1, 126719, '\p{Block=:\Aarabicmathematicalalphabeticsymbols\z:}', "");;
     Expect(0, 126720, '\p{Block=:\Aarabicmathematicalalphabeticsymbols\z:}', "");;
-    Expect(1, 126719, '\p{Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(0, 126719, '\p{^Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(0, 126719, '\P{Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(1, 126719, '\P{^Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(0, 126720, '\p{Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(1, 126720, '\p{^Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(1, 126720, '\P{Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Expect(0, 126720, '\P{^Block:   	-ARABIC_Mathematical_ALPHABETIC_symbols}', "");
-    Error('\p{Blk=/a/	_Arabic_math}');
-    Error('\P{Blk=/a/	_Arabic_math}');
+    Expect(1, 126719, '\p{Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126719, '\p{^Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126719, '\P{Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(1, 126719, '\P{^Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126720, '\p{Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(1, 126720, '\p{^Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(1, 126720, '\P{Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126720, '\P{^Block=-arabic_Mathematical_alphabetic_SYMBOLS}', "");
+    Error('\p{Blk=:=__arabic_MATH}');
+    Error('\P{Blk=:=__arabic_MATH}');
     Expect(1, 126719, '\p{Blk=:\AArabic_Math\z:}', "");;
     Expect(0, 126720, '\p{Blk=:\AArabic_Math\z:}', "");;
     Expect(1, 126719, '\p{Blk=arabicmath}', "");
@@ -4706,16 +4810,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126720, '\P{^Blk=arabicmath}', "");
     Expect(1, 126719, '\p{Blk=:\Aarabicmath\z:}', "");;
     Expect(0, 126720, '\p{Blk=:\Aarabicmath\z:}', "");;
-    Expect(1, 126719, '\p{Blk=_	Arabic_Math}', "");
-    Expect(0, 126719, '\p{^Blk=_	Arabic_Math}', "");
-    Expect(0, 126719, '\P{Blk=_	Arabic_Math}', "");
-    Expect(1, 126719, '\P{^Blk=_	Arabic_Math}', "");
-    Expect(0, 126720, '\p{Blk=_	Arabic_Math}', "");
-    Expect(1, 126720, '\p{^Blk=_	Arabic_Math}', "");
-    Expect(1, 126720, '\P{Blk=_	Arabic_Math}', "");
-    Expect(0, 126720, '\P{^Blk=_	Arabic_Math}', "");
-    Error('\p{Is_Block=:=-_Arabic_Mathematical_alphabetic_Symbols}');
-    Error('\P{Is_Block=:=-_Arabic_Mathematical_alphabetic_Symbols}');
+    Expect(1, 126719, '\p{Blk=-arabic_Math}', "");
+    Expect(0, 126719, '\p{^Blk=-arabic_Math}', "");
+    Expect(0, 126719, '\P{Blk=-arabic_Math}', "");
+    Expect(1, 126719, '\P{^Blk=-arabic_Math}', "");
+    Expect(0, 126720, '\p{Blk=-arabic_Math}', "");
+    Expect(1, 126720, '\p{^Blk=-arabic_Math}', "");
+    Expect(1, 126720, '\P{Blk=-arabic_Math}', "");
+    Expect(0, 126720, '\P{^Blk=-arabic_Math}', "");
+    Error('\p{Is_Block=__Arabic_Mathematical_alphabetic_symbols:=}');
+    Error('\P{Is_Block=__Arabic_Mathematical_alphabetic_symbols:=}');
     Expect(1, 126719, '\p{Is_Block=arabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\p{^Is_Block=arabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\P{Is_Block=arabicmathematicalalphabeticsymbols}', "");
@@ -4724,16 +4828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126720, '\p{^Is_Block=arabicmathematicalalphabeticsymbols}', "");
     Expect(1, 126720, '\P{Is_Block=arabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126720, '\P{^Is_Block=arabicmathematicalalphabeticsymbols}', "");
-    Expect(1, 126719, '\p{Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(0, 126719, '\p{^Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(0, 126719, '\P{Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(1, 126719, '\P{^Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(0, 126720, '\p{Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(1, 126720, '\p{^Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(1, 126720, '\P{Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Expect(0, 126720, '\P{^Is_Block=- Arabic_MATHEMATICAL_Alphabetic_Symbols}', "");
-    Error('\p{Is_Blk=:=	-ARABIC_Math}');
-    Error('\P{Is_Blk=:=	-ARABIC_Math}');
+    Expect(1, 126719, '\p{Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126719, '\p{^Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126719, '\P{Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(1, 126719, '\P{^Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126720, '\p{Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(1, 126720, '\p{^Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(1, 126720, '\P{Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126720, '\P{^Is_Block= ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Error('\p{Is_Blk:   __arabic_MATH/a/}');
+    Error('\P{Is_Blk:   __arabic_MATH/a/}');
     Expect(1, 126719, '\p{Is_Blk=arabicmath}', "");
     Expect(0, 126719, '\p{^Is_Blk=arabicmath}', "");
     Expect(0, 126719, '\P{Is_Blk=arabicmath}', "");
@@ -4742,16 +4846,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126720, '\p{^Is_Blk=arabicmath}', "");
     Expect(1, 126720, '\P{Is_Blk=arabicmath}', "");
     Expect(0, 126720, '\P{^Is_Blk=arabicmath}', "");
-    Expect(1, 126719, '\p{Is_Blk=__arabic_Math}', "");
-    Expect(0, 126719, '\p{^Is_Blk=__arabic_Math}', "");
-    Expect(0, 126719, '\P{Is_Blk=__arabic_Math}', "");
-    Expect(1, 126719, '\P{^Is_Blk=__arabic_Math}', "");
-    Expect(0, 126720, '\p{Is_Blk=__arabic_Math}', "");
-    Expect(1, 126720, '\p{^Is_Blk=__arabic_Math}', "");
-    Expect(1, 126720, '\P{Is_Blk=__arabic_Math}', "");
-    Expect(0, 126720, '\P{^Is_Blk=__arabic_Math}', "");
-    Error('\p{Block=/a/Arabic_Presentation_FORMS_A}');
-    Error('\P{Block=/a/Arabic_Presentation_FORMS_A}');
+    Expect(1, 126719, '\p{Is_Blk=__ARABIC_math}', "");
+    Expect(0, 126719, '\p{^Is_Blk=__ARABIC_math}', "");
+    Expect(0, 126719, '\P{Is_Blk=__ARABIC_math}', "");
+    Expect(1, 126719, '\P{^Is_Blk=__ARABIC_math}', "");
+    Expect(0, 126720, '\p{Is_Blk=__ARABIC_math}', "");
+    Expect(1, 126720, '\p{^Is_Blk=__ARABIC_math}', "");
+    Expect(1, 126720, '\P{Is_Blk=__ARABIC_math}', "");
+    Expect(0, 126720, '\P{^Is_Blk=__ARABIC_math}', "");
+    Error('\p{Block:	/a/ARABIC_PRESENTATION_Forms_A}');
+    Error('\P{Block:	/a/ARABIC_PRESENTATION_Forms_A}');
     Expect(1, 65023, '\p{Block=:\AArabic_Presentation_Forms_A\z:}', "");;
     Expect(0, 65024, '\p{Block=:\AArabic_Presentation_Forms_A\z:}', "");;
     Expect(1, 65023, '\p{Block=arabicpresentationformsa}', "");
@@ -4764,16 +4868,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65024, '\P{^Block=arabicpresentationformsa}', "");
     Expect(1, 65023, '\p{Block=:\Aarabicpresentationformsa\z:}', "");;
     Expect(0, 65024, '\p{Block=:\Aarabicpresentationformsa\z:}', "");;
-    Expect(1, 65023, '\p{Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(0, 65023, '\p{^Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(0, 65023, '\P{Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(1, 65023, '\P{^Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(0, 65024, '\p{Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(1, 65024, '\p{^Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(1, 65024, '\P{Block:	-_ARABIC_presentation_Forms_a}', "");
-    Expect(0, 65024, '\P{^Block:	-_ARABIC_presentation_Forms_a}', "");
-    Error('\p{Blk:	-Arabic_PF_A:=}');
-    Error('\P{Blk:	-Arabic_PF_A:=}');
+    Expect(1, 65023, '\p{Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(0, 65023, '\p{^Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(0, 65023, '\P{Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(1, 65023, '\P{^Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(0, 65024, '\p{Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(1, 65024, '\p{^Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(1, 65024, '\P{Block=		ARABIC_Presentation_FORMS_A}', "");
+    Expect(0, 65024, '\P{^Block=		ARABIC_Presentation_FORMS_A}', "");
+    Error('\p{Blk=_arabic_PF_A/a/}');
+    Error('\P{Blk=_arabic_PF_A/a/}');
     Expect(1, 65023, '\p{Blk=:\AArabic_PF_A\z:}', "");;
     Expect(0, 65024, '\p{Blk=:\AArabic_PF_A\z:}', "");;
     Expect(1, 65023, '\p{Blk=arabicpfa}', "");
@@ -4786,16 +4890,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65024, '\P{^Blk=arabicpfa}', "");
     Expect(1, 65023, '\p{Blk=:\Aarabicpfa\z:}', "");;
     Expect(0, 65024, '\p{Blk=:\Aarabicpfa\z:}', "");;
-    Expect(1, 65023, '\p{Blk=_-Arabic_PF_A}', "");
-    Expect(0, 65023, '\p{^Blk=_-Arabic_PF_A}', "");
-    Expect(0, 65023, '\P{Blk=_-Arabic_PF_A}', "");
-    Expect(1, 65023, '\P{^Blk=_-Arabic_PF_A}', "");
-    Expect(0, 65024, '\p{Blk=_-Arabic_PF_A}', "");
-    Expect(1, 65024, '\p{^Blk=_-Arabic_PF_A}', "");
-    Expect(1, 65024, '\P{Blk=_-Arabic_PF_A}', "");
-    Expect(0, 65024, '\P{^Blk=_-Arabic_PF_A}', "");
-    Error('\p{Is_Block=/a/-ARABIC_presentation_forms_a}');
-    Error('\P{Is_Block=/a/-ARABIC_presentation_forms_a}');
+    Expect(1, 65023, '\p{Blk=	 Arabic_PF_a}', "");
+    Expect(0, 65023, '\p{^Blk=	 Arabic_PF_a}', "");
+    Expect(0, 65023, '\P{Blk=	 Arabic_PF_a}', "");
+    Expect(1, 65023, '\P{^Blk=	 Arabic_PF_a}', "");
+    Expect(0, 65024, '\p{Blk=	 Arabic_PF_a}', "");
+    Expect(1, 65024, '\p{^Blk=	 Arabic_PF_a}', "");
+    Expect(1, 65024, '\P{Blk=	 Arabic_PF_a}', "");
+    Expect(0, 65024, '\P{^Blk=	 Arabic_PF_a}', "");
+    Error('\p{Is_Block=:=- Arabic_Presentation_FORMS_A}');
+    Error('\P{Is_Block=:=- Arabic_Presentation_FORMS_A}');
     Expect(1, 65023, '\p{Is_Block=arabicpresentationformsa}', "");
     Expect(0, 65023, '\p{^Is_Block=arabicpresentationformsa}', "");
     Expect(0, 65023, '\P{Is_Block=arabicpresentationformsa}', "");
@@ -4804,16 +4908,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65024, '\p{^Is_Block=arabicpresentationformsa}', "");
     Expect(1, 65024, '\P{Is_Block=arabicpresentationformsa}', "");
     Expect(0, 65024, '\P{^Is_Block=arabicpresentationformsa}', "");
-    Expect(1, 65023, '\p{Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(0, 65023, '\p{^Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(0, 65023, '\P{Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(1, 65023, '\P{^Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(0, 65024, '\p{Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(1, 65024, '\p{^Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(1, 65024, '\P{Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Expect(0, 65024, '\P{^Is_Block=	-arabic_PRESENTATION_FORMS_A}', "");
-    Error('\p{Is_Blk=	/a/Arabic_PF_A}');
-    Error('\P{Is_Blk=	/a/Arabic_PF_A}');
+    Expect(1, 65023, '\p{Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(0, 65023, '\p{^Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(0, 65023, '\P{Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(1, 65023, '\P{^Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(0, 65024, '\p{Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(1, 65024, '\p{^Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(1, 65024, '\P{Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Expect(0, 65024, '\P{^Is_Block=_ ARABIC_Presentation_Forms_A}', "");
+    Error('\p{Is_Blk=	_Arabic_PF_A/a/}');
+    Error('\P{Is_Blk=	_Arabic_PF_A/a/}');
     Expect(1, 65023, '\p{Is_Blk=arabicpfa}', "");
     Expect(0, 65023, '\p{^Is_Blk=arabicpfa}', "");
     Expect(0, 65023, '\P{Is_Blk=arabicpfa}', "");
@@ -4822,16 +4926,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65024, '\p{^Is_Blk=arabicpfa}', "");
     Expect(1, 65024, '\P{Is_Blk=arabicpfa}', "");
     Expect(0, 65024, '\P{^Is_Blk=arabicpfa}', "");
-    Expect(1, 65023, '\p{Is_Blk=--Arabic_PF_A}', "");
-    Expect(0, 65023, '\p{^Is_Blk=--Arabic_PF_A}', "");
-    Expect(0, 65023, '\P{Is_Blk=--Arabic_PF_A}', "");
-    Expect(1, 65023, '\P{^Is_Blk=--Arabic_PF_A}', "");
-    Expect(0, 65024, '\p{Is_Blk=--Arabic_PF_A}', "");
-    Expect(1, 65024, '\p{^Is_Blk=--Arabic_PF_A}', "");
-    Expect(1, 65024, '\P{Is_Blk=--Arabic_PF_A}', "");
-    Expect(0, 65024, '\P{^Is_Blk=--Arabic_PF_A}', "");
-    Error('\p{Block=--ARABIC_Presentation_FORMS_B:=}');
-    Error('\P{Block=--ARABIC_Presentation_FORMS_B:=}');
+    Expect(1, 65023, '\p{Is_Blk= ARABIC_PF_a}', "");
+    Expect(0, 65023, '\p{^Is_Blk= ARABIC_PF_a}', "");
+    Expect(0, 65023, '\P{Is_Blk= ARABIC_PF_a}', "");
+    Expect(1, 65023, '\P{^Is_Blk= ARABIC_PF_a}', "");
+    Expect(0, 65024, '\p{Is_Blk= ARABIC_PF_a}', "");
+    Expect(1, 65024, '\p{^Is_Blk= ARABIC_PF_a}', "");
+    Expect(1, 65024, '\P{Is_Blk= ARABIC_PF_a}', "");
+    Expect(0, 65024, '\P{^Is_Blk= ARABIC_PF_a}', "");
+    Error('\p{Block=_:=Arabic_Presentation_Forms_b}');
+    Error('\P{Block=_:=Arabic_Presentation_Forms_b}');
     Expect(1, 65279, '\p{Block=:\AArabic_Presentation_Forms_B\z:}', "");;
     Expect(0, 65280, '\p{Block=:\AArabic_Presentation_Forms_B\z:}', "");;
     Expect(1, 65279, '\p{Block=arabicpresentationformsb}', "");
@@ -4844,16 +4948,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65280, '\P{^Block=arabicpresentationformsb}', "");
     Expect(1, 65279, '\p{Block=:\Aarabicpresentationformsb\z:}', "");;
     Expect(0, 65280, '\p{Block=:\Aarabicpresentationformsb\z:}', "");;
-    Expect(1, 65279, '\p{Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(0, 65279, '\p{^Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(0, 65279, '\P{Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(1, 65279, '\P{^Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(0, 65280, '\p{Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(1, 65280, '\p{^Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(1, 65280, '\P{Block=_	Arabic_presentation_FORMS_B}', "");
-    Expect(0, 65280, '\P{^Block=_	Arabic_presentation_FORMS_B}', "");
-    Error('\p{Blk=:=  Arabic_PF_b}');
-    Error('\P{Blk=:=  Arabic_PF_b}');
+    Expect(1, 65279, '\p{Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(0, 65279, '\p{^Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(0, 65279, '\P{Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(1, 65279, '\P{^Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(0, 65280, '\p{Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(1, 65280, '\p{^Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(1, 65280, '\P{Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Expect(0, 65280, '\P{^Block: 	_ARABIC_presentation_FORMS_b}', "");
+    Error('\p{Blk=--Arabic_PF_B/a/}');
+    Error('\P{Blk=--Arabic_PF_B/a/}');
     Expect(1, 65279, '\p{Blk=:\AArabic_PF_B\z:}', "");;
     Expect(0, 65280, '\p{Blk=:\AArabic_PF_B\z:}', "");;
     Expect(1, 65279, '\p{Blk=arabicpfb}', "");
@@ -4866,16 +4970,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65280, '\P{^Blk=arabicpfb}', "");
     Expect(1, 65279, '\p{Blk=:\Aarabicpfb\z:}', "");;
     Expect(0, 65280, '\p{Blk=:\Aarabicpfb\z:}', "");;
-    Expect(1, 65279, '\p{Blk=_	Arabic_PF_B}', "");
-    Expect(0, 65279, '\p{^Blk=_	Arabic_PF_B}', "");
-    Expect(0, 65279, '\P{Blk=_	Arabic_PF_B}', "");
-    Expect(1, 65279, '\P{^Blk=_	Arabic_PF_B}', "");
-    Expect(0, 65280, '\p{Blk=_	Arabic_PF_B}', "");
-    Expect(1, 65280, '\p{^Blk=_	Arabic_PF_B}', "");
-    Expect(1, 65280, '\P{Blk=_	Arabic_PF_B}', "");
-    Expect(0, 65280, '\P{^Blk=_	Arabic_PF_B}', "");
-    Error('\p{Is_Block=:=	ARABIC_PRESENTATION_Forms_B}');
-    Error('\P{Is_Block=:=	ARABIC_PRESENTATION_Forms_B}');
+    Expect(1, 65279, '\p{Blk: _	Arabic_pf_B}', "");
+    Expect(0, 65279, '\p{^Blk: _	Arabic_pf_B}', "");
+    Expect(0, 65279, '\P{Blk: _	Arabic_pf_B}', "");
+    Expect(1, 65279, '\P{^Blk: _	Arabic_pf_B}', "");
+    Expect(0, 65280, '\p{Blk: _	Arabic_pf_B}', "");
+    Expect(1, 65280, '\p{^Blk: _	Arabic_pf_B}', "");
+    Expect(1, 65280, '\P{Blk: _	Arabic_pf_B}', "");
+    Expect(0, 65280, '\P{^Blk: _	Arabic_pf_B}', "");
+    Error('\p{Is_Block=-Arabic_presentation_Forms_B/a/}');
+    Error('\P{Is_Block=-Arabic_presentation_Forms_B/a/}');
     Expect(1, 65279, '\p{Is_Block=arabicpresentationformsb}', "");
     Expect(0, 65279, '\p{^Is_Block=arabicpresentationformsb}', "");
     Expect(0, 65279, '\P{Is_Block=arabicpresentationformsb}', "");
@@ -4884,16 +4988,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65280, '\p{^Is_Block=arabicpresentationformsb}', "");
     Expect(1, 65280, '\P{Is_Block=arabicpresentationformsb}', "");
     Expect(0, 65280, '\P{^Is_Block=arabicpresentationformsb}', "");
-    Expect(1, 65279, '\p{Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(0, 65279, '\p{^Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(0, 65279, '\P{Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(1, 65279, '\P{^Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(0, 65280, '\p{Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(1, 65280, '\p{^Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(1, 65280, '\P{Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Expect(0, 65280, '\P{^Is_Block=- ARABIC_PRESENTATION_forms_B}', "");
-    Error('\p{Is_Blk=	/a/arabic_PF_B}');
-    Error('\P{Is_Blk=	/a/arabic_PF_B}');
+    Expect(1, 65279, '\p{Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(0, 65279, '\p{^Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(0, 65279, '\P{Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(1, 65279, '\P{^Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(0, 65280, '\p{Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(1, 65280, '\p{^Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(1, 65280, '\P{Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Expect(0, 65280, '\P{^Is_Block=_Arabic_Presentation_Forms_b}', "");
+    Error('\p{Is_Blk=	:=Arabic_PF_B}');
+    Error('\P{Is_Blk=	:=Arabic_PF_B}');
     Expect(1, 65279, '\p{Is_Blk=arabicpfb}', "");
     Expect(0, 65279, '\p{^Is_Blk=arabicpfb}', "");
     Expect(0, 65279, '\P{Is_Blk=arabicpfb}', "");
@@ -4902,16 +5006,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65280, '\p{^Is_Blk=arabicpfb}', "");
     Expect(1, 65280, '\P{Is_Blk=arabicpfb}', "");
     Expect(0, 65280, '\P{^Is_Blk=arabicpfb}', "");
-    Expect(1, 65279, '\p{Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(0, 65279, '\p{^Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(0, 65279, '\P{Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(1, 65279, '\P{^Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(0, 65280, '\p{Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(1, 65280, '\p{^Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(1, 65280, '\P{Is_Blk=_ ARABIC_PF_B}', "");
-    Expect(0, 65280, '\P{^Is_Blk=_ ARABIC_PF_B}', "");
-    Error('\p{Block=:=	 Arabic_Supplement}');
-    Error('\P{Block=:=	 Arabic_Supplement}');
+    Expect(1, 65279, '\p{Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(0, 65279, '\p{^Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(0, 65279, '\P{Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(1, 65279, '\P{^Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(0, 65280, '\p{Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(1, 65280, '\p{^Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(1, 65280, '\P{Is_Blk=	_ARABIC_pf_B}', "");
+    Expect(0, 65280, '\P{^Is_Blk=	_ARABIC_pf_B}', "");
+    Error('\p{Block=/a/_arabic_supplement}');
+    Error('\P{Block=/a/_arabic_supplement}');
     Expect(1, 1919, '\p{Block=:\AArabic_Supplement\z:}', "");;
     Expect(0, 1920, '\p{Block=:\AArabic_Supplement\z:}', "");;
     Expect(1, 1919, '\p{Block=arabicsupplement}', "");
@@ -4924,38 +5028,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1920, '\P{^Block=arabicsupplement}', "");
     Expect(1, 1919, '\p{Block=:\Aarabicsupplement\z:}', "");;
     Expect(0, 1920, '\p{Block=:\Aarabicsupplement\z:}', "");;
-    Expect(1, 1919, '\p{Block= _Arabic_supplement}', "");
-    Expect(0, 1919, '\p{^Block= _Arabic_supplement}', "");
-    Expect(0, 1919, '\P{Block= _Arabic_supplement}', "");
-    Expect(1, 1919, '\P{^Block= _Arabic_supplement}', "");
-    Expect(0, 1920, '\p{Block= _Arabic_supplement}', "");
-    Expect(1, 1920, '\p{^Block= _Arabic_supplement}', "");
-    Expect(1, 1920, '\P{Block= _Arabic_supplement}', "");
-    Expect(0, 1920, '\P{^Block= _Arabic_supplement}', "");
-    Error('\p{Blk=:=	-Arabic_Sup}');
-    Error('\P{Blk=:=	-Arabic_Sup}');
+    Expect(1, 1919, '\p{Block=__Arabic_Supplement}', "");
+    Expect(0, 1919, '\p{^Block=__Arabic_Supplement}', "");
+    Expect(0, 1919, '\P{Block=__Arabic_Supplement}', "");
+    Expect(1, 1919, '\P{^Block=__Arabic_Supplement}', "");
+    Expect(0, 1920, '\p{Block=__Arabic_Supplement}', "");
+    Expect(1, 1920, '\p{^Block=__Arabic_Supplement}', "");
+    Expect(1, 1920, '\P{Block=__Arabic_Supplement}', "");
+    Expect(0, 1920, '\P{^Block=__Arabic_Supplement}', "");
+    Error('\p{Blk= /a/arabic_Sup}');
+    Error('\P{Blk= /a/arabic_Sup}');
     Expect(1, 1919, '\p{Blk=:\AArabic_Sup\z:}', "");;
     Expect(0, 1920, '\p{Blk=:\AArabic_Sup\z:}', "");;
-    Expect(1, 1919, '\p{Blk=arabicsup}', "");
-    Expect(0, 1919, '\p{^Blk=arabicsup}', "");
-    Expect(0, 1919, '\P{Blk=arabicsup}', "");
-    Expect(1, 1919, '\P{^Blk=arabicsup}', "");
-    Expect(0, 1920, '\p{Blk=arabicsup}', "");
-    Expect(1, 1920, '\p{^Blk=arabicsup}', "");
-    Expect(1, 1920, '\P{Blk=arabicsup}', "");
-    Expect(0, 1920, '\P{^Blk=arabicsup}', "");
+    Expect(1, 1919, '\p{Blk: arabicsup}', "");
+    Expect(0, 1919, '\p{^Blk: arabicsup}', "");
+    Expect(0, 1919, '\P{Blk: arabicsup}', "");
+    Expect(1, 1919, '\P{^Blk: arabicsup}', "");
+    Expect(0, 1920, '\p{Blk: arabicsup}', "");
+    Expect(1, 1920, '\p{^Blk: arabicsup}', "");
+    Expect(1, 1920, '\P{Blk: arabicsup}', "");
+    Expect(0, 1920, '\P{^Blk: arabicsup}', "");
     Expect(1, 1919, '\p{Blk=:\Aarabicsup\z:}', "");;
     Expect(0, 1920, '\p{Blk=:\Aarabicsup\z:}', "");;
-    Expect(1, 1919, '\p{Blk=_ Arabic_sup}', "");
-    Expect(0, 1919, '\p{^Blk=_ Arabic_sup}', "");
-    Expect(0, 1919, '\P{Blk=_ Arabic_sup}', "");
-    Expect(1, 1919, '\P{^Blk=_ Arabic_sup}', "");
-    Expect(0, 1920, '\p{Blk=_ Arabic_sup}', "");
-    Expect(1, 1920, '\p{^Blk=_ Arabic_sup}', "");
-    Expect(1, 1920, '\P{Blk=_ Arabic_sup}', "");
-    Expect(0, 1920, '\P{^Blk=_ Arabic_sup}', "");
-    Error('\p{Is_Block=_	arabic_SUPPLEMENT/a/}');
-    Error('\P{Is_Block=_	arabic_SUPPLEMENT/a/}');
+    Expect(1, 1919, '\p{Blk=_	ARABIC_Sup}', "");
+    Expect(0, 1919, '\p{^Blk=_	ARABIC_Sup}', "");
+    Expect(0, 1919, '\P{Blk=_	ARABIC_Sup}', "");
+    Expect(1, 1919, '\P{^Blk=_	ARABIC_Sup}', "");
+    Expect(0, 1920, '\p{Blk=_	ARABIC_Sup}', "");
+    Expect(1, 1920, '\p{^Blk=_	ARABIC_Sup}', "");
+    Expect(1, 1920, '\P{Blk=_	ARABIC_Sup}', "");
+    Expect(0, 1920, '\P{^Blk=_	ARABIC_Sup}', "");
+    Error('\p{Is_Block=_:=Arabic_Supplement}');
+    Error('\P{Is_Block=_:=Arabic_Supplement}');
     Expect(1, 1919, '\p{Is_Block=arabicsupplement}', "");
     Expect(0, 1919, '\p{^Is_Block=arabicsupplement}', "");
     Expect(0, 1919, '\P{Is_Block=arabicsupplement}', "");
@@ -4964,16 +5068,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1920, '\p{^Is_Block=arabicsupplement}', "");
     Expect(1, 1920, '\P{Is_Block=arabicsupplement}', "");
     Expect(0, 1920, '\P{^Is_Block=arabicsupplement}', "");
-    Expect(1, 1919, '\p{Is_Block=arabic_Supplement}', "");
-    Expect(0, 1919, '\p{^Is_Block=arabic_Supplement}', "");
-    Expect(0, 1919, '\P{Is_Block=arabic_Supplement}', "");
-    Expect(1, 1919, '\P{^Is_Block=arabic_Supplement}', "");
-    Expect(0, 1920, '\p{Is_Block=arabic_Supplement}', "");
-    Expect(1, 1920, '\p{^Is_Block=arabic_Supplement}', "");
-    Expect(1, 1920, '\P{Is_Block=arabic_Supplement}', "");
-    Expect(0, 1920, '\P{^Is_Block=arabic_Supplement}', "");
-    Error('\p{Is_Blk=/a/ -ARABIC_sup}');
-    Error('\P{Is_Blk=/a/ -ARABIC_sup}');
+    Expect(1, 1919, '\p{Is_Block:_Arabic_Supplement}', "");
+    Expect(0, 1919, '\p{^Is_Block:_Arabic_Supplement}', "");
+    Expect(0, 1919, '\P{Is_Block:_Arabic_Supplement}', "");
+    Expect(1, 1919, '\P{^Is_Block:_Arabic_Supplement}', "");
+    Expect(0, 1920, '\p{Is_Block:_Arabic_Supplement}', "");
+    Expect(1, 1920, '\p{^Is_Block:_Arabic_Supplement}', "");
+    Expect(1, 1920, '\P{Is_Block:_Arabic_Supplement}', "");
+    Expect(0, 1920, '\P{^Is_Block:_Arabic_Supplement}', "");
+    Error('\p{Is_Blk=_ ARABIC_Sup:=}');
+    Error('\P{Is_Blk=_ ARABIC_Sup:=}');
     Expect(1, 1919, '\p{Is_Blk=arabicsup}', "");
     Expect(0, 1919, '\p{^Is_Blk=arabicsup}', "");
     Expect(0, 1919, '\P{Is_Blk=arabicsup}', "");
@@ -4982,38 +5086,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1920, '\p{^Is_Blk=arabicsup}', "");
     Expect(1, 1920, '\P{Is_Blk=arabicsup}', "");
     Expect(0, 1920, '\P{^Is_Blk=arabicsup}', "");
-    Expect(1, 1919, '\p{Is_Blk=-_ARABIC_Sup}', "");
-    Expect(0, 1919, '\p{^Is_Blk=-_ARABIC_Sup}', "");
-    Expect(0, 1919, '\P{Is_Blk=-_ARABIC_Sup}', "");
-    Expect(1, 1919, '\P{^Is_Blk=-_ARABIC_Sup}', "");
-    Expect(0, 1920, '\p{Is_Blk=-_ARABIC_Sup}', "");
-    Expect(1, 1920, '\p{^Is_Blk=-_ARABIC_Sup}', "");
-    Expect(1, 1920, '\P{Is_Blk=-_ARABIC_Sup}', "");
-    Expect(0, 1920, '\P{^Is_Blk=-_ARABIC_Sup}', "");
-    Error('\p{Block=:= armenian}');
-    Error('\P{Block=:= armenian}');
+    Expect(1, 1919, '\p{Is_Blk:	Arabic_Sup}', "");
+    Expect(0, 1919, '\p{^Is_Blk:	Arabic_Sup}', "");
+    Expect(0, 1919, '\P{Is_Blk:	Arabic_Sup}', "");
+    Expect(1, 1919, '\P{^Is_Blk:	Arabic_Sup}', "");
+    Expect(0, 1920, '\p{Is_Blk:	Arabic_Sup}', "");
+    Expect(1, 1920, '\p{^Is_Blk:	Arabic_Sup}', "");
+    Expect(1, 1920, '\P{Is_Blk:	Arabic_Sup}', "");
+    Expect(0, 1920, '\P{^Is_Blk:	Arabic_Sup}', "");
+    Error('\p{Block=_/a/Armenian}');
+    Error('\P{Block=_/a/Armenian}');
     Expect(1, 1423, '\p{Block=:\AArmenian\z:}', "");;
     Expect(0, 1424, '\p{Block=:\AArmenian\z:}', "");;
-    Expect(1, 1423, '\p{Block:   armenian}', "");
-    Expect(0, 1423, '\p{^Block:   armenian}', "");
-    Expect(0, 1423, '\P{Block:   armenian}', "");
-    Expect(1, 1423, '\P{^Block:   armenian}', "");
-    Expect(0, 1424, '\p{Block:   armenian}', "");
-    Expect(1, 1424, '\p{^Block:   armenian}', "");
-    Expect(1, 1424, '\P{Block:   armenian}', "");
-    Expect(0, 1424, '\P{^Block:   armenian}', "");
+    Expect(1, 1423, '\p{Block=armenian}', "");
+    Expect(0, 1423, '\p{^Block=armenian}', "");
+    Expect(0, 1423, '\P{Block=armenian}', "");
+    Expect(1, 1423, '\P{^Block=armenian}', "");
+    Expect(0, 1424, '\p{Block=armenian}', "");
+    Expect(1, 1424, '\p{^Block=armenian}', "");
+    Expect(1, 1424, '\P{Block=armenian}', "");
+    Expect(0, 1424, '\P{^Block=armenian}', "");
     Expect(1, 1423, '\p{Block=:\Aarmenian\z:}', "");;
     Expect(0, 1424, '\p{Block=:\Aarmenian\z:}', "");;
-    Expect(1, 1423, '\p{Block=	_Armenian}', "");
-    Expect(0, 1423, '\p{^Block=	_Armenian}', "");
-    Expect(0, 1423, '\P{Block=	_Armenian}', "");
-    Expect(1, 1423, '\P{^Block=	_Armenian}', "");
-    Expect(0, 1424, '\p{Block=	_Armenian}', "");
-    Expect(1, 1424, '\p{^Block=	_Armenian}', "");
-    Expect(1, 1424, '\P{Block=	_Armenian}', "");
-    Expect(0, 1424, '\P{^Block=	_Armenian}', "");
-    Error('\p{Blk=_:=Armenian}');
-    Error('\P{Blk=_:=Armenian}');
+    Expect(1, 1423, '\p{Block=_ARMENIAN}', "");
+    Expect(0, 1423, '\p{^Block=_ARMENIAN}', "");
+    Expect(0, 1423, '\P{Block=_ARMENIAN}', "");
+    Expect(1, 1423, '\P{^Block=_ARMENIAN}', "");
+    Expect(0, 1424, '\p{Block=_ARMENIAN}', "");
+    Expect(1, 1424, '\p{^Block=_ARMENIAN}', "");
+    Expect(1, 1424, '\P{Block=_ARMENIAN}', "");
+    Expect(0, 1424, '\P{^Block=_ARMENIAN}', "");
+    Error('\p{Blk=-_Armenian/a/}');
+    Error('\P{Blk=-_Armenian/a/}');
     Expect(1, 1423, '\p{Blk=:\AArmenian\z:}', "");;
     Expect(0, 1424, '\p{Blk=:\AArmenian\z:}', "");;
     Expect(1, 1423, '\p{Blk=armenian}', "");
@@ -5026,16 +5130,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1424, '\P{^Blk=armenian}', "");
     Expect(1, 1423, '\p{Blk=:\Aarmenian\z:}', "");;
     Expect(0, 1424, '\p{Blk=:\Aarmenian\z:}', "");;
-    Expect(1, 1423, '\p{Blk=- Armenian}', "");
-    Expect(0, 1423, '\p{^Blk=- Armenian}', "");
-    Expect(0, 1423, '\P{Blk=- Armenian}', "");
-    Expect(1, 1423, '\P{^Blk=- Armenian}', "");
-    Expect(0, 1424, '\p{Blk=- Armenian}', "");
-    Expect(1, 1424, '\p{^Blk=- Armenian}', "");
-    Expect(1, 1424, '\P{Blk=- Armenian}', "");
-    Expect(0, 1424, '\P{^Blk=- Armenian}', "");
-    Error('\p{Is_Block= :=armenian}');
-    Error('\P{Is_Block= :=armenian}');
+    Expect(1, 1423, '\p{Blk=_-Armenian}', "");
+    Expect(0, 1423, '\p{^Blk=_-Armenian}', "");
+    Expect(0, 1423, '\P{Blk=_-Armenian}', "");
+    Expect(1, 1423, '\P{^Blk=_-Armenian}', "");
+    Expect(0, 1424, '\p{Blk=_-Armenian}', "");
+    Expect(1, 1424, '\p{^Blk=_-Armenian}', "");
+    Expect(1, 1424, '\P{Blk=_-Armenian}', "");
+    Expect(0, 1424, '\P{^Blk=_-Armenian}', "");
+    Error('\p{Is_Block= ARMENIAN:=}');
+    Error('\P{Is_Block= ARMENIAN:=}');
     Expect(1, 1423, '\p{Is_Block=armenian}', "");
     Expect(0, 1423, '\p{^Is_Block=armenian}', "");
     Expect(0, 1423, '\P{Is_Block=armenian}', "");
@@ -5044,56 +5148,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1424, '\p{^Is_Block=armenian}', "");
     Expect(1, 1424, '\P{Is_Block=armenian}', "");
     Expect(0, 1424, '\P{^Is_Block=armenian}', "");
-    Expect(1, 1423, '\p{Is_Block=_	Armenian}', "");
-    Expect(0, 1423, '\p{^Is_Block=_	Armenian}', "");
-    Expect(0, 1423, '\P{Is_Block=_	Armenian}', "");
-    Expect(1, 1423, '\P{^Is_Block=_	Armenian}', "");
-    Expect(0, 1424, '\p{Is_Block=_	Armenian}', "");
-    Expect(1, 1424, '\p{^Is_Block=_	Armenian}', "");
-    Expect(1, 1424, '\P{Is_Block=_	Armenian}', "");
-    Expect(0, 1424, '\P{^Is_Block=_	Armenian}', "");
-    Error('\p{Is_Blk=-_Armenian/a/}');
-    Error('\P{Is_Blk=-_Armenian/a/}');
-    Expect(1, 1423, '\p{Is_Blk=armenian}', "");
-    Expect(0, 1423, '\p{^Is_Blk=armenian}', "");
-    Expect(0, 1423, '\P{Is_Blk=armenian}', "");
-    Expect(1, 1423, '\P{^Is_Blk=armenian}', "");
-    Expect(0, 1424, '\p{Is_Blk=armenian}', "");
-    Expect(1, 1424, '\p{^Is_Blk=armenian}', "");
-    Expect(1, 1424, '\P{Is_Blk=armenian}', "");
-    Expect(0, 1424, '\P{^Is_Blk=armenian}', "");
-    Expect(1, 1423, '\p{Is_Blk=_	ARMENIAN}', "");
-    Expect(0, 1423, '\p{^Is_Blk=_	ARMENIAN}', "");
-    Expect(0, 1423, '\P{Is_Blk=_	ARMENIAN}', "");
-    Expect(1, 1423, '\P{^Is_Blk=_	ARMENIAN}', "");
-    Expect(0, 1424, '\p{Is_Blk=_	ARMENIAN}', "");
-    Expect(1, 1424, '\p{^Is_Blk=_	ARMENIAN}', "");
-    Expect(1, 1424, '\P{Is_Blk=_	ARMENIAN}', "");
-    Expect(0, 1424, '\P{^Is_Blk=_	ARMENIAN}', "");
-    Error('\p{Block=-/a/arrows}');
-    Error('\P{Block=-/a/arrows}');
+    Expect(1, 1423, '\p{Is_Block=		armenian}', "");
+    Expect(0, 1423, '\p{^Is_Block=		armenian}', "");
+    Expect(0, 1423, '\P{Is_Block=		armenian}', "");
+    Expect(1, 1423, '\P{^Is_Block=		armenian}', "");
+    Expect(0, 1424, '\p{Is_Block=		armenian}', "");
+    Expect(1, 1424, '\p{^Is_Block=		armenian}', "");
+    Expect(1, 1424, '\P{Is_Block=		armenian}', "");
+    Expect(0, 1424, '\P{^Is_Block=		armenian}', "");
+    Error('\p{Is_Blk=:= _armenian}');
+    Error('\P{Is_Blk=:= _armenian}');
+    Expect(1, 1423, '\p{Is_Blk:   armenian}', "");
+    Expect(0, 1423, '\p{^Is_Blk:   armenian}', "");
+    Expect(0, 1423, '\P{Is_Blk:   armenian}', "");
+    Expect(1, 1423, '\P{^Is_Blk:   armenian}', "");
+    Expect(0, 1424, '\p{Is_Blk:   armenian}', "");
+    Expect(1, 1424, '\p{^Is_Blk:   armenian}', "");
+    Expect(1, 1424, '\P{Is_Blk:   armenian}', "");
+    Expect(0, 1424, '\P{^Is_Blk:   armenian}', "");
+    Expect(1, 1423, '\p{Is_Blk=-	ARMENIAN}', "");
+    Expect(0, 1423, '\p{^Is_Blk=-	ARMENIAN}', "");
+    Expect(0, 1423, '\P{Is_Blk=-	ARMENIAN}', "");
+    Expect(1, 1423, '\P{^Is_Blk=-	ARMENIAN}', "");
+    Expect(0, 1424, '\p{Is_Blk=-	ARMENIAN}', "");
+    Expect(1, 1424, '\p{^Is_Blk=-	ARMENIAN}', "");
+    Expect(1, 1424, '\P{Is_Blk=-	ARMENIAN}', "");
+    Expect(0, 1424, '\P{^Is_Blk=-	ARMENIAN}', "");
+    Error('\p{Block=_ Arrows/a/}');
+    Error('\P{Block=_ Arrows/a/}');
     Expect(1, 8703, '\p{Block=:\AArrows\z:}', "");;
     Expect(0, 8704, '\p{Block=:\AArrows\z:}', "");;
-    Expect(1, 8703, '\p{Block=arrows}', "");
-    Expect(0, 8703, '\p{^Block=arrows}', "");
-    Expect(0, 8703, '\P{Block=arrows}', "");
-    Expect(1, 8703, '\P{^Block=arrows}', "");
-    Expect(0, 8704, '\p{Block=arrows}', "");
-    Expect(1, 8704, '\p{^Block=arrows}', "");
-    Expect(1, 8704, '\P{Block=arrows}', "");
-    Expect(0, 8704, '\P{^Block=arrows}', "");
+    Expect(1, 8703, '\p{Block:   arrows}', "");
+    Expect(0, 8703, '\p{^Block:   arrows}', "");
+    Expect(0, 8703, '\P{Block:   arrows}', "");
+    Expect(1, 8703, '\P{^Block:   arrows}', "");
+    Expect(0, 8704, '\p{Block:   arrows}', "");
+    Expect(1, 8704, '\p{^Block:   arrows}', "");
+    Expect(1, 8704, '\P{Block:   arrows}', "");
+    Expect(0, 8704, '\P{^Block:   arrows}', "");
     Expect(1, 8703, '\p{Block=:\Aarrows\z:}', "");;
     Expect(0, 8704, '\p{Block=:\Aarrows\z:}', "");;
-    Expect(1, 8703, '\p{Block=- ARROWS}', "");
-    Expect(0, 8703, '\p{^Block=- ARROWS}', "");
-    Expect(0, 8703, '\P{Block=- ARROWS}', "");
-    Expect(1, 8703, '\P{^Block=- ARROWS}', "");
-    Expect(0, 8704, '\p{Block=- ARROWS}', "");
-    Expect(1, 8704, '\p{^Block=- ARROWS}', "");
-    Expect(1, 8704, '\P{Block=- ARROWS}', "");
-    Expect(0, 8704, '\P{^Block=- ARROWS}', "");
-    Error('\p{Blk=_Arrows:=}');
-    Error('\P{Blk=_Arrows:=}');
+    Expect(1, 8703, '\p{Block=	ARROWS}', "");
+    Expect(0, 8703, '\p{^Block=	ARROWS}', "");
+    Expect(0, 8703, '\P{Block=	ARROWS}', "");
+    Expect(1, 8703, '\P{^Block=	ARROWS}', "");
+    Expect(0, 8704, '\p{Block=	ARROWS}', "");
+    Expect(1, 8704, '\p{^Block=	ARROWS}', "");
+    Expect(1, 8704, '\P{Block=	ARROWS}', "");
+    Expect(0, 8704, '\P{^Block=	ARROWS}', "");
+    Error('\p{Blk: _Arrows/a/}');
+    Error('\P{Blk: _Arrows/a/}');
     Expect(1, 8703, '\p{Blk=:\AArrows\z:}', "");;
     Expect(0, 8704, '\p{Blk=:\AArrows\z:}', "");;
     Expect(1, 8703, '\p{Blk=arrows}', "");
@@ -5106,34 +5210,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8704, '\P{^Blk=arrows}', "");
     Expect(1, 8703, '\p{Blk=:\Aarrows\z:}', "");;
     Expect(0, 8704, '\p{Blk=:\Aarrows\z:}', "");;
-    Expect(1, 8703, '\p{Blk=_ Arrows}', "");
-    Expect(0, 8703, '\p{^Blk=_ Arrows}', "");
-    Expect(0, 8703, '\P{Blk=_ Arrows}', "");
-    Expect(1, 8703, '\P{^Blk=_ Arrows}', "");
-    Expect(0, 8704, '\p{Blk=_ Arrows}', "");
-    Expect(1, 8704, '\p{^Blk=_ Arrows}', "");
-    Expect(1, 8704, '\P{Blk=_ Arrows}', "");
-    Expect(0, 8704, '\P{^Blk=_ Arrows}', "");
-    Error('\p{Is_Block:   :=_ Arrows}');
-    Error('\P{Is_Block:   :=_ Arrows}');
-    Expect(1, 8703, '\p{Is_Block=arrows}', "");
-    Expect(0, 8703, '\p{^Is_Block=arrows}', "");
-    Expect(0, 8703, '\P{Is_Block=arrows}', "");
-    Expect(1, 8703, '\P{^Is_Block=arrows}', "");
-    Expect(0, 8704, '\p{Is_Block=arrows}', "");
-    Expect(1, 8704, '\p{^Is_Block=arrows}', "");
-    Expect(1, 8704, '\P{Is_Block=arrows}', "");
-    Expect(0, 8704, '\P{^Is_Block=arrows}', "");
-    Expect(1, 8703, '\p{Is_Block=_ARROWS}', "");
-    Expect(0, 8703, '\p{^Is_Block=_ARROWS}', "");
-    Expect(0, 8703, '\P{Is_Block=_ARROWS}', "");
-    Expect(1, 8703, '\P{^Is_Block=_ARROWS}', "");
-    Expect(0, 8704, '\p{Is_Block=_ARROWS}', "");
-    Expect(1, 8704, '\p{^Is_Block=_ARROWS}', "");
-    Expect(1, 8704, '\P{Is_Block=_ARROWS}', "");
-    Expect(0, 8704, '\P{^Is_Block=_ARROWS}', "");
-    Error('\p{Is_Blk= -ARROWS:=}');
-    Error('\P{Is_Blk= -ARROWS:=}');
+    Expect(1, 8703, '\p{Blk=_arrows}', "");
+    Expect(0, 8703, '\p{^Blk=_arrows}', "");
+    Expect(0, 8703, '\P{Blk=_arrows}', "");
+    Expect(1, 8703, '\P{^Blk=_arrows}', "");
+    Expect(0, 8704, '\p{Blk=_arrows}', "");
+    Expect(1, 8704, '\p{^Blk=_arrows}', "");
+    Expect(1, 8704, '\P{Blk=_arrows}', "");
+    Expect(0, 8704, '\P{^Blk=_arrows}', "");
+    Error('\p{Is_Block=-	Arrows/a/}');
+    Error('\P{Is_Block=-	Arrows/a/}');
+    Expect(1, 8703, '\p{Is_Block: arrows}', "");
+    Expect(0, 8703, '\p{^Is_Block: arrows}', "");
+    Expect(0, 8703, '\P{Is_Block: arrows}', "");
+    Expect(1, 8703, '\P{^Is_Block: arrows}', "");
+    Expect(0, 8704, '\p{Is_Block: arrows}', "");
+    Expect(1, 8704, '\p{^Is_Block: arrows}', "");
+    Expect(1, 8704, '\P{Is_Block: arrows}', "");
+    Expect(0, 8704, '\P{^Is_Block: arrows}', "");
+    Expect(1, 8703, '\p{Is_Block=	_ARROWS}', "");
+    Expect(0, 8703, '\p{^Is_Block=	_ARROWS}', "");
+    Expect(0, 8703, '\P{Is_Block=	_ARROWS}', "");
+    Expect(1, 8703, '\P{^Is_Block=	_ARROWS}', "");
+    Expect(0, 8704, '\p{Is_Block=	_ARROWS}', "");
+    Expect(1, 8704, '\p{^Is_Block=	_ARROWS}', "");
+    Expect(1, 8704, '\P{Is_Block=	_ARROWS}', "");
+    Expect(0, 8704, '\P{^Is_Block=	_ARROWS}', "");
+    Error('\p{Is_Blk=-_Arrows:=}');
+    Error('\P{Is_Blk=-_Arrows:=}');
     Expect(1, 8703, '\p{Is_Blk=arrows}', "");
     Expect(0, 8703, '\p{^Is_Blk=arrows}', "");
     Expect(0, 8703, '\P{Is_Blk=arrows}', "");
@@ -5142,16 +5246,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8704, '\p{^Is_Blk=arrows}', "");
     Expect(1, 8704, '\P{Is_Blk=arrows}', "");
     Expect(0, 8704, '\P{^Is_Blk=arrows}', "");
-    Expect(1, 8703, '\p{Is_Blk=	 Arrows}', "");
-    Expect(0, 8703, '\p{^Is_Blk=	 Arrows}', "");
-    Expect(0, 8703, '\P{Is_Blk=	 Arrows}', "");
-    Expect(1, 8703, '\P{^Is_Blk=	 Arrows}', "");
-    Expect(0, 8704, '\p{Is_Blk=	 Arrows}', "");
-    Expect(1, 8704, '\p{^Is_Blk=	 Arrows}', "");
-    Expect(1, 8704, '\P{Is_Blk=	 Arrows}', "");
-    Expect(0, 8704, '\P{^Is_Blk=	 Arrows}', "");
-    Error('\p{Block::=basic_LATIN}');
-    Error('\P{Block::=basic_LATIN}');
+    Expect(1, 8703, '\p{Is_Blk=-_ARROWS}', "");
+    Expect(0, 8703, '\p{^Is_Blk=-_ARROWS}', "");
+    Expect(0, 8703, '\P{Is_Blk=-_ARROWS}', "");
+    Expect(1, 8703, '\P{^Is_Blk=-_ARROWS}', "");
+    Expect(0, 8704, '\p{Is_Blk=-_ARROWS}', "");
+    Expect(1, 8704, '\p{^Is_Blk=-_ARROWS}', "");
+    Expect(1, 8704, '\P{Is_Blk=-_ARROWS}', "");
+    Expect(0, 8704, '\P{^Is_Blk=-_ARROWS}', "");
+    Error('\p{Block:	 Basic_LATIN:=}');
+    Error('\P{Block:	 Basic_LATIN:=}');
     Expect(1, 127, '\p{Block=:\ABasic_Latin\z:}', "");;
     Expect(0, 128, '\p{Block=:\ABasic_Latin\z:}', "");;
     Expect(1, 127, '\p{Block=basiclatin}', "");
@@ -5164,16 +5268,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128, '\P{^Block=basiclatin}', "");
     Expect(1, 127, '\p{Block=:\Abasiclatin\z:}', "");;
     Expect(0, 128, '\p{Block=:\Abasiclatin\z:}', "");;
-    Expect(1, 127, '\p{Block=_	Basic_Latin}', "");
-    Expect(0, 127, '\p{^Block=_	Basic_Latin}', "");
-    Expect(0, 127, '\P{Block=_	Basic_Latin}', "");
-    Expect(1, 127, '\P{^Block=_	Basic_Latin}', "");
-    Expect(0, 128, '\p{Block=_	Basic_Latin}', "");
-    Expect(1, 128, '\p{^Block=_	Basic_Latin}', "");
-    Expect(1, 128, '\P{Block=_	Basic_Latin}', "");
-    Expect(0, 128, '\P{^Block=_	Basic_Latin}', "");
-    Error('\p{Blk:		 ascii:=}');
-    Error('\P{Blk:		 ascii:=}');
+    Expect(1, 127, '\p{Block:	_Basic_Latin}', "");
+    Expect(0, 127, '\p{^Block:	_Basic_Latin}', "");
+    Expect(0, 127, '\P{Block:	_Basic_Latin}', "");
+    Expect(1, 127, '\P{^Block:	_Basic_Latin}', "");
+    Expect(0, 128, '\p{Block:	_Basic_Latin}', "");
+    Expect(1, 128, '\p{^Block:	_Basic_Latin}', "");
+    Expect(1, 128, '\P{Block:	_Basic_Latin}', "");
+    Expect(0, 128, '\P{^Block:	_Basic_Latin}', "");
+    Error('\p{Blk=__ASCII:=}');
+    Error('\P{Blk=__ASCII:=}');
     Expect(1, 127, '\p{Blk=:\AASCII\z:}', "");;
     Expect(0, 128, '\p{Blk=:\AASCII\z:}', "");;
     Expect(1, 127, '\p{Blk=ascii}', "");
@@ -5186,16 +5290,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128, '\P{^Blk=ascii}', "");
     Expect(1, 127, '\p{Blk=:\Aascii\z:}', "");;
     Expect(0, 128, '\p{Blk=:\Aascii\z:}', "");;
-    Expect(1, 127, '\p{Blk= _ascii}', "");
-    Expect(0, 127, '\p{^Blk= _ascii}', "");
-    Expect(0, 127, '\P{Blk= _ascii}', "");
-    Expect(1, 127, '\P{^Blk= _ascii}', "");
-    Expect(0, 128, '\p{Blk= _ascii}', "");
-    Expect(1, 128, '\p{^Blk= _ascii}', "");
-    Expect(1, 128, '\P{Blk= _ascii}', "");
-    Expect(0, 128, '\P{^Blk= _ascii}', "");
-    Error('\p{Is_Block:  :=Basic_Latin}');
-    Error('\P{Is_Block:  :=Basic_Latin}');
+    Expect(1, 127, '\p{Blk=_-ASCII}', "");
+    Expect(0, 127, '\p{^Blk=_-ASCII}', "");
+    Expect(0, 127, '\P{Blk=_-ASCII}', "");
+    Expect(1, 127, '\P{^Blk=_-ASCII}', "");
+    Expect(0, 128, '\p{Blk=_-ASCII}', "");
+    Expect(1, 128, '\p{^Blk=_-ASCII}', "");
+    Expect(1, 128, '\P{Blk=_-ASCII}', "");
+    Expect(0, 128, '\P{^Blk=_-ASCII}', "");
+    Error('\p{Is_Block= /a/Basic_LATIN}');
+    Error('\P{Is_Block= /a/Basic_LATIN}');
     Expect(1, 127, '\p{Is_Block=basiclatin}', "");
     Expect(0, 127, '\p{^Is_Block=basiclatin}', "");
     Expect(0, 127, '\P{Is_Block=basiclatin}', "");
@@ -5204,54 +5308,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128, '\p{^Is_Block=basiclatin}', "");
     Expect(1, 128, '\P{Is_Block=basiclatin}', "");
     Expect(0, 128, '\P{^Is_Block=basiclatin}', "");
-    Expect(1, 127, '\p{Is_Block=-Basic_LATIN}', "");
-    Expect(0, 127, '\p{^Is_Block=-Basic_LATIN}', "");
-    Expect(0, 127, '\P{Is_Block=-Basic_LATIN}', "");
-    Expect(1, 127, '\P{^Is_Block=-Basic_LATIN}', "");
-    Expect(0, 128, '\p{Is_Block=-Basic_LATIN}', "");
-    Expect(1, 128, '\p{^Is_Block=-Basic_LATIN}', "");
-    Expect(1, 128, '\P{Is_Block=-Basic_LATIN}', "");
-    Expect(0, 128, '\P{^Is_Block=-Basic_LATIN}', "");
-    Error('\p{Is_Blk=_	ascii:=}');
-    Error('\P{Is_Blk=_	ascii:=}');
-    Expect(1, 127, '\p{Is_Blk=ascii}', "");
-    Expect(0, 127, '\p{^Is_Blk=ascii}', "");
-    Expect(0, 127, '\P{Is_Blk=ascii}', "");
-    Expect(1, 127, '\P{^Is_Blk=ascii}', "");
-    Expect(0, 128, '\p{Is_Blk=ascii}', "");
-    Expect(1, 128, '\p{^Is_Blk=ascii}', "");
-    Expect(1, 128, '\P{Is_Blk=ascii}', "");
-    Expect(0, 128, '\P{^Is_Blk=ascii}', "");
-    Expect(1, 127, '\p{Is_Blk=	 ASCII}', "");
-    Expect(0, 127, '\p{^Is_Blk=	 ASCII}', "");
-    Expect(0, 127, '\P{Is_Blk=	 ASCII}', "");
-    Expect(1, 127, '\P{^Is_Blk=	 ASCII}', "");
-    Expect(0, 128, '\p{Is_Blk=	 ASCII}', "");
-    Expect(1, 128, '\p{^Is_Blk=	 ASCII}', "");
-    Expect(1, 128, '\P{Is_Blk=	 ASCII}', "");
-    Expect(0, 128, '\P{^Is_Blk=	 ASCII}', "");
-    Error('\p{Block= /a/AVESTAN}');
-    Error('\P{Block= /a/AVESTAN}');
+    Expect(1, 127, '\p{Is_Block=  Basic_Latin}', "");
+    Expect(0, 127, '\p{^Is_Block=  Basic_Latin}', "");
+    Expect(0, 127, '\P{Is_Block=  Basic_Latin}', "");
+    Expect(1, 127, '\P{^Is_Block=  Basic_Latin}', "");
+    Expect(0, 128, '\p{Is_Block=  Basic_Latin}', "");
+    Expect(1, 128, '\p{^Is_Block=  Basic_Latin}', "");
+    Expect(1, 128, '\P{Is_Block=  Basic_Latin}', "");
+    Expect(0, 128, '\P{^Is_Block=  Basic_Latin}', "");
+    Error('\p{Is_Blk=-/a/ASCII}');
+    Error('\P{Is_Blk=-/a/ASCII}');
+    Expect(1, 127, '\p{Is_Blk:   ascii}', "");
+    Expect(0, 127, '\p{^Is_Blk:   ascii}', "");
+    Expect(0, 127, '\P{Is_Blk:   ascii}', "");
+    Expect(1, 127, '\P{^Is_Blk:   ascii}', "");
+    Expect(0, 128, '\p{Is_Blk:   ascii}', "");
+    Expect(1, 128, '\p{^Is_Blk:   ascii}', "");
+    Expect(1, 128, '\P{Is_Blk:   ascii}', "");
+    Expect(0, 128, '\P{^Is_Blk:   ascii}', "");
+    Expect(1, 127, '\p{Is_Blk= _ASCII}', "");
+    Expect(0, 127, '\p{^Is_Blk= _ASCII}', "");
+    Expect(0, 127, '\P{Is_Blk= _ASCII}', "");
+    Expect(1, 127, '\P{^Is_Blk= _ASCII}', "");
+    Expect(0, 128, '\p{Is_Blk= _ASCII}', "");
+    Expect(1, 128, '\p{^Is_Blk= _ASCII}', "");
+    Expect(1, 128, '\P{Is_Blk= _ASCII}', "");
+    Expect(0, 128, '\P{^Is_Blk= _ASCII}', "");
+    Error('\p{Block: /a/-	avestan}');
+    Error('\P{Block: /a/-	avestan}');
     Expect(1, 68415, '\p{Block=:\AAvestan\z:}', "");;
     Expect(0, 68416, '\p{Block=:\AAvestan\z:}', "");;
-    Expect(1, 68415, '\p{Block=avestan}', "");
-    Expect(0, 68415, '\p{^Block=avestan}', "");
-    Expect(0, 68415, '\P{Block=avestan}', "");
-    Expect(1, 68415, '\P{^Block=avestan}', "");
-    Expect(0, 68416, '\p{Block=avestan}', "");
-    Expect(1, 68416, '\p{^Block=avestan}', "");
-    Expect(1, 68416, '\P{Block=avestan}', "");
-    Expect(0, 68416, '\P{^Block=avestan}', "");
+    Expect(1, 68415, '\p{Block:avestan}', "");
+    Expect(0, 68415, '\p{^Block:avestan}', "");
+    Expect(0, 68415, '\P{Block:avestan}', "");
+    Expect(1, 68415, '\P{^Block:avestan}', "");
+    Expect(0, 68416, '\p{Block:avestan}', "");
+    Expect(1, 68416, '\p{^Block:avestan}', "");
+    Expect(1, 68416, '\P{Block:avestan}', "");
+    Expect(0, 68416, '\P{^Block:avestan}', "");
     Expect(1, 68415, '\p{Block=:\Aavestan\z:}', "");;
     Expect(0, 68416, '\p{Block=:\Aavestan\z:}', "");;
-    Expect(1, 68415, '\p{Block=__Avestan}', "");
-    Expect(0, 68415, '\p{^Block=__Avestan}', "");
-    Expect(0, 68415, '\P{Block=__Avestan}', "");
-    Expect(1, 68415, '\P{^Block=__Avestan}', "");
-    Expect(0, 68416, '\p{Block=__Avestan}', "");
-    Expect(1, 68416, '\p{^Block=__Avestan}', "");
-    Expect(1, 68416, '\P{Block=__Avestan}', "");
-    Expect(0, 68416, '\P{^Block=__Avestan}', "");
+    Expect(1, 68415, '\p{Block= Avestan}', "");
+    Expect(0, 68415, '\p{^Block= Avestan}', "");
+    Expect(0, 68415, '\P{Block= Avestan}', "");
+    Expect(1, 68415, '\P{^Block= Avestan}', "");
+    Expect(0, 68416, '\p{Block= Avestan}', "");
+    Expect(1, 68416, '\p{^Block= Avestan}', "");
+    Expect(1, 68416, '\P{Block= Avestan}', "");
+    Expect(0, 68416, '\P{^Block= Avestan}', "");
     Error('\p{Blk=:=_ Avestan}');
     Error('\P{Blk=:=_ Avestan}');
     Expect(1, 68415, '\p{Blk=:\AAvestan\z:}', "");;
@@ -5266,16 +5370,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68416, '\P{^Blk=avestan}', "");
     Expect(1, 68415, '\p{Blk=:\Aavestan\z:}', "");;
     Expect(0, 68416, '\p{Blk=:\Aavestan\z:}', "");;
-    Expect(1, 68415, '\p{Blk=	_avestan}', "");
-    Expect(0, 68415, '\p{^Blk=	_avestan}', "");
-    Expect(0, 68415, '\P{Blk=	_avestan}', "");
-    Expect(1, 68415, '\P{^Blk=	_avestan}', "");
-    Expect(0, 68416, '\p{Blk=	_avestan}', "");
-    Expect(1, 68416, '\p{^Blk=	_avestan}', "");
-    Expect(1, 68416, '\P{Blk=	_avestan}', "");
-    Expect(0, 68416, '\P{^Blk=	_avestan}', "");
-    Error('\p{Is_Block=	:=Avestan}');
-    Error('\P{Is_Block=	:=Avestan}');
+    Expect(1, 68415, '\p{Blk:	Avestan}', "");
+    Expect(0, 68415, '\p{^Blk:	Avestan}', "");
+    Expect(0, 68415, '\P{Blk:	Avestan}', "");
+    Expect(1, 68415, '\P{^Blk:	Avestan}', "");
+    Expect(0, 68416, '\p{Blk:	Avestan}', "");
+    Expect(1, 68416, '\p{^Blk:	Avestan}', "");
+    Expect(1, 68416, '\P{Blk:	Avestan}', "");
+    Expect(0, 68416, '\P{^Blk:	Avestan}', "");
+    Error('\p{Is_Block=- Avestan:=}');
+    Error('\P{Is_Block=- Avestan:=}');
     Expect(1, 68415, '\p{Is_Block=avestan}', "");
     Expect(0, 68415, '\p{^Is_Block=avestan}', "");
     Expect(0, 68415, '\P{Is_Block=avestan}', "");
@@ -5284,34 +5388,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68416, '\p{^Is_Block=avestan}', "");
     Expect(1, 68416, '\P{Is_Block=avestan}', "");
     Expect(0, 68416, '\P{^Is_Block=avestan}', "");
-    Expect(1, 68415, '\p{Is_Block=-_Avestan}', "");
-    Expect(0, 68415, '\p{^Is_Block=-_Avestan}', "");
-    Expect(0, 68415, '\P{Is_Block=-_Avestan}', "");
-    Expect(1, 68415, '\P{^Is_Block=-_Avestan}', "");
-    Expect(0, 68416, '\p{Is_Block=-_Avestan}', "");
-    Expect(1, 68416, '\p{^Is_Block=-_Avestan}', "");
-    Expect(1, 68416, '\P{Is_Block=-_Avestan}', "");
-    Expect(0, 68416, '\P{^Is_Block=-_Avestan}', "");
-    Error('\p{Is_Blk=/a/-_AVESTAN}');
-    Error('\P{Is_Blk=/a/-_AVESTAN}');
-    Expect(1, 68415, '\p{Is_Blk:avestan}', "");
-    Expect(0, 68415, '\p{^Is_Blk:avestan}', "");
-    Expect(0, 68415, '\P{Is_Blk:avestan}', "");
-    Expect(1, 68415, '\P{^Is_Blk:avestan}', "");
-    Expect(0, 68416, '\p{Is_Blk:avestan}', "");
-    Expect(1, 68416, '\p{^Is_Blk:avestan}', "");
-    Expect(1, 68416, '\P{Is_Blk:avestan}', "");
-    Expect(0, 68416, '\P{^Is_Blk:avestan}', "");
-    Expect(1, 68415, '\p{Is_Blk= Avestan}', "");
-    Expect(0, 68415, '\p{^Is_Blk= Avestan}', "");
-    Expect(0, 68415, '\P{Is_Blk= Avestan}', "");
-    Expect(1, 68415, '\P{^Is_Blk= Avestan}', "");
-    Expect(0, 68416, '\p{Is_Blk= Avestan}', "");
-    Expect(1, 68416, '\p{^Is_Blk= Avestan}', "");
-    Expect(1, 68416, '\P{Is_Blk= Avestan}', "");
-    Expect(0, 68416, '\P{^Is_Blk= Avestan}', "");
-    Error('\p{Block=-	Balinese:=}');
-    Error('\P{Block=-	Balinese:=}');
+    Expect(1, 68415, '\p{Is_Block:   -AVESTAN}', "");
+    Expect(0, 68415, '\p{^Is_Block:   -AVESTAN}', "");
+    Expect(0, 68415, '\P{Is_Block:   -AVESTAN}', "");
+    Expect(1, 68415, '\P{^Is_Block:   -AVESTAN}', "");
+    Expect(0, 68416, '\p{Is_Block:   -AVESTAN}', "");
+    Expect(1, 68416, '\p{^Is_Block:   -AVESTAN}', "");
+    Expect(1, 68416, '\P{Is_Block:   -AVESTAN}', "");
+    Expect(0, 68416, '\P{^Is_Block:   -AVESTAN}', "");
+    Error('\p{Is_Blk=_:=avestan}');
+    Error('\P{Is_Blk=_:=avestan}');
+    Expect(1, 68415, '\p{Is_Blk:   avestan}', "");
+    Expect(0, 68415, '\p{^Is_Blk:   avestan}', "");
+    Expect(0, 68415, '\P{Is_Blk:   avestan}', "");
+    Expect(1, 68415, '\P{^Is_Blk:   avestan}', "");
+    Expect(0, 68416, '\p{Is_Blk:   avestan}', "");
+    Expect(1, 68416, '\p{^Is_Blk:   avestan}', "");
+    Expect(1, 68416, '\P{Is_Blk:   avestan}', "");
+    Expect(0, 68416, '\P{^Is_Blk:   avestan}', "");
+    Expect(1, 68415, '\p{Is_Blk= AVESTAN}', "");
+    Expect(0, 68415, '\p{^Is_Blk= AVESTAN}', "");
+    Expect(0, 68415, '\P{Is_Blk= AVESTAN}', "");
+    Expect(1, 68415, '\P{^Is_Blk= AVESTAN}', "");
+    Expect(0, 68416, '\p{Is_Blk= AVESTAN}', "");
+    Expect(1, 68416, '\p{^Is_Blk= AVESTAN}', "");
+    Expect(1, 68416, '\P{Is_Blk= AVESTAN}', "");
+    Expect(0, 68416, '\P{^Is_Blk= AVESTAN}', "");
+    Error('\p{Block:   _/a/Balinese}');
+    Error('\P{Block:   _/a/Balinese}');
     Expect(1, 7039, '\p{Block=:\ABalinese\z:}', "");;
     Expect(0, 7040, '\p{Block=:\ABalinese\z:}', "");;
     Expect(1, 7039, '\p{Block=balinese}', "");
@@ -5324,16 +5428,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7040, '\P{^Block=balinese}', "");
     Expect(1, 7039, '\p{Block=:\Abalinese\z:}', "");;
     Expect(0, 7040, '\p{Block=:\Abalinese\z:}', "");;
-    Expect(1, 7039, '\p{Block=_ Balinese}', "");
-    Expect(0, 7039, '\p{^Block=_ Balinese}', "");
-    Expect(0, 7039, '\P{Block=_ Balinese}', "");
-    Expect(1, 7039, '\P{^Block=_ Balinese}', "");
-    Expect(0, 7040, '\p{Block=_ Balinese}', "");
-    Expect(1, 7040, '\p{^Block=_ Balinese}', "");
-    Expect(1, 7040, '\P{Block=_ Balinese}', "");
-    Expect(0, 7040, '\P{^Block=_ Balinese}', "");
-    Error('\p{Blk=	:=Balinese}');
-    Error('\P{Blk=	:=Balinese}');
+    Expect(1, 7039, '\p{Block=_-Balinese}', "");
+    Expect(0, 7039, '\p{^Block=_-Balinese}', "");
+    Expect(0, 7039, '\P{Block=_-Balinese}', "");
+    Expect(1, 7039, '\P{^Block=_-Balinese}', "");
+    Expect(0, 7040, '\p{Block=_-Balinese}', "");
+    Expect(1, 7040, '\p{^Block=_-Balinese}', "");
+    Expect(1, 7040, '\P{Block=_-Balinese}', "");
+    Expect(0, 7040, '\P{^Block=_-Balinese}', "");
+    Error('\p{Blk= _Balinese:=}');
+    Error('\P{Blk= _Balinese:=}');
     Expect(1, 7039, '\p{Blk=:\ABalinese\z:}', "");;
     Expect(0, 7040, '\p{Blk=:\ABalinese\z:}', "");;
     Expect(1, 7039, '\p{Blk=balinese}', "");
@@ -5346,16 +5450,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7040, '\P{^Blk=balinese}', "");
     Expect(1, 7039, '\p{Blk=:\Abalinese\z:}', "");;
     Expect(0, 7040, '\p{Blk=:\Abalinese\z:}', "");;
-    Expect(1, 7039, '\p{Blk=	_balinese}', "");
-    Expect(0, 7039, '\p{^Blk=	_balinese}', "");
-    Expect(0, 7039, '\P{Blk=	_balinese}', "");
-    Expect(1, 7039, '\P{^Blk=	_balinese}', "");
-    Expect(0, 7040, '\p{Blk=	_balinese}', "");
-    Expect(1, 7040, '\p{^Blk=	_balinese}', "");
-    Expect(1, 7040, '\P{Blk=	_balinese}', "");
-    Expect(0, 7040, '\P{^Blk=	_balinese}', "");
-    Error('\p{Is_Block= :=BALINESE}');
-    Error('\P{Is_Block= :=BALINESE}');
+    Expect(1, 7039, '\p{Blk=  Balinese}', "");
+    Expect(0, 7039, '\p{^Blk=  Balinese}', "");
+    Expect(0, 7039, '\P{Blk=  Balinese}', "");
+    Expect(1, 7039, '\P{^Blk=  Balinese}', "");
+    Expect(0, 7040, '\p{Blk=  Balinese}', "");
+    Expect(1, 7040, '\p{^Blk=  Balinese}', "");
+    Expect(1, 7040, '\P{Blk=  Balinese}', "");
+    Expect(0, 7040, '\P{^Blk=  Balinese}', "");
+    Error('\p{Is_Block=_:=BALINESE}');
+    Error('\P{Is_Block=_:=BALINESE}');
     Expect(1, 7039, '\p{Is_Block=balinese}', "");
     Expect(0, 7039, '\p{^Is_Block=balinese}', "");
     Expect(0, 7039, '\P{Is_Block=balinese}', "");
@@ -5364,16 +5468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7040, '\p{^Is_Block=balinese}', "");
     Expect(1, 7040, '\P{Is_Block=balinese}', "");
     Expect(0, 7040, '\P{^Is_Block=balinese}', "");
-    Expect(1, 7039, '\p{Is_Block= BALINESE}', "");
-    Expect(0, 7039, '\p{^Is_Block= BALINESE}', "");
-    Expect(0, 7039, '\P{Is_Block= BALINESE}', "");
-    Expect(1, 7039, '\P{^Is_Block= BALINESE}', "");
-    Expect(0, 7040, '\p{Is_Block= BALINESE}', "");
-    Expect(1, 7040, '\p{^Is_Block= BALINESE}', "");
-    Expect(1, 7040, '\P{Is_Block= BALINESE}', "");
-    Expect(0, 7040, '\P{^Is_Block= BALINESE}', "");
-    Error('\p{Is_Blk=/a/ Balinese}');
-    Error('\P{Is_Blk=/a/ Balinese}');
+    Expect(1, 7039, '\p{Is_Block=	-balinese}', "");
+    Expect(0, 7039, '\p{^Is_Block=	-balinese}', "");
+    Expect(0, 7039, '\P{Is_Block=	-balinese}', "");
+    Expect(1, 7039, '\P{^Is_Block=	-balinese}', "");
+    Expect(0, 7040, '\p{Is_Block=	-balinese}', "");
+    Expect(1, 7040, '\p{^Is_Block=	-balinese}', "");
+    Expect(1, 7040, '\P{Is_Block=	-balinese}', "");
+    Expect(0, 7040, '\P{^Is_Block=	-balinese}', "");
+    Error('\p{Is_Blk= Balinese/a/}');
+    Error('\P{Is_Blk= Balinese/a/}');
     Expect(1, 7039, '\p{Is_Blk=balinese}', "");
     Expect(0, 7039, '\p{^Is_Blk=balinese}', "");
     Expect(0, 7039, '\P{Is_Blk=balinese}', "");
@@ -5382,38 +5486,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7040, '\p{^Is_Blk=balinese}', "");
     Expect(1, 7040, '\P{Is_Blk=balinese}', "");
     Expect(0, 7040, '\P{^Is_Blk=balinese}', "");
-    Expect(1, 7039, '\p{Is_Blk=_-BALINESE}', "");
-    Expect(0, 7039, '\p{^Is_Blk=_-BALINESE}', "");
-    Expect(0, 7039, '\P{Is_Blk=_-BALINESE}', "");
-    Expect(1, 7039, '\P{^Is_Blk=_-BALINESE}', "");
-    Expect(0, 7040, '\p{Is_Blk=_-BALINESE}', "");
-    Expect(1, 7040, '\p{^Is_Blk=_-BALINESE}', "");
-    Expect(1, 7040, '\P{Is_Blk=_-BALINESE}', "");
-    Expect(0, 7040, '\P{^Is_Blk=_-BALINESE}', "");
-    Error('\p{Block=/a/		bamum}');
-    Error('\P{Block=/a/		bamum}');
+    Expect(1, 7039, '\p{Is_Blk:	  balinese}', "");
+    Expect(0, 7039, '\p{^Is_Blk:	  balinese}', "");
+    Expect(0, 7039, '\P{Is_Blk:	  balinese}', "");
+    Expect(1, 7039, '\P{^Is_Blk:	  balinese}', "");
+    Expect(0, 7040, '\p{Is_Blk:	  balinese}', "");
+    Expect(1, 7040, '\p{^Is_Blk:	  balinese}', "");
+    Expect(1, 7040, '\P{Is_Blk:	  balinese}', "");
+    Expect(0, 7040, '\P{^Is_Blk:	  balinese}', "");
+    Error('\p{Block:_	BAMUM/a/}');
+    Error('\P{Block:_	BAMUM/a/}');
     Expect(1, 42751, '\p{Block=:\ABamum\z:}', "");;
     Expect(0, 42752, '\p{Block=:\ABamum\z:}', "");;
-    Expect(1, 42751, '\p{Block:   bamum}', "");
-    Expect(0, 42751, '\p{^Block:   bamum}', "");
-    Expect(0, 42751, '\P{Block:   bamum}', "");
-    Expect(1, 42751, '\P{^Block:   bamum}', "");
-    Expect(0, 42752, '\p{Block:   bamum}', "");
-    Expect(1, 42752, '\p{^Block:   bamum}', "");
-    Expect(1, 42752, '\P{Block:   bamum}', "");
-    Expect(0, 42752, '\P{^Block:   bamum}', "");
+    Expect(1, 42751, '\p{Block=bamum}', "");
+    Expect(0, 42751, '\p{^Block=bamum}', "");
+    Expect(0, 42751, '\P{Block=bamum}', "");
+    Expect(1, 42751, '\P{^Block=bamum}', "");
+    Expect(0, 42752, '\p{Block=bamum}', "");
+    Expect(1, 42752, '\p{^Block=bamum}', "");
+    Expect(1, 42752, '\P{Block=bamum}', "");
+    Expect(0, 42752, '\P{^Block=bamum}', "");
     Expect(1, 42751, '\p{Block=:\Abamum\z:}', "");;
     Expect(0, 42752, '\p{Block=:\Abamum\z:}', "");;
-    Expect(1, 42751, '\p{Block:    	Bamum}', "");
-    Expect(0, 42751, '\p{^Block:    	Bamum}', "");
-    Expect(0, 42751, '\P{Block:    	Bamum}', "");
-    Expect(1, 42751, '\P{^Block:    	Bamum}', "");
-    Expect(0, 42752, '\p{Block:    	Bamum}', "");
-    Expect(1, 42752, '\p{^Block:    	Bamum}', "");
-    Expect(1, 42752, '\P{Block:    	Bamum}', "");
-    Expect(0, 42752, '\P{^Block:    	Bamum}', "");
-    Error('\p{Blk:	-/a/Bamum}');
-    Error('\P{Blk:	-/a/Bamum}');
+    Expect(1, 42751, '\p{Block=	 Bamum}', "");
+    Expect(0, 42751, '\p{^Block=	 Bamum}', "");
+    Expect(0, 42751, '\P{Block=	 Bamum}', "");
+    Expect(1, 42751, '\P{^Block=	 Bamum}', "");
+    Expect(0, 42752, '\p{Block=	 Bamum}', "");
+    Expect(1, 42752, '\p{^Block=	 Bamum}', "");
+    Expect(1, 42752, '\P{Block=	 Bamum}', "");
+    Expect(0, 42752, '\P{^Block=	 Bamum}', "");
+    Error('\p{Blk=/a/- BAMUM}');
+    Error('\P{Blk=/a/- BAMUM}');
     Expect(1, 42751, '\p{Blk=:\ABamum\z:}', "");;
     Expect(0, 42752, '\p{Blk=:\ABamum\z:}', "");;
     Expect(1, 42751, '\p{Blk=bamum}', "");
@@ -5434,16 +5538,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42752, '\p{^Blk=	Bamum}', "");
     Expect(1, 42752, '\P{Blk=	Bamum}', "");
     Expect(0, 42752, '\P{^Blk=	Bamum}', "");
-    Error('\p{Is_Block=:=_	Bamum}');
-    Error('\P{Is_Block=:=_	Bamum}');
-    Expect(1, 42751, '\p{Is_Block=bamum}', "");
-    Expect(0, 42751, '\p{^Is_Block=bamum}', "");
-    Expect(0, 42751, '\P{Is_Block=bamum}', "");
-    Expect(1, 42751, '\P{^Is_Block=bamum}', "");
-    Expect(0, 42752, '\p{Is_Block=bamum}', "");
-    Expect(1, 42752, '\p{^Is_Block=bamum}', "");
-    Expect(1, 42752, '\P{Is_Block=bamum}', "");
-    Expect(0, 42752, '\P{^Is_Block=bamum}', "");
+    Error('\p{Is_Block=	bamum/a/}');
+    Error('\P{Is_Block=	bamum/a/}');
     Expect(1, 42751, '\p{Is_Block: bamum}', "");
     Expect(0, 42751, '\p{^Is_Block: bamum}', "");
     Expect(0, 42751, '\P{Is_Block: bamum}', "");
@@ -5452,8 +5548,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42752, '\p{^Is_Block: bamum}', "");
     Expect(1, 42752, '\P{Is_Block: bamum}', "");
     Expect(0, 42752, '\P{^Is_Block: bamum}', "");
-    Error('\p{Is_Blk=--BAMUM/a/}');
-    Error('\P{Is_Blk=--BAMUM/a/}');
+    Expect(1, 42751, '\p{Is_Block=-Bamum}', "");
+    Expect(0, 42751, '\p{^Is_Block=-Bamum}', "");
+    Expect(0, 42751, '\P{Is_Block=-Bamum}', "");
+    Expect(1, 42751, '\P{^Is_Block=-Bamum}', "");
+    Expect(0, 42752, '\p{Is_Block=-Bamum}', "");
+    Expect(1, 42752, '\p{^Is_Block=-Bamum}', "");
+    Expect(1, 42752, '\P{Is_Block=-Bamum}', "");
+    Expect(0, 42752, '\P{^Is_Block=-Bamum}', "");
+    Error('\p{Is_Blk:   :=  Bamum}');
+    Error('\P{Is_Blk:   :=  Bamum}');
     Expect(1, 42751, '\p{Is_Blk=bamum}', "");
     Expect(0, 42751, '\p{^Is_Blk=bamum}', "");
     Expect(0, 42751, '\P{Is_Blk=bamum}', "");
@@ -5462,16 +5566,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42752, '\p{^Is_Blk=bamum}', "");
     Expect(1, 42752, '\P{Is_Blk=bamum}', "");
     Expect(0, 42752, '\P{^Is_Blk=bamum}', "");
-    Expect(1, 42751, '\p{Is_Blk=-BAMUM}', "");
-    Expect(0, 42751, '\p{^Is_Blk=-BAMUM}', "");
-    Expect(0, 42751, '\P{Is_Blk=-BAMUM}', "");
-    Expect(1, 42751, '\P{^Is_Blk=-BAMUM}', "");
-    Expect(0, 42752, '\p{Is_Blk=-BAMUM}', "");
-    Expect(1, 42752, '\p{^Is_Blk=-BAMUM}', "");
-    Expect(1, 42752, '\P{Is_Blk=-BAMUM}', "");
-    Expect(0, 42752, '\P{^Is_Blk=-BAMUM}', "");
-    Error('\p{Block=-Bamum_supplement:=}');
-    Error('\P{Block=-Bamum_supplement:=}');
+    Expect(1, 42751, '\p{Is_Blk=	 BAMUM}', "");
+    Expect(0, 42751, '\p{^Is_Blk=	 BAMUM}', "");
+    Expect(0, 42751, '\P{Is_Blk=	 BAMUM}', "");
+    Expect(1, 42751, '\P{^Is_Blk=	 BAMUM}', "");
+    Expect(0, 42752, '\p{Is_Blk=	 BAMUM}', "");
+    Expect(1, 42752, '\p{^Is_Blk=	 BAMUM}', "");
+    Expect(1, 42752, '\P{Is_Blk=	 BAMUM}', "");
+    Expect(0, 42752, '\P{^Is_Blk=	 BAMUM}', "");
+    Error('\p{Block=/a/		bamum_supplement}');
+    Error('\P{Block=/a/		bamum_supplement}');
     Expect(1, 92735, '\p{Block=:\ABamum_Supplement\z:}', "");;
     Expect(0, 92736, '\p{Block=:\ABamum_Supplement\z:}', "");;
     Expect(1, 92735, '\p{Block=bamumsupplement}', "");
@@ -5484,74 +5588,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 92736, '\P{^Block=bamumsupplement}', "");
     Expect(1, 92735, '\p{Block=:\Abamumsupplement\z:}', "");;
     Expect(0, 92736, '\p{Block=:\Abamumsupplement\z:}', "");;
-    Expect(1, 92735, '\p{Block:  Bamum_Supplement}', "");
-    Expect(0, 92735, '\p{^Block:  Bamum_Supplement}', "");
-    Expect(0, 92735, '\P{Block:  Bamum_Supplement}', "");
-    Expect(1, 92735, '\P{^Block:  Bamum_Supplement}', "");
-    Expect(0, 92736, '\p{Block:  Bamum_Supplement}', "");
-    Expect(1, 92736, '\p{^Block:  Bamum_Supplement}', "");
-    Expect(1, 92736, '\P{Block:  Bamum_Supplement}', "");
-    Expect(0, 92736, '\P{^Block:  Bamum_Supplement}', "");
-    Error('\p{Blk= /a/Bamum_Sup}');
-    Error('\P{Blk= /a/Bamum_Sup}');
+    Expect(1, 92735, '\p{Block=_BAMUM_Supplement}', "");
+    Expect(0, 92735, '\p{^Block=_BAMUM_Supplement}', "");
+    Expect(0, 92735, '\P{Block=_BAMUM_Supplement}', "");
+    Expect(1, 92735, '\P{^Block=_BAMUM_Supplement}', "");
+    Expect(0, 92736, '\p{Block=_BAMUM_Supplement}', "");
+    Expect(1, 92736, '\p{^Block=_BAMUM_Supplement}', "");
+    Expect(1, 92736, '\P{Block=_BAMUM_Supplement}', "");
+    Expect(0, 92736, '\P{^Block=_BAMUM_Supplement}', "");
+    Error('\p{Blk= /a/bamum_Sup}');
+    Error('\P{Blk= /a/bamum_Sup}');
     Expect(1, 92735, '\p{Blk=:\ABamum_Sup\z:}', "");;
     Expect(0, 92736, '\p{Blk=:\ABamum_Sup\z:}', "");;
-    Expect(1, 92735, '\p{Blk=bamumsup}', "");
-    Expect(0, 92735, '\p{^Blk=bamumsup}', "");
-    Expect(0, 92735, '\P{Blk=bamumsup}', "");
-    Expect(1, 92735, '\P{^Blk=bamumsup}', "");
-    Expect(0, 92736, '\p{Blk=bamumsup}', "");
-    Expect(1, 92736, '\p{^Blk=bamumsup}', "");
-    Expect(1, 92736, '\P{Blk=bamumsup}', "");
-    Expect(0, 92736, '\P{^Blk=bamumsup}', "");
+    Expect(1, 92735, '\p{Blk:bamumsup}', "");
+    Expect(0, 92735, '\p{^Blk:bamumsup}', "");
+    Expect(0, 92735, '\P{Blk:bamumsup}', "");
+    Expect(1, 92735, '\P{^Blk:bamumsup}', "");
+    Expect(0, 92736, '\p{Blk:bamumsup}', "");
+    Expect(1, 92736, '\p{^Blk:bamumsup}', "");
+    Expect(1, 92736, '\P{Blk:bamumsup}', "");
+    Expect(0, 92736, '\P{^Blk:bamumsup}', "");
     Expect(1, 92735, '\p{Blk=:\Abamumsup\z:}', "");;
     Expect(0, 92736, '\p{Blk=:\Abamumsup\z:}', "");;
-    Expect(1, 92735, '\p{Blk=_-bamum_SUP}', "");
-    Expect(0, 92735, '\p{^Blk=_-bamum_SUP}', "");
-    Expect(0, 92735, '\P{Blk=_-bamum_SUP}', "");
-    Expect(1, 92735, '\P{^Blk=_-bamum_SUP}', "");
-    Expect(0, 92736, '\p{Blk=_-bamum_SUP}', "");
-    Expect(1, 92736, '\p{^Blk=_-bamum_SUP}', "");
-    Expect(1, 92736, '\P{Blk=_-bamum_SUP}', "");
-    Expect(0, 92736, '\P{^Blk=_-bamum_SUP}', "");
-    Error('\p{Is_Block=:=	-bamum_SUPPLEMENT}');
-    Error('\P{Is_Block=:=	-bamum_SUPPLEMENT}');
-    Expect(1, 92735, '\p{Is_Block:	bamumsupplement}', "");
-    Expect(0, 92735, '\p{^Is_Block:	bamumsupplement}', "");
-    Expect(0, 92735, '\P{Is_Block:	bamumsupplement}', "");
-    Expect(1, 92735, '\P{^Is_Block:	bamumsupplement}', "");
-    Expect(0, 92736, '\p{Is_Block:	bamumsupplement}', "");
-    Expect(1, 92736, '\p{^Is_Block:	bamumsupplement}', "");
-    Expect(1, 92736, '\P{Is_Block:	bamumsupplement}', "");
-    Expect(0, 92736, '\P{^Is_Block:	bamumsupplement}', "");
-    Expect(1, 92735, '\p{Is_Block=	 Bamum_Supplement}', "");
-    Expect(0, 92735, '\p{^Is_Block=	 Bamum_Supplement}', "");
-    Expect(0, 92735, '\P{Is_Block=	 Bamum_Supplement}', "");
-    Expect(1, 92735, '\P{^Is_Block=	 Bamum_Supplement}', "");
-    Expect(0, 92736, '\p{Is_Block=	 Bamum_Supplement}', "");
-    Expect(1, 92736, '\p{^Is_Block=	 Bamum_Supplement}', "");
-    Expect(1, 92736, '\P{Is_Block=	 Bamum_Supplement}', "");
-    Expect(0, 92736, '\P{^Is_Block=	 Bamum_Supplement}', "");
-    Error('\p{Is_Blk:	:= BAMUM_Sup}');
-    Error('\P{Is_Blk:	:= BAMUM_Sup}');
-    Expect(1, 92735, '\p{Is_Blk:	bamumsup}', "");
-    Expect(0, 92735, '\p{^Is_Blk:	bamumsup}', "");
-    Expect(0, 92735, '\P{Is_Blk:	bamumsup}', "");
-    Expect(1, 92735, '\P{^Is_Blk:	bamumsup}', "");
-    Expect(0, 92736, '\p{Is_Blk:	bamumsup}', "");
-    Expect(1, 92736, '\p{^Is_Blk:	bamumsup}', "");
-    Expect(1, 92736, '\P{Is_Blk:	bamumsup}', "");
-    Expect(0, 92736, '\P{^Is_Blk:	bamumsup}', "");
-    Expect(1, 92735, '\p{Is_Blk= _BAMUM_Sup}', "");
-    Expect(0, 92735, '\p{^Is_Blk= _BAMUM_Sup}', "");
-    Expect(0, 92735, '\P{Is_Blk= _BAMUM_Sup}', "");
-    Expect(1, 92735, '\P{^Is_Blk= _BAMUM_Sup}', "");
-    Expect(0, 92736, '\p{Is_Blk= _BAMUM_Sup}', "");
-    Expect(1, 92736, '\p{^Is_Blk= _BAMUM_Sup}', "");
-    Expect(1, 92736, '\P{Is_Blk= _BAMUM_Sup}', "");
-    Expect(0, 92736, '\P{^Is_Blk= _BAMUM_Sup}', "");
-    Error('\p{Block= _bassa_VAH/a/}');
-    Error('\P{Block= _bassa_VAH/a/}');
+    Expect(1, 92735, '\p{Blk= bamum_SUP}', "");
+    Expect(0, 92735, '\p{^Blk= bamum_SUP}', "");
+    Expect(0, 92735, '\P{Blk= bamum_SUP}', "");
+    Expect(1, 92735, '\P{^Blk= bamum_SUP}', "");
+    Expect(0, 92736, '\p{Blk= bamum_SUP}', "");
+    Expect(1, 92736, '\p{^Blk= bamum_SUP}', "");
+    Expect(1, 92736, '\P{Blk= bamum_SUP}', "");
+    Expect(0, 92736, '\P{^Blk= bamum_SUP}', "");
+    Error('\p{Is_Block=_	bamum_supplement/a/}');
+    Error('\P{Is_Block=_	bamum_supplement/a/}');
+    Expect(1, 92735, '\p{Is_Block=bamumsupplement}', "");
+    Expect(0, 92735, '\p{^Is_Block=bamumsupplement}', "");
+    Expect(0, 92735, '\P{Is_Block=bamumsupplement}', "");
+    Expect(1, 92735, '\P{^Is_Block=bamumsupplement}', "");
+    Expect(0, 92736, '\p{Is_Block=bamumsupplement}', "");
+    Expect(1, 92736, '\p{^Is_Block=bamumsupplement}', "");
+    Expect(1, 92736, '\P{Is_Block=bamumsupplement}', "");
+    Expect(0, 92736, '\P{^Is_Block=bamumsupplement}', "");
+    Expect(1, 92735, '\p{Is_Block=-Bamum_supplement}', "");
+    Expect(0, 92735, '\p{^Is_Block=-Bamum_supplement}', "");
+    Expect(0, 92735, '\P{Is_Block=-Bamum_supplement}', "");
+    Expect(1, 92735, '\P{^Is_Block=-Bamum_supplement}', "");
+    Expect(0, 92736, '\p{Is_Block=-Bamum_supplement}', "");
+    Expect(1, 92736, '\p{^Is_Block=-Bamum_supplement}', "");
+    Expect(1, 92736, '\P{Is_Block=-Bamum_supplement}', "");
+    Expect(0, 92736, '\P{^Is_Block=-Bamum_supplement}', "");
+    Error('\p{Is_Blk=-BAMUM_Sup:=}');
+    Error('\P{Is_Blk=-BAMUM_Sup:=}');
+    Expect(1, 92735, '\p{Is_Blk=bamumsup}', "");
+    Expect(0, 92735, '\p{^Is_Blk=bamumsup}', "");
+    Expect(0, 92735, '\P{Is_Blk=bamumsup}', "");
+    Expect(1, 92735, '\P{^Is_Blk=bamumsup}', "");
+    Expect(0, 92736, '\p{Is_Blk=bamumsup}', "");
+    Expect(1, 92736, '\p{^Is_Blk=bamumsup}', "");
+    Expect(1, 92736, '\P{Is_Blk=bamumsup}', "");
+    Expect(0, 92736, '\P{^Is_Blk=bamumsup}', "");
+    Expect(1, 92735, '\p{Is_Blk= -Bamum_sup}', "");
+    Expect(0, 92735, '\p{^Is_Blk= -Bamum_sup}', "");
+    Expect(0, 92735, '\P{Is_Blk= -Bamum_sup}', "");
+    Expect(1, 92735, '\P{^Is_Blk= -Bamum_sup}', "");
+    Expect(0, 92736, '\p{Is_Blk= -Bamum_sup}', "");
+    Expect(1, 92736, '\p{^Is_Blk= -Bamum_sup}', "");
+    Expect(1, 92736, '\P{Is_Blk= -Bamum_sup}', "");
+    Expect(0, 92736, '\P{^Is_Blk= -Bamum_sup}', "");
+    Error('\p{Block: 	Bassa_vah/a/}');
+    Error('\P{Block: 	Bassa_vah/a/}');
     Expect(1, 92927, '\p{Block=:\ABassa_Vah\z:}', "");;
     Expect(0, 92928, '\p{Block=:\ABassa_Vah\z:}', "");;
     Expect(1, 92927, '\p{Block=bassavah}', "");
@@ -5564,16 +5668,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 92928, '\P{^Block=bassavah}', "");
     Expect(1, 92927, '\p{Block=:\Abassavah\z:}', "");;
     Expect(0, 92928, '\p{Block=:\Abassavah\z:}', "");;
-    Expect(1, 92927, '\p{Block= bassa_VAH}', "");
-    Expect(0, 92927, '\p{^Block= bassa_VAH}', "");
-    Expect(0, 92927, '\P{Block= bassa_VAH}', "");
-    Expect(1, 92927, '\P{^Block= bassa_VAH}', "");
-    Expect(0, 92928, '\p{Block= bassa_VAH}', "");
-    Expect(1, 92928, '\p{^Block= bassa_VAH}', "");
-    Expect(1, 92928, '\P{Block= bassa_VAH}', "");
-    Expect(0, 92928, '\P{^Block= bassa_VAH}', "");
-    Error('\p{Blk=-BASSA_vah/a/}');
-    Error('\P{Blk=-BASSA_vah/a/}');
+    Expect(1, 92927, '\p{Block:	_ Bassa_VAH}', "");
+    Expect(0, 92927, '\p{^Block:	_ Bassa_VAH}', "");
+    Expect(0, 92927, '\P{Block:	_ Bassa_VAH}', "");
+    Expect(1, 92927, '\P{^Block:	_ Bassa_VAH}', "");
+    Expect(0, 92928, '\p{Block:	_ Bassa_VAH}', "");
+    Expect(1, 92928, '\p{^Block:	_ Bassa_VAH}', "");
+    Expect(1, 92928, '\P{Block:	_ Bassa_VAH}', "");
+    Expect(0, 92928, '\P{^Block:	_ Bassa_VAH}', "");
+    Error('\p{Blk=_BASSA_Vah:=}');
+    Error('\P{Blk=_BASSA_Vah:=}');
     Expect(1, 92927, '\p{Blk=:\ABassa_Vah\z:}', "");;
     Expect(0, 92928, '\p{Blk=:\ABassa_Vah\z:}', "");;
     Expect(1, 92927, '\p{Blk=bassavah}', "");
@@ -5586,16 +5690,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 92928, '\P{^Blk=bassavah}', "");
     Expect(1, 92927, '\p{Blk=:\Abassavah\z:}', "");;
     Expect(0, 92928, '\p{Blk=:\Abassavah\z:}', "");;
-    Expect(1, 92927, '\p{Blk:  -Bassa_Vah}', "");
-    Expect(0, 92927, '\p{^Blk:  -Bassa_Vah}', "");
-    Expect(0, 92927, '\P{Blk:  -Bassa_Vah}', "");
-    Expect(1, 92927, '\P{^Blk:  -Bassa_Vah}', "");
-    Expect(0, 92928, '\p{Blk:  -Bassa_Vah}', "");
-    Expect(1, 92928, '\p{^Blk:  -Bassa_Vah}', "");
-    Expect(1, 92928, '\P{Blk:  -Bassa_Vah}', "");
-    Expect(0, 92928, '\P{^Blk:  -Bassa_Vah}', "");
-    Error('\p{Is_Block=	:=BASSA_VAH}');
-    Error('\P{Is_Block=	:=BASSA_VAH}');
+    Expect(1, 92927, '\p{Blk=  Bassa_Vah}', "");
+    Expect(0, 92927, '\p{^Blk=  Bassa_Vah}', "");
+    Expect(0, 92927, '\P{Blk=  Bassa_Vah}', "");
+    Expect(1, 92927, '\P{^Blk=  Bassa_Vah}', "");
+    Expect(0, 92928, '\p{Blk=  Bassa_Vah}', "");
+    Expect(1, 92928, '\p{^Blk=  Bassa_Vah}', "");
+    Expect(1, 92928, '\P{Blk=  Bassa_Vah}', "");
+    Expect(0, 92928, '\P{^Blk=  Bassa_Vah}', "");
+    Error('\p{Is_Block=-BASSA_VAH/a/}');
+    Error('\P{Is_Block=-BASSA_VAH/a/}');
     Expect(1, 92927, '\p{Is_Block=bassavah}', "");
     Expect(0, 92927, '\p{^Is_Block=bassavah}', "");
     Expect(0, 92927, '\P{Is_Block=bassavah}', "");
@@ -5604,16 +5708,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 92928, '\p{^Is_Block=bassavah}', "");
     Expect(1, 92928, '\P{Is_Block=bassavah}', "");
     Expect(0, 92928, '\P{^Is_Block=bassavah}', "");
-    Expect(1, 92927, '\p{Is_Block=	_bassa_vah}', "");
-    Expect(0, 92927, '\p{^Is_Block=	_bassa_vah}', "");
-    Expect(0, 92927, '\P{Is_Block=	_bassa_vah}', "");
-    Expect(1, 92927, '\P{^Is_Block=	_bassa_vah}', "");
-    Expect(0, 92928, '\p{Is_Block=	_bassa_vah}', "");
-    Expect(1, 92928, '\p{^Is_Block=	_bassa_vah}', "");
-    Expect(1, 92928, '\P{Is_Block=	_bassa_vah}', "");
-    Expect(0, 92928, '\P{^Is_Block=	_bassa_vah}', "");
-    Error('\p{Is_Blk=:=_BASSA_Vah}');
-    Error('\P{Is_Blk=:=_BASSA_Vah}');
+    Expect(1, 92927, '\p{Is_Block=	 Bassa_Vah}', "");
+    Expect(0, 92927, '\p{^Is_Block=	 Bassa_Vah}', "");
+    Expect(0, 92927, '\P{Is_Block=	 Bassa_Vah}', "");
+    Expect(1, 92927, '\P{^Is_Block=	 Bassa_Vah}', "");
+    Expect(0, 92928, '\p{Is_Block=	 Bassa_Vah}', "");
+    Expect(1, 92928, '\p{^Is_Block=	 Bassa_Vah}', "");
+    Expect(1, 92928, '\P{Is_Block=	 Bassa_Vah}', "");
+    Expect(0, 92928, '\P{^Is_Block=	 Bassa_Vah}', "");
+    Error('\p{Is_Blk=/a/		Bassa_Vah}');
+    Error('\P{Is_Blk=/a/		Bassa_Vah}');
     Expect(1, 92927, '\p{Is_Blk=bassavah}', "");
     Expect(0, 92927, '\p{^Is_Blk=bassavah}', "");
     Expect(0, 92927, '\P{Is_Blk=bassavah}', "");
@@ -5622,16 +5726,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 92928, '\p{^Is_Blk=bassavah}', "");
     Expect(1, 92928, '\P{Is_Blk=bassavah}', "");
     Expect(0, 92928, '\P{^Is_Blk=bassavah}', "");
-    Expect(1, 92927, '\p{Is_Blk= -bassa_Vah}', "");
-    Expect(0, 92927, '\p{^Is_Blk= -bassa_Vah}', "");
-    Expect(0, 92927, '\P{Is_Blk= -bassa_Vah}', "");
-    Expect(1, 92927, '\P{^Is_Blk= -bassa_Vah}', "");
-    Expect(0, 92928, '\p{Is_Blk= -bassa_Vah}', "");
-    Expect(1, 92928, '\p{^Is_Blk= -bassa_Vah}', "");
-    Expect(1, 92928, '\P{Is_Blk= -bassa_Vah}', "");
-    Expect(0, 92928, '\P{^Is_Blk= -bassa_Vah}', "");
-    Error('\p{Block=/a/BATAK}');
-    Error('\P{Block=/a/BATAK}');
+    Expect(1, 92927, '\p{Is_Blk=_Bassa_Vah}', "");
+    Expect(0, 92927, '\p{^Is_Blk=_Bassa_Vah}', "");
+    Expect(0, 92927, '\P{Is_Blk=_Bassa_Vah}', "");
+    Expect(1, 92927, '\P{^Is_Blk=_Bassa_Vah}', "");
+    Expect(0, 92928, '\p{Is_Blk=_Bassa_Vah}', "");
+    Expect(1, 92928, '\p{^Is_Blk=_Bassa_Vah}', "");
+    Expect(1, 92928, '\P{Is_Blk=_Bassa_Vah}', "");
+    Expect(0, 92928, '\P{^Is_Blk=_Bassa_Vah}', "");
+    Error('\p{Block=/a/		BATAK}');
+    Error('\P{Block=/a/		BATAK}');
     Expect(1, 7167, '\p{Block=:\ABatak\z:}', "");;
     Expect(0, 7168, '\p{Block=:\ABatak\z:}', "");;
     Expect(1, 7167, '\p{Block=batak}', "");
@@ -5644,16 +5748,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7168, '\P{^Block=batak}', "");
     Expect(1, 7167, '\p{Block=:\Abatak\z:}', "");;
     Expect(0, 7168, '\p{Block=:\Abatak\z:}', "");;
-    Expect(1, 7167, '\p{Block= 	batak}', "");
-    Expect(0, 7167, '\p{^Block= 	batak}', "");
-    Expect(0, 7167, '\P{Block= 	batak}', "");
-    Expect(1, 7167, '\P{^Block= 	batak}', "");
-    Expect(0, 7168, '\p{Block= 	batak}', "");
-    Expect(1, 7168, '\p{^Block= 	batak}', "");
-    Expect(1, 7168, '\P{Block= 	batak}', "");
-    Expect(0, 7168, '\P{^Block= 	batak}', "");
-    Error('\p{Blk=_/a/BATAK}');
-    Error('\P{Blk=_/a/BATAK}');
+    Expect(1, 7167, '\p{Block:   		BATAK}', "");
+    Expect(0, 7167, '\p{^Block:   		BATAK}', "");
+    Expect(0, 7167, '\P{Block:   		BATAK}', "");
+    Expect(1, 7167, '\P{^Block:   		BATAK}', "");
+    Expect(0, 7168, '\p{Block:   		BATAK}', "");
+    Expect(1, 7168, '\p{^Block:   		BATAK}', "");
+    Expect(1, 7168, '\P{Block:   		BATAK}', "");
+    Expect(0, 7168, '\P{^Block:   		BATAK}', "");
+    Error('\p{Blk=	Batak:=}');
+    Error('\P{Blk=	Batak:=}');
     Expect(1, 7167, '\p{Blk=:\ABatak\z:}', "");;
     Expect(0, 7168, '\p{Blk=:\ABatak\z:}', "");;
     Expect(1, 7167, '\p{Blk=batak}', "");
@@ -5666,8 +5770,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7168, '\P{^Blk=batak}', "");
     Expect(1, 7167, '\p{Blk=:\Abatak\z:}', "");;
     Expect(0, 7168, '\p{Blk=:\Abatak\z:}', "");;
-    Error('\p{Is_Block=_/a/Batak}');
-    Error('\P{Is_Block=_/a/Batak}');
+    Expect(1, 7167, '\p{Blk:   -Batak}', "");
+    Expect(0, 7167, '\p{^Blk:   -Batak}', "");
+    Expect(0, 7167, '\P{Blk:   -Batak}', "");
+    Expect(1, 7167, '\P{^Blk:   -Batak}', "");
+    Expect(0, 7168, '\p{Blk:   -Batak}', "");
+    Expect(1, 7168, '\p{^Blk:   -Batak}', "");
+    Expect(1, 7168, '\P{Blk:   -Batak}', "");
+    Expect(0, 7168, '\P{^Blk:   -Batak}', "");
+    Error('\p{Is_Block:	-_batak:=}');
+    Error('\P{Is_Block:	-_batak:=}');
     Expect(1, 7167, '\p{Is_Block=batak}', "");
     Expect(0, 7167, '\p{^Is_Block=batak}', "");
     Expect(0, 7167, '\P{Is_Block=batak}', "");
@@ -5676,56 +5788,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7168, '\p{^Is_Block=batak}', "");
     Expect(1, 7168, '\P{Is_Block=batak}', "");
     Expect(0, 7168, '\P{^Is_Block=batak}', "");
-    Expect(1, 7167, '\p{Is_Block=	_batak}', "");
-    Expect(0, 7167, '\p{^Is_Block=	_batak}', "");
-    Expect(0, 7167, '\P{Is_Block=	_batak}', "");
-    Expect(1, 7167, '\P{^Is_Block=	_batak}', "");
-    Expect(0, 7168, '\p{Is_Block=	_batak}', "");
-    Expect(1, 7168, '\p{^Is_Block=	_batak}', "");
-    Expect(1, 7168, '\P{Is_Block=	_batak}', "");
-    Expect(0, 7168, '\P{^Is_Block=	_batak}', "");
-    Error('\p{Is_Blk=- BATAK/a/}');
-    Error('\P{Is_Blk=- BATAK/a/}');
-    Expect(1, 7167, '\p{Is_Blk:   batak}', "");
-    Expect(0, 7167, '\p{^Is_Blk:   batak}', "");
-    Expect(0, 7167, '\P{Is_Blk:   batak}', "");
-    Expect(1, 7167, '\P{^Is_Blk:   batak}', "");
-    Expect(0, 7168, '\p{Is_Blk:   batak}', "");
-    Expect(1, 7168, '\p{^Is_Blk:   batak}', "");
-    Expect(1, 7168, '\P{Is_Blk:   batak}', "");
-    Expect(0, 7168, '\P{^Is_Blk:   batak}', "");
-    Expect(1, 7167, '\p{Is_Blk=- Batak}', "");
-    Expect(0, 7167, '\p{^Is_Blk=- Batak}', "");
-    Expect(0, 7167, '\P{Is_Blk=- Batak}', "");
-    Expect(1, 7167, '\P{^Is_Blk=- Batak}', "");
-    Expect(0, 7168, '\p{Is_Blk=- Batak}', "");
-    Expect(1, 7168, '\p{^Is_Blk=- Batak}', "");
-    Expect(1, 7168, '\P{Is_Blk=- Batak}', "");
-    Expect(0, 7168, '\P{^Is_Blk=- Batak}', "");
-    Error('\p{Block=/a/bengali}');
-    Error('\P{Block=/a/bengali}');
+    Expect(1, 7167, '\p{Is_Block=_Batak}', "");
+    Expect(0, 7167, '\p{^Is_Block=_Batak}', "");
+    Expect(0, 7167, '\P{Is_Block=_Batak}', "");
+    Expect(1, 7167, '\P{^Is_Block=_Batak}', "");
+    Expect(0, 7168, '\p{Is_Block=_Batak}', "");
+    Expect(1, 7168, '\p{^Is_Block=_Batak}', "");
+    Expect(1, 7168, '\P{Is_Block=_Batak}', "");
+    Expect(0, 7168, '\P{^Is_Block=_Batak}', "");
+    Error('\p{Is_Blk:/a/batak}');
+    Error('\P{Is_Blk:/a/batak}');
+    Expect(1, 7167, '\p{Is_Blk=batak}', "");
+    Expect(0, 7167, '\p{^Is_Blk=batak}', "");
+    Expect(0, 7167, '\P{Is_Blk=batak}', "");
+    Expect(1, 7167, '\P{^Is_Blk=batak}', "");
+    Expect(0, 7168, '\p{Is_Blk=batak}', "");
+    Expect(1, 7168, '\p{^Is_Blk=batak}', "");
+    Expect(1, 7168, '\P{Is_Blk=batak}', "");
+    Expect(0, 7168, '\P{^Is_Blk=batak}', "");
+    Expect(1, 7167, '\p{Is_Blk=	Batak}', "");
+    Expect(0, 7167, '\p{^Is_Blk=	Batak}', "");
+    Expect(0, 7167, '\P{Is_Blk=	Batak}', "");
+    Expect(1, 7167, '\P{^Is_Blk=	Batak}', "");
+    Expect(0, 7168, '\p{Is_Blk=	Batak}', "");
+    Expect(1, 7168, '\p{^Is_Blk=	Batak}', "");
+    Expect(1, 7168, '\P{Is_Blk=	Batak}', "");
+    Expect(0, 7168, '\P{^Is_Blk=	Batak}', "");
+    Error('\p{Block:-/a/Bengali}');
+    Error('\P{Block:-/a/Bengali}');
     Expect(1, 2559, '\p{Block=:\ABengali\z:}', "");;
     Expect(0, 2560, '\p{Block=:\ABengali\z:}', "");;
-    Expect(1, 2559, '\p{Block=bengali}', "");
-    Expect(0, 2559, '\p{^Block=bengali}', "");
-    Expect(0, 2559, '\P{Block=bengali}', "");
-    Expect(1, 2559, '\P{^Block=bengali}', "");
-    Expect(0, 2560, '\p{Block=bengali}', "");
-    Expect(1, 2560, '\p{^Block=bengali}', "");
-    Expect(1, 2560, '\P{Block=bengali}', "");
-    Expect(0, 2560, '\P{^Block=bengali}', "");
+    Expect(1, 2559, '\p{Block:   bengali}', "");
+    Expect(0, 2559, '\p{^Block:   bengali}', "");
+    Expect(0, 2559, '\P{Block:   bengali}', "");
+    Expect(1, 2559, '\P{^Block:   bengali}', "");
+    Expect(0, 2560, '\p{Block:   bengali}', "");
+    Expect(1, 2560, '\p{^Block:   bengali}', "");
+    Expect(1, 2560, '\P{Block:   bengali}', "");
+    Expect(0, 2560, '\P{^Block:   bengali}', "");
     Expect(1, 2559, '\p{Block=:\Abengali\z:}', "");;
     Expect(0, 2560, '\p{Block=:\Abengali\z:}', "");;
-    Expect(1, 2559, '\p{Block=	_Bengali}', "");
-    Expect(0, 2559, '\p{^Block=	_Bengali}', "");
-    Expect(0, 2559, '\P{Block=	_Bengali}', "");
-    Expect(1, 2559, '\P{^Block=	_Bengali}', "");
-    Expect(0, 2560, '\p{Block=	_Bengali}', "");
-    Expect(1, 2560, '\p{^Block=	_Bengali}', "");
-    Expect(1, 2560, '\P{Block=	_Bengali}', "");
-    Expect(0, 2560, '\P{^Block=	_Bengali}', "");
-    Error('\p{Blk=:=_	Bengali}');
-    Error('\P{Blk=:=_	Bengali}');
+    Expect(1, 2559, '\p{Block=__Bengali}', "");
+    Expect(0, 2559, '\p{^Block=__Bengali}', "");
+    Expect(0, 2559, '\P{Block=__Bengali}', "");
+    Expect(1, 2559, '\P{^Block=__Bengali}', "");
+    Expect(0, 2560, '\p{Block=__Bengali}', "");
+    Expect(1, 2560, '\p{^Block=__Bengali}', "");
+    Expect(1, 2560, '\P{Block=__Bengali}', "");
+    Expect(0, 2560, '\P{^Block=__Bengali}', "");
+    Error('\p{Blk=	:=bengali}');
+    Error('\P{Blk=	:=bengali}');
     Expect(1, 2559, '\p{Blk=:\ABengali\z:}', "");;
     Expect(0, 2560, '\p{Blk=:\ABengali\z:}', "");;
     Expect(1, 2559, '\p{Blk=bengali}', "");
@@ -5738,16 +5850,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2560, '\P{^Blk=bengali}', "");
     Expect(1, 2559, '\p{Blk=:\Abengali\z:}', "");;
     Expect(0, 2560, '\p{Blk=:\Abengali\z:}', "");;
-    Expect(1, 2559, '\p{Blk=  Bengali}', "");
-    Expect(0, 2559, '\p{^Blk=  Bengali}', "");
-    Expect(0, 2559, '\P{Blk=  Bengali}', "");
-    Expect(1, 2559, '\P{^Blk=  Bengali}', "");
-    Expect(0, 2560, '\p{Blk=  Bengali}', "");
-    Expect(1, 2560, '\p{^Blk=  Bengali}', "");
-    Expect(1, 2560, '\P{Blk=  Bengali}', "");
-    Expect(0, 2560, '\P{^Blk=  Bengali}', "");
-    Error('\p{Is_Block=	:=BENGALI}');
-    Error('\P{Is_Block=	:=BENGALI}');
+    Expect(1, 2559, '\p{Blk=_-bengali}', "");
+    Expect(0, 2559, '\p{^Blk=_-bengali}', "");
+    Expect(0, 2559, '\P{Blk=_-bengali}', "");
+    Expect(1, 2559, '\P{^Blk=_-bengali}', "");
+    Expect(0, 2560, '\p{Blk=_-bengali}', "");
+    Expect(1, 2560, '\p{^Blk=_-bengali}', "");
+    Expect(1, 2560, '\P{Blk=_-bengali}', "");
+    Expect(0, 2560, '\P{^Blk=_-bengali}', "");
+    Error('\p{Is_Block=:= -bengali}');
+    Error('\P{Is_Block=:= -bengali}');
     Expect(1, 2559, '\p{Is_Block=bengali}', "");
     Expect(0, 2559, '\p{^Is_Block=bengali}', "");
     Expect(0, 2559, '\P{Is_Block=bengali}', "");
@@ -5756,34 +5868,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2560, '\p{^Is_Block=bengali}', "");
     Expect(1, 2560, '\P{Is_Block=bengali}', "");
     Expect(0, 2560, '\P{^Is_Block=bengali}', "");
-    Expect(1, 2559, '\p{Is_Block=	bengali}', "");
-    Expect(0, 2559, '\p{^Is_Block=	bengali}', "");
-    Expect(0, 2559, '\P{Is_Block=	bengali}', "");
-    Expect(1, 2559, '\P{^Is_Block=	bengali}', "");
-    Expect(0, 2560, '\p{Is_Block=	bengali}', "");
-    Expect(1, 2560, '\p{^Is_Block=	bengali}', "");
-    Expect(1, 2560, '\P{Is_Block=	bengali}', "");
-    Expect(0, 2560, '\P{^Is_Block=	bengali}', "");
-    Error('\p{Is_Blk=Bengali/a/}');
-    Error('\P{Is_Blk=Bengali/a/}');
-    Expect(1, 2559, '\p{Is_Blk=bengali}', "");
-    Expect(0, 2559, '\p{^Is_Blk=bengali}', "");
-    Expect(0, 2559, '\P{Is_Blk=bengali}', "");
-    Expect(1, 2559, '\P{^Is_Blk=bengali}', "");
-    Expect(0, 2560, '\p{Is_Blk=bengali}', "");
-    Expect(1, 2560, '\p{^Is_Blk=bengali}', "");
-    Expect(1, 2560, '\P{Is_Blk=bengali}', "");
-    Expect(0, 2560, '\P{^Is_Blk=bengali}', "");
-    Expect(1, 2559, '\p{Is_Blk=-	Bengali}', "");
-    Expect(0, 2559, '\p{^Is_Blk=-	Bengali}', "");
-    Expect(0, 2559, '\P{Is_Blk=-	Bengali}', "");
-    Expect(1, 2559, '\P{^Is_Blk=-	Bengali}', "");
-    Expect(0, 2560, '\p{Is_Blk=-	Bengali}', "");
-    Expect(1, 2560, '\p{^Is_Blk=-	Bengali}', "");
-    Expect(1, 2560, '\P{Is_Blk=-	Bengali}', "");
-    Expect(0, 2560, '\P{^Is_Blk=-	Bengali}', "");
-    Error('\p{Block=	_Bhaiksuki:=}');
-    Error('\P{Block=	_Bhaiksuki:=}');
+    Expect(1, 2559, '\p{Is_Block:   -bengali}', "");
+    Expect(0, 2559, '\p{^Is_Block:   -bengali}', "");
+    Expect(0, 2559, '\P{Is_Block:   -bengali}', "");
+    Expect(1, 2559, '\P{^Is_Block:   -bengali}', "");
+    Expect(0, 2560, '\p{Is_Block:   -bengali}', "");
+    Expect(1, 2560, '\p{^Is_Block:   -bengali}', "");
+    Expect(1, 2560, '\P{Is_Block:   -bengali}', "");
+    Expect(0, 2560, '\P{^Is_Block:   -bengali}', "");
+    Error('\p{Is_Blk=:=- Bengali}');
+    Error('\P{Is_Blk=:=- Bengali}');
+    Expect(1, 2559, '\p{Is_Blk:	bengali}', "");
+    Expect(0, 2559, '\p{^Is_Blk:	bengali}', "");
+    Expect(0, 2559, '\P{Is_Blk:	bengali}', "");
+    Expect(1, 2559, '\P{^Is_Blk:	bengali}', "");
+    Expect(0, 2560, '\p{Is_Blk:	bengali}', "");
+    Expect(1, 2560, '\p{^Is_Blk:	bengali}', "");
+    Expect(1, 2560, '\P{Is_Blk:	bengali}', "");
+    Expect(0, 2560, '\P{^Is_Blk:	bengali}', "");
+    Expect(1, 2559, '\p{Is_Blk=	Bengali}', "");
+    Expect(0, 2559, '\p{^Is_Blk=	Bengali}', "");
+    Expect(0, 2559, '\P{Is_Blk=	Bengali}', "");
+    Expect(1, 2559, '\P{^Is_Blk=	Bengali}', "");
+    Expect(0, 2560, '\p{Is_Blk=	Bengali}', "");
+    Expect(1, 2560, '\p{^Is_Blk=	Bengali}', "");
+    Expect(1, 2560, '\P{Is_Blk=	Bengali}', "");
+    Expect(0, 2560, '\P{^Is_Blk=	Bengali}', "");
+    Error('\p{Block=/a/ BHAIKSUKI}');
+    Error('\P{Block=/a/ BHAIKSUKI}');
     Expect(1, 72815, '\p{Block=:\ABhaiksuki\z:}', "");;
     Expect(0, 72816, '\p{Block=:\ABhaiksuki\z:}', "");;
     Expect(1, 72815, '\p{Block=bhaiksuki}', "");
@@ -5796,16 +5908,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72816, '\P{^Block=bhaiksuki}', "");
     Expect(1, 72815, '\p{Block=:\Abhaiksuki\z:}', "");;
     Expect(0, 72816, '\p{Block=:\Abhaiksuki\z:}', "");;
-    Expect(1, 72815, '\p{Block= 	bhaiksuki}', "");
-    Expect(0, 72815, '\p{^Block= 	bhaiksuki}', "");
-    Expect(0, 72815, '\P{Block= 	bhaiksuki}', "");
-    Expect(1, 72815, '\P{^Block= 	bhaiksuki}', "");
-    Expect(0, 72816, '\p{Block= 	bhaiksuki}', "");
-    Expect(1, 72816, '\p{^Block= 	bhaiksuki}', "");
-    Expect(1, 72816, '\P{Block= 	bhaiksuki}', "");
-    Expect(0, 72816, '\P{^Block= 	bhaiksuki}', "");
-    Error('\p{Blk:	:= 	Bhaiksuki}');
-    Error('\P{Blk:	:= 	Bhaiksuki}');
+    Expect(1, 72815, '\p{Block:			Bhaiksuki}', "");
+    Expect(0, 72815, '\p{^Block:			Bhaiksuki}', "");
+    Expect(0, 72815, '\P{Block:			Bhaiksuki}', "");
+    Expect(1, 72815, '\P{^Block:			Bhaiksuki}', "");
+    Expect(0, 72816, '\p{Block:			Bhaiksuki}', "");
+    Expect(1, 72816, '\p{^Block:			Bhaiksuki}', "");
+    Expect(1, 72816, '\P{Block:			Bhaiksuki}', "");
+    Expect(0, 72816, '\P{^Block:			Bhaiksuki}', "");
+    Error('\p{Blk=/a/	_BHAIKSUKI}');
+    Error('\P{Blk=/a/	_BHAIKSUKI}');
     Expect(1, 72815, '\p{Blk=:\ABhaiksuki\z:}', "");;
     Expect(0, 72816, '\p{Blk=:\ABhaiksuki\z:}', "");;
     Expect(1, 72815, '\p{Blk=bhaiksuki}', "");
@@ -5818,16 +5930,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72816, '\P{^Blk=bhaiksuki}', "");
     Expect(1, 72815, '\p{Blk=:\Abhaiksuki\z:}', "");;
     Expect(0, 72816, '\p{Blk=:\Abhaiksuki\z:}', "");;
-    Expect(1, 72815, '\p{Blk=Bhaiksuki}', "");
-    Expect(0, 72815, '\p{^Blk=Bhaiksuki}', "");
-    Expect(0, 72815, '\P{Blk=Bhaiksuki}', "");
-    Expect(1, 72815, '\P{^Blk=Bhaiksuki}', "");
-    Expect(0, 72816, '\p{Blk=Bhaiksuki}', "");
-    Expect(1, 72816, '\p{^Blk=Bhaiksuki}', "");
-    Expect(1, 72816, '\P{Blk=Bhaiksuki}', "");
-    Expect(0, 72816, '\P{^Blk=Bhaiksuki}', "");
-    Error('\p{Is_Block=:=_-Bhaiksuki}');
-    Error('\P{Is_Block=:=_-Bhaiksuki}');
+    Expect(1, 72815, '\p{Blk=--Bhaiksuki}', "");
+    Expect(0, 72815, '\p{^Blk=--Bhaiksuki}', "");
+    Expect(0, 72815, '\P{Blk=--Bhaiksuki}', "");
+    Expect(1, 72815, '\P{^Blk=--Bhaiksuki}', "");
+    Expect(0, 72816, '\p{Blk=--Bhaiksuki}', "");
+    Expect(1, 72816, '\p{^Blk=--Bhaiksuki}', "");
+    Expect(1, 72816, '\P{Blk=--Bhaiksuki}', "");
+    Expect(0, 72816, '\P{^Blk=--Bhaiksuki}', "");
+    Error('\p{Is_Block=:=Bhaiksuki}');
+    Error('\P{Is_Block=:=Bhaiksuki}');
     Expect(1, 72815, '\p{Is_Block=bhaiksuki}', "");
     Expect(0, 72815, '\p{^Is_Block=bhaiksuki}', "");
     Expect(0, 72815, '\P{Is_Block=bhaiksuki}', "");
@@ -5836,16 +5948,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72816, '\p{^Is_Block=bhaiksuki}', "");
     Expect(1, 72816, '\P{Is_Block=bhaiksuki}', "");
     Expect(0, 72816, '\P{^Is_Block=bhaiksuki}', "");
-    Expect(1, 72815, '\p{Is_Block=--Bhaiksuki}', "");
-    Expect(0, 72815, '\p{^Is_Block=--Bhaiksuki}', "");
-    Expect(0, 72815, '\P{Is_Block=--Bhaiksuki}', "");
-    Expect(1, 72815, '\P{^Is_Block=--Bhaiksuki}', "");
-    Expect(0, 72816, '\p{Is_Block=--Bhaiksuki}', "");
-    Expect(1, 72816, '\p{^Is_Block=--Bhaiksuki}', "");
-    Expect(1, 72816, '\P{Is_Block=--Bhaiksuki}', "");
-    Expect(0, 72816, '\P{^Is_Block=--Bhaiksuki}', "");
-    Error('\p{Is_Blk=_bhaiksuki/a/}');
-    Error('\P{Is_Blk=_bhaiksuki/a/}');
+    Expect(1, 72815, '\p{Is_Block=_	Bhaiksuki}', "");
+    Expect(0, 72815, '\p{^Is_Block=_	Bhaiksuki}', "");
+    Expect(0, 72815, '\P{Is_Block=_	Bhaiksuki}', "");
+    Expect(1, 72815, '\P{^Is_Block=_	Bhaiksuki}', "");
+    Expect(0, 72816, '\p{Is_Block=_	Bhaiksuki}', "");
+    Expect(1, 72816, '\p{^Is_Block=_	Bhaiksuki}', "");
+    Expect(1, 72816, '\P{Is_Block=_	Bhaiksuki}', "");
+    Expect(0, 72816, '\P{^Is_Block=_	Bhaiksuki}', "");
+    Error('\p{Is_Blk:/a/  Bhaiksuki}');
+    Error('\P{Is_Blk:/a/  Bhaiksuki}');
     Expect(1, 72815, '\p{Is_Blk=bhaiksuki}', "");
     Expect(0, 72815, '\p{^Is_Blk=bhaiksuki}', "");
     Expect(0, 72815, '\P{Is_Blk=bhaiksuki}', "");
@@ -5854,60 +5966,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72816, '\p{^Is_Blk=bhaiksuki}', "");
     Expect(1, 72816, '\P{Is_Blk=bhaiksuki}', "");
     Expect(0, 72816, '\P{^Is_Blk=bhaiksuki}', "");
-    Expect(1, 72815, '\p{Is_Blk=	Bhaiksuki}', "");
-    Expect(0, 72815, '\p{^Is_Blk=	Bhaiksuki}', "");
-    Expect(0, 72815, '\P{Is_Blk=	Bhaiksuki}', "");
-    Expect(1, 72815, '\P{^Is_Blk=	Bhaiksuki}', "");
-    Expect(0, 72816, '\p{Is_Blk=	Bhaiksuki}', "");
-    Expect(1, 72816, '\p{^Is_Blk=	Bhaiksuki}', "");
-    Expect(1, 72816, '\P{Is_Blk=	Bhaiksuki}', "");
-    Expect(0, 72816, '\P{^Is_Blk=	Bhaiksuki}', "");
-    Error('\p{Block=:=  Block_Elements}');
-    Error('\P{Block=:=  Block_Elements}');
+    Expect(1, 72815, '\p{Is_Blk=	-Bhaiksuki}', "");
+    Expect(0, 72815, '\p{^Is_Blk=	-Bhaiksuki}', "");
+    Expect(0, 72815, '\P{Is_Blk=	-Bhaiksuki}', "");
+    Expect(1, 72815, '\P{^Is_Blk=	-Bhaiksuki}', "");
+    Expect(0, 72816, '\p{Is_Blk=	-Bhaiksuki}', "");
+    Expect(1, 72816, '\p{^Is_Blk=	-Bhaiksuki}', "");
+    Expect(1, 72816, '\P{Is_Blk=	-Bhaiksuki}', "");
+    Expect(0, 72816, '\P{^Is_Blk=	-Bhaiksuki}', "");
+    Error('\p{Block=:=_	Block_Elements}');
+    Error('\P{Block=:=_	Block_Elements}');
     Expect(1, 9631, '\p{Block=:\ABlock_Elements\z:}', "");;
     Expect(0, 9632, '\p{Block=:\ABlock_Elements\z:}', "");;
-    Expect(1, 9631, '\p{Block=blockelements}', "");
-    Expect(0, 9631, '\p{^Block=blockelements}', "");
-    Expect(0, 9631, '\P{Block=blockelements}', "");
-    Expect(1, 9631, '\P{^Block=blockelements}', "");
-    Expect(0, 9632, '\p{Block=blockelements}', "");
-    Expect(1, 9632, '\p{^Block=blockelements}', "");
-    Expect(1, 9632, '\P{Block=blockelements}', "");
-    Expect(0, 9632, '\P{^Block=blockelements}', "");
+    Expect(1, 9631, '\p{Block:blockelements}', "");
+    Expect(0, 9631, '\p{^Block:blockelements}', "");
+    Expect(0, 9631, '\P{Block:blockelements}', "");
+    Expect(1, 9631, '\P{^Block:blockelements}', "");
+    Expect(0, 9632, '\p{Block:blockelements}', "");
+    Expect(1, 9632, '\p{^Block:blockelements}', "");
+    Expect(1, 9632, '\P{Block:blockelements}', "");
+    Expect(0, 9632, '\P{^Block:blockelements}', "");
     Expect(1, 9631, '\p{Block=:\Ablockelements\z:}', "");;
     Expect(0, 9632, '\p{Block=:\Ablockelements\z:}', "");;
-    Expect(1, 9631, '\p{Block=_BLOCK_Elements}', "");
-    Expect(0, 9631, '\p{^Block=_BLOCK_Elements}', "");
-    Expect(0, 9631, '\P{Block=_BLOCK_Elements}', "");
-    Expect(1, 9631, '\P{^Block=_BLOCK_Elements}', "");
-    Expect(0, 9632, '\p{Block=_BLOCK_Elements}', "");
-    Expect(1, 9632, '\p{^Block=_BLOCK_Elements}', "");
-    Expect(1, 9632, '\P{Block=_BLOCK_Elements}', "");
-    Expect(0, 9632, '\P{^Block=_BLOCK_Elements}', "");
-    Error('\p{Blk=	:=block_elements}');
-    Error('\P{Blk=	:=block_elements}');
+    Expect(1, 9631, '\p{Block:  BLOCK_elements}', "");
+    Expect(0, 9631, '\p{^Block:  BLOCK_elements}', "");
+    Expect(0, 9631, '\P{Block:  BLOCK_elements}', "");
+    Expect(1, 9631, '\P{^Block:  BLOCK_elements}', "");
+    Expect(0, 9632, '\p{Block:  BLOCK_elements}', "");
+    Expect(1, 9632, '\p{^Block:  BLOCK_elements}', "");
+    Expect(1, 9632, '\P{Block:  BLOCK_elements}', "");
+    Expect(0, 9632, '\P{^Block:  BLOCK_elements}', "");
+    Error('\p{Blk=_:=BLOCK_elements}');
+    Error('\P{Blk=_:=BLOCK_elements}');
     Expect(1, 9631, '\p{Blk=:\ABlock_Elements\z:}', "");;
     Expect(0, 9632, '\p{Blk=:\ABlock_Elements\z:}', "");;
-    Expect(1, 9631, '\p{Blk=blockelements}', "");
-    Expect(0, 9631, '\p{^Blk=blockelements}', "");
-    Expect(0, 9631, '\P{Blk=blockelements}', "");
-    Expect(1, 9631, '\P{^Blk=blockelements}', "");
-    Expect(0, 9632, '\p{Blk=blockelements}', "");
-    Expect(1, 9632, '\p{^Blk=blockelements}', "");
-    Expect(1, 9632, '\P{Blk=blockelements}', "");
-    Expect(0, 9632, '\P{^Blk=blockelements}', "");
+    Expect(1, 9631, '\p{Blk:	blockelements}', "");
+    Expect(0, 9631, '\p{^Blk:	blockelements}', "");
+    Expect(0, 9631, '\P{Blk:	blockelements}', "");
+    Expect(1, 9631, '\P{^Blk:	blockelements}', "");
+    Expect(0, 9632, '\p{Blk:	blockelements}', "");
+    Expect(1, 9632, '\p{^Blk:	blockelements}', "");
+    Expect(1, 9632, '\P{Blk:	blockelements}', "");
+    Expect(0, 9632, '\P{^Blk:	blockelements}', "");
     Expect(1, 9631, '\p{Blk=:\Ablockelements\z:}', "");;
     Expect(0, 9632, '\p{Blk=:\Ablockelements\z:}', "");;
-    Expect(1, 9631, '\p{Blk=- block_elements}', "");
-    Expect(0, 9631, '\p{^Blk=- block_elements}', "");
-    Expect(0, 9631, '\P{Blk=- block_elements}', "");
-    Expect(1, 9631, '\P{^Blk=- block_elements}', "");
-    Expect(0, 9632, '\p{Blk=- block_elements}', "");
-    Expect(1, 9632, '\p{^Blk=- block_elements}', "");
-    Expect(1, 9632, '\P{Blk=- block_elements}', "");
-    Expect(0, 9632, '\P{^Blk=- block_elements}', "");
-    Error('\p{Is_Block=_:=Block_elements}');
-    Error('\P{Is_Block=_:=Block_elements}');
+    Expect(1, 9631, '\p{Blk=	_Block_elements}', "");
+    Expect(0, 9631, '\p{^Blk=	_Block_elements}', "");
+    Expect(0, 9631, '\P{Blk=	_Block_elements}', "");
+    Expect(1, 9631, '\P{^Blk=	_Block_elements}', "");
+    Expect(0, 9632, '\p{Blk=	_Block_elements}', "");
+    Expect(1, 9632, '\p{^Blk=	_Block_elements}', "");
+    Expect(1, 9632, '\P{Blk=	_Block_elements}', "");
+    Expect(0, 9632, '\P{^Blk=	_Block_elements}', "");
+    Error('\p{Is_Block=	 BLOCK_Elements:=}');
+    Error('\P{Is_Block=	 BLOCK_Elements:=}');
     Expect(1, 9631, '\p{Is_Block=blockelements}', "");
     Expect(0, 9631, '\p{^Is_Block=blockelements}', "");
     Expect(0, 9631, '\P{Is_Block=blockelements}', "");
@@ -5916,16 +6028,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9632, '\p{^Is_Block=blockelements}', "");
     Expect(1, 9632, '\P{Is_Block=blockelements}', "");
     Expect(0, 9632, '\P{^Is_Block=blockelements}', "");
-    Expect(1, 9631, '\p{Is_Block:   	block_Elements}', "");
-    Expect(0, 9631, '\p{^Is_Block:   	block_Elements}', "");
-    Expect(0, 9631, '\P{Is_Block:   	block_Elements}', "");
-    Expect(1, 9631, '\P{^Is_Block:   	block_Elements}', "");
-    Expect(0, 9632, '\p{Is_Block:   	block_Elements}', "");
-    Expect(1, 9632, '\p{^Is_Block:   	block_Elements}', "");
-    Expect(1, 9632, '\P{Is_Block:   	block_Elements}', "");
-    Expect(0, 9632, '\P{^Is_Block:   	block_Elements}', "");
-    Error('\p{Is_Blk=	_BLOCK_ELEMENTS:=}');
-    Error('\P{Is_Blk=	_BLOCK_ELEMENTS:=}');
+    Expect(1, 9631, '\p{Is_Block=BLOCK_Elements}', "");
+    Expect(0, 9631, '\p{^Is_Block=BLOCK_Elements}', "");
+    Expect(0, 9631, '\P{Is_Block=BLOCK_Elements}', "");
+    Expect(1, 9631, '\P{^Is_Block=BLOCK_Elements}', "");
+    Expect(0, 9632, '\p{Is_Block=BLOCK_Elements}', "");
+    Expect(1, 9632, '\p{^Is_Block=BLOCK_Elements}', "");
+    Expect(1, 9632, '\P{Is_Block=BLOCK_Elements}', "");
+    Expect(0, 9632, '\P{^Is_Block=BLOCK_Elements}', "");
+    Error('\p{Is_Blk=	:=Block_Elements}');
+    Error('\P{Is_Blk=	:=Block_Elements}');
     Expect(1, 9631, '\p{Is_Blk=blockelements}', "");
     Expect(0, 9631, '\p{^Is_Blk=blockelements}', "");
     Expect(0, 9631, '\P{Is_Blk=blockelements}', "");
@@ -5934,38 +6046,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9632, '\p{^Is_Blk=blockelements}', "");
     Expect(1, 9632, '\P{Is_Blk=blockelements}', "");
     Expect(0, 9632, '\P{^Is_Blk=blockelements}', "");
-    Expect(1, 9631, '\p{Is_Blk= Block_elements}', "");
-    Expect(0, 9631, '\p{^Is_Blk= Block_elements}', "");
-    Expect(0, 9631, '\P{Is_Blk= Block_elements}', "");
-    Expect(1, 9631, '\P{^Is_Blk= Block_elements}', "");
-    Expect(0, 9632, '\p{Is_Blk= Block_elements}', "");
-    Expect(1, 9632, '\p{^Is_Blk= Block_elements}', "");
-    Expect(1, 9632, '\P{Is_Blk= Block_elements}', "");
-    Expect(0, 9632, '\P{^Is_Blk= Block_elements}', "");
-    Error('\p{Block:   :=		Bopomofo}');
-    Error('\P{Block:   :=		Bopomofo}');
+    Expect(1, 9631, '\p{Is_Blk=- Block_Elements}', "");
+    Expect(0, 9631, '\p{^Is_Blk=- Block_Elements}', "");
+    Expect(0, 9631, '\P{Is_Blk=- Block_Elements}', "");
+    Expect(1, 9631, '\P{^Is_Blk=- Block_Elements}', "");
+    Expect(0, 9632, '\p{Is_Blk=- Block_Elements}', "");
+    Expect(1, 9632, '\p{^Is_Blk=- Block_Elements}', "");
+    Expect(1, 9632, '\P{Is_Blk=- Block_Elements}', "");
+    Expect(0, 9632, '\P{^Is_Blk=- Block_Elements}', "");
+    Error('\p{Block=  Bopomofo:=}');
+    Error('\P{Block=  Bopomofo:=}');
     Expect(1, 12591, '\p{Block=:\ABopomofo\z:}', "");;
     Expect(0, 12592, '\p{Block=:\ABopomofo\z:}', "");;
-    Expect(1, 12591, '\p{Block=bopomofo}', "");
-    Expect(0, 12591, '\p{^Block=bopomofo}', "");
-    Expect(0, 12591, '\P{Block=bopomofo}', "");
-    Expect(1, 12591, '\P{^Block=bopomofo}', "");
-    Expect(0, 12592, '\p{Block=bopomofo}', "");
-    Expect(1, 12592, '\p{^Block=bopomofo}', "");
-    Expect(1, 12592, '\P{Block=bopomofo}', "");
-    Expect(0, 12592, '\P{^Block=bopomofo}', "");
+    Expect(1, 12591, '\p{Block:	bopomofo}', "");
+    Expect(0, 12591, '\p{^Block:	bopomofo}', "");
+    Expect(0, 12591, '\P{Block:	bopomofo}', "");
+    Expect(1, 12591, '\P{^Block:	bopomofo}', "");
+    Expect(0, 12592, '\p{Block:	bopomofo}', "");
+    Expect(1, 12592, '\p{^Block:	bopomofo}', "");
+    Expect(1, 12592, '\P{Block:	bopomofo}', "");
+    Expect(0, 12592, '\P{^Block:	bopomofo}', "");
     Expect(1, 12591, '\p{Block=:\Abopomofo\z:}', "");;
     Expect(0, 12592, '\p{Block=:\Abopomofo\z:}', "");;
-    Expect(1, 12591, '\p{Block= 	BOPOMOFO}', "");
-    Expect(0, 12591, '\p{^Block= 	BOPOMOFO}', "");
-    Expect(0, 12591, '\P{Block= 	BOPOMOFO}', "");
-    Expect(1, 12591, '\P{^Block= 	BOPOMOFO}', "");
-    Expect(0, 12592, '\p{Block= 	BOPOMOFO}', "");
-    Expect(1, 12592, '\p{^Block= 	BOPOMOFO}', "");
-    Expect(1, 12592, '\P{Block= 	BOPOMOFO}', "");
-    Expect(0, 12592, '\P{^Block= 	BOPOMOFO}', "");
-    Error('\p{Blk=/a/_-bopomofo}');
-    Error('\P{Blk=/a/_-bopomofo}');
+    Expect(1, 12591, '\p{Block=	BOPOMOFO}', "");
+    Expect(0, 12591, '\p{^Block=	BOPOMOFO}', "");
+    Expect(0, 12591, '\P{Block=	BOPOMOFO}', "");
+    Expect(1, 12591, '\P{^Block=	BOPOMOFO}', "");
+    Expect(0, 12592, '\p{Block=	BOPOMOFO}', "");
+    Expect(1, 12592, '\p{^Block=	BOPOMOFO}', "");
+    Expect(1, 12592, '\P{Block=	BOPOMOFO}', "");
+    Expect(0, 12592, '\P{^Block=	BOPOMOFO}', "");
+    Error('\p{Blk=	-bopomofo:=}');
+    Error('\P{Blk=	-bopomofo:=}');
     Expect(1, 12591, '\p{Blk=:\ABopomofo\z:}', "");;
     Expect(0, 12592, '\p{Blk=:\ABopomofo\z:}', "");;
     Expect(1, 12591, '\p{Blk=bopomofo}', "");
@@ -5986,44 +6098,44 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12592, '\p{^Blk=	bopomofo}', "");
     Expect(1, 12592, '\P{Blk=	bopomofo}', "");
     Expect(0, 12592, '\P{^Blk=	bopomofo}', "");
-    Error('\p{Is_Block:   /a/	Bopomofo}');
-    Error('\P{Is_Block:   /a/	Bopomofo}');
-    Expect(1, 12591, '\p{Is_Block:   bopomofo}', "");
-    Expect(0, 12591, '\p{^Is_Block:   bopomofo}', "");
-    Expect(0, 12591, '\P{Is_Block:   bopomofo}', "");
-    Expect(1, 12591, '\P{^Is_Block:   bopomofo}', "");
-    Expect(0, 12592, '\p{Is_Block:   bopomofo}', "");
-    Expect(1, 12592, '\p{^Is_Block:   bopomofo}', "");
-    Expect(1, 12592, '\P{Is_Block:   bopomofo}', "");
-    Expect(0, 12592, '\P{^Is_Block:   bopomofo}', "");
-    Expect(1, 12591, '\p{Is_Block=_ BOPOMOFO}', "");
-    Expect(0, 12591, '\p{^Is_Block=_ BOPOMOFO}', "");
-    Expect(0, 12591, '\P{Is_Block=_ BOPOMOFO}', "");
-    Expect(1, 12591, '\P{^Is_Block=_ BOPOMOFO}', "");
-    Expect(0, 12592, '\p{Is_Block=_ BOPOMOFO}', "");
-    Expect(1, 12592, '\p{^Is_Block=_ BOPOMOFO}', "");
-    Expect(1, 12592, '\P{Is_Block=_ BOPOMOFO}', "");
-    Expect(0, 12592, '\P{^Is_Block=_ BOPOMOFO}', "");
-    Error('\p{Is_Blk=/a/--bopomofo}');
-    Error('\P{Is_Blk=/a/--bopomofo}');
-    Expect(1, 12591, '\p{Is_Blk:	bopomofo}', "");
-    Expect(0, 12591, '\p{^Is_Blk:	bopomofo}', "");
-    Expect(0, 12591, '\P{Is_Blk:	bopomofo}', "");
-    Expect(1, 12591, '\P{^Is_Blk:	bopomofo}', "");
-    Expect(0, 12592, '\p{Is_Blk:	bopomofo}', "");
-    Expect(1, 12592, '\p{^Is_Blk:	bopomofo}', "");
-    Expect(1, 12592, '\P{Is_Blk:	bopomofo}', "");
-    Expect(0, 12592, '\P{^Is_Blk:	bopomofo}', "");
-    Expect(1, 12591, '\p{Is_Blk=__Bopomofo}', "");
-    Expect(0, 12591, '\p{^Is_Blk=__Bopomofo}', "");
-    Expect(0, 12591, '\P{Is_Blk=__Bopomofo}', "");
-    Expect(1, 12591, '\P{^Is_Blk=__Bopomofo}', "");
-    Expect(0, 12592, '\p{Is_Blk=__Bopomofo}', "");
-    Expect(1, 12592, '\p{^Is_Blk=__Bopomofo}', "");
-    Expect(1, 12592, '\P{Is_Blk=__Bopomofo}', "");
-    Expect(0, 12592, '\P{^Is_Blk=__Bopomofo}', "");
-    Error('\p{Block=/a/- Bopomofo_Extended}');
-    Error('\P{Block=/a/- Bopomofo_Extended}');
+    Error('\p{Is_Block:	/a/Bopomofo}');
+    Error('\P{Is_Block:	/a/Bopomofo}');
+    Expect(1, 12591, '\p{Is_Block=bopomofo}', "");
+    Expect(0, 12591, '\p{^Is_Block=bopomofo}', "");
+    Expect(0, 12591, '\P{Is_Block=bopomofo}', "");
+    Expect(1, 12591, '\P{^Is_Block=bopomofo}', "");
+    Expect(0, 12592, '\p{Is_Block=bopomofo}', "");
+    Expect(1, 12592, '\p{^Is_Block=bopomofo}', "");
+    Expect(1, 12592, '\P{Is_Block=bopomofo}', "");
+    Expect(0, 12592, '\P{^Is_Block=bopomofo}', "");
+    Expect(1, 12591, '\p{Is_Block= _bopomofo}', "");
+    Expect(0, 12591, '\p{^Is_Block= _bopomofo}', "");
+    Expect(0, 12591, '\P{Is_Block= _bopomofo}', "");
+    Expect(1, 12591, '\P{^Is_Block= _bopomofo}', "");
+    Expect(0, 12592, '\p{Is_Block= _bopomofo}', "");
+    Expect(1, 12592, '\p{^Is_Block= _bopomofo}', "");
+    Expect(1, 12592, '\P{Is_Block= _bopomofo}', "");
+    Expect(0, 12592, '\P{^Is_Block= _bopomofo}', "");
+    Error('\p{Is_Blk=:=_-bopomofo}');
+    Error('\P{Is_Blk=:=_-bopomofo}');
+    Expect(1, 12591, '\p{Is_Blk=bopomofo}', "");
+    Expect(0, 12591, '\p{^Is_Blk=bopomofo}', "");
+    Expect(0, 12591, '\P{Is_Blk=bopomofo}', "");
+    Expect(1, 12591, '\P{^Is_Blk=bopomofo}', "");
+    Expect(0, 12592, '\p{Is_Blk=bopomofo}', "");
+    Expect(1, 12592, '\p{^Is_Blk=bopomofo}', "");
+    Expect(1, 12592, '\P{Is_Blk=bopomofo}', "");
+    Expect(0, 12592, '\P{^Is_Blk=bopomofo}', "");
+    Expect(1, 12591, '\p{Is_Blk=	_bopomofo}', "");
+    Expect(0, 12591, '\p{^Is_Blk=	_bopomofo}', "");
+    Expect(0, 12591, '\P{Is_Blk=	_bopomofo}', "");
+    Expect(1, 12591, '\P{^Is_Blk=	_bopomofo}', "");
+    Expect(0, 12592, '\p{Is_Blk=	_bopomofo}', "");
+    Expect(1, 12592, '\p{^Is_Blk=	_bopomofo}', "");
+    Expect(1, 12592, '\P{Is_Blk=	_bopomofo}', "");
+    Expect(0, 12592, '\P{^Is_Blk=	_bopomofo}', "");
+    Error('\p{Block=/a/bopomofo_EXTENDED}');
+    Error('\P{Block=/a/bopomofo_EXTENDED}');
     Expect(1, 12735, '\p{Block=:\ABopomofo_Extended\z:}', "");;
     Expect(0, 12736, '\p{Block=:\ABopomofo_Extended\z:}', "");;
     Expect(1, 12735, '\p{Block=bopomofoextended}', "");
@@ -6036,16 +6148,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12736, '\P{^Block=bopomofoextended}', "");
     Expect(1, 12735, '\p{Block=:\Abopomofoextended\z:}', "");;
     Expect(0, 12736, '\p{Block=:\Abopomofoextended\z:}', "");;
-    Expect(1, 12735, '\p{Block=-_Bopomofo_Extended}', "");
-    Expect(0, 12735, '\p{^Block=-_Bopomofo_Extended}', "");
-    Expect(0, 12735, '\P{Block=-_Bopomofo_Extended}', "");
-    Expect(1, 12735, '\P{^Block=-_Bopomofo_Extended}', "");
-    Expect(0, 12736, '\p{Block=-_Bopomofo_Extended}', "");
-    Expect(1, 12736, '\p{^Block=-_Bopomofo_Extended}', "");
-    Expect(1, 12736, '\P{Block=-_Bopomofo_Extended}', "");
-    Expect(0, 12736, '\P{^Block=-_Bopomofo_Extended}', "");
-    Error('\p{Blk=_-bopomofo_ext/a/}');
-    Error('\P{Blk=_-bopomofo_ext/a/}');
+    Expect(1, 12735, '\p{Block=-Bopomofo_Extended}', "");
+    Expect(0, 12735, '\p{^Block=-Bopomofo_Extended}', "");
+    Expect(0, 12735, '\P{Block=-Bopomofo_Extended}', "");
+    Expect(1, 12735, '\P{^Block=-Bopomofo_Extended}', "");
+    Expect(0, 12736, '\p{Block=-Bopomofo_Extended}', "");
+    Expect(1, 12736, '\p{^Block=-Bopomofo_Extended}', "");
+    Expect(1, 12736, '\P{Block=-Bopomofo_Extended}', "");
+    Expect(0, 12736, '\P{^Block=-Bopomofo_Extended}', "");
+    Error('\p{Blk:	_/a/bopomofo_ext}');
+    Error('\P{Blk:	_/a/bopomofo_ext}');
     Expect(1, 12735, '\p{Blk=:\ABopomofo_Ext\z:}', "");;
     Expect(0, 12736, '\p{Blk=:\ABopomofo_Ext\z:}', "");;
     Expect(1, 12735, '\p{Blk=bopomofoext}', "");
@@ -6058,34 +6170,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12736, '\P{^Blk=bopomofoext}', "");
     Expect(1, 12735, '\p{Blk=:\Abopomofoext\z:}', "");;
     Expect(0, 12736, '\p{Blk=:\Abopomofoext\z:}', "");;
-    Expect(1, 12735, '\p{Blk= Bopomofo_Ext}', "");
-    Expect(0, 12735, '\p{^Blk= Bopomofo_Ext}', "");
-    Expect(0, 12735, '\P{Blk= Bopomofo_Ext}', "");
-    Expect(1, 12735, '\P{^Blk= Bopomofo_Ext}', "");
-    Expect(0, 12736, '\p{Blk= Bopomofo_Ext}', "");
-    Expect(1, 12736, '\p{^Blk= Bopomofo_Ext}', "");
-    Expect(1, 12736, '\P{Blk= Bopomofo_Ext}', "");
-    Expect(0, 12736, '\P{^Blk= Bopomofo_Ext}', "");
-    Error('\p{Is_Block=:=-Bopomofo_Extended}');
-    Error('\P{Is_Block=:=-Bopomofo_Extended}');
-    Expect(1, 12735, '\p{Is_Block:	bopomofoextended}', "");
-    Expect(0, 12735, '\p{^Is_Block:	bopomofoextended}', "");
-    Expect(0, 12735, '\P{Is_Block:	bopomofoextended}', "");
-    Expect(1, 12735, '\P{^Is_Block:	bopomofoextended}', "");
-    Expect(0, 12736, '\p{Is_Block:	bopomofoextended}', "");
-    Expect(1, 12736, '\p{^Is_Block:	bopomofoextended}', "");
-    Expect(1, 12736, '\P{Is_Block:	bopomofoextended}', "");
-    Expect(0, 12736, '\P{^Is_Block:	bopomofoextended}', "");
-    Expect(1, 12735, '\p{Is_Block= _bopomofo_Extended}', "");
-    Expect(0, 12735, '\p{^Is_Block= _bopomofo_Extended}', "");
-    Expect(0, 12735, '\P{Is_Block= _bopomofo_Extended}', "");
-    Expect(1, 12735, '\P{^Is_Block= _bopomofo_Extended}', "");
-    Expect(0, 12736, '\p{Is_Block= _bopomofo_Extended}', "");
-    Expect(1, 12736, '\p{^Is_Block= _bopomofo_Extended}', "");
-    Expect(1, 12736, '\P{Is_Block= _bopomofo_Extended}', "");
-    Expect(0, 12736, '\P{^Is_Block= _bopomofo_Extended}', "");
-    Error('\p{Is_Blk=:=_bopomofo_ext}');
-    Error('\P{Is_Blk=:=_bopomofo_ext}');
+    Expect(1, 12735, '\p{Blk=_-Bopomofo_Ext}', "");
+    Expect(0, 12735, '\p{^Blk=_-Bopomofo_Ext}', "");
+    Expect(0, 12735, '\P{Blk=_-Bopomofo_Ext}', "");
+    Expect(1, 12735, '\P{^Blk=_-Bopomofo_Ext}', "");
+    Expect(0, 12736, '\p{Blk=_-Bopomofo_Ext}', "");
+    Expect(1, 12736, '\p{^Blk=_-Bopomofo_Ext}', "");
+    Expect(1, 12736, '\P{Blk=_-Bopomofo_Ext}', "");
+    Expect(0, 12736, '\P{^Blk=_-Bopomofo_Ext}', "");
+    Error('\p{Is_Block=:=Bopomofo_extended}');
+    Error('\P{Is_Block=:=Bopomofo_extended}');
+    Expect(1, 12735, '\p{Is_Block=bopomofoextended}', "");
+    Expect(0, 12735, '\p{^Is_Block=bopomofoextended}', "");
+    Expect(0, 12735, '\P{Is_Block=bopomofoextended}', "");
+    Expect(1, 12735, '\P{^Is_Block=bopomofoextended}', "");
+    Expect(0, 12736, '\p{Is_Block=bopomofoextended}', "");
+    Expect(1, 12736, '\p{^Is_Block=bopomofoextended}', "");
+    Expect(1, 12736, '\P{Is_Block=bopomofoextended}', "");
+    Expect(0, 12736, '\P{^Is_Block=bopomofoextended}', "");
+    Expect(1, 12735, '\p{Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(0, 12735, '\p{^Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(0, 12735, '\P{Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(1, 12735, '\P{^Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(0, 12736, '\p{Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(1, 12736, '\p{^Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(1, 12736, '\P{Is_Block=	_bopomofo_EXTENDED}', "");
+    Expect(0, 12736, '\P{^Is_Block=	_bopomofo_EXTENDED}', "");
+    Error('\p{Is_Blk=/a/-bopomofo_EXT}');
+    Error('\P{Is_Blk=/a/-bopomofo_EXT}');
     Expect(1, 12735, '\p{Is_Blk=bopomofoext}', "");
     Expect(0, 12735, '\p{^Is_Blk=bopomofoext}', "");
     Expect(0, 12735, '\P{Is_Blk=bopomofoext}', "");
@@ -6094,16 +6206,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12736, '\p{^Is_Blk=bopomofoext}', "");
     Expect(1, 12736, '\P{Is_Blk=bopomofoext}', "");
     Expect(0, 12736, '\P{^Is_Blk=bopomofoext}', "");
-    Expect(1, 12735, '\p{Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(0, 12735, '\p{^Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(0, 12735, '\P{Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(1, 12735, '\P{^Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(0, 12736, '\p{Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(1, 12736, '\p{^Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(1, 12736, '\P{Is_Blk=-BOPOMOFO_Ext}', "");
-    Expect(0, 12736, '\P{^Is_Blk=-BOPOMOFO_Ext}', "");
-    Error('\p{Block=/a/ 	Box_DRAWING}');
-    Error('\P{Block=/a/ 	Box_DRAWING}');
+    Expect(1, 12735, '\p{Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(0, 12735, '\p{^Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(0, 12735, '\P{Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(1, 12735, '\P{^Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(0, 12736, '\p{Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(1, 12736, '\p{^Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(1, 12736, '\P{Is_Blk=-	Bopomofo_Ext}', "");
+    Expect(0, 12736, '\P{^Is_Blk=-	Bopomofo_Ext}', "");
+    Error('\p{Block=:=-Box_drawing}');
+    Error('\P{Block=:=-Box_drawing}');
     Expect(1, 9599, '\p{Block=:\ABox_Drawing\z:}', "");;
     Expect(0, 9600, '\p{Block=:\ABox_Drawing\z:}', "");;
     Expect(1, 9599, '\p{Block=boxdrawing}', "");
@@ -6116,16 +6228,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9600, '\P{^Block=boxdrawing}', "");
     Expect(1, 9599, '\p{Block=:\Aboxdrawing\z:}', "");;
     Expect(0, 9600, '\p{Block=:\Aboxdrawing\z:}', "");;
-    Expect(1, 9599, '\p{Block=	Box_drawing}', "");
-    Expect(0, 9599, '\p{^Block=	Box_drawing}', "");
-    Expect(0, 9599, '\P{Block=	Box_drawing}', "");
-    Expect(1, 9599, '\P{^Block=	Box_drawing}', "");
-    Expect(0, 9600, '\p{Block=	Box_drawing}', "");
-    Expect(1, 9600, '\p{^Block=	Box_drawing}', "");
-    Expect(1, 9600, '\P{Block=	Box_drawing}', "");
-    Expect(0, 9600, '\P{^Block=	Box_drawing}', "");
-    Error('\p{Blk:-	Box_DRAWING/a/}');
-    Error('\P{Blk:-	Box_DRAWING/a/}');
+    Expect(1, 9599, '\p{Block=_-Box_Drawing}', "");
+    Expect(0, 9599, '\p{^Block=_-Box_Drawing}', "");
+    Expect(0, 9599, '\P{Block=_-Box_Drawing}', "");
+    Expect(1, 9599, '\P{^Block=_-Box_Drawing}', "");
+    Expect(0, 9600, '\p{Block=_-Box_Drawing}', "");
+    Expect(1, 9600, '\p{^Block=_-Box_Drawing}', "");
+    Expect(1, 9600, '\P{Block=_-Box_Drawing}', "");
+    Expect(0, 9600, '\P{^Block=_-Box_Drawing}', "");
+    Error('\p{Blk=:=_	Box_Drawing}');
+    Error('\P{Blk=:=_	Box_Drawing}');
     Expect(1, 9599, '\p{Blk=:\ABox_Drawing\z:}', "");;
     Expect(0, 9600, '\p{Blk=:\ABox_Drawing\z:}', "");;
     Expect(1, 9599, '\p{Blk=boxdrawing}', "");
@@ -6138,34 +6250,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9600, '\P{^Blk=boxdrawing}', "");
     Expect(1, 9599, '\p{Blk=:\Aboxdrawing\z:}', "");;
     Expect(0, 9600, '\p{Blk=:\Aboxdrawing\z:}', "");;
-    Expect(1, 9599, '\p{Blk=	-Box_DRAWING}', "");
-    Expect(0, 9599, '\p{^Blk=	-Box_DRAWING}', "");
-    Expect(0, 9599, '\P{Blk=	-Box_DRAWING}', "");
-    Expect(1, 9599, '\P{^Blk=	-Box_DRAWING}', "");
-    Expect(0, 9600, '\p{Blk=	-Box_DRAWING}', "");
-    Expect(1, 9600, '\p{^Blk=	-Box_DRAWING}', "");
-    Expect(1, 9600, '\P{Blk=	-Box_DRAWING}', "");
-    Expect(0, 9600, '\P{^Blk=	-Box_DRAWING}', "");
-    Error('\p{Is_Block=:=	_BOX_drawing}');
-    Error('\P{Is_Block=:=	_BOX_drawing}');
-    Expect(1, 9599, '\p{Is_Block=boxdrawing}', "");
-    Expect(0, 9599, '\p{^Is_Block=boxdrawing}', "");
-    Expect(0, 9599, '\P{Is_Block=boxdrawing}', "");
-    Expect(1, 9599, '\P{^Is_Block=boxdrawing}', "");
-    Expect(0, 9600, '\p{Is_Block=boxdrawing}', "");
-    Expect(1, 9600, '\p{^Is_Block=boxdrawing}', "");
-    Expect(1, 9600, '\P{Is_Block=boxdrawing}', "");
-    Expect(0, 9600, '\P{^Is_Block=boxdrawing}', "");
-    Expect(1, 9599, '\p{Is_Block:-box_Drawing}', "");
-    Expect(0, 9599, '\p{^Is_Block:-box_Drawing}', "");
-    Expect(0, 9599, '\P{Is_Block:-box_Drawing}', "");
-    Expect(1, 9599, '\P{^Is_Block:-box_Drawing}', "");
-    Expect(0, 9600, '\p{Is_Block:-box_Drawing}', "");
-    Expect(1, 9600, '\p{^Is_Block:-box_Drawing}', "");
-    Expect(1, 9600, '\P{Is_Block:-box_Drawing}', "");
-    Expect(0, 9600, '\P{^Is_Block:-box_Drawing}', "");
-    Error('\p{Is_Blk=/a/-_box_Drawing}');
-    Error('\P{Is_Blk=/a/-_box_Drawing}');
+    Expect(1, 9599, '\p{Blk=-Box_DRAWING}', "");
+    Expect(0, 9599, '\p{^Blk=-Box_DRAWING}', "");
+    Expect(0, 9599, '\P{Blk=-Box_DRAWING}', "");
+    Expect(1, 9599, '\P{^Blk=-Box_DRAWING}', "");
+    Expect(0, 9600, '\p{Blk=-Box_DRAWING}', "");
+    Expect(1, 9600, '\p{^Blk=-Box_DRAWING}', "");
+    Expect(1, 9600, '\P{Blk=-Box_DRAWING}', "");
+    Expect(0, 9600, '\P{^Blk=-Box_DRAWING}', "");
+    Error('\p{Is_Block=	:=Box_drawing}');
+    Error('\P{Is_Block=	:=Box_drawing}');
+    Expect(1, 9599, '\p{Is_Block:   boxdrawing}', "");
+    Expect(0, 9599, '\p{^Is_Block:   boxdrawing}', "");
+    Expect(0, 9599, '\P{Is_Block:   boxdrawing}', "");
+    Expect(1, 9599, '\P{^Is_Block:   boxdrawing}', "");
+    Expect(0, 9600, '\p{Is_Block:   boxdrawing}', "");
+    Expect(1, 9600, '\p{^Is_Block:   boxdrawing}', "");
+    Expect(1, 9600, '\P{Is_Block:   boxdrawing}', "");
+    Expect(0, 9600, '\P{^Is_Block:   boxdrawing}', "");
+    Expect(1, 9599, '\p{Is_Block:  -box_Drawing}', "");
+    Expect(0, 9599, '\p{^Is_Block:  -box_Drawing}', "");
+    Expect(0, 9599, '\P{Is_Block:  -box_Drawing}', "");
+    Expect(1, 9599, '\P{^Is_Block:  -box_Drawing}', "");
+    Expect(0, 9600, '\p{Is_Block:  -box_Drawing}', "");
+    Expect(1, 9600, '\p{^Is_Block:  -box_Drawing}', "");
+    Expect(1, 9600, '\P{Is_Block:  -box_Drawing}', "");
+    Expect(0, 9600, '\P{^Is_Block:  -box_Drawing}', "");
+    Error('\p{Is_Blk=_ BOX_drawing:=}');
+    Error('\P{Is_Blk=_ BOX_drawing:=}');
     Expect(1, 9599, '\p{Is_Blk=boxdrawing}', "");
     Expect(0, 9599, '\p{^Is_Blk=boxdrawing}', "");
     Expect(0, 9599, '\P{Is_Blk=boxdrawing}', "");
@@ -6174,16 +6286,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9600, '\p{^Is_Blk=boxdrawing}', "");
     Expect(1, 9600, '\P{Is_Blk=boxdrawing}', "");
     Expect(0, 9600, '\P{^Is_Blk=boxdrawing}', "");
-    Expect(1, 9599, '\p{Is_Blk=  Box_Drawing}', "");
-    Expect(0, 9599, '\p{^Is_Blk=  Box_Drawing}', "");
-    Expect(0, 9599, '\P{Is_Blk=  Box_Drawing}', "");
-    Expect(1, 9599, '\P{^Is_Blk=  Box_Drawing}', "");
-    Expect(0, 9600, '\p{Is_Blk=  Box_Drawing}', "");
-    Expect(1, 9600, '\p{^Is_Blk=  Box_Drawing}', "");
-    Expect(1, 9600, '\P{Is_Blk=  Box_Drawing}', "");
-    Expect(0, 9600, '\P{^Is_Blk=  Box_Drawing}', "");
-    Error('\p{Block=/a/-Brahmi}');
-    Error('\P{Block=/a/-Brahmi}');
+    Expect(1, 9599, '\p{Is_Blk=-_box_DRAWING}', "");
+    Expect(0, 9599, '\p{^Is_Blk=-_box_DRAWING}', "");
+    Expect(0, 9599, '\P{Is_Blk=-_box_DRAWING}', "");
+    Expect(1, 9599, '\P{^Is_Blk=-_box_DRAWING}', "");
+    Expect(0, 9600, '\p{Is_Blk=-_box_DRAWING}', "");
+    Expect(1, 9600, '\p{^Is_Blk=-_box_DRAWING}', "");
+    Expect(1, 9600, '\P{Is_Blk=-_box_DRAWING}', "");
+    Expect(0, 9600, '\P{^Is_Blk=-_box_DRAWING}', "");
+    Error('\p{Block=_:=BRAHMI}');
+    Error('\P{Block=_:=BRAHMI}');
     Expect(1, 69759, '\p{Block=:\ABrahmi\z:}', "");;
     Expect(0, 69760, '\p{Block=:\ABrahmi\z:}', "");;
     Expect(1, 69759, '\p{Block=brahmi}', "");
@@ -6196,38 +6308,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69760, '\P{^Block=brahmi}', "");
     Expect(1, 69759, '\p{Block=:\Abrahmi\z:}', "");;
     Expect(0, 69760, '\p{Block=:\Abrahmi\z:}', "");;
-    Expect(1, 69759, '\p{Block:   -brahmi}', "");
-    Expect(0, 69759, '\p{^Block:   -brahmi}', "");
-    Expect(0, 69759, '\P{Block:   -brahmi}', "");
-    Expect(1, 69759, '\P{^Block:   -brahmi}', "");
-    Expect(0, 69760, '\p{Block:   -brahmi}', "");
-    Expect(1, 69760, '\p{^Block:   -brahmi}', "");
-    Expect(1, 69760, '\P{Block:   -brahmi}', "");
-    Expect(0, 69760, '\P{^Block:   -brahmi}', "");
-    Error('\p{Blk= _Brahmi/a/}');
-    Error('\P{Blk= _Brahmi/a/}');
+    Expect(1, 69759, '\p{Block=_	brahmi}', "");
+    Expect(0, 69759, '\p{^Block=_	brahmi}', "");
+    Expect(0, 69759, '\P{Block=_	brahmi}', "");
+    Expect(1, 69759, '\P{^Block=_	brahmi}', "");
+    Expect(0, 69760, '\p{Block=_	brahmi}', "");
+    Expect(1, 69760, '\p{^Block=_	brahmi}', "");
+    Expect(1, 69760, '\P{Block=_	brahmi}', "");
+    Expect(0, 69760, '\P{^Block=_	brahmi}', "");
+    Error('\p{Blk=-:=Brahmi}');
+    Error('\P{Blk=-:=Brahmi}');
     Expect(1, 69759, '\p{Blk=:\ABrahmi\z:}', "");;
     Expect(0, 69760, '\p{Blk=:\ABrahmi\z:}', "");;
-    Expect(1, 69759, '\p{Blk=brahmi}', "");
-    Expect(0, 69759, '\p{^Blk=brahmi}', "");
-    Expect(0, 69759, '\P{Blk=brahmi}', "");
-    Expect(1, 69759, '\P{^Blk=brahmi}', "");
-    Expect(0, 69760, '\p{Blk=brahmi}', "");
-    Expect(1, 69760, '\p{^Blk=brahmi}', "");
-    Expect(1, 69760, '\P{Blk=brahmi}', "");
-    Expect(0, 69760, '\P{^Blk=brahmi}', "");
+    Expect(1, 69759, '\p{Blk:brahmi}', "");
+    Expect(0, 69759, '\p{^Blk:brahmi}', "");
+    Expect(0, 69759, '\P{Blk:brahmi}', "");
+    Expect(1, 69759, '\P{^Blk:brahmi}', "");
+    Expect(0, 69760, '\p{Blk:brahmi}', "");
+    Expect(1, 69760, '\p{^Blk:brahmi}', "");
+    Expect(1, 69760, '\P{Blk:brahmi}', "");
+    Expect(0, 69760, '\P{^Blk:brahmi}', "");
     Expect(1, 69759, '\p{Blk=:\Abrahmi\z:}', "");;
     Expect(0, 69760, '\p{Blk=:\Abrahmi\z:}', "");;
-    Expect(1, 69759, '\p{Blk: --brahmi}', "");
-    Expect(0, 69759, '\p{^Blk: --brahmi}', "");
-    Expect(0, 69759, '\P{Blk: --brahmi}', "");
-    Expect(1, 69759, '\P{^Blk: --brahmi}', "");
-    Expect(0, 69760, '\p{Blk: --brahmi}', "");
-    Expect(1, 69760, '\p{^Blk: --brahmi}', "");
-    Expect(1, 69760, '\P{Blk: --brahmi}', "");
-    Expect(0, 69760, '\P{^Blk: --brahmi}', "");
-    Error('\p{Is_Block=:=brahmi}');
-    Error('\P{Is_Block=:=brahmi}');
+    Expect(1, 69759, '\p{Blk=--Brahmi}', "");
+    Expect(0, 69759, '\p{^Blk=--Brahmi}', "");
+    Expect(0, 69759, '\P{Blk=--Brahmi}', "");
+    Expect(1, 69759, '\P{^Blk=--Brahmi}', "");
+    Expect(0, 69760, '\p{Blk=--Brahmi}', "");
+    Expect(1, 69760, '\p{^Blk=--Brahmi}', "");
+    Expect(1, 69760, '\P{Blk=--Brahmi}', "");
+    Expect(0, 69760, '\P{^Blk=--Brahmi}', "");
+    Error('\p{Is_Block=_:=BRAHMI}');
+    Error('\P{Is_Block=_:=BRAHMI}');
     Expect(1, 69759, '\p{Is_Block=brahmi}', "");
     Expect(0, 69759, '\p{^Is_Block=brahmi}', "");
     Expect(0, 69759, '\P{Is_Block=brahmi}', "");
@@ -6236,16 +6348,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69760, '\p{^Is_Block=brahmi}', "");
     Expect(1, 69760, '\P{Is_Block=brahmi}', "");
     Expect(0, 69760, '\P{^Is_Block=brahmi}', "");
-    Expect(1, 69759, '\p{Is_Block=_brahmi}', "");
-    Expect(0, 69759, '\p{^Is_Block=_brahmi}', "");
-    Expect(0, 69759, '\P{Is_Block=_brahmi}', "");
-    Expect(1, 69759, '\P{^Is_Block=_brahmi}', "");
-    Expect(0, 69760, '\p{Is_Block=_brahmi}', "");
-    Expect(1, 69760, '\p{^Is_Block=_brahmi}', "");
-    Expect(1, 69760, '\P{Is_Block=_brahmi}', "");
-    Expect(0, 69760, '\P{^Is_Block=_brahmi}', "");
-    Error('\p{Is_Blk=:=-brahmi}');
-    Error('\P{Is_Blk=:=-brahmi}');
+    Expect(1, 69759, '\p{Is_Block=_Brahmi}', "");
+    Expect(0, 69759, '\p{^Is_Block=_Brahmi}', "");
+    Expect(0, 69759, '\P{Is_Block=_Brahmi}', "");
+    Expect(1, 69759, '\P{^Is_Block=_Brahmi}', "");
+    Expect(0, 69760, '\p{Is_Block=_Brahmi}', "");
+    Expect(1, 69760, '\p{^Is_Block=_Brahmi}', "");
+    Expect(1, 69760, '\P{Is_Block=_Brahmi}', "");
+    Expect(0, 69760, '\P{^Is_Block=_Brahmi}', "");
+    Error('\p{Is_Blk=:=Brahmi}');
+    Error('\P{Is_Blk=:=Brahmi}');
     Expect(1, 69759, '\p{Is_Blk=brahmi}', "");
     Expect(0, 69759, '\p{^Is_Blk=brahmi}', "");
     Expect(0, 69759, '\P{Is_Blk=brahmi}', "");
@@ -6254,16 +6366,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69760, '\p{^Is_Blk=brahmi}', "");
     Expect(1, 69760, '\P{Is_Blk=brahmi}', "");
     Expect(0, 69760, '\P{^Is_Blk=brahmi}', "");
-    Expect(1, 69759, '\p{Is_Blk=-	Brahmi}', "");
-    Expect(0, 69759, '\p{^Is_Blk=-	Brahmi}', "");
-    Expect(0, 69759, '\P{Is_Blk=-	Brahmi}', "");
-    Expect(1, 69759, '\P{^Is_Blk=-	Brahmi}', "");
-    Expect(0, 69760, '\p{Is_Blk=-	Brahmi}', "");
-    Expect(1, 69760, '\p{^Is_Blk=-	Brahmi}', "");
-    Expect(1, 69760, '\P{Is_Blk=-	Brahmi}', "");
-    Expect(0, 69760, '\P{^Is_Blk=-	Brahmi}', "");
-    Error('\p{Block=-_Braille_Patterns:=}');
-    Error('\P{Block=-_Braille_Patterns:=}');
+    Error('\p{Block=-:=braille_Patterns}');
+    Error('\P{Block=-:=braille_Patterns}');
     Expect(1, 10495, '\p{Block=:\ABraille_Patterns\z:}', "");;
     Expect(0, 10496, '\p{Block=:\ABraille_Patterns\z:}', "");;
     Expect(1, 10495, '\p{Block=braillepatterns}', "");
@@ -6276,16 +6380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10496, '\P{^Block=braillepatterns}', "");
     Expect(1, 10495, '\p{Block=:\Abraillepatterns\z:}', "");;
     Expect(0, 10496, '\p{Block=:\Abraillepatterns\z:}', "");;
-    Expect(1, 10495, '\p{Block= Braille_Patterns}', "");
-    Expect(0, 10495, '\p{^Block= Braille_Patterns}', "");
-    Expect(0, 10495, '\P{Block= Braille_Patterns}', "");
-    Expect(1, 10495, '\P{^Block= Braille_Patterns}', "");
-    Expect(0, 10496, '\p{Block= Braille_Patterns}', "");
-    Expect(1, 10496, '\p{^Block= Braille_Patterns}', "");
-    Expect(1, 10496, '\P{Block= Braille_Patterns}', "");
-    Expect(0, 10496, '\P{^Block= Braille_Patterns}', "");
-    Error('\p{Blk=:=		BRAILLE}');
-    Error('\P{Blk=:=		BRAILLE}');
+    Expect(1, 10495, '\p{Block=	Braille_PATTERNS}', "");
+    Expect(0, 10495, '\p{^Block=	Braille_PATTERNS}', "");
+    Expect(0, 10495, '\P{Block=	Braille_PATTERNS}', "");
+    Expect(1, 10495, '\P{^Block=	Braille_PATTERNS}', "");
+    Expect(0, 10496, '\p{Block=	Braille_PATTERNS}', "");
+    Expect(1, 10496, '\p{^Block=	Braille_PATTERNS}', "");
+    Expect(1, 10496, '\P{Block=	Braille_PATTERNS}', "");
+    Expect(0, 10496, '\P{^Block=	Braille_PATTERNS}', "");
+    Error('\p{Blk=:=		braille}');
+    Error('\P{Blk=:=		braille}');
     Expect(1, 10495, '\p{Blk=:\ABraille\z:}', "");;
     Expect(0, 10496, '\p{Blk=:\ABraille\z:}', "");;
     Expect(1, 10495, '\p{Blk=braille}', "");
@@ -6298,16 +6402,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10496, '\P{^Blk=braille}', "");
     Expect(1, 10495, '\p{Blk=:\Abraille\z:}', "");;
     Expect(0, 10496, '\p{Blk=:\Abraille\z:}', "");;
-    Expect(1, 10495, '\p{Blk=	Braille}', "");
-    Expect(0, 10495, '\p{^Blk=	Braille}', "");
-    Expect(0, 10495, '\P{Blk=	Braille}', "");
-    Expect(1, 10495, '\P{^Blk=	Braille}', "");
-    Expect(0, 10496, '\p{Blk=	Braille}', "");
-    Expect(1, 10496, '\p{^Blk=	Braille}', "");
-    Expect(1, 10496, '\P{Blk=	Braille}', "");
-    Expect(0, 10496, '\P{^Blk=	Braille}', "");
-    Error('\p{Is_Block=-:=Braille_PATTERNS}');
-    Error('\P{Is_Block=-:=Braille_PATTERNS}');
+    Expect(1, 10495, '\p{Blk=		BRAILLE}', "");
+    Expect(0, 10495, '\p{^Blk=		BRAILLE}', "");
+    Expect(0, 10495, '\P{Blk=		BRAILLE}', "");
+    Expect(1, 10495, '\P{^Blk=		BRAILLE}', "");
+    Expect(0, 10496, '\p{Blk=		BRAILLE}', "");
+    Expect(1, 10496, '\p{^Blk=		BRAILLE}', "");
+    Expect(1, 10496, '\P{Blk=		BRAILLE}', "");
+    Expect(0, 10496, '\P{^Blk=		BRAILLE}', "");
+    Error('\p{Is_Block=_	braille_Patterns:=}');
+    Error('\P{Is_Block=_	braille_Patterns:=}');
     Expect(1, 10495, '\p{Is_Block=braillepatterns}', "");
     Expect(0, 10495, '\p{^Is_Block=braillepatterns}', "");
     Expect(0, 10495, '\P{Is_Block=braillepatterns}', "");
@@ -6316,16 +6420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10496, '\p{^Is_Block=braillepatterns}', "");
     Expect(1, 10496, '\P{Is_Block=braillepatterns}', "");
     Expect(0, 10496, '\P{^Is_Block=braillepatterns}', "");
-    Expect(1, 10495, '\p{Is_Block=BRAILLE_Patterns}', "");
-    Expect(0, 10495, '\p{^Is_Block=BRAILLE_Patterns}', "");
-    Expect(0, 10495, '\P{Is_Block=BRAILLE_Patterns}', "");
-    Expect(1, 10495, '\P{^Is_Block=BRAILLE_Patterns}', "");
-    Expect(0, 10496, '\p{Is_Block=BRAILLE_Patterns}', "");
-    Expect(1, 10496, '\p{^Is_Block=BRAILLE_Patterns}', "");
-    Expect(1, 10496, '\P{Is_Block=BRAILLE_Patterns}', "");
-    Expect(0, 10496, '\P{^Is_Block=BRAILLE_Patterns}', "");
-    Error('\p{Is_Blk:  :=Braille}');
-    Error('\P{Is_Blk:  :=Braille}');
+    Expect(1, 10495, '\p{Is_Block=braille_PATTERNS}', "");
+    Expect(0, 10495, '\p{^Is_Block=braille_PATTERNS}', "");
+    Expect(0, 10495, '\P{Is_Block=braille_PATTERNS}', "");
+    Expect(1, 10495, '\P{^Is_Block=braille_PATTERNS}', "");
+    Expect(0, 10496, '\p{Is_Block=braille_PATTERNS}', "");
+    Expect(1, 10496, '\p{^Is_Block=braille_PATTERNS}', "");
+    Expect(1, 10496, '\P{Is_Block=braille_PATTERNS}', "");
+    Expect(0, 10496, '\P{^Is_Block=braille_PATTERNS}', "");
+    Error('\p{Is_Blk=_/a/Braille}');
+    Error('\P{Is_Blk=_/a/Braille}');
     Expect(1, 10495, '\p{Is_Blk=braille}', "");
     Expect(0, 10495, '\p{^Is_Blk=braille}', "");
     Expect(0, 10495, '\P{Is_Blk=braille}', "");
@@ -6334,16 +6438,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10496, '\p{^Is_Blk=braille}', "");
     Expect(1, 10496, '\P{Is_Blk=braille}', "");
     Expect(0, 10496, '\P{^Is_Blk=braille}', "");
-    Expect(1, 10495, '\p{Is_Blk=-_Braille}', "");
-    Expect(0, 10495, '\p{^Is_Blk=-_Braille}', "");
-    Expect(0, 10495, '\P{Is_Blk=-_Braille}', "");
-    Expect(1, 10495, '\P{^Is_Blk=-_Braille}', "");
-    Expect(0, 10496, '\p{Is_Blk=-_Braille}', "");
-    Expect(1, 10496, '\p{^Is_Blk=-_Braille}', "");
-    Expect(1, 10496, '\P{Is_Blk=-_Braille}', "");
-    Expect(0, 10496, '\P{^Is_Blk=-_Braille}', "");
-    Error('\p{Block=:=Buginese}');
-    Error('\P{Block=:=Buginese}');
+    Expect(1, 10495, '\p{Is_Blk=_-BRAILLE}', "");
+    Expect(0, 10495, '\p{^Is_Blk=_-BRAILLE}', "");
+    Expect(0, 10495, '\P{Is_Blk=_-BRAILLE}', "");
+    Expect(1, 10495, '\P{^Is_Blk=_-BRAILLE}', "");
+    Expect(0, 10496, '\p{Is_Blk=_-BRAILLE}', "");
+    Expect(1, 10496, '\p{^Is_Blk=_-BRAILLE}', "");
+    Expect(1, 10496, '\P{Is_Blk=_-BRAILLE}', "");
+    Expect(0, 10496, '\P{^Is_Blk=_-BRAILLE}', "");
+    Error('\p{Block=_:=BUGINESE}');
+    Error('\P{Block=_:=BUGINESE}');
     Expect(1, 6687, '\p{Block=:\ABuginese\z:}', "");;
     Expect(0, 6688, '\p{Block=:\ABuginese\z:}', "");;
     Expect(1, 6687, '\p{Block=buginese}', "");
@@ -6356,16 +6460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6688, '\P{^Block=buginese}', "");
     Expect(1, 6687, '\p{Block=:\Abuginese\z:}', "");;
     Expect(0, 6688, '\p{Block=:\Abuginese\z:}', "");;
-    Expect(1, 6687, '\p{Block: buginese}', "");
-    Expect(0, 6687, '\p{^Block: buginese}', "");
-    Expect(0, 6687, '\P{Block: buginese}', "");
-    Expect(1, 6687, '\P{^Block: buginese}', "");
-    Expect(0, 6688, '\p{Block: buginese}', "");
-    Expect(1, 6688, '\p{^Block: buginese}', "");
-    Expect(1, 6688, '\P{Block: buginese}', "");
-    Expect(0, 6688, '\P{^Block: buginese}', "");
-    Error('\p{Blk=/a/	Buginese}');
-    Error('\P{Blk=/a/	Buginese}');
+    Expect(1, 6687, '\p{Block: _	Buginese}', "");
+    Expect(0, 6687, '\p{^Block: _	Buginese}', "");
+    Expect(0, 6687, '\P{Block: _	Buginese}', "");
+    Expect(1, 6687, '\P{^Block: _	Buginese}', "");
+    Expect(0, 6688, '\p{Block: _	Buginese}', "");
+    Expect(1, 6688, '\p{^Block: _	Buginese}', "");
+    Expect(1, 6688, '\P{Block: _	Buginese}', "");
+    Expect(0, 6688, '\P{^Block: _	Buginese}', "");
+    Error('\p{Blk=-/a/BUGINESE}');
+    Error('\P{Blk=-/a/BUGINESE}');
     Expect(1, 6687, '\p{Blk=:\ABuginese\z:}', "");;
     Expect(0, 6688, '\p{Blk=:\ABuginese\z:}', "");;
     Expect(1, 6687, '\p{Blk=buginese}', "");
@@ -6378,16 +6482,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6688, '\P{^Blk=buginese}', "");
     Expect(1, 6687, '\p{Blk=:\Abuginese\z:}', "");;
     Expect(0, 6688, '\p{Blk=:\Abuginese\z:}', "");;
-    Expect(1, 6687, '\p{Blk:   	 Buginese}', "");
-    Expect(0, 6687, '\p{^Blk:   	 Buginese}', "");
-    Expect(0, 6687, '\P{Blk:   	 Buginese}', "");
-    Expect(1, 6687, '\P{^Blk:   	 Buginese}', "");
-    Expect(0, 6688, '\p{Blk:   	 Buginese}', "");
-    Expect(1, 6688, '\p{^Blk:   	 Buginese}', "");
-    Expect(1, 6688, '\P{Blk:   	 Buginese}', "");
-    Expect(0, 6688, '\P{^Blk:   	 Buginese}', "");
-    Error('\p{Is_Block= Buginese:=}');
-    Error('\P{Is_Block= Buginese:=}');
+    Expect(1, 6687, '\p{Blk:BUGINESE}', "");
+    Expect(0, 6687, '\p{^Blk:BUGINESE}', "");
+    Expect(0, 6687, '\P{Blk:BUGINESE}', "");
+    Expect(1, 6687, '\P{^Blk:BUGINESE}', "");
+    Expect(0, 6688, '\p{Blk:BUGINESE}', "");
+    Expect(1, 6688, '\p{^Blk:BUGINESE}', "");
+    Expect(1, 6688, '\P{Blk:BUGINESE}', "");
+    Expect(0, 6688, '\P{^Blk:BUGINESE}', "");
+    Error('\p{Is_Block: Buginese:=}');
+    Error('\P{Is_Block: Buginese:=}');
     Expect(1, 6687, '\p{Is_Block=buginese}', "");
     Expect(0, 6687, '\p{^Is_Block=buginese}', "");
     Expect(0, 6687, '\P{Is_Block=buginese}', "");
@@ -6396,16 +6500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6688, '\p{^Is_Block=buginese}', "");
     Expect(1, 6688, '\P{Is_Block=buginese}', "");
     Expect(0, 6688, '\P{^Is_Block=buginese}', "");
-    Expect(1, 6687, '\p{Is_Block=	-Buginese}', "");
-    Expect(0, 6687, '\p{^Is_Block=	-Buginese}', "");
-    Expect(0, 6687, '\P{Is_Block=	-Buginese}', "");
-    Expect(1, 6687, '\P{^Is_Block=	-Buginese}', "");
-    Expect(0, 6688, '\p{Is_Block=	-Buginese}', "");
-    Expect(1, 6688, '\p{^Is_Block=	-Buginese}', "");
-    Expect(1, 6688, '\P{Is_Block=	-Buginese}', "");
-    Expect(0, 6688, '\P{^Is_Block=	-Buginese}', "");
-    Error('\p{Is_Blk=-:=buginese}');
-    Error('\P{Is_Blk=-:=buginese}');
+    Expect(1, 6687, '\p{Is_Block=_-BUGINESE}', "");
+    Expect(0, 6687, '\p{^Is_Block=_-BUGINESE}', "");
+    Expect(0, 6687, '\P{Is_Block=_-BUGINESE}', "");
+    Expect(1, 6687, '\P{^Is_Block=_-BUGINESE}', "");
+    Expect(0, 6688, '\p{Is_Block=_-BUGINESE}', "");
+    Expect(1, 6688, '\p{^Is_Block=_-BUGINESE}', "");
+    Expect(1, 6688, '\P{Is_Block=_-BUGINESE}', "");
+    Expect(0, 6688, '\P{^Is_Block=_-BUGINESE}', "");
+    Error('\p{Is_Blk: /a/		Buginese}');
+    Error('\P{Is_Blk: /a/		Buginese}');
     Expect(1, 6687, '\p{Is_Blk=buginese}', "");
     Expect(0, 6687, '\p{^Is_Blk=buginese}', "");
     Expect(0, 6687, '\P{Is_Blk=buginese}', "");
@@ -6414,16 +6518,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6688, '\p{^Is_Blk=buginese}', "");
     Expect(1, 6688, '\P{Is_Blk=buginese}', "");
     Expect(0, 6688, '\P{^Is_Blk=buginese}', "");
-    Expect(1, 6687, '\p{Is_Blk=_-Buginese}', "");
-    Expect(0, 6687, '\p{^Is_Blk=_-Buginese}', "");
-    Expect(0, 6687, '\P{Is_Blk=_-Buginese}', "");
-    Expect(1, 6687, '\P{^Is_Blk=_-Buginese}', "");
-    Expect(0, 6688, '\p{Is_Blk=_-Buginese}', "");
-    Expect(1, 6688, '\p{^Is_Blk=_-Buginese}', "");
-    Expect(1, 6688, '\P{Is_Blk=_-Buginese}', "");
-    Expect(0, 6688, '\P{^Is_Blk=_-Buginese}', "");
-    Error('\p{Block=/a/	-Buhid}');
-    Error('\P{Block=/a/	-Buhid}');
+    Expect(1, 6687, '\p{Is_Blk= 	buginese}', "");
+    Expect(0, 6687, '\p{^Is_Blk= 	buginese}', "");
+    Expect(0, 6687, '\P{Is_Blk= 	buginese}', "");
+    Expect(1, 6687, '\P{^Is_Blk= 	buginese}', "");
+    Expect(0, 6688, '\p{Is_Blk= 	buginese}', "");
+    Expect(1, 6688, '\p{^Is_Blk= 	buginese}', "");
+    Expect(1, 6688, '\P{Is_Blk= 	buginese}', "");
+    Expect(0, 6688, '\P{^Is_Blk= 	buginese}', "");
+    Error('\p{Block= buhid:=}');
+    Error('\P{Block= buhid:=}');
     Expect(1, 5983, '\p{Block=:\ABuhid\z:}', "");;
     Expect(0, 5984, '\p{Block=:\ABuhid\z:}', "");;
     Expect(1, 5983, '\p{Block=buhid}', "");
@@ -6436,16 +6540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5984, '\P{^Block=buhid}', "");
     Expect(1, 5983, '\p{Block=:\Abuhid\z:}', "");;
     Expect(0, 5984, '\p{Block=:\Abuhid\z:}', "");;
-    Expect(1, 5983, '\p{Block=_	BUHID}', "");
-    Expect(0, 5983, '\p{^Block=_	BUHID}', "");
-    Expect(0, 5983, '\P{Block=_	BUHID}', "");
-    Expect(1, 5983, '\P{^Block=_	BUHID}', "");
-    Expect(0, 5984, '\p{Block=_	BUHID}', "");
-    Expect(1, 5984, '\p{^Block=_	BUHID}', "");
-    Expect(1, 5984, '\P{Block=_	BUHID}', "");
-    Expect(0, 5984, '\P{^Block=_	BUHID}', "");
-    Error('\p{Blk=_:=Buhid}');
-    Error('\P{Blk=_:=Buhid}');
+    Expect(1, 5983, '\p{Block=BUHID}', "");
+    Expect(0, 5983, '\p{^Block=BUHID}', "");
+    Expect(0, 5983, '\P{Block=BUHID}', "");
+    Expect(1, 5983, '\P{^Block=BUHID}', "");
+    Expect(0, 5984, '\p{Block=BUHID}', "");
+    Expect(1, 5984, '\p{^Block=BUHID}', "");
+    Expect(1, 5984, '\P{Block=BUHID}', "");
+    Expect(0, 5984, '\P{^Block=BUHID}', "");
+    Error('\p{Blk= :=buhid}');
+    Error('\P{Blk= :=buhid}');
     Expect(1, 5983, '\p{Blk=:\ABuhid\z:}', "");;
     Expect(0, 5984, '\p{Blk=:\ABuhid\z:}', "");;
     Expect(1, 5983, '\p{Blk=buhid}', "");
@@ -6458,16 +6562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5984, '\P{^Blk=buhid}', "");
     Expect(1, 5983, '\p{Blk=:\Abuhid\z:}', "");;
     Expect(0, 5984, '\p{Blk=:\Abuhid\z:}', "");;
-    Expect(1, 5983, '\p{Blk=_	Buhid}', "");
-    Expect(0, 5983, '\p{^Blk=_	Buhid}', "");
-    Expect(0, 5983, '\P{Blk=_	Buhid}', "");
-    Expect(1, 5983, '\P{^Blk=_	Buhid}', "");
-    Expect(0, 5984, '\p{Blk=_	Buhid}', "");
-    Expect(1, 5984, '\p{^Blk=_	Buhid}', "");
-    Expect(1, 5984, '\P{Blk=_	Buhid}', "");
-    Expect(0, 5984, '\P{^Blk=_	Buhid}', "");
-    Error('\p{Is_Block=_:=buhid}');
-    Error('\P{Is_Block=_:=buhid}');
+    Expect(1, 5983, '\p{Blk: _BUHID}', "");
+    Expect(0, 5983, '\p{^Blk: _BUHID}', "");
+    Expect(0, 5983, '\P{Blk: _BUHID}', "");
+    Expect(1, 5983, '\P{^Blk: _BUHID}', "");
+    Expect(0, 5984, '\p{Blk: _BUHID}', "");
+    Expect(1, 5984, '\p{^Blk: _BUHID}', "");
+    Expect(1, 5984, '\P{Blk: _BUHID}', "");
+    Expect(0, 5984, '\P{^Blk: _BUHID}', "");
+    Error('\p{Is_Block: :=_-buhid}');
+    Error('\P{Is_Block: :=_-buhid}');
     Expect(1, 5983, '\p{Is_Block=buhid}', "");
     Expect(0, 5983, '\p{^Is_Block=buhid}', "");
     Expect(0, 5983, '\P{Is_Block=buhid}', "");
@@ -6476,16 +6580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5984, '\p{^Is_Block=buhid}', "");
     Expect(1, 5984, '\P{Is_Block=buhid}', "");
     Expect(0, 5984, '\P{^Is_Block=buhid}', "");
-    Expect(1, 5983, '\p{Is_Block=-_BUHID}', "");
-    Expect(0, 5983, '\p{^Is_Block=-_BUHID}', "");
-    Expect(0, 5983, '\P{Is_Block=-_BUHID}', "");
-    Expect(1, 5983, '\P{^Is_Block=-_BUHID}', "");
-    Expect(0, 5984, '\p{Is_Block=-_BUHID}', "");
-    Expect(1, 5984, '\p{^Is_Block=-_BUHID}', "");
-    Expect(1, 5984, '\P{Is_Block=-_BUHID}', "");
-    Expect(0, 5984, '\P{^Is_Block=-_BUHID}', "");
-    Error('\p{Is_Blk=	:=buhid}');
-    Error('\P{Is_Blk=	:=buhid}');
+    Expect(1, 5983, '\p{Is_Block=_-Buhid}', "");
+    Expect(0, 5983, '\p{^Is_Block=_-Buhid}', "");
+    Expect(0, 5983, '\P{Is_Block=_-Buhid}', "");
+    Expect(1, 5983, '\P{^Is_Block=_-Buhid}', "");
+    Expect(0, 5984, '\p{Is_Block=_-Buhid}', "");
+    Expect(1, 5984, '\p{^Is_Block=_-Buhid}', "");
+    Expect(1, 5984, '\P{Is_Block=_-Buhid}', "");
+    Expect(0, 5984, '\P{^Is_Block=_-Buhid}', "");
+    Error('\p{Is_Blk=/a/BUHID}');
+    Error('\P{Is_Blk=/a/BUHID}');
     Expect(1, 5983, '\p{Is_Blk=buhid}', "");
     Expect(0, 5983, '\p{^Is_Blk=buhid}', "");
     Expect(0, 5983, '\P{Is_Blk=buhid}', "");
@@ -6494,16 +6598,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5984, '\p{^Is_Blk=buhid}', "");
     Expect(1, 5984, '\P{Is_Blk=buhid}', "");
     Expect(0, 5984, '\P{^Is_Blk=buhid}', "");
-    Expect(1, 5983, '\p{Is_Blk= BUHID}', "");
-    Expect(0, 5983, '\p{^Is_Blk= BUHID}', "");
-    Expect(0, 5983, '\P{Is_Blk= BUHID}', "");
-    Expect(1, 5983, '\P{^Is_Blk= BUHID}', "");
-    Expect(0, 5984, '\p{Is_Blk= BUHID}', "");
-    Expect(1, 5984, '\p{^Is_Blk= BUHID}', "");
-    Expect(1, 5984, '\P{Is_Blk= BUHID}', "");
-    Expect(0, 5984, '\P{^Is_Blk= BUHID}', "");
-    Error('\p{Block=:= _Byzantine_Musical_symbols}');
-    Error('\P{Block=:= _Byzantine_Musical_symbols}');
+    Expect(1, 5983, '\p{Is_Blk=_BUHID}', "");
+    Expect(0, 5983, '\p{^Is_Blk=_BUHID}', "");
+    Expect(0, 5983, '\P{Is_Blk=_BUHID}', "");
+    Expect(1, 5983, '\P{^Is_Blk=_BUHID}', "");
+    Expect(0, 5984, '\p{Is_Blk=_BUHID}', "");
+    Expect(1, 5984, '\p{^Is_Blk=_BUHID}', "");
+    Expect(1, 5984, '\P{Is_Blk=_BUHID}', "");
+    Expect(0, 5984, '\P{^Is_Blk=_BUHID}', "");
+    Error('\p{Block=	/a/byzantine_Musical_Symbols}');
+    Error('\P{Block=	/a/byzantine_Musical_Symbols}');
     Expect(1, 119039, '\p{Block=:\AByzantine_Musical_Symbols\z:}', "");;
     Expect(0, 119040, '\p{Block=:\AByzantine_Musical_Symbols\z:}', "");;
     Expect(1, 119039, '\p{Block=byzantinemusicalsymbols}', "");
@@ -6516,16 +6620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119040, '\P{^Block=byzantinemusicalsymbols}', "");
     Expect(1, 119039, '\p{Block=:\Abyzantinemusicalsymbols\z:}', "");;
     Expect(0, 119040, '\p{Block=:\Abyzantinemusicalsymbols\z:}', "");;
-    Expect(1, 119039, '\p{Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(0, 119039, '\p{^Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(0, 119039, '\P{Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(1, 119039, '\P{^Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(0, 119040, '\p{Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(1, 119040, '\p{^Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(1, 119040, '\P{Block= BYZANTINE_Musical_Symbols}', "");
-    Expect(0, 119040, '\P{^Block= BYZANTINE_Musical_Symbols}', "");
-    Error('\p{Blk=_:=Byzantine_Music}');
-    Error('\P{Blk=_:=Byzantine_Music}');
+    Expect(1, 119039, '\p{Block=byzantine_Musical_Symbols}', "");
+    Expect(0, 119039, '\p{^Block=byzantine_Musical_Symbols}', "");
+    Expect(0, 119039, '\P{Block=byzantine_Musical_Symbols}', "");
+    Expect(1, 119039, '\P{^Block=byzantine_Musical_Symbols}', "");
+    Expect(0, 119040, '\p{Block=byzantine_Musical_Symbols}', "");
+    Expect(1, 119040, '\p{^Block=byzantine_Musical_Symbols}', "");
+    Expect(1, 119040, '\P{Block=byzantine_Musical_Symbols}', "");
+    Expect(0, 119040, '\P{^Block=byzantine_Musical_Symbols}', "");
+    Error('\p{Blk=-:=Byzantine_music}');
+    Error('\P{Blk=-:=Byzantine_music}');
     Expect(1, 119039, '\p{Blk=:\AByzantine_Music\z:}', "");;
     Expect(0, 119040, '\p{Blk=:\AByzantine_Music\z:}', "");;
     Expect(1, 119039, '\p{Blk=byzantinemusic}', "");
@@ -6538,16 +6642,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119040, '\P{^Blk=byzantinemusic}', "");
     Expect(1, 119039, '\p{Blk=:\Abyzantinemusic\z:}', "");;
     Expect(0, 119040, '\p{Blk=:\Abyzantinemusic\z:}', "");;
-    Expect(1, 119039, '\p{Blk=- Byzantine_Music}', "");
-    Expect(0, 119039, '\p{^Blk=- Byzantine_Music}', "");
-    Expect(0, 119039, '\P{Blk=- Byzantine_Music}', "");
-    Expect(1, 119039, '\P{^Blk=- Byzantine_Music}', "");
-    Expect(0, 119040, '\p{Blk=- Byzantine_Music}', "");
-    Expect(1, 119040, '\p{^Blk=- Byzantine_Music}', "");
-    Expect(1, 119040, '\P{Blk=- Byzantine_Music}', "");
-    Expect(0, 119040, '\P{^Blk=- Byzantine_Music}', "");
-    Error('\p{Is_Block=/a/ -Byzantine_musical_SYMBOLS}');
-    Error('\P{Is_Block=/a/ -Byzantine_musical_SYMBOLS}');
+    Expect(1, 119039, '\p{Blk= Byzantine_Music}', "");
+    Expect(0, 119039, '\p{^Blk= Byzantine_Music}', "");
+    Expect(0, 119039, '\P{Blk= Byzantine_Music}', "");
+    Expect(1, 119039, '\P{^Blk= Byzantine_Music}', "");
+    Expect(0, 119040, '\p{Blk= Byzantine_Music}', "");
+    Expect(1, 119040, '\p{^Blk= Byzantine_Music}', "");
+    Expect(1, 119040, '\P{Blk= Byzantine_Music}', "");
+    Expect(0, 119040, '\P{^Blk= Byzantine_Music}', "");
+    Error('\p{Is_Block=/a/ BYZANTINE_Musical_Symbols}');
+    Error('\P{Is_Block=/a/ BYZANTINE_Musical_Symbols}');
     Expect(1, 119039, '\p{Is_Block=byzantinemusicalsymbols}', "");
     Expect(0, 119039, '\p{^Is_Block=byzantinemusicalsymbols}', "");
     Expect(0, 119039, '\P{Is_Block=byzantinemusicalsymbols}', "");
@@ -6556,34 +6660,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119040, '\p{^Is_Block=byzantinemusicalsymbols}', "");
     Expect(1, 119040, '\P{Is_Block=byzantinemusicalsymbols}', "");
     Expect(0, 119040, '\P{^Is_Block=byzantinemusicalsymbols}', "");
-    Expect(1, 119039, '\p{Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(0, 119039, '\p{^Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(0, 119039, '\P{Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(1, 119039, '\P{^Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(0, 119040, '\p{Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(1, 119040, '\p{^Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(1, 119040, '\P{Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Expect(0, 119040, '\P{^Is_Block= 	Byzantine_MUSICAL_symbols}', "");
-    Error('\p{Is_Blk=		BYZANTINE_Music/a/}');
-    Error('\P{Is_Blk=		BYZANTINE_Music/a/}');
-    Expect(1, 119039, '\p{Is_Blk=byzantinemusic}', "");
-    Expect(0, 119039, '\p{^Is_Blk=byzantinemusic}', "");
-    Expect(0, 119039, '\P{Is_Blk=byzantinemusic}', "");
-    Expect(1, 119039, '\P{^Is_Blk=byzantinemusic}', "");
-    Expect(0, 119040, '\p{Is_Blk=byzantinemusic}', "");
-    Expect(1, 119040, '\p{^Is_Blk=byzantinemusic}', "");
-    Expect(1, 119040, '\P{Is_Blk=byzantinemusic}', "");
-    Expect(0, 119040, '\P{^Is_Blk=byzantinemusic}', "");
-    Expect(1, 119039, '\p{Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(0, 119039, '\p{^Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(0, 119039, '\P{Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(1, 119039, '\P{^Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(0, 119040, '\p{Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(1, 119040, '\p{^Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(1, 119040, '\P{Is_Blk:_-BYZANTINE_Music}', "");
-    Expect(0, 119040, '\P{^Is_Blk:_-BYZANTINE_Music}', "");
-    Error('\p{Block:-	CARIAN/a/}');
-    Error('\P{Block:-	CARIAN/a/}');
+    Expect(1, 119039, '\p{Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(0, 119039, '\p{^Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(0, 119039, '\P{Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(1, 119039, '\P{^Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(0, 119040, '\p{Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(1, 119040, '\p{^Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(1, 119040, '\P{Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Expect(0, 119040, '\P{^Is_Block=-	Byzantine_MUSICAL_Symbols}', "");
+    Error('\p{Is_Blk=_	Byzantine_Music/a/}');
+    Error('\P{Is_Blk=_	Byzantine_Music/a/}');
+    Expect(1, 119039, '\p{Is_Blk:   byzantinemusic}', "");
+    Expect(0, 119039, '\p{^Is_Blk:   byzantinemusic}', "");
+    Expect(0, 119039, '\P{Is_Blk:   byzantinemusic}', "");
+    Expect(1, 119039, '\P{^Is_Blk:   byzantinemusic}', "");
+    Expect(0, 119040, '\p{Is_Blk:   byzantinemusic}', "");
+    Expect(1, 119040, '\p{^Is_Blk:   byzantinemusic}', "");
+    Expect(1, 119040, '\P{Is_Blk:   byzantinemusic}', "");
+    Expect(0, 119040, '\P{^Is_Blk:   byzantinemusic}', "");
+    Expect(1, 119039, '\p{Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(0, 119039, '\p{^Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(0, 119039, '\P{Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(1, 119039, '\P{^Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(0, 119040, '\p{Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(1, 119040, '\p{^Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(1, 119040, '\P{Is_Blk=BYZANTINE_MUSIC}', "");
+    Expect(0, 119040, '\P{^Is_Blk=BYZANTINE_MUSIC}', "");
+    Error('\p{Block=:= CARIAN}');
+    Error('\P{Block=:= CARIAN}');
     Expect(1, 66271, '\p{Block=:\ACarian\z:}', "");;
     Expect(0, 66272, '\p{Block=:\ACarian\z:}', "");;
     Expect(1, 66271, '\p{Block=carian}', "");
@@ -6596,16 +6700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66272, '\P{^Block=carian}', "");
     Expect(1, 66271, '\p{Block=:\Acarian\z:}', "");;
     Expect(0, 66272, '\p{Block=:\Acarian\z:}', "");;
-    Expect(1, 66271, '\p{Block=-CARIAN}', "");
-    Expect(0, 66271, '\p{^Block=-CARIAN}', "");
-    Expect(0, 66271, '\P{Block=-CARIAN}', "");
-    Expect(1, 66271, '\P{^Block=-CARIAN}', "");
-    Expect(0, 66272, '\p{Block=-CARIAN}', "");
-    Expect(1, 66272, '\p{^Block=-CARIAN}', "");
-    Expect(1, 66272, '\P{Block=-CARIAN}', "");
-    Expect(0, 66272, '\P{^Block=-CARIAN}', "");
-    Error('\p{Blk=-/a/carian}');
-    Error('\P{Blk=-/a/carian}');
+    Expect(1, 66271, '\p{Block:	 	CARIAN}', "");
+    Expect(0, 66271, '\p{^Block:	 	CARIAN}', "");
+    Expect(0, 66271, '\P{Block:	 	CARIAN}', "");
+    Expect(1, 66271, '\P{^Block:	 	CARIAN}', "");
+    Expect(0, 66272, '\p{Block:	 	CARIAN}', "");
+    Expect(1, 66272, '\p{^Block:	 	CARIAN}', "");
+    Expect(1, 66272, '\P{Block:	 	CARIAN}', "");
+    Expect(0, 66272, '\P{^Block:	 	CARIAN}', "");
+    Error('\p{Blk=	:=Carian}');
+    Error('\P{Blk=	:=Carian}');
     Expect(1, 66271, '\p{Blk=:\ACarian\z:}', "");;
     Expect(0, 66272, '\p{Blk=:\ACarian\z:}', "");;
     Expect(1, 66271, '\p{Blk=carian}', "");
@@ -6618,52 +6722,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66272, '\P{^Blk=carian}', "");
     Expect(1, 66271, '\p{Blk=:\Acarian\z:}', "");;
     Expect(0, 66272, '\p{Blk=:\Acarian\z:}', "");;
-    Expect(1, 66271, '\p{Blk= -carian}', "");
-    Expect(0, 66271, '\p{^Blk= -carian}', "");
-    Expect(0, 66271, '\P{Blk= -carian}', "");
-    Expect(1, 66271, '\P{^Blk= -carian}', "");
-    Expect(0, 66272, '\p{Blk= -carian}', "");
-    Expect(1, 66272, '\p{^Blk= -carian}', "");
-    Expect(1, 66272, '\P{Blk= -carian}', "");
-    Expect(0, 66272, '\P{^Blk= -carian}', "");
-    Error('\p{Is_Block=-	CARIAN/a/}');
-    Error('\P{Is_Block=-	CARIAN/a/}');
-    Expect(1, 66271, '\p{Is_Block:	carian}', "");
-    Expect(0, 66271, '\p{^Is_Block:	carian}', "");
-    Expect(0, 66271, '\P{Is_Block:	carian}', "");
-    Expect(1, 66271, '\P{^Is_Block:	carian}', "");
-    Expect(0, 66272, '\p{Is_Block:	carian}', "");
-    Expect(1, 66272, '\p{^Is_Block:	carian}', "");
-    Expect(1, 66272, '\P{Is_Block:	carian}', "");
-    Expect(0, 66272, '\P{^Is_Block:	carian}', "");
-    Expect(1, 66271, '\p{Is_Block=	-Carian}', "");
-    Expect(0, 66271, '\p{^Is_Block=	-Carian}', "");
-    Expect(0, 66271, '\P{Is_Block=	-Carian}', "");
-    Expect(1, 66271, '\P{^Is_Block=	-Carian}', "");
-    Expect(0, 66272, '\p{Is_Block=	-Carian}', "");
-    Expect(1, 66272, '\p{^Is_Block=	-Carian}', "");
-    Expect(1, 66272, '\P{Is_Block=	-Carian}', "");
-    Expect(0, 66272, '\P{^Is_Block=	-Carian}', "");
-    Error('\p{Is_Blk= Carian:=}');
-    Error('\P{Is_Blk= Carian:=}');
-    Expect(1, 66271, '\p{Is_Blk:   carian}', "");
-    Expect(0, 66271, '\p{^Is_Blk:   carian}', "");
-    Expect(0, 66271, '\P{Is_Blk:   carian}', "");
-    Expect(1, 66271, '\P{^Is_Blk:   carian}', "");
-    Expect(0, 66272, '\p{Is_Blk:   carian}', "");
-    Expect(1, 66272, '\p{^Is_Blk:   carian}', "");
-    Expect(1, 66272, '\P{Is_Blk:   carian}', "");
-    Expect(0, 66272, '\P{^Is_Blk:   carian}', "");
-    Expect(1, 66271, '\p{Is_Blk= 	carian}', "");
-    Expect(0, 66271, '\p{^Is_Blk= 	carian}', "");
-    Expect(0, 66271, '\P{Is_Blk= 	carian}', "");
-    Expect(1, 66271, '\P{^Is_Blk= 	carian}', "");
-    Expect(0, 66272, '\p{Is_Blk= 	carian}', "");
-    Expect(1, 66272, '\p{^Is_Blk= 	carian}', "");
-    Expect(1, 66272, '\P{Is_Blk= 	carian}', "");
-    Expect(0, 66272, '\P{^Is_Blk= 	carian}', "");
-    Error('\p{Block:   :=_Caucasian_Albanian}');
-    Error('\P{Block:   :=_Caucasian_Albanian}');
+    Expect(1, 66271, '\p{Blk=--Carian}', "");
+    Expect(0, 66271, '\p{^Blk=--Carian}', "");
+    Expect(0, 66271, '\P{Blk=--Carian}', "");
+    Expect(1, 66271, '\P{^Blk=--Carian}', "");
+    Expect(0, 66272, '\p{Blk=--Carian}', "");
+    Expect(1, 66272, '\p{^Blk=--Carian}', "");
+    Expect(1, 66272, '\P{Blk=--Carian}', "");
+    Expect(0, 66272, '\P{^Blk=--Carian}', "");
+    Error('\p{Is_Block=-_Carian:=}');
+    Error('\P{Is_Block=-_Carian:=}');
+    Expect(1, 66271, '\p{Is_Block=carian}', "");
+    Expect(0, 66271, '\p{^Is_Block=carian}', "");
+    Expect(0, 66271, '\P{Is_Block=carian}', "");
+    Expect(1, 66271, '\P{^Is_Block=carian}', "");
+    Expect(0, 66272, '\p{Is_Block=carian}', "");
+    Expect(1, 66272, '\p{^Is_Block=carian}', "");
+    Expect(1, 66272, '\P{Is_Block=carian}', "");
+    Expect(0, 66272, '\P{^Is_Block=carian}', "");
+    Expect(1, 66271, '\p{Is_Block:  CARIAN}', "");
+    Expect(0, 66271, '\p{^Is_Block:  CARIAN}', "");
+    Expect(0, 66271, '\P{Is_Block:  CARIAN}', "");
+    Expect(1, 66271, '\P{^Is_Block:  CARIAN}', "");
+    Expect(0, 66272, '\p{Is_Block:  CARIAN}', "");
+    Expect(1, 66272, '\p{^Is_Block:  CARIAN}', "");
+    Expect(1, 66272, '\P{Is_Block:  CARIAN}', "");
+    Expect(0, 66272, '\P{^Is_Block:  CARIAN}', "");
+    Error('\p{Is_Blk=:=_-Carian}');
+    Error('\P{Is_Blk=:=_-Carian}');
+    Expect(1, 66271, '\p{Is_Blk=carian}', "");
+    Expect(0, 66271, '\p{^Is_Blk=carian}', "");
+    Expect(0, 66271, '\P{Is_Blk=carian}', "");
+    Expect(1, 66271, '\P{^Is_Blk=carian}', "");
+    Expect(0, 66272, '\p{Is_Blk=carian}', "");
+    Expect(1, 66272, '\p{^Is_Blk=carian}', "");
+    Expect(1, 66272, '\P{Is_Blk=carian}', "");
+    Expect(0, 66272, '\P{^Is_Blk=carian}', "");
+    Expect(1, 66271, '\p{Is_Blk=-	CARIAN}', "");
+    Expect(0, 66271, '\p{^Is_Blk=-	CARIAN}', "");
+    Expect(0, 66271, '\P{Is_Blk=-	CARIAN}', "");
+    Expect(1, 66271, '\P{^Is_Blk=-	CARIAN}', "");
+    Expect(0, 66272, '\p{Is_Blk=-	CARIAN}', "");
+    Expect(1, 66272, '\p{^Is_Blk=-	CARIAN}', "");
+    Expect(1, 66272, '\P{Is_Blk=-	CARIAN}', "");
+    Expect(0, 66272, '\P{^Is_Blk=-	CARIAN}', "");
+    Error('\p{Block=_Caucasian_Albanian/a/}');
+    Error('\P{Block=_Caucasian_Albanian/a/}');
     Expect(1, 66927, '\p{Block=:\ACaucasian_Albanian\z:}', "");;
     Expect(0, 66928, '\p{Block=:\ACaucasian_Albanian\z:}', "");;
     Expect(1, 66927, '\p{Block=caucasianalbanian}', "");
@@ -6676,16 +6780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66928, '\P{^Block=caucasianalbanian}', "");
     Expect(1, 66927, '\p{Block=:\Acaucasianalbanian\z:}', "");;
     Expect(0, 66928, '\p{Block=:\Acaucasianalbanian\z:}', "");;
-    Expect(1, 66927, '\p{Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66927, '\p{^Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66927, '\P{Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(1, 66927, '\P{^Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66928, '\p{Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(1, 66928, '\p{^Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(1, 66928, '\P{Block=	CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66928, '\P{^Block=	CAUCASIAN_ALBANIAN}', "");
-    Error('\p{Blk=/a/	-caucasian_ALBANIAN}');
-    Error('\P{Blk=/a/	-caucasian_ALBANIAN}');
+    Expect(1, 66927, '\p{Block=-caucasian_albanian}', "");
+    Expect(0, 66927, '\p{^Block=-caucasian_albanian}', "");
+    Expect(0, 66927, '\P{Block=-caucasian_albanian}', "");
+    Expect(1, 66927, '\P{^Block=-caucasian_albanian}', "");
+    Expect(0, 66928, '\p{Block=-caucasian_albanian}', "");
+    Expect(1, 66928, '\p{^Block=-caucasian_albanian}', "");
+    Expect(1, 66928, '\P{Block=-caucasian_albanian}', "");
+    Expect(0, 66928, '\P{^Block=-caucasian_albanian}', "");
+    Error('\p{Blk: :=_-CAUCASIAN_Albanian}');
+    Error('\P{Blk: :=_-CAUCASIAN_Albanian}');
     Expect(1, 66927, '\p{Blk=:\ACaucasian_Albanian\z:}', "");;
     Expect(0, 66928, '\p{Blk=:\ACaucasian_Albanian\z:}', "");;
     Expect(1, 66927, '\p{Blk=caucasianalbanian}', "");
@@ -6698,34 +6802,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66928, '\P{^Blk=caucasianalbanian}', "");
     Expect(1, 66927, '\p{Blk=:\Acaucasianalbanian\z:}', "");;
     Expect(0, 66928, '\p{Blk=:\Acaucasianalbanian\z:}', "");;
-    Expect(1, 66927, '\p{Blk=-	CAUCASIAN_albanian}', "");
-    Expect(0, 66927, '\p{^Blk=-	CAUCASIAN_albanian}', "");
-    Expect(0, 66927, '\P{Blk=-	CAUCASIAN_albanian}', "");
-    Expect(1, 66927, '\P{^Blk=-	CAUCASIAN_albanian}', "");
-    Expect(0, 66928, '\p{Blk=-	CAUCASIAN_albanian}', "");
-    Expect(1, 66928, '\p{^Blk=-	CAUCASIAN_albanian}', "");
-    Expect(1, 66928, '\P{Blk=-	CAUCASIAN_albanian}', "");
-    Expect(0, 66928, '\P{^Blk=-	CAUCASIAN_albanian}', "");
-    Error('\p{Is_Block=/a/ _caucasian_ALBANIAN}');
-    Error('\P{Is_Block=/a/ _caucasian_ALBANIAN}');
-    Expect(1, 66927, '\p{Is_Block:   caucasianalbanian}', "");
-    Expect(0, 66927, '\p{^Is_Block:   caucasianalbanian}', "");
-    Expect(0, 66927, '\P{Is_Block:   caucasianalbanian}', "");
-    Expect(1, 66927, '\P{^Is_Block:   caucasianalbanian}', "");
-    Expect(0, 66928, '\p{Is_Block:   caucasianalbanian}', "");
-    Expect(1, 66928, '\p{^Is_Block:   caucasianalbanian}', "");
-    Expect(1, 66928, '\P{Is_Block:   caucasianalbanian}', "");
-    Expect(0, 66928, '\P{^Is_Block:   caucasianalbanian}', "");
-    Expect(1, 66927, '\p{Is_Block=	 Caucasian_albanian}', "");
-    Expect(0, 66927, '\p{^Is_Block=	 Caucasian_albanian}', "");
-    Expect(0, 66927, '\P{Is_Block=	 Caucasian_albanian}', "");
-    Expect(1, 66927, '\P{^Is_Block=	 Caucasian_albanian}', "");
-    Expect(0, 66928, '\p{Is_Block=	 Caucasian_albanian}', "");
-    Expect(1, 66928, '\p{^Is_Block=	 Caucasian_albanian}', "");
-    Expect(1, 66928, '\P{Is_Block=	 Caucasian_albanian}', "");
-    Expect(0, 66928, '\P{^Is_Block=	 Caucasian_albanian}', "");
-    Error('\p{Is_Blk= /a/Caucasian_ALBANIAN}');
-    Error('\P{Is_Blk= /a/Caucasian_ALBANIAN}');
+    Expect(1, 66927, '\p{Blk= -Caucasian_albanian}', "");
+    Expect(0, 66927, '\p{^Blk= -Caucasian_albanian}', "");
+    Expect(0, 66927, '\P{Blk= -Caucasian_albanian}', "");
+    Expect(1, 66927, '\P{^Blk= -Caucasian_albanian}', "");
+    Expect(0, 66928, '\p{Blk= -Caucasian_albanian}', "");
+    Expect(1, 66928, '\p{^Blk= -Caucasian_albanian}', "");
+    Expect(1, 66928, '\P{Blk= -Caucasian_albanian}', "");
+    Expect(0, 66928, '\P{^Blk= -Caucasian_albanian}', "");
+    Error('\p{Is_Block=:=_	Caucasian_ALBANIAN}');
+    Error('\P{Is_Block=:=_	Caucasian_ALBANIAN}');
+    Expect(1, 66927, '\p{Is_Block=caucasianalbanian}', "");
+    Expect(0, 66927, '\p{^Is_Block=caucasianalbanian}', "");
+    Expect(0, 66927, '\P{Is_Block=caucasianalbanian}', "");
+    Expect(1, 66927, '\P{^Is_Block=caucasianalbanian}', "");
+    Expect(0, 66928, '\p{Is_Block=caucasianalbanian}', "");
+    Expect(1, 66928, '\p{^Is_Block=caucasianalbanian}', "");
+    Expect(1, 66928, '\P{Is_Block=caucasianalbanian}', "");
+    Expect(0, 66928, '\P{^Is_Block=caucasianalbanian}', "");
+    Expect(1, 66927, '\p{Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66927, '\p{^Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66927, '\P{Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(1, 66927, '\P{^Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66928, '\p{Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(1, 66928, '\p{^Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(1, 66928, '\P{Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66928, '\P{^Is_Block=- CAUCASIAN_ALBANIAN}', "");
+    Error('\p{Is_Blk=_/a/Caucasian_Albanian}');
+    Error('\P{Is_Blk=_/a/Caucasian_Albanian}');
     Expect(1, 66927, '\p{Is_Blk=caucasianalbanian}', "");
     Expect(0, 66927, '\p{^Is_Blk=caucasianalbanian}', "");
     Expect(0, 66927, '\P{Is_Blk=caucasianalbanian}', "");
@@ -6734,16 +6838,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66928, '\p{^Is_Blk=caucasianalbanian}', "");
     Expect(1, 66928, '\P{Is_Blk=caucasianalbanian}', "");
     Expect(0, 66928, '\P{^Is_Blk=caucasianalbanian}', "");
-    Expect(1, 66927, '\p{Is_Blk= Caucasian_albanian}', "");
-    Expect(0, 66927, '\p{^Is_Blk= Caucasian_albanian}', "");
-    Expect(0, 66927, '\P{Is_Blk= Caucasian_albanian}', "");
-    Expect(1, 66927, '\P{^Is_Blk= Caucasian_albanian}', "");
-    Expect(0, 66928, '\p{Is_Blk= Caucasian_albanian}', "");
-    Expect(1, 66928, '\p{^Is_Blk= Caucasian_albanian}', "");
-    Expect(1, 66928, '\P{Is_Blk= Caucasian_albanian}', "");
-    Expect(0, 66928, '\P{^Is_Blk= Caucasian_albanian}', "");
-    Error('\p{Block=--Chakma/a/}');
-    Error('\P{Block=--Chakma/a/}');
+    Expect(1, 66927, '\p{Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66927, '\p{^Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66927, '\P{Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(1, 66927, '\P{^Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66928, '\p{Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(1, 66928, '\p{^Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(1, 66928, '\P{Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Expect(0, 66928, '\P{^Is_Blk=_CAUCASIAN_ALBANIAN}', "");
+    Error('\p{Block=/a/Chakma}');
+    Error('\P{Block=/a/Chakma}');
     Expect(1, 69967, '\p{Block=:\AChakma\z:}', "");;
     Expect(0, 69968, '\p{Block=:\AChakma\z:}', "");;
     Expect(1, 69967, '\p{Block=chakma}', "");
@@ -6756,16 +6860,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69968, '\P{^Block=chakma}', "");
     Expect(1, 69967, '\p{Block=:\Achakma\z:}', "");;
     Expect(0, 69968, '\p{Block=:\Achakma\z:}', "");;
-    Expect(1, 69967, '\p{Block=-Chakma}', "");
-    Expect(0, 69967, '\p{^Block=-Chakma}', "");
-    Expect(0, 69967, '\P{Block=-Chakma}', "");
-    Expect(1, 69967, '\P{^Block=-Chakma}', "");
-    Expect(0, 69968, '\p{Block=-Chakma}', "");
-    Expect(1, 69968, '\p{^Block=-Chakma}', "");
-    Expect(1, 69968, '\P{Block=-Chakma}', "");
-    Expect(0, 69968, '\P{^Block=-Chakma}', "");
-    Error('\p{Blk=/a/CHAKMA}');
-    Error('\P{Blk=/a/CHAKMA}');
+    Expect(1, 69967, '\p{Block=	 chakma}', "");
+    Expect(0, 69967, '\p{^Block=	 chakma}', "");
+    Expect(0, 69967, '\P{Block=	 chakma}', "");
+    Expect(1, 69967, '\P{^Block=	 chakma}', "");
+    Expect(0, 69968, '\p{Block=	 chakma}', "");
+    Expect(1, 69968, '\p{^Block=	 chakma}', "");
+    Expect(1, 69968, '\P{Block=	 chakma}', "");
+    Expect(0, 69968, '\P{^Block=	 chakma}', "");
+    Error('\p{Blk=_Chakma/a/}');
+    Error('\P{Blk=_Chakma/a/}');
     Expect(1, 69967, '\p{Blk=:\AChakma\z:}', "");;
     Expect(0, 69968, '\p{Blk=:\AChakma\z:}', "");;
     Expect(1, 69967, '\p{Blk=chakma}', "");
@@ -6778,16 +6882,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69968, '\P{^Blk=chakma}', "");
     Expect(1, 69967, '\p{Blk=:\Achakma\z:}', "");;
     Expect(0, 69968, '\p{Blk=:\Achakma\z:}', "");;
-    Expect(1, 69967, '\p{Blk= Chakma}', "");
-    Expect(0, 69967, '\p{^Blk= Chakma}', "");
-    Expect(0, 69967, '\P{Blk= Chakma}', "");
-    Expect(1, 69967, '\P{^Blk= Chakma}', "");
-    Expect(0, 69968, '\p{Blk= Chakma}', "");
-    Expect(1, 69968, '\p{^Blk= Chakma}', "");
-    Expect(1, 69968, '\P{Blk= Chakma}', "");
-    Expect(0, 69968, '\P{^Blk= Chakma}', "");
-    Error('\p{Is_Block=/a/Chakma}');
-    Error('\P{Is_Block=/a/Chakma}');
+    Expect(1, 69967, '\p{Blk=	_Chakma}', "");
+    Expect(0, 69967, '\p{^Blk=	_Chakma}', "");
+    Expect(0, 69967, '\P{Blk=	_Chakma}', "");
+    Expect(1, 69967, '\P{^Blk=	_Chakma}', "");
+    Expect(0, 69968, '\p{Blk=	_Chakma}', "");
+    Expect(1, 69968, '\p{^Blk=	_Chakma}', "");
+    Expect(1, 69968, '\P{Blk=	_Chakma}', "");
+    Expect(0, 69968, '\P{^Blk=	_Chakma}', "");
+    Error('\p{Is_Block=:=	-Chakma}');
+    Error('\P{Is_Block=:=	-Chakma}');
     Expect(1, 69967, '\p{Is_Block=chakma}', "");
     Expect(0, 69967, '\p{^Is_Block=chakma}', "");
     Expect(0, 69967, '\P{Is_Block=chakma}', "");
@@ -6796,16 +6900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69968, '\p{^Is_Block=chakma}', "");
     Expect(1, 69968, '\P{Is_Block=chakma}', "");
     Expect(0, 69968, '\P{^Is_Block=chakma}', "");
-    Expect(1, 69967, '\p{Is_Block=-CHAKMA}', "");
-    Expect(0, 69967, '\p{^Is_Block=-CHAKMA}', "");
-    Expect(0, 69967, '\P{Is_Block=-CHAKMA}', "");
-    Expect(1, 69967, '\P{^Is_Block=-CHAKMA}', "");
-    Expect(0, 69968, '\p{Is_Block=-CHAKMA}', "");
-    Expect(1, 69968, '\p{^Is_Block=-CHAKMA}', "");
-    Expect(1, 69968, '\P{Is_Block=-CHAKMA}', "");
-    Expect(0, 69968, '\P{^Is_Block=-CHAKMA}', "");
-    Error('\p{Is_Blk=:=_Chakma}');
-    Error('\P{Is_Blk=:=_Chakma}');
+    Expect(1, 69967, '\p{Is_Block= _chakma}', "");
+    Expect(0, 69967, '\p{^Is_Block= _chakma}', "");
+    Expect(0, 69967, '\P{Is_Block= _chakma}', "");
+    Expect(1, 69967, '\P{^Is_Block= _chakma}', "");
+    Expect(0, 69968, '\p{Is_Block= _chakma}', "");
+    Expect(1, 69968, '\p{^Is_Block= _chakma}', "");
+    Expect(1, 69968, '\P{Is_Block= _chakma}', "");
+    Expect(0, 69968, '\P{^Is_Block= _chakma}', "");
+    Error('\p{Is_Blk=:= -Chakma}');
+    Error('\P{Is_Blk=:= -Chakma}');
     Expect(1, 69967, '\p{Is_Blk=chakma}', "");
     Expect(0, 69967, '\p{^Is_Blk=chakma}', "");
     Expect(0, 69967, '\P{Is_Blk=chakma}', "");
@@ -6814,16 +6918,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69968, '\p{^Is_Blk=chakma}', "");
     Expect(1, 69968, '\P{Is_Blk=chakma}', "");
     Expect(0, 69968, '\P{^Is_Blk=chakma}', "");
-    Expect(1, 69967, '\p{Is_Blk=-	Chakma}', "");
-    Expect(0, 69967, '\p{^Is_Blk=-	Chakma}', "");
-    Expect(0, 69967, '\P{Is_Blk=-	Chakma}', "");
-    Expect(1, 69967, '\P{^Is_Blk=-	Chakma}', "");
-    Expect(0, 69968, '\p{Is_Blk=-	Chakma}', "");
-    Expect(1, 69968, '\p{^Is_Blk=-	Chakma}', "");
-    Expect(1, 69968, '\P{Is_Blk=-	Chakma}', "");
-    Expect(0, 69968, '\P{^Is_Blk=-	Chakma}', "");
-    Error('\p{Block=/a/_Cham}');
-    Error('\P{Block=/a/_Cham}');
+    Expect(1, 69967, '\p{Is_Blk=	-Chakma}', "");
+    Expect(0, 69967, '\p{^Is_Blk=	-Chakma}', "");
+    Expect(0, 69967, '\P{Is_Blk=	-Chakma}', "");
+    Expect(1, 69967, '\P{^Is_Blk=	-Chakma}', "");
+    Expect(0, 69968, '\p{Is_Blk=	-Chakma}', "");
+    Expect(1, 69968, '\p{^Is_Blk=	-Chakma}', "");
+    Expect(1, 69968, '\P{Is_Blk=	-Chakma}', "");
+    Expect(0, 69968, '\P{^Is_Blk=	-Chakma}', "");
+    Error('\p{Block=:=_-CHAM}');
+    Error('\P{Block=:=_-CHAM}');
     Expect(1, 43615, '\p{Block=:\ACham\z:}', "");;
     Expect(0, 43616, '\p{Block=:\ACham\z:}', "");;
     Expect(1, 43615, '\p{Block=cham}', "");
@@ -6836,16 +6940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43616, '\P{^Block=cham}', "");
     Expect(1, 43615, '\p{Block=:\Acham\z:}', "");;
     Expect(0, 43616, '\p{Block=:\Acham\z:}', "");;
-    Expect(1, 43615, '\p{Block=_Cham}', "");
-    Expect(0, 43615, '\p{^Block=_Cham}', "");
-    Expect(0, 43615, '\P{Block=_Cham}', "");
-    Expect(1, 43615, '\P{^Block=_Cham}', "");
-    Expect(0, 43616, '\p{Block=_Cham}', "");
-    Expect(1, 43616, '\p{^Block=_Cham}', "");
-    Expect(1, 43616, '\P{Block=_Cham}', "");
-    Expect(0, 43616, '\P{^Block=_Cham}', "");
-    Error('\p{Blk=/a/-	CHAM}');
-    Error('\P{Blk=/a/-	CHAM}');
+    Expect(1, 43615, '\p{Block= 	Cham}', "");
+    Expect(0, 43615, '\p{^Block= 	Cham}', "");
+    Expect(0, 43615, '\P{Block= 	Cham}', "");
+    Expect(1, 43615, '\P{^Block= 	Cham}', "");
+    Expect(0, 43616, '\p{Block= 	Cham}', "");
+    Expect(1, 43616, '\p{^Block= 	Cham}', "");
+    Expect(1, 43616, '\P{Block= 	Cham}', "");
+    Expect(0, 43616, '\P{^Block= 	Cham}', "");
+    Error('\p{Blk=_:=cham}');
+    Error('\P{Blk=_:=cham}');
     Expect(1, 43615, '\p{Blk=:\ACham\z:}', "");;
     Expect(0, 43616, '\p{Blk=:\ACham\z:}', "");;
     Expect(1, 43615, '\p{Blk=cham}', "");
@@ -6858,16 +6962,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43616, '\P{^Blk=cham}', "");
     Expect(1, 43615, '\p{Blk=:\Acham\z:}', "");;
     Expect(0, 43616, '\p{Blk=:\Acham\z:}', "");;
-    Expect(1, 43615, '\p{Blk=_	cham}', "");
-    Expect(0, 43615, '\p{^Blk=_	cham}', "");
-    Expect(0, 43615, '\P{Blk=_	cham}', "");
-    Expect(1, 43615, '\P{^Blk=_	cham}', "");
-    Expect(0, 43616, '\p{Blk=_	cham}', "");
-    Expect(1, 43616, '\p{^Blk=_	cham}', "");
-    Expect(1, 43616, '\P{Blk=_	cham}', "");
-    Expect(0, 43616, '\P{^Blk=_	cham}', "");
-    Error('\p{Is_Block=	CHAM/a/}');
-    Error('\P{Is_Block=	CHAM/a/}');
+    Expect(1, 43615, '\p{Blk: 	Cham}', "");
+    Expect(0, 43615, '\p{^Blk: 	Cham}', "");
+    Expect(0, 43615, '\P{Blk: 	Cham}', "");
+    Expect(1, 43615, '\P{^Blk: 	Cham}', "");
+    Expect(0, 43616, '\p{Blk: 	Cham}', "");
+    Expect(1, 43616, '\p{^Blk: 	Cham}', "");
+    Expect(1, 43616, '\P{Blk: 	Cham}', "");
+    Expect(0, 43616, '\P{^Blk: 	Cham}', "");
+    Error('\p{Is_Block=-:=Cham}');
+    Error('\P{Is_Block=-:=Cham}');
     Expect(1, 43615, '\p{Is_Block=cham}', "");
     Expect(0, 43615, '\p{^Is_Block=cham}', "");
     Expect(0, 43615, '\P{Is_Block=cham}', "");
@@ -6876,16 +6980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43616, '\p{^Is_Block=cham}', "");
     Expect(1, 43616, '\P{Is_Block=cham}', "");
     Expect(0, 43616, '\P{^Is_Block=cham}', "");
-    Expect(1, 43615, '\p{Is_Block: _ Cham}', "");
-    Expect(0, 43615, '\p{^Is_Block: _ Cham}', "");
-    Expect(0, 43615, '\P{Is_Block: _ Cham}', "");
-    Expect(1, 43615, '\P{^Is_Block: _ Cham}', "");
-    Expect(0, 43616, '\p{Is_Block: _ Cham}', "");
-    Expect(1, 43616, '\p{^Is_Block: _ Cham}', "");
-    Expect(1, 43616, '\P{Is_Block: _ Cham}', "");
-    Expect(0, 43616, '\P{^Is_Block: _ Cham}', "");
-    Error('\p{Is_Blk=:=CHAM}');
-    Error('\P{Is_Blk=:=CHAM}');
+    Expect(1, 43615, '\p{Is_Block= 	Cham}', "");
+    Expect(0, 43615, '\p{^Is_Block= 	Cham}', "");
+    Expect(0, 43615, '\P{Is_Block= 	Cham}', "");
+    Expect(1, 43615, '\P{^Is_Block= 	Cham}', "");
+    Expect(0, 43616, '\p{Is_Block= 	Cham}', "");
+    Expect(1, 43616, '\p{^Is_Block= 	Cham}', "");
+    Expect(1, 43616, '\P{Is_Block= 	Cham}', "");
+    Expect(0, 43616, '\P{^Is_Block= 	Cham}', "");
+    Error('\p{Is_Blk=:=	_Cham}');
+    Error('\P{Is_Blk=:=	_Cham}');
     Expect(1, 43615, '\p{Is_Blk=cham}', "");
     Expect(0, 43615, '\p{^Is_Blk=cham}', "");
     Expect(0, 43615, '\P{Is_Blk=cham}', "");
@@ -6894,16 +6998,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43616, '\p{^Is_Blk=cham}', "");
     Expect(1, 43616, '\P{Is_Blk=cham}', "");
     Expect(0, 43616, '\P{^Is_Blk=cham}', "");
-    Expect(1, 43615, '\p{Is_Blk: Cham}', "");
-    Expect(0, 43615, '\p{^Is_Blk: Cham}', "");
-    Expect(0, 43615, '\P{Is_Blk: Cham}', "");
-    Expect(1, 43615, '\P{^Is_Blk: Cham}', "");
-    Expect(0, 43616, '\p{Is_Blk: Cham}', "");
-    Expect(1, 43616, '\p{^Is_Blk: Cham}', "");
-    Expect(1, 43616, '\P{Is_Blk: Cham}', "");
-    Expect(0, 43616, '\P{^Is_Blk: Cham}', "");
-    Error('\p{Block=_:=CHEROKEE}');
-    Error('\P{Block=_:=CHEROKEE}');
+    Expect(1, 43615, '\p{Is_Blk=	 cham}', "");
+    Expect(0, 43615, '\p{^Is_Blk=	 cham}', "");
+    Expect(0, 43615, '\P{Is_Blk=	 cham}', "");
+    Expect(1, 43615, '\P{^Is_Blk=	 cham}', "");
+    Expect(0, 43616, '\p{Is_Blk=	 cham}', "");
+    Expect(1, 43616, '\p{^Is_Blk=	 cham}', "");
+    Expect(1, 43616, '\P{Is_Blk=	 cham}', "");
+    Expect(0, 43616, '\P{^Is_Blk=	 cham}', "");
+    Error('\p{Block:   	/a/Cherokee}');
+    Error('\P{Block:   	/a/Cherokee}');
     Expect(1, 5119, '\p{Block=:\ACherokee\z:}', "");;
     Expect(0, 5120, '\p{Block=:\ACherokee\z:}', "");;
     Expect(1, 5119, '\p{Block=cherokee}', "");
@@ -6916,16 +7020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5120, '\P{^Block=cherokee}', "");
     Expect(1, 5119, '\p{Block=:\Acherokee\z:}', "");;
     Expect(0, 5120, '\p{Block=:\Acherokee\z:}', "");;
-    Expect(1, 5119, '\p{Block=_Cherokee}', "");
-    Expect(0, 5119, '\p{^Block=_Cherokee}', "");
-    Expect(0, 5119, '\P{Block=_Cherokee}', "");
-    Expect(1, 5119, '\P{^Block=_Cherokee}', "");
-    Expect(0, 5120, '\p{Block=_Cherokee}', "");
-    Expect(1, 5120, '\p{^Block=_Cherokee}', "");
-    Expect(1, 5120, '\P{Block=_Cherokee}', "");
-    Expect(0, 5120, '\P{^Block=_Cherokee}', "");
-    Error('\p{Blk=	Cherokee/a/}');
-    Error('\P{Blk=	Cherokee/a/}');
+    Expect(1, 5119, '\p{Block=		CHEROKEE}', "");
+    Expect(0, 5119, '\p{^Block=		CHEROKEE}', "");
+    Expect(0, 5119, '\P{Block=		CHEROKEE}', "");
+    Expect(1, 5119, '\P{^Block=		CHEROKEE}', "");
+    Expect(0, 5120, '\p{Block=		CHEROKEE}', "");
+    Expect(1, 5120, '\p{^Block=		CHEROKEE}', "");
+    Expect(1, 5120, '\P{Block=		CHEROKEE}', "");
+    Expect(0, 5120, '\P{^Block=		CHEROKEE}', "");
+    Error('\p{Blk=:=-	CHEROKEE}');
+    Error('\P{Blk=:=-	CHEROKEE}');
     Expect(1, 5119, '\p{Blk=:\ACherokee\z:}', "");;
     Expect(0, 5120, '\p{Blk=:\ACherokee\z:}', "");;
     Expect(1, 5119, '\p{Blk=cherokee}', "");
@@ -6938,16 +7042,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5120, '\P{^Blk=cherokee}', "");
     Expect(1, 5119, '\p{Blk=:\Acherokee\z:}', "");;
     Expect(0, 5120, '\p{Blk=:\Acherokee\z:}', "");;
-    Expect(1, 5119, '\p{Blk: 		Cherokee}', "");
-    Expect(0, 5119, '\p{^Blk: 		Cherokee}', "");
-    Expect(0, 5119, '\P{Blk: 		Cherokee}', "");
-    Expect(1, 5119, '\P{^Blk: 		Cherokee}', "");
-    Expect(0, 5120, '\p{Blk: 		Cherokee}', "");
-    Expect(1, 5120, '\p{^Blk: 		Cherokee}', "");
-    Expect(1, 5120, '\P{Blk: 		Cherokee}', "");
-    Expect(0, 5120, '\P{^Blk: 		Cherokee}', "");
-    Error('\p{Is_Block=/a/ -cherokee}');
-    Error('\P{Is_Block=/a/ -cherokee}');
+    Expect(1, 5119, '\p{Blk=-_cherokee}', "");
+    Expect(0, 5119, '\p{^Blk=-_cherokee}', "");
+    Expect(0, 5119, '\P{Blk=-_cherokee}', "");
+    Expect(1, 5119, '\P{^Blk=-_cherokee}', "");
+    Expect(0, 5120, '\p{Blk=-_cherokee}', "");
+    Expect(1, 5120, '\p{^Blk=-_cherokee}', "");
+    Expect(1, 5120, '\P{Blk=-_cherokee}', "");
+    Expect(0, 5120, '\P{^Blk=-_cherokee}', "");
+    Error('\p{Is_Block=	-cherokee:=}');
+    Error('\P{Is_Block=	-cherokee:=}');
     Expect(1, 5119, '\p{Is_Block=cherokee}', "");
     Expect(0, 5119, '\p{^Is_Block=cherokee}', "");
     Expect(0, 5119, '\P{Is_Block=cherokee}', "");
@@ -6956,34 +7060,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5120, '\p{^Is_Block=cherokee}', "");
     Expect(1, 5120, '\P{Is_Block=cherokee}', "");
     Expect(0, 5120, '\P{^Is_Block=cherokee}', "");
-    Expect(1, 5119, '\p{Is_Block: Cherokee}', "");
-    Expect(0, 5119, '\p{^Is_Block: Cherokee}', "");
-    Expect(0, 5119, '\P{Is_Block: Cherokee}', "");
-    Expect(1, 5119, '\P{^Is_Block: Cherokee}', "");
-    Expect(0, 5120, '\p{Is_Block: Cherokee}', "");
-    Expect(1, 5120, '\p{^Is_Block: Cherokee}', "");
-    Expect(1, 5120, '\P{Is_Block: Cherokee}', "");
-    Expect(0, 5120, '\P{^Is_Block: Cherokee}', "");
-    Error('\p{Is_Blk=	:=Cherokee}');
-    Error('\P{Is_Blk=	:=Cherokee}');
-    Expect(1, 5119, '\p{Is_Blk:   cherokee}', "");
-    Expect(0, 5119, '\p{^Is_Blk:   cherokee}', "");
-    Expect(0, 5119, '\P{Is_Blk:   cherokee}', "");
-    Expect(1, 5119, '\P{^Is_Blk:   cherokee}', "");
-    Expect(0, 5120, '\p{Is_Blk:   cherokee}', "");
-    Expect(1, 5120, '\p{^Is_Blk:   cherokee}', "");
-    Expect(1, 5120, '\P{Is_Blk:   cherokee}', "");
-    Expect(0, 5120, '\P{^Is_Blk:   cherokee}', "");
-    Expect(1, 5119, '\p{Is_Blk=- Cherokee}', "");
-    Expect(0, 5119, '\p{^Is_Blk=- Cherokee}', "");
-    Expect(0, 5119, '\P{Is_Blk=- Cherokee}', "");
-    Expect(1, 5119, '\P{^Is_Blk=- Cherokee}', "");
-    Expect(0, 5120, '\p{Is_Blk=- Cherokee}', "");
-    Expect(1, 5120, '\p{^Is_Blk=- Cherokee}', "");
-    Expect(1, 5120, '\P{Is_Blk=- Cherokee}', "");
-    Expect(0, 5120, '\P{^Is_Blk=- Cherokee}', "");
-    Error('\p{Block:    -Cherokee_Supplement:=}');
-    Error('\P{Block:    -Cherokee_Supplement:=}');
+    Expect(1, 5119, '\p{Is_Block=  Cherokee}', "");
+    Expect(0, 5119, '\p{^Is_Block=  Cherokee}', "");
+    Expect(0, 5119, '\P{Is_Block=  Cherokee}', "");
+    Expect(1, 5119, '\P{^Is_Block=  Cherokee}', "");
+    Expect(0, 5120, '\p{Is_Block=  Cherokee}', "");
+    Expect(1, 5120, '\p{^Is_Block=  Cherokee}', "");
+    Expect(1, 5120, '\P{Is_Block=  Cherokee}', "");
+    Expect(0, 5120, '\P{^Is_Block=  Cherokee}', "");
+    Error('\p{Is_Blk=_	Cherokee/a/}');
+    Error('\P{Is_Blk=_	Cherokee/a/}');
+    Expect(1, 5119, '\p{Is_Blk=cherokee}', "");
+    Expect(0, 5119, '\p{^Is_Blk=cherokee}', "");
+    Expect(0, 5119, '\P{Is_Blk=cherokee}', "");
+    Expect(1, 5119, '\P{^Is_Blk=cherokee}', "");
+    Expect(0, 5120, '\p{Is_Blk=cherokee}', "");
+    Expect(1, 5120, '\p{^Is_Blk=cherokee}', "");
+    Expect(1, 5120, '\P{Is_Blk=cherokee}', "");
+    Expect(0, 5120, '\P{^Is_Blk=cherokee}', "");
+    Expect(1, 5119, '\p{Is_Blk=	-CHEROKEE}', "");
+    Expect(0, 5119, '\p{^Is_Blk=	-CHEROKEE}', "");
+    Expect(0, 5119, '\P{Is_Blk=	-CHEROKEE}', "");
+    Expect(1, 5119, '\P{^Is_Blk=	-CHEROKEE}', "");
+    Expect(0, 5120, '\p{Is_Blk=	-CHEROKEE}', "");
+    Expect(1, 5120, '\p{^Is_Blk=	-CHEROKEE}', "");
+    Expect(1, 5120, '\P{Is_Blk=	-CHEROKEE}', "");
+    Expect(0, 5120, '\P{^Is_Blk=	-CHEROKEE}', "");
+    Error('\p{Block=	:=Cherokee_Supplement}');
+    Error('\P{Block=	:=Cherokee_Supplement}');
     Expect(1, 43967, '\p{Block=:\ACherokee_Supplement\z:}', "");;
     Expect(0, 43968, '\p{Block=:\ACherokee_Supplement\z:}', "");;
     Expect(1, 43967, '\p{Block=cherokeesupplement}', "");
@@ -6996,136 +7100,136 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43968, '\P{^Block=cherokeesupplement}', "");
     Expect(1, 43967, '\p{Block=:\Acherokeesupplement\z:}', "");;
     Expect(0, 43968, '\p{Block=:\Acherokeesupplement\z:}', "");;
-    Expect(1, 43967, '\p{Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(0, 43967, '\p{^Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(0, 43967, '\P{Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(1, 43967, '\P{^Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(0, 43968, '\p{Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(1, 43968, '\p{^Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(1, 43968, '\P{Block=_	cherokee_SUPPLEMENT}', "");
-    Expect(0, 43968, '\P{^Block=_	cherokee_SUPPLEMENT}', "");
-    Error('\p{Blk=/a/_cherokee_Sup}');
-    Error('\P{Blk=/a/_cherokee_Sup}');
+    Expect(1, 43967, '\p{Block= CHEROKEE_Supplement}', "");
+    Expect(0, 43967, '\p{^Block= CHEROKEE_Supplement}', "");
+    Expect(0, 43967, '\P{Block= CHEROKEE_Supplement}', "");
+    Expect(1, 43967, '\P{^Block= CHEROKEE_Supplement}', "");
+    Expect(0, 43968, '\p{Block= CHEROKEE_Supplement}', "");
+    Expect(1, 43968, '\p{^Block= CHEROKEE_Supplement}', "");
+    Expect(1, 43968, '\P{Block= CHEROKEE_Supplement}', "");
+    Expect(0, 43968, '\P{^Block= CHEROKEE_Supplement}', "");
+    Error('\p{Blk=- CHEROKEE_Sup:=}');
+    Error('\P{Blk=- CHEROKEE_Sup:=}');
     Expect(1, 43967, '\p{Blk=:\ACherokee_Sup\z:}', "");;
     Expect(0, 43968, '\p{Blk=:\ACherokee_Sup\z:}', "");;
-    Expect(1, 43967, '\p{Blk=cherokeesup}', "");
-    Expect(0, 43967, '\p{^Blk=cherokeesup}', "");
-    Expect(0, 43967, '\P{Blk=cherokeesup}', "");
-    Expect(1, 43967, '\P{^Blk=cherokeesup}', "");
-    Expect(0, 43968, '\p{Blk=cherokeesup}', "");
-    Expect(1, 43968, '\p{^Blk=cherokeesup}', "");
-    Expect(1, 43968, '\P{Blk=cherokeesup}', "");
-    Expect(0, 43968, '\P{^Blk=cherokeesup}', "");
+    Expect(1, 43967, '\p{Blk:	cherokeesup}', "");
+    Expect(0, 43967, '\p{^Blk:	cherokeesup}', "");
+    Expect(0, 43967, '\P{Blk:	cherokeesup}', "");
+    Expect(1, 43967, '\P{^Blk:	cherokeesup}', "");
+    Expect(0, 43968, '\p{Blk:	cherokeesup}', "");
+    Expect(1, 43968, '\p{^Blk:	cherokeesup}', "");
+    Expect(1, 43968, '\P{Blk:	cherokeesup}', "");
+    Expect(0, 43968, '\P{^Blk:	cherokeesup}', "");
     Expect(1, 43967, '\p{Blk=:\Acherokeesup\z:}', "");;
     Expect(0, 43968, '\p{Blk=:\Acherokeesup\z:}', "");;
-    Expect(1, 43967, '\p{Blk=	_cherokee_SUP}', "");
-    Expect(0, 43967, '\p{^Blk=	_cherokee_SUP}', "");
-    Expect(0, 43967, '\P{Blk=	_cherokee_SUP}', "");
-    Expect(1, 43967, '\P{^Blk=	_cherokee_SUP}', "");
-    Expect(0, 43968, '\p{Blk=	_cherokee_SUP}', "");
-    Expect(1, 43968, '\p{^Blk=	_cherokee_SUP}', "");
-    Expect(1, 43968, '\P{Blk=	_cherokee_SUP}', "");
-    Expect(0, 43968, '\P{^Blk=	_cherokee_SUP}', "");
-    Error('\p{Is_Block=:= cherokee_Supplement}');
-    Error('\P{Is_Block=:= cherokee_Supplement}');
-    Expect(1, 43967, '\p{Is_Block=cherokeesupplement}', "");
-    Expect(0, 43967, '\p{^Is_Block=cherokeesupplement}', "");
-    Expect(0, 43967, '\P{Is_Block=cherokeesupplement}', "");
-    Expect(1, 43967, '\P{^Is_Block=cherokeesupplement}', "");
-    Expect(0, 43968, '\p{Is_Block=cherokeesupplement}', "");
-    Expect(1, 43968, '\p{^Is_Block=cherokeesupplement}', "");
-    Expect(1, 43968, '\P{Is_Block=cherokeesupplement}', "");
-    Expect(0, 43968, '\P{^Is_Block=cherokeesupplement}', "");
-    Expect(1, 43967, '\p{Is_Block= cherokee_Supplement}', "");
-    Expect(0, 43967, '\p{^Is_Block= cherokee_Supplement}', "");
-    Expect(0, 43967, '\P{Is_Block= cherokee_Supplement}', "");
-    Expect(1, 43967, '\P{^Is_Block= cherokee_Supplement}', "");
-    Expect(0, 43968, '\p{Is_Block= cherokee_Supplement}', "");
-    Expect(1, 43968, '\p{^Is_Block= cherokee_Supplement}', "");
-    Expect(1, 43968, '\P{Is_Block= cherokee_Supplement}', "");
-    Expect(0, 43968, '\P{^Is_Block= cherokee_Supplement}', "");
-    Error('\p{Is_Blk: 		CHEROKEE_SUP/a/}');
-    Error('\P{Is_Blk: 		CHEROKEE_SUP/a/}');
-    Expect(1, 43967, '\p{Is_Blk=cherokeesup}', "");
-    Expect(0, 43967, '\p{^Is_Blk=cherokeesup}', "");
-    Expect(0, 43967, '\P{Is_Blk=cherokeesup}', "");
-    Expect(1, 43967, '\P{^Is_Blk=cherokeesup}', "");
-    Expect(0, 43968, '\p{Is_Blk=cherokeesup}', "");
-    Expect(1, 43968, '\p{^Is_Blk=cherokeesup}', "");
-    Expect(1, 43968, '\P{Is_Blk=cherokeesup}', "");
-    Expect(0, 43968, '\P{^Is_Blk=cherokeesup}', "");
-    Expect(1, 43967, '\p{Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(0, 43967, '\p{^Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(0, 43967, '\P{Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(1, 43967, '\P{^Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(0, 43968, '\p{Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(1, 43968, '\p{^Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(1, 43968, '\P{Is_Blk=		CHEROKEE_Sup}', "");
-    Expect(0, 43968, '\P{^Is_Blk=		CHEROKEE_Sup}', "");
-    Error('\p{Block=/a/-Chess_Symbols}');
-    Error('\P{Block=/a/-Chess_Symbols}');
+    Expect(1, 43967, '\p{Blk= 	Cherokee_Sup}', "");
+    Expect(0, 43967, '\p{^Blk= 	Cherokee_Sup}', "");
+    Expect(0, 43967, '\P{Blk= 	Cherokee_Sup}', "");
+    Expect(1, 43967, '\P{^Blk= 	Cherokee_Sup}', "");
+    Expect(0, 43968, '\p{Blk= 	Cherokee_Sup}', "");
+    Expect(1, 43968, '\p{^Blk= 	Cherokee_Sup}', "");
+    Expect(1, 43968, '\P{Blk= 	Cherokee_Sup}', "");
+    Expect(0, 43968, '\P{^Blk= 	Cherokee_Sup}', "");
+    Error('\p{Is_Block= :=cherokee_Supplement}');
+    Error('\P{Is_Block= :=cherokee_Supplement}');
+    Expect(1, 43967, '\p{Is_Block:cherokeesupplement}', "");
+    Expect(0, 43967, '\p{^Is_Block:cherokeesupplement}', "");
+    Expect(0, 43967, '\P{Is_Block:cherokeesupplement}', "");
+    Expect(1, 43967, '\P{^Is_Block:cherokeesupplement}', "");
+    Expect(0, 43968, '\p{Is_Block:cherokeesupplement}', "");
+    Expect(1, 43968, '\p{^Is_Block:cherokeesupplement}', "");
+    Expect(1, 43968, '\P{Is_Block:cherokeesupplement}', "");
+    Expect(0, 43968, '\P{^Is_Block:cherokeesupplement}', "");
+    Expect(1, 43967, '\p{Is_Block= -cherokee_Supplement}', "");
+    Expect(0, 43967, '\p{^Is_Block= -cherokee_Supplement}', "");
+    Expect(0, 43967, '\P{Is_Block= -cherokee_Supplement}', "");
+    Expect(1, 43967, '\P{^Is_Block= -cherokee_Supplement}', "");
+    Expect(0, 43968, '\p{Is_Block= -cherokee_Supplement}', "");
+    Expect(1, 43968, '\p{^Is_Block= -cherokee_Supplement}', "");
+    Expect(1, 43968, '\P{Is_Block= -cherokee_Supplement}', "");
+    Expect(0, 43968, '\P{^Is_Block= -cherokee_Supplement}', "");
+    Error('\p{Is_Blk=:= -cherokee_SUP}');
+    Error('\P{Is_Blk=:= -cherokee_SUP}');
+    Expect(1, 43967, '\p{Is_Blk:cherokeesup}', "");
+    Expect(0, 43967, '\p{^Is_Blk:cherokeesup}', "");
+    Expect(0, 43967, '\P{Is_Blk:cherokeesup}', "");
+    Expect(1, 43967, '\P{^Is_Blk:cherokeesup}', "");
+    Expect(0, 43968, '\p{Is_Blk:cherokeesup}', "");
+    Expect(1, 43968, '\p{^Is_Blk:cherokeesup}', "");
+    Expect(1, 43968, '\P{Is_Blk:cherokeesup}', "");
+    Expect(0, 43968, '\P{^Is_Blk:cherokeesup}', "");
+    Expect(1, 43967, '\p{Is_Blk=  CHEROKEE_sup}', "");
+    Expect(0, 43967, '\p{^Is_Blk=  CHEROKEE_sup}', "");
+    Expect(0, 43967, '\P{Is_Blk=  CHEROKEE_sup}', "");
+    Expect(1, 43967, '\P{^Is_Blk=  CHEROKEE_sup}', "");
+    Expect(0, 43968, '\p{Is_Blk=  CHEROKEE_sup}', "");
+    Expect(1, 43968, '\p{^Is_Blk=  CHEROKEE_sup}', "");
+    Expect(1, 43968, '\P{Is_Blk=  CHEROKEE_sup}', "");
+    Expect(0, 43968, '\P{^Is_Blk=  CHEROKEE_sup}', "");
+    Error('\p{Block: _:=CHESS_Symbols}');
+    Error('\P{Block: _:=CHESS_Symbols}');
     Expect(1, 129647, '\p{Block=:\AChess_Symbols\z:}', "");;
     Expect(0, 129648, '\p{Block=:\AChess_Symbols\z:}', "");;
-    Expect(1, 129647, '\p{Block=chesssymbols}', "");
-    Expect(0, 129647, '\p{^Block=chesssymbols}', "");
-    Expect(0, 129647, '\P{Block=chesssymbols}', "");
-    Expect(1, 129647, '\P{^Block=chesssymbols}', "");
-    Expect(0, 129648, '\p{Block=chesssymbols}', "");
-    Expect(1, 129648, '\p{^Block=chesssymbols}', "");
-    Expect(1, 129648, '\P{Block=chesssymbols}', "");
-    Expect(0, 129648, '\P{^Block=chesssymbols}', "");
+    Expect(1, 129647, '\p{Block:   chesssymbols}', "");
+    Expect(0, 129647, '\p{^Block:   chesssymbols}', "");
+    Expect(0, 129647, '\P{Block:   chesssymbols}', "");
+    Expect(1, 129647, '\P{^Block:   chesssymbols}', "");
+    Expect(0, 129648, '\p{Block:   chesssymbols}', "");
+    Expect(1, 129648, '\p{^Block:   chesssymbols}', "");
+    Expect(1, 129648, '\P{Block:   chesssymbols}', "");
+    Expect(0, 129648, '\P{^Block:   chesssymbols}', "");
     Expect(1, 129647, '\p{Block=:\Achesssymbols\z:}', "");;
     Expect(0, 129648, '\p{Block=:\Achesssymbols\z:}', "");;
-    Expect(1, 129647, '\p{Block=- Chess_symbols}', "");
-    Expect(0, 129647, '\p{^Block=- Chess_symbols}', "");
-    Expect(0, 129647, '\P{Block=- Chess_symbols}', "");
-    Expect(1, 129647, '\P{^Block=- Chess_symbols}', "");
-    Expect(0, 129648, '\p{Block=- Chess_symbols}', "");
-    Expect(1, 129648, '\p{^Block=- Chess_symbols}', "");
-    Expect(1, 129648, '\P{Block=- Chess_symbols}', "");
-    Expect(0, 129648, '\P{^Block=- Chess_symbols}', "");
-    Error('\p{Blk=		Chess_Symbols:=}');
-    Error('\P{Blk=		Chess_Symbols:=}');
+    Expect(1, 129647, '\p{Block= -CHESS_Symbols}', "");
+    Expect(0, 129647, '\p{^Block= -CHESS_Symbols}', "");
+    Expect(0, 129647, '\P{Block= -CHESS_Symbols}', "");
+    Expect(1, 129647, '\P{^Block= -CHESS_Symbols}', "");
+    Expect(0, 129648, '\p{Block= -CHESS_Symbols}', "");
+    Expect(1, 129648, '\p{^Block= -CHESS_Symbols}', "");
+    Expect(1, 129648, '\P{Block= -CHESS_Symbols}', "");
+    Expect(0, 129648, '\P{^Block= -CHESS_Symbols}', "");
+    Error('\p{Blk:	:=chess_Symbols}');
+    Error('\P{Blk:	:=chess_Symbols}');
     Expect(1, 129647, '\p{Blk=:\AChess_Symbols\z:}', "");;
     Expect(0, 129648, '\p{Blk=:\AChess_Symbols\z:}', "");;
-    Expect(1, 129647, '\p{Blk: chesssymbols}', "");
-    Expect(0, 129647, '\p{^Blk: chesssymbols}', "");
-    Expect(0, 129647, '\P{Blk: chesssymbols}', "");
-    Expect(1, 129647, '\P{^Blk: chesssymbols}', "");
-    Expect(0, 129648, '\p{Blk: chesssymbols}', "");
-    Expect(1, 129648, '\p{^Blk: chesssymbols}', "");
-    Expect(1, 129648, '\P{Blk: chesssymbols}', "");
-    Expect(0, 129648, '\P{^Blk: chesssymbols}', "");
+    Expect(1, 129647, '\p{Blk=chesssymbols}', "");
+    Expect(0, 129647, '\p{^Blk=chesssymbols}', "");
+    Expect(0, 129647, '\P{Blk=chesssymbols}', "");
+    Expect(1, 129647, '\P{^Blk=chesssymbols}', "");
+    Expect(0, 129648, '\p{Blk=chesssymbols}', "");
+    Expect(1, 129648, '\p{^Blk=chesssymbols}', "");
+    Expect(1, 129648, '\P{Blk=chesssymbols}', "");
+    Expect(0, 129648, '\P{^Blk=chesssymbols}', "");
     Expect(1, 129647, '\p{Blk=:\Achesssymbols\z:}', "");;
     Expect(0, 129648, '\p{Blk=:\Achesssymbols\z:}', "");;
-    Expect(1, 129647, '\p{Blk=-	CHESS_Symbols}', "");
-    Expect(0, 129647, '\p{^Blk=-	CHESS_Symbols}', "");
-    Expect(0, 129647, '\P{Blk=-	CHESS_Symbols}', "");
-    Expect(1, 129647, '\P{^Blk=-	CHESS_Symbols}', "");
-    Expect(0, 129648, '\p{Blk=-	CHESS_Symbols}', "");
-    Expect(1, 129648, '\p{^Blk=-	CHESS_Symbols}', "");
-    Expect(1, 129648, '\P{Blk=-	CHESS_Symbols}', "");
-    Expect(0, 129648, '\P{^Blk=-	CHESS_Symbols}', "");
-    Error('\p{Is_Block=:= -Chess_symbols}');
-    Error('\P{Is_Block=:= -Chess_symbols}');
-    Expect(1, 129647, '\p{Is_Block:	chesssymbols}', "");
-    Expect(0, 129647, '\p{^Is_Block:	chesssymbols}', "");
-    Expect(0, 129647, '\P{Is_Block:	chesssymbols}', "");
-    Expect(1, 129647, '\P{^Is_Block:	chesssymbols}', "");
-    Expect(0, 129648, '\p{Is_Block:	chesssymbols}', "");
-    Expect(1, 129648, '\p{^Is_Block:	chesssymbols}', "");
-    Expect(1, 129648, '\P{Is_Block:	chesssymbols}', "");
-    Expect(0, 129648, '\P{^Is_Block:	chesssymbols}', "");
-    Expect(1, 129647, '\p{Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(0, 129647, '\p{^Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(0, 129647, '\P{Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(1, 129647, '\P{^Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(0, 129648, '\p{Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(1, 129648, '\p{^Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(1, 129648, '\P{Is_Block=_ Chess_SYMBOLS}', "");
-    Expect(0, 129648, '\P{^Is_Block=_ Chess_SYMBOLS}', "");
-    Error('\p{Is_Blk:   	 chess_SYMBOLS:=}');
-    Error('\P{Is_Blk:   	 chess_SYMBOLS:=}');
+    Expect(1, 129647, '\p{Blk=--Chess_Symbols}', "");
+    Expect(0, 129647, '\p{^Blk=--Chess_Symbols}', "");
+    Expect(0, 129647, '\P{Blk=--Chess_Symbols}', "");
+    Expect(1, 129647, '\P{^Blk=--Chess_Symbols}', "");
+    Expect(0, 129648, '\p{Blk=--Chess_Symbols}', "");
+    Expect(1, 129648, '\p{^Blk=--Chess_Symbols}', "");
+    Expect(1, 129648, '\P{Blk=--Chess_Symbols}', "");
+    Expect(0, 129648, '\P{^Blk=--Chess_Symbols}', "");
+    Error('\p{Is_Block=/a/__chess_SYMBOLS}');
+    Error('\P{Is_Block=/a/__chess_SYMBOLS}');
+    Expect(1, 129647, '\p{Is_Block=chesssymbols}', "");
+    Expect(0, 129647, '\p{^Is_Block=chesssymbols}', "");
+    Expect(0, 129647, '\P{Is_Block=chesssymbols}', "");
+    Expect(1, 129647, '\P{^Is_Block=chesssymbols}', "");
+    Expect(0, 129648, '\p{Is_Block=chesssymbols}', "");
+    Expect(1, 129648, '\p{^Is_Block=chesssymbols}', "");
+    Expect(1, 129648, '\P{Is_Block=chesssymbols}', "");
+    Expect(0, 129648, '\P{^Is_Block=chesssymbols}', "");
+    Expect(1, 129647, '\p{Is_Block: Chess_Symbols}', "");
+    Expect(0, 129647, '\p{^Is_Block: Chess_Symbols}', "");
+    Expect(0, 129647, '\P{Is_Block: Chess_Symbols}', "");
+    Expect(1, 129647, '\P{^Is_Block: Chess_Symbols}', "");
+    Expect(0, 129648, '\p{Is_Block: Chess_Symbols}', "");
+    Expect(1, 129648, '\p{^Is_Block: Chess_Symbols}', "");
+    Expect(1, 129648, '\P{Is_Block: Chess_Symbols}', "");
+    Expect(0, 129648, '\P{^Is_Block: Chess_Symbols}', "");
+    Error('\p{Is_Blk=	/a/CHESS_SYMBOLS}');
+    Error('\P{Is_Blk=	/a/CHESS_SYMBOLS}');
     Expect(1, 129647, '\p{Is_Blk=chesssymbols}', "");
     Expect(0, 129647, '\p{^Is_Blk=chesssymbols}', "");
     Expect(0, 129647, '\P{Is_Blk=chesssymbols}', "");
@@ -7134,16 +7238,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129648, '\p{^Is_Blk=chesssymbols}', "");
     Expect(1, 129648, '\P{Is_Blk=chesssymbols}', "");
     Expect(0, 129648, '\P{^Is_Blk=chesssymbols}', "");
-    Expect(1, 129647, '\p{Is_Blk=-CHESS_Symbols}', "");
-    Expect(0, 129647, '\p{^Is_Blk=-CHESS_Symbols}', "");
-    Expect(0, 129647, '\P{Is_Blk=-CHESS_Symbols}', "");
-    Expect(1, 129647, '\P{^Is_Blk=-CHESS_Symbols}', "");
-    Expect(0, 129648, '\p{Is_Blk=-CHESS_Symbols}', "");
-    Expect(1, 129648, '\p{^Is_Blk=-CHESS_Symbols}', "");
-    Expect(1, 129648, '\P{Is_Blk=-CHESS_Symbols}', "");
-    Expect(0, 129648, '\P{^Is_Blk=-CHESS_Symbols}', "");
-    Error('\p{Block=:=- CHORASMIAN}');
-    Error('\P{Block=:=- CHORASMIAN}');
+    Expect(1, 129647, '\p{Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(0, 129647, '\p{^Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(0, 129647, '\P{Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(1, 129647, '\P{^Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(0, 129648, '\p{Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(1, 129648, '\p{^Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(1, 129648, '\P{Is_Blk= 	Chess_SYMBOLS}', "");
+    Expect(0, 129648, '\P{^Is_Blk= 	Chess_SYMBOLS}', "");
+    Error('\p{Block:	 chorasmian:=}');
+    Error('\P{Block:	 chorasmian:=}');
     Expect(1, 69599, '\p{Block=:\AChorasmian\z:}', "");;
     Expect(0, 69600, '\p{Block=:\AChorasmian\z:}', "");;
     Expect(1, 69599, '\p{Block=chorasmian}', "");
@@ -7156,16 +7260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69600, '\P{^Block=chorasmian}', "");
     Expect(1, 69599, '\p{Block=:\Achorasmian\z:}', "");;
     Expect(0, 69600, '\p{Block=:\Achorasmian\z:}', "");;
-    Expect(1, 69599, '\p{Block=-_CHORASMIAN}', "");
-    Expect(0, 69599, '\p{^Block=-_CHORASMIAN}', "");
-    Expect(0, 69599, '\P{Block=-_CHORASMIAN}', "");
-    Expect(1, 69599, '\P{^Block=-_CHORASMIAN}', "");
-    Expect(0, 69600, '\p{Block=-_CHORASMIAN}', "");
-    Expect(1, 69600, '\p{^Block=-_CHORASMIAN}', "");
-    Expect(1, 69600, '\P{Block=-_CHORASMIAN}', "");
-    Expect(0, 69600, '\P{^Block=-_CHORASMIAN}', "");
-    Error('\p{Blk= :=CHORASMIAN}');
-    Error('\P{Blk= :=CHORASMIAN}');
+    Expect(1, 69599, '\p{Block:			Chorasmian}', "");
+    Expect(0, 69599, '\p{^Block:			Chorasmian}', "");
+    Expect(0, 69599, '\P{Block:			Chorasmian}', "");
+    Expect(1, 69599, '\P{^Block:			Chorasmian}', "");
+    Expect(0, 69600, '\p{Block:			Chorasmian}', "");
+    Expect(1, 69600, '\p{^Block:			Chorasmian}', "");
+    Expect(1, 69600, '\P{Block:			Chorasmian}', "");
+    Expect(0, 69600, '\P{^Block:			Chorasmian}', "");
+    Error('\p{Blk=-Chorasmian:=}');
+    Error('\P{Blk=-Chorasmian:=}');
     Expect(1, 69599, '\p{Blk=:\AChorasmian\z:}', "");;
     Expect(0, 69600, '\p{Blk=:\AChorasmian\z:}', "");;
     Expect(1, 69599, '\p{Blk=chorasmian}', "");
@@ -7178,16 +7282,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69600, '\P{^Blk=chorasmian}', "");
     Expect(1, 69599, '\p{Blk=:\Achorasmian\z:}', "");;
     Expect(0, 69600, '\p{Blk=:\Achorasmian\z:}', "");;
-    Expect(1, 69599, '\p{Blk=-_CHORASMIAN}', "");
-    Expect(0, 69599, '\p{^Blk=-_CHORASMIAN}', "");
-    Expect(0, 69599, '\P{Blk=-_CHORASMIAN}', "");
-    Expect(1, 69599, '\P{^Blk=-_CHORASMIAN}', "");
-    Expect(0, 69600, '\p{Blk=-_CHORASMIAN}', "");
-    Expect(1, 69600, '\p{^Blk=-_CHORASMIAN}', "");
-    Expect(1, 69600, '\P{Blk=-_CHORASMIAN}', "");
-    Expect(0, 69600, '\P{^Blk=-_CHORASMIAN}', "");
-    Error('\p{Is_Block: /a/chorasmian}');
-    Error('\P{Is_Block: /a/chorasmian}');
+    Expect(1, 69599, '\p{Blk=	Chorasmian}', "");
+    Expect(0, 69599, '\p{^Blk=	Chorasmian}', "");
+    Expect(0, 69599, '\P{Blk=	Chorasmian}', "");
+    Expect(1, 69599, '\P{^Blk=	Chorasmian}', "");
+    Expect(0, 69600, '\p{Blk=	Chorasmian}', "");
+    Expect(1, 69600, '\p{^Blk=	Chorasmian}', "");
+    Expect(1, 69600, '\P{Blk=	Chorasmian}', "");
+    Expect(0, 69600, '\P{^Blk=	Chorasmian}', "");
+    Error('\p{Is_Block=:=  CHORASMIAN}');
+    Error('\P{Is_Block=:=  CHORASMIAN}');
     Expect(1, 69599, '\p{Is_Block=chorasmian}', "");
     Expect(0, 69599, '\p{^Is_Block=chorasmian}', "");
     Expect(0, 69599, '\P{Is_Block=chorasmian}', "");
@@ -7196,34 +7300,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69600, '\p{^Is_Block=chorasmian}', "");
     Expect(1, 69600, '\P{Is_Block=chorasmian}', "");
     Expect(0, 69600, '\P{^Is_Block=chorasmian}', "");
-    Expect(1, 69599, '\p{Is_Block=_ Chorasmian}', "");
-    Expect(0, 69599, '\p{^Is_Block=_ Chorasmian}', "");
-    Expect(0, 69599, '\P{Is_Block=_ Chorasmian}', "");
-    Expect(1, 69599, '\P{^Is_Block=_ Chorasmian}', "");
-    Expect(0, 69600, '\p{Is_Block=_ Chorasmian}', "");
-    Expect(1, 69600, '\p{^Is_Block=_ Chorasmian}', "");
-    Expect(1, 69600, '\P{Is_Block=_ Chorasmian}', "");
-    Expect(0, 69600, '\P{^Is_Block=_ Chorasmian}', "");
-    Error('\p{Is_Blk=/a/ -Chorasmian}');
-    Error('\P{Is_Blk=/a/ -Chorasmian}');
-    Expect(1, 69599, '\p{Is_Blk:	chorasmian}', "");
-    Expect(0, 69599, '\p{^Is_Blk:	chorasmian}', "");
-    Expect(0, 69599, '\P{Is_Blk:	chorasmian}', "");
-    Expect(1, 69599, '\P{^Is_Blk:	chorasmian}', "");
-    Expect(0, 69600, '\p{Is_Blk:	chorasmian}', "");
-    Expect(1, 69600, '\p{^Is_Blk:	chorasmian}', "");
-    Expect(1, 69600, '\P{Is_Blk:	chorasmian}', "");
-    Expect(0, 69600, '\P{^Is_Blk:	chorasmian}', "");
-    Expect(1, 69599, '\p{Is_Blk= _chorasmian}', "");
-    Expect(0, 69599, '\p{^Is_Blk= _chorasmian}', "");
-    Expect(0, 69599, '\P{Is_Blk= _chorasmian}', "");
-    Expect(1, 69599, '\P{^Is_Blk= _chorasmian}', "");
-    Expect(0, 69600, '\p{Is_Blk= _chorasmian}', "");
-    Expect(1, 69600, '\p{^Is_Blk= _chorasmian}', "");
-    Expect(1, 69600, '\P{Is_Blk= _chorasmian}', "");
-    Expect(0, 69600, '\P{^Is_Blk= _chorasmian}', "");
-    Error('\p{Block=_/a/CJK_Unified_ideographs}');
-    Error('\P{Block=_/a/CJK_Unified_ideographs}');
+    Expect(1, 69599, '\p{Is_Block= _chorasmian}', "");
+    Expect(0, 69599, '\p{^Is_Block= _chorasmian}', "");
+    Expect(0, 69599, '\P{Is_Block= _chorasmian}', "");
+    Expect(1, 69599, '\P{^Is_Block= _chorasmian}', "");
+    Expect(0, 69600, '\p{Is_Block= _chorasmian}', "");
+    Expect(1, 69600, '\p{^Is_Block= _chorasmian}', "");
+    Expect(1, 69600, '\P{Is_Block= _chorasmian}', "");
+    Expect(0, 69600, '\P{^Is_Block= _chorasmian}', "");
+    Error('\p{Is_Blk=-	Chorasmian/a/}');
+    Error('\P{Is_Blk=-	Chorasmian/a/}');
+    Expect(1, 69599, '\p{Is_Blk=chorasmian}', "");
+    Expect(0, 69599, '\p{^Is_Blk=chorasmian}', "");
+    Expect(0, 69599, '\P{Is_Blk=chorasmian}', "");
+    Expect(1, 69599, '\P{^Is_Blk=chorasmian}', "");
+    Expect(0, 69600, '\p{Is_Blk=chorasmian}', "");
+    Expect(1, 69600, '\p{^Is_Blk=chorasmian}', "");
+    Expect(1, 69600, '\P{Is_Blk=chorasmian}', "");
+    Expect(0, 69600, '\P{^Is_Blk=chorasmian}', "");
+    Expect(1, 69599, '\p{Is_Blk=		chorasmian}', "");
+    Expect(0, 69599, '\p{^Is_Blk=		chorasmian}', "");
+    Expect(0, 69599, '\P{Is_Blk=		chorasmian}', "");
+    Expect(1, 69599, '\P{^Is_Blk=		chorasmian}', "");
+    Expect(0, 69600, '\p{Is_Blk=		chorasmian}', "");
+    Expect(1, 69600, '\p{^Is_Blk=		chorasmian}', "");
+    Expect(1, 69600, '\P{Is_Blk=		chorasmian}', "");
+    Expect(0, 69600, '\P{^Is_Blk=		chorasmian}', "");
+    Error('\p{Block=/a/ -CJK_Unified_ideographs}');
+    Error('\P{Block=/a/ -CJK_Unified_ideographs}');
     Expect(1, 40959, '\p{Block=:\ACJK_Unified_Ideographs\z:}', "");;
     Expect(0, 40960, '\p{Block=:\ACJK_Unified_Ideographs\z:}', "");;
     Expect(1, 40959, '\p{Block=cjkunifiedideographs}', "");
@@ -7236,16 +7340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 40960, '\P{^Block=cjkunifiedideographs}', "");
     Expect(1, 40959, '\p{Block=:\Acjkunifiedideographs\z:}', "");;
     Expect(0, 40960, '\p{Block=:\Acjkunifiedideographs\z:}', "");;
-    Expect(1, 40959, '\p{Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(0, 40959, '\p{^Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(0, 40959, '\P{Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(1, 40959, '\P{^Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(0, 40960, '\p{Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(1, 40960, '\p{^Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(1, 40960, '\P{Block=_	cjk_UNIFIED_Ideographs}', "");
-    Expect(0, 40960, '\P{^Block=_	cjk_UNIFIED_Ideographs}', "");
-    Error('\p{Blk=:= -CJK}');
-    Error('\P{Blk=:= -CJK}');
+    Expect(1, 40959, '\p{Block=--CJK_Unified_Ideographs}', "");
+    Expect(0, 40959, '\p{^Block=--CJK_Unified_Ideographs}', "");
+    Expect(0, 40959, '\P{Block=--CJK_Unified_Ideographs}', "");
+    Expect(1, 40959, '\P{^Block=--CJK_Unified_Ideographs}', "");
+    Expect(0, 40960, '\p{Block=--CJK_Unified_Ideographs}', "");
+    Expect(1, 40960, '\p{^Block=--CJK_Unified_Ideographs}', "");
+    Expect(1, 40960, '\P{Block=--CJK_Unified_Ideographs}', "");
+    Expect(0, 40960, '\P{^Block=--CJK_Unified_Ideographs}', "");
+    Error('\p{Blk=:=_ CJK}');
+    Error('\P{Blk=:=_ CJK}');
     Expect(1, 40959, '\p{Blk=:\ACJK\z:}', "");;
     Expect(0, 40960, '\p{Blk=:\ACJK\z:}', "");;
     Expect(1, 40959, '\p{Blk=cjk}', "");
@@ -7258,74 +7362,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 40960, '\P{^Blk=cjk}', "");
     Expect(1, 40959, '\p{Blk=:\Acjk\z:}', "");;
     Expect(0, 40960, '\p{Blk=:\Acjk\z:}', "");;
-    Expect(1, 40959, '\p{Blk=_ CJK}', "");
-    Expect(0, 40959, '\p{^Blk=_ CJK}', "");
-    Expect(0, 40959, '\P{Blk=_ CJK}', "");
-    Expect(1, 40959, '\P{^Blk=_ CJK}', "");
-    Expect(0, 40960, '\p{Blk=_ CJK}', "");
-    Expect(1, 40960, '\p{^Blk=_ CJK}', "");
-    Expect(1, 40960, '\P{Blk=_ CJK}', "");
-    Expect(0, 40960, '\P{^Blk=_ CJK}', "");
-    Error('\p{Is_Block=	/a/CJK_UNIFIED_ideographs}');
-    Error('\P{Is_Block=	/a/CJK_UNIFIED_ideographs}');
-    Expect(1, 40959, '\p{Is_Block:cjkunifiedideographs}', "");
-    Expect(0, 40959, '\p{^Is_Block:cjkunifiedideographs}', "");
-    Expect(0, 40959, '\P{Is_Block:cjkunifiedideographs}', "");
-    Expect(1, 40959, '\P{^Is_Block:cjkunifiedideographs}', "");
-    Expect(0, 40960, '\p{Is_Block:cjkunifiedideographs}', "");
-    Expect(1, 40960, '\p{^Is_Block:cjkunifiedideographs}', "");
-    Expect(1, 40960, '\P{Is_Block:cjkunifiedideographs}', "");
-    Expect(0, 40960, '\P{^Is_Block:cjkunifiedideographs}', "");
-    Expect(1, 40959, '\p{Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(0, 40959, '\p{^Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(0, 40959, '\P{Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(1, 40959, '\P{^Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(0, 40960, '\p{Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(1, 40960, '\p{^Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(1, 40960, '\P{Is_Block=_ cjk_Unified_Ideographs}', "");
-    Expect(0, 40960, '\P{^Is_Block=_ cjk_Unified_Ideographs}', "");
-    Error('\p{Is_Blk=_	CJK:=}');
-    Error('\P{Is_Blk=_	CJK:=}');
-    Expect(1, 40959, '\p{Is_Blk: cjk}', "");
-    Expect(0, 40959, '\p{^Is_Blk: cjk}', "");
-    Expect(0, 40959, '\P{Is_Blk: cjk}', "");
-    Expect(1, 40959, '\P{^Is_Blk: cjk}', "");
-    Expect(0, 40960, '\p{Is_Blk: cjk}', "");
-    Expect(1, 40960, '\p{^Is_Blk: cjk}', "");
-    Expect(1, 40960, '\P{Is_Blk: cjk}', "");
-    Expect(0, 40960, '\P{^Is_Blk: cjk}', "");
-    Expect(1, 40959, '\p{Is_Blk:   	_CJK}', "");
-    Expect(0, 40959, '\p{^Is_Blk:   	_CJK}', "");
-    Expect(0, 40959, '\P{Is_Blk:   	_CJK}', "");
-    Expect(1, 40959, '\P{^Is_Blk:   	_CJK}', "");
-    Expect(0, 40960, '\p{Is_Blk:   	_CJK}', "");
-    Expect(1, 40960, '\p{^Is_Blk:   	_CJK}', "");
-    Expect(1, 40960, '\P{Is_Blk:   	_CJK}', "");
-    Expect(0, 40960, '\P{^Is_Blk:   	_CJK}', "");
-    Error('\p{Block=/a/cjk_COMPATIBILITY}');
-    Error('\P{Block=/a/cjk_COMPATIBILITY}');
+    Expect(1, 40959, '\p{Blk:		_cjk}', "");
+    Expect(0, 40959, '\p{^Blk:		_cjk}', "");
+    Expect(0, 40959, '\P{Blk:		_cjk}', "");
+    Expect(1, 40959, '\P{^Blk:		_cjk}', "");
+    Expect(0, 40960, '\p{Blk:		_cjk}', "");
+    Expect(1, 40960, '\p{^Blk:		_cjk}', "");
+    Expect(1, 40960, '\P{Blk:		_cjk}', "");
+    Expect(0, 40960, '\P{^Blk:		_cjk}', "");
+    Error('\p{Is_Block=:=-_cjk_Unified_ideographs}');
+    Error('\P{Is_Block=:=-_cjk_Unified_ideographs}');
+    Expect(1, 40959, '\p{Is_Block=cjkunifiedideographs}', "");
+    Expect(0, 40959, '\p{^Is_Block=cjkunifiedideographs}', "");
+    Expect(0, 40959, '\P{Is_Block=cjkunifiedideographs}', "");
+    Expect(1, 40959, '\P{^Is_Block=cjkunifiedideographs}', "");
+    Expect(0, 40960, '\p{Is_Block=cjkunifiedideographs}', "");
+    Expect(1, 40960, '\p{^Is_Block=cjkunifiedideographs}', "");
+    Expect(1, 40960, '\P{Is_Block=cjkunifiedideographs}', "");
+    Expect(0, 40960, '\P{^Is_Block=cjkunifiedideographs}', "");
+    Expect(1, 40959, '\p{Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(0, 40959, '\p{^Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(0, 40959, '\P{Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(1, 40959, '\P{^Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(0, 40960, '\p{Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(1, 40960, '\p{^Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(1, 40960, '\P{Is_Block=_ CJK_Unified_Ideographs}', "");
+    Expect(0, 40960, '\P{^Is_Block=_ CJK_Unified_Ideographs}', "");
+    Error('\p{Is_Blk=:= cjk}');
+    Error('\P{Is_Blk=:= cjk}');
+    Expect(1, 40959, '\p{Is_Blk=cjk}', "");
+    Expect(0, 40959, '\p{^Is_Blk=cjk}', "");
+    Expect(0, 40959, '\P{Is_Blk=cjk}', "");
+    Expect(1, 40959, '\P{^Is_Blk=cjk}', "");
+    Expect(0, 40960, '\p{Is_Blk=cjk}', "");
+    Expect(1, 40960, '\p{^Is_Blk=cjk}', "");
+    Expect(1, 40960, '\P{Is_Blk=cjk}', "");
+    Expect(0, 40960, '\P{^Is_Blk=cjk}', "");
+    Expect(1, 40959, '\p{Is_Blk= 	cjk}', "");
+    Expect(0, 40959, '\p{^Is_Blk= 	cjk}', "");
+    Expect(0, 40959, '\P{Is_Blk= 	cjk}', "");
+    Expect(1, 40959, '\P{^Is_Blk= 	cjk}', "");
+    Expect(0, 40960, '\p{Is_Blk= 	cjk}', "");
+    Expect(1, 40960, '\p{^Is_Blk= 	cjk}', "");
+    Expect(1, 40960, '\P{Is_Blk= 	cjk}', "");
+    Expect(0, 40960, '\P{^Is_Blk= 	cjk}', "");
+    Error('\p{Block:   		CJK_Compatibility:=}');
+    Error('\P{Block:   		CJK_Compatibility:=}');
     Expect(1, 13311, '\p{Block=:\ACJK_Compatibility\z:}', "");;
     Expect(0, 13312, '\p{Block=:\ACJK_Compatibility\z:}', "");;
-    Expect(1, 13311, '\p{Block=cjkcompatibility}', "");
-    Expect(0, 13311, '\p{^Block=cjkcompatibility}', "");
-    Expect(0, 13311, '\P{Block=cjkcompatibility}', "");
-    Expect(1, 13311, '\P{^Block=cjkcompatibility}', "");
-    Expect(0, 13312, '\p{Block=cjkcompatibility}', "");
-    Expect(1, 13312, '\p{^Block=cjkcompatibility}', "");
-    Expect(1, 13312, '\P{Block=cjkcompatibility}', "");
-    Expect(0, 13312, '\P{^Block=cjkcompatibility}', "");
+    Expect(1, 13311, '\p{Block:	cjkcompatibility}', "");
+    Expect(0, 13311, '\p{^Block:	cjkcompatibility}', "");
+    Expect(0, 13311, '\P{Block:	cjkcompatibility}', "");
+    Expect(1, 13311, '\P{^Block:	cjkcompatibility}', "");
+    Expect(0, 13312, '\p{Block:	cjkcompatibility}', "");
+    Expect(1, 13312, '\p{^Block:	cjkcompatibility}', "");
+    Expect(1, 13312, '\P{Block:	cjkcompatibility}', "");
+    Expect(0, 13312, '\P{^Block:	cjkcompatibility}', "");
     Expect(1, 13311, '\p{Block=:\Acjkcompatibility\z:}', "");;
     Expect(0, 13312, '\p{Block=:\Acjkcompatibility\z:}', "");;
-    Expect(1, 13311, '\p{Block=	CJK_Compatibility}', "");
-    Expect(0, 13311, '\p{^Block=	CJK_Compatibility}', "");
-    Expect(0, 13311, '\P{Block=	CJK_Compatibility}', "");
-    Expect(1, 13311, '\P{^Block=	CJK_Compatibility}', "");
-    Expect(0, 13312, '\p{Block=	CJK_Compatibility}', "");
-    Expect(1, 13312, '\p{^Block=	CJK_Compatibility}', "");
-    Expect(1, 13312, '\P{Block=	CJK_Compatibility}', "");
-    Expect(0, 13312, '\P{^Block=	CJK_Compatibility}', "");
-    Error('\p{Blk=:=cjk_COMPAT}');
-    Error('\P{Blk=:=cjk_COMPAT}');
+    Expect(1, 13311, '\p{Block= _CJK_compatibility}', "");
+    Expect(0, 13311, '\p{^Block= _CJK_compatibility}', "");
+    Expect(0, 13311, '\P{Block= _CJK_compatibility}', "");
+    Expect(1, 13311, '\P{^Block= _CJK_compatibility}', "");
+    Expect(0, 13312, '\p{Block= _CJK_compatibility}', "");
+    Expect(1, 13312, '\p{^Block= _CJK_compatibility}', "");
+    Expect(1, 13312, '\P{Block= _CJK_compatibility}', "");
+    Expect(0, 13312, '\P{^Block= _CJK_compatibility}', "");
+    Error('\p{Blk=-:=cjk_compat}');
+    Error('\P{Blk=-:=cjk_compat}');
     Expect(1, 13311, '\p{Blk=:\ACJK_Compat\z:}', "");;
     Expect(0, 13312, '\p{Blk=:\ACJK_Compat\z:}', "");;
     Expect(1, 13311, '\p{Blk=cjkcompat}', "");
@@ -7338,52 +7442,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 13312, '\P{^Blk=cjkcompat}', "");
     Expect(1, 13311, '\p{Blk=:\Acjkcompat\z:}', "");;
     Expect(0, 13312, '\p{Blk=:\Acjkcompat\z:}', "");;
-    Expect(1, 13311, '\p{Blk=-	CJK_compat}', "");
-    Expect(0, 13311, '\p{^Blk=-	CJK_compat}', "");
-    Expect(0, 13311, '\P{Blk=-	CJK_compat}', "");
-    Expect(1, 13311, '\P{^Blk=-	CJK_compat}', "");
-    Expect(0, 13312, '\p{Blk=-	CJK_compat}', "");
-    Expect(1, 13312, '\p{^Blk=-	CJK_compat}', "");
-    Expect(1, 13312, '\P{Blk=-	CJK_compat}', "");
-    Expect(0, 13312, '\P{^Blk=-	CJK_compat}', "");
-    Error('\p{Is_Block:	:=_-CJK_compatibility}');
-    Error('\P{Is_Block:	:=_-CJK_compatibility}');
-    Expect(1, 13311, '\p{Is_Block=cjkcompatibility}', "");
-    Expect(0, 13311, '\p{^Is_Block=cjkcompatibility}', "");
-    Expect(0, 13311, '\P{Is_Block=cjkcompatibility}', "");
-    Expect(1, 13311, '\P{^Is_Block=cjkcompatibility}', "");
-    Expect(0, 13312, '\p{Is_Block=cjkcompatibility}', "");
-    Expect(1, 13312, '\p{^Is_Block=cjkcompatibility}', "");
-    Expect(1, 13312, '\P{Is_Block=cjkcompatibility}', "");
-    Expect(0, 13312, '\P{^Is_Block=cjkcompatibility}', "");
-    Expect(1, 13311, '\p{Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(0, 13311, '\p{^Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(0, 13311, '\P{Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(1, 13311, '\P{^Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(0, 13312, '\p{Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(1, 13312, '\p{^Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(1, 13312, '\P{Is_Block= cjk_COMPATIBILITY}', "");
-    Expect(0, 13312, '\P{^Is_Block= cjk_COMPATIBILITY}', "");
-    Error('\p{Is_Blk=	 CJK_compat:=}');
-    Error('\P{Is_Blk=	 CJK_compat:=}');
-    Expect(1, 13311, '\p{Is_Blk: cjkcompat}', "");
-    Expect(0, 13311, '\p{^Is_Blk: cjkcompat}', "");
-    Expect(0, 13311, '\P{Is_Blk: cjkcompat}', "");
-    Expect(1, 13311, '\P{^Is_Blk: cjkcompat}', "");
-    Expect(0, 13312, '\p{Is_Blk: cjkcompat}', "");
-    Expect(1, 13312, '\p{^Is_Blk: cjkcompat}', "");
-    Expect(1, 13312, '\P{Is_Blk: cjkcompat}', "");
-    Expect(0, 13312, '\P{^Is_Blk: cjkcompat}', "");
-    Expect(1, 13311, '\p{Is_Blk=		CJK_COMPAT}', "");
-    Expect(0, 13311, '\p{^Is_Blk=		CJK_COMPAT}', "");
-    Expect(0, 13311, '\P{Is_Blk=		CJK_COMPAT}', "");
-    Expect(1, 13311, '\P{^Is_Blk=		CJK_COMPAT}', "");
-    Expect(0, 13312, '\p{Is_Blk=		CJK_COMPAT}', "");
-    Expect(1, 13312, '\p{^Is_Blk=		CJK_COMPAT}', "");
-    Expect(1, 13312, '\P{Is_Blk=		CJK_COMPAT}', "");
-    Expect(0, 13312, '\P{^Is_Blk=		CJK_COMPAT}', "");
-    Error('\p{Block=-/a/cjk_COMPATIBILITY_FORMS}');
-    Error('\P{Block=-/a/cjk_COMPATIBILITY_FORMS}');
+    Expect(1, 13311, '\p{Blk=-CJK_Compat}', "");
+    Expect(0, 13311, '\p{^Blk=-CJK_Compat}', "");
+    Expect(0, 13311, '\P{Blk=-CJK_Compat}', "");
+    Expect(1, 13311, '\P{^Blk=-CJK_Compat}', "");
+    Expect(0, 13312, '\p{Blk=-CJK_Compat}', "");
+    Expect(1, 13312, '\p{^Blk=-CJK_Compat}', "");
+    Expect(1, 13312, '\P{Blk=-CJK_Compat}', "");
+    Expect(0, 13312, '\P{^Blk=-CJK_Compat}', "");
+    Error('\p{Is_Block=_/a/CJK_Compatibility}');
+    Error('\P{Is_Block=_/a/CJK_Compatibility}');
+    Expect(1, 13311, '\p{Is_Block: cjkcompatibility}', "");
+    Expect(0, 13311, '\p{^Is_Block: cjkcompatibility}', "");
+    Expect(0, 13311, '\P{Is_Block: cjkcompatibility}', "");
+    Expect(1, 13311, '\P{^Is_Block: cjkcompatibility}', "");
+    Expect(0, 13312, '\p{Is_Block: cjkcompatibility}', "");
+    Expect(1, 13312, '\p{^Is_Block: cjkcompatibility}', "");
+    Expect(1, 13312, '\P{Is_Block: cjkcompatibility}', "");
+    Expect(0, 13312, '\P{^Is_Block: cjkcompatibility}', "");
+    Expect(1, 13311, '\p{Is_Block= CJK_Compatibility}', "");
+    Expect(0, 13311, '\p{^Is_Block= CJK_Compatibility}', "");
+    Expect(0, 13311, '\P{Is_Block= CJK_Compatibility}', "");
+    Expect(1, 13311, '\P{^Is_Block= CJK_Compatibility}', "");
+    Expect(0, 13312, '\p{Is_Block= CJK_Compatibility}', "");
+    Expect(1, 13312, '\p{^Is_Block= CJK_Compatibility}', "");
+    Expect(1, 13312, '\P{Is_Block= CJK_Compatibility}', "");
+    Expect(0, 13312, '\P{^Is_Block= CJK_Compatibility}', "");
+    Error('\p{Is_Blk=/a/ cjk_Compat}');
+    Error('\P{Is_Blk=/a/ cjk_Compat}');
+    Expect(1, 13311, '\p{Is_Blk=cjkcompat}', "");
+    Expect(0, 13311, '\p{^Is_Blk=cjkcompat}', "");
+    Expect(0, 13311, '\P{Is_Blk=cjkcompat}', "");
+    Expect(1, 13311, '\P{^Is_Blk=cjkcompat}', "");
+    Expect(0, 13312, '\p{Is_Blk=cjkcompat}', "");
+    Expect(1, 13312, '\p{^Is_Blk=cjkcompat}', "");
+    Expect(1, 13312, '\P{Is_Blk=cjkcompat}', "");
+    Expect(0, 13312, '\P{^Is_Blk=cjkcompat}', "");
+    Expect(1, 13311, '\p{Is_Blk=		CJK_compat}', "");
+    Expect(0, 13311, '\p{^Is_Blk=		CJK_compat}', "");
+    Expect(0, 13311, '\P{Is_Blk=		CJK_compat}', "");
+    Expect(1, 13311, '\P{^Is_Blk=		CJK_compat}', "");
+    Expect(0, 13312, '\p{Is_Blk=		CJK_compat}', "");
+    Expect(1, 13312, '\p{^Is_Blk=		CJK_compat}', "");
+    Expect(1, 13312, '\P{Is_Blk=		CJK_compat}', "");
+    Expect(0, 13312, '\P{^Is_Blk=		CJK_compat}', "");
+    Error('\p{Block=:=-CJK_Compatibility_FORMS}');
+    Error('\P{Block=:=-CJK_Compatibility_FORMS}');
     Expect(1, 65103, '\p{Block=:\ACJK_Compatibility_Forms\z:}', "");;
     Expect(0, 65104, '\p{Block=:\ACJK_Compatibility_Forms\z:}', "");;
     Expect(1, 65103, '\p{Block=cjkcompatibilityforms}', "");
@@ -7396,16 +7500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65104, '\P{^Block=cjkcompatibilityforms}', "");
     Expect(1, 65103, '\p{Block=:\Acjkcompatibilityforms\z:}', "");;
     Expect(0, 65104, '\p{Block=:\Acjkcompatibilityforms\z:}', "");;
-    Expect(1, 65103, '\p{Block=	-CJK_Compatibility_Forms}', "");
-    Expect(0, 65103, '\p{^Block=	-CJK_Compatibility_Forms}', "");
-    Expect(0, 65103, '\P{Block=	-CJK_Compatibility_Forms}', "");
-    Expect(1, 65103, '\P{^Block=	-CJK_Compatibility_Forms}', "");
-    Expect(0, 65104, '\p{Block=	-CJK_Compatibility_Forms}', "");
-    Expect(1, 65104, '\p{^Block=	-CJK_Compatibility_Forms}', "");
-    Expect(1, 65104, '\P{Block=	-CJK_Compatibility_Forms}', "");
-    Expect(0, 65104, '\P{^Block=	-CJK_Compatibility_Forms}', "");
-    Error('\p{Blk=--cjk_compat_FORMS:=}');
-    Error('\P{Blk=--cjk_compat_FORMS:=}');
+    Expect(1, 65103, '\p{Block=	_CJK_compatibility_Forms}', "");
+    Expect(0, 65103, '\p{^Block=	_CJK_compatibility_Forms}', "");
+    Expect(0, 65103, '\P{Block=	_CJK_compatibility_Forms}', "");
+    Expect(1, 65103, '\P{^Block=	_CJK_compatibility_Forms}', "");
+    Expect(0, 65104, '\p{Block=	_CJK_compatibility_Forms}', "");
+    Expect(1, 65104, '\p{^Block=	_CJK_compatibility_Forms}', "");
+    Expect(1, 65104, '\P{Block=	_CJK_compatibility_Forms}', "");
+    Expect(0, 65104, '\P{^Block=	_CJK_compatibility_Forms}', "");
+    Error('\p{Blk=-CJK_compat_Forms/a/}');
+    Error('\P{Blk=-CJK_compat_Forms/a/}');
     Expect(1, 65103, '\p{Blk=:\ACJK_Compat_Forms\z:}', "");;
     Expect(0, 65104, '\p{Blk=:\ACJK_Compat_Forms\z:}', "");;
     Expect(1, 65103, '\p{Blk=cjkcompatforms}', "");
@@ -7418,16 +7522,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65104, '\P{^Blk=cjkcompatforms}', "");
     Expect(1, 65103, '\p{Blk=:\Acjkcompatforms\z:}', "");;
     Expect(0, 65104, '\p{Blk=:\Acjkcompatforms\z:}', "");;
-    Expect(1, 65103, '\p{Blk= _CJK_compat_Forms}', "");
-    Expect(0, 65103, '\p{^Blk= _CJK_compat_Forms}', "");
-    Expect(0, 65103, '\P{Blk= _CJK_compat_Forms}', "");
-    Expect(1, 65103, '\P{^Blk= _CJK_compat_Forms}', "");
-    Expect(0, 65104, '\p{Blk= _CJK_compat_Forms}', "");
-    Expect(1, 65104, '\p{^Blk= _CJK_compat_Forms}', "");
-    Expect(1, 65104, '\P{Blk= _CJK_compat_Forms}', "");
-    Expect(0, 65104, '\P{^Blk= _CJK_compat_Forms}', "");
-    Error('\p{Is_Block=/a/cjk_Compatibility_Forms}');
-    Error('\P{Is_Block=/a/cjk_Compatibility_Forms}');
+    Expect(1, 65103, '\p{Blk= 	cjk_Compat_Forms}', "");
+    Expect(0, 65103, '\p{^Blk= 	cjk_Compat_Forms}', "");
+    Expect(0, 65103, '\P{Blk= 	cjk_Compat_Forms}', "");
+    Expect(1, 65103, '\P{^Blk= 	cjk_Compat_Forms}', "");
+    Expect(0, 65104, '\p{Blk= 	cjk_Compat_Forms}', "");
+    Expect(1, 65104, '\p{^Blk= 	cjk_Compat_Forms}', "");
+    Expect(1, 65104, '\P{Blk= 	cjk_Compat_Forms}', "");
+    Expect(0, 65104, '\P{^Blk= 	cjk_Compat_Forms}', "");
+    Error('\p{Is_Block: :=-CJK_Compatibility_FORMS}');
+    Error('\P{Is_Block: :=-CJK_Compatibility_FORMS}');
     Expect(1, 65103, '\p{Is_Block=cjkcompatibilityforms}', "");
     Expect(0, 65103, '\p{^Is_Block=cjkcompatibilityforms}', "");
     Expect(0, 65103, '\P{Is_Block=cjkcompatibilityforms}', "");
@@ -7436,16 +7540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65104, '\p{^Is_Block=cjkcompatibilityforms}', "");
     Expect(1, 65104, '\P{Is_Block=cjkcompatibilityforms}', "");
     Expect(0, 65104, '\P{^Is_Block=cjkcompatibilityforms}', "");
-    Expect(1, 65103, '\p{Is_Block=		CJK_compatibility_forms}', "");
-    Expect(0, 65103, '\p{^Is_Block=		CJK_compatibility_forms}', "");
-    Expect(0, 65103, '\P{Is_Block=		CJK_compatibility_forms}', "");
-    Expect(1, 65103, '\P{^Is_Block=		CJK_compatibility_forms}', "");
-    Expect(0, 65104, '\p{Is_Block=		CJK_compatibility_forms}', "");
-    Expect(1, 65104, '\p{^Is_Block=		CJK_compatibility_forms}', "");
-    Expect(1, 65104, '\P{Is_Block=		CJK_compatibility_forms}', "");
-    Expect(0, 65104, '\P{^Is_Block=		CJK_compatibility_forms}', "");
-    Error('\p{Is_Blk=	/a/CJK_Compat_Forms}');
-    Error('\P{Is_Blk=	/a/CJK_Compat_Forms}');
+    Expect(1, 65103, '\p{Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(0, 65103, '\p{^Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(0, 65103, '\P{Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(1, 65103, '\P{^Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(0, 65104, '\p{Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(1, 65104, '\p{^Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(1, 65104, '\P{Is_Block:    CJK_Compatibility_FORMS}', "");
+    Expect(0, 65104, '\P{^Is_Block:    CJK_Compatibility_FORMS}', "");
+    Error('\p{Is_Blk=_:=CJK_compat_FORMS}');
+    Error('\P{Is_Blk=_:=CJK_compat_FORMS}');
     Expect(1, 65103, '\p{Is_Blk=cjkcompatforms}', "");
     Expect(0, 65103, '\p{^Is_Blk=cjkcompatforms}', "");
     Expect(0, 65103, '\P{Is_Blk=cjkcompatforms}', "");
@@ -7454,16 +7558,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65104, '\p{^Is_Blk=cjkcompatforms}', "");
     Expect(1, 65104, '\P{Is_Blk=cjkcompatforms}', "");
     Expect(0, 65104, '\P{^Is_Blk=cjkcompatforms}', "");
-    Expect(1, 65103, '\p{Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(0, 65103, '\p{^Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(0, 65103, '\P{Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(1, 65103, '\P{^Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(0, 65104, '\p{Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(1, 65104, '\p{^Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(1, 65104, '\P{Is_Blk=	-CJK_Compat_FORMS}', "");
-    Expect(0, 65104, '\P{^Is_Blk=	-CJK_Compat_FORMS}', "");
-    Error('\p{Block=	-CJK_Compatibility_IDEOGRAPHS:=}');
-    Error('\P{Block=	-CJK_Compatibility_IDEOGRAPHS:=}');
+    Expect(1, 65103, '\p{Is_Blk= _CJK_Compat_forms}', "");
+    Expect(0, 65103, '\p{^Is_Blk= _CJK_Compat_forms}', "");
+    Expect(0, 65103, '\P{Is_Blk= _CJK_Compat_forms}', "");
+    Expect(1, 65103, '\P{^Is_Blk= _CJK_Compat_forms}', "");
+    Expect(0, 65104, '\p{Is_Blk= _CJK_Compat_forms}', "");
+    Expect(1, 65104, '\p{^Is_Blk= _CJK_Compat_forms}', "");
+    Expect(1, 65104, '\P{Is_Blk= _CJK_Compat_forms}', "");
+    Expect(0, 65104, '\P{^Is_Blk= _CJK_Compat_forms}', "");
+    Error('\p{Block=/a/- CJK_COMPATIBILITY_IDEOGRAPHS}');
+    Error('\P{Block=/a/- CJK_COMPATIBILITY_IDEOGRAPHS}');
     Expect(1, 64255, '\p{Block=:\ACJK_Compatibility_Ideographs\z:}', "");;
     Expect(0, 64256, '\p{Block=:\ACJK_Compatibility_Ideographs\z:}', "");;
     Expect(1, 64255, '\p{Block=cjkcompatibilityideographs}', "");
@@ -7476,16 +7580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 64256, '\P{^Block=cjkcompatibilityideographs}', "");
     Expect(1, 64255, '\p{Block=:\Acjkcompatibilityideographs\z:}', "");;
     Expect(0, 64256, '\p{Block=:\Acjkcompatibilityideographs\z:}', "");;
-    Expect(1, 64255, '\p{Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(0, 64255, '\p{^Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(0, 64255, '\P{Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(1, 64255, '\P{^Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(0, 64256, '\p{Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(1, 64256, '\p{^Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(1, 64256, '\P{Block=_	CJK_Compatibility_Ideographs}', "");
-    Expect(0, 64256, '\P{^Block=_	CJK_Compatibility_Ideographs}', "");
-    Error('\p{Blk=:=	 CJK_COMPAT_IDEOGRAPHS}');
-    Error('\P{Blk=:=	 CJK_COMPAT_IDEOGRAPHS}');
+    Expect(1, 64255, '\p{Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\p{^Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\P{Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64255, '\P{^Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\p{Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\p{^Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\P{Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\P{^Block=	_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Error('\p{Blk=-/a/CJK_compat_IDEOGRAPHS}');
+    Error('\P{Blk=-/a/CJK_compat_IDEOGRAPHS}');
     Expect(1, 64255, '\p{Blk=:\ACJK_Compat_Ideographs\z:}', "");;
     Expect(0, 64256, '\p{Blk=:\ACJK_Compat_Ideographs\z:}', "");;
     Expect(1, 64255, '\p{Blk=cjkcompatideographs}', "");
@@ -7498,16 +7602,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 64256, '\P{^Blk=cjkcompatideographs}', "");
     Expect(1, 64255, '\p{Blk=:\Acjkcompatideographs\z:}', "");;
     Expect(0, 64256, '\p{Blk=:\Acjkcompatideographs\z:}', "");;
-    Expect(1, 64255, '\p{Blk=		CJK_Compat_Ideographs}', "");
-    Expect(0, 64255, '\p{^Blk=		CJK_Compat_Ideographs}', "");
-    Expect(0, 64255, '\P{Blk=		CJK_Compat_Ideographs}', "");
-    Expect(1, 64255, '\P{^Blk=		CJK_Compat_Ideographs}', "");
-    Expect(0, 64256, '\p{Blk=		CJK_Compat_Ideographs}', "");
-    Expect(1, 64256, '\p{^Blk=		CJK_Compat_Ideographs}', "");
-    Expect(1, 64256, '\P{Blk=		CJK_Compat_Ideographs}', "");
-    Expect(0, 64256, '\P{^Blk=		CJK_Compat_Ideographs}', "");
-    Error('\p{Is_Block=	cjk_Compatibility_Ideographs/a/}');
-    Error('\P{Is_Block=	cjk_Compatibility_Ideographs/a/}');
+    Expect(1, 64255, '\p{Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\p{^Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\P{Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(1, 64255, '\P{^Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\p{Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\p{^Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\P{Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\P{^Blk= _cjk_COMPAT_IDEOGRAPHS}', "");
+    Error('\p{Is_Block=-/a/CJK_Compatibility_Ideographs}');
+    Error('\P{Is_Block=-/a/CJK_Compatibility_Ideographs}');
     Expect(1, 64255, '\p{Is_Block=cjkcompatibilityideographs}', "");
     Expect(0, 64255, '\p{^Is_Block=cjkcompatibilityideographs}', "");
     Expect(0, 64255, '\P{Is_Block=cjkcompatibilityideographs}', "");
@@ -7516,56 +7620,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 64256, '\p{^Is_Block=cjkcompatibilityideographs}', "");
     Expect(1, 64256, '\P{Is_Block=cjkcompatibilityideographs}', "");
     Expect(0, 64256, '\P{^Is_Block=cjkcompatibilityideographs}', "");
-    Expect(1, 64255, '\p{Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\p{^Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\P{Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(1, 64255, '\P{^Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\p{Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\p{^Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\P{Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\P{^Is_Block=		CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Error('\p{Is_Blk=:=_-CJK_Compat_IDEOGRAPHS}');
-    Error('\P{Is_Blk=:=_-CJK_Compat_IDEOGRAPHS}');
-    Expect(1, 64255, '\p{Is_Blk=cjkcompatideographs}', "");
-    Expect(0, 64255, '\p{^Is_Blk=cjkcompatideographs}', "");
-    Expect(0, 64255, '\P{Is_Blk=cjkcompatideographs}', "");
-    Expect(1, 64255, '\P{^Is_Blk=cjkcompatideographs}', "");
-    Expect(0, 64256, '\p{Is_Blk=cjkcompatideographs}', "");
-    Expect(1, 64256, '\p{^Is_Blk=cjkcompatideographs}', "");
-    Expect(1, 64256, '\P{Is_Blk=cjkcompatideographs}', "");
-    Expect(0, 64256, '\P{^Is_Blk=cjkcompatideographs}', "");
-    Expect(1, 64255, '\p{Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(0, 64255, '\p{^Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(0, 64255, '\P{Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(1, 64255, '\P{^Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(0, 64256, '\p{Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(1, 64256, '\p{^Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(1, 64256, '\P{Is_Blk:_cjk_compat_Ideographs}', "");
-    Expect(0, 64256, '\P{^Is_Blk:_cjk_compat_Ideographs}', "");
-    Error('\p{Block:   - CJK_COMPATIBILITY_IDEOGRAPHS_supplement/a/}');
-    Error('\P{Block:   - CJK_COMPATIBILITY_IDEOGRAPHS_supplement/a/}');
+    Expect(1, 64255, '\p{Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\p{^Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\P{Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(1, 64255, '\P{^Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\p{Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\p{^Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\P{Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\P{^Is_Block= 	cjk_Compatibility_IDEOGRAPHS}', "");
+    Error('\p{Is_Blk=/a/--cjk_COMPAT_IDEOGRAPHS}');
+    Error('\P{Is_Blk=/a/--cjk_COMPAT_IDEOGRAPHS}');
+    Expect(1, 64255, '\p{Is_Blk:cjkcompatideographs}', "");
+    Expect(0, 64255, '\p{^Is_Blk:cjkcompatideographs}', "");
+    Expect(0, 64255, '\P{Is_Blk:cjkcompatideographs}', "");
+    Expect(1, 64255, '\P{^Is_Blk:cjkcompatideographs}', "");
+    Expect(0, 64256, '\p{Is_Blk:cjkcompatideographs}', "");
+    Expect(1, 64256, '\p{^Is_Blk:cjkcompatideographs}', "");
+    Expect(1, 64256, '\P{Is_Blk:cjkcompatideographs}', "");
+    Expect(0, 64256, '\P{^Is_Blk:cjkcompatideographs}', "");
+    Expect(1, 64255, '\p{Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64255, '\p{^Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64255, '\P{Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(1, 64255, '\P{^Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64256, '\p{Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(1, 64256, '\p{^Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(1, 64256, '\P{Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64256, '\P{^Is_Blk=- cjk_COMPAT_Ideographs}', "");
+    Error('\p{Block=:= _cjk_Compatibility_ideographs_Supplement}');
+    Error('\P{Block=:= _cjk_Compatibility_ideographs_Supplement}');
     Expect(1, 195103, '\p{Block=:\ACJK_Compatibility_Ideographs_Supplement\z:}', "");;
     Expect(0, 195104, '\p{Block=:\ACJK_Compatibility_Ideographs_Supplement\z:}', "");;
-    Expect(1, 195103, '\p{Block: cjkcompatibilityideographssupplement}', "");
-    Expect(0, 195103, '\p{^Block: cjkcompatibilityideographssupplement}', "");
-    Expect(0, 195103, '\P{Block: cjkcompatibilityideographssupplement}', "");
-    Expect(1, 195103, '\P{^Block: cjkcompatibilityideographssupplement}', "");
-    Expect(0, 195104, '\p{Block: cjkcompatibilityideographssupplement}', "");
-    Expect(1, 195104, '\p{^Block: cjkcompatibilityideographssupplement}', "");
-    Expect(1, 195104, '\P{Block: cjkcompatibilityideographssupplement}', "");
-    Expect(0, 195104, '\P{^Block: cjkcompatibilityideographssupplement}', "");
+    Expect(1, 195103, '\p{Block=cjkcompatibilityideographssupplement}', "");
+    Expect(0, 195103, '\p{^Block=cjkcompatibilityideographssupplement}', "");
+    Expect(0, 195103, '\P{Block=cjkcompatibilityideographssupplement}', "");
+    Expect(1, 195103, '\P{^Block=cjkcompatibilityideographssupplement}', "");
+    Expect(0, 195104, '\p{Block=cjkcompatibilityideographssupplement}', "");
+    Expect(1, 195104, '\p{^Block=cjkcompatibilityideographssupplement}', "");
+    Expect(1, 195104, '\P{Block=cjkcompatibilityideographssupplement}', "");
+    Expect(0, 195104, '\P{^Block=cjkcompatibilityideographssupplement}', "");
     Expect(1, 195103, '\p{Block=:\Acjkcompatibilityideographssupplement\z:}', "");;
     Expect(0, 195104, '\p{Block=:\Acjkcompatibilityideographssupplement\z:}', "");;
-    Expect(1, 195103, '\p{Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195103, '\p{^Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195103, '\P{Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(1, 195103, '\P{^Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195104, '\p{Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(1, 195104, '\p{^Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(1, 195104, '\P{Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195104, '\P{^Block=	CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Error('\p{Blk=_	cjk_compat_IDEOGRAPHS_sup/a/}');
-    Error('\P{Blk=_	cjk_compat_IDEOGRAPHS_sup/a/}');
+    Expect(1, 195103, '\p{Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(0, 195103, '\p{^Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(0, 195103, '\P{Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(1, 195103, '\P{^Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(0, 195104, '\p{Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(1, 195104, '\p{^Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(1, 195104, '\P{Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Expect(0, 195104, '\P{^Block:_	CJK_COMPATIBILITY_Ideographs_supplement}', "");
+    Error('\p{Blk::=-CJK_Compat_IDEOGRAPHS_Sup}');
+    Error('\P{Blk::=-CJK_Compat_IDEOGRAPHS_Sup}');
     Expect(1, 195103, '\p{Blk=:\ACJK_Compat_Ideographs_Sup\z:}', "");;
     Expect(0, 195104, '\p{Blk=:\ACJK_Compat_Ideographs_Sup\z:}', "");;
     Expect(1, 195103, '\p{Blk=cjkcompatideographssup}', "");
@@ -7578,16 +7682,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 195104, '\P{^Blk=cjkcompatideographssup}', "");
     Expect(1, 195103, '\p{Blk=:\Acjkcompatideographssup\z:}', "");;
     Expect(0, 195104, '\p{Blk=:\Acjkcompatideographssup\z:}', "");;
-    Expect(1, 195103, '\p{Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(0, 195103, '\p{^Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(0, 195103, '\P{Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(1, 195103, '\P{^Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(0, 195104, '\p{Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(1, 195104, '\p{^Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(1, 195104, '\P{Blk=  CJK_compat_ideographs_sup}', "");
-    Expect(0, 195104, '\P{^Blk=  CJK_compat_ideographs_sup}', "");
-    Error('\p{Is_Block=-/a/CJK_compatibility_ideographs_SUPPLEMENT}');
-    Error('\P{Is_Block=-/a/CJK_compatibility_ideographs_SUPPLEMENT}');
+    Expect(1, 195103, '\p{Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195103, '\p{^Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195103, '\P{Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(1, 195103, '\P{^Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195104, '\p{Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(1, 195104, '\p{^Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(1, 195104, '\P{Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195104, '\P{^Blk:   	 CJK_COMPAT_Ideographs_Sup}', "");
+    Error('\p{Is_Block:	/a/CJK_Compatibility_IDEOGRAPHS_Supplement}');
+    Error('\P{Is_Block:	/a/CJK_Compatibility_IDEOGRAPHS_Supplement}');
     Expect(1, 195103, '\p{Is_Block=cjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\p{^Is_Block=cjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\P{Is_Block=cjkcompatibilityideographssupplement}', "");
@@ -7596,16 +7700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195104, '\p{^Is_Block=cjkcompatibilityideographssupplement}', "");
     Expect(1, 195104, '\P{Is_Block=cjkcompatibilityideographssupplement}', "");
     Expect(0, 195104, '\P{^Is_Block=cjkcompatibilityideographssupplement}', "");
-    Expect(1, 195103, '\p{Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(0, 195103, '\p{^Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(0, 195103, '\P{Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(1, 195103, '\P{^Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(0, 195104, '\p{Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(1, 195104, '\p{^Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(1, 195104, '\P{Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Expect(0, 195104, '\P{^Is_Block=CJK_Compatibility_Ideographs_Supplement}', "");
-    Error('\p{Is_Blk= -cjk_Compat_IDEOGRAPHS_Sup/a/}');
-    Error('\P{Is_Blk= -cjk_Compat_IDEOGRAPHS_Sup/a/}');
+    Expect(1, 195103, '\p{Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(0, 195103, '\p{^Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(0, 195103, '\P{Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(1, 195103, '\P{^Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(0, 195104, '\p{Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(1, 195104, '\p{^Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(1, 195104, '\P{Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Expect(0, 195104, '\P{^Is_Block= -cjk_compatibility_Ideographs_SUPPLEMENT}', "");
+    Error('\p{Is_Blk=/a/__CJK_compat_IDEOGRAPHS_SUP}');
+    Error('\P{Is_Blk=/a/__CJK_compat_IDEOGRAPHS_SUP}');
     Expect(1, 195103, '\p{Is_Blk=cjkcompatideographssup}', "");
     Expect(0, 195103, '\p{^Is_Blk=cjkcompatideographssup}', "");
     Expect(0, 195103, '\P{Is_Blk=cjkcompatideographssup}', "");
@@ -7614,16 +7718,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195104, '\p{^Is_Blk=cjkcompatideographssup}', "");
     Expect(1, 195104, '\P{Is_Blk=cjkcompatideographssup}', "");
     Expect(0, 195104, '\P{^Is_Blk=cjkcompatideographssup}', "");
-    Expect(1, 195103, '\p{Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(0, 195103, '\p{^Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(0, 195103, '\P{Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(1, 195103, '\P{^Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(0, 195104, '\p{Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(1, 195104, '\p{^Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(1, 195104, '\P{Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Expect(0, 195104, '\P{^Is_Blk=- CJK_COMPAT_Ideographs_SUP}', "");
-    Error('\p{Block=/a/	_CJK_UNIFIED_ideographs_extension_A}');
-    Error('\P{Block=/a/	_CJK_UNIFIED_ideographs_extension_A}');
+    Expect(1, 195103, '\p{Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(0, 195103, '\p{^Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(0, 195103, '\P{Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(1, 195103, '\P{^Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(0, 195104, '\p{Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(1, 195104, '\p{^Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(1, 195104, '\P{Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Expect(0, 195104, '\P{^Is_Blk= 	CJK_compat_Ideographs_sup}', "");
+    Error('\p{Block: _cjk_Unified_Ideographs_Extension_A:=}');
+    Error('\P{Block: _cjk_Unified_Ideographs_Extension_A:=}');
     Expect(1, 19903, '\p{Block=:\ACJK_Unified_Ideographs_Extension_A\z:}', "");;
     Expect(0, 19904, '\p{Block=:\ACJK_Unified_Ideographs_Extension_A\z:}', "");;
     Expect(1, 19903, '\p{Block=cjkunifiedideographsextensiona}', "");
@@ -7636,38 +7740,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 19904, '\P{^Block=cjkunifiedideographsextensiona}', "");
     Expect(1, 19903, '\p{Block=:\Acjkunifiedideographsextensiona\z:}', "");;
     Expect(0, 19904, '\p{Block=:\Acjkunifiedideographsextensiona\z:}', "");;
-    Expect(1, 19903, '\p{Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(0, 19903, '\p{^Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(0, 19903, '\P{Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(1, 19903, '\P{^Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(0, 19904, '\p{Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(1, 19904, '\p{^Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(1, 19904, '\P{Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Expect(0, 19904, '\P{^Block=- CJK_UNIFIED_Ideographs_extension_a}', "");
-    Error('\p{Blk=/a/_CJK_EXT_A}');
-    Error('\P{Blk=/a/_CJK_EXT_A}');
+    Expect(1, 19903, '\p{Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19903, '\p{^Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19903, '\P{Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(1, 19903, '\P{^Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19904, '\p{Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(1, 19904, '\p{^Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(1, 19904, '\P{Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19904, '\P{^Block= -cjk_UNIFIED_IDEOGRAPHS_extension_A}', "");
+    Error('\p{Blk=		CJK_Ext_A:=}');
+    Error('\P{Blk=		CJK_Ext_A:=}');
     Expect(1, 19903, '\p{Blk=:\ACJK_Ext_A\z:}', "");;
     Expect(0, 19904, '\p{Blk=:\ACJK_Ext_A\z:}', "");;
-    Expect(1, 19903, '\p{Blk:   cjkexta}', "");
-    Expect(0, 19903, '\p{^Blk:   cjkexta}', "");
-    Expect(0, 19903, '\P{Blk:   cjkexta}', "");
-    Expect(1, 19903, '\P{^Blk:   cjkexta}', "");
-    Expect(0, 19904, '\p{Blk:   cjkexta}', "");
-    Expect(1, 19904, '\p{^Blk:   cjkexta}', "");
-    Expect(1, 19904, '\P{Blk:   cjkexta}', "");
-    Expect(0, 19904, '\P{^Blk:   cjkexta}', "");
+    Expect(1, 19903, '\p{Blk=cjkexta}', "");
+    Expect(0, 19903, '\p{^Blk=cjkexta}', "");
+    Expect(0, 19903, '\P{Blk=cjkexta}', "");
+    Expect(1, 19903, '\P{^Blk=cjkexta}', "");
+    Expect(0, 19904, '\p{Blk=cjkexta}', "");
+    Expect(1, 19904, '\p{^Blk=cjkexta}', "");
+    Expect(1, 19904, '\P{Blk=cjkexta}', "");
+    Expect(0, 19904, '\P{^Blk=cjkexta}', "");
     Expect(1, 19903, '\p{Blk=:\Acjkexta\z:}', "");;
     Expect(0, 19904, '\p{Blk=:\Acjkexta\z:}', "");;
-    Expect(1, 19903, '\p{Blk=- cjk_EXT_a}', "");
-    Expect(0, 19903, '\p{^Blk=- cjk_EXT_a}', "");
-    Expect(0, 19903, '\P{Blk=- cjk_EXT_a}', "");
-    Expect(1, 19903, '\P{^Blk=- cjk_EXT_a}', "");
-    Expect(0, 19904, '\p{Blk=- cjk_EXT_a}', "");
-    Expect(1, 19904, '\p{^Blk=- cjk_EXT_a}', "");
-    Expect(1, 19904, '\P{Blk=- cjk_EXT_a}', "");
-    Expect(0, 19904, '\P{^Blk=- cjk_EXT_a}', "");
-    Error('\p{Is_Block=__CJK_UNIFIED_Ideographs_EXTENSION_A/a/}');
-    Error('\P{Is_Block=__CJK_UNIFIED_Ideographs_EXTENSION_A/a/}');
+    Expect(1, 19903, '\p{Blk= 	CJK_EXT_A}', "");
+    Expect(0, 19903, '\p{^Blk= 	CJK_EXT_A}', "");
+    Expect(0, 19903, '\P{Blk= 	CJK_EXT_A}', "");
+    Expect(1, 19903, '\P{^Blk= 	CJK_EXT_A}', "");
+    Expect(0, 19904, '\p{Blk= 	CJK_EXT_A}', "");
+    Expect(1, 19904, '\p{^Blk= 	CJK_EXT_A}', "");
+    Expect(1, 19904, '\P{Blk= 	CJK_EXT_A}', "");
+    Expect(0, 19904, '\P{^Blk= 	CJK_EXT_A}', "");
+    Error('\p{Is_Block=	_cjk_UNIFIED_ideographs_Extension_A:=}');
+    Error('\P{Is_Block=	_cjk_UNIFIED_ideographs_Extension_A:=}');
     Expect(1, 19903, '\p{Is_Block=cjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\p{^Is_Block=cjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\P{Is_Block=cjkunifiedideographsextensiona}', "");
@@ -7676,16 +7780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 19904, '\p{^Is_Block=cjkunifiedideographsextensiona}', "");
     Expect(1, 19904, '\P{Is_Block=cjkunifiedideographsextensiona}', "");
     Expect(0, 19904, '\P{^Is_Block=cjkunifiedideographsextensiona}', "");
-    Expect(1, 19903, '\p{Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(0, 19903, '\p{^Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(0, 19903, '\P{Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(1, 19903, '\P{^Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(0, 19904, '\p{Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(1, 19904, '\p{^Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(1, 19904, '\P{Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Expect(0, 19904, '\P{^Is_Block=-CJK_unified_Ideographs_EXTENSION_a}', "");
-    Error('\p{Is_Blk=-/a/CJK_ext_a}');
-    Error('\P{Is_Blk=-/a/CJK_ext_a}');
+    Expect(1, 19903, '\p{Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(0, 19903, '\p{^Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(0, 19903, '\P{Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(1, 19903, '\P{^Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(0, 19904, '\p{Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(1, 19904, '\p{^Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(1, 19904, '\P{Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Expect(0, 19904, '\P{^Is_Block= CJK_Unified_Ideographs_extension_A}', "");
+    Error('\p{Is_Blk=-/a/CJK_EXT_A}');
+    Error('\P{Is_Blk=-/a/CJK_EXT_A}');
     Expect(1, 19903, '\p{Is_Blk=cjkexta}', "");
     Expect(0, 19903, '\p{^Is_Blk=cjkexta}', "");
     Expect(0, 19903, '\P{Is_Blk=cjkexta}', "");
@@ -7694,38 +7798,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 19904, '\p{^Is_Blk=cjkexta}', "");
     Expect(1, 19904, '\P{Is_Blk=cjkexta}', "");
     Expect(0, 19904, '\P{^Is_Blk=cjkexta}', "");
-    Expect(1, 19903, '\p{Is_Blk=	 cjk_ext_a}', "");
-    Expect(0, 19903, '\p{^Is_Blk=	 cjk_ext_a}', "");
-    Expect(0, 19903, '\P{Is_Blk=	 cjk_ext_a}', "");
-    Expect(1, 19903, '\P{^Is_Blk=	 cjk_ext_a}', "");
-    Expect(0, 19904, '\p{Is_Blk=	 cjk_ext_a}', "");
-    Expect(1, 19904, '\p{^Is_Blk=	 cjk_ext_a}', "");
-    Expect(1, 19904, '\P{Is_Blk=	 cjk_ext_a}', "");
-    Expect(0, 19904, '\P{^Is_Blk=	 cjk_ext_a}', "");
-    Error('\p{Block=:=	_cjk_Unified_IDEOGRAPHS_EXTENSION_B}');
-    Error('\P{Block=:=	_cjk_Unified_IDEOGRAPHS_EXTENSION_B}');
+    Expect(1, 19903, '\p{Is_Blk=-CJK_Ext_A}', "");
+    Expect(0, 19903, '\p{^Is_Blk=-CJK_Ext_A}', "");
+    Expect(0, 19903, '\P{Is_Blk=-CJK_Ext_A}', "");
+    Expect(1, 19903, '\P{^Is_Blk=-CJK_Ext_A}', "");
+    Expect(0, 19904, '\p{Is_Blk=-CJK_Ext_A}', "");
+    Expect(1, 19904, '\p{^Is_Blk=-CJK_Ext_A}', "");
+    Expect(1, 19904, '\P{Is_Blk=-CJK_Ext_A}', "");
+    Expect(0, 19904, '\P{^Is_Blk=-CJK_Ext_A}', "");
+    Error('\p{Block=/a/cjk_unified_ideographs_Extension_B}');
+    Error('\P{Block=/a/cjk_unified_ideographs_Extension_B}');
     Expect(1, 173791, '\p{Block=:\ACJK_Unified_Ideographs_Extension_B\z:}', "");;
     Expect(0, 173792, '\p{Block=:\ACJK_Unified_Ideographs_Extension_B\z:}', "");;
-    Expect(1, 173791, '\p{Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173791, '\p{^Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173791, '\P{Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173791, '\P{^Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173792, '\p{Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173792, '\p{^Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173792, '\P{Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173792, '\P{^Block=cjkunifiedideographsextensionb}', "");
+    Expect(1, 173791, '\p{Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173791, '\p{^Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173791, '\P{Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173791, '\P{^Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173792, '\p{Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173792, '\p{^Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173792, '\P{Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173792, '\P{^Block: cjkunifiedideographsextensionb}', "");
     Expect(1, 173791, '\p{Block=:\Acjkunifiedideographsextensionb\z:}', "");;
     Expect(0, 173792, '\p{Block=:\Acjkunifiedideographsextensionb\z:}', "");;
-    Expect(1, 173791, '\p{Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173791, '\p{^Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173791, '\P{Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(1, 173791, '\P{^Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173792, '\p{Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(1, 173792, '\p{^Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(1, 173792, '\P{Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173792, '\P{^Block=-_CJK_Unified_Ideographs_Extension_B}', "");
-    Error('\p{Blk=	-CJK_EXT_b/a/}');
-    Error('\P{Blk=	-CJK_EXT_b/a/}');
+    Expect(1, 173791, '\p{Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(0, 173791, '\p{^Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(0, 173791, '\P{Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(1, 173791, '\P{^Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(0, 173792, '\p{Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(1, 173792, '\p{^Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(1, 173792, '\P{Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Expect(0, 173792, '\P{^Block= 	cjk_Unified_Ideographs_extension_B}', "");
+    Error('\p{Blk=:= CJK_Ext_B}');
+    Error('\P{Blk=:= CJK_Ext_B}');
     Expect(1, 173791, '\p{Blk=:\ACJK_Ext_B\z:}', "");;
     Expect(0, 173792, '\p{Blk=:\ACJK_Ext_B\z:}', "");;
     Expect(1, 173791, '\p{Blk=cjkextb}', "");
@@ -7738,52 +7842,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 173792, '\P{^Blk=cjkextb}', "");
     Expect(1, 173791, '\p{Blk=:\Acjkextb\z:}', "");;
     Expect(0, 173792, '\p{Blk=:\Acjkextb\z:}', "");;
-    Expect(1, 173791, '\p{Blk: _	CJK_Ext_B}', "");
-    Expect(0, 173791, '\p{^Blk: _	CJK_Ext_B}', "");
-    Expect(0, 173791, '\P{Blk: _	CJK_Ext_B}', "");
-    Expect(1, 173791, '\P{^Blk: _	CJK_Ext_B}', "");
-    Expect(0, 173792, '\p{Blk: _	CJK_Ext_B}', "");
-    Expect(1, 173792, '\p{^Blk: _	CJK_Ext_B}', "");
-    Expect(1, 173792, '\P{Blk: _	CJK_Ext_B}', "");
-    Expect(0, 173792, '\P{^Blk: _	CJK_Ext_B}', "");
-    Error('\p{Is_Block=/a/- CJK_unified_Ideographs_EXTENSION_B}');
-    Error('\P{Is_Block=/a/- CJK_unified_Ideographs_EXTENSION_B}');
-    Expect(1, 173791, '\p{Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173791, '\p{^Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173791, '\P{Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173791, '\P{^Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173792, '\p{Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173792, '\p{^Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173792, '\P{Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(0, 173792, '\P{^Is_Block=cjkunifiedideographsextensionb}', "");
-    Expect(1, 173791, '\p{Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173791, '\p{^Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173791, '\P{Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(1, 173791, '\P{^Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173792, '\p{Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(1, 173792, '\p{^Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(1, 173792, '\P{Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Expect(0, 173792, '\P{^Is_Block=_ CJK_Unified_Ideographs_Extension_B}', "");
-    Error('\p{Is_Blk=	CJK_EXT_B:=}');
-    Error('\P{Is_Blk=	CJK_EXT_B:=}');
-    Expect(1, 173791, '\p{Is_Blk=cjkextb}', "");
-    Expect(0, 173791, '\p{^Is_Blk=cjkextb}', "");
-    Expect(0, 173791, '\P{Is_Blk=cjkextb}', "");
-    Expect(1, 173791, '\P{^Is_Blk=cjkextb}', "");
-    Expect(0, 173792, '\p{Is_Blk=cjkextb}', "");
-    Expect(1, 173792, '\p{^Is_Blk=cjkextb}', "");
-    Expect(1, 173792, '\P{Is_Blk=cjkextb}', "");
-    Expect(0, 173792, '\P{^Is_Blk=cjkextb}', "");
-    Expect(1, 173791, '\p{Is_Blk=	_CJK_EXT_B}', "");
-    Expect(0, 173791, '\p{^Is_Blk=	_CJK_EXT_B}', "");
-    Expect(0, 173791, '\P{Is_Blk=	_CJK_EXT_B}', "");
-    Expect(1, 173791, '\P{^Is_Blk=	_CJK_EXT_B}', "");
-    Expect(0, 173792, '\p{Is_Blk=	_CJK_EXT_B}', "");
-    Expect(1, 173792, '\p{^Is_Blk=	_CJK_EXT_B}', "");
-    Expect(1, 173792, '\P{Is_Blk=	_CJK_EXT_B}', "");
-    Expect(0, 173792, '\P{^Is_Blk=	_CJK_EXT_B}', "");
-    Error('\p{Block=	/a/CJK_UNIFIED_Ideographs_extension_C}');
-    Error('\P{Block=	/a/CJK_UNIFIED_Ideographs_extension_C}');
+    Expect(1, 173791, '\p{Blk= 	cjk_EXT_B}', "");
+    Expect(0, 173791, '\p{^Blk= 	cjk_EXT_B}', "");
+    Expect(0, 173791, '\P{Blk= 	cjk_EXT_B}', "");
+    Expect(1, 173791, '\P{^Blk= 	cjk_EXT_B}', "");
+    Expect(0, 173792, '\p{Blk= 	cjk_EXT_B}', "");
+    Expect(1, 173792, '\p{^Blk= 	cjk_EXT_B}', "");
+    Expect(1, 173792, '\P{Blk= 	cjk_EXT_B}', "");
+    Expect(0, 173792, '\P{^Blk= 	cjk_EXT_B}', "");
+    Error('\p{Is_Block=/a/_ cjk_UNIFIED_Ideographs_Extension_B}');
+    Error('\P{Is_Block=/a/_ cjk_UNIFIED_Ideographs_Extension_B}');
+    Expect(1, 173791, '\p{Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173791, '\p{^Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173791, '\P{Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173791, '\P{^Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173792, '\p{Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173792, '\p{^Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173792, '\P{Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(0, 173792, '\P{^Is_Block: cjkunifiedideographsextensionb}', "");
+    Expect(1, 173791, '\p{Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(0, 173791, '\p{^Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(0, 173791, '\P{Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(1, 173791, '\P{^Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(0, 173792, '\p{Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(1, 173792, '\p{^Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(1, 173792, '\P{Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Expect(0, 173792, '\P{^Is_Block=_	CJK_Unified_Ideographs_Extension_b}', "");
+    Error('\p{Is_Blk:	_-CJK_EXT_b/a/}');
+    Error('\P{Is_Blk:	_-CJK_EXT_b/a/}');
+    Expect(1, 173791, '\p{Is_Blk:	cjkextb}', "");
+    Expect(0, 173791, '\p{^Is_Blk:	cjkextb}', "");
+    Expect(0, 173791, '\P{Is_Blk:	cjkextb}', "");
+    Expect(1, 173791, '\P{^Is_Blk:	cjkextb}', "");
+    Expect(0, 173792, '\p{Is_Blk:	cjkextb}', "");
+    Expect(1, 173792, '\p{^Is_Blk:	cjkextb}', "");
+    Expect(1, 173792, '\P{Is_Blk:	cjkextb}', "");
+    Expect(0, 173792, '\P{^Is_Blk:	cjkextb}', "");
+    Expect(1, 173791, '\p{Is_Blk=__CJK_EXT_B}', "");
+    Expect(0, 173791, '\p{^Is_Blk=__CJK_EXT_B}', "");
+    Expect(0, 173791, '\P{Is_Blk=__CJK_EXT_B}', "");
+    Expect(1, 173791, '\P{^Is_Blk=__CJK_EXT_B}', "");
+    Expect(0, 173792, '\p{Is_Blk=__CJK_EXT_B}', "");
+    Expect(1, 173792, '\p{^Is_Blk=__CJK_EXT_B}', "");
+    Expect(1, 173792, '\P{Is_Blk=__CJK_EXT_B}', "");
+    Expect(0, 173792, '\P{^Is_Blk=__CJK_EXT_B}', "");
+    Error('\p{Block:	/a/  CJK_UNIFIED_IDEOGRAPHS_Extension_C}');
+    Error('\P{Block:	/a/  CJK_UNIFIED_IDEOGRAPHS_Extension_C}');
     Expect(1, 177983, '\p{Block=:\ACJK_Unified_Ideographs_Extension_C\z:}', "");;
     Expect(0, 177984, '\p{Block=:\ACJK_Unified_Ideographs_Extension_C\z:}', "");;
     Expect(1, 177983, '\p{Block=cjkunifiedideographsextensionc}', "");
@@ -7796,16 +7900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 177984, '\P{^Block=cjkunifiedideographsextensionc}', "");
     Expect(1, 177983, '\p{Block=:\Acjkunifiedideographsextensionc\z:}', "");;
     Expect(0, 177984, '\p{Block=:\Acjkunifiedideographsextensionc\z:}', "");;
-    Expect(1, 177983, '\p{Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177983, '\p{^Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177983, '\P{Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(1, 177983, '\P{^Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177984, '\p{Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(1, 177984, '\p{^Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(1, 177984, '\P{Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177984, '\P{^Block=CJK_unified_IDEOGRAPHS_Extension_C}', "");
-    Error('\p{Blk=CJK_EXT_C:=}');
-    Error('\P{Blk=CJK_EXT_C:=}');
+    Expect(1, 177983, '\p{Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(0, 177983, '\p{^Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(0, 177983, '\P{Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(1, 177983, '\P{^Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(0, 177984, '\p{Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(1, 177984, '\p{^Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(1, 177984, '\P{Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Expect(0, 177984, '\P{^Block=	CJK_UNIFIED_ideographs_Extension_C}', "");
+    Error('\p{Blk: /a/CJK_Ext_C}');
+    Error('\P{Blk: /a/CJK_Ext_C}');
     Expect(1, 177983, '\p{Blk=:\ACJK_Ext_C\z:}', "");;
     Expect(0, 177984, '\p{Blk=:\ACJK_Ext_C\z:}', "");;
     Expect(1, 177983, '\p{Blk=cjkextc}', "");
@@ -7818,16 +7922,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 177984, '\P{^Blk=cjkextc}', "");
     Expect(1, 177983, '\p{Blk=:\Acjkextc\z:}', "");;
     Expect(0, 177984, '\p{Blk=:\Acjkextc\z:}', "");;
-    Expect(1, 177983, '\p{Blk=-CJK_EXT_c}', "");
-    Expect(0, 177983, '\p{^Blk=-CJK_EXT_c}', "");
-    Expect(0, 177983, '\P{Blk=-CJK_EXT_c}', "");
-    Expect(1, 177983, '\P{^Blk=-CJK_EXT_c}', "");
-    Expect(0, 177984, '\p{Blk=-CJK_EXT_c}', "");
-    Expect(1, 177984, '\p{^Blk=-CJK_EXT_c}', "");
-    Expect(1, 177984, '\P{Blk=-CJK_EXT_c}', "");
-    Expect(0, 177984, '\P{^Blk=-CJK_EXT_c}', "");
-    Error('\p{Is_Block=:= 	cjk_Unified_IDEOGRAPHS_extension_C}');
-    Error('\P{Is_Block=:= 	cjk_Unified_IDEOGRAPHS_extension_C}');
+    Expect(1, 177983, '\p{Blk=	 cjk_Ext_C}', "");
+    Expect(0, 177983, '\p{^Blk=	 cjk_Ext_C}', "");
+    Expect(0, 177983, '\P{Blk=	 cjk_Ext_C}', "");
+    Expect(1, 177983, '\P{^Blk=	 cjk_Ext_C}', "");
+    Expect(0, 177984, '\p{Blk=	 cjk_Ext_C}', "");
+    Expect(1, 177984, '\p{^Blk=	 cjk_Ext_C}', "");
+    Expect(1, 177984, '\P{Blk=	 cjk_Ext_C}', "");
+    Expect(0, 177984, '\P{^Blk=	 cjk_Ext_C}', "");
+    Error('\p{Is_Block:_ CJK_Unified_ideographs_extension_c/a/}');
+    Error('\P{Is_Block:_ CJK_Unified_ideographs_extension_c/a/}');
     Expect(1, 177983, '\p{Is_Block=cjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\p{^Is_Block=cjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\P{Is_Block=cjkunifiedideographsextensionc}', "");
@@ -7836,16 +7940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 177984, '\p{^Is_Block=cjkunifiedideographsextensionc}', "");
     Expect(1, 177984, '\P{Is_Block=cjkunifiedideographsextensionc}', "");
     Expect(0, 177984, '\P{^Is_Block=cjkunifiedideographsextensionc}', "");
-    Expect(1, 177983, '\p{Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(0, 177983, '\p{^Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(0, 177983, '\P{Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(1, 177983, '\P{^Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(0, 177984, '\p{Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(1, 177984, '\p{^Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(1, 177984, '\P{Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Expect(0, 177984, '\P{^Is_Block=	CJK_UNIFIED_IDEOGRAPHS_Extension_c}', "");
-    Error('\p{Is_Blk=/a/	 CJK_EXT_C}');
-    Error('\P{Is_Blk=/a/	 CJK_EXT_C}');
+    Expect(1, 177983, '\p{Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(0, 177983, '\p{^Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(0, 177983, '\P{Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(1, 177983, '\P{^Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(0, 177984, '\p{Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(1, 177984, '\p{^Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(1, 177984, '\P{Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Expect(0, 177984, '\P{^Is_Block= _CJK_unified_Ideographs_extension_c}', "");
+    Error('\p{Is_Blk::= -cjk_Ext_C}');
+    Error('\P{Is_Blk::= -cjk_Ext_C}');
     Expect(1, 177983, '\p{Is_Blk=cjkextc}', "");
     Expect(0, 177983, '\p{^Is_Blk=cjkextc}', "");
     Expect(0, 177983, '\P{Is_Blk=cjkextc}', "");
@@ -7854,16 +7958,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 177984, '\p{^Is_Blk=cjkextc}', "");
     Expect(1, 177984, '\P{Is_Blk=cjkextc}', "");
     Expect(0, 177984, '\P{^Is_Blk=cjkextc}', "");
-    Expect(1, 177983, '\p{Is_Blk=		cjk_Ext_C}', "");
-    Expect(0, 177983, '\p{^Is_Blk=		cjk_Ext_C}', "");
-    Expect(0, 177983, '\P{Is_Blk=		cjk_Ext_C}', "");
-    Expect(1, 177983, '\P{^Is_Blk=		cjk_Ext_C}', "");
-    Expect(0, 177984, '\p{Is_Blk=		cjk_Ext_C}', "");
-    Expect(1, 177984, '\p{^Is_Blk=		cjk_Ext_C}', "");
-    Expect(1, 177984, '\P{Is_Blk=		cjk_Ext_C}', "");
-    Expect(0, 177984, '\P{^Is_Blk=		cjk_Ext_C}', "");
-    Error('\p{Block=:=  CJK_Unified_IDEOGRAPHS_Extension_D}');
-    Error('\P{Block=:=  CJK_Unified_IDEOGRAPHS_Extension_D}');
+    Expect(1, 177983, '\p{Is_Blk= 	CJK_ext_C}', "");
+    Expect(0, 177983, '\p{^Is_Blk= 	CJK_ext_C}', "");
+    Expect(0, 177983, '\P{Is_Blk= 	CJK_ext_C}', "");
+    Expect(1, 177983, '\P{^Is_Blk= 	CJK_ext_C}', "");
+    Expect(0, 177984, '\p{Is_Blk= 	CJK_ext_C}', "");
+    Expect(1, 177984, '\p{^Is_Blk= 	CJK_ext_C}', "");
+    Expect(1, 177984, '\P{Is_Blk= 	CJK_ext_C}', "");
+    Expect(0, 177984, '\P{^Is_Blk= 	CJK_ext_C}', "");
+    Error('\p{Block=	CJK_unified_IDEOGRAPHS_EXTENSION_D/a/}');
+    Error('\P{Block=	CJK_unified_IDEOGRAPHS_EXTENSION_D/a/}');
     Expect(1, 178207, '\p{Block=:\ACJK_Unified_Ideographs_Extension_D\z:}', "");;
     Expect(0, 178208, '\p{Block=:\ACJK_Unified_Ideographs_Extension_D\z:}', "");;
     Expect(1, 178207, '\p{Block=cjkunifiedideographsextensiond}', "");
@@ -7876,16 +7980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 178208, '\P{^Block=cjkunifiedideographsextensiond}', "");
     Expect(1, 178207, '\p{Block=:\Acjkunifiedideographsextensiond\z:}', "");;
     Expect(0, 178208, '\p{Block=:\Acjkunifiedideographsextensiond\z:}', "");;
-    Expect(1, 178207, '\p{Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178207, '\p{^Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178207, '\P{Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(1, 178207, '\P{^Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178208, '\p{Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(1, 178208, '\p{^Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(1, 178208, '\P{Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178208, '\P{^Block=-_CJK_UNIFIED_ideographs_extension_D}', "");
-    Error('\p{Blk=:=	CJK_ext_D}');
-    Error('\P{Blk=:=	CJK_ext_D}');
+    Expect(1, 178207, '\p{Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(0, 178207, '\p{^Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(0, 178207, '\P{Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(1, 178207, '\P{^Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(0, 178208, '\p{Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(1, 178208, '\p{^Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(1, 178208, '\P{Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Expect(0, 178208, '\P{^Block=	_CJK_UNIFIED_Ideographs_Extension_D}', "");
+    Error('\p{Blk: /a/cjk_Ext_D}');
+    Error('\P{Blk: /a/cjk_Ext_D}');
     Expect(1, 178207, '\p{Blk=:\ACJK_Ext_D\z:}', "");;
     Expect(0, 178208, '\p{Blk=:\ACJK_Ext_D\z:}', "");;
     Expect(1, 178207, '\p{Blk=cjkextd}', "");
@@ -7898,16 +8002,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 178208, '\P{^Blk=cjkextd}', "");
     Expect(1, 178207, '\p{Blk=:\Acjkextd\z:}', "");;
     Expect(0, 178208, '\p{Blk=:\Acjkextd\z:}', "");;
-    Expect(1, 178207, '\p{Blk=	CJK_ext_D}', "");
-    Expect(0, 178207, '\p{^Blk=	CJK_ext_D}', "");
-    Expect(0, 178207, '\P{Blk=	CJK_ext_D}', "");
-    Expect(1, 178207, '\P{^Blk=	CJK_ext_D}', "");
-    Expect(0, 178208, '\p{Blk=	CJK_ext_D}', "");
-    Expect(1, 178208, '\p{^Blk=	CJK_ext_D}', "");
-    Expect(1, 178208, '\P{Blk=	CJK_ext_D}', "");
-    Expect(0, 178208, '\P{^Blk=	CJK_ext_D}', "");
-    Error('\p{Is_Block=--CJK_UNIFIED_Ideographs_Extension_D/a/}');
-    Error('\P{Is_Block=--CJK_UNIFIED_Ideographs_Extension_D/a/}');
+    Expect(1, 178207, '\p{Blk= -CJK_EXT_D}', "");
+    Expect(0, 178207, '\p{^Blk= -CJK_EXT_D}', "");
+    Expect(0, 178207, '\P{Blk= -CJK_EXT_D}', "");
+    Expect(1, 178207, '\P{^Blk= -CJK_EXT_D}', "");
+    Expect(0, 178208, '\p{Blk= -CJK_EXT_D}', "");
+    Expect(1, 178208, '\p{^Blk= -CJK_EXT_D}', "");
+    Expect(1, 178208, '\P{Blk= -CJK_EXT_D}', "");
+    Expect(0, 178208, '\P{^Blk= -CJK_EXT_D}', "");
+    Error('\p{Is_Block=-CJK_UNIFIED_Ideographs_Extension_D:=}');
+    Error('\P{Is_Block=-CJK_UNIFIED_Ideographs_Extension_D:=}');
     Expect(1, 178207, '\p{Is_Block=cjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\p{^Is_Block=cjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\P{Is_Block=cjkunifiedideographsextensiond}', "");
@@ -7916,56 +8020,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 178208, '\p{^Is_Block=cjkunifiedideographsextensiond}', "");
     Expect(1, 178208, '\P{Is_Block=cjkunifiedideographsextensiond}', "");
     Expect(0, 178208, '\P{^Is_Block=cjkunifiedideographsextensiond}', "");
-    Expect(1, 178207, '\p{Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(0, 178207, '\p{^Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(0, 178207, '\P{Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(1, 178207, '\P{^Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(0, 178208, '\p{Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(1, 178208, '\p{^Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(1, 178208, '\P{Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Expect(0, 178208, '\P{^Is_Block=_CJK_unified_IDEOGRAPHS_extension_d}', "");
-    Error('\p{Is_Blk=	:=cjk_EXT_D}');
-    Error('\P{Is_Blk=	:=cjk_EXT_D}');
-    Expect(1, 178207, '\p{Is_Blk=cjkextd}', "");
-    Expect(0, 178207, '\p{^Is_Blk=cjkextd}', "");
-    Expect(0, 178207, '\P{Is_Blk=cjkextd}', "");
-    Expect(1, 178207, '\P{^Is_Blk=cjkextd}', "");
-    Expect(0, 178208, '\p{Is_Blk=cjkextd}', "");
-    Expect(1, 178208, '\p{^Is_Blk=cjkextd}', "");
-    Expect(1, 178208, '\P{Is_Blk=cjkextd}', "");
-    Expect(0, 178208, '\P{^Is_Blk=cjkextd}', "");
-    Expect(1, 178207, '\p{Is_Blk= -CJK_ext_D}', "");
-    Expect(0, 178207, '\p{^Is_Blk= -CJK_ext_D}', "");
-    Expect(0, 178207, '\P{Is_Blk= -CJK_ext_D}', "");
-    Expect(1, 178207, '\P{^Is_Blk= -CJK_ext_D}', "");
-    Expect(0, 178208, '\p{Is_Blk= -CJK_ext_D}', "");
-    Expect(1, 178208, '\p{^Is_Blk= -CJK_ext_D}', "");
-    Expect(1, 178208, '\P{Is_Blk= -CJK_ext_D}', "");
-    Expect(0, 178208, '\P{^Is_Blk= -CJK_ext_D}', "");
-    Error('\p{Block=	 CJK_Unified_ideographs_Extension_E/a/}');
-    Error('\P{Block=	 CJK_Unified_ideographs_Extension_E/a/}');
+    Expect(1, 178207, '\p{Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(0, 178207, '\p{^Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(0, 178207, '\P{Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(1, 178207, '\P{^Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(0, 178208, '\p{Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(1, 178208, '\p{^Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(1, 178208, '\P{Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Expect(0, 178208, '\P{^Is_Block= CJK_Unified_Ideographs_EXTENSION_D}', "");
+    Error('\p{Is_Blk:_ CJK_Ext_d:=}');
+    Error('\P{Is_Blk:_ CJK_Ext_d:=}');
+    Expect(1, 178207, '\p{Is_Blk:cjkextd}', "");
+    Expect(0, 178207, '\p{^Is_Blk:cjkextd}', "");
+    Expect(0, 178207, '\P{Is_Blk:cjkextd}', "");
+    Expect(1, 178207, '\P{^Is_Blk:cjkextd}', "");
+    Expect(0, 178208, '\p{Is_Blk:cjkextd}', "");
+    Expect(1, 178208, '\p{^Is_Blk:cjkextd}', "");
+    Expect(1, 178208, '\P{Is_Blk:cjkextd}', "");
+    Expect(0, 178208, '\P{^Is_Blk:cjkextd}', "");
+    Expect(1, 178207, '\p{Is_Blk= -cjk_Ext_D}', "");
+    Expect(0, 178207, '\p{^Is_Blk= -cjk_Ext_D}', "");
+    Expect(0, 178207, '\P{Is_Blk= -cjk_Ext_D}', "");
+    Expect(1, 178207, '\P{^Is_Blk= -cjk_Ext_D}', "");
+    Expect(0, 178208, '\p{Is_Blk= -cjk_Ext_D}', "");
+    Expect(1, 178208, '\p{^Is_Blk= -cjk_Ext_D}', "");
+    Expect(1, 178208, '\P{Is_Blk= -cjk_Ext_D}', "");
+    Expect(0, 178208, '\P{^Is_Blk= -cjk_Ext_D}', "");
+    Error('\p{Block=-_CJK_UNIFIED_Ideographs_Extension_E:=}');
+    Error('\P{Block=-_CJK_UNIFIED_Ideographs_Extension_E:=}');
     Expect(1, 183983, '\p{Block=:\ACJK_Unified_Ideographs_Extension_E\z:}', "");;
     Expect(0, 183984, '\p{Block=:\ACJK_Unified_Ideographs_Extension_E\z:}', "");;
-    Expect(1, 183983, '\p{Block:cjkunifiedideographsextensione}', "");
-    Expect(0, 183983, '\p{^Block:cjkunifiedideographsextensione}', "");
-    Expect(0, 183983, '\P{Block:cjkunifiedideographsextensione}', "");
-    Expect(1, 183983, '\P{^Block:cjkunifiedideographsextensione}', "");
-    Expect(0, 183984, '\p{Block:cjkunifiedideographsextensione}', "");
-    Expect(1, 183984, '\p{^Block:cjkunifiedideographsextensione}', "");
-    Expect(1, 183984, '\P{Block:cjkunifiedideographsextensione}', "");
-    Expect(0, 183984, '\P{^Block:cjkunifiedideographsextensione}', "");
+    Expect(1, 183983, '\p{Block=cjkunifiedideographsextensione}', "");
+    Expect(0, 183983, '\p{^Block=cjkunifiedideographsextensione}', "");
+    Expect(0, 183983, '\P{Block=cjkunifiedideographsextensione}', "");
+    Expect(1, 183983, '\P{^Block=cjkunifiedideographsextensione}', "");
+    Expect(0, 183984, '\p{Block=cjkunifiedideographsextensione}', "");
+    Expect(1, 183984, '\p{^Block=cjkunifiedideographsextensione}', "");
+    Expect(1, 183984, '\P{Block=cjkunifiedideographsextensione}', "");
+    Expect(0, 183984, '\P{^Block=cjkunifiedideographsextensione}', "");
     Expect(1, 183983, '\p{Block=:\Acjkunifiedideographsextensione\z:}', "");;
     Expect(0, 183984, '\p{Block=:\Acjkunifiedideographsextensione\z:}', "");;
-    Expect(1, 183983, '\p{Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(0, 183983, '\p{^Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(0, 183983, '\P{Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(1, 183983, '\P{^Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(0, 183984, '\p{Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(1, 183984, '\p{^Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(1, 183984, '\P{Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Expect(0, 183984, '\P{^Block= 	cjk_Unified_ideographs_EXTENSION_E}', "");
-    Error('\p{Blk=:=-	CJK_Ext_E}');
-    Error('\P{Blk=:=-	CJK_Ext_E}');
+    Expect(1, 183983, '\p{Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(0, 183983, '\p{^Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(0, 183983, '\P{Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(1, 183983, '\P{^Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(0, 183984, '\p{Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(1, 183984, '\p{^Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(1, 183984, '\P{Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Expect(0, 183984, '\P{^Block=	-cjk_Unified_ideographs_extension_E}', "");
+    Error('\p{Blk=:= CJK_ext_E}');
+    Error('\P{Blk=:= CJK_ext_E}');
     Expect(1, 183983, '\p{Blk=:\ACJK_Ext_E\z:}', "");;
     Expect(0, 183984, '\p{Blk=:\ACJK_Ext_E\z:}', "");;
     Expect(1, 183983, '\p{Blk=cjkexte}', "");
@@ -7978,16 +8082,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 183984, '\P{^Blk=cjkexte}', "");
     Expect(1, 183983, '\p{Blk=:\Acjkexte\z:}', "");;
     Expect(0, 183984, '\p{Blk=:\Acjkexte\z:}', "");;
-    Expect(1, 183983, '\p{Blk=--cjk_ext_E}', "");
-    Expect(0, 183983, '\p{^Blk=--cjk_ext_E}', "");
-    Expect(0, 183983, '\P{Blk=--cjk_ext_E}', "");
-    Expect(1, 183983, '\P{^Blk=--cjk_ext_E}', "");
-    Expect(0, 183984, '\p{Blk=--cjk_ext_E}', "");
-    Expect(1, 183984, '\p{^Blk=--cjk_ext_E}', "");
-    Expect(1, 183984, '\P{Blk=--cjk_ext_E}', "");
-    Expect(0, 183984, '\P{^Blk=--cjk_ext_E}', "");
-    Error('\p{Is_Block=:= cjk_unified_Ideographs_Extension_E}');
-    Error('\P{Is_Block=:= cjk_unified_Ideographs_Extension_E}');
+    Expect(1, 183983, '\p{Blk=__CJK_EXT_E}', "");
+    Expect(0, 183983, '\p{^Blk=__CJK_EXT_E}', "");
+    Expect(0, 183983, '\P{Blk=__CJK_EXT_E}', "");
+    Expect(1, 183983, '\P{^Blk=__CJK_EXT_E}', "");
+    Expect(0, 183984, '\p{Blk=__CJK_EXT_E}', "");
+    Expect(1, 183984, '\p{^Blk=__CJK_EXT_E}', "");
+    Expect(1, 183984, '\P{Blk=__CJK_EXT_E}', "");
+    Expect(0, 183984, '\P{^Blk=__CJK_EXT_E}', "");
+    Error('\p{Is_Block=/a/CJK_Unified_ideographs_extension_E}');
+    Error('\P{Is_Block=/a/CJK_Unified_ideographs_extension_E}');
     Expect(1, 183983, '\p{Is_Block=cjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\p{^Is_Block=cjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\P{Is_Block=cjkunifiedideographsextensione}', "");
@@ -7996,16 +8100,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 183984, '\p{^Is_Block=cjkunifiedideographsextensione}', "");
     Expect(1, 183984, '\P{Is_Block=cjkunifiedideographsextensione}', "");
     Expect(0, 183984, '\P{^Is_Block=cjkunifiedideographsextensione}', "");
-    Expect(1, 183983, '\p{Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183983, '\p{^Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183983, '\P{Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(1, 183983, '\P{^Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183984, '\p{Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(1, 183984, '\p{^Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(1, 183984, '\P{Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183984, '\P{^Is_Block=__CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Error('\p{Is_Blk= 	CJK_EXT_E:=}');
-    Error('\P{Is_Blk= 	CJK_EXT_E:=}');
+    Expect(1, 183983, '\p{Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(0, 183983, '\p{^Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(0, 183983, '\P{Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(1, 183983, '\P{^Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(0, 183984, '\p{Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(1, 183984, '\p{^Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(1, 183984, '\P{Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Expect(0, 183984, '\P{^Is_Block=_-CJK_unified_ideographs_extension_E}', "");
+    Error('\p{Is_Blk=:=-CJK_Ext_E}');
+    Error('\P{Is_Blk=:=-CJK_Ext_E}');
     Expect(1, 183983, '\p{Is_Blk=cjkexte}', "");
     Expect(0, 183983, '\p{^Is_Blk=cjkexte}', "");
     Expect(0, 183983, '\P{Is_Blk=cjkexte}', "");
@@ -8014,16 +8118,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 183984, '\p{^Is_Blk=cjkexte}', "");
     Expect(1, 183984, '\P{Is_Blk=cjkexte}', "");
     Expect(0, 183984, '\P{^Is_Blk=cjkexte}', "");
-    Expect(1, 183983, '\p{Is_Blk= 	CJK_Ext_E}', "");
-    Expect(0, 183983, '\p{^Is_Blk= 	CJK_Ext_E}', "");
-    Expect(0, 183983, '\P{Is_Blk= 	CJK_Ext_E}', "");
-    Expect(1, 183983, '\P{^Is_Blk= 	CJK_Ext_E}', "");
-    Expect(0, 183984, '\p{Is_Blk= 	CJK_Ext_E}', "");
-    Expect(1, 183984, '\p{^Is_Blk= 	CJK_Ext_E}', "");
-    Expect(1, 183984, '\P{Is_Blk= 	CJK_Ext_E}', "");
-    Expect(0, 183984, '\P{^Is_Blk= 	CJK_Ext_E}', "");
-    Error('\p{Block= CJK_Unified_Ideographs_Extension_F:=}');
-    Error('\P{Block= CJK_Unified_Ideographs_Extension_F:=}');
+    Expect(1, 183983, '\p{Is_Blk=--CJK_Ext_E}', "");
+    Expect(0, 183983, '\p{^Is_Blk=--CJK_Ext_E}', "");
+    Expect(0, 183983, '\P{Is_Blk=--CJK_Ext_E}', "");
+    Expect(1, 183983, '\P{^Is_Blk=--CJK_Ext_E}', "");
+    Expect(0, 183984, '\p{Is_Blk=--CJK_Ext_E}', "");
+    Expect(1, 183984, '\p{^Is_Blk=--CJK_Ext_E}', "");
+    Expect(1, 183984, '\P{Is_Blk=--CJK_Ext_E}', "");
+    Expect(0, 183984, '\P{^Is_Blk=--CJK_Ext_E}', "");
+    Error('\p{Block= :=CJK_Unified_ideographs_EXTENSION_F}');
+    Error('\P{Block= :=CJK_Unified_ideographs_EXTENSION_F}');
     Expect(1, 191471, '\p{Block=:\ACJK_Unified_Ideographs_Extension_F\z:}', "");;
     Expect(0, 191472, '\p{Block=:\ACJK_Unified_Ideographs_Extension_F\z:}', "");;
     Expect(1, 191471, '\p{Block=cjkunifiedideographsextensionf}', "");
@@ -8036,16 +8140,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 191472, '\P{^Block=cjkunifiedideographsextensionf}', "");
     Expect(1, 191471, '\p{Block=:\Acjkunifiedideographsextensionf\z:}', "");;
     Expect(0, 191472, '\p{Block=:\Acjkunifiedideographsextensionf\z:}', "");;
-    Expect(1, 191471, '\p{Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(0, 191471, '\p{^Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(0, 191471, '\P{Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(1, 191471, '\P{^Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(0, 191472, '\p{Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(1, 191472, '\p{^Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(1, 191472, '\P{Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Expect(0, 191472, '\P{^Block=_	CJK_Unified_Ideographs_extension_f}', "");
-    Error('\p{Blk=	:=cjk_EXT_f}');
-    Error('\P{Blk=	:=cjk_EXT_f}');
+    Expect(1, 191471, '\p{Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191471, '\p{^Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191471, '\P{Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(1, 191471, '\P{^Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191472, '\p{Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(1, 191472, '\p{^Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(1, 191472, '\P{Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191472, '\P{^Block=	_cjk_Unified_Ideographs_extension_F}', "");
+    Error('\p{Blk=_/a/CJK_Ext_F}');
+    Error('\P{Blk=_/a/CJK_Ext_F}');
     Expect(1, 191471, '\p{Blk=:\ACJK_Ext_F\z:}', "");;
     Expect(0, 191472, '\p{Blk=:\ACJK_Ext_F\z:}', "");;
     Expect(1, 191471, '\p{Blk=cjkextf}', "");
@@ -8058,52 +8162,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 191472, '\P{^Blk=cjkextf}', "");
     Expect(1, 191471, '\p{Blk=:\Acjkextf\z:}', "");;
     Expect(0, 191472, '\p{Blk=:\Acjkextf\z:}', "");;
-    Expect(1, 191471, '\p{Blk=	CJK_ext_f}', "");
-    Expect(0, 191471, '\p{^Blk=	CJK_ext_f}', "");
-    Expect(0, 191471, '\P{Blk=	CJK_ext_f}', "");
-    Expect(1, 191471, '\P{^Blk=	CJK_ext_f}', "");
-    Expect(0, 191472, '\p{Blk=	CJK_ext_f}', "");
-    Expect(1, 191472, '\p{^Blk=	CJK_ext_f}', "");
-    Expect(1, 191472, '\P{Blk=	CJK_ext_f}', "");
-    Expect(0, 191472, '\P{^Blk=	CJK_ext_f}', "");
-    Error('\p{Is_Block=:=CJK_Unified_Ideographs_Extension_F}');
-    Error('\P{Is_Block=:=CJK_Unified_Ideographs_Extension_F}');
-    Expect(1, 191471, '\p{Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(0, 191471, '\p{^Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(0, 191471, '\P{Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(1, 191471, '\P{^Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(0, 191472, '\p{Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(1, 191472, '\p{^Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(1, 191472, '\P{Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(0, 191472, '\P{^Is_Block: cjkunifiedideographsextensionf}', "");
-    Expect(1, 191471, '\p{Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(0, 191471, '\p{^Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(0, 191471, '\P{Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(1, 191471, '\P{^Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(0, 191472, '\p{Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(1, 191472, '\p{^Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(1, 191472, '\P{Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Expect(0, 191472, '\P{^Is_Block=  cjk_Unified_Ideographs_extension_F}', "");
-    Error('\p{Is_Blk=_ cjk_EXT_F/a/}');
-    Error('\P{Is_Blk=_ cjk_EXT_F/a/}');
-    Expect(1, 191471, '\p{Is_Blk=cjkextf}', "");
-    Expect(0, 191471, '\p{^Is_Blk=cjkextf}', "");
-    Expect(0, 191471, '\P{Is_Blk=cjkextf}', "");
-    Expect(1, 191471, '\P{^Is_Blk=cjkextf}', "");
-    Expect(0, 191472, '\p{Is_Blk=cjkextf}', "");
-    Expect(1, 191472, '\p{^Is_Blk=cjkextf}', "");
-    Expect(1, 191472, '\P{Is_Blk=cjkextf}', "");
-    Expect(0, 191472, '\P{^Is_Blk=cjkextf}', "");
-    Expect(1, 191471, '\p{Is_Blk= CJK_EXT_F}', "");
-    Expect(0, 191471, '\p{^Is_Blk= CJK_EXT_F}', "");
-    Expect(0, 191471, '\P{Is_Blk= CJK_EXT_F}', "");
-    Expect(1, 191471, '\P{^Is_Blk= CJK_EXT_F}', "");
-    Expect(0, 191472, '\p{Is_Blk= CJK_EXT_F}', "");
-    Expect(1, 191472, '\p{^Is_Blk= CJK_EXT_F}', "");
-    Expect(1, 191472, '\P{Is_Blk= CJK_EXT_F}', "");
-    Expect(0, 191472, '\P{^Is_Blk= CJK_EXT_F}', "");
-    Error('\p{Block=__CJK_Unified_ideographs_Extension_G:=}');
-    Error('\P{Block=__CJK_Unified_ideographs_Extension_G:=}');
+    Expect(1, 191471, '\p{Blk=--CJK_EXT_F}', "");
+    Expect(0, 191471, '\p{^Blk=--CJK_EXT_F}', "");
+    Expect(0, 191471, '\P{Blk=--CJK_EXT_F}', "");
+    Expect(1, 191471, '\P{^Blk=--CJK_EXT_F}', "");
+    Expect(0, 191472, '\p{Blk=--CJK_EXT_F}', "");
+    Expect(1, 191472, '\p{^Blk=--CJK_EXT_F}', "");
+    Expect(1, 191472, '\P{Blk=--CJK_EXT_F}', "");
+    Expect(0, 191472, '\P{^Blk=--CJK_EXT_F}', "");
+    Error('\p{Is_Block=/a/-cjk_unified_Ideographs_Extension_f}');
+    Error('\P{Is_Block=/a/-cjk_unified_Ideographs_Extension_f}');
+    Expect(1, 191471, '\p{Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(0, 191471, '\p{^Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(0, 191471, '\P{Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(1, 191471, '\P{^Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(0, 191472, '\p{Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(1, 191472, '\p{^Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(1, 191472, '\P{Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(0, 191472, '\P{^Is_Block=cjkunifiedideographsextensionf}', "");
+    Expect(1, 191471, '\p{Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(0, 191471, '\p{^Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(0, 191471, '\P{Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(1, 191471, '\P{^Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(0, 191472, '\p{Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(1, 191472, '\p{^Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(1, 191472, '\P{Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Expect(0, 191472, '\P{^Is_Block= CJK_Unified_ideographs_Extension_F}', "");
+    Error('\p{Is_Blk= CJK_Ext_f/a/}');
+    Error('\P{Is_Blk= CJK_Ext_f/a/}');
+    Expect(1, 191471, '\p{Is_Blk:	cjkextf}', "");
+    Expect(0, 191471, '\p{^Is_Blk:	cjkextf}', "");
+    Expect(0, 191471, '\P{Is_Blk:	cjkextf}', "");
+    Expect(1, 191471, '\P{^Is_Blk:	cjkextf}', "");
+    Expect(0, 191472, '\p{Is_Blk:	cjkextf}', "");
+    Expect(1, 191472, '\p{^Is_Blk:	cjkextf}', "");
+    Expect(1, 191472, '\P{Is_Blk:	cjkextf}', "");
+    Expect(0, 191472, '\P{^Is_Blk:	cjkextf}', "");
+    Expect(1, 191471, '\p{Is_Blk=  CJK_Ext_F}', "");
+    Expect(0, 191471, '\p{^Is_Blk=  CJK_Ext_F}', "");
+    Expect(0, 191471, '\P{Is_Blk=  CJK_Ext_F}', "");
+    Expect(1, 191471, '\P{^Is_Blk=  CJK_Ext_F}', "");
+    Expect(0, 191472, '\p{Is_Blk=  CJK_Ext_F}', "");
+    Expect(1, 191472, '\p{^Is_Blk=  CJK_Ext_F}', "");
+    Expect(1, 191472, '\P{Is_Blk=  CJK_Ext_F}', "");
+    Expect(0, 191472, '\P{^Is_Blk=  CJK_Ext_F}', "");
+    Error('\p{Block=CJK_Unified_ideographs_EXTENSION_G/a/}');
+    Error('\P{Block=CJK_Unified_ideographs_EXTENSION_G/a/}');
     Expect(1, 201551, '\p{Block=:\ACJK_Unified_Ideographs_Extension_G\z:}', "");;
     Expect(0, 201552, '\p{Block=:\ACJK_Unified_Ideographs_Extension_G\z:}', "");;
     Expect(1, 201551, '\p{Block=cjkunifiedideographsextensiong}', "");
@@ -8116,16 +8220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 201552, '\P{^Block=cjkunifiedideographsextensiong}', "");
     Expect(1, 201551, '\p{Block=:\Acjkunifiedideographsextensiong\z:}', "");;
     Expect(0, 201552, '\p{Block=:\Acjkunifiedideographsextensiong\z:}', "");;
-    Expect(1, 201551, '\p{Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(0, 201551, '\p{^Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(0, 201551, '\P{Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(1, 201551, '\P{^Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(0, 201552, '\p{Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(1, 201552, '\p{^Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(1, 201552, '\P{Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Expect(0, 201552, '\P{^Block=--CJK_Unified_IDEOGRAPHS_extension_g}', "");
-    Error('\p{Blk=	 CJK_Ext_g/a/}');
-    Error('\P{Blk=	 CJK_Ext_g/a/}');
+    Expect(1, 201551, '\p{Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(0, 201551, '\p{^Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(0, 201551, '\P{Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(1, 201551, '\P{^Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(0, 201552, '\p{Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(1, 201552, '\p{^Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(1, 201552, '\P{Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Expect(0, 201552, '\P{^Block:  CJK_UNIFIED_IDEOGRAPHS_Extension_G}', "");
+    Error('\p{Blk= /a/CJK_Ext_G}');
+    Error('\P{Blk= /a/CJK_Ext_G}');
     Expect(1, 201551, '\p{Blk=:\ACJK_Ext_G\z:}', "");;
     Expect(0, 201552, '\p{Blk=:\ACJK_Ext_G\z:}', "");;
     Expect(1, 201551, '\p{Blk=cjkextg}', "");
@@ -8138,16 +8242,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 201552, '\P{^Blk=cjkextg}', "");
     Expect(1, 201551, '\p{Blk=:\Acjkextg\z:}', "");;
     Expect(0, 201552, '\p{Blk=:\Acjkextg\z:}', "");;
-    Expect(1, 201551, '\p{Blk=	 CJK_ext_G}', "");
-    Expect(0, 201551, '\p{^Blk=	 CJK_ext_G}', "");
-    Expect(0, 201551, '\P{Blk=	 CJK_ext_G}', "");
-    Expect(1, 201551, '\P{^Blk=	 CJK_ext_G}', "");
-    Expect(0, 201552, '\p{Blk=	 CJK_ext_G}', "");
-    Expect(1, 201552, '\p{^Blk=	 CJK_ext_G}', "");
-    Expect(1, 201552, '\P{Blk=	 CJK_ext_G}', "");
-    Expect(0, 201552, '\P{^Blk=	 CJK_ext_G}', "");
-    Error('\p{Is_Block=	_cjk_unified_Ideographs_EXTENSION_g:=}');
-    Error('\P{Is_Block=	_cjk_unified_Ideographs_EXTENSION_g:=}');
+    Expect(1, 201551, '\p{Blk=	-CJK_Ext_g}', "");
+    Expect(0, 201551, '\p{^Blk=	-CJK_Ext_g}', "");
+    Expect(0, 201551, '\P{Blk=	-CJK_Ext_g}', "");
+    Expect(1, 201551, '\P{^Blk=	-CJK_Ext_g}', "");
+    Expect(0, 201552, '\p{Blk=	-CJK_Ext_g}', "");
+    Expect(1, 201552, '\p{^Blk=	-CJK_Ext_g}', "");
+    Expect(1, 201552, '\P{Blk=	-CJK_Ext_g}', "");
+    Expect(0, 201552, '\P{^Blk=	-CJK_Ext_g}', "");
+    Error('\p{Is_Block=-cjk_UNIFIED_Ideographs_Extension_G/a/}');
+    Error('\P{Is_Block=-cjk_UNIFIED_Ideographs_Extension_G/a/}');
     Expect(1, 201551, '\p{Is_Block=cjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\p{^Is_Block=cjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\P{Is_Block=cjkunifiedideographsextensiong}', "");
@@ -8156,16 +8260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 201552, '\p{^Is_Block=cjkunifiedideographsextensiong}', "");
     Expect(1, 201552, '\P{Is_Block=cjkunifiedideographsextensiong}', "");
     Expect(0, 201552, '\P{^Is_Block=cjkunifiedideographsextensiong}', "");
-    Expect(1, 201551, '\p{Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(0, 201551, '\p{^Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(0, 201551, '\P{Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(1, 201551, '\P{^Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(0, 201552, '\p{Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(1, 201552, '\p{^Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(1, 201552, '\P{Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Expect(0, 201552, '\P{^Is_Block=_cjk_unified_Ideographs_EXTENSION_G}', "");
-    Error('\p{Is_Blk=-CJK_EXT_G:=}');
-    Error('\P{Is_Blk=-CJK_EXT_G:=}');
+    Expect(1, 201551, '\p{Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201551, '\p{^Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201551, '\P{Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(1, 201551, '\P{^Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201552, '\p{Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(1, 201552, '\p{^Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(1, 201552, '\P{Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201552, '\P{^Is_Block=__CJK_unified_Ideographs_Extension_G}', "");
+    Error('\p{Is_Blk= 	CJK_Ext_g/a/}');
+    Error('\P{Is_Blk= 	CJK_Ext_g/a/}');
     Expect(1, 201551, '\p{Is_Blk=cjkextg}', "");
     Expect(0, 201551, '\p{^Is_Blk=cjkextg}', "");
     Expect(0, 201551, '\P{Is_Blk=cjkextg}', "");
@@ -8174,16 +8278,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 201552, '\p{^Is_Blk=cjkextg}', "");
     Expect(1, 201552, '\P{Is_Blk=cjkextg}', "");
     Expect(0, 201552, '\P{^Is_Blk=cjkextg}', "");
-    Expect(1, 201551, '\p{Is_Blk=_CJK_Ext_G}', "");
-    Expect(0, 201551, '\p{^Is_Blk=_CJK_Ext_G}', "");
-    Expect(0, 201551, '\P{Is_Blk=_CJK_Ext_G}', "");
-    Expect(1, 201551, '\P{^Is_Blk=_CJK_Ext_G}', "");
-    Expect(0, 201552, '\p{Is_Blk=_CJK_Ext_G}', "");
-    Expect(1, 201552, '\p{^Is_Blk=_CJK_Ext_G}', "");
-    Expect(1, 201552, '\P{Is_Blk=_CJK_Ext_G}', "");
-    Expect(0, 201552, '\P{^Is_Blk=_CJK_Ext_G}', "");
-    Error('\p{Block=  CJK_radicals_Supplement:=}');
-    Error('\P{Block=  CJK_radicals_Supplement:=}');
+    Expect(1, 201551, '\p{Is_Blk=-CJK_Ext_G}', "");
+    Expect(0, 201551, '\p{^Is_Blk=-CJK_Ext_G}', "");
+    Expect(0, 201551, '\P{Is_Blk=-CJK_Ext_G}', "");
+    Expect(1, 201551, '\P{^Is_Blk=-CJK_Ext_G}', "");
+    Expect(0, 201552, '\p{Is_Blk=-CJK_Ext_G}', "");
+    Expect(1, 201552, '\p{^Is_Blk=-CJK_Ext_G}', "");
+    Expect(1, 201552, '\P{Is_Blk=-CJK_Ext_G}', "");
+    Expect(0, 201552, '\P{^Is_Blk=-CJK_Ext_G}', "");
+    Error('\p{Block=-CJK_UNIFIED_ideographs_EXTENSION_H:=}');
+    Error('\P{Block=-CJK_UNIFIED_ideographs_EXTENSION_H:=}');
+    Expect(1, 205743, '\p{Block=:\ACJK_Unified_Ideographs_Extension_H\z:}', "");;
+    Expect(0, 205744, '\p{Block=:\ACJK_Unified_Ideographs_Extension_H\z:}', "");;
+    Expect(1, 205743, '\p{Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\p{^Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\P{Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\P{^Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\p{Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\p{^Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\P{Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\P{^Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\p{Block=:\Acjkunifiedideographsextensionh\z:}', "");;
+    Expect(0, 205744, '\p{Block=:\Acjkunifiedideographsextensionh\z:}', "");;
+    Expect(1, 205743, '\p{Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(0, 205743, '\p{^Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(0, 205743, '\P{Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(1, 205743, '\P{^Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(0, 205744, '\p{Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(1, 205744, '\p{^Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(1, 205744, '\P{Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Expect(0, 205744, '\P{^Block=	-CJK_UNIFIED_Ideographs_Extension_H}', "");
+    Error('\p{Blk=-_CJK_ext_H:=}');
+    Error('\P{Blk=-_CJK_ext_H:=}');
+    Expect(1, 205743, '\p{Blk=:\ACJK_Ext_H\z:}', "");;
+    Expect(0, 205744, '\p{Blk=:\ACJK_Ext_H\z:}', "");;
+    Expect(1, 205743, '\p{Blk=cjkexth}', "");
+    Expect(0, 205743, '\p{^Blk=cjkexth}', "");
+    Expect(0, 205743, '\P{Blk=cjkexth}', "");
+    Expect(1, 205743, '\P{^Blk=cjkexth}', "");
+    Expect(0, 205744, '\p{Blk=cjkexth}', "");
+    Expect(1, 205744, '\p{^Blk=cjkexth}', "");
+    Expect(1, 205744, '\P{Blk=cjkexth}', "");
+    Expect(0, 205744, '\P{^Blk=cjkexth}', "");
+    Expect(1, 205743, '\p{Blk=:\Acjkexth\z:}', "");;
+    Expect(0, 205744, '\p{Blk=:\Acjkexth\z:}', "");;
+    Expect(1, 205743, '\p{Blk=	cjk_Ext_H}', "");
+    Expect(0, 205743, '\p{^Blk=	cjk_Ext_H}', "");
+    Expect(0, 205743, '\P{Blk=	cjk_Ext_H}', "");
+    Expect(1, 205743, '\P{^Blk=	cjk_Ext_H}', "");
+    Expect(0, 205744, '\p{Blk=	cjk_Ext_H}', "");
+    Expect(1, 205744, '\p{^Blk=	cjk_Ext_H}', "");
+    Expect(1, 205744, '\P{Blk=	cjk_Ext_H}', "");
+    Expect(0, 205744, '\P{^Blk=	cjk_Ext_H}', "");
+    Error('\p{Is_Block=	/a/CJK_unified_ideographs_Extension_h}');
+    Error('\P{Is_Block=	/a/CJK_unified_ideographs_Extension_h}');
+    Expect(1, 205743, '\p{Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\p{^Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\P{Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\P{^Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\p{Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\p{^Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\P{Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\P{^Is_Block=cjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\p{Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(0, 205743, '\p{^Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(0, 205743, '\P{Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(1, 205743, '\P{^Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(0, 205744, '\p{Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(1, 205744, '\p{^Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(1, 205744, '\P{Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Expect(0, 205744, '\P{^Is_Block=-	CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H}', "");
+    Error('\p{Is_Blk=:=	CJK_ext_H}');
+    Error('\P{Is_Blk=:=	CJK_ext_H}');
+    Expect(1, 205743, '\p{Is_Blk=cjkexth}', "");
+    Expect(0, 205743, '\p{^Is_Blk=cjkexth}', "");
+    Expect(0, 205743, '\P{Is_Blk=cjkexth}', "");
+    Expect(1, 205743, '\P{^Is_Blk=cjkexth}', "");
+    Expect(0, 205744, '\p{Is_Blk=cjkexth}', "");
+    Expect(1, 205744, '\p{^Is_Blk=cjkexth}', "");
+    Expect(1, 205744, '\P{Is_Blk=cjkexth}', "");
+    Expect(0, 205744, '\P{^Is_Blk=cjkexth}', "");
+    Expect(1, 205743, '\p{Is_Blk=- CJK_Ext_H}', "");
+    Expect(0, 205743, '\p{^Is_Blk=- CJK_Ext_H}', "");
+    Expect(0, 205743, '\P{Is_Blk=- CJK_Ext_H}', "");
+    Expect(1, 205743, '\P{^Is_Blk=- CJK_Ext_H}', "");
+    Expect(0, 205744, '\p{Is_Blk=- CJK_Ext_H}', "");
+    Expect(1, 205744, '\p{^Is_Blk=- CJK_Ext_H}', "");
+    Expect(1, 205744, '\P{Is_Blk=- CJK_Ext_H}', "");
+    Expect(0, 205744, '\P{^Is_Blk=- CJK_Ext_H}', "");
+    Error('\p{Block=-:=cjk_radicals_SUPPLEMENT}');
+    Error('\P{Block=-:=cjk_radicals_SUPPLEMENT}');
     Expect(1, 12031, '\p{Block=:\ACJK_Radicals_Supplement\z:}', "");;
     Expect(0, 12032, '\p{Block=:\ACJK_Radicals_Supplement\z:}', "");;
     Expect(1, 12031, '\p{Block=cjkradicalssupplement}', "");
@@ -8196,16 +8380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12032, '\P{^Block=cjkradicalssupplement}', "");
     Expect(1, 12031, '\p{Block=:\Acjkradicalssupplement\z:}', "");;
     Expect(0, 12032, '\p{Block=:\Acjkradicalssupplement\z:}', "");;
-    Expect(1, 12031, '\p{Block=	CJK_RADICALS_supplement}', "");
-    Expect(0, 12031, '\p{^Block=	CJK_RADICALS_supplement}', "");
-    Expect(0, 12031, '\P{Block=	CJK_RADICALS_supplement}', "");
-    Expect(1, 12031, '\P{^Block=	CJK_RADICALS_supplement}', "");
-    Expect(0, 12032, '\p{Block=	CJK_RADICALS_supplement}', "");
-    Expect(1, 12032, '\p{^Block=	CJK_RADICALS_supplement}', "");
-    Expect(1, 12032, '\P{Block=	CJK_RADICALS_supplement}', "");
-    Expect(0, 12032, '\P{^Block=	CJK_RADICALS_supplement}', "");
-    Error('\p{Blk=/a/-CJK_RADICALS_Sup}');
-    Error('\P{Blk=/a/-CJK_RADICALS_Sup}');
+    Expect(1, 12031, '\p{Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(0, 12031, '\p{^Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(0, 12031, '\P{Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(1, 12031, '\P{^Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(0, 12032, '\p{Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(1, 12032, '\p{^Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(1, 12032, '\P{Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Expect(0, 12032, '\P{^Block=_	CJK_Radicals_SUPPLEMENT}', "");
+    Error('\p{Blk=	:=CJK_radicals_Sup}');
+    Error('\P{Blk=	:=CJK_radicals_Sup}');
     Expect(1, 12031, '\p{Blk=:\ACJK_Radicals_Sup\z:}', "");;
     Expect(0, 12032, '\p{Blk=:\ACJK_Radicals_Sup\z:}', "");;
     Expect(1, 12031, '\p{Blk=cjkradicalssup}', "");
@@ -8218,16 +8402,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12032, '\P{^Blk=cjkradicalssup}', "");
     Expect(1, 12031, '\p{Blk=:\Acjkradicalssup\z:}', "");;
     Expect(0, 12032, '\p{Blk=:\Acjkradicalssup\z:}', "");;
-    Expect(1, 12031, '\p{Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(0, 12031, '\p{^Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(0, 12031, '\P{Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(1, 12031, '\P{^Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(0, 12032, '\p{Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(1, 12032, '\p{^Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(1, 12032, '\P{Blk=	_CJK_RADICALS_Sup}', "");
-    Expect(0, 12032, '\P{^Blk=	_CJK_RADICALS_Sup}', "");
-    Error('\p{Is_Block=	:=CJK_Radicals_supplement}');
-    Error('\P{Is_Block=	:=CJK_Radicals_supplement}');
+    Expect(1, 12031, '\p{Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(0, 12031, '\p{^Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(0, 12031, '\P{Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(1, 12031, '\P{^Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(0, 12032, '\p{Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(1, 12032, '\p{^Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(1, 12032, '\P{Blk=_ CJK_RADICALS_Sup}', "");
+    Expect(0, 12032, '\P{^Blk=_ CJK_RADICALS_Sup}', "");
+    Error('\p{Is_Block=:=CJK_RADICALS_Supplement}');
+    Error('\P{Is_Block=:=CJK_RADICALS_Supplement}');
     Expect(1, 12031, '\p{Is_Block=cjkradicalssupplement}', "");
     Expect(0, 12031, '\p{^Is_Block=cjkradicalssupplement}', "");
     Expect(0, 12031, '\P{Is_Block=cjkradicalssupplement}', "");
@@ -8236,16 +8420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12032, '\p{^Is_Block=cjkradicalssupplement}', "");
     Expect(1, 12032, '\P{Is_Block=cjkradicalssupplement}', "");
     Expect(0, 12032, '\P{^Is_Block=cjkradicalssupplement}', "");
-    Expect(1, 12031, '\p{Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(0, 12031, '\p{^Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(0, 12031, '\P{Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(1, 12031, '\P{^Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(0, 12032, '\p{Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(1, 12032, '\p{^Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(1, 12032, '\P{Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Expect(0, 12032, '\P{^Is_Block=_CJK_radicals_SUPPLEMENT}', "");
-    Error('\p{Is_Blk:   	:=cjk_radicals_sup}');
-    Error('\P{Is_Blk:   	:=cjk_radicals_sup}');
+    Expect(1, 12031, '\p{Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(0, 12031, '\p{^Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(0, 12031, '\P{Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(1, 12031, '\P{^Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(0, 12032, '\p{Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(1, 12032, '\p{^Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(1, 12032, '\P{Is_Block=		cjk_Radicals_supplement}', "");
+    Expect(0, 12032, '\P{^Is_Block=		cjk_Radicals_supplement}', "");
+    Error('\p{Is_Blk=_CJK_Radicals_Sup:=}');
+    Error('\P{Is_Blk=_CJK_Radicals_Sup:=}');
     Expect(1, 12031, '\p{Is_Blk=cjkradicalssup}', "");
     Expect(0, 12031, '\p{^Is_Blk=cjkradicalssup}', "");
     Expect(0, 12031, '\P{Is_Blk=cjkradicalssup}', "");
@@ -8254,16 +8438,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12032, '\p{^Is_Blk=cjkradicalssup}', "");
     Expect(1, 12032, '\P{Is_Blk=cjkradicalssup}', "");
     Expect(0, 12032, '\P{^Is_Blk=cjkradicalssup}', "");
-    Expect(1, 12031, '\p{Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(0, 12031, '\p{^Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(0, 12031, '\P{Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(1, 12031, '\P{^Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(0, 12032, '\p{Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(1, 12032, '\p{^Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(1, 12032, '\P{Is_Blk=_CJK_RADICALS_Sup}', "");
-    Expect(0, 12032, '\P{^Is_Blk=_CJK_RADICALS_Sup}', "");
-    Error('\p{Block=	/a/CJK_Strokes}');
-    Error('\P{Block=	/a/CJK_Strokes}');
+    Expect(1, 12031, '\p{Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(0, 12031, '\p{^Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(0, 12031, '\P{Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(1, 12031, '\P{^Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(0, 12032, '\p{Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(1, 12032, '\p{^Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(1, 12032, '\P{Is_Blk=--CJK_Radicals_sup}', "");
+    Expect(0, 12032, '\P{^Is_Blk=--CJK_Radicals_sup}', "");
+    Error('\p{Block= _CJK_Strokes/a/}');
+    Error('\P{Block= _CJK_Strokes/a/}');
     Expect(1, 12783, '\p{Block=:\ACJK_Strokes\z:}', "");;
     Expect(0, 12784, '\p{Block=:\ACJK_Strokes\z:}', "");;
     Expect(1, 12783, '\p{Block=cjkstrokes}', "");
@@ -8276,38 +8460,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12784, '\P{^Block=cjkstrokes}', "");
     Expect(1, 12783, '\p{Block=:\Acjkstrokes\z:}', "");;
     Expect(0, 12784, '\p{Block=:\Acjkstrokes\z:}', "");;
-    Expect(1, 12783, '\p{Block=  CJK_strokes}', "");
-    Expect(0, 12783, '\p{^Block=  CJK_strokes}', "");
-    Expect(0, 12783, '\P{Block=  CJK_strokes}', "");
-    Expect(1, 12783, '\P{^Block=  CJK_strokes}', "");
-    Expect(0, 12784, '\p{Block=  CJK_strokes}', "");
-    Expect(1, 12784, '\p{^Block=  CJK_strokes}', "");
-    Expect(1, 12784, '\P{Block=  CJK_strokes}', "");
-    Expect(0, 12784, '\P{^Block=  CJK_strokes}', "");
-    Error('\p{Blk=/a/	_cjk_Strokes}');
-    Error('\P{Blk=/a/	_cjk_Strokes}');
+    Expect(1, 12783, '\p{Block= CJK_strokes}', "");
+    Expect(0, 12783, '\p{^Block= CJK_strokes}', "");
+    Expect(0, 12783, '\P{Block= CJK_strokes}', "");
+    Expect(1, 12783, '\P{^Block= CJK_strokes}', "");
+    Expect(0, 12784, '\p{Block= CJK_strokes}', "");
+    Expect(1, 12784, '\p{^Block= CJK_strokes}', "");
+    Expect(1, 12784, '\P{Block= CJK_strokes}', "");
+    Expect(0, 12784, '\P{^Block= CJK_strokes}', "");
+    Error('\p{Blk=-	cjk_strokes:=}');
+    Error('\P{Blk=-	cjk_strokes:=}');
     Expect(1, 12783, '\p{Blk=:\ACJK_Strokes\z:}', "");;
     Expect(0, 12784, '\p{Blk=:\ACJK_Strokes\z:}', "");;
-    Expect(1, 12783, '\p{Blk=cjkstrokes}', "");
-    Expect(0, 12783, '\p{^Blk=cjkstrokes}', "");
-    Expect(0, 12783, '\P{Blk=cjkstrokes}', "");
-    Expect(1, 12783, '\P{^Blk=cjkstrokes}', "");
-    Expect(0, 12784, '\p{Blk=cjkstrokes}', "");
-    Expect(1, 12784, '\p{^Blk=cjkstrokes}', "");
-    Expect(1, 12784, '\P{Blk=cjkstrokes}', "");
-    Expect(0, 12784, '\P{^Blk=cjkstrokes}', "");
+    Expect(1, 12783, '\p{Blk:	cjkstrokes}', "");
+    Expect(0, 12783, '\p{^Blk:	cjkstrokes}', "");
+    Expect(0, 12783, '\P{Blk:	cjkstrokes}', "");
+    Expect(1, 12783, '\P{^Blk:	cjkstrokes}', "");
+    Expect(0, 12784, '\p{Blk:	cjkstrokes}', "");
+    Expect(1, 12784, '\p{^Blk:	cjkstrokes}', "");
+    Expect(1, 12784, '\P{Blk:	cjkstrokes}', "");
+    Expect(0, 12784, '\P{^Blk:	cjkstrokes}', "");
     Expect(1, 12783, '\p{Blk=:\Acjkstrokes\z:}', "");;
     Expect(0, 12784, '\p{Blk=:\Acjkstrokes\z:}', "");;
-    Expect(1, 12783, '\p{Blk=CJK_Strokes}', "");
-    Expect(0, 12783, '\p{^Blk=CJK_Strokes}', "");
-    Expect(0, 12783, '\P{Blk=CJK_Strokes}', "");
-    Expect(1, 12783, '\P{^Blk=CJK_Strokes}', "");
-    Expect(0, 12784, '\p{Blk=CJK_Strokes}', "");
-    Expect(1, 12784, '\p{^Blk=CJK_Strokes}', "");
-    Expect(1, 12784, '\P{Blk=CJK_Strokes}', "");
-    Expect(0, 12784, '\P{^Blk=CJK_Strokes}', "");
-    Error('\p{Is_Block=	CJK_STROKES/a/}');
-    Error('\P{Is_Block=	CJK_STROKES/a/}');
+    Expect(1, 12783, '\p{Blk=	 CJK_Strokes}', "");
+    Expect(0, 12783, '\p{^Blk=	 CJK_Strokes}', "");
+    Expect(0, 12783, '\P{Blk=	 CJK_Strokes}', "");
+    Expect(1, 12783, '\P{^Blk=	 CJK_Strokes}', "");
+    Expect(0, 12784, '\p{Blk=	 CJK_Strokes}', "");
+    Expect(1, 12784, '\p{^Blk=	 CJK_Strokes}', "");
+    Expect(1, 12784, '\P{Blk=	 CJK_Strokes}', "");
+    Expect(0, 12784, '\P{^Blk=	 CJK_Strokes}', "");
+    Error('\p{Is_Block= _CJK_strokes:=}');
+    Error('\P{Is_Block= _CJK_strokes:=}');
     Expect(1, 12783, '\p{Is_Block=cjkstrokes}', "");
     Expect(0, 12783, '\p{^Is_Block=cjkstrokes}', "");
     Expect(0, 12783, '\P{Is_Block=cjkstrokes}', "");
@@ -8316,56 +8500,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12784, '\p{^Is_Block=cjkstrokes}', "");
     Expect(1, 12784, '\P{Is_Block=cjkstrokes}', "");
     Expect(0, 12784, '\P{^Is_Block=cjkstrokes}', "");
-    Expect(1, 12783, '\p{Is_Block=-_cjk_Strokes}', "");
-    Expect(0, 12783, '\p{^Is_Block=-_cjk_Strokes}', "");
-    Expect(0, 12783, '\P{Is_Block=-_cjk_Strokes}', "");
-    Expect(1, 12783, '\P{^Is_Block=-_cjk_Strokes}', "");
-    Expect(0, 12784, '\p{Is_Block=-_cjk_Strokes}', "");
-    Expect(1, 12784, '\p{^Is_Block=-_cjk_Strokes}', "");
-    Expect(1, 12784, '\P{Is_Block=-_cjk_Strokes}', "");
-    Expect(0, 12784, '\P{^Is_Block=-_cjk_Strokes}', "");
-    Error('\p{Is_Blk=_-CJK_Strokes:=}');
-    Error('\P{Is_Blk=_-CJK_Strokes:=}');
-    Expect(1, 12783, '\p{Is_Blk=cjkstrokes}', "");
-    Expect(0, 12783, '\p{^Is_Blk=cjkstrokes}', "");
-    Expect(0, 12783, '\P{Is_Blk=cjkstrokes}', "");
-    Expect(1, 12783, '\P{^Is_Blk=cjkstrokes}', "");
-    Expect(0, 12784, '\p{Is_Blk=cjkstrokes}', "");
-    Expect(1, 12784, '\p{^Is_Blk=cjkstrokes}', "");
-    Expect(1, 12784, '\P{Is_Blk=cjkstrokes}', "");
-    Expect(0, 12784, '\P{^Is_Blk=cjkstrokes}', "");
-    Expect(1, 12783, '\p{Is_Blk= CJK_Strokes}', "");
-    Expect(0, 12783, '\p{^Is_Blk= CJK_Strokes}', "");
-    Expect(0, 12783, '\P{Is_Blk= CJK_Strokes}', "");
-    Expect(1, 12783, '\P{^Is_Blk= CJK_Strokes}', "");
-    Expect(0, 12784, '\p{Is_Blk= CJK_Strokes}', "");
-    Expect(1, 12784, '\p{^Is_Blk= CJK_Strokes}', "");
-    Expect(1, 12784, '\P{Is_Blk= CJK_Strokes}', "");
-    Expect(0, 12784, '\P{^Is_Blk= CJK_Strokes}', "");
-    Error('\p{Block=/a/- CJK_Symbols_AND_punctuation}');
-    Error('\P{Block=/a/- CJK_Symbols_AND_punctuation}');
+    Expect(1, 12783, '\p{Is_Block=-CJK_Strokes}', "");
+    Expect(0, 12783, '\p{^Is_Block=-CJK_Strokes}', "");
+    Expect(0, 12783, '\P{Is_Block=-CJK_Strokes}', "");
+    Expect(1, 12783, '\P{^Is_Block=-CJK_Strokes}', "");
+    Expect(0, 12784, '\p{Is_Block=-CJK_Strokes}', "");
+    Expect(1, 12784, '\p{^Is_Block=-CJK_Strokes}', "");
+    Expect(1, 12784, '\P{Is_Block=-CJK_Strokes}', "");
+    Expect(0, 12784, '\P{^Is_Block=-CJK_Strokes}', "");
+    Error('\p{Is_Blk=_CJK_STROKES/a/}');
+    Error('\P{Is_Blk=_CJK_STROKES/a/}');
+    Expect(1, 12783, '\p{Is_Blk: cjkstrokes}', "");
+    Expect(0, 12783, '\p{^Is_Blk: cjkstrokes}', "");
+    Expect(0, 12783, '\P{Is_Blk: cjkstrokes}', "");
+    Expect(1, 12783, '\P{^Is_Blk: cjkstrokes}', "");
+    Expect(0, 12784, '\p{Is_Blk: cjkstrokes}', "");
+    Expect(1, 12784, '\p{^Is_Blk: cjkstrokes}', "");
+    Expect(1, 12784, '\P{Is_Blk: cjkstrokes}', "");
+    Expect(0, 12784, '\P{^Is_Blk: cjkstrokes}', "");
+    Expect(1, 12783, '\p{Is_Blk: _CJK_Strokes}', "");
+    Expect(0, 12783, '\p{^Is_Blk: _CJK_Strokes}', "");
+    Expect(0, 12783, '\P{Is_Blk: _CJK_Strokes}', "");
+    Expect(1, 12783, '\P{^Is_Blk: _CJK_Strokes}', "");
+    Expect(0, 12784, '\p{Is_Blk: _CJK_Strokes}', "");
+    Expect(1, 12784, '\p{^Is_Blk: _CJK_Strokes}', "");
+    Expect(1, 12784, '\P{Is_Blk: _CJK_Strokes}', "");
+    Expect(0, 12784, '\P{^Is_Blk: _CJK_Strokes}', "");
+    Error('\p{Block=:=	_CJK_symbols_And_Punctuation}');
+    Error('\P{Block=:=	_CJK_symbols_And_Punctuation}');
     Expect(1, 12351, '\p{Block=:\ACJK_Symbols_And_Punctuation\z:}', "");;
     Expect(0, 12352, '\p{Block=:\ACJK_Symbols_And_Punctuation\z:}', "");;
-    Expect(1, 12351, '\p{Block=cjksymbolsandpunctuation}', "");
-    Expect(0, 12351, '\p{^Block=cjksymbolsandpunctuation}', "");
-    Expect(0, 12351, '\P{Block=cjksymbolsandpunctuation}', "");
-    Expect(1, 12351, '\P{^Block=cjksymbolsandpunctuation}', "");
-    Expect(0, 12352, '\p{Block=cjksymbolsandpunctuation}', "");
-    Expect(1, 12352, '\p{^Block=cjksymbolsandpunctuation}', "");
-    Expect(1, 12352, '\P{Block=cjksymbolsandpunctuation}', "");
-    Expect(0, 12352, '\P{^Block=cjksymbolsandpunctuation}', "");
+    Expect(1, 12351, '\p{Block:   cjksymbolsandpunctuation}', "");
+    Expect(0, 12351, '\p{^Block:   cjksymbolsandpunctuation}', "");
+    Expect(0, 12351, '\P{Block:   cjksymbolsandpunctuation}', "");
+    Expect(1, 12351, '\P{^Block:   cjksymbolsandpunctuation}', "");
+    Expect(0, 12352, '\p{Block:   cjksymbolsandpunctuation}', "");
+    Expect(1, 12352, '\p{^Block:   cjksymbolsandpunctuation}', "");
+    Expect(1, 12352, '\P{Block:   cjksymbolsandpunctuation}', "");
+    Expect(0, 12352, '\P{^Block:   cjksymbolsandpunctuation}', "");
     Expect(1, 12351, '\p{Block=:\Acjksymbolsandpunctuation\z:}', "");;
     Expect(0, 12352, '\p{Block=:\Acjksymbolsandpunctuation\z:}', "");;
-    Expect(1, 12351, '\p{Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(0, 12351, '\p{^Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(0, 12351, '\P{Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(1, 12351, '\P{^Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(0, 12352, '\p{Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(1, 12352, '\p{^Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(1, 12352, '\P{Block=-CJK_symbols_AND_punctuation}', "");
-    Expect(0, 12352, '\P{^Block=-CJK_symbols_AND_punctuation}', "");
-    Error('\p{Blk=-cjk_Symbols:=}');
-    Error('\P{Blk=-cjk_Symbols:=}');
+    Expect(1, 12351, '\p{Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(0, 12351, '\p{^Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(0, 12351, '\P{Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(1, 12351, '\P{^Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(0, 12352, '\p{Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(1, 12352, '\p{^Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(1, 12352, '\P{Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Expect(0, 12352, '\P{^Block=- CJK_SYMBOLS_and_punctuation}', "");
+    Error('\p{Blk: --CJK_SYMBOLS:=}');
+    Error('\P{Blk: --CJK_SYMBOLS:=}');
     Expect(1, 12351, '\p{Blk=:\ACJK_Symbols\z:}', "");;
     Expect(0, 12352, '\p{Blk=:\ACJK_Symbols\z:}', "");;
     Expect(1, 12351, '\p{Blk=cjksymbols}', "");
@@ -8378,16 +8562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12352, '\P{^Blk=cjksymbols}', "");
     Expect(1, 12351, '\p{Blk=:\Acjksymbols\z:}', "");;
     Expect(0, 12352, '\p{Blk=:\Acjksymbols\z:}', "");;
-    Expect(1, 12351, '\p{Blk=-_cjk_symbols}', "");
-    Expect(0, 12351, '\p{^Blk=-_cjk_symbols}', "");
-    Expect(0, 12351, '\P{Blk=-_cjk_symbols}', "");
-    Expect(1, 12351, '\P{^Blk=-_cjk_symbols}', "");
-    Expect(0, 12352, '\p{Blk=-_cjk_symbols}', "");
-    Expect(1, 12352, '\p{^Blk=-_cjk_symbols}', "");
-    Expect(1, 12352, '\P{Blk=-_cjk_symbols}', "");
-    Expect(0, 12352, '\P{^Blk=-_cjk_symbols}', "");
-    Error('\p{Is_Block:/a/- cjk_Symbols_And_Punctuation}');
-    Error('\P{Is_Block:/a/- cjk_Symbols_And_Punctuation}');
+    Expect(1, 12351, '\p{Blk=__cjk_Symbols}', "");
+    Expect(0, 12351, '\p{^Blk=__cjk_Symbols}', "");
+    Expect(0, 12351, '\P{Blk=__cjk_Symbols}', "");
+    Expect(1, 12351, '\P{^Blk=__cjk_Symbols}', "");
+    Expect(0, 12352, '\p{Blk=__cjk_Symbols}', "");
+    Expect(1, 12352, '\p{^Blk=__cjk_Symbols}', "");
+    Expect(1, 12352, '\P{Blk=__cjk_Symbols}', "");
+    Expect(0, 12352, '\P{^Blk=__cjk_Symbols}', "");
+    Error('\p{Is_Block= /a/CJK_symbols_And_punctuation}');
+    Error('\P{Is_Block= /a/CJK_symbols_And_punctuation}');
     Expect(1, 12351, '\p{Is_Block=cjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\p{^Is_Block=cjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\P{Is_Block=cjksymbolsandpunctuation}', "");
@@ -8396,34 +8580,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12352, '\p{^Is_Block=cjksymbolsandpunctuation}', "");
     Expect(1, 12352, '\P{Is_Block=cjksymbolsandpunctuation}', "");
     Expect(0, 12352, '\P{^Is_Block=cjksymbolsandpunctuation}', "");
-    Expect(1, 12351, '\p{Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12351, '\p{^Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12351, '\P{Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12351, '\P{^Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12352, '\p{Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12352, '\p{^Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12352, '\P{Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12352, '\P{^Is_Block:   		CJK_Symbols_And_Punctuation}', "");
-    Error('\p{Is_Blk=-CJK_Symbols:=}');
-    Error('\P{Is_Blk=-CJK_Symbols:=}');
-    Expect(1, 12351, '\p{Is_Blk=cjksymbols}', "");
-    Expect(0, 12351, '\p{^Is_Blk=cjksymbols}', "");
-    Expect(0, 12351, '\P{Is_Blk=cjksymbols}', "");
-    Expect(1, 12351, '\P{^Is_Blk=cjksymbols}', "");
-    Expect(0, 12352, '\p{Is_Blk=cjksymbols}', "");
-    Expect(1, 12352, '\p{^Is_Blk=cjksymbols}', "");
-    Expect(1, 12352, '\P{Is_Blk=cjksymbols}', "");
-    Expect(0, 12352, '\P{^Is_Blk=cjksymbols}', "");
-    Expect(1, 12351, '\p{Is_Blk=__cjk_Symbols}', "");
-    Expect(0, 12351, '\p{^Is_Blk=__cjk_Symbols}', "");
-    Expect(0, 12351, '\P{Is_Blk=__cjk_Symbols}', "");
-    Expect(1, 12351, '\P{^Is_Blk=__cjk_Symbols}', "");
-    Expect(0, 12352, '\p{Is_Blk=__cjk_Symbols}', "");
-    Expect(1, 12352, '\p{^Is_Blk=__cjk_Symbols}', "");
-    Expect(1, 12352, '\P{Is_Blk=__cjk_Symbols}', "");
-    Expect(0, 12352, '\P{^Is_Blk=__cjk_Symbols}', "");
-    Error('\p{Block:    HANGUL_COMPATIBILITY_JAMO:=}');
-    Error('\P{Block:    HANGUL_COMPATIBILITY_JAMO:=}');
+    Expect(1, 12351, '\p{Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(0, 12351, '\p{^Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(0, 12351, '\P{Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(1, 12351, '\P{^Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(0, 12352, '\p{Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(1, 12352, '\p{^Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(1, 12352, '\P{Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Expect(0, 12352, '\P{^Is_Block=-cjk_Symbols_and_punctuation}', "");
+    Error('\p{Is_Blk=-CJK_SYMBOLS:=}');
+    Error('\P{Is_Blk=-CJK_SYMBOLS:=}');
+    Expect(1, 12351, '\p{Is_Blk:	cjksymbols}', "");
+    Expect(0, 12351, '\p{^Is_Blk:	cjksymbols}', "");
+    Expect(0, 12351, '\P{Is_Blk:	cjksymbols}', "");
+    Expect(1, 12351, '\P{^Is_Blk:	cjksymbols}', "");
+    Expect(0, 12352, '\p{Is_Blk:	cjksymbols}', "");
+    Expect(1, 12352, '\p{^Is_Blk:	cjksymbols}', "");
+    Expect(1, 12352, '\P{Is_Blk:	cjksymbols}', "");
+    Expect(0, 12352, '\P{^Is_Blk:	cjksymbols}', "");
+    Expect(1, 12351, '\p{Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(0, 12351, '\p{^Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(0, 12351, '\P{Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(1, 12351, '\P{^Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(0, 12352, '\p{Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(1, 12352, '\p{^Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(1, 12352, '\P{Is_Blk=	-CJK_SYMBOLS}', "");
+    Expect(0, 12352, '\P{^Is_Blk=	-CJK_SYMBOLS}', "");
+    Error('\p{Block=/a/--Hangul_Compatibility_JAMO}');
+    Error('\P{Block=/a/--Hangul_Compatibility_JAMO}');
     Expect(1, 12687, '\p{Block=:\AHangul_Compatibility_Jamo\z:}', "");;
     Expect(0, 12688, '\p{Block=:\AHangul_Compatibility_Jamo\z:}', "");;
     Expect(1, 12687, '\p{Block=hangulcompatibilityjamo}', "");
@@ -8436,16 +8620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12688, '\P{^Block=hangulcompatibilityjamo}', "");
     Expect(1, 12687, '\p{Block=:\Ahangulcompatibilityjamo\z:}', "");;
     Expect(0, 12688, '\p{Block=:\Ahangulcompatibilityjamo\z:}', "");;
-    Expect(1, 12687, '\p{Block=		hangul_Compatibility_Jamo}', "");
-    Expect(0, 12687, '\p{^Block=		hangul_Compatibility_Jamo}', "");
-    Expect(0, 12687, '\P{Block=		hangul_Compatibility_Jamo}', "");
-    Expect(1, 12687, '\P{^Block=		hangul_Compatibility_Jamo}', "");
-    Expect(0, 12688, '\p{Block=		hangul_Compatibility_Jamo}', "");
-    Expect(1, 12688, '\p{^Block=		hangul_Compatibility_Jamo}', "");
-    Expect(1, 12688, '\P{Block=		hangul_Compatibility_Jamo}', "");
-    Expect(0, 12688, '\P{^Block=		hangul_Compatibility_Jamo}', "");
-    Error('\p{Blk=_	Compat_Jamo:=}');
-    Error('\P{Blk=_	Compat_Jamo:=}');
+    Expect(1, 12687, '\p{Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(0, 12687, '\p{^Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(0, 12687, '\P{Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(1, 12687, '\P{^Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(0, 12688, '\p{Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(1, 12688, '\p{^Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(1, 12688, '\P{Block=--HANGUL_Compatibility_JAMO}', "");
+    Expect(0, 12688, '\P{^Block=--HANGUL_Compatibility_JAMO}', "");
+    Error('\p{Blk=/a/-compat_JAMO}');
+    Error('\P{Blk=/a/-compat_JAMO}');
     Expect(1, 12687, '\p{Blk=:\ACompat_Jamo\z:}', "");;
     Expect(0, 12688, '\p{Blk=:\ACompat_Jamo\z:}', "");;
     Expect(1, 12687, '\p{Blk=compatjamo}', "");
@@ -8458,16 +8642,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12688, '\P{^Blk=compatjamo}', "");
     Expect(1, 12687, '\p{Blk=:\Acompatjamo\z:}', "");;
     Expect(0, 12688, '\p{Blk=:\Acompatjamo\z:}', "");;
-    Expect(1, 12687, '\p{Blk=_ COMPAT_JAMO}', "");
-    Expect(0, 12687, '\p{^Blk=_ COMPAT_JAMO}', "");
-    Expect(0, 12687, '\P{Blk=_ COMPAT_JAMO}', "");
-    Expect(1, 12687, '\P{^Blk=_ COMPAT_JAMO}', "");
-    Expect(0, 12688, '\p{Blk=_ COMPAT_JAMO}', "");
-    Expect(1, 12688, '\p{^Blk=_ COMPAT_JAMO}', "");
-    Expect(1, 12688, '\P{Blk=_ COMPAT_JAMO}', "");
-    Expect(0, 12688, '\P{^Blk=_ COMPAT_JAMO}', "");
-    Error('\p{Is_Block=:=Hangul_Compatibility_Jamo}');
-    Error('\P{Is_Block=:=Hangul_Compatibility_Jamo}');
+    Expect(1, 12687, '\p{Blk=	-Compat_jamo}', "");
+    Expect(0, 12687, '\p{^Blk=	-Compat_jamo}', "");
+    Expect(0, 12687, '\P{Blk=	-Compat_jamo}', "");
+    Expect(1, 12687, '\P{^Blk=	-Compat_jamo}', "");
+    Expect(0, 12688, '\p{Blk=	-Compat_jamo}', "");
+    Expect(1, 12688, '\p{^Blk=	-Compat_jamo}', "");
+    Expect(1, 12688, '\P{Blk=	-Compat_jamo}', "");
+    Expect(0, 12688, '\P{^Blk=	-Compat_jamo}', "");
+    Error('\p{Is_Block=/a/_Hangul_Compatibility_Jamo}');
+    Error('\P{Is_Block=/a/_Hangul_Compatibility_Jamo}');
     Expect(1, 12687, '\p{Is_Block=hangulcompatibilityjamo}', "");
     Expect(0, 12687, '\p{^Is_Block=hangulcompatibilityjamo}', "");
     Expect(0, 12687, '\P{Is_Block=hangulcompatibilityjamo}', "");
@@ -8476,16 +8660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12688, '\p{^Is_Block=hangulcompatibilityjamo}', "");
     Expect(1, 12688, '\P{Is_Block=hangulcompatibilityjamo}', "");
     Expect(0, 12688, '\P{^Is_Block=hangulcompatibilityjamo}', "");
-    Expect(1, 12687, '\p{Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(0, 12687, '\p{^Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(0, 12687, '\P{Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(1, 12687, '\P{^Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(0, 12688, '\p{Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(1, 12688, '\p{^Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(1, 12688, '\P{Is_Block:   -hangul_compatibility_jamo}', "");
-    Expect(0, 12688, '\P{^Is_Block:   -hangul_compatibility_jamo}', "");
-    Error('\p{Is_Blk=	:=Compat_Jamo}');
-    Error('\P{Is_Blk=	:=Compat_Jamo}');
+    Expect(1, 12687, '\p{Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(0, 12687, '\p{^Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(0, 12687, '\P{Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(1, 12687, '\P{^Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(0, 12688, '\p{Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(1, 12688, '\p{^Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(1, 12688, '\P{Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Expect(0, 12688, '\P{^Is_Block=_-Hangul_Compatibility_JAMO}', "");
+    Error('\p{Is_Blk=/a/ Compat_JAMO}');
+    Error('\P{Is_Blk=/a/ Compat_JAMO}');
     Expect(1, 12687, '\p{Is_Blk=compatjamo}', "");
     Expect(0, 12687, '\p{^Is_Blk=compatjamo}', "");
     Expect(0, 12687, '\P{Is_Blk=compatjamo}', "");
@@ -8494,16 +8678,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12688, '\p{^Is_Blk=compatjamo}', "");
     Expect(1, 12688, '\P{Is_Blk=compatjamo}', "");
     Expect(0, 12688, '\P{^Is_Blk=compatjamo}', "");
-    Expect(1, 12687, '\p{Is_Blk=__COMPAT_Jamo}', "");
-    Expect(0, 12687, '\p{^Is_Blk=__COMPAT_Jamo}', "");
-    Expect(0, 12687, '\P{Is_Blk=__COMPAT_Jamo}', "");
-    Expect(1, 12687, '\P{^Is_Blk=__COMPAT_Jamo}', "");
-    Expect(0, 12688, '\p{Is_Blk=__COMPAT_Jamo}', "");
-    Expect(1, 12688, '\p{^Is_Blk=__COMPAT_Jamo}', "");
-    Expect(1, 12688, '\P{Is_Blk=__COMPAT_Jamo}', "");
-    Expect(0, 12688, '\P{^Is_Blk=__COMPAT_Jamo}', "");
-    Error('\p{Block=_/a/CONTROL_PICTURES}');
-    Error('\P{Block=_/a/CONTROL_PICTURES}');
+    Expect(1, 12687, '\p{Is_Blk=-_Compat_JAMO}', "");
+    Expect(0, 12687, '\p{^Is_Blk=-_Compat_JAMO}', "");
+    Expect(0, 12687, '\P{Is_Blk=-_Compat_JAMO}', "");
+    Expect(1, 12687, '\P{^Is_Blk=-_Compat_JAMO}', "");
+    Expect(0, 12688, '\p{Is_Blk=-_Compat_JAMO}', "");
+    Expect(1, 12688, '\p{^Is_Blk=-_Compat_JAMO}', "");
+    Expect(1, 12688, '\P{Is_Blk=-_Compat_JAMO}', "");
+    Expect(0, 12688, '\P{^Is_Blk=-_Compat_JAMO}', "");
+    Error('\p{Block=/a/Control_Pictures}');
+    Error('\P{Block=/a/Control_Pictures}');
     Expect(1, 9279, '\p{Block=:\AControl_Pictures\z:}', "");;
     Expect(0, 9280, '\p{Block=:\AControl_Pictures\z:}', "");;
     Expect(1, 9279, '\p{Block: controlpictures}', "");
@@ -8516,16 +8700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9280, '\P{^Block: controlpictures}', "");
     Expect(1, 9279, '\p{Block=:\Acontrolpictures\z:}', "");;
     Expect(0, 9280, '\p{Block=:\Acontrolpictures\z:}', "");;
-    Expect(1, 9279, '\p{Block=_ Control_PICTURES}', "");
-    Expect(0, 9279, '\p{^Block=_ Control_PICTURES}', "");
-    Expect(0, 9279, '\P{Block=_ Control_PICTURES}', "");
-    Expect(1, 9279, '\P{^Block=_ Control_PICTURES}', "");
-    Expect(0, 9280, '\p{Block=_ Control_PICTURES}', "");
-    Expect(1, 9280, '\p{^Block=_ Control_PICTURES}', "");
-    Expect(1, 9280, '\P{Block=_ Control_PICTURES}', "");
-    Expect(0, 9280, '\P{^Block=_ Control_PICTURES}', "");
-    Error('\p{Blk= :=Control_Pictures}');
-    Error('\P{Blk= :=Control_Pictures}');
+    Expect(1, 9279, '\p{Block=-_Control_PICTURES}', "");
+    Expect(0, 9279, '\p{^Block=-_Control_PICTURES}', "");
+    Expect(0, 9279, '\P{Block=-_Control_PICTURES}', "");
+    Expect(1, 9279, '\P{^Block=-_Control_PICTURES}', "");
+    Expect(0, 9280, '\p{Block=-_Control_PICTURES}', "");
+    Expect(1, 9280, '\p{^Block=-_Control_PICTURES}', "");
+    Expect(1, 9280, '\P{Block=-_Control_PICTURES}', "");
+    Expect(0, 9280, '\P{^Block=-_Control_PICTURES}', "");
+    Error('\p{Blk=:=	 Control_PICTURES}');
+    Error('\P{Blk=:=	 Control_PICTURES}');
     Expect(1, 9279, '\p{Blk=:\AControl_Pictures\z:}', "");;
     Expect(0, 9280, '\p{Blk=:\AControl_Pictures\z:}', "");;
     Expect(1, 9279, '\p{Blk=controlpictures}', "");
@@ -8538,16 +8722,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9280, '\P{^Blk=controlpictures}', "");
     Expect(1, 9279, '\p{Blk=:\Acontrolpictures\z:}', "");;
     Expect(0, 9280, '\p{Blk=:\Acontrolpictures\z:}', "");;
-    Expect(1, 9279, '\p{Blk=  Control_Pictures}', "");
-    Expect(0, 9279, '\p{^Blk=  Control_Pictures}', "");
-    Expect(0, 9279, '\P{Blk=  Control_Pictures}', "");
-    Expect(1, 9279, '\P{^Blk=  Control_Pictures}', "");
-    Expect(0, 9280, '\p{Blk=  Control_Pictures}', "");
-    Expect(1, 9280, '\p{^Blk=  Control_Pictures}', "");
-    Expect(1, 9280, '\P{Blk=  Control_Pictures}', "");
-    Expect(0, 9280, '\P{^Blk=  Control_Pictures}', "");
-    Error('\p{Is_Block:   _-Control_pictures:=}');
-    Error('\P{Is_Block:   _-Control_pictures:=}');
+    Expect(1, 9279, '\p{Blk= 	control_PICTURES}', "");
+    Expect(0, 9279, '\p{^Blk= 	control_PICTURES}', "");
+    Expect(0, 9279, '\P{Blk= 	control_PICTURES}', "");
+    Expect(1, 9279, '\P{^Blk= 	control_PICTURES}', "");
+    Expect(0, 9280, '\p{Blk= 	control_PICTURES}', "");
+    Expect(1, 9280, '\p{^Blk= 	control_PICTURES}', "");
+    Expect(1, 9280, '\P{Blk= 	control_PICTURES}', "");
+    Expect(0, 9280, '\P{^Blk= 	control_PICTURES}', "");
+    Error('\p{Is_Block=:=	Control_Pictures}');
+    Error('\P{Is_Block=:=	Control_Pictures}');
     Expect(1, 9279, '\p{Is_Block=controlpictures}', "");
     Expect(0, 9279, '\p{^Is_Block=controlpictures}', "");
     Expect(0, 9279, '\P{Is_Block=controlpictures}', "");
@@ -8556,34 +8740,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9280, '\p{^Is_Block=controlpictures}', "");
     Expect(1, 9280, '\P{Is_Block=controlpictures}', "");
     Expect(0, 9280, '\P{^Is_Block=controlpictures}', "");
-    Expect(1, 9279, '\p{Is_Block=	_Control_Pictures}', "");
-    Expect(0, 9279, '\p{^Is_Block=	_Control_Pictures}', "");
-    Expect(0, 9279, '\P{Is_Block=	_Control_Pictures}', "");
-    Expect(1, 9279, '\P{^Is_Block=	_Control_Pictures}', "");
-    Expect(0, 9280, '\p{Is_Block=	_Control_Pictures}', "");
-    Expect(1, 9280, '\p{^Is_Block=	_Control_Pictures}', "");
-    Expect(1, 9280, '\P{Is_Block=	_Control_Pictures}', "");
-    Expect(0, 9280, '\P{^Is_Block=	_Control_Pictures}', "");
-    Error('\p{Is_Blk:   /a/ Control_PICTURES}');
-    Error('\P{Is_Blk:   /a/ Control_PICTURES}');
-    Expect(1, 9279, '\p{Is_Blk=controlpictures}', "");
-    Expect(0, 9279, '\p{^Is_Blk=controlpictures}', "");
-    Expect(0, 9279, '\P{Is_Blk=controlpictures}', "");
-    Expect(1, 9279, '\P{^Is_Blk=controlpictures}', "");
-    Expect(0, 9280, '\p{Is_Blk=controlpictures}', "");
-    Expect(1, 9280, '\p{^Is_Blk=controlpictures}', "");
-    Expect(1, 9280, '\P{Is_Blk=controlpictures}', "");
-    Expect(0, 9280, '\P{^Is_Blk=controlpictures}', "");
-    Expect(1, 9279, '\p{Is_Blk=_Control_pictures}', "");
-    Expect(0, 9279, '\p{^Is_Blk=_Control_pictures}', "");
-    Expect(0, 9279, '\P{Is_Blk=_Control_pictures}', "");
-    Expect(1, 9279, '\P{^Is_Blk=_Control_pictures}', "");
-    Expect(0, 9280, '\p{Is_Blk=_Control_pictures}', "");
-    Expect(1, 9280, '\p{^Is_Blk=_Control_pictures}', "");
-    Expect(1, 9280, '\P{Is_Blk=_Control_pictures}', "");
-    Expect(0, 9280, '\P{^Is_Blk=_Control_pictures}', "");
-    Error('\p{Block=:= -Coptic}');
-    Error('\P{Block=:= -Coptic}');
+    Expect(1, 9279, '\p{Is_Block=	_Control_pictures}', "");
+    Expect(0, 9279, '\p{^Is_Block=	_Control_pictures}', "");
+    Expect(0, 9279, '\P{Is_Block=	_Control_pictures}', "");
+    Expect(1, 9279, '\P{^Is_Block=	_Control_pictures}', "");
+    Expect(0, 9280, '\p{Is_Block=	_Control_pictures}', "");
+    Expect(1, 9280, '\p{^Is_Block=	_Control_pictures}', "");
+    Expect(1, 9280, '\P{Is_Block=	_Control_pictures}', "");
+    Expect(0, 9280, '\P{^Is_Block=	_Control_pictures}', "");
+    Error('\p{Is_Blk=:=  CONTROL_Pictures}');
+    Error('\P{Is_Blk=:=  CONTROL_Pictures}');
+    Expect(1, 9279, '\p{Is_Blk: controlpictures}', "");
+    Expect(0, 9279, '\p{^Is_Blk: controlpictures}', "");
+    Expect(0, 9279, '\P{Is_Blk: controlpictures}', "");
+    Expect(1, 9279, '\P{^Is_Blk: controlpictures}', "");
+    Expect(0, 9280, '\p{Is_Blk: controlpictures}', "");
+    Expect(1, 9280, '\p{^Is_Blk: controlpictures}', "");
+    Expect(1, 9280, '\P{Is_Blk: controlpictures}', "");
+    Expect(0, 9280, '\P{^Is_Blk: controlpictures}', "");
+    Expect(1, 9279, '\p{Is_Blk=	Control_pictures}', "");
+    Expect(0, 9279, '\p{^Is_Blk=	Control_pictures}', "");
+    Expect(0, 9279, '\P{Is_Blk=	Control_pictures}', "");
+    Expect(1, 9279, '\P{^Is_Blk=	Control_pictures}', "");
+    Expect(0, 9280, '\p{Is_Blk=	Control_pictures}', "");
+    Expect(1, 9280, '\p{^Is_Blk=	Control_pictures}', "");
+    Expect(1, 9280, '\P{Is_Blk=	Control_pictures}', "");
+    Expect(0, 9280, '\P{^Is_Blk=	Control_pictures}', "");
+    Error('\p{Block=_:=COPTIC}');
+    Error('\P{Block=_:=COPTIC}');
     Expect(1, 11519, '\p{Block=:\ACoptic\z:}', "");;
     Expect(0, 11520, '\p{Block=:\ACoptic\z:}', "");;
     Expect(1, 11519, '\p{Block=coptic}', "");
@@ -8596,16 +8780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11520, '\P{^Block=coptic}', "");
     Expect(1, 11519, '\p{Block=:\Acoptic\z:}', "");;
     Expect(0, 11520, '\p{Block=:\Acoptic\z:}', "");;
-    Expect(1, 11519, '\p{Block=-_Coptic}', "");
-    Expect(0, 11519, '\p{^Block=-_Coptic}', "");
-    Expect(0, 11519, '\P{Block=-_Coptic}', "");
-    Expect(1, 11519, '\P{^Block=-_Coptic}', "");
-    Expect(0, 11520, '\p{Block=-_Coptic}', "");
-    Expect(1, 11520, '\p{^Block=-_Coptic}', "");
-    Expect(1, 11520, '\P{Block=-_Coptic}', "");
-    Expect(0, 11520, '\P{^Block=-_Coptic}', "");
-    Error('\p{Blk=/a/Coptic}');
-    Error('\P{Blk=/a/Coptic}');
+    Expect(1, 11519, '\p{Block=	_COPTIC}', "");
+    Expect(0, 11519, '\p{^Block=	_COPTIC}', "");
+    Expect(0, 11519, '\P{Block=	_COPTIC}', "");
+    Expect(1, 11519, '\P{^Block=	_COPTIC}', "");
+    Expect(0, 11520, '\p{Block=	_COPTIC}', "");
+    Expect(1, 11520, '\p{^Block=	_COPTIC}', "");
+    Expect(1, 11520, '\P{Block=	_COPTIC}', "");
+    Expect(0, 11520, '\P{^Block=	_COPTIC}', "");
+    Error('\p{Blk=	/a/Coptic}');
+    Error('\P{Blk=	/a/Coptic}');
     Expect(1, 11519, '\p{Blk=:\ACoptic\z:}', "");;
     Expect(0, 11520, '\p{Blk=:\ACoptic\z:}', "");;
     Expect(1, 11519, '\p{Blk=coptic}', "");
@@ -8618,16 +8802,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11520, '\P{^Blk=coptic}', "");
     Expect(1, 11519, '\p{Blk=:\Acoptic\z:}', "");;
     Expect(0, 11520, '\p{Blk=:\Acoptic\z:}', "");;
-    Expect(1, 11519, '\p{Blk=  COPTIC}', "");
-    Expect(0, 11519, '\p{^Blk=  COPTIC}', "");
-    Expect(0, 11519, '\P{Blk=  COPTIC}', "");
-    Expect(1, 11519, '\P{^Blk=  COPTIC}', "");
-    Expect(0, 11520, '\p{Blk=  COPTIC}', "");
-    Expect(1, 11520, '\p{^Blk=  COPTIC}', "");
-    Expect(1, 11520, '\P{Blk=  COPTIC}', "");
-    Expect(0, 11520, '\P{^Blk=  COPTIC}', "");
-    Error('\p{Is_Block=/a/--coptic}');
-    Error('\P{Is_Block=/a/--coptic}');
+    Expect(1, 11519, '\p{Blk=_	coptic}', "");
+    Expect(0, 11519, '\p{^Blk=_	coptic}', "");
+    Expect(0, 11519, '\P{Blk=_	coptic}', "");
+    Expect(1, 11519, '\P{^Blk=_	coptic}', "");
+    Expect(0, 11520, '\p{Blk=_	coptic}', "");
+    Expect(1, 11520, '\p{^Blk=_	coptic}', "");
+    Expect(1, 11520, '\P{Blk=_	coptic}', "");
+    Expect(0, 11520, '\P{^Blk=_	coptic}', "");
+    Error('\p{Is_Block=	 Coptic/a/}');
+    Error('\P{Is_Block=	 Coptic/a/}');
     Expect(1, 11519, '\p{Is_Block=coptic}', "");
     Expect(0, 11519, '\p{^Is_Block=coptic}', "");
     Expect(0, 11519, '\P{Is_Block=coptic}', "");
@@ -8636,16 +8820,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11520, '\p{^Is_Block=coptic}', "");
     Expect(1, 11520, '\P{Is_Block=coptic}', "");
     Expect(0, 11520, '\P{^Is_Block=coptic}', "");
-    Expect(1, 11519, '\p{Is_Block=- Coptic}', "");
-    Expect(0, 11519, '\p{^Is_Block=- Coptic}', "");
-    Expect(0, 11519, '\P{Is_Block=- Coptic}', "");
-    Expect(1, 11519, '\P{^Is_Block=- Coptic}', "");
-    Expect(0, 11520, '\p{Is_Block=- Coptic}', "");
-    Expect(1, 11520, '\p{^Is_Block=- Coptic}', "");
-    Expect(1, 11520, '\P{Is_Block=- Coptic}', "");
-    Expect(0, 11520, '\P{^Is_Block=- Coptic}', "");
-    Error('\p{Is_Blk=:=_	Coptic}');
-    Error('\P{Is_Blk=:=_	Coptic}');
+    Expect(1, 11519, '\p{Is_Block=-COPTIC}', "");
+    Expect(0, 11519, '\p{^Is_Block=-COPTIC}', "");
+    Expect(0, 11519, '\P{Is_Block=-COPTIC}', "");
+    Expect(1, 11519, '\P{^Is_Block=-COPTIC}', "");
+    Expect(0, 11520, '\p{Is_Block=-COPTIC}', "");
+    Expect(1, 11520, '\p{^Is_Block=-COPTIC}', "");
+    Expect(1, 11520, '\P{Is_Block=-COPTIC}', "");
+    Expect(0, 11520, '\P{^Is_Block=-COPTIC}', "");
+    Error('\p{Is_Blk=/a/-COPTIC}');
+    Error('\P{Is_Blk=/a/-COPTIC}');
     Expect(1, 11519, '\p{Is_Blk=coptic}', "");
     Expect(0, 11519, '\p{^Is_Blk=coptic}', "");
     Expect(0, 11519, '\P{Is_Blk=coptic}', "");
@@ -8654,96 +8838,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11520, '\p{^Is_Blk=coptic}', "");
     Expect(1, 11520, '\P{Is_Blk=coptic}', "");
     Expect(0, 11520, '\P{^Is_Blk=coptic}', "");
-    Expect(1, 11519, '\p{Is_Blk=_COPTIC}', "");
-    Expect(0, 11519, '\p{^Is_Blk=_COPTIC}', "");
-    Expect(0, 11519, '\P{Is_Blk=_COPTIC}', "");
-    Expect(1, 11519, '\P{^Is_Blk=_COPTIC}', "");
-    Expect(0, 11520, '\p{Is_Blk=_COPTIC}', "");
-    Expect(1, 11520, '\p{^Is_Blk=_COPTIC}', "");
-    Expect(1, 11520, '\P{Is_Blk=_COPTIC}', "");
-    Expect(0, 11520, '\P{^Is_Blk=_COPTIC}', "");
-    Error('\p{Block=/a/	coptic_epact_NUMBERS}');
-    Error('\P{Block=/a/	coptic_epact_NUMBERS}');
+    Expect(1, 11519, '\p{Is_Blk=-_COPTIC}', "");
+    Expect(0, 11519, '\p{^Is_Blk=-_COPTIC}', "");
+    Expect(0, 11519, '\P{Is_Blk=-_COPTIC}', "");
+    Expect(1, 11519, '\P{^Is_Blk=-_COPTIC}', "");
+    Expect(0, 11520, '\p{Is_Blk=-_COPTIC}', "");
+    Expect(1, 11520, '\p{^Is_Blk=-_COPTIC}', "");
+    Expect(1, 11520, '\P{Is_Blk=-_COPTIC}', "");
+    Expect(0, 11520, '\P{^Is_Blk=-_COPTIC}', "");
+    Error('\p{Block=:=_-Coptic_EPACT_NUMBERS}');
+    Error('\P{Block=:=_-Coptic_EPACT_NUMBERS}');
     Expect(1, 66303, '\p{Block=:\ACoptic_Epact_Numbers\z:}', "");;
     Expect(0, 66304, '\p{Block=:\ACoptic_Epact_Numbers\z:}', "");;
-    Expect(1, 66303, '\p{Block=copticepactnumbers}', "");
-    Expect(0, 66303, '\p{^Block=copticepactnumbers}', "");
-    Expect(0, 66303, '\P{Block=copticepactnumbers}', "");
-    Expect(1, 66303, '\P{^Block=copticepactnumbers}', "");
-    Expect(0, 66304, '\p{Block=copticepactnumbers}', "");
-    Expect(1, 66304, '\p{^Block=copticepactnumbers}', "");
-    Expect(1, 66304, '\P{Block=copticepactnumbers}', "");
-    Expect(0, 66304, '\P{^Block=copticepactnumbers}', "");
+    Expect(1, 66303, '\p{Block:copticepactnumbers}', "");
+    Expect(0, 66303, '\p{^Block:copticepactnumbers}', "");
+    Expect(0, 66303, '\P{Block:copticepactnumbers}', "");
+    Expect(1, 66303, '\P{^Block:copticepactnumbers}', "");
+    Expect(0, 66304, '\p{Block:copticepactnumbers}', "");
+    Expect(1, 66304, '\p{^Block:copticepactnumbers}', "");
+    Expect(1, 66304, '\P{Block:copticepactnumbers}', "");
+    Expect(0, 66304, '\P{^Block:copticepactnumbers}', "");
     Expect(1, 66303, '\p{Block=:\Acopticepactnumbers\z:}', "");;
     Expect(0, 66304, '\p{Block=:\Acopticepactnumbers\z:}', "");;
-    Expect(1, 66303, '\p{Block=	coptic_Epact_NUMBERS}', "");
-    Expect(0, 66303, '\p{^Block=	coptic_Epact_NUMBERS}', "");
-    Expect(0, 66303, '\P{Block=	coptic_Epact_NUMBERS}', "");
-    Expect(1, 66303, '\P{^Block=	coptic_Epact_NUMBERS}', "");
-    Expect(0, 66304, '\p{Block=	coptic_Epact_NUMBERS}', "");
-    Expect(1, 66304, '\p{^Block=	coptic_Epact_NUMBERS}', "");
-    Expect(1, 66304, '\P{Block=	coptic_Epact_NUMBERS}', "");
-    Expect(0, 66304, '\P{^Block=	coptic_Epact_NUMBERS}', "");
-    Error('\p{Blk=/a/ COPTIC_epact_numbers}');
-    Error('\P{Blk=/a/ COPTIC_epact_numbers}');
+    Expect(1, 66303, '\p{Block=	 coptic_EPACT_numbers}', "");
+    Expect(0, 66303, '\p{^Block=	 coptic_EPACT_numbers}', "");
+    Expect(0, 66303, '\P{Block=	 coptic_EPACT_numbers}', "");
+    Expect(1, 66303, '\P{^Block=	 coptic_EPACT_numbers}', "");
+    Expect(0, 66304, '\p{Block=	 coptic_EPACT_numbers}', "");
+    Expect(1, 66304, '\p{^Block=	 coptic_EPACT_numbers}', "");
+    Expect(1, 66304, '\P{Block=	 coptic_EPACT_numbers}', "");
+    Expect(0, 66304, '\P{^Block=	 coptic_EPACT_numbers}', "");
+    Error('\p{Blk= /a/Coptic_EPACT_NUMBERS}');
+    Error('\P{Blk= /a/Coptic_EPACT_NUMBERS}');
     Expect(1, 66303, '\p{Blk=:\ACoptic_Epact_Numbers\z:}', "");;
     Expect(0, 66304, '\p{Blk=:\ACoptic_Epact_Numbers\z:}', "");;
-    Expect(1, 66303, '\p{Blk=copticepactnumbers}', "");
-    Expect(0, 66303, '\p{^Blk=copticepactnumbers}', "");
-    Expect(0, 66303, '\P{Blk=copticepactnumbers}', "");
-    Expect(1, 66303, '\P{^Blk=copticepactnumbers}', "");
-    Expect(0, 66304, '\p{Blk=copticepactnumbers}', "");
-    Expect(1, 66304, '\p{^Blk=copticepactnumbers}', "");
-    Expect(1, 66304, '\P{Blk=copticepactnumbers}', "");
-    Expect(0, 66304, '\P{^Blk=copticepactnumbers}', "");
+    Expect(1, 66303, '\p{Blk: copticepactnumbers}', "");
+    Expect(0, 66303, '\p{^Blk: copticepactnumbers}', "");
+    Expect(0, 66303, '\P{Blk: copticepactnumbers}', "");
+    Expect(1, 66303, '\P{^Blk: copticepactnumbers}', "");
+    Expect(0, 66304, '\p{Blk: copticepactnumbers}', "");
+    Expect(1, 66304, '\p{^Blk: copticepactnumbers}', "");
+    Expect(1, 66304, '\P{Blk: copticepactnumbers}', "");
+    Expect(0, 66304, '\P{^Blk: copticepactnumbers}', "");
     Expect(1, 66303, '\p{Blk=:\Acopticepactnumbers\z:}', "");;
     Expect(0, 66304, '\p{Blk=:\Acopticepactnumbers\z:}', "");;
-    Expect(1, 66303, '\p{Blk=-Coptic_epact_Numbers}', "");
-    Expect(0, 66303, '\p{^Blk=-Coptic_epact_Numbers}', "");
-    Expect(0, 66303, '\P{Blk=-Coptic_epact_Numbers}', "");
-    Expect(1, 66303, '\P{^Blk=-Coptic_epact_Numbers}', "");
-    Expect(0, 66304, '\p{Blk=-Coptic_epact_Numbers}', "");
-    Expect(1, 66304, '\p{^Blk=-Coptic_epact_Numbers}', "");
-    Expect(1, 66304, '\P{Blk=-Coptic_epact_Numbers}', "");
-    Expect(0, 66304, '\P{^Blk=-Coptic_epact_Numbers}', "");
-    Error('\p{Is_Block=:=	 coptic_Epact_Numbers}');
-    Error('\P{Is_Block=:=	 coptic_Epact_Numbers}');
-    Expect(1, 66303, '\p{Is_Block=copticepactnumbers}', "");
-    Expect(0, 66303, '\p{^Is_Block=copticepactnumbers}', "");
-    Expect(0, 66303, '\P{Is_Block=copticepactnumbers}', "");
-    Expect(1, 66303, '\P{^Is_Block=copticepactnumbers}', "");
-    Expect(0, 66304, '\p{Is_Block=copticepactnumbers}', "");
-    Expect(1, 66304, '\p{^Is_Block=copticepactnumbers}', "");
-    Expect(1, 66304, '\P{Is_Block=copticepactnumbers}', "");
-    Expect(0, 66304, '\P{^Is_Block=copticepactnumbers}', "");
-    Expect(1, 66303, '\p{Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(0, 66303, '\p{^Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(0, 66303, '\P{Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(1, 66303, '\P{^Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(0, 66304, '\p{Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(1, 66304, '\p{^Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(1, 66304, '\P{Is_Block: _ coptic_Epact_Numbers}', "");
-    Expect(0, 66304, '\P{^Is_Block: _ coptic_Epact_Numbers}', "");
-    Error('\p{Is_Blk=:=-coptic_Epact_NUMBERS}');
-    Error('\P{Is_Blk=:=-coptic_Epact_NUMBERS}');
-    Expect(1, 66303, '\p{Is_Blk=copticepactnumbers}', "");
-    Expect(0, 66303, '\p{^Is_Blk=copticepactnumbers}', "");
-    Expect(0, 66303, '\P{Is_Blk=copticepactnumbers}', "");
-    Expect(1, 66303, '\P{^Is_Blk=copticepactnumbers}', "");
-    Expect(0, 66304, '\p{Is_Blk=copticepactnumbers}', "");
-    Expect(1, 66304, '\p{^Is_Blk=copticepactnumbers}', "");
-    Expect(1, 66304, '\P{Is_Blk=copticepactnumbers}', "");
-    Expect(0, 66304, '\P{^Is_Blk=copticepactnumbers}', "");
-    Expect(1, 66303, '\p{Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(0, 66303, '\p{^Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(0, 66303, '\P{Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(1, 66303, '\P{^Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(0, 66304, '\p{Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(1, 66304, '\p{^Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(1, 66304, '\P{Is_Blk=	Coptic_Epact_Numbers}', "");
-    Expect(0, 66304, '\P{^Is_Blk=	Coptic_Epact_Numbers}', "");
-    Error('\p{Block=:=- COUNTING_Rod_NUMERALS}');
-    Error('\P{Block=:=- COUNTING_Rod_NUMERALS}');
+    Expect(1, 66303, '\p{Blk:   -coptic_Epact_numbers}', "");
+    Expect(0, 66303, '\p{^Blk:   -coptic_Epact_numbers}', "");
+    Expect(0, 66303, '\P{Blk:   -coptic_Epact_numbers}', "");
+    Expect(1, 66303, '\P{^Blk:   -coptic_Epact_numbers}', "");
+    Expect(0, 66304, '\p{Blk:   -coptic_Epact_numbers}', "");
+    Expect(1, 66304, '\p{^Blk:   -coptic_Epact_numbers}', "");
+    Expect(1, 66304, '\P{Blk:   -coptic_Epact_numbers}', "");
+    Expect(0, 66304, '\P{^Blk:   -coptic_Epact_numbers}', "");
+    Error('\p{Is_Block=-/a/Coptic_Epact_NUMBERS}');
+    Error('\P{Is_Block=-/a/Coptic_Epact_NUMBERS}');
+    Expect(1, 66303, '\p{Is_Block:	copticepactnumbers}', "");
+    Expect(0, 66303, '\p{^Is_Block:	copticepactnumbers}', "");
+    Expect(0, 66303, '\P{Is_Block:	copticepactnumbers}', "");
+    Expect(1, 66303, '\P{^Is_Block:	copticepactnumbers}', "");
+    Expect(0, 66304, '\p{Is_Block:	copticepactnumbers}', "");
+    Expect(1, 66304, '\p{^Is_Block:	copticepactnumbers}', "");
+    Expect(1, 66304, '\P{Is_Block:	copticepactnumbers}', "");
+    Expect(0, 66304, '\P{^Is_Block:	copticepactnumbers}', "");
+    Expect(1, 66303, '\p{Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(0, 66303, '\p{^Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(0, 66303, '\P{Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(1, 66303, '\P{^Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(0, 66304, '\p{Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(1, 66304, '\p{^Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(1, 66304, '\P{Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Expect(0, 66304, '\P{^Is_Block=-_COPTIC_Epact_Numbers}', "");
+    Error('\p{Is_Blk= _Coptic_epact_Numbers/a/}');
+    Error('\P{Is_Blk= _Coptic_epact_Numbers/a/}');
+    Expect(1, 66303, '\p{Is_Blk:copticepactnumbers}', "");
+    Expect(0, 66303, '\p{^Is_Blk:copticepactnumbers}', "");
+    Expect(0, 66303, '\P{Is_Blk:copticepactnumbers}', "");
+    Expect(1, 66303, '\P{^Is_Blk:copticepactnumbers}', "");
+    Expect(0, 66304, '\p{Is_Blk:copticepactnumbers}', "");
+    Expect(1, 66304, '\p{^Is_Blk:copticepactnumbers}', "");
+    Expect(1, 66304, '\P{Is_Blk:copticepactnumbers}', "");
+    Expect(0, 66304, '\P{^Is_Blk:copticepactnumbers}', "");
+    Expect(1, 66303, '\p{Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(0, 66303, '\p{^Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(0, 66303, '\P{Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(1, 66303, '\P{^Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(0, 66304, '\p{Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(1, 66304, '\p{^Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(1, 66304, '\P{Is_Blk=	coptic_Epact_Numbers}', "");
+    Expect(0, 66304, '\P{^Is_Blk=	coptic_Epact_Numbers}', "");
+    Error('\p{Block=  counting_rod_Numerals/a/}');
+    Error('\P{Block=  counting_rod_Numerals/a/}');
     Expect(1, 119679, '\p{Block=:\ACounting_Rod_Numerals\z:}', "");;
     Expect(0, 119680, '\p{Block=:\ACounting_Rod_Numerals\z:}', "");;
     Expect(1, 119679, '\p{Block=countingrodnumerals}', "");
@@ -8756,16 +8940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119680, '\P{^Block=countingrodnumerals}', "");
     Expect(1, 119679, '\p{Block=:\Acountingrodnumerals\z:}', "");;
     Expect(0, 119680, '\p{Block=:\Acountingrodnumerals\z:}', "");;
-    Expect(1, 119679, '\p{Block=	-counting_ROD_NUMERALS}', "");
-    Expect(0, 119679, '\p{^Block=	-counting_ROD_NUMERALS}', "");
-    Expect(0, 119679, '\P{Block=	-counting_ROD_NUMERALS}', "");
-    Expect(1, 119679, '\P{^Block=	-counting_ROD_NUMERALS}', "");
-    Expect(0, 119680, '\p{Block=	-counting_ROD_NUMERALS}', "");
-    Expect(1, 119680, '\p{^Block=	-counting_ROD_NUMERALS}', "");
-    Expect(1, 119680, '\P{Block=	-counting_ROD_NUMERALS}', "");
-    Expect(0, 119680, '\P{^Block=	-counting_ROD_NUMERALS}', "");
-    Error('\p{Blk: -:=counting_rod}');
-    Error('\P{Blk: -:=counting_rod}');
+    Expect(1, 119679, '\p{Block=	-counting_Rod_numerals}', "");
+    Expect(0, 119679, '\p{^Block=	-counting_Rod_numerals}', "");
+    Expect(0, 119679, '\P{Block=	-counting_Rod_numerals}', "");
+    Expect(1, 119679, '\P{^Block=	-counting_Rod_numerals}', "");
+    Expect(0, 119680, '\p{Block=	-counting_Rod_numerals}', "");
+    Expect(1, 119680, '\p{^Block=	-counting_Rod_numerals}', "");
+    Expect(1, 119680, '\P{Block=	-counting_Rod_numerals}', "");
+    Expect(0, 119680, '\P{^Block=	-counting_Rod_numerals}', "");
+    Error('\p{Blk=/a/_ COUNTING_Rod}');
+    Error('\P{Blk=/a/_ COUNTING_Rod}');
     Expect(1, 119679, '\p{Blk=:\ACounting_Rod\z:}', "");;
     Expect(0, 119680, '\p{Blk=:\ACounting_Rod\z:}', "");;
     Expect(1, 119679, '\p{Blk=countingrod}', "");
@@ -8778,16 +8962,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119680, '\P{^Blk=countingrod}', "");
     Expect(1, 119679, '\p{Blk=:\Acountingrod\z:}', "");;
     Expect(0, 119680, '\p{Blk=:\Acountingrod\z:}', "");;
-    Expect(1, 119679, '\p{Blk=__Counting_ROD}', "");
-    Expect(0, 119679, '\p{^Blk=__Counting_ROD}', "");
-    Expect(0, 119679, '\P{Blk=__Counting_ROD}', "");
-    Expect(1, 119679, '\P{^Blk=__Counting_ROD}', "");
-    Expect(0, 119680, '\p{Blk=__Counting_ROD}', "");
-    Expect(1, 119680, '\p{^Blk=__Counting_ROD}', "");
-    Expect(1, 119680, '\P{Blk=__Counting_ROD}', "");
-    Expect(0, 119680, '\P{^Blk=__Counting_ROD}', "");
-    Error('\p{Is_Block=	/a/Counting_Rod_numerals}');
-    Error('\P{Is_Block=	/a/Counting_Rod_numerals}');
+    Expect(1, 119679, '\p{Blk=  Counting_Rod}', "");
+    Expect(0, 119679, '\p{^Blk=  Counting_Rod}', "");
+    Expect(0, 119679, '\P{Blk=  Counting_Rod}', "");
+    Expect(1, 119679, '\P{^Blk=  Counting_Rod}', "");
+    Expect(0, 119680, '\p{Blk=  Counting_Rod}', "");
+    Expect(1, 119680, '\p{^Blk=  Counting_Rod}', "");
+    Expect(1, 119680, '\P{Blk=  Counting_Rod}', "");
+    Expect(0, 119680, '\P{^Blk=  Counting_Rod}', "");
+    Error('\p{Is_Block=/a/ _counting_ROD_Numerals}');
+    Error('\P{Is_Block=/a/ _counting_ROD_Numerals}');
     Expect(1, 119679, '\p{Is_Block=countingrodnumerals}', "");
     Expect(0, 119679, '\p{^Is_Block=countingrodnumerals}', "");
     Expect(0, 119679, '\P{Is_Block=countingrodnumerals}', "");
@@ -8796,16 +8980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119680, '\p{^Is_Block=countingrodnumerals}', "");
     Expect(1, 119680, '\P{Is_Block=countingrodnumerals}', "");
     Expect(0, 119680, '\P{^Is_Block=countingrodnumerals}', "");
-    Expect(1, 119679, '\p{Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(0, 119679, '\p{^Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(0, 119679, '\P{Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(1, 119679, '\P{^Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(0, 119680, '\p{Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(1, 119680, '\p{^Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(1, 119680, '\P{Is_Block=		Counting_ROD_NUMERALS}', "");
-    Expect(0, 119680, '\P{^Is_Block=		Counting_ROD_NUMERALS}', "");
-    Error('\p{Is_Blk= counting_Rod/a/}');
-    Error('\P{Is_Blk= counting_Rod/a/}');
+    Expect(1, 119679, '\p{Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(0, 119679, '\p{^Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(0, 119679, '\P{Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(1, 119679, '\P{^Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(0, 119680, '\p{Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(1, 119680, '\p{^Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(1, 119680, '\P{Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Expect(0, 119680, '\P{^Is_Block=	COUNTING_ROD_NUMERALS}', "");
+    Error('\p{Is_Blk=/a/_Counting_Rod}');
+    Error('\P{Is_Blk=/a/_Counting_Rod}');
     Expect(1, 119679, '\p{Is_Blk=countingrod}', "");
     Expect(0, 119679, '\p{^Is_Blk=countingrod}', "");
     Expect(0, 119679, '\P{Is_Blk=countingrod}', "");
@@ -8814,16 +8998,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119680, '\p{^Is_Blk=countingrod}', "");
     Expect(1, 119680, '\P{Is_Blk=countingrod}', "");
     Expect(0, 119680, '\P{^Is_Blk=countingrod}', "");
-    Expect(1, 119679, '\p{Is_Blk=_counting_Rod}', "");
-    Expect(0, 119679, '\p{^Is_Blk=_counting_Rod}', "");
-    Expect(0, 119679, '\P{Is_Blk=_counting_Rod}', "");
-    Expect(1, 119679, '\P{^Is_Blk=_counting_Rod}', "");
-    Expect(0, 119680, '\p{Is_Blk=_counting_Rod}', "");
-    Expect(1, 119680, '\p{^Is_Blk=_counting_Rod}', "");
-    Expect(1, 119680, '\P{Is_Blk=_counting_Rod}', "");
-    Expect(0, 119680, '\P{^Is_Blk=_counting_Rod}', "");
-    Error('\p{Block= :=Cuneiform}');
-    Error('\P{Block= :=Cuneiform}');
+    Expect(1, 119679, '\p{Is_Blk=-	counting_Rod}', "");
+    Expect(0, 119679, '\p{^Is_Blk=-	counting_Rod}', "");
+    Expect(0, 119679, '\P{Is_Blk=-	counting_Rod}', "");
+    Expect(1, 119679, '\P{^Is_Blk=-	counting_Rod}', "");
+    Expect(0, 119680, '\p{Is_Blk=-	counting_Rod}', "");
+    Expect(1, 119680, '\p{^Is_Blk=-	counting_Rod}', "");
+    Expect(1, 119680, '\P{Is_Blk=-	counting_Rod}', "");
+    Expect(0, 119680, '\P{^Is_Blk=-	counting_Rod}', "");
+    Error('\p{Block=/a/_	CUNEIFORM}');
+    Error('\P{Block=/a/_	CUNEIFORM}');
     Expect(1, 74751, '\p{Block=:\ACuneiform\z:}', "");;
     Expect(0, 74752, '\p{Block=:\ACuneiform\z:}', "");;
     Expect(1, 74751, '\p{Block=cuneiform}', "");
@@ -8836,16 +9020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 74752, '\P{^Block=cuneiform}', "");
     Expect(1, 74751, '\p{Block=:\Acuneiform\z:}', "");;
     Expect(0, 74752, '\p{Block=:\Acuneiform\z:}', "");;
-    Expect(1, 74751, '\p{Block=		Cuneiform}', "");
-    Expect(0, 74751, '\p{^Block=		Cuneiform}', "");
-    Expect(0, 74751, '\P{Block=		Cuneiform}', "");
-    Expect(1, 74751, '\P{^Block=		Cuneiform}', "");
-    Expect(0, 74752, '\p{Block=		Cuneiform}', "");
-    Expect(1, 74752, '\p{^Block=		Cuneiform}', "");
-    Expect(1, 74752, '\P{Block=		Cuneiform}', "");
-    Expect(0, 74752, '\P{^Block=		Cuneiform}', "");
-    Error('\p{Blk=-:=Cuneiform}');
-    Error('\P{Blk=-:=Cuneiform}');
+    Expect(1, 74751, '\p{Block=_	Cuneiform}', "");
+    Expect(0, 74751, '\p{^Block=_	Cuneiform}', "");
+    Expect(0, 74751, '\P{Block=_	Cuneiform}', "");
+    Expect(1, 74751, '\P{^Block=_	Cuneiform}', "");
+    Expect(0, 74752, '\p{Block=_	Cuneiform}', "");
+    Expect(1, 74752, '\p{^Block=_	Cuneiform}', "");
+    Expect(1, 74752, '\P{Block=_	Cuneiform}', "");
+    Expect(0, 74752, '\P{^Block=_	Cuneiform}', "");
+    Error('\p{Blk=:=	Cuneiform}');
+    Error('\P{Blk=:=	Cuneiform}');
     Expect(1, 74751, '\p{Blk=:\ACuneiform\z:}', "");;
     Expect(0, 74752, '\p{Blk=:\ACuneiform\z:}', "");;
     Expect(1, 74751, '\p{Blk=cuneiform}', "");
@@ -8858,34 +9042,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 74752, '\P{^Blk=cuneiform}', "");
     Expect(1, 74751, '\p{Blk=:\Acuneiform\z:}', "");;
     Expect(0, 74752, '\p{Blk=:\Acuneiform\z:}', "");;
-    Expect(1, 74751, '\p{Blk=-Cuneiform}', "");
-    Expect(0, 74751, '\p{^Blk=-Cuneiform}', "");
-    Expect(0, 74751, '\P{Blk=-Cuneiform}', "");
-    Expect(1, 74751, '\P{^Blk=-Cuneiform}', "");
-    Expect(0, 74752, '\p{Blk=-Cuneiform}', "");
-    Expect(1, 74752, '\p{^Blk=-Cuneiform}', "");
-    Expect(1, 74752, '\P{Blk=-Cuneiform}', "");
-    Expect(0, 74752, '\P{^Blk=-Cuneiform}', "");
-    Error('\p{Is_Block= _cuneiform/a/}');
-    Error('\P{Is_Block= _cuneiform/a/}');
-    Expect(1, 74751, '\p{Is_Block=cuneiform}', "");
-    Expect(0, 74751, '\p{^Is_Block=cuneiform}', "");
-    Expect(0, 74751, '\P{Is_Block=cuneiform}', "");
-    Expect(1, 74751, '\P{^Is_Block=cuneiform}', "");
-    Expect(0, 74752, '\p{Is_Block=cuneiform}', "");
-    Expect(1, 74752, '\p{^Is_Block=cuneiform}', "");
-    Expect(1, 74752, '\P{Is_Block=cuneiform}', "");
-    Expect(0, 74752, '\P{^Is_Block=cuneiform}', "");
-    Expect(1, 74751, '\p{Is_Block= -Cuneiform}', "");
-    Expect(0, 74751, '\p{^Is_Block= -Cuneiform}', "");
-    Expect(0, 74751, '\P{Is_Block= -Cuneiform}', "");
-    Expect(1, 74751, '\P{^Is_Block= -Cuneiform}', "");
-    Expect(0, 74752, '\p{Is_Block= -Cuneiform}', "");
-    Expect(1, 74752, '\p{^Is_Block= -Cuneiform}', "");
-    Expect(1, 74752, '\P{Is_Block= -Cuneiform}', "");
-    Expect(0, 74752, '\P{^Is_Block= -Cuneiform}', "");
-    Error('\p{Is_Blk=/a/-cuneiform}');
-    Error('\P{Is_Blk=/a/-cuneiform}');
+    Expect(1, 74751, '\p{Blk:		cuneiform}', "");
+    Expect(0, 74751, '\p{^Blk:		cuneiform}', "");
+    Expect(0, 74751, '\P{Blk:		cuneiform}', "");
+    Expect(1, 74751, '\P{^Blk:		cuneiform}', "");
+    Expect(0, 74752, '\p{Blk:		cuneiform}', "");
+    Expect(1, 74752, '\p{^Blk:		cuneiform}', "");
+    Expect(1, 74752, '\P{Blk:		cuneiform}', "");
+    Expect(0, 74752, '\P{^Blk:		cuneiform}', "");
+    Error('\p{Is_Block=/a/  cuneiform}');
+    Error('\P{Is_Block=/a/  cuneiform}');
+    Expect(1, 74751, '\p{Is_Block:   cuneiform}', "");
+    Expect(0, 74751, '\p{^Is_Block:   cuneiform}', "");
+    Expect(0, 74751, '\P{Is_Block:   cuneiform}', "");
+    Expect(1, 74751, '\P{^Is_Block:   cuneiform}', "");
+    Expect(0, 74752, '\p{Is_Block:   cuneiform}', "");
+    Expect(1, 74752, '\p{^Is_Block:   cuneiform}', "");
+    Expect(1, 74752, '\P{Is_Block:   cuneiform}', "");
+    Expect(0, 74752, '\P{^Is_Block:   cuneiform}', "");
+    Expect(1, 74751, '\p{Is_Block=__CUNEIFORM}', "");
+    Expect(0, 74751, '\p{^Is_Block=__CUNEIFORM}', "");
+    Expect(0, 74751, '\P{Is_Block=__CUNEIFORM}', "");
+    Expect(1, 74751, '\P{^Is_Block=__CUNEIFORM}', "");
+    Expect(0, 74752, '\p{Is_Block=__CUNEIFORM}', "");
+    Expect(1, 74752, '\p{^Is_Block=__CUNEIFORM}', "");
+    Expect(1, 74752, '\P{Is_Block=__CUNEIFORM}', "");
+    Expect(0, 74752, '\P{^Is_Block=__CUNEIFORM}', "");
+    Error('\p{Is_Blk:   	:=cuneiform}');
+    Error('\P{Is_Blk:   	:=cuneiform}');
     Expect(1, 74751, '\p{Is_Blk=cuneiform}', "");
     Expect(0, 74751, '\p{^Is_Blk=cuneiform}', "");
     Expect(0, 74751, '\P{Is_Blk=cuneiform}', "");
@@ -8894,16 +9078,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 74752, '\p{^Is_Blk=cuneiform}', "");
     Expect(1, 74752, '\P{Is_Blk=cuneiform}', "");
     Expect(0, 74752, '\P{^Is_Blk=cuneiform}', "");
-    Expect(1, 74751, '\p{Is_Blk=_-cuneiform}', "");
-    Expect(0, 74751, '\p{^Is_Blk=_-cuneiform}', "");
-    Expect(0, 74751, '\P{Is_Blk=_-cuneiform}', "");
-    Expect(1, 74751, '\P{^Is_Blk=_-cuneiform}', "");
-    Expect(0, 74752, '\p{Is_Blk=_-cuneiform}', "");
-    Expect(1, 74752, '\p{^Is_Blk=_-cuneiform}', "");
-    Expect(1, 74752, '\P{Is_Blk=_-cuneiform}', "");
-    Expect(0, 74752, '\P{^Is_Blk=_-cuneiform}', "");
-    Error('\p{Block= _cuneiform_NUMBERS_and_Punctuation/a/}');
-    Error('\P{Block= _cuneiform_NUMBERS_and_Punctuation/a/}');
+    Expect(1, 74751, '\p{Is_Blk=  cuneiform}', "");
+    Expect(0, 74751, '\p{^Is_Blk=  cuneiform}', "");
+    Expect(0, 74751, '\P{Is_Blk=  cuneiform}', "");
+    Expect(1, 74751, '\P{^Is_Blk=  cuneiform}', "");
+    Expect(0, 74752, '\p{Is_Blk=  cuneiform}', "");
+    Expect(1, 74752, '\p{^Is_Blk=  cuneiform}', "");
+    Expect(1, 74752, '\P{Is_Blk=  cuneiform}', "");
+    Expect(0, 74752, '\P{^Is_Blk=  cuneiform}', "");
+    Error('\p{Block=:=_cuneiform_numbers_And_Punctuation}');
+    Error('\P{Block=:=_cuneiform_numbers_And_Punctuation}');
     Expect(1, 74879, '\p{Block=:\ACuneiform_Numbers_And_Punctuation\z:}', "");;
     Expect(0, 74880, '\p{Block=:\ACuneiform_Numbers_And_Punctuation\z:}', "");;
     Expect(1, 74879, '\p{Block=cuneiformnumbersandpunctuation}', "");
@@ -8916,16 +9100,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 74880, '\P{^Block=cuneiformnumbersandpunctuation}', "");
     Expect(1, 74879, '\p{Block=:\Acuneiformnumbersandpunctuation\z:}', "");;
     Expect(0, 74880, '\p{Block=:\Acuneiformnumbersandpunctuation\z:}', "");;
-    Expect(1, 74879, '\p{Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74879, '\p{^Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74879, '\P{Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(1, 74879, '\P{^Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74880, '\p{Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(1, 74880, '\p{^Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(1, 74880, '\P{Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74880, '\P{^Block=	-CUNEIFORM_NUMBERS_And_Punctuation}', "");
-    Error('\p{Blk:   __Cuneiform_NUMBERS/a/}');
-    Error('\P{Blk:   __Cuneiform_NUMBERS/a/}');
+    Expect(1, 74879, '\p{Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(0, 74879, '\p{^Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(0, 74879, '\P{Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(1, 74879, '\P{^Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(0, 74880, '\p{Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(1, 74880, '\p{^Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(1, 74880, '\P{Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Expect(0, 74880, '\P{^Block= 	Cuneiform_numbers_AND_punctuation}', "");
+    Error('\p{Blk=/a/ 	cuneiform_Numbers}');
+    Error('\P{Blk=/a/ 	cuneiform_Numbers}');
     Expect(1, 74879, '\p{Blk=:\ACuneiform_Numbers\z:}', "");;
     Expect(0, 74880, '\p{Blk=:\ACuneiform_Numbers\z:}', "");;
     Expect(1, 74879, '\p{Blk=cuneiformnumbers}', "");
@@ -8938,16 +9122,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 74880, '\P{^Blk=cuneiformnumbers}', "");
     Expect(1, 74879, '\p{Blk=:\Acuneiformnumbers\z:}', "");;
     Expect(0, 74880, '\p{Blk=:\Acuneiformnumbers\z:}', "");;
-    Expect(1, 74879, '\p{Blk= CUNEIFORM_Numbers}', "");
-    Expect(0, 74879, '\p{^Blk= CUNEIFORM_Numbers}', "");
-    Expect(0, 74879, '\P{Blk= CUNEIFORM_Numbers}', "");
-    Expect(1, 74879, '\P{^Blk= CUNEIFORM_Numbers}', "");
-    Expect(0, 74880, '\p{Blk= CUNEIFORM_Numbers}', "");
-    Expect(1, 74880, '\p{^Blk= CUNEIFORM_Numbers}', "");
-    Expect(1, 74880, '\P{Blk= CUNEIFORM_Numbers}', "");
-    Expect(0, 74880, '\P{^Blk= CUNEIFORM_Numbers}', "");
-    Error('\p{Is_Block=:=-_CUNEIFORM_numbers_And_Punctuation}');
-    Error('\P{Is_Block=:=-_CUNEIFORM_numbers_And_Punctuation}');
+    Expect(1, 74879, '\p{Blk=_cuneiform_numbers}', "");
+    Expect(0, 74879, '\p{^Blk=_cuneiform_numbers}', "");
+    Expect(0, 74879, '\P{Blk=_cuneiform_numbers}', "");
+    Expect(1, 74879, '\P{^Blk=_cuneiform_numbers}', "");
+    Expect(0, 74880, '\p{Blk=_cuneiform_numbers}', "");
+    Expect(1, 74880, '\p{^Blk=_cuneiform_numbers}', "");
+    Expect(1, 74880, '\P{Blk=_cuneiform_numbers}', "");
+    Expect(0, 74880, '\P{^Blk=_cuneiform_numbers}', "");
+    Error('\p{Is_Block=	:=Cuneiform_Numbers_AND_Punctuation}');
+    Error('\P{Is_Block=	:=Cuneiform_Numbers_AND_Punctuation}');
     Expect(1, 74879, '\p{Is_Block=cuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\p{^Is_Block=cuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\P{Is_Block=cuneiformnumbersandpunctuation}', "");
@@ -8956,16 +9140,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 74880, '\p{^Is_Block=cuneiformnumbersandpunctuation}', "");
     Expect(1, 74880, '\P{Is_Block=cuneiformnumbersandpunctuation}', "");
     Expect(0, 74880, '\P{^Is_Block=cuneiformnumbersandpunctuation}', "");
-    Expect(1, 74879, '\p{Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(0, 74879, '\p{^Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(0, 74879, '\P{Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(1, 74879, '\P{^Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(0, 74880, '\p{Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(1, 74880, '\p{^Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(1, 74880, '\P{Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Expect(0, 74880, '\P{^Is_Block=_CUNEIFORM_Numbers_And_Punctuation}', "");
-    Error('\p{Is_Blk=:=-CUNEIFORM_numbers}');
-    Error('\P{Is_Blk=:=-CUNEIFORM_numbers}');
+    Expect(1, 74879, '\p{Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(0, 74879, '\p{^Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(0, 74879, '\P{Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(1, 74879, '\P{^Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(0, 74880, '\p{Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(1, 74880, '\p{^Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(1, 74880, '\P{Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Expect(0, 74880, '\P{^Is_Block=_ Cuneiform_NUMBERS_And_Punctuation}', "");
+    Error('\p{Is_Blk= CUNEIFORM_NUMBERS:=}');
+    Error('\P{Is_Blk= CUNEIFORM_NUMBERS:=}');
     Expect(1, 74879, '\p{Is_Blk=cuneiformnumbers}', "");
     Expect(0, 74879, '\p{^Is_Blk=cuneiformnumbers}', "");
     Expect(0, 74879, '\P{Is_Blk=cuneiformnumbers}', "");
@@ -8974,16 +9158,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 74880, '\p{^Is_Blk=cuneiformnumbers}', "");
     Expect(1, 74880, '\P{Is_Blk=cuneiformnumbers}', "");
     Expect(0, 74880, '\P{^Is_Blk=cuneiformnumbers}', "");
-    Expect(1, 74879, '\p{Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(0, 74879, '\p{^Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(0, 74879, '\P{Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(1, 74879, '\P{^Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(0, 74880, '\p{Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(1, 74880, '\p{^Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(1, 74880, '\P{Is_Blk=	Cuneiform_NUMBERS}', "");
-    Expect(0, 74880, '\P{^Is_Blk=	Cuneiform_NUMBERS}', "");
-    Error('\p{Block=-/a/CURRENCY_Symbols}');
-    Error('\P{Block=-/a/CURRENCY_Symbols}');
+    Expect(1, 74879, '\p{Is_Blk=		cuneiform_numbers}', "");
+    Expect(0, 74879, '\p{^Is_Blk=		cuneiform_numbers}', "");
+    Expect(0, 74879, '\P{Is_Blk=		cuneiform_numbers}', "");
+    Expect(1, 74879, '\P{^Is_Blk=		cuneiform_numbers}', "");
+    Expect(0, 74880, '\p{Is_Blk=		cuneiform_numbers}', "");
+    Expect(1, 74880, '\p{^Is_Blk=		cuneiform_numbers}', "");
+    Expect(1, 74880, '\P{Is_Blk=		cuneiform_numbers}', "");
+    Expect(0, 74880, '\P{^Is_Blk=		cuneiform_numbers}', "");
+    Error('\p{Block=		Currency_Symbols/a/}');
+    Error('\P{Block=		Currency_Symbols/a/}');
     Expect(1, 8399, '\p{Block=:\ACurrency_Symbols\z:}', "");;
     Expect(0, 8400, '\p{Block=:\ACurrency_Symbols\z:}', "");;
     Expect(1, 8399, '\p{Block=currencysymbols}', "");
@@ -8996,16 +9180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8400, '\P{^Block=currencysymbols}', "");
     Expect(1, 8399, '\p{Block=:\Acurrencysymbols\z:}', "");;
     Expect(0, 8400, '\p{Block=:\Acurrencysymbols\z:}', "");;
-    Expect(1, 8399, '\p{Block=	-Currency_symbols}', "");
-    Expect(0, 8399, '\p{^Block=	-Currency_symbols}', "");
-    Expect(0, 8399, '\P{Block=	-Currency_symbols}', "");
-    Expect(1, 8399, '\P{^Block=	-Currency_symbols}', "");
-    Expect(0, 8400, '\p{Block=	-Currency_symbols}', "");
-    Expect(1, 8400, '\p{^Block=	-Currency_symbols}', "");
-    Expect(1, 8400, '\P{Block=	-Currency_symbols}', "");
-    Expect(0, 8400, '\P{^Block=	-Currency_symbols}', "");
-    Error('\p{Blk=__CURRENCY_SYMBOLS/a/}');
-    Error('\P{Blk=__CURRENCY_SYMBOLS/a/}');
+    Expect(1, 8399, '\p{Block=Currency_Symbols}', "");
+    Expect(0, 8399, '\p{^Block=Currency_Symbols}', "");
+    Expect(0, 8399, '\P{Block=Currency_Symbols}', "");
+    Expect(1, 8399, '\P{^Block=Currency_Symbols}', "");
+    Expect(0, 8400, '\p{Block=Currency_Symbols}', "");
+    Expect(1, 8400, '\p{^Block=Currency_Symbols}', "");
+    Expect(1, 8400, '\P{Block=Currency_Symbols}', "");
+    Expect(0, 8400, '\P{^Block=Currency_Symbols}', "");
+    Error('\p{Blk=Currency_Symbols/a/}');
+    Error('\P{Blk=Currency_Symbols/a/}');
     Expect(1, 8399, '\p{Blk=:\ACurrency_Symbols\z:}', "");;
     Expect(0, 8400, '\p{Blk=:\ACurrency_Symbols\z:}', "");;
     Expect(1, 8399, '\p{Blk=currencysymbols}', "");
@@ -9018,16 +9202,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8400, '\P{^Blk=currencysymbols}', "");
     Expect(1, 8399, '\p{Blk=:\Acurrencysymbols\z:}', "");;
     Expect(0, 8400, '\p{Blk=:\Acurrencysymbols\z:}', "");;
-    Expect(1, 8399, '\p{Blk=_ Currency_symbols}', "");
-    Expect(0, 8399, '\p{^Blk=_ Currency_symbols}', "");
-    Expect(0, 8399, '\P{Blk=_ Currency_symbols}', "");
-    Expect(1, 8399, '\P{^Blk=_ Currency_symbols}', "");
-    Expect(0, 8400, '\p{Blk=_ Currency_symbols}', "");
-    Expect(1, 8400, '\p{^Blk=_ Currency_symbols}', "");
-    Expect(1, 8400, '\P{Blk=_ Currency_symbols}', "");
-    Expect(0, 8400, '\P{^Blk=_ Currency_symbols}', "");
-    Error('\p{Is_Block: CURRENCY_SYMBOLS/a/}');
-    Error('\P{Is_Block: CURRENCY_SYMBOLS/a/}');
+    Expect(1, 8399, '\p{Blk:	- Currency_Symbols}', "");
+    Expect(0, 8399, '\p{^Blk:	- Currency_Symbols}', "");
+    Expect(0, 8399, '\P{Blk:	- Currency_Symbols}', "");
+    Expect(1, 8399, '\P{^Blk:	- Currency_Symbols}', "");
+    Expect(0, 8400, '\p{Blk:	- Currency_Symbols}', "");
+    Expect(1, 8400, '\p{^Blk:	- Currency_Symbols}', "");
+    Expect(1, 8400, '\P{Blk:	- Currency_Symbols}', "");
+    Expect(0, 8400, '\P{^Blk:	- Currency_Symbols}', "");
+    Error('\p{Is_Block=	_Currency_symbols/a/}');
+    Error('\P{Is_Block=	_Currency_symbols/a/}');
     Expect(1, 8399, '\p{Is_Block=currencysymbols}', "");
     Expect(0, 8399, '\p{^Is_Block=currencysymbols}', "");
     Expect(0, 8399, '\P{Is_Block=currencysymbols}', "");
@@ -9036,16 +9220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8400, '\p{^Is_Block=currencysymbols}', "");
     Expect(1, 8400, '\P{Is_Block=currencysymbols}', "");
     Expect(0, 8400, '\P{^Is_Block=currencysymbols}', "");
-    Expect(1, 8399, '\p{Is_Block=_Currency_Symbols}', "");
-    Expect(0, 8399, '\p{^Is_Block=_Currency_Symbols}', "");
-    Expect(0, 8399, '\P{Is_Block=_Currency_Symbols}', "");
-    Expect(1, 8399, '\P{^Is_Block=_Currency_Symbols}', "");
-    Expect(0, 8400, '\p{Is_Block=_Currency_Symbols}', "");
-    Expect(1, 8400, '\p{^Is_Block=_Currency_Symbols}', "");
-    Expect(1, 8400, '\P{Is_Block=_Currency_Symbols}', "");
-    Expect(0, 8400, '\P{^Is_Block=_Currency_Symbols}', "");
-    Error('\p{Is_Blk=/a/-currency_Symbols}');
-    Error('\P{Is_Blk=/a/-currency_Symbols}');
+    Expect(1, 8399, '\p{Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(0, 8399, '\p{^Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(0, 8399, '\P{Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(1, 8399, '\P{^Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(0, 8400, '\p{Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(1, 8400, '\p{^Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(1, 8400, '\P{Is_Block=-	Currency_SYMBOLS}', "");
+    Expect(0, 8400, '\P{^Is_Block=-	Currency_SYMBOLS}', "");
+    Error('\p{Is_Blk= currency_symbols/a/}');
+    Error('\P{Is_Blk= currency_symbols/a/}');
     Expect(1, 8399, '\p{Is_Blk=currencysymbols}', "");
     Expect(0, 8399, '\p{^Is_Blk=currencysymbols}', "");
     Expect(0, 8399, '\P{Is_Blk=currencysymbols}', "");
@@ -9054,16 +9238,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8400, '\p{^Is_Blk=currencysymbols}', "");
     Expect(1, 8400, '\P{Is_Blk=currencysymbols}', "");
     Expect(0, 8400, '\P{^Is_Blk=currencysymbols}', "");
-    Expect(1, 8399, '\p{Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(0, 8399, '\p{^Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(0, 8399, '\P{Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(1, 8399, '\P{^Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(0, 8400, '\p{Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(1, 8400, '\p{^Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(1, 8400, '\P{Is_Blk=	-CURRENCY_Symbols}', "");
-    Expect(0, 8400, '\P{^Is_Blk=	-CURRENCY_Symbols}', "");
-    Error('\p{Block:   :=_cypriot_syllabary}');
-    Error('\P{Block:   :=_cypriot_syllabary}');
+    Expect(1, 8399, '\p{Is_Blk=	-Currency_Symbols}', "");
+    Expect(0, 8399, '\p{^Is_Blk=	-Currency_Symbols}', "");
+    Expect(0, 8399, '\P{Is_Blk=	-Currency_Symbols}', "");
+    Expect(1, 8399, '\P{^Is_Blk=	-Currency_Symbols}', "");
+    Expect(0, 8400, '\p{Is_Blk=	-Currency_Symbols}', "");
+    Expect(1, 8400, '\p{^Is_Blk=	-Currency_Symbols}', "");
+    Expect(1, 8400, '\P{Is_Blk=	-Currency_Symbols}', "");
+    Expect(0, 8400, '\P{^Is_Blk=	-Currency_Symbols}', "");
+    Error('\p{Block=  Cypriot_SYLLABARY/a/}');
+    Error('\P{Block=  Cypriot_SYLLABARY/a/}');
     Expect(1, 67647, '\p{Block=:\ACypriot_Syllabary\z:}', "");;
     Expect(0, 67648, '\p{Block=:\ACypriot_Syllabary\z:}', "");;
     Expect(1, 67647, '\p{Block=cypriotsyllabary}', "");
@@ -9076,16 +9260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67648, '\P{^Block=cypriotsyllabary}', "");
     Expect(1, 67647, '\p{Block=:\Acypriotsyllabary\z:}', "");;
     Expect(0, 67648, '\p{Block=:\Acypriotsyllabary\z:}', "");;
-    Expect(1, 67647, '\p{Block=--cypriot_SYLLABARY}', "");
-    Expect(0, 67647, '\p{^Block=--cypriot_SYLLABARY}', "");
-    Expect(0, 67647, '\P{Block=--cypriot_SYLLABARY}', "");
-    Expect(1, 67647, '\P{^Block=--cypriot_SYLLABARY}', "");
-    Expect(0, 67648, '\p{Block=--cypriot_SYLLABARY}', "");
-    Expect(1, 67648, '\p{^Block=--cypriot_SYLLABARY}', "");
-    Expect(1, 67648, '\P{Block=--cypriot_SYLLABARY}', "");
-    Expect(0, 67648, '\P{^Block=--cypriot_SYLLABARY}', "");
-    Error('\p{Blk:-:=Cypriot_Syllabary}');
-    Error('\P{Blk:-:=Cypriot_Syllabary}');
+    Expect(1, 67647, '\p{Block=	Cypriot_Syllabary}', "");
+    Expect(0, 67647, '\p{^Block=	Cypriot_Syllabary}', "");
+    Expect(0, 67647, '\P{Block=	Cypriot_Syllabary}', "");
+    Expect(1, 67647, '\P{^Block=	Cypriot_Syllabary}', "");
+    Expect(0, 67648, '\p{Block=	Cypriot_Syllabary}', "");
+    Expect(1, 67648, '\p{^Block=	Cypriot_Syllabary}', "");
+    Expect(1, 67648, '\P{Block=	Cypriot_Syllabary}', "");
+    Expect(0, 67648, '\P{^Block=	Cypriot_Syllabary}', "");
+    Error('\p{Blk=:=cypriot_SYLLABARY}');
+    Error('\P{Blk=:=cypriot_SYLLABARY}');
     Expect(1, 67647, '\p{Blk=:\ACypriot_Syllabary\z:}', "");;
     Expect(0, 67648, '\p{Blk=:\ACypriot_Syllabary\z:}', "");;
     Expect(1, 67647, '\p{Blk=cypriotsyllabary}', "");
@@ -9098,16 +9282,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67648, '\P{^Blk=cypriotsyllabary}', "");
     Expect(1, 67647, '\p{Blk=:\Acypriotsyllabary\z:}', "");;
     Expect(0, 67648, '\p{Blk=:\Acypriotsyllabary\z:}', "");;
-    Expect(1, 67647, '\p{Blk= _CYPRIOT_Syllabary}', "");
-    Expect(0, 67647, '\p{^Blk= _CYPRIOT_Syllabary}', "");
-    Expect(0, 67647, '\P{Blk= _CYPRIOT_Syllabary}', "");
-    Expect(1, 67647, '\P{^Blk= _CYPRIOT_Syllabary}', "");
-    Expect(0, 67648, '\p{Blk= _CYPRIOT_Syllabary}', "");
-    Expect(1, 67648, '\p{^Blk= _CYPRIOT_Syllabary}', "");
-    Expect(1, 67648, '\P{Blk= _CYPRIOT_Syllabary}', "");
-    Expect(0, 67648, '\P{^Blk= _CYPRIOT_Syllabary}', "");
-    Error('\p{Is_Block: Cypriot_syllabary:=}');
-    Error('\P{Is_Block: Cypriot_syllabary:=}');
+    Expect(1, 67647, '\p{Blk=		CYPRIOT_syllabary}', "");
+    Expect(0, 67647, '\p{^Blk=		CYPRIOT_syllabary}', "");
+    Expect(0, 67647, '\P{Blk=		CYPRIOT_syllabary}', "");
+    Expect(1, 67647, '\P{^Blk=		CYPRIOT_syllabary}', "");
+    Expect(0, 67648, '\p{Blk=		CYPRIOT_syllabary}', "");
+    Expect(1, 67648, '\p{^Blk=		CYPRIOT_syllabary}', "");
+    Expect(1, 67648, '\P{Blk=		CYPRIOT_syllabary}', "");
+    Expect(0, 67648, '\P{^Blk=		CYPRIOT_syllabary}', "");
+    Error('\p{Is_Block=:= -Cypriot_Syllabary}');
+    Error('\P{Is_Block=:= -Cypriot_Syllabary}');
     Expect(1, 67647, '\p{Is_Block=cypriotsyllabary}', "");
     Expect(0, 67647, '\p{^Is_Block=cypriotsyllabary}', "");
     Expect(0, 67647, '\P{Is_Block=cypriotsyllabary}', "");
@@ -9116,16 +9300,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67648, '\p{^Is_Block=cypriotsyllabary}', "");
     Expect(1, 67648, '\P{Is_Block=cypriotsyllabary}', "");
     Expect(0, 67648, '\P{^Is_Block=cypriotsyllabary}', "");
-    Expect(1, 67647, '\p{Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(0, 67647, '\p{^Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(0, 67647, '\P{Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(1, 67647, '\P{^Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(0, 67648, '\p{Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(1, 67648, '\p{^Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(1, 67648, '\P{Is_Block: _	Cypriot_Syllabary}', "");
-    Expect(0, 67648, '\P{^Is_Block: _	Cypriot_Syllabary}', "");
-    Error('\p{Is_Blk=		Cypriot_Syllabary:=}');
-    Error('\P{Is_Blk=		Cypriot_Syllabary:=}');
+    Expect(1, 67647, '\p{Is_Block=-Cypriot_Syllabary}', "");
+    Expect(0, 67647, '\p{^Is_Block=-Cypriot_Syllabary}', "");
+    Expect(0, 67647, '\P{Is_Block=-Cypriot_Syllabary}', "");
+    Expect(1, 67647, '\P{^Is_Block=-Cypriot_Syllabary}', "");
+    Expect(0, 67648, '\p{Is_Block=-Cypriot_Syllabary}', "");
+    Expect(1, 67648, '\p{^Is_Block=-Cypriot_Syllabary}', "");
+    Expect(1, 67648, '\P{Is_Block=-Cypriot_Syllabary}', "");
+    Expect(0, 67648, '\P{^Is_Block=-Cypriot_Syllabary}', "");
+    Error('\p{Is_Blk=/a/-cypriot_SYLLABARY}');
+    Error('\P{Is_Blk=/a/-cypriot_SYLLABARY}');
     Expect(1, 67647, '\p{Is_Blk=cypriotsyllabary}', "");
     Expect(0, 67647, '\p{^Is_Blk=cypriotsyllabary}', "");
     Expect(0, 67647, '\P{Is_Blk=cypriotsyllabary}', "");
@@ -9134,16 +9318,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67648, '\p{^Is_Blk=cypriotsyllabary}', "");
     Expect(1, 67648, '\P{Is_Blk=cypriotsyllabary}', "");
     Expect(0, 67648, '\P{^Is_Blk=cypriotsyllabary}', "");
-    Expect(1, 67647, '\p{Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(0, 67647, '\p{^Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(0, 67647, '\P{Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(1, 67647, '\P{^Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(0, 67648, '\p{Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(1, 67648, '\p{^Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(1, 67648, '\P{Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Expect(0, 67648, '\P{^Is_Blk= CYPRIOT_SYLLABARY}', "");
-    Error('\p{Block=/a/-Cypro_Minoan}');
-    Error('\P{Block=/a/-Cypro_Minoan}');
+    Expect(1, 67647, '\p{Is_Blk= cypriot_syllabary}', "");
+    Expect(0, 67647, '\p{^Is_Blk= cypriot_syllabary}', "");
+    Expect(0, 67647, '\P{Is_Blk= cypriot_syllabary}', "");
+    Expect(1, 67647, '\P{^Is_Blk= cypriot_syllabary}', "");
+    Expect(0, 67648, '\p{Is_Blk= cypriot_syllabary}', "");
+    Expect(1, 67648, '\p{^Is_Blk= cypriot_syllabary}', "");
+    Expect(1, 67648, '\P{Is_Blk= cypriot_syllabary}', "");
+    Expect(0, 67648, '\P{^Is_Blk= cypriot_syllabary}', "");
+    Error('\p{Block=- cypro_MINOAN:=}');
+    Error('\P{Block=- cypro_MINOAN:=}');
     Expect(1, 77823, '\p{Block=:\ACypro_Minoan\z:}', "");;
     Expect(0, 77824, '\p{Block=:\ACypro_Minoan\z:}', "");;
     Expect(1, 77823, '\p{Block=cyprominoan}', "");
@@ -9156,16 +9340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 77824, '\P{^Block=cyprominoan}', "");
     Expect(1, 77823, '\p{Block=:\Acyprominoan\z:}', "");;
     Expect(0, 77824, '\p{Block=:\Acyprominoan\z:}', "");;
-    Expect(1, 77823, '\p{Block=-_cypro_Minoan}', "");
-    Expect(0, 77823, '\p{^Block=-_cypro_Minoan}', "");
-    Expect(0, 77823, '\P{Block=-_cypro_Minoan}', "");
-    Expect(1, 77823, '\P{^Block=-_cypro_Minoan}', "");
-    Expect(0, 77824, '\p{Block=-_cypro_Minoan}', "");
-    Expect(1, 77824, '\p{^Block=-_cypro_Minoan}', "");
-    Expect(1, 77824, '\P{Block=-_cypro_Minoan}', "");
-    Expect(0, 77824, '\P{^Block=-_cypro_Minoan}', "");
-    Error('\p{Blk=cypro_minoan/a/}');
-    Error('\P{Blk=cypro_minoan/a/}');
+    Expect(1, 77823, '\p{Block=_-Cypro_Minoan}', "");
+    Expect(0, 77823, '\p{^Block=_-Cypro_Minoan}', "");
+    Expect(0, 77823, '\P{Block=_-Cypro_Minoan}', "");
+    Expect(1, 77823, '\P{^Block=_-Cypro_Minoan}', "");
+    Expect(0, 77824, '\p{Block=_-Cypro_Minoan}', "");
+    Expect(1, 77824, '\p{^Block=_-Cypro_Minoan}', "");
+    Expect(1, 77824, '\P{Block=_-Cypro_Minoan}', "");
+    Expect(0, 77824, '\P{^Block=_-Cypro_Minoan}', "");
+    Error('\p{Blk= -CYPRO_Minoan:=}');
+    Error('\P{Blk= -CYPRO_Minoan:=}');
     Expect(1, 77823, '\p{Blk=:\ACypro_Minoan\z:}', "");;
     Expect(0, 77824, '\p{Blk=:\ACypro_Minoan\z:}', "");;
     Expect(1, 77823, '\p{Blk=cyprominoan}', "");
@@ -9178,16 +9362,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 77824, '\P{^Blk=cyprominoan}', "");
     Expect(1, 77823, '\p{Blk=:\Acyprominoan\z:}', "");;
     Expect(0, 77824, '\p{Blk=:\Acyprominoan\z:}', "");;
-    Expect(1, 77823, '\p{Blk= 	CYPRO_Minoan}', "");
-    Expect(0, 77823, '\p{^Blk= 	CYPRO_Minoan}', "");
-    Expect(0, 77823, '\P{Blk= 	CYPRO_Minoan}', "");
-    Expect(1, 77823, '\P{^Blk= 	CYPRO_Minoan}', "");
-    Expect(0, 77824, '\p{Blk= 	CYPRO_Minoan}', "");
-    Expect(1, 77824, '\p{^Blk= 	CYPRO_Minoan}', "");
-    Expect(1, 77824, '\P{Blk= 	CYPRO_Minoan}', "");
-    Expect(0, 77824, '\P{^Blk= 	CYPRO_Minoan}', "");
-    Error('\p{Is_Block:   __Cypro_MINOAN:=}');
-    Error('\P{Is_Block:   __Cypro_MINOAN:=}');
+    Expect(1, 77823, '\p{Blk=--Cypro_MINOAN}', "");
+    Expect(0, 77823, '\p{^Blk=--Cypro_MINOAN}', "");
+    Expect(0, 77823, '\P{Blk=--Cypro_MINOAN}', "");
+    Expect(1, 77823, '\P{^Blk=--Cypro_MINOAN}', "");
+    Expect(0, 77824, '\p{Blk=--Cypro_MINOAN}', "");
+    Expect(1, 77824, '\p{^Blk=--Cypro_MINOAN}', "");
+    Expect(1, 77824, '\P{Blk=--Cypro_MINOAN}', "");
+    Expect(0, 77824, '\P{^Blk=--Cypro_MINOAN}', "");
+    Error('\p{Is_Block=-:=cypro_Minoan}');
+    Error('\P{Is_Block=-:=cypro_Minoan}');
     Expect(1, 77823, '\p{Is_Block=cyprominoan}', "");
     Expect(0, 77823, '\p{^Is_Block=cyprominoan}', "");
     Expect(0, 77823, '\P{Is_Block=cyprominoan}', "");
@@ -9196,16 +9380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 77824, '\p{^Is_Block=cyprominoan}', "");
     Expect(1, 77824, '\P{Is_Block=cyprominoan}', "");
     Expect(0, 77824, '\P{^Is_Block=cyprominoan}', "");
-    Expect(1, 77823, '\p{Is_Block=_CYPRO_Minoan}', "");
-    Expect(0, 77823, '\p{^Is_Block=_CYPRO_Minoan}', "");
-    Expect(0, 77823, '\P{Is_Block=_CYPRO_Minoan}', "");
-    Expect(1, 77823, '\P{^Is_Block=_CYPRO_Minoan}', "");
-    Expect(0, 77824, '\p{Is_Block=_CYPRO_Minoan}', "");
-    Expect(1, 77824, '\p{^Is_Block=_CYPRO_Minoan}', "");
-    Expect(1, 77824, '\P{Is_Block=_CYPRO_Minoan}', "");
-    Expect(0, 77824, '\P{^Is_Block=_CYPRO_Minoan}', "");
-    Error('\p{Is_Blk= 	cypro_minoan/a/}');
-    Error('\P{Is_Blk= 	cypro_minoan/a/}');
+    Expect(1, 77823, '\p{Is_Block=__cypro_MINOAN}', "");
+    Expect(0, 77823, '\p{^Is_Block=__cypro_MINOAN}', "");
+    Expect(0, 77823, '\P{Is_Block=__cypro_MINOAN}', "");
+    Expect(1, 77823, '\P{^Is_Block=__cypro_MINOAN}', "");
+    Expect(0, 77824, '\p{Is_Block=__cypro_MINOAN}', "");
+    Expect(1, 77824, '\p{^Is_Block=__cypro_MINOAN}', "");
+    Expect(1, 77824, '\P{Is_Block=__cypro_MINOAN}', "");
+    Expect(0, 77824, '\P{^Is_Block=__cypro_MINOAN}', "");
+    Error('\p{Is_Blk=	/a/Cypro_minoan}');
+    Error('\P{Is_Blk=	/a/Cypro_minoan}');
     Expect(1, 77823, '\p{Is_Blk=cyprominoan}', "");
     Expect(0, 77823, '\p{^Is_Blk=cyprominoan}', "");
     Expect(0, 77823, '\P{Is_Blk=cyprominoan}', "");
@@ -9214,16 +9398,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 77824, '\p{^Is_Blk=cyprominoan}', "");
     Expect(1, 77824, '\P{Is_Blk=cyprominoan}', "");
     Expect(0, 77824, '\P{^Is_Blk=cyprominoan}', "");
-    Expect(1, 77823, '\p{Is_Blk=	Cypro_Minoan}', "");
-    Expect(0, 77823, '\p{^Is_Blk=	Cypro_Minoan}', "");
-    Expect(0, 77823, '\P{Is_Blk=	Cypro_Minoan}', "");
-    Expect(1, 77823, '\P{^Is_Blk=	Cypro_Minoan}', "");
-    Expect(0, 77824, '\p{Is_Blk=	Cypro_Minoan}', "");
-    Expect(1, 77824, '\p{^Is_Blk=	Cypro_Minoan}', "");
-    Expect(1, 77824, '\P{Is_Blk=	Cypro_Minoan}', "");
-    Expect(0, 77824, '\P{^Is_Blk=	Cypro_Minoan}', "");
-    Error('\p{Block=:=_Cyrillic}');
-    Error('\P{Block=:=_Cyrillic}');
+    Expect(1, 77823, '\p{Is_Blk=	-Cypro_Minoan}', "");
+    Expect(0, 77823, '\p{^Is_Blk=	-Cypro_Minoan}', "");
+    Expect(0, 77823, '\P{Is_Blk=	-Cypro_Minoan}', "");
+    Expect(1, 77823, '\P{^Is_Blk=	-Cypro_Minoan}', "");
+    Expect(0, 77824, '\p{Is_Blk=	-Cypro_Minoan}', "");
+    Expect(1, 77824, '\p{^Is_Blk=	-Cypro_Minoan}', "");
+    Expect(1, 77824, '\P{Is_Blk=	-Cypro_Minoan}', "");
+    Expect(0, 77824, '\P{^Is_Blk=	-Cypro_Minoan}', "");
+    Error('\p{Block=	-cyrillic:=}');
+    Error('\P{Block=	-cyrillic:=}');
     Expect(1, 1279, '\p{Block=:\ACyrillic\z:}', "");;
     Expect(0, 1280, '\p{Block=:\ACyrillic\z:}', "");;
     Expect(1, 1279, '\p{Block=cyrillic}', "");
@@ -9236,38 +9420,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1280, '\P{^Block=cyrillic}', "");
     Expect(1, 1279, '\p{Block=:\Acyrillic\z:}', "");;
     Expect(0, 1280, '\p{Block=:\Acyrillic\z:}', "");;
-    Expect(1, 1279, '\p{Block=-_Cyrillic}', "");
-    Expect(0, 1279, '\p{^Block=-_Cyrillic}', "");
-    Expect(0, 1279, '\P{Block=-_Cyrillic}', "");
-    Expect(1, 1279, '\P{^Block=-_Cyrillic}', "");
-    Expect(0, 1280, '\p{Block=-_Cyrillic}', "");
-    Expect(1, 1280, '\p{^Block=-_Cyrillic}', "");
-    Expect(1, 1280, '\P{Block=-_Cyrillic}', "");
-    Expect(0, 1280, '\P{^Block=-_Cyrillic}', "");
-    Error('\p{Blk= Cyrillic/a/}');
-    Error('\P{Blk= Cyrillic/a/}');
+    Expect(1, 1279, '\p{Block=	CYRILLIC}', "");
+    Expect(0, 1279, '\p{^Block=	CYRILLIC}', "");
+    Expect(0, 1279, '\P{Block=	CYRILLIC}', "");
+    Expect(1, 1279, '\P{^Block=	CYRILLIC}', "");
+    Expect(0, 1280, '\p{Block=	CYRILLIC}', "");
+    Expect(1, 1280, '\p{^Block=	CYRILLIC}', "");
+    Expect(1, 1280, '\P{Block=	CYRILLIC}', "");
+    Expect(0, 1280, '\P{^Block=	CYRILLIC}', "");
+    Error('\p{Blk=/a/-_cyrillic}');
+    Error('\P{Blk=/a/-_cyrillic}');
     Expect(1, 1279, '\p{Blk=:\ACyrillic\z:}', "");;
     Expect(0, 1280, '\p{Blk=:\ACyrillic\z:}', "");;
-    Expect(1, 1279, '\p{Blk:cyrillic}', "");
-    Expect(0, 1279, '\p{^Blk:cyrillic}', "");
-    Expect(0, 1279, '\P{Blk:cyrillic}', "");
-    Expect(1, 1279, '\P{^Blk:cyrillic}', "");
-    Expect(0, 1280, '\p{Blk:cyrillic}', "");
-    Expect(1, 1280, '\p{^Blk:cyrillic}', "");
-    Expect(1, 1280, '\P{Blk:cyrillic}', "");
-    Expect(0, 1280, '\P{^Blk:cyrillic}', "");
+    Expect(1, 1279, '\p{Blk=cyrillic}', "");
+    Expect(0, 1279, '\p{^Blk=cyrillic}', "");
+    Expect(0, 1279, '\P{Blk=cyrillic}', "");
+    Expect(1, 1279, '\P{^Blk=cyrillic}', "");
+    Expect(0, 1280, '\p{Blk=cyrillic}', "");
+    Expect(1, 1280, '\p{^Blk=cyrillic}', "");
+    Expect(1, 1280, '\P{Blk=cyrillic}', "");
+    Expect(0, 1280, '\P{^Blk=cyrillic}', "");
     Expect(1, 1279, '\p{Blk=:\Acyrillic\z:}', "");;
     Expect(0, 1280, '\p{Blk=:\Acyrillic\z:}', "");;
-    Expect(1, 1279, '\p{Blk=-Cyrillic}', "");
-    Expect(0, 1279, '\p{^Blk=-Cyrillic}', "");
-    Expect(0, 1279, '\P{Blk=-Cyrillic}', "");
-    Expect(1, 1279, '\P{^Blk=-Cyrillic}', "");
-    Expect(0, 1280, '\p{Blk=-Cyrillic}', "");
-    Expect(1, 1280, '\p{^Blk=-Cyrillic}', "");
-    Expect(1, 1280, '\P{Blk=-Cyrillic}', "");
-    Expect(0, 1280, '\P{^Blk=-Cyrillic}', "");
-    Error('\p{Is_Block=		Cyrillic:=}');
-    Error('\P{Is_Block=		Cyrillic:=}');
+    Expect(1, 1279, '\p{Blk=_ Cyrillic}', "");
+    Expect(0, 1279, '\p{^Blk=_ Cyrillic}', "");
+    Expect(0, 1279, '\P{Blk=_ Cyrillic}', "");
+    Expect(1, 1279, '\P{^Blk=_ Cyrillic}', "");
+    Expect(0, 1280, '\p{Blk=_ Cyrillic}', "");
+    Expect(1, 1280, '\p{^Blk=_ Cyrillic}', "");
+    Expect(1, 1280, '\P{Blk=_ Cyrillic}', "");
+    Expect(0, 1280, '\P{^Blk=_ Cyrillic}', "");
+    Error('\p{Is_Block:/a/	CYRILLIC}');
+    Error('\P{Is_Block:/a/	CYRILLIC}');
     Expect(1, 1279, '\p{Is_Block=cyrillic}', "");
     Expect(0, 1279, '\p{^Is_Block=cyrillic}', "");
     Expect(0, 1279, '\P{Is_Block=cyrillic}', "");
@@ -9276,34 +9460,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1280, '\p{^Is_Block=cyrillic}', "");
     Expect(1, 1280, '\P{Is_Block=cyrillic}', "");
     Expect(0, 1280, '\P{^Is_Block=cyrillic}', "");
-    Expect(1, 1279, '\p{Is_Block=	_CYRILLIC}', "");
-    Expect(0, 1279, '\p{^Is_Block=	_CYRILLIC}', "");
-    Expect(0, 1279, '\P{Is_Block=	_CYRILLIC}', "");
-    Expect(1, 1279, '\P{^Is_Block=	_CYRILLIC}', "");
-    Expect(0, 1280, '\p{Is_Block=	_CYRILLIC}', "");
-    Expect(1, 1280, '\p{^Is_Block=	_CYRILLIC}', "");
-    Expect(1, 1280, '\P{Is_Block=	_CYRILLIC}', "");
-    Expect(0, 1280, '\P{^Is_Block=	_CYRILLIC}', "");
-    Error('\p{Is_Blk=:=-Cyrillic}');
-    Error('\P{Is_Blk=:=-Cyrillic}');
-    Expect(1, 1279, '\p{Is_Blk=cyrillic}', "");
-    Expect(0, 1279, '\p{^Is_Blk=cyrillic}', "");
-    Expect(0, 1279, '\P{Is_Blk=cyrillic}', "");
-    Expect(1, 1279, '\P{^Is_Blk=cyrillic}', "");
-    Expect(0, 1280, '\p{Is_Blk=cyrillic}', "");
-    Expect(1, 1280, '\p{^Is_Blk=cyrillic}', "");
-    Expect(1, 1280, '\P{Is_Blk=cyrillic}', "");
-    Expect(0, 1280, '\P{^Is_Blk=cyrillic}', "");
-    Expect(1, 1279, '\p{Is_Blk=_	Cyrillic}', "");
-    Expect(0, 1279, '\p{^Is_Blk=_	Cyrillic}', "");
-    Expect(0, 1279, '\P{Is_Blk=_	Cyrillic}', "");
-    Expect(1, 1279, '\P{^Is_Blk=_	Cyrillic}', "");
-    Expect(0, 1280, '\p{Is_Blk=_	Cyrillic}', "");
-    Expect(1, 1280, '\p{^Is_Blk=_	Cyrillic}', "");
-    Expect(1, 1280, '\P{Is_Blk=_	Cyrillic}', "");
-    Expect(0, 1280, '\P{^Is_Blk=_	Cyrillic}', "");
-    Error('\p{Block= /a/Cyrillic_Extended_A}');
-    Error('\P{Block= /a/Cyrillic_Extended_A}');
+    Expect(1, 1279, '\p{Is_Block= -Cyrillic}', "");
+    Expect(0, 1279, '\p{^Is_Block= -Cyrillic}', "");
+    Expect(0, 1279, '\P{Is_Block= -Cyrillic}', "");
+    Expect(1, 1279, '\P{^Is_Block= -Cyrillic}', "");
+    Expect(0, 1280, '\p{Is_Block= -Cyrillic}', "");
+    Expect(1, 1280, '\p{^Is_Block= -Cyrillic}', "");
+    Expect(1, 1280, '\P{Is_Block= -Cyrillic}', "");
+    Expect(0, 1280, '\P{^Is_Block= -Cyrillic}', "");
+    Error('\p{Is_Blk=_:=CYRILLIC}');
+    Error('\P{Is_Blk=_:=CYRILLIC}');
+    Expect(1, 1279, '\p{Is_Blk:	cyrillic}', "");
+    Expect(0, 1279, '\p{^Is_Blk:	cyrillic}', "");
+    Expect(0, 1279, '\P{Is_Blk:	cyrillic}', "");
+    Expect(1, 1279, '\P{^Is_Blk:	cyrillic}', "");
+    Expect(0, 1280, '\p{Is_Blk:	cyrillic}', "");
+    Expect(1, 1280, '\p{^Is_Blk:	cyrillic}', "");
+    Expect(1, 1280, '\P{Is_Blk:	cyrillic}', "");
+    Expect(0, 1280, '\P{^Is_Blk:	cyrillic}', "");
+    Expect(1, 1279, '\p{Is_Blk=-	cyrillic}', "");
+    Expect(0, 1279, '\p{^Is_Blk=-	cyrillic}', "");
+    Expect(0, 1279, '\P{Is_Blk=-	cyrillic}', "");
+    Expect(1, 1279, '\P{^Is_Blk=-	cyrillic}', "");
+    Expect(0, 1280, '\p{Is_Blk=-	cyrillic}', "");
+    Expect(1, 1280, '\p{^Is_Blk=-	cyrillic}', "");
+    Expect(1, 1280, '\P{Is_Blk=-	cyrillic}', "");
+    Expect(0, 1280, '\P{^Is_Blk=-	cyrillic}', "");
+    Error('\p{Block=_Cyrillic_Extended_A/a/}');
+    Error('\P{Block=_Cyrillic_Extended_A/a/}');
     Expect(1, 11775, '\p{Block=:\ACyrillic_Extended_A\z:}', "");;
     Expect(0, 11776, '\p{Block=:\ACyrillic_Extended_A\z:}', "");;
     Expect(1, 11775, '\p{Block=cyrillicextendeda}', "");
@@ -9316,16 +9500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11776, '\P{^Block=cyrillicextendeda}', "");
     Expect(1, 11775, '\p{Block=:\Acyrillicextendeda\z:}', "");;
     Expect(0, 11776, '\p{Block=:\Acyrillicextendeda\z:}', "");;
-    Expect(1, 11775, '\p{Block=	Cyrillic_Extended_A}', "");
-    Expect(0, 11775, '\p{^Block=	Cyrillic_Extended_A}', "");
-    Expect(0, 11775, '\P{Block=	Cyrillic_Extended_A}', "");
-    Expect(1, 11775, '\P{^Block=	Cyrillic_Extended_A}', "");
-    Expect(0, 11776, '\p{Block=	Cyrillic_Extended_A}', "");
-    Expect(1, 11776, '\p{^Block=	Cyrillic_Extended_A}', "");
-    Expect(1, 11776, '\P{Block=	Cyrillic_Extended_A}', "");
-    Expect(0, 11776, '\P{^Block=	Cyrillic_Extended_A}', "");
-    Error('\p{Blk= CYRILLIC_EXT_A/a/}');
-    Error('\P{Blk= CYRILLIC_EXT_A/a/}');
+    Expect(1, 11775, '\p{Block=-Cyrillic_Extended_A}', "");
+    Expect(0, 11775, '\p{^Block=-Cyrillic_Extended_A}', "");
+    Expect(0, 11775, '\P{Block=-Cyrillic_Extended_A}', "");
+    Expect(1, 11775, '\P{^Block=-Cyrillic_Extended_A}', "");
+    Expect(0, 11776, '\p{Block=-Cyrillic_Extended_A}', "");
+    Expect(1, 11776, '\p{^Block=-Cyrillic_Extended_A}', "");
+    Expect(1, 11776, '\P{Block=-Cyrillic_Extended_A}', "");
+    Expect(0, 11776, '\P{^Block=-Cyrillic_Extended_A}', "");
+    Error('\p{Blk:   _/a/CYRILLIC_ext_A}');
+    Error('\P{Blk:   _/a/CYRILLIC_ext_A}');
     Expect(1, 11775, '\p{Blk=:\ACyrillic_Ext_A\z:}', "");;
     Expect(0, 11776, '\p{Blk=:\ACyrillic_Ext_A\z:}', "");;
     Expect(1, 11775, '\p{Blk=cyrillicexta}', "");
@@ -9338,16 +9522,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11776, '\P{^Blk=cyrillicexta}', "");
     Expect(1, 11775, '\p{Blk=:\Acyrillicexta\z:}', "");;
     Expect(0, 11776, '\p{Blk=:\Acyrillicexta\z:}', "");;
-    Expect(1, 11775, '\p{Blk= _Cyrillic_Ext_A}', "");
-    Expect(0, 11775, '\p{^Blk= _Cyrillic_Ext_A}', "");
-    Expect(0, 11775, '\P{Blk= _Cyrillic_Ext_A}', "");
-    Expect(1, 11775, '\P{^Blk= _Cyrillic_Ext_A}', "");
-    Expect(0, 11776, '\p{Blk= _Cyrillic_Ext_A}', "");
-    Expect(1, 11776, '\p{^Blk= _Cyrillic_Ext_A}', "");
-    Expect(1, 11776, '\P{Blk= _Cyrillic_Ext_A}', "");
-    Expect(0, 11776, '\P{^Blk= _Cyrillic_Ext_A}', "");
-    Error('\p{Is_Block=_	cyrillic_Extended_A:=}');
-    Error('\P{Is_Block=_	cyrillic_Extended_A:=}');
+    Expect(1, 11775, '\p{Blk=_CYRILLIC_ext_A}', "");
+    Expect(0, 11775, '\p{^Blk=_CYRILLIC_ext_A}', "");
+    Expect(0, 11775, '\P{Blk=_CYRILLIC_ext_A}', "");
+    Expect(1, 11775, '\P{^Blk=_CYRILLIC_ext_A}', "");
+    Expect(0, 11776, '\p{Blk=_CYRILLIC_ext_A}', "");
+    Expect(1, 11776, '\p{^Blk=_CYRILLIC_ext_A}', "");
+    Expect(1, 11776, '\P{Blk=_CYRILLIC_ext_A}', "");
+    Expect(0, 11776, '\P{^Blk=_CYRILLIC_ext_A}', "");
+    Error('\p{Is_Block= cyrillic_Extended_A:=}');
+    Error('\P{Is_Block= cyrillic_Extended_A:=}');
     Expect(1, 11775, '\p{Is_Block=cyrillicextendeda}', "");
     Expect(0, 11775, '\p{^Is_Block=cyrillicextendeda}', "");
     Expect(0, 11775, '\P{Is_Block=cyrillicextendeda}', "");
@@ -9356,16 +9540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11776, '\p{^Is_Block=cyrillicextendeda}', "");
     Expect(1, 11776, '\P{Is_Block=cyrillicextendeda}', "");
     Expect(0, 11776, '\P{^Is_Block=cyrillicextendeda}', "");
-    Expect(1, 11775, '\p{Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(0, 11775, '\p{^Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(0, 11775, '\P{Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(1, 11775, '\P{^Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(0, 11776, '\p{Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(1, 11776, '\p{^Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(1, 11776, '\P{Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Expect(0, 11776, '\P{^Is_Block:	_ CYRILLIC_EXTENDED_a}', "");
-    Error('\p{Is_Blk:/a/CYRILLIC_ext_a}');
-    Error('\P{Is_Blk:/a/CYRILLIC_ext_a}');
+    Expect(1, 11775, '\p{Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(0, 11775, '\p{^Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(0, 11775, '\P{Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(1, 11775, '\P{^Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(0, 11776, '\p{Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(1, 11776, '\p{^Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(1, 11776, '\P{Is_Block=  Cyrillic_Extended_A}', "");
+    Expect(0, 11776, '\P{^Is_Block=  Cyrillic_Extended_A}', "");
+    Error('\p{Is_Blk=/a/		cyrillic_Ext_A}');
+    Error('\P{Is_Blk=/a/		cyrillic_Ext_A}');
     Expect(1, 11775, '\p{Is_Blk=cyrillicexta}', "");
     Expect(0, 11775, '\p{^Is_Blk=cyrillicexta}', "");
     Expect(0, 11775, '\P{Is_Blk=cyrillicexta}', "");
@@ -9374,38 +9558,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11776, '\p{^Is_Blk=cyrillicexta}', "");
     Expect(1, 11776, '\P{Is_Blk=cyrillicexta}', "");
     Expect(0, 11776, '\P{^Is_Blk=cyrillicexta}', "");
-    Expect(1, 11775, '\p{Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(0, 11775, '\p{^Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(0, 11775, '\P{Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(1, 11775, '\P{^Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(0, 11776, '\p{Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(1, 11776, '\p{^Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(1, 11776, '\P{Is_Blk:   -_Cyrillic_ext_A}', "");
-    Expect(0, 11776, '\P{^Is_Blk:   -_Cyrillic_ext_A}', "");
-    Error('\p{Block=_/a/Cyrillic_Extended_b}');
-    Error('\P{Block=_/a/Cyrillic_Extended_b}');
+    Expect(1, 11775, '\p{Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(0, 11775, '\p{^Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(0, 11775, '\P{Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(1, 11775, '\P{^Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(0, 11776, '\p{Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(1, 11776, '\p{^Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(1, 11776, '\P{Is_Blk=	 CYRILLIC_ext_A}', "");
+    Expect(0, 11776, '\P{^Is_Blk=	 CYRILLIC_ext_A}', "");
+    Error('\p{Block=_:=cyrillic_extended_B}');
+    Error('\P{Block=_:=cyrillic_extended_B}');
     Expect(1, 42655, '\p{Block=:\ACyrillic_Extended_B\z:}', "");;
     Expect(0, 42656, '\p{Block=:\ACyrillic_Extended_B\z:}', "");;
-    Expect(1, 42655, '\p{Block=cyrillicextendedb}', "");
-    Expect(0, 42655, '\p{^Block=cyrillicextendedb}', "");
-    Expect(0, 42655, '\P{Block=cyrillicextendedb}', "");
-    Expect(1, 42655, '\P{^Block=cyrillicextendedb}', "");
-    Expect(0, 42656, '\p{Block=cyrillicextendedb}', "");
-    Expect(1, 42656, '\p{^Block=cyrillicextendedb}', "");
-    Expect(1, 42656, '\P{Block=cyrillicextendedb}', "");
-    Expect(0, 42656, '\P{^Block=cyrillicextendedb}', "");
+    Expect(1, 42655, '\p{Block:cyrillicextendedb}', "");
+    Expect(0, 42655, '\p{^Block:cyrillicextendedb}', "");
+    Expect(0, 42655, '\P{Block:cyrillicextendedb}', "");
+    Expect(1, 42655, '\P{^Block:cyrillicextendedb}', "");
+    Expect(0, 42656, '\p{Block:cyrillicextendedb}', "");
+    Expect(1, 42656, '\p{^Block:cyrillicextendedb}', "");
+    Expect(1, 42656, '\P{Block:cyrillicextendedb}', "");
+    Expect(0, 42656, '\P{^Block:cyrillicextendedb}', "");
     Expect(1, 42655, '\p{Block=:\Acyrillicextendedb\z:}', "");;
     Expect(0, 42656, '\p{Block=:\Acyrillicextendedb\z:}', "");;
-    Expect(1, 42655, '\p{Block=-	CYRILLIC_Extended_B}', "");
-    Expect(0, 42655, '\p{^Block=-	CYRILLIC_Extended_B}', "");
-    Expect(0, 42655, '\P{Block=-	CYRILLIC_Extended_B}', "");
-    Expect(1, 42655, '\P{^Block=-	CYRILLIC_Extended_B}', "");
-    Expect(0, 42656, '\p{Block=-	CYRILLIC_Extended_B}', "");
-    Expect(1, 42656, '\p{^Block=-	CYRILLIC_Extended_B}', "");
-    Expect(1, 42656, '\P{Block=-	CYRILLIC_Extended_B}', "");
-    Expect(0, 42656, '\P{^Block=-	CYRILLIC_Extended_B}', "");
-    Error('\p{Blk=	 CYRILLIC_EXT_B/a/}');
-    Error('\P{Blk=	 CYRILLIC_EXT_B/a/}');
+    Expect(1, 42655, '\p{Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(0, 42655, '\p{^Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(0, 42655, '\P{Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(1, 42655, '\P{^Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(0, 42656, '\p{Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(1, 42656, '\p{^Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(1, 42656, '\P{Block=	 CYRILLIC_EXTENDED_B}', "");
+    Expect(0, 42656, '\P{^Block=	 CYRILLIC_EXTENDED_B}', "");
+    Error('\p{Blk=/a/ 	CYRILLIC_EXT_B}');
+    Error('\P{Blk=/a/ 	CYRILLIC_EXT_B}');
     Expect(1, 42655, '\p{Blk=:\ACyrillic_Ext_B\z:}', "");;
     Expect(0, 42656, '\p{Blk=:\ACyrillic_Ext_B\z:}', "");;
     Expect(1, 42655, '\p{Blk=cyrillicextb}', "");
@@ -9418,16 +9602,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42656, '\P{^Blk=cyrillicextb}', "");
     Expect(1, 42655, '\p{Blk=:\Acyrillicextb\z:}', "");;
     Expect(0, 42656, '\p{Blk=:\Acyrillicextb\z:}', "");;
-    Expect(1, 42655, '\p{Blk:   	 cyrillic_ext_B}', "");
-    Expect(0, 42655, '\p{^Blk:   	 cyrillic_ext_B}', "");
-    Expect(0, 42655, '\P{Blk:   	 cyrillic_ext_B}', "");
-    Expect(1, 42655, '\P{^Blk:   	 cyrillic_ext_B}', "");
-    Expect(0, 42656, '\p{Blk:   	 cyrillic_ext_B}', "");
-    Expect(1, 42656, '\p{^Blk:   	 cyrillic_ext_B}', "");
-    Expect(1, 42656, '\P{Blk:   	 cyrillic_ext_B}', "");
-    Expect(0, 42656, '\P{^Blk:   	 cyrillic_ext_B}', "");
-    Error('\p{Is_Block=/a/- cyrillic_Extended_B}');
-    Error('\P{Is_Block=/a/- cyrillic_Extended_B}');
+    Expect(1, 42655, '\p{Blk= -Cyrillic_EXT_B}', "");
+    Expect(0, 42655, '\p{^Blk= -Cyrillic_EXT_B}', "");
+    Expect(0, 42655, '\P{Blk= -Cyrillic_EXT_B}', "");
+    Expect(1, 42655, '\P{^Blk= -Cyrillic_EXT_B}', "");
+    Expect(0, 42656, '\p{Blk= -Cyrillic_EXT_B}', "");
+    Expect(1, 42656, '\p{^Blk= -Cyrillic_EXT_B}', "");
+    Expect(1, 42656, '\P{Blk= -Cyrillic_EXT_B}', "");
+    Expect(0, 42656, '\P{^Blk= -Cyrillic_EXT_B}', "");
+    Error('\p{Is_Block=_:=Cyrillic_Extended_b}');
+    Error('\P{Is_Block=_:=Cyrillic_Extended_b}');
     Expect(1, 42655, '\p{Is_Block=cyrillicextendedb}', "");
     Expect(0, 42655, '\p{^Is_Block=cyrillicextendedb}', "");
     Expect(0, 42655, '\P{Is_Block=cyrillicextendedb}', "");
@@ -9436,16 +9620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42656, '\p{^Is_Block=cyrillicextendedb}', "");
     Expect(1, 42656, '\P{Is_Block=cyrillicextendedb}', "");
     Expect(0, 42656, '\P{^Is_Block=cyrillicextendedb}', "");
-    Expect(1, 42655, '\p{Is_Block=	-cyrillic_extended_b}', "");
-    Expect(0, 42655, '\p{^Is_Block=	-cyrillic_extended_b}', "");
-    Expect(0, 42655, '\P{Is_Block=	-cyrillic_extended_b}', "");
-    Expect(1, 42655, '\P{^Is_Block=	-cyrillic_extended_b}', "");
-    Expect(0, 42656, '\p{Is_Block=	-cyrillic_extended_b}', "");
-    Expect(1, 42656, '\p{^Is_Block=	-cyrillic_extended_b}', "");
-    Expect(1, 42656, '\P{Is_Block=	-cyrillic_extended_b}', "");
-    Expect(0, 42656, '\P{^Is_Block=	-cyrillic_extended_b}', "");
-    Error('\p{Is_Blk=:=CYRILLIC_Ext_B}');
-    Error('\P{Is_Blk=:=CYRILLIC_Ext_B}');
+    Expect(1, 42655, '\p{Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(0, 42655, '\p{^Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(0, 42655, '\P{Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(1, 42655, '\P{^Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(0, 42656, '\p{Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(1, 42656, '\p{^Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(1, 42656, '\P{Is_Block=-Cyrillic_Extended_B}', "");
+    Expect(0, 42656, '\P{^Is_Block=-Cyrillic_Extended_B}', "");
+    Error('\p{Is_Blk=-:=Cyrillic_EXT_b}');
+    Error('\P{Is_Blk=-:=Cyrillic_EXT_b}');
     Expect(1, 42655, '\p{Is_Blk=cyrillicextb}', "");
     Expect(0, 42655, '\p{^Is_Blk=cyrillicextb}', "");
     Expect(0, 42655, '\P{Is_Blk=cyrillicextb}', "");
@@ -9454,16 +9638,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42656, '\p{^Is_Blk=cyrillicextb}', "");
     Expect(1, 42656, '\P{Is_Blk=cyrillicextb}', "");
     Expect(0, 42656, '\P{^Is_Blk=cyrillicextb}', "");
-    Expect(1, 42655, '\p{Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(0, 42655, '\p{^Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(0, 42655, '\P{Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(1, 42655, '\P{^Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(0, 42656, '\p{Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(1, 42656, '\p{^Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(1, 42656, '\P{Is_Blk=-_cyrillic_Ext_b}', "");
-    Expect(0, 42656, '\P{^Is_Blk=-_cyrillic_Ext_b}', "");
-    Error('\p{Block=-/a/Cyrillic_EXTENDED_C}');
-    Error('\P{Block=-/a/Cyrillic_EXTENDED_C}');
+    Expect(1, 42655, '\p{Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(0, 42655, '\p{^Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(0, 42655, '\P{Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(1, 42655, '\P{^Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(0, 42656, '\p{Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(1, 42656, '\p{^Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(1, 42656, '\P{Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Expect(0, 42656, '\P{^Is_Blk=	-CYRILLIC_EXT_B}', "");
+    Error('\p{Block= -cyrillic_Extended_c/a/}');
+    Error('\P{Block= -cyrillic_Extended_c/a/}');
     Expect(1, 7311, '\p{Block=:\ACyrillic_Extended_C\z:}', "");;
     Expect(0, 7312, '\p{Block=:\ACyrillic_Extended_C\z:}', "");;
     Expect(1, 7311, '\p{Block=cyrillicextendedc}', "");
@@ -9476,16 +9660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7312, '\P{^Block=cyrillicextendedc}', "");
     Expect(1, 7311, '\p{Block=:\Acyrillicextendedc\z:}', "");;
     Expect(0, 7312, '\p{Block=:\Acyrillicextendedc\z:}', "");;
-    Expect(1, 7311, '\p{Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7311, '\p{^Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7311, '\P{Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(1, 7311, '\P{^Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7312, '\p{Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(1, 7312, '\p{^Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(1, 7312, '\P{Block=		Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7312, '\P{^Block=		Cyrillic_EXTENDED_c}', "");
-    Error('\p{Blk=  cyrillic_EXT_C:=}');
-    Error('\P{Blk=  cyrillic_EXT_C:=}');
+    Expect(1, 7311, '\p{Block=__Cyrillic_Extended_C}', "");
+    Expect(0, 7311, '\p{^Block=__Cyrillic_Extended_C}', "");
+    Expect(0, 7311, '\P{Block=__Cyrillic_Extended_C}', "");
+    Expect(1, 7311, '\P{^Block=__Cyrillic_Extended_C}', "");
+    Expect(0, 7312, '\p{Block=__Cyrillic_Extended_C}', "");
+    Expect(1, 7312, '\p{^Block=__Cyrillic_Extended_C}', "");
+    Expect(1, 7312, '\P{Block=__Cyrillic_Extended_C}', "");
+    Expect(0, 7312, '\P{^Block=__Cyrillic_Extended_C}', "");
+    Error('\p{Blk= 	Cyrillic_EXT_c/a/}');
+    Error('\P{Blk= 	Cyrillic_EXT_c/a/}');
     Expect(1, 7311, '\p{Blk=:\ACyrillic_Ext_C\z:}', "");;
     Expect(0, 7312, '\p{Blk=:\ACyrillic_Ext_C\z:}', "");;
     Expect(1, 7311, '\p{Blk=cyrillicextc}', "");
@@ -9498,16 +9682,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7312, '\P{^Blk=cyrillicextc}', "");
     Expect(1, 7311, '\p{Blk=:\Acyrillicextc\z:}', "");;
     Expect(0, 7312, '\p{Blk=:\Acyrillicextc\z:}', "");;
-    Expect(1, 7311, '\p{Blk=__CYRILLIC_EXT_C}', "");
-    Expect(0, 7311, '\p{^Blk=__CYRILLIC_EXT_C}', "");
-    Expect(0, 7311, '\P{Blk=__CYRILLIC_EXT_C}', "");
-    Expect(1, 7311, '\P{^Blk=__CYRILLIC_EXT_C}', "");
-    Expect(0, 7312, '\p{Blk=__CYRILLIC_EXT_C}', "");
-    Expect(1, 7312, '\p{^Blk=__CYRILLIC_EXT_C}', "");
-    Expect(1, 7312, '\P{Blk=__CYRILLIC_EXT_C}', "");
-    Expect(0, 7312, '\P{^Blk=__CYRILLIC_EXT_C}', "");
-    Error('\p{Is_Block= 	Cyrillic_EXTENDED_c:=}');
-    Error('\P{Is_Block= 	Cyrillic_EXTENDED_c:=}');
+    Expect(1, 7311, '\p{Blk=	-Cyrillic_Ext_C}', "");
+    Expect(0, 7311, '\p{^Blk=	-Cyrillic_Ext_C}', "");
+    Expect(0, 7311, '\P{Blk=	-Cyrillic_Ext_C}', "");
+    Expect(1, 7311, '\P{^Blk=	-Cyrillic_Ext_C}', "");
+    Expect(0, 7312, '\p{Blk=	-Cyrillic_Ext_C}', "");
+    Expect(1, 7312, '\p{^Blk=	-Cyrillic_Ext_C}', "");
+    Expect(1, 7312, '\P{Blk=	-Cyrillic_Ext_C}', "");
+    Expect(0, 7312, '\P{^Blk=	-Cyrillic_Ext_C}', "");
+    Error('\p{Is_Block=/a/__CYRILLIC_extended_C}');
+    Error('\P{Is_Block=/a/__CYRILLIC_extended_C}');
     Expect(1, 7311, '\p{Is_Block=cyrillicextendedc}', "");
     Expect(0, 7311, '\p{^Is_Block=cyrillicextendedc}', "");
     Expect(0, 7311, '\P{Is_Block=cyrillicextendedc}', "");
@@ -9516,34 +9700,114 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7312, '\p{^Is_Block=cyrillicextendedc}', "");
     Expect(1, 7312, '\P{Is_Block=cyrillicextendedc}', "");
     Expect(0, 7312, '\P{^Is_Block=cyrillicextendedc}', "");
-    Expect(1, 7311, '\p{Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(0, 7311, '\p{^Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(0, 7311, '\P{Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(1, 7311, '\P{^Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(0, 7312, '\p{Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(1, 7312, '\p{^Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(1, 7312, '\P{Is_Block= Cyrillic_EXTENDED_C}', "");
-    Expect(0, 7312, '\P{^Is_Block= Cyrillic_EXTENDED_C}', "");
-    Error('\p{Is_Blk= :=CYRILLIC_ext_C}');
-    Error('\P{Is_Blk= :=CYRILLIC_ext_C}');
-    Expect(1, 7311, '\p{Is_Blk:   cyrillicextc}', "");
-    Expect(0, 7311, '\p{^Is_Blk:   cyrillicextc}', "");
-    Expect(0, 7311, '\P{Is_Blk:   cyrillicextc}', "");
-    Expect(1, 7311, '\P{^Is_Blk:   cyrillicextc}', "");
-    Expect(0, 7312, '\p{Is_Blk:   cyrillicextc}', "");
-    Expect(1, 7312, '\p{^Is_Blk:   cyrillicextc}', "");
-    Expect(1, 7312, '\P{Is_Blk:   cyrillicextc}', "");
-    Expect(0, 7312, '\P{^Is_Blk:   cyrillicextc}', "");
-    Expect(1, 7311, '\p{Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(0, 7311, '\p{^Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(0, 7311, '\P{Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(1, 7311, '\P{^Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(0, 7312, '\p{Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(1, 7312, '\p{^Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(1, 7312, '\P{Is_Blk=_-cyrillic_Ext_C}', "");
-    Expect(0, 7312, '\P{^Is_Blk=_-cyrillic_Ext_C}', "");
-    Error('\p{Block:_Cyrillic_Supplement:=}');
-    Error('\P{Block:_Cyrillic_Supplement:=}');
+    Expect(1, 7311, '\p{Is_Block=-cyrillic_Extended_C}', "");
+    Expect(0, 7311, '\p{^Is_Block=-cyrillic_Extended_C}', "");
+    Expect(0, 7311, '\P{Is_Block=-cyrillic_Extended_C}', "");
+    Expect(1, 7311, '\P{^Is_Block=-cyrillic_Extended_C}', "");
+    Expect(0, 7312, '\p{Is_Block=-cyrillic_Extended_C}', "");
+    Expect(1, 7312, '\p{^Is_Block=-cyrillic_Extended_C}', "");
+    Expect(1, 7312, '\P{Is_Block=-cyrillic_Extended_C}', "");
+    Expect(0, 7312, '\P{^Is_Block=-cyrillic_Extended_C}', "");
+    Error('\p{Is_Blk= -cyrillic_ext_C/a/}');
+    Error('\P{Is_Blk= -cyrillic_ext_C/a/}');
+    Expect(1, 7311, '\p{Is_Blk=cyrillicextc}', "");
+    Expect(0, 7311, '\p{^Is_Blk=cyrillicextc}', "");
+    Expect(0, 7311, '\P{Is_Blk=cyrillicextc}', "");
+    Expect(1, 7311, '\P{^Is_Blk=cyrillicextc}', "");
+    Expect(0, 7312, '\p{Is_Blk=cyrillicextc}', "");
+    Expect(1, 7312, '\p{^Is_Blk=cyrillicextc}', "");
+    Expect(1, 7312, '\P{Is_Blk=cyrillicextc}', "");
+    Expect(0, 7312, '\P{^Is_Blk=cyrillicextc}', "");
+    Expect(1, 7311, '\p{Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(0, 7311, '\p{^Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(0, 7311, '\P{Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(1, 7311, '\P{^Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(0, 7312, '\p{Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(1, 7312, '\p{^Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(1, 7312, '\P{Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Expect(0, 7312, '\P{^Is_Blk=_-CYRILLIC_Ext_C}', "");
+    Error('\p{Block=:=CYRILLIC_extended_D}');
+    Error('\P{Block=:=CYRILLIC_extended_D}');
+    Expect(1, 123023, '\p{Block=:\ACyrillic_Extended_D\z:}', "");;
+    Expect(0, 123024, '\p{Block=:\ACyrillic_Extended_D\z:}', "");;
+    Expect(1, 123023, '\p{Block=cyrillicextendedd}', "");
+    Expect(0, 123023, '\p{^Block=cyrillicextendedd}', "");
+    Expect(0, 123023, '\P{Block=cyrillicextendedd}', "");
+    Expect(1, 123023, '\P{^Block=cyrillicextendedd}', "");
+    Expect(0, 123024, '\p{Block=cyrillicextendedd}', "");
+    Expect(1, 123024, '\p{^Block=cyrillicextendedd}', "");
+    Expect(1, 123024, '\P{Block=cyrillicextendedd}', "");
+    Expect(0, 123024, '\P{^Block=cyrillicextendedd}', "");
+    Expect(1, 123023, '\p{Block=:\Acyrillicextendedd\z:}', "");;
+    Expect(0, 123024, '\p{Block=:\Acyrillicextendedd\z:}', "");;
+    Expect(1, 123023, '\p{Block=-Cyrillic_Extended_D}', "");
+    Expect(0, 123023, '\p{^Block=-Cyrillic_Extended_D}', "");
+    Expect(0, 123023, '\P{Block=-Cyrillic_Extended_D}', "");
+    Expect(1, 123023, '\P{^Block=-Cyrillic_Extended_D}', "");
+    Expect(0, 123024, '\p{Block=-Cyrillic_Extended_D}', "");
+    Expect(1, 123024, '\p{^Block=-Cyrillic_Extended_D}', "");
+    Expect(1, 123024, '\P{Block=-Cyrillic_Extended_D}', "");
+    Expect(0, 123024, '\P{^Block=-Cyrillic_Extended_D}', "");
+    Error('\p{Blk=:=CYRILLIC_ext_D}');
+    Error('\P{Blk=:=CYRILLIC_ext_D}');
+    Expect(1, 123023, '\p{Blk=:\ACyrillic_Ext_D\z:}', "");;
+    Expect(0, 123024, '\p{Blk=:\ACyrillic_Ext_D\z:}', "");;
+    Expect(1, 123023, '\p{Blk=cyrillicextd}', "");
+    Expect(0, 123023, '\p{^Blk=cyrillicextd}', "");
+    Expect(0, 123023, '\P{Blk=cyrillicextd}', "");
+    Expect(1, 123023, '\P{^Blk=cyrillicextd}', "");
+    Expect(0, 123024, '\p{Blk=cyrillicextd}', "");
+    Expect(1, 123024, '\p{^Blk=cyrillicextd}', "");
+    Expect(1, 123024, '\P{Blk=cyrillicextd}', "");
+    Expect(0, 123024, '\P{^Blk=cyrillicextd}', "");
+    Expect(1, 123023, '\p{Blk=:\Acyrillicextd\z:}', "");;
+    Expect(0, 123024, '\p{Blk=:\Acyrillicextd\z:}', "");;
+    Expect(1, 123023, '\p{Blk=  CYRILLIC_EXT_D}', "");
+    Expect(0, 123023, '\p{^Blk=  CYRILLIC_EXT_D}', "");
+    Expect(0, 123023, '\P{Blk=  CYRILLIC_EXT_D}', "");
+    Expect(1, 123023, '\P{^Blk=  CYRILLIC_EXT_D}', "");
+    Expect(0, 123024, '\p{Blk=  CYRILLIC_EXT_D}', "");
+    Expect(1, 123024, '\p{^Blk=  CYRILLIC_EXT_D}', "");
+    Expect(1, 123024, '\P{Blk=  CYRILLIC_EXT_D}', "");
+    Expect(0, 123024, '\P{^Blk=  CYRILLIC_EXT_D}', "");
+    Error('\p{Is_Block=_/a/Cyrillic_Extended_D}');
+    Error('\P{Is_Block=_/a/Cyrillic_Extended_D}');
+    Expect(1, 123023, '\p{Is_Block=cyrillicextendedd}', "");
+    Expect(0, 123023, '\p{^Is_Block=cyrillicextendedd}', "");
+    Expect(0, 123023, '\P{Is_Block=cyrillicextendedd}', "");
+    Expect(1, 123023, '\P{^Is_Block=cyrillicextendedd}', "");
+    Expect(0, 123024, '\p{Is_Block=cyrillicextendedd}', "");
+    Expect(1, 123024, '\p{^Is_Block=cyrillicextendedd}', "");
+    Expect(1, 123024, '\P{Is_Block=cyrillicextendedd}', "");
+    Expect(0, 123024, '\P{^Is_Block=cyrillicextendedd}', "");
+    Expect(1, 123023, '\p{Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(0, 123023, '\p{^Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(0, 123023, '\P{Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(1, 123023, '\P{^Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(0, 123024, '\p{Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(1, 123024, '\p{^Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(1, 123024, '\P{Is_Block= cyrillic_EXTENDED_D}', "");
+    Expect(0, 123024, '\P{^Is_Block= cyrillic_EXTENDED_D}', "");
+    Error('\p{Is_Blk= :=CYRILLIC_Ext_d}');
+    Error('\P{Is_Blk= :=CYRILLIC_Ext_d}');
+    Expect(1, 123023, '\p{Is_Blk=cyrillicextd}', "");
+    Expect(0, 123023, '\p{^Is_Blk=cyrillicextd}', "");
+    Expect(0, 123023, '\P{Is_Blk=cyrillicextd}', "");
+    Expect(1, 123023, '\P{^Is_Blk=cyrillicextd}', "");
+    Expect(0, 123024, '\p{Is_Blk=cyrillicextd}', "");
+    Expect(1, 123024, '\p{^Is_Blk=cyrillicextd}', "");
+    Expect(1, 123024, '\P{Is_Blk=cyrillicextd}', "");
+    Expect(0, 123024, '\P{^Is_Blk=cyrillicextd}', "");
+    Expect(1, 123023, '\p{Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(0, 123023, '\p{^Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(0, 123023, '\P{Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(1, 123023, '\P{^Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(0, 123024, '\p{Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(1, 123024, '\p{^Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(1, 123024, '\P{Is_Blk=	cyrillic_EXT_D}', "");
+    Expect(0, 123024, '\P{^Is_Blk=	cyrillic_EXT_D}', "");
+    Error('\p{Block=_ cyrillic_Supplement:=}');
+    Error('\P{Block=_ cyrillic_Supplement:=}');
     Expect(1, 1327, '\p{Block=:\ACyrillic_Supplement\z:}', "");;
     Expect(0, 1328, '\p{Block=:\ACyrillic_Supplement\z:}', "");;
     Expect(1, 1327, '\p{Block=cyrillicsupplement}', "");
@@ -9556,38 +9820,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1328, '\P{^Block=cyrillicsupplement}', "");
     Expect(1, 1327, '\p{Block=:\Acyrillicsupplement\z:}', "");;
     Expect(0, 1328, '\p{Block=:\Acyrillicsupplement\z:}', "");;
-    Expect(1, 1327, '\p{Block=	 CYRILLIC_Supplement}', "");
-    Expect(0, 1327, '\p{^Block=	 CYRILLIC_Supplement}', "");
-    Expect(0, 1327, '\P{Block=	 CYRILLIC_Supplement}', "");
-    Expect(1, 1327, '\P{^Block=	 CYRILLIC_Supplement}', "");
-    Expect(0, 1328, '\p{Block=	 CYRILLIC_Supplement}', "");
-    Expect(1, 1328, '\p{^Block=	 CYRILLIC_Supplement}', "");
-    Expect(1, 1328, '\P{Block=	 CYRILLIC_Supplement}', "");
-    Expect(0, 1328, '\P{^Block=	 CYRILLIC_Supplement}', "");
-    Error('\p{Blk=/a/	-Cyrillic_Sup}');
-    Error('\P{Blk=/a/	-Cyrillic_Sup}');
+    Expect(1, 1327, '\p{Block:    Cyrillic_Supplement}', "");
+    Expect(0, 1327, '\p{^Block:    Cyrillic_Supplement}', "");
+    Expect(0, 1327, '\P{Block:    Cyrillic_Supplement}', "");
+    Expect(1, 1327, '\P{^Block:    Cyrillic_Supplement}', "");
+    Expect(0, 1328, '\p{Block:    Cyrillic_Supplement}', "");
+    Expect(1, 1328, '\p{^Block:    Cyrillic_Supplement}', "");
+    Expect(1, 1328, '\P{Block:    Cyrillic_Supplement}', "");
+    Expect(0, 1328, '\P{^Block:    Cyrillic_Supplement}', "");
+    Error('\p{Blk: /a/cyrillic_sup}');
+    Error('\P{Blk: /a/cyrillic_sup}');
     Expect(1, 1327, '\p{Blk=:\ACyrillic_Sup\z:}', "");;
     Expect(0, 1328, '\p{Blk=:\ACyrillic_Sup\z:}', "");;
-    Expect(1, 1327, '\p{Blk=cyrillicsup}', "");
-    Expect(0, 1327, '\p{^Blk=cyrillicsup}', "");
-    Expect(0, 1327, '\P{Blk=cyrillicsup}', "");
-    Expect(1, 1327, '\P{^Blk=cyrillicsup}', "");
-    Expect(0, 1328, '\p{Blk=cyrillicsup}', "");
-    Expect(1, 1328, '\p{^Blk=cyrillicsup}', "");
-    Expect(1, 1328, '\P{Blk=cyrillicsup}', "");
-    Expect(0, 1328, '\P{^Blk=cyrillicsup}', "");
+    Expect(1, 1327, '\p{Blk:   cyrillicsup}', "");
+    Expect(0, 1327, '\p{^Blk:   cyrillicsup}', "");
+    Expect(0, 1327, '\P{Blk:   cyrillicsup}', "");
+    Expect(1, 1327, '\P{^Blk:   cyrillicsup}', "");
+    Expect(0, 1328, '\p{Blk:   cyrillicsup}', "");
+    Expect(1, 1328, '\p{^Blk:   cyrillicsup}', "");
+    Expect(1, 1328, '\P{Blk:   cyrillicsup}', "");
+    Expect(0, 1328, '\P{^Blk:   cyrillicsup}', "");
     Expect(1, 1327, '\p{Blk=:\Acyrillicsup\z:}', "");;
     Expect(0, 1328, '\p{Blk=:\Acyrillicsup\z:}', "");;
-    Expect(1, 1327, '\p{Blk: 	cyrillic_Sup}', "");
-    Expect(0, 1327, '\p{^Blk: 	cyrillic_Sup}', "");
-    Expect(0, 1327, '\P{Blk: 	cyrillic_Sup}', "");
-    Expect(1, 1327, '\P{^Blk: 	cyrillic_Sup}', "");
-    Expect(0, 1328, '\p{Blk: 	cyrillic_Sup}', "");
-    Expect(1, 1328, '\p{^Blk: 	cyrillic_Sup}', "");
-    Expect(1, 1328, '\P{Blk: 	cyrillic_Sup}', "");
-    Expect(0, 1328, '\P{^Blk: 	cyrillic_Sup}', "");
-    Error('\p{Is_Block:-_cyrillic_Supplementary/a/}');
-    Error('\P{Is_Block:-_cyrillic_Supplementary/a/}');
+    Expect(1, 1327, '\p{Blk:-cyrillic_sup}', "");
+    Expect(0, 1327, '\p{^Blk:-cyrillic_sup}', "");
+    Expect(0, 1327, '\P{Blk:-cyrillic_sup}', "");
+    Expect(1, 1327, '\P{^Blk:-cyrillic_sup}', "");
+    Expect(0, 1328, '\p{Blk:-cyrillic_sup}', "");
+    Expect(1, 1328, '\p{^Blk:-cyrillic_sup}', "");
+    Expect(1, 1328, '\P{Blk:-cyrillic_sup}', "");
+    Expect(0, 1328, '\P{^Blk:-cyrillic_sup}', "");
+    Error('\p{Is_Block=_/a/Cyrillic_Supplementary}');
+    Error('\P{Is_Block=_/a/Cyrillic_Supplementary}');
     Expect(1, 1327, '\p{Is_Block=cyrillicsupplementary}', "");
     Expect(0, 1327, '\p{^Is_Block=cyrillicsupplementary}', "");
     Expect(0, 1327, '\P{Is_Block=cyrillicsupplementary}', "");
@@ -9596,16 +9860,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1328, '\p{^Is_Block=cyrillicsupplementary}', "");
     Expect(1, 1328, '\P{Is_Block=cyrillicsupplementary}', "");
     Expect(0, 1328, '\P{^Is_Block=cyrillicsupplementary}', "");
-    Expect(1, 1327, '\p{Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(0, 1327, '\p{^Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(0, 1327, '\P{Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(1, 1327, '\P{^Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(0, 1328, '\p{Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(1, 1328, '\p{^Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(1, 1328, '\P{Is_Block=- Cyrillic_Supplementary}', "");
-    Expect(0, 1328, '\P{^Is_Block=- Cyrillic_Supplementary}', "");
-    Error('\p{Is_Blk=  cyrillic_SUPPLEMENT:=}');
-    Error('\P{Is_Blk=  cyrillic_SUPPLEMENT:=}');
+    Expect(1, 1327, '\p{Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(0, 1327, '\p{^Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(0, 1327, '\P{Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(1, 1327, '\P{^Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(0, 1328, '\p{Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(1, 1328, '\p{^Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(1, 1328, '\P{Is_Block=		Cyrillic_Supplementary}', "");
+    Expect(0, 1328, '\P{^Is_Block=		Cyrillic_Supplementary}', "");
+    Error('\p{Is_Blk=:= Cyrillic_supplement}');
+    Error('\P{Is_Blk=:= Cyrillic_supplement}');
     Expect(1, 1327, '\p{Is_Blk=cyrillicsupplement}', "");
     Expect(0, 1327, '\p{^Is_Blk=cyrillicsupplement}', "");
     Expect(0, 1327, '\P{Is_Blk=cyrillicsupplement}', "");
@@ -9614,16 +9878,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1328, '\p{^Is_Blk=cyrillicsupplement}', "");
     Expect(1, 1328, '\P{Is_Blk=cyrillicsupplement}', "");
     Expect(0, 1328, '\P{^Is_Blk=cyrillicsupplement}', "");
-    Expect(1, 1327, '\p{Is_Blk=_-cyrillic_supplement}', "");
-    Expect(0, 1327, '\p{^Is_Blk=_-cyrillic_supplement}', "");
-    Expect(0, 1327, '\P{Is_Blk=_-cyrillic_supplement}', "");
-    Expect(1, 1327, '\P{^Is_Blk=_-cyrillic_supplement}', "");
-    Expect(0, 1328, '\p{Is_Blk=_-cyrillic_supplement}', "");
-    Expect(1, 1328, '\p{^Is_Blk=_-cyrillic_supplement}', "");
-    Expect(1, 1328, '\P{Is_Blk=_-cyrillic_supplement}', "");
-    Expect(0, 1328, '\P{^Is_Blk=_-cyrillic_supplement}', "");
-    Error('\p{Block=  deseret/a/}');
-    Error('\P{Block=  deseret/a/}');
+    Expect(1, 1327, '\p{Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(0, 1327, '\p{^Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(0, 1327, '\P{Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(1, 1327, '\P{^Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(0, 1328, '\p{Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(1, 1328, '\p{^Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(1, 1328, '\P{Is_Blk=	-Cyrillic_Supplement}', "");
+    Expect(0, 1328, '\P{^Is_Blk=	-Cyrillic_Supplement}', "");
+    Error('\p{Block= /a/Deseret}');
+    Error('\P{Block= /a/Deseret}');
     Expect(1, 66639, '\p{Block=:\ADeseret\z:}', "");;
     Expect(0, 66640, '\p{Block=:\ADeseret\z:}', "");;
     Expect(1, 66639, '\p{Block=deseret}', "");
@@ -9636,16 +9900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66640, '\P{^Block=deseret}', "");
     Expect(1, 66639, '\p{Block=:\Adeseret\z:}', "");;
     Expect(0, 66640, '\p{Block=:\Adeseret\z:}', "");;
-    Expect(1, 66639, '\p{Block=-Deseret}', "");
-    Expect(0, 66639, '\p{^Block=-Deseret}', "");
-    Expect(0, 66639, '\P{Block=-Deseret}', "");
-    Expect(1, 66639, '\P{^Block=-Deseret}', "");
-    Expect(0, 66640, '\p{Block=-Deseret}', "");
-    Expect(1, 66640, '\p{^Block=-Deseret}', "");
-    Expect(1, 66640, '\P{Block=-Deseret}', "");
-    Expect(0, 66640, '\P{^Block=-Deseret}', "");
-    Error('\p{Blk=:=__Deseret}');
-    Error('\P{Blk=:=__Deseret}');
+    Expect(1, 66639, '\p{Block=  Deseret}', "");
+    Expect(0, 66639, '\p{^Block=  Deseret}', "");
+    Expect(0, 66639, '\P{Block=  Deseret}', "");
+    Expect(1, 66639, '\P{^Block=  Deseret}', "");
+    Expect(0, 66640, '\p{Block=  Deseret}', "");
+    Expect(1, 66640, '\p{^Block=  Deseret}', "");
+    Expect(1, 66640, '\P{Block=  Deseret}', "");
+    Expect(0, 66640, '\P{^Block=  Deseret}', "");
+    Error('\p{Blk=/a/Deseret}');
+    Error('\P{Blk=/a/Deseret}');
     Expect(1, 66639, '\p{Blk=:\ADeseret\z:}', "");;
     Expect(0, 66640, '\p{Blk=:\ADeseret\z:}', "");;
     Expect(1, 66639, '\p{Blk=deseret}', "");
@@ -9658,16 +9922,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66640, '\P{^Blk=deseret}', "");
     Expect(1, 66639, '\p{Blk=:\Adeseret\z:}', "");;
     Expect(0, 66640, '\p{Blk=:\Adeseret\z:}', "");;
-    Expect(1, 66639, '\p{Blk=-deseret}', "");
-    Expect(0, 66639, '\p{^Blk=-deseret}', "");
-    Expect(0, 66639, '\P{Blk=-deseret}', "");
-    Expect(1, 66639, '\P{^Blk=-deseret}', "");
-    Expect(0, 66640, '\p{Blk=-deseret}', "");
-    Expect(1, 66640, '\p{^Blk=-deseret}', "");
-    Expect(1, 66640, '\P{Blk=-deseret}', "");
-    Expect(0, 66640, '\P{^Blk=-deseret}', "");
-    Error('\p{Is_Block= deseret:=}');
-    Error('\P{Is_Block= deseret:=}');
+    Expect(1, 66639, '\p{Blk=_Deseret}', "");
+    Expect(0, 66639, '\p{^Blk=_Deseret}', "");
+    Expect(0, 66639, '\P{Blk=_Deseret}', "");
+    Expect(1, 66639, '\P{^Blk=_Deseret}', "");
+    Expect(0, 66640, '\p{Blk=_Deseret}', "");
+    Expect(1, 66640, '\p{^Blk=_Deseret}', "");
+    Expect(1, 66640, '\P{Blk=_Deseret}', "");
+    Expect(0, 66640, '\P{^Blk=_Deseret}', "");
+    Error('\p{Is_Block=/a/-deseret}');
+    Error('\P{Is_Block=/a/-deseret}');
     Expect(1, 66639, '\p{Is_Block=deseret}', "");
     Expect(0, 66639, '\p{^Is_Block=deseret}', "");
     Expect(0, 66639, '\P{Is_Block=deseret}', "");
@@ -9676,16 +9940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66640, '\p{^Is_Block=deseret}', "");
     Expect(1, 66640, '\P{Is_Block=deseret}', "");
     Expect(0, 66640, '\P{^Is_Block=deseret}', "");
-    Expect(1, 66639, '\p{Is_Block=	DESERET}', "");
-    Expect(0, 66639, '\p{^Is_Block=	DESERET}', "");
-    Expect(0, 66639, '\P{Is_Block=	DESERET}', "");
-    Expect(1, 66639, '\P{^Is_Block=	DESERET}', "");
-    Expect(0, 66640, '\p{Is_Block=	DESERET}', "");
-    Expect(1, 66640, '\p{^Is_Block=	DESERET}', "");
-    Expect(1, 66640, '\P{Is_Block=	DESERET}', "");
-    Expect(0, 66640, '\P{^Is_Block=	DESERET}', "");
-    Error('\p{Is_Blk=-:=Deseret}');
-    Error('\P{Is_Blk=-:=Deseret}');
+    Expect(1, 66639, '\p{Is_Block=	 Deseret}', "");
+    Expect(0, 66639, '\p{^Is_Block=	 Deseret}', "");
+    Expect(0, 66639, '\P{Is_Block=	 Deseret}', "");
+    Expect(1, 66639, '\P{^Is_Block=	 Deseret}', "");
+    Expect(0, 66640, '\p{Is_Block=	 Deseret}', "");
+    Expect(1, 66640, '\p{^Is_Block=	 Deseret}', "");
+    Expect(1, 66640, '\P{Is_Block=	 Deseret}', "");
+    Expect(0, 66640, '\P{^Is_Block=	 Deseret}', "");
+    Error('\p{Is_Blk=-Deseret:=}');
+    Error('\P{Is_Blk=-Deseret:=}');
     Expect(1, 66639, '\p{Is_Blk=deseret}', "");
     Expect(0, 66639, '\p{^Is_Blk=deseret}', "");
     Expect(0, 66639, '\P{Is_Blk=deseret}', "");
@@ -9694,60 +9958,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66640, '\p{^Is_Blk=deseret}', "");
     Expect(1, 66640, '\P{Is_Blk=deseret}', "");
     Expect(0, 66640, '\P{^Is_Blk=deseret}', "");
-    Expect(1, 66639, '\p{Is_Blk:   -Deseret}', "");
-    Expect(0, 66639, '\p{^Is_Blk:   -Deseret}', "");
-    Expect(0, 66639, '\P{Is_Blk:   -Deseret}', "");
-    Expect(1, 66639, '\P{^Is_Blk:   -Deseret}', "");
-    Expect(0, 66640, '\p{Is_Blk:   -Deseret}', "");
-    Expect(1, 66640, '\p{^Is_Blk:   -Deseret}', "");
-    Expect(1, 66640, '\P{Is_Blk:   -Deseret}', "");
-    Expect(0, 66640, '\P{^Is_Blk:   -Deseret}', "");
-    Error('\p{Block=_Devanagari:=}');
-    Error('\P{Block=_Devanagari:=}');
+    Expect(1, 66639, '\p{Is_Blk=	Deseret}', "");
+    Expect(0, 66639, '\p{^Is_Blk=	Deseret}', "");
+    Expect(0, 66639, '\P{Is_Blk=	Deseret}', "");
+    Expect(1, 66639, '\P{^Is_Blk=	Deseret}', "");
+    Expect(0, 66640, '\p{Is_Blk=	Deseret}', "");
+    Expect(1, 66640, '\p{^Is_Blk=	Deseret}', "");
+    Expect(1, 66640, '\P{Is_Blk=	Deseret}', "");
+    Expect(0, 66640, '\P{^Is_Blk=	Deseret}', "");
+    Error('\p{Block=:=_-Devanagari}');
+    Error('\P{Block=:=_-Devanagari}');
     Expect(1, 2431, '\p{Block=:\ADevanagari\z:}', "");;
     Expect(0, 2432, '\p{Block=:\ADevanagari\z:}', "");;
-    Expect(1, 2431, '\p{Block=devanagari}', "");
-    Expect(0, 2431, '\p{^Block=devanagari}', "");
-    Expect(0, 2431, '\P{Block=devanagari}', "");
-    Expect(1, 2431, '\P{^Block=devanagari}', "");
-    Expect(0, 2432, '\p{Block=devanagari}', "");
-    Expect(1, 2432, '\p{^Block=devanagari}', "");
-    Expect(1, 2432, '\P{Block=devanagari}', "");
-    Expect(0, 2432, '\P{^Block=devanagari}', "");
+    Expect(1, 2431, '\p{Block: devanagari}', "");
+    Expect(0, 2431, '\p{^Block: devanagari}', "");
+    Expect(0, 2431, '\P{Block: devanagari}', "");
+    Expect(1, 2431, '\P{^Block: devanagari}', "");
+    Expect(0, 2432, '\p{Block: devanagari}', "");
+    Expect(1, 2432, '\p{^Block: devanagari}', "");
+    Expect(1, 2432, '\P{Block: devanagari}', "");
+    Expect(0, 2432, '\P{^Block: devanagari}', "");
     Expect(1, 2431, '\p{Block=:\Adevanagari\z:}', "");;
     Expect(0, 2432, '\p{Block=:\Adevanagari\z:}', "");;
-    Expect(1, 2431, '\p{Block=		devanagari}', "");
-    Expect(0, 2431, '\p{^Block=		devanagari}', "");
-    Expect(0, 2431, '\P{Block=		devanagari}', "");
-    Expect(1, 2431, '\P{^Block=		devanagari}', "");
-    Expect(0, 2432, '\p{Block=		devanagari}', "");
-    Expect(1, 2432, '\p{^Block=		devanagari}', "");
-    Expect(1, 2432, '\P{Block=		devanagari}', "");
-    Expect(0, 2432, '\P{^Block=		devanagari}', "");
-    Error('\p{Blk=	:=Devanagari}');
-    Error('\P{Blk=	:=Devanagari}');
+    Expect(1, 2431, '\p{Block=  Devanagari}', "");
+    Expect(0, 2431, '\p{^Block=  Devanagari}', "");
+    Expect(0, 2431, '\P{Block=  Devanagari}', "");
+    Expect(1, 2431, '\P{^Block=  Devanagari}', "");
+    Expect(0, 2432, '\p{Block=  Devanagari}', "");
+    Expect(1, 2432, '\p{^Block=  Devanagari}', "");
+    Expect(1, 2432, '\P{Block=  Devanagari}', "");
+    Expect(0, 2432, '\P{^Block=  Devanagari}', "");
+    Error('\p{Blk=	/a/DEVANAGARI}');
+    Error('\P{Blk=	/a/DEVANAGARI}');
     Expect(1, 2431, '\p{Blk=:\ADevanagari\z:}', "");;
     Expect(0, 2432, '\p{Blk=:\ADevanagari\z:}', "");;
-    Expect(1, 2431, '\p{Blk=devanagari}', "");
-    Expect(0, 2431, '\p{^Blk=devanagari}', "");
-    Expect(0, 2431, '\P{Blk=devanagari}', "");
-    Expect(1, 2431, '\P{^Blk=devanagari}', "");
-    Expect(0, 2432, '\p{Blk=devanagari}', "");
-    Expect(1, 2432, '\p{^Blk=devanagari}', "");
-    Expect(1, 2432, '\P{Blk=devanagari}', "");
-    Expect(0, 2432, '\P{^Blk=devanagari}', "");
+    Expect(1, 2431, '\p{Blk: devanagari}', "");
+    Expect(0, 2431, '\p{^Blk: devanagari}', "");
+    Expect(0, 2431, '\P{Blk: devanagari}', "");
+    Expect(1, 2431, '\P{^Blk: devanagari}', "");
+    Expect(0, 2432, '\p{Blk: devanagari}', "");
+    Expect(1, 2432, '\p{^Blk: devanagari}', "");
+    Expect(1, 2432, '\P{Blk: devanagari}', "");
+    Expect(0, 2432, '\P{^Blk: devanagari}', "");
     Expect(1, 2431, '\p{Blk=:\Adevanagari\z:}', "");;
     Expect(0, 2432, '\p{Blk=:\Adevanagari\z:}', "");;
-    Expect(1, 2431, '\p{Blk= DEVANAGARI}', "");
-    Expect(0, 2431, '\p{^Blk= DEVANAGARI}', "");
-    Expect(0, 2431, '\P{Blk= DEVANAGARI}', "");
-    Expect(1, 2431, '\P{^Blk= DEVANAGARI}', "");
-    Expect(0, 2432, '\p{Blk= DEVANAGARI}', "");
-    Expect(1, 2432, '\p{^Blk= DEVANAGARI}', "");
-    Expect(1, 2432, '\P{Blk= DEVANAGARI}', "");
-    Expect(0, 2432, '\P{^Blk= DEVANAGARI}', "");
-    Error('\p{Is_Block=	/a/Devanagari}');
-    Error('\P{Is_Block=	/a/Devanagari}');
+    Expect(1, 2431, '\p{Blk=-devanagari}', "");
+    Expect(0, 2431, '\p{^Blk=-devanagari}', "");
+    Expect(0, 2431, '\P{Blk=-devanagari}', "");
+    Expect(1, 2431, '\P{^Blk=-devanagari}', "");
+    Expect(0, 2432, '\p{Blk=-devanagari}', "");
+    Expect(1, 2432, '\p{^Blk=-devanagari}', "");
+    Expect(1, 2432, '\P{Blk=-devanagari}', "");
+    Expect(0, 2432, '\P{^Blk=-devanagari}', "");
+    Error('\p{Is_Block=:=_devanagari}');
+    Error('\P{Is_Block=:=_devanagari}');
     Expect(1, 2431, '\p{Is_Block=devanagari}', "");
     Expect(0, 2431, '\p{^Is_Block=devanagari}', "");
     Expect(0, 2431, '\P{Is_Block=devanagari}', "");
@@ -9756,16 +10020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2432, '\p{^Is_Block=devanagari}', "");
     Expect(1, 2432, '\P{Is_Block=devanagari}', "");
     Expect(0, 2432, '\P{^Is_Block=devanagari}', "");
-    Expect(1, 2431, '\p{Is_Block=__DEVANAGARI}', "");
-    Expect(0, 2431, '\p{^Is_Block=__DEVANAGARI}', "");
-    Expect(0, 2431, '\P{Is_Block=__DEVANAGARI}', "");
-    Expect(1, 2431, '\P{^Is_Block=__DEVANAGARI}', "");
-    Expect(0, 2432, '\p{Is_Block=__DEVANAGARI}', "");
-    Expect(1, 2432, '\p{^Is_Block=__DEVANAGARI}', "");
-    Expect(1, 2432, '\P{Is_Block=__DEVANAGARI}', "");
-    Expect(0, 2432, '\P{^Is_Block=__DEVANAGARI}', "");
-    Error('\p{Is_Blk=	 devanagari:=}');
-    Error('\P{Is_Blk=	 devanagari:=}');
+    Expect(1, 2431, '\p{Is_Block=	 Devanagari}', "");
+    Expect(0, 2431, '\p{^Is_Block=	 Devanagari}', "");
+    Expect(0, 2431, '\P{Is_Block=	 Devanagari}', "");
+    Expect(1, 2431, '\P{^Is_Block=	 Devanagari}', "");
+    Expect(0, 2432, '\p{Is_Block=	 Devanagari}', "");
+    Expect(1, 2432, '\p{^Is_Block=	 Devanagari}', "");
+    Expect(1, 2432, '\P{Is_Block=	 Devanagari}', "");
+    Expect(0, 2432, '\P{^Is_Block=	 Devanagari}', "");
+    Error('\p{Is_Blk=_-Devanagari:=}');
+    Error('\P{Is_Blk=_-Devanagari:=}');
     Expect(1, 2431, '\p{Is_Blk=devanagari}', "");
     Expect(0, 2431, '\p{^Is_Blk=devanagari}', "");
     Expect(0, 2431, '\P{Is_Blk=devanagari}', "");
@@ -9774,16 +10038,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2432, '\p{^Is_Blk=devanagari}', "");
     Expect(1, 2432, '\P{Is_Blk=devanagari}', "");
     Expect(0, 2432, '\P{^Is_Blk=devanagari}', "");
-    Expect(1, 2431, '\p{Is_Blk: _ DEVANAGARI}', "");
-    Expect(0, 2431, '\p{^Is_Blk: _ DEVANAGARI}', "");
-    Expect(0, 2431, '\P{Is_Blk: _ DEVANAGARI}', "");
-    Expect(1, 2431, '\P{^Is_Blk: _ DEVANAGARI}', "");
-    Expect(0, 2432, '\p{Is_Blk: _ DEVANAGARI}', "");
-    Expect(1, 2432, '\p{^Is_Blk: _ DEVANAGARI}', "");
-    Expect(1, 2432, '\P{Is_Blk: _ DEVANAGARI}', "");
-    Expect(0, 2432, '\P{^Is_Blk: _ DEVANAGARI}', "");
-    Error('\p{Block=	:=DEVANAGARI_extended}');
-    Error('\P{Block=	:=DEVANAGARI_extended}');
+    Expect(1, 2431, '\p{Is_Blk=	 Devanagari}', "");
+    Expect(0, 2431, '\p{^Is_Blk=	 Devanagari}', "");
+    Expect(0, 2431, '\P{Is_Blk=	 Devanagari}', "");
+    Expect(1, 2431, '\P{^Is_Blk=	 Devanagari}', "");
+    Expect(0, 2432, '\p{Is_Blk=	 Devanagari}', "");
+    Expect(1, 2432, '\p{^Is_Blk=	 Devanagari}', "");
+    Expect(1, 2432, '\P{Is_Blk=	 Devanagari}', "");
+    Expect(0, 2432, '\P{^Is_Blk=	 Devanagari}', "");
+    Error('\p{Block= 	DEVANAGARI_extended:=}');
+    Error('\P{Block= 	DEVANAGARI_extended:=}');
     Expect(1, 43263, '\p{Block=:\ADevanagari_Extended\z:}', "");;
     Expect(0, 43264, '\p{Block=:\ADevanagari_Extended\z:}', "");;
     Expect(1, 43263, '\p{Block=devanagariextended}', "");
@@ -9796,16 +10060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43264, '\P{^Block=devanagariextended}', "");
     Expect(1, 43263, '\p{Block=:\Adevanagariextended\z:}', "");;
     Expect(0, 43264, '\p{Block=:\Adevanagariextended\z:}', "");;
-    Expect(1, 43263, '\p{Block:-_Devanagari_EXTENDED}', "");
-    Expect(0, 43263, '\p{^Block:-_Devanagari_EXTENDED}', "");
-    Expect(0, 43263, '\P{Block:-_Devanagari_EXTENDED}', "");
-    Expect(1, 43263, '\P{^Block:-_Devanagari_EXTENDED}', "");
-    Expect(0, 43264, '\p{Block:-_Devanagari_EXTENDED}', "");
-    Expect(1, 43264, '\p{^Block:-_Devanagari_EXTENDED}', "");
-    Expect(1, 43264, '\P{Block:-_Devanagari_EXTENDED}', "");
-    Expect(0, 43264, '\P{^Block:-_Devanagari_EXTENDED}', "");
-    Error('\p{Blk: 	-DEVANAGARI_Ext/a/}');
-    Error('\P{Blk: 	-DEVANAGARI_Ext/a/}');
+    Expect(1, 43263, '\p{Block=DEVANAGARI_Extended}', "");
+    Expect(0, 43263, '\p{^Block=DEVANAGARI_Extended}', "");
+    Expect(0, 43263, '\P{Block=DEVANAGARI_Extended}', "");
+    Expect(1, 43263, '\P{^Block=DEVANAGARI_Extended}', "");
+    Expect(0, 43264, '\p{Block=DEVANAGARI_Extended}', "");
+    Expect(1, 43264, '\p{^Block=DEVANAGARI_Extended}', "");
+    Expect(1, 43264, '\P{Block=DEVANAGARI_Extended}', "");
+    Expect(0, 43264, '\P{^Block=DEVANAGARI_Extended}', "");
+    Error('\p{Blk=:= _Devanagari_Ext}');
+    Error('\P{Blk=:= _Devanagari_Ext}');
     Expect(1, 43263, '\p{Blk=:\ADevanagari_Ext\z:}', "");;
     Expect(0, 43264, '\p{Blk=:\ADevanagari_Ext\z:}', "");;
     Expect(1, 43263, '\p{Blk=devanagariext}', "");
@@ -9818,16 +10082,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43264, '\P{^Blk=devanagariext}', "");
     Expect(1, 43263, '\p{Blk=:\Adevanagariext\z:}', "");;
     Expect(0, 43264, '\p{Blk=:\Adevanagariext\z:}', "");;
-    Expect(1, 43263, '\p{Blk=_ DEVANAGARI_Ext}', "");
-    Expect(0, 43263, '\p{^Blk=_ DEVANAGARI_Ext}', "");
-    Expect(0, 43263, '\P{Blk=_ DEVANAGARI_Ext}', "");
-    Expect(1, 43263, '\P{^Blk=_ DEVANAGARI_Ext}', "");
-    Expect(0, 43264, '\p{Blk=_ DEVANAGARI_Ext}', "");
-    Expect(1, 43264, '\p{^Blk=_ DEVANAGARI_Ext}', "");
-    Expect(1, 43264, '\P{Blk=_ DEVANAGARI_Ext}', "");
-    Expect(0, 43264, '\P{^Blk=_ DEVANAGARI_Ext}', "");
-    Error('\p{Is_Block=:= -Devanagari_extended}');
-    Error('\P{Is_Block=:= -Devanagari_extended}');
+    Expect(1, 43263, '\p{Blk=--devanagari_Ext}', "");
+    Expect(0, 43263, '\p{^Blk=--devanagari_Ext}', "");
+    Expect(0, 43263, '\P{Blk=--devanagari_Ext}', "");
+    Expect(1, 43263, '\P{^Blk=--devanagari_Ext}', "");
+    Expect(0, 43264, '\p{Blk=--devanagari_Ext}', "");
+    Expect(1, 43264, '\p{^Blk=--devanagari_Ext}', "");
+    Expect(1, 43264, '\P{Blk=--devanagari_Ext}', "");
+    Expect(0, 43264, '\P{^Blk=--devanagari_Ext}', "");
+    Error('\p{Is_Block=/a/ -Devanagari_Extended}');
+    Error('\P{Is_Block=/a/ -Devanagari_Extended}');
     Expect(1, 43263, '\p{Is_Block=devanagariextended}', "");
     Expect(0, 43263, '\p{^Is_Block=devanagariextended}', "");
     Expect(0, 43263, '\P{Is_Block=devanagariextended}', "");
@@ -9836,16 +10100,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43264, '\p{^Is_Block=devanagariextended}', "");
     Expect(1, 43264, '\P{Is_Block=devanagariextended}', "");
     Expect(0, 43264, '\P{^Is_Block=devanagariextended}', "");
-    Expect(1, 43263, '\p{Is_Block=  Devanagari_Extended}', "");
-    Expect(0, 43263, '\p{^Is_Block=  Devanagari_Extended}', "");
-    Expect(0, 43263, '\P{Is_Block=  Devanagari_Extended}', "");
-    Expect(1, 43263, '\P{^Is_Block=  Devanagari_Extended}', "");
-    Expect(0, 43264, '\p{Is_Block=  Devanagari_Extended}', "");
-    Expect(1, 43264, '\p{^Is_Block=  Devanagari_Extended}', "");
-    Expect(1, 43264, '\P{Is_Block=  Devanagari_Extended}', "");
-    Expect(0, 43264, '\P{^Is_Block=  Devanagari_Extended}', "");
-    Error('\p{Is_Blk: :=Devanagari_Ext}');
-    Error('\P{Is_Blk: :=Devanagari_Ext}');
+    Expect(1, 43263, '\p{Is_Block=Devanagari_EXTENDED}', "");
+    Expect(0, 43263, '\p{^Is_Block=Devanagari_EXTENDED}', "");
+    Expect(0, 43263, '\P{Is_Block=Devanagari_EXTENDED}', "");
+    Expect(1, 43263, '\P{^Is_Block=Devanagari_EXTENDED}', "");
+    Expect(0, 43264, '\p{Is_Block=Devanagari_EXTENDED}', "");
+    Expect(1, 43264, '\p{^Is_Block=Devanagari_EXTENDED}', "");
+    Expect(1, 43264, '\P{Is_Block=Devanagari_EXTENDED}', "");
+    Expect(0, 43264, '\P{^Is_Block=Devanagari_EXTENDED}', "");
+    Error('\p{Is_Blk=-DEVANAGARI_Ext/a/}');
+    Error('\P{Is_Blk=-DEVANAGARI_Ext/a/}');
     Expect(1, 43263, '\p{Is_Blk=devanagariext}', "");
     Expect(0, 43263, '\p{^Is_Blk=devanagariext}', "");
     Expect(0, 43263, '\P{Is_Blk=devanagariext}', "");
@@ -9854,16 +10118,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43264, '\p{^Is_Blk=devanagariext}', "");
     Expect(1, 43264, '\P{Is_Blk=devanagariext}', "");
     Expect(0, 43264, '\P{^Is_Blk=devanagariext}', "");
-    Expect(1, 43263, '\p{Is_Blk=	Devanagari_EXT}', "");
-    Expect(0, 43263, '\p{^Is_Blk=	Devanagari_EXT}', "");
-    Expect(0, 43263, '\P{Is_Blk=	Devanagari_EXT}', "");
-    Expect(1, 43263, '\P{^Is_Blk=	Devanagari_EXT}', "");
-    Expect(0, 43264, '\p{Is_Blk=	Devanagari_EXT}', "");
-    Expect(1, 43264, '\p{^Is_Blk=	Devanagari_EXT}', "");
-    Expect(1, 43264, '\P{Is_Blk=	Devanagari_EXT}', "");
-    Expect(0, 43264, '\P{^Is_Blk=	Devanagari_EXT}', "");
-    Error('\p{Block:/a/	 COMBINING_DIACRITICAL_MARKS}');
-    Error('\P{Block:/a/	 COMBINING_DIACRITICAL_MARKS}');
+    Expect(1, 43263, '\p{Is_Blk= _Devanagari_Ext}', "");
+    Expect(0, 43263, '\p{^Is_Blk= _Devanagari_Ext}', "");
+    Expect(0, 43263, '\P{Is_Blk= _Devanagari_Ext}', "");
+    Expect(1, 43263, '\P{^Is_Blk= _Devanagari_Ext}', "");
+    Expect(0, 43264, '\p{Is_Blk= _Devanagari_Ext}', "");
+    Expect(1, 43264, '\p{^Is_Blk= _Devanagari_Ext}', "");
+    Expect(1, 43264, '\P{Is_Blk= _Devanagari_Ext}', "");
+    Expect(0, 43264, '\P{^Is_Blk= _Devanagari_Ext}', "");
+    Error('\p{Block=Devanagari_extended_A/a/}');
+    Error('\P{Block=Devanagari_extended_A/a/}');
+    Expect(1, 72543, '\p{Block=:\ADevanagari_Extended_A\z:}', "");;
+    Expect(0, 72544, '\p{Block=:\ADevanagari_Extended_A\z:}', "");;
+    Expect(1, 72543, '\p{Block: devanagariextendeda}', "");
+    Expect(0, 72543, '\p{^Block: devanagariextendeda}', "");
+    Expect(0, 72543, '\P{Block: devanagariextendeda}', "");
+    Expect(1, 72543, '\P{^Block: devanagariextendeda}', "");
+    Expect(0, 72544, '\p{Block: devanagariextendeda}', "");
+    Expect(1, 72544, '\p{^Block: devanagariextendeda}', "");
+    Expect(1, 72544, '\P{Block: devanagariextendeda}', "");
+    Expect(0, 72544, '\P{^Block: devanagariextendeda}', "");
+    Expect(1, 72543, '\p{Block=:\Adevanagariextendeda\z:}', "");;
+    Expect(0, 72544, '\p{Block=:\Adevanagariextendeda\z:}', "");;
+    Expect(1, 72543, '\p{Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(0, 72543, '\p{^Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(0, 72543, '\P{Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(1, 72543, '\P{^Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(0, 72544, '\p{Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(1, 72544, '\p{^Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(1, 72544, '\P{Block=	_DEVANAGARI_Extended_A}', "");
+    Expect(0, 72544, '\P{^Block=	_DEVANAGARI_Extended_A}', "");
+    Error('\p{Blk=	 DEVANAGARI_Ext_A/a/}');
+    Error('\P{Blk=	 DEVANAGARI_Ext_A/a/}');
+    Expect(1, 72543, '\p{Blk=:\ADevanagari_Ext_A\z:}', "");;
+    Expect(0, 72544, '\p{Blk=:\ADevanagari_Ext_A\z:}', "");;
+    Expect(1, 72543, '\p{Blk=devanagariexta}', "");
+    Expect(0, 72543, '\p{^Blk=devanagariexta}', "");
+    Expect(0, 72543, '\P{Blk=devanagariexta}', "");
+    Expect(1, 72543, '\P{^Blk=devanagariexta}', "");
+    Expect(0, 72544, '\p{Blk=devanagariexta}', "");
+    Expect(1, 72544, '\p{^Blk=devanagariexta}', "");
+    Expect(1, 72544, '\P{Blk=devanagariexta}', "");
+    Expect(0, 72544, '\P{^Blk=devanagariexta}', "");
+    Expect(1, 72543, '\p{Blk=:\Adevanagariexta\z:}', "");;
+    Expect(0, 72544, '\p{Blk=:\Adevanagariexta\z:}', "");;
+    Expect(1, 72543, '\p{Blk=	DEVANAGARI_ext_A}', "");
+    Expect(0, 72543, '\p{^Blk=	DEVANAGARI_ext_A}', "");
+    Expect(0, 72543, '\P{Blk=	DEVANAGARI_ext_A}', "");
+    Expect(1, 72543, '\P{^Blk=	DEVANAGARI_ext_A}', "");
+    Expect(0, 72544, '\p{Blk=	DEVANAGARI_ext_A}', "");
+    Expect(1, 72544, '\p{^Blk=	DEVANAGARI_ext_A}', "");
+    Expect(1, 72544, '\P{Blk=	DEVANAGARI_ext_A}', "");
+    Expect(0, 72544, '\P{^Blk=	DEVANAGARI_ext_A}', "");
+    Error('\p{Is_Block=	/a/DEVANAGARI_Extended_a}');
+    Error('\P{Is_Block=	/a/DEVANAGARI_Extended_a}');
+    Expect(1, 72543, '\p{Is_Block:   devanagariextendeda}', "");
+    Expect(0, 72543, '\p{^Is_Block:   devanagariextendeda}', "");
+    Expect(0, 72543, '\P{Is_Block:   devanagariextendeda}', "");
+    Expect(1, 72543, '\P{^Is_Block:   devanagariextendeda}', "");
+    Expect(0, 72544, '\p{Is_Block:   devanagariextendeda}', "");
+    Expect(1, 72544, '\p{^Is_Block:   devanagariextendeda}', "");
+    Expect(1, 72544, '\P{Is_Block:   devanagariextendeda}', "");
+    Expect(0, 72544, '\P{^Is_Block:   devanagariextendeda}', "");
+    Expect(1, 72543, '\p{Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(0, 72543, '\p{^Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(0, 72543, '\P{Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(1, 72543, '\P{^Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(0, 72544, '\p{Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(1, 72544, '\p{^Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(1, 72544, '\P{Is_Block=-	Devanagari_Extended_A}', "");
+    Expect(0, 72544, '\P{^Is_Block=-	Devanagari_Extended_A}', "");
+    Error('\p{Is_Blk=_devanagari_EXT_A:=}');
+    Error('\P{Is_Blk=_devanagari_EXT_A:=}');
+    Expect(1, 72543, '\p{Is_Blk=devanagariexta}', "");
+    Expect(0, 72543, '\p{^Is_Blk=devanagariexta}', "");
+    Expect(0, 72543, '\P{Is_Blk=devanagariexta}', "");
+    Expect(1, 72543, '\P{^Is_Blk=devanagariexta}', "");
+    Expect(0, 72544, '\p{Is_Blk=devanagariexta}', "");
+    Expect(1, 72544, '\p{^Is_Blk=devanagariexta}', "");
+    Expect(1, 72544, '\P{Is_Blk=devanagariexta}', "");
+    Expect(0, 72544, '\P{^Is_Blk=devanagariexta}', "");
+    Expect(1, 72543, '\p{Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(0, 72543, '\p{^Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(0, 72543, '\P{Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(1, 72543, '\P{^Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(0, 72544, '\p{Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(1, 72544, '\p{^Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(1, 72544, '\P{Is_Blk= 	Devanagari_EXT_A}', "");
+    Expect(0, 72544, '\P{^Is_Blk= 	Devanagari_EXT_A}', "");
+    Error('\p{Block=_/a/Combining_diacritical_MARKS}');
+    Error('\P{Block=_/a/Combining_diacritical_MARKS}');
     Expect(1, 879, '\p{Block=:\ACombining_Diacritical_Marks\z:}', "");;
     Expect(0, 880, '\p{Block=:\ACombining_Diacritical_Marks\z:}', "");;
     Expect(1, 879, '\p{Block=combiningdiacriticalmarks}', "");
@@ -9876,38 +10220,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 880, '\P{^Block=combiningdiacriticalmarks}', "");
     Expect(1, 879, '\p{Block=:\Acombiningdiacriticalmarks\z:}', "");;
     Expect(0, 880, '\p{Block=:\Acombiningdiacriticalmarks\z:}', "");;
-    Expect(1, 879, '\p{Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(0, 879, '\p{^Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(0, 879, '\P{Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(1, 879, '\P{^Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(0, 880, '\p{Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(1, 880, '\p{^Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(1, 880, '\P{Block=  combining_DIACRITICAL_MARKS}', "");
-    Expect(0, 880, '\P{^Block=  combining_DIACRITICAL_MARKS}', "");
-    Error('\p{Blk=:=Diacriticals}');
-    Error('\P{Blk=:=Diacriticals}');
+    Expect(1, 879, '\p{Block=_Combining_Diacritical_marks}', "");
+    Expect(0, 879, '\p{^Block=_Combining_Diacritical_marks}', "");
+    Expect(0, 879, '\P{Block=_Combining_Diacritical_marks}', "");
+    Expect(1, 879, '\P{^Block=_Combining_Diacritical_marks}', "");
+    Expect(0, 880, '\p{Block=_Combining_Diacritical_marks}', "");
+    Expect(1, 880, '\p{^Block=_Combining_Diacritical_marks}', "");
+    Expect(1, 880, '\P{Block=_Combining_Diacritical_marks}', "");
+    Expect(0, 880, '\P{^Block=_Combining_Diacritical_marks}', "");
+    Error('\p{Blk:    :=diacriticals}');
+    Error('\P{Blk:    :=diacriticals}');
     Expect(1, 879, '\p{Blk=:\ADiacriticals\z:}', "");;
     Expect(0, 880, '\p{Blk=:\ADiacriticals\z:}', "");;
-    Expect(1, 879, '\p{Blk=diacriticals}', "");
-    Expect(0, 879, '\p{^Blk=diacriticals}', "");
-    Expect(0, 879, '\P{Blk=diacriticals}', "");
-    Expect(1, 879, '\P{^Blk=diacriticals}', "");
-    Expect(0, 880, '\p{Blk=diacriticals}', "");
-    Expect(1, 880, '\p{^Blk=diacriticals}', "");
-    Expect(1, 880, '\P{Blk=diacriticals}', "");
-    Expect(0, 880, '\P{^Blk=diacriticals}', "");
+    Expect(1, 879, '\p{Blk: diacriticals}', "");
+    Expect(0, 879, '\p{^Blk: diacriticals}', "");
+    Expect(0, 879, '\P{Blk: diacriticals}', "");
+    Expect(1, 879, '\P{^Blk: diacriticals}', "");
+    Expect(0, 880, '\p{Blk: diacriticals}', "");
+    Expect(1, 880, '\p{^Blk: diacriticals}', "");
+    Expect(1, 880, '\P{Blk: diacriticals}', "");
+    Expect(0, 880, '\P{^Blk: diacriticals}', "");
     Expect(1, 879, '\p{Blk=:\Adiacriticals\z:}', "");;
     Expect(0, 880, '\p{Blk=:\Adiacriticals\z:}', "");;
-    Expect(1, 879, '\p{Blk=_diacriticals}', "");
-    Expect(0, 879, '\p{^Blk=_diacriticals}', "");
-    Expect(0, 879, '\P{Blk=_diacriticals}', "");
-    Expect(1, 879, '\P{^Blk=_diacriticals}', "");
-    Expect(0, 880, '\p{Blk=_diacriticals}', "");
-    Expect(1, 880, '\p{^Blk=_diacriticals}', "");
-    Expect(1, 880, '\P{Blk=_diacriticals}', "");
-    Expect(0, 880, '\P{^Blk=_diacriticals}', "");
-    Error('\p{Is_Block=/a/Combining_Diacritical_Marks}');
-    Error('\P{Is_Block=/a/Combining_Diacritical_Marks}');
+    Expect(1, 879, '\p{Blk=	_DIACRITICALS}', "");
+    Expect(0, 879, '\p{^Blk=	_DIACRITICALS}', "");
+    Expect(0, 879, '\P{Blk=	_DIACRITICALS}', "");
+    Expect(1, 879, '\P{^Blk=	_DIACRITICALS}', "");
+    Expect(0, 880, '\p{Blk=	_DIACRITICALS}', "");
+    Expect(1, 880, '\p{^Blk=	_DIACRITICALS}', "");
+    Expect(1, 880, '\P{Blk=	_DIACRITICALS}', "");
+    Expect(0, 880, '\P{^Blk=	_DIACRITICALS}', "");
+    Error('\p{Is_Block=_/a/combining_Diacritical_marks}');
+    Error('\P{Is_Block=_/a/combining_Diacritical_marks}');
     Expect(1, 879, '\p{Is_Block=combiningdiacriticalmarks}', "");
     Expect(0, 879, '\p{^Is_Block=combiningdiacriticalmarks}', "");
     Expect(0, 879, '\P{Is_Block=combiningdiacriticalmarks}', "");
@@ -9916,16 +10260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 880, '\p{^Is_Block=combiningdiacriticalmarks}', "");
     Expect(1, 880, '\P{Is_Block=combiningdiacriticalmarks}', "");
     Expect(0, 880, '\P{^Is_Block=combiningdiacriticalmarks}', "");
-    Expect(1, 879, '\p{Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(0, 879, '\p{^Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(0, 879, '\P{Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(1, 879, '\P{^Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(0, 880, '\p{Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(1, 880, '\p{^Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(1, 880, '\P{Is_Block: -COMBINING_diacritical_marks}', "");
-    Expect(0, 880, '\P{^Is_Block: -COMBINING_diacritical_marks}', "");
-    Error('\p{Is_Blk=/a/diacriticals}');
-    Error('\P{Is_Blk=/a/diacriticals}');
+    Expect(1, 879, '\p{Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(0, 879, '\p{^Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(0, 879, '\P{Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(1, 879, '\P{^Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(0, 880, '\p{Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(1, 880, '\p{^Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(1, 880, '\P{Is_Block=_-Combining_Diacritical_Marks}', "");
+    Expect(0, 880, '\P{^Is_Block=_-Combining_Diacritical_Marks}', "");
+    Error('\p{Is_Blk= Diacriticals:=}');
+    Error('\P{Is_Blk= Diacriticals:=}');
     Expect(1, 879, '\p{Is_Blk=diacriticals}', "");
     Expect(0, 879, '\p{^Is_Blk=diacriticals}', "");
     Expect(0, 879, '\P{Is_Blk=diacriticals}', "");
@@ -9934,16 +10278,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 880, '\p{^Is_Blk=diacriticals}', "");
     Expect(1, 880, '\P{Is_Blk=diacriticals}', "");
     Expect(0, 880, '\P{^Is_Blk=diacriticals}', "");
-    Expect(1, 879, '\p{Is_Blk= 	Diacriticals}', "");
-    Expect(0, 879, '\p{^Is_Blk= 	Diacriticals}', "");
-    Expect(0, 879, '\P{Is_Blk= 	Diacriticals}', "");
-    Expect(1, 879, '\P{^Is_Blk= 	Diacriticals}', "");
-    Expect(0, 880, '\p{Is_Blk= 	Diacriticals}', "");
-    Expect(1, 880, '\p{^Is_Blk= 	Diacriticals}', "");
-    Expect(1, 880, '\P{Is_Blk= 	Diacriticals}', "");
-    Expect(0, 880, '\P{^Is_Blk= 	Diacriticals}', "");
-    Error('\p{Block=_-COMBINING_Diacritical_Marks_Extended/a/}');
-    Error('\P{Block=_-COMBINING_Diacritical_Marks_Extended/a/}');
+    Expect(1, 879, '\p{Is_Blk= Diacriticals}', "");
+    Expect(0, 879, '\p{^Is_Blk= Diacriticals}', "");
+    Expect(0, 879, '\P{Is_Blk= Diacriticals}', "");
+    Expect(1, 879, '\P{^Is_Blk= Diacriticals}', "");
+    Expect(0, 880, '\p{Is_Blk= Diacriticals}', "");
+    Expect(1, 880, '\p{^Is_Blk= Diacriticals}', "");
+    Expect(1, 880, '\P{Is_Blk= Diacriticals}', "");
+    Expect(0, 880, '\P{^Is_Blk= Diacriticals}', "");
+    Error('\p{Block:  /a/combining_Diacritical_Marks_extended}');
+    Error('\P{Block:  /a/combining_Diacritical_Marks_extended}');
     Expect(1, 6911, '\p{Block=:\ACombining_Diacritical_Marks_Extended\z:}', "");;
     Expect(0, 6912, '\p{Block=:\ACombining_Diacritical_Marks_Extended\z:}', "");;
     Expect(1, 6911, '\p{Block=combiningdiacriticalmarksextended}', "");
@@ -9956,38 +10300,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6912, '\P{^Block=combiningdiacriticalmarksextended}', "");
     Expect(1, 6911, '\p{Block=:\Acombiningdiacriticalmarksextended\z:}', "");;
     Expect(0, 6912, '\p{Block=:\Acombiningdiacriticalmarksextended\z:}', "");;
-    Expect(1, 6911, '\p{Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(0, 6911, '\p{^Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(0, 6911, '\P{Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(1, 6911, '\P{^Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(0, 6912, '\p{Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(1, 6912, '\p{^Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(1, 6912, '\P{Block= combining_Diacritical_MARKS_extended}', "");
-    Expect(0, 6912, '\P{^Block= combining_Diacritical_MARKS_extended}', "");
-    Error('\p{Blk=/a/-Diacriticals_ext}');
-    Error('\P{Blk=/a/-Diacriticals_ext}');
+    Expect(1, 6911, '\p{Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(0, 6911, '\p{^Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(0, 6911, '\P{Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(1, 6911, '\P{^Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(0, 6912, '\p{Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(1, 6912, '\p{^Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(1, 6912, '\P{Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Expect(0, 6912, '\P{^Block=-COMBINING_Diacritical_Marks_extended}', "");
+    Error('\p{Blk=	/a/Diacriticals_EXT}');
+    Error('\P{Blk=	/a/Diacriticals_EXT}');
     Expect(1, 6911, '\p{Blk=:\ADiacriticals_Ext\z:}', "");;
     Expect(0, 6912, '\p{Blk=:\ADiacriticals_Ext\z:}', "");;
-    Expect(1, 6911, '\p{Blk:   diacriticalsext}', "");
-    Expect(0, 6911, '\p{^Blk:   diacriticalsext}', "");
-    Expect(0, 6911, '\P{Blk:   diacriticalsext}', "");
-    Expect(1, 6911, '\P{^Blk:   diacriticalsext}', "");
-    Expect(0, 6912, '\p{Blk:   diacriticalsext}', "");
-    Expect(1, 6912, '\p{^Blk:   diacriticalsext}', "");
-    Expect(1, 6912, '\P{Blk:   diacriticalsext}', "");
-    Expect(0, 6912, '\P{^Blk:   diacriticalsext}', "");
+    Expect(1, 6911, '\p{Blk=diacriticalsext}', "");
+    Expect(0, 6911, '\p{^Blk=diacriticalsext}', "");
+    Expect(0, 6911, '\P{Blk=diacriticalsext}', "");
+    Expect(1, 6911, '\P{^Blk=diacriticalsext}', "");
+    Expect(0, 6912, '\p{Blk=diacriticalsext}', "");
+    Expect(1, 6912, '\p{^Blk=diacriticalsext}', "");
+    Expect(1, 6912, '\P{Blk=diacriticalsext}', "");
+    Expect(0, 6912, '\P{^Blk=diacriticalsext}', "");
     Expect(1, 6911, '\p{Blk=:\Adiacriticalsext\z:}', "");;
     Expect(0, 6912, '\p{Blk=:\Adiacriticalsext\z:}', "");;
-    Expect(1, 6911, '\p{Blk=  Diacriticals_EXT}', "");
-    Expect(0, 6911, '\p{^Blk=  Diacriticals_EXT}', "");
-    Expect(0, 6911, '\P{Blk=  Diacriticals_EXT}', "");
-    Expect(1, 6911, '\P{^Blk=  Diacriticals_EXT}', "");
-    Expect(0, 6912, '\p{Blk=  Diacriticals_EXT}', "");
-    Expect(1, 6912, '\p{^Blk=  Diacriticals_EXT}', "");
-    Expect(1, 6912, '\P{Blk=  Diacriticals_EXT}', "");
-    Expect(0, 6912, '\P{^Blk=  Diacriticals_EXT}', "");
-    Error('\p{Is_Block=/a/_	Combining_diacritical_Marks_Extended}');
-    Error('\P{Is_Block=/a/_	Combining_diacritical_Marks_Extended}');
+    Expect(1, 6911, '\p{Blk=_-Diacriticals_EXT}', "");
+    Expect(0, 6911, '\p{^Blk=_-Diacriticals_EXT}', "");
+    Expect(0, 6911, '\P{Blk=_-Diacriticals_EXT}', "");
+    Expect(1, 6911, '\P{^Blk=_-Diacriticals_EXT}', "");
+    Expect(0, 6912, '\p{Blk=_-Diacriticals_EXT}', "");
+    Expect(1, 6912, '\p{^Blk=_-Diacriticals_EXT}', "");
+    Expect(1, 6912, '\P{Blk=_-Diacriticals_EXT}', "");
+    Expect(0, 6912, '\P{^Blk=_-Diacriticals_EXT}', "");
+    Error('\p{Is_Block=--combining_DIACRITICAL_marks_Extended/a/}');
+    Error('\P{Is_Block=--combining_DIACRITICAL_marks_Extended/a/}');
     Expect(1, 6911, '\p{Is_Block=combiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\p{^Is_Block=combiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\P{Is_Block=combiningdiacriticalmarksextended}', "");
@@ -9996,16 +10340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6912, '\p{^Is_Block=combiningdiacriticalmarksextended}', "");
     Expect(1, 6912, '\P{Is_Block=combiningdiacriticalmarksextended}', "");
     Expect(0, 6912, '\P{^Is_Block=combiningdiacriticalmarksextended}', "");
-    Expect(1, 6911, '\p{Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(0, 6911, '\p{^Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(0, 6911, '\P{Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(1, 6911, '\P{^Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(0, 6912, '\p{Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(1, 6912, '\p{^Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(1, 6912, '\P{Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Expect(0, 6912, '\P{^Is_Block=- combining_diacritical_MARKS_extended}', "");
-    Error('\p{Is_Blk=:=diacriticals_Ext}');
-    Error('\P{Is_Blk=:=diacriticals_Ext}');
+    Expect(1, 6911, '\p{Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(0, 6911, '\p{^Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(0, 6911, '\P{Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(1, 6911, '\P{^Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(0, 6912, '\p{Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(1, 6912, '\p{^Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(1, 6912, '\P{Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Expect(0, 6912, '\P{^Is_Block=  COMBINING_diacritical_Marks_Extended}', "");
+    Error('\p{Is_Blk=-DIACRITICALS_ext/a/}');
+    Error('\P{Is_Blk=-DIACRITICALS_ext/a/}');
     Expect(1, 6911, '\p{Is_Blk=diacriticalsext}', "");
     Expect(0, 6911, '\p{^Is_Blk=diacriticalsext}', "");
     Expect(0, 6911, '\P{Is_Blk=diacriticalsext}', "");
@@ -10014,16 +10358,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6912, '\p{^Is_Blk=diacriticalsext}', "");
     Expect(1, 6912, '\P{Is_Blk=diacriticalsext}', "");
     Expect(0, 6912, '\P{^Is_Blk=diacriticalsext}', "");
-    Expect(1, 6911, '\p{Is_Blk=Diacriticals_Ext}', "");
-    Expect(0, 6911, '\p{^Is_Blk=Diacriticals_Ext}', "");
-    Expect(0, 6911, '\P{Is_Blk=Diacriticals_Ext}', "");
-    Expect(1, 6911, '\P{^Is_Blk=Diacriticals_Ext}', "");
-    Expect(0, 6912, '\p{Is_Blk=Diacriticals_Ext}', "");
-    Expect(1, 6912, '\p{^Is_Blk=Diacriticals_Ext}', "");
-    Expect(1, 6912, '\P{Is_Blk=Diacriticals_Ext}', "");
-    Expect(0, 6912, '\P{^Is_Blk=Diacriticals_Ext}', "");
-    Error('\p{Block: :=Combining_DIACRITICAL_Marks_for_Symbols}');
-    Error('\P{Block: :=Combining_DIACRITICAL_Marks_for_Symbols}');
+    Expect(1, 6911, '\p{Is_Blk=-Diacriticals_ext}', "");
+    Expect(0, 6911, '\p{^Is_Blk=-Diacriticals_ext}', "");
+    Expect(0, 6911, '\P{Is_Blk=-Diacriticals_ext}', "");
+    Expect(1, 6911, '\P{^Is_Blk=-Diacriticals_ext}', "");
+    Expect(0, 6912, '\p{Is_Blk=-Diacriticals_ext}', "");
+    Expect(1, 6912, '\p{^Is_Blk=-Diacriticals_ext}', "");
+    Expect(1, 6912, '\P{Is_Blk=-Diacriticals_ext}', "");
+    Expect(0, 6912, '\P{^Is_Blk=-Diacriticals_ext}', "");
+    Error('\p{Block=		Combining_Diacritical_Marks_For_SYMBOLS:=}');
+    Error('\P{Block=		Combining_Diacritical_Marks_For_SYMBOLS:=}');
     Expect(1, 8447, '\p{Block=:\ACombining_Diacritical_Marks_For_Symbols\z:}', "");;
     Expect(0, 8448, '\p{Block=:\ACombining_Diacritical_Marks_For_Symbols\z:}', "");;
     Expect(1, 8447, '\p{Block=combiningdiacriticalmarksforsymbols}', "");
@@ -10036,16 +10380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8448, '\P{^Block=combiningdiacriticalmarksforsymbols}', "");
     Expect(1, 8447, '\p{Block=:\Acombiningdiacriticalmarksforsymbols\z:}', "");;
     Expect(0, 8448, '\p{Block=:\Acombiningdiacriticalmarksforsymbols\z:}', "");;
-    Expect(1, 8447, '\p{Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(0, 8447, '\p{^Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(0, 8447, '\P{Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(1, 8447, '\P{^Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(0, 8448, '\p{Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(1, 8448, '\p{^Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(1, 8448, '\P{Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Expect(0, 8448, '\P{^Block=-Combining_DIACRITICAL_MARKS_FOR_Symbols}', "");
-    Error('\p{Blk=/a/ Diacriticals_For_Symbols}');
-    Error('\P{Blk=/a/ Diacriticals_For_Symbols}');
+    Expect(1, 8447, '\p{Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8447, '\p{^Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8447, '\P{Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(1, 8447, '\P{^Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8448, '\p{Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(1, 8448, '\p{^Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(1, 8448, '\P{Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8448, '\P{^Block=_ combining_DIACRITICAL_marks_For_Symbols}', "");
+    Error('\p{Blk=	Diacriticals_For_SYMBOLS:=}');
+    Error('\P{Blk=	Diacriticals_For_SYMBOLS:=}');
     Expect(1, 8447, '\p{Blk=:\ADiacriticals_For_Symbols\z:}', "");;
     Expect(0, 8448, '\p{Blk=:\ADiacriticals_For_Symbols\z:}', "");;
     Expect(1, 8447, '\p{Blk=diacriticalsforsymbols}', "");
@@ -10058,34 +10402,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8448, '\P{^Blk=diacriticalsforsymbols}', "");
     Expect(1, 8447, '\p{Blk=:\Adiacriticalsforsymbols\z:}', "");;
     Expect(0, 8448, '\p{Blk=:\Adiacriticalsforsymbols\z:}', "");;
-    Expect(1, 8447, '\p{Blk=	Diacriticals_for_Symbols}', "");
-    Expect(0, 8447, '\p{^Blk=	Diacriticals_for_Symbols}', "");
-    Expect(0, 8447, '\P{Blk=	Diacriticals_for_Symbols}', "");
-    Expect(1, 8447, '\P{^Blk=	Diacriticals_for_Symbols}', "");
-    Expect(0, 8448, '\p{Blk=	Diacriticals_for_Symbols}', "");
-    Expect(1, 8448, '\p{^Blk=	Diacriticals_for_Symbols}', "");
-    Expect(1, 8448, '\P{Blk=	Diacriticals_for_Symbols}', "");
-    Expect(0, 8448, '\P{^Blk=	Diacriticals_for_Symbols}', "");
-    Error('\p{Is_Block=/a/-Combining_Marks_FOR_Symbols}');
-    Error('\P{Is_Block=/a/-Combining_Marks_FOR_Symbols}');
-    Expect(1, 8447, '\p{Is_Block=combiningmarksforsymbols}', "");
-    Expect(0, 8447, '\p{^Is_Block=combiningmarksforsymbols}', "");
-    Expect(0, 8447, '\P{Is_Block=combiningmarksforsymbols}', "");
-    Expect(1, 8447, '\P{^Is_Block=combiningmarksforsymbols}', "");
-    Expect(0, 8448, '\p{Is_Block=combiningmarksforsymbols}', "");
-    Expect(1, 8448, '\p{^Is_Block=combiningmarksforsymbols}', "");
-    Expect(1, 8448, '\P{Is_Block=combiningmarksforsymbols}', "");
-    Expect(0, 8448, '\P{^Is_Block=combiningmarksforsymbols}', "");
-    Expect(1, 8447, '\p{Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(0, 8447, '\p{^Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(0, 8447, '\P{Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(1, 8447, '\P{^Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(0, 8448, '\p{Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(1, 8448, '\p{^Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(1, 8448, '\P{Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Expect(0, 8448, '\P{^Is_Block= _combining_Marks_for_SYMBOLS}', "");
-    Error('\p{Is_Blk=-	Combining_Diacritical_Marks_FOR_Symbols/a/}');
-    Error('\P{Is_Blk=-	Combining_Diacritical_Marks_FOR_Symbols/a/}');
+    Expect(1, 8447, '\p{Blk=_	diacriticals_For_Symbols}', "");
+    Expect(0, 8447, '\p{^Blk=_	diacriticals_For_Symbols}', "");
+    Expect(0, 8447, '\P{Blk=_	diacriticals_For_Symbols}', "");
+    Expect(1, 8447, '\P{^Blk=_	diacriticals_For_Symbols}', "");
+    Expect(0, 8448, '\p{Blk=_	diacriticals_For_Symbols}', "");
+    Expect(1, 8448, '\p{^Blk=_	diacriticals_For_Symbols}', "");
+    Expect(1, 8448, '\P{Blk=_	diacriticals_For_Symbols}', "");
+    Expect(0, 8448, '\P{^Blk=_	diacriticals_For_Symbols}', "");
+    Error('\p{Is_Block=-Combining_Marks_for_Symbols:=}');
+    Error('\P{Is_Block=-Combining_Marks_for_Symbols:=}');
+    Expect(1, 8447, '\p{Is_Block: combiningmarksforsymbols}', "");
+    Expect(0, 8447, '\p{^Is_Block: combiningmarksforsymbols}', "");
+    Expect(0, 8447, '\P{Is_Block: combiningmarksforsymbols}', "");
+    Expect(1, 8447, '\P{^Is_Block: combiningmarksforsymbols}', "");
+    Expect(0, 8448, '\p{Is_Block: combiningmarksforsymbols}', "");
+    Expect(1, 8448, '\p{^Is_Block: combiningmarksforsymbols}', "");
+    Expect(1, 8448, '\P{Is_Block: combiningmarksforsymbols}', "");
+    Expect(0, 8448, '\P{^Is_Block: combiningmarksforsymbols}', "");
+    Expect(1, 8447, '\p{Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8447, '\p{^Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8447, '\P{Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(1, 8447, '\P{^Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8448, '\p{Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(1, 8448, '\p{^Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(1, 8448, '\P{Is_Block=Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8448, '\P{^Is_Block=Combining_marks_FOR_Symbols}', "");
+    Error('\p{Is_Blk= :=combining_diacritical_MARKS_for_symbols}');
+    Error('\P{Is_Blk= :=combining_diacritical_MARKS_for_symbols}');
     Expect(1, 8447, '\p{Is_Blk=combiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\p{^Is_Blk=combiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\P{Is_Blk=combiningdiacriticalmarksforsymbols}', "");
@@ -10094,16 +10438,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8448, '\p{^Is_Blk=combiningdiacriticalmarksforsymbols}', "");
     Expect(1, 8448, '\P{Is_Blk=combiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8448, '\P{^Is_Blk=combiningdiacriticalmarksforsymbols}', "");
-    Expect(1, 8447, '\p{Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(0, 8447, '\p{^Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(0, 8447, '\P{Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(1, 8447, '\P{^Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(0, 8448, '\p{Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(1, 8448, '\p{^Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(1, 8448, '\P{Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Expect(0, 8448, '\P{^Is_Blk=_combining_Diacritical_Marks_FOR_Symbols}', "");
-    Error('\p{Block:/a/  combining_Diacritical_MARKS_Supplement}');
-    Error('\P{Block:/a/  combining_Diacritical_MARKS_Supplement}');
+    Expect(1, 8447, '\p{Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(0, 8447, '\p{^Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(0, 8447, '\P{Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(1, 8447, '\P{^Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(0, 8448, '\p{Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(1, 8448, '\p{^Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(1, 8448, '\P{Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Expect(0, 8448, '\P{^Is_Blk=-combining_Diacritical_Marks_For_symbols}', "");
+    Error('\p{Block: 	/a/Combining_Diacritical_MARKS_supplement}');
+    Error('\P{Block: 	/a/Combining_Diacritical_MARKS_supplement}');
     Expect(1, 7679, '\p{Block=:\ACombining_Diacritical_Marks_Supplement\z:}', "");;
     Expect(0, 7680, '\p{Block=:\ACombining_Diacritical_Marks_Supplement\z:}', "");;
     Expect(1, 7679, '\p{Block=combiningdiacriticalmarkssupplement}', "");
@@ -10116,16 +10460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7680, '\P{^Block=combiningdiacriticalmarkssupplement}', "");
     Expect(1, 7679, '\p{Block=:\Acombiningdiacriticalmarkssupplement\z:}', "");;
     Expect(0, 7680, '\p{Block=:\Acombiningdiacriticalmarkssupplement\z:}', "");;
-    Expect(1, 7679, '\p{Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(0, 7679, '\p{^Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(0, 7679, '\P{Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(1, 7679, '\P{^Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(0, 7680, '\p{Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(1, 7680, '\p{^Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(1, 7680, '\P{Block=		Combining_diacritical_Marks_supplement}', "");
-    Expect(0, 7680, '\P{^Block=		Combining_diacritical_Marks_supplement}', "");
-    Error('\p{Blk:   /a/-Diacriticals_SUP}');
-    Error('\P{Blk:   /a/-Diacriticals_SUP}');
+    Expect(1, 7679, '\p{Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(0, 7679, '\p{^Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(0, 7679, '\P{Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(1, 7679, '\P{^Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(0, 7680, '\p{Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(1, 7680, '\p{^Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(1, 7680, '\P{Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Expect(0, 7680, '\P{^Block=--combining_Diacritical_MARKS_Supplement}', "");
+    Error('\p{Blk=_:=Diacriticals_sup}');
+    Error('\P{Blk=_:=Diacriticals_sup}');
     Expect(1, 7679, '\p{Blk=:\ADiacriticals_Sup\z:}', "");;
     Expect(0, 7680, '\p{Blk=:\ADiacriticals_Sup\z:}', "");;
     Expect(1, 7679, '\p{Blk=diacriticalssup}', "");
@@ -10138,16 +10482,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7680, '\P{^Blk=diacriticalssup}', "");
     Expect(1, 7679, '\p{Blk=:\Adiacriticalssup\z:}', "");;
     Expect(0, 7680, '\p{Blk=:\Adiacriticalssup\z:}', "");;
-    Expect(1, 7679, '\p{Blk=- diacriticals_Sup}', "");
-    Expect(0, 7679, '\p{^Blk=- diacriticals_Sup}', "");
-    Expect(0, 7679, '\P{Blk=- diacriticals_Sup}', "");
-    Expect(1, 7679, '\P{^Blk=- diacriticals_Sup}', "");
-    Expect(0, 7680, '\p{Blk=- diacriticals_Sup}', "");
-    Expect(1, 7680, '\p{^Blk=- diacriticals_Sup}', "");
-    Expect(1, 7680, '\P{Blk=- diacriticals_Sup}', "");
-    Expect(0, 7680, '\P{^Blk=- diacriticals_Sup}', "");
-    Error('\p{Is_Block:   /a/Combining_Diacritical_Marks_Supplement}');
-    Error('\P{Is_Block:   /a/Combining_Diacritical_Marks_Supplement}');
+    Expect(1, 7679, '\p{Blk: Diacriticals_sup}', "");
+    Expect(0, 7679, '\p{^Blk: Diacriticals_sup}', "");
+    Expect(0, 7679, '\P{Blk: Diacriticals_sup}', "");
+    Expect(1, 7679, '\P{^Blk: Diacriticals_sup}', "");
+    Expect(0, 7680, '\p{Blk: Diacriticals_sup}', "");
+    Expect(1, 7680, '\p{^Blk: Diacriticals_sup}', "");
+    Expect(1, 7680, '\P{Blk: Diacriticals_sup}', "");
+    Expect(0, 7680, '\P{^Blk: Diacriticals_sup}', "");
+    Error('\p{Is_Block=	combining_diacritical_Marks_Supplement/a/}');
+    Error('\P{Is_Block=	combining_diacritical_Marks_Supplement/a/}');
     Expect(1, 7679, '\p{Is_Block=combiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\p{^Is_Block=combiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\P{Is_Block=combiningdiacriticalmarkssupplement}', "");
@@ -10156,16 +10500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7680, '\p{^Is_Block=combiningdiacriticalmarkssupplement}', "");
     Expect(1, 7680, '\P{Is_Block=combiningdiacriticalmarkssupplement}', "");
     Expect(0, 7680, '\P{^Is_Block=combiningdiacriticalmarkssupplement}', "");
-    Expect(1, 7679, '\p{Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(0, 7679, '\p{^Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(0, 7679, '\P{Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(1, 7679, '\P{^Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(0, 7680, '\p{Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(1, 7680, '\p{^Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(1, 7680, '\P{Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Expect(0, 7680, '\P{^Is_Block=	 COMBINING_diacritical_Marks_Supplement}', "");
-    Error('\p{Is_Blk:   /a/_ Diacriticals_Sup}');
-    Error('\P{Is_Blk:   /a/_ Diacriticals_Sup}');
+    Expect(1, 7679, '\p{Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7679, '\p{^Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7679, '\P{Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(1, 7679, '\P{^Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7680, '\p{Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(1, 7680, '\p{^Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(1, 7680, '\P{Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7680, '\P{^Is_Block=	_Combining_Diacritical_Marks_Supplement}', "");
+    Error('\p{Is_Blk=/a/__DIACRITICALS_Sup}');
+    Error('\P{Is_Blk=/a/__DIACRITICALS_Sup}');
     Expect(1, 7679, '\p{Is_Blk=diacriticalssup}', "");
     Expect(0, 7679, '\p{^Is_Blk=diacriticalssup}', "");
     Expect(0, 7679, '\P{Is_Blk=diacriticalssup}', "");
@@ -10174,16 +10518,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7680, '\p{^Is_Blk=diacriticalssup}', "");
     Expect(1, 7680, '\P{Is_Blk=diacriticalssup}', "");
     Expect(0, 7680, '\P{^Is_Blk=diacriticalssup}', "");
-    Expect(1, 7679, '\p{Is_Blk=  diacriticals_sup}', "");
-    Expect(0, 7679, '\p{^Is_Blk=  diacriticals_sup}', "");
-    Expect(0, 7679, '\P{Is_Blk=  diacriticals_sup}', "");
-    Expect(1, 7679, '\P{^Is_Blk=  diacriticals_sup}', "");
-    Expect(0, 7680, '\p{Is_Blk=  diacriticals_sup}', "");
-    Expect(1, 7680, '\p{^Is_Blk=  diacriticals_sup}', "");
-    Expect(1, 7680, '\P{Is_Blk=  diacriticals_sup}', "");
-    Expect(0, 7680, '\P{^Is_Blk=  diacriticals_sup}', "");
-    Error('\p{Block=-_Dingbats:=}');
-    Error('\P{Block=-_Dingbats:=}');
+    Expect(1, 7679, '\p{Is_Blk=-diacriticals_Sup}', "");
+    Expect(0, 7679, '\p{^Is_Blk=-diacriticals_Sup}', "");
+    Expect(0, 7679, '\P{Is_Blk=-diacriticals_Sup}', "");
+    Expect(1, 7679, '\P{^Is_Blk=-diacriticals_Sup}', "");
+    Expect(0, 7680, '\p{Is_Blk=-diacriticals_Sup}', "");
+    Expect(1, 7680, '\p{^Is_Blk=-diacriticals_Sup}', "");
+    Expect(1, 7680, '\P{Is_Blk=-diacriticals_Sup}', "");
+    Expect(0, 7680, '\P{^Is_Blk=-diacriticals_Sup}', "");
+    Error('\p{Block=:=	-DINGBATS}');
+    Error('\P{Block=:=	-DINGBATS}');
     Expect(1, 10175, '\p{Block=:\ADingbats\z:}', "");;
     Expect(0, 10176, '\p{Block=:\ADingbats\z:}', "");;
     Expect(1, 10175, '\p{Block=dingbats}', "");
@@ -10196,16 +10540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10176, '\P{^Block=dingbats}', "");
     Expect(1, 10175, '\p{Block=:\Adingbats\z:}', "");;
     Expect(0, 10176, '\p{Block=:\Adingbats\z:}', "");;
-    Expect(1, 10175, '\p{Block=- dingbats}', "");
-    Expect(0, 10175, '\p{^Block=- dingbats}', "");
-    Expect(0, 10175, '\P{Block=- dingbats}', "");
-    Expect(1, 10175, '\P{^Block=- dingbats}', "");
-    Expect(0, 10176, '\p{Block=- dingbats}', "");
-    Expect(1, 10176, '\p{^Block=- dingbats}', "");
-    Expect(1, 10176, '\P{Block=- dingbats}', "");
-    Expect(0, 10176, '\P{^Block=- dingbats}', "");
-    Error('\p{Blk=_	Dingbats:=}');
-    Error('\P{Blk=_	Dingbats:=}');
+    Expect(1, 10175, '\p{Block=- Dingbats}', "");
+    Expect(0, 10175, '\p{^Block=- Dingbats}', "");
+    Expect(0, 10175, '\P{Block=- Dingbats}', "");
+    Expect(1, 10175, '\P{^Block=- Dingbats}', "");
+    Expect(0, 10176, '\p{Block=- Dingbats}', "");
+    Expect(1, 10176, '\p{^Block=- Dingbats}', "");
+    Expect(1, 10176, '\P{Block=- Dingbats}', "");
+    Expect(0, 10176, '\P{^Block=- Dingbats}', "");
+    Error('\p{Blk=-DINGBATS/a/}');
+    Error('\P{Blk=-DINGBATS/a/}');
     Expect(1, 10175, '\p{Blk=:\ADingbats\z:}', "");;
     Expect(0, 10176, '\p{Blk=:\ADingbats\z:}', "");;
     Expect(1, 10175, '\p{Blk=dingbats}', "");
@@ -10218,34 +10562,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10176, '\P{^Blk=dingbats}', "");
     Expect(1, 10175, '\p{Blk=:\Adingbats\z:}', "");;
     Expect(0, 10176, '\p{Blk=:\Adingbats\z:}', "");;
-    Expect(1, 10175, '\p{Blk=	DINGBATS}', "");
-    Expect(0, 10175, '\p{^Blk=	DINGBATS}', "");
-    Expect(0, 10175, '\P{Blk=	DINGBATS}', "");
-    Expect(1, 10175, '\P{^Blk=	DINGBATS}', "");
-    Expect(0, 10176, '\p{Blk=	DINGBATS}', "");
-    Expect(1, 10176, '\p{^Blk=	DINGBATS}', "");
-    Expect(1, 10176, '\P{Blk=	DINGBATS}', "");
-    Expect(0, 10176, '\P{^Blk=	DINGBATS}', "");
-    Error('\p{Is_Block:	 DINGBATS/a/}');
-    Error('\P{Is_Block:	 DINGBATS/a/}');
-    Expect(1, 10175, '\p{Is_Block:   dingbats}', "");
-    Expect(0, 10175, '\p{^Is_Block:   dingbats}', "");
-    Expect(0, 10175, '\P{Is_Block:   dingbats}', "");
-    Expect(1, 10175, '\P{^Is_Block:   dingbats}', "");
-    Expect(0, 10176, '\p{Is_Block:   dingbats}', "");
-    Expect(1, 10176, '\p{^Is_Block:   dingbats}', "");
-    Expect(1, 10176, '\P{Is_Block:   dingbats}', "");
-    Expect(0, 10176, '\P{^Is_Block:   dingbats}', "");
-    Expect(1, 10175, '\p{Is_Block=	 Dingbats}', "");
-    Expect(0, 10175, '\p{^Is_Block=	 Dingbats}', "");
-    Expect(0, 10175, '\P{Is_Block=	 Dingbats}', "");
-    Expect(1, 10175, '\P{^Is_Block=	 Dingbats}', "");
-    Expect(0, 10176, '\p{Is_Block=	 Dingbats}', "");
-    Expect(1, 10176, '\p{^Is_Block=	 Dingbats}', "");
-    Expect(1, 10176, '\P{Is_Block=	 Dingbats}', "");
-    Expect(0, 10176, '\P{^Is_Block=	 Dingbats}', "");
-    Error('\p{Is_Blk=	:=Dingbats}');
-    Error('\P{Is_Blk=	:=Dingbats}');
+    Expect(1, 10175, '\p{Blk= -Dingbats}', "");
+    Expect(0, 10175, '\p{^Blk= -Dingbats}', "");
+    Expect(0, 10175, '\P{Blk= -Dingbats}', "");
+    Expect(1, 10175, '\P{^Blk= -Dingbats}', "");
+    Expect(0, 10176, '\p{Blk= -Dingbats}', "");
+    Expect(1, 10176, '\p{^Blk= -Dingbats}', "");
+    Expect(1, 10176, '\P{Blk= -Dingbats}', "");
+    Expect(0, 10176, '\P{^Blk= -Dingbats}', "");
+    Error('\p{Is_Block=DINGBATS:=}');
+    Error('\P{Is_Block=DINGBATS:=}');
+    Expect(1, 10175, '\p{Is_Block=dingbats}', "");
+    Expect(0, 10175, '\p{^Is_Block=dingbats}', "");
+    Expect(0, 10175, '\P{Is_Block=dingbats}', "");
+    Expect(1, 10175, '\P{^Is_Block=dingbats}', "");
+    Expect(0, 10176, '\p{Is_Block=dingbats}', "");
+    Expect(1, 10176, '\p{^Is_Block=dingbats}', "");
+    Expect(1, 10176, '\P{Is_Block=dingbats}', "");
+    Expect(0, 10176, '\P{^Is_Block=dingbats}', "");
+    Expect(1, 10175, '\p{Is_Block=		dingbats}', "");
+    Expect(0, 10175, '\p{^Is_Block=		dingbats}', "");
+    Expect(0, 10175, '\P{Is_Block=		dingbats}', "");
+    Expect(1, 10175, '\P{^Is_Block=		dingbats}', "");
+    Expect(0, 10176, '\p{Is_Block=		dingbats}', "");
+    Expect(1, 10176, '\p{^Is_Block=		dingbats}', "");
+    Expect(1, 10176, '\P{Is_Block=		dingbats}', "");
+    Expect(0, 10176, '\P{^Is_Block=		dingbats}', "");
+    Error('\p{Is_Blk=:=dingbats}');
+    Error('\P{Is_Blk=:=dingbats}');
     Expect(1, 10175, '\p{Is_Blk=dingbats}', "");
     Expect(0, 10175, '\p{^Is_Blk=dingbats}', "");
     Expect(0, 10175, '\P{Is_Blk=dingbats}', "");
@@ -10254,16 +10598,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10176, '\p{^Is_Blk=dingbats}', "");
     Expect(1, 10176, '\P{Is_Blk=dingbats}', "");
     Expect(0, 10176, '\P{^Is_Blk=dingbats}', "");
-    Expect(1, 10175, '\p{Is_Blk= DINGBATS}', "");
-    Expect(0, 10175, '\p{^Is_Blk= DINGBATS}', "");
-    Expect(0, 10175, '\P{Is_Blk= DINGBATS}', "");
-    Expect(1, 10175, '\P{^Is_Blk= DINGBATS}', "");
-    Expect(0, 10176, '\p{Is_Blk= DINGBATS}', "");
-    Expect(1, 10176, '\p{^Is_Blk= DINGBATS}', "");
-    Expect(1, 10176, '\P{Is_Blk= DINGBATS}', "");
-    Expect(0, 10176, '\P{^Is_Blk= DINGBATS}', "");
-    Error('\p{Block=-/a/Dives_AKURU}');
-    Error('\P{Block=-/a/Dives_AKURU}');
+    Expect(1, 10175, '\p{Is_Blk=_dingbats}', "");
+    Expect(0, 10175, '\p{^Is_Blk=_dingbats}', "");
+    Expect(0, 10175, '\P{Is_Blk=_dingbats}', "");
+    Expect(1, 10175, '\P{^Is_Blk=_dingbats}', "");
+    Expect(0, 10176, '\p{Is_Blk=_dingbats}', "");
+    Expect(1, 10176, '\p{^Is_Blk=_dingbats}', "");
+    Expect(1, 10176, '\P{Is_Blk=_dingbats}', "");
+    Expect(0, 10176, '\P{^Is_Blk=_dingbats}', "");
+    Error('\p{Block=/a/-dives_AKURU}');
+    Error('\P{Block=/a/-dives_AKURU}');
     Expect(1, 72031, '\p{Block=:\ADives_Akuru\z:}', "");;
     Expect(0, 72032, '\p{Block=:\ADives_Akuru\z:}', "");;
     Expect(1, 72031, '\p{Block=divesakuru}', "");
@@ -10276,16 +10620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72032, '\P{^Block=divesakuru}', "");
     Expect(1, 72031, '\p{Block=:\Adivesakuru\z:}', "");;
     Expect(0, 72032, '\p{Block=:\Adivesakuru\z:}', "");;
-    Expect(1, 72031, '\p{Block=-	dives_AKURU}', "");
-    Expect(0, 72031, '\p{^Block=-	dives_AKURU}', "");
-    Expect(0, 72031, '\P{Block=-	dives_AKURU}', "");
-    Expect(1, 72031, '\P{^Block=-	dives_AKURU}', "");
-    Expect(0, 72032, '\p{Block=-	dives_AKURU}', "");
-    Expect(1, 72032, '\p{^Block=-	dives_AKURU}', "");
-    Expect(1, 72032, '\P{Block=-	dives_AKURU}', "");
-    Expect(0, 72032, '\P{^Block=-	dives_AKURU}', "");
-    Error('\p{Blk=_/a/Dives_akuru}');
-    Error('\P{Blk=_/a/Dives_akuru}');
+    Expect(1, 72031, '\p{Block:  -Dives_Akuru}', "");
+    Expect(0, 72031, '\p{^Block:  -Dives_Akuru}', "");
+    Expect(0, 72031, '\P{Block:  -Dives_Akuru}', "");
+    Expect(1, 72031, '\P{^Block:  -Dives_Akuru}', "");
+    Expect(0, 72032, '\p{Block:  -Dives_Akuru}', "");
+    Expect(1, 72032, '\p{^Block:  -Dives_Akuru}', "");
+    Expect(1, 72032, '\P{Block:  -Dives_Akuru}', "");
+    Expect(0, 72032, '\P{^Block:  -Dives_Akuru}', "");
+    Error('\p{Blk=:=--DIVES_AKURU}');
+    Error('\P{Blk=:=--DIVES_AKURU}');
     Expect(1, 72031, '\p{Blk=:\ADives_Akuru\z:}', "");;
     Expect(0, 72032, '\p{Blk=:\ADives_Akuru\z:}', "");;
     Expect(1, 72031, '\p{Blk=divesakuru}', "");
@@ -10298,34 +10642,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72032, '\P{^Blk=divesakuru}', "");
     Expect(1, 72031, '\p{Blk=:\Adivesakuru\z:}', "");;
     Expect(0, 72032, '\p{Blk=:\Adivesakuru\z:}', "");;
-    Expect(1, 72031, '\p{Blk= Dives_Akuru}', "");
-    Expect(0, 72031, '\p{^Blk= Dives_Akuru}', "");
-    Expect(0, 72031, '\P{Blk= Dives_Akuru}', "");
-    Expect(1, 72031, '\P{^Blk= Dives_Akuru}', "");
-    Expect(0, 72032, '\p{Blk= Dives_Akuru}', "");
-    Expect(1, 72032, '\p{^Blk= Dives_Akuru}', "");
-    Expect(1, 72032, '\P{Blk= Dives_Akuru}', "");
-    Expect(0, 72032, '\P{^Blk= Dives_Akuru}', "");
-    Error('\p{Is_Block=-/a/DIVES_akuru}');
-    Error('\P{Is_Block=-/a/DIVES_akuru}');
-    Expect(1, 72031, '\p{Is_Block=divesakuru}', "");
-    Expect(0, 72031, '\p{^Is_Block=divesakuru}', "");
-    Expect(0, 72031, '\P{Is_Block=divesakuru}', "");
-    Expect(1, 72031, '\P{^Is_Block=divesakuru}', "");
-    Expect(0, 72032, '\p{Is_Block=divesakuru}', "");
-    Expect(1, 72032, '\p{^Is_Block=divesakuru}', "");
-    Expect(1, 72032, '\P{Is_Block=divesakuru}', "");
-    Expect(0, 72032, '\P{^Is_Block=divesakuru}', "");
-    Expect(1, 72031, '\p{Is_Block=	Dives_Akuru}', "");
-    Expect(0, 72031, '\p{^Is_Block=	Dives_Akuru}', "");
-    Expect(0, 72031, '\P{Is_Block=	Dives_Akuru}', "");
-    Expect(1, 72031, '\P{^Is_Block=	Dives_Akuru}', "");
-    Expect(0, 72032, '\p{Is_Block=	Dives_Akuru}', "");
-    Expect(1, 72032, '\p{^Is_Block=	Dives_Akuru}', "");
-    Expect(1, 72032, '\P{Is_Block=	Dives_Akuru}', "");
-    Expect(0, 72032, '\P{^Is_Block=	Dives_Akuru}', "");
-    Error('\p{Is_Blk=:=_DIVES_Akuru}');
-    Error('\P{Is_Blk=:=_DIVES_Akuru}');
+    Expect(1, 72031, '\p{Blk=_DIVES_Akuru}', "");
+    Expect(0, 72031, '\p{^Blk=_DIVES_Akuru}', "");
+    Expect(0, 72031, '\P{Blk=_DIVES_Akuru}', "");
+    Expect(1, 72031, '\P{^Blk=_DIVES_Akuru}', "");
+    Expect(0, 72032, '\p{Blk=_DIVES_Akuru}', "");
+    Expect(1, 72032, '\p{^Blk=_DIVES_Akuru}', "");
+    Expect(1, 72032, '\P{Blk=_DIVES_Akuru}', "");
+    Expect(0, 72032, '\P{^Blk=_DIVES_Akuru}', "");
+    Error('\p{Is_Block=/a/--DIVES_Akuru}');
+    Error('\P{Is_Block=/a/--DIVES_Akuru}');
+    Expect(1, 72031, '\p{Is_Block:   divesakuru}', "");
+    Expect(0, 72031, '\p{^Is_Block:   divesakuru}', "");
+    Expect(0, 72031, '\P{Is_Block:   divesakuru}', "");
+    Expect(1, 72031, '\P{^Is_Block:   divesakuru}', "");
+    Expect(0, 72032, '\p{Is_Block:   divesakuru}', "");
+    Expect(1, 72032, '\p{^Is_Block:   divesakuru}', "");
+    Expect(1, 72032, '\P{Is_Block:   divesakuru}', "");
+    Expect(0, 72032, '\P{^Is_Block:   divesakuru}', "");
+    Expect(1, 72031, '\p{Is_Block=_Dives_Akuru}', "");
+    Expect(0, 72031, '\p{^Is_Block=_Dives_Akuru}', "");
+    Expect(0, 72031, '\P{Is_Block=_Dives_Akuru}', "");
+    Expect(1, 72031, '\P{^Is_Block=_Dives_Akuru}', "");
+    Expect(0, 72032, '\p{Is_Block=_Dives_Akuru}', "");
+    Expect(1, 72032, '\p{^Is_Block=_Dives_Akuru}', "");
+    Expect(1, 72032, '\P{Is_Block=_Dives_Akuru}', "");
+    Expect(0, 72032, '\P{^Is_Block=_Dives_Akuru}', "");
+    Error('\p{Is_Blk=__DIVES_Akuru/a/}');
+    Error('\P{Is_Blk=__DIVES_Akuru/a/}');
     Expect(1, 72031, '\p{Is_Blk=divesakuru}', "");
     Expect(0, 72031, '\p{^Is_Blk=divesakuru}', "");
     Expect(0, 72031, '\P{Is_Blk=divesakuru}', "");
@@ -10334,16 +10678,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72032, '\p{^Is_Blk=divesakuru}', "");
     Expect(1, 72032, '\P{Is_Blk=divesakuru}', "");
     Expect(0, 72032, '\P{^Is_Blk=divesakuru}', "");
-    Expect(1, 72031, '\p{Is_Blk: DIVES_Akuru}', "");
-    Expect(0, 72031, '\p{^Is_Blk: DIVES_Akuru}', "");
-    Expect(0, 72031, '\P{Is_Blk: DIVES_Akuru}', "");
-    Expect(1, 72031, '\P{^Is_Blk: DIVES_Akuru}', "");
-    Expect(0, 72032, '\p{Is_Blk: DIVES_Akuru}', "");
-    Expect(1, 72032, '\p{^Is_Blk: DIVES_Akuru}', "");
-    Expect(1, 72032, '\P{Is_Blk: DIVES_Akuru}', "");
-    Expect(0, 72032, '\P{^Is_Blk: DIVES_Akuru}', "");
-    Error('\p{Block=:=  Dogra}');
-    Error('\P{Block=:=  Dogra}');
+    Expect(1, 72031, '\p{Is_Blk=	 Dives_Akuru}', "");
+    Expect(0, 72031, '\p{^Is_Blk=	 Dives_Akuru}', "");
+    Expect(0, 72031, '\P{Is_Blk=	 Dives_Akuru}', "");
+    Expect(1, 72031, '\P{^Is_Blk=	 Dives_Akuru}', "");
+    Expect(0, 72032, '\p{Is_Blk=	 Dives_Akuru}', "");
+    Expect(1, 72032, '\p{^Is_Blk=	 Dives_Akuru}', "");
+    Expect(1, 72032, '\P{Is_Blk=	 Dives_Akuru}', "");
+    Expect(0, 72032, '\P{^Is_Blk=	 Dives_Akuru}', "");
+    Error('\p{Block=:=	_Dogra}');
+    Error('\P{Block=:=	_Dogra}');
     Expect(1, 71759, '\p{Block=:\ADogra\z:}', "");;
     Expect(0, 71760, '\p{Block=:\ADogra\z:}', "");;
     Expect(1, 71759, '\p{Block=dogra}', "");
@@ -10356,16 +10700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71760, '\P{^Block=dogra}', "");
     Expect(1, 71759, '\p{Block=:\Adogra\z:}', "");;
     Expect(0, 71760, '\p{Block=:\Adogra\z:}', "");;
-    Expect(1, 71759, '\p{Block: _-DOGRA}', "");
-    Expect(0, 71759, '\p{^Block: _-DOGRA}', "");
-    Expect(0, 71759, '\P{Block: _-DOGRA}', "");
-    Expect(1, 71759, '\P{^Block: _-DOGRA}', "");
-    Expect(0, 71760, '\p{Block: _-DOGRA}', "");
-    Expect(1, 71760, '\p{^Block: _-DOGRA}', "");
-    Expect(1, 71760, '\P{Block: _-DOGRA}', "");
-    Expect(0, 71760, '\P{^Block: _-DOGRA}', "");
-    Error('\p{Blk=:=Dogra}');
-    Error('\P{Blk=:=Dogra}');
+    Expect(1, 71759, '\p{Block= dogra}', "");
+    Expect(0, 71759, '\p{^Block= dogra}', "");
+    Expect(0, 71759, '\P{Block= dogra}', "");
+    Expect(1, 71759, '\P{^Block= dogra}', "");
+    Expect(0, 71760, '\p{Block= dogra}', "");
+    Expect(1, 71760, '\p{^Block= dogra}', "");
+    Expect(1, 71760, '\P{Block= dogra}', "");
+    Expect(0, 71760, '\P{^Block= dogra}', "");
+    Error('\p{Blk= 	dogra/a/}');
+    Error('\P{Blk= 	dogra/a/}');
     Expect(1, 71759, '\p{Blk=:\ADogra\z:}', "");;
     Expect(0, 71760, '\p{Blk=:\ADogra\z:}', "");;
     Expect(1, 71759, '\p{Blk=dogra}', "");
@@ -10378,16 +10722,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71760, '\P{^Blk=dogra}', "");
     Expect(1, 71759, '\p{Blk=:\Adogra\z:}', "");;
     Expect(0, 71760, '\p{Blk=:\Adogra\z:}', "");;
-    Expect(1, 71759, '\p{Blk=		Dogra}', "");
-    Expect(0, 71759, '\p{^Blk=		Dogra}', "");
-    Expect(0, 71759, '\P{Blk=		Dogra}', "");
-    Expect(1, 71759, '\P{^Blk=		Dogra}', "");
-    Expect(0, 71760, '\p{Blk=		Dogra}', "");
-    Expect(1, 71760, '\p{^Blk=		Dogra}', "");
-    Expect(1, 71760, '\P{Blk=		Dogra}', "");
-    Expect(0, 71760, '\P{^Blk=		Dogra}', "");
-    Error('\p{Is_Block= /a/Dogra}');
-    Error('\P{Is_Block= /a/Dogra}');
+    Expect(1, 71759, '\p{Blk=__dogra}', "");
+    Expect(0, 71759, '\p{^Blk=__dogra}', "");
+    Expect(0, 71759, '\P{Blk=__dogra}', "");
+    Expect(1, 71759, '\P{^Blk=__dogra}', "");
+    Expect(0, 71760, '\p{Blk=__dogra}', "");
+    Expect(1, 71760, '\p{^Blk=__dogra}', "");
+    Expect(1, 71760, '\P{Blk=__dogra}', "");
+    Expect(0, 71760, '\P{^Blk=__dogra}', "");
+    Error('\p{Is_Block=_Dogra/a/}');
+    Error('\P{Is_Block=_Dogra/a/}');
     Expect(1, 71759, '\p{Is_Block=dogra}', "");
     Expect(0, 71759, '\p{^Is_Block=dogra}', "");
     Expect(0, 71759, '\P{Is_Block=dogra}', "");
@@ -10396,16 +10740,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71760, '\p{^Is_Block=dogra}', "");
     Expect(1, 71760, '\P{Is_Block=dogra}', "");
     Expect(0, 71760, '\P{^Is_Block=dogra}', "");
-    Expect(1, 71759, '\p{Is_Block=- Dogra}', "");
-    Expect(0, 71759, '\p{^Is_Block=- Dogra}', "");
-    Expect(0, 71759, '\P{Is_Block=- Dogra}', "");
-    Expect(1, 71759, '\P{^Is_Block=- Dogra}', "");
-    Expect(0, 71760, '\p{Is_Block=- Dogra}', "");
-    Expect(1, 71760, '\p{^Is_Block=- Dogra}', "");
-    Expect(1, 71760, '\P{Is_Block=- Dogra}', "");
-    Expect(0, 71760, '\P{^Is_Block=- Dogra}', "");
-    Error('\p{Is_Blk=	-DOGRA:=}');
-    Error('\P{Is_Blk=	-DOGRA:=}');
+    Expect(1, 71759, '\p{Is_Block= dogra}', "");
+    Expect(0, 71759, '\p{^Is_Block= dogra}', "");
+    Expect(0, 71759, '\P{Is_Block= dogra}', "");
+    Expect(1, 71759, '\P{^Is_Block= dogra}', "");
+    Expect(0, 71760, '\p{Is_Block= dogra}', "");
+    Expect(1, 71760, '\p{^Is_Block= dogra}', "");
+    Expect(1, 71760, '\P{Is_Block= dogra}', "");
+    Expect(0, 71760, '\P{^Is_Block= dogra}', "");
+    Error('\p{Is_Blk=_/a/Dogra}');
+    Error('\P{Is_Blk=_/a/Dogra}');
     Expect(1, 71759, '\p{Is_Blk=dogra}', "");
     Expect(0, 71759, '\p{^Is_Blk=dogra}', "");
     Expect(0, 71759, '\P{Is_Blk=dogra}', "");
@@ -10414,16 +10758,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71760, '\p{^Is_Blk=dogra}', "");
     Expect(1, 71760, '\P{Is_Blk=dogra}', "");
     Expect(0, 71760, '\P{^Is_Blk=dogra}', "");
-    Expect(1, 71759, '\p{Is_Blk=_Dogra}', "");
-    Expect(0, 71759, '\p{^Is_Blk=_Dogra}', "");
-    Expect(0, 71759, '\P{Is_Blk=_Dogra}', "");
-    Expect(1, 71759, '\P{^Is_Blk=_Dogra}', "");
-    Expect(0, 71760, '\p{Is_Blk=_Dogra}', "");
-    Expect(1, 71760, '\p{^Is_Blk=_Dogra}', "");
-    Expect(1, 71760, '\P{Is_Blk=_Dogra}', "");
-    Expect(0, 71760, '\P{^Is_Blk=_Dogra}', "");
-    Error('\p{Block=	/a/DOMINO_TILES}');
-    Error('\P{Block=	/a/DOMINO_TILES}');
+    Expect(1, 71759, '\p{Is_Blk=--Dogra}', "");
+    Expect(0, 71759, '\p{^Is_Blk=--Dogra}', "");
+    Expect(0, 71759, '\P{Is_Blk=--Dogra}', "");
+    Expect(1, 71759, '\P{^Is_Blk=--Dogra}', "");
+    Expect(0, 71760, '\p{Is_Blk=--Dogra}', "");
+    Expect(1, 71760, '\p{^Is_Blk=--Dogra}', "");
+    Expect(1, 71760, '\P{Is_Blk=--Dogra}', "");
+    Expect(0, 71760, '\P{^Is_Blk=--Dogra}', "");
+    Error('\p{Block=		Domino_TILES/a/}');
+    Error('\P{Block=		Domino_TILES/a/}');
     Expect(1, 127135, '\p{Block=:\ADomino_Tiles\z:}', "");;
     Expect(0, 127136, '\p{Block=:\ADomino_Tiles\z:}', "");;
     Expect(1, 127135, '\p{Block=dominotiles}', "");
@@ -10436,38 +10780,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127136, '\P{^Block=dominotiles}', "");
     Expect(1, 127135, '\p{Block=:\Adominotiles\z:}', "");;
     Expect(0, 127136, '\p{Block=:\Adominotiles\z:}', "");;
-    Expect(1, 127135, '\p{Block=	 Domino_Tiles}', "");
-    Expect(0, 127135, '\p{^Block=	 Domino_Tiles}', "");
-    Expect(0, 127135, '\P{Block=	 Domino_Tiles}', "");
-    Expect(1, 127135, '\P{^Block=	 Domino_Tiles}', "");
-    Expect(0, 127136, '\p{Block=	 Domino_Tiles}', "");
-    Expect(1, 127136, '\p{^Block=	 Domino_Tiles}', "");
-    Expect(1, 127136, '\P{Block=	 Domino_Tiles}', "");
-    Expect(0, 127136, '\P{^Block=	 Domino_Tiles}', "");
-    Error('\p{Blk=:=__Domino}');
-    Error('\P{Blk=:=__Domino}');
+    Expect(1, 127135, '\p{Block=-Domino_Tiles}', "");
+    Expect(0, 127135, '\p{^Block=-Domino_Tiles}', "");
+    Expect(0, 127135, '\P{Block=-Domino_Tiles}', "");
+    Expect(1, 127135, '\P{^Block=-Domino_Tiles}', "");
+    Expect(0, 127136, '\p{Block=-Domino_Tiles}', "");
+    Expect(1, 127136, '\p{^Block=-Domino_Tiles}', "");
+    Expect(1, 127136, '\P{Block=-Domino_Tiles}', "");
+    Expect(0, 127136, '\P{^Block=-Domino_Tiles}', "");
+    Error('\p{Blk: -/a/Domino}');
+    Error('\P{Blk: -/a/Domino}');
     Expect(1, 127135, '\p{Blk=:\ADomino\z:}', "");;
     Expect(0, 127136, '\p{Blk=:\ADomino\z:}', "");;
-    Expect(1, 127135, '\p{Blk: domino}', "");
-    Expect(0, 127135, '\p{^Blk: domino}', "");
-    Expect(0, 127135, '\P{Blk: domino}', "");
-    Expect(1, 127135, '\P{^Blk: domino}', "");
-    Expect(0, 127136, '\p{Blk: domino}', "");
-    Expect(1, 127136, '\p{^Blk: domino}', "");
-    Expect(1, 127136, '\P{Blk: domino}', "");
-    Expect(0, 127136, '\P{^Blk: domino}', "");
+    Expect(1, 127135, '\p{Blk=domino}', "");
+    Expect(0, 127135, '\p{^Blk=domino}', "");
+    Expect(0, 127135, '\P{Blk=domino}', "");
+    Expect(1, 127135, '\P{^Blk=domino}', "");
+    Expect(0, 127136, '\p{Blk=domino}', "");
+    Expect(1, 127136, '\p{^Blk=domino}', "");
+    Expect(1, 127136, '\P{Blk=domino}', "");
+    Expect(0, 127136, '\P{^Blk=domino}', "");
     Expect(1, 127135, '\p{Blk=:\Adomino\z:}', "");;
     Expect(0, 127136, '\p{Blk=:\Adomino\z:}', "");;
-    Expect(1, 127135, '\p{Blk= Domino}', "");
-    Expect(0, 127135, '\p{^Blk= Domino}', "");
-    Expect(0, 127135, '\P{Blk= Domino}', "");
-    Expect(1, 127135, '\P{^Blk= Domino}', "");
-    Expect(0, 127136, '\p{Blk= Domino}', "");
-    Expect(1, 127136, '\p{^Blk= Domino}', "");
-    Expect(1, 127136, '\P{Blk= Domino}', "");
-    Expect(0, 127136, '\P{^Blk= Domino}', "");
-    Error('\p{Is_Block: := -Domino_Tiles}');
-    Error('\P{Is_Block: := -Domino_Tiles}');
+    Expect(1, 127135, '\p{Blk=	 DOMINO}', "");
+    Expect(0, 127135, '\p{^Blk=	 DOMINO}', "");
+    Expect(0, 127135, '\P{Blk=	 DOMINO}', "");
+    Expect(1, 127135, '\P{^Blk=	 DOMINO}', "");
+    Expect(0, 127136, '\p{Blk=	 DOMINO}', "");
+    Expect(1, 127136, '\p{^Blk=	 DOMINO}', "");
+    Expect(1, 127136, '\P{Blk=	 DOMINO}', "");
+    Expect(0, 127136, '\P{^Blk=	 DOMINO}', "");
+    Error('\p{Is_Block=:=_Domino_tiles}');
+    Error('\P{Is_Block=:=_Domino_tiles}');
     Expect(1, 127135, '\p{Is_Block=dominotiles}', "");
     Expect(0, 127135, '\p{^Is_Block=dominotiles}', "");
     Expect(0, 127135, '\P{Is_Block=dominotiles}', "");
@@ -10476,34 +10820,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127136, '\p{^Is_Block=dominotiles}', "");
     Expect(1, 127136, '\P{Is_Block=dominotiles}', "");
     Expect(0, 127136, '\P{^Is_Block=dominotiles}', "");
-    Expect(1, 127135, '\p{Is_Block= Domino_Tiles}', "");
-    Expect(0, 127135, '\p{^Is_Block= Domino_Tiles}', "");
-    Expect(0, 127135, '\P{Is_Block= Domino_Tiles}', "");
-    Expect(1, 127135, '\P{^Is_Block= Domino_Tiles}', "");
-    Expect(0, 127136, '\p{Is_Block= Domino_Tiles}', "");
-    Expect(1, 127136, '\p{^Is_Block= Domino_Tiles}', "");
-    Expect(1, 127136, '\P{Is_Block= Domino_Tiles}', "");
-    Expect(0, 127136, '\P{^Is_Block= Domino_Tiles}', "");
-    Error('\p{Is_Blk=-	DOMINO:=}');
-    Error('\P{Is_Blk=-	DOMINO:=}');
-    Expect(1, 127135, '\p{Is_Blk=domino}', "");
-    Expect(0, 127135, '\p{^Is_Blk=domino}', "");
-    Expect(0, 127135, '\P{Is_Blk=domino}', "");
-    Expect(1, 127135, '\P{^Is_Blk=domino}', "");
-    Expect(0, 127136, '\p{Is_Blk=domino}', "");
-    Expect(1, 127136, '\p{^Is_Blk=domino}', "");
-    Expect(1, 127136, '\P{Is_Blk=domino}', "");
-    Expect(0, 127136, '\P{^Is_Blk=domino}', "");
-    Expect(1, 127135, '\p{Is_Blk=-	DOMINO}', "");
-    Expect(0, 127135, '\p{^Is_Blk=-	DOMINO}', "");
-    Expect(0, 127135, '\P{Is_Blk=-	DOMINO}', "");
-    Expect(1, 127135, '\P{^Is_Blk=-	DOMINO}', "");
-    Expect(0, 127136, '\p{Is_Blk=-	DOMINO}', "");
-    Expect(1, 127136, '\p{^Is_Blk=-	DOMINO}', "");
-    Expect(1, 127136, '\P{Is_Blk=-	DOMINO}', "");
-    Expect(0, 127136, '\P{^Is_Blk=-	DOMINO}', "");
-    Error('\p{Block=_Duployan:=}');
-    Error('\P{Block=_Duployan:=}');
+    Expect(1, 127135, '\p{Is_Block=  domino_TILES}', "");
+    Expect(0, 127135, '\p{^Is_Block=  domino_TILES}', "");
+    Expect(0, 127135, '\P{Is_Block=  domino_TILES}', "");
+    Expect(1, 127135, '\P{^Is_Block=  domino_TILES}', "");
+    Expect(0, 127136, '\p{Is_Block=  domino_TILES}', "");
+    Expect(1, 127136, '\p{^Is_Block=  domino_TILES}', "");
+    Expect(1, 127136, '\P{Is_Block=  domino_TILES}', "");
+    Expect(0, 127136, '\P{^Is_Block=  domino_TILES}', "");
+    Error('\p{Is_Blk=:=	-Domino}');
+    Error('\P{Is_Blk=:=	-Domino}');
+    Expect(1, 127135, '\p{Is_Blk: domino}', "");
+    Expect(0, 127135, '\p{^Is_Blk: domino}', "");
+    Expect(0, 127135, '\P{Is_Blk: domino}', "");
+    Expect(1, 127135, '\P{^Is_Blk: domino}', "");
+    Expect(0, 127136, '\p{Is_Blk: domino}', "");
+    Expect(1, 127136, '\p{^Is_Blk: domino}', "");
+    Expect(1, 127136, '\P{Is_Blk: domino}', "");
+    Expect(0, 127136, '\P{^Is_Blk: domino}', "");
+    Expect(1, 127135, '\p{Is_Blk=-	Domino}', "");
+    Expect(0, 127135, '\p{^Is_Blk=-	Domino}', "");
+    Expect(0, 127135, '\P{Is_Blk=-	Domino}', "");
+    Expect(1, 127135, '\P{^Is_Blk=-	Domino}', "");
+    Expect(0, 127136, '\p{Is_Blk=-	Domino}', "");
+    Expect(1, 127136, '\p{^Is_Blk=-	Domino}', "");
+    Expect(1, 127136, '\P{Is_Blk=-	Domino}', "");
+    Expect(0, 127136, '\P{^Is_Blk=-	Domino}', "");
+    Error('\p{Block=/a/ _DUPLOYAN}');
+    Error('\P{Block=/a/ _DUPLOYAN}');
     Expect(1, 113823, '\p{Block=:\ADuployan\z:}', "");;
     Expect(0, 113824, '\p{Block=:\ADuployan\z:}', "");;
     Expect(1, 113823, '\p{Block=duployan}', "");
@@ -10516,38 +10860,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 113824, '\P{^Block=duployan}', "");
     Expect(1, 113823, '\p{Block=:\Aduployan\z:}', "");;
     Expect(0, 113824, '\p{Block=:\Aduployan\z:}', "");;
-    Expect(1, 113823, '\p{Block=-	duployan}', "");
-    Expect(0, 113823, '\p{^Block=-	duployan}', "");
-    Expect(0, 113823, '\P{Block=-	duployan}', "");
-    Expect(1, 113823, '\P{^Block=-	duployan}', "");
-    Expect(0, 113824, '\p{Block=-	duployan}', "");
-    Expect(1, 113824, '\p{^Block=-	duployan}', "");
-    Expect(1, 113824, '\P{Block=-	duployan}', "");
-    Expect(0, 113824, '\P{^Block=-	duployan}', "");
-    Error('\p{Blk=/a/ 	DUPLOYAN}');
-    Error('\P{Blk=/a/ 	DUPLOYAN}');
+    Expect(1, 113823, '\p{Block:		-DUPLOYAN}', "");
+    Expect(0, 113823, '\p{^Block:		-DUPLOYAN}', "");
+    Expect(0, 113823, '\P{Block:		-DUPLOYAN}', "");
+    Expect(1, 113823, '\P{^Block:		-DUPLOYAN}', "");
+    Expect(0, 113824, '\p{Block:		-DUPLOYAN}', "");
+    Expect(1, 113824, '\p{^Block:		-DUPLOYAN}', "");
+    Expect(1, 113824, '\P{Block:		-DUPLOYAN}', "");
+    Expect(0, 113824, '\P{^Block:		-DUPLOYAN}', "");
+    Error('\p{Blk=/a/duployan}');
+    Error('\P{Blk=/a/duployan}');
     Expect(1, 113823, '\p{Blk=:\ADuployan\z:}', "");;
     Expect(0, 113824, '\p{Blk=:\ADuployan\z:}', "");;
-    Expect(1, 113823, '\p{Blk=duployan}', "");
-    Expect(0, 113823, '\p{^Blk=duployan}', "");
-    Expect(0, 113823, '\P{Blk=duployan}', "");
-    Expect(1, 113823, '\P{^Blk=duployan}', "");
-    Expect(0, 113824, '\p{Blk=duployan}', "");
-    Expect(1, 113824, '\p{^Blk=duployan}', "");
-    Expect(1, 113824, '\P{Blk=duployan}', "");
-    Expect(0, 113824, '\P{^Blk=duployan}', "");
+    Expect(1, 113823, '\p{Blk:	duployan}', "");
+    Expect(0, 113823, '\p{^Blk:	duployan}', "");
+    Expect(0, 113823, '\P{Blk:	duployan}', "");
+    Expect(1, 113823, '\P{^Blk:	duployan}', "");
+    Expect(0, 113824, '\p{Blk:	duployan}', "");
+    Expect(1, 113824, '\p{^Blk:	duployan}', "");
+    Expect(1, 113824, '\P{Blk:	duployan}', "");
+    Expect(0, 113824, '\P{^Blk:	duployan}', "");
     Expect(1, 113823, '\p{Blk=:\Aduployan\z:}', "");;
     Expect(0, 113824, '\p{Blk=:\Aduployan\z:}', "");;
-    Expect(1, 113823, '\p{Blk=__Duployan}', "");
-    Expect(0, 113823, '\p{^Blk=__Duployan}', "");
-    Expect(0, 113823, '\P{Blk=__Duployan}', "");
-    Expect(1, 113823, '\P{^Blk=__Duployan}', "");
-    Expect(0, 113824, '\p{Blk=__Duployan}', "");
-    Expect(1, 113824, '\p{^Blk=__Duployan}', "");
-    Expect(1, 113824, '\P{Blk=__Duployan}', "");
-    Expect(0, 113824, '\P{^Blk=__Duployan}', "");
-    Error('\p{Is_Block=	/a/Duployan}');
-    Error('\P{Is_Block=	/a/Duployan}');
+    Expect(1, 113823, '\p{Blk=  duployan}', "");
+    Expect(0, 113823, '\p{^Blk=  duployan}', "");
+    Expect(0, 113823, '\P{Blk=  duployan}', "");
+    Expect(1, 113823, '\P{^Blk=  duployan}', "");
+    Expect(0, 113824, '\p{Blk=  duployan}', "");
+    Expect(1, 113824, '\p{^Blk=  duployan}', "");
+    Expect(1, 113824, '\P{Blk=  duployan}', "");
+    Expect(0, 113824, '\P{^Blk=  duployan}', "");
+    Error('\p{Is_Block=_Duployan:=}');
+    Error('\P{Is_Block=_Duployan:=}');
     Expect(1, 113823, '\p{Is_Block=duployan}', "");
     Expect(0, 113823, '\p{^Is_Block=duployan}', "");
     Expect(0, 113823, '\P{Is_Block=duployan}', "");
@@ -10556,16 +10900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 113824, '\p{^Is_Block=duployan}', "");
     Expect(1, 113824, '\P{Is_Block=duployan}', "");
     Expect(0, 113824, '\P{^Is_Block=duployan}', "");
-    Expect(1, 113823, '\p{Is_Block=- Duployan}', "");
-    Expect(0, 113823, '\p{^Is_Block=- Duployan}', "");
-    Expect(0, 113823, '\P{Is_Block=- Duployan}', "");
-    Expect(1, 113823, '\P{^Is_Block=- Duployan}', "");
-    Expect(0, 113824, '\p{Is_Block=- Duployan}', "");
-    Expect(1, 113824, '\p{^Is_Block=- Duployan}', "");
-    Expect(1, 113824, '\P{Is_Block=- Duployan}', "");
-    Expect(0, 113824, '\P{^Is_Block=- Duployan}', "");
-    Error('\p{Is_Blk=_	Duployan/a/}');
-    Error('\P{Is_Blk=_	Duployan/a/}');
+    Expect(1, 113823, '\p{Is_Block=-	Duployan}', "");
+    Expect(0, 113823, '\p{^Is_Block=-	Duployan}', "");
+    Expect(0, 113823, '\P{Is_Block=-	Duployan}', "");
+    Expect(1, 113823, '\P{^Is_Block=-	Duployan}', "");
+    Expect(0, 113824, '\p{Is_Block=-	Duployan}', "");
+    Expect(1, 113824, '\p{^Is_Block=-	Duployan}', "");
+    Expect(1, 113824, '\P{Is_Block=-	Duployan}', "");
+    Expect(0, 113824, '\P{^Is_Block=-	Duployan}', "");
+    Error('\p{Is_Blk=:=_-Duployan}');
+    Error('\P{Is_Blk=:=_-Duployan}');
     Expect(1, 113823, '\p{Is_Blk:   duployan}', "");
     Expect(0, 113823, '\p{^Is_Blk:   duployan}', "");
     Expect(0, 113823, '\P{Is_Blk:   duployan}', "");
@@ -10574,16 +10918,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 113824, '\p{^Is_Blk:   duployan}', "");
     Expect(1, 113824, '\P{Is_Blk:   duployan}', "");
     Expect(0, 113824, '\P{^Is_Blk:   duployan}', "");
-    Expect(1, 113823, '\p{Is_Blk: -_duployan}', "");
-    Expect(0, 113823, '\p{^Is_Blk: -_duployan}', "");
-    Expect(0, 113823, '\P{Is_Blk: -_duployan}', "");
-    Expect(1, 113823, '\P{^Is_Blk: -_duployan}', "");
-    Expect(0, 113824, '\p{Is_Blk: -_duployan}', "");
-    Expect(1, 113824, '\p{^Is_Blk: -_duployan}', "");
-    Expect(1, 113824, '\P{Is_Blk: -_duployan}', "");
-    Expect(0, 113824, '\P{^Is_Blk: -_duployan}', "");
-    Error('\p{Block=	early_Dynastic_Cuneiform/a/}');
-    Error('\P{Block=	early_Dynastic_Cuneiform/a/}');
+    Expect(1, 113823, '\p{Is_Blk= duployan}', "");
+    Expect(0, 113823, '\p{^Is_Blk= duployan}', "");
+    Expect(0, 113823, '\P{Is_Blk= duployan}', "");
+    Expect(1, 113823, '\P{^Is_Blk= duployan}', "");
+    Expect(0, 113824, '\p{Is_Blk= duployan}', "");
+    Expect(1, 113824, '\p{^Is_Blk= duployan}', "");
+    Expect(1, 113824, '\P{Is_Blk= duployan}', "");
+    Expect(0, 113824, '\P{^Is_Blk= duployan}', "");
+    Error('\p{Block=:=__EARLY_Dynastic_CUNEIFORM}');
+    Error('\P{Block=:=__EARLY_Dynastic_CUNEIFORM}');
     Expect(1, 75087, '\p{Block=:\AEarly_Dynastic_Cuneiform\z:}', "");;
     Expect(0, 75088, '\p{Block=:\AEarly_Dynastic_Cuneiform\z:}', "");;
     Expect(1, 75087, '\p{Block=earlydynasticcuneiform}', "");
@@ -10596,16 +10940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 75088, '\P{^Block=earlydynasticcuneiform}', "");
     Expect(1, 75087, '\p{Block=:\Aearlydynasticcuneiform\z:}', "");;
     Expect(0, 75088, '\p{Block=:\Aearlydynasticcuneiform\z:}', "");;
-    Expect(1, 75087, '\p{Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\p{^Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\P{Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75087, '\P{^Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\p{Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\p{^Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\P{Block=--EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\P{^Block=--EARLY_Dynastic_Cuneiform}', "");
-    Error('\p{Blk=	Early_Dynastic_CUNEIFORM:=}');
-    Error('\P{Blk=	Early_Dynastic_CUNEIFORM:=}');
+    Expect(1, 75087, '\p{Block:  Early_Dynastic_cuneiform}', "");
+    Expect(0, 75087, '\p{^Block:  Early_Dynastic_cuneiform}', "");
+    Expect(0, 75087, '\P{Block:  Early_Dynastic_cuneiform}', "");
+    Expect(1, 75087, '\P{^Block:  Early_Dynastic_cuneiform}', "");
+    Expect(0, 75088, '\p{Block:  Early_Dynastic_cuneiform}', "");
+    Expect(1, 75088, '\p{^Block:  Early_Dynastic_cuneiform}', "");
+    Expect(1, 75088, '\P{Block:  Early_Dynastic_cuneiform}', "");
+    Expect(0, 75088, '\P{^Block:  Early_Dynastic_cuneiform}', "");
+    Error('\p{Blk=/a/		early_Dynastic_Cuneiform}');
+    Error('\P{Blk=/a/		early_Dynastic_Cuneiform}');
     Expect(1, 75087, '\p{Blk=:\AEarly_Dynastic_Cuneiform\z:}', "");;
     Expect(0, 75088, '\p{Blk=:\AEarly_Dynastic_Cuneiform\z:}', "");;
     Expect(1, 75087, '\p{Blk=earlydynasticcuneiform}', "");
@@ -10618,16 +10962,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 75088, '\P{^Blk=earlydynasticcuneiform}', "");
     Expect(1, 75087, '\p{Blk=:\Aearlydynasticcuneiform\z:}', "");;
     Expect(0, 75088, '\p{Blk=:\Aearlydynasticcuneiform\z:}', "");;
-    Expect(1, 75087, '\p{Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(0, 75087, '\p{^Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(0, 75087, '\P{Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(1, 75087, '\P{^Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(0, 75088, '\p{Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(1, 75088, '\p{^Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(1, 75088, '\P{Blk=_EARLY_dynastic_cuneiform}', "");
-    Expect(0, 75088, '\P{^Blk=_EARLY_dynastic_cuneiform}', "");
-    Error('\p{Is_Block:/a/ -Early_Dynastic_cuneiform}');
-    Error('\P{Is_Block:/a/ -Early_Dynastic_cuneiform}');
+    Expect(1, 75087, '\p{Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(0, 75087, '\p{^Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(0, 75087, '\P{Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(1, 75087, '\P{^Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(0, 75088, '\p{Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(1, 75088, '\p{^Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(1, 75088, '\P{Blk=_early_Dynastic_Cuneiform}', "");
+    Expect(0, 75088, '\P{^Blk=_early_Dynastic_Cuneiform}', "");
+    Error('\p{Is_Block=/a/	 early_DYNASTIC_Cuneiform}');
+    Error('\P{Is_Block=/a/	 early_DYNASTIC_Cuneiform}');
     Expect(1, 75087, '\p{Is_Block=earlydynasticcuneiform}', "");
     Expect(0, 75087, '\p{^Is_Block=earlydynasticcuneiform}', "");
     Expect(0, 75087, '\P{Is_Block=earlydynasticcuneiform}', "");
@@ -10636,16 +10980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 75088, '\p{^Is_Block=earlydynasticcuneiform}', "");
     Expect(1, 75088, '\P{Is_Block=earlydynasticcuneiform}', "");
     Expect(0, 75088, '\P{^Is_Block=earlydynasticcuneiform}', "");
-    Expect(1, 75087, '\p{Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(0, 75087, '\p{^Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(0, 75087, '\P{Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(1, 75087, '\P{^Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(0, 75088, '\p{Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(1, 75088, '\p{^Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(1, 75088, '\P{Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Expect(0, 75088, '\P{^Is_Block=	 Early_DYNASTIC_Cuneiform}', "");
-    Error('\p{Is_Blk=-:=Early_Dynastic_CUNEIFORM}');
-    Error('\P{Is_Blk=-:=Early_Dynastic_CUNEIFORM}');
+    Expect(1, 75087, '\p{Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(0, 75087, '\p{^Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(0, 75087, '\P{Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(1, 75087, '\P{^Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(0, 75088, '\p{Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(1, 75088, '\p{^Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(1, 75088, '\P{Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Expect(0, 75088, '\P{^Is_Block= 	Early_Dynastic_Cuneiform}', "");
+    Error('\p{Is_Blk= early_DYNASTIC_Cuneiform:=}');
+    Error('\P{Is_Blk= early_DYNASTIC_Cuneiform:=}');
     Expect(1, 75087, '\p{Is_Blk=earlydynasticcuneiform}', "");
     Expect(0, 75087, '\p{^Is_Blk=earlydynasticcuneiform}', "");
     Expect(0, 75087, '\P{Is_Blk=earlydynasticcuneiform}', "");
@@ -10654,96 +10998,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 75088, '\p{^Is_Blk=earlydynasticcuneiform}', "");
     Expect(1, 75088, '\P{Is_Blk=earlydynasticcuneiform}', "");
     Expect(0, 75088, '\P{^Is_Blk=earlydynasticcuneiform}', "");
-    Expect(1, 75087, '\p{Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\p{^Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\P{Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75087, '\P{^Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\p{Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\p{^Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\P{Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\P{^Is_Blk=-EARLY_Dynastic_Cuneiform}', "");
-    Error('\p{Block:_egyptian_HIEROGLYPH_FORMAT_Controls:=}');
-    Error('\P{Block:_egyptian_HIEROGLYPH_FORMAT_Controls:=}');
-    Expect(1, 78911, '\p{Block=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
-    Expect(0, 78912, '\p{Block=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
-    Expect(1, 78911, '\p{Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^Block=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{Block=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
-    Expect(0, 78912, '\p{Block=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
-    Expect(1, 78911, '\p{Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(0, 78911, '\p{^Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(0, 78911, '\P{Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(1, 78911, '\P{^Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(0, 78912, '\p{Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(1, 78912, '\p{^Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(1, 78912, '\P{Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Expect(0, 78912, '\P{^Block= -Egyptian_Hieroglyph_FORMAT_Controls}', "");
-    Error('\p{Blk=/a/--egyptian_Hieroglyph_Format_controls}');
-    Error('\P{Blk=/a/--egyptian_Hieroglyph_Format_controls}');
-    Expect(1, 78911, '\p{Blk=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
-    Expect(0, 78912, '\p{Blk=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
-    Expect(1, 78911, '\p{Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{Blk=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
-    Expect(0, 78912, '\p{Blk=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
-    Expect(1, 78911, '\p{Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(0, 78911, '\p{^Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(0, 78911, '\P{Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(1, 78911, '\P{^Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(0, 78912, '\p{Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(1, 78912, '\p{^Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(1, 78912, '\P{Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Expect(0, 78912, '\P{^Blk=	 EGYPTIAN_Hieroglyph_FORMAT_CONTROLS}', "");
-    Error('\p{Is_Block=-	Egyptian_hieroglyph_format_controls/a/}');
-    Error('\P{Is_Block=-	Egyptian_hieroglyph_format_controls/a/}');
-    Expect(1, 78911, '\p{Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^Is_Block:egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(0, 78911, '\p{^Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(0, 78911, '\P{Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(1, 78911, '\P{^Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(0, 78912, '\p{Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(1, 78912, '\p{^Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(1, 78912, '\P{Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Expect(0, 78912, '\P{^Is_Block= Egyptian_Hieroglyph_Format_controls}', "");
-    Error('\p{Is_Blk=:=egyptian_Hieroglyph_Format_Controls}');
-    Error('\P{Is_Blk=:=egyptian_Hieroglyph_Format_Controls}');
-    Expect(1, 78911, '\p{Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78911, '\p{^Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78911, '\P{Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(1, 78911, '\P{^Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78912, '\p{Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(1, 78912, '\p{^Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(1, 78912, '\P{Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78912, '\P{^Is_Blk=-	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Error('\p{Block=:=EGYPTIAN_Hieroglyphs}');
-    Error('\P{Block=:=EGYPTIAN_Hieroglyphs}');
+    Expect(1, 75087, '\p{Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(0, 75087, '\p{^Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(0, 75087, '\P{Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(1, 75087, '\P{^Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(0, 75088, '\p{Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(1, 75088, '\p{^Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(1, 75088, '\P{Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Expect(0, 75088, '\P{^Is_Blk= early_DYNASTIC_Cuneiform}', "");
+    Error('\p{Block=:= -egyptian_HIEROGLYPH_FORMAT_controls}');
+    Error('\P{Block=:= -egyptian_HIEROGLYPH_FORMAT_controls}');
+    Expect(1, 78943, '\p{Block=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
+    Expect(0, 78944, '\p{Block=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
+    Expect(1, 78943, '\p{Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{Block=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
+    Expect(0, 78944, '\p{Block=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
+    Expect(1, 78943, '\p{Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(0, 78943, '\p{^Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(0, 78943, '\P{Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(1, 78943, '\P{^Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(0, 78944, '\p{Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(1, 78944, '\p{^Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(1, 78944, '\P{Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Expect(0, 78944, '\P{^Block=_-egyptian_Hieroglyph_Format_controls}', "");
+    Error('\p{Blk:-Egyptian_HIEROGLYPH_FORMAT_Controls/a/}');
+    Error('\P{Blk:-Egyptian_HIEROGLYPH_FORMAT_Controls/a/}');
+    Expect(1, 78943, '\p{Blk=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
+    Expect(0, 78944, '\p{Blk=:\AEgyptian_Hieroglyph_Format_Controls\z:}', "");;
+    Expect(1, 78943, '\p{Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{Blk=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
+    Expect(0, 78944, '\p{Blk=:\Aegyptianhieroglyphformatcontrols\z:}', "");;
+    Expect(1, 78943, '\p{Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(0, 78943, '\p{^Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(0, 78943, '\P{Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(1, 78943, '\P{^Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(0, 78944, '\p{Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(1, 78944, '\p{^Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(1, 78944, '\P{Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Expect(0, 78944, '\P{^Blk=__EGYPTIAN_HIEROGLYPH_Format_controls}', "");
+    Error('\p{Is_Block=:=egyptian_Hieroglyph_format_Controls}');
+    Error('\P{Is_Block=:=egyptian_Hieroglyph_format_Controls}');
+    Expect(1, 78943, '\p{Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^Is_Block=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(0, 78943, '\p{^Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(0, 78943, '\P{Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(1, 78943, '\P{^Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(0, 78944, '\p{Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(1, 78944, '\p{^Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(1, 78944, '\P{Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Expect(0, 78944, '\P{^Is_Block=Egyptian_hieroglyph_FORMAT_CONTROLS}', "");
+    Error('\p{Is_Blk=:=_egyptian_hieroglyph_Format_Controls}');
+    Error('\P{Is_Blk=:=_egyptian_hieroglyph_Format_Controls}');
+    Expect(1, 78943, '\p{Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^Is_Blk=egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(0, 78943, '\p{^Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(0, 78943, '\P{Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(1, 78943, '\P{^Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(0, 78944, '\p{Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(1, 78944, '\p{^Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(1, 78944, '\P{Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Expect(0, 78944, '\P{^Is_Blk=	egyptian_HIEROGLYPH_Format_CONTROLS}', "");
+    Error('\p{Block=/a/Egyptian_hieroglyphs}');
+    Error('\P{Block=/a/Egyptian_hieroglyphs}');
     Expect(1, 78895, '\p{Block=:\AEgyptian_Hieroglyphs\z:}', "");;
     Expect(0, 78896, '\p{Block=:\AEgyptian_Hieroglyphs\z:}', "");;
     Expect(1, 78895, '\p{Block=egyptianhieroglyphs}', "");
@@ -10756,16 +11100,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 78896, '\P{^Block=egyptianhieroglyphs}', "");
     Expect(1, 78895, '\p{Block=:\Aegyptianhieroglyphs\z:}', "");;
     Expect(0, 78896, '\p{Block=:\Aegyptianhieroglyphs\z:}', "");;
-    Expect(1, 78895, '\p{Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78895, '\p{^Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78895, '\P{Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(1, 78895, '\P{^Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78896, '\p{Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(1, 78896, '\p{^Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(1, 78896, '\P{Block=		egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78896, '\P{^Block=		egyptian_HIEROGLYPHS}', "");
-    Error('\p{Blk=/a/_	Egyptian_Hieroglyphs}');
-    Error('\P{Blk=/a/_	Egyptian_Hieroglyphs}');
+    Expect(1, 78895, '\p{Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(0, 78895, '\p{^Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(0, 78895, '\P{Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(1, 78895, '\P{^Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(0, 78896, '\p{Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(1, 78896, '\p{^Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(1, 78896, '\P{Block=_Egyptian_HIEROGLYPHS}', "");
+    Expect(0, 78896, '\P{^Block=_Egyptian_HIEROGLYPHS}', "");
+    Error('\p{Blk=/a/		EGYPTIAN_hieroglyphs}');
+    Error('\P{Blk=/a/		EGYPTIAN_hieroglyphs}');
     Expect(1, 78895, '\p{Blk=:\AEgyptian_Hieroglyphs\z:}', "");;
     Expect(0, 78896, '\p{Blk=:\AEgyptian_Hieroglyphs\z:}', "");;
     Expect(1, 78895, '\p{Blk=egyptianhieroglyphs}', "");
@@ -10778,16 +11122,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 78896, '\P{^Blk=egyptianhieroglyphs}', "");
     Expect(1, 78895, '\p{Blk=:\Aegyptianhieroglyphs\z:}', "");;
     Expect(0, 78896, '\p{Blk=:\Aegyptianhieroglyphs\z:}', "");;
-    Expect(1, 78895, '\p{Blk=-_egyptian_hieroglyphs}', "");
-    Expect(0, 78895, '\p{^Blk=-_egyptian_hieroglyphs}', "");
-    Expect(0, 78895, '\P{Blk=-_egyptian_hieroglyphs}', "");
-    Expect(1, 78895, '\P{^Blk=-_egyptian_hieroglyphs}', "");
-    Expect(0, 78896, '\p{Blk=-_egyptian_hieroglyphs}', "");
-    Expect(1, 78896, '\p{^Blk=-_egyptian_hieroglyphs}', "");
-    Expect(1, 78896, '\P{Blk=-_egyptian_hieroglyphs}', "");
-    Expect(0, 78896, '\P{^Blk=-_egyptian_hieroglyphs}', "");
-    Error('\p{Is_Block=:=_Egyptian_Hieroglyphs}');
-    Error('\P{Is_Block=:=_Egyptian_Hieroglyphs}');
+    Expect(1, 78895, '\p{Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(0, 78895, '\p{^Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(0, 78895, '\P{Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(1, 78895, '\P{^Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(0, 78896, '\p{Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(1, 78896, '\p{^Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(1, 78896, '\P{Blk=_	Egyptian_hieroglyphs}', "");
+    Expect(0, 78896, '\P{^Blk=_	Egyptian_hieroglyphs}', "");
+    Error('\p{Is_Block=-	Egyptian_HIEROGLYPHS:=}');
+    Error('\P{Is_Block=-	Egyptian_HIEROGLYPHS:=}');
     Expect(1, 78895, '\p{Is_Block=egyptianhieroglyphs}', "");
     Expect(0, 78895, '\p{^Is_Block=egyptianhieroglyphs}', "");
     Expect(0, 78895, '\P{Is_Block=egyptianhieroglyphs}', "");
@@ -10796,34 +11140,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 78896, '\p{^Is_Block=egyptianhieroglyphs}', "");
     Expect(1, 78896, '\P{Is_Block=egyptianhieroglyphs}', "");
     Expect(0, 78896, '\P{^Is_Block=egyptianhieroglyphs}', "");
-    Expect(1, 78895, '\p{Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78895, '\p{^Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78895, '\P{Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78895, '\P{^Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78896, '\p{Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78896, '\p{^Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78896, '\P{Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78896, '\P{^Is_Block= EGYPTIAN_Hieroglyphs}', "");
-    Error('\p{Is_Blk=:= -egyptian_HIEROGLYPHS}');
-    Error('\P{Is_Blk=:= -egyptian_HIEROGLYPHS}');
-    Expect(1, 78895, '\p{Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(0, 78895, '\p{^Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(0, 78895, '\P{Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(1, 78895, '\P{^Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(0, 78896, '\p{Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(1, 78896, '\p{^Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(1, 78896, '\P{Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(0, 78896, '\P{^Is_Blk:   egyptianhieroglyphs}', "");
-    Expect(1, 78895, '\p{Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78895, '\p{^Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78895, '\P{Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78895, '\P{^Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78896, '\p{Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78896, '\p{^Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78896, '\P{Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78896, '\P{^Is_Blk=- EGYPTIAN_Hieroglyphs}', "");
-    Error('\p{Block=_-Elbasan/a/}');
-    Error('\P{Block=_-Elbasan/a/}');
+    Expect(1, 78895, '\p{Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(0, 78895, '\p{^Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(0, 78895, '\P{Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(1, 78895, '\P{^Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(0, 78896, '\p{Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(1, 78896, '\p{^Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(1, 78896, '\P{Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Expect(0, 78896, '\P{^Is_Block=_	EGYPTIAN_hieroglyphs}', "");
+    Error('\p{Is_Blk=-/a/egyptian_Hieroglyphs}');
+    Error('\P{Is_Blk=-/a/egyptian_Hieroglyphs}');
+    Expect(1, 78895, '\p{Is_Blk=egyptianhieroglyphs}', "");
+    Expect(0, 78895, '\p{^Is_Blk=egyptianhieroglyphs}', "");
+    Expect(0, 78895, '\P{Is_Blk=egyptianhieroglyphs}', "");
+    Expect(1, 78895, '\P{^Is_Blk=egyptianhieroglyphs}', "");
+    Expect(0, 78896, '\p{Is_Blk=egyptianhieroglyphs}', "");
+    Expect(1, 78896, '\p{^Is_Blk=egyptianhieroglyphs}', "");
+    Expect(1, 78896, '\P{Is_Blk=egyptianhieroglyphs}', "");
+    Expect(0, 78896, '\P{^Is_Blk=egyptianhieroglyphs}', "");
+    Expect(1, 78895, '\p{Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(0, 78895, '\p{^Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(0, 78895, '\P{Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(1, 78895, '\P{^Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(0, 78896, '\p{Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(1, 78896, '\p{^Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(1, 78896, '\P{Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Expect(0, 78896, '\P{^Is_Blk=--Egyptian_Hieroglyphs}', "");
+    Error('\p{Block=_-elbasan:=}');
+    Error('\P{Block=_-elbasan:=}');
     Expect(1, 66863, '\p{Block=:\AElbasan\z:}', "");;
     Expect(0, 66864, '\p{Block=:\AElbasan\z:}', "");;
     Expect(1, 66863, '\p{Block=elbasan}', "");
@@ -10836,16 +11180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66864, '\P{^Block=elbasan}', "");
     Expect(1, 66863, '\p{Block=:\Aelbasan\z:}', "");;
     Expect(0, 66864, '\p{Block=:\Aelbasan\z:}', "");;
-    Expect(1, 66863, '\p{Block= -ELBASAN}', "");
-    Expect(0, 66863, '\p{^Block= -ELBASAN}', "");
-    Expect(0, 66863, '\P{Block= -ELBASAN}', "");
-    Expect(1, 66863, '\P{^Block= -ELBASAN}', "");
-    Expect(0, 66864, '\p{Block= -ELBASAN}', "");
-    Expect(1, 66864, '\p{^Block= -ELBASAN}', "");
-    Expect(1, 66864, '\P{Block= -ELBASAN}', "");
-    Expect(0, 66864, '\P{^Block= -ELBASAN}', "");
-    Error('\p{Blk=_:=Elbasan}');
-    Error('\P{Blk=_:=Elbasan}');
+    Expect(1, 66863, '\p{Block=--Elbasan}', "");
+    Expect(0, 66863, '\p{^Block=--Elbasan}', "");
+    Expect(0, 66863, '\P{Block=--Elbasan}', "");
+    Expect(1, 66863, '\P{^Block=--Elbasan}', "");
+    Expect(0, 66864, '\p{Block=--Elbasan}', "");
+    Expect(1, 66864, '\p{^Block=--Elbasan}', "");
+    Expect(1, 66864, '\P{Block=--Elbasan}', "");
+    Expect(0, 66864, '\P{^Block=--Elbasan}', "");
+    Error('\p{Blk=/a/	 Elbasan}');
+    Error('\P{Blk=/a/	 Elbasan}');
     Expect(1, 66863, '\p{Blk=:\AElbasan\z:}', "");;
     Expect(0, 66864, '\p{Blk=:\AElbasan\z:}', "");;
     Expect(1, 66863, '\p{Blk=elbasan}', "");
@@ -10858,16 +11202,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66864, '\P{^Blk=elbasan}', "");
     Expect(1, 66863, '\p{Blk=:\Aelbasan\z:}', "");;
     Expect(0, 66864, '\p{Blk=:\Aelbasan\z:}', "");;
-    Expect(1, 66863, '\p{Blk=__elbasan}', "");
-    Expect(0, 66863, '\p{^Blk=__elbasan}', "");
-    Expect(0, 66863, '\P{Blk=__elbasan}', "");
-    Expect(1, 66863, '\P{^Blk=__elbasan}', "");
-    Expect(0, 66864, '\p{Blk=__elbasan}', "");
-    Expect(1, 66864, '\p{^Blk=__elbasan}', "");
-    Expect(1, 66864, '\P{Blk=__elbasan}', "");
-    Expect(0, 66864, '\P{^Blk=__elbasan}', "");
-    Error('\p{Is_Block=  Elbasan/a/}');
-    Error('\P{Is_Block=  Elbasan/a/}');
+    Expect(1, 66863, '\p{Blk= 	Elbasan}', "");
+    Expect(0, 66863, '\p{^Blk= 	Elbasan}', "");
+    Expect(0, 66863, '\P{Blk= 	Elbasan}', "");
+    Expect(1, 66863, '\P{^Blk= 	Elbasan}', "");
+    Expect(0, 66864, '\p{Blk= 	Elbasan}', "");
+    Expect(1, 66864, '\p{^Blk= 	Elbasan}', "");
+    Expect(1, 66864, '\P{Blk= 	Elbasan}', "");
+    Expect(0, 66864, '\P{^Blk= 	Elbasan}', "");
+    Error('\p{Is_Block=:=-	elbasan}');
+    Error('\P{Is_Block=:=-	elbasan}');
     Expect(1, 66863, '\p{Is_Block=elbasan}', "");
     Expect(0, 66863, '\p{^Is_Block=elbasan}', "");
     Expect(0, 66863, '\P{Is_Block=elbasan}', "");
@@ -10876,16 +11220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66864, '\p{^Is_Block=elbasan}', "");
     Expect(1, 66864, '\P{Is_Block=elbasan}', "");
     Expect(0, 66864, '\P{^Is_Block=elbasan}', "");
-    Expect(1, 66863, '\p{Is_Block= 	ELBASAN}', "");
-    Expect(0, 66863, '\p{^Is_Block= 	ELBASAN}', "");
-    Expect(0, 66863, '\P{Is_Block= 	ELBASAN}', "");
-    Expect(1, 66863, '\P{^Is_Block= 	ELBASAN}', "");
-    Expect(0, 66864, '\p{Is_Block= 	ELBASAN}', "");
-    Expect(1, 66864, '\p{^Is_Block= 	ELBASAN}', "");
-    Expect(1, 66864, '\P{Is_Block= 	ELBASAN}', "");
-    Expect(0, 66864, '\P{^Is_Block= 	ELBASAN}', "");
-    Error('\p{Is_Blk: -/a/Elbasan}');
-    Error('\P{Is_Blk: -/a/Elbasan}');
+    Expect(1, 66863, '\p{Is_Block:   -Elbasan}', "");
+    Expect(0, 66863, '\p{^Is_Block:   -Elbasan}', "");
+    Expect(0, 66863, '\P{Is_Block:   -Elbasan}', "");
+    Expect(1, 66863, '\P{^Is_Block:   -Elbasan}', "");
+    Expect(0, 66864, '\p{Is_Block:   -Elbasan}', "");
+    Expect(1, 66864, '\p{^Is_Block:   -Elbasan}', "");
+    Expect(1, 66864, '\P{Is_Block:   -Elbasan}', "");
+    Expect(0, 66864, '\P{^Is_Block:   -Elbasan}', "");
+    Error('\p{Is_Blk=:= -elbasan}');
+    Error('\P{Is_Blk=:= -elbasan}');
     Expect(1, 66863, '\p{Is_Blk=elbasan}', "");
     Expect(0, 66863, '\p{^Is_Blk=elbasan}', "");
     Expect(0, 66863, '\P{Is_Blk=elbasan}', "");
@@ -10894,16 +11238,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66864, '\p{^Is_Blk=elbasan}', "");
     Expect(1, 66864, '\P{Is_Blk=elbasan}', "");
     Expect(0, 66864, '\P{^Is_Blk=elbasan}', "");
-    Expect(1, 66863, '\p{Is_Blk=	-Elbasan}', "");
-    Expect(0, 66863, '\p{^Is_Blk=	-Elbasan}', "");
-    Expect(0, 66863, '\P{Is_Blk=	-Elbasan}', "");
-    Expect(1, 66863, '\P{^Is_Blk=	-Elbasan}', "");
-    Expect(0, 66864, '\p{Is_Blk=	-Elbasan}', "");
-    Expect(1, 66864, '\p{^Is_Blk=	-Elbasan}', "");
-    Expect(1, 66864, '\P{Is_Blk=	-Elbasan}', "");
-    Expect(0, 66864, '\P{^Is_Blk=	-Elbasan}', "");
-    Error('\p{Block= :=Elymaic}');
-    Error('\P{Block= :=Elymaic}');
+    Expect(1, 66863, '\p{Is_Blk:   -elbasan}', "");
+    Expect(0, 66863, '\p{^Is_Blk:   -elbasan}', "");
+    Expect(0, 66863, '\P{Is_Blk:   -elbasan}', "");
+    Expect(1, 66863, '\P{^Is_Blk:   -elbasan}', "");
+    Expect(0, 66864, '\p{Is_Blk:   -elbasan}', "");
+    Expect(1, 66864, '\p{^Is_Blk:   -elbasan}', "");
+    Expect(1, 66864, '\P{Is_Blk:   -elbasan}', "");
+    Expect(0, 66864, '\P{^Is_Blk:   -elbasan}', "");
+    Error('\p{Block=:= ELYMAIC}');
+    Error('\P{Block=:= ELYMAIC}');
     Expect(1, 69631, '\p{Block=:\AElymaic\z:}', "");;
     Expect(0, 69632, '\p{Block=:\AElymaic\z:}', "");;
     Expect(1, 69631, '\p{Block=elymaic}', "");
@@ -10916,16 +11260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69632, '\P{^Block=elymaic}', "");
     Expect(1, 69631, '\p{Block=:\Aelymaic\z:}', "");;
     Expect(0, 69632, '\p{Block=:\Aelymaic\z:}', "");;
-    Expect(1, 69631, '\p{Block= Elymaic}', "");
-    Expect(0, 69631, '\p{^Block= Elymaic}', "");
-    Expect(0, 69631, '\P{Block= Elymaic}', "");
-    Expect(1, 69631, '\P{^Block= Elymaic}', "");
-    Expect(0, 69632, '\p{Block= Elymaic}', "");
-    Expect(1, 69632, '\p{^Block= Elymaic}', "");
-    Expect(1, 69632, '\P{Block= Elymaic}', "");
-    Expect(0, 69632, '\P{^Block= Elymaic}', "");
-    Error('\p{Blk:		Elymaic:=}');
-    Error('\P{Blk:		Elymaic:=}');
+    Expect(1, 69631, '\p{Block: -	Elymaic}', "");
+    Expect(0, 69631, '\p{^Block: -	Elymaic}', "");
+    Expect(0, 69631, '\P{Block: -	Elymaic}', "");
+    Expect(1, 69631, '\P{^Block: -	Elymaic}', "");
+    Expect(0, 69632, '\p{Block: -	Elymaic}', "");
+    Expect(1, 69632, '\p{^Block: -	Elymaic}', "");
+    Expect(1, 69632, '\P{Block: -	Elymaic}', "");
+    Expect(0, 69632, '\P{^Block: -	Elymaic}', "");
+    Error('\p{Blk= :=elymaic}');
+    Error('\P{Blk= :=elymaic}');
     Expect(1, 69631, '\p{Blk=:\AElymaic\z:}', "");;
     Expect(0, 69632, '\p{Blk=:\AElymaic\z:}', "");;
     Expect(1, 69631, '\p{Blk=elymaic}', "");
@@ -10938,34 +11282,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69632, '\P{^Blk=elymaic}', "");
     Expect(1, 69631, '\p{Blk=:\Aelymaic\z:}', "");;
     Expect(0, 69632, '\p{Blk=:\Aelymaic\z:}', "");;
-    Expect(1, 69631, '\p{Blk=		ELYMAIC}', "");
-    Expect(0, 69631, '\p{^Blk=		ELYMAIC}', "");
-    Expect(0, 69631, '\P{Blk=		ELYMAIC}', "");
-    Expect(1, 69631, '\P{^Blk=		ELYMAIC}', "");
-    Expect(0, 69632, '\p{Blk=		ELYMAIC}', "");
-    Expect(1, 69632, '\p{^Blk=		ELYMAIC}', "");
-    Expect(1, 69632, '\P{Blk=		ELYMAIC}', "");
-    Expect(0, 69632, '\P{^Blk=		ELYMAIC}', "");
-    Error('\p{Is_Block=__Elymaic:=}');
-    Error('\P{Is_Block=__Elymaic:=}');
-    Expect(1, 69631, '\p{Is_Block=elymaic}', "");
-    Expect(0, 69631, '\p{^Is_Block=elymaic}', "");
-    Expect(0, 69631, '\P{Is_Block=elymaic}', "");
-    Expect(1, 69631, '\P{^Is_Block=elymaic}', "");
-    Expect(0, 69632, '\p{Is_Block=elymaic}', "");
-    Expect(1, 69632, '\p{^Is_Block=elymaic}', "");
-    Expect(1, 69632, '\P{Is_Block=elymaic}', "");
-    Expect(0, 69632, '\P{^Is_Block=elymaic}', "");
-    Expect(1, 69631, '\p{Is_Block= elymaic}', "");
-    Expect(0, 69631, '\p{^Is_Block= elymaic}', "");
-    Expect(0, 69631, '\P{Is_Block= elymaic}', "");
-    Expect(1, 69631, '\P{^Is_Block= elymaic}', "");
-    Expect(0, 69632, '\p{Is_Block= elymaic}', "");
-    Expect(1, 69632, '\p{^Is_Block= elymaic}', "");
-    Expect(1, 69632, '\P{Is_Block= elymaic}', "");
-    Expect(0, 69632, '\P{^Is_Block= elymaic}', "");
-    Error('\p{Is_Blk=Elymaic:=}');
-    Error('\P{Is_Blk=Elymaic:=}');
+    Expect(1, 69631, '\p{Blk=	Elymaic}', "");
+    Expect(0, 69631, '\p{^Blk=	Elymaic}', "");
+    Expect(0, 69631, '\P{Blk=	Elymaic}', "");
+    Expect(1, 69631, '\P{^Blk=	Elymaic}', "");
+    Expect(0, 69632, '\p{Blk=	Elymaic}', "");
+    Expect(1, 69632, '\p{^Blk=	Elymaic}', "");
+    Expect(1, 69632, '\P{Blk=	Elymaic}', "");
+    Expect(0, 69632, '\P{^Blk=	Elymaic}', "");
+    Error('\p{Is_Block= Elymaic:=}');
+    Error('\P{Is_Block= Elymaic:=}');
+    Expect(1, 69631, '\p{Is_Block:elymaic}', "");
+    Expect(0, 69631, '\p{^Is_Block:elymaic}', "");
+    Expect(0, 69631, '\P{Is_Block:elymaic}', "");
+    Expect(1, 69631, '\P{^Is_Block:elymaic}', "");
+    Expect(0, 69632, '\p{Is_Block:elymaic}', "");
+    Expect(1, 69632, '\p{^Is_Block:elymaic}', "");
+    Expect(1, 69632, '\P{Is_Block:elymaic}', "");
+    Expect(0, 69632, '\P{^Is_Block:elymaic}', "");
+    Expect(1, 69631, '\p{Is_Block=-_ELYMAIC}', "");
+    Expect(0, 69631, '\p{^Is_Block=-_ELYMAIC}', "");
+    Expect(0, 69631, '\P{Is_Block=-_ELYMAIC}', "");
+    Expect(1, 69631, '\P{^Is_Block=-_ELYMAIC}', "");
+    Expect(0, 69632, '\p{Is_Block=-_ELYMAIC}', "");
+    Expect(1, 69632, '\p{^Is_Block=-_ELYMAIC}', "");
+    Expect(1, 69632, '\P{Is_Block=-_ELYMAIC}', "");
+    Expect(0, 69632, '\P{^Is_Block=-_ELYMAIC}', "");
+    Error('\p{Is_Blk=/a/Elymaic}');
+    Error('\P{Is_Blk=/a/Elymaic}');
     Expect(1, 69631, '\p{Is_Blk=elymaic}', "");
     Expect(0, 69631, '\p{^Is_Blk=elymaic}', "");
     Expect(0, 69631, '\P{Is_Blk=elymaic}', "");
@@ -10974,16 +11318,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69632, '\p{^Is_Blk=elymaic}', "");
     Expect(1, 69632, '\P{Is_Blk=elymaic}', "");
     Expect(0, 69632, '\P{^Is_Blk=elymaic}', "");
-    Expect(1, 69631, '\p{Is_Blk=__ELYMAIC}', "");
-    Expect(0, 69631, '\p{^Is_Blk=__ELYMAIC}', "");
-    Expect(0, 69631, '\P{Is_Blk=__ELYMAIC}', "");
-    Expect(1, 69631, '\P{^Is_Blk=__ELYMAIC}', "");
-    Expect(0, 69632, '\p{Is_Blk=__ELYMAIC}', "");
-    Expect(1, 69632, '\p{^Is_Blk=__ELYMAIC}', "");
-    Expect(1, 69632, '\P{Is_Blk=__ELYMAIC}', "");
-    Expect(0, 69632, '\P{^Is_Blk=__ELYMAIC}', "");
-    Error('\p{Block=:=_ emoticons}');
-    Error('\P{Block=:=_ emoticons}');
+    Expect(1, 69631, '\p{Is_Blk= -elymaic}', "");
+    Expect(0, 69631, '\p{^Is_Blk= -elymaic}', "");
+    Expect(0, 69631, '\P{Is_Blk= -elymaic}', "");
+    Expect(1, 69631, '\P{^Is_Blk= -elymaic}', "");
+    Expect(0, 69632, '\p{Is_Blk= -elymaic}', "");
+    Expect(1, 69632, '\p{^Is_Blk= -elymaic}', "");
+    Expect(1, 69632, '\P{Is_Blk= -elymaic}', "");
+    Expect(0, 69632, '\P{^Is_Blk= -elymaic}', "");
+    Error('\p{Block=:=__EMOTICONS}');
+    Error('\P{Block=:=__EMOTICONS}');
     Expect(1, 128591, '\p{Block=:\AEmoticons\z:}', "");;
     Expect(0, 128592, '\p{Block=:\AEmoticons\z:}', "");;
     Expect(1, 128591, '\p{Block=emoticons}', "");
@@ -10996,38 +11340,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128592, '\P{^Block=emoticons}', "");
     Expect(1, 128591, '\p{Block=:\Aemoticons\z:}', "");;
     Expect(0, 128592, '\p{Block=:\Aemoticons\z:}', "");;
-    Expect(1, 128591, '\p{Block=_ Emoticons}', "");
-    Expect(0, 128591, '\p{^Block=_ Emoticons}', "");
-    Expect(0, 128591, '\P{Block=_ Emoticons}', "");
-    Expect(1, 128591, '\P{^Block=_ Emoticons}', "");
-    Expect(0, 128592, '\p{Block=_ Emoticons}', "");
-    Expect(1, 128592, '\p{^Block=_ Emoticons}', "");
-    Expect(1, 128592, '\P{Block=_ Emoticons}', "");
-    Expect(0, 128592, '\P{^Block=_ Emoticons}', "");
-    Error('\p{Blk=/a/-Emoticons}');
-    Error('\P{Blk=/a/-Emoticons}');
+    Expect(1, 128591, '\p{Block= emoticons}', "");
+    Expect(0, 128591, '\p{^Block= emoticons}', "");
+    Expect(0, 128591, '\P{Block= emoticons}', "");
+    Expect(1, 128591, '\P{^Block= emoticons}', "");
+    Expect(0, 128592, '\p{Block= emoticons}', "");
+    Expect(1, 128592, '\p{^Block= emoticons}', "");
+    Expect(1, 128592, '\P{Block= emoticons}', "");
+    Expect(0, 128592, '\P{^Block= emoticons}', "");
+    Error('\p{Blk=:=_ emoticons}');
+    Error('\P{Blk=:=_ emoticons}');
     Expect(1, 128591, '\p{Blk=:\AEmoticons\z:}', "");;
     Expect(0, 128592, '\p{Blk=:\AEmoticons\z:}', "");;
-    Expect(1, 128591, '\p{Blk=emoticons}', "");
-    Expect(0, 128591, '\p{^Blk=emoticons}', "");
-    Expect(0, 128591, '\P{Blk=emoticons}', "");
-    Expect(1, 128591, '\P{^Blk=emoticons}', "");
-    Expect(0, 128592, '\p{Blk=emoticons}', "");
-    Expect(1, 128592, '\p{^Blk=emoticons}', "");
-    Expect(1, 128592, '\P{Blk=emoticons}', "");
-    Expect(0, 128592, '\P{^Blk=emoticons}', "");
+    Expect(1, 128591, '\p{Blk:emoticons}', "");
+    Expect(0, 128591, '\p{^Blk:emoticons}', "");
+    Expect(0, 128591, '\P{Blk:emoticons}', "");
+    Expect(1, 128591, '\P{^Blk:emoticons}', "");
+    Expect(0, 128592, '\p{Blk:emoticons}', "");
+    Expect(1, 128592, '\p{^Blk:emoticons}', "");
+    Expect(1, 128592, '\P{Blk:emoticons}', "");
+    Expect(0, 128592, '\P{^Blk:emoticons}', "");
     Expect(1, 128591, '\p{Blk=:\Aemoticons\z:}', "");;
     Expect(0, 128592, '\p{Blk=:\Aemoticons\z:}', "");;
-    Expect(1, 128591, '\p{Blk=-emoticons}', "");
-    Expect(0, 128591, '\p{^Blk=-emoticons}', "");
-    Expect(0, 128591, '\P{Blk=-emoticons}', "");
-    Expect(1, 128591, '\P{^Blk=-emoticons}', "");
-    Expect(0, 128592, '\p{Blk=-emoticons}', "");
-    Expect(1, 128592, '\p{^Blk=-emoticons}', "");
-    Expect(1, 128592, '\P{Blk=-emoticons}', "");
-    Expect(0, 128592, '\P{^Blk=-emoticons}', "");
-    Error('\p{Is_Block=/a/ -emoticons}');
-    Error('\P{Is_Block=/a/ -emoticons}');
+    Expect(1, 128591, '\p{Blk=	emoticons}', "");
+    Expect(0, 128591, '\p{^Blk=	emoticons}', "");
+    Expect(0, 128591, '\P{Blk=	emoticons}', "");
+    Expect(1, 128591, '\P{^Blk=	emoticons}', "");
+    Expect(0, 128592, '\p{Blk=	emoticons}', "");
+    Expect(1, 128592, '\p{^Blk=	emoticons}', "");
+    Expect(1, 128592, '\P{Blk=	emoticons}', "");
+    Expect(0, 128592, '\P{^Blk=	emoticons}', "");
+    Error('\p{Is_Block=-/a/Emoticons}');
+    Error('\P{Is_Block=-/a/Emoticons}');
     Expect(1, 128591, '\p{Is_Block=emoticons}', "");
     Expect(0, 128591, '\p{^Is_Block=emoticons}', "");
     Expect(0, 128591, '\P{Is_Block=emoticons}', "");
@@ -11036,16 +11380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128592, '\p{^Is_Block=emoticons}', "");
     Expect(1, 128592, '\P{Is_Block=emoticons}', "");
     Expect(0, 128592, '\P{^Is_Block=emoticons}', "");
-    Expect(1, 128591, '\p{Is_Block=EMOTICONS}', "");
-    Expect(0, 128591, '\p{^Is_Block=EMOTICONS}', "");
-    Expect(0, 128591, '\P{Is_Block=EMOTICONS}', "");
-    Expect(1, 128591, '\P{^Is_Block=EMOTICONS}', "");
-    Expect(0, 128592, '\p{Is_Block=EMOTICONS}', "");
-    Expect(1, 128592, '\p{^Is_Block=EMOTICONS}', "");
-    Expect(1, 128592, '\P{Is_Block=EMOTICONS}', "");
-    Expect(0, 128592, '\P{^Is_Block=EMOTICONS}', "");
-    Error('\p{Is_Blk=-/a/Emoticons}');
-    Error('\P{Is_Blk=-/a/Emoticons}');
+    Expect(1, 128591, '\p{Is_Block=  EMOTICONS}', "");
+    Expect(0, 128591, '\p{^Is_Block=  EMOTICONS}', "");
+    Expect(0, 128591, '\P{Is_Block=  EMOTICONS}', "");
+    Expect(1, 128591, '\P{^Is_Block=  EMOTICONS}', "");
+    Expect(0, 128592, '\p{Is_Block=  EMOTICONS}', "");
+    Expect(1, 128592, '\p{^Is_Block=  EMOTICONS}', "");
+    Expect(1, 128592, '\P{Is_Block=  EMOTICONS}', "");
+    Expect(0, 128592, '\P{^Is_Block=  EMOTICONS}', "");
+    Error('\p{Is_Blk=	:=Emoticons}');
+    Error('\P{Is_Blk=	:=Emoticons}');
     Expect(1, 128591, '\p{Is_Blk=emoticons}', "");
     Expect(0, 128591, '\p{^Is_Blk=emoticons}', "");
     Expect(0, 128591, '\P{Is_Blk=emoticons}', "");
@@ -11054,16 +11398,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128592, '\p{^Is_Blk=emoticons}', "");
     Expect(1, 128592, '\P{Is_Blk=emoticons}', "");
     Expect(0, 128592, '\P{^Is_Blk=emoticons}', "");
-    Expect(1, 128591, '\p{Is_Blk:   emoticons}', "");
-    Expect(0, 128591, '\p{^Is_Blk:   emoticons}', "");
-    Expect(0, 128591, '\P{Is_Blk:   emoticons}', "");
-    Expect(1, 128591, '\P{^Is_Blk:   emoticons}', "");
-    Expect(0, 128592, '\p{Is_Blk:   emoticons}', "");
-    Expect(1, 128592, '\p{^Is_Blk:   emoticons}', "");
-    Expect(1, 128592, '\P{Is_Blk:   emoticons}', "");
-    Expect(0, 128592, '\P{^Is_Blk:   emoticons}', "");
-    Error('\p{Block:   /a/ _Enclosed_Alphanumerics}');
-    Error('\P{Block:   /a/ _Enclosed_Alphanumerics}');
+    Expect(1, 128591, '\p{Is_Blk=	EMOTICONS}', "");
+    Expect(0, 128591, '\p{^Is_Blk=	EMOTICONS}', "");
+    Expect(0, 128591, '\P{Is_Blk=	EMOTICONS}', "");
+    Expect(1, 128591, '\P{^Is_Blk=	EMOTICONS}', "");
+    Expect(0, 128592, '\p{Is_Blk=	EMOTICONS}', "");
+    Expect(1, 128592, '\p{^Is_Blk=	EMOTICONS}', "");
+    Expect(1, 128592, '\P{Is_Blk=	EMOTICONS}', "");
+    Expect(0, 128592, '\P{^Is_Blk=	EMOTICONS}', "");
+    Error('\p{Block: /a/ Enclosed_Alphanumerics}');
+    Error('\P{Block: /a/ Enclosed_Alphanumerics}');
     Expect(1, 9471, '\p{Block=:\AEnclosed_Alphanumerics\z:}', "");;
     Expect(0, 9472, '\p{Block=:\AEnclosed_Alphanumerics\z:}', "");;
     Expect(1, 9471, '\p{Block=enclosedalphanumerics}', "");
@@ -11076,16 +11420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9472, '\P{^Block=enclosedalphanumerics}', "");
     Expect(1, 9471, '\p{Block=:\Aenclosedalphanumerics\z:}', "");;
     Expect(0, 9472, '\p{Block=:\Aenclosedalphanumerics\z:}', "");;
-    Expect(1, 9471, '\p{Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9471, '\p{^Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9471, '\P{Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(1, 9471, '\P{^Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9472, '\p{Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(1, 9472, '\p{^Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(1, 9472, '\P{Block:	 enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9472, '\P{^Block:	 enclosed_ALPHANUMERICS}', "");
-    Error('\p{Blk=-/a/ENCLOSED_alphanum}');
-    Error('\P{Blk=-/a/ENCLOSED_alphanum}');
+    Expect(1, 9471, '\p{Block=- Enclosed_alphanumerics}', "");
+    Expect(0, 9471, '\p{^Block=- Enclosed_alphanumerics}', "");
+    Expect(0, 9471, '\P{Block=- Enclosed_alphanumerics}', "");
+    Expect(1, 9471, '\P{^Block=- Enclosed_alphanumerics}', "");
+    Expect(0, 9472, '\p{Block=- Enclosed_alphanumerics}', "");
+    Expect(1, 9472, '\p{^Block=- Enclosed_alphanumerics}', "");
+    Expect(1, 9472, '\P{Block=- Enclosed_alphanumerics}', "");
+    Expect(0, 9472, '\P{^Block=- Enclosed_alphanumerics}', "");
+    Error('\p{Blk=:=_ENCLOSED_ALPHANUM}');
+    Error('\P{Blk=:=_ENCLOSED_ALPHANUM}');
     Expect(1, 9471, '\p{Blk=:\AEnclosed_Alphanum\z:}', "");;
     Expect(0, 9472, '\p{Blk=:\AEnclosed_Alphanum\z:}', "");;
     Expect(1, 9471, '\p{Blk=enclosedalphanum}', "");
@@ -11098,16 +11442,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9472, '\P{^Blk=enclosedalphanum}', "");
     Expect(1, 9471, '\p{Blk=:\Aenclosedalphanum\z:}', "");;
     Expect(0, 9472, '\p{Blk=:\Aenclosedalphanum\z:}', "");;
-    Expect(1, 9471, '\p{Blk=	_Enclosed_Alphanum}', "");
-    Expect(0, 9471, '\p{^Blk=	_Enclosed_Alphanum}', "");
-    Expect(0, 9471, '\P{Blk=	_Enclosed_Alphanum}', "");
-    Expect(1, 9471, '\P{^Blk=	_Enclosed_Alphanum}', "");
-    Expect(0, 9472, '\p{Blk=	_Enclosed_Alphanum}', "");
-    Expect(1, 9472, '\p{^Blk=	_Enclosed_Alphanum}', "");
-    Expect(1, 9472, '\P{Blk=	_Enclosed_Alphanum}', "");
-    Expect(0, 9472, '\P{^Blk=	_Enclosed_Alphanum}', "");
-    Error('\p{Is_Block= enclosed_ALPHANUMERICS/a/}');
-    Error('\P{Is_Block= enclosed_ALPHANUMERICS/a/}');
+    Expect(1, 9471, '\p{Blk=__enclosed_Alphanum}', "");
+    Expect(0, 9471, '\p{^Blk=__enclosed_Alphanum}', "");
+    Expect(0, 9471, '\P{Blk=__enclosed_Alphanum}', "");
+    Expect(1, 9471, '\P{^Blk=__enclosed_Alphanum}', "");
+    Expect(0, 9472, '\p{Blk=__enclosed_Alphanum}', "");
+    Expect(1, 9472, '\p{^Blk=__enclosed_Alphanum}', "");
+    Expect(1, 9472, '\P{Blk=__enclosed_Alphanum}', "");
+    Expect(0, 9472, '\P{^Blk=__enclosed_Alphanum}', "");
+    Error('\p{Is_Block=:= Enclosed_Alphanumerics}');
+    Error('\P{Is_Block=:= Enclosed_Alphanumerics}');
     Expect(1, 9471, '\p{Is_Block=enclosedalphanumerics}', "");
     Expect(0, 9471, '\p{^Is_Block=enclosedalphanumerics}', "");
     Expect(0, 9471, '\P{Is_Block=enclosedalphanumerics}', "");
@@ -11116,16 +11460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9472, '\p{^Is_Block=enclosedalphanumerics}', "");
     Expect(1, 9472, '\P{Is_Block=enclosedalphanumerics}', "");
     Expect(0, 9472, '\P{^Is_Block=enclosedalphanumerics}', "");
-    Expect(1, 9471, '\p{Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(0, 9471, '\p{^Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(0, 9471, '\P{Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(1, 9471, '\P{^Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(0, 9472, '\p{Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(1, 9472, '\p{^Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(1, 9472, '\P{Is_Block=ENCLOSED_alphanumerics}', "");
-    Expect(0, 9472, '\P{^Is_Block=ENCLOSED_alphanumerics}', "");
-    Error('\p{Is_Blk=	/a/ENCLOSED_Alphanum}');
-    Error('\P{Is_Blk=	/a/ENCLOSED_Alphanum}');
+    Expect(1, 9471, '\p{Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(0, 9471, '\p{^Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(0, 9471, '\P{Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(1, 9471, '\P{^Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(0, 9472, '\p{Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(1, 9472, '\p{^Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(1, 9472, '\P{Is_Block= Enclosed_Alphanumerics}', "");
+    Expect(0, 9472, '\P{^Is_Block= Enclosed_Alphanumerics}', "");
+    Error('\p{Is_Blk=-/a/enclosed_Alphanum}');
+    Error('\P{Is_Blk=-/a/enclosed_Alphanum}');
     Expect(1, 9471, '\p{Is_Blk=enclosedalphanum}', "");
     Expect(0, 9471, '\p{^Is_Blk=enclosedalphanum}', "");
     Expect(0, 9471, '\P{Is_Blk=enclosedalphanum}', "");
@@ -11134,16 +11478,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9472, '\p{^Is_Blk=enclosedalphanum}', "");
     Expect(1, 9472, '\P{Is_Blk=enclosedalphanum}', "");
     Expect(0, 9472, '\P{^Is_Blk=enclosedalphanum}', "");
-    Expect(1, 9471, '\p{Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(0, 9471, '\p{^Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(0, 9471, '\P{Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(1, 9471, '\P{^Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(0, 9472, '\p{Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(1, 9472, '\p{^Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(1, 9472, '\P{Is_Blk:   -_Enclosed_alphanum}', "");
-    Expect(0, 9472, '\P{^Is_Blk:   -_Enclosed_alphanum}', "");
-    Error('\p{Block=/a/_	ENCLOSED_Alphanumeric_supplement}');
-    Error('\P{Block=/a/_	ENCLOSED_Alphanumeric_supplement}');
+    Expect(1, 9471, '\p{Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(0, 9471, '\p{^Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(0, 9471, '\P{Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(1, 9471, '\P{^Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(0, 9472, '\p{Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(1, 9472, '\p{^Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(1, 9472, '\P{Is_Blk= _Enclosed_ALPHANUM}', "");
+    Expect(0, 9472, '\P{^Is_Blk= _Enclosed_ALPHANUM}', "");
+    Error('\p{Block=/a/_Enclosed_ALPHANUMERIC_Supplement}');
+    Error('\P{Block=/a/_Enclosed_ALPHANUMERIC_Supplement}');
     Expect(1, 127487, '\p{Block=:\AEnclosed_Alphanumeric_Supplement\z:}', "");;
     Expect(0, 127488, '\p{Block=:\AEnclosed_Alphanumeric_Supplement\z:}', "");;
     Expect(1, 127487, '\p{Block=enclosedalphanumericsupplement}', "");
@@ -11156,16 +11500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127488, '\P{^Block=enclosedalphanumericsupplement}', "");
     Expect(1, 127487, '\p{Block=:\Aenclosedalphanumericsupplement\z:}', "");;
     Expect(0, 127488, '\p{Block=:\Aenclosedalphanumericsupplement\z:}', "");;
-    Expect(1, 127487, '\p{Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127487, '\p{^Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127487, '\P{Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(1, 127487, '\P{^Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127488, '\p{Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(1, 127488, '\p{^Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(1, 127488, '\P{Block=_enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127488, '\P{^Block=_enclosed_Alphanumeric_supplement}', "");
-    Error('\p{Blk=	:=Enclosed_alphanum_SUP}');
-    Error('\P{Blk=	:=Enclosed_alphanum_SUP}');
+    Expect(1, 127487, '\p{Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\p{^Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\P{Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(1, 127487, '\P{^Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\p{Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\p{^Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\P{Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\P{^Block:		 Enclosed_Alphanumeric_Supplement}', "");
+    Error('\p{Blk=_ENCLOSED_ALPHANUM_Sup/a/}');
+    Error('\P{Blk=_ENCLOSED_ALPHANUM_Sup/a/}');
     Expect(1, 127487, '\p{Blk=:\AEnclosed_Alphanum_Sup\z:}', "");;
     Expect(0, 127488, '\p{Blk=:\AEnclosed_Alphanum_Sup\z:}', "");;
     Expect(1, 127487, '\p{Blk=enclosedalphanumsup}', "");
@@ -11178,16 +11522,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127488, '\P{^Blk=enclosedalphanumsup}', "");
     Expect(1, 127487, '\p{Blk=:\Aenclosedalphanumsup\z:}', "");;
     Expect(0, 127488, '\p{Blk=:\Aenclosedalphanumsup\z:}', "");;
-    Expect(1, 127487, '\p{Blk=		Enclosed_alphanum_sup}', "");
-    Expect(0, 127487, '\p{^Blk=		Enclosed_alphanum_sup}', "");
-    Expect(0, 127487, '\P{Blk=		Enclosed_alphanum_sup}', "");
-    Expect(1, 127487, '\P{^Blk=		Enclosed_alphanum_sup}', "");
-    Expect(0, 127488, '\p{Blk=		Enclosed_alphanum_sup}', "");
-    Expect(1, 127488, '\p{^Blk=		Enclosed_alphanum_sup}', "");
-    Expect(1, 127488, '\P{Blk=		Enclosed_alphanum_sup}', "");
-    Expect(0, 127488, '\P{^Blk=		Enclosed_alphanum_sup}', "");
-    Error('\p{Is_Block=/a/  Enclosed_Alphanumeric_supplement}');
-    Error('\P{Is_Block=/a/  Enclosed_Alphanumeric_supplement}');
+    Expect(1, 127487, '\p{Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(0, 127487, '\p{^Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(0, 127487, '\P{Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(1, 127487, '\P{^Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(0, 127488, '\p{Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(1, 127488, '\p{^Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(1, 127488, '\P{Blk=	 enclosed_Alphanum_Sup}', "");
+    Expect(0, 127488, '\P{^Blk=	 enclosed_Alphanum_Sup}', "");
+    Error('\p{Is_Block:	/a/-	ENCLOSED_alphanumeric_Supplement}');
+    Error('\P{Is_Block:	/a/-	ENCLOSED_alphanumeric_Supplement}');
     Expect(1, 127487, '\p{Is_Block=enclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\p{^Is_Block=enclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\P{Is_Block=enclosedalphanumericsupplement}', "");
@@ -11196,16 +11540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127488, '\p{^Is_Block=enclosedalphanumericsupplement}', "");
     Expect(1, 127488, '\P{Is_Block=enclosedalphanumericsupplement}', "");
     Expect(0, 127488, '\P{^Is_Block=enclosedalphanumericsupplement}', "");
-    Expect(1, 127487, '\p{Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127487, '\p{^Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127487, '\P{Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(1, 127487, '\P{^Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127488, '\p{Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(1, 127488, '\p{^Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(1, 127488, '\P{Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Expect(0, 127488, '\P{^Is_Block=-Enclosed_Alphanumeric_supplement}', "");
-    Error('\p{Is_Blk=:=  Enclosed_ALPHANUM_SUP}');
-    Error('\P{Is_Blk=:=  Enclosed_ALPHANUM_SUP}');
+    Expect(1, 127487, '\p{Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\p{^Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\P{Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(1, 127487, '\P{^Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\p{Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\p{^Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\P{Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\P{^Is_Block= -Enclosed_alphanumeric_Supplement}', "");
+    Error('\p{Is_Blk=:=  ENCLOSED_Alphanum_SUP}');
+    Error('\P{Is_Blk=:=  ENCLOSED_Alphanum_SUP}');
     Expect(1, 127487, '\p{Is_Blk=enclosedalphanumsup}', "");
     Expect(0, 127487, '\p{^Is_Blk=enclosedalphanumsup}', "");
     Expect(0, 127487, '\P{Is_Blk=enclosedalphanumsup}', "");
@@ -11214,16 +11558,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127488, '\p{^Is_Blk=enclosedalphanumsup}', "");
     Expect(1, 127488, '\P{Is_Blk=enclosedalphanumsup}', "");
     Expect(0, 127488, '\P{^Is_Blk=enclosedalphanumsup}', "");
-    Expect(1, 127487, '\p{Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(0, 127487, '\p{^Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(0, 127487, '\P{Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(1, 127487, '\P{^Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(0, 127488, '\p{Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(1, 127488, '\p{^Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(1, 127488, '\P{Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Expect(0, 127488, '\P{^Is_Blk= -ENCLOSED_Alphanum_SUP}', "");
-    Error('\p{Block=_:=Enclosed_CJK_letters_And_months}');
-    Error('\P{Block=_:=Enclosed_CJK_letters_And_months}');
+    Expect(1, 127487, '\p{Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(0, 127487, '\p{^Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(0, 127487, '\P{Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(1, 127487, '\P{^Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(0, 127488, '\p{Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(1, 127488, '\p{^Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(1, 127488, '\P{Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Expect(0, 127488, '\P{^Is_Blk=_ ENCLOSED_alphanum_Sup}', "");
+    Error('\p{Block=	Enclosed_CJK_Letters_And_Months:=}');
+    Error('\P{Block=	Enclosed_CJK_Letters_And_Months:=}');
     Expect(1, 13055, '\p{Block=:\AEnclosed_CJK_Letters_And_Months\z:}', "");;
     Expect(0, 13056, '\p{Block=:\AEnclosed_CJK_Letters_And_Months\z:}', "");;
     Expect(1, 13055, '\p{Block=enclosedcjklettersandmonths}', "");
@@ -11236,16 +11580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 13056, '\P{^Block=enclosedcjklettersandmonths}', "");
     Expect(1, 13055, '\p{Block=:\Aenclosedcjklettersandmonths\z:}', "");;
     Expect(0, 13056, '\p{Block=:\Aenclosedcjklettersandmonths\z:}', "");;
-    Expect(1, 13055, '\p{Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(0, 13055, '\p{^Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(0, 13055, '\P{Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(1, 13055, '\P{^Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(0, 13056, '\p{Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(1, 13056, '\p{^Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(1, 13056, '\P{Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Expect(0, 13056, '\P{^Block=  ENCLOSED_CJK_Letters_and_MONTHS}', "");
-    Error('\p{Blk=-:=Enclosed_cjk}');
-    Error('\P{Blk=-:=Enclosed_cjk}');
+    Expect(1, 13055, '\p{Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13055, '\p{^Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13055, '\P{Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(1, 13055, '\P{^Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13056, '\p{Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(1, 13056, '\p{^Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(1, 13056, '\P{Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13056, '\P{^Block=  enclosed_CJK_LETTERS_And_Months}', "");
+    Error('\p{Blk=-_Enclosed_CJK:=}');
+    Error('\P{Blk=-_Enclosed_CJK:=}');
     Expect(1, 13055, '\p{Blk=:\AEnclosed_CJK\z:}', "");;
     Expect(0, 13056, '\p{Blk=:\AEnclosed_CJK\z:}', "");;
     Expect(1, 13055, '\p{Blk=enclosedcjk}', "");
@@ -11258,16 +11602,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 13056, '\P{^Blk=enclosedcjk}', "");
     Expect(1, 13055, '\p{Blk=:\Aenclosedcjk\z:}', "");;
     Expect(0, 13056, '\p{Blk=:\Aenclosedcjk\z:}', "");;
-    Expect(1, 13055, '\p{Blk=_Enclosed_CJK}', "");
-    Expect(0, 13055, '\p{^Blk=_Enclosed_CJK}', "");
-    Expect(0, 13055, '\P{Blk=_Enclosed_CJK}', "");
-    Expect(1, 13055, '\P{^Blk=_Enclosed_CJK}', "");
-    Expect(0, 13056, '\p{Blk=_Enclosed_CJK}', "");
-    Expect(1, 13056, '\p{^Blk=_Enclosed_CJK}', "");
-    Expect(1, 13056, '\P{Blk=_Enclosed_CJK}', "");
-    Expect(0, 13056, '\P{^Blk=_Enclosed_CJK}', "");
-    Error('\p{Is_Block=--enclosed_CJK_Letters_and_Months/a/}');
-    Error('\P{Is_Block=--enclosed_CJK_Letters_and_Months/a/}');
+    Expect(1, 13055, '\p{Blk= -enclosed_cjk}', "");
+    Expect(0, 13055, '\p{^Blk= -enclosed_cjk}', "");
+    Expect(0, 13055, '\P{Blk= -enclosed_cjk}', "");
+    Expect(1, 13055, '\P{^Blk= -enclosed_cjk}', "");
+    Expect(0, 13056, '\p{Blk= -enclosed_cjk}', "");
+    Expect(1, 13056, '\p{^Blk= -enclosed_cjk}', "");
+    Expect(1, 13056, '\P{Blk= -enclosed_cjk}', "");
+    Expect(0, 13056, '\P{^Blk= -enclosed_cjk}', "");
+    Error('\p{Is_Block=:=-Enclosed_cjk_letters_And_Months}');
+    Error('\P{Is_Block=:=-Enclosed_cjk_letters_And_Months}');
     Expect(1, 13055, '\p{Is_Block=enclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\p{^Is_Block=enclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\P{Is_Block=enclosedcjklettersandmonths}', "");
@@ -11276,16 +11620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 13056, '\p{^Is_Block=enclosedcjklettersandmonths}', "");
     Expect(1, 13056, '\P{Is_Block=enclosedcjklettersandmonths}', "");
     Expect(0, 13056, '\P{^Is_Block=enclosedcjklettersandmonths}', "");
-    Expect(1, 13055, '\p{Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(0, 13055, '\p{^Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(0, 13055, '\P{Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(1, 13055, '\P{^Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(0, 13056, '\p{Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(1, 13056, '\p{^Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(1, 13056, '\P{Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Expect(0, 13056, '\P{^Is_Block:		-ENCLOSED_cjk_Letters_and_months}', "");
-    Error('\p{Is_Blk=:=-enclosed_CJK}');
-    Error('\P{Is_Blk=:=-enclosed_CJK}');
+    Expect(1, 13055, '\p{Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13055, '\p{^Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13055, '\P{Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(1, 13055, '\P{^Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13056, '\p{Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(1, 13056, '\p{^Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(1, 13056, '\P{Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Expect(0, 13056, '\P{^Is_Block=-Enclosed_CJK_LETTERS_And_Months}', "");
+    Error('\p{Is_Blk=__Enclosed_CJK/a/}');
+    Error('\P{Is_Blk=__Enclosed_CJK/a/}');
     Expect(1, 13055, '\p{Is_Blk=enclosedcjk}', "");
     Expect(0, 13055, '\p{^Is_Blk=enclosedcjk}', "");
     Expect(0, 13055, '\P{Is_Blk=enclosedcjk}', "");
@@ -11294,16 +11638,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 13056, '\p{^Is_Blk=enclosedcjk}', "");
     Expect(1, 13056, '\P{Is_Blk=enclosedcjk}', "");
     Expect(0, 13056, '\P{^Is_Blk=enclosedcjk}', "");
-    Expect(1, 13055, '\p{Is_Blk=_-enclosed_CJK}', "");
-    Expect(0, 13055, '\p{^Is_Blk=_-enclosed_CJK}', "");
-    Expect(0, 13055, '\P{Is_Blk=_-enclosed_CJK}', "");
-    Expect(1, 13055, '\P{^Is_Blk=_-enclosed_CJK}', "");
-    Expect(0, 13056, '\p{Is_Blk=_-enclosed_CJK}', "");
-    Expect(1, 13056, '\p{^Is_Blk=_-enclosed_CJK}', "");
-    Expect(1, 13056, '\P{Is_Blk=_-enclosed_CJK}', "");
-    Expect(0, 13056, '\P{^Is_Blk=_-enclosed_CJK}', "");
-    Error('\p{Block=:= _ENCLOSED_IDEOGRAPHIC_SUPPLEMENT}');
-    Error('\P{Block=:= _ENCLOSED_IDEOGRAPHIC_SUPPLEMENT}');
+    Expect(1, 13055, '\p{Is_Blk=		Enclosed_CJK}', "");
+    Expect(0, 13055, '\p{^Is_Blk=		Enclosed_CJK}', "");
+    Expect(0, 13055, '\P{Is_Blk=		Enclosed_CJK}', "");
+    Expect(1, 13055, '\P{^Is_Blk=		Enclosed_CJK}', "");
+    Expect(0, 13056, '\p{Is_Blk=		Enclosed_CJK}', "");
+    Expect(1, 13056, '\p{^Is_Blk=		Enclosed_CJK}', "");
+    Expect(1, 13056, '\P{Is_Blk=		Enclosed_CJK}', "");
+    Expect(0, 13056, '\P{^Is_Blk=		Enclosed_CJK}', "");
+    Error('\p{Block=	/a/Enclosed_Ideographic_Supplement}');
+    Error('\P{Block=	/a/Enclosed_Ideographic_Supplement}');
     Expect(1, 127743, '\p{Block=:\AEnclosed_Ideographic_Supplement\z:}', "");;
     Expect(0, 127744, '\p{Block=:\AEnclosed_Ideographic_Supplement\z:}', "");;
     Expect(1, 127743, '\p{Block=enclosedideographicsupplement}', "");
@@ -11316,56 +11660,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127744, '\P{^Block=enclosedideographicsupplement}', "");
     Expect(1, 127743, '\p{Block=:\Aenclosedideographicsupplement\z:}', "");;
     Expect(0, 127744, '\p{Block=:\Aenclosedideographicsupplement\z:}', "");;
-    Expect(1, 127743, '\p{Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(0, 127743, '\p{^Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(0, 127743, '\P{Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(1, 127743, '\P{^Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(0, 127744, '\p{Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(1, 127744, '\p{^Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(1, 127744, '\P{Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Expect(0, 127744, '\P{^Block:    ENCLOSED_Ideographic_Supplement}', "");
-    Error('\p{Blk=:= _ENCLOSED_Ideographic_Sup}');
-    Error('\P{Blk=:= _ENCLOSED_Ideographic_Sup}');
+    Expect(1, 127743, '\p{Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(0, 127743, '\p{^Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(0, 127743, '\P{Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(1, 127743, '\P{^Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(0, 127744, '\p{Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(1, 127744, '\p{^Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(1, 127744, '\P{Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Expect(0, 127744, '\P{^Block=_Enclosed_IDEOGRAPHIC_Supplement}', "");
+    Error('\p{Blk=_ENCLOSED_ideographic_Sup/a/}');
+    Error('\P{Blk=_ENCLOSED_ideographic_Sup/a/}');
     Expect(1, 127743, '\p{Blk=:\AEnclosed_Ideographic_Sup\z:}', "");;
     Expect(0, 127744, '\p{Blk=:\AEnclosed_Ideographic_Sup\z:}', "");;
-    Expect(1, 127743, '\p{Blk=enclosedideographicsup}', "");
-    Expect(0, 127743, '\p{^Blk=enclosedideographicsup}', "");
-    Expect(0, 127743, '\P{Blk=enclosedideographicsup}', "");
-    Expect(1, 127743, '\P{^Blk=enclosedideographicsup}', "");
-    Expect(0, 127744, '\p{Blk=enclosedideographicsup}', "");
-    Expect(1, 127744, '\p{^Blk=enclosedideographicsup}', "");
-    Expect(1, 127744, '\P{Blk=enclosedideographicsup}', "");
-    Expect(0, 127744, '\P{^Blk=enclosedideographicsup}', "");
+    Expect(1, 127743, '\p{Blk:enclosedideographicsup}', "");
+    Expect(0, 127743, '\p{^Blk:enclosedideographicsup}', "");
+    Expect(0, 127743, '\P{Blk:enclosedideographicsup}', "");
+    Expect(1, 127743, '\P{^Blk:enclosedideographicsup}', "");
+    Expect(0, 127744, '\p{Blk:enclosedideographicsup}', "");
+    Expect(1, 127744, '\p{^Blk:enclosedideographicsup}', "");
+    Expect(1, 127744, '\P{Blk:enclosedideographicsup}', "");
+    Expect(0, 127744, '\P{^Blk:enclosedideographicsup}', "");
     Expect(1, 127743, '\p{Blk=:\Aenclosedideographicsup\z:}', "");;
     Expect(0, 127744, '\p{Blk=:\Aenclosedideographicsup\z:}', "");;
-    Expect(1, 127743, '\p{Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127743, '\p{^Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127743, '\P{Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(1, 127743, '\P{^Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127744, '\p{Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(1, 127744, '\p{^Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(1, 127744, '\P{Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127744, '\P{^Blk=	ENCLOSED_Ideographic_Sup}', "");
-    Error('\p{Is_Block::=	 ENCLOSED_Ideographic_SUPPLEMENT}');
-    Error('\P{Is_Block::=	 ENCLOSED_Ideographic_SUPPLEMENT}');
-    Expect(1, 127743, '\p{Is_Block: enclosedideographicsupplement}', "");
-    Expect(0, 127743, '\p{^Is_Block: enclosedideographicsupplement}', "");
-    Expect(0, 127743, '\P{Is_Block: enclosedideographicsupplement}', "");
-    Expect(1, 127743, '\P{^Is_Block: enclosedideographicsupplement}', "");
-    Expect(0, 127744, '\p{Is_Block: enclosedideographicsupplement}', "");
-    Expect(1, 127744, '\p{^Is_Block: enclosedideographicsupplement}', "");
-    Expect(1, 127744, '\P{Is_Block: enclosedideographicsupplement}', "");
-    Expect(0, 127744, '\P{^Is_Block: enclosedideographicsupplement}', "");
-    Expect(1, 127743, '\p{Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(0, 127743, '\p{^Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(0, 127743, '\P{Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(1, 127743, '\P{^Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(0, 127744, '\p{Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(1, 127744, '\p{^Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(1, 127744, '\P{Is_Block=	Enclosed_ideographic_supplement}', "");
-    Expect(0, 127744, '\P{^Is_Block=	Enclosed_ideographic_supplement}', "");
-    Error('\p{Is_Blk=/a/__enclosed_ideographic_Sup}');
-    Error('\P{Is_Blk=/a/__enclosed_ideographic_Sup}');
+    Expect(1, 127743, '\p{Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(0, 127743, '\p{^Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(0, 127743, '\P{Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(1, 127743, '\P{^Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(0, 127744, '\p{Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(1, 127744, '\p{^Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(1, 127744, '\P{Blk=- Enclosed_ideographic_SUP}', "");
+    Expect(0, 127744, '\P{^Blk=- Enclosed_ideographic_SUP}', "");
+    Error('\p{Is_Block=_Enclosed_IDEOGRAPHIC_supplement:=}');
+    Error('\P{Is_Block=_Enclosed_IDEOGRAPHIC_supplement:=}');
+    Expect(1, 127743, '\p{Is_Block=enclosedideographicsupplement}', "");
+    Expect(0, 127743, '\p{^Is_Block=enclosedideographicsupplement}', "");
+    Expect(0, 127743, '\P{Is_Block=enclosedideographicsupplement}', "");
+    Expect(1, 127743, '\P{^Is_Block=enclosedideographicsupplement}', "");
+    Expect(0, 127744, '\p{Is_Block=enclosedideographicsupplement}', "");
+    Expect(1, 127744, '\p{^Is_Block=enclosedideographicsupplement}', "");
+    Expect(1, 127744, '\P{Is_Block=enclosedideographicsupplement}', "");
+    Expect(0, 127744, '\P{^Is_Block=enclosedideographicsupplement}', "");
+    Expect(1, 127743, '\p{Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(0, 127743, '\p{^Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(0, 127743, '\P{Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(1, 127743, '\P{^Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(0, 127744, '\p{Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(1, 127744, '\p{^Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(1, 127744, '\P{Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Expect(0, 127744, '\P{^Is_Block=-ENCLOSED_Ideographic_Supplement}', "");
+    Error('\p{Is_Blk=/a/-enclosed_Ideographic_Sup}');
+    Error('\P{Is_Blk=/a/-enclosed_Ideographic_Sup}');
     Expect(1, 127743, '\p{Is_Blk=enclosedideographicsup}', "");
     Expect(0, 127743, '\p{^Is_Blk=enclosedideographicsup}', "");
     Expect(0, 127743, '\P{Is_Blk=enclosedideographicsup}', "");
@@ -11374,16 +11718,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127744, '\p{^Is_Blk=enclosedideographicsup}', "");
     Expect(1, 127744, '\P{Is_Blk=enclosedideographicsup}', "");
     Expect(0, 127744, '\P{^Is_Blk=enclosedideographicsup}', "");
-    Expect(1, 127743, '\p{Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(0, 127743, '\p{^Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(0, 127743, '\P{Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(1, 127743, '\P{^Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(0, 127744, '\p{Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(1, 127744, '\p{^Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(1, 127744, '\P{Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Expect(0, 127744, '\P{^Is_Blk=-ENCLOSED_Ideographic_sup}', "");
-    Error('\p{Block=/a/-Ethiopic}');
-    Error('\P{Block=/a/-Ethiopic}');
+    Expect(1, 127743, '\p{Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(0, 127743, '\p{^Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(0, 127743, '\P{Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(1, 127743, '\P{^Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(0, 127744, '\p{Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(1, 127744, '\p{^Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(1, 127744, '\P{Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Expect(0, 127744, '\P{^Is_Blk=_	Enclosed_Ideographic_sup}', "");
+    Error('\p{Block=-ETHIOPIC/a/}');
+    Error('\P{Block=-ETHIOPIC/a/}');
     Expect(1, 4991, '\p{Block=:\AEthiopic\z:}', "");;
     Expect(0, 4992, '\p{Block=:\AEthiopic\z:}', "");;
     Expect(1, 4991, '\p{Block=ethiopic}', "");
@@ -11396,16 +11740,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4992, '\P{^Block=ethiopic}', "");
     Expect(1, 4991, '\p{Block=:\Aethiopic\z:}', "");;
     Expect(0, 4992, '\p{Block=:\Aethiopic\z:}', "");;
-    Expect(1, 4991, '\p{Block=-Ethiopic}', "");
-    Expect(0, 4991, '\p{^Block=-Ethiopic}', "");
-    Expect(0, 4991, '\P{Block=-Ethiopic}', "");
-    Expect(1, 4991, '\P{^Block=-Ethiopic}', "");
-    Expect(0, 4992, '\p{Block=-Ethiopic}', "");
-    Expect(1, 4992, '\p{^Block=-Ethiopic}', "");
-    Expect(1, 4992, '\P{Block=-Ethiopic}', "");
-    Expect(0, 4992, '\P{^Block=-Ethiopic}', "");
-    Error('\p{Blk=_/a/ethiopic}');
-    Error('\P{Blk=_/a/ethiopic}');
+    Expect(1, 4991, '\p{Block= Ethiopic}', "");
+    Expect(0, 4991, '\p{^Block= Ethiopic}', "");
+    Expect(0, 4991, '\P{Block= Ethiopic}', "");
+    Expect(1, 4991, '\P{^Block= Ethiopic}', "");
+    Expect(0, 4992, '\p{Block= Ethiopic}', "");
+    Expect(1, 4992, '\p{^Block= Ethiopic}', "");
+    Expect(1, 4992, '\P{Block= Ethiopic}', "");
+    Expect(0, 4992, '\P{^Block= Ethiopic}', "");
+    Error('\p{Blk=/a/-_Ethiopic}');
+    Error('\P{Blk=/a/-_Ethiopic}');
     Expect(1, 4991, '\p{Blk=:\AEthiopic\z:}', "");;
     Expect(0, 4992, '\p{Blk=:\AEthiopic\z:}', "");;
     Expect(1, 4991, '\p{Blk=ethiopic}', "");
@@ -11418,16 +11762,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4992, '\P{^Blk=ethiopic}', "");
     Expect(1, 4991, '\p{Blk=:\Aethiopic\z:}', "");;
     Expect(0, 4992, '\p{Blk=:\Aethiopic\z:}', "");;
-    Expect(1, 4991, '\p{Blk=  ETHIOPIC}', "");
-    Expect(0, 4991, '\p{^Blk=  ETHIOPIC}', "");
-    Expect(0, 4991, '\P{Blk=  ETHIOPIC}', "");
-    Expect(1, 4991, '\P{^Blk=  ETHIOPIC}', "");
-    Expect(0, 4992, '\p{Blk=  ETHIOPIC}', "");
-    Expect(1, 4992, '\p{^Blk=  ETHIOPIC}', "");
-    Expect(1, 4992, '\P{Blk=  ETHIOPIC}', "");
-    Expect(0, 4992, '\P{^Blk=  ETHIOPIC}', "");
-    Error('\p{Is_Block=-Ethiopic:=}');
-    Error('\P{Is_Block=-Ethiopic:=}');
+    Expect(1, 4991, '\p{Blk=_ Ethiopic}', "");
+    Expect(0, 4991, '\p{^Blk=_ Ethiopic}', "");
+    Expect(0, 4991, '\P{Blk=_ Ethiopic}', "");
+    Expect(1, 4991, '\P{^Blk=_ Ethiopic}', "");
+    Expect(0, 4992, '\p{Blk=_ Ethiopic}', "");
+    Expect(1, 4992, '\p{^Blk=_ Ethiopic}', "");
+    Expect(1, 4992, '\P{Blk=_ Ethiopic}', "");
+    Expect(0, 4992, '\P{^Blk=_ Ethiopic}', "");
+    Error('\p{Is_Block=_Ethiopic/a/}');
+    Error('\P{Is_Block=_Ethiopic/a/}');
     Expect(1, 4991, '\p{Is_Block=ethiopic}', "");
     Expect(0, 4991, '\p{^Is_Block=ethiopic}', "");
     Expect(0, 4991, '\P{Is_Block=ethiopic}', "");
@@ -11436,34 +11780,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4992, '\p{^Is_Block=ethiopic}', "");
     Expect(1, 4992, '\P{Is_Block=ethiopic}', "");
     Expect(0, 4992, '\P{^Is_Block=ethiopic}', "");
-    Expect(1, 4991, '\p{Is_Block=		Ethiopic}', "");
-    Expect(0, 4991, '\p{^Is_Block=		Ethiopic}', "");
-    Expect(0, 4991, '\P{Is_Block=		Ethiopic}', "");
-    Expect(1, 4991, '\P{^Is_Block=		Ethiopic}', "");
-    Expect(0, 4992, '\p{Is_Block=		Ethiopic}', "");
-    Expect(1, 4992, '\p{^Is_Block=		Ethiopic}', "");
-    Expect(1, 4992, '\P{Is_Block=		Ethiopic}', "");
-    Expect(0, 4992, '\P{^Is_Block=		Ethiopic}', "");
-    Error('\p{Is_Blk=/a/_Ethiopic}');
-    Error('\P{Is_Blk=/a/_Ethiopic}');
-    Expect(1, 4991, '\p{Is_Blk=ethiopic}', "");
-    Expect(0, 4991, '\p{^Is_Blk=ethiopic}', "");
-    Expect(0, 4991, '\P{Is_Blk=ethiopic}', "");
-    Expect(1, 4991, '\P{^Is_Blk=ethiopic}', "");
-    Expect(0, 4992, '\p{Is_Blk=ethiopic}', "");
-    Expect(1, 4992, '\p{^Is_Blk=ethiopic}', "");
-    Expect(1, 4992, '\P{Is_Blk=ethiopic}', "");
-    Expect(0, 4992, '\P{^Is_Blk=ethiopic}', "");
-    Expect(1, 4991, '\p{Is_Blk=_-Ethiopic}', "");
-    Expect(0, 4991, '\p{^Is_Blk=_-Ethiopic}', "");
-    Expect(0, 4991, '\P{Is_Blk=_-Ethiopic}', "");
-    Expect(1, 4991, '\P{^Is_Blk=_-Ethiopic}', "");
-    Expect(0, 4992, '\p{Is_Blk=_-Ethiopic}', "");
-    Expect(1, 4992, '\p{^Is_Blk=_-Ethiopic}', "");
-    Expect(1, 4992, '\P{Is_Blk=_-Ethiopic}', "");
-    Expect(0, 4992, '\P{^Is_Blk=_-Ethiopic}', "");
-    Error('\p{Block= /a/ethiopic_Extended}');
-    Error('\P{Block= /a/ethiopic_Extended}');
+    Expect(1, 4991, '\p{Is_Block=-_Ethiopic}', "");
+    Expect(0, 4991, '\p{^Is_Block=-_Ethiopic}', "");
+    Expect(0, 4991, '\P{Is_Block=-_Ethiopic}', "");
+    Expect(1, 4991, '\P{^Is_Block=-_Ethiopic}', "");
+    Expect(0, 4992, '\p{Is_Block=-_Ethiopic}', "");
+    Expect(1, 4992, '\p{^Is_Block=-_Ethiopic}', "");
+    Expect(1, 4992, '\P{Is_Block=-_Ethiopic}', "");
+    Expect(0, 4992, '\P{^Is_Block=-_Ethiopic}', "");
+    Error('\p{Is_Blk=	/a/Ethiopic}');
+    Error('\P{Is_Blk=	/a/Ethiopic}');
+    Expect(1, 4991, '\p{Is_Blk:	ethiopic}', "");
+    Expect(0, 4991, '\p{^Is_Blk:	ethiopic}', "");
+    Expect(0, 4991, '\P{Is_Blk:	ethiopic}', "");
+    Expect(1, 4991, '\P{^Is_Blk:	ethiopic}', "");
+    Expect(0, 4992, '\p{Is_Blk:	ethiopic}', "");
+    Expect(1, 4992, '\p{^Is_Blk:	ethiopic}', "");
+    Expect(1, 4992, '\P{Is_Blk:	ethiopic}', "");
+    Expect(0, 4992, '\P{^Is_Blk:	ethiopic}', "");
+    Expect(1, 4991, '\p{Is_Blk= Ethiopic}', "");
+    Expect(0, 4991, '\p{^Is_Blk= Ethiopic}', "");
+    Expect(0, 4991, '\P{Is_Blk= Ethiopic}', "");
+    Expect(1, 4991, '\P{^Is_Blk= Ethiopic}', "");
+    Expect(0, 4992, '\p{Is_Blk= Ethiopic}', "");
+    Expect(1, 4992, '\p{^Is_Blk= Ethiopic}', "");
+    Expect(1, 4992, '\P{Is_Blk= Ethiopic}', "");
+    Expect(0, 4992, '\P{^Is_Blk= Ethiopic}', "");
+    Error('\p{Block=  Ethiopic_Extended:=}');
+    Error('\P{Block=  Ethiopic_Extended:=}');
     Expect(1, 11743, '\p{Block=:\AEthiopic_Extended\z:}', "");;
     Expect(0, 11744, '\p{Block=:\AEthiopic_Extended\z:}', "");;
     Expect(1, 11743, '\p{Block=ethiopicextended}', "");
@@ -11476,16 +11820,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11744, '\P{^Block=ethiopicextended}', "");
     Expect(1, 11743, '\p{Block=:\Aethiopicextended\z:}', "");;
     Expect(0, 11744, '\p{Block=:\Aethiopicextended\z:}', "");;
-    Expect(1, 11743, '\p{Block=-	ETHIOPIC_Extended}', "");
-    Expect(0, 11743, '\p{^Block=-	ETHIOPIC_Extended}', "");
-    Expect(0, 11743, '\P{Block=-	ETHIOPIC_Extended}', "");
-    Expect(1, 11743, '\P{^Block=-	ETHIOPIC_Extended}', "");
-    Expect(0, 11744, '\p{Block=-	ETHIOPIC_Extended}', "");
-    Expect(1, 11744, '\p{^Block=-	ETHIOPIC_Extended}', "");
-    Expect(1, 11744, '\P{Block=-	ETHIOPIC_Extended}', "");
-    Expect(0, 11744, '\P{^Block=-	ETHIOPIC_Extended}', "");
-    Error('\p{Blk=:=_ethiopic_Ext}');
-    Error('\P{Blk=:=_ethiopic_Ext}');
+    Expect(1, 11743, '\p{Block=_ethiopic_Extended}', "");
+    Expect(0, 11743, '\p{^Block=_ethiopic_Extended}', "");
+    Expect(0, 11743, '\P{Block=_ethiopic_Extended}', "");
+    Expect(1, 11743, '\P{^Block=_ethiopic_Extended}', "");
+    Expect(0, 11744, '\p{Block=_ethiopic_Extended}', "");
+    Expect(1, 11744, '\p{^Block=_ethiopic_Extended}', "");
+    Expect(1, 11744, '\P{Block=_ethiopic_Extended}', "");
+    Expect(0, 11744, '\P{^Block=_ethiopic_Extended}', "");
+    Error('\p{Blk= /a/ETHIOPIC_Ext}');
+    Error('\P{Blk= /a/ETHIOPIC_Ext}');
     Expect(1, 11743, '\p{Blk=:\AEthiopic_Ext\z:}', "");;
     Expect(0, 11744, '\p{Blk=:\AEthiopic_Ext\z:}', "");;
     Expect(1, 11743, '\p{Blk=ethiopicext}', "");
@@ -11498,16 +11842,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11744, '\P{^Blk=ethiopicext}', "");
     Expect(1, 11743, '\p{Blk=:\Aethiopicext\z:}', "");;
     Expect(0, 11744, '\p{Blk=:\Aethiopicext\z:}', "");;
-    Expect(1, 11743, '\p{Blk=_ETHIOPIC_Ext}', "");
-    Expect(0, 11743, '\p{^Blk=_ETHIOPIC_Ext}', "");
-    Expect(0, 11743, '\P{Blk=_ETHIOPIC_Ext}', "");
-    Expect(1, 11743, '\P{^Blk=_ETHIOPIC_Ext}', "");
-    Expect(0, 11744, '\p{Blk=_ETHIOPIC_Ext}', "");
-    Expect(1, 11744, '\p{^Blk=_ETHIOPIC_Ext}', "");
-    Expect(1, 11744, '\P{Blk=_ETHIOPIC_Ext}', "");
-    Expect(0, 11744, '\P{^Blk=_ETHIOPIC_Ext}', "");
-    Error('\p{Is_Block=:=--ETHIOPIC_EXTENDED}');
-    Error('\P{Is_Block=:=--ETHIOPIC_EXTENDED}');
+    Expect(1, 11743, '\p{Blk=_ethiopic_Ext}', "");
+    Expect(0, 11743, '\p{^Blk=_ethiopic_Ext}', "");
+    Expect(0, 11743, '\P{Blk=_ethiopic_Ext}', "");
+    Expect(1, 11743, '\P{^Blk=_ethiopic_Ext}', "");
+    Expect(0, 11744, '\p{Blk=_ethiopic_Ext}', "");
+    Expect(1, 11744, '\p{^Blk=_ethiopic_Ext}', "");
+    Expect(1, 11744, '\P{Blk=_ethiopic_Ext}', "");
+    Expect(0, 11744, '\P{^Blk=_ethiopic_Ext}', "");
+    Error('\p{Is_Block=:=Ethiopic_extended}');
+    Error('\P{Is_Block=:=Ethiopic_extended}');
     Expect(1, 11743, '\p{Is_Block=ethiopicextended}', "");
     Expect(0, 11743, '\p{^Is_Block=ethiopicextended}', "");
     Expect(0, 11743, '\P{Is_Block=ethiopicextended}', "");
@@ -11516,16 +11860,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11744, '\p{^Is_Block=ethiopicextended}', "");
     Expect(1, 11744, '\P{Is_Block=ethiopicextended}', "");
     Expect(0, 11744, '\P{^Is_Block=ethiopicextended}', "");
-    Expect(1, 11743, '\p{Is_Block:_Ethiopic_Extended}', "");
-    Expect(0, 11743, '\p{^Is_Block:_Ethiopic_Extended}', "");
-    Expect(0, 11743, '\P{Is_Block:_Ethiopic_Extended}', "");
-    Expect(1, 11743, '\P{^Is_Block:_Ethiopic_Extended}', "");
-    Expect(0, 11744, '\p{Is_Block:_Ethiopic_Extended}', "");
-    Expect(1, 11744, '\p{^Is_Block:_Ethiopic_Extended}', "");
-    Expect(1, 11744, '\P{Is_Block:_Ethiopic_Extended}', "");
-    Expect(0, 11744, '\P{^Is_Block:_Ethiopic_Extended}', "");
-    Error('\p{Is_Blk=_/a/ethiopic_Ext}');
-    Error('\P{Is_Blk=_/a/ethiopic_Ext}');
+    Expect(1, 11743, '\p{Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(0, 11743, '\p{^Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(0, 11743, '\P{Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(1, 11743, '\P{^Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(0, 11744, '\p{Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(1, 11744, '\p{^Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(1, 11744, '\P{Is_Block: -ETHIOPIC_Extended}', "");
+    Expect(0, 11744, '\P{^Is_Block: -ETHIOPIC_Extended}', "");
+    Error('\p{Is_Blk=/a/ 	ETHIOPIC_Ext}');
+    Error('\P{Is_Blk=/a/ 	ETHIOPIC_Ext}');
     Expect(1, 11743, '\p{Is_Blk=ethiopicext}', "");
     Expect(0, 11743, '\p{^Is_Blk=ethiopicext}', "");
     Expect(0, 11743, '\P{Is_Blk=ethiopicext}', "");
@@ -11534,38 +11878,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11744, '\p{^Is_Blk=ethiopicext}', "");
     Expect(1, 11744, '\P{Is_Blk=ethiopicext}', "");
     Expect(0, 11744, '\P{^Is_Blk=ethiopicext}', "");
-    Expect(1, 11743, '\p{Is_Blk:-ethiopic_EXT}', "");
-    Expect(0, 11743, '\p{^Is_Blk:-ethiopic_EXT}', "");
-    Expect(0, 11743, '\P{Is_Blk:-ethiopic_EXT}', "");
-    Expect(1, 11743, '\P{^Is_Blk:-ethiopic_EXT}', "");
-    Expect(0, 11744, '\p{Is_Blk:-ethiopic_EXT}', "");
-    Expect(1, 11744, '\p{^Is_Blk:-ethiopic_EXT}', "");
-    Expect(1, 11744, '\P{Is_Blk:-ethiopic_EXT}', "");
-    Expect(0, 11744, '\P{^Is_Blk:-ethiopic_EXT}', "");
-    Error('\p{Block=/a/Ethiopic_EXTENDED_A}');
-    Error('\P{Block=/a/Ethiopic_EXTENDED_A}');
+    Expect(1, 11743, '\p{Is_Blk= -Ethiopic_EXT}', "");
+    Expect(0, 11743, '\p{^Is_Blk= -Ethiopic_EXT}', "");
+    Expect(0, 11743, '\P{Is_Blk= -Ethiopic_EXT}', "");
+    Expect(1, 11743, '\P{^Is_Blk= -Ethiopic_EXT}', "");
+    Expect(0, 11744, '\p{Is_Blk= -Ethiopic_EXT}', "");
+    Expect(1, 11744, '\p{^Is_Blk= -Ethiopic_EXT}', "");
+    Expect(1, 11744, '\P{Is_Blk= -Ethiopic_EXT}', "");
+    Expect(0, 11744, '\P{^Is_Blk= -Ethiopic_EXT}', "");
+    Error('\p{Block=/a/Ethiopic_Extended_a}');
+    Error('\P{Block=/a/Ethiopic_Extended_a}');
     Expect(1, 43823, '\p{Block=:\AEthiopic_Extended_A\z:}', "");;
     Expect(0, 43824, '\p{Block=:\AEthiopic_Extended_A\z:}', "");;
-    Expect(1, 43823, '\p{Block=ethiopicextendeda}', "");
-    Expect(0, 43823, '\p{^Block=ethiopicextendeda}', "");
-    Expect(0, 43823, '\P{Block=ethiopicextendeda}', "");
-    Expect(1, 43823, '\P{^Block=ethiopicextendeda}', "");
-    Expect(0, 43824, '\p{Block=ethiopicextendeda}', "");
-    Expect(1, 43824, '\p{^Block=ethiopicextendeda}', "");
-    Expect(1, 43824, '\P{Block=ethiopicextendeda}', "");
-    Expect(0, 43824, '\P{^Block=ethiopicextendeda}', "");
+    Expect(1, 43823, '\p{Block:	ethiopicextendeda}', "");
+    Expect(0, 43823, '\p{^Block:	ethiopicextendeda}', "");
+    Expect(0, 43823, '\P{Block:	ethiopicextendeda}', "");
+    Expect(1, 43823, '\P{^Block:	ethiopicextendeda}', "");
+    Expect(0, 43824, '\p{Block:	ethiopicextendeda}', "");
+    Expect(1, 43824, '\p{^Block:	ethiopicextendeda}', "");
+    Expect(1, 43824, '\P{Block:	ethiopicextendeda}', "");
+    Expect(0, 43824, '\P{^Block:	ethiopicextendeda}', "");
     Expect(1, 43823, '\p{Block=:\Aethiopicextendeda\z:}', "");;
     Expect(0, 43824, '\p{Block=:\Aethiopicextendeda\z:}', "");;
-    Expect(1, 43823, '\p{Block=-Ethiopic_extended_A}', "");
-    Expect(0, 43823, '\p{^Block=-Ethiopic_extended_A}', "");
-    Expect(0, 43823, '\P{Block=-Ethiopic_extended_A}', "");
-    Expect(1, 43823, '\P{^Block=-Ethiopic_extended_A}', "");
-    Expect(0, 43824, '\p{Block=-Ethiopic_extended_A}', "");
-    Expect(1, 43824, '\p{^Block=-Ethiopic_extended_A}', "");
-    Expect(1, 43824, '\P{Block=-Ethiopic_extended_A}', "");
-    Expect(0, 43824, '\P{^Block=-Ethiopic_extended_A}', "");
-    Error('\p{Blk=_:=Ethiopic_EXT_a}');
-    Error('\P{Blk=_:=Ethiopic_EXT_a}');
+    Expect(1, 43823, '\p{Block=	-ethiopic_Extended_A}', "");
+    Expect(0, 43823, '\p{^Block=	-ethiopic_Extended_A}', "");
+    Expect(0, 43823, '\P{Block=	-ethiopic_Extended_A}', "");
+    Expect(1, 43823, '\P{^Block=	-ethiopic_Extended_A}', "");
+    Expect(0, 43824, '\p{Block=	-ethiopic_Extended_A}', "");
+    Expect(1, 43824, '\p{^Block=	-ethiopic_Extended_A}', "");
+    Expect(1, 43824, '\P{Block=	-ethiopic_Extended_A}', "");
+    Expect(0, 43824, '\P{^Block=	-ethiopic_Extended_A}', "");
+    Error('\p{Blk:/a/_ ETHIOPIC_ext_A}');
+    Error('\P{Blk:/a/_ ETHIOPIC_ext_A}');
     Expect(1, 43823, '\p{Blk=:\AEthiopic_Ext_A\z:}', "");;
     Expect(0, 43824, '\p{Blk=:\AEthiopic_Ext_A\z:}', "");;
     Expect(1, 43823, '\p{Blk=ethiopicexta}', "");
@@ -11578,16 +11922,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43824, '\P{^Blk=ethiopicexta}', "");
     Expect(1, 43823, '\p{Blk=:\Aethiopicexta\z:}', "");;
     Expect(0, 43824, '\p{Blk=:\Aethiopicexta\z:}', "");;
-    Expect(1, 43823, '\p{Blk=	-ethiopic_Ext_A}', "");
-    Expect(0, 43823, '\p{^Blk=	-ethiopic_Ext_A}', "");
-    Expect(0, 43823, '\P{Blk=	-ethiopic_Ext_A}', "");
-    Expect(1, 43823, '\P{^Blk=	-ethiopic_Ext_A}', "");
-    Expect(0, 43824, '\p{Blk=	-ethiopic_Ext_A}', "");
-    Expect(1, 43824, '\p{^Blk=	-ethiopic_Ext_A}', "");
-    Expect(1, 43824, '\P{Blk=	-ethiopic_Ext_A}', "");
-    Expect(0, 43824, '\P{^Blk=	-ethiopic_Ext_A}', "");
-    Error('\p{Is_Block=/a/ethiopic_Extended_A}');
-    Error('\P{Is_Block=/a/ethiopic_Extended_A}');
+    Expect(1, 43823, '\p{Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(0, 43823, '\p{^Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(0, 43823, '\P{Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(1, 43823, '\P{^Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(0, 43824, '\p{Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(1, 43824, '\p{^Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(1, 43824, '\P{Blk:    ETHIOPIC_EXT_a}', "");
+    Expect(0, 43824, '\P{^Blk:    ETHIOPIC_EXT_a}', "");
+    Error('\p{Is_Block:_/a/ETHIOPIC_EXTENDED_a}');
+    Error('\P{Is_Block:_/a/ETHIOPIC_EXTENDED_a}');
     Expect(1, 43823, '\p{Is_Block=ethiopicextendeda}', "");
     Expect(0, 43823, '\p{^Is_Block=ethiopicextendeda}', "");
     Expect(0, 43823, '\P{Is_Block=ethiopicextendeda}', "");
@@ -11596,56 +11940,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43824, '\p{^Is_Block=ethiopicextendeda}', "");
     Expect(1, 43824, '\P{Is_Block=ethiopicextendeda}', "");
     Expect(0, 43824, '\P{^Is_Block=ethiopicextendeda}', "");
-    Expect(1, 43823, '\p{Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(0, 43823, '\p{^Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(0, 43823, '\P{Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(1, 43823, '\P{^Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(0, 43824, '\p{Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(1, 43824, '\p{^Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(1, 43824, '\P{Is_Block: ETHIOPIC_Extended_A}', "");
-    Expect(0, 43824, '\P{^Is_Block: ETHIOPIC_Extended_A}', "");
-    Error('\p{Is_Blk=_:=ETHIOPIC_ext_A}');
-    Error('\P{Is_Blk=_:=ETHIOPIC_ext_A}');
-    Expect(1, 43823, '\p{Is_Blk:   ethiopicexta}', "");
-    Expect(0, 43823, '\p{^Is_Blk:   ethiopicexta}', "");
-    Expect(0, 43823, '\P{Is_Blk:   ethiopicexta}', "");
-    Expect(1, 43823, '\P{^Is_Blk:   ethiopicexta}', "");
-    Expect(0, 43824, '\p{Is_Blk:   ethiopicexta}', "");
-    Expect(1, 43824, '\p{^Is_Blk:   ethiopicexta}', "");
-    Expect(1, 43824, '\P{Is_Blk:   ethiopicexta}', "");
-    Expect(0, 43824, '\P{^Is_Blk:   ethiopicexta}', "");
-    Expect(1, 43823, '\p{Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(0, 43823, '\p{^Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(0, 43823, '\P{Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(1, 43823, '\P{^Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(0, 43824, '\p{Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(1, 43824, '\p{^Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(1, 43824, '\P{Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Expect(0, 43824, '\P{^Is_Blk=_	ETHIOPIC_Ext_A}', "");
-    Error('\p{Block=	Ethiopic_Extended_B:=}');
-    Error('\P{Block=	Ethiopic_Extended_B:=}');
+    Expect(1, 43823, '\p{Is_Block=__ethiopic_extended_A}', "");
+    Expect(0, 43823, '\p{^Is_Block=__ethiopic_extended_A}', "");
+    Expect(0, 43823, '\P{Is_Block=__ethiopic_extended_A}', "");
+    Expect(1, 43823, '\P{^Is_Block=__ethiopic_extended_A}', "");
+    Expect(0, 43824, '\p{Is_Block=__ethiopic_extended_A}', "");
+    Expect(1, 43824, '\p{^Is_Block=__ethiopic_extended_A}', "");
+    Expect(1, 43824, '\P{Is_Block=__ethiopic_extended_A}', "");
+    Expect(0, 43824, '\P{^Is_Block=__ethiopic_extended_A}', "");
+    Error('\p{Is_Blk=	_ETHIOPIC_Ext_A/a/}');
+    Error('\P{Is_Blk=	_ETHIOPIC_Ext_A/a/}');
+    Expect(1, 43823, '\p{Is_Blk=ethiopicexta}', "");
+    Expect(0, 43823, '\p{^Is_Blk=ethiopicexta}', "");
+    Expect(0, 43823, '\P{Is_Blk=ethiopicexta}', "");
+    Expect(1, 43823, '\P{^Is_Blk=ethiopicexta}', "");
+    Expect(0, 43824, '\p{Is_Blk=ethiopicexta}', "");
+    Expect(1, 43824, '\p{^Is_Blk=ethiopicexta}', "");
+    Expect(1, 43824, '\P{Is_Blk=ethiopicexta}', "");
+    Expect(0, 43824, '\P{^Is_Blk=ethiopicexta}', "");
+    Expect(1, 43823, '\p{Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(0, 43823, '\p{^Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(0, 43823, '\P{Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(1, 43823, '\P{^Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(0, 43824, '\p{Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(1, 43824, '\p{^Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(1, 43824, '\P{Is_Blk:    -Ethiopic_EXT_A}', "");
+    Expect(0, 43824, '\P{^Is_Blk:    -Ethiopic_EXT_A}', "");
+    Error('\p{Block= Ethiopic_EXTENDED_b:=}');
+    Error('\P{Block= Ethiopic_EXTENDED_b:=}');
     Expect(1, 124927, '\p{Block=:\AEthiopic_Extended_B\z:}', "");;
     Expect(0, 124928, '\p{Block=:\AEthiopic_Extended_B\z:}', "");;
-    Expect(1, 124927, '\p{Block:   ethiopicextendedb}', "");
-    Expect(0, 124927, '\p{^Block:   ethiopicextendedb}', "");
-    Expect(0, 124927, '\P{Block:   ethiopicextendedb}', "");
-    Expect(1, 124927, '\P{^Block:   ethiopicextendedb}', "");
-    Expect(0, 124928, '\p{Block:   ethiopicextendedb}', "");
-    Expect(1, 124928, '\p{^Block:   ethiopicextendedb}', "");
-    Expect(1, 124928, '\P{Block:   ethiopicextendedb}', "");
-    Expect(0, 124928, '\P{^Block:   ethiopicextendedb}', "");
+    Expect(1, 124927, '\p{Block=ethiopicextendedb}', "");
+    Expect(0, 124927, '\p{^Block=ethiopicextendedb}', "");
+    Expect(0, 124927, '\P{Block=ethiopicextendedb}', "");
+    Expect(1, 124927, '\P{^Block=ethiopicextendedb}', "");
+    Expect(0, 124928, '\p{Block=ethiopicextendedb}', "");
+    Expect(1, 124928, '\p{^Block=ethiopicextendedb}', "");
+    Expect(1, 124928, '\P{Block=ethiopicextendedb}', "");
+    Expect(0, 124928, '\P{^Block=ethiopicextendedb}', "");
     Expect(1, 124927, '\p{Block=:\Aethiopicextendedb\z:}', "");;
     Expect(0, 124928, '\p{Block=:\Aethiopicextendedb\z:}', "");;
-    Expect(1, 124927, '\p{Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(0, 124927, '\p{^Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(0, 124927, '\P{Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(1, 124927, '\P{^Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(0, 124928, '\p{Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(1, 124928, '\p{^Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(1, 124928, '\P{Block=		Ethiopic_EXTENDED_b}', "");
-    Expect(0, 124928, '\P{^Block=		Ethiopic_EXTENDED_b}', "");
-    Error('\p{Blk=:=	 ethiopic_Ext_B}');
-    Error('\P{Blk=:=	 ethiopic_Ext_B}');
+    Expect(1, 124927, '\p{Block=Ethiopic_extended_b}', "");
+    Expect(0, 124927, '\p{^Block=Ethiopic_extended_b}', "");
+    Expect(0, 124927, '\P{Block=Ethiopic_extended_b}', "");
+    Expect(1, 124927, '\P{^Block=Ethiopic_extended_b}', "");
+    Expect(0, 124928, '\p{Block=Ethiopic_extended_b}', "");
+    Expect(1, 124928, '\p{^Block=Ethiopic_extended_b}', "");
+    Expect(1, 124928, '\P{Block=Ethiopic_extended_b}', "");
+    Expect(0, 124928, '\P{^Block=Ethiopic_extended_b}', "");
+    Error('\p{Blk=-:=Ethiopic_Ext_B}');
+    Error('\P{Blk=-:=Ethiopic_Ext_B}');
     Expect(1, 124927, '\p{Blk=:\AEthiopic_Ext_B\z:}', "");;
     Expect(0, 124928, '\p{Blk=:\AEthiopic_Ext_B\z:}', "");;
     Expect(1, 124927, '\p{Blk=ethiopicextb}', "");
@@ -11658,16 +12002,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 124928, '\P{^Blk=ethiopicextb}', "");
     Expect(1, 124927, '\p{Blk=:\Aethiopicextb\z:}', "");;
     Expect(0, 124928, '\p{Blk=:\Aethiopicextb\z:}', "");;
-    Expect(1, 124927, '\p{Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(0, 124927, '\p{^Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(0, 124927, '\P{Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(1, 124927, '\P{^Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(0, 124928, '\p{Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(1, 124928, '\p{^Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(1, 124928, '\P{Blk: 	_Ethiopic_Ext_B}', "");
-    Expect(0, 124928, '\P{^Blk: 	_Ethiopic_Ext_B}', "");
-    Error('\p{Is_Block=		Ethiopic_Extended_b/a/}');
-    Error('\P{Is_Block=		Ethiopic_Extended_b/a/}');
+    Expect(1, 124927, '\p{Blk=-ethiopic_Ext_b}', "");
+    Expect(0, 124927, '\p{^Blk=-ethiopic_Ext_b}', "");
+    Expect(0, 124927, '\P{Blk=-ethiopic_Ext_b}', "");
+    Expect(1, 124927, '\P{^Blk=-ethiopic_Ext_b}', "");
+    Expect(0, 124928, '\p{Blk=-ethiopic_Ext_b}', "");
+    Expect(1, 124928, '\p{^Blk=-ethiopic_Ext_b}', "");
+    Expect(1, 124928, '\P{Blk=-ethiopic_Ext_b}', "");
+    Expect(0, 124928, '\P{^Blk=-ethiopic_Ext_b}', "");
+    Error('\p{Is_Block=:=		Ethiopic_Extended_B}');
+    Error('\P{Is_Block=:=		Ethiopic_Extended_B}');
     Expect(1, 124927, '\p{Is_Block=ethiopicextendedb}', "");
     Expect(0, 124927, '\p{^Is_Block=ethiopicextendedb}', "");
     Expect(0, 124927, '\P{Is_Block=ethiopicextendedb}', "");
@@ -11676,16 +12020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 124928, '\p{^Is_Block=ethiopicextendedb}', "");
     Expect(1, 124928, '\P{Is_Block=ethiopicextendedb}', "");
     Expect(0, 124928, '\P{^Is_Block=ethiopicextendedb}', "");
-    Expect(1, 124927, '\p{Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(0, 124927, '\p{^Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(0, 124927, '\P{Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(1, 124927, '\P{^Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(0, 124928, '\p{Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(1, 124928, '\p{^Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(1, 124928, '\P{Is_Block=_Ethiopic_Extended_B}', "");
-    Expect(0, 124928, '\P{^Is_Block=_Ethiopic_Extended_B}', "");
-    Error('\p{Is_Blk=/a/__ethiopic_Ext_B}');
-    Error('\P{Is_Blk=/a/__ethiopic_Ext_B}');
+    Expect(1, 124927, '\p{Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(0, 124927, '\p{^Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(0, 124927, '\P{Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(1, 124927, '\P{^Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(0, 124928, '\p{Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(1, 124928, '\p{^Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(1, 124928, '\P{Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Expect(0, 124928, '\P{^Is_Block=-	ETHIOPIC_Extended_B}', "");
+    Error('\p{Is_Blk=/a/		ethiopic_ext_B}');
+    Error('\P{Is_Blk=/a/		ethiopic_ext_B}');
     Expect(1, 124927, '\p{Is_Blk=ethiopicextb}', "");
     Expect(0, 124927, '\p{^Is_Blk=ethiopicextb}', "");
     Expect(0, 124927, '\P{Is_Blk=ethiopicextb}', "");
@@ -11694,16 +12038,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 124928, '\p{^Is_Blk=ethiopicextb}', "");
     Expect(1, 124928, '\P{Is_Blk=ethiopicextb}', "");
     Expect(0, 124928, '\P{^Is_Blk=ethiopicextb}', "");
-    Expect(1, 124927, '\p{Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(0, 124927, '\p{^Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(0, 124927, '\P{Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(1, 124927, '\P{^Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(0, 124928, '\p{Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(1, 124928, '\p{^Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(1, 124928, '\P{Is_Blk=-ethiopic_Ext_b}', "");
-    Expect(0, 124928, '\P{^Is_Blk=-ethiopic_Ext_b}', "");
-    Error('\p{Block=:=-_Ethiopic_supplement}');
-    Error('\P{Block=:=-_Ethiopic_supplement}');
+    Expect(1, 124927, '\p{Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(0, 124927, '\p{^Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(0, 124927, '\P{Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(1, 124927, '\P{^Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(0, 124928, '\p{Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(1, 124928, '\p{^Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(1, 124928, '\P{Is_Blk=__ethiopic_Ext_B}', "");
+    Expect(0, 124928, '\P{^Is_Blk=__ethiopic_Ext_B}', "");
+    Error('\p{Block=_/a/ethiopic_Supplement}');
+    Error('\P{Block=_/a/ethiopic_Supplement}');
     Expect(1, 5023, '\p{Block=:\AEthiopic_Supplement\z:}', "");;
     Expect(0, 5024, '\p{Block=:\AEthiopic_Supplement\z:}', "");;
     Expect(1, 5023, '\p{Block=ethiopicsupplement}', "");
@@ -11716,16 +12060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5024, '\P{^Block=ethiopicsupplement}', "");
     Expect(1, 5023, '\p{Block=:\Aethiopicsupplement\z:}', "");;
     Expect(0, 5024, '\p{Block=:\Aethiopicsupplement\z:}', "");;
-    Expect(1, 5023, '\p{Block=__Ethiopic_Supplement}', "");
-    Expect(0, 5023, '\p{^Block=__Ethiopic_Supplement}', "");
-    Expect(0, 5023, '\P{Block=__Ethiopic_Supplement}', "");
-    Expect(1, 5023, '\P{^Block=__Ethiopic_Supplement}', "");
-    Expect(0, 5024, '\p{Block=__Ethiopic_Supplement}', "");
-    Expect(1, 5024, '\p{^Block=__Ethiopic_Supplement}', "");
-    Expect(1, 5024, '\P{Block=__Ethiopic_Supplement}', "");
-    Expect(0, 5024, '\P{^Block=__Ethiopic_Supplement}', "");
-    Error('\p{Blk=_Ethiopic_SUP:=}');
-    Error('\P{Blk=_Ethiopic_SUP:=}');
+    Expect(1, 5023, '\p{Block:   -ethiopic_supplement}', "");
+    Expect(0, 5023, '\p{^Block:   -ethiopic_supplement}', "");
+    Expect(0, 5023, '\P{Block:   -ethiopic_supplement}', "");
+    Expect(1, 5023, '\P{^Block:   -ethiopic_supplement}', "");
+    Expect(0, 5024, '\p{Block:   -ethiopic_supplement}', "");
+    Expect(1, 5024, '\p{^Block:   -ethiopic_supplement}', "");
+    Expect(1, 5024, '\P{Block:   -ethiopic_supplement}', "");
+    Expect(0, 5024, '\P{^Block:   -ethiopic_supplement}', "");
+    Error('\p{Blk=-Ethiopic_sup/a/}');
+    Error('\P{Blk=-Ethiopic_sup/a/}');
     Expect(1, 5023, '\p{Blk=:\AEthiopic_Sup\z:}', "");;
     Expect(0, 5024, '\p{Blk=:\AEthiopic_Sup\z:}', "");;
     Expect(1, 5023, '\p{Blk=ethiopicsup}', "");
@@ -11738,52 +12082,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5024, '\P{^Blk=ethiopicsup}', "");
     Expect(1, 5023, '\p{Blk=:\Aethiopicsup\z:}', "");;
     Expect(0, 5024, '\p{Blk=:\Aethiopicsup\z:}', "");;
-    Expect(1, 5023, '\p{Blk=- Ethiopic_Sup}', "");
-    Expect(0, 5023, '\p{^Blk=- Ethiopic_Sup}', "");
-    Expect(0, 5023, '\P{Blk=- Ethiopic_Sup}', "");
-    Expect(1, 5023, '\P{^Blk=- Ethiopic_Sup}', "");
-    Expect(0, 5024, '\p{Blk=- Ethiopic_Sup}', "");
-    Expect(1, 5024, '\p{^Blk=- Ethiopic_Sup}', "");
-    Expect(1, 5024, '\P{Blk=- Ethiopic_Sup}', "");
-    Expect(0, 5024, '\P{^Blk=- Ethiopic_Sup}', "");
-    Error('\p{Is_Block=_/a/Ethiopic_Supplement}');
-    Error('\P{Is_Block=_/a/Ethiopic_Supplement}');
-    Expect(1, 5023, '\p{Is_Block: ethiopicsupplement}', "");
-    Expect(0, 5023, '\p{^Is_Block: ethiopicsupplement}', "");
-    Expect(0, 5023, '\P{Is_Block: ethiopicsupplement}', "");
-    Expect(1, 5023, '\P{^Is_Block: ethiopicsupplement}', "");
-    Expect(0, 5024, '\p{Is_Block: ethiopicsupplement}', "");
-    Expect(1, 5024, '\p{^Is_Block: ethiopicsupplement}', "");
-    Expect(1, 5024, '\P{Is_Block: ethiopicsupplement}', "");
-    Expect(0, 5024, '\P{^Is_Block: ethiopicsupplement}', "");
-    Expect(1, 5023, '\p{Is_Block=Ethiopic_Supplement}', "");
-    Expect(0, 5023, '\p{^Is_Block=Ethiopic_Supplement}', "");
-    Expect(0, 5023, '\P{Is_Block=Ethiopic_Supplement}', "");
-    Expect(1, 5023, '\P{^Is_Block=Ethiopic_Supplement}', "");
-    Expect(0, 5024, '\p{Is_Block=Ethiopic_Supplement}', "");
-    Expect(1, 5024, '\p{^Is_Block=Ethiopic_Supplement}', "");
-    Expect(1, 5024, '\P{Is_Block=Ethiopic_Supplement}', "");
-    Expect(0, 5024, '\P{^Is_Block=Ethiopic_Supplement}', "");
-    Error('\p{Is_Blk=_:=Ethiopic_Sup}');
-    Error('\P{Is_Blk=_:=Ethiopic_Sup}');
-    Expect(1, 5023, '\p{Is_Blk=ethiopicsup}', "");
-    Expect(0, 5023, '\p{^Is_Blk=ethiopicsup}', "");
-    Expect(0, 5023, '\P{Is_Blk=ethiopicsup}', "");
-    Expect(1, 5023, '\P{^Is_Blk=ethiopicsup}', "");
-    Expect(0, 5024, '\p{Is_Blk=ethiopicsup}', "");
-    Expect(1, 5024, '\p{^Is_Blk=ethiopicsup}', "");
-    Expect(1, 5024, '\P{Is_Blk=ethiopicsup}', "");
-    Expect(0, 5024, '\P{^Is_Blk=ethiopicsup}', "");
-    Expect(1, 5023, '\p{Is_Blk:		ethiopic_Sup}', "");
-    Expect(0, 5023, '\p{^Is_Blk:		ethiopic_Sup}', "");
-    Expect(0, 5023, '\P{Is_Blk:		ethiopic_Sup}', "");
-    Expect(1, 5023, '\P{^Is_Blk:		ethiopic_Sup}', "");
-    Expect(0, 5024, '\p{Is_Blk:		ethiopic_Sup}', "");
-    Expect(1, 5024, '\p{^Is_Blk:		ethiopic_Sup}', "");
-    Expect(1, 5024, '\P{Is_Blk:		ethiopic_Sup}', "");
-    Expect(0, 5024, '\P{^Is_Blk:		ethiopic_Sup}', "");
-    Error('\p{Block=:= 	Geometric_Shapes}');
-    Error('\P{Block=:= 	Geometric_Shapes}');
+    Expect(1, 5023, '\p{Blk=-ETHIOPIC_Sup}', "");
+    Expect(0, 5023, '\p{^Blk=-ETHIOPIC_Sup}', "");
+    Expect(0, 5023, '\P{Blk=-ETHIOPIC_Sup}', "");
+    Expect(1, 5023, '\P{^Blk=-ETHIOPIC_Sup}', "");
+    Expect(0, 5024, '\p{Blk=-ETHIOPIC_Sup}', "");
+    Expect(1, 5024, '\p{^Blk=-ETHIOPIC_Sup}', "");
+    Expect(1, 5024, '\P{Blk=-ETHIOPIC_Sup}', "");
+    Expect(0, 5024, '\P{^Blk=-ETHIOPIC_Sup}', "");
+    Error('\p{Is_Block=:=_	ETHIOPIC_Supplement}');
+    Error('\P{Is_Block=:=_	ETHIOPIC_Supplement}');
+    Expect(1, 5023, '\p{Is_Block=ethiopicsupplement}', "");
+    Expect(0, 5023, '\p{^Is_Block=ethiopicsupplement}', "");
+    Expect(0, 5023, '\P{Is_Block=ethiopicsupplement}', "");
+    Expect(1, 5023, '\P{^Is_Block=ethiopicsupplement}', "");
+    Expect(0, 5024, '\p{Is_Block=ethiopicsupplement}', "");
+    Expect(1, 5024, '\p{^Is_Block=ethiopicsupplement}', "");
+    Expect(1, 5024, '\P{Is_Block=ethiopicsupplement}', "");
+    Expect(0, 5024, '\P{^Is_Block=ethiopicsupplement}', "");
+    Expect(1, 5023, '\p{Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(0, 5023, '\p{^Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(0, 5023, '\P{Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(1, 5023, '\P{^Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(0, 5024, '\p{Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(1, 5024, '\p{^Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(1, 5024, '\P{Is_Block= ethiopic_SUPPLEMENT}', "");
+    Expect(0, 5024, '\P{^Is_Block= ethiopic_SUPPLEMENT}', "");
+    Error('\p{Is_Blk=/a/ ethiopic_Sup}');
+    Error('\P{Is_Blk=/a/ ethiopic_Sup}');
+    Expect(1, 5023, '\p{Is_Blk: ethiopicsup}', "");
+    Expect(0, 5023, '\p{^Is_Blk: ethiopicsup}', "");
+    Expect(0, 5023, '\P{Is_Blk: ethiopicsup}', "");
+    Expect(1, 5023, '\P{^Is_Blk: ethiopicsup}', "");
+    Expect(0, 5024, '\p{Is_Blk: ethiopicsup}', "");
+    Expect(1, 5024, '\p{^Is_Blk: ethiopicsup}', "");
+    Expect(1, 5024, '\P{Is_Blk: ethiopicsup}', "");
+    Expect(0, 5024, '\P{^Is_Blk: ethiopicsup}', "");
+    Expect(1, 5023, '\p{Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(0, 5023, '\p{^Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(0, 5023, '\P{Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(1, 5023, '\P{^Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(0, 5024, '\p{Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(1, 5024, '\p{^Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(1, 5024, '\P{Is_Blk=_ETHIOPIC_Sup}', "");
+    Expect(0, 5024, '\P{^Is_Blk=_ETHIOPIC_Sup}', "");
+    Error('\p{Block=	geometric_shapes:=}');
+    Error('\P{Block=	geometric_shapes:=}');
     Expect(1, 9727, '\p{Block=:\AGeometric_Shapes\z:}', "");;
     Expect(0, 9728, '\p{Block=:\AGeometric_Shapes\z:}', "");;
     Expect(1, 9727, '\p{Block=geometricshapes}', "");
@@ -11796,16 +12140,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9728, '\P{^Block=geometricshapes}', "");
     Expect(1, 9727, '\p{Block=:\Ageometricshapes\z:}', "");;
     Expect(0, 9728, '\p{Block=:\Ageometricshapes\z:}', "");;
-    Expect(1, 9727, '\p{Block=	 geometric_shapes}', "");
-    Expect(0, 9727, '\p{^Block=	 geometric_shapes}', "");
-    Expect(0, 9727, '\P{Block=	 geometric_shapes}', "");
-    Expect(1, 9727, '\P{^Block=	 geometric_shapes}', "");
-    Expect(0, 9728, '\p{Block=	 geometric_shapes}', "");
-    Expect(1, 9728, '\p{^Block=	 geometric_shapes}', "");
-    Expect(1, 9728, '\P{Block=	 geometric_shapes}', "");
-    Expect(0, 9728, '\P{^Block=	 geometric_shapes}', "");
-    Error('\p{Blk=:=geometric_Shapes}');
-    Error('\P{Blk=:=geometric_Shapes}');
+    Expect(1, 9727, '\p{Block=- geometric_shapes}', "");
+    Expect(0, 9727, '\p{^Block=- geometric_shapes}', "");
+    Expect(0, 9727, '\P{Block=- geometric_shapes}', "");
+    Expect(1, 9727, '\P{^Block=- geometric_shapes}', "");
+    Expect(0, 9728, '\p{Block=- geometric_shapes}', "");
+    Expect(1, 9728, '\p{^Block=- geometric_shapes}', "");
+    Expect(1, 9728, '\P{Block=- geometric_shapes}', "");
+    Expect(0, 9728, '\P{^Block=- geometric_shapes}', "");
+    Error('\p{Blk=/a/		Geometric_Shapes}');
+    Error('\P{Blk=/a/		Geometric_Shapes}');
     Expect(1, 9727, '\p{Blk=:\AGeometric_Shapes\z:}', "");;
     Expect(0, 9728, '\p{Blk=:\AGeometric_Shapes\z:}', "");;
     Expect(1, 9727, '\p{Blk=geometricshapes}', "");
@@ -11826,8 +12170,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9728, '\p{^Blk=-_Geometric_Shapes}', "");
     Expect(1, 9728, '\P{Blk=-_Geometric_Shapes}', "");
     Expect(0, 9728, '\P{^Blk=-_Geometric_Shapes}', "");
-    Error('\p{Is_Block=	_Geometric_SHAPES:=}');
-    Error('\P{Is_Block=	_Geometric_SHAPES:=}');
+    Error('\p{Is_Block=  geometric_Shapes:=}');
+    Error('\P{Is_Block=  geometric_Shapes:=}');
     Expect(1, 9727, '\p{Is_Block=geometricshapes}', "");
     Expect(0, 9727, '\p{^Is_Block=geometricshapes}', "");
     Expect(0, 9727, '\P{Is_Block=geometricshapes}', "");
@@ -11836,16 +12180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9728, '\p{^Is_Block=geometricshapes}', "");
     Expect(1, 9728, '\P{Is_Block=geometricshapes}', "");
     Expect(0, 9728, '\P{^Is_Block=geometricshapes}', "");
-    Expect(1, 9727, '\p{Is_Block= _Geometric_Shapes}', "");
-    Expect(0, 9727, '\p{^Is_Block= _Geometric_Shapes}', "");
-    Expect(0, 9727, '\P{Is_Block= _Geometric_Shapes}', "");
-    Expect(1, 9727, '\P{^Is_Block= _Geometric_Shapes}', "");
-    Expect(0, 9728, '\p{Is_Block= _Geometric_Shapes}', "");
-    Expect(1, 9728, '\p{^Is_Block= _Geometric_Shapes}', "");
-    Expect(1, 9728, '\P{Is_Block= _Geometric_Shapes}', "");
-    Expect(0, 9728, '\P{^Is_Block= _Geometric_Shapes}', "");
-    Error('\p{Is_Blk=_:=GEOMETRIC_Shapes}');
-    Error('\P{Is_Blk=_:=GEOMETRIC_Shapes}');
+    Expect(1, 9727, '\p{Is_Block=	Geometric_shapes}', "");
+    Expect(0, 9727, '\p{^Is_Block=	Geometric_shapes}', "");
+    Expect(0, 9727, '\P{Is_Block=	Geometric_shapes}', "");
+    Expect(1, 9727, '\P{^Is_Block=	Geometric_shapes}', "");
+    Expect(0, 9728, '\p{Is_Block=	Geometric_shapes}', "");
+    Expect(1, 9728, '\p{^Is_Block=	Geometric_shapes}', "");
+    Expect(1, 9728, '\P{Is_Block=	Geometric_shapes}', "");
+    Expect(0, 9728, '\P{^Is_Block=	Geometric_shapes}', "");
+    Error('\p{Is_Blk=	_Geometric_shapes/a/}');
+    Error('\P{Is_Blk=	_Geometric_shapes/a/}');
     Expect(1, 9727, '\p{Is_Blk=geometricshapes}', "");
     Expect(0, 9727, '\p{^Is_Blk=geometricshapes}', "");
     Expect(0, 9727, '\P{Is_Blk=geometricshapes}', "");
@@ -11854,16 +12198,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9728, '\p{^Is_Blk=geometricshapes}', "");
     Expect(1, 9728, '\P{Is_Blk=geometricshapes}', "");
     Expect(0, 9728, '\P{^Is_Blk=geometricshapes}', "");
-    Expect(1, 9727, '\p{Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(0, 9727, '\p{^Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(0, 9727, '\P{Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(1, 9727, '\P{^Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(0, 9728, '\p{Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(1, 9728, '\p{^Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(1, 9728, '\P{Is_Blk= GEOMETRIC_Shapes}', "");
-    Expect(0, 9728, '\P{^Is_Blk= GEOMETRIC_Shapes}', "");
-    Error('\p{Block=:=Geometric_shapes_EXTENDED}');
-    Error('\P{Block=:=Geometric_shapes_EXTENDED}');
+    Expect(1, 9727, '\p{Is_Blk=_-Geometric_Shapes}', "");
+    Expect(0, 9727, '\p{^Is_Blk=_-Geometric_Shapes}', "");
+    Expect(0, 9727, '\P{Is_Blk=_-Geometric_Shapes}', "");
+    Expect(1, 9727, '\P{^Is_Blk=_-Geometric_Shapes}', "");
+    Expect(0, 9728, '\p{Is_Blk=_-Geometric_Shapes}', "");
+    Expect(1, 9728, '\p{^Is_Blk=_-Geometric_Shapes}', "");
+    Expect(1, 9728, '\P{Is_Blk=_-Geometric_Shapes}', "");
+    Expect(0, 9728, '\P{^Is_Blk=_-Geometric_Shapes}', "");
+    Error('\p{Block=-geometric_Shapes_Extended/a/}');
+    Error('\P{Block=-geometric_Shapes_Extended/a/}');
     Expect(1, 129023, '\p{Block=:\AGeometric_Shapes_Extended\z:}', "");;
     Expect(0, 129024, '\p{Block=:\AGeometric_Shapes_Extended\z:}', "");;
     Expect(1, 129023, '\p{Block=geometricshapesextended}', "");
@@ -11876,16 +12220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129024, '\P{^Block=geometricshapesextended}', "");
     Expect(1, 129023, '\p{Block=:\Ageometricshapesextended\z:}', "");;
     Expect(0, 129024, '\p{Block=:\Ageometricshapesextended\z:}', "");;
-    Expect(1, 129023, '\p{Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(0, 129023, '\p{^Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(0, 129023, '\P{Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(1, 129023, '\P{^Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(0, 129024, '\p{Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(1, 129024, '\p{^Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(1, 129024, '\P{Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Expect(0, 129024, '\P{^Block=__GEOMETRIC_SHAPES_Extended}', "");
-    Error('\p{Blk=:=	Geometric_SHAPES_EXT}');
-    Error('\P{Blk=:=	Geometric_SHAPES_EXT}');
+    Expect(1, 129023, '\p{Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129023, '\p{^Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129023, '\P{Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(1, 129023, '\P{^Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129024, '\p{Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(1, 129024, '\p{^Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(1, 129024, '\P{Block:	 geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129024, '\P{^Block:	 geometric_Shapes_EXTENDED}', "");
+    Error('\p{Blk=	-Geometric_Shapes_ext:=}');
+    Error('\P{Blk=	-Geometric_Shapes_ext:=}');
     Expect(1, 129023, '\p{Blk=:\AGeometric_Shapes_Ext\z:}', "");;
     Expect(0, 129024, '\p{Blk=:\AGeometric_Shapes_Ext\z:}', "");;
     Expect(1, 129023, '\p{Blk=geometricshapesext}', "");
@@ -11898,16 +12242,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129024, '\P{^Blk=geometricshapesext}', "");
     Expect(1, 129023, '\p{Blk=:\Ageometricshapesext\z:}', "");;
     Expect(0, 129024, '\p{Blk=:\Ageometricshapesext\z:}', "");;
-    Expect(1, 129023, '\p{Blk=	Geometric_Shapes_Ext}', "");
-    Expect(0, 129023, '\p{^Blk=	Geometric_Shapes_Ext}', "");
-    Expect(0, 129023, '\P{Blk=	Geometric_Shapes_Ext}', "");
-    Expect(1, 129023, '\P{^Blk=	Geometric_Shapes_Ext}', "");
-    Expect(0, 129024, '\p{Blk=	Geometric_Shapes_Ext}', "");
-    Expect(1, 129024, '\p{^Blk=	Geometric_Shapes_Ext}', "");
-    Expect(1, 129024, '\P{Blk=	Geometric_Shapes_Ext}', "");
-    Expect(0, 129024, '\P{^Blk=	Geometric_Shapes_Ext}', "");
-    Error('\p{Is_Block=:=- GEOMETRIC_SHAPES_Extended}');
-    Error('\P{Is_Block=:=- GEOMETRIC_SHAPES_Extended}');
+    Expect(1, 129023, '\p{Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(0, 129023, '\p{^Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(0, 129023, '\P{Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(1, 129023, '\P{^Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(0, 129024, '\p{Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(1, 129024, '\p{^Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(1, 129024, '\P{Blk=__Geometric_SHAPES_EXT}', "");
+    Expect(0, 129024, '\P{^Blk=__Geometric_SHAPES_EXT}', "");
+    Error('\p{Is_Block=/a/ -Geometric_Shapes_extended}');
+    Error('\P{Is_Block=/a/ -Geometric_Shapes_extended}');
     Expect(1, 129023, '\p{Is_Block=geometricshapesextended}', "");
     Expect(0, 129023, '\p{^Is_Block=geometricshapesextended}', "");
     Expect(0, 129023, '\P{Is_Block=geometricshapesextended}', "");
@@ -11916,16 +12260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129024, '\p{^Is_Block=geometricshapesextended}', "");
     Expect(1, 129024, '\P{Is_Block=geometricshapesextended}', "");
     Expect(0, 129024, '\P{^Is_Block=geometricshapesextended}', "");
-    Expect(1, 129023, '\p{Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129023, '\p{^Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129023, '\P{Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(1, 129023, '\P{^Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129024, '\p{Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(1, 129024, '\p{^Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(1, 129024, '\P{Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129024, '\P{^Is_Block=	 GEOMETRIC_Shapes_Extended}', "");
-    Error('\p{Is_Blk=_/a/GEOMETRIC_shapes_Ext}');
-    Error('\P{Is_Blk=_/a/GEOMETRIC_shapes_Ext}');
+    Expect(1, 129023, '\p{Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(0, 129023, '\p{^Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(0, 129023, '\P{Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(1, 129023, '\P{^Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(0, 129024, '\p{Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(1, 129024, '\p{^Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(1, 129024, '\P{Is_Block=	Geometric_Shapes_extended}', "");
+    Expect(0, 129024, '\P{^Is_Block=	Geometric_Shapes_extended}', "");
+    Error('\p{Is_Blk=	:=GEOMETRIC_Shapes_ext}');
+    Error('\P{Is_Blk=	:=GEOMETRIC_Shapes_ext}');
     Expect(1, 129023, '\p{Is_Blk=geometricshapesext}', "");
     Expect(0, 129023, '\p{^Is_Blk=geometricshapesext}', "");
     Expect(0, 129023, '\P{Is_Blk=geometricshapesext}', "");
@@ -11934,16 +12278,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129024, '\p{^Is_Blk=geometricshapesext}', "");
     Expect(1, 129024, '\P{Is_Blk=geometricshapesext}', "");
     Expect(0, 129024, '\P{^Is_Blk=geometricshapesext}', "");
-    Expect(1, 129023, '\p{Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(0, 129023, '\p{^Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(0, 129023, '\P{Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(1, 129023, '\P{^Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(0, 129024, '\p{Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(1, 129024, '\p{^Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(1, 129024, '\P{Is_Blk=	-Geometric_shapes_ext}', "");
-    Expect(0, 129024, '\P{^Is_Blk=	-Geometric_shapes_ext}', "");
-    Error('\p{Block=	/a/Georgian}');
-    Error('\P{Block=	/a/Georgian}');
+    Expect(1, 129023, '\p{Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(0, 129023, '\p{^Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(0, 129023, '\P{Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(1, 129023, '\P{^Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(0, 129024, '\p{Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(1, 129024, '\p{^Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(1, 129024, '\P{Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Expect(0, 129024, '\P{^Is_Blk=	 Geometric_Shapes_Ext}', "");
+    Error('\p{Block=:=--Georgian}');
+    Error('\P{Block=:=--Georgian}');
     Expect(1, 4351, '\p{Block=:\AGeorgian\z:}', "");;
     Expect(0, 4352, '\p{Block=:\AGeorgian\z:}', "");;
     Expect(1, 4351, '\p{Block=georgian}', "");
@@ -11956,16 +12300,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4352, '\P{^Block=georgian}', "");
     Expect(1, 4351, '\p{Block=:\Ageorgian\z:}', "");;
     Expect(0, 4352, '\p{Block=:\Ageorgian\z:}', "");;
-    Expect(1, 4351, '\p{Block:  GEORGIAN}', "");
-    Expect(0, 4351, '\p{^Block:  GEORGIAN}', "");
-    Expect(0, 4351, '\P{Block:  GEORGIAN}', "");
-    Expect(1, 4351, '\P{^Block:  GEORGIAN}', "");
-    Expect(0, 4352, '\p{Block:  GEORGIAN}', "");
-    Expect(1, 4352, '\p{^Block:  GEORGIAN}', "");
-    Expect(1, 4352, '\P{Block:  GEORGIAN}', "");
-    Expect(0, 4352, '\P{^Block:  GEORGIAN}', "");
-    Error('\p{Blk:    :=GEORGIAN}');
-    Error('\P{Blk:    :=GEORGIAN}');
+    Expect(1, 4351, '\p{Block=_georgian}', "");
+    Expect(0, 4351, '\p{^Block=_georgian}', "");
+    Expect(0, 4351, '\P{Block=_georgian}', "");
+    Expect(1, 4351, '\P{^Block=_georgian}', "");
+    Expect(0, 4352, '\p{Block=_georgian}', "");
+    Expect(1, 4352, '\p{^Block=_georgian}', "");
+    Expect(1, 4352, '\P{Block=_georgian}', "");
+    Expect(0, 4352, '\P{^Block=_georgian}', "");
+    Error('\p{Blk=	georgian/a/}');
+    Error('\P{Blk=	georgian/a/}');
     Expect(1, 4351, '\p{Blk=:\AGeorgian\z:}', "");;
     Expect(0, 4352, '\p{Blk=:\AGeorgian\z:}', "");;
     Expect(1, 4351, '\p{Blk=georgian}', "");
@@ -11978,16 +12322,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4352, '\P{^Blk=georgian}', "");
     Expect(1, 4351, '\p{Blk=:\Ageorgian\z:}', "");;
     Expect(0, 4352, '\p{Blk=:\Ageorgian\z:}', "");;
-    Expect(1, 4351, '\p{Blk=  georgian}', "");
-    Expect(0, 4351, '\p{^Blk=  georgian}', "");
-    Expect(0, 4351, '\P{Blk=  georgian}', "");
-    Expect(1, 4351, '\P{^Blk=  georgian}', "");
-    Expect(0, 4352, '\p{Blk=  georgian}', "");
-    Expect(1, 4352, '\p{^Blk=  georgian}', "");
-    Expect(1, 4352, '\P{Blk=  georgian}', "");
-    Expect(0, 4352, '\P{^Blk=  georgian}', "");
-    Error('\p{Is_Block:     GEORGIAN/a/}');
-    Error('\P{Is_Block:     GEORGIAN/a/}');
+    Expect(1, 4351, '\p{Blk=_ GEORGIAN}', "");
+    Expect(0, 4351, '\p{^Blk=_ GEORGIAN}', "");
+    Expect(0, 4351, '\P{Blk=_ GEORGIAN}', "");
+    Expect(1, 4351, '\P{^Blk=_ GEORGIAN}', "");
+    Expect(0, 4352, '\p{Blk=_ GEORGIAN}', "");
+    Expect(1, 4352, '\p{^Blk=_ GEORGIAN}', "");
+    Expect(1, 4352, '\P{Blk=_ GEORGIAN}', "");
+    Expect(0, 4352, '\P{^Blk=_ GEORGIAN}', "");
+    Error('\p{Is_Block:   _Georgian/a/}');
+    Error('\P{Is_Block:   _Georgian/a/}');
     Expect(1, 4351, '\p{Is_Block=georgian}', "");
     Expect(0, 4351, '\p{^Is_Block=georgian}', "");
     Expect(0, 4351, '\P{Is_Block=georgian}', "");
@@ -11996,16 +12340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4352, '\p{^Is_Block=georgian}', "");
     Expect(1, 4352, '\P{Is_Block=georgian}', "");
     Expect(0, 4352, '\P{^Is_Block=georgian}', "");
-    Expect(1, 4351, '\p{Is_Block=	-georgian}', "");
-    Expect(0, 4351, '\p{^Is_Block=	-georgian}', "");
-    Expect(0, 4351, '\P{Is_Block=	-georgian}', "");
-    Expect(1, 4351, '\P{^Is_Block=	-georgian}', "");
-    Expect(0, 4352, '\p{Is_Block=	-georgian}', "");
-    Expect(1, 4352, '\p{^Is_Block=	-georgian}', "");
-    Expect(1, 4352, '\P{Is_Block=	-georgian}', "");
-    Expect(0, 4352, '\P{^Is_Block=	-georgian}', "");
-    Error('\p{Is_Blk=__Georgian/a/}');
-    Error('\P{Is_Blk=__Georgian/a/}');
+    Expect(1, 4351, '\p{Is_Block=-georgian}', "");
+    Expect(0, 4351, '\p{^Is_Block=-georgian}', "");
+    Expect(0, 4351, '\P{Is_Block=-georgian}', "");
+    Expect(1, 4351, '\P{^Is_Block=-georgian}', "");
+    Expect(0, 4352, '\p{Is_Block=-georgian}', "");
+    Expect(1, 4352, '\p{^Is_Block=-georgian}', "");
+    Expect(1, 4352, '\P{Is_Block=-georgian}', "");
+    Expect(0, 4352, '\P{^Is_Block=-georgian}', "");
+    Error('\p{Is_Blk=/a/-_GEORGIAN}');
+    Error('\P{Is_Blk=/a/-_GEORGIAN}');
     Expect(1, 4351, '\p{Is_Blk=georgian}', "");
     Expect(0, 4351, '\p{^Is_Blk=georgian}', "");
     Expect(0, 4351, '\P{Is_Blk=georgian}', "");
@@ -12014,16 +12358,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4352, '\p{^Is_Blk=georgian}', "");
     Expect(1, 4352, '\P{Is_Blk=georgian}', "");
     Expect(0, 4352, '\P{^Is_Blk=georgian}', "");
-    Expect(1, 4351, '\p{Is_Blk=	GEORGIAN}', "");
-    Expect(0, 4351, '\p{^Is_Blk=	GEORGIAN}', "");
-    Expect(0, 4351, '\P{Is_Blk=	GEORGIAN}', "");
-    Expect(1, 4351, '\P{^Is_Blk=	GEORGIAN}', "");
-    Expect(0, 4352, '\p{Is_Blk=	GEORGIAN}', "");
-    Expect(1, 4352, '\p{^Is_Blk=	GEORGIAN}', "");
-    Expect(1, 4352, '\P{Is_Blk=	GEORGIAN}', "");
-    Expect(0, 4352, '\P{^Is_Blk=	GEORGIAN}', "");
-    Error('\p{Block=:=__GEORGIAN_Extended}');
-    Error('\P{Block=:=__GEORGIAN_Extended}');
+    Expect(1, 4351, '\p{Is_Blk:  GEORGIAN}', "");
+    Expect(0, 4351, '\p{^Is_Blk:  GEORGIAN}', "");
+    Expect(0, 4351, '\P{Is_Blk:  GEORGIAN}', "");
+    Expect(1, 4351, '\P{^Is_Blk:  GEORGIAN}', "");
+    Expect(0, 4352, '\p{Is_Blk:  GEORGIAN}', "");
+    Expect(1, 4352, '\p{^Is_Blk:  GEORGIAN}', "");
+    Expect(1, 4352, '\P{Is_Blk:  GEORGIAN}', "");
+    Expect(0, 4352, '\P{^Is_Blk:  GEORGIAN}', "");
+    Error('\p{Block=/a/	_GEORGIAN_EXTENDED}');
+    Error('\P{Block=/a/	_GEORGIAN_EXTENDED}');
     Expect(1, 7359, '\p{Block=:\AGeorgian_Extended\z:}', "");;
     Expect(0, 7360, '\p{Block=:\AGeorgian_Extended\z:}', "");;
     Expect(1, 7359, '\p{Block=georgianextended}', "");
@@ -12036,16 +12380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7360, '\P{^Block=georgianextended}', "");
     Expect(1, 7359, '\p{Block=:\Ageorgianextended\z:}', "");;
     Expect(0, 7360, '\p{Block=:\Ageorgianextended\z:}', "");;
-    Expect(1, 7359, '\p{Block=- GEORGIAN_Extended}', "");
-    Expect(0, 7359, '\p{^Block=- GEORGIAN_Extended}', "");
-    Expect(0, 7359, '\P{Block=- GEORGIAN_Extended}', "");
-    Expect(1, 7359, '\P{^Block=- GEORGIAN_Extended}', "");
-    Expect(0, 7360, '\p{Block=- GEORGIAN_Extended}', "");
-    Expect(1, 7360, '\p{^Block=- GEORGIAN_Extended}', "");
-    Expect(1, 7360, '\P{Block=- GEORGIAN_Extended}', "");
-    Expect(0, 7360, '\P{^Block=- GEORGIAN_Extended}', "");
-    Error('\p{Blk=__Georgian_EXT:=}');
-    Error('\P{Blk=__Georgian_EXT:=}');
+    Expect(1, 7359, '\p{Block=_	Georgian_Extended}', "");
+    Expect(0, 7359, '\p{^Block=_	Georgian_Extended}', "");
+    Expect(0, 7359, '\P{Block=_	Georgian_Extended}', "");
+    Expect(1, 7359, '\P{^Block=_	Georgian_Extended}', "");
+    Expect(0, 7360, '\p{Block=_	Georgian_Extended}', "");
+    Expect(1, 7360, '\p{^Block=_	Georgian_Extended}', "");
+    Expect(1, 7360, '\P{Block=_	Georgian_Extended}', "");
+    Expect(0, 7360, '\P{^Block=_	Georgian_Extended}', "");
+    Error('\p{Blk=-:=georgian_Ext}');
+    Error('\P{Blk=-:=georgian_Ext}');
     Expect(1, 7359, '\p{Blk=:\AGeorgian_Ext\z:}', "");;
     Expect(0, 7360, '\p{Blk=:\AGeorgian_Ext\z:}', "");;
     Expect(1, 7359, '\p{Blk=georgianext}', "");
@@ -12058,16 +12402,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7360, '\P{^Blk=georgianext}', "");
     Expect(1, 7359, '\p{Blk=:\Ageorgianext\z:}', "");;
     Expect(0, 7360, '\p{Blk=:\Ageorgianext\z:}', "");;
-    Expect(1, 7359, '\p{Blk= Georgian_Ext}', "");
-    Expect(0, 7359, '\p{^Blk= Georgian_Ext}', "");
-    Expect(0, 7359, '\P{Blk= Georgian_Ext}', "");
-    Expect(1, 7359, '\P{^Blk= Georgian_Ext}', "");
-    Expect(0, 7360, '\p{Blk= Georgian_Ext}', "");
-    Expect(1, 7360, '\p{^Blk= Georgian_Ext}', "");
-    Expect(1, 7360, '\P{Blk= Georgian_Ext}', "");
-    Expect(0, 7360, '\P{^Blk= Georgian_Ext}', "");
-    Error('\p{Is_Block: _/a/GEORGIAN_extended}');
-    Error('\P{Is_Block: _/a/GEORGIAN_extended}');
+    Expect(1, 7359, '\p{Blk=_Georgian_EXT}', "");
+    Expect(0, 7359, '\p{^Blk=_Georgian_EXT}', "");
+    Expect(0, 7359, '\P{Blk=_Georgian_EXT}', "");
+    Expect(1, 7359, '\P{^Blk=_Georgian_EXT}', "");
+    Expect(0, 7360, '\p{Blk=_Georgian_EXT}', "");
+    Expect(1, 7360, '\p{^Blk=_Georgian_EXT}', "");
+    Expect(1, 7360, '\P{Blk=_Georgian_EXT}', "");
+    Expect(0, 7360, '\P{^Blk=_Georgian_EXT}', "");
+    Error('\p{Is_Block=_georgian_EXTENDED:=}');
+    Error('\P{Is_Block=_georgian_EXTENDED:=}');
     Expect(1, 7359, '\p{Is_Block=georgianextended}', "");
     Expect(0, 7359, '\p{^Is_Block=georgianextended}', "");
     Expect(0, 7359, '\P{Is_Block=georgianextended}', "");
@@ -12076,34 +12420,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7360, '\p{^Is_Block=georgianextended}', "");
     Expect(1, 7360, '\P{Is_Block=georgianextended}', "");
     Expect(0, 7360, '\P{^Is_Block=georgianextended}', "");
-    Expect(1, 7359, '\p{Is_Block=_ georgian_Extended}', "");
-    Expect(0, 7359, '\p{^Is_Block=_ georgian_Extended}', "");
-    Expect(0, 7359, '\P{Is_Block=_ georgian_Extended}', "");
-    Expect(1, 7359, '\P{^Is_Block=_ georgian_Extended}', "");
-    Expect(0, 7360, '\p{Is_Block=_ georgian_Extended}', "");
-    Expect(1, 7360, '\p{^Is_Block=_ georgian_Extended}', "");
-    Expect(1, 7360, '\P{Is_Block=_ georgian_Extended}', "");
-    Expect(0, 7360, '\P{^Is_Block=_ georgian_Extended}', "");
-    Error('\p{Is_Blk=:=	georgian_Ext}');
-    Error('\P{Is_Blk=:=	georgian_Ext}');
-    Expect(1, 7359, '\p{Is_Blk=georgianext}', "");
-    Expect(0, 7359, '\p{^Is_Blk=georgianext}', "");
-    Expect(0, 7359, '\P{Is_Blk=georgianext}', "");
-    Expect(1, 7359, '\P{^Is_Blk=georgianext}', "");
-    Expect(0, 7360, '\p{Is_Blk=georgianext}', "");
-    Expect(1, 7360, '\p{^Is_Blk=georgianext}', "");
-    Expect(1, 7360, '\P{Is_Blk=georgianext}', "");
-    Expect(0, 7360, '\P{^Is_Blk=georgianext}', "");
-    Expect(1, 7359, '\p{Is_Blk:-	georgian_Ext}', "");
-    Expect(0, 7359, '\p{^Is_Blk:-	georgian_Ext}', "");
-    Expect(0, 7359, '\P{Is_Blk:-	georgian_Ext}', "");
-    Expect(1, 7359, '\P{^Is_Blk:-	georgian_Ext}', "");
-    Expect(0, 7360, '\p{Is_Blk:-	georgian_Ext}', "");
-    Expect(1, 7360, '\p{^Is_Blk:-	georgian_Ext}', "");
-    Expect(1, 7360, '\P{Is_Blk:-	georgian_Ext}', "");
-    Expect(0, 7360, '\P{^Is_Blk:-	georgian_Ext}', "");
-    Error('\p{Block=	 Georgian_Supplement/a/}');
-    Error('\P{Block=	 Georgian_Supplement/a/}');
+    Expect(1, 7359, '\p{Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(0, 7359, '\p{^Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(0, 7359, '\P{Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(1, 7359, '\P{^Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(0, 7360, '\p{Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(1, 7360, '\p{^Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(1, 7360, '\P{Is_Block= 	GEORGIAN_Extended}', "");
+    Expect(0, 7360, '\P{^Is_Block= 	GEORGIAN_Extended}', "");
+    Error('\p{Is_Blk=-:=georgian_Ext}');
+    Error('\P{Is_Blk=-:=georgian_Ext}');
+    Expect(1, 7359, '\p{Is_Blk:georgianext}', "");
+    Expect(0, 7359, '\p{^Is_Blk:georgianext}', "");
+    Expect(0, 7359, '\P{Is_Blk:georgianext}', "");
+    Expect(1, 7359, '\P{^Is_Blk:georgianext}', "");
+    Expect(0, 7360, '\p{Is_Blk:georgianext}', "");
+    Expect(1, 7360, '\p{^Is_Blk:georgianext}', "");
+    Expect(1, 7360, '\P{Is_Blk:georgianext}', "");
+    Expect(0, 7360, '\P{^Is_Blk:georgianext}', "");
+    Expect(1, 7359, '\p{Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(0, 7359, '\p{^Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(0, 7359, '\P{Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(1, 7359, '\P{^Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(0, 7360, '\p{Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(1, 7360, '\p{^Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(1, 7360, '\P{Is_Blk=_-GEORGIAN_Ext}', "");
+    Expect(0, 7360, '\P{^Is_Blk=_-GEORGIAN_Ext}', "");
+    Error('\p{Block=:=_-Georgian_supplement}');
+    Error('\P{Block=:=_-Georgian_supplement}');
     Expect(1, 11567, '\p{Block=:\AGeorgian_Supplement\z:}', "");;
     Expect(0, 11568, '\p{Block=:\AGeorgian_Supplement\z:}', "");;
     Expect(1, 11567, '\p{Block=georgiansupplement}', "");
@@ -12116,16 +12460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11568, '\P{^Block=georgiansupplement}', "");
     Expect(1, 11567, '\p{Block=:\Ageorgiansupplement\z:}', "");;
     Expect(0, 11568, '\p{Block=:\Ageorgiansupplement\z:}', "");;
-    Expect(1, 11567, '\p{Block=	-Georgian_Supplement}', "");
-    Expect(0, 11567, '\p{^Block=	-Georgian_Supplement}', "");
-    Expect(0, 11567, '\P{Block=	-Georgian_Supplement}', "");
-    Expect(1, 11567, '\P{^Block=	-Georgian_Supplement}', "");
-    Expect(0, 11568, '\p{Block=	-Georgian_Supplement}', "");
-    Expect(1, 11568, '\p{^Block=	-Georgian_Supplement}', "");
-    Expect(1, 11568, '\P{Block=	-Georgian_Supplement}', "");
-    Expect(0, 11568, '\P{^Block=	-Georgian_Supplement}', "");
-    Error('\p{Blk=/a/_Georgian_Sup}');
-    Error('\P{Blk=/a/_Georgian_Sup}');
+    Expect(1, 11567, '\p{Block=_-Georgian_Supplement}', "");
+    Expect(0, 11567, '\p{^Block=_-Georgian_Supplement}', "");
+    Expect(0, 11567, '\P{Block=_-Georgian_Supplement}', "");
+    Expect(1, 11567, '\P{^Block=_-Georgian_Supplement}', "");
+    Expect(0, 11568, '\p{Block=_-Georgian_Supplement}', "");
+    Expect(1, 11568, '\p{^Block=_-Georgian_Supplement}', "");
+    Expect(1, 11568, '\P{Block=_-Georgian_Supplement}', "");
+    Expect(0, 11568, '\P{^Block=_-Georgian_Supplement}', "");
+    Error('\p{Blk=-/a/GEORGIAN_SUP}');
+    Error('\P{Blk=-/a/GEORGIAN_SUP}');
     Expect(1, 11567, '\p{Blk=:\AGeorgian_Sup\z:}', "");;
     Expect(0, 11568, '\p{Blk=:\AGeorgian_Sup\z:}', "");;
     Expect(1, 11567, '\p{Blk=georgiansup}', "");
@@ -12138,16 +12482,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11568, '\P{^Blk=georgiansup}', "");
     Expect(1, 11567, '\p{Blk=:\Ageorgiansup\z:}', "");;
     Expect(0, 11568, '\p{Blk=:\Ageorgiansup\z:}', "");;
-    Expect(1, 11567, '\p{Blk=_-georgian_Sup}', "");
-    Expect(0, 11567, '\p{^Blk=_-georgian_Sup}', "");
-    Expect(0, 11567, '\P{Blk=_-georgian_Sup}', "");
-    Expect(1, 11567, '\P{^Blk=_-georgian_Sup}', "");
-    Expect(0, 11568, '\p{Blk=_-georgian_Sup}', "");
-    Expect(1, 11568, '\p{^Blk=_-georgian_Sup}', "");
-    Expect(1, 11568, '\P{Blk=_-georgian_Sup}', "");
-    Expect(0, 11568, '\P{^Blk=_-georgian_Sup}', "");
-    Error('\p{Is_Block=-_georgian_supplement/a/}');
-    Error('\P{Is_Block=-_georgian_supplement/a/}');
+    Expect(1, 11567, '\p{Blk=	Georgian_sup}', "");
+    Expect(0, 11567, '\p{^Blk=	Georgian_sup}', "");
+    Expect(0, 11567, '\P{Blk=	Georgian_sup}', "");
+    Expect(1, 11567, '\P{^Blk=	Georgian_sup}', "");
+    Expect(0, 11568, '\p{Blk=	Georgian_sup}', "");
+    Expect(1, 11568, '\p{^Blk=	Georgian_sup}', "");
+    Expect(1, 11568, '\P{Blk=	Georgian_sup}', "");
+    Expect(0, 11568, '\P{^Blk=	Georgian_sup}', "");
+    Error('\p{Is_Block=:=_-georgian_Supplement}');
+    Error('\P{Is_Block=:=_-georgian_Supplement}');
     Expect(1, 11567, '\p{Is_Block=georgiansupplement}', "");
     Expect(0, 11567, '\p{^Is_Block=georgiansupplement}', "");
     Expect(0, 11567, '\P{Is_Block=georgiansupplement}', "");
@@ -12156,34 +12500,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11568, '\p{^Is_Block=georgiansupplement}', "");
     Expect(1, 11568, '\P{Is_Block=georgiansupplement}', "");
     Expect(0, 11568, '\P{^Is_Block=georgiansupplement}', "");
-    Expect(1, 11567, '\p{Is_Block=_georgian_supplement}', "");
-    Expect(0, 11567, '\p{^Is_Block=_georgian_supplement}', "");
-    Expect(0, 11567, '\P{Is_Block=_georgian_supplement}', "");
-    Expect(1, 11567, '\P{^Is_Block=_georgian_supplement}', "");
-    Expect(0, 11568, '\p{Is_Block=_georgian_supplement}', "");
-    Expect(1, 11568, '\p{^Is_Block=_georgian_supplement}', "");
-    Expect(1, 11568, '\P{Is_Block=_georgian_supplement}', "");
-    Expect(0, 11568, '\P{^Is_Block=_georgian_supplement}', "");
-    Error('\p{Is_Blk=/a/Georgian_sup}');
-    Error('\P{Is_Blk=/a/Georgian_sup}');
-    Expect(1, 11567, '\p{Is_Blk=georgiansup}', "");
-    Expect(0, 11567, '\p{^Is_Blk=georgiansup}', "");
-    Expect(0, 11567, '\P{Is_Blk=georgiansup}', "");
-    Expect(1, 11567, '\P{^Is_Blk=georgiansup}', "");
-    Expect(0, 11568, '\p{Is_Blk=georgiansup}', "");
-    Expect(1, 11568, '\p{^Is_Blk=georgiansup}', "");
-    Expect(1, 11568, '\P{Is_Blk=georgiansup}', "");
-    Expect(0, 11568, '\P{^Is_Blk=georgiansup}', "");
-    Expect(1, 11567, '\p{Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(0, 11567, '\p{^Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(0, 11567, '\P{Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(1, 11567, '\P{^Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(0, 11568, '\p{Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(1, 11568, '\p{^Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(1, 11568, '\P{Is_Blk=__GEORGIAN_Sup}', "");
-    Expect(0, 11568, '\P{^Is_Blk=__GEORGIAN_Sup}', "");
-    Error('\p{Block=-/a/glagolitic}');
-    Error('\P{Block=-/a/glagolitic}');
+    Expect(1, 11567, '\p{Is_Block= -Georgian_Supplement}', "");
+    Expect(0, 11567, '\p{^Is_Block= -Georgian_Supplement}', "");
+    Expect(0, 11567, '\P{Is_Block= -Georgian_Supplement}', "");
+    Expect(1, 11567, '\P{^Is_Block= -Georgian_Supplement}', "");
+    Expect(0, 11568, '\p{Is_Block= -Georgian_Supplement}', "");
+    Expect(1, 11568, '\p{^Is_Block= -Georgian_Supplement}', "");
+    Expect(1, 11568, '\P{Is_Block= -Georgian_Supplement}', "");
+    Expect(0, 11568, '\P{^Is_Block= -Georgian_Supplement}', "");
+    Error('\p{Is_Blk=_ georgian_SUP/a/}');
+    Error('\P{Is_Blk=_ georgian_SUP/a/}');
+    Expect(1, 11567, '\p{Is_Blk:   georgiansup}', "");
+    Expect(0, 11567, '\p{^Is_Blk:   georgiansup}', "");
+    Expect(0, 11567, '\P{Is_Blk:   georgiansup}', "");
+    Expect(1, 11567, '\P{^Is_Blk:   georgiansup}', "");
+    Expect(0, 11568, '\p{Is_Blk:   georgiansup}', "");
+    Expect(1, 11568, '\p{^Is_Blk:   georgiansup}', "");
+    Expect(1, 11568, '\P{Is_Blk:   georgiansup}', "");
+    Expect(0, 11568, '\P{^Is_Blk:   georgiansup}', "");
+    Expect(1, 11567, '\p{Is_Blk=_Georgian_Sup}', "");
+    Expect(0, 11567, '\p{^Is_Blk=_Georgian_Sup}', "");
+    Expect(0, 11567, '\P{Is_Blk=_Georgian_Sup}', "");
+    Expect(1, 11567, '\P{^Is_Blk=_Georgian_Sup}', "");
+    Expect(0, 11568, '\p{Is_Blk=_Georgian_Sup}', "");
+    Expect(1, 11568, '\p{^Is_Blk=_Georgian_Sup}', "");
+    Expect(1, 11568, '\P{Is_Blk=_Georgian_Sup}', "");
+    Expect(0, 11568, '\P{^Is_Blk=_Georgian_Sup}', "");
+    Error('\p{Block=/a/- glagolitic}');
+    Error('\P{Block=/a/- glagolitic}');
     Expect(1, 11359, '\p{Block=:\AGlagolitic\z:}', "");;
     Expect(0, 11360, '\p{Block=:\AGlagolitic\z:}', "");;
     Expect(1, 11359, '\p{Block=glagolitic}', "");
@@ -12196,16 +12540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11360, '\P{^Block=glagolitic}', "");
     Expect(1, 11359, '\p{Block=:\Aglagolitic\z:}', "");;
     Expect(0, 11360, '\p{Block=:\Aglagolitic\z:}', "");;
-    Expect(1, 11359, '\p{Block= _GLAGOLITIC}', "");
-    Expect(0, 11359, '\p{^Block= _GLAGOLITIC}', "");
-    Expect(0, 11359, '\P{Block= _GLAGOLITIC}', "");
-    Expect(1, 11359, '\P{^Block= _GLAGOLITIC}', "");
-    Expect(0, 11360, '\p{Block= _GLAGOLITIC}', "");
-    Expect(1, 11360, '\p{^Block= _GLAGOLITIC}', "");
-    Expect(1, 11360, '\P{Block= _GLAGOLITIC}', "");
-    Expect(0, 11360, '\P{^Block= _GLAGOLITIC}', "");
-    Error('\p{Blk=	/a/Glagolitic}');
-    Error('\P{Blk=	/a/Glagolitic}');
+    Expect(1, 11359, '\p{Block=_ glagolitic}', "");
+    Expect(0, 11359, '\p{^Block=_ glagolitic}', "");
+    Expect(0, 11359, '\P{Block=_ glagolitic}', "");
+    Expect(1, 11359, '\P{^Block=_ glagolitic}', "");
+    Expect(0, 11360, '\p{Block=_ glagolitic}', "");
+    Expect(1, 11360, '\p{^Block=_ glagolitic}', "");
+    Expect(1, 11360, '\P{Block=_ glagolitic}', "");
+    Expect(0, 11360, '\P{^Block=_ glagolitic}', "");
+    Error('\p{Blk=	:=glagolitic}');
+    Error('\P{Blk=	:=glagolitic}');
     Expect(1, 11359, '\p{Blk=:\AGlagolitic\z:}', "");;
     Expect(0, 11360, '\p{Blk=:\AGlagolitic\z:}', "");;
     Expect(1, 11359, '\p{Blk=glagolitic}', "");
@@ -12218,16 +12562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11360, '\P{^Blk=glagolitic}', "");
     Expect(1, 11359, '\p{Blk=:\Aglagolitic\z:}', "");;
     Expect(0, 11360, '\p{Blk=:\Aglagolitic\z:}', "");;
-    Expect(1, 11359, '\p{Blk=	Glagolitic}', "");
-    Expect(0, 11359, '\p{^Blk=	Glagolitic}', "");
-    Expect(0, 11359, '\P{Blk=	Glagolitic}', "");
-    Expect(1, 11359, '\P{^Blk=	Glagolitic}', "");
-    Expect(0, 11360, '\p{Blk=	Glagolitic}', "");
-    Expect(1, 11360, '\p{^Blk=	Glagolitic}', "");
-    Expect(1, 11360, '\P{Blk=	Glagolitic}', "");
-    Expect(0, 11360, '\P{^Blk=	Glagolitic}', "");
-    Error('\p{Is_Block=-/a/glagolitic}');
-    Error('\P{Is_Block=-/a/glagolitic}');
+    Expect(1, 11359, '\p{Blk=_Glagolitic}', "");
+    Expect(0, 11359, '\p{^Blk=_Glagolitic}', "");
+    Expect(0, 11359, '\P{Blk=_Glagolitic}', "");
+    Expect(1, 11359, '\P{^Blk=_Glagolitic}', "");
+    Expect(0, 11360, '\p{Blk=_Glagolitic}', "");
+    Expect(1, 11360, '\p{^Blk=_Glagolitic}', "");
+    Expect(1, 11360, '\P{Blk=_Glagolitic}', "");
+    Expect(0, 11360, '\P{^Blk=_Glagolitic}', "");
+    Error('\p{Is_Block=-	GLAGOLITIC:=}');
+    Error('\P{Is_Block=-	GLAGOLITIC:=}');
     Expect(1, 11359, '\p{Is_Block=glagolitic}', "");
     Expect(0, 11359, '\p{^Is_Block=glagolitic}', "");
     Expect(0, 11359, '\P{Is_Block=glagolitic}', "");
@@ -12236,16 +12580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11360, '\p{^Is_Block=glagolitic}', "");
     Expect(1, 11360, '\P{Is_Block=glagolitic}', "");
     Expect(0, 11360, '\P{^Is_Block=glagolitic}', "");
-    Expect(1, 11359, '\p{Is_Block=Glagolitic}', "");
-    Expect(0, 11359, '\p{^Is_Block=Glagolitic}', "");
-    Expect(0, 11359, '\P{Is_Block=Glagolitic}', "");
-    Expect(1, 11359, '\P{^Is_Block=Glagolitic}', "");
-    Expect(0, 11360, '\p{Is_Block=Glagolitic}', "");
-    Expect(1, 11360, '\p{^Is_Block=Glagolitic}', "");
-    Expect(1, 11360, '\P{Is_Block=Glagolitic}', "");
-    Expect(0, 11360, '\P{^Is_Block=Glagolitic}', "");
-    Error('\p{Is_Blk=/a/GLAGOLITIC}');
-    Error('\P{Is_Blk=/a/GLAGOLITIC}');
+    Expect(1, 11359, '\p{Is_Block:   	Glagolitic}', "");
+    Expect(0, 11359, '\p{^Is_Block:   	Glagolitic}', "");
+    Expect(0, 11359, '\P{Is_Block:   	Glagolitic}', "");
+    Expect(1, 11359, '\P{^Is_Block:   	Glagolitic}', "");
+    Expect(0, 11360, '\p{Is_Block:   	Glagolitic}', "");
+    Expect(1, 11360, '\p{^Is_Block:   	Glagolitic}', "");
+    Expect(1, 11360, '\P{Is_Block:   	Glagolitic}', "");
+    Expect(0, 11360, '\P{^Is_Block:   	Glagolitic}', "");
+    Error('\p{Is_Blk=/a/Glagolitic}');
+    Error('\P{Is_Blk=/a/Glagolitic}');
     Expect(1, 11359, '\p{Is_Blk=glagolitic}', "");
     Expect(0, 11359, '\p{^Is_Blk=glagolitic}', "");
     Expect(0, 11359, '\P{Is_Blk=glagolitic}', "");
@@ -12254,16 +12598,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11360, '\p{^Is_Blk=glagolitic}', "");
     Expect(1, 11360, '\P{Is_Blk=glagolitic}', "");
     Expect(0, 11360, '\P{^Is_Blk=glagolitic}', "");
-    Expect(1, 11359, '\p{Is_Blk=_Glagolitic}', "");
-    Expect(0, 11359, '\p{^Is_Blk=_Glagolitic}', "");
-    Expect(0, 11359, '\P{Is_Blk=_Glagolitic}', "");
-    Expect(1, 11359, '\P{^Is_Blk=_Glagolitic}', "");
-    Expect(0, 11360, '\p{Is_Blk=_Glagolitic}', "");
-    Expect(1, 11360, '\p{^Is_Blk=_Glagolitic}', "");
-    Expect(1, 11360, '\P{Is_Blk=_Glagolitic}', "");
-    Expect(0, 11360, '\P{^Is_Blk=_Glagolitic}', "");
-    Error('\p{Block=_-glagolitic_Supplement/a/}');
-    Error('\P{Block=_-glagolitic_Supplement/a/}');
+    Expect(1, 11359, '\p{Is_Blk: Glagolitic}', "");
+    Expect(0, 11359, '\p{^Is_Blk: Glagolitic}', "");
+    Expect(0, 11359, '\P{Is_Blk: Glagolitic}', "");
+    Expect(1, 11359, '\P{^Is_Blk: Glagolitic}', "");
+    Expect(0, 11360, '\p{Is_Blk: Glagolitic}', "");
+    Expect(1, 11360, '\p{^Is_Blk: Glagolitic}', "");
+    Expect(1, 11360, '\P{Is_Blk: Glagolitic}', "");
+    Expect(0, 11360, '\P{^Is_Blk: Glagolitic}', "");
+    Error('\p{Block=/a/-_Glagolitic_SUPPLEMENT}');
+    Error('\P{Block=/a/-_Glagolitic_SUPPLEMENT}');
     Expect(1, 122927, '\p{Block=:\AGlagolitic_Supplement\z:}', "");;
     Expect(0, 122928, '\p{Block=:\AGlagolitic_Supplement\z:}', "");;
     Expect(1, 122927, '\p{Block=glagoliticsupplement}', "");
@@ -12276,16 +12620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 122928, '\P{^Block=glagoliticsupplement}', "");
     Expect(1, 122927, '\p{Block=:\Aglagoliticsupplement\z:}', "");;
     Expect(0, 122928, '\p{Block=:\Aglagoliticsupplement\z:}', "");;
-    Expect(1, 122927, '\p{Block=glagolitic_supplement}', "");
-    Expect(0, 122927, '\p{^Block=glagolitic_supplement}', "");
-    Expect(0, 122927, '\P{Block=glagolitic_supplement}', "");
-    Expect(1, 122927, '\P{^Block=glagolitic_supplement}', "");
-    Expect(0, 122928, '\p{Block=glagolitic_supplement}', "");
-    Expect(1, 122928, '\p{^Block=glagolitic_supplement}', "");
-    Expect(1, 122928, '\P{Block=glagolitic_supplement}', "");
-    Expect(0, 122928, '\P{^Block=glagolitic_supplement}', "");
-    Error('\p{Blk= Glagolitic_Sup/a/}');
-    Error('\P{Blk= Glagolitic_Sup/a/}');
+    Expect(1, 122927, '\p{Block= Glagolitic_supplement}', "");
+    Expect(0, 122927, '\p{^Block= Glagolitic_supplement}', "");
+    Expect(0, 122927, '\P{Block= Glagolitic_supplement}', "");
+    Expect(1, 122927, '\P{^Block= Glagolitic_supplement}', "");
+    Expect(0, 122928, '\p{Block= Glagolitic_supplement}', "");
+    Expect(1, 122928, '\p{^Block= Glagolitic_supplement}', "");
+    Expect(1, 122928, '\P{Block= Glagolitic_supplement}', "");
+    Expect(0, 122928, '\P{^Block= Glagolitic_supplement}', "");
+    Error('\p{Blk=_glagolitic_sup:=}');
+    Error('\P{Blk=_glagolitic_sup:=}');
     Expect(1, 122927, '\p{Blk=:\AGlagolitic_Sup\z:}', "");;
     Expect(0, 122928, '\p{Blk=:\AGlagolitic_Sup\z:}', "");;
     Expect(1, 122927, '\p{Blk=glagoliticsup}', "");
@@ -12298,16 +12642,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 122928, '\P{^Blk=glagoliticsup}', "");
     Expect(1, 122927, '\p{Blk=:\Aglagoliticsup\z:}', "");;
     Expect(0, 122928, '\p{Blk=:\Aglagoliticsup\z:}', "");;
-    Expect(1, 122927, '\p{Blk=_-Glagolitic_Sup}', "");
-    Expect(0, 122927, '\p{^Blk=_-Glagolitic_Sup}', "");
-    Expect(0, 122927, '\P{Blk=_-Glagolitic_Sup}', "");
-    Expect(1, 122927, '\P{^Blk=_-Glagolitic_Sup}', "");
-    Expect(0, 122928, '\p{Blk=_-Glagolitic_Sup}', "");
-    Expect(1, 122928, '\p{^Blk=_-Glagolitic_Sup}', "");
-    Expect(1, 122928, '\P{Blk=_-Glagolitic_Sup}', "");
-    Expect(0, 122928, '\P{^Blk=_-Glagolitic_Sup}', "");
-    Error('\p{Is_Block=:=__glagolitic_Supplement}');
-    Error('\P{Is_Block=:=__glagolitic_Supplement}');
+    Expect(1, 122927, '\p{Blk=  GLAGOLITIC_Sup}', "");
+    Expect(0, 122927, '\p{^Blk=  GLAGOLITIC_Sup}', "");
+    Expect(0, 122927, '\P{Blk=  GLAGOLITIC_Sup}', "");
+    Expect(1, 122927, '\P{^Blk=  GLAGOLITIC_Sup}', "");
+    Expect(0, 122928, '\p{Blk=  GLAGOLITIC_Sup}', "");
+    Expect(1, 122928, '\p{^Blk=  GLAGOLITIC_Sup}', "");
+    Expect(1, 122928, '\P{Blk=  GLAGOLITIC_Sup}', "");
+    Expect(0, 122928, '\P{^Blk=  GLAGOLITIC_Sup}', "");
+    Error('\p{Is_Block=Glagolitic_supplement:=}');
+    Error('\P{Is_Block=Glagolitic_supplement:=}');
     Expect(1, 122927, '\p{Is_Block=glagoliticsupplement}', "");
     Expect(0, 122927, '\p{^Is_Block=glagoliticsupplement}', "");
     Expect(0, 122927, '\P{Is_Block=glagoliticsupplement}', "");
@@ -12316,34 +12660,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 122928, '\p{^Is_Block=glagoliticsupplement}', "");
     Expect(1, 122928, '\P{Is_Block=glagoliticsupplement}', "");
     Expect(0, 122928, '\P{^Is_Block=glagoliticsupplement}', "");
-    Expect(1, 122927, '\p{Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(0, 122927, '\p{^Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(0, 122927, '\P{Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(1, 122927, '\P{^Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(0, 122928, '\p{Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(1, 122928, '\p{^Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(1, 122928, '\P{Is_Block=GLAGOLITIC_supplement}', "");
-    Expect(0, 122928, '\P{^Is_Block=GLAGOLITIC_supplement}', "");
-    Error('\p{Is_Blk= GLAGOLITIC_Sup:=}');
-    Error('\P{Is_Blk= GLAGOLITIC_Sup:=}');
-    Expect(1, 122927, '\p{Is_Blk:glagoliticsup}', "");
-    Expect(0, 122927, '\p{^Is_Blk:glagoliticsup}', "");
-    Expect(0, 122927, '\P{Is_Blk:glagoliticsup}', "");
-    Expect(1, 122927, '\P{^Is_Blk:glagoliticsup}', "");
-    Expect(0, 122928, '\p{Is_Blk:glagoliticsup}', "");
-    Expect(1, 122928, '\p{^Is_Blk:glagoliticsup}', "");
-    Expect(1, 122928, '\P{Is_Blk:glagoliticsup}', "");
-    Expect(0, 122928, '\P{^Is_Blk:glagoliticsup}', "");
-    Expect(1, 122927, '\p{Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(0, 122927, '\p{^Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(0, 122927, '\P{Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(1, 122927, '\P{^Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(0, 122928, '\p{Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(1, 122928, '\p{^Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(1, 122928, '\P{Is_Blk=_GLAGOLITIC_Sup}', "");
-    Expect(0, 122928, '\P{^Is_Blk=_GLAGOLITIC_Sup}', "");
-    Error('\p{Block=-:=gothic}');
-    Error('\P{Block=-:=gothic}');
+    Expect(1, 122927, '\p{Is_Block=-glagolitic_supplement}', "");
+    Expect(0, 122927, '\p{^Is_Block=-glagolitic_supplement}', "");
+    Expect(0, 122927, '\P{Is_Block=-glagolitic_supplement}', "");
+    Expect(1, 122927, '\P{^Is_Block=-glagolitic_supplement}', "");
+    Expect(0, 122928, '\p{Is_Block=-glagolitic_supplement}', "");
+    Expect(1, 122928, '\p{^Is_Block=-glagolitic_supplement}', "");
+    Expect(1, 122928, '\P{Is_Block=-glagolitic_supplement}', "");
+    Expect(0, 122928, '\P{^Is_Block=-glagolitic_supplement}', "");
+    Error('\p{Is_Blk=:=- GLAGOLITIC_SUP}');
+    Error('\P{Is_Blk=:=- GLAGOLITIC_SUP}');
+    Expect(1, 122927, '\p{Is_Blk=glagoliticsup}', "");
+    Expect(0, 122927, '\p{^Is_Blk=glagoliticsup}', "");
+    Expect(0, 122927, '\P{Is_Blk=glagoliticsup}', "");
+    Expect(1, 122927, '\P{^Is_Blk=glagoliticsup}', "");
+    Expect(0, 122928, '\p{Is_Blk=glagoliticsup}', "");
+    Expect(1, 122928, '\p{^Is_Blk=glagoliticsup}', "");
+    Expect(1, 122928, '\P{Is_Blk=glagoliticsup}', "");
+    Expect(0, 122928, '\P{^Is_Blk=glagoliticsup}', "");
+    Expect(1, 122927, '\p{Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(0, 122927, '\p{^Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(0, 122927, '\P{Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(1, 122927, '\P{^Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(0, 122928, '\p{Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(1, 122928, '\p{^Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(1, 122928, '\P{Is_Blk=_	GLAGOLITIC_sup}', "");
+    Expect(0, 122928, '\P{^Is_Blk=_	GLAGOLITIC_sup}', "");
+    Error('\p{Block=:=-Gothic}');
+    Error('\P{Block=:=-Gothic}');
     Expect(1, 66383, '\p{Block=:\AGothic\z:}', "");;
     Expect(0, 66384, '\p{Block=:\AGothic\z:}', "");;
     Expect(1, 66383, '\p{Block=gothic}', "");
@@ -12356,16 +12700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66384, '\P{^Block=gothic}', "");
     Expect(1, 66383, '\p{Block=:\Agothic\z:}', "");;
     Expect(0, 66384, '\p{Block=:\Agothic\z:}', "");;
-    Expect(1, 66383, '\p{Block=	-Gothic}', "");
-    Expect(0, 66383, '\p{^Block=	-Gothic}', "");
-    Expect(0, 66383, '\P{Block=	-Gothic}', "");
-    Expect(1, 66383, '\P{^Block=	-Gothic}', "");
-    Expect(0, 66384, '\p{Block=	-Gothic}', "");
-    Expect(1, 66384, '\p{^Block=	-Gothic}', "");
-    Expect(1, 66384, '\P{Block=	-Gothic}', "");
-    Expect(0, 66384, '\P{^Block=	-Gothic}', "");
-    Error('\p{Blk=--GOTHIC:=}');
-    Error('\P{Blk=--GOTHIC:=}');
+    Expect(1, 66383, '\p{Block=	gothic}', "");
+    Expect(0, 66383, '\p{^Block=	gothic}', "");
+    Expect(0, 66383, '\P{Block=	gothic}', "");
+    Expect(1, 66383, '\P{^Block=	gothic}', "");
+    Expect(0, 66384, '\p{Block=	gothic}', "");
+    Expect(1, 66384, '\p{^Block=	gothic}', "");
+    Expect(1, 66384, '\P{Block=	gothic}', "");
+    Expect(0, 66384, '\P{^Block=	gothic}', "");
+    Error('\p{Blk:		Gothic/a/}');
+    Error('\P{Blk:		Gothic/a/}');
     Expect(1, 66383, '\p{Blk=:\AGothic\z:}', "");;
     Expect(0, 66384, '\p{Blk=:\AGothic\z:}', "");;
     Expect(1, 66383, '\p{Blk=gothic}', "");
@@ -12378,16 +12722,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66384, '\P{^Blk=gothic}', "");
     Expect(1, 66383, '\p{Blk=:\Agothic\z:}', "");;
     Expect(0, 66384, '\p{Blk=:\Agothic\z:}', "");;
-    Expect(1, 66383, '\p{Blk= gothic}', "");
-    Expect(0, 66383, '\p{^Blk= gothic}', "");
-    Expect(0, 66383, '\P{Blk= gothic}', "");
-    Expect(1, 66383, '\P{^Blk= gothic}', "");
-    Expect(0, 66384, '\p{Blk= gothic}', "");
-    Expect(1, 66384, '\p{^Blk= gothic}', "");
-    Expect(1, 66384, '\P{Blk= gothic}', "");
-    Expect(0, 66384, '\P{^Blk= gothic}', "");
-    Error('\p{Is_Block=:=	-Gothic}');
-    Error('\P{Is_Block=:=	-Gothic}');
+    Expect(1, 66383, '\p{Blk=_	Gothic}', "");
+    Expect(0, 66383, '\p{^Blk=_	Gothic}', "");
+    Expect(0, 66383, '\P{Blk=_	Gothic}', "");
+    Expect(1, 66383, '\P{^Blk=_	Gothic}', "");
+    Expect(0, 66384, '\p{Blk=_	Gothic}', "");
+    Expect(1, 66384, '\p{^Blk=_	Gothic}', "");
+    Expect(1, 66384, '\P{Blk=_	Gothic}', "");
+    Expect(0, 66384, '\P{^Blk=_	Gothic}', "");
+    Error('\p{Is_Block=	:=gothic}');
+    Error('\P{Is_Block=	:=gothic}');
     Expect(1, 66383, '\p{Is_Block=gothic}', "");
     Expect(0, 66383, '\p{^Is_Block=gothic}', "");
     Expect(0, 66383, '\P{Is_Block=gothic}', "");
@@ -12396,16 +12740,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66384, '\p{^Is_Block=gothic}', "");
     Expect(1, 66384, '\P{Is_Block=gothic}', "");
     Expect(0, 66384, '\P{^Is_Block=gothic}', "");
-    Expect(1, 66383, '\p{Is_Block=--gothic}', "");
-    Expect(0, 66383, '\p{^Is_Block=--gothic}', "");
-    Expect(0, 66383, '\P{Is_Block=--gothic}', "");
-    Expect(1, 66383, '\P{^Is_Block=--gothic}', "");
-    Expect(0, 66384, '\p{Is_Block=--gothic}', "");
-    Expect(1, 66384, '\p{^Is_Block=--gothic}', "");
-    Expect(1, 66384, '\P{Is_Block=--gothic}', "");
-    Expect(0, 66384, '\P{^Is_Block=--gothic}', "");
-    Error('\p{Is_Blk= _Gothic/a/}');
-    Error('\P{Is_Blk= _Gothic/a/}');
+    Expect(1, 66383, '\p{Is_Block:   - gothic}', "");
+    Expect(0, 66383, '\p{^Is_Block:   - gothic}', "");
+    Expect(0, 66383, '\P{Is_Block:   - gothic}', "");
+    Expect(1, 66383, '\P{^Is_Block:   - gothic}', "");
+    Expect(0, 66384, '\p{Is_Block:   - gothic}', "");
+    Expect(1, 66384, '\p{^Is_Block:   - gothic}', "");
+    Expect(1, 66384, '\P{Is_Block:   - gothic}', "");
+    Expect(0, 66384, '\P{^Is_Block:   - gothic}', "");
+    Error('\p{Is_Blk=- Gothic/a/}');
+    Error('\P{Is_Blk=- Gothic/a/}');
     Expect(1, 66383, '\p{Is_Blk=gothic}', "");
     Expect(0, 66383, '\p{^Is_Blk=gothic}', "");
     Expect(0, 66383, '\P{Is_Blk=gothic}', "");
@@ -12414,14 +12758,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66384, '\p{^Is_Blk=gothic}', "");
     Expect(1, 66384, '\P{Is_Blk=gothic}', "");
     Expect(0, 66384, '\P{^Is_Blk=gothic}', "");
-    Expect(1, 66383, '\p{Is_Blk:		GOTHIC}', "");
-    Expect(0, 66383, '\p{^Is_Blk:		GOTHIC}', "");
-    Expect(0, 66383, '\P{Is_Blk:		GOTHIC}', "");
-    Expect(1, 66383, '\P{^Is_Blk:		GOTHIC}', "");
-    Expect(0, 66384, '\p{Is_Blk:		GOTHIC}', "");
-    Expect(1, 66384, '\p{^Is_Blk:		GOTHIC}', "");
-    Expect(1, 66384, '\P{Is_Blk:		GOTHIC}', "");
-    Expect(0, 66384, '\P{^Is_Blk:		GOTHIC}', "");
+    Expect(1, 66383, '\p{Is_Blk=	gothic}', "");
+    Expect(0, 66383, '\p{^Is_Blk=	gothic}', "");
+    Expect(0, 66383, '\P{Is_Blk=	gothic}', "");
+    Expect(1, 66383, '\P{^Is_Blk=	gothic}', "");
+    Expect(0, 66384, '\p{Is_Blk=	gothic}', "");
+    Expect(1, 66384, '\p{^Is_Blk=	gothic}', "");
+    Expect(1, 66384, '\P{Is_Blk=	gothic}', "");
+    Expect(0, 66384, '\P{^Is_Blk=	gothic}', "");
     Error('\p{Block=/a/_Grantha}');
     Error('\P{Block=/a/_Grantha}');
     Expect(1, 70527, '\p{Block=:\AGrantha\z:}', "");;
@@ -12436,16 +12780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70528, '\P{^Block=grantha}', "");
     Expect(1, 70527, '\p{Block=:\Agrantha\z:}', "");;
     Expect(0, 70528, '\p{Block=:\Agrantha\z:}', "");;
-    Expect(1, 70527, '\p{Block=	GRANTHA}', "");
-    Expect(0, 70527, '\p{^Block=	GRANTHA}', "");
-    Expect(0, 70527, '\P{Block=	GRANTHA}', "");
-    Expect(1, 70527, '\P{^Block=	GRANTHA}', "");
-    Expect(0, 70528, '\p{Block=	GRANTHA}', "");
-    Expect(1, 70528, '\p{^Block=	GRANTHA}', "");
-    Expect(1, 70528, '\P{Block=	GRANTHA}', "");
-    Expect(0, 70528, '\P{^Block=	GRANTHA}', "");
-    Error('\p{Blk=--GRANTHA:=}');
-    Error('\P{Blk=--GRANTHA:=}');
+    Expect(1, 70527, '\p{Block=_GRANTHA}', "");
+    Expect(0, 70527, '\p{^Block=_GRANTHA}', "");
+    Expect(0, 70527, '\P{Block=_GRANTHA}', "");
+    Expect(1, 70527, '\P{^Block=_GRANTHA}', "");
+    Expect(0, 70528, '\p{Block=_GRANTHA}', "");
+    Expect(1, 70528, '\p{^Block=_GRANTHA}', "");
+    Expect(1, 70528, '\P{Block=_GRANTHA}', "");
+    Expect(0, 70528, '\P{^Block=_GRANTHA}', "");
+    Error('\p{Blk: 	 GRANTHA/a/}');
+    Error('\P{Blk: 	 GRANTHA/a/}');
     Expect(1, 70527, '\p{Blk=:\AGrantha\z:}', "");;
     Expect(0, 70528, '\p{Blk=:\AGrantha\z:}', "");;
     Expect(1, 70527, '\p{Blk=grantha}', "");
@@ -12458,74 +12802,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70528, '\P{^Blk=grantha}', "");
     Expect(1, 70527, '\p{Blk=:\Agrantha\z:}', "");;
     Expect(0, 70528, '\p{Blk=:\Agrantha\z:}', "");;
-    Expect(1, 70527, '\p{Blk= _GRANTHA}', "");
-    Expect(0, 70527, '\p{^Blk= _GRANTHA}', "");
-    Expect(0, 70527, '\P{Blk= _GRANTHA}', "");
-    Expect(1, 70527, '\P{^Blk= _GRANTHA}', "");
-    Expect(0, 70528, '\p{Blk= _GRANTHA}', "");
-    Expect(1, 70528, '\p{^Blk= _GRANTHA}', "");
-    Expect(1, 70528, '\P{Blk= _GRANTHA}', "");
-    Expect(0, 70528, '\P{^Blk= _GRANTHA}', "");
-    Error('\p{Is_Block:Grantha:=}');
-    Error('\P{Is_Block:Grantha:=}');
-    Expect(1, 70527, '\p{Is_Block:	grantha}', "");
-    Expect(0, 70527, '\p{^Is_Block:	grantha}', "");
-    Expect(0, 70527, '\P{Is_Block:	grantha}', "");
-    Expect(1, 70527, '\P{^Is_Block:	grantha}', "");
-    Expect(0, 70528, '\p{Is_Block:	grantha}', "");
-    Expect(1, 70528, '\p{^Is_Block:	grantha}', "");
-    Expect(1, 70528, '\P{Is_Block:	grantha}', "");
-    Expect(0, 70528, '\P{^Is_Block:	grantha}', "");
-    Expect(1, 70527, '\p{Is_Block=-Grantha}', "");
-    Expect(0, 70527, '\p{^Is_Block=-Grantha}', "");
-    Expect(0, 70527, '\P{Is_Block=-Grantha}', "");
-    Expect(1, 70527, '\P{^Is_Block=-Grantha}', "");
-    Expect(0, 70528, '\p{Is_Block=-Grantha}', "");
-    Expect(1, 70528, '\p{^Is_Block=-Grantha}', "");
-    Expect(1, 70528, '\P{Is_Block=-Grantha}', "");
-    Expect(0, 70528, '\P{^Is_Block=-Grantha}', "");
-    Error('\p{Is_Blk=-	Grantha/a/}');
-    Error('\P{Is_Blk=-	Grantha/a/}');
-    Expect(1, 70527, '\p{Is_Blk: grantha}', "");
-    Expect(0, 70527, '\p{^Is_Blk: grantha}', "");
-    Expect(0, 70527, '\P{Is_Blk: grantha}', "");
-    Expect(1, 70527, '\P{^Is_Blk: grantha}', "");
-    Expect(0, 70528, '\p{Is_Blk: grantha}', "");
-    Expect(1, 70528, '\p{^Is_Blk: grantha}', "");
-    Expect(1, 70528, '\P{Is_Blk: grantha}', "");
-    Expect(0, 70528, '\P{^Is_Blk: grantha}', "");
-    Expect(1, 70527, '\p{Is_Blk= Grantha}', "");
-    Expect(0, 70527, '\p{^Is_Blk= Grantha}', "");
-    Expect(0, 70527, '\P{Is_Blk= Grantha}', "");
-    Expect(1, 70527, '\P{^Is_Blk= Grantha}', "");
-    Expect(0, 70528, '\p{Is_Blk= Grantha}', "");
-    Expect(1, 70528, '\p{^Is_Blk= Grantha}', "");
-    Expect(1, 70528, '\P{Is_Blk= Grantha}', "");
-    Expect(0, 70528, '\P{^Is_Blk= Grantha}', "");
-    Error('\p{Block=/a/ GREEK_And_Coptic}');
-    Error('\P{Block=/a/ GREEK_And_Coptic}');
+    Expect(1, 70527, '\p{Blk=-GRANTHA}', "");
+    Expect(0, 70527, '\p{^Blk=-GRANTHA}', "");
+    Expect(0, 70527, '\P{Blk=-GRANTHA}', "");
+    Expect(1, 70527, '\P{^Blk=-GRANTHA}', "");
+    Expect(0, 70528, '\p{Blk=-GRANTHA}', "");
+    Expect(1, 70528, '\p{^Blk=-GRANTHA}', "");
+    Expect(1, 70528, '\P{Blk=-GRANTHA}', "");
+    Expect(0, 70528, '\P{^Blk=-GRANTHA}', "");
+    Error('\p{Is_Block=:=-grantha}');
+    Error('\P{Is_Block=:=-grantha}');
+    Expect(1, 70527, '\p{Is_Block=grantha}', "");
+    Expect(0, 70527, '\p{^Is_Block=grantha}', "");
+    Expect(0, 70527, '\P{Is_Block=grantha}', "");
+    Expect(1, 70527, '\P{^Is_Block=grantha}', "");
+    Expect(0, 70528, '\p{Is_Block=grantha}', "");
+    Expect(1, 70528, '\p{^Is_Block=grantha}', "");
+    Expect(1, 70528, '\P{Is_Block=grantha}', "");
+    Expect(0, 70528, '\P{^Is_Block=grantha}', "");
+    Expect(1, 70527, '\p{Is_Block= -Grantha}', "");
+    Expect(0, 70527, '\p{^Is_Block= -Grantha}', "");
+    Expect(0, 70527, '\P{Is_Block= -Grantha}', "");
+    Expect(1, 70527, '\P{^Is_Block= -Grantha}', "");
+    Expect(0, 70528, '\p{Is_Block= -Grantha}', "");
+    Expect(1, 70528, '\p{^Is_Block= -Grantha}', "");
+    Expect(1, 70528, '\P{Is_Block= -Grantha}', "");
+    Expect(0, 70528, '\P{^Is_Block= -Grantha}', "");
+    Error('\p{Is_Blk: -_Grantha/a/}');
+    Error('\P{Is_Blk: -_Grantha/a/}');
+    Expect(1, 70527, '\p{Is_Blk=grantha}', "");
+    Expect(0, 70527, '\p{^Is_Blk=grantha}', "");
+    Expect(0, 70527, '\P{Is_Blk=grantha}', "");
+    Expect(1, 70527, '\P{^Is_Blk=grantha}', "");
+    Expect(0, 70528, '\p{Is_Blk=grantha}', "");
+    Expect(1, 70528, '\p{^Is_Blk=grantha}', "");
+    Expect(1, 70528, '\P{Is_Blk=grantha}', "");
+    Expect(0, 70528, '\P{^Is_Blk=grantha}', "");
+    Expect(1, 70527, '\p{Is_Blk=_ Grantha}', "");
+    Expect(0, 70527, '\p{^Is_Blk=_ Grantha}', "");
+    Expect(0, 70527, '\P{Is_Blk=_ Grantha}', "");
+    Expect(1, 70527, '\P{^Is_Blk=_ Grantha}', "");
+    Expect(0, 70528, '\p{Is_Blk=_ Grantha}', "");
+    Expect(1, 70528, '\p{^Is_Blk=_ Grantha}', "");
+    Expect(1, 70528, '\P{Is_Blk=_ Grantha}', "");
+    Expect(0, 70528, '\P{^Is_Blk=_ Grantha}', "");
+    Error('\p{Block=_/a/GREEK_AND_Coptic}');
+    Error('\P{Block=_/a/GREEK_AND_Coptic}');
     Expect(1, 1023, '\p{Block=:\AGreek_And_Coptic\z:}', "");;
     Expect(0, 1024, '\p{Block=:\AGreek_And_Coptic\z:}', "");;
-    Expect(1, 1023, '\p{Block:greekandcoptic}', "");
-    Expect(0, 1023, '\p{^Block:greekandcoptic}', "");
-    Expect(0, 1023, '\P{Block:greekandcoptic}', "");
-    Expect(1, 1023, '\P{^Block:greekandcoptic}', "");
-    Expect(0, 1024, '\p{Block:greekandcoptic}', "");
-    Expect(1, 1024, '\p{^Block:greekandcoptic}', "");
-    Expect(1, 1024, '\P{Block:greekandcoptic}', "");
-    Expect(0, 1024, '\P{^Block:greekandcoptic}', "");
+    Expect(1, 1023, '\p{Block=greekandcoptic}', "");
+    Expect(0, 1023, '\p{^Block=greekandcoptic}', "");
+    Expect(0, 1023, '\P{Block=greekandcoptic}', "");
+    Expect(1, 1023, '\P{^Block=greekandcoptic}', "");
+    Expect(0, 1024, '\p{Block=greekandcoptic}', "");
+    Expect(1, 1024, '\p{^Block=greekandcoptic}', "");
+    Expect(1, 1024, '\P{Block=greekandcoptic}', "");
+    Expect(0, 1024, '\P{^Block=greekandcoptic}', "");
     Expect(1, 1023, '\p{Block=:\Agreekandcoptic\z:}', "");;
     Expect(0, 1024, '\p{Block=:\Agreekandcoptic\z:}', "");;
-    Expect(1, 1023, '\p{Block=_ GREEK_And_Coptic}', "");
-    Expect(0, 1023, '\p{^Block=_ GREEK_And_Coptic}', "");
-    Expect(0, 1023, '\P{Block=_ GREEK_And_Coptic}', "");
-    Expect(1, 1023, '\P{^Block=_ GREEK_And_Coptic}', "");
-    Expect(0, 1024, '\p{Block=_ GREEK_And_Coptic}', "");
-    Expect(1, 1024, '\p{^Block=_ GREEK_And_Coptic}', "");
-    Expect(1, 1024, '\P{Block=_ GREEK_And_Coptic}', "");
-    Expect(0, 1024, '\P{^Block=_ GREEK_And_Coptic}', "");
-    Error('\p{Blk=-_greek:=}');
-    Error('\P{Blk=-_greek:=}');
+    Expect(1, 1023, '\p{Block= Greek_And_coptic}', "");
+    Expect(0, 1023, '\p{^Block= Greek_And_coptic}', "");
+    Expect(0, 1023, '\P{Block= Greek_And_coptic}', "");
+    Expect(1, 1023, '\P{^Block= Greek_And_coptic}', "");
+    Expect(0, 1024, '\p{Block= Greek_And_coptic}', "");
+    Expect(1, 1024, '\p{^Block= Greek_And_coptic}', "");
+    Expect(1, 1024, '\P{Block= Greek_And_coptic}', "");
+    Expect(0, 1024, '\P{^Block= Greek_And_coptic}', "");
+    Error('\p{Blk= /a/greek}');
+    Error('\P{Blk= /a/greek}');
     Expect(1, 1023, '\p{Blk=:\AGreek\z:}', "");;
     Expect(0, 1024, '\p{Blk=:\AGreek\z:}', "");;
     Expect(1, 1023, '\p{Blk=greek}', "");
@@ -12538,52 +12882,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1024, '\P{^Blk=greek}', "");
     Expect(1, 1023, '\p{Blk=:\Agreek\z:}', "");;
     Expect(0, 1024, '\p{Blk=:\Agreek\z:}', "");;
-    Expect(1, 1023, '\p{Blk=__Greek}', "");
-    Expect(0, 1023, '\p{^Blk=__Greek}', "");
-    Expect(0, 1023, '\P{Blk=__Greek}', "");
-    Expect(1, 1023, '\P{^Blk=__Greek}', "");
-    Expect(0, 1024, '\p{Blk=__Greek}', "");
-    Expect(1, 1024, '\p{^Blk=__Greek}', "");
-    Expect(1, 1024, '\P{Blk=__Greek}', "");
-    Expect(0, 1024, '\P{^Blk=__Greek}', "");
-    Error('\p{Is_Block=	_GREEK_And_Coptic:=}');
-    Error('\P{Is_Block=	_GREEK_And_Coptic:=}');
-    Expect(1, 1023, '\p{Is_Block:	greekandcoptic}', "");
-    Expect(0, 1023, '\p{^Is_Block:	greekandcoptic}', "");
-    Expect(0, 1023, '\P{Is_Block:	greekandcoptic}', "");
-    Expect(1, 1023, '\P{^Is_Block:	greekandcoptic}', "");
-    Expect(0, 1024, '\p{Is_Block:	greekandcoptic}', "");
-    Expect(1, 1024, '\p{^Is_Block:	greekandcoptic}', "");
-    Expect(1, 1024, '\P{Is_Block:	greekandcoptic}', "");
-    Expect(0, 1024, '\P{^Is_Block:	greekandcoptic}', "");
-    Expect(1, 1023, '\p{Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(0, 1023, '\p{^Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(0, 1023, '\P{Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(1, 1023, '\P{^Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(0, 1024, '\p{Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(1, 1024, '\p{^Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(1, 1024, '\P{Is_Block=_GREEK_and_COPTIC}', "");
-    Expect(0, 1024, '\P{^Is_Block=_GREEK_and_COPTIC}', "");
-    Error('\p{Is_Blk= :=Greek}');
-    Error('\P{Is_Blk= :=Greek}');
-    Expect(1, 1023, '\p{Is_Blk: greek}', "");
-    Expect(0, 1023, '\p{^Is_Blk: greek}', "");
-    Expect(0, 1023, '\P{Is_Blk: greek}', "");
-    Expect(1, 1023, '\P{^Is_Blk: greek}', "");
-    Expect(0, 1024, '\p{Is_Blk: greek}', "");
-    Expect(1, 1024, '\p{^Is_Blk: greek}', "");
-    Expect(1, 1024, '\P{Is_Blk: greek}', "");
-    Expect(0, 1024, '\P{^Is_Blk: greek}', "");
-    Expect(1, 1023, '\p{Is_Blk=- Greek}', "");
-    Expect(0, 1023, '\p{^Is_Blk=- Greek}', "");
-    Expect(0, 1023, '\P{Is_Blk=- Greek}', "");
-    Expect(1, 1023, '\P{^Is_Blk=- Greek}', "");
-    Expect(0, 1024, '\p{Is_Blk=- Greek}', "");
-    Expect(1, 1024, '\p{^Is_Blk=- Greek}', "");
-    Expect(1, 1024, '\P{Is_Blk=- Greek}', "");
-    Expect(0, 1024, '\P{^Is_Blk=- Greek}', "");
-    Error('\p{Block=--Greek_Extended:=}');
-    Error('\P{Block=--Greek_Extended:=}');
+    Expect(1, 1023, '\p{Blk=-	greek}', "");
+    Expect(0, 1023, '\p{^Blk=-	greek}', "");
+    Expect(0, 1023, '\P{Blk=-	greek}', "");
+    Expect(1, 1023, '\P{^Blk=-	greek}', "");
+    Expect(0, 1024, '\p{Blk=-	greek}', "");
+    Expect(1, 1024, '\p{^Blk=-	greek}', "");
+    Expect(1, 1024, '\P{Blk=-	greek}', "");
+    Expect(0, 1024, '\P{^Blk=-	greek}', "");
+    Error('\p{Is_Block=_:=greek_And_Coptic}');
+    Error('\P{Is_Block=_:=greek_And_Coptic}');
+    Expect(1, 1023, '\p{Is_Block=greekandcoptic}', "");
+    Expect(0, 1023, '\p{^Is_Block=greekandcoptic}', "");
+    Expect(0, 1023, '\P{Is_Block=greekandcoptic}', "");
+    Expect(1, 1023, '\P{^Is_Block=greekandcoptic}', "");
+    Expect(0, 1024, '\p{Is_Block=greekandcoptic}', "");
+    Expect(1, 1024, '\p{^Is_Block=greekandcoptic}', "");
+    Expect(1, 1024, '\P{Is_Block=greekandcoptic}', "");
+    Expect(0, 1024, '\P{^Is_Block=greekandcoptic}', "");
+    Expect(1, 1023, '\p{Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(0, 1023, '\p{^Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(0, 1023, '\P{Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(1, 1023, '\P{^Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(0, 1024, '\p{Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(1, 1024, '\p{^Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(1, 1024, '\P{Is_Block=_ Greek_AND_COPTIC}', "");
+    Expect(0, 1024, '\P{^Is_Block=_ Greek_AND_COPTIC}', "");
+    Error('\p{Is_Blk=		Greek:=}');
+    Error('\P{Is_Blk=		Greek:=}');
+    Expect(1, 1023, '\p{Is_Blk=greek}', "");
+    Expect(0, 1023, '\p{^Is_Blk=greek}', "");
+    Expect(0, 1023, '\P{Is_Blk=greek}', "");
+    Expect(1, 1023, '\P{^Is_Blk=greek}', "");
+    Expect(0, 1024, '\p{Is_Blk=greek}', "");
+    Expect(1, 1024, '\p{^Is_Blk=greek}', "");
+    Expect(1, 1024, '\P{Is_Blk=greek}', "");
+    Expect(0, 1024, '\P{^Is_Blk=greek}', "");
+    Expect(1, 1023, '\p{Is_Blk=-	Greek}', "");
+    Expect(0, 1023, '\p{^Is_Blk=-	Greek}', "");
+    Expect(0, 1023, '\P{Is_Blk=-	Greek}', "");
+    Expect(1, 1023, '\P{^Is_Blk=-	Greek}', "");
+    Expect(0, 1024, '\p{Is_Blk=-	Greek}', "");
+    Expect(1, 1024, '\p{^Is_Blk=-	Greek}', "");
+    Expect(1, 1024, '\P{Is_Blk=-	Greek}', "");
+    Expect(0, 1024, '\P{^Is_Blk=-	Greek}', "");
+    Error('\p{Block=Greek_EXTENDED:=}');
+    Error('\P{Block=Greek_EXTENDED:=}');
     Expect(1, 8191, '\p{Block=:\AGreek_Extended\z:}', "");;
     Expect(0, 8192, '\p{Block=:\AGreek_Extended\z:}', "");;
     Expect(1, 8191, '\p{Block=greekextended}', "");
@@ -12596,16 +12940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8192, '\P{^Block=greekextended}', "");
     Expect(1, 8191, '\p{Block=:\Agreekextended\z:}', "");;
     Expect(0, 8192, '\p{Block=:\Agreekextended\z:}', "");;
-    Expect(1, 8191, '\p{Block=-_Greek_Extended}', "");
-    Expect(0, 8191, '\p{^Block=-_Greek_Extended}', "");
-    Expect(0, 8191, '\P{Block=-_Greek_Extended}', "");
-    Expect(1, 8191, '\P{^Block=-_Greek_Extended}', "");
-    Expect(0, 8192, '\p{Block=-_Greek_Extended}', "");
-    Expect(1, 8192, '\p{^Block=-_Greek_Extended}', "");
-    Expect(1, 8192, '\P{Block=-_Greek_Extended}', "");
-    Expect(0, 8192, '\P{^Block=-_Greek_Extended}', "");
-    Error('\p{Blk= /a/GREEK_ext}');
-    Error('\P{Blk= /a/GREEK_ext}');
+    Expect(1, 8191, '\p{Block= greek_Extended}', "");
+    Expect(0, 8191, '\p{^Block= greek_Extended}', "");
+    Expect(0, 8191, '\P{Block= greek_Extended}', "");
+    Expect(1, 8191, '\P{^Block= greek_Extended}', "");
+    Expect(0, 8192, '\p{Block= greek_Extended}', "");
+    Expect(1, 8192, '\p{^Block= greek_Extended}', "");
+    Expect(1, 8192, '\P{Block= greek_Extended}', "");
+    Expect(0, 8192, '\P{^Block= greek_Extended}', "");
+    Error('\p{Blk=	:=greek_EXT}');
+    Error('\P{Blk=	:=greek_EXT}');
     Expect(1, 8191, '\p{Blk=:\AGreek_Ext\z:}', "");;
     Expect(0, 8192, '\p{Blk=:\AGreek_Ext\z:}', "");;
     Expect(1, 8191, '\p{Blk=greekext}', "");
@@ -12618,16 +12962,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8192, '\P{^Blk=greekext}', "");
     Expect(1, 8191, '\p{Blk=:\Agreekext\z:}', "");;
     Expect(0, 8192, '\p{Blk=:\Agreekext\z:}', "");;
-    Expect(1, 8191, '\p{Blk=		GREEK_Ext}', "");
-    Expect(0, 8191, '\p{^Blk=		GREEK_Ext}', "");
-    Expect(0, 8191, '\P{Blk=		GREEK_Ext}', "");
-    Expect(1, 8191, '\P{^Blk=		GREEK_Ext}', "");
-    Expect(0, 8192, '\p{Blk=		GREEK_Ext}', "");
-    Expect(1, 8192, '\p{^Blk=		GREEK_Ext}', "");
-    Expect(1, 8192, '\P{Blk=		GREEK_Ext}', "");
-    Expect(0, 8192, '\P{^Blk=		GREEK_Ext}', "");
-    Error('\p{Is_Block=	/a/Greek_Extended}');
-    Error('\P{Is_Block=	/a/Greek_Extended}');
+    Expect(1, 8191, '\p{Blk=__Greek_Ext}', "");
+    Expect(0, 8191, '\p{^Blk=__Greek_Ext}', "");
+    Expect(0, 8191, '\P{Blk=__Greek_Ext}', "");
+    Expect(1, 8191, '\P{^Blk=__Greek_Ext}', "");
+    Expect(0, 8192, '\p{Blk=__Greek_Ext}', "");
+    Expect(1, 8192, '\p{^Blk=__Greek_Ext}', "");
+    Expect(1, 8192, '\P{Blk=__Greek_Ext}', "");
+    Expect(0, 8192, '\P{^Blk=__Greek_Ext}', "");
+    Error('\p{Is_Block=-greek_extended/a/}');
+    Error('\P{Is_Block=-greek_extended/a/}');
     Expect(1, 8191, '\p{Is_Block=greekextended}', "");
     Expect(0, 8191, '\p{^Is_Block=greekextended}', "");
     Expect(0, 8191, '\P{Is_Block=greekextended}', "");
@@ -12636,16 +12980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8192, '\p{^Is_Block=greekextended}', "");
     Expect(1, 8192, '\P{Is_Block=greekextended}', "");
     Expect(0, 8192, '\P{^Is_Block=greekextended}', "");
-    Expect(1, 8191, '\p{Is_Block= Greek_EXTENDED}', "");
-    Expect(0, 8191, '\p{^Is_Block= Greek_EXTENDED}', "");
-    Expect(0, 8191, '\P{Is_Block= Greek_EXTENDED}', "");
-    Expect(1, 8191, '\P{^Is_Block= Greek_EXTENDED}', "");
-    Expect(0, 8192, '\p{Is_Block= Greek_EXTENDED}', "");
-    Expect(1, 8192, '\p{^Is_Block= Greek_EXTENDED}', "");
-    Expect(1, 8192, '\P{Is_Block= Greek_EXTENDED}', "");
-    Expect(0, 8192, '\P{^Is_Block= Greek_EXTENDED}', "");
-    Error('\p{Is_Blk=:= Greek_ext}');
-    Error('\P{Is_Blk=:= Greek_ext}');
+    Expect(1, 8191, '\p{Is_Block=	GREEK_EXTENDED}', "");
+    Expect(0, 8191, '\p{^Is_Block=	GREEK_EXTENDED}', "");
+    Expect(0, 8191, '\P{Is_Block=	GREEK_EXTENDED}', "");
+    Expect(1, 8191, '\P{^Is_Block=	GREEK_EXTENDED}', "");
+    Expect(0, 8192, '\p{Is_Block=	GREEK_EXTENDED}', "");
+    Expect(1, 8192, '\p{^Is_Block=	GREEK_EXTENDED}', "");
+    Expect(1, 8192, '\P{Is_Block=	GREEK_EXTENDED}', "");
+    Expect(0, 8192, '\P{^Is_Block=	GREEK_EXTENDED}', "");
+    Error('\p{Is_Blk=/a/- greek_Ext}');
+    Error('\P{Is_Blk=/a/- greek_Ext}');
     Expect(1, 8191, '\p{Is_Blk:greekext}', "");
     Expect(0, 8191, '\p{^Is_Blk:greekext}', "");
     Expect(0, 8191, '\P{Is_Blk:greekext}', "");
@@ -12654,16 +12998,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8192, '\p{^Is_Blk:greekext}', "");
     Expect(1, 8192, '\P{Is_Blk:greekext}', "");
     Expect(0, 8192, '\P{^Is_Blk:greekext}', "");
-    Expect(1, 8191, '\p{Is_Blk=	_Greek_Ext}', "");
-    Expect(0, 8191, '\p{^Is_Blk=	_Greek_Ext}', "");
-    Expect(0, 8191, '\P{Is_Blk=	_Greek_Ext}', "");
-    Expect(1, 8191, '\P{^Is_Blk=	_Greek_Ext}', "");
-    Expect(0, 8192, '\p{Is_Blk=	_Greek_Ext}', "");
-    Expect(1, 8192, '\p{^Is_Blk=	_Greek_Ext}', "");
-    Expect(1, 8192, '\P{Is_Blk=	_Greek_Ext}', "");
-    Expect(0, 8192, '\P{^Is_Blk=	_Greek_Ext}', "");
-    Error('\p{Block=/a/--gujarati}');
-    Error('\P{Block=/a/--gujarati}');
+    Expect(1, 8191, '\p{Is_Blk=-_Greek_Ext}', "");
+    Expect(0, 8191, '\p{^Is_Blk=-_Greek_Ext}', "");
+    Expect(0, 8191, '\P{Is_Blk=-_Greek_Ext}', "");
+    Expect(1, 8191, '\P{^Is_Blk=-_Greek_Ext}', "");
+    Expect(0, 8192, '\p{Is_Blk=-_Greek_Ext}', "");
+    Expect(1, 8192, '\p{^Is_Blk=-_Greek_Ext}', "");
+    Expect(1, 8192, '\P{Is_Blk=-_Greek_Ext}', "");
+    Expect(0, 8192, '\P{^Is_Blk=-_Greek_Ext}', "");
+    Error('\p{Block=:=gujarati}');
+    Error('\P{Block=:=gujarati}');
     Expect(1, 2815, '\p{Block=:\AGujarati\z:}', "");;
     Expect(0, 2816, '\p{Block=:\AGujarati\z:}', "");;
     Expect(1, 2815, '\p{Block=gujarati}', "");
@@ -12676,16 +13020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2816, '\P{^Block=gujarati}', "");
     Expect(1, 2815, '\p{Block=:\Agujarati\z:}', "");;
     Expect(0, 2816, '\p{Block=:\Agujarati\z:}', "");;
-    Expect(1, 2815, '\p{Block=	_gujarati}', "");
-    Expect(0, 2815, '\p{^Block=	_gujarati}', "");
-    Expect(0, 2815, '\P{Block=	_gujarati}', "");
-    Expect(1, 2815, '\P{^Block=	_gujarati}', "");
-    Expect(0, 2816, '\p{Block=	_gujarati}', "");
-    Expect(1, 2816, '\p{^Block=	_gujarati}', "");
-    Expect(1, 2816, '\P{Block=	_gujarati}', "");
-    Expect(0, 2816, '\P{^Block=	_gujarati}', "");
-    Error('\p{Blk=	 Gujarati/a/}');
-    Error('\P{Blk=	 Gujarati/a/}');
+    Expect(1, 2815, '\p{Block= -gujarati}', "");
+    Expect(0, 2815, '\p{^Block= -gujarati}', "");
+    Expect(0, 2815, '\P{Block= -gujarati}', "");
+    Expect(1, 2815, '\P{^Block= -gujarati}', "");
+    Expect(0, 2816, '\p{Block= -gujarati}', "");
+    Expect(1, 2816, '\p{^Block= -gujarati}', "");
+    Expect(1, 2816, '\P{Block= -gujarati}', "");
+    Expect(0, 2816, '\P{^Block= -gujarati}', "");
+    Error('\p{Blk=/a/	-Gujarati}');
+    Error('\P{Blk=/a/	-Gujarati}');
     Expect(1, 2815, '\p{Blk=:\AGujarati\z:}', "");;
     Expect(0, 2816, '\p{Blk=:\AGujarati\z:}', "");;
     Expect(1, 2815, '\p{Blk=gujarati}', "");
@@ -12698,16 +13042,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2816, '\P{^Blk=gujarati}', "");
     Expect(1, 2815, '\p{Blk=:\Agujarati\z:}', "");;
     Expect(0, 2816, '\p{Blk=:\Agujarati\z:}', "");;
-    Expect(1, 2815, '\p{Blk=	Gujarati}', "");
-    Expect(0, 2815, '\p{^Blk=	Gujarati}', "");
-    Expect(0, 2815, '\P{Blk=	Gujarati}', "");
-    Expect(1, 2815, '\P{^Blk=	Gujarati}', "");
-    Expect(0, 2816, '\p{Blk=	Gujarati}', "");
-    Expect(1, 2816, '\p{^Blk=	Gujarati}', "");
-    Expect(1, 2816, '\P{Blk=	Gujarati}', "");
-    Expect(0, 2816, '\P{^Blk=	Gujarati}', "");
-    Error('\p{Is_Block=	gujarati:=}');
-    Error('\P{Is_Block=	gujarati:=}');
+    Expect(1, 2815, '\p{Blk= gujarati}', "");
+    Expect(0, 2815, '\p{^Blk= gujarati}', "");
+    Expect(0, 2815, '\P{Blk= gujarati}', "");
+    Expect(1, 2815, '\P{^Blk= gujarati}', "");
+    Expect(0, 2816, '\p{Blk= gujarati}', "");
+    Expect(1, 2816, '\p{^Blk= gujarati}', "");
+    Expect(1, 2816, '\P{Blk= gujarati}', "");
+    Expect(0, 2816, '\P{^Blk= gujarati}', "");
+    Error('\p{Is_Block= GUJARATI:=}');
+    Error('\P{Is_Block= GUJARATI:=}');
     Expect(1, 2815, '\p{Is_Block=gujarati}', "");
     Expect(0, 2815, '\p{^Is_Block=gujarati}', "");
     Expect(0, 2815, '\P{Is_Block=gujarati}', "");
@@ -12716,56 +13060,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2816, '\p{^Is_Block=gujarati}', "");
     Expect(1, 2816, '\P{Is_Block=gujarati}', "");
     Expect(0, 2816, '\P{^Is_Block=gujarati}', "");
-    Expect(1, 2815, '\p{Is_Block= gujarati}', "");
-    Expect(0, 2815, '\p{^Is_Block= gujarati}', "");
-    Expect(0, 2815, '\P{Is_Block= gujarati}', "");
-    Expect(1, 2815, '\P{^Is_Block= gujarati}', "");
-    Expect(0, 2816, '\p{Is_Block= gujarati}', "");
-    Expect(1, 2816, '\p{^Is_Block= gujarati}', "");
-    Expect(1, 2816, '\P{Is_Block= gujarati}', "");
-    Expect(0, 2816, '\P{^Is_Block= gujarati}', "");
-    Error('\p{Is_Blk=/a/_ Gujarati}');
-    Error('\P{Is_Blk=/a/_ Gujarati}');
-    Expect(1, 2815, '\p{Is_Blk: gujarati}', "");
-    Expect(0, 2815, '\p{^Is_Blk: gujarati}', "");
-    Expect(0, 2815, '\P{Is_Blk: gujarati}', "");
-    Expect(1, 2815, '\P{^Is_Blk: gujarati}', "");
-    Expect(0, 2816, '\p{Is_Blk: gujarati}', "");
-    Expect(1, 2816, '\p{^Is_Blk: gujarati}', "");
-    Expect(1, 2816, '\P{Is_Blk: gujarati}', "");
-    Expect(0, 2816, '\P{^Is_Blk: gujarati}', "");
-    Expect(1, 2815, '\p{Is_Blk:     Gujarati}', "");
-    Expect(0, 2815, '\p{^Is_Blk:     Gujarati}', "");
-    Expect(0, 2815, '\P{Is_Blk:     Gujarati}', "");
-    Expect(1, 2815, '\P{^Is_Blk:     Gujarati}', "");
-    Expect(0, 2816, '\p{Is_Blk:     Gujarati}', "");
-    Expect(1, 2816, '\p{^Is_Blk:     Gujarati}', "");
-    Expect(1, 2816, '\P{Is_Blk:     Gujarati}', "");
-    Expect(0, 2816, '\P{^Is_Blk:     Gujarati}', "");
-    Error('\p{Block=:= Gunjala_gondi}');
-    Error('\P{Block=:= Gunjala_gondi}');
+    Expect(1, 2815, '\p{Is_Block:-GUJARATI}', "");
+    Expect(0, 2815, '\p{^Is_Block:-GUJARATI}', "");
+    Expect(0, 2815, '\P{Is_Block:-GUJARATI}', "");
+    Expect(1, 2815, '\P{^Is_Block:-GUJARATI}', "");
+    Expect(0, 2816, '\p{Is_Block:-GUJARATI}', "");
+    Expect(1, 2816, '\p{^Is_Block:-GUJARATI}', "");
+    Expect(1, 2816, '\P{Is_Block:-GUJARATI}', "");
+    Expect(0, 2816, '\P{^Is_Block:-GUJARATI}', "");
+    Error('\p{Is_Blk=:=-Gujarati}');
+    Error('\P{Is_Blk=:=-Gujarati}');
+    Expect(1, 2815, '\p{Is_Blk=gujarati}', "");
+    Expect(0, 2815, '\p{^Is_Blk=gujarati}', "");
+    Expect(0, 2815, '\P{Is_Blk=gujarati}', "");
+    Expect(1, 2815, '\P{^Is_Blk=gujarati}', "");
+    Expect(0, 2816, '\p{Is_Blk=gujarati}', "");
+    Expect(1, 2816, '\p{^Is_Blk=gujarati}', "");
+    Expect(1, 2816, '\P{Is_Blk=gujarati}', "");
+    Expect(0, 2816, '\P{^Is_Blk=gujarati}', "");
+    Expect(1, 2815, '\p{Is_Blk=_Gujarati}', "");
+    Expect(0, 2815, '\p{^Is_Blk=_Gujarati}', "");
+    Expect(0, 2815, '\P{Is_Blk=_Gujarati}', "");
+    Expect(1, 2815, '\P{^Is_Blk=_Gujarati}', "");
+    Expect(0, 2816, '\p{Is_Blk=_Gujarati}', "");
+    Expect(1, 2816, '\p{^Is_Blk=_Gujarati}', "");
+    Expect(1, 2816, '\P{Is_Blk=_Gujarati}', "");
+    Expect(0, 2816, '\P{^Is_Blk=_Gujarati}', "");
+    Error('\p{Block=	:=Gunjala_gondi}');
+    Error('\P{Block=	:=Gunjala_gondi}');
     Expect(1, 73135, '\p{Block=:\AGunjala_Gondi\z:}', "");;
     Expect(0, 73136, '\p{Block=:\AGunjala_Gondi\z:}', "");;
-    Expect(1, 73135, '\p{Block=gunjalagondi}', "");
-    Expect(0, 73135, '\p{^Block=gunjalagondi}', "");
-    Expect(0, 73135, '\P{Block=gunjalagondi}', "");
-    Expect(1, 73135, '\P{^Block=gunjalagondi}', "");
-    Expect(0, 73136, '\p{Block=gunjalagondi}', "");
-    Expect(1, 73136, '\p{^Block=gunjalagondi}', "");
-    Expect(1, 73136, '\P{Block=gunjalagondi}', "");
-    Expect(0, 73136, '\P{^Block=gunjalagondi}', "");
+    Expect(1, 73135, '\p{Block:gunjalagondi}', "");
+    Expect(0, 73135, '\p{^Block:gunjalagondi}', "");
+    Expect(0, 73135, '\P{Block:gunjalagondi}', "");
+    Expect(1, 73135, '\P{^Block:gunjalagondi}', "");
+    Expect(0, 73136, '\p{Block:gunjalagondi}', "");
+    Expect(1, 73136, '\p{^Block:gunjalagondi}', "");
+    Expect(1, 73136, '\P{Block:gunjalagondi}', "");
+    Expect(0, 73136, '\P{^Block:gunjalagondi}', "");
     Expect(1, 73135, '\p{Block=:\Agunjalagondi\z:}', "");;
     Expect(0, 73136, '\p{Block=:\Agunjalagondi\z:}', "");;
-    Expect(1, 73135, '\p{Block=_gunjala_GONDI}', "");
-    Expect(0, 73135, '\p{^Block=_gunjala_GONDI}', "");
-    Expect(0, 73135, '\P{Block=_gunjala_GONDI}', "");
-    Expect(1, 73135, '\P{^Block=_gunjala_GONDI}', "");
-    Expect(0, 73136, '\p{Block=_gunjala_GONDI}', "");
-    Expect(1, 73136, '\p{^Block=_gunjala_GONDI}', "");
-    Expect(1, 73136, '\P{Block=_gunjala_GONDI}', "");
-    Expect(0, 73136, '\P{^Block=_gunjala_GONDI}', "");
-    Error('\p{Blk=_	GUNJALA_Gondi:=}');
-    Error('\P{Blk=_	GUNJALA_Gondi:=}');
+    Expect(1, 73135, '\p{Block=-	gunjala_Gondi}', "");
+    Expect(0, 73135, '\p{^Block=-	gunjala_Gondi}', "");
+    Expect(0, 73135, '\P{Block=-	gunjala_Gondi}', "");
+    Expect(1, 73135, '\P{^Block=-	gunjala_Gondi}', "");
+    Expect(0, 73136, '\p{Block=-	gunjala_Gondi}', "");
+    Expect(1, 73136, '\p{^Block=-	gunjala_Gondi}', "");
+    Expect(1, 73136, '\P{Block=-	gunjala_Gondi}', "");
+    Expect(0, 73136, '\P{^Block=-	gunjala_Gondi}', "");
+    Error('\p{Blk=		GUNJALA_Gondi:=}');
+    Error('\P{Blk=		GUNJALA_Gondi:=}');
     Expect(1, 73135, '\p{Blk=:\AGunjala_Gondi\z:}', "");;
     Expect(0, 73136, '\p{Blk=:\AGunjala_Gondi\z:}', "");;
     Expect(1, 73135, '\p{Blk=gunjalagondi}', "");
@@ -12778,16 +13122,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73136, '\P{^Blk=gunjalagondi}', "");
     Expect(1, 73135, '\p{Blk=:\Agunjalagondi\z:}', "");;
     Expect(0, 73136, '\p{Blk=:\Agunjalagondi\z:}', "");;
-    Expect(1, 73135, '\p{Blk= -GUNJALA_GONDI}', "");
-    Expect(0, 73135, '\p{^Blk= -GUNJALA_GONDI}', "");
-    Expect(0, 73135, '\P{Blk= -GUNJALA_GONDI}', "");
-    Expect(1, 73135, '\P{^Blk= -GUNJALA_GONDI}', "");
-    Expect(0, 73136, '\p{Blk= -GUNJALA_GONDI}', "");
-    Expect(1, 73136, '\p{^Blk= -GUNJALA_GONDI}', "");
-    Expect(1, 73136, '\P{Blk= -GUNJALA_GONDI}', "");
-    Expect(0, 73136, '\P{^Blk= -GUNJALA_GONDI}', "");
-    Error('\p{Is_Block=	Gunjala_Gondi:=}');
-    Error('\P{Is_Block=	Gunjala_Gondi:=}');
+    Expect(1, 73135, '\p{Blk=--GUNJALA_Gondi}', "");
+    Expect(0, 73135, '\p{^Blk=--GUNJALA_Gondi}', "");
+    Expect(0, 73135, '\P{Blk=--GUNJALA_Gondi}', "");
+    Expect(1, 73135, '\P{^Blk=--GUNJALA_Gondi}', "");
+    Expect(0, 73136, '\p{Blk=--GUNJALA_Gondi}', "");
+    Expect(1, 73136, '\p{^Blk=--GUNJALA_Gondi}', "");
+    Expect(1, 73136, '\P{Blk=--GUNJALA_Gondi}', "");
+    Expect(0, 73136, '\P{^Blk=--GUNJALA_Gondi}', "");
+    Error('\p{Is_Block=	:=Gunjala_Gondi}');
+    Error('\P{Is_Block=	:=Gunjala_Gondi}');
     Expect(1, 73135, '\p{Is_Block=gunjalagondi}', "");
     Expect(0, 73135, '\p{^Is_Block=gunjalagondi}', "");
     Expect(0, 73135, '\P{Is_Block=gunjalagondi}', "");
@@ -12796,16 +13140,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73136, '\p{^Is_Block=gunjalagondi}', "");
     Expect(1, 73136, '\P{Is_Block=gunjalagondi}', "");
     Expect(0, 73136, '\P{^Is_Block=gunjalagondi}', "");
-    Expect(1, 73135, '\p{Is_Block=-	Gunjala_Gondi}', "");
-    Expect(0, 73135, '\p{^Is_Block=-	Gunjala_Gondi}', "");
-    Expect(0, 73135, '\P{Is_Block=-	Gunjala_Gondi}', "");
-    Expect(1, 73135, '\P{^Is_Block=-	Gunjala_Gondi}', "");
-    Expect(0, 73136, '\p{Is_Block=-	Gunjala_Gondi}', "");
-    Expect(1, 73136, '\p{^Is_Block=-	Gunjala_Gondi}', "");
-    Expect(1, 73136, '\P{Is_Block=-	Gunjala_Gondi}', "");
-    Expect(0, 73136, '\P{^Is_Block=-	Gunjala_Gondi}', "");
-    Error('\p{Is_Blk=/a/GUNJALA_gondi}');
-    Error('\P{Is_Blk=/a/GUNJALA_gondi}');
+    Expect(1, 73135, '\p{Is_Block=		gunjala_Gondi}', "");
+    Expect(0, 73135, '\p{^Is_Block=		gunjala_Gondi}', "");
+    Expect(0, 73135, '\P{Is_Block=		gunjala_Gondi}', "");
+    Expect(1, 73135, '\P{^Is_Block=		gunjala_Gondi}', "");
+    Expect(0, 73136, '\p{Is_Block=		gunjala_Gondi}', "");
+    Expect(1, 73136, '\p{^Is_Block=		gunjala_Gondi}', "");
+    Expect(1, 73136, '\P{Is_Block=		gunjala_Gondi}', "");
+    Expect(0, 73136, '\P{^Is_Block=		gunjala_Gondi}', "");
+    Error('\p{Is_Blk=:=	GUNJALA_Gondi}');
+    Error('\P{Is_Blk=:=	GUNJALA_Gondi}');
     Expect(1, 73135, '\p{Is_Blk=gunjalagondi}', "");
     Expect(0, 73135, '\p{^Is_Blk=gunjalagondi}', "");
     Expect(0, 73135, '\P{Is_Blk=gunjalagondi}', "");
@@ -12814,16 +13158,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73136, '\p{^Is_Blk=gunjalagondi}', "");
     Expect(1, 73136, '\P{Is_Blk=gunjalagondi}', "");
     Expect(0, 73136, '\P{^Is_Blk=gunjalagondi}', "");
-    Expect(1, 73135, '\p{Is_Blk=	_gunjala_gondi}', "");
-    Expect(0, 73135, '\p{^Is_Blk=	_gunjala_gondi}', "");
-    Expect(0, 73135, '\P{Is_Blk=	_gunjala_gondi}', "");
-    Expect(1, 73135, '\P{^Is_Blk=	_gunjala_gondi}', "");
-    Expect(0, 73136, '\p{Is_Blk=	_gunjala_gondi}', "");
-    Expect(1, 73136, '\p{^Is_Blk=	_gunjala_gondi}', "");
-    Expect(1, 73136, '\P{Is_Blk=	_gunjala_gondi}', "");
-    Expect(0, 73136, '\P{^Is_Blk=	_gunjala_gondi}', "");
-    Error('\p{Block=/a/__Gurmukhi}');
-    Error('\P{Block=/a/__Gurmukhi}');
+    Expect(1, 73135, '\p{Is_Blk:    _gunjala_gondi}', "");
+    Expect(0, 73135, '\p{^Is_Blk:    _gunjala_gondi}', "");
+    Expect(0, 73135, '\P{Is_Blk:    _gunjala_gondi}', "");
+    Expect(1, 73135, '\P{^Is_Blk:    _gunjala_gondi}', "");
+    Expect(0, 73136, '\p{Is_Blk:    _gunjala_gondi}', "");
+    Expect(1, 73136, '\p{^Is_Blk:    _gunjala_gondi}', "");
+    Expect(1, 73136, '\P{Is_Blk:    _gunjala_gondi}', "");
+    Expect(0, 73136, '\P{^Is_Blk:    _gunjala_gondi}', "");
+    Error('\p{Block: _:=Gurmukhi}');
+    Error('\P{Block: _:=Gurmukhi}');
     Expect(1, 2687, '\p{Block=:\AGurmukhi\z:}', "");;
     Expect(0, 2688, '\p{Block=:\AGurmukhi\z:}', "");;
     Expect(1, 2687, '\p{Block=gurmukhi}', "");
@@ -12836,16 +13180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2688, '\P{^Block=gurmukhi}', "");
     Expect(1, 2687, '\p{Block=:\Agurmukhi\z:}', "");;
     Expect(0, 2688, '\p{Block=:\Agurmukhi\z:}', "");;
-    Expect(1, 2687, '\p{Block=-	Gurmukhi}', "");
-    Expect(0, 2687, '\p{^Block=-	Gurmukhi}', "");
-    Expect(0, 2687, '\P{Block=-	Gurmukhi}', "");
-    Expect(1, 2687, '\P{^Block=-	Gurmukhi}', "");
-    Expect(0, 2688, '\p{Block=-	Gurmukhi}', "");
-    Expect(1, 2688, '\p{^Block=-	Gurmukhi}', "");
-    Expect(1, 2688, '\P{Block=-	Gurmukhi}', "");
-    Expect(0, 2688, '\P{^Block=-	Gurmukhi}', "");
-    Error('\p{Blk=_Gurmukhi:=}');
-    Error('\P{Blk=_Gurmukhi:=}');
+    Expect(1, 2687, '\p{Block=	gurmukhi}', "");
+    Expect(0, 2687, '\p{^Block=	gurmukhi}', "");
+    Expect(0, 2687, '\P{Block=	gurmukhi}', "");
+    Expect(1, 2687, '\P{^Block=	gurmukhi}', "");
+    Expect(0, 2688, '\p{Block=	gurmukhi}', "");
+    Expect(1, 2688, '\p{^Block=	gurmukhi}', "");
+    Expect(1, 2688, '\P{Block=	gurmukhi}', "");
+    Expect(0, 2688, '\P{^Block=	gurmukhi}', "");
+    Error('\p{Blk=:=Gurmukhi}');
+    Error('\P{Blk=:=Gurmukhi}');
     Expect(1, 2687, '\p{Blk=:\AGurmukhi\z:}', "");;
     Expect(0, 2688, '\p{Blk=:\AGurmukhi\z:}', "");;
     Expect(1, 2687, '\p{Blk=gurmukhi}', "");
@@ -12858,16 +13202,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2688, '\P{^Blk=gurmukhi}', "");
     Expect(1, 2687, '\p{Blk=:\Agurmukhi\z:}', "");;
     Expect(0, 2688, '\p{Blk=:\Agurmukhi\z:}', "");;
-    Expect(1, 2687, '\p{Blk=_gurmukhi}', "");
-    Expect(0, 2687, '\p{^Blk=_gurmukhi}', "");
-    Expect(0, 2687, '\P{Blk=_gurmukhi}', "");
-    Expect(1, 2687, '\P{^Blk=_gurmukhi}', "");
-    Expect(0, 2688, '\p{Blk=_gurmukhi}', "");
-    Expect(1, 2688, '\p{^Blk=_gurmukhi}', "");
-    Expect(1, 2688, '\P{Blk=_gurmukhi}', "");
-    Expect(0, 2688, '\P{^Blk=_gurmukhi}', "");
-    Error('\p{Is_Block=- GURMUKHI:=}');
-    Error('\P{Is_Block=- GURMUKHI:=}');
+    Expect(1, 2687, '\p{Blk=	GURMUKHI}', "");
+    Expect(0, 2687, '\p{^Blk=	GURMUKHI}', "");
+    Expect(0, 2687, '\P{Blk=	GURMUKHI}', "");
+    Expect(1, 2687, '\P{^Blk=	GURMUKHI}', "");
+    Expect(0, 2688, '\p{Blk=	GURMUKHI}', "");
+    Expect(1, 2688, '\p{^Blk=	GURMUKHI}', "");
+    Expect(1, 2688, '\P{Blk=	GURMUKHI}', "");
+    Expect(0, 2688, '\P{^Blk=	GURMUKHI}', "");
+    Error('\p{Is_Block:   	:=Gurmukhi}');
+    Error('\P{Is_Block:   	:=Gurmukhi}');
     Expect(1, 2687, '\p{Is_Block=gurmukhi}', "");
     Expect(0, 2687, '\p{^Is_Block=gurmukhi}', "");
     Expect(0, 2687, '\P{Is_Block=gurmukhi}', "");
@@ -12876,34 +13220,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2688, '\p{^Is_Block=gurmukhi}', "");
     Expect(1, 2688, '\P{Is_Block=gurmukhi}', "");
     Expect(0, 2688, '\P{^Is_Block=gurmukhi}', "");
-    Expect(1, 2687, '\p{Is_Block=  gurmukhi}', "");
-    Expect(0, 2687, '\p{^Is_Block=  gurmukhi}', "");
-    Expect(0, 2687, '\P{Is_Block=  gurmukhi}', "");
-    Expect(1, 2687, '\P{^Is_Block=  gurmukhi}', "");
-    Expect(0, 2688, '\p{Is_Block=  gurmukhi}', "");
-    Expect(1, 2688, '\p{^Is_Block=  gurmukhi}', "");
-    Expect(1, 2688, '\P{Is_Block=  gurmukhi}', "");
-    Expect(0, 2688, '\P{^Is_Block=  gurmukhi}', "");
-    Error('\p{Is_Blk: _:=gurmukhi}');
-    Error('\P{Is_Blk: _:=gurmukhi}');
-    Expect(1, 2687, '\p{Is_Blk: gurmukhi}', "");
-    Expect(0, 2687, '\p{^Is_Blk: gurmukhi}', "");
-    Expect(0, 2687, '\P{Is_Blk: gurmukhi}', "");
-    Expect(1, 2687, '\P{^Is_Blk: gurmukhi}', "");
-    Expect(0, 2688, '\p{Is_Blk: gurmukhi}', "");
-    Expect(1, 2688, '\p{^Is_Blk: gurmukhi}', "");
-    Expect(1, 2688, '\P{Is_Blk: gurmukhi}', "");
-    Expect(0, 2688, '\P{^Is_Blk: gurmukhi}', "");
-    Expect(1, 2687, '\p{Is_Blk=-Gurmukhi}', "");
-    Expect(0, 2687, '\p{^Is_Blk=-Gurmukhi}', "");
-    Expect(0, 2687, '\P{Is_Blk=-Gurmukhi}', "");
-    Expect(1, 2687, '\P{^Is_Blk=-Gurmukhi}', "");
-    Expect(0, 2688, '\p{Is_Blk=-Gurmukhi}', "");
-    Expect(1, 2688, '\p{^Is_Blk=-Gurmukhi}', "");
-    Expect(1, 2688, '\P{Is_Blk=-Gurmukhi}', "");
-    Expect(0, 2688, '\P{^Is_Blk=-Gurmukhi}', "");
-    Error('\p{Block=:=__Halfwidth_And_Fullwidth_FORMS}');
-    Error('\P{Block=:=__Halfwidth_And_Fullwidth_FORMS}');
+    Expect(1, 2687, '\p{Is_Block:	- Gurmukhi}', "");
+    Expect(0, 2687, '\p{^Is_Block:	- Gurmukhi}', "");
+    Expect(0, 2687, '\P{Is_Block:	- Gurmukhi}', "");
+    Expect(1, 2687, '\P{^Is_Block:	- Gurmukhi}', "");
+    Expect(0, 2688, '\p{Is_Block:	- Gurmukhi}', "");
+    Expect(1, 2688, '\p{^Is_Block:	- Gurmukhi}', "");
+    Expect(1, 2688, '\P{Is_Block:	- Gurmukhi}', "");
+    Expect(0, 2688, '\P{^Is_Block:	- Gurmukhi}', "");
+    Error('\p{Is_Blk=  gurmukhi:=}');
+    Error('\P{Is_Blk=  gurmukhi:=}');
+    Expect(1, 2687, '\p{Is_Blk=gurmukhi}', "");
+    Expect(0, 2687, '\p{^Is_Blk=gurmukhi}', "");
+    Expect(0, 2687, '\P{Is_Blk=gurmukhi}', "");
+    Expect(1, 2687, '\P{^Is_Blk=gurmukhi}', "");
+    Expect(0, 2688, '\p{Is_Blk=gurmukhi}', "");
+    Expect(1, 2688, '\p{^Is_Blk=gurmukhi}', "");
+    Expect(1, 2688, '\P{Is_Blk=gurmukhi}', "");
+    Expect(0, 2688, '\P{^Is_Blk=gurmukhi}', "");
+    Expect(1, 2687, '\p{Is_Blk=_Gurmukhi}', "");
+    Expect(0, 2687, '\p{^Is_Blk=_Gurmukhi}', "");
+    Expect(0, 2687, '\P{Is_Blk=_Gurmukhi}', "");
+    Expect(1, 2687, '\P{^Is_Blk=_Gurmukhi}', "");
+    Expect(0, 2688, '\p{Is_Blk=_Gurmukhi}', "");
+    Expect(1, 2688, '\p{^Is_Blk=_Gurmukhi}', "");
+    Expect(1, 2688, '\P{Is_Blk=_Gurmukhi}', "");
+    Expect(0, 2688, '\P{^Is_Blk=_Gurmukhi}', "");
+    Error('\p{Block=/a/	HALFWIDTH_And_Fullwidth_FORMS}');
+    Error('\P{Block=/a/	HALFWIDTH_And_Fullwidth_FORMS}');
     Expect(1, 65519, '\p{Block=:\AHalfwidth_And_Fullwidth_Forms\z:}', "");;
     Expect(0, 65520, '\p{Block=:\AHalfwidth_And_Fullwidth_Forms\z:}', "");;
     Expect(1, 65519, '\p{Block=halfwidthandfullwidthforms}', "");
@@ -12916,16 +13260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65520, '\P{^Block=halfwidthandfullwidthforms}', "");
     Expect(1, 65519, '\p{Block=:\Ahalfwidthandfullwidthforms\z:}', "");;
     Expect(0, 65520, '\p{Block=:\Ahalfwidthandfullwidthforms\z:}', "");;
-    Expect(1, 65519, '\p{Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(0, 65519, '\p{^Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(0, 65519, '\P{Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(1, 65519, '\P{^Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(0, 65520, '\p{Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(1, 65520, '\p{^Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(1, 65520, '\P{Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Expect(0, 65520, '\P{^Block:  halfwidth_and_FULLWIDTH_forms}', "");
-    Error('\p{Blk=-HALF_and_full_Forms/a/}');
-    Error('\P{Blk=-HALF_and_full_Forms/a/}');
+    Expect(1, 65519, '\p{Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(0, 65519, '\p{^Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(0, 65519, '\P{Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(1, 65519, '\P{^Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(0, 65520, '\p{Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(1, 65520, '\p{^Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(1, 65520, '\P{Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Expect(0, 65520, '\P{^Block=	-HALFWIDTH_AND_Fullwidth_forms}', "");
+    Error('\p{Blk=-/a/half_And_Full_FORMS}');
+    Error('\P{Blk=-/a/half_And_Full_FORMS}');
     Expect(1, 65519, '\p{Blk=:\AHalf_And_Full_Forms\z:}', "");;
     Expect(0, 65520, '\p{Blk=:\AHalf_And_Full_Forms\z:}', "");;
     Expect(1, 65519, '\p{Blk=halfandfullforms}', "");
@@ -12938,16 +13282,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65520, '\P{^Blk=halfandfullforms}', "");
     Expect(1, 65519, '\p{Blk=:\Ahalfandfullforms\z:}', "");;
     Expect(0, 65520, '\p{Blk=:\Ahalfandfullforms\z:}', "");;
-    Expect(1, 65519, '\p{Blk= 	Half_AND_Full_Forms}', "");
-    Expect(0, 65519, '\p{^Blk= 	Half_AND_Full_Forms}', "");
-    Expect(0, 65519, '\P{Blk= 	Half_AND_Full_Forms}', "");
-    Expect(1, 65519, '\P{^Blk= 	Half_AND_Full_Forms}', "");
-    Expect(0, 65520, '\p{Blk= 	Half_AND_Full_Forms}', "");
-    Expect(1, 65520, '\p{^Blk= 	Half_AND_Full_Forms}', "");
-    Expect(1, 65520, '\P{Blk= 	Half_AND_Full_Forms}', "");
-    Expect(0, 65520, '\P{^Blk= 	Half_AND_Full_Forms}', "");
-    Error('\p{Is_Block=:=- halfwidth_and_Fullwidth_FORMS}');
-    Error('\P{Is_Block=:=- halfwidth_and_Fullwidth_FORMS}');
+    Expect(1, 65519, '\p{Blk=	-Half_And_Full_FORMS}', "");
+    Expect(0, 65519, '\p{^Blk=	-Half_And_Full_FORMS}', "");
+    Expect(0, 65519, '\P{Blk=	-Half_And_Full_FORMS}', "");
+    Expect(1, 65519, '\P{^Blk=	-Half_And_Full_FORMS}', "");
+    Expect(0, 65520, '\p{Blk=	-Half_And_Full_FORMS}', "");
+    Expect(1, 65520, '\p{^Blk=	-Half_And_Full_FORMS}', "");
+    Expect(1, 65520, '\P{Blk=	-Half_And_Full_FORMS}', "");
+    Expect(0, 65520, '\P{^Blk=	-Half_And_Full_FORMS}', "");
+    Error('\p{Is_Block=  Halfwidth_AND_fullwidth_Forms:=}');
+    Error('\P{Is_Block=  Halfwidth_AND_fullwidth_Forms:=}');
     Expect(1, 65519, '\p{Is_Block=halfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\p{^Is_Block=halfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\P{Is_Block=halfwidthandfullwidthforms}', "");
@@ -12956,56 +13300,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65520, '\p{^Is_Block=halfwidthandfullwidthforms}', "");
     Expect(1, 65520, '\P{Is_Block=halfwidthandfullwidthforms}', "");
     Expect(0, 65520, '\P{^Is_Block=halfwidthandfullwidthforms}', "");
-    Expect(1, 65519, '\p{Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(0, 65519, '\p{^Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(0, 65519, '\P{Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(1, 65519, '\P{^Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(0, 65520, '\p{Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(1, 65520, '\p{^Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(1, 65520, '\P{Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Expect(0, 65520, '\P{^Is_Block= _HALFWIDTH_And_fullwidth_Forms}', "");
-    Error('\p{Is_Blk=	/a/Half_AND_Full_forms}');
-    Error('\P{Is_Blk=	/a/Half_AND_Full_forms}');
-    Expect(1, 65519, '\p{Is_Blk:   halfandfullforms}', "");
-    Expect(0, 65519, '\p{^Is_Blk:   halfandfullforms}', "");
-    Expect(0, 65519, '\P{Is_Blk:   halfandfullforms}', "");
-    Expect(1, 65519, '\P{^Is_Blk:   halfandfullforms}', "");
-    Expect(0, 65520, '\p{Is_Blk:   halfandfullforms}', "");
-    Expect(1, 65520, '\p{^Is_Blk:   halfandfullforms}', "");
-    Expect(1, 65520, '\P{Is_Blk:   halfandfullforms}', "");
-    Expect(0, 65520, '\P{^Is_Blk:   halfandfullforms}', "");
-    Expect(1, 65519, '\p{Is_Blk=-half_and_FULL_forms}', "");
-    Expect(0, 65519, '\p{^Is_Blk=-half_and_FULL_forms}', "");
-    Expect(0, 65519, '\P{Is_Blk=-half_and_FULL_forms}', "");
-    Expect(1, 65519, '\P{^Is_Blk=-half_and_FULL_forms}', "");
-    Expect(0, 65520, '\p{Is_Blk=-half_and_FULL_forms}', "");
-    Expect(1, 65520, '\p{^Is_Blk=-half_and_FULL_forms}', "");
-    Expect(1, 65520, '\P{Is_Blk=-half_and_FULL_forms}', "");
-    Expect(0, 65520, '\P{^Is_Blk=-half_and_FULL_forms}', "");
-    Error('\p{Block=:=	_Combining_Half_Marks}');
-    Error('\P{Block=:=	_Combining_Half_Marks}');
+    Expect(1, 65519, '\p{Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(0, 65519, '\p{^Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(0, 65519, '\P{Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(1, 65519, '\P{^Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(0, 65520, '\p{Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(1, 65520, '\p{^Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(1, 65520, '\P{Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Expect(0, 65520, '\P{^Is_Block=  Halfwidth_And_FULLWIDTH_FORMS}', "");
+    Error('\p{Is_Blk=	-Half_And_full_Forms:=}');
+    Error('\P{Is_Blk=	-Half_And_full_Forms:=}');
+    Expect(1, 65519, '\p{Is_Blk=halfandfullforms}', "");
+    Expect(0, 65519, '\p{^Is_Blk=halfandfullforms}', "");
+    Expect(0, 65519, '\P{Is_Blk=halfandfullforms}', "");
+    Expect(1, 65519, '\P{^Is_Blk=halfandfullforms}', "");
+    Expect(0, 65520, '\p{Is_Blk=halfandfullforms}', "");
+    Expect(1, 65520, '\p{^Is_Blk=halfandfullforms}', "");
+    Expect(1, 65520, '\P{Is_Blk=halfandfullforms}', "");
+    Expect(0, 65520, '\P{^Is_Blk=halfandfullforms}', "");
+    Expect(1, 65519, '\p{Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(0, 65519, '\p{^Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(0, 65519, '\P{Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(1, 65519, '\P{^Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(0, 65520, '\p{Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(1, 65520, '\p{^Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(1, 65520, '\P{Is_Blk:   	Half_and_Full_forms}', "");
+    Expect(0, 65520, '\P{^Is_Blk:   	Half_and_Full_forms}', "");
+    Error('\p{Block=:=-	Combining_Half_MARKS}');
+    Error('\P{Block=:=-	Combining_Half_MARKS}');
     Expect(1, 65071, '\p{Block=:\ACombining_Half_Marks\z:}', "");;
     Expect(0, 65072, '\p{Block=:\ACombining_Half_Marks\z:}', "");;
-    Expect(1, 65071, '\p{Block=combininghalfmarks}', "");
-    Expect(0, 65071, '\p{^Block=combininghalfmarks}', "");
-    Expect(0, 65071, '\P{Block=combininghalfmarks}', "");
-    Expect(1, 65071, '\P{^Block=combininghalfmarks}', "");
-    Expect(0, 65072, '\p{Block=combininghalfmarks}', "");
-    Expect(1, 65072, '\p{^Block=combininghalfmarks}', "");
-    Expect(1, 65072, '\P{Block=combininghalfmarks}', "");
-    Expect(0, 65072, '\P{^Block=combininghalfmarks}', "");
+    Expect(1, 65071, '\p{Block:   combininghalfmarks}', "");
+    Expect(0, 65071, '\p{^Block:   combininghalfmarks}', "");
+    Expect(0, 65071, '\P{Block:   combininghalfmarks}', "");
+    Expect(1, 65071, '\P{^Block:   combininghalfmarks}', "");
+    Expect(0, 65072, '\p{Block:   combininghalfmarks}', "");
+    Expect(1, 65072, '\p{^Block:   combininghalfmarks}', "");
+    Expect(1, 65072, '\P{Block:   combininghalfmarks}', "");
+    Expect(0, 65072, '\P{^Block:   combininghalfmarks}', "");
     Expect(1, 65071, '\p{Block=:\Acombininghalfmarks\z:}', "");;
     Expect(0, 65072, '\p{Block=:\Acombininghalfmarks\z:}', "");;
-    Expect(1, 65071, '\p{Block=	_COMBINING_half_Marks}', "");
-    Expect(0, 65071, '\p{^Block=	_COMBINING_half_Marks}', "");
-    Expect(0, 65071, '\P{Block=	_COMBINING_half_Marks}', "");
-    Expect(1, 65071, '\P{^Block=	_COMBINING_half_Marks}', "");
-    Expect(0, 65072, '\p{Block=	_COMBINING_half_Marks}', "");
-    Expect(1, 65072, '\p{^Block=	_COMBINING_half_Marks}', "");
-    Expect(1, 65072, '\P{Block=	_COMBINING_half_Marks}', "");
-    Expect(0, 65072, '\P{^Block=	_COMBINING_half_Marks}', "");
-    Error('\p{Blk=-	half_Marks:=}');
-    Error('\P{Blk=-	half_Marks:=}');
+    Expect(1, 65071, '\p{Block=--Combining_Half_Marks}', "");
+    Expect(0, 65071, '\p{^Block=--Combining_Half_Marks}', "");
+    Expect(0, 65071, '\P{Block=--Combining_Half_Marks}', "");
+    Expect(1, 65071, '\P{^Block=--Combining_Half_Marks}', "");
+    Expect(0, 65072, '\p{Block=--Combining_Half_Marks}', "");
+    Expect(1, 65072, '\p{^Block=--Combining_Half_Marks}', "");
+    Expect(1, 65072, '\P{Block=--Combining_Half_Marks}', "");
+    Expect(0, 65072, '\P{^Block=--Combining_Half_Marks}', "");
+    Error('\p{Blk=:= Half_Marks}');
+    Error('\P{Blk=:= Half_Marks}');
     Expect(1, 65071, '\p{Blk=:\AHalf_Marks\z:}', "");;
     Expect(0, 65072, '\p{Blk=:\AHalf_Marks\z:}', "");;
     Expect(1, 65071, '\p{Blk=halfmarks}', "");
@@ -13018,52 +13362,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65072, '\P{^Blk=halfmarks}', "");
     Expect(1, 65071, '\p{Blk=:\Ahalfmarks\z:}', "");;
     Expect(0, 65072, '\p{Blk=:\Ahalfmarks\z:}', "");;
-    Expect(1, 65071, '\p{Blk=Half_MARKS}', "");
-    Expect(0, 65071, '\p{^Blk=Half_MARKS}', "");
-    Expect(0, 65071, '\P{Blk=Half_MARKS}', "");
-    Expect(1, 65071, '\P{^Blk=Half_MARKS}', "");
-    Expect(0, 65072, '\p{Blk=Half_MARKS}', "");
-    Expect(1, 65072, '\p{^Blk=Half_MARKS}', "");
-    Expect(1, 65072, '\P{Blk=Half_MARKS}', "");
-    Expect(0, 65072, '\P{^Blk=Half_MARKS}', "");
-    Error('\p{Is_Block=_combining_Half_MARKS:=}');
-    Error('\P{Is_Block=_combining_Half_MARKS:=}');
-    Expect(1, 65071, '\p{Is_Block: combininghalfmarks}', "");
-    Expect(0, 65071, '\p{^Is_Block: combininghalfmarks}', "");
-    Expect(0, 65071, '\P{Is_Block: combininghalfmarks}', "");
-    Expect(1, 65071, '\P{^Is_Block: combininghalfmarks}', "");
-    Expect(0, 65072, '\p{Is_Block: combininghalfmarks}', "");
-    Expect(1, 65072, '\p{^Is_Block: combininghalfmarks}', "");
-    Expect(1, 65072, '\P{Is_Block: combininghalfmarks}', "");
-    Expect(0, 65072, '\P{^Is_Block: combininghalfmarks}', "");
-    Expect(1, 65071, '\p{Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(0, 65071, '\p{^Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(0, 65071, '\P{Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(1, 65071, '\P{^Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(0, 65072, '\p{Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(1, 65072, '\p{^Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(1, 65072, '\P{Is_Block=_-COMBINING_HALF_Marks}', "");
-    Expect(0, 65072, '\P{^Is_Block=_-COMBINING_HALF_Marks}', "");
-    Error('\p{Is_Blk= /a/Half_Marks}');
-    Error('\P{Is_Blk= /a/Half_Marks}');
-    Expect(1, 65071, '\p{Is_Blk=halfmarks}', "");
-    Expect(0, 65071, '\p{^Is_Blk=halfmarks}', "");
-    Expect(0, 65071, '\P{Is_Blk=halfmarks}', "");
-    Expect(1, 65071, '\P{^Is_Blk=halfmarks}', "");
-    Expect(0, 65072, '\p{Is_Blk=halfmarks}', "");
-    Expect(1, 65072, '\p{^Is_Blk=halfmarks}', "");
-    Expect(1, 65072, '\P{Is_Blk=halfmarks}', "");
-    Expect(0, 65072, '\P{^Is_Blk=halfmarks}', "");
-    Expect(1, 65071, '\p{Is_Blk=-_Half_Marks}', "");
-    Expect(0, 65071, '\p{^Is_Blk=-_Half_Marks}', "");
-    Expect(0, 65071, '\P{Is_Blk=-_Half_Marks}', "");
-    Expect(1, 65071, '\P{^Is_Blk=-_Half_Marks}', "");
-    Expect(0, 65072, '\p{Is_Blk=-_Half_Marks}', "");
-    Expect(1, 65072, '\p{^Is_Blk=-_Half_Marks}', "");
-    Expect(1, 65072, '\P{Is_Blk=-_Half_Marks}', "");
-    Expect(0, 65072, '\P{^Is_Blk=-_Half_Marks}', "");
-    Error('\p{Block=/a/--Hangul_Syllables}');
-    Error('\P{Block=/a/--Hangul_Syllables}');
+    Expect(1, 65071, '\p{Blk= 	HALF_Marks}', "");
+    Expect(0, 65071, '\p{^Blk= 	HALF_Marks}', "");
+    Expect(0, 65071, '\P{Blk= 	HALF_Marks}', "");
+    Expect(1, 65071, '\P{^Blk= 	HALF_Marks}', "");
+    Expect(0, 65072, '\p{Blk= 	HALF_Marks}', "");
+    Expect(1, 65072, '\p{^Blk= 	HALF_Marks}', "");
+    Expect(1, 65072, '\P{Blk= 	HALF_Marks}', "");
+    Expect(0, 65072, '\P{^Blk= 	HALF_Marks}', "");
+    Error('\p{Is_Block=/a/-_Combining_half_Marks}');
+    Error('\P{Is_Block=/a/-_Combining_half_Marks}');
+    Expect(1, 65071, '\p{Is_Block=combininghalfmarks}', "");
+    Expect(0, 65071, '\p{^Is_Block=combininghalfmarks}', "");
+    Expect(0, 65071, '\P{Is_Block=combininghalfmarks}', "");
+    Expect(1, 65071, '\P{^Is_Block=combininghalfmarks}', "");
+    Expect(0, 65072, '\p{Is_Block=combininghalfmarks}', "");
+    Expect(1, 65072, '\p{^Is_Block=combininghalfmarks}', "");
+    Expect(1, 65072, '\P{Is_Block=combininghalfmarks}', "");
+    Expect(0, 65072, '\P{^Is_Block=combininghalfmarks}', "");
+    Expect(1, 65071, '\p{Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(0, 65071, '\p{^Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(0, 65071, '\P{Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(1, 65071, '\P{^Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(0, 65072, '\p{Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(1, 65072, '\p{^Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(1, 65072, '\P{Is_Block=	 COMBINING_Half_marks}', "");
+    Expect(0, 65072, '\P{^Is_Block=	 COMBINING_Half_marks}', "");
+    Error('\p{Is_Blk=	-half_Marks/a/}');
+    Error('\P{Is_Blk=	-half_Marks/a/}');
+    Expect(1, 65071, '\p{Is_Blk:halfmarks}', "");
+    Expect(0, 65071, '\p{^Is_Blk:halfmarks}', "");
+    Expect(0, 65071, '\P{Is_Blk:halfmarks}', "");
+    Expect(1, 65071, '\P{^Is_Blk:halfmarks}', "");
+    Expect(0, 65072, '\p{Is_Blk:halfmarks}', "");
+    Expect(1, 65072, '\p{^Is_Blk:halfmarks}', "");
+    Expect(1, 65072, '\P{Is_Blk:halfmarks}', "");
+    Expect(0, 65072, '\P{^Is_Blk:halfmarks}', "");
+    Expect(1, 65071, '\p{Is_Blk: 	-Half_marks}', "");
+    Expect(0, 65071, '\p{^Is_Blk: 	-Half_marks}', "");
+    Expect(0, 65071, '\P{Is_Blk: 	-Half_marks}', "");
+    Expect(1, 65071, '\P{^Is_Blk: 	-Half_marks}', "");
+    Expect(0, 65072, '\p{Is_Blk: 	-Half_marks}', "");
+    Expect(1, 65072, '\p{^Is_Blk: 	-Half_marks}', "");
+    Expect(1, 65072, '\P{Is_Blk: 	-Half_marks}', "");
+    Expect(0, 65072, '\P{^Is_Blk: 	-Half_marks}', "");
+    Error('\p{Block=	/a/hangul_syllables}');
+    Error('\P{Block=	/a/hangul_syllables}');
     Expect(1, 55215, '\p{Block=:\AHangul_Syllables\z:}', "");;
     Expect(0, 55216, '\p{Block=:\AHangul_Syllables\z:}', "");;
     Expect(1, 55215, '\p{Block=hangulsyllables}', "");
@@ -13076,16 +13420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 55216, '\P{^Block=hangulsyllables}', "");
     Expect(1, 55215, '\p{Block=:\Ahangulsyllables\z:}', "");;
     Expect(0, 55216, '\p{Block=:\Ahangulsyllables\z:}', "");;
-    Expect(1, 55215, '\p{Block:   - Hangul_syllables}', "");
-    Expect(0, 55215, '\p{^Block:   - Hangul_syllables}', "");
-    Expect(0, 55215, '\P{Block:   - Hangul_syllables}', "");
-    Expect(1, 55215, '\P{^Block:   - Hangul_syllables}', "");
-    Expect(0, 55216, '\p{Block:   - Hangul_syllables}', "");
-    Expect(1, 55216, '\p{^Block:   - Hangul_syllables}', "");
-    Expect(1, 55216, '\P{Block:   - Hangul_syllables}', "");
-    Expect(0, 55216, '\P{^Block:   - Hangul_syllables}', "");
-    Error('\p{Blk=  Hangul:=}');
-    Error('\P{Blk=  Hangul:=}');
+    Expect(1, 55215, '\p{Block=-Hangul_Syllables}', "");
+    Expect(0, 55215, '\p{^Block=-Hangul_Syllables}', "");
+    Expect(0, 55215, '\P{Block=-Hangul_Syllables}', "");
+    Expect(1, 55215, '\P{^Block=-Hangul_Syllables}', "");
+    Expect(0, 55216, '\p{Block=-Hangul_Syllables}', "");
+    Expect(1, 55216, '\p{^Block=-Hangul_Syllables}', "");
+    Expect(1, 55216, '\P{Block=-Hangul_Syllables}', "");
+    Expect(0, 55216, '\P{^Block=-Hangul_Syllables}', "");
+    Error('\p{Blk=	 HANGUL:=}');
+    Error('\P{Blk=	 HANGUL:=}');
     Expect(1, 55215, '\p{Blk=:\AHangul\z:}', "");;
     Expect(0, 55216, '\p{Blk=:\AHangul\z:}', "");;
     Expect(1, 55215, '\p{Blk=hangul}', "");
@@ -13098,16 +13442,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 55216, '\P{^Blk=hangul}', "");
     Expect(1, 55215, '\p{Blk=:\Ahangul\z:}', "");;
     Expect(0, 55216, '\p{Blk=:\Ahangul\z:}', "");;
-    Expect(1, 55215, '\p{Blk=_-HANGUL}', "");
-    Expect(0, 55215, '\p{^Blk=_-HANGUL}', "");
-    Expect(0, 55215, '\P{Blk=_-HANGUL}', "");
-    Expect(1, 55215, '\P{^Blk=_-HANGUL}', "");
-    Expect(0, 55216, '\p{Blk=_-HANGUL}', "");
-    Expect(1, 55216, '\p{^Blk=_-HANGUL}', "");
-    Expect(1, 55216, '\P{Blk=_-HANGUL}', "");
-    Expect(0, 55216, '\P{^Blk=_-HANGUL}', "");
-    Error('\p{Is_Block=:=	_HANGUL_Syllables}');
-    Error('\P{Is_Block=:=	_HANGUL_Syllables}');
+    Expect(1, 55215, '\p{Blk=- Hangul}', "");
+    Expect(0, 55215, '\p{^Blk=- Hangul}', "");
+    Expect(0, 55215, '\P{Blk=- Hangul}', "");
+    Expect(1, 55215, '\P{^Blk=- Hangul}', "");
+    Expect(0, 55216, '\p{Blk=- Hangul}', "");
+    Expect(1, 55216, '\p{^Blk=- Hangul}', "");
+    Expect(1, 55216, '\P{Blk=- Hangul}', "");
+    Expect(0, 55216, '\P{^Blk=- Hangul}', "");
+    Error('\p{Is_Block=:=Hangul_Syllables}');
+    Error('\P{Is_Block=:=Hangul_Syllables}');
     Expect(1, 55215, '\p{Is_Block=hangulsyllables}', "");
     Expect(0, 55215, '\p{^Is_Block=hangulsyllables}', "");
     Expect(0, 55215, '\P{Is_Block=hangulsyllables}', "");
@@ -13116,16 +13460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 55216, '\p{^Is_Block=hangulsyllables}', "");
     Expect(1, 55216, '\P{Is_Block=hangulsyllables}', "");
     Expect(0, 55216, '\P{^Is_Block=hangulsyllables}', "");
-    Expect(1, 55215, '\p{Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(0, 55215, '\p{^Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(0, 55215, '\P{Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(1, 55215, '\P{^Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(0, 55216, '\p{Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(1, 55216, '\p{^Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(1, 55216, '\P{Is_Block: -HANGUL_SYLLABLES}', "");
-    Expect(0, 55216, '\P{^Is_Block: -HANGUL_SYLLABLES}', "");
-    Error('\p{Is_Blk=-/a/HANGUL}');
-    Error('\P{Is_Blk=-/a/HANGUL}');
+    Expect(1, 55215, '\p{Is_Block=_ HANGUL_Syllables}', "");
+    Expect(0, 55215, '\p{^Is_Block=_ HANGUL_Syllables}', "");
+    Expect(0, 55215, '\P{Is_Block=_ HANGUL_Syllables}', "");
+    Expect(1, 55215, '\P{^Is_Block=_ HANGUL_Syllables}', "");
+    Expect(0, 55216, '\p{Is_Block=_ HANGUL_Syllables}', "");
+    Expect(1, 55216, '\p{^Is_Block=_ HANGUL_Syllables}', "");
+    Expect(1, 55216, '\P{Is_Block=_ HANGUL_Syllables}', "");
+    Expect(0, 55216, '\P{^Is_Block=_ HANGUL_Syllables}', "");
+    Error('\p{Is_Blk= :=HANGUL}');
+    Error('\P{Is_Blk= :=HANGUL}');
     Expect(1, 55215, '\p{Is_Blk=hangul}', "");
     Expect(0, 55215, '\p{^Is_Blk=hangul}', "");
     Expect(0, 55215, '\P{Is_Blk=hangul}', "");
@@ -13134,16 +13478,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 55216, '\p{^Is_Blk=hangul}', "");
     Expect(1, 55216, '\P{Is_Blk=hangul}', "");
     Expect(0, 55216, '\P{^Is_Blk=hangul}', "");
-    Expect(1, 55215, '\p{Is_Blk: __Hangul}', "");
-    Expect(0, 55215, '\p{^Is_Blk: __Hangul}', "");
-    Expect(0, 55215, '\P{Is_Blk: __Hangul}', "");
-    Expect(1, 55215, '\P{^Is_Blk: __Hangul}', "");
-    Expect(0, 55216, '\p{Is_Blk: __Hangul}', "");
-    Expect(1, 55216, '\p{^Is_Blk: __Hangul}', "");
-    Expect(1, 55216, '\P{Is_Blk: __Hangul}', "");
-    Expect(0, 55216, '\P{^Is_Blk: __Hangul}', "");
-    Error('\p{Block:/a/		Hanifi_Rohingya}');
-    Error('\P{Block:/a/		Hanifi_Rohingya}');
+    Expect(1, 55215, '\p{Is_Blk=_HANGUL}', "");
+    Expect(0, 55215, '\p{^Is_Blk=_HANGUL}', "");
+    Expect(0, 55215, '\P{Is_Blk=_HANGUL}', "");
+    Expect(1, 55215, '\P{^Is_Blk=_HANGUL}', "");
+    Expect(0, 55216, '\p{Is_Blk=_HANGUL}', "");
+    Expect(1, 55216, '\p{^Is_Blk=_HANGUL}', "");
+    Expect(1, 55216, '\P{Is_Blk=_HANGUL}', "");
+    Expect(0, 55216, '\P{^Is_Blk=_HANGUL}', "");
+    Error('\p{Block=/a/Hanifi_ROHINGYA}');
+    Error('\P{Block=/a/Hanifi_ROHINGYA}');
     Expect(1, 68927, '\p{Block=:\AHanifi_Rohingya\z:}', "");;
     Expect(0, 68928, '\p{Block=:\AHanifi_Rohingya\z:}', "");;
     Expect(1, 68927, '\p{Block=hanifirohingya}', "");
@@ -13156,16 +13500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68928, '\P{^Block=hanifirohingya}', "");
     Expect(1, 68927, '\p{Block=:\Ahanifirohingya\z:}', "");;
     Expect(0, 68928, '\p{Block=:\Ahanifirohingya\z:}', "");;
-    Expect(1, 68927, '\p{Block=_-Hanifi_Rohingya}', "");
-    Expect(0, 68927, '\p{^Block=_-Hanifi_Rohingya}', "");
-    Expect(0, 68927, '\P{Block=_-Hanifi_Rohingya}', "");
-    Expect(1, 68927, '\P{^Block=_-Hanifi_Rohingya}', "");
-    Expect(0, 68928, '\p{Block=_-Hanifi_Rohingya}', "");
-    Expect(1, 68928, '\p{^Block=_-Hanifi_Rohingya}', "");
-    Expect(1, 68928, '\P{Block=_-Hanifi_Rohingya}', "");
-    Expect(0, 68928, '\P{^Block=_-Hanifi_Rohingya}', "");
-    Error('\p{Blk=:=  Hanifi_Rohingya}');
-    Error('\P{Blk=:=  Hanifi_Rohingya}');
+    Expect(1, 68927, '\p{Block=hanifi_Rohingya}', "");
+    Expect(0, 68927, '\p{^Block=hanifi_Rohingya}', "");
+    Expect(0, 68927, '\P{Block=hanifi_Rohingya}', "");
+    Expect(1, 68927, '\P{^Block=hanifi_Rohingya}', "");
+    Expect(0, 68928, '\p{Block=hanifi_Rohingya}', "");
+    Expect(1, 68928, '\p{^Block=hanifi_Rohingya}', "");
+    Expect(1, 68928, '\P{Block=hanifi_Rohingya}', "");
+    Expect(0, 68928, '\P{^Block=hanifi_Rohingya}', "");
+    Error('\p{Blk=/a/__Hanifi_rohingya}');
+    Error('\P{Blk=/a/__Hanifi_rohingya}');
     Expect(1, 68927, '\p{Blk=:\AHanifi_Rohingya\z:}', "");;
     Expect(0, 68928, '\p{Blk=:\AHanifi_Rohingya\z:}', "");;
     Expect(1, 68927, '\p{Blk=hanifirohingya}', "");
@@ -13178,34 +13522,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68928, '\P{^Blk=hanifirohingya}', "");
     Expect(1, 68927, '\p{Blk=:\Ahanifirohingya\z:}', "");;
     Expect(0, 68928, '\p{Blk=:\Ahanifirohingya\z:}', "");;
-    Expect(1, 68927, '\p{Blk=	-hanifi_Rohingya}', "");
-    Expect(0, 68927, '\p{^Blk=	-hanifi_Rohingya}', "");
-    Expect(0, 68927, '\P{Blk=	-hanifi_Rohingya}', "");
-    Expect(1, 68927, '\P{^Blk=	-hanifi_Rohingya}', "");
-    Expect(0, 68928, '\p{Blk=	-hanifi_Rohingya}', "");
-    Expect(1, 68928, '\p{^Blk=	-hanifi_Rohingya}', "");
-    Expect(1, 68928, '\P{Blk=	-hanifi_Rohingya}', "");
-    Expect(0, 68928, '\P{^Blk=	-hanifi_Rohingya}', "");
-    Error('\p{Is_Block:   	hanifi_Rohingya:=}');
-    Error('\P{Is_Block:   	hanifi_Rohingya:=}');
-    Expect(1, 68927, '\p{Is_Block:   hanifirohingya}', "");
-    Expect(0, 68927, '\p{^Is_Block:   hanifirohingya}', "");
-    Expect(0, 68927, '\P{Is_Block:   hanifirohingya}', "");
-    Expect(1, 68927, '\P{^Is_Block:   hanifirohingya}', "");
-    Expect(0, 68928, '\p{Is_Block:   hanifirohingya}', "");
-    Expect(1, 68928, '\p{^Is_Block:   hanifirohingya}', "");
-    Expect(1, 68928, '\P{Is_Block:   hanifirohingya}', "");
-    Expect(0, 68928, '\P{^Is_Block:   hanifirohingya}', "");
-    Expect(1, 68927, '\p{Is_Block=_hanifi_Rohingya}', "");
-    Expect(0, 68927, '\p{^Is_Block=_hanifi_Rohingya}', "");
-    Expect(0, 68927, '\P{Is_Block=_hanifi_Rohingya}', "");
-    Expect(1, 68927, '\P{^Is_Block=_hanifi_Rohingya}', "");
-    Expect(0, 68928, '\p{Is_Block=_hanifi_Rohingya}', "");
-    Expect(1, 68928, '\p{^Is_Block=_hanifi_Rohingya}', "");
-    Expect(1, 68928, '\P{Is_Block=_hanifi_Rohingya}', "");
-    Expect(0, 68928, '\P{^Is_Block=_hanifi_Rohingya}', "");
-    Error('\p{Is_Blk=/a/	-hanifi_Rohingya}');
-    Error('\P{Is_Blk=/a/	-hanifi_Rohingya}');
+    Expect(1, 68927, '\p{Blk=_Hanifi_ROHINGYA}', "");
+    Expect(0, 68927, '\p{^Blk=_Hanifi_ROHINGYA}', "");
+    Expect(0, 68927, '\P{Blk=_Hanifi_ROHINGYA}', "");
+    Expect(1, 68927, '\P{^Blk=_Hanifi_ROHINGYA}', "");
+    Expect(0, 68928, '\p{Blk=_Hanifi_ROHINGYA}', "");
+    Expect(1, 68928, '\p{^Blk=_Hanifi_ROHINGYA}', "");
+    Expect(1, 68928, '\P{Blk=_Hanifi_ROHINGYA}', "");
+    Expect(0, 68928, '\P{^Blk=_Hanifi_ROHINGYA}', "");
+    Error('\p{Is_Block= :=HANIFI_ROHINGYA}');
+    Error('\P{Is_Block= :=HANIFI_ROHINGYA}');
+    Expect(1, 68927, '\p{Is_Block=hanifirohingya}', "");
+    Expect(0, 68927, '\p{^Is_Block=hanifirohingya}', "");
+    Expect(0, 68927, '\P{Is_Block=hanifirohingya}', "");
+    Expect(1, 68927, '\P{^Is_Block=hanifirohingya}', "");
+    Expect(0, 68928, '\p{Is_Block=hanifirohingya}', "");
+    Expect(1, 68928, '\p{^Is_Block=hanifirohingya}', "");
+    Expect(1, 68928, '\P{Is_Block=hanifirohingya}', "");
+    Expect(0, 68928, '\P{^Is_Block=hanifirohingya}', "");
+    Expect(1, 68927, '\p{Is_Block= -Hanifi_Rohingya}', "");
+    Expect(0, 68927, '\p{^Is_Block= -Hanifi_Rohingya}', "");
+    Expect(0, 68927, '\P{Is_Block= -Hanifi_Rohingya}', "");
+    Expect(1, 68927, '\P{^Is_Block= -Hanifi_Rohingya}', "");
+    Expect(0, 68928, '\p{Is_Block= -Hanifi_Rohingya}', "");
+    Expect(1, 68928, '\p{^Is_Block= -Hanifi_Rohingya}', "");
+    Expect(1, 68928, '\P{Is_Block= -Hanifi_Rohingya}', "");
+    Expect(0, 68928, '\P{^Is_Block= -Hanifi_Rohingya}', "");
+    Error('\p{Is_Blk=	:=Hanifi_Rohingya}');
+    Error('\P{Is_Blk=	:=Hanifi_Rohingya}');
     Expect(1, 68927, '\p{Is_Blk=hanifirohingya}', "");
     Expect(0, 68927, '\p{^Is_Blk=hanifirohingya}', "");
     Expect(0, 68927, '\P{Is_Blk=hanifirohingya}', "");
@@ -13214,16 +13558,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68928, '\p{^Is_Blk=hanifirohingya}', "");
     Expect(1, 68928, '\P{Is_Blk=hanifirohingya}', "");
     Expect(0, 68928, '\P{^Is_Blk=hanifirohingya}', "");
-    Expect(1, 68927, '\p{Is_Blk:- hanifi_Rohingya}', "");
-    Expect(0, 68927, '\p{^Is_Blk:- hanifi_Rohingya}', "");
-    Expect(0, 68927, '\P{Is_Blk:- hanifi_Rohingya}', "");
-    Expect(1, 68927, '\P{^Is_Blk:- hanifi_Rohingya}', "");
-    Expect(0, 68928, '\p{Is_Blk:- hanifi_Rohingya}', "");
-    Expect(1, 68928, '\p{^Is_Blk:- hanifi_Rohingya}', "");
-    Expect(1, 68928, '\P{Is_Blk:- hanifi_Rohingya}', "");
-    Expect(0, 68928, '\P{^Is_Blk:- hanifi_Rohingya}', "");
-    Error('\p{Block=- Hanunoo/a/}');
-    Error('\P{Block=- Hanunoo/a/}');
+    Expect(1, 68927, '\p{Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(0, 68927, '\p{^Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(0, 68927, '\P{Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(1, 68927, '\P{^Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(0, 68928, '\p{Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(1, 68928, '\p{^Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(1, 68928, '\P{Is_Blk=		Hanifi_Rohingya}', "");
+    Expect(0, 68928, '\P{^Is_Blk=		Hanifi_Rohingya}', "");
+    Error('\p{Block=_ HANUNOO:=}');
+    Error('\P{Block=_ HANUNOO:=}');
     Expect(1, 5951, '\p{Block=:\AHanunoo\z:}', "");;
     Expect(0, 5952, '\p{Block=:\AHanunoo\z:}', "");;
     Expect(1, 5951, '\p{Block=hanunoo}', "");
@@ -13236,16 +13580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5952, '\P{^Block=hanunoo}', "");
     Expect(1, 5951, '\p{Block=:\Ahanunoo\z:}', "");;
     Expect(0, 5952, '\p{Block=:\Ahanunoo\z:}', "");;
-    Expect(1, 5951, '\p{Block=_ HANUNOO}', "");
-    Expect(0, 5951, '\p{^Block=_ HANUNOO}', "");
-    Expect(0, 5951, '\P{Block=_ HANUNOO}', "");
-    Expect(1, 5951, '\P{^Block=_ HANUNOO}', "");
-    Expect(0, 5952, '\p{Block=_ HANUNOO}', "");
-    Expect(1, 5952, '\p{^Block=_ HANUNOO}', "");
-    Expect(1, 5952, '\P{Block=_ HANUNOO}', "");
-    Expect(0, 5952, '\P{^Block=_ HANUNOO}', "");
-    Error('\p{Blk=/a/ -Hanunoo}');
-    Error('\P{Blk=/a/ -Hanunoo}');
+    Expect(1, 5951, '\p{Block=_Hanunoo}', "");
+    Expect(0, 5951, '\p{^Block=_Hanunoo}', "");
+    Expect(0, 5951, '\P{Block=_Hanunoo}', "");
+    Expect(1, 5951, '\P{^Block=_Hanunoo}', "");
+    Expect(0, 5952, '\p{Block=_Hanunoo}', "");
+    Expect(1, 5952, '\p{^Block=_Hanunoo}', "");
+    Expect(1, 5952, '\P{Block=_Hanunoo}', "");
+    Expect(0, 5952, '\P{^Block=_Hanunoo}', "");
+    Error('\p{Blk=_ Hanunoo/a/}');
+    Error('\P{Blk=_ Hanunoo/a/}');
     Expect(1, 5951, '\p{Blk=:\AHanunoo\z:}', "");;
     Expect(0, 5952, '\p{Blk=:\AHanunoo\z:}', "");;
     Expect(1, 5951, '\p{Blk=hanunoo}', "");
@@ -13258,34 +13602,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5952, '\P{^Blk=hanunoo}', "");
     Expect(1, 5951, '\p{Blk=:\Ahanunoo\z:}', "");;
     Expect(0, 5952, '\p{Blk=:\Ahanunoo\z:}', "");;
-    Expect(1, 5951, '\p{Blk=_-hanunoo}', "");
-    Expect(0, 5951, '\p{^Blk=_-hanunoo}', "");
-    Expect(0, 5951, '\P{Blk=_-hanunoo}', "");
-    Expect(1, 5951, '\P{^Blk=_-hanunoo}', "");
-    Expect(0, 5952, '\p{Blk=_-hanunoo}', "");
-    Expect(1, 5952, '\p{^Blk=_-hanunoo}', "");
-    Expect(1, 5952, '\P{Blk=_-hanunoo}', "");
-    Expect(0, 5952, '\P{^Blk=_-hanunoo}', "");
-    Error('\p{Is_Block=:=-	Hanunoo}');
-    Error('\P{Is_Block=:=-	Hanunoo}');
-    Expect(1, 5951, '\p{Is_Block:	hanunoo}', "");
-    Expect(0, 5951, '\p{^Is_Block:	hanunoo}', "");
-    Expect(0, 5951, '\P{Is_Block:	hanunoo}', "");
-    Expect(1, 5951, '\P{^Is_Block:	hanunoo}', "");
-    Expect(0, 5952, '\p{Is_Block:	hanunoo}', "");
-    Expect(1, 5952, '\p{^Is_Block:	hanunoo}', "");
-    Expect(1, 5952, '\P{Is_Block:	hanunoo}', "");
-    Expect(0, 5952, '\P{^Is_Block:	hanunoo}', "");
-    Expect(1, 5951, '\p{Is_Block:   -	Hanunoo}', "");
-    Expect(0, 5951, '\p{^Is_Block:   -	Hanunoo}', "");
-    Expect(0, 5951, '\P{Is_Block:   -	Hanunoo}', "");
-    Expect(1, 5951, '\P{^Is_Block:   -	Hanunoo}', "");
-    Expect(0, 5952, '\p{Is_Block:   -	Hanunoo}', "");
-    Expect(1, 5952, '\p{^Is_Block:   -	Hanunoo}', "");
-    Expect(1, 5952, '\P{Is_Block:   -	Hanunoo}', "");
-    Expect(0, 5952, '\P{^Is_Block:   -	Hanunoo}', "");
-    Error('\p{Is_Blk=-/a/Hanunoo}');
-    Error('\P{Is_Blk=-/a/Hanunoo}');
+    Expect(1, 5951, '\p{Blk=-_Hanunoo}', "");
+    Expect(0, 5951, '\p{^Blk=-_Hanunoo}', "");
+    Expect(0, 5951, '\P{Blk=-_Hanunoo}', "");
+    Expect(1, 5951, '\P{^Blk=-_Hanunoo}', "");
+    Expect(0, 5952, '\p{Blk=-_Hanunoo}', "");
+    Expect(1, 5952, '\p{^Blk=-_Hanunoo}', "");
+    Expect(1, 5952, '\P{Blk=-_Hanunoo}', "");
+    Expect(0, 5952, '\P{^Blk=-_Hanunoo}', "");
+    Error('\p{Is_Block=-	Hanunoo:=}');
+    Error('\P{Is_Block=-	Hanunoo:=}');
+    Expect(1, 5951, '\p{Is_Block=hanunoo}', "");
+    Expect(0, 5951, '\p{^Is_Block=hanunoo}', "");
+    Expect(0, 5951, '\P{Is_Block=hanunoo}', "");
+    Expect(1, 5951, '\P{^Is_Block=hanunoo}', "");
+    Expect(0, 5952, '\p{Is_Block=hanunoo}', "");
+    Expect(1, 5952, '\p{^Is_Block=hanunoo}', "");
+    Expect(1, 5952, '\P{Is_Block=hanunoo}', "");
+    Expect(0, 5952, '\P{^Is_Block=hanunoo}', "");
+    Expect(1, 5951, '\p{Is_Block=  HANUNOO}', "");
+    Expect(0, 5951, '\p{^Is_Block=  HANUNOO}', "");
+    Expect(0, 5951, '\P{Is_Block=  HANUNOO}', "");
+    Expect(1, 5951, '\P{^Is_Block=  HANUNOO}', "");
+    Expect(0, 5952, '\p{Is_Block=  HANUNOO}', "");
+    Expect(1, 5952, '\p{^Is_Block=  HANUNOO}', "");
+    Expect(1, 5952, '\P{Is_Block=  HANUNOO}', "");
+    Expect(0, 5952, '\P{^Is_Block=  HANUNOO}', "");
+    Error('\p{Is_Blk=_ HANUNOO:=}');
+    Error('\P{Is_Blk=_ HANUNOO:=}');
     Expect(1, 5951, '\p{Is_Blk=hanunoo}', "");
     Expect(0, 5951, '\p{^Is_Blk=hanunoo}', "");
     Expect(0, 5951, '\P{Is_Blk=hanunoo}', "");
@@ -13294,16 +13638,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5952, '\p{^Is_Blk=hanunoo}', "");
     Expect(1, 5952, '\P{Is_Blk=hanunoo}', "");
     Expect(0, 5952, '\P{^Is_Blk=hanunoo}', "");
-    Expect(1, 5951, '\p{Is_Blk=_HANUNOO}', "");
-    Expect(0, 5951, '\p{^Is_Blk=_HANUNOO}', "");
-    Expect(0, 5951, '\P{Is_Blk=_HANUNOO}', "");
-    Expect(1, 5951, '\P{^Is_Blk=_HANUNOO}', "");
-    Expect(0, 5952, '\p{Is_Blk=_HANUNOO}', "");
-    Expect(1, 5952, '\p{^Is_Blk=_HANUNOO}', "");
-    Expect(1, 5952, '\P{Is_Blk=_HANUNOO}', "");
-    Expect(0, 5952, '\P{^Is_Blk=_HANUNOO}', "");
-    Error('\p{Block=:=_HATRAN}');
-    Error('\P{Block=:=_HATRAN}');
+    Expect(1, 5951, '\p{Is_Blk=_	HANUNOO}', "");
+    Expect(0, 5951, '\p{^Is_Blk=_	HANUNOO}', "");
+    Expect(0, 5951, '\P{Is_Blk=_	HANUNOO}', "");
+    Expect(1, 5951, '\P{^Is_Blk=_	HANUNOO}', "");
+    Expect(0, 5952, '\p{Is_Blk=_	HANUNOO}', "");
+    Expect(1, 5952, '\p{^Is_Blk=_	HANUNOO}', "");
+    Expect(1, 5952, '\P{Is_Blk=_	HANUNOO}', "");
+    Expect(0, 5952, '\P{^Is_Blk=_	HANUNOO}', "");
+    Error('\p{Block:   	:=Hatran}');
+    Error('\P{Block:   	:=Hatran}');
     Expect(1, 67839, '\p{Block=:\AHatran\z:}', "");;
     Expect(0, 67840, '\p{Block=:\AHatran\z:}', "");;
     Expect(1, 67839, '\p{Block=hatran}', "");
@@ -13316,16 +13660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67840, '\P{^Block=hatran}', "");
     Expect(1, 67839, '\p{Block=:\Ahatran\z:}', "");;
     Expect(0, 67840, '\p{Block=:\Ahatran\z:}', "");;
-    Expect(1, 67839, '\p{Block=--Hatran}', "");
-    Expect(0, 67839, '\p{^Block=--Hatran}', "");
-    Expect(0, 67839, '\P{Block=--Hatran}', "");
-    Expect(1, 67839, '\P{^Block=--Hatran}', "");
-    Expect(0, 67840, '\p{Block=--Hatran}', "");
-    Expect(1, 67840, '\p{^Block=--Hatran}', "");
-    Expect(1, 67840, '\P{Block=--Hatran}', "");
-    Expect(0, 67840, '\P{^Block=--Hatran}', "");
-    Error('\p{Blk: 	 hatran/a/}');
-    Error('\P{Blk: 	 hatran/a/}');
+    Expect(1, 67839, '\p{Block= Hatran}', "");
+    Expect(0, 67839, '\p{^Block= Hatran}', "");
+    Expect(0, 67839, '\P{Block= Hatran}', "");
+    Expect(1, 67839, '\P{^Block= Hatran}', "");
+    Expect(0, 67840, '\p{Block= Hatran}', "");
+    Expect(1, 67840, '\p{^Block= Hatran}', "");
+    Expect(1, 67840, '\P{Block= Hatran}', "");
+    Expect(0, 67840, '\P{^Block= Hatran}', "");
+    Error('\p{Blk=/a/Hatran}');
+    Error('\P{Blk=/a/Hatran}');
     Expect(1, 67839, '\p{Blk=:\AHatran\z:}', "");;
     Expect(0, 67840, '\p{Blk=:\AHatran\z:}', "");;
     Expect(1, 67839, '\p{Blk=hatran}', "");
@@ -13338,16 +13682,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67840, '\P{^Blk=hatran}', "");
     Expect(1, 67839, '\p{Blk=:\Ahatran\z:}', "");;
     Expect(0, 67840, '\p{Blk=:\Ahatran\z:}', "");;
-    Expect(1, 67839, '\p{Blk=-Hatran}', "");
-    Expect(0, 67839, '\p{^Blk=-Hatran}', "");
-    Expect(0, 67839, '\P{Blk=-Hatran}', "");
-    Expect(1, 67839, '\P{^Blk=-Hatran}', "");
-    Expect(0, 67840, '\p{Blk=-Hatran}', "");
-    Expect(1, 67840, '\p{^Blk=-Hatran}', "");
-    Expect(1, 67840, '\P{Blk=-Hatran}', "");
-    Expect(0, 67840, '\P{^Blk=-Hatran}', "");
-    Error('\p{Is_Block=:=	hatran}');
-    Error('\P{Is_Block=:=	hatran}');
+    Expect(1, 67839, '\p{Blk=_ Hatran}', "");
+    Expect(0, 67839, '\p{^Blk=_ Hatran}', "");
+    Expect(0, 67839, '\P{Blk=_ Hatran}', "");
+    Expect(1, 67839, '\P{^Blk=_ Hatran}', "");
+    Expect(0, 67840, '\p{Blk=_ Hatran}', "");
+    Expect(1, 67840, '\p{^Blk=_ Hatran}', "");
+    Expect(1, 67840, '\P{Blk=_ Hatran}', "");
+    Expect(0, 67840, '\P{^Blk=_ Hatran}', "");
+    Error('\p{Is_Block=		hatran:=}');
+    Error('\P{Is_Block=		hatran:=}');
     Expect(1, 67839, '\p{Is_Block=hatran}', "");
     Expect(0, 67839, '\p{^Is_Block=hatran}', "");
     Expect(0, 67839, '\P{Is_Block=hatran}', "");
@@ -13356,16 +13700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67840, '\p{^Is_Block=hatran}', "");
     Expect(1, 67840, '\P{Is_Block=hatran}', "");
     Expect(0, 67840, '\P{^Is_Block=hatran}', "");
-    Expect(1, 67839, '\p{Is_Block=_hatran}', "");
-    Expect(0, 67839, '\p{^Is_Block=_hatran}', "");
-    Expect(0, 67839, '\P{Is_Block=_hatran}', "");
-    Expect(1, 67839, '\P{^Is_Block=_hatran}', "");
-    Expect(0, 67840, '\p{Is_Block=_hatran}', "");
-    Expect(1, 67840, '\p{^Is_Block=_hatran}', "");
-    Expect(1, 67840, '\P{Is_Block=_hatran}', "");
-    Expect(0, 67840, '\P{^Is_Block=_hatran}', "");
-    Error('\p{Is_Blk=-_HATRAN:=}');
-    Error('\P{Is_Blk=-_HATRAN:=}');
+    Expect(1, 67839, '\p{Is_Block= HATRAN}', "");
+    Expect(0, 67839, '\p{^Is_Block= HATRAN}', "");
+    Expect(0, 67839, '\P{Is_Block= HATRAN}', "");
+    Expect(1, 67839, '\P{^Is_Block= HATRAN}', "");
+    Expect(0, 67840, '\p{Is_Block= HATRAN}', "");
+    Expect(1, 67840, '\p{^Is_Block= HATRAN}', "");
+    Expect(1, 67840, '\P{Is_Block= HATRAN}', "");
+    Expect(0, 67840, '\P{^Is_Block= HATRAN}', "");
+    Error('\p{Is_Blk=-:=Hatran}');
+    Error('\P{Is_Blk=-:=Hatran}');
     Expect(1, 67839, '\p{Is_Blk=hatran}', "");
     Expect(0, 67839, '\p{^Is_Blk=hatran}', "");
     Expect(0, 67839, '\P{Is_Blk=hatran}', "");
@@ -13374,38 +13718,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67840, '\p{^Is_Blk=hatran}', "");
     Expect(1, 67840, '\P{Is_Blk=hatran}', "");
     Expect(0, 67840, '\P{^Is_Blk=hatran}', "");
-    Expect(1, 67839, '\p{Is_Blk= 	HATRAN}', "");
-    Expect(0, 67839, '\p{^Is_Blk= 	HATRAN}', "");
-    Expect(0, 67839, '\P{Is_Blk= 	HATRAN}', "");
-    Expect(1, 67839, '\P{^Is_Blk= 	HATRAN}', "");
-    Expect(0, 67840, '\p{Is_Blk= 	HATRAN}', "");
-    Expect(1, 67840, '\p{^Is_Blk= 	HATRAN}', "");
-    Expect(1, 67840, '\P{Is_Blk= 	HATRAN}', "");
-    Expect(0, 67840, '\P{^Is_Blk= 	HATRAN}', "");
-    Error('\p{Block=/a/Hebrew}');
-    Error('\P{Block=/a/Hebrew}');
+    Expect(1, 67839, '\p{Is_Blk=_-HATRAN}', "");
+    Expect(0, 67839, '\p{^Is_Blk=_-HATRAN}', "");
+    Expect(0, 67839, '\P{Is_Blk=_-HATRAN}', "");
+    Expect(1, 67839, '\P{^Is_Blk=_-HATRAN}', "");
+    Expect(0, 67840, '\p{Is_Blk=_-HATRAN}', "");
+    Expect(1, 67840, '\p{^Is_Blk=_-HATRAN}', "");
+    Expect(1, 67840, '\P{Is_Blk=_-HATRAN}', "");
+    Expect(0, 67840, '\P{^Is_Blk=_-HATRAN}', "");
+    Error('\p{Block=/a/	_HEBREW}');
+    Error('\P{Block=/a/	_HEBREW}');
     Expect(1, 1535, '\p{Block=:\AHebrew\z:}', "");;
     Expect(0, 1536, '\p{Block=:\AHebrew\z:}', "");;
-    Expect(1, 1535, '\p{Block=hebrew}', "");
-    Expect(0, 1535, '\p{^Block=hebrew}', "");
-    Expect(0, 1535, '\P{Block=hebrew}', "");
-    Expect(1, 1535, '\P{^Block=hebrew}', "");
-    Expect(0, 1536, '\p{Block=hebrew}', "");
-    Expect(1, 1536, '\p{^Block=hebrew}', "");
-    Expect(1, 1536, '\P{Block=hebrew}', "");
-    Expect(0, 1536, '\P{^Block=hebrew}', "");
+    Expect(1, 1535, '\p{Block:hebrew}', "");
+    Expect(0, 1535, '\p{^Block:hebrew}', "");
+    Expect(0, 1535, '\P{Block:hebrew}', "");
+    Expect(1, 1535, '\P{^Block:hebrew}', "");
+    Expect(0, 1536, '\p{Block:hebrew}', "");
+    Expect(1, 1536, '\p{^Block:hebrew}', "");
+    Expect(1, 1536, '\P{Block:hebrew}', "");
+    Expect(0, 1536, '\P{^Block:hebrew}', "");
     Expect(1, 1535, '\p{Block=:\Ahebrew\z:}', "");;
     Expect(0, 1536, '\p{Block=:\Ahebrew\z:}', "");;
-    Expect(1, 1535, '\p{Block:	 -Hebrew}', "");
-    Expect(0, 1535, '\p{^Block:	 -Hebrew}', "");
-    Expect(0, 1535, '\P{Block:	 -Hebrew}', "");
-    Expect(1, 1535, '\P{^Block:	 -Hebrew}', "");
-    Expect(0, 1536, '\p{Block:	 -Hebrew}', "");
-    Expect(1, 1536, '\p{^Block:	 -Hebrew}', "");
-    Expect(1, 1536, '\P{Block:	 -Hebrew}', "");
-    Expect(0, 1536, '\P{^Block:	 -Hebrew}', "");
-    Error('\p{Blk=/a/_	Hebrew}');
-    Error('\P{Blk=/a/_	Hebrew}');
+    Expect(1, 1535, '\p{Block= 	Hebrew}', "");
+    Expect(0, 1535, '\p{^Block= 	Hebrew}', "");
+    Expect(0, 1535, '\P{Block= 	Hebrew}', "");
+    Expect(1, 1535, '\P{^Block= 	Hebrew}', "");
+    Expect(0, 1536, '\p{Block= 	Hebrew}', "");
+    Expect(1, 1536, '\p{^Block= 	Hebrew}', "");
+    Expect(1, 1536, '\P{Block= 	Hebrew}', "");
+    Expect(0, 1536, '\P{^Block= 	Hebrew}', "");
+    Error('\p{Blk=  hebrew:=}');
+    Error('\P{Blk=  hebrew:=}');
     Expect(1, 1535, '\p{Blk=:\AHebrew\z:}', "");;
     Expect(0, 1536, '\p{Blk=:\AHebrew\z:}', "");;
     Expect(1, 1535, '\p{Blk=hebrew}', "");
@@ -13418,16 +13762,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1536, '\P{^Blk=hebrew}', "");
     Expect(1, 1535, '\p{Blk=:\Ahebrew\z:}', "");;
     Expect(0, 1536, '\p{Blk=:\Ahebrew\z:}', "");;
-    Expect(1, 1535, '\p{Blk=- HEBREW}', "");
-    Expect(0, 1535, '\p{^Blk=- HEBREW}', "");
-    Expect(0, 1535, '\P{Blk=- HEBREW}', "");
-    Expect(1, 1535, '\P{^Blk=- HEBREW}', "");
-    Expect(0, 1536, '\p{Blk=- HEBREW}', "");
-    Expect(1, 1536, '\p{^Blk=- HEBREW}', "");
-    Expect(1, 1536, '\P{Blk=- HEBREW}', "");
-    Expect(0, 1536, '\P{^Blk=- HEBREW}', "");
-    Error('\p{Is_Block=-:=Hebrew}');
-    Error('\P{Is_Block=-:=Hebrew}');
+    Expect(1, 1535, '\p{Blk=	hebrew}', "");
+    Expect(0, 1535, '\p{^Blk=	hebrew}', "");
+    Expect(0, 1535, '\P{Blk=	hebrew}', "");
+    Expect(1, 1535, '\P{^Blk=	hebrew}', "");
+    Expect(0, 1536, '\p{Blk=	hebrew}', "");
+    Expect(1, 1536, '\p{^Blk=	hebrew}', "");
+    Expect(1, 1536, '\P{Blk=	hebrew}', "");
+    Expect(0, 1536, '\P{^Blk=	hebrew}', "");
+    Error('\p{Is_Block=__hebrew:=}');
+    Error('\P{Is_Block=__hebrew:=}');
     Expect(1, 1535, '\p{Is_Block=hebrew}', "");
     Expect(0, 1535, '\p{^Is_Block=hebrew}', "");
     Expect(0, 1535, '\P{Is_Block=hebrew}', "");
@@ -13436,34 +13780,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1536, '\p{^Is_Block=hebrew}', "");
     Expect(1, 1536, '\P{Is_Block=hebrew}', "");
     Expect(0, 1536, '\P{^Is_Block=hebrew}', "");
-    Expect(1, 1535, '\p{Is_Block=		Hebrew}', "");
-    Expect(0, 1535, '\p{^Is_Block=		Hebrew}', "");
-    Expect(0, 1535, '\P{Is_Block=		Hebrew}', "");
-    Expect(1, 1535, '\P{^Is_Block=		Hebrew}', "");
-    Expect(0, 1536, '\p{Is_Block=		Hebrew}', "");
-    Expect(1, 1536, '\p{^Is_Block=		Hebrew}', "");
-    Expect(1, 1536, '\P{Is_Block=		Hebrew}', "");
-    Expect(0, 1536, '\P{^Is_Block=		Hebrew}', "");
-    Error('\p{Is_Blk=Hebrew/a/}');
-    Error('\P{Is_Blk=Hebrew/a/}');
-    Expect(1, 1535, '\p{Is_Blk=hebrew}', "");
-    Expect(0, 1535, '\p{^Is_Blk=hebrew}', "");
-    Expect(0, 1535, '\P{Is_Blk=hebrew}', "");
-    Expect(1, 1535, '\P{^Is_Blk=hebrew}', "");
-    Expect(0, 1536, '\p{Is_Blk=hebrew}', "");
-    Expect(1, 1536, '\p{^Is_Blk=hebrew}', "");
-    Expect(1, 1536, '\P{Is_Blk=hebrew}', "");
-    Expect(0, 1536, '\P{^Is_Blk=hebrew}', "");
-    Expect(1, 1535, '\p{Is_Blk= Hebrew}', "");
-    Expect(0, 1535, '\p{^Is_Blk= Hebrew}', "");
-    Expect(0, 1535, '\P{Is_Blk= Hebrew}', "");
-    Expect(1, 1535, '\P{^Is_Blk= Hebrew}', "");
-    Expect(0, 1536, '\p{Is_Blk= Hebrew}', "");
-    Expect(1, 1536, '\p{^Is_Blk= Hebrew}', "");
-    Expect(1, 1536, '\P{Is_Blk= Hebrew}', "");
-    Expect(0, 1536, '\P{^Is_Blk= Hebrew}', "");
-    Error('\p{Block=high_Private_Use_Surrogates/a/}');
-    Error('\P{Block=high_Private_Use_Surrogates/a/}');
+    Expect(1, 1535, '\p{Is_Block=	 Hebrew}', "");
+    Expect(0, 1535, '\p{^Is_Block=	 Hebrew}', "");
+    Expect(0, 1535, '\P{Is_Block=	 Hebrew}', "");
+    Expect(1, 1535, '\P{^Is_Block=	 Hebrew}', "");
+    Expect(0, 1536, '\p{Is_Block=	 Hebrew}', "");
+    Expect(1, 1536, '\p{^Is_Block=	 Hebrew}', "");
+    Expect(1, 1536, '\P{Is_Block=	 Hebrew}', "");
+    Expect(0, 1536, '\P{^Is_Block=	 Hebrew}', "");
+    Error('\p{Is_Blk=_	hebrew:=}');
+    Error('\P{Is_Blk=_	hebrew:=}');
+    Expect(1, 1535, '\p{Is_Blk:hebrew}', "");
+    Expect(0, 1535, '\p{^Is_Blk:hebrew}', "");
+    Expect(0, 1535, '\P{Is_Blk:hebrew}', "");
+    Expect(1, 1535, '\P{^Is_Blk:hebrew}', "");
+    Expect(0, 1536, '\p{Is_Blk:hebrew}', "");
+    Expect(1, 1536, '\p{^Is_Blk:hebrew}', "");
+    Expect(1, 1536, '\P{Is_Blk:hebrew}', "");
+    Expect(0, 1536, '\P{^Is_Blk:hebrew}', "");
+    Expect(1, 1535, '\p{Is_Blk=	_Hebrew}', "");
+    Expect(0, 1535, '\p{^Is_Blk=	_Hebrew}', "");
+    Expect(0, 1535, '\P{Is_Blk=	_Hebrew}', "");
+    Expect(1, 1535, '\P{^Is_Blk=	_Hebrew}', "");
+    Expect(0, 1536, '\p{Is_Blk=	_Hebrew}', "");
+    Expect(1, 1536, '\p{^Is_Blk=	_Hebrew}', "");
+    Expect(1, 1536, '\P{Is_Blk=	_Hebrew}', "");
+    Expect(0, 1536, '\P{^Is_Blk=	_Hebrew}', "");
+    Error('\p{Block=		High_Private_Use_Surrogates:=}');
+    Error('\P{Block=		High_Private_Use_Surrogates:=}');
     Expect(1, 56319, '\p{Block=:\AHigh_Private_Use_Surrogates\z:}', "");;
     Expect(0, 57344, '\p{Block=:\AHigh_Private_Use_Surrogates\z:}', "");;
     Expect(1, 56319, '\p{Block=highprivateusesurrogates}', "");
@@ -13476,16 +13820,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Block=highprivateusesurrogates}', "");
     Expect(1, 56319, '\p{Block=:\Ahighprivateusesurrogates\z:}', "");;
     Expect(0, 57344, '\p{Block=:\Ahighprivateusesurrogates\z:}', "");;
-    Expect(1, 56319, '\p{Block: high_Private_Use_Surrogates}', "");
-    Expect(0, 56319, '\p{^Block: high_Private_Use_Surrogates}', "");
-    Expect(0, 56319, '\P{Block: high_Private_Use_Surrogates}', "");
-    Expect(1, 56319, '\P{^Block: high_Private_Use_Surrogates}', "");
-    Expect(0, 57344, '\p{Block: high_Private_Use_Surrogates}', "");
-    Expect(1, 57344, '\p{^Block: high_Private_Use_Surrogates}', "");
-    Expect(1, 57344, '\P{Block: high_Private_Use_Surrogates}', "");
-    Expect(0, 57344, '\P{^Block: high_Private_Use_Surrogates}', "");
-    Error('\p{Blk=_:=HIGH_PU_Surrogates}');
-    Error('\P{Blk=_:=HIGH_PU_Surrogates}');
+    Expect(1, 56319, '\p{Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(0, 56319, '\p{^Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(0, 56319, '\P{Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(1, 56319, '\P{^Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(0, 57344, '\p{Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(1, 57344, '\p{^Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(1, 57344, '\P{Block=	HIGH_Private_USE_SURROGATES}', "");
+    Expect(0, 57344, '\P{^Block=	HIGH_Private_USE_SURROGATES}', "");
+    Error('\p{Blk=	/a/high_PU_SURROGATES}');
+    Error('\P{Blk=	/a/high_PU_SURROGATES}');
     Expect(1, 56319, '\p{Blk=:\AHigh_PU_Surrogates\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\AHigh_PU_Surrogates\z:}', "");;
     Expect(1, 56319, '\p{Blk=highpusurrogates}', "");
@@ -13498,34 +13842,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Blk=highpusurrogates}', "");
     Expect(1, 56319, '\p{Blk=:\Ahighpusurrogates\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\Ahighpusurrogates\z:}', "");;
-    Expect(1, 56319, '\p{Blk=-	High_pu_Surrogates}', "");
-    Expect(0, 56319, '\p{^Blk=-	High_pu_Surrogates}', "");
-    Expect(0, 56319, '\P{Blk=-	High_pu_Surrogates}', "");
-    Expect(1, 56319, '\P{^Blk=-	High_pu_Surrogates}', "");
-    Expect(0, 57344, '\p{Blk=-	High_pu_Surrogates}', "");
-    Expect(1, 57344, '\p{^Blk=-	High_pu_Surrogates}', "");
-    Expect(1, 57344, '\P{Blk=-	High_pu_Surrogates}', "");
-    Expect(0, 57344, '\P{^Blk=-	High_pu_Surrogates}', "");
-    Error('\p{Is_Block=_	HIGH_Private_use_SURROGATES:=}');
-    Error('\P{Is_Block=_	HIGH_Private_use_SURROGATES:=}');
-    Expect(1, 56319, '\p{Is_Block: highprivateusesurrogates}', "");
-    Expect(0, 56319, '\p{^Is_Block: highprivateusesurrogates}', "");
-    Expect(0, 56319, '\P{Is_Block: highprivateusesurrogates}', "");
-    Expect(1, 56319, '\P{^Is_Block: highprivateusesurrogates}', "");
-    Expect(0, 57344, '\p{Is_Block: highprivateusesurrogates}', "");
-    Expect(1, 57344, '\p{^Is_Block: highprivateusesurrogates}', "");
-    Expect(1, 57344, '\P{Is_Block: highprivateusesurrogates}', "");
-    Expect(0, 57344, '\P{^Is_Block: highprivateusesurrogates}', "");
-    Expect(1, 56319, '\p{Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(0, 56319, '\p{^Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(0, 56319, '\P{Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(1, 56319, '\P{^Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(0, 57344, '\p{Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(1, 57344, '\p{^Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(1, 57344, '\P{Is_Block= _High_Private_Use_SURROGATES}', "");
-    Expect(0, 57344, '\P{^Is_Block= _High_Private_Use_SURROGATES}', "");
-    Error('\p{Is_Blk=/a/	-high_PU_SURROGATES}');
-    Error('\P{Is_Blk=/a/	-high_PU_SURROGATES}');
+    Expect(1, 56319, '\p{Blk=- HIGH_PU_surrogates}', "");
+    Expect(0, 56319, '\p{^Blk=- HIGH_PU_surrogates}', "");
+    Expect(0, 56319, '\P{Blk=- HIGH_PU_surrogates}', "");
+    Expect(1, 56319, '\P{^Blk=- HIGH_PU_surrogates}', "");
+    Expect(0, 57344, '\p{Blk=- HIGH_PU_surrogates}', "");
+    Expect(1, 57344, '\p{^Blk=- HIGH_PU_surrogates}', "");
+    Expect(1, 57344, '\P{Blk=- HIGH_PU_surrogates}', "");
+    Expect(0, 57344, '\P{^Blk=- HIGH_PU_surrogates}', "");
+    Error('\p{Is_Block=	High_private_USE_Surrogates:=}');
+    Error('\P{Is_Block=	High_private_USE_Surrogates:=}');
+    Expect(1, 56319, '\p{Is_Block=highprivateusesurrogates}', "");
+    Expect(0, 56319, '\p{^Is_Block=highprivateusesurrogates}', "");
+    Expect(0, 56319, '\P{Is_Block=highprivateusesurrogates}', "");
+    Expect(1, 56319, '\P{^Is_Block=highprivateusesurrogates}', "");
+    Expect(0, 57344, '\p{Is_Block=highprivateusesurrogates}', "");
+    Expect(1, 57344, '\p{^Is_Block=highprivateusesurrogates}', "");
+    Expect(1, 57344, '\P{Is_Block=highprivateusesurrogates}', "");
+    Expect(0, 57344, '\P{^Is_Block=highprivateusesurrogates}', "");
+    Expect(1, 56319, '\p{Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(0, 56319, '\p{^Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(0, 56319, '\P{Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(1, 56319, '\P{^Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(0, 57344, '\p{Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(1, 57344, '\p{^Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(1, 57344, '\P{Is_Block=	high_Private_USE_Surrogates}', "");
+    Expect(0, 57344, '\P{^Is_Block=	high_Private_USE_Surrogates}', "");
+    Error('\p{Is_Blk=/a/- high_pu_surrogates}');
+    Error('\P{Is_Blk=/a/- high_pu_surrogates}');
     Expect(1, 56319, '\p{Is_Blk=highpusurrogates}', "");
     Expect(0, 56319, '\p{^Is_Blk=highpusurrogates}', "");
     Expect(0, 56319, '\P{Is_Blk=highpusurrogates}', "");
@@ -13534,16 +13878,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Blk=highpusurrogates}', "");
     Expect(1, 57344, '\P{Is_Blk=highpusurrogates}', "");
     Expect(0, 57344, '\P{^Is_Blk=highpusurrogates}', "");
-    Expect(1, 56319, '\p{Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(0, 56319, '\p{^Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(0, 56319, '\P{Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(1, 56319, '\P{^Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(0, 57344, '\p{Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(1, 57344, '\p{^Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(1, 57344, '\P{Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Expect(0, 57344, '\P{^Is_Blk=-	HIGH_PU_Surrogates}', "");
-    Error('\p{Block=_high_SURROGATES:=}');
-    Error('\P{Block=_high_SURROGATES:=}');
+    Expect(1, 56319, '\p{Is_Blk=-_high_PU_surrogates}', "");
+    Expect(0, 56319, '\p{^Is_Blk=-_high_PU_surrogates}', "");
+    Expect(0, 56319, '\P{Is_Blk=-_high_PU_surrogates}', "");
+    Expect(1, 56319, '\P{^Is_Blk=-_high_PU_surrogates}', "");
+    Expect(0, 57344, '\p{Is_Blk=-_high_PU_surrogates}', "");
+    Expect(1, 57344, '\p{^Is_Blk=-_high_PU_surrogates}', "");
+    Expect(1, 57344, '\P{Is_Blk=-_high_PU_surrogates}', "");
+    Expect(0, 57344, '\P{^Is_Blk=-_high_PU_surrogates}', "");
+    Error('\p{Block=	/a/HIGH_Surrogates}');
+    Error('\P{Block=	/a/HIGH_Surrogates}');
     Expect(1, 56191, '\p{Block=:\AHigh_Surrogates\z:}', "");;
     Expect(0, 57344, '\p{Block=:\AHigh_Surrogates\z:}', "");;
     Expect(1, 56191, '\p{Block=highsurrogates}', "");
@@ -13556,16 +13900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Block=highsurrogates}', "");
     Expect(1, 56191, '\p{Block=:\Ahighsurrogates\z:}', "");;
     Expect(0, 57344, '\p{Block=:\Ahighsurrogates\z:}', "");;
-    Expect(1, 56191, '\p{Block= -High_surrogates}', "");
-    Expect(0, 56191, '\p{^Block= -High_surrogates}', "");
-    Expect(0, 56191, '\P{Block= -High_surrogates}', "");
-    Expect(1, 56191, '\P{^Block= -High_surrogates}', "");
-    Expect(0, 57344, '\p{Block= -High_surrogates}', "");
-    Expect(1, 57344, '\p{^Block= -High_surrogates}', "");
-    Expect(1, 57344, '\P{Block= -High_surrogates}', "");
-    Expect(0, 57344, '\P{^Block= -High_surrogates}', "");
-    Error('\p{Blk= /a/High_Surrogates}');
-    Error('\P{Blk= /a/High_Surrogates}');
+    Expect(1, 56191, '\p{Block=	 high_Surrogates}', "");
+    Expect(0, 56191, '\p{^Block=	 high_Surrogates}', "");
+    Expect(0, 56191, '\P{Block=	 high_Surrogates}', "");
+    Expect(1, 56191, '\P{^Block=	 high_Surrogates}', "");
+    Expect(0, 57344, '\p{Block=	 high_Surrogates}', "");
+    Expect(1, 57344, '\p{^Block=	 high_Surrogates}', "");
+    Expect(1, 57344, '\P{Block=	 high_Surrogates}', "");
+    Expect(0, 57344, '\P{^Block=	 high_Surrogates}', "");
+    Error('\p{Blk=/a/_-HIGH_surrogates}');
+    Error('\P{Blk=/a/_-HIGH_surrogates}');
     Expect(1, 56191, '\p{Blk=:\AHigh_Surrogates\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\AHigh_Surrogates\z:}', "");;
     Expect(1, 56191, '\p{Blk=highsurrogates}', "");
@@ -13578,16 +13922,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Blk=highsurrogates}', "");
     Expect(1, 56191, '\p{Blk=:\Ahighsurrogates\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\Ahighsurrogates\z:}', "");;
-    Expect(1, 56191, '\p{Blk=_-High_Surrogates}', "");
-    Expect(0, 56191, '\p{^Blk=_-High_Surrogates}', "");
-    Expect(0, 56191, '\P{Blk=_-High_Surrogates}', "");
-    Expect(1, 56191, '\P{^Blk=_-High_Surrogates}', "");
-    Expect(0, 57344, '\p{Blk=_-High_Surrogates}', "");
-    Expect(1, 57344, '\p{^Blk=_-High_Surrogates}', "");
-    Expect(1, 57344, '\P{Blk=_-High_Surrogates}', "");
-    Expect(0, 57344, '\P{^Blk=_-High_Surrogates}', "");
-    Error('\p{Is_Block=:=__high_SURROGATES}');
-    Error('\P{Is_Block=:=__high_SURROGATES}');
+    Expect(1, 56191, '\p{Blk=- HIGH_Surrogates}', "");
+    Expect(0, 56191, '\p{^Blk=- HIGH_Surrogates}', "");
+    Expect(0, 56191, '\P{Blk=- HIGH_Surrogates}', "");
+    Expect(1, 56191, '\P{^Blk=- HIGH_Surrogates}', "");
+    Expect(0, 57344, '\p{Blk=- HIGH_Surrogates}', "");
+    Expect(1, 57344, '\p{^Blk=- HIGH_Surrogates}', "");
+    Expect(1, 57344, '\P{Blk=- HIGH_Surrogates}', "");
+    Expect(0, 57344, '\P{^Blk=- HIGH_Surrogates}', "");
+    Error('\p{Is_Block=:=	high_Surrogates}');
+    Error('\P{Is_Block=:=	high_Surrogates}');
     Expect(1, 56191, '\p{Is_Block=highsurrogates}', "");
     Expect(0, 56191, '\p{^Is_Block=highsurrogates}', "");
     Expect(0, 56191, '\P{Is_Block=highsurrogates}', "");
@@ -13596,16 +13940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Block=highsurrogates}', "");
     Expect(1, 57344, '\P{Is_Block=highsurrogates}', "");
     Expect(0, 57344, '\P{^Is_Block=highsurrogates}', "");
-    Expect(1, 56191, '\p{Is_Block= High_SURROGATES}', "");
-    Expect(0, 56191, '\p{^Is_Block= High_SURROGATES}', "");
-    Expect(0, 56191, '\P{Is_Block= High_SURROGATES}', "");
-    Expect(1, 56191, '\P{^Is_Block= High_SURROGATES}', "");
-    Expect(0, 57344, '\p{Is_Block= High_SURROGATES}', "");
-    Expect(1, 57344, '\p{^Is_Block= High_SURROGATES}', "");
-    Expect(1, 57344, '\P{Is_Block= High_SURROGATES}', "");
-    Expect(0, 57344, '\P{^Is_Block= High_SURROGATES}', "");
-    Error('\p{Is_Blk=:=_-High_Surrogates}');
-    Error('\P{Is_Blk=:=_-High_Surrogates}');
+    Expect(1, 56191, '\p{Is_Block=- HIGH_Surrogates}', "");
+    Expect(0, 56191, '\p{^Is_Block=- HIGH_Surrogates}', "");
+    Expect(0, 56191, '\P{Is_Block=- HIGH_Surrogates}', "");
+    Expect(1, 56191, '\P{^Is_Block=- HIGH_Surrogates}', "");
+    Expect(0, 57344, '\p{Is_Block=- HIGH_Surrogates}', "");
+    Expect(1, 57344, '\p{^Is_Block=- HIGH_Surrogates}', "");
+    Expect(1, 57344, '\P{Is_Block=- HIGH_Surrogates}', "");
+    Expect(0, 57344, '\P{^Is_Block=- HIGH_Surrogates}', "");
+    Error('\p{Is_Blk=- High_SURROGATES:=}');
+    Error('\P{Is_Blk=- High_SURROGATES:=}');
     Expect(1, 56191, '\p{Is_Blk=highsurrogates}', "");
     Expect(0, 56191, '\p{^Is_Blk=highsurrogates}', "");
     Expect(0, 56191, '\P{Is_Blk=highsurrogates}', "");
@@ -13614,16 +13958,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Blk=highsurrogates}', "");
     Expect(1, 57344, '\P{Is_Blk=highsurrogates}', "");
     Expect(0, 57344, '\P{^Is_Blk=highsurrogates}', "");
-    Expect(1, 56191, '\p{Is_Blk=_ high_Surrogates}', "");
-    Expect(0, 56191, '\p{^Is_Blk=_ high_Surrogates}', "");
-    Expect(0, 56191, '\P{Is_Blk=_ high_Surrogates}', "");
-    Expect(1, 56191, '\P{^Is_Blk=_ high_Surrogates}', "");
-    Expect(0, 57344, '\p{Is_Blk=_ high_Surrogates}', "");
-    Expect(1, 57344, '\p{^Is_Blk=_ high_Surrogates}', "");
-    Expect(1, 57344, '\P{Is_Blk=_ high_Surrogates}', "");
-    Expect(0, 57344, '\P{^Is_Blk=_ high_Surrogates}', "");
-    Error('\p{Block=/a/_-HIRAGANA}');
-    Error('\P{Block=/a/_-HIRAGANA}');
+    Expect(1, 56191, '\p{Is_Blk=_-High_Surrogates}', "");
+    Expect(0, 56191, '\p{^Is_Blk=_-High_Surrogates}', "");
+    Expect(0, 56191, '\P{Is_Blk=_-High_Surrogates}', "");
+    Expect(1, 56191, '\P{^Is_Blk=_-High_Surrogates}', "");
+    Expect(0, 57344, '\p{Is_Blk=_-High_Surrogates}', "");
+    Expect(1, 57344, '\p{^Is_Blk=_-High_Surrogates}', "");
+    Expect(1, 57344, '\P{Is_Blk=_-High_Surrogates}', "");
+    Expect(0, 57344, '\P{^Is_Blk=_-High_Surrogates}', "");
+    Error('\p{Block=:=Hiragana}');
+    Error('\P{Block=:=Hiragana}');
     Expect(1, 12447, '\p{Block=:\AHiragana\z:}', "");;
     Expect(0, 12448, '\p{Block=:\AHiragana\z:}', "");;
     Expect(1, 12447, '\p{Block=hiragana}', "");
@@ -13636,16 +13980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12448, '\P{^Block=hiragana}', "");
     Expect(1, 12447, '\p{Block=:\Ahiragana\z:}', "");;
     Expect(0, 12448, '\p{Block=:\Ahiragana\z:}', "");;
-    Expect(1, 12447, '\p{Block: - HIRAGANA}', "");
-    Expect(0, 12447, '\p{^Block: - HIRAGANA}', "");
-    Expect(0, 12447, '\P{Block: - HIRAGANA}', "");
-    Expect(1, 12447, '\P{^Block: - HIRAGANA}', "");
-    Expect(0, 12448, '\p{Block: - HIRAGANA}', "");
-    Expect(1, 12448, '\p{^Block: - HIRAGANA}', "");
-    Expect(1, 12448, '\P{Block: - HIRAGANA}', "");
-    Expect(0, 12448, '\P{^Block: - HIRAGANA}', "");
-    Error('\p{Blk=/a/- Hiragana}');
-    Error('\P{Blk=/a/- Hiragana}');
+    Expect(1, 12447, '\p{Block=_	Hiragana}', "");
+    Expect(0, 12447, '\p{^Block=_	Hiragana}', "");
+    Expect(0, 12447, '\P{Block=_	Hiragana}', "");
+    Expect(1, 12447, '\P{^Block=_	Hiragana}', "");
+    Expect(0, 12448, '\p{Block=_	Hiragana}', "");
+    Expect(1, 12448, '\p{^Block=_	Hiragana}', "");
+    Expect(1, 12448, '\P{Block=_	Hiragana}', "");
+    Expect(0, 12448, '\P{^Block=_	Hiragana}', "");
+    Error('\p{Blk=_:=Hiragana}');
+    Error('\P{Blk=_:=Hiragana}');
     Expect(1, 12447, '\p{Blk=:\AHiragana\z:}', "");;
     Expect(0, 12448, '\p{Blk=:\AHiragana\z:}', "");;
     Expect(1, 12447, '\p{Blk=hiragana}', "");
@@ -13658,16 +14002,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12448, '\P{^Blk=hiragana}', "");
     Expect(1, 12447, '\p{Blk=:\Ahiragana\z:}', "");;
     Expect(0, 12448, '\p{Blk=:\Ahiragana\z:}', "");;
-    Expect(1, 12447, '\p{Blk= _Hiragana}', "");
-    Expect(0, 12447, '\p{^Blk= _Hiragana}', "");
-    Expect(0, 12447, '\P{Blk= _Hiragana}', "");
-    Expect(1, 12447, '\P{^Blk= _Hiragana}', "");
-    Expect(0, 12448, '\p{Blk= _Hiragana}', "");
-    Expect(1, 12448, '\p{^Blk= _Hiragana}', "");
-    Expect(1, 12448, '\P{Blk= _Hiragana}', "");
-    Expect(0, 12448, '\P{^Blk= _Hiragana}', "");
-    Error('\p{Is_Block=-	Hiragana:=}');
-    Error('\P{Is_Block=-	Hiragana:=}');
+    Expect(1, 12447, '\p{Blk:   --HIRAGANA}', "");
+    Expect(0, 12447, '\p{^Blk:   --HIRAGANA}', "");
+    Expect(0, 12447, '\P{Blk:   --HIRAGANA}', "");
+    Expect(1, 12447, '\P{^Blk:   --HIRAGANA}', "");
+    Expect(0, 12448, '\p{Blk:   --HIRAGANA}', "");
+    Expect(1, 12448, '\p{^Blk:   --HIRAGANA}', "");
+    Expect(1, 12448, '\P{Blk:   --HIRAGANA}', "");
+    Expect(0, 12448, '\P{^Blk:   --HIRAGANA}', "");
+    Error('\p{Is_Block= Hiragana:=}');
+    Error('\P{Is_Block= Hiragana:=}');
     Expect(1, 12447, '\p{Is_Block=hiragana}', "");
     Expect(0, 12447, '\p{^Is_Block=hiragana}', "");
     Expect(0, 12447, '\P{Is_Block=hiragana}', "");
@@ -13676,56 +14020,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12448, '\p{^Is_Block=hiragana}', "");
     Expect(1, 12448, '\P{Is_Block=hiragana}', "");
     Expect(0, 12448, '\P{^Is_Block=hiragana}', "");
-    Expect(1, 12447, '\p{Is_Block: HIRAGANA}', "");
-    Expect(0, 12447, '\p{^Is_Block: HIRAGANA}', "");
-    Expect(0, 12447, '\P{Is_Block: HIRAGANA}', "");
-    Expect(1, 12447, '\P{^Is_Block: HIRAGANA}', "");
-    Expect(0, 12448, '\p{Is_Block: HIRAGANA}', "");
-    Expect(1, 12448, '\p{^Is_Block: HIRAGANA}', "");
-    Expect(1, 12448, '\P{Is_Block: HIRAGANA}', "");
-    Expect(0, 12448, '\P{^Is_Block: HIRAGANA}', "");
-    Error('\p{Is_Blk=-/a/Hiragana}');
-    Error('\P{Is_Blk=-/a/Hiragana}');
-    Expect(1, 12447, '\p{Is_Blk=hiragana}', "");
-    Expect(0, 12447, '\p{^Is_Blk=hiragana}', "");
-    Expect(0, 12447, '\P{Is_Blk=hiragana}', "");
-    Expect(1, 12447, '\P{^Is_Blk=hiragana}', "");
-    Expect(0, 12448, '\p{Is_Blk=hiragana}', "");
-    Expect(1, 12448, '\p{^Is_Blk=hiragana}', "");
-    Expect(1, 12448, '\P{Is_Blk=hiragana}', "");
-    Expect(0, 12448, '\P{^Is_Blk=hiragana}', "");
-    Expect(1, 12447, '\p{Is_Blk=- Hiragana}', "");
-    Expect(0, 12447, '\p{^Is_Blk=- Hiragana}', "");
-    Expect(0, 12447, '\P{Is_Blk=- Hiragana}', "");
-    Expect(1, 12447, '\P{^Is_Blk=- Hiragana}', "");
-    Expect(0, 12448, '\p{Is_Blk=- Hiragana}', "");
-    Expect(1, 12448, '\p{^Is_Blk=- Hiragana}', "");
-    Expect(1, 12448, '\P{Is_Blk=- Hiragana}', "");
-    Expect(0, 12448, '\P{^Is_Blk=- Hiragana}', "");
-    Error('\p{Block=_-IDEOGRAPHIC_DESCRIPTION_Characters:=}');
-    Error('\P{Block=_-IDEOGRAPHIC_DESCRIPTION_Characters:=}');
+    Expect(1, 12447, '\p{Is_Block=-hiragana}', "");
+    Expect(0, 12447, '\p{^Is_Block=-hiragana}', "");
+    Expect(0, 12447, '\P{Is_Block=-hiragana}', "");
+    Expect(1, 12447, '\P{^Is_Block=-hiragana}', "");
+    Expect(0, 12448, '\p{Is_Block=-hiragana}', "");
+    Expect(1, 12448, '\p{^Is_Block=-hiragana}', "");
+    Expect(1, 12448, '\P{Is_Block=-hiragana}', "");
+    Expect(0, 12448, '\P{^Is_Block=-hiragana}', "");
+    Error('\p{Is_Blk=/a/- Hiragana}');
+    Error('\P{Is_Blk=/a/- Hiragana}');
+    Expect(1, 12447, '\p{Is_Blk:hiragana}', "");
+    Expect(0, 12447, '\p{^Is_Blk:hiragana}', "");
+    Expect(0, 12447, '\P{Is_Blk:hiragana}', "");
+    Expect(1, 12447, '\P{^Is_Blk:hiragana}', "");
+    Expect(0, 12448, '\p{Is_Blk:hiragana}', "");
+    Expect(1, 12448, '\p{^Is_Blk:hiragana}', "");
+    Expect(1, 12448, '\P{Is_Blk:hiragana}', "");
+    Expect(0, 12448, '\P{^Is_Blk:hiragana}', "");
+    Expect(1, 12447, '\p{Is_Blk=-_Hiragana}', "");
+    Expect(0, 12447, '\p{^Is_Blk=-_Hiragana}', "");
+    Expect(0, 12447, '\P{Is_Blk=-_Hiragana}', "");
+    Expect(1, 12447, '\P{^Is_Blk=-_Hiragana}', "");
+    Expect(0, 12448, '\p{Is_Blk=-_Hiragana}', "");
+    Expect(1, 12448, '\p{^Is_Blk=-_Hiragana}', "");
+    Expect(1, 12448, '\P{Is_Blk=-_Hiragana}', "");
+    Expect(0, 12448, '\P{^Is_Blk=-_Hiragana}', "");
+    Error('\p{Block=--ideographic_description_Characters:=}');
+    Error('\P{Block=--ideographic_description_Characters:=}');
     Expect(1, 12287, '\p{Block=:\AIdeographic_Description_Characters\z:}', "");;
     Expect(0, 12288, '\p{Block=:\AIdeographic_Description_Characters\z:}', "");;
-    Expect(1, 12287, '\p{Block:	ideographicdescriptioncharacters}', "");
-    Expect(0, 12287, '\p{^Block:	ideographicdescriptioncharacters}', "");
-    Expect(0, 12287, '\P{Block:	ideographicdescriptioncharacters}', "");
-    Expect(1, 12287, '\P{^Block:	ideographicdescriptioncharacters}', "");
-    Expect(0, 12288, '\p{Block:	ideographicdescriptioncharacters}', "");
-    Expect(1, 12288, '\p{^Block:	ideographicdescriptioncharacters}', "");
-    Expect(1, 12288, '\P{Block:	ideographicdescriptioncharacters}', "");
-    Expect(0, 12288, '\P{^Block:	ideographicdescriptioncharacters}', "");
+    Expect(1, 12287, '\p{Block=ideographicdescriptioncharacters}', "");
+    Expect(0, 12287, '\p{^Block=ideographicdescriptioncharacters}', "");
+    Expect(0, 12287, '\P{Block=ideographicdescriptioncharacters}', "");
+    Expect(1, 12287, '\P{^Block=ideographicdescriptioncharacters}', "");
+    Expect(0, 12288, '\p{Block=ideographicdescriptioncharacters}', "");
+    Expect(1, 12288, '\p{^Block=ideographicdescriptioncharacters}', "");
+    Expect(1, 12288, '\P{Block=ideographicdescriptioncharacters}', "");
+    Expect(0, 12288, '\P{^Block=ideographicdescriptioncharacters}', "");
     Expect(1, 12287, '\p{Block=:\Aideographicdescriptioncharacters\z:}', "");;
     Expect(0, 12288, '\p{Block=:\Aideographicdescriptioncharacters\z:}', "");;
-    Expect(1, 12287, '\p{Block=	_ideographic_Description_Characters}', "");
-    Expect(0, 12287, '\p{^Block=	_ideographic_Description_Characters}', "");
-    Expect(0, 12287, '\P{Block=	_ideographic_Description_Characters}', "");
-    Expect(1, 12287, '\P{^Block=	_ideographic_Description_Characters}', "");
-    Expect(0, 12288, '\p{Block=	_ideographic_Description_Characters}', "");
-    Expect(1, 12288, '\p{^Block=	_ideographic_Description_Characters}', "");
-    Expect(1, 12288, '\P{Block=	_ideographic_Description_Characters}', "");
-    Expect(0, 12288, '\P{^Block=	_ideographic_Description_Characters}', "");
-    Error('\p{Blk=_IDC:=}');
-    Error('\P{Blk=_IDC:=}');
+    Expect(1, 12287, '\p{Block:   Ideographic_description_Characters}', "");
+    Expect(0, 12287, '\p{^Block:   Ideographic_description_Characters}', "");
+    Expect(0, 12287, '\P{Block:   Ideographic_description_Characters}', "");
+    Expect(1, 12287, '\P{^Block:   Ideographic_description_Characters}', "");
+    Expect(0, 12288, '\p{Block:   Ideographic_description_Characters}', "");
+    Expect(1, 12288, '\p{^Block:   Ideographic_description_Characters}', "");
+    Expect(1, 12288, '\P{Block:   Ideographic_description_Characters}', "");
+    Expect(0, 12288, '\P{^Block:   Ideographic_description_Characters}', "");
+    Error('\p{Blk=-	IDC/a/}');
+    Error('\P{Blk=-	IDC/a/}');
     Expect(1, 12287, '\p{Blk=:\AIDC\z:}', "");;
     Expect(0, 12288, '\p{Blk=:\AIDC\z:}', "");;
     Expect(1, 12287, '\p{Blk=idc}', "");
@@ -13738,52 +14082,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12288, '\P{^Blk=idc}', "");
     Expect(1, 12287, '\p{Blk=:\Aidc\z:}', "");;
     Expect(0, 12288, '\p{Blk=:\Aidc\z:}', "");;
-    Expect(1, 12287, '\p{Blk= _idc}', "");
-    Expect(0, 12287, '\p{^Blk= _idc}', "");
-    Expect(0, 12287, '\P{Blk= _idc}', "");
-    Expect(1, 12287, '\P{^Blk= _idc}', "");
-    Expect(0, 12288, '\p{Blk= _idc}', "");
-    Expect(1, 12288, '\p{^Blk= _idc}', "");
-    Expect(1, 12288, '\P{Blk= _idc}', "");
-    Expect(0, 12288, '\P{^Blk= _idc}', "");
-    Error('\p{Is_Block=_Ideographic_Description_CHARACTERS/a/}');
-    Error('\P{Is_Block=_Ideographic_Description_CHARACTERS/a/}');
-    Expect(1, 12287, '\p{Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(0, 12287, '\p{^Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(0, 12287, '\P{Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(1, 12287, '\P{^Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(0, 12288, '\p{Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(1, 12288, '\p{^Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(1, 12288, '\P{Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(0, 12288, '\P{^Is_Block=ideographicdescriptioncharacters}', "");
-    Expect(1, 12287, '\p{Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12287, '\p{^Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12287, '\P{Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12287, '\P{^Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12288, '\p{Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12288, '\p{^Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12288, '\P{Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12288, '\P{^Is_Block= -Ideographic_DESCRIPTION_characters}', "");
-    Error('\p{Is_Blk=	IDC:=}');
-    Error('\P{Is_Blk=	IDC:=}');
-    Expect(1, 12287, '\p{Is_Blk=idc}', "");
-    Expect(0, 12287, '\p{^Is_Blk=idc}', "");
-    Expect(0, 12287, '\P{Is_Blk=idc}', "");
-    Expect(1, 12287, '\P{^Is_Blk=idc}', "");
-    Expect(0, 12288, '\p{Is_Blk=idc}', "");
-    Expect(1, 12288, '\p{^Is_Blk=idc}', "");
-    Expect(1, 12288, '\P{Is_Blk=idc}', "");
-    Expect(0, 12288, '\P{^Is_Blk=idc}', "");
-    Expect(1, 12287, '\p{Is_Blk=__idc}', "");
-    Expect(0, 12287, '\p{^Is_Blk=__idc}', "");
-    Expect(0, 12287, '\P{Is_Blk=__idc}', "");
-    Expect(1, 12287, '\P{^Is_Blk=__idc}', "");
-    Expect(0, 12288, '\p{Is_Blk=__idc}', "");
-    Expect(1, 12288, '\p{^Is_Blk=__idc}', "");
-    Expect(1, 12288, '\P{Is_Blk=__idc}', "");
-    Expect(0, 12288, '\P{^Is_Blk=__idc}', "");
-    Error('\p{Block=-	Ideographic_SYMBOLS_AND_Punctuation:=}');
-    Error('\P{Block=-	Ideographic_SYMBOLS_AND_Punctuation:=}');
+    Expect(1, 12287, '\p{Blk=	idc}', "");
+    Expect(0, 12287, '\p{^Blk=	idc}', "");
+    Expect(0, 12287, '\P{Blk=	idc}', "");
+    Expect(1, 12287, '\P{^Blk=	idc}', "");
+    Expect(0, 12288, '\p{Blk=	idc}', "");
+    Expect(1, 12288, '\p{^Blk=	idc}', "");
+    Expect(1, 12288, '\P{Blk=	idc}', "");
+    Expect(0, 12288, '\P{^Blk=	idc}', "");
+    Error('\p{Is_Block=_:=IDEOGRAPHIC_Description_characters}');
+    Error('\P{Is_Block=_:=IDEOGRAPHIC_Description_characters}');
+    Expect(1, 12287, '\p{Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(0, 12287, '\p{^Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(0, 12287, '\P{Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(1, 12287, '\P{^Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(0, 12288, '\p{Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(1, 12288, '\p{^Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(1, 12288, '\P{Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(0, 12288, '\P{^Is_Block: ideographicdescriptioncharacters}', "");
+    Expect(1, 12287, '\p{Is_Block=		ideographic_Description_Characters}', "");
+    Expect(0, 12287, '\p{^Is_Block=		ideographic_Description_Characters}', "");
+    Expect(0, 12287, '\P{Is_Block=		ideographic_Description_Characters}', "");
+    Expect(1, 12287, '\P{^Is_Block=		ideographic_Description_Characters}', "");
+    Expect(0, 12288, '\p{Is_Block=		ideographic_Description_Characters}', "");
+    Expect(1, 12288, '\p{^Is_Block=		ideographic_Description_Characters}', "");
+    Expect(1, 12288, '\P{Is_Block=		ideographic_Description_Characters}', "");
+    Expect(0, 12288, '\P{^Is_Block=		ideographic_Description_Characters}', "");
+    Error('\p{Is_Blk=	_idc/a/}');
+    Error('\P{Is_Blk=	_idc/a/}');
+    Expect(1, 12287, '\p{Is_Blk:	idc}', "");
+    Expect(0, 12287, '\p{^Is_Blk:	idc}', "");
+    Expect(0, 12287, '\P{Is_Blk:	idc}', "");
+    Expect(1, 12287, '\P{^Is_Blk:	idc}', "");
+    Expect(0, 12288, '\p{Is_Blk:	idc}', "");
+    Expect(1, 12288, '\p{^Is_Blk:	idc}', "");
+    Expect(1, 12288, '\P{Is_Blk:	idc}', "");
+    Expect(0, 12288, '\P{^Is_Blk:	idc}', "");
+    Expect(1, 12287, '\p{Is_Blk= _IDC}', "");
+    Expect(0, 12287, '\p{^Is_Blk= _IDC}', "");
+    Expect(0, 12287, '\P{Is_Blk= _IDC}', "");
+    Expect(1, 12287, '\P{^Is_Blk= _IDC}', "");
+    Expect(0, 12288, '\p{Is_Blk= _IDC}', "");
+    Expect(1, 12288, '\p{^Is_Blk= _IDC}', "");
+    Expect(1, 12288, '\P{Is_Blk= _IDC}', "");
+    Expect(0, 12288, '\P{^Is_Blk= _IDC}', "");
+    Error('\p{Block=- IDEOGRAPHIC_symbols_And_punctuation:=}');
+    Error('\P{Block=- IDEOGRAPHIC_symbols_And_punctuation:=}');
     Expect(1, 94207, '\p{Block=:\AIdeographic_Symbols_And_Punctuation\z:}', "");;
     Expect(0, 94208, '\p{Block=:\AIdeographic_Symbols_And_Punctuation\z:}', "");;
     Expect(1, 94207, '\p{Block=ideographicsymbolsandpunctuation}', "");
@@ -13796,38 +14140,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 94208, '\P{^Block=ideographicsymbolsandpunctuation}', "");
     Expect(1, 94207, '\p{Block=:\Aideographicsymbolsandpunctuation\z:}', "");;
     Expect(0, 94208, '\p{Block=:\Aideographicsymbolsandpunctuation\z:}', "");;
-    Expect(1, 94207, '\p{Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(0, 94207, '\p{^Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(0, 94207, '\P{Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(1, 94207, '\P{^Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(0, 94208, '\p{Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(1, 94208, '\p{^Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(1, 94208, '\P{Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Expect(0, 94208, '\P{^Block=-ideographic_Symbols_AND_Punctuation}', "");
-    Error('\p{Blk= /a/Ideographic_Symbols}');
-    Error('\P{Blk= /a/Ideographic_Symbols}');
+    Expect(1, 94207, '\p{Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(0, 94207, '\p{^Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(0, 94207, '\P{Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(1, 94207, '\P{^Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(0, 94208, '\p{Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(1, 94208, '\p{^Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(1, 94208, '\P{Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Expect(0, 94208, '\P{^Block=-	IDEOGRAPHIC_SYMBOLS_And_PUNCTUATION}', "");
+    Error('\p{Blk=:=	-Ideographic_Symbols}');
+    Error('\P{Blk=:=	-Ideographic_Symbols}');
     Expect(1, 94207, '\p{Blk=:\AIdeographic_Symbols\z:}', "");;
     Expect(0, 94208, '\p{Blk=:\AIdeographic_Symbols\z:}', "");;
-    Expect(1, 94207, '\p{Blk:	ideographicsymbols}', "");
-    Expect(0, 94207, '\p{^Blk:	ideographicsymbols}', "");
-    Expect(0, 94207, '\P{Blk:	ideographicsymbols}', "");
-    Expect(1, 94207, '\P{^Blk:	ideographicsymbols}', "");
-    Expect(0, 94208, '\p{Blk:	ideographicsymbols}', "");
-    Expect(1, 94208, '\p{^Blk:	ideographicsymbols}', "");
-    Expect(1, 94208, '\P{Blk:	ideographicsymbols}', "");
-    Expect(0, 94208, '\P{^Blk:	ideographicsymbols}', "");
+    Expect(1, 94207, '\p{Blk=ideographicsymbols}', "");
+    Expect(0, 94207, '\p{^Blk=ideographicsymbols}', "");
+    Expect(0, 94207, '\P{Blk=ideographicsymbols}', "");
+    Expect(1, 94207, '\P{^Blk=ideographicsymbols}', "");
+    Expect(0, 94208, '\p{Blk=ideographicsymbols}', "");
+    Expect(1, 94208, '\p{^Blk=ideographicsymbols}', "");
+    Expect(1, 94208, '\P{Blk=ideographicsymbols}', "");
+    Expect(0, 94208, '\P{^Blk=ideographicsymbols}', "");
     Expect(1, 94207, '\p{Blk=:\Aideographicsymbols\z:}', "");;
     Expect(0, 94208, '\p{Blk=:\Aideographicsymbols\z:}', "");;
-    Expect(1, 94207, '\p{Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94207, '\p{^Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94207, '\P{Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(1, 94207, '\P{^Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94208, '\p{Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(1, 94208, '\p{^Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(1, 94208, '\P{Blk=	IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94208, '\P{^Blk=	IDEOGRAPHIC_Symbols}', "");
-    Error('\p{Is_Block=/a/	_IDEOGRAPHIC_Symbols_AND_punctuation}');
-    Error('\P{Is_Block=/a/	_IDEOGRAPHIC_Symbols_AND_punctuation}');
+    Expect(1, 94207, '\p{Blk= -Ideographic_Symbols}', "");
+    Expect(0, 94207, '\p{^Blk= -Ideographic_Symbols}', "");
+    Expect(0, 94207, '\P{Blk= -Ideographic_Symbols}', "");
+    Expect(1, 94207, '\P{^Blk= -Ideographic_Symbols}', "");
+    Expect(0, 94208, '\p{Blk= -Ideographic_Symbols}', "");
+    Expect(1, 94208, '\p{^Blk= -Ideographic_Symbols}', "");
+    Expect(1, 94208, '\P{Blk= -Ideographic_Symbols}', "");
+    Expect(0, 94208, '\P{^Blk= -Ideographic_Symbols}', "");
+    Error('\p{Is_Block:   -:=ideographic_Symbols_And_Punctuation}');
+    Error('\P{Is_Block:   -:=ideographic_Symbols_And_Punctuation}');
     Expect(1, 94207, '\p{Is_Block=ideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\p{^Is_Block=ideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\P{Is_Block=ideographicsymbolsandpunctuation}', "");
@@ -13836,16 +14180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 94208, '\p{^Is_Block=ideographicsymbolsandpunctuation}', "");
     Expect(1, 94208, '\P{Is_Block=ideographicsymbolsandpunctuation}', "");
     Expect(0, 94208, '\P{^Is_Block=ideographicsymbolsandpunctuation}', "");
-    Expect(1, 94207, '\p{Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94207, '\p{^Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94207, '\P{Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(1, 94207, '\P{^Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94208, '\p{Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(1, 94208, '\p{^Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(1, 94208, '\P{Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94208, '\P{^Is_Block= -ideographic_symbols_And_Punctuation}', "");
-    Error('\p{Is_Blk=-	IDEOGRAPHIC_SYMBOLS:=}');
-    Error('\P{Is_Blk=-	IDEOGRAPHIC_SYMBOLS:=}');
+    Expect(1, 94207, '\p{Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(0, 94207, '\p{^Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(0, 94207, '\P{Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(1, 94207, '\P{^Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(0, 94208, '\p{Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(1, 94208, '\p{^Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(1, 94208, '\P{Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Expect(0, 94208, '\P{^Is_Block=_	ideographic_Symbols_AND_PUNCTUATION}', "");
+    Error('\p{Is_Blk= :=Ideographic_Symbols}');
+    Error('\P{Is_Blk= :=Ideographic_Symbols}');
     Expect(1, 94207, '\p{Is_Blk=ideographicsymbols}', "");
     Expect(0, 94207, '\p{^Is_Blk=ideographicsymbols}', "");
     Expect(0, 94207, '\P{Is_Blk=ideographicsymbols}', "");
@@ -13854,16 +14198,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 94208, '\p{^Is_Blk=ideographicsymbols}', "");
     Expect(1, 94208, '\P{Is_Blk=ideographicsymbols}', "");
     Expect(0, 94208, '\P{^Is_Blk=ideographicsymbols}', "");
-    Expect(1, 94207, '\p{Is_Blk=_-Ideographic_symbols}', "");
-    Expect(0, 94207, '\p{^Is_Blk=_-Ideographic_symbols}', "");
-    Expect(0, 94207, '\P{Is_Blk=_-Ideographic_symbols}', "");
-    Expect(1, 94207, '\P{^Is_Blk=_-Ideographic_symbols}', "");
-    Expect(0, 94208, '\p{Is_Blk=_-Ideographic_symbols}', "");
-    Expect(1, 94208, '\p{^Is_Blk=_-Ideographic_symbols}', "");
-    Expect(1, 94208, '\P{Is_Blk=_-Ideographic_symbols}', "");
-    Expect(0, 94208, '\P{^Is_Blk=_-Ideographic_symbols}', "");
-    Error('\p{Block=IMPERIAL_ARAMAIC:=}');
-    Error('\P{Block=IMPERIAL_ARAMAIC:=}');
+    Expect(1, 94207, '\p{Is_Blk=_ ideographic_Symbols}', "");
+    Expect(0, 94207, '\p{^Is_Blk=_ ideographic_Symbols}', "");
+    Expect(0, 94207, '\P{Is_Blk=_ ideographic_Symbols}', "");
+    Expect(1, 94207, '\P{^Is_Blk=_ ideographic_Symbols}', "");
+    Expect(0, 94208, '\p{Is_Blk=_ ideographic_Symbols}', "");
+    Expect(1, 94208, '\p{^Is_Blk=_ ideographic_Symbols}', "");
+    Expect(1, 94208, '\P{Is_Blk=_ ideographic_Symbols}', "");
+    Expect(0, 94208, '\P{^Is_Blk=_ ideographic_Symbols}', "");
+    Error('\p{Block=/a/--Imperial_ARAMAIC}');
+    Error('\P{Block=/a/--Imperial_ARAMAIC}');
     Expect(1, 67679, '\p{Block=:\AImperial_Aramaic\z:}', "");;
     Expect(0, 67680, '\p{Block=:\AImperial_Aramaic\z:}', "");;
     Expect(1, 67679, '\p{Block=imperialaramaic}', "");
@@ -13876,16 +14220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67680, '\P{^Block=imperialaramaic}', "");
     Expect(1, 67679, '\p{Block=:\Aimperialaramaic\z:}', "");;
     Expect(0, 67680, '\p{Block=:\Aimperialaramaic\z:}', "");;
-    Expect(1, 67679, '\p{Block= Imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\p{^Block= Imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\P{Block= Imperial_ARAMAIC}', "");
-    Expect(1, 67679, '\P{^Block= Imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\p{Block= Imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\p{^Block= Imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\P{Block= Imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\P{^Block= Imperial_ARAMAIC}', "");
-    Error('\p{Blk= _imperial_aramaic/a/}');
-    Error('\P{Blk= _imperial_aramaic/a/}');
+    Expect(1, 67679, '\p{Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67679, '\p{^Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67679, '\P{Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(1, 67679, '\P{^Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67680, '\p{Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(1, 67680, '\p{^Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(1, 67680, '\P{Block:	IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67680, '\P{^Block:	IMPERIAL_ARAMAIC}', "");
+    Error('\p{Blk=	/a/Imperial_Aramaic}');
+    Error('\P{Blk=	/a/Imperial_Aramaic}');
     Expect(1, 67679, '\p{Blk=:\AImperial_Aramaic\z:}', "");;
     Expect(0, 67680, '\p{Blk=:\AImperial_Aramaic\z:}', "");;
     Expect(1, 67679, '\p{Blk=imperialaramaic}', "");
@@ -13898,16 +14242,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67680, '\P{^Blk=imperialaramaic}', "");
     Expect(1, 67679, '\p{Blk=:\Aimperialaramaic\z:}', "");;
     Expect(0, 67680, '\p{Blk=:\Aimperialaramaic\z:}', "");;
-    Expect(1, 67679, '\p{Blk= _IMPERIAL_aramaic}', "");
-    Expect(0, 67679, '\p{^Blk= _IMPERIAL_aramaic}', "");
-    Expect(0, 67679, '\P{Blk= _IMPERIAL_aramaic}', "");
-    Expect(1, 67679, '\P{^Blk= _IMPERIAL_aramaic}', "");
-    Expect(0, 67680, '\p{Blk= _IMPERIAL_aramaic}', "");
-    Expect(1, 67680, '\p{^Blk= _IMPERIAL_aramaic}', "");
-    Expect(1, 67680, '\P{Blk= _IMPERIAL_aramaic}', "");
-    Expect(0, 67680, '\P{^Blk= _IMPERIAL_aramaic}', "");
-    Error('\p{Is_Block=imperial_ARAMAIC:=}');
-    Error('\P{Is_Block=imperial_ARAMAIC:=}');
+    Expect(1, 67679, '\p{Blk:-	Imperial_aramaic}', "");
+    Expect(0, 67679, '\p{^Blk:-	Imperial_aramaic}', "");
+    Expect(0, 67679, '\P{Blk:-	Imperial_aramaic}', "");
+    Expect(1, 67679, '\P{^Blk:-	Imperial_aramaic}', "");
+    Expect(0, 67680, '\p{Blk:-	Imperial_aramaic}', "");
+    Expect(1, 67680, '\p{^Blk:-	Imperial_aramaic}', "");
+    Expect(1, 67680, '\P{Blk:-	Imperial_aramaic}', "");
+    Expect(0, 67680, '\P{^Blk:-	Imperial_aramaic}', "");
+    Error('\p{Is_Block::=imperial_aramaic}');
+    Error('\P{Is_Block::=imperial_aramaic}');
     Expect(1, 67679, '\p{Is_Block=imperialaramaic}', "");
     Expect(0, 67679, '\p{^Is_Block=imperialaramaic}', "");
     Expect(0, 67679, '\P{Is_Block=imperialaramaic}', "");
@@ -13916,16 +14260,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67680, '\p{^Is_Block=imperialaramaic}', "");
     Expect(1, 67680, '\P{Is_Block=imperialaramaic}', "");
     Expect(0, 67680, '\P{^Is_Block=imperialaramaic}', "");
-    Expect(1, 67679, '\p{Is_Block=	imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\p{^Is_Block=	imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\P{Is_Block=	imperial_ARAMAIC}', "");
-    Expect(1, 67679, '\P{^Is_Block=	imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\p{Is_Block=	imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\p{^Is_Block=	imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\P{Is_Block=	imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\P{^Is_Block=	imperial_ARAMAIC}', "");
-    Error('\p{Is_Blk=/a/-imperial_aramaic}');
-    Error('\P{Is_Blk=/a/-imperial_aramaic}');
+    Expect(1, 67679, '\p{Is_Block= 	Imperial_Aramaic}', "");
+    Expect(0, 67679, '\p{^Is_Block= 	Imperial_Aramaic}', "");
+    Expect(0, 67679, '\P{Is_Block= 	Imperial_Aramaic}', "");
+    Expect(1, 67679, '\P{^Is_Block= 	Imperial_Aramaic}', "");
+    Expect(0, 67680, '\p{Is_Block= 	Imperial_Aramaic}', "");
+    Expect(1, 67680, '\p{^Is_Block= 	Imperial_Aramaic}', "");
+    Expect(1, 67680, '\P{Is_Block= 	Imperial_Aramaic}', "");
+    Expect(0, 67680, '\P{^Is_Block= 	Imperial_Aramaic}', "");
+    Error('\p{Is_Blk=- Imperial_ARAMAIC:=}');
+    Error('\P{Is_Blk=- Imperial_ARAMAIC:=}');
     Expect(1, 67679, '\p{Is_Blk=imperialaramaic}', "");
     Expect(0, 67679, '\p{^Is_Blk=imperialaramaic}', "");
     Expect(0, 67679, '\P{Is_Blk=imperialaramaic}', "");
@@ -13934,16 +14278,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67680, '\p{^Is_Blk=imperialaramaic}', "");
     Expect(1, 67680, '\P{Is_Blk=imperialaramaic}', "");
     Expect(0, 67680, '\P{^Is_Blk=imperialaramaic}', "");
-    Expect(1, 67679, '\p{Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\p{^Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\P{Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(1, 67679, '\P{^Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\p{Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\p{^Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\P{Is_Blk=Imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\P{^Is_Blk=Imperial_ARAMAIC}', "");
-    Error('\p{Block=-/a/common_INDIC_number_forms}');
-    Error('\P{Block=-/a/common_INDIC_number_forms}');
+    Expect(1, 67679, '\p{Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(0, 67679, '\p{^Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(0, 67679, '\P{Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(1, 67679, '\P{^Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(0, 67680, '\p{Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(1, 67680, '\p{^Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(1, 67680, '\P{Is_Blk=_-imperial_ARAMAIC}', "");
+    Expect(0, 67680, '\P{^Is_Blk=_-imperial_ARAMAIC}', "");
+    Error('\p{Block=/a/ Common_Indic_NUMBER_Forms}');
+    Error('\P{Block=/a/ Common_Indic_NUMBER_Forms}');
     Expect(1, 43071, '\p{Block=:\ACommon_Indic_Number_Forms\z:}', "");;
     Expect(0, 43072, '\p{Block=:\ACommon_Indic_Number_Forms\z:}', "");;
     Expect(1, 43071, '\p{Block=commonindicnumberforms}', "");
@@ -13956,16 +14300,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43072, '\P{^Block=commonindicnumberforms}', "");
     Expect(1, 43071, '\p{Block=:\Acommonindicnumberforms\z:}', "");;
     Expect(0, 43072, '\p{Block=:\Acommonindicnumberforms\z:}', "");;
-    Expect(1, 43071, '\p{Block= common_Indic_Number_FORMS}', "");
-    Expect(0, 43071, '\p{^Block= common_Indic_Number_FORMS}', "");
-    Expect(0, 43071, '\P{Block= common_Indic_Number_FORMS}', "");
-    Expect(1, 43071, '\P{^Block= common_Indic_Number_FORMS}', "");
-    Expect(0, 43072, '\p{Block= common_Indic_Number_FORMS}', "");
-    Expect(1, 43072, '\p{^Block= common_Indic_Number_FORMS}', "");
-    Expect(1, 43072, '\P{Block= common_Indic_Number_FORMS}', "");
-    Expect(0, 43072, '\P{^Block= common_Indic_Number_FORMS}', "");
-    Error('\p{Blk=	:=INDIC_number_Forms}');
-    Error('\P{Blk=	:=INDIC_number_Forms}');
+    Expect(1, 43071, '\p{Block=		Common_indic_Number_Forms}', "");
+    Expect(0, 43071, '\p{^Block=		Common_indic_Number_Forms}', "");
+    Expect(0, 43071, '\P{Block=		Common_indic_Number_Forms}', "");
+    Expect(1, 43071, '\P{^Block=		Common_indic_Number_Forms}', "");
+    Expect(0, 43072, '\p{Block=		Common_indic_Number_Forms}', "");
+    Expect(1, 43072, '\p{^Block=		Common_indic_Number_Forms}', "");
+    Expect(1, 43072, '\P{Block=		Common_indic_Number_Forms}', "");
+    Expect(0, 43072, '\P{^Block=		Common_indic_Number_Forms}', "");
+    Error('\p{Blk=_ Indic_number_Forms:=}');
+    Error('\P{Blk=_ Indic_number_Forms:=}');
     Expect(1, 43071, '\p{Blk=:\AIndic_Number_Forms\z:}', "");;
     Expect(0, 43072, '\p{Blk=:\AIndic_Number_Forms\z:}', "");;
     Expect(1, 43071, '\p{Blk=indicnumberforms}', "");
@@ -13978,52 +14322,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43072, '\P{^Blk=indicnumberforms}', "");
     Expect(1, 43071, '\p{Blk=:\Aindicnumberforms\z:}', "");;
     Expect(0, 43072, '\p{Blk=:\Aindicnumberforms\z:}', "");;
-    Expect(1, 43071, '\p{Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(0, 43071, '\p{^Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(0, 43071, '\P{Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(1, 43071, '\P{^Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(0, 43072, '\p{Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(1, 43072, '\p{^Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(1, 43072, '\P{Blk=_	INDIC_NUMBER_forms}', "");
-    Expect(0, 43072, '\P{^Blk=_	INDIC_NUMBER_forms}', "");
-    Error('\p{Is_Block=/a/COMMON_Indic_NUMBER_Forms}');
-    Error('\P{Is_Block=/a/COMMON_Indic_NUMBER_Forms}');
-    Expect(1, 43071, '\p{Is_Block: commonindicnumberforms}', "");
-    Expect(0, 43071, '\p{^Is_Block: commonindicnumberforms}', "");
-    Expect(0, 43071, '\P{Is_Block: commonindicnumberforms}', "");
-    Expect(1, 43071, '\P{^Is_Block: commonindicnumberforms}', "");
-    Expect(0, 43072, '\p{Is_Block: commonindicnumberforms}', "");
-    Expect(1, 43072, '\p{^Is_Block: commonindicnumberforms}', "");
-    Expect(1, 43072, '\P{Is_Block: commonindicnumberforms}', "");
-    Expect(0, 43072, '\P{^Is_Block: commonindicnumberforms}', "");
-    Expect(1, 43071, '\p{Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(0, 43071, '\p{^Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(0, 43071, '\P{Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(1, 43071, '\P{^Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(0, 43072, '\p{Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(1, 43072, '\p{^Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(1, 43072, '\P{Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Expect(0, 43072, '\P{^Is_Block:   -Common_Indic_NUMBER_Forms}', "");
-    Error('\p{Is_Blk=/a/	 INDIC_NUMBER_FORMS}');
-    Error('\P{Is_Blk=/a/	 INDIC_NUMBER_FORMS}');
-    Expect(1, 43071, '\p{Is_Blk:   indicnumberforms}', "");
-    Expect(0, 43071, '\p{^Is_Blk:   indicnumberforms}', "");
-    Expect(0, 43071, '\P{Is_Blk:   indicnumberforms}', "");
-    Expect(1, 43071, '\P{^Is_Blk:   indicnumberforms}', "");
-    Expect(0, 43072, '\p{Is_Blk:   indicnumberforms}', "");
-    Expect(1, 43072, '\p{^Is_Blk:   indicnumberforms}', "");
-    Expect(1, 43072, '\P{Is_Blk:   indicnumberforms}', "");
-    Expect(0, 43072, '\P{^Is_Blk:   indicnumberforms}', "");
-    Expect(1, 43071, '\p{Is_Blk=_Indic_Number_Forms}', "");
-    Expect(0, 43071, '\p{^Is_Blk=_Indic_Number_Forms}', "");
-    Expect(0, 43071, '\P{Is_Blk=_Indic_Number_Forms}', "");
-    Expect(1, 43071, '\P{^Is_Blk=_Indic_Number_Forms}', "");
-    Expect(0, 43072, '\p{Is_Blk=_Indic_Number_Forms}', "");
-    Expect(1, 43072, '\p{^Is_Blk=_Indic_Number_Forms}', "");
-    Expect(1, 43072, '\P{Is_Blk=_Indic_Number_Forms}', "");
-    Expect(0, 43072, '\P{^Is_Blk=_Indic_Number_Forms}', "");
-    Error('\p{Block=_:=Indic_Siyaq_Numbers}');
-    Error('\P{Block=_:=Indic_Siyaq_Numbers}');
+    Expect(1, 43071, '\p{Blk=_ INDIC_number_Forms}', "");
+    Expect(0, 43071, '\p{^Blk=_ INDIC_number_Forms}', "");
+    Expect(0, 43071, '\P{Blk=_ INDIC_number_Forms}', "");
+    Expect(1, 43071, '\P{^Blk=_ INDIC_number_Forms}', "");
+    Expect(0, 43072, '\p{Blk=_ INDIC_number_Forms}', "");
+    Expect(1, 43072, '\p{^Blk=_ INDIC_number_Forms}', "");
+    Expect(1, 43072, '\P{Blk=_ INDIC_number_Forms}', "");
+    Expect(0, 43072, '\P{^Blk=_ INDIC_number_Forms}', "");
+    Error('\p{Is_Block=_/a/Common_indic_NUMBER_Forms}');
+    Error('\P{Is_Block=_/a/Common_indic_NUMBER_Forms}');
+    Expect(1, 43071, '\p{Is_Block=commonindicnumberforms}', "");
+    Expect(0, 43071, '\p{^Is_Block=commonindicnumberforms}', "");
+    Expect(0, 43071, '\P{Is_Block=commonindicnumberforms}', "");
+    Expect(1, 43071, '\P{^Is_Block=commonindicnumberforms}', "");
+    Expect(0, 43072, '\p{Is_Block=commonindicnumberforms}', "");
+    Expect(1, 43072, '\p{^Is_Block=commonindicnumberforms}', "");
+    Expect(1, 43072, '\P{Is_Block=commonindicnumberforms}', "");
+    Expect(0, 43072, '\P{^Is_Block=commonindicnumberforms}', "");
+    Expect(1, 43071, '\p{Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(0, 43071, '\p{^Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(0, 43071, '\P{Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(1, 43071, '\P{^Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(0, 43072, '\p{Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(1, 43072, '\p{^Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(1, 43072, '\P{Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Expect(0, 43072, '\P{^Is_Block=common_INDIC_NUMBER_Forms}', "");
+    Error('\p{Is_Blk=	Indic_number_forms:=}');
+    Error('\P{Is_Blk=	Indic_number_forms:=}');
+    Expect(1, 43071, '\p{Is_Blk=indicnumberforms}', "");
+    Expect(0, 43071, '\p{^Is_Blk=indicnumberforms}', "");
+    Expect(0, 43071, '\P{Is_Blk=indicnumberforms}', "");
+    Expect(1, 43071, '\P{^Is_Blk=indicnumberforms}', "");
+    Expect(0, 43072, '\p{Is_Blk=indicnumberforms}', "");
+    Expect(1, 43072, '\p{^Is_Blk=indicnumberforms}', "");
+    Expect(1, 43072, '\P{Is_Blk=indicnumberforms}', "");
+    Expect(0, 43072, '\P{^Is_Blk=indicnumberforms}', "");
+    Expect(1, 43071, '\p{Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(0, 43071, '\p{^Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(0, 43071, '\P{Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(1, 43071, '\P{^Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(0, 43072, '\p{Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(1, 43072, '\p{^Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(1, 43072, '\P{Is_Blk=-INDIC_Number_Forms}', "");
+    Expect(0, 43072, '\P{^Is_Blk=-INDIC_Number_Forms}', "");
+    Error('\p{Block= -INDIC_siyaq_NUMBERS/a/}');
+    Error('\P{Block= -INDIC_siyaq_NUMBERS/a/}');
     Expect(1, 126143, '\p{Block=:\AIndic_Siyaq_Numbers\z:}', "");;
     Expect(0, 126144, '\p{Block=:\AIndic_Siyaq_Numbers\z:}', "");;
     Expect(1, 126143, '\p{Block=indicsiyaqnumbers}', "");
@@ -14036,16 +14380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126144, '\P{^Block=indicsiyaqnumbers}', "");
     Expect(1, 126143, '\p{Block=:\Aindicsiyaqnumbers\z:}', "");;
     Expect(0, 126144, '\p{Block=:\Aindicsiyaqnumbers\z:}', "");;
-    Expect(1, 126143, '\p{Block= Indic_SIYAQ_numbers}', "");
-    Expect(0, 126143, '\p{^Block= Indic_SIYAQ_numbers}', "");
-    Expect(0, 126143, '\P{Block= Indic_SIYAQ_numbers}', "");
-    Expect(1, 126143, '\P{^Block= Indic_SIYAQ_numbers}', "");
-    Expect(0, 126144, '\p{Block= Indic_SIYAQ_numbers}', "");
-    Expect(1, 126144, '\p{^Block= Indic_SIYAQ_numbers}', "");
-    Expect(1, 126144, '\P{Block= Indic_SIYAQ_numbers}', "");
-    Expect(0, 126144, '\P{^Block= Indic_SIYAQ_numbers}', "");
-    Error('\p{Blk=	:=INDIC_SIYAQ_Numbers}');
-    Error('\P{Blk=	:=INDIC_SIYAQ_Numbers}');
+    Expect(1, 126143, '\p{Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126143, '\p{^Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126143, '\P{Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(1, 126143, '\P{^Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126144, '\p{Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(1, 126144, '\p{^Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(1, 126144, '\P{Block=	INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126144, '\P{^Block=	INDIC_Siyaq_NUMBERS}', "");
+    Error('\p{Blk=/a/__Indic_Siyaq_numbers}');
+    Error('\P{Blk=/a/__Indic_Siyaq_numbers}');
     Expect(1, 126143, '\p{Blk=:\AIndic_Siyaq_Numbers\z:}', "");;
     Expect(0, 126144, '\p{Blk=:\AIndic_Siyaq_Numbers\z:}', "");;
     Expect(1, 126143, '\p{Blk=indicsiyaqnumbers}', "");
@@ -14058,16 +14402,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 126144, '\P{^Blk=indicsiyaqnumbers}', "");
     Expect(1, 126143, '\p{Blk=:\Aindicsiyaqnumbers\z:}', "");;
     Expect(0, 126144, '\p{Blk=:\Aindicsiyaqnumbers\z:}', "");;
-    Expect(1, 126143, '\p{Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(0, 126143, '\p{^Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(0, 126143, '\P{Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(1, 126143, '\P{^Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(0, 126144, '\p{Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(1, 126144, '\p{^Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(1, 126144, '\P{Blk=- indic_Siyaq_NUMBERS}', "");
-    Expect(0, 126144, '\P{^Blk=- indic_Siyaq_NUMBERS}', "");
-    Error('\p{Is_Block=_/a/INDIC_siyaq_numbers}');
-    Error('\P{Is_Block=_/a/INDIC_siyaq_numbers}');
+    Expect(1, 126143, '\p{Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\p{^Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\P{Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126143, '\P{^Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\p{Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\p{^Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\P{Blk= -Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\P{^Blk= -Indic_SIYAQ_Numbers}', "");
+    Error('\p{Is_Block=_:=Indic_siyaq_Numbers}');
+    Error('\P{Is_Block=_:=Indic_siyaq_Numbers}');
     Expect(1, 126143, '\p{Is_Block=indicsiyaqnumbers}', "");
     Expect(0, 126143, '\p{^Is_Block=indicsiyaqnumbers}', "");
     Expect(0, 126143, '\P{Is_Block=indicsiyaqnumbers}', "");
@@ -14076,34 +14420,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126144, '\p{^Is_Block=indicsiyaqnumbers}', "");
     Expect(1, 126144, '\P{Is_Block=indicsiyaqnumbers}', "");
     Expect(0, 126144, '\P{^Is_Block=indicsiyaqnumbers}', "");
-    Expect(1, 126143, '\p{Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126143, '\p{^Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126143, '\P{Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(1, 126143, '\P{^Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126144, '\p{Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(1, 126144, '\p{^Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(1, 126144, '\P{Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126144, '\P{^Is_Block= Indic_SIYAQ_NUMBERS}', "");
-    Error('\p{Is_Blk=__indic_siyaq_numbers:=}');
-    Error('\P{Is_Blk=__indic_siyaq_numbers:=}');
-    Expect(1, 126143, '\p{Is_Blk=indicsiyaqnumbers}', "");
-    Expect(0, 126143, '\p{^Is_Blk=indicsiyaqnumbers}', "");
-    Expect(0, 126143, '\P{Is_Blk=indicsiyaqnumbers}', "");
-    Expect(1, 126143, '\P{^Is_Blk=indicsiyaqnumbers}', "");
-    Expect(0, 126144, '\p{Is_Blk=indicsiyaqnumbers}', "");
-    Expect(1, 126144, '\p{^Is_Blk=indicsiyaqnumbers}', "");
-    Expect(1, 126144, '\P{Is_Blk=indicsiyaqnumbers}', "");
-    Expect(0, 126144, '\P{^Is_Blk=indicsiyaqnumbers}', "");
-    Expect(1, 126143, '\p{Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126143, '\p{^Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126143, '\P{Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(1, 126143, '\P{^Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126144, '\p{Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(1, 126144, '\p{^Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(1, 126144, '\P{Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Expect(0, 126144, '\P{^Is_Blk=-_Indic_SIYAQ_NUMBERS}', "");
-    Error('\p{Block:/a/_inscriptional_pahlavi}');
-    Error('\P{Block:/a/_inscriptional_pahlavi}');
+    Expect(1, 126143, '\p{Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\p{^Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\P{Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126143, '\P{^Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\p{Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\p{^Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\P{Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\P{^Is_Block=-Indic_SIYAQ_Numbers}', "");
+    Error('\p{Is_Blk:		INDIC_SIYAQ_numbers:=}');
+    Error('\P{Is_Blk:		INDIC_SIYAQ_numbers:=}');
+    Expect(1, 126143, '\p{Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(0, 126143, '\p{^Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(0, 126143, '\P{Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(1, 126143, '\P{^Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(0, 126144, '\p{Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(1, 126144, '\p{^Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(1, 126144, '\P{Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(0, 126144, '\P{^Is_Blk:	indicsiyaqnumbers}', "");
+    Expect(1, 126143, '\p{Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\p{^Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\P{Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(1, 126143, '\P{^Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\p{Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\p{^Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\P{Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\P{^Is_Blk=_	indic_SIYAQ_Numbers}', "");
+    Error('\p{Block=/a/__inscriptional_Pahlavi}');
+    Error('\P{Block=/a/__inscriptional_Pahlavi}');
     Expect(1, 68479, '\p{Block=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(0, 68480, '\p{Block=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(1, 68479, '\p{Block=inscriptionalpahlavi}', "");
@@ -14116,16 +14460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68480, '\P{^Block=inscriptionalpahlavi}', "");
     Expect(1, 68479, '\p{Block=:\Ainscriptionalpahlavi\z:}', "");;
     Expect(0, 68480, '\p{Block=:\Ainscriptionalpahlavi\z:}', "");;
-    Expect(1, 68479, '\p{Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(0, 68479, '\p{^Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(0, 68479, '\P{Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(1, 68479, '\P{^Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(0, 68480, '\p{Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(1, 68480, '\p{^Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(1, 68480, '\P{Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Expect(0, 68480, '\P{^Block=	-INSCRIPTIONAL_pahlavi}', "");
-    Error('\p{Blk=__Inscriptional_pahlavi/a/}');
-    Error('\P{Blk=__Inscriptional_pahlavi/a/}');
+    Expect(1, 68479, '\p{Block=	Inscriptional_pahlavi}', "");
+    Expect(0, 68479, '\p{^Block=	Inscriptional_pahlavi}', "");
+    Expect(0, 68479, '\P{Block=	Inscriptional_pahlavi}', "");
+    Expect(1, 68479, '\P{^Block=	Inscriptional_pahlavi}', "");
+    Expect(0, 68480, '\p{Block=	Inscriptional_pahlavi}', "");
+    Expect(1, 68480, '\p{^Block=	Inscriptional_pahlavi}', "");
+    Expect(1, 68480, '\P{Block=	Inscriptional_pahlavi}', "");
+    Expect(0, 68480, '\P{^Block=	Inscriptional_pahlavi}', "");
+    Error('\p{Blk=/a/ _INSCRIPTIONAL_Pahlavi}');
+    Error('\P{Blk=/a/ _INSCRIPTIONAL_Pahlavi}');
     Expect(1, 68479, '\p{Blk=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(0, 68480, '\p{Blk=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(1, 68479, '\p{Blk=inscriptionalpahlavi}', "");
@@ -14138,74 +14482,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68480, '\P{^Blk=inscriptionalpahlavi}', "");
     Expect(1, 68479, '\p{Blk=:\Ainscriptionalpahlavi\z:}', "");;
     Expect(0, 68480, '\p{Blk=:\Ainscriptionalpahlavi\z:}', "");;
-    Expect(1, 68479, '\p{Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(0, 68479, '\p{^Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(0, 68479, '\P{Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(1, 68479, '\P{^Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(0, 68480, '\p{Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(1, 68480, '\p{^Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(1, 68480, '\P{Blk=-Inscriptional_PAHLAVI}', "");
-    Expect(0, 68480, '\P{^Blk=-Inscriptional_PAHLAVI}', "");
-    Error('\p{Is_Block= INSCRIPTIONAL_Pahlavi/a/}');
-    Error('\P{Is_Block= INSCRIPTIONAL_Pahlavi/a/}');
-    Expect(1, 68479, '\p{Is_Block:inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\p{^Is_Block:inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\P{Is_Block:inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\P{^Is_Block:inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\p{Is_Block:inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\p{^Is_Block:inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\P{Is_Block:inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\P{^Is_Block:inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(0, 68479, '\p{^Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(0, 68479, '\P{Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(1, 68479, '\P{^Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(0, 68480, '\p{Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(1, 68480, '\p{^Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(1, 68480, '\P{Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Expect(0, 68480, '\P{^Is_Block=-INSCRIPTIONAL_PAHLAVI}', "");
-    Error('\p{Is_Blk=:=-INSCRIPTIONAL_Pahlavi}');
-    Error('\P{Is_Blk=:=-INSCRIPTIONAL_Pahlavi}');
-    Expect(1, 68479, '\p{Is_Blk:inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\p{^Is_Blk:inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\P{Is_Blk:inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\P{^Is_Blk:inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\p{Is_Blk:inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\p{^Is_Blk:inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\P{Is_Blk:inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\P{^Is_Blk:inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\p{^Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\P{Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(1, 68479, '\P{^Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\p{Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\p{^Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\P{Is_Blk=		inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\P{^Is_Blk=		inscriptional_pahlavi}', "");
-    Error('\p{Block:		 Inscriptional_parthian:=}');
-    Error('\P{Block:		 Inscriptional_parthian:=}');
+    Expect(1, 68479, '\p{Blk=_	inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\p{^Blk=_	inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\P{Blk=_	inscriptional_Pahlavi}', "");
+    Expect(1, 68479, '\P{^Blk=_	inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\p{Blk=_	inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\p{^Blk=_	inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\P{Blk=_	inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\P{^Blk=_	inscriptional_Pahlavi}', "");
+    Error('\p{Is_Block= :=inscriptional_pahlavi}');
+    Error('\P{Is_Block= :=inscriptional_pahlavi}');
+    Expect(1, 68479, '\p{Is_Block=inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\p{^Is_Block=inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\P{Is_Block=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\P{^Is_Block=inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\p{Is_Block=inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\p{^Is_Block=inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\P{Is_Block=inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\P{^Is_Block=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\p{Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(0, 68479, '\p{^Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(0, 68479, '\P{Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(1, 68479, '\P{^Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(0, 68480, '\p{Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(1, 68480, '\p{^Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(1, 68480, '\P{Is_Block=-Inscriptional_PAHLAVI}', "");
+    Expect(0, 68480, '\P{^Is_Block=-Inscriptional_PAHLAVI}', "");
+    Error('\p{Is_Blk=_:=INSCRIPTIONAL_Pahlavi}');
+    Error('\P{Is_Blk=_:=INSCRIPTIONAL_Pahlavi}');
+    Expect(1, 68479, '\p{Is_Blk=inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\p{^Is_Blk=inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\P{Is_Blk=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\P{^Is_Blk=inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\p{Is_Blk=inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\p{^Is_Blk=inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\P{Is_Blk=inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\P{^Is_Blk=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\p{Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(0, 68479, '\p{^Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(0, 68479, '\P{Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(1, 68479, '\P{^Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(0, 68480, '\p{Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(1, 68480, '\p{^Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(1, 68480, '\P{Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Expect(0, 68480, '\P{^Is_Blk=--Inscriptional_PAHLAVI}', "");
+    Error('\p{Block=	:=Inscriptional_parthian}');
+    Error('\P{Block=	:=Inscriptional_parthian}');
     Expect(1, 68447, '\p{Block=:\AInscriptional_Parthian\z:}', "");;
     Expect(0, 68448, '\p{Block=:\AInscriptional_Parthian\z:}', "");;
-    Expect(1, 68447, '\p{Block:	inscriptionalparthian}', "");
-    Expect(0, 68447, '\p{^Block:	inscriptionalparthian}', "");
-    Expect(0, 68447, '\P{Block:	inscriptionalparthian}', "");
-    Expect(1, 68447, '\P{^Block:	inscriptionalparthian}', "");
-    Expect(0, 68448, '\p{Block:	inscriptionalparthian}', "");
-    Expect(1, 68448, '\p{^Block:	inscriptionalparthian}', "");
-    Expect(1, 68448, '\P{Block:	inscriptionalparthian}', "");
-    Expect(0, 68448, '\P{^Block:	inscriptionalparthian}', "");
+    Expect(1, 68447, '\p{Block=inscriptionalparthian}', "");
+    Expect(0, 68447, '\p{^Block=inscriptionalparthian}', "");
+    Expect(0, 68447, '\P{Block=inscriptionalparthian}', "");
+    Expect(1, 68447, '\P{^Block=inscriptionalparthian}', "");
+    Expect(0, 68448, '\p{Block=inscriptionalparthian}', "");
+    Expect(1, 68448, '\p{^Block=inscriptionalparthian}', "");
+    Expect(1, 68448, '\P{Block=inscriptionalparthian}', "");
+    Expect(0, 68448, '\P{^Block=inscriptionalparthian}', "");
     Expect(1, 68447, '\p{Block=:\Ainscriptionalparthian\z:}', "");;
     Expect(0, 68448, '\p{Block=:\Ainscriptionalparthian\z:}', "");;
-    Expect(1, 68447, '\p{Block=-Inscriptional_PARTHIAN}', "");
-    Expect(0, 68447, '\p{^Block=-Inscriptional_PARTHIAN}', "");
-    Expect(0, 68447, '\P{Block=-Inscriptional_PARTHIAN}', "");
-    Expect(1, 68447, '\P{^Block=-Inscriptional_PARTHIAN}', "");
-    Expect(0, 68448, '\p{Block=-Inscriptional_PARTHIAN}', "");
-    Expect(1, 68448, '\p{^Block=-Inscriptional_PARTHIAN}', "");
-    Expect(1, 68448, '\P{Block=-Inscriptional_PARTHIAN}', "");
-    Expect(0, 68448, '\P{^Block=-Inscriptional_PARTHIAN}', "");
-    Error('\p{Blk=:=Inscriptional_parthian}');
-    Error('\P{Blk=:=Inscriptional_parthian}');
+    Expect(1, 68447, '\p{Block=_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\p{^Block=_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\P{Block=_Inscriptional_PARTHIAN}', "");
+    Expect(1, 68447, '\P{^Block=_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\p{Block=_Inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\p{^Block=_Inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\P{Block=_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\P{^Block=_Inscriptional_PARTHIAN}', "");
+    Error('\p{Blk= -Inscriptional_Parthian/a/}');
+    Error('\P{Blk= -Inscriptional_Parthian/a/}');
     Expect(1, 68447, '\p{Blk=:\AInscriptional_Parthian\z:}', "");;
     Expect(0, 68448, '\p{Blk=:\AInscriptional_Parthian\z:}', "");;
     Expect(1, 68447, '\p{Blk=inscriptionalparthian}', "");
@@ -14218,16 +14562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68448, '\P{^Blk=inscriptionalparthian}', "");
     Expect(1, 68447, '\p{Blk=:\Ainscriptionalparthian\z:}', "");;
     Expect(0, 68448, '\p{Blk=:\Ainscriptionalparthian\z:}', "");;
-    Expect(1, 68447, '\p{Blk=	 inscriptional_parthian}', "");
-    Expect(0, 68447, '\p{^Blk=	 inscriptional_parthian}', "");
-    Expect(0, 68447, '\P{Blk=	 inscriptional_parthian}', "");
-    Expect(1, 68447, '\P{^Blk=	 inscriptional_parthian}', "");
-    Expect(0, 68448, '\p{Blk=	 inscriptional_parthian}', "");
-    Expect(1, 68448, '\p{^Blk=	 inscriptional_parthian}', "");
-    Expect(1, 68448, '\P{Blk=	 inscriptional_parthian}', "");
-    Expect(0, 68448, '\P{^Blk=	 inscriptional_parthian}', "");
-    Error('\p{Is_Block=	 Inscriptional_PARTHIAN:=}');
-    Error('\P{Is_Block=	 Inscriptional_PARTHIAN:=}');
+    Expect(1, 68447, '\p{Blk= Inscriptional_parthian}', "");
+    Expect(0, 68447, '\p{^Blk= Inscriptional_parthian}', "");
+    Expect(0, 68447, '\P{Blk= Inscriptional_parthian}', "");
+    Expect(1, 68447, '\P{^Blk= Inscriptional_parthian}', "");
+    Expect(0, 68448, '\p{Blk= Inscriptional_parthian}', "");
+    Expect(1, 68448, '\p{^Blk= Inscriptional_parthian}', "");
+    Expect(1, 68448, '\P{Blk= Inscriptional_parthian}', "");
+    Expect(0, 68448, '\P{^Blk= Inscriptional_parthian}', "");
+    Error('\p{Is_Block=:= 	inscriptional_PARTHIAN}');
+    Error('\P{Is_Block=:= 	inscriptional_PARTHIAN}');
     Expect(1, 68447, '\p{Is_Block=inscriptionalparthian}', "");
     Expect(0, 68447, '\p{^Is_Block=inscriptionalparthian}', "");
     Expect(0, 68447, '\P{Is_Block=inscriptionalparthian}', "");
@@ -14236,16 +14580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68448, '\p{^Is_Block=inscriptionalparthian}', "");
     Expect(1, 68448, '\P{Is_Block=inscriptionalparthian}', "");
     Expect(0, 68448, '\P{^Is_Block=inscriptionalparthian}', "");
-    Expect(1, 68447, '\p{Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68447, '\p{^Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68447, '\P{Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(1, 68447, '\P{^Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68448, '\p{Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(1, 68448, '\p{^Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(1, 68448, '\P{Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68448, '\P{^Is_Block=INSCRIPTIONAL_Parthian}', "");
-    Error('\p{Is_Blk=/a/-	inscriptional_parthian}');
-    Error('\P{Is_Blk=/a/-	inscriptional_parthian}');
+    Expect(1, 68447, '\p{Is_Block=_Inscriptional_Parthian}', "");
+    Expect(0, 68447, '\p{^Is_Block=_Inscriptional_Parthian}', "");
+    Expect(0, 68447, '\P{Is_Block=_Inscriptional_Parthian}', "");
+    Expect(1, 68447, '\P{^Is_Block=_Inscriptional_Parthian}', "");
+    Expect(0, 68448, '\p{Is_Block=_Inscriptional_Parthian}', "");
+    Expect(1, 68448, '\p{^Is_Block=_Inscriptional_Parthian}', "");
+    Expect(1, 68448, '\P{Is_Block=_Inscriptional_Parthian}', "");
+    Expect(0, 68448, '\P{^Is_Block=_Inscriptional_Parthian}', "");
+    Error('\p{Is_Blk=/a/ -INSCRIPTIONAL_Parthian}');
+    Error('\P{Is_Blk=/a/ -INSCRIPTIONAL_Parthian}');
     Expect(1, 68447, '\p{Is_Blk=inscriptionalparthian}', "");
     Expect(0, 68447, '\p{^Is_Blk=inscriptionalparthian}', "");
     Expect(0, 68447, '\P{Is_Blk=inscriptionalparthian}', "");
@@ -14254,78 +14598,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68448, '\p{^Is_Blk=inscriptionalparthian}', "");
     Expect(1, 68448, '\P{Is_Blk=inscriptionalparthian}', "");
     Expect(0, 68448, '\P{^Is_Blk=inscriptionalparthian}', "");
-    Expect(1, 68447, '\p{Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(0, 68447, '\p{^Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(0, 68447, '\P{Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(1, 68447, '\P{^Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(0, 68448, '\p{Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(1, 68448, '\p{^Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(1, 68448, '\P{Is_Blk= 	inscriptional_Parthian}', "");
-    Expect(0, 68448, '\P{^Is_Blk= 	inscriptional_Parthian}', "");
-    Error('\p{Block=-:=IPA_Extensions}');
-    Error('\P{Block=-:=IPA_Extensions}');
+    Expect(1, 68447, '\p{Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(0, 68447, '\p{^Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(0, 68447, '\P{Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(1, 68447, '\P{^Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(0, 68448, '\p{Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(1, 68448, '\p{^Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(1, 68448, '\P{Is_Blk=	Inscriptional_Parthian}', "");
+    Expect(0, 68448, '\P{^Is_Blk=	Inscriptional_Parthian}', "");
+    Error('\p{Block=-/a/IPA_EXTENSIONS}');
+    Error('\P{Block=-/a/IPA_EXTENSIONS}');
     Expect(1, 687, '\p{Block=:\AIPA_Extensions\z:}', "");;
     Expect(0, 688, '\p{Block=:\AIPA_Extensions\z:}', "");;
-    Expect(1, 687, '\p{Block=ipaextensions}', "");
-    Expect(0, 687, '\p{^Block=ipaextensions}', "");
-    Expect(0, 687, '\P{Block=ipaextensions}', "");
-    Expect(1, 687, '\P{^Block=ipaextensions}', "");
-    Expect(0, 688, '\p{Block=ipaextensions}', "");
-    Expect(1, 688, '\p{^Block=ipaextensions}', "");
-    Expect(1, 688, '\P{Block=ipaextensions}', "");
-    Expect(0, 688, '\P{^Block=ipaextensions}', "");
+    Expect(1, 687, '\p{Block: ipaextensions}', "");
+    Expect(0, 687, '\p{^Block: ipaextensions}', "");
+    Expect(0, 687, '\P{Block: ipaextensions}', "");
+    Expect(1, 687, '\P{^Block: ipaextensions}', "");
+    Expect(0, 688, '\p{Block: ipaextensions}', "");
+    Expect(1, 688, '\p{^Block: ipaextensions}', "");
+    Expect(1, 688, '\P{Block: ipaextensions}', "");
+    Expect(0, 688, '\P{^Block: ipaextensions}', "");
     Expect(1, 687, '\p{Block=:\Aipaextensions\z:}', "");;
     Expect(0, 688, '\p{Block=:\Aipaextensions\z:}', "");;
-    Expect(1, 687, '\p{Block=-IPA_Extensions}', "");
-    Expect(0, 687, '\p{^Block=-IPA_Extensions}', "");
-    Expect(0, 687, '\P{Block=-IPA_Extensions}', "");
-    Expect(1, 687, '\P{^Block=-IPA_Extensions}', "");
-    Expect(0, 688, '\p{Block=-IPA_Extensions}', "");
-    Expect(1, 688, '\p{^Block=-IPA_Extensions}', "");
-    Expect(1, 688, '\P{Block=-IPA_Extensions}', "");
-    Expect(0, 688, '\P{^Block=-IPA_Extensions}', "");
-    Error('\p{Blk=/a/-	IPA_EXT}');
-    Error('\P{Blk=/a/-	IPA_EXT}');
+    Expect(1, 687, '\p{Block=-IPA_EXTENSIONS}', "");
+    Expect(0, 687, '\p{^Block=-IPA_EXTENSIONS}', "");
+    Expect(0, 687, '\P{Block=-IPA_EXTENSIONS}', "");
+    Expect(1, 687, '\P{^Block=-IPA_EXTENSIONS}', "");
+    Expect(0, 688, '\p{Block=-IPA_EXTENSIONS}', "");
+    Expect(1, 688, '\p{^Block=-IPA_EXTENSIONS}', "");
+    Expect(1, 688, '\P{Block=-IPA_EXTENSIONS}', "");
+    Expect(0, 688, '\P{^Block=-IPA_EXTENSIONS}', "");
+    Error('\p{Blk=/a/		IPA_Ext}');
+    Error('\P{Blk=/a/		IPA_Ext}');
     Expect(1, 687, '\p{Blk=:\AIPA_Ext\z:}', "");;
     Expect(0, 688, '\p{Blk=:\AIPA_Ext\z:}', "");;
-    Expect(1, 687, '\p{Blk=ipaext}', "");
-    Expect(0, 687, '\p{^Blk=ipaext}', "");
-    Expect(0, 687, '\P{Blk=ipaext}', "");
-    Expect(1, 687, '\P{^Blk=ipaext}', "");
-    Expect(0, 688, '\p{Blk=ipaext}', "");
-    Expect(1, 688, '\p{^Blk=ipaext}', "");
-    Expect(1, 688, '\P{Blk=ipaext}', "");
-    Expect(0, 688, '\P{^Blk=ipaext}', "");
+    Expect(1, 687, '\p{Blk:	ipaext}', "");
+    Expect(0, 687, '\p{^Blk:	ipaext}', "");
+    Expect(0, 687, '\P{Blk:	ipaext}', "");
+    Expect(1, 687, '\P{^Blk:	ipaext}', "");
+    Expect(0, 688, '\p{Blk:	ipaext}', "");
+    Expect(1, 688, '\p{^Blk:	ipaext}', "");
+    Expect(1, 688, '\P{Blk:	ipaext}', "");
+    Expect(0, 688, '\P{^Blk:	ipaext}', "");
     Expect(1, 687, '\p{Blk=:\Aipaext\z:}', "");;
     Expect(0, 688, '\p{Blk=:\Aipaext\z:}', "");;
-    Expect(1, 687, '\p{Blk=-ipa_EXT}', "");
-    Expect(0, 687, '\p{^Blk=-ipa_EXT}', "");
-    Expect(0, 687, '\P{Blk=-ipa_EXT}', "");
-    Expect(1, 687, '\P{^Blk=-ipa_EXT}', "");
-    Expect(0, 688, '\p{Blk=-ipa_EXT}', "");
-    Expect(1, 688, '\p{^Blk=-ipa_EXT}', "");
-    Expect(1, 688, '\P{Blk=-ipa_EXT}', "");
-    Expect(0, 688, '\P{^Blk=-ipa_EXT}', "");
-    Error('\p{Is_Block=:=_-IPA_extensions}');
-    Error('\P{Is_Block=:=_-IPA_extensions}');
-    Expect(1, 687, '\p{Is_Block:   ipaextensions}', "");
-    Expect(0, 687, '\p{^Is_Block:   ipaextensions}', "");
-    Expect(0, 687, '\P{Is_Block:   ipaextensions}', "");
-    Expect(1, 687, '\P{^Is_Block:   ipaextensions}', "");
-    Expect(0, 688, '\p{Is_Block:   ipaextensions}', "");
-    Expect(1, 688, '\p{^Is_Block:   ipaextensions}', "");
-    Expect(1, 688, '\P{Is_Block:   ipaextensions}', "");
-    Expect(0, 688, '\P{^Is_Block:   ipaextensions}', "");
-    Expect(1, 687, '\p{Is_Block=	-IPA_extensions}', "");
-    Expect(0, 687, '\p{^Is_Block=	-IPA_extensions}', "");
-    Expect(0, 687, '\P{Is_Block=	-IPA_extensions}', "");
-    Expect(1, 687, '\P{^Is_Block=	-IPA_extensions}', "");
-    Expect(0, 688, '\p{Is_Block=	-IPA_extensions}', "");
-    Expect(1, 688, '\p{^Is_Block=	-IPA_extensions}', "");
-    Expect(1, 688, '\P{Is_Block=	-IPA_extensions}', "");
-    Expect(0, 688, '\P{^Is_Block=	-IPA_extensions}', "");
-    Error('\p{Is_Blk=/a/_IPA_Ext}');
-    Error('\P{Is_Blk=/a/_IPA_Ext}');
+    Expect(1, 687, '\p{Blk=ipa_ext}', "");
+    Expect(0, 687, '\p{^Blk=ipa_ext}', "");
+    Expect(0, 687, '\P{Blk=ipa_ext}', "");
+    Expect(1, 687, '\P{^Blk=ipa_ext}', "");
+    Expect(0, 688, '\p{Blk=ipa_ext}', "");
+    Expect(1, 688, '\p{^Blk=ipa_ext}', "");
+    Expect(1, 688, '\P{Blk=ipa_ext}', "");
+    Expect(0, 688, '\P{^Blk=ipa_ext}', "");
+    Error('\p{Is_Block=-/a/ipa_Extensions}');
+    Error('\P{Is_Block=-/a/ipa_Extensions}');
+    Expect(1, 687, '\p{Is_Block=ipaextensions}', "");
+    Expect(0, 687, '\p{^Is_Block=ipaextensions}', "");
+    Expect(0, 687, '\P{Is_Block=ipaextensions}', "");
+    Expect(1, 687, '\P{^Is_Block=ipaextensions}', "");
+    Expect(0, 688, '\p{Is_Block=ipaextensions}', "");
+    Expect(1, 688, '\p{^Is_Block=ipaextensions}', "");
+    Expect(1, 688, '\P{Is_Block=ipaextensions}', "");
+    Expect(0, 688, '\P{^Is_Block=ipaextensions}', "");
+    Expect(1, 687, '\p{Is_Block= _IPA_Extensions}', "");
+    Expect(0, 687, '\p{^Is_Block= _IPA_Extensions}', "");
+    Expect(0, 687, '\P{Is_Block= _IPA_Extensions}', "");
+    Expect(1, 687, '\P{^Is_Block= _IPA_Extensions}', "");
+    Expect(0, 688, '\p{Is_Block= _IPA_Extensions}', "");
+    Expect(1, 688, '\p{^Is_Block= _IPA_Extensions}', "");
+    Expect(1, 688, '\P{Is_Block= _IPA_Extensions}', "");
+    Expect(0, 688, '\P{^Is_Block= _IPA_Extensions}', "");
+    Error('\p{Is_Blk=/a/IPA_Ext}');
+    Error('\P{Is_Blk=/a/IPA_Ext}');
     Expect(1, 687, '\p{Is_Blk=ipaext}', "");
     Expect(0, 687, '\p{^Is_Blk=ipaext}', "");
     Expect(0, 687, '\P{Is_Blk=ipaext}', "");
@@ -14334,16 +14678,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 688, '\p{^Is_Blk=ipaext}', "");
     Expect(1, 688, '\P{Is_Blk=ipaext}', "");
     Expect(0, 688, '\P{^Is_Blk=ipaext}', "");
-    Expect(1, 687, '\p{Is_Blk=-	IPA_EXT}', "");
-    Expect(0, 687, '\p{^Is_Blk=-	IPA_EXT}', "");
-    Expect(0, 687, '\P{Is_Blk=-	IPA_EXT}', "");
-    Expect(1, 687, '\P{^Is_Blk=-	IPA_EXT}', "");
-    Expect(0, 688, '\p{Is_Blk=-	IPA_EXT}', "");
-    Expect(1, 688, '\p{^Is_Blk=-	IPA_EXT}', "");
-    Expect(1, 688, '\P{Is_Blk=-	IPA_EXT}', "");
-    Expect(0, 688, '\P{^Is_Blk=-	IPA_EXT}', "");
-    Error('\p{Block=:=	Hangul_Jamo}');
-    Error('\P{Block=:=	Hangul_Jamo}');
+    Expect(1, 687, '\p{Is_Blk=	IPA_EXT}', "");
+    Expect(0, 687, '\p{^Is_Blk=	IPA_EXT}', "");
+    Expect(0, 687, '\P{Is_Blk=	IPA_EXT}', "");
+    Expect(1, 687, '\P{^Is_Blk=	IPA_EXT}', "");
+    Expect(0, 688, '\p{Is_Blk=	IPA_EXT}', "");
+    Expect(1, 688, '\p{^Is_Blk=	IPA_EXT}', "");
+    Expect(1, 688, '\P{Is_Blk=	IPA_EXT}', "");
+    Expect(0, 688, '\P{^Is_Blk=	IPA_EXT}', "");
+    Error('\p{Block=:=-	Hangul_Jamo}');
+    Error('\P{Block=:=-	Hangul_Jamo}');
     Expect(1, 4607, '\p{Block=:\AHangul_Jamo\z:}', "");;
     Expect(0, 4608, '\p{Block=:\AHangul_Jamo\z:}', "");;
     Expect(1, 4607, '\p{Block=hanguljamo}', "");
@@ -14356,16 +14700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4608, '\P{^Block=hanguljamo}', "");
     Expect(1, 4607, '\p{Block=:\Ahanguljamo\z:}', "");;
     Expect(0, 4608, '\p{Block=:\Ahanguljamo\z:}', "");;
-    Expect(1, 4607, '\p{Block= _Hangul_jamo}', "");
-    Expect(0, 4607, '\p{^Block= _Hangul_jamo}', "");
-    Expect(0, 4607, '\P{Block= _Hangul_jamo}', "");
-    Expect(1, 4607, '\P{^Block= _Hangul_jamo}', "");
-    Expect(0, 4608, '\p{Block= _Hangul_jamo}', "");
-    Expect(1, 4608, '\p{^Block= _Hangul_jamo}', "");
-    Expect(1, 4608, '\P{Block= _Hangul_jamo}', "");
-    Expect(0, 4608, '\P{^Block= _Hangul_jamo}', "");
-    Error('\p{Blk=-/a/Jamo}');
-    Error('\P{Blk=-/a/Jamo}');
+    Expect(1, 4607, '\p{Block=-_Hangul_jamo}', "");
+    Expect(0, 4607, '\p{^Block=-_Hangul_jamo}', "");
+    Expect(0, 4607, '\P{Block=-_Hangul_jamo}', "");
+    Expect(1, 4607, '\P{^Block=-_Hangul_jamo}', "");
+    Expect(0, 4608, '\p{Block=-_Hangul_jamo}', "");
+    Expect(1, 4608, '\p{^Block=-_Hangul_jamo}', "");
+    Expect(1, 4608, '\P{Block=-_Hangul_jamo}', "");
+    Expect(0, 4608, '\P{^Block=-_Hangul_jamo}', "");
+    Error('\p{Blk=:=	jamo}');
+    Error('\P{Blk=:=	jamo}');
     Expect(1, 4607, '\p{Blk=:\AJamo\z:}', "");;
     Expect(0, 4608, '\p{Blk=:\AJamo\z:}', "");;
     Expect(1, 4607, '\p{Blk=jamo}', "");
@@ -14378,16 +14722,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4608, '\P{^Blk=jamo}', "");
     Expect(1, 4607, '\p{Blk=:\Ajamo\z:}', "");;
     Expect(0, 4608, '\p{Blk=:\Ajamo\z:}', "");;
-    Expect(1, 4607, '\p{Blk= _Jamo}', "");
-    Expect(0, 4607, '\p{^Blk= _Jamo}', "");
-    Expect(0, 4607, '\P{Blk= _Jamo}', "");
-    Expect(1, 4607, '\P{^Blk= _Jamo}', "");
-    Expect(0, 4608, '\p{Blk= _Jamo}', "");
-    Expect(1, 4608, '\p{^Blk= _Jamo}', "");
-    Expect(1, 4608, '\P{Blk= _Jamo}', "");
-    Expect(0, 4608, '\P{^Blk= _Jamo}', "");
-    Error('\p{Is_Block= :=hangul_JAMO}');
-    Error('\P{Is_Block= :=hangul_JAMO}');
+    Expect(1, 4607, '\p{Blk=--JAMO}', "");
+    Expect(0, 4607, '\p{^Blk=--JAMO}', "");
+    Expect(0, 4607, '\P{Blk=--JAMO}', "");
+    Expect(1, 4607, '\P{^Blk=--JAMO}', "");
+    Expect(0, 4608, '\p{Blk=--JAMO}', "");
+    Expect(1, 4608, '\p{^Blk=--JAMO}', "");
+    Expect(1, 4608, '\P{Blk=--JAMO}', "");
+    Expect(0, 4608, '\P{^Blk=--JAMO}', "");
+    Error('\p{Is_Block=-:=HANGUL_Jamo}');
+    Error('\P{Is_Block=-:=HANGUL_Jamo}');
     Expect(1, 4607, '\p{Is_Block=hanguljamo}', "");
     Expect(0, 4607, '\p{^Is_Block=hanguljamo}', "");
     Expect(0, 4607, '\P{Is_Block=hanguljamo}', "");
@@ -14396,56 +14740,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4608, '\p{^Is_Block=hanguljamo}', "");
     Expect(1, 4608, '\P{Is_Block=hanguljamo}', "");
     Expect(0, 4608, '\P{^Is_Block=hanguljamo}', "");
-    Expect(1, 4607, '\p{Is_Block=-_hangul_jamo}', "");
-    Expect(0, 4607, '\p{^Is_Block=-_hangul_jamo}', "");
-    Expect(0, 4607, '\P{Is_Block=-_hangul_jamo}', "");
-    Expect(1, 4607, '\P{^Is_Block=-_hangul_jamo}', "");
-    Expect(0, 4608, '\p{Is_Block=-_hangul_jamo}', "");
-    Expect(1, 4608, '\p{^Is_Block=-_hangul_jamo}', "");
-    Expect(1, 4608, '\P{Is_Block=-_hangul_jamo}', "");
-    Expect(0, 4608, '\P{^Is_Block=-_hangul_jamo}', "");
-    Error('\p{Is_Blk=	:=Jamo}');
-    Error('\P{Is_Blk=	:=Jamo}');
-    Expect(1, 4607, '\p{Is_Blk=jamo}', "");
-    Expect(0, 4607, '\p{^Is_Blk=jamo}', "");
-    Expect(0, 4607, '\P{Is_Blk=jamo}', "");
-    Expect(1, 4607, '\P{^Is_Blk=jamo}', "");
-    Expect(0, 4608, '\p{Is_Blk=jamo}', "");
-    Expect(1, 4608, '\p{^Is_Blk=jamo}', "");
-    Expect(1, 4608, '\P{Is_Blk=jamo}', "");
-    Expect(0, 4608, '\P{^Is_Blk=jamo}', "");
-    Expect(1, 4607, '\p{Is_Blk=_-Jamo}', "");
-    Expect(0, 4607, '\p{^Is_Blk=_-Jamo}', "");
-    Expect(0, 4607, '\P{Is_Blk=_-Jamo}', "");
-    Expect(1, 4607, '\P{^Is_Blk=_-Jamo}', "");
-    Expect(0, 4608, '\p{Is_Blk=_-Jamo}', "");
-    Expect(1, 4608, '\p{^Is_Blk=_-Jamo}', "");
-    Expect(1, 4608, '\P{Is_Blk=_-Jamo}', "");
-    Expect(0, 4608, '\P{^Is_Blk=_-Jamo}', "");
-    Error('\p{Block=-Hangul_Jamo_EXTENDED_A:=}');
-    Error('\P{Block=-Hangul_Jamo_EXTENDED_A:=}');
+    Expect(1, 4607, '\p{Is_Block=	 Hangul_JAMO}', "");
+    Expect(0, 4607, '\p{^Is_Block=	 Hangul_JAMO}', "");
+    Expect(0, 4607, '\P{Is_Block=	 Hangul_JAMO}', "");
+    Expect(1, 4607, '\P{^Is_Block=	 Hangul_JAMO}', "");
+    Expect(0, 4608, '\p{Is_Block=	 Hangul_JAMO}', "");
+    Expect(1, 4608, '\p{^Is_Block=	 Hangul_JAMO}', "");
+    Expect(1, 4608, '\P{Is_Block=	 Hangul_JAMO}', "");
+    Expect(0, 4608, '\P{^Is_Block=	 Hangul_JAMO}', "");
+    Error('\p{Is_Blk=_/a/jamo}');
+    Error('\P{Is_Blk=_/a/jamo}');
+    Expect(1, 4607, '\p{Is_Blk:   jamo}', "");
+    Expect(0, 4607, '\p{^Is_Blk:   jamo}', "");
+    Expect(0, 4607, '\P{Is_Blk:   jamo}', "");
+    Expect(1, 4607, '\P{^Is_Blk:   jamo}', "");
+    Expect(0, 4608, '\p{Is_Blk:   jamo}', "");
+    Expect(1, 4608, '\p{^Is_Blk:   jamo}', "");
+    Expect(1, 4608, '\P{Is_Blk:   jamo}', "");
+    Expect(0, 4608, '\P{^Is_Blk:   jamo}', "");
+    Expect(1, 4607, '\p{Is_Blk=-JAMO}', "");
+    Expect(0, 4607, '\p{^Is_Blk=-JAMO}', "");
+    Expect(0, 4607, '\P{Is_Blk=-JAMO}', "");
+    Expect(1, 4607, '\P{^Is_Blk=-JAMO}', "");
+    Expect(0, 4608, '\p{Is_Blk=-JAMO}', "");
+    Expect(1, 4608, '\p{^Is_Blk=-JAMO}', "");
+    Expect(1, 4608, '\P{Is_Blk=-JAMO}', "");
+    Expect(0, 4608, '\P{^Is_Blk=-JAMO}', "");
+    Error('\p{Block=:=Hangul_JAMO_extended_A}');
+    Error('\P{Block=:=Hangul_JAMO_extended_A}');
     Expect(1, 43391, '\p{Block=:\AHangul_Jamo_Extended_A\z:}', "");;
     Expect(0, 43392, '\p{Block=:\AHangul_Jamo_Extended_A\z:}', "");;
-    Expect(1, 43391, '\p{Block=hanguljamoextendeda}', "");
-    Expect(0, 43391, '\p{^Block=hanguljamoextendeda}', "");
-    Expect(0, 43391, '\P{Block=hanguljamoextendeda}', "");
-    Expect(1, 43391, '\P{^Block=hanguljamoextendeda}', "");
-    Expect(0, 43392, '\p{Block=hanguljamoextendeda}', "");
-    Expect(1, 43392, '\p{^Block=hanguljamoextendeda}', "");
-    Expect(1, 43392, '\P{Block=hanguljamoextendeda}', "");
-    Expect(0, 43392, '\P{^Block=hanguljamoextendeda}', "");
+    Expect(1, 43391, '\p{Block:	hanguljamoextendeda}', "");
+    Expect(0, 43391, '\p{^Block:	hanguljamoextendeda}', "");
+    Expect(0, 43391, '\P{Block:	hanguljamoextendeda}', "");
+    Expect(1, 43391, '\P{^Block:	hanguljamoextendeda}', "");
+    Expect(0, 43392, '\p{Block:	hanguljamoextendeda}', "");
+    Expect(1, 43392, '\p{^Block:	hanguljamoextendeda}', "");
+    Expect(1, 43392, '\P{Block:	hanguljamoextendeda}', "");
+    Expect(0, 43392, '\P{^Block:	hanguljamoextendeda}', "");
     Expect(1, 43391, '\p{Block=:\Ahanguljamoextendeda\z:}', "");;
     Expect(0, 43392, '\p{Block=:\Ahanguljamoextendeda\z:}', "");;
-    Expect(1, 43391, '\p{Block= _hangul_JAMO_extended_A}', "");
-    Expect(0, 43391, '\p{^Block= _hangul_JAMO_extended_A}', "");
-    Expect(0, 43391, '\P{Block= _hangul_JAMO_extended_A}', "");
-    Expect(1, 43391, '\P{^Block= _hangul_JAMO_extended_A}', "");
-    Expect(0, 43392, '\p{Block= _hangul_JAMO_extended_A}', "");
-    Expect(1, 43392, '\p{^Block= _hangul_JAMO_extended_A}', "");
-    Expect(1, 43392, '\P{Block= _hangul_JAMO_extended_A}', "");
-    Expect(0, 43392, '\P{^Block= _hangul_JAMO_extended_A}', "");
-    Error('\p{Blk=:=	JAMO_Ext_A}');
-    Error('\P{Blk=:=	JAMO_Ext_A}');
+    Expect(1, 43391, '\p{Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(0, 43391, '\p{^Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(0, 43391, '\P{Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(1, 43391, '\P{^Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(0, 43392, '\p{Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(1, 43392, '\p{^Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(1, 43392, '\P{Block= _Hangul_Jamo_Extended_A}', "");
+    Expect(0, 43392, '\P{^Block= _Hangul_Jamo_Extended_A}', "");
+    Error('\p{Blk= /a/Jamo_Ext_a}');
+    Error('\P{Blk= /a/Jamo_Ext_a}');
     Expect(1, 43391, '\p{Blk=:\AJamo_Ext_A\z:}', "");;
     Expect(0, 43392, '\p{Blk=:\AJamo_Ext_A\z:}', "");;
     Expect(1, 43391, '\p{Blk=jamoexta}', "");
@@ -14458,16 +14802,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43392, '\P{^Blk=jamoexta}', "");
     Expect(1, 43391, '\p{Blk=:\Ajamoexta\z:}', "");;
     Expect(0, 43392, '\p{Blk=:\Ajamoexta\z:}', "");;
-    Expect(1, 43391, '\p{Blk=__Jamo_Ext_a}', "");
-    Expect(0, 43391, '\p{^Blk=__Jamo_Ext_a}', "");
-    Expect(0, 43391, '\P{Blk=__Jamo_Ext_a}', "");
-    Expect(1, 43391, '\P{^Blk=__Jamo_Ext_a}', "");
-    Expect(0, 43392, '\p{Blk=__Jamo_Ext_a}', "");
-    Expect(1, 43392, '\p{^Blk=__Jamo_Ext_a}', "");
-    Expect(1, 43392, '\P{Blk=__Jamo_Ext_a}', "");
-    Expect(0, 43392, '\P{^Blk=__Jamo_Ext_a}', "");
-    Error('\p{Is_Block=/a/Hangul_JAMO_Extended_A}');
-    Error('\P{Is_Block=/a/Hangul_JAMO_Extended_A}');
+    Expect(1, 43391, '\p{Blk=	_JAMO_EXT_A}', "");
+    Expect(0, 43391, '\p{^Blk=	_JAMO_EXT_A}', "");
+    Expect(0, 43391, '\P{Blk=	_JAMO_EXT_A}', "");
+    Expect(1, 43391, '\P{^Blk=	_JAMO_EXT_A}', "");
+    Expect(0, 43392, '\p{Blk=	_JAMO_EXT_A}', "");
+    Expect(1, 43392, '\p{^Blk=	_JAMO_EXT_A}', "");
+    Expect(1, 43392, '\P{Blk=	_JAMO_EXT_A}', "");
+    Expect(0, 43392, '\P{^Blk=	_JAMO_EXT_A}', "");
+    Error('\p{Is_Block=  Hangul_jamo_Extended_A/a/}');
+    Error('\P{Is_Block=  Hangul_jamo_Extended_A/a/}');
     Expect(1, 43391, '\p{Is_Block=hanguljamoextendeda}', "");
     Expect(0, 43391, '\p{^Is_Block=hanguljamoextendeda}', "");
     Expect(0, 43391, '\P{Is_Block=hanguljamoextendeda}', "");
@@ -14476,34 +14820,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43392, '\p{^Is_Block=hanguljamoextendeda}', "");
     Expect(1, 43392, '\P{Is_Block=hanguljamoextendeda}', "");
     Expect(0, 43392, '\P{^Is_Block=hanguljamoextendeda}', "");
-    Expect(1, 43391, '\p{Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(0, 43391, '\p{^Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(0, 43391, '\P{Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(1, 43391, '\P{^Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(0, 43392, '\p{Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(1, 43392, '\p{^Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(1, 43392, '\P{Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Expect(0, 43392, '\P{^Is_Block=_	Hangul_jamo_Extended_A}', "");
-    Error('\p{Is_Blk:-:=Jamo_EXT_A}');
-    Error('\P{Is_Blk:-:=Jamo_EXT_A}');
-    Expect(1, 43391, '\p{Is_Blk=jamoexta}', "");
-    Expect(0, 43391, '\p{^Is_Blk=jamoexta}', "");
-    Expect(0, 43391, '\P{Is_Blk=jamoexta}', "");
-    Expect(1, 43391, '\P{^Is_Blk=jamoexta}', "");
-    Expect(0, 43392, '\p{Is_Blk=jamoexta}', "");
-    Expect(1, 43392, '\p{^Is_Blk=jamoexta}', "");
-    Expect(1, 43392, '\P{Is_Blk=jamoexta}', "");
-    Expect(0, 43392, '\P{^Is_Blk=jamoexta}', "");
-    Expect(1, 43391, '\p{Is_Blk=		JAMO_ext_A}', "");
-    Expect(0, 43391, '\p{^Is_Blk=		JAMO_ext_A}', "");
-    Expect(0, 43391, '\P{Is_Blk=		JAMO_ext_A}', "");
-    Expect(1, 43391, '\P{^Is_Blk=		JAMO_ext_A}', "");
-    Expect(0, 43392, '\p{Is_Blk=		JAMO_ext_A}', "");
-    Expect(1, 43392, '\p{^Is_Blk=		JAMO_ext_A}', "");
-    Expect(1, 43392, '\P{Is_Blk=		JAMO_ext_A}', "");
-    Expect(0, 43392, '\P{^Is_Blk=		JAMO_ext_A}', "");
-    Error('\p{Block=-HANGUL_Jamo_extended_b/a/}');
-    Error('\P{Block=-HANGUL_Jamo_extended_b/a/}');
+    Expect(1, 43391, '\p{Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(0, 43391, '\p{^Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(0, 43391, '\P{Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(1, 43391, '\P{^Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(0, 43392, '\p{Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(1, 43392, '\p{^Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(1, 43392, '\P{Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Expect(0, 43392, '\P{^Is_Block= -HANGUL_JAMO_Extended_a}', "");
+    Error('\p{Is_Blk=-_Jamo_ext_A:=}');
+    Error('\P{Is_Blk=-_Jamo_ext_A:=}');
+    Expect(1, 43391, '\p{Is_Blk:	jamoexta}', "");
+    Expect(0, 43391, '\p{^Is_Blk:	jamoexta}', "");
+    Expect(0, 43391, '\P{Is_Blk:	jamoexta}', "");
+    Expect(1, 43391, '\P{^Is_Blk:	jamoexta}', "");
+    Expect(0, 43392, '\p{Is_Blk:	jamoexta}', "");
+    Expect(1, 43392, '\p{^Is_Blk:	jamoexta}', "");
+    Expect(1, 43392, '\P{Is_Blk:	jamoexta}', "");
+    Expect(0, 43392, '\P{^Is_Blk:	jamoexta}', "");
+    Expect(1, 43391, '\p{Is_Blk= -Jamo_Ext_a}', "");
+    Expect(0, 43391, '\p{^Is_Blk= -Jamo_Ext_a}', "");
+    Expect(0, 43391, '\P{Is_Blk= -Jamo_Ext_a}', "");
+    Expect(1, 43391, '\P{^Is_Blk= -Jamo_Ext_a}', "");
+    Expect(0, 43392, '\p{Is_Blk= -Jamo_Ext_a}', "");
+    Expect(1, 43392, '\p{^Is_Blk= -Jamo_Ext_a}', "");
+    Expect(1, 43392, '\P{Is_Blk= -Jamo_Ext_a}', "");
+    Expect(0, 43392, '\P{^Is_Blk= -Jamo_Ext_a}', "");
+    Error('\p{Block=_-Hangul_jamo_extended_b:=}');
+    Error('\P{Block=_-Hangul_jamo_extended_b:=}');
     Expect(1, 55295, '\p{Block=:\AHangul_Jamo_Extended_B\z:}', "");;
     Expect(0, 57344, '\p{Block=:\AHangul_Jamo_Extended_B\z:}', "");;
     Expect(1, 55295, '\p{Block=hanguljamoextendedb}', "");
@@ -14516,16 +14860,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Block=hanguljamoextendedb}', "");
     Expect(1, 55295, '\p{Block=:\Ahanguljamoextendedb\z:}', "");;
     Expect(0, 57344, '\p{Block=:\Ahanguljamoextendedb\z:}', "");;
-    Expect(1, 55295, '\p{Block=_ hangul_JAMO_extended_B}', "");
-    Expect(0, 55295, '\p{^Block=_ hangul_JAMO_extended_B}', "");
-    Expect(0, 55295, '\P{Block=_ hangul_JAMO_extended_B}', "");
-    Expect(1, 55295, '\P{^Block=_ hangul_JAMO_extended_B}', "");
-    Expect(0, 57344, '\p{Block=_ hangul_JAMO_extended_B}', "");
-    Expect(1, 57344, '\p{^Block=_ hangul_JAMO_extended_B}', "");
-    Expect(1, 57344, '\P{Block=_ hangul_JAMO_extended_B}', "");
-    Expect(0, 57344, '\P{^Block=_ hangul_JAMO_extended_B}', "");
-    Error('\p{Blk=:=jamo_ext_B}');
-    Error('\P{Blk=:=jamo_ext_B}');
+    Expect(1, 55295, '\p{Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(0, 55295, '\p{^Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(0, 55295, '\P{Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(1, 55295, '\P{^Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(0, 57344, '\p{Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(1, 57344, '\p{^Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(1, 57344, '\P{Block=	-HANGUL_Jamo_Extended_B}', "");
+    Expect(0, 57344, '\P{^Block=	-HANGUL_Jamo_Extended_B}', "");
+    Error('\p{Blk= _Jamo_EXT_B/a/}');
+    Error('\P{Blk= _Jamo_EXT_B/a/}');
     Expect(1, 55295, '\p{Blk=:\AJamo_Ext_B\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\AJamo_Ext_B\z:}', "");;
     Expect(1, 55295, '\p{Blk=jamoextb}', "");
@@ -14538,34 +14882,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Blk=jamoextb}', "");
     Expect(1, 55295, '\p{Blk=:\Ajamoextb\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\Ajamoextb\z:}', "");;
-    Expect(1, 55295, '\p{Blk=_Jamo_Ext_B}', "");
-    Expect(0, 55295, '\p{^Blk=_Jamo_Ext_B}', "");
-    Expect(0, 55295, '\P{Blk=_Jamo_Ext_B}', "");
-    Expect(1, 55295, '\P{^Blk=_Jamo_Ext_B}', "");
-    Expect(0, 57344, '\p{Blk=_Jamo_Ext_B}', "");
-    Expect(1, 57344, '\p{^Blk=_Jamo_Ext_B}', "");
-    Expect(1, 57344, '\P{Blk=_Jamo_Ext_B}', "");
-    Expect(0, 57344, '\P{^Blk=_Jamo_Ext_B}', "");
-    Error('\p{Is_Block=_Hangul_JAMO_EXTENDED_B/a/}');
-    Error('\P{Is_Block=_Hangul_JAMO_EXTENDED_B/a/}');
-    Expect(1, 55295, '\p{Is_Block:hanguljamoextendedb}', "");
-    Expect(0, 55295, '\p{^Is_Block:hanguljamoextendedb}', "");
-    Expect(0, 55295, '\P{Is_Block:hanguljamoextendedb}', "");
-    Expect(1, 55295, '\P{^Is_Block:hanguljamoextendedb}', "");
-    Expect(0, 57344, '\p{Is_Block:hanguljamoextendedb}', "");
-    Expect(1, 57344, '\p{^Is_Block:hanguljamoextendedb}', "");
-    Expect(1, 57344, '\P{Is_Block:hanguljamoextendedb}', "");
-    Expect(0, 57344, '\P{^Is_Block:hanguljamoextendedb}', "");
-    Expect(1, 55295, '\p{Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(0, 55295, '\p{^Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(0, 55295, '\P{Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(1, 55295, '\P{^Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(0, 57344, '\p{Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(1, 57344, '\p{^Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(1, 57344, '\P{Is_Block=_hangul_Jamo_Extended_B}', "");
-    Expect(0, 57344, '\P{^Is_Block=_hangul_Jamo_Extended_B}', "");
-    Error('\p{Is_Blk=:=- Jamo_EXT_b}');
-    Error('\P{Is_Blk=:=- Jamo_EXT_b}');
+    Expect(1, 55295, '\p{Blk=-_Jamo_EXT_B}', "");
+    Expect(0, 55295, '\p{^Blk=-_Jamo_EXT_B}', "");
+    Expect(0, 55295, '\P{Blk=-_Jamo_EXT_B}', "");
+    Expect(1, 55295, '\P{^Blk=-_Jamo_EXT_B}', "");
+    Expect(0, 57344, '\p{Blk=-_Jamo_EXT_B}', "");
+    Expect(1, 57344, '\p{^Blk=-_Jamo_EXT_B}', "");
+    Expect(1, 57344, '\P{Blk=-_Jamo_EXT_B}', "");
+    Expect(0, 57344, '\P{^Blk=-_Jamo_EXT_B}', "");
+    Error('\p{Is_Block=_-HANGUL_JAMO_extended_B/a/}');
+    Error('\P{Is_Block=_-HANGUL_JAMO_extended_B/a/}');
+    Expect(1, 55295, '\p{Is_Block: hanguljamoextendedb}', "");
+    Expect(0, 55295, '\p{^Is_Block: hanguljamoextendedb}', "");
+    Expect(0, 55295, '\P{Is_Block: hanguljamoextendedb}', "");
+    Expect(1, 55295, '\P{^Is_Block: hanguljamoextendedb}', "");
+    Expect(0, 57344, '\p{Is_Block: hanguljamoextendedb}', "");
+    Expect(1, 57344, '\p{^Is_Block: hanguljamoextendedb}', "");
+    Expect(1, 57344, '\P{Is_Block: hanguljamoextendedb}', "");
+    Expect(0, 57344, '\P{^Is_Block: hanguljamoextendedb}', "");
+    Expect(1, 55295, '\p{Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(0, 55295, '\p{^Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(0, 55295, '\P{Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(1, 55295, '\P{^Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(0, 57344, '\p{Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(1, 57344, '\p{^Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(1, 57344, '\P{Is_Block=hangul_Jamo_Extended_B}', "");
+    Expect(0, 57344, '\P{^Is_Block=hangul_Jamo_Extended_B}', "");
+    Error('\p{Is_Blk=_Jamo_Ext_B/a/}');
+    Error('\P{Is_Blk=_Jamo_Ext_B/a/}');
     Expect(1, 55295, '\p{Is_Blk=jamoextb}', "");
     Expect(0, 55295, '\p{^Is_Blk=jamoextb}', "");
     Expect(0, 55295, '\P{Is_Blk=jamoextb}', "");
@@ -14574,16 +14918,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Blk=jamoextb}', "");
     Expect(1, 57344, '\P{Is_Blk=jamoextb}', "");
     Expect(0, 57344, '\P{^Is_Blk=jamoextb}', "");
-    Expect(1, 55295, '\p{Is_Blk=-	jamo_ext_B}', "");
-    Expect(0, 55295, '\p{^Is_Blk=-	jamo_ext_B}', "");
-    Expect(0, 55295, '\P{Is_Blk=-	jamo_ext_B}', "");
-    Expect(1, 55295, '\P{^Is_Blk=-	jamo_ext_B}', "");
-    Expect(0, 57344, '\p{Is_Blk=-	jamo_ext_B}', "");
-    Expect(1, 57344, '\p{^Is_Blk=-	jamo_ext_B}', "");
-    Expect(1, 57344, '\P{Is_Blk=-	jamo_ext_B}', "");
-    Expect(0, 57344, '\P{^Is_Blk=-	jamo_ext_B}', "");
-    Error('\p{Block=:=	 Javanese}');
-    Error('\P{Block=:=	 Javanese}');
+    Expect(1, 55295, '\p{Is_Blk= JAMO_Ext_b}', "");
+    Expect(0, 55295, '\p{^Is_Blk= JAMO_Ext_b}', "");
+    Expect(0, 55295, '\P{Is_Blk= JAMO_Ext_b}', "");
+    Expect(1, 55295, '\P{^Is_Blk= JAMO_Ext_b}', "");
+    Expect(0, 57344, '\p{Is_Blk= JAMO_Ext_b}', "");
+    Expect(1, 57344, '\p{^Is_Blk= JAMO_Ext_b}', "");
+    Expect(1, 57344, '\P{Is_Blk= JAMO_Ext_b}', "");
+    Expect(0, 57344, '\P{^Is_Blk= JAMO_Ext_b}', "");
+    Error('\p{Block=/a/-Javanese}');
+    Error('\P{Block=/a/-Javanese}');
     Expect(1, 43487, '\p{Block=:\AJavanese\z:}', "");;
     Expect(0, 43488, '\p{Block=:\AJavanese\z:}', "");;
     Expect(1, 43487, '\p{Block=javanese}', "");
@@ -14596,16 +14940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43488, '\P{^Block=javanese}', "");
     Expect(1, 43487, '\p{Block=:\Ajavanese\z:}', "");;
     Expect(0, 43488, '\p{Block=:\Ajavanese\z:}', "");;
-    Expect(1, 43487, '\p{Block=-Javanese}', "");
-    Expect(0, 43487, '\p{^Block=-Javanese}', "");
-    Expect(0, 43487, '\P{Block=-Javanese}', "");
-    Expect(1, 43487, '\P{^Block=-Javanese}', "");
-    Expect(0, 43488, '\p{Block=-Javanese}', "");
-    Expect(1, 43488, '\p{^Block=-Javanese}', "");
-    Expect(1, 43488, '\P{Block=-Javanese}', "");
-    Expect(0, 43488, '\P{^Block=-Javanese}', "");
-    Error('\p{Blk:	:=javanese}');
-    Error('\P{Blk:	:=javanese}');
+    Expect(1, 43487, '\p{Block:		_Javanese}', "");
+    Expect(0, 43487, '\p{^Block:		_Javanese}', "");
+    Expect(0, 43487, '\P{Block:		_Javanese}', "");
+    Expect(1, 43487, '\P{^Block:		_Javanese}', "");
+    Expect(0, 43488, '\p{Block:		_Javanese}', "");
+    Expect(1, 43488, '\p{^Block:		_Javanese}', "");
+    Expect(1, 43488, '\P{Block:		_Javanese}', "");
+    Expect(0, 43488, '\P{^Block:		_Javanese}', "");
+    Error('\p{Blk=_/a/Javanese}');
+    Error('\P{Blk=_/a/Javanese}');
     Expect(1, 43487, '\p{Blk=:\AJavanese\z:}', "");;
     Expect(0, 43488, '\p{Blk=:\AJavanese\z:}', "");;
     Expect(1, 43487, '\p{Blk=javanese}', "");
@@ -14618,16 +14962,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43488, '\P{^Blk=javanese}', "");
     Expect(1, 43487, '\p{Blk=:\Ajavanese\z:}', "");;
     Expect(0, 43488, '\p{Blk=:\Ajavanese\z:}', "");;
-    Expect(1, 43487, '\p{Blk=		JAVANESE}', "");
-    Expect(0, 43487, '\p{^Blk=		JAVANESE}', "");
-    Expect(0, 43487, '\P{Blk=		JAVANESE}', "");
-    Expect(1, 43487, '\P{^Blk=		JAVANESE}', "");
-    Expect(0, 43488, '\p{Blk=		JAVANESE}', "");
-    Expect(1, 43488, '\p{^Blk=		JAVANESE}', "");
-    Expect(1, 43488, '\P{Blk=		JAVANESE}', "");
-    Expect(0, 43488, '\P{^Blk=		JAVANESE}', "");
-    Error('\p{Is_Block=_Javanese:=}');
-    Error('\P{Is_Block=_Javanese:=}');
+    Expect(1, 43487, '\p{Blk=	Javanese}', "");
+    Expect(0, 43487, '\p{^Blk=	Javanese}', "");
+    Expect(0, 43487, '\P{Blk=	Javanese}', "");
+    Expect(1, 43487, '\P{^Blk=	Javanese}', "");
+    Expect(0, 43488, '\p{Blk=	Javanese}', "");
+    Expect(1, 43488, '\p{^Blk=	Javanese}', "");
+    Expect(1, 43488, '\P{Blk=	Javanese}', "");
+    Expect(0, 43488, '\P{^Blk=	Javanese}', "");
+    Error('\p{Is_Block=_	Javanese/a/}');
+    Error('\P{Is_Block=_	Javanese/a/}');
     Expect(1, 43487, '\p{Is_Block=javanese}', "");
     Expect(0, 43487, '\p{^Is_Block=javanese}', "");
     Expect(0, 43487, '\P{Is_Block=javanese}', "");
@@ -14636,16 +14980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43488, '\p{^Is_Block=javanese}', "");
     Expect(1, 43488, '\P{Is_Block=javanese}', "");
     Expect(0, 43488, '\P{^Is_Block=javanese}', "");
-    Expect(1, 43487, '\p{Is_Block=-Javanese}', "");
-    Expect(0, 43487, '\p{^Is_Block=-Javanese}', "");
-    Expect(0, 43487, '\P{Is_Block=-Javanese}', "");
-    Expect(1, 43487, '\P{^Is_Block=-Javanese}', "");
-    Expect(0, 43488, '\p{Is_Block=-Javanese}', "");
-    Expect(1, 43488, '\p{^Is_Block=-Javanese}', "");
-    Expect(1, 43488, '\P{Is_Block=-Javanese}', "");
-    Expect(0, 43488, '\P{^Is_Block=-Javanese}', "");
-    Error('\p{Is_Blk:   _/a/JAVANESE}');
-    Error('\P{Is_Blk:   _/a/JAVANESE}');
+    Expect(1, 43487, '\p{Is_Block: _JAVANESE}', "");
+    Expect(0, 43487, '\p{^Is_Block: _JAVANESE}', "");
+    Expect(0, 43487, '\P{Is_Block: _JAVANESE}', "");
+    Expect(1, 43487, '\P{^Is_Block: _JAVANESE}', "");
+    Expect(0, 43488, '\p{Is_Block: _JAVANESE}', "");
+    Expect(1, 43488, '\p{^Is_Block: _JAVANESE}', "");
+    Expect(1, 43488, '\P{Is_Block: _JAVANESE}', "");
+    Expect(0, 43488, '\P{^Is_Block: _JAVANESE}', "");
+    Error('\p{Is_Blk= 	Javanese/a/}');
+    Error('\P{Is_Blk= 	Javanese/a/}');
     Expect(1, 43487, '\p{Is_Blk=javanese}', "");
     Expect(0, 43487, '\p{^Is_Blk=javanese}', "");
     Expect(0, 43487, '\P{Is_Blk=javanese}', "");
@@ -14654,16 +14998,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43488, '\p{^Is_Blk=javanese}', "");
     Expect(1, 43488, '\P{Is_Blk=javanese}', "");
     Expect(0, 43488, '\P{^Is_Blk=javanese}', "");
-    Expect(1, 43487, '\p{Is_Blk=_javanese}', "");
-    Expect(0, 43487, '\p{^Is_Blk=_javanese}', "");
-    Expect(0, 43487, '\P{Is_Blk=_javanese}', "");
-    Expect(1, 43487, '\P{^Is_Blk=_javanese}', "");
-    Expect(0, 43488, '\p{Is_Blk=_javanese}', "");
-    Expect(1, 43488, '\p{^Is_Blk=_javanese}', "");
-    Expect(1, 43488, '\P{Is_Blk=_javanese}', "");
-    Expect(0, 43488, '\P{^Is_Blk=_javanese}', "");
-    Error('\p{Block=/a/KAITHI}');
-    Error('\P{Block=/a/KAITHI}');
+    Expect(1, 43487, '\p{Is_Blk=  JAVANESE}', "");
+    Expect(0, 43487, '\p{^Is_Blk=  JAVANESE}', "");
+    Expect(0, 43487, '\P{Is_Blk=  JAVANESE}', "");
+    Expect(1, 43487, '\P{^Is_Blk=  JAVANESE}', "");
+    Expect(0, 43488, '\p{Is_Blk=  JAVANESE}', "");
+    Expect(1, 43488, '\p{^Is_Blk=  JAVANESE}', "");
+    Expect(1, 43488, '\P{Is_Blk=  JAVANESE}', "");
+    Expect(0, 43488, '\P{^Is_Blk=  JAVANESE}', "");
+    Error('\p{Block=/a/_Kaithi}');
+    Error('\P{Block=/a/_Kaithi}');
     Expect(1, 69839, '\p{Block=:\AKaithi\z:}', "");;
     Expect(0, 69840, '\p{Block=:\AKaithi\z:}', "");;
     Expect(1, 69839, '\p{Block=kaithi}', "");
@@ -14676,16 +15020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69840, '\P{^Block=kaithi}', "");
     Expect(1, 69839, '\p{Block=:\Akaithi\z:}', "");;
     Expect(0, 69840, '\p{Block=:\Akaithi\z:}', "");;
-    Expect(1, 69839, '\p{Block=- KAITHI}', "");
-    Expect(0, 69839, '\p{^Block=- KAITHI}', "");
-    Expect(0, 69839, '\P{Block=- KAITHI}', "");
-    Expect(1, 69839, '\P{^Block=- KAITHI}', "");
-    Expect(0, 69840, '\p{Block=- KAITHI}', "");
-    Expect(1, 69840, '\p{^Block=- KAITHI}', "");
-    Expect(1, 69840, '\P{Block=- KAITHI}', "");
-    Expect(0, 69840, '\P{^Block=- KAITHI}', "");
-    Error('\p{Blk=	:=Kaithi}');
-    Error('\P{Blk=	:=Kaithi}');
+    Expect(1, 69839, '\p{Block=_ Kaithi}', "");
+    Expect(0, 69839, '\p{^Block=_ Kaithi}', "");
+    Expect(0, 69839, '\P{Block=_ Kaithi}', "");
+    Expect(1, 69839, '\P{^Block=_ Kaithi}', "");
+    Expect(0, 69840, '\p{Block=_ Kaithi}', "");
+    Expect(1, 69840, '\p{^Block=_ Kaithi}', "");
+    Expect(1, 69840, '\P{Block=_ Kaithi}', "");
+    Expect(0, 69840, '\P{^Block=_ Kaithi}', "");
+    Error('\p{Blk=:=_	kaithi}');
+    Error('\P{Blk=:=_	kaithi}');
     Expect(1, 69839, '\p{Blk=:\AKaithi\z:}', "");;
     Expect(0, 69840, '\p{Blk=:\AKaithi\z:}', "");;
     Expect(1, 69839, '\p{Blk=kaithi}', "");
@@ -14698,16 +15042,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69840, '\P{^Blk=kaithi}', "");
     Expect(1, 69839, '\p{Blk=:\Akaithi\z:}', "");;
     Expect(0, 69840, '\p{Blk=:\Akaithi\z:}', "");;
-    Expect(1, 69839, '\p{Blk= _Kaithi}', "");
-    Expect(0, 69839, '\p{^Blk= _Kaithi}', "");
-    Expect(0, 69839, '\P{Blk= _Kaithi}', "");
-    Expect(1, 69839, '\P{^Blk= _Kaithi}', "");
-    Expect(0, 69840, '\p{Blk= _Kaithi}', "");
-    Expect(1, 69840, '\p{^Blk= _Kaithi}', "");
-    Expect(1, 69840, '\P{Blk= _Kaithi}', "");
-    Expect(0, 69840, '\P{^Blk= _Kaithi}', "");
-    Error('\p{Is_Block=:=Kaithi}');
-    Error('\P{Is_Block=:=Kaithi}');
+    Expect(1, 69839, '\p{Blk=-kaithi}', "");
+    Expect(0, 69839, '\p{^Blk=-kaithi}', "");
+    Expect(0, 69839, '\P{Blk=-kaithi}', "");
+    Expect(1, 69839, '\P{^Blk=-kaithi}', "");
+    Expect(0, 69840, '\p{Blk=-kaithi}', "");
+    Expect(1, 69840, '\p{^Blk=-kaithi}', "");
+    Expect(1, 69840, '\P{Blk=-kaithi}', "");
+    Expect(0, 69840, '\P{^Blk=-kaithi}', "");
+    Error('\p{Is_Block=/a/KAITHI}');
+    Error('\P{Is_Block=/a/KAITHI}');
     Expect(1, 69839, '\p{Is_Block=kaithi}', "");
     Expect(0, 69839, '\p{^Is_Block=kaithi}', "");
     Expect(0, 69839, '\P{Is_Block=kaithi}', "");
@@ -14716,16 +15060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69840, '\p{^Is_Block=kaithi}', "");
     Expect(1, 69840, '\P{Is_Block=kaithi}', "");
     Expect(0, 69840, '\P{^Is_Block=kaithi}', "");
-    Expect(1, 69839, '\p{Is_Block=_	kaithi}', "");
-    Expect(0, 69839, '\p{^Is_Block=_	kaithi}', "");
-    Expect(0, 69839, '\P{Is_Block=_	kaithi}', "");
-    Expect(1, 69839, '\P{^Is_Block=_	kaithi}', "");
-    Expect(0, 69840, '\p{Is_Block=_	kaithi}', "");
-    Expect(1, 69840, '\p{^Is_Block=_	kaithi}', "");
-    Expect(1, 69840, '\P{Is_Block=_	kaithi}', "");
-    Expect(0, 69840, '\P{^Is_Block=_	kaithi}', "");
-    Error('\p{Is_Blk=-:=KAITHI}');
-    Error('\P{Is_Blk=-:=KAITHI}');
+    Expect(1, 69839, '\p{Is_Block=	-Kaithi}', "");
+    Expect(0, 69839, '\p{^Is_Block=	-Kaithi}', "");
+    Expect(0, 69839, '\P{Is_Block=	-Kaithi}', "");
+    Expect(1, 69839, '\P{^Is_Block=	-Kaithi}', "");
+    Expect(0, 69840, '\p{Is_Block=	-Kaithi}', "");
+    Expect(1, 69840, '\p{^Is_Block=	-Kaithi}', "");
+    Expect(1, 69840, '\P{Is_Block=	-Kaithi}', "");
+    Expect(0, 69840, '\P{^Is_Block=	-Kaithi}', "");
+    Error('\p{Is_Blk=:=--Kaithi}');
+    Error('\P{Is_Blk=:=--Kaithi}');
     Expect(1, 69839, '\p{Is_Blk=kaithi}', "");
     Expect(0, 69839, '\p{^Is_Blk=kaithi}', "");
     Expect(0, 69839, '\P{Is_Blk=kaithi}', "");
@@ -14734,16 +15078,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69840, '\p{^Is_Blk=kaithi}', "");
     Expect(1, 69840, '\P{Is_Blk=kaithi}', "");
     Expect(0, 69840, '\P{^Is_Blk=kaithi}', "");
-    Expect(1, 69839, '\p{Is_Blk=_-KAITHI}', "");
-    Expect(0, 69839, '\p{^Is_Blk=_-KAITHI}', "");
-    Expect(0, 69839, '\P{Is_Blk=_-KAITHI}', "");
-    Expect(1, 69839, '\P{^Is_Blk=_-KAITHI}', "");
-    Expect(0, 69840, '\p{Is_Blk=_-KAITHI}', "");
-    Expect(1, 69840, '\p{^Is_Blk=_-KAITHI}', "");
-    Expect(1, 69840, '\P{Is_Blk=_-KAITHI}', "");
-    Expect(0, 69840, '\P{^Is_Blk=_-KAITHI}', "");
-    Error('\p{Block=_Kana_Extended_A/a/}');
-    Error('\P{Block=_Kana_Extended_A/a/}');
+    Expect(1, 69839, '\p{Is_Blk=- KAITHI}', "");
+    Expect(0, 69839, '\p{^Is_Blk=- KAITHI}', "");
+    Expect(0, 69839, '\P{Is_Blk=- KAITHI}', "");
+    Expect(1, 69839, '\P{^Is_Blk=- KAITHI}', "");
+    Expect(0, 69840, '\p{Is_Blk=- KAITHI}', "");
+    Expect(1, 69840, '\p{^Is_Blk=- KAITHI}', "");
+    Expect(1, 69840, '\P{Is_Blk=- KAITHI}', "");
+    Expect(0, 69840, '\P{^Is_Blk=- KAITHI}', "");
+    Error('\p{Block=_Kaktovik_Numerals/a/}');
+    Error('\P{Block=_Kaktovik_Numerals/a/}');
+    Expect(1, 119519, '\p{Block=:\AKaktovik_Numerals\z:}', "");;
+    Expect(0, 119520, '\p{Block=:\AKaktovik_Numerals\z:}', "");;
+    Expect(1, 119519, '\p{Block=kaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^Block=kaktoviknumerals}', "");
+    Expect(0, 119519, '\P{Block=kaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^Block=kaktoviknumerals}', "");
+    Expect(0, 119520, '\p{Block=kaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^Block=kaktoviknumerals}', "");
+    Expect(1, 119520, '\P{Block=kaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^Block=kaktoviknumerals}', "");
+    Expect(1, 119519, '\p{Block=:\Akaktoviknumerals\z:}', "");;
+    Expect(0, 119520, '\p{Block=:\Akaktoviknumerals\z:}', "");;
+    Expect(1, 119519, '\p{Block=_-kaktovik_Numerals}', "");
+    Expect(0, 119519, '\p{^Block=_-kaktovik_Numerals}', "");
+    Expect(0, 119519, '\P{Block=_-kaktovik_Numerals}', "");
+    Expect(1, 119519, '\P{^Block=_-kaktovik_Numerals}', "");
+    Expect(0, 119520, '\p{Block=_-kaktovik_Numerals}', "");
+    Expect(1, 119520, '\p{^Block=_-kaktovik_Numerals}', "");
+    Expect(1, 119520, '\P{Block=_-kaktovik_Numerals}', "");
+    Expect(0, 119520, '\P{^Block=_-kaktovik_Numerals}', "");
+    Error('\p{Blk=/a/KAKTOVIK_NUMERALS}');
+    Error('\P{Blk=/a/KAKTOVIK_NUMERALS}');
+    Expect(1, 119519, '\p{Blk=:\AKaktovik_Numerals\z:}', "");;
+    Expect(0, 119520, '\p{Blk=:\AKaktovik_Numerals\z:}', "");;
+    Expect(1, 119519, '\p{Blk=kaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^Blk=kaktoviknumerals}', "");
+    Expect(0, 119519, '\P{Blk=kaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^Blk=kaktoviknumerals}', "");
+    Expect(0, 119520, '\p{Blk=kaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^Blk=kaktoviknumerals}', "");
+    Expect(1, 119520, '\P{Blk=kaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^Blk=kaktoviknumerals}', "");
+    Expect(1, 119519, '\p{Blk=:\Akaktoviknumerals\z:}', "");;
+    Expect(0, 119520, '\p{Blk=:\Akaktoviknumerals\z:}', "");;
+    Expect(1, 119519, '\p{Blk=_	kaktovik_Numerals}', "");
+    Expect(0, 119519, '\p{^Blk=_	kaktovik_Numerals}', "");
+    Expect(0, 119519, '\P{Blk=_	kaktovik_Numerals}', "");
+    Expect(1, 119519, '\P{^Blk=_	kaktovik_Numerals}', "");
+    Expect(0, 119520, '\p{Blk=_	kaktovik_Numerals}', "");
+    Expect(1, 119520, '\p{^Blk=_	kaktovik_Numerals}', "");
+    Expect(1, 119520, '\P{Blk=_	kaktovik_Numerals}', "");
+    Expect(0, 119520, '\P{^Blk=_	kaktovik_Numerals}', "");
+    Error('\p{Is_Block=  kaktovik_Numerals:=}');
+    Error('\P{Is_Block=  kaktovik_Numerals:=}');
+    Expect(1, 119519, '\p{Is_Block=kaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^Is_Block=kaktoviknumerals}', "");
+    Expect(0, 119519, '\P{Is_Block=kaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^Is_Block=kaktoviknumerals}', "");
+    Expect(0, 119520, '\p{Is_Block=kaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^Is_Block=kaktoviknumerals}', "");
+    Expect(1, 119520, '\P{Is_Block=kaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^Is_Block=kaktoviknumerals}', "");
+    Expect(1, 119519, '\p{Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(0, 119519, '\p{^Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(0, 119519, '\P{Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(1, 119519, '\P{^Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(0, 119520, '\p{Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(1, 119520, '\p{^Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(1, 119520, '\P{Is_Block=		kaktovik_NUMERALS}', "");
+    Expect(0, 119520, '\P{^Is_Block=		kaktovik_NUMERALS}', "");
+    Error('\p{Is_Blk=-Kaktovik_Numerals:=}');
+    Error('\P{Is_Blk=-Kaktovik_Numerals:=}');
+    Expect(1, 119519, '\p{Is_Blk=kaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^Is_Blk=kaktoviknumerals}', "");
+    Expect(0, 119519, '\P{Is_Blk=kaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^Is_Blk=kaktoviknumerals}', "");
+    Expect(0, 119520, '\p{Is_Blk=kaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^Is_Blk=kaktoviknumerals}', "");
+    Expect(1, 119520, '\P{Is_Blk=kaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^Is_Blk=kaktoviknumerals}', "");
+    Expect(1, 119519, '\p{Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(0, 119519, '\p{^Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(0, 119519, '\P{Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(1, 119519, '\P{^Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(0, 119520, '\p{Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(1, 119520, '\p{^Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(1, 119520, '\P{Is_Blk=__Kaktovik_Numerals}', "");
+    Expect(0, 119520, '\P{^Is_Blk=__Kaktovik_Numerals}', "");
+    Error('\p{Block= _kana_EXTENDED_A:=}');
+    Error('\P{Block= _kana_EXTENDED_A:=}');
     Expect(1, 110895, '\p{Block=:\AKana_Extended_A\z:}', "");;
     Expect(0, 110896, '\p{Block=:\AKana_Extended_A\z:}', "");;
     Expect(1, 110895, '\p{Block=kanaextendeda}', "");
@@ -14756,16 +15180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 110896, '\P{^Block=kanaextendeda}', "");
     Expect(1, 110895, '\p{Block=:\Akanaextendeda\z:}', "");;
     Expect(0, 110896, '\p{Block=:\Akanaextendeda\z:}', "");;
-    Expect(1, 110895, '\p{Block=_Kana_extended_A}', "");
-    Expect(0, 110895, '\p{^Block=_Kana_extended_A}', "");
-    Expect(0, 110895, '\P{Block=_Kana_extended_A}', "");
-    Expect(1, 110895, '\P{^Block=_Kana_extended_A}', "");
-    Expect(0, 110896, '\p{Block=_Kana_extended_A}', "");
-    Expect(1, 110896, '\p{^Block=_Kana_extended_A}', "");
-    Expect(1, 110896, '\P{Block=_Kana_extended_A}', "");
-    Expect(0, 110896, '\P{^Block=_Kana_extended_A}', "");
-    Error('\p{Blk=--Kana_EXT_A/a/}');
-    Error('\P{Blk=--Kana_EXT_A/a/}');
+    Expect(1, 110895, '\p{Block= 	Kana_EXTENDED_A}', "");
+    Expect(0, 110895, '\p{^Block= 	Kana_EXTENDED_A}', "");
+    Expect(0, 110895, '\P{Block= 	Kana_EXTENDED_A}', "");
+    Expect(1, 110895, '\P{^Block= 	Kana_EXTENDED_A}', "");
+    Expect(0, 110896, '\p{Block= 	Kana_EXTENDED_A}', "");
+    Expect(1, 110896, '\p{^Block= 	Kana_EXTENDED_A}', "");
+    Expect(1, 110896, '\P{Block= 	Kana_EXTENDED_A}', "");
+    Expect(0, 110896, '\P{^Block= 	Kana_EXTENDED_A}', "");
+    Error('\p{Blk=	:=kana_Ext_A}');
+    Error('\P{Blk=	:=kana_Ext_A}');
     Expect(1, 110895, '\p{Blk=:\AKana_Ext_A\z:}', "");;
     Expect(0, 110896, '\p{Blk=:\AKana_Ext_A\z:}', "");;
     Expect(1, 110895, '\p{Blk=kanaexta}', "");
@@ -14778,16 +15202,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 110896, '\P{^Blk=kanaexta}', "");
     Expect(1, 110895, '\p{Blk=:\Akanaexta\z:}', "");;
     Expect(0, 110896, '\p{Blk=:\Akanaexta\z:}', "");;
-    Expect(1, 110895, '\p{Blk=-Kana_ext_A}', "");
-    Expect(0, 110895, '\p{^Blk=-Kana_ext_A}', "");
-    Expect(0, 110895, '\P{Blk=-Kana_ext_A}', "");
-    Expect(1, 110895, '\P{^Blk=-Kana_ext_A}', "");
-    Expect(0, 110896, '\p{Blk=-Kana_ext_A}', "");
-    Expect(1, 110896, '\p{^Blk=-Kana_ext_A}', "");
-    Expect(1, 110896, '\P{Blk=-Kana_ext_A}', "");
-    Expect(0, 110896, '\P{^Blk=-Kana_ext_A}', "");
-    Error('\p{Is_Block=	/a/kana_extended_A}');
-    Error('\P{Is_Block=	/a/kana_extended_A}');
+    Expect(1, 110895, '\p{Blk: __Kana_Ext_A}', "");
+    Expect(0, 110895, '\p{^Blk: __Kana_Ext_A}', "");
+    Expect(0, 110895, '\P{Blk: __Kana_Ext_A}', "");
+    Expect(1, 110895, '\P{^Blk: __Kana_Ext_A}', "");
+    Expect(0, 110896, '\p{Blk: __Kana_Ext_A}', "");
+    Expect(1, 110896, '\p{^Blk: __Kana_Ext_A}', "");
+    Expect(1, 110896, '\P{Blk: __Kana_Ext_A}', "");
+    Expect(0, 110896, '\P{^Blk: __Kana_Ext_A}', "");
+    Error('\p{Is_Block=--KANA_Extended_A/a/}');
+    Error('\P{Is_Block=--KANA_Extended_A/a/}');
     Expect(1, 110895, '\p{Is_Block=kanaextendeda}', "");
     Expect(0, 110895, '\p{^Is_Block=kanaextendeda}', "");
     Expect(0, 110895, '\P{Is_Block=kanaextendeda}', "");
@@ -14796,16 +15220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110896, '\p{^Is_Block=kanaextendeda}', "");
     Expect(1, 110896, '\P{Is_Block=kanaextendeda}', "");
     Expect(0, 110896, '\P{^Is_Block=kanaextendeda}', "");
-    Expect(1, 110895, '\p{Is_Block=_KANA_Extended_A}', "");
-    Expect(0, 110895, '\p{^Is_Block=_KANA_Extended_A}', "");
-    Expect(0, 110895, '\P{Is_Block=_KANA_Extended_A}', "");
-    Expect(1, 110895, '\P{^Is_Block=_KANA_Extended_A}', "");
-    Expect(0, 110896, '\p{Is_Block=_KANA_Extended_A}', "");
-    Expect(1, 110896, '\p{^Is_Block=_KANA_Extended_A}', "");
-    Expect(1, 110896, '\P{Is_Block=_KANA_Extended_A}', "");
-    Expect(0, 110896, '\P{^Is_Block=_KANA_Extended_A}', "");
-    Error('\p{Is_Blk= /a/Kana_EXT_A}');
-    Error('\P{Is_Blk= /a/Kana_EXT_A}');
+    Expect(1, 110895, '\p{Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(0, 110895, '\p{^Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(0, 110895, '\P{Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(1, 110895, '\P{^Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(0, 110896, '\p{Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(1, 110896, '\p{^Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(1, 110896, '\P{Is_Block=_ kana_EXTENDED_a}', "");
+    Expect(0, 110896, '\P{^Is_Block=_ kana_EXTENDED_a}', "");
+    Error('\p{Is_Blk=/a/Kana_ext_a}');
+    Error('\P{Is_Blk=/a/Kana_ext_a}');
     Expect(1, 110895, '\p{Is_Blk=kanaexta}', "");
     Expect(0, 110895, '\p{^Is_Blk=kanaexta}', "");
     Expect(0, 110895, '\P{Is_Blk=kanaexta}', "");
@@ -14814,78 +15238,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110896, '\p{^Is_Blk=kanaexta}', "");
     Expect(1, 110896, '\P{Is_Blk=kanaexta}', "");
     Expect(0, 110896, '\P{^Is_Blk=kanaexta}', "");
-    Expect(1, 110895, '\p{Is_Blk=	Kana_Ext_A}', "");
-    Expect(0, 110895, '\p{^Is_Blk=	Kana_Ext_A}', "");
-    Expect(0, 110895, '\P{Is_Blk=	Kana_Ext_A}', "");
-    Expect(1, 110895, '\P{^Is_Blk=	Kana_Ext_A}', "");
-    Expect(0, 110896, '\p{Is_Blk=	Kana_Ext_A}', "");
-    Expect(1, 110896, '\p{^Is_Blk=	Kana_Ext_A}', "");
-    Expect(1, 110896, '\P{Is_Blk=	Kana_Ext_A}', "");
-    Expect(0, 110896, '\P{^Is_Blk=	Kana_Ext_A}', "");
-    Error('\p{Block= 	kana_Extended_B/a/}');
-    Error('\P{Block= 	kana_Extended_B/a/}');
+    Expect(1, 110895, '\p{Is_Blk= 	kana_Ext_A}', "");
+    Expect(0, 110895, '\p{^Is_Blk= 	kana_Ext_A}', "");
+    Expect(0, 110895, '\P{Is_Blk= 	kana_Ext_A}', "");
+    Expect(1, 110895, '\P{^Is_Blk= 	kana_Ext_A}', "");
+    Expect(0, 110896, '\p{Is_Blk= 	kana_Ext_A}', "");
+    Expect(1, 110896, '\p{^Is_Blk= 	kana_Ext_A}', "");
+    Expect(1, 110896, '\P{Is_Blk= 	kana_Ext_A}', "");
+    Expect(0, 110896, '\P{^Is_Blk= 	kana_Ext_A}', "");
+    Error('\p{Block:   - Kana_Extended_b:=}');
+    Error('\P{Block:   - Kana_Extended_b:=}');
     Expect(1, 110591, '\p{Block=:\AKana_Extended_B\z:}', "");;
     Expect(0, 110592, '\p{Block=:\AKana_Extended_B\z:}', "");;
-    Expect(1, 110591, '\p{Block=kanaextendedb}', "");
-    Expect(0, 110591, '\p{^Block=kanaextendedb}', "");
-    Expect(0, 110591, '\P{Block=kanaextendedb}', "");
-    Expect(1, 110591, '\P{^Block=kanaextendedb}', "");
-    Expect(0, 110592, '\p{Block=kanaextendedb}', "");
-    Expect(1, 110592, '\p{^Block=kanaextendedb}', "");
-    Expect(1, 110592, '\P{Block=kanaextendedb}', "");
-    Expect(0, 110592, '\P{^Block=kanaextendedb}', "");
+    Expect(1, 110591, '\p{Block:	kanaextendedb}', "");
+    Expect(0, 110591, '\p{^Block:	kanaextendedb}', "");
+    Expect(0, 110591, '\P{Block:	kanaextendedb}', "");
+    Expect(1, 110591, '\P{^Block:	kanaextendedb}', "");
+    Expect(0, 110592, '\p{Block:	kanaextendedb}', "");
+    Expect(1, 110592, '\p{^Block:	kanaextendedb}', "");
+    Expect(1, 110592, '\P{Block:	kanaextendedb}', "");
+    Expect(0, 110592, '\P{^Block:	kanaextendedb}', "");
     Expect(1, 110591, '\p{Block=:\Akanaextendedb\z:}', "");;
     Expect(0, 110592, '\p{Block=:\Akanaextendedb\z:}', "");;
-    Expect(1, 110591, '\p{Block=- kana_EXTENDED_B}', "");
-    Expect(0, 110591, '\p{^Block=- kana_EXTENDED_B}', "");
-    Expect(0, 110591, '\P{Block=- kana_EXTENDED_B}', "");
-    Expect(1, 110591, '\P{^Block=- kana_EXTENDED_B}', "");
-    Expect(0, 110592, '\p{Block=- kana_EXTENDED_B}', "");
-    Expect(1, 110592, '\p{^Block=- kana_EXTENDED_B}', "");
-    Expect(1, 110592, '\P{Block=- kana_EXTENDED_B}', "");
-    Expect(0, 110592, '\P{^Block=- kana_EXTENDED_B}', "");
-    Error('\p{Blk=/a/		KANA_EXT_b}');
-    Error('\P{Blk=/a/		KANA_EXT_b}');
+    Expect(1, 110591, '\p{Block=__KANA_Extended_B}', "");
+    Expect(0, 110591, '\p{^Block=__KANA_Extended_B}', "");
+    Expect(0, 110591, '\P{Block=__KANA_Extended_B}', "");
+    Expect(1, 110591, '\P{^Block=__KANA_Extended_B}', "");
+    Expect(0, 110592, '\p{Block=__KANA_Extended_B}', "");
+    Expect(1, 110592, '\p{^Block=__KANA_Extended_B}', "");
+    Expect(1, 110592, '\P{Block=__KANA_Extended_B}', "");
+    Expect(0, 110592, '\P{^Block=__KANA_Extended_B}', "");
+    Error('\p{Blk=/a/Kana_Ext_b}');
+    Error('\P{Blk=/a/Kana_Ext_b}');
     Expect(1, 110591, '\p{Blk=:\AKana_Ext_B\z:}', "");;
     Expect(0, 110592, '\p{Blk=:\AKana_Ext_B\z:}', "");;
-    Expect(1, 110591, '\p{Blk: kanaextb}', "");
-    Expect(0, 110591, '\p{^Blk: kanaextb}', "");
-    Expect(0, 110591, '\P{Blk: kanaextb}', "");
-    Expect(1, 110591, '\P{^Blk: kanaextb}', "");
-    Expect(0, 110592, '\p{Blk: kanaextb}', "");
-    Expect(1, 110592, '\p{^Blk: kanaextb}', "");
-    Expect(1, 110592, '\P{Blk: kanaextb}', "");
-    Expect(0, 110592, '\P{^Blk: kanaextb}', "");
+    Expect(1, 110591, '\p{Blk=kanaextb}', "");
+    Expect(0, 110591, '\p{^Blk=kanaextb}', "");
+    Expect(0, 110591, '\P{Blk=kanaextb}', "");
+    Expect(1, 110591, '\P{^Blk=kanaextb}', "");
+    Expect(0, 110592, '\p{Blk=kanaextb}', "");
+    Expect(1, 110592, '\p{^Blk=kanaextb}', "");
+    Expect(1, 110592, '\P{Blk=kanaextb}', "");
+    Expect(0, 110592, '\P{^Blk=kanaextb}', "");
     Expect(1, 110591, '\p{Blk=:\Akanaextb\z:}', "");;
     Expect(0, 110592, '\p{Blk=:\Akanaextb\z:}', "");;
-    Expect(1, 110591, '\p{Blk=_Kana_Ext_B}', "");
-    Expect(0, 110591, '\p{^Blk=_Kana_Ext_B}', "");
-    Expect(0, 110591, '\P{Blk=_Kana_Ext_B}', "");
-    Expect(1, 110591, '\P{^Blk=_Kana_Ext_B}', "");
-    Expect(0, 110592, '\p{Blk=_Kana_Ext_B}', "");
-    Expect(1, 110592, '\p{^Blk=_Kana_Ext_B}', "");
-    Expect(1, 110592, '\P{Blk=_Kana_Ext_B}', "");
-    Expect(0, 110592, '\P{^Blk=_Kana_Ext_B}', "");
-    Error('\p{Is_Block=-KANA_EXTENDED_B:=}');
-    Error('\P{Is_Block=-KANA_EXTENDED_B:=}');
-    Expect(1, 110591, '\p{Is_Block=kanaextendedb}', "");
-    Expect(0, 110591, '\p{^Is_Block=kanaextendedb}', "");
-    Expect(0, 110591, '\P{Is_Block=kanaextendedb}', "");
-    Expect(1, 110591, '\P{^Is_Block=kanaextendedb}', "");
-    Expect(0, 110592, '\p{Is_Block=kanaextendedb}', "");
-    Expect(1, 110592, '\p{^Is_Block=kanaextendedb}', "");
-    Expect(1, 110592, '\P{Is_Block=kanaextendedb}', "");
-    Expect(0, 110592, '\P{^Is_Block=kanaextendedb}', "");
-    Expect(1, 110591, '\p{Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(0, 110591, '\p{^Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(0, 110591, '\P{Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(1, 110591, '\P{^Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(0, 110592, '\p{Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(1, 110592, '\p{^Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(1, 110592, '\P{Is_Block=-_kana_EXTENDED_B}', "");
-    Expect(0, 110592, '\P{^Is_Block=-_kana_EXTENDED_B}', "");
-    Error('\p{Is_Blk: Kana_EXT_B/a/}');
-    Error('\P{Is_Blk: Kana_EXT_B/a/}');
+    Expect(1, 110591, '\p{Blk= KANA_EXT_b}', "");
+    Expect(0, 110591, '\p{^Blk= KANA_EXT_b}', "");
+    Expect(0, 110591, '\P{Blk= KANA_EXT_b}', "");
+    Expect(1, 110591, '\P{^Blk= KANA_EXT_b}', "");
+    Expect(0, 110592, '\p{Blk= KANA_EXT_b}', "");
+    Expect(1, 110592, '\p{^Blk= KANA_EXT_b}', "");
+    Expect(1, 110592, '\P{Blk= KANA_EXT_b}', "");
+    Expect(0, 110592, '\P{^Blk= KANA_EXT_b}', "");
+    Error('\p{Is_Block=:=		Kana_extended_B}');
+    Error('\P{Is_Block=:=		Kana_extended_B}');
+    Expect(1, 110591, '\p{Is_Block:kanaextendedb}', "");
+    Expect(0, 110591, '\p{^Is_Block:kanaextendedb}', "");
+    Expect(0, 110591, '\P{Is_Block:kanaextendedb}', "");
+    Expect(1, 110591, '\P{^Is_Block:kanaextendedb}', "");
+    Expect(0, 110592, '\p{Is_Block:kanaextendedb}', "");
+    Expect(1, 110592, '\p{^Is_Block:kanaextendedb}', "");
+    Expect(1, 110592, '\P{Is_Block:kanaextendedb}', "");
+    Expect(0, 110592, '\P{^Is_Block:kanaextendedb}', "");
+    Expect(1, 110591, '\p{Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(0, 110591, '\p{^Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(0, 110591, '\P{Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(1, 110591, '\P{^Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(0, 110592, '\p{Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(1, 110592, '\p{^Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(1, 110592, '\P{Is_Block:   -_kana_EXTENDED_B}', "");
+    Expect(0, 110592, '\P{^Is_Block:   -_kana_EXTENDED_B}', "");
+    Error('\p{Is_Blk=-	KANA_EXT_B:=}');
+    Error('\P{Is_Blk=-	KANA_EXT_B:=}');
     Expect(1, 110591, '\p{Is_Blk=kanaextb}', "");
     Expect(0, 110591, '\p{^Is_Blk=kanaextb}', "");
     Expect(0, 110591, '\P{Is_Blk=kanaextb}', "");
@@ -14894,16 +15318,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110592, '\p{^Is_Blk=kanaextb}', "");
     Expect(1, 110592, '\P{Is_Blk=kanaextb}', "");
     Expect(0, 110592, '\P{^Is_Blk=kanaextb}', "");
-    Expect(1, 110591, '\p{Is_Blk=- kana_Ext_B}', "");
-    Expect(0, 110591, '\p{^Is_Blk=- kana_Ext_B}', "");
-    Expect(0, 110591, '\P{Is_Blk=- kana_Ext_B}', "");
-    Expect(1, 110591, '\P{^Is_Blk=- kana_Ext_B}', "");
-    Expect(0, 110592, '\p{Is_Blk=- kana_Ext_B}', "");
-    Expect(1, 110592, '\p{^Is_Blk=- kana_Ext_B}', "");
-    Expect(1, 110592, '\P{Is_Blk=- kana_Ext_B}', "");
-    Expect(0, 110592, '\P{^Is_Blk=- kana_Ext_B}', "");
-    Error('\p{Block=		Kana_Supplement:=}');
-    Error('\P{Block=		Kana_Supplement:=}');
+    Expect(1, 110591, '\p{Is_Blk=	Kana_Ext_B}', "");
+    Expect(0, 110591, '\p{^Is_Blk=	Kana_Ext_B}', "");
+    Expect(0, 110591, '\P{Is_Blk=	Kana_Ext_B}', "");
+    Expect(1, 110591, '\P{^Is_Blk=	Kana_Ext_B}', "");
+    Expect(0, 110592, '\p{Is_Blk=	Kana_Ext_B}', "");
+    Expect(1, 110592, '\p{^Is_Blk=	Kana_Ext_B}', "");
+    Expect(1, 110592, '\P{Is_Blk=	Kana_Ext_B}', "");
+    Expect(0, 110592, '\P{^Is_Blk=	Kana_Ext_B}', "");
+    Error('\p{Block=  Kana_Supplement/a/}');
+    Error('\P{Block=  Kana_Supplement/a/}');
     Expect(1, 110847, '\p{Block=:\AKana_Supplement\z:}', "");;
     Expect(0, 110848, '\p{Block=:\AKana_Supplement\z:}', "");;
     Expect(1, 110847, '\p{Block=kanasupplement}', "");
@@ -14916,16 +15340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 110848, '\P{^Block=kanasupplement}', "");
     Expect(1, 110847, '\p{Block=:\Akanasupplement\z:}', "");;
     Expect(0, 110848, '\p{Block=:\Akanasupplement\z:}', "");;
-    Expect(1, 110847, '\p{Block= 	Kana_Supplement}', "");
-    Expect(0, 110847, '\p{^Block= 	Kana_Supplement}', "");
-    Expect(0, 110847, '\P{Block= 	Kana_Supplement}', "");
-    Expect(1, 110847, '\P{^Block= 	Kana_Supplement}', "");
-    Expect(0, 110848, '\p{Block= 	Kana_Supplement}', "");
-    Expect(1, 110848, '\p{^Block= 	Kana_Supplement}', "");
-    Expect(1, 110848, '\P{Block= 	Kana_Supplement}', "");
-    Expect(0, 110848, '\P{^Block= 	Kana_Supplement}', "");
-    Error('\p{Blk=	:=kana_sup}');
-    Error('\P{Blk=	:=kana_sup}');
+    Expect(1, 110847, '\p{Block=	_kana_SUPPLEMENT}', "");
+    Expect(0, 110847, '\p{^Block=	_kana_SUPPLEMENT}', "");
+    Expect(0, 110847, '\P{Block=	_kana_SUPPLEMENT}', "");
+    Expect(1, 110847, '\P{^Block=	_kana_SUPPLEMENT}', "");
+    Expect(0, 110848, '\p{Block=	_kana_SUPPLEMENT}', "");
+    Expect(1, 110848, '\p{^Block=	_kana_SUPPLEMENT}', "");
+    Expect(1, 110848, '\P{Block=	_kana_SUPPLEMENT}', "");
+    Expect(0, 110848, '\P{^Block=	_kana_SUPPLEMENT}', "");
+    Error('\p{Blk=/a/-KANA_SUP}');
+    Error('\P{Blk=/a/-KANA_SUP}');
     Expect(1, 110847, '\p{Blk=:\AKana_Sup\z:}', "");;
     Expect(0, 110848, '\p{Blk=:\AKana_Sup\z:}', "");;
     Expect(1, 110847, '\p{Blk=kanasup}', "");
@@ -14938,16 +15362,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 110848, '\P{^Blk=kanasup}', "");
     Expect(1, 110847, '\p{Blk=:\Akanasup\z:}', "");;
     Expect(0, 110848, '\p{Blk=:\Akanasup\z:}', "");;
-    Expect(1, 110847, '\p{Blk= _KANA_SUP}', "");
-    Expect(0, 110847, '\p{^Blk= _KANA_SUP}', "");
-    Expect(0, 110847, '\P{Blk= _KANA_SUP}', "");
-    Expect(1, 110847, '\P{^Blk= _KANA_SUP}', "");
-    Expect(0, 110848, '\p{Blk= _KANA_SUP}', "");
-    Expect(1, 110848, '\p{^Blk= _KANA_SUP}', "");
-    Expect(1, 110848, '\P{Blk= _KANA_SUP}', "");
-    Expect(0, 110848, '\P{^Blk= _KANA_SUP}', "");
-    Error('\p{Is_Block=	-Kana_SUPPLEMENT:=}');
-    Error('\P{Is_Block=	-Kana_SUPPLEMENT:=}');
+    Expect(1, 110847, '\p{Blk=-_Kana_sup}', "");
+    Expect(0, 110847, '\p{^Blk=-_Kana_sup}', "");
+    Expect(0, 110847, '\P{Blk=-_Kana_sup}', "");
+    Expect(1, 110847, '\P{^Blk=-_Kana_sup}', "");
+    Expect(0, 110848, '\p{Blk=-_Kana_sup}', "");
+    Expect(1, 110848, '\p{^Blk=-_Kana_sup}', "");
+    Expect(1, 110848, '\P{Blk=-_Kana_sup}', "");
+    Expect(0, 110848, '\P{^Blk=-_Kana_sup}', "");
+    Error('\p{Is_Block=	-kana_Supplement/a/}');
+    Error('\P{Is_Block=	-kana_Supplement/a/}');
     Expect(1, 110847, '\p{Is_Block=kanasupplement}', "");
     Expect(0, 110847, '\p{^Is_Block=kanasupplement}', "");
     Expect(0, 110847, '\P{Is_Block=kanasupplement}', "");
@@ -14956,16 +15380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110848, '\p{^Is_Block=kanasupplement}', "");
     Expect(1, 110848, '\P{Is_Block=kanasupplement}', "");
     Expect(0, 110848, '\P{^Is_Block=kanasupplement}', "");
-    Expect(1, 110847, '\p{Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(0, 110847, '\p{^Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(0, 110847, '\P{Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(1, 110847, '\P{^Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(0, 110848, '\p{Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(1, 110848, '\p{^Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(1, 110848, '\P{Is_Block=	-kana_SUPPLEMENT}', "");
-    Expect(0, 110848, '\P{^Is_Block=	-kana_SUPPLEMENT}', "");
-    Error('\p{Is_Blk= :=kana_SUP}');
-    Error('\P{Is_Blk= :=kana_SUP}');
+    Expect(1, 110847, '\p{Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(0, 110847, '\p{^Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(0, 110847, '\P{Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(1, 110847, '\P{^Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(0, 110848, '\p{Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(1, 110848, '\p{^Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(1, 110848, '\P{Is_Block=-	Kana_SUPPLEMENT}', "");
+    Expect(0, 110848, '\P{^Is_Block=-	Kana_SUPPLEMENT}', "");
+    Error('\p{Is_Blk= Kana_sup/a/}');
+    Error('\P{Is_Blk= Kana_sup/a/}');
     Expect(1, 110847, '\p{Is_Blk=kanasup}', "");
     Expect(0, 110847, '\p{^Is_Blk=kanasup}', "");
     Expect(0, 110847, '\P{Is_Blk=kanasup}', "");
@@ -14974,16 +15398,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110848, '\p{^Is_Blk=kanasup}', "");
     Expect(1, 110848, '\P{Is_Blk=kanasup}', "");
     Expect(0, 110848, '\P{^Is_Blk=kanasup}', "");
-    Expect(1, 110847, '\p{Is_Blk=	KANA_SUP}', "");
-    Expect(0, 110847, '\p{^Is_Blk=	KANA_SUP}', "");
-    Expect(0, 110847, '\P{Is_Blk=	KANA_SUP}', "");
-    Expect(1, 110847, '\P{^Is_Blk=	KANA_SUP}', "");
-    Expect(0, 110848, '\p{Is_Blk=	KANA_SUP}', "");
-    Expect(1, 110848, '\p{^Is_Blk=	KANA_SUP}', "");
-    Expect(1, 110848, '\P{Is_Blk=	KANA_SUP}', "");
-    Expect(0, 110848, '\P{^Is_Blk=	KANA_SUP}', "");
-    Error('\p{Block: :=	Kanbun}');
-    Error('\P{Block: :=	Kanbun}');
+    Expect(1, 110847, '\p{Is_Blk= -Kana_Sup}', "");
+    Expect(0, 110847, '\p{^Is_Blk= -Kana_Sup}', "");
+    Expect(0, 110847, '\P{Is_Blk= -Kana_Sup}', "");
+    Expect(1, 110847, '\P{^Is_Blk= -Kana_Sup}', "");
+    Expect(0, 110848, '\p{Is_Blk= -Kana_Sup}', "");
+    Expect(1, 110848, '\p{^Is_Blk= -Kana_Sup}', "");
+    Expect(1, 110848, '\P{Is_Blk= -Kana_Sup}', "");
+    Expect(0, 110848, '\P{^Is_Blk= -Kana_Sup}', "");
+    Error('\p{Block:			kanbun/a/}');
+    Error('\P{Block:			kanbun/a/}');
     Expect(1, 12703, '\p{Block=:\AKanbun\z:}', "");;
     Expect(0, 12704, '\p{Block=:\AKanbun\z:}', "");;
     Expect(1, 12703, '\p{Block=kanbun}', "");
@@ -14996,16 +15420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12704, '\P{^Block=kanbun}', "");
     Expect(1, 12703, '\p{Block=:\Akanbun\z:}', "");;
     Expect(0, 12704, '\p{Block=:\Akanbun\z:}', "");;
-    Expect(1, 12703, '\p{Block= 	Kanbun}', "");
-    Expect(0, 12703, '\p{^Block= 	Kanbun}', "");
-    Expect(0, 12703, '\P{Block= 	Kanbun}', "");
-    Expect(1, 12703, '\P{^Block= 	Kanbun}', "");
-    Expect(0, 12704, '\p{Block= 	Kanbun}', "");
-    Expect(1, 12704, '\p{^Block= 	Kanbun}', "");
-    Expect(1, 12704, '\P{Block= 	Kanbun}', "");
-    Expect(0, 12704, '\P{^Block= 	Kanbun}', "");
-    Error('\p{Blk= 	kanbun/a/}');
-    Error('\P{Blk= 	kanbun/a/}');
+    Expect(1, 12703, '\p{Block= -Kanbun}', "");
+    Expect(0, 12703, '\p{^Block= -Kanbun}', "");
+    Expect(0, 12703, '\P{Block= -Kanbun}', "");
+    Expect(1, 12703, '\P{^Block= -Kanbun}', "");
+    Expect(0, 12704, '\p{Block= -Kanbun}', "");
+    Expect(1, 12704, '\p{^Block= -Kanbun}', "");
+    Expect(1, 12704, '\P{Block= -Kanbun}', "");
+    Expect(0, 12704, '\P{^Block= -Kanbun}', "");
+    Error('\p{Blk=/a/_KANBUN}');
+    Error('\P{Blk=/a/_KANBUN}');
     Expect(1, 12703, '\p{Blk=:\AKanbun\z:}', "");;
     Expect(0, 12704, '\p{Blk=:\AKanbun\z:}', "");;
     Expect(1, 12703, '\p{Blk=kanbun}', "");
@@ -15018,34 +15442,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12704, '\P{^Blk=kanbun}', "");
     Expect(1, 12703, '\p{Blk=:\Akanbun\z:}', "");;
     Expect(0, 12704, '\p{Blk=:\Akanbun\z:}', "");;
-    Expect(1, 12703, '\p{Blk=Kanbun}', "");
-    Expect(0, 12703, '\p{^Blk=Kanbun}', "");
-    Expect(0, 12703, '\P{Blk=Kanbun}', "");
-    Expect(1, 12703, '\P{^Blk=Kanbun}', "");
-    Expect(0, 12704, '\p{Blk=Kanbun}', "");
-    Expect(1, 12704, '\p{^Blk=Kanbun}', "");
-    Expect(1, 12704, '\P{Blk=Kanbun}', "");
-    Expect(0, 12704, '\P{^Blk=Kanbun}', "");
-    Error('\p{Is_Block=	 Kanbun:=}');
-    Error('\P{Is_Block=	 Kanbun:=}');
-    Expect(1, 12703, '\p{Is_Block=kanbun}', "");
-    Expect(0, 12703, '\p{^Is_Block=kanbun}', "");
-    Expect(0, 12703, '\P{Is_Block=kanbun}', "");
-    Expect(1, 12703, '\P{^Is_Block=kanbun}', "");
-    Expect(0, 12704, '\p{Is_Block=kanbun}', "");
-    Expect(1, 12704, '\p{^Is_Block=kanbun}', "");
-    Expect(1, 12704, '\P{Is_Block=kanbun}', "");
-    Expect(0, 12704, '\P{^Is_Block=kanbun}', "");
-    Expect(1, 12703, '\p{Is_Block=_ Kanbun}', "");
-    Expect(0, 12703, '\p{^Is_Block=_ Kanbun}', "");
-    Expect(0, 12703, '\P{Is_Block=_ Kanbun}', "");
-    Expect(1, 12703, '\P{^Is_Block=_ Kanbun}', "");
-    Expect(0, 12704, '\p{Is_Block=_ Kanbun}', "");
-    Expect(1, 12704, '\p{^Is_Block=_ Kanbun}', "");
-    Expect(1, 12704, '\P{Is_Block=_ Kanbun}', "");
-    Expect(0, 12704, '\P{^Is_Block=_ Kanbun}', "");
-    Error('\p{Is_Blk=/a/_ Kanbun}');
-    Error('\P{Is_Blk=/a/_ Kanbun}');
+    Expect(1, 12703, '\p{Blk=-_KANBUN}', "");
+    Expect(0, 12703, '\p{^Blk=-_KANBUN}', "");
+    Expect(0, 12703, '\P{Blk=-_KANBUN}', "");
+    Expect(1, 12703, '\P{^Blk=-_KANBUN}', "");
+    Expect(0, 12704, '\p{Blk=-_KANBUN}', "");
+    Expect(1, 12704, '\p{^Blk=-_KANBUN}', "");
+    Expect(1, 12704, '\P{Blk=-_KANBUN}', "");
+    Expect(0, 12704, '\P{^Blk=-_KANBUN}', "");
+    Error('\p{Is_Block=	/a/KANBUN}');
+    Error('\P{Is_Block=	/a/KANBUN}');
+    Expect(1, 12703, '\p{Is_Block: kanbun}', "");
+    Expect(0, 12703, '\p{^Is_Block: kanbun}', "");
+    Expect(0, 12703, '\P{Is_Block: kanbun}', "");
+    Expect(1, 12703, '\P{^Is_Block: kanbun}', "");
+    Expect(0, 12704, '\p{Is_Block: kanbun}', "");
+    Expect(1, 12704, '\p{^Is_Block: kanbun}', "");
+    Expect(1, 12704, '\P{Is_Block: kanbun}', "");
+    Expect(0, 12704, '\P{^Is_Block: kanbun}', "");
+    Expect(1, 12703, '\p{Is_Block=	_Kanbun}', "");
+    Expect(0, 12703, '\p{^Is_Block=	_Kanbun}', "");
+    Expect(0, 12703, '\P{Is_Block=	_Kanbun}', "");
+    Expect(1, 12703, '\P{^Is_Block=	_Kanbun}', "");
+    Expect(0, 12704, '\p{Is_Block=	_Kanbun}', "");
+    Expect(1, 12704, '\p{^Is_Block=	_Kanbun}', "");
+    Expect(1, 12704, '\P{Is_Block=	_Kanbun}', "");
+    Expect(0, 12704, '\P{^Is_Block=	_Kanbun}', "");
+    Error('\p{Is_Blk:	_kanbun/a/}');
+    Error('\P{Is_Blk:	_kanbun/a/}');
     Expect(1, 12703, '\p{Is_Blk=kanbun}', "");
     Expect(0, 12703, '\p{^Is_Blk=kanbun}', "");
     Expect(0, 12703, '\P{Is_Blk=kanbun}', "");
@@ -15054,38 +15478,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12704, '\p{^Is_Blk=kanbun}', "");
     Expect(1, 12704, '\P{Is_Blk=kanbun}', "");
     Expect(0, 12704, '\P{^Is_Blk=kanbun}', "");
-    Expect(1, 12703, '\p{Is_Blk=	Kanbun}', "");
-    Expect(0, 12703, '\p{^Is_Blk=	Kanbun}', "");
-    Expect(0, 12703, '\P{Is_Blk=	Kanbun}', "");
-    Expect(1, 12703, '\P{^Is_Blk=	Kanbun}', "");
-    Expect(0, 12704, '\p{Is_Blk=	Kanbun}', "");
-    Expect(1, 12704, '\p{^Is_Blk=	Kanbun}', "");
-    Expect(1, 12704, '\P{Is_Blk=	Kanbun}', "");
-    Expect(0, 12704, '\P{^Is_Blk=	Kanbun}', "");
-    Error('\p{Block=:=__Kangxi_RADICALS}');
-    Error('\P{Block=:=__Kangxi_RADICALS}');
+    Expect(1, 12703, '\p{Is_Blk=--KANBUN}', "");
+    Expect(0, 12703, '\p{^Is_Blk=--KANBUN}', "");
+    Expect(0, 12703, '\P{Is_Blk=--KANBUN}', "");
+    Expect(1, 12703, '\P{^Is_Blk=--KANBUN}', "");
+    Expect(0, 12704, '\p{Is_Blk=--KANBUN}', "");
+    Expect(1, 12704, '\p{^Is_Blk=--KANBUN}', "");
+    Expect(1, 12704, '\P{Is_Blk=--KANBUN}', "");
+    Expect(0, 12704, '\P{^Is_Blk=--KANBUN}', "");
+    Error('\p{Block=	/a/Kangxi_radicals}');
+    Error('\P{Block=	/a/Kangxi_radicals}');
     Expect(1, 12255, '\p{Block=:\AKangxi_Radicals\z:}', "");;
     Expect(0, 12256, '\p{Block=:\AKangxi_Radicals\z:}', "");;
-    Expect(1, 12255, '\p{Block:   kangxiradicals}', "");
-    Expect(0, 12255, '\p{^Block:   kangxiradicals}', "");
-    Expect(0, 12255, '\P{Block:   kangxiradicals}', "");
-    Expect(1, 12255, '\P{^Block:   kangxiradicals}', "");
-    Expect(0, 12256, '\p{Block:   kangxiradicals}', "");
-    Expect(1, 12256, '\p{^Block:   kangxiradicals}', "");
-    Expect(1, 12256, '\P{Block:   kangxiradicals}', "");
-    Expect(0, 12256, '\P{^Block:   kangxiradicals}', "");
+    Expect(1, 12255, '\p{Block=kangxiradicals}', "");
+    Expect(0, 12255, '\p{^Block=kangxiradicals}', "");
+    Expect(0, 12255, '\P{Block=kangxiradicals}', "");
+    Expect(1, 12255, '\P{^Block=kangxiradicals}', "");
+    Expect(0, 12256, '\p{Block=kangxiradicals}', "");
+    Expect(1, 12256, '\p{^Block=kangxiradicals}', "");
+    Expect(1, 12256, '\P{Block=kangxiradicals}', "");
+    Expect(0, 12256, '\P{^Block=kangxiradicals}', "");
     Expect(1, 12255, '\p{Block=:\Akangxiradicals\z:}', "");;
     Expect(0, 12256, '\p{Block=:\Akangxiradicals\z:}', "");;
-    Expect(1, 12255, '\p{Block=-Kangxi_Radicals}', "");
-    Expect(0, 12255, '\p{^Block=-Kangxi_Radicals}', "");
-    Expect(0, 12255, '\P{Block=-Kangxi_Radicals}', "");
-    Expect(1, 12255, '\P{^Block=-Kangxi_Radicals}', "");
-    Expect(0, 12256, '\p{Block=-Kangxi_Radicals}', "");
-    Expect(1, 12256, '\p{^Block=-Kangxi_Radicals}', "");
-    Expect(1, 12256, '\P{Block=-Kangxi_Radicals}', "");
-    Expect(0, 12256, '\P{^Block=-Kangxi_Radicals}', "");
-    Error('\p{Blk=-:=kangxi}');
-    Error('\P{Blk=-:=kangxi}');
+    Expect(1, 12255, '\p{Block= -Kangxi_radicals}', "");
+    Expect(0, 12255, '\p{^Block= -Kangxi_radicals}', "");
+    Expect(0, 12255, '\P{Block= -Kangxi_radicals}', "");
+    Expect(1, 12255, '\P{^Block= -Kangxi_radicals}', "");
+    Expect(0, 12256, '\p{Block= -Kangxi_radicals}', "");
+    Expect(1, 12256, '\p{^Block= -Kangxi_radicals}', "");
+    Expect(1, 12256, '\P{Block= -Kangxi_radicals}', "");
+    Expect(0, 12256, '\P{^Block= -Kangxi_radicals}', "");
+    Error('\p{Blk=/a/Kangxi}');
+    Error('\P{Blk=/a/Kangxi}');
     Expect(1, 12255, '\p{Blk=:\AKangxi\z:}', "");;
     Expect(0, 12256, '\p{Blk=:\AKangxi\z:}', "");;
     Expect(1, 12255, '\p{Blk=kangxi}', "");
@@ -15098,16 +15522,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12256, '\P{^Blk=kangxi}', "");
     Expect(1, 12255, '\p{Blk=:\Akangxi\z:}', "");;
     Expect(0, 12256, '\p{Blk=:\Akangxi\z:}', "");;
-    Expect(1, 12255, '\p{Blk=	_kangxi}', "");
-    Expect(0, 12255, '\p{^Blk=	_kangxi}', "");
-    Expect(0, 12255, '\P{Blk=	_kangxi}', "");
-    Expect(1, 12255, '\P{^Blk=	_kangxi}', "");
-    Expect(0, 12256, '\p{Blk=	_kangxi}', "");
-    Expect(1, 12256, '\p{^Blk=	_kangxi}', "");
-    Expect(1, 12256, '\P{Blk=	_kangxi}', "");
-    Expect(0, 12256, '\P{^Blk=	_kangxi}', "");
-    Error('\p{Is_Block= 	Kangxi_radicals:=}');
-    Error('\P{Is_Block= 	Kangxi_radicals:=}');
+    Expect(1, 12255, '\p{Blk=--Kangxi}', "");
+    Expect(0, 12255, '\p{^Blk=--Kangxi}', "");
+    Expect(0, 12255, '\P{Blk=--Kangxi}', "");
+    Expect(1, 12255, '\P{^Blk=--Kangxi}', "");
+    Expect(0, 12256, '\p{Blk=--Kangxi}', "");
+    Expect(1, 12256, '\p{^Blk=--Kangxi}', "");
+    Expect(1, 12256, '\P{Blk=--Kangxi}', "");
+    Expect(0, 12256, '\P{^Blk=--Kangxi}', "");
+    Error('\p{Is_Block=:=	_kangxi_Radicals}');
+    Error('\P{Is_Block=:=	_kangxi_Radicals}');
     Expect(1, 12255, '\p{Is_Block=kangxiradicals}', "");
     Expect(0, 12255, '\p{^Is_Block=kangxiradicals}', "");
     Expect(0, 12255, '\P{Is_Block=kangxiradicals}', "");
@@ -15116,16 +15540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12256, '\p{^Is_Block=kangxiradicals}', "");
     Expect(1, 12256, '\P{Is_Block=kangxiradicals}', "");
     Expect(0, 12256, '\P{^Is_Block=kangxiradicals}', "");
-    Expect(1, 12255, '\p{Is_Block=-kangxi_radicals}', "");
-    Expect(0, 12255, '\p{^Is_Block=-kangxi_radicals}', "");
-    Expect(0, 12255, '\P{Is_Block=-kangxi_radicals}', "");
-    Expect(1, 12255, '\P{^Is_Block=-kangxi_radicals}', "");
-    Expect(0, 12256, '\p{Is_Block=-kangxi_radicals}', "");
-    Expect(1, 12256, '\p{^Is_Block=-kangxi_radicals}', "");
-    Expect(1, 12256, '\P{Is_Block=-kangxi_radicals}', "");
-    Expect(0, 12256, '\P{^Is_Block=-kangxi_radicals}', "");
-    Error('\p{Is_Blk= _KANGXI/a/}');
-    Error('\P{Is_Blk= _KANGXI/a/}');
+    Expect(1, 12255, '\p{Is_Block=-	kangxi_RADICALS}', "");
+    Expect(0, 12255, '\p{^Is_Block=-	kangxi_RADICALS}', "");
+    Expect(0, 12255, '\P{Is_Block=-	kangxi_RADICALS}', "");
+    Expect(1, 12255, '\P{^Is_Block=-	kangxi_RADICALS}', "");
+    Expect(0, 12256, '\p{Is_Block=-	kangxi_RADICALS}', "");
+    Expect(1, 12256, '\p{^Is_Block=-	kangxi_RADICALS}', "");
+    Expect(1, 12256, '\P{Is_Block=-	kangxi_RADICALS}', "");
+    Expect(0, 12256, '\P{^Is_Block=-	kangxi_RADICALS}', "");
+    Error('\p{Is_Blk= :=kangxi}');
+    Error('\P{Is_Blk= :=kangxi}');
     Expect(1, 12255, '\p{Is_Blk=kangxi}', "");
     Expect(0, 12255, '\p{^Is_Blk=kangxi}', "");
     Expect(0, 12255, '\P{Is_Blk=kangxi}', "");
@@ -15134,16 +15558,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12256, '\p{^Is_Blk=kangxi}', "");
     Expect(1, 12256, '\P{Is_Blk=kangxi}', "");
     Expect(0, 12256, '\P{^Is_Blk=kangxi}', "");
-    Expect(1, 12255, '\p{Is_Blk=	KANGXI}', "");
-    Expect(0, 12255, '\p{^Is_Blk=	KANGXI}', "");
-    Expect(0, 12255, '\P{Is_Blk=	KANGXI}', "");
-    Expect(1, 12255, '\P{^Is_Blk=	KANGXI}', "");
-    Expect(0, 12256, '\p{Is_Blk=	KANGXI}', "");
-    Expect(1, 12256, '\p{^Is_Blk=	KANGXI}', "");
-    Expect(1, 12256, '\P{Is_Blk=	KANGXI}', "");
-    Expect(0, 12256, '\P{^Is_Blk=	KANGXI}', "");
-    Error('\p{Block=/a/kannada}');
-    Error('\P{Block=/a/kannada}');
+    Expect(1, 12255, '\p{Is_Blk= 	Kangxi}', "");
+    Expect(0, 12255, '\p{^Is_Blk= 	Kangxi}', "");
+    Expect(0, 12255, '\P{Is_Blk= 	Kangxi}', "");
+    Expect(1, 12255, '\P{^Is_Blk= 	Kangxi}', "");
+    Expect(0, 12256, '\p{Is_Blk= 	Kangxi}', "");
+    Expect(1, 12256, '\p{^Is_Blk= 	Kangxi}', "");
+    Expect(1, 12256, '\P{Is_Blk= 	Kangxi}', "");
+    Expect(0, 12256, '\P{^Is_Blk= 	Kangxi}', "");
+    Error('\p{Block=/a/ kannada}');
+    Error('\P{Block=/a/ kannada}');
     Expect(1, 3327, '\p{Block=:\AKannada\z:}', "");;
     Expect(0, 3328, '\p{Block=:\AKannada\z:}', "");;
     Expect(1, 3327, '\p{Block=kannada}', "");
@@ -15156,16 +15580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3328, '\P{^Block=kannada}', "");
     Expect(1, 3327, '\p{Block=:\Akannada\z:}', "");;
     Expect(0, 3328, '\p{Block=:\Akannada\z:}', "");;
-    Expect(1, 3327, '\p{Block= -Kannada}', "");
-    Expect(0, 3327, '\p{^Block= -Kannada}', "");
-    Expect(0, 3327, '\P{Block= -Kannada}', "");
-    Expect(1, 3327, '\P{^Block= -Kannada}', "");
-    Expect(0, 3328, '\p{Block= -Kannada}', "");
-    Expect(1, 3328, '\p{^Block= -Kannada}', "");
-    Expect(1, 3328, '\P{Block= -Kannada}', "");
-    Expect(0, 3328, '\P{^Block= -Kannada}', "");
-    Error('\p{Blk=_Kannada:=}');
-    Error('\P{Blk=_Kannada:=}');
+    Expect(1, 3327, '\p{Block=  KANNADA}', "");
+    Expect(0, 3327, '\p{^Block=  KANNADA}', "");
+    Expect(0, 3327, '\P{Block=  KANNADA}', "");
+    Expect(1, 3327, '\P{^Block=  KANNADA}', "");
+    Expect(0, 3328, '\p{Block=  KANNADA}', "");
+    Expect(1, 3328, '\p{^Block=  KANNADA}', "");
+    Expect(1, 3328, '\P{Block=  KANNADA}', "");
+    Expect(0, 3328, '\P{^Block=  KANNADA}', "");
+    Error('\p{Blk:	 :=KANNADA}');
+    Error('\P{Blk:	 :=KANNADA}');
     Expect(1, 3327, '\p{Blk=:\AKannada\z:}', "");;
     Expect(0, 3328, '\p{Blk=:\AKannada\z:}', "");;
     Expect(1, 3327, '\p{Blk=kannada}', "");
@@ -15178,16 +15602,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3328, '\P{^Blk=kannada}', "");
     Expect(1, 3327, '\p{Blk=:\Akannada\z:}', "");;
     Expect(0, 3328, '\p{Blk=:\Akannada\z:}', "");;
-    Expect(1, 3327, '\p{Blk=-	kannada}', "");
-    Expect(0, 3327, '\p{^Blk=-	kannada}', "");
-    Expect(0, 3327, '\P{Blk=-	kannada}', "");
-    Expect(1, 3327, '\P{^Blk=-	kannada}', "");
-    Expect(0, 3328, '\p{Blk=-	kannada}', "");
-    Expect(1, 3328, '\p{^Blk=-	kannada}', "");
-    Expect(1, 3328, '\P{Blk=-	kannada}', "");
-    Expect(0, 3328, '\P{^Blk=-	kannada}', "");
-    Error('\p{Is_Block=/a/ _KANNADA}');
-    Error('\P{Is_Block=/a/ _KANNADA}');
+    Expect(1, 3327, '\p{Blk=--Kannada}', "");
+    Expect(0, 3327, '\p{^Blk=--Kannada}', "");
+    Expect(0, 3327, '\P{Blk=--Kannada}', "");
+    Expect(1, 3327, '\P{^Blk=--Kannada}', "");
+    Expect(0, 3328, '\p{Blk=--Kannada}', "");
+    Expect(1, 3328, '\p{^Blk=--Kannada}', "");
+    Expect(1, 3328, '\P{Blk=--Kannada}', "");
+    Expect(0, 3328, '\P{^Blk=--Kannada}', "");
+    Error('\p{Is_Block=_/a/KANNADA}');
+    Error('\P{Is_Block=_/a/KANNADA}');
     Expect(1, 3327, '\p{Is_Block=kannada}', "");
     Expect(0, 3327, '\p{^Is_Block=kannada}', "");
     Expect(0, 3327, '\P{Is_Block=kannada}', "");
@@ -15196,16 +15620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3328, '\p{^Is_Block=kannada}', "");
     Expect(1, 3328, '\P{Is_Block=kannada}', "");
     Expect(0, 3328, '\P{^Is_Block=kannada}', "");
-    Expect(1, 3327, '\p{Is_Block=--KANNADA}', "");
-    Expect(0, 3327, '\p{^Is_Block=--KANNADA}', "");
-    Expect(0, 3327, '\P{Is_Block=--KANNADA}', "");
-    Expect(1, 3327, '\P{^Is_Block=--KANNADA}', "");
-    Expect(0, 3328, '\p{Is_Block=--KANNADA}', "");
-    Expect(1, 3328, '\p{^Is_Block=--KANNADA}', "");
-    Expect(1, 3328, '\P{Is_Block=--KANNADA}', "");
-    Expect(0, 3328, '\P{^Is_Block=--KANNADA}', "");
-    Error('\p{Is_Blk=	kannada/a/}');
-    Error('\P{Is_Blk=	kannada/a/}');
+    Expect(1, 3327, '\p{Is_Block:	-_KANNADA}', "");
+    Expect(0, 3327, '\p{^Is_Block:	-_KANNADA}', "");
+    Expect(0, 3327, '\P{Is_Block:	-_KANNADA}', "");
+    Expect(1, 3327, '\P{^Is_Block:	-_KANNADA}', "");
+    Expect(0, 3328, '\p{Is_Block:	-_KANNADA}', "");
+    Expect(1, 3328, '\p{^Is_Block:	-_KANNADA}', "");
+    Expect(1, 3328, '\P{Is_Block:	-_KANNADA}', "");
+    Expect(0, 3328, '\P{^Is_Block:	-_KANNADA}', "");
+    Error('\p{Is_Blk= -Kannada:=}');
+    Error('\P{Is_Blk= -Kannada:=}');
     Expect(1, 3327, '\p{Is_Blk=kannada}', "");
     Expect(0, 3327, '\p{^Is_Blk=kannada}', "");
     Expect(0, 3327, '\P{Is_Blk=kannada}', "");
@@ -15214,16 +15638,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3328, '\p{^Is_Blk=kannada}', "");
     Expect(1, 3328, '\P{Is_Blk=kannada}', "");
     Expect(0, 3328, '\P{^Is_Blk=kannada}', "");
-    Expect(1, 3327, '\p{Is_Blk:	 	Kannada}', "");
-    Expect(0, 3327, '\p{^Is_Blk:	 	Kannada}', "");
-    Expect(0, 3327, '\P{Is_Blk:	 	Kannada}', "");
-    Expect(1, 3327, '\P{^Is_Blk:	 	Kannada}', "");
-    Expect(0, 3328, '\p{Is_Blk:	 	Kannada}', "");
-    Expect(1, 3328, '\p{^Is_Blk:	 	Kannada}', "");
-    Expect(1, 3328, '\P{Is_Blk:	 	Kannada}', "");
-    Expect(0, 3328, '\P{^Is_Blk:	 	Kannada}', "");
-    Error('\p{Block=/a/katakana}');
-    Error('\P{Block=/a/katakana}');
+    Expect(1, 3327, '\p{Is_Blk=__Kannada}', "");
+    Expect(0, 3327, '\p{^Is_Blk=__Kannada}', "");
+    Expect(0, 3327, '\P{Is_Blk=__Kannada}', "");
+    Expect(1, 3327, '\P{^Is_Blk=__Kannada}', "");
+    Expect(0, 3328, '\p{Is_Blk=__Kannada}', "");
+    Expect(1, 3328, '\p{^Is_Blk=__Kannada}', "");
+    Expect(1, 3328, '\P{Is_Blk=__Kannada}', "");
+    Expect(0, 3328, '\P{^Is_Blk=__Kannada}', "");
+    Error('\p{Block= 	Katakana:=}');
+    Error('\P{Block= 	Katakana:=}');
     Expect(1, 12543, '\p{Block=:\AKatakana\z:}', "");;
     Expect(0, 12544, '\p{Block=:\AKatakana\z:}', "");;
     Expect(1, 12543, '\p{Block=katakana}', "");
@@ -15236,16 +15660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12544, '\P{^Block=katakana}', "");
     Expect(1, 12543, '\p{Block=:\Akatakana\z:}', "");;
     Expect(0, 12544, '\p{Block=:\Akatakana\z:}', "");;
-    Expect(1, 12543, '\p{Block=	_Katakana}', "");
-    Expect(0, 12543, '\p{^Block=	_Katakana}', "");
-    Expect(0, 12543, '\P{Block=	_Katakana}', "");
-    Expect(1, 12543, '\P{^Block=	_Katakana}', "");
-    Expect(0, 12544, '\p{Block=	_Katakana}', "");
-    Expect(1, 12544, '\p{^Block=	_Katakana}', "");
-    Expect(1, 12544, '\P{Block=	_Katakana}', "");
-    Expect(0, 12544, '\P{^Block=	_Katakana}', "");
-    Error('\p{Blk=katakana:=}');
-    Error('\P{Blk=katakana:=}');
+    Expect(1, 12543, '\p{Block=	KATAKANA}', "");
+    Expect(0, 12543, '\p{^Block=	KATAKANA}', "");
+    Expect(0, 12543, '\P{Block=	KATAKANA}', "");
+    Expect(1, 12543, '\P{^Block=	KATAKANA}', "");
+    Expect(0, 12544, '\p{Block=	KATAKANA}', "");
+    Expect(1, 12544, '\p{^Block=	KATAKANA}', "");
+    Expect(1, 12544, '\P{Block=	KATAKANA}', "");
+    Expect(0, 12544, '\P{^Block=	KATAKANA}', "");
+    Error('\p{Blk:-/a/Katakana}');
+    Error('\P{Blk:-/a/Katakana}');
     Expect(1, 12543, '\p{Blk=:\AKatakana\z:}', "");;
     Expect(0, 12544, '\p{Blk=:\AKatakana\z:}', "");;
     Expect(1, 12543, '\p{Blk=katakana}', "");
@@ -15258,16 +15682,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12544, '\P{^Blk=katakana}', "");
     Expect(1, 12543, '\p{Blk=:\Akatakana\z:}', "");;
     Expect(0, 12544, '\p{Blk=:\Akatakana\z:}', "");;
-    Expect(1, 12543, '\p{Blk=__Katakana}', "");
-    Expect(0, 12543, '\p{^Blk=__Katakana}', "");
-    Expect(0, 12543, '\P{Blk=__Katakana}', "");
-    Expect(1, 12543, '\P{^Blk=__Katakana}', "");
-    Expect(0, 12544, '\p{Blk=__Katakana}', "");
-    Expect(1, 12544, '\p{^Blk=__Katakana}', "");
-    Expect(1, 12544, '\P{Blk=__Katakana}', "");
-    Expect(0, 12544, '\P{^Blk=__Katakana}', "");
-    Error('\p{Is_Block=/a/  KATAKANA}');
-    Error('\P{Is_Block=/a/  KATAKANA}');
+    Expect(1, 12543, '\p{Blk= KATAKANA}', "");
+    Expect(0, 12543, '\p{^Blk= KATAKANA}', "");
+    Expect(0, 12543, '\P{Blk= KATAKANA}', "");
+    Expect(1, 12543, '\P{^Blk= KATAKANA}', "");
+    Expect(0, 12544, '\p{Blk= KATAKANA}', "");
+    Expect(1, 12544, '\p{^Blk= KATAKANA}', "");
+    Expect(1, 12544, '\P{Blk= KATAKANA}', "");
+    Expect(0, 12544, '\P{^Blk= KATAKANA}', "");
+    Error('\p{Is_Block= _Katakana/a/}');
+    Error('\P{Is_Block= _Katakana/a/}');
     Expect(1, 12543, '\p{Is_Block=katakana}', "");
     Expect(0, 12543, '\p{^Is_Block=katakana}', "");
     Expect(0, 12543, '\P{Is_Block=katakana}', "");
@@ -15276,16 +15700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12544, '\p{^Is_Block=katakana}', "");
     Expect(1, 12544, '\P{Is_Block=katakana}', "");
     Expect(0, 12544, '\P{^Is_Block=katakana}', "");
-    Expect(1, 12543, '\p{Is_Block=  Katakana}', "");
-    Expect(0, 12543, '\p{^Is_Block=  Katakana}', "");
-    Expect(0, 12543, '\P{Is_Block=  Katakana}', "");
-    Expect(1, 12543, '\P{^Is_Block=  Katakana}', "");
-    Expect(0, 12544, '\p{Is_Block=  Katakana}', "");
-    Expect(1, 12544, '\p{^Is_Block=  Katakana}', "");
-    Expect(1, 12544, '\P{Is_Block=  Katakana}', "");
-    Expect(0, 12544, '\P{^Is_Block=  Katakana}', "");
-    Error('\p{Is_Blk=- katakana:=}');
-    Error('\P{Is_Blk=- katakana:=}');
+    Expect(1, 12543, '\p{Is_Block: _ Katakana}', "");
+    Expect(0, 12543, '\p{^Is_Block: _ Katakana}', "");
+    Expect(0, 12543, '\P{Is_Block: _ Katakana}', "");
+    Expect(1, 12543, '\P{^Is_Block: _ Katakana}', "");
+    Expect(0, 12544, '\p{Is_Block: _ Katakana}', "");
+    Expect(1, 12544, '\p{^Is_Block: _ Katakana}', "");
+    Expect(1, 12544, '\P{Is_Block: _ Katakana}', "");
+    Expect(0, 12544, '\P{^Is_Block: _ Katakana}', "");
+    Error('\p{Is_Blk=:=Katakana}');
+    Error('\P{Is_Blk=:=Katakana}');
     Expect(1, 12543, '\p{Is_Blk=katakana}', "");
     Expect(0, 12543, '\p{^Is_Blk=katakana}', "");
     Expect(0, 12543, '\P{Is_Blk=katakana}', "");
@@ -15294,16 +15718,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12544, '\p{^Is_Blk=katakana}', "");
     Expect(1, 12544, '\P{Is_Blk=katakana}', "");
     Expect(0, 12544, '\P{^Is_Blk=katakana}', "");
-    Expect(1, 12543, '\p{Is_Blk=	_Katakana}', "");
-    Expect(0, 12543, '\p{^Is_Blk=	_Katakana}', "");
-    Expect(0, 12543, '\P{Is_Blk=	_Katakana}', "");
-    Expect(1, 12543, '\P{^Is_Blk=	_Katakana}', "");
-    Expect(0, 12544, '\p{Is_Blk=	_Katakana}', "");
-    Expect(1, 12544, '\p{^Is_Blk=	_Katakana}', "");
-    Expect(1, 12544, '\P{Is_Blk=	_Katakana}', "");
-    Expect(0, 12544, '\P{^Is_Blk=	_Katakana}', "");
-    Error('\p{Block=:=_ Katakana_Phonetic_EXTENSIONS}');
-    Error('\P{Block=:=_ Katakana_Phonetic_EXTENSIONS}');
+    Expect(1, 12543, '\p{Is_Blk=- Katakana}', "");
+    Expect(0, 12543, '\p{^Is_Blk=- Katakana}', "");
+    Expect(0, 12543, '\P{Is_Blk=- Katakana}', "");
+    Expect(1, 12543, '\P{^Is_Blk=- Katakana}', "");
+    Expect(0, 12544, '\p{Is_Blk=- Katakana}', "");
+    Expect(1, 12544, '\p{^Is_Blk=- Katakana}', "");
+    Expect(1, 12544, '\P{Is_Blk=- Katakana}', "");
+    Expect(0, 12544, '\P{^Is_Blk=- Katakana}', "");
+    Error('\p{Block=Katakana_phonetic_EXTENSIONS/a/}');
+    Error('\P{Block=Katakana_phonetic_EXTENSIONS/a/}');
     Expect(1, 12799, '\p{Block=:\AKatakana_Phonetic_Extensions\z:}', "");;
     Expect(0, 12800, '\p{Block=:\AKatakana_Phonetic_Extensions\z:}', "");;
     Expect(1, 12799, '\p{Block=katakanaphoneticextensions}', "");
@@ -15316,16 +15740,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12800, '\P{^Block=katakanaphoneticextensions}', "");
     Expect(1, 12799, '\p{Block=:\Akatakanaphoneticextensions\z:}', "");;
     Expect(0, 12800, '\p{Block=:\Akatakanaphoneticextensions\z:}', "");;
-    Expect(1, 12799, '\p{Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12799, '\p{^Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12799, '\P{Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(1, 12799, '\P{^Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12800, '\p{Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(1, 12800, '\p{^Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(1, 12800, '\P{Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12800, '\P{^Block=-_KATAKANA_Phonetic_Extensions}', "");
-    Error('\p{Blk=:=-_katakana_EXT}');
-    Error('\P{Blk=:=-_katakana_EXT}');
+    Expect(1, 12799, '\p{Block=	_katakana_phonetic_Extensions}', "");
+    Expect(0, 12799, '\p{^Block=	_katakana_phonetic_Extensions}', "");
+    Expect(0, 12799, '\P{Block=	_katakana_phonetic_Extensions}', "");
+    Expect(1, 12799, '\P{^Block=	_katakana_phonetic_Extensions}', "");
+    Expect(0, 12800, '\p{Block=	_katakana_phonetic_Extensions}', "");
+    Expect(1, 12800, '\p{^Block=	_katakana_phonetic_Extensions}', "");
+    Expect(1, 12800, '\P{Block=	_katakana_phonetic_Extensions}', "");
+    Expect(0, 12800, '\P{^Block=	_katakana_phonetic_Extensions}', "");
+    Error('\p{Blk=:=	 katakana_Ext}');
+    Error('\P{Blk=:=	 katakana_Ext}');
     Expect(1, 12799, '\p{Blk=:\AKatakana_Ext\z:}', "");;
     Expect(0, 12800, '\p{Blk=:\AKatakana_Ext\z:}', "");;
     Expect(1, 12799, '\p{Blk=katakanaext}', "");
@@ -15338,16 +15762,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12800, '\P{^Blk=katakanaext}', "");
     Expect(1, 12799, '\p{Blk=:\Akatakanaext\z:}', "");;
     Expect(0, 12800, '\p{Blk=:\Akatakanaext\z:}', "");;
-    Expect(1, 12799, '\p{Blk=	KATAKANA_Ext}', "");
-    Expect(0, 12799, '\p{^Blk=	KATAKANA_Ext}', "");
-    Expect(0, 12799, '\P{Blk=	KATAKANA_Ext}', "");
-    Expect(1, 12799, '\P{^Blk=	KATAKANA_Ext}', "");
-    Expect(0, 12800, '\p{Blk=	KATAKANA_Ext}', "");
-    Expect(1, 12800, '\p{^Blk=	KATAKANA_Ext}', "");
-    Expect(1, 12800, '\P{Blk=	KATAKANA_Ext}', "");
-    Expect(0, 12800, '\P{^Blk=	KATAKANA_Ext}', "");
-    Error('\p{Is_Block=:=- KATAKANA_phonetic_Extensions}');
-    Error('\P{Is_Block=:=- KATAKANA_phonetic_Extensions}');
+    Expect(1, 12799, '\p{Blk= 	Katakana_EXT}', "");
+    Expect(0, 12799, '\p{^Blk= 	Katakana_EXT}', "");
+    Expect(0, 12799, '\P{Blk= 	Katakana_EXT}', "");
+    Expect(1, 12799, '\P{^Blk= 	Katakana_EXT}', "");
+    Expect(0, 12800, '\p{Blk= 	Katakana_EXT}', "");
+    Expect(1, 12800, '\p{^Blk= 	Katakana_EXT}', "");
+    Expect(1, 12800, '\P{Blk= 	Katakana_EXT}', "");
+    Expect(0, 12800, '\P{^Blk= 	Katakana_EXT}', "");
+    Error('\p{Is_Block=_/a/KATAKANA_phonetic_Extensions}');
+    Error('\P{Is_Block=_/a/KATAKANA_phonetic_Extensions}');
     Expect(1, 12799, '\p{Is_Block=katakanaphoneticextensions}', "");
     Expect(0, 12799, '\p{^Is_Block=katakanaphoneticextensions}', "");
     Expect(0, 12799, '\P{Is_Block=katakanaphoneticextensions}', "");
@@ -15356,16 +15780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12800, '\p{^Is_Block=katakanaphoneticextensions}', "");
     Expect(1, 12800, '\P{Is_Block=katakanaphoneticextensions}', "");
     Expect(0, 12800, '\P{^Is_Block=katakanaphoneticextensions}', "");
-    Expect(1, 12799, '\p{Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(0, 12799, '\p{^Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(0, 12799, '\P{Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(1, 12799, '\P{^Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(0, 12800, '\p{Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(1, 12800, '\p{^Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(1, 12800, '\P{Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Expect(0, 12800, '\P{^Is_Block=--Katakana_Phonetic_Extensions}', "");
-    Error('\p{Is_Blk=	-Katakana_EXT:=}');
-    Error('\P{Is_Blk=	-Katakana_EXT:=}');
+    Expect(1, 12799, '\p{Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(0, 12799, '\p{^Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(0, 12799, '\P{Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(1, 12799, '\P{^Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(0, 12800, '\p{Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(1, 12800, '\p{^Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(1, 12800, '\P{Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Expect(0, 12800, '\P{^Is_Block= -KATAKANA_Phonetic_Extensions}', "");
+    Error('\p{Is_Blk=KATAKANA_Ext/a/}');
+    Error('\P{Is_Blk=KATAKANA_Ext/a/}');
     Expect(1, 12799, '\p{Is_Blk=katakanaext}', "");
     Expect(0, 12799, '\p{^Is_Blk=katakanaext}', "");
     Expect(0, 12799, '\P{Is_Blk=katakanaext}', "");
@@ -15374,38 +15798,118 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12800, '\p{^Is_Blk=katakanaext}', "");
     Expect(1, 12800, '\P{Is_Blk=katakanaext}', "");
     Expect(0, 12800, '\P{^Is_Blk=katakanaext}', "");
-    Expect(1, 12799, '\p{Is_Blk= _KATAKANA_Ext}', "");
-    Expect(0, 12799, '\p{^Is_Blk= _KATAKANA_Ext}', "");
-    Expect(0, 12799, '\P{Is_Blk= _KATAKANA_Ext}', "");
-    Expect(1, 12799, '\P{^Is_Blk= _KATAKANA_Ext}', "");
-    Expect(0, 12800, '\p{Is_Blk= _KATAKANA_Ext}', "");
-    Expect(1, 12800, '\p{^Is_Blk= _KATAKANA_Ext}', "");
-    Expect(1, 12800, '\P{Is_Blk= _KATAKANA_Ext}', "");
-    Expect(0, 12800, '\P{^Is_Blk= _KATAKANA_Ext}', "");
-    Error('\p{Block= :=kayah_Li}');
-    Error('\P{Block= :=kayah_Li}');
+    Expect(1, 12799, '\p{Is_Blk=_Katakana_EXT}', "");
+    Expect(0, 12799, '\p{^Is_Blk=_Katakana_EXT}', "");
+    Expect(0, 12799, '\P{Is_Blk=_Katakana_EXT}', "");
+    Expect(1, 12799, '\P{^Is_Blk=_Katakana_EXT}', "");
+    Expect(0, 12800, '\p{Is_Blk=_Katakana_EXT}', "");
+    Expect(1, 12800, '\p{^Is_Blk=_Katakana_EXT}', "");
+    Expect(1, 12800, '\P{Is_Blk=_Katakana_EXT}', "");
+    Expect(0, 12800, '\P{^Is_Blk=_Katakana_EXT}', "");
+    Error('\p{Block=/a/_	KAWI}');
+    Error('\P{Block=/a/_	KAWI}');
+    Expect(1, 73567, '\p{Block=:\AKawi\z:}', "");;
+    Expect(0, 73568, '\p{Block=:\AKawi\z:}', "");;
+    Expect(1, 73567, '\p{Block=kawi}', "");
+    Expect(0, 73567, '\p{^Block=kawi}', "");
+    Expect(0, 73567, '\P{Block=kawi}', "");
+    Expect(1, 73567, '\P{^Block=kawi}', "");
+    Expect(0, 73568, '\p{Block=kawi}', "");
+    Expect(1, 73568, '\p{^Block=kawi}', "");
+    Expect(1, 73568, '\P{Block=kawi}', "");
+    Expect(0, 73568, '\P{^Block=kawi}', "");
+    Expect(1, 73567, '\p{Block=:\Akawi\z:}', "");;
+    Expect(0, 73568, '\p{Block=:\Akawi\z:}', "");;
+    Expect(1, 73567, '\p{Block:		-KAWI}', "");
+    Expect(0, 73567, '\p{^Block:		-KAWI}', "");
+    Expect(0, 73567, '\P{Block:		-KAWI}', "");
+    Expect(1, 73567, '\P{^Block:		-KAWI}', "");
+    Expect(0, 73568, '\p{Block:		-KAWI}', "");
+    Expect(1, 73568, '\p{^Block:		-KAWI}', "");
+    Expect(1, 73568, '\P{Block:		-KAWI}', "");
+    Expect(0, 73568, '\P{^Block:		-KAWI}', "");
+    Error('\p{Blk=-_Kawi/a/}');
+    Error('\P{Blk=-_Kawi/a/}');
+    Expect(1, 73567, '\p{Blk=:\AKawi\z:}', "");;
+    Expect(0, 73568, '\p{Blk=:\AKawi\z:}', "");;
+    Expect(1, 73567, '\p{Blk=kawi}', "");
+    Expect(0, 73567, '\p{^Blk=kawi}', "");
+    Expect(0, 73567, '\P{Blk=kawi}', "");
+    Expect(1, 73567, '\P{^Blk=kawi}', "");
+    Expect(0, 73568, '\p{Blk=kawi}', "");
+    Expect(1, 73568, '\p{^Blk=kawi}', "");
+    Expect(1, 73568, '\P{Blk=kawi}', "");
+    Expect(0, 73568, '\P{^Blk=kawi}', "");
+    Expect(1, 73567, '\p{Blk=:\Akawi\z:}', "");;
+    Expect(0, 73568, '\p{Blk=:\Akawi\z:}', "");;
+    Expect(1, 73567, '\p{Blk=	-Kawi}', "");
+    Expect(0, 73567, '\p{^Blk=	-Kawi}', "");
+    Expect(0, 73567, '\P{Blk=	-Kawi}', "");
+    Expect(1, 73567, '\P{^Blk=	-Kawi}', "");
+    Expect(0, 73568, '\p{Blk=	-Kawi}', "");
+    Expect(1, 73568, '\p{^Blk=	-Kawi}', "");
+    Expect(1, 73568, '\P{Blk=	-Kawi}', "");
+    Expect(0, 73568, '\P{^Blk=	-Kawi}', "");
+    Error('\p{Is_Block=:=  Kawi}');
+    Error('\P{Is_Block=:=  Kawi}');
+    Expect(1, 73567, '\p{Is_Block=kawi}', "");
+    Expect(0, 73567, '\p{^Is_Block=kawi}', "");
+    Expect(0, 73567, '\P{Is_Block=kawi}', "");
+    Expect(1, 73567, '\P{^Is_Block=kawi}', "");
+    Expect(0, 73568, '\p{Is_Block=kawi}', "");
+    Expect(1, 73568, '\p{^Is_Block=kawi}', "");
+    Expect(1, 73568, '\P{Is_Block=kawi}', "");
+    Expect(0, 73568, '\P{^Is_Block=kawi}', "");
+    Expect(1, 73567, '\p{Is_Block=_	Kawi}', "");
+    Expect(0, 73567, '\p{^Is_Block=_	Kawi}', "");
+    Expect(0, 73567, '\P{Is_Block=_	Kawi}', "");
+    Expect(1, 73567, '\P{^Is_Block=_	Kawi}', "");
+    Expect(0, 73568, '\p{Is_Block=_	Kawi}', "");
+    Expect(1, 73568, '\p{^Is_Block=_	Kawi}', "");
+    Expect(1, 73568, '\P{Is_Block=_	Kawi}', "");
+    Expect(0, 73568, '\P{^Is_Block=_	Kawi}', "");
+    Error('\p{Is_Blk=/a/	 kawi}');
+    Error('\P{Is_Blk=/a/	 kawi}');
+    Expect(1, 73567, '\p{Is_Blk=kawi}', "");
+    Expect(0, 73567, '\p{^Is_Blk=kawi}', "");
+    Expect(0, 73567, '\P{Is_Blk=kawi}', "");
+    Expect(1, 73567, '\P{^Is_Blk=kawi}', "");
+    Expect(0, 73568, '\p{Is_Blk=kawi}', "");
+    Expect(1, 73568, '\p{^Is_Blk=kawi}', "");
+    Expect(1, 73568, '\P{Is_Blk=kawi}', "");
+    Expect(0, 73568, '\P{^Is_Blk=kawi}', "");
+    Expect(1, 73567, '\p{Is_Blk:	-_Kawi}', "");
+    Expect(0, 73567, '\p{^Is_Blk:	-_Kawi}', "");
+    Expect(0, 73567, '\P{Is_Blk:	-_Kawi}', "");
+    Expect(1, 73567, '\P{^Is_Blk:	-_Kawi}', "");
+    Expect(0, 73568, '\p{Is_Blk:	-_Kawi}', "");
+    Expect(1, 73568, '\p{^Is_Blk:	-_Kawi}', "");
+    Expect(1, 73568, '\P{Is_Blk:	-_Kawi}', "");
+    Expect(0, 73568, '\P{^Is_Blk:	-_Kawi}', "");
+    Error('\p{Block=_ kayah_Li/a/}');
+    Error('\P{Block=_ kayah_Li/a/}');
     Expect(1, 43311, '\p{Block=:\AKayah_Li\z:}', "");;
     Expect(0, 43312, '\p{Block=:\AKayah_Li\z:}', "");;
-    Expect(1, 43311, '\p{Block=kayahli}', "");
-    Expect(0, 43311, '\p{^Block=kayahli}', "");
-    Expect(0, 43311, '\P{Block=kayahli}', "");
-    Expect(1, 43311, '\P{^Block=kayahli}', "");
-    Expect(0, 43312, '\p{Block=kayahli}', "");
-    Expect(1, 43312, '\p{^Block=kayahli}', "");
-    Expect(1, 43312, '\P{Block=kayahli}', "");
-    Expect(0, 43312, '\P{^Block=kayahli}', "");
+    Expect(1, 43311, '\p{Block:	kayahli}', "");
+    Expect(0, 43311, '\p{^Block:	kayahli}', "");
+    Expect(0, 43311, '\P{Block:	kayahli}', "");
+    Expect(1, 43311, '\P{^Block:	kayahli}', "");
+    Expect(0, 43312, '\p{Block:	kayahli}', "");
+    Expect(1, 43312, '\p{^Block:	kayahli}', "");
+    Expect(1, 43312, '\P{Block:	kayahli}', "");
+    Expect(0, 43312, '\P{^Block:	kayahli}', "");
     Expect(1, 43311, '\p{Block=:\Akayahli\z:}', "");;
     Expect(0, 43312, '\p{Block=:\Akayahli\z:}', "");;
-    Expect(1, 43311, '\p{Block=	_Kayah_li}', "");
-    Expect(0, 43311, '\p{^Block=	_Kayah_li}', "");
-    Expect(0, 43311, '\P{Block=	_Kayah_li}', "");
-    Expect(1, 43311, '\P{^Block=	_Kayah_li}', "");
-    Expect(0, 43312, '\p{Block=	_Kayah_li}', "");
-    Expect(1, 43312, '\p{^Block=	_Kayah_li}', "");
-    Expect(1, 43312, '\P{Block=	_Kayah_li}', "");
-    Expect(0, 43312, '\P{^Block=	_Kayah_li}', "");
-    Error('\p{Blk= Kayah_Li/a/}');
-    Error('\P{Blk= Kayah_Li/a/}');
+    Expect(1, 43311, '\p{Block=Kayah_LI}', "");
+    Expect(0, 43311, '\p{^Block=Kayah_LI}', "");
+    Expect(0, 43311, '\P{Block=Kayah_LI}', "");
+    Expect(1, 43311, '\P{^Block=Kayah_LI}', "");
+    Expect(0, 43312, '\p{Block=Kayah_LI}', "");
+    Expect(1, 43312, '\p{^Block=Kayah_LI}', "");
+    Expect(1, 43312, '\P{Block=Kayah_LI}', "");
+    Expect(0, 43312, '\P{^Block=Kayah_LI}', "");
+    Error('\p{Blk=:=--KAYAH_li}');
+    Error('\P{Blk=:=--KAYAH_li}');
     Expect(1, 43311, '\p{Blk=:\AKayah_Li\z:}', "");;
     Expect(0, 43312, '\p{Blk=:\AKayah_Li\z:}', "");;
     Expect(1, 43311, '\p{Blk=kayahli}', "");
@@ -15418,34 +15922,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43312, '\P{^Blk=kayahli}', "");
     Expect(1, 43311, '\p{Blk=:\Akayahli\z:}', "");;
     Expect(0, 43312, '\p{Blk=:\Akayahli\z:}', "");;
-    Expect(1, 43311, '\p{Blk=_-kayah_Li}', "");
-    Expect(0, 43311, '\p{^Blk=_-kayah_Li}', "");
-    Expect(0, 43311, '\P{Blk=_-kayah_Li}', "");
-    Expect(1, 43311, '\P{^Blk=_-kayah_Li}', "");
-    Expect(0, 43312, '\p{Blk=_-kayah_Li}', "");
-    Expect(1, 43312, '\p{^Blk=_-kayah_Li}', "");
-    Expect(1, 43312, '\P{Blk=_-kayah_Li}', "");
-    Expect(0, 43312, '\P{^Blk=_-kayah_Li}', "");
-    Error('\p{Is_Block=:= -Kayah_li}');
-    Error('\P{Is_Block=:= -Kayah_li}');
-    Expect(1, 43311, '\p{Is_Block=kayahli}', "");
-    Expect(0, 43311, '\p{^Is_Block=kayahli}', "");
-    Expect(0, 43311, '\P{Is_Block=kayahli}', "");
-    Expect(1, 43311, '\P{^Is_Block=kayahli}', "");
-    Expect(0, 43312, '\p{Is_Block=kayahli}', "");
-    Expect(1, 43312, '\p{^Is_Block=kayahli}', "");
-    Expect(1, 43312, '\P{Is_Block=kayahli}', "");
-    Expect(0, 43312, '\P{^Is_Block=kayahli}', "");
-    Expect(1, 43311, '\p{Is_Block=	 Kayah_LI}', "");
-    Expect(0, 43311, '\p{^Is_Block=	 Kayah_LI}', "");
-    Expect(0, 43311, '\P{Is_Block=	 Kayah_LI}', "");
-    Expect(1, 43311, '\P{^Is_Block=	 Kayah_LI}', "");
-    Expect(0, 43312, '\p{Is_Block=	 Kayah_LI}', "");
-    Expect(1, 43312, '\p{^Is_Block=	 Kayah_LI}', "");
-    Expect(1, 43312, '\P{Is_Block=	 Kayah_LI}', "");
-    Expect(0, 43312, '\P{^Is_Block=	 Kayah_LI}', "");
-    Error('\p{Is_Blk= _KAYAH_LI:=}');
-    Error('\P{Is_Blk= _KAYAH_LI:=}');
+    Expect(1, 43311, '\p{Blk=- KAYAH_li}', "");
+    Expect(0, 43311, '\p{^Blk=- KAYAH_li}', "");
+    Expect(0, 43311, '\P{Blk=- KAYAH_li}', "");
+    Expect(1, 43311, '\P{^Blk=- KAYAH_li}', "");
+    Expect(0, 43312, '\p{Blk=- KAYAH_li}', "");
+    Expect(1, 43312, '\p{^Blk=- KAYAH_li}', "");
+    Expect(1, 43312, '\P{Blk=- KAYAH_li}', "");
+    Expect(0, 43312, '\P{^Blk=- KAYAH_li}', "");
+    Error('\p{Is_Block=_KAYAH_Li:=}');
+    Error('\P{Is_Block=_KAYAH_Li:=}');
+    Expect(1, 43311, '\p{Is_Block:	kayahli}', "");
+    Expect(0, 43311, '\p{^Is_Block:	kayahli}', "");
+    Expect(0, 43311, '\P{Is_Block:	kayahli}', "");
+    Expect(1, 43311, '\P{^Is_Block:	kayahli}', "");
+    Expect(0, 43312, '\p{Is_Block:	kayahli}', "");
+    Expect(1, 43312, '\p{^Is_Block:	kayahli}', "");
+    Expect(1, 43312, '\P{Is_Block:	kayahli}', "");
+    Expect(0, 43312, '\P{^Is_Block:	kayahli}', "");
+    Expect(1, 43311, '\p{Is_Block=	 Kayah_Li}', "");
+    Expect(0, 43311, '\p{^Is_Block=	 Kayah_Li}', "");
+    Expect(0, 43311, '\P{Is_Block=	 Kayah_Li}', "");
+    Expect(1, 43311, '\P{^Is_Block=	 Kayah_Li}', "");
+    Expect(0, 43312, '\p{Is_Block=	 Kayah_Li}', "");
+    Expect(1, 43312, '\p{^Is_Block=	 Kayah_Li}', "");
+    Expect(1, 43312, '\P{Is_Block=	 Kayah_Li}', "");
+    Expect(0, 43312, '\P{^Is_Block=	 Kayah_Li}', "");
+    Error('\p{Is_Blk=/a/_	Kayah_li}');
+    Error('\P{Is_Blk=/a/_	Kayah_li}');
     Expect(1, 43311, '\p{Is_Blk=kayahli}', "");
     Expect(0, 43311, '\p{^Is_Blk=kayahli}', "");
     Expect(0, 43311, '\P{Is_Blk=kayahli}', "");
@@ -15454,16 +15958,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43312, '\p{^Is_Blk=kayahli}', "");
     Expect(1, 43312, '\P{Is_Blk=kayahli}', "");
     Expect(0, 43312, '\P{^Is_Blk=kayahli}', "");
-    Expect(1, 43311, '\p{Is_Blk=_Kayah_li}', "");
-    Expect(0, 43311, '\p{^Is_Blk=_Kayah_li}', "");
-    Expect(0, 43311, '\P{Is_Blk=_Kayah_li}', "");
-    Expect(1, 43311, '\P{^Is_Blk=_Kayah_li}', "");
-    Expect(0, 43312, '\p{Is_Blk=_Kayah_li}', "");
-    Expect(1, 43312, '\p{^Is_Blk=_Kayah_li}', "");
-    Expect(1, 43312, '\P{Is_Blk=_Kayah_li}', "");
-    Expect(0, 43312, '\P{^Is_Blk=_Kayah_li}', "");
-    Error('\p{Block= Kharoshthi/a/}');
-    Error('\P{Block= Kharoshthi/a/}');
+    Expect(1, 43311, '\p{Is_Blk=	Kayah_Li}', "");
+    Expect(0, 43311, '\p{^Is_Blk=	Kayah_Li}', "");
+    Expect(0, 43311, '\P{Is_Blk=	Kayah_Li}', "");
+    Expect(1, 43311, '\P{^Is_Blk=	Kayah_Li}', "");
+    Expect(0, 43312, '\p{Is_Blk=	Kayah_Li}', "");
+    Expect(1, 43312, '\p{^Is_Blk=	Kayah_Li}', "");
+    Expect(1, 43312, '\P{Is_Blk=	Kayah_Li}', "");
+    Expect(0, 43312, '\P{^Is_Blk=	Kayah_Li}', "");
+    Error('\p{Block:/a/_KHAROSHTHI}');
+    Error('\P{Block:/a/_KHAROSHTHI}');
     Expect(1, 68191, '\p{Block=:\AKharoshthi\z:}', "");;
     Expect(0, 68192, '\p{Block=:\AKharoshthi\z:}', "");;
     Expect(1, 68191, '\p{Block=kharoshthi}', "");
@@ -15476,38 +15980,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68192, '\P{^Block=kharoshthi}', "");
     Expect(1, 68191, '\p{Block=:\Akharoshthi\z:}', "");;
     Expect(0, 68192, '\p{Block=:\Akharoshthi\z:}', "");;
-    Expect(1, 68191, '\p{Block:   -	Kharoshthi}', "");
-    Expect(0, 68191, '\p{^Block:   -	Kharoshthi}', "");
-    Expect(0, 68191, '\P{Block:   -	Kharoshthi}', "");
-    Expect(1, 68191, '\P{^Block:   -	Kharoshthi}', "");
-    Expect(0, 68192, '\p{Block:   -	Kharoshthi}', "");
-    Expect(1, 68192, '\p{^Block:   -	Kharoshthi}', "");
-    Expect(1, 68192, '\P{Block:   -	Kharoshthi}', "");
-    Expect(0, 68192, '\P{^Block:   -	Kharoshthi}', "");
-    Error('\p{Blk=:=-	kharoshthi}');
-    Error('\P{Blk=:=-	kharoshthi}');
+    Expect(1, 68191, '\p{Block=-_Kharoshthi}', "");
+    Expect(0, 68191, '\p{^Block=-_Kharoshthi}', "");
+    Expect(0, 68191, '\P{Block=-_Kharoshthi}', "");
+    Expect(1, 68191, '\P{^Block=-_Kharoshthi}', "");
+    Expect(0, 68192, '\p{Block=-_Kharoshthi}', "");
+    Expect(1, 68192, '\p{^Block=-_Kharoshthi}', "");
+    Expect(1, 68192, '\P{Block=-_Kharoshthi}', "");
+    Expect(0, 68192, '\P{^Block=-_Kharoshthi}', "");
+    Error('\p{Blk=/a/	-KHAROSHTHI}');
+    Error('\P{Blk=/a/	-KHAROSHTHI}');
     Expect(1, 68191, '\p{Blk=:\AKharoshthi\z:}', "");;
     Expect(0, 68192, '\p{Blk=:\AKharoshthi\z:}', "");;
-    Expect(1, 68191, '\p{Blk=kharoshthi}', "");
-    Expect(0, 68191, '\p{^Blk=kharoshthi}', "");
-    Expect(0, 68191, '\P{Blk=kharoshthi}', "");
-    Expect(1, 68191, '\P{^Blk=kharoshthi}', "");
-    Expect(0, 68192, '\p{Blk=kharoshthi}', "");
-    Expect(1, 68192, '\p{^Blk=kharoshthi}', "");
-    Expect(1, 68192, '\P{Blk=kharoshthi}', "");
-    Expect(0, 68192, '\P{^Blk=kharoshthi}', "");
+    Expect(1, 68191, '\p{Blk:	kharoshthi}', "");
+    Expect(0, 68191, '\p{^Blk:	kharoshthi}', "");
+    Expect(0, 68191, '\P{Blk:	kharoshthi}', "");
+    Expect(1, 68191, '\P{^Blk:	kharoshthi}', "");
+    Expect(0, 68192, '\p{Blk:	kharoshthi}', "");
+    Expect(1, 68192, '\p{^Blk:	kharoshthi}', "");
+    Expect(1, 68192, '\P{Blk:	kharoshthi}', "");
+    Expect(0, 68192, '\P{^Blk:	kharoshthi}', "");
     Expect(1, 68191, '\p{Blk=:\Akharoshthi\z:}', "");;
     Expect(0, 68192, '\p{Blk=:\Akharoshthi\z:}', "");;
-    Expect(1, 68191, '\p{Blk=_	kharoshthi}', "");
-    Expect(0, 68191, '\p{^Blk=_	kharoshthi}', "");
-    Expect(0, 68191, '\P{Blk=_	kharoshthi}', "");
-    Expect(1, 68191, '\P{^Blk=_	kharoshthi}', "");
-    Expect(0, 68192, '\p{Blk=_	kharoshthi}', "");
-    Expect(1, 68192, '\p{^Blk=_	kharoshthi}', "");
-    Expect(1, 68192, '\P{Blk=_	kharoshthi}', "");
-    Expect(0, 68192, '\P{^Blk=_	kharoshthi}', "");
-    Error('\p{Is_Block=/a/  kharoshthi}');
-    Error('\P{Is_Block=/a/  kharoshthi}');
+    Expect(1, 68191, '\p{Blk= 	kharoshthi}', "");
+    Expect(0, 68191, '\p{^Blk= 	kharoshthi}', "");
+    Expect(0, 68191, '\P{Blk= 	kharoshthi}', "");
+    Expect(1, 68191, '\P{^Blk= 	kharoshthi}', "");
+    Expect(0, 68192, '\p{Blk= 	kharoshthi}', "");
+    Expect(1, 68192, '\p{^Blk= 	kharoshthi}', "");
+    Expect(1, 68192, '\P{Blk= 	kharoshthi}', "");
+    Expect(0, 68192, '\P{^Blk= 	kharoshthi}', "");
+    Error('\p{Is_Block= 	Kharoshthi:=}');
+    Error('\P{Is_Block= 	Kharoshthi:=}');
     Expect(1, 68191, '\p{Is_Block=kharoshthi}', "");
     Expect(0, 68191, '\p{^Is_Block=kharoshthi}', "");
     Expect(0, 68191, '\P{Is_Block=kharoshthi}', "");
@@ -15516,34 +16020,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68192, '\p{^Is_Block=kharoshthi}', "");
     Expect(1, 68192, '\P{Is_Block=kharoshthi}', "");
     Expect(0, 68192, '\P{^Is_Block=kharoshthi}', "");
-    Expect(1, 68191, '\p{Is_Block=- KHAROSHTHI}', "");
-    Expect(0, 68191, '\p{^Is_Block=- KHAROSHTHI}', "");
-    Expect(0, 68191, '\P{Is_Block=- KHAROSHTHI}', "");
-    Expect(1, 68191, '\P{^Is_Block=- KHAROSHTHI}', "");
-    Expect(0, 68192, '\p{Is_Block=- KHAROSHTHI}', "");
-    Expect(1, 68192, '\p{^Is_Block=- KHAROSHTHI}', "");
-    Expect(1, 68192, '\P{Is_Block=- KHAROSHTHI}', "");
-    Expect(0, 68192, '\P{^Is_Block=- KHAROSHTHI}', "");
-    Error('\p{Is_Blk=	:=KHAROSHTHI}');
-    Error('\P{Is_Blk=	:=KHAROSHTHI}');
-    Expect(1, 68191, '\p{Is_Blk=kharoshthi}', "");
-    Expect(0, 68191, '\p{^Is_Blk=kharoshthi}', "");
-    Expect(0, 68191, '\P{Is_Blk=kharoshthi}', "");
-    Expect(1, 68191, '\P{^Is_Blk=kharoshthi}', "");
-    Expect(0, 68192, '\p{Is_Blk=kharoshthi}', "");
-    Expect(1, 68192, '\p{^Is_Blk=kharoshthi}', "");
-    Expect(1, 68192, '\P{Is_Blk=kharoshthi}', "");
-    Expect(0, 68192, '\P{^Is_Blk=kharoshthi}', "");
-    Expect(1, 68191, '\p{Is_Blk=	 Kharoshthi}', "");
-    Expect(0, 68191, '\p{^Is_Blk=	 Kharoshthi}', "");
-    Expect(0, 68191, '\P{Is_Blk=	 Kharoshthi}', "");
-    Expect(1, 68191, '\P{^Is_Blk=	 Kharoshthi}', "");
-    Expect(0, 68192, '\p{Is_Blk=	 Kharoshthi}', "");
-    Expect(1, 68192, '\p{^Is_Blk=	 Kharoshthi}', "");
-    Expect(1, 68192, '\P{Is_Blk=	 Kharoshthi}', "");
-    Expect(0, 68192, '\P{^Is_Blk=	 Kharoshthi}', "");
-    Error('\p{Block=_/a/Khitan_Small_Script}');
-    Error('\P{Block=_/a/Khitan_Small_Script}');
+    Expect(1, 68191, '\p{Is_Block=_kharoshthi}', "");
+    Expect(0, 68191, '\p{^Is_Block=_kharoshthi}', "");
+    Expect(0, 68191, '\P{Is_Block=_kharoshthi}', "");
+    Expect(1, 68191, '\P{^Is_Block=_kharoshthi}', "");
+    Expect(0, 68192, '\p{Is_Block=_kharoshthi}', "");
+    Expect(1, 68192, '\p{^Is_Block=_kharoshthi}', "");
+    Expect(1, 68192, '\P{Is_Block=_kharoshthi}', "");
+    Expect(0, 68192, '\P{^Is_Block=_kharoshthi}', "");
+    Error('\p{Is_Blk=  Kharoshthi:=}');
+    Error('\P{Is_Blk=  Kharoshthi:=}');
+    Expect(1, 68191, '\p{Is_Blk:	kharoshthi}', "");
+    Expect(0, 68191, '\p{^Is_Blk:	kharoshthi}', "");
+    Expect(0, 68191, '\P{Is_Blk:	kharoshthi}', "");
+    Expect(1, 68191, '\P{^Is_Blk:	kharoshthi}', "");
+    Expect(0, 68192, '\p{Is_Blk:	kharoshthi}', "");
+    Expect(1, 68192, '\p{^Is_Blk:	kharoshthi}', "");
+    Expect(1, 68192, '\P{Is_Blk:	kharoshthi}', "");
+    Expect(0, 68192, '\P{^Is_Blk:	kharoshthi}', "");
+    Expect(1, 68191, '\p{Is_Blk= Kharoshthi}', "");
+    Expect(0, 68191, '\p{^Is_Blk= Kharoshthi}', "");
+    Expect(0, 68191, '\P{Is_Blk= Kharoshthi}', "");
+    Expect(1, 68191, '\P{^Is_Blk= Kharoshthi}', "");
+    Expect(0, 68192, '\p{Is_Blk= Kharoshthi}', "");
+    Expect(1, 68192, '\p{^Is_Blk= Kharoshthi}', "");
+    Expect(1, 68192, '\P{Is_Blk= Kharoshthi}', "");
+    Expect(0, 68192, '\P{^Is_Blk= Kharoshthi}', "");
+    Error('\p{Block=-	Khitan_small_Script/a/}');
+    Error('\P{Block=-	Khitan_small_Script/a/}');
     Expect(1, 101631, '\p{Block=:\AKhitan_Small_Script\z:}', "");;
     Expect(0, 101632, '\p{Block=:\AKhitan_Small_Script\z:}', "");;
     Expect(1, 101631, '\p{Block=khitansmallscript}', "");
@@ -15556,16 +16060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 101632, '\P{^Block=khitansmallscript}', "");
     Expect(1, 101631, '\p{Block=:\Akhitansmallscript\z:}', "");;
     Expect(0, 101632, '\p{Block=:\Akhitansmallscript\z:}', "");;
-    Expect(1, 101631, '\p{Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101631, '\p{^Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101631, '\P{Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(1, 101631, '\P{^Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101632, '\p{Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(1, 101632, '\p{^Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(1, 101632, '\P{Block=-KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101632, '\P{^Block=-KHITAN_SMALL_SCRIPT}', "");
-    Error('\p{Blk=-	KHITAN_small_SCRIPT/a/}');
-    Error('\P{Blk=-	KHITAN_small_SCRIPT/a/}');
+    Expect(1, 101631, '\p{Block=_khitan_Small_Script}', "");
+    Expect(0, 101631, '\p{^Block=_khitan_Small_Script}', "");
+    Expect(0, 101631, '\P{Block=_khitan_Small_Script}', "");
+    Expect(1, 101631, '\P{^Block=_khitan_Small_Script}', "");
+    Expect(0, 101632, '\p{Block=_khitan_Small_Script}', "");
+    Expect(1, 101632, '\p{^Block=_khitan_Small_Script}', "");
+    Expect(1, 101632, '\P{Block=_khitan_Small_Script}', "");
+    Expect(0, 101632, '\P{^Block=_khitan_Small_Script}', "");
+    Error('\p{Blk=-:=Khitan_Small_Script}');
+    Error('\P{Blk=-:=Khitan_Small_Script}');
     Expect(1, 101631, '\p{Blk=:\AKhitan_Small_Script\z:}', "");;
     Expect(0, 101632, '\p{Blk=:\AKhitan_Small_Script\z:}', "");;
     Expect(1, 101631, '\p{Blk=khitansmallscript}', "");
@@ -15578,16 +16082,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 101632, '\P{^Blk=khitansmallscript}', "");
     Expect(1, 101631, '\p{Blk=:\Akhitansmallscript\z:}', "");;
     Expect(0, 101632, '\p{Blk=:\Akhitansmallscript\z:}', "");;
-    Expect(1, 101631, '\p{Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101631, '\p{^Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101631, '\P{Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(1, 101631, '\P{^Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101632, '\p{Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(1, 101632, '\p{^Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(1, 101632, '\P{Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Expect(0, 101632, '\P{^Blk=-_KHITAN_SMALL_SCRIPT}', "");
-    Error('\p{Is_Block=:=KHITAN_Small_Script}');
-    Error('\P{Is_Block=:=KHITAN_Small_Script}');
+    Expect(1, 101631, '\p{Blk= Khitan_small_SCRIPT}', "");
+    Expect(0, 101631, '\p{^Blk= Khitan_small_SCRIPT}', "");
+    Expect(0, 101631, '\P{Blk= Khitan_small_SCRIPT}', "");
+    Expect(1, 101631, '\P{^Blk= Khitan_small_SCRIPT}', "");
+    Expect(0, 101632, '\p{Blk= Khitan_small_SCRIPT}', "");
+    Expect(1, 101632, '\p{^Blk= Khitan_small_SCRIPT}', "");
+    Expect(1, 101632, '\P{Blk= Khitan_small_SCRIPT}', "");
+    Expect(0, 101632, '\P{^Blk= Khitan_small_SCRIPT}', "");
+    Error('\p{Is_Block=:=_KHITAN_SMALL_Script}');
+    Error('\P{Is_Block=:=_KHITAN_SMALL_Script}');
     Expect(1, 101631, '\p{Is_Block=khitansmallscript}', "");
     Expect(0, 101631, '\p{^Is_Block=khitansmallscript}', "");
     Expect(0, 101631, '\P{Is_Block=khitansmallscript}', "");
@@ -15596,34 +16100,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 101632, '\p{^Is_Block=khitansmallscript}', "");
     Expect(1, 101632, '\P{Is_Block=khitansmallscript}', "");
     Expect(0, 101632, '\P{^Is_Block=khitansmallscript}', "");
-    Expect(1, 101631, '\p{Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(0, 101631, '\p{^Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(0, 101631, '\P{Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(1, 101631, '\P{^Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(0, 101632, '\p{Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(1, 101632, '\p{^Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(1, 101632, '\P{Is_Block=-khitan_small_SCRIPT}', "");
-    Expect(0, 101632, '\P{^Is_Block=-khitan_small_SCRIPT}', "");
-    Error('\p{Is_Blk=:=_ khitan_SMALL_Script}');
-    Error('\P{Is_Blk=:=_ khitan_SMALL_Script}');
-    Expect(1, 101631, '\p{Is_Blk: khitansmallscript}', "");
-    Expect(0, 101631, '\p{^Is_Blk: khitansmallscript}', "");
-    Expect(0, 101631, '\P{Is_Blk: khitansmallscript}', "");
-    Expect(1, 101631, '\P{^Is_Blk: khitansmallscript}', "");
-    Expect(0, 101632, '\p{Is_Blk: khitansmallscript}', "");
-    Expect(1, 101632, '\p{^Is_Blk: khitansmallscript}', "");
-    Expect(1, 101632, '\P{Is_Blk: khitansmallscript}', "");
-    Expect(0, 101632, '\P{^Is_Blk: khitansmallscript}', "");
-    Expect(1, 101631, '\p{Is_Blk= Khitan_Small_Script}', "");
-    Expect(0, 101631, '\p{^Is_Blk= Khitan_Small_Script}', "");
-    Expect(0, 101631, '\P{Is_Blk= Khitan_Small_Script}', "");
-    Expect(1, 101631, '\P{^Is_Blk= Khitan_Small_Script}', "");
-    Expect(0, 101632, '\p{Is_Blk= Khitan_Small_Script}', "");
-    Expect(1, 101632, '\p{^Is_Blk= Khitan_Small_Script}', "");
-    Expect(1, 101632, '\P{Is_Blk= Khitan_Small_Script}', "");
-    Expect(0, 101632, '\P{^Is_Blk= Khitan_Small_Script}', "");
-    Error('\p{Block=_khmer/a/}');
-    Error('\P{Block=_khmer/a/}');
+    Expect(1, 101631, '\p{Is_Block:	_khitan_Small_script}', "");
+    Expect(0, 101631, '\p{^Is_Block:	_khitan_Small_script}', "");
+    Expect(0, 101631, '\P{Is_Block:	_khitan_Small_script}', "");
+    Expect(1, 101631, '\P{^Is_Block:	_khitan_Small_script}', "");
+    Expect(0, 101632, '\p{Is_Block:	_khitan_Small_script}', "");
+    Expect(1, 101632, '\p{^Is_Block:	_khitan_Small_script}', "");
+    Expect(1, 101632, '\P{Is_Block:	_khitan_Small_script}', "");
+    Expect(0, 101632, '\P{^Is_Block:	_khitan_Small_script}', "");
+    Error('\p{Is_Blk=:= 	Khitan_small_Script}');
+    Error('\P{Is_Blk=:= 	Khitan_small_Script}');
+    Expect(1, 101631, '\p{Is_Blk=khitansmallscript}', "");
+    Expect(0, 101631, '\p{^Is_Blk=khitansmallscript}', "");
+    Expect(0, 101631, '\P{Is_Blk=khitansmallscript}', "");
+    Expect(1, 101631, '\P{^Is_Blk=khitansmallscript}', "");
+    Expect(0, 101632, '\p{Is_Blk=khitansmallscript}', "");
+    Expect(1, 101632, '\p{^Is_Blk=khitansmallscript}', "");
+    Expect(1, 101632, '\P{Is_Blk=khitansmallscript}', "");
+    Expect(0, 101632, '\P{^Is_Blk=khitansmallscript}', "");
+    Expect(1, 101631, '\p{Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(0, 101631, '\p{^Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(0, 101631, '\P{Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(1, 101631, '\P{^Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(0, 101632, '\p{Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(1, 101632, '\p{^Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(1, 101632, '\P{Is_Blk=	_KHITAN_Small_script}', "");
+    Expect(0, 101632, '\P{^Is_Blk=	_KHITAN_Small_script}', "");
+    Error('\p{Block=_:=khmer}');
+    Error('\P{Block=_:=khmer}');
     Expect(1, 6143, '\p{Block=:\AKhmer\z:}', "");;
     Expect(0, 6144, '\p{Block=:\AKhmer\z:}', "");;
     Expect(1, 6143, '\p{Block=khmer}', "");
@@ -15636,16 +16140,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6144, '\P{^Block=khmer}', "");
     Expect(1, 6143, '\p{Block=:\Akhmer\z:}', "");;
     Expect(0, 6144, '\p{Block=:\Akhmer\z:}', "");;
-    Expect(1, 6143, '\p{Block=	-Khmer}', "");
-    Expect(0, 6143, '\p{^Block=	-Khmer}', "");
-    Expect(0, 6143, '\P{Block=	-Khmer}', "");
-    Expect(1, 6143, '\P{^Block=	-Khmer}', "");
-    Expect(0, 6144, '\p{Block=	-Khmer}', "");
-    Expect(1, 6144, '\p{^Block=	-Khmer}', "");
-    Expect(1, 6144, '\P{Block=	-Khmer}', "");
-    Expect(0, 6144, '\P{^Block=	-Khmer}', "");
-    Error('\p{Blk=/a/khmer}');
-    Error('\P{Blk=/a/khmer}');
+    Expect(1, 6143, '\p{Block=- Khmer}', "");
+    Expect(0, 6143, '\p{^Block=- Khmer}', "");
+    Expect(0, 6143, '\P{Block=- Khmer}', "");
+    Expect(1, 6143, '\P{^Block=- Khmer}', "");
+    Expect(0, 6144, '\p{Block=- Khmer}', "");
+    Expect(1, 6144, '\p{^Block=- Khmer}', "");
+    Expect(1, 6144, '\P{Block=- Khmer}', "");
+    Expect(0, 6144, '\P{^Block=- Khmer}', "");
+    Error('\p{Blk= /a/khmer}');
+    Error('\P{Blk= /a/khmer}');
     Expect(1, 6143, '\p{Blk=:\AKhmer\z:}', "");;
     Expect(0, 6144, '\p{Blk=:\AKhmer\z:}', "");;
     Expect(1, 6143, '\p{Blk=khmer}', "");
@@ -15658,16 +16162,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6144, '\P{^Blk=khmer}', "");
     Expect(1, 6143, '\p{Blk=:\Akhmer\z:}', "");;
     Expect(0, 6144, '\p{Blk=:\Akhmer\z:}', "");;
-    Expect(1, 6143, '\p{Blk=	KHMER}', "");
-    Expect(0, 6143, '\p{^Blk=	KHMER}', "");
-    Expect(0, 6143, '\P{Blk=	KHMER}', "");
-    Expect(1, 6143, '\P{^Blk=	KHMER}', "");
-    Expect(0, 6144, '\p{Blk=	KHMER}', "");
-    Expect(1, 6144, '\p{^Blk=	KHMER}', "");
-    Expect(1, 6144, '\P{Blk=	KHMER}', "");
-    Expect(0, 6144, '\P{^Blk=	KHMER}', "");
-    Error('\p{Is_Block:	:= khmer}');
-    Error('\P{Is_Block:	:= khmer}');
+    Expect(1, 6143, '\p{Blk=-khmer}', "");
+    Expect(0, 6143, '\p{^Blk=-khmer}', "");
+    Expect(0, 6143, '\P{Blk=-khmer}', "");
+    Expect(1, 6143, '\P{^Blk=-khmer}', "");
+    Expect(0, 6144, '\p{Blk=-khmer}', "");
+    Expect(1, 6144, '\p{^Blk=-khmer}', "");
+    Expect(1, 6144, '\P{Blk=-khmer}', "");
+    Expect(0, 6144, '\P{^Blk=-khmer}', "");
+    Error('\p{Is_Block=	/a/khmer}');
+    Error('\P{Is_Block=	/a/khmer}');
     Expect(1, 6143, '\p{Is_Block=khmer}', "");
     Expect(0, 6143, '\p{^Is_Block=khmer}', "");
     Expect(0, 6143, '\P{Is_Block=khmer}', "");
@@ -15676,16 +16180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6144, '\p{^Is_Block=khmer}', "");
     Expect(1, 6144, '\P{Is_Block=khmer}', "");
     Expect(0, 6144, '\P{^Is_Block=khmer}', "");
-    Expect(1, 6143, '\p{Is_Block=	Khmer}', "");
-    Expect(0, 6143, '\p{^Is_Block=	Khmer}', "");
-    Expect(0, 6143, '\P{Is_Block=	Khmer}', "");
-    Expect(1, 6143, '\P{^Is_Block=	Khmer}', "");
-    Expect(0, 6144, '\p{Is_Block=	Khmer}', "");
-    Expect(1, 6144, '\p{^Is_Block=	Khmer}', "");
-    Expect(1, 6144, '\P{Is_Block=	Khmer}', "");
-    Expect(0, 6144, '\P{^Is_Block=	Khmer}', "");
-    Error('\p{Is_Blk:  /a/khmer}');
-    Error('\P{Is_Blk:  /a/khmer}');
+    Expect(1, 6143, '\p{Is_Block=--Khmer}', "");
+    Expect(0, 6143, '\p{^Is_Block=--Khmer}', "");
+    Expect(0, 6143, '\P{Is_Block=--Khmer}', "");
+    Expect(1, 6143, '\P{^Is_Block=--Khmer}', "");
+    Expect(0, 6144, '\p{Is_Block=--Khmer}', "");
+    Expect(1, 6144, '\p{^Is_Block=--Khmer}', "");
+    Expect(1, 6144, '\P{Is_Block=--Khmer}', "");
+    Expect(0, 6144, '\P{^Is_Block=--Khmer}', "");
+    Error('\p{Is_Blk=--Khmer/a/}');
+    Error('\P{Is_Blk=--Khmer/a/}');
     Expect(1, 6143, '\p{Is_Blk=khmer}', "");
     Expect(0, 6143, '\p{^Is_Blk=khmer}', "");
     Expect(0, 6143, '\P{Is_Blk=khmer}', "");
@@ -15694,16 +16198,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6144, '\p{^Is_Blk=khmer}', "");
     Expect(1, 6144, '\P{Is_Blk=khmer}', "");
     Expect(0, 6144, '\P{^Is_Blk=khmer}', "");
-    Expect(1, 6143, '\p{Is_Blk= KHMER}', "");
-    Expect(0, 6143, '\p{^Is_Blk= KHMER}', "");
-    Expect(0, 6143, '\P{Is_Blk= KHMER}', "");
-    Expect(1, 6143, '\P{^Is_Blk= KHMER}', "");
-    Expect(0, 6144, '\p{Is_Blk= KHMER}', "");
-    Expect(1, 6144, '\p{^Is_Blk= KHMER}', "");
-    Expect(1, 6144, '\P{Is_Blk= KHMER}', "");
-    Expect(0, 6144, '\P{^Is_Blk= KHMER}', "");
-    Error('\p{Block=-:=khmer_Symbols}');
-    Error('\P{Block=-:=khmer_Symbols}');
+    Expect(1, 6143, '\p{Is_Blk=-Khmer}', "");
+    Expect(0, 6143, '\p{^Is_Blk=-Khmer}', "");
+    Expect(0, 6143, '\P{Is_Blk=-Khmer}', "");
+    Expect(1, 6143, '\P{^Is_Blk=-Khmer}', "");
+    Expect(0, 6144, '\p{Is_Blk=-Khmer}', "");
+    Expect(1, 6144, '\p{^Is_Blk=-Khmer}', "");
+    Expect(1, 6144, '\P{Is_Blk=-Khmer}', "");
+    Expect(0, 6144, '\P{^Is_Blk=-Khmer}', "");
+    Error('\p{Block=_:=Khmer_Symbols}');
+    Error('\P{Block=_:=Khmer_Symbols}');
     Expect(1, 6655, '\p{Block=:\AKhmer_Symbols\z:}', "");;
     Expect(0, 6656, '\p{Block=:\AKhmer_Symbols\z:}', "");;
     Expect(1, 6655, '\p{Block=khmersymbols}', "");
@@ -15716,16 +16220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6656, '\P{^Block=khmersymbols}', "");
     Expect(1, 6655, '\p{Block=:\Akhmersymbols\z:}', "");;
     Expect(0, 6656, '\p{Block=:\Akhmersymbols\z:}', "");;
-    Expect(1, 6655, '\p{Block=_ KHMER_SYMBOLS}', "");
-    Expect(0, 6655, '\p{^Block=_ KHMER_SYMBOLS}', "");
-    Expect(0, 6655, '\P{Block=_ KHMER_SYMBOLS}', "");
-    Expect(1, 6655, '\P{^Block=_ KHMER_SYMBOLS}', "");
-    Expect(0, 6656, '\p{Block=_ KHMER_SYMBOLS}', "");
-    Expect(1, 6656, '\p{^Block=_ KHMER_SYMBOLS}', "");
-    Expect(1, 6656, '\P{Block=_ KHMER_SYMBOLS}', "");
-    Expect(0, 6656, '\P{^Block=_ KHMER_SYMBOLS}', "");
-    Error('\p{Blk=:=		Khmer_Symbols}');
-    Error('\P{Blk=:=		Khmer_Symbols}');
+    Expect(1, 6655, '\p{Block=_Khmer_SYMBOLS}', "");
+    Expect(0, 6655, '\p{^Block=_Khmer_SYMBOLS}', "");
+    Expect(0, 6655, '\P{Block=_Khmer_SYMBOLS}', "");
+    Expect(1, 6655, '\P{^Block=_Khmer_SYMBOLS}', "");
+    Expect(0, 6656, '\p{Block=_Khmer_SYMBOLS}', "");
+    Expect(1, 6656, '\p{^Block=_Khmer_SYMBOLS}', "");
+    Expect(1, 6656, '\P{Block=_Khmer_SYMBOLS}', "");
+    Expect(0, 6656, '\P{^Block=_Khmer_SYMBOLS}', "");
+    Error('\p{Blk=:=_ KHMER_SYMBOLS}');
+    Error('\P{Blk=:=_ KHMER_SYMBOLS}');
     Expect(1, 6655, '\p{Blk=:\AKhmer_Symbols\z:}', "");;
     Expect(0, 6656, '\p{Blk=:\AKhmer_Symbols\z:}', "");;
     Expect(1, 6655, '\p{Blk=khmersymbols}', "");
@@ -15738,52 +16242,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6656, '\P{^Blk=khmersymbols}', "");
     Expect(1, 6655, '\p{Blk=:\Akhmersymbols\z:}', "");;
     Expect(0, 6656, '\p{Blk=:\Akhmersymbols\z:}', "");;
-    Expect(1, 6655, '\p{Blk=_-Khmer_Symbols}', "");
-    Expect(0, 6655, '\p{^Blk=_-Khmer_Symbols}', "");
-    Expect(0, 6655, '\P{Blk=_-Khmer_Symbols}', "");
-    Expect(1, 6655, '\P{^Blk=_-Khmer_Symbols}', "");
-    Expect(0, 6656, '\p{Blk=_-Khmer_Symbols}', "");
-    Expect(1, 6656, '\p{^Blk=_-Khmer_Symbols}', "");
-    Expect(1, 6656, '\P{Blk=_-Khmer_Symbols}', "");
-    Expect(0, 6656, '\P{^Blk=_-Khmer_Symbols}', "");
-    Error('\p{Is_Block=	:=khmer_SYMBOLS}');
-    Error('\P{Is_Block=	:=khmer_SYMBOLS}');
-    Expect(1, 6655, '\p{Is_Block=khmersymbols}', "");
-    Expect(0, 6655, '\p{^Is_Block=khmersymbols}', "");
-    Expect(0, 6655, '\P{Is_Block=khmersymbols}', "");
-    Expect(1, 6655, '\P{^Is_Block=khmersymbols}', "");
-    Expect(0, 6656, '\p{Is_Block=khmersymbols}', "");
-    Expect(1, 6656, '\p{^Is_Block=khmersymbols}', "");
-    Expect(1, 6656, '\P{Is_Block=khmersymbols}', "");
-    Expect(0, 6656, '\P{^Is_Block=khmersymbols}', "");
-    Expect(1, 6655, '\p{Is_Block= Khmer_SYMBOLS}', "");
-    Expect(0, 6655, '\p{^Is_Block= Khmer_SYMBOLS}', "");
-    Expect(0, 6655, '\P{Is_Block= Khmer_SYMBOLS}', "");
-    Expect(1, 6655, '\P{^Is_Block= Khmer_SYMBOLS}', "");
-    Expect(0, 6656, '\p{Is_Block= Khmer_SYMBOLS}', "");
-    Expect(1, 6656, '\p{^Is_Block= Khmer_SYMBOLS}', "");
-    Expect(1, 6656, '\P{Is_Block= Khmer_SYMBOLS}', "");
-    Expect(0, 6656, '\P{^Is_Block= Khmer_SYMBOLS}', "");
-    Error('\p{Is_Blk= /a/Khmer_symbols}');
-    Error('\P{Is_Blk= /a/Khmer_symbols}');
-    Expect(1, 6655, '\p{Is_Blk=khmersymbols}', "");
-    Expect(0, 6655, '\p{^Is_Blk=khmersymbols}', "");
-    Expect(0, 6655, '\P{Is_Blk=khmersymbols}', "");
-    Expect(1, 6655, '\P{^Is_Blk=khmersymbols}', "");
-    Expect(0, 6656, '\p{Is_Blk=khmersymbols}', "");
-    Expect(1, 6656, '\p{^Is_Blk=khmersymbols}', "");
-    Expect(1, 6656, '\P{Is_Blk=khmersymbols}', "");
-    Expect(0, 6656, '\P{^Is_Blk=khmersymbols}', "");
-    Expect(1, 6655, '\p{Is_Blk=__KHMER_symbols}', "");
-    Expect(0, 6655, '\p{^Is_Blk=__KHMER_symbols}', "");
-    Expect(0, 6655, '\P{Is_Blk=__KHMER_symbols}', "");
-    Expect(1, 6655, '\P{^Is_Blk=__KHMER_symbols}', "");
-    Expect(0, 6656, '\p{Is_Blk=__KHMER_symbols}', "");
-    Expect(1, 6656, '\p{^Is_Blk=__KHMER_symbols}', "");
-    Expect(1, 6656, '\P{Is_Blk=__KHMER_symbols}', "");
-    Expect(0, 6656, '\P{^Is_Blk=__KHMER_symbols}', "");
-    Error('\p{Block=_:=Khojki}');
-    Error('\P{Block=_:=Khojki}');
+    Expect(1, 6655, '\p{Blk:_Khmer_Symbols}', "");
+    Expect(0, 6655, '\p{^Blk:_Khmer_Symbols}', "");
+    Expect(0, 6655, '\P{Blk:_Khmer_Symbols}', "");
+    Expect(1, 6655, '\P{^Blk:_Khmer_Symbols}', "");
+    Expect(0, 6656, '\p{Blk:_Khmer_Symbols}', "");
+    Expect(1, 6656, '\p{^Blk:_Khmer_Symbols}', "");
+    Expect(1, 6656, '\P{Blk:_Khmer_Symbols}', "");
+    Expect(0, 6656, '\P{^Blk:_Khmer_Symbols}', "");
+    Error('\p{Is_Block=-:=Khmer_Symbols}');
+    Error('\P{Is_Block=-:=Khmer_Symbols}');
+    Expect(1, 6655, '\p{Is_Block: khmersymbols}', "");
+    Expect(0, 6655, '\p{^Is_Block: khmersymbols}', "");
+    Expect(0, 6655, '\P{Is_Block: khmersymbols}', "");
+    Expect(1, 6655, '\P{^Is_Block: khmersymbols}', "");
+    Expect(0, 6656, '\p{Is_Block: khmersymbols}', "");
+    Expect(1, 6656, '\p{^Is_Block: khmersymbols}', "");
+    Expect(1, 6656, '\P{Is_Block: khmersymbols}', "");
+    Expect(0, 6656, '\P{^Is_Block: khmersymbols}', "");
+    Expect(1, 6655, '\p{Is_Block=_khmer_symbols}', "");
+    Expect(0, 6655, '\p{^Is_Block=_khmer_symbols}', "");
+    Expect(0, 6655, '\P{Is_Block=_khmer_symbols}', "");
+    Expect(1, 6655, '\P{^Is_Block=_khmer_symbols}', "");
+    Expect(0, 6656, '\p{Is_Block=_khmer_symbols}', "");
+    Expect(1, 6656, '\p{^Is_Block=_khmer_symbols}', "");
+    Expect(1, 6656, '\P{Is_Block=_khmer_symbols}', "");
+    Expect(0, 6656, '\P{^Is_Block=_khmer_symbols}', "");
+    Error('\p{Is_Blk:   /a/ -KHMER_SYMBOLS}');
+    Error('\P{Is_Blk:   /a/ -KHMER_SYMBOLS}');
+    Expect(1, 6655, '\p{Is_Blk:khmersymbols}', "");
+    Expect(0, 6655, '\p{^Is_Blk:khmersymbols}', "");
+    Expect(0, 6655, '\P{Is_Blk:khmersymbols}', "");
+    Expect(1, 6655, '\P{^Is_Blk:khmersymbols}', "");
+    Expect(0, 6656, '\p{Is_Blk:khmersymbols}', "");
+    Expect(1, 6656, '\p{^Is_Blk:khmersymbols}', "");
+    Expect(1, 6656, '\P{Is_Blk:khmersymbols}', "");
+    Expect(0, 6656, '\P{^Is_Blk:khmersymbols}', "");
+    Expect(1, 6655, '\p{Is_Blk:	 Khmer_Symbols}', "");
+    Expect(0, 6655, '\p{^Is_Blk:	 Khmer_Symbols}', "");
+    Expect(0, 6655, '\P{Is_Blk:	 Khmer_Symbols}', "");
+    Expect(1, 6655, '\P{^Is_Blk:	 Khmer_Symbols}', "");
+    Expect(0, 6656, '\p{Is_Blk:	 Khmer_Symbols}', "");
+    Expect(1, 6656, '\p{^Is_Blk:	 Khmer_Symbols}', "");
+    Expect(1, 6656, '\P{Is_Blk:	 Khmer_Symbols}', "");
+    Expect(0, 6656, '\P{^Is_Blk:	 Khmer_Symbols}', "");
+    Error('\p{Block=-_khojki:=}');
+    Error('\P{Block=-_khojki:=}');
     Expect(1, 70223, '\p{Block=:\AKhojki\z:}', "");;
     Expect(0, 70224, '\p{Block=:\AKhojki\z:}', "");;
     Expect(1, 70223, '\p{Block=khojki}', "");
@@ -15796,16 +16300,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70224, '\P{^Block=khojki}', "");
     Expect(1, 70223, '\p{Block=:\Akhojki\z:}', "");;
     Expect(0, 70224, '\p{Block=:\Akhojki\z:}', "");;
-    Expect(1, 70223, '\p{Block=  Khojki}', "");
-    Expect(0, 70223, '\p{^Block=  Khojki}', "");
-    Expect(0, 70223, '\P{Block=  Khojki}', "");
-    Expect(1, 70223, '\P{^Block=  Khojki}', "");
-    Expect(0, 70224, '\p{Block=  Khojki}', "");
-    Expect(1, 70224, '\p{^Block=  Khojki}', "");
-    Expect(1, 70224, '\P{Block=  Khojki}', "");
-    Expect(0, 70224, '\P{^Block=  Khojki}', "");
-    Error('\p{Blk:   /a/  Khojki}');
-    Error('\P{Blk:   /a/  Khojki}');
+    Expect(1, 70223, '\p{Block=- Khojki}', "");
+    Expect(0, 70223, '\p{^Block=- Khojki}', "");
+    Expect(0, 70223, '\P{Block=- Khojki}', "");
+    Expect(1, 70223, '\P{^Block=- Khojki}', "");
+    Expect(0, 70224, '\p{Block=- Khojki}', "");
+    Expect(1, 70224, '\p{^Block=- Khojki}', "");
+    Expect(1, 70224, '\P{Block=- Khojki}', "");
+    Expect(0, 70224, '\P{^Block=- Khojki}', "");
+    Error('\p{Blk=	 khojki:=}');
+    Error('\P{Blk=	 khojki:=}');
     Expect(1, 70223, '\p{Blk=:\AKhojki\z:}', "");;
     Expect(0, 70224, '\p{Blk=:\AKhojki\z:}', "");;
     Expect(1, 70223, '\p{Blk=khojki}', "");
@@ -15818,16 +16322,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70224, '\P{^Blk=khojki}', "");
     Expect(1, 70223, '\p{Blk=:\Akhojki\z:}', "");;
     Expect(0, 70224, '\p{Blk=:\Akhojki\z:}', "");;
-    Expect(1, 70223, '\p{Blk=- khojki}', "");
-    Expect(0, 70223, '\p{^Blk=- khojki}', "");
-    Expect(0, 70223, '\P{Blk=- khojki}', "");
-    Expect(1, 70223, '\P{^Blk=- khojki}', "");
-    Expect(0, 70224, '\p{Blk=- khojki}', "");
-    Expect(1, 70224, '\p{^Blk=- khojki}', "");
-    Expect(1, 70224, '\P{Blk=- khojki}', "");
-    Expect(0, 70224, '\P{^Blk=- khojki}', "");
-    Error('\p{Is_Block= -Khojki:=}');
-    Error('\P{Is_Block= -Khojki:=}');
+    Expect(1, 70223, '\p{Blk=-Khojki}', "");
+    Expect(0, 70223, '\p{^Blk=-Khojki}', "");
+    Expect(0, 70223, '\P{Blk=-Khojki}', "");
+    Expect(1, 70223, '\P{^Blk=-Khojki}', "");
+    Expect(0, 70224, '\p{Blk=-Khojki}', "");
+    Expect(1, 70224, '\p{^Blk=-Khojki}', "");
+    Expect(1, 70224, '\P{Blk=-Khojki}', "");
+    Expect(0, 70224, '\P{^Blk=-Khojki}', "");
+    Error('\p{Is_Block=:=- Khojki}');
+    Error('\P{Is_Block=:=- Khojki}');
     Expect(1, 70223, '\p{Is_Block=khojki}', "");
     Expect(0, 70223, '\p{^Is_Block=khojki}', "");
     Expect(0, 70223, '\P{Is_Block=khojki}', "");
@@ -15836,16 +16340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70224, '\p{^Is_Block=khojki}', "");
     Expect(1, 70224, '\P{Is_Block=khojki}', "");
     Expect(0, 70224, '\P{^Is_Block=khojki}', "");
-    Expect(1, 70223, '\p{Is_Block=		Khojki}', "");
-    Expect(0, 70223, '\p{^Is_Block=		Khojki}', "");
-    Expect(0, 70223, '\P{Is_Block=		Khojki}', "");
-    Expect(1, 70223, '\P{^Is_Block=		Khojki}', "");
-    Expect(0, 70224, '\p{Is_Block=		Khojki}', "");
-    Expect(1, 70224, '\p{^Is_Block=		Khojki}', "");
-    Expect(1, 70224, '\P{Is_Block=		Khojki}', "");
-    Expect(0, 70224, '\P{^Is_Block=		Khojki}', "");
-    Error('\p{Is_Blk=/a/khojki}');
-    Error('\P{Is_Blk=/a/khojki}');
+    Expect(1, 70223, '\p{Is_Block=  Khojki}', "");
+    Expect(0, 70223, '\p{^Is_Block=  Khojki}', "");
+    Expect(0, 70223, '\P{Is_Block=  Khojki}', "");
+    Expect(1, 70223, '\P{^Is_Block=  Khojki}', "");
+    Expect(0, 70224, '\p{Is_Block=  Khojki}', "");
+    Expect(1, 70224, '\p{^Is_Block=  Khojki}', "");
+    Expect(1, 70224, '\P{Is_Block=  Khojki}', "");
+    Expect(0, 70224, '\P{^Is_Block=  Khojki}', "");
+    Error('\p{Is_Blk:	-_Khojki:=}');
+    Error('\P{Is_Blk:	-_Khojki:=}');
     Expect(1, 70223, '\p{Is_Blk=khojki}', "");
     Expect(0, 70223, '\p{^Is_Blk=khojki}', "");
     Expect(0, 70223, '\P{Is_Blk=khojki}', "");
@@ -15854,38 +16358,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70224, '\p{^Is_Blk=khojki}', "");
     Expect(1, 70224, '\P{Is_Blk=khojki}', "");
     Expect(0, 70224, '\P{^Is_Blk=khojki}', "");
-    Expect(1, 70223, '\p{Is_Blk= 	khojki}', "");
-    Expect(0, 70223, '\p{^Is_Blk= 	khojki}', "");
-    Expect(0, 70223, '\P{Is_Blk= 	khojki}', "");
-    Expect(1, 70223, '\P{^Is_Blk= 	khojki}', "");
-    Expect(0, 70224, '\p{Is_Blk= 	khojki}', "");
-    Expect(1, 70224, '\p{^Is_Blk= 	khojki}', "");
-    Expect(1, 70224, '\P{Is_Blk= 	khojki}', "");
-    Expect(0, 70224, '\P{^Is_Blk= 	khojki}', "");
-    Error('\p{Block= KHUDAWADI:=}');
-    Error('\P{Block= KHUDAWADI:=}');
+    Expect(1, 70223, '\p{Is_Blk=	Khojki}', "");
+    Expect(0, 70223, '\p{^Is_Blk=	Khojki}', "");
+    Expect(0, 70223, '\P{Is_Blk=	Khojki}', "");
+    Expect(1, 70223, '\P{^Is_Blk=	Khojki}', "");
+    Expect(0, 70224, '\p{Is_Blk=	Khojki}', "");
+    Expect(1, 70224, '\p{^Is_Blk=	Khojki}', "");
+    Expect(1, 70224, '\P{Is_Blk=	Khojki}', "");
+    Expect(0, 70224, '\P{^Is_Blk=	Khojki}', "");
+    Error('\p{Block=-_khudawadi/a/}');
+    Error('\P{Block=-_khudawadi/a/}');
     Expect(1, 70399, '\p{Block=:\AKhudawadi\z:}', "");;
     Expect(0, 70400, '\p{Block=:\AKhudawadi\z:}', "");;
-    Expect(1, 70399, '\p{Block=khudawadi}', "");
-    Expect(0, 70399, '\p{^Block=khudawadi}', "");
-    Expect(0, 70399, '\P{Block=khudawadi}', "");
-    Expect(1, 70399, '\P{^Block=khudawadi}', "");
-    Expect(0, 70400, '\p{Block=khudawadi}', "");
-    Expect(1, 70400, '\p{^Block=khudawadi}', "");
-    Expect(1, 70400, '\P{Block=khudawadi}', "");
-    Expect(0, 70400, '\P{^Block=khudawadi}', "");
+    Expect(1, 70399, '\p{Block: khudawadi}', "");
+    Expect(0, 70399, '\p{^Block: khudawadi}', "");
+    Expect(0, 70399, '\P{Block: khudawadi}', "");
+    Expect(1, 70399, '\P{^Block: khudawadi}', "");
+    Expect(0, 70400, '\p{Block: khudawadi}', "");
+    Expect(1, 70400, '\p{^Block: khudawadi}', "");
+    Expect(1, 70400, '\P{Block: khudawadi}', "");
+    Expect(0, 70400, '\P{^Block: khudawadi}', "");
     Expect(1, 70399, '\p{Block=:\Akhudawadi\z:}', "");;
     Expect(0, 70400, '\p{Block=:\Akhudawadi\z:}', "");;
-    Expect(1, 70399, '\p{Block= -KHUDAWADI}', "");
-    Expect(0, 70399, '\p{^Block= -KHUDAWADI}', "");
-    Expect(0, 70399, '\P{Block= -KHUDAWADI}', "");
-    Expect(1, 70399, '\P{^Block= -KHUDAWADI}', "");
-    Expect(0, 70400, '\p{Block= -KHUDAWADI}', "");
-    Expect(1, 70400, '\p{^Block= -KHUDAWADI}', "");
-    Expect(1, 70400, '\P{Block= -KHUDAWADI}', "");
-    Expect(0, 70400, '\P{^Block= -KHUDAWADI}', "");
-    Error('\p{Blk= :=KHUDAWADI}');
-    Error('\P{Blk= :=KHUDAWADI}');
+    Expect(1, 70399, '\p{Block=_ khudawadi}', "");
+    Expect(0, 70399, '\p{^Block=_ khudawadi}', "");
+    Expect(0, 70399, '\P{Block=_ khudawadi}', "");
+    Expect(1, 70399, '\P{^Block=_ khudawadi}', "");
+    Expect(0, 70400, '\p{Block=_ khudawadi}', "");
+    Expect(1, 70400, '\p{^Block=_ khudawadi}', "");
+    Expect(1, 70400, '\P{Block=_ khudawadi}', "");
+    Expect(0, 70400, '\P{^Block=_ khudawadi}', "");
+    Error('\p{Blk:   _ khudawadi/a/}');
+    Error('\P{Blk:   _ khudawadi/a/}');
     Expect(1, 70399, '\p{Blk=:\AKhudawadi\z:}', "");;
     Expect(0, 70400, '\p{Blk=:\AKhudawadi\z:}', "");;
     Expect(1, 70399, '\p{Blk=khudawadi}', "");
@@ -15898,16 +16402,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70400, '\P{^Blk=khudawadi}', "");
     Expect(1, 70399, '\p{Blk=:\Akhudawadi\z:}', "");;
     Expect(0, 70400, '\p{Blk=:\Akhudawadi\z:}', "");;
-    Expect(1, 70399, '\p{Blk=-KHUDAWADI}', "");
-    Expect(0, 70399, '\p{^Blk=-KHUDAWADI}', "");
-    Expect(0, 70399, '\P{Blk=-KHUDAWADI}', "");
-    Expect(1, 70399, '\P{^Blk=-KHUDAWADI}', "");
-    Expect(0, 70400, '\p{Blk=-KHUDAWADI}', "");
-    Expect(1, 70400, '\p{^Blk=-KHUDAWADI}', "");
-    Expect(1, 70400, '\P{Blk=-KHUDAWADI}', "");
-    Expect(0, 70400, '\P{^Blk=-KHUDAWADI}', "");
-    Error('\p{Is_Block=__Khudawadi:=}');
-    Error('\P{Is_Block=__Khudawadi:=}');
+    Expect(1, 70399, '\p{Blk= khudawadi}', "");
+    Expect(0, 70399, '\p{^Blk= khudawadi}', "");
+    Expect(0, 70399, '\P{Blk= khudawadi}', "");
+    Expect(1, 70399, '\P{^Blk= khudawadi}', "");
+    Expect(0, 70400, '\p{Blk= khudawadi}', "");
+    Expect(1, 70400, '\p{^Blk= khudawadi}', "");
+    Expect(1, 70400, '\P{Blk= khudawadi}', "");
+    Expect(0, 70400, '\P{^Blk= khudawadi}', "");
+    Error('\p{Is_Block=_khudawadi/a/}');
+    Error('\P{Is_Block=_khudawadi/a/}');
     Expect(1, 70399, '\p{Is_Block=khudawadi}', "");
     Expect(0, 70399, '\p{^Is_Block=khudawadi}', "");
     Expect(0, 70399, '\P{Is_Block=khudawadi}', "");
@@ -15916,16 +16420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70400, '\p{^Is_Block=khudawadi}', "");
     Expect(1, 70400, '\P{Is_Block=khudawadi}', "");
     Expect(0, 70400, '\P{^Is_Block=khudawadi}', "");
-    Expect(1, 70399, '\p{Is_Block:   _khudawadi}', "");
-    Expect(0, 70399, '\p{^Is_Block:   _khudawadi}', "");
-    Expect(0, 70399, '\P{Is_Block:   _khudawadi}', "");
-    Expect(1, 70399, '\P{^Is_Block:   _khudawadi}', "");
-    Expect(0, 70400, '\p{Is_Block:   _khudawadi}', "");
-    Expect(1, 70400, '\p{^Is_Block:   _khudawadi}', "");
-    Expect(1, 70400, '\P{Is_Block:   _khudawadi}', "");
-    Expect(0, 70400, '\P{^Is_Block:   _khudawadi}', "");
-    Error('\p{Is_Blk=	-KHUDAWADI:=}');
-    Error('\P{Is_Blk=	-KHUDAWADI:=}');
+    Expect(1, 70399, '\p{Is_Block=_KHUDAWADI}', "");
+    Expect(0, 70399, '\p{^Is_Block=_KHUDAWADI}', "");
+    Expect(0, 70399, '\P{Is_Block=_KHUDAWADI}', "");
+    Expect(1, 70399, '\P{^Is_Block=_KHUDAWADI}', "");
+    Expect(0, 70400, '\p{Is_Block=_KHUDAWADI}', "");
+    Expect(1, 70400, '\p{^Is_Block=_KHUDAWADI}', "");
+    Expect(1, 70400, '\P{Is_Block=_KHUDAWADI}', "");
+    Expect(0, 70400, '\P{^Is_Block=_KHUDAWADI}', "");
+    Error('\p{Is_Blk=:=KHUDAWADI}');
+    Error('\P{Is_Blk=:=KHUDAWADI}');
     Expect(1, 70399, '\p{Is_Blk=khudawadi}', "");
     Expect(0, 70399, '\p{^Is_Blk=khudawadi}', "");
     Expect(0, 70399, '\P{Is_Blk=khudawadi}', "");
@@ -15934,16 +16438,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70400, '\p{^Is_Blk=khudawadi}', "");
     Expect(1, 70400, '\P{Is_Blk=khudawadi}', "");
     Expect(0, 70400, '\P{^Is_Blk=khudawadi}', "");
-    Expect(1, 70399, '\p{Is_Blk=  KHUDAWADI}', "");
-    Expect(0, 70399, '\p{^Is_Blk=  KHUDAWADI}', "");
-    Expect(0, 70399, '\P{Is_Blk=  KHUDAWADI}', "");
-    Expect(1, 70399, '\P{^Is_Blk=  KHUDAWADI}', "");
-    Expect(0, 70400, '\p{Is_Blk=  KHUDAWADI}', "");
-    Expect(1, 70400, '\p{^Is_Blk=  KHUDAWADI}', "");
-    Expect(1, 70400, '\P{Is_Blk=  KHUDAWADI}', "");
-    Expect(0, 70400, '\P{^Is_Blk=  KHUDAWADI}', "");
-    Error('\p{Block:	:=lao}');
-    Error('\P{Block:	:=lao}');
+    Expect(1, 70399, '\p{Is_Blk=  khudawadi}', "");
+    Expect(0, 70399, '\p{^Is_Blk=  khudawadi}', "");
+    Expect(0, 70399, '\P{Is_Blk=  khudawadi}', "");
+    Expect(1, 70399, '\P{^Is_Blk=  khudawadi}', "");
+    Expect(0, 70400, '\p{Is_Blk=  khudawadi}', "");
+    Expect(1, 70400, '\p{^Is_Blk=  khudawadi}', "");
+    Expect(1, 70400, '\P{Is_Blk=  khudawadi}', "");
+    Expect(0, 70400, '\P{^Is_Blk=  khudawadi}', "");
+    Error('\p{Block=	_lao/a/}');
+    Error('\P{Block=	_lao/a/}');
     Expect(1, 3839, '\p{Block=:\ALao\z:}', "");;
     Expect(0, 3840, '\p{Block=:\ALao\z:}', "");;
     Expect(1, 3839, '\p{Block=lao}', "");
@@ -15956,16 +16460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3840, '\P{^Block=lao}', "");
     Expect(1, 3839, '\p{Block=:\Alao\z:}', "");;
     Expect(0, 3840, '\p{Block=:\Alao\z:}', "");;
-    Expect(1, 3839, '\p{Block:			Lao}', "");
-    Expect(0, 3839, '\p{^Block:			Lao}', "");
-    Expect(0, 3839, '\P{Block:			Lao}', "");
-    Expect(1, 3839, '\P{^Block:			Lao}', "");
-    Expect(0, 3840, '\p{Block:			Lao}', "");
-    Expect(1, 3840, '\p{^Block:			Lao}', "");
-    Expect(1, 3840, '\P{Block:			Lao}', "");
-    Expect(0, 3840, '\P{^Block:			Lao}', "");
-    Error('\p{Blk=-:=Lao}');
-    Error('\P{Blk=-:=Lao}');
+    Expect(1, 3839, '\p{Block=  LAO}', "");
+    Expect(0, 3839, '\p{^Block=  LAO}', "");
+    Expect(0, 3839, '\P{Block=  LAO}', "");
+    Expect(1, 3839, '\P{^Block=  LAO}', "");
+    Expect(0, 3840, '\p{Block=  LAO}', "");
+    Expect(1, 3840, '\p{^Block=  LAO}', "");
+    Expect(1, 3840, '\P{Block=  LAO}', "");
+    Expect(0, 3840, '\P{^Block=  LAO}', "");
+    Error('\p{Blk=--Lao:=}');
+    Error('\P{Blk=--Lao:=}');
     Expect(1, 3839, '\p{Blk=:\ALao\z:}', "");;
     Expect(0, 3840, '\p{Blk=:\ALao\z:}', "");;
     Expect(1, 3839, '\p{Blk=lao}', "");
@@ -15978,16 +16482,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3840, '\P{^Blk=lao}', "");
     Expect(1, 3839, '\p{Blk=:\Alao\z:}', "");;
     Expect(0, 3840, '\p{Blk=:\Alao\z:}', "");;
-    Expect(1, 3839, '\p{Blk=  Lao}', "");
-    Expect(0, 3839, '\p{^Blk=  Lao}', "");
-    Expect(0, 3839, '\P{Blk=  Lao}', "");
-    Expect(1, 3839, '\P{^Blk=  Lao}', "");
-    Expect(0, 3840, '\p{Blk=  Lao}', "");
-    Expect(1, 3840, '\p{^Blk=  Lao}', "");
-    Expect(1, 3840, '\P{Blk=  Lao}', "");
-    Expect(0, 3840, '\P{^Blk=  Lao}', "");
-    Error('\p{Is_Block=-/a/lao}');
-    Error('\P{Is_Block=-/a/lao}');
+    Expect(1, 3839, '\p{Blk=-Lao}', "");
+    Expect(0, 3839, '\p{^Blk=-Lao}', "");
+    Expect(0, 3839, '\P{Blk=-Lao}', "");
+    Expect(1, 3839, '\P{^Blk=-Lao}', "");
+    Expect(0, 3840, '\p{Blk=-Lao}', "");
+    Expect(1, 3840, '\p{^Blk=-Lao}', "");
+    Expect(1, 3840, '\P{Blk=-Lao}', "");
+    Expect(0, 3840, '\P{^Blk=-Lao}', "");
+    Error('\p{Is_Block=-	lao/a/}');
+    Error('\P{Is_Block=-	lao/a/}');
     Expect(1, 3839, '\p{Is_Block=lao}', "");
     Expect(0, 3839, '\p{^Is_Block=lao}', "");
     Expect(0, 3839, '\P{Is_Block=lao}', "");
@@ -15996,16 +16500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3840, '\p{^Is_Block=lao}', "");
     Expect(1, 3840, '\P{Is_Block=lao}', "");
     Expect(0, 3840, '\P{^Is_Block=lao}', "");
-    Expect(1, 3839, '\p{Is_Block=	-lao}', "");
-    Expect(0, 3839, '\p{^Is_Block=	-lao}', "");
-    Expect(0, 3839, '\P{Is_Block=	-lao}', "");
-    Expect(1, 3839, '\P{^Is_Block=	-lao}', "");
-    Expect(0, 3840, '\p{Is_Block=	-lao}', "");
-    Expect(1, 3840, '\p{^Is_Block=	-lao}', "");
-    Expect(1, 3840, '\P{Is_Block=	-lao}', "");
-    Expect(0, 3840, '\P{^Is_Block=	-lao}', "");
-    Error('\p{Is_Blk=--Lao:=}');
-    Error('\P{Is_Blk=--Lao:=}');
+    Expect(1, 3839, '\p{Is_Block: 	Lao}', "");
+    Expect(0, 3839, '\p{^Is_Block: 	Lao}', "");
+    Expect(0, 3839, '\P{Is_Block: 	Lao}', "");
+    Expect(1, 3839, '\P{^Is_Block: 	Lao}', "");
+    Expect(0, 3840, '\p{Is_Block: 	Lao}', "");
+    Expect(1, 3840, '\p{^Is_Block: 	Lao}', "");
+    Expect(1, 3840, '\P{Is_Block: 	Lao}', "");
+    Expect(0, 3840, '\P{^Is_Block: 	Lao}', "");
+    Error('\p{Is_Blk=-/a/lao}');
+    Error('\P{Is_Blk=-/a/lao}');
     Expect(1, 3839, '\p{Is_Blk=lao}', "");
     Expect(0, 3839, '\p{^Is_Blk=lao}', "");
     Expect(0, 3839, '\P{Is_Blk=lao}', "");
@@ -16014,16 +16518,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3840, '\p{^Is_Blk=lao}', "");
     Expect(1, 3840, '\P{Is_Blk=lao}', "");
     Expect(0, 3840, '\P{^Is_Blk=lao}', "");
-    Expect(1, 3839, '\p{Is_Blk=_lao}', "");
-    Expect(0, 3839, '\p{^Is_Blk=_lao}', "");
-    Expect(0, 3839, '\P{Is_Blk=_lao}', "");
-    Expect(1, 3839, '\P{^Is_Blk=_lao}', "");
-    Expect(0, 3840, '\p{Is_Blk=_lao}', "");
-    Expect(1, 3840, '\p{^Is_Blk=_lao}', "");
-    Expect(1, 3840, '\P{Is_Blk=_lao}', "");
-    Expect(0, 3840, '\P{^Is_Blk=_lao}', "");
-    Error('\p{Block=/a/-Latin_1_SUPPLEMENT}');
-    Error('\P{Block=/a/-Latin_1_SUPPLEMENT}');
+    Expect(1, 3839, '\p{Is_Blk: 		lao}', "");
+    Expect(0, 3839, '\p{^Is_Blk: 		lao}', "");
+    Expect(0, 3839, '\P{Is_Blk: 		lao}', "");
+    Expect(1, 3839, '\P{^Is_Blk: 		lao}', "");
+    Expect(0, 3840, '\p{Is_Blk: 		lao}', "");
+    Expect(1, 3840, '\p{^Is_Blk: 		lao}', "");
+    Expect(1, 3840, '\P{Is_Blk: 		lao}', "");
+    Expect(0, 3840, '\P{^Is_Blk: 		lao}', "");
+    Error('\p{Block=:=latin_1_Supplement}');
+    Error('\P{Block=:=latin_1_Supplement}');
     Expect(1, 255, '\p{Block=:\ALatin_1_Supplement\z:}', "");;
     Expect(0, 256, '\p{Block=:\ALatin_1_Supplement\z:}', "");;
     Expect(1, 255, '\p{Block=latin1supplement}', "");
@@ -16036,16 +16540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 256, '\P{^Block=latin1supplement}', "");
     Expect(1, 255, '\p{Block=:\Alatin1supplement\z:}', "");;
     Expect(0, 256, '\p{Block=:\Alatin1supplement\z:}', "");;
-    Expect(1, 255, '\p{Block=-	LATIN_1_Supplement}', "");
-    Expect(0, 255, '\p{^Block=-	LATIN_1_Supplement}', "");
-    Expect(0, 255, '\P{Block=-	LATIN_1_Supplement}', "");
-    Expect(1, 255, '\P{^Block=-	LATIN_1_Supplement}', "");
-    Expect(0, 256, '\p{Block=-	LATIN_1_Supplement}', "");
-    Expect(1, 256, '\p{^Block=-	LATIN_1_Supplement}', "");
-    Expect(1, 256, '\P{Block=-	LATIN_1_Supplement}', "");
-    Expect(0, 256, '\P{^Block=-	LATIN_1_Supplement}', "");
-    Error('\p{Blk=_-latin_1_Sup/a/}');
-    Error('\P{Blk=_-latin_1_Sup/a/}');
+    Expect(1, 255, '\p{Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(0, 255, '\p{^Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(0, 255, '\P{Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(1, 255, '\P{^Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(0, 256, '\p{Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(1, 256, '\p{^Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(1, 256, '\P{Block= LATIN_1_SUPPLEMENT}', "");
+    Expect(0, 256, '\P{^Block= LATIN_1_SUPPLEMENT}', "");
+    Error('\p{Blk=/a/_ latin_1_sup}');
+    Error('\P{Blk=/a/_ latin_1_sup}');
     Expect(1, 255, '\p{Blk=:\ALatin_1_Sup\z:}', "");;
     Expect(0, 256, '\p{Blk=:\ALatin_1_Sup\z:}', "");;
     Expect(1, 255, '\p{Blk=latin1sup}', "");
@@ -16058,16 +16562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 256, '\P{^Blk=latin1sup}', "");
     Expect(1, 255, '\p{Blk=:\Alatin1sup\z:}', "");;
     Expect(0, 256, '\p{Blk=:\Alatin1sup\z:}', "");;
-    Expect(1, 255, '\p{Blk=_latin_1_SUP}', "");
-    Expect(0, 255, '\p{^Blk=_latin_1_SUP}', "");
-    Expect(0, 255, '\P{Blk=_latin_1_SUP}', "");
-    Expect(1, 255, '\P{^Blk=_latin_1_SUP}', "");
-    Expect(0, 256, '\p{Blk=_latin_1_SUP}', "");
-    Expect(1, 256, '\p{^Blk=_latin_1_SUP}', "");
-    Expect(1, 256, '\P{Blk=_latin_1_SUP}', "");
-    Expect(0, 256, '\P{^Blk=_latin_1_SUP}', "");
-    Error('\p{Is_Block=:=Latin_1}');
-    Error('\P{Is_Block=:=Latin_1}');
+    Expect(1, 255, '\p{Blk=latin_1_Sup}', "");
+    Expect(0, 255, '\p{^Blk=latin_1_Sup}', "");
+    Expect(0, 255, '\P{Blk=latin_1_Sup}', "");
+    Expect(1, 255, '\P{^Blk=latin_1_Sup}', "");
+    Expect(0, 256, '\p{Blk=latin_1_Sup}', "");
+    Expect(1, 256, '\p{^Blk=latin_1_Sup}', "");
+    Expect(1, 256, '\P{Blk=latin_1_Sup}', "");
+    Expect(0, 256, '\P{^Blk=latin_1_Sup}', "");
+    Error('\p{Is_Block=_-LATIN_1:=}');
+    Error('\P{Is_Block=_-LATIN_1:=}');
     Expect(1, 255, '\p{Is_Block=latin1}', "");
     Expect(0, 255, '\p{^Is_Block=latin1}', "");
     Expect(0, 255, '\P{Is_Block=latin1}', "");
@@ -16076,16 +16580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 256, '\p{^Is_Block=latin1}', "");
     Expect(1, 256, '\P{Is_Block=latin1}', "");
     Expect(0, 256, '\P{^Is_Block=latin1}', "");
-    Expect(1, 255, '\p{Is_Block=	 Latin_1}', "");
-    Expect(0, 255, '\p{^Is_Block=	 Latin_1}', "");
-    Expect(0, 255, '\P{Is_Block=	 Latin_1}', "");
-    Expect(1, 255, '\P{^Is_Block=	 Latin_1}', "");
-    Expect(0, 256, '\p{Is_Block=	 Latin_1}', "");
-    Expect(1, 256, '\p{^Is_Block=	 Latin_1}', "");
-    Expect(1, 256, '\P{Is_Block=	 Latin_1}', "");
-    Expect(0, 256, '\P{^Is_Block=	 Latin_1}', "");
-    Error('\p{Is_Blk=  Latin_1_SUPPLEMENT/a/}');
-    Error('\P{Is_Blk=  Latin_1_SUPPLEMENT/a/}');
+    Expect(1, 255, '\p{Is_Block=Latin_1}', "");
+    Expect(0, 255, '\p{^Is_Block=Latin_1}', "");
+    Expect(0, 255, '\P{Is_Block=Latin_1}', "");
+    Expect(1, 255, '\P{^Is_Block=Latin_1}', "");
+    Expect(0, 256, '\p{Is_Block=Latin_1}', "");
+    Expect(1, 256, '\p{^Is_Block=Latin_1}', "");
+    Expect(1, 256, '\P{Is_Block=Latin_1}', "");
+    Expect(0, 256, '\P{^Is_Block=Latin_1}', "");
+    Error('\p{Is_Blk=:=latin_1_Supplement}');
+    Error('\P{Is_Blk=:=latin_1_Supplement}');
     Expect(1, 255, '\p{Is_Blk=latin1supplement}', "");
     Expect(0, 255, '\p{^Is_Blk=latin1supplement}', "");
     Expect(0, 255, '\P{Is_Blk=latin1supplement}', "");
@@ -16094,38 +16598,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 256, '\p{^Is_Blk=latin1supplement}', "");
     Expect(1, 256, '\P{Is_Blk=latin1supplement}', "");
     Expect(0, 256, '\P{^Is_Blk=latin1supplement}', "");
-    Expect(1, 255, '\p{Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(0, 255, '\p{^Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(0, 255, '\P{Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(1, 255, '\P{^Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(0, 256, '\p{Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(1, 256, '\p{^Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(1, 256, '\P{Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Expect(0, 256, '\P{^Is_Blk=_Latin_1_SUPPLEMENT}', "");
-    Error('\p{Block=/a/-_latin_extended_a}');
-    Error('\P{Block=/a/-_latin_extended_a}');
+    Expect(1, 255, '\p{Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(0, 255, '\p{^Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(0, 255, '\P{Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(1, 255, '\P{^Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(0, 256, '\p{Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(1, 256, '\p{^Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(1, 256, '\P{Is_Blk= 	LATIN_1_Supplement}', "");
+    Expect(0, 256, '\P{^Is_Blk= 	LATIN_1_Supplement}', "");
+    Error('\p{Block=	/a/Latin_Extended_A}');
+    Error('\P{Block=	/a/Latin_Extended_A}');
     Expect(1, 383, '\p{Block=:\ALatin_Extended_A\z:}', "");;
     Expect(0, 384, '\p{Block=:\ALatin_Extended_A\z:}', "");;
-    Expect(1, 383, '\p{Block=latinextendeda}', "");
-    Expect(0, 383, '\p{^Block=latinextendeda}', "");
-    Expect(0, 383, '\P{Block=latinextendeda}', "");
-    Expect(1, 383, '\P{^Block=latinextendeda}', "");
-    Expect(0, 384, '\p{Block=latinextendeda}', "");
-    Expect(1, 384, '\p{^Block=latinextendeda}', "");
-    Expect(1, 384, '\P{Block=latinextendeda}', "");
-    Expect(0, 384, '\P{^Block=latinextendeda}', "");
+    Expect(1, 383, '\p{Block:	latinextendeda}', "");
+    Expect(0, 383, '\p{^Block:	latinextendeda}', "");
+    Expect(0, 383, '\P{Block:	latinextendeda}', "");
+    Expect(1, 383, '\P{^Block:	latinextendeda}', "");
+    Expect(0, 384, '\p{Block:	latinextendeda}', "");
+    Expect(1, 384, '\p{^Block:	latinextendeda}', "");
+    Expect(1, 384, '\P{Block:	latinextendeda}', "");
+    Expect(0, 384, '\P{^Block:	latinextendeda}', "");
     Expect(1, 383, '\p{Block=:\Alatinextendeda\z:}', "");;
     Expect(0, 384, '\p{Block=:\Alatinextendeda\z:}', "");;
-    Expect(1, 383, '\p{Block= 	latin_extended_A}', "");
-    Expect(0, 383, '\p{^Block= 	latin_extended_A}', "");
-    Expect(0, 383, '\P{Block= 	latin_extended_A}', "");
-    Expect(1, 383, '\P{^Block= 	latin_extended_A}', "");
-    Expect(0, 384, '\p{Block= 	latin_extended_A}', "");
-    Expect(1, 384, '\p{^Block= 	latin_extended_A}', "");
-    Expect(1, 384, '\P{Block= 	latin_extended_A}', "");
-    Expect(0, 384, '\P{^Block= 	latin_extended_A}', "");
-    Error('\p{Blk=-latin_Ext_A:=}');
-    Error('\P{Blk=-latin_Ext_A:=}');
+    Expect(1, 383, '\p{Block= 	Latin_Extended_A}', "");
+    Expect(0, 383, '\p{^Block= 	Latin_Extended_A}', "");
+    Expect(0, 383, '\P{Block= 	Latin_Extended_A}', "");
+    Expect(1, 383, '\P{^Block= 	Latin_Extended_A}', "");
+    Expect(0, 384, '\p{Block= 	Latin_Extended_A}', "");
+    Expect(1, 384, '\p{^Block= 	Latin_Extended_A}', "");
+    Expect(1, 384, '\P{Block= 	Latin_Extended_A}', "");
+    Expect(0, 384, '\P{^Block= 	Latin_Extended_A}', "");
+    Error('\p{Blk=_:=latin_EXT_a}');
+    Error('\P{Blk=_:=latin_EXT_a}');
     Expect(1, 383, '\p{Blk=:\ALatin_Ext_A\z:}', "");;
     Expect(0, 384, '\p{Blk=:\ALatin_Ext_A\z:}', "");;
     Expect(1, 383, '\p{Blk=latinexta}', "");
@@ -16138,16 +16642,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 384, '\P{^Blk=latinexta}', "");
     Expect(1, 383, '\p{Blk=:\Alatinexta\z:}', "");;
     Expect(0, 384, '\p{Blk=:\Alatinexta\z:}', "");;
-    Expect(1, 383, '\p{Blk=	Latin_EXT_A}', "");
-    Expect(0, 383, '\p{^Blk=	Latin_EXT_A}', "");
-    Expect(0, 383, '\P{Blk=	Latin_EXT_A}', "");
-    Expect(1, 383, '\P{^Blk=	Latin_EXT_A}', "");
-    Expect(0, 384, '\p{Blk=	Latin_EXT_A}', "");
-    Expect(1, 384, '\p{^Blk=	Latin_EXT_A}', "");
-    Expect(1, 384, '\P{Blk=	Latin_EXT_A}', "");
-    Expect(0, 384, '\P{^Blk=	Latin_EXT_A}', "");
-    Error('\p{Is_Block=:=_-latin_EXTENDED_A}');
-    Error('\P{Is_Block=:=_-latin_EXTENDED_A}');
+    Expect(1, 383, '\p{Blk=- LATIN_EXT_A}', "");
+    Expect(0, 383, '\p{^Blk=- LATIN_EXT_A}', "");
+    Expect(0, 383, '\P{Blk=- LATIN_EXT_A}', "");
+    Expect(1, 383, '\P{^Blk=- LATIN_EXT_A}', "");
+    Expect(0, 384, '\p{Blk=- LATIN_EXT_A}', "");
+    Expect(1, 384, '\p{^Blk=- LATIN_EXT_A}', "");
+    Expect(1, 384, '\P{Blk=- LATIN_EXT_A}', "");
+    Expect(0, 384, '\P{^Blk=- LATIN_EXT_A}', "");
+    Error('\p{Is_Block=_Latin_extended_a:=}');
+    Error('\P{Is_Block=_Latin_extended_a:=}');
     Expect(1, 383, '\p{Is_Block=latinextendeda}', "");
     Expect(0, 383, '\p{^Is_Block=latinextendeda}', "");
     Expect(0, 383, '\P{Is_Block=latinextendeda}', "");
@@ -16156,16 +16660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 384, '\p{^Is_Block=latinextendeda}', "");
     Expect(1, 384, '\P{Is_Block=latinextendeda}', "");
     Expect(0, 384, '\P{^Is_Block=latinextendeda}', "");
-    Expect(1, 383, '\p{Is_Block=__LATIN_Extended_A}', "");
-    Expect(0, 383, '\p{^Is_Block=__LATIN_Extended_A}', "");
-    Expect(0, 383, '\P{Is_Block=__LATIN_Extended_A}', "");
-    Expect(1, 383, '\P{^Is_Block=__LATIN_Extended_A}', "");
-    Expect(0, 384, '\p{Is_Block=__LATIN_Extended_A}', "");
-    Expect(1, 384, '\p{^Is_Block=__LATIN_Extended_A}', "");
-    Expect(1, 384, '\P{Is_Block=__LATIN_Extended_A}', "");
-    Expect(0, 384, '\P{^Is_Block=__LATIN_Extended_A}', "");
-    Error('\p{Is_Blk=_-latin_EXT_A/a/}');
-    Error('\P{Is_Blk=_-latin_EXT_A/a/}');
+    Expect(1, 383, '\p{Is_Block=_Latin_Extended_A}', "");
+    Expect(0, 383, '\p{^Is_Block=_Latin_Extended_A}', "");
+    Expect(0, 383, '\P{Is_Block=_Latin_Extended_A}', "");
+    Expect(1, 383, '\P{^Is_Block=_Latin_Extended_A}', "");
+    Expect(0, 384, '\p{Is_Block=_Latin_Extended_A}', "");
+    Expect(1, 384, '\p{^Is_Block=_Latin_Extended_A}', "");
+    Expect(1, 384, '\P{Is_Block=_Latin_Extended_A}', "");
+    Expect(0, 384, '\P{^Is_Block=_Latin_Extended_A}', "");
+    Error('\p{Is_Blk=/a/_	Latin_ext_A}');
+    Error('\P{Is_Blk=/a/_	Latin_ext_A}');
     Expect(1, 383, '\p{Is_Blk=latinexta}', "");
     Expect(0, 383, '\p{^Is_Blk=latinexta}', "");
     Expect(0, 383, '\P{Is_Blk=latinexta}', "");
@@ -16174,16 +16678,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 384, '\p{^Is_Blk=latinexta}', "");
     Expect(1, 384, '\P{Is_Blk=latinexta}', "");
     Expect(0, 384, '\P{^Is_Blk=latinexta}', "");
-    Expect(1, 383, '\p{Is_Blk:  latin_Ext_A}', "");
-    Expect(0, 383, '\p{^Is_Blk:  latin_Ext_A}', "");
-    Expect(0, 383, '\P{Is_Blk:  latin_Ext_A}', "");
-    Expect(1, 383, '\P{^Is_Blk:  latin_Ext_A}', "");
-    Expect(0, 384, '\p{Is_Blk:  latin_Ext_A}', "");
-    Expect(1, 384, '\p{^Is_Blk:  latin_Ext_A}', "");
-    Expect(1, 384, '\P{Is_Blk:  latin_Ext_A}', "");
-    Expect(0, 384, '\P{^Is_Blk:  latin_Ext_A}', "");
-    Error('\p{Block=	 Latin_EXTENDED_Additional:=}');
-    Error('\P{Block=	 Latin_EXTENDED_Additional:=}');
+    Expect(1, 383, '\p{Is_Blk= _Latin_Ext_A}', "");
+    Expect(0, 383, '\p{^Is_Blk= _Latin_Ext_A}', "");
+    Expect(0, 383, '\P{Is_Blk= _Latin_Ext_A}', "");
+    Expect(1, 383, '\P{^Is_Blk= _Latin_Ext_A}', "");
+    Expect(0, 384, '\p{Is_Blk= _Latin_Ext_A}', "");
+    Expect(1, 384, '\p{^Is_Blk= _Latin_Ext_A}', "");
+    Expect(1, 384, '\P{Is_Blk= _Latin_Ext_A}', "");
+    Expect(0, 384, '\P{^Is_Blk= _Latin_Ext_A}', "");
+    Error('\p{Block=	/a/Latin_Extended_Additional}');
+    Error('\P{Block=	/a/Latin_Extended_Additional}');
     Expect(1, 7935, '\p{Block=:\ALatin_Extended_Additional\z:}', "");;
     Expect(0, 7936, '\p{Block=:\ALatin_Extended_Additional\z:}', "");;
     Expect(1, 7935, '\p{Block=latinextendedadditional}', "");
@@ -16196,16 +16700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7936, '\P{^Block=latinextendedadditional}', "");
     Expect(1, 7935, '\p{Block=:\Alatinextendedadditional\z:}', "");;
     Expect(0, 7936, '\p{Block=:\Alatinextendedadditional\z:}', "");;
-    Expect(1, 7935, '\p{Block= Latin_EXTENDED_Additional}', "");
-    Expect(0, 7935, '\p{^Block= Latin_EXTENDED_Additional}', "");
-    Expect(0, 7935, '\P{Block= Latin_EXTENDED_Additional}', "");
-    Expect(1, 7935, '\P{^Block= Latin_EXTENDED_Additional}', "");
-    Expect(0, 7936, '\p{Block= Latin_EXTENDED_Additional}', "");
-    Expect(1, 7936, '\p{^Block= Latin_EXTENDED_Additional}', "");
-    Expect(1, 7936, '\P{Block= Latin_EXTENDED_Additional}', "");
-    Expect(0, 7936, '\P{^Block= Latin_EXTENDED_Additional}', "");
-    Error('\p{Blk:   	Latin_EXT_ADDITIONAL:=}');
-    Error('\P{Blk:   	Latin_EXT_ADDITIONAL:=}');
+    Expect(1, 7935, '\p{Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(0, 7935, '\p{^Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(0, 7935, '\P{Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(1, 7935, '\P{^Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(0, 7936, '\p{Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(1, 7936, '\p{^Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(1, 7936, '\P{Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Expect(0, 7936, '\P{^Block=-latin_EXTENDED_ADDITIONAL}', "");
+    Error('\p{Blk:-	latin_ext_additional:=}');
+    Error('\P{Blk:-	latin_ext_additional:=}');
     Expect(1, 7935, '\p{Blk=:\ALatin_Ext_Additional\z:}', "");;
     Expect(0, 7936, '\p{Blk=:\ALatin_Ext_Additional\z:}', "");;
     Expect(1, 7935, '\p{Blk=latinextadditional}', "");
@@ -16218,52 +16722,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7936, '\P{^Blk=latinextadditional}', "");
     Expect(1, 7935, '\p{Blk=:\Alatinextadditional\z:}', "");;
     Expect(0, 7936, '\p{Blk=:\Alatinextadditional\z:}', "");;
-    Expect(1, 7935, '\p{Blk=__LATIN_Ext_additional}', "");
-    Expect(0, 7935, '\p{^Blk=__LATIN_Ext_additional}', "");
-    Expect(0, 7935, '\P{Blk=__LATIN_Ext_additional}', "");
-    Expect(1, 7935, '\P{^Blk=__LATIN_Ext_additional}', "");
-    Expect(0, 7936, '\p{Blk=__LATIN_Ext_additional}', "");
-    Expect(1, 7936, '\p{^Blk=__LATIN_Ext_additional}', "");
-    Expect(1, 7936, '\P{Blk=__LATIN_Ext_additional}', "");
-    Expect(0, 7936, '\P{^Blk=__LATIN_Ext_additional}', "");
-    Error('\p{Is_Block=/a/	-Latin_Extended_ADDITIONAL}');
-    Error('\P{Is_Block=/a/	-Latin_Extended_ADDITIONAL}');
-    Expect(1, 7935, '\p{Is_Block:latinextendedadditional}', "");
-    Expect(0, 7935, '\p{^Is_Block:latinextendedadditional}', "");
-    Expect(0, 7935, '\P{Is_Block:latinextendedadditional}', "");
-    Expect(1, 7935, '\P{^Is_Block:latinextendedadditional}', "");
-    Expect(0, 7936, '\p{Is_Block:latinextendedadditional}', "");
-    Expect(1, 7936, '\p{^Is_Block:latinextendedadditional}', "");
-    Expect(1, 7936, '\P{Is_Block:latinextendedadditional}', "");
-    Expect(0, 7936, '\P{^Is_Block:latinextendedadditional}', "");
-    Expect(1, 7935, '\p{Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(0, 7935, '\p{^Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(0, 7935, '\P{Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(1, 7935, '\P{^Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(0, 7936, '\p{Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(1, 7936, '\p{^Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(1, 7936, '\P{Is_Block= -latin_extended_ADDITIONAL}', "");
-    Expect(0, 7936, '\P{^Is_Block= -latin_extended_ADDITIONAL}', "");
-    Error('\p{Is_Blk=:=- latin_ext_ADDITIONAL}');
-    Error('\P{Is_Blk=:=- latin_ext_ADDITIONAL}');
-    Expect(1, 7935, '\p{Is_Blk: latinextadditional}', "");
-    Expect(0, 7935, '\p{^Is_Blk: latinextadditional}', "");
-    Expect(0, 7935, '\P{Is_Blk: latinextadditional}', "");
-    Expect(1, 7935, '\P{^Is_Blk: latinextadditional}', "");
-    Expect(0, 7936, '\p{Is_Blk: latinextadditional}', "");
-    Expect(1, 7936, '\p{^Is_Blk: latinextadditional}', "");
-    Expect(1, 7936, '\P{Is_Blk: latinextadditional}', "");
-    Expect(0, 7936, '\P{^Is_Blk: latinextadditional}', "");
-    Expect(1, 7935, '\p{Is_Blk=-latin_ext_Additional}', "");
-    Expect(0, 7935, '\p{^Is_Blk=-latin_ext_Additional}', "");
-    Expect(0, 7935, '\P{Is_Blk=-latin_ext_Additional}', "");
-    Expect(1, 7935, '\P{^Is_Blk=-latin_ext_Additional}', "");
-    Expect(0, 7936, '\p{Is_Blk=-latin_ext_Additional}', "");
-    Expect(1, 7936, '\p{^Is_Blk=-latin_ext_Additional}', "");
-    Expect(1, 7936, '\P{Is_Blk=-latin_ext_Additional}', "");
-    Expect(0, 7936, '\P{^Is_Blk=-latin_ext_Additional}', "");
-    Error('\p{Block=-LATIN_Extended_B:=}');
-    Error('\P{Block=-LATIN_Extended_B:=}');
+    Expect(1, 7935, '\p{Blk=_	Latin_Ext_Additional}', "");
+    Expect(0, 7935, '\p{^Blk=_	Latin_Ext_Additional}', "");
+    Expect(0, 7935, '\P{Blk=_	Latin_Ext_Additional}', "");
+    Expect(1, 7935, '\P{^Blk=_	Latin_Ext_Additional}', "");
+    Expect(0, 7936, '\p{Blk=_	Latin_Ext_Additional}', "");
+    Expect(1, 7936, '\p{^Blk=_	Latin_Ext_Additional}', "");
+    Expect(1, 7936, '\P{Blk=_	Latin_Ext_Additional}', "");
+    Expect(0, 7936, '\P{^Blk=_	Latin_Ext_Additional}', "");
+    Error('\p{Is_Block=_:=LATIN_EXTENDED_additional}');
+    Error('\P{Is_Block=_:=LATIN_EXTENDED_additional}');
+    Expect(1, 7935, '\p{Is_Block=latinextendedadditional}', "");
+    Expect(0, 7935, '\p{^Is_Block=latinextendedadditional}', "");
+    Expect(0, 7935, '\P{Is_Block=latinextendedadditional}', "");
+    Expect(1, 7935, '\P{^Is_Block=latinextendedadditional}', "");
+    Expect(0, 7936, '\p{Is_Block=latinextendedadditional}', "");
+    Expect(1, 7936, '\p{^Is_Block=latinextendedadditional}', "");
+    Expect(1, 7936, '\P{Is_Block=latinextendedadditional}', "");
+    Expect(0, 7936, '\P{^Is_Block=latinextendedadditional}', "");
+    Expect(1, 7935, '\p{Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(0, 7935, '\p{^Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(0, 7935, '\P{Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(1, 7935, '\P{^Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(0, 7936, '\p{Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(1, 7936, '\p{^Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(1, 7936, '\P{Is_Block=- LATIN_EXTENDED_additional}', "");
+    Expect(0, 7936, '\P{^Is_Block=- LATIN_EXTENDED_additional}', "");
+    Error('\p{Is_Blk:   	/a/latin_ext_Additional}');
+    Error('\P{Is_Blk:   	/a/latin_ext_Additional}');
+    Expect(1, 7935, '\p{Is_Blk=latinextadditional}', "");
+    Expect(0, 7935, '\p{^Is_Blk=latinextadditional}', "");
+    Expect(0, 7935, '\P{Is_Blk=latinextadditional}', "");
+    Expect(1, 7935, '\P{^Is_Blk=latinextadditional}', "");
+    Expect(0, 7936, '\p{Is_Blk=latinextadditional}', "");
+    Expect(1, 7936, '\p{^Is_Blk=latinextadditional}', "");
+    Expect(1, 7936, '\P{Is_Blk=latinextadditional}', "");
+    Expect(0, 7936, '\P{^Is_Blk=latinextadditional}', "");
+    Expect(1, 7935, '\p{Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(0, 7935, '\p{^Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(0, 7935, '\P{Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(1, 7935, '\P{^Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(0, 7936, '\p{Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(1, 7936, '\p{^Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(1, 7936, '\P{Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Expect(0, 7936, '\P{^Is_Blk= -Latin_EXT_ADDITIONAL}', "");
+    Error('\p{Block=__Latin_Extended_B:=}');
+    Error('\P{Block=__Latin_Extended_B:=}');
     Expect(1, 591, '\p{Block=:\ALatin_Extended_B\z:}', "");;
     Expect(0, 592, '\p{Block=:\ALatin_Extended_B\z:}', "");;
     Expect(1, 591, '\p{Block=latinextendedb}', "");
@@ -16276,16 +16780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 592, '\P{^Block=latinextendedb}', "");
     Expect(1, 591, '\p{Block=:\Alatinextendedb\z:}', "");;
     Expect(0, 592, '\p{Block=:\Alatinextendedb\z:}', "");;
-    Expect(1, 591, '\p{Block=Latin_Extended_b}', "");
-    Expect(0, 591, '\p{^Block=Latin_Extended_b}', "");
-    Expect(0, 591, '\P{Block=Latin_Extended_b}', "");
-    Expect(1, 591, '\P{^Block=Latin_Extended_b}', "");
-    Expect(0, 592, '\p{Block=Latin_Extended_b}', "");
-    Expect(1, 592, '\p{^Block=Latin_Extended_b}', "");
-    Expect(1, 592, '\P{Block=Latin_Extended_b}', "");
-    Expect(0, 592, '\P{^Block=Latin_Extended_b}', "");
-    Error('\p{Blk=-Latin_EXT_B/a/}');
-    Error('\P{Blk=-Latin_EXT_B/a/}');
+    Expect(1, 591, '\p{Block=_-latin_Extended_b}', "");
+    Expect(0, 591, '\p{^Block=_-latin_Extended_b}', "");
+    Expect(0, 591, '\P{Block=_-latin_Extended_b}', "");
+    Expect(1, 591, '\P{^Block=_-latin_Extended_b}', "");
+    Expect(0, 592, '\p{Block=_-latin_Extended_b}', "");
+    Expect(1, 592, '\p{^Block=_-latin_Extended_b}', "");
+    Expect(1, 592, '\P{Block=_-latin_Extended_b}', "");
+    Expect(0, 592, '\P{^Block=_-latin_Extended_b}', "");
+    Error('\p{Blk=_	latin_EXT_b:=}');
+    Error('\P{Blk=_	latin_EXT_b:=}');
     Expect(1, 591, '\p{Blk=:\ALatin_Ext_B\z:}', "");;
     Expect(0, 592, '\p{Blk=:\ALatin_Ext_B\z:}', "");;
     Expect(1, 591, '\p{Blk=latinextb}', "");
@@ -16298,16 +16802,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 592, '\P{^Blk=latinextb}', "");
     Expect(1, 591, '\p{Blk=:\Alatinextb\z:}', "");;
     Expect(0, 592, '\p{Blk=:\Alatinextb\z:}', "");;
-    Expect(1, 591, '\p{Blk=_ latin_ext_B}', "");
-    Expect(0, 591, '\p{^Blk=_ latin_ext_B}', "");
-    Expect(0, 591, '\P{Blk=_ latin_ext_B}', "");
-    Expect(1, 591, '\P{^Blk=_ latin_ext_B}', "");
-    Expect(0, 592, '\p{Blk=_ latin_ext_B}', "");
-    Expect(1, 592, '\p{^Blk=_ latin_ext_B}', "");
-    Expect(1, 592, '\P{Blk=_ latin_ext_B}', "");
-    Expect(0, 592, '\P{^Blk=_ latin_ext_B}', "");
-    Error('\p{Is_Block:	-latin_extended_B/a/}');
-    Error('\P{Is_Block:	-latin_extended_B/a/}');
+    Expect(1, 591, '\p{Blk=	_Latin_Ext_B}', "");
+    Expect(0, 591, '\p{^Blk=	_Latin_Ext_B}', "");
+    Expect(0, 591, '\P{Blk=	_Latin_Ext_B}', "");
+    Expect(1, 591, '\P{^Blk=	_Latin_Ext_B}', "");
+    Expect(0, 592, '\p{Blk=	_Latin_Ext_B}', "");
+    Expect(1, 592, '\p{^Blk=	_Latin_Ext_B}', "");
+    Expect(1, 592, '\P{Blk=	_Latin_Ext_B}', "");
+    Expect(0, 592, '\P{^Blk=	_Latin_Ext_B}', "");
+    Error('\p{Is_Block=/a/ 	Latin_Extended_B}');
+    Error('\P{Is_Block=/a/ 	Latin_Extended_B}');
     Expect(1, 591, '\p{Is_Block=latinextendedb}', "");
     Expect(0, 591, '\p{^Is_Block=latinextendedb}', "");
     Expect(0, 591, '\P{Is_Block=latinextendedb}', "");
@@ -16316,16 +16820,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 592, '\p{^Is_Block=latinextendedb}', "");
     Expect(1, 592, '\P{Is_Block=latinextendedb}', "");
     Expect(0, 592, '\P{^Is_Block=latinextendedb}', "");
-    Expect(1, 591, '\p{Is_Block:   Latin_Extended_b}', "");
-    Expect(0, 591, '\p{^Is_Block:   Latin_Extended_b}', "");
-    Expect(0, 591, '\P{Is_Block:   Latin_Extended_b}', "");
-    Expect(1, 591, '\P{^Is_Block:   Latin_Extended_b}', "");
-    Expect(0, 592, '\p{Is_Block:   Latin_Extended_b}', "");
-    Expect(1, 592, '\p{^Is_Block:   Latin_Extended_b}', "");
-    Expect(1, 592, '\P{Is_Block:   Latin_Extended_b}', "");
-    Expect(0, 592, '\P{^Is_Block:   Latin_Extended_b}', "");
-    Error('\p{Is_Blk=-:=LATIN_ext_b}');
-    Error('\P{Is_Blk=-:=LATIN_ext_b}');
+    Expect(1, 591, '\p{Is_Block=-_LATIN_Extended_B}', "");
+    Expect(0, 591, '\p{^Is_Block=-_LATIN_Extended_B}', "");
+    Expect(0, 591, '\P{Is_Block=-_LATIN_Extended_B}', "");
+    Expect(1, 591, '\P{^Is_Block=-_LATIN_Extended_B}', "");
+    Expect(0, 592, '\p{Is_Block=-_LATIN_Extended_B}', "");
+    Expect(1, 592, '\p{^Is_Block=-_LATIN_Extended_B}', "");
+    Expect(1, 592, '\P{Is_Block=-_LATIN_Extended_B}', "");
+    Expect(0, 592, '\P{^Is_Block=-_LATIN_Extended_B}', "");
+    Error('\p{Is_Blk:	_:=latin_Ext_B}');
+    Error('\P{Is_Blk:	_:=latin_Ext_B}');
     Expect(1, 591, '\p{Is_Blk=latinextb}', "");
     Expect(0, 591, '\p{^Is_Blk=latinextb}', "");
     Expect(0, 591, '\P{Is_Blk=latinextb}', "");
@@ -16334,16 +16838,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 592, '\p{^Is_Blk=latinextb}', "");
     Expect(1, 592, '\P{Is_Blk=latinextb}', "");
     Expect(0, 592, '\P{^Is_Blk=latinextb}', "");
-    Expect(1, 591, '\p{Is_Blk=_Latin_EXT_B}', "");
-    Expect(0, 591, '\p{^Is_Blk=_Latin_EXT_B}', "");
-    Expect(0, 591, '\P{Is_Blk=_Latin_EXT_B}', "");
-    Expect(1, 591, '\P{^Is_Blk=_Latin_EXT_B}', "");
-    Expect(0, 592, '\p{Is_Blk=_Latin_EXT_B}', "");
-    Expect(1, 592, '\p{^Is_Blk=_Latin_EXT_B}', "");
-    Expect(1, 592, '\P{Is_Blk=_Latin_EXT_B}', "");
-    Expect(0, 592, '\P{^Is_Blk=_Latin_EXT_B}', "");
-    Error('\p{Block=-/a/Latin_Extended_C}');
-    Error('\P{Block=-/a/Latin_Extended_C}');
+    Expect(1, 591, '\p{Is_Blk= 	Latin_ext_b}', "");
+    Expect(0, 591, '\p{^Is_Blk= 	Latin_ext_b}', "");
+    Expect(0, 591, '\P{Is_Blk= 	Latin_ext_b}', "");
+    Expect(1, 591, '\P{^Is_Blk= 	Latin_ext_b}', "");
+    Expect(0, 592, '\p{Is_Blk= 	Latin_ext_b}', "");
+    Expect(1, 592, '\p{^Is_Blk= 	Latin_ext_b}', "");
+    Expect(1, 592, '\P{Is_Blk= 	Latin_ext_b}', "");
+    Expect(0, 592, '\P{^Is_Blk= 	Latin_ext_b}', "");
+    Error('\p{Block=/a/latin_EXTENDED_C}');
+    Error('\P{Block=/a/latin_EXTENDED_C}');
     Expect(1, 11391, '\p{Block=:\ALatin_Extended_C\z:}', "");;
     Expect(0, 11392, '\p{Block=:\ALatin_Extended_C\z:}', "");;
     Expect(1, 11391, '\p{Block=latinextendedc}', "");
@@ -16356,38 +16860,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11392, '\P{^Block=latinextendedc}', "");
     Expect(1, 11391, '\p{Block=:\Alatinextendedc\z:}', "");;
     Expect(0, 11392, '\p{Block=:\Alatinextendedc\z:}', "");;
-    Expect(1, 11391, '\p{Block= _Latin_extended_C}', "");
-    Expect(0, 11391, '\p{^Block= _Latin_extended_C}', "");
-    Expect(0, 11391, '\P{Block= _Latin_extended_C}', "");
-    Expect(1, 11391, '\P{^Block= _Latin_extended_C}', "");
-    Expect(0, 11392, '\p{Block= _Latin_extended_C}', "");
-    Expect(1, 11392, '\p{^Block= _Latin_extended_C}', "");
-    Expect(1, 11392, '\P{Block= _Latin_extended_C}', "");
-    Expect(0, 11392, '\P{^Block= _Latin_extended_C}', "");
-    Error('\p{Blk=/a/	_Latin_Ext_C}');
-    Error('\P{Blk=/a/	_Latin_Ext_C}');
+    Expect(1, 11391, '\p{Block=	_LATIN_Extended_C}', "");
+    Expect(0, 11391, '\p{^Block=	_LATIN_Extended_C}', "");
+    Expect(0, 11391, '\P{Block=	_LATIN_Extended_C}', "");
+    Expect(1, 11391, '\P{^Block=	_LATIN_Extended_C}', "");
+    Expect(0, 11392, '\p{Block=	_LATIN_Extended_C}', "");
+    Expect(1, 11392, '\p{^Block=	_LATIN_Extended_C}', "");
+    Expect(1, 11392, '\P{Block=	_LATIN_Extended_C}', "");
+    Expect(0, 11392, '\P{^Block=	_LATIN_Extended_C}', "");
+    Error('\p{Blk=_ latin_Ext_C:=}');
+    Error('\P{Blk=_ latin_Ext_C:=}');
     Expect(1, 11391, '\p{Blk=:\ALatin_Ext_C\z:}', "");;
     Expect(0, 11392, '\p{Blk=:\ALatin_Ext_C\z:}', "");;
-    Expect(1, 11391, '\p{Blk: latinextc}', "");
-    Expect(0, 11391, '\p{^Blk: latinextc}', "");
-    Expect(0, 11391, '\P{Blk: latinextc}', "");
-    Expect(1, 11391, '\P{^Blk: latinextc}', "");
-    Expect(0, 11392, '\p{Blk: latinextc}', "");
-    Expect(1, 11392, '\p{^Blk: latinextc}', "");
-    Expect(1, 11392, '\P{Blk: latinextc}', "");
-    Expect(0, 11392, '\P{^Blk: latinextc}', "");
+    Expect(1, 11391, '\p{Blk:   latinextc}', "");
+    Expect(0, 11391, '\p{^Blk:   latinextc}', "");
+    Expect(0, 11391, '\P{Blk:   latinextc}', "");
+    Expect(1, 11391, '\P{^Blk:   latinextc}', "");
+    Expect(0, 11392, '\p{Blk:   latinextc}', "");
+    Expect(1, 11392, '\p{^Blk:   latinextc}', "");
+    Expect(1, 11392, '\P{Blk:   latinextc}', "");
+    Expect(0, 11392, '\P{^Blk:   latinextc}', "");
     Expect(1, 11391, '\p{Blk=:\Alatinextc\z:}', "");;
     Expect(0, 11392, '\p{Blk=:\Alatinextc\z:}', "");;
-    Expect(1, 11391, '\p{Blk= 	LATIN_EXT_C}', "");
-    Expect(0, 11391, '\p{^Blk= 	LATIN_EXT_C}', "");
-    Expect(0, 11391, '\P{Blk= 	LATIN_EXT_C}', "");
-    Expect(1, 11391, '\P{^Blk= 	LATIN_EXT_C}', "");
-    Expect(0, 11392, '\p{Blk= 	LATIN_EXT_C}', "");
-    Expect(1, 11392, '\p{^Blk= 	LATIN_EXT_C}', "");
-    Expect(1, 11392, '\P{Blk= 	LATIN_EXT_C}', "");
-    Expect(0, 11392, '\P{^Blk= 	LATIN_EXT_C}', "");
-    Error('\p{Is_Block=	:=latin_Extended_C}');
-    Error('\P{Is_Block=	:=latin_Extended_C}');
+    Expect(1, 11391, '\p{Blk=_ Latin_EXT_C}', "");
+    Expect(0, 11391, '\p{^Blk=_ Latin_EXT_C}', "");
+    Expect(0, 11391, '\P{Blk=_ Latin_EXT_C}', "");
+    Expect(1, 11391, '\P{^Blk=_ Latin_EXT_C}', "");
+    Expect(0, 11392, '\p{Blk=_ Latin_EXT_C}', "");
+    Expect(1, 11392, '\p{^Blk=_ Latin_EXT_C}', "");
+    Expect(1, 11392, '\P{Blk=_ Latin_EXT_C}', "");
+    Expect(0, 11392, '\P{^Blk=_ Latin_EXT_C}', "");
+    Error('\p{Is_Block:   :=Latin_extended_C}');
+    Error('\P{Is_Block:   :=Latin_extended_C}');
     Expect(1, 11391, '\p{Is_Block=latinextendedc}', "");
     Expect(0, 11391, '\p{^Is_Block=latinextendedc}', "");
     Expect(0, 11391, '\P{Is_Block=latinextendedc}', "");
@@ -16396,16 +16900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11392, '\p{^Is_Block=latinextendedc}', "");
     Expect(1, 11392, '\P{Is_Block=latinextendedc}', "");
     Expect(0, 11392, '\P{^Is_Block=latinextendedc}', "");
-    Expect(1, 11391, '\p{Is_Block=-	Latin_extended_C}', "");
-    Expect(0, 11391, '\p{^Is_Block=-	Latin_extended_C}', "");
-    Expect(0, 11391, '\P{Is_Block=-	Latin_extended_C}', "");
-    Expect(1, 11391, '\P{^Is_Block=-	Latin_extended_C}', "");
-    Expect(0, 11392, '\p{Is_Block=-	Latin_extended_C}', "");
-    Expect(1, 11392, '\p{^Is_Block=-	Latin_extended_C}', "");
-    Expect(1, 11392, '\P{Is_Block=-	Latin_extended_C}', "");
-    Expect(0, 11392, '\P{^Is_Block=-	Latin_extended_C}', "");
-    Error('\p{Is_Blk=:=	-latin_ext_C}');
-    Error('\P{Is_Blk=:=	-latin_ext_C}');
+    Expect(1, 11391, '\p{Is_Block=	-Latin_extended_C}', "");
+    Expect(0, 11391, '\p{^Is_Block=	-Latin_extended_C}', "");
+    Expect(0, 11391, '\P{Is_Block=	-Latin_extended_C}', "");
+    Expect(1, 11391, '\P{^Is_Block=	-Latin_extended_C}', "");
+    Expect(0, 11392, '\p{Is_Block=	-Latin_extended_C}', "");
+    Expect(1, 11392, '\p{^Is_Block=	-Latin_extended_C}', "");
+    Expect(1, 11392, '\P{Is_Block=	-Latin_extended_C}', "");
+    Expect(0, 11392, '\P{^Is_Block=	-Latin_extended_C}', "");
+    Error('\p{Is_Blk=_/a/latin_Ext_C}');
+    Error('\P{Is_Blk=_/a/latin_Ext_C}');
     Expect(1, 11391, '\p{Is_Blk=latinextc}', "");
     Expect(0, 11391, '\p{^Is_Blk=latinextc}', "");
     Expect(0, 11391, '\P{Is_Blk=latinextc}', "");
@@ -16414,16 +16918,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11392, '\p{^Is_Blk=latinextc}', "");
     Expect(1, 11392, '\P{Is_Blk=latinextc}', "");
     Expect(0, 11392, '\P{^Is_Blk=latinextc}', "");
-    Expect(1, 11391, '\p{Is_Blk=	latin_Ext_C}', "");
-    Expect(0, 11391, '\p{^Is_Blk=	latin_Ext_C}', "");
-    Expect(0, 11391, '\P{Is_Blk=	latin_Ext_C}', "");
-    Expect(1, 11391, '\P{^Is_Blk=	latin_Ext_C}', "");
-    Expect(0, 11392, '\p{Is_Blk=	latin_Ext_C}', "");
-    Expect(1, 11392, '\p{^Is_Blk=	latin_Ext_C}', "");
-    Expect(1, 11392, '\P{Is_Blk=	latin_Ext_C}', "");
-    Expect(0, 11392, '\P{^Is_Blk=	latin_Ext_C}', "");
-    Error('\p{Block=/a/__latin_Extended_D}');
-    Error('\P{Block=/a/__latin_Extended_D}');
+    Expect(1, 11391, '\p{Is_Blk=-_Latin_ext_c}', "");
+    Expect(0, 11391, '\p{^Is_Blk=-_Latin_ext_c}', "");
+    Expect(0, 11391, '\P{Is_Blk=-_Latin_ext_c}', "");
+    Expect(1, 11391, '\P{^Is_Blk=-_Latin_ext_c}', "");
+    Expect(0, 11392, '\p{Is_Blk=-_Latin_ext_c}', "");
+    Expect(1, 11392, '\p{^Is_Blk=-_Latin_ext_c}', "");
+    Expect(1, 11392, '\P{Is_Blk=-_Latin_ext_c}', "");
+    Expect(0, 11392, '\P{^Is_Blk=-_Latin_ext_c}', "");
+    Error('\p{Block=:=		Latin_Extended_d}');
+    Error('\P{Block=:=		Latin_Extended_d}');
     Expect(1, 43007, '\p{Block=:\ALatin_Extended_D\z:}', "");;
     Expect(0, 43008, '\p{Block=:\ALatin_Extended_D\z:}', "");;
     Expect(1, 43007, '\p{Block=latinextendedd}', "");
@@ -16436,16 +16940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43008, '\P{^Block=latinextendedd}', "");
     Expect(1, 43007, '\p{Block=:\Alatinextendedd\z:}', "");;
     Expect(0, 43008, '\p{Block=:\Alatinextendedd\z:}', "");;
-    Expect(1, 43007, '\p{Block=-	Latin_Extended_D}', "");
-    Expect(0, 43007, '\p{^Block=-	Latin_Extended_D}', "");
-    Expect(0, 43007, '\P{Block=-	Latin_Extended_D}', "");
-    Expect(1, 43007, '\P{^Block=-	Latin_Extended_D}', "");
-    Expect(0, 43008, '\p{Block=-	Latin_Extended_D}', "");
-    Expect(1, 43008, '\p{^Block=-	Latin_Extended_D}', "");
-    Expect(1, 43008, '\P{Block=-	Latin_Extended_D}', "");
-    Expect(0, 43008, '\P{^Block=-	Latin_Extended_D}', "");
-    Error('\p{Blk= :=Latin_Ext_d}');
-    Error('\P{Blk= :=Latin_Ext_d}');
+    Expect(1, 43007, '\p{Block=_ latin_Extended_D}', "");
+    Expect(0, 43007, '\p{^Block=_ latin_Extended_D}', "");
+    Expect(0, 43007, '\P{Block=_ latin_Extended_D}', "");
+    Expect(1, 43007, '\P{^Block=_ latin_Extended_D}', "");
+    Expect(0, 43008, '\p{Block=_ latin_Extended_D}', "");
+    Expect(1, 43008, '\p{^Block=_ latin_Extended_D}', "");
+    Expect(1, 43008, '\P{Block=_ latin_Extended_D}', "");
+    Expect(0, 43008, '\P{^Block=_ latin_Extended_D}', "");
+    Error('\p{Blk:/a/ -LATIN_EXT_D}');
+    Error('\P{Blk:/a/ -LATIN_EXT_D}');
     Expect(1, 43007, '\p{Blk=:\ALatin_Ext_D\z:}', "");;
     Expect(0, 43008, '\p{Blk=:\ALatin_Ext_D\z:}', "");;
     Expect(1, 43007, '\p{Blk=latinextd}', "");
@@ -16458,16 +16962,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43008, '\P{^Blk=latinextd}', "");
     Expect(1, 43007, '\p{Blk=:\Alatinextd\z:}', "");;
     Expect(0, 43008, '\p{Blk=:\Alatinextd\z:}', "");;
-    Expect(1, 43007, '\p{Blk=__Latin_ext_D}', "");
-    Expect(0, 43007, '\p{^Blk=__Latin_ext_D}', "");
-    Expect(0, 43007, '\P{Blk=__Latin_ext_D}', "");
-    Expect(1, 43007, '\P{^Blk=__Latin_ext_D}', "");
-    Expect(0, 43008, '\p{Blk=__Latin_ext_D}', "");
-    Expect(1, 43008, '\p{^Blk=__Latin_ext_D}', "");
-    Expect(1, 43008, '\P{Blk=__Latin_ext_D}', "");
-    Expect(0, 43008, '\P{^Blk=__Latin_ext_D}', "");
-    Error('\p{Is_Block=_:=LATIN_Extended_d}');
-    Error('\P{Is_Block=_:=LATIN_Extended_d}');
+    Expect(1, 43007, '\p{Blk= Latin_ext_D}', "");
+    Expect(0, 43007, '\p{^Blk= Latin_ext_D}', "");
+    Expect(0, 43007, '\P{Blk= Latin_ext_D}', "");
+    Expect(1, 43007, '\P{^Blk= Latin_ext_D}', "");
+    Expect(0, 43008, '\p{Blk= Latin_ext_D}', "");
+    Expect(1, 43008, '\p{^Blk= Latin_ext_D}', "");
+    Expect(1, 43008, '\P{Blk= Latin_ext_D}', "");
+    Expect(0, 43008, '\P{^Blk= Latin_ext_D}', "");
+    Error('\p{Is_Block=Latin_extended_D/a/}');
+    Error('\P{Is_Block=Latin_extended_D/a/}');
     Expect(1, 43007, '\p{Is_Block=latinextendedd}', "");
     Expect(0, 43007, '\p{^Is_Block=latinextendedd}', "");
     Expect(0, 43007, '\P{Is_Block=latinextendedd}', "");
@@ -16476,16 +16980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43008, '\p{^Is_Block=latinextendedd}', "");
     Expect(1, 43008, '\P{Is_Block=latinextendedd}', "");
     Expect(0, 43008, '\P{^Is_Block=latinextendedd}', "");
-    Expect(1, 43007, '\p{Is_Block=-Latin_Extended_D}', "");
-    Expect(0, 43007, '\p{^Is_Block=-Latin_Extended_D}', "");
-    Expect(0, 43007, '\P{Is_Block=-Latin_Extended_D}', "");
-    Expect(1, 43007, '\P{^Is_Block=-Latin_Extended_D}', "");
-    Expect(0, 43008, '\p{Is_Block=-Latin_Extended_D}', "");
-    Expect(1, 43008, '\p{^Is_Block=-Latin_Extended_D}', "");
-    Expect(1, 43008, '\P{Is_Block=-Latin_Extended_D}', "");
-    Expect(0, 43008, '\P{^Is_Block=-Latin_Extended_D}', "");
-    Error('\p{Is_Blk: LATIN_ext_D/a/}');
-    Error('\P{Is_Blk: LATIN_ext_D/a/}');
+    Expect(1, 43007, '\p{Is_Block=_LATIN_extended_D}', "");
+    Expect(0, 43007, '\p{^Is_Block=_LATIN_extended_D}', "");
+    Expect(0, 43007, '\P{Is_Block=_LATIN_extended_D}', "");
+    Expect(1, 43007, '\P{^Is_Block=_LATIN_extended_D}', "");
+    Expect(0, 43008, '\p{Is_Block=_LATIN_extended_D}', "");
+    Expect(1, 43008, '\p{^Is_Block=_LATIN_extended_D}', "");
+    Expect(1, 43008, '\P{Is_Block=_LATIN_extended_D}', "");
+    Expect(0, 43008, '\P{^Is_Block=_LATIN_extended_D}', "");
+    Error('\p{Is_Blk=  Latin_EXT_D:=}');
+    Error('\P{Is_Blk=  Latin_EXT_D:=}');
     Expect(1, 43007, '\p{Is_Blk=latinextd}', "");
     Expect(0, 43007, '\p{^Is_Blk=latinextd}', "");
     Expect(0, 43007, '\P{Is_Blk=latinextd}', "");
@@ -16494,38 +16998,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43008, '\p{^Is_Blk=latinextd}', "");
     Expect(1, 43008, '\P{Is_Blk=latinextd}', "");
     Expect(0, 43008, '\P{^Is_Blk=latinextd}', "");
-    Expect(1, 43007, '\p{Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(0, 43007, '\p{^Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(0, 43007, '\P{Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(1, 43007, '\P{^Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(0, 43008, '\p{Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(1, 43008, '\p{^Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(1, 43008, '\P{Is_Blk=	-LATIN_Ext_D}', "");
-    Expect(0, 43008, '\P{^Is_Blk=	-LATIN_Ext_D}', "");
-    Error('\p{Block=:=latin_extended_e}');
-    Error('\P{Block=:=latin_extended_e}');
+    Expect(1, 43007, '\p{Is_Blk=-	LATIN_ext_d}', "");
+    Expect(0, 43007, '\p{^Is_Blk=-	LATIN_ext_d}', "");
+    Expect(0, 43007, '\P{Is_Blk=-	LATIN_ext_d}', "");
+    Expect(1, 43007, '\P{^Is_Blk=-	LATIN_ext_d}', "");
+    Expect(0, 43008, '\p{Is_Blk=-	LATIN_ext_d}', "");
+    Expect(1, 43008, '\p{^Is_Blk=-	LATIN_ext_d}', "");
+    Expect(1, 43008, '\P{Is_Blk=-	LATIN_ext_d}', "");
+    Expect(0, 43008, '\P{^Is_Blk=-	LATIN_ext_d}', "");
+    Error('\p{Block=:= 	LATIN_EXTENDED_E}');
+    Error('\P{Block=:= 	LATIN_EXTENDED_E}');
     Expect(1, 43887, '\p{Block=:\ALatin_Extended_E\z:}', "");;
     Expect(0, 43888, '\p{Block=:\ALatin_Extended_E\z:}', "");;
-    Expect(1, 43887, '\p{Block: latinextendede}', "");
-    Expect(0, 43887, '\p{^Block: latinextendede}', "");
-    Expect(0, 43887, '\P{Block: latinextendede}', "");
-    Expect(1, 43887, '\P{^Block: latinextendede}', "");
-    Expect(0, 43888, '\p{Block: latinextendede}', "");
-    Expect(1, 43888, '\p{^Block: latinextendede}', "");
-    Expect(1, 43888, '\P{Block: latinextendede}', "");
-    Expect(0, 43888, '\P{^Block: latinextendede}', "");
+    Expect(1, 43887, '\p{Block=latinextendede}', "");
+    Expect(0, 43887, '\p{^Block=latinextendede}', "");
+    Expect(0, 43887, '\P{Block=latinextendede}', "");
+    Expect(1, 43887, '\P{^Block=latinextendede}', "");
+    Expect(0, 43888, '\p{Block=latinextendede}', "");
+    Expect(1, 43888, '\p{^Block=latinextendede}', "");
+    Expect(1, 43888, '\P{Block=latinextendede}', "");
+    Expect(0, 43888, '\P{^Block=latinextendede}', "");
     Expect(1, 43887, '\p{Block=:\Alatinextendede\z:}', "");;
     Expect(0, 43888, '\p{Block=:\Alatinextendede\z:}', "");;
-    Expect(1, 43887, '\p{Block=_-Latin_Extended_E}', "");
-    Expect(0, 43887, '\p{^Block=_-Latin_Extended_E}', "");
-    Expect(0, 43887, '\P{Block=_-Latin_Extended_E}', "");
-    Expect(1, 43887, '\P{^Block=_-Latin_Extended_E}', "");
-    Expect(0, 43888, '\p{Block=_-Latin_Extended_E}', "");
-    Expect(1, 43888, '\p{^Block=_-Latin_Extended_E}', "");
-    Expect(1, 43888, '\P{Block=_-Latin_Extended_E}', "");
-    Expect(0, 43888, '\P{^Block=_-Latin_Extended_E}', "");
-    Error('\p{Blk:		/a/LATIN_EXT_E}');
-    Error('\P{Blk:		/a/LATIN_EXT_E}');
+    Expect(1, 43887, '\p{Block=-Latin_Extended_E}', "");
+    Expect(0, 43887, '\p{^Block=-Latin_Extended_E}', "");
+    Expect(0, 43887, '\P{Block=-Latin_Extended_E}', "");
+    Expect(1, 43887, '\P{^Block=-Latin_Extended_E}', "");
+    Expect(0, 43888, '\p{Block=-Latin_Extended_E}', "");
+    Expect(1, 43888, '\p{^Block=-Latin_Extended_E}', "");
+    Expect(1, 43888, '\P{Block=-Latin_Extended_E}', "");
+    Expect(0, 43888, '\P{^Block=-Latin_Extended_E}', "");
+    Error('\p{Blk=/a/_LATIN_EXT_e}');
+    Error('\P{Blk=/a/_LATIN_EXT_e}');
     Expect(1, 43887, '\p{Blk=:\ALatin_Ext_E\z:}', "");;
     Expect(0, 43888, '\p{Blk=:\ALatin_Ext_E\z:}', "");;
     Expect(1, 43887, '\p{Blk=latinexte}', "");
@@ -16538,16 +17042,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43888, '\P{^Blk=latinexte}', "");
     Expect(1, 43887, '\p{Blk=:\Alatinexte\z:}', "");;
     Expect(0, 43888, '\p{Blk=:\Alatinexte\z:}', "");;
-    Expect(1, 43887, '\p{Blk=  Latin_ext_E}', "");
-    Expect(0, 43887, '\p{^Blk=  Latin_ext_E}', "");
-    Expect(0, 43887, '\P{Blk=  Latin_ext_E}', "");
-    Expect(1, 43887, '\P{^Blk=  Latin_ext_E}', "");
-    Expect(0, 43888, '\p{Blk=  Latin_ext_E}', "");
-    Expect(1, 43888, '\p{^Blk=  Latin_ext_E}', "");
-    Expect(1, 43888, '\P{Blk=  Latin_ext_E}', "");
-    Expect(0, 43888, '\P{^Blk=  Latin_ext_E}', "");
-    Error('\p{Is_Block= 	Latin_Extended_E:=}');
-    Error('\P{Is_Block= 	Latin_Extended_E:=}');
+    Expect(1, 43887, '\p{Blk=_LATIN_EXT_E}', "");
+    Expect(0, 43887, '\p{^Blk=_LATIN_EXT_E}', "");
+    Expect(0, 43887, '\P{Blk=_LATIN_EXT_E}', "");
+    Expect(1, 43887, '\P{^Blk=_LATIN_EXT_E}', "");
+    Expect(0, 43888, '\p{Blk=_LATIN_EXT_E}', "");
+    Expect(1, 43888, '\p{^Blk=_LATIN_EXT_E}', "");
+    Expect(1, 43888, '\P{Blk=_LATIN_EXT_E}', "");
+    Expect(0, 43888, '\P{^Blk=_LATIN_EXT_E}', "");
+    Error('\p{Is_Block=/a/		LATIN_extended_E}');
+    Error('\P{Is_Block=/a/		LATIN_extended_E}');
     Expect(1, 43887, '\p{Is_Block=latinextendede}', "");
     Expect(0, 43887, '\p{^Is_Block=latinextendede}', "");
     Expect(0, 43887, '\P{Is_Block=latinextendede}', "");
@@ -16556,16 +17060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43888, '\p{^Is_Block=latinextendede}', "");
     Expect(1, 43888, '\P{Is_Block=latinextendede}', "");
     Expect(0, 43888, '\P{^Is_Block=latinextendede}', "");
-    Expect(1, 43887, '\p{Is_Block=_-LATIN_extended_E}', "");
-    Expect(0, 43887, '\p{^Is_Block=_-LATIN_extended_E}', "");
-    Expect(0, 43887, '\P{Is_Block=_-LATIN_extended_E}', "");
-    Expect(1, 43887, '\P{^Is_Block=_-LATIN_extended_E}', "");
-    Expect(0, 43888, '\p{Is_Block=_-LATIN_extended_E}', "");
-    Expect(1, 43888, '\p{^Is_Block=_-LATIN_extended_E}', "");
-    Expect(1, 43888, '\P{Is_Block=_-LATIN_extended_E}', "");
-    Expect(0, 43888, '\P{^Is_Block=_-LATIN_extended_E}', "");
-    Error('\p{Is_Blk=-/a/Latin_EXT_E}');
-    Error('\P{Is_Blk=-/a/Latin_EXT_E}');
+    Expect(1, 43887, '\p{Is_Block=_ latin_extended_E}', "");
+    Expect(0, 43887, '\p{^Is_Block=_ latin_extended_E}', "");
+    Expect(0, 43887, '\P{Is_Block=_ latin_extended_E}', "");
+    Expect(1, 43887, '\P{^Is_Block=_ latin_extended_E}', "");
+    Expect(0, 43888, '\p{Is_Block=_ latin_extended_E}', "");
+    Expect(1, 43888, '\p{^Is_Block=_ latin_extended_E}', "");
+    Expect(1, 43888, '\P{Is_Block=_ latin_extended_E}', "");
+    Expect(0, 43888, '\P{^Is_Block=_ latin_extended_E}', "");
+    Error('\p{Is_Blk=/a/-Latin_ext_E}');
+    Error('\P{Is_Blk=/a/-Latin_ext_E}');
     Expect(1, 43887, '\p{Is_Blk=latinexte}', "");
     Expect(0, 43887, '\p{^Is_Blk=latinexte}', "");
     Expect(0, 43887, '\P{Is_Blk=latinexte}', "");
@@ -16574,16 +17078,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43888, '\p{^Is_Blk=latinexte}', "");
     Expect(1, 43888, '\P{Is_Blk=latinexte}', "");
     Expect(0, 43888, '\P{^Is_Blk=latinexte}', "");
-    Expect(1, 43887, '\p{Is_Blk=_ Latin_EXT_E}', "");
-    Expect(0, 43887, '\p{^Is_Blk=_ Latin_EXT_E}', "");
-    Expect(0, 43887, '\P{Is_Blk=_ Latin_EXT_E}', "");
-    Expect(1, 43887, '\P{^Is_Blk=_ Latin_EXT_E}', "");
-    Expect(0, 43888, '\p{Is_Blk=_ Latin_EXT_E}', "");
-    Expect(1, 43888, '\p{^Is_Blk=_ Latin_EXT_E}', "");
-    Expect(1, 43888, '\P{Is_Blk=_ Latin_EXT_E}', "");
-    Expect(0, 43888, '\P{^Is_Blk=_ Latin_EXT_E}', "");
-    Error('\p{Block=:=-_Latin_Extended_F}');
-    Error('\P{Block=:=-_Latin_Extended_F}');
+    Expect(1, 43887, '\p{Is_Blk=Latin_EXT_E}', "");
+    Expect(0, 43887, '\p{^Is_Blk=Latin_EXT_E}', "");
+    Expect(0, 43887, '\P{Is_Blk=Latin_EXT_E}', "");
+    Expect(1, 43887, '\P{^Is_Blk=Latin_EXT_E}', "");
+    Expect(0, 43888, '\p{Is_Blk=Latin_EXT_E}', "");
+    Expect(1, 43888, '\p{^Is_Blk=Latin_EXT_E}', "");
+    Expect(1, 43888, '\P{Is_Blk=Latin_EXT_E}', "");
+    Expect(0, 43888, '\P{^Is_Blk=Latin_EXT_E}', "");
+    Error('\p{Block=/a/-	LATIN_extended_F}');
+    Error('\P{Block=/a/-	LATIN_extended_F}');
     Expect(1, 67519, '\p{Block=:\ALatin_Extended_F\z:}', "");;
     Expect(0, 67520, '\p{Block=:\ALatin_Extended_F\z:}', "");;
     Expect(1, 67519, '\p{Block=latinextendedf}', "");
@@ -16596,38 +17100,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67520, '\P{^Block=latinextendedf}', "");
     Expect(1, 67519, '\p{Block=:\Alatinextendedf\z:}', "");;
     Expect(0, 67520, '\p{Block=:\Alatinextendedf\z:}', "");;
-    Expect(1, 67519, '\p{Block=_LATIN_EXTENDED_F}', "");
-    Expect(0, 67519, '\p{^Block=_LATIN_EXTENDED_F}', "");
-    Expect(0, 67519, '\P{Block=_LATIN_EXTENDED_F}', "");
-    Expect(1, 67519, '\P{^Block=_LATIN_EXTENDED_F}', "");
-    Expect(0, 67520, '\p{Block=_LATIN_EXTENDED_F}', "");
-    Expect(1, 67520, '\p{^Block=_LATIN_EXTENDED_F}', "");
-    Expect(1, 67520, '\P{Block=_LATIN_EXTENDED_F}', "");
-    Expect(0, 67520, '\P{^Block=_LATIN_EXTENDED_F}', "");
-    Error('\p{Blk: /a/- LATIN_Ext_f}');
-    Error('\P{Blk: /a/- LATIN_Ext_f}');
+    Expect(1, 67519, '\p{Block= _Latin_Extended_f}', "");
+    Expect(0, 67519, '\p{^Block= _Latin_Extended_f}', "");
+    Expect(0, 67519, '\P{Block= _Latin_Extended_f}', "");
+    Expect(1, 67519, '\P{^Block= _Latin_Extended_f}', "");
+    Expect(0, 67520, '\p{Block= _Latin_Extended_f}', "");
+    Expect(1, 67520, '\p{^Block= _Latin_Extended_f}', "");
+    Expect(1, 67520, '\P{Block= _Latin_Extended_f}', "");
+    Expect(0, 67520, '\P{^Block= _Latin_Extended_f}', "");
+    Error('\p{Blk=	_Latin_ext_f:=}');
+    Error('\P{Blk=	_Latin_ext_f:=}');
     Expect(1, 67519, '\p{Blk=:\ALatin_Ext_F\z:}', "");;
     Expect(0, 67520, '\p{Blk=:\ALatin_Ext_F\z:}', "");;
-    Expect(1, 67519, '\p{Blk=latinextf}', "");
-    Expect(0, 67519, '\p{^Blk=latinextf}', "");
-    Expect(0, 67519, '\P{Blk=latinextf}', "");
-    Expect(1, 67519, '\P{^Blk=latinextf}', "");
-    Expect(0, 67520, '\p{Blk=latinextf}', "");
-    Expect(1, 67520, '\p{^Blk=latinextf}', "");
-    Expect(1, 67520, '\P{Blk=latinextf}', "");
-    Expect(0, 67520, '\P{^Blk=latinextf}', "");
+    Expect(1, 67519, '\p{Blk:   latinextf}', "");
+    Expect(0, 67519, '\p{^Blk:   latinextf}', "");
+    Expect(0, 67519, '\P{Blk:   latinextf}', "");
+    Expect(1, 67519, '\P{^Blk:   latinextf}', "");
+    Expect(0, 67520, '\p{Blk:   latinextf}', "");
+    Expect(1, 67520, '\p{^Blk:   latinextf}', "");
+    Expect(1, 67520, '\P{Blk:   latinextf}', "");
+    Expect(0, 67520, '\P{^Blk:   latinextf}', "");
     Expect(1, 67519, '\p{Blk=:\Alatinextf\z:}', "");;
     Expect(0, 67520, '\p{Blk=:\Alatinextf\z:}', "");;
-    Expect(1, 67519, '\p{Blk= Latin_EXT_F}', "");
-    Expect(0, 67519, '\p{^Blk= Latin_EXT_F}', "");
-    Expect(0, 67519, '\P{Blk= Latin_EXT_F}', "");
-    Expect(1, 67519, '\P{^Blk= Latin_EXT_F}', "");
-    Expect(0, 67520, '\p{Blk= Latin_EXT_F}', "");
-    Expect(1, 67520, '\p{^Blk= Latin_EXT_F}', "");
-    Expect(1, 67520, '\P{Blk= Latin_EXT_F}', "");
-    Expect(0, 67520, '\P{^Blk= Latin_EXT_F}', "");
-    Error('\p{Is_Block=	-Latin_Extended_f:=}');
-    Error('\P{Is_Block=	-Latin_Extended_f:=}');
+    Expect(1, 67519, '\p{Blk= 	latin_Ext_F}', "");
+    Expect(0, 67519, '\p{^Blk= 	latin_Ext_F}', "");
+    Expect(0, 67519, '\P{Blk= 	latin_Ext_F}', "");
+    Expect(1, 67519, '\P{^Blk= 	latin_Ext_F}', "");
+    Expect(0, 67520, '\p{Blk= 	latin_Ext_F}', "");
+    Expect(1, 67520, '\p{^Blk= 	latin_Ext_F}', "");
+    Expect(1, 67520, '\P{Blk= 	latin_Ext_F}', "");
+    Expect(0, 67520, '\P{^Blk= 	latin_Ext_F}', "");
+    Error('\p{Is_Block: --LATIN_Extended_F:=}');
+    Error('\P{Is_Block: --LATIN_Extended_F:=}');
     Expect(1, 67519, '\p{Is_Block=latinextendedf}', "");
     Expect(0, 67519, '\p{^Is_Block=latinextendedf}', "");
     Expect(0, 67519, '\P{Is_Block=latinextendedf}', "");
@@ -16636,16 +17140,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67520, '\p{^Is_Block=latinextendedf}', "");
     Expect(1, 67520, '\P{Is_Block=latinextendedf}', "");
     Expect(0, 67520, '\P{^Is_Block=latinextendedf}', "");
-    Expect(1, 67519, '\p{Is_Block=	-LATIN_extended_F}', "");
-    Expect(0, 67519, '\p{^Is_Block=	-LATIN_extended_F}', "");
-    Expect(0, 67519, '\P{Is_Block=	-LATIN_extended_F}', "");
-    Expect(1, 67519, '\P{^Is_Block=	-LATIN_extended_F}', "");
-    Expect(0, 67520, '\p{Is_Block=	-LATIN_extended_F}', "");
-    Expect(1, 67520, '\p{^Is_Block=	-LATIN_extended_F}', "");
-    Expect(1, 67520, '\P{Is_Block=	-LATIN_extended_F}', "");
-    Expect(0, 67520, '\P{^Is_Block=	-LATIN_extended_F}', "");
-    Error('\p{Is_Blk=-:=latin_EXT_F}');
-    Error('\P{Is_Blk=-:=latin_EXT_F}');
+    Expect(1, 67519, '\p{Is_Block= 	Latin_Extended_F}', "");
+    Expect(0, 67519, '\p{^Is_Block= 	Latin_Extended_F}', "");
+    Expect(0, 67519, '\P{Is_Block= 	Latin_Extended_F}', "");
+    Expect(1, 67519, '\P{^Is_Block= 	Latin_Extended_F}', "");
+    Expect(0, 67520, '\p{Is_Block= 	Latin_Extended_F}', "");
+    Expect(1, 67520, '\p{^Is_Block= 	Latin_Extended_F}', "");
+    Expect(1, 67520, '\P{Is_Block= 	Latin_Extended_F}', "");
+    Expect(0, 67520, '\P{^Is_Block= 	Latin_Extended_F}', "");
+    Error('\p{Is_Blk= Latin_Ext_F:=}');
+    Error('\P{Is_Blk= Latin_Ext_F:=}');
     Expect(1, 67519, '\p{Is_Blk=latinextf}', "");
     Expect(0, 67519, '\p{^Is_Blk=latinextf}', "");
     Expect(0, 67519, '\P{Is_Blk=latinextf}', "");
@@ -16654,16 +17158,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67520, '\p{^Is_Blk=latinextf}', "");
     Expect(1, 67520, '\P{Is_Blk=latinextf}', "");
     Expect(0, 67520, '\P{^Is_Blk=latinextf}', "");
-    Expect(1, 67519, '\p{Is_Blk=__latin_Ext_F}', "");
-    Expect(0, 67519, '\p{^Is_Blk=__latin_Ext_F}', "");
-    Expect(0, 67519, '\P{Is_Blk=__latin_Ext_F}', "");
-    Expect(1, 67519, '\P{^Is_Blk=__latin_Ext_F}', "");
-    Expect(0, 67520, '\p{Is_Blk=__latin_Ext_F}', "");
-    Expect(1, 67520, '\p{^Is_Blk=__latin_Ext_F}', "");
-    Expect(1, 67520, '\P{Is_Blk=__latin_Ext_F}', "");
-    Expect(0, 67520, '\P{^Is_Blk=__latin_Ext_F}', "");
-    Error('\p{Block=_:=Latin_extended_G}');
-    Error('\P{Block=_:=Latin_extended_G}');
+    Expect(1, 67519, '\p{Is_Blk=_	Latin_EXT_F}', "");
+    Expect(0, 67519, '\p{^Is_Blk=_	Latin_EXT_F}', "");
+    Expect(0, 67519, '\P{Is_Blk=_	Latin_EXT_F}', "");
+    Expect(1, 67519, '\P{^Is_Blk=_	Latin_EXT_F}', "");
+    Expect(0, 67520, '\p{Is_Blk=_	Latin_EXT_F}', "");
+    Expect(1, 67520, '\p{^Is_Blk=_	Latin_EXT_F}', "");
+    Expect(1, 67520, '\P{Is_Blk=_	Latin_EXT_F}', "");
+    Expect(0, 67520, '\P{^Is_Blk=_	Latin_EXT_F}', "");
+    Error('\p{Block= -LATIN_EXTENDED_G:=}');
+    Error('\P{Block= -LATIN_EXTENDED_G:=}');
     Expect(1, 122879, '\p{Block=:\ALatin_Extended_G\z:}', "");;
     Expect(0, 122880, '\p{Block=:\ALatin_Extended_G\z:}', "");;
     Expect(1, 122879, '\p{Block=latinextendedg}', "");
@@ -16676,16 +17180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 122880, '\P{^Block=latinextendedg}', "");
     Expect(1, 122879, '\p{Block=:\Alatinextendedg\z:}', "");;
     Expect(0, 122880, '\p{Block=:\Alatinextendedg\z:}', "");;
-    Expect(1, 122879, '\p{Block=-	LATIN_extended_g}', "");
-    Expect(0, 122879, '\p{^Block=-	LATIN_extended_g}', "");
-    Expect(0, 122879, '\P{Block=-	LATIN_extended_g}', "");
-    Expect(1, 122879, '\P{^Block=-	LATIN_extended_g}', "");
-    Expect(0, 122880, '\p{Block=-	LATIN_extended_g}', "");
-    Expect(1, 122880, '\p{^Block=-	LATIN_extended_g}', "");
-    Expect(1, 122880, '\P{Block=-	LATIN_extended_g}', "");
-    Expect(0, 122880, '\P{^Block=-	LATIN_extended_g}', "");
-    Error('\p{Blk=/a/	-latin_EXT_G}');
-    Error('\P{Blk=/a/	-latin_EXT_G}');
+    Expect(1, 122879, '\p{Block=-LATIN_Extended_G}', "");
+    Expect(0, 122879, '\p{^Block=-LATIN_Extended_G}', "");
+    Expect(0, 122879, '\P{Block=-LATIN_Extended_G}', "");
+    Expect(1, 122879, '\P{^Block=-LATIN_Extended_G}', "");
+    Expect(0, 122880, '\p{Block=-LATIN_Extended_G}', "");
+    Expect(1, 122880, '\p{^Block=-LATIN_Extended_G}', "");
+    Expect(1, 122880, '\P{Block=-LATIN_Extended_G}', "");
+    Expect(0, 122880, '\P{^Block=-LATIN_Extended_G}', "");
+    Error('\p{Blk:   latin_Ext_G/a/}');
+    Error('\P{Blk:   latin_Ext_G/a/}');
     Expect(1, 122879, '\p{Blk=:\ALatin_Ext_G\z:}', "");;
     Expect(0, 122880, '\p{Blk=:\ALatin_Ext_G\z:}', "");;
     Expect(1, 122879, '\p{Blk=latinextg}', "");
@@ -16698,16 +17202,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 122880, '\P{^Blk=latinextg}', "");
     Expect(1, 122879, '\p{Blk=:\Alatinextg\z:}', "");;
     Expect(0, 122880, '\p{Blk=:\Alatinextg\z:}', "");;
-    Expect(1, 122879, '\p{Blk=	Latin_Ext_G}', "");
-    Expect(0, 122879, '\p{^Blk=	Latin_Ext_G}', "");
-    Expect(0, 122879, '\P{Blk=	Latin_Ext_G}', "");
-    Expect(1, 122879, '\P{^Blk=	Latin_Ext_G}', "");
-    Expect(0, 122880, '\p{Blk=	Latin_Ext_G}', "");
-    Expect(1, 122880, '\p{^Blk=	Latin_Ext_G}', "");
-    Expect(1, 122880, '\P{Blk=	Latin_Ext_G}', "");
-    Expect(0, 122880, '\P{^Blk=	Latin_Ext_G}', "");
-    Error('\p{Is_Block=-/a/LATIN_extended_G}');
-    Error('\P{Is_Block=-/a/LATIN_extended_G}');
+    Expect(1, 122879, '\p{Blk=--LATIN_Ext_G}', "");
+    Expect(0, 122879, '\p{^Blk=--LATIN_Ext_G}', "");
+    Expect(0, 122879, '\P{Blk=--LATIN_Ext_G}', "");
+    Expect(1, 122879, '\P{^Blk=--LATIN_Ext_G}', "");
+    Expect(0, 122880, '\p{Blk=--LATIN_Ext_G}', "");
+    Expect(1, 122880, '\p{^Blk=--LATIN_Ext_G}', "");
+    Expect(1, 122880, '\P{Blk=--LATIN_Ext_G}', "");
+    Expect(0, 122880, '\P{^Blk=--LATIN_Ext_G}', "");
+    Error('\p{Is_Block=-	LATIN_EXTENDED_G:=}');
+    Error('\P{Is_Block=-	LATIN_EXTENDED_G:=}');
     Expect(1, 122879, '\p{Is_Block=latinextendedg}', "");
     Expect(0, 122879, '\p{^Is_Block=latinextendedg}', "");
     Expect(0, 122879, '\P{Is_Block=latinextendedg}', "");
@@ -16716,16 +17220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 122880, '\p{^Is_Block=latinextendedg}', "");
     Expect(1, 122880, '\P{Is_Block=latinextendedg}', "");
     Expect(0, 122880, '\P{^Is_Block=latinextendedg}', "");
-    Expect(1, 122879, '\p{Is_Block= LATIN_Extended_g}', "");
-    Expect(0, 122879, '\p{^Is_Block= LATIN_Extended_g}', "");
-    Expect(0, 122879, '\P{Is_Block= LATIN_Extended_g}', "");
-    Expect(1, 122879, '\P{^Is_Block= LATIN_Extended_g}', "");
-    Expect(0, 122880, '\p{Is_Block= LATIN_Extended_g}', "");
-    Expect(1, 122880, '\p{^Is_Block= LATIN_Extended_g}', "");
-    Expect(1, 122880, '\P{Is_Block= LATIN_Extended_g}', "");
-    Expect(0, 122880, '\P{^Is_Block= LATIN_Extended_g}', "");
-    Error('\p{Is_Blk=-/a/Latin_EXT_G}');
-    Error('\P{Is_Blk=-/a/Latin_EXT_G}');
+    Expect(1, 122879, '\p{Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(0, 122879, '\p{^Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(0, 122879, '\P{Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(1, 122879, '\P{^Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(0, 122880, '\p{Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(1, 122880, '\p{^Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(1, 122880, '\P{Is_Block= 	Latin_EXTENDED_G}', "");
+    Expect(0, 122880, '\P{^Is_Block= 	Latin_EXTENDED_G}', "");
+    Error('\p{Is_Blk=	_LATIN_ext_G/a/}');
+    Error('\P{Is_Blk=	_LATIN_ext_G/a/}');
     Expect(1, 122879, '\p{Is_Blk=latinextg}', "");
     Expect(0, 122879, '\p{^Is_Blk=latinextg}', "");
     Expect(0, 122879, '\P{Is_Blk=latinextg}', "");
@@ -16734,16 +17238,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 122880, '\p{^Is_Blk=latinextg}', "");
     Expect(1, 122880, '\P{Is_Blk=latinextg}', "");
     Expect(0, 122880, '\P{^Is_Blk=latinextg}', "");
-    Expect(1, 122879, '\p{Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(0, 122879, '\p{^Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(0, 122879, '\P{Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(1, 122879, '\P{^Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(0, 122880, '\p{Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(1, 122880, '\p{^Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(1, 122880, '\P{Is_Blk=	_LATIN_Ext_G}', "");
-    Expect(0, 122880, '\P{^Is_Blk=	_LATIN_Ext_G}', "");
-    Error('\p{Block: _	LEPCHA:=}');
-    Error('\P{Block: _	LEPCHA:=}');
+    Expect(1, 122879, '\p{Is_Blk=_	Latin_EXT_G}', "");
+    Expect(0, 122879, '\p{^Is_Blk=_	Latin_EXT_G}', "");
+    Expect(0, 122879, '\P{Is_Blk=_	Latin_EXT_G}', "");
+    Expect(1, 122879, '\P{^Is_Blk=_	Latin_EXT_G}', "");
+    Expect(0, 122880, '\p{Is_Blk=_	Latin_EXT_G}', "");
+    Expect(1, 122880, '\p{^Is_Blk=_	Latin_EXT_G}', "");
+    Expect(1, 122880, '\P{Is_Blk=_	Latin_EXT_G}', "");
+    Expect(0, 122880, '\P{^Is_Blk=_	Latin_EXT_G}', "");
+    Error('\p{Block=/a/LEPCHA}');
+    Error('\P{Block=/a/LEPCHA}');
     Expect(1, 7247, '\p{Block=:\ALepcha\z:}', "");;
     Expect(0, 7248, '\p{Block=:\ALepcha\z:}', "");;
     Expect(1, 7247, '\p{Block=lepcha}', "");
@@ -16756,38 +17260,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7248, '\P{^Block=lepcha}', "");
     Expect(1, 7247, '\p{Block=:\Alepcha\z:}', "");;
     Expect(0, 7248, '\p{Block=:\Alepcha\z:}', "");;
-    Expect(1, 7247, '\p{Block=_-Lepcha}', "");
-    Expect(0, 7247, '\p{^Block=_-Lepcha}', "");
-    Expect(0, 7247, '\P{Block=_-Lepcha}', "");
-    Expect(1, 7247, '\P{^Block=_-Lepcha}', "");
-    Expect(0, 7248, '\p{Block=_-Lepcha}', "");
-    Expect(1, 7248, '\p{^Block=_-Lepcha}', "");
-    Expect(1, 7248, '\P{Block=_-Lepcha}', "");
-    Expect(0, 7248, '\P{^Block=_-Lepcha}', "");
-    Error('\p{Blk=:=__lepcha}');
-    Error('\P{Blk=:=__lepcha}');
+    Expect(1, 7247, '\p{Block=  Lepcha}', "");
+    Expect(0, 7247, '\p{^Block=  Lepcha}', "");
+    Expect(0, 7247, '\P{Block=  Lepcha}', "");
+    Expect(1, 7247, '\P{^Block=  Lepcha}', "");
+    Expect(0, 7248, '\p{Block=  Lepcha}', "");
+    Expect(1, 7248, '\p{^Block=  Lepcha}', "");
+    Expect(1, 7248, '\P{Block=  Lepcha}', "");
+    Expect(0, 7248, '\P{^Block=  Lepcha}', "");
+    Error('\p{Blk=/a/ Lepcha}');
+    Error('\P{Blk=/a/ Lepcha}');
     Expect(1, 7247, '\p{Blk=:\ALepcha\z:}', "");;
     Expect(0, 7248, '\p{Blk=:\ALepcha\z:}', "");;
-    Expect(1, 7247, '\p{Blk=lepcha}', "");
-    Expect(0, 7247, '\p{^Blk=lepcha}', "");
-    Expect(0, 7247, '\P{Blk=lepcha}', "");
-    Expect(1, 7247, '\P{^Blk=lepcha}', "");
-    Expect(0, 7248, '\p{Blk=lepcha}', "");
-    Expect(1, 7248, '\p{^Blk=lepcha}', "");
-    Expect(1, 7248, '\P{Blk=lepcha}', "");
-    Expect(0, 7248, '\P{^Blk=lepcha}', "");
+    Expect(1, 7247, '\p{Blk:   lepcha}', "");
+    Expect(0, 7247, '\p{^Blk:   lepcha}', "");
+    Expect(0, 7247, '\P{Blk:   lepcha}', "");
+    Expect(1, 7247, '\P{^Blk:   lepcha}', "");
+    Expect(0, 7248, '\p{Blk:   lepcha}', "");
+    Expect(1, 7248, '\p{^Blk:   lepcha}', "");
+    Expect(1, 7248, '\P{Blk:   lepcha}', "");
+    Expect(0, 7248, '\P{^Blk:   lepcha}', "");
     Expect(1, 7247, '\p{Blk=:\Alepcha\z:}', "");;
     Expect(0, 7248, '\p{Blk=:\Alepcha\z:}', "");;
-    Expect(1, 7247, '\p{Blk= Lepcha}', "");
-    Expect(0, 7247, '\p{^Blk= Lepcha}', "");
-    Expect(0, 7247, '\P{Blk= Lepcha}', "");
-    Expect(1, 7247, '\P{^Blk= Lepcha}', "");
-    Expect(0, 7248, '\p{Blk= Lepcha}', "");
-    Expect(1, 7248, '\p{^Blk= Lepcha}', "");
-    Expect(1, 7248, '\P{Blk= Lepcha}', "");
-    Expect(0, 7248, '\P{^Blk= Lepcha}', "");
-    Error('\p{Is_Block=	_Lepcha:=}');
-    Error('\P{Is_Block=	_Lepcha:=}');
+    Expect(1, 7247, '\p{Blk=_lepcha}', "");
+    Expect(0, 7247, '\p{^Blk=_lepcha}', "");
+    Expect(0, 7247, '\P{Blk=_lepcha}', "");
+    Expect(1, 7247, '\P{^Blk=_lepcha}', "");
+    Expect(0, 7248, '\p{Blk=_lepcha}', "");
+    Expect(1, 7248, '\p{^Blk=_lepcha}', "");
+    Expect(1, 7248, '\P{Blk=_lepcha}', "");
+    Expect(0, 7248, '\P{^Blk=_lepcha}', "");
+    Error('\p{Is_Block= _LEPCHA:=}');
+    Error('\P{Is_Block= _LEPCHA:=}');
     Expect(1, 7247, '\p{Is_Block=lepcha}', "");
     Expect(0, 7247, '\p{^Is_Block=lepcha}', "");
     Expect(0, 7247, '\P{Is_Block=lepcha}', "");
@@ -16796,16 +17300,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7248, '\p{^Is_Block=lepcha}', "");
     Expect(1, 7248, '\P{Is_Block=lepcha}', "");
     Expect(0, 7248, '\P{^Is_Block=lepcha}', "");
-    Expect(1, 7247, '\p{Is_Block: 	 Lepcha}', "");
-    Expect(0, 7247, '\p{^Is_Block: 	 Lepcha}', "");
-    Expect(0, 7247, '\P{Is_Block: 	 Lepcha}', "");
-    Expect(1, 7247, '\P{^Is_Block: 	 Lepcha}', "");
-    Expect(0, 7248, '\p{Is_Block: 	 Lepcha}', "");
-    Expect(1, 7248, '\p{^Is_Block: 	 Lepcha}', "");
-    Expect(1, 7248, '\P{Is_Block: 	 Lepcha}', "");
-    Expect(0, 7248, '\P{^Is_Block: 	 Lepcha}', "");
-    Error('\p{Is_Blk= :=Lepcha}');
-    Error('\P{Is_Blk= :=Lepcha}');
+    Expect(1, 7247, '\p{Is_Block=LEPCHA}', "");
+    Expect(0, 7247, '\p{^Is_Block=LEPCHA}', "");
+    Expect(0, 7247, '\P{Is_Block=LEPCHA}', "");
+    Expect(1, 7247, '\P{^Is_Block=LEPCHA}', "");
+    Expect(0, 7248, '\p{Is_Block=LEPCHA}', "");
+    Expect(1, 7248, '\p{^Is_Block=LEPCHA}', "");
+    Expect(1, 7248, '\P{Is_Block=LEPCHA}', "");
+    Expect(0, 7248, '\P{^Is_Block=LEPCHA}', "");
+    Error('\p{Is_Blk=  Lepcha:=}');
+    Error('\P{Is_Blk=  Lepcha:=}');
     Expect(1, 7247, '\p{Is_Blk=lepcha}', "");
     Expect(0, 7247, '\p{^Is_Blk=lepcha}', "");
     Expect(0, 7247, '\P{Is_Blk=lepcha}', "");
@@ -16814,16 +17318,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7248, '\p{^Is_Blk=lepcha}', "");
     Expect(1, 7248, '\P{Is_Blk=lepcha}', "");
     Expect(0, 7248, '\P{^Is_Blk=lepcha}', "");
-    Expect(1, 7247, '\p{Is_Blk= 	Lepcha}', "");
-    Expect(0, 7247, '\p{^Is_Blk= 	Lepcha}', "");
-    Expect(0, 7247, '\P{Is_Blk= 	Lepcha}', "");
-    Expect(1, 7247, '\P{^Is_Blk= 	Lepcha}', "");
-    Expect(0, 7248, '\p{Is_Blk= 	Lepcha}', "");
-    Expect(1, 7248, '\p{^Is_Blk= 	Lepcha}', "");
-    Expect(1, 7248, '\P{Is_Blk= 	Lepcha}', "");
-    Expect(0, 7248, '\P{^Is_Blk= 	Lepcha}', "");
-    Error('\p{Block=-LETTERLIKE_Symbols:=}');
-    Error('\P{Block=-LETTERLIKE_Symbols:=}');
+    Expect(1, 7247, '\p{Is_Blk=_-Lepcha}', "");
+    Expect(0, 7247, '\p{^Is_Blk=_-Lepcha}', "");
+    Expect(0, 7247, '\P{Is_Blk=_-Lepcha}', "");
+    Expect(1, 7247, '\P{^Is_Blk=_-Lepcha}', "");
+    Expect(0, 7248, '\p{Is_Blk=_-Lepcha}', "");
+    Expect(1, 7248, '\p{^Is_Blk=_-Lepcha}', "");
+    Expect(1, 7248, '\P{Is_Blk=_-Lepcha}', "");
+    Expect(0, 7248, '\P{^Is_Blk=_-Lepcha}', "");
+    Error('\p{Block=:= -Letterlike_SYMBOLS}');
+    Error('\P{Block=:= -Letterlike_SYMBOLS}');
     Expect(1, 8527, '\p{Block=:\ALetterlike_Symbols\z:}', "");;
     Expect(0, 8528, '\p{Block=:\ALetterlike_Symbols\z:}', "");;
     Expect(1, 8527, '\p{Block=letterlikesymbols}', "");
@@ -16836,38 +17340,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8528, '\P{^Block=letterlikesymbols}', "");
     Expect(1, 8527, '\p{Block=:\Aletterlikesymbols\z:}', "");;
     Expect(0, 8528, '\p{Block=:\Aletterlikesymbols\z:}', "");;
-    Expect(1, 8527, '\p{Block:   _Letterlike_symbols}', "");
-    Expect(0, 8527, '\p{^Block:   _Letterlike_symbols}', "");
-    Expect(0, 8527, '\P{Block:   _Letterlike_symbols}', "");
-    Expect(1, 8527, '\P{^Block:   _Letterlike_symbols}', "");
-    Expect(0, 8528, '\p{Block:   _Letterlike_symbols}', "");
-    Expect(1, 8528, '\p{^Block:   _Letterlike_symbols}', "");
-    Expect(1, 8528, '\P{Block:   _Letterlike_symbols}', "");
-    Expect(0, 8528, '\P{^Block:   _Letterlike_symbols}', "");
-    Error('\p{Blk:   /a/__LETTERLIKE_Symbols}');
-    Error('\P{Blk:   /a/__LETTERLIKE_Symbols}');
+    Expect(1, 8527, '\p{Block=__Letterlike_Symbols}', "");
+    Expect(0, 8527, '\p{^Block=__Letterlike_Symbols}', "");
+    Expect(0, 8527, '\P{Block=__Letterlike_Symbols}', "");
+    Expect(1, 8527, '\P{^Block=__Letterlike_Symbols}', "");
+    Expect(0, 8528, '\p{Block=__Letterlike_Symbols}', "");
+    Expect(1, 8528, '\p{^Block=__Letterlike_Symbols}', "");
+    Expect(1, 8528, '\P{Block=__Letterlike_Symbols}', "");
+    Expect(0, 8528, '\P{^Block=__Letterlike_Symbols}', "");
+    Error('\p{Blk=	:=letterlike_SYMBOLS}');
+    Error('\P{Blk=	:=letterlike_SYMBOLS}');
     Expect(1, 8527, '\p{Blk=:\ALetterlike_Symbols\z:}', "");;
     Expect(0, 8528, '\p{Blk=:\ALetterlike_Symbols\z:}', "");;
-    Expect(1, 8527, '\p{Blk=letterlikesymbols}', "");
-    Expect(0, 8527, '\p{^Blk=letterlikesymbols}', "");
-    Expect(0, 8527, '\P{Blk=letterlikesymbols}', "");
-    Expect(1, 8527, '\P{^Blk=letterlikesymbols}', "");
-    Expect(0, 8528, '\p{Blk=letterlikesymbols}', "");
-    Expect(1, 8528, '\p{^Blk=letterlikesymbols}', "");
-    Expect(1, 8528, '\P{Blk=letterlikesymbols}', "");
-    Expect(0, 8528, '\P{^Blk=letterlikesymbols}', "");
+    Expect(1, 8527, '\p{Blk: letterlikesymbols}', "");
+    Expect(0, 8527, '\p{^Blk: letterlikesymbols}', "");
+    Expect(0, 8527, '\P{Blk: letterlikesymbols}', "");
+    Expect(1, 8527, '\P{^Blk: letterlikesymbols}', "");
+    Expect(0, 8528, '\p{Blk: letterlikesymbols}', "");
+    Expect(1, 8528, '\p{^Blk: letterlikesymbols}', "");
+    Expect(1, 8528, '\P{Blk: letterlikesymbols}', "");
+    Expect(0, 8528, '\P{^Blk: letterlikesymbols}', "");
     Expect(1, 8527, '\p{Blk=:\Aletterlikesymbols\z:}', "");;
     Expect(0, 8528, '\p{Blk=:\Aletterlikesymbols\z:}', "");;
-    Expect(1, 8527, '\p{Blk=-LETTERLIKE_Symbols}', "");
-    Expect(0, 8527, '\p{^Blk=-LETTERLIKE_Symbols}', "");
-    Expect(0, 8527, '\P{Blk=-LETTERLIKE_Symbols}', "");
-    Expect(1, 8527, '\P{^Blk=-LETTERLIKE_Symbols}', "");
-    Expect(0, 8528, '\p{Blk=-LETTERLIKE_Symbols}', "");
-    Expect(1, 8528, '\p{^Blk=-LETTERLIKE_Symbols}', "");
-    Expect(1, 8528, '\P{Blk=-LETTERLIKE_Symbols}', "");
-    Expect(0, 8528, '\P{^Blk=-LETTERLIKE_Symbols}', "");
-    Error('\p{Is_Block= :=LETTERLIKE_Symbols}');
-    Error('\P{Is_Block= :=LETTERLIKE_Symbols}');
+    Expect(1, 8527, '\p{Blk=	Letterlike_Symbols}', "");
+    Expect(0, 8527, '\p{^Blk=	Letterlike_Symbols}', "");
+    Expect(0, 8527, '\P{Blk=	Letterlike_Symbols}', "");
+    Expect(1, 8527, '\P{^Blk=	Letterlike_Symbols}', "");
+    Expect(0, 8528, '\p{Blk=	Letterlike_Symbols}', "");
+    Expect(1, 8528, '\p{^Blk=	Letterlike_Symbols}', "");
+    Expect(1, 8528, '\P{Blk=	Letterlike_Symbols}', "");
+    Expect(0, 8528, '\P{^Blk=	Letterlike_Symbols}', "");
+    Error('\p{Is_Block: _ Letterlike_Symbols/a/}');
+    Error('\P{Is_Block: _ Letterlike_Symbols/a/}');
     Expect(1, 8527, '\p{Is_Block=letterlikesymbols}', "");
     Expect(0, 8527, '\p{^Is_Block=letterlikesymbols}', "");
     Expect(0, 8527, '\P{Is_Block=letterlikesymbols}', "");
@@ -16876,16 +17380,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8528, '\p{^Is_Block=letterlikesymbols}', "");
     Expect(1, 8528, '\P{Is_Block=letterlikesymbols}', "");
     Expect(0, 8528, '\P{^Is_Block=letterlikesymbols}', "");
-    Expect(1, 8527, '\p{Is_Block=-_letterlike_Symbols}', "");
-    Expect(0, 8527, '\p{^Is_Block=-_letterlike_Symbols}', "");
-    Expect(0, 8527, '\P{Is_Block=-_letterlike_Symbols}', "");
-    Expect(1, 8527, '\P{^Is_Block=-_letterlike_Symbols}', "");
-    Expect(0, 8528, '\p{Is_Block=-_letterlike_Symbols}', "");
-    Expect(1, 8528, '\p{^Is_Block=-_letterlike_Symbols}', "");
-    Expect(1, 8528, '\P{Is_Block=-_letterlike_Symbols}', "");
-    Expect(0, 8528, '\P{^Is_Block=-_letterlike_Symbols}', "");
-    Error('\p{Is_Blk=	:=Letterlike_Symbols}');
-    Error('\P{Is_Blk=	:=Letterlike_Symbols}');
+    Expect(1, 8527, '\p{Is_Block= 	Letterlike_Symbols}', "");
+    Expect(0, 8527, '\p{^Is_Block= 	Letterlike_Symbols}', "");
+    Expect(0, 8527, '\P{Is_Block= 	Letterlike_Symbols}', "");
+    Expect(1, 8527, '\P{^Is_Block= 	Letterlike_Symbols}', "");
+    Expect(0, 8528, '\p{Is_Block= 	Letterlike_Symbols}', "");
+    Expect(1, 8528, '\p{^Is_Block= 	Letterlike_Symbols}', "");
+    Expect(1, 8528, '\P{Is_Block= 	Letterlike_Symbols}', "");
+    Expect(0, 8528, '\P{^Is_Block= 	Letterlike_Symbols}', "");
+    Error('\p{Is_Blk=/a/-_LETTERLIKE_symbols}');
+    Error('\P{Is_Blk=/a/-_LETTERLIKE_symbols}');
     Expect(1, 8527, '\p{Is_Blk=letterlikesymbols}', "");
     Expect(0, 8527, '\p{^Is_Blk=letterlikesymbols}', "");
     Expect(0, 8527, '\P{Is_Blk=letterlikesymbols}', "");
@@ -16894,16 +17398,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8528, '\p{^Is_Blk=letterlikesymbols}', "");
     Expect(1, 8528, '\P{Is_Blk=letterlikesymbols}', "");
     Expect(0, 8528, '\P{^Is_Blk=letterlikesymbols}', "");
-    Expect(1, 8527, '\p{Is_Blk=-	Letterlike_symbols}', "");
-    Expect(0, 8527, '\p{^Is_Blk=-	Letterlike_symbols}', "");
-    Expect(0, 8527, '\P{Is_Blk=-	Letterlike_symbols}', "");
-    Expect(1, 8527, '\P{^Is_Blk=-	Letterlike_symbols}', "");
-    Expect(0, 8528, '\p{Is_Blk=-	Letterlike_symbols}', "");
-    Expect(1, 8528, '\p{^Is_Blk=-	Letterlike_symbols}', "");
-    Expect(1, 8528, '\P{Is_Blk=-	Letterlike_symbols}', "");
-    Expect(0, 8528, '\P{^Is_Blk=-	Letterlike_symbols}', "");
-    Error('\p{Block=/a/_LIMBU}');
-    Error('\P{Block=/a/_LIMBU}');
+    Expect(1, 8527, '\p{Is_Blk=Letterlike_symbols}', "");
+    Expect(0, 8527, '\p{^Is_Blk=Letterlike_symbols}', "");
+    Expect(0, 8527, '\P{Is_Blk=Letterlike_symbols}', "");
+    Expect(1, 8527, '\P{^Is_Blk=Letterlike_symbols}', "");
+    Expect(0, 8528, '\p{Is_Blk=Letterlike_symbols}', "");
+    Expect(1, 8528, '\p{^Is_Blk=Letterlike_symbols}', "");
+    Expect(1, 8528, '\P{Is_Blk=Letterlike_symbols}', "");
+    Expect(0, 8528, '\P{^Is_Blk=Letterlike_symbols}', "");
+    Error('\p{Block=:=	 LIMBU}');
+    Error('\P{Block=:=	 LIMBU}');
     Expect(1, 6479, '\p{Block=:\ALimbu\z:}', "");;
     Expect(0, 6480, '\p{Block=:\ALimbu\z:}', "");;
     Expect(1, 6479, '\p{Block=limbu}', "");
@@ -16916,16 +17420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6480, '\P{^Block=limbu}', "");
     Expect(1, 6479, '\p{Block=:\Alimbu\z:}', "");;
     Expect(0, 6480, '\p{Block=:\Alimbu\z:}', "");;
-    Expect(1, 6479, '\p{Block=_-LIMBU}', "");
-    Expect(0, 6479, '\p{^Block=_-LIMBU}', "");
-    Expect(0, 6479, '\P{Block=_-LIMBU}', "");
-    Expect(1, 6479, '\P{^Block=_-LIMBU}', "");
-    Expect(0, 6480, '\p{Block=_-LIMBU}', "");
-    Expect(1, 6480, '\p{^Block=_-LIMBU}', "");
-    Expect(1, 6480, '\P{Block=_-LIMBU}', "");
-    Expect(0, 6480, '\P{^Block=_-LIMBU}', "");
-    Error('\p{Blk=:=		Limbu}');
-    Error('\P{Blk=:=		Limbu}');
+    Expect(1, 6479, '\p{Block=	limbu}', "");
+    Expect(0, 6479, '\p{^Block=	limbu}', "");
+    Expect(0, 6479, '\P{Block=	limbu}', "");
+    Expect(1, 6479, '\P{^Block=	limbu}', "");
+    Expect(0, 6480, '\p{Block=	limbu}', "");
+    Expect(1, 6480, '\p{^Block=	limbu}', "");
+    Expect(1, 6480, '\P{Block=	limbu}', "");
+    Expect(0, 6480, '\P{^Block=	limbu}', "");
+    Error('\p{Blk=-:=Limbu}');
+    Error('\P{Blk=-:=Limbu}');
     Expect(1, 6479, '\p{Blk=:\ALimbu\z:}', "");;
     Expect(0, 6480, '\p{Blk=:\ALimbu\z:}', "");;
     Expect(1, 6479, '\p{Blk=limbu}', "");
@@ -16938,16 +17442,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6480, '\P{^Blk=limbu}', "");
     Expect(1, 6479, '\p{Blk=:\Alimbu\z:}', "");;
     Expect(0, 6480, '\p{Blk=:\Alimbu\z:}', "");;
-    Expect(1, 6479, '\p{Blk:-limbu}', "");
-    Expect(0, 6479, '\p{^Blk:-limbu}', "");
-    Expect(0, 6479, '\P{Blk:-limbu}', "");
-    Expect(1, 6479, '\P{^Blk:-limbu}', "");
-    Expect(0, 6480, '\p{Blk:-limbu}', "");
-    Expect(1, 6480, '\p{^Blk:-limbu}', "");
-    Expect(1, 6480, '\P{Blk:-limbu}', "");
-    Expect(0, 6480, '\P{^Blk:-limbu}', "");
-    Error('\p{Is_Block=:=_Limbu}');
-    Error('\P{Is_Block=:=_Limbu}');
+    Expect(1, 6479, '\p{Blk:	-_limbu}', "");
+    Expect(0, 6479, '\p{^Blk:	-_limbu}', "");
+    Expect(0, 6479, '\P{Blk:	-_limbu}', "");
+    Expect(1, 6479, '\P{^Blk:	-_limbu}', "");
+    Expect(0, 6480, '\p{Blk:	-_limbu}', "");
+    Expect(1, 6480, '\p{^Blk:	-_limbu}', "");
+    Expect(1, 6480, '\P{Blk:	-_limbu}', "");
+    Expect(0, 6480, '\P{^Blk:	-_limbu}', "");
+    Error('\p{Is_Block= Limbu/a/}');
+    Error('\P{Is_Block= Limbu/a/}');
     Expect(1, 6479, '\p{Is_Block=limbu}', "");
     Expect(0, 6479, '\p{^Is_Block=limbu}', "");
     Expect(0, 6479, '\P{Is_Block=limbu}', "");
@@ -16956,8 +17460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6480, '\p{^Is_Block=limbu}', "");
     Expect(1, 6480, '\P{Is_Block=limbu}', "");
     Expect(0, 6480, '\P{^Is_Block=limbu}', "");
-    Error('\p{Is_Blk=:=	Limbu}');
-    Error('\P{Is_Blk=:=	Limbu}');
+    Expect(1, 6479, '\p{Is_Block=_ limbu}', "");
+    Expect(0, 6479, '\p{^Is_Block=_ limbu}', "");
+    Expect(0, 6479, '\P{Is_Block=_ limbu}', "");
+    Expect(1, 6479, '\P{^Is_Block=_ limbu}', "");
+    Expect(0, 6480, '\p{Is_Block=_ limbu}', "");
+    Expect(1, 6480, '\p{^Is_Block=_ limbu}', "");
+    Expect(1, 6480, '\P{Is_Block=_ limbu}', "");
+    Expect(0, 6480, '\P{^Is_Block=_ limbu}', "");
+    Error('\p{Is_Blk=/a/	-Limbu}');
+    Error('\P{Is_Blk=/a/	-Limbu}');
     Expect(1, 6479, '\p{Is_Blk=limbu}', "");
     Expect(0, 6479, '\p{^Is_Blk=limbu}', "");
     Expect(0, 6479, '\P{Is_Blk=limbu}', "");
@@ -16966,38 +17478,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6480, '\p{^Is_Blk=limbu}', "");
     Expect(1, 6480, '\P{Is_Blk=limbu}', "");
     Expect(0, 6480, '\P{^Is_Blk=limbu}', "");
-    Expect(1, 6479, '\p{Is_Blk=	Limbu}', "");
-    Expect(0, 6479, '\p{^Is_Blk=	Limbu}', "");
-    Expect(0, 6479, '\P{Is_Blk=	Limbu}', "");
-    Expect(1, 6479, '\P{^Is_Blk=	Limbu}', "");
-    Expect(0, 6480, '\p{Is_Blk=	Limbu}', "");
-    Expect(1, 6480, '\p{^Is_Blk=	Limbu}', "");
-    Expect(1, 6480, '\P{Is_Blk=	Limbu}', "");
-    Expect(0, 6480, '\P{^Is_Blk=	Limbu}', "");
-    Error('\p{Block=:=  Linear_a}');
-    Error('\P{Block=:=  Linear_a}');
+    Expect(1, 6479, '\p{Is_Blk=	-LIMBU}', "");
+    Expect(0, 6479, '\p{^Is_Blk=	-LIMBU}', "");
+    Expect(0, 6479, '\P{Is_Blk=	-LIMBU}', "");
+    Expect(1, 6479, '\P{^Is_Blk=	-LIMBU}', "");
+    Expect(0, 6480, '\p{Is_Blk=	-LIMBU}', "");
+    Expect(1, 6480, '\p{^Is_Blk=	-LIMBU}', "");
+    Expect(1, 6480, '\P{Is_Blk=	-LIMBU}', "");
+    Expect(0, 6480, '\P{^Is_Blk=	-LIMBU}', "");
+    Error('\p{Block=/a/_	Linear_A}');
+    Error('\P{Block=/a/_	Linear_A}');
     Expect(1, 67455, '\p{Block=:\ALinear_A\z:}', "");;
     Expect(0, 67456, '\p{Block=:\ALinear_A\z:}', "");;
-    Expect(1, 67455, '\p{Block=lineara}', "");
-    Expect(0, 67455, '\p{^Block=lineara}', "");
-    Expect(0, 67455, '\P{Block=lineara}', "");
-    Expect(1, 67455, '\P{^Block=lineara}', "");
-    Expect(0, 67456, '\p{Block=lineara}', "");
-    Expect(1, 67456, '\p{^Block=lineara}', "");
-    Expect(1, 67456, '\P{Block=lineara}', "");
-    Expect(0, 67456, '\P{^Block=lineara}', "");
+    Expect(1, 67455, '\p{Block:	lineara}', "");
+    Expect(0, 67455, '\p{^Block:	lineara}', "");
+    Expect(0, 67455, '\P{Block:	lineara}', "");
+    Expect(1, 67455, '\P{^Block:	lineara}', "");
+    Expect(0, 67456, '\p{Block:	lineara}', "");
+    Expect(1, 67456, '\p{^Block:	lineara}', "");
+    Expect(1, 67456, '\P{Block:	lineara}', "");
+    Expect(0, 67456, '\P{^Block:	lineara}', "");
     Expect(1, 67455, '\p{Block=:\Alineara\z:}', "");;
     Expect(0, 67456, '\p{Block=:\Alineara\z:}', "");;
-    Expect(1, 67455, '\p{Block=-linear_A}', "");
-    Expect(0, 67455, '\p{^Block=-linear_A}', "");
-    Expect(0, 67455, '\P{Block=-linear_A}', "");
-    Expect(1, 67455, '\P{^Block=-linear_A}', "");
-    Expect(0, 67456, '\p{Block=-linear_A}', "");
-    Expect(1, 67456, '\p{^Block=-linear_A}', "");
-    Expect(1, 67456, '\P{Block=-linear_A}', "");
-    Expect(0, 67456, '\P{^Block=-linear_A}', "");
-    Error('\p{Blk=/a/_ linear_a}');
-    Error('\P{Blk=/a/_ linear_a}');
+    Expect(1, 67455, '\p{Block=__Linear_A}', "");
+    Expect(0, 67455, '\p{^Block=__Linear_A}', "");
+    Expect(0, 67455, '\P{Block=__Linear_A}', "");
+    Expect(1, 67455, '\P{^Block=__Linear_A}', "");
+    Expect(0, 67456, '\p{Block=__Linear_A}', "");
+    Expect(1, 67456, '\p{^Block=__Linear_A}', "");
+    Expect(1, 67456, '\P{Block=__Linear_A}', "");
+    Expect(0, 67456, '\P{^Block=__Linear_A}', "");
+    Error('\p{Blk=	/a/linear_A}');
+    Error('\P{Blk=	/a/linear_A}');
     Expect(1, 67455, '\p{Blk=:\ALinear_A\z:}', "");;
     Expect(0, 67456, '\p{Blk=:\ALinear_A\z:}', "");;
     Expect(1, 67455, '\p{Blk=lineara}', "");
@@ -17010,16 +17522,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67456, '\P{^Blk=lineara}', "");
     Expect(1, 67455, '\p{Blk=:\Alineara\z:}', "");;
     Expect(0, 67456, '\p{Blk=:\Alineara\z:}', "");;
-    Expect(1, 67455, '\p{Blk=	LINEAR_A}', "");
-    Expect(0, 67455, '\p{^Blk=	LINEAR_A}', "");
-    Expect(0, 67455, '\P{Blk=	LINEAR_A}', "");
-    Expect(1, 67455, '\P{^Blk=	LINEAR_A}', "");
-    Expect(0, 67456, '\p{Blk=	LINEAR_A}', "");
-    Expect(1, 67456, '\p{^Blk=	LINEAR_A}', "");
-    Expect(1, 67456, '\P{Blk=	LINEAR_A}', "");
-    Expect(0, 67456, '\P{^Blk=	LINEAR_A}', "");
-    Error('\p{Is_Block=:= -linear_a}');
-    Error('\P{Is_Block=:= -linear_a}');
+    Expect(1, 67455, '\p{Blk=	Linear_A}', "");
+    Expect(0, 67455, '\p{^Blk=	Linear_A}', "");
+    Expect(0, 67455, '\P{Blk=	Linear_A}', "");
+    Expect(1, 67455, '\P{^Blk=	Linear_A}', "");
+    Expect(0, 67456, '\p{Blk=	Linear_A}', "");
+    Expect(1, 67456, '\p{^Blk=	Linear_A}', "");
+    Expect(1, 67456, '\P{Blk=	Linear_A}', "");
+    Expect(0, 67456, '\P{^Blk=	Linear_A}', "");
+    Error('\p{Is_Block:   _:=linear_a}');
+    Error('\P{Is_Block:   _:=linear_a}');
     Expect(1, 67455, '\p{Is_Block=lineara}', "");
     Expect(0, 67455, '\p{^Is_Block=lineara}', "");
     Expect(0, 67455, '\P{Is_Block=lineara}', "");
@@ -17028,16 +17540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67456, '\p{^Is_Block=lineara}', "");
     Expect(1, 67456, '\P{Is_Block=lineara}', "");
     Expect(0, 67456, '\P{^Is_Block=lineara}', "");
-    Expect(1, 67455, '\p{Is_Block=- LINEAR_A}', "");
-    Expect(0, 67455, '\p{^Is_Block=- LINEAR_A}', "");
-    Expect(0, 67455, '\P{Is_Block=- LINEAR_A}', "");
-    Expect(1, 67455, '\P{^Is_Block=- LINEAR_A}', "");
-    Expect(0, 67456, '\p{Is_Block=- LINEAR_A}', "");
-    Expect(1, 67456, '\p{^Is_Block=- LINEAR_A}', "");
-    Expect(1, 67456, '\P{Is_Block=- LINEAR_A}', "");
-    Expect(0, 67456, '\P{^Is_Block=- LINEAR_A}', "");
-    Error('\p{Is_Blk=	/a/linear_A}');
-    Error('\P{Is_Blk=	/a/linear_A}');
+    Expect(1, 67455, '\p{Is_Block= _Linear_A}', "");
+    Expect(0, 67455, '\p{^Is_Block= _Linear_A}', "");
+    Expect(0, 67455, '\P{Is_Block= _Linear_A}', "");
+    Expect(1, 67455, '\P{^Is_Block= _Linear_A}', "");
+    Expect(0, 67456, '\p{Is_Block= _Linear_A}', "");
+    Expect(1, 67456, '\p{^Is_Block= _Linear_A}', "");
+    Expect(1, 67456, '\P{Is_Block= _Linear_A}', "");
+    Expect(0, 67456, '\P{^Is_Block= _Linear_A}', "");
+    Error('\p{Is_Blk=:=	linear_a}');
+    Error('\P{Is_Blk=:=	linear_a}');
     Expect(1, 67455, '\p{Is_Blk=lineara}', "");
     Expect(0, 67455, '\p{^Is_Blk=lineara}', "");
     Expect(0, 67455, '\P{Is_Blk=lineara}', "");
@@ -17046,16 +17558,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67456, '\p{^Is_Blk=lineara}', "");
     Expect(1, 67456, '\P{Is_Blk=lineara}', "");
     Expect(0, 67456, '\P{^Is_Blk=lineara}', "");
-    Expect(1, 67455, '\p{Is_Blk=-	linear_a}', "");
-    Expect(0, 67455, '\p{^Is_Blk=-	linear_a}', "");
-    Expect(0, 67455, '\P{Is_Blk=-	linear_a}', "");
-    Expect(1, 67455, '\P{^Is_Blk=-	linear_a}', "");
-    Expect(0, 67456, '\p{Is_Blk=-	linear_a}', "");
-    Expect(1, 67456, '\p{^Is_Blk=-	linear_a}', "");
-    Expect(1, 67456, '\P{Is_Blk=-	linear_a}', "");
-    Expect(0, 67456, '\P{^Is_Blk=-	linear_a}', "");
-    Error('\p{Block=:= 	LINEAR_B_Ideograms}');
-    Error('\P{Block=:= 	LINEAR_B_Ideograms}');
+    Expect(1, 67455, '\p{Is_Blk=__LINEAR_A}', "");
+    Expect(0, 67455, '\p{^Is_Blk=__LINEAR_A}', "");
+    Expect(0, 67455, '\P{Is_Blk=__LINEAR_A}', "");
+    Expect(1, 67455, '\P{^Is_Blk=__LINEAR_A}', "");
+    Expect(0, 67456, '\p{Is_Blk=__LINEAR_A}', "");
+    Expect(1, 67456, '\p{^Is_Blk=__LINEAR_A}', "");
+    Expect(1, 67456, '\P{Is_Blk=__LINEAR_A}', "");
+    Expect(0, 67456, '\P{^Is_Blk=__LINEAR_A}', "");
+    Error('\p{Block=_ LINEAR_B_IDEOGRAMS/a/}');
+    Error('\P{Block=_ LINEAR_B_IDEOGRAMS/a/}');
     Expect(1, 65791, '\p{Block=:\ALinear_B_Ideograms\z:}', "");;
     Expect(0, 65792, '\p{Block=:\ALinear_B_Ideograms\z:}', "");;
     Expect(1, 65791, '\p{Block=linearbideograms}', "");
@@ -17068,16 +17580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65792, '\P{^Block=linearbideograms}', "");
     Expect(1, 65791, '\p{Block=:\Alinearbideograms\z:}', "");;
     Expect(0, 65792, '\p{Block=:\Alinearbideograms\z:}', "");;
-    Expect(1, 65791, '\p{Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\p{^Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\P{Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65791, '\P{^Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\p{Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\p{^Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\P{Block=-Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\P{^Block=-Linear_B_IDEOGRAMS}', "");
-    Error('\p{Blk=/a/_LINEAR_B_ideograms}');
-    Error('\P{Blk=/a/_LINEAR_B_ideograms}');
+    Expect(1, 65791, '\p{Block: -LINEAR_b_Ideograms}', "");
+    Expect(0, 65791, '\p{^Block: -LINEAR_b_Ideograms}', "");
+    Expect(0, 65791, '\P{Block: -LINEAR_b_Ideograms}', "");
+    Expect(1, 65791, '\P{^Block: -LINEAR_b_Ideograms}', "");
+    Expect(0, 65792, '\p{Block: -LINEAR_b_Ideograms}', "");
+    Expect(1, 65792, '\p{^Block: -LINEAR_b_Ideograms}', "");
+    Expect(1, 65792, '\P{Block: -LINEAR_b_Ideograms}', "");
+    Expect(0, 65792, '\P{^Block: -LINEAR_b_Ideograms}', "");
+    Error('\p{Blk=	:=Linear_B_ideograms}');
+    Error('\P{Blk=	:=Linear_B_ideograms}');
     Expect(1, 65791, '\p{Blk=:\ALinear_B_Ideograms\z:}', "");;
     Expect(0, 65792, '\p{Blk=:\ALinear_B_Ideograms\z:}', "");;
     Expect(1, 65791, '\p{Blk=linearbideograms}', "");
@@ -17090,16 +17602,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65792, '\P{^Blk=linearbideograms}', "");
     Expect(1, 65791, '\p{Blk=:\Alinearbideograms\z:}', "");;
     Expect(0, 65792, '\p{Blk=:\Alinearbideograms\z:}', "");;
-    Expect(1, 65791, '\p{Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\p{^Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\P{Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(1, 65791, '\P{^Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\p{Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\p{^Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\P{Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\P{^Blk=_LINEAR_B_IDEOGRAMS}', "");
-    Error('\p{Is_Block=/a/		LINEAR_b_Ideograms}');
-    Error('\P{Is_Block=/a/		LINEAR_b_Ideograms}');
+    Expect(1, 65791, '\p{Blk=_ linear_B_ideograms}', "");
+    Expect(0, 65791, '\p{^Blk=_ linear_B_ideograms}', "");
+    Expect(0, 65791, '\P{Blk=_ linear_B_ideograms}', "");
+    Expect(1, 65791, '\P{^Blk=_ linear_B_ideograms}', "");
+    Expect(0, 65792, '\p{Blk=_ linear_B_ideograms}', "");
+    Expect(1, 65792, '\p{^Blk=_ linear_B_ideograms}', "");
+    Expect(1, 65792, '\P{Blk=_ linear_B_ideograms}', "");
+    Expect(0, 65792, '\P{^Blk=_ linear_B_ideograms}', "");
+    Error('\p{Is_Block= 	Linear_b_Ideograms:=}');
+    Error('\P{Is_Block= 	Linear_b_Ideograms:=}');
     Expect(1, 65791, '\p{Is_Block=linearbideograms}', "");
     Expect(0, 65791, '\p{^Is_Block=linearbideograms}', "");
     Expect(0, 65791, '\P{Is_Block=linearbideograms}', "");
@@ -17108,16 +17620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65792, '\p{^Is_Block=linearbideograms}', "");
     Expect(1, 65792, '\P{Is_Block=linearbideograms}', "");
     Expect(0, 65792, '\P{^Is_Block=linearbideograms}', "");
-    Expect(1, 65791, '\p{Is_Block=_ linear_b_Ideograms}', "");
-    Expect(0, 65791, '\p{^Is_Block=_ linear_b_Ideograms}', "");
-    Expect(0, 65791, '\P{Is_Block=_ linear_b_Ideograms}', "");
-    Expect(1, 65791, '\P{^Is_Block=_ linear_b_Ideograms}', "");
-    Expect(0, 65792, '\p{Is_Block=_ linear_b_Ideograms}', "");
-    Expect(1, 65792, '\p{^Is_Block=_ linear_b_Ideograms}', "");
-    Expect(1, 65792, '\P{Is_Block=_ linear_b_Ideograms}', "");
-    Expect(0, 65792, '\P{^Is_Block=_ linear_b_Ideograms}', "");
-    Error('\p{Is_Blk=/a/-Linear_b_Ideograms}');
-    Error('\P{Is_Blk=/a/-Linear_b_Ideograms}');
+    Expect(1, 65791, '\p{Is_Block=	-linear_B_ideograms}', "");
+    Expect(0, 65791, '\p{^Is_Block=	-linear_B_ideograms}', "");
+    Expect(0, 65791, '\P{Is_Block=	-linear_B_ideograms}', "");
+    Expect(1, 65791, '\P{^Is_Block=	-linear_B_ideograms}', "");
+    Expect(0, 65792, '\p{Is_Block=	-linear_B_ideograms}', "");
+    Expect(1, 65792, '\p{^Is_Block=	-linear_B_ideograms}', "");
+    Expect(1, 65792, '\P{Is_Block=	-linear_B_ideograms}', "");
+    Expect(0, 65792, '\P{^Is_Block=	-linear_B_ideograms}', "");
+    Error('\p{Is_Blk=-_linear_B_ideograms:=}');
+    Error('\P{Is_Blk=-_linear_B_ideograms:=}');
     Expect(1, 65791, '\p{Is_Blk=linearbideograms}', "");
     Expect(0, 65791, '\p{^Is_Blk=linearbideograms}', "");
     Expect(0, 65791, '\P{Is_Blk=linearbideograms}', "");
@@ -17126,16 +17638,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65792, '\p{^Is_Blk=linearbideograms}', "");
     Expect(1, 65792, '\P{Is_Blk=linearbideograms}', "");
     Expect(0, 65792, '\P{^Is_Blk=linearbideograms}', "");
-    Expect(1, 65791, '\p{Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\p{^Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\P{Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65791, '\P{^Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\p{Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\p{^Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\P{Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\P{^Is_Blk=Linear_B_IDEOGRAMS}', "");
-    Error('\p{Block=/a/-	LINEAR_b_SYLLABARY}');
-    Error('\P{Block=/a/-	LINEAR_b_SYLLABARY}');
+    Expect(1, 65791, '\p{Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(0, 65791, '\p{^Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(0, 65791, '\P{Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(1, 65791, '\P{^Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(0, 65792, '\p{Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(1, 65792, '\p{^Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(1, 65792, '\P{Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Expect(0, 65792, '\P{^Is_Blk:	_ linear_B_IDEOGRAMS}', "");
+    Error('\p{Block=- linear_b_Syllabary/a/}');
+    Error('\P{Block=- linear_b_Syllabary/a/}');
     Expect(1, 65663, '\p{Block=:\ALinear_B_Syllabary\z:}', "");;
     Expect(0, 65664, '\p{Block=:\ALinear_B_Syllabary\z:}', "");;
     Expect(1, 65663, '\p{Block=linearbsyllabary}', "");
@@ -17148,38 +17660,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65664, '\P{^Block=linearbsyllabary}', "");
     Expect(1, 65663, '\p{Block=:\Alinearbsyllabary\z:}', "");;
     Expect(0, 65664, '\p{Block=:\Alinearbsyllabary\z:}', "");;
-    Expect(1, 65663, '\p{Block= _Linear_B_syllabary}', "");
-    Expect(0, 65663, '\p{^Block= _Linear_B_syllabary}', "");
-    Expect(0, 65663, '\P{Block= _Linear_B_syllabary}', "");
-    Expect(1, 65663, '\P{^Block= _Linear_B_syllabary}', "");
-    Expect(0, 65664, '\p{Block= _Linear_B_syllabary}', "");
-    Expect(1, 65664, '\p{^Block= _Linear_B_syllabary}', "");
-    Expect(1, 65664, '\P{Block= _Linear_B_syllabary}', "");
-    Expect(0, 65664, '\P{^Block= _Linear_B_syllabary}', "");
-    Error('\p{Blk=	_Linear_b_syllabary:=}');
-    Error('\P{Blk=	_Linear_b_syllabary:=}');
+    Expect(1, 65663, '\p{Block= -LINEAR_B_syllabary}', "");
+    Expect(0, 65663, '\p{^Block= -LINEAR_B_syllabary}', "");
+    Expect(0, 65663, '\P{Block= -LINEAR_B_syllabary}', "");
+    Expect(1, 65663, '\P{^Block= -LINEAR_B_syllabary}', "");
+    Expect(0, 65664, '\p{Block= -LINEAR_B_syllabary}', "");
+    Expect(1, 65664, '\p{^Block= -LINEAR_B_syllabary}', "");
+    Expect(1, 65664, '\P{Block= -LINEAR_B_syllabary}', "");
+    Expect(0, 65664, '\P{^Block= -LINEAR_B_syllabary}', "");
+    Error('\p{Blk=-/a/Linear_B_syllabary}');
+    Error('\P{Blk=-/a/Linear_B_syllabary}');
     Expect(1, 65663, '\p{Blk=:\ALinear_B_Syllabary\z:}', "");;
     Expect(0, 65664, '\p{Blk=:\ALinear_B_Syllabary\z:}', "");;
-    Expect(1, 65663, '\p{Blk:   linearbsyllabary}', "");
-    Expect(0, 65663, '\p{^Blk:   linearbsyllabary}', "");
-    Expect(0, 65663, '\P{Blk:   linearbsyllabary}', "");
-    Expect(1, 65663, '\P{^Blk:   linearbsyllabary}', "");
-    Expect(0, 65664, '\p{Blk:   linearbsyllabary}', "");
-    Expect(1, 65664, '\p{^Blk:   linearbsyllabary}', "");
-    Expect(1, 65664, '\P{Blk:   linearbsyllabary}', "");
-    Expect(0, 65664, '\P{^Blk:   linearbsyllabary}', "");
+    Expect(1, 65663, '\p{Blk=linearbsyllabary}', "");
+    Expect(0, 65663, '\p{^Blk=linearbsyllabary}', "");
+    Expect(0, 65663, '\P{Blk=linearbsyllabary}', "");
+    Expect(1, 65663, '\P{^Blk=linearbsyllabary}', "");
+    Expect(0, 65664, '\p{Blk=linearbsyllabary}', "");
+    Expect(1, 65664, '\p{^Blk=linearbsyllabary}', "");
+    Expect(1, 65664, '\P{Blk=linearbsyllabary}', "");
+    Expect(0, 65664, '\P{^Blk=linearbsyllabary}', "");
     Expect(1, 65663, '\p{Blk=:\Alinearbsyllabary\z:}', "");;
     Expect(0, 65664, '\p{Blk=:\Alinearbsyllabary\z:}', "");;
-    Expect(1, 65663, '\p{Blk= 	linear_B_Syllabary}', "");
-    Expect(0, 65663, '\p{^Blk= 	linear_B_Syllabary}', "");
-    Expect(0, 65663, '\P{Blk= 	linear_B_Syllabary}', "");
-    Expect(1, 65663, '\P{^Blk= 	linear_B_Syllabary}', "");
-    Expect(0, 65664, '\p{Blk= 	linear_B_Syllabary}', "");
-    Expect(1, 65664, '\p{^Blk= 	linear_B_Syllabary}', "");
-    Expect(1, 65664, '\P{Blk= 	linear_B_Syllabary}', "");
-    Expect(0, 65664, '\P{^Blk= 	linear_B_Syllabary}', "");
-    Error('\p{Is_Block: --LINEAR_B_Syllabary:=}');
-    Error('\P{Is_Block: --LINEAR_B_Syllabary:=}');
+    Expect(1, 65663, '\p{Blk=  Linear_B_SYLLABARY}', "");
+    Expect(0, 65663, '\p{^Blk=  Linear_B_SYLLABARY}', "");
+    Expect(0, 65663, '\P{Blk=  Linear_B_SYLLABARY}', "");
+    Expect(1, 65663, '\P{^Blk=  Linear_B_SYLLABARY}', "");
+    Expect(0, 65664, '\p{Blk=  Linear_B_SYLLABARY}', "");
+    Expect(1, 65664, '\p{^Blk=  Linear_B_SYLLABARY}', "");
+    Expect(1, 65664, '\P{Blk=  Linear_B_SYLLABARY}', "");
+    Expect(0, 65664, '\P{^Blk=  Linear_B_SYLLABARY}', "");
+    Error('\p{Is_Block=:= LINEAR_B_SYLLABARY}');
+    Error('\P{Is_Block=:= LINEAR_B_SYLLABARY}');
     Expect(1, 65663, '\p{Is_Block=linearbsyllabary}', "");
     Expect(0, 65663, '\p{^Is_Block=linearbsyllabary}', "");
     Expect(0, 65663, '\P{Is_Block=linearbsyllabary}', "");
@@ -17188,16 +17700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65664, '\p{^Is_Block=linearbsyllabary}', "");
     Expect(1, 65664, '\P{Is_Block=linearbsyllabary}', "");
     Expect(0, 65664, '\P{^Is_Block=linearbsyllabary}', "");
-    Expect(1, 65663, '\p{Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(0, 65663, '\p{^Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(0, 65663, '\P{Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(1, 65663, '\P{^Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(0, 65664, '\p{Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(1, 65664, '\p{^Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(1, 65664, '\P{Is_Block= 	Linear_B_Syllabary}', "");
-    Expect(0, 65664, '\P{^Is_Block= 	Linear_B_Syllabary}', "");
-    Error('\p{Is_Blk= Linear_B_Syllabary:=}');
-    Error('\P{Is_Blk= Linear_B_Syllabary:=}');
+    Expect(1, 65663, '\p{Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(0, 65663, '\p{^Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(0, 65663, '\P{Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(1, 65663, '\P{^Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(0, 65664, '\p{Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(1, 65664, '\p{^Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(1, 65664, '\P{Is_Block=_ Linear_B_Syllabary}', "");
+    Expect(0, 65664, '\P{^Is_Block=_ Linear_B_Syllabary}', "");
+    Error('\p{Is_Blk:   	:=linear_b_SYLLABARY}');
+    Error('\P{Is_Blk:   	:=linear_b_SYLLABARY}');
     Expect(1, 65663, '\p{Is_Blk=linearbsyllabary}', "");
     Expect(0, 65663, '\p{^Is_Blk=linearbsyllabary}', "");
     Expect(0, 65663, '\P{Is_Blk=linearbsyllabary}', "");
@@ -17206,16 +17718,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65664, '\p{^Is_Blk=linearbsyllabary}', "");
     Expect(1, 65664, '\P{Is_Blk=linearbsyllabary}', "");
     Expect(0, 65664, '\P{^Is_Blk=linearbsyllabary}', "");
-    Expect(1, 65663, '\p{Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(0, 65663, '\p{^Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(0, 65663, '\P{Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(1, 65663, '\P{^Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(0, 65664, '\p{Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(1, 65664, '\p{^Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(1, 65664, '\P{Is_Blk=_	Linear_B_Syllabary}', "");
-    Expect(0, 65664, '\P{^Is_Blk=_	Linear_B_Syllabary}', "");
-    Error('\p{Block=-:=LISU}');
-    Error('\P{Block=-:=LISU}');
+    Expect(1, 65663, '\p{Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(0, 65663, '\p{^Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(0, 65663, '\P{Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(1, 65663, '\P{^Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(0, 65664, '\p{Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(1, 65664, '\p{^Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(1, 65664, '\P{Is_Blk=__Linear_B_Syllabary}', "");
+    Expect(0, 65664, '\P{^Is_Blk=__Linear_B_Syllabary}', "");
+    Error('\p{Block=:=__Lisu}');
+    Error('\P{Block=:=__Lisu}');
     Expect(1, 42239, '\p{Block=:\ALisu\z:}', "");;
     Expect(0, 42240, '\p{Block=:\ALisu\z:}', "");;
     Expect(1, 42239, '\p{Block=lisu}', "");
@@ -17228,8 +17740,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42240, '\P{^Block=lisu}', "");
     Expect(1, 42239, '\p{Block=:\Alisu\z:}', "");;
     Expect(0, 42240, '\p{Block=:\Alisu\z:}', "");;
-    Error('\p{Blk=/a/- LISU}');
-    Error('\P{Blk=/a/- LISU}');
+    Expect(1, 42239, '\p{Block=	-Lisu}', "");
+    Expect(0, 42239, '\p{^Block=	-Lisu}', "");
+    Expect(0, 42239, '\P{Block=	-Lisu}', "");
+    Expect(1, 42239, '\P{^Block=	-Lisu}', "");
+    Expect(0, 42240, '\p{Block=	-Lisu}', "");
+    Expect(1, 42240, '\p{^Block=	-Lisu}', "");
+    Expect(1, 42240, '\P{Block=	-Lisu}', "");
+    Expect(0, 42240, '\P{^Block=	-Lisu}', "");
+    Error('\p{Blk= :=Lisu}');
+    Error('\P{Blk= :=Lisu}');
     Expect(1, 42239, '\p{Blk=:\ALisu\z:}', "");;
     Expect(0, 42240, '\p{Blk=:\ALisu\z:}', "");;
     Expect(1, 42239, '\p{Blk=lisu}', "");
@@ -17242,16 +17762,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42240, '\P{^Blk=lisu}', "");
     Expect(1, 42239, '\p{Blk=:\Alisu\z:}', "");;
     Expect(0, 42240, '\p{Blk=:\Alisu\z:}', "");;
-    Expect(1, 42239, '\p{Blk= -lisu}', "");
-    Expect(0, 42239, '\p{^Blk= -lisu}', "");
-    Expect(0, 42239, '\P{Blk= -lisu}', "");
-    Expect(1, 42239, '\P{^Blk= -lisu}', "");
-    Expect(0, 42240, '\p{Blk= -lisu}', "");
-    Expect(1, 42240, '\p{^Blk= -lisu}', "");
-    Expect(1, 42240, '\P{Blk= -lisu}', "");
-    Expect(0, 42240, '\P{^Blk= -lisu}', "");
-    Error('\p{Is_Block=:=LISU}');
-    Error('\P{Is_Block=:=LISU}');
+    Expect(1, 42239, '\p{Blk=--Lisu}', "");
+    Expect(0, 42239, '\p{^Blk=--Lisu}', "");
+    Expect(0, 42239, '\P{Blk=--Lisu}', "");
+    Expect(1, 42239, '\P{^Blk=--Lisu}', "");
+    Expect(0, 42240, '\p{Blk=--Lisu}', "");
+    Expect(1, 42240, '\p{^Blk=--Lisu}', "");
+    Expect(1, 42240, '\P{Blk=--Lisu}', "");
+    Expect(0, 42240, '\P{^Blk=--Lisu}', "");
+    Error('\p{Is_Block=:=_	Lisu}');
+    Error('\P{Is_Block=:=_	Lisu}');
     Expect(1, 42239, '\p{Is_Block=lisu}', "");
     Expect(0, 42239, '\p{^Is_Block=lisu}', "");
     Expect(0, 42239, '\P{Is_Block=lisu}', "");
@@ -17260,16 +17780,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42240, '\p{^Is_Block=lisu}', "");
     Expect(1, 42240, '\P{Is_Block=lisu}', "");
     Expect(0, 42240, '\P{^Is_Block=lisu}', "");
-    Expect(1, 42239, '\p{Is_Block= _Lisu}', "");
-    Expect(0, 42239, '\p{^Is_Block= _Lisu}', "");
-    Expect(0, 42239, '\P{Is_Block= _Lisu}', "");
-    Expect(1, 42239, '\P{^Is_Block= _Lisu}', "");
-    Expect(0, 42240, '\p{Is_Block= _Lisu}', "");
-    Expect(1, 42240, '\p{^Is_Block= _Lisu}', "");
-    Expect(1, 42240, '\P{Is_Block= _Lisu}', "");
-    Expect(0, 42240, '\P{^Is_Block= _Lisu}', "");
-    Error('\p{Is_Blk:/a/ 	lisu}');
-    Error('\P{Is_Blk:/a/ 	lisu}');
+    Expect(1, 42239, '\p{Is_Block=_Lisu}', "");
+    Expect(0, 42239, '\p{^Is_Block=_Lisu}', "");
+    Expect(0, 42239, '\P{Is_Block=_Lisu}', "");
+    Expect(1, 42239, '\P{^Is_Block=_Lisu}', "");
+    Expect(0, 42240, '\p{Is_Block=_Lisu}', "");
+    Expect(1, 42240, '\p{^Is_Block=_Lisu}', "");
+    Expect(1, 42240, '\P{Is_Block=_Lisu}', "");
+    Expect(0, 42240, '\P{^Is_Block=_Lisu}', "");
+    Error('\p{Is_Blk=:=Lisu}');
+    Error('\P{Is_Blk=:=Lisu}');
     Expect(1, 42239, '\p{Is_Blk=lisu}', "");
     Expect(0, 42239, '\p{^Is_Blk=lisu}', "");
     Expect(0, 42239, '\P{Is_Blk=lisu}', "");
@@ -17278,16 +17798,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42240, '\p{^Is_Blk=lisu}', "");
     Expect(1, 42240, '\P{Is_Blk=lisu}', "");
     Expect(0, 42240, '\P{^Is_Blk=lisu}', "");
-    Expect(1, 42239, '\p{Is_Blk=-_Lisu}', "");
-    Expect(0, 42239, '\p{^Is_Blk=-_Lisu}', "");
-    Expect(0, 42239, '\P{Is_Blk=-_Lisu}', "");
-    Expect(1, 42239, '\P{^Is_Blk=-_Lisu}', "");
-    Expect(0, 42240, '\p{Is_Blk=-_Lisu}', "");
-    Expect(1, 42240, '\p{^Is_Blk=-_Lisu}', "");
-    Expect(1, 42240, '\P{Is_Blk=-_Lisu}', "");
-    Expect(0, 42240, '\P{^Is_Blk=-_Lisu}', "");
-    Error('\p{Block=-/a/Lisu_SUPPLEMENT}');
-    Error('\P{Block=-/a/Lisu_SUPPLEMENT}');
+    Expect(1, 42239, '\p{Is_Blk=	Lisu}', "");
+    Expect(0, 42239, '\p{^Is_Blk=	Lisu}', "");
+    Expect(0, 42239, '\P{Is_Blk=	Lisu}', "");
+    Expect(1, 42239, '\P{^Is_Blk=	Lisu}', "");
+    Expect(0, 42240, '\p{Is_Blk=	Lisu}', "");
+    Expect(1, 42240, '\p{^Is_Blk=	Lisu}', "");
+    Expect(1, 42240, '\P{Is_Blk=	Lisu}', "");
+    Expect(0, 42240, '\P{^Is_Blk=	Lisu}', "");
+    Error('\p{Block:	/a/lisu_Supplement}');
+    Error('\P{Block:	/a/lisu_Supplement}');
     Expect(1, 73663, '\p{Block=:\ALisu_Supplement\z:}', "");;
     Expect(0, 73664, '\p{Block=:\ALisu_Supplement\z:}', "");;
     Expect(1, 73663, '\p{Block=lisusupplement}', "");
@@ -17300,38 +17820,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73664, '\P{^Block=lisusupplement}', "");
     Expect(1, 73663, '\p{Block=:\Alisusupplement\z:}', "");;
     Expect(0, 73664, '\p{Block=:\Alisusupplement\z:}', "");;
-    Expect(1, 73663, '\p{Block=- LISU_SUPPLEMENT}', "");
-    Expect(0, 73663, '\p{^Block=- LISU_SUPPLEMENT}', "");
-    Expect(0, 73663, '\P{Block=- LISU_SUPPLEMENT}', "");
-    Expect(1, 73663, '\P{^Block=- LISU_SUPPLEMENT}', "");
-    Expect(0, 73664, '\p{Block=- LISU_SUPPLEMENT}', "");
-    Expect(1, 73664, '\p{^Block=- LISU_SUPPLEMENT}', "");
-    Expect(1, 73664, '\P{Block=- LISU_SUPPLEMENT}', "");
-    Expect(0, 73664, '\P{^Block=- LISU_SUPPLEMENT}', "");
-    Error('\p{Blk=_	Lisu_sup:=}');
-    Error('\P{Blk=_	Lisu_sup:=}');
+    Expect(1, 73663, '\p{Block= Lisu_Supplement}', "");
+    Expect(0, 73663, '\p{^Block= Lisu_Supplement}', "");
+    Expect(0, 73663, '\P{Block= Lisu_Supplement}', "");
+    Expect(1, 73663, '\P{^Block= Lisu_Supplement}', "");
+    Expect(0, 73664, '\p{Block= Lisu_Supplement}', "");
+    Expect(1, 73664, '\p{^Block= Lisu_Supplement}', "");
+    Expect(1, 73664, '\P{Block= Lisu_Supplement}', "");
+    Expect(0, 73664, '\P{^Block= Lisu_Supplement}', "");
+    Error('\p{Blk=/a/	 Lisu_sup}');
+    Error('\P{Blk=/a/	 Lisu_sup}');
     Expect(1, 73663, '\p{Blk=:\ALisu_Sup\z:}', "");;
     Expect(0, 73664, '\p{Blk=:\ALisu_Sup\z:}', "");;
-    Expect(1, 73663, '\p{Blk:lisusup}', "");
-    Expect(0, 73663, '\p{^Blk:lisusup}', "");
-    Expect(0, 73663, '\P{Blk:lisusup}', "");
-    Expect(1, 73663, '\P{^Blk:lisusup}', "");
-    Expect(0, 73664, '\p{Blk:lisusup}', "");
-    Expect(1, 73664, '\p{^Blk:lisusup}', "");
-    Expect(1, 73664, '\P{Blk:lisusup}', "");
-    Expect(0, 73664, '\P{^Blk:lisusup}', "");
+    Expect(1, 73663, '\p{Blk=lisusup}', "");
+    Expect(0, 73663, '\p{^Blk=lisusup}', "");
+    Expect(0, 73663, '\P{Blk=lisusup}', "");
+    Expect(1, 73663, '\P{^Blk=lisusup}', "");
+    Expect(0, 73664, '\p{Blk=lisusup}', "");
+    Expect(1, 73664, '\p{^Blk=lisusup}', "");
+    Expect(1, 73664, '\P{Blk=lisusup}', "");
+    Expect(0, 73664, '\P{^Blk=lisusup}', "");
     Expect(1, 73663, '\p{Blk=:\Alisusup\z:}', "");;
     Expect(0, 73664, '\p{Blk=:\Alisusup\z:}', "");;
-    Expect(1, 73663, '\p{Blk=Lisu_sup}', "");
-    Expect(0, 73663, '\p{^Blk=Lisu_sup}', "");
-    Expect(0, 73663, '\P{Blk=Lisu_sup}', "");
-    Expect(1, 73663, '\P{^Blk=Lisu_sup}', "");
-    Expect(0, 73664, '\p{Blk=Lisu_sup}', "");
-    Expect(1, 73664, '\p{^Blk=Lisu_sup}', "");
-    Expect(1, 73664, '\P{Blk=Lisu_sup}', "");
-    Expect(0, 73664, '\P{^Blk=Lisu_sup}', "");
-    Error('\p{Is_Block=:= LISU_Supplement}');
-    Error('\P{Is_Block=:= LISU_Supplement}');
+    Expect(1, 73663, '\p{Blk=_	LISU_SUP}', "");
+    Expect(0, 73663, '\p{^Blk=_	LISU_SUP}', "");
+    Expect(0, 73663, '\P{Blk=_	LISU_SUP}', "");
+    Expect(1, 73663, '\P{^Blk=_	LISU_SUP}', "");
+    Expect(0, 73664, '\p{Blk=_	LISU_SUP}', "");
+    Expect(1, 73664, '\p{^Blk=_	LISU_SUP}', "");
+    Expect(1, 73664, '\P{Blk=_	LISU_SUP}', "");
+    Expect(0, 73664, '\P{^Blk=_	LISU_SUP}', "");
+    Error('\p{Is_Block=_Lisu_Supplement/a/}');
+    Error('\P{Is_Block=_Lisu_Supplement/a/}');
     Expect(1, 73663, '\p{Is_Block=lisusupplement}', "");
     Expect(0, 73663, '\p{^Is_Block=lisusupplement}', "");
     Expect(0, 73663, '\P{Is_Block=lisusupplement}', "");
@@ -17340,16 +17860,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73664, '\p{^Is_Block=lisusupplement}', "");
     Expect(1, 73664, '\P{Is_Block=lisusupplement}', "");
     Expect(0, 73664, '\P{^Is_Block=lisusupplement}', "");
-    Expect(1, 73663, '\p{Is_Block=-LISU_Supplement}', "");
-    Expect(0, 73663, '\p{^Is_Block=-LISU_Supplement}', "");
-    Expect(0, 73663, '\P{Is_Block=-LISU_Supplement}', "");
-    Expect(1, 73663, '\P{^Is_Block=-LISU_Supplement}', "");
-    Expect(0, 73664, '\p{Is_Block=-LISU_Supplement}', "");
-    Expect(1, 73664, '\p{^Is_Block=-LISU_Supplement}', "");
-    Expect(1, 73664, '\P{Is_Block=-LISU_Supplement}', "");
-    Expect(0, 73664, '\P{^Is_Block=-LISU_Supplement}', "");
-    Error('\p{Is_Blk:   :=lisu_Sup}');
-    Error('\P{Is_Blk:   :=lisu_Sup}');
+    Expect(1, 73663, '\p{Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(0, 73663, '\p{^Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(0, 73663, '\P{Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(1, 73663, '\P{^Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(0, 73664, '\p{Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(1, 73664, '\p{^Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(1, 73664, '\P{Is_Block=- LISU_SUPPLEMENT}', "");
+    Expect(0, 73664, '\P{^Is_Block=- LISU_SUPPLEMENT}', "");
+    Error('\p{Is_Blk=:=	Lisu_Sup}');
+    Error('\P{Is_Blk=:=	Lisu_Sup}');
     Expect(1, 73663, '\p{Is_Blk=lisusup}', "");
     Expect(0, 73663, '\p{^Is_Blk=lisusup}', "");
     Expect(0, 73663, '\P{Is_Blk=lisusup}', "");
@@ -17358,16 +17878,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73664, '\p{^Is_Blk=lisusup}', "");
     Expect(1, 73664, '\P{Is_Blk=lisusup}', "");
     Expect(0, 73664, '\P{^Is_Blk=lisusup}', "");
-    Expect(1, 73663, '\p{Is_Blk=_Lisu_Sup}', "");
-    Expect(0, 73663, '\p{^Is_Blk=_Lisu_Sup}', "");
-    Expect(0, 73663, '\P{Is_Blk=_Lisu_Sup}', "");
-    Expect(1, 73663, '\P{^Is_Blk=_Lisu_Sup}', "");
-    Expect(0, 73664, '\p{Is_Blk=_Lisu_Sup}', "");
-    Expect(1, 73664, '\p{^Is_Blk=_Lisu_Sup}', "");
-    Expect(1, 73664, '\P{Is_Blk=_Lisu_Sup}', "");
-    Expect(0, 73664, '\P{^Is_Blk=_Lisu_Sup}', "");
-    Error('\p{Block= :=low_Surrogates}');
-    Error('\P{Block= :=low_Surrogates}');
+    Expect(1, 73663, '\p{Is_Blk= Lisu_SUP}', "");
+    Expect(0, 73663, '\p{^Is_Blk= Lisu_SUP}', "");
+    Expect(0, 73663, '\P{Is_Blk= Lisu_SUP}', "");
+    Expect(1, 73663, '\P{^Is_Blk= Lisu_SUP}', "");
+    Expect(0, 73664, '\p{Is_Blk= Lisu_SUP}', "");
+    Expect(1, 73664, '\p{^Is_Blk= Lisu_SUP}', "");
+    Expect(1, 73664, '\P{Is_Blk= Lisu_SUP}', "");
+    Expect(0, 73664, '\P{^Is_Blk= Lisu_SUP}', "");
+    Error('\p{Block= Low_SURROGATES/a/}');
+    Error('\P{Block= Low_SURROGATES/a/}');
     Expect(1, 57343, '\p{Block=:\ALow_Surrogates\z:}', "");;
     Expect(0, 57344, '\p{Block=:\ALow_Surrogates\z:}', "");;
     Expect(1, 57343, '\p{Block=lowsurrogates}', "");
@@ -17388,8 +17908,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Block=__Low_Surrogates}', "");
     Expect(1, 57344, '\P{Block=__Low_Surrogates}', "");
     Expect(0, 57344, '\P{^Block=__Low_Surrogates}', "");
-    Error('\p{Blk=:=_ Low_surrogates}');
-    Error('\P{Blk=:=_ Low_surrogates}');
+    Error('\p{Blk=	 low_Surrogates:=}');
+    Error('\P{Blk=	 low_Surrogates:=}');
     Expect(1, 57343, '\p{Blk=:\ALow_Surrogates\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\ALow_Surrogates\z:}', "");;
     Expect(1, 57343, '\p{Blk=lowsurrogates}', "");
@@ -17402,16 +17922,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Blk=lowsurrogates}', "");
     Expect(1, 57343, '\p{Blk=:\Alowsurrogates\z:}', "");;
     Expect(0, 57344, '\p{Blk=:\Alowsurrogates\z:}', "");;
-    Expect(1, 57343, '\p{Blk=_	Low_Surrogates}', "");
-    Expect(0, 57343, '\p{^Blk=_	Low_Surrogates}', "");
-    Expect(0, 57343, '\P{Blk=_	Low_Surrogates}', "");
-    Expect(1, 57343, '\P{^Blk=_	Low_Surrogates}', "");
-    Expect(0, 57344, '\p{Blk=_	Low_Surrogates}', "");
-    Expect(1, 57344, '\p{^Blk=_	Low_Surrogates}', "");
-    Expect(1, 57344, '\P{Blk=_	Low_Surrogates}', "");
-    Expect(0, 57344, '\P{^Blk=_	Low_Surrogates}', "");
-    Error('\p{Is_Block=- Low_Surrogates/a/}');
-    Error('\P{Is_Block=- Low_Surrogates/a/}');
+    Expect(1, 57343, '\p{Blk= -Low_Surrogates}', "");
+    Expect(0, 57343, '\p{^Blk= -Low_Surrogates}', "");
+    Expect(0, 57343, '\P{Blk= -Low_Surrogates}', "");
+    Expect(1, 57343, '\P{^Blk= -Low_Surrogates}', "");
+    Expect(0, 57344, '\p{Blk= -Low_Surrogates}', "");
+    Expect(1, 57344, '\p{^Blk= -Low_Surrogates}', "");
+    Expect(1, 57344, '\P{Blk= -Low_Surrogates}', "");
+    Expect(0, 57344, '\P{^Blk= -Low_Surrogates}', "");
+    Error('\p{Is_Block:   _	Low_Surrogates:=}');
+    Error('\P{Is_Block:   _	Low_Surrogates:=}');
     Expect(1, 57343, '\p{Is_Block=lowsurrogates}', "");
     Expect(0, 57343, '\p{^Is_Block=lowsurrogates}', "");
     Expect(0, 57343, '\P{Is_Block=lowsurrogates}', "");
@@ -17420,16 +17940,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Block=lowsurrogates}', "");
     Expect(1, 57344, '\P{Is_Block=lowsurrogates}', "");
     Expect(0, 57344, '\P{^Is_Block=lowsurrogates}', "");
-    Expect(1, 57343, '\p{Is_Block=_	Low_Surrogates}', "");
-    Expect(0, 57343, '\p{^Is_Block=_	Low_Surrogates}', "");
-    Expect(0, 57343, '\P{Is_Block=_	Low_Surrogates}', "");
-    Expect(1, 57343, '\P{^Is_Block=_	Low_Surrogates}', "");
-    Expect(0, 57344, '\p{Is_Block=_	Low_Surrogates}', "");
-    Expect(1, 57344, '\p{^Is_Block=_	Low_Surrogates}', "");
-    Expect(1, 57344, '\P{Is_Block=_	Low_Surrogates}', "");
-    Expect(0, 57344, '\P{^Is_Block=_	Low_Surrogates}', "");
-    Error('\p{Is_Blk=:=	-Low_surrogates}');
-    Error('\P{Is_Blk=:=	-Low_surrogates}');
+    Expect(1, 57343, '\p{Is_Block= _Low_SURROGATES}', "");
+    Expect(0, 57343, '\p{^Is_Block= _Low_SURROGATES}', "");
+    Expect(0, 57343, '\P{Is_Block= _Low_SURROGATES}', "");
+    Expect(1, 57343, '\P{^Is_Block= _Low_SURROGATES}', "");
+    Expect(0, 57344, '\p{Is_Block= _Low_SURROGATES}', "");
+    Expect(1, 57344, '\p{^Is_Block= _Low_SURROGATES}', "");
+    Expect(1, 57344, '\P{Is_Block= _Low_SURROGATES}', "");
+    Expect(0, 57344, '\P{^Is_Block= _Low_SURROGATES}', "");
+    Error('\p{Is_Blk=_ Low_Surrogates:=}');
+    Error('\P{Is_Blk=_ Low_Surrogates:=}');
     Expect(1, 57343, '\p{Is_Blk=lowsurrogates}', "");
     Expect(0, 57343, '\p{^Is_Blk=lowsurrogates}', "");
     Expect(0, 57343, '\P{Is_Blk=lowsurrogates}', "");
@@ -17438,16 +17958,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Blk=lowsurrogates}', "");
     Expect(1, 57344, '\P{Is_Blk=lowsurrogates}', "");
     Expect(0, 57344, '\P{^Is_Blk=lowsurrogates}', "");
-    Expect(1, 57343, '\p{Is_Blk=_ Low_Surrogates}', "");
-    Expect(0, 57343, '\p{^Is_Blk=_ Low_Surrogates}', "");
-    Expect(0, 57343, '\P{Is_Blk=_ Low_Surrogates}', "");
-    Expect(1, 57343, '\P{^Is_Blk=_ Low_Surrogates}', "");
-    Expect(0, 57344, '\p{Is_Blk=_ Low_Surrogates}', "");
-    Expect(1, 57344, '\p{^Is_Blk=_ Low_Surrogates}', "");
-    Expect(1, 57344, '\P{Is_Blk=_ Low_Surrogates}', "");
-    Expect(0, 57344, '\P{^Is_Blk=_ Low_Surrogates}', "");
-    Error('\p{Block:   := 	LYCIAN}');
-    Error('\P{Block:   := 	LYCIAN}');
+    Expect(1, 57343, '\p{Is_Blk= _Low_Surrogates}', "");
+    Expect(0, 57343, '\p{^Is_Blk= _Low_Surrogates}', "");
+    Expect(0, 57343, '\P{Is_Blk= _Low_Surrogates}', "");
+    Expect(1, 57343, '\P{^Is_Blk= _Low_Surrogates}', "");
+    Expect(0, 57344, '\p{Is_Blk= _Low_Surrogates}', "");
+    Expect(1, 57344, '\p{^Is_Blk= _Low_Surrogates}', "");
+    Expect(1, 57344, '\P{Is_Blk= _Low_Surrogates}', "");
+    Expect(0, 57344, '\P{^Is_Blk= _Low_Surrogates}', "");
+    Error('\p{Block=	LYCIAN/a/}');
+    Error('\P{Block=	LYCIAN/a/}');
     Expect(1, 66207, '\p{Block=:\ALycian\z:}', "");;
     Expect(0, 66208, '\p{Block=:\ALycian\z:}', "");;
     Expect(1, 66207, '\p{Block=lycian}', "");
@@ -17460,16 +17980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66208, '\P{^Block=lycian}', "");
     Expect(1, 66207, '\p{Block=:\Alycian\z:}', "");;
     Expect(0, 66208, '\p{Block=:\Alycian\z:}', "");;
-    Expect(1, 66207, '\p{Block=_lycian}', "");
-    Expect(0, 66207, '\p{^Block=_lycian}', "");
-    Expect(0, 66207, '\P{Block=_lycian}', "");
-    Expect(1, 66207, '\P{^Block=_lycian}', "");
-    Expect(0, 66208, '\p{Block=_lycian}', "");
-    Expect(1, 66208, '\p{^Block=_lycian}', "");
-    Expect(1, 66208, '\P{Block=_lycian}', "");
-    Expect(0, 66208, '\P{^Block=_lycian}', "");
-    Error('\p{Blk=-_LYCIAN/a/}');
-    Error('\P{Blk=-_LYCIAN/a/}');
+    Expect(1, 66207, '\p{Block=	 LYCIAN}', "");
+    Expect(0, 66207, '\p{^Block=	 LYCIAN}', "");
+    Expect(0, 66207, '\P{Block=	 LYCIAN}', "");
+    Expect(1, 66207, '\P{^Block=	 LYCIAN}', "");
+    Expect(0, 66208, '\p{Block=	 LYCIAN}', "");
+    Expect(1, 66208, '\p{^Block=	 LYCIAN}', "");
+    Expect(1, 66208, '\P{Block=	 LYCIAN}', "");
+    Expect(0, 66208, '\P{^Block=	 LYCIAN}', "");
+    Error('\p{Blk=/a/Lycian}');
+    Error('\P{Blk=/a/Lycian}');
     Expect(1, 66207, '\p{Blk=:\ALycian\z:}', "");;
     Expect(0, 66208, '\p{Blk=:\ALycian\z:}', "");;
     Expect(1, 66207, '\p{Blk=lycian}', "");
@@ -17482,34 +18002,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66208, '\P{^Blk=lycian}', "");
     Expect(1, 66207, '\p{Blk=:\Alycian\z:}', "");;
     Expect(0, 66208, '\p{Blk=:\Alycian\z:}', "");;
-    Expect(1, 66207, '\p{Blk=_ lycian}', "");
-    Expect(0, 66207, '\p{^Blk=_ lycian}', "");
-    Expect(0, 66207, '\P{Blk=_ lycian}', "");
-    Expect(1, 66207, '\P{^Blk=_ lycian}', "");
-    Expect(0, 66208, '\p{Blk=_ lycian}', "");
-    Expect(1, 66208, '\p{^Blk=_ lycian}', "");
-    Expect(1, 66208, '\P{Blk=_ lycian}', "");
-    Expect(0, 66208, '\P{^Blk=_ lycian}', "");
-    Error('\p{Is_Block=_Lycian:=}');
-    Error('\P{Is_Block=_Lycian:=}');
-    Expect(1, 66207, '\p{Is_Block=lycian}', "");
-    Expect(0, 66207, '\p{^Is_Block=lycian}', "");
-    Expect(0, 66207, '\P{Is_Block=lycian}', "");
-    Expect(1, 66207, '\P{^Is_Block=lycian}', "");
-    Expect(0, 66208, '\p{Is_Block=lycian}', "");
-    Expect(1, 66208, '\p{^Is_Block=lycian}', "");
-    Expect(1, 66208, '\P{Is_Block=lycian}', "");
-    Expect(0, 66208, '\P{^Is_Block=lycian}', "");
-    Expect(1, 66207, '\p{Is_Block=_Lycian}', "");
-    Expect(0, 66207, '\p{^Is_Block=_Lycian}', "");
-    Expect(0, 66207, '\P{Is_Block=_Lycian}', "");
-    Expect(1, 66207, '\P{^Is_Block=_Lycian}', "");
-    Expect(0, 66208, '\p{Is_Block=_Lycian}', "");
-    Expect(1, 66208, '\p{^Is_Block=_Lycian}', "");
-    Expect(1, 66208, '\P{Is_Block=_Lycian}', "");
-    Expect(0, 66208, '\P{^Is_Block=_Lycian}', "");
-    Error('\p{Is_Blk:	-Lycian/a/}');
-    Error('\P{Is_Blk:	-Lycian/a/}');
+    Expect(1, 66207, '\p{Blk=__lycian}', "");
+    Expect(0, 66207, '\p{^Blk=__lycian}', "");
+    Expect(0, 66207, '\P{Blk=__lycian}', "");
+    Expect(1, 66207, '\P{^Blk=__lycian}', "");
+    Expect(0, 66208, '\p{Blk=__lycian}', "");
+    Expect(1, 66208, '\p{^Blk=__lycian}', "");
+    Expect(1, 66208, '\P{Blk=__lycian}', "");
+    Expect(0, 66208, '\P{^Blk=__lycian}', "");
+    Error('\p{Is_Block=/a/LYCIAN}');
+    Error('\P{Is_Block=/a/LYCIAN}');
+    Expect(1, 66207, '\p{Is_Block:   lycian}', "");
+    Expect(0, 66207, '\p{^Is_Block:   lycian}', "");
+    Expect(0, 66207, '\P{Is_Block:   lycian}', "");
+    Expect(1, 66207, '\P{^Is_Block:   lycian}', "");
+    Expect(0, 66208, '\p{Is_Block:   lycian}', "");
+    Expect(1, 66208, '\p{^Is_Block:   lycian}', "");
+    Expect(1, 66208, '\P{Is_Block:   lycian}', "");
+    Expect(0, 66208, '\P{^Is_Block:   lycian}', "");
+    Expect(1, 66207, '\p{Is_Block=_ LYCIAN}', "");
+    Expect(0, 66207, '\p{^Is_Block=_ LYCIAN}', "");
+    Expect(0, 66207, '\P{Is_Block=_ LYCIAN}', "");
+    Expect(1, 66207, '\P{^Is_Block=_ LYCIAN}', "");
+    Expect(0, 66208, '\p{Is_Block=_ LYCIAN}', "");
+    Expect(1, 66208, '\p{^Is_Block=_ LYCIAN}', "");
+    Expect(1, 66208, '\P{Is_Block=_ LYCIAN}', "");
+    Expect(0, 66208, '\P{^Is_Block=_ LYCIAN}', "");
+    Error('\p{Is_Blk=/a/ Lycian}');
+    Error('\P{Is_Blk=/a/ Lycian}');
     Expect(1, 66207, '\p{Is_Blk=lycian}', "");
     Expect(0, 66207, '\p{^Is_Blk=lycian}', "");
     Expect(0, 66207, '\P{Is_Blk=lycian}', "");
@@ -17518,16 +18038,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66208, '\p{^Is_Blk=lycian}', "");
     Expect(1, 66208, '\P{Is_Blk=lycian}', "");
     Expect(0, 66208, '\P{^Is_Blk=lycian}', "");
-    Expect(1, 66207, '\p{Is_Blk=Lycian}', "");
-    Expect(0, 66207, '\p{^Is_Blk=Lycian}', "");
-    Expect(0, 66207, '\P{Is_Blk=Lycian}', "");
-    Expect(1, 66207, '\P{^Is_Blk=Lycian}', "");
-    Expect(0, 66208, '\p{Is_Blk=Lycian}', "");
-    Expect(1, 66208, '\p{^Is_Blk=Lycian}', "");
-    Expect(1, 66208, '\P{Is_Blk=Lycian}', "");
-    Expect(0, 66208, '\P{^Is_Blk=Lycian}', "");
-    Error('\p{Block=:= _Lydian}');
-    Error('\P{Block=:= _Lydian}');
+    Expect(1, 66207, '\p{Is_Blk=-LYCIAN}', "");
+    Expect(0, 66207, '\p{^Is_Blk=-LYCIAN}', "");
+    Expect(0, 66207, '\P{Is_Blk=-LYCIAN}', "");
+    Expect(1, 66207, '\P{^Is_Blk=-LYCIAN}', "");
+    Expect(0, 66208, '\p{Is_Blk=-LYCIAN}', "");
+    Expect(1, 66208, '\p{^Is_Blk=-LYCIAN}', "");
+    Expect(1, 66208, '\P{Is_Blk=-LYCIAN}', "");
+    Expect(0, 66208, '\P{^Is_Blk=-LYCIAN}', "");
+    Error('\p{Block=/a/Lydian}');
+    Error('\P{Block=/a/Lydian}');
     Expect(1, 67903, '\p{Block=:\ALydian\z:}', "");;
     Expect(0, 67904, '\p{Block=:\ALydian\z:}', "");;
     Expect(1, 67903, '\p{Block=lydian}', "");
@@ -17540,16 +18060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67904, '\P{^Block=lydian}', "");
     Expect(1, 67903, '\p{Block=:\Alydian\z:}', "");;
     Expect(0, 67904, '\p{Block=:\Alydian\z:}', "");;
-    Expect(1, 67903, '\p{Block=_	Lydian}', "");
-    Expect(0, 67903, '\p{^Block=_	Lydian}', "");
-    Expect(0, 67903, '\P{Block=_	Lydian}', "");
-    Expect(1, 67903, '\P{^Block=_	Lydian}', "");
-    Expect(0, 67904, '\p{Block=_	Lydian}', "");
-    Expect(1, 67904, '\p{^Block=_	Lydian}', "");
-    Expect(1, 67904, '\P{Block=_	Lydian}', "");
-    Expect(0, 67904, '\P{^Block=_	Lydian}', "");
-    Error('\p{Blk=_:=lydian}');
-    Error('\P{Blk=_:=lydian}');
+    Expect(1, 67903, '\p{Block:		Lydian}', "");
+    Expect(0, 67903, '\p{^Block:		Lydian}', "");
+    Expect(0, 67903, '\P{Block:		Lydian}', "");
+    Expect(1, 67903, '\P{^Block:		Lydian}', "");
+    Expect(0, 67904, '\p{Block:		Lydian}', "");
+    Expect(1, 67904, '\p{^Block:		Lydian}', "");
+    Expect(1, 67904, '\P{Block:		Lydian}', "");
+    Expect(0, 67904, '\P{^Block:		Lydian}', "");
+    Error('\p{Blk=:=Lydian}');
+    Error('\P{Blk=:=Lydian}');
     Expect(1, 67903, '\p{Blk=:\ALydian\z:}', "");;
     Expect(0, 67904, '\p{Blk=:\ALydian\z:}', "");;
     Expect(1, 67903, '\p{Blk=lydian}', "");
@@ -17562,16 +18082,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67904, '\P{^Blk=lydian}', "");
     Expect(1, 67903, '\p{Blk=:\Alydian\z:}', "");;
     Expect(0, 67904, '\p{Blk=:\Alydian\z:}', "");;
-    Expect(1, 67903, '\p{Blk=	-lydian}', "");
-    Expect(0, 67903, '\p{^Blk=	-lydian}', "");
-    Expect(0, 67903, '\P{Blk=	-lydian}', "");
-    Expect(1, 67903, '\P{^Blk=	-lydian}', "");
-    Expect(0, 67904, '\p{Blk=	-lydian}', "");
-    Expect(1, 67904, '\p{^Blk=	-lydian}', "");
-    Expect(1, 67904, '\P{Blk=	-lydian}', "");
-    Expect(0, 67904, '\P{^Blk=	-lydian}', "");
-    Error('\p{Is_Block=_	Lydian/a/}');
-    Error('\P{Is_Block=_	Lydian/a/}');
+    Expect(1, 67903, '\p{Blk=		Lydian}', "");
+    Expect(0, 67903, '\p{^Blk=		Lydian}', "");
+    Expect(0, 67903, '\P{Blk=		Lydian}', "");
+    Expect(1, 67903, '\P{^Blk=		Lydian}', "");
+    Expect(0, 67904, '\p{Blk=		Lydian}', "");
+    Expect(1, 67904, '\p{^Blk=		Lydian}', "");
+    Expect(1, 67904, '\P{Blk=		Lydian}', "");
+    Expect(0, 67904, '\P{^Blk=		Lydian}', "");
+    Error('\p{Is_Block=/a/__Lydian}');
+    Error('\P{Is_Block=/a/__Lydian}');
     Expect(1, 67903, '\p{Is_Block=lydian}', "");
     Expect(0, 67903, '\p{^Is_Block=lydian}', "");
     Expect(0, 67903, '\P{Is_Block=lydian}', "");
@@ -17580,16 +18100,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67904, '\p{^Is_Block=lydian}', "");
     Expect(1, 67904, '\P{Is_Block=lydian}', "");
     Expect(0, 67904, '\P{^Is_Block=lydian}', "");
-    Expect(1, 67903, '\p{Is_Block=  lydian}', "");
-    Expect(0, 67903, '\p{^Is_Block=  lydian}', "");
-    Expect(0, 67903, '\P{Is_Block=  lydian}', "");
-    Expect(1, 67903, '\P{^Is_Block=  lydian}', "");
-    Expect(0, 67904, '\p{Is_Block=  lydian}', "");
-    Expect(1, 67904, '\p{^Is_Block=  lydian}', "");
-    Expect(1, 67904, '\P{Is_Block=  lydian}', "");
-    Expect(0, 67904, '\P{^Is_Block=  lydian}', "");
-    Error('\p{Is_Blk=:=Lydian}');
-    Error('\P{Is_Blk=:=Lydian}');
+    Expect(1, 67903, '\p{Is_Block=	Lydian}', "");
+    Expect(0, 67903, '\p{^Is_Block=	Lydian}', "");
+    Expect(0, 67903, '\P{Is_Block=	Lydian}', "");
+    Expect(1, 67903, '\P{^Is_Block=	Lydian}', "");
+    Expect(0, 67904, '\p{Is_Block=	Lydian}', "");
+    Expect(1, 67904, '\p{^Is_Block=	Lydian}', "");
+    Expect(1, 67904, '\P{Is_Block=	Lydian}', "");
+    Expect(0, 67904, '\P{^Is_Block=	Lydian}', "");
+    Error('\p{Is_Blk:	-:=lydian}');
+    Error('\P{Is_Blk:	-:=lydian}');
     Expect(1, 67903, '\p{Is_Blk=lydian}', "");
     Expect(0, 67903, '\p{^Is_Blk=lydian}', "");
     Expect(0, 67903, '\P{Is_Blk=lydian}', "");
@@ -17598,16 +18118,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67904, '\p{^Is_Blk=lydian}', "");
     Expect(1, 67904, '\P{Is_Blk=lydian}', "");
     Expect(0, 67904, '\P{^Is_Blk=lydian}', "");
-    Expect(1, 67903, '\p{Is_Blk: _-Lydian}', "");
-    Expect(0, 67903, '\p{^Is_Blk: _-Lydian}', "");
-    Expect(0, 67903, '\P{Is_Blk: _-Lydian}', "");
-    Expect(1, 67903, '\P{^Is_Blk: _-Lydian}', "");
-    Expect(0, 67904, '\p{Is_Blk: _-Lydian}', "");
-    Expect(1, 67904, '\p{^Is_Blk: _-Lydian}', "");
-    Expect(1, 67904, '\P{Is_Blk: _-Lydian}', "");
-    Expect(0, 67904, '\P{^Is_Blk: _-Lydian}', "");
-    Error('\p{Block:   _	Mahajani/a/}');
-    Error('\P{Block:   _	Mahajani/a/}');
+    Expect(1, 67903, '\p{Is_Blk=-Lydian}', "");
+    Expect(0, 67903, '\p{^Is_Blk=-Lydian}', "");
+    Expect(0, 67903, '\P{Is_Blk=-Lydian}', "");
+    Expect(1, 67903, '\P{^Is_Blk=-Lydian}', "");
+    Expect(0, 67904, '\p{Is_Blk=-Lydian}', "");
+    Expect(1, 67904, '\p{^Is_Blk=-Lydian}', "");
+    Expect(1, 67904, '\P{Is_Blk=-Lydian}', "");
+    Expect(0, 67904, '\P{^Is_Blk=-Lydian}', "");
+    Error('\p{Block=:= -MAHAJANI}');
+    Error('\P{Block=:= -MAHAJANI}');
     Expect(1, 70015, '\p{Block=:\AMahajani\z:}', "");;
     Expect(0, 70016, '\p{Block=:\AMahajani\z:}', "");;
     Expect(1, 70015, '\p{Block=mahajani}', "");
@@ -17620,38 +18140,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70016, '\P{^Block=mahajani}', "");
     Expect(1, 70015, '\p{Block=:\Amahajani\z:}', "");;
     Expect(0, 70016, '\p{Block=:\Amahajani\z:}', "");;
-    Expect(1, 70015, '\p{Block=--Mahajani}', "");
-    Expect(0, 70015, '\p{^Block=--Mahajani}', "");
-    Expect(0, 70015, '\P{Block=--Mahajani}', "");
-    Expect(1, 70015, '\P{^Block=--Mahajani}', "");
-    Expect(0, 70016, '\p{Block=--Mahajani}', "");
-    Expect(1, 70016, '\p{^Block=--Mahajani}', "");
-    Expect(1, 70016, '\P{Block=--Mahajani}', "");
-    Expect(0, 70016, '\P{^Block=--Mahajani}', "");
-    Error('\p{Blk=-_Mahajani:=}');
-    Error('\P{Blk=-_Mahajani:=}');
+    Expect(1, 70015, '\p{Block=  Mahajani}', "");
+    Expect(0, 70015, '\p{^Block=  Mahajani}', "");
+    Expect(0, 70015, '\P{Block=  Mahajani}', "");
+    Expect(1, 70015, '\P{^Block=  Mahajani}', "");
+    Expect(0, 70016, '\p{Block=  Mahajani}', "");
+    Expect(1, 70016, '\p{^Block=  Mahajani}', "");
+    Expect(1, 70016, '\P{Block=  Mahajani}', "");
+    Expect(0, 70016, '\P{^Block=  Mahajani}', "");
+    Error('\p{Blk=:=__MAHAJANI}');
+    Error('\P{Blk=:=__MAHAJANI}');
     Expect(1, 70015, '\p{Blk=:\AMahajani\z:}', "");;
     Expect(0, 70016, '\p{Blk=:\AMahajani\z:}', "");;
-    Expect(1, 70015, '\p{Blk: mahajani}', "");
-    Expect(0, 70015, '\p{^Blk: mahajani}', "");
-    Expect(0, 70015, '\P{Blk: mahajani}', "");
-    Expect(1, 70015, '\P{^Blk: mahajani}', "");
-    Expect(0, 70016, '\p{Blk: mahajani}', "");
-    Expect(1, 70016, '\p{^Blk: mahajani}', "");
-    Expect(1, 70016, '\P{Blk: mahajani}', "");
-    Expect(0, 70016, '\P{^Blk: mahajani}', "");
+    Expect(1, 70015, '\p{Blk=mahajani}', "");
+    Expect(0, 70015, '\p{^Blk=mahajani}', "");
+    Expect(0, 70015, '\P{Blk=mahajani}', "");
+    Expect(1, 70015, '\P{^Blk=mahajani}', "");
+    Expect(0, 70016, '\p{Blk=mahajani}', "");
+    Expect(1, 70016, '\p{^Blk=mahajani}', "");
+    Expect(1, 70016, '\P{Blk=mahajani}', "");
+    Expect(0, 70016, '\P{^Blk=mahajani}', "");
     Expect(1, 70015, '\p{Blk=:\Amahajani\z:}', "");;
     Expect(0, 70016, '\p{Blk=:\Amahajani\z:}', "");;
-    Expect(1, 70015, '\p{Blk=_Mahajani}', "");
-    Expect(0, 70015, '\p{^Blk=_Mahajani}', "");
-    Expect(0, 70015, '\P{Blk=_Mahajani}', "");
-    Expect(1, 70015, '\P{^Blk=_Mahajani}', "");
-    Expect(0, 70016, '\p{Blk=_Mahajani}', "");
-    Expect(1, 70016, '\p{^Blk=_Mahajani}', "");
-    Expect(1, 70016, '\P{Blk=_Mahajani}', "");
-    Expect(0, 70016, '\P{^Blk=_Mahajani}', "");
-    Error('\p{Is_Block=- Mahajani:=}');
-    Error('\P{Is_Block=- Mahajani:=}');
+    Expect(1, 70015, '\p{Blk=	 Mahajani}', "");
+    Expect(0, 70015, '\p{^Blk=	 Mahajani}', "");
+    Expect(0, 70015, '\P{Blk=	 Mahajani}', "");
+    Expect(1, 70015, '\P{^Blk=	 Mahajani}', "");
+    Expect(0, 70016, '\p{Blk=	 Mahajani}', "");
+    Expect(1, 70016, '\p{^Blk=	 Mahajani}', "");
+    Expect(1, 70016, '\P{Blk=	 Mahajani}', "");
+    Expect(0, 70016, '\P{^Blk=	 Mahajani}', "");
+    Error('\p{Is_Block=/a/  mahajani}');
+    Error('\P{Is_Block=/a/  mahajani}');
     Expect(1, 70015, '\p{Is_Block=mahajani}', "");
     Expect(0, 70015, '\p{^Is_Block=mahajani}', "");
     Expect(0, 70015, '\P{Is_Block=mahajani}', "");
@@ -17660,16 +18180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70016, '\p{^Is_Block=mahajani}', "");
     Expect(1, 70016, '\P{Is_Block=mahajani}', "");
     Expect(0, 70016, '\P{^Is_Block=mahajani}', "");
-    Expect(1, 70015, '\p{Is_Block=-mahajani}', "");
-    Expect(0, 70015, '\p{^Is_Block=-mahajani}', "");
-    Expect(0, 70015, '\P{Is_Block=-mahajani}', "");
-    Expect(1, 70015, '\P{^Is_Block=-mahajani}', "");
-    Expect(0, 70016, '\p{Is_Block=-mahajani}', "");
-    Expect(1, 70016, '\p{^Is_Block=-mahajani}', "");
-    Expect(1, 70016, '\P{Is_Block=-mahajani}', "");
-    Expect(0, 70016, '\P{^Is_Block=-mahajani}', "");
-    Error('\p{Is_Blk= :=Mahajani}');
-    Error('\P{Is_Blk= :=Mahajani}');
+    Expect(1, 70015, '\p{Is_Block=_mahajani}', "");
+    Expect(0, 70015, '\p{^Is_Block=_mahajani}', "");
+    Expect(0, 70015, '\P{Is_Block=_mahajani}', "");
+    Expect(1, 70015, '\P{^Is_Block=_mahajani}', "");
+    Expect(0, 70016, '\p{Is_Block=_mahajani}', "");
+    Expect(1, 70016, '\p{^Is_Block=_mahajani}', "");
+    Expect(1, 70016, '\P{Is_Block=_mahajani}', "");
+    Expect(0, 70016, '\P{^Is_Block=_mahajani}', "");
+    Error('\p{Is_Blk= /a/Mahajani}');
+    Error('\P{Is_Blk= /a/Mahajani}');
     Expect(1, 70015, '\p{Is_Blk=mahajani}', "");
     Expect(0, 70015, '\p{^Is_Blk=mahajani}', "");
     Expect(0, 70015, '\P{Is_Blk=mahajani}', "");
@@ -17678,16 +18198,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70016, '\p{^Is_Blk=mahajani}', "");
     Expect(1, 70016, '\P{Is_Blk=mahajani}', "");
     Expect(0, 70016, '\P{^Is_Blk=mahajani}', "");
-    Expect(1, 70015, '\p{Is_Blk=_ Mahajani}', "");
-    Expect(0, 70015, '\p{^Is_Blk=_ Mahajani}', "");
-    Expect(0, 70015, '\P{Is_Blk=_ Mahajani}', "");
-    Expect(1, 70015, '\P{^Is_Blk=_ Mahajani}', "");
-    Expect(0, 70016, '\p{Is_Blk=_ Mahajani}', "");
-    Expect(1, 70016, '\p{^Is_Blk=_ Mahajani}', "");
-    Expect(1, 70016, '\P{Is_Blk=_ Mahajani}', "");
-    Expect(0, 70016, '\P{^Is_Blk=_ Mahajani}', "");
-    Error('\p{Block:	:=_ MAHJONG_tiles}');
-    Error('\P{Block:	:=_ MAHJONG_tiles}');
+    Expect(1, 70015, '\p{Is_Blk=_	Mahajani}', "");
+    Expect(0, 70015, '\p{^Is_Blk=_	Mahajani}', "");
+    Expect(0, 70015, '\P{Is_Blk=_	Mahajani}', "");
+    Expect(1, 70015, '\P{^Is_Blk=_	Mahajani}', "");
+    Expect(0, 70016, '\p{Is_Blk=_	Mahajani}', "");
+    Expect(1, 70016, '\p{^Is_Blk=_	Mahajani}', "");
+    Expect(1, 70016, '\P{Is_Blk=_	Mahajani}', "");
+    Expect(0, 70016, '\P{^Is_Blk=_	Mahajani}', "");
+    Error('\p{Block=:=_	Mahjong_TILES}');
+    Error('\P{Block=:=_	Mahjong_TILES}');
     Expect(1, 127023, '\p{Block=:\AMahjong_Tiles\z:}', "");;
     Expect(0, 127024, '\p{Block=:\AMahjong_Tiles\z:}', "");;
     Expect(1, 127023, '\p{Block=mahjongtiles}', "");
@@ -17700,16 +18220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127024, '\P{^Block=mahjongtiles}', "");
     Expect(1, 127023, '\p{Block=:\Amahjongtiles\z:}', "");;
     Expect(0, 127024, '\p{Block=:\Amahjongtiles\z:}', "");;
-    Expect(1, 127023, '\p{Block=_	Mahjong_Tiles}', "");
-    Expect(0, 127023, '\p{^Block=_	Mahjong_Tiles}', "");
-    Expect(0, 127023, '\P{Block=_	Mahjong_Tiles}', "");
-    Expect(1, 127023, '\P{^Block=_	Mahjong_Tiles}', "");
-    Expect(0, 127024, '\p{Block=_	Mahjong_Tiles}', "");
-    Expect(1, 127024, '\p{^Block=_	Mahjong_Tiles}', "");
-    Expect(1, 127024, '\P{Block=_	Mahjong_Tiles}', "");
-    Expect(0, 127024, '\P{^Block=_	Mahjong_Tiles}', "");
-    Error('\p{Blk=_	Mahjong:=}');
-    Error('\P{Blk=_	Mahjong:=}');
+    Expect(1, 127023, '\p{Block= -mahjong_tiles}', "");
+    Expect(0, 127023, '\p{^Block= -mahjong_tiles}', "");
+    Expect(0, 127023, '\P{Block= -mahjong_tiles}', "");
+    Expect(1, 127023, '\P{^Block= -mahjong_tiles}', "");
+    Expect(0, 127024, '\p{Block= -mahjong_tiles}', "");
+    Expect(1, 127024, '\p{^Block= -mahjong_tiles}', "");
+    Expect(1, 127024, '\P{Block= -mahjong_tiles}', "");
+    Expect(0, 127024, '\P{^Block= -mahjong_tiles}', "");
+    Error('\p{Blk=_:=Mahjong}');
+    Error('\P{Blk=_:=Mahjong}');
     Expect(1, 127023, '\p{Blk=:\AMahjong\z:}', "");;
     Expect(0, 127024, '\p{Blk=:\AMahjong\z:}', "");;
     Expect(1, 127023, '\p{Blk=mahjong}', "");
@@ -17722,52 +18242,44 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127024, '\P{^Blk=mahjong}', "");
     Expect(1, 127023, '\p{Blk=:\Amahjong\z:}', "");;
     Expect(0, 127024, '\p{Blk=:\Amahjong\z:}', "");;
-    Expect(1, 127023, '\p{Blk=-	Mahjong}', "");
-    Expect(0, 127023, '\p{^Blk=-	Mahjong}', "");
-    Expect(0, 127023, '\P{Blk=-	Mahjong}', "");
-    Expect(1, 127023, '\P{^Blk=-	Mahjong}', "");
-    Expect(0, 127024, '\p{Blk=-	Mahjong}', "");
-    Expect(1, 127024, '\p{^Blk=-	Mahjong}', "");
-    Expect(1, 127024, '\P{Blk=-	Mahjong}', "");
-    Expect(0, 127024, '\P{^Blk=-	Mahjong}', "");
-    Error('\p{Is_Block: 	/a/Mahjong_Tiles}');
-    Error('\P{Is_Block: 	/a/Mahjong_Tiles}');
-    Expect(1, 127023, '\p{Is_Block:	mahjongtiles}', "");
-    Expect(0, 127023, '\p{^Is_Block:	mahjongtiles}', "");
-    Expect(0, 127023, '\P{Is_Block:	mahjongtiles}', "");
-    Expect(1, 127023, '\P{^Is_Block:	mahjongtiles}', "");
-    Expect(0, 127024, '\p{Is_Block:	mahjongtiles}', "");
-    Expect(1, 127024, '\p{^Is_Block:	mahjongtiles}', "");
-    Expect(1, 127024, '\P{Is_Block:	mahjongtiles}', "");
-    Expect(0, 127024, '\P{^Is_Block:	mahjongtiles}', "");
-    Expect(1, 127023, '\p{Is_Block= _Mahjong_Tiles}', "");
-    Expect(0, 127023, '\p{^Is_Block= _Mahjong_Tiles}', "");
-    Expect(0, 127023, '\P{Is_Block= _Mahjong_Tiles}', "");
-    Expect(1, 127023, '\P{^Is_Block= _Mahjong_Tiles}', "");
-    Expect(0, 127024, '\p{Is_Block= _Mahjong_Tiles}', "");
-    Expect(1, 127024, '\p{^Is_Block= _Mahjong_Tiles}', "");
-    Expect(1, 127024, '\P{Is_Block= _Mahjong_Tiles}', "");
-    Expect(0, 127024, '\P{^Is_Block= _Mahjong_Tiles}', "");
-    Error('\p{Is_Blk=-_MAHJONG:=}');
-    Error('\P{Is_Blk=-_MAHJONG:=}');
-    Expect(1, 127023, '\p{Is_Blk=mahjong}', "");
-    Expect(0, 127023, '\p{^Is_Blk=mahjong}', "");
-    Expect(0, 127023, '\P{Is_Blk=mahjong}', "");
-    Expect(1, 127023, '\P{^Is_Blk=mahjong}', "");
-    Expect(0, 127024, '\p{Is_Blk=mahjong}', "");
-    Expect(1, 127024, '\p{^Is_Blk=mahjong}', "");
-    Expect(1, 127024, '\P{Is_Blk=mahjong}', "");
-    Expect(0, 127024, '\P{^Is_Blk=mahjong}', "");
-    Expect(1, 127023, '\p{Is_Blk= mahjong}', "");
-    Expect(0, 127023, '\p{^Is_Blk= mahjong}', "");
-    Expect(0, 127023, '\P{Is_Blk= mahjong}', "");
-    Expect(1, 127023, '\P{^Is_Blk= mahjong}', "");
-    Expect(0, 127024, '\p{Is_Blk= mahjong}', "");
-    Expect(1, 127024, '\p{^Is_Blk= mahjong}', "");
-    Expect(1, 127024, '\P{Is_Blk= mahjong}', "");
-    Expect(0, 127024, '\P{^Is_Blk= mahjong}', "");
-    Error('\p{Block=/a/Makasar}');
-    Error('\P{Block=/a/Makasar}');
+    Error('\p{Is_Block= 	Mahjong_Tiles:=}');
+    Error('\P{Is_Block= 	Mahjong_Tiles:=}');
+    Expect(1, 127023, '\p{Is_Block=mahjongtiles}', "");
+    Expect(0, 127023, '\p{^Is_Block=mahjongtiles}', "");
+    Expect(0, 127023, '\P{Is_Block=mahjongtiles}', "");
+    Expect(1, 127023, '\P{^Is_Block=mahjongtiles}', "");
+    Expect(0, 127024, '\p{Is_Block=mahjongtiles}', "");
+    Expect(1, 127024, '\p{^Is_Block=mahjongtiles}', "");
+    Expect(1, 127024, '\P{Is_Block=mahjongtiles}', "");
+    Expect(0, 127024, '\P{^Is_Block=mahjongtiles}', "");
+    Expect(1, 127023, '\p{Is_Block=-	Mahjong_Tiles}', "");
+    Expect(0, 127023, '\p{^Is_Block=-	Mahjong_Tiles}', "");
+    Expect(0, 127023, '\P{Is_Block=-	Mahjong_Tiles}', "");
+    Expect(1, 127023, '\P{^Is_Block=-	Mahjong_Tiles}', "");
+    Expect(0, 127024, '\p{Is_Block=-	Mahjong_Tiles}', "");
+    Expect(1, 127024, '\p{^Is_Block=-	Mahjong_Tiles}', "");
+    Expect(1, 127024, '\P{Is_Block=-	Mahjong_Tiles}', "");
+    Expect(0, 127024, '\P{^Is_Block=-	Mahjong_Tiles}', "");
+    Error('\p{Is_Blk=-mahjong:=}');
+    Error('\P{Is_Blk=-mahjong:=}');
+    Expect(1, 127023, '\p{Is_Blk:   mahjong}', "");
+    Expect(0, 127023, '\p{^Is_Blk:   mahjong}', "");
+    Expect(0, 127023, '\P{Is_Blk:   mahjong}', "");
+    Expect(1, 127023, '\P{^Is_Blk:   mahjong}', "");
+    Expect(0, 127024, '\p{Is_Blk:   mahjong}', "");
+    Expect(1, 127024, '\p{^Is_Blk:   mahjong}', "");
+    Expect(1, 127024, '\P{Is_Blk:   mahjong}', "");
+    Expect(0, 127024, '\P{^Is_Blk:   mahjong}', "");
+    Expect(1, 127023, '\p{Is_Blk=	MAHJONG}', "");
+    Expect(0, 127023, '\p{^Is_Blk=	MAHJONG}', "");
+    Expect(0, 127023, '\P{Is_Blk=	MAHJONG}', "");
+    Expect(1, 127023, '\P{^Is_Blk=	MAHJONG}', "");
+    Expect(0, 127024, '\p{Is_Blk=	MAHJONG}', "");
+    Expect(1, 127024, '\p{^Is_Blk=	MAHJONG}', "");
+    Expect(1, 127024, '\P{Is_Blk=	MAHJONG}', "");
+    Expect(0, 127024, '\P{^Is_Blk=	MAHJONG}', "");
+    Error('\p{Block=		Makasar/a/}');
+    Error('\P{Block=		Makasar/a/}');
     Expect(1, 73471, '\p{Block=:\AMakasar\z:}', "");;
     Expect(0, 73472, '\p{Block=:\AMakasar\z:}', "");;
     Expect(1, 73471, '\p{Block=makasar}', "");
@@ -17780,16 +18292,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73472, '\P{^Block=makasar}', "");
     Expect(1, 73471, '\p{Block=:\Amakasar\z:}', "");;
     Expect(0, 73472, '\p{Block=:\Amakasar\z:}', "");;
-    Expect(1, 73471, '\p{Block=-_MAKASAR}', "");
-    Expect(0, 73471, '\p{^Block=-_MAKASAR}', "");
-    Expect(0, 73471, '\P{Block=-_MAKASAR}', "");
-    Expect(1, 73471, '\P{^Block=-_MAKASAR}', "");
-    Expect(0, 73472, '\p{Block=-_MAKASAR}', "");
-    Expect(1, 73472, '\p{^Block=-_MAKASAR}', "");
-    Expect(1, 73472, '\P{Block=-_MAKASAR}', "");
-    Expect(0, 73472, '\P{^Block=-_MAKASAR}', "");
-    Error('\p{Blk:/a/		Makasar}');
-    Error('\P{Blk:/a/		Makasar}');
+    Expect(1, 73471, '\p{Block=-makasar}', "");
+    Expect(0, 73471, '\p{^Block=-makasar}', "");
+    Expect(0, 73471, '\P{Block=-makasar}', "");
+    Expect(1, 73471, '\P{^Block=-makasar}', "");
+    Expect(0, 73472, '\p{Block=-makasar}', "");
+    Expect(1, 73472, '\p{^Block=-makasar}', "");
+    Expect(1, 73472, '\P{Block=-makasar}', "");
+    Expect(0, 73472, '\P{^Block=-makasar}', "");
+    Error('\p{Blk= MAKASAR/a/}');
+    Error('\P{Blk= MAKASAR/a/}');
     Expect(1, 73471, '\p{Blk=:\AMakasar\z:}', "");;
     Expect(0, 73472, '\p{Blk=:\AMakasar\z:}', "");;
     Expect(1, 73471, '\p{Blk=makasar}', "");
@@ -17802,16 +18314,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73472, '\P{^Blk=makasar}', "");
     Expect(1, 73471, '\p{Blk=:\Amakasar\z:}', "");;
     Expect(0, 73472, '\p{Blk=:\Amakasar\z:}', "");;
-    Expect(1, 73471, '\p{Blk=__Makasar}', "");
-    Expect(0, 73471, '\p{^Blk=__Makasar}', "");
-    Expect(0, 73471, '\P{Blk=__Makasar}', "");
-    Expect(1, 73471, '\P{^Blk=__Makasar}', "");
-    Expect(0, 73472, '\p{Blk=__Makasar}', "");
-    Expect(1, 73472, '\p{^Blk=__Makasar}', "");
-    Expect(1, 73472, '\P{Blk=__Makasar}', "");
-    Expect(0, 73472, '\P{^Blk=__Makasar}', "");
-    Error('\p{Is_Block=	-makasar/a/}');
-    Error('\P{Is_Block=	-makasar/a/}');
+    Expect(1, 73471, '\p{Blk=-Makasar}', "");
+    Expect(0, 73471, '\p{^Blk=-Makasar}', "");
+    Expect(0, 73471, '\P{Blk=-Makasar}', "");
+    Expect(1, 73471, '\P{^Blk=-Makasar}', "");
+    Expect(0, 73472, '\p{Blk=-Makasar}', "");
+    Expect(1, 73472, '\p{^Blk=-Makasar}', "");
+    Expect(1, 73472, '\P{Blk=-Makasar}', "");
+    Expect(0, 73472, '\P{^Blk=-Makasar}', "");
+    Error('\p{Is_Block= Makasar:=}');
+    Error('\P{Is_Block= Makasar:=}');
     Expect(1, 73471, '\p{Is_Block=makasar}', "");
     Expect(0, 73471, '\p{^Is_Block=makasar}', "");
     Expect(0, 73471, '\P{Is_Block=makasar}', "");
@@ -17820,34 +18332,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73472, '\p{^Is_Block=makasar}', "");
     Expect(1, 73472, '\P{Is_Block=makasar}', "");
     Expect(0, 73472, '\P{^Is_Block=makasar}', "");
-    Expect(1, 73471, '\p{Is_Block:	MAKASAR}', "");
-    Expect(0, 73471, '\p{^Is_Block:	MAKASAR}', "");
-    Expect(0, 73471, '\P{Is_Block:	MAKASAR}', "");
-    Expect(1, 73471, '\P{^Is_Block:	MAKASAR}', "");
-    Expect(0, 73472, '\p{Is_Block:	MAKASAR}', "");
-    Expect(1, 73472, '\p{^Is_Block:	MAKASAR}', "");
-    Expect(1, 73472, '\P{Is_Block:	MAKASAR}', "");
-    Expect(0, 73472, '\P{^Is_Block:	MAKASAR}', "");
-    Error('\p{Is_Blk=/a/Makasar}');
-    Error('\P{Is_Blk=/a/Makasar}');
-    Expect(1, 73471, '\p{Is_Blk=makasar}', "");
-    Expect(0, 73471, '\p{^Is_Blk=makasar}', "");
-    Expect(0, 73471, '\P{Is_Blk=makasar}', "");
-    Expect(1, 73471, '\P{^Is_Blk=makasar}', "");
-    Expect(0, 73472, '\p{Is_Blk=makasar}', "");
-    Expect(1, 73472, '\p{^Is_Blk=makasar}', "");
-    Expect(1, 73472, '\P{Is_Blk=makasar}', "");
-    Expect(0, 73472, '\P{^Is_Blk=makasar}', "");
-    Expect(1, 73471, '\p{Is_Blk:   -Makasar}', "");
-    Expect(0, 73471, '\p{^Is_Blk:   -Makasar}', "");
-    Expect(0, 73471, '\P{Is_Blk:   -Makasar}', "");
-    Expect(1, 73471, '\P{^Is_Blk:   -Makasar}', "");
-    Expect(0, 73472, '\p{Is_Blk:   -Makasar}', "");
-    Expect(1, 73472, '\p{^Is_Blk:   -Makasar}', "");
-    Expect(1, 73472, '\P{Is_Blk:   -Makasar}', "");
-    Expect(0, 73472, '\P{^Is_Blk:   -Makasar}', "");
-    Error('\p{Block= -Malayalam:=}');
-    Error('\P{Block= -Malayalam:=}');
+    Expect(1, 73471, '\p{Is_Block:  makasar}', "");
+    Expect(0, 73471, '\p{^Is_Block:  makasar}', "");
+    Expect(0, 73471, '\P{Is_Block:  makasar}', "");
+    Expect(1, 73471, '\P{^Is_Block:  makasar}', "");
+    Expect(0, 73472, '\p{Is_Block:  makasar}', "");
+    Expect(1, 73472, '\p{^Is_Block:  makasar}', "");
+    Expect(1, 73472, '\P{Is_Block:  makasar}', "");
+    Expect(0, 73472, '\P{^Is_Block:  makasar}', "");
+    Error('\p{Is_Blk=-	MAKASAR/a/}');
+    Error('\P{Is_Blk=-	MAKASAR/a/}');
+    Expect(1, 73471, '\p{Is_Blk:makasar}', "");
+    Expect(0, 73471, '\p{^Is_Blk:makasar}', "");
+    Expect(0, 73471, '\P{Is_Blk:makasar}', "");
+    Expect(1, 73471, '\P{^Is_Blk:makasar}', "");
+    Expect(0, 73472, '\p{Is_Blk:makasar}', "");
+    Expect(1, 73472, '\p{^Is_Blk:makasar}', "");
+    Expect(1, 73472, '\P{Is_Blk:makasar}', "");
+    Expect(0, 73472, '\P{^Is_Blk:makasar}', "");
+    Expect(1, 73471, '\p{Is_Blk=	Makasar}', "");
+    Expect(0, 73471, '\p{^Is_Blk=	Makasar}', "");
+    Expect(0, 73471, '\P{Is_Blk=	Makasar}', "");
+    Expect(1, 73471, '\P{^Is_Blk=	Makasar}', "");
+    Expect(0, 73472, '\p{Is_Blk=	Makasar}', "");
+    Expect(1, 73472, '\p{^Is_Blk=	Makasar}', "");
+    Expect(1, 73472, '\P{Is_Blk=	Makasar}', "");
+    Expect(0, 73472, '\P{^Is_Blk=	Makasar}', "");
+    Error('\p{Block=/a/	MALAYALAM}');
+    Error('\P{Block=/a/	MALAYALAM}');
     Expect(1, 3455, '\p{Block=:\AMalayalam\z:}', "");;
     Expect(0, 3456, '\p{Block=:\AMalayalam\z:}', "");;
     Expect(1, 3455, '\p{Block=malayalam}', "");
@@ -17860,16 +18372,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3456, '\P{^Block=malayalam}', "");
     Expect(1, 3455, '\p{Block=:\Amalayalam\z:}', "");;
     Expect(0, 3456, '\p{Block=:\Amalayalam\z:}', "");;
-    Expect(1, 3455, '\p{Block=_	Malayalam}', "");
-    Expect(0, 3455, '\p{^Block=_	Malayalam}', "");
-    Expect(0, 3455, '\P{Block=_	Malayalam}', "");
-    Expect(1, 3455, '\P{^Block=_	Malayalam}', "");
-    Expect(0, 3456, '\p{Block=_	Malayalam}', "");
-    Expect(1, 3456, '\p{^Block=_	Malayalam}', "");
-    Expect(1, 3456, '\P{Block=_	Malayalam}', "");
-    Expect(0, 3456, '\P{^Block=_	Malayalam}', "");
-    Error('\p{Blk=	_Malayalam:=}');
-    Error('\P{Blk=	_Malayalam:=}');
+    Expect(1, 3455, '\p{Block= Malayalam}', "");
+    Expect(0, 3455, '\p{^Block= Malayalam}', "");
+    Expect(0, 3455, '\P{Block= Malayalam}', "");
+    Expect(1, 3455, '\P{^Block= Malayalam}', "");
+    Expect(0, 3456, '\p{Block= Malayalam}', "");
+    Expect(1, 3456, '\p{^Block= Malayalam}', "");
+    Expect(1, 3456, '\P{Block= Malayalam}', "");
+    Expect(0, 3456, '\P{^Block= Malayalam}', "");
+    Error('\p{Blk=_ Malayalam:=}');
+    Error('\P{Blk=_ Malayalam:=}');
     Expect(1, 3455, '\p{Blk=:\AMalayalam\z:}', "");;
     Expect(0, 3456, '\p{Blk=:\AMalayalam\z:}', "");;
     Expect(1, 3455, '\p{Blk=malayalam}', "");
@@ -17882,34 +18394,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3456, '\P{^Blk=malayalam}', "");
     Expect(1, 3455, '\p{Blk=:\Amalayalam\z:}', "");;
     Expect(0, 3456, '\p{Blk=:\Amalayalam\z:}', "");;
-    Expect(1, 3455, '\p{Blk= 	Malayalam}', "");
-    Expect(0, 3455, '\p{^Blk= 	Malayalam}', "");
-    Expect(0, 3455, '\P{Blk= 	Malayalam}', "");
-    Expect(1, 3455, '\P{^Blk= 	Malayalam}', "");
-    Expect(0, 3456, '\p{Blk= 	Malayalam}', "");
-    Expect(1, 3456, '\p{^Blk= 	Malayalam}', "");
-    Expect(1, 3456, '\P{Blk= 	Malayalam}', "");
-    Expect(0, 3456, '\P{^Blk= 	Malayalam}', "");
-    Error('\p{Is_Block=	:=MALAYALAM}');
-    Error('\P{Is_Block=	:=MALAYALAM}');
-    Expect(1, 3455, '\p{Is_Block: malayalam}', "");
-    Expect(0, 3455, '\p{^Is_Block: malayalam}', "");
-    Expect(0, 3455, '\P{Is_Block: malayalam}', "");
-    Expect(1, 3455, '\P{^Is_Block: malayalam}', "");
-    Expect(0, 3456, '\p{Is_Block: malayalam}', "");
-    Expect(1, 3456, '\p{^Is_Block: malayalam}', "");
-    Expect(1, 3456, '\P{Is_Block: malayalam}', "");
-    Expect(0, 3456, '\P{^Is_Block: malayalam}', "");
-    Expect(1, 3455, '\p{Is_Block=		Malayalam}', "");
-    Expect(0, 3455, '\p{^Is_Block=		Malayalam}', "");
-    Expect(0, 3455, '\P{Is_Block=		Malayalam}', "");
-    Expect(1, 3455, '\P{^Is_Block=		Malayalam}', "");
-    Expect(0, 3456, '\p{Is_Block=		Malayalam}', "");
-    Expect(1, 3456, '\p{^Is_Block=		Malayalam}', "");
-    Expect(1, 3456, '\P{Is_Block=		Malayalam}', "");
-    Expect(0, 3456, '\P{^Is_Block=		Malayalam}', "");
-    Error('\p{Is_Blk= _Malayalam:=}');
-    Error('\P{Is_Blk= _Malayalam:=}');
+    Expect(1, 3455, '\p{Blk=	Malayalam}', "");
+    Expect(0, 3455, '\p{^Blk=	Malayalam}', "");
+    Expect(0, 3455, '\P{Blk=	Malayalam}', "");
+    Expect(1, 3455, '\P{^Blk=	Malayalam}', "");
+    Expect(0, 3456, '\p{Blk=	Malayalam}', "");
+    Expect(1, 3456, '\p{^Blk=	Malayalam}', "");
+    Expect(1, 3456, '\P{Blk=	Malayalam}', "");
+    Expect(0, 3456, '\P{^Blk=	Malayalam}', "");
+    Error('\p{Is_Block=/a/malayalam}');
+    Error('\P{Is_Block=/a/malayalam}');
+    Expect(1, 3455, '\p{Is_Block:malayalam}', "");
+    Expect(0, 3455, '\p{^Is_Block:malayalam}', "");
+    Expect(0, 3455, '\P{Is_Block:malayalam}', "");
+    Expect(1, 3455, '\P{^Is_Block:malayalam}', "");
+    Expect(0, 3456, '\p{Is_Block:malayalam}', "");
+    Expect(1, 3456, '\p{^Is_Block:malayalam}', "");
+    Expect(1, 3456, '\P{Is_Block:malayalam}', "");
+    Expect(0, 3456, '\P{^Is_Block:malayalam}', "");
+    Expect(1, 3455, '\p{Is_Block=	Malayalam}', "");
+    Expect(0, 3455, '\p{^Is_Block=	Malayalam}', "");
+    Expect(0, 3455, '\P{Is_Block=	Malayalam}', "");
+    Expect(1, 3455, '\P{^Is_Block=	Malayalam}', "");
+    Expect(0, 3456, '\p{Is_Block=	Malayalam}', "");
+    Expect(1, 3456, '\p{^Is_Block=	Malayalam}', "");
+    Expect(1, 3456, '\P{Is_Block=	Malayalam}', "");
+    Expect(0, 3456, '\P{^Is_Block=	Malayalam}', "");
+    Error('\p{Is_Blk=:=MALAYALAM}');
+    Error('\P{Is_Blk=:=MALAYALAM}');
     Expect(1, 3455, '\p{Is_Blk=malayalam}', "");
     Expect(0, 3455, '\p{^Is_Blk=malayalam}', "");
     Expect(0, 3455, '\P{Is_Blk=malayalam}', "");
@@ -17918,78 +18430,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3456, '\p{^Is_Blk=malayalam}', "");
     Expect(1, 3456, '\P{Is_Blk=malayalam}', "");
     Expect(0, 3456, '\P{^Is_Blk=malayalam}', "");
-    Expect(1, 3455, '\p{Is_Blk=	 malayalam}', "");
-    Expect(0, 3455, '\p{^Is_Blk=	 malayalam}', "");
-    Expect(0, 3455, '\P{Is_Blk=	 malayalam}', "");
-    Expect(1, 3455, '\P{^Is_Blk=	 malayalam}', "");
-    Expect(0, 3456, '\p{Is_Blk=	 malayalam}', "");
-    Expect(1, 3456, '\p{^Is_Blk=	 malayalam}', "");
-    Expect(1, 3456, '\P{Is_Blk=	 malayalam}', "");
-    Expect(0, 3456, '\P{^Is_Blk=	 malayalam}', "");
-    Error('\p{Block= Mandaic/a/}');
-    Error('\P{Block= Mandaic/a/}');
+    Expect(1, 3455, '\p{Is_Blk=-_malayalam}', "");
+    Expect(0, 3455, '\p{^Is_Blk=-_malayalam}', "");
+    Expect(0, 3455, '\P{Is_Blk=-_malayalam}', "");
+    Expect(1, 3455, '\P{^Is_Blk=-_malayalam}', "");
+    Expect(0, 3456, '\p{Is_Blk=-_malayalam}', "");
+    Expect(1, 3456, '\p{^Is_Blk=-_malayalam}', "");
+    Expect(1, 3456, '\P{Is_Blk=-_malayalam}', "");
+    Expect(0, 3456, '\P{^Is_Blk=-_malayalam}', "");
+    Error('\p{Block= /a/Mandaic}');
+    Error('\P{Block= /a/Mandaic}');
     Expect(1, 2143, '\p{Block=:\AMandaic\z:}', "");;
     Expect(0, 2144, '\p{Block=:\AMandaic\z:}', "");;
-    Expect(1, 2143, '\p{Block=mandaic}', "");
-    Expect(0, 2143, '\p{^Block=mandaic}', "");
-    Expect(0, 2143, '\P{Block=mandaic}', "");
-    Expect(1, 2143, '\P{^Block=mandaic}', "");
-    Expect(0, 2144, '\p{Block=mandaic}', "");
-    Expect(1, 2144, '\p{^Block=mandaic}', "");
-    Expect(1, 2144, '\P{Block=mandaic}', "");
-    Expect(0, 2144, '\P{^Block=mandaic}', "");
+    Expect(1, 2143, '\p{Block:	mandaic}', "");
+    Expect(0, 2143, '\p{^Block:	mandaic}', "");
+    Expect(0, 2143, '\P{Block:	mandaic}', "");
+    Expect(1, 2143, '\P{^Block:	mandaic}', "");
+    Expect(0, 2144, '\p{Block:	mandaic}', "");
+    Expect(1, 2144, '\p{^Block:	mandaic}', "");
+    Expect(1, 2144, '\P{Block:	mandaic}', "");
+    Expect(0, 2144, '\P{^Block:	mandaic}', "");
     Expect(1, 2143, '\p{Block=:\Amandaic\z:}', "");;
     Expect(0, 2144, '\p{Block=:\Amandaic\z:}', "");;
-    Expect(1, 2143, '\p{Block=	Mandaic}', "");
-    Expect(0, 2143, '\p{^Block=	Mandaic}', "");
-    Expect(0, 2143, '\P{Block=	Mandaic}', "");
-    Expect(1, 2143, '\P{^Block=	Mandaic}', "");
-    Expect(0, 2144, '\p{Block=	Mandaic}', "");
-    Expect(1, 2144, '\p{^Block=	Mandaic}', "");
-    Expect(1, 2144, '\P{Block=	Mandaic}', "");
-    Expect(0, 2144, '\P{^Block=	Mandaic}', "");
-    Error('\p{Blk=		Mandaic/a/}');
-    Error('\P{Blk=		Mandaic/a/}');
+    Expect(1, 2143, '\p{Block=		MANDAIC}', "");
+    Expect(0, 2143, '\p{^Block=		MANDAIC}', "");
+    Expect(0, 2143, '\P{Block=		MANDAIC}', "");
+    Expect(1, 2143, '\P{^Block=		MANDAIC}', "");
+    Expect(0, 2144, '\p{Block=		MANDAIC}', "");
+    Expect(1, 2144, '\p{^Block=		MANDAIC}', "");
+    Expect(1, 2144, '\P{Block=		MANDAIC}', "");
+    Expect(0, 2144, '\P{^Block=		MANDAIC}', "");
+    Error('\p{Blk= /a/Mandaic}');
+    Error('\P{Blk= /a/Mandaic}');
     Expect(1, 2143, '\p{Blk=:\AMandaic\z:}', "");;
     Expect(0, 2144, '\p{Blk=:\AMandaic\z:}', "");;
-    Expect(1, 2143, '\p{Blk=mandaic}', "");
-    Expect(0, 2143, '\p{^Blk=mandaic}', "");
-    Expect(0, 2143, '\P{Blk=mandaic}', "");
-    Expect(1, 2143, '\P{^Blk=mandaic}', "");
-    Expect(0, 2144, '\p{Blk=mandaic}', "");
-    Expect(1, 2144, '\p{^Blk=mandaic}', "");
-    Expect(1, 2144, '\P{Blk=mandaic}', "");
-    Expect(0, 2144, '\P{^Blk=mandaic}', "");
+    Expect(1, 2143, '\p{Blk: mandaic}', "");
+    Expect(0, 2143, '\p{^Blk: mandaic}', "");
+    Expect(0, 2143, '\P{Blk: mandaic}', "");
+    Expect(1, 2143, '\P{^Blk: mandaic}', "");
+    Expect(0, 2144, '\p{Blk: mandaic}', "");
+    Expect(1, 2144, '\p{^Blk: mandaic}', "");
+    Expect(1, 2144, '\P{Blk: mandaic}', "");
+    Expect(0, 2144, '\P{^Blk: mandaic}', "");
     Expect(1, 2143, '\p{Blk=:\Amandaic\z:}', "");;
     Expect(0, 2144, '\p{Blk=:\Amandaic\z:}', "");;
-    Expect(1, 2143, '\p{Blk=	-MANDAIC}', "");
-    Expect(0, 2143, '\p{^Blk=	-MANDAIC}', "");
-    Expect(0, 2143, '\P{Blk=	-MANDAIC}', "");
-    Expect(1, 2143, '\P{^Blk=	-MANDAIC}', "");
-    Expect(0, 2144, '\p{Blk=	-MANDAIC}', "");
-    Expect(1, 2144, '\p{^Blk=	-MANDAIC}', "");
-    Expect(1, 2144, '\P{Blk=	-MANDAIC}', "");
-    Expect(0, 2144, '\P{^Blk=	-MANDAIC}', "");
-    Error('\p{Is_Block=_:=MANDAIC}');
-    Error('\P{Is_Block=_:=MANDAIC}');
-    Expect(1, 2143, '\p{Is_Block=mandaic}', "");
-    Expect(0, 2143, '\p{^Is_Block=mandaic}', "");
-    Expect(0, 2143, '\P{Is_Block=mandaic}', "");
-    Expect(1, 2143, '\P{^Is_Block=mandaic}', "");
-    Expect(0, 2144, '\p{Is_Block=mandaic}', "");
-    Expect(1, 2144, '\p{^Is_Block=mandaic}', "");
-    Expect(1, 2144, '\P{Is_Block=mandaic}', "");
-    Expect(0, 2144, '\P{^Is_Block=mandaic}', "");
-    Expect(1, 2143, '\p{Is_Block:    -Mandaic}', "");
-    Expect(0, 2143, '\p{^Is_Block:    -Mandaic}', "");
-    Expect(0, 2143, '\P{Is_Block:    -Mandaic}', "");
-    Expect(1, 2143, '\P{^Is_Block:    -Mandaic}', "");
-    Expect(0, 2144, '\p{Is_Block:    -Mandaic}', "");
-    Expect(1, 2144, '\p{^Is_Block:    -Mandaic}', "");
-    Expect(1, 2144, '\P{Is_Block:    -Mandaic}', "");
-    Expect(0, 2144, '\P{^Is_Block:    -Mandaic}', "");
-    Error('\p{Is_Blk:__MANDAIC:=}');
-    Error('\P{Is_Blk:__MANDAIC:=}');
+    Expect(1, 2143, '\p{Blk=		Mandaic}', "");
+    Expect(0, 2143, '\p{^Blk=		Mandaic}', "");
+    Expect(0, 2143, '\P{Blk=		Mandaic}', "");
+    Expect(1, 2143, '\P{^Blk=		Mandaic}', "");
+    Expect(0, 2144, '\p{Blk=		Mandaic}', "");
+    Expect(1, 2144, '\p{^Blk=		Mandaic}', "");
+    Expect(1, 2144, '\P{Blk=		Mandaic}', "");
+    Expect(0, 2144, '\P{^Blk=		Mandaic}', "");
+    Error('\p{Is_Block=/a/Mandaic}');
+    Error('\P{Is_Block=/a/Mandaic}');
+    Expect(1, 2143, '\p{Is_Block:   mandaic}', "");
+    Expect(0, 2143, '\p{^Is_Block:   mandaic}', "");
+    Expect(0, 2143, '\P{Is_Block:   mandaic}', "");
+    Expect(1, 2143, '\P{^Is_Block:   mandaic}', "");
+    Expect(0, 2144, '\p{Is_Block:   mandaic}', "");
+    Expect(1, 2144, '\p{^Is_Block:   mandaic}', "");
+    Expect(1, 2144, '\P{Is_Block:   mandaic}', "");
+    Expect(0, 2144, '\P{^Is_Block:   mandaic}', "");
+    Expect(1, 2143, '\p{Is_Block=Mandaic}', "");
+    Expect(0, 2143, '\p{^Is_Block=Mandaic}', "");
+    Expect(0, 2143, '\P{Is_Block=Mandaic}', "");
+    Expect(1, 2143, '\P{^Is_Block=Mandaic}', "");
+    Expect(0, 2144, '\p{Is_Block=Mandaic}', "");
+    Expect(1, 2144, '\p{^Is_Block=Mandaic}', "");
+    Expect(1, 2144, '\P{Is_Block=Mandaic}', "");
+    Expect(0, 2144, '\P{^Is_Block=Mandaic}', "");
+    Error('\p{Is_Blk=	_mandaic/a/}');
+    Error('\P{Is_Blk=	_mandaic/a/}');
     Expect(1, 2143, '\p{Is_Blk=mandaic}', "");
     Expect(0, 2143, '\p{^Is_Blk=mandaic}', "");
     Expect(0, 2143, '\P{Is_Blk=mandaic}', "");
@@ -17998,16 +18510,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2144, '\p{^Is_Blk=mandaic}', "");
     Expect(1, 2144, '\P{Is_Blk=mandaic}', "");
     Expect(0, 2144, '\P{^Is_Blk=mandaic}', "");
-    Expect(1, 2143, '\p{Is_Blk= Mandaic}', "");
-    Expect(0, 2143, '\p{^Is_Blk= Mandaic}', "");
-    Expect(0, 2143, '\P{Is_Blk= Mandaic}', "");
-    Expect(1, 2143, '\P{^Is_Blk= Mandaic}', "");
-    Expect(0, 2144, '\p{Is_Blk= Mandaic}', "");
-    Expect(1, 2144, '\p{^Is_Blk= Mandaic}', "");
-    Expect(1, 2144, '\P{Is_Blk= Mandaic}', "");
-    Expect(0, 2144, '\P{^Is_Blk= Mandaic}', "");
-    Error('\p{Block= /a/manichaean}');
-    Error('\P{Block= /a/manichaean}');
+    Expect(1, 2143, '\p{Is_Blk=_-Mandaic}', "");
+    Expect(0, 2143, '\p{^Is_Blk=_-Mandaic}', "");
+    Expect(0, 2143, '\P{Is_Blk=_-Mandaic}', "");
+    Expect(1, 2143, '\P{^Is_Blk=_-Mandaic}', "");
+    Expect(0, 2144, '\p{Is_Blk=_-Mandaic}', "");
+    Expect(1, 2144, '\p{^Is_Blk=_-Mandaic}', "");
+    Expect(1, 2144, '\P{Is_Blk=_-Mandaic}', "");
+    Expect(0, 2144, '\P{^Is_Blk=_-Mandaic}', "");
+    Error('\p{Block=/a/Manichaean}');
+    Error('\P{Block=/a/Manichaean}');
     Expect(1, 68351, '\p{Block=:\AManichaean\z:}', "");;
     Expect(0, 68352, '\p{Block=:\AManichaean\z:}', "");;
     Expect(1, 68351, '\p{Block=manichaean}', "");
@@ -18020,16 +18532,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68352, '\P{^Block=manichaean}', "");
     Expect(1, 68351, '\p{Block=:\Amanichaean\z:}', "");;
     Expect(0, 68352, '\p{Block=:\Amanichaean\z:}', "");;
-    Expect(1, 68351, '\p{Block=-_Manichaean}', "");
-    Expect(0, 68351, '\p{^Block=-_Manichaean}', "");
-    Expect(0, 68351, '\P{Block=-_Manichaean}', "");
-    Expect(1, 68351, '\P{^Block=-_Manichaean}', "");
-    Expect(0, 68352, '\p{Block=-_Manichaean}', "");
-    Expect(1, 68352, '\p{^Block=-_Manichaean}', "");
-    Expect(1, 68352, '\P{Block=-_Manichaean}', "");
-    Expect(0, 68352, '\P{^Block=-_Manichaean}', "");
-    Error('\p{Blk=_ manichaean/a/}');
-    Error('\P{Blk=_ manichaean/a/}');
+    Expect(1, 68351, '\p{Block=	_manichaean}', "");
+    Expect(0, 68351, '\p{^Block=	_manichaean}', "");
+    Expect(0, 68351, '\P{Block=	_manichaean}', "");
+    Expect(1, 68351, '\P{^Block=	_manichaean}', "");
+    Expect(0, 68352, '\p{Block=	_manichaean}', "");
+    Expect(1, 68352, '\p{^Block=	_manichaean}', "");
+    Expect(1, 68352, '\P{Block=	_manichaean}', "");
+    Expect(0, 68352, '\P{^Block=	_manichaean}', "");
+    Error('\p{Blk:/a/ -manichaean}');
+    Error('\P{Blk:/a/ -manichaean}');
     Expect(1, 68351, '\p{Blk=:\AManichaean\z:}', "");;
     Expect(0, 68352, '\p{Blk=:\AManichaean\z:}', "");;
     Expect(1, 68351, '\p{Blk=manichaean}', "");
@@ -18042,16 +18554,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68352, '\P{^Blk=manichaean}', "");
     Expect(1, 68351, '\p{Blk=:\Amanichaean\z:}', "");;
     Expect(0, 68352, '\p{Blk=:\Amanichaean\z:}', "");;
-    Expect(1, 68351, '\p{Blk=  MANICHAEAN}', "");
-    Expect(0, 68351, '\p{^Blk=  MANICHAEAN}', "");
-    Expect(0, 68351, '\P{Blk=  MANICHAEAN}', "");
-    Expect(1, 68351, '\P{^Blk=  MANICHAEAN}', "");
-    Expect(0, 68352, '\p{Blk=  MANICHAEAN}', "");
-    Expect(1, 68352, '\p{^Blk=  MANICHAEAN}', "");
-    Expect(1, 68352, '\P{Blk=  MANICHAEAN}', "");
-    Expect(0, 68352, '\P{^Blk=  MANICHAEAN}', "");
-    Error('\p{Is_Block=_ Manichaean/a/}');
-    Error('\P{Is_Block=_ Manichaean/a/}');
+    Expect(1, 68351, '\p{Blk=--manichaean}', "");
+    Expect(0, 68351, '\p{^Blk=--manichaean}', "");
+    Expect(0, 68351, '\P{Blk=--manichaean}', "");
+    Expect(1, 68351, '\P{^Blk=--manichaean}', "");
+    Expect(0, 68352, '\p{Blk=--manichaean}', "");
+    Expect(1, 68352, '\p{^Blk=--manichaean}', "");
+    Expect(1, 68352, '\P{Blk=--manichaean}', "");
+    Expect(0, 68352, '\P{^Blk=--manichaean}', "");
+    Error('\p{Is_Block=_/a/MANICHAEAN}');
+    Error('\P{Is_Block=_/a/MANICHAEAN}');
     Expect(1, 68351, '\p{Is_Block=manichaean}', "");
     Expect(0, 68351, '\p{^Is_Block=manichaean}', "");
     Expect(0, 68351, '\P{Is_Block=manichaean}', "");
@@ -18060,16 +18572,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68352, '\p{^Is_Block=manichaean}', "");
     Expect(1, 68352, '\P{Is_Block=manichaean}', "");
     Expect(0, 68352, '\P{^Is_Block=manichaean}', "");
-    Expect(1, 68351, '\p{Is_Block=  MANICHAEAN}', "");
-    Expect(0, 68351, '\p{^Is_Block=  MANICHAEAN}', "");
-    Expect(0, 68351, '\P{Is_Block=  MANICHAEAN}', "");
-    Expect(1, 68351, '\P{^Is_Block=  MANICHAEAN}', "");
-    Expect(0, 68352, '\p{Is_Block=  MANICHAEAN}', "");
-    Expect(1, 68352, '\p{^Is_Block=  MANICHAEAN}', "");
-    Expect(1, 68352, '\P{Is_Block=  MANICHAEAN}', "");
-    Expect(0, 68352, '\P{^Is_Block=  MANICHAEAN}', "");
-    Error('\p{Is_Blk=/a/- MANICHAEAN}');
-    Error('\P{Is_Blk=/a/- MANICHAEAN}');
+    Expect(1, 68351, '\p{Is_Block=-_manichaean}', "");
+    Expect(0, 68351, '\p{^Is_Block=-_manichaean}', "");
+    Expect(0, 68351, '\P{Is_Block=-_manichaean}', "");
+    Expect(1, 68351, '\P{^Is_Block=-_manichaean}', "");
+    Expect(0, 68352, '\p{Is_Block=-_manichaean}', "");
+    Expect(1, 68352, '\p{^Is_Block=-_manichaean}', "");
+    Expect(1, 68352, '\P{Is_Block=-_manichaean}', "");
+    Expect(0, 68352, '\P{^Is_Block=-_manichaean}', "");
+    Error('\p{Is_Blk=_/a/manichaean}');
+    Error('\P{Is_Blk=_/a/manichaean}');
     Expect(1, 68351, '\p{Is_Blk=manichaean}', "");
     Expect(0, 68351, '\p{^Is_Blk=manichaean}', "");
     Expect(0, 68351, '\P{Is_Blk=manichaean}', "");
@@ -18078,38 +18590,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68352, '\p{^Is_Blk=manichaean}', "");
     Expect(1, 68352, '\P{Is_Blk=manichaean}', "");
     Expect(0, 68352, '\P{^Is_Blk=manichaean}', "");
-    Expect(1, 68351, '\p{Is_Blk= _Manichaean}', "");
-    Expect(0, 68351, '\p{^Is_Blk= _Manichaean}', "");
-    Expect(0, 68351, '\P{Is_Blk= _Manichaean}', "");
-    Expect(1, 68351, '\P{^Is_Blk= _Manichaean}', "");
-    Expect(0, 68352, '\p{Is_Blk= _Manichaean}', "");
-    Expect(1, 68352, '\p{^Is_Blk= _Manichaean}', "");
-    Expect(1, 68352, '\P{Is_Blk= _Manichaean}', "");
-    Expect(0, 68352, '\P{^Is_Blk= _Manichaean}', "");
-    Error('\p{Block=/a/ _Marchen}');
-    Error('\P{Block=/a/ _Marchen}');
+    Expect(1, 68351, '\p{Is_Blk=	Manichaean}', "");
+    Expect(0, 68351, '\p{^Is_Blk=	Manichaean}', "");
+    Expect(0, 68351, '\P{Is_Blk=	Manichaean}', "");
+    Expect(1, 68351, '\P{^Is_Blk=	Manichaean}', "");
+    Expect(0, 68352, '\p{Is_Blk=	Manichaean}', "");
+    Expect(1, 68352, '\p{^Is_Blk=	Manichaean}', "");
+    Expect(1, 68352, '\P{Is_Blk=	Manichaean}', "");
+    Expect(0, 68352, '\P{^Is_Blk=	Manichaean}', "");
+    Error('\p{Block=_:=marchen}');
+    Error('\P{Block=_:=marchen}');
     Expect(1, 72895, '\p{Block=:\AMarchen\z:}', "");;
     Expect(0, 72896, '\p{Block=:\AMarchen\z:}', "");;
-    Expect(1, 72895, '\p{Block:   marchen}', "");
-    Expect(0, 72895, '\p{^Block:   marchen}', "");
-    Expect(0, 72895, '\P{Block:   marchen}', "");
-    Expect(1, 72895, '\P{^Block:   marchen}', "");
-    Expect(0, 72896, '\p{Block:   marchen}', "");
-    Expect(1, 72896, '\p{^Block:   marchen}', "");
-    Expect(1, 72896, '\P{Block:   marchen}', "");
-    Expect(0, 72896, '\P{^Block:   marchen}', "");
+    Expect(1, 72895, '\p{Block=marchen}', "");
+    Expect(0, 72895, '\p{^Block=marchen}', "");
+    Expect(0, 72895, '\P{Block=marchen}', "");
+    Expect(1, 72895, '\P{^Block=marchen}', "");
+    Expect(0, 72896, '\p{Block=marchen}', "");
+    Expect(1, 72896, '\p{^Block=marchen}', "");
+    Expect(1, 72896, '\P{Block=marchen}', "");
+    Expect(0, 72896, '\P{^Block=marchen}', "");
     Expect(1, 72895, '\p{Block=:\Amarchen\z:}', "");;
     Expect(0, 72896, '\p{Block=:\Amarchen\z:}', "");;
-    Expect(1, 72895, '\p{Block=-_Marchen}', "");
-    Expect(0, 72895, '\p{^Block=-_Marchen}', "");
-    Expect(0, 72895, '\P{Block=-_Marchen}', "");
-    Expect(1, 72895, '\P{^Block=-_Marchen}', "");
-    Expect(0, 72896, '\p{Block=-_Marchen}', "");
-    Expect(1, 72896, '\p{^Block=-_Marchen}', "");
-    Expect(1, 72896, '\P{Block=-_Marchen}', "");
-    Expect(0, 72896, '\P{^Block=-_Marchen}', "");
-    Error('\p{Blk=/a/	-Marchen}');
-    Error('\P{Blk=/a/	-Marchen}');
+    Expect(1, 72895, '\p{Block= _MARCHEN}', "");
+    Expect(0, 72895, '\p{^Block= _MARCHEN}', "");
+    Expect(0, 72895, '\P{Block= _MARCHEN}', "");
+    Expect(1, 72895, '\P{^Block= _MARCHEN}', "");
+    Expect(0, 72896, '\p{Block= _MARCHEN}', "");
+    Expect(1, 72896, '\p{^Block= _MARCHEN}', "");
+    Expect(1, 72896, '\P{Block= _MARCHEN}', "");
+    Expect(0, 72896, '\P{^Block= _MARCHEN}', "");
+    Error('\p{Blk=	/a/Marchen}');
+    Error('\P{Blk=	/a/Marchen}');
     Expect(1, 72895, '\p{Blk=:\AMarchen\z:}', "");;
     Expect(0, 72896, '\p{Blk=:\AMarchen\z:}', "");;
     Expect(1, 72895, '\p{Blk=marchen}', "");
@@ -18122,16 +18634,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72896, '\P{^Blk=marchen}', "");
     Expect(1, 72895, '\p{Blk=:\Amarchen\z:}', "");;
     Expect(0, 72896, '\p{Blk=:\Amarchen\z:}', "");;
-    Expect(1, 72895, '\p{Blk=_	Marchen}', "");
-    Expect(0, 72895, '\p{^Blk=_	Marchen}', "");
-    Expect(0, 72895, '\P{Blk=_	Marchen}', "");
-    Expect(1, 72895, '\P{^Blk=_	Marchen}', "");
-    Expect(0, 72896, '\p{Blk=_	Marchen}', "");
-    Expect(1, 72896, '\p{^Blk=_	Marchen}', "");
-    Expect(1, 72896, '\P{Blk=_	Marchen}', "");
-    Expect(0, 72896, '\P{^Blk=_	Marchen}', "");
-    Error('\p{Is_Block=:=_	MARCHEN}');
-    Error('\P{Is_Block=:=_	MARCHEN}');
+    Error('\p{Is_Block: -:=marchen}');
+    Error('\P{Is_Block: -:=marchen}');
     Expect(1, 72895, '\p{Is_Block=marchen}', "");
     Expect(0, 72895, '\p{^Is_Block=marchen}', "");
     Expect(0, 72895, '\P{Is_Block=marchen}', "");
@@ -18140,16 +18644,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72896, '\p{^Is_Block=marchen}', "");
     Expect(1, 72896, '\P{Is_Block=marchen}', "");
     Expect(0, 72896, '\P{^Is_Block=marchen}', "");
-    Expect(1, 72895, '\p{Is_Block=_-MARCHEN}', "");
-    Expect(0, 72895, '\p{^Is_Block=_-MARCHEN}', "");
-    Expect(0, 72895, '\P{Is_Block=_-MARCHEN}', "");
-    Expect(1, 72895, '\P{^Is_Block=_-MARCHEN}', "");
-    Expect(0, 72896, '\p{Is_Block=_-MARCHEN}', "");
-    Expect(1, 72896, '\p{^Is_Block=_-MARCHEN}', "");
-    Expect(1, 72896, '\P{Is_Block=_-MARCHEN}', "");
-    Expect(0, 72896, '\P{^Is_Block=_-MARCHEN}', "");
-    Error('\p{Is_Blk=:=	Marchen}');
-    Error('\P{Is_Blk=:=	Marchen}');
+    Expect(1, 72895, '\p{Is_Block=--marchen}', "");
+    Expect(0, 72895, '\p{^Is_Block=--marchen}', "");
+    Expect(0, 72895, '\P{Is_Block=--marchen}', "");
+    Expect(1, 72895, '\P{^Is_Block=--marchen}', "");
+    Expect(0, 72896, '\p{Is_Block=--marchen}', "");
+    Expect(1, 72896, '\p{^Is_Block=--marchen}', "");
+    Expect(1, 72896, '\P{Is_Block=--marchen}', "");
+    Expect(0, 72896, '\P{^Is_Block=--marchen}', "");
+    Error('\p{Is_Blk=:=--Marchen}');
+    Error('\P{Is_Blk=:=--Marchen}');
     Expect(1, 72895, '\p{Is_Blk=marchen}', "");
     Expect(0, 72895, '\p{^Is_Blk=marchen}', "");
     Expect(0, 72895, '\P{Is_Blk=marchen}', "");
@@ -18158,16 +18662,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72896, '\p{^Is_Blk=marchen}', "");
     Expect(1, 72896, '\P{Is_Blk=marchen}', "");
     Expect(0, 72896, '\P{^Is_Blk=marchen}', "");
-    Expect(1, 72895, '\p{Is_Blk= -Marchen}', "");
-    Expect(0, 72895, '\p{^Is_Blk= -Marchen}', "");
-    Expect(0, 72895, '\P{Is_Blk= -Marchen}', "");
-    Expect(1, 72895, '\P{^Is_Blk= -Marchen}', "");
-    Expect(0, 72896, '\p{Is_Blk= -Marchen}', "");
-    Expect(1, 72896, '\p{^Is_Blk= -Marchen}', "");
-    Expect(1, 72896, '\P{Is_Blk= -Marchen}', "");
-    Expect(0, 72896, '\P{^Is_Blk= -Marchen}', "");
-    Error('\p{Block=:= -Masaram_gondi}');
-    Error('\P{Block=:= -Masaram_gondi}');
+    Expect(1, 72895, '\p{Is_Blk=_Marchen}', "");
+    Expect(0, 72895, '\p{^Is_Blk=_Marchen}', "");
+    Expect(0, 72895, '\P{Is_Blk=_Marchen}', "");
+    Expect(1, 72895, '\P{^Is_Blk=_Marchen}', "");
+    Expect(0, 72896, '\p{Is_Blk=_Marchen}', "");
+    Expect(1, 72896, '\p{^Is_Blk=_Marchen}', "");
+    Expect(1, 72896, '\P{Is_Blk=_Marchen}', "");
+    Expect(0, 72896, '\P{^Is_Blk=_Marchen}', "");
+    Error('\p{Block=/a/Masaram_Gondi}');
+    Error('\P{Block=/a/Masaram_Gondi}');
     Expect(1, 73055, '\p{Block=:\AMasaram_Gondi\z:}', "");;
     Expect(0, 73056, '\p{Block=:\AMasaram_Gondi\z:}', "");;
     Expect(1, 73055, '\p{Block=masaramgondi}', "");
@@ -18180,56 +18684,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73056, '\P{^Block=masaramgondi}', "");
     Expect(1, 73055, '\p{Block=:\Amasaramgondi\z:}', "");;
     Expect(0, 73056, '\p{Block=:\Amasaramgondi\z:}', "");;
-    Expect(1, 73055, '\p{Block=_-masaram_Gondi}', "");
-    Expect(0, 73055, '\p{^Block=_-masaram_Gondi}', "");
-    Expect(0, 73055, '\P{Block=_-masaram_Gondi}', "");
-    Expect(1, 73055, '\P{^Block=_-masaram_Gondi}', "");
-    Expect(0, 73056, '\p{Block=_-masaram_Gondi}', "");
-    Expect(1, 73056, '\p{^Block=_-masaram_Gondi}', "");
-    Expect(1, 73056, '\P{Block=_-masaram_Gondi}', "");
-    Expect(0, 73056, '\P{^Block=_-masaram_Gondi}', "");
-    Error('\p{Blk:   _	MASARAM_GONDI/a/}');
-    Error('\P{Blk:   _	MASARAM_GONDI/a/}');
+    Expect(1, 73055, '\p{Block=__MASARAM_Gondi}', "");
+    Expect(0, 73055, '\p{^Block=__MASARAM_Gondi}', "");
+    Expect(0, 73055, '\P{Block=__MASARAM_Gondi}', "");
+    Expect(1, 73055, '\P{^Block=__MASARAM_Gondi}', "");
+    Expect(0, 73056, '\p{Block=__MASARAM_Gondi}', "");
+    Expect(1, 73056, '\p{^Block=__MASARAM_Gondi}', "");
+    Expect(1, 73056, '\P{Block=__MASARAM_Gondi}', "");
+    Expect(0, 73056, '\P{^Block=__MASARAM_Gondi}', "");
+    Error('\p{Blk=-/a/Masaram_GONDI}');
+    Error('\P{Blk=-/a/Masaram_GONDI}');
     Expect(1, 73055, '\p{Blk=:\AMasaram_Gondi\z:}', "");;
     Expect(0, 73056, '\p{Blk=:\AMasaram_Gondi\z:}', "");;
-    Expect(1, 73055, '\p{Blk:   masaramgondi}', "");
-    Expect(0, 73055, '\p{^Blk:   masaramgondi}', "");
-    Expect(0, 73055, '\P{Blk:   masaramgondi}', "");
-    Expect(1, 73055, '\P{^Blk:   masaramgondi}', "");
-    Expect(0, 73056, '\p{Blk:   masaramgondi}', "");
-    Expect(1, 73056, '\p{^Blk:   masaramgondi}', "");
-    Expect(1, 73056, '\P{Blk:   masaramgondi}', "");
-    Expect(0, 73056, '\P{^Blk:   masaramgondi}', "");
+    Expect(1, 73055, '\p{Blk=masaramgondi}', "");
+    Expect(0, 73055, '\p{^Blk=masaramgondi}', "");
+    Expect(0, 73055, '\P{Blk=masaramgondi}', "");
+    Expect(1, 73055, '\P{^Blk=masaramgondi}', "");
+    Expect(0, 73056, '\p{Blk=masaramgondi}', "");
+    Expect(1, 73056, '\p{^Blk=masaramgondi}', "");
+    Expect(1, 73056, '\P{Blk=masaramgondi}', "");
+    Expect(0, 73056, '\P{^Blk=masaramgondi}', "");
     Expect(1, 73055, '\p{Blk=:\Amasaramgondi\z:}', "");;
     Expect(0, 73056, '\p{Blk=:\Amasaramgondi\z:}', "");;
-    Expect(1, 73055, '\p{Blk=-Masaram_gondi}', "");
-    Expect(0, 73055, '\p{^Blk=-Masaram_gondi}', "");
-    Expect(0, 73055, '\P{Blk=-Masaram_gondi}', "");
-    Expect(1, 73055, '\P{^Blk=-Masaram_gondi}', "");
-    Expect(0, 73056, '\p{Blk=-Masaram_gondi}', "");
-    Expect(1, 73056, '\p{^Blk=-Masaram_gondi}', "");
-    Expect(1, 73056, '\P{Blk=-Masaram_gondi}', "");
-    Expect(0, 73056, '\P{^Blk=-Masaram_gondi}', "");
-    Error('\p{Is_Block=_masaram_gondi/a/}');
-    Error('\P{Is_Block=_masaram_gondi/a/}');
-    Expect(1, 73055, '\p{Is_Block=masaramgondi}', "");
-    Expect(0, 73055, '\p{^Is_Block=masaramgondi}', "");
-    Expect(0, 73055, '\P{Is_Block=masaramgondi}', "");
-    Expect(1, 73055, '\P{^Is_Block=masaramgondi}', "");
-    Expect(0, 73056, '\p{Is_Block=masaramgondi}', "");
-    Expect(1, 73056, '\p{^Is_Block=masaramgondi}', "");
-    Expect(1, 73056, '\P{Is_Block=masaramgondi}', "");
-    Expect(0, 73056, '\P{^Is_Block=masaramgondi}', "");
-    Expect(1, 73055, '\p{Is_Block=	 Masaram_Gondi}', "");
-    Expect(0, 73055, '\p{^Is_Block=	 Masaram_Gondi}', "");
-    Expect(0, 73055, '\P{Is_Block=	 Masaram_Gondi}', "");
-    Expect(1, 73055, '\P{^Is_Block=	 Masaram_Gondi}', "");
-    Expect(0, 73056, '\p{Is_Block=	 Masaram_Gondi}', "");
-    Expect(1, 73056, '\p{^Is_Block=	 Masaram_Gondi}', "");
-    Expect(1, 73056, '\P{Is_Block=	 Masaram_Gondi}', "");
-    Expect(0, 73056, '\P{^Is_Block=	 Masaram_Gondi}', "");
-    Error('\p{Is_Blk:  /a/Masaram_Gondi}');
-    Error('\P{Is_Blk:  /a/Masaram_Gondi}');
+    Expect(1, 73055, '\p{Blk=- Masaram_GONDI}', "");
+    Expect(0, 73055, '\p{^Blk=- Masaram_GONDI}', "");
+    Expect(0, 73055, '\P{Blk=- Masaram_GONDI}', "");
+    Expect(1, 73055, '\P{^Blk=- Masaram_GONDI}', "");
+    Expect(0, 73056, '\p{Blk=- Masaram_GONDI}', "");
+    Expect(1, 73056, '\p{^Blk=- Masaram_GONDI}', "");
+    Expect(1, 73056, '\P{Blk=- Masaram_GONDI}', "");
+    Expect(0, 73056, '\P{^Blk=- Masaram_GONDI}', "");
+    Error('\p{Is_Block: /a/_masaram_Gondi}');
+    Error('\P{Is_Block: /a/_masaram_Gondi}');
+    Expect(1, 73055, '\p{Is_Block: masaramgondi}', "");
+    Expect(0, 73055, '\p{^Is_Block: masaramgondi}', "");
+    Expect(0, 73055, '\P{Is_Block: masaramgondi}', "");
+    Expect(1, 73055, '\P{^Is_Block: masaramgondi}', "");
+    Expect(0, 73056, '\p{Is_Block: masaramgondi}', "");
+    Expect(1, 73056, '\p{^Is_Block: masaramgondi}', "");
+    Expect(1, 73056, '\P{Is_Block: masaramgondi}', "");
+    Expect(0, 73056, '\P{^Is_Block: masaramgondi}', "");
+    Expect(1, 73055, '\p{Is_Block=_ masaram_Gondi}', "");
+    Expect(0, 73055, '\p{^Is_Block=_ masaram_Gondi}', "");
+    Expect(0, 73055, '\P{Is_Block=_ masaram_Gondi}', "");
+    Expect(1, 73055, '\P{^Is_Block=_ masaram_Gondi}', "");
+    Expect(0, 73056, '\p{Is_Block=_ masaram_Gondi}', "");
+    Expect(1, 73056, '\p{^Is_Block=_ masaram_Gondi}', "");
+    Expect(1, 73056, '\P{Is_Block=_ masaram_Gondi}', "");
+    Expect(0, 73056, '\P{^Is_Block=_ masaram_Gondi}', "");
+    Error('\p{Is_Blk=_:=masaram_Gondi}');
+    Error('\P{Is_Blk=_:=masaram_Gondi}');
     Expect(1, 73055, '\p{Is_Blk=masaramgondi}', "");
     Expect(0, 73055, '\p{^Is_Blk=masaramgondi}', "");
     Expect(0, 73055, '\P{Is_Blk=masaramgondi}', "");
@@ -18238,38 +18742,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73056, '\p{^Is_Blk=masaramgondi}', "");
     Expect(1, 73056, '\P{Is_Blk=masaramgondi}', "");
     Expect(0, 73056, '\P{^Is_Blk=masaramgondi}', "");
-    Expect(1, 73055, '\p{Is_Blk:	_MASARAM_gondi}', "");
-    Expect(0, 73055, '\p{^Is_Blk:	_MASARAM_gondi}', "");
-    Expect(0, 73055, '\P{Is_Blk:	_MASARAM_gondi}', "");
-    Expect(1, 73055, '\P{^Is_Blk:	_MASARAM_gondi}', "");
-    Expect(0, 73056, '\p{Is_Blk:	_MASARAM_gondi}', "");
-    Expect(1, 73056, '\p{^Is_Blk:	_MASARAM_gondi}', "");
-    Expect(1, 73056, '\P{Is_Blk:	_MASARAM_gondi}', "");
-    Expect(0, 73056, '\P{^Is_Blk:	_MASARAM_gondi}', "");
-    Error('\p{Block=:=-mathematical_Alphanumeric_Symbols}');
-    Error('\P{Block=:=-mathematical_Alphanumeric_Symbols}');
+    Expect(1, 73055, '\p{Is_Blk:    masaram_Gondi}', "");
+    Expect(0, 73055, '\p{^Is_Blk:    masaram_Gondi}', "");
+    Expect(0, 73055, '\P{Is_Blk:    masaram_Gondi}', "");
+    Expect(1, 73055, '\P{^Is_Blk:    masaram_Gondi}', "");
+    Expect(0, 73056, '\p{Is_Blk:    masaram_Gondi}', "");
+    Expect(1, 73056, '\p{^Is_Blk:    masaram_Gondi}', "");
+    Expect(1, 73056, '\P{Is_Blk:    masaram_Gondi}', "");
+    Expect(0, 73056, '\P{^Is_Blk:    masaram_Gondi}', "");
+    Error('\p{Block=:=mathematical_alphanumeric_symbols}');
+    Error('\P{Block=:=mathematical_alphanumeric_symbols}');
     Expect(1, 120831, '\p{Block=:\AMathematical_Alphanumeric_Symbols\z:}', "");;
     Expect(0, 120832, '\p{Block=:\AMathematical_Alphanumeric_Symbols\z:}', "");;
-    Expect(1, 120831, '\p{Block:	mathematicalalphanumericsymbols}', "");
-    Expect(0, 120831, '\p{^Block:	mathematicalalphanumericsymbols}', "");
-    Expect(0, 120831, '\P{Block:	mathematicalalphanumericsymbols}', "");
-    Expect(1, 120831, '\P{^Block:	mathematicalalphanumericsymbols}', "");
-    Expect(0, 120832, '\p{Block:	mathematicalalphanumericsymbols}', "");
-    Expect(1, 120832, '\p{^Block:	mathematicalalphanumericsymbols}', "");
-    Expect(1, 120832, '\P{Block:	mathematicalalphanumericsymbols}', "");
-    Expect(0, 120832, '\P{^Block:	mathematicalalphanumericsymbols}', "");
+    Expect(1, 120831, '\p{Block=mathematicalalphanumericsymbols}', "");
+    Expect(0, 120831, '\p{^Block=mathematicalalphanumericsymbols}', "");
+    Expect(0, 120831, '\P{Block=mathematicalalphanumericsymbols}', "");
+    Expect(1, 120831, '\P{^Block=mathematicalalphanumericsymbols}', "");
+    Expect(0, 120832, '\p{Block=mathematicalalphanumericsymbols}', "");
+    Expect(1, 120832, '\p{^Block=mathematicalalphanumericsymbols}', "");
+    Expect(1, 120832, '\P{Block=mathematicalalphanumericsymbols}', "");
+    Expect(0, 120832, '\P{^Block=mathematicalalphanumericsymbols}', "");
     Expect(1, 120831, '\p{Block=:\Amathematicalalphanumericsymbols\z:}', "");;
     Expect(0, 120832, '\p{Block=:\Amathematicalalphanumericsymbols\z:}', "");;
-    Expect(1, 120831, '\p{Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(0, 120831, '\p{^Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(0, 120831, '\P{Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(1, 120831, '\P{^Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(0, 120832, '\p{Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(1, 120832, '\p{^Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(1, 120832, '\P{Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Expect(0, 120832, '\P{^Block= mathematical_ALPHANUMERIC_symbols}', "");
-    Error('\p{Blk= :=Math_Alphanum}');
-    Error('\P{Blk= :=Math_Alphanum}');
+    Expect(1, 120831, '\p{Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(0, 120831, '\p{^Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(0, 120831, '\P{Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(1, 120831, '\P{^Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(0, 120832, '\p{Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(1, 120832, '\p{^Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(1, 120832, '\P{Block=_Mathematical_alphanumeric_Symbols}', "");
+    Expect(0, 120832, '\P{^Block=_Mathematical_alphanumeric_Symbols}', "");
+    Error('\p{Blk=  Math_ALPHANUM:=}');
+    Error('\P{Blk=  Math_ALPHANUM:=}');
     Expect(1, 120831, '\p{Blk=:\AMath_Alphanum\z:}', "");;
     Expect(0, 120832, '\p{Blk=:\AMath_Alphanum\z:}', "");;
     Expect(1, 120831, '\p{Blk=mathalphanum}', "");
@@ -18282,16 +18786,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 120832, '\P{^Blk=mathalphanum}', "");
     Expect(1, 120831, '\p{Blk=:\Amathalphanum\z:}', "");;
     Expect(0, 120832, '\p{Blk=:\Amathalphanum\z:}', "");;
-    Expect(1, 120831, '\p{Blk:    MATH_alphanum}', "");
-    Expect(0, 120831, '\p{^Blk:    MATH_alphanum}', "");
-    Expect(0, 120831, '\P{Blk:    MATH_alphanum}', "");
-    Expect(1, 120831, '\P{^Blk:    MATH_alphanum}', "");
-    Expect(0, 120832, '\p{Blk:    MATH_alphanum}', "");
-    Expect(1, 120832, '\p{^Blk:    MATH_alphanum}', "");
-    Expect(1, 120832, '\P{Blk:    MATH_alphanum}', "");
-    Expect(0, 120832, '\P{^Blk:    MATH_alphanum}', "");
-    Error('\p{Is_Block=:=-	mathematical_Alphanumeric_Symbols}');
-    Error('\P{Is_Block=:=-	mathematical_Alphanumeric_Symbols}');
+    Expect(1, 120831, '\p{Blk= 	math_Alphanum}', "");
+    Expect(0, 120831, '\p{^Blk= 	math_Alphanum}', "");
+    Expect(0, 120831, '\P{Blk= 	math_Alphanum}', "");
+    Expect(1, 120831, '\P{^Blk= 	math_Alphanum}', "");
+    Expect(0, 120832, '\p{Blk= 	math_Alphanum}', "");
+    Expect(1, 120832, '\p{^Blk= 	math_Alphanum}', "");
+    Expect(1, 120832, '\P{Blk= 	math_Alphanum}', "");
+    Expect(0, 120832, '\P{^Blk= 	math_Alphanum}', "");
+    Error('\p{Is_Block:   -:=Mathematical_ALPHANUMERIC_Symbols}');
+    Error('\P{Is_Block:   -:=Mathematical_ALPHANUMERIC_Symbols}');
     Expect(1, 120831, '\p{Is_Block=mathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\p{^Is_Block=mathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\P{Is_Block=mathematicalalphanumericsymbols}', "");
@@ -18300,16 +18804,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 120832, '\p{^Is_Block=mathematicalalphanumericsymbols}', "");
     Expect(1, 120832, '\P{Is_Block=mathematicalalphanumericsymbols}', "");
     Expect(0, 120832, '\P{^Is_Block=mathematicalalphanumericsymbols}', "");
-    Expect(1, 120831, '\p{Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(0, 120831, '\p{^Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(0, 120831, '\P{Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(1, 120831, '\P{^Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(0, 120832, '\p{Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(1, 120832, '\p{^Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(1, 120832, '\P{Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Expect(0, 120832, '\P{^Is_Block= 	Mathematical_ALPHANUMERIC_SYMBOLS}', "");
-    Error('\p{Is_Blk: /a/_ MATH_alphanum}');
-    Error('\P{Is_Blk: /a/_ MATH_alphanum}');
+    Expect(1, 120831, '\p{Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(0, 120831, '\p{^Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(0, 120831, '\P{Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(1, 120831, '\P{^Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(0, 120832, '\p{Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(1, 120832, '\p{^Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(1, 120832, '\P{Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Expect(0, 120832, '\P{^Is_Block:-_Mathematical_Alphanumeric_Symbols}', "");
+    Error('\p{Is_Blk=:=-Math_ALPHANUM}');
+    Error('\P{Is_Blk=:=-Math_ALPHANUM}');
     Expect(1, 120831, '\p{Is_Blk=mathalphanum}', "");
     Expect(0, 120831, '\p{^Is_Blk=mathalphanum}', "");
     Expect(0, 120831, '\P{Is_Blk=mathalphanum}', "");
@@ -18318,16 +18822,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 120832, '\p{^Is_Blk=mathalphanum}', "");
     Expect(1, 120832, '\P{Is_Blk=mathalphanum}', "");
     Expect(0, 120832, '\P{^Is_Blk=mathalphanum}', "");
-    Expect(1, 120831, '\p{Is_Blk=--Math_ALPHANUM}', "");
-    Expect(0, 120831, '\p{^Is_Blk=--Math_ALPHANUM}', "");
-    Expect(0, 120831, '\P{Is_Blk=--Math_ALPHANUM}', "");
-    Expect(1, 120831, '\P{^Is_Blk=--Math_ALPHANUM}', "");
-    Expect(0, 120832, '\p{Is_Blk=--Math_ALPHANUM}', "");
-    Expect(1, 120832, '\p{^Is_Blk=--Math_ALPHANUM}', "");
-    Expect(1, 120832, '\P{Is_Blk=--Math_ALPHANUM}', "");
-    Expect(0, 120832, '\P{^Is_Blk=--Math_ALPHANUM}', "");
-    Error('\p{Block=/a/		mathematical_Operators}');
-    Error('\P{Block=/a/		mathematical_Operators}');
+    Expect(1, 120831, '\p{Is_Blk=	MATH_alphanum}', "");
+    Expect(0, 120831, '\p{^Is_Blk=	MATH_alphanum}', "");
+    Expect(0, 120831, '\P{Is_Blk=	MATH_alphanum}', "");
+    Expect(1, 120831, '\P{^Is_Blk=	MATH_alphanum}', "");
+    Expect(0, 120832, '\p{Is_Blk=	MATH_alphanum}', "");
+    Expect(1, 120832, '\p{^Is_Blk=	MATH_alphanum}', "");
+    Expect(1, 120832, '\P{Is_Blk=	MATH_alphanum}', "");
+    Expect(0, 120832, '\P{^Is_Blk=	MATH_alphanum}', "");
+    Error('\p{Block=-mathematical_Operators:=}');
+    Error('\P{Block=-mathematical_Operators:=}');
     Expect(1, 8959, '\p{Block=:\AMathematical_Operators\z:}', "");;
     Expect(0, 8960, '\p{Block=:\AMathematical_Operators\z:}', "");;
     Expect(1, 8959, '\p{Block=mathematicaloperators}', "");
@@ -18340,16 +18844,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8960, '\P{^Block=mathematicaloperators}', "");
     Expect(1, 8959, '\p{Block=:\Amathematicaloperators\z:}', "");;
     Expect(0, 8960, '\p{Block=:\Amathematicaloperators\z:}', "");;
-    Expect(1, 8959, '\p{Block=	 MATHEMATICAL_Operators}', "");
-    Expect(0, 8959, '\p{^Block=	 MATHEMATICAL_Operators}', "");
-    Expect(0, 8959, '\P{Block=	 MATHEMATICAL_Operators}', "");
-    Expect(1, 8959, '\P{^Block=	 MATHEMATICAL_Operators}', "");
-    Expect(0, 8960, '\p{Block=	 MATHEMATICAL_Operators}', "");
-    Expect(1, 8960, '\p{^Block=	 MATHEMATICAL_Operators}', "");
-    Expect(1, 8960, '\P{Block=	 MATHEMATICAL_Operators}', "");
-    Expect(0, 8960, '\P{^Block=	 MATHEMATICAL_Operators}', "");
-    Error('\p{Blk=MATH_Operators/a/}');
-    Error('\P{Blk=MATH_Operators/a/}');
+    Expect(1, 8959, '\p{Block:		Mathematical_OPERATORS}', "");
+    Expect(0, 8959, '\p{^Block:		Mathematical_OPERATORS}', "");
+    Expect(0, 8959, '\P{Block:		Mathematical_OPERATORS}', "");
+    Expect(1, 8959, '\P{^Block:		Mathematical_OPERATORS}', "");
+    Expect(0, 8960, '\p{Block:		Mathematical_OPERATORS}', "");
+    Expect(1, 8960, '\p{^Block:		Mathematical_OPERATORS}', "");
+    Expect(1, 8960, '\P{Block:		Mathematical_OPERATORS}', "");
+    Expect(0, 8960, '\P{^Block:		Mathematical_OPERATORS}', "");
+    Error('\p{Blk=__Math_operators/a/}');
+    Error('\P{Blk=__Math_operators/a/}');
     Expect(1, 8959, '\p{Blk=:\AMath_Operators\z:}', "");;
     Expect(0, 8960, '\p{Blk=:\AMath_Operators\z:}', "");;
     Expect(1, 8959, '\p{Blk=mathoperators}', "");
@@ -18362,16 +18866,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8960, '\P{^Blk=mathoperators}', "");
     Expect(1, 8959, '\p{Blk=:\Amathoperators\z:}', "");;
     Expect(0, 8960, '\p{Blk=:\Amathoperators\z:}', "");;
-    Expect(1, 8959, '\p{Blk=	math_Operators}', "");
-    Expect(0, 8959, '\p{^Blk=	math_Operators}', "");
-    Expect(0, 8959, '\P{Blk=	math_Operators}', "");
-    Expect(1, 8959, '\P{^Blk=	math_Operators}', "");
-    Expect(0, 8960, '\p{Blk=	math_Operators}', "");
-    Expect(1, 8960, '\p{^Blk=	math_Operators}', "");
-    Expect(1, 8960, '\P{Blk=	math_Operators}', "");
-    Expect(0, 8960, '\P{^Blk=	math_Operators}', "");
-    Error('\p{Is_Block=/a/mathematical_Operators}');
-    Error('\P{Is_Block=/a/mathematical_Operators}');
+    Expect(1, 8959, '\p{Blk=-MATH_OPERATORS}', "");
+    Expect(0, 8959, '\p{^Blk=-MATH_OPERATORS}', "");
+    Expect(0, 8959, '\P{Blk=-MATH_OPERATORS}', "");
+    Expect(1, 8959, '\P{^Blk=-MATH_OPERATORS}', "");
+    Expect(0, 8960, '\p{Blk=-MATH_OPERATORS}', "");
+    Expect(1, 8960, '\p{^Blk=-MATH_OPERATORS}', "");
+    Expect(1, 8960, '\P{Blk=-MATH_OPERATORS}', "");
+    Expect(0, 8960, '\P{^Blk=-MATH_OPERATORS}', "");
+    Error('\p{Is_Block=-_Mathematical_Operators:=}');
+    Error('\P{Is_Block=-_Mathematical_Operators:=}');
     Expect(1, 8959, '\p{Is_Block=mathematicaloperators}', "");
     Expect(0, 8959, '\p{^Is_Block=mathematicaloperators}', "");
     Expect(0, 8959, '\P{Is_Block=mathematicaloperators}', "");
@@ -18380,16 +18884,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8960, '\p{^Is_Block=mathematicaloperators}', "");
     Expect(1, 8960, '\P{Is_Block=mathematicaloperators}', "");
     Expect(0, 8960, '\P{^Is_Block=mathematicaloperators}', "");
-    Expect(1, 8959, '\p{Is_Block=_Mathematical_Operators}', "");
-    Expect(0, 8959, '\p{^Is_Block=_Mathematical_Operators}', "");
-    Expect(0, 8959, '\P{Is_Block=_Mathematical_Operators}', "");
-    Expect(1, 8959, '\P{^Is_Block=_Mathematical_Operators}', "");
-    Expect(0, 8960, '\p{Is_Block=_Mathematical_Operators}', "");
-    Expect(1, 8960, '\p{^Is_Block=_Mathematical_Operators}', "");
-    Expect(1, 8960, '\P{Is_Block=_Mathematical_Operators}', "");
-    Expect(0, 8960, '\P{^Is_Block=_Mathematical_Operators}', "");
-    Error('\p{Is_Blk=	:=math_Operators}');
-    Error('\P{Is_Blk=	:=math_Operators}');
+    Expect(1, 8959, '\p{Is_Block= Mathematical_Operators}', "");
+    Expect(0, 8959, '\p{^Is_Block= Mathematical_Operators}', "");
+    Expect(0, 8959, '\P{Is_Block= Mathematical_Operators}', "");
+    Expect(1, 8959, '\P{^Is_Block= Mathematical_Operators}', "");
+    Expect(0, 8960, '\p{Is_Block= Mathematical_Operators}', "");
+    Expect(1, 8960, '\p{^Is_Block= Mathematical_Operators}', "");
+    Expect(1, 8960, '\P{Is_Block= Mathematical_Operators}', "");
+    Expect(0, 8960, '\P{^Is_Block= Mathematical_Operators}', "");
+    Error('\p{Is_Blk=-_MATH_Operators:=}');
+    Error('\P{Is_Blk=-_MATH_Operators:=}');
     Expect(1, 8959, '\p{Is_Blk=mathoperators}', "");
     Expect(0, 8959, '\p{^Is_Blk=mathoperators}', "");
     Expect(0, 8959, '\P{Is_Blk=mathoperators}', "");
@@ -18398,16 +18902,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8960, '\p{^Is_Blk=mathoperators}', "");
     Expect(1, 8960, '\P{Is_Blk=mathoperators}', "");
     Expect(0, 8960, '\P{^Is_Blk=mathoperators}', "");
-    Expect(1, 8959, '\p{Is_Blk=--Math_Operators}', "");
-    Expect(0, 8959, '\p{^Is_Blk=--Math_Operators}', "");
-    Expect(0, 8959, '\P{Is_Blk=--Math_Operators}', "");
-    Expect(1, 8959, '\P{^Is_Blk=--Math_Operators}', "");
-    Expect(0, 8960, '\p{Is_Blk=--Math_Operators}', "");
-    Expect(1, 8960, '\p{^Is_Blk=--Math_Operators}', "");
-    Expect(1, 8960, '\P{Is_Blk=--Math_Operators}', "");
-    Expect(0, 8960, '\P{^Is_Blk=--Math_Operators}', "");
-    Error('\p{Block=:= -Mayan_Numerals}');
-    Error('\P{Block=:= -Mayan_Numerals}');
+    Expect(1, 8959, '\p{Is_Blk=__MATH_operators}', "");
+    Expect(0, 8959, '\p{^Is_Blk=__MATH_operators}', "");
+    Expect(0, 8959, '\P{Is_Blk=__MATH_operators}', "");
+    Expect(1, 8959, '\P{^Is_Blk=__MATH_operators}', "");
+    Expect(0, 8960, '\p{Is_Blk=__MATH_operators}', "");
+    Expect(1, 8960, '\p{^Is_Blk=__MATH_operators}', "");
+    Expect(1, 8960, '\P{Is_Blk=__MATH_operators}', "");
+    Expect(0, 8960, '\P{^Is_Blk=__MATH_operators}', "");
+    Error('\p{Block: /a/--MAYAN_NUMERALS}');
+    Error('\P{Block: /a/--MAYAN_NUMERALS}');
     Expect(1, 119551, '\p{Block=:\AMayan_Numerals\z:}', "");;
     Expect(0, 119552, '\p{Block=:\AMayan_Numerals\z:}', "");;
     Expect(1, 119551, '\p{Block=mayannumerals}', "");
@@ -18420,38 +18924,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119552, '\P{^Block=mayannumerals}', "");
     Expect(1, 119551, '\p{Block=:\Amayannumerals\z:}', "");;
     Expect(0, 119552, '\p{Block=:\Amayannumerals\z:}', "");;
-    Expect(1, 119551, '\p{Block= Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\p{^Block= Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\P{Block= Mayan_NUMERALS}', "");
-    Expect(1, 119551, '\P{^Block= Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\p{Block= Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\p{^Block= Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\P{Block= Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\P{^Block= Mayan_NUMERALS}', "");
-    Error('\p{Blk=-Mayan_NUMERALS:=}');
-    Error('\P{Blk=-Mayan_NUMERALS:=}');
+    Expect(1, 119551, '\p{Block=-	Mayan_Numerals}', "");
+    Expect(0, 119551, '\p{^Block=-	Mayan_Numerals}', "");
+    Expect(0, 119551, '\P{Block=-	Mayan_Numerals}', "");
+    Expect(1, 119551, '\P{^Block=-	Mayan_Numerals}', "");
+    Expect(0, 119552, '\p{Block=-	Mayan_Numerals}', "");
+    Expect(1, 119552, '\p{^Block=-	Mayan_Numerals}', "");
+    Expect(1, 119552, '\P{Block=-	Mayan_Numerals}', "");
+    Expect(0, 119552, '\P{^Block=-	Mayan_Numerals}', "");
+    Error('\p{Blk=	_Mayan_numerals:=}');
+    Error('\P{Blk=	_Mayan_numerals:=}');
     Expect(1, 119551, '\p{Blk=:\AMayan_Numerals\z:}', "");;
     Expect(0, 119552, '\p{Blk=:\AMayan_Numerals\z:}', "");;
-    Expect(1, 119551, '\p{Blk: mayannumerals}', "");
-    Expect(0, 119551, '\p{^Blk: mayannumerals}', "");
-    Expect(0, 119551, '\P{Blk: mayannumerals}', "");
-    Expect(1, 119551, '\P{^Blk: mayannumerals}', "");
-    Expect(0, 119552, '\p{Blk: mayannumerals}', "");
-    Expect(1, 119552, '\p{^Blk: mayannumerals}', "");
-    Expect(1, 119552, '\P{Blk: mayannumerals}', "");
-    Expect(0, 119552, '\P{^Blk: mayannumerals}', "");
+    Expect(1, 119551, '\p{Blk=mayannumerals}', "");
+    Expect(0, 119551, '\p{^Blk=mayannumerals}', "");
+    Expect(0, 119551, '\P{Blk=mayannumerals}', "");
+    Expect(1, 119551, '\P{^Blk=mayannumerals}', "");
+    Expect(0, 119552, '\p{Blk=mayannumerals}', "");
+    Expect(1, 119552, '\p{^Blk=mayannumerals}', "");
+    Expect(1, 119552, '\P{Blk=mayannumerals}', "");
+    Expect(0, 119552, '\P{^Blk=mayannumerals}', "");
     Expect(1, 119551, '\p{Blk=:\Amayannumerals\z:}', "");;
     Expect(0, 119552, '\p{Blk=:\Amayannumerals\z:}', "");;
-    Expect(1, 119551, '\p{Blk=	Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\p{^Blk=	Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\P{Blk=	Mayan_NUMERALS}', "");
-    Expect(1, 119551, '\P{^Blk=	Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\p{Blk=	Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\p{^Blk=	Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\P{Blk=	Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\P{^Blk=	Mayan_NUMERALS}', "");
-    Error('\p{Is_Block=/a/_MAYAN_Numerals}');
-    Error('\P{Is_Block=/a/_MAYAN_Numerals}');
+    Expect(1, 119551, '\p{Blk=--mayan_numerals}', "");
+    Expect(0, 119551, '\p{^Blk=--mayan_numerals}', "");
+    Expect(0, 119551, '\P{Blk=--mayan_numerals}', "");
+    Expect(1, 119551, '\P{^Blk=--mayan_numerals}', "");
+    Expect(0, 119552, '\p{Blk=--mayan_numerals}', "");
+    Expect(1, 119552, '\p{^Blk=--mayan_numerals}', "");
+    Expect(1, 119552, '\P{Blk=--mayan_numerals}', "");
+    Expect(0, 119552, '\P{^Blk=--mayan_numerals}', "");
+    Error('\p{Is_Block=-Mayan_Numerals/a/}');
+    Error('\P{Is_Block=-Mayan_Numerals/a/}');
     Expect(1, 119551, '\p{Is_Block=mayannumerals}', "");
     Expect(0, 119551, '\p{^Is_Block=mayannumerals}', "");
     Expect(0, 119551, '\P{Is_Block=mayannumerals}', "");
@@ -18460,16 +18964,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119552, '\p{^Is_Block=mayannumerals}', "");
     Expect(1, 119552, '\P{Is_Block=mayannumerals}', "");
     Expect(0, 119552, '\P{^Is_Block=mayannumerals}', "");
-    Expect(1, 119551, '\p{Is_Block=		mayan_NUMERALS}', "");
-    Expect(0, 119551, '\p{^Is_Block=		mayan_NUMERALS}', "");
-    Expect(0, 119551, '\P{Is_Block=		mayan_NUMERALS}', "");
-    Expect(1, 119551, '\P{^Is_Block=		mayan_NUMERALS}', "");
-    Expect(0, 119552, '\p{Is_Block=		mayan_NUMERALS}', "");
-    Expect(1, 119552, '\p{^Is_Block=		mayan_NUMERALS}', "");
-    Expect(1, 119552, '\P{Is_Block=		mayan_NUMERALS}', "");
-    Expect(0, 119552, '\P{^Is_Block=		mayan_NUMERALS}', "");
-    Error('\p{Is_Blk=/a/	Mayan_NUMERALS}');
-    Error('\P{Is_Blk=/a/	Mayan_NUMERALS}');
+    Expect(1, 119551, '\p{Is_Block=_ mayan_Numerals}', "");
+    Expect(0, 119551, '\p{^Is_Block=_ mayan_Numerals}', "");
+    Expect(0, 119551, '\P{Is_Block=_ mayan_Numerals}', "");
+    Expect(1, 119551, '\P{^Is_Block=_ mayan_Numerals}', "");
+    Expect(0, 119552, '\p{Is_Block=_ mayan_Numerals}', "");
+    Expect(1, 119552, '\p{^Is_Block=_ mayan_Numerals}', "");
+    Expect(1, 119552, '\P{Is_Block=_ mayan_Numerals}', "");
+    Expect(0, 119552, '\P{^Is_Block=_ mayan_Numerals}', "");
+    Error('\p{Is_Blk= -MAYAN_Numerals/a/}');
+    Error('\P{Is_Blk= -MAYAN_Numerals/a/}');
     Expect(1, 119551, '\p{Is_Blk=mayannumerals}', "");
     Expect(0, 119551, '\p{^Is_Blk=mayannumerals}', "");
     Expect(0, 119551, '\P{Is_Blk=mayannumerals}', "");
@@ -18478,38 +18982,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119552, '\p{^Is_Blk=mayannumerals}', "");
     Expect(1, 119552, '\P{Is_Blk=mayannumerals}', "");
     Expect(0, 119552, '\P{^Is_Blk=mayannumerals}', "");
-    Expect(1, 119551, '\p{Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\p{^Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\P{Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(1, 119551, '\P{^Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\p{Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\p{^Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\P{Is_Blk=_Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\P{^Is_Blk=_Mayan_NUMERALS}', "");
-    Error('\p{Block=:= _Medefaidrin}');
-    Error('\P{Block=:= _Medefaidrin}');
+    Expect(1, 119551, '\p{Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(0, 119551, '\p{^Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(0, 119551, '\P{Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(1, 119551, '\P{^Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(0, 119552, '\p{Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(1, 119552, '\p{^Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(1, 119552, '\P{Is_Blk=	 Mayan_NUMERALS}', "");
+    Expect(0, 119552, '\P{^Is_Blk=	 Mayan_NUMERALS}', "");
+    Error('\p{Block=	Medefaidrin:=}');
+    Error('\P{Block=	Medefaidrin:=}');
     Expect(1, 93855, '\p{Block=:\AMedefaidrin\z:}', "");;
     Expect(0, 93856, '\p{Block=:\AMedefaidrin\z:}', "");;
-    Expect(1, 93855, '\p{Block=medefaidrin}', "");
-    Expect(0, 93855, '\p{^Block=medefaidrin}', "");
-    Expect(0, 93855, '\P{Block=medefaidrin}', "");
-    Expect(1, 93855, '\P{^Block=medefaidrin}', "");
-    Expect(0, 93856, '\p{Block=medefaidrin}', "");
-    Expect(1, 93856, '\p{^Block=medefaidrin}', "");
-    Expect(1, 93856, '\P{Block=medefaidrin}', "");
-    Expect(0, 93856, '\P{^Block=medefaidrin}', "");
+    Expect(1, 93855, '\p{Block: medefaidrin}', "");
+    Expect(0, 93855, '\p{^Block: medefaidrin}', "");
+    Expect(0, 93855, '\P{Block: medefaidrin}', "");
+    Expect(1, 93855, '\P{^Block: medefaidrin}', "");
+    Expect(0, 93856, '\p{Block: medefaidrin}', "");
+    Expect(1, 93856, '\p{^Block: medefaidrin}', "");
+    Expect(1, 93856, '\P{Block: medefaidrin}', "");
+    Expect(0, 93856, '\P{^Block: medefaidrin}', "");
     Expect(1, 93855, '\p{Block=:\Amedefaidrin\z:}', "");;
     Expect(0, 93856, '\p{Block=:\Amedefaidrin\z:}', "");;
-    Expect(1, 93855, '\p{Block=	Medefaidrin}', "");
-    Expect(0, 93855, '\p{^Block=	Medefaidrin}', "");
-    Expect(0, 93855, '\P{Block=	Medefaidrin}', "");
-    Expect(1, 93855, '\P{^Block=	Medefaidrin}', "");
-    Expect(0, 93856, '\p{Block=	Medefaidrin}', "");
-    Expect(1, 93856, '\p{^Block=	Medefaidrin}', "");
-    Expect(1, 93856, '\P{Block=	Medefaidrin}', "");
-    Expect(0, 93856, '\P{^Block=	Medefaidrin}', "");
-    Error('\p{Blk=/a/medefaidrin}');
-    Error('\P{Blk=/a/medefaidrin}');
+    Expect(1, 93855, '\p{Block=- Medefaidrin}', "");
+    Expect(0, 93855, '\p{^Block=- Medefaidrin}', "");
+    Expect(0, 93855, '\P{Block=- Medefaidrin}', "");
+    Expect(1, 93855, '\P{^Block=- Medefaidrin}', "");
+    Expect(0, 93856, '\p{Block=- Medefaidrin}', "");
+    Expect(1, 93856, '\p{^Block=- Medefaidrin}', "");
+    Expect(1, 93856, '\P{Block=- Medefaidrin}', "");
+    Expect(0, 93856, '\P{^Block=- Medefaidrin}', "");
+    Error('\p{Blk=:=-Medefaidrin}');
+    Error('\P{Blk=:=-Medefaidrin}');
     Expect(1, 93855, '\p{Blk=:\AMedefaidrin\z:}', "");;
     Expect(0, 93856, '\p{Blk=:\AMedefaidrin\z:}', "");;
     Expect(1, 93855, '\p{Blk:medefaidrin}', "");
@@ -18522,16 +19026,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 93856, '\P{^Blk:medefaidrin}', "");
     Expect(1, 93855, '\p{Blk=:\Amedefaidrin\z:}', "");;
     Expect(0, 93856, '\p{Blk=:\Amedefaidrin\z:}', "");;
-    Expect(1, 93855, '\p{Blk=	Medefaidrin}', "");
-    Expect(0, 93855, '\p{^Blk=	Medefaidrin}', "");
-    Expect(0, 93855, '\P{Blk=	Medefaidrin}', "");
-    Expect(1, 93855, '\P{^Blk=	Medefaidrin}', "");
-    Expect(0, 93856, '\p{Blk=	Medefaidrin}', "");
-    Expect(1, 93856, '\p{^Blk=	Medefaidrin}', "");
-    Expect(1, 93856, '\P{Blk=	Medefaidrin}', "");
-    Expect(0, 93856, '\P{^Blk=	Medefaidrin}', "");
-    Error('\p{Is_Block=:=MEDEFAIDRIN}');
-    Error('\P{Is_Block=:=MEDEFAIDRIN}');
+    Expect(1, 93855, '\p{Blk= 	Medefaidrin}', "");
+    Expect(0, 93855, '\p{^Blk= 	Medefaidrin}', "");
+    Expect(0, 93855, '\P{Blk= 	Medefaidrin}', "");
+    Expect(1, 93855, '\P{^Blk= 	Medefaidrin}', "");
+    Expect(0, 93856, '\p{Blk= 	Medefaidrin}', "");
+    Expect(1, 93856, '\p{^Blk= 	Medefaidrin}', "");
+    Expect(1, 93856, '\P{Blk= 	Medefaidrin}', "");
+    Expect(0, 93856, '\P{^Blk= 	Medefaidrin}', "");
+    Error('\p{Is_Block:	-_MEDEFAIDRIN/a/}');
+    Error('\P{Is_Block:	-_MEDEFAIDRIN/a/}');
     Expect(1, 93855, '\p{Is_Block=medefaidrin}', "");
     Expect(0, 93855, '\p{^Is_Block=medefaidrin}', "");
     Expect(0, 93855, '\P{Is_Block=medefaidrin}', "");
@@ -18540,78 +19044,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 93856, '\p{^Is_Block=medefaidrin}', "");
     Expect(1, 93856, '\P{Is_Block=medefaidrin}', "");
     Expect(0, 93856, '\P{^Is_Block=medefaidrin}', "");
-    Expect(1, 93855, '\p{Is_Block=-_medefaidrin}', "");
-    Expect(0, 93855, '\p{^Is_Block=-_medefaidrin}', "");
-    Expect(0, 93855, '\P{Is_Block=-_medefaidrin}', "");
-    Expect(1, 93855, '\P{^Is_Block=-_medefaidrin}', "");
-    Expect(0, 93856, '\p{Is_Block=-_medefaidrin}', "");
-    Expect(1, 93856, '\p{^Is_Block=-_medefaidrin}', "");
-    Expect(1, 93856, '\P{Is_Block=-_medefaidrin}', "");
-    Expect(0, 93856, '\P{^Is_Block=-_medefaidrin}', "");
-    Error('\p{Is_Blk= /a/Medefaidrin}');
-    Error('\P{Is_Blk= /a/Medefaidrin}');
-    Expect(1, 93855, '\p{Is_Blk:	medefaidrin}', "");
-    Expect(0, 93855, '\p{^Is_Blk:	medefaidrin}', "");
-    Expect(0, 93855, '\P{Is_Blk:	medefaidrin}', "");
-    Expect(1, 93855, '\P{^Is_Blk:	medefaidrin}', "");
-    Expect(0, 93856, '\p{Is_Blk:	medefaidrin}', "");
-    Expect(1, 93856, '\p{^Is_Blk:	medefaidrin}', "");
-    Expect(1, 93856, '\P{Is_Blk:	medefaidrin}', "");
-    Expect(0, 93856, '\P{^Is_Blk:	medefaidrin}', "");
-    Expect(1, 93855, '\p{Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(0, 93855, '\p{^Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(0, 93855, '\P{Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(1, 93855, '\P{^Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(0, 93856, '\p{Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(1, 93856, '\p{^Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(1, 93856, '\P{Is_Blk=		MEDEFAIDRIN}', "");
-    Expect(0, 93856, '\P{^Is_Blk=		MEDEFAIDRIN}', "");
-    Error('\p{Block=	/a/Meetei_MAYEK}');
-    Error('\P{Block=	/a/Meetei_MAYEK}');
+    Expect(1, 93855, '\p{Is_Block:	 	Medefaidrin}', "");
+    Expect(0, 93855, '\p{^Is_Block:	 	Medefaidrin}', "");
+    Expect(0, 93855, '\P{Is_Block:	 	Medefaidrin}', "");
+    Expect(1, 93855, '\P{^Is_Block:	 	Medefaidrin}', "");
+    Expect(0, 93856, '\p{Is_Block:	 	Medefaidrin}', "");
+    Expect(1, 93856, '\p{^Is_Block:	 	Medefaidrin}', "");
+    Expect(1, 93856, '\P{Is_Block:	 	Medefaidrin}', "");
+    Expect(0, 93856, '\P{^Is_Block:	 	Medefaidrin}', "");
+    Error('\p{Is_Blk=	Medefaidrin:=}');
+    Error('\P{Is_Blk=	Medefaidrin:=}');
+    Expect(1, 93855, '\p{Is_Blk=medefaidrin}', "");
+    Expect(0, 93855, '\p{^Is_Blk=medefaidrin}', "");
+    Expect(0, 93855, '\P{Is_Blk=medefaidrin}', "");
+    Expect(1, 93855, '\P{^Is_Blk=medefaidrin}', "");
+    Expect(0, 93856, '\p{Is_Blk=medefaidrin}', "");
+    Expect(1, 93856, '\p{^Is_Blk=medefaidrin}', "");
+    Expect(1, 93856, '\P{Is_Blk=medefaidrin}', "");
+    Expect(0, 93856, '\P{^Is_Blk=medefaidrin}', "");
+    Expect(1, 93855, '\p{Is_Blk=	-Medefaidrin}', "");
+    Expect(0, 93855, '\p{^Is_Blk=	-Medefaidrin}', "");
+    Expect(0, 93855, '\P{Is_Blk=	-Medefaidrin}', "");
+    Expect(1, 93855, '\P{^Is_Blk=	-Medefaidrin}', "");
+    Expect(0, 93856, '\p{Is_Blk=	-Medefaidrin}', "");
+    Expect(1, 93856, '\p{^Is_Blk=	-Medefaidrin}', "");
+    Expect(1, 93856, '\P{Is_Blk=	-Medefaidrin}', "");
+    Expect(0, 93856, '\P{^Is_Blk=	-Medefaidrin}', "");
+    Error('\p{Block=	-MEETEI_Mayek/a/}');
+    Error('\P{Block=	-MEETEI_Mayek/a/}');
     Expect(1, 44031, '\p{Block=:\AMeetei_Mayek\z:}', "");;
     Expect(0, 44032, '\p{Block=:\AMeetei_Mayek\z:}', "");;
-    Expect(1, 44031, '\p{Block=meeteimayek}', "");
-    Expect(0, 44031, '\p{^Block=meeteimayek}', "");
-    Expect(0, 44031, '\P{Block=meeteimayek}', "");
-    Expect(1, 44031, '\P{^Block=meeteimayek}', "");
-    Expect(0, 44032, '\p{Block=meeteimayek}', "");
-    Expect(1, 44032, '\p{^Block=meeteimayek}', "");
-    Expect(1, 44032, '\P{Block=meeteimayek}', "");
-    Expect(0, 44032, '\P{^Block=meeteimayek}', "");
+    Expect(1, 44031, '\p{Block:meeteimayek}', "");
+    Expect(0, 44031, '\p{^Block:meeteimayek}', "");
+    Expect(0, 44031, '\P{Block:meeteimayek}', "");
+    Expect(1, 44031, '\P{^Block:meeteimayek}', "");
+    Expect(0, 44032, '\p{Block:meeteimayek}', "");
+    Expect(1, 44032, '\p{^Block:meeteimayek}', "");
+    Expect(1, 44032, '\P{Block:meeteimayek}', "");
+    Expect(0, 44032, '\P{^Block:meeteimayek}', "");
     Expect(1, 44031, '\p{Block=:\Ameeteimayek\z:}', "");;
     Expect(0, 44032, '\p{Block=:\Ameeteimayek\z:}', "");;
-    Expect(1, 44031, '\p{Block=  Meetei_Mayek}', "");
-    Expect(0, 44031, '\p{^Block=  Meetei_Mayek}', "");
-    Expect(0, 44031, '\P{Block=  Meetei_Mayek}', "");
-    Expect(1, 44031, '\P{^Block=  Meetei_Mayek}', "");
-    Expect(0, 44032, '\p{Block=  Meetei_Mayek}', "");
-    Expect(1, 44032, '\p{^Block=  Meetei_Mayek}', "");
-    Expect(1, 44032, '\P{Block=  Meetei_Mayek}', "");
-    Expect(0, 44032, '\P{^Block=  Meetei_Mayek}', "");
-    Error('\p{Blk=MEETEI_Mayek/a/}');
-    Error('\P{Blk=MEETEI_Mayek/a/}');
+    Expect(1, 44031, '\p{Block=  meetei_Mayek}', "");
+    Expect(0, 44031, '\p{^Block=  meetei_Mayek}', "");
+    Expect(0, 44031, '\P{Block=  meetei_Mayek}', "");
+    Expect(1, 44031, '\P{^Block=  meetei_Mayek}', "");
+    Expect(0, 44032, '\p{Block=  meetei_Mayek}', "");
+    Expect(1, 44032, '\p{^Block=  meetei_Mayek}', "");
+    Expect(1, 44032, '\P{Block=  meetei_Mayek}', "");
+    Expect(0, 44032, '\P{^Block=  meetei_Mayek}', "");
+    Error('\p{Blk=_	meetei_mayek/a/}');
+    Error('\P{Blk=_	meetei_mayek/a/}');
     Expect(1, 44031, '\p{Blk=:\AMeetei_Mayek\z:}', "");;
     Expect(0, 44032, '\p{Blk=:\AMeetei_Mayek\z:}', "");;
-    Expect(1, 44031, '\p{Blk=meeteimayek}', "");
-    Expect(0, 44031, '\p{^Blk=meeteimayek}', "");
-    Expect(0, 44031, '\P{Blk=meeteimayek}', "");
-    Expect(1, 44031, '\P{^Blk=meeteimayek}', "");
-    Expect(0, 44032, '\p{Blk=meeteimayek}', "");
-    Expect(1, 44032, '\p{^Blk=meeteimayek}', "");
-    Expect(1, 44032, '\P{Blk=meeteimayek}', "");
-    Expect(0, 44032, '\P{^Blk=meeteimayek}', "");
+    Expect(1, 44031, '\p{Blk: meeteimayek}', "");
+    Expect(0, 44031, '\p{^Blk: meeteimayek}', "");
+    Expect(0, 44031, '\P{Blk: meeteimayek}', "");
+    Expect(1, 44031, '\P{^Blk: meeteimayek}', "");
+    Expect(0, 44032, '\p{Blk: meeteimayek}', "");
+    Expect(1, 44032, '\p{^Blk: meeteimayek}', "");
+    Expect(1, 44032, '\P{Blk: meeteimayek}', "");
+    Expect(0, 44032, '\P{^Blk: meeteimayek}', "");
     Expect(1, 44031, '\p{Blk=:\Ameeteimayek\z:}', "");;
     Expect(0, 44032, '\p{Blk=:\Ameeteimayek\z:}', "");;
-    Expect(1, 44031, '\p{Blk=	_Meetei_Mayek}', "");
-    Expect(0, 44031, '\p{^Blk=	_Meetei_Mayek}', "");
-    Expect(0, 44031, '\P{Blk=	_Meetei_Mayek}', "");
-    Expect(1, 44031, '\P{^Blk=	_Meetei_Mayek}', "");
-    Expect(0, 44032, '\p{Blk=	_Meetei_Mayek}', "");
-    Expect(1, 44032, '\p{^Blk=	_Meetei_Mayek}', "");
-    Expect(1, 44032, '\P{Blk=	_Meetei_Mayek}', "");
-    Expect(0, 44032, '\P{^Blk=	_Meetei_Mayek}', "");
-    Error('\p{Is_Block=__Meetei_Mayek/a/}');
-    Error('\P{Is_Block=__Meetei_Mayek/a/}');
+    Expect(1, 44031, '\p{Blk=__meetei_MAYEK}', "");
+    Expect(0, 44031, '\p{^Blk=__meetei_MAYEK}', "");
+    Expect(0, 44031, '\P{Blk=__meetei_MAYEK}', "");
+    Expect(1, 44031, '\P{^Blk=__meetei_MAYEK}', "");
+    Expect(0, 44032, '\p{Blk=__meetei_MAYEK}', "");
+    Expect(1, 44032, '\p{^Blk=__meetei_MAYEK}', "");
+    Expect(1, 44032, '\P{Blk=__meetei_MAYEK}', "");
+    Expect(0, 44032, '\P{^Blk=__meetei_MAYEK}', "");
+    Error('\p{Is_Block=_/a/Meetei_MAYEK}');
+    Error('\P{Is_Block=_/a/Meetei_MAYEK}');
     Expect(1, 44031, '\p{Is_Block=meeteimayek}', "");
     Expect(0, 44031, '\p{^Is_Block=meeteimayek}', "");
     Expect(0, 44031, '\P{Is_Block=meeteimayek}', "");
@@ -18620,16 +19124,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 44032, '\p{^Is_Block=meeteimayek}', "");
     Expect(1, 44032, '\P{Is_Block=meeteimayek}', "");
     Expect(0, 44032, '\P{^Is_Block=meeteimayek}', "");
-    Expect(1, 44031, '\p{Is_Block=--MEETEI_Mayek}', "");
-    Expect(0, 44031, '\p{^Is_Block=--MEETEI_Mayek}', "");
-    Expect(0, 44031, '\P{Is_Block=--MEETEI_Mayek}', "");
-    Expect(1, 44031, '\P{^Is_Block=--MEETEI_Mayek}', "");
-    Expect(0, 44032, '\p{Is_Block=--MEETEI_Mayek}', "");
-    Expect(1, 44032, '\p{^Is_Block=--MEETEI_Mayek}', "");
-    Expect(1, 44032, '\P{Is_Block=--MEETEI_Mayek}', "");
-    Expect(0, 44032, '\P{^Is_Block=--MEETEI_Mayek}', "");
-    Error('\p{Is_Blk=/a/ -MEETEI_mayek}');
-    Error('\P{Is_Blk=/a/ -MEETEI_mayek}');
+    Expect(1, 44031, '\p{Is_Block=-	meetei_Mayek}', "");
+    Expect(0, 44031, '\p{^Is_Block=-	meetei_Mayek}', "");
+    Expect(0, 44031, '\P{Is_Block=-	meetei_Mayek}', "");
+    Expect(1, 44031, '\P{^Is_Block=-	meetei_Mayek}', "");
+    Expect(0, 44032, '\p{Is_Block=-	meetei_Mayek}', "");
+    Expect(1, 44032, '\p{^Is_Block=-	meetei_Mayek}', "");
+    Expect(1, 44032, '\P{Is_Block=-	meetei_Mayek}', "");
+    Expect(0, 44032, '\P{^Is_Block=-	meetei_Mayek}', "");
+    Error('\p{Is_Blk=-:=Meetei_MAYEK}');
+    Error('\P{Is_Blk=-:=Meetei_MAYEK}');
     Expect(1, 44031, '\p{Is_Blk=meeteimayek}', "");
     Expect(0, 44031, '\p{^Is_Blk=meeteimayek}', "");
     Expect(0, 44031, '\P{Is_Blk=meeteimayek}', "");
@@ -18638,16 +19142,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 44032, '\p{^Is_Blk=meeteimayek}', "");
     Expect(1, 44032, '\P{Is_Blk=meeteimayek}', "");
     Expect(0, 44032, '\P{^Is_Blk=meeteimayek}', "");
-    Expect(1, 44031, '\p{Is_Blk=- meetei_mayek}', "");
-    Expect(0, 44031, '\p{^Is_Blk=- meetei_mayek}', "");
-    Expect(0, 44031, '\P{Is_Blk=- meetei_mayek}', "");
-    Expect(1, 44031, '\P{^Is_Blk=- meetei_mayek}', "");
-    Expect(0, 44032, '\p{Is_Blk=- meetei_mayek}', "");
-    Expect(1, 44032, '\p{^Is_Blk=- meetei_mayek}', "");
-    Expect(1, 44032, '\P{Is_Blk=- meetei_mayek}', "");
-    Expect(0, 44032, '\P{^Is_Blk=- meetei_mayek}', "");
-    Error('\p{Block=-_MEETEI_MAYEK_extensions:=}');
-    Error('\P{Block=-_MEETEI_MAYEK_extensions:=}');
+    Expect(1, 44031, '\p{Is_Blk=-Meetei_Mayek}', "");
+    Expect(0, 44031, '\p{^Is_Blk=-Meetei_Mayek}', "");
+    Expect(0, 44031, '\P{Is_Blk=-Meetei_Mayek}', "");
+    Expect(1, 44031, '\P{^Is_Blk=-Meetei_Mayek}', "");
+    Expect(0, 44032, '\p{Is_Blk=-Meetei_Mayek}', "");
+    Expect(1, 44032, '\p{^Is_Blk=-Meetei_Mayek}', "");
+    Expect(1, 44032, '\P{Is_Blk=-Meetei_Mayek}', "");
+    Expect(0, 44032, '\P{^Is_Blk=-Meetei_Mayek}', "");
+    Error('\p{Block:   -:=Meetei_Mayek_Extensions}');
+    Error('\P{Block:   -:=Meetei_Mayek_Extensions}');
     Expect(1, 43775, '\p{Block=:\AMeetei_Mayek_Extensions\z:}', "");;
     Expect(0, 43776, '\p{Block=:\AMeetei_Mayek_Extensions\z:}', "");;
     Expect(1, 43775, '\p{Block=meeteimayekextensions}', "");
@@ -18660,16 +19164,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43776, '\P{^Block=meeteimayekextensions}', "");
     Expect(1, 43775, '\p{Block=:\Ameeteimayekextensions\z:}', "");;
     Expect(0, 43776, '\p{Block=:\Ameeteimayekextensions\z:}', "");;
-    Expect(1, 43775, '\p{Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(0, 43775, '\p{^Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(0, 43775, '\P{Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(1, 43775, '\P{^Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(0, 43776, '\p{Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(1, 43776, '\p{^Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(1, 43776, '\P{Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Expect(0, 43776, '\P{^Block=--Meetei_Mayek_EXTENSIONS}', "");
-    Error('\p{Blk=_:=meetei_mayek_ext}');
-    Error('\P{Blk=_:=meetei_mayek_ext}');
+    Expect(1, 43775, '\p{Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(0, 43775, '\p{^Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(0, 43775, '\P{Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(1, 43775, '\P{^Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(0, 43776, '\p{Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(1, 43776, '\p{^Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(1, 43776, '\P{Block=-_Meetei_Mayek_Extensions}', "");
+    Expect(0, 43776, '\P{^Block=-_Meetei_Mayek_Extensions}', "");
+    Error('\p{Blk= /a/Meetei_mayek_ext}');
+    Error('\P{Blk= /a/Meetei_mayek_ext}');
     Expect(1, 43775, '\p{Blk=:\AMeetei_Mayek_Ext\z:}', "");;
     Expect(0, 43776, '\p{Blk=:\AMeetei_Mayek_Ext\z:}', "");;
     Expect(1, 43775, '\p{Blk=meeteimayekext}', "");
@@ -18682,16 +19186,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43776, '\P{^Blk=meeteimayekext}', "");
     Expect(1, 43775, '\p{Blk=:\Ameeteimayekext\z:}', "");;
     Expect(0, 43776, '\p{Blk=:\Ameeteimayekext\z:}', "");;
-    Expect(1, 43775, '\p{Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(0, 43775, '\p{^Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(0, 43775, '\P{Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(1, 43775, '\P{^Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(0, 43776, '\p{Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(1, 43776, '\p{^Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(1, 43776, '\P{Blk:		_MEETEI_Mayek_Ext}', "");
-    Expect(0, 43776, '\P{^Blk:		_MEETEI_Mayek_Ext}', "");
-    Error('\p{Is_Block=/a/meetei_Mayek_Extensions}');
-    Error('\P{Is_Block=/a/meetei_Mayek_Extensions}');
+    Expect(1, 43775, '\p{Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(0, 43775, '\p{^Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(0, 43775, '\P{Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(1, 43775, '\P{^Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(0, 43776, '\p{Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(1, 43776, '\p{^Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(1, 43776, '\P{Blk=_ Meetei_MAYEK_ext}', "");
+    Expect(0, 43776, '\P{^Blk=_ Meetei_MAYEK_ext}', "");
+    Error('\p{Is_Block=_/a/Meetei_mayek_EXTENSIONS}');
+    Error('\P{Is_Block=_/a/Meetei_mayek_EXTENSIONS}');
     Expect(1, 43775, '\p{Is_Block=meeteimayekextensions}', "");
     Expect(0, 43775, '\p{^Is_Block=meeteimayekextensions}', "");
     Expect(0, 43775, '\P{Is_Block=meeteimayekextensions}', "");
@@ -18700,56 +19204,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43776, '\p{^Is_Block=meeteimayekextensions}', "");
     Expect(1, 43776, '\P{Is_Block=meeteimayekextensions}', "");
     Expect(0, 43776, '\P{^Is_Block=meeteimayekextensions}', "");
-    Expect(1, 43775, '\p{Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(0, 43775, '\p{^Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(0, 43775, '\P{Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(1, 43775, '\P{^Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(0, 43776, '\p{Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(1, 43776, '\p{^Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(1, 43776, '\P{Is_Block=--MEETEI_Mayek_extensions}', "");
-    Expect(0, 43776, '\P{^Is_Block=--MEETEI_Mayek_extensions}', "");
-    Error('\p{Is_Blk= 	Meetei_mayek_ext:=}');
-    Error('\P{Is_Blk= 	Meetei_mayek_ext:=}');
-    Expect(1, 43775, '\p{Is_Blk=meeteimayekext}', "");
-    Expect(0, 43775, '\p{^Is_Blk=meeteimayekext}', "");
-    Expect(0, 43775, '\P{Is_Blk=meeteimayekext}', "");
-    Expect(1, 43775, '\P{^Is_Blk=meeteimayekext}', "");
-    Expect(0, 43776, '\p{Is_Blk=meeteimayekext}', "");
-    Expect(1, 43776, '\p{^Is_Blk=meeteimayekext}', "");
-    Expect(1, 43776, '\P{Is_Blk=meeteimayekext}', "");
-    Expect(0, 43776, '\P{^Is_Blk=meeteimayekext}', "");
-    Expect(1, 43775, '\p{Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(0, 43775, '\p{^Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(0, 43775, '\P{Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(1, 43775, '\P{^Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(0, 43776, '\p{Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(1, 43776, '\p{^Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(1, 43776, '\P{Is_Blk:	_meetei_mayek_ext}', "");
-    Expect(0, 43776, '\P{^Is_Blk:	_meetei_mayek_ext}', "");
-    Error('\p{Block=	_Mende_KIKAKUI:=}');
-    Error('\P{Block=	_Mende_KIKAKUI:=}');
+    Expect(1, 43775, '\p{Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(0, 43775, '\p{^Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(0, 43775, '\P{Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(1, 43775, '\P{^Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(0, 43776, '\p{Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(1, 43776, '\p{^Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(1, 43776, '\P{Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Expect(0, 43776, '\P{^Is_Block=_-MEETEI_Mayek_extensions}', "");
+    Error('\p{Is_Blk=:=meetei_mayek_Ext}');
+    Error('\P{Is_Blk=:=meetei_mayek_Ext}');
+    Expect(1, 43775, '\p{Is_Blk:	meeteimayekext}', "");
+    Expect(0, 43775, '\p{^Is_Blk:	meeteimayekext}', "");
+    Expect(0, 43775, '\P{Is_Blk:	meeteimayekext}', "");
+    Expect(1, 43775, '\P{^Is_Blk:	meeteimayekext}', "");
+    Expect(0, 43776, '\p{Is_Blk:	meeteimayekext}', "");
+    Expect(1, 43776, '\p{^Is_Blk:	meeteimayekext}', "");
+    Expect(1, 43776, '\P{Is_Blk:	meeteimayekext}', "");
+    Expect(0, 43776, '\P{^Is_Blk:	meeteimayekext}', "");
+    Expect(1, 43775, '\p{Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(0, 43775, '\p{^Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(0, 43775, '\P{Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(1, 43775, '\P{^Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(0, 43776, '\p{Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(1, 43776, '\p{^Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(1, 43776, '\P{Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Expect(0, 43776, '\P{^Is_Blk:	 Meetei_Mayek_Ext}', "");
+    Error('\p{Block=/a/_ Mende_Kikakui}');
+    Error('\P{Block=/a/_ Mende_Kikakui}');
     Expect(1, 125151, '\p{Block=:\AMende_Kikakui\z:}', "");;
     Expect(0, 125152, '\p{Block=:\AMende_Kikakui\z:}', "");;
-    Expect(1, 125151, '\p{Block=mendekikakui}', "");
-    Expect(0, 125151, '\p{^Block=mendekikakui}', "");
-    Expect(0, 125151, '\P{Block=mendekikakui}', "");
-    Expect(1, 125151, '\P{^Block=mendekikakui}', "");
-    Expect(0, 125152, '\p{Block=mendekikakui}', "");
-    Expect(1, 125152, '\p{^Block=mendekikakui}', "");
-    Expect(1, 125152, '\P{Block=mendekikakui}', "");
-    Expect(0, 125152, '\P{^Block=mendekikakui}', "");
+    Expect(1, 125151, '\p{Block: mendekikakui}', "");
+    Expect(0, 125151, '\p{^Block: mendekikakui}', "");
+    Expect(0, 125151, '\P{Block: mendekikakui}', "");
+    Expect(1, 125151, '\P{^Block: mendekikakui}', "");
+    Expect(0, 125152, '\p{Block: mendekikakui}', "");
+    Expect(1, 125152, '\p{^Block: mendekikakui}', "");
+    Expect(1, 125152, '\P{Block: mendekikakui}', "");
+    Expect(0, 125152, '\P{^Block: mendekikakui}', "");
     Expect(1, 125151, '\p{Block=:\Amendekikakui\z:}', "");;
     Expect(0, 125152, '\p{Block=:\Amendekikakui\z:}', "");;
-    Expect(1, 125151, '\p{Block= mende_Kikakui}', "");
-    Expect(0, 125151, '\p{^Block= mende_Kikakui}', "");
-    Expect(0, 125151, '\P{Block= mende_Kikakui}', "");
-    Expect(1, 125151, '\P{^Block= mende_Kikakui}', "");
-    Expect(0, 125152, '\p{Block= mende_Kikakui}', "");
-    Expect(1, 125152, '\p{^Block= mende_Kikakui}', "");
-    Expect(1, 125152, '\P{Block= mende_Kikakui}', "");
-    Expect(0, 125152, '\P{^Block= mende_Kikakui}', "");
-    Error('\p{Blk=-:=Mende_KIKAKUI}');
-    Error('\P{Blk=-:=Mende_KIKAKUI}');
+    Expect(1, 125151, '\p{Block=_	Mende_KIKAKUI}', "");
+    Expect(0, 125151, '\p{^Block=_	Mende_KIKAKUI}', "");
+    Expect(0, 125151, '\P{Block=_	Mende_KIKAKUI}', "");
+    Expect(1, 125151, '\P{^Block=_	Mende_KIKAKUI}', "");
+    Expect(0, 125152, '\p{Block=_	Mende_KIKAKUI}', "");
+    Expect(1, 125152, '\p{^Block=_	Mende_KIKAKUI}', "");
+    Expect(1, 125152, '\P{Block=_	Mende_KIKAKUI}', "");
+    Expect(0, 125152, '\P{^Block=_	Mende_KIKAKUI}', "");
+    Error('\p{Blk=	-MENDE_kikakui/a/}');
+    Error('\P{Blk=	-MENDE_kikakui/a/}');
     Expect(1, 125151, '\p{Blk=:\AMende_Kikakui\z:}', "");;
     Expect(0, 125152, '\p{Blk=:\AMende_Kikakui\z:}', "");;
     Expect(1, 125151, '\p{Blk=mendekikakui}', "");
@@ -18762,34 +19266,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125152, '\P{^Blk=mendekikakui}', "");
     Expect(1, 125151, '\p{Blk=:\Amendekikakui\z:}', "");;
     Expect(0, 125152, '\p{Blk=:\Amendekikakui\z:}', "");;
-    Expect(1, 125151, '\p{Blk=-_mende_kikakui}', "");
-    Expect(0, 125151, '\p{^Blk=-_mende_kikakui}', "");
-    Expect(0, 125151, '\P{Blk=-_mende_kikakui}', "");
-    Expect(1, 125151, '\P{^Blk=-_mende_kikakui}', "");
-    Expect(0, 125152, '\p{Blk=-_mende_kikakui}', "");
-    Expect(1, 125152, '\p{^Blk=-_mende_kikakui}', "");
-    Expect(1, 125152, '\P{Blk=-_mende_kikakui}', "");
-    Expect(0, 125152, '\P{^Blk=-_mende_kikakui}', "");
-    Error('\p{Is_Block=:=_mende_kikakui}');
-    Error('\P{Is_Block=:=_mende_kikakui}');
-    Expect(1, 125151, '\p{Is_Block:   mendekikakui}', "");
-    Expect(0, 125151, '\p{^Is_Block:   mendekikakui}', "");
-    Expect(0, 125151, '\P{Is_Block:   mendekikakui}', "");
-    Expect(1, 125151, '\P{^Is_Block:   mendekikakui}', "");
-    Expect(0, 125152, '\p{Is_Block:   mendekikakui}', "");
-    Expect(1, 125152, '\p{^Is_Block:   mendekikakui}', "");
-    Expect(1, 125152, '\P{Is_Block:   mendekikakui}', "");
-    Expect(0, 125152, '\P{^Is_Block:   mendekikakui}', "");
-    Expect(1, 125151, '\p{Is_Block=_MENDE_kikakui}', "");
-    Expect(0, 125151, '\p{^Is_Block=_MENDE_kikakui}', "");
-    Expect(0, 125151, '\P{Is_Block=_MENDE_kikakui}', "");
-    Expect(1, 125151, '\P{^Is_Block=_MENDE_kikakui}', "");
-    Expect(0, 125152, '\p{Is_Block=_MENDE_kikakui}', "");
-    Expect(1, 125152, '\p{^Is_Block=_MENDE_kikakui}', "");
-    Expect(1, 125152, '\P{Is_Block=_MENDE_kikakui}', "");
-    Expect(0, 125152, '\P{^Is_Block=_MENDE_kikakui}', "");
-    Error('\p{Is_Blk=/a/mende_Kikakui}');
-    Error('\P{Is_Blk=/a/mende_Kikakui}');
+    Expect(1, 125151, '\p{Blk= _Mende_Kikakui}', "");
+    Expect(0, 125151, '\p{^Blk= _Mende_Kikakui}', "");
+    Expect(0, 125151, '\P{Blk= _Mende_Kikakui}', "");
+    Expect(1, 125151, '\P{^Blk= _Mende_Kikakui}', "");
+    Expect(0, 125152, '\p{Blk= _Mende_Kikakui}', "");
+    Expect(1, 125152, '\p{^Blk= _Mende_Kikakui}', "");
+    Expect(1, 125152, '\P{Blk= _Mende_Kikakui}', "");
+    Expect(0, 125152, '\P{^Blk= _Mende_Kikakui}', "");
+    Error('\p{Is_Block=	_Mende_Kikakui:=}');
+    Error('\P{Is_Block=	_Mende_Kikakui:=}');
+    Expect(1, 125151, '\p{Is_Block=mendekikakui}', "");
+    Expect(0, 125151, '\p{^Is_Block=mendekikakui}', "");
+    Expect(0, 125151, '\P{Is_Block=mendekikakui}', "");
+    Expect(1, 125151, '\P{^Is_Block=mendekikakui}', "");
+    Expect(0, 125152, '\p{Is_Block=mendekikakui}', "");
+    Expect(1, 125152, '\p{^Is_Block=mendekikakui}', "");
+    Expect(1, 125152, '\P{Is_Block=mendekikakui}', "");
+    Expect(0, 125152, '\P{^Is_Block=mendekikakui}', "");
+    Expect(1, 125151, '\p{Is_Block=	mende_KIKAKUI}', "");
+    Expect(0, 125151, '\p{^Is_Block=	mende_KIKAKUI}', "");
+    Expect(0, 125151, '\P{Is_Block=	mende_KIKAKUI}', "");
+    Expect(1, 125151, '\P{^Is_Block=	mende_KIKAKUI}', "");
+    Expect(0, 125152, '\p{Is_Block=	mende_KIKAKUI}', "");
+    Expect(1, 125152, '\p{^Is_Block=	mende_KIKAKUI}', "");
+    Expect(1, 125152, '\P{Is_Block=	mende_KIKAKUI}', "");
+    Expect(0, 125152, '\P{^Is_Block=	mende_KIKAKUI}', "");
+    Error('\p{Is_Blk=:= -mende_KIKAKUI}');
+    Error('\P{Is_Blk=:= -mende_KIKAKUI}');
     Expect(1, 125151, '\p{Is_Blk=mendekikakui}', "");
     Expect(0, 125151, '\p{^Is_Blk=mendekikakui}', "");
     Expect(0, 125151, '\P{Is_Blk=mendekikakui}', "");
@@ -18798,16 +19302,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125152, '\p{^Is_Blk=mendekikakui}', "");
     Expect(1, 125152, '\P{Is_Blk=mendekikakui}', "");
     Expect(0, 125152, '\P{^Is_Blk=mendekikakui}', "");
-    Expect(1, 125151, '\p{Is_Blk=-Mende_kikakui}', "");
-    Expect(0, 125151, '\p{^Is_Blk=-Mende_kikakui}', "");
-    Expect(0, 125151, '\P{Is_Blk=-Mende_kikakui}', "");
-    Expect(1, 125151, '\P{^Is_Blk=-Mende_kikakui}', "");
-    Expect(0, 125152, '\p{Is_Blk=-Mende_kikakui}', "");
-    Expect(1, 125152, '\p{^Is_Blk=-Mende_kikakui}', "");
-    Expect(1, 125152, '\P{Is_Blk=-Mende_kikakui}', "");
-    Expect(0, 125152, '\P{^Is_Blk=-Mende_kikakui}', "");
-    Error('\p{Block:   -meroitic_Cursive:=}');
-    Error('\P{Block:   -meroitic_Cursive:=}');
+    Expect(1, 125151, '\p{Is_Blk=  Mende_kikakui}', "");
+    Expect(0, 125151, '\p{^Is_Blk=  Mende_kikakui}', "");
+    Expect(0, 125151, '\P{Is_Blk=  Mende_kikakui}', "");
+    Expect(1, 125151, '\P{^Is_Blk=  Mende_kikakui}', "");
+    Expect(0, 125152, '\p{Is_Blk=  Mende_kikakui}', "");
+    Expect(1, 125152, '\p{^Is_Blk=  Mende_kikakui}', "");
+    Expect(1, 125152, '\P{Is_Blk=  Mende_kikakui}', "");
+    Expect(0, 125152, '\P{^Is_Blk=  Mende_kikakui}', "");
+    Error('\p{Block= /a/MEROITIC_cursive}');
+    Error('\P{Block= /a/MEROITIC_cursive}');
     Expect(1, 68095, '\p{Block=:\AMeroitic_Cursive\z:}', "");;
     Expect(0, 68096, '\p{Block=:\AMeroitic_Cursive\z:}', "");;
     Expect(1, 68095, '\p{Block=meroiticcursive}', "");
@@ -18820,16 +19324,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68096, '\P{^Block=meroiticcursive}', "");
     Expect(1, 68095, '\p{Block=:\Ameroiticcursive\z:}', "");;
     Expect(0, 68096, '\p{Block=:\Ameroiticcursive\z:}', "");;
-    Expect(1, 68095, '\p{Block=-_MEROITIC_CURSIVE}', "");
-    Expect(0, 68095, '\p{^Block=-_MEROITIC_CURSIVE}', "");
-    Expect(0, 68095, '\P{Block=-_MEROITIC_CURSIVE}', "");
-    Expect(1, 68095, '\P{^Block=-_MEROITIC_CURSIVE}', "");
-    Expect(0, 68096, '\p{Block=-_MEROITIC_CURSIVE}', "");
-    Expect(1, 68096, '\p{^Block=-_MEROITIC_CURSIVE}', "");
-    Expect(1, 68096, '\P{Block=-_MEROITIC_CURSIVE}', "");
-    Expect(0, 68096, '\P{^Block=-_MEROITIC_CURSIVE}', "");
-    Error('\p{Blk= -Meroitic_Cursive/a/}');
-    Error('\P{Blk= -Meroitic_Cursive/a/}');
+    Expect(1, 68095, '\p{Block=--Meroitic_cursive}', "");
+    Expect(0, 68095, '\p{^Block=--Meroitic_cursive}', "");
+    Expect(0, 68095, '\P{Block=--Meroitic_cursive}', "");
+    Expect(1, 68095, '\P{^Block=--Meroitic_cursive}', "");
+    Expect(0, 68096, '\p{Block=--Meroitic_cursive}', "");
+    Expect(1, 68096, '\p{^Block=--Meroitic_cursive}', "");
+    Expect(1, 68096, '\P{Block=--Meroitic_cursive}', "");
+    Expect(0, 68096, '\P{^Block=--Meroitic_cursive}', "");
+    Error('\p{Blk=_/a/MEROITIC_CURSIVE}');
+    Error('\P{Blk=_/a/MEROITIC_CURSIVE}');
     Expect(1, 68095, '\p{Blk=:\AMeroitic_Cursive\z:}', "");;
     Expect(0, 68096, '\p{Blk=:\AMeroitic_Cursive\z:}', "");;
     Expect(1, 68095, '\p{Blk=meroiticcursive}', "");
@@ -18842,16 +19346,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68096, '\P{^Blk=meroiticcursive}', "");
     Expect(1, 68095, '\p{Blk=:\Ameroiticcursive\z:}', "");;
     Expect(0, 68096, '\p{Blk=:\Ameroiticcursive\z:}', "");;
-    Expect(1, 68095, '\p{Blk=	meroitic_Cursive}', "");
-    Expect(0, 68095, '\p{^Blk=	meroitic_Cursive}', "");
-    Expect(0, 68095, '\P{Blk=	meroitic_Cursive}', "");
-    Expect(1, 68095, '\P{^Blk=	meroitic_Cursive}', "");
-    Expect(0, 68096, '\p{Blk=	meroitic_Cursive}', "");
-    Expect(1, 68096, '\p{^Blk=	meroitic_Cursive}', "");
-    Expect(1, 68096, '\P{Blk=	meroitic_Cursive}', "");
-    Expect(0, 68096, '\P{^Blk=	meroitic_Cursive}', "");
-    Error('\p{Is_Block=-_Meroitic_cursive/a/}');
-    Error('\P{Is_Block=-_Meroitic_cursive/a/}');
+    Expect(1, 68095, '\p{Blk=	_Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\p{^Blk=	_Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\P{Blk=	_Meroitic_CURSIVE}', "");
+    Expect(1, 68095, '\P{^Blk=	_Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\p{Blk=	_Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\p{^Blk=	_Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\P{Blk=	_Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\P{^Blk=	_Meroitic_CURSIVE}', "");
+    Error('\p{Is_Block=Meroitic_CURSIVE/a/}');
+    Error('\P{Is_Block=Meroitic_CURSIVE/a/}');
     Expect(1, 68095, '\p{Is_Block=meroiticcursive}', "");
     Expect(0, 68095, '\p{^Is_Block=meroiticcursive}', "");
     Expect(0, 68095, '\P{Is_Block=meroiticcursive}', "");
@@ -18860,16 +19364,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68096, '\p{^Is_Block=meroiticcursive}', "");
     Expect(1, 68096, '\P{Is_Block=meroiticcursive}', "");
     Expect(0, 68096, '\P{^Is_Block=meroiticcursive}', "");
-    Expect(1, 68095, '\p{Is_Block=__MEROITIC_Cursive}', "");
-    Expect(0, 68095, '\p{^Is_Block=__MEROITIC_Cursive}', "");
-    Expect(0, 68095, '\P{Is_Block=__MEROITIC_Cursive}', "");
-    Expect(1, 68095, '\P{^Is_Block=__MEROITIC_Cursive}', "");
-    Expect(0, 68096, '\p{Is_Block=__MEROITIC_Cursive}', "");
-    Expect(1, 68096, '\p{^Is_Block=__MEROITIC_Cursive}', "");
-    Expect(1, 68096, '\P{Is_Block=__MEROITIC_Cursive}', "");
-    Expect(0, 68096, '\P{^Is_Block=__MEROITIC_Cursive}', "");
-    Error('\p{Is_Blk=-/a/MEROITIC_Cursive}');
-    Error('\P{Is_Blk=-/a/MEROITIC_Cursive}');
+    Expect(1, 68095, '\p{Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\p{^Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\P{Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(1, 68095, '\P{^Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\p{Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\p{^Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\P{Is_Block=-Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\P{^Is_Block=-Meroitic_CURSIVE}', "");
+    Error('\p{Is_Blk=	/a/Meroitic_cursive}');
+    Error('\P{Is_Blk=	/a/Meroitic_cursive}');
     Expect(1, 68095, '\p{Is_Blk=meroiticcursive}', "");
     Expect(0, 68095, '\p{^Is_Blk=meroiticcursive}', "");
     Expect(0, 68095, '\P{Is_Blk=meroiticcursive}', "");
@@ -18878,16 +19382,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68096, '\p{^Is_Blk=meroiticcursive}', "");
     Expect(1, 68096, '\P{Is_Blk=meroiticcursive}', "");
     Expect(0, 68096, '\P{^Is_Blk=meroiticcursive}', "");
-    Expect(1, 68095, '\p{Is_Blk=-Meroitic_cursive}', "");
-    Expect(0, 68095, '\p{^Is_Blk=-Meroitic_cursive}', "");
-    Expect(0, 68095, '\P{Is_Blk=-Meroitic_cursive}', "");
-    Expect(1, 68095, '\P{^Is_Blk=-Meroitic_cursive}', "");
-    Expect(0, 68096, '\p{Is_Blk=-Meroitic_cursive}', "");
-    Expect(1, 68096, '\p{^Is_Blk=-Meroitic_cursive}', "");
-    Expect(1, 68096, '\P{Is_Blk=-Meroitic_cursive}', "");
-    Expect(0, 68096, '\P{^Is_Blk=-Meroitic_cursive}', "");
-    Error('\p{Block=/a/	 Meroitic_hieroglyphs}');
-    Error('\P{Block=/a/	 Meroitic_hieroglyphs}');
+    Expect(1, 68095, '\p{Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(0, 68095, '\p{^Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(0, 68095, '\P{Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(1, 68095, '\P{^Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(0, 68096, '\p{Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(1, 68096, '\p{^Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(1, 68096, '\P{Is_Blk:	_MEROITIC_cursive}', "");
+    Expect(0, 68096, '\P{^Is_Blk:	_MEROITIC_cursive}', "");
+    Error('\p{Block=-	meroitic_hieroglyphs/a/}');
+    Error('\P{Block=-	meroitic_hieroglyphs/a/}');
     Expect(1, 67999, '\p{Block=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Block=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(1, 67999, '\p{Block=meroitichieroglyphs}', "");
@@ -18900,38 +19404,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68000, '\P{^Block=meroitichieroglyphs}', "");
     Expect(1, 67999, '\p{Block=:\Ameroitichieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Block=:\Ameroitichieroglyphs\z:}', "");;
-    Expect(1, 67999, '\p{Block=meroitic_HIEROGLYPHS}', "");
-    Expect(0, 67999, '\p{^Block=meroitic_HIEROGLYPHS}', "");
-    Expect(0, 67999, '\P{Block=meroitic_HIEROGLYPHS}', "");
-    Expect(1, 67999, '\P{^Block=meroitic_HIEROGLYPHS}', "");
-    Expect(0, 68000, '\p{Block=meroitic_HIEROGLYPHS}', "");
-    Expect(1, 68000, '\p{^Block=meroitic_HIEROGLYPHS}', "");
-    Expect(1, 68000, '\P{Block=meroitic_HIEROGLYPHS}', "");
-    Expect(0, 68000, '\P{^Block=meroitic_HIEROGLYPHS}', "");
-    Error('\p{Blk=	/a/Meroitic_Hieroglyphs}');
-    Error('\P{Blk=	/a/Meroitic_Hieroglyphs}');
+    Expect(1, 67999, '\p{Block=MEROITIC_Hieroglyphs}', "");
+    Expect(0, 67999, '\p{^Block=MEROITIC_Hieroglyphs}', "");
+    Expect(0, 67999, '\P{Block=MEROITIC_Hieroglyphs}', "");
+    Expect(1, 67999, '\P{^Block=MEROITIC_Hieroglyphs}', "");
+    Expect(0, 68000, '\p{Block=MEROITIC_Hieroglyphs}', "");
+    Expect(1, 68000, '\p{^Block=MEROITIC_Hieroglyphs}', "");
+    Expect(1, 68000, '\P{Block=MEROITIC_Hieroglyphs}', "");
+    Expect(0, 68000, '\P{^Block=MEROITIC_Hieroglyphs}', "");
+    Error('\p{Blk=_/a/Meroitic_Hieroglyphs}');
+    Error('\P{Blk=_/a/Meroitic_Hieroglyphs}');
     Expect(1, 67999, '\p{Blk=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Blk=:\AMeroitic_Hieroglyphs\z:}', "");;
-    Expect(1, 67999, '\p{Blk=meroitichieroglyphs}', "");
-    Expect(0, 67999, '\p{^Blk=meroitichieroglyphs}', "");
-    Expect(0, 67999, '\P{Blk=meroitichieroglyphs}', "");
-    Expect(1, 67999, '\P{^Blk=meroitichieroglyphs}', "");
-    Expect(0, 68000, '\p{Blk=meroitichieroglyphs}', "");
-    Expect(1, 68000, '\p{^Blk=meroitichieroglyphs}', "");
-    Expect(1, 68000, '\P{Blk=meroitichieroglyphs}', "");
-    Expect(0, 68000, '\P{^Blk=meroitichieroglyphs}', "");
+    Expect(1, 67999, '\p{Blk: meroitichieroglyphs}', "");
+    Expect(0, 67999, '\p{^Blk: meroitichieroglyphs}', "");
+    Expect(0, 67999, '\P{Blk: meroitichieroglyphs}', "");
+    Expect(1, 67999, '\P{^Blk: meroitichieroglyphs}', "");
+    Expect(0, 68000, '\p{Blk: meroitichieroglyphs}', "");
+    Expect(1, 68000, '\p{^Blk: meroitichieroglyphs}', "");
+    Expect(1, 68000, '\P{Blk: meroitichieroglyphs}', "");
+    Expect(0, 68000, '\P{^Blk: meroitichieroglyphs}', "");
     Expect(1, 67999, '\p{Blk=:\Ameroitichieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Blk=:\Ameroitichieroglyphs\z:}', "");;
-    Expect(1, 67999, '\p{Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{Blk=-_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^Blk=-_MEROITIC_Hieroglyphs}', "");
-    Error('\p{Is_Block=_meroitic_HIEROGLYPHS:=}');
-    Error('\P{Is_Block=_meroitic_HIEROGLYPHS:=}');
+    Expect(1, 67999, '\p{Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(0, 67999, '\p{^Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(0, 67999, '\P{Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(1, 67999, '\P{^Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(0, 68000, '\p{Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(1, 68000, '\p{^Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(1, 68000, '\P{Blk=_	Meroitic_Hieroglyphs}', "");
+    Expect(0, 68000, '\P{^Blk=_	Meroitic_Hieroglyphs}', "");
+    Error('\p{Is_Block:	 MEROITIC_HIEROGLYPHS/a/}');
+    Error('\P{Is_Block:	 MEROITIC_HIEROGLYPHS/a/}');
     Expect(1, 67999, '\p{Is_Block=meroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^Is_Block=meroitichieroglyphs}', "");
     Expect(0, 67999, '\P{Is_Block=meroitichieroglyphs}', "");
@@ -18940,16 +19444,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68000, '\p{^Is_Block=meroitichieroglyphs}', "");
     Expect(1, 68000, '\P{Is_Block=meroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^Is_Block=meroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(0, 67999, '\p{^Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(0, 67999, '\P{Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(1, 67999, '\P{^Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(0, 68000, '\p{Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(1, 68000, '\p{^Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(1, 68000, '\P{Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Expect(0, 68000, '\P{^Is_Block:   _meroitic_HIEROGLYPHS}', "");
-    Error('\p{Is_Blk=		MEROITIC_hieroglyphs:=}');
-    Error('\P{Is_Blk=		MEROITIC_hieroglyphs:=}');
+    Expect(1, 67999, '\p{Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(0, 67999, '\p{^Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(0, 67999, '\P{Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(1, 67999, '\P{^Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(0, 68000, '\p{Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(1, 68000, '\p{^Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(1, 68000, '\P{Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Expect(0, 68000, '\P{^Is_Block=	 Meroitic_HIEROGLYPHS}', "");
+    Error('\p{Is_Blk=/a/__Meroitic_HIEROGLYPHS}');
+    Error('\P{Is_Blk=/a/__Meroitic_HIEROGLYPHS}');
     Expect(1, 67999, '\p{Is_Blk=meroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^Is_Blk=meroitichieroglyphs}', "");
     Expect(0, 67999, '\P{Is_Blk=meroitichieroglyphs}', "");
@@ -18958,16 +19462,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68000, '\p{^Is_Blk=meroitichieroglyphs}', "");
     Expect(1, 68000, '\P{Is_Blk=meroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^Is_Blk=meroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{Is_Blk=_meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^Is_Blk=_meroitic_Hieroglyphs}', "");
-    Error('\p{Block= :=miao}');
-    Error('\P{Block= :=miao}');
+    Expect(1, 67999, '\p{Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\p{^Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\P{Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(1, 67999, '\P{^Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\p{Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\p{^Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\P{Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\P{^Is_Blk:   	 Meroitic_hieroglyphs}', "");
+    Error('\p{Block=/a/--Miao}');
+    Error('\P{Block=/a/--Miao}');
     Expect(1, 94111, '\p{Block=:\AMiao\z:}', "");;
     Expect(0, 94112, '\p{Block=:\AMiao\z:}', "");;
     Expect(1, 94111, '\p{Block=miao}', "");
@@ -18980,16 +19484,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 94112, '\P{^Block=miao}', "");
     Expect(1, 94111, '\p{Block=:\Amiao\z:}', "");;
     Expect(0, 94112, '\p{Block=:\Amiao\z:}', "");;
-    Expect(1, 94111, '\p{Block=	MIAO}', "");
-    Expect(0, 94111, '\p{^Block=	MIAO}', "");
-    Expect(0, 94111, '\P{Block=	MIAO}', "");
-    Expect(1, 94111, '\P{^Block=	MIAO}', "");
-    Expect(0, 94112, '\p{Block=	MIAO}', "");
-    Expect(1, 94112, '\p{^Block=	MIAO}', "");
-    Expect(1, 94112, '\P{Block=	MIAO}', "");
-    Expect(0, 94112, '\P{^Block=	MIAO}', "");
-    Error('\p{Blk=_	Miao:=}');
-    Error('\P{Blk=_	Miao:=}');
+    Expect(1, 94111, '\p{Block=	_Miao}', "");
+    Expect(0, 94111, '\p{^Block=	_Miao}', "");
+    Expect(0, 94111, '\P{Block=	_Miao}', "");
+    Expect(1, 94111, '\P{^Block=	_Miao}', "");
+    Expect(0, 94112, '\p{Block=	_Miao}', "");
+    Expect(1, 94112, '\p{^Block=	_Miao}', "");
+    Expect(1, 94112, '\P{Block=	_Miao}', "");
+    Expect(0, 94112, '\P{^Block=	_Miao}', "");
+    Error('\p{Blk=  Miao/a/}');
+    Error('\P{Blk=  Miao/a/}');
     Expect(1, 94111, '\p{Blk=:\AMiao\z:}', "");;
     Expect(0, 94112, '\p{Blk=:\AMiao\z:}', "");;
     Expect(1, 94111, '\p{Blk=miao}', "");
@@ -19002,16 +19506,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 94112, '\P{^Blk=miao}', "");
     Expect(1, 94111, '\p{Blk=:\Amiao\z:}', "");;
     Expect(0, 94112, '\p{Blk=:\Amiao\z:}', "");;
-    Expect(1, 94111, '\p{Blk=_	miao}', "");
-    Expect(0, 94111, '\p{^Blk=_	miao}', "");
-    Expect(0, 94111, '\P{Blk=_	miao}', "");
-    Expect(1, 94111, '\P{^Blk=_	miao}', "");
-    Expect(0, 94112, '\p{Blk=_	miao}', "");
-    Expect(1, 94112, '\p{^Blk=_	miao}', "");
-    Expect(1, 94112, '\P{Blk=_	miao}', "");
-    Expect(0, 94112, '\P{^Blk=_	miao}', "");
-    Error('\p{Is_Block: -:=miao}');
-    Error('\P{Is_Block: -:=miao}');
+    Expect(1, 94111, '\p{Blk=	-Miao}', "");
+    Expect(0, 94111, '\p{^Blk=	-Miao}', "");
+    Expect(0, 94111, '\P{Blk=	-Miao}', "");
+    Expect(1, 94111, '\P{^Blk=	-Miao}', "");
+    Expect(0, 94112, '\p{Blk=	-Miao}', "");
+    Expect(1, 94112, '\p{^Blk=	-Miao}', "");
+    Expect(1, 94112, '\P{Blk=	-Miao}', "");
+    Expect(0, 94112, '\P{^Blk=	-Miao}', "");
+    Error('\p{Is_Block=/a/_	Miao}');
+    Error('\P{Is_Block=/a/_	Miao}');
     Expect(1, 94111, '\p{Is_Block=miao}', "");
     Expect(0, 94111, '\p{^Is_Block=miao}', "");
     Expect(0, 94111, '\P{Is_Block=miao}', "");
@@ -19020,56 +19524,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 94112, '\p{^Is_Block=miao}', "");
     Expect(1, 94112, '\P{Is_Block=miao}', "");
     Expect(0, 94112, '\P{^Is_Block=miao}', "");
-    Expect(1, 94111, '\p{Is_Block:	__miao}', "");
-    Expect(0, 94111, '\p{^Is_Block:	__miao}', "");
-    Expect(0, 94111, '\P{Is_Block:	__miao}', "");
-    Expect(1, 94111, '\P{^Is_Block:	__miao}', "");
-    Expect(0, 94112, '\p{Is_Block:	__miao}', "");
-    Expect(1, 94112, '\p{^Is_Block:	__miao}', "");
-    Expect(1, 94112, '\P{Is_Block:	__miao}', "");
-    Expect(0, 94112, '\P{^Is_Block:	__miao}', "");
-    Error('\p{Is_Blk=:=	MIAO}');
-    Error('\P{Is_Blk=:=	MIAO}');
-    Expect(1, 94111, '\p{Is_Blk=miao}', "");
-    Expect(0, 94111, '\p{^Is_Blk=miao}', "");
-    Expect(0, 94111, '\P{Is_Blk=miao}', "");
-    Expect(1, 94111, '\P{^Is_Blk=miao}', "");
-    Expect(0, 94112, '\p{Is_Blk=miao}', "");
-    Expect(1, 94112, '\p{^Is_Blk=miao}', "");
-    Expect(1, 94112, '\P{Is_Blk=miao}', "");
-    Expect(0, 94112, '\P{^Is_Blk=miao}', "");
-    Expect(1, 94111, '\p{Is_Blk=	Miao}', "");
-    Expect(0, 94111, '\p{^Is_Blk=	Miao}', "");
-    Expect(0, 94111, '\P{Is_Blk=	Miao}', "");
-    Expect(1, 94111, '\P{^Is_Blk=	Miao}', "");
-    Expect(0, 94112, '\p{Is_Blk=	Miao}', "");
-    Expect(1, 94112, '\p{^Is_Blk=	Miao}', "");
-    Expect(1, 94112, '\P{Is_Blk=	Miao}', "");
-    Expect(0, 94112, '\P{^Is_Blk=	Miao}', "");
-    Error('\p{Block:   /a/ 	MISCELLANEOUS_symbols_AND_arrows}');
-    Error('\P{Block:   /a/ 	MISCELLANEOUS_symbols_AND_arrows}');
+    Expect(1, 94111, '\p{Is_Block=	MIAO}', "");
+    Expect(0, 94111, '\p{^Is_Block=	MIAO}', "");
+    Expect(0, 94111, '\P{Is_Block=	MIAO}', "");
+    Expect(1, 94111, '\P{^Is_Block=	MIAO}', "");
+    Expect(0, 94112, '\p{Is_Block=	MIAO}', "");
+    Expect(1, 94112, '\p{^Is_Block=	MIAO}', "");
+    Expect(1, 94112, '\P{Is_Block=	MIAO}', "");
+    Expect(0, 94112, '\P{^Is_Block=	MIAO}', "");
+    Error('\p{Is_Blk=/a/ _MIAO}');
+    Error('\P{Is_Blk=/a/ _MIAO}');
+    Expect(1, 94111, '\p{Is_Blk:   miao}', "");
+    Expect(0, 94111, '\p{^Is_Blk:   miao}', "");
+    Expect(0, 94111, '\P{Is_Blk:   miao}', "");
+    Expect(1, 94111, '\P{^Is_Blk:   miao}', "");
+    Expect(0, 94112, '\p{Is_Blk:   miao}', "");
+    Expect(1, 94112, '\p{^Is_Blk:   miao}', "");
+    Expect(1, 94112, '\P{Is_Blk:   miao}', "");
+    Expect(0, 94112, '\P{^Is_Blk:   miao}', "");
+    Expect(1, 94111, '\p{Is_Blk=_ Miao}', "");
+    Expect(0, 94111, '\p{^Is_Blk=_ Miao}', "");
+    Expect(0, 94111, '\P{Is_Blk=_ Miao}', "");
+    Expect(1, 94111, '\P{^Is_Blk=_ Miao}', "");
+    Expect(0, 94112, '\p{Is_Blk=_ Miao}', "");
+    Expect(1, 94112, '\p{^Is_Blk=_ Miao}', "");
+    Expect(1, 94112, '\P{Is_Blk=_ Miao}', "");
+    Expect(0, 94112, '\P{^Is_Blk=_ Miao}', "");
+    Error('\p{Block::=_MISCELLANEOUS_Symbols_and_Arrows}');
+    Error('\P{Block::=_MISCELLANEOUS_Symbols_and_Arrows}');
     Expect(1, 11263, '\p{Block=:\AMiscellaneous_Symbols_And_Arrows\z:}', "");;
     Expect(0, 11264, '\p{Block=:\AMiscellaneous_Symbols_And_Arrows\z:}', "");;
-    Expect(1, 11263, '\p{Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11263, '\p{^Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11263, '\P{Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11263, '\P{^Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11264, '\p{Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11264, '\p{^Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11264, '\P{Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11264, '\P{^Block: miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11263, '\p{Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11263, '\p{^Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11263, '\P{Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11263, '\P{^Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11264, '\p{Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11264, '\p{^Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11264, '\P{Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11264, '\P{^Block=miscellaneoussymbolsandarrows}', "");
     Expect(1, 11263, '\p{Block=:\Amiscellaneoussymbolsandarrows\z:}', "");;
     Expect(0, 11264, '\p{Block=:\Amiscellaneoussymbolsandarrows\z:}', "");;
-    Expect(1, 11263, '\p{Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(0, 11263, '\p{^Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(0, 11263, '\P{Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(1, 11263, '\P{^Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(0, 11264, '\p{Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(1, 11264, '\p{^Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(1, 11264, '\P{Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Expect(0, 11264, '\P{^Block=_Miscellaneous_SYMBOLS_And_arrows}', "");
-    Error('\p{Blk=:=-	MISC_arrows}');
-    Error('\P{Blk=:=-	MISC_arrows}');
+    Expect(1, 11263, '\p{Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(0, 11263, '\p{^Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(0, 11263, '\P{Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(1, 11263, '\P{^Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(0, 11264, '\p{Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(1, 11264, '\p{^Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(1, 11264, '\P{Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Expect(0, 11264, '\P{^Block:	MISCELLANEOUS_Symbols_AND_arrows}', "");
+    Error('\p{Blk=_ MISC_arrows:=}');
+    Error('\P{Blk=_ MISC_arrows:=}');
     Expect(1, 11263, '\p{Blk=:\AMisc_Arrows\z:}', "");;
     Expect(0, 11264, '\p{Blk=:\AMisc_Arrows\z:}', "");;
     Expect(1, 11263, '\p{Blk=miscarrows}', "");
@@ -19082,34 +19586,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11264, '\P{^Blk=miscarrows}', "");
     Expect(1, 11263, '\p{Blk=:\Amiscarrows\z:}', "");;
     Expect(0, 11264, '\p{Blk=:\Amiscarrows\z:}', "");;
-    Expect(1, 11263, '\p{Blk=-misc_ARROWS}', "");
-    Expect(0, 11263, '\p{^Blk=-misc_ARROWS}', "");
-    Expect(0, 11263, '\P{Blk=-misc_ARROWS}', "");
-    Expect(1, 11263, '\P{^Blk=-misc_ARROWS}', "");
-    Expect(0, 11264, '\p{Blk=-misc_ARROWS}', "");
-    Expect(1, 11264, '\p{^Blk=-misc_ARROWS}', "");
-    Expect(1, 11264, '\P{Blk=-misc_ARROWS}', "");
-    Expect(0, 11264, '\P{^Blk=-misc_ARROWS}', "");
-    Error('\p{Is_Block=_:=MISCELLANEOUS_Symbols_and_Arrows}');
-    Error('\P{Is_Block=_:=MISCELLANEOUS_Symbols_and_Arrows}');
-    Expect(1, 11263, '\p{Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11263, '\p{^Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11263, '\P{Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11263, '\P{^Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11264, '\p{Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11264, '\p{^Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11264, '\P{Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(0, 11264, '\P{^Is_Block: miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11263, '\p{Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11263, '\p{^Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11263, '\P{Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(1, 11263, '\P{^Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11264, '\p{Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(1, 11264, '\p{^Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(1, 11264, '\P{Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11264, '\P{^Is_Block=-MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Error('\p{Is_Blk=	-Misc_Arrows/a/}');
-    Error('\P{Is_Blk=	-Misc_Arrows/a/}');
+    Expect(1, 11263, '\p{Blk=	misc_Arrows}', "");
+    Expect(0, 11263, '\p{^Blk=	misc_Arrows}', "");
+    Expect(0, 11263, '\P{Blk=	misc_Arrows}', "");
+    Expect(1, 11263, '\P{^Blk=	misc_Arrows}', "");
+    Expect(0, 11264, '\p{Blk=	misc_Arrows}', "");
+    Expect(1, 11264, '\p{^Blk=	misc_Arrows}', "");
+    Expect(1, 11264, '\P{Blk=	misc_Arrows}', "");
+    Expect(0, 11264, '\P{^Blk=	misc_Arrows}', "");
+    Error('\p{Is_Block=__MISCELLANEOUS_symbols_and_ARROWS:=}');
+    Error('\P{Is_Block=__MISCELLANEOUS_symbols_and_ARROWS:=}');
+    Expect(1, 11263, '\p{Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11263, '\p{^Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11263, '\P{Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11263, '\P{^Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11264, '\p{Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11264, '\p{^Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11264, '\P{Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(0, 11264, '\P{^Is_Block=miscellaneoussymbolsandarrows}', "");
+    Expect(1, 11263, '\p{Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(0, 11263, '\p{^Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(0, 11263, '\P{Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(1, 11263, '\P{^Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(0, 11264, '\p{Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(1, 11264, '\p{^Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(1, 11264, '\P{Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Expect(0, 11264, '\P{^Is_Block=_ Miscellaneous_symbols_And_Arrows}', "");
+    Error('\p{Is_Blk=- Misc_Arrows/a/}');
+    Error('\P{Is_Blk=- Misc_Arrows/a/}');
     Expect(1, 11263, '\p{Is_Blk=miscarrows}', "");
     Expect(0, 11263, '\p{^Is_Blk=miscarrows}', "");
     Expect(0, 11263, '\P{Is_Blk=miscarrows}', "");
@@ -19118,38 +19622,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11264, '\p{^Is_Blk=miscarrows}', "");
     Expect(1, 11264, '\P{Is_Blk=miscarrows}', "");
     Expect(0, 11264, '\P{^Is_Blk=miscarrows}', "");
-    Expect(1, 11263, '\p{Is_Blk=	_MISC_Arrows}', "");
-    Expect(0, 11263, '\p{^Is_Blk=	_MISC_Arrows}', "");
-    Expect(0, 11263, '\P{Is_Blk=	_MISC_Arrows}', "");
-    Expect(1, 11263, '\P{^Is_Blk=	_MISC_Arrows}', "");
-    Expect(0, 11264, '\p{Is_Blk=	_MISC_Arrows}', "");
-    Expect(1, 11264, '\p{^Is_Blk=	_MISC_Arrows}', "");
-    Expect(1, 11264, '\P{Is_Blk=	_MISC_Arrows}', "");
-    Expect(0, 11264, '\P{^Is_Blk=	_MISC_Arrows}', "");
-    Error('\p{Block: -miscellaneous_Mathematical_SYMBOLS_a/a/}');
-    Error('\P{Block: -miscellaneous_Mathematical_SYMBOLS_a/a/}');
+    Expect(1, 11263, '\p{Is_Blk:   -misc_arrows}', "");
+    Expect(0, 11263, '\p{^Is_Blk:   -misc_arrows}', "");
+    Expect(0, 11263, '\P{Is_Blk:   -misc_arrows}', "");
+    Expect(1, 11263, '\P{^Is_Blk:   -misc_arrows}', "");
+    Expect(0, 11264, '\p{Is_Blk:   -misc_arrows}', "");
+    Expect(1, 11264, '\p{^Is_Blk:   -misc_arrows}', "");
+    Expect(1, 11264, '\P{Is_Blk:   -misc_arrows}', "");
+    Expect(0, 11264, '\P{^Is_Blk:   -misc_arrows}', "");
+    Error('\p{Block=:=  MISCELLANEOUS_Mathematical_SYMBOLS_a}');
+    Error('\P{Block=:=  MISCELLANEOUS_Mathematical_SYMBOLS_a}');
     Expect(1, 10223, '\p{Block=:\AMiscellaneous_Mathematical_Symbols_A\z:}', "");;
     Expect(0, 10224, '\p{Block=:\AMiscellaneous_Mathematical_Symbols_A\z:}', "");;
-    Expect(1, 10223, '\p{Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10223, '\p{^Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10223, '\P{Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10223, '\P{^Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10224, '\p{Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10224, '\p{^Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10224, '\P{Block: miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10224, '\P{^Block: miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10223, '\p{Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10223, '\p{^Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10223, '\P{Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10223, '\P{^Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10224, '\p{Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10224, '\p{^Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10224, '\P{Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10224, '\P{^Block=miscellaneousmathematicalsymbolsa}', "");
     Expect(1, 10223, '\p{Block=:\Amiscellaneousmathematicalsymbolsa\z:}', "");;
     Expect(0, 10224, '\p{Block=:\Amiscellaneousmathematicalsymbolsa\z:}', "");;
-    Expect(1, 10223, '\p{Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10223, '\p{^Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10223, '\P{Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(1, 10223, '\P{^Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10224, '\p{Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(1, 10224, '\p{^Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(1, 10224, '\P{Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10224, '\P{^Block:   -_miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Error('\p{Blk= :=Misc_MATH_symbols_A}');
-    Error('\P{Blk= :=Misc_MATH_symbols_A}');
+    Expect(1, 10223, '\p{Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10223, '\p{^Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10223, '\P{Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(1, 10223, '\P{^Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10224, '\p{Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(1, 10224, '\p{^Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(1, 10224, '\P{Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10224, '\P{^Block=	-Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Error('\p{Blk:	  Misc_Math_symbols_A:=}');
+    Error('\P{Blk:	  Misc_Math_symbols_A:=}');
     Expect(1, 10223, '\p{Blk=:\AMisc_Math_Symbols_A\z:}', "");;
     Expect(0, 10224, '\p{Blk=:\AMisc_Math_Symbols_A\z:}', "");;
     Expect(1, 10223, '\p{Blk=miscmathsymbolsa}', "");
@@ -19162,34 +19666,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10224, '\P{^Blk=miscmathsymbolsa}', "");
     Expect(1, 10223, '\p{Blk=:\Amiscmathsymbolsa\z:}', "");;
     Expect(0, 10224, '\p{Blk=:\Amiscmathsymbolsa\z:}', "");;
-    Expect(1, 10223, '\p{Blk=--Misc_math_Symbols_A}', "");
-    Expect(0, 10223, '\p{^Blk=--Misc_math_Symbols_A}', "");
-    Expect(0, 10223, '\P{Blk=--Misc_math_Symbols_A}', "");
-    Expect(1, 10223, '\P{^Blk=--Misc_math_Symbols_A}', "");
-    Expect(0, 10224, '\p{Blk=--Misc_math_Symbols_A}', "");
-    Expect(1, 10224, '\p{^Blk=--Misc_math_Symbols_A}', "");
-    Expect(1, 10224, '\P{Blk=--Misc_math_Symbols_A}', "");
-    Expect(0, 10224, '\P{^Blk=--Misc_math_Symbols_A}', "");
-    Error('\p{Is_Block=:=-Miscellaneous_MATHEMATICAL_Symbols_A}');
-    Error('\P{Is_Block=:=-Miscellaneous_MATHEMATICAL_Symbols_A}');
-    Expect(1, 10223, '\p{Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10223, '\p{^Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10223, '\P{Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10223, '\P{^Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10224, '\p{Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10224, '\p{^Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10224, '\P{Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(0, 10224, '\P{^Is_Block:   miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10223, '\p{Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(0, 10223, '\p{^Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(0, 10223, '\P{Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(1, 10223, '\P{^Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(0, 10224, '\p{Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(1, 10224, '\p{^Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(1, 10224, '\P{Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Expect(0, 10224, '\P{^Is_Block:	__Miscellaneous_Mathematical_Symbols_A}', "");
-    Error('\p{Is_Blk=-Misc_Math_symbols_a/a/}');
-    Error('\P{Is_Blk=-Misc_Math_symbols_a/a/}');
+    Expect(1, 10223, '\p{Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(0, 10223, '\p{^Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(0, 10223, '\P{Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(1, 10223, '\P{^Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(0, 10224, '\p{Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(1, 10224, '\p{^Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(1, 10224, '\P{Blk=	misc_math_SYMBOLS_A}', "");
+    Expect(0, 10224, '\P{^Blk=	misc_math_SYMBOLS_A}', "");
+    Error('\p{Is_Block=-	Miscellaneous_Mathematical_Symbols_A:=}');
+    Error('\P{Is_Block=-	Miscellaneous_Mathematical_Symbols_A:=}');
+    Expect(1, 10223, '\p{Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10223, '\p{^Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10223, '\P{Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10223, '\P{^Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10224, '\p{Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10224, '\p{^Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10224, '\P{Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(0, 10224, '\P{^Is_Block=miscellaneousmathematicalsymbolsa}', "");
+    Expect(1, 10223, '\p{Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10223, '\p{^Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10223, '\P{Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(1, 10223, '\P{^Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10224, '\p{Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(1, 10224, '\p{^Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(1, 10224, '\P{Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Expect(0, 10224, '\P{^Is_Block= Miscellaneous_mathematical_SYMBOLS_a}', "");
+    Error('\p{Is_Blk=/a/		misc_Math_SYMBOLS_A}');
+    Error('\P{Is_Blk=/a/		misc_Math_SYMBOLS_A}');
     Expect(1, 10223, '\p{Is_Blk=miscmathsymbolsa}', "");
     Expect(0, 10223, '\p{^Is_Blk=miscmathsymbolsa}', "");
     Expect(0, 10223, '\P{Is_Blk=miscmathsymbolsa}', "");
@@ -19198,38 +19702,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10224, '\p{^Is_Blk=miscmathsymbolsa}', "");
     Expect(1, 10224, '\P{Is_Blk=miscmathsymbolsa}', "");
     Expect(0, 10224, '\P{^Is_Blk=miscmathsymbolsa}', "");
-    Expect(1, 10223, '\p{Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(0, 10223, '\p{^Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(0, 10223, '\P{Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(1, 10223, '\P{^Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(0, 10224, '\p{Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(1, 10224, '\p{^Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(1, 10224, '\P{Is_Blk= -misc_Math_Symbols_A}', "");
-    Expect(0, 10224, '\P{^Is_Blk= -misc_Math_Symbols_A}', "");
-    Error('\p{Block=/a/ -MISCELLANEOUS_mathematical_symbols_B}');
-    Error('\P{Block=/a/ -MISCELLANEOUS_mathematical_symbols_B}');
+    Expect(1, 10223, '\p{Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(0, 10223, '\p{^Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(0, 10223, '\P{Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(1, 10223, '\P{^Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(0, 10224, '\p{Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(1, 10224, '\p{^Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(1, 10224, '\P{Is_Blk=		Misc_math_symbols_A}', "");
+    Expect(0, 10224, '\P{^Is_Blk=		Misc_math_symbols_A}', "");
+    Error('\p{Block=		Miscellaneous_MATHEMATICAL_symbols_B/a/}');
+    Error('\P{Block=		Miscellaneous_MATHEMATICAL_symbols_B/a/}');
     Expect(1, 10751, '\p{Block=:\AMiscellaneous_Mathematical_Symbols_B\z:}', "");;
     Expect(0, 10752, '\p{Block=:\AMiscellaneous_Mathematical_Symbols_B\z:}', "");;
-    Expect(1, 10751, '\p{Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(0, 10751, '\p{^Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(0, 10751, '\P{Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10751, '\P{^Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(0, 10752, '\p{Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10752, '\p{^Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10752, '\P{Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(0, 10752, '\P{^Block=miscellaneousmathematicalsymbolsb}', "");
+    Expect(1, 10751, '\p{Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(0, 10751, '\p{^Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(0, 10751, '\P{Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(1, 10751, '\P{^Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(0, 10752, '\p{Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(1, 10752, '\p{^Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(1, 10752, '\P{Block:   miscellaneousmathematicalsymbolsb}', "");
+    Expect(0, 10752, '\P{^Block:   miscellaneousmathematicalsymbolsb}', "");
     Expect(1, 10751, '\p{Block=:\Amiscellaneousmathematicalsymbolsb\z:}', "");;
     Expect(0, 10752, '\p{Block=:\Amiscellaneousmathematicalsymbolsb\z:}', "");;
-    Expect(1, 10751, '\p{Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\p{^Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\P{Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(1, 10751, '\P{^Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\p{Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\p{^Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\P{Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\P{^Block=	-Miscellaneous_Mathematical_Symbols_B}', "");
-    Error('\p{Blk=_misc_Math_Symbols_B/a/}');
-    Error('\P{Blk=_misc_Math_Symbols_B/a/}');
+    Expect(1, 10751, '\p{Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(0, 10751, '\p{^Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(0, 10751, '\P{Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(1, 10751, '\P{^Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(0, 10752, '\p{Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(1, 10752, '\p{^Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(1, 10752, '\P{Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Expect(0, 10752, '\P{^Block:   -Miscellaneous_Mathematical_Symbols_B}', "");
+    Error('\p{Blk=	/a/misc_Math_Symbols_B}');
+    Error('\P{Blk=	/a/misc_Math_Symbols_B}');
     Expect(1, 10751, '\p{Blk=:\AMisc_Math_Symbols_B\z:}', "");;
     Expect(0, 10752, '\p{Blk=:\AMisc_Math_Symbols_B\z:}', "");;
     Expect(1, 10751, '\p{Blk=miscmathsymbolsb}', "");
@@ -19242,16 +19746,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10752, '\P{^Blk=miscmathsymbolsb}', "");
     Expect(1, 10751, '\p{Blk=:\Amiscmathsymbolsb\z:}', "");;
     Expect(0, 10752, '\p{Blk=:\Amiscmathsymbolsb\z:}', "");;
-    Expect(1, 10751, '\p{Blk=_MISC_Math_symbols_B}', "");
-    Expect(0, 10751, '\p{^Blk=_MISC_Math_symbols_B}', "");
-    Expect(0, 10751, '\P{Blk=_MISC_Math_symbols_B}', "");
-    Expect(1, 10751, '\P{^Blk=_MISC_Math_symbols_B}', "");
-    Expect(0, 10752, '\p{Blk=_MISC_Math_symbols_B}', "");
-    Expect(1, 10752, '\p{^Blk=_MISC_Math_symbols_B}', "");
-    Expect(1, 10752, '\P{Blk=_MISC_Math_symbols_B}', "");
-    Expect(0, 10752, '\P{^Blk=_MISC_Math_symbols_B}', "");
-    Error('\p{Is_Block=_:=miscellaneous_Mathematical_SYMBOLS_B}');
-    Error('\P{Is_Block=_:=miscellaneous_Mathematical_SYMBOLS_B}');
+    Expect(1, 10751, '\p{Blk=_	misc_math_symbols_B}', "");
+    Expect(0, 10751, '\p{^Blk=_	misc_math_symbols_B}', "");
+    Expect(0, 10751, '\P{Blk=_	misc_math_symbols_B}', "");
+    Expect(1, 10751, '\P{^Blk=_	misc_math_symbols_B}', "");
+    Expect(0, 10752, '\p{Blk=_	misc_math_symbols_B}', "");
+    Expect(1, 10752, '\p{^Blk=_	misc_math_symbols_B}', "");
+    Expect(1, 10752, '\P{Blk=_	misc_math_symbols_B}', "");
+    Expect(0, 10752, '\P{^Blk=_	misc_math_symbols_B}', "");
+    Error('\p{Is_Block=miscellaneous_Mathematical_symbols_B:=}');
+    Error('\P{Is_Block=miscellaneous_Mathematical_symbols_B:=}');
     Expect(1, 10751, '\p{Is_Block=miscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\p{^Is_Block=miscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\P{Is_Block=miscellaneousmathematicalsymbolsb}', "");
@@ -19260,16 +19764,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10752, '\p{^Is_Block=miscellaneousmathematicalsymbolsb}', "");
     Expect(1, 10752, '\P{Is_Block=miscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10752, '\P{^Is_Block=miscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10751, '\p{Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\p{^Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\P{Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(1, 10751, '\P{^Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\p{Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\p{^Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\P{Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\P{^Is_Block= 	MISCELLANEOUS_mathematical_Symbols_B}', "");
-    Error('\p{Is_Blk=:=_Misc_Math_Symbols_B}');
-    Error('\P{Is_Blk=:=_Misc_Math_Symbols_B}');
+    Expect(1, 10751, '\p{Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(0, 10751, '\p{^Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(0, 10751, '\P{Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(1, 10751, '\P{^Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(0, 10752, '\p{Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(1, 10752, '\p{^Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(1, 10752, '\P{Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Expect(0, 10752, '\P{^Is_Block=	-Miscellaneous_mathematical_symbols_b}', "");
+    Error('\p{Is_Blk=:=misc_MATH_Symbols_B}');
+    Error('\P{Is_Blk=:=misc_MATH_Symbols_B}');
     Expect(1, 10751, '\p{Is_Blk=miscmathsymbolsb}', "");
     Expect(0, 10751, '\p{^Is_Blk=miscmathsymbolsb}', "");
     Expect(0, 10751, '\P{Is_Blk=miscmathsymbolsb}', "");
@@ -19278,16 +19782,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10752, '\p{^Is_Blk=miscmathsymbolsb}', "");
     Expect(1, 10752, '\P{Is_Blk=miscmathsymbolsb}', "");
     Expect(0, 10752, '\P{^Is_Blk=miscmathsymbolsb}', "");
-    Expect(1, 10751, '\p{Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(0, 10751, '\p{^Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(0, 10751, '\P{Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(1, 10751, '\P{^Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(0, 10752, '\p{Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(1, 10752, '\p{^Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(1, 10752, '\P{Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Expect(0, 10752, '\P{^Is_Blk=MISC_math_SYMBOLS_B}', "");
-    Error('\p{Block= -miscellaneous_SYMBOLS_and_Pictographs:=}');
-    Error('\P{Block= -miscellaneous_SYMBOLS_and_Pictographs:=}');
+    Expect(1, 10751, '\p{Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(0, 10751, '\p{^Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(0, 10751, '\P{Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(1, 10751, '\P{^Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(0, 10752, '\p{Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(1, 10752, '\p{^Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(1, 10752, '\P{Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Expect(0, 10752, '\P{^Is_Blk=-_MISC_Math_Symbols_B}', "");
+    Error('\p{Block=/a/Miscellaneous_Symbols_And_Pictographs}');
+    Error('\P{Block=/a/Miscellaneous_Symbols_And_Pictographs}');
     Expect(1, 128511, '\p{Block=:\AMiscellaneous_Symbols_And_Pictographs\z:}', "");;
     Expect(0, 128512, '\p{Block=:\AMiscellaneous_Symbols_And_Pictographs\z:}', "");;
     Expect(1, 128511, '\p{Block=miscellaneoussymbolsandpictographs}', "");
@@ -19300,16 +19804,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128512, '\P{^Block=miscellaneoussymbolsandpictographs}', "");
     Expect(1, 128511, '\p{Block=:\Amiscellaneoussymbolsandpictographs\z:}', "");;
     Expect(0, 128512, '\p{Block=:\Amiscellaneoussymbolsandpictographs\z:}', "");;
-    Expect(1, 128511, '\p{Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 128511, '\p{^Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 128511, '\P{Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 128511, '\P{^Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 128512, '\p{Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 128512, '\p{^Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 128512, '\P{Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 128512, '\P{^Block=		Miscellaneous_Symbols_And_PICTOGRAPHS}', "");
-    Error('\p{Blk=/a/- Misc_pictographs}');
-    Error('\P{Blk=/a/- Misc_pictographs}');
+    Expect(1, 128511, '\p{Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 128511, '\p{^Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 128511, '\P{Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(1, 128511, '\P{^Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 128512, '\p{Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(1, 128512, '\p{^Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(1, 128512, '\P{Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 128512, '\P{^Block=-Miscellaneous_Symbols_AND_PICTOGRAPHS}', "");
+    Error('\p{Blk:   /a/	MISC_PICTOGRAPHS}');
+    Error('\P{Blk:   /a/	MISC_PICTOGRAPHS}');
     Expect(1, 128511, '\p{Blk=:\AMisc_Pictographs\z:}', "");;
     Expect(0, 128512, '\p{Blk=:\AMisc_Pictographs\z:}', "");;
     Expect(1, 128511, '\p{Blk=miscpictographs}', "");
@@ -19322,16 +19826,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128512, '\P{^Blk=miscpictographs}', "");
     Expect(1, 128511, '\p{Blk=:\Amiscpictographs\z:}', "");;
     Expect(0, 128512, '\p{Blk=:\Amiscpictographs\z:}', "");;
-    Expect(1, 128511, '\p{Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(0, 128511, '\p{^Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(0, 128511, '\P{Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(1, 128511, '\P{^Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(0, 128512, '\p{Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(1, 128512, '\p{^Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(1, 128512, '\P{Blk=_ MISC_PICTOGRAPHS}', "");
-    Expect(0, 128512, '\P{^Blk=_ MISC_PICTOGRAPHS}', "");
-    Error('\p{Is_Block=:=MISCELLANEOUS_Symbols_and_pictographs}');
-    Error('\P{Is_Block=:=MISCELLANEOUS_Symbols_and_pictographs}');
+    Expect(1, 128511, '\p{Blk=_	misc_pictographs}', "");
+    Expect(0, 128511, '\p{^Blk=_	misc_pictographs}', "");
+    Expect(0, 128511, '\P{Blk=_	misc_pictographs}', "");
+    Expect(1, 128511, '\P{^Blk=_	misc_pictographs}', "");
+    Expect(0, 128512, '\p{Blk=_	misc_pictographs}', "");
+    Expect(1, 128512, '\p{^Blk=_	misc_pictographs}', "");
+    Expect(1, 128512, '\P{Blk=_	misc_pictographs}', "");
+    Expect(0, 128512, '\P{^Blk=_	misc_pictographs}', "");
+    Error('\p{Is_Block=:=	 Miscellaneous_symbols_And_Pictographs}');
+    Error('\P{Is_Block=:=	 Miscellaneous_symbols_And_Pictographs}');
     Expect(1, 128511, '\p{Is_Block=miscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\p{^Is_Block=miscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\P{Is_Block=miscellaneoussymbolsandpictographs}', "");
@@ -19340,34 +19844,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128512, '\p{^Is_Block=miscellaneoussymbolsandpictographs}', "");
     Expect(1, 128512, '\P{Is_Block=miscellaneoussymbolsandpictographs}', "");
     Expect(0, 128512, '\P{^Is_Block=miscellaneoussymbolsandpictographs}', "");
-    Expect(1, 128511, '\p{Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(0, 128511, '\p{^Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(0, 128511, '\P{Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(1, 128511, '\P{^Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(0, 128512, '\p{Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(1, 128512, '\p{^Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(1, 128512, '\P{Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Expect(0, 128512, '\P{^Is_Block= Miscellaneous_Symbols_And_pictographs}', "");
-    Error('\p{Is_Blk=		Misc_Pictographs/a/}');
-    Error('\P{Is_Blk=		Misc_Pictographs/a/}');
-    Expect(1, 128511, '\p{Is_Blk=miscpictographs}', "");
-    Expect(0, 128511, '\p{^Is_Blk=miscpictographs}', "");
-    Expect(0, 128511, '\P{Is_Blk=miscpictographs}', "");
-    Expect(1, 128511, '\P{^Is_Blk=miscpictographs}', "");
-    Expect(0, 128512, '\p{Is_Blk=miscpictographs}', "");
-    Expect(1, 128512, '\p{^Is_Blk=miscpictographs}', "");
-    Expect(1, 128512, '\P{Is_Blk=miscpictographs}', "");
-    Expect(0, 128512, '\P{^Is_Blk=miscpictographs}', "");
-    Expect(1, 128511, '\p{Is_Blk=-_Misc_Pictographs}', "");
-    Expect(0, 128511, '\p{^Is_Blk=-_Misc_Pictographs}', "");
-    Expect(0, 128511, '\P{Is_Blk=-_Misc_Pictographs}', "");
-    Expect(1, 128511, '\P{^Is_Blk=-_Misc_Pictographs}', "");
-    Expect(0, 128512, '\p{Is_Blk=-_Misc_Pictographs}', "");
-    Expect(1, 128512, '\p{^Is_Blk=-_Misc_Pictographs}', "");
-    Expect(1, 128512, '\P{Is_Blk=-_Misc_Pictographs}', "");
-    Expect(0, 128512, '\P{^Is_Blk=-_Misc_Pictographs}', "");
-    Error('\p{Block=	:=miscellaneous_Symbols}');
-    Error('\P{Block=	:=miscellaneous_Symbols}');
+    Expect(1, 128511, '\p{Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(0, 128511, '\p{^Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(0, 128511, '\P{Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(1, 128511, '\P{^Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(0, 128512, '\p{Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(1, 128512, '\p{^Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(1, 128512, '\P{Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Expect(0, 128512, '\P{^Is_Block=_ Miscellaneous_Symbols_And_Pictographs}', "");
+    Error('\p{Is_Blk: __Misc_Pictographs/a/}');
+    Error('\P{Is_Blk: __Misc_Pictographs/a/}');
+    Expect(1, 128511, '\p{Is_Blk:	miscpictographs}', "");
+    Expect(0, 128511, '\p{^Is_Blk:	miscpictographs}', "");
+    Expect(0, 128511, '\P{Is_Blk:	miscpictographs}', "");
+    Expect(1, 128511, '\P{^Is_Blk:	miscpictographs}', "");
+    Expect(0, 128512, '\p{Is_Blk:	miscpictographs}', "");
+    Expect(1, 128512, '\p{^Is_Blk:	miscpictographs}', "");
+    Expect(1, 128512, '\P{Is_Blk:	miscpictographs}', "");
+    Expect(0, 128512, '\P{^Is_Blk:	miscpictographs}', "");
+    Expect(1, 128511, '\p{Is_Blk=__misc_Pictographs}', "");
+    Expect(0, 128511, '\p{^Is_Blk=__misc_Pictographs}', "");
+    Expect(0, 128511, '\P{Is_Blk=__misc_Pictographs}', "");
+    Expect(1, 128511, '\P{^Is_Blk=__misc_Pictographs}', "");
+    Expect(0, 128512, '\p{Is_Blk=__misc_Pictographs}', "");
+    Expect(1, 128512, '\p{^Is_Blk=__misc_Pictographs}', "");
+    Expect(1, 128512, '\P{Is_Blk=__misc_Pictographs}', "");
+    Expect(0, 128512, '\P{^Is_Blk=__misc_Pictographs}', "");
+    Error('\p{Block: /a/-	MISCELLANEOUS_Symbols}');
+    Error('\P{Block: /a/-	MISCELLANEOUS_Symbols}');
     Expect(1, 9983, '\p{Block=:\AMiscellaneous_Symbols\z:}', "");;
     Expect(0, 9984, '\p{Block=:\AMiscellaneous_Symbols\z:}', "");;
     Expect(1, 9983, '\p{Block=miscellaneoussymbols}', "");
@@ -19380,16 +19884,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9984, '\P{^Block=miscellaneoussymbols}', "");
     Expect(1, 9983, '\p{Block=:\Amiscellaneoussymbols\z:}', "");;
     Expect(0, 9984, '\p{Block=:\Amiscellaneoussymbols\z:}', "");;
-    Expect(1, 9983, '\p{Block= _miscellaneous_Symbols}', "");
-    Expect(0, 9983, '\p{^Block= _miscellaneous_Symbols}', "");
-    Expect(0, 9983, '\P{Block= _miscellaneous_Symbols}', "");
-    Expect(1, 9983, '\P{^Block= _miscellaneous_Symbols}', "");
-    Expect(0, 9984, '\p{Block= _miscellaneous_Symbols}', "");
-    Expect(1, 9984, '\p{^Block= _miscellaneous_Symbols}', "");
-    Expect(1, 9984, '\P{Block= _miscellaneous_Symbols}', "");
-    Expect(0, 9984, '\P{^Block= _miscellaneous_Symbols}', "");
-    Error('\p{Blk=_Misc_symbols/a/}');
-    Error('\P{Blk=_Misc_symbols/a/}');
+    Expect(1, 9983, '\p{Block=_Miscellaneous_Symbols}', "");
+    Expect(0, 9983, '\p{^Block=_Miscellaneous_Symbols}', "");
+    Expect(0, 9983, '\P{Block=_Miscellaneous_Symbols}', "");
+    Expect(1, 9983, '\P{^Block=_Miscellaneous_Symbols}', "");
+    Expect(0, 9984, '\p{Block=_Miscellaneous_Symbols}', "");
+    Expect(1, 9984, '\p{^Block=_Miscellaneous_Symbols}', "");
+    Expect(1, 9984, '\P{Block=_Miscellaneous_Symbols}', "");
+    Expect(0, 9984, '\P{^Block=_Miscellaneous_Symbols}', "");
+    Error('\p{Blk:_/a/MISC_Symbols}');
+    Error('\P{Blk:_/a/MISC_Symbols}');
     Expect(1, 9983, '\p{Blk=:\AMisc_Symbols\z:}', "");;
     Expect(0, 9984, '\p{Blk=:\AMisc_Symbols\z:}', "");;
     Expect(1, 9983, '\p{Blk=miscsymbols}', "");
@@ -19402,34 +19906,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9984, '\P{^Blk=miscsymbols}', "");
     Expect(1, 9983, '\p{Blk=:\Amiscsymbols\z:}', "");;
     Expect(0, 9984, '\p{Blk=:\Amiscsymbols\z:}', "");;
-    Expect(1, 9983, '\p{Blk=_Misc_SYMBOLS}', "");
-    Expect(0, 9983, '\p{^Blk=_Misc_SYMBOLS}', "");
-    Expect(0, 9983, '\P{Blk=_Misc_SYMBOLS}', "");
-    Expect(1, 9983, '\P{^Blk=_Misc_SYMBOLS}', "");
-    Expect(0, 9984, '\p{Blk=_Misc_SYMBOLS}', "");
-    Expect(1, 9984, '\p{^Blk=_Misc_SYMBOLS}', "");
-    Expect(1, 9984, '\P{Blk=_Misc_SYMBOLS}', "");
-    Expect(0, 9984, '\P{^Blk=_Misc_SYMBOLS}', "");
-    Error('\p{Is_Block=:= _Miscellaneous_Symbols}');
-    Error('\P{Is_Block=:= _Miscellaneous_Symbols}');
-    Expect(1, 9983, '\p{Is_Block=miscellaneoussymbols}', "");
-    Expect(0, 9983, '\p{^Is_Block=miscellaneoussymbols}', "");
-    Expect(0, 9983, '\P{Is_Block=miscellaneoussymbols}', "");
-    Expect(1, 9983, '\P{^Is_Block=miscellaneoussymbols}', "");
-    Expect(0, 9984, '\p{Is_Block=miscellaneoussymbols}', "");
-    Expect(1, 9984, '\p{^Is_Block=miscellaneoussymbols}', "");
-    Expect(1, 9984, '\P{Is_Block=miscellaneoussymbols}', "");
-    Expect(0, 9984, '\P{^Is_Block=miscellaneoussymbols}', "");
-    Expect(1, 9983, '\p{Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(0, 9983, '\p{^Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(0, 9983, '\P{Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(1, 9983, '\P{^Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(0, 9984, '\p{Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(1, 9984, '\p{^Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(1, 9984, '\P{Is_Block= 	miscellaneous_Symbols}', "");
-    Expect(0, 9984, '\P{^Is_Block= 	miscellaneous_Symbols}', "");
-    Error('\p{Is_Blk= Misc_Symbols/a/}');
-    Error('\P{Is_Blk= Misc_Symbols/a/}');
+    Expect(1, 9983, '\p{Blk=- misc_Symbols}', "");
+    Expect(0, 9983, '\p{^Blk=- misc_Symbols}', "");
+    Expect(0, 9983, '\P{Blk=- misc_Symbols}', "");
+    Expect(1, 9983, '\P{^Blk=- misc_Symbols}', "");
+    Expect(0, 9984, '\p{Blk=- misc_Symbols}', "");
+    Expect(1, 9984, '\p{^Blk=- misc_Symbols}', "");
+    Expect(1, 9984, '\P{Blk=- misc_Symbols}', "");
+    Expect(0, 9984, '\P{^Blk=- misc_Symbols}', "");
+    Error('\p{Is_Block:		/a/Miscellaneous_Symbols}');
+    Error('\P{Is_Block:		/a/Miscellaneous_Symbols}');
+    Expect(1, 9983, '\p{Is_Block: miscellaneoussymbols}', "");
+    Expect(0, 9983, '\p{^Is_Block: miscellaneoussymbols}', "");
+    Expect(0, 9983, '\P{Is_Block: miscellaneoussymbols}', "");
+    Expect(1, 9983, '\P{^Is_Block: miscellaneoussymbols}', "");
+    Expect(0, 9984, '\p{Is_Block: miscellaneoussymbols}', "");
+    Expect(1, 9984, '\p{^Is_Block: miscellaneoussymbols}', "");
+    Expect(1, 9984, '\P{Is_Block: miscellaneoussymbols}', "");
+    Expect(0, 9984, '\P{^Is_Block: miscellaneoussymbols}', "");
+    Expect(1, 9983, '\p{Is_Block=_miscellaneous_Symbols}', "");
+    Expect(0, 9983, '\p{^Is_Block=_miscellaneous_Symbols}', "");
+    Expect(0, 9983, '\P{Is_Block=_miscellaneous_Symbols}', "");
+    Expect(1, 9983, '\P{^Is_Block=_miscellaneous_Symbols}', "");
+    Expect(0, 9984, '\p{Is_Block=_miscellaneous_Symbols}', "");
+    Expect(1, 9984, '\p{^Is_Block=_miscellaneous_Symbols}', "");
+    Expect(1, 9984, '\P{Is_Block=_miscellaneous_Symbols}', "");
+    Expect(0, 9984, '\P{^Is_Block=_miscellaneous_Symbols}', "");
+    Error('\p{Is_Blk:	-Misc_symbols:=}');
+    Error('\P{Is_Blk:	-Misc_symbols:=}');
     Expect(1, 9983, '\p{Is_Blk=miscsymbols}', "");
     Expect(0, 9983, '\p{^Is_Blk=miscsymbols}', "");
     Expect(0, 9983, '\P{Is_Blk=miscsymbols}', "");
@@ -19438,16 +19942,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9984, '\p{^Is_Blk=miscsymbols}', "");
     Expect(1, 9984, '\P{Is_Blk=miscsymbols}', "");
     Expect(0, 9984, '\P{^Is_Blk=miscsymbols}', "");
-    Expect(1, 9983, '\p{Is_Blk:-	MISC_symbols}', "");
-    Expect(0, 9983, '\p{^Is_Blk:-	MISC_symbols}', "");
-    Expect(0, 9983, '\P{Is_Blk:-	MISC_symbols}', "");
-    Expect(1, 9983, '\P{^Is_Blk:-	MISC_symbols}', "");
-    Expect(0, 9984, '\p{Is_Blk:-	MISC_symbols}', "");
-    Expect(1, 9984, '\p{^Is_Blk:-	MISC_symbols}', "");
-    Expect(1, 9984, '\P{Is_Blk:-	MISC_symbols}', "");
-    Expect(0, 9984, '\P{^Is_Blk:-	MISC_symbols}', "");
-    Error('\p{Block=/a/	miscellaneous_technical}');
-    Error('\P{Block=/a/	miscellaneous_technical}');
+    Expect(1, 9983, '\p{Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(0, 9983, '\p{^Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(0, 9983, '\P{Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(1, 9983, '\P{^Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(0, 9984, '\p{Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(1, 9984, '\p{^Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(1, 9984, '\P{Is_Blk=-	MISC_SYMBOLS}', "");
+    Expect(0, 9984, '\P{^Is_Blk=-	MISC_SYMBOLS}', "");
+    Error('\p{Block=:=- miscellaneous_technical}');
+    Error('\P{Block=:=- miscellaneous_technical}');
     Expect(1, 9215, '\p{Block=:\AMiscellaneous_Technical\z:}', "");;
     Expect(0, 9216, '\p{Block=:\AMiscellaneous_Technical\z:}', "");;
     Expect(1, 9215, '\p{Block=miscellaneoustechnical}', "");
@@ -19460,38 +19964,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9216, '\P{^Block=miscellaneoustechnical}', "");
     Expect(1, 9215, '\p{Block=:\Amiscellaneoustechnical\z:}', "");;
     Expect(0, 9216, '\p{Block=:\Amiscellaneoustechnical\z:}', "");;
-    Expect(1, 9215, '\p{Block=	 Miscellaneous_technical}', "");
-    Expect(0, 9215, '\p{^Block=	 Miscellaneous_technical}', "");
-    Expect(0, 9215, '\P{Block=	 Miscellaneous_technical}', "");
-    Expect(1, 9215, '\P{^Block=	 Miscellaneous_technical}', "");
-    Expect(0, 9216, '\p{Block=	 Miscellaneous_technical}', "");
-    Expect(1, 9216, '\p{^Block=	 Miscellaneous_technical}', "");
-    Expect(1, 9216, '\P{Block=	 Miscellaneous_technical}', "");
-    Expect(0, 9216, '\P{^Block=	 Miscellaneous_technical}', "");
-    Error('\p{Blk=__MISC_TECHNICAL:=}');
-    Error('\P{Blk=__MISC_TECHNICAL:=}');
+    Expect(1, 9215, '\p{Block=miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^Block=miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\P{Block=miscellaneous_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^Block=miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\p{Block=miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^Block=miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\P{Block=miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^Block=miscellaneous_TECHNICAL}', "");
+    Error('\p{Blk: /a/Misc_Technical}');
+    Error('\P{Blk: /a/Misc_Technical}');
     Expect(1, 9215, '\p{Blk=:\AMisc_Technical\z:}', "");;
     Expect(0, 9216, '\p{Blk=:\AMisc_Technical\z:}', "");;
-    Expect(1, 9215, '\p{Blk:   misctechnical}', "");
-    Expect(0, 9215, '\p{^Blk:   misctechnical}', "");
-    Expect(0, 9215, '\P{Blk:   misctechnical}', "");
-    Expect(1, 9215, '\P{^Blk:   misctechnical}', "");
-    Expect(0, 9216, '\p{Blk:   misctechnical}', "");
-    Expect(1, 9216, '\p{^Blk:   misctechnical}', "");
-    Expect(1, 9216, '\P{Blk:   misctechnical}', "");
-    Expect(0, 9216, '\P{^Blk:   misctechnical}', "");
+    Expect(1, 9215, '\p{Blk=misctechnical}', "");
+    Expect(0, 9215, '\p{^Blk=misctechnical}', "");
+    Expect(0, 9215, '\P{Blk=misctechnical}', "");
+    Expect(1, 9215, '\P{^Blk=misctechnical}', "");
+    Expect(0, 9216, '\p{Blk=misctechnical}', "");
+    Expect(1, 9216, '\p{^Blk=misctechnical}', "");
+    Expect(1, 9216, '\P{Blk=misctechnical}', "");
+    Expect(0, 9216, '\P{^Blk=misctechnical}', "");
     Expect(1, 9215, '\p{Blk=:\Amisctechnical\z:}', "");;
     Expect(0, 9216, '\p{Blk=:\Amisctechnical\z:}', "");;
-    Expect(1, 9215, '\p{Blk= 	Misc_Technical}', "");
-    Expect(0, 9215, '\p{^Blk= 	Misc_Technical}', "");
-    Expect(0, 9215, '\P{Blk= 	Misc_Technical}', "");
-    Expect(1, 9215, '\P{^Blk= 	Misc_Technical}', "");
-    Expect(0, 9216, '\p{Blk= 	Misc_Technical}', "");
-    Expect(1, 9216, '\p{^Blk= 	Misc_Technical}', "");
-    Expect(1, 9216, '\P{Blk= 	Misc_Technical}', "");
-    Expect(0, 9216, '\P{^Blk= 	Misc_Technical}', "");
-    Error('\p{Is_Block: 		Miscellaneous_TECHNICAL:=}');
-    Error('\P{Is_Block: 		Miscellaneous_TECHNICAL:=}');
+    Expect(1, 9215, '\p{Blk:  -MISC_technical}', "");
+    Expect(0, 9215, '\p{^Blk:  -MISC_technical}', "");
+    Expect(0, 9215, '\P{Blk:  -MISC_technical}', "");
+    Expect(1, 9215, '\P{^Blk:  -MISC_technical}', "");
+    Expect(0, 9216, '\p{Blk:  -MISC_technical}', "");
+    Expect(1, 9216, '\p{^Blk:  -MISC_technical}', "");
+    Expect(1, 9216, '\P{Blk:  -MISC_technical}', "");
+    Expect(0, 9216, '\P{^Blk:  -MISC_technical}', "");
+    Error('\p{Is_Block=-miscellaneous_technical:=}');
+    Error('\P{Is_Block=-miscellaneous_technical:=}');
     Expect(1, 9215, '\p{Is_Block=miscellaneoustechnical}', "");
     Expect(0, 9215, '\p{^Is_Block=miscellaneoustechnical}', "");
     Expect(0, 9215, '\P{Is_Block=miscellaneoustechnical}', "");
@@ -19500,16 +20004,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9216, '\p{^Is_Block=miscellaneoustechnical}', "");
     Expect(1, 9216, '\P{Is_Block=miscellaneoustechnical}', "");
     Expect(0, 9216, '\P{^Is_Block=miscellaneoustechnical}', "");
-    Expect(1, 9215, '\p{Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(0, 9215, '\p{^Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(0, 9215, '\P{Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(1, 9215, '\P{^Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(0, 9216, '\p{Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(1, 9216, '\p{^Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(1, 9216, '\P{Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Expect(0, 9216, '\P{^Is_Block=_-MISCELLANEOUS_Technical}', "");
-    Error('\p{Is_Blk=/a/MISC_TECHNICAL}');
-    Error('\P{Is_Blk=/a/MISC_TECHNICAL}');
+    Expect(1, 9215, '\p{Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\P{Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\p{Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\P{Is_Block=-miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^Is_Block=-miscellaneous_TECHNICAL}', "");
+    Error('\p{Is_Blk=_:=MISC_Technical}');
+    Error('\P{Is_Blk=_:=MISC_Technical}');
     Expect(1, 9215, '\p{Is_Blk=misctechnical}', "");
     Expect(0, 9215, '\p{^Is_Blk=misctechnical}', "");
     Expect(0, 9215, '\P{Is_Blk=misctechnical}', "");
@@ -19518,16 +20022,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9216, '\p{^Is_Blk=misctechnical}', "");
     Expect(1, 9216, '\P{Is_Blk=misctechnical}', "");
     Expect(0, 9216, '\P{^Is_Blk=misctechnical}', "");
-    Expect(1, 9215, '\p{Is_Blk= Misc_technical}', "");
-    Expect(0, 9215, '\p{^Is_Blk= Misc_technical}', "");
-    Expect(0, 9215, '\P{Is_Blk= Misc_technical}', "");
-    Expect(1, 9215, '\P{^Is_Blk= Misc_technical}', "");
-    Expect(0, 9216, '\p{Is_Blk= Misc_technical}', "");
-    Expect(1, 9216, '\p{^Is_Blk= Misc_technical}', "");
-    Expect(1, 9216, '\P{Is_Blk= Misc_technical}', "");
-    Expect(0, 9216, '\P{^Is_Blk= Misc_technical}', "");
-    Error('\p{Block:    :=Modi}');
-    Error('\P{Block:    :=Modi}');
+    Expect(1, 9215, '\p{Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(0, 9215, '\P{Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(0, 9216, '\p{Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(1, 9216, '\P{Is_Blk= 	Misc_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^Is_Blk= 	Misc_TECHNICAL}', "");
+    Error('\p{Block: _ Modi/a/}');
+    Error('\P{Block: _ Modi/a/}');
     Expect(1, 71263, '\p{Block=:\AModi\z:}', "");;
     Expect(0, 71264, '\p{Block=:\AModi\z:}', "");;
     Expect(1, 71263, '\p{Block=modi}', "");
@@ -19540,38 +20044,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71264, '\P{^Block=modi}', "");
     Expect(1, 71263, '\p{Block=:\Amodi\z:}', "");;
     Expect(0, 71264, '\p{Block=:\Amodi\z:}', "");;
-    Expect(1, 71263, '\p{Block=		Modi}', "");
-    Expect(0, 71263, '\p{^Block=		Modi}', "");
-    Expect(0, 71263, '\P{Block=		Modi}', "");
-    Expect(1, 71263, '\P{^Block=		Modi}', "");
-    Expect(0, 71264, '\p{Block=		Modi}', "");
-    Expect(1, 71264, '\p{^Block=		Modi}', "");
-    Expect(1, 71264, '\P{Block=		Modi}', "");
-    Expect(0, 71264, '\P{^Block=		Modi}', "");
-    Error('\p{Blk= -modi:=}');
-    Error('\P{Blk= -modi:=}');
+    Expect(1, 71263, '\p{Block=		MODI}', "");
+    Expect(0, 71263, '\p{^Block=		MODI}', "");
+    Expect(0, 71263, '\P{Block=		MODI}', "");
+    Expect(1, 71263, '\P{^Block=		MODI}', "");
+    Expect(0, 71264, '\p{Block=		MODI}', "");
+    Expect(1, 71264, '\p{^Block=		MODI}', "");
+    Expect(1, 71264, '\P{Block=		MODI}', "");
+    Expect(0, 71264, '\P{^Block=		MODI}', "");
+    Error('\p{Blk= Modi/a/}');
+    Error('\P{Blk= Modi/a/}');
     Expect(1, 71263, '\p{Blk=:\AModi\z:}', "");;
     Expect(0, 71264, '\p{Blk=:\AModi\z:}', "");;
-    Expect(1, 71263, '\p{Blk:   modi}', "");
-    Expect(0, 71263, '\p{^Blk:   modi}', "");
-    Expect(0, 71263, '\P{Blk:   modi}', "");
-    Expect(1, 71263, '\P{^Blk:   modi}', "");
-    Expect(0, 71264, '\p{Blk:   modi}', "");
-    Expect(1, 71264, '\p{^Blk:   modi}', "");
-    Expect(1, 71264, '\P{Blk:   modi}', "");
-    Expect(0, 71264, '\P{^Blk:   modi}', "");
+    Expect(1, 71263, '\p{Blk=modi}', "");
+    Expect(0, 71263, '\p{^Blk=modi}', "");
+    Expect(0, 71263, '\P{Blk=modi}', "");
+    Expect(1, 71263, '\P{^Blk=modi}', "");
+    Expect(0, 71264, '\p{Blk=modi}', "");
+    Expect(1, 71264, '\p{^Blk=modi}', "");
+    Expect(1, 71264, '\P{Blk=modi}', "");
+    Expect(0, 71264, '\P{^Blk=modi}', "");
     Expect(1, 71263, '\p{Blk=:\Amodi\z:}', "");;
     Expect(0, 71264, '\p{Blk=:\Amodi\z:}', "");;
-    Expect(1, 71263, '\p{Blk= 	modi}', "");
-    Expect(0, 71263, '\p{^Blk= 	modi}', "");
-    Expect(0, 71263, '\P{Blk= 	modi}', "");
-    Expect(1, 71263, '\P{^Blk= 	modi}', "");
-    Expect(0, 71264, '\p{Blk= 	modi}', "");
-    Expect(1, 71264, '\p{^Blk= 	modi}', "");
-    Expect(1, 71264, '\P{Blk= 	modi}', "");
-    Expect(0, 71264, '\P{^Blk= 	modi}', "");
-    Error('\p{Is_Block=/a/-_Modi}');
-    Error('\P{Is_Block=/a/-_Modi}');
+    Expect(1, 71263, '\p{Blk= Modi}', "");
+    Expect(0, 71263, '\p{^Blk= Modi}', "");
+    Expect(0, 71263, '\P{Blk= Modi}', "");
+    Expect(1, 71263, '\P{^Blk= Modi}', "");
+    Expect(0, 71264, '\p{Blk= Modi}', "");
+    Expect(1, 71264, '\p{^Blk= Modi}', "");
+    Expect(1, 71264, '\P{Blk= Modi}', "");
+    Expect(0, 71264, '\P{^Blk= Modi}', "");
+    Error('\p{Is_Block=	/a/Modi}');
+    Error('\P{Is_Block=	/a/Modi}');
     Expect(1, 71263, '\p{Is_Block=modi}', "");
     Expect(0, 71263, '\p{^Is_Block=modi}', "");
     Expect(0, 71263, '\P{Is_Block=modi}', "");
@@ -19580,16 +20084,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71264, '\p{^Is_Block=modi}', "");
     Expect(1, 71264, '\P{Is_Block=modi}', "");
     Expect(0, 71264, '\P{^Is_Block=modi}', "");
-    Expect(1, 71263, '\p{Is_Block=_ modi}', "");
-    Expect(0, 71263, '\p{^Is_Block=_ modi}', "");
-    Expect(0, 71263, '\P{Is_Block=_ modi}', "");
-    Expect(1, 71263, '\P{^Is_Block=_ modi}', "");
-    Expect(0, 71264, '\p{Is_Block=_ modi}', "");
-    Expect(1, 71264, '\p{^Is_Block=_ modi}', "");
-    Expect(1, 71264, '\P{Is_Block=_ modi}', "");
-    Expect(0, 71264, '\P{^Is_Block=_ modi}', "");
-    Error('\p{Is_Blk=/a/- modi}');
-    Error('\P{Is_Blk=/a/- modi}');
+    Expect(1, 71263, '\p{Is_Block=		Modi}', "");
+    Expect(0, 71263, '\p{^Is_Block=		Modi}', "");
+    Expect(0, 71263, '\P{Is_Block=		Modi}', "");
+    Expect(1, 71263, '\P{^Is_Block=		Modi}', "");
+    Expect(0, 71264, '\p{Is_Block=		Modi}', "");
+    Expect(1, 71264, '\p{^Is_Block=		Modi}', "");
+    Expect(1, 71264, '\P{Is_Block=		Modi}', "");
+    Expect(0, 71264, '\P{^Is_Block=		Modi}', "");
+    Error('\p{Is_Blk=:=__Modi}');
+    Error('\P{Is_Blk=:=__Modi}');
     Expect(1, 71263, '\p{Is_Blk=modi}', "");
     Expect(0, 71263, '\p{^Is_Blk=modi}', "");
     Expect(0, 71263, '\P{Is_Blk=modi}', "");
@@ -19598,16 +20102,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71264, '\p{^Is_Blk=modi}', "");
     Expect(1, 71264, '\P{Is_Blk=modi}', "");
     Expect(0, 71264, '\P{^Is_Blk=modi}', "");
-    Expect(1, 71263, '\p{Is_Blk= _Modi}', "");
-    Expect(0, 71263, '\p{^Is_Blk= _Modi}', "");
-    Expect(0, 71263, '\P{Is_Blk= _Modi}', "");
-    Expect(1, 71263, '\P{^Is_Blk= _Modi}', "");
-    Expect(0, 71264, '\p{Is_Blk= _Modi}', "");
-    Expect(1, 71264, '\p{^Is_Blk= _Modi}', "");
-    Expect(1, 71264, '\P{Is_Blk= _Modi}', "");
-    Expect(0, 71264, '\P{^Is_Blk= _Modi}', "");
-    Error('\p{Block=_:=spacing_modifier_LETTERS}');
-    Error('\P{Block=_:=spacing_modifier_LETTERS}');
+    Expect(1, 71263, '\p{Is_Blk=		Modi}', "");
+    Expect(0, 71263, '\p{^Is_Blk=		Modi}', "");
+    Expect(0, 71263, '\P{Is_Blk=		Modi}', "");
+    Expect(1, 71263, '\P{^Is_Blk=		Modi}', "");
+    Expect(0, 71264, '\p{Is_Blk=		Modi}', "");
+    Expect(1, 71264, '\p{^Is_Blk=		Modi}', "");
+    Expect(1, 71264, '\P{Is_Blk=		Modi}', "");
+    Expect(0, 71264, '\P{^Is_Blk=		Modi}', "");
+    Error('\p{Block=_:=Spacing_Modifier_letters}');
+    Error('\P{Block=_:=Spacing_Modifier_letters}');
     Expect(1, 767, '\p{Block=:\ASpacing_Modifier_Letters\z:}', "");;
     Expect(0, 768, '\p{Block=:\ASpacing_Modifier_Letters\z:}', "");;
     Expect(1, 767, '\p{Block=spacingmodifierletters}', "");
@@ -19620,38 +20124,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 768, '\P{^Block=spacingmodifierletters}', "");
     Expect(1, 767, '\p{Block=:\Aspacingmodifierletters\z:}', "");;
     Expect(0, 768, '\p{Block=:\Aspacingmodifierletters\z:}', "");;
-    Expect(1, 767, '\p{Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(0, 767, '\p{^Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(0, 767, '\P{Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(1, 767, '\P{^Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(0, 768, '\p{Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(1, 768, '\p{^Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(1, 768, '\P{Block=_Spacing_Modifier_LETTERS}', "");
-    Expect(0, 768, '\P{^Block=_Spacing_Modifier_LETTERS}', "");
-    Error('\p{Blk:   	:=Modifier_Letters}');
-    Error('\P{Blk:   	:=Modifier_Letters}');
+    Expect(1, 767, '\p{Block=-Spacing_modifier_Letters}', "");
+    Expect(0, 767, '\p{^Block=-Spacing_modifier_Letters}', "");
+    Expect(0, 767, '\P{Block=-Spacing_modifier_Letters}', "");
+    Expect(1, 767, '\P{^Block=-Spacing_modifier_Letters}', "");
+    Expect(0, 768, '\p{Block=-Spacing_modifier_Letters}', "");
+    Expect(1, 768, '\p{^Block=-Spacing_modifier_Letters}', "");
+    Expect(1, 768, '\P{Block=-Spacing_modifier_Letters}', "");
+    Expect(0, 768, '\P{^Block=-Spacing_modifier_Letters}', "");
+    Error('\p{Blk=_/a/Modifier_Letters}');
+    Error('\P{Blk=_/a/Modifier_Letters}');
     Expect(1, 767, '\p{Blk=:\AModifier_Letters\z:}', "");;
     Expect(0, 768, '\p{Blk=:\AModifier_Letters\z:}', "");;
-    Expect(1, 767, '\p{Blk: modifierletters}', "");
-    Expect(0, 767, '\p{^Blk: modifierletters}', "");
-    Expect(0, 767, '\P{Blk: modifierletters}', "");
-    Expect(1, 767, '\P{^Blk: modifierletters}', "");
-    Expect(0, 768, '\p{Blk: modifierletters}', "");
-    Expect(1, 768, '\p{^Blk: modifierletters}', "");
-    Expect(1, 768, '\P{Blk: modifierletters}', "");
-    Expect(0, 768, '\P{^Blk: modifierletters}', "");
+    Expect(1, 767, '\p{Blk=modifierletters}', "");
+    Expect(0, 767, '\p{^Blk=modifierletters}', "");
+    Expect(0, 767, '\P{Blk=modifierletters}', "");
+    Expect(1, 767, '\P{^Blk=modifierletters}', "");
+    Expect(0, 768, '\p{Blk=modifierletters}', "");
+    Expect(1, 768, '\p{^Blk=modifierletters}', "");
+    Expect(1, 768, '\P{Blk=modifierletters}', "");
+    Expect(0, 768, '\P{^Blk=modifierletters}', "");
     Expect(1, 767, '\p{Blk=:\Amodifierletters\z:}', "");;
     Expect(0, 768, '\p{Blk=:\Amodifierletters\z:}', "");;
-    Expect(1, 767, '\p{Blk=modifier_letters}', "");
-    Expect(0, 767, '\p{^Blk=modifier_letters}', "");
-    Expect(0, 767, '\P{Blk=modifier_letters}', "");
-    Expect(1, 767, '\P{^Blk=modifier_letters}', "");
-    Expect(0, 768, '\p{Blk=modifier_letters}', "");
-    Expect(1, 768, '\p{^Blk=modifier_letters}', "");
-    Expect(1, 768, '\P{Blk=modifier_letters}', "");
-    Expect(0, 768, '\P{^Blk=modifier_letters}', "");
-    Error('\p{Is_Block: :=_spacing_Modifier_LETTERS}');
-    Error('\P{Is_Block: :=_spacing_Modifier_LETTERS}');
+    Expect(1, 767, '\p{Blk=_ modifier_letters}', "");
+    Expect(0, 767, '\p{^Blk=_ modifier_letters}', "");
+    Expect(0, 767, '\P{Blk=_ modifier_letters}', "");
+    Expect(1, 767, '\P{^Blk=_ modifier_letters}', "");
+    Expect(0, 768, '\p{Blk=_ modifier_letters}', "");
+    Expect(1, 768, '\p{^Blk=_ modifier_letters}', "");
+    Expect(1, 768, '\P{Blk=_ modifier_letters}', "");
+    Expect(0, 768, '\P{^Blk=_ modifier_letters}', "");
+    Error('\p{Is_Block:  /a/Spacing_Modifier_LETTERS}');
+    Error('\P{Is_Block:  /a/Spacing_Modifier_LETTERS}');
     Expect(1, 767, '\p{Is_Block=spacingmodifierletters}', "");
     Expect(0, 767, '\p{^Is_Block=spacingmodifierletters}', "");
     Expect(0, 767, '\P{Is_Block=spacingmodifierletters}', "");
@@ -19660,16 +20164,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 768, '\p{^Is_Block=spacingmodifierletters}', "");
     Expect(1, 768, '\P{Is_Block=spacingmodifierletters}', "");
     Expect(0, 768, '\P{^Is_Block=spacingmodifierletters}', "");
-    Expect(1, 767, '\p{Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(0, 767, '\p{^Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(0, 767, '\P{Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(1, 767, '\P{^Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(0, 768, '\p{Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(1, 768, '\p{^Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(1, 768, '\P{Is_Block=Spacing_Modifier_Letters}', "");
-    Expect(0, 768, '\P{^Is_Block=Spacing_Modifier_Letters}', "");
-    Error('\p{Is_Blk: /a/-MODIFIER_Letters}');
-    Error('\P{Is_Blk: /a/-MODIFIER_Letters}');
+    Expect(1, 767, '\p{Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(0, 767, '\p{^Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(0, 767, '\P{Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(1, 767, '\P{^Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(0, 768, '\p{Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(1, 768, '\p{^Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(1, 768, '\P{Is_Block=		spacing_modifier_LETTERS}', "");
+    Expect(0, 768, '\P{^Is_Block=		spacing_modifier_LETTERS}', "");
+    Error('\p{Is_Blk=	:=modifier_LETTERS}');
+    Error('\P{Is_Blk=	:=modifier_LETTERS}');
     Expect(1, 767, '\p{Is_Blk=modifierletters}', "");
     Expect(0, 767, '\p{^Is_Blk=modifierletters}', "");
     Expect(0, 767, '\P{Is_Blk=modifierletters}', "");
@@ -19678,16 +20182,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 768, '\p{^Is_Blk=modifierletters}', "");
     Expect(1, 768, '\P{Is_Blk=modifierletters}', "");
     Expect(0, 768, '\P{^Is_Blk=modifierletters}', "");
-    Expect(1, 767, '\p{Is_Blk=		Modifier_Letters}', "");
-    Expect(0, 767, '\p{^Is_Blk=		Modifier_Letters}', "");
-    Expect(0, 767, '\P{Is_Blk=		Modifier_Letters}', "");
-    Expect(1, 767, '\P{^Is_Blk=		Modifier_Letters}', "");
-    Expect(0, 768, '\p{Is_Blk=		Modifier_Letters}', "");
-    Expect(1, 768, '\p{^Is_Blk=		Modifier_Letters}', "");
-    Expect(1, 768, '\P{Is_Blk=		Modifier_Letters}', "");
-    Expect(0, 768, '\P{^Is_Blk=		Modifier_Letters}', "");
-    Error('\p{Block=/a/	 Modifier_tone_Letters}');
-    Error('\P{Block=/a/	 Modifier_tone_Letters}');
+    Expect(1, 767, '\p{Is_Blk=_modifier_Letters}', "");
+    Expect(0, 767, '\p{^Is_Blk=_modifier_Letters}', "");
+    Expect(0, 767, '\P{Is_Blk=_modifier_Letters}', "");
+    Expect(1, 767, '\P{^Is_Blk=_modifier_Letters}', "");
+    Expect(0, 768, '\p{Is_Blk=_modifier_Letters}', "");
+    Expect(1, 768, '\p{^Is_Blk=_modifier_Letters}', "");
+    Expect(1, 768, '\P{Is_Blk=_modifier_Letters}', "");
+    Expect(0, 768, '\P{^Is_Blk=_modifier_Letters}', "");
+    Error('\p{Block:/a/ MODIFIER_tone_letters}');
+    Error('\P{Block:/a/ MODIFIER_tone_letters}');
     Expect(1, 42783, '\p{Block=:\AModifier_Tone_Letters\z:}', "");;
     Expect(0, 42784, '\p{Block=:\AModifier_Tone_Letters\z:}', "");;
     Expect(1, 42783, '\p{Block=modifiertoneletters}', "");
@@ -19700,16 +20204,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42784, '\P{^Block=modifiertoneletters}', "");
     Expect(1, 42783, '\p{Block=:\Amodifiertoneletters\z:}', "");;
     Expect(0, 42784, '\p{Block=:\Amodifiertoneletters\z:}', "");;
-    Expect(1, 42783, '\p{Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(0, 42783, '\p{^Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(0, 42783, '\P{Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(1, 42783, '\P{^Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(0, 42784, '\p{Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(1, 42784, '\p{^Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(1, 42784, '\P{Block=-MODIFIER_TONE_LETTERS}', "");
-    Expect(0, 42784, '\P{^Block=-MODIFIER_TONE_LETTERS}', "");
-    Error('\p{Blk:	-:=Modifier_tone_letters}');
-    Error('\P{Blk:	-:=Modifier_tone_letters}');
+    Expect(1, 42783, '\p{Block= Modifier_Tone_letters}', "");
+    Expect(0, 42783, '\p{^Block= Modifier_Tone_letters}', "");
+    Expect(0, 42783, '\P{Block= Modifier_Tone_letters}', "");
+    Expect(1, 42783, '\P{^Block= Modifier_Tone_letters}', "");
+    Expect(0, 42784, '\p{Block= Modifier_Tone_letters}', "");
+    Expect(1, 42784, '\p{^Block= Modifier_Tone_letters}', "");
+    Expect(1, 42784, '\P{Block= Modifier_Tone_letters}', "");
+    Expect(0, 42784, '\P{^Block= Modifier_Tone_letters}', "");
+    Error('\p{Blk=:=_ Modifier_Tone_Letters}');
+    Error('\P{Blk=:=_ Modifier_Tone_Letters}');
     Expect(1, 42783, '\p{Blk=:\AModifier_Tone_Letters\z:}', "");;
     Expect(0, 42784, '\p{Blk=:\AModifier_Tone_Letters\z:}', "");;
     Expect(1, 42783, '\p{Blk=modifiertoneletters}', "");
@@ -19722,34 +20226,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42784, '\P{^Blk=modifiertoneletters}', "");
     Expect(1, 42783, '\p{Blk=:\Amodifiertoneletters\z:}', "");;
     Expect(0, 42784, '\p{Blk=:\Amodifiertoneletters\z:}', "");;
-    Expect(1, 42783, '\p{Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(0, 42783, '\p{^Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(0, 42783, '\P{Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(1, 42783, '\P{^Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(0, 42784, '\p{Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(1, 42784, '\p{^Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(1, 42784, '\P{Blk=	 MODIFIER_Tone_Letters}', "");
-    Expect(0, 42784, '\P{^Blk=	 MODIFIER_Tone_Letters}', "");
-    Error('\p{Is_Block:			modifier_TONE_Letters:=}');
-    Error('\P{Is_Block:			modifier_TONE_Letters:=}');
-    Expect(1, 42783, '\p{Is_Block:modifiertoneletters}', "");
-    Expect(0, 42783, '\p{^Is_Block:modifiertoneletters}', "");
-    Expect(0, 42783, '\P{Is_Block:modifiertoneletters}', "");
-    Expect(1, 42783, '\P{^Is_Block:modifiertoneletters}', "");
-    Expect(0, 42784, '\p{Is_Block:modifiertoneletters}', "");
-    Expect(1, 42784, '\p{^Is_Block:modifiertoneletters}', "");
-    Expect(1, 42784, '\P{Is_Block:modifiertoneletters}', "");
-    Expect(0, 42784, '\P{^Is_Block:modifiertoneletters}', "");
-    Expect(1, 42783, '\p{Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42783, '\p{^Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42783, '\P{Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(1, 42783, '\P{^Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42784, '\p{Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(1, 42784, '\p{^Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(1, 42784, '\P{Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42784, '\P{^Is_Block: 	Modifier_Tone_LETTERS}', "");
-    Error('\p{Is_Blk:   :=	MODIFIER_tone_Letters}');
-    Error('\P{Is_Blk:   :=	MODIFIER_tone_Letters}');
+    Expect(1, 42783, '\p{Blk= _modifier_Tone_letters}', "");
+    Expect(0, 42783, '\p{^Blk= _modifier_Tone_letters}', "");
+    Expect(0, 42783, '\P{Blk= _modifier_Tone_letters}', "");
+    Expect(1, 42783, '\P{^Blk= _modifier_Tone_letters}', "");
+    Expect(0, 42784, '\p{Blk= _modifier_Tone_letters}', "");
+    Expect(1, 42784, '\p{^Blk= _modifier_Tone_letters}', "");
+    Expect(1, 42784, '\P{Blk= _modifier_Tone_letters}', "");
+    Expect(0, 42784, '\P{^Blk= _modifier_Tone_letters}', "");
+    Error('\p{Is_Block=_	modifier_Tone_letters:=}');
+    Error('\P{Is_Block=_	modifier_Tone_letters:=}');
+    Expect(1, 42783, '\p{Is_Block=modifiertoneletters}', "");
+    Expect(0, 42783, '\p{^Is_Block=modifiertoneletters}', "");
+    Expect(0, 42783, '\P{Is_Block=modifiertoneletters}', "");
+    Expect(1, 42783, '\P{^Is_Block=modifiertoneletters}', "");
+    Expect(0, 42784, '\p{Is_Block=modifiertoneletters}', "");
+    Expect(1, 42784, '\p{^Is_Block=modifiertoneletters}', "");
+    Expect(1, 42784, '\P{Is_Block=modifiertoneletters}', "");
+    Expect(0, 42784, '\P{^Is_Block=modifiertoneletters}', "");
+    Expect(1, 42783, '\p{Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(0, 42783, '\p{^Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(0, 42783, '\P{Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(1, 42783, '\P{^Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(0, 42784, '\p{Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(1, 42784, '\p{^Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(1, 42784, '\P{Is_Block:		_Modifier_tone_LETTERS}', "");
+    Expect(0, 42784, '\P{^Is_Block:		_Modifier_tone_LETTERS}', "");
+    Error('\p{Is_Blk=	 Modifier_Tone_Letters:=}');
+    Error('\P{Is_Blk=	 Modifier_Tone_Letters:=}');
     Expect(1, 42783, '\p{Is_Blk=modifiertoneletters}', "");
     Expect(0, 42783, '\p{^Is_Blk=modifiertoneletters}', "");
     Expect(0, 42783, '\P{Is_Blk=modifiertoneletters}', "");
@@ -19758,38 +20262,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42784, '\p{^Is_Blk=modifiertoneletters}', "");
     Expect(1, 42784, '\P{Is_Blk=modifiertoneletters}', "");
     Expect(0, 42784, '\P{^Is_Blk=modifiertoneletters}', "");
-    Expect(1, 42783, '\p{Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(0, 42783, '\p{^Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(0, 42783, '\P{Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(1, 42783, '\P{^Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(0, 42784, '\p{Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(1, 42784, '\p{^Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(1, 42784, '\P{Is_Blk=--Modifier_Tone_Letters}', "");
-    Expect(0, 42784, '\P{^Is_Blk=--Modifier_Tone_Letters}', "");
-    Error('\p{Block=_ mongolian/a/}');
-    Error('\P{Block=_ mongolian/a/}');
+    Expect(1, 42783, '\p{Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(0, 42783, '\p{^Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(0, 42783, '\P{Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(1, 42783, '\P{^Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(0, 42784, '\p{Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(1, 42784, '\p{^Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(1, 42784, '\P{Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Expect(0, 42784, '\P{^Is_Blk:   -MODIFIER_Tone_letters}', "");
+    Error('\p{Block=:=	_Mongolian}');
+    Error('\P{Block=:=	_Mongolian}');
     Expect(1, 6319, '\p{Block=:\AMongolian\z:}', "");;
     Expect(0, 6320, '\p{Block=:\AMongolian\z:}', "");;
-    Expect(1, 6319, '\p{Block:	mongolian}', "");
-    Expect(0, 6319, '\p{^Block:	mongolian}', "");
-    Expect(0, 6319, '\P{Block:	mongolian}', "");
-    Expect(1, 6319, '\P{^Block:	mongolian}', "");
-    Expect(0, 6320, '\p{Block:	mongolian}', "");
-    Expect(1, 6320, '\p{^Block:	mongolian}', "");
-    Expect(1, 6320, '\P{Block:	mongolian}', "");
-    Expect(0, 6320, '\P{^Block:	mongolian}', "");
+    Expect(1, 6319, '\p{Block=mongolian}', "");
+    Expect(0, 6319, '\p{^Block=mongolian}', "");
+    Expect(0, 6319, '\P{Block=mongolian}', "");
+    Expect(1, 6319, '\P{^Block=mongolian}', "");
+    Expect(0, 6320, '\p{Block=mongolian}', "");
+    Expect(1, 6320, '\p{^Block=mongolian}', "");
+    Expect(1, 6320, '\P{Block=mongolian}', "");
+    Expect(0, 6320, '\P{^Block=mongolian}', "");
     Expect(1, 6319, '\p{Block=:\Amongolian\z:}', "");;
     Expect(0, 6320, '\p{Block=:\Amongolian\z:}', "");;
-    Expect(1, 6319, '\p{Block=_mongolian}', "");
-    Expect(0, 6319, '\p{^Block=_mongolian}', "");
-    Expect(0, 6319, '\P{Block=_mongolian}', "");
-    Expect(1, 6319, '\P{^Block=_mongolian}', "");
-    Expect(0, 6320, '\p{Block=_mongolian}', "");
-    Expect(1, 6320, '\p{^Block=_mongolian}', "");
-    Expect(1, 6320, '\P{Block=_mongolian}', "");
-    Expect(0, 6320, '\P{^Block=_mongolian}', "");
-    Error('\p{Blk=:= 	Mongolian}');
-    Error('\P{Blk=:= 	Mongolian}');
+    Expect(1, 6319, '\p{Block=		MONGOLIAN}', "");
+    Expect(0, 6319, '\p{^Block=		MONGOLIAN}', "");
+    Expect(0, 6319, '\P{Block=		MONGOLIAN}', "");
+    Expect(1, 6319, '\P{^Block=		MONGOLIAN}', "");
+    Expect(0, 6320, '\p{Block=		MONGOLIAN}', "");
+    Expect(1, 6320, '\p{^Block=		MONGOLIAN}', "");
+    Expect(1, 6320, '\P{Block=		MONGOLIAN}', "");
+    Expect(0, 6320, '\P{^Block=		MONGOLIAN}', "");
+    Error('\p{Blk=	:=mongolian}');
+    Error('\P{Blk=	:=mongolian}');
     Expect(1, 6319, '\p{Blk=:\AMongolian\z:}', "");;
     Expect(0, 6320, '\p{Blk=:\AMongolian\z:}', "");;
     Expect(1, 6319, '\p{Blk=mongolian}', "");
@@ -19802,16 +20306,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6320, '\P{^Blk=mongolian}', "");
     Expect(1, 6319, '\p{Blk=:\Amongolian\z:}', "");;
     Expect(0, 6320, '\p{Blk=:\Amongolian\z:}', "");;
-    Expect(1, 6319, '\p{Blk=-	mongolian}', "");
-    Expect(0, 6319, '\p{^Blk=-	mongolian}', "");
-    Expect(0, 6319, '\P{Blk=-	mongolian}', "");
-    Expect(1, 6319, '\P{^Blk=-	mongolian}', "");
-    Expect(0, 6320, '\p{Blk=-	mongolian}', "");
-    Expect(1, 6320, '\p{^Blk=-	mongolian}', "");
-    Expect(1, 6320, '\P{Blk=-	mongolian}', "");
-    Expect(0, 6320, '\P{^Blk=-	mongolian}', "");
-    Error('\p{Is_Block=:= _Mongolian}');
-    Error('\P{Is_Block=:= _Mongolian}');
+    Expect(1, 6319, '\p{Blk=_MONGOLIAN}', "");
+    Expect(0, 6319, '\p{^Blk=_MONGOLIAN}', "");
+    Expect(0, 6319, '\P{Blk=_MONGOLIAN}', "");
+    Expect(1, 6319, '\P{^Blk=_MONGOLIAN}', "");
+    Expect(0, 6320, '\p{Blk=_MONGOLIAN}', "");
+    Expect(1, 6320, '\p{^Blk=_MONGOLIAN}', "");
+    Expect(1, 6320, '\P{Blk=_MONGOLIAN}', "");
+    Expect(0, 6320, '\P{^Blk=_MONGOLIAN}', "");
+    Error('\p{Is_Block=-	mongolian/a/}');
+    Error('\P{Is_Block=-	mongolian/a/}');
     Expect(1, 6319, '\p{Is_Block=mongolian}', "");
     Expect(0, 6319, '\p{^Is_Block=mongolian}', "");
     Expect(0, 6319, '\P{Is_Block=mongolian}', "");
@@ -19820,16 +20324,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6320, '\p{^Is_Block=mongolian}', "");
     Expect(1, 6320, '\P{Is_Block=mongolian}', "");
     Expect(0, 6320, '\P{^Is_Block=mongolian}', "");
-    Expect(1, 6319, '\p{Is_Block:   --Mongolian}', "");
-    Expect(0, 6319, '\p{^Is_Block:   --Mongolian}', "");
-    Expect(0, 6319, '\P{Is_Block:   --Mongolian}', "");
-    Expect(1, 6319, '\P{^Is_Block:   --Mongolian}', "");
-    Expect(0, 6320, '\p{Is_Block:   --Mongolian}', "");
-    Expect(1, 6320, '\p{^Is_Block:   --Mongolian}', "");
-    Expect(1, 6320, '\P{Is_Block:   --Mongolian}', "");
-    Expect(0, 6320, '\P{^Is_Block:   --Mongolian}', "");
-    Error('\p{Is_Blk:	:=-	MONGOLIAN}');
-    Error('\P{Is_Blk:	:=-	MONGOLIAN}');
+    Expect(1, 6319, '\p{Is_Block=	Mongolian}', "");
+    Expect(0, 6319, '\p{^Is_Block=	Mongolian}', "");
+    Expect(0, 6319, '\P{Is_Block=	Mongolian}', "");
+    Expect(1, 6319, '\P{^Is_Block=	Mongolian}', "");
+    Expect(0, 6320, '\p{Is_Block=	Mongolian}', "");
+    Expect(1, 6320, '\p{^Is_Block=	Mongolian}', "");
+    Expect(1, 6320, '\P{Is_Block=	Mongolian}', "");
+    Expect(0, 6320, '\P{^Is_Block=	Mongolian}', "");
+    Error('\p{Is_Blk=__Mongolian:=}');
+    Error('\P{Is_Blk=__Mongolian:=}');
     Expect(1, 6319, '\p{Is_Blk=mongolian}', "");
     Expect(0, 6319, '\p{^Is_Blk=mongolian}', "");
     Expect(0, 6319, '\P{Is_Blk=mongolian}', "");
@@ -19838,16 +20342,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6320, '\p{^Is_Blk=mongolian}', "");
     Expect(1, 6320, '\P{Is_Blk=mongolian}', "");
     Expect(0, 6320, '\P{^Is_Blk=mongolian}', "");
-    Expect(1, 6319, '\p{Is_Blk:   __Mongolian}', "");
-    Expect(0, 6319, '\p{^Is_Blk:   __Mongolian}', "");
-    Expect(0, 6319, '\P{Is_Blk:   __Mongolian}', "");
-    Expect(1, 6319, '\P{^Is_Blk:   __Mongolian}', "");
-    Expect(0, 6320, '\p{Is_Blk:   __Mongolian}', "");
-    Expect(1, 6320, '\p{^Is_Blk:   __Mongolian}', "");
-    Expect(1, 6320, '\P{Is_Blk:   __Mongolian}', "");
-    Expect(0, 6320, '\P{^Is_Blk:   __Mongolian}', "");
-    Error('\p{Block=_ mongolian_SUPPLEMENT/a/}');
-    Error('\P{Block=_ mongolian_SUPPLEMENT/a/}');
+    Expect(1, 6319, '\p{Is_Blk:   	Mongolian}', "");
+    Expect(0, 6319, '\p{^Is_Blk:   	Mongolian}', "");
+    Expect(0, 6319, '\P{Is_Blk:   	Mongolian}', "");
+    Expect(1, 6319, '\P{^Is_Blk:   	Mongolian}', "");
+    Expect(0, 6320, '\p{Is_Blk:   	Mongolian}', "");
+    Expect(1, 6320, '\p{^Is_Blk:   	Mongolian}', "");
+    Expect(1, 6320, '\P{Is_Blk:   	Mongolian}', "");
+    Expect(0, 6320, '\P{^Is_Blk:   	Mongolian}', "");
+    Error('\p{Block:	:=Mongolian_supplement}');
+    Error('\P{Block:	:=Mongolian_supplement}');
     Expect(1, 71295, '\p{Block=:\AMongolian_Supplement\z:}', "");;
     Expect(0, 71296, '\p{Block=:\AMongolian_Supplement\z:}', "");;
     Expect(1, 71295, '\p{Block=mongoliansupplement}', "");
@@ -19860,16 +20364,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71296, '\P{^Block=mongoliansupplement}', "");
     Expect(1, 71295, '\p{Block=:\Amongoliansupplement\z:}', "");;
     Expect(0, 71296, '\p{Block=:\Amongoliansupplement\z:}', "");;
-    Expect(1, 71295, '\p{Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71295, '\p{^Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71295, '\P{Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(1, 71295, '\P{^Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71296, '\p{Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(1, 71296, '\p{^Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(1, 71296, '\P{Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71296, '\P{^Block:   -MONGOLIAN_SUPPLEMENT}', "");
-    Error('\p{Blk=	/a/Mongolian_sup}');
-    Error('\P{Blk=	/a/Mongolian_sup}');
+    Expect(1, 71295, '\p{Block: mongolian_SUPPLEMENT}', "");
+    Expect(0, 71295, '\p{^Block: mongolian_SUPPLEMENT}', "");
+    Expect(0, 71295, '\P{Block: mongolian_SUPPLEMENT}', "");
+    Expect(1, 71295, '\P{^Block: mongolian_SUPPLEMENT}', "");
+    Expect(0, 71296, '\p{Block: mongolian_SUPPLEMENT}', "");
+    Expect(1, 71296, '\p{^Block: mongolian_SUPPLEMENT}', "");
+    Expect(1, 71296, '\P{Block: mongolian_SUPPLEMENT}', "");
+    Expect(0, 71296, '\P{^Block: mongolian_SUPPLEMENT}', "");
+    Error('\p{Blk=	 mongolian_Sup/a/}');
+    Error('\P{Blk=	 mongolian_Sup/a/}');
     Expect(1, 71295, '\p{Blk=:\AMongolian_Sup\z:}', "");;
     Expect(0, 71296, '\p{Blk=:\AMongolian_Sup\z:}', "");;
     Expect(1, 71295, '\p{Blk=mongoliansup}', "");
@@ -19882,16 +20386,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71296, '\P{^Blk=mongoliansup}', "");
     Expect(1, 71295, '\p{Blk=:\Amongoliansup\z:}', "");;
     Expect(0, 71296, '\p{Blk=:\Amongoliansup\z:}', "");;
-    Expect(1, 71295, '\p{Blk=	-Mongolian_Sup}', "");
-    Expect(0, 71295, '\p{^Blk=	-Mongolian_Sup}', "");
-    Expect(0, 71295, '\P{Blk=	-Mongolian_Sup}', "");
-    Expect(1, 71295, '\P{^Blk=	-Mongolian_Sup}', "");
-    Expect(0, 71296, '\p{Blk=	-Mongolian_Sup}', "");
-    Expect(1, 71296, '\p{^Blk=	-Mongolian_Sup}', "");
-    Expect(1, 71296, '\P{Blk=	-Mongolian_Sup}', "");
-    Expect(0, 71296, '\P{^Blk=	-Mongolian_Sup}', "");
-    Error('\p{Is_Block:_:=MONGOLIAN_Supplement}');
-    Error('\P{Is_Block:_:=MONGOLIAN_Supplement}');
+    Expect(1, 71295, '\p{Blk= MONGOLIAN_sup}', "");
+    Expect(0, 71295, '\p{^Blk= MONGOLIAN_sup}', "");
+    Expect(0, 71295, '\P{Blk= MONGOLIAN_sup}', "");
+    Expect(1, 71295, '\P{^Blk= MONGOLIAN_sup}', "");
+    Expect(0, 71296, '\p{Blk= MONGOLIAN_sup}', "");
+    Expect(1, 71296, '\p{^Blk= MONGOLIAN_sup}', "");
+    Expect(1, 71296, '\P{Blk= MONGOLIAN_sup}', "");
+    Expect(0, 71296, '\P{^Blk= MONGOLIAN_sup}', "");
+    Error('\p{Is_Block= /a/mongolian_SUPPLEMENT}');
+    Error('\P{Is_Block= /a/mongolian_SUPPLEMENT}');
     Expect(1, 71295, '\p{Is_Block=mongoliansupplement}', "");
     Expect(0, 71295, '\p{^Is_Block=mongoliansupplement}', "");
     Expect(0, 71295, '\P{Is_Block=mongoliansupplement}', "");
@@ -19900,16 +20404,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71296, '\p{^Is_Block=mongoliansupplement}', "");
     Expect(1, 71296, '\P{Is_Block=mongoliansupplement}', "");
     Expect(0, 71296, '\P{^Is_Block=mongoliansupplement}', "");
-    Expect(1, 71295, '\p{Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71295, '\p{^Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71295, '\P{Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(1, 71295, '\P{^Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71296, '\p{Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(1, 71296, '\p{^Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(1, 71296, '\P{Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Expect(0, 71296, '\P{^Is_Block=_ MONGOLIAN_SUPPLEMENT}', "");
-    Error('\p{Is_Blk:   /a/ Mongolian_SUP}');
-    Error('\P{Is_Blk:   /a/ Mongolian_SUP}');
+    Expect(1, 71295, '\p{Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(0, 71295, '\p{^Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(0, 71295, '\P{Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(1, 71295, '\P{^Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(0, 71296, '\p{Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(1, 71296, '\p{^Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(1, 71296, '\P{Is_Block=  mongolian_SUPPLEMENT}', "");
+    Expect(0, 71296, '\P{^Is_Block=  mongolian_SUPPLEMENT}', "");
+    Error('\p{Is_Blk=/a/ -MONGOLIAN_Sup}');
+    Error('\P{Is_Blk=/a/ -MONGOLIAN_Sup}');
     Expect(1, 71295, '\p{Is_Blk=mongoliansup}', "");
     Expect(0, 71295, '\p{^Is_Blk=mongoliansup}', "");
     Expect(0, 71295, '\P{Is_Blk=mongoliansup}', "");
@@ -19918,38 +20422,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71296, '\p{^Is_Blk=mongoliansup}', "");
     Expect(1, 71296, '\P{Is_Blk=mongoliansup}', "");
     Expect(0, 71296, '\P{^Is_Blk=mongoliansup}', "");
-    Expect(1, 71295, '\p{Is_Blk=__Mongolian_Sup}', "");
-    Expect(0, 71295, '\p{^Is_Blk=__Mongolian_Sup}', "");
-    Expect(0, 71295, '\P{Is_Blk=__Mongolian_Sup}', "");
-    Expect(1, 71295, '\P{^Is_Blk=__Mongolian_Sup}', "");
-    Expect(0, 71296, '\p{Is_Blk=__Mongolian_Sup}', "");
-    Expect(1, 71296, '\p{^Is_Blk=__Mongolian_Sup}', "");
-    Expect(1, 71296, '\P{Is_Blk=__Mongolian_Sup}', "");
-    Expect(0, 71296, '\P{^Is_Blk=__Mongolian_Sup}', "");
-    Error('\p{Block=:=__Mro}');
-    Error('\P{Block=:=__Mro}');
+    Expect(1, 71295, '\p{Is_Blk=-Mongolian_Sup}', "");
+    Expect(0, 71295, '\p{^Is_Blk=-Mongolian_Sup}', "");
+    Expect(0, 71295, '\P{Is_Blk=-Mongolian_Sup}', "");
+    Expect(1, 71295, '\P{^Is_Blk=-Mongolian_Sup}', "");
+    Expect(0, 71296, '\p{Is_Blk=-Mongolian_Sup}', "");
+    Expect(1, 71296, '\p{^Is_Blk=-Mongolian_Sup}', "");
+    Expect(1, 71296, '\P{Is_Blk=-Mongolian_Sup}', "");
+    Expect(0, 71296, '\P{^Is_Blk=-Mongolian_Sup}', "");
+    Error('\p{Block= 	Mro/a/}');
+    Error('\P{Block= 	Mro/a/}');
     Expect(1, 92783, '\p{Block=:\AMro\z:}', "");;
     Expect(0, 92784, '\p{Block=:\AMro\z:}', "");;
-    Expect(1, 92783, '\p{Block: mro}', "");
-    Expect(0, 92783, '\p{^Block: mro}', "");
-    Expect(0, 92783, '\P{Block: mro}', "");
-    Expect(1, 92783, '\P{^Block: mro}', "");
-    Expect(0, 92784, '\p{Block: mro}', "");
-    Expect(1, 92784, '\p{^Block: mro}', "");
-    Expect(1, 92784, '\P{Block: mro}', "");
-    Expect(0, 92784, '\P{^Block: mro}', "");
+    Expect(1, 92783, '\p{Block=mro}', "");
+    Expect(0, 92783, '\p{^Block=mro}', "");
+    Expect(0, 92783, '\P{Block=mro}', "");
+    Expect(1, 92783, '\P{^Block=mro}', "");
+    Expect(0, 92784, '\p{Block=mro}', "");
+    Expect(1, 92784, '\p{^Block=mro}', "");
+    Expect(1, 92784, '\P{Block=mro}', "");
+    Expect(0, 92784, '\P{^Block=mro}', "");
     Expect(1, 92783, '\p{Block=:\Amro\z:}', "");;
     Expect(0, 92784, '\p{Block=:\Amro\z:}', "");;
-    Expect(1, 92783, '\p{Block:   _MRO}', "");
-    Expect(0, 92783, '\p{^Block:   _MRO}', "");
-    Expect(0, 92783, '\P{Block:   _MRO}', "");
-    Expect(1, 92783, '\P{^Block:   _MRO}', "");
-    Expect(0, 92784, '\p{Block:   _MRO}', "");
-    Expect(1, 92784, '\p{^Block:   _MRO}', "");
-    Expect(1, 92784, '\P{Block:   _MRO}', "");
-    Expect(0, 92784, '\P{^Block:   _MRO}', "");
-    Error('\p{Blk= -MRO:=}');
-    Error('\P{Blk= -MRO:=}');
+    Expect(1, 92783, '\p{Block= -mro}', "");
+    Expect(0, 92783, '\p{^Block= -mro}', "");
+    Expect(0, 92783, '\P{Block= -mro}', "");
+    Expect(1, 92783, '\P{^Block= -mro}', "");
+    Expect(0, 92784, '\p{Block= -mro}', "");
+    Expect(1, 92784, '\p{^Block= -mro}', "");
+    Expect(1, 92784, '\P{Block= -mro}', "");
+    Expect(0, 92784, '\P{^Block= -mro}', "");
+    Error('\p{Blk=:=	_mro}');
+    Error('\P{Blk=:=	_mro}');
     Expect(1, 92783, '\p{Blk=:\AMro\z:}', "");;
     Expect(0, 92784, '\p{Blk=:\AMro\z:}', "");;
     Expect(1, 92783, '\p{Blk=mro}', "");
@@ -19962,16 +20466,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 92784, '\P{^Blk=mro}', "");
     Expect(1, 92783, '\p{Blk=:\Amro\z:}', "");;
     Expect(0, 92784, '\p{Blk=:\Amro\z:}', "");;
-    Expect(1, 92783, '\p{Blk=  Mro}', "");
-    Expect(0, 92783, '\p{^Blk=  Mro}', "");
-    Expect(0, 92783, '\P{Blk=  Mro}', "");
-    Expect(1, 92783, '\P{^Blk=  Mro}', "");
-    Expect(0, 92784, '\p{Blk=  Mro}', "");
-    Expect(1, 92784, '\p{^Blk=  Mro}', "");
-    Expect(1, 92784, '\P{Blk=  Mro}', "");
-    Expect(0, 92784, '\P{^Blk=  Mro}', "");
-    Error('\p{Is_Block=/a/MRO}');
-    Error('\P{Is_Block=/a/MRO}');
+    Expect(1, 92783, '\p{Blk=	 mro}', "");
+    Expect(0, 92783, '\p{^Blk=	 mro}', "");
+    Expect(0, 92783, '\P{Blk=	 mro}', "");
+    Expect(1, 92783, '\P{^Blk=	 mro}', "");
+    Expect(0, 92784, '\p{Blk=	 mro}', "");
+    Expect(1, 92784, '\p{^Blk=	 mro}', "");
+    Expect(1, 92784, '\P{Blk=	 mro}', "");
+    Expect(0, 92784, '\P{^Blk=	 mro}', "");
+    Error('\p{Is_Block=	_MRO:=}');
+    Error('\P{Is_Block=	_MRO:=}');
     Expect(1, 92783, '\p{Is_Block=mro}', "");
     Expect(0, 92783, '\p{^Is_Block=mro}', "");
     Expect(0, 92783, '\P{Is_Block=mro}', "");
@@ -19980,16 +20484,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 92784, '\p{^Is_Block=mro}', "");
     Expect(1, 92784, '\P{Is_Block=mro}', "");
     Expect(0, 92784, '\P{^Is_Block=mro}', "");
-    Expect(1, 92783, '\p{Is_Block=  MRO}', "");
-    Expect(0, 92783, '\p{^Is_Block=  MRO}', "");
-    Expect(0, 92783, '\P{Is_Block=  MRO}', "");
-    Expect(1, 92783, '\P{^Is_Block=  MRO}', "");
-    Expect(0, 92784, '\p{Is_Block=  MRO}', "");
-    Expect(1, 92784, '\p{^Is_Block=  MRO}', "");
-    Expect(1, 92784, '\P{Is_Block=  MRO}', "");
-    Expect(0, 92784, '\P{^Is_Block=  MRO}', "");
-    Error('\p{Is_Blk=/a/_-MRO}');
-    Error('\P{Is_Blk=/a/_-MRO}');
+    Expect(1, 92783, '\p{Is_Block=_Mro}', "");
+    Expect(0, 92783, '\p{^Is_Block=_Mro}', "");
+    Expect(0, 92783, '\P{Is_Block=_Mro}', "");
+    Expect(1, 92783, '\P{^Is_Block=_Mro}', "");
+    Expect(0, 92784, '\p{Is_Block=_Mro}', "");
+    Expect(1, 92784, '\p{^Is_Block=_Mro}', "");
+    Expect(1, 92784, '\P{Is_Block=_Mro}', "");
+    Expect(0, 92784, '\P{^Is_Block=_Mro}', "");
+    Error('\p{Is_Blk=:= 	Mro}');
+    Error('\P{Is_Blk=:= 	Mro}');
     Expect(1, 92783, '\p{Is_Blk=mro}', "");
     Expect(0, 92783, '\p{^Is_Blk=mro}', "");
     Expect(0, 92783, '\P{Is_Blk=mro}', "");
@@ -19998,16 +20502,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 92784, '\p{^Is_Blk=mro}', "");
     Expect(1, 92784, '\P{Is_Blk=mro}', "");
     Expect(0, 92784, '\P{^Is_Blk=mro}', "");
-    Expect(1, 92783, '\p{Is_Blk=	MRO}', "");
-    Expect(0, 92783, '\p{^Is_Blk=	MRO}', "");
-    Expect(0, 92783, '\P{Is_Blk=	MRO}', "");
-    Expect(1, 92783, '\P{^Is_Blk=	MRO}', "");
-    Expect(0, 92784, '\p{Is_Blk=	MRO}', "");
-    Expect(1, 92784, '\p{^Is_Blk=	MRO}', "");
-    Expect(1, 92784, '\P{Is_Blk=	MRO}', "");
-    Expect(0, 92784, '\P{^Is_Blk=	MRO}', "");
-    Error('\p{Block=/a/Multani}');
-    Error('\P{Block=/a/Multani}');
+    Expect(1, 92783, '\p{Is_Blk= Mro}', "");
+    Expect(0, 92783, '\p{^Is_Blk= Mro}', "");
+    Expect(0, 92783, '\P{Is_Blk= Mro}', "");
+    Expect(1, 92783, '\P{^Is_Blk= Mro}', "");
+    Expect(0, 92784, '\p{Is_Blk= Mro}', "");
+    Expect(1, 92784, '\p{^Is_Blk= Mro}', "");
+    Expect(1, 92784, '\P{Is_Blk= Mro}', "");
+    Expect(0, 92784, '\P{^Is_Blk= Mro}', "");
+    Error('\p{Block=:=	_multani}');
+    Error('\P{Block=:=	_multani}');
     Expect(1, 70319, '\p{Block=:\AMultani\z:}', "");;
     Expect(0, 70320, '\p{Block=:\AMultani\z:}', "");;
     Expect(1, 70319, '\p{Block=multani}', "");
@@ -20020,16 +20524,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70320, '\P{^Block=multani}', "");
     Expect(1, 70319, '\p{Block=:\Amultani\z:}', "");;
     Expect(0, 70320, '\p{Block=:\Amultani\z:}', "");;
-    Expect(1, 70319, '\p{Block=-Multani}', "");
-    Expect(0, 70319, '\p{^Block=-Multani}', "");
-    Expect(0, 70319, '\P{Block=-Multani}', "");
-    Expect(1, 70319, '\P{^Block=-Multani}', "");
-    Expect(0, 70320, '\p{Block=-Multani}', "");
-    Expect(1, 70320, '\p{^Block=-Multani}', "");
-    Expect(1, 70320, '\P{Block=-Multani}', "");
-    Expect(0, 70320, '\P{^Block=-Multani}', "");
-    Error('\p{Blk=	multani:=}');
-    Error('\P{Blk=	multani:=}');
+    Expect(1, 70319, '\p{Block=-	multani}', "");
+    Expect(0, 70319, '\p{^Block=-	multani}', "");
+    Expect(0, 70319, '\P{Block=-	multani}', "");
+    Expect(1, 70319, '\P{^Block=-	multani}', "");
+    Expect(0, 70320, '\p{Block=-	multani}', "");
+    Expect(1, 70320, '\p{^Block=-	multani}', "");
+    Expect(1, 70320, '\P{Block=-	multani}', "");
+    Expect(0, 70320, '\P{^Block=-	multani}', "");
+    Error('\p{Blk=/a/Multani}');
+    Error('\P{Blk=/a/Multani}');
     Expect(1, 70319, '\p{Blk=:\AMultani\z:}', "");;
     Expect(0, 70320, '\p{Blk=:\AMultani\z:}', "");;
     Expect(1, 70319, '\p{Blk=multani}', "");
@@ -20042,16 +20546,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70320, '\P{^Blk=multani}', "");
     Expect(1, 70319, '\p{Blk=:\Amultani\z:}', "");;
     Expect(0, 70320, '\p{Blk=:\Amultani\z:}', "");;
-    Expect(1, 70319, '\p{Blk: -	multani}', "");
-    Expect(0, 70319, '\p{^Blk: -	multani}', "");
-    Expect(0, 70319, '\P{Blk: -	multani}', "");
-    Expect(1, 70319, '\P{^Blk: -	multani}', "");
-    Expect(0, 70320, '\p{Blk: -	multani}', "");
-    Expect(1, 70320, '\p{^Blk: -	multani}', "");
-    Expect(1, 70320, '\P{Blk: -	multani}', "");
-    Expect(0, 70320, '\P{^Blk: -	multani}', "");
-    Error('\p{Is_Block=_:=multani}');
-    Error('\P{Is_Block=_:=multani}');
+    Expect(1, 70319, '\p{Blk=_	Multani}', "");
+    Expect(0, 70319, '\p{^Blk=_	Multani}', "");
+    Expect(0, 70319, '\P{Blk=_	Multani}', "");
+    Expect(1, 70319, '\P{^Blk=_	Multani}', "");
+    Expect(0, 70320, '\p{Blk=_	Multani}', "");
+    Expect(1, 70320, '\p{^Blk=_	Multani}', "");
+    Expect(1, 70320, '\P{Blk=_	Multani}', "");
+    Expect(0, 70320, '\P{^Blk=_	Multani}', "");
+    Error('\p{Is_Block=	:=Multani}');
+    Error('\P{Is_Block=	:=Multani}');
     Expect(1, 70319, '\p{Is_Block=multani}', "");
     Expect(0, 70319, '\p{^Is_Block=multani}', "");
     Expect(0, 70319, '\P{Is_Block=multani}', "");
@@ -20060,34 +20564,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70320, '\p{^Is_Block=multani}', "");
     Expect(1, 70320, '\P{Is_Block=multani}', "");
     Expect(0, 70320, '\P{^Is_Block=multani}', "");
-    Expect(1, 70319, '\p{Is_Block= -Multani}', "");
-    Expect(0, 70319, '\p{^Is_Block= -Multani}', "");
-    Expect(0, 70319, '\P{Is_Block= -Multani}', "");
-    Expect(1, 70319, '\P{^Is_Block= -Multani}', "");
-    Expect(0, 70320, '\p{Is_Block= -Multani}', "");
-    Expect(1, 70320, '\p{^Is_Block= -Multani}', "");
-    Expect(1, 70320, '\P{Is_Block= -Multani}', "");
-    Expect(0, 70320, '\P{^Is_Block= -Multani}', "");
-    Error('\p{Is_Blk=:=_multani}');
-    Error('\P{Is_Blk=:=_multani}');
-    Expect(1, 70319, '\p{Is_Blk=multani}', "");
-    Expect(0, 70319, '\p{^Is_Blk=multani}', "");
-    Expect(0, 70319, '\P{Is_Blk=multani}', "");
-    Expect(1, 70319, '\P{^Is_Blk=multani}', "");
-    Expect(0, 70320, '\p{Is_Blk=multani}', "");
-    Expect(1, 70320, '\p{^Is_Blk=multani}', "");
-    Expect(1, 70320, '\P{Is_Blk=multani}', "");
-    Expect(0, 70320, '\P{^Is_Blk=multani}', "");
-    Expect(1, 70319, '\p{Is_Blk=-MULTANI}', "");
-    Expect(0, 70319, '\p{^Is_Blk=-MULTANI}', "");
-    Expect(0, 70319, '\P{Is_Blk=-MULTANI}', "");
-    Expect(1, 70319, '\P{^Is_Blk=-MULTANI}', "");
-    Expect(0, 70320, '\p{Is_Blk=-MULTANI}', "");
-    Expect(1, 70320, '\p{^Is_Blk=-MULTANI}', "");
-    Expect(1, 70320, '\P{Is_Blk=-MULTANI}', "");
-    Expect(0, 70320, '\P{^Is_Blk=-MULTANI}', "");
-    Error('\p{Block=	Musical_SYMBOLS:=}');
-    Error('\P{Block=	Musical_SYMBOLS:=}');
+    Expect(1, 70319, '\p{Is_Block=		Multani}', "");
+    Expect(0, 70319, '\p{^Is_Block=		Multani}', "");
+    Expect(0, 70319, '\P{Is_Block=		Multani}', "");
+    Expect(1, 70319, '\P{^Is_Block=		Multani}', "");
+    Expect(0, 70320, '\p{Is_Block=		Multani}', "");
+    Expect(1, 70320, '\p{^Is_Block=		Multani}', "");
+    Expect(1, 70320, '\P{Is_Block=		Multani}', "");
+    Expect(0, 70320, '\P{^Is_Block=		Multani}', "");
+    Error('\p{Is_Blk=_:=MULTANI}');
+    Error('\P{Is_Blk=_:=MULTANI}');
+    Expect(1, 70319, '\p{Is_Blk:	multani}', "");
+    Expect(0, 70319, '\p{^Is_Blk:	multani}', "");
+    Expect(0, 70319, '\P{Is_Blk:	multani}', "");
+    Expect(1, 70319, '\P{^Is_Blk:	multani}', "");
+    Expect(0, 70320, '\p{Is_Blk:	multani}', "");
+    Expect(1, 70320, '\p{^Is_Blk:	multani}', "");
+    Expect(1, 70320, '\P{Is_Blk:	multani}', "");
+    Expect(0, 70320, '\P{^Is_Blk:	multani}', "");
+    Expect(1, 70319, '\p{Is_Blk:	_ MULTANI}', "");
+    Expect(0, 70319, '\p{^Is_Blk:	_ MULTANI}', "");
+    Expect(0, 70319, '\P{Is_Blk:	_ MULTANI}', "");
+    Expect(1, 70319, '\P{^Is_Blk:	_ MULTANI}', "");
+    Expect(0, 70320, '\p{Is_Blk:	_ MULTANI}', "");
+    Expect(1, 70320, '\p{^Is_Blk:	_ MULTANI}', "");
+    Expect(1, 70320, '\P{Is_Blk:	_ MULTANI}', "");
+    Expect(0, 70320, '\P{^Is_Blk:	_ MULTANI}', "");
+    Error('\p{Block=/a/ musical_Symbols}');
+    Error('\P{Block=/a/ musical_Symbols}');
     Expect(1, 119295, '\p{Block=:\AMusical_Symbols\z:}', "");;
     Expect(0, 119296, '\p{Block=:\AMusical_Symbols\z:}', "");;
     Expect(1, 119295, '\p{Block=musicalsymbols}', "");
@@ -20100,16 +20604,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119296, '\P{^Block=musicalsymbols}', "");
     Expect(1, 119295, '\p{Block=:\Amusicalsymbols\z:}', "");;
     Expect(0, 119296, '\p{Block=:\Amusicalsymbols\z:}', "");;
-    Expect(1, 119295, '\p{Block= -musical_Symbols}', "");
-    Expect(0, 119295, '\p{^Block= -musical_Symbols}', "");
-    Expect(0, 119295, '\P{Block= -musical_Symbols}', "");
-    Expect(1, 119295, '\P{^Block= -musical_Symbols}', "");
-    Expect(0, 119296, '\p{Block= -musical_Symbols}', "");
-    Expect(1, 119296, '\p{^Block= -musical_Symbols}', "");
-    Expect(1, 119296, '\P{Block= -musical_Symbols}', "");
-    Expect(0, 119296, '\P{^Block= -musical_Symbols}', "");
-    Error('\p{Blk: := Music}');
-    Error('\P{Blk: := Music}');
+    Expect(1, 119295, '\p{Block=-_Musical_SYMBOLS}', "");
+    Expect(0, 119295, '\p{^Block=-_Musical_SYMBOLS}', "");
+    Expect(0, 119295, '\P{Block=-_Musical_SYMBOLS}', "");
+    Expect(1, 119295, '\P{^Block=-_Musical_SYMBOLS}', "");
+    Expect(0, 119296, '\p{Block=-_Musical_SYMBOLS}', "");
+    Expect(1, 119296, '\p{^Block=-_Musical_SYMBOLS}', "");
+    Expect(1, 119296, '\P{Block=-_Musical_SYMBOLS}', "");
+    Expect(0, 119296, '\P{^Block=-_Musical_SYMBOLS}', "");
+    Error('\p{Blk=:=music}');
+    Error('\P{Blk=:=music}');
     Expect(1, 119295, '\p{Blk=:\AMusic\z:}', "");;
     Expect(0, 119296, '\p{Blk=:\AMusic\z:}', "");;
     Expect(1, 119295, '\p{Blk=music}', "");
@@ -20122,16 +20626,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119296, '\P{^Blk=music}', "");
     Expect(1, 119295, '\p{Blk=:\Amusic\z:}', "");;
     Expect(0, 119296, '\p{Blk=:\Amusic\z:}', "");;
-    Expect(1, 119295, '\p{Blk=	MUSIC}', "");
-    Expect(0, 119295, '\p{^Blk=	MUSIC}', "");
-    Expect(0, 119295, '\P{Blk=	MUSIC}', "");
-    Expect(1, 119295, '\P{^Blk=	MUSIC}', "");
-    Expect(0, 119296, '\p{Blk=	MUSIC}', "");
-    Expect(1, 119296, '\p{^Blk=	MUSIC}', "");
-    Expect(1, 119296, '\P{Blk=	MUSIC}', "");
-    Expect(0, 119296, '\P{^Blk=	MUSIC}', "");
-    Error('\p{Is_Block=/a/__Musical_SYMBOLS}');
-    Error('\P{Is_Block=/a/__Musical_SYMBOLS}');
+    Expect(1, 119295, '\p{Blk:    music}', "");
+    Expect(0, 119295, '\p{^Blk:    music}', "");
+    Expect(0, 119295, '\P{Blk:    music}', "");
+    Expect(1, 119295, '\P{^Blk:    music}', "");
+    Expect(0, 119296, '\p{Blk:    music}', "");
+    Expect(1, 119296, '\p{^Blk:    music}', "");
+    Expect(1, 119296, '\P{Blk:    music}', "");
+    Expect(0, 119296, '\P{^Blk:    music}', "");
+    Error('\p{Is_Block=/a/  Musical_Symbols}');
+    Error('\P{Is_Block=/a/  Musical_Symbols}');
     Expect(1, 119295, '\p{Is_Block=musicalsymbols}', "");
     Expect(0, 119295, '\p{^Is_Block=musicalsymbols}', "");
     Expect(0, 119295, '\P{Is_Block=musicalsymbols}', "");
@@ -20140,34 +20644,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119296, '\p{^Is_Block=musicalsymbols}', "");
     Expect(1, 119296, '\P{Is_Block=musicalsymbols}', "");
     Expect(0, 119296, '\P{^Is_Block=musicalsymbols}', "");
-    Expect(1, 119295, '\p{Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(0, 119295, '\p{^Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(0, 119295, '\P{Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(1, 119295, '\P{^Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(0, 119296, '\p{Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(1, 119296, '\p{^Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(1, 119296, '\P{Is_Block=__MUSICAL_SYMBOLS}', "");
-    Expect(0, 119296, '\P{^Is_Block=__MUSICAL_SYMBOLS}', "");
-    Error('\p{Is_Blk=	 MUSIC:=}');
-    Error('\P{Is_Blk=	 MUSIC:=}');
-    Expect(1, 119295, '\p{Is_Blk: music}', "");
-    Expect(0, 119295, '\p{^Is_Blk: music}', "");
-    Expect(0, 119295, '\P{Is_Blk: music}', "");
-    Expect(1, 119295, '\P{^Is_Blk: music}', "");
-    Expect(0, 119296, '\p{Is_Blk: music}', "");
-    Expect(1, 119296, '\p{^Is_Blk: music}', "");
-    Expect(1, 119296, '\P{Is_Blk: music}', "");
-    Expect(0, 119296, '\P{^Is_Blk: music}', "");
-    Expect(1, 119295, '\p{Is_Blk=  MUSIC}', "");
-    Expect(0, 119295, '\p{^Is_Blk=  MUSIC}', "");
-    Expect(0, 119295, '\P{Is_Blk=  MUSIC}', "");
-    Expect(1, 119295, '\P{^Is_Blk=  MUSIC}', "");
-    Expect(0, 119296, '\p{Is_Blk=  MUSIC}', "");
-    Expect(1, 119296, '\p{^Is_Blk=  MUSIC}', "");
-    Expect(1, 119296, '\P{Is_Blk=  MUSIC}', "");
-    Expect(0, 119296, '\P{^Is_Blk=  MUSIC}', "");
-    Error('\p{Block=_	Myanmar:=}');
-    Error('\P{Block=_	Myanmar:=}');
+    Expect(1, 119295, '\p{Is_Block=--musical_Symbols}', "");
+    Expect(0, 119295, '\p{^Is_Block=--musical_Symbols}', "");
+    Expect(0, 119295, '\P{Is_Block=--musical_Symbols}', "");
+    Expect(1, 119295, '\P{^Is_Block=--musical_Symbols}', "");
+    Expect(0, 119296, '\p{Is_Block=--musical_Symbols}', "");
+    Expect(1, 119296, '\p{^Is_Block=--musical_Symbols}', "");
+    Expect(1, 119296, '\P{Is_Block=--musical_Symbols}', "");
+    Expect(0, 119296, '\P{^Is_Block=--musical_Symbols}', "");
+    Error('\p{Is_Blk= _music:=}');
+    Error('\P{Is_Blk= _music:=}');
+    Expect(1, 119295, '\p{Is_Blk=music}', "");
+    Expect(0, 119295, '\p{^Is_Blk=music}', "");
+    Expect(0, 119295, '\P{Is_Blk=music}', "");
+    Expect(1, 119295, '\P{^Is_Blk=music}', "");
+    Expect(0, 119296, '\p{Is_Blk=music}', "");
+    Expect(1, 119296, '\p{^Is_Blk=music}', "");
+    Expect(1, 119296, '\P{Is_Blk=music}', "");
+    Expect(0, 119296, '\P{^Is_Blk=music}', "");
+    Expect(1, 119295, '\p{Is_Blk=_Music}', "");
+    Expect(0, 119295, '\p{^Is_Blk=_Music}', "");
+    Expect(0, 119295, '\P{Is_Blk=_Music}', "");
+    Expect(1, 119295, '\P{^Is_Blk=_Music}', "");
+    Expect(0, 119296, '\p{Is_Blk=_Music}', "");
+    Expect(1, 119296, '\p{^Is_Blk=_Music}', "");
+    Expect(1, 119296, '\P{Is_Blk=_Music}', "");
+    Expect(0, 119296, '\P{^Is_Blk=_Music}', "");
+    Error('\p{Block=_-myanmar:=}');
+    Error('\P{Block=_-myanmar:=}');
     Expect(1, 4255, '\p{Block=:\AMyanmar\z:}', "");;
     Expect(0, 4256, '\p{Block=:\AMyanmar\z:}', "");;
     Expect(1, 4255, '\p{Block=myanmar}', "");
@@ -20180,16 +20684,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4256, '\P{^Block=myanmar}', "");
     Expect(1, 4255, '\p{Block=:\Amyanmar\z:}', "");;
     Expect(0, 4256, '\p{Block=:\Amyanmar\z:}', "");;
-    Expect(1, 4255, '\p{Block=__myanmar}', "");
-    Expect(0, 4255, '\p{^Block=__myanmar}', "");
-    Expect(0, 4255, '\P{Block=__myanmar}', "");
-    Expect(1, 4255, '\P{^Block=__myanmar}', "");
-    Expect(0, 4256, '\p{Block=__myanmar}', "");
-    Expect(1, 4256, '\p{^Block=__myanmar}', "");
-    Expect(1, 4256, '\P{Block=__myanmar}', "");
-    Expect(0, 4256, '\P{^Block=__myanmar}', "");
-    Error('\p{Blk:	/a/-	MYANMAR}');
-    Error('\P{Blk:	/a/-	MYANMAR}');
+    Expect(1, 4255, '\p{Block=-Myanmar}', "");
+    Expect(0, 4255, '\p{^Block=-Myanmar}', "");
+    Expect(0, 4255, '\P{Block=-Myanmar}', "");
+    Expect(1, 4255, '\P{^Block=-Myanmar}', "");
+    Expect(0, 4256, '\p{Block=-Myanmar}', "");
+    Expect(1, 4256, '\p{^Block=-Myanmar}', "");
+    Expect(1, 4256, '\P{Block=-Myanmar}', "");
+    Expect(0, 4256, '\P{^Block=-Myanmar}', "");
+    Error('\p{Blk=/a/	-MYANMAR}');
+    Error('\P{Blk=/a/	-MYANMAR}');
     Expect(1, 4255, '\p{Blk=:\AMyanmar\z:}', "");;
     Expect(0, 4256, '\p{Blk=:\AMyanmar\z:}', "");;
     Expect(1, 4255, '\p{Blk=myanmar}', "");
@@ -20202,16 +20706,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4256, '\P{^Blk=myanmar}', "");
     Expect(1, 4255, '\p{Blk=:\Amyanmar\z:}', "");;
     Expect(0, 4256, '\p{Blk=:\Amyanmar\z:}', "");;
-    Expect(1, 4255, '\p{Blk=		MYANMAR}', "");
-    Expect(0, 4255, '\p{^Blk=		MYANMAR}', "");
-    Expect(0, 4255, '\P{Blk=		MYANMAR}', "");
-    Expect(1, 4255, '\P{^Blk=		MYANMAR}', "");
-    Expect(0, 4256, '\p{Blk=		MYANMAR}', "");
-    Expect(1, 4256, '\p{^Blk=		MYANMAR}', "");
-    Expect(1, 4256, '\P{Blk=		MYANMAR}', "");
-    Expect(0, 4256, '\P{^Blk=		MYANMAR}', "");
-    Error('\p{Is_Block=__Myanmar/a/}');
-    Error('\P{Is_Block=__Myanmar/a/}');
+    Expect(1, 4255, '\p{Blk=_Myanmar}', "");
+    Expect(0, 4255, '\p{^Blk=_Myanmar}', "");
+    Expect(0, 4255, '\P{Blk=_Myanmar}', "");
+    Expect(1, 4255, '\P{^Blk=_Myanmar}', "");
+    Expect(0, 4256, '\p{Blk=_Myanmar}', "");
+    Expect(1, 4256, '\p{^Blk=_Myanmar}', "");
+    Expect(1, 4256, '\P{Blk=_Myanmar}', "");
+    Expect(0, 4256, '\P{^Blk=_Myanmar}', "");
+    Error('\p{Is_Block=_/a/MYANMAR}');
+    Error('\P{Is_Block=_/a/MYANMAR}');
     Expect(1, 4255, '\p{Is_Block=myanmar}', "");
     Expect(0, 4255, '\p{^Is_Block=myanmar}', "");
     Expect(0, 4255, '\P{Is_Block=myanmar}', "");
@@ -20220,16 +20724,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4256, '\p{^Is_Block=myanmar}', "");
     Expect(1, 4256, '\P{Is_Block=myanmar}', "");
     Expect(0, 4256, '\P{^Is_Block=myanmar}', "");
-    Expect(1, 4255, '\p{Is_Block=--Myanmar}', "");
-    Expect(0, 4255, '\p{^Is_Block=--Myanmar}', "");
-    Expect(0, 4255, '\P{Is_Block=--Myanmar}', "");
-    Expect(1, 4255, '\P{^Is_Block=--Myanmar}', "");
-    Expect(0, 4256, '\p{Is_Block=--Myanmar}', "");
-    Expect(1, 4256, '\p{^Is_Block=--Myanmar}', "");
-    Expect(1, 4256, '\P{Is_Block=--Myanmar}', "");
-    Expect(0, 4256, '\P{^Is_Block=--Myanmar}', "");
-    Error('\p{Is_Blk=:=_ MYANMAR}');
-    Error('\P{Is_Blk=:=_ MYANMAR}');
+    Expect(1, 4255, '\p{Is_Block=__Myanmar}', "");
+    Expect(0, 4255, '\p{^Is_Block=__Myanmar}', "");
+    Expect(0, 4255, '\P{Is_Block=__Myanmar}', "");
+    Expect(1, 4255, '\P{^Is_Block=__Myanmar}', "");
+    Expect(0, 4256, '\p{Is_Block=__Myanmar}', "");
+    Expect(1, 4256, '\p{^Is_Block=__Myanmar}', "");
+    Expect(1, 4256, '\P{Is_Block=__Myanmar}', "");
+    Expect(0, 4256, '\P{^Is_Block=__Myanmar}', "");
+    Error('\p{Is_Blk=:=myanmar}');
+    Error('\P{Is_Blk=:=myanmar}');
     Expect(1, 4255, '\p{Is_Blk=myanmar}', "");
     Expect(0, 4255, '\p{^Is_Blk=myanmar}', "");
     Expect(0, 4255, '\P{Is_Blk=myanmar}', "");
@@ -20238,16 +20742,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4256, '\p{^Is_Blk=myanmar}', "");
     Expect(1, 4256, '\P{Is_Blk=myanmar}', "");
     Expect(0, 4256, '\P{^Is_Blk=myanmar}', "");
-    Expect(1, 4255, '\p{Is_Blk: -_MYANMAR}', "");
-    Expect(0, 4255, '\p{^Is_Blk: -_MYANMAR}', "");
-    Expect(0, 4255, '\P{Is_Blk: -_MYANMAR}', "");
-    Expect(1, 4255, '\P{^Is_Blk: -_MYANMAR}', "");
-    Expect(0, 4256, '\p{Is_Blk: -_MYANMAR}', "");
-    Expect(1, 4256, '\p{^Is_Blk: -_MYANMAR}', "");
-    Expect(1, 4256, '\P{Is_Blk: -_MYANMAR}', "");
-    Expect(0, 4256, '\P{^Is_Blk: -_MYANMAR}', "");
-    Error('\p{Block= /a/Myanmar_Extended_a}');
-    Error('\P{Block= /a/Myanmar_Extended_a}');
+    Expect(1, 4255, '\p{Is_Blk= -myanmar}', "");
+    Expect(0, 4255, '\p{^Is_Blk= -myanmar}', "");
+    Expect(0, 4255, '\P{Is_Blk= -myanmar}', "");
+    Expect(1, 4255, '\P{^Is_Blk= -myanmar}', "");
+    Expect(0, 4256, '\p{Is_Blk= -myanmar}', "");
+    Expect(1, 4256, '\p{^Is_Blk= -myanmar}', "");
+    Expect(1, 4256, '\P{Is_Blk= -myanmar}', "");
+    Expect(0, 4256, '\P{^Is_Blk= -myanmar}', "");
+    Error('\p{Block= /a/Myanmar_EXTENDED_A}');
+    Error('\P{Block= /a/Myanmar_EXTENDED_A}');
     Expect(1, 43647, '\p{Block=:\AMyanmar_Extended_A\z:}', "");;
     Expect(0, 43648, '\p{Block=:\AMyanmar_Extended_A\z:}', "");;
     Expect(1, 43647, '\p{Block=myanmarextendeda}', "");
@@ -20260,16 +20764,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43648, '\P{^Block=myanmarextendeda}', "");
     Expect(1, 43647, '\p{Block=:\Amyanmarextendeda\z:}', "");;
     Expect(0, 43648, '\p{Block=:\Amyanmarextendeda\z:}', "");;
-    Expect(1, 43647, '\p{Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(0, 43647, '\p{^Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(0, 43647, '\P{Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(1, 43647, '\P{^Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(0, 43648, '\p{Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(1, 43648, '\p{^Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(1, 43648, '\P{Block= 	Myanmar_EXTENDED_A}', "");
-    Expect(0, 43648, '\P{^Block= 	Myanmar_EXTENDED_A}', "");
-    Error('\p{Blk= MYANMAR_EXT_A:=}');
-    Error('\P{Blk= MYANMAR_EXT_A:=}');
+    Expect(1, 43647, '\p{Block=_-Myanmar_extended_A}', "");
+    Expect(0, 43647, '\p{^Block=_-Myanmar_extended_A}', "");
+    Expect(0, 43647, '\P{Block=_-Myanmar_extended_A}', "");
+    Expect(1, 43647, '\P{^Block=_-Myanmar_extended_A}', "");
+    Expect(0, 43648, '\p{Block=_-Myanmar_extended_A}', "");
+    Expect(1, 43648, '\p{^Block=_-Myanmar_extended_A}', "");
+    Expect(1, 43648, '\P{Block=_-Myanmar_extended_A}', "");
+    Expect(0, 43648, '\P{^Block=_-Myanmar_extended_A}', "");
+    Error('\p{Blk=	Myanmar_Ext_A/a/}');
+    Error('\P{Blk=	Myanmar_Ext_A/a/}');
     Expect(1, 43647, '\p{Blk=:\AMyanmar_Ext_A\z:}', "");;
     Expect(0, 43648, '\p{Blk=:\AMyanmar_Ext_A\z:}', "");;
     Expect(1, 43647, '\p{Blk=myanmarexta}', "");
@@ -20282,16 +20786,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43648, '\P{^Blk=myanmarexta}', "");
     Expect(1, 43647, '\p{Blk=:\Amyanmarexta\z:}', "");;
     Expect(0, 43648, '\p{Blk=:\Amyanmarexta\z:}', "");;
-    Expect(1, 43647, '\p{Blk=- Myanmar_Ext_A}', "");
-    Expect(0, 43647, '\p{^Blk=- Myanmar_Ext_A}', "");
-    Expect(0, 43647, '\P{Blk=- Myanmar_Ext_A}', "");
-    Expect(1, 43647, '\P{^Blk=- Myanmar_Ext_A}', "");
-    Expect(0, 43648, '\p{Blk=- Myanmar_Ext_A}', "");
-    Expect(1, 43648, '\p{^Blk=- Myanmar_Ext_A}', "");
-    Expect(1, 43648, '\P{Blk=- Myanmar_Ext_A}', "");
-    Expect(0, 43648, '\P{^Blk=- Myanmar_Ext_A}', "");
-    Error('\p{Is_Block=_ MYANMAR_Extended_a/a/}');
-    Error('\P{Is_Block=_ MYANMAR_Extended_a/a/}');
+    Expect(1, 43647, '\p{Blk=	_Myanmar_Ext_a}', "");
+    Expect(0, 43647, '\p{^Blk=	_Myanmar_Ext_a}', "");
+    Expect(0, 43647, '\P{Blk=	_Myanmar_Ext_a}', "");
+    Expect(1, 43647, '\P{^Blk=	_Myanmar_Ext_a}', "");
+    Expect(0, 43648, '\p{Blk=	_Myanmar_Ext_a}', "");
+    Expect(1, 43648, '\p{^Blk=	_Myanmar_Ext_a}', "");
+    Expect(1, 43648, '\P{Blk=	_Myanmar_Ext_a}', "");
+    Expect(0, 43648, '\P{^Blk=	_Myanmar_Ext_a}', "");
+    Error('\p{Is_Block= :=Myanmar_Extended_A}');
+    Error('\P{Is_Block= :=Myanmar_Extended_A}');
     Expect(1, 43647, '\p{Is_Block=myanmarextendeda}', "");
     Expect(0, 43647, '\p{^Is_Block=myanmarextendeda}', "");
     Expect(0, 43647, '\P{Is_Block=myanmarextendeda}', "");
@@ -20300,16 +20804,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43648, '\p{^Is_Block=myanmarextendeda}', "");
     Expect(1, 43648, '\P{Is_Block=myanmarextendeda}', "");
     Expect(0, 43648, '\P{^Is_Block=myanmarextendeda}', "");
-    Expect(1, 43647, '\p{Is_Block=	MYANMAR_extended_a}', "");
-    Expect(0, 43647, '\p{^Is_Block=	MYANMAR_extended_a}', "");
-    Expect(0, 43647, '\P{Is_Block=	MYANMAR_extended_a}', "");
-    Expect(1, 43647, '\P{^Is_Block=	MYANMAR_extended_a}', "");
-    Expect(0, 43648, '\p{Is_Block=	MYANMAR_extended_a}', "");
-    Expect(1, 43648, '\p{^Is_Block=	MYANMAR_extended_a}', "");
-    Expect(1, 43648, '\P{Is_Block=	MYANMAR_extended_a}', "");
-    Expect(0, 43648, '\P{^Is_Block=	MYANMAR_extended_a}', "");
-    Error('\p{Is_Blk=	/a/Myanmar_EXT_A}');
-    Error('\P{Is_Blk=	/a/Myanmar_EXT_A}');
+    Expect(1, 43647, '\p{Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(0, 43647, '\p{^Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(0, 43647, '\P{Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(1, 43647, '\P{^Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(0, 43648, '\p{Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(1, 43648, '\p{^Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(1, 43648, '\P{Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Expect(0, 43648, '\P{^Is_Block=	 Myanmar_EXTENDED_A}', "");
+    Error('\p{Is_Blk=/a/-_Myanmar_EXT_A}');
+    Error('\P{Is_Blk=/a/-_Myanmar_EXT_A}');
     Expect(1, 43647, '\p{Is_Blk=myanmarexta}', "");
     Expect(0, 43647, '\p{^Is_Blk=myanmarexta}', "");
     Expect(0, 43647, '\P{Is_Blk=myanmarexta}', "");
@@ -20318,16 +20822,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43648, '\p{^Is_Blk=myanmarexta}', "");
     Expect(1, 43648, '\P{Is_Blk=myanmarexta}', "");
     Expect(0, 43648, '\P{^Is_Blk=myanmarexta}', "");
-    Expect(1, 43647, '\p{Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(0, 43647, '\p{^Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(0, 43647, '\P{Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(1, 43647, '\P{^Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(0, 43648, '\p{Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(1, 43648, '\p{^Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(1, 43648, '\P{Is_Blk=_-Myanmar_EXT_a}', "");
-    Expect(0, 43648, '\P{^Is_Blk=_-Myanmar_EXT_a}', "");
-    Error('\p{Block=	-Myanmar_Extended_b/a/}');
-    Error('\P{Block=	-Myanmar_Extended_b/a/}');
+    Expect(1, 43647, '\p{Is_Blk=--Myanmar_ext_A}', "");
+    Expect(0, 43647, '\p{^Is_Blk=--Myanmar_ext_A}', "");
+    Expect(0, 43647, '\P{Is_Blk=--Myanmar_ext_A}', "");
+    Expect(1, 43647, '\P{^Is_Blk=--Myanmar_ext_A}', "");
+    Expect(0, 43648, '\p{Is_Blk=--Myanmar_ext_A}', "");
+    Expect(1, 43648, '\p{^Is_Blk=--Myanmar_ext_A}', "");
+    Expect(1, 43648, '\P{Is_Blk=--Myanmar_ext_A}', "");
+    Expect(0, 43648, '\P{^Is_Blk=--Myanmar_ext_A}', "");
+    Error('\p{Block=/a/ MYANMAR_extended_B}');
+    Error('\P{Block=/a/ MYANMAR_extended_B}');
     Expect(1, 43519, '\p{Block=:\AMyanmar_Extended_B\z:}', "");;
     Expect(0, 43520, '\p{Block=:\AMyanmar_Extended_B\z:}', "");;
     Expect(1, 43519, '\p{Block=myanmarextendedb}', "");
@@ -20340,38 +20844,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43520, '\P{^Block=myanmarextendedb}', "");
     Expect(1, 43519, '\p{Block=:\Amyanmarextendedb\z:}', "");;
     Expect(0, 43520, '\p{Block=:\Amyanmarextendedb\z:}', "");;
-    Expect(1, 43519, '\p{Block=	Myanmar_Extended_B}', "");
-    Expect(0, 43519, '\p{^Block=	Myanmar_Extended_B}', "");
-    Expect(0, 43519, '\P{Block=	Myanmar_Extended_B}', "");
-    Expect(1, 43519, '\P{^Block=	Myanmar_Extended_B}', "");
-    Expect(0, 43520, '\p{Block=	Myanmar_Extended_B}', "");
-    Expect(1, 43520, '\p{^Block=	Myanmar_Extended_B}', "");
-    Expect(1, 43520, '\P{Block=	Myanmar_Extended_B}', "");
-    Expect(0, 43520, '\P{^Block=	Myanmar_Extended_B}', "");
-    Error('\p{Blk=:=	_Myanmar_ext_B}');
-    Error('\P{Blk=:=	_Myanmar_ext_B}');
+    Expect(1, 43519, '\p{Block:-Myanmar_extended_b}', "");
+    Expect(0, 43519, '\p{^Block:-Myanmar_extended_b}', "");
+    Expect(0, 43519, '\P{Block:-Myanmar_extended_b}', "");
+    Expect(1, 43519, '\P{^Block:-Myanmar_extended_b}', "");
+    Expect(0, 43520, '\p{Block:-Myanmar_extended_b}', "");
+    Expect(1, 43520, '\p{^Block:-Myanmar_extended_b}', "");
+    Expect(1, 43520, '\P{Block:-Myanmar_extended_b}', "");
+    Expect(0, 43520, '\P{^Block:-Myanmar_extended_b}', "");
+    Error('\p{Blk::=-Myanmar_Ext_b}');
+    Error('\P{Blk::=-Myanmar_Ext_b}');
     Expect(1, 43519, '\p{Blk=:\AMyanmar_Ext_B\z:}', "");;
     Expect(0, 43520, '\p{Blk=:\AMyanmar_Ext_B\z:}', "");;
-    Expect(1, 43519, '\p{Blk:myanmarextb}', "");
-    Expect(0, 43519, '\p{^Blk:myanmarextb}', "");
-    Expect(0, 43519, '\P{Blk:myanmarextb}', "");
-    Expect(1, 43519, '\P{^Blk:myanmarextb}', "");
-    Expect(0, 43520, '\p{Blk:myanmarextb}', "");
-    Expect(1, 43520, '\p{^Blk:myanmarextb}', "");
-    Expect(1, 43520, '\P{Blk:myanmarextb}', "");
-    Expect(0, 43520, '\P{^Blk:myanmarextb}', "");
+    Expect(1, 43519, '\p{Blk=myanmarextb}', "");
+    Expect(0, 43519, '\p{^Blk=myanmarextb}', "");
+    Expect(0, 43519, '\P{Blk=myanmarextb}', "");
+    Expect(1, 43519, '\P{^Blk=myanmarextb}', "");
+    Expect(0, 43520, '\p{Blk=myanmarextb}', "");
+    Expect(1, 43520, '\p{^Blk=myanmarextb}', "");
+    Expect(1, 43520, '\P{Blk=myanmarextb}', "");
+    Expect(0, 43520, '\P{^Blk=myanmarextb}', "");
     Expect(1, 43519, '\p{Blk=:\Amyanmarextb\z:}', "");;
     Expect(0, 43520, '\p{Blk=:\Amyanmarextb\z:}', "");;
-    Expect(1, 43519, '\p{Blk=_MYANMAR_Ext_B}', "");
-    Expect(0, 43519, '\p{^Blk=_MYANMAR_Ext_B}', "");
-    Expect(0, 43519, '\P{Blk=_MYANMAR_Ext_B}', "");
-    Expect(1, 43519, '\P{^Blk=_MYANMAR_Ext_B}', "");
-    Expect(0, 43520, '\p{Blk=_MYANMAR_Ext_B}', "");
-    Expect(1, 43520, '\p{^Blk=_MYANMAR_Ext_B}', "");
-    Expect(1, 43520, '\P{Blk=_MYANMAR_Ext_B}', "");
-    Expect(0, 43520, '\P{^Blk=_MYANMAR_Ext_B}', "");
-    Error('\p{Is_Block=	/a/Myanmar_Extended_B}');
-    Error('\P{Is_Block=	/a/Myanmar_Extended_B}');
+    Expect(1, 43519, '\p{Blk=_Myanmar_ext_B}', "");
+    Expect(0, 43519, '\p{^Blk=_Myanmar_ext_B}', "");
+    Expect(0, 43519, '\P{Blk=_Myanmar_ext_B}', "");
+    Expect(1, 43519, '\P{^Blk=_Myanmar_ext_B}', "");
+    Expect(0, 43520, '\p{Blk=_Myanmar_ext_B}', "");
+    Expect(1, 43520, '\p{^Blk=_Myanmar_ext_B}', "");
+    Expect(1, 43520, '\P{Blk=_Myanmar_ext_B}', "");
+    Expect(0, 43520, '\P{^Blk=_Myanmar_ext_B}', "");
+    Error('\p{Is_Block=- MYANMAR_Extended_b:=}');
+    Error('\P{Is_Block=- MYANMAR_Extended_b:=}');
     Expect(1, 43519, '\p{Is_Block=myanmarextendedb}', "");
     Expect(0, 43519, '\p{^Is_Block=myanmarextendedb}', "");
     Expect(0, 43519, '\P{Is_Block=myanmarextendedb}', "");
@@ -20380,16 +20884,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43520, '\p{^Is_Block=myanmarextendedb}', "");
     Expect(1, 43520, '\P{Is_Block=myanmarextendedb}', "");
     Expect(0, 43520, '\P{^Is_Block=myanmarextendedb}', "");
-    Expect(1, 43519, '\p{Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(0, 43519, '\p{^Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(0, 43519, '\P{Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(1, 43519, '\P{^Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(0, 43520, '\p{Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(1, 43520, '\p{^Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(1, 43520, '\P{Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Expect(0, 43520, '\P{^Is_Block=	-Myanmar_EXTENDED_b}', "");
-    Error('\p{Is_Blk= /a/Myanmar_Ext_b}');
-    Error('\P{Is_Blk= /a/Myanmar_Ext_b}');
+    Expect(1, 43519, '\p{Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(0, 43519, '\p{^Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(0, 43519, '\P{Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(1, 43519, '\P{^Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(0, 43520, '\p{Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(1, 43520, '\p{^Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(1, 43520, '\P{Is_Block=-myanmar_EXTENDED_B}', "");
+    Expect(0, 43520, '\P{^Is_Block=-myanmar_EXTENDED_B}', "");
+    Error('\p{Is_Blk=:=	_Myanmar_Ext_B}');
+    Error('\P{Is_Blk=:=	_Myanmar_Ext_B}');
     Expect(1, 43519, '\p{Is_Blk=myanmarextb}', "");
     Expect(0, 43519, '\p{^Is_Blk=myanmarextb}', "");
     Expect(0, 43519, '\P{Is_Blk=myanmarextb}', "");
@@ -20398,16 +20902,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43520, '\p{^Is_Blk=myanmarextb}', "");
     Expect(1, 43520, '\P{Is_Blk=myanmarextb}', "");
     Expect(0, 43520, '\P{^Is_Blk=myanmarextb}', "");
-    Expect(1, 43519, '\p{Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(0, 43519, '\p{^Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(0, 43519, '\P{Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(1, 43519, '\P{^Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(0, 43520, '\p{Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(1, 43520, '\p{^Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(1, 43520, '\P{Is_Blk=	Myanmar_Ext_B}', "");
-    Expect(0, 43520, '\P{^Is_Blk=	Myanmar_Ext_B}', "");
-    Error('\p{Block=nabataean:=}');
-    Error('\P{Block=nabataean:=}');
+    Expect(1, 43519, '\p{Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(0, 43519, '\p{^Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(0, 43519, '\P{Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(1, 43519, '\P{^Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(0, 43520, '\p{Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(1, 43520, '\p{^Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(1, 43520, '\P{Is_Blk=		MYANMAR_Ext_B}', "");
+    Expect(0, 43520, '\P{^Is_Blk=		MYANMAR_Ext_B}', "");
+    Error('\p{Block:	-_nabataean/a/}');
+    Error('\P{Block:	-_nabataean/a/}');
     Expect(1, 67759, '\p{Block=:\ANabataean\z:}', "");;
     Expect(0, 67760, '\p{Block=:\ANabataean\z:}', "");;
     Expect(1, 67759, '\p{Block=nabataean}', "");
@@ -20420,16 +20924,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67760, '\P{^Block=nabataean}', "");
     Expect(1, 67759, '\p{Block=:\Anabataean\z:}', "");;
     Expect(0, 67760, '\p{Block=:\Anabataean\z:}', "");;
-    Expect(1, 67759, '\p{Block=_	Nabataean}', "");
-    Expect(0, 67759, '\p{^Block=_	Nabataean}', "");
-    Expect(0, 67759, '\P{Block=_	Nabataean}', "");
-    Expect(1, 67759, '\P{^Block=_	Nabataean}', "");
-    Expect(0, 67760, '\p{Block=_	Nabataean}', "");
-    Expect(1, 67760, '\p{^Block=_	Nabataean}', "");
-    Expect(1, 67760, '\P{Block=_	Nabataean}', "");
-    Expect(0, 67760, '\P{^Block=_	Nabataean}', "");
-    Error('\p{Blk=-Nabataean/a/}');
-    Error('\P{Blk=-Nabataean/a/}');
+    Expect(1, 67759, '\p{Block=	Nabataean}', "");
+    Expect(0, 67759, '\p{^Block=	Nabataean}', "");
+    Expect(0, 67759, '\P{Block=	Nabataean}', "");
+    Expect(1, 67759, '\P{^Block=	Nabataean}', "");
+    Expect(0, 67760, '\p{Block=	Nabataean}', "");
+    Expect(1, 67760, '\p{^Block=	Nabataean}', "");
+    Expect(1, 67760, '\P{Block=	Nabataean}', "");
+    Expect(0, 67760, '\P{^Block=	Nabataean}', "");
+    Error('\p{Blk=	/a/nabataean}');
+    Error('\P{Blk=	/a/nabataean}');
     Expect(1, 67759, '\p{Blk=:\ANabataean\z:}', "");;
     Expect(0, 67760, '\p{Blk=:\ANabataean\z:}', "");;
     Expect(1, 67759, '\p{Blk=nabataean}', "");
@@ -20442,16 +20946,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67760, '\P{^Blk=nabataean}', "");
     Expect(1, 67759, '\p{Blk=:\Anabataean\z:}', "");;
     Expect(0, 67760, '\p{Blk=:\Anabataean\z:}', "");;
-    Expect(1, 67759, '\p{Blk:	-nabataean}', "");
-    Expect(0, 67759, '\p{^Blk:	-nabataean}', "");
-    Expect(0, 67759, '\P{Blk:	-nabataean}', "");
-    Expect(1, 67759, '\P{^Blk:	-nabataean}', "");
-    Expect(0, 67760, '\p{Blk:	-nabataean}', "");
-    Expect(1, 67760, '\p{^Blk:	-nabataean}', "");
-    Expect(1, 67760, '\P{Blk:	-nabataean}', "");
-    Expect(0, 67760, '\P{^Blk:	-nabataean}', "");
-    Error('\p{Is_Block: :=-Nabataean}');
-    Error('\P{Is_Block: :=-Nabataean}');
+    Expect(1, 67759, '\p{Blk=		Nabataean}', "");
+    Expect(0, 67759, '\p{^Blk=		Nabataean}', "");
+    Expect(0, 67759, '\P{Blk=		Nabataean}', "");
+    Expect(1, 67759, '\P{^Blk=		Nabataean}', "");
+    Expect(0, 67760, '\p{Blk=		Nabataean}', "");
+    Expect(1, 67760, '\p{^Blk=		Nabataean}', "");
+    Expect(1, 67760, '\P{Blk=		Nabataean}', "");
+    Expect(0, 67760, '\P{^Blk=		Nabataean}', "");
+    Error('\p{Is_Block=-:=nabataean}');
+    Error('\P{Is_Block=-:=nabataean}');
     Expect(1, 67759, '\p{Is_Block=nabataean}', "");
     Expect(0, 67759, '\p{^Is_Block=nabataean}', "");
     Expect(0, 67759, '\P{Is_Block=nabataean}', "");
@@ -20460,16 +20964,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67760, '\p{^Is_Block=nabataean}', "");
     Expect(1, 67760, '\P{Is_Block=nabataean}', "");
     Expect(0, 67760, '\P{^Is_Block=nabataean}', "");
-    Expect(1, 67759, '\p{Is_Block=-	Nabataean}', "");
-    Expect(0, 67759, '\p{^Is_Block=-	Nabataean}', "");
-    Expect(0, 67759, '\P{Is_Block=-	Nabataean}', "");
-    Expect(1, 67759, '\P{^Is_Block=-	Nabataean}', "");
-    Expect(0, 67760, '\p{Is_Block=-	Nabataean}', "");
-    Expect(1, 67760, '\p{^Is_Block=-	Nabataean}', "");
-    Expect(1, 67760, '\P{Is_Block=-	Nabataean}', "");
-    Expect(0, 67760, '\P{^Is_Block=-	Nabataean}', "");
-    Error('\p{Is_Blk: :=NABATAEAN}');
-    Error('\P{Is_Blk: :=NABATAEAN}');
+    Expect(1, 67759, '\p{Is_Block=-Nabataean}', "");
+    Expect(0, 67759, '\p{^Is_Block=-Nabataean}', "");
+    Expect(0, 67759, '\P{Is_Block=-Nabataean}', "");
+    Expect(1, 67759, '\P{^Is_Block=-Nabataean}', "");
+    Expect(0, 67760, '\p{Is_Block=-Nabataean}', "");
+    Expect(1, 67760, '\p{^Is_Block=-Nabataean}', "");
+    Expect(1, 67760, '\P{Is_Block=-Nabataean}', "");
+    Expect(0, 67760, '\P{^Is_Block=-Nabataean}', "");
+    Error('\p{Is_Blk:	_Nabataean:=}');
+    Error('\P{Is_Blk:	_Nabataean:=}');
     Expect(1, 67759, '\p{Is_Blk=nabataean}', "");
     Expect(0, 67759, '\p{^Is_Blk=nabataean}', "");
     Expect(0, 67759, '\P{Is_Blk=nabataean}', "");
@@ -20478,16 +20982,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67760, '\p{^Is_Blk=nabataean}', "");
     Expect(1, 67760, '\P{Is_Blk=nabataean}', "");
     Expect(0, 67760, '\P{^Is_Blk=nabataean}', "");
-    Expect(1, 67759, '\p{Is_Blk=- nabataean}', "");
-    Expect(0, 67759, '\p{^Is_Blk=- nabataean}', "");
-    Expect(0, 67759, '\P{Is_Blk=- nabataean}', "");
-    Expect(1, 67759, '\P{^Is_Blk=- nabataean}', "");
-    Expect(0, 67760, '\p{Is_Blk=- nabataean}', "");
-    Expect(1, 67760, '\p{^Is_Blk=- nabataean}', "");
-    Expect(1, 67760, '\P{Is_Blk=- nabataean}', "");
-    Expect(0, 67760, '\P{^Is_Blk=- nabataean}', "");
-    Error('\p{Block=-/a/nandinagari}');
-    Error('\P{Block=-/a/nandinagari}');
+    Expect(1, 67759, '\p{Is_Blk=-Nabataean}', "");
+    Expect(0, 67759, '\p{^Is_Blk=-Nabataean}', "");
+    Expect(0, 67759, '\P{Is_Blk=-Nabataean}', "");
+    Expect(1, 67759, '\P{^Is_Blk=-Nabataean}', "");
+    Expect(0, 67760, '\p{Is_Blk=-Nabataean}', "");
+    Expect(1, 67760, '\p{^Is_Blk=-Nabataean}', "");
+    Expect(1, 67760, '\P{Is_Blk=-Nabataean}', "");
+    Expect(0, 67760, '\P{^Is_Blk=-Nabataean}', "");
+    Error('\p{Block:	/a/ NAG_Mundari}');
+    Error('\P{Block:	/a/ NAG_Mundari}');
+    Expect(1, 124159, '\p{Block=:\ANag_Mundari\z:}', "");;
+    Expect(0, 124160, '\p{Block=:\ANag_Mundari\z:}', "");;
+    Expect(1, 124159, '\p{Block=nagmundari}', "");
+    Expect(0, 124159, '\p{^Block=nagmundari}', "");
+    Expect(0, 124159, '\P{Block=nagmundari}', "");
+    Expect(1, 124159, '\P{^Block=nagmundari}', "");
+    Expect(0, 124160, '\p{Block=nagmundari}', "");
+    Expect(1, 124160, '\p{^Block=nagmundari}', "");
+    Expect(1, 124160, '\P{Block=nagmundari}', "");
+    Expect(0, 124160, '\P{^Block=nagmundari}', "");
+    Expect(1, 124159, '\p{Block=:\Anagmundari\z:}', "");;
+    Expect(0, 124160, '\p{Block=:\Anagmundari\z:}', "");;
+    Expect(1, 124159, '\p{Block= NAG_MUNDARI}', "");
+    Expect(0, 124159, '\p{^Block= NAG_MUNDARI}', "");
+    Expect(0, 124159, '\P{Block= NAG_MUNDARI}', "");
+    Expect(1, 124159, '\P{^Block= NAG_MUNDARI}', "");
+    Expect(0, 124160, '\p{Block= NAG_MUNDARI}', "");
+    Expect(1, 124160, '\p{^Block= NAG_MUNDARI}', "");
+    Expect(1, 124160, '\P{Block= NAG_MUNDARI}', "");
+    Expect(0, 124160, '\P{^Block= NAG_MUNDARI}', "");
+    Error('\p{Blk=_:=Nag_mundari}');
+    Error('\P{Blk=_:=Nag_mundari}');
+    Expect(1, 124159, '\p{Blk=:\ANag_Mundari\z:}', "");;
+    Expect(0, 124160, '\p{Blk=:\ANag_Mundari\z:}', "");;
+    Expect(1, 124159, '\p{Blk=nagmundari}', "");
+    Expect(0, 124159, '\p{^Blk=nagmundari}', "");
+    Expect(0, 124159, '\P{Blk=nagmundari}', "");
+    Expect(1, 124159, '\P{^Blk=nagmundari}', "");
+    Expect(0, 124160, '\p{Blk=nagmundari}', "");
+    Expect(1, 124160, '\p{^Blk=nagmundari}', "");
+    Expect(1, 124160, '\P{Blk=nagmundari}', "");
+    Expect(0, 124160, '\P{^Blk=nagmundari}', "");
+    Expect(1, 124159, '\p{Blk=:\Anagmundari\z:}', "");;
+    Expect(0, 124160, '\p{Blk=:\Anagmundari\z:}', "");;
+    Expect(1, 124159, '\p{Blk:	_nag_Mundari}', "");
+    Expect(0, 124159, '\p{^Blk:	_nag_Mundari}', "");
+    Expect(0, 124159, '\P{Blk:	_nag_Mundari}', "");
+    Expect(1, 124159, '\P{^Blk:	_nag_Mundari}', "");
+    Expect(0, 124160, '\p{Blk:	_nag_Mundari}', "");
+    Expect(1, 124160, '\p{^Blk:	_nag_Mundari}', "");
+    Expect(1, 124160, '\P{Blk:	_nag_Mundari}', "");
+    Expect(0, 124160, '\P{^Blk:	_nag_Mundari}', "");
+    Error('\p{Is_Block:- nag_mundari:=}');
+    Error('\P{Is_Block:- nag_mundari:=}');
+    Expect(1, 124159, '\p{Is_Block=nagmundari}', "");
+    Expect(0, 124159, '\p{^Is_Block=nagmundari}', "");
+    Expect(0, 124159, '\P{Is_Block=nagmundari}', "");
+    Expect(1, 124159, '\P{^Is_Block=nagmundari}', "");
+    Expect(0, 124160, '\p{Is_Block=nagmundari}', "");
+    Expect(1, 124160, '\p{^Is_Block=nagmundari}', "");
+    Expect(1, 124160, '\P{Is_Block=nagmundari}', "");
+    Expect(0, 124160, '\P{^Is_Block=nagmundari}', "");
+    Expect(1, 124159, '\p{Is_Block=--NAG_MUNDARI}', "");
+    Expect(0, 124159, '\p{^Is_Block=--NAG_MUNDARI}', "");
+    Expect(0, 124159, '\P{Is_Block=--NAG_MUNDARI}', "");
+    Expect(1, 124159, '\P{^Is_Block=--NAG_MUNDARI}', "");
+    Expect(0, 124160, '\p{Is_Block=--NAG_MUNDARI}', "");
+    Expect(1, 124160, '\p{^Is_Block=--NAG_MUNDARI}', "");
+    Expect(1, 124160, '\P{Is_Block=--NAG_MUNDARI}', "");
+    Expect(0, 124160, '\P{^Is_Block=--NAG_MUNDARI}', "");
+    Error('\p{Is_Blk=/a/	NAG_MUNDARI}');
+    Error('\P{Is_Blk=/a/	NAG_MUNDARI}');
+    Expect(1, 124159, '\p{Is_Blk:	nagmundari}', "");
+    Expect(0, 124159, '\p{^Is_Blk:	nagmundari}', "");
+    Expect(0, 124159, '\P{Is_Blk:	nagmundari}', "");
+    Expect(1, 124159, '\P{^Is_Blk:	nagmundari}', "");
+    Expect(0, 124160, '\p{Is_Blk:	nagmundari}', "");
+    Expect(1, 124160, '\p{^Is_Blk:	nagmundari}', "");
+    Expect(1, 124160, '\P{Is_Blk:	nagmundari}', "");
+    Expect(0, 124160, '\P{^Is_Blk:	nagmundari}', "");
+    Expect(1, 124159, '\p{Is_Blk=	Nag_Mundari}', "");
+    Expect(0, 124159, '\p{^Is_Blk=	Nag_Mundari}', "");
+    Expect(0, 124159, '\P{Is_Blk=	Nag_Mundari}', "");
+    Expect(1, 124159, '\P{^Is_Blk=	Nag_Mundari}', "");
+    Expect(0, 124160, '\p{Is_Blk=	Nag_Mundari}', "");
+    Expect(1, 124160, '\p{^Is_Blk=	Nag_Mundari}', "");
+    Expect(1, 124160, '\P{Is_Blk=	Nag_Mundari}', "");
+    Expect(0, 124160, '\P{^Is_Blk=	Nag_Mundari}', "");
+    Error('\p{Block=	nandinagari/a/}');
+    Error('\P{Block=	nandinagari/a/}');
     Expect(1, 72191, '\p{Block=:\ANandinagari\z:}', "");;
     Expect(0, 72192, '\p{Block=:\ANandinagari\z:}', "");;
     Expect(1, 72191, '\p{Block:nandinagari}', "");
@@ -20500,16 +21084,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72192, '\P{^Block:nandinagari}', "");
     Expect(1, 72191, '\p{Block=:\Anandinagari\z:}', "");;
     Expect(0, 72192, '\p{Block=:\Anandinagari\z:}', "");;
-    Expect(1, 72191, '\p{Block=	_NANDINAGARI}', "");
-    Expect(0, 72191, '\p{^Block=	_NANDINAGARI}', "");
-    Expect(0, 72191, '\P{Block=	_NANDINAGARI}', "");
-    Expect(1, 72191, '\P{^Block=	_NANDINAGARI}', "");
-    Expect(0, 72192, '\p{Block=	_NANDINAGARI}', "");
-    Expect(1, 72192, '\p{^Block=	_NANDINAGARI}', "");
-    Expect(1, 72192, '\P{Block=	_NANDINAGARI}', "");
-    Expect(0, 72192, '\P{^Block=	_NANDINAGARI}', "");
-    Error('\p{Blk=/a/ nandinagari}');
-    Error('\P{Blk=/a/ nandinagari}');
+    Expect(1, 72191, '\p{Block= _NANDINAGARI}', "");
+    Expect(0, 72191, '\p{^Block= _NANDINAGARI}', "");
+    Expect(0, 72191, '\P{Block= _NANDINAGARI}', "");
+    Expect(1, 72191, '\P{^Block= _NANDINAGARI}', "");
+    Expect(0, 72192, '\p{Block= _NANDINAGARI}', "");
+    Expect(1, 72192, '\p{^Block= _NANDINAGARI}', "");
+    Expect(1, 72192, '\P{Block= _NANDINAGARI}', "");
+    Expect(0, 72192, '\P{^Block= _NANDINAGARI}', "");
+    Error('\p{Blk= 	nandinagari:=}');
+    Error('\P{Blk= 	nandinagari:=}');
     Expect(1, 72191, '\p{Blk=:\ANandinagari\z:}', "");;
     Expect(0, 72192, '\p{Blk=:\ANandinagari\z:}', "");;
     Expect(1, 72191, '\p{Blk=nandinagari}', "");
@@ -20522,16 +21106,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72192, '\P{^Blk=nandinagari}', "");
     Expect(1, 72191, '\p{Blk=:\Anandinagari\z:}', "");;
     Expect(0, 72192, '\p{Blk=:\Anandinagari\z:}', "");;
-    Expect(1, 72191, '\p{Blk=_NANDINAGARI}', "");
-    Expect(0, 72191, '\p{^Blk=_NANDINAGARI}', "");
-    Expect(0, 72191, '\P{Blk=_NANDINAGARI}', "");
-    Expect(1, 72191, '\P{^Blk=_NANDINAGARI}', "");
-    Expect(0, 72192, '\p{Blk=_NANDINAGARI}', "");
-    Expect(1, 72192, '\p{^Blk=_NANDINAGARI}', "");
-    Expect(1, 72192, '\P{Blk=_NANDINAGARI}', "");
-    Expect(0, 72192, '\P{^Blk=_NANDINAGARI}', "");
-    Error('\p{Is_Block=/a/	NANDINAGARI}');
-    Error('\P{Is_Block=/a/	NANDINAGARI}');
+    Expect(1, 72191, '\p{Blk=- Nandinagari}', "");
+    Expect(0, 72191, '\p{^Blk=- Nandinagari}', "");
+    Expect(0, 72191, '\P{Blk=- Nandinagari}', "");
+    Expect(1, 72191, '\P{^Blk=- Nandinagari}', "");
+    Expect(0, 72192, '\p{Blk=- Nandinagari}', "");
+    Expect(1, 72192, '\p{^Blk=- Nandinagari}', "");
+    Expect(1, 72192, '\P{Blk=- Nandinagari}', "");
+    Expect(0, 72192, '\P{^Blk=- Nandinagari}', "");
+    Error('\p{Is_Block:   _/a/nandinagari}');
+    Error('\P{Is_Block:   _/a/nandinagari}');
     Expect(1, 72191, '\p{Is_Block=nandinagari}', "");
     Expect(0, 72191, '\p{^Is_Block=nandinagari}', "");
     Expect(0, 72191, '\P{Is_Block=nandinagari}', "");
@@ -20540,16 +21124,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72192, '\p{^Is_Block=nandinagari}', "");
     Expect(1, 72192, '\P{Is_Block=nandinagari}', "");
     Expect(0, 72192, '\P{^Is_Block=nandinagari}', "");
-    Expect(1, 72191, '\p{Is_Block:--NANDINAGARI}', "");
-    Expect(0, 72191, '\p{^Is_Block:--NANDINAGARI}', "");
-    Expect(0, 72191, '\P{Is_Block:--NANDINAGARI}', "");
-    Expect(1, 72191, '\P{^Is_Block:--NANDINAGARI}', "");
-    Expect(0, 72192, '\p{Is_Block:--NANDINAGARI}', "");
-    Expect(1, 72192, '\p{^Is_Block:--NANDINAGARI}', "");
-    Expect(1, 72192, '\P{Is_Block:--NANDINAGARI}', "");
-    Expect(0, 72192, '\P{^Is_Block:--NANDINAGARI}', "");
-    Error('\p{Is_Blk=	nandinagari/a/}');
-    Error('\P{Is_Blk=	nandinagari/a/}');
+    Expect(1, 72191, '\p{Is_Block=	_Nandinagari}', "");
+    Expect(0, 72191, '\p{^Is_Block=	_Nandinagari}', "");
+    Expect(0, 72191, '\P{Is_Block=	_Nandinagari}', "");
+    Expect(1, 72191, '\P{^Is_Block=	_Nandinagari}', "");
+    Expect(0, 72192, '\p{Is_Block=	_Nandinagari}', "");
+    Expect(1, 72192, '\p{^Is_Block=	_Nandinagari}', "");
+    Expect(1, 72192, '\P{Is_Block=	_Nandinagari}', "");
+    Expect(0, 72192, '\P{^Is_Block=	_Nandinagari}', "");
+    Error('\p{Is_Blk=_	Nandinagari:=}');
+    Error('\P{Is_Blk=_	Nandinagari:=}');
     Expect(1, 72191, '\p{Is_Blk=nandinagari}', "");
     Expect(0, 72191, '\p{^Is_Blk=nandinagari}', "");
     Expect(0, 72191, '\P{Is_Blk=nandinagari}', "");
@@ -20558,16 +21142,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72192, '\p{^Is_Blk=nandinagari}', "");
     Expect(1, 72192, '\P{Is_Blk=nandinagari}', "");
     Expect(0, 72192, '\P{^Is_Blk=nandinagari}', "");
-    Expect(1, 72191, '\p{Is_Blk= _nandinagari}', "");
-    Expect(0, 72191, '\p{^Is_Blk= _nandinagari}', "");
-    Expect(0, 72191, '\P{Is_Blk= _nandinagari}', "");
-    Expect(1, 72191, '\P{^Is_Blk= _nandinagari}', "");
-    Expect(0, 72192, '\p{Is_Blk= _nandinagari}', "");
-    Expect(1, 72192, '\p{^Is_Blk= _nandinagari}', "");
-    Expect(1, 72192, '\P{Is_Blk= _nandinagari}', "");
-    Expect(0, 72192, '\P{^Is_Blk= _nandinagari}', "");
-    Error('\p{Block=:=_No_Block}');
-    Error('\P{Block=:=_No_Block}');
+    Expect(1, 72191, '\p{Is_Blk=__Nandinagari}', "");
+    Expect(0, 72191, '\p{^Is_Blk=__Nandinagari}', "");
+    Expect(0, 72191, '\P{Is_Blk=__Nandinagari}', "");
+    Expect(1, 72191, '\P{^Is_Blk=__Nandinagari}', "");
+    Expect(0, 72192, '\p{Is_Blk=__Nandinagari}', "");
+    Expect(1, 72192, '\p{^Is_Blk=__Nandinagari}', "");
+    Expect(1, 72192, '\P{Is_Blk=__Nandinagari}', "");
+    Expect(0, 72192, '\P{^Is_Blk=__Nandinagari}', "");
+    Error('\p{Block=  NO_block:=}');
+    Error('\P{Block=  NO_block:=}');
     Expect(1, 918000, '\p{Block=:\ANo_Block\z:}', "");;
     Expect(0, 983040, '\p{Block=:\ANo_Block\z:}', "");;
     Expect(1, 918000, '\p{Block=noblock}', "");
@@ -20580,38 +21164,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 983040, '\P{^Block=noblock}', "");
     Expect(1, 918000, '\p{Block=:\Anoblock\z:}', "");;
     Expect(0, 983040, '\p{Block=:\Anoblock\z:}', "");;
-    Expect(1, 918000, '\p{Block=	No_block}', "");
-    Expect(0, 918000, '\p{^Block=	No_block}', "");
-    Expect(0, 918000, '\P{Block=	No_block}', "");
-    Expect(1, 918000, '\P{^Block=	No_block}', "");
-    Expect(0, 983040, '\p{Block=	No_block}', "");
-    Expect(1, 983040, '\p{^Block=	No_block}', "");
-    Expect(1, 983040, '\P{Block=	No_block}', "");
-    Expect(0, 983040, '\P{^Block=	No_block}', "");
-    Error('\p{Blk=__NB:=}');
-    Error('\P{Blk=__NB:=}');
+    Expect(1, 918000, '\p{Block:	__No_Block}', "");
+    Expect(0, 918000, '\p{^Block:	__No_Block}', "");
+    Expect(0, 918000, '\P{Block:	__No_Block}', "");
+    Expect(1, 918000, '\P{^Block:	__No_Block}', "");
+    Expect(0, 983040, '\p{Block:	__No_Block}', "");
+    Expect(1, 983040, '\p{^Block:	__No_Block}', "");
+    Expect(1, 983040, '\P{Block:	__No_Block}', "");
+    Expect(0, 983040, '\P{^Block:	__No_Block}', "");
+    Error('\p{Blk=/a/--NB}');
+    Error('\P{Blk=/a/--NB}');
     Expect(1, 918000, '\p{Blk=:\ANB\z:}', "");;
     Expect(0, 983040, '\p{Blk=:\ANB\z:}', "");;
-    Expect(1, 918000, '\p{Blk:   nb}', "");
-    Expect(0, 918000, '\p{^Blk:   nb}', "");
-    Expect(0, 918000, '\P{Blk:   nb}', "");
-    Expect(1, 918000, '\P{^Blk:   nb}', "");
-    Expect(0, 983040, '\p{Blk:   nb}', "");
-    Expect(1, 983040, '\p{^Blk:   nb}', "");
-    Expect(1, 983040, '\P{Blk:   nb}', "");
-    Expect(0, 983040, '\P{^Blk:   nb}', "");
+    Expect(1, 918000, '\p{Blk=nb}', "");
+    Expect(0, 918000, '\p{^Blk=nb}', "");
+    Expect(0, 918000, '\P{Blk=nb}', "");
+    Expect(1, 918000, '\P{^Blk=nb}', "");
+    Expect(0, 983040, '\p{Blk=nb}', "");
+    Expect(1, 983040, '\p{^Blk=nb}', "");
+    Expect(1, 983040, '\P{Blk=nb}', "");
+    Expect(0, 983040, '\P{^Blk=nb}', "");
     Expect(1, 918000, '\p{Blk=:\Anb\z:}', "");;
     Expect(0, 983040, '\p{Blk=:\Anb\z:}', "");;
-    Expect(1, 918000, '\p{Blk=_NB}', "");
-    Expect(0, 918000, '\p{^Blk=_NB}', "");
-    Expect(0, 918000, '\P{Blk=_NB}', "");
-    Expect(1, 918000, '\P{^Blk=_NB}', "");
-    Expect(0, 983040, '\p{Blk=_NB}', "");
-    Expect(1, 983040, '\p{^Blk=_NB}', "");
-    Expect(1, 983040, '\P{Blk=_NB}', "");
-    Expect(0, 983040, '\P{^Blk=_NB}', "");
-    Error('\p{Is_Block=-No_Block/a/}');
-    Error('\P{Is_Block=-No_Block/a/}');
+    Expect(1, 918000, '\p{Blk=_	NB}', "");
+    Expect(0, 918000, '\p{^Blk=_	NB}', "");
+    Expect(0, 918000, '\P{Blk=_	NB}', "");
+    Expect(1, 918000, '\P{^Blk=_	NB}', "");
+    Expect(0, 983040, '\p{Blk=_	NB}', "");
+    Expect(1, 983040, '\p{^Blk=_	NB}', "");
+    Expect(1, 983040, '\P{Blk=_	NB}', "");
+    Expect(0, 983040, '\P{^Blk=_	NB}', "");
+    Error('\p{Is_Block=/a/_-no_Block}');
+    Error('\P{Is_Block=/a/_-no_Block}');
     Expect(1, 918000, '\p{Is_Block=noblock}', "");
     Expect(0, 918000, '\p{^Is_Block=noblock}', "");
     Expect(0, 918000, '\P{Is_Block=noblock}', "");
@@ -20620,16 +21204,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 983040, '\p{^Is_Block=noblock}', "");
     Expect(1, 983040, '\P{Is_Block=noblock}', "");
     Expect(0, 983040, '\P{^Is_Block=noblock}', "");
-    Expect(1, 918000, '\p{Is_Block=-No_Block}', "");
-    Expect(0, 918000, '\p{^Is_Block=-No_Block}', "");
-    Expect(0, 918000, '\P{Is_Block=-No_Block}', "");
-    Expect(1, 918000, '\P{^Is_Block=-No_Block}', "");
-    Expect(0, 983040, '\p{Is_Block=-No_Block}', "");
-    Expect(1, 983040, '\p{^Is_Block=-No_Block}', "");
-    Expect(1, 983040, '\P{Is_Block=-No_Block}', "");
-    Expect(0, 983040, '\P{^Is_Block=-No_Block}', "");
-    Error('\p{Is_Blk=	NB/a/}');
-    Error('\P{Is_Blk=	NB/a/}');
+    Expect(1, 918000, '\p{Is_Block:   _	No_Block}', "");
+    Expect(0, 918000, '\p{^Is_Block:   _	No_Block}', "");
+    Expect(0, 918000, '\P{Is_Block:   _	No_Block}', "");
+    Expect(1, 918000, '\P{^Is_Block:   _	No_Block}', "");
+    Expect(0, 983040, '\p{Is_Block:   _	No_Block}', "");
+    Expect(1, 983040, '\p{^Is_Block:   _	No_Block}', "");
+    Expect(1, 983040, '\P{Is_Block:   _	No_Block}', "");
+    Expect(0, 983040, '\P{^Is_Block:   _	No_Block}', "");
+    Error('\p{Is_Blk=:=_NB}');
+    Error('\P{Is_Blk=:=_NB}');
     Expect(1, 918000, '\p{Is_Blk=nb}', "");
     Expect(0, 918000, '\p{^Is_Blk=nb}', "");
     Expect(0, 918000, '\P{Is_Blk=nb}', "");
@@ -20638,16 +21222,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 983040, '\p{^Is_Blk=nb}', "");
     Expect(1, 983040, '\P{Is_Blk=nb}', "");
     Expect(0, 983040, '\P{^Is_Blk=nb}', "");
-    Expect(1, 918000, '\p{Is_Blk=	 NB}', "");
-    Expect(0, 918000, '\p{^Is_Blk=	 NB}', "");
-    Expect(0, 918000, '\P{Is_Blk=	 NB}', "");
-    Expect(1, 918000, '\P{^Is_Blk=	 NB}', "");
-    Expect(0, 983040, '\p{Is_Blk=	 NB}', "");
-    Expect(1, 983040, '\p{^Is_Blk=	 NB}', "");
-    Expect(1, 983040, '\P{Is_Blk=	 NB}', "");
-    Expect(0, 983040, '\P{^Is_Blk=	 NB}', "");
-    Error('\p{Block= -New_tai_LUE/a/}');
-    Error('\P{Block= -New_tai_LUE/a/}');
+    Expect(1, 918000, '\p{Is_Blk=	nb}', "");
+    Expect(0, 918000, '\p{^Is_Blk=	nb}', "");
+    Expect(0, 918000, '\P{Is_Blk=	nb}', "");
+    Expect(1, 918000, '\P{^Is_Blk=	nb}', "");
+    Expect(0, 983040, '\p{Is_Blk=	nb}', "");
+    Expect(1, 983040, '\p{^Is_Blk=	nb}', "");
+    Expect(1, 983040, '\P{Is_Blk=	nb}', "");
+    Expect(0, 983040, '\P{^Is_Blk=	nb}', "");
+    Error('\p{Block=	New_Tai_Lue:=}');
+    Error('\P{Block=	New_Tai_Lue:=}');
     Expect(1, 6623, '\p{Block=:\ANew_Tai_Lue\z:}', "");;
     Expect(0, 6624, '\p{Block=:\ANew_Tai_Lue\z:}', "");;
     Expect(1, 6623, '\p{Block=newtailue}', "");
@@ -20660,16 +21244,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6624, '\P{^Block=newtailue}', "");
     Expect(1, 6623, '\p{Block=:\Anewtailue\z:}', "");;
     Expect(0, 6624, '\p{Block=:\Anewtailue\z:}', "");;
-    Expect(1, 6623, '\p{Block=-	New_TAI_Lue}', "");
-    Expect(0, 6623, '\p{^Block=-	New_TAI_Lue}', "");
-    Expect(0, 6623, '\P{Block=-	New_TAI_Lue}', "");
-    Expect(1, 6623, '\P{^Block=-	New_TAI_Lue}', "");
-    Expect(0, 6624, '\p{Block=-	New_TAI_Lue}', "");
-    Expect(1, 6624, '\p{^Block=-	New_TAI_Lue}', "");
-    Expect(1, 6624, '\P{Block=-	New_TAI_Lue}', "");
-    Expect(0, 6624, '\P{^Block=-	New_TAI_Lue}', "");
-    Error('\p{Blk=/a/NEW_tai_lue}');
-    Error('\P{Blk=/a/NEW_tai_lue}');
+    Expect(1, 6623, '\p{Block= _New_tai_LUE}', "");
+    Expect(0, 6623, '\p{^Block= _New_tai_LUE}', "");
+    Expect(0, 6623, '\P{Block= _New_tai_LUE}', "");
+    Expect(1, 6623, '\P{^Block= _New_tai_LUE}', "");
+    Expect(0, 6624, '\p{Block= _New_tai_LUE}', "");
+    Expect(1, 6624, '\p{^Block= _New_tai_LUE}', "");
+    Expect(1, 6624, '\P{Block= _New_tai_LUE}', "");
+    Expect(0, 6624, '\P{^Block= _New_tai_LUE}', "");
+    Error('\p{Blk=-new_tai_lue/a/}');
+    Error('\P{Blk=-new_tai_lue/a/}');
     Expect(1, 6623, '\p{Blk=:\ANew_Tai_Lue\z:}', "");;
     Expect(0, 6624, '\p{Blk=:\ANew_Tai_Lue\z:}', "");;
     Expect(1, 6623, '\p{Blk=newtailue}', "");
@@ -20682,16 +21266,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6624, '\P{^Blk=newtailue}', "");
     Expect(1, 6623, '\p{Blk=:\Anewtailue\z:}', "");;
     Expect(0, 6624, '\p{Blk=:\Anewtailue\z:}', "");;
-    Expect(1, 6623, '\p{Blk= New_TAI_lue}', "");
-    Expect(0, 6623, '\p{^Blk= New_TAI_lue}', "");
-    Expect(0, 6623, '\P{Blk= New_TAI_lue}', "");
-    Expect(1, 6623, '\P{^Blk= New_TAI_lue}', "");
-    Expect(0, 6624, '\p{Blk= New_TAI_lue}', "");
-    Expect(1, 6624, '\p{^Blk= New_TAI_lue}', "");
-    Expect(1, 6624, '\P{Blk= New_TAI_lue}', "");
-    Expect(0, 6624, '\P{^Blk= New_TAI_lue}', "");
-    Error('\p{Is_Block=:=New_Tai_Lue}');
-    Error('\P{Is_Block=:=New_Tai_Lue}');
+    Expect(1, 6623, '\p{Blk=_-new_tai_Lue}', "");
+    Expect(0, 6623, '\p{^Blk=_-new_tai_Lue}', "");
+    Expect(0, 6623, '\P{Blk=_-new_tai_Lue}', "");
+    Expect(1, 6623, '\P{^Blk=_-new_tai_Lue}', "");
+    Expect(0, 6624, '\p{Blk=_-new_tai_Lue}', "");
+    Expect(1, 6624, '\p{^Blk=_-new_tai_Lue}', "");
+    Expect(1, 6624, '\P{Blk=_-new_tai_Lue}', "");
+    Expect(0, 6624, '\P{^Blk=_-new_tai_Lue}', "");
+    Error('\p{Is_Block=-:=new_tai_Lue}');
+    Error('\P{Is_Block=-:=new_tai_Lue}');
     Expect(1, 6623, '\p{Is_Block=newtailue}', "");
     Expect(0, 6623, '\p{^Is_Block=newtailue}', "");
     Expect(0, 6623, '\P{Is_Block=newtailue}', "");
@@ -20700,34 +21284,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6624, '\p{^Is_Block=newtailue}', "");
     Expect(1, 6624, '\P{Is_Block=newtailue}', "");
     Expect(0, 6624, '\P{^Is_Block=newtailue}', "");
-    Expect(1, 6623, '\p{Is_Block=_	new_tai_LUE}', "");
-    Expect(0, 6623, '\p{^Is_Block=_	new_tai_LUE}', "");
-    Expect(0, 6623, '\P{Is_Block=_	new_tai_LUE}', "");
-    Expect(1, 6623, '\P{^Is_Block=_	new_tai_LUE}', "");
-    Expect(0, 6624, '\p{Is_Block=_	new_tai_LUE}', "");
-    Expect(1, 6624, '\p{^Is_Block=_	new_tai_LUE}', "");
-    Expect(1, 6624, '\P{Is_Block=_	new_tai_LUE}', "");
-    Expect(0, 6624, '\P{^Is_Block=_	new_tai_LUE}', "");
-    Error('\p{Is_Blk=-:=New_tai_lue}');
-    Error('\P{Is_Blk=-:=New_tai_lue}');
-    Expect(1, 6623, '\p{Is_Blk=newtailue}', "");
-    Expect(0, 6623, '\p{^Is_Blk=newtailue}', "");
-    Expect(0, 6623, '\P{Is_Blk=newtailue}', "");
-    Expect(1, 6623, '\P{^Is_Blk=newtailue}', "");
-    Expect(0, 6624, '\p{Is_Blk=newtailue}', "");
-    Expect(1, 6624, '\p{^Is_Blk=newtailue}', "");
-    Expect(1, 6624, '\P{Is_Blk=newtailue}', "");
-    Expect(0, 6624, '\P{^Is_Blk=newtailue}', "");
-    Expect(1, 6623, '\p{Is_Blk=-new_Tai_Lue}', "");
-    Expect(0, 6623, '\p{^Is_Blk=-new_Tai_Lue}', "");
-    Expect(0, 6623, '\P{Is_Blk=-new_Tai_Lue}', "");
-    Expect(1, 6623, '\P{^Is_Blk=-new_Tai_Lue}', "");
-    Expect(0, 6624, '\p{Is_Blk=-new_Tai_Lue}', "");
-    Expect(1, 6624, '\p{^Is_Blk=-new_Tai_Lue}', "");
-    Expect(1, 6624, '\P{Is_Blk=-new_Tai_Lue}', "");
-    Expect(0, 6624, '\P{^Is_Blk=-new_Tai_Lue}', "");
-    Error('\p{Block=:=Newa}');
-    Error('\P{Block=:=Newa}');
+    Expect(1, 6623, '\p{Is_Block: 	New_Tai_LUE}', "");
+    Expect(0, 6623, '\p{^Is_Block: 	New_Tai_LUE}', "");
+    Expect(0, 6623, '\P{Is_Block: 	New_Tai_LUE}', "");
+    Expect(1, 6623, '\P{^Is_Block: 	New_Tai_LUE}', "");
+    Expect(0, 6624, '\p{Is_Block: 	New_Tai_LUE}', "");
+    Expect(1, 6624, '\p{^Is_Block: 	New_Tai_LUE}', "");
+    Expect(1, 6624, '\P{Is_Block: 	New_Tai_LUE}', "");
+    Expect(0, 6624, '\P{^Is_Block: 	New_Tai_LUE}', "");
+    Error('\p{Is_Blk=/a/_New_TAI_LUE}');
+    Error('\P{Is_Blk=/a/_New_TAI_LUE}');
+    Expect(1, 6623, '\p{Is_Blk: newtailue}', "");
+    Expect(0, 6623, '\p{^Is_Blk: newtailue}', "");
+    Expect(0, 6623, '\P{Is_Blk: newtailue}', "");
+    Expect(1, 6623, '\P{^Is_Blk: newtailue}', "");
+    Expect(0, 6624, '\p{Is_Blk: newtailue}', "");
+    Expect(1, 6624, '\p{^Is_Blk: newtailue}', "");
+    Expect(1, 6624, '\P{Is_Blk: newtailue}', "");
+    Expect(0, 6624, '\P{^Is_Blk: newtailue}', "");
+    Expect(1, 6623, '\p{Is_Blk= new_Tai_LUE}', "");
+    Expect(0, 6623, '\p{^Is_Blk= new_Tai_LUE}', "");
+    Expect(0, 6623, '\P{Is_Blk= new_Tai_LUE}', "");
+    Expect(1, 6623, '\P{^Is_Blk= new_Tai_LUE}', "");
+    Expect(0, 6624, '\p{Is_Blk= new_Tai_LUE}', "");
+    Expect(1, 6624, '\p{^Is_Blk= new_Tai_LUE}', "");
+    Expect(1, 6624, '\P{Is_Blk= new_Tai_LUE}', "");
+    Expect(0, 6624, '\P{^Is_Blk= new_Tai_LUE}', "");
+    Error('\p{Block:   :=  NEWA}');
+    Error('\P{Block:   :=  NEWA}');
     Expect(1, 70783, '\p{Block=:\ANewa\z:}', "");;
     Expect(0, 70784, '\p{Block=:\ANewa\z:}', "");;
     Expect(1, 70783, '\p{Block=newa}', "");
@@ -20740,38 +21324,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70784, '\P{^Block=newa}', "");
     Expect(1, 70783, '\p{Block=:\Anewa\z:}', "");;
     Expect(0, 70784, '\p{Block=:\Anewa\z:}', "");;
-    Expect(1, 70783, '\p{Block:	NEWA}', "");
-    Expect(0, 70783, '\p{^Block:	NEWA}', "");
-    Expect(0, 70783, '\P{Block:	NEWA}', "");
-    Expect(1, 70783, '\P{^Block:	NEWA}', "");
-    Expect(0, 70784, '\p{Block:	NEWA}', "");
-    Expect(1, 70784, '\p{^Block:	NEWA}', "");
-    Expect(1, 70784, '\P{Block:	NEWA}', "");
-    Expect(0, 70784, '\P{^Block:	NEWA}', "");
-    Error('\p{Blk:/a/ 	NEWA}');
-    Error('\P{Blk:/a/ 	NEWA}');
+    Error('\p{Blk=_NEWA:=}');
+    Error('\P{Blk=_NEWA:=}');
     Expect(1, 70783, '\p{Blk=:\ANewa\z:}', "");;
     Expect(0, 70784, '\p{Blk=:\ANewa\z:}', "");;
-    Expect(1, 70783, '\p{Blk: newa}', "");
-    Expect(0, 70783, '\p{^Blk: newa}', "");
-    Expect(0, 70783, '\P{Blk: newa}', "");
-    Expect(1, 70783, '\P{^Blk: newa}', "");
-    Expect(0, 70784, '\p{Blk: newa}', "");
-    Expect(1, 70784, '\p{^Blk: newa}', "");
-    Expect(1, 70784, '\P{Blk: newa}', "");
-    Expect(0, 70784, '\P{^Blk: newa}', "");
+    Expect(1, 70783, '\p{Blk=newa}', "");
+    Expect(0, 70783, '\p{^Blk=newa}', "");
+    Expect(0, 70783, '\P{Blk=newa}', "");
+    Expect(1, 70783, '\P{^Blk=newa}', "");
+    Expect(0, 70784, '\p{Blk=newa}', "");
+    Expect(1, 70784, '\p{^Blk=newa}', "");
+    Expect(1, 70784, '\P{Blk=newa}', "");
+    Expect(0, 70784, '\P{^Blk=newa}', "");
     Expect(1, 70783, '\p{Blk=:\Anewa\z:}', "");;
     Expect(0, 70784, '\p{Blk=:\Anewa\z:}', "");;
-    Expect(1, 70783, '\p{Blk=_Newa}', "");
-    Expect(0, 70783, '\p{^Blk=_Newa}', "");
-    Expect(0, 70783, '\P{Blk=_Newa}', "");
-    Expect(1, 70783, '\P{^Blk=_Newa}', "");
-    Expect(0, 70784, '\p{Blk=_Newa}', "");
-    Expect(1, 70784, '\p{^Blk=_Newa}', "");
-    Expect(1, 70784, '\P{Blk=_Newa}', "");
-    Expect(0, 70784, '\P{^Blk=_Newa}', "");
-    Error('\p{Is_Block=:=--Newa}');
-    Error('\P{Is_Block=:=--Newa}');
+    Expect(1, 70783, '\p{Blk=_	Newa}', "");
+    Expect(0, 70783, '\p{^Blk=_	Newa}', "");
+    Expect(0, 70783, '\P{Blk=_	Newa}', "");
+    Expect(1, 70783, '\P{^Blk=_	Newa}', "");
+    Expect(0, 70784, '\p{Blk=_	Newa}', "");
+    Expect(1, 70784, '\p{^Blk=_	Newa}', "");
+    Expect(1, 70784, '\P{Blk=_	Newa}', "");
+    Expect(0, 70784, '\P{^Blk=_	Newa}', "");
+    Error('\p{Is_Block=/a/	Newa}');
+    Error('\P{Is_Block=/a/	Newa}');
     Expect(1, 70783, '\p{Is_Block=newa}', "");
     Expect(0, 70783, '\p{^Is_Block=newa}', "");
     Expect(0, 70783, '\P{Is_Block=newa}', "");
@@ -20780,16 +21356,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70784, '\p{^Is_Block=newa}', "");
     Expect(1, 70784, '\P{Is_Block=newa}', "");
     Expect(0, 70784, '\P{^Is_Block=newa}', "");
-    Expect(1, 70783, '\p{Is_Block:	_Newa}', "");
-    Expect(0, 70783, '\p{^Is_Block:	_Newa}', "");
-    Expect(0, 70783, '\P{Is_Block:	_Newa}', "");
-    Expect(1, 70783, '\P{^Is_Block:	_Newa}', "");
-    Expect(0, 70784, '\p{Is_Block:	_Newa}', "");
-    Expect(1, 70784, '\p{^Is_Block:	_Newa}', "");
-    Expect(1, 70784, '\P{Is_Block:	_Newa}', "");
-    Expect(0, 70784, '\P{^Is_Block:	_Newa}', "");
-    Error('\p{Is_Blk=_ Newa/a/}');
-    Error('\P{Is_Blk=_ Newa/a/}');
+    Error('\p{Is_Blk= Newa/a/}');
+    Error('\P{Is_Blk= Newa/a/}');
     Expect(1, 70783, '\p{Is_Blk=newa}', "");
     Expect(0, 70783, '\p{^Is_Blk=newa}', "");
     Expect(0, 70783, '\P{Is_Blk=newa}', "");
@@ -20798,38 +21366,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70784, '\p{^Is_Blk=newa}', "");
     Expect(1, 70784, '\P{Is_Blk=newa}', "");
     Expect(0, 70784, '\P{^Is_Blk=newa}', "");
-    Expect(1, 70783, '\p{Is_Blk=-	NEWA}', "");
-    Expect(0, 70783, '\p{^Is_Blk=-	NEWA}', "");
-    Expect(0, 70783, '\P{Is_Blk=-	NEWA}', "");
-    Expect(1, 70783, '\P{^Is_Blk=-	NEWA}', "");
-    Expect(0, 70784, '\p{Is_Blk=-	NEWA}', "");
-    Expect(1, 70784, '\p{^Is_Blk=-	NEWA}', "");
-    Expect(1, 70784, '\P{Is_Blk=-	NEWA}', "");
-    Expect(0, 70784, '\P{^Is_Blk=-	NEWA}', "");
-    Error('\p{Block= /a/NKo}');
-    Error('\P{Block= /a/NKo}');
+    Expect(1, 70783, '\p{Is_Blk=	Newa}', "");
+    Expect(0, 70783, '\p{^Is_Blk=	Newa}', "");
+    Expect(0, 70783, '\P{Is_Blk=	Newa}', "");
+    Expect(1, 70783, '\P{^Is_Blk=	Newa}', "");
+    Expect(0, 70784, '\p{Is_Blk=	Newa}', "");
+    Expect(1, 70784, '\p{^Is_Blk=	Newa}', "");
+    Expect(1, 70784, '\P{Is_Blk=	Newa}', "");
+    Expect(0, 70784, '\P{^Is_Blk=	Newa}', "");
+    Error('\p{Block=:=--NKo}');
+    Error('\P{Block=:=--NKo}');
     Expect(1, 2047, '\p{Block=:\ANKo\z:}', "");;
     Expect(0, 2048, '\p{Block=:\ANKo\z:}', "");;
-    Expect(1, 2047, '\p{Block=nko}', "");
-    Expect(0, 2047, '\p{^Block=nko}', "");
-    Expect(0, 2047, '\P{Block=nko}', "");
-    Expect(1, 2047, '\P{^Block=nko}', "");
-    Expect(0, 2048, '\p{Block=nko}', "");
-    Expect(1, 2048, '\p{^Block=nko}', "");
-    Expect(1, 2048, '\P{Block=nko}', "");
-    Expect(0, 2048, '\P{^Block=nko}', "");
+    Expect(1, 2047, '\p{Block:nko}', "");
+    Expect(0, 2047, '\p{^Block:nko}', "");
+    Expect(0, 2047, '\P{Block:nko}', "");
+    Expect(1, 2047, '\P{^Block:nko}', "");
+    Expect(0, 2048, '\p{Block:nko}', "");
+    Expect(1, 2048, '\p{^Block:nko}', "");
+    Expect(1, 2048, '\P{Block:nko}', "");
+    Expect(0, 2048, '\P{^Block:nko}', "");
     Expect(1, 2047, '\p{Block=:\Anko\z:}', "");;
     Expect(0, 2048, '\p{Block=:\Anko\z:}', "");;
-    Expect(1, 2047, '\p{Block=-NKo}', "");
-    Expect(0, 2047, '\p{^Block=-NKo}', "");
-    Expect(0, 2047, '\P{Block=-NKo}', "");
-    Expect(1, 2047, '\P{^Block=-NKo}', "");
-    Expect(0, 2048, '\p{Block=-NKo}', "");
-    Expect(1, 2048, '\p{^Block=-NKo}', "");
-    Expect(1, 2048, '\P{Block=-NKo}', "");
-    Expect(0, 2048, '\P{^Block=-NKo}', "");
-    Error('\p{Blk= /a/NKO}');
-    Error('\P{Blk= /a/NKO}');
+    Expect(1, 2047, '\p{Block: _-nko}', "");
+    Expect(0, 2047, '\p{^Block: _-nko}', "");
+    Expect(0, 2047, '\P{Block: _-nko}', "");
+    Expect(1, 2047, '\P{^Block: _-nko}', "");
+    Expect(0, 2048, '\p{Block: _-nko}', "");
+    Expect(1, 2048, '\p{^Block: _-nko}', "");
+    Expect(1, 2048, '\P{Block: _-nko}', "");
+    Expect(0, 2048, '\P{^Block: _-nko}', "");
+    Error('\p{Blk:	-/a/NKo}');
+    Error('\P{Blk:	-/a/NKo}');
     Expect(1, 2047, '\p{Blk=:\ANKo\z:}', "");;
     Expect(0, 2048, '\p{Blk=:\ANKo\z:}', "");;
     Expect(1, 2047, '\p{Blk=nko}', "");
@@ -20842,34 +21410,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2048, '\P{^Blk=nko}', "");
     Expect(1, 2047, '\p{Blk=:\Anko\z:}', "");;
     Expect(0, 2048, '\p{Blk=:\Anko\z:}', "");;
-    Expect(1, 2047, '\p{Blk:   	NKo}', "");
-    Expect(0, 2047, '\p{^Blk:   	NKo}', "");
-    Expect(0, 2047, '\P{Blk:   	NKo}', "");
-    Expect(1, 2047, '\P{^Blk:   	NKo}', "");
-    Expect(0, 2048, '\p{Blk:   	NKo}', "");
-    Expect(1, 2048, '\p{^Blk:   	NKo}', "");
-    Expect(1, 2048, '\P{Blk:   	NKo}', "");
-    Expect(0, 2048, '\P{^Blk:   	NKo}', "");
-    Error('\p{Is_Block= 	NKO:=}');
-    Error('\P{Is_Block= 	NKO:=}');
-    Expect(1, 2047, '\p{Is_Block=nko}', "");
-    Expect(0, 2047, '\p{^Is_Block=nko}', "");
-    Expect(0, 2047, '\P{Is_Block=nko}', "");
-    Expect(1, 2047, '\P{^Is_Block=nko}', "");
-    Expect(0, 2048, '\p{Is_Block=nko}', "");
-    Expect(1, 2048, '\p{^Is_Block=nko}', "");
-    Expect(1, 2048, '\P{Is_Block=nko}', "");
-    Expect(0, 2048, '\P{^Is_Block=nko}', "");
-    Expect(1, 2047, '\p{Is_Block=__NKo}', "");
-    Expect(0, 2047, '\p{^Is_Block=__NKo}', "");
-    Expect(0, 2047, '\P{Is_Block=__NKo}', "");
-    Expect(1, 2047, '\P{^Is_Block=__NKo}', "");
-    Expect(0, 2048, '\p{Is_Block=__NKo}', "");
-    Expect(1, 2048, '\p{^Is_Block=__NKo}', "");
-    Expect(1, 2048, '\P{Is_Block=__NKo}', "");
-    Expect(0, 2048, '\P{^Is_Block=__NKo}', "");
-    Error('\p{Is_Blk=/a/_NKO}');
-    Error('\P{Is_Blk=/a/_NKO}');
+    Expect(1, 2047, '\p{Blk= -NKo}', "");
+    Expect(0, 2047, '\p{^Blk= -NKo}', "");
+    Expect(0, 2047, '\P{Blk= -NKo}', "");
+    Expect(1, 2047, '\P{^Blk= -NKo}', "");
+    Expect(0, 2048, '\p{Blk= -NKo}', "");
+    Expect(1, 2048, '\p{^Blk= -NKo}', "");
+    Expect(1, 2048, '\P{Blk= -NKo}', "");
+    Expect(0, 2048, '\P{^Blk= -NKo}', "");
+    Error('\p{Is_Block=_	NKo/a/}');
+    Error('\P{Is_Block=_	NKo/a/}');
+    Expect(1, 2047, '\p{Is_Block:nko}', "");
+    Expect(0, 2047, '\p{^Is_Block:nko}', "");
+    Expect(0, 2047, '\P{Is_Block:nko}', "");
+    Expect(1, 2047, '\P{^Is_Block:nko}', "");
+    Expect(0, 2048, '\p{Is_Block:nko}', "");
+    Expect(1, 2048, '\p{^Is_Block:nko}', "");
+    Expect(1, 2048, '\P{Is_Block:nko}', "");
+    Expect(0, 2048, '\P{^Is_Block:nko}', "");
+    Expect(1, 2047, '\p{Is_Block=	NKO}', "");
+    Expect(0, 2047, '\p{^Is_Block=	NKO}', "");
+    Expect(0, 2047, '\P{Is_Block=	NKO}', "");
+    Expect(1, 2047, '\P{^Is_Block=	NKO}', "");
+    Expect(0, 2048, '\p{Is_Block=	NKO}', "");
+    Expect(1, 2048, '\p{^Is_Block=	NKO}', "");
+    Expect(1, 2048, '\P{Is_Block=	NKO}', "");
+    Expect(0, 2048, '\P{^Is_Block=	NKO}', "");
+    Error('\p{Is_Blk=-NKO/a/}');
+    Error('\P{Is_Blk=-NKO/a/}');
     Expect(1, 2047, '\p{Is_Blk=nko}', "");
     Expect(0, 2047, '\p{^Is_Blk=nko}', "");
     Expect(0, 2047, '\P{Is_Blk=nko}', "");
@@ -20878,16 +21446,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2048, '\p{^Is_Blk=nko}', "");
     Expect(1, 2048, '\P{Is_Blk=nko}', "");
     Expect(0, 2048, '\P{^Is_Blk=nko}', "");
-    Expect(1, 2047, '\p{Is_Blk: _NKO}', "");
-    Expect(0, 2047, '\p{^Is_Blk: _NKO}', "");
-    Expect(0, 2047, '\P{Is_Blk: _NKO}', "");
-    Expect(1, 2047, '\P{^Is_Blk: _NKO}', "");
-    Expect(0, 2048, '\p{Is_Blk: _NKO}', "");
-    Expect(1, 2048, '\p{^Is_Blk: _NKO}', "");
-    Expect(1, 2048, '\P{Is_Blk: _NKO}', "");
-    Expect(0, 2048, '\P{^Is_Blk: _NKO}', "");
-    Error('\p{Block=/a/_	NUMBER_forms}');
-    Error('\P{Block=/a/_	NUMBER_forms}');
+    Expect(1, 2047, '\p{Is_Blk=-NKo}', "");
+    Expect(0, 2047, '\p{^Is_Blk=-NKo}', "");
+    Expect(0, 2047, '\P{Is_Blk=-NKo}', "");
+    Expect(1, 2047, '\P{^Is_Blk=-NKo}', "");
+    Expect(0, 2048, '\p{Is_Blk=-NKo}', "");
+    Expect(1, 2048, '\p{^Is_Blk=-NKo}', "");
+    Expect(1, 2048, '\P{Is_Blk=-NKo}', "");
+    Expect(0, 2048, '\P{^Is_Blk=-NKo}', "");
+    Error('\p{Block=-:=Number_forms}');
+    Error('\P{Block=-:=Number_forms}');
     Expect(1, 8591, '\p{Block=:\ANumber_Forms\z:}', "");;
     Expect(0, 8592, '\p{Block=:\ANumber_Forms\z:}', "");;
     Expect(1, 8591, '\p{Block=numberforms}', "");
@@ -20900,16 +21468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8592, '\P{^Block=numberforms}', "");
     Expect(1, 8591, '\p{Block=:\Anumberforms\z:}', "");;
     Expect(0, 8592, '\p{Block=:\Anumberforms\z:}', "");;
-    Expect(1, 8591, '\p{Block:  -number_forms}', "");
-    Expect(0, 8591, '\p{^Block:  -number_forms}', "");
-    Expect(0, 8591, '\P{Block:  -number_forms}', "");
-    Expect(1, 8591, '\P{^Block:  -number_forms}', "");
-    Expect(0, 8592, '\p{Block:  -number_forms}', "");
-    Expect(1, 8592, '\p{^Block:  -number_forms}', "");
-    Expect(1, 8592, '\P{Block:  -number_forms}', "");
-    Expect(0, 8592, '\P{^Block:  -number_forms}', "");
-    Error('\p{Blk=:=_Number_forms}');
-    Error('\P{Blk=:=_Number_forms}');
+    Expect(1, 8591, '\p{Block=_-Number_FORMS}', "");
+    Expect(0, 8591, '\p{^Block=_-Number_FORMS}', "");
+    Expect(0, 8591, '\P{Block=_-Number_FORMS}', "");
+    Expect(1, 8591, '\P{^Block=_-Number_FORMS}', "");
+    Expect(0, 8592, '\p{Block=_-Number_FORMS}', "");
+    Expect(1, 8592, '\p{^Block=_-Number_FORMS}', "");
+    Expect(1, 8592, '\P{Block=_-Number_FORMS}', "");
+    Expect(0, 8592, '\P{^Block=_-Number_FORMS}', "");
+    Error('\p{Blk= /a/Number_forms}');
+    Error('\P{Blk= /a/Number_forms}');
     Expect(1, 8591, '\p{Blk=:\ANumber_Forms\z:}', "");;
     Expect(0, 8592, '\p{Blk=:\ANumber_Forms\z:}', "");;
     Expect(1, 8591, '\p{Blk=numberforms}', "");
@@ -20922,16 +21490,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8592, '\P{^Blk=numberforms}', "");
     Expect(1, 8591, '\p{Blk=:\Anumberforms\z:}', "");;
     Expect(0, 8592, '\p{Blk=:\Anumberforms\z:}', "");;
-    Expect(1, 8591, '\p{Blk= 	number_FORMS}', "");
-    Expect(0, 8591, '\p{^Blk= 	number_FORMS}', "");
-    Expect(0, 8591, '\P{Blk= 	number_FORMS}', "");
-    Expect(1, 8591, '\P{^Blk= 	number_FORMS}', "");
-    Expect(0, 8592, '\p{Blk= 	number_FORMS}', "");
-    Expect(1, 8592, '\p{^Blk= 	number_FORMS}', "");
-    Expect(1, 8592, '\P{Blk= 	number_FORMS}', "");
-    Expect(0, 8592, '\P{^Blk= 	number_FORMS}', "");
-    Error('\p{Is_Block=_-Number_forms/a/}');
-    Error('\P{Is_Block=_-Number_forms/a/}');
+    Expect(1, 8591, '\p{Blk: 		number_Forms}', "");
+    Expect(0, 8591, '\p{^Blk: 		number_Forms}', "");
+    Expect(0, 8591, '\P{Blk: 		number_Forms}', "");
+    Expect(1, 8591, '\P{^Blk: 		number_Forms}', "");
+    Expect(0, 8592, '\p{Blk: 		number_Forms}', "");
+    Expect(1, 8592, '\p{^Blk: 		number_Forms}', "");
+    Expect(1, 8592, '\P{Blk: 		number_Forms}', "");
+    Expect(0, 8592, '\P{^Blk: 		number_Forms}', "");
+    Error('\p{Is_Block=_/a/number_Forms}');
+    Error('\P{Is_Block=_/a/number_Forms}');
     Expect(1, 8591, '\p{Is_Block=numberforms}', "");
     Expect(0, 8591, '\p{^Is_Block=numberforms}', "");
     Expect(0, 8591, '\P{Is_Block=numberforms}', "");
@@ -20940,16 +21508,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8592, '\p{^Is_Block=numberforms}', "");
     Expect(1, 8592, '\P{Is_Block=numberforms}', "");
     Expect(0, 8592, '\P{^Is_Block=numberforms}', "");
-    Expect(1, 8591, '\p{Is_Block:  _NUMBER_Forms}', "");
-    Expect(0, 8591, '\p{^Is_Block:  _NUMBER_Forms}', "");
-    Expect(0, 8591, '\P{Is_Block:  _NUMBER_Forms}', "");
-    Expect(1, 8591, '\P{^Is_Block:  _NUMBER_Forms}', "");
-    Expect(0, 8592, '\p{Is_Block:  _NUMBER_Forms}', "");
-    Expect(1, 8592, '\p{^Is_Block:  _NUMBER_Forms}', "");
-    Expect(1, 8592, '\P{Is_Block:  _NUMBER_Forms}', "");
-    Expect(0, 8592, '\P{^Is_Block:  _NUMBER_Forms}', "");
-    Error('\p{Is_Blk=/a/_ Number_Forms}');
-    Error('\P{Is_Blk=/a/_ Number_Forms}');
+    Expect(1, 8591, '\p{Is_Block=- Number_forms}', "");
+    Expect(0, 8591, '\p{^Is_Block=- Number_forms}', "");
+    Expect(0, 8591, '\P{Is_Block=- Number_forms}', "");
+    Expect(1, 8591, '\P{^Is_Block=- Number_forms}', "");
+    Expect(0, 8592, '\p{Is_Block=- Number_forms}', "");
+    Expect(1, 8592, '\p{^Is_Block=- Number_forms}', "");
+    Expect(1, 8592, '\P{Is_Block=- Number_forms}', "");
+    Expect(0, 8592, '\P{^Is_Block=- Number_forms}', "");
+    Error('\p{Is_Blk=/a/_	number_FORMS}');
+    Error('\P{Is_Blk=/a/_	number_FORMS}');
     Expect(1, 8591, '\p{Is_Blk=numberforms}', "");
     Expect(0, 8591, '\p{^Is_Blk=numberforms}', "");
     Expect(0, 8591, '\P{Is_Blk=numberforms}', "");
@@ -20958,16 +21526,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8592, '\p{^Is_Blk=numberforms}', "");
     Expect(1, 8592, '\P{Is_Blk=numberforms}', "");
     Expect(0, 8592, '\P{^Is_Blk=numberforms}', "");
-    Expect(1, 8591, '\p{Is_Blk=_ number_FORMS}', "");
-    Expect(0, 8591, '\p{^Is_Blk=_ number_FORMS}', "");
-    Expect(0, 8591, '\P{Is_Blk=_ number_FORMS}', "");
-    Expect(1, 8591, '\P{^Is_Blk=_ number_FORMS}', "");
-    Expect(0, 8592, '\p{Is_Blk=_ number_FORMS}', "");
-    Expect(1, 8592, '\p{^Is_Blk=_ number_FORMS}', "");
-    Expect(1, 8592, '\P{Is_Blk=_ number_FORMS}', "");
-    Expect(0, 8592, '\P{^Is_Blk=_ number_FORMS}', "");
-    Error('\p{Block=_:=NUSHU}');
-    Error('\P{Block=_:=NUSHU}');
+    Expect(1, 8591, '\p{Is_Blk=-Number_Forms}', "");
+    Expect(0, 8591, '\p{^Is_Blk=-Number_Forms}', "");
+    Expect(0, 8591, '\P{Is_Blk=-Number_Forms}', "");
+    Expect(1, 8591, '\P{^Is_Blk=-Number_Forms}', "");
+    Expect(0, 8592, '\p{Is_Blk=-Number_Forms}', "");
+    Expect(1, 8592, '\p{^Is_Blk=-Number_Forms}', "");
+    Expect(1, 8592, '\P{Is_Blk=-Number_Forms}', "");
+    Expect(0, 8592, '\P{^Is_Blk=-Number_Forms}', "");
+    Error('\p{Block=/a/		NUSHU}');
+    Error('\P{Block=/a/		NUSHU}');
     Expect(1, 111359, '\p{Block=:\ANushu\z:}', "");;
     Expect(0, 111360, '\p{Block=:\ANushu\z:}', "");;
     Expect(1, 111359, '\p{Block=nushu}', "");
@@ -20980,38 +21548,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 111360, '\P{^Block=nushu}', "");
     Expect(1, 111359, '\p{Block=:\Anushu\z:}', "");;
     Expect(0, 111360, '\p{Block=:\Anushu\z:}', "");;
-    Expect(1, 111359, '\p{Block=		nushu}', "");
-    Expect(0, 111359, '\p{^Block=		nushu}', "");
-    Expect(0, 111359, '\P{Block=		nushu}', "");
-    Expect(1, 111359, '\P{^Block=		nushu}', "");
-    Expect(0, 111360, '\p{Block=		nushu}', "");
-    Expect(1, 111360, '\p{^Block=		nushu}', "");
-    Expect(1, 111360, '\P{Block=		nushu}', "");
-    Expect(0, 111360, '\P{^Block=		nushu}', "");
-    Error('\p{Blk=  nushu:=}');
-    Error('\P{Blk=  nushu:=}');
+    Expect(1, 111359, '\p{Block=	-nushu}', "");
+    Expect(0, 111359, '\p{^Block=	-nushu}', "");
+    Expect(0, 111359, '\P{Block=	-nushu}', "");
+    Expect(1, 111359, '\P{^Block=	-nushu}', "");
+    Expect(0, 111360, '\p{Block=	-nushu}', "");
+    Expect(1, 111360, '\p{^Block=	-nushu}', "");
+    Expect(1, 111360, '\P{Block=	-nushu}', "");
+    Expect(0, 111360, '\P{^Block=	-nushu}', "");
+    Error('\p{Blk=	 Nushu/a/}');
+    Error('\P{Blk=	 Nushu/a/}');
     Expect(1, 111359, '\p{Blk=:\ANushu\z:}', "");;
     Expect(0, 111360, '\p{Blk=:\ANushu\z:}', "");;
-    Expect(1, 111359, '\p{Blk=nushu}', "");
-    Expect(0, 111359, '\p{^Blk=nushu}', "");
-    Expect(0, 111359, '\P{Blk=nushu}', "");
-    Expect(1, 111359, '\P{^Blk=nushu}', "");
-    Expect(0, 111360, '\p{Blk=nushu}', "");
-    Expect(1, 111360, '\p{^Blk=nushu}', "");
-    Expect(1, 111360, '\P{Blk=nushu}', "");
-    Expect(0, 111360, '\P{^Blk=nushu}', "");
+    Expect(1, 111359, '\p{Blk:   nushu}', "");
+    Expect(0, 111359, '\p{^Blk:   nushu}', "");
+    Expect(0, 111359, '\P{Blk:   nushu}', "");
+    Expect(1, 111359, '\P{^Blk:   nushu}', "");
+    Expect(0, 111360, '\p{Blk:   nushu}', "");
+    Expect(1, 111360, '\p{^Blk:   nushu}', "");
+    Expect(1, 111360, '\P{Blk:   nushu}', "");
+    Expect(0, 111360, '\P{^Blk:   nushu}', "");
     Expect(1, 111359, '\p{Blk=:\Anushu\z:}', "");;
     Expect(0, 111360, '\p{Blk=:\Anushu\z:}', "");;
-    Expect(1, 111359, '\p{Blk=	Nushu}', "");
-    Expect(0, 111359, '\p{^Blk=	Nushu}', "");
-    Expect(0, 111359, '\P{Blk=	Nushu}', "");
-    Expect(1, 111359, '\P{^Blk=	Nushu}', "");
-    Expect(0, 111360, '\p{Blk=	Nushu}', "");
-    Expect(1, 111360, '\p{^Blk=	Nushu}', "");
-    Expect(1, 111360, '\P{Blk=	Nushu}', "");
-    Expect(0, 111360, '\P{^Blk=	Nushu}', "");
-    Error('\p{Is_Block=:=_ NUSHU}');
-    Error('\P{Is_Block=:=_ NUSHU}');
+    Expect(1, 111359, '\p{Blk=	NUSHU}', "");
+    Expect(0, 111359, '\p{^Blk=	NUSHU}', "");
+    Expect(0, 111359, '\P{Blk=	NUSHU}', "");
+    Expect(1, 111359, '\P{^Blk=	NUSHU}', "");
+    Expect(0, 111360, '\p{Blk=	NUSHU}', "");
+    Expect(1, 111360, '\p{^Blk=	NUSHU}', "");
+    Expect(1, 111360, '\P{Blk=	NUSHU}', "");
+    Expect(0, 111360, '\P{^Blk=	NUSHU}', "");
+    Error('\p{Is_Block=	-nushu:=}');
+    Error('\P{Is_Block=	-nushu:=}');
     Expect(1, 111359, '\p{Is_Block=nushu}', "");
     Expect(0, 111359, '\p{^Is_Block=nushu}', "");
     Expect(0, 111359, '\P{Is_Block=nushu}', "");
@@ -21020,16 +21588,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 111360, '\p{^Is_Block=nushu}', "");
     Expect(1, 111360, '\P{Is_Block=nushu}', "");
     Expect(0, 111360, '\P{^Is_Block=nushu}', "");
-    Expect(1, 111359, '\p{Is_Block= NUSHU}', "");
-    Expect(0, 111359, '\p{^Is_Block= NUSHU}', "");
-    Expect(0, 111359, '\P{Is_Block= NUSHU}', "");
-    Expect(1, 111359, '\P{^Is_Block= NUSHU}', "");
-    Expect(0, 111360, '\p{Is_Block= NUSHU}', "");
-    Expect(1, 111360, '\p{^Is_Block= NUSHU}', "");
-    Expect(1, 111360, '\P{Is_Block= NUSHU}', "");
-    Expect(0, 111360, '\P{^Is_Block= NUSHU}', "");
-    Error('\p{Is_Blk=:=NUSHU}');
-    Error('\P{Is_Blk=:=NUSHU}');
+    Expect(1, 111359, '\p{Is_Block:	-Nushu}', "");
+    Expect(0, 111359, '\p{^Is_Block:	-Nushu}', "");
+    Expect(0, 111359, '\P{Is_Block:	-Nushu}', "");
+    Expect(1, 111359, '\P{^Is_Block:	-Nushu}', "");
+    Expect(0, 111360, '\p{Is_Block:	-Nushu}', "");
+    Expect(1, 111360, '\p{^Is_Block:	-Nushu}', "");
+    Expect(1, 111360, '\P{Is_Block:	-Nushu}', "");
+    Expect(0, 111360, '\P{^Is_Block:	-Nushu}', "");
+    Error('\p{Is_Blk:	 /a/NUSHU}');
+    Error('\P{Is_Blk:	 /a/NUSHU}');
     Expect(1, 111359, '\p{Is_Blk=nushu}', "");
     Expect(0, 111359, '\p{^Is_Blk=nushu}', "");
     Expect(0, 111359, '\P{Is_Blk=nushu}', "");
@@ -21038,16 +21606,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 111360, '\p{^Is_Blk=nushu}', "");
     Expect(1, 111360, '\P{Is_Blk=nushu}', "");
     Expect(0, 111360, '\P{^Is_Blk=nushu}', "");
-    Expect(1, 111359, '\p{Is_Blk=	-nushu}', "");
-    Expect(0, 111359, '\p{^Is_Blk=	-nushu}', "");
-    Expect(0, 111359, '\P{Is_Blk=	-nushu}', "");
-    Expect(1, 111359, '\P{^Is_Blk=	-nushu}', "");
-    Expect(0, 111360, '\p{Is_Blk=	-nushu}', "");
-    Expect(1, 111360, '\p{^Is_Blk=	-nushu}', "");
-    Expect(1, 111360, '\P{Is_Blk=	-nushu}', "");
-    Expect(0, 111360, '\P{^Is_Blk=	-nushu}', "");
-    Error('\p{Block=	-nyiakeng_PUACHUE_Hmong/a/}');
-    Error('\P{Block=	-nyiakeng_PUACHUE_Hmong/a/}');
+    Expect(1, 111359, '\p{Is_Blk=_-NUSHU}', "");
+    Expect(0, 111359, '\p{^Is_Blk=_-NUSHU}', "");
+    Expect(0, 111359, '\P{Is_Blk=_-NUSHU}', "");
+    Expect(1, 111359, '\P{^Is_Blk=_-NUSHU}', "");
+    Expect(0, 111360, '\p{Is_Blk=_-NUSHU}', "");
+    Expect(1, 111360, '\p{^Is_Blk=_-NUSHU}', "");
+    Expect(1, 111360, '\P{Is_Blk=_-NUSHU}', "");
+    Expect(0, 111360, '\P{^Is_Blk=_-NUSHU}', "");
+    Error('\p{Block=	/a/NYIAKENG_Puachue_Hmong}');
+    Error('\P{Block=	/a/NYIAKENG_Puachue_Hmong}');
     Expect(1, 123215, '\p{Block=:\ANyiakeng_Puachue_Hmong\z:}', "");;
     Expect(0, 123216, '\p{Block=:\ANyiakeng_Puachue_Hmong\z:}', "");;
     Expect(1, 123215, '\p{Block=nyiakengpuachuehmong}', "");
@@ -21060,74 +21628,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123216, '\P{^Block=nyiakengpuachuehmong}', "");
     Expect(1, 123215, '\p{Block=:\Anyiakengpuachuehmong\z:}', "");;
     Expect(0, 123216, '\p{Block=:\Anyiakengpuachuehmong\z:}', "");;
-    Expect(1, 123215, '\p{Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(0, 123215, '\p{^Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(0, 123215, '\P{Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(1, 123215, '\P{^Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(0, 123216, '\p{Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(1, 123216, '\p{^Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(1, 123216, '\P{Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Expect(0, 123216, '\P{^Block=	nyiakeng_PUACHUE_Hmong}', "");
-    Error('\p{Blk=	_NYIAKENG_Puachue_Hmong:=}');
-    Error('\P{Blk=	_NYIAKENG_Puachue_Hmong:=}');
+    Expect(1, 123215, '\p{Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123215, '\p{^Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123215, '\P{Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(1, 123215, '\P{^Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123216, '\p{Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(1, 123216, '\p{^Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(1, 123216, '\P{Block=- Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123216, '\P{^Block=- Nyiakeng_Puachue_hmong}', "");
+    Error('\p{Blk=	-Nyiakeng_PUACHUE_Hmong:=}');
+    Error('\P{Blk=	-Nyiakeng_PUACHUE_Hmong:=}');
     Expect(1, 123215, '\p{Blk=:\ANyiakeng_Puachue_Hmong\z:}', "");;
     Expect(0, 123216, '\p{Blk=:\ANyiakeng_Puachue_Hmong\z:}', "");;
-    Expect(1, 123215, '\p{Blk: nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\p{^Blk: nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\P{Blk: nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\P{^Blk: nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\p{Blk: nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\p{^Blk: nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\P{Blk: nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\P{^Blk: nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\p{Blk:	nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\p{^Blk:	nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\P{Blk:	nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\P{^Blk:	nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\p{Blk:	nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\p{^Blk:	nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\P{Blk:	nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\P{^Blk:	nyiakengpuachuehmong}', "");
     Expect(1, 123215, '\p{Blk=:\Anyiakengpuachuehmong\z:}', "");;
     Expect(0, 123216, '\p{Blk=:\Anyiakengpuachuehmong\z:}', "");;
-    Expect(1, 123215, '\p{Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\p{^Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\P{Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123215, '\P{^Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\p{Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\p{^Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\P{Blk= nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\P{^Blk= nyiakeng_Puachue_Hmong}', "");
-    Error('\p{Is_Block=:=Nyiakeng_PUACHUE_Hmong}');
-    Error('\P{Is_Block=:=Nyiakeng_PUACHUE_Hmong}');
-    Expect(1, 123215, '\p{Is_Block=nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\p{^Is_Block=nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\P{Is_Block=nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\P{^Is_Block=nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\p{Is_Block=nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\p{^Is_Block=nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\P{Is_Block=nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\P{^Is_Block=nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\p{Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(0, 123215, '\p{^Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(0, 123215, '\P{Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(1, 123215, '\P{^Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(0, 123216, '\p{Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(1, 123216, '\p{^Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(1, 123216, '\P{Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Expect(0, 123216, '\P{^Is_Block: __Nyiakeng_Puachue_HMONG}', "");
-    Error('\p{Is_Blk= Nyiakeng_puachue_Hmong:=}');
-    Error('\P{Is_Blk= Nyiakeng_puachue_Hmong:=}');
-    Expect(1, 123215, '\p{Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\p{^Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\P{Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\P{^Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\p{Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\p{^Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\P{Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\P{^Is_Blk:nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\p{Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123215, '\p{^Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123215, '\P{Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(1, 123215, '\P{^Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123216, '\p{Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(1, 123216, '\p{^Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(1, 123216, '\P{Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123216, '\P{^Is_Blk= 	nyiakeng_puachue_Hmong}', "");
-    Error('\p{Block=/a/	OPTICAL_CHARACTER_Recognition}');
-    Error('\P{Block=/a/	OPTICAL_CHARACTER_Recognition}');
+    Expect(1, 123215, '\p{Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123215, '\p{^Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123215, '\P{Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(1, 123215, '\P{^Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123216, '\p{Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(1, 123216, '\p{^Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(1, 123216, '\P{Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123216, '\P{^Blk=	Nyiakeng_Puachue_Hmong}', "");
+    Error('\p{Is_Block=:=-nyiakeng_Puachue_Hmong}');
+    Error('\P{Is_Block=:=-nyiakeng_Puachue_Hmong}');
+    Expect(1, 123215, '\p{Is_Block: nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\p{^Is_Block: nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\P{Is_Block: nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\P{^Is_Block: nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\p{Is_Block: nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\p{^Is_Block: nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\P{Is_Block: nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\P{^Is_Block: nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\p{Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123215, '\p{^Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123215, '\P{Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(1, 123215, '\P{^Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123216, '\p{Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(1, 123216, '\p{^Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(1, 123216, '\P{Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Expect(0, 123216, '\P{^Is_Block=-Nyiakeng_Puachue_Hmong}', "");
+    Error('\p{Is_Blk=	Nyiakeng_puachue_HMONG/a/}');
+    Error('\P{Is_Blk=	Nyiakeng_puachue_HMONG/a/}');
+    Expect(1, 123215, '\p{Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\p{^Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\P{Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\P{^Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\p{Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\p{^Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\P{Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\P{^Is_Blk=nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\p{Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123215, '\p{^Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123215, '\P{Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(1, 123215, '\P{^Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123216, '\p{Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(1, 123216, '\p{^Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(1, 123216, '\P{Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Expect(0, 123216, '\P{^Is_Blk=  Nyiakeng_Puachue_hmong}', "");
+    Error('\p{Block=:=-_OPTICAL_CHARACTER_Recognition}');
+    Error('\P{Block=:=-_OPTICAL_CHARACTER_Recognition}');
     Expect(1, 9311, '\p{Block=:\AOptical_Character_Recognition\z:}', "");;
     Expect(0, 9312, '\p{Block=:\AOptical_Character_Recognition\z:}', "");;
     Expect(1, 9311, '\p{Block=opticalcharacterrecognition}', "");
@@ -21140,16 +21708,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9312, '\P{^Block=opticalcharacterrecognition}', "");
     Expect(1, 9311, '\p{Block=:\Aopticalcharacterrecognition\z:}', "");;
     Expect(0, 9312, '\p{Block=:\Aopticalcharacterrecognition\z:}', "");;
-    Expect(1, 9311, '\p{Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9311, '\p{^Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9311, '\P{Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(1, 9311, '\P{^Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9312, '\p{Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(1, 9312, '\p{^Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(1, 9312, '\P{Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9312, '\P{^Block=		Optical_CHARACTER_RECOGNITION}', "");
-    Error('\p{Blk=	_OCR/a/}');
-    Error('\P{Blk=	_OCR/a/}');
+    Expect(1, 9311, '\p{Block= Optical_Character_recognition}', "");
+    Expect(0, 9311, '\p{^Block= Optical_Character_recognition}', "");
+    Expect(0, 9311, '\P{Block= Optical_Character_recognition}', "");
+    Expect(1, 9311, '\P{^Block= Optical_Character_recognition}', "");
+    Expect(0, 9312, '\p{Block= Optical_Character_recognition}', "");
+    Expect(1, 9312, '\p{^Block= Optical_Character_recognition}', "");
+    Expect(1, 9312, '\P{Block= Optical_Character_recognition}', "");
+    Expect(0, 9312, '\P{^Block= Optical_Character_recognition}', "");
+    Error('\p{Blk=:=_OCR}');
+    Error('\P{Blk=:=_OCR}');
     Expect(1, 9311, '\p{Blk=:\AOCR\z:}', "");;
     Expect(0, 9312, '\p{Blk=:\AOCR\z:}', "");;
     Expect(1, 9311, '\p{Blk=ocr}', "");
@@ -21162,16 +21730,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 9312, '\P{^Blk=ocr}', "");
     Expect(1, 9311, '\p{Blk=:\Aocr\z:}', "");;
     Expect(0, 9312, '\p{Blk=:\Aocr\z:}', "");;
-    Expect(1, 9311, '\p{Blk=  OCR}', "");
-    Expect(0, 9311, '\p{^Blk=  OCR}', "");
-    Expect(0, 9311, '\P{Blk=  OCR}', "");
-    Expect(1, 9311, '\P{^Blk=  OCR}', "");
-    Expect(0, 9312, '\p{Blk=  OCR}', "");
-    Expect(1, 9312, '\p{^Blk=  OCR}', "");
-    Expect(1, 9312, '\P{Blk=  OCR}', "");
-    Expect(0, 9312, '\P{^Blk=  OCR}', "");
-    Error('\p{Is_Block:   	:=Optical_Character_Recognition}');
-    Error('\P{Is_Block:   	:=Optical_Character_Recognition}');
+    Expect(1, 9311, '\p{Blk: --OCR}', "");
+    Expect(0, 9311, '\p{^Blk: --OCR}', "");
+    Expect(0, 9311, '\P{Blk: --OCR}', "");
+    Expect(1, 9311, '\P{^Blk: --OCR}', "");
+    Expect(0, 9312, '\p{Blk: --OCR}', "");
+    Expect(1, 9312, '\p{^Blk: --OCR}', "");
+    Expect(1, 9312, '\P{Blk: --OCR}', "");
+    Expect(0, 9312, '\P{^Blk: --OCR}', "");
+    Error('\p{Is_Block=:=		optical_CHARACTER_RECOGNITION}');
+    Error('\P{Is_Block=:=		optical_CHARACTER_RECOGNITION}');
     Expect(1, 9311, '\p{Is_Block=opticalcharacterrecognition}', "");
     Expect(0, 9311, '\p{^Is_Block=opticalcharacterrecognition}', "");
     Expect(0, 9311, '\P{Is_Block=opticalcharacterrecognition}', "");
@@ -21180,16 +21748,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9312, '\p{^Is_Block=opticalcharacterrecognition}', "");
     Expect(1, 9312, '\P{Is_Block=opticalcharacterrecognition}', "");
     Expect(0, 9312, '\P{^Is_Block=opticalcharacterrecognition}', "");
-    Expect(1, 9311, '\p{Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9311, '\p{^Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9311, '\P{Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(1, 9311, '\P{^Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9312, '\p{Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(1, 9312, '\p{^Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(1, 9312, '\P{Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Expect(0, 9312, '\P{^Is_Block= 	optical_CHARACTER_RECOGNITION}', "");
-    Error('\p{Is_Blk=-:=OCR}');
-    Error('\P{Is_Blk=-:=OCR}');
+    Expect(1, 9311, '\p{Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(0, 9311, '\p{^Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(0, 9311, '\P{Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(1, 9311, '\P{^Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(0, 9312, '\p{Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(1, 9312, '\p{^Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(1, 9312, '\P{Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Expect(0, 9312, '\P{^Is_Block=_Optical_CHARACTER_RECOGNITION}', "");
+    Error('\p{Is_Blk= -OCR/a/}');
+    Error('\P{Is_Blk= -OCR/a/}');
     Expect(1, 9311, '\p{Is_Blk=ocr}', "");
     Expect(0, 9311, '\p{^Is_Blk=ocr}', "");
     Expect(0, 9311, '\P{Is_Blk=ocr}', "");
@@ -21198,16 +21766,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 9312, '\p{^Is_Blk=ocr}', "");
     Expect(1, 9312, '\P{Is_Blk=ocr}', "");
     Expect(0, 9312, '\P{^Is_Blk=ocr}', "");
-    Expect(1, 9311, '\p{Is_Blk=_ocr}', "");
-    Expect(0, 9311, '\p{^Is_Blk=_ocr}', "");
-    Expect(0, 9311, '\P{Is_Blk=_ocr}', "");
-    Expect(1, 9311, '\P{^Is_Blk=_ocr}', "");
-    Expect(0, 9312, '\p{Is_Blk=_ocr}', "");
-    Expect(1, 9312, '\p{^Is_Blk=_ocr}', "");
-    Expect(1, 9312, '\P{Is_Blk=_ocr}', "");
-    Expect(0, 9312, '\P{^Is_Blk=_ocr}', "");
-    Error('\p{Block=_Ogham:=}');
-    Error('\P{Block=_Ogham:=}');
+    Expect(1, 9311, '\p{Is_Blk=--OCR}', "");
+    Expect(0, 9311, '\p{^Is_Blk=--OCR}', "");
+    Expect(0, 9311, '\P{Is_Blk=--OCR}', "");
+    Expect(1, 9311, '\P{^Is_Blk=--OCR}', "");
+    Expect(0, 9312, '\p{Is_Blk=--OCR}', "");
+    Expect(1, 9312, '\p{^Is_Blk=--OCR}', "");
+    Expect(1, 9312, '\P{Is_Blk=--OCR}', "");
+    Expect(0, 9312, '\P{^Is_Blk=--OCR}', "");
+    Error('\p{Block=/a/Ogham}');
+    Error('\P{Block=/a/Ogham}');
     Expect(1, 5791, '\p{Block=:\AOgham\z:}', "");;
     Expect(0, 5792, '\p{Block=:\AOgham\z:}', "");;
     Expect(1, 5791, '\p{Block=ogham}', "");
@@ -21220,26 +21788,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5792, '\P{^Block=ogham}', "");
     Expect(1, 5791, '\p{Block=:\Aogham\z:}', "");;
     Expect(0, 5792, '\p{Block=:\Aogham\z:}', "");;
-    Expect(1, 5791, '\p{Block=_-Ogham}', "");
-    Expect(0, 5791, '\p{^Block=_-Ogham}', "");
-    Expect(0, 5791, '\P{Block=_-Ogham}', "");
-    Expect(1, 5791, '\P{^Block=_-Ogham}', "");
-    Expect(0, 5792, '\p{Block=_-Ogham}', "");
-    Expect(1, 5792, '\p{^Block=_-Ogham}', "");
-    Expect(1, 5792, '\P{Block=_-Ogham}', "");
-    Expect(0, 5792, '\P{^Block=_-Ogham}', "");
-    Error('\p{Blk=	/a/ogham}');
-    Error('\P{Blk=	/a/ogham}');
+    Expect(1, 5791, '\p{Block=_-OGHAM}', "");
+    Expect(0, 5791, '\p{^Block=_-OGHAM}', "");
+    Expect(0, 5791, '\P{Block=_-OGHAM}', "");
+    Expect(1, 5791, '\P{^Block=_-OGHAM}', "");
+    Expect(0, 5792, '\p{Block=_-OGHAM}', "");
+    Expect(1, 5792, '\p{^Block=_-OGHAM}', "");
+    Expect(1, 5792, '\P{Block=_-OGHAM}', "");
+    Expect(0, 5792, '\P{^Block=_-OGHAM}', "");
+    Error('\p{Blk=/a/	_OGHAM}');
+    Error('\P{Blk=/a/	_OGHAM}');
     Expect(1, 5791, '\p{Blk=:\AOgham\z:}', "");;
     Expect(0, 5792, '\p{Blk=:\AOgham\z:}', "");;
-    Expect(1, 5791, '\p{Blk:   ogham}', "");
-    Expect(0, 5791, '\p{^Blk:   ogham}', "");
-    Expect(0, 5791, '\P{Blk:   ogham}', "");
-    Expect(1, 5791, '\P{^Blk:   ogham}', "");
-    Expect(0, 5792, '\p{Blk:   ogham}', "");
-    Expect(1, 5792, '\p{^Blk:   ogham}', "");
-    Expect(1, 5792, '\P{Blk:   ogham}', "");
-    Expect(0, 5792, '\P{^Blk:   ogham}', "");
+    Expect(1, 5791, '\p{Blk: ogham}', "");
+    Expect(0, 5791, '\p{^Blk: ogham}', "");
+    Expect(0, 5791, '\P{Blk: ogham}', "");
+    Expect(1, 5791, '\P{^Blk: ogham}', "");
+    Expect(0, 5792, '\p{Blk: ogham}', "");
+    Expect(1, 5792, '\p{^Blk: ogham}', "");
+    Expect(1, 5792, '\P{Blk: ogham}', "");
+    Expect(0, 5792, '\P{^Blk: ogham}', "");
     Expect(1, 5791, '\p{Blk=:\Aogham\z:}', "");;
     Expect(0, 5792, '\p{Blk=:\Aogham\z:}', "");;
     Expect(1, 5791, '\p{Blk=__Ogham}', "");
@@ -21250,8 +21818,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5792, '\p{^Blk=__Ogham}', "");
     Expect(1, 5792, '\P{Blk=__Ogham}', "");
     Expect(0, 5792, '\P{^Blk=__Ogham}', "");
-    Error('\p{Is_Block=	/a/Ogham}');
-    Error('\P{Is_Block=	/a/Ogham}');
+    Error('\p{Is_Block=-	Ogham:=}');
+    Error('\P{Is_Block=-	Ogham:=}');
     Expect(1, 5791, '\p{Is_Block=ogham}', "");
     Expect(0, 5791, '\p{^Is_Block=ogham}', "");
     Expect(0, 5791, '\P{Is_Block=ogham}', "");
@@ -21260,16 +21828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5792, '\p{^Is_Block=ogham}', "");
     Expect(1, 5792, '\P{Is_Block=ogham}', "");
     Expect(0, 5792, '\P{^Is_Block=ogham}', "");
-    Expect(1, 5791, '\p{Is_Block: -	ogham}', "");
-    Expect(0, 5791, '\p{^Is_Block: -	ogham}', "");
-    Expect(0, 5791, '\P{Is_Block: -	ogham}', "");
-    Expect(1, 5791, '\P{^Is_Block: -	ogham}', "");
-    Expect(0, 5792, '\p{Is_Block: -	ogham}', "");
-    Expect(1, 5792, '\p{^Is_Block: -	ogham}', "");
-    Expect(1, 5792, '\P{Is_Block: -	ogham}', "");
-    Expect(0, 5792, '\P{^Is_Block: -	ogham}', "");
-    Error('\p{Is_Blk=:=Ogham}');
-    Error('\P{Is_Blk=:=Ogham}');
+    Expect(1, 5791, '\p{Is_Block=		Ogham}', "");
+    Expect(0, 5791, '\p{^Is_Block=		Ogham}', "");
+    Expect(0, 5791, '\P{Is_Block=		Ogham}', "");
+    Expect(1, 5791, '\P{^Is_Block=		Ogham}', "");
+    Expect(0, 5792, '\p{Is_Block=		Ogham}', "");
+    Expect(1, 5792, '\p{^Is_Block=		Ogham}', "");
+    Expect(1, 5792, '\P{Is_Block=		Ogham}', "");
+    Expect(0, 5792, '\P{^Is_Block=		Ogham}', "");
+    Error('\p{Is_Blk= Ogham/a/}');
+    Error('\P{Is_Blk= Ogham/a/}');
     Expect(1, 5791, '\p{Is_Blk=ogham}', "");
     Expect(0, 5791, '\p{^Is_Blk=ogham}', "");
     Expect(0, 5791, '\P{Is_Blk=ogham}', "");
@@ -21278,16 +21846,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5792, '\p{^Is_Blk=ogham}', "");
     Expect(1, 5792, '\P{Is_Blk=ogham}', "");
     Expect(0, 5792, '\P{^Is_Blk=ogham}', "");
-    Expect(1, 5791, '\p{Is_Blk=_	Ogham}', "");
-    Expect(0, 5791, '\p{^Is_Blk=_	Ogham}', "");
-    Expect(0, 5791, '\P{Is_Blk=_	Ogham}', "");
-    Expect(1, 5791, '\P{^Is_Blk=_	Ogham}', "");
-    Expect(0, 5792, '\p{Is_Blk=_	Ogham}', "");
-    Expect(1, 5792, '\p{^Is_Blk=_	Ogham}', "");
-    Expect(1, 5792, '\P{Is_Blk=_	Ogham}', "");
-    Expect(0, 5792, '\P{^Is_Blk=_	Ogham}', "");
-    Error('\p{Block=_ Ol_Chiki:=}');
-    Error('\P{Block=_ Ol_Chiki:=}');
+    Expect(1, 5791, '\p{Is_Blk: -Ogham}', "");
+    Expect(0, 5791, '\p{^Is_Blk: -Ogham}', "");
+    Expect(0, 5791, '\P{Is_Blk: -Ogham}', "");
+    Expect(1, 5791, '\P{^Is_Blk: -Ogham}', "");
+    Expect(0, 5792, '\p{Is_Blk: -Ogham}', "");
+    Expect(1, 5792, '\p{^Is_Blk: -Ogham}', "");
+    Expect(1, 5792, '\P{Is_Blk: -Ogham}', "");
+    Expect(0, 5792, '\P{^Is_Blk: -Ogham}', "");
+    Error('\p{Block:	:=	OL_Chiki}');
+    Error('\P{Block:	:=	OL_Chiki}');
     Expect(1, 7295, '\p{Block=:\AOl_Chiki\z:}', "");;
     Expect(0, 7296, '\p{Block=:\AOl_Chiki\z:}', "");;
     Expect(1, 7295, '\p{Block=olchiki}', "");
@@ -21300,16 +21868,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7296, '\P{^Block=olchiki}', "");
     Expect(1, 7295, '\p{Block=:\Aolchiki\z:}', "");;
     Expect(0, 7296, '\p{Block=:\Aolchiki\z:}', "");;
-    Expect(1, 7295, '\p{Block=_ Ol_Chiki}', "");
-    Expect(0, 7295, '\p{^Block=_ Ol_Chiki}', "");
-    Expect(0, 7295, '\P{Block=_ Ol_Chiki}', "");
-    Expect(1, 7295, '\P{^Block=_ Ol_Chiki}', "");
-    Expect(0, 7296, '\p{Block=_ Ol_Chiki}', "");
-    Expect(1, 7296, '\p{^Block=_ Ol_Chiki}', "");
-    Expect(1, 7296, '\P{Block=_ Ol_Chiki}', "");
-    Expect(0, 7296, '\P{^Block=_ Ol_Chiki}', "");
-    Error('\p{Blk=  Ol_CHIKI:=}');
-    Error('\P{Blk=  Ol_CHIKI:=}');
+    Expect(1, 7295, '\p{Block=	 Ol_chiki}', "");
+    Expect(0, 7295, '\p{^Block=	 Ol_chiki}', "");
+    Expect(0, 7295, '\P{Block=	 Ol_chiki}', "");
+    Expect(1, 7295, '\P{^Block=	 Ol_chiki}', "");
+    Expect(0, 7296, '\p{Block=	 Ol_chiki}', "");
+    Expect(1, 7296, '\p{^Block=	 Ol_chiki}', "");
+    Expect(1, 7296, '\P{Block=	 Ol_chiki}', "");
+    Expect(0, 7296, '\P{^Block=	 Ol_chiki}', "");
+    Error('\p{Blk=:=ol_Chiki}');
+    Error('\P{Blk=:=ol_Chiki}');
     Expect(1, 7295, '\p{Blk=:\AOl_Chiki\z:}', "");;
     Expect(0, 7296, '\p{Blk=:\AOl_Chiki\z:}', "");;
     Expect(1, 7295, '\p{Blk=olchiki}', "");
@@ -21322,16 +21890,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7296, '\P{^Blk=olchiki}', "");
     Expect(1, 7295, '\p{Blk=:\Aolchiki\z:}', "");;
     Expect(0, 7296, '\p{Blk=:\Aolchiki\z:}', "");;
-    Expect(1, 7295, '\p{Blk=_Ol_chiki}', "");
-    Expect(0, 7295, '\p{^Blk=_Ol_chiki}', "");
-    Expect(0, 7295, '\P{Blk=_Ol_chiki}', "");
-    Expect(1, 7295, '\P{^Blk=_Ol_chiki}', "");
-    Expect(0, 7296, '\p{Blk=_Ol_chiki}', "");
-    Expect(1, 7296, '\p{^Blk=_Ol_chiki}', "");
-    Expect(1, 7296, '\P{Blk=_Ol_chiki}', "");
-    Expect(0, 7296, '\P{^Blk=_Ol_chiki}', "");
-    Error('\p{Is_Block=:= _ol_CHIKI}');
-    Error('\P{Is_Block=:= _ol_CHIKI}');
+    Expect(1, 7295, '\p{Blk:_-OL_chiki}', "");
+    Expect(0, 7295, '\p{^Blk:_-OL_chiki}', "");
+    Expect(0, 7295, '\P{Blk:_-OL_chiki}', "");
+    Expect(1, 7295, '\P{^Blk:_-OL_chiki}', "");
+    Expect(0, 7296, '\p{Blk:_-OL_chiki}', "");
+    Expect(1, 7296, '\p{^Blk:_-OL_chiki}', "");
+    Expect(1, 7296, '\P{Blk:_-OL_chiki}', "");
+    Expect(0, 7296, '\P{^Blk:_-OL_chiki}', "");
+    Error('\p{Is_Block=:=_-Ol_chiki}');
+    Error('\P{Is_Block=:=_-Ol_chiki}');
     Expect(1, 7295, '\p{Is_Block=olchiki}', "");
     Expect(0, 7295, '\p{^Is_Block=olchiki}', "");
     Expect(0, 7295, '\P{Is_Block=olchiki}', "");
@@ -21340,34 +21908,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7296, '\p{^Is_Block=olchiki}', "");
     Expect(1, 7296, '\P{Is_Block=olchiki}', "");
     Expect(0, 7296, '\P{^Is_Block=olchiki}', "");
-    Expect(1, 7295, '\p{Is_Block=--ol_chiki}', "");
-    Expect(0, 7295, '\p{^Is_Block=--ol_chiki}', "");
-    Expect(0, 7295, '\P{Is_Block=--ol_chiki}', "");
-    Expect(1, 7295, '\P{^Is_Block=--ol_chiki}', "");
-    Expect(0, 7296, '\p{Is_Block=--ol_chiki}', "");
-    Expect(1, 7296, '\p{^Is_Block=--ol_chiki}', "");
-    Expect(1, 7296, '\P{Is_Block=--ol_chiki}', "");
-    Expect(0, 7296, '\P{^Is_Block=--ol_chiki}', "");
-    Error('\p{Is_Blk=_ ol_chiki:=}');
-    Error('\P{Is_Blk=_ ol_chiki:=}');
-    Expect(1, 7295, '\p{Is_Blk:   olchiki}', "");
-    Expect(0, 7295, '\p{^Is_Blk:   olchiki}', "");
-    Expect(0, 7295, '\P{Is_Blk:   olchiki}', "");
-    Expect(1, 7295, '\P{^Is_Blk:   olchiki}', "");
-    Expect(0, 7296, '\p{Is_Blk:   olchiki}', "");
-    Expect(1, 7296, '\p{^Is_Blk:   olchiki}', "");
-    Expect(1, 7296, '\P{Is_Blk:   olchiki}', "");
-    Expect(0, 7296, '\P{^Is_Blk:   olchiki}', "");
-    Expect(1, 7295, '\p{Is_Blk=--Ol_Chiki}', "");
-    Expect(0, 7295, '\p{^Is_Blk=--Ol_Chiki}', "");
-    Expect(0, 7295, '\P{Is_Blk=--Ol_Chiki}', "");
-    Expect(1, 7295, '\P{^Is_Blk=--Ol_Chiki}', "");
-    Expect(0, 7296, '\p{Is_Blk=--Ol_Chiki}', "");
-    Expect(1, 7296, '\p{^Is_Blk=--Ol_Chiki}', "");
-    Expect(1, 7296, '\P{Is_Blk=--Ol_Chiki}', "");
-    Expect(0, 7296, '\P{^Is_Blk=--Ol_Chiki}', "");
-    Error('\p{Block=	 Old_HUNGARIAN:=}');
-    Error('\P{Block=	 Old_HUNGARIAN:=}');
+    Expect(1, 7295, '\p{Is_Block= -ol_CHIKI}', "");
+    Expect(0, 7295, '\p{^Is_Block= -ol_CHIKI}', "");
+    Expect(0, 7295, '\P{Is_Block= -ol_CHIKI}', "");
+    Expect(1, 7295, '\P{^Is_Block= -ol_CHIKI}', "");
+    Expect(0, 7296, '\p{Is_Block= -ol_CHIKI}', "");
+    Expect(1, 7296, '\p{^Is_Block= -ol_CHIKI}', "");
+    Expect(1, 7296, '\P{Is_Block= -ol_CHIKI}', "");
+    Expect(0, 7296, '\P{^Is_Block= -ol_CHIKI}', "");
+    Error('\p{Is_Blk=-/a/Ol_chiki}');
+    Error('\P{Is_Blk=-/a/Ol_chiki}');
+    Expect(1, 7295, '\p{Is_Blk=olchiki}', "");
+    Expect(0, 7295, '\p{^Is_Blk=olchiki}', "");
+    Expect(0, 7295, '\P{Is_Blk=olchiki}', "");
+    Expect(1, 7295, '\P{^Is_Blk=olchiki}', "");
+    Expect(0, 7296, '\p{Is_Blk=olchiki}', "");
+    Expect(1, 7296, '\p{^Is_Blk=olchiki}', "");
+    Expect(1, 7296, '\P{Is_Blk=olchiki}', "");
+    Expect(0, 7296, '\P{^Is_Blk=olchiki}', "");
+    Expect(1, 7295, '\p{Is_Blk=_Ol_CHIKI}', "");
+    Expect(0, 7295, '\p{^Is_Blk=_Ol_CHIKI}', "");
+    Expect(0, 7295, '\P{Is_Blk=_Ol_CHIKI}', "");
+    Expect(1, 7295, '\P{^Is_Blk=_Ol_CHIKI}', "");
+    Expect(0, 7296, '\p{Is_Blk=_Ol_CHIKI}', "");
+    Expect(1, 7296, '\p{^Is_Blk=_Ol_CHIKI}', "");
+    Expect(1, 7296, '\P{Is_Blk=_Ol_CHIKI}', "");
+    Expect(0, 7296, '\P{^Is_Blk=_Ol_CHIKI}', "");
+    Error('\p{Block=/a/_-old_Hungarian}');
+    Error('\P{Block=/a/_-old_Hungarian}');
     Expect(1, 68863, '\p{Block=:\AOld_Hungarian\z:}', "");;
     Expect(0, 68864, '\p{Block=:\AOld_Hungarian\z:}', "");;
     Expect(1, 68863, '\p{Block=oldhungarian}', "");
@@ -21380,16 +21948,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68864, '\P{^Block=oldhungarian}', "");
     Expect(1, 68863, '\p{Block=:\Aoldhungarian\z:}', "");;
     Expect(0, 68864, '\p{Block=:\Aoldhungarian\z:}', "");;
-    Expect(1, 68863, '\p{Block=--OLD_Hungarian}', "");
-    Expect(0, 68863, '\p{^Block=--OLD_Hungarian}', "");
-    Expect(0, 68863, '\P{Block=--OLD_Hungarian}', "");
-    Expect(1, 68863, '\P{^Block=--OLD_Hungarian}', "");
-    Expect(0, 68864, '\p{Block=--OLD_Hungarian}', "");
-    Expect(1, 68864, '\p{^Block=--OLD_Hungarian}', "");
-    Expect(1, 68864, '\P{Block=--OLD_Hungarian}', "");
-    Expect(0, 68864, '\P{^Block=--OLD_Hungarian}', "");
-    Error('\p{Blk=:=	 Old_Hungarian}');
-    Error('\P{Blk=:=	 Old_Hungarian}');
+    Expect(1, 68863, '\p{Block=_Old_Hungarian}', "");
+    Expect(0, 68863, '\p{^Block=_Old_Hungarian}', "");
+    Expect(0, 68863, '\P{Block=_Old_Hungarian}', "");
+    Expect(1, 68863, '\P{^Block=_Old_Hungarian}', "");
+    Expect(0, 68864, '\p{Block=_Old_Hungarian}', "");
+    Expect(1, 68864, '\p{^Block=_Old_Hungarian}', "");
+    Expect(1, 68864, '\P{Block=_Old_Hungarian}', "");
+    Expect(0, 68864, '\P{^Block=_Old_Hungarian}', "");
+    Error('\p{Blk=/a/_ old_hungarian}');
+    Error('\P{Blk=/a/_ old_hungarian}');
     Expect(1, 68863, '\p{Blk=:\AOld_Hungarian\z:}', "");;
     Expect(0, 68864, '\p{Blk=:\AOld_Hungarian\z:}', "");;
     Expect(1, 68863, '\p{Blk=oldhungarian}', "");
@@ -21402,16 +21970,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68864, '\P{^Blk=oldhungarian}', "");
     Expect(1, 68863, '\p{Blk=:\Aoldhungarian\z:}', "");;
     Expect(0, 68864, '\p{Blk=:\Aoldhungarian\z:}', "");;
-    Expect(1, 68863, '\p{Blk= -old_Hungarian}', "");
-    Expect(0, 68863, '\p{^Blk= -old_Hungarian}', "");
-    Expect(0, 68863, '\P{Blk= -old_Hungarian}', "");
-    Expect(1, 68863, '\P{^Blk= -old_Hungarian}', "");
-    Expect(0, 68864, '\p{Blk= -old_Hungarian}', "");
-    Expect(1, 68864, '\p{^Blk= -old_Hungarian}', "");
-    Expect(1, 68864, '\P{Blk= -old_Hungarian}', "");
-    Expect(0, 68864, '\P{^Blk= -old_Hungarian}', "");
-    Error('\p{Is_Block= OLD_HUNGARIAN/a/}');
-    Error('\P{Is_Block= OLD_HUNGARIAN/a/}');
+    Expect(1, 68863, '\p{Blk=	Old_Hungarian}', "");
+    Expect(0, 68863, '\p{^Blk=	Old_Hungarian}', "");
+    Expect(0, 68863, '\P{Blk=	Old_Hungarian}', "");
+    Expect(1, 68863, '\P{^Blk=	Old_Hungarian}', "");
+    Expect(0, 68864, '\p{Blk=	Old_Hungarian}', "");
+    Expect(1, 68864, '\p{^Blk=	Old_Hungarian}', "");
+    Expect(1, 68864, '\P{Blk=	Old_Hungarian}', "");
+    Expect(0, 68864, '\P{^Blk=	Old_Hungarian}', "");
+    Error('\p{Is_Block=/a/	old_Hungarian}');
+    Error('\P{Is_Block=/a/	old_Hungarian}');
     Expect(1, 68863, '\p{Is_Block=oldhungarian}', "");
     Expect(0, 68863, '\p{^Is_Block=oldhungarian}', "");
     Expect(0, 68863, '\P{Is_Block=oldhungarian}', "");
@@ -21420,34 +21988,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68864, '\p{^Is_Block=oldhungarian}', "");
     Expect(1, 68864, '\P{Is_Block=oldhungarian}', "");
     Expect(0, 68864, '\P{^Is_Block=oldhungarian}', "");
-    Expect(1, 68863, '\p{Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(0, 68863, '\p{^Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(0, 68863, '\P{Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(1, 68863, '\P{^Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(0, 68864, '\p{Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(1, 68864, '\p{^Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(1, 68864, '\P{Is_Block=-_OLD_HUNGARIAN}', "");
-    Expect(0, 68864, '\P{^Is_Block=-_OLD_HUNGARIAN}', "");
-    Error('\p{Is_Blk=	 Old_Hungarian/a/}');
-    Error('\P{Is_Blk=	 Old_Hungarian/a/}');
-    Expect(1, 68863, '\p{Is_Blk:oldhungarian}', "");
-    Expect(0, 68863, '\p{^Is_Blk:oldhungarian}', "");
-    Expect(0, 68863, '\P{Is_Blk:oldhungarian}', "");
-    Expect(1, 68863, '\P{^Is_Blk:oldhungarian}', "");
-    Expect(0, 68864, '\p{Is_Blk:oldhungarian}', "");
-    Expect(1, 68864, '\p{^Is_Blk:oldhungarian}', "");
-    Expect(1, 68864, '\P{Is_Blk:oldhungarian}', "");
-    Expect(0, 68864, '\P{^Is_Blk:oldhungarian}', "");
-    Expect(1, 68863, '\p{Is_Blk=--Old_Hungarian}', "");
-    Expect(0, 68863, '\p{^Is_Blk=--Old_Hungarian}', "");
-    Expect(0, 68863, '\P{Is_Blk=--Old_Hungarian}', "");
-    Expect(1, 68863, '\P{^Is_Blk=--Old_Hungarian}', "");
-    Expect(0, 68864, '\p{Is_Blk=--Old_Hungarian}', "");
-    Expect(1, 68864, '\p{^Is_Blk=--Old_Hungarian}', "");
-    Expect(1, 68864, '\P{Is_Blk=--Old_Hungarian}', "");
-    Expect(0, 68864, '\P{^Is_Blk=--Old_Hungarian}', "");
-    Error('\p{Block=:=Old_italic}');
-    Error('\P{Block=:=Old_italic}');
+    Expect(1, 68863, '\p{Is_Block=_OLD_hungarian}', "");
+    Expect(0, 68863, '\p{^Is_Block=_OLD_hungarian}', "");
+    Expect(0, 68863, '\P{Is_Block=_OLD_hungarian}', "");
+    Expect(1, 68863, '\P{^Is_Block=_OLD_hungarian}', "");
+    Expect(0, 68864, '\p{Is_Block=_OLD_hungarian}', "");
+    Expect(1, 68864, '\p{^Is_Block=_OLD_hungarian}', "");
+    Expect(1, 68864, '\P{Is_Block=_OLD_hungarian}', "");
+    Expect(0, 68864, '\P{^Is_Block=_OLD_hungarian}', "");
+    Error('\p{Is_Blk:	/a/- OLD_hungarian}');
+    Error('\P{Is_Blk:	/a/- OLD_hungarian}');
+    Expect(1, 68863, '\p{Is_Blk=oldhungarian}', "");
+    Expect(0, 68863, '\p{^Is_Blk=oldhungarian}', "");
+    Expect(0, 68863, '\P{Is_Blk=oldhungarian}', "");
+    Expect(1, 68863, '\P{^Is_Blk=oldhungarian}', "");
+    Expect(0, 68864, '\p{Is_Blk=oldhungarian}', "");
+    Expect(1, 68864, '\p{^Is_Blk=oldhungarian}', "");
+    Expect(1, 68864, '\P{Is_Blk=oldhungarian}', "");
+    Expect(0, 68864, '\P{^Is_Blk=oldhungarian}', "");
+    Expect(1, 68863, '\p{Is_Blk=-_Old_Hungarian}', "");
+    Expect(0, 68863, '\p{^Is_Blk=-_Old_Hungarian}', "");
+    Expect(0, 68863, '\P{Is_Blk=-_Old_Hungarian}', "");
+    Expect(1, 68863, '\P{^Is_Blk=-_Old_Hungarian}', "");
+    Expect(0, 68864, '\p{Is_Blk=-_Old_Hungarian}', "");
+    Expect(1, 68864, '\p{^Is_Blk=-_Old_Hungarian}', "");
+    Expect(1, 68864, '\P{Is_Blk=-_Old_Hungarian}', "");
+    Expect(0, 68864, '\P{^Is_Blk=-_Old_Hungarian}', "");
+    Error('\p{Block=:=		old_ITALIC}');
+    Error('\P{Block=:=		old_ITALIC}');
     Expect(1, 66351, '\p{Block=:\AOld_Italic\z:}', "");;
     Expect(0, 66352, '\p{Block=:\AOld_Italic\z:}', "");;
     Expect(1, 66351, '\p{Block=olditalic}', "");
@@ -21460,16 +22028,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66352, '\P{^Block=olditalic}', "");
     Expect(1, 66351, '\p{Block=:\Aolditalic\z:}', "");;
     Expect(0, 66352, '\p{Block=:\Aolditalic\z:}', "");;
-    Expect(1, 66351, '\p{Block=_	old_Italic}', "");
-    Expect(0, 66351, '\p{^Block=_	old_Italic}', "");
-    Expect(0, 66351, '\P{Block=_	old_Italic}', "");
-    Expect(1, 66351, '\P{^Block=_	old_Italic}', "");
-    Expect(0, 66352, '\p{Block=_	old_Italic}', "");
-    Expect(1, 66352, '\p{^Block=_	old_Italic}', "");
-    Expect(1, 66352, '\P{Block=_	old_Italic}', "");
-    Expect(0, 66352, '\P{^Block=_	old_Italic}', "");
-    Error('\p{Blk=	/a/OLD_italic}');
-    Error('\P{Blk=	/a/OLD_italic}');
+    Expect(1, 66351, '\p{Block=_ Old_Italic}', "");
+    Expect(0, 66351, '\p{^Block=_ Old_Italic}', "");
+    Expect(0, 66351, '\P{Block=_ Old_Italic}', "");
+    Expect(1, 66351, '\P{^Block=_ Old_Italic}', "");
+    Expect(0, 66352, '\p{Block=_ Old_Italic}', "");
+    Expect(1, 66352, '\p{^Block=_ Old_Italic}', "");
+    Expect(1, 66352, '\P{Block=_ Old_Italic}', "");
+    Expect(0, 66352, '\P{^Block=_ Old_Italic}', "");
+    Error('\p{Blk= :=OLD_Italic}');
+    Error('\P{Blk= :=OLD_Italic}');
     Expect(1, 66351, '\p{Blk=:\AOld_Italic\z:}', "");;
     Expect(0, 66352, '\p{Blk=:\AOld_Italic\z:}', "");;
     Expect(1, 66351, '\p{Blk=olditalic}', "");
@@ -21482,16 +22050,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66352, '\P{^Blk=olditalic}', "");
     Expect(1, 66351, '\p{Blk=:\Aolditalic\z:}', "");;
     Expect(0, 66352, '\p{Blk=:\Aolditalic\z:}', "");;
-    Expect(1, 66351, '\p{Blk=- Old_Italic}', "");
-    Expect(0, 66351, '\p{^Blk=- Old_Italic}', "");
-    Expect(0, 66351, '\P{Blk=- Old_Italic}', "");
-    Expect(1, 66351, '\P{^Blk=- Old_Italic}', "");
-    Expect(0, 66352, '\p{Blk=- Old_Italic}', "");
-    Expect(1, 66352, '\p{^Blk=- Old_Italic}', "");
-    Expect(1, 66352, '\P{Blk=- Old_Italic}', "");
-    Expect(0, 66352, '\P{^Blk=- Old_Italic}', "");
-    Error('\p{Is_Block=/a/OLD_italic}');
-    Error('\P{Is_Block=/a/OLD_italic}');
+    Expect(1, 66351, '\p{Blk=--Old_Italic}', "");
+    Expect(0, 66351, '\p{^Blk=--Old_Italic}', "");
+    Expect(0, 66351, '\P{Blk=--Old_Italic}', "");
+    Expect(1, 66351, '\P{^Blk=--Old_Italic}', "");
+    Expect(0, 66352, '\p{Blk=--Old_Italic}', "");
+    Expect(1, 66352, '\p{^Blk=--Old_Italic}', "");
+    Expect(1, 66352, '\P{Blk=--Old_Italic}', "");
+    Expect(0, 66352, '\P{^Blk=--Old_Italic}', "");
+    Error('\p{Is_Block=	/a/Old_italic}');
+    Error('\P{Is_Block=	/a/Old_italic}');
     Expect(1, 66351, '\p{Is_Block=olditalic}', "");
     Expect(0, 66351, '\p{^Is_Block=olditalic}', "");
     Expect(0, 66351, '\P{Is_Block=olditalic}', "");
@@ -21500,16 +22068,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66352, '\p{^Is_Block=olditalic}', "");
     Expect(1, 66352, '\P{Is_Block=olditalic}', "");
     Expect(0, 66352, '\P{^Is_Block=olditalic}', "");
-    Expect(1, 66351, '\p{Is_Block=_	OLD_ITALIC}', "");
-    Expect(0, 66351, '\p{^Is_Block=_	OLD_ITALIC}', "");
-    Expect(0, 66351, '\P{Is_Block=_	OLD_ITALIC}', "");
-    Expect(1, 66351, '\P{^Is_Block=_	OLD_ITALIC}', "");
-    Expect(0, 66352, '\p{Is_Block=_	OLD_ITALIC}', "");
-    Expect(1, 66352, '\p{^Is_Block=_	OLD_ITALIC}', "");
-    Expect(1, 66352, '\P{Is_Block=_	OLD_ITALIC}', "");
-    Expect(0, 66352, '\P{^Is_Block=_	OLD_ITALIC}', "");
-    Error('\p{Is_Blk=_:=old_ITALIC}');
-    Error('\P{Is_Blk=_:=old_ITALIC}');
+    Expect(1, 66351, '\p{Is_Block=-Old_Italic}', "");
+    Expect(0, 66351, '\p{^Is_Block=-Old_Italic}', "");
+    Expect(0, 66351, '\P{Is_Block=-Old_Italic}', "");
+    Expect(1, 66351, '\P{^Is_Block=-Old_Italic}', "");
+    Expect(0, 66352, '\p{Is_Block=-Old_Italic}', "");
+    Expect(1, 66352, '\p{^Is_Block=-Old_Italic}', "");
+    Expect(1, 66352, '\P{Is_Block=-Old_Italic}', "");
+    Expect(0, 66352, '\P{^Is_Block=-Old_Italic}', "");
+    Error('\p{Is_Blk=--Old_Italic/a/}');
+    Error('\P{Is_Blk=--Old_Italic/a/}');
     Expect(1, 66351, '\p{Is_Blk=olditalic}', "");
     Expect(0, 66351, '\p{^Is_Blk=olditalic}', "");
     Expect(0, 66351, '\P{Is_Blk=olditalic}', "");
@@ -21518,16 +22086,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66352, '\p{^Is_Blk=olditalic}', "");
     Expect(1, 66352, '\P{Is_Blk=olditalic}', "");
     Expect(0, 66352, '\P{^Is_Blk=olditalic}', "");
-    Expect(1, 66351, '\p{Is_Blk=	 old_Italic}', "");
-    Expect(0, 66351, '\p{^Is_Blk=	 old_Italic}', "");
-    Expect(0, 66351, '\P{Is_Blk=	 old_Italic}', "");
-    Expect(1, 66351, '\P{^Is_Blk=	 old_Italic}', "");
-    Expect(0, 66352, '\p{Is_Blk=	 old_Italic}', "");
-    Expect(1, 66352, '\p{^Is_Blk=	 old_Italic}', "");
-    Expect(1, 66352, '\P{Is_Blk=	 old_Italic}', "");
-    Expect(0, 66352, '\P{^Is_Blk=	 old_Italic}', "");
-    Error('\p{Block=:= OLD_North_Arabian}');
-    Error('\P{Block=:= OLD_North_Arabian}');
+    Expect(1, 66351, '\p{Is_Blk=	Old_Italic}', "");
+    Expect(0, 66351, '\p{^Is_Blk=	Old_Italic}', "");
+    Expect(0, 66351, '\P{Is_Blk=	Old_Italic}', "");
+    Expect(1, 66351, '\P{^Is_Blk=	Old_Italic}', "");
+    Expect(0, 66352, '\p{Is_Blk=	Old_Italic}', "");
+    Expect(1, 66352, '\p{^Is_Blk=	Old_Italic}', "");
+    Expect(1, 66352, '\P{Is_Blk=	Old_Italic}', "");
+    Expect(0, 66352, '\P{^Is_Blk=	Old_Italic}', "");
+    Error('\p{Block=:=	OLD_North_arabian}');
+    Error('\P{Block=:=	OLD_North_arabian}');
     Expect(1, 68255, '\p{Block=:\AOld_North_Arabian\z:}', "");;
     Expect(0, 68256, '\p{Block=:\AOld_North_Arabian\z:}', "");;
     Expect(1, 68255, '\p{Block=oldnortharabian}', "");
@@ -21540,16 +22108,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68256, '\P{^Block=oldnortharabian}', "");
     Expect(1, 68255, '\p{Block=:\Aoldnortharabian\z:}', "");;
     Expect(0, 68256, '\p{Block=:\Aoldnortharabian\z:}', "");;
-    Expect(1, 68255, '\p{Block= _old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\p{^Block= _old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\P{Block= _old_NORTH_Arabian}', "");
-    Expect(1, 68255, '\P{^Block= _old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\p{Block= _old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\p{^Block= _old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\P{Block= _old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\P{^Block= _old_NORTH_Arabian}', "");
-    Error('\p{Blk=/a/	-Old_North_arabian}');
-    Error('\P{Blk=/a/	-Old_North_arabian}');
+    Expect(1, 68255, '\p{Block=	 old_North_Arabian}', "");
+    Expect(0, 68255, '\p{^Block=	 old_North_Arabian}', "");
+    Expect(0, 68255, '\P{Block=	 old_North_Arabian}', "");
+    Expect(1, 68255, '\P{^Block=	 old_North_Arabian}', "");
+    Expect(0, 68256, '\p{Block=	 old_North_Arabian}', "");
+    Expect(1, 68256, '\p{^Block=	 old_North_Arabian}', "");
+    Expect(1, 68256, '\P{Block=	 old_North_Arabian}', "");
+    Expect(0, 68256, '\P{^Block=	 old_North_Arabian}', "");
+    Error('\p{Blk=_old_North_Arabian/a/}');
+    Error('\P{Blk=_old_North_Arabian/a/}');
     Expect(1, 68255, '\p{Blk=:\AOld_North_Arabian\z:}', "");;
     Expect(0, 68256, '\p{Blk=:\AOld_North_Arabian\z:}', "");;
     Expect(1, 68255, '\p{Blk=oldnortharabian}', "");
@@ -21562,34 +22130,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68256, '\P{^Blk=oldnortharabian}', "");
     Expect(1, 68255, '\p{Blk=:\Aoldnortharabian\z:}', "");;
     Expect(0, 68256, '\p{Blk=:\Aoldnortharabian\z:}', "");;
-    Expect(1, 68255, '\p{Blk=	 Old_north_Arabian}', "");
-    Expect(0, 68255, '\p{^Blk=	 Old_north_Arabian}', "");
-    Expect(0, 68255, '\P{Blk=	 Old_north_Arabian}', "");
-    Expect(1, 68255, '\P{^Blk=	 Old_north_Arabian}', "");
-    Expect(0, 68256, '\p{Blk=	 Old_north_Arabian}', "");
-    Expect(1, 68256, '\p{^Blk=	 Old_north_Arabian}', "");
-    Expect(1, 68256, '\P{Blk=	 Old_north_Arabian}', "");
-    Expect(0, 68256, '\P{^Blk=	 Old_north_Arabian}', "");
-    Error('\p{Is_Block=OLD_North_ARABIAN/a/}');
-    Error('\P{Is_Block=OLD_North_ARABIAN/a/}');
-    Expect(1, 68255, '\p{Is_Block=oldnortharabian}', "");
-    Expect(0, 68255, '\p{^Is_Block=oldnortharabian}', "");
-    Expect(0, 68255, '\P{Is_Block=oldnortharabian}', "");
-    Expect(1, 68255, '\P{^Is_Block=oldnortharabian}', "");
-    Expect(0, 68256, '\p{Is_Block=oldnortharabian}', "");
-    Expect(1, 68256, '\p{^Is_Block=oldnortharabian}', "");
-    Expect(1, 68256, '\P{Is_Block=oldnortharabian}', "");
-    Expect(0, 68256, '\P{^Is_Block=oldnortharabian}', "");
-    Expect(1, 68255, '\p{Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\p{^Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\P{Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(1, 68255, '\P{^Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\p{Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\p{^Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\P{Is_Block=--Old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\P{^Is_Block=--Old_NORTH_Arabian}', "");
-    Error('\p{Is_Blk=:=	old_North_Arabian}');
-    Error('\P{Is_Blk=:=	old_North_Arabian}');
+    Expect(1, 68255, '\p{Blk=_	Old_NORTH_Arabian}', "");
+    Expect(0, 68255, '\p{^Blk=_	Old_NORTH_Arabian}', "");
+    Expect(0, 68255, '\P{Blk=_	Old_NORTH_Arabian}', "");
+    Expect(1, 68255, '\P{^Blk=_	Old_NORTH_Arabian}', "");
+    Expect(0, 68256, '\p{Blk=_	Old_NORTH_Arabian}', "");
+    Expect(1, 68256, '\p{^Blk=_	Old_NORTH_Arabian}', "");
+    Expect(1, 68256, '\P{Blk=_	Old_NORTH_Arabian}', "");
+    Expect(0, 68256, '\P{^Blk=_	Old_NORTH_Arabian}', "");
+    Error('\p{Is_Block=_ Old_North_Arabian:=}');
+    Error('\P{Is_Block=_ Old_North_Arabian:=}');
+    Expect(1, 68255, '\p{Is_Block:	oldnortharabian}', "");
+    Expect(0, 68255, '\p{^Is_Block:	oldnortharabian}', "");
+    Expect(0, 68255, '\P{Is_Block:	oldnortharabian}', "");
+    Expect(1, 68255, '\P{^Is_Block:	oldnortharabian}', "");
+    Expect(0, 68256, '\p{Is_Block:	oldnortharabian}', "");
+    Expect(1, 68256, '\p{^Is_Block:	oldnortharabian}', "");
+    Expect(1, 68256, '\P{Is_Block:	oldnortharabian}', "");
+    Expect(0, 68256, '\P{^Is_Block:	oldnortharabian}', "");
+    Expect(1, 68255, '\p{Is_Block= 	Old_North_Arabian}', "");
+    Expect(0, 68255, '\p{^Is_Block= 	Old_North_Arabian}', "");
+    Expect(0, 68255, '\P{Is_Block= 	Old_North_Arabian}', "");
+    Expect(1, 68255, '\P{^Is_Block= 	Old_North_Arabian}', "");
+    Expect(0, 68256, '\p{Is_Block= 	Old_North_Arabian}', "");
+    Expect(1, 68256, '\p{^Is_Block= 	Old_North_Arabian}', "");
+    Expect(1, 68256, '\P{Is_Block= 	Old_North_Arabian}', "");
+    Expect(0, 68256, '\P{^Is_Block= 	Old_North_Arabian}', "");
+    Error('\p{Is_Blk=:=_-old_north_Arabian}');
+    Error('\P{Is_Blk=:=_-old_north_Arabian}');
     Expect(1, 68255, '\p{Is_Blk=oldnortharabian}', "");
     Expect(0, 68255, '\p{^Is_Blk=oldnortharabian}', "");
     Expect(0, 68255, '\P{Is_Blk=oldnortharabian}', "");
@@ -21598,38 +22166,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68256, '\p{^Is_Blk=oldnortharabian}', "");
     Expect(1, 68256, '\P{Is_Blk=oldnortharabian}', "");
     Expect(0, 68256, '\P{^Is_Blk=oldnortharabian}', "");
-    Expect(1, 68255, '\p{Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\p{^Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\P{Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(1, 68255, '\P{^Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\p{Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\p{^Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\P{Is_Blk=	-Old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\P{^Is_Blk=	-Old_NORTH_Arabian}', "");
-    Error('\p{Block=-old_permic:=}');
-    Error('\P{Block=-old_permic:=}');
+    Expect(1, 68255, '\p{Is_Blk:    -Old_north_Arabian}', "");
+    Expect(0, 68255, '\p{^Is_Blk:    -Old_north_Arabian}', "");
+    Expect(0, 68255, '\P{Is_Blk:    -Old_north_Arabian}', "");
+    Expect(1, 68255, '\P{^Is_Blk:    -Old_north_Arabian}', "");
+    Expect(0, 68256, '\p{Is_Blk:    -Old_north_Arabian}', "");
+    Expect(1, 68256, '\p{^Is_Blk:    -Old_north_Arabian}', "");
+    Expect(1, 68256, '\P{Is_Blk:    -Old_north_Arabian}', "");
+    Expect(0, 68256, '\P{^Is_Blk:    -Old_north_Arabian}', "");
+    Error('\p{Block=	-OLD_Permic:=}');
+    Error('\P{Block=	-OLD_Permic:=}');
     Expect(1, 66431, '\p{Block=:\AOld_Permic\z:}', "");;
     Expect(0, 66432, '\p{Block=:\AOld_Permic\z:}', "");;
-    Expect(1, 66431, '\p{Block=oldpermic}', "");
-    Expect(0, 66431, '\p{^Block=oldpermic}', "");
-    Expect(0, 66431, '\P{Block=oldpermic}', "");
-    Expect(1, 66431, '\P{^Block=oldpermic}', "");
-    Expect(0, 66432, '\p{Block=oldpermic}', "");
-    Expect(1, 66432, '\p{^Block=oldpermic}', "");
-    Expect(1, 66432, '\P{Block=oldpermic}', "");
-    Expect(0, 66432, '\P{^Block=oldpermic}', "");
+    Expect(1, 66431, '\p{Block:   oldpermic}', "");
+    Expect(0, 66431, '\p{^Block:   oldpermic}', "");
+    Expect(0, 66431, '\P{Block:   oldpermic}', "");
+    Expect(1, 66431, '\P{^Block:   oldpermic}', "");
+    Expect(0, 66432, '\p{Block:   oldpermic}', "");
+    Expect(1, 66432, '\p{^Block:   oldpermic}', "");
+    Expect(1, 66432, '\P{Block:   oldpermic}', "");
+    Expect(0, 66432, '\P{^Block:   oldpermic}', "");
     Expect(1, 66431, '\p{Block=:\Aoldpermic\z:}', "");;
     Expect(0, 66432, '\p{Block=:\Aoldpermic\z:}', "");;
-    Expect(1, 66431, '\p{Block: _Old_PERMIC}', "");
-    Expect(0, 66431, '\p{^Block: _Old_PERMIC}', "");
-    Expect(0, 66431, '\P{Block: _Old_PERMIC}', "");
-    Expect(1, 66431, '\P{^Block: _Old_PERMIC}', "");
-    Expect(0, 66432, '\p{Block: _Old_PERMIC}', "");
-    Expect(1, 66432, '\p{^Block: _Old_PERMIC}', "");
-    Expect(1, 66432, '\P{Block: _Old_PERMIC}', "");
-    Expect(0, 66432, '\P{^Block: _Old_PERMIC}', "");
-    Error('\p{Blk=:=		OLD_permic}');
-    Error('\P{Blk=:=		OLD_permic}');
+    Expect(1, 66431, '\p{Block=	-OLD_Permic}', "");
+    Expect(0, 66431, '\p{^Block=	-OLD_Permic}', "");
+    Expect(0, 66431, '\P{Block=	-OLD_Permic}', "");
+    Expect(1, 66431, '\P{^Block=	-OLD_Permic}', "");
+    Expect(0, 66432, '\p{Block=	-OLD_Permic}', "");
+    Expect(1, 66432, '\p{^Block=	-OLD_Permic}', "");
+    Expect(1, 66432, '\P{Block=	-OLD_Permic}', "");
+    Expect(0, 66432, '\P{^Block=	-OLD_Permic}', "");
+    Error('\p{Blk=/a/_	Old_PERMIC}');
+    Error('\P{Blk=/a/_	Old_PERMIC}');
     Expect(1, 66431, '\p{Blk=:\AOld_Permic\z:}', "");;
     Expect(0, 66432, '\p{Blk=:\AOld_Permic\z:}', "");;
     Expect(1, 66431, '\p{Blk=oldpermic}', "");
@@ -21642,16 +22210,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66432, '\P{^Blk=oldpermic}', "");
     Expect(1, 66431, '\p{Blk=:\Aoldpermic\z:}', "");;
     Expect(0, 66432, '\p{Blk=:\Aoldpermic\z:}', "");;
-    Expect(1, 66431, '\p{Blk=--Old_Permic}', "");
-    Expect(0, 66431, '\p{^Blk=--Old_Permic}', "");
-    Expect(0, 66431, '\P{Blk=--Old_Permic}', "");
-    Expect(1, 66431, '\P{^Blk=--Old_Permic}', "");
-    Expect(0, 66432, '\p{Blk=--Old_Permic}', "");
-    Expect(1, 66432, '\p{^Blk=--Old_Permic}', "");
-    Expect(1, 66432, '\P{Blk=--Old_Permic}', "");
-    Expect(0, 66432, '\P{^Blk=--Old_Permic}', "");
-    Error('\p{Is_Block=:=-_OLD_permic}');
-    Error('\P{Is_Block=:=-_OLD_permic}');
+    Expect(1, 66431, '\p{Blk=	_Old_Permic}', "");
+    Expect(0, 66431, '\p{^Blk=	_Old_Permic}', "");
+    Expect(0, 66431, '\P{Blk=	_Old_Permic}', "");
+    Expect(1, 66431, '\P{^Blk=	_Old_Permic}', "");
+    Expect(0, 66432, '\p{Blk=	_Old_Permic}', "");
+    Expect(1, 66432, '\p{^Blk=	_Old_Permic}', "");
+    Expect(1, 66432, '\P{Blk=	_Old_Permic}', "");
+    Expect(0, 66432, '\P{^Blk=	_Old_Permic}', "");
+    Error('\p{Is_Block=	 OLD_Permic/a/}');
+    Error('\P{Is_Block=	 OLD_Permic/a/}');
     Expect(1, 66431, '\p{Is_Block=oldpermic}', "");
     Expect(0, 66431, '\p{^Is_Block=oldpermic}', "");
     Expect(0, 66431, '\P{Is_Block=oldpermic}', "");
@@ -21660,16 +22228,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66432, '\p{^Is_Block=oldpermic}', "");
     Expect(1, 66432, '\P{Is_Block=oldpermic}', "");
     Expect(0, 66432, '\P{^Is_Block=oldpermic}', "");
-    Expect(1, 66431, '\p{Is_Block=- old_Permic}', "");
-    Expect(0, 66431, '\p{^Is_Block=- old_Permic}', "");
-    Expect(0, 66431, '\P{Is_Block=- old_Permic}', "");
-    Expect(1, 66431, '\P{^Is_Block=- old_Permic}', "");
-    Expect(0, 66432, '\p{Is_Block=- old_Permic}', "");
-    Expect(1, 66432, '\p{^Is_Block=- old_Permic}', "");
-    Expect(1, 66432, '\P{Is_Block=- old_Permic}', "");
-    Expect(0, 66432, '\P{^Is_Block=- old_Permic}', "");
-    Error('\p{Is_Blk=--OLD_Permic:=}');
-    Error('\P{Is_Blk=--OLD_Permic:=}');
+    Expect(1, 66431, '\p{Is_Block=--Old_PERMIC}', "");
+    Expect(0, 66431, '\p{^Is_Block=--Old_PERMIC}', "");
+    Expect(0, 66431, '\P{Is_Block=--Old_PERMIC}', "");
+    Expect(1, 66431, '\P{^Is_Block=--Old_PERMIC}', "");
+    Expect(0, 66432, '\p{Is_Block=--Old_PERMIC}', "");
+    Expect(1, 66432, '\p{^Is_Block=--Old_PERMIC}', "");
+    Expect(1, 66432, '\P{Is_Block=--Old_PERMIC}', "");
+    Expect(0, 66432, '\P{^Is_Block=--Old_PERMIC}', "");
+    Error('\p{Is_Blk=-:=old_PERMIC}');
+    Error('\P{Is_Blk=-:=old_PERMIC}');
     Expect(1, 66431, '\p{Is_Blk=oldpermic}', "");
     Expect(0, 66431, '\p{^Is_Blk=oldpermic}', "");
     Expect(0, 66431, '\P{Is_Blk=oldpermic}', "");
@@ -21678,16 +22246,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66432, '\p{^Is_Blk=oldpermic}', "");
     Expect(1, 66432, '\P{Is_Blk=oldpermic}', "");
     Expect(0, 66432, '\P{^Is_Blk=oldpermic}', "");
-    Expect(1, 66431, '\p{Is_Blk= _Old_permic}', "");
-    Expect(0, 66431, '\p{^Is_Blk= _Old_permic}', "");
-    Expect(0, 66431, '\P{Is_Blk= _Old_permic}', "");
-    Expect(1, 66431, '\P{^Is_Blk= _Old_permic}', "");
-    Expect(0, 66432, '\p{Is_Blk= _Old_permic}', "");
-    Expect(1, 66432, '\p{^Is_Blk= _Old_permic}', "");
-    Expect(1, 66432, '\P{Is_Blk= _Old_permic}', "");
-    Expect(0, 66432, '\P{^Is_Blk= _Old_permic}', "");
-    Error('\p{Block: -old_persian:=}');
-    Error('\P{Block: -old_persian:=}');
+    Expect(1, 66431, '\p{Is_Blk:   _old_Permic}', "");
+    Expect(0, 66431, '\p{^Is_Blk:   _old_Permic}', "");
+    Expect(0, 66431, '\P{Is_Blk:   _old_Permic}', "");
+    Expect(1, 66431, '\P{^Is_Blk:   _old_Permic}', "");
+    Expect(0, 66432, '\p{Is_Blk:   _old_Permic}', "");
+    Expect(1, 66432, '\p{^Is_Blk:   _old_Permic}', "");
+    Expect(1, 66432, '\P{Is_Blk:   _old_Permic}', "");
+    Expect(0, 66432, '\P{^Is_Blk:   _old_Permic}', "");
+    Error('\p{Block=	/a/old_Persian}');
+    Error('\P{Block=	/a/old_Persian}');
     Expect(1, 66527, '\p{Block=:\AOld_Persian\z:}', "");;
     Expect(0, 66528, '\p{Block=:\AOld_Persian\z:}', "");;
     Expect(1, 66527, '\p{Block=oldpersian}', "");
@@ -21700,16 +22268,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66528, '\P{^Block=oldpersian}', "");
     Expect(1, 66527, '\p{Block=:\Aoldpersian\z:}', "");;
     Expect(0, 66528, '\p{Block=:\Aoldpersian\z:}', "");;
-    Expect(1, 66527, '\p{Block=	OLD_persian}', "");
-    Expect(0, 66527, '\p{^Block=	OLD_persian}', "");
-    Expect(0, 66527, '\P{Block=	OLD_persian}', "");
-    Expect(1, 66527, '\P{^Block=	OLD_persian}', "");
-    Expect(0, 66528, '\p{Block=	OLD_persian}', "");
-    Expect(1, 66528, '\p{^Block=	OLD_persian}', "");
-    Expect(1, 66528, '\P{Block=	OLD_persian}', "");
-    Expect(0, 66528, '\P{^Block=	OLD_persian}', "");
-    Error('\p{Blk=/a/-old_PERSIAN}');
-    Error('\P{Blk=/a/-old_PERSIAN}');
+    Expect(1, 66527, '\p{Block=_Old_PERSIAN}', "");
+    Expect(0, 66527, '\p{^Block=_Old_PERSIAN}', "");
+    Expect(0, 66527, '\P{Block=_Old_PERSIAN}', "");
+    Expect(1, 66527, '\P{^Block=_Old_PERSIAN}', "");
+    Expect(0, 66528, '\p{Block=_Old_PERSIAN}', "");
+    Expect(1, 66528, '\p{^Block=_Old_PERSIAN}', "");
+    Expect(1, 66528, '\P{Block=_Old_PERSIAN}', "");
+    Expect(0, 66528, '\P{^Block=_Old_PERSIAN}', "");
+    Error('\p{Blk=-:=Old_Persian}');
+    Error('\P{Blk=-:=Old_Persian}');
     Expect(1, 66527, '\p{Blk=:\AOld_Persian\z:}', "");;
     Expect(0, 66528, '\p{Blk=:\AOld_Persian\z:}', "");;
     Expect(1, 66527, '\p{Blk=oldpersian}', "");
@@ -21722,16 +22290,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66528, '\P{^Blk=oldpersian}', "");
     Expect(1, 66527, '\p{Blk=:\Aoldpersian\z:}', "");;
     Expect(0, 66528, '\p{Blk=:\Aoldpersian\z:}', "");;
-    Expect(1, 66527, '\p{Blk=Old_persian}', "");
-    Expect(0, 66527, '\p{^Blk=Old_persian}', "");
-    Expect(0, 66527, '\P{Blk=Old_persian}', "");
-    Expect(1, 66527, '\P{^Blk=Old_persian}', "");
-    Expect(0, 66528, '\p{Blk=Old_persian}', "");
-    Expect(1, 66528, '\p{^Blk=Old_persian}', "");
-    Expect(1, 66528, '\P{Blk=Old_persian}', "");
-    Expect(0, 66528, '\P{^Blk=Old_persian}', "");
-    Error('\p{Is_Block=/a/-OLD_PERSIAN}');
-    Error('\P{Is_Block=/a/-OLD_PERSIAN}');
+    Expect(1, 66527, '\p{Blk=Old_Persian}', "");
+    Expect(0, 66527, '\p{^Blk=Old_Persian}', "");
+    Expect(0, 66527, '\P{Blk=Old_Persian}', "");
+    Expect(1, 66527, '\P{^Blk=Old_Persian}', "");
+    Expect(0, 66528, '\p{Blk=Old_Persian}', "");
+    Expect(1, 66528, '\p{^Blk=Old_Persian}', "");
+    Expect(1, 66528, '\P{Blk=Old_Persian}', "");
+    Expect(0, 66528, '\P{^Blk=Old_Persian}', "");
+    Error('\p{Is_Block=:=-_OLD_Persian}');
+    Error('\P{Is_Block=:=-_OLD_Persian}');
     Expect(1, 66527, '\p{Is_Block=oldpersian}', "");
     Expect(0, 66527, '\p{^Is_Block=oldpersian}', "");
     Expect(0, 66527, '\P{Is_Block=oldpersian}', "");
@@ -21740,34 +22308,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66528, '\p{^Is_Block=oldpersian}', "");
     Expect(1, 66528, '\P{Is_Block=oldpersian}', "");
     Expect(0, 66528, '\P{^Is_Block=oldpersian}', "");
-    Expect(1, 66527, '\p{Is_Block= _Old_Persian}', "");
-    Expect(0, 66527, '\p{^Is_Block= _Old_Persian}', "");
-    Expect(0, 66527, '\P{Is_Block= _Old_Persian}', "");
-    Expect(1, 66527, '\P{^Is_Block= _Old_Persian}', "");
-    Expect(0, 66528, '\p{Is_Block= _Old_Persian}', "");
-    Expect(1, 66528, '\p{^Is_Block= _Old_Persian}', "");
-    Expect(1, 66528, '\P{Is_Block= _Old_Persian}', "");
-    Expect(0, 66528, '\P{^Is_Block= _Old_Persian}', "");
-    Error('\p{Is_Blk=/a/	_OLD_Persian}');
-    Error('\P{Is_Blk=/a/	_OLD_Persian}');
-    Expect(1, 66527, '\p{Is_Blk:oldpersian}', "");
-    Expect(0, 66527, '\p{^Is_Blk:oldpersian}', "");
-    Expect(0, 66527, '\P{Is_Blk:oldpersian}', "");
-    Expect(1, 66527, '\P{^Is_Blk:oldpersian}', "");
-    Expect(0, 66528, '\p{Is_Blk:oldpersian}', "");
-    Expect(1, 66528, '\p{^Is_Blk:oldpersian}', "");
-    Expect(1, 66528, '\P{Is_Blk:oldpersian}', "");
-    Expect(0, 66528, '\P{^Is_Blk:oldpersian}', "");
-    Expect(1, 66527, '\p{Is_Blk=_ Old_Persian}', "");
-    Expect(0, 66527, '\p{^Is_Blk=_ Old_Persian}', "");
-    Expect(0, 66527, '\P{Is_Blk=_ Old_Persian}', "");
-    Expect(1, 66527, '\P{^Is_Blk=_ Old_Persian}', "");
-    Expect(0, 66528, '\p{Is_Blk=_ Old_Persian}', "");
-    Expect(1, 66528, '\p{^Is_Blk=_ Old_Persian}', "");
-    Expect(1, 66528, '\P{Is_Blk=_ Old_Persian}', "");
-    Expect(0, 66528, '\P{^Is_Blk=_ Old_Persian}', "");
-    Error('\p{Block=/a/ -Old_sogdian}');
-    Error('\P{Block=/a/ -Old_sogdian}');
+    Expect(1, 66527, '\p{Is_Block=- old_PERSIAN}', "");
+    Expect(0, 66527, '\p{^Is_Block=- old_PERSIAN}', "");
+    Expect(0, 66527, '\P{Is_Block=- old_PERSIAN}', "");
+    Expect(1, 66527, '\P{^Is_Block=- old_PERSIAN}', "");
+    Expect(0, 66528, '\p{Is_Block=- old_PERSIAN}', "");
+    Expect(1, 66528, '\p{^Is_Block=- old_PERSIAN}', "");
+    Expect(1, 66528, '\P{Is_Block=- old_PERSIAN}', "");
+    Expect(0, 66528, '\P{^Is_Block=- old_PERSIAN}', "");
+    Error('\p{Is_Blk=:= 	Old_Persian}');
+    Error('\P{Is_Blk=:= 	Old_Persian}');
+    Expect(1, 66527, '\p{Is_Blk=oldpersian}', "");
+    Expect(0, 66527, '\p{^Is_Blk=oldpersian}', "");
+    Expect(0, 66527, '\P{Is_Blk=oldpersian}', "");
+    Expect(1, 66527, '\P{^Is_Blk=oldpersian}', "");
+    Expect(0, 66528, '\p{Is_Blk=oldpersian}', "");
+    Expect(1, 66528, '\p{^Is_Blk=oldpersian}', "");
+    Expect(1, 66528, '\P{Is_Blk=oldpersian}', "");
+    Expect(0, 66528, '\P{^Is_Blk=oldpersian}', "");
+    Expect(1, 66527, '\p{Is_Blk=_old_Persian}', "");
+    Expect(0, 66527, '\p{^Is_Blk=_old_Persian}', "");
+    Expect(0, 66527, '\P{Is_Blk=_old_Persian}', "");
+    Expect(1, 66527, '\P{^Is_Blk=_old_Persian}', "");
+    Expect(0, 66528, '\p{Is_Blk=_old_Persian}', "");
+    Expect(1, 66528, '\p{^Is_Blk=_old_Persian}', "");
+    Expect(1, 66528, '\P{Is_Blk=_old_Persian}', "");
+    Expect(0, 66528, '\P{^Is_Blk=_old_Persian}', "");
+    Error('\p{Block=/a/ _old_sogdian}');
+    Error('\P{Block=/a/ _old_sogdian}');
     Expect(1, 69423, '\p{Block=:\AOld_Sogdian\z:}', "");;
     Expect(0, 69424, '\p{Block=:\AOld_Sogdian\z:}', "");;
     Expect(1, 69423, '\p{Block=oldsogdian}', "");
@@ -21780,16 +22348,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69424, '\P{^Block=oldsogdian}', "");
     Expect(1, 69423, '\p{Block=:\Aoldsogdian\z:}', "");;
     Expect(0, 69424, '\p{Block=:\Aoldsogdian\z:}', "");;
-    Expect(1, 69423, '\p{Block=_	OLD_sogdian}', "");
-    Expect(0, 69423, '\p{^Block=_	OLD_sogdian}', "");
-    Expect(0, 69423, '\P{Block=_	OLD_sogdian}', "");
-    Expect(1, 69423, '\P{^Block=_	OLD_sogdian}', "");
-    Expect(0, 69424, '\p{Block=_	OLD_sogdian}', "");
-    Expect(1, 69424, '\p{^Block=_	OLD_sogdian}', "");
-    Expect(1, 69424, '\P{Block=_	OLD_sogdian}', "");
-    Expect(0, 69424, '\P{^Block=_	OLD_sogdian}', "");
-    Error('\p{Blk=/a/	-old_sogdian}');
-    Error('\P{Blk=/a/	-old_sogdian}');
+    Expect(1, 69423, '\p{Block=	_OLD_SOGDIAN}', "");
+    Expect(0, 69423, '\p{^Block=	_OLD_SOGDIAN}', "");
+    Expect(0, 69423, '\P{Block=	_OLD_SOGDIAN}', "");
+    Expect(1, 69423, '\P{^Block=	_OLD_SOGDIAN}', "");
+    Expect(0, 69424, '\p{Block=	_OLD_SOGDIAN}', "");
+    Expect(1, 69424, '\p{^Block=	_OLD_SOGDIAN}', "");
+    Expect(1, 69424, '\P{Block=	_OLD_SOGDIAN}', "");
+    Expect(0, 69424, '\P{^Block=	_OLD_SOGDIAN}', "");
+    Error('\p{Blk=_/a/Old_Sogdian}');
+    Error('\P{Blk=_/a/Old_Sogdian}');
     Expect(1, 69423, '\p{Blk=:\AOld_Sogdian\z:}', "");;
     Expect(0, 69424, '\p{Blk=:\AOld_Sogdian\z:}', "");;
     Expect(1, 69423, '\p{Blk=oldsogdian}', "");
@@ -21802,16 +22370,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69424, '\P{^Blk=oldsogdian}', "");
     Expect(1, 69423, '\p{Blk=:\Aoldsogdian\z:}', "");;
     Expect(0, 69424, '\p{Blk=:\Aoldsogdian\z:}', "");;
-    Expect(1, 69423, '\p{Blk=	 OLD_Sogdian}', "");
-    Expect(0, 69423, '\p{^Blk=	 OLD_Sogdian}', "");
-    Expect(0, 69423, '\P{Blk=	 OLD_Sogdian}', "");
-    Expect(1, 69423, '\P{^Blk=	 OLD_Sogdian}', "");
-    Expect(0, 69424, '\p{Blk=	 OLD_Sogdian}', "");
-    Expect(1, 69424, '\p{^Blk=	 OLD_Sogdian}', "");
-    Expect(1, 69424, '\P{Blk=	 OLD_Sogdian}', "");
-    Expect(0, 69424, '\P{^Blk=	 OLD_Sogdian}', "");
-    Error('\p{Is_Block=	OLD_SOGDIAN/a/}');
-    Error('\P{Is_Block=	OLD_SOGDIAN/a/}');
+    Expect(1, 69423, '\p{Blk=old_sogdian}', "");
+    Expect(0, 69423, '\p{^Blk=old_sogdian}', "");
+    Expect(0, 69423, '\P{Blk=old_sogdian}', "");
+    Expect(1, 69423, '\P{^Blk=old_sogdian}', "");
+    Expect(0, 69424, '\p{Blk=old_sogdian}', "");
+    Expect(1, 69424, '\p{^Blk=old_sogdian}', "");
+    Expect(1, 69424, '\P{Blk=old_sogdian}', "");
+    Expect(0, 69424, '\P{^Blk=old_sogdian}', "");
+    Error('\p{Is_Block= :=Old_sogdian}');
+    Error('\P{Is_Block= :=Old_sogdian}');
     Expect(1, 69423, '\p{Is_Block=oldsogdian}', "");
     Expect(0, 69423, '\p{^Is_Block=oldsogdian}', "");
     Expect(0, 69423, '\P{Is_Block=oldsogdian}', "");
@@ -21820,16 +22388,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69424, '\p{^Is_Block=oldsogdian}', "");
     Expect(1, 69424, '\P{Is_Block=oldsogdian}', "");
     Expect(0, 69424, '\P{^Is_Block=oldsogdian}', "");
-    Expect(1, 69423, '\p{Is_Block: -	OLD_sogdian}', "");
-    Expect(0, 69423, '\p{^Is_Block: -	OLD_sogdian}', "");
-    Expect(0, 69423, '\P{Is_Block: -	OLD_sogdian}', "");
-    Expect(1, 69423, '\P{^Is_Block: -	OLD_sogdian}', "");
-    Expect(0, 69424, '\p{Is_Block: -	OLD_sogdian}', "");
-    Expect(1, 69424, '\p{^Is_Block: -	OLD_sogdian}', "");
-    Expect(1, 69424, '\P{Is_Block: -	OLD_sogdian}', "");
-    Expect(0, 69424, '\P{^Is_Block: -	OLD_sogdian}', "");
-    Error('\p{Is_Blk= /a/old_SOGDIAN}');
-    Error('\P{Is_Blk= /a/old_SOGDIAN}');
+    Expect(1, 69423, '\p{Is_Block=	_Old_sogdian}', "");
+    Expect(0, 69423, '\p{^Is_Block=	_Old_sogdian}', "");
+    Expect(0, 69423, '\P{Is_Block=	_Old_sogdian}', "");
+    Expect(1, 69423, '\P{^Is_Block=	_Old_sogdian}', "");
+    Expect(0, 69424, '\p{Is_Block=	_Old_sogdian}', "");
+    Expect(1, 69424, '\p{^Is_Block=	_Old_sogdian}', "");
+    Expect(1, 69424, '\P{Is_Block=	_Old_sogdian}', "");
+    Expect(0, 69424, '\P{^Is_Block=	_Old_sogdian}', "");
+    Error('\p{Is_Blk=_ OLD_sogdian:=}');
+    Error('\P{Is_Blk=_ OLD_sogdian:=}');
     Expect(1, 69423, '\p{Is_Blk=oldsogdian}', "");
     Expect(0, 69423, '\p{^Is_Blk=oldsogdian}', "");
     Expect(0, 69423, '\P{Is_Blk=oldsogdian}', "");
@@ -21838,16 +22406,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69424, '\p{^Is_Blk=oldsogdian}', "");
     Expect(1, 69424, '\P{Is_Blk=oldsogdian}', "");
     Expect(0, 69424, '\P{^Is_Blk=oldsogdian}', "");
-    Expect(1, 69423, '\p{Is_Blk=_-OLD_sogdian}', "");
-    Expect(0, 69423, '\p{^Is_Blk=_-OLD_sogdian}', "");
-    Expect(0, 69423, '\P{Is_Blk=_-OLD_sogdian}', "");
-    Expect(1, 69423, '\P{^Is_Blk=_-OLD_sogdian}', "");
-    Expect(0, 69424, '\p{Is_Blk=_-OLD_sogdian}', "");
-    Expect(1, 69424, '\p{^Is_Blk=_-OLD_sogdian}', "");
-    Expect(1, 69424, '\P{Is_Blk=_-OLD_sogdian}', "");
-    Expect(0, 69424, '\P{^Is_Blk=_-OLD_sogdian}', "");
-    Error('\p{Block=/a/_ old_south_arabian}');
-    Error('\P{Block=/a/_ old_south_arabian}');
+    Expect(1, 69423, '\p{Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(0, 69423, '\p{^Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(0, 69423, '\P{Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(1, 69423, '\P{^Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(0, 69424, '\p{Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(1, 69424, '\p{^Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(1, 69424, '\P{Is_Blk=-_Old_SOGDIAN}', "");
+    Expect(0, 69424, '\P{^Is_Blk=-_Old_SOGDIAN}', "");
+    Error('\p{Block=-Old_South_Arabian:=}');
+    Error('\P{Block=-Old_South_Arabian:=}');
     Expect(1, 68223, '\p{Block=:\AOld_South_Arabian\z:}', "");;
     Expect(0, 68224, '\p{Block=:\AOld_South_Arabian\z:}', "");;
     Expect(1, 68223, '\p{Block=oldsoutharabian}', "");
@@ -21860,38 +22428,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68224, '\P{^Block=oldsoutharabian}', "");
     Expect(1, 68223, '\p{Block=:\Aoldsoutharabian\z:}', "");;
     Expect(0, 68224, '\p{Block=:\Aoldsoutharabian\z:}', "");;
-    Expect(1, 68223, '\p{Block= Old_south_Arabian}', "");
-    Expect(0, 68223, '\p{^Block= Old_south_Arabian}', "");
-    Expect(0, 68223, '\P{Block= Old_south_Arabian}', "");
-    Expect(1, 68223, '\P{^Block= Old_south_Arabian}', "");
-    Expect(0, 68224, '\p{Block= Old_south_Arabian}', "");
-    Expect(1, 68224, '\p{^Block= Old_south_Arabian}', "");
-    Expect(1, 68224, '\P{Block= Old_south_Arabian}', "");
-    Expect(0, 68224, '\P{^Block= Old_south_Arabian}', "");
-    Error('\p{Blk=	 Old_South_Arabian/a/}');
-    Error('\P{Blk=	 Old_South_Arabian/a/}');
+    Expect(1, 68223, '\p{Block=		Old_South_Arabian}', "");
+    Expect(0, 68223, '\p{^Block=		Old_South_Arabian}', "");
+    Expect(0, 68223, '\P{Block=		Old_South_Arabian}', "");
+    Expect(1, 68223, '\P{^Block=		Old_South_Arabian}', "");
+    Expect(0, 68224, '\p{Block=		Old_South_Arabian}', "");
+    Expect(1, 68224, '\p{^Block=		Old_South_Arabian}', "");
+    Expect(1, 68224, '\P{Block=		Old_South_Arabian}', "");
+    Expect(0, 68224, '\P{^Block=		Old_South_Arabian}', "");
+    Error('\p{Blk=	/a/OLD_South_Arabian}');
+    Error('\P{Blk=	/a/OLD_South_Arabian}');
     Expect(1, 68223, '\p{Blk=:\AOld_South_Arabian\z:}', "");;
     Expect(0, 68224, '\p{Blk=:\AOld_South_Arabian\z:}', "");;
-    Expect(1, 68223, '\p{Blk=oldsoutharabian}', "");
-    Expect(0, 68223, '\p{^Blk=oldsoutharabian}', "");
-    Expect(0, 68223, '\P{Blk=oldsoutharabian}', "");
-    Expect(1, 68223, '\P{^Blk=oldsoutharabian}', "");
-    Expect(0, 68224, '\p{Blk=oldsoutharabian}', "");
-    Expect(1, 68224, '\p{^Blk=oldsoutharabian}', "");
-    Expect(1, 68224, '\P{Blk=oldsoutharabian}', "");
-    Expect(0, 68224, '\P{^Blk=oldsoutharabian}', "");
+    Expect(1, 68223, '\p{Blk:   oldsoutharabian}', "");
+    Expect(0, 68223, '\p{^Blk:   oldsoutharabian}', "");
+    Expect(0, 68223, '\P{Blk:   oldsoutharabian}', "");
+    Expect(1, 68223, '\P{^Blk:   oldsoutharabian}', "");
+    Expect(0, 68224, '\p{Blk:   oldsoutharabian}', "");
+    Expect(1, 68224, '\p{^Blk:   oldsoutharabian}', "");
+    Expect(1, 68224, '\P{Blk:   oldsoutharabian}', "");
+    Expect(0, 68224, '\P{^Blk:   oldsoutharabian}', "");
     Expect(1, 68223, '\p{Blk=:\Aoldsoutharabian\z:}', "");;
     Expect(0, 68224, '\p{Blk=:\Aoldsoutharabian\z:}', "");;
-    Expect(1, 68223, '\p{Blk=	 Old_South_Arabian}', "");
-    Expect(0, 68223, '\p{^Blk=	 Old_South_Arabian}', "");
-    Expect(0, 68223, '\P{Blk=	 Old_South_Arabian}', "");
-    Expect(1, 68223, '\P{^Blk=	 Old_South_Arabian}', "");
-    Expect(0, 68224, '\p{Blk=	 Old_South_Arabian}', "");
-    Expect(1, 68224, '\p{^Blk=	 Old_South_Arabian}', "");
-    Expect(1, 68224, '\P{Blk=	 Old_South_Arabian}', "");
-    Expect(0, 68224, '\P{^Blk=	 Old_South_Arabian}', "");
-    Error('\p{Is_Block= :=old_SOUTH_Arabian}');
-    Error('\P{Is_Block= :=old_SOUTH_Arabian}');
+    Expect(1, 68223, '\p{Blk=_Old_South_arabian}', "");
+    Expect(0, 68223, '\p{^Blk=_Old_South_arabian}', "");
+    Expect(0, 68223, '\P{Blk=_Old_South_arabian}', "");
+    Expect(1, 68223, '\P{^Blk=_Old_South_arabian}', "");
+    Expect(0, 68224, '\p{Blk=_Old_South_arabian}', "");
+    Expect(1, 68224, '\p{^Blk=_Old_South_arabian}', "");
+    Expect(1, 68224, '\P{Blk=_Old_South_arabian}', "");
+    Expect(0, 68224, '\P{^Blk=_Old_South_arabian}', "");
+    Error('\p{Is_Block= 	Old_South_ARABIAN/a/}');
+    Error('\P{Is_Block= 	Old_South_ARABIAN/a/}');
     Expect(1, 68223, '\p{Is_Block=oldsoutharabian}', "");
     Expect(0, 68223, '\p{^Is_Block=oldsoutharabian}', "");
     Expect(0, 68223, '\P{Is_Block=oldsoutharabian}', "");
@@ -21900,16 +22468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68224, '\p{^Is_Block=oldsoutharabian}', "");
     Expect(1, 68224, '\P{Is_Block=oldsoutharabian}', "");
     Expect(0, 68224, '\P{^Is_Block=oldsoutharabian}', "");
-    Expect(1, 68223, '\p{Is_Block= OLD_south_Arabian}', "");
-    Expect(0, 68223, '\p{^Is_Block= OLD_south_Arabian}', "");
-    Expect(0, 68223, '\P{Is_Block= OLD_south_Arabian}', "");
-    Expect(1, 68223, '\P{^Is_Block= OLD_south_Arabian}', "");
-    Expect(0, 68224, '\p{Is_Block= OLD_south_Arabian}', "");
-    Expect(1, 68224, '\p{^Is_Block= OLD_south_Arabian}', "");
-    Expect(1, 68224, '\P{Is_Block= OLD_south_Arabian}', "");
-    Expect(0, 68224, '\P{^Is_Block= OLD_south_Arabian}', "");
-    Error('\p{Is_Blk=_ Old_South_arabian:=}');
-    Error('\P{Is_Blk=_ Old_South_arabian:=}');
+    Expect(1, 68223, '\p{Is_Block=  Old_South_Arabian}', "");
+    Expect(0, 68223, '\p{^Is_Block=  Old_South_Arabian}', "");
+    Expect(0, 68223, '\P{Is_Block=  Old_South_Arabian}', "");
+    Expect(1, 68223, '\P{^Is_Block=  Old_South_Arabian}', "");
+    Expect(0, 68224, '\p{Is_Block=  Old_South_Arabian}', "");
+    Expect(1, 68224, '\p{^Is_Block=  Old_South_Arabian}', "");
+    Expect(1, 68224, '\P{Is_Block=  Old_South_Arabian}', "");
+    Expect(0, 68224, '\P{^Is_Block=  Old_South_Arabian}', "");
+    Error('\p{Is_Blk=:=  OLD_South_ARABIAN}');
+    Error('\P{Is_Blk=:=  OLD_South_ARABIAN}');
     Expect(1, 68223, '\p{Is_Blk=oldsoutharabian}', "");
     Expect(0, 68223, '\p{^Is_Blk=oldsoutharabian}', "");
     Expect(0, 68223, '\P{Is_Blk=oldsoutharabian}', "");
@@ -21918,16 +22486,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68224, '\p{^Is_Blk=oldsoutharabian}', "");
     Expect(1, 68224, '\P{Is_Blk=oldsoutharabian}', "");
     Expect(0, 68224, '\P{^Is_Blk=oldsoutharabian}', "");
-    Expect(1, 68223, '\p{Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(0, 68223, '\p{^Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(0, 68223, '\P{Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(1, 68223, '\P{^Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(0, 68224, '\p{Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(1, 68224, '\p{^Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(1, 68224, '\P{Is_Blk= _Old_South_ARABIAN}', "");
-    Expect(0, 68224, '\P{^Is_Blk= _Old_South_ARABIAN}', "");
-    Error('\p{Block=--Old_turkic/a/}');
-    Error('\P{Block=--Old_turkic/a/}');
+    Expect(1, 68223, '\p{Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(0, 68223, '\p{^Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(0, 68223, '\P{Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(1, 68223, '\P{^Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(0, 68224, '\p{Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(1, 68224, '\p{^Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(1, 68224, '\P{Is_Blk=_OLD_SOUTH_arabian}', "");
+    Expect(0, 68224, '\P{^Is_Blk=_OLD_SOUTH_arabian}', "");
+    Error('\p{Block= _Old_Turkic:=}');
+    Error('\P{Block= _Old_Turkic:=}');
     Expect(1, 68687, '\p{Block=:\AOld_Turkic\z:}', "");;
     Expect(0, 68688, '\p{Block=:\AOld_Turkic\z:}', "");;
     Expect(1, 68687, '\p{Block=oldturkic}', "");
@@ -21940,38 +22508,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68688, '\P{^Block=oldturkic}', "");
     Expect(1, 68687, '\p{Block=:\Aoldturkic\z:}', "");;
     Expect(0, 68688, '\p{Block=:\Aoldturkic\z:}', "");;
-    Expect(1, 68687, '\p{Block=__OLD_turkic}', "");
-    Expect(0, 68687, '\p{^Block=__OLD_turkic}', "");
-    Expect(0, 68687, '\P{Block=__OLD_turkic}', "");
-    Expect(1, 68687, '\P{^Block=__OLD_turkic}', "");
-    Expect(0, 68688, '\p{Block=__OLD_turkic}', "");
-    Expect(1, 68688, '\p{^Block=__OLD_turkic}', "");
-    Expect(1, 68688, '\P{Block=__OLD_turkic}', "");
-    Expect(0, 68688, '\P{^Block=__OLD_turkic}', "");
-    Error('\p{Blk=-	old_turkic:=}');
-    Error('\P{Blk=-	old_turkic:=}');
+    Expect(1, 68687, '\p{Block=Old_TURKIC}', "");
+    Expect(0, 68687, '\p{^Block=Old_TURKIC}', "");
+    Expect(0, 68687, '\P{Block=Old_TURKIC}', "");
+    Expect(1, 68687, '\P{^Block=Old_TURKIC}', "");
+    Expect(0, 68688, '\p{Block=Old_TURKIC}', "");
+    Expect(1, 68688, '\p{^Block=Old_TURKIC}', "");
+    Expect(1, 68688, '\P{Block=Old_TURKIC}', "");
+    Expect(0, 68688, '\P{^Block=Old_TURKIC}', "");
+    Error('\p{Blk=-/a/old_Turkic}');
+    Error('\P{Blk=-/a/old_Turkic}');
     Expect(1, 68687, '\p{Blk=:\AOld_Turkic\z:}', "");;
     Expect(0, 68688, '\p{Blk=:\AOld_Turkic\z:}', "");;
-    Expect(1, 68687, '\p{Blk:	oldturkic}', "");
-    Expect(0, 68687, '\p{^Blk:	oldturkic}', "");
-    Expect(0, 68687, '\P{Blk:	oldturkic}', "");
-    Expect(1, 68687, '\P{^Blk:	oldturkic}', "");
-    Expect(0, 68688, '\p{Blk:	oldturkic}', "");
-    Expect(1, 68688, '\p{^Blk:	oldturkic}', "");
-    Expect(1, 68688, '\P{Blk:	oldturkic}', "");
-    Expect(0, 68688, '\P{^Blk:	oldturkic}', "");
+    Expect(1, 68687, '\p{Blk: oldturkic}', "");
+    Expect(0, 68687, '\p{^Blk: oldturkic}', "");
+    Expect(0, 68687, '\P{Blk: oldturkic}', "");
+    Expect(1, 68687, '\P{^Blk: oldturkic}', "");
+    Expect(0, 68688, '\p{Blk: oldturkic}', "");
+    Expect(1, 68688, '\p{^Blk: oldturkic}', "");
+    Expect(1, 68688, '\P{Blk: oldturkic}', "");
+    Expect(0, 68688, '\P{^Blk: oldturkic}', "");
     Expect(1, 68687, '\p{Blk=:\Aoldturkic\z:}', "");;
     Expect(0, 68688, '\p{Blk=:\Aoldturkic\z:}', "");;
-    Expect(1, 68687, '\p{Blk: --Old_Turkic}', "");
-    Expect(0, 68687, '\p{^Blk: --Old_Turkic}', "");
-    Expect(0, 68687, '\P{Blk: --Old_Turkic}', "");
-    Expect(1, 68687, '\P{^Blk: --Old_Turkic}', "");
-    Expect(0, 68688, '\p{Blk: --Old_Turkic}', "");
-    Expect(1, 68688, '\p{^Blk: --Old_Turkic}', "");
-    Expect(1, 68688, '\P{Blk: --Old_Turkic}', "");
-    Expect(0, 68688, '\P{^Blk: --Old_Turkic}', "");
-    Error('\p{Is_Block=  OLD_turkic:=}');
-    Error('\P{Is_Block=  OLD_turkic:=}');
+    Expect(1, 68687, '\p{Blk=	-old_Turkic}', "");
+    Expect(0, 68687, '\p{^Blk=	-old_Turkic}', "");
+    Expect(0, 68687, '\P{Blk=	-old_Turkic}', "");
+    Expect(1, 68687, '\P{^Blk=	-old_Turkic}', "");
+    Expect(0, 68688, '\p{Blk=	-old_Turkic}', "");
+    Expect(1, 68688, '\p{^Blk=	-old_Turkic}', "");
+    Expect(1, 68688, '\P{Blk=	-old_Turkic}', "");
+    Expect(0, 68688, '\P{^Blk=	-old_Turkic}', "");
+    Error('\p{Is_Block=--OLD_Turkic:=}');
+    Error('\P{Is_Block=--OLD_Turkic:=}');
     Expect(1, 68687, '\p{Is_Block=oldturkic}', "");
     Expect(0, 68687, '\p{^Is_Block=oldturkic}', "");
     Expect(0, 68687, '\P{Is_Block=oldturkic}', "");
@@ -21980,16 +22548,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68688, '\p{^Is_Block=oldturkic}', "");
     Expect(1, 68688, '\P{Is_Block=oldturkic}', "");
     Expect(0, 68688, '\P{^Is_Block=oldturkic}', "");
-    Expect(1, 68687, '\p{Is_Block: _	Old_turkic}', "");
-    Expect(0, 68687, '\p{^Is_Block: _	Old_turkic}', "");
-    Expect(0, 68687, '\P{Is_Block: _	Old_turkic}', "");
-    Expect(1, 68687, '\P{^Is_Block: _	Old_turkic}', "");
-    Expect(0, 68688, '\p{Is_Block: _	Old_turkic}', "");
-    Expect(1, 68688, '\p{^Is_Block: _	Old_turkic}', "");
-    Expect(1, 68688, '\P{Is_Block: _	Old_turkic}', "");
-    Expect(0, 68688, '\P{^Is_Block: _	Old_turkic}', "");
-    Error('\p{Is_Blk=_ OLD_TURKIC:=}');
-    Error('\P{Is_Blk=_ OLD_TURKIC:=}');
+    Expect(1, 68687, '\p{Is_Block=_	OLD_TURKIC}', "");
+    Expect(0, 68687, '\p{^Is_Block=_	OLD_TURKIC}', "");
+    Expect(0, 68687, '\P{Is_Block=_	OLD_TURKIC}', "");
+    Expect(1, 68687, '\P{^Is_Block=_	OLD_TURKIC}', "");
+    Expect(0, 68688, '\p{Is_Block=_	OLD_TURKIC}', "");
+    Expect(1, 68688, '\p{^Is_Block=_	OLD_TURKIC}', "");
+    Expect(1, 68688, '\P{Is_Block=_	OLD_TURKIC}', "");
+    Expect(0, 68688, '\P{^Is_Block=_	OLD_TURKIC}', "");
+    Error('\p{Is_Blk=-	Old_Turkic/a/}');
+    Error('\P{Is_Blk=-	Old_Turkic/a/}');
     Expect(1, 68687, '\p{Is_Blk=oldturkic}', "");
     Expect(0, 68687, '\p{^Is_Blk=oldturkic}', "");
     Expect(0, 68687, '\P{Is_Blk=oldturkic}', "");
@@ -21998,16 +22566,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68688, '\p{^Is_Blk=oldturkic}', "");
     Expect(1, 68688, '\P{Is_Blk=oldturkic}', "");
     Expect(0, 68688, '\P{^Is_Blk=oldturkic}', "");
-    Expect(1, 68687, '\p{Is_Blk=	-OLD_turkic}', "");
-    Expect(0, 68687, '\p{^Is_Blk=	-OLD_turkic}', "");
-    Expect(0, 68687, '\P{Is_Blk=	-OLD_turkic}', "");
-    Expect(1, 68687, '\P{^Is_Blk=	-OLD_turkic}', "");
-    Expect(0, 68688, '\p{Is_Blk=	-OLD_turkic}', "");
-    Expect(1, 68688, '\p{^Is_Blk=	-OLD_turkic}', "");
-    Expect(1, 68688, '\P{Is_Blk=	-OLD_turkic}', "");
-    Expect(0, 68688, '\P{^Is_Blk=	-OLD_turkic}', "");
-    Error('\p{Block=/a/Old_uyghur}');
-    Error('\P{Block=/a/Old_uyghur}');
+    Expect(1, 68687, '\p{Is_Blk=-_Old_turkic}', "");
+    Expect(0, 68687, '\p{^Is_Blk=-_Old_turkic}', "");
+    Expect(0, 68687, '\P{Is_Blk=-_Old_turkic}', "");
+    Expect(1, 68687, '\P{^Is_Blk=-_Old_turkic}', "");
+    Expect(0, 68688, '\p{Is_Blk=-_Old_turkic}', "");
+    Expect(1, 68688, '\p{^Is_Blk=-_Old_turkic}', "");
+    Expect(1, 68688, '\P{Is_Blk=-_Old_turkic}', "");
+    Expect(0, 68688, '\P{^Is_Blk=-_Old_turkic}', "");
+    Error('\p{Block=-:=OLD_UYGHUR}');
+    Error('\P{Block=-:=OLD_UYGHUR}');
     Expect(1, 69551, '\p{Block=:\AOld_Uyghur\z:}', "");;
     Expect(0, 69552, '\p{Block=:\AOld_Uyghur\z:}', "");;
     Expect(1, 69551, '\p{Block=olduyghur}', "");
@@ -22020,16 +22588,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69552, '\P{^Block=olduyghur}', "");
     Expect(1, 69551, '\p{Block=:\Aolduyghur\z:}', "");;
     Expect(0, 69552, '\p{Block=:\Aolduyghur\z:}', "");;
-    Expect(1, 69551, '\p{Block:	 Old_UYGHUR}', "");
-    Expect(0, 69551, '\p{^Block:	 Old_UYGHUR}', "");
-    Expect(0, 69551, '\P{Block:	 Old_UYGHUR}', "");
-    Expect(1, 69551, '\P{^Block:	 Old_UYGHUR}', "");
-    Expect(0, 69552, '\p{Block:	 Old_UYGHUR}', "");
-    Expect(1, 69552, '\p{^Block:	 Old_UYGHUR}', "");
-    Expect(1, 69552, '\P{Block:	 Old_UYGHUR}', "");
-    Expect(0, 69552, '\P{^Block:	 Old_UYGHUR}', "");
-    Error('\p{Blk=	/a/old_UYGHUR}');
-    Error('\P{Blk=	/a/old_UYGHUR}');
+    Expect(1, 69551, '\p{Block=--Old_Uyghur}', "");
+    Expect(0, 69551, '\p{^Block=--Old_Uyghur}', "");
+    Expect(0, 69551, '\P{Block=--Old_Uyghur}', "");
+    Expect(1, 69551, '\P{^Block=--Old_Uyghur}', "");
+    Expect(0, 69552, '\p{Block=--Old_Uyghur}', "");
+    Expect(1, 69552, '\p{^Block=--Old_Uyghur}', "");
+    Expect(1, 69552, '\P{Block=--Old_Uyghur}', "");
+    Expect(0, 69552, '\P{^Block=--Old_Uyghur}', "");
+    Error('\p{Blk=_:=Old_Uyghur}');
+    Error('\P{Blk=_:=Old_Uyghur}');
     Expect(1, 69551, '\p{Blk=:\AOld_Uyghur\z:}', "");;
     Expect(0, 69552, '\p{Blk=:\AOld_Uyghur\z:}', "");;
     Expect(1, 69551, '\p{Blk=olduyghur}', "");
@@ -22042,16 +22610,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69552, '\P{^Blk=olduyghur}', "");
     Expect(1, 69551, '\p{Blk=:\Aolduyghur\z:}', "");;
     Expect(0, 69552, '\p{Blk=:\Aolduyghur\z:}', "");;
-    Expect(1, 69551, '\p{Blk=__Old_uyghur}', "");
-    Expect(0, 69551, '\p{^Blk=__Old_uyghur}', "");
-    Expect(0, 69551, '\P{Blk=__Old_uyghur}', "");
-    Expect(1, 69551, '\P{^Blk=__Old_uyghur}', "");
-    Expect(0, 69552, '\p{Blk=__Old_uyghur}', "");
-    Expect(1, 69552, '\p{^Blk=__Old_uyghur}', "");
-    Expect(1, 69552, '\P{Blk=__Old_uyghur}', "");
-    Expect(0, 69552, '\P{^Blk=__Old_uyghur}', "");
-    Error('\p{Is_Block=	 Old_Uyghur:=}');
-    Error('\P{Is_Block=	 Old_Uyghur:=}');
+    Expect(1, 69551, '\p{Blk=- Old_uyghur}', "");
+    Expect(0, 69551, '\p{^Blk=- Old_uyghur}', "");
+    Expect(0, 69551, '\P{Blk=- Old_uyghur}', "");
+    Expect(1, 69551, '\P{^Blk=- Old_uyghur}', "");
+    Expect(0, 69552, '\p{Blk=- Old_uyghur}', "");
+    Expect(1, 69552, '\p{^Blk=- Old_uyghur}', "");
+    Expect(1, 69552, '\P{Blk=- Old_uyghur}', "");
+    Expect(0, 69552, '\P{^Blk=- Old_uyghur}', "");
+    Error('\p{Is_Block=:=__Old_Uyghur}');
+    Error('\P{Is_Block=:=__Old_Uyghur}');
     Expect(1, 69551, '\p{Is_Block=olduyghur}', "");
     Expect(0, 69551, '\p{^Is_Block=olduyghur}', "");
     Expect(0, 69551, '\P{Is_Block=olduyghur}', "");
@@ -22060,16 +22628,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69552, '\p{^Is_Block=olduyghur}', "");
     Expect(1, 69552, '\P{Is_Block=olduyghur}', "");
     Expect(0, 69552, '\P{^Is_Block=olduyghur}', "");
-    Expect(1, 69551, '\p{Is_Block:	 _Old_Uyghur}', "");
-    Expect(0, 69551, '\p{^Is_Block:	 _Old_Uyghur}', "");
-    Expect(0, 69551, '\P{Is_Block:	 _Old_Uyghur}', "");
-    Expect(1, 69551, '\P{^Is_Block:	 _Old_Uyghur}', "");
-    Expect(0, 69552, '\p{Is_Block:	 _Old_Uyghur}', "");
-    Expect(1, 69552, '\p{^Is_Block:	 _Old_Uyghur}', "");
-    Expect(1, 69552, '\P{Is_Block:	 _Old_Uyghur}', "");
-    Expect(0, 69552, '\P{^Is_Block:	 _Old_Uyghur}', "");
-    Error('\p{Is_Blk= 	old_UYGHUR:=}');
-    Error('\P{Is_Blk= 	old_UYGHUR:=}');
+    Expect(1, 69551, '\p{Is_Block=	Old_uyghur}', "");
+    Expect(0, 69551, '\p{^Is_Block=	Old_uyghur}', "");
+    Expect(0, 69551, '\P{Is_Block=	Old_uyghur}', "");
+    Expect(1, 69551, '\P{^Is_Block=	Old_uyghur}', "");
+    Expect(0, 69552, '\p{Is_Block=	Old_uyghur}', "");
+    Expect(1, 69552, '\p{^Is_Block=	Old_uyghur}', "");
+    Expect(1, 69552, '\P{Is_Block=	Old_uyghur}', "");
+    Expect(0, 69552, '\P{^Is_Block=	Old_uyghur}', "");
+    Error('\p{Is_Blk=/a/ _old_Uyghur}');
+    Error('\P{Is_Blk=/a/ _old_Uyghur}');
     Expect(1, 69551, '\p{Is_Blk=olduyghur}', "");
     Expect(0, 69551, '\p{^Is_Blk=olduyghur}', "");
     Expect(0, 69551, '\P{Is_Blk=olduyghur}', "");
@@ -22078,16 +22646,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69552, '\p{^Is_Blk=olduyghur}', "");
     Expect(1, 69552, '\P{Is_Blk=olduyghur}', "");
     Expect(0, 69552, '\P{^Is_Blk=olduyghur}', "");
-    Expect(1, 69551, '\p{Is_Blk=OLD_Uyghur}', "");
-    Expect(0, 69551, '\p{^Is_Blk=OLD_Uyghur}', "");
-    Expect(0, 69551, '\P{Is_Blk=OLD_Uyghur}', "");
-    Expect(1, 69551, '\P{^Is_Blk=OLD_Uyghur}', "");
-    Expect(0, 69552, '\p{Is_Blk=OLD_Uyghur}', "");
-    Expect(1, 69552, '\p{^Is_Blk=OLD_Uyghur}', "");
-    Expect(1, 69552, '\P{Is_Blk=OLD_Uyghur}', "");
-    Expect(0, 69552, '\P{^Is_Blk=OLD_Uyghur}', "");
-    Error('\p{Block=/a/ oriya}');
-    Error('\P{Block=/a/ oriya}');
+    Expect(1, 69551, '\p{Is_Blk=_ Old_Uyghur}', "");
+    Expect(0, 69551, '\p{^Is_Blk=_ Old_Uyghur}', "");
+    Expect(0, 69551, '\P{Is_Blk=_ Old_Uyghur}', "");
+    Expect(1, 69551, '\P{^Is_Blk=_ Old_Uyghur}', "");
+    Expect(0, 69552, '\p{Is_Blk=_ Old_Uyghur}', "");
+    Expect(1, 69552, '\p{^Is_Blk=_ Old_Uyghur}', "");
+    Expect(1, 69552, '\P{Is_Blk=_ Old_Uyghur}', "");
+    Expect(0, 69552, '\P{^Is_Blk=_ Old_Uyghur}', "");
+    Error('\p{Block=oriya:=}');
+    Error('\P{Block=oriya:=}');
     Expect(1, 2943, '\p{Block=:\AOriya\z:}', "");;
     Expect(0, 2944, '\p{Block=:\AOriya\z:}', "");;
     Expect(1, 2943, '\p{Block=oriya}', "");
@@ -22100,16 +22668,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2944, '\P{^Block=oriya}', "");
     Expect(1, 2943, '\p{Block=:\Aoriya\z:}', "");;
     Expect(0, 2944, '\p{Block=:\Aoriya\z:}', "");;
-    Expect(1, 2943, '\p{Block: -Oriya}', "");
-    Expect(0, 2943, '\p{^Block: -Oriya}', "");
-    Expect(0, 2943, '\P{Block: -Oriya}', "");
-    Expect(1, 2943, '\P{^Block: -Oriya}', "");
-    Expect(0, 2944, '\p{Block: -Oriya}', "");
-    Expect(1, 2944, '\p{^Block: -Oriya}', "");
-    Expect(1, 2944, '\P{Block: -Oriya}', "");
-    Expect(0, 2944, '\P{^Block: -Oriya}', "");
-    Error('\p{Blk=	/a/Oriya}');
-    Error('\P{Blk=	/a/Oriya}');
+    Expect(1, 2943, '\p{Block=-ORIYA}', "");
+    Expect(0, 2943, '\p{^Block=-ORIYA}', "");
+    Expect(0, 2943, '\P{Block=-ORIYA}', "");
+    Expect(1, 2943, '\P{^Block=-ORIYA}', "");
+    Expect(0, 2944, '\p{Block=-ORIYA}', "");
+    Expect(1, 2944, '\p{^Block=-ORIYA}', "");
+    Expect(1, 2944, '\P{Block=-ORIYA}', "");
+    Expect(0, 2944, '\P{^Block=-ORIYA}', "");
+    Error('\p{Blk=/a/	Oriya}');
+    Error('\P{Blk=/a/	Oriya}');
     Expect(1, 2943, '\p{Blk=:\AOriya\z:}', "");;
     Expect(0, 2944, '\p{Blk=:\AOriya\z:}', "");;
     Expect(1, 2943, '\p{Blk=oriya}', "");
@@ -22122,34 +22690,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2944, '\P{^Blk=oriya}', "");
     Expect(1, 2943, '\p{Blk=:\Aoriya\z:}', "");;
     Expect(0, 2944, '\p{Blk=:\Aoriya\z:}', "");;
-    Expect(1, 2943, '\p{Blk=		ORIYA}', "");
-    Expect(0, 2943, '\p{^Blk=		ORIYA}', "");
-    Expect(0, 2943, '\P{Blk=		ORIYA}', "");
-    Expect(1, 2943, '\P{^Blk=		ORIYA}', "");
-    Expect(0, 2944, '\p{Blk=		ORIYA}', "");
-    Expect(1, 2944, '\p{^Blk=		ORIYA}', "");
-    Expect(1, 2944, '\P{Blk=		ORIYA}', "");
-    Expect(0, 2944, '\P{^Blk=		ORIYA}', "");
-    Error('\p{Is_Block= /a/Oriya}');
-    Error('\P{Is_Block= /a/Oriya}');
-    Expect(1, 2943, '\p{Is_Block:oriya}', "");
-    Expect(0, 2943, '\p{^Is_Block:oriya}', "");
-    Expect(0, 2943, '\P{Is_Block:oriya}', "");
-    Expect(1, 2943, '\P{^Is_Block:oriya}', "");
-    Expect(0, 2944, '\p{Is_Block:oriya}', "");
-    Expect(1, 2944, '\p{^Is_Block:oriya}', "");
-    Expect(1, 2944, '\P{Is_Block:oriya}', "");
-    Expect(0, 2944, '\P{^Is_Block:oriya}', "");
-    Expect(1, 2943, '\p{Is_Block=--Oriya}', "");
-    Expect(0, 2943, '\p{^Is_Block=--Oriya}', "");
-    Expect(0, 2943, '\P{Is_Block=--Oriya}', "");
-    Expect(1, 2943, '\P{^Is_Block=--Oriya}', "");
-    Expect(0, 2944, '\p{Is_Block=--Oriya}', "");
-    Expect(1, 2944, '\p{^Is_Block=--Oriya}', "");
-    Expect(1, 2944, '\P{Is_Block=--Oriya}', "");
-    Expect(0, 2944, '\P{^Is_Block=--Oriya}', "");
-    Error('\p{Is_Blk=-:=ORIYA}');
-    Error('\P{Is_Blk=-:=ORIYA}');
+    Expect(1, 2943, '\p{Blk:   	 Oriya}', "");
+    Expect(0, 2943, '\p{^Blk:   	 Oriya}', "");
+    Expect(0, 2943, '\P{Blk:   	 Oriya}', "");
+    Expect(1, 2943, '\P{^Blk:   	 Oriya}', "");
+    Expect(0, 2944, '\p{Blk:   	 Oriya}', "");
+    Expect(1, 2944, '\p{^Blk:   	 Oriya}', "");
+    Expect(1, 2944, '\P{Blk:   	 Oriya}', "");
+    Expect(0, 2944, '\P{^Blk:   	 Oriya}', "");
+    Error('\p{Is_Block=:=_	Oriya}');
+    Error('\P{Is_Block=:=_	Oriya}');
+    Expect(1, 2943, '\p{Is_Block=oriya}', "");
+    Expect(0, 2943, '\p{^Is_Block=oriya}', "");
+    Expect(0, 2943, '\P{Is_Block=oriya}', "");
+    Expect(1, 2943, '\P{^Is_Block=oriya}', "");
+    Expect(0, 2944, '\p{Is_Block=oriya}', "");
+    Expect(1, 2944, '\p{^Is_Block=oriya}', "");
+    Expect(1, 2944, '\P{Is_Block=oriya}', "");
+    Expect(0, 2944, '\P{^Is_Block=oriya}', "");
+    Expect(1, 2943, '\p{Is_Block=		Oriya}', "");
+    Expect(0, 2943, '\p{^Is_Block=		Oriya}', "");
+    Expect(0, 2943, '\P{Is_Block=		Oriya}', "");
+    Expect(1, 2943, '\P{^Is_Block=		Oriya}', "");
+    Expect(0, 2944, '\p{Is_Block=		Oriya}', "");
+    Expect(1, 2944, '\p{^Is_Block=		Oriya}', "");
+    Expect(1, 2944, '\P{Is_Block=		Oriya}', "");
+    Expect(0, 2944, '\P{^Is_Block=		Oriya}', "");
+    Error('\p{Is_Blk:	-Oriya:=}');
+    Error('\P{Is_Blk:	-Oriya:=}');
     Expect(1, 2943, '\p{Is_Blk=oriya}', "");
     Expect(0, 2943, '\p{^Is_Blk=oriya}', "");
     Expect(0, 2943, '\P{Is_Blk=oriya}', "");
@@ -22158,16 +22726,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2944, '\p{^Is_Blk=oriya}', "");
     Expect(1, 2944, '\P{Is_Blk=oriya}', "");
     Expect(0, 2944, '\P{^Is_Blk=oriya}', "");
-    Expect(1, 2943, '\p{Is_Blk= _oriya}', "");
-    Expect(0, 2943, '\p{^Is_Blk= _oriya}', "");
-    Expect(0, 2943, '\P{Is_Blk= _oriya}', "");
-    Expect(1, 2943, '\P{^Is_Blk= _oriya}', "");
-    Expect(0, 2944, '\p{Is_Blk= _oriya}', "");
-    Expect(1, 2944, '\p{^Is_Blk= _oriya}', "");
-    Expect(1, 2944, '\P{Is_Blk= _oriya}', "");
-    Expect(0, 2944, '\P{^Is_Blk= _oriya}', "");
-    Error('\p{Block=_Ornamental_Dingbats:=}');
-    Error('\P{Block=_Ornamental_Dingbats:=}');
+    Expect(1, 2943, '\p{Is_Blk=-_oriya}', "");
+    Expect(0, 2943, '\p{^Is_Blk=-_oriya}', "");
+    Expect(0, 2943, '\P{Is_Blk=-_oriya}', "");
+    Expect(1, 2943, '\P{^Is_Blk=-_oriya}', "");
+    Expect(0, 2944, '\p{Is_Blk=-_oriya}', "");
+    Expect(1, 2944, '\p{^Is_Blk=-_oriya}', "");
+    Expect(1, 2944, '\P{Is_Blk=-_oriya}', "");
+    Expect(0, 2944, '\P{^Is_Blk=-_oriya}', "");
+    Error('\p{Block=/a/_Ornamental_dingbats}');
+    Error('\P{Block=/a/_Ornamental_dingbats}');
     Expect(1, 128639, '\p{Block=:\AOrnamental_Dingbats\z:}', "");;
     Expect(0, 128640, '\p{Block=:\AOrnamental_Dingbats\z:}', "");;
     Expect(1, 128639, '\p{Block=ornamentaldingbats}', "");
@@ -22180,16 +22748,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128640, '\P{^Block=ornamentaldingbats}', "");
     Expect(1, 128639, '\p{Block=:\Aornamentaldingbats\z:}', "");;
     Expect(0, 128640, '\p{Block=:\Aornamentaldingbats\z:}', "");;
-    Expect(1, 128639, '\p{Block= _Ornamental_dingbats}', "");
-    Expect(0, 128639, '\p{^Block= _Ornamental_dingbats}', "");
-    Expect(0, 128639, '\P{Block= _Ornamental_dingbats}', "");
-    Expect(1, 128639, '\P{^Block= _Ornamental_dingbats}', "");
-    Expect(0, 128640, '\p{Block= _Ornamental_dingbats}', "");
-    Expect(1, 128640, '\p{^Block= _Ornamental_dingbats}', "");
-    Expect(1, 128640, '\P{Block= _Ornamental_dingbats}', "");
-    Expect(0, 128640, '\P{^Block= _Ornamental_dingbats}', "");
-    Error('\p{Blk=Ornamental_DINGBATS:=}');
-    Error('\P{Blk=Ornamental_DINGBATS:=}');
+    Expect(1, 128639, '\p{Block=		ornamental_dingbats}', "");
+    Expect(0, 128639, '\p{^Block=		ornamental_dingbats}', "");
+    Expect(0, 128639, '\P{Block=		ornamental_dingbats}', "");
+    Expect(1, 128639, '\P{^Block=		ornamental_dingbats}', "");
+    Expect(0, 128640, '\p{Block=		ornamental_dingbats}', "");
+    Expect(1, 128640, '\p{^Block=		ornamental_dingbats}', "");
+    Expect(1, 128640, '\P{Block=		ornamental_dingbats}', "");
+    Expect(0, 128640, '\P{^Block=		ornamental_dingbats}', "");
+    Error('\p{Blk=	ORNAMENTAL_Dingbats:=}');
+    Error('\P{Blk=	ORNAMENTAL_Dingbats:=}');
     Expect(1, 128639, '\p{Blk=:\AOrnamental_Dingbats\z:}', "");;
     Expect(0, 128640, '\p{Blk=:\AOrnamental_Dingbats\z:}', "");;
     Expect(1, 128639, '\p{Blk=ornamentaldingbats}', "");
@@ -22202,16 +22770,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128640, '\P{^Blk=ornamentaldingbats}', "");
     Expect(1, 128639, '\p{Blk=:\Aornamentaldingbats\z:}', "");;
     Expect(0, 128640, '\p{Blk=:\Aornamentaldingbats\z:}', "");;
-    Expect(1, 128639, '\p{Blk=	_Ornamental_DINGBATS}', "");
-    Expect(0, 128639, '\p{^Blk=	_Ornamental_DINGBATS}', "");
-    Expect(0, 128639, '\P{Blk=	_Ornamental_DINGBATS}', "");
-    Expect(1, 128639, '\P{^Blk=	_Ornamental_DINGBATS}', "");
-    Expect(0, 128640, '\p{Blk=	_Ornamental_DINGBATS}', "");
-    Expect(1, 128640, '\p{^Blk=	_Ornamental_DINGBATS}', "");
-    Expect(1, 128640, '\P{Blk=	_Ornamental_DINGBATS}', "");
-    Expect(0, 128640, '\P{^Blk=	_Ornamental_DINGBATS}', "");
-    Error('\p{Is_Block=_:=ornamental_dingbats}');
-    Error('\P{Is_Block=_:=ornamental_dingbats}');
+    Expect(1, 128639, '\p{Blk=-Ornamental_dingbats}', "");
+    Expect(0, 128639, '\p{^Blk=-Ornamental_dingbats}', "");
+    Expect(0, 128639, '\P{Blk=-Ornamental_dingbats}', "");
+    Expect(1, 128639, '\P{^Blk=-Ornamental_dingbats}', "");
+    Expect(0, 128640, '\p{Blk=-Ornamental_dingbats}', "");
+    Expect(1, 128640, '\p{^Blk=-Ornamental_dingbats}', "");
+    Expect(1, 128640, '\P{Blk=-Ornamental_dingbats}', "");
+    Expect(0, 128640, '\P{^Blk=-Ornamental_dingbats}', "");
+    Error('\p{Is_Block=-/a/ORNAMENTAL_DINGBATS}');
+    Error('\P{Is_Block=-/a/ORNAMENTAL_DINGBATS}');
     Expect(1, 128639, '\p{Is_Block=ornamentaldingbats}', "");
     Expect(0, 128639, '\p{^Is_Block=ornamentaldingbats}', "");
     Expect(0, 128639, '\P{Is_Block=ornamentaldingbats}', "");
@@ -22220,16 +22788,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128640, '\p{^Is_Block=ornamentaldingbats}', "");
     Expect(1, 128640, '\P{Is_Block=ornamentaldingbats}', "");
     Expect(0, 128640, '\P{^Is_Block=ornamentaldingbats}', "");
-    Expect(1, 128639, '\p{Is_Block=__ornamental_Dingbats}', "");
-    Expect(0, 128639, '\p{^Is_Block=__ornamental_Dingbats}', "");
-    Expect(0, 128639, '\P{Is_Block=__ornamental_Dingbats}', "");
-    Expect(1, 128639, '\P{^Is_Block=__ornamental_Dingbats}', "");
-    Expect(0, 128640, '\p{Is_Block=__ornamental_Dingbats}', "");
-    Expect(1, 128640, '\p{^Is_Block=__ornamental_Dingbats}', "");
-    Expect(1, 128640, '\P{Is_Block=__ornamental_Dingbats}', "");
-    Expect(0, 128640, '\P{^Is_Block=__ornamental_Dingbats}', "");
-    Error('\p{Is_Blk=/a/- Ornamental_dingbats}');
-    Error('\P{Is_Blk=/a/- Ornamental_dingbats}');
+    Expect(1, 128639, '\p{Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(0, 128639, '\p{^Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(0, 128639, '\P{Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(1, 128639, '\P{^Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(0, 128640, '\p{Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(1, 128640, '\p{^Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(1, 128640, '\P{Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Expect(0, 128640, '\P{^Is_Block=		ORNAMENTAL_Dingbats}', "");
+    Error('\p{Is_Blk=-Ornamental_DINGBATS:=}');
+    Error('\P{Is_Blk=-Ornamental_DINGBATS:=}');
     Expect(1, 128639, '\p{Is_Blk=ornamentaldingbats}', "");
     Expect(0, 128639, '\p{^Is_Blk=ornamentaldingbats}', "");
     Expect(0, 128639, '\P{Is_Blk=ornamentaldingbats}', "");
@@ -22238,16 +22806,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128640, '\p{^Is_Blk=ornamentaldingbats}', "");
     Expect(1, 128640, '\P{Is_Blk=ornamentaldingbats}', "");
     Expect(0, 128640, '\P{^Is_Blk=ornamentaldingbats}', "");
-    Expect(1, 128639, '\p{Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(0, 128639, '\p{^Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(0, 128639, '\P{Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(1, 128639, '\P{^Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(0, 128640, '\p{Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(1, 128640, '\p{^Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(1, 128640, '\P{Is_Blk=		Ornamental_DINGBATS}', "");
-    Expect(0, 128640, '\P{^Is_Blk=		Ornamental_DINGBATS}', "");
-    Error('\p{Block=_:=Osage}');
-    Error('\P{Block=_:=Osage}');
+    Expect(1, 128639, '\p{Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(0, 128639, '\p{^Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(0, 128639, '\P{Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(1, 128639, '\P{^Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(0, 128640, '\p{Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(1, 128640, '\p{^Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(1, 128640, '\P{Is_Blk=__ornamental_DINGBATS}', "");
+    Expect(0, 128640, '\P{^Is_Blk=__ornamental_DINGBATS}', "");
+    Error('\p{Block=:=	_Osage}');
+    Error('\P{Block=:=	_Osage}');
     Expect(1, 66815, '\p{Block=:\AOsage\z:}', "");;
     Expect(0, 66816, '\p{Block=:\AOsage\z:}', "");;
     Expect(1, 66815, '\p{Block=osage}', "");
@@ -22260,16 +22828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66816, '\P{^Block=osage}', "");
     Expect(1, 66815, '\p{Block=:\Aosage\z:}', "");;
     Expect(0, 66816, '\p{Block=:\Aosage\z:}', "");;
-    Expect(1, 66815, '\p{Block=	_Osage}', "");
-    Expect(0, 66815, '\p{^Block=	_Osage}', "");
-    Expect(0, 66815, '\P{Block=	_Osage}', "");
-    Expect(1, 66815, '\P{^Block=	_Osage}', "");
-    Expect(0, 66816, '\p{Block=	_Osage}', "");
-    Expect(1, 66816, '\p{^Block=	_Osage}', "");
-    Expect(1, 66816, '\P{Block=	_Osage}', "");
-    Expect(0, 66816, '\P{^Block=	_Osage}', "");
-    Error('\p{Blk=/a/	-Osage}');
-    Error('\P{Blk=/a/	-Osage}');
+    Expect(1, 66815, '\p{Block=_Osage}', "");
+    Expect(0, 66815, '\p{^Block=_Osage}', "");
+    Expect(0, 66815, '\P{Block=_Osage}', "");
+    Expect(1, 66815, '\P{^Block=_Osage}', "");
+    Expect(0, 66816, '\p{Block=_Osage}', "");
+    Expect(1, 66816, '\p{^Block=_Osage}', "");
+    Expect(1, 66816, '\P{Block=_Osage}', "");
+    Expect(0, 66816, '\P{^Block=_Osage}', "");
+    Error('\p{Blk=	 OSAGE:=}');
+    Error('\P{Blk=	 OSAGE:=}');
     Expect(1, 66815, '\p{Blk=:\AOsage\z:}', "");;
     Expect(0, 66816, '\p{Blk=:\AOsage\z:}', "");;
     Expect(1, 66815, '\p{Blk=osage}', "");
@@ -22282,16 +22850,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66816, '\P{^Blk=osage}', "");
     Expect(1, 66815, '\p{Blk=:\Aosage\z:}', "");;
     Expect(0, 66816, '\p{Blk=:\Aosage\z:}', "");;
-    Expect(1, 66815, '\p{Blk=	Osage}', "");
-    Expect(0, 66815, '\p{^Blk=	Osage}', "");
-    Expect(0, 66815, '\P{Blk=	Osage}', "");
-    Expect(1, 66815, '\P{^Blk=	Osage}', "");
-    Expect(0, 66816, '\p{Blk=	Osage}', "");
-    Expect(1, 66816, '\p{^Blk=	Osage}', "");
-    Expect(1, 66816, '\P{Blk=	Osage}', "");
-    Expect(0, 66816, '\P{^Blk=	Osage}', "");
-    Error('\p{Is_Block: := 	osage}');
-    Error('\P{Is_Block: := 	osage}');
+    Expect(1, 66815, '\p{Blk=_-OSAGE}', "");
+    Expect(0, 66815, '\p{^Blk=_-OSAGE}', "");
+    Expect(0, 66815, '\P{Blk=_-OSAGE}', "");
+    Expect(1, 66815, '\P{^Blk=_-OSAGE}', "");
+    Expect(0, 66816, '\p{Blk=_-OSAGE}', "");
+    Expect(1, 66816, '\p{^Blk=_-OSAGE}', "");
+    Expect(1, 66816, '\P{Blk=_-OSAGE}', "");
+    Expect(0, 66816, '\P{^Blk=_-OSAGE}', "");
+    Error('\p{Is_Block=_/a/Osage}');
+    Error('\P{Is_Block=_/a/Osage}');
     Expect(1, 66815, '\p{Is_Block=osage}', "");
     Expect(0, 66815, '\p{^Is_Block=osage}', "");
     Expect(0, 66815, '\P{Is_Block=osage}', "");
@@ -22300,16 +22868,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66816, '\p{^Is_Block=osage}', "");
     Expect(1, 66816, '\P{Is_Block=osage}', "");
     Expect(0, 66816, '\P{^Is_Block=osage}', "");
-    Expect(1, 66815, '\p{Is_Block=	 Osage}', "");
-    Expect(0, 66815, '\p{^Is_Block=	 Osage}', "");
-    Expect(0, 66815, '\P{Is_Block=	 Osage}', "");
-    Expect(1, 66815, '\P{^Is_Block=	 Osage}', "");
-    Expect(0, 66816, '\p{Is_Block=	 Osage}', "");
-    Expect(1, 66816, '\p{^Is_Block=	 Osage}', "");
-    Expect(1, 66816, '\P{Is_Block=	 Osage}', "");
-    Expect(0, 66816, '\P{^Is_Block=	 Osage}', "");
-    Error('\p{Is_Blk=-:=Osage}');
-    Error('\P{Is_Blk=-:=Osage}');
+    Expect(1, 66815, '\p{Is_Block= -osage}', "");
+    Expect(0, 66815, '\p{^Is_Block= -osage}', "");
+    Expect(0, 66815, '\P{Is_Block= -osage}', "");
+    Expect(1, 66815, '\P{^Is_Block= -osage}', "");
+    Expect(0, 66816, '\p{Is_Block= -osage}', "");
+    Expect(1, 66816, '\p{^Is_Block= -osage}', "");
+    Expect(1, 66816, '\P{Is_Block= -osage}', "");
+    Expect(0, 66816, '\P{^Is_Block= -osage}', "");
+    Error('\p{Is_Blk:		 Osage/a/}');
+    Error('\P{Is_Blk:		 Osage/a/}');
     Expect(1, 66815, '\p{Is_Blk=osage}', "");
     Expect(0, 66815, '\p{^Is_Blk=osage}', "");
     Expect(0, 66815, '\P{Is_Blk=osage}', "");
@@ -22318,16 +22886,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66816, '\p{^Is_Blk=osage}', "");
     Expect(1, 66816, '\P{Is_Blk=osage}', "");
     Expect(0, 66816, '\P{^Is_Blk=osage}', "");
-    Expect(1, 66815, '\p{Is_Blk=- OSAGE}', "");
-    Expect(0, 66815, '\p{^Is_Blk=- OSAGE}', "");
-    Expect(0, 66815, '\P{Is_Blk=- OSAGE}', "");
-    Expect(1, 66815, '\P{^Is_Blk=- OSAGE}', "");
-    Expect(0, 66816, '\p{Is_Blk=- OSAGE}', "");
-    Expect(1, 66816, '\p{^Is_Blk=- OSAGE}', "");
-    Expect(1, 66816, '\P{Is_Blk=- OSAGE}', "");
-    Expect(0, 66816, '\P{^Is_Blk=- OSAGE}', "");
-    Error('\p{Block= Osmanya:=}');
-    Error('\P{Block= Osmanya:=}');
+    Expect(1, 66815, '\p{Is_Blk: 	OSAGE}', "");
+    Expect(0, 66815, '\p{^Is_Blk: 	OSAGE}', "");
+    Expect(0, 66815, '\P{Is_Blk: 	OSAGE}', "");
+    Expect(1, 66815, '\P{^Is_Blk: 	OSAGE}', "");
+    Expect(0, 66816, '\p{Is_Blk: 	OSAGE}', "");
+    Expect(1, 66816, '\p{^Is_Blk: 	OSAGE}', "");
+    Expect(1, 66816, '\P{Is_Blk: 	OSAGE}', "");
+    Expect(0, 66816, '\P{^Is_Blk: 	OSAGE}', "");
+    Error('\p{Block= :=OSMANYA}');
+    Error('\P{Block= :=OSMANYA}');
     Expect(1, 66735, '\p{Block=:\AOsmanya\z:}', "");;
     Expect(0, 66736, '\p{Block=:\AOsmanya\z:}', "");;
     Expect(1, 66735, '\p{Block=osmanya}', "");
@@ -22340,16 +22908,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66736, '\P{^Block=osmanya}', "");
     Expect(1, 66735, '\p{Block=:\Aosmanya\z:}', "");;
     Expect(0, 66736, '\p{Block=:\Aosmanya\z:}', "");;
-    Expect(1, 66735, '\p{Block=-_osmanya}', "");
-    Expect(0, 66735, '\p{^Block=-_osmanya}', "");
-    Expect(0, 66735, '\P{Block=-_osmanya}', "");
-    Expect(1, 66735, '\P{^Block=-_osmanya}', "");
-    Expect(0, 66736, '\p{Block=-_osmanya}', "");
-    Expect(1, 66736, '\p{^Block=-_osmanya}', "");
-    Expect(1, 66736, '\P{Block=-_osmanya}', "");
-    Expect(0, 66736, '\P{^Block=-_osmanya}', "");
-    Error('\p{Blk=-:=Osmanya}');
-    Error('\P{Blk=-:=Osmanya}');
+    Expect(1, 66735, '\p{Block=- Osmanya}', "");
+    Expect(0, 66735, '\p{^Block=- Osmanya}', "");
+    Expect(0, 66735, '\P{Block=- Osmanya}', "");
+    Expect(1, 66735, '\P{^Block=- Osmanya}', "");
+    Expect(0, 66736, '\p{Block=- Osmanya}', "");
+    Expect(1, 66736, '\p{^Block=- Osmanya}', "");
+    Expect(1, 66736, '\P{Block=- Osmanya}', "");
+    Expect(0, 66736, '\P{^Block=- Osmanya}', "");
+    Error('\p{Blk=/a/	-Osmanya}');
+    Error('\P{Blk=/a/	-Osmanya}');
     Expect(1, 66735, '\p{Blk=:\AOsmanya\z:}', "");;
     Expect(0, 66736, '\p{Blk=:\AOsmanya\z:}', "");;
     Expect(1, 66735, '\p{Blk=osmanya}', "");
@@ -22362,16 +22930,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66736, '\P{^Blk=osmanya}', "");
     Expect(1, 66735, '\p{Blk=:\Aosmanya\z:}', "");;
     Expect(0, 66736, '\p{Blk=:\Aosmanya\z:}', "");;
-    Expect(1, 66735, '\p{Blk=_osmanya}', "");
-    Expect(0, 66735, '\p{^Blk=_osmanya}', "");
-    Expect(0, 66735, '\P{Blk=_osmanya}', "");
-    Expect(1, 66735, '\P{^Blk=_osmanya}', "");
-    Expect(0, 66736, '\p{Blk=_osmanya}', "");
-    Expect(1, 66736, '\p{^Blk=_osmanya}', "");
-    Expect(1, 66736, '\P{Blk=_osmanya}', "");
-    Expect(0, 66736, '\P{^Blk=_osmanya}', "");
-    Error('\p{Is_Block= -Osmanya:=}');
-    Error('\P{Is_Block= -Osmanya:=}');
+    Expect(1, 66735, '\p{Blk:	  OSMANYA}', "");
+    Expect(0, 66735, '\p{^Blk:	  OSMANYA}', "");
+    Expect(0, 66735, '\P{Blk:	  OSMANYA}', "");
+    Expect(1, 66735, '\P{^Blk:	  OSMANYA}', "");
+    Expect(0, 66736, '\p{Blk:	  OSMANYA}', "");
+    Expect(1, 66736, '\p{^Blk:	  OSMANYA}', "");
+    Expect(1, 66736, '\P{Blk:	  OSMANYA}', "");
+    Expect(0, 66736, '\P{^Blk:	  OSMANYA}', "");
+    Error('\p{Is_Block=_/a/OSMANYA}');
+    Error('\P{Is_Block=_/a/OSMANYA}');
     Expect(1, 66735, '\p{Is_Block=osmanya}', "");
     Expect(0, 66735, '\p{^Is_Block=osmanya}', "");
     Expect(0, 66735, '\P{Is_Block=osmanya}', "");
@@ -22380,16 +22948,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66736, '\p{^Is_Block=osmanya}', "");
     Expect(1, 66736, '\P{Is_Block=osmanya}', "");
     Expect(0, 66736, '\P{^Is_Block=osmanya}', "");
-    Expect(1, 66735, '\p{Is_Block=	Osmanya}', "");
-    Expect(0, 66735, '\p{^Is_Block=	Osmanya}', "");
-    Expect(0, 66735, '\P{Is_Block=	Osmanya}', "");
-    Expect(1, 66735, '\P{^Is_Block=	Osmanya}', "");
-    Expect(0, 66736, '\p{Is_Block=	Osmanya}', "");
-    Expect(1, 66736, '\p{^Is_Block=	Osmanya}', "");
-    Expect(1, 66736, '\P{Is_Block=	Osmanya}', "");
-    Expect(0, 66736, '\P{^Is_Block=	Osmanya}', "");
-    Error('\p{Is_Blk:	 OSMANYA:=}');
-    Error('\P{Is_Blk:	 OSMANYA:=}');
+    Expect(1, 66735, '\p{Is_Block=Osmanya}', "");
+    Expect(0, 66735, '\p{^Is_Block=Osmanya}', "");
+    Expect(0, 66735, '\P{Is_Block=Osmanya}', "");
+    Expect(1, 66735, '\P{^Is_Block=Osmanya}', "");
+    Expect(0, 66736, '\p{Is_Block=Osmanya}', "");
+    Expect(1, 66736, '\p{^Is_Block=Osmanya}', "");
+    Expect(1, 66736, '\P{Is_Block=Osmanya}', "");
+    Expect(0, 66736, '\P{^Is_Block=Osmanya}', "");
+    Error('\p{Is_Blk=_osmanya:=}');
+    Error('\P{Is_Blk=_osmanya:=}');
     Expect(1, 66735, '\p{Is_Blk=osmanya}', "");
     Expect(0, 66735, '\p{^Is_Blk=osmanya}', "");
     Expect(0, 66735, '\P{Is_Blk=osmanya}', "");
@@ -22398,60 +22966,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66736, '\p{^Is_Blk=osmanya}', "");
     Expect(1, 66736, '\P{Is_Blk=osmanya}', "");
     Expect(0, 66736, '\P{^Is_Blk=osmanya}', "");
-    Expect(1, 66735, '\p{Is_Blk= -Osmanya}', "");
-    Expect(0, 66735, '\p{^Is_Blk= -Osmanya}', "");
-    Expect(0, 66735, '\P{Is_Blk= -Osmanya}', "");
-    Expect(1, 66735, '\P{^Is_Blk= -Osmanya}', "");
-    Expect(0, 66736, '\p{Is_Blk= -Osmanya}', "");
-    Expect(1, 66736, '\p{^Is_Blk= -Osmanya}', "");
-    Expect(1, 66736, '\P{Is_Blk= -Osmanya}', "");
-    Expect(0, 66736, '\P{^Is_Blk= -Osmanya}', "");
-    Error('\p{Block=_ Ottoman_siyaq_NUMBERS/a/}');
-    Error('\P{Block=_ Ottoman_siyaq_NUMBERS/a/}');
+    Expect(1, 66735, '\p{Is_Blk=		Osmanya}', "");
+    Expect(0, 66735, '\p{^Is_Blk=		Osmanya}', "");
+    Expect(0, 66735, '\P{Is_Blk=		Osmanya}', "");
+    Expect(1, 66735, '\P{^Is_Blk=		Osmanya}', "");
+    Expect(0, 66736, '\p{Is_Blk=		Osmanya}', "");
+    Expect(1, 66736, '\p{^Is_Blk=		Osmanya}', "");
+    Expect(1, 66736, '\P{Is_Blk=		Osmanya}', "");
+    Expect(0, 66736, '\P{^Is_Blk=		Osmanya}', "");
+    Error('\p{Block:/a/	Ottoman_Siyaq_Numbers}');
+    Error('\P{Block:/a/	Ottoman_Siyaq_Numbers}');
     Expect(1, 126287, '\p{Block=:\AOttoman_Siyaq_Numbers\z:}', "");;
     Expect(0, 126288, '\p{Block=:\AOttoman_Siyaq_Numbers\z:}', "");;
-    Expect(1, 126287, '\p{Block=ottomansiyaqnumbers}', "");
-    Expect(0, 126287, '\p{^Block=ottomansiyaqnumbers}', "");
-    Expect(0, 126287, '\P{Block=ottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\P{^Block=ottomansiyaqnumbers}', "");
-    Expect(0, 126288, '\p{Block=ottomansiyaqnumbers}', "");
-    Expect(1, 126288, '\p{^Block=ottomansiyaqnumbers}', "");
-    Expect(1, 126288, '\P{Block=ottomansiyaqnumbers}', "");
-    Expect(0, 126288, '\P{^Block=ottomansiyaqnumbers}', "");
+    Expect(1, 126287, '\p{Block: ottomansiyaqnumbers}', "");
+    Expect(0, 126287, '\p{^Block: ottomansiyaqnumbers}', "");
+    Expect(0, 126287, '\P{Block: ottomansiyaqnumbers}', "");
+    Expect(1, 126287, '\P{^Block: ottomansiyaqnumbers}', "");
+    Expect(0, 126288, '\p{Block: ottomansiyaqnumbers}', "");
+    Expect(1, 126288, '\p{^Block: ottomansiyaqnumbers}', "");
+    Expect(1, 126288, '\P{Block: ottomansiyaqnumbers}', "");
+    Expect(0, 126288, '\P{^Block: ottomansiyaqnumbers}', "");
     Expect(1, 126287, '\p{Block=:\Aottomansiyaqnumbers\z:}', "");;
     Expect(0, 126288, '\p{Block=:\Aottomansiyaqnumbers\z:}', "");;
-    Expect(1, 126287, '\p{Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(0, 126287, '\p{^Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(0, 126287, '\P{Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(1, 126287, '\P{^Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(0, 126288, '\p{Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(1, 126288, '\p{^Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(1, 126288, '\P{Block=		ottoman_Siyaq_Numbers}', "");
-    Expect(0, 126288, '\P{^Block=		ottoman_Siyaq_Numbers}', "");
-    Error('\p{Blk=:=  OTTOMAN_Siyaq_NUMBERS}');
-    Error('\P{Blk=:=  OTTOMAN_Siyaq_NUMBERS}');
+    Expect(1, 126287, '\p{Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\p{^Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\P{Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(1, 126287, '\P{^Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\p{Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\p{^Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\P{Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\P{^Block=_OTTOMAN_Siyaq_Numbers}', "");
+    Error('\p{Blk=/a/	_Ottoman_Siyaq_NUMBERS}');
+    Error('\P{Blk=/a/	_Ottoman_Siyaq_NUMBERS}');
     Expect(1, 126287, '\p{Blk=:\AOttoman_Siyaq_Numbers\z:}', "");;
     Expect(0, 126288, '\p{Blk=:\AOttoman_Siyaq_Numbers\z:}', "");;
-    Expect(1, 126287, '\p{Blk:	ottomansiyaqnumbers}', "");
-    Expect(0, 126287, '\p{^Blk:	ottomansiyaqnumbers}', "");
-    Expect(0, 126287, '\P{Blk:	ottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\P{^Blk:	ottomansiyaqnumbers}', "");
-    Expect(0, 126288, '\p{Blk:	ottomansiyaqnumbers}', "");
-    Expect(1, 126288, '\p{^Blk:	ottomansiyaqnumbers}', "");
-    Expect(1, 126288, '\P{Blk:	ottomansiyaqnumbers}', "");
-    Expect(0, 126288, '\P{^Blk:	ottomansiyaqnumbers}', "");
+    Expect(1, 126287, '\p{Blk=ottomansiyaqnumbers}', "");
+    Expect(0, 126287, '\p{^Blk=ottomansiyaqnumbers}', "");
+    Expect(0, 126287, '\P{Blk=ottomansiyaqnumbers}', "");
+    Expect(1, 126287, '\P{^Blk=ottomansiyaqnumbers}', "");
+    Expect(0, 126288, '\p{Blk=ottomansiyaqnumbers}', "");
+    Expect(1, 126288, '\p{^Blk=ottomansiyaqnumbers}', "");
+    Expect(1, 126288, '\P{Blk=ottomansiyaqnumbers}', "");
+    Expect(0, 126288, '\P{^Blk=ottomansiyaqnumbers}', "");
     Expect(1, 126287, '\p{Blk=:\Aottomansiyaqnumbers\z:}', "");;
     Expect(0, 126288, '\p{Blk=:\Aottomansiyaqnumbers\z:}', "");;
-    Expect(1, 126287, '\p{Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\p{^Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\P{Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126287, '\P{^Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\p{Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\p{^Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\P{Blk=ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\P{^Blk=ottoman_Siyaq_NUMBERS}', "");
-    Error('\p{Is_Block: :=_ottoman_siyaq_numbers}');
-    Error('\P{Is_Block: :=_ottoman_siyaq_numbers}');
+    Expect(1, 126287, '\p{Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(0, 126287, '\p{^Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(0, 126287, '\P{Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(1, 126287, '\P{^Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(0, 126288, '\p{Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(1, 126288, '\p{^Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(1, 126288, '\P{Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Expect(0, 126288, '\P{^Blk= Ottoman_Siyaq_NUMBERS}', "");
+    Error('\p{Is_Block=:=-	ottoman_Siyaq_Numbers}');
+    Error('\P{Is_Block=:=-	ottoman_Siyaq_Numbers}');
     Expect(1, 126287, '\p{Is_Block=ottomansiyaqnumbers}', "");
     Expect(0, 126287, '\p{^Is_Block=ottomansiyaqnumbers}', "");
     Expect(0, 126287, '\P{Is_Block=ottomansiyaqnumbers}', "");
@@ -22460,16 +23028,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126288, '\p{^Is_Block=ottomansiyaqnumbers}', "");
     Expect(1, 126288, '\P{Is_Block=ottomansiyaqnumbers}', "");
     Expect(0, 126288, '\P{^Is_Block=ottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\p{Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\p{^Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\P{Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(1, 126287, '\P{^Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\p{Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\p{^Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\P{Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\P{^Is_Block=__Ottoman_siyaq_NUMBERS}', "");
-    Error('\p{Is_Blk=- Ottoman_Siyaq_numbers/a/}');
-    Error('\P{Is_Blk=- Ottoman_Siyaq_numbers/a/}');
+    Expect(1, 126287, '\p{Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\p{^Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\P{Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126287, '\P{^Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\p{Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\p{^Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\P{Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\P{^Is_Block=_ Ottoman_Siyaq_Numbers}', "");
+    Error('\p{Is_Blk=:=-Ottoman_siyaq_Numbers}');
+    Error('\P{Is_Blk=:=-Ottoman_siyaq_Numbers}');
     Expect(1, 126287, '\p{Is_Blk=ottomansiyaqnumbers}', "");
     Expect(0, 126287, '\p{^Is_Blk=ottomansiyaqnumbers}', "");
     Expect(0, 126287, '\P{Is_Blk=ottomansiyaqnumbers}', "");
@@ -22478,16 +23046,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 126288, '\p{^Is_Blk=ottomansiyaqnumbers}', "");
     Expect(1, 126288, '\P{Is_Blk=ottomansiyaqnumbers}', "");
     Expect(0, 126288, '\P{^Is_Blk=ottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\p{Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\p{^Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\P{Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126287, '\P{^Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\p{Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\p{^Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\P{Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\P{^Is_Blk: _Ottoman_Siyaq_NUMBERS}', "");
-    Error('\p{Block=:=_Pahawh_HMONG}');
-    Error('\P{Block=:=_Pahawh_HMONG}');
+    Expect(1, 126287, '\p{Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\p{^Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\P{Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126287, '\P{^Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\p{Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\p{^Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\P{Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\P{^Is_Blk=_Ottoman_Siyaq_Numbers}', "");
+    Error('\p{Block= /a/PAHAWH_Hmong}');
+    Error('\P{Block= /a/PAHAWH_Hmong}');
     Expect(1, 93071, '\p{Block=:\APahawh_Hmong\z:}', "");;
     Expect(0, 93072, '\p{Block=:\APahawh_Hmong\z:}', "");;
     Expect(1, 93071, '\p{Block=pahawhhmong}', "");
@@ -22500,38 +23068,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 93072, '\P{^Block=pahawhhmong}', "");
     Expect(1, 93071, '\p{Block=:\Apahawhhmong\z:}', "");;
     Expect(0, 93072, '\p{Block=:\Apahawhhmong\z:}', "");;
-    Expect(1, 93071, '\p{Block=_-Pahawh_HMONG}', "");
-    Expect(0, 93071, '\p{^Block=_-Pahawh_HMONG}', "");
-    Expect(0, 93071, '\P{Block=_-Pahawh_HMONG}', "");
-    Expect(1, 93071, '\P{^Block=_-Pahawh_HMONG}', "");
-    Expect(0, 93072, '\p{Block=_-Pahawh_HMONG}', "");
-    Expect(1, 93072, '\p{^Block=_-Pahawh_HMONG}', "");
-    Expect(1, 93072, '\P{Block=_-Pahawh_HMONG}', "");
-    Expect(0, 93072, '\P{^Block=_-Pahawh_HMONG}', "");
-    Error('\p{Blk=/a/	pahawh_HMONG}');
-    Error('\P{Blk=/a/	pahawh_HMONG}');
+    Expect(1, 93071, '\p{Block=	_pahawh_hmong}', "");
+    Expect(0, 93071, '\p{^Block=	_pahawh_hmong}', "");
+    Expect(0, 93071, '\P{Block=	_pahawh_hmong}', "");
+    Expect(1, 93071, '\P{^Block=	_pahawh_hmong}', "");
+    Expect(0, 93072, '\p{Block=	_pahawh_hmong}', "");
+    Expect(1, 93072, '\p{^Block=	_pahawh_hmong}', "");
+    Expect(1, 93072, '\P{Block=	_pahawh_hmong}', "");
+    Expect(0, 93072, '\P{^Block=	_pahawh_hmong}', "");
+    Error('\p{Blk:   :=	 pahawh_hmong}');
+    Error('\P{Blk:   :=	 pahawh_hmong}');
     Expect(1, 93071, '\p{Blk=:\APahawh_Hmong\z:}', "");;
     Expect(0, 93072, '\p{Blk=:\APahawh_Hmong\z:}', "");;
-    Expect(1, 93071, '\p{Blk:   pahawhhmong}', "");
-    Expect(0, 93071, '\p{^Blk:   pahawhhmong}', "");
-    Expect(0, 93071, '\P{Blk:   pahawhhmong}', "");
-    Expect(1, 93071, '\P{^Blk:   pahawhhmong}', "");
-    Expect(0, 93072, '\p{Blk:   pahawhhmong}', "");
-    Expect(1, 93072, '\p{^Blk:   pahawhhmong}', "");
-    Expect(1, 93072, '\P{Blk:   pahawhhmong}', "");
-    Expect(0, 93072, '\P{^Blk:   pahawhhmong}', "");
+    Expect(1, 93071, '\p{Blk=pahawhhmong}', "");
+    Expect(0, 93071, '\p{^Blk=pahawhhmong}', "");
+    Expect(0, 93071, '\P{Blk=pahawhhmong}', "");
+    Expect(1, 93071, '\P{^Blk=pahawhhmong}', "");
+    Expect(0, 93072, '\p{Blk=pahawhhmong}', "");
+    Expect(1, 93072, '\p{^Blk=pahawhhmong}', "");
+    Expect(1, 93072, '\P{Blk=pahawhhmong}', "");
+    Expect(0, 93072, '\P{^Blk=pahawhhmong}', "");
     Expect(1, 93071, '\p{Blk=:\Apahawhhmong\z:}', "");;
     Expect(0, 93072, '\p{Blk=:\Apahawhhmong\z:}', "");;
-    Expect(1, 93071, '\p{Blk=- Pahawh_HMONG}', "");
-    Expect(0, 93071, '\p{^Blk=- Pahawh_HMONG}', "");
-    Expect(0, 93071, '\P{Blk=- Pahawh_HMONG}', "");
-    Expect(1, 93071, '\P{^Blk=- Pahawh_HMONG}', "");
-    Expect(0, 93072, '\p{Blk=- Pahawh_HMONG}', "");
-    Expect(1, 93072, '\p{^Blk=- Pahawh_HMONG}', "");
-    Expect(1, 93072, '\P{Blk=- Pahawh_HMONG}', "");
-    Expect(0, 93072, '\P{^Blk=- Pahawh_HMONG}', "");
-    Error('\p{Is_Block=:=_	pahawh_Hmong}');
-    Error('\P{Is_Block=:=_	pahawh_Hmong}');
+    Expect(1, 93071, '\p{Blk= Pahawh_hmong}', "");
+    Expect(0, 93071, '\p{^Blk= Pahawh_hmong}', "");
+    Expect(0, 93071, '\P{Blk= Pahawh_hmong}', "");
+    Expect(1, 93071, '\P{^Blk= Pahawh_hmong}', "");
+    Expect(0, 93072, '\p{Blk= Pahawh_hmong}', "");
+    Expect(1, 93072, '\p{^Blk= Pahawh_hmong}', "");
+    Expect(1, 93072, '\P{Blk= Pahawh_hmong}', "");
+    Expect(0, 93072, '\P{^Blk= Pahawh_hmong}', "");
+    Error('\p{Is_Block=_/a/pahawh_HMONG}');
+    Error('\P{Is_Block=_/a/pahawh_HMONG}');
     Expect(1, 93071, '\p{Is_Block=pahawhhmong}', "");
     Expect(0, 93071, '\p{^Is_Block=pahawhhmong}', "");
     Expect(0, 93071, '\P{Is_Block=pahawhhmong}', "");
@@ -22540,16 +23108,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 93072, '\p{^Is_Block=pahawhhmong}', "");
     Expect(1, 93072, '\P{Is_Block=pahawhhmong}', "");
     Expect(0, 93072, '\P{^Is_Block=pahawhhmong}', "");
-    Expect(1, 93071, '\p{Is_Block= _Pahawh_HMONG}', "");
-    Expect(0, 93071, '\p{^Is_Block= _Pahawh_HMONG}', "");
-    Expect(0, 93071, '\P{Is_Block= _Pahawh_HMONG}', "");
-    Expect(1, 93071, '\P{^Is_Block= _Pahawh_HMONG}', "");
-    Expect(0, 93072, '\p{Is_Block= _Pahawh_HMONG}', "");
-    Expect(1, 93072, '\p{^Is_Block= _Pahawh_HMONG}', "");
-    Expect(1, 93072, '\P{Is_Block= _Pahawh_HMONG}', "");
-    Expect(0, 93072, '\P{^Is_Block= _Pahawh_HMONG}', "");
-    Error('\p{Is_Blk=:=_ Pahawh_Hmong}');
-    Error('\P{Is_Blk=:=_ Pahawh_Hmong}');
+    Expect(1, 93071, '\p{Is_Block= -Pahawh_hmong}', "");
+    Expect(0, 93071, '\p{^Is_Block= -Pahawh_hmong}', "");
+    Expect(0, 93071, '\P{Is_Block= -Pahawh_hmong}', "");
+    Expect(1, 93071, '\P{^Is_Block= -Pahawh_hmong}', "");
+    Expect(0, 93072, '\p{Is_Block= -Pahawh_hmong}', "");
+    Expect(1, 93072, '\p{^Is_Block= -Pahawh_hmong}', "");
+    Expect(1, 93072, '\P{Is_Block= -Pahawh_hmong}', "");
+    Expect(0, 93072, '\P{^Is_Block= -Pahawh_hmong}', "");
+    Error('\p{Is_Blk=:=PAHAWH_Hmong}');
+    Error('\P{Is_Blk=:=PAHAWH_Hmong}');
     Expect(1, 93071, '\p{Is_Blk=pahawhhmong}', "");
     Expect(0, 93071, '\p{^Is_Blk=pahawhhmong}', "");
     Expect(0, 93071, '\P{Is_Blk=pahawhhmong}', "");
@@ -22558,16 +23126,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 93072, '\p{^Is_Blk=pahawhhmong}', "");
     Expect(1, 93072, '\P{Is_Blk=pahawhhmong}', "");
     Expect(0, 93072, '\P{^Is_Blk=pahawhhmong}', "");
-    Expect(1, 93071, '\p{Is_Blk=-_pahawh_HMONG}', "");
-    Expect(0, 93071, '\p{^Is_Blk=-_pahawh_HMONG}', "");
-    Expect(0, 93071, '\P{Is_Blk=-_pahawh_HMONG}', "");
-    Expect(1, 93071, '\P{^Is_Blk=-_pahawh_HMONG}', "");
-    Expect(0, 93072, '\p{Is_Blk=-_pahawh_HMONG}', "");
-    Expect(1, 93072, '\p{^Is_Blk=-_pahawh_HMONG}', "");
-    Expect(1, 93072, '\P{Is_Blk=-_pahawh_HMONG}', "");
-    Expect(0, 93072, '\P{^Is_Blk=-_pahawh_HMONG}', "");
-    Error('\p{Block=/a/Palmyrene}');
-    Error('\P{Block=/a/Palmyrene}');
+    Expect(1, 93071, '\p{Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(0, 93071, '\p{^Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(0, 93071, '\P{Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(1, 93071, '\P{^Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(0, 93072, '\p{Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(1, 93072, '\p{^Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(1, 93072, '\P{Is_Blk=-_Pahawh_Hmong}', "");
+    Expect(0, 93072, '\P{^Is_Blk=-_Pahawh_Hmong}', "");
+    Error('\p{Block=_PALMYRENE:=}');
+    Error('\P{Block=_PALMYRENE:=}');
     Expect(1, 67711, '\p{Block=:\APalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Block=:\APalmyrene\z:}', "");;
     Expect(1, 67711, '\p{Block=palmyrene}', "");
@@ -22580,16 +23148,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67712, '\P{^Block=palmyrene}', "");
     Expect(1, 67711, '\p{Block=:\Apalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Block=:\Apalmyrene\z:}', "");;
-    Expect(1, 67711, '\p{Block=_Palmyrene}', "");
-    Expect(0, 67711, '\p{^Block=_Palmyrene}', "");
-    Expect(0, 67711, '\P{Block=_Palmyrene}', "");
-    Expect(1, 67711, '\P{^Block=_Palmyrene}', "");
-    Expect(0, 67712, '\p{Block=_Palmyrene}', "");
-    Expect(1, 67712, '\p{^Block=_Palmyrene}', "");
-    Expect(1, 67712, '\P{Block=_Palmyrene}', "");
-    Expect(0, 67712, '\P{^Block=_Palmyrene}', "");
-    Error('\p{Blk=/a/Palmyrene}');
-    Error('\P{Blk=/a/Palmyrene}');
+    Expect(1, 67711, '\p{Block=	-Palmyrene}', "");
+    Expect(0, 67711, '\p{^Block=	-Palmyrene}', "");
+    Expect(0, 67711, '\P{Block=	-Palmyrene}', "");
+    Expect(1, 67711, '\P{^Block=	-Palmyrene}', "");
+    Expect(0, 67712, '\p{Block=	-Palmyrene}', "");
+    Expect(1, 67712, '\p{^Block=	-Palmyrene}', "");
+    Expect(1, 67712, '\P{Block=	-Palmyrene}', "");
+    Expect(0, 67712, '\P{^Block=	-Palmyrene}', "");
+    Error('\p{Blk:	:=  palmyrene}');
+    Error('\P{Blk:	:=  palmyrene}');
     Expect(1, 67711, '\p{Blk=:\APalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Blk=:\APalmyrene\z:}', "");;
     Expect(1, 67711, '\p{Blk=palmyrene}', "");
@@ -22602,16 +23170,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67712, '\P{^Blk=palmyrene}', "");
     Expect(1, 67711, '\p{Blk=:\Apalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Blk=:\Apalmyrene\z:}', "");;
-    Expect(1, 67711, '\p{Blk=--Palmyrene}', "");
-    Expect(0, 67711, '\p{^Blk=--Palmyrene}', "");
-    Expect(0, 67711, '\P{Blk=--Palmyrene}', "");
-    Expect(1, 67711, '\P{^Blk=--Palmyrene}', "");
-    Expect(0, 67712, '\p{Blk=--Palmyrene}', "");
-    Expect(1, 67712, '\p{^Blk=--Palmyrene}', "");
-    Expect(1, 67712, '\P{Blk=--Palmyrene}', "");
-    Expect(0, 67712, '\P{^Blk=--Palmyrene}', "");
-    Error('\p{Is_Block=	 Palmyrene/a/}');
-    Error('\P{Is_Block=	 Palmyrene/a/}');
+    Expect(1, 67711, '\p{Blk=_ Palmyrene}', "");
+    Expect(0, 67711, '\p{^Blk=_ Palmyrene}', "");
+    Expect(0, 67711, '\P{Blk=_ Palmyrene}', "");
+    Expect(1, 67711, '\P{^Blk=_ Palmyrene}', "");
+    Expect(0, 67712, '\p{Blk=_ Palmyrene}', "");
+    Expect(1, 67712, '\p{^Blk=_ Palmyrene}', "");
+    Expect(1, 67712, '\P{Blk=_ Palmyrene}', "");
+    Expect(0, 67712, '\P{^Blk=_ Palmyrene}', "");
+    Error('\p{Is_Block=_ palmyrene/a/}');
+    Error('\P{Is_Block=_ palmyrene/a/}');
     Expect(1, 67711, '\p{Is_Block=palmyrene}', "");
     Expect(0, 67711, '\p{^Is_Block=palmyrene}', "");
     Expect(0, 67711, '\P{Is_Block=palmyrene}', "");
@@ -22620,34 +23188,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67712, '\p{^Is_Block=palmyrene}', "");
     Expect(1, 67712, '\P{Is_Block=palmyrene}', "");
     Expect(0, 67712, '\P{^Is_Block=palmyrene}', "");
-    Expect(1, 67711, '\p{Is_Block= -PALMYRENE}', "");
-    Expect(0, 67711, '\p{^Is_Block= -PALMYRENE}', "");
-    Expect(0, 67711, '\P{Is_Block= -PALMYRENE}', "");
-    Expect(1, 67711, '\P{^Is_Block= -PALMYRENE}', "");
-    Expect(0, 67712, '\p{Is_Block= -PALMYRENE}', "");
-    Expect(1, 67712, '\p{^Is_Block= -PALMYRENE}', "");
-    Expect(1, 67712, '\P{Is_Block= -PALMYRENE}', "");
-    Expect(0, 67712, '\P{^Is_Block= -PALMYRENE}', "");
-    Error('\p{Is_Blk=:=_	palmyrene}');
-    Error('\P{Is_Blk=:=_	palmyrene}');
-    Expect(1, 67711, '\p{Is_Blk:palmyrene}', "");
-    Expect(0, 67711, '\p{^Is_Blk:palmyrene}', "");
-    Expect(0, 67711, '\P{Is_Blk:palmyrene}', "");
-    Expect(1, 67711, '\P{^Is_Blk:palmyrene}', "");
-    Expect(0, 67712, '\p{Is_Blk:palmyrene}', "");
-    Expect(1, 67712, '\p{^Is_Blk:palmyrene}', "");
-    Expect(1, 67712, '\P{Is_Blk:palmyrene}', "");
-    Expect(0, 67712, '\P{^Is_Blk:palmyrene}', "");
-    Expect(1, 67711, '\p{Is_Blk=-	Palmyrene}', "");
-    Expect(0, 67711, '\p{^Is_Blk=-	Palmyrene}', "");
-    Expect(0, 67711, '\P{Is_Blk=-	Palmyrene}', "");
-    Expect(1, 67711, '\P{^Is_Blk=-	Palmyrene}', "");
-    Expect(0, 67712, '\p{Is_Blk=-	Palmyrene}', "");
-    Expect(1, 67712, '\p{^Is_Blk=-	Palmyrene}', "");
-    Expect(1, 67712, '\P{Is_Blk=-	Palmyrene}', "");
-    Expect(0, 67712, '\P{^Is_Blk=-	Palmyrene}', "");
-    Error('\p{Block=-PAU_CIN_Hau:=}');
-    Error('\P{Block=-PAU_CIN_Hau:=}');
+    Expect(1, 67711, '\p{Is_Block=_Palmyrene}', "");
+    Expect(0, 67711, '\p{^Is_Block=_Palmyrene}', "");
+    Expect(0, 67711, '\P{Is_Block=_Palmyrene}', "");
+    Expect(1, 67711, '\P{^Is_Block=_Palmyrene}', "");
+    Expect(0, 67712, '\p{Is_Block=_Palmyrene}', "");
+    Expect(1, 67712, '\p{^Is_Block=_Palmyrene}', "");
+    Expect(1, 67712, '\P{Is_Block=_Palmyrene}', "");
+    Expect(0, 67712, '\P{^Is_Block=_Palmyrene}', "");
+    Error('\p{Is_Blk= /a/Palmyrene}');
+    Error('\P{Is_Blk= /a/Palmyrene}');
+    Expect(1, 67711, '\p{Is_Blk=palmyrene}', "");
+    Expect(0, 67711, '\p{^Is_Blk=palmyrene}', "");
+    Expect(0, 67711, '\P{Is_Blk=palmyrene}', "");
+    Expect(1, 67711, '\P{^Is_Blk=palmyrene}', "");
+    Expect(0, 67712, '\p{Is_Blk=palmyrene}', "");
+    Expect(1, 67712, '\p{^Is_Blk=palmyrene}', "");
+    Expect(1, 67712, '\P{Is_Blk=palmyrene}', "");
+    Expect(0, 67712, '\P{^Is_Blk=palmyrene}', "");
+    Expect(1, 67711, '\p{Is_Blk=	 palmyrene}', "");
+    Expect(0, 67711, '\p{^Is_Blk=	 palmyrene}', "");
+    Expect(0, 67711, '\P{Is_Blk=	 palmyrene}', "");
+    Expect(1, 67711, '\P{^Is_Blk=	 palmyrene}', "");
+    Expect(0, 67712, '\p{Is_Blk=	 palmyrene}', "");
+    Expect(1, 67712, '\p{^Is_Blk=	 palmyrene}', "");
+    Expect(1, 67712, '\P{Is_Blk=	 palmyrene}', "");
+    Expect(0, 67712, '\P{^Is_Blk=	 palmyrene}', "");
+    Error('\p{Block=/a/  Pau_cin_Hau}');
+    Error('\P{Block=/a/  Pau_cin_Hau}');
     Expect(1, 72447, '\p{Block=:\APau_Cin_Hau\z:}', "");;
     Expect(0, 72448, '\p{Block=:\APau_Cin_Hau\z:}', "");;
     Expect(1, 72447, '\p{Block=paucinhau}', "");
@@ -22660,16 +23228,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72448, '\P{^Block=paucinhau}', "");
     Expect(1, 72447, '\p{Block=:\Apaucinhau\z:}', "");;
     Expect(0, 72448, '\p{Block=:\Apaucinhau\z:}', "");;
-    Expect(1, 72447, '\p{Block=	Pau_Cin_Hau}', "");
-    Expect(0, 72447, '\p{^Block=	Pau_Cin_Hau}', "");
-    Expect(0, 72447, '\P{Block=	Pau_Cin_Hau}', "");
-    Expect(1, 72447, '\P{^Block=	Pau_Cin_Hau}', "");
-    Expect(0, 72448, '\p{Block=	Pau_Cin_Hau}', "");
-    Expect(1, 72448, '\p{^Block=	Pau_Cin_Hau}', "");
-    Expect(1, 72448, '\P{Block=	Pau_Cin_Hau}', "");
-    Expect(0, 72448, '\P{^Block=	Pau_Cin_Hau}', "");
-    Error('\p{Blk=/a/- Pau_Cin_Hau}');
-    Error('\P{Blk=/a/- Pau_Cin_Hau}');
+    Expect(1, 72447, '\p{Block=- Pau_Cin_Hau}', "");
+    Expect(0, 72447, '\p{^Block=- Pau_Cin_Hau}', "");
+    Expect(0, 72447, '\P{Block=- Pau_Cin_Hau}', "");
+    Expect(1, 72447, '\P{^Block=- Pau_Cin_Hau}', "");
+    Expect(0, 72448, '\p{Block=- Pau_Cin_Hau}', "");
+    Expect(1, 72448, '\p{^Block=- Pau_Cin_Hau}', "");
+    Expect(1, 72448, '\P{Block=- Pau_Cin_Hau}', "");
+    Expect(0, 72448, '\P{^Block=- Pau_Cin_Hau}', "");
+    Error('\p{Blk= 	Pau_Cin_Hau:=}');
+    Error('\P{Blk= 	Pau_Cin_Hau:=}');
     Expect(1, 72447, '\p{Blk=:\APau_Cin_Hau\z:}', "");;
     Expect(0, 72448, '\p{Blk=:\APau_Cin_Hau\z:}', "");;
     Expect(1, 72447, '\p{Blk=paucinhau}', "");
@@ -22682,16 +23250,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72448, '\P{^Blk=paucinhau}', "");
     Expect(1, 72447, '\p{Blk=:\Apaucinhau\z:}', "");;
     Expect(0, 72448, '\p{Blk=:\Apaucinhau\z:}', "");;
-    Expect(1, 72447, '\p{Blk=-Pau_CIN_HAU}', "");
-    Expect(0, 72447, '\p{^Blk=-Pau_CIN_HAU}', "");
-    Expect(0, 72447, '\P{Blk=-Pau_CIN_HAU}', "");
-    Expect(1, 72447, '\P{^Blk=-Pau_CIN_HAU}', "");
-    Expect(0, 72448, '\p{Blk=-Pau_CIN_HAU}', "");
-    Expect(1, 72448, '\p{^Blk=-Pau_CIN_HAU}', "");
-    Expect(1, 72448, '\P{Blk=-Pau_CIN_HAU}', "");
-    Expect(0, 72448, '\P{^Blk=-Pau_CIN_HAU}', "");
-    Error('\p{Is_Block=:= pau_CIN_Hau}');
-    Error('\P{Is_Block=:= pau_CIN_Hau}');
+    Expect(1, 72447, '\p{Blk:	-pau_cin_Hau}', "");
+    Expect(0, 72447, '\p{^Blk:	-pau_cin_Hau}', "");
+    Expect(0, 72447, '\P{Blk:	-pau_cin_Hau}', "");
+    Expect(1, 72447, '\P{^Blk:	-pau_cin_Hau}', "");
+    Expect(0, 72448, '\p{Blk:	-pau_cin_Hau}', "");
+    Expect(1, 72448, '\p{^Blk:	-pau_cin_Hau}', "");
+    Expect(1, 72448, '\P{Blk:	-pau_cin_Hau}', "");
+    Expect(0, 72448, '\P{^Blk:	-pau_cin_Hau}', "");
+    Error('\p{Is_Block=	-pau_CIN_Hau:=}');
+    Error('\P{Is_Block=	-pau_CIN_Hau:=}');
     Expect(1, 72447, '\p{Is_Block=paucinhau}', "");
     Expect(0, 72447, '\p{^Is_Block=paucinhau}', "");
     Expect(0, 72447, '\P{Is_Block=paucinhau}', "");
@@ -22700,16 +23268,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72448, '\p{^Is_Block=paucinhau}', "");
     Expect(1, 72448, '\P{Is_Block=paucinhau}', "");
     Expect(0, 72448, '\P{^Is_Block=paucinhau}', "");
-    Expect(1, 72447, '\p{Is_Block=	 pau_cin_hau}', "");
-    Expect(0, 72447, '\p{^Is_Block=	 pau_cin_hau}', "");
-    Expect(0, 72447, '\P{Is_Block=	 pau_cin_hau}', "");
-    Expect(1, 72447, '\P{^Is_Block=	 pau_cin_hau}', "");
-    Expect(0, 72448, '\p{Is_Block=	 pau_cin_hau}', "");
-    Expect(1, 72448, '\p{^Is_Block=	 pau_cin_hau}', "");
-    Expect(1, 72448, '\P{Is_Block=	 pau_cin_hau}', "");
-    Expect(0, 72448, '\P{^Is_Block=	 pau_cin_hau}', "");
-    Error('\p{Is_Blk=:=	-Pau_Cin_Hau}');
-    Error('\P{Is_Blk=:=	-Pau_Cin_Hau}');
+    Expect(1, 72447, '\p{Is_Block= -pau_CIN_HAU}', "");
+    Expect(0, 72447, '\p{^Is_Block= -pau_CIN_HAU}', "");
+    Expect(0, 72447, '\P{Is_Block= -pau_CIN_HAU}', "");
+    Expect(1, 72447, '\P{^Is_Block= -pau_CIN_HAU}', "");
+    Expect(0, 72448, '\p{Is_Block= -pau_CIN_HAU}', "");
+    Expect(1, 72448, '\p{^Is_Block= -pau_CIN_HAU}', "");
+    Expect(1, 72448, '\P{Is_Block= -pau_CIN_HAU}', "");
+    Expect(0, 72448, '\P{^Is_Block= -pau_CIN_HAU}', "");
+    Error('\p{Is_Blk: PAU_CIN_hau/a/}');
+    Error('\P{Is_Blk: PAU_CIN_hau/a/}');
     Expect(1, 72447, '\p{Is_Blk=paucinhau}', "");
     Expect(0, 72447, '\p{^Is_Blk=paucinhau}', "");
     Expect(0, 72447, '\P{Is_Blk=paucinhau}', "");
@@ -22718,16 +23286,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72448, '\p{^Is_Blk=paucinhau}', "");
     Expect(1, 72448, '\P{Is_Blk=paucinhau}', "");
     Expect(0, 72448, '\P{^Is_Blk=paucinhau}', "");
-    Expect(1, 72447, '\p{Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(0, 72447, '\p{^Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(0, 72447, '\P{Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(1, 72447, '\P{^Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(0, 72448, '\p{Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(1, 72448, '\p{^Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(1, 72448, '\P{Is_Blk:  _Pau_Cin_hau}', "");
-    Expect(0, 72448, '\P{^Is_Blk:  _Pau_Cin_hau}', "");
-    Error('\p{Block=/a/-_Phags_Pa}');
-    Error('\P{Block=/a/-_Phags_Pa}');
+    Expect(1, 72447, '\p{Is_Blk= -Pau_cin_HAU}', "");
+    Expect(0, 72447, '\p{^Is_Blk= -Pau_cin_HAU}', "");
+    Expect(0, 72447, '\P{Is_Blk= -Pau_cin_HAU}', "");
+    Expect(1, 72447, '\P{^Is_Blk= -Pau_cin_HAU}', "");
+    Expect(0, 72448, '\p{Is_Blk= -Pau_cin_HAU}', "");
+    Expect(1, 72448, '\p{^Is_Blk= -Pau_cin_HAU}', "");
+    Expect(1, 72448, '\P{Is_Blk= -Pau_cin_HAU}', "");
+    Expect(0, 72448, '\P{^Is_Blk= -Pau_cin_HAU}', "");
+    Error('\p{Block=/a/ Phags_pa}');
+    Error('\P{Block=/a/ Phags_pa}');
     Expect(1, 43135, '\p{Block=:\APhags_Pa\z:}', "");;
     Expect(0, 43136, '\p{Block=:\APhags_Pa\z:}', "");;
     Expect(1, 43135, '\p{Block=phagspa}', "");
@@ -22740,16 +23308,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43136, '\P{^Block=phagspa}', "");
     Expect(1, 43135, '\p{Block=:\Aphagspa\z:}', "");;
     Expect(0, 43136, '\p{Block=:\Aphagspa\z:}', "");;
-    Expect(1, 43135, '\p{Block=	Phags_pa}', "");
-    Expect(0, 43135, '\p{^Block=	Phags_pa}', "");
-    Expect(0, 43135, '\P{Block=	Phags_pa}', "");
-    Expect(1, 43135, '\P{^Block=	Phags_pa}', "");
-    Expect(0, 43136, '\p{Block=	Phags_pa}', "");
-    Expect(1, 43136, '\p{^Block=	Phags_pa}', "");
-    Expect(1, 43136, '\P{Block=	Phags_pa}', "");
-    Expect(0, 43136, '\P{^Block=	Phags_pa}', "");
-    Error('\p{Blk=	PHAGS_pa:=}');
-    Error('\P{Blk=	PHAGS_pa:=}');
+    Expect(1, 43135, '\p{Block=__PHAGS_Pa}', "");
+    Expect(0, 43135, '\p{^Block=__PHAGS_Pa}', "");
+    Expect(0, 43135, '\P{Block=__PHAGS_Pa}', "");
+    Expect(1, 43135, '\P{^Block=__PHAGS_Pa}', "");
+    Expect(0, 43136, '\p{Block=__PHAGS_Pa}', "");
+    Expect(1, 43136, '\p{^Block=__PHAGS_Pa}', "");
+    Expect(1, 43136, '\P{Block=__PHAGS_Pa}', "");
+    Expect(0, 43136, '\P{^Block=__PHAGS_Pa}', "");
+    Error('\p{Blk=:=Phags_PA}');
+    Error('\P{Blk=:=Phags_PA}');
     Expect(1, 43135, '\p{Blk=:\APhags_Pa\z:}', "");;
     Expect(0, 43136, '\p{Blk=:\APhags_Pa\z:}', "");;
     Expect(1, 43135, '\p{Blk=phagspa}', "");
@@ -22762,16 +23330,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43136, '\P{^Blk=phagspa}', "");
     Expect(1, 43135, '\p{Blk=:\Aphagspa\z:}', "");;
     Expect(0, 43136, '\p{Blk=:\Aphagspa\z:}', "");;
-    Expect(1, 43135, '\p{Blk:	-	Phags_PA}', "");
-    Expect(0, 43135, '\p{^Blk:	-	Phags_PA}', "");
-    Expect(0, 43135, '\P{Blk:	-	Phags_PA}', "");
-    Expect(1, 43135, '\P{^Blk:	-	Phags_PA}', "");
-    Expect(0, 43136, '\p{Blk:	-	Phags_PA}', "");
-    Expect(1, 43136, '\p{^Blk:	-	Phags_PA}', "");
-    Expect(1, 43136, '\P{Blk:	-	Phags_PA}', "");
-    Expect(0, 43136, '\P{^Blk:	-	Phags_PA}', "");
-    Error('\p{Is_Block=	_Phags_pa:=}');
-    Error('\P{Is_Block=	_Phags_pa:=}');
+    Expect(1, 43135, '\p{Blk=-	Phags_Pa}', "");
+    Expect(0, 43135, '\p{^Blk=-	Phags_Pa}', "");
+    Expect(0, 43135, '\P{Blk=-	Phags_Pa}', "");
+    Expect(1, 43135, '\P{^Blk=-	Phags_Pa}', "");
+    Expect(0, 43136, '\p{Blk=-	Phags_Pa}', "");
+    Expect(1, 43136, '\p{^Blk=-	Phags_Pa}', "");
+    Expect(1, 43136, '\P{Blk=-	Phags_Pa}', "");
+    Expect(0, 43136, '\P{^Blk=-	Phags_Pa}', "");
+    Error('\p{Is_Block=	 PHAGS_pa/a/}');
+    Error('\P{Is_Block=	 PHAGS_pa/a/}');
     Expect(1, 43135, '\p{Is_Block=phagspa}', "");
     Expect(0, 43135, '\p{^Is_Block=phagspa}', "");
     Expect(0, 43135, '\P{Is_Block=phagspa}', "");
@@ -22780,16 +23348,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43136, '\p{^Is_Block=phagspa}', "");
     Expect(1, 43136, '\P{Is_Block=phagspa}', "");
     Expect(0, 43136, '\P{^Is_Block=phagspa}', "");
-    Expect(1, 43135, '\p{Is_Block=		PHAGS_PA}', "");
-    Expect(0, 43135, '\p{^Is_Block=		PHAGS_PA}', "");
-    Expect(0, 43135, '\P{Is_Block=		PHAGS_PA}', "");
-    Expect(1, 43135, '\P{^Is_Block=		PHAGS_PA}', "");
-    Expect(0, 43136, '\p{Is_Block=		PHAGS_PA}', "");
-    Expect(1, 43136, '\p{^Is_Block=		PHAGS_PA}', "");
-    Expect(1, 43136, '\P{Is_Block=		PHAGS_PA}', "");
-    Expect(0, 43136, '\P{^Is_Block=		PHAGS_PA}', "");
-    Error('\p{Is_Blk=	_Phags_Pa:=}');
-    Error('\P{Is_Blk=	_Phags_Pa:=}');
+    Expect(1, 43135, '\p{Is_Block=	phags_Pa}', "");
+    Expect(0, 43135, '\p{^Is_Block=	phags_Pa}', "");
+    Expect(0, 43135, '\P{Is_Block=	phags_Pa}', "");
+    Expect(1, 43135, '\P{^Is_Block=	phags_Pa}', "");
+    Expect(0, 43136, '\p{Is_Block=	phags_Pa}', "");
+    Expect(1, 43136, '\p{^Is_Block=	phags_Pa}', "");
+    Expect(1, 43136, '\P{Is_Block=	phags_Pa}', "");
+    Expect(0, 43136, '\P{^Is_Block=	phags_Pa}', "");
+    Error('\p{Is_Blk=/a/Phags_pa}');
+    Error('\P{Is_Blk=/a/Phags_pa}');
     Expect(1, 43135, '\p{Is_Blk=phagspa}', "");
     Expect(0, 43135, '\p{^Is_Blk=phagspa}', "");
     Expect(0, 43135, '\P{Is_Blk=phagspa}', "");
@@ -22798,16 +23366,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43136, '\p{^Is_Blk=phagspa}', "");
     Expect(1, 43136, '\P{Is_Blk=phagspa}', "");
     Expect(0, 43136, '\P{^Is_Blk=phagspa}', "");
-    Expect(1, 43135, '\p{Is_Blk=_-phags_pa}', "");
-    Expect(0, 43135, '\p{^Is_Blk=_-phags_pa}', "");
-    Expect(0, 43135, '\P{Is_Blk=_-phags_pa}', "");
-    Expect(1, 43135, '\P{^Is_Blk=_-phags_pa}', "");
-    Expect(0, 43136, '\p{Is_Blk=_-phags_pa}', "");
-    Expect(1, 43136, '\p{^Is_Blk=_-phags_pa}', "");
-    Expect(1, 43136, '\P{Is_Blk=_-phags_pa}', "");
-    Expect(0, 43136, '\P{^Is_Blk=_-phags_pa}', "");
-    Error('\p{Block= :=Phaistos_Disc}');
-    Error('\P{Block= :=Phaistos_Disc}');
+    Expect(1, 43135, '\p{Is_Blk=_-Phags_pa}', "");
+    Expect(0, 43135, '\p{^Is_Blk=_-Phags_pa}', "");
+    Expect(0, 43135, '\P{Is_Blk=_-Phags_pa}', "");
+    Expect(1, 43135, '\P{^Is_Blk=_-Phags_pa}', "");
+    Expect(0, 43136, '\p{Is_Blk=_-Phags_pa}', "");
+    Expect(1, 43136, '\p{^Is_Blk=_-Phags_pa}', "");
+    Expect(1, 43136, '\P{Is_Blk=_-Phags_pa}', "");
+    Expect(0, 43136, '\P{^Is_Blk=_-Phags_pa}', "");
+    Error('\p{Block=  phaistos_Disc:=}');
+    Error('\P{Block=  phaistos_Disc:=}');
     Expect(1, 66047, '\p{Block=:\APhaistos_Disc\z:}', "");;
     Expect(0, 66048, '\p{Block=:\APhaistos_Disc\z:}', "");;
     Expect(1, 66047, '\p{Block=phaistosdisc}', "");
@@ -22820,16 +23388,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66048, '\P{^Block=phaistosdisc}', "");
     Expect(1, 66047, '\p{Block=:\Aphaistosdisc\z:}', "");;
     Expect(0, 66048, '\p{Block=:\Aphaistosdisc\z:}', "");;
-    Expect(1, 66047, '\p{Block=	-Phaistos_Disc}', "");
-    Expect(0, 66047, '\p{^Block=	-Phaistos_Disc}', "");
-    Expect(0, 66047, '\P{Block=	-Phaistos_Disc}', "");
-    Expect(1, 66047, '\P{^Block=	-Phaistos_Disc}', "");
-    Expect(0, 66048, '\p{Block=	-Phaistos_Disc}', "");
-    Expect(1, 66048, '\p{^Block=	-Phaistos_Disc}', "");
-    Expect(1, 66048, '\P{Block=	-Phaistos_Disc}', "");
-    Expect(0, 66048, '\P{^Block=	-Phaistos_Disc}', "");
-    Error('\p{Blk=:=_	Phaistos}');
-    Error('\P{Blk=:=_	Phaistos}');
+    Expect(1, 66047, '\p{Block=	_PHAISTOS_Disc}', "");
+    Expect(0, 66047, '\p{^Block=	_PHAISTOS_Disc}', "");
+    Expect(0, 66047, '\P{Block=	_PHAISTOS_Disc}', "");
+    Expect(1, 66047, '\P{^Block=	_PHAISTOS_Disc}', "");
+    Expect(0, 66048, '\p{Block=	_PHAISTOS_Disc}', "");
+    Expect(1, 66048, '\p{^Block=	_PHAISTOS_Disc}', "");
+    Expect(1, 66048, '\P{Block=	_PHAISTOS_Disc}', "");
+    Expect(0, 66048, '\P{^Block=	_PHAISTOS_Disc}', "");
+    Error('\p{Blk= 	PHAISTOS:=}');
+    Error('\P{Blk= 	PHAISTOS:=}');
     Expect(1, 66047, '\p{Blk=:\APhaistos\z:}', "");;
     Expect(0, 66048, '\p{Blk=:\APhaistos\z:}', "");;
     Expect(1, 66047, '\p{Blk=phaistos}', "");
@@ -22842,16 +23410,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66048, '\P{^Blk=phaistos}', "");
     Expect(1, 66047, '\p{Blk=:\Aphaistos\z:}', "");;
     Expect(0, 66048, '\p{Blk=:\Aphaistos\z:}', "");;
-    Expect(1, 66047, '\p{Blk= Phaistos}', "");
-    Expect(0, 66047, '\p{^Blk= Phaistos}', "");
-    Expect(0, 66047, '\P{Blk= Phaistos}', "");
-    Expect(1, 66047, '\P{^Blk= Phaistos}', "");
-    Expect(0, 66048, '\p{Blk= Phaistos}', "");
-    Expect(1, 66048, '\p{^Blk= Phaistos}', "");
-    Expect(1, 66048, '\P{Blk= Phaistos}', "");
-    Expect(0, 66048, '\P{^Blk= Phaistos}', "");
-    Error('\p{Is_Block=/a/  Phaistos_disc}');
-    Error('\P{Is_Block=/a/  Phaistos_disc}');
+    Expect(1, 66047, '\p{Blk=	PHAISTOS}', "");
+    Expect(0, 66047, '\p{^Blk=	PHAISTOS}', "");
+    Expect(0, 66047, '\P{Blk=	PHAISTOS}', "");
+    Expect(1, 66047, '\P{^Blk=	PHAISTOS}', "");
+    Expect(0, 66048, '\p{Blk=	PHAISTOS}', "");
+    Expect(1, 66048, '\p{^Blk=	PHAISTOS}', "");
+    Expect(1, 66048, '\P{Blk=	PHAISTOS}', "");
+    Expect(0, 66048, '\P{^Blk=	PHAISTOS}', "");
+    Error('\p{Is_Block= /a/phaistos_disc}');
+    Error('\P{Is_Block= /a/phaistos_disc}');
     Expect(1, 66047, '\p{Is_Block=phaistosdisc}', "");
     Expect(0, 66047, '\p{^Is_Block=phaistosdisc}', "");
     Expect(0, 66047, '\P{Is_Block=phaistosdisc}', "");
@@ -22860,16 +23428,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66048, '\p{^Is_Block=phaistosdisc}', "");
     Expect(1, 66048, '\P{Is_Block=phaistosdisc}', "");
     Expect(0, 66048, '\P{^Is_Block=phaistosdisc}', "");
-    Expect(1, 66047, '\p{Is_Block=	phaistos_DISC}', "");
-    Expect(0, 66047, '\p{^Is_Block=	phaistos_DISC}', "");
-    Expect(0, 66047, '\P{Is_Block=	phaistos_DISC}', "");
-    Expect(1, 66047, '\P{^Is_Block=	phaistos_DISC}', "");
-    Expect(0, 66048, '\p{Is_Block=	phaistos_DISC}', "");
-    Expect(1, 66048, '\p{^Is_Block=	phaistos_DISC}', "");
-    Expect(1, 66048, '\P{Is_Block=	phaistos_DISC}', "");
-    Expect(0, 66048, '\P{^Is_Block=	phaistos_DISC}', "");
-    Error('\p{Is_Blk=:=	 PHAISTOS}');
-    Error('\P{Is_Blk=:=	 PHAISTOS}');
+    Expect(1, 66047, '\p{Is_Block=_-phaistos_disc}', "");
+    Expect(0, 66047, '\p{^Is_Block=_-phaistos_disc}', "");
+    Expect(0, 66047, '\P{Is_Block=_-phaistos_disc}', "");
+    Expect(1, 66047, '\P{^Is_Block=_-phaistos_disc}', "");
+    Expect(0, 66048, '\p{Is_Block=_-phaistos_disc}', "");
+    Expect(1, 66048, '\p{^Is_Block=_-phaistos_disc}', "");
+    Expect(1, 66048, '\P{Is_Block=_-phaistos_disc}', "");
+    Expect(0, 66048, '\P{^Is_Block=_-phaistos_disc}', "");
+    Error('\p{Is_Blk=/a/	Phaistos}');
+    Error('\P{Is_Blk=/a/	Phaistos}');
     Expect(1, 66047, '\p{Is_Blk=phaistos}', "");
     Expect(0, 66047, '\p{^Is_Blk=phaistos}', "");
     Expect(0, 66047, '\P{Is_Blk=phaistos}', "");
@@ -22878,16 +23446,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66048, '\p{^Is_Blk=phaistos}', "");
     Expect(1, 66048, '\P{Is_Blk=phaistos}', "");
     Expect(0, 66048, '\P{^Is_Blk=phaistos}', "");
-    Expect(1, 66047, '\p{Is_Blk= 	PHAISTOS}', "");
-    Expect(0, 66047, '\p{^Is_Blk= 	PHAISTOS}', "");
-    Expect(0, 66047, '\P{Is_Blk= 	PHAISTOS}', "");
-    Expect(1, 66047, '\P{^Is_Blk= 	PHAISTOS}', "");
-    Expect(0, 66048, '\p{Is_Blk= 	PHAISTOS}', "");
-    Expect(1, 66048, '\p{^Is_Blk= 	PHAISTOS}', "");
-    Expect(1, 66048, '\P{Is_Blk= 	PHAISTOS}', "");
-    Expect(0, 66048, '\P{^Is_Blk= 	PHAISTOS}', "");
-    Error('\p{Block= _Phoenician:=}');
-    Error('\P{Block= _Phoenician:=}');
+    Expect(1, 66047, '\p{Is_Blk=	_phaistos}', "");
+    Expect(0, 66047, '\p{^Is_Blk=	_phaistos}', "");
+    Expect(0, 66047, '\P{Is_Blk=	_phaistos}', "");
+    Expect(1, 66047, '\P{^Is_Blk=	_phaistos}', "");
+    Expect(0, 66048, '\p{Is_Blk=	_phaistos}', "");
+    Expect(1, 66048, '\p{^Is_Blk=	_phaistos}', "");
+    Expect(1, 66048, '\P{Is_Blk=	_phaistos}', "");
+    Expect(0, 66048, '\P{^Is_Blk=	_phaistos}', "");
+    Error('\p{Block=- phoenician:=}');
+    Error('\P{Block=- phoenician:=}');
     Expect(1, 67871, '\p{Block=:\APhoenician\z:}', "");;
     Expect(0, 67872, '\p{Block=:\APhoenician\z:}', "");;
     Expect(1, 67871, '\p{Block=phoenician}', "");
@@ -22900,16 +23468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67872, '\P{^Block=phoenician}', "");
     Expect(1, 67871, '\p{Block=:\Aphoenician\z:}', "");;
     Expect(0, 67872, '\p{Block=:\Aphoenician\z:}', "");;
-    Expect(1, 67871, '\p{Block=-phoenician}', "");
-    Expect(0, 67871, '\p{^Block=-phoenician}', "");
-    Expect(0, 67871, '\P{Block=-phoenician}', "");
-    Expect(1, 67871, '\P{^Block=-phoenician}', "");
-    Expect(0, 67872, '\p{Block=-phoenician}', "");
-    Expect(1, 67872, '\p{^Block=-phoenician}', "");
-    Expect(1, 67872, '\P{Block=-phoenician}', "");
-    Expect(0, 67872, '\P{^Block=-phoenician}', "");
-    Error('\p{Blk=_phoenician/a/}');
-    Error('\P{Blk=_phoenician/a/}');
+    Expect(1, 67871, '\p{Block=- Phoenician}', "");
+    Expect(0, 67871, '\p{^Block=- Phoenician}', "");
+    Expect(0, 67871, '\P{Block=- Phoenician}', "");
+    Expect(1, 67871, '\P{^Block=- Phoenician}', "");
+    Expect(0, 67872, '\p{Block=- Phoenician}', "");
+    Expect(1, 67872, '\p{^Block=- Phoenician}', "");
+    Expect(1, 67872, '\P{Block=- Phoenician}', "");
+    Expect(0, 67872, '\P{^Block=- Phoenician}', "");
+    Error('\p{Blk=	 Phoenician:=}');
+    Error('\P{Blk=	 Phoenician:=}');
     Expect(1, 67871, '\p{Blk=:\APhoenician\z:}', "");;
     Expect(0, 67872, '\p{Blk=:\APhoenician\z:}', "");;
     Expect(1, 67871, '\p{Blk=phoenician}', "");
@@ -22922,16 +23490,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67872, '\P{^Blk=phoenician}', "");
     Expect(1, 67871, '\p{Blk=:\Aphoenician\z:}', "");;
     Expect(0, 67872, '\p{Blk=:\Aphoenician\z:}', "");;
-    Expect(1, 67871, '\p{Blk=-Phoenician}', "");
-    Expect(0, 67871, '\p{^Blk=-Phoenician}', "");
-    Expect(0, 67871, '\P{Blk=-Phoenician}', "");
-    Expect(1, 67871, '\P{^Blk=-Phoenician}', "");
-    Expect(0, 67872, '\p{Blk=-Phoenician}', "");
-    Expect(1, 67872, '\p{^Blk=-Phoenician}', "");
-    Expect(1, 67872, '\P{Blk=-Phoenician}', "");
-    Expect(0, 67872, '\P{^Blk=-Phoenician}', "");
-    Error('\p{Is_Block=:=-Phoenician}');
-    Error('\P{Is_Block=:=-Phoenician}');
+    Expect(1, 67871, '\p{Blk=_ PHOENICIAN}', "");
+    Expect(0, 67871, '\p{^Blk=_ PHOENICIAN}', "");
+    Expect(0, 67871, '\P{Blk=_ PHOENICIAN}', "");
+    Expect(1, 67871, '\P{^Blk=_ PHOENICIAN}', "");
+    Expect(0, 67872, '\p{Blk=_ PHOENICIAN}', "");
+    Expect(1, 67872, '\p{^Blk=_ PHOENICIAN}', "");
+    Expect(1, 67872, '\P{Blk=_ PHOENICIAN}', "");
+    Expect(0, 67872, '\P{^Blk=_ PHOENICIAN}', "");
+    Error('\p{Is_Block=-_Phoenician:=}');
+    Error('\P{Is_Block=-_Phoenician:=}');
     Expect(1, 67871, '\p{Is_Block=phoenician}', "");
     Expect(0, 67871, '\p{^Is_Block=phoenician}', "");
     Expect(0, 67871, '\P{Is_Block=phoenician}', "");
@@ -22940,16 +23508,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67872, '\p{^Is_Block=phoenician}', "");
     Expect(1, 67872, '\P{Is_Block=phoenician}', "");
     Expect(0, 67872, '\P{^Is_Block=phoenician}', "");
-    Expect(1, 67871, '\p{Is_Block=--PHOENICIAN}', "");
-    Expect(0, 67871, '\p{^Is_Block=--PHOENICIAN}', "");
-    Expect(0, 67871, '\P{Is_Block=--PHOENICIAN}', "");
-    Expect(1, 67871, '\P{^Is_Block=--PHOENICIAN}', "");
-    Expect(0, 67872, '\p{Is_Block=--PHOENICIAN}', "");
-    Expect(1, 67872, '\p{^Is_Block=--PHOENICIAN}', "");
-    Expect(1, 67872, '\P{Is_Block=--PHOENICIAN}', "");
-    Expect(0, 67872, '\P{^Is_Block=--PHOENICIAN}', "");
-    Error('\p{Is_Blk=	_PHOENICIAN/a/}');
-    Error('\P{Is_Blk=	_PHOENICIAN/a/}');
+    Expect(1, 67871, '\p{Is_Block=	_Phoenician}', "");
+    Expect(0, 67871, '\p{^Is_Block=	_Phoenician}', "");
+    Expect(0, 67871, '\P{Is_Block=	_Phoenician}', "");
+    Expect(1, 67871, '\P{^Is_Block=	_Phoenician}', "");
+    Expect(0, 67872, '\p{Is_Block=	_Phoenician}', "");
+    Expect(1, 67872, '\p{^Is_Block=	_Phoenician}', "");
+    Expect(1, 67872, '\P{Is_Block=	_Phoenician}', "");
+    Expect(0, 67872, '\P{^Is_Block=	_Phoenician}', "");
+    Error('\p{Is_Blk=	/a/Phoenician}');
+    Error('\P{Is_Blk=	/a/Phoenician}');
     Expect(1, 67871, '\p{Is_Blk=phoenician}', "");
     Expect(0, 67871, '\p{^Is_Blk=phoenician}', "");
     Expect(0, 67871, '\P{Is_Blk=phoenician}', "");
@@ -22958,16 +23526,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67872, '\p{^Is_Blk=phoenician}', "");
     Expect(1, 67872, '\P{Is_Blk=phoenician}', "");
     Expect(0, 67872, '\P{^Is_Blk=phoenician}', "");
-    Expect(1, 67871, '\p{Is_Blk: 	PHOENICIAN}', "");
-    Expect(0, 67871, '\p{^Is_Blk: 	PHOENICIAN}', "");
-    Expect(0, 67871, '\P{Is_Blk: 	PHOENICIAN}', "");
-    Expect(1, 67871, '\P{^Is_Blk: 	PHOENICIAN}', "");
-    Expect(0, 67872, '\p{Is_Blk: 	PHOENICIAN}', "");
-    Expect(1, 67872, '\p{^Is_Blk: 	PHOENICIAN}', "");
-    Expect(1, 67872, '\P{Is_Blk: 	PHOENICIAN}', "");
-    Expect(0, 67872, '\P{^Is_Blk: 	PHOENICIAN}', "");
-    Error('\p{Block: /a/Phonetic_Extensions}');
-    Error('\P{Block: /a/Phonetic_Extensions}');
+    Expect(1, 67871, '\p{Is_Blk= phoenician}', "");
+    Expect(0, 67871, '\p{^Is_Blk= phoenician}', "");
+    Expect(0, 67871, '\P{Is_Blk= phoenician}', "");
+    Expect(1, 67871, '\P{^Is_Blk= phoenician}', "");
+    Expect(0, 67872, '\p{Is_Blk= phoenician}', "");
+    Expect(1, 67872, '\p{^Is_Blk= phoenician}', "");
+    Expect(1, 67872, '\P{Is_Blk= phoenician}', "");
+    Expect(0, 67872, '\P{^Is_Blk= phoenician}', "");
+    Error('\p{Block=/a/	Phonetic_extensions}');
+    Error('\P{Block=/a/	Phonetic_extensions}');
     Expect(1, 7551, '\p{Block=:\APhonetic_Extensions\z:}', "");;
     Expect(0, 7552, '\p{Block=:\APhonetic_Extensions\z:}', "");;
     Expect(1, 7551, '\p{Block=phoneticextensions}', "");
@@ -22980,16 +23548,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7552, '\P{^Block=phoneticextensions}', "");
     Expect(1, 7551, '\p{Block=:\Aphoneticextensions\z:}', "");;
     Expect(0, 7552, '\p{Block=:\Aphoneticextensions\z:}', "");;
-    Expect(1, 7551, '\p{Block:  	PHONETIC_extensions}', "");
-    Expect(0, 7551, '\p{^Block:  	PHONETIC_extensions}', "");
-    Expect(0, 7551, '\P{Block:  	PHONETIC_extensions}', "");
-    Expect(1, 7551, '\P{^Block:  	PHONETIC_extensions}', "");
-    Expect(0, 7552, '\p{Block:  	PHONETIC_extensions}', "");
-    Expect(1, 7552, '\p{^Block:  	PHONETIC_extensions}', "");
-    Expect(1, 7552, '\P{Block:  	PHONETIC_extensions}', "");
-    Expect(0, 7552, '\P{^Block:  	PHONETIC_extensions}', "");
-    Error('\p{Blk=	:=phonetic_ext}');
-    Error('\P{Blk=	:=phonetic_ext}');
+    Expect(1, 7551, '\p{Block= 	Phonetic_extensions}', "");
+    Expect(0, 7551, '\p{^Block= 	Phonetic_extensions}', "");
+    Expect(0, 7551, '\P{Block= 	Phonetic_extensions}', "");
+    Expect(1, 7551, '\P{^Block= 	Phonetic_extensions}', "");
+    Expect(0, 7552, '\p{Block= 	Phonetic_extensions}', "");
+    Expect(1, 7552, '\p{^Block= 	Phonetic_extensions}', "");
+    Expect(1, 7552, '\P{Block= 	Phonetic_extensions}', "");
+    Expect(0, 7552, '\P{^Block= 	Phonetic_extensions}', "");
+    Error('\p{Blk:   -/a/PHONETIC_Ext}');
+    Error('\P{Blk:   -/a/PHONETIC_Ext}');
     Expect(1, 7551, '\p{Blk=:\APhonetic_Ext\z:}', "");;
     Expect(0, 7552, '\p{Blk=:\APhonetic_Ext\z:}', "");;
     Expect(1, 7551, '\p{Blk=phoneticext}', "");
@@ -23002,16 +23570,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7552, '\P{^Blk=phoneticext}', "");
     Expect(1, 7551, '\p{Blk=:\Aphoneticext\z:}', "");;
     Expect(0, 7552, '\p{Blk=:\Aphoneticext\z:}', "");;
-    Expect(1, 7551, '\p{Blk=	PHONETIC_EXT}', "");
-    Expect(0, 7551, '\p{^Blk=	PHONETIC_EXT}', "");
-    Expect(0, 7551, '\P{Blk=	PHONETIC_EXT}', "");
-    Expect(1, 7551, '\P{^Blk=	PHONETIC_EXT}', "");
-    Expect(0, 7552, '\p{Blk=	PHONETIC_EXT}', "");
-    Expect(1, 7552, '\p{^Blk=	PHONETIC_EXT}', "");
-    Expect(1, 7552, '\P{Blk=	PHONETIC_EXT}', "");
-    Expect(0, 7552, '\P{^Blk=	PHONETIC_EXT}', "");
-    Error('\p{Is_Block=PHONETIC_extensions/a/}');
-    Error('\P{Is_Block=PHONETIC_extensions/a/}');
+    Expect(1, 7551, '\p{Blk:_	Phonetic_Ext}', "");
+    Expect(0, 7551, '\p{^Blk:_	Phonetic_Ext}', "");
+    Expect(0, 7551, '\P{Blk:_	Phonetic_Ext}', "");
+    Expect(1, 7551, '\P{^Blk:_	Phonetic_Ext}', "");
+    Expect(0, 7552, '\p{Blk:_	Phonetic_Ext}', "");
+    Expect(1, 7552, '\p{^Blk:_	Phonetic_Ext}', "");
+    Expect(1, 7552, '\P{Blk:_	Phonetic_Ext}', "");
+    Expect(0, 7552, '\P{^Blk:_	Phonetic_Ext}', "");
+    Error('\p{Is_Block=/a/-Phonetic_extensions}');
+    Error('\P{Is_Block=/a/-Phonetic_extensions}');
     Expect(1, 7551, '\p{Is_Block=phoneticextensions}', "");
     Expect(0, 7551, '\p{^Is_Block=phoneticextensions}', "");
     Expect(0, 7551, '\P{Is_Block=phoneticextensions}', "");
@@ -23020,16 +23588,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7552, '\p{^Is_Block=phoneticextensions}', "");
     Expect(1, 7552, '\P{Is_Block=phoneticextensions}', "");
     Expect(0, 7552, '\P{^Is_Block=phoneticextensions}', "");
-    Expect(1, 7551, '\p{Is_Block=_PHONETIC_extensions}', "");
-    Expect(0, 7551, '\p{^Is_Block=_PHONETIC_extensions}', "");
-    Expect(0, 7551, '\P{Is_Block=_PHONETIC_extensions}', "");
-    Expect(1, 7551, '\P{^Is_Block=_PHONETIC_extensions}', "");
-    Expect(0, 7552, '\p{Is_Block=_PHONETIC_extensions}', "");
-    Expect(1, 7552, '\p{^Is_Block=_PHONETIC_extensions}', "");
-    Expect(1, 7552, '\P{Is_Block=_PHONETIC_extensions}', "");
-    Expect(0, 7552, '\P{^Is_Block=_PHONETIC_extensions}', "");
-    Error('\p{Is_Blk=/a/ -Phonetic_ext}');
-    Error('\P{Is_Blk=/a/ -Phonetic_ext}');
+    Expect(1, 7551, '\p{Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(0, 7551, '\p{^Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(0, 7551, '\P{Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(1, 7551, '\P{^Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(0, 7552, '\p{Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(1, 7552, '\p{^Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(1, 7552, '\P{Is_Block=- Phonetic_EXTENSIONS}', "");
+    Expect(0, 7552, '\P{^Is_Block=- Phonetic_EXTENSIONS}', "");
+    Error('\p{Is_Blk=/a/phonetic_EXT}');
+    Error('\P{Is_Blk=/a/phonetic_EXT}');
     Expect(1, 7551, '\p{Is_Blk=phoneticext}', "");
     Expect(0, 7551, '\p{^Is_Blk=phoneticext}', "");
     Expect(0, 7551, '\P{Is_Blk=phoneticext}', "");
@@ -23038,16 +23606,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7552, '\p{^Is_Blk=phoneticext}', "");
     Expect(1, 7552, '\P{Is_Blk=phoneticext}', "");
     Expect(0, 7552, '\P{^Is_Blk=phoneticext}', "");
-    Expect(1, 7551, '\p{Is_Blk=_Phonetic_Ext}', "");
-    Expect(0, 7551, '\p{^Is_Blk=_Phonetic_Ext}', "");
-    Expect(0, 7551, '\P{Is_Blk=_Phonetic_Ext}', "");
-    Expect(1, 7551, '\P{^Is_Blk=_Phonetic_Ext}', "");
-    Expect(0, 7552, '\p{Is_Blk=_Phonetic_Ext}', "");
-    Expect(1, 7552, '\p{^Is_Blk=_Phonetic_Ext}', "");
-    Expect(1, 7552, '\P{Is_Blk=_Phonetic_Ext}', "");
-    Expect(0, 7552, '\P{^Is_Blk=_Phonetic_Ext}', "");
-    Error('\p{Block: _	PHONETIC_Extensions_Supplement:=}');
-    Error('\P{Block: _	PHONETIC_Extensions_Supplement:=}');
+    Expect(1, 7551, '\p{Is_Blk:	 phonetic_ext}', "");
+    Expect(0, 7551, '\p{^Is_Blk:	 phonetic_ext}', "");
+    Expect(0, 7551, '\P{Is_Blk:	 phonetic_ext}', "");
+    Expect(1, 7551, '\P{^Is_Blk:	 phonetic_ext}', "");
+    Expect(0, 7552, '\p{Is_Blk:	 phonetic_ext}', "");
+    Expect(1, 7552, '\p{^Is_Blk:	 phonetic_ext}', "");
+    Expect(1, 7552, '\P{Is_Blk:	 phonetic_ext}', "");
+    Expect(0, 7552, '\P{^Is_Blk:	 phonetic_ext}', "");
+    Error('\p{Block=		phonetic_EXTENSIONS_supplement:=}');
+    Error('\P{Block=		phonetic_EXTENSIONS_supplement:=}');
     Expect(1, 7615, '\p{Block=:\APhonetic_Extensions_Supplement\z:}', "");;
     Expect(0, 7616, '\p{Block=:\APhonetic_Extensions_Supplement\z:}', "");;
     Expect(1, 7615, '\p{Block=phoneticextensionssupplement}', "");
@@ -23060,16 +23628,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7616, '\P{^Block=phoneticextensionssupplement}', "");
     Expect(1, 7615, '\p{Block=:\Aphoneticextensionssupplement\z:}', "");;
     Expect(0, 7616, '\p{Block=:\Aphoneticextensionssupplement\z:}', "");;
-    Expect(1, 7615, '\p{Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(0, 7615, '\p{^Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(0, 7615, '\P{Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(1, 7615, '\P{^Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(0, 7616, '\p{Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(1, 7616, '\p{^Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(1, 7616, '\P{Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Expect(0, 7616, '\P{^Block=		Phonetic_Extensions_SUPPLEMENT}', "");
-    Error('\p{Blk=/a/ _Phonetic_Ext_SUP}');
-    Error('\P{Blk=/a/ _Phonetic_Ext_SUP}');
+    Expect(1, 7615, '\p{Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(0, 7615, '\p{^Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(0, 7615, '\P{Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(1, 7615, '\P{^Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(0, 7616, '\p{Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(1, 7616, '\p{^Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(1, 7616, '\P{Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Expect(0, 7616, '\P{^Block:			PHONETIC_EXTENSIONS_supplement}', "");
+    Error('\p{Blk:	:=- Phonetic_EXT_Sup}');
+    Error('\P{Blk:	:=- Phonetic_EXT_Sup}');
     Expect(1, 7615, '\p{Blk=:\APhonetic_Ext_Sup\z:}', "");;
     Expect(0, 7616, '\p{Blk=:\APhonetic_Ext_Sup\z:}', "");;
     Expect(1, 7615, '\p{Blk=phoneticextsup}', "");
@@ -23082,16 +23650,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7616, '\P{^Blk=phoneticextsup}', "");
     Expect(1, 7615, '\p{Blk=:\Aphoneticextsup\z:}', "");;
     Expect(0, 7616, '\p{Blk=:\Aphoneticextsup\z:}', "");;
-    Expect(1, 7615, '\p{Blk=-phonetic_Ext_Sup}', "");
-    Expect(0, 7615, '\p{^Blk=-phonetic_Ext_Sup}', "");
-    Expect(0, 7615, '\P{Blk=-phonetic_Ext_Sup}', "");
-    Expect(1, 7615, '\P{^Blk=-phonetic_Ext_Sup}', "");
-    Expect(0, 7616, '\p{Blk=-phonetic_Ext_Sup}', "");
-    Expect(1, 7616, '\p{^Blk=-phonetic_Ext_Sup}', "");
-    Expect(1, 7616, '\P{Blk=-phonetic_Ext_Sup}', "");
-    Expect(0, 7616, '\P{^Blk=-phonetic_Ext_Sup}', "");
-    Error('\p{Is_Block=_/a/Phonetic_Extensions_Supplement}');
-    Error('\P{Is_Block=_/a/Phonetic_Extensions_Supplement}');
+    Expect(1, 7615, '\p{Blk=_ Phonetic_ext_SUP}', "");
+    Expect(0, 7615, '\p{^Blk=_ Phonetic_ext_SUP}', "");
+    Expect(0, 7615, '\P{Blk=_ Phonetic_ext_SUP}', "");
+    Expect(1, 7615, '\P{^Blk=_ Phonetic_ext_SUP}', "");
+    Expect(0, 7616, '\p{Blk=_ Phonetic_ext_SUP}', "");
+    Expect(1, 7616, '\p{^Blk=_ Phonetic_ext_SUP}', "");
+    Expect(1, 7616, '\P{Blk=_ Phonetic_ext_SUP}', "");
+    Expect(0, 7616, '\P{^Blk=_ Phonetic_ext_SUP}', "");
+    Error('\p{Is_Block=:=_PHONETIC_Extensions_supplement}');
+    Error('\P{Is_Block=:=_PHONETIC_Extensions_supplement}');
     Expect(1, 7615, '\p{Is_Block=phoneticextensionssupplement}', "");
     Expect(0, 7615, '\p{^Is_Block=phoneticextensionssupplement}', "");
     Expect(0, 7615, '\P{Is_Block=phoneticextensionssupplement}', "");
@@ -23100,16 +23668,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7616, '\p{^Is_Block=phoneticextensionssupplement}', "");
     Expect(1, 7616, '\P{Is_Block=phoneticextensionssupplement}', "");
     Expect(0, 7616, '\P{^Is_Block=phoneticextensionssupplement}', "");
-    Expect(1, 7615, '\p{Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(0, 7615, '\p{^Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(0, 7615, '\P{Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(1, 7615, '\P{^Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(0, 7616, '\p{Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(1, 7616, '\p{^Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(1, 7616, '\P{Is_Block= _phonetic_Extensions_supplement}', "");
-    Expect(0, 7616, '\P{^Is_Block= _phonetic_Extensions_supplement}', "");
-    Error('\p{Is_Blk=_Phonetic_Ext_Sup/a/}');
-    Error('\P{Is_Blk=_Phonetic_Ext_Sup/a/}');
+    Expect(1, 7615, '\p{Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(0, 7615, '\p{^Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(0, 7615, '\P{Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(1, 7615, '\P{^Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(0, 7616, '\p{Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(1, 7616, '\p{^Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(1, 7616, '\P{Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Expect(0, 7616, '\P{^Is_Block= 	Phonetic_Extensions_supplement}', "");
+    Error('\p{Is_Blk=:=_	PHONETIC_EXT_SUP}');
+    Error('\P{Is_Blk=:=_	PHONETIC_EXT_SUP}');
     Expect(1, 7615, '\p{Is_Blk=phoneticextsup}', "");
     Expect(0, 7615, '\p{^Is_Blk=phoneticextsup}', "");
     Expect(0, 7615, '\P{Is_Blk=phoneticextsup}', "");
@@ -23118,38 +23686,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7616, '\p{^Is_Blk=phoneticextsup}', "");
     Expect(1, 7616, '\P{Is_Blk=phoneticextsup}', "");
     Expect(0, 7616, '\P{^Is_Blk=phoneticextsup}', "");
-    Expect(1, 7615, '\p{Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(0, 7615, '\p{^Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(0, 7615, '\P{Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(1, 7615, '\P{^Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(0, 7616, '\p{Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(1, 7616, '\p{^Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(1, 7616, '\P{Is_Blk=  Phonetic_EXT_Sup}', "");
-    Expect(0, 7616, '\P{^Is_Blk=  Phonetic_EXT_Sup}', "");
-    Error('\p{Block=	/a/playing_Cards}');
-    Error('\P{Block=	/a/playing_Cards}');
+    Expect(1, 7615, '\p{Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(0, 7615, '\p{^Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(0, 7615, '\P{Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(1, 7615, '\P{^Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(0, 7616, '\p{Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(1, 7616, '\p{^Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(1, 7616, '\P{Is_Blk=	 phonetic_EXT_Sup}', "");
+    Expect(0, 7616, '\P{^Is_Blk=	 phonetic_EXT_Sup}', "");
+    Error('\p{Block=Playing_Cards:=}');
+    Error('\P{Block=Playing_Cards:=}');
     Expect(1, 127231, '\p{Block=:\APlaying_Cards\z:}', "");;
     Expect(0, 127232, '\p{Block=:\APlaying_Cards\z:}', "");;
-    Expect(1, 127231, '\p{Block:   playingcards}', "");
-    Expect(0, 127231, '\p{^Block:   playingcards}', "");
-    Expect(0, 127231, '\P{Block:   playingcards}', "");
-    Expect(1, 127231, '\P{^Block:   playingcards}', "");
-    Expect(0, 127232, '\p{Block:   playingcards}', "");
-    Expect(1, 127232, '\p{^Block:   playingcards}', "");
-    Expect(1, 127232, '\P{Block:   playingcards}', "");
-    Expect(0, 127232, '\P{^Block:   playingcards}', "");
+    Expect(1, 127231, '\p{Block=playingcards}', "");
+    Expect(0, 127231, '\p{^Block=playingcards}', "");
+    Expect(0, 127231, '\P{Block=playingcards}', "");
+    Expect(1, 127231, '\P{^Block=playingcards}', "");
+    Expect(0, 127232, '\p{Block=playingcards}', "");
+    Expect(1, 127232, '\p{^Block=playingcards}', "");
+    Expect(1, 127232, '\P{Block=playingcards}', "");
+    Expect(0, 127232, '\P{^Block=playingcards}', "");
     Expect(1, 127231, '\p{Block=:\Aplayingcards\z:}', "");;
     Expect(0, 127232, '\p{Block=:\Aplayingcards\z:}', "");;
-    Expect(1, 127231, '\p{Block: 	_playing_cards}', "");
-    Expect(0, 127231, '\p{^Block: 	_playing_cards}', "");
-    Expect(0, 127231, '\P{Block: 	_playing_cards}', "");
-    Expect(1, 127231, '\P{^Block: 	_playing_cards}', "");
-    Expect(0, 127232, '\p{Block: 	_playing_cards}', "");
-    Expect(1, 127232, '\p{^Block: 	_playing_cards}', "");
-    Expect(1, 127232, '\P{Block: 	_playing_cards}', "");
-    Expect(0, 127232, '\P{^Block: 	_playing_cards}', "");
-    Error('\p{Blk=:=Playing_cards}');
-    Error('\P{Blk=:=Playing_cards}');
+    Expect(1, 127231, '\p{Block=- PLAYING_CARDS}', "");
+    Expect(0, 127231, '\p{^Block=- PLAYING_CARDS}', "");
+    Expect(0, 127231, '\P{Block=- PLAYING_CARDS}', "");
+    Expect(1, 127231, '\P{^Block=- PLAYING_CARDS}', "");
+    Expect(0, 127232, '\p{Block=- PLAYING_CARDS}', "");
+    Expect(1, 127232, '\p{^Block=- PLAYING_CARDS}', "");
+    Expect(1, 127232, '\P{Block=- PLAYING_CARDS}', "");
+    Expect(0, 127232, '\P{^Block=- PLAYING_CARDS}', "");
+    Error('\p{Blk=/a/-Playing_cards}');
+    Error('\P{Blk=/a/-Playing_cards}');
     Expect(1, 127231, '\p{Blk=:\APlaying_Cards\z:}', "");;
     Expect(0, 127232, '\p{Blk=:\APlaying_Cards\z:}', "");;
     Expect(1, 127231, '\p{Blk=playingcards}', "");
@@ -23162,16 +23730,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127232, '\P{^Blk=playingcards}', "");
     Expect(1, 127231, '\p{Blk=:\Aplayingcards\z:}', "");;
     Expect(0, 127232, '\p{Blk=:\Aplayingcards\z:}', "");;
-    Expect(1, 127231, '\p{Blk= -PLAYING_cards}', "");
-    Expect(0, 127231, '\p{^Blk= -PLAYING_cards}', "");
-    Expect(0, 127231, '\P{Blk= -PLAYING_cards}', "");
-    Expect(1, 127231, '\P{^Blk= -PLAYING_cards}', "");
-    Expect(0, 127232, '\p{Blk= -PLAYING_cards}', "");
-    Expect(1, 127232, '\p{^Blk= -PLAYING_cards}', "");
-    Expect(1, 127232, '\P{Blk= -PLAYING_cards}', "");
-    Expect(0, 127232, '\P{^Blk= -PLAYING_cards}', "");
-    Error('\p{Is_Block=/a/ Playing_cards}');
-    Error('\P{Is_Block=/a/ Playing_cards}');
+    Expect(1, 127231, '\p{Blk=--playing_Cards}', "");
+    Expect(0, 127231, '\p{^Blk=--playing_Cards}', "");
+    Expect(0, 127231, '\P{Blk=--playing_Cards}', "");
+    Expect(1, 127231, '\P{^Blk=--playing_Cards}', "");
+    Expect(0, 127232, '\p{Blk=--playing_Cards}', "");
+    Expect(1, 127232, '\p{^Blk=--playing_Cards}', "");
+    Expect(1, 127232, '\P{Blk=--playing_Cards}', "");
+    Expect(0, 127232, '\P{^Blk=--playing_Cards}', "");
+    Error('\p{Is_Block=/a/PLAYING_CARDS}');
+    Error('\P{Is_Block=/a/PLAYING_CARDS}');
     Expect(1, 127231, '\p{Is_Block=playingcards}', "");
     Expect(0, 127231, '\p{^Is_Block=playingcards}', "");
     Expect(0, 127231, '\P{Is_Block=playingcards}', "");
@@ -23180,34 +23748,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127232, '\p{^Is_Block=playingcards}', "");
     Expect(1, 127232, '\P{Is_Block=playingcards}', "");
     Expect(0, 127232, '\P{^Is_Block=playingcards}', "");
-    Expect(1, 127231, '\p{Is_Block= PLAYING_Cards}', "");
-    Expect(0, 127231, '\p{^Is_Block= PLAYING_Cards}', "");
-    Expect(0, 127231, '\P{Is_Block= PLAYING_Cards}', "");
-    Expect(1, 127231, '\P{^Is_Block= PLAYING_Cards}', "");
-    Expect(0, 127232, '\p{Is_Block= PLAYING_Cards}', "");
-    Expect(1, 127232, '\p{^Is_Block= PLAYING_Cards}', "");
-    Expect(1, 127232, '\P{Is_Block= PLAYING_Cards}', "");
-    Expect(0, 127232, '\P{^Is_Block= PLAYING_Cards}', "");
-    Error('\p{Is_Blk=-/a/Playing_Cards}');
-    Error('\P{Is_Blk=-/a/Playing_Cards}');
-    Expect(1, 127231, '\p{Is_Blk=playingcards}', "");
-    Expect(0, 127231, '\p{^Is_Blk=playingcards}', "");
-    Expect(0, 127231, '\P{Is_Blk=playingcards}', "");
-    Expect(1, 127231, '\P{^Is_Blk=playingcards}', "");
-    Expect(0, 127232, '\p{Is_Blk=playingcards}', "");
-    Expect(1, 127232, '\p{^Is_Blk=playingcards}', "");
-    Expect(1, 127232, '\P{Is_Blk=playingcards}', "");
-    Expect(0, 127232, '\P{^Is_Blk=playingcards}', "");
-    Expect(1, 127231, '\p{Is_Blk=	PLAYING_Cards}', "");
-    Expect(0, 127231, '\p{^Is_Blk=	PLAYING_Cards}', "");
-    Expect(0, 127231, '\P{Is_Blk=	PLAYING_Cards}', "");
-    Expect(1, 127231, '\P{^Is_Blk=	PLAYING_Cards}', "");
-    Expect(0, 127232, '\p{Is_Blk=	PLAYING_Cards}', "");
-    Expect(1, 127232, '\p{^Is_Blk=	PLAYING_Cards}', "");
-    Expect(1, 127232, '\P{Is_Blk=	PLAYING_Cards}', "");
-    Expect(0, 127232, '\P{^Is_Blk=	PLAYING_Cards}', "");
-    Error('\p{Block:	 :=psalter_pahlavi}');
-    Error('\P{Block:	 :=psalter_pahlavi}');
+    Expect(1, 127231, '\p{Is_Block= _playing_Cards}', "");
+    Expect(0, 127231, '\p{^Is_Block= _playing_Cards}', "");
+    Expect(0, 127231, '\P{Is_Block= _playing_Cards}', "");
+    Expect(1, 127231, '\P{^Is_Block= _playing_Cards}', "");
+    Expect(0, 127232, '\p{Is_Block= _playing_Cards}', "");
+    Expect(1, 127232, '\p{^Is_Block= _playing_Cards}', "");
+    Expect(1, 127232, '\P{Is_Block= _playing_Cards}', "");
+    Expect(0, 127232, '\P{^Is_Block= _playing_Cards}', "");
+    Error('\p{Is_Blk=	/a/Playing_cards}');
+    Error('\P{Is_Blk=	/a/Playing_cards}');
+    Expect(1, 127231, '\p{Is_Blk: playingcards}', "");
+    Expect(0, 127231, '\p{^Is_Blk: playingcards}', "");
+    Expect(0, 127231, '\P{Is_Blk: playingcards}', "");
+    Expect(1, 127231, '\P{^Is_Blk: playingcards}', "");
+    Expect(0, 127232, '\p{Is_Blk: playingcards}', "");
+    Expect(1, 127232, '\p{^Is_Blk: playingcards}', "");
+    Expect(1, 127232, '\P{Is_Blk: playingcards}', "");
+    Expect(0, 127232, '\P{^Is_Blk: playingcards}', "");
+    Expect(1, 127231, '\p{Is_Blk=_Playing_CARDS}', "");
+    Expect(0, 127231, '\p{^Is_Blk=_Playing_CARDS}', "");
+    Expect(0, 127231, '\P{Is_Blk=_Playing_CARDS}', "");
+    Expect(1, 127231, '\P{^Is_Blk=_Playing_CARDS}', "");
+    Expect(0, 127232, '\p{Is_Blk=_Playing_CARDS}', "");
+    Expect(1, 127232, '\p{^Is_Blk=_Playing_CARDS}', "");
+    Expect(1, 127232, '\P{Is_Blk=_Playing_CARDS}', "");
+    Expect(0, 127232, '\P{^Is_Blk=_Playing_CARDS}', "");
+    Error('\p{Block= 	psalter_Pahlavi/a/}');
+    Error('\P{Block= 	psalter_Pahlavi/a/}');
     Expect(1, 68527, '\p{Block=:\APsalter_Pahlavi\z:}', "");;
     Expect(0, 68528, '\p{Block=:\APsalter_Pahlavi\z:}', "");;
     Expect(1, 68527, '\p{Block=psalterpahlavi}', "");
@@ -23220,16 +23788,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68528, '\P{^Block=psalterpahlavi}', "");
     Expect(1, 68527, '\p{Block=:\Apsalterpahlavi\z:}', "");;
     Expect(0, 68528, '\p{Block=:\Apsalterpahlavi\z:}', "");;
-    Expect(1, 68527, '\p{Block=_	Psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^Block=_	Psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{Block=_	Psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^Block=_	Psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{Block=_	Psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^Block=_	Psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{Block=_	Psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^Block=_	Psalter_pahlavi}', "");
-    Error('\p{Blk=	/a/psalter_PAHLAVI}');
-    Error('\P{Blk=	/a/psalter_PAHLAVI}');
+    Expect(1, 68527, '\p{Block=  psalter_Pahlavi}', "");
+    Expect(0, 68527, '\p{^Block=  psalter_Pahlavi}', "");
+    Expect(0, 68527, '\P{Block=  psalter_Pahlavi}', "");
+    Expect(1, 68527, '\P{^Block=  psalter_Pahlavi}', "");
+    Expect(0, 68528, '\p{Block=  psalter_Pahlavi}', "");
+    Expect(1, 68528, '\p{^Block=  psalter_Pahlavi}', "");
+    Expect(1, 68528, '\P{Block=  psalter_Pahlavi}', "");
+    Expect(0, 68528, '\P{^Block=  psalter_Pahlavi}', "");
+    Error('\p{Blk:   /a/-PSALTER_pahlavi}');
+    Error('\P{Blk:   /a/-PSALTER_pahlavi}');
     Expect(1, 68527, '\p{Blk=:\APsalter_Pahlavi\z:}', "");;
     Expect(0, 68528, '\p{Blk=:\APsalter_Pahlavi\z:}', "");;
     Expect(1, 68527, '\p{Blk=psalterpahlavi}', "");
@@ -23242,16 +23810,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 68528, '\P{^Blk=psalterpahlavi}', "");
     Expect(1, 68527, '\p{Blk=:\Apsalterpahlavi\z:}', "");;
     Expect(0, 68528, '\p{Blk=:\Apsalterpahlavi\z:}', "");;
-    Expect(1, 68527, '\p{Blk=_	Psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^Blk=_	Psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{Blk=_	Psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^Blk=_	Psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{Blk=_	Psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^Blk=_	Psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{Blk=_	Psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^Blk=_	Psalter_pahlavi}', "");
-    Error('\p{Is_Block=_/a/Psalter_pahlavi}');
-    Error('\P{Is_Block=_/a/Psalter_pahlavi}');
+    Expect(1, 68527, '\p{Blk=		psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\p{^Blk=		psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\P{Blk=		psalter_PAHLAVI}', "");
+    Expect(1, 68527, '\P{^Blk=		psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\p{Blk=		psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\p{^Blk=		psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\P{Blk=		psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\P{^Blk=		psalter_PAHLAVI}', "");
+    Error('\p{Is_Block=:=_ PSALTER_Pahlavi}');
+    Error('\P{Is_Block=:=_ PSALTER_Pahlavi}');
     Expect(1, 68527, '\p{Is_Block=psalterpahlavi}', "");
     Expect(0, 68527, '\p{^Is_Block=psalterpahlavi}', "");
     Expect(0, 68527, '\P{Is_Block=psalterpahlavi}', "");
@@ -23260,16 +23828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68528, '\p{^Is_Block=psalterpahlavi}', "");
     Expect(1, 68528, '\P{Is_Block=psalterpahlavi}', "");
     Expect(0, 68528, '\P{^Is_Block=psalterpahlavi}', "");
-    Expect(1, 68527, '\p{Is_Block: psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^Is_Block: psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{Is_Block: psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^Is_Block: psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{Is_Block: psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^Is_Block: psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{Is_Block: psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^Is_Block: psalter_pahlavi}', "");
-    Error('\p{Is_Blk=_:=PSALTER_Pahlavi}');
-    Error('\P{Is_Blk=_:=PSALTER_Pahlavi}');
+    Expect(1, 68527, '\p{Is_Block=_Psalter_pahlavi}', "");
+    Expect(0, 68527, '\p{^Is_Block=_Psalter_pahlavi}', "");
+    Expect(0, 68527, '\P{Is_Block=_Psalter_pahlavi}', "");
+    Expect(1, 68527, '\P{^Is_Block=_Psalter_pahlavi}', "");
+    Expect(0, 68528, '\p{Is_Block=_Psalter_pahlavi}', "");
+    Expect(1, 68528, '\p{^Is_Block=_Psalter_pahlavi}', "");
+    Expect(1, 68528, '\P{Is_Block=_Psalter_pahlavi}', "");
+    Expect(0, 68528, '\P{^Is_Block=_Psalter_pahlavi}', "");
+    Error('\p{Is_Blk=_-PSALTER_pahlavi/a/}');
+    Error('\P{Is_Blk=_-PSALTER_pahlavi/a/}');
     Expect(1, 68527, '\p{Is_Blk=psalterpahlavi}', "");
     Expect(0, 68527, '\p{^Is_Blk=psalterpahlavi}', "");
     Expect(0, 68527, '\P{Is_Blk=psalterpahlavi}', "");
@@ -23278,16 +23846,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 68528, '\p{^Is_Blk=psalterpahlavi}', "");
     Expect(1, 68528, '\P{Is_Blk=psalterpahlavi}', "");
     Expect(0, 68528, '\P{^Is_Blk=psalterpahlavi}', "");
-    Expect(1, 68527, '\p{Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(0, 68527, '\p{^Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(0, 68527, '\P{Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(1, 68527, '\P{^Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(0, 68528, '\p{Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(1, 68528, '\p{^Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(1, 68528, '\P{Is_Blk=_-Psalter_PAHLAVI}', "");
-    Expect(0, 68528, '\P{^Is_Blk=_-Psalter_PAHLAVI}', "");
-    Error('\p{Block=:=PRIVATE_Use_Area}');
-    Error('\P{Block=:=PRIVATE_Use_Area}');
+    Expect(1, 68527, '\p{Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\p{^Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\P{Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(1, 68527, '\P{^Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\p{Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\p{^Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\P{Is_Blk=__Psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\P{^Is_Blk=__Psalter_PAHLAVI}', "");
+    Error('\p{Block:	:=-_private_Use_AREA}');
+    Error('\P{Block:	:=-_private_Use_AREA}');
     Expect(1, 63743, '\p{Block=:\APrivate_Use_Area\z:}', "");;
     Expect(0, 63744, '\p{Block=:\APrivate_Use_Area\z:}', "");;
     Expect(1, 63743, '\p{Block=privateusearea}', "");
@@ -23300,16 +23868,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 63744, '\P{^Block=privateusearea}', "");
     Expect(1, 63743, '\p{Block=:\Aprivateusearea\z:}', "");;
     Expect(0, 63744, '\p{Block=:\Aprivateusearea\z:}', "");;
-    Expect(1, 63743, '\p{Block=-_Private_use_Area}', "");
-    Expect(0, 63743, '\p{^Block=-_Private_use_Area}', "");
-    Expect(0, 63743, '\P{Block=-_Private_use_Area}', "");
-    Expect(1, 63743, '\P{^Block=-_Private_use_Area}', "");
-    Expect(0, 63744, '\p{Block=-_Private_use_Area}', "");
-    Expect(1, 63744, '\p{^Block=-_Private_use_Area}', "");
-    Expect(1, 63744, '\P{Block=-_Private_use_Area}', "");
-    Expect(0, 63744, '\P{^Block=-_Private_use_Area}', "");
-    Error('\p{Blk=/a/ PUA}');
-    Error('\P{Blk=/a/ PUA}');
+    Expect(1, 63743, '\p{Block=_Private_Use_Area}', "");
+    Expect(0, 63743, '\p{^Block=_Private_Use_Area}', "");
+    Expect(0, 63743, '\P{Block=_Private_Use_Area}', "");
+    Expect(1, 63743, '\P{^Block=_Private_Use_Area}', "");
+    Expect(0, 63744, '\p{Block=_Private_Use_Area}', "");
+    Expect(1, 63744, '\p{^Block=_Private_Use_Area}', "");
+    Expect(1, 63744, '\P{Block=_Private_Use_Area}', "");
+    Expect(0, 63744, '\P{^Block=_Private_Use_Area}', "");
+    Error('\p{Blk=:=	_PUA}');
+    Error('\P{Blk=:=	_PUA}');
     Expect(1, 63743, '\p{Blk=:\APUA\z:}', "");;
     Expect(0, 63744, '\p{Blk=:\APUA\z:}', "");;
     Expect(1, 63743, '\p{Blk=pua}', "");
@@ -23322,16 +23890,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 63744, '\P{^Blk=pua}', "");
     Expect(1, 63743, '\p{Blk=:\Apua\z:}', "");;
     Expect(0, 63744, '\p{Blk=:\Apua\z:}', "");;
-    Expect(1, 63743, '\p{Blk:		-PUA}', "");
-    Expect(0, 63743, '\p{^Blk:		-PUA}', "");
-    Expect(0, 63743, '\P{Blk:		-PUA}', "");
-    Expect(1, 63743, '\P{^Blk:		-PUA}', "");
-    Expect(0, 63744, '\p{Blk:		-PUA}', "");
-    Expect(1, 63744, '\p{^Blk:		-PUA}', "");
-    Expect(1, 63744, '\P{Blk:		-PUA}', "");
-    Expect(0, 63744, '\P{^Blk:		-PUA}', "");
-    Error('\p{Is_Block=	/a/private_USE}');
-    Error('\P{Is_Block=	/a/private_USE}');
+    Expect(1, 63743, '\p{Blk= _pua}', "");
+    Expect(0, 63743, '\p{^Blk= _pua}', "");
+    Expect(0, 63743, '\P{Blk= _pua}', "");
+    Expect(1, 63743, '\P{^Blk= _pua}', "");
+    Expect(0, 63744, '\p{Blk= _pua}', "");
+    Expect(1, 63744, '\p{^Blk= _pua}', "");
+    Expect(1, 63744, '\P{Blk= _pua}', "");
+    Expect(0, 63744, '\P{^Blk= _pua}', "");
+    Error('\p{Is_Block= -PRIVATE_use:=}');
+    Error('\P{Is_Block= -PRIVATE_use:=}');
     Expect(1, 63743, '\p{Is_Block=privateuse}', "");
     Expect(0, 63743, '\p{^Is_Block=privateuse}', "");
     Expect(0, 63743, '\P{Is_Block=privateuse}', "");
@@ -23340,16 +23908,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 63744, '\p{^Is_Block=privateuse}', "");
     Expect(1, 63744, '\P{Is_Block=privateuse}', "");
     Expect(0, 63744, '\P{^Is_Block=privateuse}', "");
-    Expect(1, 63743, '\p{Is_Block:_ Private_USE}', "");
-    Expect(0, 63743, '\p{^Is_Block:_ Private_USE}', "");
-    Expect(0, 63743, '\P{Is_Block:_ Private_USE}', "");
-    Expect(1, 63743, '\P{^Is_Block:_ Private_USE}', "");
-    Expect(0, 63744, '\p{Is_Block:_ Private_USE}', "");
-    Expect(1, 63744, '\p{^Is_Block:_ Private_USE}', "");
-    Expect(1, 63744, '\P{Is_Block:_ Private_USE}', "");
-    Expect(0, 63744, '\P{^Is_Block:_ Private_USE}', "");
-    Error('\p{Is_Blk=/a/-_Private_USE_Area}');
-    Error('\P{Is_Blk=/a/-_Private_USE_Area}');
+    Expect(1, 63743, '\p{Is_Block=-	PRIVATE_Use}', "");
+    Expect(0, 63743, '\p{^Is_Block=-	PRIVATE_Use}', "");
+    Expect(0, 63743, '\P{Is_Block=-	PRIVATE_Use}', "");
+    Expect(1, 63743, '\P{^Is_Block=-	PRIVATE_Use}', "");
+    Expect(0, 63744, '\p{Is_Block=-	PRIVATE_Use}', "");
+    Expect(1, 63744, '\p{^Is_Block=-	PRIVATE_Use}', "");
+    Expect(1, 63744, '\P{Is_Block=-	PRIVATE_Use}', "");
+    Expect(0, 63744, '\P{^Is_Block=-	PRIVATE_Use}', "");
+    Error('\p{Is_Blk=/a/private_use_Area}');
+    Error('\P{Is_Blk=/a/private_use_Area}');
     Expect(1, 63743, '\p{Is_Blk=privateusearea}', "");
     Expect(0, 63743, '\p{^Is_Blk=privateusearea}', "");
     Expect(0, 63743, '\P{Is_Blk=privateusearea}', "");
@@ -23358,16 +23926,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 63744, '\p{^Is_Blk=privateusearea}', "");
     Expect(1, 63744, '\P{Is_Blk=privateusearea}', "");
     Expect(0, 63744, '\P{^Is_Blk=privateusearea}', "");
-    Expect(1, 63743, '\p{Is_Blk=_private_Use_Area}', "");
-    Expect(0, 63743, '\p{^Is_Blk=_private_Use_Area}', "");
-    Expect(0, 63743, '\P{Is_Blk=_private_Use_Area}', "");
-    Expect(1, 63743, '\P{^Is_Blk=_private_Use_Area}', "");
-    Expect(0, 63744, '\p{Is_Blk=_private_Use_Area}', "");
-    Expect(1, 63744, '\p{^Is_Blk=_private_Use_Area}', "");
-    Expect(1, 63744, '\P{Is_Blk=_private_Use_Area}', "");
-    Expect(0, 63744, '\P{^Is_Blk=_private_Use_Area}', "");
-    Error('\p{Block=/a/general_Punctuation}');
-    Error('\P{Block=/a/general_Punctuation}');
+    Expect(1, 63743, '\p{Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(0, 63743, '\p{^Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(0, 63743, '\P{Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(1, 63743, '\P{^Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(0, 63744, '\p{Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(1, 63744, '\p{^Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(1, 63744, '\P{Is_Blk= PRIVATE_Use_Area}', "");
+    Expect(0, 63744, '\P{^Is_Blk= PRIVATE_Use_Area}', "");
+    Error('\p{Block=:= general_punctuation}');
+    Error('\P{Block=:= general_punctuation}');
     Expect(1, 8303, '\p{Block=:\AGeneral_Punctuation\z:}', "");;
     Expect(0, 8304, '\p{Block=:\AGeneral_Punctuation\z:}', "");;
     Expect(1, 8303, '\p{Block=generalpunctuation}', "");
@@ -23380,16 +23948,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8304, '\P{^Block=generalpunctuation}', "");
     Expect(1, 8303, '\p{Block=:\Ageneralpunctuation\z:}', "");;
     Expect(0, 8304, '\p{Block=:\Ageneralpunctuation\z:}', "");;
-    Expect(1, 8303, '\p{Block=-General_punctuation}', "");
-    Expect(0, 8303, '\p{^Block=-General_punctuation}', "");
-    Expect(0, 8303, '\P{Block=-General_punctuation}', "");
-    Expect(1, 8303, '\P{^Block=-General_punctuation}', "");
-    Expect(0, 8304, '\p{Block=-General_punctuation}', "");
-    Expect(1, 8304, '\p{^Block=-General_punctuation}', "");
-    Expect(1, 8304, '\P{Block=-General_punctuation}', "");
-    Expect(0, 8304, '\P{^Block=-General_punctuation}', "");
-    Error('\p{Blk=/a/Punctuation}');
-    Error('\P{Blk=/a/Punctuation}');
+    Expect(1, 8303, '\p{Block=-General_Punctuation}', "");
+    Expect(0, 8303, '\p{^Block=-General_Punctuation}', "");
+    Expect(0, 8303, '\P{Block=-General_Punctuation}', "");
+    Expect(1, 8303, '\P{^Block=-General_Punctuation}', "");
+    Expect(0, 8304, '\p{Block=-General_Punctuation}', "");
+    Expect(1, 8304, '\p{^Block=-General_Punctuation}', "");
+    Expect(1, 8304, '\P{Block=-General_Punctuation}', "");
+    Expect(0, 8304, '\P{^Block=-General_Punctuation}', "");
+    Error('\p{Blk=-Punctuation/a/}');
+    Error('\P{Blk=-Punctuation/a/}');
     Expect(1, 8303, '\p{Blk=:\APunctuation\z:}', "");;
     Expect(0, 8304, '\p{Blk=:\APunctuation\z:}', "");;
     Expect(1, 8303, '\p{Blk=punctuation}', "");
@@ -23402,16 +23970,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8304, '\P{^Blk=punctuation}', "");
     Expect(1, 8303, '\p{Blk=:\Apunctuation\z:}', "");;
     Expect(0, 8304, '\p{Blk=:\Apunctuation\z:}', "");;
-    Expect(1, 8303, '\p{Blk=	-PUNCTUATION}', "");
-    Expect(0, 8303, '\p{^Blk=	-PUNCTUATION}', "");
-    Expect(0, 8303, '\P{Blk=	-PUNCTUATION}', "");
-    Expect(1, 8303, '\P{^Blk=	-PUNCTUATION}', "");
-    Expect(0, 8304, '\p{Blk=	-PUNCTUATION}', "");
-    Expect(1, 8304, '\p{^Blk=	-PUNCTUATION}', "");
-    Expect(1, 8304, '\P{Blk=	-PUNCTUATION}', "");
-    Expect(0, 8304, '\P{^Blk=	-PUNCTUATION}', "");
-    Error('\p{Is_Block=-:=General_punctuation}');
-    Error('\P{Is_Block=-:=General_punctuation}');
+    Expect(1, 8303, '\p{Blk=-	Punctuation}', "");
+    Expect(0, 8303, '\p{^Blk=-	Punctuation}', "");
+    Expect(0, 8303, '\P{Blk=-	Punctuation}', "");
+    Expect(1, 8303, '\P{^Blk=-	Punctuation}', "");
+    Expect(0, 8304, '\p{Blk=-	Punctuation}', "");
+    Expect(1, 8304, '\p{^Blk=-	Punctuation}', "");
+    Expect(1, 8304, '\P{Blk=-	Punctuation}', "");
+    Expect(0, 8304, '\P{^Blk=-	Punctuation}', "");
+    Error('\p{Is_Block=_:=General_Punctuation}');
+    Error('\P{Is_Block=_:=General_Punctuation}');
     Expect(1, 8303, '\p{Is_Block=generalpunctuation}', "");
     Expect(0, 8303, '\p{^Is_Block=generalpunctuation}', "");
     Expect(0, 8303, '\P{Is_Block=generalpunctuation}', "");
@@ -23420,16 +23988,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8304, '\p{^Is_Block=generalpunctuation}', "");
     Expect(1, 8304, '\P{Is_Block=generalpunctuation}', "");
     Expect(0, 8304, '\P{^Is_Block=generalpunctuation}', "");
-    Expect(1, 8303, '\p{Is_Block=_general_Punctuation}', "");
-    Expect(0, 8303, '\p{^Is_Block=_general_Punctuation}', "");
-    Expect(0, 8303, '\P{Is_Block=_general_Punctuation}', "");
-    Expect(1, 8303, '\P{^Is_Block=_general_Punctuation}', "");
-    Expect(0, 8304, '\p{Is_Block=_general_Punctuation}', "");
-    Expect(1, 8304, '\p{^Is_Block=_general_Punctuation}', "");
-    Expect(1, 8304, '\P{Is_Block=_general_Punctuation}', "");
-    Expect(0, 8304, '\P{^Is_Block=_general_Punctuation}', "");
-    Error('\p{Is_Blk=_-Punctuation/a/}');
-    Error('\P{Is_Blk=_-Punctuation/a/}');
+    Expect(1, 8303, '\p{Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(0, 8303, '\p{^Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(0, 8303, '\P{Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(1, 8303, '\P{^Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(0, 8304, '\p{Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(1, 8304, '\p{^Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(1, 8304, '\P{Is_Block=-GENERAL_PUNCTUATION}', "");
+    Expect(0, 8304, '\P{^Is_Block=-GENERAL_PUNCTUATION}', "");
+    Error('\p{Is_Blk=_ PUNCTUATION:=}');
+    Error('\P{Is_Blk=_ PUNCTUATION:=}');
     Expect(1, 8303, '\p{Is_Blk=punctuation}', "");
     Expect(0, 8303, '\p{^Is_Blk=punctuation}', "");
     Expect(0, 8303, '\P{Is_Blk=punctuation}', "");
@@ -23438,16 +24006,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8304, '\p{^Is_Blk=punctuation}', "");
     Expect(1, 8304, '\P{Is_Blk=punctuation}', "");
     Expect(0, 8304, '\P{^Is_Blk=punctuation}', "");
-    Expect(1, 8303, '\p{Is_Blk=	PUNCTUATION}', "");
-    Expect(0, 8303, '\p{^Is_Blk=	PUNCTUATION}', "");
-    Expect(0, 8303, '\P{Is_Blk=	PUNCTUATION}', "");
-    Expect(1, 8303, '\P{^Is_Blk=	PUNCTUATION}', "");
-    Expect(0, 8304, '\p{Is_Blk=	PUNCTUATION}', "");
-    Expect(1, 8304, '\p{^Is_Blk=	PUNCTUATION}', "");
-    Expect(1, 8304, '\P{Is_Blk=	PUNCTUATION}', "");
-    Expect(0, 8304, '\P{^Is_Blk=	PUNCTUATION}', "");
-    Error('\p{Block=--Rejang:=}');
-    Error('\P{Block=--Rejang:=}');
+    Expect(1, 8303, '\p{Is_Blk: 	PUNCTUATION}', "");
+    Expect(0, 8303, '\p{^Is_Blk: 	PUNCTUATION}', "");
+    Expect(0, 8303, '\P{Is_Blk: 	PUNCTUATION}', "");
+    Expect(1, 8303, '\P{^Is_Blk: 	PUNCTUATION}', "");
+    Expect(0, 8304, '\p{Is_Blk: 	PUNCTUATION}', "");
+    Expect(1, 8304, '\p{^Is_Blk: 	PUNCTUATION}', "");
+    Expect(1, 8304, '\P{Is_Blk: 	PUNCTUATION}', "");
+    Expect(0, 8304, '\P{^Is_Blk: 	PUNCTUATION}', "");
+    Error('\p{Block=/a/_Rejang}');
+    Error('\P{Block=/a/_Rejang}');
     Expect(1, 43359, '\p{Block=:\ARejang\z:}', "");;
     Expect(0, 43360, '\p{Block=:\ARejang\z:}', "");;
     Expect(1, 43359, '\p{Block=rejang}', "");
@@ -23460,16 +24028,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43360, '\P{^Block=rejang}', "");
     Expect(1, 43359, '\p{Block=:\Arejang\z:}', "");;
     Expect(0, 43360, '\p{Block=:\Arejang\z:}', "");;
-    Expect(1, 43359, '\p{Block=Rejang}', "");
-    Expect(0, 43359, '\p{^Block=Rejang}', "");
-    Expect(0, 43359, '\P{Block=Rejang}', "");
-    Expect(1, 43359, '\P{^Block=Rejang}', "");
-    Expect(0, 43360, '\p{Block=Rejang}', "");
-    Expect(1, 43360, '\p{^Block=Rejang}', "");
-    Expect(1, 43360, '\P{Block=Rejang}', "");
-    Expect(0, 43360, '\P{^Block=Rejang}', "");
-    Error('\p{Blk=__Rejang/a/}');
-    Error('\P{Blk=__Rejang/a/}');
+    Expect(1, 43359, '\p{Block=_Rejang}', "");
+    Expect(0, 43359, '\p{^Block=_Rejang}', "");
+    Expect(0, 43359, '\P{Block=_Rejang}', "");
+    Expect(1, 43359, '\P{^Block=_Rejang}', "");
+    Expect(0, 43360, '\p{Block=_Rejang}', "");
+    Expect(1, 43360, '\p{^Block=_Rejang}', "");
+    Expect(1, 43360, '\P{Block=_Rejang}', "");
+    Expect(0, 43360, '\P{^Block=_Rejang}', "");
+    Error('\p{Blk=/a/ -Rejang}');
+    Error('\P{Blk=/a/ -Rejang}');
     Expect(1, 43359, '\p{Blk=:\ARejang\z:}', "");;
     Expect(0, 43360, '\p{Blk=:\ARejang\z:}', "");;
     Expect(1, 43359, '\p{Blk=rejang}', "");
@@ -23482,16 +24050,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43360, '\P{^Blk=rejang}', "");
     Expect(1, 43359, '\p{Blk=:\Arejang\z:}', "");;
     Expect(0, 43360, '\p{Blk=:\Arejang\z:}', "");;
-    Expect(1, 43359, '\p{Blk=	_Rejang}', "");
-    Expect(0, 43359, '\p{^Blk=	_Rejang}', "");
-    Expect(0, 43359, '\P{Blk=	_Rejang}', "");
-    Expect(1, 43359, '\P{^Blk=	_Rejang}', "");
-    Expect(0, 43360, '\p{Blk=	_Rejang}', "");
-    Expect(1, 43360, '\p{^Blk=	_Rejang}', "");
-    Expect(1, 43360, '\P{Blk=	_Rejang}', "");
-    Expect(0, 43360, '\P{^Blk=	_Rejang}', "");
-    Error('\p{Is_Block=	rejang/a/}');
-    Error('\P{Is_Block=	rejang/a/}');
+    Expect(1, 43359, '\p{Blk=  rejang}', "");
+    Expect(0, 43359, '\p{^Blk=  rejang}', "");
+    Expect(0, 43359, '\P{Blk=  rejang}', "");
+    Expect(1, 43359, '\P{^Blk=  rejang}', "");
+    Expect(0, 43360, '\p{Blk=  rejang}', "");
+    Expect(1, 43360, '\p{^Blk=  rejang}', "");
+    Expect(1, 43360, '\P{Blk=  rejang}', "");
+    Expect(0, 43360, '\P{^Blk=  rejang}', "");
+    Error('\p{Is_Block:   -/a/rejang}');
+    Error('\P{Is_Block:   -/a/rejang}');
     Expect(1, 43359, '\p{Is_Block=rejang}', "");
     Expect(0, 43359, '\p{^Is_Block=rejang}', "");
     Expect(0, 43359, '\P{Is_Block=rejang}', "");
@@ -23500,78 +24068,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43360, '\p{^Is_Block=rejang}', "");
     Expect(1, 43360, '\P{Is_Block=rejang}', "");
     Expect(0, 43360, '\P{^Is_Block=rejang}', "");
-    Expect(1, 43359, '\p{Is_Block= -rejang}', "");
-    Expect(0, 43359, '\p{^Is_Block= -rejang}', "");
-    Expect(0, 43359, '\P{Is_Block= -rejang}', "");
-    Expect(1, 43359, '\P{^Is_Block= -rejang}', "");
-    Expect(0, 43360, '\p{Is_Block= -rejang}', "");
-    Expect(1, 43360, '\p{^Is_Block= -rejang}', "");
-    Expect(1, 43360, '\P{Is_Block= -rejang}', "");
-    Expect(0, 43360, '\P{^Is_Block= -rejang}', "");
-    Error('\p{Is_Blk=_/a/rejang}');
-    Error('\P{Is_Blk=_/a/rejang}');
-    Expect(1, 43359, '\p{Is_Blk:rejang}', "");
-    Expect(0, 43359, '\p{^Is_Blk:rejang}', "");
-    Expect(0, 43359, '\P{Is_Blk:rejang}', "");
-    Expect(1, 43359, '\P{^Is_Blk:rejang}', "");
-    Expect(0, 43360, '\p{Is_Blk:rejang}', "");
-    Expect(1, 43360, '\p{^Is_Blk:rejang}', "");
-    Expect(1, 43360, '\P{Is_Blk:rejang}', "");
-    Expect(0, 43360, '\P{^Is_Blk:rejang}', "");
-    Expect(1, 43359, '\p{Is_Blk=	Rejang}', "");
-    Expect(0, 43359, '\p{^Is_Blk=	Rejang}', "");
-    Expect(0, 43359, '\P{Is_Blk=	Rejang}', "");
-    Expect(1, 43359, '\P{^Is_Blk=	Rejang}', "");
-    Expect(0, 43360, '\p{Is_Blk=	Rejang}', "");
-    Expect(1, 43360, '\p{^Is_Blk=	Rejang}', "");
-    Expect(1, 43360, '\P{Is_Blk=	Rejang}', "");
-    Expect(0, 43360, '\P{^Is_Blk=	Rejang}', "");
-    Error('\p{Block: -_rumi_numeral_Symbols:=}');
-    Error('\P{Block: -_rumi_numeral_Symbols:=}');
+    Expect(1, 43359, '\p{Is_Block:	REJANG}', "");
+    Expect(0, 43359, '\p{^Is_Block:	REJANG}', "");
+    Expect(0, 43359, '\P{Is_Block:	REJANG}', "");
+    Expect(1, 43359, '\P{^Is_Block:	REJANG}', "");
+    Expect(0, 43360, '\p{Is_Block:	REJANG}', "");
+    Expect(1, 43360, '\p{^Is_Block:	REJANG}', "");
+    Expect(1, 43360, '\P{Is_Block:	REJANG}', "");
+    Expect(0, 43360, '\P{^Is_Block:	REJANG}', "");
+    Error('\p{Is_Blk=_:=REJANG}');
+    Error('\P{Is_Blk=_:=REJANG}');
+    Expect(1, 43359, '\p{Is_Blk=rejang}', "");
+    Expect(0, 43359, '\p{^Is_Blk=rejang}', "");
+    Expect(0, 43359, '\P{Is_Blk=rejang}', "");
+    Expect(1, 43359, '\P{^Is_Blk=rejang}', "");
+    Expect(0, 43360, '\p{Is_Blk=rejang}', "");
+    Expect(1, 43360, '\p{^Is_Blk=rejang}', "");
+    Expect(1, 43360, '\P{Is_Blk=rejang}', "");
+    Expect(0, 43360, '\P{^Is_Blk=rejang}', "");
+    Expect(1, 43359, '\p{Is_Blk=--REJANG}', "");
+    Expect(0, 43359, '\p{^Is_Blk=--REJANG}', "");
+    Expect(0, 43359, '\P{Is_Blk=--REJANG}', "");
+    Expect(1, 43359, '\P{^Is_Blk=--REJANG}', "");
+    Expect(0, 43360, '\p{Is_Blk=--REJANG}', "");
+    Expect(1, 43360, '\p{^Is_Blk=--REJANG}', "");
+    Expect(1, 43360, '\P{Is_Blk=--REJANG}', "");
+    Expect(0, 43360, '\P{^Is_Blk=--REJANG}', "");
+    Error('\p{Block=/a/	 rumi_Numeral_symbols}');
+    Error('\P{Block=/a/	 rumi_Numeral_symbols}');
     Expect(1, 69247, '\p{Block=:\ARumi_Numeral_Symbols\z:}', "");;
     Expect(0, 69248, '\p{Block=:\ARumi_Numeral_Symbols\z:}', "");;
-    Expect(1, 69247, '\p{Block=ruminumeralsymbols}', "");
-    Expect(0, 69247, '\p{^Block=ruminumeralsymbols}', "");
-    Expect(0, 69247, '\P{Block=ruminumeralsymbols}', "");
-    Expect(1, 69247, '\P{^Block=ruminumeralsymbols}', "");
-    Expect(0, 69248, '\p{Block=ruminumeralsymbols}', "");
-    Expect(1, 69248, '\p{^Block=ruminumeralsymbols}', "");
-    Expect(1, 69248, '\P{Block=ruminumeralsymbols}', "");
-    Expect(0, 69248, '\P{^Block=ruminumeralsymbols}', "");
+    Expect(1, 69247, '\p{Block:ruminumeralsymbols}', "");
+    Expect(0, 69247, '\p{^Block:ruminumeralsymbols}', "");
+    Expect(0, 69247, '\P{Block:ruminumeralsymbols}', "");
+    Expect(1, 69247, '\P{^Block:ruminumeralsymbols}', "");
+    Expect(0, 69248, '\p{Block:ruminumeralsymbols}', "");
+    Expect(1, 69248, '\p{^Block:ruminumeralsymbols}', "");
+    Expect(1, 69248, '\P{Block:ruminumeralsymbols}', "");
+    Expect(0, 69248, '\P{^Block:ruminumeralsymbols}', "");
     Expect(1, 69247, '\p{Block=:\Aruminumeralsymbols\z:}', "");;
     Expect(0, 69248, '\p{Block=:\Aruminumeralsymbols\z:}', "");;
-    Expect(1, 69247, '\p{Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(0, 69247, '\p{^Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(0, 69247, '\P{Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(1, 69247, '\P{^Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(0, 69248, '\p{Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(1, 69248, '\p{^Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(1, 69248, '\P{Block=	-Rumi_Numeral_Symbols}', "");
-    Expect(0, 69248, '\P{^Block=	-Rumi_Numeral_Symbols}', "");
-    Error('\p{Blk=:= _Rumi}');
-    Error('\P{Blk=:= _Rumi}');
+    Expect(1, 69247, '\p{Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(0, 69247, '\p{^Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(0, 69247, '\P{Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(1, 69247, '\P{^Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(0, 69248, '\p{Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(1, 69248, '\p{^Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(1, 69248, '\P{Block=_ Rumi_numeral_SYMBOLS}', "");
+    Expect(0, 69248, '\P{^Block=_ Rumi_numeral_SYMBOLS}', "");
+    Error('\p{Blk=-:=rumi}');
+    Error('\P{Blk=-:=rumi}');
     Expect(1, 69247, '\p{Blk=:\ARumi\z:}', "");;
     Expect(0, 69248, '\p{Blk=:\ARumi\z:}', "");;
-    Expect(1, 69247, '\p{Blk:   rumi}', "");
-    Expect(0, 69247, '\p{^Blk:   rumi}', "");
-    Expect(0, 69247, '\P{Blk:   rumi}', "");
-    Expect(1, 69247, '\P{^Blk:   rumi}', "");
-    Expect(0, 69248, '\p{Blk:   rumi}', "");
-    Expect(1, 69248, '\p{^Blk:   rumi}', "");
-    Expect(1, 69248, '\P{Blk:   rumi}', "");
-    Expect(0, 69248, '\P{^Blk:   rumi}', "");
+    Expect(1, 69247, '\p{Blk=rumi}', "");
+    Expect(0, 69247, '\p{^Blk=rumi}', "");
+    Expect(0, 69247, '\P{Blk=rumi}', "");
+    Expect(1, 69247, '\P{^Blk=rumi}', "");
+    Expect(0, 69248, '\p{Blk=rumi}', "");
+    Expect(1, 69248, '\p{^Blk=rumi}', "");
+    Expect(1, 69248, '\P{Blk=rumi}', "");
+    Expect(0, 69248, '\P{^Blk=rumi}', "");
     Expect(1, 69247, '\p{Blk=:\Arumi\z:}', "");;
     Expect(0, 69248, '\p{Blk=:\Arumi\z:}', "");;
-    Expect(1, 69247, '\p{Blk= -rumi}', "");
-    Expect(0, 69247, '\p{^Blk= -rumi}', "");
-    Expect(0, 69247, '\P{Blk= -rumi}', "");
-    Expect(1, 69247, '\P{^Blk= -rumi}', "");
-    Expect(0, 69248, '\p{Blk= -rumi}', "");
-    Expect(1, 69248, '\p{^Blk= -rumi}', "");
-    Expect(1, 69248, '\P{Blk= -rumi}', "");
-    Expect(0, 69248, '\P{^Blk= -rumi}', "");
-    Error('\p{Is_Block=-Rumi_Numeral_symbols:=}');
-    Error('\P{Is_Block=-Rumi_Numeral_symbols:=}');
+    Expect(1, 69247, '\p{Blk=	Rumi}', "");
+    Expect(0, 69247, '\p{^Blk=	Rumi}', "");
+    Expect(0, 69247, '\P{Blk=	Rumi}', "");
+    Expect(1, 69247, '\P{^Blk=	Rumi}', "");
+    Expect(0, 69248, '\p{Blk=	Rumi}', "");
+    Expect(1, 69248, '\p{^Blk=	Rumi}', "");
+    Expect(1, 69248, '\P{Blk=	Rumi}', "");
+    Expect(0, 69248, '\P{^Blk=	Rumi}', "");
+    Error('\p{Is_Block= /a/rumi_NUMERAL_SYMBOLS}');
+    Error('\P{Is_Block= /a/rumi_NUMERAL_SYMBOLS}');
     Expect(1, 69247, '\p{Is_Block=ruminumeralsymbols}', "");
     Expect(0, 69247, '\p{^Is_Block=ruminumeralsymbols}', "");
     Expect(0, 69247, '\P{Is_Block=ruminumeralsymbols}', "");
@@ -23580,16 +24148,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69248, '\p{^Is_Block=ruminumeralsymbols}', "");
     Expect(1, 69248, '\P{Is_Block=ruminumeralsymbols}', "");
     Expect(0, 69248, '\P{^Is_Block=ruminumeralsymbols}', "");
-    Expect(1, 69247, '\p{Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(0, 69247, '\p{^Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(0, 69247, '\P{Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(1, 69247, '\P{^Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(0, 69248, '\p{Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(1, 69248, '\p{^Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(1, 69248, '\P{Is_Block=_rumi_numeral_Symbols}', "");
-    Expect(0, 69248, '\P{^Is_Block=_rumi_numeral_Symbols}', "");
-    Error('\p{Is_Blk= rumi/a/}');
-    Error('\P{Is_Blk= rumi/a/}');
+    Expect(1, 69247, '\p{Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(0, 69247, '\p{^Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(0, 69247, '\P{Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(1, 69247, '\P{^Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(0, 69248, '\p{Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(1, 69248, '\p{^Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(1, 69248, '\P{Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Expect(0, 69248, '\P{^Is_Block=  rumi_NUMERAL_SYMBOLS}', "");
+    Error('\p{Is_Blk=	-Rumi:=}');
+    Error('\P{Is_Blk=	-Rumi:=}');
     Expect(1, 69247, '\p{Is_Blk=rumi}', "");
     Expect(0, 69247, '\p{^Is_Blk=rumi}', "");
     Expect(0, 69247, '\P{Is_Blk=rumi}', "");
@@ -23598,16 +24166,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69248, '\p{^Is_Blk=rumi}', "");
     Expect(1, 69248, '\P{Is_Blk=rumi}', "");
     Expect(0, 69248, '\P{^Is_Blk=rumi}', "");
-    Expect(1, 69247, '\p{Is_Blk: 	Rumi}', "");
-    Expect(0, 69247, '\p{^Is_Blk: 	Rumi}', "");
-    Expect(0, 69247, '\P{Is_Blk: 	Rumi}', "");
-    Expect(1, 69247, '\P{^Is_Blk: 	Rumi}', "");
-    Expect(0, 69248, '\p{Is_Blk: 	Rumi}', "");
-    Expect(1, 69248, '\p{^Is_Blk: 	Rumi}', "");
-    Expect(1, 69248, '\P{Is_Blk: 	Rumi}', "");
-    Expect(0, 69248, '\P{^Is_Blk: 	Rumi}', "");
-    Error('\p{Block=	/a/RUNIC}');
-    Error('\P{Block=	/a/RUNIC}');
+    Expect(1, 69247, '\p{Is_Blk=	_rumi}', "");
+    Expect(0, 69247, '\p{^Is_Blk=	_rumi}', "");
+    Expect(0, 69247, '\P{Is_Blk=	_rumi}', "");
+    Expect(1, 69247, '\P{^Is_Blk=	_rumi}', "");
+    Expect(0, 69248, '\p{Is_Blk=	_rumi}', "");
+    Expect(1, 69248, '\p{^Is_Blk=	_rumi}', "");
+    Expect(1, 69248, '\P{Is_Blk=	_rumi}', "");
+    Expect(0, 69248, '\P{^Is_Blk=	_rumi}', "");
+    Error('\p{Block=_Runic/a/}');
+    Error('\P{Block=_Runic/a/}');
     Expect(1, 5887, '\p{Block=:\ARunic\z:}', "");;
     Expect(0, 5888, '\p{Block=:\ARunic\z:}', "");;
     Expect(1, 5887, '\p{Block=runic}', "");
@@ -23620,16 +24188,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5888, '\P{^Block=runic}', "");
     Expect(1, 5887, '\p{Block=:\Arunic\z:}', "");;
     Expect(0, 5888, '\p{Block=:\Arunic\z:}', "");;
-    Expect(1, 5887, '\p{Block=	-RUNIC}', "");
-    Expect(0, 5887, '\p{^Block=	-RUNIC}', "");
-    Expect(0, 5887, '\P{Block=	-RUNIC}', "");
-    Expect(1, 5887, '\P{^Block=	-RUNIC}', "");
-    Expect(0, 5888, '\p{Block=	-RUNIC}', "");
-    Expect(1, 5888, '\p{^Block=	-RUNIC}', "");
-    Expect(1, 5888, '\P{Block=	-RUNIC}', "");
-    Expect(0, 5888, '\P{^Block=	-RUNIC}', "");
-    Error('\p{Blk=:= Runic}');
-    Error('\P{Blk=:= Runic}');
+    Expect(1, 5887, '\p{Block= -Runic}', "");
+    Expect(0, 5887, '\p{^Block= -Runic}', "");
+    Expect(0, 5887, '\P{Block= -Runic}', "");
+    Expect(1, 5887, '\P{^Block= -Runic}', "");
+    Expect(0, 5888, '\p{Block= -Runic}', "");
+    Expect(1, 5888, '\p{^Block= -Runic}', "");
+    Expect(1, 5888, '\P{Block= -Runic}', "");
+    Expect(0, 5888, '\P{^Block= -Runic}', "");
+    Error('\p{Blk=-	runic:=}');
+    Error('\P{Blk=-	runic:=}');
     Expect(1, 5887, '\p{Blk=:\ARunic\z:}', "");;
     Expect(0, 5888, '\p{Blk=:\ARunic\z:}', "");;
     Expect(1, 5887, '\p{Blk=runic}', "");
@@ -23642,52 +24210,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5888, '\P{^Blk=runic}', "");
     Expect(1, 5887, '\p{Blk=:\Arunic\z:}', "");;
     Expect(0, 5888, '\p{Blk=:\Arunic\z:}', "");;
-    Expect(1, 5887, '\p{Blk=	_Runic}', "");
-    Expect(0, 5887, '\p{^Blk=	_Runic}', "");
-    Expect(0, 5887, '\P{Blk=	_Runic}', "");
-    Expect(1, 5887, '\P{^Blk=	_Runic}', "");
-    Expect(0, 5888, '\p{Blk=	_Runic}', "");
-    Expect(1, 5888, '\p{^Blk=	_Runic}', "");
-    Expect(1, 5888, '\P{Blk=	_Runic}', "");
-    Expect(0, 5888, '\P{^Blk=	_Runic}', "");
-    Error('\p{Is_Block=_/a/Runic}');
-    Error('\P{Is_Block=_/a/Runic}');
-    Expect(1, 5887, '\p{Is_Block=runic}', "");
-    Expect(0, 5887, '\p{^Is_Block=runic}', "");
-    Expect(0, 5887, '\P{Is_Block=runic}', "");
-    Expect(1, 5887, '\P{^Is_Block=runic}', "");
-    Expect(0, 5888, '\p{Is_Block=runic}', "");
-    Expect(1, 5888, '\p{^Is_Block=runic}', "");
-    Expect(1, 5888, '\P{Is_Block=runic}', "");
-    Expect(0, 5888, '\P{^Is_Block=runic}', "");
-    Expect(1, 5887, '\p{Is_Block=- RUNIC}', "");
-    Expect(0, 5887, '\p{^Is_Block=- RUNIC}', "");
-    Expect(0, 5887, '\P{Is_Block=- RUNIC}', "");
-    Expect(1, 5887, '\P{^Is_Block=- RUNIC}', "");
-    Expect(0, 5888, '\p{Is_Block=- RUNIC}', "");
-    Expect(1, 5888, '\p{^Is_Block=- RUNIC}', "");
-    Expect(1, 5888, '\P{Is_Block=- RUNIC}', "");
-    Expect(0, 5888, '\P{^Is_Block=- RUNIC}', "");
-    Error('\p{Is_Blk=/a/_RUNIC}');
-    Error('\P{Is_Blk=/a/_RUNIC}');
-    Expect(1, 5887, '\p{Is_Blk: runic}', "");
-    Expect(0, 5887, '\p{^Is_Blk: runic}', "");
-    Expect(0, 5887, '\P{Is_Blk: runic}', "");
-    Expect(1, 5887, '\P{^Is_Blk: runic}', "");
-    Expect(0, 5888, '\p{Is_Blk: runic}', "");
-    Expect(1, 5888, '\p{^Is_Blk: runic}', "");
-    Expect(1, 5888, '\P{Is_Blk: runic}', "");
-    Expect(0, 5888, '\P{^Is_Blk: runic}', "");
-    Expect(1, 5887, '\p{Is_Blk= RUNIC}', "");
-    Expect(0, 5887, '\p{^Is_Blk= RUNIC}', "");
-    Expect(0, 5887, '\P{Is_Blk= RUNIC}', "");
-    Expect(1, 5887, '\P{^Is_Blk= RUNIC}', "");
-    Expect(0, 5888, '\p{Is_Blk= RUNIC}', "");
-    Expect(1, 5888, '\p{^Is_Blk= RUNIC}', "");
-    Expect(1, 5888, '\P{Is_Blk= RUNIC}', "");
-    Expect(0, 5888, '\P{^Is_Blk= RUNIC}', "");
-    Error('\p{Block:  -samaritan:=}');
-    Error('\P{Block:  -samaritan:=}');
+    Expect(1, 5887, '\p{Blk:  runic}', "");
+    Expect(0, 5887, '\p{^Blk:  runic}', "");
+    Expect(0, 5887, '\P{Blk:  runic}', "");
+    Expect(1, 5887, '\P{^Blk:  runic}', "");
+    Expect(0, 5888, '\p{Blk:  runic}', "");
+    Expect(1, 5888, '\p{^Blk:  runic}', "");
+    Expect(1, 5888, '\P{Blk:  runic}', "");
+    Expect(0, 5888, '\P{^Blk:  runic}', "");
+    Error('\p{Is_Block=  RUNIC/a/}');
+    Error('\P{Is_Block=  RUNIC/a/}');
+    Expect(1, 5887, '\p{Is_Block: runic}', "");
+    Expect(0, 5887, '\p{^Is_Block: runic}', "");
+    Expect(0, 5887, '\P{Is_Block: runic}', "");
+    Expect(1, 5887, '\P{^Is_Block: runic}', "");
+    Expect(0, 5888, '\p{Is_Block: runic}', "");
+    Expect(1, 5888, '\p{^Is_Block: runic}', "");
+    Expect(1, 5888, '\P{Is_Block: runic}', "");
+    Expect(0, 5888, '\P{^Is_Block: runic}', "");
+    Expect(1, 5887, '\p{Is_Block=_	runic}', "");
+    Expect(0, 5887, '\p{^Is_Block=_	runic}', "");
+    Expect(0, 5887, '\P{Is_Block=_	runic}', "");
+    Expect(1, 5887, '\P{^Is_Block=_	runic}', "");
+    Expect(0, 5888, '\p{Is_Block=_	runic}', "");
+    Expect(1, 5888, '\p{^Is_Block=_	runic}', "");
+    Expect(1, 5888, '\P{Is_Block=_	runic}', "");
+    Expect(0, 5888, '\P{^Is_Block=_	runic}', "");
+    Error('\p{Is_Blk= Runic/a/}');
+    Error('\P{Is_Blk= Runic/a/}');
+    Expect(1, 5887, '\p{Is_Blk:runic}', "");
+    Expect(0, 5887, '\p{^Is_Blk:runic}', "");
+    Expect(0, 5887, '\P{Is_Blk:runic}', "");
+    Expect(1, 5887, '\P{^Is_Blk:runic}', "");
+    Expect(0, 5888, '\p{Is_Blk:runic}', "");
+    Expect(1, 5888, '\p{^Is_Blk:runic}', "");
+    Expect(1, 5888, '\P{Is_Blk:runic}', "");
+    Expect(0, 5888, '\P{^Is_Blk:runic}', "");
+    Expect(1, 5887, '\p{Is_Blk= 	RUNIC}', "");
+    Expect(0, 5887, '\p{^Is_Blk= 	RUNIC}', "");
+    Expect(0, 5887, '\P{Is_Blk= 	RUNIC}', "");
+    Expect(1, 5887, '\P{^Is_Blk= 	RUNIC}', "");
+    Expect(0, 5888, '\p{Is_Blk= 	RUNIC}', "");
+    Expect(1, 5888, '\p{^Is_Blk= 	RUNIC}', "");
+    Expect(1, 5888, '\P{Is_Blk= 	RUNIC}', "");
+    Expect(0, 5888, '\P{^Is_Blk= 	RUNIC}', "");
+    Error('\p{Block=		Samaritan/a/}');
+    Error('\P{Block=		Samaritan/a/}');
     Expect(1, 2111, '\p{Block=:\ASamaritan\z:}', "");;
     Expect(0, 2112, '\p{Block=:\ASamaritan\z:}', "");;
     Expect(1, 2111, '\p{Block=samaritan}', "");
@@ -23700,16 +24268,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2112, '\P{^Block=samaritan}', "");
     Expect(1, 2111, '\p{Block=:\Asamaritan\z:}', "");;
     Expect(0, 2112, '\p{Block=:\Asamaritan\z:}', "");;
-    Expect(1, 2111, '\p{Block=	 samaritan}', "");
-    Expect(0, 2111, '\p{^Block=	 samaritan}', "");
-    Expect(0, 2111, '\P{Block=	 samaritan}', "");
-    Expect(1, 2111, '\P{^Block=	 samaritan}', "");
-    Expect(0, 2112, '\p{Block=	 samaritan}', "");
-    Expect(1, 2112, '\p{^Block=	 samaritan}', "");
-    Expect(1, 2112, '\P{Block=	 samaritan}', "");
-    Expect(0, 2112, '\P{^Block=	 samaritan}', "");
-    Error('\p{Blk=	:=Samaritan}');
-    Error('\P{Blk=	:=Samaritan}');
+    Expect(1, 2111, '\p{Block=	 Samaritan}', "");
+    Expect(0, 2111, '\p{^Block=	 Samaritan}', "");
+    Expect(0, 2111, '\P{Block=	 Samaritan}', "");
+    Expect(1, 2111, '\P{^Block=	 Samaritan}', "");
+    Expect(0, 2112, '\p{Block=	 Samaritan}', "");
+    Expect(1, 2112, '\p{^Block=	 Samaritan}', "");
+    Expect(1, 2112, '\P{Block=	 Samaritan}', "");
+    Expect(0, 2112, '\P{^Block=	 Samaritan}', "");
+    Error('\p{Blk=-	SAMARITAN/a/}');
+    Error('\P{Blk=-	SAMARITAN/a/}');
     Expect(1, 2111, '\p{Blk=:\ASamaritan\z:}', "");;
     Expect(0, 2112, '\p{Blk=:\ASamaritan\z:}', "");;
     Expect(1, 2111, '\p{Blk=samaritan}', "");
@@ -23722,16 +24290,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2112, '\P{^Blk=samaritan}', "");
     Expect(1, 2111, '\p{Blk=:\Asamaritan\z:}', "");;
     Expect(0, 2112, '\p{Blk=:\Asamaritan\z:}', "");;
-    Expect(1, 2111, '\p{Blk=-	SAMARITAN}', "");
-    Expect(0, 2111, '\p{^Blk=-	SAMARITAN}', "");
-    Expect(0, 2111, '\P{Blk=-	SAMARITAN}', "");
-    Expect(1, 2111, '\P{^Blk=-	SAMARITAN}', "");
-    Expect(0, 2112, '\p{Blk=-	SAMARITAN}', "");
-    Expect(1, 2112, '\p{^Blk=-	SAMARITAN}', "");
-    Expect(1, 2112, '\P{Blk=-	SAMARITAN}', "");
-    Expect(0, 2112, '\P{^Blk=-	SAMARITAN}', "");
-    Error('\p{Is_Block=:=_ Samaritan}');
-    Error('\P{Is_Block=:=_ Samaritan}');
+    Expect(1, 2111, '\p{Blk=	 Samaritan}', "");
+    Expect(0, 2111, '\p{^Blk=	 Samaritan}', "");
+    Expect(0, 2111, '\P{Blk=	 Samaritan}', "");
+    Expect(1, 2111, '\P{^Blk=	 Samaritan}', "");
+    Expect(0, 2112, '\p{Blk=	 Samaritan}', "");
+    Expect(1, 2112, '\p{^Blk=	 Samaritan}', "");
+    Expect(1, 2112, '\P{Blk=	 Samaritan}', "");
+    Expect(0, 2112, '\P{^Blk=	 Samaritan}', "");
+    Error('\p{Is_Block=/a/-_Samaritan}');
+    Error('\P{Is_Block=/a/-_Samaritan}');
     Expect(1, 2111, '\p{Is_Block=samaritan}', "");
     Expect(0, 2111, '\p{^Is_Block=samaritan}', "");
     Expect(0, 2111, '\P{Is_Block=samaritan}', "");
@@ -23740,16 +24308,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2112, '\p{^Is_Block=samaritan}', "");
     Expect(1, 2112, '\P{Is_Block=samaritan}', "");
     Expect(0, 2112, '\P{^Is_Block=samaritan}', "");
-    Expect(1, 2111, '\p{Is_Block:	samaritan}', "");
-    Expect(0, 2111, '\p{^Is_Block:	samaritan}', "");
-    Expect(0, 2111, '\P{Is_Block:	samaritan}', "");
-    Expect(1, 2111, '\P{^Is_Block:	samaritan}', "");
-    Expect(0, 2112, '\p{Is_Block:	samaritan}', "");
-    Expect(1, 2112, '\p{^Is_Block:	samaritan}', "");
-    Expect(1, 2112, '\P{Is_Block:	samaritan}', "");
-    Expect(0, 2112, '\P{^Is_Block:	samaritan}', "");
-    Error('\p{Is_Blk=_:=SAMARITAN}');
-    Error('\P{Is_Blk=_:=SAMARITAN}');
+    Expect(1, 2111, '\p{Is_Block=- samaritan}', "");
+    Expect(0, 2111, '\p{^Is_Block=- samaritan}', "");
+    Expect(0, 2111, '\P{Is_Block=- samaritan}', "");
+    Expect(1, 2111, '\P{^Is_Block=- samaritan}', "");
+    Expect(0, 2112, '\p{Is_Block=- samaritan}', "");
+    Expect(1, 2112, '\p{^Is_Block=- samaritan}', "");
+    Expect(1, 2112, '\P{Is_Block=- samaritan}', "");
+    Expect(0, 2112, '\P{^Is_Block=- samaritan}', "");
+    Error('\p{Is_Blk=:=-Samaritan}');
+    Error('\P{Is_Blk=:=-Samaritan}');
     Expect(1, 2111, '\p{Is_Blk:samaritan}', "");
     Expect(0, 2111, '\p{^Is_Blk:samaritan}', "");
     Expect(0, 2111, '\P{Is_Blk:samaritan}', "");
@@ -23758,16 +24326,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2112, '\p{^Is_Blk:samaritan}', "");
     Expect(1, 2112, '\P{Is_Blk:samaritan}', "");
     Expect(0, 2112, '\P{^Is_Blk:samaritan}', "");
-    Expect(1, 2111, '\p{Is_Blk=	 SAMARITAN}', "");
-    Expect(0, 2111, '\p{^Is_Blk=	 SAMARITAN}', "");
-    Expect(0, 2111, '\P{Is_Blk=	 SAMARITAN}', "");
-    Expect(1, 2111, '\P{^Is_Blk=	 SAMARITAN}', "");
-    Expect(0, 2112, '\p{Is_Blk=	 SAMARITAN}', "");
-    Expect(1, 2112, '\p{^Is_Blk=	 SAMARITAN}', "");
-    Expect(1, 2112, '\P{Is_Blk=	 SAMARITAN}', "");
-    Expect(0, 2112, '\P{^Is_Blk=	 SAMARITAN}', "");
-    Error('\p{Block=:= Saurashtra}');
-    Error('\P{Block=:= Saurashtra}');
+    Expect(1, 2111, '\p{Is_Blk: -_SAMARITAN}', "");
+    Expect(0, 2111, '\p{^Is_Blk: -_SAMARITAN}', "");
+    Expect(0, 2111, '\P{Is_Blk: -_SAMARITAN}', "");
+    Expect(1, 2111, '\P{^Is_Blk: -_SAMARITAN}', "");
+    Expect(0, 2112, '\p{Is_Blk: -_SAMARITAN}', "");
+    Expect(1, 2112, '\p{^Is_Blk: -_SAMARITAN}', "");
+    Expect(1, 2112, '\P{Is_Blk: -_SAMARITAN}', "");
+    Expect(0, 2112, '\P{^Is_Blk: -_SAMARITAN}', "");
+    Error('\p{Block=:=	 SAURASHTRA}');
+    Error('\P{Block=:=	 SAURASHTRA}');
     Expect(1, 43231, '\p{Block=:\ASaurashtra\z:}', "");;
     Expect(0, 43232, '\p{Block=:\ASaurashtra\z:}', "");;
     Expect(1, 43231, '\p{Block=saurashtra}', "");
@@ -23780,16 +24348,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43232, '\P{^Block=saurashtra}', "");
     Expect(1, 43231, '\p{Block=:\Asaurashtra\z:}', "");;
     Expect(0, 43232, '\p{Block=:\Asaurashtra\z:}', "");;
-    Expect(1, 43231, '\p{Block=- Saurashtra}', "");
-    Expect(0, 43231, '\p{^Block=- Saurashtra}', "");
-    Expect(0, 43231, '\P{Block=- Saurashtra}', "");
-    Expect(1, 43231, '\P{^Block=- Saurashtra}', "");
-    Expect(0, 43232, '\p{Block=- Saurashtra}', "");
-    Expect(1, 43232, '\p{^Block=- Saurashtra}', "");
-    Expect(1, 43232, '\P{Block=- Saurashtra}', "");
-    Expect(0, 43232, '\P{^Block=- Saurashtra}', "");
-    Error('\p{Blk: /a/  saurashtra}');
-    Error('\P{Blk: /a/  saurashtra}');
+    Expect(1, 43231, '\p{Block=-	SAURASHTRA}', "");
+    Expect(0, 43231, '\p{^Block=-	SAURASHTRA}', "");
+    Expect(0, 43231, '\P{Block=-	SAURASHTRA}', "");
+    Expect(1, 43231, '\P{^Block=-	SAURASHTRA}', "");
+    Expect(0, 43232, '\p{Block=-	SAURASHTRA}', "");
+    Expect(1, 43232, '\p{^Block=-	SAURASHTRA}', "");
+    Expect(1, 43232, '\P{Block=-	SAURASHTRA}', "");
+    Expect(0, 43232, '\P{^Block=-	SAURASHTRA}', "");
+    Error('\p{Blk= /a/saurashtra}');
+    Error('\P{Blk= /a/saurashtra}');
     Expect(1, 43231, '\p{Blk=:\ASaurashtra\z:}', "");;
     Expect(0, 43232, '\p{Blk=:\ASaurashtra\z:}', "");;
     Expect(1, 43231, '\p{Blk=saurashtra}', "");
@@ -23802,16 +24370,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43232, '\P{^Blk=saurashtra}', "");
     Expect(1, 43231, '\p{Blk=:\Asaurashtra\z:}', "");;
     Expect(0, 43232, '\p{Blk=:\Asaurashtra\z:}', "");;
-    Expect(1, 43231, '\p{Blk= SAURASHTRA}', "");
-    Expect(0, 43231, '\p{^Blk= SAURASHTRA}', "");
-    Expect(0, 43231, '\P{Blk= SAURASHTRA}', "");
-    Expect(1, 43231, '\P{^Blk= SAURASHTRA}', "");
-    Expect(0, 43232, '\p{Blk= SAURASHTRA}', "");
-    Expect(1, 43232, '\p{^Blk= SAURASHTRA}', "");
-    Expect(1, 43232, '\P{Blk= SAURASHTRA}', "");
-    Expect(0, 43232, '\P{^Blk= SAURASHTRA}', "");
-    Error('\p{Is_Block=	:=Saurashtra}');
-    Error('\P{Is_Block=	:=Saurashtra}');
+    Expect(1, 43231, '\p{Blk=		Saurashtra}', "");
+    Expect(0, 43231, '\p{^Blk=		Saurashtra}', "");
+    Expect(0, 43231, '\P{Blk=		Saurashtra}', "");
+    Expect(1, 43231, '\P{^Blk=		Saurashtra}', "");
+    Expect(0, 43232, '\p{Blk=		Saurashtra}', "");
+    Expect(1, 43232, '\p{^Blk=		Saurashtra}', "");
+    Expect(1, 43232, '\P{Blk=		Saurashtra}', "");
+    Expect(0, 43232, '\P{^Blk=		Saurashtra}', "");
+    Error('\p{Is_Block= :=Saurashtra}');
+    Error('\P{Is_Block= :=Saurashtra}');
     Expect(1, 43231, '\p{Is_Block=saurashtra}', "");
     Expect(0, 43231, '\p{^Is_Block=saurashtra}', "");
     Expect(0, 43231, '\P{Is_Block=saurashtra}', "");
@@ -23820,16 +24388,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43232, '\p{^Is_Block=saurashtra}', "");
     Expect(1, 43232, '\P{Is_Block=saurashtra}', "");
     Expect(0, 43232, '\P{^Is_Block=saurashtra}', "");
-    Expect(1, 43231, '\p{Is_Block=-saurashtra}', "");
-    Expect(0, 43231, '\p{^Is_Block=-saurashtra}', "");
-    Expect(0, 43231, '\P{Is_Block=-saurashtra}', "");
-    Expect(1, 43231, '\P{^Is_Block=-saurashtra}', "");
-    Expect(0, 43232, '\p{Is_Block=-saurashtra}', "");
-    Expect(1, 43232, '\p{^Is_Block=-saurashtra}', "");
-    Expect(1, 43232, '\P{Is_Block=-saurashtra}', "");
-    Expect(0, 43232, '\P{^Is_Block=-saurashtra}', "");
-    Error('\p{Is_Blk=/a/_Saurashtra}');
-    Error('\P{Is_Blk=/a/_Saurashtra}');
+    Expect(1, 43231, '\p{Is_Block=- Saurashtra}', "");
+    Expect(0, 43231, '\p{^Is_Block=- Saurashtra}', "");
+    Expect(0, 43231, '\P{Is_Block=- Saurashtra}', "");
+    Expect(1, 43231, '\P{^Is_Block=- Saurashtra}', "");
+    Expect(0, 43232, '\p{Is_Block=- Saurashtra}', "");
+    Expect(1, 43232, '\p{^Is_Block=- Saurashtra}', "");
+    Expect(1, 43232, '\P{Is_Block=- Saurashtra}', "");
+    Expect(0, 43232, '\P{^Is_Block=- Saurashtra}', "");
+    Error('\p{Is_Blk= /a/saurashtra}');
+    Error('\P{Is_Blk= /a/saurashtra}');
     Expect(1, 43231, '\p{Is_Blk=saurashtra}', "");
     Expect(0, 43231, '\p{^Is_Blk=saurashtra}', "");
     Expect(0, 43231, '\P{Is_Blk=saurashtra}', "");
@@ -23838,38 +24406,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43232, '\p{^Is_Blk=saurashtra}', "");
     Expect(1, 43232, '\P{Is_Blk=saurashtra}', "");
     Expect(0, 43232, '\P{^Is_Blk=saurashtra}', "");
-    Expect(1, 43231, '\p{Is_Blk=_ Saurashtra}', "");
-    Expect(0, 43231, '\p{^Is_Blk=_ Saurashtra}', "");
-    Expect(0, 43231, '\P{Is_Blk=_ Saurashtra}', "");
-    Expect(1, 43231, '\P{^Is_Blk=_ Saurashtra}', "");
-    Expect(0, 43232, '\p{Is_Blk=_ Saurashtra}', "");
-    Expect(1, 43232, '\p{^Is_Blk=_ Saurashtra}', "");
-    Expect(1, 43232, '\P{Is_Blk=_ Saurashtra}', "");
-    Expect(0, 43232, '\P{^Is_Blk=_ Saurashtra}', "");
-    Error('\p{Block=/a/		Sharada}');
-    Error('\P{Block=/a/		Sharada}');
+    Expect(1, 43231, '\p{Is_Blk=-	Saurashtra}', "");
+    Expect(0, 43231, '\p{^Is_Blk=-	Saurashtra}', "");
+    Expect(0, 43231, '\P{Is_Blk=-	Saurashtra}', "");
+    Expect(1, 43231, '\P{^Is_Blk=-	Saurashtra}', "");
+    Expect(0, 43232, '\p{Is_Blk=-	Saurashtra}', "");
+    Expect(1, 43232, '\p{^Is_Blk=-	Saurashtra}', "");
+    Expect(1, 43232, '\P{Is_Blk=-	Saurashtra}', "");
+    Expect(0, 43232, '\P{^Is_Blk=-	Saurashtra}', "");
+    Error('\p{Block=-	Sharada/a/}');
+    Error('\P{Block=-	Sharada/a/}');
     Expect(1, 70111, '\p{Block=:\ASharada\z:}', "");;
     Expect(0, 70112, '\p{Block=:\ASharada\z:}', "");;
-    Expect(1, 70111, '\p{Block=sharada}', "");
-    Expect(0, 70111, '\p{^Block=sharada}', "");
-    Expect(0, 70111, '\P{Block=sharada}', "");
-    Expect(1, 70111, '\P{^Block=sharada}', "");
-    Expect(0, 70112, '\p{Block=sharada}', "");
-    Expect(1, 70112, '\p{^Block=sharada}', "");
-    Expect(1, 70112, '\P{Block=sharada}', "");
-    Expect(0, 70112, '\P{^Block=sharada}', "");
+    Expect(1, 70111, '\p{Block:sharada}', "");
+    Expect(0, 70111, '\p{^Block:sharada}', "");
+    Expect(0, 70111, '\P{Block:sharada}', "");
+    Expect(1, 70111, '\P{^Block:sharada}', "");
+    Expect(0, 70112, '\p{Block:sharada}', "");
+    Expect(1, 70112, '\p{^Block:sharada}', "");
+    Expect(1, 70112, '\P{Block:sharada}', "");
+    Expect(0, 70112, '\P{^Block:sharada}', "");
     Expect(1, 70111, '\p{Block=:\Asharada\z:}', "");;
     Expect(0, 70112, '\p{Block=:\Asharada\z:}', "");;
-    Expect(1, 70111, '\p{Block=_-Sharada}', "");
-    Expect(0, 70111, '\p{^Block=_-Sharada}', "");
-    Expect(0, 70111, '\P{Block=_-Sharada}', "");
-    Expect(1, 70111, '\P{^Block=_-Sharada}', "");
-    Expect(0, 70112, '\p{Block=_-Sharada}', "");
-    Expect(1, 70112, '\p{^Block=_-Sharada}', "");
-    Expect(1, 70112, '\P{Block=_-Sharada}', "");
-    Expect(0, 70112, '\P{^Block=_-Sharada}', "");
-    Error('\p{Blk=  SHARADA/a/}');
-    Error('\P{Blk=  SHARADA/a/}');
+    Expect(1, 70111, '\p{Block=	_sharada}', "");
+    Expect(0, 70111, '\p{^Block=	_sharada}', "");
+    Expect(0, 70111, '\P{Block=	_sharada}', "");
+    Expect(1, 70111, '\P{^Block=	_sharada}', "");
+    Expect(0, 70112, '\p{Block=	_sharada}', "");
+    Expect(1, 70112, '\p{^Block=	_sharada}', "");
+    Expect(1, 70112, '\P{Block=	_sharada}', "");
+    Expect(0, 70112, '\P{^Block=	_sharada}', "");
+    Error('\p{Blk=--Sharada:=}');
+    Error('\P{Blk=--Sharada:=}');
     Expect(1, 70111, '\p{Blk=:\ASharada\z:}', "");;
     Expect(0, 70112, '\p{Blk=:\ASharada\z:}', "");;
     Expect(1, 70111, '\p{Blk=sharada}', "");
@@ -23882,16 +24450,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70112, '\P{^Blk=sharada}', "");
     Expect(1, 70111, '\p{Blk=:\Asharada\z:}', "");;
     Expect(0, 70112, '\p{Blk=:\Asharada\z:}', "");;
-    Expect(1, 70111, '\p{Blk=	SHARADA}', "");
-    Expect(0, 70111, '\p{^Blk=	SHARADA}', "");
-    Expect(0, 70111, '\P{Blk=	SHARADA}', "");
-    Expect(1, 70111, '\P{^Blk=	SHARADA}', "");
-    Expect(0, 70112, '\p{Blk=	SHARADA}', "");
-    Expect(1, 70112, '\p{^Blk=	SHARADA}', "");
-    Expect(1, 70112, '\P{Blk=	SHARADA}', "");
-    Expect(0, 70112, '\P{^Blk=	SHARADA}', "");
-    Error('\p{Is_Block=	_sharada/a/}');
-    Error('\P{Is_Block=	_sharada/a/}');
+    Expect(1, 70111, '\p{Blk= Sharada}', "");
+    Expect(0, 70111, '\p{^Blk= Sharada}', "");
+    Expect(0, 70111, '\P{Blk= Sharada}', "");
+    Expect(1, 70111, '\P{^Blk= Sharada}', "");
+    Expect(0, 70112, '\p{Blk= Sharada}', "");
+    Expect(1, 70112, '\p{^Blk= Sharada}', "");
+    Expect(1, 70112, '\P{Blk= Sharada}', "");
+    Expect(0, 70112, '\P{^Blk= Sharada}', "");
+    Error('\p{Is_Block=/a/ Sharada}');
+    Error('\P{Is_Block=/a/ Sharada}');
     Expect(1, 70111, '\p{Is_Block=sharada}', "");
     Expect(0, 70111, '\p{^Is_Block=sharada}', "");
     Expect(0, 70111, '\P{Is_Block=sharada}', "");
@@ -23900,16 +24468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70112, '\p{^Is_Block=sharada}', "");
     Expect(1, 70112, '\P{Is_Block=sharada}', "");
     Expect(0, 70112, '\P{^Is_Block=sharada}', "");
-    Expect(1, 70111, '\p{Is_Block=-	SHARADA}', "");
-    Expect(0, 70111, '\p{^Is_Block=-	SHARADA}', "");
-    Expect(0, 70111, '\P{Is_Block=-	SHARADA}', "");
-    Expect(1, 70111, '\P{^Is_Block=-	SHARADA}', "");
-    Expect(0, 70112, '\p{Is_Block=-	SHARADA}', "");
-    Expect(1, 70112, '\p{^Is_Block=-	SHARADA}', "");
-    Expect(1, 70112, '\P{Is_Block=-	SHARADA}', "");
-    Expect(0, 70112, '\P{^Is_Block=-	SHARADA}', "");
-    Error('\p{Is_Blk=sharada/a/}');
-    Error('\P{Is_Blk=sharada/a/}');
+    Expect(1, 70111, '\p{Is_Block= Sharada}', "");
+    Expect(0, 70111, '\p{^Is_Block= Sharada}', "");
+    Expect(0, 70111, '\P{Is_Block= Sharada}', "");
+    Expect(1, 70111, '\P{^Is_Block= Sharada}', "");
+    Expect(0, 70112, '\p{Is_Block= Sharada}', "");
+    Expect(1, 70112, '\p{^Is_Block= Sharada}', "");
+    Expect(1, 70112, '\P{Is_Block= Sharada}', "");
+    Expect(0, 70112, '\P{^Is_Block= Sharada}', "");
+    Error('\p{Is_Blk=_Sharada:=}');
+    Error('\P{Is_Blk=_Sharada:=}');
     Expect(1, 70111, '\p{Is_Blk=sharada}', "");
     Expect(0, 70111, '\p{^Is_Blk=sharada}', "");
     Expect(0, 70111, '\P{Is_Blk=sharada}', "");
@@ -23918,16 +24486,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70112, '\p{^Is_Blk=sharada}', "");
     Expect(1, 70112, '\P{Is_Blk=sharada}', "");
     Expect(0, 70112, '\P{^Is_Blk=sharada}', "");
-    Expect(1, 70111, '\p{Is_Blk=		sharada}', "");
-    Expect(0, 70111, '\p{^Is_Blk=		sharada}', "");
-    Expect(0, 70111, '\P{Is_Blk=		sharada}', "");
-    Expect(1, 70111, '\P{^Is_Blk=		sharada}', "");
-    Expect(0, 70112, '\p{Is_Blk=		sharada}', "");
-    Expect(1, 70112, '\p{^Is_Blk=		sharada}', "");
-    Expect(1, 70112, '\P{Is_Blk=		sharada}', "");
-    Expect(0, 70112, '\P{^Is_Blk=		sharada}', "");
-    Error('\p{Block= :=Shavian}');
-    Error('\P{Block= :=Shavian}');
+    Expect(1, 70111, '\p{Is_Blk=	 SHARADA}', "");
+    Expect(0, 70111, '\p{^Is_Blk=	 SHARADA}', "");
+    Expect(0, 70111, '\P{Is_Blk=	 SHARADA}', "");
+    Expect(1, 70111, '\P{^Is_Blk=	 SHARADA}', "");
+    Expect(0, 70112, '\p{Is_Blk=	 SHARADA}', "");
+    Expect(1, 70112, '\p{^Is_Blk=	 SHARADA}', "");
+    Expect(1, 70112, '\P{Is_Blk=	 SHARADA}', "");
+    Expect(0, 70112, '\P{^Is_Blk=	 SHARADA}', "");
+    Error('\p{Block=:=		Shavian}');
+    Error('\P{Block=:=		Shavian}');
     Expect(1, 66687, '\p{Block=:\AShavian\z:}', "");;
     Expect(0, 66688, '\p{Block=:\AShavian\z:}', "");;
     Expect(1, 66687, '\p{Block=shavian}', "");
@@ -23940,16 +24508,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66688, '\P{^Block=shavian}', "");
     Expect(1, 66687, '\p{Block=:\Ashavian\z:}', "");;
     Expect(0, 66688, '\p{Block=:\Ashavian\z:}', "");;
-    Expect(1, 66687, '\p{Block=	 Shavian}', "");
-    Expect(0, 66687, '\p{^Block=	 Shavian}', "");
-    Expect(0, 66687, '\P{Block=	 Shavian}', "");
-    Expect(1, 66687, '\P{^Block=	 Shavian}', "");
-    Expect(0, 66688, '\p{Block=	 Shavian}', "");
-    Expect(1, 66688, '\p{^Block=	 Shavian}', "");
-    Expect(1, 66688, '\P{Block=	 Shavian}', "");
-    Expect(0, 66688, '\P{^Block=	 Shavian}', "");
-    Error('\p{Blk=/a/_-shavian}');
-    Error('\P{Blk=/a/_-shavian}');
+    Expect(1, 66687, '\p{Block=	 SHAVIAN}', "");
+    Expect(0, 66687, '\p{^Block=	 SHAVIAN}', "");
+    Expect(0, 66687, '\P{Block=	 SHAVIAN}', "");
+    Expect(1, 66687, '\P{^Block=	 SHAVIAN}', "");
+    Expect(0, 66688, '\p{Block=	 SHAVIAN}', "");
+    Expect(1, 66688, '\p{^Block=	 SHAVIAN}', "");
+    Expect(1, 66688, '\P{Block=	 SHAVIAN}', "");
+    Expect(0, 66688, '\P{^Block=	 SHAVIAN}', "");
+    Error('\p{Blk=:=--SHAVIAN}');
+    Error('\P{Blk=:=--SHAVIAN}');
     Expect(1, 66687, '\p{Blk=:\AShavian\z:}', "");;
     Expect(0, 66688, '\p{Blk=:\AShavian\z:}', "");;
     Expect(1, 66687, '\p{Blk=shavian}', "");
@@ -23962,16 +24530,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66688, '\P{^Blk=shavian}', "");
     Expect(1, 66687, '\p{Blk=:\Ashavian\z:}', "");;
     Expect(0, 66688, '\p{Blk=:\Ashavian\z:}', "");;
-    Expect(1, 66687, '\p{Blk=  shavian}', "");
-    Expect(0, 66687, '\p{^Blk=  shavian}', "");
-    Expect(0, 66687, '\P{Blk=  shavian}', "");
-    Expect(1, 66687, '\P{^Blk=  shavian}', "");
-    Expect(0, 66688, '\p{Blk=  shavian}', "");
-    Expect(1, 66688, '\p{^Blk=  shavian}', "");
-    Expect(1, 66688, '\P{Blk=  shavian}', "");
-    Expect(0, 66688, '\P{^Blk=  shavian}', "");
-    Error('\p{Is_Block:   /a/Shavian}');
-    Error('\P{Is_Block:   /a/Shavian}');
+    Expect(1, 66687, '\p{Blk=		Shavian}', "");
+    Expect(0, 66687, '\p{^Blk=		Shavian}', "");
+    Expect(0, 66687, '\P{Blk=		Shavian}', "");
+    Expect(1, 66687, '\P{^Blk=		Shavian}', "");
+    Expect(0, 66688, '\p{Blk=		Shavian}', "");
+    Expect(1, 66688, '\p{^Blk=		Shavian}', "");
+    Expect(1, 66688, '\P{Blk=		Shavian}', "");
+    Expect(0, 66688, '\P{^Blk=		Shavian}', "");
+    Error('\p{Is_Block=:=-	shavian}');
+    Error('\P{Is_Block=:=-	shavian}');
     Expect(1, 66687, '\p{Is_Block=shavian}', "");
     Expect(0, 66687, '\p{^Is_Block=shavian}', "");
     Expect(0, 66687, '\P{Is_Block=shavian}', "");
@@ -23980,16 +24548,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66688, '\p{^Is_Block=shavian}', "");
     Expect(1, 66688, '\P{Is_Block=shavian}', "");
     Expect(0, 66688, '\P{^Is_Block=shavian}', "");
-    Expect(1, 66687, '\p{Is_Block=_-Shavian}', "");
-    Expect(0, 66687, '\p{^Is_Block=_-Shavian}', "");
-    Expect(0, 66687, '\P{Is_Block=_-Shavian}', "");
-    Expect(1, 66687, '\P{^Is_Block=_-Shavian}', "");
-    Expect(0, 66688, '\p{Is_Block=_-Shavian}', "");
-    Expect(1, 66688, '\p{^Is_Block=_-Shavian}', "");
-    Expect(1, 66688, '\P{Is_Block=_-Shavian}', "");
-    Expect(0, 66688, '\P{^Is_Block=_-Shavian}', "");
-    Error('\p{Is_Blk=-/a/Shavian}');
-    Error('\P{Is_Blk=-/a/Shavian}');
+    Expect(1, 66687, '\p{Is_Block=__Shavian}', "");
+    Expect(0, 66687, '\p{^Is_Block=__Shavian}', "");
+    Expect(0, 66687, '\P{Is_Block=__Shavian}', "");
+    Expect(1, 66687, '\P{^Is_Block=__Shavian}', "");
+    Expect(0, 66688, '\p{Is_Block=__Shavian}', "");
+    Expect(1, 66688, '\p{^Is_Block=__Shavian}', "");
+    Expect(1, 66688, '\P{Is_Block=__Shavian}', "");
+    Expect(0, 66688, '\P{^Is_Block=__Shavian}', "");
+    Error('\p{Is_Blk=-SHAVIAN/a/}');
+    Error('\P{Is_Blk=-SHAVIAN/a/}');
     Expect(1, 66687, '\p{Is_Blk=shavian}', "");
     Expect(0, 66687, '\p{^Is_Blk=shavian}', "");
     Expect(0, 66687, '\P{Is_Blk=shavian}', "");
@@ -23998,16 +24566,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66688, '\p{^Is_Blk=shavian}', "");
     Expect(1, 66688, '\P{Is_Blk=shavian}', "");
     Expect(0, 66688, '\P{^Is_Blk=shavian}', "");
-    Expect(1, 66687, '\p{Is_Blk=-Shavian}', "");
-    Expect(0, 66687, '\p{^Is_Blk=-Shavian}', "");
-    Expect(0, 66687, '\P{Is_Blk=-Shavian}', "");
-    Expect(1, 66687, '\P{^Is_Blk=-Shavian}', "");
-    Expect(0, 66688, '\p{Is_Blk=-Shavian}', "");
-    Expect(1, 66688, '\p{^Is_Blk=-Shavian}', "");
-    Expect(1, 66688, '\P{Is_Blk=-Shavian}', "");
-    Expect(0, 66688, '\P{^Is_Blk=-Shavian}', "");
-    Error('\p{Block=_:=SHORTHAND_Format_Controls}');
-    Error('\P{Block=_:=SHORTHAND_Format_Controls}');
+    Expect(1, 66687, '\p{Is_Blk=-_SHAVIAN}', "");
+    Expect(0, 66687, '\p{^Is_Blk=-_SHAVIAN}', "");
+    Expect(0, 66687, '\P{Is_Blk=-_SHAVIAN}', "");
+    Expect(1, 66687, '\P{^Is_Blk=-_SHAVIAN}', "");
+    Expect(0, 66688, '\p{Is_Blk=-_SHAVIAN}', "");
+    Expect(1, 66688, '\p{^Is_Blk=-_SHAVIAN}', "");
+    Expect(1, 66688, '\P{Is_Blk=-_SHAVIAN}', "");
+    Expect(0, 66688, '\P{^Is_Blk=-_SHAVIAN}', "");
+    Error('\p{Block=_/a/Shorthand_Format_Controls}');
+    Error('\P{Block=_/a/Shorthand_Format_Controls}');
     Expect(1, 113839, '\p{Block=:\AShorthand_Format_Controls\z:}', "");;
     Expect(0, 113840, '\p{Block=:\AShorthand_Format_Controls\z:}', "");;
     Expect(1, 113839, '\p{Block=shorthandformatcontrols}', "");
@@ -24020,16 +24588,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 113840, '\P{^Block=shorthandformatcontrols}', "");
     Expect(1, 113839, '\p{Block=:\Ashorthandformatcontrols\z:}', "");;
     Expect(0, 113840, '\p{Block=:\Ashorthandformatcontrols\z:}', "");;
-    Expect(1, 113839, '\p{Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113839, '\p{^Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113839, '\P{Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(1, 113839, '\P{^Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113840, '\p{Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(1, 113840, '\p{^Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(1, 113840, '\P{Block=_ Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113840, '\P{^Block=_ Shorthand_FORMAT_Controls}', "");
-    Error('\p{Blk=/a/  Shorthand_Format_Controls}');
-    Error('\P{Blk=/a/  Shorthand_Format_Controls}');
+    Expect(1, 113839, '\p{Block=--Shorthand_Format_controls}', "");
+    Expect(0, 113839, '\p{^Block=--Shorthand_Format_controls}', "");
+    Expect(0, 113839, '\P{Block=--Shorthand_Format_controls}', "");
+    Expect(1, 113839, '\P{^Block=--Shorthand_Format_controls}', "");
+    Expect(0, 113840, '\p{Block=--Shorthand_Format_controls}', "");
+    Expect(1, 113840, '\p{^Block=--Shorthand_Format_controls}', "");
+    Expect(1, 113840, '\P{Block=--Shorthand_Format_controls}', "");
+    Expect(0, 113840, '\P{^Block=--Shorthand_Format_controls}', "");
+    Error('\p{Blk= 	shorthand_FORMAT_Controls/a/}');
+    Error('\P{Blk= 	shorthand_FORMAT_Controls/a/}');
     Expect(1, 113839, '\p{Blk=:\AShorthand_Format_Controls\z:}', "");;
     Expect(0, 113840, '\p{Blk=:\AShorthand_Format_Controls\z:}', "");;
     Expect(1, 113839, '\p{Blk=shorthandformatcontrols}', "");
@@ -24042,16 +24610,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 113840, '\P{^Blk=shorthandformatcontrols}', "");
     Expect(1, 113839, '\p{Blk=:\Ashorthandformatcontrols\z:}', "");;
     Expect(0, 113840, '\p{Blk=:\Ashorthandformatcontrols\z:}', "");;
-    Expect(1, 113839, '\p{Blk=--Shorthand_format_Controls}', "");
-    Expect(0, 113839, '\p{^Blk=--Shorthand_format_Controls}', "");
-    Expect(0, 113839, '\P{Blk=--Shorthand_format_Controls}', "");
-    Expect(1, 113839, '\P{^Blk=--Shorthand_format_Controls}', "");
-    Expect(0, 113840, '\p{Blk=--Shorthand_format_Controls}', "");
-    Expect(1, 113840, '\p{^Blk=--Shorthand_format_Controls}', "");
-    Expect(1, 113840, '\P{Blk=--Shorthand_format_Controls}', "");
-    Expect(0, 113840, '\P{^Blk=--Shorthand_format_Controls}', "");
-    Error('\p{Is_Block=-/a/shorthand_format_Controls}');
-    Error('\P{Is_Block=-/a/shorthand_format_Controls}');
+    Expect(1, 113839, '\p{Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(0, 113839, '\p{^Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(0, 113839, '\P{Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(1, 113839, '\P{^Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(0, 113840, '\p{Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(1, 113840, '\p{^Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(1, 113840, '\P{Blk=-	Shorthand_format_CONTROLS}', "");
+    Expect(0, 113840, '\P{^Blk=-	Shorthand_format_CONTROLS}', "");
+    Error('\p{Is_Block:	/a/_SHORTHAND_Format_Controls}');
+    Error('\P{Is_Block:	/a/_SHORTHAND_Format_Controls}');
     Expect(1, 113839, '\p{Is_Block=shorthandformatcontrols}', "");
     Expect(0, 113839, '\p{^Is_Block=shorthandformatcontrols}', "");
     Expect(0, 113839, '\P{Is_Block=shorthandformatcontrols}', "");
@@ -24060,16 +24628,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 113840, '\p{^Is_Block=shorthandformatcontrols}', "");
     Expect(1, 113840, '\P{Is_Block=shorthandformatcontrols}', "");
     Expect(0, 113840, '\P{^Is_Block=shorthandformatcontrols}', "");
-    Expect(1, 113839, '\p{Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(0, 113839, '\p{^Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(0, 113839, '\P{Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(1, 113839, '\P{^Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(0, 113840, '\p{Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(1, 113840, '\p{^Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(1, 113840, '\P{Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Expect(0, 113840, '\P{^Is_Block=	-Shorthand_Format_CONTROLS}', "");
-    Error('\p{Is_Blk=:= SHORTHAND_FORMAT_Controls}');
-    Error('\P{Is_Blk=:= SHORTHAND_FORMAT_Controls}');
+    Expect(1, 113839, '\p{Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(0, 113839, '\p{^Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(0, 113839, '\P{Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(1, 113839, '\P{^Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(0, 113840, '\p{Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(1, 113840, '\p{^Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(1, 113840, '\P{Is_Block=	 SHORTHAND_format_Controls}', "");
+    Expect(0, 113840, '\P{^Is_Block=	 SHORTHAND_format_Controls}', "");
+    Error('\p{Is_Blk:   	/a/Shorthand_Format_CONTROLS}');
+    Error('\P{Is_Blk:   	/a/Shorthand_Format_CONTROLS}');
     Expect(1, 113839, '\p{Is_Blk=shorthandformatcontrols}', "");
     Expect(0, 113839, '\p{^Is_Blk=shorthandformatcontrols}', "");
     Expect(0, 113839, '\P{Is_Blk=shorthandformatcontrols}', "");
@@ -24078,16 +24646,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 113840, '\p{^Is_Blk=shorthandformatcontrols}', "");
     Expect(1, 113840, '\P{Is_Blk=shorthandformatcontrols}', "");
     Expect(0, 113840, '\P{^Is_Blk=shorthandformatcontrols}', "");
-    Expect(1, 113839, '\p{Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113839, '\p{^Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113839, '\P{Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(1, 113839, '\P{^Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113840, '\p{Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(1, 113840, '\p{^Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(1, 113840, '\P{Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Expect(0, 113840, '\P{^Is_Blk= -Shorthand_FORMAT_Controls}', "");
-    Error('\p{Block=/a/-siddham}');
-    Error('\P{Block=/a/-siddham}');
+    Expect(1, 113839, '\p{Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(0, 113839, '\p{^Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(0, 113839, '\P{Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(1, 113839, '\P{^Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(0, 113840, '\p{Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(1, 113840, '\p{^Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(1, 113840, '\P{Is_Blk=--Shorthand_Format_Controls}', "");
+    Expect(0, 113840, '\P{^Is_Blk=--Shorthand_Format_Controls}', "");
+    Error('\p{Block= /a/Siddham}');
+    Error('\P{Block= /a/Siddham}');
     Expect(1, 71167, '\p{Block=:\ASiddham\z:}', "");;
     Expect(0, 71168, '\p{Block=:\ASiddham\z:}', "");;
     Expect(1, 71167, '\p{Block=siddham}', "");
@@ -24100,16 +24668,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71168, '\P{^Block=siddham}', "");
     Expect(1, 71167, '\p{Block=:\Asiddham\z:}', "");;
     Expect(0, 71168, '\p{Block=:\Asiddham\z:}', "");;
-    Expect(1, 71167, '\p{Block=	Siddham}', "");
-    Expect(0, 71167, '\p{^Block=	Siddham}', "");
-    Expect(0, 71167, '\P{Block=	Siddham}', "");
-    Expect(1, 71167, '\P{^Block=	Siddham}', "");
-    Expect(0, 71168, '\p{Block=	Siddham}', "");
-    Expect(1, 71168, '\p{^Block=	Siddham}', "");
-    Expect(1, 71168, '\P{Block=	Siddham}', "");
-    Expect(0, 71168, '\P{^Block=	Siddham}', "");
-    Error('\p{Blk=	_Siddham:=}');
-    Error('\P{Blk=	_Siddham:=}');
+    Expect(1, 71167, '\p{Block:   Siddham}', "");
+    Expect(0, 71167, '\p{^Block:   Siddham}', "");
+    Expect(0, 71167, '\P{Block:   Siddham}', "");
+    Expect(1, 71167, '\P{^Block:   Siddham}', "");
+    Expect(0, 71168, '\p{Block:   Siddham}', "");
+    Expect(1, 71168, '\p{^Block:   Siddham}', "");
+    Expect(1, 71168, '\P{Block:   Siddham}', "");
+    Expect(0, 71168, '\P{^Block:   Siddham}', "");
+    Error('\p{Blk=_	Siddham:=}');
+    Error('\P{Blk=_	Siddham:=}');
     Expect(1, 71167, '\p{Blk=:\ASiddham\z:}', "");;
     Expect(0, 71168, '\p{Blk=:\ASiddham\z:}', "");;
     Expect(1, 71167, '\p{Blk=siddham}', "");
@@ -24122,16 +24690,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71168, '\P{^Blk=siddham}', "");
     Expect(1, 71167, '\p{Blk=:\Asiddham\z:}', "");;
     Expect(0, 71168, '\p{Blk=:\Asiddham\z:}', "");;
-    Expect(1, 71167, '\p{Blk= 	Siddham}', "");
-    Expect(0, 71167, '\p{^Blk= 	Siddham}', "");
-    Expect(0, 71167, '\P{Blk= 	Siddham}', "");
-    Expect(1, 71167, '\P{^Blk= 	Siddham}', "");
-    Expect(0, 71168, '\p{Blk= 	Siddham}', "");
-    Expect(1, 71168, '\p{^Blk= 	Siddham}', "");
-    Expect(1, 71168, '\P{Blk= 	Siddham}', "");
-    Expect(0, 71168, '\P{^Blk= 	Siddham}', "");
-    Error('\p{Is_Block=:=_Siddham}');
-    Error('\P{Is_Block=:=_Siddham}');
+    Expect(1, 71167, '\p{Blk=	_siddham}', "");
+    Expect(0, 71167, '\p{^Blk=	_siddham}', "");
+    Expect(0, 71167, '\P{Blk=	_siddham}', "");
+    Expect(1, 71167, '\P{^Blk=	_siddham}', "");
+    Expect(0, 71168, '\p{Blk=	_siddham}', "");
+    Expect(1, 71168, '\p{^Blk=	_siddham}', "");
+    Expect(1, 71168, '\P{Blk=	_siddham}', "");
+    Expect(0, 71168, '\P{^Blk=	_siddham}', "");
+    Error('\p{Is_Block=/a/ SIDDHAM}');
+    Error('\P{Is_Block=/a/ SIDDHAM}');
     Expect(1, 71167, '\p{Is_Block=siddham}', "");
     Expect(0, 71167, '\p{^Is_Block=siddham}', "");
     Expect(0, 71167, '\P{Is_Block=siddham}', "");
@@ -24140,16 +24708,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71168, '\p{^Is_Block=siddham}', "");
     Expect(1, 71168, '\P{Is_Block=siddham}', "");
     Expect(0, 71168, '\P{^Is_Block=siddham}', "");
-    Expect(1, 71167, '\p{Is_Block=-siddham}', "");
-    Expect(0, 71167, '\p{^Is_Block=-siddham}', "");
-    Expect(0, 71167, '\P{Is_Block=-siddham}', "");
-    Expect(1, 71167, '\P{^Is_Block=-siddham}', "");
-    Expect(0, 71168, '\p{Is_Block=-siddham}', "");
-    Expect(1, 71168, '\p{^Is_Block=-siddham}', "");
-    Expect(1, 71168, '\P{Is_Block=-siddham}', "");
-    Expect(0, 71168, '\P{^Is_Block=-siddham}', "");
-    Error('\p{Is_Blk=_SIDDHAM/a/}');
-    Error('\P{Is_Blk=_SIDDHAM/a/}');
+    Expect(1, 71167, '\p{Is_Block=  Siddham}', "");
+    Expect(0, 71167, '\p{^Is_Block=  Siddham}', "");
+    Expect(0, 71167, '\P{Is_Block=  Siddham}', "");
+    Expect(1, 71167, '\P{^Is_Block=  Siddham}', "");
+    Expect(0, 71168, '\p{Is_Block=  Siddham}', "");
+    Expect(1, 71168, '\p{^Is_Block=  Siddham}', "");
+    Expect(1, 71168, '\P{Is_Block=  Siddham}', "");
+    Expect(0, 71168, '\P{^Is_Block=  Siddham}', "");
+    Error('\p{Is_Blk=--Siddham/a/}');
+    Error('\P{Is_Blk=--Siddham/a/}');
     Expect(1, 71167, '\p{Is_Blk=siddham}', "");
     Expect(0, 71167, '\p{^Is_Blk=siddham}', "");
     Expect(0, 71167, '\P{Is_Blk=siddham}', "");
@@ -24158,16 +24726,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71168, '\p{^Is_Blk=siddham}', "");
     Expect(1, 71168, '\P{Is_Blk=siddham}', "");
     Expect(0, 71168, '\P{^Is_Blk=siddham}', "");
-    Expect(1, 71167, '\p{Is_Blk=	_Siddham}', "");
-    Expect(0, 71167, '\p{^Is_Blk=	_Siddham}', "");
-    Expect(0, 71167, '\P{Is_Blk=	_Siddham}', "");
-    Expect(1, 71167, '\P{^Is_Blk=	_Siddham}', "");
-    Expect(0, 71168, '\p{Is_Blk=	_Siddham}', "");
-    Expect(1, 71168, '\p{^Is_Blk=	_Siddham}', "");
-    Expect(1, 71168, '\P{Is_Blk=	_Siddham}', "");
-    Expect(0, 71168, '\P{^Is_Blk=	_Siddham}', "");
-    Error('\p{Block=:=	sinhala}');
-    Error('\P{Block=:=	sinhala}');
+    Expect(1, 71167, '\p{Is_Blk=-Siddham}', "");
+    Expect(0, 71167, '\p{^Is_Blk=-Siddham}', "");
+    Expect(0, 71167, '\P{Is_Blk=-Siddham}', "");
+    Expect(1, 71167, '\P{^Is_Blk=-Siddham}', "");
+    Expect(0, 71168, '\p{Is_Blk=-Siddham}', "");
+    Expect(1, 71168, '\p{^Is_Blk=-Siddham}', "");
+    Expect(1, 71168, '\P{Is_Blk=-Siddham}', "");
+    Expect(0, 71168, '\P{^Is_Blk=-Siddham}', "");
+    Error('\p{Block= :=Sinhala}');
+    Error('\P{Block= :=Sinhala}');
     Expect(1, 3583, '\p{Block=:\ASinhala\z:}', "");;
     Expect(0, 3584, '\p{Block=:\ASinhala\z:}', "");;
     Expect(1, 3583, '\p{Block=sinhala}', "");
@@ -24180,16 +24748,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3584, '\P{^Block=sinhala}', "");
     Expect(1, 3583, '\p{Block=:\Asinhala\z:}', "");;
     Expect(0, 3584, '\p{Block=:\Asinhala\z:}', "");;
-    Expect(1, 3583, '\p{Block= 	sinhala}', "");
-    Expect(0, 3583, '\p{^Block= 	sinhala}', "");
-    Expect(0, 3583, '\P{Block= 	sinhala}', "");
-    Expect(1, 3583, '\P{^Block= 	sinhala}', "");
-    Expect(0, 3584, '\p{Block= 	sinhala}', "");
-    Expect(1, 3584, '\p{^Block= 	sinhala}', "");
-    Expect(1, 3584, '\P{Block= 	sinhala}', "");
-    Expect(0, 3584, '\P{^Block= 	sinhala}', "");
-    Error('\p{Blk=:=_Sinhala}');
-    Error('\P{Blk=:=_Sinhala}');
+    Expect(1, 3583, '\p{Block= 	Sinhala}', "");
+    Expect(0, 3583, '\p{^Block= 	Sinhala}', "");
+    Expect(0, 3583, '\P{Block= 	Sinhala}', "");
+    Expect(1, 3583, '\P{^Block= 	Sinhala}', "");
+    Expect(0, 3584, '\p{Block= 	Sinhala}', "");
+    Expect(1, 3584, '\p{^Block= 	Sinhala}', "");
+    Expect(1, 3584, '\P{Block= 	Sinhala}', "");
+    Expect(0, 3584, '\P{^Block= 	Sinhala}', "");
+    Error('\p{Blk=	 sinhala:=}');
+    Error('\P{Blk=	 sinhala:=}');
     Expect(1, 3583, '\p{Blk=:\ASinhala\z:}', "");;
     Expect(0, 3584, '\p{Blk=:\ASinhala\z:}', "");;
     Expect(1, 3583, '\p{Blk=sinhala}', "");
@@ -24202,16 +24770,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3584, '\P{^Blk=sinhala}', "");
     Expect(1, 3583, '\p{Blk=:\Asinhala\z:}', "");;
     Expect(0, 3584, '\p{Blk=:\Asinhala\z:}', "");;
-    Expect(1, 3583, '\p{Blk=- sinhala}', "");
-    Expect(0, 3583, '\p{^Blk=- sinhala}', "");
-    Expect(0, 3583, '\P{Blk=- sinhala}', "");
-    Expect(1, 3583, '\P{^Blk=- sinhala}', "");
-    Expect(0, 3584, '\p{Blk=- sinhala}', "");
-    Expect(1, 3584, '\p{^Blk=- sinhala}', "");
-    Expect(1, 3584, '\P{Blk=- sinhala}', "");
-    Expect(0, 3584, '\P{^Blk=- sinhala}', "");
-    Error('\p{Is_Block:_:=SINHALA}');
-    Error('\P{Is_Block:_:=SINHALA}');
+    Expect(1, 3583, '\p{Blk=-_Sinhala}', "");
+    Expect(0, 3583, '\p{^Blk=-_Sinhala}', "");
+    Expect(0, 3583, '\P{Blk=-_Sinhala}', "");
+    Expect(1, 3583, '\P{^Blk=-_Sinhala}', "");
+    Expect(0, 3584, '\p{Blk=-_Sinhala}', "");
+    Expect(1, 3584, '\p{^Blk=-_Sinhala}', "");
+    Expect(1, 3584, '\P{Blk=-_Sinhala}', "");
+    Expect(0, 3584, '\P{^Blk=-_Sinhala}', "");
+    Error('\p{Is_Block=:=- SINHALA}');
+    Error('\P{Is_Block=:=- SINHALA}');
     Expect(1, 3583, '\p{Is_Block=sinhala}', "");
     Expect(0, 3583, '\p{^Is_Block=sinhala}', "");
     Expect(0, 3583, '\P{Is_Block=sinhala}', "");
@@ -24220,16 +24788,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3584, '\p{^Is_Block=sinhala}', "");
     Expect(1, 3584, '\P{Is_Block=sinhala}', "");
     Expect(0, 3584, '\P{^Is_Block=sinhala}', "");
-    Expect(1, 3583, '\p{Is_Block=	SINHALA}', "");
-    Expect(0, 3583, '\p{^Is_Block=	SINHALA}', "");
-    Expect(0, 3583, '\P{Is_Block=	SINHALA}', "");
-    Expect(1, 3583, '\P{^Is_Block=	SINHALA}', "");
-    Expect(0, 3584, '\p{Is_Block=	SINHALA}', "");
-    Expect(1, 3584, '\p{^Is_Block=	SINHALA}', "");
-    Expect(1, 3584, '\P{Is_Block=	SINHALA}', "");
-    Expect(0, 3584, '\P{^Is_Block=	SINHALA}', "");
-    Error('\p{Is_Blk=	/a/SINHALA}');
-    Error('\P{Is_Blk=	/a/SINHALA}');
+    Expect(1, 3583, '\p{Is_Block=_SINHALA}', "");
+    Expect(0, 3583, '\p{^Is_Block=_SINHALA}', "");
+    Expect(0, 3583, '\P{Is_Block=_SINHALA}', "");
+    Expect(1, 3583, '\P{^Is_Block=_SINHALA}', "");
+    Expect(0, 3584, '\p{Is_Block=_SINHALA}', "");
+    Expect(1, 3584, '\p{^Is_Block=_SINHALA}', "");
+    Expect(1, 3584, '\P{Is_Block=_SINHALA}', "");
+    Expect(0, 3584, '\P{^Is_Block=_SINHALA}', "");
+    Error('\p{Is_Blk=/a/ SINHALA}');
+    Error('\P{Is_Blk=/a/ SINHALA}');
     Expect(1, 3583, '\p{Is_Blk=sinhala}', "");
     Expect(0, 3583, '\p{^Is_Blk=sinhala}', "");
     Expect(0, 3583, '\P{Is_Blk=sinhala}', "");
@@ -24238,16 +24806,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3584, '\p{^Is_Blk=sinhala}', "");
     Expect(1, 3584, '\P{Is_Blk=sinhala}', "");
     Expect(0, 3584, '\P{^Is_Blk=sinhala}', "");
-    Expect(1, 3583, '\p{Is_Blk=	SINHALA}', "");
-    Expect(0, 3583, '\p{^Is_Blk=	SINHALA}', "");
-    Expect(0, 3583, '\P{Is_Blk=	SINHALA}', "");
-    Expect(1, 3583, '\P{^Is_Blk=	SINHALA}', "");
-    Expect(0, 3584, '\p{Is_Blk=	SINHALA}', "");
-    Expect(1, 3584, '\p{^Is_Blk=	SINHALA}', "");
-    Expect(1, 3584, '\P{Is_Blk=	SINHALA}', "");
-    Expect(0, 3584, '\P{^Is_Blk=	SINHALA}', "");
-    Error('\p{Block=-:=Sinhala_archaic_Numbers}');
-    Error('\P{Block=-:=Sinhala_archaic_Numbers}');
+    Expect(1, 3583, '\p{Is_Blk= _Sinhala}', "");
+    Expect(0, 3583, '\p{^Is_Blk= _Sinhala}', "");
+    Expect(0, 3583, '\P{Is_Blk= _Sinhala}', "");
+    Expect(1, 3583, '\P{^Is_Blk= _Sinhala}', "");
+    Expect(0, 3584, '\p{Is_Blk= _Sinhala}', "");
+    Expect(1, 3584, '\p{^Is_Blk= _Sinhala}', "");
+    Expect(1, 3584, '\P{Is_Blk= _Sinhala}', "");
+    Expect(0, 3584, '\P{^Is_Blk= _Sinhala}', "");
+    Error('\p{Block=:=Sinhala_archaic_NUMBERS}');
+    Error('\P{Block=:=Sinhala_archaic_NUMBERS}');
     Expect(1, 70143, '\p{Block=:\ASinhala_Archaic_Numbers\z:}', "");;
     Expect(0, 70144, '\p{Block=:\ASinhala_Archaic_Numbers\z:}', "");;
     Expect(1, 70143, '\p{Block=sinhalaarchaicnumbers}', "");
@@ -24260,16 +24828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70144, '\P{^Block=sinhalaarchaicnumbers}', "");
     Expect(1, 70143, '\p{Block=:\Asinhalaarchaicnumbers\z:}', "");;
     Expect(0, 70144, '\p{Block=:\Asinhalaarchaicnumbers\z:}', "");;
-    Expect(1, 70143, '\p{Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(0, 70143, '\p{^Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(0, 70143, '\P{Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(1, 70143, '\P{^Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(0, 70144, '\p{Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(1, 70144, '\p{^Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(1, 70144, '\P{Block= _sinhala_archaic_NUMBERS}', "");
-    Expect(0, 70144, '\P{^Block= _sinhala_archaic_NUMBERS}', "");
-    Error('\p{Blk:/a/-SINHALA_Archaic_Numbers}');
-    Error('\P{Blk:/a/-SINHALA_Archaic_Numbers}');
+    Expect(1, 70143, '\p{Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(0, 70143, '\p{^Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(0, 70143, '\P{Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(1, 70143, '\P{^Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(0, 70144, '\p{Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(1, 70144, '\p{^Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(1, 70144, '\P{Block=_ Sinhala_archaic_NUMBERS}', "");
+    Expect(0, 70144, '\P{^Block=_ Sinhala_archaic_NUMBERS}', "");
+    Error('\p{Blk=-	sinhala_archaic_Numbers/a/}');
+    Error('\P{Blk=-	sinhala_archaic_Numbers/a/}');
     Expect(1, 70143, '\p{Blk=:\ASinhala_Archaic_Numbers\z:}', "");;
     Expect(0, 70144, '\p{Blk=:\ASinhala_Archaic_Numbers\z:}', "");;
     Expect(1, 70143, '\p{Blk=sinhalaarchaicnumbers}', "");
@@ -24282,16 +24850,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70144, '\P{^Blk=sinhalaarchaicnumbers}', "");
     Expect(1, 70143, '\p{Blk=:\Asinhalaarchaicnumbers\z:}', "");;
     Expect(0, 70144, '\p{Blk=:\Asinhalaarchaicnumbers\z:}', "");;
-    Expect(1, 70143, '\p{Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(0, 70143, '\p{^Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(0, 70143, '\P{Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(1, 70143, '\P{^Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(0, 70144, '\p{Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(1, 70144, '\p{^Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(1, 70144, '\P{Blk= 	SINHALA_Archaic_Numbers}', "");
-    Expect(0, 70144, '\P{^Blk= 	SINHALA_Archaic_Numbers}', "");
-    Error('\p{Is_Block=/a/ 	sinhala_ARCHAIC_numbers}');
-    Error('\P{Is_Block=/a/ 	sinhala_ARCHAIC_numbers}');
+    Expect(1, 70143, '\p{Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(0, 70143, '\p{^Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(0, 70143, '\P{Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(1, 70143, '\P{^Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(0, 70144, '\p{Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(1, 70144, '\p{^Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(1, 70144, '\P{Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Expect(0, 70144, '\P{^Blk= 	Sinhala_ARCHAIC_numbers}', "");
+    Error('\p{Is_Block:    :=Sinhala_Archaic_NUMBERS}');
+    Error('\P{Is_Block:    :=Sinhala_Archaic_NUMBERS}');
     Expect(1, 70143, '\p{Is_Block=sinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\p{^Is_Block=sinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\P{Is_Block=sinhalaarchaicnumbers}', "");
@@ -24300,16 +24868,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70144, '\p{^Is_Block=sinhalaarchaicnumbers}', "");
     Expect(1, 70144, '\P{Is_Block=sinhalaarchaicnumbers}', "");
     Expect(0, 70144, '\P{^Is_Block=sinhalaarchaicnumbers}', "");
-    Expect(1, 70143, '\p{Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(0, 70143, '\p{^Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(0, 70143, '\P{Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(1, 70143, '\P{^Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(0, 70144, '\p{Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(1, 70144, '\p{^Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(1, 70144, '\P{Is_Block= SINHALA_archaic_numbers}', "");
-    Expect(0, 70144, '\P{^Is_Block= SINHALA_archaic_numbers}', "");
-    Error('\p{Is_Blk=:=	Sinhala_Archaic_numbers}');
-    Error('\P{Is_Blk=:=	Sinhala_Archaic_numbers}');
+    Expect(1, 70143, '\p{Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(0, 70143, '\p{^Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(0, 70143, '\P{Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(1, 70143, '\P{^Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(0, 70144, '\p{Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(1, 70144, '\p{^Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(1, 70144, '\P{Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Expect(0, 70144, '\P{^Is_Block=--Sinhala_Archaic_Numbers}', "");
+    Error('\p{Is_Blk=/a/--SINHALA_ARCHAIC_Numbers}');
+    Error('\P{Is_Blk=/a/--SINHALA_ARCHAIC_Numbers}');
     Expect(1, 70143, '\p{Is_Blk=sinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\p{^Is_Blk=sinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\P{Is_Blk=sinhalaarchaicnumbers}', "");
@@ -24318,16 +24886,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70144, '\p{^Is_Blk=sinhalaarchaicnumbers}', "");
     Expect(1, 70144, '\P{Is_Blk=sinhalaarchaicnumbers}', "");
     Expect(0, 70144, '\P{^Is_Blk=sinhalaarchaicnumbers}', "");
-    Expect(1, 70143, '\p{Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(0, 70143, '\p{^Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(0, 70143, '\P{Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(1, 70143, '\P{^Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(0, 70144, '\p{Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(1, 70144, '\p{^Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(1, 70144, '\P{Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Expect(0, 70144, '\P{^Is_Blk=-	Sinhala_archaic_Numbers}', "");
-    Error('\p{Block=	:=Small_Form_VARIANTS}');
-    Error('\P{Block=	:=Small_Form_VARIANTS}');
+    Expect(1, 70143, '\p{Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70143, '\p{^Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70143, '\P{Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70143, '\P{^Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70144, '\p{Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70144, '\p{^Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70144, '\P{Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70144, '\P{^Is_Blk=-_sinhala_ARCHAIC_Numbers}', "");
+    Error('\p{Block= _Small_Form_variants/a/}');
+    Error('\P{Block= _Small_Form_variants/a/}');
     Expect(1, 65135, '\p{Block=:\ASmall_Form_Variants\z:}', "");;
     Expect(0, 65136, '\p{Block=:\ASmall_Form_Variants\z:}', "");;
     Expect(1, 65135, '\p{Block=smallformvariants}', "");
@@ -24340,38 +24908,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65136, '\P{^Block=smallformvariants}', "");
     Expect(1, 65135, '\p{Block=:\Asmallformvariants\z:}', "");;
     Expect(0, 65136, '\p{Block=:\Asmallformvariants\z:}', "");;
-    Expect(1, 65135, '\p{Block=-Small_form_VARIANTS}', "");
-    Expect(0, 65135, '\p{^Block=-Small_form_VARIANTS}', "");
-    Expect(0, 65135, '\P{Block=-Small_form_VARIANTS}', "");
-    Expect(1, 65135, '\P{^Block=-Small_form_VARIANTS}', "");
-    Expect(0, 65136, '\p{Block=-Small_form_VARIANTS}', "");
-    Expect(1, 65136, '\p{^Block=-Small_form_VARIANTS}', "");
-    Expect(1, 65136, '\P{Block=-Small_form_VARIANTS}', "");
-    Expect(0, 65136, '\P{^Block=-Small_form_VARIANTS}', "");
-    Error('\p{Blk=	/a/SMALL_FORMS}');
-    Error('\P{Blk=	/a/SMALL_FORMS}');
+    Expect(1, 65135, '\p{Block=_-Small_Form_Variants}', "");
+    Expect(0, 65135, '\p{^Block=_-Small_Form_Variants}', "");
+    Expect(0, 65135, '\P{Block=_-Small_Form_Variants}', "");
+    Expect(1, 65135, '\P{^Block=_-Small_Form_Variants}', "");
+    Expect(0, 65136, '\p{Block=_-Small_Form_Variants}', "");
+    Expect(1, 65136, '\p{^Block=_-Small_Form_Variants}', "");
+    Expect(1, 65136, '\P{Block=_-Small_Form_Variants}', "");
+    Expect(0, 65136, '\P{^Block=_-Small_Form_Variants}', "");
+    Error('\p{Blk=/a/Small_Forms}');
+    Error('\P{Blk=/a/Small_Forms}');
     Expect(1, 65135, '\p{Blk=:\ASmall_Forms\z:}', "");;
     Expect(0, 65136, '\p{Blk=:\ASmall_Forms\z:}', "");;
-    Expect(1, 65135, '\p{Blk=smallforms}', "");
-    Expect(0, 65135, '\p{^Blk=smallforms}', "");
-    Expect(0, 65135, '\P{Blk=smallforms}', "");
-    Expect(1, 65135, '\P{^Blk=smallforms}', "");
-    Expect(0, 65136, '\p{Blk=smallforms}', "");
-    Expect(1, 65136, '\p{^Blk=smallforms}', "");
-    Expect(1, 65136, '\P{Blk=smallforms}', "");
-    Expect(0, 65136, '\P{^Blk=smallforms}', "");
+    Expect(1, 65135, '\p{Blk:smallforms}', "");
+    Expect(0, 65135, '\p{^Blk:smallforms}', "");
+    Expect(0, 65135, '\P{Blk:smallforms}', "");
+    Expect(1, 65135, '\P{^Blk:smallforms}', "");
+    Expect(0, 65136, '\p{Blk:smallforms}', "");
+    Expect(1, 65136, '\p{^Blk:smallforms}', "");
+    Expect(1, 65136, '\P{Blk:smallforms}', "");
+    Expect(0, 65136, '\P{^Blk:smallforms}', "");
     Expect(1, 65135, '\p{Blk=:\Asmallforms\z:}', "");;
     Expect(0, 65136, '\p{Blk=:\Asmallforms\z:}', "");;
-    Expect(1, 65135, '\p{Blk=	Small_forms}', "");
-    Expect(0, 65135, '\p{^Blk=	Small_forms}', "");
-    Expect(0, 65135, '\P{Blk=	Small_forms}', "");
-    Expect(1, 65135, '\P{^Blk=	Small_forms}', "");
-    Expect(0, 65136, '\p{Blk=	Small_forms}', "");
-    Expect(1, 65136, '\p{^Blk=	Small_forms}', "");
-    Expect(1, 65136, '\P{Blk=	Small_forms}', "");
-    Expect(0, 65136, '\P{^Blk=	Small_forms}', "");
-    Error('\p{Is_Block=/a/SMALL_form_VARIANTS}');
-    Error('\P{Is_Block=/a/SMALL_form_VARIANTS}');
+    Expect(1, 65135, '\p{Blk=-_SMALL_FORMS}', "");
+    Expect(0, 65135, '\p{^Blk=-_SMALL_FORMS}', "");
+    Expect(0, 65135, '\P{Blk=-_SMALL_FORMS}', "");
+    Expect(1, 65135, '\P{^Blk=-_SMALL_FORMS}', "");
+    Expect(0, 65136, '\p{Blk=-_SMALL_FORMS}', "");
+    Expect(1, 65136, '\p{^Blk=-_SMALL_FORMS}', "");
+    Expect(1, 65136, '\P{Blk=-_SMALL_FORMS}', "");
+    Expect(0, 65136, '\P{^Blk=-_SMALL_FORMS}', "");
+    Error('\p{Is_Block::=	 small_FORM_Variants}');
+    Error('\P{Is_Block::=	 small_FORM_Variants}');
     Expect(1, 65135, '\p{Is_Block=smallformvariants}', "");
     Expect(0, 65135, '\p{^Is_Block=smallformvariants}', "");
     Expect(0, 65135, '\P{Is_Block=smallformvariants}', "");
@@ -24380,34 +24948,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65136, '\p{^Is_Block=smallformvariants}', "");
     Expect(1, 65136, '\P{Is_Block=smallformvariants}', "");
     Expect(0, 65136, '\P{^Is_Block=smallformvariants}', "");
-    Expect(1, 65135, '\p{Is_Block=	SMALL_Form_Variants}', "");
-    Expect(0, 65135, '\p{^Is_Block=	SMALL_Form_Variants}', "");
-    Expect(0, 65135, '\P{Is_Block=	SMALL_Form_Variants}', "");
-    Expect(1, 65135, '\P{^Is_Block=	SMALL_Form_Variants}', "");
-    Expect(0, 65136, '\p{Is_Block=	SMALL_Form_Variants}', "");
-    Expect(1, 65136, '\p{^Is_Block=	SMALL_Form_Variants}', "");
-    Expect(1, 65136, '\P{Is_Block=	SMALL_Form_Variants}', "");
-    Expect(0, 65136, '\P{^Is_Block=	SMALL_Form_Variants}', "");
-    Error('\p{Is_Blk=:= -Small_FORMS}');
-    Error('\P{Is_Blk=:= -Small_FORMS}');
-    Expect(1, 65135, '\p{Is_Blk=smallforms}', "");
-    Expect(0, 65135, '\p{^Is_Blk=smallforms}', "");
-    Expect(0, 65135, '\P{Is_Blk=smallforms}', "");
-    Expect(1, 65135, '\P{^Is_Blk=smallforms}', "");
-    Expect(0, 65136, '\p{Is_Blk=smallforms}', "");
-    Expect(1, 65136, '\p{^Is_Blk=smallforms}', "");
-    Expect(1, 65136, '\P{Is_Blk=smallforms}', "");
-    Expect(0, 65136, '\P{^Is_Blk=smallforms}', "");
-    Expect(1, 65135, '\p{Is_Blk=  small_Forms}', "");
-    Expect(0, 65135, '\p{^Is_Blk=  small_Forms}', "");
-    Expect(0, 65135, '\P{Is_Blk=  small_Forms}', "");
-    Expect(1, 65135, '\P{^Is_Blk=  small_Forms}', "");
-    Expect(0, 65136, '\p{Is_Blk=  small_Forms}', "");
-    Expect(1, 65136, '\p{^Is_Blk=  small_Forms}', "");
-    Expect(1, 65136, '\P{Is_Blk=  small_Forms}', "");
-    Expect(0, 65136, '\P{^Is_Blk=  small_Forms}', "");
-    Error('\p{Block=:=small_kana_Extension}');
-    Error('\P{Block=:=small_kana_Extension}');
+    Expect(1, 65135, '\p{Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(0, 65135, '\p{^Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(0, 65135, '\P{Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(1, 65135, '\P{^Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(0, 65136, '\p{Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(1, 65136, '\p{^Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(1, 65136, '\P{Is_Block=_Small_Form_VARIANTS}', "");
+    Expect(0, 65136, '\P{^Is_Block=_Small_Form_VARIANTS}', "");
+    Error('\p{Is_Blk=-/a/SMALL_Forms}');
+    Error('\P{Is_Blk=-/a/SMALL_Forms}');
+    Expect(1, 65135, '\p{Is_Blk:   smallforms}', "");
+    Expect(0, 65135, '\p{^Is_Blk:   smallforms}', "");
+    Expect(0, 65135, '\P{Is_Blk:   smallforms}', "");
+    Expect(1, 65135, '\P{^Is_Blk:   smallforms}', "");
+    Expect(0, 65136, '\p{Is_Blk:   smallforms}', "");
+    Expect(1, 65136, '\p{^Is_Blk:   smallforms}', "");
+    Expect(1, 65136, '\P{Is_Blk:   smallforms}', "");
+    Expect(0, 65136, '\P{^Is_Blk:   smallforms}', "");
+    Expect(1, 65135, '\p{Is_Blk= small_FORMS}', "");
+    Expect(0, 65135, '\p{^Is_Blk= small_FORMS}', "");
+    Expect(0, 65135, '\P{Is_Blk= small_FORMS}', "");
+    Expect(1, 65135, '\P{^Is_Blk= small_FORMS}', "");
+    Expect(0, 65136, '\p{Is_Blk= small_FORMS}', "");
+    Expect(1, 65136, '\p{^Is_Blk= small_FORMS}', "");
+    Expect(1, 65136, '\P{Is_Blk= small_FORMS}', "");
+    Expect(0, 65136, '\P{^Is_Blk= small_FORMS}', "");
+    Error('\p{Block=:=-_Small_KANA_EXTENSION}');
+    Error('\P{Block=:=-_Small_KANA_EXTENSION}');
     Expect(1, 110959, '\p{Block=:\ASmall_Kana_Extension\z:}', "");;
     Expect(0, 110960, '\p{Block=:\ASmall_Kana_Extension\z:}', "");;
     Expect(1, 110959, '\p{Block=smallkanaextension}', "");
@@ -24420,38 +24988,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 110960, '\P{^Block=smallkanaextension}', "");
     Expect(1, 110959, '\p{Block=:\Asmallkanaextension\z:}', "");;
     Expect(0, 110960, '\p{Block=:\Asmallkanaextension\z:}', "");;
-    Expect(1, 110959, '\p{Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(0, 110959, '\p{^Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(0, 110959, '\P{Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(1, 110959, '\P{^Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(0, 110960, '\p{Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(1, 110960, '\p{^Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(1, 110960, '\P{Block:  _SMALL_kana_EXTENSION}', "");
-    Expect(0, 110960, '\P{^Block:  _SMALL_kana_EXTENSION}', "");
-    Error('\p{Blk= :=SMALL_Kana_Ext}');
-    Error('\P{Blk= :=SMALL_Kana_Ext}');
+    Expect(1, 110959, '\p{Block=  Small_kana_Extension}', "");
+    Expect(0, 110959, '\p{^Block=  Small_kana_Extension}', "");
+    Expect(0, 110959, '\P{Block=  Small_kana_Extension}', "");
+    Expect(1, 110959, '\P{^Block=  Small_kana_Extension}', "");
+    Expect(0, 110960, '\p{Block=  Small_kana_Extension}', "");
+    Expect(1, 110960, '\p{^Block=  Small_kana_Extension}', "");
+    Expect(1, 110960, '\P{Block=  Small_kana_Extension}', "");
+    Expect(0, 110960, '\P{^Block=  Small_kana_Extension}', "");
+    Error('\p{Blk:   /a/-	Small_KANA_Ext}');
+    Error('\P{Blk:   /a/-	Small_KANA_Ext}');
     Expect(1, 110959, '\p{Blk=:\ASmall_Kana_Ext\z:}', "");;
     Expect(0, 110960, '\p{Blk=:\ASmall_Kana_Ext\z:}', "");;
-    Expect(1, 110959, '\p{Blk: smallkanaext}', "");
-    Expect(0, 110959, '\p{^Blk: smallkanaext}', "");
-    Expect(0, 110959, '\P{Blk: smallkanaext}', "");
-    Expect(1, 110959, '\P{^Blk: smallkanaext}', "");
-    Expect(0, 110960, '\p{Blk: smallkanaext}', "");
-    Expect(1, 110960, '\p{^Blk: smallkanaext}', "");
-    Expect(1, 110960, '\P{Blk: smallkanaext}', "");
-    Expect(0, 110960, '\P{^Blk: smallkanaext}', "");
+    Expect(1, 110959, '\p{Blk=smallkanaext}', "");
+    Expect(0, 110959, '\p{^Blk=smallkanaext}', "");
+    Expect(0, 110959, '\P{Blk=smallkanaext}', "");
+    Expect(1, 110959, '\P{^Blk=smallkanaext}', "");
+    Expect(0, 110960, '\p{Blk=smallkanaext}', "");
+    Expect(1, 110960, '\p{^Blk=smallkanaext}', "");
+    Expect(1, 110960, '\P{Blk=smallkanaext}', "");
+    Expect(0, 110960, '\P{^Blk=smallkanaext}', "");
     Expect(1, 110959, '\p{Blk=:\Asmallkanaext\z:}', "");;
     Expect(0, 110960, '\p{Blk=:\Asmallkanaext\z:}', "");;
-    Expect(1, 110959, '\p{Blk= SMALL_Kana_Ext}', "");
-    Expect(0, 110959, '\p{^Blk= SMALL_Kana_Ext}', "");
-    Expect(0, 110959, '\P{Blk= SMALL_Kana_Ext}', "");
-    Expect(1, 110959, '\P{^Blk= SMALL_Kana_Ext}', "");
-    Expect(0, 110960, '\p{Blk= SMALL_Kana_Ext}', "");
-    Expect(1, 110960, '\p{^Blk= SMALL_Kana_Ext}', "");
-    Expect(1, 110960, '\P{Blk= SMALL_Kana_Ext}', "");
-    Expect(0, 110960, '\P{^Blk= SMALL_Kana_Ext}', "");
-    Error('\p{Is_Block=/a/		Small_KANA_Extension}');
-    Error('\P{Is_Block=/a/		Small_KANA_Extension}');
+    Expect(1, 110959, '\p{Blk=__Small_kana_ext}', "");
+    Expect(0, 110959, '\p{^Blk=__Small_kana_ext}', "");
+    Expect(0, 110959, '\P{Blk=__Small_kana_ext}', "");
+    Expect(1, 110959, '\P{^Blk=__Small_kana_ext}', "");
+    Expect(0, 110960, '\p{Blk=__Small_kana_ext}', "");
+    Expect(1, 110960, '\p{^Blk=__Small_kana_ext}', "");
+    Expect(1, 110960, '\P{Blk=__Small_kana_ext}', "");
+    Expect(0, 110960, '\P{^Blk=__Small_kana_ext}', "");
+    Error('\p{Is_Block=/a/Small_Kana_extension}');
+    Error('\P{Is_Block=/a/Small_Kana_extension}');
     Expect(1, 110959, '\p{Is_Block=smallkanaextension}', "");
     Expect(0, 110959, '\p{^Is_Block=smallkanaextension}', "");
     Expect(0, 110959, '\P{Is_Block=smallkanaextension}', "");
@@ -24460,16 +25028,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110960, '\p{^Is_Block=smallkanaextension}', "");
     Expect(1, 110960, '\P{Is_Block=smallkanaextension}', "");
     Expect(0, 110960, '\P{^Is_Block=smallkanaextension}', "");
-    Expect(1, 110959, '\p{Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(0, 110959, '\p{^Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(0, 110959, '\P{Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(1, 110959, '\P{^Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(0, 110960, '\p{Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(1, 110960, '\p{^Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(1, 110960, '\P{Is_Block=		SMALL_Kana_Extension}', "");
-    Expect(0, 110960, '\P{^Is_Block=		SMALL_Kana_Extension}', "");
-    Error('\p{Is_Blk:-/a/SMALL_KANA_Ext}');
-    Error('\P{Is_Blk:-/a/SMALL_KANA_Ext}');
+    Expect(1, 110959, '\p{Is_Block=small_KANA_Extension}', "");
+    Expect(0, 110959, '\p{^Is_Block=small_KANA_Extension}', "");
+    Expect(0, 110959, '\P{Is_Block=small_KANA_Extension}', "");
+    Expect(1, 110959, '\P{^Is_Block=small_KANA_Extension}', "");
+    Expect(0, 110960, '\p{Is_Block=small_KANA_Extension}', "");
+    Expect(1, 110960, '\p{^Is_Block=small_KANA_Extension}', "");
+    Expect(1, 110960, '\P{Is_Block=small_KANA_Extension}', "");
+    Expect(0, 110960, '\P{^Is_Block=small_KANA_Extension}', "");
+    Error('\p{Is_Blk=/a/ small_KANA_EXT}');
+    Error('\P{Is_Blk=/a/ small_KANA_EXT}');
     Expect(1, 110959, '\p{Is_Blk=smallkanaext}', "");
     Expect(0, 110959, '\p{^Is_Blk=smallkanaext}', "");
     Expect(0, 110959, '\P{Is_Blk=smallkanaext}', "");
@@ -24478,16 +25046,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 110960, '\p{^Is_Blk=smallkanaext}', "");
     Expect(1, 110960, '\P{Is_Blk=smallkanaext}', "");
     Expect(0, 110960, '\P{^Is_Blk=smallkanaext}', "");
-    Expect(1, 110959, '\p{Is_Blk= -Small_KANA_EXT}', "");
-    Expect(0, 110959, '\p{^Is_Blk= -Small_KANA_EXT}', "");
-    Expect(0, 110959, '\P{Is_Blk= -Small_KANA_EXT}', "");
-    Expect(1, 110959, '\P{^Is_Blk= -Small_KANA_EXT}', "");
-    Expect(0, 110960, '\p{Is_Blk= -Small_KANA_EXT}', "");
-    Expect(1, 110960, '\p{^Is_Blk= -Small_KANA_EXT}', "");
-    Expect(1, 110960, '\P{Is_Blk= -Small_KANA_EXT}', "");
-    Expect(0, 110960, '\P{^Is_Blk= -Small_KANA_EXT}', "");
-    Error('\p{Block=/a/-	Sogdian}');
-    Error('\P{Block=/a/-	Sogdian}');
+    Expect(1, 110959, '\p{Is_Blk=	_small_kana_ext}', "");
+    Expect(0, 110959, '\p{^Is_Blk=	_small_kana_ext}', "");
+    Expect(0, 110959, '\P{Is_Blk=	_small_kana_ext}', "");
+    Expect(1, 110959, '\P{^Is_Blk=	_small_kana_ext}', "");
+    Expect(0, 110960, '\p{Is_Blk=	_small_kana_ext}', "");
+    Expect(1, 110960, '\p{^Is_Blk=	_small_kana_ext}', "");
+    Expect(1, 110960, '\P{Is_Blk=	_small_kana_ext}', "");
+    Expect(0, 110960, '\P{^Is_Blk=	_small_kana_ext}', "");
+    Error('\p{Block=:=  Sogdian}');
+    Error('\P{Block=:=  Sogdian}');
     Expect(1, 69487, '\p{Block=:\ASogdian\z:}', "");;
     Expect(0, 69488, '\p{Block=:\ASogdian\z:}', "");;
     Expect(1, 69487, '\p{Block=sogdian}', "");
@@ -24500,16 +25068,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69488, '\P{^Block=sogdian}', "");
     Expect(1, 69487, '\p{Block=:\Asogdian\z:}', "");;
     Expect(0, 69488, '\p{Block=:\Asogdian\z:}', "");;
-    Expect(1, 69487, '\p{Block=-_Sogdian}', "");
-    Expect(0, 69487, '\p{^Block=-_Sogdian}', "");
-    Expect(0, 69487, '\P{Block=-_Sogdian}', "");
-    Expect(1, 69487, '\P{^Block=-_Sogdian}', "");
-    Expect(0, 69488, '\p{Block=-_Sogdian}', "");
-    Expect(1, 69488, '\p{^Block=-_Sogdian}', "");
-    Expect(1, 69488, '\P{Block=-_Sogdian}', "");
-    Expect(0, 69488, '\P{^Block=-_Sogdian}', "");
-    Error('\p{Blk:	-sogdian/a/}');
-    Error('\P{Blk:	-sogdian/a/}');
+    Expect(1, 69487, '\p{Block=		Sogdian}', "");
+    Expect(0, 69487, '\p{^Block=		Sogdian}', "");
+    Expect(0, 69487, '\P{Block=		Sogdian}', "");
+    Expect(1, 69487, '\P{^Block=		Sogdian}', "");
+    Expect(0, 69488, '\p{Block=		Sogdian}', "");
+    Expect(1, 69488, '\p{^Block=		Sogdian}', "");
+    Expect(1, 69488, '\P{Block=		Sogdian}', "");
+    Expect(0, 69488, '\P{^Block=		Sogdian}', "");
+    Error('\p{Blk= 	sogdian:=}');
+    Error('\P{Blk= 	sogdian:=}');
     Expect(1, 69487, '\p{Blk=:\ASogdian\z:}', "");;
     Expect(0, 69488, '\p{Blk=:\ASogdian\z:}', "");;
     Expect(1, 69487, '\p{Blk=sogdian}', "");
@@ -24522,16 +25090,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69488, '\P{^Blk=sogdian}', "");
     Expect(1, 69487, '\p{Blk=:\Asogdian\z:}', "");;
     Expect(0, 69488, '\p{Blk=:\Asogdian\z:}', "");;
-    Expect(1, 69487, '\p{Blk=-_Sogdian}', "");
-    Expect(0, 69487, '\p{^Blk=-_Sogdian}', "");
-    Expect(0, 69487, '\P{Blk=-_Sogdian}', "");
-    Expect(1, 69487, '\P{^Blk=-_Sogdian}', "");
-    Expect(0, 69488, '\p{Blk=-_Sogdian}', "");
-    Expect(1, 69488, '\p{^Blk=-_Sogdian}', "");
-    Expect(1, 69488, '\P{Blk=-_Sogdian}', "");
-    Expect(0, 69488, '\P{^Blk=-_Sogdian}', "");
-    Error('\p{Is_Block=:= _Sogdian}');
-    Error('\P{Is_Block=:= _Sogdian}');
+    Expect(1, 69487, '\p{Blk=_	sogdian}', "");
+    Expect(0, 69487, '\p{^Blk=_	sogdian}', "");
+    Expect(0, 69487, '\P{Blk=_	sogdian}', "");
+    Expect(1, 69487, '\P{^Blk=_	sogdian}', "");
+    Expect(0, 69488, '\p{Blk=_	sogdian}', "");
+    Expect(1, 69488, '\p{^Blk=_	sogdian}', "");
+    Expect(1, 69488, '\P{Blk=_	sogdian}', "");
+    Expect(0, 69488, '\P{^Blk=_	sogdian}', "");
+    Error('\p{Is_Block=-_SOGDIAN:=}');
+    Error('\P{Is_Block=-_SOGDIAN:=}');
     Expect(1, 69487, '\p{Is_Block=sogdian}', "");
     Expect(0, 69487, '\p{^Is_Block=sogdian}', "");
     Expect(0, 69487, '\P{Is_Block=sogdian}', "");
@@ -24540,16 +25108,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69488, '\p{^Is_Block=sogdian}', "");
     Expect(1, 69488, '\P{Is_Block=sogdian}', "");
     Expect(0, 69488, '\P{^Is_Block=sogdian}', "");
-    Expect(1, 69487, '\p{Is_Block=Sogdian}', "");
-    Expect(0, 69487, '\p{^Is_Block=Sogdian}', "");
-    Expect(0, 69487, '\P{Is_Block=Sogdian}', "");
-    Expect(1, 69487, '\P{^Is_Block=Sogdian}', "");
-    Expect(0, 69488, '\p{Is_Block=Sogdian}', "");
-    Expect(1, 69488, '\p{^Is_Block=Sogdian}', "");
-    Expect(1, 69488, '\P{Is_Block=Sogdian}', "");
-    Expect(0, 69488, '\P{^Is_Block=Sogdian}', "");
-    Error('\p{Is_Blk=/a/ -Sogdian}');
-    Error('\P{Is_Blk=/a/ -Sogdian}');
+    Expect(1, 69487, '\p{Is_Block=_-Sogdian}', "");
+    Expect(0, 69487, '\p{^Is_Block=_-Sogdian}', "");
+    Expect(0, 69487, '\P{Is_Block=_-Sogdian}', "");
+    Expect(1, 69487, '\P{^Is_Block=_-Sogdian}', "");
+    Expect(0, 69488, '\p{Is_Block=_-Sogdian}', "");
+    Expect(1, 69488, '\p{^Is_Block=_-Sogdian}', "");
+    Expect(1, 69488, '\P{Is_Block=_-Sogdian}', "");
+    Expect(0, 69488, '\P{^Is_Block=_-Sogdian}', "");
+    Error('\p{Is_Blk=-:=Sogdian}');
+    Error('\P{Is_Blk=-:=Sogdian}');
     Expect(1, 69487, '\p{Is_Blk=sogdian}', "");
     Expect(0, 69487, '\p{^Is_Blk=sogdian}', "");
     Expect(0, 69487, '\P{Is_Blk=sogdian}', "");
@@ -24558,60 +25126,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69488, '\p{^Is_Blk=sogdian}', "");
     Expect(1, 69488, '\P{Is_Blk=sogdian}', "");
     Expect(0, 69488, '\P{^Is_Blk=sogdian}', "");
-    Expect(1, 69487, '\p{Is_Blk=_Sogdian}', "");
-    Expect(0, 69487, '\p{^Is_Blk=_Sogdian}', "");
-    Expect(0, 69487, '\P{Is_Blk=_Sogdian}', "");
-    Expect(1, 69487, '\P{^Is_Blk=_Sogdian}', "");
-    Expect(0, 69488, '\p{Is_Blk=_Sogdian}', "");
-    Expect(1, 69488, '\p{^Is_Blk=_Sogdian}', "");
-    Expect(1, 69488, '\P{Is_Blk=_Sogdian}', "");
-    Expect(0, 69488, '\P{^Is_Blk=_Sogdian}', "");
-    Error('\p{Block=	-SORA_SOMPENG:=}');
-    Error('\P{Block=	-SORA_SOMPENG:=}');
+    Expect(1, 69487, '\p{Is_Blk=	 Sogdian}', "");
+    Expect(0, 69487, '\p{^Is_Blk=	 Sogdian}', "");
+    Expect(0, 69487, '\P{Is_Blk=	 Sogdian}', "");
+    Expect(1, 69487, '\P{^Is_Blk=	 Sogdian}', "");
+    Expect(0, 69488, '\p{Is_Blk=	 Sogdian}', "");
+    Expect(1, 69488, '\p{^Is_Blk=	 Sogdian}', "");
+    Expect(1, 69488, '\P{Is_Blk=	 Sogdian}', "");
+    Expect(0, 69488, '\P{^Is_Blk=	 Sogdian}', "");
+    Error('\p{Block= :=Sora_sompeng}');
+    Error('\P{Block= :=Sora_sompeng}');
     Expect(1, 69887, '\p{Block=:\ASora_Sompeng\z:}', "");;
     Expect(0, 69888, '\p{Block=:\ASora_Sompeng\z:}', "");;
-    Expect(1, 69887, '\p{Block=sorasompeng}', "");
-    Expect(0, 69887, '\p{^Block=sorasompeng}', "");
-    Expect(0, 69887, '\P{Block=sorasompeng}', "");
-    Expect(1, 69887, '\P{^Block=sorasompeng}', "");
-    Expect(0, 69888, '\p{Block=sorasompeng}', "");
-    Expect(1, 69888, '\p{^Block=sorasompeng}', "");
-    Expect(1, 69888, '\P{Block=sorasompeng}', "");
-    Expect(0, 69888, '\P{^Block=sorasompeng}', "");
+    Expect(1, 69887, '\p{Block:	sorasompeng}', "");
+    Expect(0, 69887, '\p{^Block:	sorasompeng}', "");
+    Expect(0, 69887, '\P{Block:	sorasompeng}', "");
+    Expect(1, 69887, '\P{^Block:	sorasompeng}', "");
+    Expect(0, 69888, '\p{Block:	sorasompeng}', "");
+    Expect(1, 69888, '\p{^Block:	sorasompeng}', "");
+    Expect(1, 69888, '\P{Block:	sorasompeng}', "");
+    Expect(0, 69888, '\P{^Block:	sorasompeng}', "");
     Expect(1, 69887, '\p{Block=:\Asorasompeng\z:}', "");;
     Expect(0, 69888, '\p{Block=:\Asorasompeng\z:}', "");;
-    Expect(1, 69887, '\p{Block=_ Sora_sompeng}', "");
-    Expect(0, 69887, '\p{^Block=_ Sora_sompeng}', "");
-    Expect(0, 69887, '\P{Block=_ Sora_sompeng}', "");
-    Expect(1, 69887, '\P{^Block=_ Sora_sompeng}', "");
-    Expect(0, 69888, '\p{Block=_ Sora_sompeng}', "");
-    Expect(1, 69888, '\p{^Block=_ Sora_sompeng}', "");
-    Expect(1, 69888, '\P{Block=_ Sora_sompeng}', "");
-    Expect(0, 69888, '\P{^Block=_ Sora_sompeng}', "");
-    Error('\p{Blk=:=--Sora_Sompeng}');
-    Error('\P{Blk=:=--Sora_Sompeng}');
+    Expect(1, 69887, '\p{Block:	 SORA_SOMPENG}', "");
+    Expect(0, 69887, '\p{^Block:	 SORA_SOMPENG}', "");
+    Expect(0, 69887, '\P{Block:	 SORA_SOMPENG}', "");
+    Expect(1, 69887, '\P{^Block:	 SORA_SOMPENG}', "");
+    Expect(0, 69888, '\p{Block:	 SORA_SOMPENG}', "");
+    Expect(1, 69888, '\p{^Block:	 SORA_SOMPENG}', "");
+    Expect(1, 69888, '\P{Block:	 SORA_SOMPENG}', "");
+    Expect(0, 69888, '\P{^Block:	 SORA_SOMPENG}', "");
+    Error('\p{Blk=_:=Sora_Sompeng}');
+    Error('\P{Blk=_:=Sora_Sompeng}');
     Expect(1, 69887, '\p{Blk=:\ASora_Sompeng\z:}', "");;
     Expect(0, 69888, '\p{Blk=:\ASora_Sompeng\z:}', "");;
-    Expect(1, 69887, '\p{Blk:sorasompeng}', "");
-    Expect(0, 69887, '\p{^Blk:sorasompeng}', "");
-    Expect(0, 69887, '\P{Blk:sorasompeng}', "");
-    Expect(1, 69887, '\P{^Blk:sorasompeng}', "");
-    Expect(0, 69888, '\p{Blk:sorasompeng}', "");
-    Expect(1, 69888, '\p{^Blk:sorasompeng}', "");
-    Expect(1, 69888, '\P{Blk:sorasompeng}', "");
-    Expect(0, 69888, '\P{^Blk:sorasompeng}', "");
+    Expect(1, 69887, '\p{Blk=sorasompeng}', "");
+    Expect(0, 69887, '\p{^Blk=sorasompeng}', "");
+    Expect(0, 69887, '\P{Blk=sorasompeng}', "");
+    Expect(1, 69887, '\P{^Blk=sorasompeng}', "");
+    Expect(0, 69888, '\p{Blk=sorasompeng}', "");
+    Expect(1, 69888, '\p{^Blk=sorasompeng}', "");
+    Expect(1, 69888, '\P{Blk=sorasompeng}', "");
+    Expect(0, 69888, '\P{^Blk=sorasompeng}', "");
     Expect(1, 69887, '\p{Blk=:\Asorasompeng\z:}', "");;
     Expect(0, 69888, '\p{Blk=:\Asorasompeng\z:}', "");;
-    Expect(1, 69887, '\p{Blk=		Sora_Sompeng}', "");
-    Expect(0, 69887, '\p{^Blk=		Sora_Sompeng}', "");
-    Expect(0, 69887, '\P{Blk=		Sora_Sompeng}', "");
-    Expect(1, 69887, '\P{^Blk=		Sora_Sompeng}', "");
-    Expect(0, 69888, '\p{Blk=		Sora_Sompeng}', "");
-    Expect(1, 69888, '\p{^Blk=		Sora_Sompeng}', "");
-    Expect(1, 69888, '\P{Blk=		Sora_Sompeng}', "");
-    Expect(0, 69888, '\P{^Blk=		Sora_Sompeng}', "");
-    Error('\p{Is_Block=-sora_sompeng/a/}');
-    Error('\P{Is_Block=-sora_sompeng/a/}');
+    Expect(1, 69887, '\p{Blk=__SORA_Sompeng}', "");
+    Expect(0, 69887, '\p{^Blk=__SORA_Sompeng}', "");
+    Expect(0, 69887, '\P{Blk=__SORA_Sompeng}', "");
+    Expect(1, 69887, '\P{^Blk=__SORA_Sompeng}', "");
+    Expect(0, 69888, '\p{Blk=__SORA_Sompeng}', "");
+    Expect(1, 69888, '\p{^Blk=__SORA_Sompeng}', "");
+    Expect(1, 69888, '\P{Blk=__SORA_Sompeng}', "");
+    Expect(0, 69888, '\P{^Blk=__SORA_Sompeng}', "");
+    Error('\p{Is_Block= 	SORA_SOMPENG:=}');
+    Error('\P{Is_Block= 	SORA_SOMPENG:=}');
     Expect(1, 69887, '\p{Is_Block=sorasompeng}', "");
     Expect(0, 69887, '\p{^Is_Block=sorasompeng}', "");
     Expect(0, 69887, '\P{Is_Block=sorasompeng}', "");
@@ -24620,16 +25188,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69888, '\p{^Is_Block=sorasompeng}', "");
     Expect(1, 69888, '\P{Is_Block=sorasompeng}', "");
     Expect(0, 69888, '\P{^Is_Block=sorasompeng}', "");
-    Expect(1, 69887, '\p{Is_Block=-_Sora_Sompeng}', "");
-    Expect(0, 69887, '\p{^Is_Block=-_Sora_Sompeng}', "");
-    Expect(0, 69887, '\P{Is_Block=-_Sora_Sompeng}', "");
-    Expect(1, 69887, '\P{^Is_Block=-_Sora_Sompeng}', "");
-    Expect(0, 69888, '\p{Is_Block=-_Sora_Sompeng}', "");
-    Expect(1, 69888, '\p{^Is_Block=-_Sora_Sompeng}', "");
-    Expect(1, 69888, '\P{Is_Block=-_Sora_Sompeng}', "");
-    Expect(0, 69888, '\P{^Is_Block=-_Sora_Sompeng}', "");
-    Error('\p{Is_Blk:	/a/	-SORA_SOMPENG}');
-    Error('\P{Is_Blk:	/a/	-SORA_SOMPENG}');
+    Expect(1, 69887, '\p{Is_Block=_	SORA_Sompeng}', "");
+    Expect(0, 69887, '\p{^Is_Block=_	SORA_Sompeng}', "");
+    Expect(0, 69887, '\P{Is_Block=_	SORA_Sompeng}', "");
+    Expect(1, 69887, '\P{^Is_Block=_	SORA_Sompeng}', "");
+    Expect(0, 69888, '\p{Is_Block=_	SORA_Sompeng}', "");
+    Expect(1, 69888, '\p{^Is_Block=_	SORA_Sompeng}', "");
+    Expect(1, 69888, '\P{Is_Block=_	SORA_Sompeng}', "");
+    Expect(0, 69888, '\P{^Is_Block=_	SORA_Sompeng}', "");
+    Error('\p{Is_Blk=-/a/Sora_Sompeng}');
+    Error('\P{Is_Blk=-/a/Sora_Sompeng}');
     Expect(1, 69887, '\p{Is_Blk=sorasompeng}', "");
     Expect(0, 69887, '\p{^Is_Blk=sorasompeng}', "");
     Expect(0, 69887, '\P{Is_Blk=sorasompeng}', "");
@@ -24638,38 +25206,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69888, '\p{^Is_Blk=sorasompeng}', "");
     Expect(1, 69888, '\P{Is_Blk=sorasompeng}', "");
     Expect(0, 69888, '\P{^Is_Blk=sorasompeng}', "");
-    Expect(1, 69887, '\p{Is_Blk=		Sora_sompeng}', "");
-    Expect(0, 69887, '\p{^Is_Blk=		Sora_sompeng}', "");
-    Expect(0, 69887, '\P{Is_Blk=		Sora_sompeng}', "");
-    Expect(1, 69887, '\P{^Is_Blk=		Sora_sompeng}', "");
-    Expect(0, 69888, '\p{Is_Blk=		Sora_sompeng}', "");
-    Expect(1, 69888, '\p{^Is_Blk=		Sora_sompeng}', "");
-    Expect(1, 69888, '\P{Is_Blk=		Sora_sompeng}', "");
-    Expect(0, 69888, '\P{^Is_Blk=		Sora_sompeng}', "");
-    Error('\p{Block= soyombo:=}');
-    Error('\P{Block= soyombo:=}');
+    Expect(1, 69887, '\p{Is_Blk=__SORA_sompeng}', "");
+    Expect(0, 69887, '\p{^Is_Blk=__SORA_sompeng}', "");
+    Expect(0, 69887, '\P{Is_Blk=__SORA_sompeng}', "");
+    Expect(1, 69887, '\P{^Is_Blk=__SORA_sompeng}', "");
+    Expect(0, 69888, '\p{Is_Blk=__SORA_sompeng}', "");
+    Expect(1, 69888, '\p{^Is_Blk=__SORA_sompeng}', "");
+    Expect(1, 69888, '\P{Is_Blk=__SORA_sompeng}', "");
+    Expect(0, 69888, '\P{^Is_Blk=__SORA_sompeng}', "");
+    Error('\p{Block:	:=		SOYOMBO}');
+    Error('\P{Block:	:=		SOYOMBO}');
     Expect(1, 72367, '\p{Block=:\ASoyombo\z:}', "");;
     Expect(0, 72368, '\p{Block=:\ASoyombo\z:}', "");;
-    Expect(1, 72367, '\p{Block=soyombo}', "");
-    Expect(0, 72367, '\p{^Block=soyombo}', "");
-    Expect(0, 72367, '\P{Block=soyombo}', "");
-    Expect(1, 72367, '\P{^Block=soyombo}', "");
-    Expect(0, 72368, '\p{Block=soyombo}', "");
-    Expect(1, 72368, '\p{^Block=soyombo}', "");
-    Expect(1, 72368, '\P{Block=soyombo}', "");
-    Expect(0, 72368, '\P{^Block=soyombo}', "");
+    Expect(1, 72367, '\p{Block:	soyombo}', "");
+    Expect(0, 72367, '\p{^Block:	soyombo}', "");
+    Expect(0, 72367, '\P{Block:	soyombo}', "");
+    Expect(1, 72367, '\P{^Block:	soyombo}', "");
+    Expect(0, 72368, '\p{Block:	soyombo}', "");
+    Expect(1, 72368, '\p{^Block:	soyombo}', "");
+    Expect(1, 72368, '\P{Block:	soyombo}', "");
+    Expect(0, 72368, '\P{^Block:	soyombo}', "");
     Expect(1, 72367, '\p{Block=:\Asoyombo\z:}', "");;
     Expect(0, 72368, '\p{Block=:\Asoyombo\z:}', "");;
-    Expect(1, 72367, '\p{Block=- soyombo}', "");
-    Expect(0, 72367, '\p{^Block=- soyombo}', "");
-    Expect(0, 72367, '\P{Block=- soyombo}', "");
-    Expect(1, 72367, '\P{^Block=- soyombo}', "");
-    Expect(0, 72368, '\p{Block=- soyombo}', "");
-    Expect(1, 72368, '\p{^Block=- soyombo}', "");
-    Expect(1, 72368, '\P{Block=- soyombo}', "");
-    Expect(0, 72368, '\P{^Block=- soyombo}', "");
-    Error('\p{Blk=/a/ 	Soyombo}');
-    Error('\P{Blk=/a/ 	Soyombo}');
+    Expect(1, 72367, '\p{Block=_soyombo}', "");
+    Expect(0, 72367, '\p{^Block=_soyombo}', "");
+    Expect(0, 72367, '\P{Block=_soyombo}', "");
+    Expect(1, 72367, '\P{^Block=_soyombo}', "");
+    Expect(0, 72368, '\p{Block=_soyombo}', "");
+    Expect(1, 72368, '\p{^Block=_soyombo}', "");
+    Expect(1, 72368, '\P{Block=_soyombo}', "");
+    Expect(0, 72368, '\P{^Block=_soyombo}', "");
+    Error('\p{Blk=:=_	Soyombo}');
+    Error('\P{Blk=:=_	Soyombo}');
     Expect(1, 72367, '\p{Blk=:\ASoyombo\z:}', "");;
     Expect(0, 72368, '\p{Blk=:\ASoyombo\z:}', "");;
     Expect(1, 72367, '\p{Blk=soyombo}', "");
@@ -24682,16 +25250,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72368, '\P{^Blk=soyombo}', "");
     Expect(1, 72367, '\p{Blk=:\Asoyombo\z:}', "");;
     Expect(0, 72368, '\p{Blk=:\Asoyombo\z:}', "");;
-    Expect(1, 72367, '\p{Blk= -Soyombo}', "");
-    Expect(0, 72367, '\p{^Blk= -Soyombo}', "");
-    Expect(0, 72367, '\P{Blk= -Soyombo}', "");
-    Expect(1, 72367, '\P{^Blk= -Soyombo}', "");
-    Expect(0, 72368, '\p{Blk= -Soyombo}', "");
-    Expect(1, 72368, '\p{^Blk= -Soyombo}', "");
-    Expect(1, 72368, '\P{Blk= -Soyombo}', "");
-    Expect(0, 72368, '\P{^Blk= -Soyombo}', "");
-    Error('\p{Is_Block=:=-	soyombo}');
-    Error('\P{Is_Block=:=-	soyombo}');
+    Expect(1, 72367, '\p{Blk=		SOYOMBO}', "");
+    Expect(0, 72367, '\p{^Blk=		SOYOMBO}', "");
+    Expect(0, 72367, '\P{Blk=		SOYOMBO}', "");
+    Expect(1, 72367, '\P{^Blk=		SOYOMBO}', "");
+    Expect(0, 72368, '\p{Blk=		SOYOMBO}', "");
+    Expect(1, 72368, '\p{^Blk=		SOYOMBO}', "");
+    Expect(1, 72368, '\P{Blk=		SOYOMBO}', "");
+    Expect(0, 72368, '\P{^Blk=		SOYOMBO}', "");
+    Error('\p{Is_Block= :=soyombo}');
+    Error('\P{Is_Block= :=soyombo}');
     Expect(1, 72367, '\p{Is_Block=soyombo}', "");
     Expect(0, 72367, '\p{^Is_Block=soyombo}', "");
     Expect(0, 72367, '\P{Is_Block=soyombo}', "");
@@ -24700,16 +25268,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72368, '\p{^Is_Block=soyombo}', "");
     Expect(1, 72368, '\P{Is_Block=soyombo}', "");
     Expect(0, 72368, '\P{^Is_Block=soyombo}', "");
-    Expect(1, 72367, '\p{Is_Block=_Soyombo}', "");
-    Expect(0, 72367, '\p{^Is_Block=_Soyombo}', "");
-    Expect(0, 72367, '\P{Is_Block=_Soyombo}', "");
-    Expect(1, 72367, '\P{^Is_Block=_Soyombo}', "");
-    Expect(0, 72368, '\p{Is_Block=_Soyombo}', "");
-    Expect(1, 72368, '\p{^Is_Block=_Soyombo}', "");
-    Expect(1, 72368, '\P{Is_Block=_Soyombo}', "");
-    Expect(0, 72368, '\P{^Is_Block=_Soyombo}', "");
-    Error('\p{Is_Blk=	/a/soyombo}');
-    Error('\P{Is_Blk=	/a/soyombo}');
+    Expect(1, 72367, '\p{Is_Block=	soyombo}', "");
+    Expect(0, 72367, '\p{^Is_Block=	soyombo}', "");
+    Expect(0, 72367, '\P{Is_Block=	soyombo}', "");
+    Expect(1, 72367, '\P{^Is_Block=	soyombo}', "");
+    Expect(0, 72368, '\p{Is_Block=	soyombo}', "");
+    Expect(1, 72368, '\p{^Is_Block=	soyombo}', "");
+    Expect(1, 72368, '\P{Is_Block=	soyombo}', "");
+    Expect(0, 72368, '\P{^Is_Block=	soyombo}', "");
+    Error('\p{Is_Blk=--Soyombo:=}');
+    Error('\P{Is_Blk=--Soyombo:=}');
     Expect(1, 72367, '\p{Is_Blk=soyombo}', "");
     Expect(0, 72367, '\p{^Is_Blk=soyombo}', "");
     Expect(0, 72367, '\P{Is_Blk=soyombo}', "");
@@ -24718,16 +25286,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72368, '\p{^Is_Blk=soyombo}', "");
     Expect(1, 72368, '\P{Is_Blk=soyombo}', "");
     Expect(0, 72368, '\P{^Is_Blk=soyombo}', "");
-    Expect(1, 72367, '\p{Is_Blk= soyombo}', "");
-    Expect(0, 72367, '\p{^Is_Blk= soyombo}', "");
-    Expect(0, 72367, '\P{Is_Blk= soyombo}', "");
-    Expect(1, 72367, '\P{^Is_Blk= soyombo}', "");
-    Expect(0, 72368, '\p{Is_Blk= soyombo}', "");
-    Expect(1, 72368, '\p{^Is_Blk= soyombo}', "");
-    Expect(1, 72368, '\P{Is_Blk= soyombo}', "");
-    Expect(0, 72368, '\P{^Is_Blk= soyombo}', "");
-    Error('\p{Block= specials/a/}');
-    Error('\P{Block= specials/a/}');
+    Expect(1, 72367, '\p{Is_Blk=_-Soyombo}', "");
+    Expect(0, 72367, '\p{^Is_Blk=_-Soyombo}', "");
+    Expect(0, 72367, '\P{Is_Blk=_-Soyombo}', "");
+    Expect(1, 72367, '\P{^Is_Blk=_-Soyombo}', "");
+    Expect(0, 72368, '\p{Is_Blk=_-Soyombo}', "");
+    Expect(1, 72368, '\p{^Is_Blk=_-Soyombo}', "");
+    Expect(1, 72368, '\P{Is_Blk=_-Soyombo}', "");
+    Expect(0, 72368, '\P{^Is_Blk=_-Soyombo}', "");
+    Error('\p{Block=-/a/Specials}');
+    Error('\P{Block=-/a/Specials}');
     Expect(1, 65520, '\p{Block=:\ASpecials\z:}', "");;
     Expect(0, 65536, '\p{Block=:\ASpecials\z:}', "");;
     Expect(1, 65520, '\p{Block=specials}', "");
@@ -24740,16 +25308,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65536, '\P{^Block=specials}', "");
     Expect(1, 65520, '\p{Block=:\Aspecials\z:}', "");;
     Expect(0, 65536, '\p{Block=:\Aspecials\z:}', "");;
-    Expect(1, 65520, '\p{Block=	_SPECIALS}', "");
-    Expect(0, 65520, '\p{^Block=	_SPECIALS}', "");
-    Expect(0, 65520, '\P{Block=	_SPECIALS}', "");
-    Expect(1, 65520, '\P{^Block=	_SPECIALS}', "");
-    Expect(0, 65536, '\p{Block=	_SPECIALS}', "");
-    Expect(1, 65536, '\p{^Block=	_SPECIALS}', "");
-    Expect(1, 65536, '\P{Block=	_SPECIALS}', "");
-    Expect(0, 65536, '\P{^Block=	_SPECIALS}', "");
-    Error('\p{Blk=  Specials:=}');
-    Error('\P{Blk=  Specials:=}');
+    Expect(1, 65520, '\p{Block=__SPECIALS}', "");
+    Expect(0, 65520, '\p{^Block=__SPECIALS}', "");
+    Expect(0, 65520, '\P{Block=__SPECIALS}', "");
+    Expect(1, 65520, '\P{^Block=__SPECIALS}', "");
+    Expect(0, 65536, '\p{Block=__SPECIALS}', "");
+    Expect(1, 65536, '\p{^Block=__SPECIALS}', "");
+    Expect(1, 65536, '\P{Block=__SPECIALS}', "");
+    Expect(0, 65536, '\P{^Block=__SPECIALS}', "");
+    Error('\p{Blk=--specials/a/}');
+    Error('\P{Blk=--specials/a/}');
     Expect(1, 65520, '\p{Blk=:\ASpecials\z:}', "");;
     Expect(0, 65536, '\p{Blk=:\ASpecials\z:}', "");;
     Expect(1, 65520, '\p{Blk=specials}', "");
@@ -24762,16 +25330,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65536, '\P{^Blk=specials}', "");
     Expect(1, 65520, '\p{Blk=:\Aspecials\z:}', "");;
     Expect(0, 65536, '\p{Blk=:\Aspecials\z:}', "");;
-    Expect(1, 65520, '\p{Blk=_specials}', "");
-    Expect(0, 65520, '\p{^Blk=_specials}', "");
-    Expect(0, 65520, '\P{Blk=_specials}', "");
-    Expect(1, 65520, '\P{^Blk=_specials}', "");
-    Expect(0, 65536, '\p{Blk=_specials}', "");
-    Expect(1, 65536, '\p{^Blk=_specials}', "");
-    Expect(1, 65536, '\P{Blk=_specials}', "");
-    Expect(0, 65536, '\P{^Blk=_specials}', "");
-    Error('\p{Is_Block: -	specials:=}');
-    Error('\P{Is_Block: -	specials:=}');
+    Expect(1, 65520, '\p{Blk=-SPECIALS}', "");
+    Expect(0, 65520, '\p{^Blk=-SPECIALS}', "");
+    Expect(0, 65520, '\P{Blk=-SPECIALS}', "");
+    Expect(1, 65520, '\P{^Blk=-SPECIALS}', "");
+    Expect(0, 65536, '\p{Blk=-SPECIALS}', "");
+    Expect(1, 65536, '\p{^Blk=-SPECIALS}', "");
+    Expect(1, 65536, '\P{Blk=-SPECIALS}', "");
+    Expect(0, 65536, '\P{^Blk=-SPECIALS}', "");
+    Error('\p{Is_Block=/a/-	specials}');
+    Error('\P{Is_Block=/a/-	specials}');
     Expect(1, 65520, '\p{Is_Block=specials}', "");
     Expect(0, 65520, '\p{^Is_Block=specials}', "");
     Expect(0, 65520, '\P{Is_Block=specials}', "");
@@ -24780,16 +25348,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65536, '\p{^Is_Block=specials}', "");
     Expect(1, 65536, '\P{Is_Block=specials}', "");
     Expect(0, 65536, '\P{^Is_Block=specials}', "");
-    Expect(1, 65520, '\p{Is_Block=-SPECIALS}', "");
-    Expect(0, 65520, '\p{^Is_Block=-SPECIALS}', "");
-    Expect(0, 65520, '\P{Is_Block=-SPECIALS}', "");
-    Expect(1, 65520, '\P{^Is_Block=-SPECIALS}', "");
-    Expect(0, 65536, '\p{Is_Block=-SPECIALS}', "");
-    Expect(1, 65536, '\p{^Is_Block=-SPECIALS}', "");
-    Expect(1, 65536, '\P{Is_Block=-SPECIALS}', "");
-    Expect(0, 65536, '\P{^Is_Block=-SPECIALS}', "");
-    Error('\p{Is_Blk= Specials:=}');
-    Error('\P{Is_Blk= Specials:=}');
+    Expect(1, 65520, '\p{Is_Block=	SPECIALS}', "");
+    Expect(0, 65520, '\p{^Is_Block=	SPECIALS}', "");
+    Expect(0, 65520, '\P{Is_Block=	SPECIALS}', "");
+    Expect(1, 65520, '\P{^Is_Block=	SPECIALS}', "");
+    Expect(0, 65536, '\p{Is_Block=	SPECIALS}', "");
+    Expect(1, 65536, '\p{^Is_Block=	SPECIALS}', "");
+    Expect(1, 65536, '\P{Is_Block=	SPECIALS}', "");
+    Expect(0, 65536, '\P{^Is_Block=	SPECIALS}', "");
+    Error('\p{Is_Blk=/a/- SPECIALS}');
+    Error('\P{Is_Blk=/a/- SPECIALS}');
     Expect(1, 65520, '\p{Is_Blk=specials}', "");
     Expect(0, 65520, '\p{^Is_Blk=specials}', "");
     Expect(0, 65520, '\P{Is_Blk=specials}', "");
@@ -24798,16 +25366,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65536, '\p{^Is_Blk=specials}', "");
     Expect(1, 65536, '\P{Is_Blk=specials}', "");
     Expect(0, 65536, '\P{^Is_Blk=specials}', "");
-    Expect(1, 65520, '\p{Is_Blk=- Specials}', "");
-    Expect(0, 65520, '\p{^Is_Blk=- Specials}', "");
-    Expect(0, 65520, '\P{Is_Blk=- Specials}', "");
-    Expect(1, 65520, '\P{^Is_Blk=- Specials}', "");
-    Expect(0, 65536, '\p{Is_Blk=- Specials}', "");
-    Expect(1, 65536, '\p{^Is_Blk=- Specials}', "");
-    Expect(1, 65536, '\P{Is_Blk=- Specials}', "");
-    Expect(0, 65536, '\P{^Is_Blk=- Specials}', "");
-    Error('\p{Block=:=sundanese}');
-    Error('\P{Block=:=sundanese}');
+    Expect(1, 65520, '\p{Is_Blk=	 specials}', "");
+    Expect(0, 65520, '\p{^Is_Blk=	 specials}', "");
+    Expect(0, 65520, '\P{Is_Blk=	 specials}', "");
+    Expect(1, 65520, '\P{^Is_Blk=	 specials}', "");
+    Expect(0, 65536, '\p{Is_Blk=	 specials}', "");
+    Expect(1, 65536, '\p{^Is_Blk=	 specials}', "");
+    Expect(1, 65536, '\P{Is_Blk=	 specials}', "");
+    Expect(0, 65536, '\P{^Is_Blk=	 specials}', "");
+    Error('\p{Block=:= Sundanese}');
+    Error('\P{Block=:= Sundanese}');
     Expect(1, 7103, '\p{Block=:\ASundanese\z:}', "");;
     Expect(0, 7104, '\p{Block=:\ASundanese\z:}', "");;
     Expect(1, 7103, '\p{Block=sundanese}', "");
@@ -24820,56 +25388,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7104, '\P{^Block=sundanese}', "");
     Expect(1, 7103, '\p{Block=:\Asundanese\z:}', "");;
     Expect(0, 7104, '\p{Block=:\Asundanese\z:}', "");;
-    Expect(1, 7103, '\p{Block=_Sundanese}', "");
-    Expect(0, 7103, '\p{^Block=_Sundanese}', "");
-    Expect(0, 7103, '\P{Block=_Sundanese}', "");
-    Expect(1, 7103, '\P{^Block=_Sundanese}', "");
-    Expect(0, 7104, '\p{Block=_Sundanese}', "");
-    Expect(1, 7104, '\p{^Block=_Sundanese}', "");
-    Expect(1, 7104, '\P{Block=_Sundanese}', "");
-    Expect(0, 7104, '\P{^Block=_Sundanese}', "");
-    Error('\p{Blk=:=Sundanese}');
-    Error('\P{Blk=:=Sundanese}');
+    Expect(1, 7103, '\p{Block=_sundanese}', "");
+    Expect(0, 7103, '\p{^Block=_sundanese}', "");
+    Expect(0, 7103, '\P{Block=_sundanese}', "");
+    Expect(1, 7103, '\P{^Block=_sundanese}', "");
+    Expect(0, 7104, '\p{Block=_sundanese}', "");
+    Expect(1, 7104, '\p{^Block=_sundanese}', "");
+    Expect(1, 7104, '\P{Block=_sundanese}', "");
+    Expect(0, 7104, '\P{^Block=_sundanese}', "");
+    Error('\p{Blk=_/a/Sundanese}');
+    Error('\P{Blk=_/a/Sundanese}');
     Expect(1, 7103, '\p{Blk=:\ASundanese\z:}', "");;
     Expect(0, 7104, '\p{Blk=:\ASundanese\z:}', "");;
-    Expect(1, 7103, '\p{Blk: sundanese}', "");
-    Expect(0, 7103, '\p{^Blk: sundanese}', "");
-    Expect(0, 7103, '\P{Blk: sundanese}', "");
-    Expect(1, 7103, '\P{^Blk: sundanese}', "");
-    Expect(0, 7104, '\p{Blk: sundanese}', "");
-    Expect(1, 7104, '\p{^Blk: sundanese}', "");
-    Expect(1, 7104, '\P{Blk: sundanese}', "");
-    Expect(0, 7104, '\P{^Blk: sundanese}', "");
+    Expect(1, 7103, '\p{Blk=sundanese}', "");
+    Expect(0, 7103, '\p{^Blk=sundanese}', "");
+    Expect(0, 7103, '\P{Blk=sundanese}', "");
+    Expect(1, 7103, '\P{^Blk=sundanese}', "");
+    Expect(0, 7104, '\p{Blk=sundanese}', "");
+    Expect(1, 7104, '\p{^Blk=sundanese}', "");
+    Expect(1, 7104, '\P{Blk=sundanese}', "");
+    Expect(0, 7104, '\P{^Blk=sundanese}', "");
     Expect(1, 7103, '\p{Blk=:\Asundanese\z:}', "");;
     Expect(0, 7104, '\p{Blk=:\Asundanese\z:}', "");;
-    Expect(1, 7103, '\p{Blk= _Sundanese}', "");
-    Expect(0, 7103, '\p{^Blk= _Sundanese}', "");
-    Expect(0, 7103, '\P{Blk= _Sundanese}', "");
-    Expect(1, 7103, '\P{^Blk= _Sundanese}', "");
-    Expect(0, 7104, '\p{Blk= _Sundanese}', "");
-    Expect(1, 7104, '\p{^Blk= _Sundanese}', "");
-    Expect(1, 7104, '\P{Blk= _Sundanese}', "");
-    Expect(0, 7104, '\P{^Blk= _Sundanese}', "");
-    Error('\p{Is_Block=:=-sundanese}');
-    Error('\P{Is_Block=:=-sundanese}');
-    Expect(1, 7103, '\p{Is_Block:   sundanese}', "");
-    Expect(0, 7103, '\p{^Is_Block:   sundanese}', "");
-    Expect(0, 7103, '\P{Is_Block:   sundanese}', "");
-    Expect(1, 7103, '\P{^Is_Block:   sundanese}', "");
-    Expect(0, 7104, '\p{Is_Block:   sundanese}', "");
-    Expect(1, 7104, '\p{^Is_Block:   sundanese}', "");
-    Expect(1, 7104, '\P{Is_Block:   sundanese}', "");
-    Expect(0, 7104, '\P{^Is_Block:   sundanese}', "");
-    Expect(1, 7103, '\p{Is_Block=	Sundanese}', "");
-    Expect(0, 7103, '\p{^Is_Block=	Sundanese}', "");
-    Expect(0, 7103, '\P{Is_Block=	Sundanese}', "");
-    Expect(1, 7103, '\P{^Is_Block=	Sundanese}', "");
-    Expect(0, 7104, '\p{Is_Block=	Sundanese}', "");
-    Expect(1, 7104, '\p{^Is_Block=	Sundanese}', "");
-    Expect(1, 7104, '\P{Is_Block=	Sundanese}', "");
-    Expect(0, 7104, '\P{^Is_Block=	Sundanese}', "");
-    Error('\p{Is_Blk=	/a/SUNDANESE}');
-    Error('\P{Is_Blk=	/a/SUNDANESE}');
+    Expect(1, 7103, '\p{Blk=_Sundanese}', "");
+    Expect(0, 7103, '\p{^Blk=_Sundanese}', "");
+    Expect(0, 7103, '\P{Blk=_Sundanese}', "");
+    Expect(1, 7103, '\P{^Blk=_Sundanese}', "");
+    Expect(0, 7104, '\p{Blk=_Sundanese}', "");
+    Expect(1, 7104, '\p{^Blk=_Sundanese}', "");
+    Expect(1, 7104, '\P{Blk=_Sundanese}', "");
+    Expect(0, 7104, '\P{^Blk=_Sundanese}', "");
+    Error('\p{Is_Block=	SUNDANESE/a/}');
+    Error('\P{Is_Block=	SUNDANESE/a/}');
+    Expect(1, 7103, '\p{Is_Block=sundanese}', "");
+    Expect(0, 7103, '\p{^Is_Block=sundanese}', "");
+    Expect(0, 7103, '\P{Is_Block=sundanese}', "");
+    Expect(1, 7103, '\P{^Is_Block=sundanese}', "");
+    Expect(0, 7104, '\p{Is_Block=sundanese}', "");
+    Expect(1, 7104, '\p{^Is_Block=sundanese}', "");
+    Expect(1, 7104, '\P{Is_Block=sundanese}', "");
+    Expect(0, 7104, '\P{^Is_Block=sundanese}', "");
+    Expect(1, 7103, '\p{Is_Block=-_Sundanese}', "");
+    Expect(0, 7103, '\p{^Is_Block=-_Sundanese}', "");
+    Expect(0, 7103, '\P{Is_Block=-_Sundanese}', "");
+    Expect(1, 7103, '\P{^Is_Block=-_Sundanese}', "");
+    Expect(0, 7104, '\p{Is_Block=-_Sundanese}', "");
+    Expect(1, 7104, '\p{^Is_Block=-_Sundanese}', "");
+    Expect(1, 7104, '\P{Is_Block=-_Sundanese}', "");
+    Expect(0, 7104, '\P{^Is_Block=-_Sundanese}', "");
+    Error('\p{Is_Blk=_	Sundanese:=}');
+    Error('\P{Is_Blk=_	Sundanese:=}');
     Expect(1, 7103, '\p{Is_Blk=sundanese}', "");
     Expect(0, 7103, '\p{^Is_Blk=sundanese}', "");
     Expect(0, 7103, '\P{Is_Blk=sundanese}', "");
@@ -24878,16 +25446,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7104, '\p{^Is_Blk=sundanese}', "");
     Expect(1, 7104, '\P{Is_Blk=sundanese}', "");
     Expect(0, 7104, '\P{^Is_Blk=sundanese}', "");
-    Expect(1, 7103, '\p{Is_Blk=__SUNDANESE}', "");
-    Expect(0, 7103, '\p{^Is_Blk=__SUNDANESE}', "");
-    Expect(0, 7103, '\P{Is_Blk=__SUNDANESE}', "");
-    Expect(1, 7103, '\P{^Is_Blk=__SUNDANESE}', "");
-    Expect(0, 7104, '\p{Is_Blk=__SUNDANESE}', "");
-    Expect(1, 7104, '\p{^Is_Blk=__SUNDANESE}', "");
-    Expect(1, 7104, '\P{Is_Blk=__SUNDANESE}', "");
-    Expect(0, 7104, '\P{^Is_Blk=__SUNDANESE}', "");
-    Error('\p{Block=:=_ SUNDANESE_supplement}');
-    Error('\P{Block=:=_ SUNDANESE_supplement}');
+    Expect(1, 7103, '\p{Is_Blk=	_Sundanese}', "");
+    Expect(0, 7103, '\p{^Is_Blk=	_Sundanese}', "");
+    Expect(0, 7103, '\P{Is_Blk=	_Sundanese}', "");
+    Expect(1, 7103, '\P{^Is_Blk=	_Sundanese}', "");
+    Expect(0, 7104, '\p{Is_Blk=	_Sundanese}', "");
+    Expect(1, 7104, '\p{^Is_Blk=	_Sundanese}', "");
+    Expect(1, 7104, '\P{Is_Blk=	_Sundanese}', "");
+    Expect(0, 7104, '\P{^Is_Blk=	_Sundanese}', "");
+    Error('\p{Block=:=SUNDANESE_supplement}');
+    Error('\P{Block=:=SUNDANESE_supplement}');
     Expect(1, 7375, '\p{Block=:\ASundanese_Supplement\z:}', "");;
     Expect(0, 7376, '\p{Block=:\ASundanese_Supplement\z:}', "");;
     Expect(1, 7375, '\p{Block=sundanesesupplement}', "");
@@ -24900,16 +25468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7376, '\P{^Block=sundanesesupplement}', "");
     Expect(1, 7375, '\p{Block=:\Asundanesesupplement\z:}', "");;
     Expect(0, 7376, '\p{Block=:\Asundanesesupplement\z:}', "");;
-    Expect(1, 7375, '\p{Block= sundanese_supplement}', "");
-    Expect(0, 7375, '\p{^Block= sundanese_supplement}', "");
-    Expect(0, 7375, '\P{Block= sundanese_supplement}', "");
-    Expect(1, 7375, '\P{^Block= sundanese_supplement}', "");
-    Expect(0, 7376, '\p{Block= sundanese_supplement}', "");
-    Expect(1, 7376, '\p{^Block= sundanese_supplement}', "");
-    Expect(1, 7376, '\P{Block= sundanese_supplement}', "");
-    Expect(0, 7376, '\P{^Block= sundanese_supplement}', "");
-    Error('\p{Blk: 	-SUNDANESE_sup/a/}');
-    Error('\P{Blk: 	-SUNDANESE_sup/a/}');
+    Expect(1, 7375, '\p{Block=	 sundanese_Supplement}', "");
+    Expect(0, 7375, '\p{^Block=	 sundanese_Supplement}', "");
+    Expect(0, 7375, '\P{Block=	 sundanese_Supplement}', "");
+    Expect(1, 7375, '\P{^Block=	 sundanese_Supplement}', "");
+    Expect(0, 7376, '\p{Block=	 sundanese_Supplement}', "");
+    Expect(1, 7376, '\p{^Block=	 sundanese_Supplement}', "");
+    Expect(1, 7376, '\P{Block=	 sundanese_Supplement}', "");
+    Expect(0, 7376, '\P{^Block=	 sundanese_Supplement}', "");
+    Error('\p{Blk=/a/	Sundanese_Sup}');
+    Error('\P{Blk=/a/	Sundanese_Sup}');
     Expect(1, 7375, '\p{Blk=:\ASundanese_Sup\z:}', "");;
     Expect(0, 7376, '\p{Blk=:\ASundanese_Sup\z:}', "");;
     Expect(1, 7375, '\p{Blk=sundanesesup}', "");
@@ -24922,16 +25490,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7376, '\P{^Blk=sundanesesup}', "");
     Expect(1, 7375, '\p{Blk=:\Asundanesesup\z:}', "");;
     Expect(0, 7376, '\p{Blk=:\Asundanesesup\z:}', "");;
-    Expect(1, 7375, '\p{Blk=- Sundanese_Sup}', "");
-    Expect(0, 7375, '\p{^Blk=- Sundanese_Sup}', "");
-    Expect(0, 7375, '\P{Blk=- Sundanese_Sup}', "");
-    Expect(1, 7375, '\P{^Blk=- Sundanese_Sup}', "");
-    Expect(0, 7376, '\p{Blk=- Sundanese_Sup}', "");
-    Expect(1, 7376, '\p{^Blk=- Sundanese_Sup}', "");
-    Expect(1, 7376, '\P{Blk=- Sundanese_Sup}', "");
-    Expect(0, 7376, '\P{^Blk=- Sundanese_Sup}', "");
-    Error('\p{Is_Block=-/a/Sundanese_Supplement}');
-    Error('\P{Is_Block=-/a/Sundanese_Supplement}');
+    Expect(1, 7375, '\p{Blk=__sundanese_Sup}', "");
+    Expect(0, 7375, '\p{^Blk=__sundanese_Sup}', "");
+    Expect(0, 7375, '\P{Blk=__sundanese_Sup}', "");
+    Expect(1, 7375, '\P{^Blk=__sundanese_Sup}', "");
+    Expect(0, 7376, '\p{Blk=__sundanese_Sup}', "");
+    Expect(1, 7376, '\p{^Blk=__sundanese_Sup}', "");
+    Expect(1, 7376, '\P{Blk=__sundanese_Sup}', "");
+    Expect(0, 7376, '\P{^Blk=__sundanese_Sup}', "");
+    Error('\p{Is_Block=	:=Sundanese_supplement}');
+    Error('\P{Is_Block=	:=Sundanese_supplement}');
     Expect(1, 7375, '\p{Is_Block=sundanesesupplement}', "");
     Expect(0, 7375, '\p{^Is_Block=sundanesesupplement}', "");
     Expect(0, 7375, '\P{Is_Block=sundanesesupplement}', "");
@@ -24940,34 +25508,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7376, '\p{^Is_Block=sundanesesupplement}', "");
     Expect(1, 7376, '\P{Is_Block=sundanesesupplement}', "");
     Expect(0, 7376, '\P{^Is_Block=sundanesesupplement}', "");
-    Expect(1, 7375, '\p{Is_Block:  sundanese_Supplement}', "");
-    Expect(0, 7375, '\p{^Is_Block:  sundanese_Supplement}', "");
-    Expect(0, 7375, '\P{Is_Block:  sundanese_Supplement}', "");
-    Expect(1, 7375, '\P{^Is_Block:  sundanese_Supplement}', "");
-    Expect(0, 7376, '\p{Is_Block:  sundanese_Supplement}', "");
-    Expect(1, 7376, '\p{^Is_Block:  sundanese_Supplement}', "");
-    Expect(1, 7376, '\P{Is_Block:  sundanese_Supplement}', "");
-    Expect(0, 7376, '\P{^Is_Block:  sundanese_Supplement}', "");
-    Error('\p{Is_Blk=	:=sundanese_sup}');
-    Error('\P{Is_Blk=	:=sundanese_sup}');
-    Expect(1, 7375, '\p{Is_Blk:   sundanesesup}', "");
-    Expect(0, 7375, '\p{^Is_Blk:   sundanesesup}', "");
-    Expect(0, 7375, '\P{Is_Blk:   sundanesesup}', "");
-    Expect(1, 7375, '\P{^Is_Blk:   sundanesesup}', "");
-    Expect(0, 7376, '\p{Is_Blk:   sundanesesup}', "");
-    Expect(1, 7376, '\p{^Is_Blk:   sundanesesup}', "");
-    Expect(1, 7376, '\P{Is_Blk:   sundanesesup}', "");
-    Expect(0, 7376, '\P{^Is_Blk:   sundanesesup}', "");
-    Expect(1, 7375, '\p{Is_Blk:  Sundanese_Sup}', "");
-    Expect(0, 7375, '\p{^Is_Blk:  Sundanese_Sup}', "");
-    Expect(0, 7375, '\P{Is_Blk:  Sundanese_Sup}', "");
-    Expect(1, 7375, '\P{^Is_Blk:  Sundanese_Sup}', "");
-    Expect(0, 7376, '\p{Is_Blk:  Sundanese_Sup}', "");
-    Expect(1, 7376, '\p{^Is_Blk:  Sundanese_Sup}', "");
-    Expect(1, 7376, '\P{Is_Blk:  Sundanese_Sup}', "");
-    Expect(0, 7376, '\P{^Is_Blk:  Sundanese_Sup}', "");
-    Error('\p{Block=--Supplemental_Arrows_A/a/}');
-    Error('\P{Block=--Supplemental_Arrows_A/a/}');
+    Expect(1, 7375, '\p{Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(0, 7375, '\p{^Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(0, 7375, '\P{Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(1, 7375, '\P{^Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(0, 7376, '\p{Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(1, 7376, '\p{^Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(1, 7376, '\P{Is_Block=	SUNDANESE_Supplement}', "");
+    Expect(0, 7376, '\P{^Is_Block=	SUNDANESE_Supplement}', "");
+    Error('\p{Is_Blk= Sundanese_Sup/a/}');
+    Error('\P{Is_Blk= Sundanese_Sup/a/}');
+    Expect(1, 7375, '\p{Is_Blk=sundanesesup}', "");
+    Expect(0, 7375, '\p{^Is_Blk=sundanesesup}', "");
+    Expect(0, 7375, '\P{Is_Blk=sundanesesup}', "");
+    Expect(1, 7375, '\P{^Is_Blk=sundanesesup}', "");
+    Expect(0, 7376, '\p{Is_Blk=sundanesesup}', "");
+    Expect(1, 7376, '\p{^Is_Blk=sundanesesup}', "");
+    Expect(1, 7376, '\P{Is_Blk=sundanesesup}', "");
+    Expect(0, 7376, '\P{^Is_Blk=sundanesesup}', "");
+    Expect(1, 7375, '\p{Is_Blk=_ sundanese_sup}', "");
+    Expect(0, 7375, '\p{^Is_Blk=_ sundanese_sup}', "");
+    Expect(0, 7375, '\P{Is_Blk=_ sundanese_sup}', "");
+    Expect(1, 7375, '\P{^Is_Blk=_ sundanese_sup}', "");
+    Expect(0, 7376, '\p{Is_Blk=_ sundanese_sup}', "");
+    Expect(1, 7376, '\p{^Is_Blk=_ sundanese_sup}', "");
+    Expect(1, 7376, '\P{Is_Blk=_ sundanese_sup}', "");
+    Expect(0, 7376, '\P{^Is_Blk=_ sundanese_sup}', "");
+    Error('\p{Block:	/a/ 	SUPPLEMENTAL_ARROWS_A}');
+    Error('\P{Block:	/a/ 	SUPPLEMENTAL_ARROWS_A}');
     Expect(1, 10239, '\p{Block=:\ASupplemental_Arrows_A\z:}', "");;
     Expect(0, 10240, '\p{Block=:\ASupplemental_Arrows_A\z:}', "");;
     Expect(1, 10239, '\p{Block=supplementalarrowsa}', "");
@@ -24980,38 +25548,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10240, '\P{^Block=supplementalarrowsa}', "");
     Expect(1, 10239, '\p{Block=:\Asupplementalarrowsa\z:}', "");;
     Expect(0, 10240, '\p{Block=:\Asupplementalarrowsa\z:}', "");;
-    Expect(1, 10239, '\p{Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(0, 10239, '\p{^Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(0, 10239, '\P{Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(1, 10239, '\P{^Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(0, 10240, '\p{Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(1, 10240, '\p{^Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(1, 10240, '\P{Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Expect(0, 10240, '\P{^Block=-	SUPPLEMENTAL_ARROWS_A}', "");
-    Error('\p{Blk=-sup_ARROWS_A:=}');
-    Error('\P{Blk=-sup_ARROWS_A:=}');
+    Expect(1, 10239, '\p{Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(0, 10239, '\p{^Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(0, 10239, '\P{Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(1, 10239, '\P{^Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(0, 10240, '\p{Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(1, 10240, '\p{^Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(1, 10240, '\P{Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Expect(0, 10240, '\P{^Block=_SUPPLEMENTAL_ARROWS_a}', "");
+    Error('\p{Blk: :=-	Sup_Arrows_A}');
+    Error('\P{Blk: :=-	Sup_Arrows_A}');
     Expect(1, 10239, '\p{Blk=:\ASup_Arrows_A\z:}', "");;
     Expect(0, 10240, '\p{Blk=:\ASup_Arrows_A\z:}', "");;
-    Expect(1, 10239, '\p{Blk=suparrowsa}', "");
-    Expect(0, 10239, '\p{^Blk=suparrowsa}', "");
-    Expect(0, 10239, '\P{Blk=suparrowsa}', "");
-    Expect(1, 10239, '\P{^Blk=suparrowsa}', "");
-    Expect(0, 10240, '\p{Blk=suparrowsa}', "");
-    Expect(1, 10240, '\p{^Blk=suparrowsa}', "");
-    Expect(1, 10240, '\P{Blk=suparrowsa}', "");
-    Expect(0, 10240, '\P{^Blk=suparrowsa}', "");
+    Expect(1, 10239, '\p{Blk:suparrowsa}', "");
+    Expect(0, 10239, '\p{^Blk:suparrowsa}', "");
+    Expect(0, 10239, '\P{Blk:suparrowsa}', "");
+    Expect(1, 10239, '\P{^Blk:suparrowsa}', "");
+    Expect(0, 10240, '\p{Blk:suparrowsa}', "");
+    Expect(1, 10240, '\p{^Blk:suparrowsa}', "");
+    Expect(1, 10240, '\P{Blk:suparrowsa}', "");
+    Expect(0, 10240, '\P{^Blk:suparrowsa}', "");
     Expect(1, 10239, '\p{Blk=:\Asuparrowsa\z:}', "");;
     Expect(0, 10240, '\p{Blk=:\Asuparrowsa\z:}', "");;
-    Expect(1, 10239, '\p{Blk= 	Sup_Arrows_a}', "");
-    Expect(0, 10239, '\p{^Blk= 	Sup_Arrows_a}', "");
-    Expect(0, 10239, '\P{Blk= 	Sup_Arrows_a}', "");
-    Expect(1, 10239, '\P{^Blk= 	Sup_Arrows_a}', "");
-    Expect(0, 10240, '\p{Blk= 	Sup_Arrows_a}', "");
-    Expect(1, 10240, '\p{^Blk= 	Sup_Arrows_a}', "");
-    Expect(1, 10240, '\P{Blk= 	Sup_Arrows_a}', "");
-    Expect(0, 10240, '\P{^Blk= 	Sup_Arrows_a}', "");
-    Error('\p{Is_Block=/a/_Supplemental_Arrows_A}');
-    Error('\P{Is_Block=/a/_Supplemental_Arrows_A}');
+    Expect(1, 10239, '\p{Blk= 	sup_ARROWS_A}', "");
+    Expect(0, 10239, '\p{^Blk= 	sup_ARROWS_A}', "");
+    Expect(0, 10239, '\P{Blk= 	sup_ARROWS_A}', "");
+    Expect(1, 10239, '\P{^Blk= 	sup_ARROWS_A}', "");
+    Expect(0, 10240, '\p{Blk= 	sup_ARROWS_A}', "");
+    Expect(1, 10240, '\p{^Blk= 	sup_ARROWS_A}', "");
+    Expect(1, 10240, '\P{Blk= 	sup_ARROWS_A}', "");
+    Expect(0, 10240, '\P{^Blk= 	sup_ARROWS_A}', "");
+    Error('\p{Is_Block=:=--SUPPLEMENTAL_ARROWS_A}');
+    Error('\P{Is_Block=:=--SUPPLEMENTAL_ARROWS_A}');
     Expect(1, 10239, '\p{Is_Block=supplementalarrowsa}', "");
     Expect(0, 10239, '\p{^Is_Block=supplementalarrowsa}', "");
     Expect(0, 10239, '\P{Is_Block=supplementalarrowsa}', "");
@@ -25020,34 +25588,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10240, '\p{^Is_Block=supplementalarrowsa}', "");
     Expect(1, 10240, '\P{Is_Block=supplementalarrowsa}', "");
     Expect(0, 10240, '\P{^Is_Block=supplementalarrowsa}', "");
-    Expect(1, 10239, '\p{Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(0, 10239, '\p{^Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(0, 10239, '\P{Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(1, 10239, '\P{^Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(0, 10240, '\p{Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(1, 10240, '\p{^Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(1, 10240, '\P{Is_Block=- Supplemental_Arrows_A}', "");
-    Expect(0, 10240, '\P{^Is_Block=- Supplemental_Arrows_A}', "");
-    Error('\p{Is_Blk=/a/ 	Sup_arrows_A}');
-    Error('\P{Is_Blk=/a/ 	Sup_arrows_A}');
-    Expect(1, 10239, '\p{Is_Blk=suparrowsa}', "");
-    Expect(0, 10239, '\p{^Is_Blk=suparrowsa}', "");
-    Expect(0, 10239, '\P{Is_Blk=suparrowsa}', "");
-    Expect(1, 10239, '\P{^Is_Blk=suparrowsa}', "");
-    Expect(0, 10240, '\p{Is_Blk=suparrowsa}', "");
-    Expect(1, 10240, '\p{^Is_Blk=suparrowsa}', "");
-    Expect(1, 10240, '\P{Is_Blk=suparrowsa}', "");
-    Expect(0, 10240, '\P{^Is_Blk=suparrowsa}', "");
-    Expect(1, 10239, '\p{Is_Blk= Sup_ARROWS_A}', "");
-    Expect(0, 10239, '\p{^Is_Blk= Sup_ARROWS_A}', "");
-    Expect(0, 10239, '\P{Is_Blk= Sup_ARROWS_A}', "");
-    Expect(1, 10239, '\P{^Is_Blk= Sup_ARROWS_A}', "");
-    Expect(0, 10240, '\p{Is_Blk= Sup_ARROWS_A}', "");
-    Expect(1, 10240, '\p{^Is_Blk= Sup_ARROWS_A}', "");
-    Expect(1, 10240, '\P{Is_Blk= Sup_ARROWS_A}', "");
-    Expect(0, 10240, '\P{^Is_Blk= Sup_ARROWS_A}', "");
-    Error('\p{Block:--Supplemental_Arrows_B:=}');
-    Error('\P{Block:--Supplemental_Arrows_B:=}');
+    Expect(1, 10239, '\p{Is_Block: _Supplemental_arrows_a}', "");
+    Expect(0, 10239, '\p{^Is_Block: _Supplemental_arrows_a}', "");
+    Expect(0, 10239, '\P{Is_Block: _Supplemental_arrows_a}', "");
+    Expect(1, 10239, '\P{^Is_Block: _Supplemental_arrows_a}', "");
+    Expect(0, 10240, '\p{Is_Block: _Supplemental_arrows_a}', "");
+    Expect(1, 10240, '\p{^Is_Block: _Supplemental_arrows_a}', "");
+    Expect(1, 10240, '\P{Is_Block: _Supplemental_arrows_a}', "");
+    Expect(0, 10240, '\P{^Is_Block: _Supplemental_arrows_a}', "");
+    Error('\p{Is_Blk=-	SUP_ARROWS_A/a/}');
+    Error('\P{Is_Blk=-	SUP_ARROWS_A/a/}');
+    Expect(1, 10239, '\p{Is_Blk: suparrowsa}', "");
+    Expect(0, 10239, '\p{^Is_Blk: suparrowsa}', "");
+    Expect(0, 10239, '\P{Is_Blk: suparrowsa}', "");
+    Expect(1, 10239, '\P{^Is_Blk: suparrowsa}', "");
+    Expect(0, 10240, '\p{Is_Blk: suparrowsa}', "");
+    Expect(1, 10240, '\p{^Is_Blk: suparrowsa}', "");
+    Expect(1, 10240, '\P{Is_Blk: suparrowsa}', "");
+    Expect(0, 10240, '\P{^Is_Blk: suparrowsa}', "");
+    Expect(1, 10239, '\p{Is_Blk:    sup_ARROWS_A}', "");
+    Expect(0, 10239, '\p{^Is_Blk:    sup_ARROWS_A}', "");
+    Expect(0, 10239, '\P{Is_Blk:    sup_ARROWS_A}', "");
+    Expect(1, 10239, '\P{^Is_Blk:    sup_ARROWS_A}', "");
+    Expect(0, 10240, '\p{Is_Blk:    sup_ARROWS_A}', "");
+    Expect(1, 10240, '\p{^Is_Blk:    sup_ARROWS_A}', "");
+    Expect(1, 10240, '\P{Is_Blk:    sup_ARROWS_A}', "");
+    Expect(0, 10240, '\P{^Is_Blk:    sup_ARROWS_A}', "");
+    Error('\p{Block=/a/supplemental_Arrows_B}');
+    Error('\P{Block=/a/supplemental_Arrows_B}');
     Expect(1, 10623, '\p{Block=:\ASupplemental_Arrows_B\z:}', "");;
     Expect(0, 10624, '\p{Block=:\ASupplemental_Arrows_B\z:}', "");;
     Expect(1, 10623, '\p{Block=supplementalarrowsb}', "");
@@ -25060,16 +25628,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10624, '\P{^Block=supplementalarrowsb}', "");
     Expect(1, 10623, '\p{Block=:\Asupplementalarrowsb\z:}', "");;
     Expect(0, 10624, '\p{Block=:\Asupplementalarrowsb\z:}', "");;
-    Expect(1, 10623, '\p{Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(0, 10623, '\p{^Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(0, 10623, '\P{Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(1, 10623, '\P{^Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(0, 10624, '\p{Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(1, 10624, '\p{^Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(1, 10624, '\P{Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Expect(0, 10624, '\P{^Block=  SUPPLEMENTAL_Arrows_B}', "");
-    Error('\p{Blk= :=Sup_arrows_B}');
-    Error('\P{Blk= :=Sup_arrows_B}');
+    Expect(1, 10623, '\p{Block=_Supplemental_ARROWS_B}', "");
+    Expect(0, 10623, '\p{^Block=_Supplemental_ARROWS_B}', "");
+    Expect(0, 10623, '\P{Block=_Supplemental_ARROWS_B}', "");
+    Expect(1, 10623, '\P{^Block=_Supplemental_ARROWS_B}', "");
+    Expect(0, 10624, '\p{Block=_Supplemental_ARROWS_B}', "");
+    Expect(1, 10624, '\p{^Block=_Supplemental_ARROWS_B}', "");
+    Expect(1, 10624, '\P{Block=_Supplemental_ARROWS_B}', "");
+    Expect(0, 10624, '\P{^Block=_Supplemental_ARROWS_B}', "");
+    Error('\p{Blk=	-SUP_arrows_B/a/}');
+    Error('\P{Blk=	-SUP_arrows_B/a/}');
     Expect(1, 10623, '\p{Blk=:\ASup_Arrows_B\z:}', "");;
     Expect(0, 10624, '\p{Blk=:\ASup_Arrows_B\z:}', "");;
     Expect(1, 10623, '\p{Blk=suparrowsb}', "");
@@ -25082,16 +25650,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10624, '\P{^Blk=suparrowsb}', "");
     Expect(1, 10623, '\p{Blk=:\Asuparrowsb\z:}', "");;
     Expect(0, 10624, '\p{Blk=:\Asuparrowsb\z:}', "");;
-    Expect(1, 10623, '\p{Blk=-sup_ARROWS_b}', "");
-    Expect(0, 10623, '\p{^Blk=-sup_ARROWS_b}', "");
-    Expect(0, 10623, '\P{Blk=-sup_ARROWS_b}', "");
-    Expect(1, 10623, '\P{^Blk=-sup_ARROWS_b}', "");
-    Expect(0, 10624, '\p{Blk=-sup_ARROWS_b}', "");
-    Expect(1, 10624, '\p{^Blk=-sup_ARROWS_b}', "");
-    Expect(1, 10624, '\P{Blk=-sup_ARROWS_b}', "");
-    Expect(0, 10624, '\P{^Blk=-sup_ARROWS_b}', "");
-    Error('\p{Is_Block= :=SUPPLEMENTAL_Arrows_b}');
-    Error('\P{Is_Block= :=SUPPLEMENTAL_Arrows_b}');
+    Expect(1, 10623, '\p{Blk: _sup_Arrows_B}', "");
+    Expect(0, 10623, '\p{^Blk: _sup_Arrows_B}', "");
+    Expect(0, 10623, '\P{Blk: _sup_Arrows_B}', "");
+    Expect(1, 10623, '\P{^Blk: _sup_Arrows_B}', "");
+    Expect(0, 10624, '\p{Blk: _sup_Arrows_B}', "");
+    Expect(1, 10624, '\p{^Blk: _sup_Arrows_B}', "");
+    Expect(1, 10624, '\P{Blk: _sup_Arrows_B}', "");
+    Expect(0, 10624, '\P{^Blk: _sup_Arrows_B}', "");
+    Error('\p{Is_Block=:= -Supplemental_Arrows_B}');
+    Error('\P{Is_Block=:= -Supplemental_Arrows_B}');
     Expect(1, 10623, '\p{Is_Block=supplementalarrowsb}', "");
     Expect(0, 10623, '\p{^Is_Block=supplementalarrowsb}', "");
     Expect(0, 10623, '\P{Is_Block=supplementalarrowsb}', "");
@@ -25100,16 +25668,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10624, '\p{^Is_Block=supplementalarrowsb}', "");
     Expect(1, 10624, '\P{Is_Block=supplementalarrowsb}', "");
     Expect(0, 10624, '\P{^Is_Block=supplementalarrowsb}', "");
-    Expect(1, 10623, '\p{Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10623, '\p{^Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10623, '\P{Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(1, 10623, '\P{^Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10624, '\p{Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(1, 10624, '\p{^Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(1, 10624, '\P{Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10624, '\P{^Is_Block=		SUPPLEMENTAL_arrows_B}', "");
-    Error('\p{Is_Blk=/a/_sup_Arrows_B}');
-    Error('\P{Is_Blk=/a/_sup_Arrows_B}');
+    Expect(1, 10623, '\p{Is_Block= supplemental_ARROWS_B}', "");
+    Expect(0, 10623, '\p{^Is_Block= supplemental_ARROWS_B}', "");
+    Expect(0, 10623, '\P{Is_Block= supplemental_ARROWS_B}', "");
+    Expect(1, 10623, '\P{^Is_Block= supplemental_ARROWS_B}', "");
+    Expect(0, 10624, '\p{Is_Block= supplemental_ARROWS_B}', "");
+    Expect(1, 10624, '\p{^Is_Block= supplemental_ARROWS_B}', "");
+    Expect(1, 10624, '\P{Is_Block= supplemental_ARROWS_B}', "");
+    Expect(0, 10624, '\P{^Is_Block= supplemental_ARROWS_B}', "");
+    Error('\p{Is_Blk=/a/ 	Sup_arrows_B}');
+    Error('\P{Is_Blk=/a/ 	Sup_arrows_B}');
     Expect(1, 10623, '\p{Is_Blk=suparrowsb}', "");
     Expect(0, 10623, '\p{^Is_Blk=suparrowsb}', "");
     Expect(0, 10623, '\P{Is_Blk=suparrowsb}', "");
@@ -25118,60 +25686,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10624, '\p{^Is_Blk=suparrowsb}', "");
     Expect(1, 10624, '\P{Is_Blk=suparrowsb}', "");
     Expect(0, 10624, '\P{^Is_Blk=suparrowsb}', "");
-    Expect(1, 10623, '\p{Is_Blk: 	_sup_arrows_B}', "");
-    Expect(0, 10623, '\p{^Is_Blk: 	_sup_arrows_B}', "");
-    Expect(0, 10623, '\P{Is_Blk: 	_sup_arrows_B}', "");
-    Expect(1, 10623, '\P{^Is_Blk: 	_sup_arrows_B}', "");
-    Expect(0, 10624, '\p{Is_Blk: 	_sup_arrows_B}', "");
-    Expect(1, 10624, '\p{^Is_Blk: 	_sup_arrows_B}', "");
-    Expect(1, 10624, '\P{Is_Blk: 	_sup_arrows_B}', "");
-    Expect(0, 10624, '\P{^Is_Blk: 	_sup_arrows_B}', "");
-    Error('\p{Block=/a/	 SUPPLEMENTAL_arrows_c}');
-    Error('\P{Block=/a/	 SUPPLEMENTAL_arrows_c}');
+    Expect(1, 10623, '\p{Is_Blk= SUP_Arrows_B}', "");
+    Expect(0, 10623, '\p{^Is_Blk= SUP_Arrows_B}', "");
+    Expect(0, 10623, '\P{Is_Blk= SUP_Arrows_B}', "");
+    Expect(1, 10623, '\P{^Is_Blk= SUP_Arrows_B}', "");
+    Expect(0, 10624, '\p{Is_Blk= SUP_Arrows_B}', "");
+    Expect(1, 10624, '\p{^Is_Blk= SUP_Arrows_B}', "");
+    Expect(1, 10624, '\P{Is_Blk= SUP_Arrows_B}', "");
+    Expect(0, 10624, '\P{^Is_Blk= SUP_Arrows_B}', "");
+    Error('\p{Block= /a/Supplemental_Arrows_C}');
+    Error('\P{Block= /a/Supplemental_Arrows_C}');
     Expect(1, 129279, '\p{Block=:\ASupplemental_Arrows_C\z:}', "");;
     Expect(0, 129280, '\p{Block=:\ASupplemental_Arrows_C\z:}', "");;
-    Expect(1, 129279, '\p{Block:   supplementalarrowsc}', "");
-    Expect(0, 129279, '\p{^Block:   supplementalarrowsc}', "");
-    Expect(0, 129279, '\P{Block:   supplementalarrowsc}', "");
-    Expect(1, 129279, '\P{^Block:   supplementalarrowsc}', "");
-    Expect(0, 129280, '\p{Block:   supplementalarrowsc}', "");
-    Expect(1, 129280, '\p{^Block:   supplementalarrowsc}', "");
-    Expect(1, 129280, '\P{Block:   supplementalarrowsc}', "");
-    Expect(0, 129280, '\P{^Block:   supplementalarrowsc}', "");
+    Expect(1, 129279, '\p{Block=supplementalarrowsc}', "");
+    Expect(0, 129279, '\p{^Block=supplementalarrowsc}', "");
+    Expect(0, 129279, '\P{Block=supplementalarrowsc}', "");
+    Expect(1, 129279, '\P{^Block=supplementalarrowsc}', "");
+    Expect(0, 129280, '\p{Block=supplementalarrowsc}', "");
+    Expect(1, 129280, '\p{^Block=supplementalarrowsc}', "");
+    Expect(1, 129280, '\P{Block=supplementalarrowsc}', "");
+    Expect(0, 129280, '\P{^Block=supplementalarrowsc}', "");
     Expect(1, 129279, '\p{Block=:\Asupplementalarrowsc\z:}', "");;
     Expect(0, 129280, '\p{Block=:\Asupplementalarrowsc\z:}', "");;
-    Expect(1, 129279, '\p{Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(0, 129279, '\p{^Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(0, 129279, '\P{Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(1, 129279, '\P{^Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(0, 129280, '\p{Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(1, 129280, '\p{^Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(1, 129280, '\P{Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Expect(0, 129280, '\P{^Block=	_SUPPLEMENTAL_Arrows_c}', "");
-    Error('\p{Blk=:=Sup_ARROWS_C}');
-    Error('\P{Blk=:=Sup_ARROWS_C}');
+    Expect(1, 129279, '\p{Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(0, 129279, '\p{^Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(0, 129279, '\P{Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(1, 129279, '\P{^Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(0, 129280, '\p{Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(1, 129280, '\p{^Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(1, 129280, '\P{Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Expect(0, 129280, '\P{^Block=_-SUPPLEMENTAL_ARROWS_C}', "");
+    Error('\p{Blk= _SUP_Arrows_c/a/}');
+    Error('\P{Blk= _SUP_Arrows_c/a/}');
     Expect(1, 129279, '\p{Blk=:\ASup_Arrows_C\z:}', "");;
     Expect(0, 129280, '\p{Blk=:\ASup_Arrows_C\z:}', "");;
-    Expect(1, 129279, '\p{Blk:suparrowsc}', "");
-    Expect(0, 129279, '\p{^Blk:suparrowsc}', "");
-    Expect(0, 129279, '\P{Blk:suparrowsc}', "");
-    Expect(1, 129279, '\P{^Blk:suparrowsc}', "");
-    Expect(0, 129280, '\p{Blk:suparrowsc}', "");
-    Expect(1, 129280, '\p{^Blk:suparrowsc}', "");
-    Expect(1, 129280, '\P{Blk:suparrowsc}', "");
-    Expect(0, 129280, '\P{^Blk:suparrowsc}', "");
+    Expect(1, 129279, '\p{Blk=suparrowsc}', "");
+    Expect(0, 129279, '\p{^Blk=suparrowsc}', "");
+    Expect(0, 129279, '\P{Blk=suparrowsc}', "");
+    Expect(1, 129279, '\P{^Blk=suparrowsc}', "");
+    Expect(0, 129280, '\p{Blk=suparrowsc}', "");
+    Expect(1, 129280, '\p{^Blk=suparrowsc}', "");
+    Expect(1, 129280, '\P{Blk=suparrowsc}', "");
+    Expect(0, 129280, '\P{^Blk=suparrowsc}', "");
     Expect(1, 129279, '\p{Blk=:\Asuparrowsc\z:}', "");;
     Expect(0, 129280, '\p{Blk=:\Asuparrowsc\z:}', "");;
-    Expect(1, 129279, '\p{Blk:   	sup_ARROWS_c}', "");
-    Expect(0, 129279, '\p{^Blk:   	sup_ARROWS_c}', "");
-    Expect(0, 129279, '\P{Blk:   	sup_ARROWS_c}', "");
-    Expect(1, 129279, '\P{^Blk:   	sup_ARROWS_c}', "");
-    Expect(0, 129280, '\p{Blk:   	sup_ARROWS_c}', "");
-    Expect(1, 129280, '\p{^Blk:   	sup_ARROWS_c}', "");
-    Expect(1, 129280, '\P{Blk:   	sup_ARROWS_c}', "");
-    Expect(0, 129280, '\P{^Blk:   	sup_ARROWS_c}', "");
-    Error('\p{Is_Block=:=_ SUPPLEMENTAL_Arrows_C}');
-    Error('\P{Is_Block=:=_ SUPPLEMENTAL_Arrows_C}');
+    Expect(1, 129279, '\p{Blk=_-Sup_Arrows_C}', "");
+    Expect(0, 129279, '\p{^Blk=_-Sup_Arrows_C}', "");
+    Expect(0, 129279, '\P{Blk=_-Sup_Arrows_C}', "");
+    Expect(1, 129279, '\P{^Blk=_-Sup_Arrows_C}', "");
+    Expect(0, 129280, '\p{Blk=_-Sup_Arrows_C}', "");
+    Expect(1, 129280, '\p{^Blk=_-Sup_Arrows_C}', "");
+    Expect(1, 129280, '\P{Blk=_-Sup_Arrows_C}', "");
+    Expect(0, 129280, '\P{^Blk=_-Sup_Arrows_C}', "");
+    Error('\p{Is_Block=/a/		SUPPLEMENTAL_Arrows_c}');
+    Error('\P{Is_Block=/a/		SUPPLEMENTAL_Arrows_c}');
     Expect(1, 129279, '\p{Is_Block=supplementalarrowsc}', "");
     Expect(0, 129279, '\p{^Is_Block=supplementalarrowsc}', "");
     Expect(0, 129279, '\P{Is_Block=supplementalarrowsc}', "");
@@ -25180,34 +25748,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129280, '\p{^Is_Block=supplementalarrowsc}', "");
     Expect(1, 129280, '\P{Is_Block=supplementalarrowsc}', "");
     Expect(0, 129280, '\P{^Is_Block=supplementalarrowsc}', "");
-    Expect(1, 129279, '\p{Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(0, 129279, '\p{^Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(0, 129279, '\P{Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(1, 129279, '\P{^Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(0, 129280, '\p{Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(1, 129280, '\p{^Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(1, 129280, '\P{Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Expect(0, 129280, '\P{^Is_Block=-_SUPPLEMENTAL_ARROWS_C}', "");
-    Error('\p{Is_Blk=:=--Sup_ARROWS_c}');
-    Error('\P{Is_Blk=:=--Sup_ARROWS_c}');
-    Expect(1, 129279, '\p{Is_Blk: suparrowsc}', "");
-    Expect(0, 129279, '\p{^Is_Blk: suparrowsc}', "");
-    Expect(0, 129279, '\P{Is_Blk: suparrowsc}', "");
-    Expect(1, 129279, '\P{^Is_Blk: suparrowsc}', "");
-    Expect(0, 129280, '\p{Is_Blk: suparrowsc}', "");
-    Expect(1, 129280, '\p{^Is_Blk: suparrowsc}', "");
-    Expect(1, 129280, '\P{Is_Blk: suparrowsc}', "");
-    Expect(0, 129280, '\P{^Is_Blk: suparrowsc}', "");
-    Expect(1, 129279, '\p{Is_Blk= Sup_Arrows_C}', "");
-    Expect(0, 129279, '\p{^Is_Blk= Sup_Arrows_C}', "");
-    Expect(0, 129279, '\P{Is_Blk= Sup_Arrows_C}', "");
-    Expect(1, 129279, '\P{^Is_Blk= Sup_Arrows_C}', "");
-    Expect(0, 129280, '\p{Is_Blk= Sup_Arrows_C}', "");
-    Expect(1, 129280, '\p{^Is_Blk= Sup_Arrows_C}', "");
-    Expect(1, 129280, '\P{Is_Blk= Sup_Arrows_C}', "");
-    Expect(0, 129280, '\P{^Is_Blk= Sup_Arrows_C}', "");
-    Error('\p{Block=:= _SUPPLEMENTAL_MATHEMATICAL_Operators}');
-    Error('\P{Block=:= _SUPPLEMENTAL_MATHEMATICAL_Operators}');
+    Expect(1, 129279, '\p{Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(0, 129279, '\p{^Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(0, 129279, '\P{Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(1, 129279, '\P{^Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(0, 129280, '\p{Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(1, 129280, '\p{^Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(1, 129280, '\P{Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Expect(0, 129280, '\P{^Is_Block=SUPPLEMENTAL_ARROWS_c}', "");
+    Error('\p{Is_Blk=-/a/Sup_ARROWS_C}');
+    Error('\P{Is_Blk=-/a/Sup_ARROWS_C}');
+    Expect(1, 129279, '\p{Is_Blk=suparrowsc}', "");
+    Expect(0, 129279, '\p{^Is_Blk=suparrowsc}', "");
+    Expect(0, 129279, '\P{Is_Blk=suparrowsc}', "");
+    Expect(1, 129279, '\P{^Is_Blk=suparrowsc}', "");
+    Expect(0, 129280, '\p{Is_Blk=suparrowsc}', "");
+    Expect(1, 129280, '\p{^Is_Blk=suparrowsc}', "");
+    Expect(1, 129280, '\P{Is_Blk=suparrowsc}', "");
+    Expect(0, 129280, '\P{^Is_Blk=suparrowsc}', "");
+    Expect(1, 129279, '\p{Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(0, 129279, '\p{^Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(0, 129279, '\P{Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(1, 129279, '\P{^Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(0, 129280, '\p{Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(1, 129280, '\p{^Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(1, 129280, '\P{Is_Blk=	_SUP_Arrows_C}', "");
+    Expect(0, 129280, '\P{^Is_Blk=	_SUP_Arrows_C}', "");
+    Error('\p{Block=/a/	-Supplemental_Mathematical_Operators}');
+    Error('\P{Block=/a/	-Supplemental_Mathematical_Operators}');
     Expect(1, 11007, '\p{Block=:\ASupplemental_Mathematical_Operators\z:}', "");;
     Expect(0, 11008, '\p{Block=:\ASupplemental_Mathematical_Operators\z:}', "");;
     Expect(1, 11007, '\p{Block=supplementalmathematicaloperators}', "");
@@ -25220,16 +25788,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11008, '\P{^Block=supplementalmathematicaloperators}', "");
     Expect(1, 11007, '\p{Block=:\Asupplementalmathematicaloperators\z:}', "");;
     Expect(0, 11008, '\p{Block=:\Asupplementalmathematicaloperators\z:}', "");;
-    Expect(1, 11007, '\p{Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\p{^Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\P{Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11007, '\P{^Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\p{Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\p{^Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\P{Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\P{^Block=_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Error('\p{Blk:   _Sup_MATH_Operators/a/}');
-    Error('\P{Blk:   _Sup_MATH_Operators/a/}');
+    Expect(1, 11007, '\p{Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(0, 11007, '\p{^Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(0, 11007, '\P{Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(1, 11007, '\P{^Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(0, 11008, '\p{Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(1, 11008, '\p{^Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(1, 11008, '\P{Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Expect(0, 11008, '\P{^Block=_-SUPPLEMENTAL_mathematical_operators}', "");
+    Error('\p{Blk=/a/ -Sup_MATH_operators}');
+    Error('\P{Blk=/a/ -Sup_MATH_operators}');
     Expect(1, 11007, '\p{Blk=:\ASup_Math_Operators\z:}', "");;
     Expect(0, 11008, '\p{Blk=:\ASup_Math_Operators\z:}', "");;
     Expect(1, 11007, '\p{Blk=supmathoperators}', "");
@@ -25242,16 +25810,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11008, '\P{^Blk=supmathoperators}', "");
     Expect(1, 11007, '\p{Blk=:\Asupmathoperators\z:}', "");;
     Expect(0, 11008, '\p{Blk=:\Asupmathoperators\z:}', "");;
-    Expect(1, 11007, '\p{Blk=	_SUP_MATH_Operators}', "");
-    Expect(0, 11007, '\p{^Blk=	_SUP_MATH_Operators}', "");
-    Expect(0, 11007, '\P{Blk=	_SUP_MATH_Operators}', "");
-    Expect(1, 11007, '\P{^Blk=	_SUP_MATH_Operators}', "");
-    Expect(0, 11008, '\p{Blk=	_SUP_MATH_Operators}', "");
-    Expect(1, 11008, '\p{^Blk=	_SUP_MATH_Operators}', "");
-    Expect(1, 11008, '\P{Blk=	_SUP_MATH_Operators}', "");
-    Expect(0, 11008, '\P{^Blk=	_SUP_MATH_Operators}', "");
-    Error('\p{Is_Block=:=--Supplemental_Mathematical_Operators}');
-    Error('\P{Is_Block=:=--Supplemental_Mathematical_Operators}');
+    Expect(1, 11007, '\p{Blk= Sup_Math_Operators}', "");
+    Expect(0, 11007, '\p{^Blk= Sup_Math_Operators}', "");
+    Expect(0, 11007, '\P{Blk= Sup_Math_Operators}', "");
+    Expect(1, 11007, '\P{^Blk= Sup_Math_Operators}', "");
+    Expect(0, 11008, '\p{Blk= Sup_Math_Operators}', "");
+    Expect(1, 11008, '\p{^Blk= Sup_Math_Operators}', "");
+    Expect(1, 11008, '\P{Blk= Sup_Math_Operators}', "");
+    Expect(0, 11008, '\P{^Blk= Sup_Math_Operators}', "");
+    Error('\p{Is_Block=	:=Supplemental_MATHEMATICAL_operators}');
+    Error('\P{Is_Block=	:=Supplemental_MATHEMATICAL_operators}');
     Expect(1, 11007, '\p{Is_Block=supplementalmathematicaloperators}', "");
     Expect(0, 11007, '\p{^Is_Block=supplementalmathematicaloperators}', "");
     Expect(0, 11007, '\P{Is_Block=supplementalmathematicaloperators}', "");
@@ -25260,16 +25828,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11008, '\p{^Is_Block=supplementalmathematicaloperators}', "");
     Expect(1, 11008, '\P{Is_Block=supplementalmathematicaloperators}', "");
     Expect(0, 11008, '\P{^Is_Block=supplementalmathematicaloperators}', "");
-    Expect(1, 11007, '\p{Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\p{^Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\P{Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11007, '\P{^Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\p{Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\p{^Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\P{Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\P{^Is_Block= _SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Error('\p{Is_Blk= SUP_Math_operators/a/}');
-    Error('\P{Is_Blk= SUP_Math_operators/a/}');
+    Expect(1, 11007, '\p{Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(0, 11007, '\p{^Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(0, 11007, '\P{Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(1, 11007, '\P{^Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(0, 11008, '\p{Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(1, 11008, '\p{^Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(1, 11008, '\P{Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Expect(0, 11008, '\P{^Is_Block:		_Supplemental_Mathematical_OPERATORS}', "");
+    Error('\p{Is_Blk=_ SUP_Math_Operators/a/}');
+    Error('\P{Is_Blk=_ SUP_Math_Operators/a/}');
     Expect(1, 11007, '\p{Is_Blk=supmathoperators}', "");
     Expect(0, 11007, '\p{^Is_Blk=supmathoperators}', "");
     Expect(0, 11007, '\P{Is_Blk=supmathoperators}', "");
@@ -25278,60 +25846,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11008, '\p{^Is_Blk=supmathoperators}', "");
     Expect(1, 11008, '\P{Is_Blk=supmathoperators}', "");
     Expect(0, 11008, '\P{^Is_Blk=supmathoperators}', "");
-    Expect(1, 11007, '\p{Is_Blk=-	Sup_math_Operators}', "");
-    Expect(0, 11007, '\p{^Is_Blk=-	Sup_math_Operators}', "");
-    Expect(0, 11007, '\P{Is_Blk=-	Sup_math_Operators}', "");
-    Expect(1, 11007, '\P{^Is_Blk=-	Sup_math_Operators}', "");
-    Expect(0, 11008, '\p{Is_Blk=-	Sup_math_Operators}', "");
-    Expect(1, 11008, '\p{^Is_Blk=-	Sup_math_Operators}', "");
-    Expect(1, 11008, '\P{Is_Blk=-	Sup_math_Operators}', "");
-    Expect(0, 11008, '\P{^Is_Blk=-	Sup_math_Operators}', "");
-    Error('\p{Block=/a/		Supplementary_private_USE_area_a}');
-    Error('\P{Block=/a/		Supplementary_private_USE_area_a}');
+    Expect(1, 11007, '\p{Is_Blk=__sup_Math_Operators}', "");
+    Expect(0, 11007, '\p{^Is_Blk=__sup_Math_Operators}', "");
+    Expect(0, 11007, '\P{Is_Blk=__sup_Math_Operators}', "");
+    Expect(1, 11007, '\P{^Is_Blk=__sup_Math_Operators}', "");
+    Expect(0, 11008, '\p{Is_Blk=__sup_Math_Operators}', "");
+    Expect(1, 11008, '\p{^Is_Blk=__sup_Math_Operators}', "");
+    Expect(1, 11008, '\P{Is_Blk=__sup_Math_Operators}', "");
+    Expect(0, 11008, '\P{^Is_Blk=__sup_Math_Operators}', "");
+    Error('\p{Block=_-Supplementary_Private_Use_Area_a:=}');
+    Error('\P{Block=_-Supplementary_Private_Use_Area_a:=}');
     Expect(1, 983040, '\p{Block=:\ASupplementary_Private_Use_Area_A\z:}', "");;
     Expect(0, 1048576, '\p{Block=:\ASupplementary_Private_Use_Area_A\z:}', "");;
-    Expect(1, 983040, '\p{Block: supplementaryprivateuseareaa}', "");
-    Expect(0, 983040, '\p{^Block: supplementaryprivateuseareaa}', "");
-    Expect(0, 983040, '\P{Block: supplementaryprivateuseareaa}', "");
-    Expect(1, 983040, '\P{^Block: supplementaryprivateuseareaa}', "");
-    Expect(0, 1048576, '\p{Block: supplementaryprivateuseareaa}', "");
-    Expect(1, 1048576, '\p{^Block: supplementaryprivateuseareaa}', "");
-    Expect(1, 1048576, '\P{Block: supplementaryprivateuseareaa}', "");
-    Expect(0, 1048576, '\P{^Block: supplementaryprivateuseareaa}', "");
+    Expect(1, 983040, '\p{Block=supplementaryprivateuseareaa}', "");
+    Expect(0, 983040, '\p{^Block=supplementaryprivateuseareaa}', "");
+    Expect(0, 983040, '\P{Block=supplementaryprivateuseareaa}', "");
+    Expect(1, 983040, '\P{^Block=supplementaryprivateuseareaa}', "");
+    Expect(0, 1048576, '\p{Block=supplementaryprivateuseareaa}', "");
+    Expect(1, 1048576, '\p{^Block=supplementaryprivateuseareaa}', "");
+    Expect(1, 1048576, '\P{Block=supplementaryprivateuseareaa}', "");
+    Expect(0, 1048576, '\P{^Block=supplementaryprivateuseareaa}', "");
     Expect(1, 983040, '\p{Block=:\Asupplementaryprivateuseareaa\z:}', "");;
     Expect(0, 1048576, '\p{Block=:\Asupplementaryprivateuseareaa\z:}', "");;
-    Expect(1, 983040, '\p{Block=__supplementary_private_Use_Area_A}', "");
-    Expect(0, 983040, '\p{^Block=__supplementary_private_Use_Area_A}', "");
-    Expect(0, 983040, '\P{Block=__supplementary_private_Use_Area_A}', "");
-    Expect(1, 983040, '\P{^Block=__supplementary_private_Use_Area_A}', "");
-    Expect(0, 1048576, '\p{Block=__supplementary_private_Use_Area_A}', "");
-    Expect(1, 1048576, '\p{^Block=__supplementary_private_Use_Area_A}', "");
-    Expect(1, 1048576, '\P{Block=__supplementary_private_Use_Area_A}', "");
-    Expect(0, 1048576, '\P{^Block=__supplementary_private_Use_Area_A}', "");
-    Error('\p{Blk=_/a/Sup_pua_A}');
-    Error('\P{Blk=_/a/Sup_pua_A}');
+    Expect(1, 983040, '\p{Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(0, 983040, '\p{^Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(0, 983040, '\P{Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(1, 983040, '\P{^Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(0, 1048576, '\p{Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(1, 1048576, '\p{^Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(1, 1048576, '\P{Block=-Supplementary_private_USE_AREA_A}', "");
+    Expect(0, 1048576, '\P{^Block=-Supplementary_private_USE_AREA_A}', "");
+    Error('\p{Blk=/a/	_Sup_PUA_A}');
+    Error('\P{Blk=/a/	_Sup_PUA_A}');
     Expect(1, 983040, '\p{Blk=:\ASup_PUA_A\z:}', "");;
     Expect(0, 1048576, '\p{Blk=:\ASup_PUA_A\z:}', "");;
-    Expect(1, 983040, '\p{Blk: suppuaa}', "");
-    Expect(0, 983040, '\p{^Blk: suppuaa}', "");
-    Expect(0, 983040, '\P{Blk: suppuaa}', "");
-    Expect(1, 983040, '\P{^Blk: suppuaa}', "");
-    Expect(0, 1048576, '\p{Blk: suppuaa}', "");
-    Expect(1, 1048576, '\p{^Blk: suppuaa}', "");
-    Expect(1, 1048576, '\P{Blk: suppuaa}', "");
-    Expect(0, 1048576, '\P{^Blk: suppuaa}', "");
+    Expect(1, 983040, '\p{Blk:	suppuaa}', "");
+    Expect(0, 983040, '\p{^Blk:	suppuaa}', "");
+    Expect(0, 983040, '\P{Blk:	suppuaa}', "");
+    Expect(1, 983040, '\P{^Blk:	suppuaa}', "");
+    Expect(0, 1048576, '\p{Blk:	suppuaa}', "");
+    Expect(1, 1048576, '\p{^Blk:	suppuaa}', "");
+    Expect(1, 1048576, '\P{Blk:	suppuaa}', "");
+    Expect(0, 1048576, '\P{^Blk:	suppuaa}', "");
     Expect(1, 983040, '\p{Blk=:\Asuppuaa\z:}', "");;
     Expect(0, 1048576, '\p{Blk=:\Asuppuaa\z:}', "");;
-    Expect(1, 983040, '\p{Blk= sup_PUA_A}', "");
-    Expect(0, 983040, '\p{^Blk= sup_PUA_A}', "");
-    Expect(0, 983040, '\P{Blk= sup_PUA_A}', "");
-    Expect(1, 983040, '\P{^Blk= sup_PUA_A}', "");
-    Expect(0, 1048576, '\p{Blk= sup_PUA_A}', "");
-    Expect(1, 1048576, '\p{^Blk= sup_PUA_A}', "");
-    Expect(1, 1048576, '\P{Blk= sup_PUA_A}', "");
-    Expect(0, 1048576, '\P{^Blk= sup_PUA_A}', "");
-    Error('\p{Is_Block=_Supplementary_Private_Use_area_a/a/}');
-    Error('\P{Is_Block=_Supplementary_Private_Use_area_a/a/}');
+    Expect(1, 983040, '\p{Blk=-Sup_pua_A}', "");
+    Expect(0, 983040, '\p{^Blk=-Sup_pua_A}', "");
+    Expect(0, 983040, '\P{Blk=-Sup_pua_A}', "");
+    Expect(1, 983040, '\P{^Blk=-Sup_pua_A}', "");
+    Expect(0, 1048576, '\p{Blk=-Sup_pua_A}', "");
+    Expect(1, 1048576, '\p{^Blk=-Sup_pua_A}', "");
+    Expect(1, 1048576, '\P{Blk=-Sup_pua_A}', "");
+    Expect(0, 1048576, '\P{^Blk=-Sup_pua_A}', "");
+    Error('\p{Is_Block= /a/SUPPLEMENTARY_private_Use_Area_a}');
+    Error('\P{Is_Block= /a/SUPPLEMENTARY_private_Use_Area_a}');
     Expect(1, 983040, '\p{Is_Block=supplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\p{^Is_Block=supplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\P{Is_Block=supplementaryprivateuseareaa}', "");
@@ -25340,16 +25908,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1048576, '\p{^Is_Block=supplementaryprivateuseareaa}', "");
     Expect(1, 1048576, '\P{Is_Block=supplementaryprivateuseareaa}', "");
     Expect(0, 1048576, '\P{^Is_Block=supplementaryprivateuseareaa}', "");
-    Expect(1, 983040, '\p{Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(0, 983040, '\p{^Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(0, 983040, '\P{Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(1, 983040, '\P{^Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(0, 1048576, '\p{Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(1, 1048576, '\p{^Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(1, 1048576, '\P{Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Expect(0, 1048576, '\P{^Is_Block: 		supplementary_Private_USE_area_A}', "");
-    Error('\p{Is_Blk=_/a/Sup_PUA_A}');
-    Error('\P{Is_Blk=_/a/Sup_PUA_A}');
+    Expect(1, 983040, '\p{Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(0, 983040, '\p{^Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(0, 983040, '\P{Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(1, 983040, '\P{^Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(0, 1048576, '\p{Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(1, 1048576, '\p{^Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(1, 1048576, '\P{Is_Block= supplementary_private_Use_Area_a}', "");
+    Expect(0, 1048576, '\P{^Is_Block= supplementary_private_Use_Area_a}', "");
+    Error('\p{Is_Blk= :=Sup_PUA_A}');
+    Error('\P{Is_Blk= :=Sup_PUA_A}');
     Expect(1, 983040, '\p{Is_Blk=suppuaa}', "");
     Expect(0, 983040, '\p{^Is_Blk=suppuaa}', "");
     Expect(0, 983040, '\P{Is_Blk=suppuaa}', "");
@@ -25358,16 +25926,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1048576, '\p{^Is_Blk=suppuaa}', "");
     Expect(1, 1048576, '\P{Is_Blk=suppuaa}', "");
     Expect(0, 1048576, '\P{^Is_Blk=suppuaa}', "");
-    Expect(1, 983040, '\p{Is_Blk=		sup_PUA_A}', "");
-    Expect(0, 983040, '\p{^Is_Blk=		sup_PUA_A}', "");
-    Expect(0, 983040, '\P{Is_Blk=		sup_PUA_A}', "");
-    Expect(1, 983040, '\P{^Is_Blk=		sup_PUA_A}', "");
-    Expect(0, 1048576, '\p{Is_Blk=		sup_PUA_A}', "");
-    Expect(1, 1048576, '\p{^Is_Blk=		sup_PUA_A}', "");
-    Expect(1, 1048576, '\P{Is_Blk=		sup_PUA_A}', "");
-    Expect(0, 1048576, '\P{^Is_Blk=		sup_PUA_A}', "");
-    Error('\p{Block=_SUPPLEMENTARY_PRIVATE_Use_Area_B/a/}');
-    Error('\P{Block=_SUPPLEMENTARY_PRIVATE_Use_Area_B/a/}');
+    Expect(1, 983040, '\p{Is_Blk: _sup_pua_A}', "");
+    Expect(0, 983040, '\p{^Is_Blk: _sup_pua_A}', "");
+    Expect(0, 983040, '\P{Is_Blk: _sup_pua_A}', "");
+    Expect(1, 983040, '\P{^Is_Blk: _sup_pua_A}', "");
+    Expect(0, 1048576, '\p{Is_Blk: _sup_pua_A}', "");
+    Expect(1, 1048576, '\p{^Is_Blk: _sup_pua_A}', "");
+    Expect(1, 1048576, '\P{Is_Blk: _sup_pua_A}', "");
+    Expect(0, 1048576, '\P{^Is_Blk: _sup_pua_A}', "");
+    Error('\p{Block= /a/Supplementary_Private_Use_area_b}');
+    Error('\P{Block= /a/Supplementary_Private_Use_area_b}');
     Expect(1, 1048576, '\p{Block=:\ASupplementary_Private_Use_Area_B\z:}', "");;
     Expect(0, 1, '\p{Block=:\ASupplementary_Private_Use_Area_B\z:}', "");;
     Expect(1, 1048576, '\p{Block=supplementaryprivateuseareab}', "");
@@ -25380,38 +25948,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1, '\P{^Block=supplementaryprivateuseareab}', "");
     Expect(1, 1048576, '\p{Block=:\Asupplementaryprivateuseareab\z:}', "");;
     Expect(0, 1, '\p{Block=:\Asupplementaryprivateuseareab\z:}', "");;
-    Expect(1, 1048576, '\p{Block=_supplementary_Private_use_area_B}', "");
-    Expect(0, 1048576, '\p{^Block=_supplementary_Private_use_area_B}', "");
-    Expect(0, 1048576, '\P{Block=_supplementary_Private_use_area_B}', "");
-    Expect(1, 1048576, '\P{^Block=_supplementary_Private_use_area_B}', "");
-    Expect(0, 1, '\p{Block=_supplementary_Private_use_area_B}', "");
-    Expect(1, 1, '\p{^Block=_supplementary_Private_use_area_B}', "");
-    Expect(1, 1, '\P{Block=_supplementary_Private_use_area_B}', "");
-    Expect(0, 1, '\P{^Block=_supplementary_Private_use_area_B}', "");
-    Error('\p{Blk=/a/_SUP_PUA_B}');
-    Error('\P{Blk=/a/_SUP_PUA_B}');
+    Expect(1, 1048576, '\p{Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(0, 1048576, '\p{^Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(0, 1048576, '\P{Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(1, 1048576, '\P{^Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(0, 1, '\p{Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(1, 1, '\p{^Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(1, 1, '\P{Block=-	Supplementary_Private_Use_Area_B}', "");
+    Expect(0, 1, '\P{^Block=-	Supplementary_Private_Use_Area_B}', "");
+    Error('\p{Blk=-Sup_PUA_b:=}');
+    Error('\P{Blk=-Sup_PUA_b:=}');
     Expect(1, 1048576, '\p{Blk=:\ASup_PUA_B\z:}', "");;
     Expect(0, 1, '\p{Blk=:\ASup_PUA_B\z:}', "");;
-    Expect(1, 1048576, '\p{Blk=suppuab}', "");
-    Expect(0, 1048576, '\p{^Blk=suppuab}', "");
-    Expect(0, 1048576, '\P{Blk=suppuab}', "");
-    Expect(1, 1048576, '\P{^Blk=suppuab}', "");
-    Expect(0, 1, '\p{Blk=suppuab}', "");
-    Expect(1, 1, '\p{^Blk=suppuab}', "");
-    Expect(1, 1, '\P{Blk=suppuab}', "");
-    Expect(0, 1, '\P{^Blk=suppuab}', "");
+    Expect(1, 1048576, '\p{Blk:	suppuab}', "");
+    Expect(0, 1048576, '\p{^Blk:	suppuab}', "");
+    Expect(0, 1048576, '\P{Blk:	suppuab}', "");
+    Expect(1, 1048576, '\P{^Blk:	suppuab}', "");
+    Expect(0, 1, '\p{Blk:	suppuab}', "");
+    Expect(1, 1, '\p{^Blk:	suppuab}', "");
+    Expect(1, 1, '\P{Blk:	suppuab}', "");
+    Expect(0, 1, '\P{^Blk:	suppuab}', "");
     Expect(1, 1048576, '\p{Blk=:\Asuppuab\z:}', "");;
     Expect(0, 1, '\p{Blk=:\Asuppuab\z:}', "");;
-    Expect(1, 1048576, '\p{Blk=SUP_pua_b}', "");
-    Expect(0, 1048576, '\p{^Blk=SUP_pua_b}', "");
-    Expect(0, 1048576, '\P{Blk=SUP_pua_b}', "");
-    Expect(1, 1048576, '\P{^Blk=SUP_pua_b}', "");
-    Expect(0, 1, '\p{Blk=SUP_pua_b}', "");
-    Expect(1, 1, '\p{^Blk=SUP_pua_b}', "");
-    Expect(1, 1, '\P{Blk=SUP_pua_b}', "");
-    Expect(0, 1, '\P{^Blk=SUP_pua_b}', "");
-    Error('\p{Is_Block=	/a/Supplementary_Private_Use_area_B}');
-    Error('\P{Is_Block=	/a/Supplementary_Private_Use_area_B}');
+    Expect(1, 1048576, '\p{Blk=	-sup_pua_B}', "");
+    Expect(0, 1048576, '\p{^Blk=	-sup_pua_B}', "");
+    Expect(0, 1048576, '\P{Blk=	-sup_pua_B}', "");
+    Expect(1, 1048576, '\P{^Blk=	-sup_pua_B}', "");
+    Expect(0, 1, '\p{Blk=	-sup_pua_B}', "");
+    Expect(1, 1, '\p{^Blk=	-sup_pua_B}', "");
+    Expect(1, 1, '\P{Blk=	-sup_pua_B}', "");
+    Expect(0, 1, '\P{^Blk=	-sup_pua_B}', "");
+    Error('\p{Is_Block= /a/Supplementary_PRIVATE_Use_AREA_B}');
+    Error('\P{Is_Block= /a/Supplementary_PRIVATE_Use_AREA_B}');
     Expect(1, 1048576, '\p{Is_Block=supplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\p{^Is_Block=supplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\P{Is_Block=supplementaryprivateuseareab}', "");
@@ -25420,16 +25988,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1, '\p{^Is_Block=supplementaryprivateuseareab}', "");
     Expect(1, 1, '\P{Is_Block=supplementaryprivateuseareab}', "");
     Expect(0, 1, '\P{^Is_Block=supplementaryprivateuseareab}', "");
-    Expect(1, 1048576, '\p{Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(0, 1048576, '\p{^Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(0, 1048576, '\P{Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(1, 1048576, '\P{^Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(0, 1, '\p{Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(1, 1, '\p{^Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(1, 1, '\P{Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Expect(0, 1, '\P{^Is_Block= 	supplementary_Private_Use_AREA_B}', "");
-    Error('\p{Is_Blk: :=Sup_PUA_b}');
-    Error('\P{Is_Blk: :=Sup_PUA_b}');
+    Expect(1, 1048576, '\p{Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(0, 1048576, '\p{^Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(0, 1048576, '\P{Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(1, 1048576, '\P{^Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(0, 1, '\p{Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(1, 1, '\p{^Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(1, 1, '\P{Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Expect(0, 1, '\P{^Is_Block=		supplementary_Private_Use_Area_b}', "");
+    Error('\p{Is_Blk=/a/-	sup_PUA_B}');
+    Error('\P{Is_Blk=/a/-	sup_PUA_B}');
     Expect(1, 1048576, '\p{Is_Blk=suppuab}', "");
     Expect(0, 1048576, '\p{^Is_Blk=suppuab}', "");
     Expect(0, 1048576, '\P{Is_Blk=suppuab}', "");
@@ -25438,16 +26006,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1, '\p{^Is_Blk=suppuab}', "");
     Expect(1, 1, '\P{Is_Blk=suppuab}', "");
     Expect(0, 1, '\P{^Is_Blk=suppuab}', "");
-    Expect(1, 1048576, '\p{Is_Blk=_	SUP_PUA_B}', "");
-    Expect(0, 1048576, '\p{^Is_Blk=_	SUP_PUA_B}', "");
-    Expect(0, 1048576, '\P{Is_Blk=_	SUP_PUA_B}', "");
-    Expect(1, 1048576, '\P{^Is_Blk=_	SUP_PUA_B}', "");
-    Expect(0, 1, '\p{Is_Blk=_	SUP_PUA_B}', "");
-    Expect(1, 1, '\p{^Is_Blk=_	SUP_PUA_B}', "");
-    Expect(1, 1, '\P{Is_Blk=_	SUP_PUA_B}', "");
-    Expect(0, 1, '\P{^Is_Blk=_	SUP_PUA_B}', "");
-    Error('\p{Block=:=-supplemental_Punctuation}');
-    Error('\P{Block=:=-supplemental_Punctuation}');
+    Expect(1, 1048576, '\p{Is_Blk=-Sup_PUA_B}', "");
+    Expect(0, 1048576, '\p{^Is_Blk=-Sup_PUA_B}', "");
+    Expect(0, 1048576, '\P{Is_Blk=-Sup_PUA_B}', "");
+    Expect(1, 1048576, '\P{^Is_Blk=-Sup_PUA_B}', "");
+    Expect(0, 1, '\p{Is_Blk=-Sup_PUA_B}', "");
+    Expect(1, 1, '\p{^Is_Blk=-Sup_PUA_B}', "");
+    Expect(1, 1, '\P{Is_Blk=-Sup_PUA_B}', "");
+    Expect(0, 1, '\P{^Is_Blk=-Sup_PUA_B}', "");
+    Error('\p{Block= Supplemental_PUNCTUATION:=}');
+    Error('\P{Block= Supplemental_PUNCTUATION:=}');
     Expect(1, 11903, '\p{Block=:\ASupplemental_Punctuation\z:}', "");;
     Expect(0, 11904, '\p{Block=:\ASupplemental_Punctuation\z:}', "");;
     Expect(1, 11903, '\p{Block=supplementalpunctuation}', "");
@@ -25460,38 +26028,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11904, '\P{^Block=supplementalpunctuation}', "");
     Expect(1, 11903, '\p{Block=:\Asupplementalpunctuation\z:}', "");;
     Expect(0, 11904, '\p{Block=:\Asupplementalpunctuation\z:}', "");;
-    Expect(1, 11903, '\p{Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(0, 11903, '\p{^Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(0, 11903, '\P{Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(1, 11903, '\P{^Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(0, 11904, '\p{Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(1, 11904, '\p{^Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(1, 11904, '\P{Block=	 SUPPLEMENTAL_punctuation}', "");
-    Expect(0, 11904, '\P{^Block=	 SUPPLEMENTAL_punctuation}', "");
-    Error('\p{Blk=/a/-_SUP_punctuation}');
-    Error('\P{Blk=/a/-_SUP_punctuation}');
+    Expect(1, 11903, '\p{Block: -supplemental_Punctuation}', "");
+    Expect(0, 11903, '\p{^Block: -supplemental_Punctuation}', "");
+    Expect(0, 11903, '\P{Block: -supplemental_Punctuation}', "");
+    Expect(1, 11903, '\P{^Block: -supplemental_Punctuation}', "");
+    Expect(0, 11904, '\p{Block: -supplemental_Punctuation}', "");
+    Expect(1, 11904, '\p{^Block: -supplemental_Punctuation}', "");
+    Expect(1, 11904, '\P{Block: -supplemental_Punctuation}', "");
+    Expect(0, 11904, '\P{^Block: -supplemental_Punctuation}', "");
+    Error('\p{Blk=/a/SUP_punctuation}');
+    Error('\P{Blk=/a/SUP_punctuation}');
     Expect(1, 11903, '\p{Blk=:\ASup_Punctuation\z:}', "");;
     Expect(0, 11904, '\p{Blk=:\ASup_Punctuation\z:}', "");;
-    Expect(1, 11903, '\p{Blk=suppunctuation}', "");
-    Expect(0, 11903, '\p{^Blk=suppunctuation}', "");
-    Expect(0, 11903, '\P{Blk=suppunctuation}', "");
-    Expect(1, 11903, '\P{^Blk=suppunctuation}', "");
-    Expect(0, 11904, '\p{Blk=suppunctuation}', "");
-    Expect(1, 11904, '\p{^Blk=suppunctuation}', "");
-    Expect(1, 11904, '\P{Blk=suppunctuation}', "");
-    Expect(0, 11904, '\P{^Blk=suppunctuation}', "");
+    Expect(1, 11903, '\p{Blk:   suppunctuation}', "");
+    Expect(0, 11903, '\p{^Blk:   suppunctuation}', "");
+    Expect(0, 11903, '\P{Blk:   suppunctuation}', "");
+    Expect(1, 11903, '\P{^Blk:   suppunctuation}', "");
+    Expect(0, 11904, '\p{Blk:   suppunctuation}', "");
+    Expect(1, 11904, '\p{^Blk:   suppunctuation}', "");
+    Expect(1, 11904, '\P{Blk:   suppunctuation}', "");
+    Expect(0, 11904, '\P{^Blk:   suppunctuation}', "");
     Expect(1, 11903, '\p{Blk=:\Asuppunctuation\z:}', "");;
     Expect(0, 11904, '\p{Blk=:\Asuppunctuation\z:}', "");;
-    Expect(1, 11903, '\p{Blk= Sup_punctuation}', "");
-    Expect(0, 11903, '\p{^Blk= Sup_punctuation}', "");
-    Expect(0, 11903, '\P{Blk= Sup_punctuation}', "");
-    Expect(1, 11903, '\P{^Blk= Sup_punctuation}', "");
-    Expect(0, 11904, '\p{Blk= Sup_punctuation}', "");
-    Expect(1, 11904, '\p{^Blk= Sup_punctuation}', "");
-    Expect(1, 11904, '\P{Blk= Sup_punctuation}', "");
-    Expect(0, 11904, '\P{^Blk= Sup_punctuation}', "");
-    Error('\p{Is_Block:  /a/SUPPLEMENTAL_Punctuation}');
-    Error('\P{Is_Block:  /a/SUPPLEMENTAL_Punctuation}');
+    Expect(1, 11903, '\p{Blk=-Sup_PUNCTUATION}', "");
+    Expect(0, 11903, '\p{^Blk=-Sup_PUNCTUATION}', "");
+    Expect(0, 11903, '\P{Blk=-Sup_PUNCTUATION}', "");
+    Expect(1, 11903, '\P{^Blk=-Sup_PUNCTUATION}', "");
+    Expect(0, 11904, '\p{Blk=-Sup_PUNCTUATION}', "");
+    Expect(1, 11904, '\p{^Blk=-Sup_PUNCTUATION}', "");
+    Expect(1, 11904, '\P{Blk=-Sup_PUNCTUATION}', "");
+    Expect(0, 11904, '\P{^Blk=-Sup_PUNCTUATION}', "");
+    Error('\p{Is_Block=/a/ supplemental_PUNCTUATION}');
+    Error('\P{Is_Block=/a/ supplemental_PUNCTUATION}');
     Expect(1, 11903, '\p{Is_Block=supplementalpunctuation}', "");
     Expect(0, 11903, '\p{^Is_Block=supplementalpunctuation}', "");
     Expect(0, 11903, '\P{Is_Block=supplementalpunctuation}', "");
@@ -25500,16 +26068,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11904, '\p{^Is_Block=supplementalpunctuation}', "");
     Expect(1, 11904, '\P{Is_Block=supplementalpunctuation}', "");
     Expect(0, 11904, '\P{^Is_Block=supplementalpunctuation}', "");
-    Expect(1, 11903, '\p{Is_Block=-supplemental_punctuation}', "");
-    Expect(0, 11903, '\p{^Is_Block=-supplemental_punctuation}', "");
-    Expect(0, 11903, '\P{Is_Block=-supplemental_punctuation}', "");
-    Expect(1, 11903, '\P{^Is_Block=-supplemental_punctuation}', "");
-    Expect(0, 11904, '\p{Is_Block=-supplemental_punctuation}', "");
-    Expect(1, 11904, '\p{^Is_Block=-supplemental_punctuation}', "");
-    Expect(1, 11904, '\P{Is_Block=-supplemental_punctuation}', "");
-    Expect(0, 11904, '\P{^Is_Block=-supplemental_punctuation}', "");
-    Error('\p{Is_Blk=:=	_Sup_punctuation}');
-    Error('\P{Is_Blk=:=	_Sup_punctuation}');
+    Expect(1, 11903, '\p{Is_Block= Supplemental_Punctuation}', "");
+    Expect(0, 11903, '\p{^Is_Block= Supplemental_Punctuation}', "");
+    Expect(0, 11903, '\P{Is_Block= Supplemental_Punctuation}', "");
+    Expect(1, 11903, '\P{^Is_Block= Supplemental_Punctuation}', "");
+    Expect(0, 11904, '\p{Is_Block= Supplemental_Punctuation}', "");
+    Expect(1, 11904, '\p{^Is_Block= Supplemental_Punctuation}', "");
+    Expect(1, 11904, '\P{Is_Block= Supplemental_Punctuation}', "");
+    Expect(0, 11904, '\P{^Is_Block= Supplemental_Punctuation}', "");
+    Error('\p{Is_Blk=		sup_punctuation/a/}');
+    Error('\P{Is_Blk=		sup_punctuation/a/}');
     Expect(1, 11903, '\p{Is_Blk=suppunctuation}', "");
     Expect(0, 11903, '\p{^Is_Blk=suppunctuation}', "");
     Expect(0, 11903, '\P{Is_Blk=suppunctuation}', "");
@@ -25518,16 +26086,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11904, '\p{^Is_Blk=suppunctuation}', "");
     Expect(1, 11904, '\P{Is_Blk=suppunctuation}', "");
     Expect(0, 11904, '\P{^Is_Blk=suppunctuation}', "");
-    Expect(1, 11903, '\p{Is_Blk: --SUP_Punctuation}', "");
-    Expect(0, 11903, '\p{^Is_Blk: --SUP_Punctuation}', "");
-    Expect(0, 11903, '\P{Is_Blk: --SUP_Punctuation}', "");
-    Expect(1, 11903, '\P{^Is_Blk: --SUP_Punctuation}', "");
-    Expect(0, 11904, '\p{Is_Blk: --SUP_Punctuation}', "");
-    Expect(1, 11904, '\p{^Is_Blk: --SUP_Punctuation}', "");
-    Expect(1, 11904, '\P{Is_Blk: --SUP_Punctuation}', "");
-    Expect(0, 11904, '\P{^Is_Blk: --SUP_Punctuation}', "");
-    Error('\p{Block=:= _Supplemental_Symbols_AND_PICTOGRAPHS}');
-    Error('\P{Block=:= _Supplemental_Symbols_AND_PICTOGRAPHS}');
+    Expect(1, 11903, '\p{Is_Blk: -	Sup_punctuation}', "");
+    Expect(0, 11903, '\p{^Is_Blk: -	Sup_punctuation}', "");
+    Expect(0, 11903, '\P{Is_Blk: -	Sup_punctuation}', "");
+    Expect(1, 11903, '\P{^Is_Blk: -	Sup_punctuation}', "");
+    Expect(0, 11904, '\p{Is_Blk: -	Sup_punctuation}', "");
+    Expect(1, 11904, '\p{^Is_Blk: -	Sup_punctuation}', "");
+    Expect(1, 11904, '\P{Is_Blk: -	Sup_punctuation}', "");
+    Expect(0, 11904, '\P{^Is_Blk: -	Sup_punctuation}', "");
+    Error('\p{Block=_:=SUPPLEMENTAL_symbols_And_pictographs}');
+    Error('\P{Block=_:=SUPPLEMENTAL_symbols_And_pictographs}');
     Expect(1, 129535, '\p{Block=:\ASupplemental_Symbols_And_Pictographs\z:}', "");;
     Expect(0, 129536, '\p{Block=:\ASupplemental_Symbols_And_Pictographs\z:}', "");;
     Expect(1, 129535, '\p{Block=supplementalsymbolsandpictographs}', "");
@@ -25540,16 +26108,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129536, '\P{^Block=supplementalsymbolsandpictographs}', "");
     Expect(1, 129535, '\p{Block=:\Asupplementalsymbolsandpictographs\z:}', "");;
     Expect(0, 129536, '\p{Block=:\Asupplementalsymbolsandpictographs\z:}', "");;
-    Expect(1, 129535, '\p{Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\p{^Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\P{Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(1, 129535, '\P{^Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\p{Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\p{^Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\P{Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\P{^Block=- supplemental_SYMBOLS_and_PICTOGRAPHS}', "");
-    Error('\p{Blk=/a/SUP_SYMBOLS_AND_pictographs}');
-    Error('\P{Blk=/a/SUP_SYMBOLS_AND_pictographs}');
+    Expect(1, 129535, '\p{Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(0, 129535, '\p{^Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(0, 129535, '\P{Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(1, 129535, '\P{^Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(0, 129536, '\p{Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(1, 129536, '\p{^Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(1, 129536, '\P{Block=	Supplemental_Symbols_and_pictographs}', "");
+    Expect(0, 129536, '\P{^Block=	Supplemental_Symbols_and_pictographs}', "");
+    Error('\p{Blk=	:=Sup_SYMBOLS_and_Pictographs}');
+    Error('\P{Blk=	:=Sup_SYMBOLS_and_Pictographs}');
     Expect(1, 129535, '\p{Blk=:\ASup_Symbols_And_Pictographs\z:}', "");;
     Expect(0, 129536, '\p{Blk=:\ASup_Symbols_And_Pictographs\z:}', "");;
     Expect(1, 129535, '\p{Blk=supsymbolsandpictographs}', "");
@@ -25562,34 +26130,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 129536, '\P{^Blk=supsymbolsandpictographs}', "");
     Expect(1, 129535, '\p{Blk=:\Asupsymbolsandpictographs\z:}', "");;
     Expect(0, 129536, '\p{Blk=:\Asupsymbolsandpictographs\z:}', "");;
-    Expect(1, 129535, '\p{Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\p{^Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\P{Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129535, '\P{^Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\p{Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\p{^Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\P{Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\P{^Blk=_Sup_Symbols_And_PICTOGRAPHS}', "");
-    Error('\p{Is_Block=/a/-Supplemental_Symbols_AND_Pictographs}');
-    Error('\P{Is_Block=/a/-Supplemental_Symbols_AND_Pictographs}');
-    Expect(1, 129535, '\p{Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(0, 129535, '\p{^Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(0, 129535, '\P{Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(1, 129535, '\P{^Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(0, 129536, '\p{Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(1, 129536, '\p{^Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(1, 129536, '\P{Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(0, 129536, '\P{^Is_Block=supplementalsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\p{^Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\P{Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129535, '\P{^Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\p{Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\p{^Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\P{Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\P{^Is_Block=-Supplemental_Symbols_And_PICTOGRAPHS}', "");
-    Error('\p{Is_Blk= sup_symbols_and_Pictographs/a/}');
-    Error('\P{Is_Blk= sup_symbols_and_Pictographs/a/}');
+    Expect(1, 129535, '\p{Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(0, 129535, '\p{^Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(0, 129535, '\P{Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(1, 129535, '\P{^Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(0, 129536, '\p{Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(1, 129536, '\p{^Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(1, 129536, '\P{Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Expect(0, 129536, '\P{^Blk=_ SUP_SYMBOLS_AND_Pictographs}', "");
+    Error('\p{Is_Block=_:=SUPPLEMENTAL_symbols_AND_pictographs}');
+    Error('\P{Is_Block=_:=SUPPLEMENTAL_symbols_AND_pictographs}');
+    Expect(1, 129535, '\p{Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(0, 129535, '\p{^Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(0, 129535, '\P{Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(1, 129535, '\P{^Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(0, 129536, '\p{Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(1, 129536, '\p{^Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(1, 129536, '\P{Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(0, 129536, '\P{^Is_Block:	supplementalsymbolsandpictographs}', "");
+    Expect(1, 129535, '\p{Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129535, '\p{^Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129535, '\P{Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(1, 129535, '\P{^Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129536, '\p{Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(1, 129536, '\p{^Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(1, 129536, '\P{Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129536, '\P{^Is_Block=--Supplemental_symbols_And_Pictographs}', "");
+    Error('\p{Is_Blk=:= sup_symbols_And_Pictographs}');
+    Error('\P{Is_Blk=:= sup_symbols_And_Pictographs}');
     Expect(1, 129535, '\p{Is_Blk=supsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^Is_Blk=supsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{Is_Blk=supsymbolsandpictographs}', "");
@@ -25598,16 +26166,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129536, '\p{^Is_Blk=supsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{Is_Blk=supsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^Is_Blk=supsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(0, 129535, '\p{^Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(0, 129535, '\P{Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(1, 129535, '\P{^Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(0, 129536, '\p{Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(1, 129536, '\p{^Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(1, 129536, '\P{Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Expect(0, 129536, '\P{^Is_Blk= -Sup_Symbols_And_Pictographs}', "");
-    Error('\p{Block=:= superscripts_AND_Subscripts}');
-    Error('\P{Block=:= superscripts_AND_Subscripts}');
+    Expect(1, 129535, '\p{Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(0, 129535, '\p{^Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(0, 129535, '\P{Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(1, 129535, '\P{^Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(0, 129536, '\p{Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(1, 129536, '\p{^Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(1, 129536, '\P{Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Expect(0, 129536, '\P{^Is_Blk=	-Sup_SYMBOLS_AND_pictographs}', "");
+    Error('\p{Block=-/a/SUPERSCRIPTS_And_subscripts}');
+    Error('\P{Block=-/a/SUPERSCRIPTS_And_subscripts}');
     Expect(1, 8351, '\p{Block=:\ASuperscripts_And_Subscripts\z:}', "");;
     Expect(0, 8352, '\p{Block=:\ASuperscripts_And_Subscripts\z:}', "");;
     Expect(1, 8351, '\p{Block=superscriptsandsubscripts}', "");
@@ -25620,16 +26188,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8352, '\P{^Block=superscriptsandsubscripts}', "");
     Expect(1, 8351, '\p{Block=:\Asuperscriptsandsubscripts\z:}', "");;
     Expect(0, 8352, '\p{Block=:\Asuperscriptsandsubscripts\z:}', "");;
-    Expect(1, 8351, '\p{Block= Superscripts_and_Subscripts}', "");
-    Expect(0, 8351, '\p{^Block= Superscripts_and_Subscripts}', "");
-    Expect(0, 8351, '\P{Block= Superscripts_and_Subscripts}', "");
-    Expect(1, 8351, '\P{^Block= Superscripts_and_Subscripts}', "");
-    Expect(0, 8352, '\p{Block= Superscripts_and_Subscripts}', "");
-    Expect(1, 8352, '\p{^Block= Superscripts_and_Subscripts}', "");
-    Expect(1, 8352, '\P{Block= Superscripts_and_Subscripts}', "");
-    Expect(0, 8352, '\P{^Block= Superscripts_and_Subscripts}', "");
-    Error('\p{Blk=:= -SUPER_And_Sub}');
-    Error('\P{Blk=:= -SUPER_And_Sub}');
+    Expect(1, 8351, '\p{Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(0, 8351, '\p{^Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(0, 8351, '\P{Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(1, 8351, '\P{^Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(0, 8352, '\p{Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(1, 8352, '\p{^Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(1, 8352, '\P{Block:   -Superscripts_AND_Subscripts}', "");
+    Expect(0, 8352, '\P{^Block:   -Superscripts_AND_Subscripts}', "");
+    Error('\p{Blk=/a/ Super_AND_sub}');
+    Error('\P{Blk=/a/ Super_AND_sub}');
     Expect(1, 8351, '\p{Blk=:\ASuper_And_Sub\z:}', "");;
     Expect(0, 8352, '\p{Blk=:\ASuper_And_Sub\z:}', "");;
     Expect(1, 8351, '\p{Blk=superandsub}', "");
@@ -25642,16 +26210,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8352, '\P{^Blk=superandsub}', "");
     Expect(1, 8351, '\p{Blk=:\Asuperandsub\z:}', "");;
     Expect(0, 8352, '\p{Blk=:\Asuperandsub\z:}', "");;
-    Expect(1, 8351, '\p{Blk:   Super_And_SUB}', "");
-    Expect(0, 8351, '\p{^Blk:   Super_And_SUB}', "");
-    Expect(0, 8351, '\P{Blk:   Super_And_SUB}', "");
-    Expect(1, 8351, '\P{^Blk:   Super_And_SUB}', "");
-    Expect(0, 8352, '\p{Blk:   Super_And_SUB}', "");
-    Expect(1, 8352, '\p{^Blk:   Super_And_SUB}', "");
-    Expect(1, 8352, '\P{Blk:   Super_And_SUB}', "");
-    Expect(0, 8352, '\P{^Blk:   Super_And_SUB}', "");
-    Error('\p{Is_Block=_/a/SUPERSCRIPTS_AND_subscripts}');
-    Error('\P{Is_Block=_/a/SUPERSCRIPTS_AND_subscripts}');
+    Expect(1, 8351, '\p{Blk= Super_and_sub}', "");
+    Expect(0, 8351, '\p{^Blk= Super_and_sub}', "");
+    Expect(0, 8351, '\P{Blk= Super_and_sub}', "");
+    Expect(1, 8351, '\P{^Blk= Super_and_sub}', "");
+    Expect(0, 8352, '\p{Blk= Super_and_sub}', "");
+    Expect(1, 8352, '\p{^Blk= Super_and_sub}', "");
+    Expect(1, 8352, '\P{Blk= Super_and_sub}', "");
+    Expect(0, 8352, '\P{^Blk= Super_and_sub}', "");
+    Error('\p{Is_Block=-:=SUPERSCRIPTS_and_Subscripts}');
+    Error('\P{Is_Block=-:=SUPERSCRIPTS_and_Subscripts}');
     Expect(1, 8351, '\p{Is_Block=superscriptsandsubscripts}', "");
     Expect(0, 8351, '\p{^Is_Block=superscriptsandsubscripts}', "");
     Expect(0, 8351, '\P{Is_Block=superscriptsandsubscripts}', "");
@@ -25660,16 +26228,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8352, '\p{^Is_Block=superscriptsandsubscripts}', "");
     Expect(1, 8352, '\P{Is_Block=superscriptsandsubscripts}', "");
     Expect(0, 8352, '\P{^Is_Block=superscriptsandsubscripts}', "");
-    Expect(1, 8351, '\p{Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(0, 8351, '\p{^Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(0, 8351, '\P{Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(1, 8351, '\P{^Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(0, 8352, '\p{Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(1, 8352, '\p{^Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(1, 8352, '\P{Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Expect(0, 8352, '\P{^Is_Block= -SUPERSCRIPTS_And_subscripts}', "");
-    Error('\p{Is_Blk=_Super_And_SUB:=}');
-    Error('\P{Is_Blk=_Super_And_SUB:=}');
+    Expect(1, 8351, '\p{Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(0, 8351, '\p{^Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(0, 8351, '\P{Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(1, 8351, '\P{^Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(0, 8352, '\p{Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(1, 8352, '\p{^Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(1, 8352, '\P{Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Expect(0, 8352, '\P{^Is_Block=	 Superscripts_AND_Subscripts}', "");
+    Error('\p{Is_Blk:		Super_And_SUB:=}');
+    Error('\P{Is_Blk:		Super_And_SUB:=}');
     Expect(1, 8351, '\p{Is_Blk=superandsub}', "");
     Expect(0, 8351, '\p{^Is_Blk=superandsub}', "");
     Expect(0, 8351, '\P{Is_Blk=superandsub}', "");
@@ -25678,16 +26246,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8352, '\p{^Is_Blk=superandsub}', "");
     Expect(1, 8352, '\P{Is_Blk=superandsub}', "");
     Expect(0, 8352, '\P{^Is_Blk=superandsub}', "");
-    Expect(1, 8351, '\p{Is_Blk=	-SUPER_And_sub}', "");
-    Expect(0, 8351, '\p{^Is_Blk=	-SUPER_And_sub}', "");
-    Expect(0, 8351, '\P{Is_Blk=	-SUPER_And_sub}', "");
-    Expect(1, 8351, '\P{^Is_Blk=	-SUPER_And_sub}', "");
-    Expect(0, 8352, '\p{Is_Blk=	-SUPER_And_sub}', "");
-    Expect(1, 8352, '\p{^Is_Blk=	-SUPER_And_sub}', "");
-    Expect(1, 8352, '\P{Is_Blk=	-SUPER_And_sub}', "");
-    Expect(0, 8352, '\P{^Is_Blk=	-SUPER_And_sub}', "");
-    Error('\p{Block= :=SUTTON_SIGNWRITING}');
-    Error('\P{Block= :=SUTTON_SIGNWRITING}');
+    Expect(1, 8351, '\p{Is_Blk= Super_And_SUB}', "");
+    Expect(0, 8351, '\p{^Is_Blk= Super_And_SUB}', "");
+    Expect(0, 8351, '\P{Is_Blk= Super_And_SUB}', "");
+    Expect(1, 8351, '\P{^Is_Blk= Super_And_SUB}', "");
+    Expect(0, 8352, '\p{Is_Blk= Super_And_SUB}', "");
+    Expect(1, 8352, '\p{^Is_Blk= Super_And_SUB}', "");
+    Expect(1, 8352, '\P{Is_Blk= Super_And_SUB}', "");
+    Expect(0, 8352, '\P{^Is_Blk= Super_And_SUB}', "");
+    Error('\p{Block= _Sutton_SignWriting/a/}');
+    Error('\P{Block= _Sutton_SignWriting/a/}');
     Expect(1, 121519, '\p{Block=:\ASutton_SignWriting\z:}', "");;
     Expect(0, 121520, '\p{Block=:\ASutton_SignWriting\z:}', "");;
     Expect(1, 121519, '\p{Block=suttonsignwriting}', "");
@@ -25700,56 +26268,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 121520, '\P{^Block=suttonsignwriting}', "");
     Expect(1, 121519, '\p{Block=:\Asuttonsignwriting\z:}', "");;
     Expect(0, 121520, '\p{Block=:\Asuttonsignwriting\z:}', "");;
-    Expect(1, 121519, '\p{Block=		SUTTON_signwriting}', "");
-    Expect(0, 121519, '\p{^Block=		SUTTON_signwriting}', "");
-    Expect(0, 121519, '\P{Block=		SUTTON_signwriting}', "");
-    Expect(1, 121519, '\P{^Block=		SUTTON_signwriting}', "");
-    Expect(0, 121520, '\p{Block=		SUTTON_signwriting}', "");
-    Expect(1, 121520, '\p{^Block=		SUTTON_signwriting}', "");
-    Expect(1, 121520, '\P{Block=		SUTTON_signwriting}', "");
-    Expect(0, 121520, '\P{^Block=		SUTTON_signwriting}', "");
-    Error('\p{Blk= :=sutton_SIGNWRITING}');
-    Error('\P{Blk= :=sutton_SIGNWRITING}');
+    Expect(1, 121519, '\p{Block=	Sutton_SignWriting}', "");
+    Expect(0, 121519, '\p{^Block=	Sutton_SignWriting}', "");
+    Expect(0, 121519, '\P{Block=	Sutton_SignWriting}', "");
+    Expect(1, 121519, '\P{^Block=	Sutton_SignWriting}', "");
+    Expect(0, 121520, '\p{Block=	Sutton_SignWriting}', "");
+    Expect(1, 121520, '\p{^Block=	Sutton_SignWriting}', "");
+    Expect(1, 121520, '\P{Block=	Sutton_SignWriting}', "");
+    Expect(0, 121520, '\P{^Block=	Sutton_SignWriting}', "");
+    Error('\p{Blk=/a/-	SUTTON_SignWriting}');
+    Error('\P{Blk=/a/-	SUTTON_SignWriting}');
     Expect(1, 121519, '\p{Blk=:\ASutton_SignWriting\z:}', "");;
     Expect(0, 121520, '\p{Blk=:\ASutton_SignWriting\z:}', "");;
-    Expect(1, 121519, '\p{Blk=suttonsignwriting}', "");
-    Expect(0, 121519, '\p{^Blk=suttonsignwriting}', "");
-    Expect(0, 121519, '\P{Blk=suttonsignwriting}', "");
-    Expect(1, 121519, '\P{^Blk=suttonsignwriting}', "");
-    Expect(0, 121520, '\p{Blk=suttonsignwriting}', "");
-    Expect(1, 121520, '\p{^Blk=suttonsignwriting}', "");
-    Expect(1, 121520, '\P{Blk=suttonsignwriting}', "");
-    Expect(0, 121520, '\P{^Blk=suttonsignwriting}', "");
+    Expect(1, 121519, '\p{Blk:suttonsignwriting}', "");
+    Expect(0, 121519, '\p{^Blk:suttonsignwriting}', "");
+    Expect(0, 121519, '\P{Blk:suttonsignwriting}', "");
+    Expect(1, 121519, '\P{^Blk:suttonsignwriting}', "");
+    Expect(0, 121520, '\p{Blk:suttonsignwriting}', "");
+    Expect(1, 121520, '\p{^Blk:suttonsignwriting}', "");
+    Expect(1, 121520, '\P{Blk:suttonsignwriting}', "");
+    Expect(0, 121520, '\P{^Blk:suttonsignwriting}', "");
     Expect(1, 121519, '\p{Blk=:\Asuttonsignwriting\z:}', "");;
     Expect(0, 121520, '\p{Blk=:\Asuttonsignwriting\z:}', "");;
-    Expect(1, 121519, '\p{Blk=_Sutton_SignWriting}', "");
-    Expect(0, 121519, '\p{^Blk=_Sutton_SignWriting}', "");
-    Expect(0, 121519, '\P{Blk=_Sutton_SignWriting}', "");
-    Expect(1, 121519, '\P{^Blk=_Sutton_SignWriting}', "");
-    Expect(0, 121520, '\p{Blk=_Sutton_SignWriting}', "");
-    Expect(1, 121520, '\p{^Blk=_Sutton_SignWriting}', "");
-    Expect(1, 121520, '\P{Blk=_Sutton_SignWriting}', "");
-    Expect(0, 121520, '\P{^Blk=_Sutton_SignWriting}', "");
-    Error('\p{Is_Block=-/a/Sutton_SignWriting}');
-    Error('\P{Is_Block=-/a/Sutton_SignWriting}');
-    Expect(1, 121519, '\p{Is_Block:suttonsignwriting}', "");
-    Expect(0, 121519, '\p{^Is_Block:suttonsignwriting}', "");
-    Expect(0, 121519, '\P{Is_Block:suttonsignwriting}', "");
-    Expect(1, 121519, '\P{^Is_Block:suttonsignwriting}', "");
-    Expect(0, 121520, '\p{Is_Block:suttonsignwriting}', "");
-    Expect(1, 121520, '\p{^Is_Block:suttonsignwriting}', "");
-    Expect(1, 121520, '\P{Is_Block:suttonsignwriting}', "");
-    Expect(0, 121520, '\P{^Is_Block:suttonsignwriting}', "");
-    Expect(1, 121519, '\p{Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(0, 121519, '\p{^Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(0, 121519, '\P{Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(1, 121519, '\P{^Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(0, 121520, '\p{Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(1, 121520, '\p{^Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(1, 121520, '\P{Is_Block=	sutton_SIGNWRITING}', "");
-    Expect(0, 121520, '\P{^Is_Block=	sutton_SIGNWRITING}', "");
-    Error('\p{Is_Blk=	/a/sutton_signwriting}');
-    Error('\P{Is_Blk=	/a/sutton_signwriting}');
+    Expect(1, 121519, '\p{Blk=	sutton_SignWriting}', "");
+    Expect(0, 121519, '\p{^Blk=	sutton_SignWriting}', "");
+    Expect(0, 121519, '\P{Blk=	sutton_SignWriting}', "");
+    Expect(1, 121519, '\P{^Blk=	sutton_SignWriting}', "");
+    Expect(0, 121520, '\p{Blk=	sutton_SignWriting}', "");
+    Expect(1, 121520, '\p{^Blk=	sutton_SignWriting}', "");
+    Expect(1, 121520, '\P{Blk=	sutton_SignWriting}', "");
+    Expect(0, 121520, '\P{^Blk=	sutton_SignWriting}', "");
+    Error('\p{Is_Block=_Sutton_SignWriting/a/}');
+    Error('\P{Is_Block=_Sutton_SignWriting/a/}');
+    Expect(1, 121519, '\p{Is_Block=suttonsignwriting}', "");
+    Expect(0, 121519, '\p{^Is_Block=suttonsignwriting}', "");
+    Expect(0, 121519, '\P{Is_Block=suttonsignwriting}', "");
+    Expect(1, 121519, '\P{^Is_Block=suttonsignwriting}', "");
+    Expect(0, 121520, '\p{Is_Block=suttonsignwriting}', "");
+    Expect(1, 121520, '\p{^Is_Block=suttonsignwriting}', "");
+    Expect(1, 121520, '\P{Is_Block=suttonsignwriting}', "");
+    Expect(0, 121520, '\P{^Is_Block=suttonsignwriting}', "");
+    Expect(1, 121519, '\p{Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(0, 121519, '\p{^Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(0, 121519, '\P{Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(1, 121519, '\P{^Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(0, 121520, '\p{Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(1, 121520, '\p{^Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(1, 121520, '\P{Is_Block=- Sutton_SIGNWRITING}', "");
+    Expect(0, 121520, '\P{^Is_Block=- Sutton_SIGNWRITING}', "");
+    Error('\p{Is_Blk=-/a/Sutton_signwriting}');
+    Error('\P{Is_Blk=-/a/Sutton_signwriting}');
     Expect(1, 121519, '\p{Is_Blk=suttonsignwriting}', "");
     Expect(0, 121519, '\p{^Is_Blk=suttonsignwriting}', "");
     Expect(0, 121519, '\P{Is_Blk=suttonsignwriting}', "");
@@ -25758,16 +26326,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 121520, '\p{^Is_Blk=suttonsignwriting}', "");
     Expect(1, 121520, '\P{Is_Blk=suttonsignwriting}', "");
     Expect(0, 121520, '\P{^Is_Blk=suttonsignwriting}', "");
-    Expect(1, 121519, '\p{Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(0, 121519, '\p{^Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(0, 121519, '\P{Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(1, 121519, '\P{^Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(0, 121520, '\p{Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(1, 121520, '\p{^Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(1, 121520, '\P{Is_Blk:--Sutton_SIGNWRITING}', "");
-    Expect(0, 121520, '\P{^Is_Blk:--Sutton_SIGNWRITING}', "");
-    Error('\p{Block=/a/_Syloti_NAGRI}');
-    Error('\P{Block=/a/_Syloti_NAGRI}');
+    Expect(1, 121519, '\p{Is_Blk=	_sutton_SignWriting}', "");
+    Expect(0, 121519, '\p{^Is_Blk=	_sutton_SignWriting}', "");
+    Expect(0, 121519, '\P{Is_Blk=	_sutton_SignWriting}', "");
+    Expect(1, 121519, '\P{^Is_Blk=	_sutton_SignWriting}', "");
+    Expect(0, 121520, '\p{Is_Blk=	_sutton_SignWriting}', "");
+    Expect(1, 121520, '\p{^Is_Blk=	_sutton_SignWriting}', "");
+    Expect(1, 121520, '\P{Is_Blk=	_sutton_SignWriting}', "");
+    Expect(0, 121520, '\P{^Is_Blk=	_sutton_SignWriting}', "");
+    Error('\p{Block=-:=SYLOTI_Nagri}');
+    Error('\P{Block=-:=SYLOTI_Nagri}');
     Expect(1, 43055, '\p{Block=:\ASyloti_Nagri\z:}', "");;
     Expect(0, 43056, '\p{Block=:\ASyloti_Nagri\z:}', "");;
     Expect(1, 43055, '\p{Block=sylotinagri}', "");
@@ -25780,16 +26348,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43056, '\P{^Block=sylotinagri}', "");
     Expect(1, 43055, '\p{Block=:\Asylotinagri\z:}', "");;
     Expect(0, 43056, '\p{Block=:\Asylotinagri\z:}', "");;
-    Expect(1, 43055, '\p{Block=	-SYLOTI_nagri}', "");
-    Expect(0, 43055, '\p{^Block=	-SYLOTI_nagri}', "");
-    Expect(0, 43055, '\P{Block=	-SYLOTI_nagri}', "");
-    Expect(1, 43055, '\P{^Block=	-SYLOTI_nagri}', "");
-    Expect(0, 43056, '\p{Block=	-SYLOTI_nagri}', "");
-    Expect(1, 43056, '\p{^Block=	-SYLOTI_nagri}', "");
-    Expect(1, 43056, '\P{Block=	-SYLOTI_nagri}', "");
-    Expect(0, 43056, '\P{^Block=	-SYLOTI_nagri}', "");
-    Error('\p{Blk=	 Syloti_NAGRI:=}');
-    Error('\P{Blk=	 Syloti_NAGRI:=}');
+    Expect(1, 43055, '\p{Block=  SYLOTI_Nagri}', "");
+    Expect(0, 43055, '\p{^Block=  SYLOTI_Nagri}', "");
+    Expect(0, 43055, '\P{Block=  SYLOTI_Nagri}', "");
+    Expect(1, 43055, '\P{^Block=  SYLOTI_Nagri}', "");
+    Expect(0, 43056, '\p{Block=  SYLOTI_Nagri}', "");
+    Expect(1, 43056, '\p{^Block=  SYLOTI_Nagri}', "");
+    Expect(1, 43056, '\P{Block=  SYLOTI_Nagri}', "");
+    Expect(0, 43056, '\P{^Block=  SYLOTI_Nagri}', "");
+    Error('\p{Blk= /a/syloti_Nagri}');
+    Error('\P{Blk= /a/syloti_Nagri}');
     Expect(1, 43055, '\p{Blk=:\ASyloti_Nagri\z:}', "");;
     Expect(0, 43056, '\p{Blk=:\ASyloti_Nagri\z:}', "");;
     Expect(1, 43055, '\p{Blk=sylotinagri}', "");
@@ -25802,16 +26370,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43056, '\P{^Blk=sylotinagri}', "");
     Expect(1, 43055, '\p{Blk=:\Asylotinagri\z:}', "");;
     Expect(0, 43056, '\p{Blk=:\Asylotinagri\z:}', "");;
-    Expect(1, 43055, '\p{Blk= SYLOTI_Nagri}', "");
-    Expect(0, 43055, '\p{^Blk= SYLOTI_Nagri}', "");
-    Expect(0, 43055, '\P{Blk= SYLOTI_Nagri}', "");
-    Expect(1, 43055, '\P{^Blk= SYLOTI_Nagri}', "");
-    Expect(0, 43056, '\p{Blk= SYLOTI_Nagri}', "");
-    Expect(1, 43056, '\p{^Blk= SYLOTI_Nagri}', "");
-    Expect(1, 43056, '\P{Blk= SYLOTI_Nagri}', "");
-    Expect(0, 43056, '\P{^Blk= SYLOTI_Nagri}', "");
-    Error('\p{Is_Block= Syloti_nagri:=}');
-    Error('\P{Is_Block= Syloti_nagri:=}');
+    Expect(1, 43055, '\p{Blk=-	syloti_nagri}', "");
+    Expect(0, 43055, '\p{^Blk=-	syloti_nagri}', "");
+    Expect(0, 43055, '\P{Blk=-	syloti_nagri}', "");
+    Expect(1, 43055, '\P{^Blk=-	syloti_nagri}', "");
+    Expect(0, 43056, '\p{Blk=-	syloti_nagri}', "");
+    Expect(1, 43056, '\p{^Blk=-	syloti_nagri}', "");
+    Expect(1, 43056, '\P{Blk=-	syloti_nagri}', "");
+    Expect(0, 43056, '\P{^Blk=-	syloti_nagri}', "");
+    Error('\p{Is_Block=/a/	Syloti_Nagri}');
+    Error('\P{Is_Block=/a/	Syloti_Nagri}');
     Expect(1, 43055, '\p{Is_Block=sylotinagri}', "");
     Expect(0, 43055, '\p{^Is_Block=sylotinagri}', "");
     Expect(0, 43055, '\P{Is_Block=sylotinagri}', "");
@@ -25820,16 +26388,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43056, '\p{^Is_Block=sylotinagri}', "");
     Expect(1, 43056, '\P{Is_Block=sylotinagri}', "");
     Expect(0, 43056, '\P{^Is_Block=sylotinagri}', "");
-    Expect(1, 43055, '\p{Is_Block=-	Syloti_Nagri}', "");
-    Expect(0, 43055, '\p{^Is_Block=-	Syloti_Nagri}', "");
-    Expect(0, 43055, '\P{Is_Block=-	Syloti_Nagri}', "");
-    Expect(1, 43055, '\P{^Is_Block=-	Syloti_Nagri}', "");
-    Expect(0, 43056, '\p{Is_Block=-	Syloti_Nagri}', "");
-    Expect(1, 43056, '\p{^Is_Block=-	Syloti_Nagri}', "");
-    Expect(1, 43056, '\P{Is_Block=-	Syloti_Nagri}', "");
-    Expect(0, 43056, '\P{^Is_Block=-	Syloti_Nagri}', "");
-    Error('\p{Is_Blk=_Syloti_Nagri:=}');
-    Error('\P{Is_Blk=_Syloti_Nagri:=}');
+    Expect(1, 43055, '\p{Is_Block=		syloti_Nagri}', "");
+    Expect(0, 43055, '\p{^Is_Block=		syloti_Nagri}', "");
+    Expect(0, 43055, '\P{Is_Block=		syloti_Nagri}', "");
+    Expect(1, 43055, '\P{^Is_Block=		syloti_Nagri}', "");
+    Expect(0, 43056, '\p{Is_Block=		syloti_Nagri}', "");
+    Expect(1, 43056, '\p{^Is_Block=		syloti_Nagri}', "");
+    Expect(1, 43056, '\P{Is_Block=		syloti_Nagri}', "");
+    Expect(0, 43056, '\P{^Is_Block=		syloti_Nagri}', "");
+    Error('\p{Is_Blk:	 /a/Syloti_NAGRI}');
+    Error('\P{Is_Blk:	 /a/Syloti_NAGRI}');
     Expect(1, 43055, '\p{Is_Blk=sylotinagri}', "");
     Expect(0, 43055, '\p{^Is_Blk=sylotinagri}', "");
     Expect(0, 43055, '\P{Is_Blk=sylotinagri}', "");
@@ -25838,60 +26406,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43056, '\p{^Is_Blk=sylotinagri}', "");
     Expect(1, 43056, '\P{Is_Blk=sylotinagri}', "");
     Expect(0, 43056, '\P{^Is_Blk=sylotinagri}', "");
-    Expect(1, 43055, '\p{Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(0, 43055, '\p{^Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(0, 43055, '\P{Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(1, 43055, '\P{^Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(0, 43056, '\p{Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(1, 43056, '\p{^Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(1, 43056, '\P{Is_Blk: 	SYLOTI_nagri}', "");
-    Expect(0, 43056, '\P{^Is_Blk: 	SYLOTI_nagri}', "");
-    Error('\p{Block= _symbols_and_Pictographs_Extended_A/a/}');
-    Error('\P{Block= _symbols_and_Pictographs_Extended_A/a/}');
+    Expect(1, 43055, '\p{Is_Blk= -syloti_Nagri}', "");
+    Expect(0, 43055, '\p{^Is_Blk= -syloti_Nagri}', "");
+    Expect(0, 43055, '\P{Is_Blk= -syloti_Nagri}', "");
+    Expect(1, 43055, '\P{^Is_Blk= -syloti_Nagri}', "");
+    Expect(0, 43056, '\p{Is_Blk= -syloti_Nagri}', "");
+    Expect(1, 43056, '\p{^Is_Blk= -syloti_Nagri}', "");
+    Expect(1, 43056, '\P{Is_Blk= -syloti_Nagri}', "");
+    Expect(0, 43056, '\P{^Is_Blk= -syloti_Nagri}', "");
+    Error('\p{Block= _SYMBOLS_And_pictographs_Extended_A:=}');
+    Error('\P{Block= _SYMBOLS_And_pictographs_Extended_A:=}');
     Expect(1, 129791, '\p{Block=:\ASymbols_And_Pictographs_Extended_A\z:}', "");;
     Expect(0, 129792, '\p{Block=:\ASymbols_And_Pictographs_Extended_A\z:}', "");;
-    Expect(1, 129791, '\p{Block:symbolsandpictographsextendeda}', "");
-    Expect(0, 129791, '\p{^Block:symbolsandpictographsextendeda}', "");
-    Expect(0, 129791, '\P{Block:symbolsandpictographsextendeda}', "");
-    Expect(1, 129791, '\P{^Block:symbolsandpictographsextendeda}', "");
-    Expect(0, 129792, '\p{Block:symbolsandpictographsextendeda}', "");
-    Expect(1, 129792, '\p{^Block:symbolsandpictographsextendeda}', "");
-    Expect(1, 129792, '\P{Block:symbolsandpictographsextendeda}', "");
-    Expect(0, 129792, '\P{^Block:symbolsandpictographsextendeda}', "");
+    Expect(1, 129791, '\p{Block=symbolsandpictographsextendeda}', "");
+    Expect(0, 129791, '\p{^Block=symbolsandpictographsextendeda}', "");
+    Expect(0, 129791, '\P{Block=symbolsandpictographsextendeda}', "");
+    Expect(1, 129791, '\P{^Block=symbolsandpictographsextendeda}', "");
+    Expect(0, 129792, '\p{Block=symbolsandpictographsextendeda}', "");
+    Expect(1, 129792, '\p{^Block=symbolsandpictographsextendeda}', "");
+    Expect(1, 129792, '\P{Block=symbolsandpictographsextendeda}', "");
+    Expect(0, 129792, '\P{^Block=symbolsandpictographsextendeda}', "");
     Expect(1, 129791, '\p{Block=:\Asymbolsandpictographsextendeda\z:}', "");;
     Expect(0, 129792, '\p{Block=:\Asymbolsandpictographsextendeda\z:}', "");;
-    Expect(1, 129791, '\p{Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(0, 129791, '\p{^Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(0, 129791, '\P{Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(1, 129791, '\P{^Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(0, 129792, '\p{Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(1, 129792, '\p{^Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(1, 129792, '\P{Block= -Symbols_And_pictographs_Extended_a}', "");
-    Expect(0, 129792, '\P{^Block= -Symbols_And_pictographs_Extended_a}', "");
-    Error('\p{Blk=:=-	symbols_And_PICTOGRAPHS_EXT_A}');
-    Error('\P{Blk=:=-	symbols_And_PICTOGRAPHS_EXT_A}');
+    Expect(1, 129791, '\p{Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(0, 129791, '\p{^Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(0, 129791, '\P{Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(1, 129791, '\P{^Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(0, 129792, '\p{Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(1, 129792, '\p{^Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(1, 129792, '\P{Block=_ Symbols_And_pictographs_extended_a}', "");
+    Expect(0, 129792, '\P{^Block=_ Symbols_And_pictographs_extended_a}', "");
+    Error('\p{Blk=__Symbols_And_PICTOGRAPHS_EXT_A:=}');
+    Error('\P{Blk=__Symbols_And_PICTOGRAPHS_EXT_A:=}');
     Expect(1, 129791, '\p{Blk=:\ASymbols_And_Pictographs_Ext_A\z:}', "");;
     Expect(0, 129792, '\p{Blk=:\ASymbols_And_Pictographs_Ext_A\z:}', "");;
-    Expect(1, 129791, '\p{Blk=symbolsandpictographsexta}', "");
-    Expect(0, 129791, '\p{^Blk=symbolsandpictographsexta}', "");
-    Expect(0, 129791, '\P{Blk=symbolsandpictographsexta}', "");
-    Expect(1, 129791, '\P{^Blk=symbolsandpictographsexta}', "");
-    Expect(0, 129792, '\p{Blk=symbolsandpictographsexta}', "");
-    Expect(1, 129792, '\p{^Blk=symbolsandpictographsexta}', "");
-    Expect(1, 129792, '\P{Blk=symbolsandpictographsexta}', "");
-    Expect(0, 129792, '\P{^Blk=symbolsandpictographsexta}', "");
+    Expect(1, 129791, '\p{Blk: symbolsandpictographsexta}', "");
+    Expect(0, 129791, '\p{^Blk: symbolsandpictographsexta}', "");
+    Expect(0, 129791, '\P{Blk: symbolsandpictographsexta}', "");
+    Expect(1, 129791, '\P{^Blk: symbolsandpictographsexta}', "");
+    Expect(0, 129792, '\p{Blk: symbolsandpictographsexta}', "");
+    Expect(1, 129792, '\p{^Blk: symbolsandpictographsexta}', "");
+    Expect(1, 129792, '\P{Blk: symbolsandpictographsexta}', "");
+    Expect(0, 129792, '\P{^Blk: symbolsandpictographsexta}', "");
     Expect(1, 129791, '\p{Blk=:\Asymbolsandpictographsexta\z:}', "");;
     Expect(0, 129792, '\p{Blk=:\Asymbolsandpictographsexta\z:}', "");;
-    Expect(1, 129791, '\p{Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(0, 129791, '\p{^Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(0, 129791, '\P{Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(1, 129791, '\P{^Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(0, 129792, '\p{Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(1, 129792, '\p{^Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(1, 129792, '\P{Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Expect(0, 129792, '\P{^Blk=-Symbols_And_PICTOGRAPHS_ext_A}', "");
-    Error('\p{Is_Block=_SYMBOLS_And_PICTOGRAPHS_extended_a/a/}');
-    Error('\P{Is_Block=_SYMBOLS_And_PICTOGRAPHS_extended_a/a/}');
+    Expect(1, 129791, '\p{Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(0, 129791, '\p{^Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(0, 129791, '\P{Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(1, 129791, '\P{^Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(0, 129792, '\p{Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(1, 129792, '\p{^Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(1, 129792, '\P{Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Expect(0, 129792, '\P{^Blk= SYMBOLS_AND_PICTOGRAPHS_ext_A}', "");
+    Error('\p{Is_Block= 	Symbols_And_pictographs_EXTENDED_A:=}');
+    Error('\P{Is_Block= 	Symbols_And_pictographs_EXTENDED_A:=}');
     Expect(1, 129791, '\p{Is_Block=symbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\p{^Is_Block=symbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\P{Is_Block=symbolsandpictographsextendeda}', "");
@@ -25900,16 +26468,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129792, '\p{^Is_Block=symbolsandpictographsextendeda}', "");
     Expect(1, 129792, '\P{Is_Block=symbolsandpictographsextendeda}', "");
     Expect(0, 129792, '\P{^Is_Block=symbolsandpictographsextendeda}', "");
-    Expect(1, 129791, '\p{Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(0, 129791, '\p{^Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(0, 129791, '\P{Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(1, 129791, '\P{^Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(0, 129792, '\p{Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(1, 129792, '\p{^Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(1, 129792, '\P{Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Expect(0, 129792, '\P{^Is_Block= 	symbols_And_Pictographs_Extended_a}', "");
-    Error('\p{Is_Blk=- Symbols_And_Pictographs_Ext_A/a/}');
-    Error('\P{Is_Blk=- Symbols_And_Pictographs_Ext_A/a/}');
+    Expect(1, 129791, '\p{Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(0, 129791, '\p{^Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(0, 129791, '\P{Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(1, 129791, '\P{^Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(0, 129792, '\p{Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(1, 129792, '\p{^Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(1, 129792, '\P{Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Expect(0, 129792, '\P{^Is_Block=_-Symbols_And_Pictographs_Extended_A}', "");
+    Error('\p{Is_Blk: /a/symbols_AND_pictographs_Ext_A}');
+    Error('\P{Is_Blk: /a/symbols_AND_pictographs_Ext_A}');
     Expect(1, 129791, '\p{Is_Blk=symbolsandpictographsexta}', "");
     Expect(0, 129791, '\p{^Is_Blk=symbolsandpictographsexta}', "");
     Expect(0, 129791, '\P{Is_Blk=symbolsandpictographsexta}', "");
@@ -25918,16 +26486,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 129792, '\p{^Is_Blk=symbolsandpictographsexta}', "");
     Expect(1, 129792, '\P{Is_Blk=symbolsandpictographsexta}', "");
     Expect(0, 129792, '\P{^Is_Blk=symbolsandpictographsexta}', "");
-    Expect(1, 129791, '\p{Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(0, 129791, '\p{^Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(0, 129791, '\P{Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(1, 129791, '\P{^Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(0, 129792, '\p{Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(1, 129792, '\p{^Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(1, 129792, '\P{Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Expect(0, 129792, '\P{^Is_Blk= Symbols_And_pictographs_Ext_A}', "");
-    Error('\p{Block= _Symbols_for_Legacy_Computing/a/}');
-    Error('\P{Block= _Symbols_for_Legacy_Computing/a/}');
+    Expect(1, 129791, '\p{Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(0, 129791, '\p{^Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(0, 129791, '\P{Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(1, 129791, '\P{^Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(0, 129792, '\p{Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(1, 129792, '\p{^Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(1, 129792, '\P{Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Expect(0, 129792, '\P{^Is_Blk=Symbols_AND_pictographs_EXT_a}', "");
+    Error('\p{Block=:=	 SYMBOLS_For_legacy_Computing}');
+    Error('\P{Block=:=	 SYMBOLS_For_legacy_Computing}');
     Expect(1, 130047, '\p{Block=:\ASymbols_For_Legacy_Computing\z:}', "");;
     Expect(0, 130048, '\p{Block=:\ASymbols_For_Legacy_Computing\z:}', "");;
     Expect(1, 130047, '\p{Block=symbolsforlegacycomputing}', "");
@@ -25940,16 +26508,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130048, '\P{^Block=symbolsforlegacycomputing}', "");
     Expect(1, 130047, '\p{Block=:\Asymbolsforlegacycomputing\z:}', "");;
     Expect(0, 130048, '\p{Block=:\Asymbolsforlegacycomputing\z:}', "");;
-    Expect(1, 130047, '\p{Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(0, 130047, '\p{^Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(0, 130047, '\P{Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(1, 130047, '\P{^Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(0, 130048, '\p{Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(1, 130048, '\p{^Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(1, 130048, '\P{Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Expect(0, 130048, '\P{^Block=_SYMBOLS_For_LEGACY_Computing}', "");
-    Error('\p{Blk=/a/	Symbols_for_Legacy_COMPUTING}');
-    Error('\P{Blk=/a/	Symbols_for_Legacy_COMPUTING}');
+    Expect(1, 130047, '\p{Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(0, 130047, '\p{^Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(0, 130047, '\P{Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(1, 130047, '\P{^Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(0, 130048, '\p{Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(1, 130048, '\p{^Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(1, 130048, '\P{Block=__Symbols_for_Legacy_Computing}', "");
+    Expect(0, 130048, '\P{^Block=__Symbols_for_Legacy_Computing}', "");
+    Error('\p{Blk=/a/	-Symbols_FOR_Legacy_computing}');
+    Error('\P{Blk=/a/	-Symbols_FOR_Legacy_computing}');
     Expect(1, 130047, '\p{Blk=:\ASymbols_For_Legacy_Computing\z:}', "");;
     Expect(0, 130048, '\p{Blk=:\ASymbols_For_Legacy_Computing\z:}', "");;
     Expect(1, 130047, '\p{Blk=symbolsforlegacycomputing}', "");
@@ -25962,16 +26530,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130048, '\P{^Blk=symbolsforlegacycomputing}', "");
     Expect(1, 130047, '\p{Blk=:\Asymbolsforlegacycomputing\z:}', "");;
     Expect(0, 130048, '\p{Blk=:\Asymbolsforlegacycomputing\z:}', "");;
-    Expect(1, 130047, '\p{Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(0, 130047, '\p{^Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(0, 130047, '\P{Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(1, 130047, '\P{^Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(0, 130048, '\p{Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(1, 130048, '\p{^Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(1, 130048, '\P{Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Expect(0, 130048, '\P{^Blk=	 SYMBOLS_For_legacy_computing}', "");
-    Error('\p{Is_Block=_/a/symbols_For_legacy_COMPUTING}');
-    Error('\P{Is_Block=_/a/symbols_For_legacy_COMPUTING}');
+    Expect(1, 130047, '\p{Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(0, 130047, '\p{^Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(0, 130047, '\P{Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(1, 130047, '\P{^Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(0, 130048, '\p{Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(1, 130048, '\p{^Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(1, 130048, '\P{Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Expect(0, 130048, '\P{^Blk=	-SYMBOLS_For_Legacy_Computing}', "");
+    Error('\p{Is_Block=/a/--symbols_For_legacy_Computing}');
+    Error('\P{Is_Block=/a/--symbols_For_legacy_Computing}');
     Expect(1, 130047, '\p{Is_Block=symbolsforlegacycomputing}', "");
     Expect(0, 130047, '\p{^Is_Block=symbolsforlegacycomputing}', "");
     Expect(0, 130047, '\P{Is_Block=symbolsforlegacycomputing}', "");
@@ -25980,34 +26548,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130048, '\p{^Is_Block=symbolsforlegacycomputing}', "");
     Expect(1, 130048, '\P{Is_Block=symbolsforlegacycomputing}', "");
     Expect(0, 130048, '\P{^Is_Block=symbolsforlegacycomputing}', "");
-    Expect(1, 130047, '\p{Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130047, '\p{^Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130047, '\P{Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(1, 130047, '\P{^Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130048, '\p{Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(1, 130048, '\p{^Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(1, 130048, '\P{Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130048, '\P{^Is_Block=-Symbols_For_Legacy_Computing}', "");
-    Error('\p{Is_Blk= 	SYMBOLS_FOR_Legacy_COMPUTING/a/}');
-    Error('\P{Is_Blk= 	SYMBOLS_FOR_Legacy_COMPUTING/a/}');
-    Expect(1, 130047, '\p{Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(0, 130047, '\p{^Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(0, 130047, '\P{Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(1, 130047, '\P{^Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(0, 130048, '\p{Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(1, 130048, '\p{^Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(1, 130048, '\P{Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(0, 130048, '\P{^Is_Blk:symbolsforlegacycomputing}', "");
-    Expect(1, 130047, '\p{Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(0, 130047, '\p{^Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(0, 130047, '\P{Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(1, 130047, '\P{^Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(0, 130048, '\p{Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(1, 130048, '\p{^Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(1, 130048, '\P{Is_Blk=  Symbols_For_legacy_computing}', "");
-    Expect(0, 130048, '\P{^Is_Blk=  Symbols_For_legacy_computing}', "");
-    Error('\p{Block: -syriac:=}');
-    Error('\P{Block: -syriac:=}');
+    Expect(1, 130047, '\p{Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(0, 130047, '\p{^Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(0, 130047, '\P{Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(1, 130047, '\P{^Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(0, 130048, '\p{Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(1, 130048, '\p{^Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(1, 130048, '\P{Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Expect(0, 130048, '\P{^Is_Block=	Symbols_for_Legacy_COMPUTING}', "");
+    Error('\p{Is_Blk=:= -symbols_For_LEGACY_computing}');
+    Error('\P{Is_Blk=:= -symbols_For_LEGACY_computing}');
+    Expect(1, 130047, '\p{Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(0, 130047, '\p{^Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(0, 130047, '\P{Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(1, 130047, '\P{^Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(0, 130048, '\p{Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(1, 130048, '\p{^Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(1, 130048, '\P{Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(0, 130048, '\P{^Is_Blk=symbolsforlegacycomputing}', "");
+    Expect(1, 130047, '\p{Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(0, 130047, '\p{^Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(0, 130047, '\P{Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(1, 130047, '\P{^Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(0, 130048, '\p{Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(1, 130048, '\p{^Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(1, 130048, '\P{Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Expect(0, 130048, '\P{^Is_Blk=-	Symbols_FOR_legacy_computing}', "");
+    Error('\p{Block=	-syriac/a/}');
+    Error('\P{Block=	-syriac/a/}');
     Expect(1, 1871, '\p{Block=:\ASyriac\z:}', "");;
     Expect(0, 1872, '\p{Block=:\ASyriac\z:}', "");;
     Expect(1, 1871, '\p{Block=syriac}', "");
@@ -26020,38 +26588,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1872, '\P{^Block=syriac}', "");
     Expect(1, 1871, '\p{Block=:\Asyriac\z:}', "");;
     Expect(0, 1872, '\p{Block=:\Asyriac\z:}', "");;
-    Expect(1, 1871, '\p{Block=__Syriac}', "");
-    Expect(0, 1871, '\p{^Block=__Syriac}', "");
-    Expect(0, 1871, '\P{Block=__Syriac}', "");
-    Expect(1, 1871, '\P{^Block=__Syriac}', "");
-    Expect(0, 1872, '\p{Block=__Syriac}', "");
-    Expect(1, 1872, '\p{^Block=__Syriac}', "");
-    Expect(1, 1872, '\P{Block=__Syriac}', "");
-    Expect(0, 1872, '\P{^Block=__Syriac}', "");
-    Error('\p{Blk=_/a/Syriac}');
-    Error('\P{Blk=_/a/Syriac}');
+    Expect(1, 1871, '\p{Block=Syriac}', "");
+    Expect(0, 1871, '\p{^Block=Syriac}', "");
+    Expect(0, 1871, '\P{Block=Syriac}', "");
+    Expect(1, 1871, '\P{^Block=Syriac}', "");
+    Expect(0, 1872, '\p{Block=Syriac}', "");
+    Expect(1, 1872, '\p{^Block=Syriac}', "");
+    Expect(1, 1872, '\P{Block=Syriac}', "");
+    Expect(0, 1872, '\P{^Block=Syriac}', "");
+    Error('\p{Blk=:= -SYRIAC}');
+    Error('\P{Blk=:= -SYRIAC}');
     Expect(1, 1871, '\p{Blk=:\ASyriac\z:}', "");;
     Expect(0, 1872, '\p{Blk=:\ASyriac\z:}', "");;
-    Expect(1, 1871, '\p{Blk:   syriac}', "");
-    Expect(0, 1871, '\p{^Blk:   syriac}', "");
-    Expect(0, 1871, '\P{Blk:   syriac}', "");
-    Expect(1, 1871, '\P{^Blk:   syriac}', "");
-    Expect(0, 1872, '\p{Blk:   syriac}', "");
-    Expect(1, 1872, '\p{^Blk:   syriac}', "");
-    Expect(1, 1872, '\P{Blk:   syriac}', "");
-    Expect(0, 1872, '\P{^Blk:   syriac}', "");
+    Expect(1, 1871, '\p{Blk=syriac}', "");
+    Expect(0, 1871, '\p{^Blk=syriac}', "");
+    Expect(0, 1871, '\P{Blk=syriac}', "");
+    Expect(1, 1871, '\P{^Blk=syriac}', "");
+    Expect(0, 1872, '\p{Blk=syriac}', "");
+    Expect(1, 1872, '\p{^Blk=syriac}', "");
+    Expect(1, 1872, '\P{Blk=syriac}', "");
+    Expect(0, 1872, '\P{^Blk=syriac}', "");
     Expect(1, 1871, '\p{Blk=:\Asyriac\z:}', "");;
     Expect(0, 1872, '\p{Blk=:\Asyriac\z:}', "");;
-    Expect(1, 1871, '\p{Blk=--syriac}', "");
-    Expect(0, 1871, '\p{^Blk=--syriac}', "");
-    Expect(0, 1871, '\P{Blk=--syriac}', "");
-    Expect(1, 1871, '\P{^Blk=--syriac}', "");
-    Expect(0, 1872, '\p{Blk=--syriac}', "");
-    Expect(1, 1872, '\p{^Blk=--syriac}', "");
-    Expect(1, 1872, '\P{Blk=--syriac}', "");
-    Expect(0, 1872, '\P{^Blk=--syriac}', "");
-    Error('\p{Is_Block=-/a/SYRIAC}');
-    Error('\P{Is_Block=-/a/SYRIAC}');
+    Expect(1, 1871, '\p{Blk=_Syriac}', "");
+    Expect(0, 1871, '\p{^Blk=_Syriac}', "");
+    Expect(0, 1871, '\P{Blk=_Syriac}', "");
+    Expect(1, 1871, '\P{^Blk=_Syriac}', "");
+    Expect(0, 1872, '\p{Blk=_Syriac}', "");
+    Expect(1, 1872, '\p{^Blk=_Syriac}', "");
+    Expect(1, 1872, '\P{Blk=_Syriac}', "");
+    Expect(0, 1872, '\P{^Blk=_Syriac}', "");
+    Error('\p{Is_Block=	:=Syriac}');
+    Error('\P{Is_Block=	:=Syriac}');
     Expect(1, 1871, '\p{Is_Block=syriac}', "");
     Expect(0, 1871, '\p{^Is_Block=syriac}', "");
     Expect(0, 1871, '\P{Is_Block=syriac}', "");
@@ -26060,16 +26628,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1872, '\p{^Is_Block=syriac}', "");
     Expect(1, 1872, '\P{Is_Block=syriac}', "");
     Expect(0, 1872, '\P{^Is_Block=syriac}', "");
-    Expect(1, 1871, '\p{Is_Block=_ syriac}', "");
-    Expect(0, 1871, '\p{^Is_Block=_ syriac}', "");
-    Expect(0, 1871, '\P{Is_Block=_ syriac}', "");
-    Expect(1, 1871, '\P{^Is_Block=_ syriac}', "");
-    Expect(0, 1872, '\p{Is_Block=_ syriac}', "");
-    Expect(1, 1872, '\p{^Is_Block=_ syriac}', "");
-    Expect(1, 1872, '\P{Is_Block=_ syriac}', "");
-    Expect(0, 1872, '\P{^Is_Block=_ syriac}', "");
-    Error('\p{Is_Blk=:=	_Syriac}');
-    Error('\P{Is_Blk=:=	_Syriac}');
+    Error('\p{Is_Blk=_/a/Syriac}');
+    Error('\P{Is_Blk=_/a/Syriac}');
     Expect(1, 1871, '\p{Is_Blk=syriac}', "");
     Expect(0, 1871, '\p{^Is_Blk=syriac}', "");
     Expect(0, 1871, '\P{Is_Blk=syriac}', "");
@@ -26078,16 +26638,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1872, '\p{^Is_Blk=syriac}', "");
     Expect(1, 1872, '\P{Is_Blk=syriac}', "");
     Expect(0, 1872, '\P{^Is_Blk=syriac}', "");
-    Expect(1, 1871, '\p{Is_Blk=_Syriac}', "");
-    Expect(0, 1871, '\p{^Is_Blk=_Syriac}', "");
-    Expect(0, 1871, '\P{Is_Blk=_Syriac}', "");
-    Expect(1, 1871, '\P{^Is_Blk=_Syriac}', "");
-    Expect(0, 1872, '\p{Is_Blk=_Syriac}', "");
-    Expect(1, 1872, '\p{^Is_Blk=_Syriac}', "");
-    Expect(1, 1872, '\P{Is_Blk=_Syriac}', "");
-    Expect(0, 1872, '\P{^Is_Blk=_Syriac}', "");
-    Error('\p{Block=/a/ 	syriac_supplement}');
-    Error('\P{Block=/a/ 	syriac_supplement}');
+    Expect(1, 1871, '\p{Is_Blk=		syriac}', "");
+    Expect(0, 1871, '\p{^Is_Blk=		syriac}', "");
+    Expect(0, 1871, '\P{Is_Blk=		syriac}', "");
+    Expect(1, 1871, '\P{^Is_Blk=		syriac}', "");
+    Expect(0, 1872, '\p{Is_Blk=		syriac}', "");
+    Expect(1, 1872, '\p{^Is_Blk=		syriac}', "");
+    Expect(1, 1872, '\P{Is_Blk=		syriac}', "");
+    Expect(0, 1872, '\P{^Is_Blk=		syriac}', "");
+    Error('\p{Block=/a/SYRIAC_Supplement}');
+    Error('\P{Block=/a/SYRIAC_Supplement}');
     Expect(1, 2159, '\p{Block=:\ASyriac_Supplement\z:}', "");;
     Expect(0, 2160, '\p{Block=:\ASyriac_Supplement\z:}', "");;
     Expect(1, 2159, '\p{Block=syriacsupplement}', "");
@@ -26100,16 +26660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2160, '\P{^Block=syriacsupplement}', "");
     Expect(1, 2159, '\p{Block=:\Asyriacsupplement\z:}', "");;
     Expect(0, 2160, '\p{Block=:\Asyriacsupplement\z:}', "");;
-    Expect(1, 2159, '\p{Block:   _syriac_Supplement}', "");
-    Expect(0, 2159, '\p{^Block:   _syriac_Supplement}', "");
-    Expect(0, 2159, '\P{Block:   _syriac_Supplement}', "");
-    Expect(1, 2159, '\P{^Block:   _syriac_Supplement}', "");
-    Expect(0, 2160, '\p{Block:   _syriac_Supplement}', "");
-    Expect(1, 2160, '\p{^Block:   _syriac_Supplement}', "");
-    Expect(1, 2160, '\P{Block:   _syriac_Supplement}', "");
-    Expect(0, 2160, '\P{^Block:   _syriac_Supplement}', "");
-    Error('\p{Blk=-/a/syriac_sup}');
-    Error('\P{Blk=-/a/syriac_sup}');
+    Expect(1, 2159, '\p{Block:   --Syriac_Supplement}', "");
+    Expect(0, 2159, '\p{^Block:   --Syriac_Supplement}', "");
+    Expect(0, 2159, '\P{Block:   --Syriac_Supplement}', "");
+    Expect(1, 2159, '\P{^Block:   --Syriac_Supplement}', "");
+    Expect(0, 2160, '\p{Block:   --Syriac_Supplement}', "");
+    Expect(1, 2160, '\p{^Block:   --Syriac_Supplement}', "");
+    Expect(1, 2160, '\P{Block:   --Syriac_Supplement}', "");
+    Expect(0, 2160, '\P{^Block:   --Syriac_Supplement}', "");
+    Error('\p{Blk: -Syriac_sup:=}');
+    Error('\P{Blk: -Syriac_sup:=}');
     Expect(1, 2159, '\p{Blk=:\ASyriac_Sup\z:}', "");;
     Expect(0, 2160, '\p{Blk=:\ASyriac_Sup\z:}', "");;
     Expect(1, 2159, '\p{Blk=syriacsup}', "");
@@ -26122,16 +26682,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2160, '\P{^Blk=syriacsup}', "");
     Expect(1, 2159, '\p{Blk=:\Asyriacsup\z:}', "");;
     Expect(0, 2160, '\p{Blk=:\Asyriacsup\z:}', "");;
-    Expect(1, 2159, '\p{Blk=syriac_SUP}', "");
-    Expect(0, 2159, '\p{^Blk=syriac_SUP}', "");
-    Expect(0, 2159, '\P{Blk=syriac_SUP}', "");
-    Expect(1, 2159, '\P{^Blk=syriac_SUP}', "");
-    Expect(0, 2160, '\p{Blk=syriac_SUP}', "");
-    Expect(1, 2160, '\p{^Blk=syriac_SUP}', "");
-    Expect(1, 2160, '\P{Blk=syriac_SUP}', "");
-    Expect(0, 2160, '\P{^Blk=syriac_SUP}', "");
-    Error('\p{Is_Block=:= Syriac_SUPPLEMENT}');
-    Error('\P{Is_Block=:= Syriac_SUPPLEMENT}');
+    Expect(1, 2159, '\p{Blk=syriac_Sup}', "");
+    Expect(0, 2159, '\p{^Blk=syriac_Sup}', "");
+    Expect(0, 2159, '\P{Blk=syriac_Sup}', "");
+    Expect(1, 2159, '\P{^Blk=syriac_Sup}', "");
+    Expect(0, 2160, '\p{Blk=syriac_Sup}', "");
+    Expect(1, 2160, '\p{^Blk=syriac_Sup}', "");
+    Expect(1, 2160, '\P{Blk=syriac_Sup}', "");
+    Expect(0, 2160, '\P{^Blk=syriac_Sup}', "");
+    Error('\p{Is_Block=:= _Syriac_Supplement}');
+    Error('\P{Is_Block=:= _Syriac_Supplement}');
     Expect(1, 2159, '\p{Is_Block=syriacsupplement}', "");
     Expect(0, 2159, '\p{^Is_Block=syriacsupplement}', "");
     Expect(0, 2159, '\P{Is_Block=syriacsupplement}', "");
@@ -26140,16 +26700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2160, '\p{^Is_Block=syriacsupplement}', "");
     Expect(1, 2160, '\P{Is_Block=syriacsupplement}', "");
     Expect(0, 2160, '\P{^Is_Block=syriacsupplement}', "");
-    Expect(1, 2159, '\p{Is_Block=__syriac_Supplement}', "");
-    Expect(0, 2159, '\p{^Is_Block=__syriac_Supplement}', "");
-    Expect(0, 2159, '\P{Is_Block=__syriac_Supplement}', "");
-    Expect(1, 2159, '\P{^Is_Block=__syriac_Supplement}', "");
-    Expect(0, 2160, '\p{Is_Block=__syriac_Supplement}', "");
-    Expect(1, 2160, '\p{^Is_Block=__syriac_Supplement}', "");
-    Expect(1, 2160, '\P{Is_Block=__syriac_Supplement}', "");
-    Expect(0, 2160, '\P{^Is_Block=__syriac_Supplement}', "");
-    Error('\p{Is_Blk:	_/a/SYRIAC_Sup}');
-    Error('\P{Is_Blk:	_/a/SYRIAC_Sup}');
+    Expect(1, 2159, '\p{Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(0, 2159, '\p{^Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(0, 2159, '\P{Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(1, 2159, '\P{^Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(0, 2160, '\p{Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(1, 2160, '\p{^Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(1, 2160, '\P{Is_Block=		Syriac_SUPPLEMENT}', "");
+    Expect(0, 2160, '\P{^Is_Block=		Syriac_SUPPLEMENT}', "");
+    Error('\p{Is_Blk=:= -SYRIAC_SUP}');
+    Error('\P{Is_Blk=:= -SYRIAC_SUP}');
     Expect(1, 2159, '\p{Is_Blk=syriacsup}', "");
     Expect(0, 2159, '\p{^Is_Blk=syriacsup}', "");
     Expect(0, 2159, '\P{Is_Blk=syriacsup}', "");
@@ -26158,16 +26718,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2160, '\p{^Is_Blk=syriacsup}', "");
     Expect(1, 2160, '\P{Is_Blk=syriacsup}', "");
     Expect(0, 2160, '\P{^Is_Blk=syriacsup}', "");
-    Expect(1, 2159, '\p{Is_Blk=Syriac_Sup}', "");
-    Expect(0, 2159, '\p{^Is_Blk=Syriac_Sup}', "");
-    Expect(0, 2159, '\P{Is_Blk=Syriac_Sup}', "");
-    Expect(1, 2159, '\P{^Is_Blk=Syriac_Sup}', "");
-    Expect(0, 2160, '\p{Is_Blk=Syriac_Sup}', "");
-    Expect(1, 2160, '\p{^Is_Blk=Syriac_Sup}', "");
-    Expect(1, 2160, '\P{Is_Blk=Syriac_Sup}', "");
-    Expect(0, 2160, '\P{^Is_Blk=Syriac_Sup}', "");
-    Error('\p{Block:	:=	 tagalog}');
-    Error('\P{Block:	:=	 tagalog}');
+    Expect(1, 2159, '\p{Is_Blk=	syriac_sup}', "");
+    Expect(0, 2159, '\p{^Is_Blk=	syriac_sup}', "");
+    Expect(0, 2159, '\P{Is_Blk=	syriac_sup}', "");
+    Expect(1, 2159, '\P{^Is_Blk=	syriac_sup}', "");
+    Expect(0, 2160, '\p{Is_Blk=	syriac_sup}', "");
+    Expect(1, 2160, '\p{^Is_Blk=	syriac_sup}', "");
+    Expect(1, 2160, '\P{Is_Blk=	syriac_sup}', "");
+    Expect(0, 2160, '\P{^Is_Blk=	syriac_sup}', "");
+    Error('\p{Block=/a/-_Tagalog}');
+    Error('\P{Block=/a/-_Tagalog}');
     Expect(1, 5919, '\p{Block=:\ATagalog\z:}', "");;
     Expect(0, 5920, '\p{Block=:\ATagalog\z:}', "");;
     Expect(1, 5919, '\p{Block=tagalog}', "");
@@ -26180,16 +26740,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5920, '\P{^Block=tagalog}', "");
     Expect(1, 5919, '\p{Block=:\Atagalog\z:}', "");;
     Expect(0, 5920, '\p{Block=:\Atagalog\z:}', "");;
-    Expect(1, 5919, '\p{Block= tagalog}', "");
-    Expect(0, 5919, '\p{^Block= tagalog}', "");
-    Expect(0, 5919, '\P{Block= tagalog}', "");
-    Expect(1, 5919, '\P{^Block= tagalog}', "");
-    Expect(0, 5920, '\p{Block= tagalog}', "");
-    Expect(1, 5920, '\p{^Block= tagalog}', "");
-    Expect(1, 5920, '\P{Block= tagalog}', "");
-    Expect(0, 5920, '\P{^Block= tagalog}', "");
-    Error('\p{Blk:   /a/-TAGALOG}');
-    Error('\P{Blk:   /a/-TAGALOG}');
+    Expect(1, 5919, '\p{Block=		Tagalog}', "");
+    Expect(0, 5919, '\p{^Block=		Tagalog}', "");
+    Expect(0, 5919, '\P{Block=		Tagalog}', "");
+    Expect(1, 5919, '\P{^Block=		Tagalog}', "");
+    Expect(0, 5920, '\p{Block=		Tagalog}', "");
+    Expect(1, 5920, '\p{^Block=		Tagalog}', "");
+    Expect(1, 5920, '\P{Block=		Tagalog}', "");
+    Expect(0, 5920, '\P{^Block=		Tagalog}', "");
+    Error('\p{Blk=-Tagalog:=}');
+    Error('\P{Blk=-Tagalog:=}');
     Expect(1, 5919, '\p{Blk=:\ATagalog\z:}', "");;
     Expect(0, 5920, '\p{Blk=:\ATagalog\z:}', "");;
     Expect(1, 5919, '\p{Blk=tagalog}', "");
@@ -26202,16 +26762,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5920, '\P{^Blk=tagalog}', "");
     Expect(1, 5919, '\p{Blk=:\Atagalog\z:}', "");;
     Expect(0, 5920, '\p{Blk=:\Atagalog\z:}', "");;
-    Expect(1, 5919, '\p{Blk= -Tagalog}', "");
-    Expect(0, 5919, '\p{^Blk= -Tagalog}', "");
-    Expect(0, 5919, '\P{Blk= -Tagalog}', "");
-    Expect(1, 5919, '\P{^Blk= -Tagalog}', "");
-    Expect(0, 5920, '\p{Blk= -Tagalog}', "");
-    Expect(1, 5920, '\p{^Blk= -Tagalog}', "");
-    Expect(1, 5920, '\P{Blk= -Tagalog}', "");
-    Expect(0, 5920, '\P{^Blk= -Tagalog}', "");
-    Error('\p{Is_Block=_ tagalog:=}');
-    Error('\P{Is_Block=_ tagalog:=}');
+    Expect(1, 5919, '\p{Blk= -TAGALOG}', "");
+    Expect(0, 5919, '\p{^Blk= -TAGALOG}', "");
+    Expect(0, 5919, '\P{Blk= -TAGALOG}', "");
+    Expect(1, 5919, '\P{^Blk= -TAGALOG}', "");
+    Expect(0, 5920, '\p{Blk= -TAGALOG}', "");
+    Expect(1, 5920, '\p{^Blk= -TAGALOG}', "");
+    Expect(1, 5920, '\P{Blk= -TAGALOG}', "");
+    Expect(0, 5920, '\P{^Blk= -TAGALOG}', "");
+    Error('\p{Is_Block=/a/	-Tagalog}');
+    Error('\P{Is_Block=/a/	-Tagalog}');
     Expect(1, 5919, '\p{Is_Block=tagalog}', "");
     Expect(0, 5919, '\p{^Is_Block=tagalog}', "");
     Expect(0, 5919, '\P{Is_Block=tagalog}', "");
@@ -26220,34 +26780,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5920, '\p{^Is_Block=tagalog}', "");
     Expect(1, 5920, '\P{Is_Block=tagalog}', "");
     Expect(0, 5920, '\P{^Is_Block=tagalog}', "");
-    Expect(1, 5919, '\p{Is_Block=- TAGALOG}', "");
-    Expect(0, 5919, '\p{^Is_Block=- TAGALOG}', "");
-    Expect(0, 5919, '\P{Is_Block=- TAGALOG}', "");
-    Expect(1, 5919, '\P{^Is_Block=- TAGALOG}', "");
-    Expect(0, 5920, '\p{Is_Block=- TAGALOG}', "");
-    Expect(1, 5920, '\p{^Is_Block=- TAGALOG}', "");
-    Expect(1, 5920, '\P{Is_Block=- TAGALOG}', "");
-    Expect(0, 5920, '\P{^Is_Block=- TAGALOG}', "");
-    Error('\p{Is_Blk=		Tagalog:=}');
-    Error('\P{Is_Blk=		Tagalog:=}');
-    Expect(1, 5919, '\p{Is_Blk:tagalog}', "");
-    Expect(0, 5919, '\p{^Is_Blk:tagalog}', "");
-    Expect(0, 5919, '\P{Is_Blk:tagalog}', "");
-    Expect(1, 5919, '\P{^Is_Blk:tagalog}', "");
-    Expect(0, 5920, '\p{Is_Blk:tagalog}', "");
-    Expect(1, 5920, '\p{^Is_Blk:tagalog}', "");
-    Expect(1, 5920, '\P{Is_Blk:tagalog}', "");
-    Expect(0, 5920, '\P{^Is_Blk:tagalog}', "");
-    Expect(1, 5919, '\p{Is_Blk= -Tagalog}', "");
-    Expect(0, 5919, '\p{^Is_Blk= -Tagalog}', "");
-    Expect(0, 5919, '\P{Is_Blk= -Tagalog}', "");
-    Expect(1, 5919, '\P{^Is_Blk= -Tagalog}', "");
-    Expect(0, 5920, '\p{Is_Blk= -Tagalog}', "");
-    Expect(1, 5920, '\p{^Is_Blk= -Tagalog}', "");
-    Expect(1, 5920, '\P{Is_Blk= -Tagalog}', "");
-    Expect(0, 5920, '\P{^Is_Blk= -Tagalog}', "");
-    Error('\p{Block=_ Tagbanwa:=}');
-    Error('\P{Block=_ Tagbanwa:=}');
+    Expect(1, 5919, '\p{Is_Block=  tagalog}', "");
+    Expect(0, 5919, '\p{^Is_Block=  tagalog}', "");
+    Expect(0, 5919, '\P{Is_Block=  tagalog}', "");
+    Expect(1, 5919, '\P{^Is_Block=  tagalog}', "");
+    Expect(0, 5920, '\p{Is_Block=  tagalog}', "");
+    Expect(1, 5920, '\p{^Is_Block=  tagalog}', "");
+    Expect(1, 5920, '\P{Is_Block=  tagalog}', "");
+    Expect(0, 5920, '\P{^Is_Block=  tagalog}', "");
+    Error('\p{Is_Blk=:=_	Tagalog}');
+    Error('\P{Is_Blk=:=_	Tagalog}');
+    Expect(1, 5919, '\p{Is_Blk=tagalog}', "");
+    Expect(0, 5919, '\p{^Is_Blk=tagalog}', "");
+    Expect(0, 5919, '\P{Is_Blk=tagalog}', "");
+    Expect(1, 5919, '\P{^Is_Blk=tagalog}', "");
+    Expect(0, 5920, '\p{Is_Blk=tagalog}', "");
+    Expect(1, 5920, '\p{^Is_Blk=tagalog}', "");
+    Expect(1, 5920, '\P{Is_Blk=tagalog}', "");
+    Expect(0, 5920, '\P{^Is_Blk=tagalog}', "");
+    Expect(1, 5919, '\p{Is_Blk=__tagalog}', "");
+    Expect(0, 5919, '\p{^Is_Blk=__tagalog}', "");
+    Expect(0, 5919, '\P{Is_Blk=__tagalog}', "");
+    Expect(1, 5919, '\P{^Is_Blk=__tagalog}', "");
+    Expect(0, 5920, '\p{Is_Blk=__tagalog}', "");
+    Expect(1, 5920, '\p{^Is_Blk=__tagalog}', "");
+    Expect(1, 5920, '\P{Is_Blk=__tagalog}', "");
+    Expect(0, 5920, '\P{^Is_Blk=__tagalog}', "");
+    Error('\p{Block=_TAGBANWA:=}');
+    Error('\P{Block=_TAGBANWA:=}');
     Expect(1, 6015, '\p{Block=:\ATagbanwa\z:}', "");;
     Expect(0, 6016, '\p{Block=:\ATagbanwa\z:}', "");;
     Expect(1, 6015, '\p{Block=tagbanwa}', "");
@@ -26260,16 +26820,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6016, '\P{^Block=tagbanwa}', "");
     Expect(1, 6015, '\p{Block=:\Atagbanwa\z:}', "");;
     Expect(0, 6016, '\p{Block=:\Atagbanwa\z:}', "");;
-    Expect(1, 6015, '\p{Block=-	TAGBANWA}', "");
-    Expect(0, 6015, '\p{^Block=-	TAGBANWA}', "");
-    Expect(0, 6015, '\P{Block=-	TAGBANWA}', "");
-    Expect(1, 6015, '\P{^Block=-	TAGBANWA}', "");
-    Expect(0, 6016, '\p{Block=-	TAGBANWA}', "");
-    Expect(1, 6016, '\p{^Block=-	TAGBANWA}', "");
-    Expect(1, 6016, '\P{Block=-	TAGBANWA}', "");
-    Expect(0, 6016, '\P{^Block=-	TAGBANWA}', "");
-    Error('\p{Blk= /a/Tagbanwa}');
-    Error('\P{Blk= /a/Tagbanwa}');
+    Expect(1, 6015, '\p{Block=	 TAGBANWA}', "");
+    Expect(0, 6015, '\p{^Block=	 TAGBANWA}', "");
+    Expect(0, 6015, '\P{Block=	 TAGBANWA}', "");
+    Expect(1, 6015, '\P{^Block=	 TAGBANWA}', "");
+    Expect(0, 6016, '\p{Block=	 TAGBANWA}', "");
+    Expect(1, 6016, '\p{^Block=	 TAGBANWA}', "");
+    Expect(1, 6016, '\P{Block=	 TAGBANWA}', "");
+    Expect(0, 6016, '\P{^Block=	 TAGBANWA}', "");
+    Error('\p{Blk:-:=TAGBANWA}');
+    Error('\P{Blk:-:=TAGBANWA}');
     Expect(1, 6015, '\p{Blk=:\ATagbanwa\z:}', "");;
     Expect(0, 6016, '\p{Blk=:\ATagbanwa\z:}', "");;
     Expect(1, 6015, '\p{Blk=tagbanwa}', "");
@@ -26282,34 +26842,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6016, '\P{^Blk=tagbanwa}', "");
     Expect(1, 6015, '\p{Blk=:\Atagbanwa\z:}', "");;
     Expect(0, 6016, '\p{Blk=:\Atagbanwa\z:}', "");;
-    Expect(1, 6015, '\p{Blk:   -_Tagbanwa}', "");
-    Expect(0, 6015, '\p{^Blk:   -_Tagbanwa}', "");
-    Expect(0, 6015, '\P{Blk:   -_Tagbanwa}', "");
-    Expect(1, 6015, '\P{^Blk:   -_Tagbanwa}', "");
-    Expect(0, 6016, '\p{Blk:   -_Tagbanwa}', "");
-    Expect(1, 6016, '\p{^Blk:   -_Tagbanwa}', "");
-    Expect(1, 6016, '\P{Blk:   -_Tagbanwa}', "");
-    Expect(0, 6016, '\P{^Blk:   -_Tagbanwa}', "");
-    Error('\p{Is_Block= -Tagbanwa:=}');
-    Error('\P{Is_Block= -Tagbanwa:=}');
-    Expect(1, 6015, '\p{Is_Block=tagbanwa}', "");
-    Expect(0, 6015, '\p{^Is_Block=tagbanwa}', "");
-    Expect(0, 6015, '\P{Is_Block=tagbanwa}', "");
-    Expect(1, 6015, '\P{^Is_Block=tagbanwa}', "");
-    Expect(0, 6016, '\p{Is_Block=tagbanwa}', "");
-    Expect(1, 6016, '\p{^Is_Block=tagbanwa}', "");
-    Expect(1, 6016, '\P{Is_Block=tagbanwa}', "");
-    Expect(0, 6016, '\P{^Is_Block=tagbanwa}', "");
-    Expect(1, 6015, '\p{Is_Block:_-TAGBANWA}', "");
-    Expect(0, 6015, '\p{^Is_Block:_-TAGBANWA}', "");
-    Expect(0, 6015, '\P{Is_Block:_-TAGBANWA}', "");
-    Expect(1, 6015, '\P{^Is_Block:_-TAGBANWA}', "");
-    Expect(0, 6016, '\p{Is_Block:_-TAGBANWA}', "");
-    Expect(1, 6016, '\p{^Is_Block:_-TAGBANWA}', "");
-    Expect(1, 6016, '\P{Is_Block:_-TAGBANWA}', "");
-    Expect(0, 6016, '\P{^Is_Block:_-TAGBANWA}', "");
-    Error('\p{Is_Blk=:=- Tagbanwa}');
-    Error('\P{Is_Blk=:=- Tagbanwa}');
+    Expect(1, 6015, '\p{Blk=_ TAGBANWA}', "");
+    Expect(0, 6015, '\p{^Blk=_ TAGBANWA}', "");
+    Expect(0, 6015, '\P{Blk=_ TAGBANWA}', "");
+    Expect(1, 6015, '\P{^Blk=_ TAGBANWA}', "");
+    Expect(0, 6016, '\p{Blk=_ TAGBANWA}', "");
+    Expect(1, 6016, '\p{^Blk=_ TAGBANWA}', "");
+    Expect(1, 6016, '\P{Blk=_ TAGBANWA}', "");
+    Expect(0, 6016, '\P{^Blk=_ TAGBANWA}', "");
+    Error('\p{Is_Block=-/a/tagbanwa}');
+    Error('\P{Is_Block=-/a/tagbanwa}');
+    Expect(1, 6015, '\p{Is_Block: tagbanwa}', "");
+    Expect(0, 6015, '\p{^Is_Block: tagbanwa}', "");
+    Expect(0, 6015, '\P{Is_Block: tagbanwa}', "");
+    Expect(1, 6015, '\P{^Is_Block: tagbanwa}', "");
+    Expect(0, 6016, '\p{Is_Block: tagbanwa}', "");
+    Expect(1, 6016, '\p{^Is_Block: tagbanwa}', "");
+    Expect(1, 6016, '\P{Is_Block: tagbanwa}', "");
+    Expect(0, 6016, '\P{^Is_Block: tagbanwa}', "");
+    Expect(1, 6015, '\p{Is_Block=		TAGBANWA}', "");
+    Expect(0, 6015, '\p{^Is_Block=		TAGBANWA}', "");
+    Expect(0, 6015, '\P{Is_Block=		TAGBANWA}', "");
+    Expect(1, 6015, '\P{^Is_Block=		TAGBANWA}', "");
+    Expect(0, 6016, '\p{Is_Block=		TAGBANWA}', "");
+    Expect(1, 6016, '\p{^Is_Block=		TAGBANWA}', "");
+    Expect(1, 6016, '\P{Is_Block=		TAGBANWA}', "");
+    Expect(0, 6016, '\P{^Is_Block=		TAGBANWA}', "");
+    Error('\p{Is_Blk=:=	TAGBANWA}');
+    Error('\P{Is_Blk=:=	TAGBANWA}');
     Expect(1, 6015, '\p{Is_Blk=tagbanwa}', "");
     Expect(0, 6015, '\p{^Is_Blk=tagbanwa}', "");
     Expect(0, 6015, '\P{Is_Blk=tagbanwa}', "");
@@ -26318,8 +26878,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6016, '\p{^Is_Blk=tagbanwa}', "");
     Expect(1, 6016, '\P{Is_Blk=tagbanwa}', "");
     Expect(0, 6016, '\P{^Is_Blk=tagbanwa}', "");
-    Error('\p{Block=	_TAGS:=}');
-    Error('\P{Block=	_TAGS:=}');
+    Expect(1, 6015, '\p{Is_Blk= -Tagbanwa}', "");
+    Expect(0, 6015, '\p{^Is_Blk= -Tagbanwa}', "");
+    Expect(0, 6015, '\P{Is_Blk= -Tagbanwa}', "");
+    Expect(1, 6015, '\P{^Is_Blk= -Tagbanwa}', "");
+    Expect(0, 6016, '\p{Is_Blk= -Tagbanwa}', "");
+    Expect(1, 6016, '\p{^Is_Blk= -Tagbanwa}', "");
+    Expect(1, 6016, '\P{Is_Blk= -Tagbanwa}', "");
+    Expect(0, 6016, '\P{^Is_Blk= -Tagbanwa}', "");
+    Error('\p{Block=  tags/a/}');
+    Error('\P{Block=  tags/a/}');
     Expect(1, 917631, '\p{Block=:\ATags\z:}', "");;
     Expect(0, 917632, '\p{Block=:\ATags\z:}', "");;
     Expect(1, 917631, '\p{Block=tags}', "");
@@ -26332,16 +26900,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^Block=tags}', "");
     Expect(1, 917631, '\p{Block=:\Atags\z:}', "");;
     Expect(0, 917632, '\p{Block=:\Atags\z:}', "");;
-    Expect(1, 917631, '\p{Block=	_TAGS}', "");
-    Expect(0, 917631, '\p{^Block=	_TAGS}', "");
-    Expect(0, 917631, '\P{Block=	_TAGS}', "");
-    Expect(1, 917631, '\P{^Block=	_TAGS}', "");
-    Expect(0, 917632, '\p{Block=	_TAGS}', "");
-    Expect(1, 917632, '\p{^Block=	_TAGS}', "");
-    Expect(1, 917632, '\P{Block=	_TAGS}', "");
-    Expect(0, 917632, '\P{^Block=	_TAGS}', "");
-    Error('\p{Blk=-/a/TAGS}');
-    Error('\P{Blk=-/a/TAGS}');
+    Expect(1, 917631, '\p{Block=	-Tags}', "");
+    Expect(0, 917631, '\p{^Block=	-Tags}', "");
+    Expect(0, 917631, '\P{Block=	-Tags}', "");
+    Expect(1, 917631, '\P{^Block=	-Tags}', "");
+    Expect(0, 917632, '\p{Block=	-Tags}', "");
+    Expect(1, 917632, '\p{^Block=	-Tags}', "");
+    Expect(1, 917632, '\P{Block=	-Tags}', "");
+    Expect(0, 917632, '\P{^Block=	-Tags}', "");
+    Error('\p{Blk=:=	TAGS}');
+    Error('\P{Blk=:=	TAGS}');
     Expect(1, 917631, '\p{Blk=:\ATags\z:}', "");;
     Expect(0, 917632, '\p{Blk=:\ATags\z:}', "");;
     Expect(1, 917631, '\p{Blk=tags}', "");
@@ -26354,34 +26922,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^Blk=tags}', "");
     Expect(1, 917631, '\p{Blk=:\Atags\z:}', "");;
     Expect(0, 917632, '\p{Blk=:\Atags\z:}', "");;
-    Expect(1, 917631, '\p{Blk:	-TAGS}', "");
-    Expect(0, 917631, '\p{^Blk:	-TAGS}', "");
-    Expect(0, 917631, '\P{Blk:	-TAGS}', "");
-    Expect(1, 917631, '\P{^Blk:	-TAGS}', "");
-    Expect(0, 917632, '\p{Blk:	-TAGS}', "");
-    Expect(1, 917632, '\p{^Blk:	-TAGS}', "");
-    Expect(1, 917632, '\P{Blk:	-TAGS}', "");
-    Expect(0, 917632, '\P{^Blk:	-TAGS}', "");
-    Error('\p{Is_Block=_Tags/a/}');
-    Error('\P{Is_Block=_Tags/a/}');
-    Expect(1, 917631, '\p{Is_Block=tags}', "");
-    Expect(0, 917631, '\p{^Is_Block=tags}', "");
-    Expect(0, 917631, '\P{Is_Block=tags}', "");
-    Expect(1, 917631, '\P{^Is_Block=tags}', "");
-    Expect(0, 917632, '\p{Is_Block=tags}', "");
-    Expect(1, 917632, '\p{^Is_Block=tags}', "");
-    Expect(1, 917632, '\P{Is_Block=tags}', "");
-    Expect(0, 917632, '\P{^Is_Block=tags}', "");
-    Expect(1, 917631, '\p{Is_Block= _Tags}', "");
-    Expect(0, 917631, '\p{^Is_Block= _Tags}', "");
-    Expect(0, 917631, '\P{Is_Block= _Tags}', "");
-    Expect(1, 917631, '\P{^Is_Block= _Tags}', "");
-    Expect(0, 917632, '\p{Is_Block= _Tags}', "");
-    Expect(1, 917632, '\p{^Is_Block= _Tags}', "");
-    Expect(1, 917632, '\P{Is_Block= _Tags}', "");
-    Expect(0, 917632, '\P{^Is_Block= _Tags}', "");
-    Error('\p{Is_Blk=/a/ _TAGS}');
-    Error('\P{Is_Blk=/a/ _TAGS}');
+    Expect(1, 917631, '\p{Blk=-Tags}', "");
+    Expect(0, 917631, '\p{^Blk=-Tags}', "");
+    Expect(0, 917631, '\P{Blk=-Tags}', "");
+    Expect(1, 917631, '\P{^Blk=-Tags}', "");
+    Expect(0, 917632, '\p{Blk=-Tags}', "");
+    Expect(1, 917632, '\p{^Blk=-Tags}', "");
+    Expect(1, 917632, '\P{Blk=-Tags}', "");
+    Expect(0, 917632, '\P{^Blk=-Tags}', "");
+    Error('\p{Is_Block=-:=tags}');
+    Error('\P{Is_Block=-:=tags}');
+    Expect(1, 917631, '\p{Is_Block:tags}', "");
+    Expect(0, 917631, '\p{^Is_Block:tags}', "");
+    Expect(0, 917631, '\P{Is_Block:tags}', "");
+    Expect(1, 917631, '\P{^Is_Block:tags}', "");
+    Expect(0, 917632, '\p{Is_Block:tags}', "");
+    Expect(1, 917632, '\p{^Is_Block:tags}', "");
+    Expect(1, 917632, '\P{Is_Block:tags}', "");
+    Expect(0, 917632, '\P{^Is_Block:tags}', "");
+    Expect(1, 917631, '\p{Is_Block= Tags}', "");
+    Expect(0, 917631, '\p{^Is_Block= Tags}', "");
+    Expect(0, 917631, '\P{Is_Block= Tags}', "");
+    Expect(1, 917631, '\P{^Is_Block= Tags}', "");
+    Expect(0, 917632, '\p{Is_Block= Tags}', "");
+    Expect(1, 917632, '\p{^Is_Block= Tags}', "");
+    Expect(1, 917632, '\P{Is_Block= Tags}', "");
+    Expect(0, 917632, '\P{^Is_Block= Tags}', "");
+    Error('\p{Is_Blk=/a/	Tags}');
+    Error('\P{Is_Blk=/a/	Tags}');
     Expect(1, 917631, '\p{Is_Blk=tags}', "");
     Expect(0, 917631, '\p{^Is_Blk=tags}', "");
     Expect(0, 917631, '\P{Is_Blk=tags}', "");
@@ -26390,16 +26958,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917632, '\p{^Is_Blk=tags}', "");
     Expect(1, 917632, '\P{Is_Blk=tags}', "");
     Expect(0, 917632, '\P{^Is_Blk=tags}', "");
-    Expect(1, 917631, '\p{Is_Blk=__Tags}', "");
-    Expect(0, 917631, '\p{^Is_Blk=__Tags}', "");
-    Expect(0, 917631, '\P{Is_Blk=__Tags}', "");
-    Expect(1, 917631, '\P{^Is_Blk=__Tags}', "");
-    Expect(0, 917632, '\p{Is_Blk=__Tags}', "");
-    Expect(1, 917632, '\p{^Is_Blk=__Tags}', "");
-    Expect(1, 917632, '\P{Is_Blk=__Tags}', "");
-    Expect(0, 917632, '\P{^Is_Blk=__Tags}', "");
-    Error('\p{Block=:=-	Tai_le}');
-    Error('\P{Block=:=-	Tai_le}');
+    Expect(1, 917631, '\p{Is_Blk= 	TAGS}', "");
+    Expect(0, 917631, '\p{^Is_Blk= 	TAGS}', "");
+    Expect(0, 917631, '\P{Is_Blk= 	TAGS}', "");
+    Expect(1, 917631, '\P{^Is_Blk= 	TAGS}', "");
+    Expect(0, 917632, '\p{Is_Blk= 	TAGS}', "");
+    Expect(1, 917632, '\p{^Is_Blk= 	TAGS}', "");
+    Expect(1, 917632, '\P{Is_Blk= 	TAGS}', "");
+    Expect(0, 917632, '\P{^Is_Blk= 	TAGS}', "");
+    Error('\p{Block=:=  Tai_Le}');
+    Error('\P{Block=:=  Tai_Le}');
     Expect(1, 6527, '\p{Block=:\ATai_Le\z:}', "");;
     Expect(0, 6528, '\p{Block=:\ATai_Le\z:}', "");;
     Expect(1, 6527, '\p{Block=taile}', "");
@@ -26412,16 +26980,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6528, '\P{^Block=taile}', "");
     Expect(1, 6527, '\p{Block=:\Ataile\z:}', "");;
     Expect(0, 6528, '\p{Block=:\Ataile\z:}', "");;
-    Expect(1, 6527, '\p{Block=-tai_Le}', "");
-    Expect(0, 6527, '\p{^Block=-tai_Le}', "");
-    Expect(0, 6527, '\P{Block=-tai_Le}', "");
-    Expect(1, 6527, '\P{^Block=-tai_Le}', "");
-    Expect(0, 6528, '\p{Block=-tai_Le}', "");
-    Expect(1, 6528, '\p{^Block=-tai_Le}', "");
-    Expect(1, 6528, '\P{Block=-tai_Le}', "");
-    Expect(0, 6528, '\P{^Block=-tai_Le}', "");
-    Error('\p{Blk=:=-	tai_Le}');
-    Error('\P{Blk=:=-	tai_Le}');
+    Expect(1, 6527, '\p{Block=-	Tai_Le}', "");
+    Expect(0, 6527, '\p{^Block=-	Tai_Le}', "");
+    Expect(0, 6527, '\P{Block=-	Tai_Le}', "");
+    Expect(1, 6527, '\P{^Block=-	Tai_Le}', "");
+    Expect(0, 6528, '\p{Block=-	Tai_Le}', "");
+    Expect(1, 6528, '\p{^Block=-	Tai_Le}', "");
+    Expect(1, 6528, '\P{Block=-	Tai_Le}', "");
+    Expect(0, 6528, '\P{^Block=-	Tai_Le}', "");
+    Error('\p{Blk=_-TAI_Le/a/}');
+    Error('\P{Blk=_-TAI_Le/a/}');
     Expect(1, 6527, '\p{Blk=:\ATai_Le\z:}', "");;
     Expect(0, 6528, '\p{Blk=:\ATai_Le\z:}', "");;
     Expect(1, 6527, '\p{Blk=taile}', "");
@@ -26434,16 +27002,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6528, '\P{^Blk=taile}', "");
     Expect(1, 6527, '\p{Blk=:\Ataile\z:}', "");;
     Expect(0, 6528, '\p{Blk=:\Ataile\z:}', "");;
-    Expect(1, 6527, '\p{Blk=__TAI_Le}', "");
-    Expect(0, 6527, '\p{^Blk=__TAI_Le}', "");
-    Expect(0, 6527, '\P{Blk=__TAI_Le}', "");
-    Expect(1, 6527, '\P{^Blk=__TAI_Le}', "");
-    Expect(0, 6528, '\p{Blk=__TAI_Le}', "");
-    Expect(1, 6528, '\p{^Blk=__TAI_Le}', "");
-    Expect(1, 6528, '\P{Blk=__TAI_Le}', "");
-    Expect(0, 6528, '\P{^Blk=__TAI_Le}', "");
-    Error('\p{Is_Block=_/a/Tai_le}');
-    Error('\P{Is_Block=_/a/Tai_le}');
+    Expect(1, 6527, '\p{Blk=_ Tai_le}', "");
+    Expect(0, 6527, '\p{^Blk=_ Tai_le}', "");
+    Expect(0, 6527, '\P{Blk=_ Tai_le}', "");
+    Expect(1, 6527, '\P{^Blk=_ Tai_le}', "");
+    Expect(0, 6528, '\p{Blk=_ Tai_le}', "");
+    Expect(1, 6528, '\p{^Blk=_ Tai_le}', "");
+    Expect(1, 6528, '\P{Blk=_ Tai_le}', "");
+    Expect(0, 6528, '\P{^Blk=_ Tai_le}', "");
+    Error('\p{Is_Block=_-tai_Le/a/}');
+    Error('\P{Is_Block=_-tai_Le/a/}');
     Expect(1, 6527, '\p{Is_Block=taile}', "");
     Expect(0, 6527, '\p{^Is_Block=taile}', "");
     Expect(0, 6527, '\P{Is_Block=taile}', "");
@@ -26452,16 +27020,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6528, '\p{^Is_Block=taile}', "");
     Expect(1, 6528, '\P{Is_Block=taile}', "");
     Expect(0, 6528, '\P{^Is_Block=taile}', "");
-    Expect(1, 6527, '\p{Is_Block= _tai_LE}', "");
-    Expect(0, 6527, '\p{^Is_Block= _tai_LE}', "");
-    Expect(0, 6527, '\P{Is_Block= _tai_LE}', "");
-    Expect(1, 6527, '\P{^Is_Block= _tai_LE}', "");
-    Expect(0, 6528, '\p{Is_Block= _tai_LE}', "");
-    Expect(1, 6528, '\p{^Is_Block= _tai_LE}', "");
-    Expect(1, 6528, '\P{Is_Block= _tai_LE}', "");
-    Expect(0, 6528, '\P{^Is_Block= _tai_LE}', "");
-    Error('\p{Is_Blk=/a/__Tai_Le}');
-    Error('\P{Is_Blk=/a/__Tai_Le}');
+    Expect(1, 6527, '\p{Is_Block=_ Tai_LE}', "");
+    Expect(0, 6527, '\p{^Is_Block=_ Tai_LE}', "");
+    Expect(0, 6527, '\P{Is_Block=_ Tai_LE}', "");
+    Expect(1, 6527, '\P{^Is_Block=_ Tai_LE}', "");
+    Expect(0, 6528, '\p{Is_Block=_ Tai_LE}', "");
+    Expect(1, 6528, '\p{^Is_Block=_ Tai_LE}', "");
+    Expect(1, 6528, '\P{Is_Block=_ Tai_LE}', "");
+    Expect(0, 6528, '\P{^Is_Block=_ Tai_LE}', "");
+    Error('\p{Is_Blk=--TAI_LE/a/}');
+    Error('\P{Is_Blk=--TAI_LE/a/}');
     Expect(1, 6527, '\p{Is_Blk=taile}', "");
     Expect(0, 6527, '\p{^Is_Blk=taile}', "");
     Expect(0, 6527, '\P{Is_Blk=taile}', "");
@@ -26470,16 +27038,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6528, '\p{^Is_Blk=taile}', "");
     Expect(1, 6528, '\P{Is_Blk=taile}', "");
     Expect(0, 6528, '\P{^Is_Blk=taile}', "");
-    Expect(1, 6527, '\p{Is_Blk= -Tai_le}', "");
-    Expect(0, 6527, '\p{^Is_Blk= -Tai_le}', "");
-    Expect(0, 6527, '\P{Is_Blk= -Tai_le}', "");
-    Expect(1, 6527, '\P{^Is_Blk= -Tai_le}', "");
-    Expect(0, 6528, '\p{Is_Blk= -Tai_le}', "");
-    Expect(1, 6528, '\p{^Is_Blk= -Tai_le}', "");
-    Expect(1, 6528, '\P{Is_Blk= -Tai_le}', "");
-    Expect(0, 6528, '\P{^Is_Blk= -Tai_le}', "");
-    Error('\p{Block:_-TAI_tham/a/}');
-    Error('\P{Block:_-TAI_tham/a/}');
+    Expect(1, 6527, '\p{Is_Blk=Tai_Le}', "");
+    Expect(0, 6527, '\p{^Is_Blk=Tai_Le}', "");
+    Expect(0, 6527, '\P{Is_Blk=Tai_Le}', "");
+    Expect(1, 6527, '\P{^Is_Blk=Tai_Le}', "");
+    Expect(0, 6528, '\p{Is_Blk=Tai_Le}', "");
+    Expect(1, 6528, '\p{^Is_Blk=Tai_Le}', "");
+    Expect(1, 6528, '\P{Is_Blk=Tai_Le}', "");
+    Expect(0, 6528, '\P{^Is_Blk=Tai_Le}', "");
+    Error('\p{Block=:=-Tai_Tham}');
+    Error('\P{Block=:=-Tai_Tham}');
     Expect(1, 6831, '\p{Block=:\ATai_Tham\z:}', "");;
     Expect(0, 6832, '\p{Block=:\ATai_Tham\z:}', "");;
     Expect(1, 6831, '\p{Block=taitham}', "");
@@ -26492,16 +27060,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6832, '\P{^Block=taitham}', "");
     Expect(1, 6831, '\p{Block=:\Ataitham\z:}', "");;
     Expect(0, 6832, '\p{Block=:\Ataitham\z:}', "");;
-    Expect(1, 6831, '\p{Block=__TAI_Tham}', "");
-    Expect(0, 6831, '\p{^Block=__TAI_Tham}', "");
-    Expect(0, 6831, '\P{Block=__TAI_Tham}', "");
-    Expect(1, 6831, '\P{^Block=__TAI_Tham}', "");
-    Expect(0, 6832, '\p{Block=__TAI_Tham}', "");
-    Expect(1, 6832, '\p{^Block=__TAI_Tham}', "");
-    Expect(1, 6832, '\P{Block=__TAI_Tham}', "");
-    Expect(0, 6832, '\P{^Block=__TAI_Tham}', "");
-    Error('\p{Blk= 	Tai_Tham/a/}');
-    Error('\P{Blk= 	Tai_Tham/a/}');
+    Expect(1, 6831, '\p{Block=_ Tai_Tham}', "");
+    Expect(0, 6831, '\p{^Block=_ Tai_Tham}', "");
+    Expect(0, 6831, '\P{Block=_ Tai_Tham}', "");
+    Expect(1, 6831, '\P{^Block=_ Tai_Tham}', "");
+    Expect(0, 6832, '\p{Block=_ Tai_Tham}', "");
+    Expect(1, 6832, '\p{^Block=_ Tai_Tham}', "");
+    Expect(1, 6832, '\P{Block=_ Tai_Tham}', "");
+    Expect(0, 6832, '\P{^Block=_ Tai_Tham}', "");
+    Error('\p{Blk=/a/ _TAI_Tham}');
+    Error('\P{Blk=/a/ _TAI_Tham}');
     Expect(1, 6831, '\p{Blk=:\ATai_Tham\z:}', "");;
     Expect(0, 6832, '\p{Blk=:\ATai_Tham\z:}', "");;
     Expect(1, 6831, '\p{Blk=taitham}', "");
@@ -26514,16 +27082,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6832, '\P{^Blk=taitham}', "");
     Expect(1, 6831, '\p{Blk=:\Ataitham\z:}', "");;
     Expect(0, 6832, '\p{Blk=:\Ataitham\z:}', "");;
-    Expect(1, 6831, '\p{Blk=	-tai_tham}', "");
-    Expect(0, 6831, '\p{^Blk=	-tai_tham}', "");
-    Expect(0, 6831, '\P{Blk=	-tai_tham}', "");
-    Expect(1, 6831, '\P{^Blk=	-tai_tham}', "");
-    Expect(0, 6832, '\p{Blk=	-tai_tham}', "");
-    Expect(1, 6832, '\p{^Blk=	-tai_tham}', "");
-    Expect(1, 6832, '\P{Blk=	-tai_tham}', "");
-    Expect(0, 6832, '\P{^Blk=	-tai_tham}', "");
-    Error('\p{Is_Block= 	TAI_Tham:=}');
-    Error('\P{Is_Block= 	TAI_Tham:=}');
+    Expect(1, 6831, '\p{Blk=_tai_Tham}', "");
+    Expect(0, 6831, '\p{^Blk=_tai_Tham}', "");
+    Expect(0, 6831, '\P{Blk=_tai_Tham}', "");
+    Expect(1, 6831, '\P{^Blk=_tai_Tham}', "");
+    Expect(0, 6832, '\p{Blk=_tai_Tham}', "");
+    Expect(1, 6832, '\p{^Blk=_tai_Tham}', "");
+    Expect(1, 6832, '\P{Blk=_tai_Tham}', "");
+    Expect(0, 6832, '\P{^Blk=_tai_Tham}', "");
+    Error('\p{Is_Block=/a/_TAI_Tham}');
+    Error('\P{Is_Block=/a/_TAI_Tham}');
     Expect(1, 6831, '\p{Is_Block=taitham}', "");
     Expect(0, 6831, '\p{^Is_Block=taitham}', "");
     Expect(0, 6831, '\P{Is_Block=taitham}', "");
@@ -26532,16 +27100,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6832, '\p{^Is_Block=taitham}', "");
     Expect(1, 6832, '\P{Is_Block=taitham}', "");
     Expect(0, 6832, '\P{^Is_Block=taitham}', "");
-    Expect(1, 6831, '\p{Is_Block=_	Tai_Tham}', "");
-    Expect(0, 6831, '\p{^Is_Block=_	Tai_Tham}', "");
-    Expect(0, 6831, '\P{Is_Block=_	Tai_Tham}', "");
-    Expect(1, 6831, '\P{^Is_Block=_	Tai_Tham}', "");
-    Expect(0, 6832, '\p{Is_Block=_	Tai_Tham}', "");
-    Expect(1, 6832, '\p{^Is_Block=_	Tai_Tham}', "");
-    Expect(1, 6832, '\P{Is_Block=_	Tai_Tham}', "");
-    Expect(0, 6832, '\P{^Is_Block=_	Tai_Tham}', "");
-    Error('\p{Is_Blk= :=Tai_tham}');
-    Error('\P{Is_Blk= :=Tai_tham}');
+    Expect(1, 6831, '\p{Is_Block:		Tai_THAM}', "");
+    Expect(0, 6831, '\p{^Is_Block:		Tai_THAM}', "");
+    Expect(0, 6831, '\P{Is_Block:		Tai_THAM}', "");
+    Expect(1, 6831, '\P{^Is_Block:		Tai_THAM}', "");
+    Expect(0, 6832, '\p{Is_Block:		Tai_THAM}', "");
+    Expect(1, 6832, '\p{^Is_Block:		Tai_THAM}', "");
+    Expect(1, 6832, '\P{Is_Block:		Tai_THAM}', "");
+    Expect(0, 6832, '\P{^Is_Block:		Tai_THAM}', "");
+    Error('\p{Is_Blk=/a/tai_THAM}');
+    Error('\P{Is_Blk=/a/tai_THAM}');
     Expect(1, 6831, '\p{Is_Blk=taitham}', "");
     Expect(0, 6831, '\p{^Is_Blk=taitham}', "");
     Expect(0, 6831, '\P{Is_Blk=taitham}', "");
@@ -26550,38 +27118,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6832, '\p{^Is_Blk=taitham}', "");
     Expect(1, 6832, '\P{Is_Blk=taitham}', "");
     Expect(0, 6832, '\P{^Is_Blk=taitham}', "");
-    Expect(1, 6831, '\p{Is_Blk=_-TAI_Tham}', "");
-    Expect(0, 6831, '\p{^Is_Blk=_-TAI_Tham}', "");
-    Expect(0, 6831, '\P{Is_Blk=_-TAI_Tham}', "");
-    Expect(1, 6831, '\P{^Is_Blk=_-TAI_Tham}', "");
-    Expect(0, 6832, '\p{Is_Blk=_-TAI_Tham}', "");
-    Expect(1, 6832, '\p{^Is_Blk=_-TAI_Tham}', "");
-    Expect(1, 6832, '\P{Is_Blk=_-TAI_Tham}', "");
-    Expect(0, 6832, '\P{^Is_Blk=_-TAI_Tham}', "");
-    Error('\p{Block=/a/ -tai_Viet}');
-    Error('\P{Block=/a/ -tai_Viet}');
+    Expect(1, 6831, '\p{Is_Blk=_-Tai_THAM}', "");
+    Expect(0, 6831, '\p{^Is_Blk=_-Tai_THAM}', "");
+    Expect(0, 6831, '\P{Is_Blk=_-Tai_THAM}', "");
+    Expect(1, 6831, '\P{^Is_Blk=_-Tai_THAM}', "");
+    Expect(0, 6832, '\p{Is_Blk=_-Tai_THAM}', "");
+    Expect(1, 6832, '\p{^Is_Blk=_-Tai_THAM}', "");
+    Expect(1, 6832, '\P{Is_Blk=_-Tai_THAM}', "");
+    Expect(0, 6832, '\P{^Is_Blk=_-Tai_THAM}', "");
+    Error('\p{Block=-/a/TAI_Viet}');
+    Error('\P{Block=-/a/TAI_Viet}');
     Expect(1, 43743, '\p{Block=:\ATai_Viet\z:}', "");;
     Expect(0, 43744, '\p{Block=:\ATai_Viet\z:}', "");;
-    Expect(1, 43743, '\p{Block: taiviet}', "");
-    Expect(0, 43743, '\p{^Block: taiviet}', "");
-    Expect(0, 43743, '\P{Block: taiviet}', "");
-    Expect(1, 43743, '\P{^Block: taiviet}', "");
-    Expect(0, 43744, '\p{Block: taiviet}', "");
-    Expect(1, 43744, '\p{^Block: taiviet}', "");
-    Expect(1, 43744, '\P{Block: taiviet}', "");
-    Expect(0, 43744, '\P{^Block: taiviet}', "");
+    Expect(1, 43743, '\p{Block=taiviet}', "");
+    Expect(0, 43743, '\p{^Block=taiviet}', "");
+    Expect(0, 43743, '\P{Block=taiviet}', "");
+    Expect(1, 43743, '\P{^Block=taiviet}', "");
+    Expect(0, 43744, '\p{Block=taiviet}', "");
+    Expect(1, 43744, '\p{^Block=taiviet}', "");
+    Expect(1, 43744, '\P{Block=taiviet}', "");
+    Expect(0, 43744, '\P{^Block=taiviet}', "");
     Expect(1, 43743, '\p{Block=:\Ataiviet\z:}', "");;
     Expect(0, 43744, '\p{Block=:\Ataiviet\z:}', "");;
-    Expect(1, 43743, '\p{Block=-Tai_VIET}', "");
-    Expect(0, 43743, '\p{^Block=-Tai_VIET}', "");
-    Expect(0, 43743, '\P{Block=-Tai_VIET}', "");
-    Expect(1, 43743, '\P{^Block=-Tai_VIET}', "");
-    Expect(0, 43744, '\p{Block=-Tai_VIET}', "");
-    Expect(1, 43744, '\p{^Block=-Tai_VIET}', "");
-    Expect(1, 43744, '\P{Block=-Tai_VIET}', "");
-    Expect(0, 43744, '\P{^Block=-Tai_VIET}', "");
-    Error('\p{Blk=:=	 tai_Viet}');
-    Error('\P{Blk=:=	 tai_Viet}');
+    Expect(1, 43743, '\p{Block=	_Tai_Viet}', "");
+    Expect(0, 43743, '\p{^Block=	_Tai_Viet}', "");
+    Expect(0, 43743, '\P{Block=	_Tai_Viet}', "");
+    Expect(1, 43743, '\P{^Block=	_Tai_Viet}', "");
+    Expect(0, 43744, '\p{Block=	_Tai_Viet}', "");
+    Expect(1, 43744, '\p{^Block=	_Tai_Viet}', "");
+    Expect(1, 43744, '\P{Block=	_Tai_Viet}', "");
+    Expect(0, 43744, '\P{^Block=	_Tai_Viet}', "");
+    Error('\p{Blk=tai_viet/a/}');
+    Error('\P{Blk=tai_viet/a/}');
     Expect(1, 43743, '\p{Blk=:\ATai_Viet\z:}', "");;
     Expect(0, 43744, '\p{Blk=:\ATai_Viet\z:}', "");;
     Expect(1, 43743, '\p{Blk=taiviet}', "");
@@ -26594,16 +27162,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 43744, '\P{^Blk=taiviet}', "");
     Expect(1, 43743, '\p{Blk=:\Ataiviet\z:}', "");;
     Expect(0, 43744, '\p{Blk=:\Ataiviet\z:}', "");;
-    Expect(1, 43743, '\p{Blk= 	Tai_viet}', "");
-    Expect(0, 43743, '\p{^Blk= 	Tai_viet}', "");
-    Expect(0, 43743, '\P{Blk= 	Tai_viet}', "");
-    Expect(1, 43743, '\P{^Blk= 	Tai_viet}', "");
-    Expect(0, 43744, '\p{Blk= 	Tai_viet}', "");
-    Expect(1, 43744, '\p{^Blk= 	Tai_viet}', "");
-    Expect(1, 43744, '\P{Blk= 	Tai_viet}', "");
-    Expect(0, 43744, '\P{^Blk= 	Tai_viet}', "");
-    Error('\p{Is_Block=:=--Tai_Viet}');
-    Error('\P{Is_Block=:=--Tai_Viet}');
+    Expect(1, 43743, '\p{Blk= 	TAI_Viet}', "");
+    Expect(0, 43743, '\p{^Blk= 	TAI_Viet}', "");
+    Expect(0, 43743, '\P{Blk= 	TAI_Viet}', "");
+    Expect(1, 43743, '\P{^Blk= 	TAI_Viet}', "");
+    Expect(0, 43744, '\p{Blk= 	TAI_Viet}', "");
+    Expect(1, 43744, '\p{^Blk= 	TAI_Viet}', "");
+    Expect(1, 43744, '\P{Blk= 	TAI_Viet}', "");
+    Expect(0, 43744, '\P{^Blk= 	TAI_Viet}', "");
+    Error('\p{Is_Block=:=_ Tai_Viet}');
+    Error('\P{Is_Block=:=_ Tai_Viet}');
     Expect(1, 43743, '\p{Is_Block=taiviet}', "");
     Expect(0, 43743, '\p{^Is_Block=taiviet}', "");
     Expect(0, 43743, '\P{Is_Block=taiviet}', "");
@@ -26612,16 +27180,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43744, '\p{^Is_Block=taiviet}', "");
     Expect(1, 43744, '\P{Is_Block=taiviet}', "");
     Expect(0, 43744, '\P{^Is_Block=taiviet}', "");
-    Expect(1, 43743, '\p{Is_Block= -Tai_viet}', "");
-    Expect(0, 43743, '\p{^Is_Block= -Tai_viet}', "");
-    Expect(0, 43743, '\P{Is_Block= -Tai_viet}', "");
-    Expect(1, 43743, '\P{^Is_Block= -Tai_viet}', "");
-    Expect(0, 43744, '\p{Is_Block= -Tai_viet}', "");
-    Expect(1, 43744, '\p{^Is_Block= -Tai_viet}', "");
-    Expect(1, 43744, '\P{Is_Block= -Tai_viet}', "");
-    Expect(0, 43744, '\P{^Is_Block= -Tai_viet}', "");
-    Error('\p{Is_Blk: -Tai_Viet:=}');
-    Error('\P{Is_Blk: -Tai_Viet:=}');
+    Expect(1, 43743, '\p{Is_Block=_-TAI_VIET}', "");
+    Expect(0, 43743, '\p{^Is_Block=_-TAI_VIET}', "");
+    Expect(0, 43743, '\P{Is_Block=_-TAI_VIET}', "");
+    Expect(1, 43743, '\P{^Is_Block=_-TAI_VIET}', "");
+    Expect(0, 43744, '\p{Is_Block=_-TAI_VIET}', "");
+    Expect(1, 43744, '\p{^Is_Block=_-TAI_VIET}', "");
+    Expect(1, 43744, '\P{Is_Block=_-TAI_VIET}', "");
+    Expect(0, 43744, '\P{^Is_Block=_-TAI_VIET}', "");
+    Error('\p{Is_Blk=_-Tai_VIET/a/}');
+    Error('\P{Is_Blk=_-Tai_VIET/a/}');
     Expect(1, 43743, '\p{Is_Blk=taiviet}', "");
     Expect(0, 43743, '\p{^Is_Blk=taiviet}', "");
     Expect(0, 43743, '\P{Is_Blk=taiviet}', "");
@@ -26630,16 +27198,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 43744, '\p{^Is_Blk=taiviet}', "");
     Expect(1, 43744, '\P{Is_Blk=taiviet}', "");
     Expect(0, 43744, '\P{^Is_Blk=taiviet}', "");
-    Expect(1, 43743, '\p{Is_Blk=_	Tai_viet}', "");
-    Expect(0, 43743, '\p{^Is_Blk=_	Tai_viet}', "");
-    Expect(0, 43743, '\P{Is_Blk=_	Tai_viet}', "");
-    Expect(1, 43743, '\P{^Is_Blk=_	Tai_viet}', "");
-    Expect(0, 43744, '\p{Is_Blk=_	Tai_viet}', "");
-    Expect(1, 43744, '\p{^Is_Blk=_	Tai_viet}', "");
-    Expect(1, 43744, '\P{Is_Blk=_	Tai_viet}', "");
-    Expect(0, 43744, '\P{^Is_Blk=_	Tai_viet}', "");
-    Error('\p{Block=/a/-tai_XUAN_JING_SYMBOLS}');
-    Error('\P{Block=/a/-tai_XUAN_JING_SYMBOLS}');
+    Expect(1, 43743, '\p{Is_Blk=_	Tai_Viet}', "");
+    Expect(0, 43743, '\p{^Is_Blk=_	Tai_Viet}', "");
+    Expect(0, 43743, '\P{Is_Blk=_	Tai_Viet}', "");
+    Expect(1, 43743, '\P{^Is_Blk=_	Tai_Viet}', "");
+    Expect(0, 43744, '\p{Is_Blk=_	Tai_Viet}', "");
+    Expect(1, 43744, '\p{^Is_Blk=_	Tai_Viet}', "");
+    Expect(1, 43744, '\P{Is_Blk=_	Tai_Viet}', "");
+    Expect(0, 43744, '\P{^Is_Blk=_	Tai_Viet}', "");
+    Error('\p{Block= tai_Xuan_Jing_symbols:=}');
+    Error('\P{Block= tai_Xuan_Jing_symbols:=}');
     Expect(1, 119647, '\p{Block=:\ATai_Xuan_Jing_Symbols\z:}', "");;
     Expect(0, 119648, '\p{Block=:\ATai_Xuan_Jing_Symbols\z:}', "");;
     Expect(1, 119647, '\p{Block=taixuanjingsymbols}', "");
@@ -26652,16 +27220,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119648, '\P{^Block=taixuanjingsymbols}', "");
     Expect(1, 119647, '\p{Block=:\Ataixuanjingsymbols\z:}', "");;
     Expect(0, 119648, '\p{Block=:\Ataixuanjingsymbols\z:}', "");;
-    Expect(1, 119647, '\p{Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(0, 119647, '\p{^Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(0, 119647, '\P{Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(1, 119647, '\P{^Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(0, 119648, '\p{Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(1, 119648, '\p{^Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(1, 119648, '\P{Block=_ TAI_Xuan_jing_Symbols}', "");
-    Expect(0, 119648, '\P{^Block=_ TAI_Xuan_jing_Symbols}', "");
-    Error('\p{Blk=	 TAI_xuan_jing/a/}');
-    Error('\P{Blk=	 TAI_xuan_jing/a/}');
+    Expect(1, 119647, '\p{Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(0, 119647, '\p{^Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(0, 119647, '\P{Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(1, 119647, '\P{^Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(0, 119648, '\p{Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(1, 119648, '\p{^Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(1, 119648, '\P{Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Expect(0, 119648, '\P{^Block:   _Tai_XUAN_Jing_Symbols}', "");
+    Error('\p{Blk=/a/Tai_xuan_JING}');
+    Error('\P{Blk=/a/Tai_xuan_JING}');
     Expect(1, 119647, '\p{Blk=:\ATai_Xuan_Jing\z:}', "");;
     Expect(0, 119648, '\p{Blk=:\ATai_Xuan_Jing\z:}', "");;
     Expect(1, 119647, '\p{Blk=taixuanjing}', "");
@@ -26674,34 +27242,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119648, '\P{^Blk=taixuanjing}', "");
     Expect(1, 119647, '\p{Blk=:\Ataixuanjing\z:}', "");;
     Expect(0, 119648, '\p{Blk=:\Ataixuanjing\z:}', "");;
-    Expect(1, 119647, '\p{Blk=_tai_Xuan_Jing}', "");
-    Expect(0, 119647, '\p{^Blk=_tai_Xuan_Jing}', "");
-    Expect(0, 119647, '\P{Blk=_tai_Xuan_Jing}', "");
-    Expect(1, 119647, '\P{^Blk=_tai_Xuan_Jing}', "");
-    Expect(0, 119648, '\p{Blk=_tai_Xuan_Jing}', "");
-    Expect(1, 119648, '\p{^Blk=_tai_Xuan_Jing}', "");
-    Expect(1, 119648, '\P{Blk=_tai_Xuan_Jing}', "");
-    Expect(0, 119648, '\P{^Blk=_tai_Xuan_Jing}', "");
-    Error('\p{Is_Block=	-tai_xuan_Jing_SYMBOLS/a/}');
-    Error('\P{Is_Block=	-tai_xuan_Jing_SYMBOLS/a/}');
-    Expect(1, 119647, '\p{Is_Block:taixuanjingsymbols}', "");
-    Expect(0, 119647, '\p{^Is_Block:taixuanjingsymbols}', "");
-    Expect(0, 119647, '\P{Is_Block:taixuanjingsymbols}', "");
-    Expect(1, 119647, '\P{^Is_Block:taixuanjingsymbols}', "");
-    Expect(0, 119648, '\p{Is_Block:taixuanjingsymbols}', "");
-    Expect(1, 119648, '\p{^Is_Block:taixuanjingsymbols}', "");
-    Expect(1, 119648, '\P{Is_Block:taixuanjingsymbols}', "");
-    Expect(0, 119648, '\P{^Is_Block:taixuanjingsymbols}', "");
-    Expect(1, 119647, '\p{Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(0, 119647, '\p{^Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(0, 119647, '\P{Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(1, 119647, '\P{^Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(0, 119648, '\p{Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(1, 119648, '\p{^Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(1, 119648, '\P{Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Expect(0, 119648, '\P{^Is_Block=_TAI_Xuan_Jing_Symbols}', "");
-    Error('\p{Is_Blk=		Tai_XUAN_Jing:=}');
-    Error('\P{Is_Blk=		Tai_XUAN_Jing:=}');
+    Expect(1, 119647, '\p{Blk=-TAI_Xuan_jing}', "");
+    Expect(0, 119647, '\p{^Blk=-TAI_Xuan_jing}', "");
+    Expect(0, 119647, '\P{Blk=-TAI_Xuan_jing}', "");
+    Expect(1, 119647, '\P{^Blk=-TAI_Xuan_jing}', "");
+    Expect(0, 119648, '\p{Blk=-TAI_Xuan_jing}', "");
+    Expect(1, 119648, '\p{^Blk=-TAI_Xuan_jing}', "");
+    Expect(1, 119648, '\P{Blk=-TAI_Xuan_jing}', "");
+    Expect(0, 119648, '\P{^Blk=-TAI_Xuan_jing}', "");
+    Error('\p{Is_Block=	/a/Tai_Xuan_JING_Symbols}');
+    Error('\P{Is_Block=	/a/Tai_Xuan_JING_Symbols}');
+    Expect(1, 119647, '\p{Is_Block=taixuanjingsymbols}', "");
+    Expect(0, 119647, '\p{^Is_Block=taixuanjingsymbols}', "");
+    Expect(0, 119647, '\P{Is_Block=taixuanjingsymbols}', "");
+    Expect(1, 119647, '\P{^Is_Block=taixuanjingsymbols}', "");
+    Expect(0, 119648, '\p{Is_Block=taixuanjingsymbols}', "");
+    Expect(1, 119648, '\p{^Is_Block=taixuanjingsymbols}', "");
+    Expect(1, 119648, '\P{Is_Block=taixuanjingsymbols}', "");
+    Expect(0, 119648, '\P{^Is_Block=taixuanjingsymbols}', "");
+    Expect(1, 119647, '\p{Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(0, 119647, '\p{^Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(0, 119647, '\P{Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(1, 119647, '\P{^Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(0, 119648, '\p{Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(1, 119648, '\p{^Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(1, 119648, '\P{Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Expect(0, 119648, '\P{^Is_Block=-_Tai_Xuan_Jing_Symbols}', "");
+    Error('\p{Is_Blk=:=	 Tai_XUAN_Jing}');
+    Error('\P{Is_Blk=:=	 Tai_XUAN_Jing}');
     Expect(1, 119647, '\p{Is_Blk=taixuanjing}', "");
     Expect(0, 119647, '\p{^Is_Blk=taixuanjing}', "");
     Expect(0, 119647, '\P{Is_Blk=taixuanjing}', "");
@@ -26710,38 +27278,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119648, '\p{^Is_Blk=taixuanjing}', "");
     Expect(1, 119648, '\P{Is_Blk=taixuanjing}', "");
     Expect(0, 119648, '\P{^Is_Blk=taixuanjing}', "");
-    Expect(1, 119647, '\p{Is_Blk= Tai_XUAN_JING}', "");
-    Expect(0, 119647, '\p{^Is_Blk= Tai_XUAN_JING}', "");
-    Expect(0, 119647, '\P{Is_Blk= Tai_XUAN_JING}', "");
-    Expect(1, 119647, '\P{^Is_Blk= Tai_XUAN_JING}', "");
-    Expect(0, 119648, '\p{Is_Blk= Tai_XUAN_JING}', "");
-    Expect(1, 119648, '\p{^Is_Blk= Tai_XUAN_JING}', "");
-    Expect(1, 119648, '\P{Is_Blk= Tai_XUAN_JING}', "");
-    Expect(0, 119648, '\P{^Is_Blk= Tai_XUAN_JING}', "");
-    Error('\p{Block=  Takri:=}');
-    Error('\P{Block=  Takri:=}');
+    Expect(1, 119647, '\p{Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(0, 119647, '\p{^Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(0, 119647, '\P{Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(1, 119647, '\P{^Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(0, 119648, '\p{Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(1, 119648, '\p{^Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(1, 119648, '\P{Is_Blk=	 Tai_XUAN_jing}', "");
+    Expect(0, 119648, '\P{^Is_Blk=	 Tai_XUAN_jing}', "");
+    Error('\p{Block=Takri/a/}');
+    Error('\P{Block=Takri/a/}');
     Expect(1, 71375, '\p{Block=:\ATakri\z:}', "");;
     Expect(0, 71376, '\p{Block=:\ATakri\z:}', "");;
-    Expect(1, 71375, '\p{Block=takri}', "");
-    Expect(0, 71375, '\p{^Block=takri}', "");
-    Expect(0, 71375, '\P{Block=takri}', "");
-    Expect(1, 71375, '\P{^Block=takri}', "");
-    Expect(0, 71376, '\p{Block=takri}', "");
-    Expect(1, 71376, '\p{^Block=takri}', "");
-    Expect(1, 71376, '\P{Block=takri}', "");
-    Expect(0, 71376, '\P{^Block=takri}', "");
+    Expect(1, 71375, '\p{Block:takri}', "");
+    Expect(0, 71375, '\p{^Block:takri}', "");
+    Expect(0, 71375, '\P{Block:takri}', "");
+    Expect(1, 71375, '\P{^Block:takri}', "");
+    Expect(0, 71376, '\p{Block:takri}', "");
+    Expect(1, 71376, '\p{^Block:takri}', "");
+    Expect(1, 71376, '\P{Block:takri}', "");
+    Expect(0, 71376, '\P{^Block:takri}', "");
     Expect(1, 71375, '\p{Block=:\Atakri\z:}', "");;
     Expect(0, 71376, '\p{Block=:\Atakri\z:}', "");;
-    Expect(1, 71375, '\p{Block=--takri}', "");
-    Expect(0, 71375, '\p{^Block=--takri}', "");
-    Expect(0, 71375, '\P{Block=--takri}', "");
-    Expect(1, 71375, '\P{^Block=--takri}', "");
-    Expect(0, 71376, '\p{Block=--takri}', "");
-    Expect(1, 71376, '\p{^Block=--takri}', "");
-    Expect(1, 71376, '\P{Block=--takri}', "");
-    Expect(0, 71376, '\P{^Block=--takri}', "");
-    Error('\p{Blk=/a/Takri}');
-    Error('\P{Blk=/a/Takri}');
+    Expect(1, 71375, '\p{Block=_takri}', "");
+    Expect(0, 71375, '\p{^Block=_takri}', "");
+    Expect(0, 71375, '\P{Block=_takri}', "");
+    Expect(1, 71375, '\P{^Block=_takri}', "");
+    Expect(0, 71376, '\p{Block=_takri}', "");
+    Expect(1, 71376, '\p{^Block=_takri}', "");
+    Expect(1, 71376, '\P{Block=_takri}', "");
+    Expect(0, 71376, '\P{^Block=_takri}', "");
+    Error('\p{Blk=	 Takri:=}');
+    Error('\P{Blk=	 Takri:=}');
     Expect(1, 71375, '\p{Blk=:\ATakri\z:}', "");;
     Expect(0, 71376, '\p{Blk=:\ATakri\z:}', "");;
     Expect(1, 71375, '\p{Blk=takri}', "");
@@ -26754,8 +27322,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71376, '\P{^Blk=takri}', "");
     Expect(1, 71375, '\p{Blk=:\Atakri\z:}', "");;
     Expect(0, 71376, '\p{Blk=:\Atakri\z:}', "");;
-    Error('\p{Is_Block=	Takri:=}');
-    Error('\P{Is_Block=	Takri:=}');
+    Expect(1, 71375, '\p{Blk=-_TAKRI}', "");
+    Expect(0, 71375, '\p{^Blk=-_TAKRI}', "");
+    Expect(0, 71375, '\P{Blk=-_TAKRI}', "");
+    Expect(1, 71375, '\P{^Blk=-_TAKRI}', "");
+    Expect(0, 71376, '\p{Blk=-_TAKRI}', "");
+    Expect(1, 71376, '\p{^Blk=-_TAKRI}', "");
+    Expect(1, 71376, '\P{Blk=-_TAKRI}', "");
+    Expect(0, 71376, '\P{^Blk=-_TAKRI}', "");
+    Error('\p{Is_Block= :=Takri}');
+    Error('\P{Is_Block= :=Takri}');
     Expect(1, 71375, '\p{Is_Block=takri}', "");
     Expect(0, 71375, '\p{^Is_Block=takri}', "");
     Expect(0, 71375, '\P{Is_Block=takri}', "");
@@ -26764,16 +27340,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71376, '\p{^Is_Block=takri}', "");
     Expect(1, 71376, '\P{Is_Block=takri}', "");
     Expect(0, 71376, '\P{^Is_Block=takri}', "");
-    Expect(1, 71375, '\p{Is_Block=-Takri}', "");
-    Expect(0, 71375, '\p{^Is_Block=-Takri}', "");
-    Expect(0, 71375, '\P{Is_Block=-Takri}', "");
-    Expect(1, 71375, '\P{^Is_Block=-Takri}', "");
-    Expect(0, 71376, '\p{Is_Block=-Takri}', "");
-    Expect(1, 71376, '\p{^Is_Block=-Takri}', "");
-    Expect(1, 71376, '\P{Is_Block=-Takri}', "");
-    Expect(0, 71376, '\P{^Is_Block=-Takri}', "");
-    Error('\p{Is_Blk=_:=takri}');
-    Error('\P{Is_Blk=_:=takri}');
+    Expect(1, 71375, '\p{Is_Block:	-_Takri}', "");
+    Expect(0, 71375, '\p{^Is_Block:	-_Takri}', "");
+    Expect(0, 71375, '\P{Is_Block:	-_Takri}', "");
+    Expect(1, 71375, '\P{^Is_Block:	-_Takri}', "");
+    Expect(0, 71376, '\p{Is_Block:	-_Takri}', "");
+    Expect(1, 71376, '\p{^Is_Block:	-_Takri}', "");
+    Expect(1, 71376, '\P{Is_Block:	-_Takri}', "");
+    Expect(0, 71376, '\P{^Is_Block:	-_Takri}', "");
+    Error('\p{Is_Blk= :=TAKRI}');
+    Error('\P{Is_Blk= :=TAKRI}');
     Expect(1, 71375, '\p{Is_Blk=takri}', "");
     Expect(0, 71375, '\p{^Is_Blk=takri}', "");
     Expect(0, 71375, '\P{Is_Blk=takri}', "");
@@ -26782,38 +27358,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71376, '\p{^Is_Blk=takri}', "");
     Expect(1, 71376, '\P{Is_Blk=takri}', "");
     Expect(0, 71376, '\P{^Is_Blk=takri}', "");
-    Expect(1, 71375, '\p{Is_Blk= Takri}', "");
-    Expect(0, 71375, '\p{^Is_Blk= Takri}', "");
-    Expect(0, 71375, '\P{Is_Blk= Takri}', "");
-    Expect(1, 71375, '\P{^Is_Blk= Takri}', "");
-    Expect(0, 71376, '\p{Is_Blk= Takri}', "");
-    Expect(1, 71376, '\p{^Is_Blk= Takri}', "");
-    Expect(1, 71376, '\P{Is_Blk= Takri}', "");
-    Expect(0, 71376, '\P{^Is_Blk= Takri}', "");
-    Error('\p{Block=_:=tamil}');
-    Error('\P{Block=_:=tamil}');
+    Expect(1, 71375, '\p{Is_Blk=	-Takri}', "");
+    Expect(0, 71375, '\p{^Is_Blk=	-Takri}', "");
+    Expect(0, 71375, '\P{Is_Blk=	-Takri}', "");
+    Expect(1, 71375, '\P{^Is_Blk=	-Takri}', "");
+    Expect(0, 71376, '\p{Is_Blk=	-Takri}', "");
+    Expect(1, 71376, '\p{^Is_Blk=	-Takri}', "");
+    Expect(1, 71376, '\P{Is_Blk=	-Takri}', "");
+    Expect(0, 71376, '\P{^Is_Blk=	-Takri}', "");
+    Error('\p{Block=:= -Tamil}');
+    Error('\P{Block=:= -Tamil}');
     Expect(1, 3071, '\p{Block=:\ATamil\z:}', "");;
     Expect(0, 3072, '\p{Block=:\ATamil\z:}', "");;
-    Expect(1, 3071, '\p{Block:tamil}', "");
-    Expect(0, 3071, '\p{^Block:tamil}', "");
-    Expect(0, 3071, '\P{Block:tamil}', "");
-    Expect(1, 3071, '\P{^Block:tamil}', "");
-    Expect(0, 3072, '\p{Block:tamil}', "");
-    Expect(1, 3072, '\p{^Block:tamil}', "");
-    Expect(1, 3072, '\P{Block:tamil}', "");
-    Expect(0, 3072, '\P{^Block:tamil}', "");
+    Expect(1, 3071, '\p{Block=tamil}', "");
+    Expect(0, 3071, '\p{^Block=tamil}', "");
+    Expect(0, 3071, '\P{Block=tamil}', "");
+    Expect(1, 3071, '\P{^Block=tamil}', "");
+    Expect(0, 3072, '\p{Block=tamil}', "");
+    Expect(1, 3072, '\p{^Block=tamil}', "");
+    Expect(1, 3072, '\P{Block=tamil}', "");
+    Expect(0, 3072, '\P{^Block=tamil}', "");
     Expect(1, 3071, '\p{Block=:\Atamil\z:}', "");;
     Expect(0, 3072, '\p{Block=:\Atamil\z:}', "");;
-    Expect(1, 3071, '\p{Block=		tamil}', "");
-    Expect(0, 3071, '\p{^Block=		tamil}', "");
-    Expect(0, 3071, '\P{Block=		tamil}', "");
-    Expect(1, 3071, '\P{^Block=		tamil}', "");
-    Expect(0, 3072, '\p{Block=		tamil}', "");
-    Expect(1, 3072, '\p{^Block=		tamil}', "");
-    Expect(1, 3072, '\P{Block=		tamil}', "");
-    Expect(0, 3072, '\P{^Block=		tamil}', "");
-    Error('\p{Blk=		Tamil:=}');
-    Error('\P{Blk=		Tamil:=}');
+    Expect(1, 3071, '\p{Block=Tamil}', "");
+    Expect(0, 3071, '\p{^Block=Tamil}', "");
+    Expect(0, 3071, '\P{Block=Tamil}', "");
+    Expect(1, 3071, '\P{^Block=Tamil}', "");
+    Expect(0, 3072, '\p{Block=Tamil}', "");
+    Expect(1, 3072, '\p{^Block=Tamil}', "");
+    Expect(1, 3072, '\P{Block=Tamil}', "");
+    Expect(0, 3072, '\P{^Block=Tamil}', "");
+    Error('\p{Blk=:=TAMIL}');
+    Error('\P{Blk=:=TAMIL}');
     Expect(1, 3071, '\p{Blk=:\ATamil\z:}', "");;
     Expect(0, 3072, '\p{Blk=:\ATamil\z:}', "");;
     Expect(1, 3071, '\p{Blk=tamil}', "");
@@ -26826,16 +27402,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3072, '\P{^Blk=tamil}', "");
     Expect(1, 3071, '\p{Blk=:\Atamil\z:}', "");;
     Expect(0, 3072, '\p{Blk=:\Atamil\z:}', "");;
-    Expect(1, 3071, '\p{Blk: -_tamil}', "");
-    Expect(0, 3071, '\p{^Blk: -_tamil}', "");
-    Expect(0, 3071, '\P{Blk: -_tamil}', "");
-    Expect(1, 3071, '\P{^Blk: -_tamil}', "");
-    Expect(0, 3072, '\p{Blk: -_tamil}', "");
-    Expect(1, 3072, '\p{^Blk: -_tamil}', "");
-    Expect(1, 3072, '\P{Blk: -_tamil}', "");
-    Expect(0, 3072, '\P{^Blk: -_tamil}', "");
-    Error('\p{Is_Block:	:=	_Tamil}');
-    Error('\P{Is_Block:	:=	_Tamil}');
+    Expect(1, 3071, '\p{Blk=--tamil}', "");
+    Expect(0, 3071, '\p{^Blk=--tamil}', "");
+    Expect(0, 3071, '\P{Blk=--tamil}', "");
+    Expect(1, 3071, '\P{^Blk=--tamil}', "");
+    Expect(0, 3072, '\p{Blk=--tamil}', "");
+    Expect(1, 3072, '\p{^Blk=--tamil}', "");
+    Expect(1, 3072, '\P{Blk=--tamil}', "");
+    Expect(0, 3072, '\P{^Blk=--tamil}', "");
+    Error('\p{Is_Block=-Tamil:=}');
+    Error('\P{Is_Block=-Tamil:=}');
     Expect(1, 3071, '\p{Is_Block=tamil}', "");
     Expect(0, 3071, '\p{^Is_Block=tamil}', "");
     Expect(0, 3071, '\P{Is_Block=tamil}', "");
@@ -26844,16 +27420,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3072, '\p{^Is_Block=tamil}', "");
     Expect(1, 3072, '\P{Is_Block=tamil}', "");
     Expect(0, 3072, '\P{^Is_Block=tamil}', "");
-    Expect(1, 3071, '\p{Is_Block=_-Tamil}', "");
-    Expect(0, 3071, '\p{^Is_Block=_-Tamil}', "");
-    Expect(0, 3071, '\P{Is_Block=_-Tamil}', "");
-    Expect(1, 3071, '\P{^Is_Block=_-Tamil}', "");
-    Expect(0, 3072, '\p{Is_Block=_-Tamil}', "");
-    Expect(1, 3072, '\p{^Is_Block=_-Tamil}', "");
-    Expect(1, 3072, '\P{Is_Block=_-Tamil}', "");
-    Expect(0, 3072, '\P{^Is_Block=_-Tamil}', "");
-    Error('\p{Is_Blk=:=-	TAMIL}');
-    Error('\P{Is_Blk=:=-	TAMIL}');
+    Expect(1, 3071, '\p{Is_Block=- Tamil}', "");
+    Expect(0, 3071, '\p{^Is_Block=- Tamil}', "");
+    Expect(0, 3071, '\P{Is_Block=- Tamil}', "");
+    Expect(1, 3071, '\P{^Is_Block=- Tamil}', "");
+    Expect(0, 3072, '\p{Is_Block=- Tamil}', "");
+    Expect(1, 3072, '\p{^Is_Block=- Tamil}', "");
+    Expect(1, 3072, '\P{Is_Block=- Tamil}', "");
+    Expect(0, 3072, '\P{^Is_Block=- Tamil}', "");
+    Error('\p{Is_Blk=--tamil:=}');
+    Error('\P{Is_Blk=--tamil:=}');
     Expect(1, 3071, '\p{Is_Blk=tamil}', "");
     Expect(0, 3071, '\p{^Is_Blk=tamil}', "");
     Expect(0, 3071, '\P{Is_Blk=tamil}', "");
@@ -26862,16 +27438,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3072, '\p{^Is_Blk=tamil}', "");
     Expect(1, 3072, '\P{Is_Blk=tamil}', "");
     Expect(0, 3072, '\P{^Is_Blk=tamil}', "");
-    Expect(1, 3071, '\p{Is_Blk=_-Tamil}', "");
-    Expect(0, 3071, '\p{^Is_Blk=_-Tamil}', "");
-    Expect(0, 3071, '\P{Is_Blk=_-Tamil}', "");
-    Expect(1, 3071, '\P{^Is_Blk=_-Tamil}', "");
-    Expect(0, 3072, '\p{Is_Blk=_-Tamil}', "");
-    Expect(1, 3072, '\p{^Is_Blk=_-Tamil}', "");
-    Expect(1, 3072, '\P{Is_Blk=_-Tamil}', "");
-    Expect(0, 3072, '\P{^Is_Blk=_-Tamil}', "");
-    Error('\p{Block=/a/_TAMIL_supplement}');
-    Error('\P{Block=/a/_TAMIL_supplement}');
+    Expect(1, 3071, '\p{Is_Blk=-TAMIL}', "");
+    Expect(0, 3071, '\p{^Is_Blk=-TAMIL}', "");
+    Expect(0, 3071, '\P{Is_Blk=-TAMIL}', "");
+    Expect(1, 3071, '\P{^Is_Blk=-TAMIL}', "");
+    Expect(0, 3072, '\p{Is_Blk=-TAMIL}', "");
+    Expect(1, 3072, '\p{^Is_Blk=-TAMIL}', "");
+    Expect(1, 3072, '\P{Is_Blk=-TAMIL}', "");
+    Expect(0, 3072, '\P{^Is_Blk=-TAMIL}', "");
+    Error('\p{Block=	/a/Tamil_Supplement}');
+    Error('\P{Block=	/a/Tamil_Supplement}');
     Expect(1, 73727, '\p{Block=:\ATamil_Supplement\z:}', "");;
     Expect(0, 73728, '\p{Block=:\ATamil_Supplement\z:}', "");;
     Expect(1, 73727, '\p{Block=tamilsupplement}', "");
@@ -26884,16 +27460,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73728, '\P{^Block=tamilsupplement}', "");
     Expect(1, 73727, '\p{Block=:\Atamilsupplement\z:}', "");;
     Expect(0, 73728, '\p{Block=:\Atamilsupplement\z:}', "");;
-    Expect(1, 73727, '\p{Block:  	tamil_Supplement}', "");
-    Expect(0, 73727, '\p{^Block:  	tamil_Supplement}', "");
-    Expect(0, 73727, '\P{Block:  	tamil_Supplement}', "");
-    Expect(1, 73727, '\P{^Block:  	tamil_Supplement}', "");
-    Expect(0, 73728, '\p{Block:  	tamil_Supplement}', "");
-    Expect(1, 73728, '\p{^Block:  	tamil_Supplement}', "");
-    Expect(1, 73728, '\P{Block:  	tamil_Supplement}', "");
-    Expect(0, 73728, '\P{^Block:  	tamil_Supplement}', "");
-    Error('\p{Blk=:=TAMIL_Sup}');
-    Error('\P{Blk=:=TAMIL_Sup}');
+    Expect(1, 73727, '\p{Block=	tamil_Supplement}', "");
+    Expect(0, 73727, '\p{^Block=	tamil_Supplement}', "");
+    Expect(0, 73727, '\P{Block=	tamil_Supplement}', "");
+    Expect(1, 73727, '\P{^Block=	tamil_Supplement}', "");
+    Expect(0, 73728, '\p{Block=	tamil_Supplement}', "");
+    Expect(1, 73728, '\p{^Block=	tamil_Supplement}', "");
+    Expect(1, 73728, '\P{Block=	tamil_Supplement}', "");
+    Expect(0, 73728, '\P{^Block=	tamil_Supplement}', "");
+    Error('\p{Blk=:=tamil_SUP}');
+    Error('\P{Blk=:=tamil_SUP}');
     Expect(1, 73727, '\p{Blk=:\ATamil_Sup\z:}', "");;
     Expect(0, 73728, '\p{Blk=:\ATamil_Sup\z:}', "");;
     Expect(1, 73727, '\p{Blk=tamilsup}', "");
@@ -26906,16 +27482,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 73728, '\P{^Blk=tamilsup}', "");
     Expect(1, 73727, '\p{Blk=:\Atamilsup\z:}', "");;
     Expect(0, 73728, '\p{Blk=:\Atamilsup\z:}', "");;
-    Expect(1, 73727, '\p{Blk= Tamil_SUP}', "");
-    Expect(0, 73727, '\p{^Blk= Tamil_SUP}', "");
-    Expect(0, 73727, '\P{Blk= Tamil_SUP}', "");
-    Expect(1, 73727, '\P{^Blk= Tamil_SUP}', "");
-    Expect(0, 73728, '\p{Blk= Tamil_SUP}', "");
-    Expect(1, 73728, '\p{^Blk= Tamil_SUP}', "");
-    Expect(1, 73728, '\P{Blk= Tamil_SUP}', "");
-    Expect(0, 73728, '\P{^Blk= Tamil_SUP}', "");
-    Error('\p{Is_Block=-:=TAMIL_SUPPLEMENT}');
-    Error('\P{Is_Block=-:=TAMIL_SUPPLEMENT}');
+    Expect(1, 73727, '\p{Blk: _-Tamil_Sup}', "");
+    Expect(0, 73727, '\p{^Blk: _-Tamil_Sup}', "");
+    Expect(0, 73727, '\P{Blk: _-Tamil_Sup}', "");
+    Expect(1, 73727, '\P{^Blk: _-Tamil_Sup}', "");
+    Expect(0, 73728, '\p{Blk: _-Tamil_Sup}', "");
+    Expect(1, 73728, '\p{^Blk: _-Tamil_Sup}', "");
+    Expect(1, 73728, '\P{Blk: _-Tamil_Sup}', "");
+    Expect(0, 73728, '\P{^Blk: _-Tamil_Sup}', "");
+    Error('\p{Is_Block=	:=tamil_Supplement}');
+    Error('\P{Is_Block=	:=tamil_Supplement}');
     Expect(1, 73727, '\p{Is_Block=tamilsupplement}', "");
     Expect(0, 73727, '\p{^Is_Block=tamilsupplement}', "");
     Expect(0, 73727, '\P{Is_Block=tamilsupplement}', "");
@@ -26924,16 +27500,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73728, '\p{^Is_Block=tamilsupplement}', "");
     Expect(1, 73728, '\P{Is_Block=tamilsupplement}', "");
     Expect(0, 73728, '\P{^Is_Block=tamilsupplement}', "");
-    Expect(1, 73727, '\p{Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(0, 73727, '\p{^Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(0, 73727, '\P{Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(1, 73727, '\P{^Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(0, 73728, '\p{Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(1, 73728, '\p{^Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(1, 73728, '\P{Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Expect(0, 73728, '\P{^Is_Block=- TAMIL_SUPPLEMENT}', "");
-    Error('\p{Is_Blk=--TAMIL_SUP/a/}');
-    Error('\P{Is_Blk=--TAMIL_SUP/a/}');
+    Expect(1, 73727, '\p{Is_Block=-_tamil_supplement}', "");
+    Expect(0, 73727, '\p{^Is_Block=-_tamil_supplement}', "");
+    Expect(0, 73727, '\P{Is_Block=-_tamil_supplement}', "");
+    Expect(1, 73727, '\P{^Is_Block=-_tamil_supplement}', "");
+    Expect(0, 73728, '\p{Is_Block=-_tamil_supplement}', "");
+    Expect(1, 73728, '\p{^Is_Block=-_tamil_supplement}', "");
+    Expect(1, 73728, '\P{Is_Block=-_tamil_supplement}', "");
+    Expect(0, 73728, '\P{^Is_Block=-_tamil_supplement}', "");
+    Error('\p{Is_Blk=- Tamil_sup/a/}');
+    Error('\P{Is_Blk=- Tamil_sup/a/}');
     Expect(1, 73727, '\p{Is_Blk=tamilsup}', "");
     Expect(0, 73727, '\p{^Is_Blk=tamilsup}', "");
     Expect(0, 73727, '\P{Is_Blk=tamilsup}', "");
@@ -26942,16 +27518,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 73728, '\p{^Is_Blk=tamilsup}', "");
     Expect(1, 73728, '\P{Is_Blk=tamilsup}', "");
     Expect(0, 73728, '\P{^Is_Blk=tamilsup}', "");
-    Expect(1, 73727, '\p{Is_Blk= 	Tamil_SUP}', "");
-    Expect(0, 73727, '\p{^Is_Blk= 	Tamil_SUP}', "");
-    Expect(0, 73727, '\P{Is_Blk= 	Tamil_SUP}', "");
-    Expect(1, 73727, '\P{^Is_Blk= 	Tamil_SUP}', "");
-    Expect(0, 73728, '\p{Is_Blk= 	Tamil_SUP}', "");
-    Expect(1, 73728, '\p{^Is_Blk= 	Tamil_SUP}', "");
-    Expect(1, 73728, '\P{Is_Blk= 	Tamil_SUP}', "");
-    Expect(0, 73728, '\P{^Is_Blk= 	Tamil_SUP}', "");
-    Error('\p{Block=_/a/TANGSA}');
-    Error('\P{Block=_/a/TANGSA}');
+    Expect(1, 73727, '\p{Is_Blk=_-Tamil_Sup}', "");
+    Expect(0, 73727, '\p{^Is_Blk=_-Tamil_Sup}', "");
+    Expect(0, 73727, '\P{Is_Blk=_-Tamil_Sup}', "");
+    Expect(1, 73727, '\P{^Is_Blk=_-Tamil_Sup}', "");
+    Expect(0, 73728, '\p{Is_Blk=_-Tamil_Sup}', "");
+    Expect(1, 73728, '\p{^Is_Blk=_-Tamil_Sup}', "");
+    Expect(1, 73728, '\P{Is_Blk=_-Tamil_Sup}', "");
+    Expect(0, 73728, '\P{^Is_Blk=_-Tamil_Sup}', "");
+    Error('\p{Block= 	TANGSA:=}');
+    Error('\P{Block= 	TANGSA:=}');
     Expect(1, 92879, '\p{Block=:\ATangsa\z:}', "");;
     Expect(0, 92880, '\p{Block=:\ATangsa\z:}', "");;
     Expect(1, 92879, '\p{Block=tangsa}', "");
@@ -26964,16 +27540,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 92880, '\P{^Block=tangsa}', "");
     Expect(1, 92879, '\p{Block=:\Atangsa\z:}', "");;
     Expect(0, 92880, '\p{Block=:\Atangsa\z:}', "");;
-    Expect(1, 92879, '\p{Block=--Tangsa}', "");
-    Expect(0, 92879, '\p{^Block=--Tangsa}', "");
-    Expect(0, 92879, '\P{Block=--Tangsa}', "");
-    Expect(1, 92879, '\P{^Block=--Tangsa}', "");
-    Expect(0, 92880, '\p{Block=--Tangsa}', "");
-    Expect(1, 92880, '\p{^Block=--Tangsa}', "");
-    Expect(1, 92880, '\P{Block=--Tangsa}', "");
-    Expect(0, 92880, '\P{^Block=--Tangsa}', "");
-    Error('\p{Blk=/a/	Tangsa}');
-    Error('\P{Blk=/a/	Tangsa}');
+    Expect(1, 92879, '\p{Block:		 Tangsa}', "");
+    Expect(0, 92879, '\p{^Block:		 Tangsa}', "");
+    Expect(0, 92879, '\P{Block:		 Tangsa}', "");
+    Expect(1, 92879, '\P{^Block:		 Tangsa}', "");
+    Expect(0, 92880, '\p{Block:		 Tangsa}', "");
+    Expect(1, 92880, '\p{^Block:		 Tangsa}', "");
+    Expect(1, 92880, '\P{Block:		 Tangsa}', "");
+    Expect(0, 92880, '\P{^Block:		 Tangsa}', "");
+    Error('\p{Blk=-_TANGSA:=}');
+    Error('\P{Blk=-_TANGSA:=}');
     Expect(1, 92879, '\p{Blk=:\ATangsa\z:}', "");;
     Expect(0, 92880, '\p{Blk=:\ATangsa\z:}', "");;
     Expect(1, 92879, '\p{Blk=tangsa}', "");
@@ -26986,16 +27562,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 92880, '\P{^Blk=tangsa}', "");
     Expect(1, 92879, '\p{Blk=:\Atangsa\z:}', "");;
     Expect(0, 92880, '\p{Blk=:\Atangsa\z:}', "");;
-    Expect(1, 92879, '\p{Blk=  tangsa}', "");
-    Expect(0, 92879, '\p{^Blk=  tangsa}', "");
-    Expect(0, 92879, '\P{Blk=  tangsa}', "");
-    Expect(1, 92879, '\P{^Blk=  tangsa}', "");
-    Expect(0, 92880, '\p{Blk=  tangsa}', "");
-    Expect(1, 92880, '\p{^Blk=  tangsa}', "");
-    Expect(1, 92880, '\P{Blk=  tangsa}', "");
-    Expect(0, 92880, '\P{^Blk=  tangsa}', "");
-    Error('\p{Is_Block=:=-	TANGSA}');
-    Error('\P{Is_Block=:=-	TANGSA}');
+    Expect(1, 92879, '\p{Blk:	-_Tangsa}', "");
+    Expect(0, 92879, '\p{^Blk:	-_Tangsa}', "");
+    Expect(0, 92879, '\P{Blk:	-_Tangsa}', "");
+    Expect(1, 92879, '\P{^Blk:	-_Tangsa}', "");
+    Expect(0, 92880, '\p{Blk:	-_Tangsa}', "");
+    Expect(1, 92880, '\p{^Blk:	-_Tangsa}', "");
+    Expect(1, 92880, '\P{Blk:	-_Tangsa}', "");
+    Expect(0, 92880, '\P{^Blk:	-_Tangsa}', "");
+    Error('\p{Is_Block: /a/ 	Tangsa}');
+    Error('\P{Is_Block: /a/ 	Tangsa}');
     Expect(1, 92879, '\p{Is_Block=tangsa}', "");
     Expect(0, 92879, '\p{^Is_Block=tangsa}', "");
     Expect(0, 92879, '\P{Is_Block=tangsa}', "");
@@ -27004,16 +27580,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 92880, '\p{^Is_Block=tangsa}', "");
     Expect(1, 92880, '\P{Is_Block=tangsa}', "");
     Expect(0, 92880, '\P{^Is_Block=tangsa}', "");
-    Expect(1, 92879, '\p{Is_Block=		Tangsa}', "");
-    Expect(0, 92879, '\p{^Is_Block=		Tangsa}', "");
-    Expect(0, 92879, '\P{Is_Block=		Tangsa}', "");
-    Expect(1, 92879, '\P{^Is_Block=		Tangsa}', "");
-    Expect(0, 92880, '\p{Is_Block=		Tangsa}', "");
-    Expect(1, 92880, '\p{^Is_Block=		Tangsa}', "");
-    Expect(1, 92880, '\P{Is_Block=		Tangsa}', "");
-    Expect(0, 92880, '\P{^Is_Block=		Tangsa}', "");
-    Error('\p{Is_Blk= Tangsa/a/}');
-    Error('\P{Is_Blk= Tangsa/a/}');
+    Expect(1, 92879, '\p{Is_Block=	-Tangsa}', "");
+    Expect(0, 92879, '\p{^Is_Block=	-Tangsa}', "");
+    Expect(0, 92879, '\P{Is_Block=	-Tangsa}', "");
+    Expect(1, 92879, '\P{^Is_Block=	-Tangsa}', "");
+    Expect(0, 92880, '\p{Is_Block=	-Tangsa}', "");
+    Expect(1, 92880, '\p{^Is_Block=	-Tangsa}', "");
+    Expect(1, 92880, '\P{Is_Block=	-Tangsa}', "");
+    Expect(0, 92880, '\P{^Is_Block=	-Tangsa}', "");
+    Error('\p{Is_Blk=	-TANGSA/a/}');
+    Error('\P{Is_Blk=	-TANGSA/a/}');
     Expect(1, 92879, '\p{Is_Blk=tangsa}', "");
     Expect(0, 92879, '\p{^Is_Blk=tangsa}', "");
     Expect(0, 92879, '\P{Is_Blk=tangsa}', "");
@@ -27022,16 +27598,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 92880, '\p{^Is_Blk=tangsa}', "");
     Expect(1, 92880, '\P{Is_Blk=tangsa}', "");
     Expect(0, 92880, '\P{^Is_Blk=tangsa}', "");
-    Expect(1, 92879, '\p{Is_Blk=Tangsa}', "");
-    Expect(0, 92879, '\p{^Is_Blk=Tangsa}', "");
-    Expect(0, 92879, '\P{Is_Blk=Tangsa}', "");
-    Expect(1, 92879, '\P{^Is_Blk=Tangsa}', "");
-    Expect(0, 92880, '\p{Is_Blk=Tangsa}', "");
-    Expect(1, 92880, '\p{^Is_Blk=Tangsa}', "");
-    Expect(1, 92880, '\P{Is_Blk=Tangsa}', "");
-    Expect(0, 92880, '\P{^Is_Blk=Tangsa}', "");
-    Error('\p{Block= /a/Tangut}');
-    Error('\P{Block= /a/Tangut}');
+    Expect(1, 92879, '\p{Is_Blk=-Tangsa}', "");
+    Expect(0, 92879, '\p{^Is_Blk=-Tangsa}', "");
+    Expect(0, 92879, '\P{Is_Blk=-Tangsa}', "");
+    Expect(1, 92879, '\P{^Is_Blk=-Tangsa}', "");
+    Expect(0, 92880, '\p{Is_Blk=-Tangsa}', "");
+    Expect(1, 92880, '\p{^Is_Blk=-Tangsa}', "");
+    Expect(1, 92880, '\P{Is_Blk=-Tangsa}', "");
+    Expect(0, 92880, '\P{^Is_Blk=-Tangsa}', "");
+    Error('\p{Block=-/a/TANGUT}');
+    Error('\P{Block=-/a/TANGUT}');
     Expect(1, 100351, '\p{Block=:\ATangut\z:}', "");;
     Expect(0, 100352, '\p{Block=:\ATangut\z:}', "");;
     Expect(1, 100351, '\p{Block=tangut}', "");
@@ -27044,16 +27620,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 100352, '\P{^Block=tangut}', "");
     Expect(1, 100351, '\p{Block=:\Atangut\z:}', "");;
     Expect(0, 100352, '\p{Block=:\Atangut\z:}', "");;
-    Expect(1, 100351, '\p{Block= -Tangut}', "");
-    Expect(0, 100351, '\p{^Block= -Tangut}', "");
-    Expect(0, 100351, '\P{Block= -Tangut}', "");
-    Expect(1, 100351, '\P{^Block= -Tangut}', "");
-    Expect(0, 100352, '\p{Block= -Tangut}', "");
-    Expect(1, 100352, '\p{^Block= -Tangut}', "");
-    Expect(1, 100352, '\P{Block= -Tangut}', "");
-    Expect(0, 100352, '\P{^Block= -Tangut}', "");
-    Error('\p{Blk=:=	TANGUT}');
-    Error('\P{Blk=:=	TANGUT}');
+    Expect(1, 100351, '\p{Block:   _-tangut}', "");
+    Expect(0, 100351, '\p{^Block:   _-tangut}', "");
+    Expect(0, 100351, '\P{Block:   _-tangut}', "");
+    Expect(1, 100351, '\P{^Block:   _-tangut}', "");
+    Expect(0, 100352, '\p{Block:   _-tangut}', "");
+    Expect(1, 100352, '\p{^Block:   _-tangut}', "");
+    Expect(1, 100352, '\P{Block:   _-tangut}', "");
+    Expect(0, 100352, '\P{^Block:   _-tangut}', "");
+    Error('\p{Blk:	 :=TANGUT}');
+    Error('\P{Blk:	 :=TANGUT}');
     Expect(1, 100351, '\p{Blk=:\ATangut\z:}', "");;
     Expect(0, 100352, '\p{Blk=:\ATangut\z:}', "");;
     Expect(1, 100351, '\p{Blk=tangut}', "");
@@ -27066,16 +27642,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 100352, '\P{^Blk=tangut}', "");
     Expect(1, 100351, '\p{Blk=:\Atangut\z:}', "");;
     Expect(0, 100352, '\p{Blk=:\Atangut\z:}', "");;
-    Expect(1, 100351, '\p{Blk=_ tangut}', "");
-    Expect(0, 100351, '\p{^Blk=_ tangut}', "");
-    Expect(0, 100351, '\P{Blk=_ tangut}', "");
-    Expect(1, 100351, '\P{^Blk=_ tangut}', "");
-    Expect(0, 100352, '\p{Blk=_ tangut}', "");
-    Expect(1, 100352, '\p{^Blk=_ tangut}', "");
-    Expect(1, 100352, '\P{Blk=_ tangut}', "");
-    Expect(0, 100352, '\P{^Blk=_ tangut}', "");
-    Error('\p{Is_Block=_-Tangut/a/}');
-    Error('\P{Is_Block=_-Tangut/a/}');
+    Expect(1, 100351, '\p{Blk=-Tangut}', "");
+    Expect(0, 100351, '\p{^Blk=-Tangut}', "");
+    Expect(0, 100351, '\P{Blk=-Tangut}', "");
+    Expect(1, 100351, '\P{^Blk=-Tangut}', "");
+    Expect(0, 100352, '\p{Blk=-Tangut}', "");
+    Expect(1, 100352, '\p{^Blk=-Tangut}', "");
+    Expect(1, 100352, '\P{Blk=-Tangut}', "");
+    Expect(0, 100352, '\P{^Blk=-Tangut}', "");
+    Error('\p{Is_Block:		_tangut/a/}');
+    Error('\P{Is_Block:		_tangut/a/}');
     Expect(1, 100351, '\p{Is_Block=tangut}', "");
     Expect(0, 100351, '\p{^Is_Block=tangut}', "");
     Expect(0, 100351, '\P{Is_Block=tangut}', "");
@@ -27084,16 +27660,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 100352, '\p{^Is_Block=tangut}', "");
     Expect(1, 100352, '\P{Is_Block=tangut}', "");
     Expect(0, 100352, '\P{^Is_Block=tangut}', "");
-    Expect(1, 100351, '\p{Is_Block=-	Tangut}', "");
-    Expect(0, 100351, '\p{^Is_Block=-	Tangut}', "");
-    Expect(0, 100351, '\P{Is_Block=-	Tangut}', "");
-    Expect(1, 100351, '\P{^Is_Block=-	Tangut}', "");
-    Expect(0, 100352, '\p{Is_Block=-	Tangut}', "");
-    Expect(1, 100352, '\p{^Is_Block=-	Tangut}', "");
-    Expect(1, 100352, '\P{Is_Block=-	Tangut}', "");
-    Expect(0, 100352, '\P{^Is_Block=-	Tangut}', "");
-    Error('\p{Is_Blk:  	tangut:=}');
-    Error('\P{Is_Blk:  	tangut:=}');
+    Expect(1, 100351, '\p{Is_Block: Tangut}', "");
+    Expect(0, 100351, '\p{^Is_Block: Tangut}', "");
+    Expect(0, 100351, '\P{Is_Block: Tangut}', "");
+    Expect(1, 100351, '\P{^Is_Block: Tangut}', "");
+    Expect(0, 100352, '\p{Is_Block: Tangut}', "");
+    Expect(1, 100352, '\p{^Is_Block: Tangut}', "");
+    Expect(1, 100352, '\P{Is_Block: Tangut}', "");
+    Expect(0, 100352, '\P{^Is_Block: Tangut}', "");
+    Error('\p{Is_Blk:	:= 	TANGUT}');
+    Error('\P{Is_Blk:	:= 	TANGUT}');
     Expect(1, 100351, '\p{Is_Blk=tangut}', "");
     Expect(0, 100351, '\p{^Is_Blk=tangut}', "");
     Expect(0, 100351, '\P{Is_Blk=tangut}', "");
@@ -27102,16 +27678,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 100352, '\p{^Is_Blk=tangut}', "");
     Expect(1, 100352, '\P{Is_Blk=tangut}', "");
     Expect(0, 100352, '\P{^Is_Blk=tangut}', "");
-    Expect(1, 100351, '\p{Is_Blk=		tangut}', "");
-    Expect(0, 100351, '\p{^Is_Blk=		tangut}', "");
-    Expect(0, 100351, '\P{Is_Blk=		tangut}', "");
-    Expect(1, 100351, '\P{^Is_Blk=		tangut}', "");
-    Expect(0, 100352, '\p{Is_Blk=		tangut}', "");
-    Expect(1, 100352, '\p{^Is_Blk=		tangut}', "");
-    Expect(1, 100352, '\P{Is_Blk=		tangut}', "");
-    Expect(0, 100352, '\P{^Is_Blk=		tangut}', "");
-    Error('\p{Block=	:=Tangut_Components}');
-    Error('\P{Block=	:=Tangut_Components}');
+    Error('\p{Block=-:=TANGUT_Components}');
+    Error('\P{Block=-:=TANGUT_Components}');
     Expect(1, 101119, '\p{Block=:\ATangut_Components\z:}', "");;
     Expect(0, 101120, '\p{Block=:\ATangut_Components\z:}', "");;
     Expect(1, 101119, '\p{Block=tangutcomponents}', "");
@@ -27124,16 +27692,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 101120, '\P{^Block=tangutcomponents}', "");
     Expect(1, 101119, '\p{Block=:\Atangutcomponents\z:}', "");;
     Expect(0, 101120, '\p{Block=:\Atangutcomponents\z:}', "");;
-    Expect(1, 101119, '\p{Block=_	tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\p{^Block=_	tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\P{Block=_	tangut_COMPONENTS}', "");
-    Expect(1, 101119, '\P{^Block=_	tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\p{Block=_	tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\p{^Block=_	tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\P{Block=_	tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\P{^Block=_	tangut_COMPONENTS}', "");
-    Error('\p{Blk= :=Tangut_Components}');
-    Error('\P{Blk= :=Tangut_Components}');
+    Expect(1, 101119, '\p{Block=		Tangut_components}', "");
+    Expect(0, 101119, '\p{^Block=		Tangut_components}', "");
+    Expect(0, 101119, '\P{Block=		Tangut_components}', "");
+    Expect(1, 101119, '\P{^Block=		Tangut_components}', "");
+    Expect(0, 101120, '\p{Block=		Tangut_components}', "");
+    Expect(1, 101120, '\p{^Block=		Tangut_components}', "");
+    Expect(1, 101120, '\P{Block=		Tangut_components}', "");
+    Expect(0, 101120, '\P{^Block=		Tangut_components}', "");
+    Error('\p{Blk=--tangut_Components/a/}');
+    Error('\P{Blk=--tangut_Components/a/}');
     Expect(1, 101119, '\p{Blk=:\ATangut_Components\z:}', "");;
     Expect(0, 101120, '\p{Blk=:\ATangut_Components\z:}', "");;
     Expect(1, 101119, '\p{Blk=tangutcomponents}', "");
@@ -27146,16 +27714,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 101120, '\P{^Blk=tangutcomponents}', "");
     Expect(1, 101119, '\p{Blk=:\Atangutcomponents\z:}', "");;
     Expect(0, 101120, '\p{Blk=:\Atangutcomponents\z:}', "");;
-    Expect(1, 101119, '\p{Blk=_tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\p{^Blk=_tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\P{Blk=_tangut_COMPONENTS}', "");
-    Expect(1, 101119, '\P{^Blk=_tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\p{Blk=_tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\p{^Blk=_tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\P{Blk=_tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\P{^Blk=_tangut_COMPONENTS}', "");
-    Error('\p{Is_Block= /a/Tangut_Components}');
-    Error('\P{Is_Block= /a/Tangut_Components}');
+    Expect(1, 101119, '\p{Blk=_ TANGUT_components}', "");
+    Expect(0, 101119, '\p{^Blk=_ TANGUT_components}', "");
+    Expect(0, 101119, '\P{Blk=_ TANGUT_components}', "");
+    Expect(1, 101119, '\P{^Blk=_ TANGUT_components}', "");
+    Expect(0, 101120, '\p{Blk=_ TANGUT_components}', "");
+    Expect(1, 101120, '\p{^Blk=_ TANGUT_components}', "");
+    Expect(1, 101120, '\P{Blk=_ TANGUT_components}', "");
+    Expect(0, 101120, '\P{^Blk=_ TANGUT_components}', "");
+    Error('\p{Is_Block=_:=Tangut_components}');
+    Error('\P{Is_Block=_:=Tangut_components}');
     Expect(1, 101119, '\p{Is_Block=tangutcomponents}', "");
     Expect(0, 101119, '\p{^Is_Block=tangutcomponents}', "");
     Expect(0, 101119, '\P{Is_Block=tangutcomponents}', "");
@@ -27164,16 +27732,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 101120, '\p{^Is_Block=tangutcomponents}', "");
     Expect(1, 101120, '\P{Is_Block=tangutcomponents}', "");
     Expect(0, 101120, '\P{^Is_Block=tangutcomponents}', "");
-    Expect(1, 101119, '\p{Is_Block= tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\p{^Is_Block= tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\P{Is_Block= tangut_COMPONENTS}', "");
-    Expect(1, 101119, '\P{^Is_Block= tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\p{Is_Block= tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\p{^Is_Block= tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\P{Is_Block= tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\P{^Is_Block= tangut_COMPONENTS}', "");
-    Error('\p{Is_Blk:   :=	_Tangut_COMPONENTS}');
-    Error('\P{Is_Blk:   :=	_Tangut_COMPONENTS}');
+    Expect(1, 101119, '\p{Is_Block:__Tangut_components}', "");
+    Expect(0, 101119, '\p{^Is_Block:__Tangut_components}', "");
+    Expect(0, 101119, '\P{Is_Block:__Tangut_components}', "");
+    Expect(1, 101119, '\P{^Is_Block:__Tangut_components}', "");
+    Expect(0, 101120, '\p{Is_Block:__Tangut_components}', "");
+    Expect(1, 101120, '\p{^Is_Block:__Tangut_components}', "");
+    Expect(1, 101120, '\P{Is_Block:__Tangut_components}', "");
+    Expect(0, 101120, '\P{^Is_Block:__Tangut_components}', "");
+    Error('\p{Is_Blk=/a/	 Tangut_Components}');
+    Error('\P{Is_Blk=/a/	 Tangut_Components}');
     Expect(1, 101119, '\p{Is_Blk=tangutcomponents}', "");
     Expect(0, 101119, '\p{^Is_Blk=tangutcomponents}', "");
     Expect(0, 101119, '\P{Is_Blk=tangutcomponents}', "");
@@ -27182,16 +27750,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 101120, '\p{^Is_Blk=tangutcomponents}', "");
     Expect(1, 101120, '\P{Is_Blk=tangutcomponents}', "");
     Expect(0, 101120, '\P{^Is_Blk=tangutcomponents}', "");
-    Expect(1, 101119, '\p{Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\p{^Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(0, 101119, '\P{Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(1, 101119, '\P{^Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\p{Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\p{^Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(1, 101120, '\P{Is_Blk=_Tangut_COMPONENTS}', "");
-    Expect(0, 101120, '\P{^Is_Blk=_Tangut_COMPONENTS}', "");
-    Error('\p{Block:	:= 	tangut_SUPPLEMENT}');
-    Error('\P{Block:	:= 	tangut_SUPPLEMENT}');
+    Expect(1, 101119, '\p{Is_Blk=_-tangut_Components}', "");
+    Expect(0, 101119, '\p{^Is_Blk=_-tangut_Components}', "");
+    Expect(0, 101119, '\P{Is_Blk=_-tangut_Components}', "");
+    Expect(1, 101119, '\P{^Is_Blk=_-tangut_Components}', "");
+    Expect(0, 101120, '\p{Is_Blk=_-tangut_Components}', "");
+    Expect(1, 101120, '\p{^Is_Blk=_-tangut_Components}', "");
+    Expect(1, 101120, '\P{Is_Blk=_-tangut_Components}', "");
+    Expect(0, 101120, '\P{^Is_Blk=_-tangut_Components}', "");
+    Error('\p{Block=--Tangut_SUPPLEMENT/a/}');
+    Error('\P{Block=--Tangut_SUPPLEMENT/a/}');
     Expect(1, 101759, '\p{Block=:\ATangut_Supplement\z:}', "");;
     Expect(0, 101760, '\p{Block=:\ATangut_Supplement\z:}', "");;
     Expect(1, 101759, '\p{Block=tangutsupplement}', "");
@@ -27204,16 +27772,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 101760, '\P{^Block=tangutsupplement}', "");
     Expect(1, 101759, '\p{Block=:\Atangutsupplement\z:}', "");;
     Expect(0, 101760, '\p{Block=:\Atangutsupplement\z:}', "");;
-    Expect(1, 101759, '\p{Block:  TANGUT_Supplement}', "");
-    Expect(0, 101759, '\p{^Block:  TANGUT_Supplement}', "");
-    Expect(0, 101759, '\P{Block:  TANGUT_Supplement}', "");
-    Expect(1, 101759, '\P{^Block:  TANGUT_Supplement}', "");
-    Expect(0, 101760, '\p{Block:  TANGUT_Supplement}', "");
-    Expect(1, 101760, '\p{^Block:  TANGUT_Supplement}', "");
-    Expect(1, 101760, '\P{Block:  TANGUT_Supplement}', "");
-    Expect(0, 101760, '\P{^Block:  TANGUT_Supplement}', "");
-    Error('\p{Blk=:=- tangut_Sup}');
-    Error('\P{Blk=:=- tangut_Sup}');
+    Expect(1, 101759, '\p{Block=_	TANGUT_supplement}', "");
+    Expect(0, 101759, '\p{^Block=_	TANGUT_supplement}', "");
+    Expect(0, 101759, '\P{Block=_	TANGUT_supplement}', "");
+    Expect(1, 101759, '\P{^Block=_	TANGUT_supplement}', "");
+    Expect(0, 101760, '\p{Block=_	TANGUT_supplement}', "");
+    Expect(1, 101760, '\p{^Block=_	TANGUT_supplement}', "");
+    Expect(1, 101760, '\P{Block=_	TANGUT_supplement}', "");
+    Expect(0, 101760, '\P{^Block=_	TANGUT_supplement}', "");
+    Error('\p{Blk=:=-_Tangut_sup}');
+    Error('\P{Blk=:=-_Tangut_sup}');
     Expect(1, 101759, '\p{Blk=:\ATangut_Sup\z:}', "");;
     Expect(0, 101760, '\p{Blk=:\ATangut_Sup\z:}', "");;
     Expect(1, 101759, '\p{Blk=tangutsup}', "");
@@ -27226,16 +27794,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 101760, '\P{^Blk=tangutsup}', "");
     Expect(1, 101759, '\p{Blk=:\Atangutsup\z:}', "");;
     Expect(0, 101760, '\p{Blk=:\Atangutsup\z:}', "");;
-    Expect(1, 101759, '\p{Blk=-	Tangut_sup}', "");
-    Expect(0, 101759, '\p{^Blk=-	Tangut_sup}', "");
-    Expect(0, 101759, '\P{Blk=-	Tangut_sup}', "");
-    Expect(1, 101759, '\P{^Blk=-	Tangut_sup}', "");
-    Expect(0, 101760, '\p{Blk=-	Tangut_sup}', "");
-    Expect(1, 101760, '\p{^Blk=-	Tangut_sup}', "");
-    Expect(1, 101760, '\P{Blk=-	Tangut_sup}', "");
-    Expect(0, 101760, '\P{^Blk=-	Tangut_sup}', "");
-    Error('\p{Is_Block=/a/-Tangut_supplement}');
-    Error('\P{Is_Block=/a/-Tangut_supplement}');
+    Expect(1, 101759, '\p{Blk:    _tangut_Sup}', "");
+    Expect(0, 101759, '\p{^Blk:    _tangut_Sup}', "");
+    Expect(0, 101759, '\P{Blk:    _tangut_Sup}', "");
+    Expect(1, 101759, '\P{^Blk:    _tangut_Sup}', "");
+    Expect(0, 101760, '\p{Blk:    _tangut_Sup}', "");
+    Expect(1, 101760, '\p{^Blk:    _tangut_Sup}', "");
+    Expect(1, 101760, '\P{Blk:    _tangut_Sup}', "");
+    Expect(0, 101760, '\P{^Blk:    _tangut_Sup}', "");
+    Error('\p{Is_Block=/a/	-Tangut_Supplement}');
+    Error('\P{Is_Block=/a/	-Tangut_Supplement}');
     Expect(1, 101759, '\p{Is_Block=tangutsupplement}', "");
     Expect(0, 101759, '\p{^Is_Block=tangutsupplement}', "");
     Expect(0, 101759, '\P{Is_Block=tangutsupplement}', "");
@@ -27244,16 +27812,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 101760, '\p{^Is_Block=tangutsupplement}', "");
     Expect(1, 101760, '\P{Is_Block=tangutsupplement}', "");
     Expect(0, 101760, '\P{^Is_Block=tangutsupplement}', "");
-    Expect(1, 101759, '\p{Is_Block=	 Tangut_Supplement}', "");
-    Expect(0, 101759, '\p{^Is_Block=	 Tangut_Supplement}', "");
-    Expect(0, 101759, '\P{Is_Block=	 Tangut_Supplement}', "");
-    Expect(1, 101759, '\P{^Is_Block=	 Tangut_Supplement}', "");
-    Expect(0, 101760, '\p{Is_Block=	 Tangut_Supplement}', "");
-    Expect(1, 101760, '\p{^Is_Block=	 Tangut_Supplement}', "");
-    Expect(1, 101760, '\P{Is_Block=	 Tangut_Supplement}', "");
-    Expect(0, 101760, '\P{^Is_Block=	 Tangut_Supplement}', "");
-    Error('\p{Is_Blk:--TANGUT_Sup/a/}');
-    Error('\P{Is_Blk:--TANGUT_Sup/a/}');
+    Expect(1, 101759, '\p{Is_Block=	Tangut_supplement}', "");
+    Expect(0, 101759, '\p{^Is_Block=	Tangut_supplement}', "");
+    Expect(0, 101759, '\P{Is_Block=	Tangut_supplement}', "");
+    Expect(1, 101759, '\P{^Is_Block=	Tangut_supplement}', "");
+    Expect(0, 101760, '\p{Is_Block=	Tangut_supplement}', "");
+    Expect(1, 101760, '\p{^Is_Block=	Tangut_supplement}', "");
+    Expect(1, 101760, '\P{Is_Block=	Tangut_supplement}', "");
+    Expect(0, 101760, '\P{^Is_Block=	Tangut_supplement}', "");
+    Error('\p{Is_Blk:	tangut_Sup/a/}');
+    Error('\P{Is_Blk:	tangut_Sup/a/}');
     Expect(1, 101759, '\p{Is_Blk=tangutsup}', "");
     Expect(0, 101759, '\p{^Is_Blk=tangutsup}', "");
     Expect(0, 101759, '\P{Is_Blk=tangutsup}', "");
@@ -27262,70 +27830,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 101760, '\p{^Is_Blk=tangutsup}', "");
     Expect(1, 101760, '\P{Is_Blk=tangutsup}', "");
     Expect(0, 101760, '\P{^Is_Blk=tangutsup}', "");
-    Expect(1, 101759, '\p{Is_Blk= Tangut_SUP}', "");
-    Expect(0, 101759, '\p{^Is_Blk= Tangut_SUP}', "");
-    Expect(0, 101759, '\P{Is_Blk= Tangut_SUP}', "");
-    Expect(1, 101759, '\P{^Is_Blk= Tangut_SUP}', "");
-    Expect(0, 101760, '\p{Is_Blk= Tangut_SUP}', "");
-    Expect(1, 101760, '\p{^Is_Blk= Tangut_SUP}', "");
-    Expect(1, 101760, '\P{Is_Blk= Tangut_SUP}', "");
-    Expect(0, 101760, '\P{^Is_Blk= Tangut_SUP}', "");
-    Error('\p{Block=:=-Telugu}');
-    Error('\P{Block=:=-Telugu}');
+    Expect(1, 101759, '\p{Is_Blk=-TANGUT_SUP}', "");
+    Expect(0, 101759, '\p{^Is_Blk=-TANGUT_SUP}', "");
+    Expect(0, 101759, '\P{Is_Blk=-TANGUT_SUP}', "");
+    Expect(1, 101759, '\P{^Is_Blk=-TANGUT_SUP}', "");
+    Expect(0, 101760, '\p{Is_Blk=-TANGUT_SUP}', "");
+    Expect(1, 101760, '\p{^Is_Blk=-TANGUT_SUP}', "");
+    Expect(1, 101760, '\P{Is_Blk=-TANGUT_SUP}', "");
+    Expect(0, 101760, '\P{^Is_Blk=-TANGUT_SUP}', "");
+    Error('\p{Block=:=	TELUGU}');
+    Error('\P{Block=:=	TELUGU}');
     Expect(1, 3199, '\p{Block=:\ATelugu\z:}', "");;
     Expect(0, 3200, '\p{Block=:\ATelugu\z:}', "");;
-    Expect(1, 3199, '\p{Block:	telugu}', "");
-    Expect(0, 3199, '\p{^Block:	telugu}', "");
-    Expect(0, 3199, '\P{Block:	telugu}', "");
-    Expect(1, 3199, '\P{^Block:	telugu}', "");
-    Expect(0, 3200, '\p{Block:	telugu}', "");
-    Expect(1, 3200, '\p{^Block:	telugu}', "");
-    Expect(1, 3200, '\P{Block:	telugu}', "");
-    Expect(0, 3200, '\P{^Block:	telugu}', "");
+    Expect(1, 3199, '\p{Block=telugu}', "");
+    Expect(0, 3199, '\p{^Block=telugu}', "");
+    Expect(0, 3199, '\P{Block=telugu}', "");
+    Expect(1, 3199, '\P{^Block=telugu}', "");
+    Expect(0, 3200, '\p{Block=telugu}', "");
+    Expect(1, 3200, '\p{^Block=telugu}', "");
+    Expect(1, 3200, '\P{Block=telugu}', "");
+    Expect(0, 3200, '\P{^Block=telugu}', "");
     Expect(1, 3199, '\p{Block=:\Atelugu\z:}', "");;
     Expect(0, 3200, '\p{Block=:\Atelugu\z:}', "");;
-    Expect(1, 3199, '\p{Block= _telugu}', "");
-    Expect(0, 3199, '\p{^Block= _telugu}', "");
-    Expect(0, 3199, '\P{Block= _telugu}', "");
-    Expect(1, 3199, '\P{^Block= _telugu}', "");
-    Expect(0, 3200, '\p{Block= _telugu}', "");
-    Expect(1, 3200, '\p{^Block= _telugu}', "");
-    Expect(1, 3200, '\P{Block= _telugu}', "");
-    Expect(0, 3200, '\P{^Block= _telugu}', "");
-    Error('\p{Blk=_:=TELUGU}');
-    Error('\P{Blk=_:=TELUGU}');
+    Expect(1, 3199, '\p{Block=  telugu}', "");
+    Expect(0, 3199, '\p{^Block=  telugu}', "");
+    Expect(0, 3199, '\P{Block=  telugu}', "");
+    Expect(1, 3199, '\P{^Block=  telugu}', "");
+    Expect(0, 3200, '\p{Block=  telugu}', "");
+    Expect(1, 3200, '\p{^Block=  telugu}', "");
+    Expect(1, 3200, '\P{Block=  telugu}', "");
+    Expect(0, 3200, '\P{^Block=  telugu}', "");
+    Error('\p{Blk=	:=TELUGU}');
+    Error('\P{Blk=	:=TELUGU}');
     Expect(1, 3199, '\p{Blk=:\ATelugu\z:}', "");;
     Expect(0, 3200, '\p{Blk=:\ATelugu\z:}', "");;
-    Expect(1, 3199, '\p{Blk=telugu}', "");
-    Expect(0, 3199, '\p{^Blk=telugu}', "");
-    Expect(0, 3199, '\P{Blk=telugu}', "");
-    Expect(1, 3199, '\P{^Blk=telugu}', "");
-    Expect(0, 3200, '\p{Blk=telugu}', "");
-    Expect(1, 3200, '\p{^Blk=telugu}', "");
-    Expect(1, 3200, '\P{Blk=telugu}', "");
-    Expect(0, 3200, '\P{^Blk=telugu}', "");
+    Expect(1, 3199, '\p{Blk: telugu}', "");
+    Expect(0, 3199, '\p{^Blk: telugu}', "");
+    Expect(0, 3199, '\P{Blk: telugu}', "");
+    Expect(1, 3199, '\P{^Blk: telugu}', "");
+    Expect(0, 3200, '\p{Blk: telugu}', "");
+    Expect(1, 3200, '\p{^Blk: telugu}', "");
+    Expect(1, 3200, '\P{Blk: telugu}', "");
+    Expect(0, 3200, '\P{^Blk: telugu}', "");
     Expect(1, 3199, '\p{Blk=:\Atelugu\z:}', "");;
     Expect(0, 3200, '\p{Blk=:\Atelugu\z:}', "");;
-    Error('\p{Is_Block=		telugu/a/}');
-    Error('\P{Is_Block=		telugu/a/}');
-    Expect(1, 3199, '\p{Is_Block:	telugu}', "");
-    Expect(0, 3199, '\p{^Is_Block:	telugu}', "");
-    Expect(0, 3199, '\P{Is_Block:	telugu}', "");
-    Expect(1, 3199, '\P{^Is_Block:	telugu}', "");
-    Expect(0, 3200, '\p{Is_Block:	telugu}', "");
-    Expect(1, 3200, '\p{^Is_Block:	telugu}', "");
-    Expect(1, 3200, '\P{Is_Block:	telugu}', "");
-    Expect(0, 3200, '\P{^Is_Block:	telugu}', "");
-    Expect(1, 3199, '\p{Is_Block= Telugu}', "");
-    Expect(0, 3199, '\p{^Is_Block= Telugu}', "");
-    Expect(0, 3199, '\P{Is_Block= Telugu}', "");
-    Expect(1, 3199, '\P{^Is_Block= Telugu}', "");
-    Expect(0, 3200, '\p{Is_Block= Telugu}', "");
-    Expect(1, 3200, '\p{^Is_Block= Telugu}', "");
-    Expect(1, 3200, '\P{Is_Block= Telugu}', "");
-    Expect(0, 3200, '\P{^Is_Block= Telugu}', "");
-    Error('\p{Is_Blk=-_Telugu/a/}');
-    Error('\P{Is_Blk=-_Telugu/a/}');
+    Expect(1, 3199, '\p{Blk= Telugu}', "");
+    Expect(0, 3199, '\p{^Blk= Telugu}', "");
+    Expect(0, 3199, '\P{Blk= Telugu}', "");
+    Expect(1, 3199, '\P{^Blk= Telugu}', "");
+    Expect(0, 3200, '\p{Blk= Telugu}', "");
+    Expect(1, 3200, '\p{^Blk= Telugu}', "");
+    Expect(1, 3200, '\P{Blk= Telugu}', "");
+    Expect(0, 3200, '\P{^Blk= Telugu}', "");
+    Error('\p{Is_Block=:=	-TELUGU}');
+    Error('\P{Is_Block=:=	-TELUGU}');
+    Expect(1, 3199, '\p{Is_Block=telugu}', "");
+    Expect(0, 3199, '\p{^Is_Block=telugu}', "");
+    Expect(0, 3199, '\P{Is_Block=telugu}', "");
+    Expect(1, 3199, '\P{^Is_Block=telugu}', "");
+    Expect(0, 3200, '\p{Is_Block=telugu}', "");
+    Expect(1, 3200, '\p{^Is_Block=telugu}', "");
+    Expect(1, 3200, '\P{Is_Block=telugu}', "");
+    Expect(0, 3200, '\P{^Is_Block=telugu}', "");
+    Expect(1, 3199, '\p{Is_Block:	 Telugu}', "");
+    Expect(0, 3199, '\p{^Is_Block:	 Telugu}', "");
+    Expect(0, 3199, '\P{Is_Block:	 Telugu}', "");
+    Expect(1, 3199, '\P{^Is_Block:	 Telugu}', "");
+    Expect(0, 3200, '\p{Is_Block:	 Telugu}', "");
+    Expect(1, 3200, '\p{^Is_Block:	 Telugu}', "");
+    Expect(1, 3200, '\P{Is_Block:	 Telugu}', "");
+    Expect(0, 3200, '\P{^Is_Block:	 Telugu}', "");
+    Error('\p{Is_Blk=:=	_TELUGU}');
+    Error('\P{Is_Blk=:=	_TELUGU}');
     Expect(1, 3199, '\p{Is_Blk=telugu}', "");
     Expect(0, 3199, '\p{^Is_Blk=telugu}', "");
     Expect(0, 3199, '\P{Is_Blk=telugu}', "");
@@ -27334,16 +27910,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3200, '\p{^Is_Blk=telugu}', "");
     Expect(1, 3200, '\P{Is_Blk=telugu}', "");
     Expect(0, 3200, '\P{^Is_Blk=telugu}', "");
-    Expect(1, 3199, '\p{Is_Blk=	_Telugu}', "");
-    Expect(0, 3199, '\p{^Is_Blk=	_Telugu}', "");
-    Expect(0, 3199, '\P{Is_Blk=	_Telugu}', "");
-    Expect(1, 3199, '\P{^Is_Blk=	_Telugu}', "");
-    Expect(0, 3200, '\p{Is_Blk=	_Telugu}', "");
-    Expect(1, 3200, '\p{^Is_Blk=	_Telugu}', "");
-    Expect(1, 3200, '\P{Is_Blk=	_Telugu}', "");
-    Expect(0, 3200, '\P{^Is_Blk=	_Telugu}', "");
-    Error('\p{Block=:= -thaana}');
-    Error('\P{Block=:= -thaana}');
+    Expect(1, 3199, '\p{Is_Blk= TELUGU}', "");
+    Expect(0, 3199, '\p{^Is_Blk= TELUGU}', "");
+    Expect(0, 3199, '\P{Is_Blk= TELUGU}', "");
+    Expect(1, 3199, '\P{^Is_Blk= TELUGU}', "");
+    Expect(0, 3200, '\p{Is_Blk= TELUGU}', "");
+    Expect(1, 3200, '\p{^Is_Blk= TELUGU}', "");
+    Expect(1, 3200, '\P{Is_Blk= TELUGU}', "");
+    Expect(0, 3200, '\P{^Is_Blk= TELUGU}', "");
+    Error('\p{Block=:= -Thaana}');
+    Error('\P{Block=:= -Thaana}');
     Expect(1, 1983, '\p{Block=:\AThaana\z:}', "");;
     Expect(0, 1984, '\p{Block=:\AThaana\z:}', "");;
     Expect(1, 1983, '\p{Block=thaana}', "");
@@ -27356,16 +27932,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1984, '\P{^Block=thaana}', "");
     Expect(1, 1983, '\p{Block=:\Athaana\z:}', "");;
     Expect(0, 1984, '\p{Block=:\Athaana\z:}', "");;
-    Expect(1, 1983, '\p{Block:   -Thaana}', "");
-    Expect(0, 1983, '\p{^Block:   -Thaana}', "");
-    Expect(0, 1983, '\P{Block:   -Thaana}', "");
-    Expect(1, 1983, '\P{^Block:   -Thaana}', "");
-    Expect(0, 1984, '\p{Block:   -Thaana}', "");
-    Expect(1, 1984, '\p{^Block:   -Thaana}', "");
-    Expect(1, 1984, '\P{Block:   -Thaana}', "");
-    Expect(0, 1984, '\P{^Block:   -Thaana}', "");
-    Error('\p{Blk: _/a/thaana}');
-    Error('\P{Blk: _/a/thaana}');
+    Expect(1, 1983, '\p{Block=-	Thaana}', "");
+    Expect(0, 1983, '\p{^Block=-	Thaana}', "");
+    Expect(0, 1983, '\P{Block=-	Thaana}', "");
+    Expect(1, 1983, '\P{^Block=-	Thaana}', "");
+    Expect(0, 1984, '\p{Block=-	Thaana}', "");
+    Expect(1, 1984, '\p{^Block=-	Thaana}', "");
+    Expect(1, 1984, '\P{Block=-	Thaana}', "");
+    Expect(0, 1984, '\P{^Block=-	Thaana}', "");
+    Error('\p{Blk=/a/	-thaana}');
+    Error('\P{Blk=/a/	-thaana}');
     Expect(1, 1983, '\p{Blk=:\AThaana\z:}', "");;
     Expect(0, 1984, '\p{Blk=:\AThaana\z:}', "");;
     Expect(1, 1983, '\p{Blk=thaana}', "");
@@ -27378,16 +27954,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1984, '\P{^Blk=thaana}', "");
     Expect(1, 1983, '\p{Blk=:\Athaana\z:}', "");;
     Expect(0, 1984, '\p{Blk=:\Athaana\z:}', "");;
-    Expect(1, 1983, '\p{Blk=--THAANA}', "");
-    Expect(0, 1983, '\p{^Blk=--THAANA}', "");
-    Expect(0, 1983, '\P{Blk=--THAANA}', "");
-    Expect(1, 1983, '\P{^Blk=--THAANA}', "");
-    Expect(0, 1984, '\p{Blk=--THAANA}', "");
-    Expect(1, 1984, '\p{^Blk=--THAANA}', "");
-    Expect(1, 1984, '\P{Blk=--THAANA}', "");
-    Expect(0, 1984, '\P{^Blk=--THAANA}', "");
-    Error('\p{Is_Block=	-Thaana/a/}');
-    Error('\P{Is_Block=	-Thaana/a/}');
+    Expect(1, 1983, '\p{Blk=-Thaana}', "");
+    Expect(0, 1983, '\p{^Blk=-Thaana}', "");
+    Expect(0, 1983, '\P{Blk=-Thaana}', "");
+    Expect(1, 1983, '\P{^Blk=-Thaana}', "");
+    Expect(0, 1984, '\p{Blk=-Thaana}', "");
+    Expect(1, 1984, '\p{^Blk=-Thaana}', "");
+    Expect(1, 1984, '\P{Blk=-Thaana}', "");
+    Expect(0, 1984, '\P{^Blk=-Thaana}', "");
+    Error('\p{Is_Block=/a/THAANA}');
+    Error('\P{Is_Block=/a/THAANA}');
     Expect(1, 1983, '\p{Is_Block=thaana}', "");
     Expect(0, 1983, '\p{^Is_Block=thaana}', "");
     Expect(0, 1983, '\P{Is_Block=thaana}', "");
@@ -27396,16 +27972,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1984, '\p{^Is_Block=thaana}', "");
     Expect(1, 1984, '\P{Is_Block=thaana}', "");
     Expect(0, 1984, '\P{^Is_Block=thaana}', "");
-    Expect(1, 1983, '\p{Is_Block=-THAANA}', "");
-    Expect(0, 1983, '\p{^Is_Block=-THAANA}', "");
-    Expect(0, 1983, '\P{Is_Block=-THAANA}', "");
-    Expect(1, 1983, '\P{^Is_Block=-THAANA}', "");
-    Expect(0, 1984, '\p{Is_Block=-THAANA}', "");
-    Expect(1, 1984, '\p{^Is_Block=-THAANA}', "");
-    Expect(1, 1984, '\P{Is_Block=-THAANA}', "");
-    Expect(0, 1984, '\P{^Is_Block=-THAANA}', "");
-    Error('\p{Is_Blk=/a/--THAANA}');
-    Error('\P{Is_Blk=/a/--THAANA}');
+    Expect(1, 1983, '\p{Is_Block=-	Thaana}', "");
+    Expect(0, 1983, '\p{^Is_Block=-	Thaana}', "");
+    Expect(0, 1983, '\P{Is_Block=-	Thaana}', "");
+    Expect(1, 1983, '\P{^Is_Block=-	Thaana}', "");
+    Expect(0, 1984, '\p{Is_Block=-	Thaana}', "");
+    Expect(1, 1984, '\p{^Is_Block=-	Thaana}', "");
+    Expect(1, 1984, '\P{Is_Block=-	Thaana}', "");
+    Expect(0, 1984, '\P{^Is_Block=-	Thaana}', "");
+    Error('\p{Is_Blk=_ Thaana/a/}');
+    Error('\P{Is_Blk=_ Thaana/a/}');
     Expect(1, 1983, '\p{Is_Blk=thaana}', "");
     Expect(0, 1983, '\p{^Is_Blk=thaana}', "");
     Expect(0, 1983, '\P{Is_Blk=thaana}', "");
@@ -27414,16 +27990,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1984, '\p{^Is_Blk=thaana}', "");
     Expect(1, 1984, '\P{Is_Blk=thaana}', "");
     Expect(0, 1984, '\P{^Is_Blk=thaana}', "");
-    Expect(1, 1983, '\p{Is_Blk:		Thaana}', "");
-    Expect(0, 1983, '\p{^Is_Blk:		Thaana}', "");
-    Expect(0, 1983, '\P{Is_Blk:		Thaana}', "");
-    Expect(1, 1983, '\P{^Is_Blk:		Thaana}', "");
-    Expect(0, 1984, '\p{Is_Blk:		Thaana}', "");
-    Expect(1, 1984, '\p{^Is_Blk:		Thaana}', "");
-    Expect(1, 1984, '\P{Is_Blk:		Thaana}', "");
-    Expect(0, 1984, '\P{^Is_Blk:		Thaana}', "");
-    Error('\p{Block=	thai:=}');
-    Error('\P{Block=	thai:=}');
+    Expect(1, 1983, '\p{Is_Blk=	THAANA}', "");
+    Expect(0, 1983, '\p{^Is_Blk=	THAANA}', "");
+    Expect(0, 1983, '\P{Is_Blk=	THAANA}', "");
+    Expect(1, 1983, '\P{^Is_Blk=	THAANA}', "");
+    Expect(0, 1984, '\p{Is_Blk=	THAANA}', "");
+    Expect(1, 1984, '\p{^Is_Blk=	THAANA}', "");
+    Expect(1, 1984, '\P{Is_Blk=	THAANA}', "");
+    Expect(0, 1984, '\P{^Is_Blk=	THAANA}', "");
+    Error('\p{Block= /a/Thai}');
+    Error('\P{Block= /a/Thai}');
     Expect(1, 3711, '\p{Block=:\AThai\z:}', "");;
     Expect(0, 3712, '\p{Block=:\AThai\z:}', "");;
     Expect(1, 3711, '\p{Block=thai}', "");
@@ -27436,16 +28012,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3712, '\P{^Block=thai}', "");
     Expect(1, 3711, '\p{Block=:\Athai\z:}', "");;
     Expect(0, 3712, '\p{Block=:\Athai\z:}', "");;
-    Expect(1, 3711, '\p{Block=	_Thai}', "");
-    Expect(0, 3711, '\p{^Block=	_Thai}', "");
-    Expect(0, 3711, '\P{Block=	_Thai}', "");
-    Expect(1, 3711, '\P{^Block=	_Thai}', "");
-    Expect(0, 3712, '\p{Block=	_Thai}', "");
-    Expect(1, 3712, '\p{^Block=	_Thai}', "");
-    Expect(1, 3712, '\P{Block=	_Thai}', "");
-    Expect(0, 3712, '\P{^Block=	_Thai}', "");
-    Error('\p{Blk=:=_Thai}');
-    Error('\P{Blk=:=_Thai}');
+    Expect(1, 3711, '\p{Block=_-thai}', "");
+    Expect(0, 3711, '\p{^Block=_-thai}', "");
+    Expect(0, 3711, '\P{Block=_-thai}', "");
+    Expect(1, 3711, '\P{^Block=_-thai}', "");
+    Expect(0, 3712, '\p{Block=_-thai}', "");
+    Expect(1, 3712, '\p{^Block=_-thai}', "");
+    Expect(1, 3712, '\P{Block=_-thai}', "");
+    Expect(0, 3712, '\P{^Block=_-thai}', "");
+    Error('\p{Blk=_ Thai:=}');
+    Error('\P{Blk=_ Thai:=}');
     Expect(1, 3711, '\p{Blk=:\AThai\z:}', "");;
     Expect(0, 3712, '\p{Blk=:\AThai\z:}', "");;
     Expect(1, 3711, '\p{Blk=thai}', "");
@@ -27458,14 +28034,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3712, '\P{^Blk=thai}', "");
     Expect(1, 3711, '\p{Blk=:\Athai\z:}', "");;
     Expect(0, 3712, '\p{Blk=:\Athai\z:}', "");;
-    Expect(1, 3711, '\p{Blk=--THAI}', "");
-    Expect(0, 3711, '\p{^Blk=--THAI}', "");
-    Expect(0, 3711, '\P{Blk=--THAI}', "");
-    Expect(1, 3711, '\P{^Blk=--THAI}', "");
-    Expect(0, 3712, '\p{Blk=--THAI}', "");
-    Expect(1, 3712, '\p{^Blk=--THAI}', "");
-    Expect(1, 3712, '\P{Blk=--THAI}', "");
-    Expect(0, 3712, '\P{^Blk=--THAI}', "");
+    Expect(1, 3711, '\p{Blk=	-Thai}', "");
+    Expect(0, 3711, '\p{^Blk=	-Thai}', "");
+    Expect(0, 3711, '\P{Blk=	-Thai}', "");
+    Expect(1, 3711, '\P{^Blk=	-Thai}', "");
+    Expect(0, 3712, '\p{Blk=	-Thai}', "");
+    Expect(1, 3712, '\p{^Blk=	-Thai}', "");
+    Expect(1, 3712, '\P{Blk=	-Thai}', "");
+    Expect(0, 3712, '\P{^Blk=	-Thai}', "");
     Error('\p{Is_Block=/a/thai}');
     Error('\P{Is_Block=/a/thai}');
     Expect(1, 3711, '\p{Is_Block=thai}', "");
@@ -27476,16 +28052,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3712, '\p{^Is_Block=thai}', "");
     Expect(1, 3712, '\P{Is_Block=thai}', "");
     Expect(0, 3712, '\P{^Is_Block=thai}', "");
-    Expect(1, 3711, '\p{Is_Block=_-THAI}', "");
-    Expect(0, 3711, '\p{^Is_Block=_-THAI}', "");
-    Expect(0, 3711, '\P{Is_Block=_-THAI}', "");
-    Expect(1, 3711, '\P{^Is_Block=_-THAI}', "");
-    Expect(0, 3712, '\p{Is_Block=_-THAI}', "");
-    Expect(1, 3712, '\p{^Is_Block=_-THAI}', "");
-    Expect(1, 3712, '\P{Is_Block=_-THAI}', "");
-    Expect(0, 3712, '\P{^Is_Block=_-THAI}', "");
-    Error('\p{Is_Blk= /a/Thai}');
-    Error('\P{Is_Blk= /a/Thai}');
+    Expect(1, 3711, '\p{Is_Block=	thai}', "");
+    Expect(0, 3711, '\p{^Is_Block=	thai}', "");
+    Expect(0, 3711, '\P{Is_Block=	thai}', "");
+    Expect(1, 3711, '\P{^Is_Block=	thai}', "");
+    Expect(0, 3712, '\p{Is_Block=	thai}', "");
+    Expect(1, 3712, '\p{^Is_Block=	thai}', "");
+    Expect(1, 3712, '\P{Is_Block=	thai}', "");
+    Expect(0, 3712, '\P{^Is_Block=	thai}', "");
+    Error('\p{Is_Blk=-/a/Thai}');
+    Error('\P{Is_Blk=-/a/Thai}');
     Expect(1, 3711, '\p{Is_Blk=thai}', "");
     Expect(0, 3711, '\p{^Is_Blk=thai}', "");
     Expect(0, 3711, '\P{Is_Blk=thai}', "");
@@ -27494,38 +28070,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3712, '\p{^Is_Blk=thai}', "");
     Expect(1, 3712, '\P{Is_Blk=thai}', "");
     Expect(0, 3712, '\P{^Is_Blk=thai}', "");
-    Expect(1, 3711, '\p{Is_Blk=_	THAI}', "");
-    Expect(0, 3711, '\p{^Is_Blk=_	THAI}', "");
-    Expect(0, 3711, '\P{Is_Blk=_	THAI}', "");
-    Expect(1, 3711, '\P{^Is_Blk=_	THAI}', "");
-    Expect(0, 3712, '\p{Is_Blk=_	THAI}', "");
-    Expect(1, 3712, '\p{^Is_Blk=_	THAI}', "");
-    Expect(1, 3712, '\P{Is_Blk=_	THAI}', "");
-    Expect(0, 3712, '\P{^Is_Blk=_	THAI}', "");
-    Error('\p{Block=:=tibetan}');
-    Error('\P{Block=:=tibetan}');
+    Expect(1, 3711, '\p{Is_Blk=-thai}', "");
+    Expect(0, 3711, '\p{^Is_Blk=-thai}', "");
+    Expect(0, 3711, '\P{Is_Blk=-thai}', "");
+    Expect(1, 3711, '\P{^Is_Blk=-thai}', "");
+    Expect(0, 3712, '\p{Is_Blk=-thai}', "");
+    Expect(1, 3712, '\p{^Is_Blk=-thai}', "");
+    Expect(1, 3712, '\P{Is_Blk=-thai}', "");
+    Expect(0, 3712, '\P{^Is_Blk=-thai}', "");
+    Error('\p{Block=_Tibetan/a/}');
+    Error('\P{Block=_Tibetan/a/}');
     Expect(1, 4095, '\p{Block=:\ATibetan\z:}', "");;
     Expect(0, 4096, '\p{Block=:\ATibetan\z:}', "");;
-    Expect(1, 4095, '\p{Block: tibetan}', "");
-    Expect(0, 4095, '\p{^Block: tibetan}', "");
-    Expect(0, 4095, '\P{Block: tibetan}', "");
-    Expect(1, 4095, '\P{^Block: tibetan}', "");
-    Expect(0, 4096, '\p{Block: tibetan}', "");
-    Expect(1, 4096, '\p{^Block: tibetan}', "");
-    Expect(1, 4096, '\P{Block: tibetan}', "");
-    Expect(0, 4096, '\P{^Block: tibetan}', "");
+    Expect(1, 4095, '\p{Block=tibetan}', "");
+    Expect(0, 4095, '\p{^Block=tibetan}', "");
+    Expect(0, 4095, '\P{Block=tibetan}', "");
+    Expect(1, 4095, '\P{^Block=tibetan}', "");
+    Expect(0, 4096, '\p{Block=tibetan}', "");
+    Expect(1, 4096, '\p{^Block=tibetan}', "");
+    Expect(1, 4096, '\P{Block=tibetan}', "");
+    Expect(0, 4096, '\P{^Block=tibetan}', "");
     Expect(1, 4095, '\p{Block=:\Atibetan\z:}', "");;
     Expect(0, 4096, '\p{Block=:\Atibetan\z:}', "");;
-    Expect(1, 4095, '\p{Block=- tibetan}', "");
-    Expect(0, 4095, '\p{^Block=- tibetan}', "");
-    Expect(0, 4095, '\P{Block=- tibetan}', "");
-    Expect(1, 4095, '\P{^Block=- tibetan}', "");
-    Expect(0, 4096, '\p{Block=- tibetan}', "");
-    Expect(1, 4096, '\p{^Block=- tibetan}', "");
-    Expect(1, 4096, '\P{Block=- tibetan}', "");
-    Expect(0, 4096, '\P{^Block=- tibetan}', "");
-    Error('\p{Blk=- Tibetan/a/}');
-    Error('\P{Blk=- Tibetan/a/}');
+    Expect(1, 4095, '\p{Block= tibetan}', "");
+    Expect(0, 4095, '\p{^Block= tibetan}', "");
+    Expect(0, 4095, '\P{Block= tibetan}', "");
+    Expect(1, 4095, '\P{^Block= tibetan}', "");
+    Expect(0, 4096, '\p{Block= tibetan}', "");
+    Expect(1, 4096, '\p{^Block= tibetan}', "");
+    Expect(1, 4096, '\P{Block= tibetan}', "");
+    Expect(0, 4096, '\P{^Block= tibetan}', "");
+    Error('\p{Blk=	-TIBETAN/a/}');
+    Error('\P{Blk=	-TIBETAN/a/}');
     Expect(1, 4095, '\p{Blk=:\ATibetan\z:}', "");;
     Expect(0, 4096, '\p{Blk=:\ATibetan\z:}', "");;
     Expect(1, 4095, '\p{Blk=tibetan}', "");
@@ -27538,16 +28114,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 4096, '\P{^Blk=tibetan}', "");
     Expect(1, 4095, '\p{Blk=:\Atibetan\z:}', "");;
     Expect(0, 4096, '\p{Blk=:\Atibetan\z:}', "");;
-    Expect(1, 4095, '\p{Blk=- tibetan}', "");
-    Expect(0, 4095, '\p{^Blk=- tibetan}', "");
-    Expect(0, 4095, '\P{Blk=- tibetan}', "");
-    Expect(1, 4095, '\P{^Blk=- tibetan}', "");
-    Expect(0, 4096, '\p{Blk=- tibetan}', "");
-    Expect(1, 4096, '\p{^Blk=- tibetan}', "");
-    Expect(1, 4096, '\P{Blk=- tibetan}', "");
-    Expect(0, 4096, '\P{^Blk=- tibetan}', "");
-    Error('\p{Is_Block=_:=Tibetan}');
-    Error('\P{Is_Block=_:=Tibetan}');
+    Expect(1, 4095, '\p{Blk=	 Tibetan}', "");
+    Expect(0, 4095, '\p{^Blk=	 Tibetan}', "");
+    Expect(0, 4095, '\P{Blk=	 Tibetan}', "");
+    Expect(1, 4095, '\P{^Blk=	 Tibetan}', "");
+    Expect(0, 4096, '\p{Blk=	 Tibetan}', "");
+    Expect(1, 4096, '\p{^Blk=	 Tibetan}', "");
+    Expect(1, 4096, '\P{Blk=	 Tibetan}', "");
+    Expect(0, 4096, '\P{^Blk=	 Tibetan}', "");
+    Error('\p{Is_Block=/a/tibetan}');
+    Error('\P{Is_Block=/a/tibetan}');
     Expect(1, 4095, '\p{Is_Block=tibetan}', "");
     Expect(0, 4095, '\p{^Is_Block=tibetan}', "");
     Expect(0, 4095, '\P{Is_Block=tibetan}', "");
@@ -27556,16 +28132,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4096, '\p{^Is_Block=tibetan}', "");
     Expect(1, 4096, '\P{Is_Block=tibetan}', "");
     Expect(0, 4096, '\P{^Is_Block=tibetan}', "");
-    Expect(1, 4095, '\p{Is_Block=	Tibetan}', "");
-    Expect(0, 4095, '\p{^Is_Block=	Tibetan}', "");
-    Expect(0, 4095, '\P{Is_Block=	Tibetan}', "");
-    Expect(1, 4095, '\P{^Is_Block=	Tibetan}', "");
-    Expect(0, 4096, '\p{Is_Block=	Tibetan}', "");
-    Expect(1, 4096, '\p{^Is_Block=	Tibetan}', "");
-    Expect(1, 4096, '\P{Is_Block=	Tibetan}', "");
-    Expect(0, 4096, '\P{^Is_Block=	Tibetan}', "");
-    Error('\p{Is_Blk=Tibetan/a/}');
-    Error('\P{Is_Blk=Tibetan/a/}');
+    Expect(1, 4095, '\p{Is_Block=_	tibetan}', "");
+    Expect(0, 4095, '\p{^Is_Block=_	tibetan}', "");
+    Expect(0, 4095, '\P{Is_Block=_	tibetan}', "");
+    Expect(1, 4095, '\P{^Is_Block=_	tibetan}', "");
+    Expect(0, 4096, '\p{Is_Block=_	tibetan}', "");
+    Expect(1, 4096, '\p{^Is_Block=_	tibetan}', "");
+    Expect(1, 4096, '\P{Is_Block=_	tibetan}', "");
+    Expect(0, 4096, '\P{^Is_Block=_	tibetan}', "");
+    Error('\p{Is_Blk=-	Tibetan/a/}');
+    Error('\P{Is_Blk=-	Tibetan/a/}');
     Expect(1, 4095, '\p{Is_Blk=tibetan}', "");
     Expect(0, 4095, '\p{^Is_Blk=tibetan}', "");
     Expect(0, 4095, '\P{Is_Blk=tibetan}', "");
@@ -27574,16 +28150,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 4096, '\p{^Is_Blk=tibetan}', "");
     Expect(1, 4096, '\P{Is_Blk=tibetan}', "");
     Expect(0, 4096, '\P{^Is_Blk=tibetan}', "");
-    Expect(1, 4095, '\p{Is_Blk=-Tibetan}', "");
-    Expect(0, 4095, '\p{^Is_Blk=-Tibetan}', "");
-    Expect(0, 4095, '\P{Is_Blk=-Tibetan}', "");
-    Expect(1, 4095, '\P{^Is_Blk=-Tibetan}', "");
-    Expect(0, 4096, '\p{Is_Blk=-Tibetan}', "");
-    Expect(1, 4096, '\p{^Is_Blk=-Tibetan}', "");
-    Expect(1, 4096, '\P{Is_Blk=-Tibetan}', "");
-    Expect(0, 4096, '\P{^Is_Blk=-Tibetan}', "");
-    Error('\p{Block=tifinagh:=}');
-    Error('\P{Block=tifinagh:=}');
+    Expect(1, 4095, '\p{Is_Blk= Tibetan}', "");
+    Expect(0, 4095, '\p{^Is_Blk= Tibetan}', "");
+    Expect(0, 4095, '\P{Is_Blk= Tibetan}', "");
+    Expect(1, 4095, '\P{^Is_Blk= Tibetan}', "");
+    Expect(0, 4096, '\p{Is_Blk= Tibetan}', "");
+    Expect(1, 4096, '\p{^Is_Blk= Tibetan}', "");
+    Expect(1, 4096, '\P{Is_Blk= Tibetan}', "");
+    Expect(0, 4096, '\P{^Is_Blk= Tibetan}', "");
+    Error('\p{Block=__TIFINAGH:=}');
+    Error('\P{Block=__TIFINAGH:=}');
     Expect(1, 11647, '\p{Block=:\ATifinagh\z:}', "");;
     Expect(0, 11648, '\p{Block=:\ATifinagh\z:}', "");;
     Expect(1, 11647, '\p{Block=tifinagh}', "");
@@ -27596,38 +28172,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 11648, '\P{^Block=tifinagh}', "");
     Expect(1, 11647, '\p{Block=:\Atifinagh\z:}', "");;
     Expect(0, 11648, '\p{Block=:\Atifinagh\z:}', "");;
-    Expect(1, 11647, '\p{Block=-	TIFINAGH}', "");
-    Expect(0, 11647, '\p{^Block=-	TIFINAGH}', "");
-    Expect(0, 11647, '\P{Block=-	TIFINAGH}', "");
-    Expect(1, 11647, '\P{^Block=-	TIFINAGH}', "");
-    Expect(0, 11648, '\p{Block=-	TIFINAGH}', "");
-    Expect(1, 11648, '\p{^Block=-	TIFINAGH}', "");
-    Expect(1, 11648, '\P{Block=-	TIFINAGH}', "");
-    Expect(0, 11648, '\P{^Block=-	TIFINAGH}', "");
-    Error('\p{Blk=/a/_ Tifinagh}');
-    Error('\P{Blk=/a/_ Tifinagh}');
+    Expect(1, 11647, '\p{Block=-Tifinagh}', "");
+    Expect(0, 11647, '\p{^Block=-Tifinagh}', "");
+    Expect(0, 11647, '\P{Block=-Tifinagh}', "");
+    Expect(1, 11647, '\P{^Block=-Tifinagh}', "");
+    Expect(0, 11648, '\p{Block=-Tifinagh}', "");
+    Expect(1, 11648, '\p{^Block=-Tifinagh}', "");
+    Expect(1, 11648, '\P{Block=-Tifinagh}', "");
+    Expect(0, 11648, '\P{^Block=-Tifinagh}', "");
+    Error('\p{Blk: :=-tifinagh}');
+    Error('\P{Blk: :=-tifinagh}');
     Expect(1, 11647, '\p{Blk=:\ATifinagh\z:}', "");;
     Expect(0, 11648, '\p{Blk=:\ATifinagh\z:}', "");;
-    Expect(1, 11647, '\p{Blk=tifinagh}', "");
-    Expect(0, 11647, '\p{^Blk=tifinagh}', "");
-    Expect(0, 11647, '\P{Blk=tifinagh}', "");
-    Expect(1, 11647, '\P{^Blk=tifinagh}', "");
-    Expect(0, 11648, '\p{Blk=tifinagh}', "");
-    Expect(1, 11648, '\p{^Blk=tifinagh}', "");
-    Expect(1, 11648, '\P{Blk=tifinagh}', "");
-    Expect(0, 11648, '\P{^Blk=tifinagh}', "");
+    Expect(1, 11647, '\p{Blk:   tifinagh}', "");
+    Expect(0, 11647, '\p{^Blk:   tifinagh}', "");
+    Expect(0, 11647, '\P{Blk:   tifinagh}', "");
+    Expect(1, 11647, '\P{^Blk:   tifinagh}', "");
+    Expect(0, 11648, '\p{Blk:   tifinagh}', "");
+    Expect(1, 11648, '\p{^Blk:   tifinagh}', "");
+    Expect(1, 11648, '\P{Blk:   tifinagh}', "");
+    Expect(0, 11648, '\P{^Blk:   tifinagh}', "");
     Expect(1, 11647, '\p{Blk=:\Atifinagh\z:}', "");;
     Expect(0, 11648, '\p{Blk=:\Atifinagh\z:}', "");;
-    Expect(1, 11647, '\p{Blk= TIFINAGH}', "");
-    Expect(0, 11647, '\p{^Blk= TIFINAGH}', "");
-    Expect(0, 11647, '\P{Blk= TIFINAGH}', "");
-    Expect(1, 11647, '\P{^Blk= TIFINAGH}', "");
-    Expect(0, 11648, '\p{Blk= TIFINAGH}', "");
-    Expect(1, 11648, '\p{^Blk= TIFINAGH}', "");
-    Expect(1, 11648, '\P{Blk= TIFINAGH}', "");
-    Expect(0, 11648, '\P{^Blk= TIFINAGH}', "");
-    Error('\p{Is_Block=:=_-Tifinagh}');
-    Error('\P{Is_Block=:=_-Tifinagh}');
+    Expect(1, 11647, '\p{Blk=--tifinagh}', "");
+    Expect(0, 11647, '\p{^Blk=--tifinagh}', "");
+    Expect(0, 11647, '\P{Blk=--tifinagh}', "");
+    Expect(1, 11647, '\P{^Blk=--tifinagh}', "");
+    Expect(0, 11648, '\p{Blk=--tifinagh}', "");
+    Expect(1, 11648, '\p{^Blk=--tifinagh}', "");
+    Expect(1, 11648, '\P{Blk=--tifinagh}', "");
+    Expect(0, 11648, '\P{^Blk=--tifinagh}', "");
+    Error('\p{Is_Block= /a/Tifinagh}');
+    Error('\P{Is_Block= /a/Tifinagh}');
     Expect(1, 11647, '\p{Is_Block=tifinagh}', "");
     Expect(0, 11647, '\p{^Is_Block=tifinagh}', "");
     Expect(0, 11647, '\P{Is_Block=tifinagh}', "");
@@ -27636,16 +28212,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11648, '\p{^Is_Block=tifinagh}', "");
     Expect(1, 11648, '\P{Is_Block=tifinagh}', "");
     Expect(0, 11648, '\P{^Is_Block=tifinagh}', "");
-    Expect(1, 11647, '\p{Is_Block=-tifinagh}', "");
-    Expect(0, 11647, '\p{^Is_Block=-tifinagh}', "");
-    Expect(0, 11647, '\P{Is_Block=-tifinagh}', "");
-    Expect(1, 11647, '\P{^Is_Block=-tifinagh}', "");
-    Expect(0, 11648, '\p{Is_Block=-tifinagh}', "");
-    Expect(1, 11648, '\p{^Is_Block=-tifinagh}', "");
-    Expect(1, 11648, '\P{Is_Block=-tifinagh}', "");
-    Expect(0, 11648, '\P{^Is_Block=-tifinagh}', "");
-    Error('\p{Is_Blk= -tifinagh:=}');
-    Error('\P{Is_Blk= -tifinagh:=}');
+    Error('\p{Is_Blk= Tifinagh:=}');
+    Error('\P{Is_Blk= Tifinagh:=}');
     Expect(1, 11647, '\p{Is_Blk=tifinagh}', "");
     Expect(0, 11647, '\p{^Is_Blk=tifinagh}', "");
     Expect(0, 11647, '\P{Is_Blk=tifinagh}', "");
@@ -27654,8 +28222,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 11648, '\p{^Is_Blk=tifinagh}', "");
     Expect(1, 11648, '\P{Is_Blk=tifinagh}', "");
     Expect(0, 11648, '\P{^Is_Blk=tifinagh}', "");
-    Error('\p{Block=:= 	Tirhuta}');
-    Error('\P{Block=:= 	Tirhuta}');
+    Expect(1, 11647, '\p{Is_Blk:   _-TIFINAGH}', "");
+    Expect(0, 11647, '\p{^Is_Blk:   _-TIFINAGH}', "");
+    Expect(0, 11647, '\P{Is_Blk:   _-TIFINAGH}', "");
+    Expect(1, 11647, '\P{^Is_Blk:   _-TIFINAGH}', "");
+    Expect(0, 11648, '\p{Is_Blk:   _-TIFINAGH}', "");
+    Expect(1, 11648, '\p{^Is_Blk:   _-TIFINAGH}', "");
+    Expect(1, 11648, '\P{Is_Blk:   _-TIFINAGH}', "");
+    Expect(0, 11648, '\P{^Is_Blk:   _-TIFINAGH}', "");
+    Error('\p{Block=/a/_tirhuta}');
+    Error('\P{Block=/a/_tirhuta}');
     Expect(1, 70879, '\p{Block=:\ATirhuta\z:}', "");;
     Expect(0, 70880, '\p{Block=:\ATirhuta\z:}', "");;
     Expect(1, 70879, '\p{Block=tirhuta}', "");
@@ -27668,16 +28244,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70880, '\P{^Block=tirhuta}', "");
     Expect(1, 70879, '\p{Block=:\Atirhuta\z:}', "");;
     Expect(0, 70880, '\p{Block=:\Atirhuta\z:}', "");;
-    Expect(1, 70879, '\p{Block=_-Tirhuta}', "");
-    Expect(0, 70879, '\p{^Block=_-Tirhuta}', "");
-    Expect(0, 70879, '\P{Block=_-Tirhuta}', "");
-    Expect(1, 70879, '\P{^Block=_-Tirhuta}', "");
-    Expect(0, 70880, '\p{Block=_-Tirhuta}', "");
-    Expect(1, 70880, '\p{^Block=_-Tirhuta}', "");
-    Expect(1, 70880, '\P{Block=_-Tirhuta}', "");
-    Expect(0, 70880, '\P{^Block=_-Tirhuta}', "");
-    Error('\p{Blk= 	TIRHUTA:=}');
-    Error('\P{Blk= 	TIRHUTA:=}');
+    Expect(1, 70879, '\p{Block=_Tirhuta}', "");
+    Expect(0, 70879, '\p{^Block=_Tirhuta}', "");
+    Expect(0, 70879, '\P{Block=_Tirhuta}', "");
+    Expect(1, 70879, '\P{^Block=_Tirhuta}', "");
+    Expect(0, 70880, '\p{Block=_Tirhuta}', "");
+    Expect(1, 70880, '\p{^Block=_Tirhuta}', "");
+    Expect(1, 70880, '\P{Block=_Tirhuta}', "");
+    Expect(0, 70880, '\P{^Block=_Tirhuta}', "");
+    Error('\p{Blk: -Tirhuta:=}');
+    Error('\P{Blk: -Tirhuta:=}');
     Expect(1, 70879, '\p{Blk=:\ATirhuta\z:}', "");;
     Expect(0, 70880, '\p{Blk=:\ATirhuta\z:}', "");;
     Expect(1, 70879, '\p{Blk=tirhuta}', "");
@@ -27690,16 +28266,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 70880, '\P{^Blk=tirhuta}', "");
     Expect(1, 70879, '\p{Blk=:\Atirhuta\z:}', "");;
     Expect(0, 70880, '\p{Blk=:\Atirhuta\z:}', "");;
-    Expect(1, 70879, '\p{Blk:		 Tirhuta}', "");
-    Expect(0, 70879, '\p{^Blk:		 Tirhuta}', "");
-    Expect(0, 70879, '\P{Blk:		 Tirhuta}', "");
-    Expect(1, 70879, '\P{^Blk:		 Tirhuta}', "");
-    Expect(0, 70880, '\p{Blk:		 Tirhuta}', "");
-    Expect(1, 70880, '\p{^Blk:		 Tirhuta}', "");
-    Expect(1, 70880, '\P{Blk:		 Tirhuta}', "");
-    Expect(0, 70880, '\P{^Blk:		 Tirhuta}', "");
-    Error('\p{Is_Block=-_TIRHUTA:=}');
-    Error('\P{Is_Block=-_TIRHUTA:=}');
+    Expect(1, 70879, '\p{Blk=_-TIRHUTA}', "");
+    Expect(0, 70879, '\p{^Blk=_-TIRHUTA}', "");
+    Expect(0, 70879, '\P{Blk=_-TIRHUTA}', "");
+    Expect(1, 70879, '\P{^Blk=_-TIRHUTA}', "");
+    Expect(0, 70880, '\p{Blk=_-TIRHUTA}', "");
+    Expect(1, 70880, '\p{^Blk=_-TIRHUTA}', "");
+    Expect(1, 70880, '\P{Blk=_-TIRHUTA}', "");
+    Expect(0, 70880, '\P{^Blk=_-TIRHUTA}', "");
+    Error('\p{Is_Block:		/a/Tirhuta}');
+    Error('\P{Is_Block:		/a/Tirhuta}');
     Expect(1, 70879, '\p{Is_Block=tirhuta}', "");
     Expect(0, 70879, '\p{^Is_Block=tirhuta}', "");
     Expect(0, 70879, '\P{Is_Block=tirhuta}', "");
@@ -27708,16 +28284,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70880, '\p{^Is_Block=tirhuta}', "");
     Expect(1, 70880, '\P{Is_Block=tirhuta}', "");
     Expect(0, 70880, '\P{^Is_Block=tirhuta}', "");
-    Expect(1, 70879, '\p{Is_Block:	-_Tirhuta}', "");
-    Expect(0, 70879, '\p{^Is_Block:	-_Tirhuta}', "");
-    Expect(0, 70879, '\P{Is_Block:	-_Tirhuta}', "");
-    Expect(1, 70879, '\P{^Is_Block:	-_Tirhuta}', "");
-    Expect(0, 70880, '\p{Is_Block:	-_Tirhuta}', "");
-    Expect(1, 70880, '\p{^Is_Block:	-_Tirhuta}', "");
-    Expect(1, 70880, '\P{Is_Block:	-_Tirhuta}', "");
-    Expect(0, 70880, '\P{^Is_Block:	-_Tirhuta}', "");
-    Error('\p{Is_Blk: /a/ 	Tirhuta}');
-    Error('\P{Is_Blk: /a/ 	Tirhuta}');
+    Expect(1, 70879, '\p{Is_Block=-Tirhuta}', "");
+    Expect(0, 70879, '\p{^Is_Block=-Tirhuta}', "");
+    Expect(0, 70879, '\P{Is_Block=-Tirhuta}', "");
+    Expect(1, 70879, '\P{^Is_Block=-Tirhuta}', "");
+    Expect(0, 70880, '\p{Is_Block=-Tirhuta}', "");
+    Expect(1, 70880, '\p{^Is_Block=-Tirhuta}', "");
+    Expect(1, 70880, '\P{Is_Block=-Tirhuta}', "");
+    Expect(0, 70880, '\P{^Is_Block=-Tirhuta}', "");
+    Error('\p{Is_Blk= /a/tirhuta}');
+    Error('\P{Is_Blk= /a/tirhuta}');
     Expect(1, 70879, '\p{Is_Blk=tirhuta}', "");
     Expect(0, 70879, '\p{^Is_Blk=tirhuta}', "");
     Expect(0, 70879, '\P{Is_Blk=tirhuta}', "");
@@ -27726,16 +28302,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 70880, '\p{^Is_Blk=tirhuta}', "");
     Expect(1, 70880, '\P{Is_Blk=tirhuta}', "");
     Expect(0, 70880, '\P{^Is_Blk=tirhuta}', "");
-    Expect(1, 70879, '\p{Is_Blk=	-Tirhuta}', "");
-    Expect(0, 70879, '\p{^Is_Blk=	-Tirhuta}', "");
-    Expect(0, 70879, '\P{Is_Blk=	-Tirhuta}', "");
-    Expect(1, 70879, '\P{^Is_Blk=	-Tirhuta}', "");
-    Expect(0, 70880, '\p{Is_Blk=	-Tirhuta}', "");
-    Expect(1, 70880, '\p{^Is_Blk=	-Tirhuta}', "");
-    Expect(1, 70880, '\P{Is_Blk=	-Tirhuta}', "");
-    Expect(0, 70880, '\P{^Is_Blk=	-Tirhuta}', "");
-    Error('\p{Block=	-TOTO/a/}');
-    Error('\P{Block=	-TOTO/a/}');
+    Expect(1, 70879, '\p{Is_Blk=	 Tirhuta}', "");
+    Expect(0, 70879, '\p{^Is_Blk=	 Tirhuta}', "");
+    Expect(0, 70879, '\P{Is_Blk=	 Tirhuta}', "");
+    Expect(1, 70879, '\P{^Is_Blk=	 Tirhuta}', "");
+    Expect(0, 70880, '\p{Is_Blk=	 Tirhuta}', "");
+    Expect(1, 70880, '\p{^Is_Blk=	 Tirhuta}', "");
+    Expect(1, 70880, '\P{Is_Blk=	 Tirhuta}', "");
+    Expect(0, 70880, '\P{^Is_Blk=	 Tirhuta}', "");
+    Error('\p{Block:   -_TOTO/a/}');
+    Error('\P{Block:   -_TOTO/a/}');
     Expect(1, 123583, '\p{Block=:\AToto\z:}', "");;
     Expect(0, 123584, '\p{Block=:\AToto\z:}', "");;
     Expect(1, 123583, '\p{Block=toto}', "");
@@ -27748,16 +28324,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123584, '\P{^Block=toto}', "");
     Expect(1, 123583, '\p{Block=:\Atoto\z:}', "");;
     Expect(0, 123584, '\p{Block=:\Atoto\z:}', "");;
-    Expect(1, 123583, '\p{Block=-Toto}', "");
-    Expect(0, 123583, '\p{^Block=-Toto}', "");
-    Expect(0, 123583, '\P{Block=-Toto}', "");
-    Expect(1, 123583, '\P{^Block=-Toto}', "");
-    Expect(0, 123584, '\p{Block=-Toto}', "");
-    Expect(1, 123584, '\p{^Block=-Toto}', "");
-    Expect(1, 123584, '\P{Block=-Toto}', "");
-    Expect(0, 123584, '\P{^Block=-Toto}', "");
-    Error('\p{Blk=-/a/TOTO}');
-    Error('\P{Blk=-/a/TOTO}');
+    Expect(1, 123583, '\p{Block:	-Toto}', "");
+    Expect(0, 123583, '\p{^Block:	-Toto}', "");
+    Expect(0, 123583, '\P{Block:	-Toto}', "");
+    Expect(1, 123583, '\P{^Block:	-Toto}', "");
+    Expect(0, 123584, '\p{Block:	-Toto}', "");
+    Expect(1, 123584, '\p{^Block:	-Toto}', "");
+    Expect(1, 123584, '\P{Block:	-Toto}', "");
+    Expect(0, 123584, '\P{^Block:	-Toto}', "");
+    Error('\p{Blk=_/a/Toto}');
+    Error('\P{Blk=_/a/Toto}');
     Expect(1, 123583, '\p{Blk=:\AToto\z:}', "");;
     Expect(0, 123584, '\p{Blk=:\AToto\z:}', "");;
     Expect(1, 123583, '\p{Blk=toto}', "");
@@ -27770,16 +28346,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123584, '\P{^Blk=toto}', "");
     Expect(1, 123583, '\p{Blk=:\Atoto\z:}', "");;
     Expect(0, 123584, '\p{Blk=:\Atoto\z:}', "");;
-    Expect(1, 123583, '\p{Blk:   _-toto}', "");
-    Expect(0, 123583, '\p{^Blk:   _-toto}', "");
-    Expect(0, 123583, '\P{Blk:   _-toto}', "");
-    Expect(1, 123583, '\P{^Blk:   _-toto}', "");
-    Expect(0, 123584, '\p{Blk:   _-toto}', "");
-    Expect(1, 123584, '\p{^Blk:   _-toto}', "");
-    Expect(1, 123584, '\P{Blk:   _-toto}', "");
-    Expect(0, 123584, '\P{^Blk:   _-toto}', "");
-    Error('\p{Is_Block:	 :=TOTO}');
-    Error('\P{Is_Block:	 :=TOTO}');
+    Expect(1, 123583, '\p{Blk:_-toto}', "");
+    Expect(0, 123583, '\p{^Blk:_-toto}', "");
+    Expect(0, 123583, '\P{Blk:_-toto}', "");
+    Expect(1, 123583, '\P{^Blk:_-toto}', "");
+    Expect(0, 123584, '\p{Blk:_-toto}', "");
+    Expect(1, 123584, '\p{^Blk:_-toto}', "");
+    Expect(1, 123584, '\P{Blk:_-toto}', "");
+    Expect(0, 123584, '\P{^Blk:_-toto}', "");
+    Error('\p{Is_Block=	 TOTO/a/}');
+    Error('\P{Is_Block=	 TOTO/a/}');
     Expect(1, 123583, '\p{Is_Block=toto}', "");
     Expect(0, 123583, '\p{^Is_Block=toto}', "");
     Expect(0, 123583, '\P{Is_Block=toto}', "");
@@ -27788,16 +28364,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 123584, '\p{^Is_Block=toto}', "");
     Expect(1, 123584, '\P{Is_Block=toto}', "");
     Expect(0, 123584, '\P{^Is_Block=toto}', "");
-    Expect(1, 123583, '\p{Is_Block=-Toto}', "");
-    Expect(0, 123583, '\p{^Is_Block=-Toto}', "");
-    Expect(0, 123583, '\P{Is_Block=-Toto}', "");
-    Expect(1, 123583, '\P{^Is_Block=-Toto}', "");
-    Expect(0, 123584, '\p{Is_Block=-Toto}', "");
-    Expect(1, 123584, '\p{^Is_Block=-Toto}', "");
-    Expect(1, 123584, '\P{Is_Block=-Toto}', "");
-    Expect(0, 123584, '\P{^Is_Block=-Toto}', "");
-    Error('\p{Is_Blk:		_toto/a/}');
-    Error('\P{Is_Blk:		_toto/a/}');
+    Expect(1, 123583, '\p{Is_Block=_Toto}', "");
+    Expect(0, 123583, '\p{^Is_Block=_Toto}', "");
+    Expect(0, 123583, '\P{Is_Block=_Toto}', "");
+    Expect(1, 123583, '\P{^Is_Block=_Toto}', "");
+    Expect(0, 123584, '\p{Is_Block=_Toto}', "");
+    Expect(1, 123584, '\p{^Is_Block=_Toto}', "");
+    Expect(1, 123584, '\P{Is_Block=_Toto}', "");
+    Expect(0, 123584, '\P{^Is_Block=_Toto}', "");
+    Error('\p{Is_Blk=/a/_-toto}');
+    Error('\P{Is_Blk=/a/_-toto}');
     Expect(1, 123583, '\p{Is_Blk=toto}', "");
     Expect(0, 123583, '\p{^Is_Blk=toto}', "");
     Expect(0, 123583, '\P{Is_Blk=toto}', "");
@@ -27806,16 +28382,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 123584, '\p{^Is_Blk=toto}', "");
     Expect(1, 123584, '\P{Is_Blk=toto}', "");
     Expect(0, 123584, '\P{^Is_Blk=toto}', "");
-    Expect(1, 123583, '\p{Is_Blk: Toto}', "");
-    Expect(0, 123583, '\p{^Is_Blk: Toto}', "");
-    Expect(0, 123583, '\P{Is_Blk: Toto}', "");
-    Expect(1, 123583, '\P{^Is_Blk: Toto}', "");
-    Expect(0, 123584, '\p{Is_Blk: Toto}', "");
-    Expect(1, 123584, '\p{^Is_Blk: Toto}', "");
-    Expect(1, 123584, '\P{Is_Blk: Toto}', "");
-    Expect(0, 123584, '\P{^Is_Blk: Toto}', "");
-    Error('\p{Block:	-TRANSPORT_And_MAP_symbols:=}');
-    Error('\P{Block:	-TRANSPORT_And_MAP_symbols:=}');
+    Expect(1, 123583, '\p{Is_Blk=_toto}', "");
+    Expect(0, 123583, '\p{^Is_Blk=_toto}', "");
+    Expect(0, 123583, '\P{Is_Blk=_toto}', "");
+    Expect(1, 123583, '\P{^Is_Blk=_toto}', "");
+    Expect(0, 123584, '\p{Is_Blk=_toto}', "");
+    Expect(1, 123584, '\p{^Is_Blk=_toto}', "");
+    Expect(1, 123584, '\P{Is_Blk=_toto}', "");
+    Expect(0, 123584, '\P{^Is_Blk=_toto}', "");
+    Error('\p{Block=_:=Transport_And_map_symbols}');
+    Error('\P{Block=_:=Transport_And_map_symbols}');
     Expect(1, 128767, '\p{Block=:\ATransport_And_Map_Symbols\z:}', "");;
     Expect(0, 128768, '\p{Block=:\ATransport_And_Map_Symbols\z:}', "");;
     Expect(1, 128767, '\p{Block=transportandmapsymbols}', "");
@@ -27828,16 +28404,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128768, '\P{^Block=transportandmapsymbols}', "");
     Expect(1, 128767, '\p{Block=:\Atransportandmapsymbols\z:}', "");;
     Expect(0, 128768, '\p{Block=:\Atransportandmapsymbols\z:}', "");;
-    Expect(1, 128767, '\p{Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128767, '\p{^Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128767, '\P{Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(1, 128767, '\P{^Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128768, '\p{Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(1, 128768, '\p{^Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(1, 128768, '\P{Block= TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128768, '\P{^Block= TRANSPORT_And_MAP_Symbols}', "");
-    Error('\p{Blk=:=-_TRANSPORT_AND_map}');
-    Error('\P{Blk=:=-_TRANSPORT_AND_map}');
+    Expect(1, 128767, '\p{Block= 	Transport_And_map_symbols}', "");
+    Expect(0, 128767, '\p{^Block= 	Transport_And_map_symbols}', "");
+    Expect(0, 128767, '\P{Block= 	Transport_And_map_symbols}', "");
+    Expect(1, 128767, '\P{^Block= 	Transport_And_map_symbols}', "");
+    Expect(0, 128768, '\p{Block= 	Transport_And_map_symbols}', "");
+    Expect(1, 128768, '\p{^Block= 	Transport_And_map_symbols}', "");
+    Expect(1, 128768, '\P{Block= 	Transport_And_map_symbols}', "");
+    Expect(0, 128768, '\P{^Block= 	Transport_And_map_symbols}', "");
+    Error('\p{Blk=:=--transport_AND_Map}');
+    Error('\P{Blk=:=--transport_AND_Map}');
     Expect(1, 128767, '\p{Blk=:\ATransport_And_Map\z:}', "");;
     Expect(0, 128768, '\p{Blk=:\ATransport_And_Map\z:}', "");;
     Expect(1, 128767, '\p{Blk=transportandmap}', "");
@@ -27850,16 +28426,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128768, '\P{^Blk=transportandmap}', "");
     Expect(1, 128767, '\p{Blk=:\Atransportandmap\z:}', "");;
     Expect(0, 128768, '\p{Blk=:\Atransportandmap\z:}', "");;
-    Expect(1, 128767, '\p{Blk=-_transport_and_Map}', "");
-    Expect(0, 128767, '\p{^Blk=-_transport_and_Map}', "");
-    Expect(0, 128767, '\P{Blk=-_transport_and_Map}', "");
-    Expect(1, 128767, '\P{^Blk=-_transport_and_Map}', "");
-    Expect(0, 128768, '\p{Blk=-_transport_and_Map}', "");
-    Expect(1, 128768, '\p{^Blk=-_transport_and_Map}', "");
-    Expect(1, 128768, '\P{Blk=-_transport_and_Map}', "");
-    Expect(0, 128768, '\P{^Blk=-_transport_and_Map}', "");
-    Error('\p{Is_Block=	-TRANSPORT_AND_Map_Symbols:=}');
-    Error('\P{Is_Block=	-TRANSPORT_AND_Map_Symbols:=}');
+    Expect(1, 128767, '\p{Blk=_	Transport_AND_Map}', "");
+    Expect(0, 128767, '\p{^Blk=_	Transport_AND_Map}', "");
+    Expect(0, 128767, '\P{Blk=_	Transport_AND_Map}', "");
+    Expect(1, 128767, '\P{^Blk=_	Transport_AND_Map}', "");
+    Expect(0, 128768, '\p{Blk=_	Transport_AND_Map}', "");
+    Expect(1, 128768, '\p{^Blk=_	Transport_AND_Map}', "");
+    Expect(1, 128768, '\P{Blk=_	Transport_AND_Map}', "");
+    Expect(0, 128768, '\P{^Blk=_	Transport_AND_Map}', "");
+    Error('\p{Is_Block=/a/ _Transport_and_Map_SYMBOLS}');
+    Error('\P{Is_Block=/a/ _Transport_and_Map_SYMBOLS}');
     Expect(1, 128767, '\p{Is_Block=transportandmapsymbols}', "");
     Expect(0, 128767, '\p{^Is_Block=transportandmapsymbols}', "");
     Expect(0, 128767, '\P{Is_Block=transportandmapsymbols}', "");
@@ -27868,16 +28444,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128768, '\p{^Is_Block=transportandmapsymbols}', "");
     Expect(1, 128768, '\P{Is_Block=transportandmapsymbols}', "");
     Expect(0, 128768, '\P{^Is_Block=transportandmapsymbols}', "");
-    Expect(1, 128767, '\p{Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128767, '\p{^Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128767, '\P{Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(1, 128767, '\P{^Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128768, '\p{Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(1, 128768, '\p{^Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(1, 128768, '\P{Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Expect(0, 128768, '\P{^Is_Block=_TRANSPORT_And_MAP_Symbols}', "");
-    Error('\p{Is_Blk=__TRANSPORT_and_Map:=}');
-    Error('\P{Is_Blk=__TRANSPORT_and_Map:=}');
+    Expect(1, 128767, '\p{Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(0, 128767, '\p{^Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(0, 128767, '\P{Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(1, 128767, '\P{^Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(0, 128768, '\p{Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(1, 128768, '\p{^Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(1, 128768, '\P{Is_Block= transport_AND_Map_Symbols}', "");
+    Expect(0, 128768, '\P{^Is_Block= transport_AND_Map_Symbols}', "");
+    Error('\p{Is_Blk=:=Transport_And_Map}');
+    Error('\P{Is_Blk=:=Transport_And_Map}');
     Expect(1, 128767, '\p{Is_Blk=transportandmap}', "");
     Expect(0, 128767, '\p{^Is_Blk=transportandmap}', "");
     Expect(0, 128767, '\P{Is_Blk=transportandmap}', "");
@@ -27886,16 +28462,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128768, '\p{^Is_Blk=transportandmap}', "");
     Expect(1, 128768, '\P{Is_Blk=transportandmap}', "");
     Expect(0, 128768, '\P{^Is_Blk=transportandmap}', "");
-    Expect(1, 128767, '\p{Is_Blk=-Transport_AND_Map}', "");
-    Expect(0, 128767, '\p{^Is_Blk=-Transport_AND_Map}', "");
-    Expect(0, 128767, '\P{Is_Blk=-Transport_AND_Map}', "");
-    Expect(1, 128767, '\P{^Is_Blk=-Transport_AND_Map}', "");
-    Expect(0, 128768, '\p{Is_Blk=-Transport_AND_Map}', "");
-    Expect(1, 128768, '\p{^Is_Blk=-Transport_AND_Map}', "");
-    Expect(1, 128768, '\P{Is_Blk=-Transport_AND_Map}', "");
-    Expect(0, 128768, '\P{^Is_Blk=-Transport_AND_Map}', "");
-    Error('\p{Block=-:=unified_canadian_ABORIGINAL_SYLLABICS}');
-    Error('\P{Block=-:=unified_canadian_ABORIGINAL_SYLLABICS}');
+    Expect(1, 128767, '\p{Is_Blk=__Transport_and_MAP}', "");
+    Expect(0, 128767, '\p{^Is_Blk=__Transport_and_MAP}', "");
+    Expect(0, 128767, '\P{Is_Blk=__Transport_and_MAP}', "");
+    Expect(1, 128767, '\P{^Is_Blk=__Transport_and_MAP}', "");
+    Expect(0, 128768, '\p{Is_Blk=__Transport_and_MAP}', "");
+    Expect(1, 128768, '\p{^Is_Blk=__Transport_and_MAP}', "");
+    Expect(1, 128768, '\P{Is_Blk=__Transport_and_MAP}', "");
+    Expect(0, 128768, '\P{^Is_Blk=__Transport_and_MAP}', "");
+    Error('\p{Block=_/a/Unified_Canadian_Aboriginal_syllabics}');
+    Error('\P{Block=_/a/Unified_Canadian_Aboriginal_syllabics}');
     Expect(1, 5759, '\p{Block=:\AUnified_Canadian_Aboriginal_Syllabics\z:}', "");;
     Expect(0, 5760, '\p{Block=:\AUnified_Canadian_Aboriginal_Syllabics\z:}', "");;
     Expect(1, 5759, '\p{Block=unifiedcanadianaboriginalsyllabics}', "");
@@ -27908,16 +28484,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5760, '\P{^Block=unifiedcanadianaboriginalsyllabics}', "");
     Expect(1, 5759, '\p{Block=:\Aunifiedcanadianaboriginalsyllabics\z:}', "");;
     Expect(0, 5760, '\p{Block=:\Aunifiedcanadianaboriginalsyllabics\z:}', "");;
-    Expect(1, 5759, '\p{Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(0, 5759, '\p{^Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(0, 5759, '\P{Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(1, 5759, '\P{^Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(0, 5760, '\p{Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(1, 5760, '\p{^Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(1, 5760, '\P{Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Expect(0, 5760, '\P{^Block=	Unified_CANADIAN_ABORIGINAL_syllabics}', "");
-    Error('\p{Blk:   :=UCAS}');
-    Error('\P{Blk:   :=UCAS}');
+    Expect(1, 5759, '\p{Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(0, 5759, '\p{^Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(0, 5759, '\P{Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(1, 5759, '\P{^Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(0, 5760, '\p{Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(1, 5760, '\p{^Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(1, 5760, '\P{Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Expect(0, 5760, '\P{^Block=  UNIFIED_CANADIAN_ABORIGINAL_Syllabics}', "");
+    Error('\p{Blk=:= ucas}');
+    Error('\P{Blk=:= ucas}');
     Expect(1, 5759, '\p{Blk=:\AUCAS\z:}', "");;
     Expect(0, 5760, '\p{Blk=:\AUCAS\z:}', "");;
     Expect(1, 5759, '\p{Blk=ucas}', "");
@@ -27930,16 +28506,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 5760, '\P{^Blk=ucas}', "");
     Expect(1, 5759, '\p{Blk=:\Aucas\z:}', "");;
     Expect(0, 5760, '\p{Blk=:\Aucas\z:}', "");;
-    Expect(1, 5759, '\p{Blk:   		ucas}', "");
-    Expect(0, 5759, '\p{^Blk:   		ucas}', "");
-    Expect(0, 5759, '\P{Blk:   		ucas}', "");
-    Expect(1, 5759, '\P{^Blk:   		ucas}', "");
-    Expect(0, 5760, '\p{Blk:   		ucas}', "");
-    Expect(1, 5760, '\p{^Blk:   		ucas}', "");
-    Expect(1, 5760, '\P{Blk:   		ucas}', "");
-    Expect(0, 5760, '\P{^Blk:   		ucas}', "");
-    Error('\p{Is_Block: 	/a/Canadian_SYLLABICS}');
-    Error('\P{Is_Block: 	/a/Canadian_SYLLABICS}');
+    Expect(1, 5759, '\p{Blk=	_ucas}', "");
+    Expect(0, 5759, '\p{^Blk=	_ucas}', "");
+    Expect(0, 5759, '\P{Blk=	_ucas}', "");
+    Expect(1, 5759, '\P{^Blk=	_ucas}', "");
+    Expect(0, 5760, '\p{Blk=	_ucas}', "");
+    Expect(1, 5760, '\p{^Blk=	_ucas}', "");
+    Expect(1, 5760, '\P{Blk=	_ucas}', "");
+    Expect(0, 5760, '\P{^Blk=	_ucas}', "");
+    Error('\p{Is_Block:   :=-_Canadian_Syllabics}');
+    Error('\P{Is_Block:   :=-_Canadian_Syllabics}');
     Expect(1, 5759, '\p{Is_Block=canadiansyllabics}', "");
     Expect(0, 5759, '\p{^Is_Block=canadiansyllabics}', "");
     Expect(0, 5759, '\P{Is_Block=canadiansyllabics}', "");
@@ -27948,16 +28524,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5760, '\p{^Is_Block=canadiansyllabics}', "");
     Expect(1, 5760, '\P{Is_Block=canadiansyllabics}', "");
     Expect(0, 5760, '\P{^Is_Block=canadiansyllabics}', "");
-    Expect(1, 5759, '\p{Is_Block=Canadian_syllabics}', "");
-    Expect(0, 5759, '\p{^Is_Block=Canadian_syllabics}', "");
-    Expect(0, 5759, '\P{Is_Block=Canadian_syllabics}', "");
-    Expect(1, 5759, '\P{^Is_Block=Canadian_syllabics}', "");
-    Expect(0, 5760, '\p{Is_Block=Canadian_syllabics}', "");
-    Expect(1, 5760, '\p{^Is_Block=Canadian_syllabics}', "");
-    Expect(1, 5760, '\P{Is_Block=Canadian_syllabics}', "");
-    Expect(0, 5760, '\P{^Is_Block=Canadian_syllabics}', "");
-    Error('\p{Is_Blk=/a/ UNIFIED_canadian_ABORIGINAL_Syllabics}');
-    Error('\P{Is_Blk=/a/ UNIFIED_canadian_ABORIGINAL_Syllabics}');
+    Expect(1, 5759, '\p{Is_Block=- Canadian_syllabics}', "");
+    Expect(0, 5759, '\p{^Is_Block=- Canadian_syllabics}', "");
+    Expect(0, 5759, '\P{Is_Block=- Canadian_syllabics}', "");
+    Expect(1, 5759, '\P{^Is_Block=- Canadian_syllabics}', "");
+    Expect(0, 5760, '\p{Is_Block=- Canadian_syllabics}', "");
+    Expect(1, 5760, '\p{^Is_Block=- Canadian_syllabics}', "");
+    Expect(1, 5760, '\P{Is_Block=- Canadian_syllabics}', "");
+    Expect(0, 5760, '\P{^Is_Block=- Canadian_syllabics}', "");
+    Error('\p{Is_Blk=unified_Canadian_Aboriginal_Syllabics/a/}');
+    Error('\P{Is_Blk=unified_Canadian_Aboriginal_Syllabics/a/}');
     Expect(1, 5759, '\p{Is_Blk=unifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\p{^Is_Blk=unifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\P{Is_Blk=unifiedcanadianaboriginalsyllabics}', "");
@@ -27966,16 +28542,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 5760, '\p{^Is_Blk=unifiedcanadianaboriginalsyllabics}', "");
     Expect(1, 5760, '\P{Is_Blk=unifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5760, '\P{^Is_Blk=unifiedcanadianaboriginalsyllabics}', "");
-    Expect(1, 5759, '\p{Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(0, 5759, '\p{^Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(0, 5759, '\P{Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(1, 5759, '\P{^Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(0, 5760, '\p{Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(1, 5760, '\p{^Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(1, 5760, '\P{Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Expect(0, 5760, '\P{^Is_Blk=__unified_Canadian_ABORIGINAL_syllabics}', "");
-    Error('\p{Block=/a/-_Unified_canadian_Aboriginal_Syllabics_extended}');
-    Error('\P{Block=/a/-_Unified_canadian_Aboriginal_Syllabics_extended}');
+    Expect(1, 5759, '\p{Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5759, '\p{^Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5759, '\P{Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(1, 5759, '\P{^Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5760, '\p{Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(1, 5760, '\p{^Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(1, 5760, '\P{Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5760, '\P{^Is_Blk=_ unified_canadian_aboriginal_Syllabics}', "");
+    Error('\p{Block: /a/_ Unified_canadian_aboriginal_SYLLABICS_Extended}');
+    Error('\P{Block: /a/_ Unified_canadian_aboriginal_SYLLABICS_Extended}');
     Expect(1, 6399, '\p{Block=:\AUnified_Canadian_Aboriginal_Syllabics_Extended\z:}', "");;
     Expect(0, 6400, '\p{Block=:\AUnified_Canadian_Aboriginal_Syllabics_Extended\z:}', "");;
     Expect(1, 6399, '\p{Block=unifiedcanadianaboriginalsyllabicsextended}', "");
@@ -27988,16 +28564,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6400, '\P{^Block=unifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(1, 6399, '\p{Block=:\Aunifiedcanadianaboriginalsyllabicsextended\z:}', "");;
     Expect(0, 6400, '\p{Block=:\Aunifiedcanadianaboriginalsyllabicsextended\z:}', "");;
-    Expect(1, 6399, '\p{Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6399, '\p{^Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6399, '\P{Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(1, 6399, '\P{^Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6400, '\p{Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(1, 6400, '\p{^Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(1, 6400, '\P{Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6400, '\P{^Block= unified_Canadian_aboriginal_Syllabics_EXTENDED}', "");
-    Error('\p{Blk=/a/		UCAS_Ext}');
-    Error('\P{Blk=/a/		UCAS_Ext}');
+    Expect(1, 6399, '\p{Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6399, '\p{^Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6399, '\P{Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(1, 6399, '\P{^Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6400, '\p{Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(1, 6400, '\p{^Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(1, 6400, '\P{Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6400, '\P{^Block:	_ Unified_canadian_Aboriginal_syllabics_Extended}', "");
+    Error('\p{Blk:  /a/UCAS_EXT}');
+    Error('\P{Blk:  /a/UCAS_EXT}');
     Expect(1, 6399, '\p{Blk=:\AUCAS_Ext\z:}', "");;
     Expect(0, 6400, '\p{Blk=:\AUCAS_Ext\z:}', "");;
     Expect(1, 6399, '\p{Blk=ucasext}', "");
@@ -28010,34 +28586,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 6400, '\P{^Blk=ucasext}', "");
     Expect(1, 6399, '\p{Blk=:\Aucasext\z:}', "");;
     Expect(0, 6400, '\p{Blk=:\Aucasext\z:}', "");;
-    Expect(1, 6399, '\p{Blk=	UCAS_ext}', "");
-    Expect(0, 6399, '\p{^Blk=	UCAS_ext}', "");
-    Expect(0, 6399, '\P{Blk=	UCAS_ext}', "");
-    Expect(1, 6399, '\P{^Blk=	UCAS_ext}', "");
-    Expect(0, 6400, '\p{Blk=	UCAS_ext}', "");
-    Expect(1, 6400, '\p{^Blk=	UCAS_ext}', "");
-    Expect(1, 6400, '\P{Blk=	UCAS_ext}', "");
-    Expect(0, 6400, '\P{^Blk=	UCAS_ext}', "");
-    Error('\p{Is_Block=	/a/unified_Canadian_Aboriginal_Syllabics_Extended}');
-    Error('\P{Is_Block=	/a/unified_Canadian_Aboriginal_Syllabics_Extended}');
-    Expect(1, 6399, '\p{Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(0, 6399, '\p{^Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(0, 6399, '\P{Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6399, '\P{^Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(0, 6400, '\p{Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6400, '\p{^Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6400, '\P{Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(0, 6400, '\P{^Is_Block=unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6399, '\p{Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6399, '\p{^Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6399, '\P{Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(1, 6399, '\P{^Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6400, '\p{Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(1, 6400, '\p{^Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(1, 6400, '\P{Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6400, '\P{^Is_Block= unified_Canadian_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Error('\p{Is_Blk=/a/_-ucas_Ext}');
-    Error('\P{Is_Blk=/a/_-ucas_Ext}');
+    Expect(1, 6399, '\p{Blk=-	UCAS_EXT}', "");
+    Expect(0, 6399, '\p{^Blk=-	UCAS_EXT}', "");
+    Expect(0, 6399, '\P{Blk=-	UCAS_EXT}', "");
+    Expect(1, 6399, '\P{^Blk=-	UCAS_EXT}', "");
+    Expect(0, 6400, '\p{Blk=-	UCAS_EXT}', "");
+    Expect(1, 6400, '\p{^Blk=-	UCAS_EXT}', "");
+    Expect(1, 6400, '\P{Blk=-	UCAS_EXT}', "");
+    Expect(0, 6400, '\P{^Blk=-	UCAS_EXT}', "");
+    Error('\p{Is_Block=-	unified_CANADIAN_Aboriginal_Syllabics_extended/a/}');
+    Error('\P{Is_Block=-	unified_CANADIAN_Aboriginal_Syllabics_extended/a/}');
+    Expect(1, 6399, '\p{Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(0, 6399, '\p{^Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(0, 6399, '\P{Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(1, 6399, '\P{^Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(0, 6400, '\p{Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(1, 6400, '\p{^Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(1, 6400, '\P{Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(0, 6400, '\P{^Is_Block:unifiedcanadianaboriginalsyllabicsextended}', "");
+    Expect(1, 6399, '\p{Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6399, '\p{^Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6399, '\P{Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(1, 6399, '\P{^Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6400, '\p{Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(1, 6400, '\p{^Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(1, 6400, '\P{Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Expect(0, 6400, '\P{^Is_Block=-_UNIFIED_Canadian_Aboriginal_syllabics_Extended}', "");
+    Error('\p{Is_Blk=		UCAS_Ext/a/}');
+    Error('\P{Is_Blk=		UCAS_Ext/a/}');
     Expect(1, 6399, '\p{Is_Blk=ucasext}', "");
     Expect(0, 6399, '\p{^Is_Blk=ucasext}', "");
     Expect(0, 6399, '\P{Is_Blk=ucasext}', "");
@@ -28046,16 +28622,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 6400, '\p{^Is_Blk=ucasext}', "");
     Expect(1, 6400, '\P{Is_Blk=ucasext}', "");
     Expect(0, 6400, '\P{^Is_Blk=ucasext}', "");
-    Expect(1, 6399, '\p{Is_Blk=_-UCAS_Ext}', "");
-    Expect(0, 6399, '\p{^Is_Blk=_-UCAS_Ext}', "");
-    Expect(0, 6399, '\P{Is_Blk=_-UCAS_Ext}', "");
-    Expect(1, 6399, '\P{^Is_Blk=_-UCAS_Ext}', "");
-    Expect(0, 6400, '\p{Is_Blk=_-UCAS_Ext}', "");
-    Expect(1, 6400, '\p{^Is_Blk=_-UCAS_Ext}', "");
-    Expect(1, 6400, '\P{Is_Blk=_-UCAS_Ext}', "");
-    Expect(0, 6400, '\P{^Is_Blk=_-UCAS_Ext}', "");
-    Error('\p{Block=-:=UNIFIED_Canadian_ABORIGINAL_SYLLABICS_extended_A}');
-    Error('\P{Block=-:=UNIFIED_Canadian_ABORIGINAL_SYLLABICS_extended_A}');
+    Expect(1, 6399, '\p{Is_Blk=ucas_Ext}', "");
+    Expect(0, 6399, '\p{^Is_Blk=ucas_Ext}', "");
+    Expect(0, 6399, '\P{Is_Blk=ucas_Ext}', "");
+    Expect(1, 6399, '\P{^Is_Blk=ucas_Ext}', "");
+    Expect(0, 6400, '\p{Is_Blk=ucas_Ext}', "");
+    Expect(1, 6400, '\p{^Is_Blk=ucas_Ext}', "");
+    Expect(1, 6400, '\P{Is_Blk=ucas_Ext}', "");
+    Expect(0, 6400, '\P{^Is_Blk=ucas_Ext}', "");
+    Error('\p{Block=/a/UNIFIED_CANADIAN_aboriginal_Syllabics_Extended_a}');
+    Error('\P{Block=/a/UNIFIED_CANADIAN_aboriginal_Syllabics_Extended_a}');
     Expect(1, 72383, '\p{Block=:\AUnified_Canadian_Aboriginal_Syllabics_Extended_A\z:}', "");;
     Expect(0, 72384, '\p{Block=:\AUnified_Canadian_Aboriginal_Syllabics_Extended_A\z:}', "");;
     Expect(1, 72383, '\p{Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
@@ -28068,16 +28644,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72384, '\P{^Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(1, 72383, '\p{Block=:\Aunifiedcanadianaboriginalsyllabicsextendeda\z:}', "");;
     Expect(0, 72384, '\p{Block=:\Aunifiedcanadianaboriginalsyllabicsextendeda\z:}', "");;
-    Expect(1, 72383, '\p{Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(0, 72383, '\p{^Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(0, 72383, '\P{Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(1, 72383, '\P{^Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(0, 72384, '\p{Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(1, 72384, '\p{^Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(1, 72384, '\P{Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Expect(0, 72384, '\P{^Block= Unified_canadian_aboriginal_syllabics_Extended_A}', "");
-    Error('\p{Blk= -ucas_Ext_A/a/}');
-    Error('\P{Blk= -ucas_Ext_A/a/}');
+    Expect(1, 72383, '\p{Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(0, 72383, '\p{^Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(0, 72383, '\P{Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(1, 72383, '\P{^Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(0, 72384, '\p{Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(1, 72384, '\p{^Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(1, 72384, '\P{Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Expect(0, 72384, '\P{^Block=- Unified_Canadian_ABORIGINAL_Syllabics_extended_a}', "");
+    Error('\p{Blk=-UCAS_EXT_a:=}');
+    Error('\P{Blk=-UCAS_EXT_a:=}');
     Expect(1, 72383, '\p{Blk=:\AUCAS_Ext_A\z:}', "");;
     Expect(0, 72384, '\p{Blk=:\AUCAS_Ext_A\z:}', "");;
     Expect(1, 72383, '\p{Blk=ucasexta}', "");
@@ -28090,16 +28666,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72384, '\P{^Blk=ucasexta}', "");
     Expect(1, 72383, '\p{Blk=:\Aucasexta\z:}', "");;
     Expect(0, 72384, '\p{Blk=:\Aucasexta\z:}', "");;
-    Expect(1, 72383, '\p{Blk=_ UCAS_ext_A}', "");
-    Expect(0, 72383, '\p{^Blk=_ UCAS_ext_A}', "");
-    Expect(0, 72383, '\P{Blk=_ UCAS_ext_A}', "");
-    Expect(1, 72383, '\P{^Blk=_ UCAS_ext_A}', "");
-    Expect(0, 72384, '\p{Blk=_ UCAS_ext_A}', "");
-    Expect(1, 72384, '\p{^Blk=_ UCAS_ext_A}', "");
-    Expect(1, 72384, '\P{Blk=_ UCAS_ext_A}', "");
-    Expect(0, 72384, '\P{^Blk=_ UCAS_ext_A}', "");
-    Error('\p{Is_Block=_:=UNIFIED_Canadian_aboriginal_Syllabics_Extended_a}');
-    Error('\P{Is_Block=_:=UNIFIED_Canadian_aboriginal_Syllabics_Extended_a}');
+    Expect(1, 72383, '\p{Blk:	_UCAS_Ext_A}', "");
+    Expect(0, 72383, '\p{^Blk:	_UCAS_Ext_A}', "");
+    Expect(0, 72383, '\P{Blk:	_UCAS_Ext_A}', "");
+    Expect(1, 72383, '\P{^Blk:	_UCAS_Ext_A}', "");
+    Expect(0, 72384, '\p{Blk:	_UCAS_Ext_A}', "");
+    Expect(1, 72384, '\p{^Blk:	_UCAS_Ext_A}', "");
+    Expect(1, 72384, '\P{Blk:	_UCAS_Ext_A}', "");
+    Expect(0, 72384, '\P{^Blk:	_UCAS_Ext_A}', "");
+    Error('\p{Is_Block=/a/-Unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_a}');
+    Error('\P{Is_Block=/a/-Unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_a}');
     Expect(1, 72383, '\p{Is_Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\p{^Is_Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\P{Is_Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
@@ -28108,16 +28684,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72384, '\p{^Is_Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(1, 72384, '\P{Is_Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72384, '\P{^Is_Block=unifiedcanadianaboriginalsyllabicsextendeda}', "");
-    Expect(1, 72383, '\p{Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(0, 72383, '\p{^Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(0, 72383, '\P{Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(1, 72383, '\P{^Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(0, 72384, '\p{Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(1, 72384, '\p{^Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(1, 72384, '\P{Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Expect(0, 72384, '\P{^Is_Block=-Unified_Canadian_Aboriginal_SYLLABICS_extended_A}', "");
-    Error('\p{Is_Blk=	:=ucas_Ext_A}');
-    Error('\P{Is_Blk=	:=ucas_Ext_A}');
+    Expect(1, 72383, '\p{Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72383, '\p{^Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72383, '\P{Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(1, 72383, '\P{^Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72384, '\p{Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(1, 72384, '\p{^Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(1, 72384, '\P{Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72384, '\P{^Is_Block= UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Error('\p{Is_Blk=	:=ucas_ext_A}');
+    Error('\P{Is_Blk=	:=ucas_ext_A}');
     Expect(1, 72383, '\p{Is_Blk=ucasexta}', "");
     Expect(0, 72383, '\p{^Is_Blk=ucasexta}', "");
     Expect(0, 72383, '\P{Is_Blk=ucasexta}', "");
@@ -28126,16 +28702,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72384, '\p{^Is_Blk=ucasexta}', "");
     Expect(1, 72384, '\P{Is_Blk=ucasexta}', "");
     Expect(0, 72384, '\P{^Is_Blk=ucasexta}', "");
-    Expect(1, 72383, '\p{Is_Blk= UCAS_ext_A}', "");
-    Expect(0, 72383, '\p{^Is_Blk= UCAS_ext_A}', "");
-    Expect(0, 72383, '\P{Is_Blk= UCAS_ext_A}', "");
-    Expect(1, 72383, '\P{^Is_Blk= UCAS_ext_A}', "");
-    Expect(0, 72384, '\p{Is_Blk= UCAS_ext_A}', "");
-    Expect(1, 72384, '\p{^Is_Blk= UCAS_ext_A}', "");
-    Expect(1, 72384, '\P{Is_Blk= UCAS_ext_A}', "");
-    Expect(0, 72384, '\P{^Is_Blk= UCAS_ext_A}', "");
-    Error('\p{Block=:=	-Ugaritic}');
-    Error('\P{Block=:=	-Ugaritic}');
+    Expect(1, 72383, '\p{Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(0, 72383, '\p{^Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(0, 72383, '\P{Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(1, 72383, '\P{^Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(0, 72384, '\p{Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(1, 72384, '\p{^Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(1, 72384, '\P{Is_Blk= 	UCAS_Ext_a}', "");
+    Expect(0, 72384, '\P{^Is_Blk= 	UCAS_Ext_a}', "");
+    Error('\p{Block=:=	Ugaritic}');
+    Error('\P{Block=:=	Ugaritic}');
     Expect(1, 66463, '\p{Block=:\AUgaritic\z:}', "");;
     Expect(0, 66464, '\p{Block=:\AUgaritic\z:}', "");;
     Expect(1, 66463, '\p{Block=ugaritic}', "");
@@ -28148,16 +28724,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66464, '\P{^Block=ugaritic}', "");
     Expect(1, 66463, '\p{Block=:\Augaritic\z:}', "");;
     Expect(0, 66464, '\p{Block=:\Augaritic\z:}', "");;
-    Expect(1, 66463, '\p{Block=-	Ugaritic}', "");
-    Expect(0, 66463, '\p{^Block=-	Ugaritic}', "");
-    Expect(0, 66463, '\P{Block=-	Ugaritic}', "");
-    Expect(1, 66463, '\P{^Block=-	Ugaritic}', "");
-    Expect(0, 66464, '\p{Block=-	Ugaritic}', "");
-    Expect(1, 66464, '\p{^Block=-	Ugaritic}', "");
-    Expect(1, 66464, '\P{Block=-	Ugaritic}', "");
-    Expect(0, 66464, '\P{^Block=-	Ugaritic}', "");
-    Error('\p{Blk=/a/--UGARITIC}');
-    Error('\P{Blk=/a/--UGARITIC}');
+    Expect(1, 66463, '\p{Block= UGARITIC}', "");
+    Expect(0, 66463, '\p{^Block= UGARITIC}', "");
+    Expect(0, 66463, '\P{Block= UGARITIC}', "");
+    Expect(1, 66463, '\P{^Block= UGARITIC}', "");
+    Expect(0, 66464, '\p{Block= UGARITIC}', "");
+    Expect(1, 66464, '\p{^Block= UGARITIC}', "");
+    Expect(1, 66464, '\P{Block= UGARITIC}', "");
+    Expect(0, 66464, '\P{^Block= UGARITIC}', "");
+    Error('\p{Blk=-Ugaritic/a/}');
+    Error('\P{Blk=-Ugaritic/a/}');
     Expect(1, 66463, '\p{Blk=:\AUgaritic\z:}', "");;
     Expect(0, 66464, '\p{Blk=:\AUgaritic\z:}', "");;
     Expect(1, 66463, '\p{Blk=ugaritic}', "");
@@ -28170,16 +28746,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 66464, '\P{^Blk=ugaritic}', "");
     Expect(1, 66463, '\p{Blk=:\Augaritic\z:}', "");;
     Expect(0, 66464, '\p{Blk=:\Augaritic\z:}', "");;
-    Expect(1, 66463, '\p{Blk=Ugaritic}', "");
-    Expect(0, 66463, '\p{^Blk=Ugaritic}', "");
-    Expect(0, 66463, '\P{Blk=Ugaritic}', "");
-    Expect(1, 66463, '\P{^Blk=Ugaritic}', "");
-    Expect(0, 66464, '\p{Blk=Ugaritic}', "");
-    Expect(1, 66464, '\p{^Blk=Ugaritic}', "");
-    Expect(1, 66464, '\P{Blk=Ugaritic}', "");
-    Expect(0, 66464, '\P{^Blk=Ugaritic}', "");
-    Error('\p{Is_Block=/a/ugaritic}');
-    Error('\P{Is_Block=/a/ugaritic}');
+    Expect(1, 66463, '\p{Blk=_	Ugaritic}', "");
+    Expect(0, 66463, '\p{^Blk=_	Ugaritic}', "");
+    Expect(0, 66463, '\P{Blk=_	Ugaritic}', "");
+    Expect(1, 66463, '\P{^Blk=_	Ugaritic}', "");
+    Expect(0, 66464, '\p{Blk=_	Ugaritic}', "");
+    Expect(1, 66464, '\p{^Blk=_	Ugaritic}', "");
+    Expect(1, 66464, '\P{Blk=_	Ugaritic}', "");
+    Expect(0, 66464, '\P{^Blk=_	Ugaritic}', "");
+    Error('\p{Is_Block:	ugaritic:=}');
+    Error('\P{Is_Block:	ugaritic:=}');
     Expect(1, 66463, '\p{Is_Block=ugaritic}', "");
     Expect(0, 66463, '\p{^Is_Block=ugaritic}', "");
     Expect(0, 66463, '\P{Is_Block=ugaritic}', "");
@@ -28188,16 +28764,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66464, '\p{^Is_Block=ugaritic}', "");
     Expect(1, 66464, '\P{Is_Block=ugaritic}', "");
     Expect(0, 66464, '\P{^Is_Block=ugaritic}', "");
-    Expect(1, 66463, '\p{Is_Block= Ugaritic}', "");
-    Expect(0, 66463, '\p{^Is_Block= Ugaritic}', "");
-    Expect(0, 66463, '\P{Is_Block= Ugaritic}', "");
-    Expect(1, 66463, '\P{^Is_Block= Ugaritic}', "");
-    Expect(0, 66464, '\p{Is_Block= Ugaritic}', "");
-    Expect(1, 66464, '\p{^Is_Block= Ugaritic}', "");
-    Expect(1, 66464, '\P{Is_Block= Ugaritic}', "");
-    Expect(0, 66464, '\P{^Is_Block= Ugaritic}', "");
-    Error('\p{Is_Blk=	UGARITIC:=}');
-    Error('\P{Is_Blk=	UGARITIC:=}');
+    Expect(1, 66463, '\p{Is_Block=	_Ugaritic}', "");
+    Expect(0, 66463, '\p{^Is_Block=	_Ugaritic}', "");
+    Expect(0, 66463, '\P{Is_Block=	_Ugaritic}', "");
+    Expect(1, 66463, '\P{^Is_Block=	_Ugaritic}', "");
+    Expect(0, 66464, '\p{Is_Block=	_Ugaritic}', "");
+    Expect(1, 66464, '\p{^Is_Block=	_Ugaritic}', "");
+    Expect(1, 66464, '\P{Is_Block=	_Ugaritic}', "");
+    Expect(0, 66464, '\P{^Is_Block=	_Ugaritic}', "");
+    Error('\p{Is_Blk=:=_	UGARITIC}');
+    Error('\P{Is_Blk=:=_	UGARITIC}');
     Expect(1, 66463, '\p{Is_Blk=ugaritic}', "");
     Expect(0, 66463, '\p{^Is_Blk=ugaritic}', "");
     Expect(0, 66463, '\P{Is_Blk=ugaritic}', "");
@@ -28206,16 +28782,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 66464, '\p{^Is_Blk=ugaritic}', "");
     Expect(1, 66464, '\P{Is_Blk=ugaritic}', "");
     Expect(0, 66464, '\P{^Is_Blk=ugaritic}', "");
-    Expect(1, 66463, '\p{Is_Blk= _UGARITIC}', "");
-    Expect(0, 66463, '\p{^Is_Blk= _UGARITIC}', "");
-    Expect(0, 66463, '\P{Is_Blk= _UGARITIC}', "");
-    Expect(1, 66463, '\P{^Is_Blk= _UGARITIC}', "");
-    Expect(0, 66464, '\p{Is_Blk= _UGARITIC}', "");
-    Expect(1, 66464, '\p{^Is_Blk= _UGARITIC}', "");
-    Expect(1, 66464, '\P{Is_Blk= _UGARITIC}', "");
-    Expect(0, 66464, '\P{^Is_Blk= _UGARITIC}', "");
-    Error('\p{Block= Vai:=}');
-    Error('\P{Block= Vai:=}');
+    Expect(1, 66463, '\p{Is_Blk=- UGARITIC}', "");
+    Expect(0, 66463, '\p{^Is_Blk=- UGARITIC}', "");
+    Expect(0, 66463, '\P{Is_Blk=- UGARITIC}', "");
+    Expect(1, 66463, '\P{^Is_Blk=- UGARITIC}', "");
+    Expect(0, 66464, '\p{Is_Blk=- UGARITIC}', "");
+    Expect(1, 66464, '\p{^Is_Blk=- UGARITIC}', "");
+    Expect(1, 66464, '\P{Is_Blk=- UGARITIC}', "");
+    Expect(0, 66464, '\P{^Is_Blk=- UGARITIC}', "");
+    Error('\p{Block= _vai/a/}');
+    Error('\P{Block= _vai/a/}');
     Expect(1, 42559, '\p{Block=:\AVai\z:}', "");;
     Expect(0, 42560, '\p{Block=:\AVai\z:}', "");;
     Expect(1, 42559, '\p{Block=vai}', "");
@@ -28228,38 +28804,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42560, '\P{^Block=vai}', "");
     Expect(1, 42559, '\p{Block=:\Avai\z:}', "");;
     Expect(0, 42560, '\p{Block=:\Avai\z:}', "");;
-    Expect(1, 42559, '\p{Block=_-vai}', "");
-    Expect(0, 42559, '\p{^Block=_-vai}', "");
-    Expect(0, 42559, '\P{Block=_-vai}', "");
-    Expect(1, 42559, '\P{^Block=_-vai}', "");
-    Expect(0, 42560, '\p{Block=_-vai}', "");
-    Expect(1, 42560, '\p{^Block=_-vai}', "");
-    Expect(1, 42560, '\P{Block=_-vai}', "");
-    Expect(0, 42560, '\P{^Block=_-vai}', "");
-    Error('\p{Blk=-Vai:=}');
-    Error('\P{Blk=-Vai:=}');
+    Expect(1, 42559, '\p{Block=		Vai}', "");
+    Expect(0, 42559, '\p{^Block=		Vai}', "");
+    Expect(0, 42559, '\P{Block=		Vai}', "");
+    Expect(1, 42559, '\P{^Block=		Vai}', "");
+    Expect(0, 42560, '\p{Block=		Vai}', "");
+    Expect(1, 42560, '\p{^Block=		Vai}', "");
+    Expect(1, 42560, '\P{Block=		Vai}', "");
+    Expect(0, 42560, '\P{^Block=		Vai}', "");
+    Error('\p{Blk=/a/Vai}');
+    Error('\P{Blk=/a/Vai}');
     Expect(1, 42559, '\p{Blk=:\AVai\z:}', "");;
     Expect(0, 42560, '\p{Blk=:\AVai\z:}', "");;
-    Expect(1, 42559, '\p{Blk: vai}', "");
-    Expect(0, 42559, '\p{^Blk: vai}', "");
-    Expect(0, 42559, '\P{Blk: vai}', "");
-    Expect(1, 42559, '\P{^Blk: vai}', "");
-    Expect(0, 42560, '\p{Blk: vai}', "");
-    Expect(1, 42560, '\p{^Blk: vai}', "");
-    Expect(1, 42560, '\P{Blk: vai}', "");
-    Expect(0, 42560, '\P{^Blk: vai}', "");
+    Expect(1, 42559, '\p{Blk=vai}', "");
+    Expect(0, 42559, '\p{^Blk=vai}', "");
+    Expect(0, 42559, '\P{Blk=vai}', "");
+    Expect(1, 42559, '\P{^Blk=vai}', "");
+    Expect(0, 42560, '\p{Blk=vai}', "");
+    Expect(1, 42560, '\p{^Blk=vai}', "");
+    Expect(1, 42560, '\P{Blk=vai}', "");
+    Expect(0, 42560, '\P{^Blk=vai}', "");
     Expect(1, 42559, '\p{Blk=:\Avai\z:}', "");;
     Expect(0, 42560, '\p{Blk=:\Avai\z:}', "");;
-    Expect(1, 42559, '\p{Blk=	_Vai}', "");
-    Expect(0, 42559, '\p{^Blk=	_Vai}', "");
-    Expect(0, 42559, '\P{Blk=	_Vai}', "");
-    Expect(1, 42559, '\P{^Blk=	_Vai}', "");
-    Expect(0, 42560, '\p{Blk=	_Vai}', "");
-    Expect(1, 42560, '\p{^Blk=	_Vai}', "");
-    Expect(1, 42560, '\P{Blk=	_Vai}', "");
-    Expect(0, 42560, '\P{^Blk=	_Vai}', "");
-    Error('\p{Is_Block=_ VAI/a/}');
-    Error('\P{Is_Block=_ VAI/a/}');
+    Expect(1, 42559, '\p{Blk=		Vai}', "");
+    Expect(0, 42559, '\p{^Blk=		Vai}', "");
+    Expect(0, 42559, '\P{Blk=		Vai}', "");
+    Expect(1, 42559, '\P{^Blk=		Vai}', "");
+    Expect(0, 42560, '\p{Blk=		Vai}', "");
+    Expect(1, 42560, '\p{^Blk=		Vai}', "");
+    Expect(1, 42560, '\P{Blk=		Vai}', "");
+    Expect(0, 42560, '\P{^Blk=		Vai}', "");
+    Error('\p{Is_Block::=_-Vai}');
+    Error('\P{Is_Block::=_-Vai}');
     Expect(1, 42559, '\p{Is_Block=vai}', "");
     Expect(0, 42559, '\p{^Is_Block=vai}', "");
     Expect(0, 42559, '\P{Is_Block=vai}', "");
@@ -28268,34 +28844,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42560, '\p{^Is_Block=vai}', "");
     Expect(1, 42560, '\P{Is_Block=vai}', "");
     Expect(0, 42560, '\P{^Is_Block=vai}', "");
-    Expect(1, 42559, '\p{Is_Block=_ VAI}', "");
-    Expect(0, 42559, '\p{^Is_Block=_ VAI}', "");
-    Expect(0, 42559, '\P{Is_Block=_ VAI}', "");
-    Expect(1, 42559, '\P{^Is_Block=_ VAI}', "");
-    Expect(0, 42560, '\p{Is_Block=_ VAI}', "");
-    Expect(1, 42560, '\p{^Is_Block=_ VAI}', "");
-    Expect(1, 42560, '\P{Is_Block=_ VAI}', "");
-    Expect(0, 42560, '\P{^Is_Block=_ VAI}', "");
-    Error('\p{Is_Blk=/a/_	Vai}');
-    Error('\P{Is_Blk=/a/_	Vai}');
-    Expect(1, 42559, '\p{Is_Blk=vai}', "");
-    Expect(0, 42559, '\p{^Is_Blk=vai}', "");
-    Expect(0, 42559, '\P{Is_Blk=vai}', "");
-    Expect(1, 42559, '\P{^Is_Blk=vai}', "");
-    Expect(0, 42560, '\p{Is_Blk=vai}', "");
-    Expect(1, 42560, '\p{^Is_Blk=vai}', "");
-    Expect(1, 42560, '\P{Is_Blk=vai}', "");
-    Expect(0, 42560, '\P{^Is_Blk=vai}', "");
-    Expect(1, 42559, '\p{Is_Blk=-Vai}', "");
-    Expect(0, 42559, '\p{^Is_Blk=-Vai}', "");
-    Expect(0, 42559, '\P{Is_Blk=-Vai}', "");
-    Expect(1, 42559, '\P{^Is_Blk=-Vai}', "");
-    Expect(0, 42560, '\p{Is_Blk=-Vai}', "");
-    Expect(1, 42560, '\p{^Is_Blk=-Vai}', "");
-    Expect(1, 42560, '\P{Is_Blk=-Vai}', "");
-    Expect(0, 42560, '\P{^Is_Blk=-Vai}', "");
-    Error('\p{Block=	_vedic_EXTENSIONS:=}');
-    Error('\P{Block=	_vedic_EXTENSIONS:=}');
+    Expect(1, 42559, '\p{Is_Block=- VAI}', "");
+    Expect(0, 42559, '\p{^Is_Block=- VAI}', "");
+    Expect(0, 42559, '\P{Is_Block=- VAI}', "");
+    Expect(1, 42559, '\P{^Is_Block=- VAI}', "");
+    Expect(0, 42560, '\p{Is_Block=- VAI}', "");
+    Expect(1, 42560, '\p{^Is_Block=- VAI}', "");
+    Expect(1, 42560, '\P{Is_Block=- VAI}', "");
+    Expect(0, 42560, '\P{^Is_Block=- VAI}', "");
+    Error('\p{Is_Blk=/a/_ VAI}');
+    Error('\P{Is_Blk=/a/_ VAI}');
+    Expect(1, 42559, '\p{Is_Blk:vai}', "");
+    Expect(0, 42559, '\p{^Is_Blk:vai}', "");
+    Expect(0, 42559, '\P{Is_Blk:vai}', "");
+    Expect(1, 42559, '\P{^Is_Blk:vai}', "");
+    Expect(0, 42560, '\p{Is_Blk:vai}', "");
+    Expect(1, 42560, '\p{^Is_Blk:vai}', "");
+    Expect(1, 42560, '\P{Is_Blk:vai}', "");
+    Expect(0, 42560, '\P{^Is_Blk:vai}', "");
+    Expect(1, 42559, '\p{Is_Blk=	-vai}', "");
+    Expect(0, 42559, '\p{^Is_Blk=	-vai}', "");
+    Expect(0, 42559, '\P{Is_Blk=	-vai}', "");
+    Expect(1, 42559, '\P{^Is_Blk=	-vai}', "");
+    Expect(0, 42560, '\p{Is_Blk=	-vai}', "");
+    Expect(1, 42560, '\p{^Is_Blk=	-vai}', "");
+    Expect(1, 42560, '\P{Is_Blk=	-vai}', "");
+    Expect(0, 42560, '\P{^Is_Blk=	-vai}', "");
+    Error('\p{Block=:=-vedic_extensions}');
+    Error('\P{Block=:=-vedic_extensions}');
     Expect(1, 7423, '\p{Block=:\AVedic_Extensions\z:}', "");;
     Expect(0, 7424, '\p{Block=:\AVedic_Extensions\z:}', "");;
     Expect(1, 7423, '\p{Block=vedicextensions}', "");
@@ -28308,16 +28884,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7424, '\P{^Block=vedicextensions}', "");
     Expect(1, 7423, '\p{Block=:\Avedicextensions\z:}', "");;
     Expect(0, 7424, '\p{Block=:\Avedicextensions\z:}', "");;
-    Expect(1, 7423, '\p{Block: _	vedic_EXTENSIONS}', "");
-    Expect(0, 7423, '\p{^Block: _	vedic_EXTENSIONS}', "");
-    Expect(0, 7423, '\P{Block: _	vedic_EXTENSIONS}', "");
-    Expect(1, 7423, '\P{^Block: _	vedic_EXTENSIONS}', "");
-    Expect(0, 7424, '\p{Block: _	vedic_EXTENSIONS}', "");
-    Expect(1, 7424, '\p{^Block: _	vedic_EXTENSIONS}', "");
-    Expect(1, 7424, '\P{Block: _	vedic_EXTENSIONS}', "");
-    Expect(0, 7424, '\P{^Block: _	vedic_EXTENSIONS}', "");
-    Error('\p{Blk=/a/_-VEDIC_ext}');
-    Error('\P{Blk=/a/_-VEDIC_ext}');
+    Expect(1, 7423, '\p{Block=-vedic_EXTENSIONS}', "");
+    Expect(0, 7423, '\p{^Block=-vedic_EXTENSIONS}', "");
+    Expect(0, 7423, '\P{Block=-vedic_EXTENSIONS}', "");
+    Expect(1, 7423, '\P{^Block=-vedic_EXTENSIONS}', "");
+    Expect(0, 7424, '\p{Block=-vedic_EXTENSIONS}', "");
+    Expect(1, 7424, '\p{^Block=-vedic_EXTENSIONS}', "");
+    Expect(1, 7424, '\P{Block=-vedic_EXTENSIONS}', "");
+    Expect(0, 7424, '\P{^Block=-vedic_EXTENSIONS}', "");
+    Error('\p{Blk=-/a/VEDIC_ext}');
+    Error('\P{Blk=-/a/VEDIC_ext}');
     Expect(1, 7423, '\p{Blk=:\AVedic_Ext\z:}', "");;
     Expect(0, 7424, '\p{Blk=:\AVedic_Ext\z:}', "");;
     Expect(1, 7423, '\p{Blk=vedicext}', "");
@@ -28330,16 +28906,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7424, '\P{^Blk=vedicext}', "");
     Expect(1, 7423, '\p{Blk=:\Avedicext\z:}', "");;
     Expect(0, 7424, '\p{Blk=:\Avedicext\z:}', "");;
-    Expect(1, 7423, '\p{Blk=  Vedic_Ext}', "");
-    Expect(0, 7423, '\p{^Blk=  Vedic_Ext}', "");
-    Expect(0, 7423, '\P{Blk=  Vedic_Ext}', "");
-    Expect(1, 7423, '\P{^Blk=  Vedic_Ext}', "");
-    Expect(0, 7424, '\p{Blk=  Vedic_Ext}', "");
-    Expect(1, 7424, '\p{^Blk=  Vedic_Ext}', "");
-    Expect(1, 7424, '\P{Blk=  Vedic_Ext}', "");
-    Expect(0, 7424, '\P{^Blk=  Vedic_Ext}', "");
-    Error('\p{Is_Block= /a/VEDIC_Extensions}');
-    Error('\P{Is_Block= /a/VEDIC_Extensions}');
+    Expect(1, 7423, '\p{Blk=_Vedic_Ext}', "");
+    Expect(0, 7423, '\p{^Blk=_Vedic_Ext}', "");
+    Expect(0, 7423, '\P{Blk=_Vedic_Ext}', "");
+    Expect(1, 7423, '\P{^Blk=_Vedic_Ext}', "");
+    Expect(0, 7424, '\p{Blk=_Vedic_Ext}', "");
+    Expect(1, 7424, '\p{^Blk=_Vedic_Ext}', "");
+    Expect(1, 7424, '\P{Blk=_Vedic_Ext}', "");
+    Expect(0, 7424, '\P{^Blk=_Vedic_Ext}', "");
+    Error('\p{Is_Block= :=VEDIC_Extensions}');
+    Error('\P{Is_Block= :=VEDIC_Extensions}');
     Expect(1, 7423, '\p{Is_Block=vedicextensions}', "");
     Expect(0, 7423, '\p{^Is_Block=vedicextensions}', "");
     Expect(0, 7423, '\P{Is_Block=vedicextensions}', "");
@@ -28348,16 +28924,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7424, '\p{^Is_Block=vedicextensions}', "");
     Expect(1, 7424, '\P{Is_Block=vedicextensions}', "");
     Expect(0, 7424, '\P{^Is_Block=vedicextensions}', "");
-    Expect(1, 7423, '\p{Is_Block:   -VEDIC_extensions}', "");
-    Expect(0, 7423, '\p{^Is_Block:   -VEDIC_extensions}', "");
-    Expect(0, 7423, '\P{Is_Block:   -VEDIC_extensions}', "");
-    Expect(1, 7423, '\P{^Is_Block:   -VEDIC_extensions}', "");
-    Expect(0, 7424, '\p{Is_Block:   -VEDIC_extensions}', "");
-    Expect(1, 7424, '\p{^Is_Block:   -VEDIC_extensions}', "");
-    Expect(1, 7424, '\P{Is_Block:   -VEDIC_extensions}', "");
-    Expect(0, 7424, '\P{^Is_Block:   -VEDIC_extensions}', "");
-    Error('\p{Is_Blk=-_Vedic_ext/a/}');
-    Error('\P{Is_Blk=-_Vedic_ext/a/}');
+    Expect(1, 7423, '\p{Is_Block= 	Vedic_Extensions}', "");
+    Expect(0, 7423, '\p{^Is_Block= 	Vedic_Extensions}', "");
+    Expect(0, 7423, '\P{Is_Block= 	Vedic_Extensions}', "");
+    Expect(1, 7423, '\P{^Is_Block= 	Vedic_Extensions}', "");
+    Expect(0, 7424, '\p{Is_Block= 	Vedic_Extensions}', "");
+    Expect(1, 7424, '\p{^Is_Block= 	Vedic_Extensions}', "");
+    Expect(1, 7424, '\P{Is_Block= 	Vedic_Extensions}', "");
+    Expect(0, 7424, '\P{^Is_Block= 	Vedic_Extensions}', "");
+    Error('\p{Is_Blk=	-vedic_EXT/a/}');
+    Error('\P{Is_Blk=	-vedic_EXT/a/}');
     Expect(1, 7423, '\p{Is_Blk=vedicext}', "");
     Expect(0, 7423, '\p{^Is_Blk=vedicext}', "");
     Expect(0, 7423, '\P{Is_Blk=vedicext}', "");
@@ -28366,38 +28942,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7424, '\p{^Is_Blk=vedicext}', "");
     Expect(1, 7424, '\P{Is_Blk=vedicext}', "");
     Expect(0, 7424, '\P{^Is_Blk=vedicext}', "");
-    Expect(1, 7423, '\p{Is_Blk=_Vedic_ext}', "");
-    Expect(0, 7423, '\p{^Is_Blk=_Vedic_ext}', "");
-    Expect(0, 7423, '\P{Is_Blk=_Vedic_ext}', "");
-    Expect(1, 7423, '\P{^Is_Blk=_Vedic_ext}', "");
-    Expect(0, 7424, '\p{Is_Blk=_Vedic_ext}', "");
-    Expect(1, 7424, '\p{^Is_Blk=_Vedic_ext}', "");
-    Expect(1, 7424, '\P{Is_Blk=_Vedic_ext}', "");
-    Expect(0, 7424, '\P{^Is_Blk=_Vedic_ext}', "");
-    Error('\p{Block=:= Vertical_Forms}');
-    Error('\P{Block=:= Vertical_Forms}');
+    Expect(1, 7423, '\p{Is_Blk= _VEDIC_ext}', "");
+    Expect(0, 7423, '\p{^Is_Blk= _VEDIC_ext}', "");
+    Expect(0, 7423, '\P{Is_Blk= _VEDIC_ext}', "");
+    Expect(1, 7423, '\P{^Is_Blk= _VEDIC_ext}', "");
+    Expect(0, 7424, '\p{Is_Blk= _VEDIC_ext}', "");
+    Expect(1, 7424, '\p{^Is_Blk= _VEDIC_ext}', "");
+    Expect(1, 7424, '\P{Is_Blk= _VEDIC_ext}', "");
+    Expect(0, 7424, '\P{^Is_Blk= _VEDIC_ext}', "");
+    Error('\p{Block=	vertical_Forms/a/}');
+    Error('\P{Block=	vertical_Forms/a/}');
     Expect(1, 65055, '\p{Block=:\AVertical_Forms\z:}', "");;
     Expect(0, 65056, '\p{Block=:\AVertical_Forms\z:}', "");;
-    Expect(1, 65055, '\p{Block:   verticalforms}', "");
-    Expect(0, 65055, '\p{^Block:   verticalforms}', "");
-    Expect(0, 65055, '\P{Block:   verticalforms}', "");
-    Expect(1, 65055, '\P{^Block:   verticalforms}', "");
-    Expect(0, 65056, '\p{Block:   verticalforms}', "");
-    Expect(1, 65056, '\p{^Block:   verticalforms}', "");
-    Expect(1, 65056, '\P{Block:   verticalforms}', "");
-    Expect(0, 65056, '\P{^Block:   verticalforms}', "");
+    Expect(1, 65055, '\p{Block=verticalforms}', "");
+    Expect(0, 65055, '\p{^Block=verticalforms}', "");
+    Expect(0, 65055, '\P{Block=verticalforms}', "");
+    Expect(1, 65055, '\P{^Block=verticalforms}', "");
+    Expect(0, 65056, '\p{Block=verticalforms}', "");
+    Expect(1, 65056, '\p{^Block=verticalforms}', "");
+    Expect(1, 65056, '\P{Block=verticalforms}', "");
+    Expect(0, 65056, '\P{^Block=verticalforms}', "");
     Expect(1, 65055, '\p{Block=:\Averticalforms\z:}', "");;
     Expect(0, 65056, '\p{Block=:\Averticalforms\z:}', "");;
-    Expect(1, 65055, '\p{Block=Vertical_Forms}', "");
-    Expect(0, 65055, '\p{^Block=Vertical_Forms}', "");
-    Expect(0, 65055, '\P{Block=Vertical_Forms}', "");
-    Expect(1, 65055, '\P{^Block=Vertical_Forms}', "");
-    Expect(0, 65056, '\p{Block=Vertical_Forms}', "");
-    Expect(1, 65056, '\p{^Block=Vertical_Forms}', "");
-    Expect(1, 65056, '\P{Block=Vertical_Forms}', "");
-    Expect(0, 65056, '\P{^Block=Vertical_Forms}', "");
-    Error('\p{Blk=_:=Vertical_Forms}');
-    Error('\P{Blk=_:=Vertical_Forms}');
+    Expect(1, 65055, '\p{Block:		vertical_forms}', "");
+    Expect(0, 65055, '\p{^Block:		vertical_forms}', "");
+    Expect(0, 65055, '\P{Block:		vertical_forms}', "");
+    Expect(1, 65055, '\P{^Block:		vertical_forms}', "");
+    Expect(0, 65056, '\p{Block:		vertical_forms}', "");
+    Expect(1, 65056, '\p{^Block:		vertical_forms}', "");
+    Expect(1, 65056, '\P{Block:		vertical_forms}', "");
+    Expect(0, 65056, '\P{^Block:		vertical_forms}', "");
+    Error('\p{Blk=	Vertical_FORMS/a/}');
+    Error('\P{Blk=	Vertical_FORMS/a/}');
     Expect(1, 65055, '\p{Blk=:\AVertical_Forms\z:}', "");;
     Expect(0, 65056, '\p{Blk=:\AVertical_Forms\z:}', "");;
     Expect(1, 65055, '\p{Blk=verticalforms}', "");
@@ -28410,16 +28986,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65056, '\P{^Blk=verticalforms}', "");
     Expect(1, 65055, '\p{Blk=:\Averticalforms\z:}', "");;
     Expect(0, 65056, '\p{Blk=:\Averticalforms\z:}', "");;
-    Expect(1, 65055, '\p{Blk=	-Vertical_forms}', "");
-    Expect(0, 65055, '\p{^Blk=	-Vertical_forms}', "");
-    Expect(0, 65055, '\P{Blk=	-Vertical_forms}', "");
-    Expect(1, 65055, '\P{^Blk=	-Vertical_forms}', "");
-    Expect(0, 65056, '\p{Blk=	-Vertical_forms}', "");
-    Expect(1, 65056, '\p{^Blk=	-Vertical_forms}', "");
-    Expect(1, 65056, '\P{Blk=	-Vertical_forms}', "");
-    Expect(0, 65056, '\P{^Blk=	-Vertical_forms}', "");
-    Error('\p{Is_Block: :=	VERTICAL_FORMS}');
-    Error('\P{Is_Block: :=	VERTICAL_FORMS}');
+    Expect(1, 65055, '\p{Blk:	 _vertical_Forms}', "");
+    Expect(0, 65055, '\p{^Blk:	 _vertical_Forms}', "");
+    Expect(0, 65055, '\P{Blk:	 _vertical_Forms}', "");
+    Expect(1, 65055, '\P{^Blk:	 _vertical_Forms}', "");
+    Expect(0, 65056, '\p{Blk:	 _vertical_Forms}', "");
+    Expect(1, 65056, '\p{^Blk:	 _vertical_Forms}', "");
+    Expect(1, 65056, '\P{Blk:	 _vertical_Forms}', "");
+    Expect(0, 65056, '\P{^Blk:	 _vertical_Forms}', "");
+    Error('\p{Is_Block:	 -Vertical_Forms:=}');
+    Error('\P{Is_Block:	 -Vertical_Forms:=}');
     Expect(1, 65055, '\p{Is_Block=verticalforms}', "");
     Expect(0, 65055, '\p{^Is_Block=verticalforms}', "");
     Expect(0, 65055, '\P{Is_Block=verticalforms}', "");
@@ -28428,34 +29004,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65056, '\p{^Is_Block=verticalforms}', "");
     Expect(1, 65056, '\P{Is_Block=verticalforms}', "");
     Expect(0, 65056, '\P{^Is_Block=verticalforms}', "");
-    Expect(1, 65055, '\p{Is_Block=--Vertical_Forms}', "");
-    Expect(0, 65055, '\p{^Is_Block=--Vertical_Forms}', "");
-    Expect(0, 65055, '\P{Is_Block=--Vertical_Forms}', "");
-    Expect(1, 65055, '\P{^Is_Block=--Vertical_Forms}', "");
-    Expect(0, 65056, '\p{Is_Block=--Vertical_Forms}', "");
-    Expect(1, 65056, '\p{^Is_Block=--Vertical_Forms}', "");
-    Expect(1, 65056, '\P{Is_Block=--Vertical_Forms}', "");
-    Expect(0, 65056, '\P{^Is_Block=--Vertical_Forms}', "");
-    Error('\p{Is_Blk:   _	vertical_FORMS/a/}');
-    Error('\P{Is_Blk:   _	vertical_FORMS/a/}');
-    Expect(1, 65055, '\p{Is_Blk:   verticalforms}', "");
-    Expect(0, 65055, '\p{^Is_Blk:   verticalforms}', "");
-    Expect(0, 65055, '\P{Is_Blk:   verticalforms}', "");
-    Expect(1, 65055, '\P{^Is_Blk:   verticalforms}', "");
-    Expect(0, 65056, '\p{Is_Blk:   verticalforms}', "");
-    Expect(1, 65056, '\p{^Is_Blk:   verticalforms}', "");
-    Expect(1, 65056, '\P{Is_Blk:   verticalforms}', "");
-    Expect(0, 65056, '\P{^Is_Blk:   verticalforms}', "");
-    Expect(1, 65055, '\p{Is_Blk=_	Vertical_FORMS}', "");
-    Expect(0, 65055, '\p{^Is_Blk=_	Vertical_FORMS}', "");
-    Expect(0, 65055, '\P{Is_Blk=_	Vertical_FORMS}', "");
-    Expect(1, 65055, '\P{^Is_Blk=_	Vertical_FORMS}', "");
-    Expect(0, 65056, '\p{Is_Blk=_	Vertical_FORMS}', "");
-    Expect(1, 65056, '\p{^Is_Blk=_	Vertical_FORMS}', "");
-    Expect(1, 65056, '\P{Is_Blk=_	Vertical_FORMS}', "");
-    Expect(0, 65056, '\P{^Is_Blk=_	Vertical_FORMS}', "");
-    Error('\p{Block=_Vithkuqi:=}');
-    Error('\P{Block=_Vithkuqi:=}');
+    Expect(1, 65055, '\p{Is_Block:	 Vertical_Forms}', "");
+    Expect(0, 65055, '\p{^Is_Block:	 Vertical_Forms}', "");
+    Expect(0, 65055, '\P{Is_Block:	 Vertical_Forms}', "");
+    Expect(1, 65055, '\P{^Is_Block:	 Vertical_Forms}', "");
+    Expect(0, 65056, '\p{Is_Block:	 Vertical_Forms}', "");
+    Expect(1, 65056, '\p{^Is_Block:	 Vertical_Forms}', "");
+    Expect(1, 65056, '\P{Is_Block:	 Vertical_Forms}', "");
+    Expect(0, 65056, '\P{^Is_Block:	 Vertical_Forms}', "");
+    Error('\p{Is_Blk=/a/VERTICAL_forms}');
+    Error('\P{Is_Blk=/a/VERTICAL_forms}');
+    Expect(1, 65055, '\p{Is_Blk=verticalforms}', "");
+    Expect(0, 65055, '\p{^Is_Blk=verticalforms}', "");
+    Expect(0, 65055, '\P{Is_Blk=verticalforms}', "");
+    Expect(1, 65055, '\P{^Is_Blk=verticalforms}', "");
+    Expect(0, 65056, '\p{Is_Blk=verticalforms}', "");
+    Expect(1, 65056, '\p{^Is_Blk=verticalforms}', "");
+    Expect(1, 65056, '\P{Is_Blk=verticalforms}', "");
+    Expect(0, 65056, '\P{^Is_Blk=verticalforms}', "");
+    Expect(1, 65055, '\p{Is_Blk=vertical_Forms}', "");
+    Expect(0, 65055, '\p{^Is_Blk=vertical_Forms}', "");
+    Expect(0, 65055, '\P{Is_Blk=vertical_Forms}', "");
+    Expect(1, 65055, '\P{^Is_Blk=vertical_Forms}', "");
+    Expect(0, 65056, '\p{Is_Blk=vertical_Forms}', "");
+    Expect(1, 65056, '\p{^Is_Blk=vertical_Forms}', "");
+    Expect(1, 65056, '\P{Is_Blk=vertical_Forms}', "");
+    Expect(0, 65056, '\P{^Is_Blk=vertical_Forms}', "");
+    Error('\p{Block=	VITHKUQI:=}');
+    Error('\P{Block=	VITHKUQI:=}');
     Expect(1, 67007, '\p{Block=:\AVithkuqi\z:}', "");;
     Expect(0, 67008, '\p{Block=:\AVithkuqi\z:}', "");;
     Expect(1, 67007, '\p{Block=vithkuqi}', "");
@@ -28468,16 +29044,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67008, '\P{^Block=vithkuqi}', "");
     Expect(1, 67007, '\p{Block=:\Avithkuqi\z:}', "");;
     Expect(0, 67008, '\p{Block=:\Avithkuqi\z:}', "");;
-    Expect(1, 67007, '\p{Block=	Vithkuqi}', "");
-    Expect(0, 67007, '\p{^Block=	Vithkuqi}', "");
-    Expect(0, 67007, '\P{Block=	Vithkuqi}', "");
-    Expect(1, 67007, '\P{^Block=	Vithkuqi}', "");
-    Expect(0, 67008, '\p{Block=	Vithkuqi}', "");
-    Expect(1, 67008, '\p{^Block=	Vithkuqi}', "");
-    Expect(1, 67008, '\P{Block=	Vithkuqi}', "");
-    Expect(0, 67008, '\P{^Block=	Vithkuqi}', "");
-    Error('\p{Blk:   /a/_	Vithkuqi}');
-    Error('\P{Blk:   /a/_	Vithkuqi}');
+    Expect(1, 67007, '\p{Block:__VITHKUQI}', "");
+    Expect(0, 67007, '\p{^Block:__VITHKUQI}', "");
+    Expect(0, 67007, '\P{Block:__VITHKUQI}', "");
+    Expect(1, 67007, '\P{^Block:__VITHKUQI}', "");
+    Expect(0, 67008, '\p{Block:__VITHKUQI}', "");
+    Expect(1, 67008, '\p{^Block:__VITHKUQI}', "");
+    Expect(1, 67008, '\P{Block:__VITHKUQI}', "");
+    Expect(0, 67008, '\P{^Block:__VITHKUQI}', "");
+    Error('\p{Blk:-Vithkuqi/a/}');
+    Error('\P{Blk:-Vithkuqi/a/}');
     Expect(1, 67007, '\p{Blk=:\AVithkuqi\z:}', "");;
     Expect(0, 67008, '\p{Blk=:\AVithkuqi\z:}', "");;
     Expect(1, 67007, '\p{Blk=vithkuqi}', "");
@@ -28490,16 +29066,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 67008, '\P{^Blk=vithkuqi}', "");
     Expect(1, 67007, '\p{Blk=:\Avithkuqi\z:}', "");;
     Expect(0, 67008, '\p{Blk=:\Avithkuqi\z:}', "");;
-    Expect(1, 67007, '\p{Blk=VITHKUQI}', "");
-    Expect(0, 67007, '\p{^Blk=VITHKUQI}', "");
-    Expect(0, 67007, '\P{Blk=VITHKUQI}', "");
-    Expect(1, 67007, '\P{^Blk=VITHKUQI}', "");
-    Expect(0, 67008, '\p{Blk=VITHKUQI}', "");
-    Expect(1, 67008, '\p{^Blk=VITHKUQI}', "");
-    Expect(1, 67008, '\P{Blk=VITHKUQI}', "");
-    Expect(0, 67008, '\P{^Blk=VITHKUQI}', "");
-    Error('\p{Is_Block= /a/VITHKUQI}');
-    Error('\P{Is_Block= /a/VITHKUQI}');
+    Expect(1, 67007, '\p{Blk=- Vithkuqi}', "");
+    Expect(0, 67007, '\p{^Blk=- Vithkuqi}', "");
+    Expect(0, 67007, '\P{Blk=- Vithkuqi}', "");
+    Expect(1, 67007, '\P{^Blk=- Vithkuqi}', "");
+    Expect(0, 67008, '\p{Blk=- Vithkuqi}', "");
+    Expect(1, 67008, '\p{^Blk=- Vithkuqi}', "");
+    Expect(1, 67008, '\P{Blk=- Vithkuqi}', "");
+    Expect(0, 67008, '\P{^Blk=- Vithkuqi}', "");
+    Error('\p{Is_Block=	Vithkuqi/a/}');
+    Error('\P{Is_Block=	Vithkuqi/a/}');
     Expect(1, 67007, '\p{Is_Block=vithkuqi}', "");
     Expect(0, 67007, '\p{^Is_Block=vithkuqi}', "");
     Expect(0, 67007, '\P{Is_Block=vithkuqi}', "");
@@ -28508,16 +29084,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67008, '\p{^Is_Block=vithkuqi}', "");
     Expect(1, 67008, '\P{Is_Block=vithkuqi}', "");
     Expect(0, 67008, '\P{^Is_Block=vithkuqi}', "");
-    Expect(1, 67007, '\p{Is_Block=  Vithkuqi}', "");
-    Expect(0, 67007, '\p{^Is_Block=  Vithkuqi}', "");
-    Expect(0, 67007, '\P{Is_Block=  Vithkuqi}', "");
-    Expect(1, 67007, '\P{^Is_Block=  Vithkuqi}', "");
-    Expect(0, 67008, '\p{Is_Block=  Vithkuqi}', "");
-    Expect(1, 67008, '\p{^Is_Block=  Vithkuqi}', "");
-    Expect(1, 67008, '\P{Is_Block=  Vithkuqi}', "");
-    Expect(0, 67008, '\P{^Is_Block=  Vithkuqi}', "");
-    Error('\p{Is_Blk=:= vithkuqi}');
-    Error('\P{Is_Blk=:= vithkuqi}');
+    Expect(1, 67007, '\p{Is_Block= 	vithkuqi}', "");
+    Expect(0, 67007, '\p{^Is_Block= 	vithkuqi}', "");
+    Expect(0, 67007, '\P{Is_Block= 	vithkuqi}', "");
+    Expect(1, 67007, '\P{^Is_Block= 	vithkuqi}', "");
+    Expect(0, 67008, '\p{Is_Block= 	vithkuqi}', "");
+    Expect(1, 67008, '\p{^Is_Block= 	vithkuqi}', "");
+    Expect(1, 67008, '\P{Is_Block= 	vithkuqi}', "");
+    Expect(0, 67008, '\P{^Is_Block= 	vithkuqi}', "");
+    Error('\p{Is_Blk= _VITHKUQI/a/}');
+    Error('\P{Is_Blk= _VITHKUQI/a/}');
     Expect(1, 67007, '\p{Is_Blk=vithkuqi}', "");
     Expect(0, 67007, '\p{^Is_Blk=vithkuqi}', "");
     Expect(0, 67007, '\P{Is_Blk=vithkuqi}', "");
@@ -28526,38 +29102,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 67008, '\p{^Is_Blk=vithkuqi}', "");
     Expect(1, 67008, '\P{Is_Blk=vithkuqi}', "");
     Expect(0, 67008, '\P{^Is_Blk=vithkuqi}', "");
-    Expect(1, 67007, '\p{Is_Blk=	_vithkuqi}', "");
-    Expect(0, 67007, '\p{^Is_Blk=	_vithkuqi}', "");
-    Expect(0, 67007, '\P{Is_Blk=	_vithkuqi}', "");
-    Expect(1, 67007, '\P{^Is_Blk=	_vithkuqi}', "");
-    Expect(0, 67008, '\p{Is_Blk=	_vithkuqi}', "");
-    Expect(1, 67008, '\p{^Is_Blk=	_vithkuqi}', "");
-    Expect(1, 67008, '\P{Is_Blk=	_vithkuqi}', "");
-    Expect(0, 67008, '\P{^Is_Blk=	_vithkuqi}', "");
-    Error('\p{Block:   :=-_Variation_Selectors}');
-    Error('\P{Block:   :=-_Variation_Selectors}');
+    Expect(1, 67007, '\p{Is_Blk: -	VITHKUQI}', "");
+    Expect(0, 67007, '\p{^Is_Blk: -	VITHKUQI}', "");
+    Expect(0, 67007, '\P{Is_Blk: -	VITHKUQI}', "");
+    Expect(1, 67007, '\P{^Is_Blk: -	VITHKUQI}', "");
+    Expect(0, 67008, '\p{Is_Blk: -	VITHKUQI}', "");
+    Expect(1, 67008, '\p{^Is_Blk: -	VITHKUQI}', "");
+    Expect(1, 67008, '\P{Is_Blk: -	VITHKUQI}', "");
+    Expect(0, 67008, '\P{^Is_Blk: -	VITHKUQI}', "");
+    Error('\p{Block: 	variation_selectors/a/}');
+    Error('\P{Block: 	variation_selectors/a/}');
     Expect(1, 65039, '\p{Block=:\AVariation_Selectors\z:}', "");;
     Expect(0, 65040, '\p{Block=:\AVariation_Selectors\z:}', "");;
-    Expect(1, 65039, '\p{Block=variationselectors}', "");
-    Expect(0, 65039, '\p{^Block=variationselectors}', "");
-    Expect(0, 65039, '\P{Block=variationselectors}', "");
-    Expect(1, 65039, '\P{^Block=variationselectors}', "");
-    Expect(0, 65040, '\p{Block=variationselectors}', "");
-    Expect(1, 65040, '\p{^Block=variationselectors}', "");
-    Expect(1, 65040, '\P{Block=variationselectors}', "");
-    Expect(0, 65040, '\P{^Block=variationselectors}', "");
+    Expect(1, 65039, '\p{Block: variationselectors}', "");
+    Expect(0, 65039, '\p{^Block: variationselectors}', "");
+    Expect(0, 65039, '\P{Block: variationselectors}', "");
+    Expect(1, 65039, '\P{^Block: variationselectors}', "");
+    Expect(0, 65040, '\p{Block: variationselectors}', "");
+    Expect(1, 65040, '\p{^Block: variationselectors}', "");
+    Expect(1, 65040, '\P{Block: variationselectors}', "");
+    Expect(0, 65040, '\P{^Block: variationselectors}', "");
     Expect(1, 65039, '\p{Block=:\Avariationselectors\z:}', "");;
     Expect(0, 65040, '\p{Block=:\Avariationselectors\z:}', "");;
-    Expect(1, 65039, '\p{Block=- Variation_selectors}', "");
-    Expect(0, 65039, '\p{^Block=- Variation_selectors}', "");
-    Expect(0, 65039, '\P{Block=- Variation_selectors}', "");
-    Expect(1, 65039, '\P{^Block=- Variation_selectors}', "");
-    Expect(0, 65040, '\p{Block=- Variation_selectors}', "");
-    Expect(1, 65040, '\p{^Block=- Variation_selectors}', "");
-    Expect(1, 65040, '\P{Block=- Variation_selectors}', "");
-    Expect(0, 65040, '\P{^Block=- Variation_selectors}', "");
-    Error('\p{Blk=	-vs/a/}');
-    Error('\P{Blk=	-vs/a/}');
+    Expect(1, 65039, '\p{Block=-_variation_selectors}', "");
+    Expect(0, 65039, '\p{^Block=-_variation_selectors}', "");
+    Expect(0, 65039, '\P{Block=-_variation_selectors}', "");
+    Expect(1, 65039, '\P{^Block=-_variation_selectors}', "");
+    Expect(0, 65040, '\p{Block=-_variation_selectors}', "");
+    Expect(1, 65040, '\p{^Block=-_variation_selectors}', "");
+    Expect(1, 65040, '\P{Block=-_variation_selectors}', "");
+    Expect(0, 65040, '\P{^Block=-_variation_selectors}', "");
+    Error('\p{Blk= :=vs}');
+    Error('\P{Blk= :=vs}');
     Expect(1, 65039, '\p{Blk=:\AVS\z:}', "");;
     Expect(0, 65040, '\p{Blk=:\AVS\z:}', "");;
     Expect(1, 65039, '\p{Blk=vs}', "");
@@ -28570,16 +29146,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65040, '\P{^Blk=vs}', "");
     Expect(1, 65039, '\p{Blk=:\Avs\z:}', "");;
     Expect(0, 65040, '\p{Blk=:\Avs\z:}', "");;
-    Expect(1, 65039, '\p{Blk=-VS}', "");
-    Expect(0, 65039, '\p{^Blk=-VS}', "");
-    Expect(0, 65039, '\P{Blk=-VS}', "");
-    Expect(1, 65039, '\P{^Blk=-VS}', "");
-    Expect(0, 65040, '\p{Blk=-VS}', "");
-    Expect(1, 65040, '\p{^Blk=-VS}', "");
-    Expect(1, 65040, '\P{Blk=-VS}', "");
-    Expect(0, 65040, '\P{^Blk=-VS}', "");
-    Error('\p{Is_Block=:=_ variation_Selectors}');
-    Error('\P{Is_Block=:=_ variation_Selectors}');
+    Expect(1, 65039, '\p{Blk=	 VS}', "");
+    Expect(0, 65039, '\p{^Blk=	 VS}', "");
+    Expect(0, 65039, '\P{Blk=	 VS}', "");
+    Expect(1, 65039, '\P{^Blk=	 VS}', "");
+    Expect(0, 65040, '\p{Blk=	 VS}', "");
+    Expect(1, 65040, '\p{^Blk=	 VS}', "");
+    Expect(1, 65040, '\P{Blk=	 VS}', "");
+    Expect(0, 65040, '\P{^Blk=	 VS}', "");
+    Error('\p{Is_Block=_:=Variation_Selectors}');
+    Error('\P{Is_Block=_:=Variation_Selectors}');
     Expect(1, 65039, '\p{Is_Block=variationselectors}', "");
     Expect(0, 65039, '\p{^Is_Block=variationselectors}', "");
     Expect(0, 65039, '\P{Is_Block=variationselectors}', "");
@@ -28588,34 +29164,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65040, '\p{^Is_Block=variationselectors}', "");
     Expect(1, 65040, '\P{Is_Block=variationselectors}', "");
     Expect(0, 65040, '\P{^Is_Block=variationselectors}', "");
-    Expect(1, 65039, '\p{Is_Block=	 Variation_Selectors}', "");
-    Expect(0, 65039, '\p{^Is_Block=	 Variation_Selectors}', "");
-    Expect(0, 65039, '\P{Is_Block=	 Variation_Selectors}', "");
-    Expect(1, 65039, '\P{^Is_Block=	 Variation_Selectors}', "");
-    Expect(0, 65040, '\p{Is_Block=	 Variation_Selectors}', "");
-    Expect(1, 65040, '\p{^Is_Block=	 Variation_Selectors}', "");
-    Expect(1, 65040, '\P{Is_Block=	 Variation_Selectors}', "");
-    Expect(0, 65040, '\P{^Is_Block=	 Variation_Selectors}', "");
-    Error('\p{Is_Blk= /a/VS}');
-    Error('\P{Is_Blk= /a/VS}');
-    Expect(1, 65039, '\p{Is_Blk=vs}', "");
-    Expect(0, 65039, '\p{^Is_Blk=vs}', "");
-    Expect(0, 65039, '\P{Is_Blk=vs}', "");
-    Expect(1, 65039, '\P{^Is_Blk=vs}', "");
-    Expect(0, 65040, '\p{Is_Blk=vs}', "");
-    Expect(1, 65040, '\p{^Is_Blk=vs}', "");
-    Expect(1, 65040, '\P{Is_Blk=vs}', "");
-    Expect(0, 65040, '\P{^Is_Blk=vs}', "");
-    Expect(1, 65039, '\p{Is_Blk=-	VS}', "");
-    Expect(0, 65039, '\p{^Is_Blk=-	VS}', "");
-    Expect(0, 65039, '\P{Is_Blk=-	VS}', "");
-    Expect(1, 65039, '\P{^Is_Blk=-	VS}', "");
-    Expect(0, 65040, '\p{Is_Blk=-	VS}', "");
-    Expect(1, 65040, '\p{^Is_Blk=-	VS}', "");
-    Expect(1, 65040, '\P{Is_Blk=-	VS}', "");
-    Expect(0, 65040, '\P{^Is_Blk=-	VS}', "");
-    Error('\p{Block= 	Variation_SELECTORS_Supplement/a/}');
-    Error('\P{Block= 	Variation_SELECTORS_Supplement/a/}');
+    Expect(1, 65039, '\p{Is_Block:   	 Variation_Selectors}', "");
+    Expect(0, 65039, '\p{^Is_Block:   	 Variation_Selectors}', "");
+    Expect(0, 65039, '\P{Is_Block:   	 Variation_Selectors}', "");
+    Expect(1, 65039, '\P{^Is_Block:   	 Variation_Selectors}', "");
+    Expect(0, 65040, '\p{Is_Block:   	 Variation_Selectors}', "");
+    Expect(1, 65040, '\p{^Is_Block:   	 Variation_Selectors}', "");
+    Expect(1, 65040, '\P{Is_Block:   	 Variation_Selectors}', "");
+    Expect(0, 65040, '\P{^Is_Block:   	 Variation_Selectors}', "");
+    Error('\p{Is_Blk=- VS/a/}');
+    Error('\P{Is_Blk=- VS/a/}');
+    Expect(1, 65039, '\p{Is_Blk:vs}', "");
+    Expect(0, 65039, '\p{^Is_Blk:vs}', "");
+    Expect(0, 65039, '\P{Is_Blk:vs}', "");
+    Expect(1, 65039, '\P{^Is_Blk:vs}', "");
+    Expect(0, 65040, '\p{Is_Blk:vs}', "");
+    Expect(1, 65040, '\p{^Is_Blk:vs}', "");
+    Expect(1, 65040, '\P{Is_Blk:vs}', "");
+    Expect(0, 65040, '\P{^Is_Blk:vs}', "");
+    Expect(1, 65039, '\p{Is_Blk= VS}', "");
+    Expect(0, 65039, '\p{^Is_Blk= VS}', "");
+    Expect(0, 65039, '\P{Is_Blk= VS}', "");
+    Expect(1, 65039, '\P{^Is_Blk= VS}', "");
+    Expect(0, 65040, '\p{Is_Blk= VS}', "");
+    Expect(1, 65040, '\p{^Is_Blk= VS}', "");
+    Expect(1, 65040, '\P{Is_Blk= VS}', "");
+    Expect(0, 65040, '\P{^Is_Blk= VS}', "");
+    Error('\p{Block=/a/VARIATION_selectors_Supplement}');
+    Error('\P{Block=/a/VARIATION_selectors_Supplement}');
     Expect(1, 917999, '\p{Block=:\AVariation_Selectors_Supplement\z:}', "");;
     Expect(0, 918000, '\p{Block=:\AVariation_Selectors_Supplement\z:}', "");;
     Expect(1, 917999, '\p{Block=variationselectorssupplement}', "");
@@ -28628,16 +29204,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^Block=variationselectorssupplement}', "");
     Expect(1, 917999, '\p{Block=:\Avariationselectorssupplement\z:}', "");;
     Expect(0, 918000, '\p{Block=:\Avariationselectorssupplement\z:}', "");;
-    Expect(1, 917999, '\p{Block=  variation_SELECTORS_Supplement}', "");
-    Expect(0, 917999, '\p{^Block=  variation_SELECTORS_Supplement}', "");
-    Expect(0, 917999, '\P{Block=  variation_SELECTORS_Supplement}', "");
-    Expect(1, 917999, '\P{^Block=  variation_SELECTORS_Supplement}', "");
-    Expect(0, 918000, '\p{Block=  variation_SELECTORS_Supplement}', "");
-    Expect(1, 918000, '\p{^Block=  variation_SELECTORS_Supplement}', "");
-    Expect(1, 918000, '\P{Block=  variation_SELECTORS_Supplement}', "");
-    Expect(0, 918000, '\P{^Block=  variation_SELECTORS_Supplement}', "");
-    Error('\p{Blk=_:=vs_sup}');
-    Error('\P{Blk=_:=vs_sup}');
+    Expect(1, 917999, '\p{Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(0, 917999, '\p{^Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(0, 917999, '\P{Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(1, 917999, '\P{^Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(0, 918000, '\p{Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(1, 918000, '\p{^Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(1, 918000, '\P{Block=	-VARIATION_Selectors_Supplement}', "");
+    Expect(0, 918000, '\P{^Block=	-VARIATION_Selectors_Supplement}', "");
+    Error('\p{Blk=:=	_VS_Sup}');
+    Error('\P{Blk=:=	_VS_Sup}');
     Expect(1, 917999, '\p{Blk=:\AVS_Sup\z:}', "");;
     Expect(0, 918000, '\p{Blk=:\AVS_Sup\z:}', "");;
     Expect(1, 917999, '\p{Blk=vssup}', "");
@@ -28650,16 +29226,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^Blk=vssup}', "");
     Expect(1, 917999, '\p{Blk=:\Avssup\z:}', "");;
     Expect(0, 918000, '\p{Blk=:\Avssup\z:}', "");;
-    Expect(1, 917999, '\p{Blk=		VS_sup}', "");
-    Expect(0, 917999, '\p{^Blk=		VS_sup}', "");
-    Expect(0, 917999, '\P{Blk=		VS_sup}', "");
-    Expect(1, 917999, '\P{^Blk=		VS_sup}', "");
-    Expect(0, 918000, '\p{Blk=		VS_sup}', "");
-    Expect(1, 918000, '\p{^Blk=		VS_sup}', "");
-    Expect(1, 918000, '\P{Blk=		VS_sup}', "");
-    Expect(0, 918000, '\P{^Blk=		VS_sup}', "");
-    Error('\p{Is_Block=:=	_Variation_Selectors_supplement}');
-    Error('\P{Is_Block=:=	_Variation_Selectors_supplement}');
+    Expect(1, 917999, '\p{Blk=	_vs_Sup}', "");
+    Expect(0, 917999, '\p{^Blk=	_vs_Sup}', "");
+    Expect(0, 917999, '\P{Blk=	_vs_Sup}', "");
+    Expect(1, 917999, '\P{^Blk=	_vs_Sup}', "");
+    Expect(0, 918000, '\p{Blk=	_vs_Sup}', "");
+    Expect(1, 918000, '\p{^Blk=	_vs_Sup}', "");
+    Expect(1, 918000, '\P{Blk=	_vs_Sup}', "");
+    Expect(0, 918000, '\P{^Blk=	_vs_Sup}', "");
+    Error('\p{Is_Block= /a/VARIATION_Selectors_Supplement}');
+    Error('\P{Is_Block= /a/VARIATION_Selectors_Supplement}');
     Expect(1, 917999, '\p{Is_Block=variationselectorssupplement}', "");
     Expect(0, 917999, '\p{^Is_Block=variationselectorssupplement}', "");
     Expect(0, 917999, '\P{Is_Block=variationselectorssupplement}', "");
@@ -28668,16 +29244,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_Block=variationselectorssupplement}', "");
     Expect(1, 918000, '\P{Is_Block=variationselectorssupplement}', "");
     Expect(0, 918000, '\P{^Is_Block=variationselectorssupplement}', "");
-    Expect(1, 917999, '\p{Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(0, 917999, '\p{^Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(0, 917999, '\P{Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(1, 917999, '\P{^Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(0, 918000, '\p{Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(1, 918000, '\p{^Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(1, 918000, '\P{Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Expect(0, 918000, '\P{^Is_Block=_	Variation_Selectors_SUPPLEMENT}', "");
-    Error('\p{Is_Blk=vs_sup/a/}');
-    Error('\P{Is_Blk=vs_sup/a/}');
+    Expect(1, 917999, '\p{Is_Block=Variation_Selectors_supplement}', "");
+    Expect(0, 917999, '\p{^Is_Block=Variation_Selectors_supplement}', "");
+    Expect(0, 917999, '\P{Is_Block=Variation_Selectors_supplement}', "");
+    Expect(1, 917999, '\P{^Is_Block=Variation_Selectors_supplement}', "");
+    Expect(0, 918000, '\p{Is_Block=Variation_Selectors_supplement}', "");
+    Expect(1, 918000, '\p{^Is_Block=Variation_Selectors_supplement}', "");
+    Expect(1, 918000, '\P{Is_Block=Variation_Selectors_supplement}', "");
+    Expect(0, 918000, '\P{^Is_Block=Variation_Selectors_supplement}', "");
+    Error('\p{Is_Blk=__VS_Sup/a/}');
+    Error('\P{Is_Blk=__VS_Sup/a/}');
     Expect(1, 917999, '\p{Is_Blk=vssup}', "");
     Expect(0, 917999, '\p{^Is_Blk=vssup}', "");
     Expect(0, 917999, '\P{Is_Blk=vssup}', "");
@@ -28686,16 +29262,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_Blk=vssup}', "");
     Expect(1, 918000, '\P{Is_Blk=vssup}', "");
     Expect(0, 918000, '\P{^Is_Blk=vssup}', "");
-    Expect(1, 917999, '\p{Is_Blk= 	VS_Sup}', "");
-    Expect(0, 917999, '\p{^Is_Blk= 	VS_Sup}', "");
-    Expect(0, 917999, '\P{Is_Blk= 	VS_Sup}', "");
-    Expect(1, 917999, '\P{^Is_Blk= 	VS_Sup}', "");
-    Expect(0, 918000, '\p{Is_Blk= 	VS_Sup}', "");
-    Expect(1, 918000, '\p{^Is_Blk= 	VS_Sup}', "");
-    Expect(1, 918000, '\P{Is_Blk= 	VS_Sup}', "");
-    Expect(0, 918000, '\P{^Is_Blk= 	VS_Sup}', "");
-    Error('\p{Block=/a/wancho}');
-    Error('\P{Block=/a/wancho}');
+    Expect(1, 917999, '\p{Is_Blk= 	VS_sup}', "");
+    Expect(0, 917999, '\p{^Is_Blk= 	VS_sup}', "");
+    Expect(0, 917999, '\P{Is_Blk= 	VS_sup}', "");
+    Expect(1, 917999, '\P{^Is_Blk= 	VS_sup}', "");
+    Expect(0, 918000, '\p{Is_Blk= 	VS_sup}', "");
+    Expect(1, 918000, '\p{^Is_Blk= 	VS_sup}', "");
+    Expect(1, 918000, '\P{Is_Blk= 	VS_sup}', "");
+    Expect(0, 918000, '\P{^Is_Blk= 	VS_sup}', "");
+    Error('\p{Block:	/a/- Wancho}');
+    Error('\P{Block:	/a/- Wancho}');
     Expect(1, 123647, '\p{Block=:\AWancho\z:}', "");;
     Expect(0, 123648, '\p{Block=:\AWancho\z:}', "");;
     Expect(1, 123647, '\p{Block=wancho}', "");
@@ -28708,16 +29284,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123648, '\P{^Block=wancho}', "");
     Expect(1, 123647, '\p{Block=:\Awancho\z:}', "");;
     Expect(0, 123648, '\p{Block=:\Awancho\z:}', "");;
-    Expect(1, 123647, '\p{Block:	Wancho}', "");
-    Expect(0, 123647, '\p{^Block:	Wancho}', "");
-    Expect(0, 123647, '\P{Block:	Wancho}', "");
-    Expect(1, 123647, '\P{^Block:	Wancho}', "");
-    Expect(0, 123648, '\p{Block:	Wancho}', "");
-    Expect(1, 123648, '\p{^Block:	Wancho}', "");
-    Expect(1, 123648, '\P{Block:	Wancho}', "");
-    Expect(0, 123648, '\P{^Block:	Wancho}', "");
-    Error('\p{Blk=	 WANCHO/a/}');
-    Error('\P{Blk=	 WANCHO/a/}');
+    Expect(1, 123647, '\p{Block=-wancho}', "");
+    Expect(0, 123647, '\p{^Block=-wancho}', "");
+    Expect(0, 123647, '\P{Block=-wancho}', "");
+    Expect(1, 123647, '\P{^Block=-wancho}', "");
+    Expect(0, 123648, '\p{Block=-wancho}', "");
+    Expect(1, 123648, '\p{^Block=-wancho}', "");
+    Expect(1, 123648, '\P{Block=-wancho}', "");
+    Expect(0, 123648, '\P{^Block=-wancho}', "");
+    Error('\p{Blk=:= Wancho}');
+    Error('\P{Blk=:= Wancho}');
     Expect(1, 123647, '\p{Blk=:\AWancho\z:}', "");;
     Expect(0, 123648, '\p{Blk=:\AWancho\z:}', "");;
     Expect(1, 123647, '\p{Blk=wancho}', "");
@@ -28730,16 +29306,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 123648, '\P{^Blk=wancho}', "");
     Expect(1, 123647, '\p{Blk=:\Awancho\z:}', "");;
     Expect(0, 123648, '\p{Blk=:\Awancho\z:}', "");;
-    Expect(1, 123647, '\p{Blk=_ Wancho}', "");
-    Expect(0, 123647, '\p{^Blk=_ Wancho}', "");
-    Expect(0, 123647, '\P{Blk=_ Wancho}', "");
-    Expect(1, 123647, '\P{^Blk=_ Wancho}', "");
-    Expect(0, 123648, '\p{Blk=_ Wancho}', "");
-    Expect(1, 123648, '\p{^Blk=_ Wancho}', "");
-    Expect(1, 123648, '\P{Blk=_ Wancho}', "");
-    Expect(0, 123648, '\P{^Blk=_ Wancho}', "");
-    Error('\p{Is_Block=_Wancho:=}');
-    Error('\P{Is_Block=_Wancho:=}');
+    Expect(1, 123647, '\p{Blk:  wancho}', "");
+    Expect(0, 123647, '\p{^Blk:  wancho}', "");
+    Expect(0, 123647, '\P{Blk:  wancho}', "");
+    Expect(1, 123647, '\P{^Blk:  wancho}', "");
+    Expect(0, 123648, '\p{Blk:  wancho}', "");
+    Expect(1, 123648, '\p{^Blk:  wancho}', "");
+    Expect(1, 123648, '\P{Blk:  wancho}', "");
+    Expect(0, 123648, '\P{^Blk:  wancho}', "");
+    Error('\p{Is_Block=/a/ _WANCHO}');
+    Error('\P{Is_Block=/a/ _WANCHO}');
     Expect(1, 123647, '\p{Is_Block=wancho}', "");
     Expect(0, 123647, '\p{^Is_Block=wancho}', "");
     Expect(0, 123647, '\P{Is_Block=wancho}', "");
@@ -28748,16 +29324,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 123648, '\p{^Is_Block=wancho}', "");
     Expect(1, 123648, '\P{Is_Block=wancho}', "");
     Expect(0, 123648, '\P{^Is_Block=wancho}', "");
-    Expect(1, 123647, '\p{Is_Block:	_WANCHO}', "");
-    Expect(0, 123647, '\p{^Is_Block:	_WANCHO}', "");
-    Expect(0, 123647, '\P{Is_Block:	_WANCHO}', "");
-    Expect(1, 123647, '\P{^Is_Block:	_WANCHO}', "");
-    Expect(0, 123648, '\p{Is_Block:	_WANCHO}', "");
-    Expect(1, 123648, '\p{^Is_Block:	_WANCHO}', "");
-    Expect(1, 123648, '\P{Is_Block:	_WANCHO}', "");
-    Expect(0, 123648, '\P{^Is_Block:	_WANCHO}', "");
-    Error('\p{Is_Blk=_:=Wancho}');
-    Error('\P{Is_Blk=_:=Wancho}');
+    Expect(1, 123647, '\p{Is_Block=	-Wancho}', "");
+    Expect(0, 123647, '\p{^Is_Block=	-Wancho}', "");
+    Expect(0, 123647, '\P{Is_Block=	-Wancho}', "");
+    Expect(1, 123647, '\P{^Is_Block=	-Wancho}', "");
+    Expect(0, 123648, '\p{Is_Block=	-Wancho}', "");
+    Expect(1, 123648, '\p{^Is_Block=	-Wancho}', "");
+    Expect(1, 123648, '\P{Is_Block=	-Wancho}', "");
+    Expect(0, 123648, '\P{^Is_Block=	-Wancho}', "");
+    Error('\p{Is_Blk=/a/ -wancho}');
+    Error('\P{Is_Blk=/a/ -wancho}');
     Expect(1, 123647, '\p{Is_Blk=wancho}', "");
     Expect(0, 123647, '\p{^Is_Blk=wancho}', "");
     Expect(0, 123647, '\P{Is_Blk=wancho}', "");
@@ -28766,16 +29342,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 123648, '\p{^Is_Blk=wancho}', "");
     Expect(1, 123648, '\P{Is_Blk=wancho}', "");
     Expect(0, 123648, '\P{^Is_Blk=wancho}', "");
-    Expect(1, 123647, '\p{Is_Blk= -Wancho}', "");
-    Expect(0, 123647, '\p{^Is_Blk= -Wancho}', "");
-    Expect(0, 123647, '\P{Is_Blk= -Wancho}', "");
-    Expect(1, 123647, '\P{^Is_Blk= -Wancho}', "");
-    Expect(0, 123648, '\p{Is_Blk= -Wancho}', "");
-    Expect(1, 123648, '\p{^Is_Blk= -Wancho}', "");
-    Expect(1, 123648, '\P{Is_Blk= -Wancho}', "");
-    Expect(0, 123648, '\P{^Is_Blk= -Wancho}', "");
-    Error('\p{Block= 	Warang_Citi:=}');
-    Error('\P{Block= 	Warang_Citi:=}');
+    Expect(1, 123647, '\p{Is_Blk=_Wancho}', "");
+    Expect(0, 123647, '\p{^Is_Blk=_Wancho}', "");
+    Expect(0, 123647, '\P{Is_Blk=_Wancho}', "");
+    Expect(1, 123647, '\P{^Is_Blk=_Wancho}', "");
+    Expect(0, 123648, '\p{Is_Blk=_Wancho}', "");
+    Expect(1, 123648, '\p{^Is_Blk=_Wancho}', "");
+    Expect(1, 123648, '\P{Is_Blk=_Wancho}', "");
+    Expect(0, 123648, '\P{^Is_Blk=_Wancho}', "");
+    Error('\p{Block=:=_Warang_Citi}');
+    Error('\P{Block=:=_Warang_Citi}');
     Expect(1, 71935, '\p{Block=:\AWarang_Citi\z:}', "");;
     Expect(0, 71936, '\p{Block=:\AWarang_Citi\z:}', "");;
     Expect(1, 71935, '\p{Block=warangciti}', "");
@@ -28788,38 +29364,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 71936, '\P{^Block=warangciti}', "");
     Expect(1, 71935, '\p{Block=:\Awarangciti\z:}', "");;
     Expect(0, 71936, '\p{Block=:\Awarangciti\z:}', "");;
-    Expect(1, 71935, '\p{Block= Warang_CITI}', "");
-    Expect(0, 71935, '\p{^Block= Warang_CITI}', "");
-    Expect(0, 71935, '\P{Block= Warang_CITI}', "");
-    Expect(1, 71935, '\P{^Block= Warang_CITI}', "");
-    Expect(0, 71936, '\p{Block= Warang_CITI}', "");
-    Expect(1, 71936, '\p{^Block= Warang_CITI}', "");
-    Expect(1, 71936, '\P{Block= Warang_CITI}', "");
-    Expect(0, 71936, '\P{^Block= Warang_CITI}', "");
-    Error('\p{Blk=:=	warang_citi}');
-    Error('\P{Blk=:=	warang_citi}');
+    Expect(1, 71935, '\p{Block=_Warang_Citi}', "");
+    Expect(0, 71935, '\p{^Block=_Warang_Citi}', "");
+    Expect(0, 71935, '\P{Block=_Warang_Citi}', "");
+    Expect(1, 71935, '\P{^Block=_Warang_Citi}', "");
+    Expect(0, 71936, '\p{Block=_Warang_Citi}', "");
+    Expect(1, 71936, '\p{^Block=_Warang_Citi}', "");
+    Expect(1, 71936, '\P{Block=_Warang_Citi}', "");
+    Expect(0, 71936, '\P{^Block=_Warang_Citi}', "");
+    Error('\p{Blk=	/a/Warang_Citi}');
+    Error('\P{Blk=	/a/Warang_Citi}');
     Expect(1, 71935, '\p{Blk=:\AWarang_Citi\z:}', "");;
     Expect(0, 71936, '\p{Blk=:\AWarang_Citi\z:}', "");;
-    Expect(1, 71935, '\p{Blk=warangciti}', "");
-    Expect(0, 71935, '\p{^Blk=warangciti}', "");
-    Expect(0, 71935, '\P{Blk=warangciti}', "");
-    Expect(1, 71935, '\P{^Blk=warangciti}', "");
-    Expect(0, 71936, '\p{Blk=warangciti}', "");
-    Expect(1, 71936, '\p{^Blk=warangciti}', "");
-    Expect(1, 71936, '\P{Blk=warangciti}', "");
-    Expect(0, 71936, '\P{^Blk=warangciti}', "");
+    Expect(1, 71935, '\p{Blk:	warangciti}', "");
+    Expect(0, 71935, '\p{^Blk:	warangciti}', "");
+    Expect(0, 71935, '\P{Blk:	warangciti}', "");
+    Expect(1, 71935, '\P{^Blk:	warangciti}', "");
+    Expect(0, 71936, '\p{Blk:	warangciti}', "");
+    Expect(1, 71936, '\p{^Blk:	warangciti}', "");
+    Expect(1, 71936, '\P{Blk:	warangciti}', "");
+    Expect(0, 71936, '\P{^Blk:	warangciti}', "");
     Expect(1, 71935, '\p{Blk=:\Awarangciti\z:}', "");;
     Expect(0, 71936, '\p{Blk=:\Awarangciti\z:}', "");;
-    Expect(1, 71935, '\p{Blk=	-Warang_Citi}', "");
-    Expect(0, 71935, '\p{^Blk=	-Warang_Citi}', "");
-    Expect(0, 71935, '\P{Blk=	-Warang_Citi}', "");
-    Expect(1, 71935, '\P{^Blk=	-Warang_Citi}', "");
-    Expect(0, 71936, '\p{Blk=	-Warang_Citi}', "");
-    Expect(1, 71936, '\p{^Blk=	-Warang_Citi}', "");
-    Expect(1, 71936, '\P{Blk=	-Warang_Citi}', "");
-    Expect(0, 71936, '\P{^Blk=	-Warang_Citi}', "");
-    Error('\p{Is_Block=:=	warang_Citi}');
-    Error('\P{Is_Block=:=	warang_Citi}');
+    Expect(1, 71935, '\p{Blk=WARANG_Citi}', "");
+    Expect(0, 71935, '\p{^Blk=WARANG_Citi}', "");
+    Expect(0, 71935, '\P{Blk=WARANG_Citi}', "");
+    Expect(1, 71935, '\P{^Blk=WARANG_Citi}', "");
+    Expect(0, 71936, '\p{Blk=WARANG_Citi}', "");
+    Expect(1, 71936, '\p{^Blk=WARANG_Citi}', "");
+    Expect(1, 71936, '\P{Blk=WARANG_Citi}', "");
+    Expect(0, 71936, '\P{^Blk=WARANG_Citi}', "");
+    Error('\p{Is_Block=/a/	WARANG_Citi}');
+    Error('\P{Is_Block=/a/	WARANG_Citi}');
     Expect(1, 71935, '\p{Is_Block=warangciti}', "");
     Expect(0, 71935, '\p{^Is_Block=warangciti}', "");
     Expect(0, 71935, '\P{Is_Block=warangciti}', "");
@@ -28828,16 +29404,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71936, '\p{^Is_Block=warangciti}', "");
     Expect(1, 71936, '\P{Is_Block=warangciti}', "");
     Expect(0, 71936, '\P{^Is_Block=warangciti}', "");
-    Expect(1, 71935, '\p{Is_Block: WARANG_Citi}', "");
-    Expect(0, 71935, '\p{^Is_Block: WARANG_Citi}', "");
-    Expect(0, 71935, '\P{Is_Block: WARANG_Citi}', "");
-    Expect(1, 71935, '\P{^Is_Block: WARANG_Citi}', "");
-    Expect(0, 71936, '\p{Is_Block: WARANG_Citi}', "");
-    Expect(1, 71936, '\p{^Is_Block: WARANG_Citi}', "");
-    Expect(1, 71936, '\P{Is_Block: WARANG_Citi}', "");
-    Expect(0, 71936, '\P{^Is_Block: WARANG_Citi}', "");
-    Error('\p{Is_Blk= :=Warang_Citi}');
-    Error('\P{Is_Blk= :=Warang_Citi}');
+    Expect(1, 71935, '\p{Is_Block:	_	WARANG_citi}', "");
+    Expect(0, 71935, '\p{^Is_Block:	_	WARANG_citi}', "");
+    Expect(0, 71935, '\P{Is_Block:	_	WARANG_citi}', "");
+    Expect(1, 71935, '\P{^Is_Block:	_	WARANG_citi}', "");
+    Expect(0, 71936, '\p{Is_Block:	_	WARANG_citi}', "");
+    Expect(1, 71936, '\p{^Is_Block:	_	WARANG_citi}', "");
+    Expect(1, 71936, '\P{Is_Block:	_	WARANG_citi}', "");
+    Expect(0, 71936, '\P{^Is_Block:	_	WARANG_citi}', "");
+    Error('\p{Is_Blk=-_Warang_Citi/a/}');
+    Error('\P{Is_Blk=-_Warang_Citi/a/}');
     Expect(1, 71935, '\p{Is_Blk=warangciti}', "");
     Expect(0, 71935, '\p{^Is_Blk=warangciti}', "");
     Expect(0, 71935, '\P{Is_Blk=warangciti}', "");
@@ -28846,16 +29422,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 71936, '\p{^Is_Blk=warangciti}', "");
     Expect(1, 71936, '\P{Is_Blk=warangciti}', "");
     Expect(0, 71936, '\P{^Is_Blk=warangciti}', "");
-    Expect(1, 71935, '\p{Is_Blk=	-Warang_Citi}', "");
-    Expect(0, 71935, '\p{^Is_Blk=	-Warang_Citi}', "");
-    Expect(0, 71935, '\P{Is_Blk=	-Warang_Citi}', "");
-    Expect(1, 71935, '\P{^Is_Blk=	-Warang_Citi}', "");
-    Expect(0, 71936, '\p{Is_Blk=	-Warang_Citi}', "");
-    Expect(1, 71936, '\p{^Is_Blk=	-Warang_Citi}', "");
-    Expect(1, 71936, '\P{Is_Blk=	-Warang_Citi}', "");
-    Expect(0, 71936, '\P{^Is_Blk=	-Warang_Citi}', "");
-    Error('\p{Block=__Yezidi:=}');
-    Error('\P{Block=__Yezidi:=}');
+    Expect(1, 71935, '\p{Is_Blk= -warang_Citi}', "");
+    Expect(0, 71935, '\p{^Is_Blk= -warang_Citi}', "");
+    Expect(0, 71935, '\P{Is_Blk= -warang_Citi}', "");
+    Expect(1, 71935, '\P{^Is_Blk= -warang_Citi}', "");
+    Expect(0, 71936, '\p{Is_Blk= -warang_Citi}', "");
+    Expect(1, 71936, '\p{^Is_Blk= -warang_Citi}', "");
+    Expect(1, 71936, '\P{Is_Blk= -warang_Citi}', "");
+    Expect(0, 71936, '\P{^Is_Blk= -warang_Citi}', "");
+    Error('\p{Block=:=	_YEZIDI}');
+    Error('\P{Block=:=	_YEZIDI}');
     Expect(1, 69311, '\p{Block=:\AYezidi\z:}', "");;
     Expect(0, 69312, '\p{Block=:\AYezidi\z:}', "");;
     Expect(1, 69311, '\p{Block=yezidi}', "");
@@ -28868,38 +29444,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69312, '\P{^Block=yezidi}', "");
     Expect(1, 69311, '\p{Block=:\Ayezidi\z:}', "");;
     Expect(0, 69312, '\p{Block=:\Ayezidi\z:}', "");;
-    Expect(1, 69311, '\p{Block=_-yezidi}', "");
-    Expect(0, 69311, '\p{^Block=_-yezidi}', "");
-    Expect(0, 69311, '\P{Block=_-yezidi}', "");
-    Expect(1, 69311, '\P{^Block=_-yezidi}', "");
-    Expect(0, 69312, '\p{Block=_-yezidi}', "");
-    Expect(1, 69312, '\p{^Block=_-yezidi}', "");
-    Expect(1, 69312, '\P{Block=_-yezidi}', "");
-    Expect(0, 69312, '\P{^Block=_-yezidi}', "");
-    Error('\p{Blk=/a/YEZIDI}');
-    Error('\P{Blk=/a/YEZIDI}');
+    Expect(1, 69311, '\p{Block=_	YEZIDI}', "");
+    Expect(0, 69311, '\p{^Block=_	YEZIDI}', "");
+    Expect(0, 69311, '\P{Block=_	YEZIDI}', "");
+    Expect(1, 69311, '\P{^Block=_	YEZIDI}', "");
+    Expect(0, 69312, '\p{Block=_	YEZIDI}', "");
+    Expect(1, 69312, '\p{^Block=_	YEZIDI}', "");
+    Expect(1, 69312, '\P{Block=_	YEZIDI}', "");
+    Expect(0, 69312, '\P{^Block=_	YEZIDI}', "");
+    Error('\p{Blk=:=yezidi}');
+    Error('\P{Blk=:=yezidi}');
     Expect(1, 69311, '\p{Blk=:\AYezidi\z:}', "");;
     Expect(0, 69312, '\p{Blk=:\AYezidi\z:}', "");;
-    Expect(1, 69311, '\p{Blk=yezidi}', "");
-    Expect(0, 69311, '\p{^Blk=yezidi}', "");
-    Expect(0, 69311, '\P{Blk=yezidi}', "");
-    Expect(1, 69311, '\P{^Blk=yezidi}', "");
-    Expect(0, 69312, '\p{Blk=yezidi}', "");
-    Expect(1, 69312, '\p{^Blk=yezidi}', "");
-    Expect(1, 69312, '\P{Blk=yezidi}', "");
-    Expect(0, 69312, '\P{^Blk=yezidi}', "");
+    Expect(1, 69311, '\p{Blk:	yezidi}', "");
+    Expect(0, 69311, '\p{^Blk:	yezidi}', "");
+    Expect(0, 69311, '\P{Blk:	yezidi}', "");
+    Expect(1, 69311, '\P{^Blk:	yezidi}', "");
+    Expect(0, 69312, '\p{Blk:	yezidi}', "");
+    Expect(1, 69312, '\p{^Blk:	yezidi}', "");
+    Expect(1, 69312, '\P{Blk:	yezidi}', "");
+    Expect(0, 69312, '\P{^Blk:	yezidi}', "");
     Expect(1, 69311, '\p{Blk=:\Ayezidi\z:}', "");;
     Expect(0, 69312, '\p{Blk=:\Ayezidi\z:}', "");;
-    Expect(1, 69311, '\p{Blk:	-YEZIDI}', "");
-    Expect(0, 69311, '\p{^Blk:	-YEZIDI}', "");
-    Expect(0, 69311, '\P{Blk:	-YEZIDI}', "");
-    Expect(1, 69311, '\P{^Blk:	-YEZIDI}', "");
-    Expect(0, 69312, '\p{Blk:	-YEZIDI}', "");
-    Expect(1, 69312, '\p{^Blk:	-YEZIDI}', "");
-    Expect(1, 69312, '\P{Blk:	-YEZIDI}', "");
-    Expect(0, 69312, '\P{^Blk:	-YEZIDI}', "");
-    Error('\p{Is_Block=:=_ yezidi}');
-    Error('\P{Is_Block=:=_ yezidi}');
+    Expect(1, 69311, '\p{Blk:   	Yezidi}', "");
+    Expect(0, 69311, '\p{^Blk:   	Yezidi}', "");
+    Expect(0, 69311, '\P{Blk:   	Yezidi}', "");
+    Expect(1, 69311, '\P{^Blk:   	Yezidi}', "");
+    Expect(0, 69312, '\p{Blk:   	Yezidi}', "");
+    Expect(1, 69312, '\p{^Blk:   	Yezidi}', "");
+    Expect(1, 69312, '\P{Blk:   	Yezidi}', "");
+    Expect(0, 69312, '\P{^Blk:   	Yezidi}', "");
+    Error('\p{Is_Block=	-Yezidi/a/}');
+    Error('\P{Is_Block=	-Yezidi/a/}');
     Expect(1, 69311, '\p{Is_Block=yezidi}', "");
     Expect(0, 69311, '\p{^Is_Block=yezidi}', "");
     Expect(0, 69311, '\P{Is_Block=yezidi}', "");
@@ -28908,16 +29484,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69312, '\p{^Is_Block=yezidi}', "");
     Expect(1, 69312, '\P{Is_Block=yezidi}', "");
     Expect(0, 69312, '\P{^Is_Block=yezidi}', "");
-    Expect(1, 69311, '\p{Is_Block=_yezidi}', "");
-    Expect(0, 69311, '\p{^Is_Block=_yezidi}', "");
-    Expect(0, 69311, '\P{Is_Block=_yezidi}', "");
-    Expect(1, 69311, '\P{^Is_Block=_yezidi}', "");
-    Expect(0, 69312, '\p{Is_Block=_yezidi}', "");
-    Expect(1, 69312, '\p{^Is_Block=_yezidi}', "");
-    Expect(1, 69312, '\P{Is_Block=_yezidi}', "");
-    Expect(0, 69312, '\P{^Is_Block=_yezidi}', "");
-    Error('\p{Is_Blk=:=- YEZIDI}');
-    Error('\P{Is_Blk=:=- YEZIDI}');
+    Expect(1, 69311, '\p{Is_Block=_	Yezidi}', "");
+    Expect(0, 69311, '\p{^Is_Block=_	Yezidi}', "");
+    Expect(0, 69311, '\P{Is_Block=_	Yezidi}', "");
+    Expect(1, 69311, '\P{^Is_Block=_	Yezidi}', "");
+    Expect(0, 69312, '\p{Is_Block=_	Yezidi}', "");
+    Expect(1, 69312, '\p{^Is_Block=_	Yezidi}', "");
+    Expect(1, 69312, '\P{Is_Block=_	Yezidi}', "");
+    Expect(0, 69312, '\P{^Is_Block=_	Yezidi}', "");
+    Error('\p{Is_Blk=_/a/Yezidi}');
+    Error('\P{Is_Blk=_/a/Yezidi}');
     Expect(1, 69311, '\p{Is_Blk=yezidi}', "");
     Expect(0, 69311, '\p{^Is_Blk=yezidi}', "");
     Expect(0, 69311, '\P{Is_Blk=yezidi}', "");
@@ -28926,16 +29502,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69312, '\p{^Is_Blk=yezidi}', "");
     Expect(1, 69312, '\P{Is_Blk=yezidi}', "");
     Expect(0, 69312, '\P{^Is_Blk=yezidi}', "");
-    Expect(1, 69311, '\p{Is_Blk:	--Yezidi}', "");
-    Expect(0, 69311, '\p{^Is_Blk:	--Yezidi}', "");
-    Expect(0, 69311, '\P{Is_Blk:	--Yezidi}', "");
-    Expect(1, 69311, '\P{^Is_Blk:	--Yezidi}', "");
-    Expect(0, 69312, '\p{Is_Blk:	--Yezidi}', "");
-    Expect(1, 69312, '\p{^Is_Blk:	--Yezidi}', "");
-    Expect(1, 69312, '\P{Is_Blk:	--Yezidi}', "");
-    Expect(0, 69312, '\P{^Is_Blk:	--Yezidi}', "");
-    Error('\p{Block=_/a/yi_RADICALS}');
-    Error('\P{Block=_/a/yi_RADICALS}');
+    Expect(1, 69311, '\p{Is_Blk=_Yezidi}', "");
+    Expect(0, 69311, '\p{^Is_Blk=_Yezidi}', "");
+    Expect(0, 69311, '\P{Is_Blk=_Yezidi}', "");
+    Expect(1, 69311, '\P{^Is_Blk=_Yezidi}', "");
+    Expect(0, 69312, '\p{Is_Blk=_Yezidi}', "");
+    Expect(1, 69312, '\p{^Is_Blk=_Yezidi}', "");
+    Expect(1, 69312, '\P{Is_Blk=_Yezidi}', "");
+    Expect(0, 69312, '\P{^Is_Blk=_Yezidi}', "");
+    Error('\p{Block= :=Yi_RADICALS}');
+    Error('\P{Block= :=Yi_RADICALS}');
     Expect(1, 42191, '\p{Block=:\AYi_Radicals\z:}', "");;
     Expect(0, 42192, '\p{Block=:\AYi_Radicals\z:}', "");;
     Expect(1, 42191, '\p{Block=yiradicals}', "");
@@ -28948,16 +29524,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42192, '\P{^Block=yiradicals}', "");
     Expect(1, 42191, '\p{Block=:\Ayiradicals\z:}', "");;
     Expect(0, 42192, '\p{Block=:\Ayiradicals\z:}', "");;
-    Expect(1, 42191, '\p{Block:   -_Yi_Radicals}', "");
-    Expect(0, 42191, '\p{^Block:   -_Yi_Radicals}', "");
-    Expect(0, 42191, '\P{Block:   -_Yi_Radicals}', "");
-    Expect(1, 42191, '\P{^Block:   -_Yi_Radicals}', "");
-    Expect(0, 42192, '\p{Block:   -_Yi_Radicals}', "");
-    Expect(1, 42192, '\p{^Block:   -_Yi_Radicals}', "");
-    Expect(1, 42192, '\P{Block:   -_Yi_Radicals}', "");
-    Expect(0, 42192, '\P{^Block:   -_Yi_Radicals}', "");
-    Error('\p{Blk=:=	-YI_Radicals}');
-    Error('\P{Blk=:=	-YI_Radicals}');
+    Expect(1, 42191, '\p{Block=- YI_RADICALS}', "");
+    Expect(0, 42191, '\p{^Block=- YI_RADICALS}', "");
+    Expect(0, 42191, '\P{Block=- YI_RADICALS}', "");
+    Expect(1, 42191, '\P{^Block=- YI_RADICALS}', "");
+    Expect(0, 42192, '\p{Block=- YI_RADICALS}', "");
+    Expect(1, 42192, '\p{^Block=- YI_RADICALS}', "");
+    Expect(1, 42192, '\P{Block=- YI_RADICALS}', "");
+    Expect(0, 42192, '\P{^Block=- YI_RADICALS}', "");
+    Error('\p{Blk=/a/ Yi_RADICALS}');
+    Error('\P{Blk=/a/ Yi_RADICALS}');
     Expect(1, 42191, '\p{Blk=:\AYi_Radicals\z:}', "");;
     Expect(0, 42192, '\p{Blk=:\AYi_Radicals\z:}', "");;
     Expect(1, 42191, '\p{Blk=yiradicals}', "");
@@ -28970,16 +29546,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42192, '\P{^Blk=yiradicals}', "");
     Expect(1, 42191, '\p{Blk=:\Ayiradicals\z:}', "");;
     Expect(0, 42192, '\p{Blk=:\Ayiradicals\z:}', "");;
-    Expect(1, 42191, '\p{Blk=	yi_Radicals}', "");
-    Expect(0, 42191, '\p{^Blk=	yi_Radicals}', "");
-    Expect(0, 42191, '\P{Blk=	yi_Radicals}', "");
-    Expect(1, 42191, '\P{^Blk=	yi_Radicals}', "");
-    Expect(0, 42192, '\p{Blk=	yi_Radicals}', "");
-    Expect(1, 42192, '\p{^Blk=	yi_Radicals}', "");
-    Expect(1, 42192, '\P{Blk=	yi_Radicals}', "");
-    Expect(0, 42192, '\P{^Blk=	yi_Radicals}', "");
-    Error('\p{Is_Block=/a/--Yi_Radicals}');
-    Error('\P{Is_Block=/a/--Yi_Radicals}');
+    Expect(1, 42191, '\p{Blk=_Yi_Radicals}', "");
+    Expect(0, 42191, '\p{^Blk=_Yi_Radicals}', "");
+    Expect(0, 42191, '\P{Blk=_Yi_Radicals}', "");
+    Expect(1, 42191, '\P{^Blk=_Yi_Radicals}', "");
+    Expect(0, 42192, '\p{Blk=_Yi_Radicals}', "");
+    Expect(1, 42192, '\p{^Blk=_Yi_Radicals}', "");
+    Expect(1, 42192, '\P{Blk=_Yi_Radicals}', "");
+    Expect(0, 42192, '\P{^Blk=_Yi_Radicals}', "");
+    Error('\p{Is_Block=_:=YI_Radicals}');
+    Error('\P{Is_Block=_:=YI_Radicals}');
     Expect(1, 42191, '\p{Is_Block=yiradicals}', "");
     Expect(0, 42191, '\p{^Is_Block=yiradicals}', "");
     Expect(0, 42191, '\P{Is_Block=yiradicals}', "");
@@ -28988,34 +29564,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42192, '\p{^Is_Block=yiradicals}', "");
     Expect(1, 42192, '\P{Is_Block=yiradicals}', "");
     Expect(0, 42192, '\P{^Is_Block=yiradicals}', "");
-    Expect(1, 42191, '\p{Is_Block: --Yi_radicals}', "");
-    Expect(0, 42191, '\p{^Is_Block: --Yi_radicals}', "");
-    Expect(0, 42191, '\P{Is_Block: --Yi_radicals}', "");
-    Expect(1, 42191, '\P{^Is_Block: --Yi_radicals}', "");
-    Expect(0, 42192, '\p{Is_Block: --Yi_radicals}', "");
-    Expect(1, 42192, '\p{^Is_Block: --Yi_radicals}', "");
-    Expect(1, 42192, '\P{Is_Block: --Yi_radicals}', "");
-    Expect(0, 42192, '\P{^Is_Block: --Yi_radicals}', "");
-    Error('\p{Is_Blk=:=Yi_Radicals}');
-    Error('\P{Is_Blk=:=Yi_Radicals}');
-    Expect(1, 42191, '\p{Is_Blk=yiradicals}', "");
-    Expect(0, 42191, '\p{^Is_Blk=yiradicals}', "");
-    Expect(0, 42191, '\P{Is_Blk=yiradicals}', "");
-    Expect(1, 42191, '\P{^Is_Blk=yiradicals}', "");
-    Expect(0, 42192, '\p{Is_Blk=yiradicals}', "");
-    Expect(1, 42192, '\p{^Is_Blk=yiradicals}', "");
-    Expect(1, 42192, '\P{Is_Blk=yiradicals}', "");
-    Expect(0, 42192, '\P{^Is_Blk=yiradicals}', "");
-    Expect(1, 42191, '\p{Is_Blk=	 YI_RADICALS}', "");
-    Expect(0, 42191, '\p{^Is_Blk=	 YI_RADICALS}', "");
-    Expect(0, 42191, '\P{Is_Blk=	 YI_RADICALS}', "");
-    Expect(1, 42191, '\P{^Is_Blk=	 YI_RADICALS}', "");
-    Expect(0, 42192, '\p{Is_Blk=	 YI_RADICALS}', "");
-    Expect(1, 42192, '\p{^Is_Blk=	 YI_RADICALS}', "");
-    Expect(1, 42192, '\P{Is_Blk=	 YI_RADICALS}', "");
-    Expect(0, 42192, '\P{^Is_Blk=	 YI_RADICALS}', "");
-    Error('\p{Block=	yi_SYLLABLES:=}');
-    Error('\P{Block=	yi_SYLLABLES:=}');
+    Expect(1, 42191, '\p{Is_Block= YI_Radicals}', "");
+    Expect(0, 42191, '\p{^Is_Block= YI_Radicals}', "");
+    Expect(0, 42191, '\P{Is_Block= YI_Radicals}', "");
+    Expect(1, 42191, '\P{^Is_Block= YI_Radicals}', "");
+    Expect(0, 42192, '\p{Is_Block= YI_Radicals}', "");
+    Expect(1, 42192, '\p{^Is_Block= YI_Radicals}', "");
+    Expect(1, 42192, '\P{Is_Block= YI_Radicals}', "");
+    Expect(0, 42192, '\P{^Is_Block= YI_Radicals}', "");
+    Error('\p{Is_Blk=/a/ yi_RADICALS}');
+    Error('\P{Is_Blk=/a/ yi_RADICALS}');
+    Expect(1, 42191, '\p{Is_Blk:yiradicals}', "");
+    Expect(0, 42191, '\p{^Is_Blk:yiradicals}', "");
+    Expect(0, 42191, '\P{Is_Blk:yiradicals}', "");
+    Expect(1, 42191, '\P{^Is_Blk:yiradicals}', "");
+    Expect(0, 42192, '\p{Is_Blk:yiradicals}', "");
+    Expect(1, 42192, '\p{^Is_Blk:yiradicals}', "");
+    Expect(1, 42192, '\P{Is_Blk:yiradicals}', "");
+    Expect(0, 42192, '\P{^Is_Blk:yiradicals}', "");
+    Expect(1, 42191, '\p{Is_Blk=-	yi_RADICALS}', "");
+    Expect(0, 42191, '\p{^Is_Blk=-	yi_RADICALS}', "");
+    Expect(0, 42191, '\P{Is_Blk=-	yi_RADICALS}', "");
+    Expect(1, 42191, '\P{^Is_Blk=-	yi_RADICALS}', "");
+    Expect(0, 42192, '\p{Is_Blk=-	yi_RADICALS}', "");
+    Expect(1, 42192, '\p{^Is_Blk=-	yi_RADICALS}', "");
+    Expect(1, 42192, '\P{Is_Blk=-	yi_RADICALS}', "");
+    Expect(0, 42192, '\P{^Is_Blk=-	yi_RADICALS}', "");
+    Error('\p{Block=:=YI_syllables}');
+    Error('\P{Block=:=YI_syllables}');
     Expect(1, 42127, '\p{Block=:\AYi_Syllables\z:}', "");;
     Expect(0, 42128, '\p{Block=:\AYi_Syllables\z:}', "");;
     Expect(1, 42127, '\p{Block=yisyllables}', "");
@@ -29028,38 +29604,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 42128, '\P{^Block=yisyllables}', "");
     Expect(1, 42127, '\p{Block=:\Ayisyllables\z:}', "");;
     Expect(0, 42128, '\p{Block=:\Ayisyllables\z:}', "");;
-    Expect(1, 42127, '\p{Block=-Yi_syllables}', "");
-    Expect(0, 42127, '\p{^Block=-Yi_syllables}', "");
-    Expect(0, 42127, '\P{Block=-Yi_syllables}', "");
-    Expect(1, 42127, '\P{^Block=-Yi_syllables}', "");
-    Expect(0, 42128, '\p{Block=-Yi_syllables}', "");
-    Expect(1, 42128, '\p{^Block=-Yi_syllables}', "");
-    Expect(1, 42128, '\P{Block=-Yi_syllables}', "");
-    Expect(0, 42128, '\P{^Block=-Yi_syllables}', "");
-    Error('\p{Blk=_:=Yi_SYLLABLES}');
-    Error('\P{Blk=_:=Yi_SYLLABLES}');
+    Expect(1, 42127, '\p{Block=	yi_Syllables}', "");
+    Expect(0, 42127, '\p{^Block=	yi_Syllables}', "");
+    Expect(0, 42127, '\P{Block=	yi_Syllables}', "");
+    Expect(1, 42127, '\P{^Block=	yi_Syllables}', "");
+    Expect(0, 42128, '\p{Block=	yi_Syllables}', "");
+    Expect(1, 42128, '\p{^Block=	yi_Syllables}', "");
+    Expect(1, 42128, '\P{Block=	yi_Syllables}', "");
+    Expect(0, 42128, '\P{^Block=	yi_Syllables}', "");
+    Error('\p{Blk=	/a/YI_Syllables}');
+    Error('\P{Blk=	/a/YI_Syllables}');
     Expect(1, 42127, '\p{Blk=:\AYi_Syllables\z:}', "");;
     Expect(0, 42128, '\p{Blk=:\AYi_Syllables\z:}', "");;
-    Expect(1, 42127, '\p{Blk: yisyllables}', "");
-    Expect(0, 42127, '\p{^Blk: yisyllables}', "");
-    Expect(0, 42127, '\P{Blk: yisyllables}', "");
-    Expect(1, 42127, '\P{^Blk: yisyllables}', "");
-    Expect(0, 42128, '\p{Blk: yisyllables}', "");
-    Expect(1, 42128, '\p{^Blk: yisyllables}', "");
-    Expect(1, 42128, '\P{Blk: yisyllables}', "");
-    Expect(0, 42128, '\P{^Blk: yisyllables}', "");
+    Expect(1, 42127, '\p{Blk=yisyllables}', "");
+    Expect(0, 42127, '\p{^Blk=yisyllables}', "");
+    Expect(0, 42127, '\P{Blk=yisyllables}', "");
+    Expect(1, 42127, '\P{^Blk=yisyllables}', "");
+    Expect(0, 42128, '\p{Blk=yisyllables}', "");
+    Expect(1, 42128, '\p{^Blk=yisyllables}', "");
+    Expect(1, 42128, '\P{Blk=yisyllables}', "");
+    Expect(0, 42128, '\P{^Blk=yisyllables}', "");
     Expect(1, 42127, '\p{Blk=:\Ayisyllables\z:}', "");;
     Expect(0, 42128, '\p{Blk=:\Ayisyllables\z:}', "");;
-    Expect(1, 42127, '\p{Blk=_Yi_SYLLABLES}', "");
-    Expect(0, 42127, '\p{^Blk=_Yi_SYLLABLES}', "");
-    Expect(0, 42127, '\P{Blk=_Yi_SYLLABLES}', "");
-    Expect(1, 42127, '\P{^Blk=_Yi_SYLLABLES}', "");
-    Expect(0, 42128, '\p{Blk=_Yi_SYLLABLES}', "");
-    Expect(1, 42128, '\p{^Blk=_Yi_SYLLABLES}', "");
-    Expect(1, 42128, '\P{Blk=_Yi_SYLLABLES}', "");
-    Expect(0, 42128, '\P{^Blk=_Yi_SYLLABLES}', "");
-    Error('\p{Is_Block=:=-	Yi_Syllables}');
-    Error('\P{Is_Block=:=-	Yi_Syllables}');
+    Expect(1, 42127, '\p{Blk= YI_Syllables}', "");
+    Expect(0, 42127, '\p{^Blk= YI_Syllables}', "");
+    Expect(0, 42127, '\P{Blk= YI_Syllables}', "");
+    Expect(1, 42127, '\P{^Blk= YI_Syllables}', "");
+    Expect(0, 42128, '\p{Blk= YI_Syllables}', "");
+    Expect(1, 42128, '\p{^Blk= YI_Syllables}', "");
+    Expect(1, 42128, '\P{Blk= YI_Syllables}', "");
+    Expect(0, 42128, '\P{^Blk= YI_Syllables}', "");
+    Error('\p{Is_Block= :=YI_SYLLABLES}');
+    Error('\P{Is_Block= :=YI_SYLLABLES}');
     Expect(1, 42127, '\p{Is_Block=yisyllables}', "");
     Expect(0, 42127, '\p{^Is_Block=yisyllables}', "");
     Expect(0, 42127, '\P{Is_Block=yisyllables}', "");
@@ -29068,34 +29644,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 42128, '\p{^Is_Block=yisyllables}', "");
     Expect(1, 42128, '\P{Is_Block=yisyllables}', "");
     Expect(0, 42128, '\P{^Is_Block=yisyllables}', "");
-    Expect(1, 42127, '\p{Is_Block= yi_Syllables}', "");
-    Expect(0, 42127, '\p{^Is_Block= yi_Syllables}', "");
-    Expect(0, 42127, '\P{Is_Block= yi_Syllables}', "");
-    Expect(1, 42127, '\P{^Is_Block= yi_Syllables}', "");
-    Expect(0, 42128, '\p{Is_Block= yi_Syllables}', "");
-    Expect(1, 42128, '\p{^Is_Block= yi_Syllables}', "");
-    Expect(1, 42128, '\P{Is_Block= yi_Syllables}', "");
-    Expect(0, 42128, '\P{^Is_Block= yi_Syllables}', "");
-    Error('\p{Is_Blk=_:=Yi_Syllables}');
-    Error('\P{Is_Blk=_:=Yi_Syllables}');
-    Expect(1, 42127, '\p{Is_Blk:	yisyllables}', "");
-    Expect(0, 42127, '\p{^Is_Blk:	yisyllables}', "");
-    Expect(0, 42127, '\P{Is_Blk:	yisyllables}', "");
-    Expect(1, 42127, '\P{^Is_Blk:	yisyllables}', "");
-    Expect(0, 42128, '\p{Is_Blk:	yisyllables}', "");
-    Expect(1, 42128, '\p{^Is_Blk:	yisyllables}', "");
-    Expect(1, 42128, '\P{Is_Blk:	yisyllables}', "");
-    Expect(0, 42128, '\P{^Is_Blk:	yisyllables}', "");
-    Expect(1, 42127, '\p{Is_Blk= YI_Syllables}', "");
-    Expect(0, 42127, '\p{^Is_Blk= YI_Syllables}', "");
-    Expect(0, 42127, '\P{Is_Blk= YI_Syllables}', "");
-    Expect(1, 42127, '\P{^Is_Blk= YI_Syllables}', "");
-    Expect(0, 42128, '\p{Is_Blk= YI_Syllables}', "");
-    Expect(1, 42128, '\p{^Is_Blk= YI_Syllables}', "");
-    Expect(1, 42128, '\P{Is_Blk= YI_Syllables}', "");
-    Expect(0, 42128, '\P{^Is_Blk= YI_Syllables}', "");
-    Error('\p{Block:   := YIJING_hexagram_Symbols}');
-    Error('\P{Block:   := YIJING_hexagram_Symbols}');
+    Expect(1, 42127, '\p{Is_Block: -YI_Syllables}', "");
+    Expect(0, 42127, '\p{^Is_Block: -YI_Syllables}', "");
+    Expect(0, 42127, '\P{Is_Block: -YI_Syllables}', "");
+    Expect(1, 42127, '\P{^Is_Block: -YI_Syllables}', "");
+    Expect(0, 42128, '\p{Is_Block: -YI_Syllables}', "");
+    Expect(1, 42128, '\p{^Is_Block: -YI_Syllables}', "");
+    Expect(1, 42128, '\P{Is_Block: -YI_Syllables}', "");
+    Expect(0, 42128, '\P{^Is_Block: -YI_Syllables}', "");
+    Error('\p{Is_Blk=_Yi_Syllables/a/}');
+    Error('\P{Is_Blk=_Yi_Syllables/a/}');
+    Expect(1, 42127, '\p{Is_Blk=yisyllables}', "");
+    Expect(0, 42127, '\p{^Is_Blk=yisyllables}', "");
+    Expect(0, 42127, '\P{Is_Blk=yisyllables}', "");
+    Expect(1, 42127, '\P{^Is_Blk=yisyllables}', "");
+    Expect(0, 42128, '\p{Is_Blk=yisyllables}', "");
+    Expect(1, 42128, '\p{^Is_Blk=yisyllables}', "");
+    Expect(1, 42128, '\P{Is_Blk=yisyllables}', "");
+    Expect(0, 42128, '\P{^Is_Blk=yisyllables}', "");
+    Expect(1, 42127, '\p{Is_Blk=--Yi_Syllables}', "");
+    Expect(0, 42127, '\p{^Is_Blk=--Yi_Syllables}', "");
+    Expect(0, 42127, '\P{Is_Blk=--Yi_Syllables}', "");
+    Expect(1, 42127, '\P{^Is_Blk=--Yi_Syllables}', "");
+    Expect(0, 42128, '\p{Is_Blk=--Yi_Syllables}', "");
+    Expect(1, 42128, '\p{^Is_Blk=--Yi_Syllables}', "");
+    Expect(1, 42128, '\P{Is_Blk=--Yi_Syllables}', "");
+    Expect(0, 42128, '\P{^Is_Blk=--Yi_Syllables}', "");
+    Error('\p{Block=:=_YIJING_HEXAGRAM_symbols}');
+    Error('\P{Block=:=_YIJING_HEXAGRAM_symbols}');
     Expect(1, 19967, '\p{Block=:\AYijing_Hexagram_Symbols\z:}', "");;
     Expect(0, 19968, '\p{Block=:\AYijing_Hexagram_Symbols\z:}', "");;
     Expect(1, 19967, '\p{Block=yijinghexagramsymbols}', "");
@@ -29108,38 +29684,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 19968, '\P{^Block=yijinghexagramsymbols}', "");
     Expect(1, 19967, '\p{Block=:\Ayijinghexagramsymbols\z:}', "");;
     Expect(0, 19968, '\p{Block=:\Ayijinghexagramsymbols\z:}', "");;
-    Expect(1, 19967, '\p{Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(0, 19967, '\p{^Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(0, 19967, '\P{Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(1, 19967, '\P{^Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(0, 19968, '\p{Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(1, 19968, '\p{^Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(1, 19968, '\P{Block=--Yijing_Hexagram_Symbols}', "");
-    Expect(0, 19968, '\P{^Block=--Yijing_Hexagram_Symbols}', "");
-    Error('\p{Blk=:=Yijing}');
-    Error('\P{Blk=:=Yijing}');
+    Expect(1, 19967, '\p{Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(0, 19967, '\p{^Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(0, 19967, '\P{Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(1, 19967, '\P{^Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(0, 19968, '\p{Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(1, 19968, '\p{^Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(1, 19968, '\P{Block=-	Yijing_Hexagram_symbols}', "");
+    Expect(0, 19968, '\P{^Block=-	Yijing_Hexagram_symbols}', "");
+    Error('\p{Blk=-/a/Yijing}');
+    Error('\P{Blk=-/a/Yijing}');
     Expect(1, 19967, '\p{Blk=:\AYijing\z:}', "");;
     Expect(0, 19968, '\p{Blk=:\AYijing\z:}', "");;
-    Expect(1, 19967, '\p{Blk:	yijing}', "");
-    Expect(0, 19967, '\p{^Blk:	yijing}', "");
-    Expect(0, 19967, '\P{Blk:	yijing}', "");
-    Expect(1, 19967, '\P{^Blk:	yijing}', "");
-    Expect(0, 19968, '\p{Blk:	yijing}', "");
-    Expect(1, 19968, '\p{^Blk:	yijing}', "");
-    Expect(1, 19968, '\P{Blk:	yijing}', "");
-    Expect(0, 19968, '\P{^Blk:	yijing}', "");
+    Expect(1, 19967, '\p{Blk=yijing}', "");
+    Expect(0, 19967, '\p{^Blk=yijing}', "");
+    Expect(0, 19967, '\P{Blk=yijing}', "");
+    Expect(1, 19967, '\P{^Blk=yijing}', "");
+    Expect(0, 19968, '\p{Blk=yijing}', "");
+    Expect(1, 19968, '\p{^Blk=yijing}', "");
+    Expect(1, 19968, '\P{Blk=yijing}', "");
+    Expect(0, 19968, '\P{^Blk=yijing}', "");
     Expect(1, 19967, '\p{Blk=:\Ayijing\z:}', "");;
     Expect(0, 19968, '\p{Blk=:\Ayijing\z:}', "");;
-    Expect(1, 19967, '\p{Blk= YIJING}', "");
-    Expect(0, 19967, '\p{^Blk= YIJING}', "");
-    Expect(0, 19967, '\P{Blk= YIJING}', "");
-    Expect(1, 19967, '\P{^Blk= YIJING}', "");
-    Expect(0, 19968, '\p{Blk= YIJING}', "");
-    Expect(1, 19968, '\p{^Blk= YIJING}', "");
-    Expect(1, 19968, '\P{Blk= YIJING}', "");
-    Expect(0, 19968, '\P{^Blk= YIJING}', "");
-    Error('\p{Is_Block=:=  YIJING_Hexagram_SYMBOLS}');
-    Error('\P{Is_Block=:=  YIJING_Hexagram_SYMBOLS}');
+    Expect(1, 19967, '\p{Blk=_Yijing}', "");
+    Expect(0, 19967, '\p{^Blk=_Yijing}', "");
+    Expect(0, 19967, '\P{Blk=_Yijing}', "");
+    Expect(1, 19967, '\P{^Blk=_Yijing}', "");
+    Expect(0, 19968, '\p{Blk=_Yijing}', "");
+    Expect(1, 19968, '\p{^Blk=_Yijing}', "");
+    Expect(1, 19968, '\P{Blk=_Yijing}', "");
+    Expect(0, 19968, '\P{^Blk=_Yijing}', "");
+    Error('\p{Is_Block=/a/_ Yijing_hexagram_Symbols}');
+    Error('\P{Is_Block=/a/_ Yijing_hexagram_Symbols}');
     Expect(1, 19967, '\p{Is_Block=yijinghexagramsymbols}', "");
     Expect(0, 19967, '\p{^Is_Block=yijinghexagramsymbols}', "");
     Expect(0, 19967, '\P{Is_Block=yijinghexagramsymbols}', "");
@@ -29148,16 +29724,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 19968, '\p{^Is_Block=yijinghexagramsymbols}', "");
     Expect(1, 19968, '\P{Is_Block=yijinghexagramsymbols}', "");
     Expect(0, 19968, '\P{^Is_Block=yijinghexagramsymbols}', "");
-    Expect(1, 19967, '\p{Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(0, 19967, '\p{^Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(0, 19967, '\P{Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(1, 19967, '\P{^Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(0, 19968, '\p{Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(1, 19968, '\p{^Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(1, 19968, '\P{Is_Block=_yijing_hexagram_Symbols}', "");
-    Expect(0, 19968, '\P{^Is_Block=_yijing_hexagram_Symbols}', "");
-    Error('\p{Is_Blk=:= 	yijing}');
-    Error('\P{Is_Blk=:= 	yijing}');
+    Expect(1, 19967, '\p{Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(0, 19967, '\p{^Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(0, 19967, '\P{Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(1, 19967, '\P{^Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(0, 19968, '\p{Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(1, 19968, '\p{^Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(1, 19968, '\P{Is_Block=		Yijing_Hexagram_symbols}', "");
+    Expect(0, 19968, '\P{^Is_Block=		Yijing_Hexagram_symbols}', "");
+    Error('\p{Is_Blk=/a/-Yijing}');
+    Error('\P{Is_Blk=/a/-Yijing}');
     Expect(1, 19967, '\p{Is_Blk=yijing}', "");
     Expect(0, 19967, '\p{^Is_Blk=yijing}', "");
     Expect(0, 19967, '\P{Is_Blk=yijing}', "");
@@ -29166,16 +29742,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 19968, '\p{^Is_Blk=yijing}', "");
     Expect(1, 19968, '\P{Is_Blk=yijing}', "");
     Expect(0, 19968, '\P{^Is_Blk=yijing}', "");
-    Expect(1, 19967, '\p{Is_Blk: -	yijing}', "");
-    Expect(0, 19967, '\p{^Is_Blk: -	yijing}', "");
-    Expect(0, 19967, '\P{Is_Blk: -	yijing}', "");
-    Expect(1, 19967, '\P{^Is_Blk: -	yijing}', "");
-    Expect(0, 19968, '\p{Is_Blk: -	yijing}', "");
-    Expect(1, 19968, '\p{^Is_Blk: -	yijing}', "");
-    Expect(1, 19968, '\P{Is_Blk: -	yijing}', "");
-    Expect(0, 19968, '\P{^Is_Blk: -	yijing}', "");
-    Error('\p{Block= _Zanabazar_SQUARE/a/}');
-    Error('\P{Block= _Zanabazar_SQUARE/a/}');
+    Expect(1, 19967, '\p{Is_Blk=-Yijing}', "");
+    Expect(0, 19967, '\p{^Is_Blk=-Yijing}', "");
+    Expect(0, 19967, '\P{Is_Blk=-Yijing}', "");
+    Expect(1, 19967, '\P{^Is_Blk=-Yijing}', "");
+    Expect(0, 19968, '\p{Is_Blk=-Yijing}', "");
+    Expect(1, 19968, '\p{^Is_Blk=-Yijing}', "");
+    Expect(1, 19968, '\P{Is_Blk=-Yijing}', "");
+    Expect(0, 19968, '\P{^Is_Blk=-Yijing}', "");
+    Error('\p{Block=	/a/ZANABAZAR_Square}');
+    Error('\P{Block=	/a/ZANABAZAR_Square}');
     Expect(1, 72271, '\p{Block=:\AZanabazar_Square\z:}', "");;
     Expect(0, 72272, '\p{Block=:\AZanabazar_Square\z:}', "");;
     Expect(1, 72271, '\p{Block=zanabazarsquare}', "");
@@ -29188,16 +29764,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72272, '\P{^Block=zanabazarsquare}', "");
     Expect(1, 72271, '\p{Block=:\Azanabazarsquare\z:}', "");;
     Expect(0, 72272, '\p{Block=:\Azanabazarsquare\z:}', "");;
-    Expect(1, 72271, '\p{Block= -ZANABAZAR_square}', "");
-    Expect(0, 72271, '\p{^Block= -ZANABAZAR_square}', "");
-    Expect(0, 72271, '\P{Block= -ZANABAZAR_square}', "");
-    Expect(1, 72271, '\P{^Block= -ZANABAZAR_square}', "");
-    Expect(0, 72272, '\p{Block= -ZANABAZAR_square}', "");
-    Expect(1, 72272, '\p{^Block= -ZANABAZAR_square}', "");
-    Expect(1, 72272, '\P{Block= -ZANABAZAR_square}', "");
-    Expect(0, 72272, '\P{^Block= -ZANABAZAR_square}', "");
-    Error('\p{Blk=/a/		zanabazar_square}');
-    Error('\P{Blk=/a/		zanabazar_square}');
+    Expect(1, 72271, '\p{Block=--zanabazar_Square}', "");
+    Expect(0, 72271, '\p{^Block=--zanabazar_Square}', "");
+    Expect(0, 72271, '\P{Block=--zanabazar_Square}', "");
+    Expect(1, 72271, '\P{^Block=--zanabazar_Square}', "");
+    Expect(0, 72272, '\p{Block=--zanabazar_Square}', "");
+    Expect(1, 72272, '\p{^Block=--zanabazar_Square}', "");
+    Expect(1, 72272, '\P{Block=--zanabazar_Square}', "");
+    Expect(0, 72272, '\P{^Block=--zanabazar_Square}', "");
+    Error('\p{Blk=	_ZANABAZAR_square:=}');
+    Error('\P{Blk=	_ZANABAZAR_square:=}');
     Expect(1, 72271, '\p{Blk=:\AZanabazar_Square\z:}', "");;
     Expect(0, 72272, '\p{Blk=:\AZanabazar_Square\z:}', "");;
     Expect(1, 72271, '\p{Blk=zanabazarsquare}', "");
@@ -29210,16 +29786,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 72272, '\P{^Blk=zanabazarsquare}', "");
     Expect(1, 72271, '\p{Blk=:\Azanabazarsquare\z:}', "");;
     Expect(0, 72272, '\p{Blk=:\Azanabazarsquare\z:}', "");;
-    Expect(1, 72271, '\p{Blk=-zanabazar_Square}', "");
-    Expect(0, 72271, '\p{^Blk=-zanabazar_Square}', "");
-    Expect(0, 72271, '\P{Blk=-zanabazar_Square}', "");
-    Expect(1, 72271, '\P{^Blk=-zanabazar_Square}', "");
-    Expect(0, 72272, '\p{Blk=-zanabazar_Square}', "");
-    Expect(1, 72272, '\p{^Blk=-zanabazar_Square}', "");
-    Expect(1, 72272, '\P{Blk=-zanabazar_Square}', "");
-    Expect(0, 72272, '\P{^Blk=-zanabazar_Square}', "");
-    Error('\p{Is_Block=-:=ZANABAZAR_SQUARE}');
-    Error('\P{Is_Block=-:=ZANABAZAR_SQUARE}');
+    Expect(1, 72271, '\p{Blk=-Zanabazar_square}', "");
+    Expect(0, 72271, '\p{^Blk=-Zanabazar_square}', "");
+    Expect(0, 72271, '\P{Blk=-Zanabazar_square}', "");
+    Expect(1, 72271, '\P{^Blk=-Zanabazar_square}', "");
+    Expect(0, 72272, '\p{Blk=-Zanabazar_square}', "");
+    Expect(1, 72272, '\p{^Blk=-Zanabazar_square}', "");
+    Expect(1, 72272, '\P{Blk=-Zanabazar_square}', "");
+    Expect(0, 72272, '\P{^Blk=-Zanabazar_square}', "");
+    Error('\p{Is_Block: /a/	zanabazar_SQUARE}');
+    Error('\P{Is_Block: /a/	zanabazar_SQUARE}');
     Expect(1, 72271, '\p{Is_Block=zanabazarsquare}', "");
     Expect(0, 72271, '\p{^Is_Block=zanabazarsquare}', "");
     Expect(0, 72271, '\P{Is_Block=zanabazarsquare}', "");
@@ -29228,34 +29804,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 72272, '\p{^Is_Block=zanabazarsquare}', "");
     Expect(1, 72272, '\P{Is_Block=zanabazarsquare}', "");
     Expect(0, 72272, '\P{^Is_Block=zanabazarsquare}', "");
-    Expect(1, 72271, '\p{Is_Block= zanabazar_SQUARE}', "");
-    Expect(0, 72271, '\p{^Is_Block= zanabazar_SQUARE}', "");
-    Expect(0, 72271, '\P{Is_Block= zanabazar_SQUARE}', "");
-    Expect(1, 72271, '\P{^Is_Block= zanabazar_SQUARE}', "");
-    Expect(0, 72272, '\p{Is_Block= zanabazar_SQUARE}', "");
-    Expect(1, 72272, '\p{^Is_Block= zanabazar_SQUARE}', "");
-    Expect(1, 72272, '\P{Is_Block= zanabazar_SQUARE}', "");
-    Expect(0, 72272, '\P{^Is_Block= zanabazar_SQUARE}', "");
-    Error('\p{Is_Blk=	Zanabazar_square/a/}');
-    Error('\P{Is_Blk=	Zanabazar_square/a/}');
-    Expect(1, 72271, '\p{Is_Blk:   zanabazarsquare}', "");
-    Expect(0, 72271, '\p{^Is_Blk:   zanabazarsquare}', "");
-    Expect(0, 72271, '\P{Is_Blk:   zanabazarsquare}', "");
-    Expect(1, 72271, '\P{^Is_Blk:   zanabazarsquare}', "");
-    Expect(0, 72272, '\p{Is_Blk:   zanabazarsquare}', "");
-    Expect(1, 72272, '\p{^Is_Blk:   zanabazarsquare}', "");
-    Expect(1, 72272, '\P{Is_Blk:   zanabazarsquare}', "");
-    Expect(0, 72272, '\P{^Is_Blk:   zanabazarsquare}', "");
-    Expect(1, 72271, '\p{Is_Blk=--Zanabazar_Square}', "");
-    Expect(0, 72271, '\p{^Is_Blk=--Zanabazar_Square}', "");
-    Expect(0, 72271, '\P{Is_Blk=--Zanabazar_Square}', "");
-    Expect(1, 72271, '\P{^Is_Blk=--Zanabazar_Square}', "");
-    Expect(0, 72272, '\p{Is_Blk=--Zanabazar_Square}', "");
-    Expect(1, 72272, '\p{^Is_Blk=--Zanabazar_Square}', "");
-    Expect(1, 72272, '\P{Is_Blk=--Zanabazar_Square}', "");
-    Expect(0, 72272, '\P{^Is_Blk=--Zanabazar_Square}', "");
-    Error('\p{Block=:=_Znamenny_Musical_Notation}');
-    Error('\P{Block=:=_Znamenny_Musical_Notation}');
+    Expect(1, 72271, '\p{Is_Block= -zanabazar_square}', "");
+    Expect(0, 72271, '\p{^Is_Block= -zanabazar_square}', "");
+    Expect(0, 72271, '\P{Is_Block= -zanabazar_square}', "");
+    Expect(1, 72271, '\P{^Is_Block= -zanabazar_square}', "");
+    Expect(0, 72272, '\p{Is_Block= -zanabazar_square}', "");
+    Expect(1, 72272, '\p{^Is_Block= -zanabazar_square}', "");
+    Expect(1, 72272, '\P{Is_Block= -zanabazar_square}', "");
+    Expect(0, 72272, '\P{^Is_Block= -zanabazar_square}', "");
+    Error('\p{Is_Blk=/a/_ZANABAZAR_square}');
+    Error('\P{Is_Blk=/a/_ZANABAZAR_square}');
+    Expect(1, 72271, '\p{Is_Blk=zanabazarsquare}', "");
+    Expect(0, 72271, '\p{^Is_Blk=zanabazarsquare}', "");
+    Expect(0, 72271, '\P{Is_Blk=zanabazarsquare}', "");
+    Expect(1, 72271, '\P{^Is_Blk=zanabazarsquare}', "");
+    Expect(0, 72272, '\p{Is_Blk=zanabazarsquare}', "");
+    Expect(1, 72272, '\p{^Is_Blk=zanabazarsquare}', "");
+    Expect(1, 72272, '\P{Is_Blk=zanabazarsquare}', "");
+    Expect(0, 72272, '\P{^Is_Blk=zanabazarsquare}', "");
+    Expect(1, 72271, '\p{Is_Blk= _zanabazar_square}', "");
+    Expect(0, 72271, '\p{^Is_Blk= _zanabazar_square}', "");
+    Expect(0, 72271, '\P{Is_Blk= _zanabazar_square}', "");
+    Expect(1, 72271, '\P{^Is_Blk= _zanabazar_square}', "");
+    Expect(0, 72272, '\p{Is_Blk= _zanabazar_square}', "");
+    Expect(1, 72272, '\p{^Is_Blk= _zanabazar_square}', "");
+    Expect(1, 72272, '\P{Is_Blk= _zanabazar_square}', "");
+    Expect(0, 72272, '\P{^Is_Blk= _zanabazar_square}', "");
+    Error('\p{Block= /a/znamenny_Musical_notation}');
+    Error('\P{Block= /a/znamenny_Musical_notation}');
     Expect(1, 118735, '\p{Block=:\AZnamenny_Musical_Notation\z:}', "");;
     Expect(0, 118736, '\p{Block=:\AZnamenny_Musical_Notation\z:}', "");;
     Expect(1, 118735, '\p{Block=znamennymusicalnotation}', "");
@@ -29268,16 +29844,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 118736, '\P{^Block=znamennymusicalnotation}', "");
     Expect(1, 118735, '\p{Block=:\Aznamennymusicalnotation\z:}', "");;
     Expect(0, 118736, '\p{Block=:\Aznamennymusicalnotation\z:}', "");;
-    Expect(1, 118735, '\p{Block=-	Znamenny_Musical_notation}', "");
-    Expect(0, 118735, '\p{^Block=-	Znamenny_Musical_notation}', "");
-    Expect(0, 118735, '\P{Block=-	Znamenny_Musical_notation}', "");
-    Expect(1, 118735, '\P{^Block=-	Znamenny_Musical_notation}', "");
-    Expect(0, 118736, '\p{Block=-	Znamenny_Musical_notation}', "");
-    Expect(1, 118736, '\p{^Block=-	Znamenny_Musical_notation}', "");
-    Expect(1, 118736, '\P{Block=-	Znamenny_Musical_notation}', "");
-    Expect(0, 118736, '\P{^Block=-	Znamenny_Musical_notation}', "");
-    Error('\p{Blk=:=	Znamenny_Music}');
-    Error('\P{Blk=:=	Znamenny_Music}');
+    Expect(1, 118735, '\p{Block:	 -Znamenny_musical_Notation}', "");
+    Expect(0, 118735, '\p{^Block:	 -Znamenny_musical_Notation}', "");
+    Expect(0, 118735, '\P{Block:	 -Znamenny_musical_Notation}', "");
+    Expect(1, 118735, '\P{^Block:	 -Znamenny_musical_Notation}', "");
+    Expect(0, 118736, '\p{Block:	 -Znamenny_musical_Notation}', "");
+    Expect(1, 118736, '\p{^Block:	 -Znamenny_musical_Notation}', "");
+    Expect(1, 118736, '\P{Block:	 -Znamenny_musical_Notation}', "");
+    Expect(0, 118736, '\P{^Block:	 -Znamenny_musical_Notation}', "");
+    Error('\p{Blk= Znamenny_Music/a/}');
+    Error('\P{Blk= Znamenny_Music/a/}');
     Expect(1, 118735, '\p{Blk=:\AZnamenny_Music\z:}', "");;
     Expect(0, 118736, '\p{Blk=:\AZnamenny_Music\z:}', "");;
     Expect(1, 118735, '\p{Blk=znamennymusic}', "");
@@ -29290,34 +29866,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 118736, '\P{^Blk=znamennymusic}', "");
     Expect(1, 118735, '\p{Blk=:\Aznamennymusic\z:}', "");;
     Expect(0, 118736, '\p{Blk=:\Aznamennymusic\z:}', "");;
-    Expect(1, 118735, '\p{Blk=	znamenny_Music}', "");
-    Expect(0, 118735, '\p{^Blk=	znamenny_Music}', "");
-    Expect(0, 118735, '\P{Blk=	znamenny_Music}', "");
-    Expect(1, 118735, '\P{^Blk=	znamenny_Music}', "");
-    Expect(0, 118736, '\p{Blk=	znamenny_Music}', "");
-    Expect(1, 118736, '\p{^Blk=	znamenny_Music}', "");
-    Expect(1, 118736, '\P{Blk=	znamenny_Music}', "");
-    Expect(0, 118736, '\P{^Blk=	znamenny_Music}', "");
-    Error('\p{Is_Block=/a/znamenny_musical_notation}');
-    Error('\P{Is_Block=/a/znamenny_musical_notation}');
-    Expect(1, 118735, '\p{Is_Block:	znamennymusicalnotation}', "");
-    Expect(0, 118735, '\p{^Is_Block:	znamennymusicalnotation}', "");
-    Expect(0, 118735, '\P{Is_Block:	znamennymusicalnotation}', "");
-    Expect(1, 118735, '\P{^Is_Block:	znamennymusicalnotation}', "");
-    Expect(0, 118736, '\p{Is_Block:	znamennymusicalnotation}', "");
-    Expect(1, 118736, '\p{^Is_Block:	znamennymusicalnotation}', "");
-    Expect(1, 118736, '\P{Is_Block:	znamennymusicalnotation}', "");
-    Expect(0, 118736, '\P{^Is_Block:	znamennymusicalnotation}', "");
-    Expect(1, 118735, '\p{Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(0, 118735, '\p{^Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(0, 118735, '\P{Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(1, 118735, '\P{^Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(0, 118736, '\p{Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(1, 118736, '\p{^Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(1, 118736, '\P{Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Expect(0, 118736, '\P{^Is_Block=_ZNAMENNY_MUSICAL_NOTATION}', "");
-    Error('\p{Is_Blk= Znamenny_Music/a/}');
-    Error('\P{Is_Blk= Znamenny_Music/a/}');
+    Expect(1, 118735, '\p{Blk= Znamenny_Music}', "");
+    Expect(0, 118735, '\p{^Blk= Znamenny_Music}', "");
+    Expect(0, 118735, '\P{Blk= Znamenny_Music}', "");
+    Expect(1, 118735, '\P{^Blk= Znamenny_Music}', "");
+    Expect(0, 118736, '\p{Blk= Znamenny_Music}', "");
+    Expect(1, 118736, '\p{^Blk= Znamenny_Music}', "");
+    Expect(1, 118736, '\P{Blk= Znamenny_Music}', "");
+    Expect(0, 118736, '\P{^Blk= Znamenny_Music}', "");
+    Error('\p{Is_Block=	_Znamenny_Musical_NOTATION:=}');
+    Error('\P{Is_Block=	_Znamenny_Musical_NOTATION:=}');
+    Expect(1, 118735, '\p{Is_Block=znamennymusicalnotation}', "");
+    Expect(0, 118735, '\p{^Is_Block=znamennymusicalnotation}', "");
+    Expect(0, 118735, '\P{Is_Block=znamennymusicalnotation}', "");
+    Expect(1, 118735, '\P{^Is_Block=znamennymusicalnotation}', "");
+    Expect(0, 118736, '\p{Is_Block=znamennymusicalnotation}', "");
+    Expect(1, 118736, '\p{^Is_Block=znamennymusicalnotation}', "");
+    Expect(1, 118736, '\P{Is_Block=znamennymusicalnotation}', "");
+    Expect(0, 118736, '\P{^Is_Block=znamennymusicalnotation}', "");
+    Expect(1, 118735, '\p{Is_Block=--znamenny_musical_Notation}', "");
+    Expect(0, 118735, '\p{^Is_Block=--znamenny_musical_Notation}', "");
+    Expect(0, 118735, '\P{Is_Block=--znamenny_musical_Notation}', "");
+    Expect(1, 118735, '\P{^Is_Block=--znamenny_musical_Notation}', "");
+    Expect(0, 118736, '\p{Is_Block=--znamenny_musical_Notation}', "");
+    Expect(1, 118736, '\p{^Is_Block=--znamenny_musical_Notation}', "");
+    Expect(1, 118736, '\P{Is_Block=--znamenny_musical_Notation}', "");
+    Expect(0, 118736, '\P{^Is_Block=--znamenny_musical_Notation}', "");
+    Error('\p{Is_Blk=_ Znamenny_Music/a/}');
+    Error('\P{Is_Blk=_ Znamenny_Music/a/}');
     Expect(1, 118735, '\p{Is_Blk=znamennymusic}', "");
     Expect(0, 118735, '\p{^Is_Blk=znamennymusic}', "");
     Expect(0, 118735, '\P{Is_Blk=znamennymusic}', "");
@@ -29326,14 +29902,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 118736, '\p{^Is_Blk=znamennymusic}', "");
     Expect(1, 118736, '\P{Is_Blk=znamennymusic}', "");
     Expect(0, 118736, '\P{^Is_Blk=znamennymusic}', "");
-    Expect(1, 118735, '\p{Is_Blk=_-Znamenny_Music}', "");
-    Expect(0, 118735, '\p{^Is_Blk=_-Znamenny_Music}', "");
-    Expect(0, 118735, '\P{Is_Blk=_-Znamenny_Music}', "");
-    Expect(1, 118735, '\P{^Is_Blk=_-Znamenny_Music}', "");
-    Expect(0, 118736, '\p{Is_Blk=_-Znamenny_Music}', "");
-    Expect(1, 118736, '\p{^Is_Blk=_-Znamenny_Music}', "");
-    Expect(1, 118736, '\P{Is_Blk=_-Znamenny_Music}', "");
-    Expect(0, 118736, '\P{^Is_Blk=_-Znamenny_Music}', "");
+    Expect(1, 118735, '\p{Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(0, 118735, '\p{^Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(0, 118735, '\P{Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(1, 118735, '\P{^Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(0, 118736, '\p{Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(1, 118736, '\p{^Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(1, 118736, '\P{Is_Blk=	-Znamenny_MUSIC}', "");
+    Expect(0, 118736, '\P{^Is_Blk=	-Znamenny_MUSIC}', "");
     Error('\p{bidimirroringglyph}');
     Error('\P{bidimirroringglyph}');
     Error('\p{bmg}');
@@ -29346,30 +29922,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Error('\P{bidipairedbrackettype}');
     Error('\p{bpt}');
     Error('\P{bpt}');
-    Error('\p{Bidi_Paired_Bracket_Type=	CLOSE/a/}');
-    Error('\P{Bidi_Paired_Bracket_Type=	CLOSE/a/}');
+    Error('\p{Bidi_Paired_Bracket_Type=-:=Close}');
+    Error('\P{Bidi_Paired_Bracket_Type=-:=Close}');
     Expect(1, 65379, '\p{Bidi_Paired_Bracket_Type=:\AClose\z:}', "");;
     Expect(0, 65380, '\p{Bidi_Paired_Bracket_Type=:\AClose\z:}', "");;
-    Expect(1, 65379, '\p{Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65379, '\p{^Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65379, '\P{Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65379, '\P{^Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65380, '\p{Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65380, '\p{^Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65380, '\P{Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65380, '\P{^Bidi_Paired_Bracket_Type=close}', "");
+    Expect(1, 65379, '\p{Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(0, 65379, '\p{^Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(0, 65379, '\P{Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(1, 65379, '\P{^Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(0, 65380, '\p{Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(1, 65380, '\p{^Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(1, 65380, '\P{Bidi_Paired_Bracket_Type:	close}', "");
+    Expect(0, 65380, '\P{^Bidi_Paired_Bracket_Type:	close}', "");
     Expect(1, 65379, '\p{Bidi_Paired_Bracket_Type=:\Aclose\z:}', "");;
     Expect(0, 65380, '\p{Bidi_Paired_Bracket_Type=:\Aclose\z:}', "");;
-    Expect(1, 65379, '\p{Bidi_Paired_Bracket_Type= close}', "");
-    Expect(0, 65379, '\p{^Bidi_Paired_Bracket_Type= close}', "");
-    Expect(0, 65379, '\P{Bidi_Paired_Bracket_Type= close}', "");
-    Expect(1, 65379, '\P{^Bidi_Paired_Bracket_Type= close}', "");
-    Expect(0, 65380, '\p{Bidi_Paired_Bracket_Type= close}', "");
-    Expect(1, 65380, '\p{^Bidi_Paired_Bracket_Type= close}', "");
-    Expect(1, 65380, '\P{Bidi_Paired_Bracket_Type= close}', "");
-    Expect(0, 65380, '\P{^Bidi_Paired_Bracket_Type= close}', "");
-    Error('\p{Bpt=:=-_C}');
-    Error('\P{Bpt=:=-_C}');
+    Expect(1, 65379, '\p{Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(0, 65379, '\p{^Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(0, 65379, '\P{Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(1, 65379, '\P{^Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(0, 65380, '\p{Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(1, 65380, '\p{^Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(1, 65380, '\P{Bidi_Paired_Bracket_Type:   -Close}', "");
+    Expect(0, 65380, '\P{^Bidi_Paired_Bracket_Type:   -Close}', "");
+    Error('\p{Bpt=-:=c}');
+    Error('\P{Bpt=-:=c}');
     Expect(1, 65379, '\p{Bpt=:\AC\z:}', "");;
     Expect(0, 65380, '\p{Bpt=:\AC\z:}', "");;
     Expect(1, 65379, '\p{Bpt=c}', "");
@@ -29382,52 +29958,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65380, '\P{^Bpt=c}', "");
     Expect(1, 65379, '\p{Bpt=:\Ac\z:}', "");;
     Expect(0, 65380, '\p{Bpt=:\Ac\z:}', "");;
-    Expect(1, 65379, '\p{Bpt=_C}', "");
-    Expect(0, 65379, '\p{^Bpt=_C}', "");
-    Expect(0, 65379, '\P{Bpt=_C}', "");
-    Expect(1, 65379, '\P{^Bpt=_C}', "");
-    Expect(0, 65380, '\p{Bpt=_C}', "");
-    Expect(1, 65380, '\p{^Bpt=_C}', "");
-    Expect(1, 65380, '\P{Bpt=_C}', "");
-    Expect(0, 65380, '\P{^Bpt=_C}', "");
-    Error('\p{Is_Bidi_Paired_Bracket_Type=/a/CLOSE}');
-    Error('\P{Is_Bidi_Paired_Bracket_Type=/a/CLOSE}');
-    Expect(1, 65379, '\p{Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65379, '\P{Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65380, '\p{Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65380, '\p{^Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65380, '\P{Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(0, 65380, '\P{^Is_Bidi_Paired_Bracket_Type=close}', "");
-    Expect(1, 65379, '\p{Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(0, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(0, 65379, '\P{Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(1, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(0, 65380, '\p{Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(1, 65380, '\p{^Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(1, 65380, '\P{Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Expect(0, 65380, '\P{^Is_Bidi_Paired_Bracket_Type=  CLOSE}', "");
-    Error('\p{Is_Bpt:   _-C:=}');
-    Error('\P{Is_Bpt:   _-C:=}');
-    Expect(1, 65379, '\p{Is_Bpt=c}', "");
-    Expect(0, 65379, '\p{^Is_Bpt=c}', "");
-    Expect(0, 65379, '\P{Is_Bpt=c}', "");
-    Expect(1, 65379, '\P{^Is_Bpt=c}', "");
-    Expect(0, 65380, '\p{Is_Bpt=c}', "");
-    Expect(1, 65380, '\p{^Is_Bpt=c}', "");
-    Expect(1, 65380, '\P{Is_Bpt=c}', "");
-    Expect(0, 65380, '\P{^Is_Bpt=c}', "");
-    Expect(1, 65379, '\p{Is_Bpt=	 C}', "");
-    Expect(0, 65379, '\p{^Is_Bpt=	 C}', "");
-    Expect(0, 65379, '\P{Is_Bpt=	 C}', "");
-    Expect(1, 65379, '\P{^Is_Bpt=	 C}', "");
-    Expect(0, 65380, '\p{Is_Bpt=	 C}', "");
-    Expect(1, 65380, '\p{^Is_Bpt=	 C}', "");
-    Expect(1, 65380, '\P{Is_Bpt=	 C}', "");
-    Expect(0, 65380, '\P{^Is_Bpt=	 C}', "");
-    Error('\p{Bidi_Paired_Bracket_Type=_none/a/}');
-    Error('\P{Bidi_Paired_Bracket_Type=_none/a/}');
+    Expect(1, 65379, '\p{Bpt= _C}', "");
+    Expect(0, 65379, '\p{^Bpt= _C}', "");
+    Expect(0, 65379, '\P{Bpt= _C}', "");
+    Expect(1, 65379, '\P{^Bpt= _C}', "");
+    Expect(0, 65380, '\p{Bpt= _C}', "");
+    Expect(1, 65380, '\p{^Bpt= _C}', "");
+    Expect(1, 65380, '\P{Bpt= _C}', "");
+    Expect(0, 65380, '\P{^Bpt= _C}', "");
+    Error('\p{Is_Bidi_Paired_Bracket_Type=	:=Close}');
+    Error('\P{Is_Bidi_Paired_Bracket_Type=	:=Close}');
+    Expect(1, 65379, '\p{Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(0, 65379, '\p{^Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(0, 65379, '\P{Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(1, 65379, '\P{^Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(0, 65380, '\p{Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(1, 65380, '\p{^Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(1, 65380, '\P{Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(0, 65380, '\P{^Is_Bidi_Paired_Bracket_Type:   close}', "");
+    Expect(1, 65379, '\p{Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(0, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(0, 65379, '\P{Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(1, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(0, 65380, '\p{Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(1, 65380, '\p{^Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(1, 65380, '\P{Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Expect(0, 65380, '\P{^Is_Bidi_Paired_Bracket_Type=--close}', "");
+    Error('\p{Is_Bpt=_/a/C}');
+    Error('\P{Is_Bpt=_/a/C}');
+    Expect(1, 65379, '\p{Is_Bpt:	c}', "");
+    Expect(0, 65379, '\p{^Is_Bpt:	c}', "");
+    Expect(0, 65379, '\P{Is_Bpt:	c}', "");
+    Expect(1, 65379, '\P{^Is_Bpt:	c}', "");
+    Expect(0, 65380, '\p{Is_Bpt:	c}', "");
+    Expect(1, 65380, '\p{^Is_Bpt:	c}', "");
+    Expect(1, 65380, '\P{Is_Bpt:	c}', "");
+    Expect(0, 65380, '\P{^Is_Bpt:	c}', "");
+    Expect(1, 65379, '\p{Is_Bpt:		C}', "");
+    Expect(0, 65379, '\p{^Is_Bpt:		C}', "");
+    Expect(0, 65379, '\P{Is_Bpt:		C}', "");
+    Expect(1, 65379, '\P{^Is_Bpt:		C}', "");
+    Expect(0, 65380, '\p{Is_Bpt:		C}', "");
+    Expect(1, 65380, '\p{^Is_Bpt:		C}', "");
+    Expect(1, 65380, '\P{Is_Bpt:		C}', "");
+    Expect(0, 65380, '\P{^Is_Bpt:		C}', "");
+    Error('\p{Bidi_Paired_Bracket_Type= -None/a/}');
+    Error('\P{Bidi_Paired_Bracket_Type= -None/a/}');
     Expect(1, 65380, '\p{Bidi_Paired_Bracket_Type=:\ANone\z:}', "");;
     Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type=:\ANone\z:}', "");;
     Expect(1, 65380, '\p{Bidi_Paired_Bracket_Type=none}', "");
@@ -29440,16 +30016,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65379, '\P{^Bidi_Paired_Bracket_Type=none}', "");
     Expect(1, 65380, '\p{Bidi_Paired_Bracket_Type=:\Anone\z:}', "");;
     Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type=:\Anone\z:}', "");;
-    Expect(1, 65380, '\p{Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(0, 65380, '\p{^Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(0, 65380, '\P{Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(1, 65380, '\P{^Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(1, 65379, '\p{^Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(1, 65379, '\P{Bidi_Paired_Bracket_Type=		NONE}', "");
-    Expect(0, 65379, '\P{^Bidi_Paired_Bracket_Type=		NONE}', "");
-    Error('\p{Bpt=-:=n}');
-    Error('\P{Bpt=-:=n}');
+    Expect(1, 65380, '\p{Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(0, 65380, '\p{^Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(0, 65380, '\P{Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(1, 65380, '\P{^Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(1, 65379, '\p{^Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(1, 65379, '\P{Bidi_Paired_Bracket_Type= 	None}', "");
+    Expect(0, 65379, '\P{^Bidi_Paired_Bracket_Type= 	None}', "");
+    Error('\p{Bpt=/a/N}');
+    Error('\P{Bpt=/a/N}');
     Expect(1, 65380, '\p{Bpt=:\AN\z:}', "");;
     Expect(0, 65379, '\p{Bpt=:\AN\z:}', "");;
     Expect(1, 65380, '\p{Bpt=n}', "");
@@ -29462,34 +30038,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65379, '\P{^Bpt=n}', "");
     Expect(1, 65380, '\p{Bpt=:\An\z:}', "");;
     Expect(0, 65379, '\p{Bpt=:\An\z:}', "");;
-    Expect(1, 65380, '\p{Bpt=- N}', "");
-    Expect(0, 65380, '\p{^Bpt=- N}', "");
-    Expect(0, 65380, '\P{Bpt=- N}', "");
-    Expect(1, 65380, '\P{^Bpt=- N}', "");
-    Expect(0, 65379, '\p{Bpt=- N}', "");
-    Expect(1, 65379, '\p{^Bpt=- N}', "");
-    Expect(1, 65379, '\P{Bpt=- N}', "");
-    Expect(0, 65379, '\P{^Bpt=- N}', "");
-    Error('\p{Is_Bidi_Paired_Bracket_Type=	/a/None}');
-    Error('\P{Is_Bidi_Paired_Bracket_Type=	/a/None}');
-    Expect(1, 65380, '\p{Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(0, 65380, '\p{^Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(0, 65380, '\P{Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(1, 65380, '\P{^Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type:	none}', "");
-    Expect(1, 65380, '\p{Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(0, 65380, '\p{^Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(0, 65380, '\P{Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(1, 65380, '\P{^Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=_NONE}', "");
-    Error('\p{Is_Bpt=-/a/N}');
-    Error('\P{Is_Bpt=-/a/N}');
+    Expect(1, 65380, '\p{Bpt=	N}', "");
+    Expect(0, 65380, '\p{^Bpt=	N}', "");
+    Expect(0, 65380, '\P{Bpt=	N}', "");
+    Expect(1, 65380, '\P{^Bpt=	N}', "");
+    Expect(0, 65379, '\p{Bpt=	N}', "");
+    Expect(1, 65379, '\p{^Bpt=	N}', "");
+    Expect(1, 65379, '\P{Bpt=	N}', "");
+    Expect(0, 65379, '\P{^Bpt=	N}', "");
+    Error('\p{Is_Bidi_Paired_Bracket_Type:/a/ none}');
+    Error('\P{Is_Bidi_Paired_Bracket_Type:/a/ none}');
+    Expect(1, 65380, '\p{Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(0, 65380, '\p{^Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(0, 65380, '\P{Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(1, 65380, '\P{^Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=none}', "");
+    Expect(1, 65380, '\p{Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(0, 65380, '\p{^Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(0, 65380, '\P{Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(1, 65380, '\P{^Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=- NONE}', "");
+    Error('\p{Is_Bpt=/a/-_N}');
+    Error('\P{Is_Bpt=/a/-_N}');
     Expect(1, 65380, '\p{Is_Bpt=n}', "");
     Expect(0, 65380, '\p{^Is_Bpt=n}', "");
     Expect(0, 65380, '\P{Is_Bpt=n}', "");
@@ -29498,16 +30074,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65379, '\p{^Is_Bpt=n}', "");
     Expect(1, 65379, '\P{Is_Bpt=n}', "");
     Expect(0, 65379, '\P{^Is_Bpt=n}', "");
-    Expect(1, 65380, '\p{Is_Bpt=--N}', "");
-    Expect(0, 65380, '\p{^Is_Bpt=--N}', "");
-    Expect(0, 65380, '\P{Is_Bpt=--N}', "");
-    Expect(1, 65380, '\P{^Is_Bpt=--N}', "");
-    Expect(0, 65379, '\p{Is_Bpt=--N}', "");
-    Expect(1, 65379, '\p{^Is_Bpt=--N}', "");
-    Expect(1, 65379, '\P{Is_Bpt=--N}', "");
-    Expect(0, 65379, '\P{^Is_Bpt=--N}', "");
-    Error('\p{Bidi_Paired_Bracket_Type=	:=Open}');
-    Error('\P{Bidi_Paired_Bracket_Type=	:=Open}');
+    Expect(1, 65380, '\p{Is_Bpt=	N}', "");
+    Expect(0, 65380, '\p{^Is_Bpt=	N}', "");
+    Expect(0, 65380, '\P{Is_Bpt=	N}', "");
+    Expect(1, 65380, '\P{^Is_Bpt=	N}', "");
+    Expect(0, 65379, '\p{Is_Bpt=	N}', "");
+    Expect(1, 65379, '\p{^Is_Bpt=	N}', "");
+    Expect(1, 65379, '\P{Is_Bpt=	N}', "");
+    Expect(0, 65379, '\P{^Is_Bpt=	N}', "");
+    Error('\p{Bidi_Paired_Bracket_Type=_/a/Open}');
+    Error('\P{Bidi_Paired_Bracket_Type=_/a/Open}');
     Expect(1, 65378, '\p{Bidi_Paired_Bracket_Type=:\AOpen\z:}', "");;
     Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type=:\AOpen\z:}', "");;
     Expect(1, 65378, '\p{Bidi_Paired_Bracket_Type=open}', "");
@@ -29520,16 +30096,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65379, '\P{^Bidi_Paired_Bracket_Type=open}', "");
     Expect(1, 65378, '\p{Bidi_Paired_Bracket_Type=:\Aopen\z:}', "");;
     Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type=:\Aopen\z:}', "");;
-    Expect(1, 65378, '\p{Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(0, 65378, '\p{^Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(0, 65378, '\P{Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(1, 65378, '\P{^Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(1, 65379, '\p{^Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(1, 65379, '\P{Bidi_Paired_Bracket_Type=Open}', "");
-    Expect(0, 65379, '\P{^Bidi_Paired_Bracket_Type=Open}', "");
-    Error('\p{Bpt=:=_-o}');
-    Error('\P{Bpt=:=_-o}');
+    Expect(1, 65378, '\p{Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(0, 65378, '\p{^Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(0, 65378, '\P{Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(1, 65378, '\P{^Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(0, 65379, '\p{Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(1, 65379, '\p{^Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(1, 65379, '\P{Bidi_Paired_Bracket_Type:   - Open}', "");
+    Expect(0, 65379, '\P{^Bidi_Paired_Bracket_Type:   - Open}', "");
+    Error('\p{Bpt=/a/O}');
+    Error('\P{Bpt=/a/O}');
     Expect(1, 65378, '\p{Bpt=:\AO\z:}', "");;
     Expect(0, 65379, '\p{Bpt=:\AO\z:}', "");;
     Expect(1, 65378, '\p{Bpt=o}', "");
@@ -29542,52 +30118,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65379, '\P{^Bpt=o}', "");
     Expect(1, 65378, '\p{Bpt=:\Ao\z:}', "");;
     Expect(0, 65379, '\p{Bpt=:\Ao\z:}', "");;
-    Expect(1, 65378, '\p{Bpt=O}', "");
-    Expect(0, 65378, '\p{^Bpt=O}', "");
-    Expect(0, 65378, '\P{Bpt=O}', "");
-    Expect(1, 65378, '\P{^Bpt=O}', "");
-    Expect(0, 65379, '\p{Bpt=O}', "");
-    Expect(1, 65379, '\p{^Bpt=O}', "");
-    Expect(1, 65379, '\P{Bpt=O}', "");
-    Expect(0, 65379, '\P{^Bpt=O}', "");
-    Error('\p{Is_Bidi_Paired_Bracket_Type=/a/_open}');
-    Error('\P{Is_Bidi_Paired_Bracket_Type=/a/_open}');
-    Expect(1, 65378, '\p{Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(0, 65378, '\p{^Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(0, 65378, '\P{Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(1, 65378, '\P{^Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=open}', "");
-    Expect(1, 65378, '\p{Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(0, 65378, '\p{^Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(0, 65378, '\P{Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(1, 65378, '\P{^Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type= -Open}', "");
-    Error('\p{Is_Bpt=	O:=}');
-    Error('\P{Is_Bpt=	O:=}');
-    Expect(1, 65378, '\p{Is_Bpt:   o}', "");
-    Expect(0, 65378, '\p{^Is_Bpt:   o}', "");
-    Expect(0, 65378, '\P{Is_Bpt:   o}', "");
-    Expect(1, 65378, '\P{^Is_Bpt:   o}', "");
-    Expect(0, 65379, '\p{Is_Bpt:   o}', "");
-    Expect(1, 65379, '\p{^Is_Bpt:   o}', "");
-    Expect(1, 65379, '\P{Is_Bpt:   o}', "");
-    Expect(0, 65379, '\P{^Is_Bpt:   o}', "");
-    Expect(1, 65378, '\p{Is_Bpt=	O}', "");
-    Expect(0, 65378, '\p{^Is_Bpt=	O}', "");
-    Expect(0, 65378, '\P{Is_Bpt=	O}', "");
-    Expect(1, 65378, '\P{^Is_Bpt=	O}', "");
-    Expect(0, 65379, '\p{Is_Bpt=	O}', "");
-    Expect(1, 65379, '\p{^Is_Bpt=	O}', "");
-    Expect(1, 65379, '\P{Is_Bpt=	O}', "");
-    Expect(0, 65379, '\P{^Is_Bpt=	O}', "");
-    Error('\p{Cased=_	No/a/}');
-    Error('\P{Cased=_	No/a/}');
+    Expect(1, 65378, '\p{Bpt= -O}', "");
+    Expect(0, 65378, '\p{^Bpt= -O}', "");
+    Expect(0, 65378, '\P{Bpt= -O}', "");
+    Expect(1, 65378, '\P{^Bpt= -O}', "");
+    Expect(0, 65379, '\p{Bpt= -O}', "");
+    Expect(1, 65379, '\p{^Bpt= -O}', "");
+    Expect(1, 65379, '\P{Bpt= -O}', "");
+    Expect(0, 65379, '\P{^Bpt= -O}', "");
+    Error('\p{Is_Bidi_Paired_Bracket_Type=:=	 Open}');
+    Error('\P{Is_Bidi_Paired_Bracket_Type=:=	 Open}');
+    Expect(1, 65378, '\p{Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(0, 65378, '\p{^Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(0, 65378, '\P{Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(1, 65378, '\P{^Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type: open}', "");
+    Expect(1, 65378, '\p{Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(0, 65378, '\p{^Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(0, 65378, '\P{Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(1, 65378, '\P{^Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(0, 65379, '\p{Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(1, 65379, '\p{^Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(1, 65379, '\P{Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Expect(0, 65379, '\P{^Is_Bidi_Paired_Bracket_Type=-_Open}', "");
+    Error('\p{Is_Bpt=:=	-O}');
+    Error('\P{Is_Bpt=:=	-O}');
+    Expect(1, 65378, '\p{Is_Bpt=o}', "");
+    Expect(0, 65378, '\p{^Is_Bpt=o}', "");
+    Expect(0, 65378, '\P{Is_Bpt=o}', "");
+    Expect(1, 65378, '\P{^Is_Bpt=o}', "");
+    Expect(0, 65379, '\p{Is_Bpt=o}', "");
+    Expect(1, 65379, '\p{^Is_Bpt=o}', "");
+    Expect(1, 65379, '\P{Is_Bpt=o}', "");
+    Expect(0, 65379, '\P{^Is_Bpt=o}', "");
+    Expect(1, 65378, '\p{Is_Bpt=-	o}', "");
+    Expect(0, 65378, '\p{^Is_Bpt=-	o}', "");
+    Expect(0, 65378, '\P{Is_Bpt=-	o}', "");
+    Expect(1, 65378, '\P{^Is_Bpt=-	o}', "");
+    Expect(0, 65379, '\p{Is_Bpt=-	o}', "");
+    Expect(1, 65379, '\p{^Is_Bpt=-	o}', "");
+    Expect(1, 65379, '\P{Is_Bpt=-	o}', "");
+    Expect(0, 65379, '\P{^Is_Bpt=-	o}', "");
+    Error('\p{Cased=	/a/No}');
+    Error('\P{Cased=	/a/No}');
     Expect(1, 127370, '\p{Cased=:\ANo\z:}', "");;
     Expect(0, 127369, '\p{Cased=:\ANo\z:}', "");;
     Expect(1, 127370, '\p{Cased=no}', "");
@@ -29600,16 +30176,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127369, '\P{^Cased=no}', "");
     Expect(1, 127370, '\p{Cased=:\Ano\z:}', "");;
     Expect(0, 127369, '\p{Cased=:\Ano\z:}', "");;
-    Expect(1, 127370, '\p{Cased=	No}', "");
-    Expect(0, 127370, '\p{^Cased=	No}', "");
-    Expect(0, 127370, '\P{Cased=	No}', "");
-    Expect(1, 127370, '\P{^Cased=	No}', "");
-    Expect(0, 127369, '\p{Cased=	No}', "");
-    Expect(1, 127369, '\p{^Cased=	No}', "");
-    Expect(1, 127369, '\P{Cased=	No}', "");
-    Expect(0, 127369, '\P{^Cased=	No}', "");
-    Error('\p{Is_Cased=_n/a/}');
-    Error('\P{Is_Cased=_n/a/}');
+    Expect(1, 127370, '\p{Cased=		no}', "");
+    Expect(0, 127370, '\p{^Cased=		no}', "");
+    Expect(0, 127370, '\P{Cased=		no}', "");
+    Expect(1, 127370, '\P{^Cased=		no}', "");
+    Expect(0, 127369, '\p{Cased=		no}', "");
+    Expect(1, 127369, '\p{^Cased=		no}', "");
+    Expect(1, 127369, '\P{Cased=		no}', "");
+    Expect(0, 127369, '\P{^Cased=		no}', "");
+    Error('\p{Is_Cased=_	n:=}');
+    Error('\P{Is_Cased=_	n:=}');
     Expect(1, 127370, '\p{Is_Cased=n}', "");
     Expect(0, 127370, '\p{^Is_Cased=n}', "");
     Expect(0, 127370, '\P{Is_Cased=n}', "");
@@ -29618,16 +30194,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127369, '\p{^Is_Cased=n}', "");
     Expect(1, 127369, '\P{Is_Cased=n}', "");
     Expect(0, 127369, '\P{^Is_Cased=n}', "");
-    Expect(1, 127370, '\p{Is_Cased= N}', "");
-    Expect(0, 127370, '\p{^Is_Cased= N}', "");
-    Expect(0, 127370, '\P{Is_Cased= N}', "");
-    Expect(1, 127370, '\P{^Is_Cased= N}', "");
-    Expect(0, 127369, '\p{Is_Cased= N}', "");
-    Expect(1, 127369, '\p{^Is_Cased= N}', "");
-    Expect(1, 127369, '\P{Is_Cased= N}', "");
-    Expect(0, 127369, '\P{^Is_Cased= N}', "");
-    Error('\p{Cased=-/a/F}');
-    Error('\P{Cased=-/a/F}');
+    Expect(1, 127370, '\p{Is_Cased:	 N}', "");
+    Expect(0, 127370, '\p{^Is_Cased:	 N}', "");
+    Expect(0, 127370, '\P{Is_Cased:	 N}', "");
+    Expect(1, 127370, '\P{^Is_Cased:	 N}', "");
+    Expect(0, 127369, '\p{Is_Cased:	 N}', "");
+    Expect(1, 127369, '\p{^Is_Cased:	 N}', "");
+    Expect(1, 127369, '\P{Is_Cased:	 N}', "");
+    Expect(0, 127369, '\P{^Is_Cased:	 N}', "");
+    Error('\p{Cased=__f:=}');
+    Error('\P{Cased=__f:=}');
     Expect(1, 127370, '\p{Cased=:\AF\z:}', "");;
     Expect(0, 127369, '\p{Cased=:\AF\z:}', "");;
     Expect(1, 127370, '\p{Cased=f}', "");
@@ -29640,16 +30216,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127369, '\P{^Cased=f}', "");
     Expect(1, 127370, '\p{Cased=:\Af\z:}', "");;
     Expect(0, 127369, '\p{Cased=:\Af\z:}', "");;
-    Expect(1, 127370, '\p{Cased:-_f}', "");
-    Expect(0, 127370, '\p{^Cased:-_f}', "");
-    Expect(0, 127370, '\P{Cased:-_f}', "");
-    Expect(1, 127370, '\P{^Cased:-_f}', "");
-    Expect(0, 127369, '\p{Cased:-_f}', "");
-    Expect(1, 127369, '\p{^Cased:-_f}', "");
-    Expect(1, 127369, '\P{Cased:-_f}', "");
-    Expect(0, 127369, '\P{^Cased:-_f}', "");
-    Error('\p{Is_Cased=/a/False}');
-    Error('\P{Is_Cased=/a/False}');
+    Expect(1, 127370, '\p{Cased=__f}', "");
+    Expect(0, 127370, '\p{^Cased=__f}', "");
+    Expect(0, 127370, '\P{Cased=__f}', "");
+    Expect(1, 127370, '\P{^Cased=__f}', "");
+    Expect(0, 127369, '\p{Cased=__f}', "");
+    Expect(1, 127369, '\p{^Cased=__f}', "");
+    Expect(1, 127369, '\P{Cased=__f}', "");
+    Expect(0, 127369, '\P{^Cased=__f}', "");
+    Error('\p{Is_Cased:  false/a/}');
+    Error('\P{Is_Cased:  false/a/}');
     Expect(1, 127370, '\p{Is_Cased=false}', "");
     Expect(0, 127370, '\p{^Is_Cased=false}', "");
     Expect(0, 127370, '\P{Is_Cased=false}', "");
@@ -29658,16 +30234,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127369, '\p{^Is_Cased=false}', "");
     Expect(1, 127369, '\P{Is_Cased=false}', "");
     Expect(0, 127369, '\P{^Is_Cased=false}', "");
-    Expect(1, 127370, '\p{Is_Cased= False}', "");
-    Expect(0, 127370, '\p{^Is_Cased= False}', "");
-    Expect(0, 127370, '\P{Is_Cased= False}', "");
-    Expect(1, 127370, '\P{^Is_Cased= False}', "");
-    Expect(0, 127369, '\p{Is_Cased= False}', "");
-    Expect(1, 127369, '\p{^Is_Cased= False}', "");
-    Expect(1, 127369, '\P{Is_Cased= False}', "");
-    Expect(0, 127369, '\P{^Is_Cased= False}', "");
-    Error('\p{Cased= /a/Yes}');
-    Error('\P{Cased= /a/Yes}');
+    Expect(1, 127370, '\p{Is_Cased=		False}', "");
+    Expect(0, 127370, '\p{^Is_Cased=		False}', "");
+    Expect(0, 127370, '\P{Is_Cased=		False}', "");
+    Expect(1, 127370, '\P{^Is_Cased=		False}', "");
+    Expect(0, 127369, '\p{Is_Cased=		False}', "");
+    Expect(1, 127369, '\p{^Is_Cased=		False}', "");
+    Expect(1, 127369, '\P{Is_Cased=		False}', "");
+    Expect(0, 127369, '\P{^Is_Cased=		False}', "");
+    Error('\p{Cased= :=Yes}');
+    Error('\P{Cased= :=Yes}');
     Expect(1, 127369, '\p{Cased=:\AYes\z:}', "");;
     Expect(0, 127370, '\p{Cased=:\AYes\z:}', "");;
     Expect(1, 127369, '\p{Cased=yes}', "");
@@ -29688,8 +30264,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127370, '\p{^Cased=_Yes}', "");
     Expect(1, 127370, '\P{Cased=_Yes}', "");
     Expect(0, 127370, '\P{^Cased=_Yes}', "");
-    Error('\p{Is_Cased=	_y/a/}');
-    Error('\P{Is_Cased=	_y/a/}');
+    Error('\p{Is_Cased= Y:=}');
+    Error('\P{Is_Cased= Y:=}');
     Expect(1, 127369, '\p{Is_Cased=y}', "");
     Expect(0, 127369, '\p{^Is_Cased=y}', "");
     Expect(0, 127369, '\P{Is_Cased=y}', "");
@@ -29698,16 +30274,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127370, '\p{^Is_Cased=y}', "");
     Expect(1, 127370, '\P{Is_Cased=y}', "");
     Expect(0, 127370, '\P{^Is_Cased=y}', "");
-    Expect(1, 127369, '\p{Is_Cased=-Y}', "");
-    Expect(0, 127369, '\p{^Is_Cased=-Y}', "");
-    Expect(0, 127369, '\P{Is_Cased=-Y}', "");
-    Expect(1, 127369, '\P{^Is_Cased=-Y}', "");
-    Expect(0, 127370, '\p{Is_Cased=-Y}', "");
-    Expect(1, 127370, '\p{^Is_Cased=-Y}', "");
-    Expect(1, 127370, '\P{Is_Cased=-Y}', "");
-    Expect(0, 127370, '\P{^Is_Cased=-Y}', "");
-    Error('\p{Cased= :=T}');
-    Error('\P{Cased= :=T}');
+    Expect(1, 127369, '\p{Is_Cased=		Y}', "");
+    Expect(0, 127369, '\p{^Is_Cased=		Y}', "");
+    Expect(0, 127369, '\P{Is_Cased=		Y}', "");
+    Expect(1, 127369, '\P{^Is_Cased=		Y}', "");
+    Expect(0, 127370, '\p{Is_Cased=		Y}', "");
+    Expect(1, 127370, '\p{^Is_Cased=		Y}', "");
+    Expect(1, 127370, '\P{Is_Cased=		Y}', "");
+    Expect(0, 127370, '\P{^Is_Cased=		Y}', "");
+    Error('\p{Cased=_	t:=}');
+    Error('\P{Cased=_	t:=}');
     Expect(1, 127369, '\p{Cased=:\AT\z:}', "");;
     Expect(0, 127370, '\p{Cased=:\AT\z:}', "");;
     Expect(1, 127369, '\p{Cased=t}', "");
@@ -29720,16 +30296,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127370, '\P{^Cased=t}', "");
     Expect(1, 127369, '\p{Cased=:\At\z:}', "");;
     Expect(0, 127370, '\p{Cased=:\At\z:}', "");;
-    Expect(1, 127369, '\p{Cased=_ T}', "");
-    Expect(0, 127369, '\p{^Cased=_ T}', "");
-    Expect(0, 127369, '\P{Cased=_ T}', "");
-    Expect(1, 127369, '\P{^Cased=_ T}', "");
-    Expect(0, 127370, '\p{Cased=_ T}', "");
-    Expect(1, 127370, '\p{^Cased=_ T}', "");
-    Expect(1, 127370, '\P{Cased=_ T}', "");
-    Expect(0, 127370, '\P{^Cased=_ T}', "");
-    Error('\p{Is_Cased=:=-	True}');
-    Error('\P{Is_Cased=:=-	True}');
+    Expect(1, 127369, '\p{Cased:    	T}', "");
+    Expect(0, 127369, '\p{^Cased:    	T}', "");
+    Expect(0, 127369, '\P{Cased:    	T}', "");
+    Expect(1, 127369, '\P{^Cased:    	T}', "");
+    Expect(0, 127370, '\p{Cased:    	T}', "");
+    Expect(1, 127370, '\p{^Cased:    	T}', "");
+    Expect(1, 127370, '\P{Cased:    	T}', "");
+    Expect(0, 127370, '\P{^Cased:    	T}', "");
+    Error('\p{Is_Cased=	-TRUE/a/}');
+    Error('\P{Is_Cased=	-TRUE/a/}');
     Expect(1, 127369, '\p{Is_Cased=true}', "");
     Expect(0, 127369, '\p{^Is_Cased=true}', "");
     Expect(0, 127369, '\P{Is_Cased=true}', "");
@@ -29738,74 +30314,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127370, '\p{^Is_Cased=true}', "");
     Expect(1, 127370, '\P{Is_Cased=true}', "");
     Expect(0, 127370, '\P{^Is_Cased=true}', "");
-    Expect(1, 127369, '\p{Is_Cased=		True}', "");
-    Expect(0, 127369, '\p{^Is_Cased=		True}', "");
-    Expect(0, 127369, '\P{Is_Cased=		True}', "");
-    Expect(1, 127369, '\P{^Is_Cased=		True}', "");
-    Expect(0, 127370, '\p{Is_Cased=		True}', "");
-    Expect(1, 127370, '\p{^Is_Cased=		True}', "");
-    Expect(1, 127370, '\P{Is_Cased=		True}', "");
-    Expect(0, 127370, '\P{^Is_Cased=		True}', "");
+    Expect(1, 127369, '\p{Is_Cased=-_TRUE}', "");
+    Expect(0, 127369, '\p{^Is_Cased=-_TRUE}', "");
+    Expect(0, 127369, '\P{Is_Cased=-_TRUE}', "");
+    Expect(1, 127369, '\P{^Is_Cased=-_TRUE}', "");
+    Expect(0, 127370, '\p{Is_Cased=-_TRUE}', "");
+    Expect(1, 127370, '\p{^Is_Cased=-_TRUE}', "");
+    Expect(1, 127370, '\P{Is_Cased=-_TRUE}', "");
+    Expect(0, 127370, '\P{^Is_Cased=-_TRUE}', "");
     Error('\p{canonicalcombiningclass}');
     Error('\P{canonicalcombiningclass}');
     Error('\p{ccc}');
     Error('\P{ccc}');
-    Error('\p{Canonical_Combining_Class=-ABOVE/a/}');
-    Error('\P{Canonical_Combining_Class=-ABOVE/a/}');
+    Error('\p{Canonical_Combining_Class=/a/ -ABOVE}');
+    Error('\P{Canonical_Combining_Class=/a/ -ABOVE}');
     Expect(1, 125257, '\p{Canonical_Combining_Class=:\AAbove\z:}', "");;
     Expect(0, 125258, '\p{Canonical_Combining_Class=:\AAbove\z:}', "");;
-    Expect(1, 125257, '\p{Canonical_Combining_Class=above}', "");
-    Expect(0, 125257, '\p{^Canonical_Combining_Class=above}', "");
-    Expect(0, 125257, '\P{Canonical_Combining_Class=above}', "");
-    Expect(1, 125257, '\P{^Canonical_Combining_Class=above}', "");
-    Expect(0, 125258, '\p{Canonical_Combining_Class=above}', "");
-    Expect(1, 125258, '\p{^Canonical_Combining_Class=above}', "");
-    Expect(1, 125258, '\P{Canonical_Combining_Class=above}', "");
-    Expect(0, 125258, '\P{^Canonical_Combining_Class=above}', "");
+    Expect(1, 125257, '\p{Canonical_Combining_Class:above}', "");
+    Expect(0, 125257, '\p{^Canonical_Combining_Class:above}', "");
+    Expect(0, 125257, '\P{Canonical_Combining_Class:above}', "");
+    Expect(1, 125257, '\P{^Canonical_Combining_Class:above}', "");
+    Expect(0, 125258, '\p{Canonical_Combining_Class:above}', "");
+    Expect(1, 125258, '\p{^Canonical_Combining_Class:above}', "");
+    Expect(1, 125258, '\P{Canonical_Combining_Class:above}', "");
+    Expect(0, 125258, '\P{^Canonical_Combining_Class:above}', "");
     Expect(1, 125257, '\p{Canonical_Combining_Class=:\Aabove\z:}', "");;
     Expect(0, 125258, '\p{Canonical_Combining_Class=:\Aabove\z:}', "");;
-    Expect(1, 125257, '\p{Canonical_Combining_Class=_Above}', "");
-    Expect(0, 125257, '\p{^Canonical_Combining_Class=_Above}', "");
-    Expect(0, 125257, '\P{Canonical_Combining_Class=_Above}', "");
-    Expect(1, 125257, '\P{^Canonical_Combining_Class=_Above}', "");
-    Expect(0, 125258, '\p{Canonical_Combining_Class=_Above}', "");
-    Expect(1, 125258, '\p{^Canonical_Combining_Class=_Above}', "");
-    Expect(1, 125258, '\P{Canonical_Combining_Class=_Above}', "");
-    Expect(0, 125258, '\P{^Canonical_Combining_Class=_Above}', "");
-    Error('\p{Ccc= :=A}');
-    Error('\P{Ccc= :=A}');
+    Expect(1, 125257, '\p{Canonical_Combining_Class=_above}', "");
+    Expect(0, 125257, '\p{^Canonical_Combining_Class=_above}', "");
+    Expect(0, 125257, '\P{Canonical_Combining_Class=_above}', "");
+    Expect(1, 125257, '\P{^Canonical_Combining_Class=_above}', "");
+    Expect(0, 125258, '\p{Canonical_Combining_Class=_above}', "");
+    Expect(1, 125258, '\p{^Canonical_Combining_Class=_above}', "");
+    Expect(1, 125258, '\P{Canonical_Combining_Class=_above}', "");
+    Expect(0, 125258, '\P{^Canonical_Combining_Class=_above}', "");
+    Error('\p{Ccc=/a/A}');
+    Error('\P{Ccc=/a/A}');
     Expect(1, 125257, '\p{Ccc=:\AA\z:}', "");;
     Expect(0, 125258, '\p{Ccc=:\AA\z:}', "");;
-    Expect(1, 125257, '\p{Ccc=a}', "");
-    Expect(0, 125257, '\p{^Ccc=a}', "");
-    Expect(0, 125257, '\P{Ccc=a}', "");
-    Expect(1, 125257, '\P{^Ccc=a}', "");
-    Expect(0, 125258, '\p{Ccc=a}', "");
-    Expect(1, 125258, '\p{^Ccc=a}', "");
-    Expect(1, 125258, '\P{Ccc=a}', "");
-    Expect(0, 125258, '\P{^Ccc=a}', "");
+    Expect(1, 125257, '\p{Ccc:   a}', "");
+    Expect(0, 125257, '\p{^Ccc:   a}', "");
+    Expect(0, 125257, '\P{Ccc:   a}', "");
+    Expect(1, 125257, '\P{^Ccc:   a}', "");
+    Expect(0, 125258, '\p{Ccc:   a}', "");
+    Expect(1, 125258, '\p{^Ccc:   a}', "");
+    Expect(1, 125258, '\P{Ccc:   a}', "");
+    Expect(0, 125258, '\P{^Ccc:   a}', "");
     Expect(1, 125257, '\p{Ccc=:\Aa\z:}', "");;
     Expect(0, 125258, '\p{Ccc=:\Aa\z:}', "");;
-    Expect(1, 125257, '\p{Ccc=_	A}', "");
-    Expect(0, 125257, '\p{^Ccc=_	A}', "");
-    Expect(0, 125257, '\P{Ccc=_	A}', "");
-    Expect(1, 125257, '\P{^Ccc=_	A}', "");
-    Expect(0, 125258, '\p{Ccc=_	A}', "");
-    Expect(1, 125258, '\p{^Ccc=_	A}', "");
-    Expect(1, 125258, '\P{Ccc=_	A}', "");
-    Expect(0, 125258, '\P{^Ccc=_	A}', "");
-    Error('\p{Is_Canonical_Combining_Class:   /a/-_+0_0_0_0_0_230}');
-    Error('\P{Is_Canonical_Combining_Class:   /a/-_+0_0_0_0_0_230}');
-    Expect(1, 125257, '\p{Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(0, 125257, '\p{^Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(0, 125257, '\P{Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(1, 125257, '\P{^Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(0, 125258, '\p{Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(1, 125258, '\p{^Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(1, 125258, '\P{Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Expect(0, 125258, '\P{^Is_Canonical_Combining_Class=+0000_0002_30}', "");
-    Error('\p{Is_Ccc=  Above/a/}');
-    Error('\P{Is_Ccc=  Above/a/}');
+    Expect(1, 125257, '\p{Ccc=	A}', "");
+    Expect(0, 125257, '\p{^Ccc=	A}', "");
+    Expect(0, 125257, '\P{Ccc=	A}', "");
+    Expect(1, 125257, '\P{^Ccc=	A}', "");
+    Expect(0, 125258, '\p{Ccc=	A}', "");
+    Expect(1, 125258, '\p{^Ccc=	A}', "");
+    Expect(1, 125258, '\P{Ccc=	A}', "");
+    Expect(0, 125258, '\P{^Ccc=	A}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=	-00000000230}');
+    Error('\P{Is_Canonical_Combining_Class=:=	-00000000230}');
+    Expect(1, 125257, '\p{Is_Canonical_Combining_Class=+0230}', "");
+    Expect(0, 125257, '\p{^Is_Canonical_Combining_Class=+0230}', "");
+    Expect(0, 125257, '\P{Is_Canonical_Combining_Class=+0230}', "");
+    Expect(1, 125257, '\P{^Is_Canonical_Combining_Class=+0230}', "");
+    Expect(0, 125258, '\p{Is_Canonical_Combining_Class=+0230}', "");
+    Expect(1, 125258, '\p{^Is_Canonical_Combining_Class=+0230}', "");
+    Expect(1, 125258, '\P{Is_Canonical_Combining_Class=+0230}', "");
+    Expect(0, 125258, '\P{^Is_Canonical_Combining_Class=+0230}', "");
+    Error('\p{Is_Ccc=:=-	Above}');
+    Error('\P{Is_Ccc=:=-	Above}');
     Expect(1, 125257, '\p{Is_Ccc=above}', "");
     Expect(0, 125257, '\p{^Is_Ccc=above}', "");
     Expect(0, 125257, '\P{Is_Ccc=above}', "");
@@ -29814,16 +30390,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125258, '\p{^Is_Ccc=above}', "");
     Expect(1, 125258, '\P{Is_Ccc=above}', "");
     Expect(0, 125258, '\P{^Is_Ccc=above}', "");
-    Expect(1, 125257, '\p{Is_Ccc:_above}', "");
-    Expect(0, 125257, '\p{^Is_Ccc:_above}', "");
-    Expect(0, 125257, '\P{Is_Ccc:_above}', "");
-    Expect(1, 125257, '\P{^Is_Ccc:_above}', "");
-    Expect(0, 125258, '\p{Is_Ccc:_above}', "");
-    Expect(1, 125258, '\p{^Is_Ccc:_above}', "");
-    Expect(1, 125258, '\P{Is_Ccc:_above}', "");
-    Expect(0, 125258, '\P{^Is_Ccc:_above}', "");
-    Error('\p{Canonical_Combining_Class=-:=above_Left}');
-    Error('\P{Canonical_Combining_Class=-:=above_Left}');
+    Expect(1, 125257, '\p{Is_Ccc= Above}', "");
+    Expect(0, 125257, '\p{^Is_Ccc= Above}', "");
+    Expect(0, 125257, '\P{Is_Ccc= Above}', "");
+    Expect(1, 125257, '\P{^Is_Ccc= Above}', "");
+    Expect(0, 125258, '\p{Is_Ccc= Above}', "");
+    Expect(1, 125258, '\p{^Is_Ccc= Above}', "");
+    Expect(1, 125258, '\P{Is_Ccc= Above}', "");
+    Expect(0, 125258, '\P{^Is_Ccc= Above}', "");
+    Error('\p{Canonical_Combining_Class=:= 	Above_left}');
+    Error('\P{Canonical_Combining_Class=:= 	Above_left}');
     Expect(1, 12331, '\p{Canonical_Combining_Class=:\AAbove_Left\z:}', "");;
     Expect(0, 12332, '\p{Canonical_Combining_Class=:\AAbove_Left\z:}', "");;
     Expect(1, 12331, '\p{Canonical_Combining_Class=aboveleft}', "");
@@ -29836,16 +30412,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12332, '\P{^Canonical_Combining_Class=aboveleft}', "");
     Expect(1, 12331, '\p{Canonical_Combining_Class=:\Aaboveleft\z:}', "");;
     Expect(0, 12332, '\p{Canonical_Combining_Class=:\Aaboveleft\z:}', "");;
-    Expect(1, 12331, '\p{Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(0, 12331, '\p{^Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(0, 12331, '\P{Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(1, 12331, '\P{^Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(0, 12332, '\p{Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(1, 12332, '\p{^Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(1, 12332, '\P{Canonical_Combining_Class=	_Above_LEFT}', "");
-    Expect(0, 12332, '\P{^Canonical_Combining_Class=	_Above_LEFT}', "");
-    Error('\p{Ccc=- al:=}');
-    Error('\P{Ccc=- al:=}');
+    Expect(1, 12331, '\p{Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(0, 12331, '\p{^Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(0, 12331, '\P{Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(1, 12331, '\P{^Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(0, 12332, '\p{Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(1, 12332, '\p{^Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(1, 12332, '\P{Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Expect(0, 12332, '\P{^Canonical_Combining_Class:	_-ABOVE_Left}', "");
+    Error('\p{Ccc=/a/-AL}');
+    Error('\P{Ccc=/a/-AL}');
     Expect(1, 12331, '\p{Ccc=:\AAL\z:}', "");;
     Expect(0, 12332, '\p{Ccc=:\AAL\z:}', "");;
     Expect(1, 12331, '\p{Ccc=al}', "");
@@ -29858,138 +30434,138 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12332, '\P{^Ccc=al}', "");
     Expect(1, 12331, '\p{Ccc=:\Aal\z:}', "");;
     Expect(0, 12332, '\p{Ccc=:\Aal\z:}', "");;
-    Expect(1, 12331, '\p{Ccc=_	AL}', "");
-    Expect(0, 12331, '\p{^Ccc=_	AL}', "");
-    Expect(0, 12331, '\P{Ccc=_	AL}', "");
-    Expect(1, 12331, '\P{^Ccc=_	AL}', "");
-    Expect(0, 12332, '\p{Ccc=_	AL}', "");
-    Expect(1, 12332, '\p{^Ccc=_	AL}', "");
-    Expect(1, 12332, '\P{Ccc=_	AL}', "");
-    Expect(0, 12332, '\P{^Ccc=_	AL}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/		000022_8}');
-    Error('\P{Is_Canonical_Combining_Class=/a/		000022_8}');
-    Expect(1, 12331, '\p{Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(0, 12331, '\p{^Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(0, 12331, '\P{Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(1, 12331, '\P{^Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(0, 12332, '\p{Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(1, 12332, '\p{^Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(1, 12332, '\P{Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Expect(0, 12332, '\P{^Is_Canonical_Combining_Class=+000_000_022_8}', "");
-    Error('\p{Is_Ccc=-:=above_Left}');
-    Error('\P{Is_Ccc=-:=above_Left}');
-    Expect(1, 12331, '\p{Is_Ccc:   aboveleft}', "");
-    Expect(0, 12331, '\p{^Is_Ccc:   aboveleft}', "");
-    Expect(0, 12331, '\P{Is_Ccc:   aboveleft}', "");
-    Expect(1, 12331, '\P{^Is_Ccc:   aboveleft}', "");
-    Expect(0, 12332, '\p{Is_Ccc:   aboveleft}', "");
-    Expect(1, 12332, '\p{^Is_Ccc:   aboveleft}', "");
-    Expect(1, 12332, '\P{Is_Ccc:   aboveleft}', "");
-    Expect(0, 12332, '\P{^Is_Ccc:   aboveleft}', "");
-    Expect(1, 12331, '\p{Is_Ccc:		above_Left}', "");
-    Expect(0, 12331, '\p{^Is_Ccc:		above_Left}', "");
-    Expect(0, 12331, '\P{Is_Ccc:		above_Left}', "");
-    Expect(1, 12331, '\P{^Is_Ccc:		above_Left}', "");
-    Expect(0, 12332, '\p{Is_Ccc:		above_Left}', "");
-    Expect(1, 12332, '\p{^Is_Ccc:		above_Left}', "");
-    Expect(1, 12332, '\P{Is_Ccc:		above_Left}', "");
-    Expect(0, 12332, '\P{^Is_Ccc:		above_Left}', "");
-    Error('\p{Canonical_Combining_Class=-/a/Above_right}');
-    Error('\P{Canonical_Combining_Class=-/a/Above_right}');
-    Expect(1, 12332, '\p{Canonical_Combining_Class=:\AAbove_Right\z:}', "");;
-    Expect(0, 12333, '\p{Canonical_Combining_Class=:\AAbove_Right\z:}', "");;
-    Expect(1, 12332, '\p{Canonical_Combining_Class=aboveright}', "");
-    Expect(0, 12332, '\p{^Canonical_Combining_Class=aboveright}', "");
-    Expect(0, 12332, '\P{Canonical_Combining_Class=aboveright}', "");
-    Expect(1, 12332, '\P{^Canonical_Combining_Class=aboveright}', "");
-    Expect(0, 12333, '\p{Canonical_Combining_Class=aboveright}', "");
-    Expect(1, 12333, '\p{^Canonical_Combining_Class=aboveright}', "");
-    Expect(1, 12333, '\P{Canonical_Combining_Class=aboveright}', "");
-    Expect(0, 12333, '\P{^Canonical_Combining_Class=aboveright}', "");
-    Expect(1, 12332, '\p{Canonical_Combining_Class=:\Aaboveright\z:}', "");;
-    Expect(0, 12333, '\p{Canonical_Combining_Class=:\Aaboveright\z:}', "");;
-    Expect(1, 12332, '\p{Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(0, 12332, '\p{^Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(0, 12332, '\P{Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(1, 12332, '\P{^Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(0, 12333, '\p{Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(1, 12333, '\p{^Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(1, 12333, '\P{Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Expect(0, 12333, '\P{^Canonical_Combining_Class=-	ABOVE_Right}', "");
-    Error('\p{Ccc=/a/ar}');
-    Error('\P{Ccc=/a/ar}');
-    Expect(1, 12332, '\p{Ccc=:\AAR\z:}', "");;
-    Expect(0, 12333, '\p{Ccc=:\AAR\z:}', "");;
-    Expect(1, 12332, '\p{Ccc=ar}', "");
-    Expect(0, 12332, '\p{^Ccc=ar}', "");
-    Expect(0, 12332, '\P{Ccc=ar}', "");
-    Expect(1, 12332, '\P{^Ccc=ar}', "");
-    Expect(0, 12333, '\p{Ccc=ar}', "");
-    Expect(1, 12333, '\p{^Ccc=ar}', "");
-    Expect(1, 12333, '\P{Ccc=ar}', "");
-    Expect(0, 12333, '\P{^Ccc=ar}', "");
-    Expect(1, 12332, '\p{Ccc=:\Aar\z:}', "");;
-    Expect(0, 12333, '\p{Ccc=:\Aar\z:}', "");;
-    Expect(1, 12332, '\p{Ccc= -AR}', "");
-    Expect(0, 12332, '\p{^Ccc= -AR}', "");
-    Expect(0, 12332, '\P{Ccc= -AR}', "");
-    Expect(1, 12332, '\P{^Ccc= -AR}', "");
-    Expect(0, 12333, '\p{Ccc= -AR}', "");
-    Expect(1, 12333, '\p{^Ccc= -AR}', "");
-    Expect(1, 12333, '\P{Ccc= -AR}', "");
-    Expect(0, 12333, '\P{^Ccc= -AR}', "");
-    Error('\p{Is_Canonical_Combining_Class=  0000000232/a/}');
-    Error('\P{Is_Canonical_Combining_Class=  0000000232/a/}');
-    Expect(1, 12332, '\p{Is_Canonical_Combining_Class=000232}', "");
-    Expect(0, 12332, '\p{^Is_Canonical_Combining_Class=000232}', "");
-    Expect(0, 12332, '\P{Is_Canonical_Combining_Class=000232}', "");
-    Expect(1, 12332, '\P{^Is_Canonical_Combining_Class=000232}', "");
-    Expect(0, 12333, '\p{Is_Canonical_Combining_Class=000232}', "");
-    Expect(1, 12333, '\p{^Is_Canonical_Combining_Class=000232}', "");
-    Expect(1, 12333, '\P{Is_Canonical_Combining_Class=000232}', "");
-    Expect(0, 12333, '\P{^Is_Canonical_Combining_Class=000232}', "");
-    Error('\p{Is_Ccc=-_Above_Right/a/}');
-    Error('\P{Is_Ccc=-_Above_Right/a/}');
-    Expect(1, 12332, '\p{Is_Ccc=aboveright}', "");
-    Expect(0, 12332, '\p{^Is_Ccc=aboveright}', "");
-    Expect(0, 12332, '\P{Is_Ccc=aboveright}', "");
-    Expect(1, 12332, '\P{^Is_Ccc=aboveright}', "");
-    Expect(0, 12333, '\p{Is_Ccc=aboveright}', "");
-    Expect(1, 12333, '\p{^Is_Ccc=aboveright}', "");
-    Expect(1, 12333, '\P{Is_Ccc=aboveright}', "");
-    Expect(0, 12333, '\P{^Is_Ccc=aboveright}', "");
-    Expect(1, 12332, '\p{Is_Ccc=- Above_Right}', "");
-    Expect(0, 12332, '\p{^Is_Ccc=- Above_Right}', "");
-    Expect(0, 12332, '\P{Is_Ccc=- Above_Right}', "");
-    Expect(1, 12332, '\P{^Is_Ccc=- Above_Right}', "");
-    Expect(0, 12333, '\p{Is_Ccc=- Above_Right}', "");
-    Expect(1, 12333, '\p{^Is_Ccc=- Above_Right}', "");
-    Expect(1, 12333, '\P{Is_Ccc=- Above_Right}', "");
-    Expect(0, 12333, '\P{^Is_Ccc=- Above_Right}', "");
-    Error('\p{Canonical_Combining_Class=/a/_-ATTACHED_above}');
-    Error('\P{Canonical_Combining_Class=/a/_-ATTACHED_above}');
+    Expect(1, 12331, '\p{Ccc=		al}', "");
+    Expect(0, 12331, '\p{^Ccc=		al}', "");
+    Expect(0, 12331, '\P{Ccc=		al}', "");
+    Expect(1, 12331, '\P{^Ccc=		al}', "");
+    Expect(0, 12332, '\p{Ccc=		al}', "");
+    Expect(1, 12332, '\p{^Ccc=		al}', "");
+    Expect(1, 12332, '\P{Ccc=		al}', "");
+    Expect(0, 12332, '\P{^Ccc=		al}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=-	+0000000228}');
+    Error('\P{Is_Canonical_Combining_Class=:=-	+0000000228}');
+    Expect(1, 12331, '\p{Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(0, 12331, '\p{^Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(0, 12331, '\P{Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(1, 12331, '\P{^Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(0, 12332, '\p{Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(1, 12332, '\p{^Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(1, 12332, '\P{Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Expect(0, 12332, '\P{^Is_Canonical_Combining_Class:	+0_0_0_0_0_0_0_2_28}', "");
+    Error('\p{Is_Ccc=/a/	Above_Left}');
+    Error('\P{Is_Ccc=/a/	Above_Left}');
+    Expect(1, 12331, '\p{Is_Ccc:	aboveleft}', "");
+    Expect(0, 12331, '\p{^Is_Ccc:	aboveleft}', "");
+    Expect(0, 12331, '\P{Is_Ccc:	aboveleft}', "");
+    Expect(1, 12331, '\P{^Is_Ccc:	aboveleft}', "");
+    Expect(0, 12332, '\p{Is_Ccc:	aboveleft}', "");
+    Expect(1, 12332, '\p{^Is_Ccc:	aboveleft}', "");
+    Expect(1, 12332, '\P{Is_Ccc:	aboveleft}', "");
+    Expect(0, 12332, '\P{^Is_Ccc:	aboveleft}', "");
+    Expect(1, 12331, '\p{Is_Ccc=_	above_LEFT}', "");
+    Expect(0, 12331, '\p{^Is_Ccc=_	above_LEFT}', "");
+    Expect(0, 12331, '\P{Is_Ccc=_	above_LEFT}', "");
+    Expect(1, 12331, '\P{^Is_Ccc=_	above_LEFT}', "");
+    Expect(0, 12332, '\p{Is_Ccc=_	above_LEFT}', "");
+    Expect(1, 12332, '\p{^Is_Ccc=_	above_LEFT}', "");
+    Expect(1, 12332, '\P{Is_Ccc=_	above_LEFT}', "");
+    Expect(0, 12332, '\P{^Is_Ccc=_	above_LEFT}', "");
+    Error('\p{Canonical_Combining_Class=_ Above_Right:=}');
+    Error('\P{Canonical_Combining_Class=_ Above_Right:=}');
+    Expect(1, 124141, '\p{Canonical_Combining_Class=:\AAbove_Right\z:}', "");;
+    Expect(0, 124142, '\p{Canonical_Combining_Class=:\AAbove_Right\z:}', "");;
+    Expect(1, 124141, '\p{Canonical_Combining_Class=aboveright}', "");
+    Expect(0, 124141, '\p{^Canonical_Combining_Class=aboveright}', "");
+    Expect(0, 124141, '\P{Canonical_Combining_Class=aboveright}', "");
+    Expect(1, 124141, '\P{^Canonical_Combining_Class=aboveright}', "");
+    Expect(0, 124142, '\p{Canonical_Combining_Class=aboveright}', "");
+    Expect(1, 124142, '\p{^Canonical_Combining_Class=aboveright}', "");
+    Expect(1, 124142, '\P{Canonical_Combining_Class=aboveright}', "");
+    Expect(0, 124142, '\P{^Canonical_Combining_Class=aboveright}', "");
+    Expect(1, 124141, '\p{Canonical_Combining_Class=:\Aaboveright\z:}', "");;
+    Expect(0, 124142, '\p{Canonical_Combining_Class=:\Aaboveright\z:}', "");;
+    Expect(1, 124141, '\p{Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(0, 124141, '\p{^Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(0, 124141, '\P{Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(1, 124141, '\P{^Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(0, 124142, '\p{Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(1, 124142, '\p{^Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(1, 124142, '\P{Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Expect(0, 124142, '\P{^Canonical_Combining_Class=-	ABOVE_Right}', "");
+    Error('\p{Ccc:	:=AR}');
+    Error('\P{Ccc:	:=AR}');
+    Expect(1, 124141, '\p{Ccc=:\AAR\z:}', "");;
+    Expect(0, 124142, '\p{Ccc=:\AAR\z:}', "");;
+    Expect(1, 124141, '\p{Ccc=ar}', "");
+    Expect(0, 124141, '\p{^Ccc=ar}', "");
+    Expect(0, 124141, '\P{Ccc=ar}', "");
+    Expect(1, 124141, '\P{^Ccc=ar}', "");
+    Expect(0, 124142, '\p{Ccc=ar}', "");
+    Expect(1, 124142, '\p{^Ccc=ar}', "");
+    Expect(1, 124142, '\P{Ccc=ar}', "");
+    Expect(0, 124142, '\P{^Ccc=ar}', "");
+    Expect(1, 124141, '\p{Ccc=:\Aar\z:}', "");;
+    Expect(0, 124142, '\p{Ccc=:\Aar\z:}', "");;
+    Expect(1, 124141, '\p{Ccc=	_AR}', "");
+    Expect(0, 124141, '\p{^Ccc=	_AR}', "");
+    Expect(0, 124141, '\P{Ccc=	_AR}', "");
+    Expect(1, 124141, '\P{^Ccc=	_AR}', "");
+    Expect(0, 124142, '\p{Ccc=	_AR}', "");
+    Expect(1, 124142, '\p{^Ccc=	_AR}', "");
+    Expect(1, 124142, '\P{Ccc=	_AR}', "");
+    Expect(0, 124142, '\P{^Ccc=	_AR}', "");
+    Error('\p{Is_Canonical_Combining_Class: 	+0_0_0_0_0_0_000232:=}');
+    Error('\P{Is_Canonical_Combining_Class: 	+0_0_0_0_0_0_000232:=}');
+    Expect(1, 124141, '\p{Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(0, 124141, '\p{^Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(0, 124141, '\P{Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(1, 124141, '\P{^Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(0, 124142, '\p{Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(1, 124142, '\p{^Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(1, 124142, '\P{Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Expect(0, 124142, '\P{^Is_Canonical_Combining_Class=00000_00023_2}', "");
+    Error('\p{Is_Ccc=:=	Above_right}');
+    Error('\P{Is_Ccc=:=	Above_right}');
+    Expect(1, 124141, '\p{Is_Ccc=aboveright}', "");
+    Expect(0, 124141, '\p{^Is_Ccc=aboveright}', "");
+    Expect(0, 124141, '\P{Is_Ccc=aboveright}', "");
+    Expect(1, 124141, '\P{^Is_Ccc=aboveright}', "");
+    Expect(0, 124142, '\p{Is_Ccc=aboveright}', "");
+    Expect(1, 124142, '\p{^Is_Ccc=aboveright}', "");
+    Expect(1, 124142, '\P{Is_Ccc=aboveright}', "");
+    Expect(0, 124142, '\P{^Is_Ccc=aboveright}', "");
+    Expect(1, 124141, '\p{Is_Ccc=	_Above_Right}', "");
+    Expect(0, 124141, '\p{^Is_Ccc=	_Above_Right}', "");
+    Expect(0, 124141, '\P{Is_Ccc=	_Above_Right}', "");
+    Expect(1, 124141, '\P{^Is_Ccc=	_Above_Right}', "");
+    Expect(0, 124142, '\p{Is_Ccc=	_Above_Right}', "");
+    Expect(1, 124142, '\p{^Is_Ccc=	_Above_Right}', "");
+    Expect(1, 124142, '\P{Is_Ccc=	_Above_Right}', "");
+    Expect(0, 124142, '\P{^Is_Ccc=	_Above_Right}', "");
+    Error('\p{Canonical_Combining_Class=/a/Attached_ABOVE}');
+    Error('\P{Canonical_Combining_Class=/a/Attached_ABOVE}');
     Expect(1, 7630, '\p{Canonical_Combining_Class=:\AAttached_Above\z:}', "");;
     Expect(0, 7631, '\p{Canonical_Combining_Class=:\AAttached_Above\z:}', "");;
-    Expect(1, 7630, '\p{Canonical_Combining_Class:	attachedabove}', "");
-    Expect(0, 7630, '\p{^Canonical_Combining_Class:	attachedabove}', "");
-    Expect(0, 7630, '\P{Canonical_Combining_Class:	attachedabove}', "");
-    Expect(1, 7630, '\P{^Canonical_Combining_Class:	attachedabove}', "");
-    Expect(0, 7631, '\p{Canonical_Combining_Class:	attachedabove}', "");
-    Expect(1, 7631, '\p{^Canonical_Combining_Class:	attachedabove}', "");
-    Expect(1, 7631, '\P{Canonical_Combining_Class:	attachedabove}', "");
-    Expect(0, 7631, '\P{^Canonical_Combining_Class:	attachedabove}', "");
+    Expect(1, 7630, '\p{Canonical_Combining_Class=attachedabove}', "");
+    Expect(0, 7630, '\p{^Canonical_Combining_Class=attachedabove}', "");
+    Expect(0, 7630, '\P{Canonical_Combining_Class=attachedabove}', "");
+    Expect(1, 7630, '\P{^Canonical_Combining_Class=attachedabove}', "");
+    Expect(0, 7631, '\p{Canonical_Combining_Class=attachedabove}', "");
+    Expect(1, 7631, '\p{^Canonical_Combining_Class=attachedabove}', "");
+    Expect(1, 7631, '\P{Canonical_Combining_Class=attachedabove}', "");
+    Expect(0, 7631, '\P{^Canonical_Combining_Class=attachedabove}', "");
     Expect(1, 7630, '\p{Canonical_Combining_Class=:\Aattachedabove\z:}', "");;
     Expect(0, 7631, '\p{Canonical_Combining_Class=:\Aattachedabove\z:}', "");;
-    Expect(1, 7630, '\p{Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(0, 7630, '\p{^Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(0, 7630, '\P{Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(1, 7630, '\P{^Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(0, 7631, '\p{Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(1, 7631, '\p{^Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(1, 7631, '\P{Canonical_Combining_Class=- Attached_Above}', "");
-    Expect(0, 7631, '\P{^Canonical_Combining_Class=- Attached_Above}', "");
-    Error('\p{Ccc:	:=_	ata}');
-    Error('\P{Ccc:	:=_	ata}');
+    Expect(1, 7630, '\p{Canonical_Combining_Class=_-attached_above}', "");
+    Expect(0, 7630, '\p{^Canonical_Combining_Class=_-attached_above}', "");
+    Expect(0, 7630, '\P{Canonical_Combining_Class=_-attached_above}', "");
+    Expect(1, 7630, '\P{^Canonical_Combining_Class=_-attached_above}', "");
+    Expect(0, 7631, '\p{Canonical_Combining_Class=_-attached_above}', "");
+    Expect(1, 7631, '\p{^Canonical_Combining_Class=_-attached_above}', "");
+    Expect(1, 7631, '\P{Canonical_Combining_Class=_-attached_above}', "");
+    Expect(0, 7631, '\P{^Canonical_Combining_Class=_-attached_above}', "");
+    Error('\p{Ccc=/a/_ATA}');
+    Error('\P{Ccc=/a/_ATA}');
     Expect(1, 7630, '\p{Ccc=:\AATA\z:}', "");;
     Expect(0, 7631, '\p{Ccc=:\AATA\z:}', "");;
     Expect(1, 7630, '\p{Ccc=ata}', "");
@@ -30002,26 +30578,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7631, '\P{^Ccc=ata}', "");
     Expect(1, 7630, '\p{Ccc=:\Aata\z:}', "");;
     Expect(0, 7631, '\p{Ccc=:\Aata\z:}', "");;
-    Expect(1, 7630, '\p{Ccc=		ATA}', "");
-    Expect(0, 7630, '\p{^Ccc=		ATA}', "");
-    Expect(0, 7630, '\P{Ccc=		ATA}', "");
-    Expect(1, 7630, '\P{^Ccc=		ATA}', "");
-    Expect(0, 7631, '\p{Ccc=		ATA}', "");
-    Expect(1, 7631, '\p{^Ccc=		ATA}', "");
-    Expect(1, 7631, '\P{Ccc=		ATA}', "");
-    Expect(0, 7631, '\P{^Ccc=		ATA}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=	_0000214}');
-    Error('\P{Is_Canonical_Combining_Class=:=	_0000214}');
-    Expect(1, 7630, '\p{Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(0, 7630, '\p{^Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(0, 7630, '\P{Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(1, 7630, '\P{^Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(0, 7631, '\p{Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(1, 7631, '\p{^Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(1, 7631, '\P{Is_Canonical_Combining_Class: 00000000214}', "");
-    Expect(0, 7631, '\P{^Is_Canonical_Combining_Class: 00000000214}', "");
-    Error('\p{Is_Ccc=	/a/Attached_ABOVE}');
-    Error('\P{Is_Ccc=	/a/Attached_ABOVE}');
+    Expect(1, 7630, '\p{Ccc=__ATA}', "");
+    Expect(0, 7630, '\p{^Ccc=__ATA}', "");
+    Expect(0, 7630, '\P{Ccc=__ATA}', "");
+    Expect(1, 7630, '\P{^Ccc=__ATA}', "");
+    Expect(0, 7631, '\p{Ccc=__ATA}', "");
+    Expect(1, 7631, '\p{^Ccc=__ATA}', "");
+    Expect(1, 7631, '\P{Ccc=__ATA}', "");
+    Expect(0, 7631, '\P{^Ccc=__ATA}', "");
+    Error('\p{Is_Canonical_Combining_Class:   _ +00_00_00_00_0214/a/}');
+    Error('\P{Is_Canonical_Combining_Class:   _ +00_00_00_00_0214/a/}');
+    Expect(1, 7630, '\p{Is_Canonical_Combining_Class: 00214}', "");
+    Expect(0, 7630, '\p{^Is_Canonical_Combining_Class: 00214}', "");
+    Expect(0, 7630, '\P{Is_Canonical_Combining_Class: 00214}', "");
+    Expect(1, 7630, '\P{^Is_Canonical_Combining_Class: 00214}', "");
+    Expect(0, 7631, '\p{Is_Canonical_Combining_Class: 00214}', "");
+    Expect(1, 7631, '\p{^Is_Canonical_Combining_Class: 00214}', "");
+    Expect(1, 7631, '\P{Is_Canonical_Combining_Class: 00214}', "");
+    Expect(0, 7631, '\P{^Is_Canonical_Combining_Class: 00214}', "");
+    Error('\p{Is_Ccc=_:=Attached_above}');
+    Error('\P{Is_Ccc=_:=Attached_above}');
     Expect(1, 7630, '\p{Is_Ccc=attachedabove}', "");
     Expect(0, 7630, '\p{^Is_Ccc=attachedabove}', "");
     Expect(0, 7630, '\P{Is_Ccc=attachedabove}', "");
@@ -30030,16 +30606,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7631, '\p{^Is_Ccc=attachedabove}', "");
     Expect(1, 7631, '\P{Is_Ccc=attachedabove}', "");
     Expect(0, 7631, '\P{^Is_Ccc=attachedabove}', "");
-    Expect(1, 7630, '\p{Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(0, 7630, '\p{^Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(0, 7630, '\P{Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(1, 7630, '\P{^Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(0, 7631, '\p{Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(1, 7631, '\p{^Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(1, 7631, '\P{Is_Ccc=	_ATTACHED_Above}', "");
-    Expect(0, 7631, '\P{^Is_Ccc=	_ATTACHED_Above}', "");
-    Error('\p{Canonical_Combining_Class=_:=Attached_Above_Right}');
-    Error('\P{Canonical_Combining_Class=_:=Attached_Above_Right}');
+    Expect(1, 7630, '\p{Is_Ccc=-Attached_Above}', "");
+    Expect(0, 7630, '\p{^Is_Ccc=-Attached_Above}', "");
+    Expect(0, 7630, '\P{Is_Ccc=-Attached_Above}', "");
+    Expect(1, 7630, '\P{^Is_Ccc=-Attached_Above}', "");
+    Expect(0, 7631, '\p{Is_Ccc=-Attached_Above}', "");
+    Expect(1, 7631, '\p{^Is_Ccc=-Attached_Above}', "");
+    Expect(1, 7631, '\P{Is_Ccc=-Attached_Above}', "");
+    Expect(0, 7631, '\P{^Is_Ccc=-Attached_Above}', "");
+    Error('\p{Canonical_Combining_Class: /a/-	ATTACHED_ABOVE_Right}');
+    Error('\P{Canonical_Combining_Class: /a/-	ATTACHED_ABOVE_Right}');
     Expect(1, 119154, '\p{Canonical_Combining_Class=:\AAttached_Above_Right\z:}', "");;
     Expect(0, 119155, '\p{Canonical_Combining_Class=:\AAttached_Above_Right\z:}', "");;
     Expect(1, 119154, '\p{Canonical_Combining_Class=attachedaboveright}', "");
@@ -30052,16 +30628,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119155, '\P{^Canonical_Combining_Class=attachedaboveright}', "");
     Expect(1, 119154, '\p{Canonical_Combining_Class=:\Aattachedaboveright\z:}', "");;
     Expect(0, 119155, '\p{Canonical_Combining_Class=:\Aattachedaboveright\z:}', "");;
-    Expect(1, 119154, '\p{Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(0, 119154, '\p{^Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(0, 119154, '\P{Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(1, 119154, '\P{^Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(0, 119155, '\p{Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(1, 119155, '\p{^Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(1, 119155, '\P{Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Expect(0, 119155, '\P{^Canonical_Combining_Class=-_attached_Above_Right}', "");
-    Error('\p{Ccc=:=	ATAR}');
-    Error('\P{Ccc=:=	ATAR}');
+    Expect(1, 119154, '\p{Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(0, 119154, '\p{^Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(0, 119154, '\P{Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(1, 119154, '\P{^Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(0, 119155, '\p{Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(1, 119155, '\p{^Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(1, 119155, '\P{Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Expect(0, 119155, '\P{^Canonical_Combining_Class=	-ATTACHED_Above_Right}', "");
+    Error('\p{Ccc=_/a/ATAR}');
+    Error('\P{Ccc=_/a/ATAR}');
     Expect(1, 119154, '\p{Ccc=:\AATAR\z:}', "");;
     Expect(0, 119155, '\p{Ccc=:\AATAR\z:}', "");;
     Expect(1, 119154, '\p{Ccc=atar}', "");
@@ -30074,44 +30650,44 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119155, '\P{^Ccc=atar}', "");
     Expect(1, 119154, '\p{Ccc=:\Aatar\z:}', "");;
     Expect(0, 119155, '\p{Ccc=:\Aatar\z:}', "");;
-    Expect(1, 119154, '\p{Ccc:   	-ATAR}', "");
-    Expect(0, 119154, '\p{^Ccc:   	-ATAR}', "");
-    Expect(0, 119154, '\P{Ccc:   	-ATAR}', "");
-    Expect(1, 119154, '\P{^Ccc:   	-ATAR}', "");
-    Expect(0, 119155, '\p{Ccc:   	-ATAR}', "");
-    Expect(1, 119155, '\p{^Ccc:   	-ATAR}', "");
-    Expect(1, 119155, '\P{Ccc:   	-ATAR}', "");
-    Expect(0, 119155, '\P{^Ccc:   	-ATAR}', "");
-    Error('\p{Is_Canonical_Combining_Class:		:=+00000_00021_6}');
-    Error('\P{Is_Canonical_Combining_Class:		:=+00000_00021_6}');
-    Expect(1, 119154, '\p{Is_Canonical_Combining_Class=021_6}', "");
-    Expect(0, 119154, '\p{^Is_Canonical_Combining_Class=021_6}', "");
-    Expect(0, 119154, '\P{Is_Canonical_Combining_Class=021_6}', "");
-    Expect(1, 119154, '\P{^Is_Canonical_Combining_Class=021_6}', "");
-    Expect(0, 119155, '\p{Is_Canonical_Combining_Class=021_6}', "");
-    Expect(1, 119155, '\p{^Is_Canonical_Combining_Class=021_6}', "");
-    Expect(1, 119155, '\P{Is_Canonical_Combining_Class=021_6}', "");
-    Expect(0, 119155, '\P{^Is_Canonical_Combining_Class=021_6}', "");
-    Error('\p{Is_Ccc=/a/  Attached_ABOVE_RIGHT}');
-    Error('\P{Is_Ccc=/a/  Attached_ABOVE_RIGHT}');
-    Expect(1, 119154, '\p{Is_Ccc=attachedaboveright}', "");
-    Expect(0, 119154, '\p{^Is_Ccc=attachedaboveright}', "");
-    Expect(0, 119154, '\P{Is_Ccc=attachedaboveright}', "");
-    Expect(1, 119154, '\P{^Is_Ccc=attachedaboveright}', "");
-    Expect(0, 119155, '\p{Is_Ccc=attachedaboveright}', "");
-    Expect(1, 119155, '\p{^Is_Ccc=attachedaboveright}', "");
-    Expect(1, 119155, '\P{Is_Ccc=attachedaboveright}', "");
-    Expect(0, 119155, '\P{^Is_Ccc=attachedaboveright}', "");
-    Expect(1, 119154, '\p{Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(0, 119154, '\p{^Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(0, 119154, '\P{Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(1, 119154, '\P{^Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(0, 119155, '\p{Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(1, 119155, '\p{^Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(1, 119155, '\P{Is_Ccc=	attached_ABOVE_Right}', "");
-    Expect(0, 119155, '\P{^Is_Ccc=	attached_ABOVE_Right}', "");
-    Error('\p{Canonical_Combining_Class= ATTACHED_below:=}');
-    Error('\P{Canonical_Combining_Class= ATTACHED_below:=}');
+    Expect(1, 119154, '\p{Ccc=		atar}', "");
+    Expect(0, 119154, '\p{^Ccc=		atar}', "");
+    Expect(0, 119154, '\P{Ccc=		atar}', "");
+    Expect(1, 119154, '\P{^Ccc=		atar}', "");
+    Expect(0, 119155, '\p{Ccc=		atar}', "");
+    Expect(1, 119155, '\p{^Ccc=		atar}', "");
+    Expect(1, 119155, '\P{Ccc=		atar}', "");
+    Expect(0, 119155, '\P{^Ccc=		atar}', "");
+    Error('\p{Is_Canonical_Combining_Class=	 0216/a/}');
+    Error('\P{Is_Canonical_Combining_Class=	 0216/a/}');
+    Expect(1, 119154, '\p{Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(0, 119154, '\p{^Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(0, 119154, '\P{Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(1, 119154, '\P{^Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(0, 119155, '\p{Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(1, 119155, '\p{^Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(1, 119155, '\P{Is_Canonical_Combining_Class=+00_02_16}', "");
+    Expect(0, 119155, '\P{^Is_Canonical_Combining_Class=+00_02_16}', "");
+    Error('\p{Is_Ccc=/a/	_ATTACHED_Above_Right}');
+    Error('\P{Is_Ccc=/a/	_ATTACHED_Above_Right}');
+    Expect(1, 119154, '\p{Is_Ccc: attachedaboveright}', "");
+    Expect(0, 119154, '\p{^Is_Ccc: attachedaboveright}', "");
+    Expect(0, 119154, '\P{Is_Ccc: attachedaboveright}', "");
+    Expect(1, 119154, '\P{^Is_Ccc: attachedaboveright}', "");
+    Expect(0, 119155, '\p{Is_Ccc: attachedaboveright}', "");
+    Expect(1, 119155, '\p{^Is_Ccc: attachedaboveright}', "");
+    Expect(1, 119155, '\P{Is_Ccc: attachedaboveright}', "");
+    Expect(0, 119155, '\P{^Is_Ccc: attachedaboveright}', "");
+    Expect(1, 119154, '\p{Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(0, 119154, '\p{^Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(0, 119154, '\P{Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(1, 119154, '\P{^Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(0, 119155, '\p{Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(1, 119155, '\p{^Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(1, 119155, '\P{Is_Ccc=_ATTACHED_Above_Right}', "");
+    Expect(0, 119155, '\P{^Is_Ccc=_ATTACHED_Above_Right}', "");
+    Error('\p{Canonical_Combining_Class=:=	Attached_Below}');
+    Error('\P{Canonical_Combining_Class=:=	Attached_Below}');
     Expect(1, 7632, '\p{Canonical_Combining_Class=:\AAttached_Below\z:}', "");;
     Expect(0, 7633, '\p{Canonical_Combining_Class=:\AAttached_Below\z:}', "");;
     Expect(1, 7632, '\p{Canonical_Combining_Class=attachedbelow}', "");
@@ -30124,16 +30700,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7633, '\P{^Canonical_Combining_Class=attachedbelow}', "");
     Expect(1, 7632, '\p{Canonical_Combining_Class=:\Aattachedbelow\z:}', "");;
     Expect(0, 7633, '\p{Canonical_Combining_Class=:\Aattachedbelow\z:}', "");;
-    Expect(1, 7632, '\p{Canonical_Combining_Class= attached_Below}', "");
-    Expect(0, 7632, '\p{^Canonical_Combining_Class= attached_Below}', "");
-    Expect(0, 7632, '\P{Canonical_Combining_Class= attached_Below}', "");
-    Expect(1, 7632, '\P{^Canonical_Combining_Class= attached_Below}', "");
-    Expect(0, 7633, '\p{Canonical_Combining_Class= attached_Below}', "");
-    Expect(1, 7633, '\p{^Canonical_Combining_Class= attached_Below}', "");
-    Expect(1, 7633, '\P{Canonical_Combining_Class= attached_Below}', "");
-    Expect(0, 7633, '\P{^Canonical_Combining_Class= attached_Below}', "");
-    Error('\p{Ccc=/a/_ATB}');
-    Error('\P{Ccc=/a/_ATB}');
+    Expect(1, 7632, '\p{Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(0, 7632, '\p{^Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(0, 7632, '\P{Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(1, 7632, '\P{^Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(0, 7633, '\p{Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(1, 7633, '\p{^Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(1, 7633, '\P{Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Expect(0, 7633, '\P{^Canonical_Combining_Class=_ ATTACHED_Below}', "");
+    Error('\p{Ccc=_ATB:=}');
+    Error('\P{Ccc=_ATB:=}');
     Expect(1, 7632, '\p{Ccc=:\AATB\z:}', "");;
     Expect(0, 7633, '\p{Ccc=:\AATB\z:}', "");;
     Expect(1, 7632, '\p{Ccc=atb}', "");
@@ -30146,106 +30722,106 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7633, '\P{^Ccc=atb}', "");
     Expect(1, 7632, '\p{Ccc=:\Aatb\z:}', "");;
     Expect(0, 7633, '\p{Ccc=:\Aatb\z:}', "");;
-    Expect(1, 7632, '\p{Ccc= 	atb}', "");
-    Expect(0, 7632, '\p{^Ccc= 	atb}', "");
-    Expect(0, 7632, '\P{Ccc= 	atb}', "");
-    Expect(1, 7632, '\P{^Ccc= 	atb}', "");
-    Expect(0, 7633, '\p{Ccc= 	atb}', "");
-    Expect(1, 7633, '\p{^Ccc= 	atb}', "");
-    Expect(1, 7633, '\P{Ccc= 	atb}', "");
-    Expect(0, 7633, '\P{^Ccc= 	atb}', "");
-    Error('\p{Is_Canonical_Combining_Class= :=+000000202}');
-    Error('\P{Is_Canonical_Combining_Class= :=+000000202}');
-    Expect(1, 7632, '\p{Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(0, 7632, '\p{^Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(0, 7632, '\P{Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(1, 7632, '\P{^Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(0, 7633, '\p{Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(1, 7633, '\p{^Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(1, 7633, '\P{Is_Canonical_Combining_Class=+000000000202}', "");
-    Expect(0, 7633, '\P{^Is_Canonical_Combining_Class=+000000000202}', "");
-    Error('\p{Is_Ccc=-	attached_below:=}');
-    Error('\P{Is_Ccc=-	attached_below:=}');
-    Expect(1, 7632, '\p{Is_Ccc=attachedbelow}', "");
-    Expect(0, 7632, '\p{^Is_Ccc=attachedbelow}', "");
-    Expect(0, 7632, '\P{Is_Ccc=attachedbelow}', "");
-    Expect(1, 7632, '\P{^Is_Ccc=attachedbelow}', "");
-    Expect(0, 7633, '\p{Is_Ccc=attachedbelow}', "");
-    Expect(1, 7633, '\p{^Is_Ccc=attachedbelow}', "");
-    Expect(1, 7633, '\P{Is_Ccc=attachedbelow}', "");
-    Expect(0, 7633, '\P{^Is_Ccc=attachedbelow}', "");
-    Expect(1, 7632, '\p{Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(0, 7632, '\p{^Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(0, 7632, '\P{Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(1, 7632, '\P{^Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(0, 7633, '\p{Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(1, 7633, '\p{^Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(1, 7633, '\P{Is_Ccc:   - ATTACHED_Below}', "");
-    Expect(0, 7633, '\P{^Is_Ccc:   - ATTACHED_Below}', "");
-    Error('\p{Canonical_Combining_Class=/a/ Attached_BELOW_left}');
-    Error('\P{Canonical_Combining_Class=/a/ Attached_BELOW_left}');
+    Expect(1, 7632, '\p{Ccc=_-ATB}', "");
+    Expect(0, 7632, '\p{^Ccc=_-ATB}', "");
+    Expect(0, 7632, '\P{Ccc=_-ATB}', "");
+    Expect(1, 7632, '\P{^Ccc=_-ATB}', "");
+    Expect(0, 7633, '\p{Ccc=_-ATB}', "");
+    Expect(1, 7633, '\p{^Ccc=_-ATB}', "");
+    Expect(1, 7633, '\P{Ccc=_-ATB}', "");
+    Expect(0, 7633, '\P{^Ccc=_-ATB}', "");
+    Error('\p{Is_Canonical_Combining_Class:	 /a/0000000202}');
+    Error('\P{Is_Canonical_Combining_Class:	 /a/0000000202}');
+    Expect(1, 7632, '\p{Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(0, 7632, '\p{^Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(0, 7632, '\P{Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(1, 7632, '\P{^Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(0, 7633, '\p{Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(1, 7633, '\p{^Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(1, 7633, '\P{Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Expect(0, 7633, '\P{^Is_Canonical_Combining_Class=0_0_0_2_02}', "");
+    Error('\p{Is_Ccc=_:=Attached_below}');
+    Error('\P{Is_Ccc=_:=Attached_below}');
+    Expect(1, 7632, '\p{Is_Ccc: attachedbelow}', "");
+    Expect(0, 7632, '\p{^Is_Ccc: attachedbelow}', "");
+    Expect(0, 7632, '\P{Is_Ccc: attachedbelow}', "");
+    Expect(1, 7632, '\P{^Is_Ccc: attachedbelow}', "");
+    Expect(0, 7633, '\p{Is_Ccc: attachedbelow}', "");
+    Expect(1, 7633, '\p{^Is_Ccc: attachedbelow}', "");
+    Expect(1, 7633, '\P{Is_Ccc: attachedbelow}', "");
+    Expect(0, 7633, '\P{^Is_Ccc: attachedbelow}', "");
+    Expect(1, 7632, '\p{Is_Ccc=	 attached_below}', "");
+    Expect(0, 7632, '\p{^Is_Ccc=	 attached_below}', "");
+    Expect(0, 7632, '\P{Is_Ccc=	 attached_below}', "");
+    Expect(1, 7632, '\P{^Is_Ccc=	 attached_below}', "");
+    Expect(0, 7633, '\p{Is_Ccc=	 attached_below}', "");
+    Expect(1, 7633, '\p{^Is_Ccc=	 attached_below}', "");
+    Expect(1, 7633, '\P{Is_Ccc=	 attached_below}', "");
+    Expect(0, 7633, '\P{^Is_Ccc=	 attached_below}', "");
+    Error('\p{Canonical_Combining_Class=  Attached_Below_Left:=}');
+    Error('\P{Canonical_Combining_Class=  Attached_Below_Left:=}');
     Expect(0, 1, '\p{Canonical_Combining_Class=:\AAttached_Below_Left\z:}', "");;
     Expect(0, 1, '\p{Canonical_Combining_Class=attachedbelowleft}', "");
     Expect(1, 1, '\p{^Canonical_Combining_Class=attachedbelowleft}', "");
     Expect(1, 1, '\P{Canonical_Combining_Class=attachedbelowleft}', "");
     Expect(0, 1, '\P{^Canonical_Combining_Class=attachedbelowleft}', "");
     Expect(0, 1, '\p{Canonical_Combining_Class=:\Aattachedbelowleft\z:}', "");;
-    Expect(0, 1, '\p{Canonical_Combining_Class=- ATTACHED_below_Left}', "");
-    Expect(1, 1, '\p{^Canonical_Combining_Class=- ATTACHED_below_Left}', "");
-    Expect(1, 1, '\P{Canonical_Combining_Class=- ATTACHED_below_Left}', "");
-    Expect(0, 1, '\P{^Canonical_Combining_Class=- ATTACHED_below_Left}', "");
-    Error('\p{Ccc=:=_-atbl}');
-    Error('\P{Ccc=:=_-atbl}');
+    Expect(0, 1, '\p{Canonical_Combining_Class=		Attached_Below_left}', "");
+    Expect(1, 1, '\p{^Canonical_Combining_Class=		Attached_Below_left}', "");
+    Expect(1, 1, '\P{Canonical_Combining_Class=		Attached_Below_left}', "");
+    Expect(0, 1, '\P{^Canonical_Combining_Class=		Attached_Below_left}', "");
+    Error('\p{Ccc= ATBL:=}');
+    Error('\P{Ccc= ATBL:=}');
     Expect(0, 1, '\p{Ccc=:\AATBL\z:}', "");;
-    Expect(0, 1, '\p{Ccc:atbl}', "");
-    Expect(1, 1, '\p{^Ccc:atbl}', "");
-    Expect(1, 1, '\P{Ccc:atbl}', "");
-    Expect(0, 1, '\P{^Ccc:atbl}', "");
+    Expect(0, 1, '\p{Ccc=atbl}', "");
+    Expect(1, 1, '\p{^Ccc=atbl}', "");
+    Expect(1, 1, '\P{Ccc=atbl}', "");
+    Expect(0, 1, '\P{^Ccc=atbl}', "");
     Expect(0, 1, '\p{Ccc=:\Aatbl\z:}', "");;
-    Expect(0, 1, '\p{Ccc:   --ATBL}', "");
-    Expect(1, 1, '\p{^Ccc:   --ATBL}', "");
-    Expect(1, 1, '\P{Ccc:   --ATBL}', "");
-    Expect(0, 1, '\P{^Ccc:   --ATBL}', "");
-    Error('\p{Is_Canonical_Combining_Class= 0000200/a/}');
-    Error('\P{Is_Canonical_Combining_Class= 0000200/a/}');
-    Expect(0, 1, '\p{Is_Canonical_Combining_Class=0000200}', "");
-    Expect(1, 1, '\p{^Is_Canonical_Combining_Class=0000200}', "");
-    Expect(1, 1, '\P{Is_Canonical_Combining_Class=0000200}', "");
-    Expect(0, 1, '\P{^Is_Canonical_Combining_Class=0000200}', "");
-    Error('\p{Is_Ccc=_	attached_below_Left:=}');
-    Error('\P{Is_Ccc=_	attached_below_Left:=}');
+    Expect(0, 1, '\p{Ccc= _ATBL}', "");
+    Expect(1, 1, '\p{^Ccc= _ATBL}', "");
+    Expect(1, 1, '\P{Ccc= _ATBL}', "");
+    Expect(0, 1, '\P{^Ccc= _ATBL}', "");
+    Error('\p{Is_Canonical_Combining_Class:	 00_00_00_200/a/}');
+    Error('\P{Is_Canonical_Combining_Class:	 00_00_00_200/a/}');
+    Expect(0, 1, '\p{Is_Canonical_Combining_Class=0200}', "");
+    Expect(1, 1, '\p{^Is_Canonical_Combining_Class=0200}', "");
+    Expect(1, 1, '\P{Is_Canonical_Combining_Class=0200}', "");
+    Expect(0, 1, '\P{^Is_Canonical_Combining_Class=0200}', "");
+    Error('\p{Is_Ccc=	:=ATTACHED_below_Left}');
+    Error('\P{Is_Ccc=	:=ATTACHED_below_Left}');
     Expect(0, 1, '\p{Is_Ccc=attachedbelowleft}', "");
     Expect(1, 1, '\p{^Is_Ccc=attachedbelowleft}', "");
     Expect(1, 1, '\P{Is_Ccc=attachedbelowleft}', "");
     Expect(0, 1, '\P{^Is_Ccc=attachedbelowleft}', "");
-    Expect(0, 1, '\p{Is_Ccc= -Attached_Below_Left}', "");
-    Expect(1, 1, '\p{^Is_Ccc= -Attached_Below_Left}', "");
-    Expect(1, 1, '\P{Is_Ccc= -Attached_Below_Left}', "");
-    Expect(0, 1, '\P{^Is_Ccc= -Attached_Below_Left}', "");
-    Error('\p{Canonical_Combining_Class=_Below:=}');
-    Error('\P{Canonical_Combining_Class=_Below:=}');
+    Expect(0, 1, '\p{Is_Ccc=attached_below_LEFT}', "");
+    Expect(1, 1, '\p{^Is_Ccc=attached_below_LEFT}', "");
+    Expect(1, 1, '\P{Is_Ccc=attached_below_LEFT}', "");
+    Expect(0, 1, '\P{^Is_Ccc=attached_below_LEFT}', "");
+    Error('\p{Canonical_Combining_Class=__below/a/}');
+    Error('\P{Canonical_Combining_Class=__below/a/}');
     Expect(1, 125142, '\p{Canonical_Combining_Class=:\ABelow\z:}', "");;
     Expect(0, 125143, '\p{Canonical_Combining_Class=:\ABelow\z:}', "");;
-    Expect(1, 125142, '\p{Canonical_Combining_Class=below}', "");
-    Expect(0, 125142, '\p{^Canonical_Combining_Class=below}', "");
-    Expect(0, 125142, '\P{Canonical_Combining_Class=below}', "");
-    Expect(1, 125142, '\P{^Canonical_Combining_Class=below}', "");
-    Expect(0, 125143, '\p{Canonical_Combining_Class=below}', "");
-    Expect(1, 125143, '\p{^Canonical_Combining_Class=below}', "");
-    Expect(1, 125143, '\P{Canonical_Combining_Class=below}', "");
-    Expect(0, 125143, '\P{^Canonical_Combining_Class=below}', "");
+    Expect(1, 125142, '\p{Canonical_Combining_Class:   below}', "");
+    Expect(0, 125142, '\p{^Canonical_Combining_Class:   below}', "");
+    Expect(0, 125142, '\P{Canonical_Combining_Class:   below}', "");
+    Expect(1, 125142, '\P{^Canonical_Combining_Class:   below}', "");
+    Expect(0, 125143, '\p{Canonical_Combining_Class:   below}', "");
+    Expect(1, 125143, '\p{^Canonical_Combining_Class:   below}', "");
+    Expect(1, 125143, '\P{Canonical_Combining_Class:   below}', "");
+    Expect(0, 125143, '\P{^Canonical_Combining_Class:   below}', "");
     Expect(1, 125142, '\p{Canonical_Combining_Class=:\Abelow\z:}', "");;
     Expect(0, 125143, '\p{Canonical_Combining_Class=:\Abelow\z:}', "");;
-    Expect(1, 125142, '\p{Canonical_Combining_Class=__Below}', "");
-    Expect(0, 125142, '\p{^Canonical_Combining_Class=__Below}', "");
-    Expect(0, 125142, '\P{Canonical_Combining_Class=__Below}', "");
-    Expect(1, 125142, '\P{^Canonical_Combining_Class=__Below}', "");
-    Expect(0, 125143, '\p{Canonical_Combining_Class=__Below}', "");
-    Expect(1, 125143, '\p{^Canonical_Combining_Class=__Below}', "");
-    Expect(1, 125143, '\P{Canonical_Combining_Class=__Below}', "");
-    Expect(0, 125143, '\P{^Canonical_Combining_Class=__Below}', "");
-    Error('\p{Ccc=:=B}');
-    Error('\P{Ccc=:=B}');
+    Expect(1, 125142, '\p{Canonical_Combining_Class: 	_Below}', "");
+    Expect(0, 125142, '\p{^Canonical_Combining_Class: 	_Below}', "");
+    Expect(0, 125142, '\P{Canonical_Combining_Class: 	_Below}', "");
+    Expect(1, 125142, '\P{^Canonical_Combining_Class: 	_Below}', "");
+    Expect(0, 125143, '\p{Canonical_Combining_Class: 	_Below}', "");
+    Expect(1, 125143, '\p{^Canonical_Combining_Class: 	_Below}', "");
+    Expect(1, 125143, '\P{Canonical_Combining_Class: 	_Below}', "");
+    Expect(0, 125143, '\P{^Canonical_Combining_Class: 	_Below}', "");
+    Error('\p{Ccc=/a/_ B}');
+    Error('\P{Ccc=/a/_ B}');
     Expect(1, 125142, '\p{Ccc=:\AB\z:}', "");;
     Expect(0, 125143, '\p{Ccc=:\AB\z:}', "");;
     Expect(1, 125142, '\p{Ccc=b}', "");
@@ -30258,66 +30834,66 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125143, '\P{^Ccc=b}', "");
     Expect(1, 125142, '\p{Ccc=:\Ab\z:}', "");;
     Expect(0, 125143, '\p{Ccc=:\Ab\z:}', "");;
-    Expect(1, 125142, '\p{Ccc=_	B}', "");
-    Expect(0, 125142, '\p{^Ccc=_	B}', "");
-    Expect(0, 125142, '\P{Ccc=_	B}', "");
-    Expect(1, 125142, '\P{^Ccc=_	B}', "");
-    Expect(0, 125143, '\p{Ccc=_	B}', "");
-    Expect(1, 125143, '\p{^Ccc=_	B}', "");
-    Expect(1, 125143, '\P{Ccc=_	B}', "");
-    Expect(0, 125143, '\P{^Ccc=_	B}', "");
-    Error('\p{Is_Canonical_Combining_Class=:= _00000000220}');
-    Error('\P{Is_Canonical_Combining_Class=:= _00000000220}');
-    Expect(1, 125142, '\p{Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(0, 125142, '\p{^Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(0, 125142, '\P{Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(1, 125142, '\P{^Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(0, 125143, '\p{Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(1, 125143, '\p{^Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(1, 125143, '\P{Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Expect(0, 125143, '\P{^Is_Canonical_Combining_Class:	00_00_00_220}', "");
-    Error('\p{Is_Ccc: -_BELOW:=}');
-    Error('\P{Is_Ccc: -_BELOW:=}');
-    Expect(1, 125142, '\p{Is_Ccc: below}', "");
-    Expect(0, 125142, '\p{^Is_Ccc: below}', "");
-    Expect(0, 125142, '\P{Is_Ccc: below}', "");
-    Expect(1, 125142, '\P{^Is_Ccc: below}', "");
-    Expect(0, 125143, '\p{Is_Ccc: below}', "");
-    Expect(1, 125143, '\p{^Is_Ccc: below}', "");
-    Expect(1, 125143, '\P{Is_Ccc: below}', "");
-    Expect(0, 125143, '\P{^Is_Ccc: below}', "");
-    Expect(1, 125142, '\p{Is_Ccc=		Below}', "");
-    Expect(0, 125142, '\p{^Is_Ccc=		Below}', "");
-    Expect(0, 125142, '\P{Is_Ccc=		Below}', "");
-    Expect(1, 125142, '\P{^Is_Ccc=		Below}', "");
-    Expect(0, 125143, '\p{Is_Ccc=		Below}', "");
-    Expect(1, 125143, '\p{^Is_Ccc=		Below}', "");
-    Expect(1, 125143, '\P{Is_Ccc=		Below}', "");
-    Expect(0, 125143, '\P{^Is_Ccc=		Below}', "");
-    Error('\p{Canonical_Combining_Class=_ Below_Left/a/}');
-    Error('\P{Canonical_Combining_Class=_ Below_Left/a/}');
+    Expect(1, 125142, '\p{Ccc: -_B}', "");
+    Expect(0, 125142, '\p{^Ccc: -_B}', "");
+    Expect(0, 125142, '\P{Ccc: -_B}', "");
+    Expect(1, 125142, '\P{^Ccc: -_B}', "");
+    Expect(0, 125143, '\p{Ccc: -_B}', "");
+    Expect(1, 125143, '\p{^Ccc: -_B}', "");
+    Expect(1, 125143, '\P{Ccc: -_B}', "");
+    Expect(0, 125143, '\P{^Ccc: -_B}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/ +000220}');
+    Error('\P{Is_Canonical_Combining_Class=/a/ +000220}');
+    Expect(1, 125142, '\p{Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(0, 125142, '\p{^Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(0, 125142, '\P{Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(1, 125142, '\P{^Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(0, 125143, '\p{Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(1, 125143, '\p{^Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(1, 125143, '\P{Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Expect(0, 125143, '\P{^Is_Canonical_Combining_Class: 0_0_0_0_0_0_000220}', "");
+    Error('\p{Is_Ccc=_	below:=}');
+    Error('\P{Is_Ccc=_	below:=}');
+    Expect(1, 125142, '\p{Is_Ccc=below}', "");
+    Expect(0, 125142, '\p{^Is_Ccc=below}', "");
+    Expect(0, 125142, '\P{Is_Ccc=below}', "");
+    Expect(1, 125142, '\P{^Is_Ccc=below}', "");
+    Expect(0, 125143, '\p{Is_Ccc=below}', "");
+    Expect(1, 125143, '\p{^Is_Ccc=below}', "");
+    Expect(1, 125143, '\P{Is_Ccc=below}', "");
+    Expect(0, 125143, '\P{^Is_Ccc=below}', "");
+    Expect(1, 125142, '\p{Is_Ccc=	Below}', "");
+    Expect(0, 125142, '\p{^Is_Ccc=	Below}', "");
+    Expect(0, 125142, '\P{Is_Ccc=	Below}', "");
+    Expect(1, 125142, '\P{^Is_Ccc=	Below}', "");
+    Expect(0, 125143, '\p{Is_Ccc=	Below}', "");
+    Expect(1, 125143, '\p{^Is_Ccc=	Below}', "");
+    Expect(1, 125143, '\P{Is_Ccc=	Below}', "");
+    Expect(0, 125143, '\P{^Is_Ccc=	Below}', "");
+    Error('\p{Canonical_Combining_Class=:= -below_Left}');
+    Error('\P{Canonical_Combining_Class=:= -below_Left}');
     Expect(1, 12330, '\p{Canonical_Combining_Class=:\ABelow_Left\z:}', "");;
     Expect(0, 12331, '\p{Canonical_Combining_Class=:\ABelow_Left\z:}', "");;
-    Expect(1, 12330, '\p{Canonical_Combining_Class:belowleft}', "");
-    Expect(0, 12330, '\p{^Canonical_Combining_Class:belowleft}', "");
-    Expect(0, 12330, '\P{Canonical_Combining_Class:belowleft}', "");
-    Expect(1, 12330, '\P{^Canonical_Combining_Class:belowleft}', "");
-    Expect(0, 12331, '\p{Canonical_Combining_Class:belowleft}', "");
-    Expect(1, 12331, '\p{^Canonical_Combining_Class:belowleft}', "");
-    Expect(1, 12331, '\P{Canonical_Combining_Class:belowleft}', "");
-    Expect(0, 12331, '\P{^Canonical_Combining_Class:belowleft}', "");
+    Expect(1, 12330, '\p{Canonical_Combining_Class=belowleft}', "");
+    Expect(0, 12330, '\p{^Canonical_Combining_Class=belowleft}', "");
+    Expect(0, 12330, '\P{Canonical_Combining_Class=belowleft}', "");
+    Expect(1, 12330, '\P{^Canonical_Combining_Class=belowleft}', "");
+    Expect(0, 12331, '\p{Canonical_Combining_Class=belowleft}', "");
+    Expect(1, 12331, '\p{^Canonical_Combining_Class=belowleft}', "");
+    Expect(1, 12331, '\P{Canonical_Combining_Class=belowleft}', "");
+    Expect(0, 12331, '\P{^Canonical_Combining_Class=belowleft}', "");
     Expect(1, 12330, '\p{Canonical_Combining_Class=:\Abelowleft\z:}', "");;
     Expect(0, 12331, '\p{Canonical_Combining_Class=:\Abelowleft\z:}', "");;
-    Expect(1, 12330, '\p{Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(0, 12330, '\p{^Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(0, 12330, '\P{Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(1, 12330, '\P{^Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(0, 12331, '\p{Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(1, 12331, '\p{^Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(1, 12331, '\P{Canonical_Combining_Class=-BELOW_Left}', "");
-    Expect(0, 12331, '\P{^Canonical_Combining_Class=-BELOW_Left}', "");
-    Error('\p{Ccc=/a/-BL}');
-    Error('\P{Ccc=/a/-BL}');
+    Expect(1, 12330, '\p{Canonical_Combining_Class=_Below_left}', "");
+    Expect(0, 12330, '\p{^Canonical_Combining_Class=_Below_left}', "");
+    Expect(0, 12330, '\P{Canonical_Combining_Class=_Below_left}', "");
+    Expect(1, 12330, '\P{^Canonical_Combining_Class=_Below_left}', "");
+    Expect(0, 12331, '\p{Canonical_Combining_Class=_Below_left}', "");
+    Expect(1, 12331, '\p{^Canonical_Combining_Class=_Below_left}', "");
+    Expect(1, 12331, '\P{Canonical_Combining_Class=_Below_left}', "");
+    Expect(0, 12331, '\P{^Canonical_Combining_Class=_Below_left}', "");
+    Error('\p{Ccc=-	BL/a/}');
+    Error('\P{Ccc=-	BL/a/}');
     Expect(1, 12330, '\p{Ccc=:\ABL\z:}', "");;
     Expect(0, 12331, '\p{Ccc=:\ABL\z:}', "");;
     Expect(1, 12330, '\p{Ccc=bl}', "");
@@ -30330,26 +30906,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12331, '\P{^Ccc=bl}', "");
     Expect(1, 12330, '\p{Ccc=:\Abl\z:}', "");;
     Expect(0, 12331, '\p{Ccc=:\Abl\z:}', "");;
-    Expect(1, 12330, '\p{Ccc= -BL}', "");
-    Expect(0, 12330, '\p{^Ccc= -BL}', "");
-    Expect(0, 12330, '\P{Ccc= -BL}', "");
-    Expect(1, 12330, '\P{^Ccc= -BL}', "");
-    Expect(0, 12331, '\p{Ccc= -BL}', "");
-    Expect(1, 12331, '\p{^Ccc= -BL}', "");
-    Expect(1, 12331, '\P{Ccc= -BL}', "");
-    Expect(0, 12331, '\P{^Ccc= -BL}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=00218}');
-    Error('\P{Is_Canonical_Combining_Class=:=00218}');
-    Expect(1, 12330, '\p{Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(0, 12330, '\p{^Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(0, 12330, '\P{Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(1, 12330, '\P{^Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(0, 12331, '\p{Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(1, 12331, '\p{^Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(1, 12331, '\P{Is_Canonical_Combining_Class=000000021_8}', "");
-    Expect(0, 12331, '\P{^Is_Canonical_Combining_Class=000000021_8}', "");
-    Error('\p{Is_Ccc:    Below_LEFT:=}');
-    Error('\P{Is_Ccc:    Below_LEFT:=}');
+    Expect(1, 12330, '\p{Ccc= _BL}', "");
+    Expect(0, 12330, '\p{^Ccc= _BL}', "");
+    Expect(0, 12330, '\P{Ccc= _BL}', "");
+    Expect(1, 12330, '\P{^Ccc= _BL}', "");
+    Expect(0, 12331, '\p{Ccc= _BL}', "");
+    Expect(1, 12331, '\p{^Ccc= _BL}', "");
+    Expect(1, 12331, '\P{Ccc= _BL}', "");
+    Expect(0, 12331, '\P{^Ccc= _BL}', "");
+    Error('\p{Is_Canonical_Combining_Class=_:=+0000218}');
+    Error('\P{Is_Canonical_Combining_Class=_:=+0000218}');
+    Expect(1, 12330, '\p{Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(0, 12330, '\p{^Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(0, 12330, '\P{Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(1, 12330, '\P{^Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(0, 12331, '\p{Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(1, 12331, '\p{^Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(1, 12331, '\P{Is_Canonical_Combining_Class=0000000218}', "");
+    Expect(0, 12331, '\P{^Is_Canonical_Combining_Class=0000000218}', "");
+    Error('\p{Is_Ccc=:=BELOW_Left}');
+    Error('\P{Is_Ccc=:=BELOW_Left}');
     Expect(1, 12330, '\p{Is_Ccc=belowleft}', "");
     Expect(0, 12330, '\p{^Is_Ccc=belowleft}', "");
     Expect(0, 12330, '\P{Is_Ccc=belowleft}', "");
@@ -30358,88 +30934,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12331, '\p{^Is_Ccc=belowleft}', "");
     Expect(1, 12331, '\P{Is_Ccc=belowleft}', "");
     Expect(0, 12331, '\P{^Is_Ccc=belowleft}', "");
-    Expect(1, 12330, '\p{Is_Ccc=--BELOW_Left}', "");
-    Expect(0, 12330, '\p{^Is_Ccc=--BELOW_Left}', "");
-    Expect(0, 12330, '\P{Is_Ccc=--BELOW_Left}', "");
-    Expect(1, 12330, '\P{^Is_Ccc=--BELOW_Left}', "");
-    Expect(0, 12331, '\p{Is_Ccc=--BELOW_Left}', "");
-    Expect(1, 12331, '\p{^Is_Ccc=--BELOW_Left}', "");
-    Expect(1, 12331, '\P{Is_Ccc=--BELOW_Left}', "");
-    Expect(0, 12331, '\P{^Is_Ccc=--BELOW_Left}', "");
-    Error('\p{Canonical_Combining_Class=/a/  Below_RIGHT}');
-    Error('\P{Canonical_Combining_Class=/a/  Below_RIGHT}');
+    Expect(1, 12330, '\p{Is_Ccc:		Below_Left}', "");
+    Expect(0, 12330, '\p{^Is_Ccc:		Below_Left}', "");
+    Expect(0, 12330, '\P{Is_Ccc:		Below_Left}', "");
+    Expect(1, 12330, '\P{^Is_Ccc:		Below_Left}', "");
+    Expect(0, 12331, '\p{Is_Ccc:		Below_Left}', "");
+    Expect(1, 12331, '\p{^Is_Ccc:		Below_Left}', "");
+    Expect(1, 12331, '\P{Is_Ccc:		Below_Left}', "");
+    Expect(0, 12331, '\P{^Is_Ccc:		Below_Left}', "");
+    Error('\p{Canonical_Combining_Class=/a/Below_Right}');
+    Error('\P{Canonical_Combining_Class=/a/Below_Right}');
     Expect(1, 12333, '\p{Canonical_Combining_Class=:\ABelow_Right\z:}', "");;
     Expect(0, 12334, '\p{Canonical_Combining_Class=:\ABelow_Right\z:}', "");;
-    Expect(1, 12333, '\p{Canonical_Combining_Class:belowright}', "");
-    Expect(0, 12333, '\p{^Canonical_Combining_Class:belowright}', "");
-    Expect(0, 12333, '\P{Canonical_Combining_Class:belowright}', "");
-    Expect(1, 12333, '\P{^Canonical_Combining_Class:belowright}', "");
-    Expect(0, 12334, '\p{Canonical_Combining_Class:belowright}', "");
-    Expect(1, 12334, '\p{^Canonical_Combining_Class:belowright}', "");
-    Expect(1, 12334, '\P{Canonical_Combining_Class:belowright}', "");
-    Expect(0, 12334, '\P{^Canonical_Combining_Class:belowright}', "");
+    Expect(1, 12333, '\p{Canonical_Combining_Class=belowright}', "");
+    Expect(0, 12333, '\p{^Canonical_Combining_Class=belowright}', "");
+    Expect(0, 12333, '\P{Canonical_Combining_Class=belowright}', "");
+    Expect(1, 12333, '\P{^Canonical_Combining_Class=belowright}', "");
+    Expect(0, 12334, '\p{Canonical_Combining_Class=belowright}', "");
+    Expect(1, 12334, '\p{^Canonical_Combining_Class=belowright}', "");
+    Expect(1, 12334, '\P{Canonical_Combining_Class=belowright}', "");
+    Expect(0, 12334, '\P{^Canonical_Combining_Class=belowright}', "");
     Expect(1, 12333, '\p{Canonical_Combining_Class=:\Abelowright\z:}', "");;
     Expect(0, 12334, '\p{Canonical_Combining_Class=:\Abelowright\z:}', "");;
-    Expect(1, 12333, '\p{Canonical_Combining_Class=	below_right}', "");
-    Expect(0, 12333, '\p{^Canonical_Combining_Class=	below_right}', "");
-    Expect(0, 12333, '\P{Canonical_Combining_Class=	below_right}', "");
-    Expect(1, 12333, '\P{^Canonical_Combining_Class=	below_right}', "");
-    Expect(0, 12334, '\p{Canonical_Combining_Class=	below_right}', "");
-    Expect(1, 12334, '\p{^Canonical_Combining_Class=	below_right}', "");
-    Expect(1, 12334, '\P{Canonical_Combining_Class=	below_right}', "");
-    Expect(0, 12334, '\P{^Canonical_Combining_Class=	below_right}', "");
-    Error('\p{Ccc= _BR/a/}');
-    Error('\P{Ccc= _BR/a/}');
+    Expect(1, 12333, '\p{Canonical_Combining_Class= _Below_Right}', "");
+    Expect(0, 12333, '\p{^Canonical_Combining_Class= _Below_Right}', "");
+    Expect(0, 12333, '\P{Canonical_Combining_Class= _Below_Right}', "");
+    Expect(1, 12333, '\P{^Canonical_Combining_Class= _Below_Right}', "");
+    Expect(0, 12334, '\p{Canonical_Combining_Class= _Below_Right}', "");
+    Expect(1, 12334, '\p{^Canonical_Combining_Class= _Below_Right}', "");
+    Expect(1, 12334, '\P{Canonical_Combining_Class= _Below_Right}', "");
+    Expect(0, 12334, '\P{^Canonical_Combining_Class= _Below_Right}', "");
+    Error('\p{Ccc=/a/- BR}');
+    Error('\P{Ccc=/a/- BR}');
     Expect(1, 12333, '\p{Ccc=:\ABR\z:}', "");;
     Expect(0, 12334, '\p{Ccc=:\ABR\z:}', "");;
-    Expect(1, 12333, '\p{Ccc:   br}', "");
-    Expect(0, 12333, '\p{^Ccc:   br}', "");
-    Expect(0, 12333, '\P{Ccc:   br}', "");
-    Expect(1, 12333, '\P{^Ccc:   br}', "");
-    Expect(0, 12334, '\p{Ccc:   br}', "");
-    Expect(1, 12334, '\p{^Ccc:   br}', "");
-    Expect(1, 12334, '\P{Ccc:   br}', "");
-    Expect(0, 12334, '\P{^Ccc:   br}', "");
+    Expect(1, 12333, '\p{Ccc: br}', "");
+    Expect(0, 12333, '\p{^Ccc: br}', "");
+    Expect(0, 12333, '\P{Ccc: br}', "");
+    Expect(1, 12333, '\P{^Ccc: br}', "");
+    Expect(0, 12334, '\p{Ccc: br}', "");
+    Expect(1, 12334, '\p{^Ccc: br}', "");
+    Expect(1, 12334, '\P{Ccc: br}', "");
+    Expect(0, 12334, '\P{^Ccc: br}', "");
     Expect(1, 12333, '\p{Ccc=:\Abr\z:}', "");;
     Expect(0, 12334, '\p{Ccc=:\Abr\z:}', "");;
-    Expect(1, 12333, '\p{Ccc=	 br}', "");
-    Expect(0, 12333, '\p{^Ccc=	 br}', "");
-    Expect(0, 12333, '\P{Ccc=	 br}', "");
-    Expect(1, 12333, '\P{^Ccc=	 br}', "");
-    Expect(0, 12334, '\p{Ccc=	 br}', "");
-    Expect(1, 12334, '\p{^Ccc=	 br}', "");
-    Expect(1, 12334, '\P{Ccc=	 br}', "");
-    Expect(0, 12334, '\P{^Ccc=	 br}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=-0222}');
-    Error('\P{Is_Canonical_Combining_Class=:=-0222}');
-    Expect(1, 12333, '\p{Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(0, 12333, '\p{^Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(0, 12333, '\P{Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(1, 12333, '\P{^Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(0, 12334, '\p{Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(1, 12334, '\p{^Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(1, 12334, '\P{Is_Canonical_Combining_Class=0000000222}', "");
-    Expect(0, 12334, '\P{^Is_Canonical_Combining_Class=0000000222}', "");
-    Error('\p{Is_Ccc=:=		BELOW_Right}');
-    Error('\P{Is_Ccc=:=		BELOW_Right}');
-    Expect(1, 12333, '\p{Is_Ccc=belowright}', "");
-    Expect(0, 12333, '\p{^Is_Ccc=belowright}', "");
-    Expect(0, 12333, '\P{Is_Ccc=belowright}', "");
-    Expect(1, 12333, '\P{^Is_Ccc=belowright}', "");
-    Expect(0, 12334, '\p{Is_Ccc=belowright}', "");
-    Expect(1, 12334, '\p{^Is_Ccc=belowright}', "");
-    Expect(1, 12334, '\P{Is_Ccc=belowright}', "");
-    Expect(0, 12334, '\P{^Is_Ccc=belowright}', "");
-    Expect(1, 12333, '\p{Is_Ccc=BELOW_RIGHT}', "");
-    Expect(0, 12333, '\p{^Is_Ccc=BELOW_RIGHT}', "");
-    Expect(0, 12333, '\P{Is_Ccc=BELOW_RIGHT}', "");
-    Expect(1, 12333, '\P{^Is_Ccc=BELOW_RIGHT}', "");
-    Expect(0, 12334, '\p{Is_Ccc=BELOW_RIGHT}', "");
-    Expect(1, 12334, '\p{^Is_Ccc=BELOW_RIGHT}', "");
-    Expect(1, 12334, '\P{Is_Ccc=BELOW_RIGHT}', "");
-    Expect(0, 12334, '\P{^Is_Ccc=BELOW_RIGHT}', "");
-    Error('\p{Canonical_Combining_Class= _CCC10:=}');
-    Error('\P{Canonical_Combining_Class= _CCC10:=}');
+    Expect(1, 12333, '\p{Ccc=-br}', "");
+    Expect(0, 12333, '\p{^Ccc=-br}', "");
+    Expect(0, 12333, '\P{Ccc=-br}', "");
+    Expect(1, 12333, '\P{^Ccc=-br}', "");
+    Expect(0, 12334, '\p{Ccc=-br}', "");
+    Expect(1, 12334, '\p{^Ccc=-br}', "");
+    Expect(1, 12334, '\P{Ccc=-br}', "");
+    Expect(0, 12334, '\P{^Ccc=-br}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=	_+222}');
+    Error('\P{Is_Canonical_Combining_Class=:=	_+222}');
+    Expect(1, 12333, '\p{Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(0, 12333, '\p{^Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(0, 12333, '\P{Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(1, 12333, '\P{^Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(0, 12334, '\p{Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(1, 12334, '\p{^Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(1, 12334, '\P{Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Expect(0, 12334, '\P{^Is_Canonical_Combining_Class=0_0_2_22}', "");
+    Error('\p{Is_Ccc=-Below_RIGHT:=}');
+    Error('\P{Is_Ccc=-Below_RIGHT:=}');
+    Expect(1, 12333, '\p{Is_Ccc:belowright}', "");
+    Expect(0, 12333, '\p{^Is_Ccc:belowright}', "");
+    Expect(0, 12333, '\P{Is_Ccc:belowright}', "");
+    Expect(1, 12333, '\P{^Is_Ccc:belowright}', "");
+    Expect(0, 12334, '\p{Is_Ccc:belowright}', "");
+    Expect(1, 12334, '\p{^Is_Ccc:belowright}', "");
+    Expect(1, 12334, '\P{Is_Ccc:belowright}', "");
+    Expect(0, 12334, '\P{^Is_Ccc:belowright}', "");
+    Expect(1, 12333, '\p{Is_Ccc=__Below_Right}', "");
+    Expect(0, 12333, '\p{^Is_Ccc=__Below_Right}', "");
+    Expect(0, 12333, '\P{Is_Ccc=__Below_Right}', "");
+    Expect(1, 12333, '\P{^Is_Ccc=__Below_Right}', "");
+    Expect(0, 12334, '\p{Is_Ccc=__Below_Right}', "");
+    Expect(1, 12334, '\p{^Is_Ccc=__Below_Right}', "");
+    Expect(1, 12334, '\P{Is_Ccc=__Below_Right}', "");
+    Expect(0, 12334, '\P{^Is_Ccc=__Below_Right}', "");
+    Error('\p{Canonical_Combining_Class=/a/CCC10}');
+    Error('\P{Canonical_Combining_Class=/a/CCC10}');
     Expect(1, 1456, '\p{Canonical_Combining_Class=:\ACCC10\z:}', "");;
     Expect(0, 1457, '\p{Canonical_Combining_Class=:\ACCC10\z:}', "");;
     Expect(1, 1456, '\p{Canonical_Combining_Class=ccc10}', "");
@@ -30452,28 +31028,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1457, '\P{^Canonical_Combining_Class=ccc10}', "");
     Expect(1, 1456, '\p{Canonical_Combining_Class=:\Accc10\z:}', "");;
     Expect(0, 1457, '\p{Canonical_Combining_Class=:\Accc10\z:}', "");;
-    Expect(1, 1456, '\p{Canonical_Combining_Class=_CCC10}', "");
-    Expect(0, 1456, '\p{^Canonical_Combining_Class=_CCC10}', "");
-    Expect(0, 1456, '\P{Canonical_Combining_Class=_CCC10}', "");
-    Expect(1, 1456, '\P{^Canonical_Combining_Class=_CCC10}', "");
-    Expect(0, 1457, '\p{Canonical_Combining_Class=_CCC10}', "");
-    Expect(1, 1457, '\p{^Canonical_Combining_Class=_CCC10}', "");
-    Expect(1, 1457, '\P{Canonical_Combining_Class=_CCC10}', "");
-    Expect(0, 1457, '\P{^Canonical_Combining_Class=_CCC10}', "");
-    Error('\p{Ccc=/a/ 010}');
-    Error('\P{Ccc=/a/ 010}');
+    Expect(1, 1456, '\p{Canonical_Combining_Class=- CCC10}', "");
+    Expect(0, 1456, '\p{^Canonical_Combining_Class=- CCC10}', "");
+    Expect(0, 1456, '\P{Canonical_Combining_Class=- CCC10}', "");
+    Expect(1, 1456, '\P{^Canonical_Combining_Class=- CCC10}', "");
+    Expect(0, 1457, '\p{Canonical_Combining_Class=- CCC10}', "");
+    Expect(1, 1457, '\p{^Canonical_Combining_Class=- CCC10}', "");
+    Expect(1, 1457, '\P{Canonical_Combining_Class=- CCC10}', "");
+    Expect(0, 1457, '\P{^Canonical_Combining_Class=- CCC10}', "");
+    Error('\p{Ccc=/a/	_0_0_0_0_0010}');
+    Error('\P{Ccc=/a/	_0_0_0_0_0010}');
     Expect(1, 1456, '\p{Ccc=:\A10\z:}', "");;
     Expect(0, 1457, '\p{Ccc=:\A10\z:}', "");;
-    Expect(1, 1456, '\p{Ccc=+00000000010}', "");
-    Expect(0, 1456, '\p{^Ccc=+00000000010}', "");
-    Expect(0, 1456, '\P{Ccc=+00000000010}', "");
-    Expect(1, 1456, '\P{^Ccc=+00000000010}', "");
-    Expect(0, 1457, '\p{Ccc=+00000000010}', "");
-    Expect(1, 1457, '\p{^Ccc=+00000000010}', "");
-    Expect(1, 1457, '\P{Ccc=+00000000010}', "");
-    Expect(0, 1457, '\P{^Ccc=+00000000010}', "");
-    Error('\p{Is_Canonical_Combining_Class=_ CCC10:=}');
-    Error('\P{Is_Canonical_Combining_Class=_ CCC10:=}');
+    Expect(1, 1456, '\p{Ccc=010}', "");
+    Expect(0, 1456, '\p{^Ccc=010}', "");
+    Expect(0, 1456, '\P{Ccc=010}', "");
+    Expect(1, 1456, '\P{^Ccc=010}', "");
+    Expect(0, 1457, '\p{Ccc=010}', "");
+    Expect(1, 1457, '\p{^Ccc=010}', "");
+    Expect(1, 1457, '\P{Ccc=010}', "");
+    Expect(0, 1457, '\P{^Ccc=010}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/__CCC10}');
+    Error('\P{Is_Canonical_Combining_Class=/a/__CCC10}');
     Expect(1, 1456, '\p{Is_Canonical_Combining_Class=ccc10}', "");
     Expect(0, 1456, '\p{^Is_Canonical_Combining_Class=ccc10}', "");
     Expect(0, 1456, '\P{Is_Canonical_Combining_Class=ccc10}', "");
@@ -30482,60 +31058,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1457, '\p{^Is_Canonical_Combining_Class=ccc10}', "");
     Expect(1, 1457, '\P{Is_Canonical_Combining_Class=ccc10}', "");
     Expect(0, 1457, '\P{^Is_Canonical_Combining_Class=ccc10}', "");
-    Expect(1, 1456, '\p{Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(0, 1456, '\p{^Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(0, 1456, '\P{Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(1, 1456, '\P{^Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(0, 1457, '\p{Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(1, 1457, '\p{^Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(1, 1457, '\P{Is_Canonical_Combining_Class:	_CCC10}', "");
-    Expect(0, 1457, '\P{^Is_Canonical_Combining_Class:	_CCC10}', "");
-    Error('\p{Is_Ccc=:=0000010}');
-    Error('\P{Is_Ccc=:=0000010}');
-    Expect(1, 1456, '\p{Is_Ccc:	10}', "");
-    Expect(0, 1456, '\p{^Is_Ccc:	10}', "");
-    Expect(0, 1456, '\P{Is_Ccc:	10}', "");
-    Expect(1, 1456, '\P{^Is_Ccc:	10}', "");
-    Expect(0, 1457, '\p{Is_Ccc:	10}', "");
-    Expect(1, 1457, '\p{^Is_Ccc:	10}', "");
-    Expect(1, 1457, '\P{Is_Ccc:	10}', "");
-    Expect(0, 1457, '\P{^Is_Ccc:	10}', "");
-    Error('\p{Canonical_Combining_Class=- CCC103:=}');
-    Error('\P{Canonical_Combining_Class=- CCC103:=}');
+    Expect(1, 1456, '\p{Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(0, 1456, '\p{^Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(0, 1456, '\P{Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(1, 1456, '\P{^Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(0, 1457, '\p{Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(1, 1457, '\p{^Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(1, 1457, '\P{Is_Canonical_Combining_Class:   -CCC10}', "");
+    Expect(0, 1457, '\P{^Is_Canonical_Combining_Class:   -CCC10}', "");
+    Error('\p{Is_Ccc=/a/_ 0000001_0}');
+    Error('\P{Is_Ccc=/a/_ 0000001_0}');
+    Expect(1, 1456, '\p{Is_Ccc=+00000010}', "");
+    Expect(0, 1456, '\p{^Is_Ccc=+00000010}', "");
+    Expect(0, 1456, '\P{Is_Ccc=+00000010}', "");
+    Expect(1, 1456, '\P{^Is_Ccc=+00000010}', "");
+    Expect(0, 1457, '\p{Is_Ccc=+00000010}', "");
+    Expect(1, 1457, '\p{^Is_Ccc=+00000010}', "");
+    Expect(1, 1457, '\P{Is_Ccc=+00000010}', "");
+    Expect(0, 1457, '\P{^Is_Ccc=+00000010}', "");
+    Error('\p{Canonical_Combining_Class=:=ccc103}');
+    Error('\P{Canonical_Combining_Class=:=ccc103}');
     Expect(1, 3641, '\p{Canonical_Combining_Class=:\ACCC103\z:}', "");;
     Expect(0, 3642, '\p{Canonical_Combining_Class=:\ACCC103\z:}', "");;
-    Expect(1, 3641, '\p{Canonical_Combining_Class=ccc103}', "");
-    Expect(0, 3641, '\p{^Canonical_Combining_Class=ccc103}', "");
-    Expect(0, 3641, '\P{Canonical_Combining_Class=ccc103}', "");
-    Expect(1, 3641, '\P{^Canonical_Combining_Class=ccc103}', "");
-    Expect(0, 3642, '\p{Canonical_Combining_Class=ccc103}', "");
-    Expect(1, 3642, '\p{^Canonical_Combining_Class=ccc103}', "");
-    Expect(1, 3642, '\P{Canonical_Combining_Class=ccc103}', "");
-    Expect(0, 3642, '\P{^Canonical_Combining_Class=ccc103}', "");
+    Expect(1, 3641, '\p{Canonical_Combining_Class:   ccc103}', "");
+    Expect(0, 3641, '\p{^Canonical_Combining_Class:   ccc103}', "");
+    Expect(0, 3641, '\P{Canonical_Combining_Class:   ccc103}', "");
+    Expect(1, 3641, '\P{^Canonical_Combining_Class:   ccc103}', "");
+    Expect(0, 3642, '\p{Canonical_Combining_Class:   ccc103}', "");
+    Expect(1, 3642, '\p{^Canonical_Combining_Class:   ccc103}', "");
+    Expect(1, 3642, '\P{Canonical_Combining_Class:   ccc103}', "");
+    Expect(0, 3642, '\P{^Canonical_Combining_Class:   ccc103}', "");
     Expect(1, 3641, '\p{Canonical_Combining_Class=:\Accc103\z:}', "");;
     Expect(0, 3642, '\p{Canonical_Combining_Class=:\Accc103\z:}', "");;
-    Expect(1, 3641, '\p{Canonical_Combining_Class=-	CCC103}', "");
-    Expect(0, 3641, '\p{^Canonical_Combining_Class=-	CCC103}', "");
-    Expect(0, 3641, '\P{Canonical_Combining_Class=-	CCC103}', "");
-    Expect(1, 3641, '\P{^Canonical_Combining_Class=-	CCC103}', "");
-    Expect(0, 3642, '\p{Canonical_Combining_Class=-	CCC103}', "");
-    Expect(1, 3642, '\p{^Canonical_Combining_Class=-	CCC103}', "");
-    Expect(1, 3642, '\P{Canonical_Combining_Class=-	CCC103}', "");
-    Expect(0, 3642, '\P{^Canonical_Combining_Class=-	CCC103}', "");
-    Error('\p{Ccc=_	0_0_0_0_0_0_0_0_1_03/a/}');
-    Error('\P{Ccc=_	0_0_0_0_0_0_0_0_1_03/a/}');
+    Expect(1, 3641, '\p{Canonical_Combining_Class=__CCC103}', "");
+    Expect(0, 3641, '\p{^Canonical_Combining_Class=__CCC103}', "");
+    Expect(0, 3641, '\P{Canonical_Combining_Class=__CCC103}', "");
+    Expect(1, 3641, '\P{^Canonical_Combining_Class=__CCC103}', "");
+    Expect(0, 3642, '\p{Canonical_Combining_Class=__CCC103}', "");
+    Expect(1, 3642, '\p{^Canonical_Combining_Class=__CCC103}', "");
+    Expect(1, 3642, '\P{Canonical_Combining_Class=__CCC103}', "");
+    Expect(0, 3642, '\P{^Canonical_Combining_Class=__CCC103}', "");
+    Error('\p{Ccc=		0010_3:=}');
+    Error('\P{Ccc=		0010_3:=}');
     Expect(1, 3641, '\p{Ccc=:\A103\z:}', "");;
     Expect(0, 3642, '\p{Ccc=:\A103\z:}', "");;
-    Expect(1, 3641, '\p{Ccc=000_010_3}', "");
-    Expect(0, 3641, '\p{^Ccc=000_010_3}', "");
-    Expect(0, 3641, '\P{Ccc=000_010_3}', "");
-    Expect(1, 3641, '\P{^Ccc=000_010_3}', "");
-    Expect(0, 3642, '\p{Ccc=000_010_3}', "");
-    Expect(1, 3642, '\p{^Ccc=000_010_3}', "");
-    Expect(1, 3642, '\P{Ccc=000_010_3}', "");
-    Expect(0, 3642, '\P{^Ccc=000_010_3}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=	CCC103}');
-    Error('\P{Is_Canonical_Combining_Class=:=	CCC103}');
+    Expect(1, 3641, '\p{Ccc=000000103}', "");
+    Expect(0, 3641, '\p{^Ccc=000000103}', "");
+    Expect(0, 3641, '\P{Ccc=000000103}', "");
+    Expect(1, 3641, '\P{^Ccc=000000103}', "");
+    Expect(0, 3642, '\p{Ccc=000000103}', "");
+    Expect(1, 3642, '\p{^Ccc=000000103}', "");
+    Expect(1, 3642, '\P{Ccc=000000103}', "");
+    Expect(0, 3642, '\P{^Ccc=000000103}', "");
+    Error('\p{Is_Canonical_Combining_Class=	/a/CCC103}');
+    Error('\P{Is_Canonical_Combining_Class=	/a/CCC103}');
     Expect(1, 3641, '\p{Is_Canonical_Combining_Class=ccc103}', "");
     Expect(0, 3641, '\p{^Is_Canonical_Combining_Class=ccc103}', "");
     Expect(0, 3641, '\P{Is_Canonical_Combining_Class=ccc103}', "");
@@ -30544,26 +31120,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3642, '\p{^Is_Canonical_Combining_Class=ccc103}', "");
     Expect(1, 3642, '\P{Is_Canonical_Combining_Class=ccc103}', "");
     Expect(0, 3642, '\P{^Is_Canonical_Combining_Class=ccc103}', "");
-    Expect(1, 3641, '\p{Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(0, 3641, '\p{^Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(0, 3641, '\P{Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(1, 3641, '\P{^Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(0, 3642, '\p{Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(1, 3642, '\p{^Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(1, 3642, '\P{Is_Canonical_Combining_Class= CCC103}', "");
-    Expect(0, 3642, '\P{^Is_Canonical_Combining_Class= CCC103}', "");
-    Error('\p{Is_Ccc=_/a/0000103}');
-    Error('\P{Is_Ccc=_/a/0000103}');
-    Expect(1, 3641, '\p{Is_Ccc=00000_00010_3}', "");
-    Expect(0, 3641, '\p{^Is_Ccc=00000_00010_3}', "");
-    Expect(0, 3641, '\P{Is_Ccc=00000_00010_3}', "");
-    Expect(1, 3641, '\P{^Is_Ccc=00000_00010_3}', "");
-    Expect(0, 3642, '\p{Is_Ccc=00000_00010_3}', "");
-    Expect(1, 3642, '\p{^Is_Ccc=00000_00010_3}', "");
-    Expect(1, 3642, '\P{Is_Ccc=00000_00010_3}', "");
-    Expect(0, 3642, '\P{^Is_Ccc=00000_00010_3}', "");
-    Error('\p{Canonical_Combining_Class=_ CCC107:=}');
-    Error('\P{Canonical_Combining_Class=_ CCC107:=}');
+    Expect(1, 3641, '\p{Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(0, 3641, '\p{^Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(0, 3641, '\P{Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(1, 3641, '\P{^Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(0, 3642, '\p{Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(1, 3642, '\p{^Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(1, 3642, '\P{Is_Canonical_Combining_Class= -CCC103}', "");
+    Expect(0, 3642, '\P{^Is_Canonical_Combining_Class= -CCC103}', "");
+    Error('\p{Is_Ccc=:=	0010_3}');
+    Error('\P{Is_Ccc=:=	0010_3}');
+    Expect(1, 3641, '\p{Is_Ccc=000000000103}', "");
+    Expect(0, 3641, '\p{^Is_Ccc=000000000103}', "");
+    Expect(0, 3641, '\P{Is_Ccc=000000000103}', "");
+    Expect(1, 3641, '\P{^Is_Ccc=000000000103}', "");
+    Expect(0, 3642, '\p{Is_Ccc=000000000103}', "");
+    Expect(1, 3642, '\p{^Is_Ccc=000000000103}', "");
+    Expect(1, 3642, '\P{Is_Ccc=000000000103}', "");
+    Expect(0, 3642, '\P{^Is_Ccc=000000000103}', "");
+    Error('\p{Canonical_Combining_Class=_:=ccc107}');
+    Error('\P{Canonical_Combining_Class=_:=ccc107}');
     Expect(1, 3659, '\p{Canonical_Combining_Class=:\ACCC107\z:}', "");;
     Expect(0, 3660, '\p{Canonical_Combining_Class=:\ACCC107\z:}', "");;
     Expect(1, 3659, '\p{Canonical_Combining_Class=ccc107}', "");
@@ -30576,28 +31152,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3660, '\P{^Canonical_Combining_Class=ccc107}', "");
     Expect(1, 3659, '\p{Canonical_Combining_Class=:\Accc107\z:}', "");;
     Expect(0, 3660, '\p{Canonical_Combining_Class=:\Accc107\z:}', "");;
-    Expect(1, 3659, '\p{Canonical_Combining_Class= CCC107}', "");
-    Expect(0, 3659, '\p{^Canonical_Combining_Class= CCC107}', "");
-    Expect(0, 3659, '\P{Canonical_Combining_Class= CCC107}', "");
-    Expect(1, 3659, '\P{^Canonical_Combining_Class= CCC107}', "");
-    Expect(0, 3660, '\p{Canonical_Combining_Class= CCC107}', "");
-    Expect(1, 3660, '\p{^Canonical_Combining_Class= CCC107}', "");
-    Expect(1, 3660, '\P{Canonical_Combining_Class= CCC107}', "");
-    Expect(0, 3660, '\P{^Canonical_Combining_Class= CCC107}', "");
-    Error('\p{Ccc=  000000000107/a/}');
-    Error('\P{Ccc=  000000000107/a/}');
+    Expect(1, 3659, '\p{Canonical_Combining_Class=	 CCC107}', "");
+    Expect(0, 3659, '\p{^Canonical_Combining_Class=	 CCC107}', "");
+    Expect(0, 3659, '\P{Canonical_Combining_Class=	 CCC107}', "");
+    Expect(1, 3659, '\P{^Canonical_Combining_Class=	 CCC107}', "");
+    Expect(0, 3660, '\p{Canonical_Combining_Class=	 CCC107}', "");
+    Expect(1, 3660, '\p{^Canonical_Combining_Class=	 CCC107}', "");
+    Expect(1, 3660, '\P{Canonical_Combining_Class=	 CCC107}', "");
+    Expect(0, 3660, '\P{^Canonical_Combining_Class=	 CCC107}', "");
+    Error('\p{Ccc=/a/_+0_0_0_0_1_07}');
+    Error('\P{Ccc=/a/_+0_0_0_0_1_07}');
     Expect(1, 3659, '\p{Ccc=:\A107\z:}', "");;
     Expect(0, 3660, '\p{Ccc=:\A107\z:}', "");;
-    Expect(1, 3659, '\p{Ccc=00107}', "");
-    Expect(0, 3659, '\p{^Ccc=00107}', "");
-    Expect(0, 3659, '\P{Ccc=00107}', "");
-    Expect(1, 3659, '\P{^Ccc=00107}', "");
-    Expect(0, 3660, '\p{Ccc=00107}', "");
-    Expect(1, 3660, '\p{^Ccc=00107}', "");
-    Expect(1, 3660, '\P{Ccc=00107}', "");
-    Expect(0, 3660, '\P{^Ccc=00107}', "");
-    Error('\p{Is_Canonical_Combining_Class=_:=ccc107}');
-    Error('\P{Is_Canonical_Combining_Class=_:=ccc107}');
+    Expect(1, 3659, '\p{Ccc: 0000000107}', "");
+    Expect(0, 3659, '\p{^Ccc: 0000000107}', "");
+    Expect(0, 3659, '\P{Ccc: 0000000107}', "");
+    Expect(1, 3659, '\P{^Ccc: 0000000107}', "");
+    Expect(0, 3660, '\p{Ccc: 0000000107}', "");
+    Expect(1, 3660, '\p{^Ccc: 0000000107}', "");
+    Expect(1, 3660, '\P{Ccc: 0000000107}', "");
+    Expect(0, 3660, '\P{^Ccc: 0000000107}', "");
+    Error('\p{Is_Canonical_Combining_Class=__CCC107/a/}');
+    Error('\P{Is_Canonical_Combining_Class=__CCC107/a/}');
     Expect(1, 3659, '\p{Is_Canonical_Combining_Class=ccc107}', "");
     Expect(0, 3659, '\p{^Is_Canonical_Combining_Class=ccc107}', "");
     Expect(0, 3659, '\P{Is_Canonical_Combining_Class=ccc107}', "");
@@ -30606,26 +31182,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3660, '\p{^Is_Canonical_Combining_Class=ccc107}', "");
     Expect(1, 3660, '\P{Is_Canonical_Combining_Class=ccc107}', "");
     Expect(0, 3660, '\P{^Is_Canonical_Combining_Class=ccc107}', "");
-    Expect(1, 3659, '\p{Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(0, 3659, '\p{^Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(0, 3659, '\P{Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(1, 3659, '\P{^Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(0, 3660, '\p{Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(1, 3660, '\p{^Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(1, 3660, '\P{Is_Canonical_Combining_Class=__CCC107}', "");
-    Expect(0, 3660, '\P{^Is_Canonical_Combining_Class=__CCC107}', "");
-    Error('\p{Is_Ccc=--+00000000107/a/}');
-    Error('\P{Is_Ccc=--+00000000107/a/}');
-    Expect(1, 3659, '\p{Is_Ccc: +0000107}', "");
-    Expect(0, 3659, '\p{^Is_Ccc: +0000107}', "");
-    Expect(0, 3659, '\P{Is_Ccc: +0000107}', "");
-    Expect(1, 3659, '\P{^Is_Ccc: +0000107}', "");
-    Expect(0, 3660, '\p{Is_Ccc: +0000107}', "");
-    Expect(1, 3660, '\p{^Is_Ccc: +0000107}', "");
-    Expect(1, 3660, '\P{Is_Ccc: +0000107}', "");
-    Expect(0, 3660, '\P{^Is_Ccc: +0000107}', "");
-    Error('\p{Canonical_Combining_Class=:=_ccc11}');
-    Error('\P{Canonical_Combining_Class=:=_ccc11}');
+    Expect(1, 3659, '\p{Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(0, 3659, '\p{^Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(0, 3659, '\P{Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(1, 3659, '\P{^Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(0, 3660, '\p{Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(1, 3660, '\p{^Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(1, 3660, '\P{Is_Canonical_Combining_Class=- CCC107}', "");
+    Expect(0, 3660, '\P{^Is_Canonical_Combining_Class=- CCC107}', "");
+    Error('\p{Is_Ccc=/a/+0107}');
+    Error('\P{Is_Ccc=/a/+0107}');
+    Expect(1, 3659, '\p{Is_Ccc=0_0_0_0_0107}', "");
+    Expect(0, 3659, '\p{^Is_Ccc=0_0_0_0_0107}', "");
+    Expect(0, 3659, '\P{Is_Ccc=0_0_0_0_0107}', "");
+    Expect(1, 3659, '\P{^Is_Ccc=0_0_0_0_0107}', "");
+    Expect(0, 3660, '\p{Is_Ccc=0_0_0_0_0107}', "");
+    Expect(1, 3660, '\p{^Is_Ccc=0_0_0_0_0107}', "");
+    Expect(1, 3660, '\P{Is_Ccc=0_0_0_0_0107}', "");
+    Expect(0, 3660, '\P{^Is_Ccc=0_0_0_0_0107}', "");
+    Error('\p{Canonical_Combining_Class=/a/-CCC11}');
+    Error('\P{Canonical_Combining_Class=/a/-CCC11}');
     Expect(1, 1457, '\p{Canonical_Combining_Class=:\ACCC11\z:}', "");;
     Expect(0, 1458, '\p{Canonical_Combining_Class=:\ACCC11\z:}', "");;
     Expect(1, 1457, '\p{Canonical_Combining_Class=ccc11}', "");
@@ -30638,56 +31214,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1458, '\P{^Canonical_Combining_Class=ccc11}', "");
     Expect(1, 1457, '\p{Canonical_Combining_Class=:\Accc11\z:}', "");;
     Expect(0, 1458, '\p{Canonical_Combining_Class=:\Accc11\z:}', "");;
-    Expect(1, 1457, '\p{Canonical_Combining_Class=  ccc11}', "");
-    Expect(0, 1457, '\p{^Canonical_Combining_Class=  ccc11}', "");
-    Expect(0, 1457, '\P{Canonical_Combining_Class=  ccc11}', "");
-    Expect(1, 1457, '\P{^Canonical_Combining_Class=  ccc11}', "");
-    Expect(0, 1458, '\p{Canonical_Combining_Class=  ccc11}', "");
-    Expect(1, 1458, '\p{^Canonical_Combining_Class=  ccc11}', "");
-    Expect(1, 1458, '\P{Canonical_Combining_Class=  ccc11}', "");
-    Expect(0, 1458, '\P{^Canonical_Combining_Class=  ccc11}', "");
-    Error('\p{Ccc=/a/	 0_0_11}');
-    Error('\P{Ccc=/a/	 0_0_11}');
+    Expect(1, 1457, '\p{Canonical_Combining_Class:	-CCC11}', "");
+    Expect(0, 1457, '\p{^Canonical_Combining_Class:	-CCC11}', "");
+    Expect(0, 1457, '\P{Canonical_Combining_Class:	-CCC11}', "");
+    Expect(1, 1457, '\P{^Canonical_Combining_Class:	-CCC11}', "");
+    Expect(0, 1458, '\p{Canonical_Combining_Class:	-CCC11}', "");
+    Expect(1, 1458, '\p{^Canonical_Combining_Class:	-CCC11}', "");
+    Expect(1, 1458, '\P{Canonical_Combining_Class:	-CCC11}', "");
+    Expect(0, 1458, '\P{^Canonical_Combining_Class:	-CCC11}', "");
+    Error('\p{Ccc=-/a/00_00_00_00_01_1}');
+    Error('\P{Ccc=-/a/00_00_00_00_01_1}');
     Expect(1, 1457, '\p{Ccc=:\A11\z:}', "");;
     Expect(0, 1458, '\p{Ccc=:\A11\z:}', "");;
-    Expect(1, 1457, '\p{Ccc=1_1}', "");
-    Expect(0, 1457, '\p{^Ccc=1_1}', "");
-    Expect(0, 1457, '\P{Ccc=1_1}', "");
-    Expect(1, 1457, '\P{^Ccc=1_1}', "");
-    Expect(0, 1458, '\p{Ccc=1_1}', "");
-    Expect(1, 1458, '\p{^Ccc=1_1}', "");
-    Expect(1, 1458, '\P{Ccc=1_1}', "");
-    Expect(0, 1458, '\P{^Ccc=1_1}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/__CCC11}');
-    Error('\P{Is_Canonical_Combining_Class=/a/__CCC11}');
-    Expect(1, 1457, '\p{Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(0, 1457, '\p{^Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(0, 1457, '\P{Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(1, 1457, '\P{^Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(0, 1458, '\p{Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(1, 1458, '\p{^Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(1, 1458, '\P{Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(0, 1458, '\P{^Is_Canonical_Combining_Class:   ccc11}', "");
-    Expect(1, 1457, '\p{Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(0, 1457, '\p{^Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(0, 1457, '\P{Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(1, 1457, '\P{^Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(0, 1458, '\p{Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(1, 1458, '\p{^Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(1, 1458, '\P{Is_Canonical_Combining_Class=	ccc11}', "");
-    Expect(0, 1458, '\P{^Is_Canonical_Combining_Class=	ccc11}', "");
-    Error('\p{Is_Ccc=__011:=}');
-    Error('\P{Is_Ccc=__011:=}');
-    Expect(1, 1457, '\p{Is_Ccc:01_1}', "");
-    Expect(0, 1457, '\p{^Is_Ccc:01_1}', "");
-    Expect(0, 1457, '\P{Is_Ccc:01_1}', "");
-    Expect(1, 1457, '\P{^Is_Ccc:01_1}', "");
-    Expect(0, 1458, '\p{Is_Ccc:01_1}', "");
-    Expect(1, 1458, '\p{^Is_Ccc:01_1}', "");
-    Expect(1, 1458, '\P{Is_Ccc:01_1}', "");
-    Expect(0, 1458, '\P{^Is_Ccc:01_1}', "");
-    Error('\p{Canonical_Combining_Class=	:=CCC118}');
-    Error('\P{Canonical_Combining_Class=	:=CCC118}');
+    Expect(1, 1457, '\p{Ccc=011}', "");
+    Expect(0, 1457, '\p{^Ccc=011}', "");
+    Expect(0, 1457, '\P{Ccc=011}', "");
+    Expect(1, 1457, '\P{^Ccc=011}', "");
+    Expect(0, 1458, '\p{Ccc=011}', "");
+    Expect(1, 1458, '\p{^Ccc=011}', "");
+    Expect(1, 1458, '\P{Ccc=011}', "");
+    Expect(0, 1458, '\P{^Ccc=011}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/-CCC11}');
+    Error('\P{Is_Canonical_Combining_Class=/a/-CCC11}');
+    Expect(1, 1457, '\p{Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(0, 1457, '\p{^Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(0, 1457, '\P{Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(1, 1457, '\P{^Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(0, 1458, '\p{Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(1, 1458, '\p{^Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(1, 1458, '\P{Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(0, 1458, '\P{^Is_Canonical_Combining_Class=ccc11}', "");
+    Expect(1, 1457, '\p{Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(0, 1457, '\p{^Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(0, 1457, '\P{Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(1, 1457, '\P{^Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(0, 1458, '\p{Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(1, 1458, '\p{^Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(1, 1458, '\P{Is_Canonical_Combining_Class=--CCC11}', "");
+    Expect(0, 1458, '\P{^Is_Canonical_Combining_Class=--CCC11}', "");
+    Error('\p{Is_Ccc=	/a/1_1}');
+    Error('\P{Is_Ccc=	/a/1_1}');
+    Expect(1, 1457, '\p{Is_Ccc=000011}', "");
+    Expect(0, 1457, '\p{^Is_Ccc=000011}', "");
+    Expect(0, 1457, '\P{Is_Ccc=000011}', "");
+    Expect(1, 1457, '\P{^Is_Ccc=000011}', "");
+    Expect(0, 1458, '\p{Is_Ccc=000011}', "");
+    Expect(1, 1458, '\p{^Is_Ccc=000011}', "");
+    Expect(1, 1458, '\P{Is_Ccc=000011}', "");
+    Expect(0, 1458, '\P{^Is_Ccc=000011}', "");
+    Error('\p{Canonical_Combining_Class= -ccc118:=}');
+    Error('\P{Canonical_Combining_Class= -ccc118:=}');
     Expect(1, 3769, '\p{Canonical_Combining_Class=:\ACCC118\z:}', "");;
     Expect(0, 3770, '\p{Canonical_Combining_Class=:\ACCC118\z:}', "");;
     Expect(1, 3769, '\p{Canonical_Combining_Class=ccc118}', "");
@@ -30700,28 +31276,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3770, '\P{^Canonical_Combining_Class=ccc118}', "");
     Expect(1, 3769, '\p{Canonical_Combining_Class=:\Accc118\z:}', "");;
     Expect(0, 3770, '\p{Canonical_Combining_Class=:\Accc118\z:}', "");;
-    Expect(1, 3769, '\p{Canonical_Combining_Class=	CCC118}', "");
-    Expect(0, 3769, '\p{^Canonical_Combining_Class=	CCC118}', "");
-    Expect(0, 3769, '\P{Canonical_Combining_Class=	CCC118}', "");
-    Expect(1, 3769, '\P{^Canonical_Combining_Class=	CCC118}', "");
-    Expect(0, 3770, '\p{Canonical_Combining_Class=	CCC118}', "");
-    Expect(1, 3770, '\p{^Canonical_Combining_Class=	CCC118}', "");
-    Expect(1, 3770, '\P{Canonical_Combining_Class=	CCC118}', "");
-    Expect(0, 3770, '\P{^Canonical_Combining_Class=	CCC118}', "");
-    Error('\p{Ccc=+0_0_0_0_0_0118:=}');
-    Error('\P{Ccc=+0_0_0_0_0_0118:=}');
+    Expect(1, 3769, '\p{Canonical_Combining_Class=-ccc118}', "");
+    Expect(0, 3769, '\p{^Canonical_Combining_Class=-ccc118}', "");
+    Expect(0, 3769, '\P{Canonical_Combining_Class=-ccc118}', "");
+    Expect(1, 3769, '\P{^Canonical_Combining_Class=-ccc118}', "");
+    Expect(0, 3770, '\p{Canonical_Combining_Class=-ccc118}', "");
+    Expect(1, 3770, '\p{^Canonical_Combining_Class=-ccc118}', "");
+    Expect(1, 3770, '\P{Canonical_Combining_Class=-ccc118}', "");
+    Expect(0, 3770, '\P{^Canonical_Combining_Class=-ccc118}', "");
+    Error('\p{Ccc=:= _+0000000118}');
+    Error('\P{Ccc=:= _+0000000118}');
     Expect(1, 3769, '\p{Ccc=:\A118\z:}', "");;
     Expect(0, 3770, '\p{Ccc=:\A118\z:}', "");;
-    Expect(1, 3769, '\p{Ccc=000000000118}', "");
-    Expect(0, 3769, '\p{^Ccc=000000000118}', "");
-    Expect(0, 3769, '\P{Ccc=000000000118}', "");
-    Expect(1, 3769, '\P{^Ccc=000000000118}', "");
-    Expect(0, 3770, '\p{Ccc=000000000118}', "");
-    Expect(1, 3770, '\p{^Ccc=000000000118}', "");
-    Expect(1, 3770, '\P{Ccc=000000000118}', "");
-    Expect(0, 3770, '\P{^Ccc=000000000118}', "");
-    Error('\p{Is_Canonical_Combining_Class:	/a/ ccc118}');
-    Error('\P{Is_Canonical_Combining_Class:	/a/ ccc118}');
+    Expect(1, 3769, '\p{Ccc:+118}', "");
+    Expect(0, 3769, '\p{^Ccc:+118}', "");
+    Expect(0, 3769, '\P{Ccc:+118}', "");
+    Expect(1, 3769, '\P{^Ccc:+118}', "");
+    Expect(0, 3770, '\p{Ccc:+118}', "");
+    Expect(1, 3770, '\p{^Ccc:+118}', "");
+    Expect(1, 3770, '\P{Ccc:+118}', "");
+    Expect(0, 3770, '\P{^Ccc:+118}', "");
+    Error('\p{Is_Canonical_Combining_Class= :=CCC118}');
+    Error('\P{Is_Canonical_Combining_Class= :=CCC118}');
     Expect(1, 3769, '\p{Is_Canonical_Combining_Class=ccc118}', "");
     Expect(0, 3769, '\p{^Is_Canonical_Combining_Class=ccc118}', "");
     Expect(0, 3769, '\P{Is_Canonical_Combining_Class=ccc118}', "");
@@ -30730,26 +31306,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3770, '\p{^Is_Canonical_Combining_Class=ccc118}', "");
     Expect(1, 3770, '\P{Is_Canonical_Combining_Class=ccc118}', "");
     Expect(0, 3770, '\P{^Is_Canonical_Combining_Class=ccc118}', "");
-    Expect(1, 3769, '\p{Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(0, 3769, '\p{^Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(0, 3769, '\P{Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(1, 3769, '\P{^Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(0, 3770, '\p{Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(1, 3770, '\p{^Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(1, 3770, '\P{Is_Canonical_Combining_Class=_	CCC118}', "");
-    Expect(0, 3770, '\P{^Is_Canonical_Combining_Class=_	CCC118}', "");
-    Error('\p{Is_Ccc=/a/00000000118}');
-    Error('\P{Is_Ccc=/a/00000000118}');
-    Expect(1, 3769, '\p{Is_Ccc=000118}', "");
-    Expect(0, 3769, '\p{^Is_Ccc=000118}', "");
-    Expect(0, 3769, '\P{Is_Ccc=000118}', "");
-    Expect(1, 3769, '\P{^Is_Ccc=000118}', "");
-    Expect(0, 3770, '\p{Is_Ccc=000118}', "");
-    Expect(1, 3770, '\p{^Is_Ccc=000118}', "");
-    Expect(1, 3770, '\P{Is_Ccc=000118}', "");
-    Expect(0, 3770, '\P{^Is_Ccc=000118}', "");
-    Error('\p{Canonical_Combining_Class= 	CCC12:=}');
-    Error('\P{Canonical_Combining_Class= 	CCC12:=}');
+    Expect(1, 3769, '\p{Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(0, 3769, '\p{^Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(0, 3769, '\P{Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(1, 3769, '\P{^Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(0, 3770, '\p{Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(1, 3770, '\p{^Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(1, 3770, '\P{Is_Canonical_Combining_Class=-	CCC118}', "");
+    Expect(0, 3770, '\P{^Is_Canonical_Combining_Class=-	CCC118}', "");
+    Error('\p{Is_Ccc=/a/_	011_8}');
+    Error('\P{Is_Ccc=/a/_	011_8}');
+    Expect(1, 3769, '\p{Is_Ccc=00000000118}', "");
+    Expect(0, 3769, '\p{^Is_Ccc=00000000118}', "");
+    Expect(0, 3769, '\P{Is_Ccc=00000000118}', "");
+    Expect(1, 3769, '\P{^Is_Ccc=00000000118}', "");
+    Expect(0, 3770, '\p{Is_Ccc=00000000118}', "");
+    Expect(1, 3770, '\p{^Is_Ccc=00000000118}', "");
+    Expect(1, 3770, '\P{Is_Ccc=00000000118}', "");
+    Expect(0, 3770, '\P{^Is_Ccc=00000000118}', "");
+    Error('\p{Canonical_Combining_Class= ccc12:=}');
+    Error('\P{Canonical_Combining_Class= ccc12:=}');
     Expect(1, 1458, '\p{Canonical_Combining_Class=:\ACCC12\z:}', "");;
     Expect(0, 1459, '\p{Canonical_Combining_Class=:\ACCC12\z:}', "");;
     Expect(1, 1458, '\p{Canonical_Combining_Class=ccc12}', "");
@@ -30762,28 +31338,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1459, '\P{^Canonical_Combining_Class=ccc12}', "");
     Expect(1, 1458, '\p{Canonical_Combining_Class=:\Accc12\z:}', "");;
     Expect(0, 1459, '\p{Canonical_Combining_Class=:\Accc12\z:}', "");;
-    Expect(1, 1458, '\p{Canonical_Combining_Class= _CCC12}', "");
-    Expect(0, 1458, '\p{^Canonical_Combining_Class= _CCC12}', "");
-    Expect(0, 1458, '\P{Canonical_Combining_Class= _CCC12}', "");
-    Expect(1, 1458, '\P{^Canonical_Combining_Class= _CCC12}', "");
-    Expect(0, 1459, '\p{Canonical_Combining_Class= _CCC12}', "");
-    Expect(1, 1459, '\p{^Canonical_Combining_Class= _CCC12}', "");
-    Expect(1, 1459, '\P{Canonical_Combining_Class= _CCC12}', "");
-    Expect(0, 1459, '\P{^Canonical_Combining_Class= _CCC12}', "");
-    Error('\p{Ccc:   :=	0000000012}');
-    Error('\P{Ccc:   :=	0000000012}');
+    Expect(1, 1458, '\p{Canonical_Combining_Class=	CCC12}', "");
+    Expect(0, 1458, '\p{^Canonical_Combining_Class=	CCC12}', "");
+    Expect(0, 1458, '\P{Canonical_Combining_Class=	CCC12}', "");
+    Expect(1, 1458, '\P{^Canonical_Combining_Class=	CCC12}', "");
+    Expect(0, 1459, '\p{Canonical_Combining_Class=	CCC12}', "");
+    Expect(1, 1459, '\p{^Canonical_Combining_Class=	CCC12}', "");
+    Expect(1, 1459, '\P{Canonical_Combining_Class=	CCC12}', "");
+    Expect(0, 1459, '\P{^Canonical_Combining_Class=	CCC12}', "");
+    Error('\p{Ccc=/a/ +01_2}');
+    Error('\P{Ccc=/a/ +01_2}');
     Expect(1, 1458, '\p{Ccc=:\A12\z:}', "");;
     Expect(0, 1459, '\p{Ccc=:\A12\z:}', "");;
-    Expect(1, 1458, '\p{Ccc=000001_2}', "");
-    Expect(0, 1458, '\p{^Ccc=000001_2}', "");
-    Expect(0, 1458, '\P{Ccc=000001_2}', "");
-    Expect(1, 1458, '\P{^Ccc=000001_2}', "");
-    Expect(0, 1459, '\p{Ccc=000001_2}', "");
-    Expect(1, 1459, '\p{^Ccc=000001_2}', "");
-    Expect(1, 1459, '\P{Ccc=000001_2}', "");
-    Expect(0, 1459, '\P{^Ccc=000001_2}', "");
-    Error('\p{Is_Canonical_Combining_Class=_/a/CCC12}');
-    Error('\P{Is_Canonical_Combining_Class=_/a/CCC12}');
+    Expect(1, 1458, '\p{Ccc=012}', "");
+    Expect(0, 1458, '\p{^Ccc=012}', "");
+    Expect(0, 1458, '\P{Ccc=012}', "");
+    Expect(1, 1458, '\P{^Ccc=012}', "");
+    Expect(0, 1459, '\p{Ccc=012}', "");
+    Expect(1, 1459, '\p{^Ccc=012}', "");
+    Expect(1, 1459, '\P{Ccc=012}', "");
+    Expect(0, 1459, '\P{^Ccc=012}', "");
+    Error('\p{Is_Canonical_Combining_Class=	/a/CCC12}');
+    Error('\P{Is_Canonical_Combining_Class=	/a/CCC12}');
     Expect(1, 1458, '\p{Is_Canonical_Combining_Class=ccc12}', "");
     Expect(0, 1458, '\p{^Is_Canonical_Combining_Class=ccc12}', "");
     Expect(0, 1458, '\P{Is_Canonical_Combining_Class=ccc12}', "");
@@ -30792,26 +31368,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1459, '\p{^Is_Canonical_Combining_Class=ccc12}', "");
     Expect(1, 1459, '\P{Is_Canonical_Combining_Class=ccc12}', "");
     Expect(0, 1459, '\P{^Is_Canonical_Combining_Class=ccc12}', "");
-    Expect(1, 1458, '\p{Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(0, 1458, '\p{^Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(0, 1458, '\P{Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(1, 1458, '\P{^Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(0, 1459, '\p{Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(1, 1459, '\p{^Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(1, 1459, '\P{Is_Canonical_Combining_Class= 	ccc12}', "");
-    Expect(0, 1459, '\P{^Is_Canonical_Combining_Class= 	ccc12}', "");
-    Error('\p{Is_Ccc=_/a/00_00_00_12}');
-    Error('\P{Is_Ccc=_/a/00_00_00_12}');
-    Expect(1, 1458, '\p{Is_Ccc=0000000012}', "");
-    Expect(0, 1458, '\p{^Is_Ccc=0000000012}', "");
-    Expect(0, 1458, '\P{Is_Ccc=0000000012}', "");
-    Expect(1, 1458, '\P{^Is_Ccc=0000000012}', "");
-    Expect(0, 1459, '\p{Is_Ccc=0000000012}', "");
-    Expect(1, 1459, '\p{^Is_Ccc=0000000012}', "");
-    Expect(1, 1459, '\P{Is_Ccc=0000000012}', "");
-    Expect(0, 1459, '\P{^Is_Ccc=0000000012}', "");
-    Error('\p{Canonical_Combining_Class= CCC122:=}');
-    Error('\P{Canonical_Combining_Class= CCC122:=}');
+    Expect(1, 1458, '\p{Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(0, 1458, '\p{^Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(0, 1458, '\P{Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(1, 1458, '\P{^Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(0, 1459, '\p{Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(1, 1459, '\p{^Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(1, 1459, '\P{Is_Canonical_Combining_Class=-CCC12}', "");
+    Expect(0, 1459, '\P{^Is_Canonical_Combining_Class=-CCC12}', "");
+    Error('\p{Is_Ccc:	_/a/000012}');
+    Error('\P{Is_Ccc:	_/a/000012}');
+    Expect(1, 1458, '\p{Is_Ccc=+00000012}', "");
+    Expect(0, 1458, '\p{^Is_Ccc=+00000012}', "");
+    Expect(0, 1458, '\P{Is_Ccc=+00000012}', "");
+    Expect(1, 1458, '\P{^Is_Ccc=+00000012}', "");
+    Expect(0, 1459, '\p{Is_Ccc=+00000012}', "");
+    Expect(1, 1459, '\p{^Is_Ccc=+00000012}', "");
+    Expect(1, 1459, '\P{Is_Ccc=+00000012}', "");
+    Expect(0, 1459, '\P{^Is_Ccc=+00000012}', "");
+    Error('\p{Canonical_Combining_Class=/a/__CCC122}');
+    Error('\P{Canonical_Combining_Class=/a/__CCC122}');
     Expect(1, 3787, '\p{Canonical_Combining_Class=:\ACCC122\z:}', "");;
     Expect(0, 3788, '\p{Canonical_Combining_Class=:\ACCC122\z:}', "");;
     Expect(1, 3787, '\p{Canonical_Combining_Class=ccc122}', "");
@@ -30824,28 +31400,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3788, '\P{^Canonical_Combining_Class=ccc122}', "");
     Expect(1, 3787, '\p{Canonical_Combining_Class=:\Accc122\z:}', "");;
     Expect(0, 3788, '\p{Canonical_Combining_Class=:\Accc122\z:}', "");;
-    Expect(1, 3787, '\p{Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(0, 3787, '\p{^Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(0, 3787, '\P{Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(1, 3787, '\P{^Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(0, 3788, '\p{Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(1, 3788, '\p{^Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(1, 3788, '\P{Canonical_Combining_Class:   	_ccc122}', "");
-    Expect(0, 3788, '\P{^Canonical_Combining_Class:   	_ccc122}', "");
-    Error('\p{Ccc=__00_00_01_22/a/}');
-    Error('\P{Ccc=__00_00_01_22/a/}');
+    Expect(1, 3787, '\p{Canonical_Combining_Class:    -CCC122}', "");
+    Expect(0, 3787, '\p{^Canonical_Combining_Class:    -CCC122}', "");
+    Expect(0, 3787, '\P{Canonical_Combining_Class:    -CCC122}', "");
+    Expect(1, 3787, '\P{^Canonical_Combining_Class:    -CCC122}', "");
+    Expect(0, 3788, '\p{Canonical_Combining_Class:    -CCC122}', "");
+    Expect(1, 3788, '\p{^Canonical_Combining_Class:    -CCC122}', "");
+    Expect(1, 3788, '\P{Canonical_Combining_Class:    -CCC122}', "");
+    Expect(0, 3788, '\P{^Canonical_Combining_Class:    -CCC122}', "");
+    Error('\p{Ccc=-/a/0122}');
+    Error('\P{Ccc=-/a/0122}');
     Expect(1, 3787, '\p{Ccc=:\A122\z:}', "");;
     Expect(0, 3788, '\p{Ccc=:\A122\z:}', "");;
-    Expect(1, 3787, '\p{Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(0, 3787, '\p{^Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(0, 3787, '\P{Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(1, 3787, '\P{^Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(0, 3788, '\p{Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(1, 3788, '\p{^Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(1, 3788, '\P{Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Expect(0, 3788, '\P{^Ccc: +0_0_0_0_0_0_0_1_22}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/_ CCC122}');
-    Error('\P{Is_Canonical_Combining_Class=/a/_ CCC122}');
+    Expect(1, 3787, '\p{Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(0, 3787, '\p{^Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(0, 3787, '\P{Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(1, 3787, '\P{^Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(0, 3788, '\p{Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(1, 3788, '\p{^Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(1, 3788, '\P{Ccc=+0_0_0_0_0_0_1_22}', "");
+    Expect(0, 3788, '\P{^Ccc=+0_0_0_0_0_0_1_22}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=	-CCC122}');
+    Error('\P{Is_Canonical_Combining_Class=:=	-CCC122}');
     Expect(1, 3787, '\p{Is_Canonical_Combining_Class=ccc122}', "");
     Expect(0, 3787, '\p{^Is_Canonical_Combining_Class=ccc122}', "");
     Expect(0, 3787, '\P{Is_Canonical_Combining_Class=ccc122}', "");
@@ -30854,26 +31430,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 3788, '\p{^Is_Canonical_Combining_Class=ccc122}', "");
     Expect(1, 3788, '\P{Is_Canonical_Combining_Class=ccc122}', "");
     Expect(0, 3788, '\P{^Is_Canonical_Combining_Class=ccc122}', "");
-    Expect(1, 3787, '\p{Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(0, 3787, '\p{^Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(0, 3787, '\P{Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(1, 3787, '\P{^Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(0, 3788, '\p{Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(1, 3788, '\p{^Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(1, 3788, '\P{Is_Canonical_Combining_Class: -_CCC122}', "");
-    Expect(0, 3788, '\P{^Is_Canonical_Combining_Class: -_CCC122}', "");
-    Error('\p{Is_Ccc=/a/ +000122}');
-    Error('\P{Is_Ccc=/a/ +000122}');
-    Expect(1, 3787, '\p{Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(0, 3787, '\p{^Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(0, 3787, '\P{Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(1, 3787, '\P{^Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(0, 3788, '\p{Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(1, 3788, '\p{^Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(1, 3788, '\P{Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Expect(0, 3788, '\P{^Is_Ccc: 0_0_0_0_0_0_000122}', "");
-    Error('\p{Canonical_Combining_Class=_	ccc129:=}');
-    Error('\P{Canonical_Combining_Class=_	ccc129:=}');
+    Expect(1, 3787, '\p{Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(0, 3787, '\p{^Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(0, 3787, '\P{Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(1, 3787, '\P{^Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(0, 3788, '\p{Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(1, 3788, '\p{^Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(1, 3788, '\P{Is_Canonical_Combining_Class=  CCC122}', "");
+    Expect(0, 3788, '\P{^Is_Canonical_Combining_Class=  CCC122}', "");
+    Error('\p{Is_Ccc=_/a/0_0_1_22}');
+    Error('\P{Is_Ccc=_/a/0_0_1_22}');
+    Expect(1, 3787, '\p{Is_Ccc=+0000122}', "");
+    Expect(0, 3787, '\p{^Is_Ccc=+0000122}', "");
+    Expect(0, 3787, '\P{Is_Ccc=+0000122}', "");
+    Expect(1, 3787, '\P{^Is_Ccc=+0000122}', "");
+    Expect(0, 3788, '\p{Is_Ccc=+0000122}', "");
+    Expect(1, 3788, '\p{^Is_Ccc=+0000122}', "");
+    Expect(1, 3788, '\P{Is_Ccc=+0000122}', "");
+    Expect(0, 3788, '\P{^Is_Ccc=+0000122}', "");
+    Error('\p{Canonical_Combining_Class=_/a/CCC129}');
+    Error('\P{Canonical_Combining_Class=_/a/CCC129}');
     Expect(1, 3953, '\p{Canonical_Combining_Class=:\ACCC129\z:}', "");;
     Expect(0, 3954, '\p{Canonical_Combining_Class=:\ACCC129\z:}', "");;
     Expect(1, 3953, '\p{Canonical_Combining_Class=ccc129}', "");
@@ -30886,56 +31462,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3954, '\P{^Canonical_Combining_Class=ccc129}', "");
     Expect(1, 3953, '\p{Canonical_Combining_Class=:\Accc129\z:}', "");;
     Expect(0, 3954, '\p{Canonical_Combining_Class=:\Accc129\z:}', "");;
-    Expect(1, 3953, '\p{Canonical_Combining_Class=	CCC129}', "");
-    Expect(0, 3953, '\p{^Canonical_Combining_Class=	CCC129}', "");
-    Expect(0, 3953, '\P{Canonical_Combining_Class=	CCC129}', "");
-    Expect(1, 3953, '\P{^Canonical_Combining_Class=	CCC129}', "");
-    Expect(0, 3954, '\p{Canonical_Combining_Class=	CCC129}', "");
-    Expect(1, 3954, '\p{^Canonical_Combining_Class=	CCC129}', "");
-    Expect(1, 3954, '\P{Canonical_Combining_Class=	CCC129}', "");
-    Expect(0, 3954, '\P{^Canonical_Combining_Class=	CCC129}', "");
-    Error('\p{Ccc=	012_9/a/}');
-    Error('\P{Ccc=	012_9/a/}');
+    Expect(1, 3953, '\p{Canonical_Combining_Class= CCC129}', "");
+    Expect(0, 3953, '\p{^Canonical_Combining_Class= CCC129}', "");
+    Expect(0, 3953, '\P{Canonical_Combining_Class= CCC129}', "");
+    Expect(1, 3953, '\P{^Canonical_Combining_Class= CCC129}', "");
+    Expect(0, 3954, '\p{Canonical_Combining_Class= CCC129}', "");
+    Expect(1, 3954, '\p{^Canonical_Combining_Class= CCC129}', "");
+    Expect(1, 3954, '\P{Canonical_Combining_Class= CCC129}', "");
+    Expect(0, 3954, '\P{^Canonical_Combining_Class= CCC129}', "");
+    Error('\p{Ccc=--000000000129:=}');
+    Error('\P{Ccc=--000000000129:=}');
     Expect(1, 3953, '\p{Ccc=:\A129\z:}', "");;
     Expect(0, 3954, '\p{Ccc=:\A129\z:}', "");;
-    Expect(1, 3953, '\p{Ccc=0000_0001_29}', "");
-    Expect(0, 3953, '\p{^Ccc=0000_0001_29}', "");
-    Expect(0, 3953, '\P{Ccc=0000_0001_29}', "");
-    Expect(1, 3953, '\P{^Ccc=0000_0001_29}', "");
-    Expect(0, 3954, '\p{Ccc=0000_0001_29}', "");
-    Expect(1, 3954, '\p{^Ccc=0000_0001_29}', "");
-    Expect(1, 3954, '\P{Ccc=0000_0001_29}', "");
-    Expect(0, 3954, '\P{^Ccc=0000_0001_29}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/_CCC129}');
-    Error('\P{Is_Canonical_Combining_Class=/a/_CCC129}');
-    Expect(1, 3953, '\p{Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(0, 3953, '\p{^Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(0, 3953, '\P{Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(1, 3953, '\P{^Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(0, 3954, '\p{Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(1, 3954, '\p{^Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(1, 3954, '\P{Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(0, 3954, '\P{^Is_Canonical_Combining_Class=ccc129}', "");
-    Expect(1, 3953, '\p{Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(0, 3953, '\p{^Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(0, 3953, '\P{Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(1, 3953, '\P{^Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(0, 3954, '\p{Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(1, 3954, '\p{^Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(1, 3954, '\P{Is_Canonical_Combining_Class=	_ccc129}', "");
-    Expect(0, 3954, '\P{^Is_Canonical_Combining_Class=	_ccc129}', "");
-    Error('\p{Is_Ccc=_/a/+00129}');
-    Error('\P{Is_Ccc=_/a/+00129}');
-    Expect(1, 3953, '\p{Is_Ccc=12_9}', "");
-    Expect(0, 3953, '\p{^Is_Ccc=12_9}', "");
-    Expect(0, 3953, '\P{Is_Ccc=12_9}', "");
-    Expect(1, 3953, '\P{^Is_Ccc=12_9}', "");
-    Expect(0, 3954, '\p{Is_Ccc=12_9}', "");
-    Expect(1, 3954, '\p{^Is_Ccc=12_9}', "");
-    Expect(1, 3954, '\P{Is_Ccc=12_9}', "");
-    Expect(0, 3954, '\P{^Is_Ccc=12_9}', "");
-    Error('\p{Canonical_Combining_Class=/a/CCC13}');
-    Error('\P{Canonical_Combining_Class=/a/CCC13}');
+    Expect(1, 3953, '\p{Ccc=00000000129}', "");
+    Expect(0, 3953, '\p{^Ccc=00000000129}', "");
+    Expect(0, 3953, '\P{Ccc=00000000129}', "");
+    Expect(1, 3953, '\P{^Ccc=00000000129}', "");
+    Expect(0, 3954, '\p{Ccc=00000000129}', "");
+    Expect(1, 3954, '\p{^Ccc=00000000129}', "");
+    Expect(1, 3954, '\P{Ccc=00000000129}', "");
+    Expect(0, 3954, '\P{^Ccc=00000000129}', "");
+    Error('\p{Is_Canonical_Combining_Class: /a/	_ccc129}');
+    Error('\P{Is_Canonical_Combining_Class: /a/	_ccc129}');
+    Expect(1, 3953, '\p{Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(0, 3953, '\p{^Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(0, 3953, '\P{Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(1, 3953, '\P{^Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(0, 3954, '\p{Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(1, 3954, '\p{^Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(1, 3954, '\P{Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(0, 3954, '\P{^Is_Canonical_Combining_Class: ccc129}', "");
+    Expect(1, 3953, '\p{Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(0, 3953, '\p{^Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(0, 3953, '\P{Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(1, 3953, '\P{^Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(0, 3954, '\p{Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(1, 3954, '\p{^Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(1, 3954, '\P{Is_Canonical_Combining_Class= 	CCC129}', "");
+    Expect(0, 3954, '\P{^Is_Canonical_Combining_Class= 	CCC129}', "");
+    Error('\p{Is_Ccc=:=_-0129}');
+    Error('\P{Is_Ccc=:=_-0129}');
+    Expect(1, 3953, '\p{Is_Ccc=+00000000129}', "");
+    Expect(0, 3953, '\p{^Is_Ccc=+00000000129}', "");
+    Expect(0, 3953, '\P{Is_Ccc=+00000000129}', "");
+    Expect(1, 3953, '\P{^Is_Ccc=+00000000129}', "");
+    Expect(0, 3954, '\p{Is_Ccc=+00000000129}', "");
+    Expect(1, 3954, '\p{^Is_Ccc=+00000000129}', "");
+    Expect(1, 3954, '\P{Is_Ccc=+00000000129}', "");
+    Expect(0, 3954, '\P{^Is_Ccc=+00000000129}', "");
+    Error('\p{Canonical_Combining_Class=:= -CCC13}');
+    Error('\P{Canonical_Combining_Class=:= -CCC13}');
     Expect(1, 1459, '\p{Canonical_Combining_Class=:\ACCC13\z:}', "");;
     Expect(0, 1460, '\p{Canonical_Combining_Class=:\ACCC13\z:}', "");;
     Expect(1, 1459, '\p{Canonical_Combining_Class=ccc13}', "");
@@ -30948,28 +31524,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1460, '\P{^Canonical_Combining_Class=ccc13}', "");
     Expect(1, 1459, '\p{Canonical_Combining_Class=:\Accc13\z:}', "");;
     Expect(0, 1460, '\p{Canonical_Combining_Class=:\Accc13\z:}', "");;
-    Expect(1, 1459, '\p{Canonical_Combining_Class=	CCC13}', "");
-    Expect(0, 1459, '\p{^Canonical_Combining_Class=	CCC13}', "");
-    Expect(0, 1459, '\P{Canonical_Combining_Class=	CCC13}', "");
-    Expect(1, 1459, '\P{^Canonical_Combining_Class=	CCC13}', "");
-    Expect(0, 1460, '\p{Canonical_Combining_Class=	CCC13}', "");
-    Expect(1, 1460, '\p{^Canonical_Combining_Class=	CCC13}', "");
-    Expect(1, 1460, '\P{Canonical_Combining_Class=	CCC13}', "");
-    Expect(0, 1460, '\P{^Canonical_Combining_Class=	CCC13}', "");
-    Error('\p{Ccc= -+0000013:=}');
-    Error('\P{Ccc= -+0000013:=}');
+    Expect(1, 1459, '\p{Canonical_Combining_Class=-_CCC13}', "");
+    Expect(0, 1459, '\p{^Canonical_Combining_Class=-_CCC13}', "");
+    Expect(0, 1459, '\P{Canonical_Combining_Class=-_CCC13}', "");
+    Expect(1, 1459, '\P{^Canonical_Combining_Class=-_CCC13}', "");
+    Expect(0, 1460, '\p{Canonical_Combining_Class=-_CCC13}', "");
+    Expect(1, 1460, '\p{^Canonical_Combining_Class=-_CCC13}', "");
+    Expect(1, 1460, '\P{Canonical_Combining_Class=-_CCC13}', "");
+    Expect(0, 1460, '\P{^Canonical_Combining_Class=-_CCC13}', "");
+    Error('\p{Ccc=-/a/00_00_00_13}');
+    Error('\P{Ccc=-/a/00_00_00_13}');
     Expect(1, 1459, '\p{Ccc=:\A13\z:}', "");;
     Expect(0, 1460, '\p{Ccc=:\A13\z:}', "");;
-    Expect(1, 1459, '\p{Ccc=+0_0_0_013}', "");
-    Expect(0, 1459, '\p{^Ccc=+0_0_0_013}', "");
-    Expect(0, 1459, '\P{Ccc=+0_0_0_013}', "");
-    Expect(1, 1459, '\P{^Ccc=+0_0_0_013}', "");
-    Expect(0, 1460, '\p{Ccc=+0_0_0_013}', "");
-    Expect(1, 1460, '\p{^Ccc=+0_0_0_013}', "");
-    Expect(1, 1460, '\P{Ccc=+0_0_0_013}', "");
-    Expect(0, 1460, '\P{^Ccc=+0_0_0_013}', "");
-    Error('\p{Is_Canonical_Combining_Class=-/a/CCC13}');
-    Error('\P{Is_Canonical_Combining_Class=-/a/CCC13}');
+    Expect(1, 1459, '\p{Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(0, 1459, '\p{^Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(0, 1459, '\P{Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(1, 1459, '\P{^Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(0, 1460, '\p{Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(1, 1460, '\p{^Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(1, 1460, '\P{Ccc=+0_0_0_0_0_0_0_13}', "");
+    Expect(0, 1460, '\P{^Ccc=+0_0_0_0_0_0_0_13}', "");
+    Error('\p{Is_Canonical_Combining_Class= _CCC13/a/}');
+    Error('\P{Is_Canonical_Combining_Class= _CCC13/a/}');
     Expect(1, 1459, '\p{Is_Canonical_Combining_Class=ccc13}', "");
     Expect(0, 1459, '\p{^Is_Canonical_Combining_Class=ccc13}', "");
     Expect(0, 1459, '\P{Is_Canonical_Combining_Class=ccc13}', "");
@@ -30978,219 +31554,219 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1460, '\p{^Is_Canonical_Combining_Class=ccc13}', "");
     Expect(1, 1460, '\P{Is_Canonical_Combining_Class=ccc13}', "");
     Expect(0, 1460, '\P{^Is_Canonical_Combining_Class=ccc13}', "");
-    Expect(1, 1459, '\p{Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(0, 1459, '\p{^Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(0, 1459, '\P{Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(1, 1459, '\P{^Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(0, 1460, '\p{Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(1, 1460, '\p{^Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(1, 1460, '\P{Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Expect(0, 1460, '\P{^Is_Canonical_Combining_Class: 	-CCC13}', "");
-    Error('\p{Is_Ccc=:= 01_3}');
-    Error('\P{Is_Ccc=:= 01_3}');
-    Expect(1, 1459, '\p{Is_Ccc=0_0_0_13}', "");
-    Expect(0, 1459, '\p{^Is_Ccc=0_0_0_13}', "");
-    Expect(0, 1459, '\P{Is_Ccc=0_0_0_13}', "");
-    Expect(1, 1459, '\P{^Is_Ccc=0_0_0_13}', "");
-    Expect(0, 1460, '\p{Is_Ccc=0_0_0_13}', "");
-    Expect(1, 1460, '\p{^Is_Ccc=0_0_0_13}', "");
-    Expect(1, 1460, '\P{Is_Ccc=0_0_0_13}', "");
-    Expect(0, 1460, '\P{^Is_Ccc=0_0_0_13}', "");
-    Error('\p{Canonical_Combining_Class=	CCC130:=}');
-    Error('\P{Canonical_Combining_Class=	CCC130:=}');
+    Expect(1, 1459, '\p{Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(0, 1459, '\p{^Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(0, 1459, '\P{Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(1, 1459, '\P{^Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(0, 1460, '\p{Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(1, 1460, '\p{^Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(1, 1460, '\P{Is_Canonical_Combining_Class:- CCC13}', "");
+    Expect(0, 1460, '\P{^Is_Canonical_Combining_Class:- CCC13}', "");
+    Error('\p{Is_Ccc=	_00000013/a/}');
+    Error('\P{Is_Ccc=	_00000013/a/}');
+    Expect(1, 1459, '\p{Is_Ccc=0_0_0_0_13}', "");
+    Expect(0, 1459, '\p{^Is_Ccc=0_0_0_0_13}', "");
+    Expect(0, 1459, '\P{Is_Ccc=0_0_0_0_13}', "");
+    Expect(1, 1459, '\P{^Is_Ccc=0_0_0_0_13}', "");
+    Expect(0, 1460, '\p{Is_Ccc=0_0_0_0_13}', "");
+    Expect(1, 1460, '\p{^Is_Ccc=0_0_0_0_13}', "");
+    Expect(1, 1460, '\P{Is_Ccc=0_0_0_0_13}', "");
+    Expect(0, 1460, '\P{^Is_Ccc=0_0_0_0_13}', "");
+    Error('\p{Canonical_Combining_Class= 	ccc130:=}');
+    Error('\P{Canonical_Combining_Class= 	ccc130:=}');
     Expect(1, 3968, '\p{Canonical_Combining_Class=:\ACCC130\z:}', "");;
     Expect(0, 3969, '\p{Canonical_Combining_Class=:\ACCC130\z:}', "");;
-    Expect(1, 3968, '\p{Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3968, '\p{^Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3968, '\P{Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3968, '\P{^Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3969, '\p{Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3969, '\p{^Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3969, '\P{Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3969, '\P{^Canonical_Combining_Class:	ccc130}', "");
+    Expect(1, 3968, '\p{Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3968, '\p{^Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3968, '\P{Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3968, '\P{^Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3969, '\p{Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3969, '\p{^Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3969, '\P{Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3969, '\P{^Canonical_Combining_Class=ccc130}', "");
     Expect(1, 3968, '\p{Canonical_Combining_Class=:\Accc130\z:}', "");;
     Expect(0, 3969, '\p{Canonical_Combining_Class=:\Accc130\z:}', "");;
-    Expect(1, 3968, '\p{Canonical_Combining_Class:   _CCC130}', "");
-    Expect(0, 3968, '\p{^Canonical_Combining_Class:   _CCC130}', "");
-    Expect(0, 3968, '\P{Canonical_Combining_Class:   _CCC130}', "");
-    Expect(1, 3968, '\P{^Canonical_Combining_Class:   _CCC130}', "");
-    Expect(0, 3969, '\p{Canonical_Combining_Class:   _CCC130}', "");
-    Expect(1, 3969, '\p{^Canonical_Combining_Class:   _CCC130}', "");
-    Expect(1, 3969, '\P{Canonical_Combining_Class:   _CCC130}', "");
-    Expect(0, 3969, '\P{^Canonical_Combining_Class:   _CCC130}', "");
-    Error('\p{Ccc:_0_0_0_0_0_0_0_0_0_130:=}');
-    Error('\P{Ccc:_0_0_0_0_0_0_0_0_0_130:=}');
+    Expect(1, 3968, '\p{Canonical_Combining_Class:   	ccc130}', "");
+    Expect(0, 3968, '\p{^Canonical_Combining_Class:   	ccc130}', "");
+    Expect(0, 3968, '\P{Canonical_Combining_Class:   	ccc130}', "");
+    Expect(1, 3968, '\P{^Canonical_Combining_Class:   	ccc130}', "");
+    Expect(0, 3969, '\p{Canonical_Combining_Class:   	ccc130}', "");
+    Expect(1, 3969, '\p{^Canonical_Combining_Class:   	ccc130}', "");
+    Expect(1, 3969, '\P{Canonical_Combining_Class:   	ccc130}', "");
+    Expect(0, 3969, '\P{^Canonical_Combining_Class:   	ccc130}', "");
+    Error('\p{Ccc=-_0_0_0_0_0_130/a/}');
+    Error('\P{Ccc=-_0_0_0_0_0_130/a/}');
     Expect(1, 3968, '\p{Ccc=:\A130\z:}', "");;
     Expect(0, 3969, '\p{Ccc=:\A130\z:}', "");;
-    Expect(1, 3968, '\p{Ccc=00000000130}', "");
-    Expect(0, 3968, '\p{^Ccc=00000000130}', "");
-    Expect(0, 3968, '\P{Ccc=00000000130}', "");
-    Expect(1, 3968, '\P{^Ccc=00000000130}', "");
-    Expect(0, 3969, '\p{Ccc=00000000130}', "");
-    Expect(1, 3969, '\p{^Ccc=00000000130}', "");
-    Expect(1, 3969, '\P{Ccc=00000000130}', "");
-    Expect(0, 3969, '\P{^Ccc=00000000130}', "");
-    Error('\p{Is_Canonical_Combining_Class=-:=CCC130}');
-    Error('\P{Is_Canonical_Combining_Class=-:=CCC130}');
-    Expect(1, 3968, '\p{Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3968, '\p{^Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3968, '\P{Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3968, '\P{^Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3969, '\p{Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3969, '\p{^Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3969, '\P{Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(0, 3969, '\P{^Is_Canonical_Combining_Class:	ccc130}', "");
-    Expect(1, 3968, '\p{Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(0, 3968, '\p{^Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(0, 3968, '\P{Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(1, 3968, '\P{^Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(0, 3969, '\p{Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(1, 3969, '\p{^Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(1, 3969, '\P{Is_Canonical_Combining_Class=-	CCC130}', "");
-    Expect(0, 3969, '\P{^Is_Canonical_Combining_Class=-	CCC130}', "");
-    Error('\p{Is_Ccc=:=--13_0}');
-    Error('\P{Is_Ccc=:=--13_0}');
-    Expect(1, 3968, '\p{Is_Ccc=0_0_1_30}', "");
-    Expect(0, 3968, '\p{^Is_Ccc=0_0_1_30}', "");
-    Expect(0, 3968, '\P{Is_Ccc=0_0_1_30}', "");
-    Expect(1, 3968, '\P{^Is_Ccc=0_0_1_30}', "");
-    Expect(0, 3969, '\p{Is_Ccc=0_0_1_30}', "");
-    Expect(1, 3969, '\p{^Is_Ccc=0_0_1_30}', "");
-    Expect(1, 3969, '\P{Is_Ccc=0_0_1_30}', "");
-    Expect(0, 3969, '\P{^Is_Ccc=0_0_1_30}', "");
-    Error('\p{Canonical_Combining_Class:  :=CCC132}');
-    Error('\P{Canonical_Combining_Class:  :=CCC132}');
+    Expect(1, 3968, '\p{Ccc=130}', "");
+    Expect(0, 3968, '\p{^Ccc=130}', "");
+    Expect(0, 3968, '\P{Ccc=130}', "");
+    Expect(1, 3968, '\P{^Ccc=130}', "");
+    Expect(0, 3969, '\p{Ccc=130}', "");
+    Expect(1, 3969, '\p{^Ccc=130}', "");
+    Expect(1, 3969, '\P{Ccc=130}', "");
+    Expect(0, 3969, '\P{^Ccc=130}', "");
+    Error('\p{Is_Canonical_Combining_Class:    	CCC130:=}');
+    Error('\P{Is_Canonical_Combining_Class:    	CCC130:=}');
+    Expect(1, 3968, '\p{Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3968, '\p{^Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3968, '\P{Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3968, '\P{^Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3969, '\p{Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3969, '\p{^Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3969, '\P{Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(0, 3969, '\P{^Is_Canonical_Combining_Class=ccc130}', "");
+    Expect(1, 3968, '\p{Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(0, 3968, '\p{^Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(0, 3968, '\P{Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(1, 3968, '\P{^Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(0, 3969, '\p{Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(1, 3969, '\p{^Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(1, 3969, '\P{Is_Canonical_Combining_Class=	-CCC130}', "");
+    Expect(0, 3969, '\P{^Is_Canonical_Combining_Class=	-CCC130}', "");
+    Error('\p{Is_Ccc=:=	-000130}');
+    Error('\P{Is_Ccc=:=	-000130}');
+    Expect(1, 3968, '\p{Is_Ccc=+0130}', "");
+    Expect(0, 3968, '\p{^Is_Ccc=+0130}', "");
+    Expect(0, 3968, '\P{Is_Ccc=+0130}', "");
+    Expect(1, 3968, '\P{^Is_Ccc=+0130}', "");
+    Expect(0, 3969, '\p{Is_Ccc=+0130}', "");
+    Expect(1, 3969, '\p{^Is_Ccc=+0130}', "");
+    Expect(1, 3969, '\P{Is_Ccc=+0130}', "");
+    Expect(0, 3969, '\P{^Is_Ccc=+0130}', "");
+    Error('\p{Canonical_Combining_Class=/a/	 CCC132}');
+    Error('\P{Canonical_Combining_Class=/a/	 CCC132}');
     Expect(1, 3956, '\p{Canonical_Combining_Class=:\ACCC132\z:}', "");;
     Expect(0, 3957, '\p{Canonical_Combining_Class=:\ACCC132\z:}', "");;
-    Expect(1, 3956, '\p{Canonical_Combining_Class:   ccc132}', "");
-    Expect(0, 3956, '\p{^Canonical_Combining_Class:   ccc132}', "");
-    Expect(0, 3956, '\P{Canonical_Combining_Class:   ccc132}', "");
-    Expect(1, 3956, '\P{^Canonical_Combining_Class:   ccc132}', "");
-    Expect(0, 3957, '\p{Canonical_Combining_Class:   ccc132}', "");
-    Expect(1, 3957, '\p{^Canonical_Combining_Class:   ccc132}', "");
-    Expect(1, 3957, '\P{Canonical_Combining_Class:   ccc132}', "");
-    Expect(0, 3957, '\P{^Canonical_Combining_Class:   ccc132}', "");
+    Expect(1, 3956, '\p{Canonical_Combining_Class=ccc132}', "");
+    Expect(0, 3956, '\p{^Canonical_Combining_Class=ccc132}', "");
+    Expect(0, 3956, '\P{Canonical_Combining_Class=ccc132}', "");
+    Expect(1, 3956, '\P{^Canonical_Combining_Class=ccc132}', "");
+    Expect(0, 3957, '\p{Canonical_Combining_Class=ccc132}', "");
+    Expect(1, 3957, '\p{^Canonical_Combining_Class=ccc132}', "");
+    Expect(1, 3957, '\P{Canonical_Combining_Class=ccc132}', "");
+    Expect(0, 3957, '\P{^Canonical_Combining_Class=ccc132}', "");
     Expect(1, 3956, '\p{Canonical_Combining_Class=:\Accc132\z:}', "");;
     Expect(0, 3957, '\p{Canonical_Combining_Class=:\Accc132\z:}', "");;
-    Expect(1, 3956, '\p{Canonical_Combining_Class=	 CCC132}', "");
-    Expect(0, 3956, '\p{^Canonical_Combining_Class=	 CCC132}', "");
-    Expect(0, 3956, '\P{Canonical_Combining_Class=	 CCC132}', "");
-    Expect(1, 3956, '\P{^Canonical_Combining_Class=	 CCC132}', "");
-    Expect(0, 3957, '\p{Canonical_Combining_Class=	 CCC132}', "");
-    Expect(1, 3957, '\p{^Canonical_Combining_Class=	 CCC132}', "");
-    Expect(1, 3957, '\P{Canonical_Combining_Class=	 CCC132}', "");
-    Expect(0, 3957, '\P{^Canonical_Combining_Class=	 CCC132}', "");
-    Error('\p{Ccc:   /a/+013_2}');
-    Error('\P{Ccc:   /a/+013_2}');
+    Expect(1, 3956, '\p{Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(0, 3956, '\p{^Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(0, 3956, '\P{Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(1, 3956, '\P{^Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(0, 3957, '\p{Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(1, 3957, '\p{^Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(1, 3957, '\P{Canonical_Combining_Class:   _	CCC132}', "");
+    Expect(0, 3957, '\P{^Canonical_Combining_Class:   _	CCC132}', "");
+    Error('\p{Ccc:/a/+0_0_1_32}');
+    Error('\P{Ccc:/a/+0_0_1_32}');
     Expect(1, 3956, '\p{Ccc=:\A132\z:}', "");;
     Expect(0, 3957, '\p{Ccc=:\A132\z:}', "");;
-    Expect(1, 3956, '\p{Ccc=+000000000132}', "");
-    Expect(0, 3956, '\p{^Ccc=+000000000132}', "");
-    Expect(0, 3956, '\P{Ccc=+000000000132}', "");
-    Expect(1, 3956, '\P{^Ccc=+000000000132}', "");
-    Expect(0, 3957, '\p{Ccc=+000000000132}', "");
-    Expect(1, 3957, '\p{^Ccc=+000000000132}', "");
-    Expect(1, 3957, '\P{Ccc=+000000000132}', "");
-    Expect(0, 3957, '\P{^Ccc=+000000000132}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/ _CCC132}');
-    Error('\P{Is_Canonical_Combining_Class=/a/ _CCC132}');
-    Expect(1, 3956, '\p{Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(0, 3956, '\p{^Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(0, 3956, '\P{Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(1, 3956, '\P{^Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(0, 3957, '\p{Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(1, 3957, '\p{^Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(1, 3957, '\P{Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(0, 3957, '\P{^Is_Canonical_Combining_Class=ccc132}', "");
-    Expect(1, 3956, '\p{Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(0, 3956, '\p{^Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(0, 3956, '\P{Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(1, 3956, '\P{^Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(0, 3957, '\p{Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(1, 3957, '\p{^Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(1, 3957, '\P{Is_Canonical_Combining_Class=_-CCC132}', "");
-    Expect(0, 3957, '\P{^Is_Canonical_Combining_Class=_-CCC132}', "");
-    Error('\p{Is_Ccc=/a/_000013_2}');
-    Error('\P{Is_Ccc=/a/_000013_2}');
-    Expect(1, 3956, '\p{Is_Ccc=+000000132}', "");
-    Expect(0, 3956, '\p{^Is_Ccc=+000000132}', "");
-    Expect(0, 3956, '\P{Is_Ccc=+000000132}', "");
-    Expect(1, 3956, '\P{^Is_Ccc=+000000132}', "");
-    Expect(0, 3957, '\p{Is_Ccc=+000000132}', "");
-    Expect(1, 3957, '\p{^Is_Ccc=+000000132}', "");
-    Expect(1, 3957, '\P{Is_Ccc=+000000132}', "");
-    Expect(0, 3957, '\P{^Is_Ccc=+000000132}', "");
+    Expect(1, 3956, '\p{Ccc=00000000013_2}', "");
+    Expect(0, 3956, '\p{^Ccc=00000000013_2}', "");
+    Expect(0, 3956, '\P{Ccc=00000000013_2}', "");
+    Expect(1, 3956, '\P{^Ccc=00000000013_2}', "");
+    Expect(0, 3957, '\p{Ccc=00000000013_2}', "");
+    Expect(1, 3957, '\p{^Ccc=00000000013_2}', "");
+    Expect(1, 3957, '\P{Ccc=00000000013_2}', "");
+    Expect(0, 3957, '\P{^Ccc=00000000013_2}', "");
+    Error('\p{Is_Canonical_Combining_Class=	 ccc132/a/}');
+    Error('\P{Is_Canonical_Combining_Class=	 ccc132/a/}');
+    Expect(1, 3956, '\p{Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(0, 3956, '\p{^Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(0, 3956, '\P{Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(1, 3956, '\P{^Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(0, 3957, '\p{Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(1, 3957, '\p{^Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(1, 3957, '\P{Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(0, 3957, '\P{^Is_Canonical_Combining_Class:   ccc132}', "");
+    Expect(1, 3956, '\p{Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(0, 3956, '\p{^Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(0, 3956, '\P{Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(1, 3956, '\P{^Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(0, 3957, '\p{Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(1, 3957, '\p{^Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(1, 3957, '\P{Is_Canonical_Combining_Class=  ccc132}', "");
+    Expect(0, 3957, '\P{^Is_Canonical_Combining_Class=  ccc132}', "");
+    Error('\p{Is_Ccc=:= 00000000132}');
+    Error('\P{Is_Ccc=:= 00000000132}');
+    Expect(1, 3956, '\p{Is_Ccc=00_00_00_00_0132}', "");
+    Expect(0, 3956, '\p{^Is_Ccc=00_00_00_00_0132}', "");
+    Expect(0, 3956, '\P{Is_Ccc=00_00_00_00_0132}', "");
+    Expect(1, 3956, '\P{^Is_Ccc=00_00_00_00_0132}', "");
+    Expect(0, 3957, '\p{Is_Ccc=00_00_00_00_0132}', "");
+    Expect(1, 3957, '\p{^Is_Ccc=00_00_00_00_0132}', "");
+    Expect(1, 3957, '\P{Is_Ccc=00_00_00_00_0132}', "");
+    Expect(0, 3957, '\P{^Is_Ccc=00_00_00_00_0132}', "");
     Error('\p{Canonical_Combining_Class=:= CCC133}');
     Error('\P{Canonical_Combining_Class=:= CCC133}');
     Expect(0, 1, '\p{Canonical_Combining_Class=:\ACCC133\z:}', "");;
-    Expect(0, 1, '\p{Canonical_Combining_Class=ccc133}', "");
-    Expect(1, 1, '\p{^Canonical_Combining_Class=ccc133}', "");
-    Expect(1, 1, '\P{Canonical_Combining_Class=ccc133}', "");
-    Expect(0, 1, '\P{^Canonical_Combining_Class=ccc133}', "");
+    Expect(0, 1, '\p{Canonical_Combining_Class:	ccc133}', "");
+    Expect(1, 1, '\p{^Canonical_Combining_Class:	ccc133}', "");
+    Expect(1, 1, '\P{Canonical_Combining_Class:	ccc133}', "");
+    Expect(0, 1, '\P{^Canonical_Combining_Class:	ccc133}', "");
     Expect(0, 1, '\p{Canonical_Combining_Class=:\Accc133\z:}', "");;
-    Expect(0, 1, '\p{Canonical_Combining_Class=	ccc133}', "");
-    Expect(1, 1, '\p{^Canonical_Combining_Class=	ccc133}', "");
-    Expect(1, 1, '\P{Canonical_Combining_Class=	ccc133}', "");
-    Expect(0, 1, '\P{^Canonical_Combining_Class=	ccc133}', "");
-    Error('\p{Ccc= 	13_3/a/}');
-    Error('\P{Ccc= 	13_3/a/}');
+    Expect(0, 1, '\p{Canonical_Combining_Class=_ ccc133}', "");
+    Expect(1, 1, '\p{^Canonical_Combining_Class=_ ccc133}', "");
+    Expect(1, 1, '\P{Canonical_Combining_Class=_ ccc133}', "");
+    Expect(0, 1, '\P{^Canonical_Combining_Class=_ ccc133}', "");
+    Error('\p{Ccc= 000000000133:=}');
+    Error('\P{Ccc= 000000000133:=}');
     Expect(0, 1, '\p{Ccc=:\A133\z:}', "");;
-    Expect(0, 1, '\p{Ccc=0_0_0_0_0_00133}', "");
-    Expect(1, 1, '\p{^Ccc=0_0_0_0_0_00133}', "");
-    Expect(1, 1, '\P{Ccc=0_0_0_0_0_00133}', "");
-    Expect(0, 1, '\P{^Ccc=0_0_0_0_0_00133}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/_-CCC133}');
-    Error('\P{Is_Canonical_Combining_Class=/a/_-CCC133}');
+    Expect(0, 1, '\p{Ccc=00000133}', "");
+    Expect(1, 1, '\p{^Ccc=00000133}', "");
+    Expect(1, 1, '\P{Ccc=00000133}', "");
+    Expect(0, 1, '\P{^Ccc=00000133}', "");
+    Error('\p{Is_Canonical_Combining_Class=-:=CCC133}');
+    Error('\P{Is_Canonical_Combining_Class=-:=CCC133}');
     Expect(0, 1, '\p{Is_Canonical_Combining_Class=ccc133}', "");
     Expect(1, 1, '\p{^Is_Canonical_Combining_Class=ccc133}', "");
     Expect(1, 1, '\P{Is_Canonical_Combining_Class=ccc133}', "");
     Expect(0, 1, '\P{^Is_Canonical_Combining_Class=ccc133}', "");
-    Expect(0, 1, '\p{Is_Canonical_Combining_Class=	CCC133}', "");
-    Expect(1, 1, '\p{^Is_Canonical_Combining_Class=	CCC133}', "");
-    Expect(1, 1, '\P{Is_Canonical_Combining_Class=	CCC133}', "");
-    Expect(0, 1, '\P{^Is_Canonical_Combining_Class=	CCC133}', "");
-    Error('\p{Is_Ccc=_:=000_001_33}');
-    Error('\P{Is_Ccc=_:=000_001_33}');
-    Expect(0, 1, '\p{Is_Ccc=00000_00001_33}', "");
-    Expect(1, 1, '\p{^Is_Ccc=00000_00001_33}', "");
-    Expect(1, 1, '\P{Is_Ccc=00000_00001_33}', "");
-    Expect(0, 1, '\P{^Is_Ccc=00000_00001_33}', "");
-    Error('\p{Canonical_Combining_Class=- CCC14/a/}');
-    Error('\P{Canonical_Combining_Class=- CCC14/a/}');
+    Expect(0, 1, '\p{Is_Canonical_Combining_Class=_ CCC133}', "");
+    Expect(1, 1, '\p{^Is_Canonical_Combining_Class=_ CCC133}', "");
+    Expect(1, 1, '\P{Is_Canonical_Combining_Class=_ CCC133}', "");
+    Expect(0, 1, '\P{^Is_Canonical_Combining_Class=_ CCC133}', "");
+    Error('\p{Is_Ccc=:=-	00133}');
+    Error('\P{Is_Ccc=:=-	00133}');
+    Expect(0, 1, '\p{Is_Ccc=0000133}', "");
+    Expect(1, 1, '\p{^Is_Ccc=0000133}', "");
+    Expect(1, 1, '\P{Is_Ccc=0000133}', "");
+    Expect(0, 1, '\P{^Is_Ccc=0000133}', "");
+    Error('\p{Canonical_Combining_Class: _/a/CCC14}');
+    Error('\P{Canonical_Combining_Class: _/a/CCC14}');
     Expect(1, 1460, '\p{Canonical_Combining_Class=:\ACCC14\z:}', "");;
     Expect(0, 1461, '\p{Canonical_Combining_Class=:\ACCC14\z:}', "");;
-    Expect(1, 1460, '\p{Canonical_Combining_Class:ccc14}', "");
-    Expect(0, 1460, '\p{^Canonical_Combining_Class:ccc14}', "");
-    Expect(0, 1460, '\P{Canonical_Combining_Class:ccc14}', "");
-    Expect(1, 1460, '\P{^Canonical_Combining_Class:ccc14}', "");
-    Expect(0, 1461, '\p{Canonical_Combining_Class:ccc14}', "");
-    Expect(1, 1461, '\p{^Canonical_Combining_Class:ccc14}', "");
-    Expect(1, 1461, '\P{Canonical_Combining_Class:ccc14}', "");
-    Expect(0, 1461, '\P{^Canonical_Combining_Class:ccc14}', "");
+    Expect(1, 1460, '\p{Canonical_Combining_Class=ccc14}', "");
+    Expect(0, 1460, '\p{^Canonical_Combining_Class=ccc14}', "");
+    Expect(0, 1460, '\P{Canonical_Combining_Class=ccc14}', "");
+    Expect(1, 1460, '\P{^Canonical_Combining_Class=ccc14}', "");
+    Expect(0, 1461, '\p{Canonical_Combining_Class=ccc14}', "");
+    Expect(1, 1461, '\p{^Canonical_Combining_Class=ccc14}', "");
+    Expect(1, 1461, '\P{Canonical_Combining_Class=ccc14}', "");
+    Expect(0, 1461, '\P{^Canonical_Combining_Class=ccc14}', "");
     Expect(1, 1460, '\p{Canonical_Combining_Class=:\Accc14\z:}', "");;
     Expect(0, 1461, '\p{Canonical_Combining_Class=:\Accc14\z:}', "");;
-    Expect(1, 1460, '\p{Canonical_Combining_Class: ccc14}', "");
-    Expect(0, 1460, '\p{^Canonical_Combining_Class: ccc14}', "");
-    Expect(0, 1460, '\P{Canonical_Combining_Class: ccc14}', "");
-    Expect(1, 1460, '\P{^Canonical_Combining_Class: ccc14}', "");
-    Expect(0, 1461, '\p{Canonical_Combining_Class: ccc14}', "");
-    Expect(1, 1461, '\p{^Canonical_Combining_Class: ccc14}', "");
-    Expect(1, 1461, '\P{Canonical_Combining_Class: ccc14}', "");
-    Expect(0, 1461, '\P{^Canonical_Combining_Class: ccc14}', "");
-    Error('\p{Ccc=	_0014:=}');
-    Error('\P{Ccc=	_0014:=}');
+    Expect(1, 1460, '\p{Canonical_Combining_Class= 	CCC14}', "");
+    Expect(0, 1460, '\p{^Canonical_Combining_Class= 	CCC14}', "");
+    Expect(0, 1460, '\P{Canonical_Combining_Class= 	CCC14}', "");
+    Expect(1, 1460, '\P{^Canonical_Combining_Class= 	CCC14}', "");
+    Expect(0, 1461, '\p{Canonical_Combining_Class= 	CCC14}', "");
+    Expect(1, 1461, '\p{^Canonical_Combining_Class= 	CCC14}', "");
+    Expect(1, 1461, '\P{Canonical_Combining_Class= 	CCC14}', "");
+    Expect(0, 1461, '\P{^Canonical_Combining_Class= 	CCC14}', "");
+    Error('\p{Ccc=_	00000014/a/}');
+    Error('\P{Ccc=_	00000014/a/}');
     Expect(1, 1460, '\p{Ccc=:\A14\z:}', "");;
     Expect(0, 1461, '\p{Ccc=:\A14\z:}', "");;
-    Expect(1, 1460, '\p{Ccc: 0014}', "");
-    Expect(0, 1460, '\p{^Ccc: 0014}', "");
-    Expect(0, 1460, '\P{Ccc: 0014}', "");
-    Expect(1, 1460, '\P{^Ccc: 0014}', "");
-    Expect(0, 1461, '\p{Ccc: 0014}', "");
-    Expect(1, 1461, '\p{^Ccc: 0014}', "");
-    Expect(1, 1461, '\P{Ccc: 0014}', "");
-    Expect(0, 1461, '\P{^Ccc: 0014}', "");
-    Error('\p{Is_Canonical_Combining_Class= :=ccc14}');
-    Error('\P{Is_Canonical_Combining_Class= :=ccc14}');
+    Expect(1, 1460, '\p{Ccc=0000000014}', "");
+    Expect(0, 1460, '\p{^Ccc=0000000014}', "");
+    Expect(0, 1460, '\P{Ccc=0000000014}', "");
+    Expect(1, 1460, '\P{^Ccc=0000000014}', "");
+    Expect(0, 1461, '\p{Ccc=0000000014}', "");
+    Expect(1, 1461, '\p{^Ccc=0000000014}', "");
+    Expect(1, 1461, '\P{Ccc=0000000014}', "");
+    Expect(0, 1461, '\P{^Ccc=0000000014}', "");
+    Error('\p{Is_Canonical_Combining_Class=_ccc14:=}');
+    Error('\P{Is_Canonical_Combining_Class=_ccc14:=}');
     Expect(1, 1460, '\p{Is_Canonical_Combining_Class=ccc14}', "");
     Expect(0, 1460, '\p{^Is_Canonical_Combining_Class=ccc14}', "");
     Expect(0, 1460, '\P{Is_Canonical_Combining_Class=ccc14}', "");
@@ -31199,26 +31775,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1461, '\p{^Is_Canonical_Combining_Class=ccc14}', "");
     Expect(1, 1461, '\P{Is_Canonical_Combining_Class=ccc14}', "");
     Expect(0, 1461, '\P{^Is_Canonical_Combining_Class=ccc14}', "");
-    Expect(1, 1460, '\p{Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(0, 1460, '\p{^Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(0, 1460, '\P{Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(1, 1460, '\P{^Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(0, 1461, '\p{Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(1, 1461, '\p{^Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(1, 1461, '\P{Is_Canonical_Combining_Class=_ccc14}', "");
-    Expect(0, 1461, '\P{^Is_Canonical_Combining_Class=_ccc14}', "");
-    Error('\p{Is_Ccc=/a/ 001_4}');
-    Error('\P{Is_Ccc=/a/ 001_4}');
-    Expect(1, 1460, '\p{Is_Ccc=00000014}', "");
-    Expect(0, 1460, '\p{^Is_Ccc=00000014}', "");
-    Expect(0, 1460, '\P{Is_Ccc=00000014}', "");
-    Expect(1, 1460, '\P{^Is_Ccc=00000014}', "");
-    Expect(0, 1461, '\p{Is_Ccc=00000014}', "");
-    Expect(1, 1461, '\p{^Is_Ccc=00000014}', "");
-    Expect(1, 1461, '\P{Is_Ccc=00000014}', "");
-    Expect(0, 1461, '\P{^Is_Ccc=00000014}', "");
-    Error('\p{Canonical_Combining_Class=	ccc15:=}');
-    Error('\P{Canonical_Combining_Class=	ccc15:=}');
+    Expect(1, 1460, '\p{Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(0, 1460, '\p{^Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(0, 1460, '\P{Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(1, 1460, '\P{^Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(0, 1461, '\p{Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(1, 1461, '\p{^Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(1, 1461, '\P{Is_Canonical_Combining_Class=__ccc14}', "");
+    Expect(0, 1461, '\P{^Is_Canonical_Combining_Class=__ccc14}', "");
+    Error('\p{Is_Ccc:   	_0000014:=}');
+    Error('\P{Is_Ccc:   	_0000014:=}');
+    Expect(1, 1460, '\p{Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(0, 1460, '\p{^Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(0, 1460, '\P{Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(1, 1460, '\P{^Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(0, 1461, '\p{Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(1, 1461, '\p{^Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(1, 1461, '\P{Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Expect(0, 1461, '\P{^Is_Ccc: 0_0_0_0_0_0_0_014}', "");
+    Error('\p{Canonical_Combining_Class=_:=CCC15}');
+    Error('\P{Canonical_Combining_Class=_:=CCC15}');
     Expect(1, 1461, '\p{Canonical_Combining_Class=:\ACCC15\z:}', "");;
     Expect(0, 1462, '\p{Canonical_Combining_Class=:\ACCC15\z:}', "");;
     Expect(1, 1461, '\p{Canonical_Combining_Class=ccc15}', "");
@@ -31231,28 +31807,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1462, '\P{^Canonical_Combining_Class=ccc15}', "");
     Expect(1, 1461, '\p{Canonical_Combining_Class=:\Accc15\z:}', "");;
     Expect(0, 1462, '\p{Canonical_Combining_Class=:\Accc15\z:}', "");;
-    Expect(1, 1461, '\p{Canonical_Combining_Class: 	CCC15}', "");
-    Expect(0, 1461, '\p{^Canonical_Combining_Class: 	CCC15}', "");
-    Expect(0, 1461, '\P{Canonical_Combining_Class: 	CCC15}', "");
-    Expect(1, 1461, '\P{^Canonical_Combining_Class: 	CCC15}', "");
-    Expect(0, 1462, '\p{Canonical_Combining_Class: 	CCC15}', "");
-    Expect(1, 1462, '\p{^Canonical_Combining_Class: 	CCC15}', "");
-    Expect(1, 1462, '\P{Canonical_Combining_Class: 	CCC15}', "");
-    Expect(0, 1462, '\P{^Canonical_Combining_Class: 	CCC15}', "");
-    Error('\p{Ccc=- 00_01_5/a/}');
-    Error('\P{Ccc=- 00_01_5/a/}');
+    Expect(1, 1461, '\p{Canonical_Combining_Class=-_CCC15}', "");
+    Expect(0, 1461, '\p{^Canonical_Combining_Class=-_CCC15}', "");
+    Expect(0, 1461, '\P{Canonical_Combining_Class=-_CCC15}', "");
+    Expect(1, 1461, '\P{^Canonical_Combining_Class=-_CCC15}', "");
+    Expect(0, 1462, '\p{Canonical_Combining_Class=-_CCC15}', "");
+    Expect(1, 1462, '\p{^Canonical_Combining_Class=-_CCC15}', "");
+    Expect(1, 1462, '\P{Canonical_Combining_Class=-_CCC15}', "");
+    Expect(0, 1462, '\P{^Canonical_Combining_Class=-_CCC15}', "");
+    Error('\p{Ccc=-/a/0000000015}');
+    Error('\P{Ccc=-/a/0000000015}');
     Expect(1, 1461, '\p{Ccc=:\A15\z:}', "");;
     Expect(0, 1462, '\p{Ccc=:\A15\z:}', "");;
-    Expect(1, 1461, '\p{Ccc=00000015}', "");
-    Expect(0, 1461, '\p{^Ccc=00000015}', "");
-    Expect(0, 1461, '\P{Ccc=00000015}', "");
-    Expect(1, 1461, '\P{^Ccc=00000015}', "");
-    Expect(0, 1462, '\p{Ccc=00000015}', "");
-    Expect(1, 1462, '\p{^Ccc=00000015}', "");
-    Expect(1, 1462, '\P{Ccc=00000015}', "");
-    Expect(0, 1462, '\P{^Ccc=00000015}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/- CCC15}');
-    Error('\P{Is_Canonical_Combining_Class=/a/- CCC15}');
+    Expect(1, 1461, '\p{Ccc=001_5}', "");
+    Expect(0, 1461, '\p{^Ccc=001_5}', "");
+    Expect(0, 1461, '\P{Ccc=001_5}', "");
+    Expect(1, 1461, '\P{^Ccc=001_5}', "");
+    Expect(0, 1462, '\p{Ccc=001_5}', "");
+    Expect(1, 1462, '\p{^Ccc=001_5}', "");
+    Expect(1, 1462, '\P{Ccc=001_5}', "");
+    Expect(0, 1462, '\P{^Ccc=001_5}', "");
+    Error('\p{Is_Canonical_Combining_Class=_:=CCC15}');
+    Error('\P{Is_Canonical_Combining_Class=_:=CCC15}');
     Expect(1, 1461, '\p{Is_Canonical_Combining_Class=ccc15}', "");
     Expect(0, 1461, '\p{^Is_Canonical_Combining_Class=ccc15}', "");
     Expect(0, 1461, '\P{Is_Canonical_Combining_Class=ccc15}', "");
@@ -31261,60 +31837,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1462, '\p{^Is_Canonical_Combining_Class=ccc15}', "");
     Expect(1, 1462, '\P{Is_Canonical_Combining_Class=ccc15}', "");
     Expect(0, 1462, '\P{^Is_Canonical_Combining_Class=ccc15}', "");
-    Expect(1, 1461, '\p{Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(0, 1461, '\p{^Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(0, 1461, '\P{Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(1, 1461, '\P{^Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(0, 1462, '\p{Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(1, 1462, '\p{^Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(1, 1462, '\P{Is_Canonical_Combining_Class= _ccc15}', "");
-    Expect(0, 1462, '\P{^Is_Canonical_Combining_Class= _ccc15}', "");
-    Error('\p{Is_Ccc:/a/_	+1_5}');
-    Error('\P{Is_Ccc:/a/_	+1_5}');
-    Expect(1, 1461, '\p{Is_Ccc=00015}', "");
-    Expect(0, 1461, '\p{^Is_Ccc=00015}', "");
-    Expect(0, 1461, '\P{Is_Ccc=00015}', "");
-    Expect(1, 1461, '\P{^Is_Ccc=00015}', "");
-    Expect(0, 1462, '\p{Is_Ccc=00015}', "");
-    Expect(1, 1462, '\p{^Is_Ccc=00015}', "");
-    Expect(1, 1462, '\P{Is_Ccc=00015}', "");
-    Expect(0, 1462, '\P{^Is_Ccc=00015}', "");
-    Error('\p{Canonical_Combining_Class=	 CCC16/a/}');
-    Error('\P{Canonical_Combining_Class=	 CCC16/a/}');
+    Expect(1, 1461, '\p{Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(0, 1461, '\p{^Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(0, 1461, '\P{Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(1, 1461, '\P{^Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(0, 1462, '\p{Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(1, 1462, '\p{^Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(1, 1462, '\P{Is_Canonical_Combining_Class= _CCC15}', "");
+    Expect(0, 1462, '\P{^Is_Canonical_Combining_Class= _CCC15}', "");
+    Error('\p{Is_Ccc=	+15:=}');
+    Error('\P{Is_Ccc=	+15:=}');
+    Expect(1, 1461, '\p{Is_Ccc=0000015}', "");
+    Expect(0, 1461, '\p{^Is_Ccc=0000015}', "");
+    Expect(0, 1461, '\P{Is_Ccc=0000015}', "");
+    Expect(1, 1461, '\P{^Is_Ccc=0000015}', "");
+    Expect(0, 1462, '\p{Is_Ccc=0000015}', "");
+    Expect(1, 1462, '\p{^Is_Ccc=0000015}', "");
+    Expect(1, 1462, '\P{Is_Ccc=0000015}', "");
+    Expect(0, 1462, '\P{^Is_Ccc=0000015}', "");
+    Error('\p{Canonical_Combining_Class= CCC16/a/}');
+    Error('\P{Canonical_Combining_Class= CCC16/a/}');
     Expect(1, 1462, '\p{Canonical_Combining_Class=:\ACCC16\z:}', "");;
     Expect(0, 1463, '\p{Canonical_Combining_Class=:\ACCC16\z:}', "");;
-    Expect(1, 1462, '\p{Canonical_Combining_Class=ccc16}', "");
-    Expect(0, 1462, '\p{^Canonical_Combining_Class=ccc16}', "");
-    Expect(0, 1462, '\P{Canonical_Combining_Class=ccc16}', "");
-    Expect(1, 1462, '\P{^Canonical_Combining_Class=ccc16}', "");
-    Expect(0, 1463, '\p{Canonical_Combining_Class=ccc16}', "");
-    Expect(1, 1463, '\p{^Canonical_Combining_Class=ccc16}', "");
-    Expect(1, 1463, '\P{Canonical_Combining_Class=ccc16}', "");
-    Expect(0, 1463, '\P{^Canonical_Combining_Class=ccc16}', "");
+    Expect(1, 1462, '\p{Canonical_Combining_Class: ccc16}', "");
+    Expect(0, 1462, '\p{^Canonical_Combining_Class: ccc16}', "");
+    Expect(0, 1462, '\P{Canonical_Combining_Class: ccc16}', "");
+    Expect(1, 1462, '\P{^Canonical_Combining_Class: ccc16}', "");
+    Expect(0, 1463, '\p{Canonical_Combining_Class: ccc16}', "");
+    Expect(1, 1463, '\p{^Canonical_Combining_Class: ccc16}', "");
+    Expect(1, 1463, '\P{Canonical_Combining_Class: ccc16}', "");
+    Expect(0, 1463, '\P{^Canonical_Combining_Class: ccc16}', "");
     Expect(1, 1462, '\p{Canonical_Combining_Class=:\Accc16\z:}', "");;
     Expect(0, 1463, '\p{Canonical_Combining_Class=:\Accc16\z:}', "");;
-    Expect(1, 1462, '\p{Canonical_Combining_Class:		-ccc16}', "");
-    Expect(0, 1462, '\p{^Canonical_Combining_Class:		-ccc16}', "");
-    Expect(0, 1462, '\P{Canonical_Combining_Class:		-ccc16}', "");
-    Expect(1, 1462, '\P{^Canonical_Combining_Class:		-ccc16}', "");
-    Expect(0, 1463, '\p{Canonical_Combining_Class:		-ccc16}', "");
-    Expect(1, 1463, '\p{^Canonical_Combining_Class:		-ccc16}', "");
-    Expect(1, 1463, '\P{Canonical_Combining_Class:		-ccc16}', "");
-    Expect(0, 1463, '\P{^Canonical_Combining_Class:		-ccc16}', "");
-    Error('\p{Ccc= 00000016:=}');
-    Error('\P{Ccc= 00000016:=}');
+    Expect(1, 1462, '\p{Canonical_Combining_Class=_-CCC16}', "");
+    Expect(0, 1462, '\p{^Canonical_Combining_Class=_-CCC16}', "");
+    Expect(0, 1462, '\P{Canonical_Combining_Class=_-CCC16}', "");
+    Expect(1, 1462, '\P{^Canonical_Combining_Class=_-CCC16}', "");
+    Expect(0, 1463, '\p{Canonical_Combining_Class=_-CCC16}', "");
+    Expect(1, 1463, '\p{^Canonical_Combining_Class=_-CCC16}', "");
+    Expect(1, 1463, '\P{Canonical_Combining_Class=_-CCC16}', "");
+    Expect(0, 1463, '\P{^Canonical_Combining_Class=_-CCC16}', "");
+    Error('\p{Ccc=/a/_	+0016}');
+    Error('\P{Ccc=/a/_	+0016}');
     Expect(1, 1462, '\p{Ccc=:\A16\z:}', "");;
     Expect(0, 1463, '\p{Ccc=:\A16\z:}', "");;
-    Expect(1, 1462, '\p{Ccc=0000000016}', "");
-    Expect(0, 1462, '\p{^Ccc=0000000016}', "");
-    Expect(0, 1462, '\P{Ccc=0000000016}', "");
-    Expect(1, 1462, '\P{^Ccc=0000000016}', "");
-    Expect(0, 1463, '\p{Ccc=0000000016}', "");
-    Expect(1, 1463, '\p{^Ccc=0000000016}', "");
-    Expect(1, 1463, '\P{Ccc=0000000016}', "");
-    Expect(0, 1463, '\P{^Ccc=0000000016}', "");
-    Error('\p{Is_Canonical_Combining_Class=--ccc16/a/}');
-    Error('\P{Is_Canonical_Combining_Class=--ccc16/a/}');
+    Expect(1, 1462, '\p{Ccc=+0016}', "");
+    Expect(0, 1462, '\p{^Ccc=+0016}', "");
+    Expect(0, 1462, '\P{Ccc=+0016}', "");
+    Expect(1, 1462, '\P{^Ccc=+0016}', "");
+    Expect(0, 1463, '\p{Ccc=+0016}', "");
+    Expect(1, 1463, '\p{^Ccc=+0016}', "");
+    Expect(1, 1463, '\P{Ccc=+0016}', "");
+    Expect(0, 1463, '\P{^Ccc=+0016}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=  CCC16}');
+    Error('\P{Is_Canonical_Combining_Class=:=  CCC16}');
     Expect(1, 1462, '\p{Is_Canonical_Combining_Class=ccc16}', "");
     Expect(0, 1462, '\p{^Is_Canonical_Combining_Class=ccc16}', "");
     Expect(0, 1462, '\P{Is_Canonical_Combining_Class=ccc16}', "");
@@ -31323,26 +31899,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1463, '\p{^Is_Canonical_Combining_Class=ccc16}', "");
     Expect(1, 1463, '\P{Is_Canonical_Combining_Class=ccc16}', "");
     Expect(0, 1463, '\P{^Is_Canonical_Combining_Class=ccc16}', "");
-    Expect(1, 1462, '\p{Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(0, 1462, '\p{^Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(0, 1462, '\P{Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(1, 1462, '\P{^Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(0, 1463, '\p{Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(1, 1463, '\p{^Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(1, 1463, '\P{Is_Canonical_Combining_Class= CCC16}', "");
-    Expect(0, 1463, '\P{^Is_Canonical_Combining_Class= CCC16}', "");
-    Error('\p{Is_Ccc=	:=+0_0_0_0_0016}');
-    Error('\P{Is_Ccc=	:=+0_0_0_0_0016}');
-    Expect(1, 1462, '\p{Is_Ccc=+001_6}', "");
-    Expect(0, 1462, '\p{^Is_Ccc=+001_6}', "");
-    Expect(0, 1462, '\P{Is_Ccc=+001_6}', "");
-    Expect(1, 1462, '\P{^Is_Ccc=+001_6}', "");
-    Expect(0, 1463, '\p{Is_Ccc=+001_6}', "");
-    Expect(1, 1463, '\p{^Is_Ccc=+001_6}', "");
-    Expect(1, 1463, '\P{Is_Ccc=+001_6}', "");
-    Expect(0, 1463, '\P{^Is_Ccc=+001_6}', "");
-    Error('\p{Canonical_Combining_Class=:=_	CCC17}');
-    Error('\P{Canonical_Combining_Class=:=_	CCC17}');
+    Expect(1, 1462, '\p{Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(0, 1462, '\p{^Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(0, 1462, '\P{Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(1, 1462, '\P{^Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(0, 1463, '\p{Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(1, 1463, '\p{^Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(1, 1463, '\P{Is_Canonical_Combining_Class= 	CCC16}', "");
+    Expect(0, 1463, '\P{^Is_Canonical_Combining_Class= 	CCC16}', "");
+    Error('\p{Is_Ccc=-	+0000016/a/}');
+    Error('\P{Is_Ccc=-	+0000016/a/}');
+    Expect(1, 1462, '\p{Is_Ccc=00000016}', "");
+    Expect(0, 1462, '\p{^Is_Ccc=00000016}', "");
+    Expect(0, 1462, '\P{Is_Ccc=00000016}', "");
+    Expect(1, 1462, '\P{^Is_Ccc=00000016}', "");
+    Expect(0, 1463, '\p{Is_Ccc=00000016}', "");
+    Expect(1, 1463, '\p{^Is_Ccc=00000016}', "");
+    Expect(1, 1463, '\P{Is_Ccc=00000016}', "");
+    Expect(0, 1463, '\P{^Is_Ccc=00000016}', "");
+    Error('\p{Canonical_Combining_Class=_CCC17/a/}');
+    Error('\P{Canonical_Combining_Class=_CCC17/a/}');
     Expect(1, 1463, '\p{Canonical_Combining_Class=:\ACCC17\z:}', "");;
     Expect(0, 1464, '\p{Canonical_Combining_Class=:\ACCC17\z:}', "");;
     Expect(1, 1463, '\p{Canonical_Combining_Class=ccc17}', "");
@@ -31355,56 +31931,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1464, '\P{^Canonical_Combining_Class=ccc17}', "");
     Expect(1, 1463, '\p{Canonical_Combining_Class=:\Accc17\z:}', "");;
     Expect(0, 1464, '\p{Canonical_Combining_Class=:\Accc17\z:}', "");;
-    Expect(1, 1463, '\p{Canonical_Combining_Class=_CCC17}', "");
-    Expect(0, 1463, '\p{^Canonical_Combining_Class=_CCC17}', "");
-    Expect(0, 1463, '\P{Canonical_Combining_Class=_CCC17}', "");
-    Expect(1, 1463, '\P{^Canonical_Combining_Class=_CCC17}', "");
-    Expect(0, 1464, '\p{Canonical_Combining_Class=_CCC17}', "");
-    Expect(1, 1464, '\p{^Canonical_Combining_Class=_CCC17}', "");
-    Expect(1, 1464, '\P{Canonical_Combining_Class=_CCC17}', "");
-    Expect(0, 1464, '\P{^Canonical_Combining_Class=_CCC17}', "");
-    Error('\p{Ccc=-+00_00_00_01_7:=}');
-    Error('\P{Ccc=-+00_00_00_01_7:=}');
+    Expect(1, 1463, '\p{Canonical_Combining_Class:    _CCC17}', "");
+    Expect(0, 1463, '\p{^Canonical_Combining_Class:    _CCC17}', "");
+    Expect(0, 1463, '\P{Canonical_Combining_Class:    _CCC17}', "");
+    Expect(1, 1463, '\P{^Canonical_Combining_Class:    _CCC17}', "");
+    Expect(0, 1464, '\p{Canonical_Combining_Class:    _CCC17}', "");
+    Expect(1, 1464, '\p{^Canonical_Combining_Class:    _CCC17}', "");
+    Expect(1, 1464, '\P{Canonical_Combining_Class:    _CCC17}', "");
+    Expect(0, 1464, '\P{^Canonical_Combining_Class:    _CCC17}', "");
+    Error('\p{Ccc= :=000000017}');
+    Error('\P{Ccc= :=000000017}');
     Expect(1, 1463, '\p{Ccc=:\A17\z:}', "");;
     Expect(0, 1464, '\p{Ccc=:\A17\z:}', "");;
-    Expect(1, 1463, '\p{Ccc=+0_0_17}', "");
-    Expect(0, 1463, '\p{^Ccc=+0_0_17}', "");
-    Expect(0, 1463, '\P{Ccc=+0_0_17}', "");
-    Expect(1, 1463, '\P{^Ccc=+0_0_17}', "");
-    Expect(0, 1464, '\p{Ccc=+0_0_17}', "");
-    Expect(1, 1464, '\p{^Ccc=+0_0_17}', "");
-    Expect(1, 1464, '\P{Ccc=+0_0_17}', "");
-    Expect(0, 1464, '\P{^Ccc=+0_0_17}', "");
-    Error('\p{Is_Canonical_Combining_Class= :=CCC17}');
-    Error('\P{Is_Canonical_Combining_Class= :=CCC17}');
-    Expect(1, 1463, '\p{Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(0, 1463, '\p{^Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(0, 1463, '\P{Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(1, 1463, '\P{^Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(0, 1464, '\p{Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(1, 1464, '\p{^Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(1, 1464, '\P{Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(0, 1464, '\P{^Is_Canonical_Combining_Class=ccc17}', "");
-    Expect(1, 1463, '\p{Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(0, 1463, '\p{^Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(0, 1463, '\P{Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(1, 1463, '\P{^Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(0, 1464, '\p{Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(1, 1464, '\p{^Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(1, 1464, '\P{Is_Canonical_Combining_Class=	 CCC17}', "");
-    Expect(0, 1464, '\P{^Is_Canonical_Combining_Class=	 CCC17}', "");
-    Error('\p{Is_Ccc=:=_-00017}');
-    Error('\P{Is_Ccc=:=_-00017}');
-    Expect(1, 1463, '\p{Is_Ccc=+17}', "");
-    Expect(0, 1463, '\p{^Is_Ccc=+17}', "");
-    Expect(0, 1463, '\P{Is_Ccc=+17}', "");
-    Expect(1, 1463, '\P{^Is_Ccc=+17}', "");
-    Expect(0, 1464, '\p{Is_Ccc=+17}', "");
-    Expect(1, 1464, '\p{^Is_Ccc=+17}', "");
-    Expect(1, 1464, '\P{Is_Ccc=+17}', "");
-    Expect(0, 1464, '\P{^Is_Ccc=+17}', "");
-    Error('\p{Canonical_Combining_Class=_/a/CCC18}');
-    Error('\P{Canonical_Combining_Class=_/a/CCC18}');
+    Expect(1, 1463, '\p{Ccc=000_001_7}', "");
+    Expect(0, 1463, '\p{^Ccc=000_001_7}', "");
+    Expect(0, 1463, '\P{Ccc=000_001_7}', "");
+    Expect(1, 1463, '\P{^Ccc=000_001_7}', "");
+    Expect(0, 1464, '\p{Ccc=000_001_7}', "");
+    Expect(1, 1464, '\p{^Ccc=000_001_7}', "");
+    Expect(1, 1464, '\P{Ccc=000_001_7}', "");
+    Expect(0, 1464, '\P{^Ccc=000_001_7}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/- CCC17}');
+    Error('\P{Is_Canonical_Combining_Class=/a/- CCC17}');
+    Expect(1, 1463, '\p{Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(0, 1463, '\p{^Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(0, 1463, '\P{Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(1, 1463, '\P{^Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(0, 1464, '\p{Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(1, 1464, '\p{^Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(1, 1464, '\P{Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(0, 1464, '\P{^Is_Canonical_Combining_Class:	ccc17}', "");
+    Expect(1, 1463, '\p{Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(0, 1463, '\p{^Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(0, 1463, '\P{Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(1, 1463, '\P{^Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(0, 1464, '\p{Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(1, 1464, '\p{^Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(1, 1464, '\P{Is_Canonical_Combining_Class=_-ccc17}', "");
+    Expect(0, 1464, '\P{^Is_Canonical_Combining_Class=_-ccc17}', "");
+    Error('\p{Is_Ccc=- 00_00_00_00_01_7:=}');
+    Error('\P{Is_Ccc=- 00_00_00_00_01_7:=}');
+    Expect(1, 1463, '\p{Is_Ccc=000017}', "");
+    Expect(0, 1463, '\p{^Is_Ccc=000017}', "");
+    Expect(0, 1463, '\P{Is_Ccc=000017}', "");
+    Expect(1, 1463, '\P{^Is_Ccc=000017}', "");
+    Expect(0, 1464, '\p{Is_Ccc=000017}', "");
+    Expect(1, 1464, '\p{^Is_Ccc=000017}', "");
+    Expect(1, 1464, '\P{Is_Ccc=000017}', "");
+    Expect(0, 1464, '\P{^Is_Ccc=000017}', "");
+    Error('\p{Canonical_Combining_Class=  CCC18/a/}');
+    Error('\P{Canonical_Combining_Class=  CCC18/a/}');
     Expect(1, 1479, '\p{Canonical_Combining_Class=:\ACCC18\z:}', "");;
     Expect(0, 1480, '\p{Canonical_Combining_Class=:\ACCC18\z:}', "");;
     Expect(1, 1479, '\p{Canonical_Combining_Class=ccc18}', "");
@@ -31417,28 +31993,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1480, '\P{^Canonical_Combining_Class=ccc18}', "");
     Expect(1, 1479, '\p{Canonical_Combining_Class=:\Accc18\z:}', "");;
     Expect(0, 1480, '\p{Canonical_Combining_Class=:\Accc18\z:}', "");;
-    Expect(1, 1479, '\p{Canonical_Combining_Class= _CCC18}', "");
-    Expect(0, 1479, '\p{^Canonical_Combining_Class= _CCC18}', "");
-    Expect(0, 1479, '\P{Canonical_Combining_Class= _CCC18}', "");
-    Expect(1, 1479, '\P{^Canonical_Combining_Class= _CCC18}', "");
-    Expect(0, 1480, '\p{Canonical_Combining_Class= _CCC18}', "");
-    Expect(1, 1480, '\p{^Canonical_Combining_Class= _CCC18}', "");
-    Expect(1, 1480, '\P{Canonical_Combining_Class= _CCC18}', "");
-    Expect(0, 1480, '\P{^Canonical_Combining_Class= _CCC18}', "");
-    Error('\p{Ccc=/a/ -0018}');
-    Error('\P{Ccc=/a/ -0018}');
+    Expect(1, 1479, '\p{Canonical_Combining_Class=	 CCC18}', "");
+    Expect(0, 1479, '\p{^Canonical_Combining_Class=	 CCC18}', "");
+    Expect(0, 1479, '\P{Canonical_Combining_Class=	 CCC18}', "");
+    Expect(1, 1479, '\P{^Canonical_Combining_Class=	 CCC18}', "");
+    Expect(0, 1480, '\p{Canonical_Combining_Class=	 CCC18}', "");
+    Expect(1, 1480, '\p{^Canonical_Combining_Class=	 CCC18}', "");
+    Expect(1, 1480, '\P{Canonical_Combining_Class=	 CCC18}', "");
+    Expect(0, 1480, '\P{^Canonical_Combining_Class=	 CCC18}', "");
+    Error('\p{Ccc:	__+00000001_8:=}');
+    Error('\P{Ccc:	__+00000001_8:=}');
     Expect(1, 1479, '\p{Ccc=:\A18\z:}', "");;
     Expect(0, 1480, '\p{Ccc=:\A18\z:}', "");;
-    Expect(1, 1479, '\p{Ccc=00000018}', "");
-    Expect(0, 1479, '\p{^Ccc=00000018}', "");
-    Expect(0, 1479, '\P{Ccc=00000018}', "");
-    Expect(1, 1479, '\P{^Ccc=00000018}', "");
-    Expect(0, 1480, '\p{Ccc=00000018}', "");
-    Expect(1, 1480, '\p{^Ccc=00000018}', "");
-    Expect(1, 1480, '\P{Ccc=00000018}', "");
-    Expect(0, 1480, '\P{^Ccc=00000018}', "");
-    Error('\p{Is_Canonical_Combining_Class=--CCC18:=}');
-    Error('\P{Is_Canonical_Combining_Class=--CCC18:=}');
+    Expect(1, 1479, '\p{Ccc=18}', "");
+    Expect(0, 1479, '\p{^Ccc=18}', "");
+    Expect(0, 1479, '\P{Ccc=18}', "");
+    Expect(1, 1479, '\P{^Ccc=18}', "");
+    Expect(0, 1480, '\p{Ccc=18}', "");
+    Expect(1, 1480, '\p{^Ccc=18}', "");
+    Expect(1, 1480, '\P{Ccc=18}', "");
+    Expect(0, 1480, '\P{^Ccc=18}', "");
+    Error('\p{Is_Canonical_Combining_Class=--ccc18:=}');
+    Error('\P{Is_Canonical_Combining_Class=--ccc18:=}');
     Expect(1, 1479, '\p{Is_Canonical_Combining_Class=ccc18}', "");
     Expect(0, 1479, '\p{^Is_Canonical_Combining_Class=ccc18}', "");
     Expect(0, 1479, '\P{Is_Canonical_Combining_Class=ccc18}', "");
@@ -31447,26 +32023,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1480, '\p{^Is_Canonical_Combining_Class=ccc18}', "");
     Expect(1, 1480, '\P{Is_Canonical_Combining_Class=ccc18}', "");
     Expect(0, 1480, '\P{^Is_Canonical_Combining_Class=ccc18}', "");
-    Expect(1, 1479, '\p{Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(0, 1479, '\p{^Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(0, 1479, '\P{Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(1, 1479, '\P{^Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(0, 1480, '\p{Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(1, 1480, '\p{^Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(1, 1480, '\P{Is_Canonical_Combining_Class:  CCC18}', "");
-    Expect(0, 1480, '\P{^Is_Canonical_Combining_Class:  CCC18}', "");
-    Error('\p{Is_Ccc=-:=000018}');
-    Error('\P{Is_Ccc=-:=000018}');
-    Expect(1, 1479, '\p{Is_Ccc=1_8}', "");
-    Expect(0, 1479, '\p{^Is_Ccc=1_8}', "");
-    Expect(0, 1479, '\P{Is_Ccc=1_8}', "");
-    Expect(1, 1479, '\P{^Is_Ccc=1_8}', "");
-    Expect(0, 1480, '\p{Is_Ccc=1_8}', "");
-    Expect(1, 1480, '\p{^Is_Ccc=1_8}', "");
-    Expect(1, 1480, '\P{Is_Ccc=1_8}', "");
-    Expect(0, 1480, '\P{^Is_Ccc=1_8}', "");
-    Error('\p{Canonical_Combining_Class=/a/	CCC19}');
-    Error('\P{Canonical_Combining_Class=/a/	CCC19}');
+    Expect(1, 1479, '\p{Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(0, 1479, '\p{^Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(0, 1479, '\P{Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(1, 1479, '\P{^Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(0, 1480, '\p{Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(1, 1480, '\p{^Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(1, 1480, '\P{Is_Canonical_Combining_Class=	ccc18}', "");
+    Expect(0, 1480, '\P{^Is_Canonical_Combining_Class=	ccc18}', "");
+    Error('\p{Is_Ccc=_-0_0_0_0_0_0_00018:=}');
+    Error('\P{Is_Ccc=_-0_0_0_0_0_0_00018:=}');
+    Expect(1, 1479, '\p{Is_Ccc:1_8}', "");
+    Expect(0, 1479, '\p{^Is_Ccc:1_8}', "");
+    Expect(0, 1479, '\P{Is_Ccc:1_8}', "");
+    Expect(1, 1479, '\P{^Is_Ccc:1_8}', "");
+    Expect(0, 1480, '\p{Is_Ccc:1_8}', "");
+    Expect(1, 1480, '\p{^Is_Ccc:1_8}', "");
+    Expect(1, 1480, '\P{Is_Ccc:1_8}', "");
+    Expect(0, 1480, '\P{^Is_Ccc:1_8}', "");
+    Error('\p{Canonical_Combining_Class=	/a/CCC19}');
+    Error('\P{Canonical_Combining_Class=	/a/CCC19}');
     Expect(1, 1466, '\p{Canonical_Combining_Class=:\ACCC19\z:}', "");;
     Expect(0, 1467, '\p{Canonical_Combining_Class=:\ACCC19\z:}', "");;
     Expect(1, 1466, '\p{Canonical_Combining_Class=ccc19}', "");
@@ -31479,28 +32055,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1467, '\P{^Canonical_Combining_Class=ccc19}', "");
     Expect(1, 1466, '\p{Canonical_Combining_Class=:\Accc19\z:}', "");;
     Expect(0, 1467, '\p{Canonical_Combining_Class=:\Accc19\z:}', "");;
-    Expect(1, 1466, '\p{Canonical_Combining_Class=	 CCC19}', "");
-    Expect(0, 1466, '\p{^Canonical_Combining_Class=	 CCC19}', "");
-    Expect(0, 1466, '\P{Canonical_Combining_Class=	 CCC19}', "");
-    Expect(1, 1466, '\P{^Canonical_Combining_Class=	 CCC19}', "");
-    Expect(0, 1467, '\p{Canonical_Combining_Class=	 CCC19}', "");
-    Expect(1, 1467, '\p{^Canonical_Combining_Class=	 CCC19}', "");
-    Expect(1, 1467, '\P{Canonical_Combining_Class=	 CCC19}', "");
-    Expect(0, 1467, '\P{^Canonical_Combining_Class=	 CCC19}', "");
-    Error('\p{Ccc=-:=19}');
-    Error('\P{Ccc=-:=19}');
+    Expect(1, 1466, '\p{Canonical_Combining_Class:    CCC19}', "");
+    Expect(0, 1466, '\p{^Canonical_Combining_Class:    CCC19}', "");
+    Expect(0, 1466, '\P{Canonical_Combining_Class:    CCC19}', "");
+    Expect(1, 1466, '\P{^Canonical_Combining_Class:    CCC19}', "");
+    Expect(0, 1467, '\p{Canonical_Combining_Class:    CCC19}', "");
+    Expect(1, 1467, '\p{^Canonical_Combining_Class:    CCC19}', "");
+    Expect(1, 1467, '\P{Canonical_Combining_Class:    CCC19}', "");
+    Expect(0, 1467, '\P{^Canonical_Combining_Class:    CCC19}', "");
+    Error('\p{Ccc= -0_0_19/a/}');
+    Error('\P{Ccc= -0_0_19/a/}');
     Expect(1, 1466, '\p{Ccc=:\A19\z:}', "");;
     Expect(0, 1467, '\p{Ccc=:\A19\z:}', "");;
-    Expect(1, 1466, '\p{Ccc=00000000019}', "");
-    Expect(0, 1466, '\p{^Ccc=00000000019}', "");
-    Expect(0, 1466, '\P{Ccc=00000000019}', "");
-    Expect(1, 1466, '\P{^Ccc=00000000019}', "");
-    Expect(0, 1467, '\p{Ccc=00000000019}', "");
-    Expect(1, 1467, '\p{^Ccc=00000000019}', "");
-    Expect(1, 1467, '\P{Ccc=00000000019}', "");
-    Expect(0, 1467, '\P{^Ccc=00000000019}', "");
-    Error('\p{Is_Canonical_Combining_Class= CCC19:=}');
-    Error('\P{Is_Canonical_Combining_Class= CCC19:=}');
+    Expect(1, 1466, '\p{Ccc=00_00_00_00_01_9}', "");
+    Expect(0, 1466, '\p{^Ccc=00_00_00_00_01_9}', "");
+    Expect(0, 1466, '\P{Ccc=00_00_00_00_01_9}', "");
+    Expect(1, 1466, '\P{^Ccc=00_00_00_00_01_9}', "");
+    Expect(0, 1467, '\p{Ccc=00_00_00_00_01_9}', "");
+    Expect(1, 1467, '\p{^Ccc=00_00_00_00_01_9}', "");
+    Expect(1, 1467, '\P{Ccc=00_00_00_00_01_9}', "");
+    Expect(0, 1467, '\P{^Ccc=00_00_00_00_01_9}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/-CCC19}');
+    Error('\P{Is_Canonical_Combining_Class=/a/-CCC19}');
     Expect(1, 1466, '\p{Is_Canonical_Combining_Class=ccc19}', "");
     Expect(0, 1466, '\p{^Is_Canonical_Combining_Class=ccc19}', "");
     Expect(0, 1466, '\P{Is_Canonical_Combining_Class=ccc19}', "");
@@ -31509,26 +32085,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1467, '\p{^Is_Canonical_Combining_Class=ccc19}', "");
     Expect(1, 1467, '\P{Is_Canonical_Combining_Class=ccc19}', "");
     Expect(0, 1467, '\P{^Is_Canonical_Combining_Class=ccc19}', "");
-    Expect(1, 1466, '\p{Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(0, 1466, '\p{^Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(0, 1466, '\P{Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(1, 1466, '\P{^Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(0, 1467, '\p{Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(1, 1467, '\p{^Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(1, 1467, '\P{Is_Canonical_Combining_Class= CCC19}', "");
-    Expect(0, 1467, '\P{^Is_Canonical_Combining_Class= CCC19}', "");
-    Error('\p{Is_Ccc=  019:=}');
-    Error('\P{Is_Ccc=  019:=}');
-    Expect(1, 1466, '\p{Is_Ccc=0_0_0_019}', "");
-    Expect(0, 1466, '\p{^Is_Ccc=0_0_0_019}', "");
-    Expect(0, 1466, '\P{Is_Ccc=0_0_0_019}', "");
-    Expect(1, 1466, '\P{^Is_Ccc=0_0_0_019}', "");
-    Expect(0, 1467, '\p{Is_Ccc=0_0_0_019}', "");
-    Expect(1, 1467, '\p{^Is_Ccc=0_0_0_019}', "");
-    Expect(1, 1467, '\P{Is_Ccc=0_0_0_019}', "");
-    Expect(0, 1467, '\P{^Is_Ccc=0_0_0_019}', "");
-    Error('\p{Canonical_Combining_Class=_-CCC20:=}');
-    Error('\P{Canonical_Combining_Class=_-CCC20:=}');
+    Expect(1, 1466, '\p{Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(0, 1466, '\p{^Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(0, 1466, '\P{Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(1, 1466, '\P{^Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(0, 1467, '\p{Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(1, 1467, '\p{^Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(1, 1467, '\P{Is_Canonical_Combining_Class=	_CCC19}', "");
+    Expect(0, 1467, '\P{^Is_Canonical_Combining_Class=	_CCC19}', "");
+    Error('\p{Is_Ccc=_ 00019/a/}');
+    Error('\P{Is_Ccc=_ 00019/a/}');
+    Expect(1, 1466, '\p{Is_Ccc=+0000019}', "");
+    Expect(0, 1466, '\p{^Is_Ccc=+0000019}', "");
+    Expect(0, 1466, '\P{Is_Ccc=+0000019}', "");
+    Expect(1, 1466, '\P{^Is_Ccc=+0000019}', "");
+    Expect(0, 1467, '\p{Is_Ccc=+0000019}', "");
+    Expect(1, 1467, '\p{^Is_Ccc=+0000019}', "");
+    Expect(1, 1467, '\P{Is_Ccc=+0000019}', "");
+    Expect(0, 1467, '\P{^Is_Ccc=+0000019}', "");
+    Error('\p{Canonical_Combining_Class=/a/- CCC20}');
+    Error('\P{Canonical_Combining_Class=/a/- CCC20}');
     Expect(1, 1467, '\p{Canonical_Combining_Class=:\ACCC20\z:}', "");;
     Expect(0, 1468, '\p{Canonical_Combining_Class=:\ACCC20\z:}', "");;
     Expect(1, 1467, '\p{Canonical_Combining_Class=ccc20}', "");
@@ -31541,28 +32117,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1468, '\P{^Canonical_Combining_Class=ccc20}', "");
     Expect(1, 1467, '\p{Canonical_Combining_Class=:\Accc20\z:}', "");;
     Expect(0, 1468, '\p{Canonical_Combining_Class=:\Accc20\z:}', "");;
-    Expect(1, 1467, '\p{Canonical_Combining_Class=_ CCC20}', "");
-    Expect(0, 1467, '\p{^Canonical_Combining_Class=_ CCC20}', "");
-    Expect(0, 1467, '\P{Canonical_Combining_Class=_ CCC20}', "");
-    Expect(1, 1467, '\P{^Canonical_Combining_Class=_ CCC20}', "");
-    Expect(0, 1468, '\p{Canonical_Combining_Class=_ CCC20}', "");
-    Expect(1, 1468, '\p{^Canonical_Combining_Class=_ CCC20}', "");
-    Expect(1, 1468, '\P{Canonical_Combining_Class=_ CCC20}', "");
-    Expect(0, 1468, '\P{^Canonical_Combining_Class=_ CCC20}', "");
-    Error('\p{Ccc=  0000000020:=}');
-    Error('\P{Ccc=  0000000020:=}');
+    Expect(1, 1467, '\p{Canonical_Combining_Class=	CCC20}', "");
+    Expect(0, 1467, '\p{^Canonical_Combining_Class=	CCC20}', "");
+    Expect(0, 1467, '\P{Canonical_Combining_Class=	CCC20}', "");
+    Expect(1, 1467, '\P{^Canonical_Combining_Class=	CCC20}', "");
+    Expect(0, 1468, '\p{Canonical_Combining_Class=	CCC20}', "");
+    Expect(1, 1468, '\p{^Canonical_Combining_Class=	CCC20}', "");
+    Expect(1, 1468, '\P{Canonical_Combining_Class=	CCC20}', "");
+    Expect(0, 1468, '\P{^Canonical_Combining_Class=	CCC20}', "");
+    Error('\p{Ccc=	:=20}');
+    Error('\P{Ccc=	:=20}');
     Expect(1, 1467, '\p{Ccc=:\A20\z:}', "");;
     Expect(0, 1468, '\p{Ccc=:\A20\z:}', "");;
-    Expect(1, 1467, '\p{Ccc=000_002_0}', "");
-    Expect(0, 1467, '\p{^Ccc=000_002_0}', "");
-    Expect(0, 1467, '\P{Ccc=000_002_0}', "");
-    Expect(1, 1467, '\P{^Ccc=000_002_0}', "");
-    Expect(0, 1468, '\p{Ccc=000_002_0}', "");
-    Expect(1, 1468, '\p{^Ccc=000_002_0}', "");
-    Expect(1, 1468, '\P{Ccc=000_002_0}', "");
-    Expect(0, 1468, '\P{^Ccc=000_002_0}', "");
-    Error('\p{Is_Canonical_Combining_Class=--CCC20:=}');
-    Error('\P{Is_Canonical_Combining_Class=--CCC20:=}');
+    Expect(1, 1467, '\p{Ccc=+0000000020}', "");
+    Expect(0, 1467, '\p{^Ccc=+0000000020}', "");
+    Expect(0, 1467, '\P{Ccc=+0000000020}', "");
+    Expect(1, 1467, '\P{^Ccc=+0000000020}', "");
+    Expect(0, 1468, '\p{Ccc=+0000000020}', "");
+    Expect(1, 1468, '\p{^Ccc=+0000000020}', "");
+    Expect(1, 1468, '\P{Ccc=+0000000020}', "");
+    Expect(0, 1468, '\P{^Ccc=+0000000020}', "");
+    Error('\p{Is_Canonical_Combining_Class=_/a/CCC20}');
+    Error('\P{Is_Canonical_Combining_Class=_/a/CCC20}');
     Expect(1, 1467, '\p{Is_Canonical_Combining_Class=ccc20}', "");
     Expect(0, 1467, '\p{^Is_Canonical_Combining_Class=ccc20}', "");
     Expect(0, 1467, '\P{Is_Canonical_Combining_Class=ccc20}', "");
@@ -31571,26 +32147,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1468, '\p{^Is_Canonical_Combining_Class=ccc20}', "");
     Expect(1, 1468, '\P{Is_Canonical_Combining_Class=ccc20}', "");
     Expect(0, 1468, '\P{^Is_Canonical_Combining_Class=ccc20}', "");
-    Expect(1, 1467, '\p{Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(0, 1467, '\p{^Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(0, 1467, '\P{Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(1, 1467, '\P{^Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(0, 1468, '\p{Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(1, 1468, '\p{^Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(1, 1468, '\P{Is_Canonical_Combining_Class=_	CCC20}', "");
-    Expect(0, 1468, '\P{^Is_Canonical_Combining_Class=_	CCC20}', "");
-    Error('\p{Is_Ccc=	:=02_0}');
-    Error('\P{Is_Ccc=	:=02_0}');
-    Expect(1, 1467, '\p{Is_Ccc=000002_0}', "");
-    Expect(0, 1467, '\p{^Is_Ccc=000002_0}', "");
-    Expect(0, 1467, '\P{Is_Ccc=000002_0}', "");
-    Expect(1, 1467, '\P{^Is_Ccc=000002_0}', "");
-    Expect(0, 1468, '\p{Is_Ccc=000002_0}', "");
-    Expect(1, 1468, '\p{^Is_Ccc=000002_0}', "");
-    Expect(1, 1468, '\P{Is_Ccc=000002_0}', "");
-    Expect(0, 1468, '\P{^Is_Ccc=000002_0}', "");
-    Error('\p{Canonical_Combining_Class= -CCC21:=}');
-    Error('\P{Canonical_Combining_Class= -CCC21:=}');
+    Expect(1, 1467, '\p{Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(0, 1467, '\p{^Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(0, 1467, '\P{Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(1, 1467, '\P{^Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(0, 1468, '\p{Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(1, 1468, '\p{^Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(1, 1468, '\P{Is_Canonical_Combining_Class: _CCC20}', "");
+    Expect(0, 1468, '\P{^Is_Canonical_Combining_Class: _CCC20}', "");
+    Error('\p{Is_Ccc=/a/		000_000_20}');
+    Error('\P{Is_Ccc=/a/		000_000_20}');
+    Expect(1, 1467, '\p{Is_Ccc=+2_0}', "");
+    Expect(0, 1467, '\p{^Is_Ccc=+2_0}', "");
+    Expect(0, 1467, '\P{Is_Ccc=+2_0}', "");
+    Expect(1, 1467, '\P{^Is_Ccc=+2_0}', "");
+    Expect(0, 1468, '\p{Is_Ccc=+2_0}', "");
+    Expect(1, 1468, '\p{^Is_Ccc=+2_0}', "");
+    Expect(1, 1468, '\P{Is_Ccc=+2_0}', "");
+    Expect(0, 1468, '\P{^Is_Ccc=+2_0}', "");
+    Error('\p{Canonical_Combining_Class=_:=ccc21}');
+    Error('\P{Canonical_Combining_Class=_:=ccc21}');
     Expect(1, 1468, '\p{Canonical_Combining_Class=:\ACCC21\z:}', "");;
     Expect(0, 1469, '\p{Canonical_Combining_Class=:\ACCC21\z:}', "");;
     Expect(1, 1468, '\p{Canonical_Combining_Class=ccc21}', "");
@@ -31603,28 +32179,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1469, '\P{^Canonical_Combining_Class=ccc21}', "");
     Expect(1, 1468, '\p{Canonical_Combining_Class=:\Accc21\z:}', "");;
     Expect(0, 1469, '\p{Canonical_Combining_Class=:\Accc21\z:}', "");;
-    Expect(1, 1468, '\p{Canonical_Combining_Class=- ccc21}', "");
-    Expect(0, 1468, '\p{^Canonical_Combining_Class=- ccc21}', "");
-    Expect(0, 1468, '\P{Canonical_Combining_Class=- ccc21}', "");
-    Expect(1, 1468, '\P{^Canonical_Combining_Class=- ccc21}', "");
-    Expect(0, 1469, '\p{Canonical_Combining_Class=- ccc21}', "");
-    Expect(1, 1469, '\p{^Canonical_Combining_Class=- ccc21}', "");
-    Expect(1, 1469, '\P{Canonical_Combining_Class=- ccc21}', "");
-    Expect(0, 1469, '\P{^Canonical_Combining_Class=- ccc21}', "");
-    Error('\p{Ccc=-:=02_1}');
-    Error('\P{Ccc=-:=02_1}');
+    Expect(1, 1468, '\p{Canonical_Combining_Class=_-CCC21}', "");
+    Expect(0, 1468, '\p{^Canonical_Combining_Class=_-CCC21}', "");
+    Expect(0, 1468, '\P{Canonical_Combining_Class=_-CCC21}', "");
+    Expect(1, 1468, '\P{^Canonical_Combining_Class=_-CCC21}', "");
+    Expect(0, 1469, '\p{Canonical_Combining_Class=_-CCC21}', "");
+    Expect(1, 1469, '\p{^Canonical_Combining_Class=_-CCC21}', "");
+    Expect(1, 1469, '\P{Canonical_Combining_Class=_-CCC21}', "");
+    Expect(0, 1469, '\P{^Canonical_Combining_Class=_-CCC21}', "");
+    Error('\p{Ccc=:=_02_1}');
+    Error('\P{Ccc=:=_02_1}');
     Expect(1, 1468, '\p{Ccc=:\A21\z:}', "");;
     Expect(0, 1469, '\p{Ccc=:\A21\z:}', "");;
-    Expect(1, 1468, '\p{Ccc=00000021}', "");
-    Expect(0, 1468, '\p{^Ccc=00000021}', "");
-    Expect(0, 1468, '\P{Ccc=00000021}', "");
-    Expect(1, 1468, '\P{^Ccc=00000021}', "");
-    Expect(0, 1469, '\p{Ccc=00000021}', "");
-    Expect(1, 1469, '\p{^Ccc=00000021}', "");
-    Expect(1, 1469, '\P{Ccc=00000021}', "");
-    Expect(0, 1469, '\P{^Ccc=00000021}', "");
-    Error('\p{Is_Canonical_Combining_Class=	:=CCC21}');
-    Error('\P{Is_Canonical_Combining_Class=	:=CCC21}');
+    Expect(1, 1468, '\p{Ccc=+0000000021}', "");
+    Expect(0, 1468, '\p{^Ccc=+0000000021}', "");
+    Expect(0, 1468, '\P{Ccc=+0000000021}', "");
+    Expect(1, 1468, '\P{^Ccc=+0000000021}', "");
+    Expect(0, 1469, '\p{Ccc=+0000000021}', "");
+    Expect(1, 1469, '\p{^Ccc=+0000000021}', "");
+    Expect(1, 1469, '\P{Ccc=+0000000021}', "");
+    Expect(0, 1469, '\P{^Ccc=+0000000021}', "");
+    Error('\p{Is_Canonical_Combining_Class=_CCC21/a/}');
+    Error('\P{Is_Canonical_Combining_Class=_CCC21/a/}');
     Expect(1, 1468, '\p{Is_Canonical_Combining_Class=ccc21}', "");
     Expect(0, 1468, '\p{^Is_Canonical_Combining_Class=ccc21}', "");
     Expect(0, 1468, '\P{Is_Canonical_Combining_Class=ccc21}', "");
@@ -31633,26 +32209,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1469, '\p{^Is_Canonical_Combining_Class=ccc21}', "");
     Expect(1, 1469, '\P{Is_Canonical_Combining_Class=ccc21}', "");
     Expect(0, 1469, '\P{^Is_Canonical_Combining_Class=ccc21}', "");
-    Expect(1, 1468, '\p{Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(0, 1468, '\p{^Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(0, 1468, '\P{Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(1, 1468, '\P{^Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(0, 1469, '\p{Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(1, 1469, '\p{^Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(1, 1469, '\P{Is_Canonical_Combining_Class=--CCC21}', "");
-    Expect(0, 1469, '\P{^Is_Canonical_Combining_Class=--CCC21}', "");
-    Error('\p{Is_Ccc=  0_0_0_0_0_0_0_0021/a/}');
-    Error('\P{Is_Ccc=  0_0_0_0_0_0_0_0021/a/}');
-    Expect(1, 1468, '\p{Is_Ccc=+000021}', "");
-    Expect(0, 1468, '\p{^Is_Ccc=+000021}', "");
-    Expect(0, 1468, '\P{Is_Ccc=+000021}', "");
-    Expect(1, 1468, '\P{^Is_Ccc=+000021}', "");
-    Expect(0, 1469, '\p{Is_Ccc=+000021}', "");
-    Expect(1, 1469, '\p{^Is_Ccc=+000021}', "");
-    Expect(1, 1469, '\P{Is_Ccc=+000021}', "");
-    Expect(0, 1469, '\P{^Is_Ccc=+000021}', "");
-    Error('\p{Canonical_Combining_Class:    /a/ccc22}');
-    Error('\P{Canonical_Combining_Class:    /a/ccc22}');
+    Expect(1, 1468, '\p{Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(0, 1468, '\p{^Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(0, 1468, '\P{Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(1, 1468, '\P{^Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(0, 1469, '\p{Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(1, 1469, '\p{^Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(1, 1469, '\P{Is_Canonical_Combining_Class=-ccc21}', "");
+    Expect(0, 1469, '\P{^Is_Canonical_Combining_Class=-ccc21}', "");
+    Error('\p{Is_Ccc=:= 0000021}');
+    Error('\P{Is_Ccc=:= 0000021}');
+    Expect(1, 1468, '\p{Is_Ccc=0021}', "");
+    Expect(0, 1468, '\p{^Is_Ccc=0021}', "");
+    Expect(0, 1468, '\P{Is_Ccc=0021}', "");
+    Expect(1, 1468, '\P{^Is_Ccc=0021}', "");
+    Expect(0, 1469, '\p{Is_Ccc=0021}', "");
+    Expect(1, 1469, '\p{^Is_Ccc=0021}', "");
+    Expect(1, 1469, '\P{Is_Ccc=0021}', "");
+    Expect(0, 1469, '\P{^Is_Ccc=0021}', "");
+    Error('\p{Canonical_Combining_Class=_:=CCC22}');
+    Error('\P{Canonical_Combining_Class=_:=CCC22}');
     Expect(1, 1469, '\p{Canonical_Combining_Class=:\ACCC22\z:}', "");;
     Expect(0, 1470, '\p{Canonical_Combining_Class=:\ACCC22\z:}', "");;
     Expect(1, 1469, '\p{Canonical_Combining_Class=ccc22}', "");
@@ -31665,28 +32241,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1470, '\P{^Canonical_Combining_Class=ccc22}', "");
     Expect(1, 1469, '\p{Canonical_Combining_Class=:\Accc22\z:}', "");;
     Expect(0, 1470, '\p{Canonical_Combining_Class=:\Accc22\z:}', "");;
-    Expect(1, 1469, '\p{Canonical_Combining_Class= _ccc22}', "");
-    Expect(0, 1469, '\p{^Canonical_Combining_Class= _ccc22}', "");
-    Expect(0, 1469, '\P{Canonical_Combining_Class= _ccc22}', "");
-    Expect(1, 1469, '\P{^Canonical_Combining_Class= _ccc22}', "");
-    Expect(0, 1470, '\p{Canonical_Combining_Class= _ccc22}', "");
-    Expect(1, 1470, '\p{^Canonical_Combining_Class= _ccc22}', "");
-    Expect(1, 1470, '\P{Canonical_Combining_Class= _ccc22}', "");
-    Expect(0, 1470, '\P{^Canonical_Combining_Class= _ccc22}', "");
-    Error('\p{Ccc=:=- 00_00_00_02_2}');
-    Error('\P{Ccc=:=- 00_00_00_02_2}');
+    Expect(1, 1469, '\p{Canonical_Combining_Class=-	CCC22}', "");
+    Expect(0, 1469, '\p{^Canonical_Combining_Class=-	CCC22}', "");
+    Expect(0, 1469, '\P{Canonical_Combining_Class=-	CCC22}', "");
+    Expect(1, 1469, '\P{^Canonical_Combining_Class=-	CCC22}', "");
+    Expect(0, 1470, '\p{Canonical_Combining_Class=-	CCC22}', "");
+    Expect(1, 1470, '\p{^Canonical_Combining_Class=-	CCC22}', "");
+    Expect(1, 1470, '\P{Canonical_Combining_Class=-	CCC22}', "");
+    Expect(0, 1470, '\P{^Canonical_Combining_Class=-	CCC22}', "");
+    Error('\p{Ccc=	-00000000022/a/}');
+    Error('\P{Ccc=	-00000000022/a/}');
     Expect(1, 1469, '\p{Ccc=:\A22\z:}', "");;
     Expect(0, 1470, '\p{Ccc=:\A22\z:}', "");;
-    Expect(1, 1469, '\p{Ccc=2_2}', "");
-    Expect(0, 1469, '\p{^Ccc=2_2}', "");
-    Expect(0, 1469, '\P{Ccc=2_2}', "");
-    Expect(1, 1469, '\P{^Ccc=2_2}', "");
-    Expect(0, 1470, '\p{Ccc=2_2}', "");
-    Expect(1, 1470, '\p{^Ccc=2_2}', "");
-    Expect(1, 1470, '\P{Ccc=2_2}', "");
-    Expect(0, 1470, '\P{^Ccc=2_2}', "");
-    Error('\p{Is_Canonical_Combining_Class=- CCC22/a/}');
-    Error('\P{Is_Canonical_Combining_Class=- CCC22/a/}');
+    Expect(1, 1469, '\p{Ccc=00000000022}', "");
+    Expect(0, 1469, '\p{^Ccc=00000000022}', "");
+    Expect(0, 1469, '\P{Ccc=00000000022}', "");
+    Expect(1, 1469, '\P{^Ccc=00000000022}', "");
+    Expect(0, 1470, '\p{Ccc=00000000022}', "");
+    Expect(1, 1470, '\p{^Ccc=00000000022}', "");
+    Expect(1, 1470, '\P{Ccc=00000000022}', "");
+    Expect(0, 1470, '\P{^Ccc=00000000022}', "");
+    Error('\p{Is_Canonical_Combining_Class=_ CCC22/a/}');
+    Error('\P{Is_Canonical_Combining_Class=_ CCC22/a/}');
     Expect(1, 1469, '\p{Is_Canonical_Combining_Class=ccc22}', "");
     Expect(0, 1469, '\p{^Is_Canonical_Combining_Class=ccc22}', "");
     Expect(0, 1469, '\P{Is_Canonical_Combining_Class=ccc22}', "");
@@ -31695,26 +32271,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1470, '\p{^Is_Canonical_Combining_Class=ccc22}', "");
     Expect(1, 1470, '\P{Is_Canonical_Combining_Class=ccc22}', "");
     Expect(0, 1470, '\P{^Is_Canonical_Combining_Class=ccc22}', "");
-    Expect(1, 1469, '\p{Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(0, 1469, '\p{^Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(0, 1469, '\P{Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(1, 1469, '\P{^Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(0, 1470, '\p{Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(1, 1470, '\p{^Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(1, 1470, '\P{Is_Canonical_Combining_Class=	_ccc22}', "");
-    Expect(0, 1470, '\P{^Is_Canonical_Combining_Class=	_ccc22}', "");
-    Error('\p{Is_Ccc= /a/0000022}');
-    Error('\P{Is_Ccc= /a/0000022}');
-    Expect(1, 1469, '\p{Is_Ccc=+00022}', "");
-    Expect(0, 1469, '\p{^Is_Ccc=+00022}', "");
-    Expect(0, 1469, '\P{Is_Ccc=+00022}', "");
-    Expect(1, 1469, '\P{^Is_Ccc=+00022}', "");
-    Expect(0, 1470, '\p{Is_Ccc=+00022}', "");
-    Expect(1, 1470, '\p{^Is_Ccc=+00022}', "");
-    Expect(1, 1470, '\P{Is_Ccc=+00022}', "");
-    Expect(0, 1470, '\P{^Is_Ccc=+00022}', "");
-    Error('\p{Canonical_Combining_Class= CCC23/a/}');
-    Error('\P{Canonical_Combining_Class= CCC23/a/}');
+    Expect(1, 1469, '\p{Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(0, 1469, '\p{^Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(0, 1469, '\P{Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(1, 1469, '\P{^Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(0, 1470, '\p{Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(1, 1470, '\p{^Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(1, 1470, '\P{Is_Canonical_Combining_Class= -CCC22}', "");
+    Expect(0, 1470, '\P{^Is_Canonical_Combining_Class= -CCC22}', "");
+    Error('\p{Is_Ccc=-0_0_0_22:=}');
+    Error('\P{Is_Ccc=-0_0_0_22:=}');
+    Expect(1, 1469, '\p{Is_Ccc=22}', "");
+    Expect(0, 1469, '\p{^Is_Ccc=22}', "");
+    Expect(0, 1469, '\P{Is_Ccc=22}', "");
+    Expect(1, 1469, '\P{^Is_Ccc=22}', "");
+    Expect(0, 1470, '\p{Is_Ccc=22}', "");
+    Expect(1, 1470, '\p{^Is_Ccc=22}', "");
+    Expect(1, 1470, '\P{Is_Ccc=22}', "");
+    Expect(0, 1470, '\P{^Is_Ccc=22}', "");
+    Error('\p{Canonical_Combining_Class=:=_-CCC23}');
+    Error('\P{Canonical_Combining_Class=:=_-CCC23}');
     Expect(1, 1471, '\p{Canonical_Combining_Class=:\ACCC23\z:}', "");;
     Expect(0, 1472, '\p{Canonical_Combining_Class=:\ACCC23\z:}', "");;
     Expect(1, 1471, '\p{Canonical_Combining_Class=ccc23}', "");
@@ -31735,20 +32311,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1472, '\p{^Canonical_Combining_Class=--CCC23}', "");
     Expect(1, 1472, '\P{Canonical_Combining_Class=--CCC23}', "");
     Expect(0, 1472, '\P{^Canonical_Combining_Class=--CCC23}', "");
-    Error('\p{Ccc=-+000023/a/}');
-    Error('\P{Ccc=-+000023/a/}');
+    Error('\p{Ccc: /a/	+00_02_3}');
+    Error('\P{Ccc: /a/	+00_02_3}');
     Expect(1, 1471, '\p{Ccc=:\A23\z:}', "");;
     Expect(0, 1472, '\p{Ccc=:\A23\z:}', "");;
-    Expect(1, 1471, '\p{Ccc=00000000023}', "");
-    Expect(0, 1471, '\p{^Ccc=00000000023}', "");
-    Expect(0, 1471, '\P{Ccc=00000000023}', "");
-    Expect(1, 1471, '\P{^Ccc=00000000023}', "");
-    Expect(0, 1472, '\p{Ccc=00000000023}', "");
-    Expect(1, 1472, '\p{^Ccc=00000000023}', "");
-    Expect(1, 1472, '\P{Ccc=00000000023}', "");
-    Expect(0, 1472, '\P{^Ccc=00000000023}', "");
-    Error('\p{Is_Canonical_Combining_Class= -CCC23:=}');
-    Error('\P{Is_Canonical_Combining_Class= -CCC23:=}');
+    Expect(1, 1471, '\p{Ccc=+00_00_23}', "");
+    Expect(0, 1471, '\p{^Ccc=+00_00_23}', "");
+    Expect(0, 1471, '\P{Ccc=+00_00_23}', "");
+    Expect(1, 1471, '\P{^Ccc=+00_00_23}', "");
+    Expect(0, 1472, '\p{Ccc=+00_00_23}', "");
+    Expect(1, 1472, '\p{^Ccc=+00_00_23}', "");
+    Expect(1, 1472, '\P{Ccc=+00_00_23}', "");
+    Expect(0, 1472, '\P{^Ccc=+00_00_23}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=_ CCC23}');
+    Error('\P{Is_Canonical_Combining_Class=:=_ CCC23}');
     Expect(1, 1471, '\p{Is_Canonical_Combining_Class=ccc23}', "");
     Expect(0, 1471, '\p{^Is_Canonical_Combining_Class=ccc23}', "");
     Expect(0, 1471, '\P{Is_Canonical_Combining_Class=ccc23}', "");
@@ -31757,26 +32333,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1472, '\p{^Is_Canonical_Combining_Class=ccc23}', "");
     Expect(1, 1472, '\P{Is_Canonical_Combining_Class=ccc23}', "");
     Expect(0, 1472, '\P{^Is_Canonical_Combining_Class=ccc23}', "");
-    Expect(1, 1471, '\p{Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(0, 1471, '\p{^Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(0, 1471, '\P{Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(1, 1471, '\P{^Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(0, 1472, '\p{Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(1, 1472, '\p{^Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(1, 1472, '\P{Is_Canonical_Combining_Class=_ CCC23}', "");
-    Expect(0, 1472, '\P{^Is_Canonical_Combining_Class=_ CCC23}', "");
-    Error('\p{Is_Ccc=_2_3:=}');
-    Error('\P{Is_Ccc=_2_3:=}');
-    Expect(1, 1471, '\p{Is_Ccc=000023}', "");
-    Expect(0, 1471, '\p{^Is_Ccc=000023}', "");
-    Expect(0, 1471, '\P{Is_Ccc=000023}', "");
-    Expect(1, 1471, '\P{^Is_Ccc=000023}', "");
-    Expect(0, 1472, '\p{Is_Ccc=000023}', "");
-    Expect(1, 1472, '\p{^Is_Ccc=000023}', "");
-    Expect(1, 1472, '\P{Is_Ccc=000023}', "");
-    Expect(0, 1472, '\P{^Is_Ccc=000023}', "");
-    Error('\p{Canonical_Combining_Class=_	CCC24/a/}');
-    Error('\P{Canonical_Combining_Class=_	CCC24/a/}');
+    Expect(1, 1471, '\p{Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(0, 1471, '\p{^Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(0, 1471, '\P{Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(1, 1471, '\P{^Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(0, 1472, '\p{Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(1, 1472, '\p{^Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(1, 1472, '\P{Is_Canonical_Combining_Class:	 CCC23}', "");
+    Expect(0, 1472, '\P{^Is_Canonical_Combining_Class:	 CCC23}', "");
+    Error('\p{Is_Ccc=/a/00_02_3}');
+    Error('\P{Is_Ccc=/a/00_02_3}');
+    Expect(1, 1471, '\p{Is_Ccc=+00023}', "");
+    Expect(0, 1471, '\p{^Is_Ccc=+00023}', "");
+    Expect(0, 1471, '\P{Is_Ccc=+00023}', "");
+    Expect(1, 1471, '\P{^Is_Ccc=+00023}', "");
+    Expect(0, 1472, '\p{Is_Ccc=+00023}', "");
+    Expect(1, 1472, '\p{^Is_Ccc=+00023}', "");
+    Expect(1, 1472, '\P{Is_Ccc=+00023}', "");
+    Expect(0, 1472, '\P{^Is_Ccc=+00023}', "");
+    Error('\p{Canonical_Combining_Class= :=ccc24}');
+    Error('\P{Canonical_Combining_Class= :=ccc24}');
     Expect(1, 1473, '\p{Canonical_Combining_Class=:\ACCC24\z:}', "");;
     Expect(0, 1474, '\p{Canonical_Combining_Class=:\ACCC24\z:}', "");;
     Expect(1, 1473, '\p{Canonical_Combining_Class=ccc24}', "");
@@ -31789,28 +32365,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1474, '\P{^Canonical_Combining_Class=ccc24}', "");
     Expect(1, 1473, '\p{Canonical_Combining_Class=:\Accc24\z:}', "");;
     Expect(0, 1474, '\p{Canonical_Combining_Class=:\Accc24\z:}', "");;
-    Expect(1, 1473, '\p{Canonical_Combining_Class=_CCC24}', "");
-    Expect(0, 1473, '\p{^Canonical_Combining_Class=_CCC24}', "");
-    Expect(0, 1473, '\P{Canonical_Combining_Class=_CCC24}', "");
-    Expect(1, 1473, '\P{^Canonical_Combining_Class=_CCC24}', "");
-    Expect(0, 1474, '\p{Canonical_Combining_Class=_CCC24}', "");
-    Expect(1, 1474, '\p{^Canonical_Combining_Class=_CCC24}', "");
-    Expect(1, 1474, '\P{Canonical_Combining_Class=_CCC24}', "");
-    Expect(0, 1474, '\P{^Canonical_Combining_Class=_CCC24}', "");
-    Error('\p{Ccc: _:=0_0_0_0_0_0_0_0024}');
-    Error('\P{Ccc: _:=0_0_0_0_0_0_0_0024}');
+    Expect(1, 1473, '\p{Canonical_Combining_Class=	CCC24}', "");
+    Expect(0, 1473, '\p{^Canonical_Combining_Class=	CCC24}', "");
+    Expect(0, 1473, '\P{Canonical_Combining_Class=	CCC24}', "");
+    Expect(1, 1473, '\P{^Canonical_Combining_Class=	CCC24}', "");
+    Expect(0, 1474, '\p{Canonical_Combining_Class=	CCC24}', "");
+    Expect(1, 1474, '\p{^Canonical_Combining_Class=	CCC24}', "");
+    Expect(1, 1474, '\P{Canonical_Combining_Class=	CCC24}', "");
+    Expect(0, 1474, '\P{^Canonical_Combining_Class=	CCC24}', "");
+    Error('\p{Ccc=_24/a/}');
+    Error('\P{Ccc=_24/a/}');
     Expect(1, 1473, '\p{Ccc=:\A24\z:}', "");;
     Expect(0, 1474, '\p{Ccc=:\A24\z:}', "");;
-    Expect(1, 1473, '\p{Ccc=000000024}', "");
-    Expect(0, 1473, '\p{^Ccc=000000024}', "");
-    Expect(0, 1473, '\P{Ccc=000000024}', "");
-    Expect(1, 1473, '\P{^Ccc=000000024}', "");
-    Expect(0, 1474, '\p{Ccc=000000024}', "");
-    Expect(1, 1474, '\p{^Ccc=000000024}', "");
-    Expect(1, 1474, '\P{Ccc=000000024}', "");
-    Expect(0, 1474, '\P{^Ccc=000000024}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=CCC24}');
-    Error('\P{Is_Canonical_Combining_Class=:=CCC24}');
+    Expect(1, 1473, '\p{Ccc=+0000024}', "");
+    Expect(0, 1473, '\p{^Ccc=+0000024}', "");
+    Expect(0, 1473, '\P{Ccc=+0000024}', "");
+    Expect(1, 1473, '\P{^Ccc=+0000024}', "");
+    Expect(0, 1474, '\p{Ccc=+0000024}', "");
+    Expect(1, 1474, '\p{^Ccc=+0000024}', "");
+    Expect(1, 1474, '\P{Ccc=+0000024}', "");
+    Expect(0, 1474, '\P{^Ccc=+0000024}', "");
+    Error('\p{Is_Canonical_Combining_Class=_ccc24/a/}');
+    Error('\P{Is_Canonical_Combining_Class=_ccc24/a/}');
     Expect(1, 1473, '\p{Is_Canonical_Combining_Class=ccc24}', "");
     Expect(0, 1473, '\p{^Is_Canonical_Combining_Class=ccc24}', "");
     Expect(0, 1473, '\P{Is_Canonical_Combining_Class=ccc24}', "");
@@ -31819,78 +32395,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1474, '\p{^Is_Canonical_Combining_Class=ccc24}', "");
     Expect(1, 1474, '\P{Is_Canonical_Combining_Class=ccc24}', "");
     Expect(0, 1474, '\P{^Is_Canonical_Combining_Class=ccc24}', "");
-    Expect(1, 1473, '\p{Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(0, 1473, '\p{^Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(0, 1473, '\P{Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(1, 1473, '\P{^Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(0, 1474, '\p{Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(1, 1474, '\p{^Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(1, 1474, '\P{Is_Canonical_Combining_Class= -ccc24}', "");
-    Expect(0, 1474, '\P{^Is_Canonical_Combining_Class= -ccc24}', "");
-    Error('\p{Is_Ccc=_:=2_4}');
-    Error('\P{Is_Ccc=_:=2_4}');
-    Expect(1, 1473, '\p{Is_Ccc=0000024}', "");
-    Expect(0, 1473, '\p{^Is_Ccc=0000024}', "");
-    Expect(0, 1473, '\P{Is_Ccc=0000024}', "");
-    Expect(1, 1473, '\P{^Is_Ccc=0000024}', "");
-    Expect(0, 1474, '\p{Is_Ccc=0000024}', "");
-    Expect(1, 1474, '\p{^Is_Ccc=0000024}', "");
-    Expect(1, 1474, '\P{Is_Ccc=0000024}', "");
-    Expect(0, 1474, '\P{^Is_Ccc=0000024}', "");
-    Error('\p{Canonical_Combining_Class=/a/- CCC25}');
-    Error('\P{Canonical_Combining_Class=/a/- CCC25}');
+    Expect(1, 1473, '\p{Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(0, 1473, '\p{^Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(0, 1473, '\P{Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(1, 1473, '\P{^Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(0, 1474, '\p{Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(1, 1474, '\p{^Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(1, 1474, '\P{Is_Canonical_Combining_Class=CCC24}', "");
+    Expect(0, 1474, '\P{^Is_Canonical_Combining_Class=CCC24}', "");
+    Error('\p{Is_Ccc=:=0_0_0_0_0_0_0024}');
+    Error('\P{Is_Ccc=:=0_0_0_0_0_0_0024}');
+    Expect(1, 1473, '\p{Is_Ccc=00002_4}', "");
+    Expect(0, 1473, '\p{^Is_Ccc=00002_4}', "");
+    Expect(0, 1473, '\P{Is_Ccc=00002_4}', "");
+    Expect(1, 1473, '\P{^Is_Ccc=00002_4}', "");
+    Expect(0, 1474, '\p{Is_Ccc=00002_4}', "");
+    Expect(1, 1474, '\p{^Is_Ccc=00002_4}', "");
+    Expect(1, 1474, '\P{Is_Ccc=00002_4}', "");
+    Expect(0, 1474, '\P{^Is_Ccc=00002_4}', "");
+    Error('\p{Canonical_Combining_Class=	_CCC25/a/}');
+    Error('\P{Canonical_Combining_Class=	_CCC25/a/}');
     Expect(1, 1474, '\p{Canonical_Combining_Class=:\ACCC25\z:}', "");;
     Expect(0, 1475, '\p{Canonical_Combining_Class=:\ACCC25\z:}', "");;
-    Expect(1, 1474, '\p{Canonical_Combining_Class=ccc25}', "");
-    Expect(0, 1474, '\p{^Canonical_Combining_Class=ccc25}', "");
-    Expect(0, 1474, '\P{Canonical_Combining_Class=ccc25}', "");
-    Expect(1, 1474, '\P{^Canonical_Combining_Class=ccc25}', "");
-    Expect(0, 1475, '\p{Canonical_Combining_Class=ccc25}', "");
-    Expect(1, 1475, '\p{^Canonical_Combining_Class=ccc25}', "");
-    Expect(1, 1475, '\P{Canonical_Combining_Class=ccc25}', "");
-    Expect(0, 1475, '\P{^Canonical_Combining_Class=ccc25}', "");
+    Expect(1, 1474, '\p{Canonical_Combining_Class:	ccc25}', "");
+    Expect(0, 1474, '\p{^Canonical_Combining_Class:	ccc25}', "");
+    Expect(0, 1474, '\P{Canonical_Combining_Class:	ccc25}', "");
+    Expect(1, 1474, '\P{^Canonical_Combining_Class:	ccc25}', "");
+    Expect(0, 1475, '\p{Canonical_Combining_Class:	ccc25}', "");
+    Expect(1, 1475, '\p{^Canonical_Combining_Class:	ccc25}', "");
+    Expect(1, 1475, '\P{Canonical_Combining_Class:	ccc25}', "");
+    Expect(0, 1475, '\P{^Canonical_Combining_Class:	ccc25}', "");
     Expect(1, 1474, '\p{Canonical_Combining_Class=:\Accc25\z:}', "");;
     Expect(0, 1475, '\p{Canonical_Combining_Class=:\Accc25\z:}', "");;
-    Expect(1, 1474, '\p{Canonical_Combining_Class=	CCC25}', "");
-    Expect(0, 1474, '\p{^Canonical_Combining_Class=	CCC25}', "");
-    Expect(0, 1474, '\P{Canonical_Combining_Class=	CCC25}', "");
-    Expect(1, 1474, '\P{^Canonical_Combining_Class=	CCC25}', "");
-    Expect(0, 1475, '\p{Canonical_Combining_Class=	CCC25}', "");
-    Expect(1, 1475, '\p{^Canonical_Combining_Class=	CCC25}', "");
-    Expect(1, 1475, '\P{Canonical_Combining_Class=	CCC25}', "");
-    Expect(0, 1475, '\P{^Canonical_Combining_Class=	CCC25}', "");
-    Error('\p{Ccc=	:=00_02_5}');
-    Error('\P{Ccc=	:=00_02_5}');
+    Expect(1, 1474, '\p{Canonical_Combining_Class=		CCC25}', "");
+    Expect(0, 1474, '\p{^Canonical_Combining_Class=		CCC25}', "");
+    Expect(0, 1474, '\P{Canonical_Combining_Class=		CCC25}', "");
+    Expect(1, 1474, '\P{^Canonical_Combining_Class=		CCC25}', "");
+    Expect(0, 1475, '\p{Canonical_Combining_Class=		CCC25}', "");
+    Expect(1, 1475, '\p{^Canonical_Combining_Class=		CCC25}', "");
+    Expect(1, 1475, '\P{Canonical_Combining_Class=		CCC25}', "");
+    Expect(0, 1475, '\P{^Canonical_Combining_Class=		CCC25}', "");
+    Error('\p{Ccc: --0_0_0_0_025:=}');
+    Error('\P{Ccc: --0_0_0_0_025:=}');
     Expect(1, 1474, '\p{Ccc=:\A25\z:}', "");;
     Expect(0, 1475, '\p{Ccc=:\A25\z:}', "");;
-    Expect(1, 1474, '\p{Ccc: 00000025}', "");
-    Expect(0, 1474, '\p{^Ccc: 00000025}', "");
-    Expect(0, 1474, '\P{Ccc: 00000025}', "");
-    Expect(1, 1474, '\P{^Ccc: 00000025}', "");
-    Expect(0, 1475, '\p{Ccc: 00000025}', "");
-    Expect(1, 1475, '\p{^Ccc: 00000025}', "");
-    Expect(1, 1475, '\P{Ccc: 00000025}', "");
-    Expect(0, 1475, '\P{^Ccc: 00000025}', "");
-    Error('\p{Is_Canonical_Combining_Class=_CCC25:=}');
-    Error('\P{Is_Canonical_Combining_Class=_CCC25:=}');
-    Expect(1, 1474, '\p{Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(0, 1474, '\p{^Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(0, 1474, '\P{Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(1, 1474, '\P{^Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(0, 1475, '\p{Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(1, 1475, '\p{^Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(1, 1475, '\P{Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(0, 1475, '\P{^Is_Canonical_Combining_Class: ccc25}', "");
-    Expect(1, 1474, '\p{Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(0, 1474, '\p{^Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(0, 1474, '\P{Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(1, 1474, '\P{^Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(0, 1475, '\p{Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(1, 1475, '\p{^Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(1, 1475, '\P{Is_Canonical_Combining_Class=-_CCC25}', "");
-    Expect(0, 1475, '\P{^Is_Canonical_Combining_Class=-_CCC25}', "");
-    Error('\p{Is_Ccc=:=	-25}');
-    Error('\P{Is_Ccc=:=	-25}');
+    Expect(1, 1474, '\p{Ccc=+00_02_5}', "");
+    Expect(0, 1474, '\p{^Ccc=+00_02_5}', "");
+    Expect(0, 1474, '\P{Ccc=+00_02_5}', "");
+    Expect(1, 1474, '\P{^Ccc=+00_02_5}', "");
+    Expect(0, 1475, '\p{Ccc=+00_02_5}', "");
+    Expect(1, 1475, '\p{^Ccc=+00_02_5}', "");
+    Expect(1, 1475, '\P{Ccc=+00_02_5}', "");
+    Expect(0, 1475, '\P{^Ccc=+00_02_5}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/CCC25}');
+    Error('\P{Is_Canonical_Combining_Class=/a/CCC25}');
+    Expect(1, 1474, '\p{Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(0, 1474, '\p{^Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(0, 1474, '\P{Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(1, 1474, '\P{^Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(0, 1475, '\p{Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(1, 1475, '\p{^Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(1, 1475, '\P{Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(0, 1475, '\P{^Is_Canonical_Combining_Class=ccc25}', "");
+    Expect(1, 1474, '\p{Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(0, 1474, '\p{^Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(0, 1474, '\P{Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(1, 1474, '\P{^Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(0, 1475, '\p{Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(1, 1475, '\p{^Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(1, 1475, '\P{Is_Canonical_Combining_Class=CCC25}', "");
+    Expect(0, 1475, '\P{^Is_Canonical_Combining_Class=CCC25}', "");
+    Error('\p{Is_Ccc=/a/  25}');
+    Error('\P{Is_Ccc=/a/  25}');
     Expect(1, 1474, '\p{Is_Ccc=00000025}', "");
     Expect(0, 1474, '\p{^Is_Ccc=00000025}', "");
     Expect(0, 1474, '\P{Is_Ccc=00000025}', "");
@@ -31899,8 +32475,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1475, '\p{^Is_Ccc=00000025}', "");
     Expect(1, 1475, '\P{Is_Ccc=00000025}', "");
     Expect(0, 1475, '\P{^Is_Ccc=00000025}', "");
-    Error('\p{Canonical_Combining_Class=_:=CCC26}');
-    Error('\P{Canonical_Combining_Class=_:=CCC26}');
+    Error('\p{Canonical_Combining_Class=/a/ -ccc26}');
+    Error('\P{Canonical_Combining_Class=/a/ -ccc26}');
     Expect(1, 64286, '\p{Canonical_Combining_Class=:\ACCC26\z:}', "");;
     Expect(0, 64287, '\p{Canonical_Combining_Class=:\ACCC26\z:}', "");;
     Expect(1, 64286, '\p{Canonical_Combining_Class=ccc26}', "");
@@ -31913,28 +32489,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 64287, '\P{^Canonical_Combining_Class=ccc26}', "");
     Expect(1, 64286, '\p{Canonical_Combining_Class=:\Accc26\z:}', "");;
     Expect(0, 64287, '\p{Canonical_Combining_Class=:\Accc26\z:}', "");;
-    Expect(1, 64286, '\p{Canonical_Combining_Class=_CCC26}', "");
-    Expect(0, 64286, '\p{^Canonical_Combining_Class=_CCC26}', "");
-    Expect(0, 64286, '\P{Canonical_Combining_Class=_CCC26}', "");
-    Expect(1, 64286, '\P{^Canonical_Combining_Class=_CCC26}', "");
-    Expect(0, 64287, '\p{Canonical_Combining_Class=_CCC26}', "");
-    Expect(1, 64287, '\p{^Canonical_Combining_Class=_CCC26}', "");
-    Expect(1, 64287, '\P{Canonical_Combining_Class=_CCC26}', "");
-    Expect(0, 64287, '\P{^Canonical_Combining_Class=_CCC26}', "");
-    Error('\p{Ccc= 000_002_6/a/}');
-    Error('\P{Ccc= 000_002_6/a/}');
+    Expect(1, 64286, '\p{Canonical_Combining_Class=-CCC26}', "");
+    Expect(0, 64286, '\p{^Canonical_Combining_Class=-CCC26}', "");
+    Expect(0, 64286, '\P{Canonical_Combining_Class=-CCC26}', "");
+    Expect(1, 64286, '\P{^Canonical_Combining_Class=-CCC26}', "");
+    Expect(0, 64287, '\p{Canonical_Combining_Class=-CCC26}', "");
+    Expect(1, 64287, '\p{^Canonical_Combining_Class=-CCC26}', "");
+    Expect(1, 64287, '\P{Canonical_Combining_Class=-CCC26}', "");
+    Expect(0, 64287, '\P{^Canonical_Combining_Class=-CCC26}', "");
+    Error('\p{Ccc=	0_0_0_0_0_26/a/}');
+    Error('\P{Ccc=	0_0_0_0_0_26/a/}');
     Expect(1, 64286, '\p{Ccc=:\A26\z:}', "");;
     Expect(0, 64287, '\p{Ccc=:\A26\z:}', "");;
-    Expect(1, 64286, '\p{Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(0, 64286, '\p{^Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(0, 64286, '\P{Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(1, 64286, '\P{^Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(0, 64287, '\p{Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(1, 64287, '\p{^Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(1, 64287, '\P{Ccc=0_0_0_0_0_0_0_26}', "");
-    Expect(0, 64287, '\P{^Ccc=0_0_0_0_0_0_0_26}', "");
-    Error('\p{Is_Canonical_Combining_Class=_/a/CCC26}');
-    Error('\P{Is_Canonical_Combining_Class=_/a/CCC26}');
+    Expect(1, 64286, '\p{Ccc=000000026}', "");
+    Expect(0, 64286, '\p{^Ccc=000000026}', "");
+    Expect(0, 64286, '\P{Ccc=000000026}', "");
+    Expect(1, 64286, '\P{^Ccc=000000026}', "");
+    Expect(0, 64287, '\p{Ccc=000000026}', "");
+    Expect(1, 64287, '\p{^Ccc=000000026}', "");
+    Expect(1, 64287, '\P{Ccc=000000026}', "");
+    Expect(0, 64287, '\P{^Ccc=000000026}', "");
+    Error('\p{Is_Canonical_Combining_Class=:= _CCC26}');
+    Error('\P{Is_Canonical_Combining_Class=:= _CCC26}');
     Expect(1, 64286, '\p{Is_Canonical_Combining_Class=ccc26}', "");
     Expect(0, 64286, '\p{^Is_Canonical_Combining_Class=ccc26}', "");
     Expect(0, 64286, '\P{Is_Canonical_Combining_Class=ccc26}', "");
@@ -31943,26 +32519,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 64287, '\p{^Is_Canonical_Combining_Class=ccc26}', "");
     Expect(1, 64287, '\P{Is_Canonical_Combining_Class=ccc26}', "");
     Expect(0, 64287, '\P{^Is_Canonical_Combining_Class=ccc26}', "");
-    Expect(1, 64286, '\p{Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(0, 64286, '\p{^Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(0, 64286, '\P{Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(1, 64286, '\P{^Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(0, 64287, '\p{Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(1, 64287, '\p{^Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(1, 64287, '\P{Is_Canonical_Combining_Class= CCC26}', "");
-    Expect(0, 64287, '\P{^Is_Canonical_Combining_Class= CCC26}', "");
-    Error('\p{Is_Ccc=:= -+0000_0002_6}');
-    Error('\P{Is_Ccc=:= -+0000_0002_6}');
-    Expect(1, 64286, '\p{Is_Ccc=00000000026}', "");
-    Expect(0, 64286, '\p{^Is_Ccc=00000000026}', "");
-    Expect(0, 64286, '\P{Is_Ccc=00000000026}', "");
-    Expect(1, 64286, '\P{^Is_Ccc=00000000026}', "");
-    Expect(0, 64287, '\p{Is_Ccc=00000000026}', "");
-    Expect(1, 64287, '\p{^Is_Ccc=00000000026}', "");
-    Expect(1, 64287, '\P{Is_Ccc=00000000026}', "");
-    Expect(0, 64287, '\P{^Is_Ccc=00000000026}', "");
-    Error('\p{Canonical_Combining_Class:--CCC27:=}');
-    Error('\P{Canonical_Combining_Class:--CCC27:=}');
+    Expect(1, 64286, '\p{Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(0, 64286, '\p{^Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(0, 64286, '\P{Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(1, 64286, '\P{^Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(0, 64287, '\p{Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(1, 64287, '\p{^Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(1, 64287, '\P{Is_Canonical_Combining_Class=_ ccc26}', "");
+    Expect(0, 64287, '\P{^Is_Canonical_Combining_Class=_ ccc26}', "");
+    Error('\p{Is_Ccc:	:= 	26}');
+    Error('\P{Is_Ccc:	:= 	26}');
+    Expect(1, 64286, '\p{Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(0, 64286, '\p{^Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(0, 64286, '\P{Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(1, 64286, '\P{^Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(0, 64287, '\p{Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(1, 64287, '\p{^Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(1, 64287, '\P{Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Expect(0, 64287, '\P{^Is_Ccc=0_0_0_0_0_0_0_26}', "");
+    Error('\p{Canonical_Combining_Class=:=_ccc27}');
+    Error('\P{Canonical_Combining_Class=:=_ccc27}');
     Expect(1, 2288, '\p{Canonical_Combining_Class=:\ACCC27\z:}', "");;
     Expect(0, 2289, '\p{Canonical_Combining_Class=:\ACCC27\z:}', "");;
     Expect(1, 2288, '\p{Canonical_Combining_Class=ccc27}', "");
@@ -31975,28 +32551,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2289, '\P{^Canonical_Combining_Class=ccc27}', "");
     Expect(1, 2288, '\p{Canonical_Combining_Class=:\Accc27\z:}', "");;
     Expect(0, 2289, '\p{Canonical_Combining_Class=:\Accc27\z:}', "");;
-    Expect(1, 2288, '\p{Canonical_Combining_Class=__ccc27}', "");
-    Expect(0, 2288, '\p{^Canonical_Combining_Class=__ccc27}', "");
-    Expect(0, 2288, '\P{Canonical_Combining_Class=__ccc27}', "");
-    Expect(1, 2288, '\P{^Canonical_Combining_Class=__ccc27}', "");
-    Expect(0, 2289, '\p{Canonical_Combining_Class=__ccc27}', "");
-    Expect(1, 2289, '\p{^Canonical_Combining_Class=__ccc27}', "");
-    Expect(1, 2289, '\P{Canonical_Combining_Class=__ccc27}', "");
-    Expect(0, 2289, '\P{^Canonical_Combining_Class=__ccc27}', "");
-    Error('\p{Ccc=-	000000027:=}');
-    Error('\P{Ccc=-	000000027:=}');
+    Expect(1, 2288, '\p{Canonical_Combining_Class=_CCC27}', "");
+    Expect(0, 2288, '\p{^Canonical_Combining_Class=_CCC27}', "");
+    Expect(0, 2288, '\P{Canonical_Combining_Class=_CCC27}', "");
+    Expect(1, 2288, '\P{^Canonical_Combining_Class=_CCC27}', "");
+    Expect(0, 2289, '\p{Canonical_Combining_Class=_CCC27}', "");
+    Expect(1, 2289, '\p{^Canonical_Combining_Class=_CCC27}', "");
+    Expect(1, 2289, '\P{Canonical_Combining_Class=_CCC27}', "");
+    Expect(0, 2289, '\P{^Canonical_Combining_Class=_CCC27}', "");
+    Error('\p{Ccc=/a/_-00027}');
+    Error('\P{Ccc=/a/_-00027}');
     Expect(1, 2288, '\p{Ccc=:\A27\z:}', "");;
     Expect(0, 2289, '\p{Ccc=:\A27\z:}', "");;
-    Expect(1, 2288, '\p{Ccc=0000027}', "");
-    Expect(0, 2288, '\p{^Ccc=0000027}', "");
-    Expect(0, 2288, '\P{Ccc=0000027}', "");
-    Expect(1, 2288, '\P{^Ccc=0000027}', "");
-    Expect(0, 2289, '\p{Ccc=0000027}', "");
-    Expect(1, 2289, '\p{^Ccc=0000027}', "");
-    Expect(1, 2289, '\P{Ccc=0000027}', "");
-    Expect(0, 2289, '\P{^Ccc=0000027}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/_	CCC27}');
-    Error('\P{Is_Canonical_Combining_Class=/a/_	CCC27}');
+    Expect(1, 2288, '\p{Ccc=00000000027}', "");
+    Expect(0, 2288, '\p{^Ccc=00000000027}', "");
+    Expect(0, 2288, '\P{Ccc=00000000027}', "");
+    Expect(1, 2288, '\P{^Ccc=00000000027}', "");
+    Expect(0, 2289, '\p{Ccc=00000000027}', "");
+    Expect(1, 2289, '\p{^Ccc=00000000027}', "");
+    Expect(1, 2289, '\P{Ccc=00000000027}', "");
+    Expect(0, 2289, '\P{^Ccc=00000000027}', "");
+    Error('\p{Is_Canonical_Combining_Class=	/a/CCC27}');
+    Error('\P{Is_Canonical_Combining_Class=	/a/CCC27}');
     Expect(1, 2288, '\p{Is_Canonical_Combining_Class=ccc27}', "");
     Expect(0, 2288, '\p{^Is_Canonical_Combining_Class=ccc27}', "");
     Expect(0, 2288, '\P{Is_Canonical_Combining_Class=ccc27}', "");
@@ -32005,26 +32581,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2289, '\p{^Is_Canonical_Combining_Class=ccc27}', "");
     Expect(1, 2289, '\P{Is_Canonical_Combining_Class=ccc27}', "");
     Expect(0, 2289, '\P{^Is_Canonical_Combining_Class=ccc27}', "");
-    Expect(1, 2288, '\p{Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(0, 2288, '\p{^Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(0, 2288, '\P{Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(1, 2288, '\P{^Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(0, 2289, '\p{Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(1, 2289, '\p{^Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(1, 2289, '\P{Is_Canonical_Combining_Class= CCC27}', "");
-    Expect(0, 2289, '\P{^Is_Canonical_Combining_Class= CCC27}', "");
-    Error('\p{Is_Ccc=	/a/0_0_0_0_0_0_0027}');
-    Error('\P{Is_Ccc=	/a/0_0_0_0_0_0_0027}');
-    Expect(1, 2288, '\p{Is_Ccc=+2_7}', "");
-    Expect(0, 2288, '\p{^Is_Ccc=+2_7}', "");
-    Expect(0, 2288, '\P{Is_Ccc=+2_7}', "");
-    Expect(1, 2288, '\P{^Is_Ccc=+2_7}', "");
-    Expect(0, 2289, '\p{Is_Ccc=+2_7}', "");
-    Expect(1, 2289, '\p{^Is_Ccc=+2_7}', "");
-    Expect(1, 2289, '\P{Is_Ccc=+2_7}', "");
-    Expect(0, 2289, '\P{^Is_Ccc=+2_7}', "");
-    Error('\p{Canonical_Combining_Class=_-ccc28/a/}');
-    Error('\P{Canonical_Combining_Class=_-ccc28/a/}');
+    Expect(1, 2288, '\p{Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(0, 2288, '\p{^Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(0, 2288, '\P{Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(1, 2288, '\P{^Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(0, 2289, '\p{Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(1, 2289, '\p{^Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(1, 2289, '\P{Is_Canonical_Combining_Class=_ccc27}', "");
+    Expect(0, 2289, '\P{^Is_Canonical_Combining_Class=_ccc27}', "");
+    Error('\p{Is_Ccc=-/a/+0027}');
+    Error('\P{Is_Ccc=-/a/+0027}');
+    Expect(1, 2288, '\p{Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(0, 2288, '\p{^Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(0, 2288, '\P{Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(1, 2288, '\P{^Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(0, 2289, '\p{Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(1, 2289, '\p{^Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(1, 2289, '\P{Is_Ccc=00_00_00_00_02_7}', "");
+    Expect(0, 2289, '\P{^Is_Ccc=00_00_00_00_02_7}', "");
+    Error('\p{Canonical_Combining_Class= -CCC28:=}');
+    Error('\P{Canonical_Combining_Class= -CCC28:=}');
     Expect(1, 2289, '\p{Canonical_Combining_Class=:\ACCC28\z:}', "");;
     Expect(0, 2290, '\p{Canonical_Combining_Class=:\ACCC28\z:}', "");;
     Expect(1, 2289, '\p{Canonical_Combining_Class=ccc28}', "");
@@ -32037,56 +32613,48 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2290, '\P{^Canonical_Combining_Class=ccc28}', "");
     Expect(1, 2289, '\p{Canonical_Combining_Class=:\Accc28\z:}', "");;
     Expect(0, 2290, '\p{Canonical_Combining_Class=:\Accc28\z:}', "");;
-    Expect(1, 2289, '\p{Canonical_Combining_Class=-	ccc28}', "");
-    Expect(0, 2289, '\p{^Canonical_Combining_Class=-	ccc28}', "");
-    Expect(0, 2289, '\P{Canonical_Combining_Class=-	ccc28}', "");
-    Expect(1, 2289, '\P{^Canonical_Combining_Class=-	ccc28}', "");
-    Expect(0, 2290, '\p{Canonical_Combining_Class=-	ccc28}', "");
-    Expect(1, 2290, '\p{^Canonical_Combining_Class=-	ccc28}', "");
-    Expect(1, 2290, '\P{Canonical_Combining_Class=-	ccc28}', "");
-    Expect(0, 2290, '\P{^Canonical_Combining_Class=-	ccc28}', "");
-    Error('\p{Ccc=/a/  000_000_002_8}');
-    Error('\P{Ccc=/a/  000_000_002_8}');
+    Error('\p{Ccc:		:=00000028}');
+    Error('\P{Ccc:		:=00000028}');
     Expect(1, 2289, '\p{Ccc=:\A28\z:}', "");;
     Expect(0, 2290, '\p{Ccc=:\A28\z:}', "");;
-    Expect(1, 2289, '\p{Ccc=000_002_8}', "");
-    Expect(0, 2289, '\p{^Ccc=000_002_8}', "");
-    Expect(0, 2289, '\P{Ccc=000_002_8}', "");
-    Expect(1, 2289, '\P{^Ccc=000_002_8}', "");
-    Expect(0, 2290, '\p{Ccc=000_002_8}', "");
-    Expect(1, 2290, '\p{^Ccc=000_002_8}', "");
-    Expect(1, 2290, '\P{Ccc=000_002_8}', "");
-    Expect(0, 2290, '\P{^Ccc=000_002_8}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=  CCC28}');
-    Error('\P{Is_Canonical_Combining_Class=:=  CCC28}');
-    Expect(1, 2289, '\p{Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(0, 2289, '\p{^Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(0, 2289, '\P{Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(1, 2289, '\P{^Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(0, 2290, '\p{Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(1, 2290, '\p{^Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(1, 2290, '\P{Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(0, 2290, '\P{^Is_Canonical_Combining_Class=ccc28}', "");
-    Expect(1, 2289, '\p{Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(0, 2289, '\p{^Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(0, 2289, '\P{Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(1, 2289, '\P{^Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(0, 2290, '\p{Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(1, 2290, '\p{^Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(1, 2290, '\P{Is_Canonical_Combining_Class=	-CCC28}', "");
-    Expect(0, 2290, '\P{^Is_Canonical_Combining_Class=	-CCC28}', "");
-    Error('\p{Is_Ccc=_/a/+0_0_0_28}');
-    Error('\P{Is_Ccc=_/a/+0_0_0_28}');
-    Expect(1, 2289, '\p{Is_Ccc=0_0_28}', "");
-    Expect(0, 2289, '\p{^Is_Ccc=0_0_28}', "");
-    Expect(0, 2289, '\P{Is_Ccc=0_0_28}', "");
-    Expect(1, 2289, '\P{^Is_Ccc=0_0_28}', "");
-    Expect(0, 2290, '\p{Is_Ccc=0_0_28}', "");
-    Expect(1, 2290, '\p{^Is_Ccc=0_0_28}', "");
-    Expect(1, 2290, '\P{Is_Ccc=0_0_28}', "");
-    Expect(0, 2290, '\P{^Is_Ccc=0_0_28}', "");
-    Error('\p{Canonical_Combining_Class=_CCC29:=}');
-    Error('\P{Canonical_Combining_Class=_CCC29:=}');
+    Expect(1, 2289, '\p{Ccc=0_0_0_0_0_00028}', "");
+    Expect(0, 2289, '\p{^Ccc=0_0_0_0_0_00028}', "");
+    Expect(0, 2289, '\P{Ccc=0_0_0_0_0_00028}', "");
+    Expect(1, 2289, '\P{^Ccc=0_0_0_0_0_00028}', "");
+    Expect(0, 2290, '\p{Ccc=0_0_0_0_0_00028}', "");
+    Expect(1, 2290, '\p{^Ccc=0_0_0_0_0_00028}', "");
+    Expect(1, 2290, '\P{Ccc=0_0_0_0_0_00028}', "");
+    Expect(0, 2290, '\P{^Ccc=0_0_0_0_0_00028}', "");
+    Error('\p{Is_Canonical_Combining_Class=--CCC28/a/}');
+    Error('\P{Is_Canonical_Combining_Class=--CCC28/a/}');
+    Expect(1, 2289, '\p{Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(0, 2289, '\p{^Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(0, 2289, '\P{Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(1, 2289, '\P{^Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(0, 2290, '\p{Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(1, 2290, '\p{^Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(1, 2290, '\P{Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(0, 2290, '\P{^Is_Canonical_Combining_Class:	ccc28}', "");
+    Expect(1, 2289, '\p{Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(0, 2289, '\p{^Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(0, 2289, '\P{Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(1, 2289, '\P{^Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(0, 2290, '\p{Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(1, 2290, '\p{^Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(1, 2290, '\P{Is_Canonical_Combining_Class= 	CCC28}', "");
+    Expect(0, 2290, '\P{^Is_Canonical_Combining_Class= 	CCC28}', "");
+    Error('\p{Is_Ccc=/a/	_00_00_00_00_28}');
+    Error('\P{Is_Ccc=/a/	_00_00_00_00_28}');
+    Expect(1, 2289, '\p{Is_Ccc:2_8}', "");
+    Expect(0, 2289, '\p{^Is_Ccc:2_8}', "");
+    Expect(0, 2289, '\P{Is_Ccc:2_8}', "");
+    Expect(1, 2289, '\P{^Is_Ccc:2_8}', "");
+    Expect(0, 2290, '\p{Is_Ccc:2_8}', "");
+    Expect(1, 2290, '\p{^Is_Ccc:2_8}', "");
+    Expect(1, 2290, '\P{Is_Ccc:2_8}', "");
+    Expect(0, 2290, '\P{^Is_Ccc:2_8}', "");
+    Error('\p{Canonical_Combining_Class= /a/CCC29}');
+    Error('\P{Canonical_Combining_Class= /a/CCC29}');
     Expect(1, 2290, '\p{Canonical_Combining_Class=:\ACCC29\z:}', "");;
     Expect(0, 2291, '\p{Canonical_Combining_Class=:\ACCC29\z:}', "");;
     Expect(1, 2290, '\p{Canonical_Combining_Class=ccc29}', "");
@@ -32099,28 +32667,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 2291, '\P{^Canonical_Combining_Class=ccc29}', "");
     Expect(1, 2290, '\p{Canonical_Combining_Class=:\Accc29\z:}', "");;
     Expect(0, 2291, '\p{Canonical_Combining_Class=:\Accc29\z:}', "");;
-    Expect(1, 2290, '\p{Canonical_Combining_Class=	-CCC29}', "");
-    Expect(0, 2290, '\p{^Canonical_Combining_Class=	-CCC29}', "");
-    Expect(0, 2290, '\P{Canonical_Combining_Class=	-CCC29}', "");
-    Expect(1, 2290, '\P{^Canonical_Combining_Class=	-CCC29}', "");
-    Expect(0, 2291, '\p{Canonical_Combining_Class=	-CCC29}', "");
-    Expect(1, 2291, '\p{^Canonical_Combining_Class=	-CCC29}', "");
-    Expect(1, 2291, '\P{Canonical_Combining_Class=	-CCC29}', "");
-    Expect(0, 2291, '\P{^Canonical_Combining_Class=	-CCC29}', "");
-    Error('\p{Ccc=/a/+0000029}');
-    Error('\P{Ccc=/a/+0000029}');
+    Expect(1, 2290, '\p{Canonical_Combining_Class=_ccc29}', "");
+    Expect(0, 2290, '\p{^Canonical_Combining_Class=_ccc29}', "");
+    Expect(0, 2290, '\P{Canonical_Combining_Class=_ccc29}', "");
+    Expect(1, 2290, '\P{^Canonical_Combining_Class=_ccc29}', "");
+    Expect(0, 2291, '\p{Canonical_Combining_Class=_ccc29}', "");
+    Expect(1, 2291, '\p{^Canonical_Combining_Class=_ccc29}', "");
+    Expect(1, 2291, '\P{Canonical_Combining_Class=_ccc29}', "");
+    Expect(0, 2291, '\P{^Canonical_Combining_Class=_ccc29}', "");
+    Error('\p{Ccc=	:=+00000000029}');
+    Error('\P{Ccc=	:=+00000000029}');
     Expect(1, 2290, '\p{Ccc=:\A29\z:}', "");;
     Expect(0, 2291, '\p{Ccc=:\A29\z:}', "");;
-    Expect(1, 2290, '\p{Ccc: 00000000029}', "");
-    Expect(0, 2290, '\p{^Ccc: 00000000029}', "");
-    Expect(0, 2290, '\P{Ccc: 00000000029}', "");
-    Expect(1, 2290, '\P{^Ccc: 00000000029}', "");
-    Expect(0, 2291, '\p{Ccc: 00000000029}', "");
-    Expect(1, 2291, '\p{^Ccc: 00000000029}', "");
-    Expect(1, 2291, '\P{Ccc: 00000000029}', "");
-    Expect(0, 2291, '\P{^Ccc: 00000000029}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=-_CCC29}');
-    Error('\P{Is_Canonical_Combining_Class=:=-_CCC29}');
+    Expect(1, 2290, '\p{Ccc:   +0_0_0_029}', "");
+    Expect(0, 2290, '\p{^Ccc:   +0_0_0_029}', "");
+    Expect(0, 2290, '\P{Ccc:   +0_0_0_029}', "");
+    Expect(1, 2290, '\P{^Ccc:   +0_0_0_029}', "");
+    Expect(0, 2291, '\p{Ccc:   +0_0_0_029}', "");
+    Expect(1, 2291, '\p{^Ccc:   +0_0_0_029}', "");
+    Expect(1, 2291, '\P{Ccc:   +0_0_0_029}', "");
+    Expect(0, 2291, '\P{^Ccc:   +0_0_0_029}', "");
+    Error('\p{Is_Canonical_Combining_Class=:=-	CCC29}');
+    Error('\P{Is_Canonical_Combining_Class=:=-	CCC29}');
     Expect(1, 2290, '\p{Is_Canonical_Combining_Class=ccc29}', "");
     Expect(0, 2290, '\p{^Is_Canonical_Combining_Class=ccc29}', "");
     Expect(0, 2290, '\P{Is_Canonical_Combining_Class=ccc29}', "");
@@ -32129,26 +32697,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 2291, '\p{^Is_Canonical_Combining_Class=ccc29}', "");
     Expect(1, 2291, '\P{Is_Canonical_Combining_Class=ccc29}', "");
     Expect(0, 2291, '\P{^Is_Canonical_Combining_Class=ccc29}', "");
-    Expect(1, 2290, '\p{Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(0, 2290, '\p{^Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(0, 2290, '\P{Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(1, 2290, '\P{^Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(0, 2291, '\p{Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(1, 2291, '\p{^Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(1, 2291, '\P{Is_Canonical_Combining_Class= -CCC29}', "");
-    Expect(0, 2291, '\P{^Is_Canonical_Combining_Class= -CCC29}', "");
-    Error('\p{Is_Ccc=--+0000000029/a/}');
-    Error('\P{Is_Ccc=--+0000000029/a/}');
-    Expect(1, 2290, '\p{Is_Ccc=00000002_9}', "");
-    Expect(0, 2290, '\p{^Is_Ccc=00000002_9}', "");
-    Expect(0, 2290, '\P{Is_Ccc=00000002_9}', "");
-    Expect(1, 2290, '\P{^Is_Ccc=00000002_9}', "");
-    Expect(0, 2291, '\p{Is_Ccc=00000002_9}', "");
-    Expect(1, 2291, '\p{^Is_Ccc=00000002_9}', "");
-    Expect(1, 2291, '\P{Is_Ccc=00000002_9}', "");
-    Expect(0, 2291, '\P{^Is_Ccc=00000002_9}', "");
-    Error('\p{Canonical_Combining_Class= _CCC30:=}');
-    Error('\P{Canonical_Combining_Class= _CCC30:=}');
+    Expect(1, 2290, '\p{Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(0, 2290, '\p{^Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(0, 2290, '\P{Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(1, 2290, '\P{^Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(0, 2291, '\p{Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(1, 2291, '\p{^Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(1, 2291, '\P{Is_Canonical_Combining_Class=_ CCC29}', "");
+    Expect(0, 2291, '\P{^Is_Canonical_Combining_Class=_ CCC29}', "");
+    Error('\p{Is_Ccc=--0000029/a/}');
+    Error('\P{Is_Ccc=--0000029/a/}');
+    Expect(1, 2290, '\p{Is_Ccc:	00_00_00_00_29}', "");
+    Expect(0, 2290, '\p{^Is_Ccc:	00_00_00_00_29}', "");
+    Expect(0, 2290, '\P{Is_Ccc:	00_00_00_00_29}', "");
+    Expect(1, 2290, '\P{^Is_Ccc:	00_00_00_00_29}', "");
+    Expect(0, 2291, '\p{Is_Ccc:	00_00_00_00_29}', "");
+    Expect(1, 2291, '\p{^Is_Ccc:	00_00_00_00_29}', "");
+    Expect(1, 2291, '\P{Is_Ccc:	00_00_00_00_29}', "");
+    Expect(0, 2291, '\P{^Is_Ccc:	00_00_00_00_29}', "");
+    Error('\p{Canonical_Combining_Class=	:=ccc30}');
+    Error('\P{Canonical_Combining_Class=	:=ccc30}');
     Expect(1, 1614, '\p{Canonical_Combining_Class=:\ACCC30\z:}', "");;
     Expect(0, 1615, '\p{Canonical_Combining_Class=:\ACCC30\z:}', "");;
     Expect(1, 1614, '\p{Canonical_Combining_Class=ccc30}', "");
@@ -32161,28 +32729,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1615, '\P{^Canonical_Combining_Class=ccc30}', "");
     Expect(1, 1614, '\p{Canonical_Combining_Class=:\Accc30\z:}', "");;
     Expect(0, 1615, '\p{Canonical_Combining_Class=:\Accc30\z:}', "");;
-    Expect(1, 1614, '\p{Canonical_Combining_Class=-	CCC30}', "");
-    Expect(0, 1614, '\p{^Canonical_Combining_Class=-	CCC30}', "");
-    Expect(0, 1614, '\P{Canonical_Combining_Class=-	CCC30}', "");
-    Expect(1, 1614, '\P{^Canonical_Combining_Class=-	CCC30}', "");
-    Expect(0, 1615, '\p{Canonical_Combining_Class=-	CCC30}', "");
-    Expect(1, 1615, '\p{^Canonical_Combining_Class=-	CCC30}', "");
-    Expect(1, 1615, '\P{Canonical_Combining_Class=-	CCC30}', "");
-    Expect(0, 1615, '\P{^Canonical_Combining_Class=-	CCC30}', "");
-    Error('\p{Ccc=  0_0_0_0_30/a/}');
-    Error('\P{Ccc=  0_0_0_0_30/a/}');
+    Expect(1, 1614, '\p{Canonical_Combining_Class=- CCC30}', "");
+    Expect(0, 1614, '\p{^Canonical_Combining_Class=- CCC30}', "");
+    Expect(0, 1614, '\P{Canonical_Combining_Class=- CCC30}', "");
+    Expect(1, 1614, '\P{^Canonical_Combining_Class=- CCC30}', "");
+    Expect(0, 1615, '\p{Canonical_Combining_Class=- CCC30}', "");
+    Expect(1, 1615, '\p{^Canonical_Combining_Class=- CCC30}', "");
+    Expect(1, 1615, '\P{Canonical_Combining_Class=- CCC30}', "");
+    Expect(0, 1615, '\P{^Canonical_Combining_Class=- CCC30}', "");
+    Error('\p{Ccc=-:=30}');
+    Error('\P{Ccc=-:=30}');
     Expect(1, 1614, '\p{Ccc=:\A30\z:}', "");;
     Expect(0, 1615, '\p{Ccc=:\A30\z:}', "");;
-    Expect(1, 1614, '\p{Ccc=+003_0}', "");
-    Expect(0, 1614, '\p{^Ccc=+003_0}', "");
-    Expect(0, 1614, '\P{Ccc=+003_0}', "");
-    Expect(1, 1614, '\P{^Ccc=+003_0}', "");
-    Expect(0, 1615, '\p{Ccc=+003_0}', "");
-    Expect(1, 1615, '\p{^Ccc=+003_0}', "");
-    Expect(1, 1615, '\P{Ccc=+003_0}', "");
-    Expect(0, 1615, '\P{^Ccc=+003_0}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=-CCC30}');
-    Error('\P{Is_Canonical_Combining_Class=:=-CCC30}');
+    Expect(1, 1614, '\p{Ccc=00_00_00_03_0}', "");
+    Expect(0, 1614, '\p{^Ccc=00_00_00_03_0}', "");
+    Expect(0, 1614, '\P{Ccc=00_00_00_03_0}', "");
+    Expect(1, 1614, '\P{^Ccc=00_00_00_03_0}', "");
+    Expect(0, 1615, '\p{Ccc=00_00_00_03_0}', "");
+    Expect(1, 1615, '\p{^Ccc=00_00_00_03_0}', "");
+    Expect(1, 1615, '\P{Ccc=00_00_00_03_0}', "");
+    Expect(0, 1615, '\P{^Ccc=00_00_00_03_0}', "");
+    Error('\p{Is_Canonical_Combining_Class=	/a/ccc30}');
+    Error('\P{Is_Canonical_Combining_Class=	/a/ccc30}');
     Expect(1, 1614, '\p{Is_Canonical_Combining_Class=ccc30}', "");
     Expect(0, 1614, '\p{^Is_Canonical_Combining_Class=ccc30}', "");
     Expect(0, 1614, '\P{Is_Canonical_Combining_Class=ccc30}', "");
@@ -32199,80 +32767,80 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1615, '\p{^Is_Canonical_Combining_Class=-CCC30}', "");
     Expect(1, 1615, '\P{Is_Canonical_Combining_Class=-CCC30}', "");
     Expect(0, 1615, '\P{^Is_Canonical_Combining_Class=-CCC30}', "");
-    Error('\p{Is_Ccc=_+00_00_03_0:=}');
-    Error('\P{Is_Ccc=_+00_00_03_0:=}');
-    Expect(1, 1614, '\p{Is_Ccc=0_0_0_0_30}', "");
-    Expect(0, 1614, '\p{^Is_Ccc=0_0_0_0_30}', "");
-    Expect(0, 1614, '\P{Is_Ccc=0_0_0_0_30}', "");
-    Expect(1, 1614, '\P{^Is_Ccc=0_0_0_0_30}', "");
-    Expect(0, 1615, '\p{Is_Ccc=0_0_0_0_30}', "");
-    Expect(1, 1615, '\p{^Is_Ccc=0_0_0_0_30}', "");
-    Expect(1, 1615, '\P{Is_Ccc=0_0_0_0_30}', "");
-    Expect(0, 1615, '\P{^Is_Ccc=0_0_0_0_30}', "");
-    Error('\p{Canonical_Combining_Class=	CCC31:=}');
-    Error('\P{Canonical_Combining_Class=	CCC31:=}');
+    Error('\p{Is_Ccc=-/a/0003_0}');
+    Error('\P{Is_Ccc=-/a/0003_0}');
+    Expect(1, 1614, '\p{Is_Ccc=003_0}', "");
+    Expect(0, 1614, '\p{^Is_Ccc=003_0}', "");
+    Expect(0, 1614, '\P{Is_Ccc=003_0}', "");
+    Expect(1, 1614, '\P{^Is_Ccc=003_0}', "");
+    Expect(0, 1615, '\p{Is_Ccc=003_0}', "");
+    Expect(1, 1615, '\p{^Is_Ccc=003_0}', "");
+    Expect(1, 1615, '\P{Is_Ccc=003_0}', "");
+    Expect(0, 1615, '\P{^Is_Ccc=003_0}', "");
+    Error('\p{Canonical_Combining_Class=/a/_	CCC31}');
+    Error('\P{Canonical_Combining_Class=/a/_	CCC31}');
     Expect(1, 1615, '\p{Canonical_Combining_Class=:\ACCC31\z:}', "");;
     Expect(0, 1616, '\p{Canonical_Combining_Class=:\ACCC31\z:}', "");;
-    Expect(1, 1615, '\p{Canonical_Combining_Class:ccc31}', "");
-    Expect(0, 1615, '\p{^Canonical_Combining_Class:ccc31}', "");
-    Expect(0, 1615, '\P{Canonical_Combining_Class:ccc31}', "");
-    Expect(1, 1615, '\P{^Canonical_Combining_Class:ccc31}', "");
-    Expect(0, 1616, '\p{Canonical_Combining_Class:ccc31}', "");
-    Expect(1, 1616, '\p{^Canonical_Combining_Class:ccc31}', "");
-    Expect(1, 1616, '\P{Canonical_Combining_Class:ccc31}', "");
-    Expect(0, 1616, '\P{^Canonical_Combining_Class:ccc31}', "");
+    Expect(1, 1615, '\p{Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1615, '\p{^Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1615, '\P{Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1615, '\P{^Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1616, '\p{Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1616, '\p{^Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1616, '\P{Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1616, '\P{^Canonical_Combining_Class=ccc31}', "");
     Expect(1, 1615, '\p{Canonical_Combining_Class=:\Accc31\z:}', "");;
     Expect(0, 1616, '\p{Canonical_Combining_Class=:\Accc31\z:}', "");;
-    Expect(1, 1615, '\p{Canonical_Combining_Class=	_CCC31}', "");
-    Expect(0, 1615, '\p{^Canonical_Combining_Class=	_CCC31}', "");
-    Expect(0, 1615, '\P{Canonical_Combining_Class=	_CCC31}', "");
-    Expect(1, 1615, '\P{^Canonical_Combining_Class=	_CCC31}', "");
-    Expect(0, 1616, '\p{Canonical_Combining_Class=	_CCC31}', "");
-    Expect(1, 1616, '\p{^Canonical_Combining_Class=	_CCC31}', "");
-    Expect(1, 1616, '\P{Canonical_Combining_Class=	_CCC31}', "");
-    Expect(0, 1616, '\P{^Canonical_Combining_Class=	_CCC31}', "");
-    Error('\p{Ccc=+000_000_000_31:=}');
-    Error('\P{Ccc=+000_000_000_31:=}');
+    Expect(1, 1615, '\p{Canonical_Combining_Class=_-ccc31}', "");
+    Expect(0, 1615, '\p{^Canonical_Combining_Class=_-ccc31}', "");
+    Expect(0, 1615, '\P{Canonical_Combining_Class=_-ccc31}', "");
+    Expect(1, 1615, '\P{^Canonical_Combining_Class=_-ccc31}', "");
+    Expect(0, 1616, '\p{Canonical_Combining_Class=_-ccc31}', "");
+    Expect(1, 1616, '\p{^Canonical_Combining_Class=_-ccc31}', "");
+    Expect(1, 1616, '\P{Canonical_Combining_Class=_-ccc31}', "");
+    Expect(0, 1616, '\P{^Canonical_Combining_Class=_-ccc31}', "");
+    Error('\p{Ccc=_0003_1/a/}');
+    Error('\P{Ccc=_0003_1/a/}');
     Expect(1, 1615, '\p{Ccc=:\A31\z:}', "");;
     Expect(0, 1616, '\p{Ccc=:\A31\z:}', "");;
-    Expect(1, 1615, '\p{Ccc=+00_00_03_1}', "");
-    Expect(0, 1615, '\p{^Ccc=+00_00_03_1}', "");
-    Expect(0, 1615, '\P{Ccc=+00_00_03_1}', "");
-    Expect(1, 1615, '\P{^Ccc=+00_00_03_1}', "");
-    Expect(0, 1616, '\p{Ccc=+00_00_03_1}', "");
-    Expect(1, 1616, '\p{^Ccc=+00_00_03_1}', "");
-    Expect(1, 1616, '\P{Ccc=+00_00_03_1}', "");
-    Expect(0, 1616, '\P{^Ccc=+00_00_03_1}', "");
-    Error('\p{Is_Canonical_Combining_Class=- ccc31:=}');
-    Error('\P{Is_Canonical_Combining_Class=- ccc31:=}');
-    Expect(1, 1615, '\p{Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(0, 1615, '\p{^Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(0, 1615, '\P{Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(1, 1615, '\P{^Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(0, 1616, '\p{Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(1, 1616, '\p{^Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(1, 1616, '\P{Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(0, 1616, '\P{^Is_Canonical_Combining_Class:   ccc31}', "");
-    Expect(1, 1615, '\p{Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(0, 1615, '\p{^Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(0, 1615, '\P{Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(1, 1615, '\P{^Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(0, 1616, '\p{Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(1, 1616, '\p{^Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(1, 1616, '\P{Is_Canonical_Combining_Class:    CCC31}', "");
-    Expect(0, 1616, '\P{^Is_Canonical_Combining_Class:    CCC31}', "");
-    Error('\p{Is_Ccc=/a/-	+3_1}');
-    Error('\P{Is_Ccc=/a/-	+3_1}');
-    Expect(1, 1615, '\p{Is_Ccc=00000000031}', "");
-    Expect(0, 1615, '\p{^Is_Ccc=00000000031}', "");
-    Expect(0, 1615, '\P{Is_Ccc=00000000031}', "");
-    Expect(1, 1615, '\P{^Is_Ccc=00000000031}', "");
-    Expect(0, 1616, '\p{Is_Ccc=00000000031}', "");
-    Expect(1, 1616, '\p{^Is_Ccc=00000000031}', "");
-    Expect(1, 1616, '\P{Is_Ccc=00000000031}', "");
-    Expect(0, 1616, '\P{^Is_Ccc=00000000031}', "");
-    Error('\p{Canonical_Combining_Class=:= CCC32}');
-    Error('\P{Canonical_Combining_Class=:= CCC32}');
+    Expect(1, 1615, '\p{Ccc:   00000000031}', "");
+    Expect(0, 1615, '\p{^Ccc:   00000000031}', "");
+    Expect(0, 1615, '\P{Ccc:   00000000031}', "");
+    Expect(1, 1615, '\P{^Ccc:   00000000031}', "");
+    Expect(0, 1616, '\p{Ccc:   00000000031}', "");
+    Expect(1, 1616, '\p{^Ccc:   00000000031}', "");
+    Expect(1, 1616, '\P{Ccc:   00000000031}', "");
+    Expect(0, 1616, '\P{^Ccc:   00000000031}', "");
+    Error('\p{Is_Canonical_Combining_Class=_ccc31:=}');
+    Error('\P{Is_Canonical_Combining_Class=_ccc31:=}');
+    Expect(1, 1615, '\p{Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1615, '\p{^Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1615, '\P{Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1615, '\P{^Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1616, '\p{Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1616, '\p{^Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1616, '\P{Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(0, 1616, '\P{^Is_Canonical_Combining_Class=ccc31}', "");
+    Expect(1, 1615, '\p{Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(0, 1615, '\p{^Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(0, 1615, '\P{Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(1, 1615, '\P{^Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(0, 1616, '\p{Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(1, 1616, '\p{^Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(1, 1616, '\P{Is_Canonical_Combining_Class=_	ccc31}', "");
+    Expect(0, 1616, '\P{^Is_Canonical_Combining_Class=_	ccc31}', "");
+    Error('\p{Is_Ccc= -31:=}');
+    Error('\P{Is_Ccc= -31:=}');
+    Expect(1, 1615, '\p{Is_Ccc=000003_1}', "");
+    Expect(0, 1615, '\p{^Is_Ccc=000003_1}', "");
+    Expect(0, 1615, '\P{Is_Ccc=000003_1}', "");
+    Expect(1, 1615, '\P{^Is_Ccc=000003_1}', "");
+    Expect(0, 1616, '\p{Is_Ccc=000003_1}', "");
+    Expect(1, 1616, '\p{^Is_Ccc=000003_1}', "");
+    Expect(1, 1616, '\P{Is_Ccc=000003_1}', "");
+    Expect(0, 1616, '\P{^Is_Ccc=000003_1}', "");
+    Error('\p{Canonical_Combining_Class=:= 	CCC32}');
+    Error('\P{Canonical_Combining_Class=:= 	CCC32}');
     Expect(1, 1616, '\p{Canonical_Combining_Class=:\ACCC32\z:}', "");;
     Expect(0, 1617, '\p{Canonical_Combining_Class=:\ACCC32\z:}', "");;
     Expect(1, 1616, '\p{Canonical_Combining_Class=ccc32}', "");
@@ -32285,56 +32853,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1617, '\P{^Canonical_Combining_Class=ccc32}', "");
     Expect(1, 1616, '\p{Canonical_Combining_Class=:\Accc32\z:}', "");;
     Expect(0, 1617, '\p{Canonical_Combining_Class=:\Accc32\z:}', "");;
-    Expect(1, 1616, '\p{Canonical_Combining_Class=_CCC32}', "");
-    Expect(0, 1616, '\p{^Canonical_Combining_Class=_CCC32}', "");
-    Expect(0, 1616, '\P{Canonical_Combining_Class=_CCC32}', "");
-    Expect(1, 1616, '\P{^Canonical_Combining_Class=_CCC32}', "");
-    Expect(0, 1617, '\p{Canonical_Combining_Class=_CCC32}', "");
-    Expect(1, 1617, '\p{^Canonical_Combining_Class=_CCC32}', "");
-    Expect(1, 1617, '\P{Canonical_Combining_Class=_CCC32}', "");
-    Expect(0, 1617, '\P{^Canonical_Combining_Class=_CCC32}', "");
-    Error('\p{Ccc:	-000_003_2/a/}');
-    Error('\P{Ccc:	-000_003_2/a/}');
+    Expect(1, 1616, '\p{Canonical_Combining_Class=-CCC32}', "");
+    Expect(0, 1616, '\p{^Canonical_Combining_Class=-CCC32}', "");
+    Expect(0, 1616, '\P{Canonical_Combining_Class=-CCC32}', "");
+    Expect(1, 1616, '\P{^Canonical_Combining_Class=-CCC32}', "");
+    Expect(0, 1617, '\p{Canonical_Combining_Class=-CCC32}', "");
+    Expect(1, 1617, '\p{^Canonical_Combining_Class=-CCC32}', "");
+    Expect(1, 1617, '\P{Canonical_Combining_Class=-CCC32}', "");
+    Expect(0, 1617, '\P{^Canonical_Combining_Class=-CCC32}', "");
+    Error('\p{Ccc= _0000032:=}');
+    Error('\P{Ccc= _0000032:=}');
     Expect(1, 1616, '\p{Ccc=:\A32\z:}', "");;
     Expect(0, 1617, '\p{Ccc=:\A32\z:}', "");;
-    Expect(1, 1616, '\p{Ccc=00000000032}', "");
-    Expect(0, 1616, '\p{^Ccc=00000000032}', "");
-    Expect(0, 1616, '\P{Ccc=00000000032}', "");
-    Expect(1, 1616, '\P{^Ccc=00000000032}', "");
-    Expect(0, 1617, '\p{Ccc=00000000032}', "");
-    Expect(1, 1617, '\p{^Ccc=00000000032}', "");
-    Expect(1, 1617, '\P{Ccc=00000000032}', "");
-    Expect(0, 1617, '\P{^Ccc=00000000032}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/CCC32}');
-    Error('\P{Is_Canonical_Combining_Class=/a/CCC32}');
-    Expect(1, 1616, '\p{Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(0, 1616, '\p{^Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(0, 1616, '\P{Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(1, 1616, '\P{^Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(0, 1617, '\p{Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(1, 1617, '\p{^Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(1, 1617, '\P{Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(0, 1617, '\P{^Is_Canonical_Combining_Class=ccc32}', "");
-    Expect(1, 1616, '\p{Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(0, 1616, '\p{^Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(0, 1616, '\P{Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(1, 1616, '\P{^Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(0, 1617, '\p{Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(1, 1617, '\p{^Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(1, 1617, '\P{Is_Canonical_Combining_Class=	-CCC32}', "");
-    Expect(0, 1617, '\P{^Is_Canonical_Combining_Class=	-CCC32}', "");
-    Error('\p{Is_Ccc=_+0000000032/a/}');
-    Error('\P{Is_Ccc=_+0000000032/a/}');
-    Expect(1, 1616, '\p{Is_Ccc=032}', "");
-    Expect(0, 1616, '\p{^Is_Ccc=032}', "");
-    Expect(0, 1616, '\P{Is_Ccc=032}', "");
-    Expect(1, 1616, '\P{^Is_Ccc=032}', "");
-    Expect(0, 1617, '\p{Is_Ccc=032}', "");
-    Expect(1, 1617, '\p{^Is_Ccc=032}', "");
-    Expect(1, 1617, '\P{Is_Ccc=032}', "");
-    Expect(0, 1617, '\P{^Is_Ccc=032}', "");
-    Error('\p{Canonical_Combining_Class=	ccc33:=}');
-    Error('\P{Canonical_Combining_Class=	ccc33:=}');
+    Expect(1, 1616, '\p{Ccc=+00000_00003_2}', "");
+    Expect(0, 1616, '\p{^Ccc=+00000_00003_2}', "");
+    Expect(0, 1616, '\P{Ccc=+00000_00003_2}', "");
+    Expect(1, 1616, '\P{^Ccc=+00000_00003_2}', "");
+    Expect(0, 1617, '\p{Ccc=+00000_00003_2}', "");
+    Expect(1, 1617, '\p{^Ccc=+00000_00003_2}', "");
+    Expect(1, 1617, '\P{Ccc=+00000_00003_2}', "");
+    Expect(0, 1617, '\P{^Ccc=+00000_00003_2}', "");
+    Error('\p{Is_Canonical_Combining_Class:/a/CCC32}');
+    Error('\P{Is_Canonical_Combining_Class:/a/CCC32}');
+    Expect(1, 1616, '\p{Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(0, 1616, '\p{^Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(0, 1616, '\P{Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(1, 1616, '\P{^Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(0, 1617, '\p{Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(1, 1617, '\p{^Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(1, 1617, '\P{Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(0, 1617, '\P{^Is_Canonical_Combining_Class: ccc32}', "");
+    Expect(1, 1616, '\p{Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(0, 1616, '\p{^Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(0, 1616, '\P{Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(1, 1616, '\P{^Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(0, 1617, '\p{Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(1, 1617, '\p{^Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(1, 1617, '\P{Is_Canonical_Combining_Class: _ CCC32}', "");
+    Expect(0, 1617, '\P{^Is_Canonical_Combining_Class: _ CCC32}', "");
+    Error('\p{Is_Ccc=-:=032}');
+    Error('\P{Is_Ccc=-:=032}');
+    Expect(1, 1616, '\p{Is_Ccc:	00000000032}', "");
+    Expect(0, 1616, '\p{^Is_Ccc:	00000000032}', "");
+    Expect(0, 1616, '\P{Is_Ccc:	00000000032}', "");
+    Expect(1, 1616, '\P{^Is_Ccc:	00000000032}', "");
+    Expect(0, 1617, '\p{Is_Ccc:	00000000032}', "");
+    Expect(1, 1617, '\p{^Is_Ccc:	00000000032}', "");
+    Expect(1, 1617, '\P{Is_Ccc:	00000000032}', "");
+    Expect(0, 1617, '\P{^Is_Ccc:	00000000032}', "");
+    Error('\p{Canonical_Combining_Class=/a/-_CCC33}');
+    Error('\P{Canonical_Combining_Class=/a/-_CCC33}');
     Expect(1, 1617, '\p{Canonical_Combining_Class=:\ACCC33\z:}', "");;
     Expect(0, 1618, '\p{Canonical_Combining_Class=:\ACCC33\z:}', "");;
     Expect(1, 1617, '\p{Canonical_Combining_Class=ccc33}', "");
@@ -32347,28 +32915,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1618, '\P{^Canonical_Combining_Class=ccc33}', "");
     Expect(1, 1617, '\p{Canonical_Combining_Class=:\Accc33\z:}', "");;
     Expect(0, 1618, '\p{Canonical_Combining_Class=:\Accc33\z:}', "");;
-    Expect(1, 1617, '\p{Canonical_Combining_Class=__ccc33}', "");
-    Expect(0, 1617, '\p{^Canonical_Combining_Class=__ccc33}', "");
-    Expect(0, 1617, '\P{Canonical_Combining_Class=__ccc33}', "");
-    Expect(1, 1617, '\P{^Canonical_Combining_Class=__ccc33}', "");
-    Expect(0, 1618, '\p{Canonical_Combining_Class=__ccc33}', "");
-    Expect(1, 1618, '\p{^Canonical_Combining_Class=__ccc33}', "");
-    Expect(1, 1618, '\P{Canonical_Combining_Class=__ccc33}', "");
-    Expect(0, 1618, '\P{^Canonical_Combining_Class=__ccc33}', "");
-    Error('\p{Ccc=_ +00_03_3:=}');
-    Error('\P{Ccc=_ +00_03_3:=}');
+    Expect(1, 1617, '\p{Canonical_Combining_Class=_-ccc33}', "");
+    Expect(0, 1617, '\p{^Canonical_Combining_Class=_-ccc33}', "");
+    Expect(0, 1617, '\P{Canonical_Combining_Class=_-ccc33}', "");
+    Expect(1, 1617, '\P{^Canonical_Combining_Class=_-ccc33}', "");
+    Expect(0, 1618, '\p{Canonical_Combining_Class=_-ccc33}', "");
+    Expect(1, 1618, '\p{^Canonical_Combining_Class=_-ccc33}', "");
+    Expect(1, 1618, '\P{Canonical_Combining_Class=_-ccc33}', "");
+    Expect(0, 1618, '\P{^Canonical_Combining_Class=_-ccc33}', "");
+    Error('\p{Ccc=:=	000_000_003_3}');
+    Error('\P{Ccc=:=	000_000_003_3}');
     Expect(1, 1617, '\p{Ccc=:\A33\z:}', "");;
     Expect(0, 1618, '\p{Ccc=:\A33\z:}', "");;
-    Expect(1, 1617, '\p{Ccc=33}', "");
-    Expect(0, 1617, '\p{^Ccc=33}', "");
-    Expect(0, 1617, '\P{Ccc=33}', "");
-    Expect(1, 1617, '\P{^Ccc=33}', "");
-    Expect(0, 1618, '\p{Ccc=33}', "");
-    Expect(1, 1618, '\p{^Ccc=33}', "");
-    Expect(1, 1618, '\P{Ccc=33}', "");
-    Expect(0, 1618, '\P{^Ccc=33}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/__CCC33}');
-    Error('\P{Is_Canonical_Combining_Class=/a/__CCC33}');
+    Expect(1, 1617, '\p{Ccc=+0000033}', "");
+    Expect(0, 1617, '\p{^Ccc=+0000033}', "");
+    Expect(0, 1617, '\P{Ccc=+0000033}', "");
+    Expect(1, 1617, '\P{^Ccc=+0000033}', "");
+    Expect(0, 1618, '\p{Ccc=+0000033}', "");
+    Expect(1, 1618, '\p{^Ccc=+0000033}', "");
+    Expect(1, 1618, '\P{Ccc=+0000033}', "");
+    Expect(0, 1618, '\P{^Ccc=+0000033}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/  CCC33}');
+    Error('\P{Is_Canonical_Combining_Class=/a/  CCC33}');
     Expect(1, 1617, '\p{Is_Canonical_Combining_Class=ccc33}', "");
     Expect(0, 1617, '\p{^Is_Canonical_Combining_Class=ccc33}', "");
     Expect(0, 1617, '\P{Is_Canonical_Combining_Class=ccc33}', "");
@@ -32377,26 +32945,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1618, '\p{^Is_Canonical_Combining_Class=ccc33}', "");
     Expect(1, 1618, '\P{Is_Canonical_Combining_Class=ccc33}', "");
     Expect(0, 1618, '\P{^Is_Canonical_Combining_Class=ccc33}', "");
-    Expect(1, 1617, '\p{Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(0, 1617, '\p{^Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(0, 1617, '\P{Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(1, 1617, '\P{^Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(0, 1618, '\p{Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(1, 1618, '\p{^Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(1, 1618, '\P{Is_Canonical_Combining_Class=_ ccc33}', "");
-    Expect(0, 1618, '\P{^Is_Canonical_Combining_Class=_ ccc33}', "");
-    Error('\p{Is_Ccc: _/a/0000_0003_3}');
-    Error('\P{Is_Ccc: _/a/0000_0003_3}');
-    Expect(1, 1617, '\p{Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(0, 1617, '\p{^Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(0, 1617, '\P{Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(1, 1617, '\P{^Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(0, 1618, '\p{Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(1, 1618, '\p{^Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(1, 1618, '\P{Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Expect(0, 1618, '\P{^Is_Ccc=+0_0_0_0_0_0_33}', "");
-    Error('\p{Canonical_Combining_Class=:=CCC34}');
-    Error('\P{Canonical_Combining_Class=:=CCC34}');
+    Expect(1, 1617, '\p{Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(0, 1617, '\p{^Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(0, 1617, '\P{Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(1, 1617, '\P{^Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(0, 1618, '\p{Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(1, 1618, '\p{^Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(1, 1618, '\P{Is_Canonical_Combining_Class=	-CCC33}', "");
+    Expect(0, 1618, '\P{^Is_Canonical_Combining_Class=	-CCC33}', "");
+    Error('\p{Is_Ccc= _033:=}');
+    Error('\P{Is_Ccc= _033:=}');
+    Expect(1, 1617, '\p{Is_Ccc=+003_3}', "");
+    Expect(0, 1617, '\p{^Is_Ccc=+003_3}', "");
+    Expect(0, 1617, '\P{Is_Ccc=+003_3}', "");
+    Expect(1, 1617, '\P{^Is_Ccc=+003_3}', "");
+    Expect(0, 1618, '\p{Is_Ccc=+003_3}', "");
+    Expect(1, 1618, '\p{^Is_Ccc=+003_3}', "");
+    Expect(1, 1618, '\P{Is_Ccc=+003_3}', "");
+    Expect(0, 1618, '\P{^Is_Ccc=+003_3}', "");
+    Error('\p{Canonical_Combining_Class=:=__ccc34}');
+    Error('\P{Canonical_Combining_Class=:=__ccc34}');
     Expect(1, 1618, '\p{Canonical_Combining_Class=:\ACCC34\z:}', "");;
     Expect(0, 1619, '\p{Canonical_Combining_Class=:\ACCC34\z:}', "");;
     Expect(1, 1618, '\p{Canonical_Combining_Class=ccc34}', "");
@@ -32409,56 +32977,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1619, '\P{^Canonical_Combining_Class=ccc34}', "");
     Expect(1, 1618, '\p{Canonical_Combining_Class=:\Accc34\z:}', "");;
     Expect(0, 1619, '\p{Canonical_Combining_Class=:\Accc34\z:}', "");;
-    Expect(1, 1618, '\p{Canonical_Combining_Class=	CCC34}', "");
-    Expect(0, 1618, '\p{^Canonical_Combining_Class=	CCC34}', "");
-    Expect(0, 1618, '\P{Canonical_Combining_Class=	CCC34}', "");
-    Expect(1, 1618, '\P{^Canonical_Combining_Class=	CCC34}', "");
-    Expect(0, 1619, '\p{Canonical_Combining_Class=	CCC34}', "");
-    Expect(1, 1619, '\p{^Canonical_Combining_Class=	CCC34}', "");
-    Expect(1, 1619, '\P{Canonical_Combining_Class=	CCC34}', "");
-    Expect(0, 1619, '\P{^Canonical_Combining_Class=	CCC34}', "");
-    Error('\p{Ccc= _000000003_4/a/}');
-    Error('\P{Ccc= _000000003_4/a/}');
+    Expect(1, 1618, '\p{Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1618, '\p{^Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1618, '\P{Canonical_Combining_Class=	 CCC34}', "");
+    Expect(1, 1618, '\P{^Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1619, '\p{Canonical_Combining_Class=	 CCC34}', "");
+    Expect(1, 1619, '\p{^Canonical_Combining_Class=	 CCC34}', "");
+    Expect(1, 1619, '\P{Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1619, '\P{^Canonical_Combining_Class=	 CCC34}', "");
+    Error('\p{Ccc=	-003_4/a/}');
+    Error('\P{Ccc=	-003_4/a/}');
     Expect(1, 1618, '\p{Ccc=:\A34\z:}', "");;
     Expect(0, 1619, '\p{Ccc=:\A34\z:}', "");;
-    Expect(1, 1618, '\p{Ccc: 0_0_0_0_34}', "");
-    Expect(0, 1618, '\p{^Ccc: 0_0_0_0_34}', "");
-    Expect(0, 1618, '\P{Ccc: 0_0_0_0_34}', "");
-    Expect(1, 1618, '\P{^Ccc: 0_0_0_0_34}', "");
-    Expect(0, 1619, '\p{Ccc: 0_0_0_0_34}', "");
-    Expect(1, 1619, '\p{^Ccc: 0_0_0_0_34}', "");
-    Expect(1, 1619, '\P{Ccc: 0_0_0_0_34}', "");
-    Expect(0, 1619, '\P{^Ccc: 0_0_0_0_34}', "");
-    Error('\p{Is_Canonical_Combining_Class=--CCC34:=}');
-    Error('\P{Is_Canonical_Combining_Class=--CCC34:=}');
-    Expect(1, 1618, '\p{Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(0, 1618, '\p{^Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(0, 1618, '\P{Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(1, 1618, '\P{^Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(0, 1619, '\p{Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(1, 1619, '\p{^Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(1, 1619, '\P{Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(0, 1619, '\P{^Is_Canonical_Combining_Class: ccc34}', "");
-    Expect(1, 1618, '\p{Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(0, 1618, '\p{^Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(0, 1618, '\P{Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(1, 1618, '\P{^Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(0, 1619, '\p{Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(1, 1619, '\p{^Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(1, 1619, '\P{Is_Canonical_Combining_Class=_	ccc34}', "");
-    Expect(0, 1619, '\P{^Is_Canonical_Combining_Class=_	ccc34}', "");
-    Error('\p{Is_Ccc=:=		00000034}');
-    Error('\P{Is_Ccc=:=		00000034}');
-    Expect(1, 1618, '\p{Is_Ccc=00_00_00_34}', "");
-    Expect(0, 1618, '\p{^Is_Ccc=00_00_00_34}', "");
-    Expect(0, 1618, '\P{Is_Ccc=00_00_00_34}', "");
-    Expect(1, 1618, '\P{^Is_Ccc=00_00_00_34}', "");
-    Expect(0, 1619, '\p{Is_Ccc=00_00_00_34}', "");
-    Expect(1, 1619, '\p{^Is_Ccc=00_00_00_34}', "");
-    Expect(1, 1619, '\P{Is_Ccc=00_00_00_34}', "");
-    Expect(0, 1619, '\P{^Is_Ccc=00_00_00_34}', "");
-    Error('\p{Canonical_Combining_Class=/a/  CCC35}');
-    Error('\P{Canonical_Combining_Class=/a/  CCC35}');
+    Expect(1, 1618, '\p{Ccc=+0003_4}', "");
+    Expect(0, 1618, '\p{^Ccc=+0003_4}', "");
+    Expect(0, 1618, '\P{Ccc=+0003_4}', "");
+    Expect(1, 1618, '\P{^Ccc=+0003_4}', "");
+    Expect(0, 1619, '\p{Ccc=+0003_4}', "");
+    Expect(1, 1619, '\p{^Ccc=+0003_4}', "");
+    Expect(1, 1619, '\P{Ccc=+0003_4}', "");
+    Expect(0, 1619, '\P{^Ccc=+0003_4}', "");
+    Error('\p{Is_Canonical_Combining_Class=_ CCC34/a/}');
+    Error('\P{Is_Canonical_Combining_Class=_ CCC34/a/}');
+    Expect(1, 1618, '\p{Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(0, 1618, '\p{^Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(0, 1618, '\P{Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(1, 1618, '\P{^Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(0, 1619, '\p{Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(1, 1619, '\p{^Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(1, 1619, '\P{Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(0, 1619, '\P{^Is_Canonical_Combining_Class=ccc34}', "");
+    Expect(1, 1618, '\p{Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1618, '\p{^Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1618, '\P{Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(1, 1618, '\P{^Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1619, '\p{Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(1, 1619, '\p{^Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(1, 1619, '\P{Is_Canonical_Combining_Class=	 CCC34}', "");
+    Expect(0, 1619, '\P{^Is_Canonical_Combining_Class=	 CCC34}', "");
+    Error('\p{Is_Ccc:		_003_4/a/}');
+    Error('\P{Is_Ccc:		_003_4/a/}');
+    Expect(1, 1618, '\p{Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(0, 1618, '\p{^Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(0, 1618, '\P{Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(1, 1618, '\P{^Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(0, 1619, '\p{Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(1, 1619, '\p{^Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(1, 1619, '\P{Is_Ccc=0_0_0_0_0_00034}', "");
+    Expect(0, 1619, '\P{^Is_Ccc=0_0_0_0_0_00034}', "");
+    Error('\p{Canonical_Combining_Class=_ CCC35/a/}');
+    Error('\P{Canonical_Combining_Class=_ CCC35/a/}');
     Expect(1, 1648, '\p{Canonical_Combining_Class=:\ACCC35\z:}', "");;
     Expect(0, 1649, '\p{Canonical_Combining_Class=:\ACCC35\z:}', "");;
     Expect(1, 1648, '\p{Canonical_Combining_Class=ccc35}', "");
@@ -32471,90 +33039,90 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1649, '\P{^Canonical_Combining_Class=ccc35}', "");
     Expect(1, 1648, '\p{Canonical_Combining_Class=:\Accc35\z:}', "");;
     Expect(0, 1649, '\p{Canonical_Combining_Class=:\Accc35\z:}', "");;
-    Expect(1, 1648, '\p{Canonical_Combining_Class=-CCC35}', "");
-    Expect(0, 1648, '\p{^Canonical_Combining_Class=-CCC35}', "");
-    Expect(0, 1648, '\P{Canonical_Combining_Class=-CCC35}', "");
-    Expect(1, 1648, '\P{^Canonical_Combining_Class=-CCC35}', "");
-    Expect(0, 1649, '\p{Canonical_Combining_Class=-CCC35}', "");
-    Expect(1, 1649, '\p{^Canonical_Combining_Class=-CCC35}', "");
-    Expect(1, 1649, '\P{Canonical_Combining_Class=-CCC35}', "");
-    Expect(0, 1649, '\P{^Canonical_Combining_Class=-CCC35}', "");
-    Error('\p{Ccc= :=+03_5}');
-    Error('\P{Ccc= :=+03_5}');
+    Expect(1, 1648, '\p{Canonical_Combining_Class=_	ccc35}', "");
+    Expect(0, 1648, '\p{^Canonical_Combining_Class=_	ccc35}', "");
+    Expect(0, 1648, '\P{Canonical_Combining_Class=_	ccc35}', "");
+    Expect(1, 1648, '\P{^Canonical_Combining_Class=_	ccc35}', "");
+    Expect(0, 1649, '\p{Canonical_Combining_Class=_	ccc35}', "");
+    Expect(1, 1649, '\p{^Canonical_Combining_Class=_	ccc35}', "");
+    Expect(1, 1649, '\P{Canonical_Combining_Class=_	ccc35}', "");
+    Expect(0, 1649, '\P{^Canonical_Combining_Class=_	ccc35}', "");
+    Error('\p{Ccc=	 00_00_35:=}');
+    Error('\P{Ccc=	 00_00_35:=}');
     Expect(1, 1648, '\p{Ccc=:\A35\z:}', "");;
     Expect(0, 1649, '\p{Ccc=:\A35\z:}', "");;
-    Expect(1, 1648, '\p{Ccc=0_0_0_0_35}', "");
-    Expect(0, 1648, '\p{^Ccc=0_0_0_0_35}', "");
-    Expect(0, 1648, '\P{Ccc=0_0_0_0_35}', "");
-    Expect(1, 1648, '\P{^Ccc=0_0_0_0_35}', "");
-    Expect(0, 1649, '\p{Ccc=0_0_0_0_35}', "");
-    Expect(1, 1649, '\p{^Ccc=0_0_0_0_35}', "");
-    Expect(1, 1649, '\P{Ccc=0_0_0_0_35}', "");
-    Expect(0, 1649, '\P{^Ccc=0_0_0_0_35}', "");
-    Error('\p{Is_Canonical_Combining_Class=/a/_ccc35}');
-    Error('\P{Is_Canonical_Combining_Class=/a/_ccc35}');
-    Expect(1, 1648, '\p{Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(0, 1648, '\p{^Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(0, 1648, '\P{Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(1, 1648, '\P{^Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(0, 1649, '\p{Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(1, 1649, '\p{^Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(1, 1649, '\P{Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(0, 1649, '\P{^Is_Canonical_Combining_Class=ccc35}', "");
-    Expect(1, 1648, '\p{Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(0, 1648, '\p{^Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(0, 1648, '\P{Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(1, 1648, '\P{^Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(0, 1649, '\p{Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(1, 1649, '\p{^Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(1, 1649, '\P{Is_Canonical_Combining_Class=_	CCC35}', "");
-    Expect(0, 1649, '\P{^Is_Canonical_Combining_Class=_	CCC35}', "");
-    Error('\p{Is_Ccc:	-	0000000035/a/}');
-    Error('\P{Is_Ccc:	-	0000000035/a/}');
-    Expect(1, 1648, '\p{Is_Ccc=+0_0_35}', "");
-    Expect(0, 1648, '\p{^Is_Ccc=+0_0_35}', "");
-    Expect(0, 1648, '\P{Is_Ccc=+0_0_35}', "");
-    Expect(1, 1648, '\P{^Is_Ccc=+0_0_35}', "");
-    Expect(0, 1649, '\p{Is_Ccc=+0_0_35}', "");
-    Expect(1, 1649, '\p{^Is_Ccc=+0_0_35}', "");
-    Expect(1, 1649, '\P{Is_Ccc=+0_0_35}', "");
-    Expect(0, 1649, '\P{^Is_Ccc=+0_0_35}', "");
-    Error('\p{Canonical_Combining_Class=	CCC36:=}');
-    Error('\P{Canonical_Combining_Class=	CCC36:=}');
+    Expect(1, 1648, '\p{Ccc=03_5}', "");
+    Expect(0, 1648, '\p{^Ccc=03_5}', "");
+    Expect(0, 1648, '\P{Ccc=03_5}', "");
+    Expect(1, 1648, '\P{^Ccc=03_5}', "");
+    Expect(0, 1649, '\p{Ccc=03_5}', "");
+    Expect(1, 1649, '\p{^Ccc=03_5}', "");
+    Expect(1, 1649, '\P{Ccc=03_5}', "");
+    Expect(0, 1649, '\P{^Ccc=03_5}', "");
+    Error('\p{Is_Canonical_Combining_Class= /a/CCC35}');
+    Error('\P{Is_Canonical_Combining_Class= /a/CCC35}');
+    Expect(1, 1648, '\p{Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(0, 1648, '\p{^Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(0, 1648, '\P{Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(1, 1648, '\P{^Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(0, 1649, '\p{Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(1, 1649, '\p{^Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(1, 1649, '\P{Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(0, 1649, '\P{^Is_Canonical_Combining_Class:	ccc35}', "");
+    Expect(1, 1648, '\p{Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(0, 1648, '\p{^Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(0, 1648, '\P{Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(1, 1648, '\P{^Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(0, 1649, '\p{Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(1, 1649, '\p{^Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(1, 1649, '\P{Is_Canonical_Combining_Class= CCC35}', "");
+    Expect(0, 1649, '\P{^Is_Canonical_Combining_Class= CCC35}', "");
+    Error('\p{Is_Ccc=_/a/0000000035}');
+    Error('\P{Is_Ccc=_/a/0000000035}');
+    Expect(1, 1648, '\p{Is_Ccc=+003_5}', "");
+    Expect(0, 1648, '\p{^Is_Ccc=+003_5}', "");
+    Expect(0, 1648, '\P{Is_Ccc=+003_5}', "");
+    Expect(1, 1648, '\P{^Is_Ccc=+003_5}', "");
+    Expect(0, 1649, '\p{Is_Ccc=+003_5}', "");
+    Expect(1, 1649, '\p{^Is_Ccc=+003_5}', "");
+    Expect(1, 1649, '\P{Is_Ccc=+003_5}', "");
+    Expect(0, 1649, '\P{^Is_Ccc=+003_5}', "");
+    Error('\p{Canonical_Combining_Class:   _/a/CCC36}');
+    Error('\P{Canonical_Combining_Class:   _/a/CCC36}');
     Expect(1, 1809, '\p{Canonical_Combining_Class=:\ACCC36\z:}', "");;
     Expect(0, 1810, '\p{Canonical_Combining_Class=:\ACCC36\z:}', "");;
-    Expect(1, 1809, '\p{Canonical_Combining_Class=ccc36}', "");
-    Expect(0, 1809, '\p{^Canonical_Combining_Class=ccc36}', "");
-    Expect(0, 1809, '\P{Canonical_Combining_Class=ccc36}', "");
-    Expect(1, 1809, '\P{^Canonical_Combining_Class=ccc36}', "");
-    Expect(0, 1810, '\p{Canonical_Combining_Class=ccc36}', "");
-    Expect(1, 1810, '\p{^Canonical_Combining_Class=ccc36}', "");
-    Expect(1, 1810, '\P{Canonical_Combining_Class=ccc36}', "");
-    Expect(0, 1810, '\P{^Canonical_Combining_Class=ccc36}', "");
+    Expect(1, 1809, '\p{Canonical_Combining_Class:   ccc36}', "");
+    Expect(0, 1809, '\p{^Canonical_Combining_Class:   ccc36}', "");
+    Expect(0, 1809, '\P{Canonical_Combining_Class:   ccc36}', "");
+    Expect(1, 1809, '\P{^Canonical_Combining_Class:   ccc36}', "");
+    Expect(0, 1810, '\p{Canonical_Combining_Class:   ccc36}', "");
+    Expect(1, 1810, '\p{^Canonical_Combining_Class:   ccc36}', "");
+    Expect(1, 1810, '\P{Canonical_Combining_Class:   ccc36}', "");
+    Expect(0, 1810, '\P{^Canonical_Combining_Class:   ccc36}', "");
     Expect(1, 1809, '\p{Canonical_Combining_Class=:\Accc36\z:}', "");;
     Expect(0, 1810, '\p{Canonical_Combining_Class=:\Accc36\z:}', "");;
-    Expect(1, 1809, '\p{Canonical_Combining_Class=-_CCC36}', "");
-    Expect(0, 1809, '\p{^Canonical_Combining_Class=-_CCC36}', "");
-    Expect(0, 1809, '\P{Canonical_Combining_Class=-_CCC36}', "");
-    Expect(1, 1809, '\P{^Canonical_Combining_Class=-_CCC36}', "");
-    Expect(0, 1810, '\p{Canonical_Combining_Class=-_CCC36}', "");
-    Expect(1, 1810, '\p{^Canonical_Combining_Class=-_CCC36}', "");
-    Expect(1, 1810, '\P{Canonical_Combining_Class=-_CCC36}', "");
-    Expect(0, 1810, '\P{^Canonical_Combining_Class=-_CCC36}', "");
-    Error('\p{Ccc=/a/_0_0_0_036}');
-    Error('\P{Ccc=/a/_0_0_0_036}');
+    Expect(1, 1809, '\p{Canonical_Combining_Class=- CCC36}', "");
+    Expect(0, 1809, '\p{^Canonical_Combining_Class=- CCC36}', "");
+    Expect(0, 1809, '\P{Canonical_Combining_Class=- CCC36}', "");
+    Expect(1, 1809, '\P{^Canonical_Combining_Class=- CCC36}', "");
+    Expect(0, 1810, '\p{Canonical_Combining_Class=- CCC36}', "");
+    Expect(1, 1810, '\p{^Canonical_Combining_Class=- CCC36}', "");
+    Expect(1, 1810, '\P{Canonical_Combining_Class=- CCC36}', "");
+    Expect(0, 1810, '\P{^Canonical_Combining_Class=- CCC36}', "");
+    Error('\p{Ccc=:= 	+0000000003_6}');
+    Error('\P{Ccc=:= 	+0000000003_6}');
     Expect(1, 1809, '\p{Ccc=:\A36\z:}', "");;
     Expect(0, 1810, '\p{Ccc=:\A36\z:}', "");;
-    Expect(1, 1809, '\p{Ccc=+0036}', "");
-    Expect(0, 1809, '\p{^Ccc=+0036}', "");
-    Expect(0, 1809, '\P{Ccc=+0036}', "");
-    Expect(1, 1809, '\P{^Ccc=+0036}', "");
-    Expect(0, 1810, '\p{Ccc=+0036}', "");
-    Expect(1, 1810, '\p{^Ccc=+0036}', "");
-    Expect(1, 1810, '\P{Ccc=+0036}', "");
-    Expect(0, 1810, '\P{^Ccc=+0036}', "");
-    Error('\p{Is_Canonical_Combining_Class=_/a/ccc36}');
-    Error('\P{Is_Canonical_Combining_Class=_/a/ccc36}');
+    Expect(1, 1809, '\p{Ccc=36}', "");
+    Expect(0, 1809, '\p{^Ccc=36}', "");
+    Expect(0, 1809, '\P{Ccc=36}', "");
+    Expect(1, 1809, '\P{^Ccc=36}', "");
+    Expect(0, 1810, '\p{Ccc=36}', "");
+    Expect(1, 1810, '\p{^Ccc=36}', "");
+    Expect(1, 1810, '\P{Ccc=36}', "");
+    Expect(0, 1810, '\P{^Ccc=36}', "");
+    Error('\p{Is_Canonical_Combining_Class:		:=CCC36}');
+    Error('\P{Is_Canonical_Combining_Class:		:=CCC36}');
     Expect(1, 1809, '\p{Is_Canonical_Combining_Class=ccc36}', "");
     Expect(0, 1809, '\p{^Is_Canonical_Combining_Class=ccc36}', "");
     Expect(0, 1809, '\P{Is_Canonical_Combining_Class=ccc36}', "");
@@ -32563,26 +33131,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1810, '\p{^Is_Canonical_Combining_Class=ccc36}', "");
     Expect(1, 1810, '\P{Is_Canonical_Combining_Class=ccc36}', "");
     Expect(0, 1810, '\P{^Is_Canonical_Combining_Class=ccc36}', "");
-    Expect(1, 1809, '\p{Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(0, 1809, '\p{^Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(0, 1809, '\P{Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(1, 1809, '\P{^Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(0, 1810, '\p{Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(1, 1810, '\p{^Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(1, 1810, '\P{Is_Canonical_Combining_Class= 	CCC36}', "");
-    Expect(0, 1810, '\P{^Is_Canonical_Combining_Class= 	CCC36}', "");
-    Error('\p{Is_Ccc=:=__0_0_0_0_0_00036}');
-    Error('\P{Is_Ccc=:=__0_0_0_0_0_00036}');
-    Expect(1, 1809, '\p{Is_Ccc=+0036}', "");
-    Expect(0, 1809, '\p{^Is_Ccc=+0036}', "");
-    Expect(0, 1809, '\P{Is_Ccc=+0036}', "");
-    Expect(1, 1809, '\P{^Is_Ccc=+0036}', "");
-    Expect(0, 1810, '\p{Is_Ccc=+0036}', "");
-    Expect(1, 1810, '\p{^Is_Ccc=+0036}', "");
-    Expect(1, 1810, '\P{Is_Ccc=+0036}', "");
-    Expect(0, 1810, '\P{^Is_Ccc=+0036}', "");
-    Error('\p{Canonical_Combining_Class=:= -CCC84}');
-    Error('\P{Canonical_Combining_Class=:= -CCC84}');
+    Expect(1, 1809, '\p{Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(0, 1809, '\p{^Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(0, 1809, '\P{Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(1, 1809, '\P{^Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(0, 1810, '\p{Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(1, 1810, '\p{^Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(1, 1810, '\P{Is_Canonical_Combining_Class=_ CCC36}', "");
+    Expect(0, 1810, '\P{^Is_Canonical_Combining_Class=_ CCC36}', "");
+    Error('\p{Is_Ccc= /a/000000036}');
+    Error('\P{Is_Ccc= /a/000000036}');
+    Expect(1, 1809, '\p{Is_Ccc=0000000036}', "");
+    Expect(0, 1809, '\p{^Is_Ccc=0000000036}', "");
+    Expect(0, 1809, '\P{Is_Ccc=0000000036}', "");
+    Expect(1, 1809, '\P{^Is_Ccc=0000000036}', "");
+    Expect(0, 1810, '\p{Is_Ccc=0000000036}', "");
+    Expect(1, 1810, '\p{^Is_Ccc=0000000036}', "");
+    Expect(1, 1810, '\P{Is_Ccc=0000000036}', "");
+    Expect(0, 1810, '\P{^Is_Ccc=0000000036}', "");
+    Error('\p{Canonical_Combining_Class=/a/__CCC84}');
+    Error('\P{Canonical_Combining_Class=/a/__CCC84}');
     Expect(1, 3157, '\p{Canonical_Combining_Class=:\ACCC84\z:}', "");;
     Expect(0, 3158, '\p{Canonical_Combining_Class=:\ACCC84\z:}', "");;
     Expect(1, 3157, '\p{Canonical_Combining_Class=ccc84}', "");
@@ -32595,118 +33163,118 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 3158, '\P{^Canonical_Combining_Class=ccc84}', "");
     Expect(1, 3157, '\p{Canonical_Combining_Class=:\Accc84\z:}', "");;
     Expect(0, 3158, '\p{Canonical_Combining_Class=:\Accc84\z:}', "");;
-    Expect(1, 3157, '\p{Canonical_Combining_Class=-CCC84}', "");
-    Expect(0, 3157, '\p{^Canonical_Combining_Class=-CCC84}', "");
-    Expect(0, 3157, '\P{Canonical_Combining_Class=-CCC84}', "");
-    Expect(1, 3157, '\P{^Canonical_Combining_Class=-CCC84}', "");
-    Expect(0, 3158, '\p{Canonical_Combining_Class=-CCC84}', "");
-    Expect(1, 3158, '\p{^Canonical_Combining_Class=-CCC84}', "");
-    Expect(1, 3158, '\P{Canonical_Combining_Class=-CCC84}', "");
-    Expect(0, 3158, '\P{^Canonical_Combining_Class=-CCC84}', "");
-    Error('\p{Ccc=/a/	-08_4}');
-    Error('\P{Ccc=/a/	-08_4}');
+    Expect(1, 3157, '\p{Canonical_Combining_Class= -ccc84}', "");
+    Expect(0, 3157, '\p{^Canonical_Combining_Class= -ccc84}', "");
+    Expect(0, 3157, '\P{Canonical_Combining_Class= -ccc84}', "");
+    Expect(1, 3157, '\P{^Canonical_Combining_Class= -ccc84}', "");
+    Expect(0, 3158, '\p{Canonical_Combining_Class= -ccc84}', "");
+    Expect(1, 3158, '\p{^Canonical_Combining_Class= -ccc84}', "");
+    Expect(1, 3158, '\P{Canonical_Combining_Class= -ccc84}', "");
+    Expect(0, 3158, '\P{^Canonical_Combining_Class= -ccc84}', "");
+    Error('\p{Ccc=	+0_0_0_0_084/a/}');
+    Error('\P{Ccc=	+0_0_0_0_084/a/}');
     Expect(1, 3157, '\p{Ccc=:\A84\z:}', "");;
     Expect(0, 3158, '\p{Ccc=:\A84\z:}', "");;
-    Expect(1, 3157, '\p{Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(0, 3157, '\p{^Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(0, 3157, '\P{Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(1, 3157, '\P{^Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(0, 3158, '\p{Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(1, 3158, '\p{^Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(1, 3158, '\P{Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Expect(0, 3158, '\P{^Ccc=0_0_0_0_0_0_0_0_084}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=	-CCC84}');
-    Error('\P{Is_Canonical_Combining_Class=:=	-CCC84}');
-    Expect(1, 3157, '\p{Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(0, 3157, '\p{^Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(0, 3157, '\P{Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(1, 3157, '\P{^Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(0, 3158, '\p{Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(1, 3158, '\p{^Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(1, 3158, '\P{Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(0, 3158, '\P{^Is_Canonical_Combining_Class=ccc84}', "");
-    Expect(1, 3157, '\p{Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(0, 3157, '\p{^Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(0, 3157, '\P{Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(1, 3157, '\P{^Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(0, 3158, '\p{Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(1, 3158, '\p{^Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(1, 3158, '\P{Is_Canonical_Combining_Class=	 CCC84}', "");
-    Expect(0, 3158, '\P{^Is_Canonical_Combining_Class=	 CCC84}', "");
-    Error('\p{Is_Ccc=-_0_0_0_0_0_0_0_084/a/}');
-    Error('\P{Is_Ccc=-_0_0_0_0_0_0_0_084/a/}');
-    Expect(1, 3157, '\p{Is_Ccc=0000000084}', "");
-    Expect(0, 3157, '\p{^Is_Ccc=0000000084}', "");
-    Expect(0, 3157, '\P{Is_Ccc=0000000084}', "");
-    Expect(1, 3157, '\P{^Is_Ccc=0000000084}', "");
-    Expect(0, 3158, '\p{Is_Ccc=0000000084}', "");
-    Expect(1, 3158, '\p{^Is_Ccc=0000000084}', "");
-    Expect(1, 3158, '\P{Is_Ccc=0000000084}', "");
-    Expect(0, 3158, '\P{^Is_Ccc=0000000084}', "");
-    Error('\p{Canonical_Combining_Class=/a/ccc91}');
-    Error('\P{Canonical_Combining_Class=/a/ccc91}');
+    Expect(1, 3157, '\p{Ccc=+0_0_84}', "");
+    Expect(0, 3157, '\p{^Ccc=+0_0_84}', "");
+    Expect(0, 3157, '\P{Ccc=+0_0_84}', "");
+    Expect(1, 3157, '\P{^Ccc=+0_0_84}', "");
+    Expect(0, 3158, '\p{Ccc=+0_0_84}', "");
+    Expect(1, 3158, '\p{^Ccc=+0_0_84}', "");
+    Expect(1, 3158, '\P{Ccc=+0_0_84}', "");
+    Expect(0, 3158, '\P{^Ccc=+0_0_84}', "");
+    Error('\p{Is_Canonical_Combining_Class= /a/CCC84}');
+    Error('\P{Is_Canonical_Combining_Class= /a/CCC84}');
+    Expect(1, 3157, '\p{Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(0, 3157, '\p{^Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(0, 3157, '\P{Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(1, 3157, '\P{^Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(0, 3158, '\p{Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(1, 3158, '\p{^Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(1, 3158, '\P{Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(0, 3158, '\P{^Is_Canonical_Combining_Class:   ccc84}', "");
+    Expect(1, 3157, '\p{Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(0, 3157, '\p{^Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(0, 3157, '\P{Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(1, 3157, '\P{^Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(0, 3158, '\p{Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(1, 3158, '\p{^Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(1, 3158, '\P{Is_Canonical_Combining_Class:		_CCC84}', "");
+    Expect(0, 3158, '\P{^Is_Canonical_Combining_Class:		_CCC84}', "");
+    Error('\p{Is_Ccc=/a/ -084}');
+    Error('\P{Is_Ccc=/a/ -084}');
+    Expect(1, 3157, '\p{Is_Ccc=0000084}', "");
+    Expect(0, 3157, '\p{^Is_Ccc=0000084}', "");
+    Expect(0, 3157, '\P{Is_Ccc=0000084}', "");
+    Expect(1, 3157, '\P{^Is_Ccc=0000084}', "");
+    Expect(0, 3158, '\p{Is_Ccc=0000084}', "");
+    Expect(1, 3158, '\p{^Is_Ccc=0000084}', "");
+    Expect(1, 3158, '\P{Is_Ccc=0000084}', "");
+    Expect(0, 3158, '\P{^Is_Ccc=0000084}', "");
+    Error('\p{Canonical_Combining_Class=--CCC91:=}');
+    Error('\P{Canonical_Combining_Class=--CCC91:=}');
     Expect(1, 3158, '\p{Canonical_Combining_Class=:\ACCC91\z:}', "");;
     Expect(0, 3159, '\p{Canonical_Combining_Class=:\ACCC91\z:}', "");;
-    Expect(1, 3158, '\p{Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3158, '\p{^Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3158, '\P{Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3158, '\P{^Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3159, '\p{Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3159, '\p{^Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3159, '\P{Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3159, '\P{^Canonical_Combining_Class=ccc91}', "");
+    Expect(1, 3158, '\p{Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3158, '\p{^Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3158, '\P{Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3158, '\P{^Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3159, '\p{Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3159, '\p{^Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3159, '\P{Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3159, '\P{^Canonical_Combining_Class:   ccc91}', "");
     Expect(1, 3158, '\p{Canonical_Combining_Class=:\Accc91\z:}', "");;
     Expect(0, 3159, '\p{Canonical_Combining_Class=:\Accc91\z:}', "");;
-    Expect(1, 3158, '\p{Canonical_Combining_Class=	CCC91}', "");
-    Expect(0, 3158, '\p{^Canonical_Combining_Class=	CCC91}', "");
-    Expect(0, 3158, '\P{Canonical_Combining_Class=	CCC91}', "");
-    Expect(1, 3158, '\P{^Canonical_Combining_Class=	CCC91}', "");
-    Expect(0, 3159, '\p{Canonical_Combining_Class=	CCC91}', "");
-    Expect(1, 3159, '\p{^Canonical_Combining_Class=	CCC91}', "");
-    Expect(1, 3159, '\P{Canonical_Combining_Class=	CCC91}', "");
-    Expect(0, 3159, '\P{^Canonical_Combining_Class=	CCC91}', "");
-    Error('\p{Ccc=/a/__00000091}');
-    Error('\P{Ccc=/a/__00000091}');
+    Expect(1, 3158, '\p{Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(0, 3158, '\p{^Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(0, 3158, '\P{Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(1, 3158, '\P{^Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(0, 3159, '\p{Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(1, 3159, '\p{^Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(1, 3159, '\P{Canonical_Combining_Class:	 _CCC91}', "");
+    Expect(0, 3159, '\P{^Canonical_Combining_Class:	 _CCC91}', "");
+    Error('\p{Ccc=/a/	0000000091}');
+    Error('\P{Ccc=/a/	0000000091}');
     Expect(1, 3158, '\p{Ccc=:\A91\z:}', "");;
     Expect(0, 3159, '\p{Ccc=:\A91\z:}', "");;
-    Expect(1, 3158, '\p{Ccc:   +0000000091}', "");
-    Expect(0, 3158, '\p{^Ccc:   +0000000091}', "");
-    Expect(0, 3158, '\P{Ccc:   +0000000091}', "");
-    Expect(1, 3158, '\P{^Ccc:   +0000000091}', "");
-    Expect(0, 3159, '\p{Ccc:   +0000000091}', "");
-    Expect(1, 3159, '\p{^Ccc:   +0000000091}', "");
-    Expect(1, 3159, '\P{Ccc:   +0000000091}', "");
-    Expect(0, 3159, '\P{^Ccc:   +0000000091}', "");
-    Error('\p{Is_Canonical_Combining_Class:   :=ccc91}');
-    Error('\P{Is_Canonical_Combining_Class:   :=ccc91}');
-    Expect(1, 3158, '\p{Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3158, '\p{^Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3158, '\P{Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3158, '\P{^Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3159, '\p{Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3159, '\p{^Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3159, '\P{Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(0, 3159, '\P{^Is_Canonical_Combining_Class=ccc91}', "");
-    Expect(1, 3158, '\p{Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(0, 3158, '\p{^Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(0, 3158, '\P{Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(1, 3158, '\P{^Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(0, 3159, '\p{Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(1, 3159, '\p{^Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(1, 3159, '\P{Is_Canonical_Combining_Class:   _ccc91}', "");
-    Expect(0, 3159, '\P{^Is_Canonical_Combining_Class:   _ccc91}', "");
-    Error('\p{Is_Ccc=	/a/+09_1}');
-    Error('\P{Is_Ccc=	/a/+09_1}');
-    Expect(1, 3158, '\p{Is_Ccc=00_09_1}', "");
-    Expect(0, 3158, '\p{^Is_Ccc=00_09_1}', "");
-    Expect(0, 3158, '\P{Is_Ccc=00_09_1}', "");
-    Expect(1, 3158, '\P{^Is_Ccc=00_09_1}', "");
-    Expect(0, 3159, '\p{Is_Ccc=00_09_1}', "");
-    Expect(1, 3159, '\p{^Is_Ccc=00_09_1}', "");
-    Expect(1, 3159, '\P{Is_Ccc=00_09_1}', "");
-    Expect(0, 3159, '\P{^Is_Ccc=00_09_1}', "");
-    Error('\p{Canonical_Combining_Class=:=		Double_ABOVE}');
-    Error('\P{Canonical_Combining_Class=:=		Double_ABOVE}');
+    Expect(1, 3158, '\p{Ccc=9_1}', "");
+    Expect(0, 3158, '\p{^Ccc=9_1}', "");
+    Expect(0, 3158, '\P{Ccc=9_1}', "");
+    Expect(1, 3158, '\P{^Ccc=9_1}', "");
+    Expect(0, 3159, '\p{Ccc=9_1}', "");
+    Expect(1, 3159, '\p{^Ccc=9_1}', "");
+    Expect(1, 3159, '\P{Ccc=9_1}', "");
+    Expect(0, 3159, '\P{^Ccc=9_1}', "");
+    Error('\p{Is_Canonical_Combining_Class=_:=CCC91}');
+    Error('\P{Is_Canonical_Combining_Class=_:=CCC91}');
+    Expect(1, 3158, '\p{Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3158, '\p{^Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3158, '\P{Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3158, '\P{^Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3159, '\p{Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3159, '\p{^Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3159, '\P{Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(0, 3159, '\P{^Is_Canonical_Combining_Class:   ccc91}', "");
+    Expect(1, 3158, '\p{Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(0, 3158, '\p{^Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(0, 3158, '\P{Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(1, 3158, '\P{^Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(0, 3159, '\p{Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(1, 3159, '\p{^Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(1, 3159, '\P{Is_Canonical_Combining_Class=	_CCC91}', "");
+    Expect(0, 3159, '\P{^Is_Canonical_Combining_Class=	_CCC91}', "");
+    Error('\p{Is_Ccc= +0_0_0_91/a/}');
+    Error('\P{Is_Ccc= +0_0_0_91/a/}');
+    Expect(1, 3158, '\p{Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(0, 3158, '\p{^Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(0, 3158, '\P{Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(1, 3158, '\P{^Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(0, 3159, '\p{Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(1, 3159, '\p{^Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(1, 3159, '\P{Is_Ccc=00_00_00_00_09_1}', "");
+    Expect(0, 3159, '\P{^Is_Ccc=00_00_00_00_09_1}', "");
+    Error('\p{Canonical_Combining_Class=-	Double_ABOVE:=}');
+    Error('\P{Canonical_Combining_Class=-	Double_ABOVE:=}');
     Expect(1, 7629, '\p{Canonical_Combining_Class=:\ADouble_Above\z:}', "");;
     Expect(0, 7630, '\p{Canonical_Combining_Class=:\ADouble_Above\z:}', "");;
     Expect(1, 7629, '\p{Canonical_Combining_Class=doubleabove}', "");
@@ -32719,16 +33287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7630, '\P{^Canonical_Combining_Class=doubleabove}', "");
     Expect(1, 7629, '\p{Canonical_Combining_Class=:\Adoubleabove\z:}', "");;
     Expect(0, 7630, '\p{Canonical_Combining_Class=:\Adoubleabove\z:}', "");;
-    Expect(1, 7629, '\p{Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(0, 7629, '\p{^Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(0, 7629, '\P{Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(1, 7629, '\P{^Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(0, 7630, '\p{Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(1, 7630, '\p{^Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(1, 7630, '\P{Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Expect(0, 7630, '\P{^Canonical_Combining_Class=--DOUBLE_ABOVE}', "");
-    Error('\p{Ccc=-:=DA}');
-    Error('\P{Ccc=-:=DA}');
+    Expect(1, 7629, '\p{Canonical_Combining_Class=  Double_Above}', "");
+    Expect(0, 7629, '\p{^Canonical_Combining_Class=  Double_Above}', "");
+    Expect(0, 7629, '\P{Canonical_Combining_Class=  Double_Above}', "");
+    Expect(1, 7629, '\P{^Canonical_Combining_Class=  Double_Above}', "");
+    Expect(0, 7630, '\p{Canonical_Combining_Class=  Double_Above}', "");
+    Expect(1, 7630, '\p{^Canonical_Combining_Class=  Double_Above}', "");
+    Expect(1, 7630, '\P{Canonical_Combining_Class=  Double_Above}', "");
+    Expect(0, 7630, '\P{^Canonical_Combining_Class=  Double_Above}', "");
+    Error('\p{Ccc=:= 	DA}');
+    Error('\P{Ccc=:= 	DA}');
     Expect(1, 7629, '\p{Ccc=:\ADA\z:}', "");;
     Expect(0, 7630, '\p{Ccc=:\ADA\z:}', "");;
     Expect(1, 7629, '\p{Ccc=da}', "");
@@ -32741,26 +33309,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7630, '\P{^Ccc=da}', "");
     Expect(1, 7629, '\p{Ccc=:\Ada\z:}', "");;
     Expect(0, 7630, '\p{Ccc=:\Ada\z:}', "");;
-    Expect(1, 7629, '\p{Ccc= da}', "");
-    Expect(0, 7629, '\p{^Ccc= da}', "");
-    Expect(0, 7629, '\P{Ccc= da}', "");
-    Expect(1, 7629, '\P{^Ccc= da}', "");
-    Expect(0, 7630, '\p{Ccc= da}', "");
-    Expect(1, 7630, '\p{^Ccc= da}', "");
-    Expect(1, 7630, '\P{Ccc= da}', "");
-    Expect(0, 7630, '\P{^Ccc= da}', "");
-    Error('\p{Is_Canonical_Combining_Class=	+000234/a/}');
-    Error('\P{Is_Canonical_Combining_Class=	+000234/a/}');
-    Expect(1, 7629, '\p{Is_Canonical_Combining_Class=0000234}', "");
-    Expect(0, 7629, '\p{^Is_Canonical_Combining_Class=0000234}', "");
-    Expect(0, 7629, '\P{Is_Canonical_Combining_Class=0000234}', "");
-    Expect(1, 7629, '\P{^Is_Canonical_Combining_Class=0000234}', "");
-    Expect(0, 7630, '\p{Is_Canonical_Combining_Class=0000234}', "");
-    Expect(1, 7630, '\p{^Is_Canonical_Combining_Class=0000234}', "");
-    Expect(1, 7630, '\P{Is_Canonical_Combining_Class=0000234}', "");
-    Expect(0, 7630, '\P{^Is_Canonical_Combining_Class=0000234}', "");
-    Error('\p{Is_Ccc=- DOUBLE_Above/a/}');
-    Error('\P{Is_Ccc=- DOUBLE_Above/a/}');
+    Expect(1, 7629, '\p{Ccc= 	DA}', "");
+    Expect(0, 7629, '\p{^Ccc= 	DA}', "");
+    Expect(0, 7629, '\P{Ccc= 	DA}', "");
+    Expect(1, 7629, '\P{^Ccc= 	DA}', "");
+    Expect(0, 7630, '\p{Ccc= 	DA}', "");
+    Expect(1, 7630, '\p{^Ccc= 	DA}', "");
+    Expect(1, 7630, '\P{Ccc= 	DA}', "");
+    Expect(0, 7630, '\P{^Ccc= 	DA}', "");
+    Error('\p{Is_Canonical_Combining_Class= /a/0234}');
+    Error('\P{Is_Canonical_Combining_Class= /a/0234}');
+    Expect(1, 7629, '\p{Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(0, 7629, '\p{^Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(0, 7629, '\P{Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(1, 7629, '\P{^Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(0, 7630, '\p{Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(1, 7630, '\p{^Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(1, 7630, '\P{Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Expect(0, 7630, '\P{^Is_Canonical_Combining_Class:	0_0_0_2_34}', "");
+    Error('\p{Is_Ccc=-	double_ABOVE/a/}');
+    Error('\P{Is_Ccc=-	double_ABOVE/a/}');
     Expect(1, 7629, '\p{Is_Ccc=doubleabove}', "");
     Expect(0, 7629, '\p{^Is_Ccc=doubleabove}', "");
     Expect(0, 7629, '\P{Is_Ccc=doubleabove}', "");
@@ -32769,16 +33337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7630, '\p{^Is_Ccc=doubleabove}', "");
     Expect(1, 7630, '\P{Is_Ccc=doubleabove}', "");
     Expect(0, 7630, '\P{^Is_Ccc=doubleabove}', "");
-    Expect(1, 7629, '\p{Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(0, 7629, '\p{^Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(0, 7629, '\P{Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(1, 7629, '\P{^Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(0, 7630, '\p{Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(1, 7630, '\p{^Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(1, 7630, '\P{Is_Ccc=_	DOUBLE_Above}', "");
-    Expect(0, 7630, '\P{^Is_Ccc=_	DOUBLE_Above}', "");
-    Error('\p{Canonical_Combining_Class=_/a/Double_Below}');
-    Error('\P{Canonical_Combining_Class=_/a/Double_Below}');
+    Expect(1, 7629, '\p{Is_Ccc=	Double_ABOVE}', "");
+    Expect(0, 7629, '\p{^Is_Ccc=	Double_ABOVE}', "");
+    Expect(0, 7629, '\P{Is_Ccc=	Double_ABOVE}', "");
+    Expect(1, 7629, '\P{^Is_Ccc=	Double_ABOVE}', "");
+    Expect(0, 7630, '\p{Is_Ccc=	Double_ABOVE}', "");
+    Expect(1, 7630, '\p{^Is_Ccc=	Double_ABOVE}', "");
+    Expect(1, 7630, '\P{Is_Ccc=	Double_ABOVE}', "");
+    Expect(0, 7630, '\P{^Is_Ccc=	Double_ABOVE}', "");
+    Error('\p{Canonical_Combining_Class=:=	-Double_BELOW}');
+    Error('\P{Canonical_Combining_Class=:=	-Double_BELOW}');
     Expect(1, 7676, '\p{Canonical_Combining_Class=:\ADouble_Below\z:}', "");;
     Expect(0, 7677, '\p{Canonical_Combining_Class=:\ADouble_Below\z:}', "");;
     Expect(1, 7676, '\p{Canonical_Combining_Class=doublebelow}', "");
@@ -32791,16 +33359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7677, '\P{^Canonical_Combining_Class=doublebelow}', "");
     Expect(1, 7676, '\p{Canonical_Combining_Class=:\Adoublebelow\z:}', "");;
     Expect(0, 7677, '\p{Canonical_Combining_Class=:\Adoublebelow\z:}', "");;
-    Expect(1, 7676, '\p{Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(0, 7676, '\p{^Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(0, 7676, '\P{Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(1, 7676, '\P{^Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(0, 7677, '\p{Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(1, 7677, '\p{^Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(1, 7677, '\P{Canonical_Combining_Class=__double_BELOW}', "");
-    Expect(0, 7677, '\P{^Canonical_Combining_Class=__double_BELOW}', "");
-    Error('\p{Ccc=_	DB/a/}');
-    Error('\P{Ccc=_	DB/a/}');
+    Expect(1, 7676, '\p{Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(0, 7676, '\p{^Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(0, 7676, '\P{Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(1, 7676, '\P{^Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(0, 7677, '\p{Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(1, 7677, '\p{^Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(1, 7677, '\P{Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Expect(0, 7677, '\P{^Canonical_Combining_Class=- DOUBLE_BELOW}', "");
+    Error('\p{Ccc=	/a/db}');
+    Error('\P{Ccc=	/a/db}');
     Expect(1, 7676, '\p{Ccc=:\ADB\z:}', "");;
     Expect(0, 7677, '\p{Ccc=:\ADB\z:}', "");;
     Expect(1, 7676, '\p{Ccc=db}', "");
@@ -32813,26 +33381,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 7677, '\P{^Ccc=db}', "");
     Expect(1, 7676, '\p{Ccc=:\Adb\z:}', "");;
     Expect(0, 7677, '\p{Ccc=:\Adb\z:}', "");;
-    Expect(1, 7676, '\p{Ccc=DB}', "");
-    Expect(0, 7676, '\p{^Ccc=DB}', "");
-    Expect(0, 7676, '\P{Ccc=DB}', "");
-    Expect(1, 7676, '\P{^Ccc=DB}', "");
-    Expect(0, 7677, '\p{Ccc=DB}', "");
-    Expect(1, 7677, '\p{^Ccc=DB}', "");
-    Expect(1, 7677, '\P{Ccc=DB}', "");
-    Expect(0, 7677, '\P{^Ccc=DB}', "");
-    Error('\p{Is_Canonical_Combining_Class=-/a/0_2_33}');
-    Error('\P{Is_Canonical_Combining_Class=-/a/0_2_33}');
-    Expect(1, 7676, '\p{Is_Canonical_Combining_Class=+233}', "");
-    Expect(0, 7676, '\p{^Is_Canonical_Combining_Class=+233}', "");
-    Expect(0, 7676, '\P{Is_Canonical_Combining_Class=+233}', "");
-    Expect(1, 7676, '\P{^Is_Canonical_Combining_Class=+233}', "");
-    Expect(0, 7677, '\p{Is_Canonical_Combining_Class=+233}', "");
-    Expect(1, 7677, '\p{^Is_Canonical_Combining_Class=+233}', "");
-    Expect(1, 7677, '\P{Is_Canonical_Combining_Class=+233}', "");
-    Expect(0, 7677, '\P{^Is_Canonical_Combining_Class=+233}', "");
-    Error('\p{Is_Ccc=_ DOUBLE_BELOW/a/}');
-    Error('\P{Is_Ccc=_ DOUBLE_BELOW/a/}');
+    Expect(1, 7676, '\p{Ccc=_DB}', "");
+    Expect(0, 7676, '\p{^Ccc=_DB}', "");
+    Expect(0, 7676, '\P{Ccc=_DB}', "");
+    Expect(1, 7676, '\P{^Ccc=_DB}', "");
+    Expect(0, 7677, '\p{Ccc=_DB}', "");
+    Expect(1, 7677, '\p{^Ccc=_DB}', "");
+    Expect(1, 7677, '\P{Ccc=_DB}', "");
+    Expect(0, 7677, '\P{^Ccc=_DB}', "");
+    Error('\p{Is_Canonical_Combining_Class=-:=+00023_3}');
+    Error('\P{Is_Canonical_Combining_Class=-:=+00023_3}');
+    Expect(1, 7676, '\p{Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(0, 7676, '\p{^Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(0, 7676, '\P{Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(1, 7676, '\P{^Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(0, 7677, '\p{Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(1, 7677, '\p{^Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(1, 7677, '\P{Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Expect(0, 7677, '\P{^Is_Canonical_Combining_Class:00_00_00_00_23_3}', "");
+    Error('\p{Is_Ccc=:=_-double_Below}');
+    Error('\P{Is_Ccc=:=_-double_Below}');
     Expect(1, 7676, '\p{Is_Ccc=doublebelow}', "");
     Expect(0, 7676, '\p{^Is_Ccc=doublebelow}', "");
     Expect(0, 7676, '\P{Is_Ccc=doublebelow}', "");
@@ -32841,16 +33409,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 7677, '\p{^Is_Ccc=doublebelow}', "");
     Expect(1, 7677, '\P{Is_Ccc=doublebelow}', "");
     Expect(0, 7677, '\P{^Is_Ccc=doublebelow}', "");
-    Expect(1, 7676, '\p{Is_Ccc=-_Double_below}', "");
-    Expect(0, 7676, '\p{^Is_Ccc=-_Double_below}', "");
-    Expect(0, 7676, '\P{Is_Ccc=-_Double_below}', "");
-    Expect(1, 7676, '\P{^Is_Ccc=-_Double_below}', "");
-    Expect(0, 7677, '\p{Is_Ccc=-_Double_below}', "");
-    Expect(1, 7677, '\p{^Is_Ccc=-_Double_below}', "");
-    Expect(1, 7677, '\P{Is_Ccc=-_Double_below}', "");
-    Expect(0, 7677, '\P{^Is_Ccc=-_Double_below}', "");
-    Error('\p{Canonical_Combining_Class: :=	 Han_reading}');
-    Error('\P{Canonical_Combining_Class: :=	 Han_reading}');
+    Expect(1, 7676, '\p{Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(0, 7676, '\p{^Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(0, 7676, '\P{Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(1, 7676, '\P{^Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(0, 7677, '\p{Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(1, 7677, '\p{^Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(1, 7677, '\P{Is_Ccc=-	DOUBLE_Below}', "");
+    Expect(0, 7677, '\P{^Is_Ccc=-	DOUBLE_Below}', "");
+    Error('\p{Canonical_Combining_Class::=HAN_Reading}');
+    Error('\P{Canonical_Combining_Class::=HAN_Reading}');
     Expect(1, 94193, '\p{Canonical_Combining_Class=:\AHan_Reading\z:}', "");;
     Expect(0, 94194, '\p{Canonical_Combining_Class=:\AHan_Reading\z:}', "");;
     Expect(1, 94193, '\p{Canonical_Combining_Class=hanreading}', "");
@@ -32863,16 +33431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 94194, '\P{^Canonical_Combining_Class=hanreading}', "");
     Expect(1, 94193, '\p{Canonical_Combining_Class=:\Ahanreading\z:}', "");;
     Expect(0, 94194, '\p{Canonical_Combining_Class=:\Ahanreading\z:}', "");;
-    Expect(1, 94193, '\p{Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(0, 94193, '\p{^Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(0, 94193, '\P{Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(1, 94193, '\P{^Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(0, 94194, '\p{Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(1, 94194, '\p{^Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(1, 94194, '\P{Canonical_Combining_Class=_ Han_Reading}', "");
-    Expect(0, 94194, '\P{^Canonical_Combining_Class=_ Han_Reading}', "");
-    Error('\p{Ccc:/a/HANR}');
-    Error('\P{Ccc:/a/HANR}');
+    Expect(1, 94193, '\p{Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(0, 94193, '\p{^Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(0, 94193, '\P{Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(1, 94193, '\P{^Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(0, 94194, '\p{Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(1, 94194, '\p{^Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(1, 94194, '\P{Canonical_Combining_Class:   		HAN_Reading}', "");
+    Expect(0, 94194, '\P{^Canonical_Combining_Class:   		HAN_Reading}', "");
+    Error('\p{Ccc=/a/HANR}');
+    Error('\P{Ccc=/a/HANR}');
     Expect(1, 94193, '\p{Ccc=:\AHANR\z:}', "");;
     Expect(0, 94194, '\p{Ccc=:\AHANR\z:}', "");;
     Expect(1, 94193, '\p{Ccc: hanr}', "");
@@ -32885,26 +33453,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 94194, '\P{^Ccc: hanr}', "");
     Expect(1, 94193, '\p{Ccc=:\Ahanr\z:}', "");;
     Expect(0, 94194, '\p{Ccc=:\Ahanr\z:}', "");;
-    Expect(1, 94193, '\p{Ccc: _ HANR}', "");
-    Expect(0, 94193, '\p{^Ccc: _ HANR}', "");
-    Expect(0, 94193, '\P{Ccc: _ HANR}', "");
-    Expect(1, 94193, '\P{^Ccc: _ HANR}', "");
-    Expect(0, 94194, '\p{Ccc: _ HANR}', "");
-    Expect(1, 94194, '\p{^Ccc: _ HANR}', "");
-    Expect(1, 94194, '\P{Ccc: _ HANR}', "");
-    Expect(0, 94194, '\P{^Ccc: _ HANR}', "");
-    Error('\p{Is_Canonical_Combining_Class=-:=06}');
-    Error('\P{Is_Canonical_Combining_Class=-:=06}');
-    Expect(1, 94193, '\p{Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(0, 94193, '\p{^Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(0, 94193, '\P{Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(1, 94193, '\P{^Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(0, 94194, '\p{Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(1, 94194, '\p{^Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(1, 94194, '\P{Is_Canonical_Combining_Class:	0000000006}', "");
-    Expect(0, 94194, '\P{^Is_Canonical_Combining_Class:	0000000006}', "");
-    Error('\p{Is_Ccc=_/a/Han_Reading}');
-    Error('\P{Is_Ccc=_/a/Han_Reading}');
+    Expect(1, 94193, '\p{Ccc=	-hanr}', "");
+    Expect(0, 94193, '\p{^Ccc=	-hanr}', "");
+    Expect(0, 94193, '\P{Ccc=	-hanr}', "");
+    Expect(1, 94193, '\P{^Ccc=	-hanr}', "");
+    Expect(0, 94194, '\p{Ccc=	-hanr}', "");
+    Expect(1, 94194, '\p{^Ccc=	-hanr}', "");
+    Expect(1, 94194, '\P{Ccc=	-hanr}', "");
+    Expect(0, 94194, '\P{^Ccc=	-hanr}', "");
+    Error('\p{Is_Canonical_Combining_Class=_	6:=}');
+    Error('\P{Is_Canonical_Combining_Class=_	6:=}');
+    Expect(1, 94193, '\p{Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(0, 94193, '\p{^Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(0, 94193, '\P{Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(1, 94193, '\P{^Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(0, 94194, '\p{Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(1, 94194, '\p{^Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(1, 94194, '\P{Is_Canonical_Combining_Class:	+00_6}', "");
+    Expect(0, 94194, '\P{^Is_Canonical_Combining_Class:	+00_6}', "");
+    Error('\p{Is_Ccc=	/a/Han_Reading}');
+    Error('\P{Is_Ccc=	/a/Han_Reading}');
     Expect(1, 94193, '\p{Is_Ccc=hanreading}', "");
     Expect(0, 94193, '\p{^Is_Ccc=hanreading}', "");
     Expect(0, 94193, '\P{Is_Ccc=hanreading}', "");
@@ -32913,16 +33481,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 94194, '\p{^Is_Ccc=hanreading}', "");
     Expect(1, 94194, '\P{Is_Ccc=hanreading}', "");
     Expect(0, 94194, '\P{^Is_Ccc=hanreading}', "");
-    Expect(1, 94193, '\p{Is_Ccc=_han_READING}', "");
-    Expect(0, 94193, '\p{^Is_Ccc=_han_READING}', "");
-    Expect(0, 94193, '\P{Is_Ccc=_han_READING}', "");
-    Expect(1, 94193, '\P{^Is_Ccc=_han_READING}', "");
-    Expect(0, 94194, '\p{Is_Ccc=_han_READING}', "");
-    Expect(1, 94194, '\p{^Is_Ccc=_han_READING}', "");
-    Expect(1, 94194, '\P{Is_Ccc=_han_READING}', "");
-    Expect(0, 94194, '\P{^Is_Ccc=_han_READING}', "");
-    Error('\p{Canonical_Combining_Class:   		Iota_subscript/a/}');
-    Error('\P{Canonical_Combining_Class:   		Iota_subscript/a/}');
+    Expect(1, 94193, '\p{Is_Ccc=- Han_Reading}', "");
+    Expect(0, 94193, '\p{^Is_Ccc=- Han_Reading}', "");
+    Expect(0, 94193, '\P{Is_Ccc=- Han_Reading}', "");
+    Expect(1, 94193, '\P{^Is_Ccc=- Han_Reading}', "");
+    Expect(0, 94194, '\p{Is_Ccc=- Han_Reading}', "");
+    Expect(1, 94194, '\p{^Is_Ccc=- Han_Reading}', "");
+    Expect(1, 94194, '\P{Is_Ccc=- Han_Reading}', "");
+    Expect(0, 94194, '\P{^Is_Ccc=- Han_Reading}', "");
+    Error('\p{Canonical_Combining_Class=:=- IOTA_Subscript}');
+    Error('\P{Canonical_Combining_Class=:=- IOTA_Subscript}');
     Expect(1, 837, '\p{Canonical_Combining_Class=:\AIota_Subscript\z:}', "");;
     Expect(0, 838, '\p{Canonical_Combining_Class=:\AIota_Subscript\z:}', "");;
     Expect(1, 837, '\p{Canonical_Combining_Class=iotasubscript}', "");
@@ -32935,16 +33503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 838, '\P{^Canonical_Combining_Class=iotasubscript}', "");
     Expect(1, 837, '\p{Canonical_Combining_Class=:\Aiotasubscript\z:}', "");;
     Expect(0, 838, '\p{Canonical_Combining_Class=:\Aiotasubscript\z:}', "");;
-    Expect(1, 837, '\p{Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(0, 837, '\p{^Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(0, 837, '\P{Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(1, 837, '\P{^Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(0, 838, '\p{Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(1, 838, '\p{^Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(1, 838, '\P{Canonical_Combining_Class= 	iota_subscript}', "");
-    Expect(0, 838, '\P{^Canonical_Combining_Class= 	iota_subscript}', "");
-    Error('\p{Ccc=:=  IS}');
-    Error('\P{Ccc=:=  IS}');
+    Expect(1, 837, '\p{Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(0, 837, '\p{^Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(0, 837, '\P{Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(1, 837, '\P{^Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(0, 838, '\p{Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(1, 838, '\p{^Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(1, 838, '\P{Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Expect(0, 838, '\P{^Canonical_Combining_Class=-	Iota_SUBSCRIPT}', "");
+    Error('\p{Ccc=:=-_IS}');
+    Error('\P{Ccc=:=-_IS}');
     Expect(1, 837, '\p{Ccc=:\AIS\z:}', "");;
     Expect(0, 838, '\p{Ccc=:\AIS\z:}', "");;
     Expect(1, 837, '\p{Ccc=is}', "");
@@ -32957,26 +33525,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 838, '\P{^Ccc=is}', "");
     Expect(1, 837, '\p{Ccc=:\Ais\z:}', "");;
     Expect(0, 838, '\p{Ccc=:\Ais\z:}', "");;
-    Expect(1, 837, '\p{Ccc=IS}', "");
-    Expect(0, 837, '\p{^Ccc=IS}', "");
-    Expect(0, 837, '\P{Ccc=IS}', "");
-    Expect(1, 837, '\P{^Ccc=IS}', "");
-    Expect(0, 838, '\p{Ccc=IS}', "");
-    Expect(1, 838, '\p{^Ccc=IS}', "");
-    Expect(1, 838, '\P{Ccc=IS}', "");
-    Expect(0, 838, '\P{^Ccc=IS}', "");
-    Error('\p{Is_Canonical_Combining_Class= :=0_0_0_0_0_0_0_0240}');
-    Error('\P{Is_Canonical_Combining_Class= :=0_0_0_0_0_0_0_0240}');
-    Expect(1, 837, '\p{Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(0, 837, '\p{^Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(0, 837, '\P{Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(1, 837, '\P{^Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(0, 838, '\p{Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(1, 838, '\p{^Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(1, 838, '\P{Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Expect(0, 838, '\P{^Is_Canonical_Combining_Class=+0_0_0_0_0_0_0_0_2_40}', "");
-    Error('\p{Is_Ccc=/a/Iota_Subscript}');
-    Error('\P{Is_Ccc=/a/Iota_Subscript}');
+    Expect(1, 837, '\p{Ccc=_IS}', "");
+    Expect(0, 837, '\p{^Ccc=_IS}', "");
+    Expect(0, 837, '\P{Ccc=_IS}', "");
+    Expect(1, 837, '\P{^Ccc=_IS}', "");
+    Expect(0, 838, '\p{Ccc=_IS}', "");
+    Expect(1, 838, '\p{^Ccc=_IS}', "");
+    Expect(1, 838, '\P{Ccc=_IS}', "");
+    Expect(0, 838, '\P{^Ccc=_IS}', "");
+    Error('\p{Is_Canonical_Combining_Class= :=00240}');
+    Error('\P{Is_Canonical_Combining_Class= :=00240}');
+    Expect(1, 837, '\p{Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(0, 837, '\p{^Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(0, 837, '\P{Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(1, 837, '\P{^Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(0, 838, '\p{Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(1, 838, '\p{^Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(1, 838, '\P{Is_Canonical_Combining_Class=00_02_40}', "");
+    Expect(0, 838, '\P{^Is_Canonical_Combining_Class=00_02_40}', "");
+    Error('\p{Is_Ccc=	/a/iota_SUBSCRIPT}');
+    Error('\P{Is_Ccc=	/a/iota_SUBSCRIPT}');
     Expect(1, 837, '\p{Is_Ccc=iotasubscript}', "");
     Expect(0, 837, '\p{^Is_Ccc=iotasubscript}', "");
     Expect(0, 837, '\P{Is_Ccc=iotasubscript}', "");
@@ -32985,38 +33553,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 838, '\p{^Is_Ccc=iotasubscript}', "");
     Expect(1, 838, '\P{Is_Ccc=iotasubscript}', "");
     Expect(0, 838, '\P{^Is_Ccc=iotasubscript}', "");
-    Expect(1, 837, '\p{Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(0, 837, '\p{^Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(0, 837, '\P{Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(1, 837, '\P{^Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(0, 838, '\p{Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(1, 838, '\p{^Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(1, 838, '\P{Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Expect(0, 838, '\P{^Is_Ccc=_-Iota_SUBSCRIPT}', "");
-    Error('\p{Canonical_Combining_Class=	/a/kana_Voicing}');
-    Error('\P{Canonical_Combining_Class=	/a/kana_Voicing}');
+    Expect(1, 837, '\p{Is_Ccc=- Iota_Subscript}', "");
+    Expect(0, 837, '\p{^Is_Ccc=- Iota_Subscript}', "");
+    Expect(0, 837, '\P{Is_Ccc=- Iota_Subscript}', "");
+    Expect(1, 837, '\P{^Is_Ccc=- Iota_Subscript}', "");
+    Expect(0, 838, '\p{Is_Ccc=- Iota_Subscript}', "");
+    Expect(1, 838, '\p{^Is_Ccc=- Iota_Subscript}', "");
+    Expect(1, 838, '\P{Is_Ccc=- Iota_Subscript}', "");
+    Expect(0, 838, '\P{^Is_Ccc=- Iota_Subscript}', "");
+    Error('\p{Canonical_Combining_Class=:=_ kana_Voicing}');
+    Error('\P{Canonical_Combining_Class=:=_ kana_Voicing}');
     Expect(1, 12442, '\p{Canonical_Combining_Class=:\AKana_Voicing\z:}', "");;
     Expect(0, 12443, '\p{Canonical_Combining_Class=:\AKana_Voicing\z:}', "");;
-    Expect(1, 12442, '\p{Canonical_Combining_Class=kanavoicing}', "");
-    Expect(0, 12442, '\p{^Canonical_Combining_Class=kanavoicing}', "");
-    Expect(0, 12442, '\P{Canonical_Combining_Class=kanavoicing}', "");
-    Expect(1, 12442, '\P{^Canonical_Combining_Class=kanavoicing}', "");
-    Expect(0, 12443, '\p{Canonical_Combining_Class=kanavoicing}', "");
-    Expect(1, 12443, '\p{^Canonical_Combining_Class=kanavoicing}', "");
-    Expect(1, 12443, '\P{Canonical_Combining_Class=kanavoicing}', "");
-    Expect(0, 12443, '\P{^Canonical_Combining_Class=kanavoicing}', "");
+    Expect(1, 12442, '\p{Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(0, 12442, '\p{^Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(0, 12442, '\P{Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(1, 12442, '\P{^Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(0, 12443, '\p{Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(1, 12443, '\p{^Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(1, 12443, '\P{Canonical_Combining_Class:	kanavoicing}', "");
+    Expect(0, 12443, '\P{^Canonical_Combining_Class:	kanavoicing}', "");
     Expect(1, 12442, '\p{Canonical_Combining_Class=:\Akanavoicing\z:}', "");;
     Expect(0, 12443, '\p{Canonical_Combining_Class=:\Akanavoicing\z:}', "");;
-    Expect(1, 12442, '\p{Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(0, 12442, '\p{^Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(0, 12442, '\P{Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(1, 12442, '\P{^Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(0, 12443, '\p{Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(1, 12443, '\p{^Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(1, 12443, '\P{Canonical_Combining_Class=KANA_Voicing}', "");
-    Expect(0, 12443, '\P{^Canonical_Combining_Class=KANA_Voicing}', "");
-    Error('\p{Ccc=	:=KV}');
-    Error('\P{Ccc=	:=KV}');
+    Expect(1, 12442, '\p{Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(0, 12442, '\p{^Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(0, 12442, '\P{Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(1, 12442, '\P{^Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(0, 12443, '\p{Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(1, 12443, '\p{^Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(1, 12443, '\P{Canonical_Combining_Class=-	kana_Voicing}', "");
+    Expect(0, 12443, '\P{^Canonical_Combining_Class=-	kana_Voicing}', "");
+    Error('\p{Ccc:   :=-kv}');
+    Error('\P{Ccc:   :=-kv}');
     Expect(1, 12442, '\p{Ccc=:\AKV\z:}', "");;
     Expect(0, 12443, '\p{Ccc=:\AKV\z:}', "");;
     Expect(1, 12442, '\p{Ccc=kv}', "");
@@ -33029,26 +33597,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12443, '\P{^Ccc=kv}', "");
     Expect(1, 12442, '\p{Ccc=:\Akv\z:}', "");;
     Expect(0, 12443, '\p{Ccc=:\Akv\z:}', "");;
-    Expect(1, 12442, '\p{Ccc:  KV}', "");
-    Expect(0, 12442, '\p{^Ccc:  KV}', "");
-    Expect(0, 12442, '\P{Ccc:  KV}', "");
-    Expect(1, 12442, '\P{^Ccc:  KV}', "");
-    Expect(0, 12443, '\p{Ccc:  KV}', "");
-    Expect(1, 12443, '\p{^Ccc:  KV}', "");
-    Expect(1, 12443, '\P{Ccc:  KV}', "");
-    Expect(0, 12443, '\P{^Ccc:  KV}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=0008}');
-    Error('\P{Is_Canonical_Combining_Class=:=0008}');
-    Expect(1, 12442, '\p{Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(0, 12442, '\p{^Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(0, 12442, '\P{Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(1, 12442, '\P{^Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(0, 12443, '\p{Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(1, 12443, '\p{^Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(1, 12443, '\P{Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Expect(0, 12443, '\P{^Is_Canonical_Combining_Class=0_0_0_0_08}', "");
-    Error('\p{Is_Ccc:	_Kana_VOICING/a/}');
-    Error('\P{Is_Ccc:	_Kana_VOICING/a/}');
+    Expect(1, 12442, '\p{Ccc:   	-KV}', "");
+    Expect(0, 12442, '\p{^Ccc:   	-KV}', "");
+    Expect(0, 12442, '\P{Ccc:   	-KV}', "");
+    Expect(1, 12442, '\P{^Ccc:   	-KV}', "");
+    Expect(0, 12443, '\p{Ccc:   	-KV}', "");
+    Expect(1, 12443, '\p{^Ccc:   	-KV}', "");
+    Expect(1, 12443, '\P{Ccc:   	-KV}', "");
+    Expect(0, 12443, '\P{^Ccc:   	-KV}', "");
+    Error('\p{Is_Canonical_Combining_Class= 0000000008/a/}');
+    Error('\P{Is_Canonical_Combining_Class= 0000000008/a/}');
+    Expect(1, 12442, '\p{Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(0, 12442, '\p{^Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(0, 12442, '\P{Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(1, 12442, '\P{^Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(0, 12443, '\p{Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(1, 12443, '\p{^Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(1, 12443, '\P{Is_Canonical_Combining_Class=+00000_8}', "");
+    Expect(0, 12443, '\P{^Is_Canonical_Combining_Class=+00000_8}', "");
+    Error('\p{Is_Ccc=	-Kana_Voicing:=}');
+    Error('\P{Is_Ccc=	-Kana_Voicing:=}');
     Expect(1, 12442, '\p{Is_Ccc=kanavoicing}', "");
     Expect(0, 12442, '\p{^Is_Ccc=kanavoicing}', "");
     Expect(0, 12442, '\P{Is_Ccc=kanavoicing}', "");
@@ -33057,16 +33625,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 12443, '\p{^Is_Ccc=kanavoicing}', "");
     Expect(1, 12443, '\P{Is_Ccc=kanavoicing}', "");
     Expect(0, 12443, '\P{^Is_Ccc=kanavoicing}', "");
-    Expect(1, 12442, '\p{Is_Ccc= -Kana_Voicing}', "");
-    Expect(0, 12442, '\p{^Is_Ccc= -Kana_Voicing}', "");
-    Expect(0, 12442, '\P{Is_Ccc= -Kana_Voicing}', "");
-    Expect(1, 12442, '\P{^Is_Ccc= -Kana_Voicing}', "");
-    Expect(0, 12443, '\p{Is_Ccc= -Kana_Voicing}', "");
-    Expect(1, 12443, '\p{^Is_Ccc= -Kana_Voicing}', "");
-    Expect(1, 12443, '\P{Is_Ccc= -Kana_Voicing}', "");
-    Expect(0, 12443, '\P{^Is_Ccc= -Kana_Voicing}', "");
-    Error('\p{Canonical_Combining_Class=/a/ Left}');
-    Error('\P{Canonical_Combining_Class=/a/ Left}');
+    Expect(1, 12442, '\p{Is_Ccc= KANA_Voicing}', "");
+    Expect(0, 12442, '\p{^Is_Ccc= KANA_Voicing}', "");
+    Expect(0, 12442, '\P{Is_Ccc= KANA_Voicing}', "");
+    Expect(1, 12442, '\P{^Is_Ccc= KANA_Voicing}', "");
+    Expect(0, 12443, '\p{Is_Ccc= KANA_Voicing}', "");
+    Expect(1, 12443, '\p{^Is_Ccc= KANA_Voicing}', "");
+    Expect(1, 12443, '\P{Is_Ccc= KANA_Voicing}', "");
+    Expect(0, 12443, '\P{^Is_Ccc= KANA_Voicing}', "");
+    Error('\p{Canonical_Combining_Class= /a/Left}');
+    Error('\P{Canonical_Combining_Class= /a/Left}');
     Expect(1, 12335, '\p{Canonical_Combining_Class=:\ALeft\z:}', "");;
     Expect(0, 12336, '\p{Canonical_Combining_Class=:\ALeft\z:}', "");;
     Expect(1, 12335, '\p{Canonical_Combining_Class=left}', "");
@@ -33079,16 +33647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12336, '\P{^Canonical_Combining_Class=left}', "");
     Expect(1, 12335, '\p{Canonical_Combining_Class=:\Aleft\z:}', "");;
     Expect(0, 12336, '\p{Canonical_Combining_Class=:\Aleft\z:}', "");;
-    Expect(1, 12335, '\p{Canonical_Combining_Class=_	Left}', "");
-    Expect(0, 12335, '\p{^Canonical_Combining_Class=_	Left}', "");
-    Expect(0, 12335, '\P{Canonical_Combining_Class=_	Left}', "");
-    Expect(1, 12335, '\P{^Canonical_Combining_Class=_	Left}', "");
-    Expect(0, 12336, '\p{Canonical_Combining_Class=_	Left}', "");
-    Expect(1, 12336, '\p{^Canonical_Combining_Class=_	Left}', "");
-    Expect(1, 12336, '\P{Canonical_Combining_Class=_	Left}', "");
-    Expect(0, 12336, '\P{^Canonical_Combining_Class=_	Left}', "");
-    Error('\p{Ccc=:=	 L}');
-    Error('\P{Ccc=:=	 L}');
+    Expect(1, 12335, '\p{Canonical_Combining_Class=_	left}', "");
+    Expect(0, 12335, '\p{^Canonical_Combining_Class=_	left}', "");
+    Expect(0, 12335, '\P{Canonical_Combining_Class=_	left}', "");
+    Expect(1, 12335, '\P{^Canonical_Combining_Class=_	left}', "");
+    Expect(0, 12336, '\p{Canonical_Combining_Class=_	left}', "");
+    Expect(1, 12336, '\p{^Canonical_Combining_Class=_	left}', "");
+    Expect(1, 12336, '\P{Canonical_Combining_Class=_	left}', "");
+    Expect(0, 12336, '\P{^Canonical_Combining_Class=_	left}', "");
+    Error('\p{Ccc=-_L:=}');
+    Error('\P{Ccc=-_L:=}');
     Expect(1, 12335, '\p{Ccc=:\AL\z:}', "");;
     Expect(0, 12336, '\p{Ccc=:\AL\z:}', "");;
     Expect(1, 12335, '\p{Ccc=l}', "");
@@ -33101,44 +33669,44 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 12336, '\P{^Ccc=l}', "");
     Expect(1, 12335, '\p{Ccc=:\Al\z:}', "");;
     Expect(0, 12336, '\p{Ccc=:\Al\z:}', "");;
-    Expect(1, 12335, '\p{Ccc=- L}', "");
-    Expect(0, 12335, '\p{^Ccc=- L}', "");
-    Expect(0, 12335, '\P{Ccc=- L}', "");
-    Expect(1, 12335, '\P{^Ccc=- L}', "");
-    Expect(0, 12336, '\p{Ccc=- L}', "");
-    Expect(1, 12336, '\p{^Ccc=- L}', "");
-    Expect(1, 12336, '\P{Ccc=- L}', "");
-    Expect(0, 12336, '\P{^Ccc=- L}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=__+0022_4}');
-    Error('\P{Is_Canonical_Combining_Class=:=__+0022_4}');
-    Expect(1, 12335, '\p{Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(0, 12335, '\p{^Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(0, 12335, '\P{Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(1, 12335, '\P{^Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(0, 12336, '\p{Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(1, 12336, '\p{^Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(1, 12336, '\P{Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Expect(0, 12336, '\P{^Is_Canonical_Combining_Class:000_000_022_4}', "");
-    Error('\p{Is_Ccc=/a/	_LEFT}');
-    Error('\P{Is_Ccc=/a/	_LEFT}');
-    Expect(1, 12335, '\p{Is_Ccc:left}', "");
-    Expect(0, 12335, '\p{^Is_Ccc:left}', "");
-    Expect(0, 12335, '\P{Is_Ccc:left}', "");
-    Expect(1, 12335, '\P{^Is_Ccc:left}', "");
-    Expect(0, 12336, '\p{Is_Ccc:left}', "");
-    Expect(1, 12336, '\p{^Is_Ccc:left}', "");
-    Expect(1, 12336, '\P{Is_Ccc:left}', "");
-    Expect(0, 12336, '\P{^Is_Ccc:left}', "");
-    Expect(1, 12335, '\p{Is_Ccc=		left}', "");
-    Expect(0, 12335, '\p{^Is_Ccc=		left}', "");
-    Expect(0, 12335, '\P{Is_Ccc=		left}', "");
-    Expect(1, 12335, '\P{^Is_Ccc=		left}', "");
-    Expect(0, 12336, '\p{Is_Ccc=		left}', "");
-    Expect(1, 12336, '\p{^Is_Ccc=		left}', "");
-    Expect(1, 12336, '\P{Is_Ccc=		left}', "");
-    Expect(0, 12336, '\P{^Is_Ccc=		left}', "");
-    Error('\p{Canonical_Combining_Class= :=Nukta}');
-    Error('\P{Canonical_Combining_Class= :=Nukta}');
+    Expect(1, 12335, '\p{Ccc=	l}', "");
+    Expect(0, 12335, '\p{^Ccc=	l}', "");
+    Expect(0, 12335, '\P{Ccc=	l}', "");
+    Expect(1, 12335, '\P{^Ccc=	l}', "");
+    Expect(0, 12336, '\p{Ccc=	l}', "");
+    Expect(1, 12336, '\p{^Ccc=	l}', "");
+    Expect(1, 12336, '\P{Ccc=	l}', "");
+    Expect(0, 12336, '\P{^Ccc=	l}', "");
+    Error('\p{Is_Canonical_Combining_Class=/a/		00_22_4}');
+    Error('\P{Is_Canonical_Combining_Class=/a/		00_22_4}');
+    Expect(1, 12335, '\p{Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(0, 12335, '\p{^Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(0, 12335, '\P{Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(1, 12335, '\P{^Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(0, 12336, '\p{Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(1, 12336, '\p{^Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(1, 12336, '\P{Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Expect(0, 12336, '\P{^Is_Canonical_Combining_Class=+00000_00022_4}', "");
+    Error('\p{Is_Ccc=_:=LEFT}');
+    Error('\P{Is_Ccc=_:=LEFT}');
+    Expect(1, 12335, '\p{Is_Ccc=left}', "");
+    Expect(0, 12335, '\p{^Is_Ccc=left}', "");
+    Expect(0, 12335, '\P{Is_Ccc=left}', "");
+    Expect(1, 12335, '\P{^Is_Ccc=left}', "");
+    Expect(0, 12336, '\p{Is_Ccc=left}', "");
+    Expect(1, 12336, '\p{^Is_Ccc=left}', "");
+    Expect(1, 12336, '\P{Is_Ccc=left}', "");
+    Expect(0, 12336, '\P{^Is_Ccc=left}', "");
+    Expect(1, 12335, '\p{Is_Ccc=__Left}', "");
+    Expect(0, 12335, '\p{^Is_Ccc=__Left}', "");
+    Expect(0, 12335, '\P{Is_Ccc=__Left}', "");
+    Expect(1, 12335, '\P{^Is_Ccc=__Left}', "");
+    Expect(0, 12336, '\p{Is_Ccc=__Left}', "");
+    Expect(1, 12336, '\p{^Is_Ccc=__Left}', "");
+    Expect(1, 12336, '\P{Is_Ccc=__Left}', "");
+    Expect(0, 12336, '\P{^Is_Ccc=__Left}', "");
+    Error('\p{Canonical_Combining_Class= -NUKTA:=}');
+    Error('\P{Canonical_Combining_Class= -NUKTA:=}');
     Expect(1, 125258, '\p{Canonical_Combining_Class=:\ANukta\z:}', "");;
     Expect(0, 125259, '\p{Canonical_Combining_Class=:\ANukta\z:}', "");;
     Expect(1, 125258, '\p{Canonical_Combining_Class=nukta}', "");
@@ -33151,48 +33719,48 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125259, '\P{^Canonical_Combining_Class=nukta}', "");
     Expect(1, 125258, '\p{Canonical_Combining_Class=:\Anukta\z:}', "");;
     Expect(0, 125259, '\p{Canonical_Combining_Class=:\Anukta\z:}', "");;
-    Expect(1, 125258, '\p{Canonical_Combining_Class=__Nukta}', "");
-    Expect(0, 125258, '\p{^Canonical_Combining_Class=__Nukta}', "");
-    Expect(0, 125258, '\P{Canonical_Combining_Class=__Nukta}', "");
-    Expect(1, 125258, '\P{^Canonical_Combining_Class=__Nukta}', "");
-    Expect(0, 125259, '\p{Canonical_Combining_Class=__Nukta}', "");
-    Expect(1, 125259, '\p{^Canonical_Combining_Class=__Nukta}', "");
-    Expect(1, 125259, '\P{Canonical_Combining_Class=__Nukta}', "");
-    Expect(0, 125259, '\P{^Canonical_Combining_Class=__Nukta}', "");
-    Error('\p{Ccc=_:=NK}');
-    Error('\P{Ccc=_:=NK}');
+    Expect(1, 125258, '\p{Canonical_Combining_Class=_	Nukta}', "");
+    Expect(0, 125258, '\p{^Canonical_Combining_Class=_	Nukta}', "");
+    Expect(0, 125258, '\P{Canonical_Combining_Class=_	Nukta}', "");
+    Expect(1, 125258, '\P{^Canonical_Combining_Class=_	Nukta}', "");
+    Expect(0, 125259, '\p{Canonical_Combining_Class=_	Nukta}', "");
+    Expect(1, 125259, '\p{^Canonical_Combining_Class=_	Nukta}', "");
+    Expect(1, 125259, '\P{Canonical_Combining_Class=_	Nukta}', "");
+    Expect(0, 125259, '\P{^Canonical_Combining_Class=_	Nukta}', "");
+    Error('\p{Ccc=:= nk}');
+    Error('\P{Ccc=:= nk}');
     Expect(1, 125258, '\p{Ccc=:\ANK\z:}', "");;
     Expect(0, 125259, '\p{Ccc=:\ANK\z:}', "");;
-    Expect(1, 125258, '\p{Ccc: nk}', "");
-    Expect(0, 125258, '\p{^Ccc: nk}', "");
-    Expect(0, 125258, '\P{Ccc: nk}', "");
-    Expect(1, 125258, '\P{^Ccc: nk}', "");
-    Expect(0, 125259, '\p{Ccc: nk}', "");
-    Expect(1, 125259, '\p{^Ccc: nk}', "");
-    Expect(1, 125259, '\P{Ccc: nk}', "");
-    Expect(0, 125259, '\P{^Ccc: nk}', "");
+    Expect(1, 125258, '\p{Ccc=nk}', "");
+    Expect(0, 125258, '\p{^Ccc=nk}', "");
+    Expect(0, 125258, '\P{Ccc=nk}', "");
+    Expect(1, 125258, '\P{^Ccc=nk}', "");
+    Expect(0, 125259, '\p{Ccc=nk}', "");
+    Expect(1, 125259, '\p{^Ccc=nk}', "");
+    Expect(1, 125259, '\P{Ccc=nk}', "");
+    Expect(0, 125259, '\P{^Ccc=nk}', "");
     Expect(1, 125258, '\p{Ccc=:\Ank\z:}', "");;
     Expect(0, 125259, '\p{Ccc=:\Ank\z:}', "");;
-    Expect(1, 125258, '\p{Ccc=		nk}', "");
-    Expect(0, 125258, '\p{^Ccc=		nk}', "");
-    Expect(0, 125258, '\P{Ccc=		nk}', "");
-    Expect(1, 125258, '\P{^Ccc=		nk}', "");
-    Expect(0, 125259, '\p{Ccc=		nk}', "");
-    Expect(1, 125259, '\p{^Ccc=		nk}', "");
-    Expect(1, 125259, '\P{Ccc=		nk}', "");
-    Expect(0, 125259, '\P{^Ccc=		nk}', "");
-    Error('\p{Is_Canonical_Combining_Class:  	0007/a/}');
-    Error('\P{Is_Canonical_Combining_Class:  	0007/a/}');
-    Expect(1, 125258, '\p{Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(0, 125258, '\p{^Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(0, 125258, '\P{Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(1, 125258, '\P{^Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(0, 125259, '\p{Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(1, 125259, '\p{^Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(1, 125259, '\P{Is_Canonical_Combining_Class=0000000007}', "");
-    Expect(0, 125259, '\P{^Is_Canonical_Combining_Class=0000000007}', "");
-    Error('\p{Is_Ccc=  nukta/a/}');
-    Error('\P{Is_Ccc=  nukta/a/}');
+    Expect(1, 125258, '\p{Ccc=	 nk}', "");
+    Expect(0, 125258, '\p{^Ccc=	 nk}', "");
+    Expect(0, 125258, '\P{Ccc=	 nk}', "");
+    Expect(1, 125258, '\P{^Ccc=	 nk}', "");
+    Expect(0, 125259, '\p{Ccc=	 nk}', "");
+    Expect(1, 125259, '\p{^Ccc=	 nk}', "");
+    Expect(1, 125259, '\P{Ccc=	 nk}', "");
+    Expect(0, 125259, '\P{^Ccc=	 nk}', "");
+    Error('\p{Is_Canonical_Combining_Class=-	0_0_0_0_0_0_0_07:=}');
+    Error('\P{Is_Canonical_Combining_Class=-	0_0_0_0_0_0_0_07:=}');
+    Expect(1, 125258, '\p{Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(0, 125258, '\p{^Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(0, 125258, '\P{Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(1, 125258, '\P{^Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(0, 125259, '\p{Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(1, 125259, '\p{^Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(1, 125259, '\P{Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Expect(0, 125259, '\P{^Is_Canonical_Combining_Class=0_0_0_0_0007}', "");
+    Error('\p{Is_Ccc=/a/ _Nukta}');
+    Error('\P{Is_Ccc=/a/ _Nukta}');
     Expect(1, 125258, '\p{Is_Ccc=nukta}', "");
     Expect(0, 125258, '\p{^Is_Ccc=nukta}', "");
     Expect(0, 125258, '\P{Is_Ccc=nukta}', "");
@@ -33201,16 +33769,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125259, '\p{^Is_Ccc=nukta}', "");
     Expect(1, 125259, '\P{Is_Ccc=nukta}', "");
     Expect(0, 125259, '\P{^Is_Ccc=nukta}', "");
-    Expect(1, 125258, '\p{Is_Ccc=	NUKTA}', "");
-    Expect(0, 125258, '\p{^Is_Ccc=	NUKTA}', "");
-    Expect(0, 125258, '\P{Is_Ccc=	NUKTA}', "");
-    Expect(1, 125258, '\P{^Is_Ccc=	NUKTA}', "");
-    Expect(0, 125259, '\p{Is_Ccc=	NUKTA}', "");
-    Expect(1, 125259, '\p{^Is_Ccc=	NUKTA}', "");
-    Expect(1, 125259, '\P{Is_Ccc=	NUKTA}', "");
-    Expect(0, 125259, '\P{^Is_Ccc=	NUKTA}', "");
-    Error('\p{Canonical_Combining_Class=- Not_REORDERED:=}');
-    Error('\P{Canonical_Combining_Class=- Not_REORDERED:=}');
+    Expect(1, 125258, '\p{Is_Ccc=-nukta}', "");
+    Expect(0, 125258, '\p{^Is_Ccc=-nukta}', "");
+    Expect(0, 125258, '\P{Is_Ccc=-nukta}', "");
+    Expect(1, 125258, '\P{^Is_Ccc=-nukta}', "");
+    Expect(0, 125259, '\p{Is_Ccc=-nukta}', "");
+    Expect(1, 125259, '\p{^Is_Ccc=-nukta}', "");
+    Expect(1, 125259, '\P{Is_Ccc=-nukta}', "");
+    Expect(0, 125259, '\P{^Is_Ccc=-nukta}', "");
+    Error('\p{Canonical_Combining_Class=:=not_Reordered}');
+    Error('\P{Canonical_Combining_Class=:=not_Reordered}');
     Expect(1, 125259, '\p{Canonical_Combining_Class=:\ANot_Reordered\z:}', "");;
     Expect(0, 125258, '\p{Canonical_Combining_Class=:\ANot_Reordered\z:}', "");;
     Expect(1, 125259, '\p{Canonical_Combining_Class=notreordered}', "");
@@ -33223,16 +33791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125258, '\P{^Canonical_Combining_Class=notreordered}', "");
     Expect(1, 125259, '\p{Canonical_Combining_Class=:\Anotreordered\z:}', "");;
     Expect(0, 125258, '\p{Canonical_Combining_Class=:\Anotreordered\z:}', "");;
-    Expect(1, 125259, '\p{Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(0, 125259, '\p{^Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(0, 125259, '\P{Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(1, 125259, '\P{^Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(0, 125258, '\p{Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(1, 125258, '\p{^Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(1, 125258, '\P{Canonical_Combining_Class= not_REORDERED}', "");
-    Expect(0, 125258, '\P{^Canonical_Combining_Class= not_REORDERED}', "");
-    Error('\p{Ccc=_:=nr}');
-    Error('\P{Ccc=_:=nr}');
+    Expect(1, 125259, '\p{Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(0, 125259, '\p{^Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(0, 125259, '\P{Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(1, 125259, '\P{^Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(0, 125258, '\p{Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(1, 125258, '\p{^Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(1, 125258, '\P{Canonical_Combining_Class=__Not_Reordered}', "");
+    Expect(0, 125258, '\P{^Canonical_Combining_Class=__Not_Reordered}', "");
+    Error('\p{Ccc=_nr:=}');
+    Error('\P{Ccc=_nr:=}');
     Expect(1, 125259, '\p{Ccc=:\ANR\z:}', "");;
     Expect(0, 125258, '\p{Ccc=:\ANR\z:}', "");;
     Expect(1, 125259, '\p{Ccc=nr}', "");
@@ -33245,26 +33813,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125258, '\P{^Ccc=nr}', "");
     Expect(1, 125259, '\p{Ccc=:\Anr\z:}', "");;
     Expect(0, 125258, '\p{Ccc=:\Anr\z:}', "");;
-    Expect(1, 125259, '\p{Ccc:	 NR}', "");
-    Expect(0, 125259, '\p{^Ccc:	 NR}', "");
-    Expect(0, 125259, '\P{Ccc:	 NR}', "");
-    Expect(1, 125259, '\P{^Ccc:	 NR}', "");
-    Expect(0, 125258, '\p{Ccc:	 NR}', "");
-    Expect(1, 125258, '\p{^Ccc:	 NR}', "");
-    Expect(1, 125258, '\P{Ccc:	 NR}', "");
-    Expect(0, 125258, '\P{^Ccc:	 NR}', "");
-    Error('\p{Is_Canonical_Combining_Class=_000000/a/}');
-    Error('\P{Is_Canonical_Combining_Class=_000000/a/}');
-    Expect(1, 125259, '\p{Is_Canonical_Combining_Class=+00}', "");
-    Expect(0, 125259, '\p{^Is_Canonical_Combining_Class=+00}', "");
-    Expect(0, 125259, '\P{Is_Canonical_Combining_Class=+00}', "");
-    Expect(1, 125259, '\P{^Is_Canonical_Combining_Class=+00}', "");
-    Expect(0, 125258, '\p{Is_Canonical_Combining_Class=+00}', "");
-    Expect(1, 125258, '\p{^Is_Canonical_Combining_Class=+00}', "");
-    Expect(1, 125258, '\P{Is_Canonical_Combining_Class=+00}', "");
-    Expect(0, 125258, '\P{^Is_Canonical_Combining_Class=+00}', "");
-    Error('\p{Is_Ccc=:=_NOT_REORDERED}');
-    Error('\P{Is_Ccc=:=_NOT_REORDERED}');
+    Expect(1, 125259, '\p{Ccc=_	NR}', "");
+    Expect(0, 125259, '\p{^Ccc=_	NR}', "");
+    Expect(0, 125259, '\P{Ccc=_	NR}', "");
+    Expect(1, 125259, '\P{^Ccc=_	NR}', "");
+    Expect(0, 125258, '\p{Ccc=_	NR}', "");
+    Expect(1, 125258, '\p{^Ccc=_	NR}', "");
+    Expect(1, 125258, '\P{Ccc=_	NR}', "");
+    Expect(0, 125258, '\P{^Ccc=_	NR}', "");
+    Error('\p{Is_Canonical_Combining_Class=-	00_00_00_00_0:=}');
+    Error('\P{Is_Canonical_Combining_Class=-	00_00_00_00_0:=}');
+    Expect(1, 125259, '\p{Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(0, 125259, '\p{^Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(0, 125259, '\P{Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(1, 125259, '\P{^Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(0, 125258, '\p{Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(1, 125258, '\p{^Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(1, 125258, '\P{Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Expect(0, 125258, '\P{^Is_Canonical_Combining_Class=0_0_0_0_0_0_0_000}', "");
+    Error('\p{Is_Ccc=__NOT_reordered:=}');
+    Error('\P{Is_Ccc=__NOT_reordered:=}');
     Expect(1, 125259, '\p{Is_Ccc=notreordered}', "");
     Expect(0, 125259, '\p{^Is_Ccc=notreordered}', "");
     Expect(0, 125259, '\P{Is_Ccc=notreordered}', "");
@@ -33273,16 +33841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125258, '\p{^Is_Ccc=notreordered}', "");
     Expect(1, 125258, '\P{Is_Ccc=notreordered}', "");
     Expect(0, 125258, '\P{^Is_Ccc=notreordered}', "");
-    Expect(1, 125259, '\p{Is_Ccc=- Not_Reordered}', "");
-    Expect(0, 125259, '\p{^Is_Ccc=- Not_Reordered}', "");
-    Expect(0, 125259, '\P{Is_Ccc=- Not_Reordered}', "");
-    Expect(1, 125259, '\P{^Is_Ccc=- Not_Reordered}', "");
-    Expect(0, 125258, '\p{Is_Ccc=- Not_Reordered}', "");
-    Expect(1, 125258, '\p{^Is_Ccc=- Not_Reordered}', "");
-    Expect(1, 125258, '\P{Is_Ccc=- Not_Reordered}', "");
-    Expect(0, 125258, '\P{^Is_Ccc=- Not_Reordered}', "");
-    Error('\p{Canonical_Combining_Class=	_overlay:=}');
-    Error('\P{Canonical_Combining_Class=	_overlay:=}');
+    Expect(1, 125259, '\p{Is_Ccc=	NOT_Reordered}', "");
+    Expect(0, 125259, '\p{^Is_Ccc=	NOT_Reordered}', "");
+    Expect(0, 125259, '\P{Is_Ccc=	NOT_Reordered}', "");
+    Expect(1, 125259, '\P{^Is_Ccc=	NOT_Reordered}', "");
+    Expect(0, 125258, '\p{Is_Ccc=	NOT_Reordered}', "");
+    Expect(1, 125258, '\p{^Is_Ccc=	NOT_Reordered}', "");
+    Expect(1, 125258, '\P{Is_Ccc=	NOT_Reordered}', "");
+    Expect(0, 125258, '\P{^Is_Ccc=	NOT_Reordered}', "");
+    Error('\p{Canonical_Combining_Class=/a/	Overlay}');
+    Error('\P{Canonical_Combining_Class=/a/	Overlay}');
     Expect(1, 119145, '\p{Canonical_Combining_Class=:\AOverlay\z:}', "");;
     Expect(0, 119146, '\p{Canonical_Combining_Class=:\AOverlay\z:}', "");;
     Expect(1, 119145, '\p{Canonical_Combining_Class=overlay}', "");
@@ -33295,16 +33863,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119146, '\P{^Canonical_Combining_Class=overlay}', "");
     Expect(1, 119145, '\p{Canonical_Combining_Class=:\Aoverlay\z:}', "");;
     Expect(0, 119146, '\p{Canonical_Combining_Class=:\Aoverlay\z:}', "");;
-    Expect(1, 119145, '\p{Canonical_Combining_Class=_Overlay}', "");
-    Expect(0, 119145, '\p{^Canonical_Combining_Class=_Overlay}', "");
-    Expect(0, 119145, '\P{Canonical_Combining_Class=_Overlay}', "");
-    Expect(1, 119145, '\P{^Canonical_Combining_Class=_Overlay}', "");
-    Expect(0, 119146, '\p{Canonical_Combining_Class=_Overlay}', "");
-    Expect(1, 119146, '\p{^Canonical_Combining_Class=_Overlay}', "");
-    Expect(1, 119146, '\P{Canonical_Combining_Class=_Overlay}', "");
-    Expect(0, 119146, '\P{^Canonical_Combining_Class=_Overlay}', "");
-    Error('\p{Ccc=-/a/ov}');
-    Error('\P{Ccc=-/a/ov}');
+    Expect(1, 119145, '\p{Canonical_Combining_Class=_	Overlay}', "");
+    Expect(0, 119145, '\p{^Canonical_Combining_Class=_	Overlay}', "");
+    Expect(0, 119145, '\P{Canonical_Combining_Class=_	Overlay}', "");
+    Expect(1, 119145, '\P{^Canonical_Combining_Class=_	Overlay}', "");
+    Expect(0, 119146, '\p{Canonical_Combining_Class=_	Overlay}', "");
+    Expect(1, 119146, '\p{^Canonical_Combining_Class=_	Overlay}', "");
+    Expect(1, 119146, '\P{Canonical_Combining_Class=_	Overlay}', "");
+    Expect(0, 119146, '\P{^Canonical_Combining_Class=_	Overlay}', "");
+    Error('\p{Ccc=:=-	OV}');
+    Error('\P{Ccc=:=-	OV}');
     Expect(1, 119145, '\p{Ccc=:\AOV\z:}', "");;
     Expect(0, 119146, '\p{Ccc=:\AOV\z:}', "");;
     Expect(1, 119145, '\p{Ccc=ov}', "");
@@ -33317,26 +33885,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119146, '\P{^Ccc=ov}', "");
     Expect(1, 119145, '\p{Ccc=:\Aov\z:}', "");;
     Expect(0, 119146, '\p{Ccc=:\Aov\z:}', "");;
-    Expect(1, 119145, '\p{Ccc=-OV}', "");
-    Expect(0, 119145, '\p{^Ccc=-OV}', "");
-    Expect(0, 119145, '\P{Ccc=-OV}', "");
-    Expect(1, 119145, '\P{^Ccc=-OV}', "");
-    Expect(0, 119146, '\p{Ccc=-OV}', "");
-    Expect(1, 119146, '\p{^Ccc=-OV}', "");
-    Expect(1, 119146, '\P{Ccc=-OV}', "");
-    Expect(0, 119146, '\P{^Ccc=-OV}', "");
-    Error('\p{Is_Canonical_Combining_Class= -00_00_00_1/a/}');
-    Error('\P{Is_Canonical_Combining_Class= -00_00_00_1/a/}');
-    Expect(1, 119145, '\p{Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(0, 119145, '\p{^Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(0, 119145, '\P{Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(1, 119145, '\P{^Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(0, 119146, '\p{Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(1, 119146, '\p{^Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(1, 119146, '\P{Is_Canonical_Combining_Class=+00_1}', "");
-    Expect(0, 119146, '\P{^Is_Canonical_Combining_Class=+00_1}', "");
-    Error('\p{Is_Ccc= OVERLAY:=}');
-    Error('\P{Is_Ccc= OVERLAY:=}');
+    Expect(1, 119145, '\p{Ccc:   	OV}', "");
+    Expect(0, 119145, '\p{^Ccc:   	OV}', "");
+    Expect(0, 119145, '\P{Ccc:   	OV}', "");
+    Expect(1, 119145, '\P{^Ccc:   	OV}', "");
+    Expect(0, 119146, '\p{Ccc:   	OV}', "");
+    Expect(1, 119146, '\p{^Ccc:   	OV}', "");
+    Expect(1, 119146, '\P{Ccc:   	OV}', "");
+    Expect(0, 119146, '\P{^Ccc:   	OV}', "");
+    Error('\p{Is_Canonical_Combining_Class=	/a/000_1}');
+    Error('\P{Is_Canonical_Combining_Class=	/a/000_1}');
+    Expect(1, 119145, '\p{Is_Canonical_Combining_Class=0001}', "");
+    Expect(0, 119145, '\p{^Is_Canonical_Combining_Class=0001}', "");
+    Expect(0, 119145, '\P{Is_Canonical_Combining_Class=0001}', "");
+    Expect(1, 119145, '\P{^Is_Canonical_Combining_Class=0001}', "");
+    Expect(0, 119146, '\p{Is_Canonical_Combining_Class=0001}', "");
+    Expect(1, 119146, '\p{^Is_Canonical_Combining_Class=0001}', "");
+    Expect(1, 119146, '\P{Is_Canonical_Combining_Class=0001}', "");
+    Expect(0, 119146, '\P{^Is_Canonical_Combining_Class=0001}', "");
+    Error('\p{Is_Ccc=:=__Overlay}');
+    Error('\P{Is_Ccc=:=__Overlay}');
     Expect(1, 119145, '\p{Is_Ccc=overlay}', "");
     Expect(0, 119145, '\p{^Is_Ccc=overlay}', "");
     Expect(0, 119145, '\P{Is_Ccc=overlay}', "");
@@ -33345,16 +33913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119146, '\p{^Is_Ccc=overlay}', "");
     Expect(1, 119146, '\P{Is_Ccc=overlay}', "");
     Expect(0, 119146, '\P{^Is_Ccc=overlay}', "");
-    Expect(1, 119145, '\p{Is_Ccc=	OVERLAY}', "");
-    Expect(0, 119145, '\p{^Is_Ccc=	OVERLAY}', "");
-    Expect(0, 119145, '\P{Is_Ccc=	OVERLAY}', "");
-    Expect(1, 119145, '\P{^Is_Ccc=	OVERLAY}', "");
-    Expect(0, 119146, '\p{Is_Ccc=	OVERLAY}', "");
-    Expect(1, 119146, '\p{^Is_Ccc=	OVERLAY}', "");
-    Expect(1, 119146, '\P{Is_Ccc=	OVERLAY}', "");
-    Expect(0, 119146, '\P{^Is_Ccc=	OVERLAY}', "");
-    Error('\p{Canonical_Combining_Class=/a/	RIGHT}');
-    Error('\P{Canonical_Combining_Class=/a/	RIGHT}');
+    Expect(1, 119145, '\p{Is_Ccc=		Overlay}', "");
+    Expect(0, 119145, '\p{^Is_Ccc=		Overlay}', "");
+    Expect(0, 119145, '\P{Is_Ccc=		Overlay}', "");
+    Expect(1, 119145, '\P{^Is_Ccc=		Overlay}', "");
+    Expect(0, 119146, '\p{Is_Ccc=		Overlay}', "");
+    Expect(1, 119146, '\p{^Is_Ccc=		Overlay}', "");
+    Expect(1, 119146, '\P{Is_Ccc=		Overlay}', "");
+    Expect(0, 119146, '\P{^Is_Ccc=		Overlay}', "");
+    Error('\p{Canonical_Combining_Class=__Right/a/}');
+    Error('\P{Canonical_Combining_Class=__Right/a/}');
     Expect(1, 119149, '\p{Canonical_Combining_Class=:\ARight\z:}', "");;
     Expect(0, 119150, '\p{Canonical_Combining_Class=:\ARight\z:}', "");;
     Expect(1, 119149, '\p{Canonical_Combining_Class=right}', "");
@@ -33367,16 +33935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119150, '\P{^Canonical_Combining_Class=right}', "");
     Expect(1, 119149, '\p{Canonical_Combining_Class=:\Aright\z:}', "");;
     Expect(0, 119150, '\p{Canonical_Combining_Class=:\Aright\z:}', "");;
-    Expect(1, 119149, '\p{Canonical_Combining_Class: - RIGHT}', "");
-    Expect(0, 119149, '\p{^Canonical_Combining_Class: - RIGHT}', "");
-    Expect(0, 119149, '\P{Canonical_Combining_Class: - RIGHT}', "");
-    Expect(1, 119149, '\P{^Canonical_Combining_Class: - RIGHT}', "");
-    Expect(0, 119150, '\p{Canonical_Combining_Class: - RIGHT}', "");
-    Expect(1, 119150, '\p{^Canonical_Combining_Class: - RIGHT}', "");
-    Expect(1, 119150, '\P{Canonical_Combining_Class: - RIGHT}', "");
-    Expect(0, 119150, '\P{^Canonical_Combining_Class: - RIGHT}', "");
-    Error('\p{Ccc=/a/	R}');
-    Error('\P{Ccc=/a/	R}');
+    Expect(1, 119149, '\p{Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(0, 119149, '\p{^Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(0, 119149, '\P{Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(1, 119149, '\P{^Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(0, 119150, '\p{Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(1, 119150, '\p{^Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(1, 119150, '\P{Canonical_Combining_Class=-_RIGHT}', "");
+    Expect(0, 119150, '\P{^Canonical_Combining_Class=-_RIGHT}', "");
+    Error('\p{Ccc=	/a/r}');
+    Error('\P{Ccc=	/a/r}');
     Expect(1, 119149, '\p{Ccc=:\AR\z:}', "");;
     Expect(0, 119150, '\p{Ccc=:\AR\z:}', "");;
     Expect(1, 119149, '\p{Ccc=r}', "");
@@ -33389,26 +33957,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119150, '\P{^Ccc=r}', "");
     Expect(1, 119149, '\p{Ccc=:\Ar\z:}', "");;
     Expect(0, 119150, '\p{Ccc=:\Ar\z:}', "");;
-    Expect(1, 119149, '\p{Ccc=_	r}', "");
-    Expect(0, 119149, '\p{^Ccc=_	r}', "");
-    Expect(0, 119149, '\P{Ccc=_	r}', "");
-    Expect(1, 119149, '\P{^Ccc=_	r}', "");
-    Expect(0, 119150, '\p{Ccc=_	r}', "");
-    Expect(1, 119150, '\p{^Ccc=_	r}', "");
-    Expect(1, 119150, '\P{Ccc=_	r}', "");
-    Expect(0, 119150, '\P{^Ccc=_	r}', "");
-    Error('\p{Is_Canonical_Combining_Class=:=0226}');
-    Error('\P{Is_Canonical_Combining_Class=:=0226}');
-    Expect(1, 119149, '\p{Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(0, 119149, '\p{^Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(0, 119149, '\P{Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(1, 119149, '\P{^Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(0, 119150, '\p{Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(1, 119150, '\p{^Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(1, 119150, '\P{Is_Canonical_Combining_Class=00000000226}', "");
-    Expect(0, 119150, '\P{^Is_Canonical_Combining_Class=00000000226}', "");
-    Error('\p{Is_Ccc= _RIGHT:=}');
-    Error('\P{Is_Ccc= _RIGHT:=}');
+    Expect(1, 119149, '\p{Ccc=- R}', "");
+    Expect(0, 119149, '\p{^Ccc=- R}', "");
+    Expect(0, 119149, '\P{Ccc=- R}', "");
+    Expect(1, 119149, '\P{^Ccc=- R}', "");
+    Expect(0, 119150, '\p{Ccc=- R}', "");
+    Expect(1, 119150, '\p{^Ccc=- R}', "");
+    Expect(1, 119150, '\P{Ccc=- R}', "");
+    Expect(0, 119150, '\P{^Ccc=- R}', "");
+    Error('\p{Is_Canonical_Combining_Class= -00022_6:=}');
+    Error('\P{Is_Canonical_Combining_Class= -00022_6:=}');
+    Expect(1, 119149, '\p{Is_Canonical_Combining_Class=+0226}', "");
+    Expect(0, 119149, '\p{^Is_Canonical_Combining_Class=+0226}', "");
+    Expect(0, 119149, '\P{Is_Canonical_Combining_Class=+0226}', "");
+    Expect(1, 119149, '\P{^Is_Canonical_Combining_Class=+0226}', "");
+    Expect(0, 119150, '\p{Is_Canonical_Combining_Class=+0226}', "");
+    Expect(1, 119150, '\p{^Is_Canonical_Combining_Class=+0226}', "");
+    Expect(1, 119150, '\P{Is_Canonical_Combining_Class=+0226}', "");
+    Expect(0, 119150, '\P{^Is_Canonical_Combining_Class=+0226}', "");
+    Error('\p{Is_Ccc=/a/	-RIGHT}');
+    Error('\P{Is_Ccc=/a/	-RIGHT}');
     Expect(1, 119149, '\p{Is_Ccc=right}', "");
     Expect(0, 119149, '\p{^Is_Ccc=right}', "");
     Expect(0, 119149, '\P{Is_Ccc=right}', "");
@@ -33417,88 +33985,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119150, '\p{^Is_Ccc=right}', "");
     Expect(1, 119150, '\P{Is_Ccc=right}', "");
     Expect(0, 119150, '\P{^Is_Ccc=right}', "");
-    Expect(1, 119149, '\p{Is_Ccc= 	right}', "");
-    Expect(0, 119149, '\p{^Is_Ccc= 	right}', "");
-    Expect(0, 119149, '\P{Is_Ccc= 	right}', "");
-    Expect(1, 119149, '\P{^Is_Ccc= 	right}', "");
-    Expect(0, 119150, '\p{Is_Ccc= 	right}', "");
-    Expect(1, 119150, '\p{^Is_Ccc= 	right}', "");
-    Expect(1, 119150, '\P{Is_Ccc= 	right}', "");
-    Expect(0, 119150, '\P{^Is_Ccc= 	right}', "");
-    Error('\p{Canonical_Combining_Class=:=-	virama}');
-    Error('\P{Canonical_Combining_Class=:=-	virama}');
-    Expect(1, 73111, '\p{Canonical_Combining_Class=:\AVirama\z:}', "");;
-    Expect(0, 73112, '\p{Canonical_Combining_Class=:\AVirama\z:}', "");;
-    Expect(1, 73111, '\p{Canonical_Combining_Class=virama}', "");
-    Expect(0, 73111, '\p{^Canonical_Combining_Class=virama}', "");
-    Expect(0, 73111, '\P{Canonical_Combining_Class=virama}', "");
-    Expect(1, 73111, '\P{^Canonical_Combining_Class=virama}', "");
-    Expect(0, 73112, '\p{Canonical_Combining_Class=virama}', "");
-    Expect(1, 73112, '\p{^Canonical_Combining_Class=virama}', "");
-    Expect(1, 73112, '\P{Canonical_Combining_Class=virama}', "");
-    Expect(0, 73112, '\P{^Canonical_Combining_Class=virama}', "");
-    Expect(1, 73111, '\p{Canonical_Combining_Class=:\Avirama\z:}', "");;
-    Expect(0, 73112, '\p{Canonical_Combining_Class=:\Avirama\z:}', "");;
-    Expect(1, 73111, '\p{Canonical_Combining_Class=		virama}', "");
-    Expect(0, 73111, '\p{^Canonical_Combining_Class=		virama}', "");
-    Expect(0, 73111, '\P{Canonical_Combining_Class=		virama}', "");
-    Expect(1, 73111, '\P{^Canonical_Combining_Class=		virama}', "");
-    Expect(0, 73112, '\p{Canonical_Combining_Class=		virama}', "");
-    Expect(1, 73112, '\p{^Canonical_Combining_Class=		virama}', "");
-    Expect(1, 73112, '\P{Canonical_Combining_Class=		virama}', "");
-    Expect(0, 73112, '\P{^Canonical_Combining_Class=		virama}', "");
-    Error('\p{Ccc: _/a/VR}');
-    Error('\P{Ccc: _/a/VR}');
-    Expect(1, 73111, '\p{Ccc=:\AVR\z:}', "");;
-    Expect(0, 73112, '\p{Ccc=:\AVR\z:}', "");;
-    Expect(1, 73111, '\p{Ccc:	vr}', "");
-    Expect(0, 73111, '\p{^Ccc:	vr}', "");
-    Expect(0, 73111, '\P{Ccc:	vr}', "");
-    Expect(1, 73111, '\P{^Ccc:	vr}', "");
-    Expect(0, 73112, '\p{Ccc:	vr}', "");
-    Expect(1, 73112, '\p{^Ccc:	vr}', "");
-    Expect(1, 73112, '\P{Ccc:	vr}', "");
-    Expect(0, 73112, '\P{^Ccc:	vr}', "");
-    Expect(1, 73111, '\p{Ccc=:\Avr\z:}', "");;
-    Expect(0, 73112, '\p{Ccc=:\Avr\z:}', "");;
-    Expect(1, 73111, '\p{Ccc:	VR}', "");
-    Expect(0, 73111, '\p{^Ccc:	VR}', "");
-    Expect(0, 73111, '\P{Ccc:	VR}', "");
-    Expect(1, 73111, '\P{^Ccc:	VR}', "");
-    Expect(0, 73112, '\p{Ccc:	VR}', "");
-    Expect(1, 73112, '\p{^Ccc:	VR}', "");
-    Expect(1, 73112, '\P{Ccc:	VR}', "");
-    Expect(0, 73112, '\P{^Ccc:	VR}', "");
-    Error('\p{Is_Canonical_Combining_Class=_/a/0_0_09}');
-    Error('\P{Is_Canonical_Combining_Class=_/a/0_0_09}');
-    Expect(1, 73111, '\p{Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(0, 73111, '\p{^Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(0, 73111, '\P{Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(1, 73111, '\P{^Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(0, 73112, '\p{Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(1, 73112, '\p{^Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(1, 73112, '\P{Is_Canonical_Combining_Class: 000_9}', "");
-    Expect(0, 73112, '\P{^Is_Canonical_Combining_Class: 000_9}', "");
-    Error('\p{Is_Ccc=/a/VIRAMA}');
-    Error('\P{Is_Ccc=/a/VIRAMA}');
-    Expect(1, 73111, '\p{Is_Ccc=virama}', "");
-    Expect(0, 73111, '\p{^Is_Ccc=virama}', "");
-    Expect(0, 73111, '\P{Is_Ccc=virama}', "");
-    Expect(1, 73111, '\P{^Is_Ccc=virama}', "");
-    Expect(0, 73112, '\p{Is_Ccc=virama}', "");
-    Expect(1, 73112, '\p{^Is_Ccc=virama}', "");
-    Expect(1, 73112, '\P{Is_Ccc=virama}', "");
-    Expect(0, 73112, '\P{^Is_Ccc=virama}', "");
-    Expect(1, 73111, '\p{Is_Ccc=-Virama}', "");
-    Expect(0, 73111, '\p{^Is_Ccc=-Virama}', "");
-    Expect(0, 73111, '\P{Is_Ccc=-Virama}', "");
-    Expect(1, 73111, '\P{^Is_Ccc=-Virama}', "");
-    Expect(0, 73112, '\p{Is_Ccc=-Virama}', "");
-    Expect(1, 73112, '\p{^Is_Ccc=-Virama}', "");
-    Expect(1, 73112, '\P{Is_Ccc=-Virama}', "");
-    Expect(0, 73112, '\P{^Is_Ccc=-Virama}', "");
-    Error('\p{Composition_Exclusion:	 No:=}');
-    Error('\P{Composition_Exclusion:	 No:=}');
+    Expect(1, 119149, '\p{Is_Ccc=-	RIGHT}', "");
+    Expect(0, 119149, '\p{^Is_Ccc=-	RIGHT}', "");
+    Expect(0, 119149, '\P{Is_Ccc=-	RIGHT}', "");
+    Expect(1, 119149, '\P{^Is_Ccc=-	RIGHT}', "");
+    Expect(0, 119150, '\p{Is_Ccc=-	RIGHT}', "");
+    Expect(1, 119150, '\p{^Is_Ccc=-	RIGHT}', "");
+    Expect(1, 119150, '\P{Is_Ccc=-	RIGHT}', "");
+    Expect(0, 119150, '\P{^Is_Ccc=-	RIGHT}', "");
+    Error('\p{Canonical_Combining_Class=_:=VIRAMA}');
+    Error('\P{Canonical_Combining_Class=_:=VIRAMA}');
+    Expect(1, 73538, '\p{Canonical_Combining_Class=:\AVirama\z:}', "");;
+    Expect(0, 73539, '\p{Canonical_Combining_Class=:\AVirama\z:}', "");;
+    Expect(1, 73538, '\p{Canonical_Combining_Class=virama}', "");
+    Expect(0, 73538, '\p{^Canonical_Combining_Class=virama}', "");
+    Expect(0, 73538, '\P{Canonical_Combining_Class=virama}', "");
+    Expect(1, 73538, '\P{^Canonical_Combining_Class=virama}', "");
+    Expect(0, 73539, '\p{Canonical_Combining_Class=virama}', "");
+    Expect(1, 73539, '\p{^Canonical_Combining_Class=virama}', "");
+    Expect(1, 73539, '\P{Canonical_Combining_Class=virama}', "");
+    Expect(0, 73539, '\P{^Canonical_Combining_Class=virama}', "");
+    Expect(1, 73538, '\p{Canonical_Combining_Class=:\Avirama\z:}', "");;
+    Expect(0, 73539, '\p{Canonical_Combining_Class=:\Avirama\z:}', "");;
+    Expect(1, 73538, '\p{Canonical_Combining_Class= 	virama}', "");
+    Expect(0, 73538, '\p{^Canonical_Combining_Class= 	virama}', "");
+    Expect(0, 73538, '\P{Canonical_Combining_Class= 	virama}', "");
+    Expect(1, 73538, '\P{^Canonical_Combining_Class= 	virama}', "");
+    Expect(0, 73539, '\p{Canonical_Combining_Class= 	virama}', "");
+    Expect(1, 73539, '\p{^Canonical_Combining_Class= 	virama}', "");
+    Expect(1, 73539, '\P{Canonical_Combining_Class= 	virama}', "");
+    Expect(0, 73539, '\P{^Canonical_Combining_Class= 	virama}', "");
+    Error('\p{Ccc=/a/ VR}');
+    Error('\P{Ccc=/a/ VR}');
+    Expect(1, 73538, '\p{Ccc=:\AVR\z:}', "");;
+    Expect(0, 73539, '\p{Ccc=:\AVR\z:}', "");;
+    Expect(1, 73538, '\p{Ccc=vr}', "");
+    Expect(0, 73538, '\p{^Ccc=vr}', "");
+    Expect(0, 73538, '\P{Ccc=vr}', "");
+    Expect(1, 73538, '\P{^Ccc=vr}', "");
+    Expect(0, 73539, '\p{Ccc=vr}', "");
+    Expect(1, 73539, '\p{^Ccc=vr}', "");
+    Expect(1, 73539, '\P{Ccc=vr}', "");
+    Expect(0, 73539, '\P{^Ccc=vr}', "");
+    Expect(1, 73538, '\p{Ccc=:\Avr\z:}', "");;
+    Expect(0, 73539, '\p{Ccc=:\Avr\z:}', "");;
+    Expect(1, 73538, '\p{Ccc=	 VR}', "");
+    Expect(0, 73538, '\p{^Ccc=	 VR}', "");
+    Expect(0, 73538, '\P{Ccc=	 VR}', "");
+    Expect(1, 73538, '\P{^Ccc=	 VR}', "");
+    Expect(0, 73539, '\p{Ccc=	 VR}', "");
+    Expect(1, 73539, '\p{^Ccc=	 VR}', "");
+    Expect(1, 73539, '\P{Ccc=	 VR}', "");
+    Expect(0, 73539, '\P{^Ccc=	 VR}', "");
+    Error('\p{Is_Canonical_Combining_Class=-/a/0_0_0_0_09}');
+    Error('\P{Is_Canonical_Combining_Class=-/a/0_0_0_0_09}');
+    Expect(1, 73538, '\p{Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(0, 73538, '\p{^Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(0, 73538, '\P{Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(1, 73538, '\P{^Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(0, 73539, '\p{Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(1, 73539, '\p{^Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(1, 73539, '\P{Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Expect(0, 73539, '\P{^Is_Canonical_Combining_Class=0_0_0_0_0_09}', "");
+    Error('\p{Is_Ccc=_-VIRAMA:=}');
+    Error('\P{Is_Ccc=_-VIRAMA:=}');
+    Expect(1, 73538, '\p{Is_Ccc:	virama}', "");
+    Expect(0, 73538, '\p{^Is_Ccc:	virama}', "");
+    Expect(0, 73538, '\P{Is_Ccc:	virama}', "");
+    Expect(1, 73538, '\P{^Is_Ccc:	virama}', "");
+    Expect(0, 73539, '\p{Is_Ccc:	virama}', "");
+    Expect(1, 73539, '\p{^Is_Ccc:	virama}', "");
+    Expect(1, 73539, '\P{Is_Ccc:	virama}', "");
+    Expect(0, 73539, '\P{^Is_Ccc:	virama}', "");
+    Expect(1, 73538, '\p{Is_Ccc= virama}', "");
+    Expect(0, 73538, '\p{^Is_Ccc= virama}', "");
+    Expect(0, 73538, '\P{Is_Ccc= virama}', "");
+    Expect(1, 73538, '\P{^Is_Ccc= virama}', "");
+    Expect(0, 73539, '\p{Is_Ccc= virama}', "");
+    Expect(1, 73539, '\p{^Is_Ccc= virama}', "");
+    Expect(1, 73539, '\P{Is_Ccc= virama}', "");
+    Expect(0, 73539, '\P{^Is_Ccc= virama}', "");
+    Error('\p{Composition_Exclusion=/a/		no}');
+    Error('\P{Composition_Exclusion=/a/		no}');
     Expect(1, 119233, '\p{Composition_Exclusion=:\ANo\z:}', "");;
     Expect(0, 119232, '\p{Composition_Exclusion=:\ANo\z:}', "");;
     Expect(1, 119233, '\p{Composition_Exclusion=no}', "");
@@ -33511,16 +34079,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119232, '\P{^Composition_Exclusion=no}', "");
     Expect(1, 119233, '\p{Composition_Exclusion=:\Ano\z:}', "");;
     Expect(0, 119232, '\p{Composition_Exclusion=:\Ano\z:}', "");;
-    Expect(1, 119233, '\p{Composition_Exclusion=-NO}', "");
-    Expect(0, 119233, '\p{^Composition_Exclusion=-NO}', "");
-    Expect(0, 119233, '\P{Composition_Exclusion=-NO}', "");
-    Expect(1, 119233, '\P{^Composition_Exclusion=-NO}', "");
-    Expect(0, 119232, '\p{Composition_Exclusion=-NO}', "");
-    Expect(1, 119232, '\p{^Composition_Exclusion=-NO}', "");
-    Expect(1, 119232, '\P{Composition_Exclusion=-NO}', "");
-    Expect(0, 119232, '\P{^Composition_Exclusion=-NO}', "");
-    Error('\p{CE=/a/n}');
-    Error('\P{CE=/a/n}');
+    Expect(1, 119233, '\p{Composition_Exclusion= No}', "");
+    Expect(0, 119233, '\p{^Composition_Exclusion= No}', "");
+    Expect(0, 119233, '\P{Composition_Exclusion= No}', "");
+    Expect(1, 119233, '\P{^Composition_Exclusion= No}', "");
+    Expect(0, 119232, '\p{Composition_Exclusion= No}', "");
+    Expect(1, 119232, '\p{^Composition_Exclusion= No}', "");
+    Expect(1, 119232, '\P{Composition_Exclusion= No}', "");
+    Expect(0, 119232, '\P{^Composition_Exclusion= No}', "");
+    Error('\p{CE=__N:=}');
+    Error('\P{CE=__N:=}');
     Expect(1, 119233, '\p{CE=:\AN\z:}', "");;
     Expect(0, 119232, '\p{CE=:\AN\z:}', "");;
     Expect(1, 119233, '\p{CE=n}', "");
@@ -33533,16 +34101,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119232, '\P{^CE=n}', "");
     Expect(1, 119233, '\p{CE=:\An\z:}', "");;
     Expect(0, 119232, '\p{CE=:\An\z:}', "");;
-    Expect(1, 119233, '\p{CE= 	n}', "");
-    Expect(0, 119233, '\p{^CE= 	n}', "");
-    Expect(0, 119233, '\P{CE= 	n}', "");
-    Expect(1, 119233, '\P{^CE= 	n}', "");
-    Expect(0, 119232, '\p{CE= 	n}', "");
-    Expect(1, 119232, '\p{^CE= 	n}', "");
-    Expect(1, 119232, '\P{CE= 	n}', "");
-    Expect(0, 119232, '\P{^CE= 	n}', "");
-    Error('\p{Is_Composition_Exclusion=	_f/a/}');
-    Error('\P{Is_Composition_Exclusion=	_f/a/}');
+    Expect(1, 119233, '\p{CE=_-N}', "");
+    Expect(0, 119233, '\p{^CE=_-N}', "");
+    Expect(0, 119233, '\P{CE=_-N}', "");
+    Expect(1, 119233, '\P{^CE=_-N}', "");
+    Expect(0, 119232, '\p{CE=_-N}', "");
+    Expect(1, 119232, '\p{^CE=_-N}', "");
+    Expect(1, 119232, '\P{CE=_-N}', "");
+    Expect(0, 119232, '\P{^CE=_-N}', "");
+    Error('\p{Is_Composition_Exclusion=	/a/F}');
+    Error('\P{Is_Composition_Exclusion=	/a/F}');
     Expect(1, 119233, '\p{Is_Composition_Exclusion=f}', "");
     Expect(0, 119233, '\p{^Is_Composition_Exclusion=f}', "");
     Expect(0, 119233, '\P{Is_Composition_Exclusion=f}', "");
@@ -33551,34 +34119,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119232, '\p{^Is_Composition_Exclusion=f}', "");
     Expect(1, 119232, '\P{Is_Composition_Exclusion=f}', "");
     Expect(0, 119232, '\P{^Is_Composition_Exclusion=f}', "");
-    Expect(1, 119233, '\p{Is_Composition_Exclusion=	_F}', "");
-    Expect(0, 119233, '\p{^Is_Composition_Exclusion=	_F}', "");
-    Expect(0, 119233, '\P{Is_Composition_Exclusion=	_F}', "");
-    Expect(1, 119233, '\P{^Is_Composition_Exclusion=	_F}', "");
-    Expect(0, 119232, '\p{Is_Composition_Exclusion=	_F}', "");
-    Expect(1, 119232, '\p{^Is_Composition_Exclusion=	_F}', "");
-    Expect(1, 119232, '\P{Is_Composition_Exclusion=	_F}', "");
-    Expect(0, 119232, '\P{^Is_Composition_Exclusion=	_F}', "");
-    Error('\p{Is_CE=-_false/a/}');
-    Error('\P{Is_CE=-_false/a/}');
-    Expect(1, 119233, '\p{Is_CE:   false}', "");
-    Expect(0, 119233, '\p{^Is_CE:   false}', "");
-    Expect(0, 119233, '\P{Is_CE:   false}', "");
-    Expect(1, 119233, '\P{^Is_CE:   false}', "");
-    Expect(0, 119232, '\p{Is_CE:   false}', "");
-    Expect(1, 119232, '\p{^Is_CE:   false}', "");
-    Expect(1, 119232, '\P{Is_CE:   false}', "");
-    Expect(0, 119232, '\P{^Is_CE:   false}', "");
-    Expect(1, 119233, '\p{Is_CE=  False}', "");
-    Expect(0, 119233, '\p{^Is_CE=  False}', "");
-    Expect(0, 119233, '\P{Is_CE=  False}', "");
-    Expect(1, 119233, '\P{^Is_CE=  False}', "");
-    Expect(0, 119232, '\p{Is_CE=  False}', "");
-    Expect(1, 119232, '\p{^Is_CE=  False}', "");
-    Expect(1, 119232, '\P{Is_CE=  False}', "");
-    Expect(0, 119232, '\P{^Is_CE=  False}', "");
-    Error('\p{Composition_Exclusion= -YES/a/}');
-    Error('\P{Composition_Exclusion= -YES/a/}');
+    Expect(1, 119233, '\p{Is_Composition_Exclusion=__F}', "");
+    Expect(0, 119233, '\p{^Is_Composition_Exclusion=__F}', "");
+    Expect(0, 119233, '\P{Is_Composition_Exclusion=__F}', "");
+    Expect(1, 119233, '\P{^Is_Composition_Exclusion=__F}', "");
+    Expect(0, 119232, '\p{Is_Composition_Exclusion=__F}', "");
+    Expect(1, 119232, '\p{^Is_Composition_Exclusion=__F}', "");
+    Expect(1, 119232, '\P{Is_Composition_Exclusion=__F}', "");
+    Expect(0, 119232, '\P{^Is_Composition_Exclusion=__F}', "");
+    Error('\p{Is_CE=-false:=}');
+    Error('\P{Is_CE=-false:=}');
+    Expect(1, 119233, '\p{Is_CE=false}', "");
+    Expect(0, 119233, '\p{^Is_CE=false}', "");
+    Expect(0, 119233, '\P{Is_CE=false}', "");
+    Expect(1, 119233, '\P{^Is_CE=false}', "");
+    Expect(0, 119232, '\p{Is_CE=false}', "");
+    Expect(1, 119232, '\p{^Is_CE=false}', "");
+    Expect(1, 119232, '\P{Is_CE=false}', "");
+    Expect(0, 119232, '\P{^Is_CE=false}', "");
+    Expect(1, 119233, '\p{Is_CE=	 false}', "");
+    Expect(0, 119233, '\p{^Is_CE=	 false}', "");
+    Expect(0, 119233, '\P{Is_CE=	 false}', "");
+    Expect(1, 119233, '\P{^Is_CE=	 false}', "");
+    Expect(0, 119232, '\p{Is_CE=	 false}', "");
+    Expect(1, 119232, '\p{^Is_CE=	 false}', "");
+    Expect(1, 119232, '\P{Is_CE=	 false}', "");
+    Expect(0, 119232, '\P{^Is_CE=	 false}', "");
+    Error('\p{Composition_Exclusion=/a/ _Yes}');
+    Error('\P{Composition_Exclusion=/a/ _Yes}');
     Expect(1, 119232, '\p{Composition_Exclusion=:\AYes\z:}', "");;
     Expect(0, 119233, '\p{Composition_Exclusion=:\AYes\z:}', "");;
     Expect(1, 119232, '\p{Composition_Exclusion=yes}', "");
@@ -33591,16 +34159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119233, '\P{^Composition_Exclusion=yes}', "");
     Expect(1, 119232, '\p{Composition_Exclusion=:\Ayes\z:}', "");;
     Expect(0, 119233, '\p{Composition_Exclusion=:\Ayes\z:}', "");;
-    Expect(1, 119232, '\p{Composition_Exclusion=		YES}', "");
-    Expect(0, 119232, '\p{^Composition_Exclusion=		YES}', "");
-    Expect(0, 119232, '\P{Composition_Exclusion=		YES}', "");
-    Expect(1, 119232, '\P{^Composition_Exclusion=		YES}', "");
-    Expect(0, 119233, '\p{Composition_Exclusion=		YES}', "");
-    Expect(1, 119233, '\p{^Composition_Exclusion=		YES}', "");
-    Expect(1, 119233, '\P{Composition_Exclusion=		YES}', "");
-    Expect(0, 119233, '\P{^Composition_Exclusion=		YES}', "");
-    Error('\p{CE=- Y:=}');
-    Error('\P{CE=- Y:=}');
+    Expect(1, 119232, '\p{Composition_Exclusion=-Yes}', "");
+    Expect(0, 119232, '\p{^Composition_Exclusion=-Yes}', "");
+    Expect(0, 119232, '\P{Composition_Exclusion=-Yes}', "");
+    Expect(1, 119232, '\P{^Composition_Exclusion=-Yes}', "");
+    Expect(0, 119233, '\p{Composition_Exclusion=-Yes}', "");
+    Expect(1, 119233, '\p{^Composition_Exclusion=-Yes}', "");
+    Expect(1, 119233, '\P{Composition_Exclusion=-Yes}', "");
+    Expect(0, 119233, '\P{^Composition_Exclusion=-Yes}', "");
+    Error('\p{CE=	Y:=}');
+    Error('\P{CE=	Y:=}');
     Expect(1, 119232, '\p{CE=:\AY\z:}', "");;
     Expect(0, 119233, '\p{CE=:\AY\z:}', "");;
     Expect(1, 119232, '\p{CE=y}', "");
@@ -33613,16 +34181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 119233, '\P{^CE=y}', "");
     Expect(1, 119232, '\p{CE=:\Ay\z:}', "");;
     Expect(0, 119233, '\p{CE=:\Ay\z:}', "");;
-    Expect(1, 119232, '\p{CE=-Y}', "");
-    Expect(0, 119232, '\p{^CE=-Y}', "");
-    Expect(0, 119232, '\P{CE=-Y}', "");
-    Expect(1, 119232, '\P{^CE=-Y}', "");
-    Expect(0, 119233, '\p{CE=-Y}', "");
-    Expect(1, 119233, '\p{^CE=-Y}', "");
-    Expect(1, 119233, '\P{CE=-Y}', "");
-    Expect(0, 119233, '\P{^CE=-Y}', "");
-    Error('\p{Is_Composition_Exclusion=	/a/T}');
-    Error('\P{Is_Composition_Exclusion=	/a/T}');
+    Expect(1, 119232, '\p{CE=_y}', "");
+    Expect(0, 119232, '\p{^CE=_y}', "");
+    Expect(0, 119232, '\P{CE=_y}', "");
+    Expect(1, 119232, '\P{^CE=_y}', "");
+    Expect(0, 119233, '\p{CE=_y}', "");
+    Expect(1, 119233, '\p{^CE=_y}', "");
+    Expect(1, 119233, '\P{CE=_y}', "");
+    Expect(0, 119233, '\P{^CE=_y}', "");
+    Error('\p{Is_Composition_Exclusion=_T:=}');
+    Error('\P{Is_Composition_Exclusion=_T:=}');
     Expect(1, 119232, '\p{Is_Composition_Exclusion=t}', "");
     Expect(0, 119232, '\p{^Is_Composition_Exclusion=t}', "");
     Expect(0, 119232, '\P{Is_Composition_Exclusion=t}', "");
@@ -33631,16 +34199,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119233, '\p{^Is_Composition_Exclusion=t}', "");
     Expect(1, 119233, '\P{Is_Composition_Exclusion=t}', "");
     Expect(0, 119233, '\P{^Is_Composition_Exclusion=t}', "");
-    Expect(1, 119232, '\p{Is_Composition_Exclusion:   -_T}', "");
-    Expect(0, 119232, '\p{^Is_Composition_Exclusion:   -_T}', "");
-    Expect(0, 119232, '\P{Is_Composition_Exclusion:   -_T}', "");
-    Expect(1, 119232, '\P{^Is_Composition_Exclusion:   -_T}', "");
-    Expect(0, 119233, '\p{Is_Composition_Exclusion:   -_T}', "");
-    Expect(1, 119233, '\p{^Is_Composition_Exclusion:   -_T}', "");
-    Expect(1, 119233, '\P{Is_Composition_Exclusion:   -_T}', "");
-    Expect(0, 119233, '\P{^Is_Composition_Exclusion:   -_T}', "");
-    Error('\p{Is_CE=:= -True}');
-    Error('\P{Is_CE=:= -True}');
+    Expect(1, 119232, '\p{Is_Composition_Exclusion=  T}', "");
+    Expect(0, 119232, '\p{^Is_Composition_Exclusion=  T}', "");
+    Expect(0, 119232, '\P{Is_Composition_Exclusion=  T}', "");
+    Expect(1, 119232, '\P{^Is_Composition_Exclusion=  T}', "");
+    Expect(0, 119233, '\p{Is_Composition_Exclusion=  T}', "");
+    Expect(1, 119233, '\p{^Is_Composition_Exclusion=  T}', "");
+    Expect(1, 119233, '\P{Is_Composition_Exclusion=  T}', "");
+    Expect(0, 119233, '\P{^Is_Composition_Exclusion=  T}', "");
+    Error('\p{Is_CE=- TRUE:=}');
+    Error('\P{Is_CE=- TRUE:=}');
     Expect(1, 119232, '\p{Is_CE=true}', "");
     Expect(0, 119232, '\p{^Is_CE=true}', "");
     Expect(0, 119232, '\P{Is_CE=true}', "");
@@ -33649,40 +34217,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 119233, '\p{^Is_CE=true}', "");
     Expect(1, 119233, '\P{Is_CE=true}', "");
     Expect(0, 119233, '\P{^Is_CE=true}', "");
-    Expect(1, 119232, '\p{Is_CE:	-True}', "");
-    Expect(0, 119232, '\p{^Is_CE:	-True}', "");
-    Expect(0, 119232, '\P{Is_CE:	-True}', "");
-    Expect(1, 119232, '\P{^Is_CE:	-True}', "");
-    Expect(0, 119233, '\p{Is_CE:	-True}', "");
-    Expect(1, 119233, '\p{^Is_CE:	-True}', "");
-    Expect(1, 119233, '\P{Is_CE:	-True}', "");
-    Expect(0, 119233, '\P{^Is_CE:	-True}', "");
+    Expect(1, 119232, '\p{Is_CE=-	true}', "");
+    Expect(0, 119232, '\p{^Is_CE=-	true}', "");
+    Expect(0, 119232, '\P{Is_CE=-	true}', "");
+    Expect(1, 119232, '\P{^Is_CE=-	true}', "");
+    Expect(0, 119233, '\p{Is_CE=-	true}', "");
+    Expect(1, 119233, '\p{^Is_CE=-	true}', "");
+    Expect(1, 119233, '\P{Is_CE=-	true}', "");
+    Expect(0, 119233, '\P{^Is_CE=-	true}', "");
     Error('\p{casefolding}');
     Error('\P{casefolding}');
-    Error('\p{Case_Ignorable=-NO:=}');
-    Error('\P{Case_Ignorable=-NO:=}');
+    Error('\p{Case_Ignorable= /a/NO}');
+    Error('\P{Case_Ignorable= /a/NO}');
     Expect(1, 918000, '\p{Case_Ignorable=:\ANo\z:}', "");;
     Expect(0, 917999, '\p{Case_Ignorable=:\ANo\z:}', "");;
-    Expect(1, 918000, '\p{Case_Ignorable: no}', "");
-    Expect(0, 918000, '\p{^Case_Ignorable: no}', "");
-    Expect(0, 918000, '\P{Case_Ignorable: no}', "");
-    Expect(1, 918000, '\P{^Case_Ignorable: no}', "");
-    Expect(0, 917999, '\p{Case_Ignorable: no}', "");
-    Expect(1, 917999, '\p{^Case_Ignorable: no}', "");
-    Expect(1, 917999, '\P{Case_Ignorable: no}', "");
-    Expect(0, 917999, '\P{^Case_Ignorable: no}', "");
+    Expect(1, 918000, '\p{Case_Ignorable=no}', "");
+    Expect(0, 918000, '\p{^Case_Ignorable=no}', "");
+    Expect(0, 918000, '\P{Case_Ignorable=no}', "");
+    Expect(1, 918000, '\P{^Case_Ignorable=no}', "");
+    Expect(0, 917999, '\p{Case_Ignorable=no}', "");
+    Expect(1, 917999, '\p{^Case_Ignorable=no}', "");
+    Expect(1, 917999, '\P{Case_Ignorable=no}', "");
+    Expect(0, 917999, '\P{^Case_Ignorable=no}', "");
     Expect(1, 918000, '\p{Case_Ignorable=:\Ano\z:}', "");;
     Expect(0, 917999, '\p{Case_Ignorable=:\Ano\z:}', "");;
-    Expect(1, 918000, '\p{Case_Ignorable=_NO}', "");
-    Expect(0, 918000, '\p{^Case_Ignorable=_NO}', "");
-    Expect(0, 918000, '\P{Case_Ignorable=_NO}', "");
-    Expect(1, 918000, '\P{^Case_Ignorable=_NO}', "");
-    Expect(0, 917999, '\p{Case_Ignorable=_NO}', "");
-    Expect(1, 917999, '\p{^Case_Ignorable=_NO}', "");
-    Expect(1, 917999, '\P{Case_Ignorable=_NO}', "");
-    Expect(0, 917999, '\P{^Case_Ignorable=_NO}', "");
-    Error('\p{CI= :=n}');
-    Error('\P{CI= :=n}');
+    Expect(1, 918000, '\p{Case_Ignorable=_no}', "");
+    Expect(0, 918000, '\p{^Case_Ignorable=_no}', "");
+    Expect(0, 918000, '\P{Case_Ignorable=_no}', "");
+    Expect(1, 918000, '\P{^Case_Ignorable=_no}', "");
+    Expect(0, 917999, '\p{Case_Ignorable=_no}', "");
+    Expect(1, 917999, '\p{^Case_Ignorable=_no}', "");
+    Expect(1, 917999, '\P{Case_Ignorable=_no}', "");
+    Expect(0, 917999, '\P{^Case_Ignorable=_no}', "");
+    Error('\p{CI=/a/- N}');
+    Error('\P{CI=/a/- N}');
     Expect(1, 918000, '\p{CI=:\AN\z:}', "");;
     Expect(0, 917999, '\p{CI=:\AN\z:}', "");;
     Expect(1, 918000, '\p{CI=n}', "");
@@ -33695,34 +34263,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917999, '\P{^CI=n}', "");
     Expect(1, 918000, '\p{CI=:\An\z:}', "");;
     Expect(0, 917999, '\p{CI=:\An\z:}', "");;
-    Expect(1, 918000, '\p{CI=-N}', "");
-    Expect(0, 918000, '\p{^CI=-N}', "");
-    Expect(0, 918000, '\P{CI=-N}', "");
-    Expect(1, 918000, '\P{^CI=-N}', "");
-    Expect(0, 917999, '\p{CI=-N}', "");
-    Expect(1, 917999, '\p{^CI=-N}', "");
-    Expect(1, 917999, '\P{CI=-N}', "");
-    Expect(0, 917999, '\P{^CI=-N}', "");
-    Error('\p{Is_Case_Ignorable=-	f:=}');
-    Error('\P{Is_Case_Ignorable=-	f:=}');
-    Expect(1, 918000, '\p{Is_Case_Ignorable=f}', "");
-    Expect(0, 918000, '\p{^Is_Case_Ignorable=f}', "");
-    Expect(0, 918000, '\P{Is_Case_Ignorable=f}', "");
-    Expect(1, 918000, '\P{^Is_Case_Ignorable=f}', "");
-    Expect(0, 917999, '\p{Is_Case_Ignorable=f}', "");
-    Expect(1, 917999, '\p{^Is_Case_Ignorable=f}', "");
-    Expect(1, 917999, '\P{Is_Case_Ignorable=f}', "");
-    Expect(0, 917999, '\P{^Is_Case_Ignorable=f}', "");
-    Expect(1, 918000, '\p{Is_Case_Ignorable=_F}', "");
-    Expect(0, 918000, '\p{^Is_Case_Ignorable=_F}', "");
-    Expect(0, 918000, '\P{Is_Case_Ignorable=_F}', "");
-    Expect(1, 918000, '\P{^Is_Case_Ignorable=_F}', "");
-    Expect(0, 917999, '\p{Is_Case_Ignorable=_F}', "");
-    Expect(1, 917999, '\p{^Is_Case_Ignorable=_F}', "");
-    Expect(1, 917999, '\P{Is_Case_Ignorable=_F}', "");
-    Expect(0, 917999, '\P{^Is_Case_Ignorable=_F}', "");
-    Error('\p{Is_CI:		/a/FALSE}');
-    Error('\P{Is_CI:		/a/FALSE}');
+    Expect(1, 918000, '\p{CI=	N}', "");
+    Expect(0, 918000, '\p{^CI=	N}', "");
+    Expect(0, 918000, '\P{CI=	N}', "");
+    Expect(1, 918000, '\P{^CI=	N}', "");
+    Expect(0, 917999, '\p{CI=	N}', "");
+    Expect(1, 917999, '\p{^CI=	N}', "");
+    Expect(1, 917999, '\P{CI=	N}', "");
+    Expect(0, 917999, '\P{^CI=	N}', "");
+    Error('\p{Is_Case_Ignorable=	_F/a/}');
+    Error('\P{Is_Case_Ignorable=	_F/a/}');
+    Expect(1, 918000, '\p{Is_Case_Ignorable:f}', "");
+    Expect(0, 918000, '\p{^Is_Case_Ignorable:f}', "");
+    Expect(0, 918000, '\P{Is_Case_Ignorable:f}', "");
+    Expect(1, 918000, '\P{^Is_Case_Ignorable:f}', "");
+    Expect(0, 917999, '\p{Is_Case_Ignorable:f}', "");
+    Expect(1, 917999, '\p{^Is_Case_Ignorable:f}', "");
+    Expect(1, 917999, '\P{Is_Case_Ignorable:f}', "");
+    Expect(0, 917999, '\P{^Is_Case_Ignorable:f}', "");
+    Expect(1, 918000, '\p{Is_Case_Ignorable= _F}', "");
+    Expect(0, 918000, '\p{^Is_Case_Ignorable= _F}', "");
+    Expect(0, 918000, '\P{Is_Case_Ignorable= _F}', "");
+    Expect(1, 918000, '\P{^Is_Case_Ignorable= _F}', "");
+    Expect(0, 917999, '\p{Is_Case_Ignorable= _F}', "");
+    Expect(1, 917999, '\p{^Is_Case_Ignorable= _F}', "");
+    Expect(1, 917999, '\P{Is_Case_Ignorable= _F}', "");
+    Expect(0, 917999, '\P{^Is_Case_Ignorable= _F}', "");
+    Error('\p{Is_CI=	_False:=}');
+    Error('\P{Is_CI=	_False:=}');
     Expect(1, 918000, '\p{Is_CI=false}', "");
     Expect(0, 918000, '\p{^Is_CI=false}', "");
     Expect(0, 918000, '\P{Is_CI=false}', "");
@@ -33731,38 +34299,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917999, '\p{^Is_CI=false}', "");
     Expect(1, 917999, '\P{Is_CI=false}', "");
     Expect(0, 917999, '\P{^Is_CI=false}', "");
-    Expect(1, 918000, '\p{Is_CI=_False}', "");
-    Expect(0, 918000, '\p{^Is_CI=_False}', "");
-    Expect(0, 918000, '\P{Is_CI=_False}', "");
-    Expect(1, 918000, '\P{^Is_CI=_False}', "");
-    Expect(0, 917999, '\p{Is_CI=_False}', "");
-    Expect(1, 917999, '\p{^Is_CI=_False}', "");
-    Expect(1, 917999, '\P{Is_CI=_False}', "");
-    Expect(0, 917999, '\P{^Is_CI=_False}', "");
-    Error('\p{Case_Ignorable=:=Yes}');
-    Error('\P{Case_Ignorable=:=Yes}');
+    Expect(1, 918000, '\p{Is_CI=	False}', "");
+    Expect(0, 918000, '\p{^Is_CI=	False}', "");
+    Expect(0, 918000, '\P{Is_CI=	False}', "");
+    Expect(1, 918000, '\P{^Is_CI=	False}', "");
+    Expect(0, 917999, '\p{Is_CI=	False}', "");
+    Expect(1, 917999, '\p{^Is_CI=	False}', "");
+    Expect(1, 917999, '\P{Is_CI=	False}', "");
+    Expect(0, 917999, '\P{^Is_CI=	False}', "");
+    Error('\p{Case_Ignorable=/a/		YES}');
+    Error('\P{Case_Ignorable=/a/		YES}');
     Expect(1, 917999, '\p{Case_Ignorable=:\AYes\z:}', "");;
     Expect(0, 918000, '\p{Case_Ignorable=:\AYes\z:}', "");;
-    Expect(1, 917999, '\p{Case_Ignorable:   yes}', "");
-    Expect(0, 917999, '\p{^Case_Ignorable:   yes}', "");
-    Expect(0, 917999, '\P{Case_Ignorable:   yes}', "");
-    Expect(1, 917999, '\P{^Case_Ignorable:   yes}', "");
-    Expect(0, 918000, '\p{Case_Ignorable:   yes}', "");
-    Expect(1, 918000, '\p{^Case_Ignorable:   yes}', "");
-    Expect(1, 918000, '\P{Case_Ignorable:   yes}', "");
-    Expect(0, 918000, '\P{^Case_Ignorable:   yes}', "");
+    Expect(1, 917999, '\p{Case_Ignorable=yes}', "");
+    Expect(0, 917999, '\p{^Case_Ignorable=yes}', "");
+    Expect(0, 917999, '\P{Case_Ignorable=yes}', "");
+    Expect(1, 917999, '\P{^Case_Ignorable=yes}', "");
+    Expect(0, 918000, '\p{Case_Ignorable=yes}', "");
+    Expect(1, 918000, '\p{^Case_Ignorable=yes}', "");
+    Expect(1, 918000, '\P{Case_Ignorable=yes}', "");
+    Expect(0, 918000, '\P{^Case_Ignorable=yes}', "");
     Expect(1, 917999, '\p{Case_Ignorable=:\Ayes\z:}', "");;
     Expect(0, 918000, '\p{Case_Ignorable=:\Ayes\z:}', "");;
-    Expect(1, 917999, '\p{Case_Ignorable: YES}', "");
-    Expect(0, 917999, '\p{^Case_Ignorable: YES}', "");
-    Expect(0, 917999, '\P{Case_Ignorable: YES}', "");
-    Expect(1, 917999, '\P{^Case_Ignorable: YES}', "");
-    Expect(0, 918000, '\p{Case_Ignorable: YES}', "");
-    Expect(1, 918000, '\p{^Case_Ignorable: YES}', "");
-    Expect(1, 918000, '\P{Case_Ignorable: YES}', "");
-    Expect(0, 918000, '\P{^Case_Ignorable: YES}', "");
-    Error('\p{CI= /a/Y}');
-    Error('\P{CI= /a/Y}');
+    Expect(1, 917999, '\p{Case_Ignorable=	Yes}', "");
+    Expect(0, 917999, '\p{^Case_Ignorable=	Yes}', "");
+    Expect(0, 917999, '\P{Case_Ignorable=	Yes}', "");
+    Expect(1, 917999, '\P{^Case_Ignorable=	Yes}', "");
+    Expect(0, 918000, '\p{Case_Ignorable=	Yes}', "");
+    Expect(1, 918000, '\p{^Case_Ignorable=	Yes}', "");
+    Expect(1, 918000, '\P{Case_Ignorable=	Yes}', "");
+    Expect(0, 918000, '\P{^Case_Ignorable=	Yes}', "");
+    Error('\p{CI=/a/y}');
+    Error('\P{CI=/a/y}');
     Expect(1, 917999, '\p{CI=:\AY\z:}', "");;
     Expect(0, 918000, '\p{CI=:\AY\z:}', "");;
     Expect(1, 917999, '\p{CI=y}', "");
@@ -33775,16 +34343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^CI=y}', "");
     Expect(1, 917999, '\p{CI=:\Ay\z:}', "");;
     Expect(0, 918000, '\p{CI=:\Ay\z:}', "");;
-    Expect(1, 917999, '\p{CI=		Y}', "");
-    Expect(0, 917999, '\p{^CI=		Y}', "");
-    Expect(0, 917999, '\P{CI=		Y}', "");
-    Expect(1, 917999, '\P{^CI=		Y}', "");
-    Expect(0, 918000, '\p{CI=		Y}', "");
-    Expect(1, 918000, '\p{^CI=		Y}', "");
-    Expect(1, 918000, '\P{CI=		Y}', "");
-    Expect(0, 918000, '\P{^CI=		Y}', "");
-    Error('\p{Is_Case_Ignorable=	_T/a/}');
-    Error('\P{Is_Case_Ignorable=	_T/a/}');
+    Expect(1, 917999, '\p{CI=	 Y}', "");
+    Expect(0, 917999, '\p{^CI=	 Y}', "");
+    Expect(0, 917999, '\P{CI=	 Y}', "");
+    Expect(1, 917999, '\P{^CI=	 Y}', "");
+    Expect(0, 918000, '\p{CI=	 Y}', "");
+    Expect(1, 918000, '\p{^CI=	 Y}', "");
+    Expect(1, 918000, '\P{CI=	 Y}', "");
+    Expect(0, 918000, '\P{^CI=	 Y}', "");
+    Error('\p{Is_Case_Ignorable=-t/a/}');
+    Error('\P{Is_Case_Ignorable=-t/a/}');
     Expect(1, 917999, '\p{Is_Case_Ignorable=t}', "");
     Expect(0, 917999, '\p{^Is_Case_Ignorable=t}', "");
     Expect(0, 917999, '\P{Is_Case_Ignorable=t}', "");
@@ -33793,16 +34361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_Case_Ignorable=t}', "");
     Expect(1, 918000, '\P{Is_Case_Ignorable=t}', "");
     Expect(0, 918000, '\P{^Is_Case_Ignorable=t}', "");
-    Expect(1, 917999, '\p{Is_Case_Ignorable=_t}', "");
-    Expect(0, 917999, '\p{^Is_Case_Ignorable=_t}', "");
-    Expect(0, 917999, '\P{Is_Case_Ignorable=_t}', "");
-    Expect(1, 917999, '\P{^Is_Case_Ignorable=_t}', "");
-    Expect(0, 918000, '\p{Is_Case_Ignorable=_t}', "");
-    Expect(1, 918000, '\p{^Is_Case_Ignorable=_t}', "");
-    Expect(1, 918000, '\P{Is_Case_Ignorable=_t}', "");
-    Expect(0, 918000, '\P{^Is_Case_Ignorable=_t}', "");
-    Error('\p{Is_CI=	true/a/}');
-    Error('\P{Is_CI=	true/a/}');
+    Expect(1, 917999, '\p{Is_Case_Ignorable=__T}', "");
+    Expect(0, 917999, '\p{^Is_Case_Ignorable=__T}', "");
+    Expect(0, 917999, '\P{Is_Case_Ignorable=__T}', "");
+    Expect(1, 917999, '\P{^Is_Case_Ignorable=__T}', "");
+    Expect(0, 918000, '\p{Is_Case_Ignorable=__T}', "");
+    Expect(1, 918000, '\p{^Is_Case_Ignorable=__T}', "");
+    Expect(1, 918000, '\P{Is_Case_Ignorable=__T}', "");
+    Expect(0, 918000, '\P{^Is_Case_Ignorable=__T}', "");
+    Error('\p{Is_CI= /a/True}');
+    Error('\P{Is_CI= /a/True}');
     Expect(1, 917999, '\p{Is_CI=true}', "");
     Expect(0, 917999, '\p{^Is_CI=true}', "");
     Expect(0, 917999, '\P{Is_CI=true}', "");
@@ -33811,14 +34379,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_CI=true}', "");
     Expect(1, 918000, '\P{Is_CI=true}', "");
     Expect(0, 918000, '\P{^Is_CI=true}', "");
-    Expect(1, 917999, '\p{Is_CI=	-True}', "");
-    Expect(0, 917999, '\p{^Is_CI=	-True}', "");
-    Expect(0, 917999, '\P{Is_CI=	-True}', "");
-    Expect(1, 917999, '\P{^Is_CI=	-True}', "");
-    Expect(0, 918000, '\p{Is_CI=	-True}', "");
-    Expect(1, 918000, '\p{^Is_CI=	-True}', "");
-    Expect(1, 918000, '\P{Is_CI=	-True}', "");
-    Expect(0, 918000, '\P{^Is_CI=	-True}', "");
+    Expect(1, 917999, '\p{Is_CI=	 true}', "");
+    Expect(0, 917999, '\p{^Is_CI=	 true}', "");
+    Expect(0, 917999, '\P{Is_CI=	 true}', "");
+    Expect(1, 917999, '\P{^Is_CI=	 true}', "");
+    Expect(0, 918000, '\p{Is_CI=	 true}', "");
+    Expect(1, 918000, '\p{^Is_CI=	 true}', "");
+    Expect(1, 918000, '\P{Is_CI=	 true}', "");
+    Expect(0, 918000, '\P{^Is_CI=	 true}', "");
     Error('\p{kaccountingnumeric}');
     Error('\P{kaccountingnumeric}');
     Error('\p{cjkaccountingnumeric}');
@@ -33891,52 +34459,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Error('\P{unicoderadicalstroke}');
     Error('\p{urs}');
     Error('\P{urs}');
-    Error('\p{Full_Composition_Exclusion=_:=No}');
-    Error('\P{Full_Composition_Exclusion=_:=No}');
+    Error('\p{Full_Composition_Exclusion=--No/a/}');
+    Error('\P{Full_Composition_Exclusion=--No/a/}');
     Expect(1, 195102, '\p{Full_Composition_Exclusion=:\ANo\z:}', "");;
     Expect(0, 195101, '\p{Full_Composition_Exclusion=:\ANo\z:}', "");;
-    Expect(1, 195102, '\p{Full_Composition_Exclusion:	no}', "");
-    Expect(0, 195102, '\p{^Full_Composition_Exclusion:	no}', "");
-    Expect(0, 195102, '\P{Full_Composition_Exclusion:	no}', "");
-    Expect(1, 195102, '\P{^Full_Composition_Exclusion:	no}', "");
-    Expect(0, 195101, '\p{Full_Composition_Exclusion:	no}', "");
-    Expect(1, 195101, '\p{^Full_Composition_Exclusion:	no}', "");
-    Expect(1, 195101, '\P{Full_Composition_Exclusion:	no}', "");
-    Expect(0, 195101, '\P{^Full_Composition_Exclusion:	no}', "");
+    Expect(1, 195102, '\p{Full_Composition_Exclusion=no}', "");
+    Expect(0, 195102, '\p{^Full_Composition_Exclusion=no}', "");
+    Expect(0, 195102, '\P{Full_Composition_Exclusion=no}', "");
+    Expect(1, 195102, '\P{^Full_Composition_Exclusion=no}', "");
+    Expect(0, 195101, '\p{Full_Composition_Exclusion=no}', "");
+    Expect(1, 195101, '\p{^Full_Composition_Exclusion=no}', "");
+    Expect(1, 195101, '\P{Full_Composition_Exclusion=no}', "");
+    Expect(0, 195101, '\P{^Full_Composition_Exclusion=no}', "");
     Expect(1, 195102, '\p{Full_Composition_Exclusion=:\Ano\z:}', "");;
     Expect(0, 195101, '\p{Full_Composition_Exclusion=:\Ano\z:}', "");;
-    Expect(1, 195102, '\p{Full_Composition_Exclusion= no}', "");
-    Expect(0, 195102, '\p{^Full_Composition_Exclusion= no}', "");
-    Expect(0, 195102, '\P{Full_Composition_Exclusion= no}', "");
-    Expect(1, 195102, '\P{^Full_Composition_Exclusion= no}', "");
-    Expect(0, 195101, '\p{Full_Composition_Exclusion= no}', "");
-    Expect(1, 195101, '\p{^Full_Composition_Exclusion= no}', "");
-    Expect(1, 195101, '\P{Full_Composition_Exclusion= no}', "");
-    Expect(0, 195101, '\P{^Full_Composition_Exclusion= no}', "");
-    Error('\p{Comp_Ex=/a/n}');
-    Error('\P{Comp_Ex=/a/n}');
+    Expect(1, 195102, '\p{Full_Composition_Exclusion=		no}', "");
+    Expect(0, 195102, '\p{^Full_Composition_Exclusion=		no}', "");
+    Expect(0, 195102, '\P{Full_Composition_Exclusion=		no}', "");
+    Expect(1, 195102, '\P{^Full_Composition_Exclusion=		no}', "");
+    Expect(0, 195101, '\p{Full_Composition_Exclusion=		no}', "");
+    Expect(1, 195101, '\p{^Full_Composition_Exclusion=		no}', "");
+    Expect(1, 195101, '\P{Full_Composition_Exclusion=		no}', "");
+    Expect(0, 195101, '\P{^Full_Composition_Exclusion=		no}', "");
+    Error('\p{Comp_Ex:	/a/_	n}');
+    Error('\P{Comp_Ex:	/a/_	n}');
     Expect(1, 195102, '\p{Comp_Ex=:\AN\z:}', "");;
     Expect(0, 195101, '\p{Comp_Ex=:\AN\z:}', "");;
-    Expect(1, 195102, '\p{Comp_Ex=n}', "");
-    Expect(0, 195102, '\p{^Comp_Ex=n}', "");
-    Expect(0, 195102, '\P{Comp_Ex=n}', "");
-    Expect(1, 195102, '\P{^Comp_Ex=n}', "");
-    Expect(0, 195101, '\p{Comp_Ex=n}', "");
-    Expect(1, 195101, '\p{^Comp_Ex=n}', "");
-    Expect(1, 195101, '\P{Comp_Ex=n}', "");
-    Expect(0, 195101, '\P{^Comp_Ex=n}', "");
+    Expect(1, 195102, '\p{Comp_Ex:   n}', "");
+    Expect(0, 195102, '\p{^Comp_Ex:   n}', "");
+    Expect(0, 195102, '\P{Comp_Ex:   n}', "");
+    Expect(1, 195102, '\P{^Comp_Ex:   n}', "");
+    Expect(0, 195101, '\p{Comp_Ex:   n}', "");
+    Expect(1, 195101, '\p{^Comp_Ex:   n}', "");
+    Expect(1, 195101, '\P{Comp_Ex:   n}', "");
+    Expect(0, 195101, '\P{^Comp_Ex:   n}', "");
     Expect(1, 195102, '\p{Comp_Ex=:\An\z:}', "");;
     Expect(0, 195101, '\p{Comp_Ex=:\An\z:}', "");;
-    Expect(1, 195102, '\p{Comp_Ex=__N}', "");
-    Expect(0, 195102, '\p{^Comp_Ex=__N}', "");
-    Expect(0, 195102, '\P{Comp_Ex=__N}', "");
-    Expect(1, 195102, '\P{^Comp_Ex=__N}', "");
-    Expect(0, 195101, '\p{Comp_Ex=__N}', "");
-    Expect(1, 195101, '\p{^Comp_Ex=__N}', "");
-    Expect(1, 195101, '\P{Comp_Ex=__N}', "");
-    Expect(0, 195101, '\P{^Comp_Ex=__N}', "");
-    Error('\p{Is_Full_Composition_Exclusion=-/a/F}');
-    Error('\P{Is_Full_Composition_Exclusion=-/a/F}');
+    Expect(1, 195102, '\p{Comp_Ex=- N}', "");
+    Expect(0, 195102, '\p{^Comp_Ex=- N}', "");
+    Expect(0, 195102, '\P{Comp_Ex=- N}', "");
+    Expect(1, 195102, '\P{^Comp_Ex=- N}', "");
+    Expect(0, 195101, '\p{Comp_Ex=- N}', "");
+    Expect(1, 195101, '\p{^Comp_Ex=- N}', "");
+    Expect(1, 195101, '\P{Comp_Ex=- N}', "");
+    Expect(0, 195101, '\P{^Comp_Ex=- N}', "");
+    Error('\p{Is_Full_Composition_Exclusion=:=		F}');
+    Error('\P{Is_Full_Composition_Exclusion=:=		F}');
     Expect(1, 195102, '\p{Is_Full_Composition_Exclusion=f}', "");
     Expect(0, 195102, '\p{^Is_Full_Composition_Exclusion=f}', "");
     Expect(0, 195102, '\P{Is_Full_Composition_Exclusion=f}', "");
@@ -33945,34 +34513,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195101, '\p{^Is_Full_Composition_Exclusion=f}', "");
     Expect(1, 195101, '\P{Is_Full_Composition_Exclusion=f}', "");
     Expect(0, 195101, '\P{^Is_Full_Composition_Exclusion=f}', "");
-    Expect(1, 195102, '\p{Is_Full_Composition_Exclusion= _F}', "");
-    Expect(0, 195102, '\p{^Is_Full_Composition_Exclusion= _F}', "");
-    Expect(0, 195102, '\P{Is_Full_Composition_Exclusion= _F}', "");
-    Expect(1, 195102, '\P{^Is_Full_Composition_Exclusion= _F}', "");
-    Expect(0, 195101, '\p{Is_Full_Composition_Exclusion= _F}', "");
-    Expect(1, 195101, '\p{^Is_Full_Composition_Exclusion= _F}', "");
-    Expect(1, 195101, '\P{Is_Full_Composition_Exclusion= _F}', "");
-    Expect(0, 195101, '\P{^Is_Full_Composition_Exclusion= _F}', "");
-    Error('\p{Is_Comp_Ex=/a/_False}');
-    Error('\P{Is_Comp_Ex=/a/_False}');
-    Expect(1, 195102, '\p{Is_Comp_Ex=false}', "");
-    Expect(0, 195102, '\p{^Is_Comp_Ex=false}', "");
-    Expect(0, 195102, '\P{Is_Comp_Ex=false}', "");
-    Expect(1, 195102, '\P{^Is_Comp_Ex=false}', "");
-    Expect(0, 195101, '\p{Is_Comp_Ex=false}', "");
-    Expect(1, 195101, '\p{^Is_Comp_Ex=false}', "");
-    Expect(1, 195101, '\P{Is_Comp_Ex=false}', "");
-    Expect(0, 195101, '\P{^Is_Comp_Ex=false}', "");
-    Expect(1, 195102, '\p{Is_Comp_Ex=-_False}', "");
-    Expect(0, 195102, '\p{^Is_Comp_Ex=-_False}', "");
-    Expect(0, 195102, '\P{Is_Comp_Ex=-_False}', "");
-    Expect(1, 195102, '\P{^Is_Comp_Ex=-_False}', "");
-    Expect(0, 195101, '\p{Is_Comp_Ex=-_False}', "");
-    Expect(1, 195101, '\p{^Is_Comp_Ex=-_False}', "");
-    Expect(1, 195101, '\P{Is_Comp_Ex=-_False}', "");
-    Expect(0, 195101, '\P{^Is_Comp_Ex=-_False}', "");
-    Error('\p{Full_Composition_Exclusion=	Yes/a/}');
-    Error('\P{Full_Composition_Exclusion=	Yes/a/}');
+    Expect(1, 195102, '\p{Is_Full_Composition_Exclusion= F}', "");
+    Expect(0, 195102, '\p{^Is_Full_Composition_Exclusion= F}', "");
+    Expect(0, 195102, '\P{Is_Full_Composition_Exclusion= F}', "");
+    Expect(1, 195102, '\P{^Is_Full_Composition_Exclusion= F}', "");
+    Expect(0, 195101, '\p{Is_Full_Composition_Exclusion= F}', "");
+    Expect(1, 195101, '\p{^Is_Full_Composition_Exclusion= F}', "");
+    Expect(1, 195101, '\P{Is_Full_Composition_Exclusion= F}', "");
+    Expect(0, 195101, '\P{^Is_Full_Composition_Exclusion= F}', "");
+    Error('\p{Is_Comp_Ex=_/a/False}');
+    Error('\P{Is_Comp_Ex=_/a/False}');
+    Expect(1, 195102, '\p{Is_Comp_Ex: false}', "");
+    Expect(0, 195102, '\p{^Is_Comp_Ex: false}', "");
+    Expect(0, 195102, '\P{Is_Comp_Ex: false}', "");
+    Expect(1, 195102, '\P{^Is_Comp_Ex: false}', "");
+    Expect(0, 195101, '\p{Is_Comp_Ex: false}', "");
+    Expect(1, 195101, '\p{^Is_Comp_Ex: false}', "");
+    Expect(1, 195101, '\P{Is_Comp_Ex: false}', "");
+    Expect(0, 195101, '\P{^Is_Comp_Ex: false}', "");
+    Expect(1, 195102, '\p{Is_Comp_Ex=	False}', "");
+    Expect(0, 195102, '\p{^Is_Comp_Ex=	False}', "");
+    Expect(0, 195102, '\P{Is_Comp_Ex=	False}', "");
+    Expect(1, 195102, '\P{^Is_Comp_Ex=	False}', "");
+    Expect(0, 195101, '\p{Is_Comp_Ex=	False}', "");
+    Expect(1, 195101, '\p{^Is_Comp_Ex=	False}', "");
+    Expect(1, 195101, '\P{Is_Comp_Ex=	False}', "");
+    Expect(0, 195101, '\P{^Is_Comp_Ex=	False}', "");
+    Error('\p{Full_Composition_Exclusion= Yes/a/}');
+    Error('\P{Full_Composition_Exclusion= Yes/a/}');
     Expect(1, 195101, '\p{Full_Composition_Exclusion=:\AYes\z:}', "");;
     Expect(0, 195102, '\p{Full_Composition_Exclusion=:\AYes\z:}', "");;
     Expect(1, 195101, '\p{Full_Composition_Exclusion=yes}', "");
@@ -33985,16 +34553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 195102, '\P{^Full_Composition_Exclusion=yes}', "");
     Expect(1, 195101, '\p{Full_Composition_Exclusion=:\Ayes\z:}', "");;
     Expect(0, 195102, '\p{Full_Composition_Exclusion=:\Ayes\z:}', "");;
-    Expect(1, 195101, '\p{Full_Composition_Exclusion=_-Yes}', "");
-    Expect(0, 195101, '\p{^Full_Composition_Exclusion=_-Yes}', "");
-    Expect(0, 195101, '\P{Full_Composition_Exclusion=_-Yes}', "");
-    Expect(1, 195101, '\P{^Full_Composition_Exclusion=_-Yes}', "");
-    Expect(0, 195102, '\p{Full_Composition_Exclusion=_-Yes}', "");
-    Expect(1, 195102, '\p{^Full_Composition_Exclusion=_-Yes}', "");
-    Expect(1, 195102, '\P{Full_Composition_Exclusion=_-Yes}', "");
-    Expect(0, 195102, '\P{^Full_Composition_Exclusion=_-Yes}', "");
-    Error('\p{Comp_Ex= /a/Y}');
-    Error('\P{Comp_Ex= /a/Y}');
+    Expect(1, 195101, '\p{Full_Composition_Exclusion:		 Yes}', "");
+    Expect(0, 195101, '\p{^Full_Composition_Exclusion:		 Yes}', "");
+    Expect(0, 195101, '\P{Full_Composition_Exclusion:		 Yes}', "");
+    Expect(1, 195101, '\P{^Full_Composition_Exclusion:		 Yes}', "");
+    Expect(0, 195102, '\p{Full_Composition_Exclusion:		 Yes}', "");
+    Expect(1, 195102, '\p{^Full_Composition_Exclusion:		 Yes}', "");
+    Expect(1, 195102, '\P{Full_Composition_Exclusion:		 Yes}', "");
+    Expect(0, 195102, '\P{^Full_Composition_Exclusion:		 Yes}', "");
+    Error('\p{Comp_Ex::= 	Y}');
+    Error('\P{Comp_Ex::= 	Y}');
     Expect(1, 195101, '\p{Comp_Ex=:\AY\z:}', "");;
     Expect(0, 195102, '\p{Comp_Ex=:\AY\z:}', "");;
     Expect(1, 195101, '\p{Comp_Ex=y}', "");
@@ -34007,34 +34575,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 195102, '\P{^Comp_Ex=y}', "");
     Expect(1, 195101, '\p{Comp_Ex=:\Ay\z:}', "");;
     Expect(0, 195102, '\p{Comp_Ex=:\Ay\z:}', "");;
-    Expect(1, 195101, '\p{Comp_Ex=_y}', "");
-    Expect(0, 195101, '\p{^Comp_Ex=_y}', "");
-    Expect(0, 195101, '\P{Comp_Ex=_y}', "");
-    Expect(1, 195101, '\P{^Comp_Ex=_y}', "");
-    Expect(0, 195102, '\p{Comp_Ex=_y}', "");
-    Expect(1, 195102, '\p{^Comp_Ex=_y}', "");
-    Expect(1, 195102, '\P{Comp_Ex=_y}', "");
-    Expect(0, 195102, '\P{^Comp_Ex=_y}', "");
-    Error('\p{Is_Full_Composition_Exclusion=-_T:=}');
-    Error('\P{Is_Full_Composition_Exclusion=-_T:=}');
-    Expect(1, 195101, '\p{Is_Full_Composition_Exclusion:	t}', "");
-    Expect(0, 195101, '\p{^Is_Full_Composition_Exclusion:	t}', "");
-    Expect(0, 195101, '\P{Is_Full_Composition_Exclusion:	t}', "");
-    Expect(1, 195101, '\P{^Is_Full_Composition_Exclusion:	t}', "");
-    Expect(0, 195102, '\p{Is_Full_Composition_Exclusion:	t}', "");
-    Expect(1, 195102, '\p{^Is_Full_Composition_Exclusion:	t}', "");
-    Expect(1, 195102, '\P{Is_Full_Composition_Exclusion:	t}', "");
-    Expect(0, 195102, '\P{^Is_Full_Composition_Exclusion:	t}', "");
-    Expect(1, 195101, '\p{Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(0, 195101, '\p{^Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(0, 195101, '\P{Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(1, 195101, '\P{^Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(0, 195102, '\p{Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(1, 195102, '\p{^Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(1, 195102, '\P{Is_Full_Composition_Exclusion= 	T}', "");
-    Expect(0, 195102, '\P{^Is_Full_Composition_Exclusion= 	T}', "");
-    Error('\p{Is_Comp_Ex=__TRUE/a/}');
-    Error('\P{Is_Comp_Ex=__TRUE/a/}');
+    Expect(1, 195101, '\p{Comp_Ex=-	y}', "");
+    Expect(0, 195101, '\p{^Comp_Ex=-	y}', "");
+    Expect(0, 195101, '\P{Comp_Ex=-	y}', "");
+    Expect(1, 195101, '\P{^Comp_Ex=-	y}', "");
+    Expect(0, 195102, '\p{Comp_Ex=-	y}', "");
+    Expect(1, 195102, '\p{^Comp_Ex=-	y}', "");
+    Expect(1, 195102, '\P{Comp_Ex=-	y}', "");
+    Expect(0, 195102, '\P{^Comp_Ex=-	y}', "");
+    Error('\p{Is_Full_Composition_Exclusion=:=  T}');
+    Error('\P{Is_Full_Composition_Exclusion=:=  T}');
+    Expect(1, 195101, '\p{Is_Full_Composition_Exclusion=t}', "");
+    Expect(0, 195101, '\p{^Is_Full_Composition_Exclusion=t}', "");
+    Expect(0, 195101, '\P{Is_Full_Composition_Exclusion=t}', "");
+    Expect(1, 195101, '\P{^Is_Full_Composition_Exclusion=t}', "");
+    Expect(0, 195102, '\p{Is_Full_Composition_Exclusion=t}', "");
+    Expect(1, 195102, '\p{^Is_Full_Composition_Exclusion=t}', "");
+    Expect(1, 195102, '\P{Is_Full_Composition_Exclusion=t}', "");
+    Expect(0, 195102, '\P{^Is_Full_Composition_Exclusion=t}', "");
+    Expect(1, 195101, '\p{Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(0, 195101, '\p{^Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(0, 195101, '\P{Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(1, 195101, '\P{^Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(0, 195102, '\p{Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(1, 195102, '\p{^Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(1, 195102, '\P{Is_Full_Composition_Exclusion=-_t}', "");
+    Expect(0, 195102, '\P{^Is_Full_Composition_Exclusion=-_t}', "");
+    Error('\p{Is_Comp_Ex= /a/True}');
+    Error('\P{Is_Comp_Ex= /a/True}');
     Expect(1, 195101, '\p{Is_Comp_Ex=true}', "");
     Expect(0, 195101, '\p{^Is_Comp_Ex=true}', "");
     Expect(0, 195101, '\P{Is_Comp_Ex=true}', "");
@@ -34043,16 +34611,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195102, '\p{^Is_Comp_Ex=true}', "");
     Expect(1, 195102, '\P{Is_Comp_Ex=true}', "");
     Expect(0, 195102, '\P{^Is_Comp_Ex=true}', "");
-    Expect(1, 195101, '\p{Is_Comp_Ex= -True}', "");
-    Expect(0, 195101, '\p{^Is_Comp_Ex= -True}', "");
-    Expect(0, 195101, '\P{Is_Comp_Ex= -True}', "");
-    Expect(1, 195101, '\P{^Is_Comp_Ex= -True}', "");
-    Expect(0, 195102, '\p{Is_Comp_Ex= -True}', "");
-    Expect(1, 195102, '\p{^Is_Comp_Ex= -True}', "");
-    Expect(1, 195102, '\P{Is_Comp_Ex= -True}', "");
-    Expect(0, 195102, '\P{^Is_Comp_Ex= -True}', "");
-    Error('\p{Changes_When_Casefolded=__No:=}');
-    Error('\P{Changes_When_Casefolded=__No:=}');
+    Expect(1, 195101, '\p{Is_Comp_Ex=_True}', "");
+    Expect(0, 195101, '\p{^Is_Comp_Ex=_True}', "");
+    Expect(0, 195101, '\P{Is_Comp_Ex=_True}', "");
+    Expect(1, 195101, '\P{^Is_Comp_Ex=_True}', "");
+    Expect(0, 195102, '\p{Is_Comp_Ex=_True}', "");
+    Expect(1, 195102, '\p{^Is_Comp_Ex=_True}', "");
+    Expect(1, 195102, '\P{Is_Comp_Ex=_True}', "");
+    Expect(0, 195102, '\P{^Is_Comp_Ex=_True}', "");
+    Error('\p{Changes_When_Casefolded=	-No/a/}');
+    Error('\P{Changes_When_Casefolded=	-No/a/}');
     Expect(1, 125218, '\p{Changes_When_Casefolded=:\ANo\z:}', "");;
     Expect(0, 125217, '\p{Changes_When_Casefolded=:\ANo\z:}', "");;
     Expect(1, 125218, '\p{Changes_When_Casefolded=no}', "");
@@ -34065,56 +34633,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125217, '\P{^Changes_When_Casefolded=no}', "");
     Expect(1, 125218, '\p{Changes_When_Casefolded=:\Ano\z:}', "");;
     Expect(0, 125217, '\p{Changes_When_Casefolded=:\Ano\z:}', "");;
-    Expect(1, 125218, '\p{Changes_When_Casefolded=	NO}', "");
-    Expect(0, 125218, '\p{^Changes_When_Casefolded=	NO}', "");
-    Expect(0, 125218, '\P{Changes_When_Casefolded=	NO}', "");
-    Expect(1, 125218, '\P{^Changes_When_Casefolded=	NO}', "");
-    Expect(0, 125217, '\p{Changes_When_Casefolded=	NO}', "");
-    Expect(1, 125217, '\p{^Changes_When_Casefolded=	NO}', "");
-    Expect(1, 125217, '\P{Changes_When_Casefolded=	NO}', "");
-    Expect(0, 125217, '\P{^Changes_When_Casefolded=	NO}', "");
-    Error('\p{CWCF= N/a/}');
-    Error('\P{CWCF= N/a/}');
+    Expect(1, 125218, '\p{Changes_When_Casefolded=	_NO}', "");
+    Expect(0, 125218, '\p{^Changes_When_Casefolded=	_NO}', "");
+    Expect(0, 125218, '\P{Changes_When_Casefolded=	_NO}', "");
+    Expect(1, 125218, '\P{^Changes_When_Casefolded=	_NO}', "");
+    Expect(0, 125217, '\p{Changes_When_Casefolded=	_NO}', "");
+    Expect(1, 125217, '\p{^Changes_When_Casefolded=	_NO}', "");
+    Expect(1, 125217, '\P{Changes_When_Casefolded=	_NO}', "");
+    Expect(0, 125217, '\P{^Changes_When_Casefolded=	_NO}', "");
+    Error('\p{CWCF:	 N:=}');
+    Error('\P{CWCF:	 N:=}');
     Expect(1, 125218, '\p{CWCF=:\AN\z:}', "");;
     Expect(0, 125217, '\p{CWCF=:\AN\z:}', "");;
-    Expect(1, 125218, '\p{CWCF:	n}', "");
-    Expect(0, 125218, '\p{^CWCF:	n}', "");
-    Expect(0, 125218, '\P{CWCF:	n}', "");
-    Expect(1, 125218, '\P{^CWCF:	n}', "");
-    Expect(0, 125217, '\p{CWCF:	n}', "");
-    Expect(1, 125217, '\p{^CWCF:	n}', "");
-    Expect(1, 125217, '\P{CWCF:	n}', "");
-    Expect(0, 125217, '\P{^CWCF:	n}', "");
+    Expect(1, 125218, '\p{CWCF=n}', "");
+    Expect(0, 125218, '\p{^CWCF=n}', "");
+    Expect(0, 125218, '\P{CWCF=n}', "");
+    Expect(1, 125218, '\P{^CWCF=n}', "");
+    Expect(0, 125217, '\p{CWCF=n}', "");
+    Expect(1, 125217, '\p{^CWCF=n}', "");
+    Expect(1, 125217, '\P{CWCF=n}', "");
+    Expect(0, 125217, '\P{^CWCF=n}', "");
     Expect(1, 125218, '\p{CWCF=:\An\z:}', "");;
     Expect(0, 125217, '\p{CWCF=:\An\z:}', "");;
-    Expect(1, 125218, '\p{CWCF=N}', "");
-    Expect(0, 125218, '\p{^CWCF=N}', "");
-    Expect(0, 125218, '\P{CWCF=N}', "");
-    Expect(1, 125218, '\P{^CWCF=N}', "");
-    Expect(0, 125217, '\p{CWCF=N}', "");
-    Expect(1, 125217, '\p{^CWCF=N}', "");
-    Expect(1, 125217, '\P{CWCF=N}', "");
-    Expect(0, 125217, '\P{^CWCF=N}', "");
-    Error('\p{Is_Changes_When_Casefolded:   		F:=}');
-    Error('\P{Is_Changes_When_Casefolded:   		F:=}');
-    Expect(1, 125218, '\p{Is_Changes_When_Casefolded:   f}', "");
-    Expect(0, 125218, '\p{^Is_Changes_When_Casefolded:   f}', "");
-    Expect(0, 125218, '\P{Is_Changes_When_Casefolded:   f}', "");
-    Expect(1, 125218, '\P{^Is_Changes_When_Casefolded:   f}', "");
-    Expect(0, 125217, '\p{Is_Changes_When_Casefolded:   f}', "");
-    Expect(1, 125217, '\p{^Is_Changes_When_Casefolded:   f}', "");
-    Expect(1, 125217, '\P{Is_Changes_When_Casefolded:   f}', "");
-    Expect(0, 125217, '\P{^Is_Changes_When_Casefolded:   f}', "");
-    Expect(1, 125218, '\p{Is_Changes_When_Casefolded=	f}', "");
-    Expect(0, 125218, '\p{^Is_Changes_When_Casefolded=	f}', "");
-    Expect(0, 125218, '\P{Is_Changes_When_Casefolded=	f}', "");
-    Expect(1, 125218, '\P{^Is_Changes_When_Casefolded=	f}', "");
-    Expect(0, 125217, '\p{Is_Changes_When_Casefolded=	f}', "");
-    Expect(1, 125217, '\p{^Is_Changes_When_Casefolded=	f}', "");
-    Expect(1, 125217, '\P{Is_Changes_When_Casefolded=	f}', "");
-    Expect(0, 125217, '\P{^Is_Changes_When_Casefolded=	f}', "");
-    Error('\p{Is_CWCF=		false/a/}');
-    Error('\P{Is_CWCF=		false/a/}');
+    Expect(1, 125218, '\p{CWCF=	-N}', "");
+    Expect(0, 125218, '\p{^CWCF=	-N}', "");
+    Expect(0, 125218, '\P{CWCF=	-N}', "");
+    Expect(1, 125218, '\P{^CWCF=	-N}', "");
+    Expect(0, 125217, '\p{CWCF=	-N}', "");
+    Expect(1, 125217, '\p{^CWCF=	-N}', "");
+    Expect(1, 125217, '\P{CWCF=	-N}', "");
+    Expect(0, 125217, '\P{^CWCF=	-N}', "");
+    Error('\p{Is_Changes_When_Casefolded= -F/a/}');
+    Error('\P{Is_Changes_When_Casefolded= -F/a/}');
+    Expect(1, 125218, '\p{Is_Changes_When_Casefolded=f}', "");
+    Expect(0, 125218, '\p{^Is_Changes_When_Casefolded=f}', "");
+    Expect(0, 125218, '\P{Is_Changes_When_Casefolded=f}', "");
+    Expect(1, 125218, '\P{^Is_Changes_When_Casefolded=f}', "");
+    Expect(0, 125217, '\p{Is_Changes_When_Casefolded=f}', "");
+    Expect(1, 125217, '\p{^Is_Changes_When_Casefolded=f}', "");
+    Expect(1, 125217, '\P{Is_Changes_When_Casefolded=f}', "");
+    Expect(0, 125217, '\P{^Is_Changes_When_Casefolded=f}', "");
+    Expect(1, 125218, '\p{Is_Changes_When_Casefolded=_f}', "");
+    Expect(0, 125218, '\p{^Is_Changes_When_Casefolded=_f}', "");
+    Expect(0, 125218, '\P{Is_Changes_When_Casefolded=_f}', "");
+    Expect(1, 125218, '\P{^Is_Changes_When_Casefolded=_f}', "");
+    Expect(0, 125217, '\p{Is_Changes_When_Casefolded=_f}', "");
+    Expect(1, 125217, '\p{^Is_Changes_When_Casefolded=_f}', "");
+    Expect(1, 125217, '\P{Is_Changes_When_Casefolded=_f}', "");
+    Expect(0, 125217, '\P{^Is_Changes_When_Casefolded=_f}', "");
+    Error('\p{Is_CWCF=	false:=}');
+    Error('\P{Is_CWCF=	false:=}');
     Expect(1, 125218, '\p{Is_CWCF=false}', "");
     Expect(0, 125218, '\p{^Is_CWCF=false}', "");
     Expect(0, 125218, '\P{Is_CWCF=false}', "");
@@ -34123,16 +34691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125217, '\p{^Is_CWCF=false}', "");
     Expect(1, 125217, '\P{Is_CWCF=false}', "");
     Expect(0, 125217, '\P{^Is_CWCF=false}', "");
-    Expect(1, 125218, '\p{Is_CWCF=-_False}', "");
-    Expect(0, 125218, '\p{^Is_CWCF=-_False}', "");
-    Expect(0, 125218, '\P{Is_CWCF=-_False}', "");
-    Expect(1, 125218, '\P{^Is_CWCF=-_False}', "");
-    Expect(0, 125217, '\p{Is_CWCF=-_False}', "");
-    Expect(1, 125217, '\p{^Is_CWCF=-_False}', "");
-    Expect(1, 125217, '\P{Is_CWCF=-_False}', "");
-    Expect(0, 125217, '\P{^Is_CWCF=-_False}', "");
-    Error('\p{Changes_When_Casefolded=:=	-Yes}');
-    Error('\P{Changes_When_Casefolded=:=	-Yes}');
+    Expect(1, 125218, '\p{Is_CWCF= _false}', "");
+    Expect(0, 125218, '\p{^Is_CWCF= _false}', "");
+    Expect(0, 125218, '\P{Is_CWCF= _false}', "");
+    Expect(1, 125218, '\P{^Is_CWCF= _false}', "");
+    Expect(0, 125217, '\p{Is_CWCF= _false}', "");
+    Expect(1, 125217, '\p{^Is_CWCF= _false}', "");
+    Expect(1, 125217, '\P{Is_CWCF= _false}', "");
+    Expect(0, 125217, '\P{^Is_CWCF= _false}', "");
+    Error('\p{Changes_When_Casefolded= YES/a/}');
+    Error('\P{Changes_When_Casefolded= YES/a/}');
     Expect(1, 125217, '\p{Changes_When_Casefolded=:\AYes\z:}', "");;
     Expect(0, 125218, '\p{Changes_When_Casefolded=:\AYes\z:}', "");;
     Expect(1, 125217, '\p{Changes_When_Casefolded=yes}', "");
@@ -34145,16 +34713,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125218, '\P{^Changes_When_Casefolded=yes}', "");
     Expect(1, 125217, '\p{Changes_When_Casefolded=:\Ayes\z:}', "");;
     Expect(0, 125218, '\p{Changes_When_Casefolded=:\Ayes\z:}', "");;
-    Expect(1, 125217, '\p{Changes_When_Casefolded=_yes}', "");
-    Expect(0, 125217, '\p{^Changes_When_Casefolded=_yes}', "");
-    Expect(0, 125217, '\P{Changes_When_Casefolded=_yes}', "");
-    Expect(1, 125217, '\P{^Changes_When_Casefolded=_yes}', "");
-    Expect(0, 125218, '\p{Changes_When_Casefolded=_yes}', "");
-    Expect(1, 125218, '\p{^Changes_When_Casefolded=_yes}', "");
-    Expect(1, 125218, '\P{Changes_When_Casefolded=_yes}', "");
-    Expect(0, 125218, '\P{^Changes_When_Casefolded=_yes}', "");
-    Error('\p{CWCF=:=_-y}');
-    Error('\P{CWCF=:=_-y}');
+    Expect(1, 125217, '\p{Changes_When_Casefolded=Yes}', "");
+    Expect(0, 125217, '\p{^Changes_When_Casefolded=Yes}', "");
+    Expect(0, 125217, '\P{Changes_When_Casefolded=Yes}', "");
+    Expect(1, 125217, '\P{^Changes_When_Casefolded=Yes}', "");
+    Expect(0, 125218, '\p{Changes_When_Casefolded=Yes}', "");
+    Expect(1, 125218, '\p{^Changes_When_Casefolded=Yes}', "");
+    Expect(1, 125218, '\P{Changes_When_Casefolded=Yes}', "");
+    Expect(0, 125218, '\P{^Changes_When_Casefolded=Yes}', "");
+    Error('\p{CWCF=_Y/a/}');
+    Error('\P{CWCF=_Y/a/}');
     Expect(1, 125217, '\p{CWCF=:\AY\z:}', "");;
     Expect(0, 125218, '\p{CWCF=:\AY\z:}', "");;
     Expect(1, 125217, '\p{CWCF=y}', "");
@@ -34167,14 +34735,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125218, '\P{^CWCF=y}', "");
     Expect(1, 125217, '\p{CWCF=:\Ay\z:}', "");;
     Expect(0, 125218, '\p{CWCF=:\Ay\z:}', "");;
-    Expect(1, 125217, '\p{CWCF=	-Y}', "");
-    Expect(0, 125217, '\p{^CWCF=	-Y}', "");
-    Expect(0, 125217, '\P{CWCF=	-Y}', "");
-    Expect(1, 125217, '\P{^CWCF=	-Y}', "");
-    Expect(0, 125218, '\p{CWCF=	-Y}', "");
-    Expect(1, 125218, '\p{^CWCF=	-Y}', "");
-    Expect(1, 125218, '\P{CWCF=	-Y}', "");
-    Expect(0, 125218, '\P{^CWCF=	-Y}', "");
+    Expect(1, 125217, '\p{CWCF=_Y}', "");
+    Expect(0, 125217, '\p{^CWCF=_Y}', "");
+    Expect(0, 125217, '\P{CWCF=_Y}', "");
+    Expect(1, 125217, '\P{^CWCF=_Y}', "");
+    Expect(0, 125218, '\p{CWCF=_Y}', "");
+    Expect(1, 125218, '\p{^CWCF=_Y}', "");
+    Expect(1, 125218, '\P{CWCF=_Y}', "");
+    Expect(0, 125218, '\P{^CWCF=_Y}', "");
     Error('\p{Is_Changes_When_Casefolded= _T/a/}');
     Error('\P{Is_Changes_When_Casefolded= _T/a/}');
     Expect(1, 125217, '\p{Is_Changes_When_Casefolded=t}', "");
@@ -34185,16 +34753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125218, '\p{^Is_Changes_When_Casefolded=t}', "");
     Expect(1, 125218, '\P{Is_Changes_When_Casefolded=t}', "");
     Expect(0, 125218, '\P{^Is_Changes_When_Casefolded=t}', "");
-    Expect(1, 125217, '\p{Is_Changes_When_Casefolded=_t}', "");
-    Expect(0, 125217, '\p{^Is_Changes_When_Casefolded=_t}', "");
-    Expect(0, 125217, '\P{Is_Changes_When_Casefolded=_t}', "");
-    Expect(1, 125217, '\P{^Is_Changes_When_Casefolded=_t}', "");
-    Expect(0, 125218, '\p{Is_Changes_When_Casefolded=_t}', "");
-    Expect(1, 125218, '\p{^Is_Changes_When_Casefolded=_t}', "");
-    Expect(1, 125218, '\P{Is_Changes_When_Casefolded=_t}', "");
-    Expect(0, 125218, '\P{^Is_Changes_When_Casefolded=_t}', "");
-    Error('\p{Is_CWCF=/a/	 True}');
-    Error('\P{Is_CWCF=/a/	 True}');
+    Expect(1, 125217, '\p{Is_Changes_When_Casefolded: T}', "");
+    Expect(0, 125217, '\p{^Is_Changes_When_Casefolded: T}', "");
+    Expect(0, 125217, '\P{Is_Changes_When_Casefolded: T}', "");
+    Expect(1, 125217, '\P{^Is_Changes_When_Casefolded: T}', "");
+    Expect(0, 125218, '\p{Is_Changes_When_Casefolded: T}', "");
+    Expect(1, 125218, '\p{^Is_Changes_When_Casefolded: T}', "");
+    Expect(1, 125218, '\P{Is_Changes_When_Casefolded: T}', "");
+    Expect(0, 125218, '\P{^Is_Changes_When_Casefolded: T}', "");
+    Error('\p{Is_CWCF=:= -True}');
+    Error('\P{Is_CWCF=:= -True}');
     Expect(1, 125217, '\p{Is_CWCF=true}', "");
     Expect(0, 125217, '\p{^Is_CWCF=true}', "");
     Expect(0, 125217, '\P{Is_CWCF=true}', "");
@@ -34203,38 +34771,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125218, '\p{^Is_CWCF=true}', "");
     Expect(1, 125218, '\P{Is_CWCF=true}', "");
     Expect(0, 125218, '\P{^Is_CWCF=true}', "");
-    Expect(1, 125217, '\p{Is_CWCF= _true}', "");
-    Expect(0, 125217, '\p{^Is_CWCF= _true}', "");
-    Expect(0, 125217, '\P{Is_CWCF= _true}', "");
-    Expect(1, 125217, '\P{^Is_CWCF= _true}', "");
-    Expect(0, 125218, '\p{Is_CWCF= _true}', "");
-    Expect(1, 125218, '\p{^Is_CWCF= _true}', "");
-    Expect(1, 125218, '\P{Is_CWCF= _true}', "");
-    Expect(0, 125218, '\P{^Is_CWCF= _true}', "");
-    Error('\p{Changes_When_Casemapped:/a/	 no}');
-    Error('\P{Changes_When_Casemapped:/a/	 no}');
+    Expect(1, 125217, '\p{Is_CWCF=-true}', "");
+    Expect(0, 125217, '\p{^Is_CWCF=-true}', "");
+    Expect(0, 125217, '\P{Is_CWCF=-true}', "");
+    Expect(1, 125217, '\P{^Is_CWCF=-true}', "");
+    Expect(0, 125218, '\p{Is_CWCF=-true}', "");
+    Expect(1, 125218, '\p{^Is_CWCF=-true}', "");
+    Expect(1, 125218, '\P{Is_CWCF=-true}', "");
+    Expect(0, 125218, '\P{^Is_CWCF=-true}', "");
+    Error('\p{Changes_When_Casemapped=_	No:=}');
+    Error('\P{Changes_When_Casemapped=_	No:=}');
     Expect(1, 125252, '\p{Changes_When_Casemapped=:\ANo\z:}', "");;
     Expect(0, 125251, '\p{Changes_When_Casemapped=:\ANo\z:}', "");;
-    Expect(1, 125252, '\p{Changes_When_Casemapped:no}', "");
-    Expect(0, 125252, '\p{^Changes_When_Casemapped:no}', "");
-    Expect(0, 125252, '\P{Changes_When_Casemapped:no}', "");
-    Expect(1, 125252, '\P{^Changes_When_Casemapped:no}', "");
-    Expect(0, 125251, '\p{Changes_When_Casemapped:no}', "");
-    Expect(1, 125251, '\p{^Changes_When_Casemapped:no}', "");
-    Expect(1, 125251, '\P{Changes_When_Casemapped:no}', "");
-    Expect(0, 125251, '\P{^Changes_When_Casemapped:no}', "");
+    Expect(1, 125252, '\p{Changes_When_Casemapped=no}', "");
+    Expect(0, 125252, '\p{^Changes_When_Casemapped=no}', "");
+    Expect(0, 125252, '\P{Changes_When_Casemapped=no}', "");
+    Expect(1, 125252, '\P{^Changes_When_Casemapped=no}', "");
+    Expect(0, 125251, '\p{Changes_When_Casemapped=no}', "");
+    Expect(1, 125251, '\p{^Changes_When_Casemapped=no}', "");
+    Expect(1, 125251, '\P{Changes_When_Casemapped=no}', "");
+    Expect(0, 125251, '\P{^Changes_When_Casemapped=no}', "");
     Expect(1, 125252, '\p{Changes_When_Casemapped=:\Ano\z:}', "");;
     Expect(0, 125251, '\p{Changes_When_Casemapped=:\Ano\z:}', "");;
-    Expect(1, 125252, '\p{Changes_When_Casemapped=	_No}', "");
-    Expect(0, 125252, '\p{^Changes_When_Casemapped=	_No}', "");
-    Expect(0, 125252, '\P{Changes_When_Casemapped=	_No}', "");
-    Expect(1, 125252, '\P{^Changes_When_Casemapped=	_No}', "");
-    Expect(0, 125251, '\p{Changes_When_Casemapped=	_No}', "");
-    Expect(1, 125251, '\p{^Changes_When_Casemapped=	_No}', "");
-    Expect(1, 125251, '\P{Changes_When_Casemapped=	_No}', "");
-    Expect(0, 125251, '\P{^Changes_When_Casemapped=	_No}', "");
-    Error('\p{CWCM=-_n/a/}');
-    Error('\P{CWCM=-_n/a/}');
+    Expect(1, 125252, '\p{Changes_When_Casemapped=-	No}', "");
+    Expect(0, 125252, '\p{^Changes_When_Casemapped=-	No}', "");
+    Expect(0, 125252, '\P{Changes_When_Casemapped=-	No}', "");
+    Expect(1, 125252, '\P{^Changes_When_Casemapped=-	No}', "");
+    Expect(0, 125251, '\p{Changes_When_Casemapped=-	No}', "");
+    Expect(1, 125251, '\p{^Changes_When_Casemapped=-	No}', "");
+    Expect(1, 125251, '\P{Changes_When_Casemapped=-	No}', "");
+    Expect(0, 125251, '\P{^Changes_When_Casemapped=-	No}', "");
+    Error('\p{CWCM=/a/ -n}');
+    Error('\P{CWCM=/a/ -n}');
     Expect(1, 125252, '\p{CWCM=:\AN\z:}', "");;
     Expect(0, 125251, '\p{CWCM=:\AN\z:}', "");;
     Expect(1, 125252, '\p{CWCM=n}', "");
@@ -34247,16 +34815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125251, '\P{^CWCM=n}', "");
     Expect(1, 125252, '\p{CWCM=:\An\z:}', "");;
     Expect(0, 125251, '\p{CWCM=:\An\z:}', "");;
-    Expect(1, 125252, '\p{CWCM=-N}', "");
-    Expect(0, 125252, '\p{^CWCM=-N}', "");
-    Expect(0, 125252, '\P{CWCM=-N}', "");
-    Expect(1, 125252, '\P{^CWCM=-N}', "");
-    Expect(0, 125251, '\p{CWCM=-N}', "");
-    Expect(1, 125251, '\p{^CWCM=-N}', "");
-    Expect(1, 125251, '\P{CWCM=-N}', "");
-    Expect(0, 125251, '\P{^CWCM=-N}', "");
-    Error('\p{Is_Changes_When_Casemapped=:=_-F}');
-    Error('\P{Is_Changes_When_Casemapped=:=_-F}');
+    Expect(1, 125252, '\p{CWCM=__N}', "");
+    Expect(0, 125252, '\p{^CWCM=__N}', "");
+    Expect(0, 125252, '\P{CWCM=__N}', "");
+    Expect(1, 125252, '\P{^CWCM=__N}', "");
+    Expect(0, 125251, '\p{CWCM=__N}', "");
+    Expect(1, 125251, '\p{^CWCM=__N}', "");
+    Expect(1, 125251, '\P{CWCM=__N}', "");
+    Expect(0, 125251, '\P{^CWCM=__N}', "");
+    Error('\p{Is_Changes_When_Casemapped=_-f:=}');
+    Error('\P{Is_Changes_When_Casemapped=_-f:=}');
     Expect(1, 125252, '\p{Is_Changes_When_Casemapped=f}', "");
     Expect(0, 125252, '\p{^Is_Changes_When_Casemapped=f}', "");
     Expect(0, 125252, '\P{Is_Changes_When_Casemapped=f}', "");
@@ -34265,34 +34833,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125251, '\p{^Is_Changes_When_Casemapped=f}', "");
     Expect(1, 125251, '\P{Is_Changes_When_Casemapped=f}', "");
     Expect(0, 125251, '\P{^Is_Changes_When_Casemapped=f}', "");
-    Expect(1, 125252, '\p{Is_Changes_When_Casemapped=-	F}', "");
-    Expect(0, 125252, '\p{^Is_Changes_When_Casemapped=-	F}', "");
-    Expect(0, 125252, '\P{Is_Changes_When_Casemapped=-	F}', "");
-    Expect(1, 125252, '\P{^Is_Changes_When_Casemapped=-	F}', "");
-    Expect(0, 125251, '\p{Is_Changes_When_Casemapped=-	F}', "");
-    Expect(1, 125251, '\p{^Is_Changes_When_Casemapped=-	F}', "");
-    Expect(1, 125251, '\P{Is_Changes_When_Casemapped=-	F}', "");
-    Expect(0, 125251, '\P{^Is_Changes_When_Casemapped=-	F}', "");
-    Error('\p{Is_CWCM=/a/	-False}');
-    Error('\P{Is_CWCM=/a/	-False}');
-    Expect(1, 125252, '\p{Is_CWCM=false}', "");
-    Expect(0, 125252, '\p{^Is_CWCM=false}', "");
-    Expect(0, 125252, '\P{Is_CWCM=false}', "");
-    Expect(1, 125252, '\P{^Is_CWCM=false}', "");
-    Expect(0, 125251, '\p{Is_CWCM=false}', "");
-    Expect(1, 125251, '\p{^Is_CWCM=false}', "");
-    Expect(1, 125251, '\P{Is_CWCM=false}', "");
-    Expect(0, 125251, '\P{^Is_CWCM=false}', "");
-    Expect(1, 125252, '\p{Is_CWCM=	False}', "");
-    Expect(0, 125252, '\p{^Is_CWCM=	False}', "");
-    Expect(0, 125252, '\P{Is_CWCM=	False}', "");
-    Expect(1, 125252, '\P{^Is_CWCM=	False}', "");
-    Expect(0, 125251, '\p{Is_CWCM=	False}', "");
-    Expect(1, 125251, '\p{^Is_CWCM=	False}', "");
-    Expect(1, 125251, '\P{Is_CWCM=	False}', "");
-    Expect(0, 125251, '\P{^Is_CWCM=	False}', "");
-    Error('\p{Changes_When_Casemapped=_YES:=}');
-    Error('\P{Changes_When_Casemapped=_YES:=}');
+    Expect(1, 125252, '\p{Is_Changes_When_Casemapped=-F}', "");
+    Expect(0, 125252, '\p{^Is_Changes_When_Casemapped=-F}', "");
+    Expect(0, 125252, '\P{Is_Changes_When_Casemapped=-F}', "");
+    Expect(1, 125252, '\P{^Is_Changes_When_Casemapped=-F}', "");
+    Expect(0, 125251, '\p{Is_Changes_When_Casemapped=-F}', "");
+    Expect(1, 125251, '\p{^Is_Changes_When_Casemapped=-F}', "");
+    Expect(1, 125251, '\P{Is_Changes_When_Casemapped=-F}', "");
+    Expect(0, 125251, '\P{^Is_Changes_When_Casemapped=-F}', "");
+    Error('\p{Is_CWCM=- False:=}');
+    Error('\P{Is_CWCM=- False:=}');
+    Expect(1, 125252, '\p{Is_CWCM:   false}', "");
+    Expect(0, 125252, '\p{^Is_CWCM:   false}', "");
+    Expect(0, 125252, '\P{Is_CWCM:   false}', "");
+    Expect(1, 125252, '\P{^Is_CWCM:   false}', "");
+    Expect(0, 125251, '\p{Is_CWCM:   false}', "");
+    Expect(1, 125251, '\p{^Is_CWCM:   false}', "");
+    Expect(1, 125251, '\P{Is_CWCM:   false}', "");
+    Expect(0, 125251, '\P{^Is_CWCM:   false}', "");
+    Expect(1, 125252, '\p{Is_CWCM=	 False}', "");
+    Expect(0, 125252, '\p{^Is_CWCM=	 False}', "");
+    Expect(0, 125252, '\P{Is_CWCM=	 False}', "");
+    Expect(1, 125252, '\P{^Is_CWCM=	 False}', "");
+    Expect(0, 125251, '\p{Is_CWCM=	 False}', "");
+    Expect(1, 125251, '\p{^Is_CWCM=	 False}', "");
+    Expect(1, 125251, '\P{Is_CWCM=	 False}', "");
+    Expect(0, 125251, '\P{^Is_CWCM=	 False}', "");
+    Error('\p{Changes_When_Casemapped=/a/-_Yes}');
+    Error('\P{Changes_When_Casemapped=/a/-_Yes}');
     Expect(1, 125251, '\p{Changes_When_Casemapped=:\AYes\z:}', "");;
     Expect(0, 125252, '\p{Changes_When_Casemapped=:\AYes\z:}', "");;
     Expect(1, 125251, '\p{Changes_When_Casemapped=yes}', "");
@@ -34305,16 +34873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^Changes_When_Casemapped=yes}', "");
     Expect(1, 125251, '\p{Changes_When_Casemapped=:\Ayes\z:}', "");;
     Expect(0, 125252, '\p{Changes_When_Casemapped=:\Ayes\z:}', "");;
-    Expect(1, 125251, '\p{Changes_When_Casemapped=	 yes}', "");
-    Expect(0, 125251, '\p{^Changes_When_Casemapped=	 yes}', "");
-    Expect(0, 125251, '\P{Changes_When_Casemapped=	 yes}', "");
-    Expect(1, 125251, '\P{^Changes_When_Casemapped=	 yes}', "");
-    Expect(0, 125252, '\p{Changes_When_Casemapped=	 yes}', "");
-    Expect(1, 125252, '\p{^Changes_When_Casemapped=	 yes}', "");
-    Expect(1, 125252, '\P{Changes_When_Casemapped=	 yes}', "");
-    Expect(0, 125252, '\P{^Changes_When_Casemapped=	 yes}', "");
-    Error('\p{CWCM=_ Y:=}');
-    Error('\P{CWCM=_ Y:=}');
+    Expect(1, 125251, '\p{Changes_When_Casemapped=-Yes}', "");
+    Expect(0, 125251, '\p{^Changes_When_Casemapped=-Yes}', "");
+    Expect(0, 125251, '\P{Changes_When_Casemapped=-Yes}', "");
+    Expect(1, 125251, '\P{^Changes_When_Casemapped=-Yes}', "");
+    Expect(0, 125252, '\p{Changes_When_Casemapped=-Yes}', "");
+    Expect(1, 125252, '\p{^Changes_When_Casemapped=-Yes}', "");
+    Expect(1, 125252, '\P{Changes_When_Casemapped=-Yes}', "");
+    Expect(0, 125252, '\P{^Changes_When_Casemapped=-Yes}', "");
+    Error('\p{CWCM:    /a/y}');
+    Error('\P{CWCM:    /a/y}');
     Expect(1, 125251, '\p{CWCM=:\AY\z:}', "");;
     Expect(0, 125252, '\p{CWCM=:\AY\z:}', "");;
     Expect(1, 125251, '\p{CWCM=y}', "");
@@ -34327,16 +34895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^CWCM=y}', "");
     Expect(1, 125251, '\p{CWCM=:\Ay\z:}', "");;
     Expect(0, 125252, '\p{CWCM=:\Ay\z:}', "");;
-    Expect(1, 125251, '\p{CWCM=--Y}', "");
-    Expect(0, 125251, '\p{^CWCM=--Y}', "");
-    Expect(0, 125251, '\P{CWCM=--Y}', "");
-    Expect(1, 125251, '\P{^CWCM=--Y}', "");
-    Expect(0, 125252, '\p{CWCM=--Y}', "");
-    Expect(1, 125252, '\p{^CWCM=--Y}', "");
-    Expect(1, 125252, '\P{CWCM=--Y}', "");
-    Expect(0, 125252, '\P{^CWCM=--Y}', "");
-    Error('\p{Is_Changes_When_Casemapped: /a/_T}');
-    Error('\P{Is_Changes_When_Casemapped: /a/_T}');
+    Expect(1, 125251, '\p{CWCM=-Y}', "");
+    Expect(0, 125251, '\p{^CWCM=-Y}', "");
+    Expect(0, 125251, '\P{CWCM=-Y}', "");
+    Expect(1, 125251, '\P{^CWCM=-Y}', "");
+    Expect(0, 125252, '\p{CWCM=-Y}', "");
+    Expect(1, 125252, '\p{^CWCM=-Y}', "");
+    Expect(1, 125252, '\P{CWCM=-Y}', "");
+    Expect(0, 125252, '\P{^CWCM=-Y}', "");
+    Error('\p{Is_Changes_When_Casemapped=		T/a/}');
+    Error('\P{Is_Changes_When_Casemapped=		T/a/}');
     Expect(1, 125251, '\p{Is_Changes_When_Casemapped=t}', "");
     Expect(0, 125251, '\p{^Is_Changes_When_Casemapped=t}', "");
     Expect(0, 125251, '\P{Is_Changes_When_Casemapped=t}', "");
@@ -34345,16 +34913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_Changes_When_Casemapped=t}', "");
     Expect(1, 125252, '\P{Is_Changes_When_Casemapped=t}', "");
     Expect(0, 125252, '\P{^Is_Changes_When_Casemapped=t}', "");
-    Expect(1, 125251, '\p{Is_Changes_When_Casemapped= T}', "");
-    Expect(0, 125251, '\p{^Is_Changes_When_Casemapped= T}', "");
-    Expect(0, 125251, '\P{Is_Changes_When_Casemapped= T}', "");
-    Expect(1, 125251, '\P{^Is_Changes_When_Casemapped= T}', "");
-    Expect(0, 125252, '\p{Is_Changes_When_Casemapped= T}', "");
-    Expect(1, 125252, '\p{^Is_Changes_When_Casemapped= T}', "");
-    Expect(1, 125252, '\P{Is_Changes_When_Casemapped= T}', "");
-    Expect(0, 125252, '\P{^Is_Changes_When_Casemapped= T}', "");
-    Error('\p{Is_CWCM=-:=true}');
-    Error('\P{Is_CWCM=-:=true}');
+    Expect(1, 125251, '\p{Is_Changes_When_Casemapped=  T}', "");
+    Expect(0, 125251, '\p{^Is_Changes_When_Casemapped=  T}', "");
+    Expect(0, 125251, '\P{Is_Changes_When_Casemapped=  T}', "");
+    Expect(1, 125251, '\P{^Is_Changes_When_Casemapped=  T}', "");
+    Expect(0, 125252, '\p{Is_Changes_When_Casemapped=  T}', "");
+    Expect(1, 125252, '\p{^Is_Changes_When_Casemapped=  T}', "");
+    Expect(1, 125252, '\P{Is_Changes_When_Casemapped=  T}', "");
+    Expect(0, 125252, '\P{^Is_Changes_When_Casemapped=  T}', "");
+    Error('\p{Is_CWCM=		True:=}');
+    Error('\P{Is_CWCM=		True:=}');
     Expect(1, 125251, '\p{Is_CWCM=true}', "");
     Expect(0, 125251, '\p{^Is_CWCM=true}', "");
     Expect(0, 125251, '\P{Is_CWCM=true}', "");
@@ -34363,16 +34931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_CWCM=true}', "");
     Expect(1, 125252, '\P{Is_CWCM=true}', "");
     Expect(0, 125252, '\P{^Is_CWCM=true}', "");
-    Expect(1, 125251, '\p{Is_CWCM=_ TRUE}', "");
-    Expect(0, 125251, '\p{^Is_CWCM=_ TRUE}', "");
-    Expect(0, 125251, '\P{Is_CWCM=_ TRUE}', "");
-    Expect(1, 125251, '\P{^Is_CWCM=_ TRUE}', "");
-    Expect(0, 125252, '\p{Is_CWCM=_ TRUE}', "");
-    Expect(1, 125252, '\p{^Is_CWCM=_ TRUE}', "");
-    Expect(1, 125252, '\P{Is_CWCM=_ TRUE}', "");
-    Expect(0, 125252, '\P{^Is_CWCM=_ TRUE}', "");
-    Error('\p{Changes_When_NFKC_Casefolded=_No/a/}');
-    Error('\P{Changes_When_NFKC_Casefolded=_No/a/}');
+    Expect(1, 125251, '\p{Is_CWCM=True}', "");
+    Expect(0, 125251, '\p{^Is_CWCM=True}', "");
+    Expect(0, 125251, '\P{Is_CWCM=True}', "");
+    Expect(1, 125251, '\P{^Is_CWCM=True}', "");
+    Expect(0, 125252, '\p{Is_CWCM=True}', "");
+    Expect(1, 125252, '\p{^Is_CWCM=True}', "");
+    Expect(1, 125252, '\P{Is_CWCM=True}', "");
+    Expect(0, 125252, '\P{^Is_CWCM=True}', "");
+    Error('\p{Changes_When_NFKC_Casefolded= _No:=}');
+    Error('\P{Changes_When_NFKC_Casefolded= _No:=}');
     Expect(1, 921600, '\p{Changes_When_NFKC_Casefolded=:\ANo\z:}', "");;
     Expect(0, 921599, '\p{Changes_When_NFKC_Casefolded=:\ANo\z:}', "");;
     Expect(1, 921600, '\p{Changes_When_NFKC_Casefolded=no}', "");
@@ -34385,16 +34953,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 921599, '\P{^Changes_When_NFKC_Casefolded=no}', "");
     Expect(1, 921600, '\p{Changes_When_NFKC_Casefolded=:\Ano\z:}', "");;
     Expect(0, 921599, '\p{Changes_When_NFKC_Casefolded=:\Ano\z:}', "");;
-    Expect(1, 921600, '\p{Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(0, 921600, '\p{^Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(0, 921600, '\P{Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(1, 921600, '\P{^Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(0, 921599, '\p{Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(1, 921599, '\p{^Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(1, 921599, '\P{Changes_When_NFKC_Casefolded=_-no}', "");
-    Expect(0, 921599, '\P{^Changes_When_NFKC_Casefolded=_-no}', "");
-    Error('\p{CWKCF=_:=N}');
-    Error('\P{CWKCF=_:=N}');
+    Expect(1, 921600, '\p{Changes_When_NFKC_Casefolded= No}', "");
+    Expect(0, 921600, '\p{^Changes_When_NFKC_Casefolded= No}', "");
+    Expect(0, 921600, '\P{Changes_When_NFKC_Casefolded= No}', "");
+    Expect(1, 921600, '\P{^Changes_When_NFKC_Casefolded= No}', "");
+    Expect(0, 921599, '\p{Changes_When_NFKC_Casefolded= No}', "");
+    Expect(1, 921599, '\p{^Changes_When_NFKC_Casefolded= No}', "");
+    Expect(1, 921599, '\P{Changes_When_NFKC_Casefolded= No}', "");
+    Expect(0, 921599, '\P{^Changes_When_NFKC_Casefolded= No}', "");
+    Error('\p{CWKCF=	_N/a/}');
+    Error('\P{CWKCF=	_N/a/}');
     Expect(1, 921600, '\p{CWKCF=:\AN\z:}', "");;
     Expect(0, 921599, '\p{CWKCF=:\AN\z:}', "");;
     Expect(1, 921600, '\p{CWKCF=n}', "");
@@ -34407,16 +34975,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 921599, '\P{^CWKCF=n}', "");
     Expect(1, 921600, '\p{CWKCF=:\An\z:}', "");;
     Expect(0, 921599, '\p{CWKCF=:\An\z:}', "");;
-    Expect(1, 921600, '\p{CWKCF=-n}', "");
-    Expect(0, 921600, '\p{^CWKCF=-n}', "");
-    Expect(0, 921600, '\P{CWKCF=-n}', "");
-    Expect(1, 921600, '\P{^CWKCF=-n}', "");
-    Expect(0, 921599, '\p{CWKCF=-n}', "");
-    Expect(1, 921599, '\p{^CWKCF=-n}', "");
-    Expect(1, 921599, '\P{CWKCF=-n}', "");
-    Expect(0, 921599, '\P{^CWKCF=-n}', "");
-    Error('\p{Is_Changes_When_NFKC_Casefolded=/a/F}');
-    Error('\P{Is_Changes_When_NFKC_Casefolded=/a/F}');
+    Expect(1, 921600, '\p{CWKCF=-	N}', "");
+    Expect(0, 921600, '\p{^CWKCF=-	N}', "");
+    Expect(0, 921600, '\P{CWKCF=-	N}', "");
+    Expect(1, 921600, '\P{^CWKCF=-	N}', "");
+    Expect(0, 921599, '\p{CWKCF=-	N}', "");
+    Expect(1, 921599, '\p{^CWKCF=-	N}', "");
+    Expect(1, 921599, '\P{CWKCF=-	N}', "");
+    Expect(0, 921599, '\P{^CWKCF=-	N}', "");
+    Error('\p{Is_Changes_When_NFKC_Casefolded= _F/a/}');
+    Error('\P{Is_Changes_When_NFKC_Casefolded= _F/a/}');
     Expect(1, 921600, '\p{Is_Changes_When_NFKC_Casefolded=f}', "");
     Expect(0, 921600, '\p{^Is_Changes_When_NFKC_Casefolded=f}', "");
     Expect(0, 921600, '\P{Is_Changes_When_NFKC_Casefolded=f}', "");
@@ -34425,78 +34993,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921599, '\p{^Is_Changes_When_NFKC_Casefolded=f}', "");
     Expect(1, 921599, '\P{Is_Changes_When_NFKC_Casefolded=f}', "");
     Expect(0, 921599, '\P{^Is_Changes_When_NFKC_Casefolded=f}', "");
-    Expect(1, 921600, '\p{Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(0, 921600, '\p{^Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(0, 921600, '\P{Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(1, 921600, '\P{^Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(0, 921599, '\p{Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(1, 921599, '\p{^Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(1, 921599, '\P{Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Expect(0, 921599, '\P{^Is_Changes_When_NFKC_Casefolded= 	F}', "");
-    Error('\p{Is_CWKCF=/a/_false}');
-    Error('\P{Is_CWKCF=/a/_false}');
-    Expect(1, 921600, '\p{Is_CWKCF=false}', "");
-    Expect(0, 921600, '\p{^Is_CWKCF=false}', "");
-    Expect(0, 921600, '\P{Is_CWKCF=false}', "");
-    Expect(1, 921600, '\P{^Is_CWKCF=false}', "");
-    Expect(0, 921599, '\p{Is_CWKCF=false}', "");
-    Expect(1, 921599, '\p{^Is_CWKCF=false}', "");
-    Expect(1, 921599, '\P{Is_CWKCF=false}', "");
-    Expect(0, 921599, '\P{^Is_CWKCF=false}', "");
-    Expect(1, 921600, '\p{Is_CWKCF=__False}', "");
-    Expect(0, 921600, '\p{^Is_CWKCF=__False}', "");
-    Expect(0, 921600, '\P{Is_CWKCF=__False}', "");
-    Expect(1, 921600, '\P{^Is_CWKCF=__False}', "");
-    Expect(0, 921599, '\p{Is_CWKCF=__False}', "");
-    Expect(1, 921599, '\p{^Is_CWKCF=__False}', "");
-    Expect(1, 921599, '\P{Is_CWKCF=__False}', "");
-    Expect(0, 921599, '\P{^Is_CWKCF=__False}', "");
-    Error('\p{Changes_When_NFKC_Casefolded:	:=Yes}');
-    Error('\P{Changes_When_NFKC_Casefolded:	:=Yes}');
+    Expect(1, 921600, '\p{Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(0, 921600, '\p{^Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(0, 921600, '\P{Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(1, 921600, '\P{^Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(0, 921599, '\p{Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(1, 921599, '\p{^Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(1, 921599, '\P{Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Expect(0, 921599, '\P{^Is_Changes_When_NFKC_Casefolded=	F}', "");
+    Error('\p{Is_CWKCF=_:=false}');
+    Error('\P{Is_CWKCF=_:=false}');
+    Expect(1, 921600, '\p{Is_CWKCF:false}', "");
+    Expect(0, 921600, '\p{^Is_CWKCF:false}', "");
+    Expect(0, 921600, '\P{Is_CWKCF:false}', "");
+    Expect(1, 921600, '\P{^Is_CWKCF:false}', "");
+    Expect(0, 921599, '\p{Is_CWKCF:false}', "");
+    Expect(1, 921599, '\p{^Is_CWKCF:false}', "");
+    Expect(1, 921599, '\P{Is_CWKCF:false}', "");
+    Expect(0, 921599, '\P{^Is_CWKCF:false}', "");
+    Expect(1, 921600, '\p{Is_CWKCF=-False}', "");
+    Expect(0, 921600, '\p{^Is_CWKCF=-False}', "");
+    Expect(0, 921600, '\P{Is_CWKCF=-False}', "");
+    Expect(1, 921600, '\P{^Is_CWKCF=-False}', "");
+    Expect(0, 921599, '\p{Is_CWKCF=-False}', "");
+    Expect(1, 921599, '\p{^Is_CWKCF=-False}', "");
+    Expect(1, 921599, '\P{Is_CWKCF=-False}', "");
+    Expect(0, 921599, '\P{^Is_CWKCF=-False}', "");
+    Error('\p{Changes_When_NFKC_Casefolded=:=	-YES}');
+    Error('\P{Changes_When_NFKC_Casefolded=:=	-YES}');
     Expect(1, 921599, '\p{Changes_When_NFKC_Casefolded=:\AYes\z:}', "");;
     Expect(0, 921600, '\p{Changes_When_NFKC_Casefolded=:\AYes\z:}', "");;
-    Expect(1, 921599, '\p{Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(0, 921599, '\p{^Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(0, 921599, '\P{Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(1, 921599, '\P{^Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(0, 921600, '\p{Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(1, 921600, '\p{^Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(1, 921600, '\P{Changes_When_NFKC_Casefolded=yes}', "");
-    Expect(0, 921600, '\P{^Changes_When_NFKC_Casefolded=yes}', "");
+    Expect(1, 921599, '\p{Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(0, 921599, '\p{^Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(0, 921599, '\P{Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(1, 921599, '\P{^Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(0, 921600, '\p{Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(1, 921600, '\p{^Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(1, 921600, '\P{Changes_When_NFKC_Casefolded:yes}', "");
+    Expect(0, 921600, '\P{^Changes_When_NFKC_Casefolded:yes}', "");
     Expect(1, 921599, '\p{Changes_When_NFKC_Casefolded=:\Ayes\z:}', "");;
     Expect(0, 921600, '\p{Changes_When_NFKC_Casefolded=:\Ayes\z:}', "");;
-    Expect(1, 921599, '\p{Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(0, 921599, '\p{^Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(0, 921599, '\P{Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(1, 921599, '\P{^Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(0, 921600, '\p{Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(1, 921600, '\p{^Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(1, 921600, '\P{Changes_When_NFKC_Casefolded=-YES}', "");
-    Expect(0, 921600, '\P{^Changes_When_NFKC_Casefolded=-YES}', "");
-    Error('\p{CWKCF=_-Y:=}');
-    Error('\P{CWKCF=_-Y:=}');
+    Expect(1, 921599, '\p{Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(0, 921599, '\p{^Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(0, 921599, '\P{Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(1, 921599, '\P{^Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(0, 921600, '\p{Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(1, 921600, '\p{^Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(1, 921600, '\P{Changes_When_NFKC_Casefolded=_YES}', "");
+    Expect(0, 921600, '\P{^Changes_When_NFKC_Casefolded=_YES}', "");
+    Error('\p{CWKCF:		y/a/}');
+    Error('\P{CWKCF:		y/a/}');
     Expect(1, 921599, '\p{CWKCF=:\AY\z:}', "");;
     Expect(0, 921600, '\p{CWKCF=:\AY\z:}', "");;
-    Expect(1, 921599, '\p{CWKCF=y}', "");
-    Expect(0, 921599, '\p{^CWKCF=y}', "");
-    Expect(0, 921599, '\P{CWKCF=y}', "");
-    Expect(1, 921599, '\P{^CWKCF=y}', "");
-    Expect(0, 921600, '\p{CWKCF=y}', "");
-    Expect(1, 921600, '\p{^CWKCF=y}', "");
-    Expect(1, 921600, '\P{CWKCF=y}', "");
-    Expect(0, 921600, '\P{^CWKCF=y}', "");
+    Expect(1, 921599, '\p{CWKCF:   y}', "");
+    Expect(0, 921599, '\p{^CWKCF:   y}', "");
+    Expect(0, 921599, '\P{CWKCF:   y}', "");
+    Expect(1, 921599, '\P{^CWKCF:   y}', "");
+    Expect(0, 921600, '\p{CWKCF:   y}', "");
+    Expect(1, 921600, '\p{^CWKCF:   y}', "");
+    Expect(1, 921600, '\P{CWKCF:   y}', "");
+    Expect(0, 921600, '\P{^CWKCF:   y}', "");
     Expect(1, 921599, '\p{CWKCF=:\Ay\z:}', "");;
     Expect(0, 921600, '\p{CWKCF=:\Ay\z:}', "");;
-    Expect(1, 921599, '\p{CWKCF=-_Y}', "");
-    Expect(0, 921599, '\p{^CWKCF=-_Y}', "");
-    Expect(0, 921599, '\P{CWKCF=-_Y}', "");
-    Expect(1, 921599, '\P{^CWKCF=-_Y}', "");
-    Expect(0, 921600, '\p{CWKCF=-_Y}', "");
-    Expect(1, 921600, '\p{^CWKCF=-_Y}', "");
-    Expect(1, 921600, '\P{CWKCF=-_Y}', "");
-    Expect(0, 921600, '\P{^CWKCF=-_Y}', "");
-    Error('\p{Is_Changes_When_NFKC_Casefolded=:=_ T}');
-    Error('\P{Is_Changes_When_NFKC_Casefolded=:=_ T}');
+    Expect(1, 921599, '\p{CWKCF=-Y}', "");
+    Expect(0, 921599, '\p{^CWKCF=-Y}', "");
+    Expect(0, 921599, '\P{CWKCF=-Y}', "");
+    Expect(1, 921599, '\P{^CWKCF=-Y}', "");
+    Expect(0, 921600, '\p{CWKCF=-Y}', "");
+    Expect(1, 921600, '\p{^CWKCF=-Y}', "");
+    Expect(1, 921600, '\P{CWKCF=-Y}', "");
+    Expect(0, 921600, '\P{^CWKCF=-Y}', "");
+    Error('\p{Is_Changes_When_NFKC_Casefolded=_T/a/}');
+    Error('\P{Is_Changes_When_NFKC_Casefolded=_T/a/}');
     Expect(1, 921599, '\p{Is_Changes_When_NFKC_Casefolded=t}', "");
     Expect(0, 921599, '\p{^Is_Changes_When_NFKC_Casefolded=t}', "");
     Expect(0, 921599, '\P{Is_Changes_When_NFKC_Casefolded=t}', "");
@@ -34505,16 +35073,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921600, '\p{^Is_Changes_When_NFKC_Casefolded=t}', "");
     Expect(1, 921600, '\P{Is_Changes_When_NFKC_Casefolded=t}', "");
     Expect(0, 921600, '\P{^Is_Changes_When_NFKC_Casefolded=t}', "");
-    Expect(1, 921599, '\p{Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(0, 921599, '\p{^Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(0, 921599, '\P{Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(1, 921599, '\P{^Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(0, 921600, '\p{Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(1, 921600, '\p{^Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(1, 921600, '\P{Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Expect(0, 921600, '\P{^Is_Changes_When_NFKC_Casefolded=-_T}', "");
-    Error('\p{Is_CWKCF=		TRUE/a/}');
-    Error('\P{Is_CWKCF=		TRUE/a/}');
+    Expect(1, 921599, '\p{Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(0, 921599, '\p{^Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(0, 921599, '\P{Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(1, 921599, '\P{^Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(0, 921600, '\p{Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(1, 921600, '\p{^Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(1, 921600, '\P{Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Expect(0, 921600, '\P{^Is_Changes_When_NFKC_Casefolded=_ T}', "");
+    Error('\p{Is_CWKCF=/a/true}');
+    Error('\P{Is_CWKCF=/a/true}');
     Expect(1, 921599, '\p{Is_CWKCF=true}', "");
     Expect(0, 921599, '\p{^Is_CWKCF=true}', "");
     Expect(0, 921599, '\P{Is_CWKCF=true}', "");
@@ -34523,16 +35091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921600, '\p{^Is_CWKCF=true}', "");
     Expect(1, 921600, '\P{Is_CWKCF=true}', "");
     Expect(0, 921600, '\P{^Is_CWKCF=true}', "");
-    Expect(1, 921599, '\p{Is_CWKCF=		true}', "");
-    Expect(0, 921599, '\p{^Is_CWKCF=		true}', "");
-    Expect(0, 921599, '\P{Is_CWKCF=		true}', "");
-    Expect(1, 921599, '\P{^Is_CWKCF=		true}', "");
-    Expect(0, 921600, '\p{Is_CWKCF=		true}', "");
-    Expect(1, 921600, '\p{^Is_CWKCF=		true}', "");
-    Expect(1, 921600, '\P{Is_CWKCF=		true}', "");
-    Expect(0, 921600, '\P{^Is_CWKCF=		true}', "");
-    Error('\p{Changes_When_Lowercased=-:=no}');
-    Error('\P{Changes_When_Lowercased=-:=no}');
+    Expect(1, 921599, '\p{Is_CWKCF=-True}', "");
+    Expect(0, 921599, '\p{^Is_CWKCF=-True}', "");
+    Expect(0, 921599, '\P{Is_CWKCF=-True}', "");
+    Expect(1, 921599, '\P{^Is_CWKCF=-True}', "");
+    Expect(0, 921600, '\p{Is_CWKCF=-True}', "");
+    Expect(1, 921600, '\p{^Is_CWKCF=-True}', "");
+    Expect(1, 921600, '\P{Is_CWKCF=-True}', "");
+    Expect(0, 921600, '\P{^Is_CWKCF=-True}', "");
+    Error('\p{Changes_When_Lowercased=_NO/a/}');
+    Error('\P{Changes_When_Lowercased=_NO/a/}');
     Expect(1, 125218, '\p{Changes_When_Lowercased=:\ANo\z:}', "");;
     Expect(0, 125217, '\p{Changes_When_Lowercased=:\ANo\z:}', "");;
     Expect(1, 125218, '\p{Changes_When_Lowercased=no}', "");
@@ -34545,16 +35113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125217, '\P{^Changes_When_Lowercased=no}', "");
     Expect(1, 125218, '\p{Changes_When_Lowercased=:\Ano\z:}', "");;
     Expect(0, 125217, '\p{Changes_When_Lowercased=:\Ano\z:}', "");;
-    Expect(1, 125218, '\p{Changes_When_Lowercased=-NO}', "");
-    Expect(0, 125218, '\p{^Changes_When_Lowercased=-NO}', "");
-    Expect(0, 125218, '\P{Changes_When_Lowercased=-NO}', "");
-    Expect(1, 125218, '\P{^Changes_When_Lowercased=-NO}', "");
-    Expect(0, 125217, '\p{Changes_When_Lowercased=-NO}', "");
-    Expect(1, 125217, '\p{^Changes_When_Lowercased=-NO}', "");
-    Expect(1, 125217, '\P{Changes_When_Lowercased=-NO}', "");
-    Expect(0, 125217, '\P{^Changes_When_Lowercased=-NO}', "");
-    Error('\p{CWL=:=_N}');
-    Error('\P{CWL=:=_N}');
+    Expect(1, 125218, '\p{Changes_When_Lowercased= No}', "");
+    Expect(0, 125218, '\p{^Changes_When_Lowercased= No}', "");
+    Expect(0, 125218, '\P{Changes_When_Lowercased= No}', "");
+    Expect(1, 125218, '\P{^Changes_When_Lowercased= No}', "");
+    Expect(0, 125217, '\p{Changes_When_Lowercased= No}', "");
+    Expect(1, 125217, '\p{^Changes_When_Lowercased= No}', "");
+    Expect(1, 125217, '\P{Changes_When_Lowercased= No}', "");
+    Expect(0, 125217, '\P{^Changes_When_Lowercased= No}', "");
+    Error('\p{CWL:	/a/ N}');
+    Error('\P{CWL:	/a/ N}');
     Expect(1, 125218, '\p{CWL=:\AN\z:}', "");;
     Expect(0, 125217, '\p{CWL=:\AN\z:}', "");;
     Expect(1, 125218, '\p{CWL=n}', "");
@@ -34567,16 +35135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125217, '\P{^CWL=n}', "");
     Expect(1, 125218, '\p{CWL=:\An\z:}', "");;
     Expect(0, 125217, '\p{CWL=:\An\z:}', "");;
-    Expect(1, 125218, '\p{CWL=	N}', "");
-    Expect(0, 125218, '\p{^CWL=	N}', "");
-    Expect(0, 125218, '\P{CWL=	N}', "");
-    Expect(1, 125218, '\P{^CWL=	N}', "");
-    Expect(0, 125217, '\p{CWL=	N}', "");
-    Expect(1, 125217, '\p{^CWL=	N}', "");
-    Expect(1, 125217, '\P{CWL=	N}', "");
-    Expect(0, 125217, '\P{^CWL=	N}', "");
-    Error('\p{Is_Changes_When_Lowercased:	/a/  f}');
-    Error('\P{Is_Changes_When_Lowercased:	/a/  f}');
+    Expect(1, 125218, '\p{CWL= _N}', "");
+    Expect(0, 125218, '\p{^CWL= _N}', "");
+    Expect(0, 125218, '\P{CWL= _N}', "");
+    Expect(1, 125218, '\P{^CWL= _N}', "");
+    Expect(0, 125217, '\p{CWL= _N}', "");
+    Expect(1, 125217, '\p{^CWL= _N}', "");
+    Expect(1, 125217, '\P{CWL= _N}', "");
+    Expect(0, 125217, '\P{^CWL= _N}', "");
+    Error('\p{Is_Changes_When_Lowercased=	:=F}');
+    Error('\P{Is_Changes_When_Lowercased=	:=F}');
     Expect(1, 125218, '\p{Is_Changes_When_Lowercased=f}', "");
     Expect(0, 125218, '\p{^Is_Changes_When_Lowercased=f}', "");
     Expect(0, 125218, '\P{Is_Changes_When_Lowercased=f}', "");
@@ -34585,16 +35153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125217, '\p{^Is_Changes_When_Lowercased=f}', "");
     Expect(1, 125217, '\P{Is_Changes_When_Lowercased=f}', "");
     Expect(0, 125217, '\P{^Is_Changes_When_Lowercased=f}', "");
-    Expect(1, 125218, '\p{Is_Changes_When_Lowercased=_f}', "");
-    Expect(0, 125218, '\p{^Is_Changes_When_Lowercased=_f}', "");
-    Expect(0, 125218, '\P{Is_Changes_When_Lowercased=_f}', "");
-    Expect(1, 125218, '\P{^Is_Changes_When_Lowercased=_f}', "");
-    Expect(0, 125217, '\p{Is_Changes_When_Lowercased=_f}', "");
-    Expect(1, 125217, '\p{^Is_Changes_When_Lowercased=_f}', "");
-    Expect(1, 125217, '\P{Is_Changes_When_Lowercased=_f}', "");
-    Expect(0, 125217, '\P{^Is_Changes_When_Lowercased=_f}', "");
-    Error('\p{Is_CWL=_	false/a/}');
-    Error('\P{Is_CWL=_	false/a/}');
+    Expect(1, 125218, '\p{Is_Changes_When_Lowercased=--F}', "");
+    Expect(0, 125218, '\p{^Is_Changes_When_Lowercased=--F}', "");
+    Expect(0, 125218, '\P{Is_Changes_When_Lowercased=--F}', "");
+    Expect(1, 125218, '\P{^Is_Changes_When_Lowercased=--F}', "");
+    Expect(0, 125217, '\p{Is_Changes_When_Lowercased=--F}', "");
+    Expect(1, 125217, '\p{^Is_Changes_When_Lowercased=--F}', "");
+    Expect(1, 125217, '\P{Is_Changes_When_Lowercased=--F}', "");
+    Expect(0, 125217, '\P{^Is_Changes_When_Lowercased=--F}', "");
+    Error('\p{Is_CWL=/a/False}');
+    Error('\P{Is_CWL=/a/False}');
     Expect(1, 125218, '\p{Is_CWL=false}', "");
     Expect(0, 125218, '\p{^Is_CWL=false}', "");
     Expect(0, 125218, '\P{Is_CWL=false}', "");
@@ -34603,16 +35171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125217, '\p{^Is_CWL=false}', "");
     Expect(1, 125217, '\P{Is_CWL=false}', "");
     Expect(0, 125217, '\P{^Is_CWL=false}', "");
-    Expect(1, 125218, '\p{Is_CWL=	_FALSE}', "");
-    Expect(0, 125218, '\p{^Is_CWL=	_FALSE}', "");
-    Expect(0, 125218, '\P{Is_CWL=	_FALSE}', "");
-    Expect(1, 125218, '\P{^Is_CWL=	_FALSE}', "");
-    Expect(0, 125217, '\p{Is_CWL=	_FALSE}', "");
-    Expect(1, 125217, '\p{^Is_CWL=	_FALSE}', "");
-    Expect(1, 125217, '\P{Is_CWL=	_FALSE}', "");
-    Expect(0, 125217, '\P{^Is_CWL=	_FALSE}', "");
-    Error('\p{Changes_When_Lowercased=_/a/yes}');
-    Error('\P{Changes_When_Lowercased=_/a/yes}');
+    Expect(1, 125218, '\p{Is_CWL=-	False}', "");
+    Expect(0, 125218, '\p{^Is_CWL=-	False}', "");
+    Expect(0, 125218, '\P{Is_CWL=-	False}', "");
+    Expect(1, 125218, '\P{^Is_CWL=-	False}', "");
+    Expect(0, 125217, '\p{Is_CWL=-	False}', "");
+    Expect(1, 125217, '\p{^Is_CWL=-	False}', "");
+    Expect(1, 125217, '\P{Is_CWL=-	False}', "");
+    Expect(0, 125217, '\P{^Is_CWL=-	False}', "");
+    Error('\p{Changes_When_Lowercased=_Yes:=}');
+    Error('\P{Changes_When_Lowercased=_Yes:=}');
     Expect(1, 125217, '\p{Changes_When_Lowercased=:\AYes\z:}', "");;
     Expect(0, 125218, '\p{Changes_When_Lowercased=:\AYes\z:}', "");;
     Expect(1, 125217, '\p{Changes_When_Lowercased=yes}', "");
@@ -34625,38 +35193,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125218, '\P{^Changes_When_Lowercased=yes}', "");
     Expect(1, 125217, '\p{Changes_When_Lowercased=:\Ayes\z:}', "");;
     Expect(0, 125218, '\p{Changes_When_Lowercased=:\Ayes\z:}', "");;
-    Expect(1, 125217, '\p{Changes_When_Lowercased= Yes}', "");
-    Expect(0, 125217, '\p{^Changes_When_Lowercased= Yes}', "");
-    Expect(0, 125217, '\P{Changes_When_Lowercased= Yes}', "");
-    Expect(1, 125217, '\P{^Changes_When_Lowercased= Yes}', "");
-    Expect(0, 125218, '\p{Changes_When_Lowercased= Yes}', "");
-    Expect(1, 125218, '\p{^Changes_When_Lowercased= Yes}', "");
-    Expect(1, 125218, '\P{Changes_When_Lowercased= Yes}', "");
-    Expect(0, 125218, '\P{^Changes_When_Lowercased= Yes}', "");
-    Error('\p{CWL=:=-y}');
-    Error('\P{CWL=:=-y}');
+    Expect(1, 125217, '\p{Changes_When_Lowercased:	_ yes}', "");
+    Expect(0, 125217, '\p{^Changes_When_Lowercased:	_ yes}', "");
+    Expect(0, 125217, '\P{Changes_When_Lowercased:	_ yes}', "");
+    Expect(1, 125217, '\P{^Changes_When_Lowercased:	_ yes}', "");
+    Expect(0, 125218, '\p{Changes_When_Lowercased:	_ yes}', "");
+    Expect(1, 125218, '\p{^Changes_When_Lowercased:	_ yes}', "");
+    Expect(1, 125218, '\P{Changes_When_Lowercased:	_ yes}', "");
+    Expect(0, 125218, '\P{^Changes_When_Lowercased:	_ yes}', "");
+    Error('\p{CWL:   :=	_y}');
+    Error('\P{CWL:   :=	_y}');
     Expect(1, 125217, '\p{CWL=:\AY\z:}', "");;
     Expect(0, 125218, '\p{CWL=:\AY\z:}', "");;
-    Expect(1, 125217, '\p{CWL:	y}', "");
-    Expect(0, 125217, '\p{^CWL:	y}', "");
-    Expect(0, 125217, '\P{CWL:	y}', "");
-    Expect(1, 125217, '\P{^CWL:	y}', "");
-    Expect(0, 125218, '\p{CWL:	y}', "");
-    Expect(1, 125218, '\p{^CWL:	y}', "");
-    Expect(1, 125218, '\P{CWL:	y}', "");
-    Expect(0, 125218, '\P{^CWL:	y}', "");
+    Expect(1, 125217, '\p{CWL=y}', "");
+    Expect(0, 125217, '\p{^CWL=y}', "");
+    Expect(0, 125217, '\P{CWL=y}', "");
+    Expect(1, 125217, '\P{^CWL=y}', "");
+    Expect(0, 125218, '\p{CWL=y}', "");
+    Expect(1, 125218, '\p{^CWL=y}', "");
+    Expect(1, 125218, '\P{CWL=y}', "");
+    Expect(0, 125218, '\P{^CWL=y}', "");
     Expect(1, 125217, '\p{CWL=:\Ay\z:}', "");;
     Expect(0, 125218, '\p{CWL=:\Ay\z:}', "");;
-    Expect(1, 125217, '\p{CWL=__Y}', "");
-    Expect(0, 125217, '\p{^CWL=__Y}', "");
-    Expect(0, 125217, '\P{CWL=__Y}', "");
-    Expect(1, 125217, '\P{^CWL=__Y}', "");
-    Expect(0, 125218, '\p{CWL=__Y}', "");
-    Expect(1, 125218, '\p{^CWL=__Y}', "");
-    Expect(1, 125218, '\P{CWL=__Y}', "");
-    Expect(0, 125218, '\P{^CWL=__Y}', "");
-    Error('\p{Is_Changes_When_Lowercased=	/a/T}');
-    Error('\P{Is_Changes_When_Lowercased=	/a/T}');
+    Expect(1, 125217, '\p{CWL= Y}', "");
+    Expect(0, 125217, '\p{^CWL= Y}', "");
+    Expect(0, 125217, '\P{CWL= Y}', "");
+    Expect(1, 125217, '\P{^CWL= Y}', "");
+    Expect(0, 125218, '\p{CWL= Y}', "");
+    Expect(1, 125218, '\p{^CWL= Y}', "");
+    Expect(1, 125218, '\P{CWL= Y}', "");
+    Expect(0, 125218, '\P{^CWL= Y}', "");
+    Error('\p{Is_Changes_When_Lowercased=_	T:=}');
+    Error('\P{Is_Changes_When_Lowercased=_	T:=}');
     Expect(1, 125217, '\p{Is_Changes_When_Lowercased=t}', "");
     Expect(0, 125217, '\p{^Is_Changes_When_Lowercased=t}', "");
     Expect(0, 125217, '\P{Is_Changes_When_Lowercased=t}', "");
@@ -34665,34 +35233,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125218, '\p{^Is_Changes_When_Lowercased=t}', "");
     Expect(1, 125218, '\P{Is_Changes_When_Lowercased=t}', "");
     Expect(0, 125218, '\P{^Is_Changes_When_Lowercased=t}', "");
-    Expect(1, 125217, '\p{Is_Changes_When_Lowercased:	T}', "");
-    Expect(0, 125217, '\p{^Is_Changes_When_Lowercased:	T}', "");
-    Expect(0, 125217, '\P{Is_Changes_When_Lowercased:	T}', "");
-    Expect(1, 125217, '\P{^Is_Changes_When_Lowercased:	T}', "");
-    Expect(0, 125218, '\p{Is_Changes_When_Lowercased:	T}', "");
-    Expect(1, 125218, '\p{^Is_Changes_When_Lowercased:	T}', "");
-    Expect(1, 125218, '\P{Is_Changes_When_Lowercased:	T}', "");
-    Expect(0, 125218, '\P{^Is_Changes_When_Lowercased:	T}', "");
-    Error('\p{Is_CWL=  True:=}');
-    Error('\P{Is_CWL=  True:=}');
-    Expect(1, 125217, '\p{Is_CWL=true}', "");
-    Expect(0, 125217, '\p{^Is_CWL=true}', "");
-    Expect(0, 125217, '\P{Is_CWL=true}', "");
-    Expect(1, 125217, '\P{^Is_CWL=true}', "");
-    Expect(0, 125218, '\p{Is_CWL=true}', "");
-    Expect(1, 125218, '\p{^Is_CWL=true}', "");
-    Expect(1, 125218, '\P{Is_CWL=true}', "");
-    Expect(0, 125218, '\P{^Is_CWL=true}', "");
-    Expect(1, 125217, '\p{Is_CWL=-	TRUE}', "");
-    Expect(0, 125217, '\p{^Is_CWL=-	TRUE}', "");
-    Expect(0, 125217, '\P{Is_CWL=-	TRUE}', "");
-    Expect(1, 125217, '\P{^Is_CWL=-	TRUE}', "");
-    Expect(0, 125218, '\p{Is_CWL=-	TRUE}', "");
-    Expect(1, 125218, '\p{^Is_CWL=-	TRUE}', "");
-    Expect(1, 125218, '\P{Is_CWL=-	TRUE}', "");
-    Expect(0, 125218, '\P{^Is_CWL=-	TRUE}', "");
-    Error('\p{Changes_When_Titlecased= _No:=}');
-    Error('\P{Changes_When_Titlecased= _No:=}');
+    Expect(1, 125217, '\p{Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(0, 125217, '\p{^Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(0, 125217, '\P{Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(1, 125217, '\P{^Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(0, 125218, '\p{Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(1, 125218, '\p{^Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(1, 125218, '\P{Is_Changes_When_Lowercased:	 -T}', "");
+    Expect(0, 125218, '\P{^Is_Changes_When_Lowercased:	 -T}', "");
+    Error('\p{Is_CWL=_ True/a/}');
+    Error('\P{Is_CWL=_ True/a/}');
+    Expect(1, 125217, '\p{Is_CWL:true}', "");
+    Expect(0, 125217, '\p{^Is_CWL:true}', "");
+    Expect(0, 125217, '\P{Is_CWL:true}', "");
+    Expect(1, 125217, '\P{^Is_CWL:true}', "");
+    Expect(0, 125218, '\p{Is_CWL:true}', "");
+    Expect(1, 125218, '\p{^Is_CWL:true}', "");
+    Expect(1, 125218, '\P{Is_CWL:true}', "");
+    Expect(0, 125218, '\P{^Is_CWL:true}', "");
+    Expect(1, 125217, '\p{Is_CWL=-True}', "");
+    Expect(0, 125217, '\p{^Is_CWL=-True}', "");
+    Expect(0, 125217, '\P{Is_CWL=-True}', "");
+    Expect(1, 125217, '\P{^Is_CWL=-True}', "");
+    Expect(0, 125218, '\p{Is_CWL=-True}', "");
+    Expect(1, 125218, '\p{^Is_CWL=-True}', "");
+    Expect(1, 125218, '\P{Is_CWL=-True}', "");
+    Expect(0, 125218, '\P{^Is_CWL=-True}', "");
+    Error('\p{Changes_When_Titlecased=-/a/no}');
+    Error('\P{Changes_When_Titlecased=-/a/no}');
     Expect(1, 125252, '\p{Changes_When_Titlecased=:\ANo\z:}', "");;
     Expect(0, 125251, '\p{Changes_When_Titlecased=:\ANo\z:}', "");;
     Expect(1, 125252, '\p{Changes_When_Titlecased=no}', "");
@@ -34705,38 +35273,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125251, '\P{^Changes_When_Titlecased=no}', "");
     Expect(1, 125252, '\p{Changes_When_Titlecased=:\Ano\z:}', "");;
     Expect(0, 125251, '\p{Changes_When_Titlecased=:\Ano\z:}', "");;
-    Expect(1, 125252, '\p{Changes_When_Titlecased=	-No}', "");
-    Expect(0, 125252, '\p{^Changes_When_Titlecased=	-No}', "");
-    Expect(0, 125252, '\P{Changes_When_Titlecased=	-No}', "");
-    Expect(1, 125252, '\P{^Changes_When_Titlecased=	-No}', "");
-    Expect(0, 125251, '\p{Changes_When_Titlecased=	-No}', "");
-    Expect(1, 125251, '\p{^Changes_When_Titlecased=	-No}', "");
-    Expect(1, 125251, '\P{Changes_When_Titlecased=	-No}', "");
-    Expect(0, 125251, '\P{^Changes_When_Titlecased=	-No}', "");
-    Error('\p{CWT=-:=n}');
-    Error('\P{CWT=-:=n}');
+    Expect(1, 125252, '\p{Changes_When_Titlecased=	No}', "");
+    Expect(0, 125252, '\p{^Changes_When_Titlecased=	No}', "");
+    Expect(0, 125252, '\P{Changes_When_Titlecased=	No}', "");
+    Expect(1, 125252, '\P{^Changes_When_Titlecased=	No}', "");
+    Expect(0, 125251, '\p{Changes_When_Titlecased=	No}', "");
+    Expect(1, 125251, '\p{^Changes_When_Titlecased=	No}', "");
+    Expect(1, 125251, '\P{Changes_When_Titlecased=	No}', "");
+    Expect(0, 125251, '\P{^Changes_When_Titlecased=	No}', "");
+    Error('\p{CWT= 	N/a/}');
+    Error('\P{CWT= 	N/a/}');
     Expect(1, 125252, '\p{CWT=:\AN\z:}', "");;
     Expect(0, 125251, '\p{CWT=:\AN\z:}', "");;
-    Expect(1, 125252, '\p{CWT=n}', "");
-    Expect(0, 125252, '\p{^CWT=n}', "");
-    Expect(0, 125252, '\P{CWT=n}', "");
-    Expect(1, 125252, '\P{^CWT=n}', "");
-    Expect(0, 125251, '\p{CWT=n}', "");
-    Expect(1, 125251, '\p{^CWT=n}', "");
-    Expect(1, 125251, '\P{CWT=n}', "");
-    Expect(0, 125251, '\P{^CWT=n}', "");
+    Expect(1, 125252, '\p{CWT: n}', "");
+    Expect(0, 125252, '\p{^CWT: n}', "");
+    Expect(0, 125252, '\P{CWT: n}', "");
+    Expect(1, 125252, '\P{^CWT: n}', "");
+    Expect(0, 125251, '\p{CWT: n}', "");
+    Expect(1, 125251, '\p{^CWT: n}', "");
+    Expect(1, 125251, '\P{CWT: n}', "");
+    Expect(0, 125251, '\P{^CWT: n}', "");
     Expect(1, 125252, '\p{CWT=:\An\z:}', "");;
     Expect(0, 125251, '\p{CWT=:\An\z:}', "");;
-    Expect(1, 125252, '\p{CWT=_N}', "");
-    Expect(0, 125252, '\p{^CWT=_N}', "");
-    Expect(0, 125252, '\P{CWT=_N}', "");
-    Expect(1, 125252, '\P{^CWT=_N}', "");
-    Expect(0, 125251, '\p{CWT=_N}', "");
-    Expect(1, 125251, '\p{^CWT=_N}', "");
-    Expect(1, 125251, '\P{CWT=_N}', "");
-    Expect(0, 125251, '\P{^CWT=_N}', "");
-    Error('\p{Is_Changes_When_Titlecased=:=F}');
-    Error('\P{Is_Changes_When_Titlecased=:=F}');
+    Expect(1, 125252, '\p{CWT=- N}', "");
+    Expect(0, 125252, '\p{^CWT=- N}', "");
+    Expect(0, 125252, '\P{CWT=- N}', "");
+    Expect(1, 125252, '\P{^CWT=- N}', "");
+    Expect(0, 125251, '\p{CWT=- N}', "");
+    Expect(1, 125251, '\p{^CWT=- N}', "");
+    Expect(1, 125251, '\P{CWT=- N}', "");
+    Expect(0, 125251, '\P{^CWT=- N}', "");
+    Error('\p{Is_Changes_When_Titlecased=	_f/a/}');
+    Error('\P{Is_Changes_When_Titlecased=	_f/a/}');
     Expect(1, 125252, '\p{Is_Changes_When_Titlecased=f}', "");
     Expect(0, 125252, '\p{^Is_Changes_When_Titlecased=f}', "");
     Expect(0, 125252, '\P{Is_Changes_When_Titlecased=f}', "");
@@ -34745,16 +35313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125251, '\p{^Is_Changes_When_Titlecased=f}', "");
     Expect(1, 125251, '\P{Is_Changes_When_Titlecased=f}', "");
     Expect(0, 125251, '\P{^Is_Changes_When_Titlecased=f}', "");
-    Expect(1, 125252, '\p{Is_Changes_When_Titlecased:	F}', "");
-    Expect(0, 125252, '\p{^Is_Changes_When_Titlecased:	F}', "");
-    Expect(0, 125252, '\P{Is_Changes_When_Titlecased:	F}', "");
-    Expect(1, 125252, '\P{^Is_Changes_When_Titlecased:	F}', "");
-    Expect(0, 125251, '\p{Is_Changes_When_Titlecased:	F}', "");
-    Expect(1, 125251, '\p{^Is_Changes_When_Titlecased:	F}', "");
-    Expect(1, 125251, '\P{Is_Changes_When_Titlecased:	F}', "");
-    Expect(0, 125251, '\P{^Is_Changes_When_Titlecased:	F}', "");
-    Error('\p{Is_CWT=:= -false}');
-    Error('\P{Is_CWT=:= -false}');
+    Expect(1, 125252, '\p{Is_Changes_When_Titlecased=__F}', "");
+    Expect(0, 125252, '\p{^Is_Changes_When_Titlecased=__F}', "");
+    Expect(0, 125252, '\P{Is_Changes_When_Titlecased=__F}', "");
+    Expect(1, 125252, '\P{^Is_Changes_When_Titlecased=__F}', "");
+    Expect(0, 125251, '\p{Is_Changes_When_Titlecased=__F}', "");
+    Expect(1, 125251, '\p{^Is_Changes_When_Titlecased=__F}', "");
+    Expect(1, 125251, '\P{Is_Changes_When_Titlecased=__F}', "");
+    Expect(0, 125251, '\P{^Is_Changes_When_Titlecased=__F}', "");
+    Error('\p{Is_CWT:   	/a/FALSE}');
+    Error('\P{Is_CWT:   	/a/FALSE}');
     Expect(1, 125252, '\p{Is_CWT=false}', "");
     Expect(0, 125252, '\p{^Is_CWT=false}', "");
     Expect(0, 125252, '\P{Is_CWT=false}', "");
@@ -34763,16 +35331,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125251, '\p{^Is_CWT=false}', "");
     Expect(1, 125251, '\P{Is_CWT=false}', "");
     Expect(0, 125251, '\P{^Is_CWT=false}', "");
-    Expect(1, 125252, '\p{Is_CWT=_ False}', "");
-    Expect(0, 125252, '\p{^Is_CWT=_ False}', "");
-    Expect(0, 125252, '\P{Is_CWT=_ False}', "");
-    Expect(1, 125252, '\P{^Is_CWT=_ False}', "");
-    Expect(0, 125251, '\p{Is_CWT=_ False}', "");
-    Expect(1, 125251, '\p{^Is_CWT=_ False}', "");
-    Expect(1, 125251, '\P{Is_CWT=_ False}', "");
-    Expect(0, 125251, '\P{^Is_CWT=_ False}', "");
-    Error('\p{Changes_When_Titlecased::=--YES}');
-    Error('\P{Changes_When_Titlecased::=--YES}');
+    Expect(1, 125252, '\p{Is_CWT:    False}', "");
+    Expect(0, 125252, '\p{^Is_CWT:    False}', "");
+    Expect(0, 125252, '\P{Is_CWT:    False}', "");
+    Expect(1, 125252, '\P{^Is_CWT:    False}', "");
+    Expect(0, 125251, '\p{Is_CWT:    False}', "");
+    Expect(1, 125251, '\p{^Is_CWT:    False}', "");
+    Expect(1, 125251, '\P{Is_CWT:    False}', "");
+    Expect(0, 125251, '\P{^Is_CWT:    False}', "");
+    Error('\p{Changes_When_Titlecased=:=YES}');
+    Error('\P{Changes_When_Titlecased=:=YES}');
     Expect(1, 125251, '\p{Changes_When_Titlecased=:\AYes\z:}', "");;
     Expect(0, 125252, '\p{Changes_When_Titlecased=:\AYes\z:}', "");;
     Expect(1, 125251, '\p{Changes_When_Titlecased=yes}', "");
@@ -34785,8 +35353,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^Changes_When_Titlecased=yes}', "");
     Expect(1, 125251, '\p{Changes_When_Titlecased=:\Ayes\z:}', "");;
     Expect(0, 125252, '\p{Changes_When_Titlecased=:\Ayes\z:}', "");;
-    Error('\p{CWT= /a/Y}');
-    Error('\P{CWT= /a/Y}');
+    Expect(1, 125251, '\p{Changes_When_Titlecased:   -Yes}', "");
+    Expect(0, 125251, '\p{^Changes_When_Titlecased:   -Yes}', "");
+    Expect(0, 125251, '\P{Changes_When_Titlecased:   -Yes}', "");
+    Expect(1, 125251, '\P{^Changes_When_Titlecased:   -Yes}', "");
+    Expect(0, 125252, '\p{Changes_When_Titlecased:   -Yes}', "");
+    Expect(1, 125252, '\p{^Changes_When_Titlecased:   -Yes}', "");
+    Expect(1, 125252, '\P{Changes_When_Titlecased:   -Yes}', "");
+    Expect(0, 125252, '\P{^Changes_When_Titlecased:   -Yes}', "");
+    Error('\p{CWT=	-y/a/}');
+    Error('\P{CWT=	-y/a/}');
     Expect(1, 125251, '\p{CWT=:\AY\z:}', "");;
     Expect(0, 125252, '\p{CWT=:\AY\z:}', "");;
     Expect(1, 125251, '\p{CWT=y}', "");
@@ -34799,16 +35375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^CWT=y}', "");
     Expect(1, 125251, '\p{CWT=:\Ay\z:}', "");;
     Expect(0, 125252, '\p{CWT=:\Ay\z:}', "");;
-    Expect(1, 125251, '\p{CWT=_Y}', "");
-    Expect(0, 125251, '\p{^CWT=_Y}', "");
-    Expect(0, 125251, '\P{CWT=_Y}', "");
-    Expect(1, 125251, '\P{^CWT=_Y}', "");
-    Expect(0, 125252, '\p{CWT=_Y}', "");
-    Expect(1, 125252, '\p{^CWT=_Y}', "");
-    Expect(1, 125252, '\P{CWT=_Y}', "");
-    Expect(0, 125252, '\P{^CWT=_Y}', "");
-    Error('\p{Is_Changes_When_Titlecased=	-T/a/}');
-    Error('\P{Is_Changes_When_Titlecased=	-T/a/}');
+    Expect(1, 125251, '\p{CWT=	y}', "");
+    Expect(0, 125251, '\p{^CWT=	y}', "");
+    Expect(0, 125251, '\P{CWT=	y}', "");
+    Expect(1, 125251, '\P{^CWT=	y}', "");
+    Expect(0, 125252, '\p{CWT=	y}', "");
+    Expect(1, 125252, '\p{^CWT=	y}', "");
+    Expect(1, 125252, '\P{CWT=	y}', "");
+    Expect(0, 125252, '\P{^CWT=	y}', "");
+    Error('\p{Is_Changes_When_Titlecased: 	:=T}');
+    Error('\P{Is_Changes_When_Titlecased: 	:=T}');
     Expect(1, 125251, '\p{Is_Changes_When_Titlecased=t}', "");
     Expect(0, 125251, '\p{^Is_Changes_When_Titlecased=t}', "");
     Expect(0, 125251, '\P{Is_Changes_When_Titlecased=t}', "");
@@ -34817,16 +35393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_Changes_When_Titlecased=t}', "");
     Expect(1, 125252, '\P{Is_Changes_When_Titlecased=t}', "");
     Expect(0, 125252, '\P{^Is_Changes_When_Titlecased=t}', "");
-    Expect(1, 125251, '\p{Is_Changes_When_Titlecased=	_T}', "");
-    Expect(0, 125251, '\p{^Is_Changes_When_Titlecased=	_T}', "");
-    Expect(0, 125251, '\P{Is_Changes_When_Titlecased=	_T}', "");
-    Expect(1, 125251, '\P{^Is_Changes_When_Titlecased=	_T}', "");
-    Expect(0, 125252, '\p{Is_Changes_When_Titlecased=	_T}', "");
-    Expect(1, 125252, '\p{^Is_Changes_When_Titlecased=	_T}', "");
-    Expect(1, 125252, '\P{Is_Changes_When_Titlecased=	_T}', "");
-    Expect(0, 125252, '\P{^Is_Changes_When_Titlecased=	_T}', "");
-    Error('\p{Is_CWT:	 True:=}');
-    Error('\P{Is_CWT:	 True:=}');
+    Expect(1, 125251, '\p{Is_Changes_When_Titlecased=- T}', "");
+    Expect(0, 125251, '\p{^Is_Changes_When_Titlecased=- T}', "");
+    Expect(0, 125251, '\P{Is_Changes_When_Titlecased=- T}', "");
+    Expect(1, 125251, '\P{^Is_Changes_When_Titlecased=- T}', "");
+    Expect(0, 125252, '\p{Is_Changes_When_Titlecased=- T}', "");
+    Expect(1, 125252, '\p{^Is_Changes_When_Titlecased=- T}', "");
+    Expect(1, 125252, '\P{Is_Changes_When_Titlecased=- T}', "");
+    Expect(0, 125252, '\P{^Is_Changes_When_Titlecased=- T}', "");
+    Error('\p{Is_CWT=_ true:=}');
+    Error('\P{Is_CWT=_ true:=}');
     Expect(1, 125251, '\p{Is_CWT=true}', "");
     Expect(0, 125251, '\p{^Is_CWT=true}', "");
     Expect(0, 125251, '\P{Is_CWT=true}', "");
@@ -34835,16 +35411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_CWT=true}', "");
     Expect(1, 125252, '\P{Is_CWT=true}', "");
     Expect(0, 125252, '\P{^Is_CWT=true}', "");
-    Expect(1, 125251, '\p{Is_CWT=	-True}', "");
-    Expect(0, 125251, '\p{^Is_CWT=	-True}', "");
-    Expect(0, 125251, '\P{Is_CWT=	-True}', "");
-    Expect(1, 125251, '\P{^Is_CWT=	-True}', "");
-    Expect(0, 125252, '\p{Is_CWT=	-True}', "");
-    Expect(1, 125252, '\p{^Is_CWT=	-True}', "");
-    Expect(1, 125252, '\P{Is_CWT=	-True}', "");
-    Expect(0, 125252, '\P{^Is_CWT=	-True}', "");
-    Error('\p{Changes_When_Uppercased= -NO/a/}');
-    Error('\P{Changes_When_Uppercased= -NO/a/}');
+    Expect(1, 125251, '\p{Is_CWT: 	true}', "");
+    Expect(0, 125251, '\p{^Is_CWT: 	true}', "");
+    Expect(0, 125251, '\P{Is_CWT: 	true}', "");
+    Expect(1, 125251, '\P{^Is_CWT: 	true}', "");
+    Expect(0, 125252, '\p{Is_CWT: 	true}', "");
+    Expect(1, 125252, '\p{^Is_CWT: 	true}', "");
+    Expect(1, 125252, '\P{Is_CWT: 	true}', "");
+    Expect(0, 125252, '\P{^Is_CWT: 	true}', "");
+    Error('\p{Changes_When_Uppercased=--No/a/}');
+    Error('\P{Changes_When_Uppercased=--No/a/}');
     Expect(1, 125252, '\p{Changes_When_Uppercased=:\ANo\z:}', "");;
     Expect(0, 125251, '\p{Changes_When_Uppercased=:\ANo\z:}', "");;
     Expect(1, 125252, '\p{Changes_When_Uppercased=no}', "");
@@ -34865,8 +35441,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125251, '\p{^Changes_When_Uppercased=_no}', "");
     Expect(1, 125251, '\P{Changes_When_Uppercased=_no}', "");
     Expect(0, 125251, '\P{^Changes_When_Uppercased=_no}', "");
-    Error('\p{CWU=	n:=}');
-    Error('\P{CWU=	n:=}');
+    Error('\p{CWU=_N:=}');
+    Error('\P{CWU=_N:=}');
     Expect(1, 125252, '\p{CWU=:\AN\z:}', "");;
     Expect(0, 125251, '\p{CWU=:\AN\z:}', "");;
     Expect(1, 125252, '\p{CWU=n}', "");
@@ -34879,16 +35455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125251, '\P{^CWU=n}', "");
     Expect(1, 125252, '\p{CWU=:\An\z:}', "");;
     Expect(0, 125251, '\p{CWU=:\An\z:}', "");;
-    Expect(1, 125252, '\p{CWU= _n}', "");
-    Expect(0, 125252, '\p{^CWU= _n}', "");
-    Expect(0, 125252, '\P{CWU= _n}', "");
-    Expect(1, 125252, '\P{^CWU= _n}', "");
-    Expect(0, 125251, '\p{CWU= _n}', "");
-    Expect(1, 125251, '\p{^CWU= _n}', "");
-    Expect(1, 125251, '\P{CWU= _n}', "");
-    Expect(0, 125251, '\P{^CWU= _n}', "");
-    Error('\p{Is_Changes_When_Uppercased= F/a/}');
-    Error('\P{Is_Changes_When_Uppercased= F/a/}');
+    Expect(1, 125252, '\p{CWU=--N}', "");
+    Expect(0, 125252, '\p{^CWU=--N}', "");
+    Expect(0, 125252, '\P{CWU=--N}', "");
+    Expect(1, 125252, '\P{^CWU=--N}', "");
+    Expect(0, 125251, '\p{CWU=--N}', "");
+    Expect(1, 125251, '\p{^CWU=--N}', "");
+    Expect(1, 125251, '\P{CWU=--N}', "");
+    Expect(0, 125251, '\P{^CWU=--N}', "");
+    Error('\p{Is_Changes_When_Uppercased=-_F/a/}');
+    Error('\P{Is_Changes_When_Uppercased=-_F/a/}');
     Expect(1, 125252, '\p{Is_Changes_When_Uppercased=f}', "");
     Expect(0, 125252, '\p{^Is_Changes_When_Uppercased=f}', "");
     Expect(0, 125252, '\P{Is_Changes_When_Uppercased=f}', "");
@@ -34897,16 +35473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125251, '\p{^Is_Changes_When_Uppercased=f}', "");
     Expect(1, 125251, '\P{Is_Changes_When_Uppercased=f}', "");
     Expect(0, 125251, '\P{^Is_Changes_When_Uppercased=f}', "");
-    Expect(1, 125252, '\p{Is_Changes_When_Uppercased=F}', "");
-    Expect(0, 125252, '\p{^Is_Changes_When_Uppercased=F}', "");
-    Expect(0, 125252, '\P{Is_Changes_When_Uppercased=F}', "");
-    Expect(1, 125252, '\P{^Is_Changes_When_Uppercased=F}', "");
-    Expect(0, 125251, '\p{Is_Changes_When_Uppercased=F}', "");
-    Expect(1, 125251, '\p{^Is_Changes_When_Uppercased=F}', "");
-    Expect(1, 125251, '\P{Is_Changes_When_Uppercased=F}', "");
-    Expect(0, 125251, '\P{^Is_Changes_When_Uppercased=F}', "");
-    Error('\p{Is_CWU=_FALSE/a/}');
-    Error('\P{Is_CWU=_FALSE/a/}');
+    Expect(1, 125252, '\p{Is_Changes_When_Uppercased=	_F}', "");
+    Expect(0, 125252, '\p{^Is_Changes_When_Uppercased=	_F}', "");
+    Expect(0, 125252, '\P{Is_Changes_When_Uppercased=	_F}', "");
+    Expect(1, 125252, '\P{^Is_Changes_When_Uppercased=	_F}', "");
+    Expect(0, 125251, '\p{Is_Changes_When_Uppercased=	_F}', "");
+    Expect(1, 125251, '\p{^Is_Changes_When_Uppercased=	_F}', "");
+    Expect(1, 125251, '\P{Is_Changes_When_Uppercased=	_F}', "");
+    Expect(0, 125251, '\P{^Is_Changes_When_Uppercased=	_F}', "");
+    Error('\p{Is_CWU=_ False:=}');
+    Error('\P{Is_CWU=_ False:=}');
     Expect(1, 125252, '\p{Is_CWU=false}', "");
     Expect(0, 125252, '\p{^Is_CWU=false}', "");
     Expect(0, 125252, '\P{Is_CWU=false}', "");
@@ -34915,16 +35491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125251, '\p{^Is_CWU=false}', "");
     Expect(1, 125251, '\P{Is_CWU=false}', "");
     Expect(0, 125251, '\P{^Is_CWU=false}', "");
-    Expect(1, 125252, '\p{Is_CWU=_FALSE}', "");
-    Expect(0, 125252, '\p{^Is_CWU=_FALSE}', "");
-    Expect(0, 125252, '\P{Is_CWU=_FALSE}', "");
-    Expect(1, 125252, '\P{^Is_CWU=_FALSE}', "");
-    Expect(0, 125251, '\p{Is_CWU=_FALSE}', "");
-    Expect(1, 125251, '\p{^Is_CWU=_FALSE}', "");
-    Expect(1, 125251, '\P{Is_CWU=_FALSE}', "");
-    Expect(0, 125251, '\P{^Is_CWU=_FALSE}', "");
-    Error('\p{Changes_When_Uppercased= _YES/a/}');
-    Error('\P{Changes_When_Uppercased= _YES/a/}');
+    Expect(1, 125252, '\p{Is_CWU=-	False}', "");
+    Expect(0, 125252, '\p{^Is_CWU=-	False}', "");
+    Expect(0, 125252, '\P{Is_CWU=-	False}', "");
+    Expect(1, 125252, '\P{^Is_CWU=-	False}', "");
+    Expect(0, 125251, '\p{Is_CWU=-	False}', "");
+    Expect(1, 125251, '\p{^Is_CWU=-	False}', "");
+    Expect(1, 125251, '\P{Is_CWU=-	False}', "");
+    Expect(0, 125251, '\P{^Is_CWU=-	False}', "");
+    Error('\p{Changes_When_Uppercased=YES/a/}');
+    Error('\P{Changes_When_Uppercased=YES/a/}');
     Expect(1, 125251, '\p{Changes_When_Uppercased=:\AYes\z:}', "");;
     Expect(0, 125252, '\p{Changes_When_Uppercased=:\AYes\z:}', "");;
     Expect(1, 125251, '\p{Changes_When_Uppercased=yes}', "");
@@ -34937,38 +35513,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^Changes_When_Uppercased=yes}', "");
     Expect(1, 125251, '\p{Changes_When_Uppercased=:\Ayes\z:}', "");;
     Expect(0, 125252, '\p{Changes_When_Uppercased=:\Ayes\z:}', "");;
-    Expect(1, 125251, '\p{Changes_When_Uppercased: Yes}', "");
-    Expect(0, 125251, '\p{^Changes_When_Uppercased: Yes}', "");
-    Expect(0, 125251, '\P{Changes_When_Uppercased: Yes}', "");
-    Expect(1, 125251, '\P{^Changes_When_Uppercased: Yes}', "");
-    Expect(0, 125252, '\p{Changes_When_Uppercased: Yes}', "");
-    Expect(1, 125252, '\p{^Changes_When_Uppercased: Yes}', "");
-    Expect(1, 125252, '\P{Changes_When_Uppercased: Yes}', "");
-    Expect(0, 125252, '\P{^Changes_When_Uppercased: Yes}', "");
-    Error('\p{CWU=:= -Y}');
-    Error('\P{CWU=:= -Y}');
+    Expect(1, 125251, '\p{Changes_When_Uppercased=  Yes}', "");
+    Expect(0, 125251, '\p{^Changes_When_Uppercased=  Yes}', "");
+    Expect(0, 125251, '\P{Changes_When_Uppercased=  Yes}', "");
+    Expect(1, 125251, '\P{^Changes_When_Uppercased=  Yes}', "");
+    Expect(0, 125252, '\p{Changes_When_Uppercased=  Yes}', "");
+    Expect(1, 125252, '\p{^Changes_When_Uppercased=  Yes}', "");
+    Expect(1, 125252, '\P{Changes_When_Uppercased=  Yes}', "");
+    Expect(0, 125252, '\P{^Changes_When_Uppercased=  Yes}', "");
+    Error('\p{CWU=/a/_Y}');
+    Error('\P{CWU=/a/_Y}');
     Expect(1, 125251, '\p{CWU=:\AY\z:}', "");;
     Expect(0, 125252, '\p{CWU=:\AY\z:}', "");;
-    Expect(1, 125251, '\p{CWU=y}', "");
-    Expect(0, 125251, '\p{^CWU=y}', "");
-    Expect(0, 125251, '\P{CWU=y}', "");
-    Expect(1, 125251, '\P{^CWU=y}', "");
-    Expect(0, 125252, '\p{CWU=y}', "");
-    Expect(1, 125252, '\p{^CWU=y}', "");
-    Expect(1, 125252, '\P{CWU=y}', "");
-    Expect(0, 125252, '\P{^CWU=y}', "");
+    Expect(1, 125251, '\p{CWU: y}', "");
+    Expect(0, 125251, '\p{^CWU: y}', "");
+    Expect(0, 125251, '\P{CWU: y}', "");
+    Expect(1, 125251, '\P{^CWU: y}', "");
+    Expect(0, 125252, '\p{CWU: y}', "");
+    Expect(1, 125252, '\p{^CWU: y}', "");
+    Expect(1, 125252, '\P{CWU: y}', "");
+    Expect(0, 125252, '\P{^CWU: y}', "");
     Expect(1, 125251, '\p{CWU=:\Ay\z:}', "");;
     Expect(0, 125252, '\p{CWU=:\Ay\z:}', "");;
-    Expect(1, 125251, '\p{CWU=-y}', "");
-    Expect(0, 125251, '\p{^CWU=-y}', "");
-    Expect(0, 125251, '\P{CWU=-y}', "");
-    Expect(1, 125251, '\P{^CWU=-y}', "");
-    Expect(0, 125252, '\p{CWU=-y}', "");
-    Expect(1, 125252, '\p{^CWU=-y}', "");
-    Expect(1, 125252, '\P{CWU=-y}', "");
-    Expect(0, 125252, '\P{^CWU=-y}', "");
-    Error('\p{Is_Changes_When_Uppercased=_	T:=}');
-    Error('\P{Is_Changes_When_Uppercased=_	T:=}');
+    Expect(1, 125251, '\p{CWU= _y}', "");
+    Expect(0, 125251, '\p{^CWU= _y}', "");
+    Expect(0, 125251, '\P{CWU= _y}', "");
+    Expect(1, 125251, '\P{^CWU= _y}', "");
+    Expect(0, 125252, '\p{CWU= _y}', "");
+    Expect(1, 125252, '\p{^CWU= _y}', "");
+    Expect(1, 125252, '\P{CWU= _y}', "");
+    Expect(0, 125252, '\P{^CWU= _y}', "");
+    Error('\p{Is_Changes_When_Uppercased=/a/ _T}');
+    Error('\P{Is_Changes_When_Uppercased=/a/ _T}');
     Expect(1, 125251, '\p{Is_Changes_When_Uppercased=t}', "");
     Expect(0, 125251, '\p{^Is_Changes_When_Uppercased=t}', "");
     Expect(0, 125251, '\P{Is_Changes_When_Uppercased=t}', "");
@@ -34977,16 +35553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_Changes_When_Uppercased=t}', "");
     Expect(1, 125252, '\P{Is_Changes_When_Uppercased=t}', "");
     Expect(0, 125252, '\P{^Is_Changes_When_Uppercased=t}', "");
-    Expect(1, 125251, '\p{Is_Changes_When_Uppercased=-	T}', "");
-    Expect(0, 125251, '\p{^Is_Changes_When_Uppercased=-	T}', "");
-    Expect(0, 125251, '\P{Is_Changes_When_Uppercased=-	T}', "");
-    Expect(1, 125251, '\P{^Is_Changes_When_Uppercased=-	T}', "");
-    Expect(0, 125252, '\p{Is_Changes_When_Uppercased=-	T}', "");
-    Expect(1, 125252, '\p{^Is_Changes_When_Uppercased=-	T}', "");
-    Expect(1, 125252, '\P{Is_Changes_When_Uppercased=-	T}', "");
-    Expect(0, 125252, '\P{^Is_Changes_When_Uppercased=-	T}', "");
-    Error('\p{Is_CWU=/a/ -true}');
-    Error('\P{Is_CWU=/a/ -true}');
+    Expect(1, 125251, '\p{Is_Changes_When_Uppercased= T}', "");
+    Expect(0, 125251, '\p{^Is_Changes_When_Uppercased= T}', "");
+    Expect(0, 125251, '\P{Is_Changes_When_Uppercased= T}', "");
+    Expect(1, 125251, '\P{^Is_Changes_When_Uppercased= T}', "");
+    Expect(0, 125252, '\p{Is_Changes_When_Uppercased= T}', "");
+    Expect(1, 125252, '\p{^Is_Changes_When_Uppercased= T}', "");
+    Expect(1, 125252, '\P{Is_Changes_When_Uppercased= T}', "");
+    Expect(0, 125252, '\P{^Is_Changes_When_Uppercased= T}', "");
+    Error('\p{Is_CWU:   /a/true}');
+    Error('\P{Is_CWU:   /a/true}');
     Expect(1, 125251, '\p{Is_CWU=true}', "");
     Expect(0, 125251, '\p{^Is_CWU=true}', "");
     Expect(0, 125251, '\P{Is_CWU=true}', "");
@@ -34995,16 +35571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_CWU=true}', "");
     Expect(1, 125252, '\P{Is_CWU=true}', "");
     Expect(0, 125252, '\P{^Is_CWU=true}', "");
-    Expect(1, 125251, '\p{Is_CWU=__True}', "");
-    Expect(0, 125251, '\p{^Is_CWU=__True}', "");
-    Expect(0, 125251, '\P{Is_CWU=__True}', "");
-    Expect(1, 125251, '\P{^Is_CWU=__True}', "");
-    Expect(0, 125252, '\p{Is_CWU=__True}', "");
-    Expect(1, 125252, '\p{^Is_CWU=__True}', "");
-    Expect(1, 125252, '\P{Is_CWU=__True}', "");
-    Expect(0, 125252, '\P{^Is_CWU=__True}', "");
-    Error('\p{Dash=_-no:=}');
-    Error('\P{Dash=_-no:=}');
+    Expect(1, 125251, '\p{Is_CWU= _true}', "");
+    Expect(0, 125251, '\p{^Is_CWU= _true}', "");
+    Expect(0, 125251, '\P{Is_CWU= _true}', "");
+    Expect(1, 125251, '\P{^Is_CWU= _true}', "");
+    Expect(0, 125252, '\p{Is_CWU= _true}', "");
+    Expect(1, 125252, '\p{^Is_CWU= _true}', "");
+    Expect(1, 125252, '\P{Is_CWU= _true}', "");
+    Expect(0, 125252, '\P{^Is_CWU= _true}', "");
+    Error('\p{Dash=_no:=}');
+    Error('\P{Dash=_no:=}');
     Expect(1, 69294, '\p{Dash=:\ANo\z:}', "");;
     Expect(0, 69293, '\p{Dash=:\ANo\z:}', "");;
     Expect(1, 69294, '\p{Dash=no}', "");
@@ -35017,34 +35593,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69293, '\P{^Dash=no}', "");
     Expect(1, 69294, '\p{Dash=:\Ano\z:}', "");;
     Expect(0, 69293, '\p{Dash=:\Ano\z:}', "");;
-    Expect(1, 69294, '\p{Dash=-No}', "");
-    Expect(0, 69294, '\p{^Dash=-No}', "");
-    Expect(0, 69294, '\P{Dash=-No}', "");
-    Expect(1, 69294, '\P{^Dash=-No}', "");
-    Expect(0, 69293, '\p{Dash=-No}', "");
-    Expect(1, 69293, '\p{^Dash=-No}', "");
-    Expect(1, 69293, '\P{Dash=-No}', "");
-    Expect(0, 69293, '\P{^Dash=-No}', "");
-    Error('\p{Is_Dash=- N:=}');
-    Error('\P{Is_Dash=- N:=}');
-    Expect(1, 69294, '\p{Is_Dash:   n}', "");
-    Expect(0, 69294, '\p{^Is_Dash:   n}', "");
-    Expect(0, 69294, '\P{Is_Dash:   n}', "");
-    Expect(1, 69294, '\P{^Is_Dash:   n}', "");
-    Expect(0, 69293, '\p{Is_Dash:   n}', "");
-    Expect(1, 69293, '\p{^Is_Dash:   n}', "");
-    Expect(1, 69293, '\P{Is_Dash:   n}', "");
-    Expect(0, 69293, '\P{^Is_Dash:   n}', "");
-    Expect(1, 69294, '\p{Is_Dash=	 N}', "");
-    Expect(0, 69294, '\p{^Is_Dash=	 N}', "");
-    Expect(0, 69294, '\P{Is_Dash=	 N}', "");
-    Expect(1, 69294, '\P{^Is_Dash=	 N}', "");
-    Expect(0, 69293, '\p{Is_Dash=	 N}', "");
-    Expect(1, 69293, '\p{^Is_Dash=	 N}', "");
-    Expect(1, 69293, '\P{Is_Dash=	 N}', "");
-    Expect(0, 69293, '\P{^Is_Dash=	 N}', "");
-    Error('\p{Dash=/a/-_F}');
-    Error('\P{Dash=/a/-_F}');
+    Expect(1, 69294, '\p{Dash= No}', "");
+    Expect(0, 69294, '\p{^Dash= No}', "");
+    Expect(0, 69294, '\P{Dash= No}', "");
+    Expect(1, 69294, '\P{^Dash= No}', "");
+    Expect(0, 69293, '\p{Dash= No}', "");
+    Expect(1, 69293, '\p{^Dash= No}', "");
+    Expect(1, 69293, '\P{Dash= No}', "");
+    Expect(0, 69293, '\P{^Dash= No}', "");
+    Error('\p{Is_Dash=:=-_n}');
+    Error('\P{Is_Dash=:=-_n}');
+    Expect(1, 69294, '\p{Is_Dash=n}', "");
+    Expect(0, 69294, '\p{^Is_Dash=n}', "");
+    Expect(0, 69294, '\P{Is_Dash=n}', "");
+    Expect(1, 69294, '\P{^Is_Dash=n}', "");
+    Expect(0, 69293, '\p{Is_Dash=n}', "");
+    Expect(1, 69293, '\p{^Is_Dash=n}', "");
+    Expect(1, 69293, '\P{Is_Dash=n}', "");
+    Expect(0, 69293, '\P{^Is_Dash=n}', "");
+    Expect(1, 69294, '\p{Is_Dash= 	N}', "");
+    Expect(0, 69294, '\p{^Is_Dash= 	N}', "");
+    Expect(0, 69294, '\P{Is_Dash= 	N}', "");
+    Expect(1, 69294, '\P{^Is_Dash= 	N}', "");
+    Expect(0, 69293, '\p{Is_Dash= 	N}', "");
+    Expect(1, 69293, '\p{^Is_Dash= 	N}', "");
+    Expect(1, 69293, '\P{Is_Dash= 	N}', "");
+    Expect(0, 69293, '\P{^Is_Dash= 	N}', "");
+    Error('\p{Dash=-_F:=}');
+    Error('\P{Dash=-_F:=}');
     Expect(1, 69294, '\p{Dash=:\AF\z:}', "");;
     Expect(0, 69293, '\p{Dash=:\AF\z:}', "");;
     Expect(1, 69294, '\p{Dash=f}', "");
@@ -35057,16 +35633,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69293, '\P{^Dash=f}', "");
     Expect(1, 69294, '\p{Dash=:\Af\z:}', "");;
     Expect(0, 69293, '\p{Dash=:\Af\z:}', "");;
-    Expect(1, 69294, '\p{Dash=-F}', "");
-    Expect(0, 69294, '\p{^Dash=-F}', "");
-    Expect(0, 69294, '\P{Dash=-F}', "");
-    Expect(1, 69294, '\P{^Dash=-F}', "");
-    Expect(0, 69293, '\p{Dash=-F}', "");
-    Expect(1, 69293, '\p{^Dash=-F}', "");
-    Expect(1, 69293, '\P{Dash=-F}', "");
-    Expect(0, 69293, '\P{^Dash=-F}', "");
-    Error('\p{Is_Dash:    /a/false}');
-    Error('\P{Is_Dash:    /a/false}');
+    Expect(1, 69294, '\p{Dash=_	F}', "");
+    Expect(0, 69294, '\p{^Dash=_	F}', "");
+    Expect(0, 69294, '\P{Dash=_	F}', "");
+    Expect(1, 69294, '\P{^Dash=_	F}', "");
+    Expect(0, 69293, '\p{Dash=_	F}', "");
+    Expect(1, 69293, '\p{^Dash=_	F}', "");
+    Expect(1, 69293, '\P{Dash=_	F}', "");
+    Expect(0, 69293, '\P{^Dash=_	F}', "");
+    Error('\p{Is_Dash=	/a/False}');
+    Error('\P{Is_Dash=	/a/False}');
     Expect(1, 69294, '\p{Is_Dash=false}', "");
     Expect(0, 69294, '\p{^Is_Dash=false}', "");
     Expect(0, 69294, '\P{Is_Dash=false}', "");
@@ -35075,38 +35651,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69293, '\p{^Is_Dash=false}', "");
     Expect(1, 69293, '\P{Is_Dash=false}', "");
     Expect(0, 69293, '\P{^Is_Dash=false}', "");
-    Expect(1, 69294, '\p{Is_Dash=-FALSE}', "");
-    Expect(0, 69294, '\p{^Is_Dash=-FALSE}', "");
-    Expect(0, 69294, '\P{Is_Dash=-FALSE}', "");
-    Expect(1, 69294, '\P{^Is_Dash=-FALSE}', "");
-    Expect(0, 69293, '\p{Is_Dash=-FALSE}', "");
-    Expect(1, 69293, '\p{^Is_Dash=-FALSE}', "");
-    Expect(1, 69293, '\P{Is_Dash=-FALSE}', "");
-    Expect(0, 69293, '\P{^Is_Dash=-FALSE}', "");
-    Error('\p{Dash=		Yes/a/}');
-    Error('\P{Dash=		Yes/a/}');
+    Expect(1, 69294, '\p{Is_Dash: 	 False}', "");
+    Expect(0, 69294, '\p{^Is_Dash: 	 False}', "");
+    Expect(0, 69294, '\P{Is_Dash: 	 False}', "");
+    Expect(1, 69294, '\P{^Is_Dash: 	 False}', "");
+    Expect(0, 69293, '\p{Is_Dash: 	 False}', "");
+    Expect(1, 69293, '\p{^Is_Dash: 	 False}', "");
+    Expect(1, 69293, '\P{Is_Dash: 	 False}', "");
+    Expect(0, 69293, '\P{^Is_Dash: 	 False}', "");
+    Error('\p{Dash=:=-_yes}');
+    Error('\P{Dash=:=-_yes}');
     Expect(1, 69293, '\p{Dash=:\AYes\z:}', "");;
     Expect(0, 69294, '\p{Dash=:\AYes\z:}', "");;
-    Expect(1, 69293, '\p{Dash=yes}', "");
-    Expect(0, 69293, '\p{^Dash=yes}', "");
-    Expect(0, 69293, '\P{Dash=yes}', "");
-    Expect(1, 69293, '\P{^Dash=yes}', "");
-    Expect(0, 69294, '\p{Dash=yes}', "");
-    Expect(1, 69294, '\p{^Dash=yes}', "");
-    Expect(1, 69294, '\P{Dash=yes}', "");
-    Expect(0, 69294, '\P{^Dash=yes}', "");
+    Expect(1, 69293, '\p{Dash:	yes}', "");
+    Expect(0, 69293, '\p{^Dash:	yes}', "");
+    Expect(0, 69293, '\P{Dash:	yes}', "");
+    Expect(1, 69293, '\P{^Dash:	yes}', "");
+    Expect(0, 69294, '\p{Dash:	yes}', "");
+    Expect(1, 69294, '\p{^Dash:	yes}', "");
+    Expect(1, 69294, '\P{Dash:	yes}', "");
+    Expect(0, 69294, '\P{^Dash:	yes}', "");
     Expect(1, 69293, '\p{Dash=:\Ayes\z:}', "");;
     Expect(0, 69294, '\p{Dash=:\Ayes\z:}', "");;
-    Expect(1, 69293, '\p{Dash=  Yes}', "");
-    Expect(0, 69293, '\p{^Dash=  Yes}', "");
-    Expect(0, 69293, '\P{Dash=  Yes}', "");
-    Expect(1, 69293, '\P{^Dash=  Yes}', "");
-    Expect(0, 69294, '\p{Dash=  Yes}', "");
-    Expect(1, 69294, '\p{^Dash=  Yes}', "");
-    Expect(1, 69294, '\P{Dash=  Yes}', "");
-    Expect(0, 69294, '\P{^Dash=  Yes}', "");
-    Error('\p{Is_Dash=		Y:=}');
-    Error('\P{Is_Dash=		Y:=}');
+    Expect(1, 69293, '\p{Dash= 	yes}', "");
+    Expect(0, 69293, '\p{^Dash= 	yes}', "");
+    Expect(0, 69293, '\P{Dash= 	yes}', "");
+    Expect(1, 69293, '\P{^Dash= 	yes}', "");
+    Expect(0, 69294, '\p{Dash= 	yes}', "");
+    Expect(1, 69294, '\p{^Dash= 	yes}', "");
+    Expect(1, 69294, '\P{Dash= 	yes}', "");
+    Expect(0, 69294, '\P{^Dash= 	yes}', "");
+    Error('\p{Is_Dash:	 Y/a/}');
+    Error('\P{Is_Dash:	 Y/a/}');
     Expect(1, 69293, '\p{Is_Dash=y}', "");
     Expect(0, 69293, '\p{^Is_Dash=y}', "");
     Expect(0, 69293, '\P{Is_Dash=y}', "");
@@ -35115,16 +35691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 69294, '\p{^Is_Dash=y}', "");
     Expect(1, 69294, '\P{Is_Dash=y}', "");
     Expect(0, 69294, '\P{^Is_Dash=y}', "");
-    Expect(1, 69293, '\p{Is_Dash=Y}', "");
-    Expect(0, 69293, '\p{^Is_Dash=Y}', "");
-    Expect(0, 69293, '\P{Is_Dash=Y}', "");
-    Expect(1, 69293, '\P{^Is_Dash=Y}', "");
-    Expect(0, 69294, '\p{Is_Dash=Y}', "");
-    Expect(1, 69294, '\p{^Is_Dash=Y}', "");
-    Expect(1, 69294, '\P{Is_Dash=Y}', "");
-    Expect(0, 69294, '\P{^Is_Dash=Y}', "");
-    Error('\p{Dash= _T:=}');
-    Error('\P{Dash= _T:=}');
+    Expect(1, 69293, '\p{Is_Dash=_Y}', "");
+    Expect(0, 69293, '\p{^Is_Dash=_Y}', "");
+    Expect(0, 69293, '\P{Is_Dash=_Y}', "");
+    Expect(1, 69293, '\P{^Is_Dash=_Y}', "");
+    Expect(0, 69294, '\p{Is_Dash=_Y}', "");
+    Expect(1, 69294, '\p{^Is_Dash=_Y}', "");
+    Expect(1, 69294, '\P{Is_Dash=_Y}', "");
+    Expect(0, 69294, '\P{^Is_Dash=_Y}', "");
+    Error('\p{Dash=/a/T}');
+    Error('\P{Dash=/a/T}');
     Expect(1, 69293, '\p{Dash=:\AT\z:}', "");;
     Expect(0, 69294, '\p{Dash=:\AT\z:}', "");;
     Expect(1, 69293, '\p{Dash=t}', "");
@@ -35137,114 +35713,114 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 69294, '\P{^Dash=t}', "");
     Expect(1, 69293, '\p{Dash=:\At\z:}', "");;
     Expect(0, 69294, '\p{Dash=:\At\z:}', "");;
-    Expect(1, 69293, '\p{Dash= T}', "");
-    Expect(0, 69293, '\p{^Dash= T}', "");
-    Expect(0, 69293, '\P{Dash= T}', "");
-    Expect(1, 69293, '\P{^Dash= T}', "");
-    Expect(0, 69294, '\p{Dash= T}', "");
-    Expect(1, 69294, '\p{^Dash= T}', "");
-    Expect(1, 69294, '\P{Dash= T}', "");
-    Expect(0, 69294, '\P{^Dash= T}', "");
-    Error('\p{Is_Dash=	_True/a/}');
-    Error('\P{Is_Dash=	_True/a/}');
-    Expect(1, 69293, '\p{Is_Dash=true}', "");
-    Expect(0, 69293, '\p{^Is_Dash=true}', "");
-    Expect(0, 69293, '\P{Is_Dash=true}', "");
-    Expect(1, 69293, '\P{^Is_Dash=true}', "");
-    Expect(0, 69294, '\p{Is_Dash=true}', "");
-    Expect(1, 69294, '\p{^Is_Dash=true}', "");
-    Expect(1, 69294, '\P{Is_Dash=true}', "");
-    Expect(0, 69294, '\P{^Is_Dash=true}', "");
-    Expect(1, 69293, '\p{Is_Dash=-	TRUE}', "");
-    Expect(0, 69293, '\p{^Is_Dash=-	TRUE}', "");
-    Expect(0, 69293, '\P{Is_Dash=-	TRUE}', "");
-    Expect(1, 69293, '\P{^Is_Dash=-	TRUE}', "");
-    Expect(0, 69294, '\p{Is_Dash=-	TRUE}', "");
-    Expect(1, 69294, '\p{^Is_Dash=-	TRUE}', "");
-    Expect(1, 69294, '\P{Is_Dash=-	TRUE}', "");
-    Expect(0, 69294, '\P{^Is_Dash=-	TRUE}', "");
-    Error('\p{Deprecated= _No/a/}');
-    Error('\P{Deprecated= _No/a/}');
+    Expect(1, 69293, '\p{Dash=	 t}', "");
+    Expect(0, 69293, '\p{^Dash=	 t}', "");
+    Expect(0, 69293, '\P{Dash=	 t}', "");
+    Expect(1, 69293, '\P{^Dash=	 t}', "");
+    Expect(0, 69294, '\p{Dash=	 t}', "");
+    Expect(1, 69294, '\p{^Dash=	 t}', "");
+    Expect(1, 69294, '\P{Dash=	 t}', "");
+    Expect(0, 69294, '\P{^Dash=	 t}', "");
+    Error('\p{Is_Dash=_/a/True}');
+    Error('\P{Is_Dash=_/a/True}');
+    Expect(1, 69293, '\p{Is_Dash:   true}', "");
+    Expect(0, 69293, '\p{^Is_Dash:   true}', "");
+    Expect(0, 69293, '\P{Is_Dash:   true}', "");
+    Expect(1, 69293, '\P{^Is_Dash:   true}', "");
+    Expect(0, 69294, '\p{Is_Dash:   true}', "");
+    Expect(1, 69294, '\p{^Is_Dash:   true}', "");
+    Expect(1, 69294, '\P{Is_Dash:   true}', "");
+    Expect(0, 69294, '\P{^Is_Dash:   true}', "");
+    Expect(1, 69293, '\p{Is_Dash=-_TRUE}', "");
+    Expect(0, 69293, '\p{^Is_Dash=-_TRUE}', "");
+    Expect(0, 69293, '\P{Is_Dash=-_TRUE}', "");
+    Expect(1, 69293, '\P{^Is_Dash=-_TRUE}', "");
+    Expect(0, 69294, '\p{Is_Dash=-_TRUE}', "");
+    Expect(1, 69294, '\p{^Is_Dash=-_TRUE}', "");
+    Expect(1, 69294, '\P{Is_Dash=-_TRUE}', "");
+    Expect(0, 69294, '\P{^Is_Dash=-_TRUE}', "");
+    Error('\p{Deprecated=/a/__NO}');
+    Error('\P{Deprecated=/a/__NO}');
     Expect(1, 917506, '\p{Deprecated=:\ANo\z:}', "");;
     Expect(0, 917505, '\p{Deprecated=:\ANo\z:}', "");;
-    Expect(1, 917506, '\p{Deprecated=no}', "");
-    Expect(0, 917506, '\p{^Deprecated=no}', "");
-    Expect(0, 917506, '\P{Deprecated=no}', "");
-    Expect(1, 917506, '\P{^Deprecated=no}', "");
-    Expect(0, 917505, '\p{Deprecated=no}', "");
-    Expect(1, 917505, '\p{^Deprecated=no}', "");
-    Expect(1, 917505, '\P{Deprecated=no}', "");
-    Expect(0, 917505, '\P{^Deprecated=no}', "");
+    Expect(1, 917506, '\p{Deprecated:	no}', "");
+    Expect(0, 917506, '\p{^Deprecated:	no}', "");
+    Expect(0, 917506, '\P{Deprecated:	no}', "");
+    Expect(1, 917506, '\P{^Deprecated:	no}', "");
+    Expect(0, 917505, '\p{Deprecated:	no}', "");
+    Expect(1, 917505, '\p{^Deprecated:	no}', "");
+    Expect(1, 917505, '\P{Deprecated:	no}', "");
+    Expect(0, 917505, '\P{^Deprecated:	no}', "");
     Expect(1, 917506, '\p{Deprecated=:\Ano\z:}', "");;
     Expect(0, 917505, '\p{Deprecated=:\Ano\z:}', "");;
-    Expect(1, 917506, '\p{Deprecated=	No}', "");
-    Expect(0, 917506, '\p{^Deprecated=	No}', "");
-    Expect(0, 917506, '\P{Deprecated=	No}', "");
-    Expect(1, 917506, '\P{^Deprecated=	No}', "");
-    Expect(0, 917505, '\p{Deprecated=	No}', "");
-    Expect(1, 917505, '\p{^Deprecated=	No}', "");
-    Expect(1, 917505, '\P{Deprecated=	No}', "");
-    Expect(0, 917505, '\P{^Deprecated=	No}', "");
-    Error('\p{Dep=_:=n}');
-    Error('\P{Dep=_:=n}');
+    Expect(1, 917506, '\p{Deprecated=  no}', "");
+    Expect(0, 917506, '\p{^Deprecated=  no}', "");
+    Expect(0, 917506, '\P{Deprecated=  no}', "");
+    Expect(1, 917506, '\P{^Deprecated=  no}', "");
+    Expect(0, 917505, '\p{Deprecated=  no}', "");
+    Expect(1, 917505, '\p{^Deprecated=  no}', "");
+    Expect(1, 917505, '\P{Deprecated=  no}', "");
+    Expect(0, 917505, '\P{^Deprecated=  no}', "");
+    Error('\p{Dep=:=-N}');
+    Error('\P{Dep=:=-N}');
     Expect(1, 917506, '\p{Dep=:\AN\z:}', "");;
     Expect(0, 917505, '\p{Dep=:\AN\z:}', "");;
-    Expect(1, 917506, '\p{Dep:n}', "");
-    Expect(0, 917506, '\p{^Dep:n}', "");
-    Expect(0, 917506, '\P{Dep:n}', "");
-    Expect(1, 917506, '\P{^Dep:n}', "");
-    Expect(0, 917505, '\p{Dep:n}', "");
-    Expect(1, 917505, '\p{^Dep:n}', "");
-    Expect(1, 917505, '\P{Dep:n}', "");
-    Expect(0, 917505, '\P{^Dep:n}', "");
+    Expect(1, 917506, '\p{Dep=n}', "");
+    Expect(0, 917506, '\p{^Dep=n}', "");
+    Expect(0, 917506, '\P{Dep=n}', "");
+    Expect(1, 917506, '\P{^Dep=n}', "");
+    Expect(0, 917505, '\p{Dep=n}', "");
+    Expect(1, 917505, '\p{^Dep=n}', "");
+    Expect(1, 917505, '\P{Dep=n}', "");
+    Expect(0, 917505, '\P{^Dep=n}', "");
     Expect(1, 917506, '\p{Dep=:\An\z:}', "");;
     Expect(0, 917505, '\p{Dep=:\An\z:}', "");;
-    Expect(1, 917506, '\p{Dep=-N}', "");
-    Expect(0, 917506, '\p{^Dep=-N}', "");
-    Expect(0, 917506, '\P{Dep=-N}', "");
-    Expect(1, 917506, '\P{^Dep=-N}', "");
-    Expect(0, 917505, '\p{Dep=-N}', "");
-    Expect(1, 917505, '\p{^Dep=-N}', "");
-    Expect(1, 917505, '\P{Dep=-N}', "");
-    Expect(0, 917505, '\P{^Dep=-N}', "");
-    Error('\p{Is_Deprecated=:=	-F}');
-    Error('\P{Is_Deprecated=:=	-F}');
-    Expect(1, 917506, '\p{Is_Deprecated:f}', "");
-    Expect(0, 917506, '\p{^Is_Deprecated:f}', "");
-    Expect(0, 917506, '\P{Is_Deprecated:f}', "");
-    Expect(1, 917506, '\P{^Is_Deprecated:f}', "");
-    Expect(0, 917505, '\p{Is_Deprecated:f}', "");
-    Expect(1, 917505, '\p{^Is_Deprecated:f}', "");
-    Expect(1, 917505, '\P{Is_Deprecated:f}', "");
-    Expect(0, 917505, '\P{^Is_Deprecated:f}', "");
-    Expect(1, 917506, '\p{Is_Deprecated=_F}', "");
-    Expect(0, 917506, '\p{^Is_Deprecated=_F}', "");
-    Expect(0, 917506, '\P{Is_Deprecated=_F}', "");
-    Expect(1, 917506, '\P{^Is_Deprecated=_F}', "");
-    Expect(0, 917505, '\p{Is_Deprecated=_F}', "");
-    Expect(1, 917505, '\p{^Is_Deprecated=_F}', "");
-    Expect(1, 917505, '\P{Is_Deprecated=_F}', "");
-    Expect(0, 917505, '\P{^Is_Deprecated=_F}', "");
-    Error('\p{Is_Dep:		false/a/}');
-    Error('\P{Is_Dep:		false/a/}');
-    Expect(1, 917506, '\p{Is_Dep:   false}', "");
-    Expect(0, 917506, '\p{^Is_Dep:   false}', "");
-    Expect(0, 917506, '\P{Is_Dep:   false}', "");
-    Expect(1, 917506, '\P{^Is_Dep:   false}', "");
-    Expect(0, 917505, '\p{Is_Dep:   false}', "");
-    Expect(1, 917505, '\p{^Is_Dep:   false}', "");
-    Expect(1, 917505, '\P{Is_Dep:   false}', "");
-    Expect(0, 917505, '\P{^Is_Dep:   false}', "");
-    Expect(1, 917506, '\p{Is_Dep=-False}', "");
-    Expect(0, 917506, '\p{^Is_Dep=-False}', "");
-    Expect(0, 917506, '\P{Is_Dep=-False}', "");
-    Expect(1, 917506, '\P{^Is_Dep=-False}', "");
-    Expect(0, 917505, '\p{Is_Dep=-False}', "");
-    Expect(1, 917505, '\p{^Is_Dep=-False}', "");
-    Expect(1, 917505, '\P{Is_Dep=-False}', "");
-    Expect(0, 917505, '\P{^Is_Dep=-False}', "");
-    Error('\p{Deprecated=_Yes/a/}');
-    Error('\P{Deprecated=_Yes/a/}');
+    Expect(1, 917506, '\p{Dep:	  N}', "");
+    Expect(0, 917506, '\p{^Dep:	  N}', "");
+    Expect(0, 917506, '\P{Dep:	  N}', "");
+    Expect(1, 917506, '\P{^Dep:	  N}', "");
+    Expect(0, 917505, '\p{Dep:	  N}', "");
+    Expect(1, 917505, '\p{^Dep:	  N}', "");
+    Expect(1, 917505, '\P{Dep:	  N}', "");
+    Expect(0, 917505, '\P{^Dep:	  N}', "");
+    Error('\p{Is_Deprecated=--f:=}');
+    Error('\P{Is_Deprecated=--f:=}');
+    Expect(1, 917506, '\p{Is_Deprecated=f}', "");
+    Expect(0, 917506, '\p{^Is_Deprecated=f}', "");
+    Expect(0, 917506, '\P{Is_Deprecated=f}', "");
+    Expect(1, 917506, '\P{^Is_Deprecated=f}', "");
+    Expect(0, 917505, '\p{Is_Deprecated=f}', "");
+    Expect(1, 917505, '\p{^Is_Deprecated=f}', "");
+    Expect(1, 917505, '\P{Is_Deprecated=f}', "");
+    Expect(0, 917505, '\P{^Is_Deprecated=f}', "");
+    Expect(1, 917506, '\p{Is_Deprecated=--f}', "");
+    Expect(0, 917506, '\p{^Is_Deprecated=--f}', "");
+    Expect(0, 917506, '\P{Is_Deprecated=--f}', "");
+    Expect(1, 917506, '\P{^Is_Deprecated=--f}', "");
+    Expect(0, 917505, '\p{Is_Deprecated=--f}', "");
+    Expect(1, 917505, '\p{^Is_Deprecated=--f}', "");
+    Expect(1, 917505, '\P{Is_Deprecated=--f}', "");
+    Expect(0, 917505, '\P{^Is_Deprecated=--f}', "");
+    Error('\p{Is_Dep=	False/a/}');
+    Error('\P{Is_Dep=	False/a/}');
+    Expect(1, 917506, '\p{Is_Dep=false}', "");
+    Expect(0, 917506, '\p{^Is_Dep=false}', "");
+    Expect(0, 917506, '\P{Is_Dep=false}', "");
+    Expect(1, 917506, '\P{^Is_Dep=false}', "");
+    Expect(0, 917505, '\p{Is_Dep=false}', "");
+    Expect(1, 917505, '\p{^Is_Dep=false}', "");
+    Expect(1, 917505, '\P{Is_Dep=false}', "");
+    Expect(0, 917505, '\P{^Is_Dep=false}', "");
+    Expect(1, 917506, '\p{Is_Dep=	False}', "");
+    Expect(0, 917506, '\p{^Is_Dep=	False}', "");
+    Expect(0, 917506, '\P{Is_Dep=	False}', "");
+    Expect(1, 917506, '\P{^Is_Dep=	False}', "");
+    Expect(0, 917505, '\p{Is_Dep=	False}', "");
+    Expect(1, 917505, '\p{^Is_Dep=	False}', "");
+    Expect(1, 917505, '\P{Is_Dep=	False}', "");
+    Expect(0, 917505, '\P{^Is_Dep=	False}', "");
+    Error('\p{Deprecated= -Yes/a/}');
+    Error('\P{Deprecated= -Yes/a/}');
     Expect(1, 917505, '\p{Deprecated=:\AYes\z:}', "");;
     Expect(0, 917506, '\p{Deprecated=:\AYes\z:}', "");;
     Expect(1, 917505, '\p{Deprecated=yes}', "");
@@ -35257,16 +35833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917506, '\P{^Deprecated=yes}', "");
     Expect(1, 917505, '\p{Deprecated=:\Ayes\z:}', "");;
     Expect(0, 917506, '\p{Deprecated=:\Ayes\z:}', "");;
-    Expect(1, 917505, '\p{Deprecated=_ Yes}', "");
-    Expect(0, 917505, '\p{^Deprecated=_ Yes}', "");
-    Expect(0, 917505, '\P{Deprecated=_ Yes}', "");
-    Expect(1, 917505, '\P{^Deprecated=_ Yes}', "");
-    Expect(0, 917506, '\p{Deprecated=_ Yes}', "");
-    Expect(1, 917506, '\p{^Deprecated=_ Yes}', "");
-    Expect(1, 917506, '\P{Deprecated=_ Yes}', "");
-    Expect(0, 917506, '\P{^Deprecated=_ Yes}', "");
-    Error('\p{Dep=/a/y}');
-    Error('\P{Dep=/a/y}');
+    Expect(1, 917505, '\p{Deprecated=	yes}', "");
+    Expect(0, 917505, '\p{^Deprecated=	yes}', "");
+    Expect(0, 917505, '\P{Deprecated=	yes}', "");
+    Expect(1, 917505, '\P{^Deprecated=	yes}', "");
+    Expect(0, 917506, '\p{Deprecated=	yes}', "");
+    Expect(1, 917506, '\p{^Deprecated=	yes}', "");
+    Expect(1, 917506, '\P{Deprecated=	yes}', "");
+    Expect(0, 917506, '\P{^Deprecated=	yes}', "");
+    Error('\p{Dep:	:=  y}');
+    Error('\P{Dep:	:=  y}');
     Expect(1, 917505, '\p{Dep=:\AY\z:}', "");;
     Expect(0, 917506, '\p{Dep=:\AY\z:}', "");;
     Expect(1, 917505, '\p{Dep=y}', "");
@@ -35279,16 +35855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917506, '\P{^Dep=y}', "");
     Expect(1, 917505, '\p{Dep=:\Ay\z:}', "");;
     Expect(0, 917506, '\p{Dep=:\Ay\z:}', "");;
-    Expect(1, 917505, '\p{Dep=-Y}', "");
-    Expect(0, 917505, '\p{^Dep=-Y}', "");
-    Expect(0, 917505, '\P{Dep=-Y}', "");
-    Expect(1, 917505, '\P{^Dep=-Y}', "");
-    Expect(0, 917506, '\p{Dep=-Y}', "");
-    Expect(1, 917506, '\p{^Dep=-Y}', "");
-    Expect(1, 917506, '\P{Dep=-Y}', "");
-    Expect(0, 917506, '\P{^Dep=-Y}', "");
-    Error('\p{Is_Deprecated=_T/a/}');
-    Error('\P{Is_Deprecated=_T/a/}');
+    Expect(1, 917505, '\p{Dep=-_y}', "");
+    Expect(0, 917505, '\p{^Dep=-_y}', "");
+    Expect(0, 917505, '\P{Dep=-_y}', "");
+    Expect(1, 917505, '\P{^Dep=-_y}', "");
+    Expect(0, 917506, '\p{Dep=-_y}', "");
+    Expect(1, 917506, '\p{^Dep=-_y}', "");
+    Expect(1, 917506, '\P{Dep=-_y}', "");
+    Expect(0, 917506, '\P{^Dep=-_y}', "");
+    Error('\p{Is_Deprecated=/a/_T}');
+    Error('\P{Is_Deprecated=/a/_T}');
     Expect(1, 917505, '\p{Is_Deprecated=t}', "");
     Expect(0, 917505, '\p{^Is_Deprecated=t}', "");
     Expect(0, 917505, '\P{Is_Deprecated=t}', "");
@@ -35297,16 +35873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917506, '\p{^Is_Deprecated=t}', "");
     Expect(1, 917506, '\P{Is_Deprecated=t}', "");
     Expect(0, 917506, '\P{^Is_Deprecated=t}', "");
-    Expect(1, 917505, '\p{Is_Deprecated= T}', "");
-    Expect(0, 917505, '\p{^Is_Deprecated= T}', "");
-    Expect(0, 917505, '\P{Is_Deprecated= T}', "");
-    Expect(1, 917505, '\P{^Is_Deprecated= T}', "");
-    Expect(0, 917506, '\p{Is_Deprecated= T}', "");
-    Expect(1, 917506, '\p{^Is_Deprecated= T}', "");
-    Expect(1, 917506, '\P{Is_Deprecated= T}', "");
-    Expect(0, 917506, '\P{^Is_Deprecated= T}', "");
-    Error('\p{Is_Dep:	/a/ True}');
-    Error('\P{Is_Dep:	/a/ True}');
+    Expect(1, 917505, '\p{Is_Deprecated=		T}', "");
+    Expect(0, 917505, '\p{^Is_Deprecated=		T}', "");
+    Expect(0, 917505, '\P{Is_Deprecated=		T}', "");
+    Expect(1, 917505, '\P{^Is_Deprecated=		T}', "");
+    Expect(0, 917506, '\p{Is_Deprecated=		T}', "");
+    Expect(1, 917506, '\p{^Is_Deprecated=		T}', "");
+    Expect(1, 917506, '\P{Is_Deprecated=		T}', "");
+    Expect(0, 917506, '\P{^Is_Deprecated=		T}', "");
+    Error('\p{Is_Dep=/a/_True}');
+    Error('\P{Is_Dep=/a/_True}');
     Expect(1, 917505, '\p{Is_Dep=true}', "");
     Expect(0, 917505, '\p{^Is_Dep=true}', "");
     Expect(0, 917505, '\P{Is_Dep=true}', "");
@@ -35315,16 +35891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917506, '\p{^Is_Dep=true}', "");
     Expect(1, 917506, '\P{Is_Dep=true}', "");
     Expect(0, 917506, '\P{^Is_Dep=true}', "");
-    Expect(1, 917505, '\p{Is_Dep= _TRUE}', "");
-    Expect(0, 917505, '\p{^Is_Dep= _TRUE}', "");
-    Expect(0, 917505, '\P{Is_Dep= _TRUE}', "");
-    Expect(1, 917505, '\P{^Is_Dep= _TRUE}', "");
-    Expect(0, 917506, '\p{Is_Dep= _TRUE}', "");
-    Expect(1, 917506, '\p{^Is_Dep= _TRUE}', "");
-    Expect(1, 917506, '\P{Is_Dep= _TRUE}', "");
-    Expect(0, 917506, '\P{^Is_Dep= _TRUE}', "");
-    Error('\p{Default_Ignorable_Code_Point=	:=NO}');
-    Error('\P{Default_Ignorable_Code_Point=	:=NO}');
+    Expect(1, 917505, '\p{Is_Dep: -True}', "");
+    Expect(0, 917505, '\p{^Is_Dep: -True}', "");
+    Expect(0, 917505, '\P{Is_Dep: -True}', "");
+    Expect(1, 917505, '\P{^Is_Dep: -True}', "");
+    Expect(0, 917506, '\p{Is_Dep: -True}', "");
+    Expect(1, 917506, '\p{^Is_Dep: -True}', "");
+    Expect(1, 917506, '\P{Is_Dep: -True}', "");
+    Expect(0, 917506, '\P{^Is_Dep: -True}', "");
+    Error('\p{Default_Ignorable_Code_Point=_	no:=}');
+    Error('\P{Default_Ignorable_Code_Point=_	no:=}');
     Expect(1, 921600, '\p{Default_Ignorable_Code_Point=:\ANo\z:}', "");;
     Expect(0, 921599, '\p{Default_Ignorable_Code_Point=:\ANo\z:}', "");;
     Expect(1, 921600, '\p{Default_Ignorable_Code_Point=no}', "");
@@ -35337,16 +35913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 921599, '\P{^Default_Ignorable_Code_Point=no}', "");
     Expect(1, 921600, '\p{Default_Ignorable_Code_Point=:\Ano\z:}', "");;
     Expect(0, 921599, '\p{Default_Ignorable_Code_Point=:\Ano\z:}', "");;
-    Expect(1, 921600, '\p{Default_Ignorable_Code_Point=--NO}', "");
-    Expect(0, 921600, '\p{^Default_Ignorable_Code_Point=--NO}', "");
-    Expect(0, 921600, '\P{Default_Ignorable_Code_Point=--NO}', "");
-    Expect(1, 921600, '\P{^Default_Ignorable_Code_Point=--NO}', "");
-    Expect(0, 921599, '\p{Default_Ignorable_Code_Point=--NO}', "");
-    Expect(1, 921599, '\p{^Default_Ignorable_Code_Point=--NO}', "");
-    Expect(1, 921599, '\P{Default_Ignorable_Code_Point=--NO}', "");
-    Expect(0, 921599, '\P{^Default_Ignorable_Code_Point=--NO}', "");
-    Error('\p{DI=/a/N}');
-    Error('\P{DI=/a/N}');
+    Expect(1, 921600, '\p{Default_Ignorable_Code_Point:   _no}', "");
+    Expect(0, 921600, '\p{^Default_Ignorable_Code_Point:   _no}', "");
+    Expect(0, 921600, '\P{Default_Ignorable_Code_Point:   _no}', "");
+    Expect(1, 921600, '\P{^Default_Ignorable_Code_Point:   _no}', "");
+    Expect(0, 921599, '\p{Default_Ignorable_Code_Point:   _no}', "");
+    Expect(1, 921599, '\p{^Default_Ignorable_Code_Point:   _no}', "");
+    Expect(1, 921599, '\P{Default_Ignorable_Code_Point:   _no}', "");
+    Expect(0, 921599, '\P{^Default_Ignorable_Code_Point:   _no}', "");
+    Error('\p{DI=:= 	N}');
+    Error('\P{DI=:= 	N}');
     Expect(1, 921600, '\p{DI=:\AN\z:}', "");;
     Expect(0, 921599, '\p{DI=:\AN\z:}', "");;
     Expect(1, 921600, '\p{DI=n}', "");
@@ -35359,16 +35935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 921599, '\P{^DI=n}', "");
     Expect(1, 921600, '\p{DI=:\An\z:}', "");;
     Expect(0, 921599, '\p{DI=:\An\z:}', "");;
-    Expect(1, 921600, '\p{DI=-	N}', "");
-    Expect(0, 921600, '\p{^DI=-	N}', "");
-    Expect(0, 921600, '\P{DI=-	N}', "");
-    Expect(1, 921600, '\P{^DI=-	N}', "");
-    Expect(0, 921599, '\p{DI=-	N}', "");
-    Expect(1, 921599, '\p{^DI=-	N}', "");
-    Expect(1, 921599, '\P{DI=-	N}', "");
-    Expect(0, 921599, '\P{^DI=-	N}', "");
-    Error('\p{Is_Default_Ignorable_Code_Point=_F:=}');
-    Error('\P{Is_Default_Ignorable_Code_Point=_F:=}');
+    Expect(1, 921600, '\p{DI:   - n}', "");
+    Expect(0, 921600, '\p{^DI:   - n}', "");
+    Expect(0, 921600, '\P{DI:   - n}', "");
+    Expect(1, 921600, '\P{^DI:   - n}', "");
+    Expect(0, 921599, '\p{DI:   - n}', "");
+    Expect(1, 921599, '\p{^DI:   - n}', "");
+    Expect(1, 921599, '\P{DI:   - n}', "");
+    Expect(0, 921599, '\P{^DI:   - n}', "");
+    Error('\p{Is_Default_Ignorable_Code_Point=/a/-_f}');
+    Error('\P{Is_Default_Ignorable_Code_Point=/a/-_f}');
     Expect(1, 921600, '\p{Is_Default_Ignorable_Code_Point=f}', "");
     Expect(0, 921600, '\p{^Is_Default_Ignorable_Code_Point=f}', "");
     Expect(0, 921600, '\P{Is_Default_Ignorable_Code_Point=f}', "");
@@ -35377,34 +35953,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921599, '\p{^Is_Default_Ignorable_Code_Point=f}', "");
     Expect(1, 921599, '\P{Is_Default_Ignorable_Code_Point=f}', "");
     Expect(0, 921599, '\P{^Is_Default_Ignorable_Code_Point=f}', "");
-    Expect(1, 921600, '\p{Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(0, 921600, '\p{^Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(0, 921600, '\P{Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(1, 921600, '\P{^Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(0, 921599, '\p{Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(1, 921599, '\p{^Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(1, 921599, '\P{Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Expect(0, 921599, '\P{^Is_Default_Ignorable_Code_Point:	_ f}', "");
-    Error('\p{Is_DI:   :=	_false}');
-    Error('\P{Is_DI:   :=	_false}');
-    Expect(1, 921600, '\p{Is_DI=false}', "");
-    Expect(0, 921600, '\p{^Is_DI=false}', "");
-    Expect(0, 921600, '\P{Is_DI=false}', "");
-    Expect(1, 921600, '\P{^Is_DI=false}', "");
-    Expect(0, 921599, '\p{Is_DI=false}', "");
-    Expect(1, 921599, '\p{^Is_DI=false}', "");
-    Expect(1, 921599, '\P{Is_DI=false}', "");
-    Expect(0, 921599, '\P{^Is_DI=false}', "");
-    Expect(1, 921600, '\p{Is_DI= False}', "");
-    Expect(0, 921600, '\p{^Is_DI= False}', "");
-    Expect(0, 921600, '\P{Is_DI= False}', "");
-    Expect(1, 921600, '\P{^Is_DI= False}', "");
-    Expect(0, 921599, '\p{Is_DI= False}', "");
-    Expect(1, 921599, '\p{^Is_DI= False}', "");
-    Expect(1, 921599, '\P{Is_DI= False}', "");
-    Expect(0, 921599, '\P{^Is_DI= False}', "");
-    Error('\p{Default_Ignorable_Code_Point=_	YES:=}');
-    Error('\P{Default_Ignorable_Code_Point=_	YES:=}');
+    Expect(1, 921600, '\p{Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(0, 921600, '\p{^Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(0, 921600, '\P{Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(1, 921600, '\P{^Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(0, 921599, '\p{Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(1, 921599, '\p{^Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(1, 921599, '\P{Is_Default_Ignorable_Code_Point=  F}', "");
+    Expect(0, 921599, '\P{^Is_Default_Ignorable_Code_Point=  F}', "");
+    Error('\p{Is_DI=--False:=}');
+    Error('\P{Is_DI=--False:=}');
+    Expect(1, 921600, '\p{Is_DI:   false}', "");
+    Expect(0, 921600, '\p{^Is_DI:   false}', "");
+    Expect(0, 921600, '\P{Is_DI:   false}', "");
+    Expect(1, 921600, '\P{^Is_DI:   false}', "");
+    Expect(0, 921599, '\p{Is_DI:   false}', "");
+    Expect(1, 921599, '\p{^Is_DI:   false}', "");
+    Expect(1, 921599, '\P{Is_DI:   false}', "");
+    Expect(0, 921599, '\P{^Is_DI:   false}', "");
+    Expect(1, 921600, '\p{Is_DI=	False}', "");
+    Expect(0, 921600, '\p{^Is_DI=	False}', "");
+    Expect(0, 921600, '\P{Is_DI=	False}', "");
+    Expect(1, 921600, '\P{^Is_DI=	False}', "");
+    Expect(0, 921599, '\p{Is_DI=	False}', "");
+    Expect(1, 921599, '\p{^Is_DI=	False}', "");
+    Expect(1, 921599, '\P{Is_DI=	False}', "");
+    Expect(0, 921599, '\P{^Is_DI=	False}', "");
+    Error('\p{Default_Ignorable_Code_Point=/a/ yes}');
+    Error('\P{Default_Ignorable_Code_Point=/a/ yes}');
     Expect(1, 921599, '\p{Default_Ignorable_Code_Point=:\AYes\z:}', "");;
     Expect(0, 921600, '\p{Default_Ignorable_Code_Point=:\AYes\z:}', "");;
     Expect(1, 921599, '\p{Default_Ignorable_Code_Point=yes}', "");
@@ -35417,38 +35993,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 921600, '\P{^Default_Ignorable_Code_Point=yes}', "");
     Expect(1, 921599, '\p{Default_Ignorable_Code_Point=:\Ayes\z:}', "");;
     Expect(0, 921600, '\p{Default_Ignorable_Code_Point=:\Ayes\z:}', "");;
-    Expect(1, 921599, '\p{Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(0, 921599, '\p{^Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(0, 921599, '\P{Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(1, 921599, '\P{^Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(0, 921600, '\p{Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(1, 921600, '\p{^Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(1, 921600, '\P{Default_Ignorable_Code_Point:	 -Yes}', "");
-    Expect(0, 921600, '\P{^Default_Ignorable_Code_Point:	 -Yes}', "");
-    Error('\p{DI=_ Y/a/}');
-    Error('\P{DI=_ Y/a/}');
+    Expect(1, 921599, '\p{Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(0, 921599, '\p{^Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(0, 921599, '\P{Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(1, 921599, '\P{^Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(0, 921600, '\p{Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(1, 921600, '\p{^Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(1, 921600, '\P{Default_Ignorable_Code_Point=	-Yes}', "");
+    Expect(0, 921600, '\P{^Default_Ignorable_Code_Point=	-Yes}', "");
+    Error('\p{DI:   := 	Y}');
+    Error('\P{DI:   := 	Y}');
     Expect(1, 921599, '\p{DI=:\AY\z:}', "");;
     Expect(0, 921600, '\p{DI=:\AY\z:}', "");;
-    Expect(1, 921599, '\p{DI:y}', "");
-    Expect(0, 921599, '\p{^DI:y}', "");
-    Expect(0, 921599, '\P{DI:y}', "");
-    Expect(1, 921599, '\P{^DI:y}', "");
-    Expect(0, 921600, '\p{DI:y}', "");
-    Expect(1, 921600, '\p{^DI:y}', "");
-    Expect(1, 921600, '\P{DI:y}', "");
-    Expect(0, 921600, '\P{^DI:y}', "");
+    Expect(1, 921599, '\p{DI=y}', "");
+    Expect(0, 921599, '\p{^DI=y}', "");
+    Expect(0, 921599, '\P{DI=y}', "");
+    Expect(1, 921599, '\P{^DI=y}', "");
+    Expect(0, 921600, '\p{DI=y}', "");
+    Expect(1, 921600, '\p{^DI=y}', "");
+    Expect(1, 921600, '\P{DI=y}', "");
+    Expect(0, 921600, '\P{^DI=y}', "");
     Expect(1, 921599, '\p{DI=:\Ay\z:}', "");;
     Expect(0, 921600, '\p{DI=:\Ay\z:}', "");;
-    Expect(1, 921599, '\p{DI=-Y}', "");
-    Expect(0, 921599, '\p{^DI=-Y}', "");
-    Expect(0, 921599, '\P{DI=-Y}', "");
-    Expect(1, 921599, '\P{^DI=-Y}', "");
-    Expect(0, 921600, '\p{DI=-Y}', "");
-    Expect(1, 921600, '\p{^DI=-Y}', "");
-    Expect(1, 921600, '\P{DI=-Y}', "");
-    Expect(0, 921600, '\P{^DI=-Y}', "");
-    Error('\p{Is_Default_Ignorable_Code_Point=-/a/t}');
-    Error('\P{Is_Default_Ignorable_Code_Point=-/a/t}');
+    Expect(1, 921599, '\p{DI=-	Y}', "");
+    Expect(0, 921599, '\p{^DI=-	Y}', "");
+    Expect(0, 921599, '\P{DI=-	Y}', "");
+    Expect(1, 921599, '\P{^DI=-	Y}', "");
+    Expect(0, 921600, '\p{DI=-	Y}', "");
+    Expect(1, 921600, '\p{^DI=-	Y}', "");
+    Expect(1, 921600, '\P{DI=-	Y}', "");
+    Expect(0, 921600, '\P{^DI=-	Y}', "");
+    Error('\p{Is_Default_Ignorable_Code_Point=-/a/T}');
+    Error('\P{Is_Default_Ignorable_Code_Point=-/a/T}');
     Expect(1, 921599, '\p{Is_Default_Ignorable_Code_Point=t}', "");
     Expect(0, 921599, '\p{^Is_Default_Ignorable_Code_Point=t}', "");
     Expect(0, 921599, '\P{Is_Default_Ignorable_Code_Point=t}', "");
@@ -35457,96 +36033,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 921600, '\p{^Is_Default_Ignorable_Code_Point=t}', "");
     Expect(1, 921600, '\P{Is_Default_Ignorable_Code_Point=t}', "");
     Expect(0, 921600, '\P{^Is_Default_Ignorable_Code_Point=t}', "");
-    Expect(1, 921599, '\p{Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(0, 921599, '\p{^Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(0, 921599, '\P{Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(1, 921599, '\P{^Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(0, 921600, '\p{Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(1, 921600, '\p{^Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(1, 921600, '\P{Is_Default_Ignorable_Code_Point=	T}', "");
-    Expect(0, 921600, '\P{^Is_Default_Ignorable_Code_Point=	T}', "");
-    Error('\p{Is_DI= 	TRUE/a/}');
-    Error('\P{Is_DI= 	TRUE/a/}');
-    Expect(1, 921599, '\p{Is_DI: true}', "");
-    Expect(0, 921599, '\p{^Is_DI: true}', "");
-    Expect(0, 921599, '\P{Is_DI: true}', "");
-    Expect(1, 921599, '\P{^Is_DI: true}', "");
-    Expect(0, 921600, '\p{Is_DI: true}', "");
-    Expect(1, 921600, '\p{^Is_DI: true}', "");
-    Expect(1, 921600, '\P{Is_DI: true}', "");
-    Expect(0, 921600, '\P{^Is_DI: true}', "");
-    Expect(1, 921599, '\p{Is_DI=- True}', "");
-    Expect(0, 921599, '\p{^Is_DI=- True}', "");
-    Expect(0, 921599, '\P{Is_DI=- True}', "");
-    Expect(1, 921599, '\P{^Is_DI=- True}', "");
-    Expect(0, 921600, '\p{Is_DI=- True}', "");
-    Expect(1, 921600, '\p{^Is_DI=- True}', "");
-    Expect(1, 921600, '\P{Is_DI=- True}', "");
-    Expect(0, 921600, '\P{^Is_DI=- True}', "");
-    Error('\p{Diacritic=	_no/a/}');
-    Error('\P{Diacritic=	_no/a/}');
+    Expect(1, 921599, '\p{Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(0, 921599, '\p{^Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(0, 921599, '\P{Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(1, 921599, '\P{^Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(0, 921600, '\p{Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(1, 921600, '\p{^Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(1, 921600, '\P{Is_Default_Ignorable_Code_Point=- t}', "");
+    Expect(0, 921600, '\P{^Is_Default_Ignorable_Code_Point=- t}', "");
+    Error('\p{Is_DI:	_-True:=}');
+    Error('\P{Is_DI:	_-True:=}');
+    Expect(1, 921599, '\p{Is_DI=true}', "");
+    Expect(0, 921599, '\p{^Is_DI=true}', "");
+    Expect(0, 921599, '\P{Is_DI=true}', "");
+    Expect(1, 921599, '\P{^Is_DI=true}', "");
+    Expect(0, 921600, '\p{Is_DI=true}', "");
+    Expect(1, 921600, '\p{^Is_DI=true}', "");
+    Expect(1, 921600, '\P{Is_DI=true}', "");
+    Expect(0, 921600, '\P{^Is_DI=true}', "");
+    Expect(1, 921599, '\p{Is_DI:	_True}', "");
+    Expect(0, 921599, '\p{^Is_DI:	_True}', "");
+    Expect(0, 921599, '\P{Is_DI:	_True}', "");
+    Expect(1, 921599, '\P{^Is_DI:	_True}', "");
+    Expect(0, 921600, '\p{Is_DI:	_True}', "");
+    Expect(1, 921600, '\p{^Is_DI:	_True}', "");
+    Expect(1, 921600, '\P{Is_DI:	_True}', "");
+    Expect(0, 921600, '\P{^Is_DI:	_True}', "");
+    Error('\p{Diacritic: 	No/a/}');
+    Error('\P{Diacritic: 	No/a/}');
     Expect(1, 125259, '\p{Diacritic=:\ANo\z:}', "");;
     Expect(0, 125258, '\p{Diacritic=:\ANo\z:}', "");;
-    Expect(1, 125259, '\p{Diacritic=no}', "");
-    Expect(0, 125259, '\p{^Diacritic=no}', "");
-    Expect(0, 125259, '\P{Diacritic=no}', "");
-    Expect(1, 125259, '\P{^Diacritic=no}', "");
-    Expect(0, 125258, '\p{Diacritic=no}', "");
-    Expect(1, 125258, '\p{^Diacritic=no}', "");
-    Expect(1, 125258, '\P{Diacritic=no}', "");
-    Expect(0, 125258, '\P{^Diacritic=no}', "");
+    Expect(1, 125259, '\p{Diacritic:no}', "");
+    Expect(0, 125259, '\p{^Diacritic:no}', "");
+    Expect(0, 125259, '\P{Diacritic:no}', "");
+    Expect(1, 125259, '\P{^Diacritic:no}', "");
+    Expect(0, 125258, '\p{Diacritic:no}', "");
+    Expect(1, 125258, '\p{^Diacritic:no}', "");
+    Expect(1, 125258, '\P{Diacritic:no}', "");
+    Expect(0, 125258, '\P{^Diacritic:no}', "");
     Expect(1, 125259, '\p{Diacritic=:\Ano\z:}', "");;
     Expect(0, 125258, '\p{Diacritic=:\Ano\z:}', "");;
-    Expect(1, 125259, '\p{Diacritic=__No}', "");
-    Expect(0, 125259, '\p{^Diacritic=__No}', "");
-    Expect(0, 125259, '\P{Diacritic=__No}', "");
-    Expect(1, 125259, '\P{^Diacritic=__No}', "");
-    Expect(0, 125258, '\p{Diacritic=__No}', "");
-    Expect(1, 125258, '\p{^Diacritic=__No}', "");
-    Expect(1, 125258, '\P{Diacritic=__No}', "");
-    Expect(0, 125258, '\P{^Diacritic=__No}', "");
-    Error('\p{Dia:   	/a/N}');
-    Error('\P{Dia:   	/a/N}');
+    Expect(1, 125259, '\p{Diacritic=	no}', "");
+    Expect(0, 125259, '\p{^Diacritic=	no}', "");
+    Expect(0, 125259, '\P{Diacritic=	no}', "");
+    Expect(1, 125259, '\P{^Diacritic=	no}', "");
+    Expect(0, 125258, '\p{Diacritic=	no}', "");
+    Expect(1, 125258, '\p{^Diacritic=	no}', "");
+    Expect(1, 125258, '\P{Diacritic=	no}', "");
+    Expect(0, 125258, '\P{^Diacritic=	no}', "");
+    Error('\p{Dia:	:=	N}');
+    Error('\P{Dia:	:=	N}');
     Expect(1, 125259, '\p{Dia=:\AN\z:}', "");;
     Expect(0, 125258, '\p{Dia=:\AN\z:}', "");;
-    Expect(1, 125259, '\p{Dia=n}', "");
-    Expect(0, 125259, '\p{^Dia=n}', "");
-    Expect(0, 125259, '\P{Dia=n}', "");
-    Expect(1, 125259, '\P{^Dia=n}', "");
-    Expect(0, 125258, '\p{Dia=n}', "");
-    Expect(1, 125258, '\p{^Dia=n}', "");
-    Expect(1, 125258, '\P{Dia=n}', "");
-    Expect(0, 125258, '\P{^Dia=n}', "");
+    Expect(1, 125259, '\p{Dia: n}', "");
+    Expect(0, 125259, '\p{^Dia: n}', "");
+    Expect(0, 125259, '\P{Dia: n}', "");
+    Expect(1, 125259, '\P{^Dia: n}', "");
+    Expect(0, 125258, '\p{Dia: n}', "");
+    Expect(1, 125258, '\p{^Dia: n}', "");
+    Expect(1, 125258, '\P{Dia: n}', "");
+    Expect(0, 125258, '\P{^Dia: n}', "");
     Expect(1, 125259, '\p{Dia=:\An\z:}', "");;
     Expect(0, 125258, '\p{Dia=:\An\z:}', "");;
-    Expect(1, 125259, '\p{Dia:    N}', "");
-    Expect(0, 125259, '\p{^Dia:    N}', "");
-    Expect(0, 125259, '\P{Dia:    N}', "");
-    Expect(1, 125259, '\P{^Dia:    N}', "");
-    Expect(0, 125258, '\p{Dia:    N}', "");
-    Expect(1, 125258, '\p{^Dia:    N}', "");
-    Expect(1, 125258, '\P{Dia:    N}', "");
-    Expect(0, 125258, '\P{^Dia:    N}', "");
-    Error('\p{Is_Diacritic=:=F}');
-    Error('\P{Is_Diacritic=:=F}');
-    Expect(1, 125259, '\p{Is_Diacritic=f}', "");
-    Expect(0, 125259, '\p{^Is_Diacritic=f}', "");
-    Expect(0, 125259, '\P{Is_Diacritic=f}', "");
-    Expect(1, 125259, '\P{^Is_Diacritic=f}', "");
-    Expect(0, 125258, '\p{Is_Diacritic=f}', "");
-    Expect(1, 125258, '\p{^Is_Diacritic=f}', "");
-    Expect(1, 125258, '\P{Is_Diacritic=f}', "");
-    Expect(0, 125258, '\P{^Is_Diacritic=f}', "");
-    Expect(1, 125259, '\p{Is_Diacritic:   -F}', "");
-    Expect(0, 125259, '\p{^Is_Diacritic:   -F}', "");
-    Expect(0, 125259, '\P{Is_Diacritic:   -F}', "");
-    Expect(1, 125259, '\P{^Is_Diacritic:   -F}', "");
-    Expect(0, 125258, '\p{Is_Diacritic:   -F}', "");
-    Expect(1, 125258, '\p{^Is_Diacritic:   -F}', "");
-    Expect(1, 125258, '\P{Is_Diacritic:   -F}', "");
-    Expect(0, 125258, '\P{^Is_Diacritic:   -F}', "");
-    Error('\p{Is_Dia=	-false/a/}');
-    Error('\P{Is_Dia=	-false/a/}');
+    Expect(1, 125259, '\p{Dia=_	N}', "");
+    Expect(0, 125259, '\p{^Dia=_	N}', "");
+    Expect(0, 125259, '\P{Dia=_	N}', "");
+    Expect(1, 125259, '\P{^Dia=_	N}', "");
+    Expect(0, 125258, '\p{Dia=_	N}', "");
+    Expect(1, 125258, '\p{^Dia=_	N}', "");
+    Expect(1, 125258, '\P{Dia=_	N}', "");
+    Expect(0, 125258, '\P{^Dia=_	N}', "");
+    Error('\p{Is_Diacritic:		f/a/}');
+    Error('\P{Is_Diacritic:		f/a/}');
+    Expect(1, 125259, '\p{Is_Diacritic: f}', "");
+    Expect(0, 125259, '\p{^Is_Diacritic: f}', "");
+    Expect(0, 125259, '\P{Is_Diacritic: f}', "");
+    Expect(1, 125259, '\P{^Is_Diacritic: f}', "");
+    Expect(0, 125258, '\p{Is_Diacritic: f}', "");
+    Expect(1, 125258, '\p{^Is_Diacritic: f}', "");
+    Expect(1, 125258, '\P{Is_Diacritic: f}', "");
+    Expect(0, 125258, '\P{^Is_Diacritic: f}', "");
+    Expect(1, 125259, '\p{Is_Diacritic= F}', "");
+    Expect(0, 125259, '\p{^Is_Diacritic= F}', "");
+    Expect(0, 125259, '\P{Is_Diacritic= F}', "");
+    Expect(1, 125259, '\P{^Is_Diacritic= F}', "");
+    Expect(0, 125258, '\p{Is_Diacritic= F}', "");
+    Expect(1, 125258, '\p{^Is_Diacritic= F}', "");
+    Expect(1, 125258, '\P{Is_Diacritic= F}', "");
+    Expect(0, 125258, '\P{^Is_Diacritic= F}', "");
+    Error('\p{Is_Dia=:=	False}');
+    Error('\P{Is_Dia=:=	False}');
     Expect(1, 125259, '\p{Is_Dia=false}', "");
     Expect(0, 125259, '\p{^Is_Dia=false}', "");
     Expect(0, 125259, '\P{Is_Dia=false}', "");
@@ -35555,16 +36131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125258, '\p{^Is_Dia=false}', "");
     Expect(1, 125258, '\P{Is_Dia=false}', "");
     Expect(0, 125258, '\P{^Is_Dia=false}', "");
-    Expect(1, 125259, '\p{Is_Dia=	false}', "");
-    Expect(0, 125259, '\p{^Is_Dia=	false}', "");
-    Expect(0, 125259, '\P{Is_Dia=	false}', "");
-    Expect(1, 125259, '\P{^Is_Dia=	false}', "");
-    Expect(0, 125258, '\p{Is_Dia=	false}', "");
-    Expect(1, 125258, '\p{^Is_Dia=	false}', "");
-    Expect(1, 125258, '\P{Is_Dia=	false}', "");
-    Expect(0, 125258, '\P{^Is_Dia=	false}', "");
-    Error('\p{Diacritic: 	:=YES}');
-    Error('\P{Diacritic: 	:=YES}');
+    Expect(1, 125259, '\p{Is_Dia=-FALSE}', "");
+    Expect(0, 125259, '\p{^Is_Dia=-FALSE}', "");
+    Expect(0, 125259, '\P{Is_Dia=-FALSE}', "");
+    Expect(1, 125259, '\P{^Is_Dia=-FALSE}', "");
+    Expect(0, 125258, '\p{Is_Dia=-FALSE}', "");
+    Expect(1, 125258, '\p{^Is_Dia=-FALSE}', "");
+    Expect(1, 125258, '\P{Is_Dia=-FALSE}', "");
+    Expect(0, 125258, '\P{^Is_Dia=-FALSE}', "");
+    Error('\p{Diacritic=/a/-Yes}');
+    Error('\P{Diacritic=/a/-Yes}');
     Expect(1, 125258, '\p{Diacritic=:\AYes\z:}', "");;
     Expect(0, 125259, '\p{Diacritic=:\AYes\z:}', "");;
     Expect(1, 125258, '\p{Diacritic=yes}', "");
@@ -35577,16 +36153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125259, '\P{^Diacritic=yes}', "");
     Expect(1, 125258, '\p{Diacritic=:\Ayes\z:}', "");;
     Expect(0, 125259, '\p{Diacritic=:\Ayes\z:}', "");;
-    Expect(1, 125258, '\p{Diacritic=- YES}', "");
-    Expect(0, 125258, '\p{^Diacritic=- YES}', "");
-    Expect(0, 125258, '\P{Diacritic=- YES}', "");
-    Expect(1, 125258, '\P{^Diacritic=- YES}', "");
-    Expect(0, 125259, '\p{Diacritic=- YES}', "");
-    Expect(1, 125259, '\p{^Diacritic=- YES}', "");
-    Expect(1, 125259, '\P{Diacritic=- YES}', "");
-    Expect(0, 125259, '\P{^Diacritic=- YES}', "");
-    Error('\p{Dia=_ y:=}');
-    Error('\P{Dia=_ y:=}');
+    Expect(1, 125258, '\p{Diacritic:    _Yes}', "");
+    Expect(0, 125258, '\p{^Diacritic:    _Yes}', "");
+    Expect(0, 125258, '\P{Diacritic:    _Yes}', "");
+    Expect(1, 125258, '\P{^Diacritic:    _Yes}', "");
+    Expect(0, 125259, '\p{Diacritic:    _Yes}', "");
+    Expect(1, 125259, '\p{^Diacritic:    _Yes}', "");
+    Expect(1, 125259, '\P{Diacritic:    _Yes}', "");
+    Expect(0, 125259, '\P{^Diacritic:    _Yes}', "");
+    Error('\p{Dia= :=Y}');
+    Error('\P{Dia= :=Y}');
     Expect(1, 125258, '\p{Dia=:\AY\z:}', "");;
     Expect(0, 125259, '\p{Dia=:\AY\z:}', "");;
     Expect(1, 125258, '\p{Dia=y}', "");
@@ -35599,16 +36175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125259, '\P{^Dia=y}', "");
     Expect(1, 125258, '\p{Dia=:\Ay\z:}', "");;
     Expect(0, 125259, '\p{Dia=:\Ay\z:}', "");;
-    Expect(1, 125258, '\p{Dia: 	y}', "");
-    Expect(0, 125258, '\p{^Dia: 	y}', "");
-    Expect(0, 125258, '\P{Dia: 	y}', "");
-    Expect(1, 125258, '\P{^Dia: 	y}', "");
-    Expect(0, 125259, '\p{Dia: 	y}', "");
-    Expect(1, 125259, '\p{^Dia: 	y}', "");
-    Expect(1, 125259, '\P{Dia: 	y}', "");
-    Expect(0, 125259, '\P{^Dia: 	y}', "");
-    Error('\p{Is_Diacritic=--T/a/}');
-    Error('\P{Is_Diacritic=--T/a/}');
+    Expect(1, 125258, '\p{Dia=	Y}', "");
+    Expect(0, 125258, '\p{^Dia=	Y}', "");
+    Expect(0, 125258, '\P{Dia=	Y}', "");
+    Expect(1, 125258, '\P{^Dia=	Y}', "");
+    Expect(0, 125259, '\p{Dia=	Y}', "");
+    Expect(1, 125259, '\p{^Dia=	Y}', "");
+    Expect(1, 125259, '\P{Dia=	Y}', "");
+    Expect(0, 125259, '\P{^Dia=	Y}', "");
+    Error('\p{Is_Diacritic=_ t:=}');
+    Error('\P{Is_Diacritic=_ t:=}');
     Expect(1, 125258, '\p{Is_Diacritic=t}', "");
     Expect(0, 125258, '\p{^Is_Diacritic=t}', "");
     Expect(0, 125258, '\P{Is_Diacritic=t}', "");
@@ -35617,16 +36193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125259, '\p{^Is_Diacritic=t}', "");
     Expect(1, 125259, '\P{Is_Diacritic=t}', "");
     Expect(0, 125259, '\P{^Is_Diacritic=t}', "");
-    Expect(1, 125258, '\p{Is_Diacritic=_t}', "");
-    Expect(0, 125258, '\p{^Is_Diacritic=_t}', "");
-    Expect(0, 125258, '\P{Is_Diacritic=_t}', "");
-    Expect(1, 125258, '\P{^Is_Diacritic=_t}', "");
-    Expect(0, 125259, '\p{Is_Diacritic=_t}', "");
-    Expect(1, 125259, '\p{^Is_Diacritic=_t}', "");
-    Expect(1, 125259, '\P{Is_Diacritic=_t}', "");
-    Expect(0, 125259, '\P{^Is_Diacritic=_t}', "");
-    Error('\p{Is_Dia=_True:=}');
-    Error('\P{Is_Dia=_True:=}');
+    Expect(1, 125258, '\p{Is_Diacritic= t}', "");
+    Expect(0, 125258, '\p{^Is_Diacritic= t}', "");
+    Expect(0, 125258, '\P{Is_Diacritic= t}', "");
+    Expect(1, 125258, '\P{^Is_Diacritic= t}', "");
+    Expect(0, 125259, '\p{Is_Diacritic= t}', "");
+    Expect(1, 125259, '\p{^Is_Diacritic= t}', "");
+    Expect(1, 125259, '\P{Is_Diacritic= t}', "");
+    Expect(0, 125259, '\P{^Is_Diacritic= t}', "");
+    Error('\p{Is_Dia=	 True/a/}');
+    Error('\P{Is_Dia=	 True/a/}');
     Expect(1, 125258, '\p{Is_Dia=true}', "");
     Expect(0, 125258, '\p{^Is_Dia=true}', "");
     Expect(0, 125258, '\P{Is_Dia=true}', "");
@@ -35635,14 +36211,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125259, '\p{^Is_Dia=true}', "");
     Expect(1, 125259, '\P{Is_Dia=true}', "");
     Expect(0, 125259, '\P{^Is_Dia=true}', "");
-    Expect(1, 125258, '\p{Is_Dia=--True}', "");
-    Expect(0, 125258, '\p{^Is_Dia=--True}', "");
-    Expect(0, 125258, '\P{Is_Dia=--True}', "");
-    Expect(1, 125258, '\P{^Is_Dia=--True}', "");
-    Expect(0, 125259, '\p{Is_Dia=--True}', "");
-    Expect(1, 125259, '\p{^Is_Dia=--True}', "");
-    Expect(1, 125259, '\P{Is_Dia=--True}', "");
-    Expect(0, 125259, '\P{^Is_Dia=--True}', "");
+    Expect(1, 125258, '\p{Is_Dia=_ TRUE}', "");
+    Expect(0, 125258, '\p{^Is_Dia=_ TRUE}', "");
+    Expect(0, 125258, '\P{Is_Dia=_ TRUE}', "");
+    Expect(1, 125258, '\P{^Is_Dia=_ TRUE}', "");
+    Expect(0, 125259, '\p{Is_Dia=_ TRUE}', "");
+    Expect(1, 125259, '\p{^Is_Dia=_ TRUE}', "");
+    Expect(1, 125259, '\P{Is_Dia=_ TRUE}', "");
+    Expect(0, 125259, '\P{^Is_Dia=_ TRUE}', "");
     Error('\p{decompositionmapping}');
     Error('\P{decompositionmapping}');
     Error('\p{dm}');
@@ -35651,30 +36227,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Error('\P{decompositiontype}');
     Error('\p{dt}');
     Error('\P{dt}');
-    Error('\p{Decomposition_Type=-_Canonical/a/}');
-    Error('\P{Decomposition_Type=-_Canonical/a/}');
+    Error('\p{Decomposition_Type= Canonical:=}');
+    Error('\P{Decomposition_Type= Canonical:=}');
     Expect(1, 195101, '\p{Decomposition_Type=:\ACanonical\z:}', "");;
     Expect(0, 195102, '\p{Decomposition_Type=:\ACanonical\z:}', "");;
-    Expect(1, 195101, '\p{Decomposition_Type=canonical}', "");
-    Expect(0, 195101, '\p{^Decomposition_Type=canonical}', "");
-    Expect(0, 195101, '\P{Decomposition_Type=canonical}', "");
-    Expect(1, 195101, '\P{^Decomposition_Type=canonical}', "");
-    Expect(0, 195102, '\p{Decomposition_Type=canonical}', "");
-    Expect(1, 195102, '\p{^Decomposition_Type=canonical}', "");
-    Expect(1, 195102, '\P{Decomposition_Type=canonical}', "");
-    Expect(0, 195102, '\P{^Decomposition_Type=canonical}', "");
+    Expect(1, 195101, '\p{Decomposition_Type: canonical}', "");
+    Expect(0, 195101, '\p{^Decomposition_Type: canonical}', "");
+    Expect(0, 195101, '\P{Decomposition_Type: canonical}', "");
+    Expect(1, 195101, '\P{^Decomposition_Type: canonical}', "");
+    Expect(0, 195102, '\p{Decomposition_Type: canonical}', "");
+    Expect(1, 195102, '\p{^Decomposition_Type: canonical}', "");
+    Expect(1, 195102, '\P{Decomposition_Type: canonical}', "");
+    Expect(0, 195102, '\P{^Decomposition_Type: canonical}', "");
     Expect(1, 195101, '\p{Decomposition_Type=:\Acanonical\z:}', "");;
     Expect(0, 195102, '\p{Decomposition_Type=:\Acanonical\z:}', "");;
-    Expect(1, 195101, '\p{Decomposition_Type=	_CANONICAL}', "");
-    Expect(0, 195101, '\p{^Decomposition_Type=	_CANONICAL}', "");
-    Expect(0, 195101, '\P{Decomposition_Type=	_CANONICAL}', "");
-    Expect(1, 195101, '\P{^Decomposition_Type=	_CANONICAL}', "");
-    Expect(0, 195102, '\p{Decomposition_Type=	_CANONICAL}', "");
-    Expect(1, 195102, '\p{^Decomposition_Type=	_CANONICAL}', "");
-    Expect(1, 195102, '\P{Decomposition_Type=	_CANONICAL}', "");
-    Expect(0, 195102, '\P{^Decomposition_Type=	_CANONICAL}', "");
-    Error('\p{Dt=_ Can:=}');
-    Error('\P{Dt=_ Can:=}');
+    Expect(1, 195101, '\p{Decomposition_Type=__Canonical}', "");
+    Expect(0, 195101, '\p{^Decomposition_Type=__Canonical}', "");
+    Expect(0, 195101, '\P{Decomposition_Type=__Canonical}', "");
+    Expect(1, 195101, '\P{^Decomposition_Type=__Canonical}', "");
+    Expect(0, 195102, '\p{Decomposition_Type=__Canonical}', "");
+    Expect(1, 195102, '\p{^Decomposition_Type=__Canonical}', "");
+    Expect(1, 195102, '\P{Decomposition_Type=__Canonical}', "");
+    Expect(0, 195102, '\P{^Decomposition_Type=__Canonical}', "");
+    Error('\p{Dt=:=  Can}');
+    Error('\P{Dt=:=  Can}');
     Expect(1, 195101, '\p{Dt=:\ACan\z:}', "");;
     Expect(0, 195102, '\p{Dt=:\ACan\z:}', "");;
     Expect(1, 195101, '\p{Dt=can}', "");
@@ -35687,16 +36263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 195102, '\P{^Dt=can}', "");
     Expect(1, 195101, '\p{Dt=:\Acan\z:}', "");;
     Expect(0, 195102, '\p{Dt=:\Acan\z:}', "");;
-    Expect(1, 195101, '\p{Dt=-	Can}', "");
-    Expect(0, 195101, '\p{^Dt=-	Can}', "");
-    Expect(0, 195101, '\P{Dt=-	Can}', "");
-    Expect(1, 195101, '\P{^Dt=-	Can}', "");
-    Expect(0, 195102, '\p{Dt=-	Can}', "");
-    Expect(1, 195102, '\p{^Dt=-	Can}', "");
-    Expect(1, 195102, '\P{Dt=-	Can}', "");
-    Expect(0, 195102, '\P{^Dt=-	Can}', "");
-    Error('\p{Is_Decomposition_Type=CANONICAL/a/}');
-    Error('\P{Is_Decomposition_Type=CANONICAL/a/}');
+    Expect(1, 195101, '\p{Dt=Can}', "");
+    Expect(0, 195101, '\p{^Dt=Can}', "");
+    Expect(0, 195101, '\P{Dt=Can}', "");
+    Expect(1, 195101, '\P{^Dt=Can}', "");
+    Expect(0, 195102, '\p{Dt=Can}', "");
+    Expect(1, 195102, '\p{^Dt=Can}', "");
+    Expect(1, 195102, '\P{Dt=Can}', "");
+    Expect(0, 195102, '\P{^Dt=Can}', "");
+    Error('\p{Is_Decomposition_Type:	:=canonical}');
+    Error('\P{Is_Decomposition_Type:	:=canonical}');
     Expect(1, 195101, '\p{Is_Decomposition_Type=canonical}', "");
     Expect(0, 195101, '\p{^Is_Decomposition_Type=canonical}', "");
     Expect(0, 195101, '\P{Is_Decomposition_Type=canonical}', "");
@@ -35705,34 +36281,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195102, '\p{^Is_Decomposition_Type=canonical}', "");
     Expect(1, 195102, '\P{Is_Decomposition_Type=canonical}', "");
     Expect(0, 195102, '\P{^Is_Decomposition_Type=canonical}', "");
-    Expect(1, 195101, '\p{Is_Decomposition_Type=  Canonical}', "");
-    Expect(0, 195101, '\p{^Is_Decomposition_Type=  Canonical}', "");
-    Expect(0, 195101, '\P{Is_Decomposition_Type=  Canonical}', "");
-    Expect(1, 195101, '\P{^Is_Decomposition_Type=  Canonical}', "");
-    Expect(0, 195102, '\p{Is_Decomposition_Type=  Canonical}', "");
-    Expect(1, 195102, '\p{^Is_Decomposition_Type=  Canonical}', "");
-    Expect(1, 195102, '\P{Is_Decomposition_Type=  Canonical}', "");
-    Expect(0, 195102, '\P{^Is_Decomposition_Type=  Canonical}', "");
-    Error('\p{Is_Dt=/a/_Can}');
-    Error('\P{Is_Dt=/a/_Can}');
-    Expect(1, 195101, '\p{Is_Dt: can}', "");
-    Expect(0, 195101, '\p{^Is_Dt: can}', "");
-    Expect(0, 195101, '\P{Is_Dt: can}', "");
-    Expect(1, 195101, '\P{^Is_Dt: can}', "");
-    Expect(0, 195102, '\p{Is_Dt: can}', "");
-    Expect(1, 195102, '\p{^Is_Dt: can}', "");
-    Expect(1, 195102, '\P{Is_Dt: can}', "");
-    Expect(0, 195102, '\P{^Is_Dt: can}', "");
-    Expect(1, 195101, '\p{Is_Dt= _can}', "");
-    Expect(0, 195101, '\p{^Is_Dt= _can}', "");
-    Expect(0, 195101, '\P{Is_Dt= _can}', "");
-    Expect(1, 195101, '\P{^Is_Dt= _can}', "");
-    Expect(0, 195102, '\p{Is_Dt= _can}', "");
-    Expect(1, 195102, '\p{^Is_Dt= _can}', "");
-    Expect(1, 195102, '\P{Is_Dt= _can}', "");
-    Expect(0, 195102, '\P{^Is_Dt= _can}', "");
-    Error('\p{Decomposition_Type=/a/ _COMPAT}');
-    Error('\P{Decomposition_Type=/a/ _COMPAT}');
+    Expect(1, 195101, '\p{Is_Decomposition_Type=_Canonical}', "");
+    Expect(0, 195101, '\p{^Is_Decomposition_Type=_Canonical}', "");
+    Expect(0, 195101, '\P{Is_Decomposition_Type=_Canonical}', "");
+    Expect(1, 195101, '\P{^Is_Decomposition_Type=_Canonical}', "");
+    Expect(0, 195102, '\p{Is_Decomposition_Type=_Canonical}', "");
+    Expect(1, 195102, '\p{^Is_Decomposition_Type=_Canonical}', "");
+    Expect(1, 195102, '\P{Is_Decomposition_Type=_Canonical}', "");
+    Expect(0, 195102, '\P{^Is_Decomposition_Type=_Canonical}', "");
+    Error('\p{Is_Dt=	_Can/a/}');
+    Error('\P{Is_Dt=	_Can/a/}');
+    Expect(1, 195101, '\p{Is_Dt=can}', "");
+    Expect(0, 195101, '\p{^Is_Dt=can}', "");
+    Expect(0, 195101, '\P{Is_Dt=can}', "");
+    Expect(1, 195101, '\P{^Is_Dt=can}', "");
+    Expect(0, 195102, '\p{Is_Dt=can}', "");
+    Expect(1, 195102, '\p{^Is_Dt=can}', "");
+    Expect(1, 195102, '\P{Is_Dt=can}', "");
+    Expect(0, 195102, '\P{^Is_Dt=can}', "");
+    Expect(1, 195101, '\p{Is_Dt= CAN}', "");
+    Expect(0, 195101, '\p{^Is_Dt= CAN}', "");
+    Expect(0, 195101, '\P{Is_Dt= CAN}', "");
+    Expect(1, 195101, '\P{^Is_Dt= CAN}', "");
+    Expect(0, 195102, '\p{Is_Dt= CAN}', "");
+    Expect(1, 195102, '\p{^Is_Dt= CAN}', "");
+    Expect(1, 195102, '\P{Is_Dt= CAN}', "");
+    Expect(0, 195102, '\P{^Is_Dt= CAN}', "");
+    Error('\p{Decomposition_Type:   /a/		Compat}');
+    Error('\P{Decomposition_Type:   /a/		Compat}');
     Expect(1, 127560, '\p{Decomposition_Type=:\ACompat\z:}', "");;
     Expect(0, 127561, '\p{Decomposition_Type=:\ACompat\z:}', "");;
     Expect(1, 127560, '\p{Decomposition_Type=compat}', "");
@@ -35745,38 +36321,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127561, '\P{^Decomposition_Type=compat}', "");
     Expect(1, 127560, '\p{Decomposition_Type=:\Acompat\z:}', "");;
     Expect(0, 127561, '\p{Decomposition_Type=:\Acompat\z:}', "");;
-    Expect(1, 127560, '\p{Decomposition_Type= Compat}', "");
-    Expect(0, 127560, '\p{^Decomposition_Type= Compat}', "");
-    Expect(0, 127560, '\P{Decomposition_Type= Compat}', "");
-    Expect(1, 127560, '\P{^Decomposition_Type= Compat}', "");
-    Expect(0, 127561, '\p{Decomposition_Type= Compat}', "");
-    Expect(1, 127561, '\p{^Decomposition_Type= Compat}', "");
-    Expect(1, 127561, '\P{Decomposition_Type= Compat}', "");
-    Expect(0, 127561, '\P{^Decomposition_Type= Compat}', "");
-    Error('\p{Dt:   /a/com}');
-    Error('\P{Dt:   /a/com}');
+    Expect(1, 127560, '\p{Decomposition_Type= _COMPAT}', "");
+    Expect(0, 127560, '\p{^Decomposition_Type= _COMPAT}', "");
+    Expect(0, 127560, '\P{Decomposition_Type= _COMPAT}', "");
+    Expect(1, 127560, '\P{^Decomposition_Type= _COMPAT}', "");
+    Expect(0, 127561, '\p{Decomposition_Type= _COMPAT}', "");
+    Expect(1, 127561, '\p{^Decomposition_Type= _COMPAT}', "");
+    Expect(1, 127561, '\P{Decomposition_Type= _COMPAT}', "");
+    Expect(0, 127561, '\P{^Decomposition_Type= _COMPAT}', "");
+    Error('\p{Dt=	_COM:=}');
+    Error('\P{Dt=	_COM:=}');
     Expect(1, 127560, '\p{Dt=:\ACom\z:}', "");;
     Expect(0, 127561, '\p{Dt=:\ACom\z:}', "");;
-    Expect(1, 127560, '\p{Dt=com}', "");
-    Expect(0, 127560, '\p{^Dt=com}', "");
-    Expect(0, 127560, '\P{Dt=com}', "");
-    Expect(1, 127560, '\P{^Dt=com}', "");
-    Expect(0, 127561, '\p{Dt=com}', "");
-    Expect(1, 127561, '\p{^Dt=com}', "");
-    Expect(1, 127561, '\P{Dt=com}', "");
-    Expect(0, 127561, '\P{^Dt=com}', "");
+    Expect(1, 127560, '\p{Dt:	com}', "");
+    Expect(0, 127560, '\p{^Dt:	com}', "");
+    Expect(0, 127560, '\P{Dt:	com}', "");
+    Expect(1, 127560, '\P{^Dt:	com}', "");
+    Expect(0, 127561, '\p{Dt:	com}', "");
+    Expect(1, 127561, '\p{^Dt:	com}', "");
+    Expect(1, 127561, '\P{Dt:	com}', "");
+    Expect(0, 127561, '\P{^Dt:	com}', "");
     Expect(1, 127560, '\p{Dt=:\Acom\z:}', "");;
     Expect(0, 127561, '\p{Dt=:\Acom\z:}', "");;
-    Expect(1, 127560, '\p{Dt= _com}', "");
-    Expect(0, 127560, '\p{^Dt= _com}', "");
-    Expect(0, 127560, '\P{Dt= _com}', "");
-    Expect(1, 127560, '\P{^Dt= _com}', "");
-    Expect(0, 127561, '\p{Dt= _com}', "");
-    Expect(1, 127561, '\p{^Dt= _com}', "");
-    Expect(1, 127561, '\P{Dt= _com}', "");
-    Expect(0, 127561, '\P{^Dt= _com}', "");
-    Error('\p{Is_Decomposition_Type=_compat:=}');
-    Error('\P{Is_Decomposition_Type=_compat:=}');
+    Expect(1, 127560, '\p{Dt= 	COM}', "");
+    Expect(0, 127560, '\p{^Dt= 	COM}', "");
+    Expect(0, 127560, '\P{Dt= 	COM}', "");
+    Expect(1, 127560, '\P{^Dt= 	COM}', "");
+    Expect(0, 127561, '\p{Dt= 	COM}', "");
+    Expect(1, 127561, '\p{^Dt= 	COM}', "");
+    Expect(1, 127561, '\P{Dt= 	COM}', "");
+    Expect(0, 127561, '\P{^Dt= 	COM}', "");
+    Error('\p{Is_Decomposition_Type=/a/--compat}');
+    Error('\P{Is_Decomposition_Type=/a/--compat}');
     Expect(1, 127560, '\p{Is_Decomposition_Type=compat}', "");
     Expect(0, 127560, '\p{^Is_Decomposition_Type=compat}', "");
     Expect(0, 127560, '\P{Is_Decomposition_Type=compat}', "");
@@ -35785,34 +36361,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127561, '\p{^Is_Decomposition_Type=compat}', "");
     Expect(1, 127561, '\P{Is_Decomposition_Type=compat}', "");
     Expect(0, 127561, '\P{^Is_Decomposition_Type=compat}', "");
-    Expect(1, 127560, '\p{Is_Decomposition_Type= Compat}', "");
-    Expect(0, 127560, '\p{^Is_Decomposition_Type= Compat}', "");
-    Expect(0, 127560, '\P{Is_Decomposition_Type= Compat}', "");
-    Expect(1, 127560, '\P{^Is_Decomposition_Type= Compat}', "");
-    Expect(0, 127561, '\p{Is_Decomposition_Type= Compat}', "");
-    Expect(1, 127561, '\p{^Is_Decomposition_Type= Compat}', "");
-    Expect(1, 127561, '\P{Is_Decomposition_Type= Compat}', "");
-    Expect(0, 127561, '\P{^Is_Decomposition_Type= Compat}', "");
-    Error('\p{Is_Dt=:=-_com}');
-    Error('\P{Is_Dt=:=-_com}');
-    Expect(1, 127560, '\p{Is_Dt=com}', "");
-    Expect(0, 127560, '\p{^Is_Dt=com}', "");
-    Expect(0, 127560, '\P{Is_Dt=com}', "");
-    Expect(1, 127560, '\P{^Is_Dt=com}', "");
-    Expect(0, 127561, '\p{Is_Dt=com}', "");
-    Expect(1, 127561, '\p{^Is_Dt=com}', "");
-    Expect(1, 127561, '\P{Is_Dt=com}', "");
-    Expect(0, 127561, '\P{^Is_Dt=com}', "");
-    Expect(1, 127560, '\p{Is_Dt= 	Com}', "");
-    Expect(0, 127560, '\p{^Is_Dt= 	Com}', "");
-    Expect(0, 127560, '\P{Is_Dt= 	Com}', "");
-    Expect(1, 127560, '\P{^Is_Dt= 	Com}', "");
-    Expect(0, 127561, '\p{Is_Dt= 	Com}', "");
-    Expect(1, 127561, '\p{^Is_Dt= 	Com}', "");
-    Expect(1, 127561, '\P{Is_Dt= 	Com}', "");
-    Expect(0, 127561, '\P{^Is_Dt= 	Com}', "");
-    Error('\p{Decomposition_Type=-_Circle:=}');
-    Error('\P{Decomposition_Type=-_Circle:=}');
+    Expect(1, 127560, '\p{Is_Decomposition_Type:  	compat}', "");
+    Expect(0, 127560, '\p{^Is_Decomposition_Type:  	compat}', "");
+    Expect(0, 127560, '\P{Is_Decomposition_Type:  	compat}', "");
+    Expect(1, 127560, '\P{^Is_Decomposition_Type:  	compat}', "");
+    Expect(0, 127561, '\p{Is_Decomposition_Type:  	compat}', "");
+    Expect(1, 127561, '\p{^Is_Decomposition_Type:  	compat}', "");
+    Expect(1, 127561, '\P{Is_Decomposition_Type:  	compat}', "");
+    Expect(0, 127561, '\P{^Is_Decomposition_Type:  	compat}', "");
+    Error('\p{Is_Dt=-/a/Com}');
+    Error('\P{Is_Dt=-/a/Com}');
+    Expect(1, 127560, '\p{Is_Dt:com}', "");
+    Expect(0, 127560, '\p{^Is_Dt:com}', "");
+    Expect(0, 127560, '\P{Is_Dt:com}', "");
+    Expect(1, 127560, '\P{^Is_Dt:com}', "");
+    Expect(0, 127561, '\p{Is_Dt:com}', "");
+    Expect(1, 127561, '\p{^Is_Dt:com}', "");
+    Expect(1, 127561, '\P{Is_Dt:com}', "");
+    Expect(0, 127561, '\P{^Is_Dt:com}', "");
+    Expect(1, 127560, '\p{Is_Dt=_ com}', "");
+    Expect(0, 127560, '\p{^Is_Dt=_ com}', "");
+    Expect(0, 127560, '\P{Is_Dt=_ com}', "");
+    Expect(1, 127560, '\P{^Is_Dt=_ com}', "");
+    Expect(0, 127561, '\p{Is_Dt=_ com}', "");
+    Expect(1, 127561, '\p{^Is_Dt=_ com}', "");
+    Expect(1, 127561, '\P{Is_Dt=_ com}', "");
+    Expect(0, 127561, '\P{^Is_Dt=_ com}', "");
+    Error('\p{Decomposition_Type=/a/__Circle}');
+    Error('\P{Decomposition_Type=/a/__Circle}');
     Expect(1, 127569, '\p{Decomposition_Type=:\ACircle\z:}', "");;
     Expect(0, 127570, '\p{Decomposition_Type=:\ACircle\z:}', "");;
     Expect(1, 127569, '\p{Decomposition_Type=circle}', "");
@@ -35825,16 +36401,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127570, '\P{^Decomposition_Type=circle}', "");
     Expect(1, 127569, '\p{Decomposition_Type=:\Acircle\z:}', "");;
     Expect(0, 127570, '\p{Decomposition_Type=:\Acircle\z:}', "");;
-    Expect(1, 127569, '\p{Decomposition_Type=_	Circle}', "");
-    Expect(0, 127569, '\p{^Decomposition_Type=_	Circle}', "");
-    Expect(0, 127569, '\P{Decomposition_Type=_	Circle}', "");
-    Expect(1, 127569, '\P{^Decomposition_Type=_	Circle}', "");
-    Expect(0, 127570, '\p{Decomposition_Type=_	Circle}', "");
-    Expect(1, 127570, '\p{^Decomposition_Type=_	Circle}', "");
-    Expect(1, 127570, '\P{Decomposition_Type=_	Circle}', "");
-    Expect(0, 127570, '\P{^Decomposition_Type=_	Circle}', "");
-    Error('\p{Dt=	/a/Enc}');
-    Error('\P{Dt=	/a/Enc}');
+    Expect(1, 127569, '\p{Decomposition_Type= -Circle}', "");
+    Expect(0, 127569, '\p{^Decomposition_Type= -Circle}', "");
+    Expect(0, 127569, '\P{Decomposition_Type= -Circle}', "");
+    Expect(1, 127569, '\P{^Decomposition_Type= -Circle}', "");
+    Expect(0, 127570, '\p{Decomposition_Type= -Circle}', "");
+    Expect(1, 127570, '\p{^Decomposition_Type= -Circle}', "");
+    Expect(1, 127570, '\P{Decomposition_Type= -Circle}', "");
+    Expect(0, 127570, '\P{^Decomposition_Type= -Circle}', "");
+    Error('\p{Dt=-_Enc:=}');
+    Error('\P{Dt=-_Enc:=}');
     Expect(1, 127569, '\p{Dt=:\AEnc\z:}', "");;
     Expect(0, 127570, '\p{Dt=:\AEnc\z:}', "");;
     Expect(1, 127569, '\p{Dt=enc}', "");
@@ -35847,34 +36423,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127570, '\P{^Dt=enc}', "");
     Expect(1, 127569, '\p{Dt=:\Aenc\z:}', "");;
     Expect(0, 127570, '\p{Dt=:\Aenc\z:}', "");;
-    Expect(1, 127569, '\p{Dt: 	 Enc}', "");
-    Expect(0, 127569, '\p{^Dt: 	 Enc}', "");
-    Expect(0, 127569, '\P{Dt: 	 Enc}', "");
-    Expect(1, 127569, '\P{^Dt: 	 Enc}', "");
-    Expect(0, 127570, '\p{Dt: 	 Enc}', "");
-    Expect(1, 127570, '\p{^Dt: 	 Enc}', "");
-    Expect(1, 127570, '\P{Dt: 	 Enc}', "");
-    Expect(0, 127570, '\P{^Dt: 	 Enc}', "");
-    Error('\p{Is_Decomposition_Type=:=-_circle}');
-    Error('\P{Is_Decomposition_Type=:=-_circle}');
-    Expect(1, 127569, '\p{Is_Decomposition_Type:	circle}', "");
-    Expect(0, 127569, '\p{^Is_Decomposition_Type:	circle}', "");
-    Expect(0, 127569, '\P{Is_Decomposition_Type:	circle}', "");
-    Expect(1, 127569, '\P{^Is_Decomposition_Type:	circle}', "");
-    Expect(0, 127570, '\p{Is_Decomposition_Type:	circle}', "");
-    Expect(1, 127570, '\p{^Is_Decomposition_Type:	circle}', "");
-    Expect(1, 127570, '\P{Is_Decomposition_Type:	circle}', "");
-    Expect(0, 127570, '\P{^Is_Decomposition_Type:	circle}', "");
-    Expect(1, 127569, '\p{Is_Decomposition_Type= 	circle}', "");
-    Expect(0, 127569, '\p{^Is_Decomposition_Type= 	circle}', "");
-    Expect(0, 127569, '\P{Is_Decomposition_Type= 	circle}', "");
-    Expect(1, 127569, '\P{^Is_Decomposition_Type= 	circle}', "");
-    Expect(0, 127570, '\p{Is_Decomposition_Type= 	circle}', "");
-    Expect(1, 127570, '\p{^Is_Decomposition_Type= 	circle}', "");
-    Expect(1, 127570, '\P{Is_Decomposition_Type= 	circle}', "");
-    Expect(0, 127570, '\P{^Is_Decomposition_Type= 	circle}', "");
-    Error('\p{Is_Dt:	 Enc/a/}');
-    Error('\P{Is_Dt:	 Enc/a/}');
+    Expect(1, 127569, '\p{Dt= _Enc}', "");
+    Expect(0, 127569, '\p{^Dt= _Enc}', "");
+    Expect(0, 127569, '\P{Dt= _Enc}', "");
+    Expect(1, 127569, '\P{^Dt= _Enc}', "");
+    Expect(0, 127570, '\p{Dt= _Enc}', "");
+    Expect(1, 127570, '\p{^Dt= _Enc}', "");
+    Expect(1, 127570, '\P{Dt= _Enc}', "");
+    Expect(0, 127570, '\P{^Dt= _Enc}', "");
+    Error('\p{Is_Decomposition_Type=_CIRCLE:=}');
+    Error('\P{Is_Decomposition_Type=_CIRCLE:=}');
+    Expect(1, 127569, '\p{Is_Decomposition_Type=circle}', "");
+    Expect(0, 127569, '\p{^Is_Decomposition_Type=circle}', "");
+    Expect(0, 127569, '\P{Is_Decomposition_Type=circle}', "");
+    Expect(1, 127569, '\P{^Is_Decomposition_Type=circle}', "");
+    Expect(0, 127570, '\p{Is_Decomposition_Type=circle}', "");
+    Expect(1, 127570, '\p{^Is_Decomposition_Type=circle}', "");
+    Expect(1, 127570, '\P{Is_Decomposition_Type=circle}', "");
+    Expect(0, 127570, '\P{^Is_Decomposition_Type=circle}', "");
+    Expect(1, 127569, '\p{Is_Decomposition_Type= Circle}', "");
+    Expect(0, 127569, '\p{^Is_Decomposition_Type= Circle}', "");
+    Expect(0, 127569, '\P{Is_Decomposition_Type= Circle}', "");
+    Expect(1, 127569, '\P{^Is_Decomposition_Type= Circle}', "");
+    Expect(0, 127570, '\p{Is_Decomposition_Type= Circle}', "");
+    Expect(1, 127570, '\p{^Is_Decomposition_Type= Circle}', "");
+    Expect(1, 127570, '\P{Is_Decomposition_Type= Circle}', "");
+    Expect(0, 127570, '\P{^Is_Decomposition_Type= Circle}', "");
+    Error('\p{Is_Dt=/a/_	Enc}');
+    Error('\P{Is_Dt=/a/_	Enc}');
     Expect(1, 127569, '\p{Is_Dt=enc}', "");
     Expect(0, 127569, '\p{^Is_Dt=enc}', "");
     Expect(0, 127569, '\P{Is_Dt=enc}', "");
@@ -35883,16 +36459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127570, '\p{^Is_Dt=enc}', "");
     Expect(1, 127570, '\P{Is_Dt=enc}', "");
     Expect(0, 127570, '\P{^Is_Dt=enc}', "");
-    Expect(1, 127569, '\p{Is_Dt=_ENC}', "");
-    Expect(0, 127569, '\p{^Is_Dt=_ENC}', "");
-    Expect(0, 127569, '\P{Is_Dt=_ENC}', "");
-    Expect(1, 127569, '\P{^Is_Dt=_ENC}', "");
-    Expect(0, 127570, '\p{Is_Dt=_ENC}', "");
-    Expect(1, 127570, '\p{^Is_Dt=_ENC}', "");
-    Expect(1, 127570, '\P{Is_Dt=_ENC}', "");
-    Expect(0, 127570, '\P{^Is_Dt=_ENC}', "");
-    Error('\p{Decomposition_Type=/a/Final}');
-    Error('\P{Decomposition_Type=/a/Final}');
+    Expect(1, 127569, '\p{Is_Dt=		ENC}', "");
+    Expect(0, 127569, '\p{^Is_Dt=		ENC}', "");
+    Expect(0, 127569, '\P{Is_Dt=		ENC}', "");
+    Expect(1, 127569, '\P{^Is_Dt=		ENC}', "");
+    Expect(0, 127570, '\p{Is_Dt=		ENC}', "");
+    Expect(1, 127570, '\p{^Is_Dt=		ENC}', "");
+    Expect(1, 127570, '\P{Is_Dt=		ENC}', "");
+    Expect(0, 127570, '\P{^Is_Dt=		ENC}', "");
+    Error('\p{Decomposition_Type=_:=Final}');
+    Error('\P{Decomposition_Type=_:=Final}');
     Expect(1, 65276, '\p{Decomposition_Type=:\AFinal\z:}', "");;
     Expect(0, 65277, '\p{Decomposition_Type=:\AFinal\z:}', "");;
     Expect(1, 65276, '\p{Decomposition_Type=final}', "");
@@ -35905,56 +36481,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65277, '\P{^Decomposition_Type=final}', "");
     Expect(1, 65276, '\p{Decomposition_Type=:\Afinal\z:}', "");;
     Expect(0, 65277, '\p{Decomposition_Type=:\Afinal\z:}', "");;
-    Expect(1, 65276, '\p{Decomposition_Type=	 final}', "");
-    Expect(0, 65276, '\p{^Decomposition_Type=	 final}', "");
-    Expect(0, 65276, '\P{Decomposition_Type=	 final}', "");
-    Expect(1, 65276, '\P{^Decomposition_Type=	 final}', "");
-    Expect(0, 65277, '\p{Decomposition_Type=	 final}', "");
-    Expect(1, 65277, '\p{^Decomposition_Type=	 final}', "");
-    Expect(1, 65277, '\P{Decomposition_Type=	 final}', "");
-    Expect(0, 65277, '\P{^Decomposition_Type=	 final}', "");
-    Error('\p{Dt=_/a/Fin}');
-    Error('\P{Dt=_/a/Fin}');
+    Expect(1, 65276, '\p{Decomposition_Type= FINAL}', "");
+    Expect(0, 65276, '\p{^Decomposition_Type= FINAL}', "");
+    Expect(0, 65276, '\P{Decomposition_Type= FINAL}', "");
+    Expect(1, 65276, '\P{^Decomposition_Type= FINAL}', "");
+    Expect(0, 65277, '\p{Decomposition_Type= FINAL}', "");
+    Expect(1, 65277, '\p{^Decomposition_Type= FINAL}', "");
+    Expect(1, 65277, '\P{Decomposition_Type= FINAL}', "");
+    Expect(0, 65277, '\P{^Decomposition_Type= FINAL}', "");
+    Error('\p{Dt=_ fin/a/}');
+    Error('\P{Dt=_ fin/a/}');
     Expect(1, 65276, '\p{Dt=:\AFin\z:}', "");;
     Expect(0, 65277, '\p{Dt=:\AFin\z:}', "");;
-    Expect(1, 65276, '\p{Dt:   fin}', "");
-    Expect(0, 65276, '\p{^Dt:   fin}', "");
-    Expect(0, 65276, '\P{Dt:   fin}', "");
-    Expect(1, 65276, '\P{^Dt:   fin}', "");
-    Expect(0, 65277, '\p{Dt:   fin}', "");
-    Expect(1, 65277, '\p{^Dt:   fin}', "");
-    Expect(1, 65277, '\P{Dt:   fin}', "");
-    Expect(0, 65277, '\P{^Dt:   fin}', "");
+    Expect(1, 65276, '\p{Dt=fin}', "");
+    Expect(0, 65276, '\p{^Dt=fin}', "");
+    Expect(0, 65276, '\P{Dt=fin}', "");
+    Expect(1, 65276, '\P{^Dt=fin}', "");
+    Expect(0, 65277, '\p{Dt=fin}', "");
+    Expect(1, 65277, '\p{^Dt=fin}', "");
+    Expect(1, 65277, '\P{Dt=fin}', "");
+    Expect(0, 65277, '\P{^Dt=fin}', "");
     Expect(1, 65276, '\p{Dt=:\Afin\z:}', "");;
     Expect(0, 65277, '\p{Dt=:\Afin\z:}', "");;
-    Expect(1, 65276, '\p{Dt=-_FIN}', "");
-    Expect(0, 65276, '\p{^Dt=-_FIN}', "");
-    Expect(0, 65276, '\P{Dt=-_FIN}', "");
-    Expect(1, 65276, '\P{^Dt=-_FIN}', "");
-    Expect(0, 65277, '\p{Dt=-_FIN}', "");
-    Expect(1, 65277, '\p{^Dt=-_FIN}', "");
-    Expect(1, 65277, '\P{Dt=-_FIN}', "");
-    Expect(0, 65277, '\P{^Dt=-_FIN}', "");
-    Error('\p{Is_Decomposition_Type=/a/__FINAL}');
-    Error('\P{Is_Decomposition_Type=/a/__FINAL}');
-    Expect(1, 65276, '\p{Is_Decomposition_Type:	final}', "");
-    Expect(0, 65276, '\p{^Is_Decomposition_Type:	final}', "");
-    Expect(0, 65276, '\P{Is_Decomposition_Type:	final}', "");
-    Expect(1, 65276, '\P{^Is_Decomposition_Type:	final}', "");
-    Expect(0, 65277, '\p{Is_Decomposition_Type:	final}', "");
-    Expect(1, 65277, '\p{^Is_Decomposition_Type:	final}', "");
-    Expect(1, 65277, '\P{Is_Decomposition_Type:	final}', "");
-    Expect(0, 65277, '\P{^Is_Decomposition_Type:	final}', "");
-    Expect(1, 65276, '\p{Is_Decomposition_Type=  final}', "");
-    Expect(0, 65276, '\p{^Is_Decomposition_Type=  final}', "");
-    Expect(0, 65276, '\P{Is_Decomposition_Type=  final}', "");
-    Expect(1, 65276, '\P{^Is_Decomposition_Type=  final}', "");
-    Expect(0, 65277, '\p{Is_Decomposition_Type=  final}', "");
-    Expect(1, 65277, '\p{^Is_Decomposition_Type=  final}', "");
-    Expect(1, 65277, '\P{Is_Decomposition_Type=  final}', "");
-    Expect(0, 65277, '\P{^Is_Decomposition_Type=  final}', "");
-    Error('\p{Is_Dt=:=-Fin}');
-    Error('\P{Is_Dt=:=-Fin}');
+    Expect(1, 65276, '\p{Dt=--fin}', "");
+    Expect(0, 65276, '\p{^Dt=--fin}', "");
+    Expect(0, 65276, '\P{Dt=--fin}', "");
+    Expect(1, 65276, '\P{^Dt=--fin}', "");
+    Expect(0, 65277, '\p{Dt=--fin}', "");
+    Expect(1, 65277, '\p{^Dt=--fin}', "");
+    Expect(1, 65277, '\P{Dt=--fin}', "");
+    Expect(0, 65277, '\P{^Dt=--fin}', "");
+    Error('\p{Is_Decomposition_Type=/a/-FINAL}');
+    Error('\P{Is_Decomposition_Type=/a/-FINAL}');
+    Expect(1, 65276, '\p{Is_Decomposition_Type=final}', "");
+    Expect(0, 65276, '\p{^Is_Decomposition_Type=final}', "");
+    Expect(0, 65276, '\P{Is_Decomposition_Type=final}', "");
+    Expect(1, 65276, '\P{^Is_Decomposition_Type=final}', "");
+    Expect(0, 65277, '\p{Is_Decomposition_Type=final}', "");
+    Expect(1, 65277, '\p{^Is_Decomposition_Type=final}', "");
+    Expect(1, 65277, '\P{Is_Decomposition_Type=final}', "");
+    Expect(0, 65277, '\P{^Is_Decomposition_Type=final}', "");
+    Expect(1, 65276, '\p{Is_Decomposition_Type: FINAL}', "");
+    Expect(0, 65276, '\p{^Is_Decomposition_Type: FINAL}', "");
+    Expect(0, 65276, '\P{Is_Decomposition_Type: FINAL}', "");
+    Expect(1, 65276, '\P{^Is_Decomposition_Type: FINAL}', "");
+    Expect(0, 65277, '\p{Is_Decomposition_Type: FINAL}', "");
+    Expect(1, 65277, '\p{^Is_Decomposition_Type: FINAL}', "");
+    Expect(1, 65277, '\P{Is_Decomposition_Type: FINAL}', "");
+    Expect(0, 65277, '\P{^Is_Decomposition_Type: FINAL}', "");
+    Error('\p{Is_Dt=:= _Fin}');
+    Error('\P{Is_Dt=:= _Fin}');
     Expect(1, 65276, '\p{Is_Dt=fin}', "");
     Expect(0, 65276, '\p{^Is_Dt=fin}', "");
     Expect(0, 65276, '\P{Is_Dt=fin}', "");
@@ -35963,16 +36539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65277, '\p{^Is_Dt=fin}', "");
     Expect(1, 65277, '\P{Is_Dt=fin}', "");
     Expect(0, 65277, '\P{^Is_Dt=fin}', "");
-    Expect(1, 65276, '\p{Is_Dt:	  FIN}', "");
-    Expect(0, 65276, '\p{^Is_Dt:	  FIN}', "");
-    Expect(0, 65276, '\P{Is_Dt:	  FIN}', "");
-    Expect(1, 65276, '\P{^Is_Dt:	  FIN}', "");
-    Expect(0, 65277, '\p{Is_Dt:	  FIN}', "");
-    Expect(1, 65277, '\p{^Is_Dt:	  FIN}', "");
-    Expect(1, 65277, '\P{Is_Dt:	  FIN}', "");
-    Expect(0, 65277, '\P{^Is_Dt:	  FIN}', "");
-    Error('\p{Decomposition_Type=--font:=}');
-    Error('\P{Decomposition_Type=--font:=}');
+    Expect(1, 65276, '\p{Is_Dt=	-Fin}', "");
+    Expect(0, 65276, '\p{^Is_Dt=	-Fin}', "");
+    Expect(0, 65276, '\P{Is_Dt=	-Fin}', "");
+    Expect(1, 65276, '\P{^Is_Dt=	-Fin}', "");
+    Expect(0, 65277, '\p{Is_Dt=	-Fin}', "");
+    Expect(1, 65277, '\p{^Is_Dt=	-Fin}', "");
+    Expect(1, 65277, '\P{Is_Dt=	-Fin}', "");
+    Expect(0, 65277, '\P{^Is_Dt=	-Fin}', "");
+    Error('\p{Decomposition_Type=_/a/font}');
+    Error('\P{Decomposition_Type=_/a/font}');
     Expect(1, 130041, '\p{Decomposition_Type=:\AFont\z:}', "");;
     Expect(0, 130042, '\p{Decomposition_Type=:\AFont\z:}', "");;
     Expect(1, 130041, '\p{Decomposition_Type=font}', "");
@@ -35985,16 +36561,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130042, '\P{^Decomposition_Type=font}', "");
     Expect(1, 130041, '\p{Decomposition_Type=:\Afont\z:}', "");;
     Expect(0, 130042, '\p{Decomposition_Type=:\Afont\z:}', "");;
-    Expect(1, 130041, '\p{Decomposition_Type=--font}', "");
-    Expect(0, 130041, '\p{^Decomposition_Type=--font}', "");
-    Expect(0, 130041, '\P{Decomposition_Type=--font}', "");
-    Expect(1, 130041, '\P{^Decomposition_Type=--font}', "");
-    Expect(0, 130042, '\p{Decomposition_Type=--font}', "");
-    Expect(1, 130042, '\p{^Decomposition_Type=--font}', "");
-    Expect(1, 130042, '\P{Decomposition_Type=--font}', "");
-    Expect(0, 130042, '\P{^Decomposition_Type=--font}', "");
-    Error('\p{Dt=	Font/a/}');
-    Error('\P{Dt=	Font/a/}');
+    Expect(1, 130041, '\p{Decomposition_Type=	 Font}', "");
+    Expect(0, 130041, '\p{^Decomposition_Type=	 Font}', "");
+    Expect(0, 130041, '\P{Decomposition_Type=	 Font}', "");
+    Expect(1, 130041, '\P{^Decomposition_Type=	 Font}', "");
+    Expect(0, 130042, '\p{Decomposition_Type=	 Font}', "");
+    Expect(1, 130042, '\p{^Decomposition_Type=	 Font}', "");
+    Expect(1, 130042, '\P{Decomposition_Type=	 Font}', "");
+    Expect(0, 130042, '\P{^Decomposition_Type=	 Font}', "");
+    Error('\p{Dt=	font:=}');
+    Error('\P{Dt=	font:=}');
     Expect(1, 130041, '\p{Dt=:\AFont\z:}', "");;
     Expect(0, 130042, '\p{Dt=:\AFont\z:}', "");;
     Expect(1, 130041, '\p{Dt=font}', "");
@@ -36007,16 +36583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130042, '\P{^Dt=font}', "");
     Expect(1, 130041, '\p{Dt=:\Afont\z:}', "");;
     Expect(0, 130042, '\p{Dt=:\Afont\z:}', "");;
-    Expect(1, 130041, '\p{Dt=	Font}', "");
-    Expect(0, 130041, '\p{^Dt=	Font}', "");
-    Expect(0, 130041, '\P{Dt=	Font}', "");
-    Expect(1, 130041, '\P{^Dt=	Font}', "");
-    Expect(0, 130042, '\p{Dt=	Font}', "");
-    Expect(1, 130042, '\p{^Dt=	Font}', "");
-    Expect(1, 130042, '\P{Dt=	Font}', "");
-    Expect(0, 130042, '\P{^Dt=	Font}', "");
-    Error('\p{Is_Decomposition_Type= -Font/a/}');
-    Error('\P{Is_Decomposition_Type= -Font/a/}');
+    Expect(1, 130041, '\p{Dt:    -Font}', "");
+    Expect(0, 130041, '\p{^Dt:    -Font}', "");
+    Expect(0, 130041, '\P{Dt:    -Font}', "");
+    Expect(1, 130041, '\P{^Dt:    -Font}', "");
+    Expect(0, 130042, '\p{Dt:    -Font}', "");
+    Expect(1, 130042, '\p{^Dt:    -Font}', "");
+    Expect(1, 130042, '\P{Dt:    -Font}', "");
+    Expect(0, 130042, '\P{^Dt:    -Font}', "");
+    Error('\p{Is_Decomposition_Type= _font:=}');
+    Error('\P{Is_Decomposition_Type= _font:=}');
     Expect(1, 130041, '\p{Is_Decomposition_Type=font}', "");
     Expect(0, 130041, '\p{^Is_Decomposition_Type=font}', "");
     Expect(0, 130041, '\P{Is_Decomposition_Type=font}', "");
@@ -36025,16 +36601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130042, '\p{^Is_Decomposition_Type=font}', "");
     Expect(1, 130042, '\P{Is_Decomposition_Type=font}', "");
     Expect(0, 130042, '\P{^Is_Decomposition_Type=font}', "");
-    Expect(1, 130041, '\p{Is_Decomposition_Type=	font}', "");
-    Expect(0, 130041, '\p{^Is_Decomposition_Type=	font}', "");
-    Expect(0, 130041, '\P{Is_Decomposition_Type=	font}', "");
-    Expect(1, 130041, '\P{^Is_Decomposition_Type=	font}', "");
-    Expect(0, 130042, '\p{Is_Decomposition_Type=	font}', "");
-    Expect(1, 130042, '\p{^Is_Decomposition_Type=	font}', "");
-    Expect(1, 130042, '\P{Is_Decomposition_Type=	font}', "");
-    Expect(0, 130042, '\P{^Is_Decomposition_Type=	font}', "");
-    Error('\p{Is_Dt:	:=  font}');
-    Error('\P{Is_Dt:	:=  font}');
+    Expect(1, 130041, '\p{Is_Decomposition_Type=_Font}', "");
+    Expect(0, 130041, '\p{^Is_Decomposition_Type=_Font}', "");
+    Expect(0, 130041, '\P{Is_Decomposition_Type=_Font}', "");
+    Expect(1, 130041, '\P{^Is_Decomposition_Type=_Font}', "");
+    Expect(0, 130042, '\p{Is_Decomposition_Type=_Font}', "");
+    Expect(1, 130042, '\p{^Is_Decomposition_Type=_Font}', "");
+    Expect(1, 130042, '\P{Is_Decomposition_Type=_Font}', "");
+    Expect(0, 130042, '\P{^Is_Decomposition_Type=_Font}', "");
+    Error('\p{Is_Dt=-:=Font}');
+    Error('\P{Is_Dt=-:=Font}');
     Expect(1, 130041, '\p{Is_Dt=font}', "");
     Expect(0, 130041, '\p{^Is_Dt=font}', "");
     Expect(0, 130041, '\P{Is_Dt=font}', "");
@@ -36043,16 +36619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130042, '\p{^Is_Dt=font}', "");
     Expect(1, 130042, '\P{Is_Dt=font}', "");
     Expect(0, 130042, '\P{^Is_Dt=font}', "");
-    Expect(1, 130041, '\p{Is_Dt=-_font}', "");
-    Expect(0, 130041, '\p{^Is_Dt=-_font}', "");
-    Expect(0, 130041, '\P{Is_Dt=-_font}', "");
-    Expect(1, 130041, '\P{^Is_Dt=-_font}', "");
-    Expect(0, 130042, '\p{Is_Dt=-_font}', "");
-    Expect(1, 130042, '\p{^Is_Dt=-_font}', "");
-    Expect(1, 130042, '\P{Is_Dt=-_font}', "");
-    Expect(0, 130042, '\P{^Is_Dt=-_font}', "");
-    Error('\p{Decomposition_Type=/a/_FRACTION}');
-    Error('\P{Decomposition_Type=/a/_FRACTION}');
+    Expect(1, 130041, '\p{Is_Dt=_ Font}', "");
+    Expect(0, 130041, '\p{^Is_Dt=_ Font}', "");
+    Expect(0, 130041, '\P{Is_Dt=_ Font}', "");
+    Expect(1, 130041, '\P{^Is_Dt=_ Font}', "");
+    Expect(0, 130042, '\p{Is_Dt=_ Font}', "");
+    Expect(1, 130042, '\p{^Is_Dt=_ Font}', "");
+    Expect(1, 130042, '\P{Is_Dt=_ Font}', "");
+    Expect(0, 130042, '\P{^Is_Dt=_ Font}', "");
+    Error('\p{Decomposition_Type=/a/-_fraction}');
+    Error('\P{Decomposition_Type=/a/-_fraction}');
     Expect(1, 8585, '\p{Decomposition_Type=:\AFraction\z:}', "");;
     Expect(0, 8586, '\p{Decomposition_Type=:\AFraction\z:}', "");;
     Expect(1, 8585, '\p{Decomposition_Type=fraction}', "");
@@ -36065,16 +36641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8586, '\P{^Decomposition_Type=fraction}', "");
     Expect(1, 8585, '\p{Decomposition_Type=:\Afraction\z:}', "");;
     Expect(0, 8586, '\p{Decomposition_Type=:\Afraction\z:}', "");;
-    Expect(1, 8585, '\p{Decomposition_Type=		FRACTION}', "");
-    Expect(0, 8585, '\p{^Decomposition_Type=		FRACTION}', "");
-    Expect(0, 8585, '\P{Decomposition_Type=		FRACTION}', "");
-    Expect(1, 8585, '\P{^Decomposition_Type=		FRACTION}', "");
-    Expect(0, 8586, '\p{Decomposition_Type=		FRACTION}', "");
-    Expect(1, 8586, '\p{^Decomposition_Type=		FRACTION}', "");
-    Expect(1, 8586, '\P{Decomposition_Type=		FRACTION}', "");
-    Expect(0, 8586, '\P{^Decomposition_Type=		FRACTION}', "");
-    Error('\p{Dt=/a/_Fra}');
-    Error('\P{Dt=/a/_Fra}');
+    Expect(1, 8585, '\p{Decomposition_Type= Fraction}', "");
+    Expect(0, 8585, '\p{^Decomposition_Type= Fraction}', "");
+    Expect(0, 8585, '\P{Decomposition_Type= Fraction}', "");
+    Expect(1, 8585, '\P{^Decomposition_Type= Fraction}', "");
+    Expect(0, 8586, '\p{Decomposition_Type= Fraction}', "");
+    Expect(1, 8586, '\p{^Decomposition_Type= Fraction}', "");
+    Expect(1, 8586, '\P{Decomposition_Type= Fraction}', "");
+    Expect(0, 8586, '\P{^Decomposition_Type= Fraction}', "");
+    Error('\p{Dt=/a/_fra}');
+    Error('\P{Dt=/a/_fra}');
     Expect(1, 8585, '\p{Dt=:\AFra\z:}', "");;
     Expect(0, 8586, '\p{Dt=:\AFra\z:}', "");;
     Expect(1, 8585, '\p{Dt=fra}', "");
@@ -36087,16 +36663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8586, '\P{^Dt=fra}', "");
     Expect(1, 8585, '\p{Dt=:\Afra\z:}', "");;
     Expect(0, 8586, '\p{Dt=:\Afra\z:}', "");;
-    Expect(1, 8585, '\p{Dt: -Fra}', "");
-    Expect(0, 8585, '\p{^Dt: -Fra}', "");
-    Expect(0, 8585, '\P{Dt: -Fra}', "");
-    Expect(1, 8585, '\P{^Dt: -Fra}', "");
-    Expect(0, 8586, '\p{Dt: -Fra}', "");
-    Expect(1, 8586, '\p{^Dt: -Fra}', "");
-    Expect(1, 8586, '\P{Dt: -Fra}', "");
-    Expect(0, 8586, '\P{^Dt: -Fra}', "");
-    Error('\p{Is_Decomposition_Type=_	fraction:=}');
-    Error('\P{Is_Decomposition_Type=_	fraction:=}');
+    Expect(1, 8585, '\p{Dt=	Fra}', "");
+    Expect(0, 8585, '\p{^Dt=	Fra}', "");
+    Expect(0, 8585, '\P{Dt=	Fra}', "");
+    Expect(1, 8585, '\P{^Dt=	Fra}', "");
+    Expect(0, 8586, '\p{Dt=	Fra}', "");
+    Expect(1, 8586, '\p{^Dt=	Fra}', "");
+    Expect(1, 8586, '\P{Dt=	Fra}', "");
+    Expect(0, 8586, '\P{^Dt=	Fra}', "");
+    Error('\p{Is_Decomposition_Type=:=	_Fraction}');
+    Error('\P{Is_Decomposition_Type=:=	_Fraction}');
     Expect(1, 8585, '\p{Is_Decomposition_Type=fraction}', "");
     Expect(0, 8585, '\p{^Is_Decomposition_Type=fraction}', "");
     Expect(0, 8585, '\P{Is_Decomposition_Type=fraction}', "");
@@ -36105,16 +36681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8586, '\p{^Is_Decomposition_Type=fraction}', "");
     Expect(1, 8586, '\P{Is_Decomposition_Type=fraction}', "");
     Expect(0, 8586, '\P{^Is_Decomposition_Type=fraction}', "");
-    Expect(1, 8585, '\p{Is_Decomposition_Type:   _fraction}', "");
-    Expect(0, 8585, '\p{^Is_Decomposition_Type:   _fraction}', "");
-    Expect(0, 8585, '\P{Is_Decomposition_Type:   _fraction}', "");
-    Expect(1, 8585, '\P{^Is_Decomposition_Type:   _fraction}', "");
-    Expect(0, 8586, '\p{Is_Decomposition_Type:   _fraction}', "");
-    Expect(1, 8586, '\p{^Is_Decomposition_Type:   _fraction}', "");
-    Expect(1, 8586, '\P{Is_Decomposition_Type:   _fraction}', "");
-    Expect(0, 8586, '\P{^Is_Decomposition_Type:   _fraction}', "");
-    Error('\p{Is_Dt=:= 	Fra}');
-    Error('\P{Is_Dt=:= 	Fra}');
+    Expect(1, 8585, '\p{Is_Decomposition_Type:		 fraction}', "");
+    Expect(0, 8585, '\p{^Is_Decomposition_Type:		 fraction}', "");
+    Expect(0, 8585, '\P{Is_Decomposition_Type:		 fraction}', "");
+    Expect(1, 8585, '\P{^Is_Decomposition_Type:		 fraction}', "");
+    Expect(0, 8586, '\p{Is_Decomposition_Type:		 fraction}', "");
+    Expect(1, 8586, '\p{^Is_Decomposition_Type:		 fraction}', "");
+    Expect(1, 8586, '\P{Is_Decomposition_Type:		 fraction}', "");
+    Expect(0, 8586, '\P{^Is_Decomposition_Type:		 fraction}', "");
+    Error('\p{Is_Dt=/a/	fra}');
+    Error('\P{Is_Dt=/a/	fra}');
     Expect(1, 8585, '\p{Is_Dt=fra}', "");
     Expect(0, 8585, '\p{^Is_Dt=fra}', "");
     Expect(0, 8585, '\P{Is_Dt=fra}', "");
@@ -36123,16 +36699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8586, '\p{^Is_Dt=fra}', "");
     Expect(1, 8586, '\P{Is_Dt=fra}', "");
     Expect(0, 8586, '\P{^Is_Dt=fra}', "");
-    Expect(1, 8585, '\p{Is_Dt:   - fra}', "");
-    Expect(0, 8585, '\p{^Is_Dt:   - fra}', "");
-    Expect(0, 8585, '\P{Is_Dt:   - fra}', "");
-    Expect(1, 8585, '\P{^Is_Dt:   - fra}', "");
-    Expect(0, 8586, '\p{Is_Dt:   - fra}', "");
-    Expect(1, 8586, '\p{^Is_Dt:   - fra}', "");
-    Expect(1, 8586, '\P{Is_Dt:   - fra}', "");
-    Expect(0, 8586, '\P{^Is_Dt:   - fra}', "");
-    Error('\p{Decomposition_Type=/a/-_initial}');
-    Error('\P{Decomposition_Type=/a/-_initial}');
+    Expect(1, 8585, '\p{Is_Dt=_FRA}', "");
+    Expect(0, 8585, '\p{^Is_Dt=_FRA}', "");
+    Expect(0, 8585, '\P{Is_Dt=_FRA}', "");
+    Expect(1, 8585, '\P{^Is_Dt=_FRA}', "");
+    Expect(0, 8586, '\p{Is_Dt=_FRA}', "");
+    Expect(1, 8586, '\p{^Is_Dt=_FRA}', "");
+    Expect(1, 8586, '\P{Is_Dt=_FRA}', "");
+    Expect(0, 8586, '\P{^Is_Dt=_FRA}', "");
+    Error('\p{Decomposition_Type=/a/ INITIAL}');
+    Error('\P{Decomposition_Type=/a/ INITIAL}');
     Expect(1, 65267, '\p{Decomposition_Type=:\AInitial\z:}', "");;
     Expect(0, 65268, '\p{Decomposition_Type=:\AInitial\z:}', "");;
     Expect(1, 65267, '\p{Decomposition_Type=initial}', "");
@@ -36145,38 +36721,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65268, '\P{^Decomposition_Type=initial}', "");
     Expect(1, 65267, '\p{Decomposition_Type=:\Ainitial\z:}', "");;
     Expect(0, 65268, '\p{Decomposition_Type=:\Ainitial\z:}', "");;
-    Expect(1, 65267, '\p{Decomposition_Type=  INITIAL}', "");
-    Expect(0, 65267, '\p{^Decomposition_Type=  INITIAL}', "");
-    Expect(0, 65267, '\P{Decomposition_Type=  INITIAL}', "");
-    Expect(1, 65267, '\P{^Decomposition_Type=  INITIAL}', "");
-    Expect(0, 65268, '\p{Decomposition_Type=  INITIAL}', "");
-    Expect(1, 65268, '\p{^Decomposition_Type=  INITIAL}', "");
-    Expect(1, 65268, '\P{Decomposition_Type=  INITIAL}', "");
-    Expect(0, 65268, '\P{^Decomposition_Type=  INITIAL}', "");
-    Error('\p{Dt=--Init:=}');
-    Error('\P{Dt=--Init:=}');
+    Expect(1, 65267, '\p{Decomposition_Type=	-INITIAL}', "");
+    Expect(0, 65267, '\p{^Decomposition_Type=	-INITIAL}', "");
+    Expect(0, 65267, '\P{Decomposition_Type=	-INITIAL}', "");
+    Expect(1, 65267, '\P{^Decomposition_Type=	-INITIAL}', "");
+    Expect(0, 65268, '\p{Decomposition_Type=	-INITIAL}', "");
+    Expect(1, 65268, '\p{^Decomposition_Type=	-INITIAL}', "");
+    Expect(1, 65268, '\P{Decomposition_Type=	-INITIAL}', "");
+    Expect(0, 65268, '\P{^Decomposition_Type=	-INITIAL}', "");
+    Error('\p{Dt= Init:=}');
+    Error('\P{Dt= Init:=}');
     Expect(1, 65267, '\p{Dt=:\AInit\z:}', "");;
     Expect(0, 65268, '\p{Dt=:\AInit\z:}', "");;
-    Expect(1, 65267, '\p{Dt:   init}', "");
-    Expect(0, 65267, '\p{^Dt:   init}', "");
-    Expect(0, 65267, '\P{Dt:   init}', "");
-    Expect(1, 65267, '\P{^Dt:   init}', "");
-    Expect(0, 65268, '\p{Dt:   init}', "");
-    Expect(1, 65268, '\p{^Dt:   init}', "");
-    Expect(1, 65268, '\P{Dt:   init}', "");
-    Expect(0, 65268, '\P{^Dt:   init}', "");
+    Expect(1, 65267, '\p{Dt=init}', "");
+    Expect(0, 65267, '\p{^Dt=init}', "");
+    Expect(0, 65267, '\P{Dt=init}', "");
+    Expect(1, 65267, '\P{^Dt=init}', "");
+    Expect(0, 65268, '\p{Dt=init}', "");
+    Expect(1, 65268, '\p{^Dt=init}', "");
+    Expect(1, 65268, '\P{Dt=init}', "");
+    Expect(0, 65268, '\P{^Dt=init}', "");
     Expect(1, 65267, '\p{Dt=:\Ainit\z:}', "");;
     Expect(0, 65268, '\p{Dt=:\Ainit\z:}', "");;
-    Expect(1, 65267, '\p{Dt=	Init}', "");
-    Expect(0, 65267, '\p{^Dt=	Init}', "");
-    Expect(0, 65267, '\P{Dt=	Init}', "");
-    Expect(1, 65267, '\P{^Dt=	Init}', "");
-    Expect(0, 65268, '\p{Dt=	Init}', "");
-    Expect(1, 65268, '\p{^Dt=	Init}', "");
-    Expect(1, 65268, '\P{Dt=	Init}', "");
-    Expect(0, 65268, '\P{^Dt=	Init}', "");
-    Error('\p{Is_Decomposition_Type=/a/ initial}');
-    Error('\P{Is_Decomposition_Type=/a/ initial}');
+    Expect(1, 65267, '\p{Dt= -Init}', "");
+    Expect(0, 65267, '\p{^Dt= -Init}', "");
+    Expect(0, 65267, '\P{Dt= -Init}', "");
+    Expect(1, 65267, '\P{^Dt= -Init}', "");
+    Expect(0, 65268, '\p{Dt= -Init}', "");
+    Expect(1, 65268, '\p{^Dt= -Init}', "");
+    Expect(1, 65268, '\P{Dt= -Init}', "");
+    Expect(0, 65268, '\P{^Dt= -Init}', "");
+    Error('\p{Is_Decomposition_Type=/a/		Initial}');
+    Error('\P{Is_Decomposition_Type=/a/		Initial}');
     Expect(1, 65267, '\p{Is_Decomposition_Type=initial}', "");
     Expect(0, 65267, '\p{^Is_Decomposition_Type=initial}', "");
     Expect(0, 65267, '\P{Is_Decomposition_Type=initial}', "");
@@ -36185,16 +36761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65268, '\p{^Is_Decomposition_Type=initial}', "");
     Expect(1, 65268, '\P{Is_Decomposition_Type=initial}', "");
     Expect(0, 65268, '\P{^Is_Decomposition_Type=initial}', "");
-    Expect(1, 65267, '\p{Is_Decomposition_Type=	-Initial}', "");
-    Expect(0, 65267, '\p{^Is_Decomposition_Type=	-Initial}', "");
-    Expect(0, 65267, '\P{Is_Decomposition_Type=	-Initial}', "");
-    Expect(1, 65267, '\P{^Is_Decomposition_Type=	-Initial}', "");
-    Expect(0, 65268, '\p{Is_Decomposition_Type=	-Initial}', "");
-    Expect(1, 65268, '\p{^Is_Decomposition_Type=	-Initial}', "");
-    Expect(1, 65268, '\P{Is_Decomposition_Type=	-Initial}', "");
-    Expect(0, 65268, '\P{^Is_Decomposition_Type=	-Initial}', "");
-    Error('\p{Is_Dt:   := 	Init}');
-    Error('\P{Is_Dt:   := 	Init}');
+    Expect(1, 65267, '\p{Is_Decomposition_Type=--Initial}', "");
+    Expect(0, 65267, '\p{^Is_Decomposition_Type=--Initial}', "");
+    Expect(0, 65267, '\P{Is_Decomposition_Type=--Initial}', "");
+    Expect(1, 65267, '\P{^Is_Decomposition_Type=--Initial}', "");
+    Expect(0, 65268, '\p{Is_Decomposition_Type=--Initial}', "");
+    Expect(1, 65268, '\p{^Is_Decomposition_Type=--Initial}', "");
+    Expect(1, 65268, '\P{Is_Decomposition_Type=--Initial}', "");
+    Expect(0, 65268, '\P{^Is_Decomposition_Type=--Initial}', "");
+    Error('\p{Is_Dt=/a/  INIT}');
+    Error('\P{Is_Dt=/a/  INIT}');
     Expect(1, 65267, '\p{Is_Dt=init}', "");
     Expect(0, 65267, '\p{^Is_Dt=init}', "");
     Expect(0, 65267, '\P{Is_Dt=init}', "");
@@ -36203,38 +36779,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65268, '\p{^Is_Dt=init}', "");
     Expect(1, 65268, '\P{Is_Dt=init}', "");
     Expect(0, 65268, '\P{^Is_Dt=init}', "");
-    Expect(1, 65267, '\p{Is_Dt=-	Init}', "");
-    Expect(0, 65267, '\p{^Is_Dt=-	Init}', "");
-    Expect(0, 65267, '\P{Is_Dt=-	Init}', "");
-    Expect(1, 65267, '\P{^Is_Dt=-	Init}', "");
-    Expect(0, 65268, '\p{Is_Dt=-	Init}', "");
-    Expect(1, 65268, '\p{^Is_Dt=-	Init}', "");
-    Expect(1, 65268, '\P{Is_Dt=-	Init}', "");
-    Expect(0, 65268, '\P{^Is_Dt=-	Init}', "");
-    Error('\p{Decomposition_Type=-/a/Isolated}');
-    Error('\P{Decomposition_Type=-/a/Isolated}');
+    Expect(1, 65267, '\p{Is_Dt=	-init}', "");
+    Expect(0, 65267, '\p{^Is_Dt=	-init}', "");
+    Expect(0, 65267, '\P{Is_Dt=	-init}', "");
+    Expect(1, 65267, '\P{^Is_Dt=	-init}', "");
+    Expect(0, 65268, '\p{Is_Dt=	-init}', "");
+    Expect(1, 65268, '\p{^Is_Dt=	-init}', "");
+    Expect(1, 65268, '\P{Is_Dt=	-init}', "");
+    Expect(0, 65268, '\P{^Is_Dt=	-init}', "");
+    Error('\p{Decomposition_Type=ISOLATED:=}');
+    Error('\P{Decomposition_Type=ISOLATED:=}');
     Expect(1, 65275, '\p{Decomposition_Type=:\AIsolated\z:}', "");;
     Expect(0, 65276, '\p{Decomposition_Type=:\AIsolated\z:}', "");;
-    Expect(1, 65275, '\p{Decomposition_Type=isolated}', "");
-    Expect(0, 65275, '\p{^Decomposition_Type=isolated}', "");
-    Expect(0, 65275, '\P{Decomposition_Type=isolated}', "");
-    Expect(1, 65275, '\P{^Decomposition_Type=isolated}', "");
-    Expect(0, 65276, '\p{Decomposition_Type=isolated}', "");
-    Expect(1, 65276, '\p{^Decomposition_Type=isolated}', "");
-    Expect(1, 65276, '\P{Decomposition_Type=isolated}', "");
-    Expect(0, 65276, '\P{^Decomposition_Type=isolated}', "");
+    Expect(1, 65275, '\p{Decomposition_Type:	isolated}', "");
+    Expect(0, 65275, '\p{^Decomposition_Type:	isolated}', "");
+    Expect(0, 65275, '\P{Decomposition_Type:	isolated}', "");
+    Expect(1, 65275, '\P{^Decomposition_Type:	isolated}', "");
+    Expect(0, 65276, '\p{Decomposition_Type:	isolated}', "");
+    Expect(1, 65276, '\p{^Decomposition_Type:	isolated}', "");
+    Expect(1, 65276, '\P{Decomposition_Type:	isolated}', "");
+    Expect(0, 65276, '\P{^Decomposition_Type:	isolated}', "");
     Expect(1, 65275, '\p{Decomposition_Type=:\Aisolated\z:}', "");;
     Expect(0, 65276, '\p{Decomposition_Type=:\Aisolated\z:}', "");;
-    Expect(1, 65275, '\p{Decomposition_Type=- isolated}', "");
-    Expect(0, 65275, '\p{^Decomposition_Type=- isolated}', "");
-    Expect(0, 65275, '\P{Decomposition_Type=- isolated}', "");
-    Expect(1, 65275, '\P{^Decomposition_Type=- isolated}', "");
-    Expect(0, 65276, '\p{Decomposition_Type=- isolated}', "");
-    Expect(1, 65276, '\p{^Decomposition_Type=- isolated}', "");
-    Expect(1, 65276, '\P{Decomposition_Type=- isolated}', "");
-    Expect(0, 65276, '\P{^Decomposition_Type=- isolated}', "");
-    Error('\p{Dt:	_-Iso:=}');
-    Error('\P{Dt:	_-Iso:=}');
+    Expect(1, 65275, '\p{Decomposition_Type=	Isolated}', "");
+    Expect(0, 65275, '\p{^Decomposition_Type=	Isolated}', "");
+    Expect(0, 65275, '\P{Decomposition_Type=	Isolated}', "");
+    Expect(1, 65275, '\P{^Decomposition_Type=	Isolated}', "");
+    Expect(0, 65276, '\p{Decomposition_Type=	Isolated}', "");
+    Expect(1, 65276, '\p{^Decomposition_Type=	Isolated}', "");
+    Expect(1, 65276, '\P{Decomposition_Type=	Isolated}', "");
+    Expect(0, 65276, '\P{^Decomposition_Type=	Isolated}', "");
+    Error('\p{Dt=/a/_iso}');
+    Error('\P{Dt=/a/_iso}');
     Expect(1, 65275, '\p{Dt=:\AIso\z:}', "");;
     Expect(0, 65276, '\p{Dt=:\AIso\z:}', "");;
     Expect(1, 65275, '\p{Dt=iso}', "");
@@ -36247,74 +36823,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65276, '\P{^Dt=iso}', "");
     Expect(1, 65275, '\p{Dt=:\Aiso\z:}', "");;
     Expect(0, 65276, '\p{Dt=:\Aiso\z:}', "");;
-    Expect(1, 65275, '\p{Dt:	_Iso}', "");
-    Expect(0, 65275, '\p{^Dt:	_Iso}', "");
-    Expect(0, 65275, '\P{Dt:	_Iso}', "");
-    Expect(1, 65275, '\P{^Dt:	_Iso}', "");
-    Expect(0, 65276, '\p{Dt:	_Iso}', "");
-    Expect(1, 65276, '\p{^Dt:	_Iso}', "");
-    Expect(1, 65276, '\P{Dt:	_Iso}', "");
-    Expect(0, 65276, '\P{^Dt:	_Iso}', "");
-    Error('\p{Is_Decomposition_Type: 	Isolated/a/}');
-    Error('\P{Is_Decomposition_Type: 	Isolated/a/}');
-    Expect(1, 65275, '\p{Is_Decomposition_Type:isolated}', "");
-    Expect(0, 65275, '\p{^Is_Decomposition_Type:isolated}', "");
-    Expect(0, 65275, '\P{Is_Decomposition_Type:isolated}', "");
-    Expect(1, 65275, '\P{^Is_Decomposition_Type:isolated}', "");
-    Expect(0, 65276, '\p{Is_Decomposition_Type:isolated}', "");
-    Expect(1, 65276, '\p{^Is_Decomposition_Type:isolated}', "");
-    Expect(1, 65276, '\P{Is_Decomposition_Type:isolated}', "");
-    Expect(0, 65276, '\P{^Is_Decomposition_Type:isolated}', "");
-    Expect(1, 65275, '\p{Is_Decomposition_Type=	isolated}', "");
-    Expect(0, 65275, '\p{^Is_Decomposition_Type=	isolated}', "");
-    Expect(0, 65275, '\P{Is_Decomposition_Type=	isolated}', "");
-    Expect(1, 65275, '\P{^Is_Decomposition_Type=	isolated}', "");
-    Expect(0, 65276, '\p{Is_Decomposition_Type=	isolated}', "");
-    Expect(1, 65276, '\p{^Is_Decomposition_Type=	isolated}', "");
-    Expect(1, 65276, '\P{Is_Decomposition_Type=	isolated}', "");
-    Expect(0, 65276, '\P{^Is_Decomposition_Type=	isolated}', "");
-    Error('\p{Is_Dt:	:=	ISO}');
-    Error('\P{Is_Dt:	:=	ISO}');
-    Expect(1, 65275, '\p{Is_Dt: iso}', "");
-    Expect(0, 65275, '\p{^Is_Dt: iso}', "");
-    Expect(0, 65275, '\P{Is_Dt: iso}', "");
-    Expect(1, 65275, '\P{^Is_Dt: iso}', "");
-    Expect(0, 65276, '\p{Is_Dt: iso}', "");
-    Expect(1, 65276, '\p{^Is_Dt: iso}', "");
-    Expect(1, 65276, '\P{Is_Dt: iso}', "");
-    Expect(0, 65276, '\P{^Is_Dt: iso}', "");
-    Expect(1, 65275, '\p{Is_Dt=_	Iso}', "");
-    Expect(0, 65275, '\p{^Is_Dt=_	Iso}', "");
-    Expect(0, 65275, '\P{Is_Dt=_	Iso}', "");
-    Expect(1, 65275, '\P{^Is_Dt=_	Iso}', "");
-    Expect(0, 65276, '\p{Is_Dt=_	Iso}', "");
-    Expect(1, 65276, '\p{^Is_Dt=_	Iso}', "");
-    Expect(1, 65276, '\P{Is_Dt=_	Iso}', "");
-    Expect(0, 65276, '\P{^Is_Dt=_	Iso}', "");
-    Error('\p{Decomposition_Type:		medial/a/}');
-    Error('\P{Decomposition_Type:		medial/a/}');
+    Expect(1, 65275, '\p{Dt=--Iso}', "");
+    Expect(0, 65275, '\p{^Dt=--Iso}', "");
+    Expect(0, 65275, '\P{Dt=--Iso}', "");
+    Expect(1, 65275, '\P{^Dt=--Iso}', "");
+    Expect(0, 65276, '\p{Dt=--Iso}', "");
+    Expect(1, 65276, '\p{^Dt=--Iso}', "");
+    Expect(1, 65276, '\P{Dt=--Iso}', "");
+    Expect(0, 65276, '\P{^Dt=--Iso}', "");
+    Error('\p{Is_Decomposition_Type:   	-Isolated:=}');
+    Error('\P{Is_Decomposition_Type:   	-Isolated:=}');
+    Expect(1, 65275, '\p{Is_Decomposition_Type=isolated}', "");
+    Expect(0, 65275, '\p{^Is_Decomposition_Type=isolated}', "");
+    Expect(0, 65275, '\P{Is_Decomposition_Type=isolated}', "");
+    Expect(1, 65275, '\P{^Is_Decomposition_Type=isolated}', "");
+    Expect(0, 65276, '\p{Is_Decomposition_Type=isolated}', "");
+    Expect(1, 65276, '\p{^Is_Decomposition_Type=isolated}', "");
+    Expect(1, 65276, '\P{Is_Decomposition_Type=isolated}', "");
+    Expect(0, 65276, '\P{^Is_Decomposition_Type=isolated}', "");
+    Expect(1, 65275, '\p{Is_Decomposition_Type= isolated}', "");
+    Expect(0, 65275, '\p{^Is_Decomposition_Type= isolated}', "");
+    Expect(0, 65275, '\P{Is_Decomposition_Type= isolated}', "");
+    Expect(1, 65275, '\P{^Is_Decomposition_Type= isolated}', "");
+    Expect(0, 65276, '\p{Is_Decomposition_Type= isolated}', "");
+    Expect(1, 65276, '\p{^Is_Decomposition_Type= isolated}', "");
+    Expect(1, 65276, '\P{Is_Decomposition_Type= isolated}', "");
+    Expect(0, 65276, '\P{^Is_Decomposition_Type= isolated}', "");
+    Error('\p{Is_Dt:   -:=iso}');
+    Error('\P{Is_Dt:   -:=iso}');
+    Expect(1, 65275, '\p{Is_Dt=iso}', "");
+    Expect(0, 65275, '\p{^Is_Dt=iso}', "");
+    Expect(0, 65275, '\P{Is_Dt=iso}', "");
+    Expect(1, 65275, '\P{^Is_Dt=iso}', "");
+    Expect(0, 65276, '\p{Is_Dt=iso}', "");
+    Expect(1, 65276, '\p{^Is_Dt=iso}', "");
+    Expect(1, 65276, '\P{Is_Dt=iso}', "");
+    Expect(0, 65276, '\P{^Is_Dt=iso}', "");
+    Expect(1, 65275, '\p{Is_Dt=_ISO}', "");
+    Expect(0, 65275, '\p{^Is_Dt=_ISO}', "");
+    Expect(0, 65275, '\P{Is_Dt=_ISO}', "");
+    Expect(1, 65275, '\P{^Is_Dt=_ISO}', "");
+    Expect(0, 65276, '\p{Is_Dt=_ISO}', "");
+    Expect(1, 65276, '\p{^Is_Dt=_ISO}', "");
+    Expect(1, 65276, '\P{Is_Dt=_ISO}', "");
+    Expect(0, 65276, '\P{^Is_Dt=_ISO}', "");
+    Error('\p{Decomposition_Type= :=Medial}');
+    Error('\P{Decomposition_Type= :=Medial}');
     Expect(1, 65268, '\p{Decomposition_Type=:\AMedial\z:}', "");;
     Expect(0, 65269, '\p{Decomposition_Type=:\AMedial\z:}', "");;
-    Expect(1, 65268, '\p{Decomposition_Type: medial}', "");
-    Expect(0, 65268, '\p{^Decomposition_Type: medial}', "");
-    Expect(0, 65268, '\P{Decomposition_Type: medial}', "");
-    Expect(1, 65268, '\P{^Decomposition_Type: medial}', "");
-    Expect(0, 65269, '\p{Decomposition_Type: medial}', "");
-    Expect(1, 65269, '\p{^Decomposition_Type: medial}', "");
-    Expect(1, 65269, '\P{Decomposition_Type: medial}', "");
-    Expect(0, 65269, '\P{^Decomposition_Type: medial}', "");
+    Expect(1, 65268, '\p{Decomposition_Type=medial}', "");
+    Expect(0, 65268, '\p{^Decomposition_Type=medial}', "");
+    Expect(0, 65268, '\P{Decomposition_Type=medial}', "");
+    Expect(1, 65268, '\P{^Decomposition_Type=medial}', "");
+    Expect(0, 65269, '\p{Decomposition_Type=medial}', "");
+    Expect(1, 65269, '\p{^Decomposition_Type=medial}', "");
+    Expect(1, 65269, '\P{Decomposition_Type=medial}', "");
+    Expect(0, 65269, '\P{^Decomposition_Type=medial}', "");
     Expect(1, 65268, '\p{Decomposition_Type=:\Amedial\z:}', "");;
     Expect(0, 65269, '\p{Decomposition_Type=:\Amedial\z:}', "");;
-    Expect(1, 65268, '\p{Decomposition_Type= Medial}', "");
-    Expect(0, 65268, '\p{^Decomposition_Type= Medial}', "");
-    Expect(0, 65268, '\P{Decomposition_Type= Medial}', "");
-    Expect(1, 65268, '\P{^Decomposition_Type= Medial}', "");
-    Expect(0, 65269, '\p{Decomposition_Type= Medial}', "");
-    Expect(1, 65269, '\p{^Decomposition_Type= Medial}', "");
-    Expect(1, 65269, '\P{Decomposition_Type= Medial}', "");
-    Expect(0, 65269, '\P{^Decomposition_Type= Medial}', "");
-    Error('\p{Dt=:=	Med}');
-    Error('\P{Dt=:=	Med}');
+    Expect(1, 65268, '\p{Decomposition_Type=	-Medial}', "");
+    Expect(0, 65268, '\p{^Decomposition_Type=	-Medial}', "");
+    Expect(0, 65268, '\P{Decomposition_Type=	-Medial}', "");
+    Expect(1, 65268, '\P{^Decomposition_Type=	-Medial}', "");
+    Expect(0, 65269, '\p{Decomposition_Type=	-Medial}', "");
+    Expect(1, 65269, '\p{^Decomposition_Type=	-Medial}', "");
+    Expect(1, 65269, '\P{Decomposition_Type=	-Medial}', "");
+    Expect(0, 65269, '\P{^Decomposition_Type=	-Medial}', "");
+    Error('\p{Dt=/a/_ med}');
+    Error('\P{Dt=/a/_ med}');
     Expect(1, 65268, '\p{Dt=:\AMed\z:}', "");;
     Expect(0, 65269, '\p{Dt=:\AMed\z:}', "");;
     Expect(1, 65268, '\p{Dt=med}', "");
@@ -36327,16 +36903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65269, '\P{^Dt=med}', "");
     Expect(1, 65268, '\p{Dt=:\Amed\z:}', "");;
     Expect(0, 65269, '\p{Dt=:\Amed\z:}', "");;
-    Expect(1, 65268, '\p{Dt=-MED}', "");
-    Expect(0, 65268, '\p{^Dt=-MED}', "");
-    Expect(0, 65268, '\P{Dt=-MED}', "");
-    Expect(1, 65268, '\P{^Dt=-MED}', "");
-    Expect(0, 65269, '\p{Dt=-MED}', "");
-    Expect(1, 65269, '\p{^Dt=-MED}', "");
-    Expect(1, 65269, '\P{Dt=-MED}', "");
-    Expect(0, 65269, '\P{^Dt=-MED}', "");
-    Error('\p{Is_Decomposition_Type=/a/-Medial}');
-    Error('\P{Is_Decomposition_Type=/a/-Medial}');
+    Expect(1, 65268, '\p{Dt=_Med}', "");
+    Expect(0, 65268, '\p{^Dt=_Med}', "");
+    Expect(0, 65268, '\P{Dt=_Med}', "");
+    Expect(1, 65268, '\P{^Dt=_Med}', "");
+    Expect(0, 65269, '\p{Dt=_Med}', "");
+    Expect(1, 65269, '\p{^Dt=_Med}', "");
+    Expect(1, 65269, '\P{Dt=_Med}', "");
+    Expect(0, 65269, '\P{^Dt=_Med}', "");
+    Error('\p{Is_Decomposition_Type=	/a/medial}');
+    Error('\P{Is_Decomposition_Type=	/a/medial}');
     Expect(1, 65268, '\p{Is_Decomposition_Type=medial}', "");
     Expect(0, 65268, '\p{^Is_Decomposition_Type=medial}', "");
     Expect(0, 65268, '\P{Is_Decomposition_Type=medial}', "");
@@ -36345,16 +36921,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65269, '\p{^Is_Decomposition_Type=medial}', "");
     Expect(1, 65269, '\P{Is_Decomposition_Type=medial}', "");
     Expect(0, 65269, '\P{^Is_Decomposition_Type=medial}', "");
-    Expect(1, 65268, '\p{Is_Decomposition_Type:    _Medial}', "");
-    Expect(0, 65268, '\p{^Is_Decomposition_Type:    _Medial}', "");
-    Expect(0, 65268, '\P{Is_Decomposition_Type:    _Medial}', "");
-    Expect(1, 65268, '\P{^Is_Decomposition_Type:    _Medial}', "");
-    Expect(0, 65269, '\p{Is_Decomposition_Type:    _Medial}', "");
-    Expect(1, 65269, '\p{^Is_Decomposition_Type:    _Medial}', "");
-    Expect(1, 65269, '\P{Is_Decomposition_Type:    _Medial}', "");
-    Expect(0, 65269, '\P{^Is_Decomposition_Type:    _Medial}', "");
-    Error('\p{Is_Dt= :=MED}');
-    Error('\P{Is_Dt= :=MED}');
+    Expect(1, 65268, '\p{Is_Decomposition_Type=  Medial}', "");
+    Expect(0, 65268, '\p{^Is_Decomposition_Type=  Medial}', "");
+    Expect(0, 65268, '\P{Is_Decomposition_Type=  Medial}', "");
+    Expect(1, 65268, '\P{^Is_Decomposition_Type=  Medial}', "");
+    Expect(0, 65269, '\p{Is_Decomposition_Type=  Medial}', "");
+    Expect(1, 65269, '\p{^Is_Decomposition_Type=  Medial}', "");
+    Expect(1, 65269, '\P{Is_Decomposition_Type=  Medial}', "");
+    Expect(0, 65269, '\P{^Is_Decomposition_Type=  Medial}', "");
+    Error('\p{Is_Dt=:=__Med}');
+    Error('\P{Is_Dt=:=__Med}');
     Expect(1, 65268, '\p{Is_Dt=med}', "");
     Expect(0, 65268, '\p{^Is_Dt=med}', "");
     Expect(0, 65268, '\P{Is_Dt=med}', "");
@@ -36363,16 +36939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65269, '\p{^Is_Dt=med}', "");
     Expect(1, 65269, '\P{Is_Dt=med}', "");
     Expect(0, 65269, '\P{^Is_Dt=med}', "");
-    Expect(1, 65268, '\p{Is_Dt=	Med}', "");
-    Expect(0, 65268, '\p{^Is_Dt=	Med}', "");
-    Expect(0, 65268, '\P{Is_Dt=	Med}', "");
-    Expect(1, 65268, '\P{^Is_Dt=	Med}', "");
-    Expect(0, 65269, '\p{Is_Dt=	Med}', "");
-    Expect(1, 65269, '\p{^Is_Dt=	Med}', "");
-    Expect(1, 65269, '\P{Is_Dt=	Med}', "");
-    Expect(0, 65269, '\P{^Is_Dt=	Med}', "");
-    Error('\p{Decomposition_Type=_ narrow:=}');
-    Error('\P{Decomposition_Type=_ narrow:=}');
+    Expect(1, 65268, '\p{Is_Dt:	 Med}', "");
+    Expect(0, 65268, '\p{^Is_Dt:	 Med}', "");
+    Expect(0, 65268, '\P{Is_Dt:	 Med}', "");
+    Expect(1, 65268, '\P{^Is_Dt:	 Med}', "");
+    Expect(0, 65269, '\p{Is_Dt:	 Med}', "");
+    Expect(1, 65269, '\p{^Is_Dt:	 Med}', "");
+    Expect(1, 65269, '\P{Is_Dt:	 Med}', "");
+    Expect(0, 65269, '\P{^Is_Dt:	 Med}', "");
+    Error('\p{Decomposition_Type=/a/-	Narrow}');
+    Error('\P{Decomposition_Type=/a/-	Narrow}');
     Expect(1, 65518, '\p{Decomposition_Type=:\ANarrow\z:}', "");;
     Expect(0, 65519, '\p{Decomposition_Type=:\ANarrow\z:}', "");;
     Expect(1, 65518, '\p{Decomposition_Type=narrow}', "");
@@ -36385,16 +36961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65519, '\P{^Decomposition_Type=narrow}', "");
     Expect(1, 65518, '\p{Decomposition_Type=:\Anarrow\z:}', "");;
     Expect(0, 65519, '\p{Decomposition_Type=:\Anarrow\z:}', "");;
-    Expect(1, 65518, '\p{Decomposition_Type= narrow}', "");
-    Expect(0, 65518, '\p{^Decomposition_Type= narrow}', "");
-    Expect(0, 65518, '\P{Decomposition_Type= narrow}', "");
-    Expect(1, 65518, '\P{^Decomposition_Type= narrow}', "");
-    Expect(0, 65519, '\p{Decomposition_Type= narrow}', "");
-    Expect(1, 65519, '\p{^Decomposition_Type= narrow}', "");
-    Expect(1, 65519, '\P{Decomposition_Type= narrow}', "");
-    Expect(0, 65519, '\P{^Decomposition_Type= narrow}', "");
-    Error('\p{Dt=	 Nar/a/}');
-    Error('\P{Dt=	 Nar/a/}');
+    Expect(1, 65518, '\p{Decomposition_Type=	narrow}', "");
+    Expect(0, 65518, '\p{^Decomposition_Type=	narrow}', "");
+    Expect(0, 65518, '\P{Decomposition_Type=	narrow}', "");
+    Expect(1, 65518, '\P{^Decomposition_Type=	narrow}', "");
+    Expect(0, 65519, '\p{Decomposition_Type=	narrow}', "");
+    Expect(1, 65519, '\p{^Decomposition_Type=	narrow}', "");
+    Expect(1, 65519, '\P{Decomposition_Type=	narrow}', "");
+    Expect(0, 65519, '\P{^Decomposition_Type=	narrow}', "");
+    Error('\p{Dt=:=Nar}');
+    Error('\P{Dt=:=Nar}');
     Expect(1, 65518, '\p{Dt=:\ANar\z:}', "");;
     Expect(0, 65519, '\p{Dt=:\ANar\z:}', "");;
     Expect(1, 65518, '\p{Dt=nar}', "");
@@ -36407,34 +36983,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65519, '\P{^Dt=nar}', "");
     Expect(1, 65518, '\p{Dt=:\Anar\z:}', "");;
     Expect(0, 65519, '\p{Dt=:\Anar\z:}', "");;
-    Expect(1, 65518, '\p{Dt=_ NAR}', "");
-    Expect(0, 65518, '\p{^Dt=_ NAR}', "");
-    Expect(0, 65518, '\P{Dt=_ NAR}', "");
-    Expect(1, 65518, '\P{^Dt=_ NAR}', "");
-    Expect(0, 65519, '\p{Dt=_ NAR}', "");
-    Expect(1, 65519, '\p{^Dt=_ NAR}', "");
-    Expect(1, 65519, '\P{Dt=_ NAR}', "");
-    Expect(0, 65519, '\P{^Dt=_ NAR}', "");
-    Error('\p{Is_Decomposition_Type= Narrow:=}');
-    Error('\P{Is_Decomposition_Type= Narrow:=}');
-    Expect(1, 65518, '\p{Is_Decomposition_Type: narrow}', "");
-    Expect(0, 65518, '\p{^Is_Decomposition_Type: narrow}', "");
-    Expect(0, 65518, '\P{Is_Decomposition_Type: narrow}', "");
-    Expect(1, 65518, '\P{^Is_Decomposition_Type: narrow}', "");
-    Expect(0, 65519, '\p{Is_Decomposition_Type: narrow}', "");
-    Expect(1, 65519, '\p{^Is_Decomposition_Type: narrow}', "");
-    Expect(1, 65519, '\P{Is_Decomposition_Type: narrow}', "");
-    Expect(0, 65519, '\P{^Is_Decomposition_Type: narrow}', "");
-    Expect(1, 65518, '\p{Is_Decomposition_Type=__Narrow}', "");
-    Expect(0, 65518, '\p{^Is_Decomposition_Type=__Narrow}', "");
-    Expect(0, 65518, '\P{Is_Decomposition_Type=__Narrow}', "");
-    Expect(1, 65518, '\P{^Is_Decomposition_Type=__Narrow}', "");
-    Expect(0, 65519, '\p{Is_Decomposition_Type=__Narrow}', "");
-    Expect(1, 65519, '\p{^Is_Decomposition_Type=__Narrow}', "");
-    Expect(1, 65519, '\P{Is_Decomposition_Type=__Narrow}', "");
-    Expect(0, 65519, '\P{^Is_Decomposition_Type=__Narrow}', "");
-    Error('\p{Is_Dt=:=  Nar}');
-    Error('\P{Is_Dt=:=  Nar}');
+    Expect(1, 65518, '\p{Dt= nar}', "");
+    Expect(0, 65518, '\p{^Dt= nar}', "");
+    Expect(0, 65518, '\P{Dt= nar}', "");
+    Expect(1, 65518, '\P{^Dt= nar}', "");
+    Expect(0, 65519, '\p{Dt= nar}', "");
+    Expect(1, 65519, '\p{^Dt= nar}', "");
+    Expect(1, 65519, '\P{Dt= nar}', "");
+    Expect(0, 65519, '\P{^Dt= nar}', "");
+    Error('\p{Is_Decomposition_Type=:=__Narrow}');
+    Error('\P{Is_Decomposition_Type=:=__Narrow}');
+    Expect(1, 65518, '\p{Is_Decomposition_Type=narrow}', "");
+    Expect(0, 65518, '\p{^Is_Decomposition_Type=narrow}', "");
+    Expect(0, 65518, '\P{Is_Decomposition_Type=narrow}', "");
+    Expect(1, 65518, '\P{^Is_Decomposition_Type=narrow}', "");
+    Expect(0, 65519, '\p{Is_Decomposition_Type=narrow}', "");
+    Expect(1, 65519, '\p{^Is_Decomposition_Type=narrow}', "");
+    Expect(1, 65519, '\P{Is_Decomposition_Type=narrow}', "");
+    Expect(0, 65519, '\P{^Is_Decomposition_Type=narrow}', "");
+    Expect(1, 65518, '\p{Is_Decomposition_Type:	_narrow}', "");
+    Expect(0, 65518, '\p{^Is_Decomposition_Type:	_narrow}', "");
+    Expect(0, 65518, '\P{Is_Decomposition_Type:	_narrow}', "");
+    Expect(1, 65518, '\P{^Is_Decomposition_Type:	_narrow}', "");
+    Expect(0, 65519, '\p{Is_Decomposition_Type:	_narrow}', "");
+    Expect(1, 65519, '\p{^Is_Decomposition_Type:	_narrow}', "");
+    Expect(1, 65519, '\P{Is_Decomposition_Type:	_narrow}', "");
+    Expect(0, 65519, '\P{^Is_Decomposition_Type:	_narrow}', "");
+    Error('\p{Is_Dt=/a/nar}');
+    Error('\P{Is_Dt=/a/nar}');
     Expect(1, 65518, '\p{Is_Dt=nar}', "");
     Expect(0, 65518, '\p{^Is_Dt=nar}', "");
     Expect(0, 65518, '\P{Is_Dt=nar}', "");
@@ -36443,16 +37019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65519, '\p{^Is_Dt=nar}', "");
     Expect(1, 65519, '\P{Is_Dt=nar}', "");
     Expect(0, 65519, '\P{^Is_Dt=nar}', "");
-    Expect(1, 65518, '\p{Is_Dt=Nar}', "");
-    Expect(0, 65518, '\p{^Is_Dt=Nar}', "");
-    Expect(0, 65518, '\P{Is_Dt=Nar}', "");
-    Expect(1, 65518, '\P{^Is_Dt=Nar}', "");
-    Expect(0, 65519, '\p{Is_Dt=Nar}', "");
-    Expect(1, 65519, '\p{^Is_Dt=Nar}', "");
-    Expect(1, 65519, '\P{Is_Dt=Nar}', "");
-    Expect(0, 65519, '\P{^Is_Dt=Nar}', "");
-    Error('\p{Decomposition_Type:	:=nobreak}');
-    Error('\P{Decomposition_Type:	:=nobreak}');
+    Expect(1, 65518, '\p{Is_Dt=	NAR}', "");
+    Expect(0, 65518, '\p{^Is_Dt=	NAR}', "");
+    Expect(0, 65518, '\P{Is_Dt=	NAR}', "");
+    Expect(1, 65518, '\P{^Is_Dt=	NAR}', "");
+    Expect(0, 65519, '\p{Is_Dt=	NAR}', "");
+    Expect(1, 65519, '\p{^Is_Dt=	NAR}', "");
+    Expect(1, 65519, '\P{Is_Dt=	NAR}', "");
+    Expect(0, 65519, '\P{^Is_Dt=	NAR}', "");
+    Error('\p{Decomposition_Type= Nobreak:=}');
+    Error('\P{Decomposition_Type= Nobreak:=}');
     Expect(1, 8239, '\p{Decomposition_Type=:\ANobreak\z:}', "");;
     Expect(0, 8240, '\p{Decomposition_Type=:\ANobreak\z:}', "");;
     Expect(1, 8239, '\p{Decomposition_Type=nobreak}', "");
@@ -36465,16 +37041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8240, '\P{^Decomposition_Type=nobreak}', "");
     Expect(1, 8239, '\p{Decomposition_Type=:\Anobreak\z:}', "");;
     Expect(0, 8240, '\p{Decomposition_Type=:\Anobreak\z:}', "");;
-    Expect(1, 8239, '\p{Decomposition_Type=_Nobreak}', "");
-    Expect(0, 8239, '\p{^Decomposition_Type=_Nobreak}', "");
-    Expect(0, 8239, '\P{Decomposition_Type=_Nobreak}', "");
-    Expect(1, 8239, '\P{^Decomposition_Type=_Nobreak}', "");
-    Expect(0, 8240, '\p{Decomposition_Type=_Nobreak}', "");
-    Expect(1, 8240, '\p{^Decomposition_Type=_Nobreak}', "");
-    Expect(1, 8240, '\P{Decomposition_Type=_Nobreak}', "");
-    Expect(0, 8240, '\P{^Decomposition_Type=_Nobreak}', "");
-    Error('\p{Dt=	_Nb/a/}');
-    Error('\P{Dt=	_Nb/a/}');
+    Expect(1, 8239, '\p{Decomposition_Type:   _nobreak}', "");
+    Expect(0, 8239, '\p{^Decomposition_Type:   _nobreak}', "");
+    Expect(0, 8239, '\P{Decomposition_Type:   _nobreak}', "");
+    Expect(1, 8239, '\P{^Decomposition_Type:   _nobreak}', "");
+    Expect(0, 8240, '\p{Decomposition_Type:   _nobreak}', "");
+    Expect(1, 8240, '\p{^Decomposition_Type:   _nobreak}', "");
+    Expect(1, 8240, '\P{Decomposition_Type:   _nobreak}', "");
+    Expect(0, 8240, '\P{^Decomposition_Type:   _nobreak}', "");
+    Error('\p{Dt=	-Nb:=}');
+    Error('\P{Dt=	-Nb:=}');
     Expect(1, 8239, '\p{Dt=:\ANb\z:}', "");;
     Expect(0, 8240, '\p{Dt=:\ANb\z:}', "");;
     Expect(1, 8239, '\p{Dt=nb}', "");
@@ -36487,16 +37063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 8240, '\P{^Dt=nb}', "");
     Expect(1, 8239, '\p{Dt=:\Anb\z:}', "");;
     Expect(0, 8240, '\p{Dt=:\Anb\z:}', "");;
-    Expect(1, 8239, '\p{Dt= NB}', "");
-    Expect(0, 8239, '\p{^Dt= NB}', "");
-    Expect(0, 8239, '\P{Dt= NB}', "");
-    Expect(1, 8239, '\P{^Dt= NB}', "");
-    Expect(0, 8240, '\p{Dt= NB}', "");
-    Expect(1, 8240, '\p{^Dt= NB}', "");
-    Expect(1, 8240, '\P{Dt= NB}', "");
-    Expect(0, 8240, '\P{^Dt= NB}', "");
-    Error('\p{Is_Decomposition_Type:   /a/		Nobreak}');
-    Error('\P{Is_Decomposition_Type:   /a/		Nobreak}');
+    Expect(1, 8239, '\p{Dt=_	Nb}', "");
+    Expect(0, 8239, '\p{^Dt=_	Nb}', "");
+    Expect(0, 8239, '\P{Dt=_	Nb}', "");
+    Expect(1, 8239, '\P{^Dt=_	Nb}', "");
+    Expect(0, 8240, '\p{Dt=_	Nb}', "");
+    Expect(1, 8240, '\p{^Dt=_	Nb}', "");
+    Expect(1, 8240, '\P{Dt=_	Nb}', "");
+    Expect(0, 8240, '\P{^Dt=_	Nb}', "");
+    Error('\p{Is_Decomposition_Type=-/a/nobreak}');
+    Error('\P{Is_Decomposition_Type=-/a/nobreak}');
     Expect(1, 8239, '\p{Is_Decomposition_Type=nobreak}', "");
     Expect(0, 8239, '\p{^Is_Decomposition_Type=nobreak}', "");
     Expect(0, 8239, '\P{Is_Decomposition_Type=nobreak}', "");
@@ -36505,56 +37081,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 8240, '\p{^Is_Decomposition_Type=nobreak}', "");
     Expect(1, 8240, '\P{Is_Decomposition_Type=nobreak}', "");
     Expect(0, 8240, '\P{^Is_Decomposition_Type=nobreak}', "");
-    Expect(1, 8239, '\p{Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(0, 8239, '\p{^Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(0, 8239, '\P{Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(1, 8239, '\P{^Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(0, 8240, '\p{Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(1, 8240, '\p{^Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(1, 8240, '\P{Is_Decomposition_Type= _NOBREAK}', "");
-    Expect(0, 8240, '\P{^Is_Decomposition_Type= _NOBREAK}', "");
-    Error('\p{Is_Dt=	_NB:=}');
-    Error('\P{Is_Dt=	_NB:=}');
-    Expect(1, 8239, '\p{Is_Dt:	nb}', "");
-    Expect(0, 8239, '\p{^Is_Dt:	nb}', "");
-    Expect(0, 8239, '\P{Is_Dt:	nb}', "");
-    Expect(1, 8239, '\P{^Is_Dt:	nb}', "");
-    Expect(0, 8240, '\p{Is_Dt:	nb}', "");
-    Expect(1, 8240, '\p{^Is_Dt:	nb}', "");
-    Expect(1, 8240, '\P{Is_Dt:	nb}', "");
-    Expect(0, 8240, '\P{^Is_Dt:	nb}', "");
-    Expect(1, 8239, '\p{Is_Dt= 	NB}', "");
-    Expect(0, 8239, '\p{^Is_Dt= 	NB}', "");
-    Expect(0, 8239, '\P{Is_Dt= 	NB}', "");
-    Expect(1, 8239, '\P{^Is_Dt= 	NB}', "");
-    Expect(0, 8240, '\p{Is_Dt= 	NB}', "");
-    Expect(1, 8240, '\p{^Is_Dt= 	NB}', "");
-    Expect(1, 8240, '\P{Is_Dt= 	NB}', "");
-    Expect(0, 8240, '\P{^Is_Dt= 	NB}', "");
-    Error('\p{Decomposition_Type=/a/- non_canonical}');
-    Error('\P{Decomposition_Type=/a/- non_canonical}');
+    Expect(1, 8239, '\p{Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(0, 8239, '\p{^Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(0, 8239, '\P{Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(1, 8239, '\P{^Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(0, 8240, '\p{Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(1, 8240, '\p{^Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(1, 8240, '\P{Is_Decomposition_Type:_ Nobreak}', "");
+    Expect(0, 8240, '\P{^Is_Decomposition_Type:_ Nobreak}', "");
+    Error('\p{Is_Dt=_/a/nb}');
+    Error('\P{Is_Dt=_/a/nb}');
+    Expect(1, 8239, '\p{Is_Dt=nb}', "");
+    Expect(0, 8239, '\p{^Is_Dt=nb}', "");
+    Expect(0, 8239, '\P{Is_Dt=nb}', "");
+    Expect(1, 8239, '\P{^Is_Dt=nb}', "");
+    Expect(0, 8240, '\p{Is_Dt=nb}', "");
+    Expect(1, 8240, '\p{^Is_Dt=nb}', "");
+    Expect(1, 8240, '\P{Is_Dt=nb}', "");
+    Expect(0, 8240, '\P{^Is_Dt=nb}', "");
+    Expect(1, 8239, '\p{Is_Dt:	-Nb}', "");
+    Expect(0, 8239, '\p{^Is_Dt:	-Nb}', "");
+    Expect(0, 8239, '\P{Is_Dt:	-Nb}', "");
+    Expect(1, 8239, '\P{^Is_Dt:	-Nb}', "");
+    Expect(0, 8240, '\p{Is_Dt:	-Nb}', "");
+    Expect(1, 8240, '\p{^Is_Dt:	-Nb}', "");
+    Expect(1, 8240, '\P{Is_Dt:	-Nb}', "");
+    Expect(0, 8240, '\P{^Is_Dt:	-Nb}', "");
+    Error('\p{Decomposition_Type=- Non_Canonical:=}');
+    Error('\P{Decomposition_Type=- Non_Canonical:=}');
     Expect(1, 130041, '\p{Decomposition_Type=:\ANon_Canonical\z:}', "");;
     Expect(0, 130042, '\p{Decomposition_Type=:\ANon_Canonical\z:}', "");;
-    Expect(1, 130041, '\p{Decomposition_Type=noncanonical}', "");
-    Expect(0, 130041, '\p{^Decomposition_Type=noncanonical}', "");
-    Expect(0, 130041, '\P{Decomposition_Type=noncanonical}', "");
-    Expect(1, 130041, '\P{^Decomposition_Type=noncanonical}', "");
-    Expect(0, 130042, '\p{Decomposition_Type=noncanonical}', "");
-    Expect(1, 130042, '\p{^Decomposition_Type=noncanonical}', "");
-    Expect(1, 130042, '\P{Decomposition_Type=noncanonical}', "");
-    Expect(0, 130042, '\P{^Decomposition_Type=noncanonical}', "");
+    Expect(1, 130041, '\p{Decomposition_Type:noncanonical}', "");
+    Expect(0, 130041, '\p{^Decomposition_Type:noncanonical}', "");
+    Expect(0, 130041, '\P{Decomposition_Type:noncanonical}', "");
+    Expect(1, 130041, '\P{^Decomposition_Type:noncanonical}', "");
+    Expect(0, 130042, '\p{Decomposition_Type:noncanonical}', "");
+    Expect(1, 130042, '\p{^Decomposition_Type:noncanonical}', "");
+    Expect(1, 130042, '\P{Decomposition_Type:noncanonical}', "");
+    Expect(0, 130042, '\P{^Decomposition_Type:noncanonical}', "");
     Expect(1, 130041, '\p{Decomposition_Type=:\Anoncanonical\z:}', "");;
     Expect(0, 130042, '\p{Decomposition_Type=:\Anoncanonical\z:}', "");;
-    Expect(1, 130041, '\p{Decomposition_Type=	non_canonical}', "");
-    Expect(0, 130041, '\p{^Decomposition_Type=	non_canonical}', "");
-    Expect(0, 130041, '\P{Decomposition_Type=	non_canonical}', "");
-    Expect(1, 130041, '\P{^Decomposition_Type=	non_canonical}', "");
-    Expect(0, 130042, '\p{Decomposition_Type=	non_canonical}', "");
-    Expect(1, 130042, '\p{^Decomposition_Type=	non_canonical}', "");
-    Expect(1, 130042, '\P{Decomposition_Type=	non_canonical}', "");
-    Expect(0, 130042, '\P{^Decomposition_Type=	non_canonical}', "");
-    Error('\p{Dt=:=	 NON_Canon}');
-    Error('\P{Dt=:=	 NON_Canon}');
+    Expect(1, 130041, '\p{Decomposition_Type=_-Non_Canonical}', "");
+    Expect(0, 130041, '\p{^Decomposition_Type=_-Non_Canonical}', "");
+    Expect(0, 130041, '\P{Decomposition_Type=_-Non_Canonical}', "");
+    Expect(1, 130041, '\P{^Decomposition_Type=_-Non_Canonical}', "");
+    Expect(0, 130042, '\p{Decomposition_Type=_-Non_Canonical}', "");
+    Expect(1, 130042, '\p{^Decomposition_Type=_-Non_Canonical}', "");
+    Expect(1, 130042, '\P{Decomposition_Type=_-Non_Canonical}', "");
+    Expect(0, 130042, '\P{^Decomposition_Type=_-Non_Canonical}', "");
+    Error('\p{Dt:   _	Non_canon:=}');
+    Error('\P{Dt:   _	Non_canon:=}');
     Expect(1, 130041, '\p{Dt=:\ANon_Canon\z:}', "");;
     Expect(0, 130042, '\p{Dt=:\ANon_Canon\z:}', "");;
     Expect(1, 130041, '\p{Dt=noncanon}', "");
@@ -36567,16 +37143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 130042, '\P{^Dt=noncanon}', "");
     Expect(1, 130041, '\p{Dt=:\Anoncanon\z:}', "");;
     Expect(0, 130042, '\p{Dt=:\Anoncanon\z:}', "");;
-    Expect(1, 130041, '\p{Dt: _Non_Canon}', "");
-    Expect(0, 130041, '\p{^Dt: _Non_Canon}', "");
-    Expect(0, 130041, '\P{Dt: _Non_Canon}', "");
-    Expect(1, 130041, '\P{^Dt: _Non_Canon}', "");
-    Expect(0, 130042, '\p{Dt: _Non_Canon}', "");
-    Expect(1, 130042, '\p{^Dt: _Non_Canon}', "");
-    Expect(1, 130042, '\P{Dt: _Non_Canon}', "");
-    Expect(0, 130042, '\P{^Dt: _Non_Canon}', "");
-    Error('\p{Is_Decomposition_Type=- NON_Canonical/a/}');
-    Error('\P{Is_Decomposition_Type=- NON_Canonical/a/}');
+    Expect(1, 130041, '\p{Dt: --NON_Canon}', "");
+    Expect(0, 130041, '\p{^Dt: --NON_Canon}', "");
+    Expect(0, 130041, '\P{Dt: --NON_Canon}', "");
+    Expect(1, 130041, '\P{^Dt: --NON_Canon}', "");
+    Expect(0, 130042, '\p{Dt: --NON_Canon}', "");
+    Expect(1, 130042, '\p{^Dt: --NON_Canon}', "");
+    Expect(1, 130042, '\P{Dt: --NON_Canon}', "");
+    Expect(0, 130042, '\P{^Dt: --NON_Canon}', "");
+    Error('\p{Is_Decomposition_Type= :=NON_Canonical}');
+    Error('\P{Is_Decomposition_Type= :=NON_Canonical}');
     Expect(1, 130041, '\p{Is_Decomposition_Type=noncanonical}', "");
     Expect(0, 130041, '\p{^Is_Decomposition_Type=noncanonical}', "");
     Expect(0, 130041, '\P{Is_Decomposition_Type=noncanonical}', "");
@@ -36585,16 +37161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130042, '\p{^Is_Decomposition_Type=noncanonical}', "");
     Expect(1, 130042, '\P{Is_Decomposition_Type=noncanonical}', "");
     Expect(0, 130042, '\P{^Is_Decomposition_Type=noncanonical}', "");
-    Expect(1, 130041, '\p{Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(0, 130041, '\p{^Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(0, 130041, '\P{Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(1, 130041, '\P{^Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(0, 130042, '\p{Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(1, 130042, '\p{^Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(1, 130042, '\P{Is_Decomposition_Type=_ Non_Canonical}', "");
-    Expect(0, 130042, '\P{^Is_Decomposition_Type=_ Non_Canonical}', "");
-    Error('\p{Is_Dt=	:=NON_canon}');
-    Error('\P{Is_Dt=	:=NON_canon}');
+    Expect(1, 130041, '\p{Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(0, 130041, '\p{^Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(0, 130041, '\P{Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(1, 130041, '\P{^Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(0, 130042, '\p{Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(1, 130042, '\p{^Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(1, 130042, '\P{Is_Decomposition_Type=	Non_canonical}', "");
+    Expect(0, 130042, '\P{^Is_Decomposition_Type=	Non_canonical}', "");
+    Error('\p{Is_Dt=_:=Non_Canon}');
+    Error('\P{Is_Dt=_:=Non_Canon}');
     Expect(1, 130041, '\p{Is_Dt=noncanon}', "");
     Expect(0, 130041, '\p{^Is_Dt=noncanon}', "");
     Expect(0, 130041, '\P{Is_Dt=noncanon}', "");
@@ -36603,38 +37179,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 130042, '\p{^Is_Dt=noncanon}', "");
     Expect(1, 130042, '\P{Is_Dt=noncanon}', "");
     Expect(0, 130042, '\P{^Is_Dt=noncanon}', "");
-    Expect(1, 130041, '\p{Is_Dt=	Non_canon}', "");
-    Expect(0, 130041, '\p{^Is_Dt=	Non_canon}', "");
-    Expect(0, 130041, '\P{Is_Dt=	Non_canon}', "");
-    Expect(1, 130041, '\P{^Is_Dt=	Non_canon}', "");
-    Expect(0, 130042, '\p{Is_Dt=	Non_canon}', "");
-    Expect(1, 130042, '\p{^Is_Dt=	Non_canon}', "");
-    Expect(1, 130042, '\P{Is_Dt=	Non_canon}', "");
-    Expect(0, 130042, '\P{^Is_Dt=	Non_canon}', "");
-    Error('\p{Decomposition_Type=-_None:=}');
-    Error('\P{Decomposition_Type=-_None:=}');
+    Expect(1, 130041, '\p{Is_Dt=	_non_CANON}', "");
+    Expect(0, 130041, '\p{^Is_Dt=	_non_CANON}', "");
+    Expect(0, 130041, '\P{Is_Dt=	_non_CANON}', "");
+    Expect(1, 130041, '\P{^Is_Dt=	_non_CANON}', "");
+    Expect(0, 130042, '\p{Is_Dt=	_non_CANON}', "");
+    Expect(1, 130042, '\p{^Is_Dt=	_non_CANON}', "");
+    Expect(1, 130042, '\P{Is_Dt=	_non_CANON}', "");
+    Expect(0, 130042, '\P{^Is_Dt=	_non_CANON}', "");
+    Error('\p{Decomposition_Type=:= _NONE}');
+    Error('\P{Decomposition_Type=:= _NONE}');
     Expect(1, 195102, '\p{Decomposition_Type=:\ANone\z:}', "");;
     Expect(0, 195101, '\p{Decomposition_Type=:\ANone\z:}', "");;
-    Expect(1, 195102, '\p{Decomposition_Type:none}', "");
-    Expect(0, 195102, '\p{^Decomposition_Type:none}', "");
-    Expect(0, 195102, '\P{Decomposition_Type:none}', "");
-    Expect(1, 195102, '\P{^Decomposition_Type:none}', "");
-    Expect(0, 195101, '\p{Decomposition_Type:none}', "");
-    Expect(1, 195101, '\p{^Decomposition_Type:none}', "");
-    Expect(1, 195101, '\P{Decomposition_Type:none}', "");
-    Expect(0, 195101, '\P{^Decomposition_Type:none}', "");
+    Expect(1, 195102, '\p{Decomposition_Type=none}', "");
+    Expect(0, 195102, '\p{^Decomposition_Type=none}', "");
+    Expect(0, 195102, '\P{Decomposition_Type=none}', "");
+    Expect(1, 195102, '\P{^Decomposition_Type=none}', "");
+    Expect(0, 195101, '\p{Decomposition_Type=none}', "");
+    Expect(1, 195101, '\p{^Decomposition_Type=none}', "");
+    Expect(1, 195101, '\P{Decomposition_Type=none}', "");
+    Expect(0, 195101, '\P{^Decomposition_Type=none}', "");
     Expect(1, 195102, '\p{Decomposition_Type=:\Anone\z:}', "");;
     Expect(0, 195101, '\p{Decomposition_Type=:\Anone\z:}', "");;
-    Expect(1, 195102, '\p{Decomposition_Type=_ NONE}', "");
-    Expect(0, 195102, '\p{^Decomposition_Type=_ NONE}', "");
-    Expect(0, 195102, '\P{Decomposition_Type=_ NONE}', "");
-    Expect(1, 195102, '\P{^Decomposition_Type=_ NONE}', "");
-    Expect(0, 195101, '\p{Decomposition_Type=_ NONE}', "");
-    Expect(1, 195101, '\p{^Decomposition_Type=_ NONE}', "");
-    Expect(1, 195101, '\P{Decomposition_Type=_ NONE}', "");
-    Expect(0, 195101, '\P{^Decomposition_Type=_ NONE}', "");
-    Error('\p{Dt=:=__None}');
-    Error('\P{Dt=:=__None}');
+    Expect(1, 195102, '\p{Decomposition_Type=	None}', "");
+    Expect(0, 195102, '\p{^Decomposition_Type=	None}', "");
+    Expect(0, 195102, '\P{Decomposition_Type=	None}', "");
+    Expect(1, 195102, '\P{^Decomposition_Type=	None}', "");
+    Expect(0, 195101, '\p{Decomposition_Type=	None}', "");
+    Expect(1, 195101, '\p{^Decomposition_Type=	None}', "");
+    Expect(1, 195101, '\P{Decomposition_Type=	None}', "");
+    Expect(0, 195101, '\P{^Decomposition_Type=	None}', "");
+    Error('\p{Dt=-_none/a/}');
+    Error('\P{Dt=-_none/a/}');
     Expect(1, 195102, '\p{Dt=:\ANone\z:}', "");;
     Expect(0, 195101, '\p{Dt=:\ANone\z:}', "");;
     Expect(1, 195102, '\p{Dt=none}', "");
@@ -36647,16 +37223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 195101, '\P{^Dt=none}', "");
     Expect(1, 195102, '\p{Dt=:\Anone\z:}', "");;
     Expect(0, 195101, '\p{Dt=:\Anone\z:}', "");;
-    Expect(1, 195102, '\p{Dt= NONE}', "");
-    Expect(0, 195102, '\p{^Dt= NONE}', "");
-    Expect(0, 195102, '\P{Dt= NONE}', "");
-    Expect(1, 195102, '\P{^Dt= NONE}', "");
-    Expect(0, 195101, '\p{Dt= NONE}', "");
-    Expect(1, 195101, '\p{^Dt= NONE}', "");
-    Expect(1, 195101, '\P{Dt= NONE}', "");
-    Expect(0, 195101, '\P{^Dt= NONE}', "");
-    Error('\p{Is_Decomposition_Type=_ none/a/}');
-    Error('\P{Is_Decomposition_Type=_ none/a/}');
+    Expect(1, 195102, '\p{Dt=_NONE}', "");
+    Expect(0, 195102, '\p{^Dt=_NONE}', "");
+    Expect(0, 195102, '\P{Dt=_NONE}', "");
+    Expect(1, 195102, '\P{^Dt=_NONE}', "");
+    Expect(0, 195101, '\p{Dt=_NONE}', "");
+    Expect(1, 195101, '\p{^Dt=_NONE}', "");
+    Expect(1, 195101, '\P{Dt=_NONE}', "");
+    Expect(0, 195101, '\P{^Dt=_NONE}', "");
+    Error('\p{Is_Decomposition_Type=_:=NONE}');
+    Error('\P{Is_Decomposition_Type=_:=NONE}');
     Expect(1, 195102, '\p{Is_Decomposition_Type=none}', "");
     Expect(0, 195102, '\p{^Is_Decomposition_Type=none}', "");
     Expect(0, 195102, '\P{Is_Decomposition_Type=none}', "");
@@ -36665,16 +37241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195101, '\p{^Is_Decomposition_Type=none}', "");
     Expect(1, 195101, '\P{Is_Decomposition_Type=none}', "");
     Expect(0, 195101, '\P{^Is_Decomposition_Type=none}', "");
-    Expect(1, 195102, '\p{Is_Decomposition_Type=--none}', "");
-    Expect(0, 195102, '\p{^Is_Decomposition_Type=--none}', "");
-    Expect(0, 195102, '\P{Is_Decomposition_Type=--none}', "");
-    Expect(1, 195102, '\P{^Is_Decomposition_Type=--none}', "");
-    Expect(0, 195101, '\p{Is_Decomposition_Type=--none}', "");
-    Expect(1, 195101, '\p{^Is_Decomposition_Type=--none}', "");
-    Expect(1, 195101, '\P{Is_Decomposition_Type=--none}', "");
-    Expect(0, 195101, '\P{^Is_Decomposition_Type=--none}', "");
-    Error('\p{Is_Dt=/a/-NONE}');
-    Error('\P{Is_Dt=/a/-NONE}');
+    Expect(1, 195102, '\p{Is_Decomposition_Type=- NONE}', "");
+    Expect(0, 195102, '\p{^Is_Decomposition_Type=- NONE}', "");
+    Expect(0, 195102, '\P{Is_Decomposition_Type=- NONE}', "");
+    Expect(1, 195102, '\P{^Is_Decomposition_Type=- NONE}', "");
+    Expect(0, 195101, '\p{Is_Decomposition_Type=- NONE}', "");
+    Expect(1, 195101, '\p{^Is_Decomposition_Type=- NONE}', "");
+    Expect(1, 195101, '\P{Is_Decomposition_Type=- NONE}', "");
+    Expect(0, 195101, '\P{^Is_Decomposition_Type=- NONE}', "");
+    Error('\p{Is_Dt=-None/a/}');
+    Error('\P{Is_Dt=-None/a/}');
     Expect(1, 195102, '\p{Is_Dt=none}', "");
     Expect(0, 195102, '\p{^Is_Dt=none}', "");
     Expect(0, 195102, '\P{Is_Dt=none}', "");
@@ -36683,16 +37259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 195101, '\p{^Is_Dt=none}', "");
     Expect(1, 195101, '\P{Is_Dt=none}', "");
     Expect(0, 195101, '\P{^Is_Dt=none}', "");
-    Expect(1, 195102, '\p{Is_Dt: NONE}', "");
-    Expect(0, 195102, '\p{^Is_Dt: NONE}', "");
-    Expect(0, 195102, '\P{Is_Dt: NONE}', "");
-    Expect(1, 195102, '\P{^Is_Dt: NONE}', "");
-    Expect(0, 195101, '\p{Is_Dt: NONE}', "");
-    Expect(1, 195101, '\p{^Is_Dt: NONE}', "");
-    Expect(1, 195101, '\P{Is_Dt: NONE}', "");
-    Expect(0, 195101, '\P{^Is_Dt: NONE}', "");
-    Error('\p{Decomposition_Type=:= _Small}');
-    Error('\P{Decomposition_Type=:= _Small}');
+    Expect(1, 195102, '\p{Is_Dt=	-None}', "");
+    Expect(0, 195102, '\p{^Is_Dt=	-None}', "");
+    Expect(0, 195102, '\P{Is_Dt=	-None}', "");
+    Expect(1, 195102, '\P{^Is_Dt=	-None}', "");
+    Expect(0, 195101, '\p{Is_Dt=	-None}', "");
+    Expect(1, 195101, '\p{^Is_Dt=	-None}', "");
+    Expect(1, 195101, '\P{Is_Dt=	-None}', "");
+    Expect(0, 195101, '\P{^Is_Dt=	-None}', "");
+    Error('\p{Decomposition_Type:    	SMALL/a/}');
+    Error('\P{Decomposition_Type:    	SMALL/a/}');
     Expect(1, 65131, '\p{Decomposition_Type=:\ASmall\z:}', "");;
     Expect(0, 65132, '\p{Decomposition_Type=:\ASmall\z:}', "");;
     Expect(1, 65131, '\p{Decomposition_Type=small}', "");
@@ -36705,16 +37281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65132, '\P{^Decomposition_Type=small}', "");
     Expect(1, 65131, '\p{Decomposition_Type=:\Asmall\z:}', "");;
     Expect(0, 65132, '\p{Decomposition_Type=:\Asmall\z:}', "");;
-    Expect(1, 65131, '\p{Decomposition_Type=	-Small}', "");
-    Expect(0, 65131, '\p{^Decomposition_Type=	-Small}', "");
-    Expect(0, 65131, '\P{Decomposition_Type=	-Small}', "");
-    Expect(1, 65131, '\P{^Decomposition_Type=	-Small}', "");
-    Expect(0, 65132, '\p{Decomposition_Type=	-Small}', "");
-    Expect(1, 65132, '\p{^Decomposition_Type=	-Small}', "");
-    Expect(1, 65132, '\P{Decomposition_Type=	-Small}', "");
-    Expect(0, 65132, '\P{^Decomposition_Type=	-Small}', "");
-    Error('\p{Dt=_/a/sml}');
-    Error('\P{Dt=_/a/sml}');
+    Expect(1, 65131, '\p{Decomposition_Type=	_SMALL}', "");
+    Expect(0, 65131, '\p{^Decomposition_Type=	_SMALL}', "");
+    Expect(0, 65131, '\P{Decomposition_Type=	_SMALL}', "");
+    Expect(1, 65131, '\P{^Decomposition_Type=	_SMALL}', "");
+    Expect(0, 65132, '\p{Decomposition_Type=	_SMALL}', "");
+    Expect(1, 65132, '\p{^Decomposition_Type=	_SMALL}', "");
+    Expect(1, 65132, '\P{Decomposition_Type=	_SMALL}', "");
+    Expect(0, 65132, '\P{^Decomposition_Type=	_SMALL}', "");
+    Error('\p{Dt= Sml/a/}');
+    Error('\P{Dt= Sml/a/}');
     Expect(1, 65131, '\p{Dt=:\ASml\z:}', "");;
     Expect(0, 65132, '\p{Dt=:\ASml\z:}', "");;
     Expect(1, 65131, '\p{Dt=sml}', "");
@@ -36727,16 +37303,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65132, '\P{^Dt=sml}', "");
     Expect(1, 65131, '\p{Dt=:\Asml\z:}', "");;
     Expect(0, 65132, '\p{Dt=:\Asml\z:}', "");;
-    Expect(1, 65131, '\p{Dt=	 Sml}', "");
-    Expect(0, 65131, '\p{^Dt=	 Sml}', "");
-    Expect(0, 65131, '\P{Dt=	 Sml}', "");
-    Expect(1, 65131, '\P{^Dt=	 Sml}', "");
-    Expect(0, 65132, '\p{Dt=	 Sml}', "");
-    Expect(1, 65132, '\p{^Dt=	 Sml}', "");
-    Expect(1, 65132, '\P{Dt=	 Sml}', "");
-    Expect(0, 65132, '\P{^Dt=	 Sml}', "");
-    Error('\p{Is_Decomposition_Type=	small:=}');
-    Error('\P{Is_Decomposition_Type=	small:=}');
+    Error('\p{Is_Decomposition_Type=	SMALL/a/}');
+    Error('\P{Is_Decomposition_Type=	SMALL/a/}');
     Expect(1, 65131, '\p{Is_Decomposition_Type=small}', "");
     Expect(0, 65131, '\p{^Is_Decomposition_Type=small}', "");
     Expect(0, 65131, '\P{Is_Decomposition_Type=small}', "");
@@ -36745,34 +37313,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65132, '\p{^Is_Decomposition_Type=small}', "");
     Expect(1, 65132, '\P{Is_Decomposition_Type=small}', "");
     Expect(0, 65132, '\P{^Is_Decomposition_Type=small}', "");
-    Expect(1, 65131, '\p{Is_Decomposition_Type:    -Small}', "");
-    Expect(0, 65131, '\p{^Is_Decomposition_Type:    -Small}', "");
-    Expect(0, 65131, '\P{Is_Decomposition_Type:    -Small}', "");
-    Expect(1, 65131, '\P{^Is_Decomposition_Type:    -Small}', "");
-    Expect(0, 65132, '\p{Is_Decomposition_Type:    -Small}', "");
-    Expect(1, 65132, '\p{^Is_Decomposition_Type:    -Small}', "");
-    Expect(1, 65132, '\P{Is_Decomposition_Type:    -Small}', "");
-    Expect(0, 65132, '\P{^Is_Decomposition_Type:    -Small}', "");
-    Error('\p{Is_Dt= _sml:=}');
-    Error('\P{Is_Dt= _sml:=}');
-    Expect(1, 65131, '\p{Is_Dt=sml}', "");
-    Expect(0, 65131, '\p{^Is_Dt=sml}', "");
-    Expect(0, 65131, '\P{Is_Dt=sml}', "");
-    Expect(1, 65131, '\P{^Is_Dt=sml}', "");
-    Expect(0, 65132, '\p{Is_Dt=sml}', "");
-    Expect(1, 65132, '\p{^Is_Dt=sml}', "");
-    Expect(1, 65132, '\P{Is_Dt=sml}', "");
-    Expect(0, 65132, '\P{^Is_Dt=sml}', "");
-    Expect(1, 65131, '\p{Is_Dt=_Sml}', "");
-    Expect(0, 65131, '\p{^Is_Dt=_Sml}', "");
-    Expect(0, 65131, '\P{Is_Dt=_Sml}', "");
-    Expect(1, 65131, '\P{^Is_Dt=_Sml}', "");
-    Expect(0, 65132, '\p{Is_Dt=_Sml}', "");
-    Expect(1, 65132, '\p{^Is_Dt=_Sml}', "");
-    Expect(1, 65132, '\P{Is_Dt=_Sml}', "");
-    Expect(0, 65132, '\P{^Is_Dt=_Sml}', "");
-    Error('\p{Decomposition_Type=-:=Square}');
-    Error('\P{Decomposition_Type=-:=Square}');
+    Expect(1, 65131, '\p{Is_Decomposition_Type=_small}', "");
+    Expect(0, 65131, '\p{^Is_Decomposition_Type=_small}', "");
+    Expect(0, 65131, '\P{Is_Decomposition_Type=_small}', "");
+    Expect(1, 65131, '\P{^Is_Decomposition_Type=_small}', "");
+    Expect(0, 65132, '\p{Is_Decomposition_Type=_small}', "");
+    Expect(1, 65132, '\p{^Is_Decomposition_Type=_small}', "");
+    Expect(1, 65132, '\P{Is_Decomposition_Type=_small}', "");
+    Expect(0, 65132, '\P{^Is_Decomposition_Type=_small}', "");
+    Error('\p{Is_Dt=/a/_-sml}');
+    Error('\P{Is_Dt=/a/_-sml}');
+    Expect(1, 65131, '\p{Is_Dt:sml}', "");
+    Expect(0, 65131, '\p{^Is_Dt:sml}', "");
+    Expect(0, 65131, '\P{Is_Dt:sml}', "");
+    Expect(1, 65131, '\P{^Is_Dt:sml}', "");
+    Expect(0, 65132, '\p{Is_Dt:sml}', "");
+    Expect(1, 65132, '\p{^Is_Dt:sml}', "");
+    Expect(1, 65132, '\P{Is_Dt:sml}', "");
+    Expect(0, 65132, '\P{^Is_Dt:sml}', "");
+    Expect(1, 65131, '\p{Is_Dt= -Sml}', "");
+    Expect(0, 65131, '\p{^Is_Dt= -Sml}', "");
+    Expect(0, 65131, '\P{Is_Dt= -Sml}', "");
+    Expect(1, 65131, '\P{^Is_Dt= -Sml}', "");
+    Expect(0, 65132, '\p{Is_Dt= -Sml}', "");
+    Expect(1, 65132, '\p{^Is_Dt= -Sml}', "");
+    Expect(1, 65132, '\P{Is_Dt= -Sml}', "");
+    Expect(0, 65132, '\P{^Is_Dt= -Sml}', "");
+    Error('\p{Decomposition_Type=-_Square/a/}');
+    Error('\P{Decomposition_Type=-_Square/a/}');
     Expect(1, 127547, '\p{Decomposition_Type=:\ASquare\z:}', "");;
     Expect(0, 127548, '\p{Decomposition_Type=:\ASquare\z:}', "");;
     Expect(1, 127547, '\p{Decomposition_Type=square}', "");
@@ -36785,16 +37353,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127548, '\P{^Decomposition_Type=square}', "");
     Expect(1, 127547, '\p{Decomposition_Type=:\Asquare\z:}', "");;
     Expect(0, 127548, '\p{Decomposition_Type=:\Asquare\z:}', "");;
-    Expect(1, 127547, '\p{Decomposition_Type=_ Square}', "");
-    Expect(0, 127547, '\p{^Decomposition_Type=_ Square}', "");
-    Expect(0, 127547, '\P{Decomposition_Type=_ Square}', "");
-    Expect(1, 127547, '\P{^Decomposition_Type=_ Square}', "");
-    Expect(0, 127548, '\p{Decomposition_Type=_ Square}', "");
-    Expect(1, 127548, '\p{^Decomposition_Type=_ Square}', "");
-    Expect(1, 127548, '\P{Decomposition_Type=_ Square}', "");
-    Expect(0, 127548, '\P{^Decomposition_Type=_ Square}', "");
-    Error('\p{Dt=/a/-_sqr}');
-    Error('\P{Dt=/a/-_sqr}');
+    Expect(1, 127547, '\p{Decomposition_Type= 	Square}', "");
+    Expect(0, 127547, '\p{^Decomposition_Type= 	Square}', "");
+    Expect(0, 127547, '\P{Decomposition_Type= 	Square}', "");
+    Expect(1, 127547, '\P{^Decomposition_Type= 	Square}', "");
+    Expect(0, 127548, '\p{Decomposition_Type= 	Square}', "");
+    Expect(1, 127548, '\p{^Decomposition_Type= 	Square}', "");
+    Expect(1, 127548, '\P{Decomposition_Type= 	Square}', "");
+    Expect(0, 127548, '\P{^Decomposition_Type= 	Square}', "");
+    Error('\p{Dt=/a/-Sqr}');
+    Error('\P{Dt=/a/-Sqr}');
     Expect(1, 127547, '\p{Dt=:\ASqr\z:}', "");;
     Expect(0, 127548, '\p{Dt=:\ASqr\z:}', "");;
     Expect(1, 127547, '\p{Dt=sqr}', "");
@@ -36807,16 +37375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127548, '\P{^Dt=sqr}', "");
     Expect(1, 127547, '\p{Dt=:\Asqr\z:}', "");;
     Expect(0, 127548, '\p{Dt=:\Asqr\z:}', "");;
-    Expect(1, 127547, '\p{Dt= Sqr}', "");
-    Expect(0, 127547, '\p{^Dt= Sqr}', "");
-    Expect(0, 127547, '\P{Dt= Sqr}', "");
-    Expect(1, 127547, '\P{^Dt= Sqr}', "");
-    Expect(0, 127548, '\p{Dt= Sqr}', "");
-    Expect(1, 127548, '\p{^Dt= Sqr}', "");
-    Expect(1, 127548, '\P{Dt= Sqr}', "");
-    Expect(0, 127548, '\P{^Dt= Sqr}', "");
-    Error('\p{Is_Decomposition_Type=/a/_square}');
-    Error('\P{Is_Decomposition_Type=/a/_square}');
+    Expect(1, 127547, '\p{Dt=	Sqr}', "");
+    Expect(0, 127547, '\p{^Dt=	Sqr}', "");
+    Expect(0, 127547, '\P{Dt=	Sqr}', "");
+    Expect(1, 127547, '\P{^Dt=	Sqr}', "");
+    Expect(0, 127548, '\p{Dt=	Sqr}', "");
+    Expect(1, 127548, '\p{^Dt=	Sqr}', "");
+    Expect(1, 127548, '\P{Dt=	Sqr}', "");
+    Expect(0, 127548, '\P{^Dt=	Sqr}', "");
+    Error('\p{Is_Decomposition_Type:   /a/ 	SQUARE}');
+    Error('\P{Is_Decomposition_Type:   /a/ 	SQUARE}');
     Expect(1, 127547, '\p{Is_Decomposition_Type=square}', "");
     Expect(0, 127547, '\p{^Is_Decomposition_Type=square}', "");
     Expect(0, 127547, '\P{Is_Decomposition_Type=square}', "");
@@ -36825,16 +37393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127548, '\p{^Is_Decomposition_Type=square}', "");
     Expect(1, 127548, '\P{Is_Decomposition_Type=square}', "");
     Expect(0, 127548, '\P{^Is_Decomposition_Type=square}', "");
-    Expect(1, 127547, '\p{Is_Decomposition_Type=	Square}', "");
-    Expect(0, 127547, '\p{^Is_Decomposition_Type=	Square}', "");
-    Expect(0, 127547, '\P{Is_Decomposition_Type=	Square}', "");
-    Expect(1, 127547, '\P{^Is_Decomposition_Type=	Square}', "");
-    Expect(0, 127548, '\p{Is_Decomposition_Type=	Square}', "");
-    Expect(1, 127548, '\p{^Is_Decomposition_Type=	Square}', "");
-    Expect(1, 127548, '\P{Is_Decomposition_Type=	Square}', "");
-    Expect(0, 127548, '\P{^Is_Decomposition_Type=	Square}', "");
-    Error('\p{Is_Dt=:=	_Sqr}');
-    Error('\P{Is_Dt=:=	_Sqr}');
+    Expect(1, 127547, '\p{Is_Decomposition_Type= square}', "");
+    Expect(0, 127547, '\p{^Is_Decomposition_Type= square}', "");
+    Expect(0, 127547, '\P{Is_Decomposition_Type= square}', "");
+    Expect(1, 127547, '\P{^Is_Decomposition_Type= square}', "");
+    Expect(0, 127548, '\p{Is_Decomposition_Type= square}', "");
+    Expect(1, 127548, '\p{^Is_Decomposition_Type= square}', "");
+    Expect(1, 127548, '\P{Is_Decomposition_Type= square}', "");
+    Expect(0, 127548, '\P{^Is_Decomposition_Type= square}', "");
+    Error('\p{Is_Dt=:= SQR}');
+    Error('\P{Is_Dt=:= SQR}');
     Expect(1, 127547, '\p{Is_Dt=sqr}', "");
     Expect(0, 127547, '\p{^Is_Dt=sqr}', "");
     Expect(0, 127547, '\P{Is_Dt=sqr}', "");
@@ -36843,96 +37411,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127548, '\p{^Is_Dt=sqr}', "");
     Expect(1, 127548, '\P{Is_Dt=sqr}', "");
     Expect(0, 127548, '\P{^Is_Dt=sqr}', "");
-    Expect(1, 127547, '\p{Is_Dt:		 sqr}', "");
-    Expect(0, 127547, '\p{^Is_Dt:		 sqr}', "");
-    Expect(0, 127547, '\P{Is_Dt:		 sqr}', "");
-    Expect(1, 127547, '\P{^Is_Dt:		 sqr}', "");
-    Expect(0, 127548, '\p{Is_Dt:		 sqr}', "");
-    Expect(1, 127548, '\p{^Is_Dt:		 sqr}', "");
-    Expect(1, 127548, '\P{Is_Dt:		 sqr}', "");
-    Expect(0, 127548, '\P{^Is_Dt:		 sqr}', "");
-    Error('\p{Decomposition_Type=/a/	sub}');
-    Error('\P{Decomposition_Type=/a/	sub}');
-    Expect(1, 11388, '\p{Decomposition_Type=:\ASub\z:}', "");;
-    Expect(0, 11389, '\p{Decomposition_Type=:\ASub\z:}', "");;
-    Expect(1, 11388, '\p{Decomposition_Type=sub}', "");
-    Expect(0, 11388, '\p{^Decomposition_Type=sub}', "");
-    Expect(0, 11388, '\P{Decomposition_Type=sub}', "");
-    Expect(1, 11388, '\P{^Decomposition_Type=sub}', "");
-    Expect(0, 11389, '\p{Decomposition_Type=sub}', "");
-    Expect(1, 11389, '\p{^Decomposition_Type=sub}', "");
-    Expect(1, 11389, '\P{Decomposition_Type=sub}', "");
-    Expect(0, 11389, '\P{^Decomposition_Type=sub}', "");
-    Expect(1, 11388, '\p{Decomposition_Type=:\Asub\z:}', "");;
-    Expect(0, 11389, '\p{Decomposition_Type=:\Asub\z:}', "");;
-    Expect(1, 11388, '\p{Decomposition_Type=_SUB}', "");
-    Expect(0, 11388, '\p{^Decomposition_Type=_SUB}', "");
-    Expect(0, 11388, '\P{Decomposition_Type=_SUB}', "");
-    Expect(1, 11388, '\P{^Decomposition_Type=_SUB}', "");
-    Expect(0, 11389, '\p{Decomposition_Type=_SUB}', "");
-    Expect(1, 11389, '\p{^Decomposition_Type=_SUB}', "");
-    Expect(1, 11389, '\P{Decomposition_Type=_SUB}', "");
-    Expect(0, 11389, '\P{^Decomposition_Type=_SUB}', "");
-    Error('\p{Dt=/a/ SUB}');
-    Error('\P{Dt=/a/ SUB}');
-    Expect(1, 11388, '\p{Dt=:\ASub\z:}', "");;
-    Expect(0, 11389, '\p{Dt=:\ASub\z:}', "");;
-    Expect(1, 11388, '\p{Dt=sub}', "");
-    Expect(0, 11388, '\p{^Dt=sub}', "");
-    Expect(0, 11388, '\P{Dt=sub}', "");
-    Expect(1, 11388, '\P{^Dt=sub}', "");
-    Expect(0, 11389, '\p{Dt=sub}', "");
-    Expect(1, 11389, '\p{^Dt=sub}', "");
-    Expect(1, 11389, '\P{Dt=sub}', "");
-    Expect(0, 11389, '\P{^Dt=sub}', "");
-    Expect(1, 11388, '\p{Dt=:\Asub\z:}', "");;
-    Expect(0, 11389, '\p{Dt=:\Asub\z:}', "");;
-    Expect(1, 11388, '\p{Dt=	-SUB}', "");
-    Expect(0, 11388, '\p{^Dt=	-SUB}', "");
-    Expect(0, 11388, '\P{Dt=	-SUB}', "");
-    Expect(1, 11388, '\P{^Dt=	-SUB}', "");
-    Expect(0, 11389, '\p{Dt=	-SUB}', "");
-    Expect(1, 11389, '\p{^Dt=	-SUB}', "");
-    Expect(1, 11389, '\P{Dt=	-SUB}', "");
-    Expect(0, 11389, '\P{^Dt=	-SUB}', "");
-    Error('\p{Is_Decomposition_Type= Sub:=}');
-    Error('\P{Is_Decomposition_Type= Sub:=}');
-    Expect(1, 11388, '\p{Is_Decomposition_Type=sub}', "");
-    Expect(0, 11388, '\p{^Is_Decomposition_Type=sub}', "");
-    Expect(0, 11388, '\P{Is_Decomposition_Type=sub}', "");
-    Expect(1, 11388, '\P{^Is_Decomposition_Type=sub}', "");
-    Expect(0, 11389, '\p{Is_Decomposition_Type=sub}', "");
-    Expect(1, 11389, '\p{^Is_Decomposition_Type=sub}', "");
-    Expect(1, 11389, '\P{Is_Decomposition_Type=sub}', "");
-    Expect(0, 11389, '\P{^Is_Decomposition_Type=sub}', "");
-    Expect(1, 11388, '\p{Is_Decomposition_Type= -Sub}', "");
-    Expect(0, 11388, '\p{^Is_Decomposition_Type= -Sub}', "");
-    Expect(0, 11388, '\P{Is_Decomposition_Type= -Sub}', "");
-    Expect(1, 11388, '\P{^Is_Decomposition_Type= -Sub}', "");
-    Expect(0, 11389, '\p{Is_Decomposition_Type= -Sub}', "");
-    Expect(1, 11389, '\p{^Is_Decomposition_Type= -Sub}', "");
-    Expect(1, 11389, '\P{Is_Decomposition_Type= -Sub}', "");
-    Expect(0, 11389, '\P{^Is_Decomposition_Type= -Sub}', "");
-    Error('\p{Is_Dt=/a/		Sub}');
-    Error('\P{Is_Dt=/a/		Sub}');
-    Expect(1, 11388, '\p{Is_Dt=sub}', "");
-    Expect(0, 11388, '\p{^Is_Dt=sub}', "");
-    Expect(0, 11388, '\P{Is_Dt=sub}', "");
-    Expect(1, 11388, '\P{^Is_Dt=sub}', "");
-    Expect(0, 11389, '\p{Is_Dt=sub}', "");
-    Expect(1, 11389, '\p{^Is_Dt=sub}', "");
-    Expect(1, 11389, '\P{Is_Dt=sub}', "");
-    Expect(0, 11389, '\P{^Is_Dt=sub}', "");
-    Expect(1, 11388, '\p{Is_Dt=--Sub}', "");
-    Expect(0, 11388, '\p{^Is_Dt=--Sub}', "");
-    Expect(0, 11388, '\P{Is_Dt=--Sub}', "");
-    Expect(1, 11388, '\P{^Is_Dt=--Sub}', "");
-    Expect(0, 11389, '\p{Is_Dt=--Sub}', "");
-    Expect(1, 11389, '\p{^Is_Dt=--Sub}', "");
-    Expect(1, 11389, '\P{Is_Dt=--Sub}', "");
-    Expect(0, 11389, '\P{^Is_Dt=--Sub}', "");
-    Error('\p{Decomposition_Type=/a/  SUPER}');
-    Error('\P{Decomposition_Type=/a/  SUPER}');
+    Expect(1, 127547, '\p{Is_Dt=	-SQR}', "");
+    Expect(0, 127547, '\p{^Is_Dt=	-SQR}', "");
+    Expect(0, 127547, '\P{Is_Dt=	-SQR}', "");
+    Expect(1, 127547, '\P{^Is_Dt=	-SQR}', "");
+    Expect(0, 127548, '\p{Is_Dt=	-SQR}', "");
+    Expect(1, 127548, '\p{^Is_Dt=	-SQR}', "");
+    Expect(1, 127548, '\P{Is_Dt=	-SQR}', "");
+    Expect(0, 127548, '\P{^Is_Dt=	-SQR}', "");
+    Error('\p{Decomposition_Type=/a/ SUB}');
+    Error('\P{Decomposition_Type=/a/ SUB}');
+    Expect(1, 122986, '\p{Decomposition_Type=:\ASub\z:}', "");;
+    Expect(0, 122987, '\p{Decomposition_Type=:\ASub\z:}', "");;
+    Expect(1, 122986, '\p{Decomposition_Type=sub}', "");
+    Expect(0, 122986, '\p{^Decomposition_Type=sub}', "");
+    Expect(0, 122986, '\P{Decomposition_Type=sub}', "");
+    Expect(1, 122986, '\P{^Decomposition_Type=sub}', "");
+    Expect(0, 122987, '\p{Decomposition_Type=sub}', "");
+    Expect(1, 122987, '\p{^Decomposition_Type=sub}', "");
+    Expect(1, 122987, '\P{Decomposition_Type=sub}', "");
+    Expect(0, 122987, '\P{^Decomposition_Type=sub}', "");
+    Expect(1, 122986, '\p{Decomposition_Type=:\Asub\z:}', "");;
+    Expect(0, 122987, '\p{Decomposition_Type=:\Asub\z:}', "");;
+    Expect(1, 122986, '\p{Decomposition_Type=-Sub}', "");
+    Expect(0, 122986, '\p{^Decomposition_Type=-Sub}', "");
+    Expect(0, 122986, '\P{Decomposition_Type=-Sub}', "");
+    Expect(1, 122986, '\P{^Decomposition_Type=-Sub}', "");
+    Expect(0, 122987, '\p{Decomposition_Type=-Sub}', "");
+    Expect(1, 122987, '\p{^Decomposition_Type=-Sub}', "");
+    Expect(1, 122987, '\P{Decomposition_Type=-Sub}', "");
+    Expect(0, 122987, '\P{^Decomposition_Type=-Sub}', "");
+    Error('\p{Dt: 	Sub/a/}');
+    Error('\P{Dt: 	Sub/a/}');
+    Expect(1, 122986, '\p{Dt=:\ASub\z:}', "");;
+    Expect(0, 122987, '\p{Dt=:\ASub\z:}', "");;
+    Expect(1, 122986, '\p{Dt=sub}', "");
+    Expect(0, 122986, '\p{^Dt=sub}', "");
+    Expect(0, 122986, '\P{Dt=sub}', "");
+    Expect(1, 122986, '\P{^Dt=sub}', "");
+    Expect(0, 122987, '\p{Dt=sub}', "");
+    Expect(1, 122987, '\p{^Dt=sub}', "");
+    Expect(1, 122987, '\P{Dt=sub}', "");
+    Expect(0, 122987, '\P{^Dt=sub}', "");
+    Expect(1, 122986, '\p{Dt=:\Asub\z:}', "");;
+    Expect(0, 122987, '\p{Dt=:\Asub\z:}', "");;
+    Expect(1, 122986, '\p{Dt:	sub}', "");
+    Expect(0, 122986, '\p{^Dt:	sub}', "");
+    Expect(0, 122986, '\P{Dt:	sub}', "");
+    Expect(1, 122986, '\P{^Dt:	sub}', "");
+    Expect(0, 122987, '\p{Dt:	sub}', "");
+    Expect(1, 122987, '\p{^Dt:	sub}', "");
+    Expect(1, 122987, '\P{Dt:	sub}', "");
+    Expect(0, 122987, '\P{^Dt:	sub}', "");
+    Error('\p{Is_Decomposition_Type=_/a/SUB}');
+    Error('\P{Is_Decomposition_Type=_/a/SUB}');
+    Expect(1, 122986, '\p{Is_Decomposition_Type=sub}', "");
+    Expect(0, 122986, '\p{^Is_Decomposition_Type=sub}', "");
+    Expect(0, 122986, '\P{Is_Decomposition_Type=sub}', "");
+    Expect(1, 122986, '\P{^Is_Decomposition_Type=sub}', "");
+    Expect(0, 122987, '\p{Is_Decomposition_Type=sub}', "");
+    Expect(1, 122987, '\p{^Is_Decomposition_Type=sub}', "");
+    Expect(1, 122987, '\P{Is_Decomposition_Type=sub}', "");
+    Expect(0, 122987, '\P{^Is_Decomposition_Type=sub}', "");
+    Expect(1, 122986, '\p{Is_Decomposition_Type=-Sub}', "");
+    Expect(0, 122986, '\p{^Is_Decomposition_Type=-Sub}', "");
+    Expect(0, 122986, '\P{Is_Decomposition_Type=-Sub}', "");
+    Expect(1, 122986, '\P{^Is_Decomposition_Type=-Sub}', "");
+    Expect(0, 122987, '\p{Is_Decomposition_Type=-Sub}', "");
+    Expect(1, 122987, '\p{^Is_Decomposition_Type=-Sub}', "");
+    Expect(1, 122987, '\P{Is_Decomposition_Type=-Sub}', "");
+    Expect(0, 122987, '\P{^Is_Decomposition_Type=-Sub}', "");
+    Error('\p{Is_Dt=/a/_Sub}');
+    Error('\P{Is_Dt=/a/_Sub}');
+    Expect(1, 122986, '\p{Is_Dt=sub}', "");
+    Expect(0, 122986, '\p{^Is_Dt=sub}', "");
+    Expect(0, 122986, '\P{Is_Dt=sub}', "");
+    Expect(1, 122986, '\P{^Is_Dt=sub}', "");
+    Expect(0, 122987, '\p{Is_Dt=sub}', "");
+    Expect(1, 122987, '\p{^Is_Dt=sub}', "");
+    Expect(1, 122987, '\P{Is_Dt=sub}', "");
+    Expect(0, 122987, '\P{^Is_Dt=sub}', "");
+    Expect(1, 122986, '\p{Is_Dt=		Sub}', "");
+    Expect(0, 122986, '\p{^Is_Dt=		Sub}', "");
+    Expect(0, 122986, '\P{Is_Dt=		Sub}', "");
+    Expect(1, 122986, '\P{^Is_Dt=		Sub}', "");
+    Expect(0, 122987, '\p{Is_Dt=		Sub}', "");
+    Expect(1, 122987, '\p{^Is_Dt=		Sub}', "");
+    Expect(1, 122987, '\P{Is_Dt=		Sub}', "");
+    Expect(0, 122987, '\P{^Is_Dt=		Sub}', "");
+    Error('\p{Decomposition_Type=-	super:=}');
+    Error('\P{Decomposition_Type=-	super:=}');
     Expect(1, 127340, '\p{Decomposition_Type=:\ASuper\z:}', "");;
     Expect(0, 127341, '\p{Decomposition_Type=:\ASuper\z:}', "");;
     Expect(1, 127340, '\p{Decomposition_Type=super}', "");
@@ -36945,38 +37513,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127341, '\P{^Decomposition_Type=super}', "");
     Expect(1, 127340, '\p{Decomposition_Type=:\Asuper\z:}', "");;
     Expect(0, 127341, '\p{Decomposition_Type=:\Asuper\z:}', "");;
-    Expect(1, 127340, '\p{Decomposition_Type=	-super}', "");
-    Expect(0, 127340, '\p{^Decomposition_Type=	-super}', "");
-    Expect(0, 127340, '\P{Decomposition_Type=	-super}', "");
-    Expect(1, 127340, '\P{^Decomposition_Type=	-super}', "");
-    Expect(0, 127341, '\p{Decomposition_Type=	-super}', "");
-    Expect(1, 127341, '\p{^Decomposition_Type=	-super}', "");
-    Expect(1, 127341, '\P{Decomposition_Type=	-super}', "");
-    Expect(0, 127341, '\P{^Decomposition_Type=	-super}', "");
-    Error('\p{Dt=SUP:=}');
-    Error('\P{Dt=SUP:=}');
+    Expect(1, 127340, '\p{Decomposition_Type=__SUPER}', "");
+    Expect(0, 127340, '\p{^Decomposition_Type=__SUPER}', "");
+    Expect(0, 127340, '\P{Decomposition_Type=__SUPER}', "");
+    Expect(1, 127340, '\P{^Decomposition_Type=__SUPER}', "");
+    Expect(0, 127341, '\p{Decomposition_Type=__SUPER}', "");
+    Expect(1, 127341, '\p{^Decomposition_Type=__SUPER}', "");
+    Expect(1, 127341, '\P{Decomposition_Type=__SUPER}', "");
+    Expect(0, 127341, '\P{^Decomposition_Type=__SUPER}', "");
+    Error('\p{Dt=	sup/a/}');
+    Error('\P{Dt=	sup/a/}');
     Expect(1, 127340, '\p{Dt=:\ASup\z:}', "");;
     Expect(0, 127341, '\p{Dt=:\ASup\z:}', "");;
-    Expect(1, 127340, '\p{Dt:	sup}', "");
-    Expect(0, 127340, '\p{^Dt:	sup}', "");
-    Expect(0, 127340, '\P{Dt:	sup}', "");
-    Expect(1, 127340, '\P{^Dt:	sup}', "");
-    Expect(0, 127341, '\p{Dt:	sup}', "");
-    Expect(1, 127341, '\p{^Dt:	sup}', "");
-    Expect(1, 127341, '\P{Dt:	sup}', "");
-    Expect(0, 127341, '\P{^Dt:	sup}', "");
+    Expect(1, 127340, '\p{Dt=sup}', "");
+    Expect(0, 127340, '\p{^Dt=sup}', "");
+    Expect(0, 127340, '\P{Dt=sup}', "");
+    Expect(1, 127340, '\P{^Dt=sup}', "");
+    Expect(0, 127341, '\p{Dt=sup}', "");
+    Expect(1, 127341, '\p{^Dt=sup}', "");
+    Expect(1, 127341, '\P{Dt=sup}', "");
+    Expect(0, 127341, '\P{^Dt=sup}', "");
     Expect(1, 127340, '\p{Dt=:\Asup\z:}', "");;
     Expect(0, 127341, '\p{Dt=:\Asup\z:}', "");;
-    Expect(1, 127340, '\p{Dt=	Sup}', "");
-    Expect(0, 127340, '\p{^Dt=	Sup}', "");
-    Expect(0, 127340, '\P{Dt=	Sup}', "");
-    Expect(1, 127340, '\P{^Dt=	Sup}', "");
-    Expect(0, 127341, '\p{Dt=	Sup}', "");
-    Expect(1, 127341, '\p{^Dt=	Sup}', "");
-    Expect(1, 127341, '\P{Dt=	Sup}', "");
-    Expect(0, 127341, '\P{^Dt=	Sup}', "");
-    Error('\p{Is_Decomposition_Type=/a/_super}');
-    Error('\P{Is_Decomposition_Type=/a/_super}');
+    Expect(1, 127340, '\p{Dt=	_SUP}', "");
+    Expect(0, 127340, '\p{^Dt=	_SUP}', "");
+    Expect(0, 127340, '\P{Dt=	_SUP}', "");
+    Expect(1, 127340, '\P{^Dt=	_SUP}', "");
+    Expect(0, 127341, '\p{Dt=	_SUP}', "");
+    Expect(1, 127341, '\p{^Dt=	_SUP}', "");
+    Expect(1, 127341, '\P{Dt=	_SUP}', "");
+    Expect(0, 127341, '\P{^Dt=	_SUP}', "");
+    Error('\p{Is_Decomposition_Type=/a/-Super}');
+    Error('\P{Is_Decomposition_Type=/a/-Super}');
     Expect(1, 127340, '\p{Is_Decomposition_Type=super}', "");
     Expect(0, 127340, '\p{^Is_Decomposition_Type=super}', "");
     Expect(0, 127340, '\P{Is_Decomposition_Type=super}', "");
@@ -36985,16 +37553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127341, '\p{^Is_Decomposition_Type=super}', "");
     Expect(1, 127341, '\P{Is_Decomposition_Type=super}', "");
     Expect(0, 127341, '\P{^Is_Decomposition_Type=super}', "");
-    Expect(1, 127340, '\p{Is_Decomposition_Type=--Super}', "");
-    Expect(0, 127340, '\p{^Is_Decomposition_Type=--Super}', "");
-    Expect(0, 127340, '\P{Is_Decomposition_Type=--Super}', "");
-    Expect(1, 127340, '\P{^Is_Decomposition_Type=--Super}', "");
-    Expect(0, 127341, '\p{Is_Decomposition_Type=--Super}', "");
-    Expect(1, 127341, '\p{^Is_Decomposition_Type=--Super}', "");
-    Expect(1, 127341, '\P{Is_Decomposition_Type=--Super}', "");
-    Expect(0, 127341, '\P{^Is_Decomposition_Type=--Super}', "");
-    Error('\p{Is_Dt:   	-Sup:=}');
-    Error('\P{Is_Dt:   	-Sup:=}');
+    Expect(1, 127340, '\p{Is_Decomposition_Type=	_SUPER}', "");
+    Expect(0, 127340, '\p{^Is_Decomposition_Type=	_SUPER}', "");
+    Expect(0, 127340, '\P{Is_Decomposition_Type=	_SUPER}', "");
+    Expect(1, 127340, '\P{^Is_Decomposition_Type=	_SUPER}', "");
+    Expect(0, 127341, '\p{Is_Decomposition_Type=	_SUPER}', "");
+    Expect(1, 127341, '\p{^Is_Decomposition_Type=	_SUPER}', "");
+    Expect(1, 127341, '\P{Is_Decomposition_Type=	_SUPER}', "");
+    Expect(0, 127341, '\P{^Is_Decomposition_Type=	_SUPER}', "");
+    Error('\p{Is_Dt=	_sup:=}');
+    Error('\P{Is_Dt=	_sup:=}');
     Expect(1, 127340, '\p{Is_Dt=sup}', "");
     Expect(0, 127340, '\p{^Is_Dt=sup}', "");
     Expect(0, 127340, '\P{Is_Dt=sup}', "");
@@ -37003,16 +37571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127341, '\p{^Is_Dt=sup}', "");
     Expect(1, 127341, '\P{Is_Dt=sup}', "");
     Expect(0, 127341, '\P{^Is_Dt=sup}', "");
-    Expect(1, 127340, '\p{Is_Dt= sup}', "");
-    Expect(0, 127340, '\p{^Is_Dt= sup}', "");
-    Expect(0, 127340, '\P{Is_Dt= sup}', "");
-    Expect(1, 127340, '\P{^Is_Dt= sup}', "");
-    Expect(0, 127341, '\p{Is_Dt= sup}', "");
-    Expect(1, 127341, '\p{^Is_Dt= sup}', "");
-    Expect(1, 127341, '\P{Is_Dt= sup}', "");
-    Expect(0, 127341, '\P{^Is_Dt= sup}', "");
-    Error('\p{Decomposition_Type:   -:=vertical}');
-    Error('\P{Decomposition_Type:   -:=vertical}');
+    Expect(1, 127340, '\p{Is_Dt: 		Sup}', "");
+    Expect(0, 127340, '\p{^Is_Dt: 		Sup}', "");
+    Expect(0, 127340, '\P{Is_Dt: 		Sup}', "");
+    Expect(1, 127340, '\P{^Is_Dt: 		Sup}', "");
+    Expect(0, 127341, '\p{Is_Dt: 		Sup}', "");
+    Expect(1, 127341, '\p{^Is_Dt: 		Sup}', "");
+    Expect(1, 127341, '\P{Is_Dt: 		Sup}', "");
+    Expect(0, 127341, '\P{^Is_Dt: 		Sup}', "");
+    Error('\p{Decomposition_Type=	:=vertical}');
+    Error('\P{Decomposition_Type=	:=vertical}');
     Expect(1, 65096, '\p{Decomposition_Type=:\AVertical\z:}', "");;
     Expect(0, 65097, '\p{Decomposition_Type=:\AVertical\z:}', "");;
     Expect(1, 65096, '\p{Decomposition_Type=vertical}', "");
@@ -37025,16 +37593,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65097, '\P{^Decomposition_Type=vertical}', "");
     Expect(1, 65096, '\p{Decomposition_Type=:\Avertical\z:}', "");;
     Expect(0, 65097, '\p{Decomposition_Type=:\Avertical\z:}', "");;
-    Expect(1, 65096, '\p{Decomposition_Type=_VERTICAL}', "");
-    Expect(0, 65096, '\p{^Decomposition_Type=_VERTICAL}', "");
-    Expect(0, 65096, '\P{Decomposition_Type=_VERTICAL}', "");
-    Expect(1, 65096, '\P{^Decomposition_Type=_VERTICAL}', "");
-    Expect(0, 65097, '\p{Decomposition_Type=_VERTICAL}', "");
-    Expect(1, 65097, '\p{^Decomposition_Type=_VERTICAL}', "");
-    Expect(1, 65097, '\P{Decomposition_Type=_VERTICAL}', "");
-    Expect(0, 65097, '\P{^Decomposition_Type=_VERTICAL}', "");
-    Error('\p{Dt= :=Vert}');
-    Error('\P{Dt= :=Vert}');
+    Expect(1, 65096, '\p{Decomposition_Type=	_vertical}', "");
+    Expect(0, 65096, '\p{^Decomposition_Type=	_vertical}', "");
+    Expect(0, 65096, '\P{Decomposition_Type=	_vertical}', "");
+    Expect(1, 65096, '\P{^Decomposition_Type=	_vertical}', "");
+    Expect(0, 65097, '\p{Decomposition_Type=	_vertical}', "");
+    Expect(1, 65097, '\p{^Decomposition_Type=	_vertical}', "");
+    Expect(1, 65097, '\P{Decomposition_Type=	_vertical}', "");
+    Expect(0, 65097, '\P{^Decomposition_Type=	_vertical}', "");
+    Error('\p{Dt=_/a/Vert}');
+    Error('\P{Dt=_/a/Vert}');
     Expect(1, 65096, '\p{Dt=:\AVert\z:}', "");;
     Expect(0, 65097, '\p{Dt=:\AVert\z:}', "");;
     Expect(1, 65096, '\p{Dt=vert}', "");
@@ -37047,34 +37615,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65097, '\P{^Dt=vert}', "");
     Expect(1, 65096, '\p{Dt=:\Avert\z:}', "");;
     Expect(0, 65097, '\p{Dt=:\Avert\z:}', "");;
-    Expect(1, 65096, '\p{Dt=	-Vert}', "");
-    Expect(0, 65096, '\p{^Dt=	-Vert}', "");
-    Expect(0, 65096, '\P{Dt=	-Vert}', "");
-    Expect(1, 65096, '\P{^Dt=	-Vert}', "");
-    Expect(0, 65097, '\p{Dt=	-Vert}', "");
-    Expect(1, 65097, '\p{^Dt=	-Vert}', "");
-    Expect(1, 65097, '\P{Dt=	-Vert}', "");
-    Expect(0, 65097, '\P{^Dt=	-Vert}', "");
-    Error('\p{Is_Decomposition_Type=/a/_ vertical}');
-    Error('\P{Is_Decomposition_Type=/a/_ vertical}');
-    Expect(1, 65096, '\p{Is_Decomposition_Type=vertical}', "");
-    Expect(0, 65096, '\p{^Is_Decomposition_Type=vertical}', "");
-    Expect(0, 65096, '\P{Is_Decomposition_Type=vertical}', "");
-    Expect(1, 65096, '\P{^Is_Decomposition_Type=vertical}', "");
-    Expect(0, 65097, '\p{Is_Decomposition_Type=vertical}', "");
-    Expect(1, 65097, '\p{^Is_Decomposition_Type=vertical}', "");
-    Expect(1, 65097, '\P{Is_Decomposition_Type=vertical}', "");
-    Expect(0, 65097, '\P{^Is_Decomposition_Type=vertical}', "");
-    Expect(1, 65096, '\p{Is_Decomposition_Type=_Vertical}', "");
-    Expect(0, 65096, '\p{^Is_Decomposition_Type=_Vertical}', "");
-    Expect(0, 65096, '\P{Is_Decomposition_Type=_Vertical}', "");
-    Expect(1, 65096, '\P{^Is_Decomposition_Type=_Vertical}', "");
-    Expect(0, 65097, '\p{Is_Decomposition_Type=_Vertical}', "");
-    Expect(1, 65097, '\p{^Is_Decomposition_Type=_Vertical}', "");
-    Expect(1, 65097, '\P{Is_Decomposition_Type=_Vertical}', "");
-    Expect(0, 65097, '\P{^Is_Decomposition_Type=_Vertical}', "");
-    Error('\p{Is_Dt=	/a/vert}');
-    Error('\P{Is_Dt=	/a/vert}');
+    Expect(1, 65096, '\p{Dt=	vert}', "");
+    Expect(0, 65096, '\p{^Dt=	vert}', "");
+    Expect(0, 65096, '\P{Dt=	vert}', "");
+    Expect(1, 65096, '\P{^Dt=	vert}', "");
+    Expect(0, 65097, '\p{Dt=	vert}', "");
+    Expect(1, 65097, '\p{^Dt=	vert}', "");
+    Expect(1, 65097, '\P{Dt=	vert}', "");
+    Expect(0, 65097, '\P{^Dt=	vert}', "");
+    Error('\p{Is_Decomposition_Type=_/a/vertical}');
+    Error('\P{Is_Decomposition_Type=_/a/vertical}');
+    Expect(1, 65096, '\p{Is_Decomposition_Type:	vertical}', "");
+    Expect(0, 65096, '\p{^Is_Decomposition_Type:	vertical}', "");
+    Expect(0, 65096, '\P{Is_Decomposition_Type:	vertical}', "");
+    Expect(1, 65096, '\P{^Is_Decomposition_Type:	vertical}', "");
+    Expect(0, 65097, '\p{Is_Decomposition_Type:	vertical}', "");
+    Expect(1, 65097, '\p{^Is_Decomposition_Type:	vertical}', "");
+    Expect(1, 65097, '\P{Is_Decomposition_Type:	vertical}', "");
+    Expect(0, 65097, '\P{^Is_Decomposition_Type:	vertical}', "");
+    Expect(1, 65096, '\p{Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(0, 65096, '\p{^Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(0, 65096, '\P{Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(1, 65096, '\P{^Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(0, 65097, '\p{Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(1, 65097, '\p{^Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(1, 65097, '\P{Is_Decomposition_Type=-_VERTICAL}', "");
+    Expect(0, 65097, '\P{^Is_Decomposition_Type=-_VERTICAL}', "");
+    Error('\p{Is_Dt=:=	_VERT}');
+    Error('\P{Is_Dt=:=	_VERT}');
     Expect(1, 65096, '\p{Is_Dt=vert}', "");
     Expect(0, 65096, '\p{^Is_Dt=vert}', "");
     Expect(0, 65096, '\P{Is_Dt=vert}', "");
@@ -37083,16 +37651,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65097, '\p{^Is_Dt=vert}', "");
     Expect(1, 65097, '\P{Is_Dt=vert}', "");
     Expect(0, 65097, '\P{^Is_Dt=vert}', "");
-    Expect(1, 65096, '\p{Is_Dt=  Vert}', "");
-    Expect(0, 65096, '\p{^Is_Dt=  Vert}', "");
-    Expect(0, 65096, '\P{Is_Dt=  Vert}', "");
-    Expect(1, 65096, '\P{^Is_Dt=  Vert}', "");
-    Expect(0, 65097, '\p{Is_Dt=  Vert}', "");
-    Expect(1, 65097, '\p{^Is_Dt=  Vert}', "");
-    Expect(1, 65097, '\P{Is_Dt=  Vert}', "");
-    Expect(0, 65097, '\P{^Is_Dt=  Vert}', "");
-    Error('\p{Decomposition_Type=:=__Wide}');
-    Error('\P{Decomposition_Type=:=__Wide}');
+    Expect(1, 65096, '\p{Is_Dt=_Vert}', "");
+    Expect(0, 65096, '\p{^Is_Dt=_Vert}', "");
+    Expect(0, 65096, '\P{Is_Dt=_Vert}', "");
+    Expect(1, 65096, '\P{^Is_Dt=_Vert}', "");
+    Expect(0, 65097, '\p{Is_Dt=_Vert}', "");
+    Expect(1, 65097, '\p{^Is_Dt=_Vert}', "");
+    Expect(1, 65097, '\P{Is_Dt=_Vert}', "");
+    Expect(0, 65097, '\P{^Is_Dt=_Vert}', "");
+    Error('\p{Decomposition_Type=:=  WIDE}');
+    Error('\P{Decomposition_Type=:=  WIDE}');
     Expect(1, 65510, '\p{Decomposition_Type=:\AWide\z:}', "");;
     Expect(0, 65511, '\p{Decomposition_Type=:\AWide\z:}', "");;
     Expect(1, 65510, '\p{Decomposition_Type=wide}', "");
@@ -37105,16 +37673,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65511, '\P{^Decomposition_Type=wide}', "");
     Expect(1, 65510, '\p{Decomposition_Type=:\Awide\z:}', "");;
     Expect(0, 65511, '\p{Decomposition_Type=:\Awide\z:}', "");;
-    Expect(1, 65510, '\p{Decomposition_Type:	 Wide}', "");
-    Expect(0, 65510, '\p{^Decomposition_Type:	 Wide}', "");
-    Expect(0, 65510, '\P{Decomposition_Type:	 Wide}', "");
-    Expect(1, 65510, '\P{^Decomposition_Type:	 Wide}', "");
-    Expect(0, 65511, '\p{Decomposition_Type:	 Wide}', "");
-    Expect(1, 65511, '\p{^Decomposition_Type:	 Wide}', "");
-    Expect(1, 65511, '\P{Decomposition_Type:	 Wide}', "");
-    Expect(0, 65511, '\P{^Decomposition_Type:	 Wide}', "");
-    Error('\p{Dt=/a/-	Wide}');
-    Error('\P{Dt=/a/-	Wide}');
+    Expect(1, 65510, '\p{Decomposition_Type= -WIDE}', "");
+    Expect(0, 65510, '\p{^Decomposition_Type= -WIDE}', "");
+    Expect(0, 65510, '\P{Decomposition_Type= -WIDE}', "");
+    Expect(1, 65510, '\P{^Decomposition_Type= -WIDE}', "");
+    Expect(0, 65511, '\p{Decomposition_Type= -WIDE}', "");
+    Expect(1, 65511, '\p{^Decomposition_Type= -WIDE}', "");
+    Expect(1, 65511, '\P{Decomposition_Type= -WIDE}', "");
+    Expect(0, 65511, '\P{^Decomposition_Type= -WIDE}', "");
+    Error('\p{Dt=/a/	wide}');
+    Error('\P{Dt=/a/	wide}');
     Expect(1, 65510, '\p{Dt=:\AWide\z:}', "");;
     Expect(0, 65511, '\p{Dt=:\AWide\z:}', "");;
     Expect(1, 65510, '\p{Dt=wide}', "");
@@ -37127,16 +37695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65511, '\P{^Dt=wide}', "");
     Expect(1, 65510, '\p{Dt=:\Awide\z:}', "");;
     Expect(0, 65511, '\p{Dt=:\Awide\z:}', "");;
-    Expect(1, 65510, '\p{Dt=	wide}', "");
-    Expect(0, 65510, '\p{^Dt=	wide}', "");
-    Expect(0, 65510, '\P{Dt=	wide}', "");
-    Expect(1, 65510, '\P{^Dt=	wide}', "");
-    Expect(0, 65511, '\p{Dt=	wide}', "");
-    Expect(1, 65511, '\p{^Dt=	wide}', "");
-    Expect(1, 65511, '\P{Dt=	wide}', "");
-    Expect(0, 65511, '\P{^Dt=	wide}', "");
-    Error('\p{Is_Decomposition_Type=:=Wide}');
-    Error('\P{Is_Decomposition_Type=:=Wide}');
+    Expect(1, 65510, '\p{Dt= WIDE}', "");
+    Expect(0, 65510, '\p{^Dt= WIDE}', "");
+    Expect(0, 65510, '\P{Dt= WIDE}', "");
+    Expect(1, 65510, '\P{^Dt= WIDE}', "");
+    Expect(0, 65511, '\p{Dt= WIDE}', "");
+    Expect(1, 65511, '\p{^Dt= WIDE}', "");
+    Expect(1, 65511, '\P{Dt= WIDE}', "");
+    Expect(0, 65511, '\P{^Dt= WIDE}', "");
+    Error('\p{Is_Decomposition_Type=/a/_wide}');
+    Error('\P{Is_Decomposition_Type=/a/_wide}');
     Expect(1, 65510, '\p{Is_Decomposition_Type=wide}', "");
     Expect(0, 65510, '\p{^Is_Decomposition_Type=wide}', "");
     Expect(0, 65510, '\P{Is_Decomposition_Type=wide}', "");
@@ -37145,16 +37713,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65511, '\p{^Is_Decomposition_Type=wide}', "");
     Expect(1, 65511, '\P{Is_Decomposition_Type=wide}', "");
     Expect(0, 65511, '\P{^Is_Decomposition_Type=wide}', "");
-    Expect(1, 65510, '\p{Is_Decomposition_Type= wide}', "");
-    Expect(0, 65510, '\p{^Is_Decomposition_Type= wide}', "");
-    Expect(0, 65510, '\P{Is_Decomposition_Type= wide}', "");
-    Expect(1, 65510, '\P{^Is_Decomposition_Type= wide}', "");
-    Expect(0, 65511, '\p{Is_Decomposition_Type= wide}', "");
-    Expect(1, 65511, '\p{^Is_Decomposition_Type= wide}', "");
-    Expect(1, 65511, '\P{Is_Decomposition_Type= wide}', "");
-    Expect(0, 65511, '\P{^Is_Decomposition_Type= wide}', "");
-    Error('\p{Is_Dt=:=__Wide}');
-    Error('\P{Is_Dt=:=__Wide}');
+    Expect(1, 65510, '\p{Is_Decomposition_Type= WIDE}', "");
+    Expect(0, 65510, '\p{^Is_Decomposition_Type= WIDE}', "");
+    Expect(0, 65510, '\P{Is_Decomposition_Type= WIDE}', "");
+    Expect(1, 65510, '\P{^Is_Decomposition_Type= WIDE}', "");
+    Expect(0, 65511, '\p{Is_Decomposition_Type= WIDE}', "");
+    Expect(1, 65511, '\p{^Is_Decomposition_Type= WIDE}', "");
+    Expect(1, 65511, '\P{Is_Decomposition_Type= WIDE}', "");
+    Expect(0, 65511, '\P{^Is_Decomposition_Type= WIDE}', "");
+    Error('\p{Is_Dt=:= Wide}');
+    Error('\P{Is_Dt=:= Wide}');
     Expect(1, 65510, '\p{Is_Dt=wide}', "");
     Expect(0, 65510, '\p{^Is_Dt=wide}', "");
     Expect(0, 65510, '\P{Is_Dt=wide}', "");
@@ -37163,20 +37731,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65511, '\p{^Is_Dt=wide}', "");
     Expect(1, 65511, '\P{Is_Dt=wide}', "");
     Expect(0, 65511, '\P{^Is_Dt=wide}', "");
-    Expect(1, 65510, '\p{Is_Dt:	_wide}', "");
-    Expect(0, 65510, '\p{^Is_Dt:	_wide}', "");
-    Expect(0, 65510, '\P{Is_Dt:	_wide}', "");
-    Expect(1, 65510, '\P{^Is_Dt:	_wide}', "");
-    Expect(0, 65511, '\p{Is_Dt:	_wide}', "");
-    Expect(1, 65511, '\p{^Is_Dt:	_wide}', "");
-    Expect(1, 65511, '\P{Is_Dt:	_wide}', "");
-    Expect(0, 65511, '\P{^Is_Dt:	_wide}', "");
+    Expect(1, 65510, '\p{Is_Dt=_-Wide}', "");
+    Expect(0, 65510, '\p{^Is_Dt=_-Wide}', "");
+    Expect(0, 65510, '\P{Is_Dt=_-Wide}', "");
+    Expect(1, 65510, '\P{^Is_Dt=_-Wide}', "");
+    Expect(0, 65511, '\p{Is_Dt=_-Wide}', "");
+    Expect(1, 65511, '\p{^Is_Dt=_-Wide}', "");
+    Expect(1, 65511, '\P{Is_Dt=_-Wide}', "");
+    Expect(0, 65511, '\P{^Is_Dt=_-Wide}', "");
     Error('\p{eastasianwidth}');
     Error('\P{eastasianwidth}');
     Error('\p{ea}');
     Error('\P{ea}');
-    Error('\p{East_Asian_Width=/a/ambiguous}');
-    Error('\P{East_Asian_Width=/a/ambiguous}');
+    Error('\p{East_Asian_Width=_-ambiguous:=}');
+    Error('\P{East_Asian_Width=_-ambiguous:=}');
     Expect(1, 1114109, '\p{East_Asian_Width=:\AAmbiguous\z:}', "");;
     Expect(0, 918000, '\p{East_Asian_Width=:\AAmbiguous\z:}', "");;
     Expect(1, 1114109, '\p{East_Asian_Width=ambiguous}', "");
@@ -37189,16 +37757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^East_Asian_Width=ambiguous}', "");
     Expect(1, 1114109, '\p{East_Asian_Width=:\Aambiguous\z:}', "");;
     Expect(0, 918000, '\p{East_Asian_Width=:\Aambiguous\z:}', "");;
-    Expect(1, 1114109, '\p{East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(0, 1114109, '\p{^East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(0, 1114109, '\P{East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(1, 1114109, '\P{^East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(0, 918000, '\p{East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(1, 918000, '\p{^East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(1, 918000, '\P{East_Asian_Width=	AMBIGUOUS}', "");
-    Expect(0, 918000, '\P{^East_Asian_Width=	AMBIGUOUS}', "");
-    Error('\p{Ea= A:=}');
-    Error('\P{Ea= A:=}');
+    Expect(1, 1114109, '\p{East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(0, 1114109, '\p{^East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(0, 1114109, '\P{East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(1, 1114109, '\P{^East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(0, 918000, '\p{East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(1, 918000, '\p{^East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(1, 918000, '\P{East_Asian_Width:	__AMBIGUOUS}', "");
+    Expect(0, 918000, '\P{^East_Asian_Width:	__AMBIGUOUS}', "");
+    Error('\p{Ea=_/a/A}');
+    Error('\P{Ea=_/a/A}');
     Expect(1, 1114109, '\p{Ea=:\AA\z:}', "");;
     Expect(0, 918000, '\p{Ea=:\AA\z:}', "");;
     Expect(1, 1114109, '\p{Ea=a}', "");
@@ -37211,16 +37779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 918000, '\P{^Ea=a}', "");
     Expect(1, 1114109, '\p{Ea=:\Aa\z:}', "");;
     Expect(0, 918000, '\p{Ea=:\Aa\z:}', "");;
-    Expect(1, 1114109, '\p{Ea:   _a}', "");
-    Expect(0, 1114109, '\p{^Ea:   _a}', "");
-    Expect(0, 1114109, '\P{Ea:   _a}', "");
-    Expect(1, 1114109, '\P{^Ea:   _a}', "");
-    Expect(0, 918000, '\p{Ea:   _a}', "");
-    Expect(1, 918000, '\p{^Ea:   _a}', "");
-    Expect(1, 918000, '\P{Ea:   _a}', "");
-    Expect(0, 918000, '\P{^Ea:   _a}', "");
-    Error('\p{Is_East_Asian_Width=	-Ambiguous:=}');
-    Error('\P{Is_East_Asian_Width=	-Ambiguous:=}');
+    Expect(1, 1114109, '\p{Ea: 	a}', "");
+    Expect(0, 1114109, '\p{^Ea: 	a}', "");
+    Expect(0, 1114109, '\P{Ea: 	a}', "");
+    Expect(1, 1114109, '\P{^Ea: 	a}', "");
+    Expect(0, 918000, '\p{Ea: 	a}', "");
+    Expect(1, 918000, '\p{^Ea: 	a}', "");
+    Expect(1, 918000, '\P{Ea: 	a}', "");
+    Expect(0, 918000, '\P{^Ea: 	a}', "");
+    Error('\p{Is_East_Asian_Width=/a/_Ambiguous}');
+    Error('\P{Is_East_Asian_Width=/a/_Ambiguous}');
     Expect(1, 1114109, '\p{Is_East_Asian_Width=ambiguous}', "");
     Expect(0, 1114109, '\p{^Is_East_Asian_Width=ambiguous}', "");
     Expect(0, 1114109, '\P{Is_East_Asian_Width=ambiguous}', "");
@@ -37229,16 +37797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_East_Asian_Width=ambiguous}', "");
     Expect(1, 918000, '\P{Is_East_Asian_Width=ambiguous}', "");
     Expect(0, 918000, '\P{^Is_East_Asian_Width=ambiguous}', "");
-    Expect(1, 1114109, '\p{Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(0, 1114109, '\p{^Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(0, 1114109, '\P{Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(1, 1114109, '\P{^Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(0, 918000, '\p{Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(1, 918000, '\p{^Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(1, 918000, '\P{Is_East_Asian_Width=_	Ambiguous}', "");
-    Expect(0, 918000, '\P{^Is_East_Asian_Width=_	Ambiguous}', "");
-    Error('\p{Is_Ea=-/a/a}');
-    Error('\P{Is_Ea=-/a/a}');
+    Expect(1, 1114109, '\p{Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(0, 1114109, '\p{^Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(0, 1114109, '\P{Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(1, 1114109, '\P{^Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(0, 918000, '\p{Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(1, 918000, '\p{^Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(1, 918000, '\P{Is_East_Asian_Width=--Ambiguous}', "");
+    Expect(0, 918000, '\P{^Is_East_Asian_Width=--Ambiguous}', "");
+    Error('\p{Is_Ea=:=--A}');
+    Error('\P{Is_Ea=:=--A}');
     Expect(1, 1114109, '\p{Is_Ea=a}', "");
     Expect(0, 1114109, '\p{^Is_Ea=a}', "");
     Expect(0, 1114109, '\P{Is_Ea=a}', "");
@@ -37247,16 +37815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 918000, '\p{^Is_Ea=a}', "");
     Expect(1, 918000, '\P{Is_Ea=a}', "");
     Expect(0, 918000, '\P{^Is_Ea=a}', "");
-    Expect(1, 1114109, '\p{Is_Ea:_ A}', "");
-    Expect(0, 1114109, '\p{^Is_Ea:_ A}', "");
-    Expect(0, 1114109, '\P{Is_Ea:_ A}', "");
-    Expect(1, 1114109, '\P{^Is_Ea:_ A}', "");
-    Expect(0, 918000, '\p{Is_Ea:_ A}', "");
-    Expect(1, 918000, '\p{^Is_Ea:_ A}', "");
-    Expect(1, 918000, '\P{Is_Ea:_ A}', "");
-    Expect(0, 918000, '\P{^Is_Ea:_ A}', "");
-    Error('\p{East_Asian_Width=_/a/fullwidth}');
-    Error('\P{East_Asian_Width=_/a/fullwidth}');
+    Expect(1, 1114109, '\p{Is_Ea=_ A}', "");
+    Expect(0, 1114109, '\p{^Is_Ea=_ A}', "");
+    Expect(0, 1114109, '\P{Is_Ea=_ A}', "");
+    Expect(1, 1114109, '\P{^Is_Ea=_ A}', "");
+    Expect(0, 918000, '\p{Is_Ea=_ A}', "");
+    Expect(1, 918000, '\p{^Is_Ea=_ A}', "");
+    Expect(1, 918000, '\P{Is_Ea=_ A}', "");
+    Expect(0, 918000, '\P{^Is_Ea=_ A}', "");
+    Error('\p{East_Asian_Width=:= 	Fullwidth}');
+    Error('\P{East_Asian_Width=:= 	Fullwidth}');
     Expect(1, 65510, '\p{East_Asian_Width=:\AFullwidth\z:}', "");;
     Expect(0, 65511, '\p{East_Asian_Width=:\AFullwidth\z:}', "");;
     Expect(1, 65510, '\p{East_Asian_Width=fullwidth}', "");
@@ -37269,38 +37837,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65511, '\P{^East_Asian_Width=fullwidth}', "");
     Expect(1, 65510, '\p{East_Asian_Width=:\Afullwidth\z:}', "");;
     Expect(0, 65511, '\p{East_Asian_Width=:\Afullwidth\z:}', "");;
-    Expect(1, 65510, '\p{East_Asian_Width:	-Fullwidth}', "");
-    Expect(0, 65510, '\p{^East_Asian_Width:	-Fullwidth}', "");
-    Expect(0, 65510, '\P{East_Asian_Width:	-Fullwidth}', "");
-    Expect(1, 65510, '\P{^East_Asian_Width:	-Fullwidth}', "");
-    Expect(0, 65511, '\p{East_Asian_Width:	-Fullwidth}', "");
-    Expect(1, 65511, '\p{^East_Asian_Width:	-Fullwidth}', "");
-    Expect(1, 65511, '\P{East_Asian_Width:	-Fullwidth}', "");
-    Expect(0, 65511, '\P{^East_Asian_Width:	-Fullwidth}', "");
-    Error('\p{Ea=_-F/a/}');
-    Error('\P{Ea=_-F/a/}');
+    Expect(1, 65510, '\p{East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(0, 65510, '\p{^East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(0, 65510, '\P{East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(1, 65510, '\P{^East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(0, 65511, '\p{East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(1, 65511, '\p{^East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(1, 65511, '\P{East_Asian_Width=_ FULLWIDTH}', "");
+    Expect(0, 65511, '\P{^East_Asian_Width=_ FULLWIDTH}', "");
+    Error('\p{Ea=/a/-F}');
+    Error('\P{Ea=/a/-F}');
     Expect(1, 65510, '\p{Ea=:\AF\z:}', "");;
     Expect(0, 65511, '\p{Ea=:\AF\z:}', "");;
-    Expect(1, 65510, '\p{Ea=f}', "");
-    Expect(0, 65510, '\p{^Ea=f}', "");
-    Expect(0, 65510, '\P{Ea=f}', "");
-    Expect(1, 65510, '\P{^Ea=f}', "");
-    Expect(0, 65511, '\p{Ea=f}', "");
-    Expect(1, 65511, '\p{^Ea=f}', "");
-    Expect(1, 65511, '\P{Ea=f}', "");
-    Expect(0, 65511, '\P{^Ea=f}', "");
+    Expect(1, 65510, '\p{Ea:f}', "");
+    Expect(0, 65510, '\p{^Ea:f}', "");
+    Expect(0, 65510, '\P{Ea:f}', "");
+    Expect(1, 65510, '\P{^Ea:f}', "");
+    Expect(0, 65511, '\p{Ea:f}', "");
+    Expect(1, 65511, '\p{^Ea:f}', "");
+    Expect(1, 65511, '\P{Ea:f}', "");
+    Expect(0, 65511, '\P{^Ea:f}', "");
     Expect(1, 65510, '\p{Ea=:\Af\z:}', "");;
     Expect(0, 65511, '\p{Ea=:\Af\z:}', "");;
-    Expect(1, 65510, '\p{Ea=	F}', "");
-    Expect(0, 65510, '\p{^Ea=	F}', "");
-    Expect(0, 65510, '\P{Ea=	F}', "");
-    Expect(1, 65510, '\P{^Ea=	F}', "");
-    Expect(0, 65511, '\p{Ea=	F}', "");
-    Expect(1, 65511, '\p{^Ea=	F}', "");
-    Expect(1, 65511, '\P{Ea=	F}', "");
-    Expect(0, 65511, '\P{^Ea=	F}', "");
-    Error('\p{Is_East_Asian_Width= 	fullwidth/a/}');
-    Error('\P{Is_East_Asian_Width= 	fullwidth/a/}');
+    Expect(1, 65510, '\p{Ea=	 f}', "");
+    Expect(0, 65510, '\p{^Ea=	 f}', "");
+    Expect(0, 65510, '\P{Ea=	 f}', "");
+    Expect(1, 65510, '\P{^Ea=	 f}', "");
+    Expect(0, 65511, '\p{Ea=	 f}', "");
+    Expect(1, 65511, '\p{^Ea=	 f}', "");
+    Expect(1, 65511, '\P{Ea=	 f}', "");
+    Expect(0, 65511, '\P{^Ea=	 f}', "");
+    Error('\p{Is_East_Asian_Width:_-FULLWIDTH:=}');
+    Error('\P{Is_East_Asian_Width:_-FULLWIDTH:=}');
     Expect(1, 65510, '\p{Is_East_Asian_Width=fullwidth}', "");
     Expect(0, 65510, '\p{^Is_East_Asian_Width=fullwidth}', "");
     Expect(0, 65510, '\P{Is_East_Asian_Width=fullwidth}', "");
@@ -37309,16 +37877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65511, '\p{^Is_East_Asian_Width=fullwidth}', "");
     Expect(1, 65511, '\P{Is_East_Asian_Width=fullwidth}', "");
     Expect(0, 65511, '\P{^Is_East_Asian_Width=fullwidth}', "");
-    Expect(1, 65510, '\p{Is_East_Asian_Width=Fullwidth}', "");
-    Expect(0, 65510, '\p{^Is_East_Asian_Width=Fullwidth}', "");
-    Expect(0, 65510, '\P{Is_East_Asian_Width=Fullwidth}', "");
-    Expect(1, 65510, '\P{^Is_East_Asian_Width=Fullwidth}', "");
-    Expect(0, 65511, '\p{Is_East_Asian_Width=Fullwidth}', "");
-    Expect(1, 65511, '\p{^Is_East_Asian_Width=Fullwidth}', "");
-    Expect(1, 65511, '\P{Is_East_Asian_Width=Fullwidth}', "");
-    Expect(0, 65511, '\P{^Is_East_Asian_Width=Fullwidth}', "");
-    Error('\p{Is_Ea:-/a/f}');
-    Error('\P{Is_Ea:-/a/f}');
+    Expect(1, 65510, '\p{Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(0, 65510, '\p{^Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(0, 65510, '\P{Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(1, 65510, '\P{^Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(0, 65511, '\p{Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(1, 65511, '\p{^Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(1, 65511, '\P{Is_East_Asian_Width=_Fullwidth}', "");
+    Expect(0, 65511, '\P{^Is_East_Asian_Width=_Fullwidth}', "");
+    Error('\p{Is_Ea=-F:=}');
+    Error('\P{Is_Ea=-F:=}');
     Expect(1, 65510, '\p{Is_Ea=f}', "");
     Expect(0, 65510, '\p{^Is_Ea=f}', "");
     Expect(0, 65510, '\P{Is_Ea=f}', "");
@@ -37327,16 +37895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65511, '\p{^Is_Ea=f}', "");
     Expect(1, 65511, '\P{Is_Ea=f}', "");
     Expect(0, 65511, '\P{^Is_Ea=f}', "");
-    Expect(1, 65510, '\p{Is_Ea= _F}', "");
-    Expect(0, 65510, '\p{^Is_Ea= _F}', "");
-    Expect(0, 65510, '\P{Is_Ea= _F}', "");
-    Expect(1, 65510, '\P{^Is_Ea= _F}', "");
-    Expect(0, 65511, '\p{Is_Ea= _F}', "");
-    Expect(1, 65511, '\p{^Is_Ea= _F}', "");
-    Expect(1, 65511, '\P{Is_Ea= _F}', "");
-    Expect(0, 65511, '\P{^Is_Ea= _F}', "");
-    Error('\p{East_Asian_Width=_/a/Halfwidth}');
-    Error('\P{East_Asian_Width=_/a/Halfwidth}');
+    Expect(1, 65510, '\p{Is_Ea=-_F}', "");
+    Expect(0, 65510, '\p{^Is_Ea=-_F}', "");
+    Expect(0, 65510, '\P{Is_Ea=-_F}', "");
+    Expect(1, 65510, '\P{^Is_Ea=-_F}', "");
+    Expect(0, 65511, '\p{Is_Ea=-_F}', "");
+    Expect(1, 65511, '\p{^Is_Ea=-_F}', "");
+    Expect(1, 65511, '\P{Is_Ea=-_F}', "");
+    Expect(0, 65511, '\P{^Is_Ea=-_F}', "");
+    Error('\p{East_Asian_Width=:= _Halfwidth}');
+    Error('\P{East_Asian_Width=:= _Halfwidth}');
     Expect(1, 65518, '\p{East_Asian_Width=:\AHalfwidth\z:}', "");;
     Expect(0, 65519, '\p{East_Asian_Width=:\AHalfwidth\z:}', "");;
     Expect(1, 65518, '\p{East_Asian_Width=halfwidth}', "");
@@ -37349,16 +37917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65519, '\P{^East_Asian_Width=halfwidth}', "");
     Expect(1, 65518, '\p{East_Asian_Width=:\Ahalfwidth\z:}', "");;
     Expect(0, 65519, '\p{East_Asian_Width=:\Ahalfwidth\z:}', "");;
-    Expect(1, 65518, '\p{East_Asian_Width= -Halfwidth}', "");
-    Expect(0, 65518, '\p{^East_Asian_Width= -Halfwidth}', "");
-    Expect(0, 65518, '\P{East_Asian_Width= -Halfwidth}', "");
-    Expect(1, 65518, '\P{^East_Asian_Width= -Halfwidth}', "");
-    Expect(0, 65519, '\p{East_Asian_Width= -Halfwidth}', "");
-    Expect(1, 65519, '\p{^East_Asian_Width= -Halfwidth}', "");
-    Expect(1, 65519, '\P{East_Asian_Width= -Halfwidth}', "");
-    Expect(0, 65519, '\P{^East_Asian_Width= -Halfwidth}', "");
-    Error('\p{Ea=_/a/H}');
-    Error('\P{Ea=_/a/H}');
+    Expect(1, 65518, '\p{East_Asian_Width=--Halfwidth}', "");
+    Expect(0, 65518, '\p{^East_Asian_Width=--Halfwidth}', "");
+    Expect(0, 65518, '\P{East_Asian_Width=--Halfwidth}', "");
+    Expect(1, 65518, '\P{^East_Asian_Width=--Halfwidth}', "");
+    Expect(0, 65519, '\p{East_Asian_Width=--Halfwidth}', "");
+    Expect(1, 65519, '\p{^East_Asian_Width=--Halfwidth}', "");
+    Expect(1, 65519, '\P{East_Asian_Width=--Halfwidth}', "");
+    Expect(0, 65519, '\P{^East_Asian_Width=--Halfwidth}', "");
+    Error('\p{Ea=/a/ -h}');
+    Error('\P{Ea=/a/ -h}');
     Expect(1, 65518, '\p{Ea=:\AH\z:}', "");;
     Expect(0, 65519, '\p{Ea=:\AH\z:}', "");;
     Expect(1, 65518, '\p{Ea=h}', "");
@@ -37371,16 +37939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 65519, '\P{^Ea=h}', "");
     Expect(1, 65518, '\p{Ea=:\Ah\z:}', "");;
     Expect(0, 65519, '\p{Ea=:\Ah\z:}', "");;
-    Expect(1, 65518, '\p{Ea=	_H}', "");
-    Expect(0, 65518, '\p{^Ea=	_H}', "");
-    Expect(0, 65518, '\P{Ea=	_H}', "");
-    Expect(1, 65518, '\P{^Ea=	_H}', "");
-    Expect(0, 65519, '\p{Ea=	_H}', "");
-    Expect(1, 65519, '\p{^Ea=	_H}', "");
-    Expect(1, 65519, '\P{Ea=	_H}', "");
-    Expect(0, 65519, '\P{^Ea=	_H}', "");
-    Error('\p{Is_East_Asian_Width=:= _HALFWIDTH}');
-    Error('\P{Is_East_Asian_Width=:= _HALFWIDTH}');
+    Expect(1, 65518, '\p{Ea=_	H}', "");
+    Expect(0, 65518, '\p{^Ea=_	H}', "");
+    Expect(0, 65518, '\P{Ea=_	H}', "");
+    Expect(1, 65518, '\P{^Ea=_	H}', "");
+    Expect(0, 65519, '\p{Ea=_	H}', "");
+    Expect(1, 65519, '\p{^Ea=_	H}', "");
+    Expect(1, 65519, '\P{Ea=_	H}', "");
+    Expect(0, 65519, '\P{^Ea=_	H}', "");
+    Error('\p{Is_East_Asian_Width=:=Halfwidth}');
+    Error('\P{Is_East_Asian_Width=:=Halfwidth}');
     Expect(1, 65518, '\p{Is_East_Asian_Width=halfwidth}', "");
     Expect(0, 65518, '\p{^Is_East_Asian_Width=halfwidth}', "");
     Expect(0, 65518, '\P{Is_East_Asian_Width=halfwidth}', "");
@@ -37389,34 +37957,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 65519, '\p{^Is_East_Asian_Width=halfwidth}', "");
     Expect(1, 65519, '\P{Is_East_Asian_Width=halfwidth}', "");
     Expect(0, 65519, '\P{^Is_East_Asian_Width=halfwidth}', "");
-    Expect(1, 65518, '\p{Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(0, 65518, '\p{^Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(0, 65518, '\P{Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(1, 65518, '\P{^Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(0, 65519, '\p{Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(1, 65519, '\p{^Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(1, 65519, '\P{Is_East_Asian_Width=	Halfwidth}', "");
-    Expect(0, 65519, '\P{^Is_East_Asian_Width=	Halfwidth}', "");
-    Error('\p{Is_Ea=-_h/a/}');
-    Error('\P{Is_Ea=-_h/a/}');
-    Expect(1, 65518, '\p{Is_Ea=h}', "");
-    Expect(0, 65518, '\p{^Is_Ea=h}', "");
-    Expect(0, 65518, '\P{Is_Ea=h}', "");
-    Expect(1, 65518, '\P{^Is_Ea=h}', "");
-    Expect(0, 65519, '\p{Is_Ea=h}', "");
-    Expect(1, 65519, '\p{^Is_Ea=h}', "");
-    Expect(1, 65519, '\P{Is_Ea=h}', "");
-    Expect(0, 65519, '\P{^Is_Ea=h}', "");
-    Expect(1, 65518, '\p{Is_Ea=_H}', "");
-    Expect(0, 65518, '\p{^Is_Ea=_H}', "");
-    Expect(0, 65518, '\P{Is_Ea=_H}', "");
-    Expect(1, 65518, '\P{^Is_Ea=_H}', "");
-    Expect(0, 65519, '\p{Is_Ea=_H}', "");
-    Expect(1, 65519, '\p{^Is_Ea=_H}', "");
-    Expect(1, 65519, '\P{Is_Ea=_H}', "");
-    Expect(0, 65519, '\P{^Is_Ea=_H}', "");
-    Error('\p{East_Asian_Width=_:=NEUTRAL}');
-    Error('\P{East_Asian_Width=_:=NEUTRAL}');
+    Expect(1, 65518, '\p{Is_East_Asian_Width= halfwidth}', "");
+    Expect(0, 65518, '\p{^Is_East_Asian_Width= halfwidth}', "");
+    Expect(0, 65518, '\P{Is_East_Asian_Width= halfwidth}', "");
+    Expect(1, 65518, '\P{^Is_East_Asian_Width= halfwidth}', "");
+    Expect(0, 65519, '\p{Is_East_Asian_Width= halfwidth}', "");
+    Expect(1, 65519, '\p{^Is_East_Asian_Width= halfwidth}', "");
+    Expect(1, 65519, '\P{Is_East_Asian_Width= halfwidth}', "");
+    Expect(0, 65519, '\P{^Is_East_Asian_Width= halfwidth}', "");
+    Error('\p{Is_Ea= h/a/}');
+    Error('\P{Is_Ea= h/a/}');
+    Expect(1, 65518, '\p{Is_Ea:h}', "");
+    Expect(0, 65518, '\p{^Is_Ea:h}', "");
+    Expect(0, 65518, '\P{Is_Ea:h}', "");
+    Expect(1, 65518, '\P{^Is_Ea:h}', "");
+    Expect(0, 65519, '\p{Is_Ea:h}', "");
+    Expect(1, 65519, '\p{^Is_Ea:h}', "");
+    Expect(1, 65519, '\P{Is_Ea:h}', "");
+    Expect(0, 65519, '\P{^Is_Ea:h}', "");
+    Expect(1, 65518, '\p{Is_Ea=_	H}', "");
+    Expect(0, 65518, '\p{^Is_Ea=_	H}', "");
+    Expect(0, 65518, '\P{Is_Ea=_	H}', "");
+    Expect(1, 65518, '\P{^Is_Ea=_	H}', "");
+    Expect(0, 65519, '\p{Is_Ea=_	H}', "");
+    Expect(1, 65519, '\p{^Is_Ea=_	H}', "");
+    Expect(1, 65519, '\P{Is_Ea=_	H}', "");
+    Expect(0, 65519, '\P{^Is_Ea=_	H}', "");
+    Error('\p{East_Asian_Width=-_neutral/a/}');
+    Error('\P{East_Asian_Width=-_neutral/a/}');
     Expect(1, 918000, '\p{East_Asian_Width=:\ANeutral\z:}', "");;
     Expect(0, 1114109, '\p{East_Asian_Width=:\ANeutral\z:}', "");;
     Expect(1, 918000, '\p{East_Asian_Width=neutral}', "");
@@ -37429,16 +37997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1114109, '\P{^East_Asian_Width=neutral}', "");
     Expect(1, 918000, '\p{East_Asian_Width=:\Aneutral\z:}', "");;
     Expect(0, 1114109, '\p{East_Asian_Width=:\Aneutral\z:}', "");;
-    Expect(1, 918000, '\p{East_Asian_Width=- NEUTRAL}', "");
-    Expect(0, 918000, '\p{^East_Asian_Width=- NEUTRAL}', "");
-    Expect(0, 918000, '\P{East_Asian_Width=- NEUTRAL}', "");
-    Expect(1, 918000, '\P{^East_Asian_Width=- NEUTRAL}', "");
-    Expect(0, 1114109, '\p{East_Asian_Width=- NEUTRAL}', "");
-    Expect(1, 1114109, '\p{^East_Asian_Width=- NEUTRAL}', "");
-    Expect(1, 1114109, '\P{East_Asian_Width=- NEUTRAL}', "");
-    Expect(0, 1114109, '\P{^East_Asian_Width=- NEUTRAL}', "");
-    Error('\p{Ea=-N/a/}');
-    Error('\P{Ea=-N/a/}');
+    Expect(1, 918000, '\p{East_Asian_Width=	-Neutral}', "");
+    Expect(0, 918000, '\p{^East_Asian_Width=	-Neutral}', "");
+    Expect(0, 918000, '\P{East_Asian_Width=	-Neutral}', "");
+    Expect(1, 918000, '\P{^East_Asian_Width=	-Neutral}', "");
+    Expect(0, 1114109, '\p{East_Asian_Width=	-Neutral}', "");
+    Expect(1, 1114109, '\p{^East_Asian_Width=	-Neutral}', "");
+    Expect(1, 1114109, '\P{East_Asian_Width=	-Neutral}', "");
+    Expect(0, 1114109, '\P{^East_Asian_Width=	-Neutral}', "");
+    Error('\p{Ea=  n/a/}');
+    Error('\P{Ea=  n/a/}');
     Expect(1, 918000, '\p{Ea=:\AN\z:}', "");;
     Expect(0, 1114109, '\p{Ea=:\AN\z:}', "");;
     Expect(1, 918000, '\p{Ea=n}', "");
@@ -37451,16 +38019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1114109, '\P{^Ea=n}', "");
     Expect(1, 918000, '\p{Ea=:\An\z:}', "");;
     Expect(0, 1114109, '\p{Ea=:\An\z:}', "");;
-    Expect(1, 918000, '\p{Ea=	-N}', "");
-    Expect(0, 918000, '\p{^Ea=	-N}', "");
-    Expect(0, 918000, '\P{Ea=	-N}', "");
-    Expect(1, 918000, '\P{^Ea=	-N}', "");
-    Expect(0, 1114109, '\p{Ea=	-N}', "");
-    Expect(1, 1114109, '\p{^Ea=	-N}', "");
-    Expect(1, 1114109, '\P{Ea=	-N}', "");
-    Expect(0, 1114109, '\P{^Ea=	-N}', "");
-    Error('\p{Is_East_Asian_Width:    	NEUTRAL/a/}');
-    Error('\P{Is_East_Asian_Width:    	NEUTRAL/a/}');
+    Expect(1, 918000, '\p{Ea=	_n}', "");
+    Expect(0, 918000, '\p{^Ea=	_n}', "");
+    Expect(0, 918000, '\P{Ea=	_n}', "");
+    Expect(1, 918000, '\P{^Ea=	_n}', "");
+    Expect(0, 1114109, '\p{Ea=	_n}', "");
+    Expect(1, 1114109, '\p{^Ea=	_n}', "");
+    Expect(1, 1114109, '\P{Ea=	_n}', "");
+    Expect(0, 1114109, '\P{^Ea=	_n}', "");
+    Error('\p{Is_East_Asian_Width=:= -NEUTRAL}');
+    Error('\P{Is_East_Asian_Width=:= -NEUTRAL}');
     Expect(1, 918000, '\p{Is_East_Asian_Width=neutral}', "");
     Expect(0, 918000, '\p{^Is_East_Asian_Width=neutral}', "");
     Expect(0, 918000, '\P{Is_East_Asian_Width=neutral}', "");
@@ -37469,16 +38037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1114109, '\p{^Is_East_Asian_Width=neutral}', "");
     Expect(1, 1114109, '\P{Is_East_Asian_Width=neutral}', "");
     Expect(0, 1114109, '\P{^Is_East_Asian_Width=neutral}', "");
-    Expect(1, 918000, '\p{Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(0, 918000, '\p{^Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(0, 918000, '\P{Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(1, 918000, '\P{^Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(0, 1114109, '\p{Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(1, 1114109, '\p{^Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(1, 1114109, '\P{Is_East_Asian_Width=	_NEUTRAL}', "");
-    Expect(0, 1114109, '\P{^Is_East_Asian_Width=	_NEUTRAL}', "");
-    Error('\p{Is_Ea= N/a/}');
-    Error('\P{Is_Ea= N/a/}');
+    Expect(1, 918000, '\p{Is_East_Asian_Width=  Neutral}', "");
+    Expect(0, 918000, '\p{^Is_East_Asian_Width=  Neutral}', "");
+    Expect(0, 918000, '\P{Is_East_Asian_Width=  Neutral}', "");
+    Expect(1, 918000, '\P{^Is_East_Asian_Width=  Neutral}', "");
+    Expect(0, 1114109, '\p{Is_East_Asian_Width=  Neutral}', "");
+    Expect(1, 1114109, '\p{^Is_East_Asian_Width=  Neutral}', "");
+    Expect(1, 1114109, '\P{Is_East_Asian_Width=  Neutral}', "");
+    Expect(0, 1114109, '\P{^Is_East_Asian_Width=  Neutral}', "");
+    Error('\p{Is_Ea=/a/ -N}');
+    Error('\P{Is_Ea=/a/ -N}');
     Expect(1, 918000, '\p{Is_Ea=n}', "");
     Expect(0, 918000, '\p{^Is_Ea=n}', "");
     Expect(0, 918000, '\P{Is_Ea=n}', "");
@@ -37487,8 +38055,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1114109, '\p{^Is_Ea=n}', "");
     Expect(1, 1114109, '\P{Is_Ea=n}', "");
     Expect(0, 1114109, '\P{^Is_Ea=n}', "");
-    Error('\p{East_Asian_Width=	NARROW/a/}');
-    Error('\P{East_Asian_Width=	NARROW/a/}');
+    Expect(1, 918000, '\p{Is_Ea=_n}', "");
+    Expect(0, 918000, '\p{^Is_Ea=_n}', "");
+    Expect(0, 918000, '\P{Is_Ea=_n}', "");
+    Expect(1, 918000, '\P{^Is_Ea=_n}', "");
+    Expect(0, 1114109, '\p{Is_Ea=_n}', "");
+    Expect(1, 1114109, '\p{^Is_Ea=_n}', "");
+    Expect(1, 1114109, '\P{Is_Ea=_n}', "");
+    Expect(0, 1114109, '\P{^Is_Ea=_n}', "");
+    Error('\p{East_Asian_Width=	narrow:=}');
+    Error('\P{East_Asian_Width=	narrow:=}');
     Expect(1, 10630, '\p{East_Asian_Width=:\ANarrow\z:}', "");;
     Expect(0, 10631, '\p{East_Asian_Width=:\ANarrow\z:}', "");;
     Expect(1, 10630, '\p{East_Asian_Width=narrow}', "");
@@ -37501,38 +38077,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 10631, '\P{^East_Asian_Width=narrow}', "");
     Expect(1, 10630, '\p{East_Asian_Width=:\Anarrow\z:}', "");;
     Expect(0, 10631, '\p{East_Asian_Width=:\Anarrow\z:}', "");;
-    Expect(1, 10630, '\p{East_Asian_Width=_narrow}', "");
-    Expect(0, 10630, '\p{^East_Asian_Width=_narrow}', "");
-    Expect(0, 10630, '\P{East_Asian_Width=_narrow}', "");
-    Expect(1, 10630, '\P{^East_Asian_Width=_narrow}', "");
-    Expect(0, 10631, '\p{East_Asian_Width=_narrow}', "");
-    Expect(1, 10631, '\p{^East_Asian_Width=_narrow}', "");
-    Expect(1, 10631, '\P{East_Asian_Width=_narrow}', "");
-    Expect(0, 10631, '\P{^East_Asian_Width=_narrow}', "");
-    Error('\p{Ea=/a/_-na}');
-    Error('\P{Ea=/a/_-na}');
+    Expect(1, 10630, '\p{East_Asian_Width=--Narrow}', "");
+    Expect(0, 10630, '\p{^East_Asian_Width=--Narrow}', "");
+    Expect(0, 10630, '\P{East_Asian_Width=--Narrow}', "");
+    Expect(1, 10630, '\P{^East_Asian_Width=--Narrow}', "");
+    Expect(0, 10631, '\p{East_Asian_Width=--Narrow}', "");
+    Expect(1, 10631, '\p{^East_Asian_Width=--Narrow}', "");
+    Expect(1, 10631, '\P{East_Asian_Width=--Narrow}', "");
+    Expect(0, 10631, '\P{^East_Asian_Width=--Narrow}', "");
+    Error('\p{Ea= :=Na}');
+    Error('\P{Ea= :=Na}');
     Expect(1, 10630, '\p{Ea=:\ANa\z:}', "");;
     Expect(0, 10631, '\p{Ea=:\ANa\z:}', "");;
-    Expect(1, 10630, '\p{Ea:na}', "");
-    Expect(0, 10630, '\p{^Ea:na}', "");
-    Expect(0, 10630, '\P{Ea:na}', "");
-    Expect(1, 10630, '\P{^Ea:na}', "");
-    Expect(0, 10631, '\p{Ea:na}', "");
-    Expect(1, 10631, '\p{^Ea:na}', "");
-    Expect(1, 10631, '\P{Ea:na}', "");
-    Expect(0, 10631, '\P{^Ea:na}', "");
+    Expect(1, 10630, '\p{Ea=na}', "");
+    Expect(0, 10630, '\p{^Ea=na}', "");
+    Expect(0, 10630, '\P{Ea=na}', "");
+    Expect(1, 10630, '\P{^Ea=na}', "");
+    Expect(0, 10631, '\p{Ea=na}', "");
+    Expect(1, 10631, '\p{^Ea=na}', "");
+    Expect(1, 10631, '\P{Ea=na}', "");
+    Expect(0, 10631, '\P{^Ea=na}', "");
     Expect(1, 10630, '\p{Ea=:\Ana\z:}', "");;
     Expect(0, 10631, '\p{Ea=:\Ana\z:}', "");;
-    Expect(1, 10630, '\p{Ea= -Na}', "");
-    Expect(0, 10630, '\p{^Ea= -Na}', "");
-    Expect(0, 10630, '\P{Ea= -Na}', "");
-    Expect(1, 10630, '\P{^Ea= -Na}', "");
-    Expect(0, 10631, '\p{Ea= -Na}', "");
-    Expect(1, 10631, '\p{^Ea= -Na}', "");
-    Expect(1, 10631, '\P{Ea= -Na}', "");
-    Expect(0, 10631, '\P{^Ea= -Na}', "");
-    Error('\p{Is_East_Asian_Width=-_Narrow/a/}');
-    Error('\P{Is_East_Asian_Width=-_Narrow/a/}');
+    Expect(1, 10630, '\p{Ea=__Na}', "");
+    Expect(0, 10630, '\p{^Ea=__Na}', "");
+    Expect(0, 10630, '\P{Ea=__Na}', "");
+    Expect(1, 10630, '\P{^Ea=__Na}', "");
+    Expect(0, 10631, '\p{Ea=__Na}', "");
+    Expect(1, 10631, '\p{^Ea=__Na}', "");
+    Expect(1, 10631, '\P{Ea=__Na}', "");
+    Expect(0, 10631, '\P{^Ea=__Na}', "");
+    Error('\p{Is_East_Asian_Width=_	narrow/a/}');
+    Error('\P{Is_East_Asian_Width=_	narrow/a/}');
     Expect(1, 10630, '\p{Is_East_Asian_Width=narrow}', "");
     Expect(0, 10630, '\p{^Is_East_Asian_Width=narrow}', "");
     Expect(0, 10630, '\P{Is_East_Asian_Width=narrow}', "");
@@ -37541,16 +38117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10631, '\p{^Is_East_Asian_Width=narrow}', "");
     Expect(1, 10631, '\P{Is_East_Asian_Width=narrow}', "");
     Expect(0, 10631, '\P{^Is_East_Asian_Width=narrow}', "");
-    Expect(1, 10630, '\p{Is_East_Asian_Width= 	Narrow}', "");
-    Expect(0, 10630, '\p{^Is_East_Asian_Width= 	Narrow}', "");
-    Expect(0, 10630, '\P{Is_East_Asian_Width= 	Narrow}', "");
-    Expect(1, 10630, '\P{^Is_East_Asian_Width= 	Narrow}', "");
-    Expect(0, 10631, '\p{Is_East_Asian_Width= 	Narrow}', "");
-    Expect(1, 10631, '\p{^Is_East_Asian_Width= 	Narrow}', "");
-    Expect(1, 10631, '\P{Is_East_Asian_Width= 	Narrow}', "");
-    Expect(0, 10631, '\P{^Is_East_Asian_Width= 	Narrow}', "");
-    Error('\p{Is_Ea=/a/-Na}');
-    Error('\P{Is_Ea=/a/-Na}');
+    Expect(1, 10630, '\p{Is_East_Asian_Width=_ NARROW}', "");
+    Expect(0, 10630, '\p{^Is_East_Asian_Width=_ NARROW}', "");
+    Expect(0, 10630, '\P{Is_East_Asian_Width=_ NARROW}', "");
+    Expect(1, 10630, '\P{^Is_East_Asian_Width=_ NARROW}', "");
+    Expect(0, 10631, '\p{Is_East_Asian_Width=_ NARROW}', "");
+    Expect(1, 10631, '\p{^Is_East_Asian_Width=_ NARROW}', "");
+    Expect(1, 10631, '\P{Is_East_Asian_Width=_ NARROW}', "");
+    Expect(0, 10631, '\P{^Is_East_Asian_Width=_ NARROW}', "");
+    Error('\p{Is_Ea= :=Na}');
+    Error('\P{Is_Ea= :=Na}');
     Expect(1, 10630, '\p{Is_Ea=na}', "");
     Expect(0, 10630, '\p{^Is_Ea=na}', "");
     Expect(0, 10630, '\P{Is_Ea=na}', "");
@@ -37559,16 +38135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 10631, '\p{^Is_Ea=na}', "");
     Expect(1, 10631, '\P{Is_Ea=na}', "");
     Expect(0, 10631, '\P{^Is_Ea=na}', "");
-    Expect(1, 10630, '\p{Is_Ea=	Na}', "");
-    Expect(0, 10630, '\p{^Is_Ea=	Na}', "");
-    Expect(0, 10630, '\P{Is_Ea=	Na}', "");
-    Expect(1, 10630, '\P{^Is_Ea=	Na}', "");
-    Expect(0, 10631, '\p{Is_Ea=	Na}', "");
-    Expect(1, 10631, '\p{^Is_Ea=	Na}', "");
-    Expect(1, 10631, '\P{Is_Ea=	Na}', "");
-    Expect(0, 10631, '\P{^Is_Ea=	Na}', "");
-    Error('\p{East_Asian_Width:   /a/ 	WIDE}');
-    Error('\P{East_Asian_Width:   /a/ 	WIDE}');
+    Expect(1, 10630, '\p{Is_Ea=_	NA}', "");
+    Expect(0, 10630, '\p{^Is_Ea=_	NA}', "");
+    Expect(0, 10630, '\P{Is_Ea=_	NA}', "");
+    Expect(1, 10630, '\P{^Is_Ea=_	NA}', "");
+    Expect(0, 10631, '\p{Is_Ea=_	NA}', "");
+    Expect(1, 10631, '\p{^Is_Ea=_	NA}', "");
+    Expect(1, 10631, '\P{Is_Ea=_	NA}', "");
+    Expect(0, 10631, '\P{^Is_Ea=_	NA}', "");
+    Error('\p{East_Asian_Width=:=	_wide}');
+    Error('\P{East_Asian_Width=:=	_wide}');
     Expect(1, 262141, '\p{East_Asian_Width=:\AWide\z:}', "");;
     Expect(0, 262144, '\p{East_Asian_Width=:\AWide\z:}', "");;
     Expect(1, 262141, '\p{East_Asian_Width=wide}', "");
@@ -37581,16 +38157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 262144, '\P{^East_Asian_Width=wide}', "");
     Expect(1, 262141, '\p{East_Asian_Width=:\Awide\z:}', "");;
     Expect(0, 262144, '\p{East_Asian_Width=:\Awide\z:}', "");;
-    Expect(1, 262141, '\p{East_Asian_Width= wide}', "");
-    Expect(0, 262141, '\p{^East_Asian_Width= wide}', "");
-    Expect(0, 262141, '\P{East_Asian_Width= wide}', "");
-    Expect(1, 262141, '\P{^East_Asian_Width= wide}', "");
-    Expect(0, 262144, '\p{East_Asian_Width= wide}', "");
-    Expect(1, 262144, '\p{^East_Asian_Width= wide}', "");
-    Expect(1, 262144, '\P{East_Asian_Width= wide}', "");
-    Expect(0, 262144, '\P{^East_Asian_Width= wide}', "");
-    Error('\p{Ea=:= W}');
-    Error('\P{Ea=:= W}');
+    Expect(1, 262141, '\p{East_Asian_Width=_Wide}', "");
+    Expect(0, 262141, '\p{^East_Asian_Width=_Wide}', "");
+    Expect(0, 262141, '\P{East_Asian_Width=_Wide}', "");
+    Expect(1, 262141, '\P{^East_Asian_Width=_Wide}', "");
+    Expect(0, 262144, '\p{East_Asian_Width=_Wide}', "");
+    Expect(1, 262144, '\p{^East_Asian_Width=_Wide}', "");
+    Expect(1, 262144, '\P{East_Asian_Width=_Wide}', "");
+    Expect(0, 262144, '\P{^East_Asian_Width=_Wide}', "");
+    Error('\p{Ea=_-w/a/}');
+    Error('\P{Ea=_-w/a/}');
     Expect(1, 262141, '\p{Ea=:\AW\z:}', "");;
     Expect(0, 262144, '\p{Ea=:\AW\z:}', "");;
     Expect(1, 262141, '\p{Ea=w}', "");
@@ -37603,16 +38179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 262144, '\P{^Ea=w}', "");
     Expect(1, 262141, '\p{Ea=:\Aw\z:}', "");;
     Expect(0, 262144, '\p{Ea=:\Aw\z:}', "");;
-    Expect(1, 262141, '\p{Ea=	-W}', "");
-    Expect(0, 262141, '\p{^Ea=	-W}', "");
-    Expect(0, 262141, '\P{Ea=	-W}', "");
-    Expect(1, 262141, '\P{^Ea=	-W}', "");
-    Expect(0, 262144, '\p{Ea=	-W}', "");
-    Expect(1, 262144, '\p{^Ea=	-W}', "");
-    Expect(1, 262144, '\P{Ea=	-W}', "");
-    Expect(0, 262144, '\P{^Ea=	-W}', "");
-    Error('\p{Is_East_Asian_Width=/a/ WIDE}');
-    Error('\P{Is_East_Asian_Width=/a/ WIDE}');
+    Expect(1, 262141, '\p{Ea=	_w}', "");
+    Expect(0, 262141, '\p{^Ea=	_w}', "");
+    Expect(0, 262141, '\P{Ea=	_w}', "");
+    Expect(1, 262141, '\P{^Ea=	_w}', "");
+    Expect(0, 262144, '\p{Ea=	_w}', "");
+    Expect(1, 262144, '\p{^Ea=	_w}', "");
+    Expect(1, 262144, '\P{Ea=	_w}', "");
+    Expect(0, 262144, '\P{^Ea=	_w}', "");
+    Error('\p{Is_East_Asian_Width= /a/Wide}');
+    Error('\P{Is_East_Asian_Width= /a/Wide}');
     Expect(1, 262141, '\p{Is_East_Asian_Width=wide}', "");
     Expect(0, 262141, '\p{^Is_East_Asian_Width=wide}', "");
     Expect(0, 262141, '\P{Is_East_Asian_Width=wide}', "");
@@ -37621,16 +38197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 262144, '\p{^Is_East_Asian_Width=wide}', "");
     Expect(1, 262144, '\P{Is_East_Asian_Width=wide}', "");
     Expect(0, 262144, '\P{^Is_East_Asian_Width=wide}', "");
-    Expect(1, 262141, '\p{Is_East_Asian_Width=-Wide}', "");
-    Expect(0, 262141, '\p{^Is_East_Asian_Width=-Wide}', "");
-    Expect(0, 262141, '\P{Is_East_Asian_Width=-Wide}', "");
-    Expect(1, 262141, '\P{^Is_East_Asian_Width=-Wide}', "");
-    Expect(0, 262144, '\p{Is_East_Asian_Width=-Wide}', "");
-    Expect(1, 262144, '\p{^Is_East_Asian_Width=-Wide}', "");
-    Expect(1, 262144, '\P{Is_East_Asian_Width=-Wide}', "");
-    Expect(0, 262144, '\P{^Is_East_Asian_Width=-Wide}', "");
-    Error('\p{Is_Ea: 	W/a/}');
-    Error('\P{Is_Ea: 	W/a/}');
+    Expect(1, 262141, '\p{Is_East_Asian_Width=_Wide}', "");
+    Expect(0, 262141, '\p{^Is_East_Asian_Width=_Wide}', "");
+    Expect(0, 262141, '\P{Is_East_Asian_Width=_Wide}', "");
+    Expect(1, 262141, '\P{^Is_East_Asian_Width=_Wide}', "");
+    Expect(0, 262144, '\p{Is_East_Asian_Width=_Wide}', "");
+    Expect(1, 262144, '\p{^Is_East_Asian_Width=_Wide}', "");
+    Expect(1, 262144, '\P{Is_East_Asian_Width=_Wide}', "");
+    Expect(0, 262144, '\P{^Is_East_Asian_Width=_Wide}', "");
+    Error('\p{Is_Ea=/a/	_W}');
+    Error('\P{Is_Ea=/a/	_W}');
     Expect(1, 262141, '\p{Is_Ea=w}', "");
     Expect(0, 262141, '\p{^Is_Ea=w}', "");
     Expect(0, 262141, '\P{Is_Ea=w}', "");
@@ -37639,198 +38215,198 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 262144, '\p{^Is_Ea=w}', "");
     Expect(1, 262144, '\P{Is_Ea=w}', "");
     Expect(0, 262144, '\P{^Is_Ea=w}', "");
-    Expect(1, 262141, '\p{Is_Ea:	w}', "");
-    Expect(0, 262141, '\p{^Is_Ea:	w}', "");
-    Expect(0, 262141, '\P{Is_Ea:	w}', "");
-    Expect(1, 262141, '\P{^Is_Ea:	w}', "");
-    Expect(0, 262144, '\p{Is_Ea:	w}', "");
-    Expect(1, 262144, '\p{^Is_Ea:	w}', "");
-    Expect(1, 262144, '\P{Is_Ea:	w}', "");
-    Expect(0, 262144, '\P{^Is_Ea:	w}', "");
-    Error('\p{Emoji_Modifier_Base=_/a/NO}');
-    Error('\P{Emoji_Modifier_Base=_/a/NO}');
-    Expect(1, 129783, '\p{Emoji_Modifier_Base=:\ANo\z:}', "");;
-    Expect(0, 129782, '\p{Emoji_Modifier_Base=:\ANo\z:}', "");;
-    Expect(1, 129783, '\p{Emoji_Modifier_Base=no}', "");
-    Expect(0, 129783, '\p{^Emoji_Modifier_Base=no}', "");
-    Expect(0, 129783, '\P{Emoji_Modifier_Base=no}', "");
-    Expect(1, 129783, '\P{^Emoji_Modifier_Base=no}', "");
-    Expect(0, 129782, '\p{Emoji_Modifier_Base=no}', "");
-    Expect(1, 129782, '\p{^Emoji_Modifier_Base=no}', "");
-    Expect(1, 129782, '\P{Emoji_Modifier_Base=no}', "");
-    Expect(0, 129782, '\P{^Emoji_Modifier_Base=no}', "");
-    Expect(1, 129783, '\p{Emoji_Modifier_Base=:\Ano\z:}', "");;
-    Expect(0, 129782, '\p{Emoji_Modifier_Base=:\Ano\z:}', "");;
-    Expect(1, 129783, '\p{Emoji_Modifier_Base=-No}', "");
-    Expect(0, 129783, '\p{^Emoji_Modifier_Base=-No}', "");
-    Expect(0, 129783, '\P{Emoji_Modifier_Base=-No}', "");
-    Expect(1, 129783, '\P{^Emoji_Modifier_Base=-No}', "");
-    Expect(0, 129782, '\p{Emoji_Modifier_Base=-No}', "");
-    Expect(1, 129782, '\p{^Emoji_Modifier_Base=-No}', "");
-    Expect(1, 129782, '\P{Emoji_Modifier_Base=-No}', "");
-    Expect(0, 129782, '\P{^Emoji_Modifier_Base=-No}', "");
-    Error('\p{EBase=/a/_N}');
-    Error('\P{EBase=/a/_N}');
-    Expect(1, 129783, '\p{EBase=:\AN\z:}', "");;
-    Expect(0, 129782, '\p{EBase=:\AN\z:}', "");;
-    Expect(1, 129783, '\p{EBase=n}', "");
-    Expect(0, 129783, '\p{^EBase=n}', "");
-    Expect(0, 129783, '\P{EBase=n}', "");
-    Expect(1, 129783, '\P{^EBase=n}', "");
-    Expect(0, 129782, '\p{EBase=n}', "");
-    Expect(1, 129782, '\p{^EBase=n}', "");
-    Expect(1, 129782, '\P{EBase=n}', "");
-    Expect(0, 129782, '\P{^EBase=n}', "");
-    Expect(1, 129783, '\p{EBase=:\An\z:}', "");;
-    Expect(0, 129782, '\p{EBase=:\An\z:}', "");;
-    Expect(1, 129783, '\p{EBase=		N}', "");
-    Expect(0, 129783, '\p{^EBase=		N}', "");
-    Expect(0, 129783, '\P{EBase=		N}', "");
-    Expect(1, 129783, '\P{^EBase=		N}', "");
-    Expect(0, 129782, '\p{EBase=		N}', "");
-    Expect(1, 129782, '\p{^EBase=		N}', "");
-    Expect(1, 129782, '\P{EBase=		N}', "");
-    Expect(0, 129782, '\P{^EBase=		N}', "");
-    Error('\p{Is_Emoji_Modifier_Base=-	f:=}');
-    Error('\P{Is_Emoji_Modifier_Base=-	f:=}');
-    Expect(1, 129783, '\p{Is_Emoji_Modifier_Base=f}', "");
-    Expect(0, 129783, '\p{^Is_Emoji_Modifier_Base=f}', "");
-    Expect(0, 129783, '\P{Is_Emoji_Modifier_Base=f}', "");
-    Expect(1, 129783, '\P{^Is_Emoji_Modifier_Base=f}', "");
-    Expect(0, 129782, '\p{Is_Emoji_Modifier_Base=f}', "");
-    Expect(1, 129782, '\p{^Is_Emoji_Modifier_Base=f}', "");
-    Expect(1, 129782, '\P{Is_Emoji_Modifier_Base=f}', "");
-    Expect(0, 129782, '\P{^Is_Emoji_Modifier_Base=f}', "");
-    Expect(1, 129783, '\p{Is_Emoji_Modifier_Base=__F}', "");
-    Expect(0, 129783, '\p{^Is_Emoji_Modifier_Base=__F}', "");
-    Expect(0, 129783, '\P{Is_Emoji_Modifier_Base=__F}', "");
-    Expect(1, 129783, '\P{^Is_Emoji_Modifier_Base=__F}', "");
-    Expect(0, 129782, '\p{Is_Emoji_Modifier_Base=__F}', "");
-    Expect(1, 129782, '\p{^Is_Emoji_Modifier_Base=__F}', "");
-    Expect(1, 129782, '\P{Is_Emoji_Modifier_Base=__F}', "");
-    Expect(0, 129782, '\P{^Is_Emoji_Modifier_Base=__F}', "");
-    Error('\p{Is_EBase=	false/a/}');
-    Error('\P{Is_EBase=	false/a/}');
-    Expect(1, 129783, '\p{Is_EBase=false}', "");
-    Expect(0, 129783, '\p{^Is_EBase=false}', "");
-    Expect(0, 129783, '\P{Is_EBase=false}', "");
-    Expect(1, 129783, '\P{^Is_EBase=false}', "");
-    Expect(0, 129782, '\p{Is_EBase=false}', "");
-    Expect(1, 129782, '\p{^Is_EBase=false}', "");
-    Expect(1, 129782, '\P{Is_EBase=false}', "");
-    Expect(0, 129782, '\P{^Is_EBase=false}', "");
-    Expect(1, 129783, '\p{Is_EBase=	_FALSE}', "");
-    Expect(0, 129783, '\p{^Is_EBase=	_FALSE}', "");
-    Expect(0, 129783, '\P{Is_EBase=	_FALSE}', "");
-    Expect(1, 129783, '\P{^Is_EBase=	_FALSE}', "");
-    Expect(0, 129782, '\p{Is_EBase=	_FALSE}', "");
-    Expect(1, 129782, '\p{^Is_EBase=	_FALSE}', "");
-    Expect(1, 129782, '\P{Is_EBase=	_FALSE}', "");
-    Expect(0, 129782, '\P{^Is_EBase=	_FALSE}', "");
-    Error('\p{Emoji_Modifier_Base=/a/-Yes}');
-    Error('\P{Emoji_Modifier_Base=/a/-Yes}');
-    Expect(1, 129782, '\p{Emoji_Modifier_Base=:\AYes\z:}', "");;
-    Expect(0, 129783, '\p{Emoji_Modifier_Base=:\AYes\z:}', "");;
-    Expect(1, 129782, '\p{Emoji_Modifier_Base=yes}', "");
-    Expect(0, 129782, '\p{^Emoji_Modifier_Base=yes}', "");
-    Expect(0, 129782, '\P{Emoji_Modifier_Base=yes}', "");
-    Expect(1, 129782, '\P{^Emoji_Modifier_Base=yes}', "");
-    Expect(0, 129783, '\p{Emoji_Modifier_Base=yes}', "");
-    Expect(1, 129783, '\p{^Emoji_Modifier_Base=yes}', "");
-    Expect(1, 129783, '\P{Emoji_Modifier_Base=yes}', "");
-    Expect(0, 129783, '\P{^Emoji_Modifier_Base=yes}', "");
-    Expect(1, 129782, '\p{Emoji_Modifier_Base=:\Ayes\z:}', "");;
-    Expect(0, 129783, '\p{Emoji_Modifier_Base=:\Ayes\z:}', "");;
-    Expect(1, 129782, '\p{Emoji_Modifier_Base=	_YES}', "");
-    Expect(0, 129782, '\p{^Emoji_Modifier_Base=	_YES}', "");
-    Expect(0, 129782, '\P{Emoji_Modifier_Base=	_YES}', "");
-    Expect(1, 129782, '\P{^Emoji_Modifier_Base=	_YES}', "");
-    Expect(0, 129783, '\p{Emoji_Modifier_Base=	_YES}', "");
-    Expect(1, 129783, '\p{^Emoji_Modifier_Base=	_YES}', "");
-    Expect(1, 129783, '\P{Emoji_Modifier_Base=	_YES}', "");
-    Expect(0, 129783, '\P{^Emoji_Modifier_Base=	_YES}', "");
-    Error('\p{EBase=	_y:=}');
-    Error('\P{EBase=	_y:=}');
-    Expect(1, 129782, '\p{EBase=:\AY\z:}', "");;
-    Expect(0, 129783, '\p{EBase=:\AY\z:}', "");;
-    Expect(1, 129782, '\p{EBase=y}', "");
-    Expect(0, 129782, '\p{^EBase=y}', "");
-    Expect(0, 129782, '\P{EBase=y}', "");
-    Expect(1, 129782, '\P{^EBase=y}', "");
-    Expect(0, 129783, '\p{EBase=y}', "");
-    Expect(1, 129783, '\p{^EBase=y}', "");
-    Expect(1, 129783, '\P{EBase=y}', "");
-    Expect(0, 129783, '\P{^EBase=y}', "");
-    Expect(1, 129782, '\p{EBase=:\Ay\z:}', "");;
-    Expect(0, 129783, '\p{EBase=:\Ay\z:}', "");;
-    Expect(1, 129782, '\p{EBase: 		Y}', "");
-    Expect(0, 129782, '\p{^EBase: 		Y}', "");
-    Expect(0, 129782, '\P{EBase: 		Y}', "");
-    Expect(1, 129782, '\P{^EBase: 		Y}', "");
-    Expect(0, 129783, '\p{EBase: 		Y}', "");
-    Expect(1, 129783, '\p{^EBase: 		Y}', "");
-    Expect(1, 129783, '\P{EBase: 		Y}', "");
-    Expect(0, 129783, '\P{^EBase: 		Y}', "");
-    Error('\p{Is_Emoji_Modifier_Base=	:=t}');
-    Error('\P{Is_Emoji_Modifier_Base=	:=t}');
-    Expect(1, 129782, '\p{Is_Emoji_Modifier_Base=t}', "");
-    Expect(0, 129782, '\p{^Is_Emoji_Modifier_Base=t}', "");
-    Expect(0, 129782, '\P{Is_Emoji_Modifier_Base=t}', "");
-    Expect(1, 129782, '\P{^Is_Emoji_Modifier_Base=t}', "");
-    Expect(0, 129783, '\p{Is_Emoji_Modifier_Base=t}', "");
-    Expect(1, 129783, '\p{^Is_Emoji_Modifier_Base=t}', "");
-    Expect(1, 129783, '\P{Is_Emoji_Modifier_Base=t}', "");
-    Expect(0, 129783, '\P{^Is_Emoji_Modifier_Base=t}', "");
-    Expect(1, 129782, '\p{Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(0, 129782, '\p{^Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(0, 129782, '\P{Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(1, 129782, '\P{^Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(0, 129783, '\p{Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(1, 129783, '\p{^Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(1, 129783, '\P{Is_Emoji_Modifier_Base=	_t}', "");
-    Expect(0, 129783, '\P{^Is_Emoji_Modifier_Base=	_t}', "");
-    Error('\p{Is_EBase=_/a/True}');
-    Error('\P{Is_EBase=_/a/True}');
-    Expect(1, 129782, '\p{Is_EBase=true}', "");
-    Expect(0, 129782, '\p{^Is_EBase=true}', "");
-    Expect(0, 129782, '\P{Is_EBase=true}', "");
-    Expect(1, 129782, '\P{^Is_EBase=true}', "");
-    Expect(0, 129783, '\p{Is_EBase=true}', "");
-    Expect(1, 129783, '\p{^Is_EBase=true}', "");
-    Expect(1, 129783, '\P{Is_EBase=true}', "");
-    Expect(0, 129783, '\P{^Is_EBase=true}', "");
-    Expect(1, 129782, '\p{Is_EBase=	true}', "");
-    Expect(0, 129782, '\p{^Is_EBase=	true}', "");
-    Expect(0, 129782, '\P{Is_EBase=	true}', "");
-    Expect(1, 129782, '\P{^Is_EBase=	true}', "");
-    Expect(0, 129783, '\p{Is_EBase=	true}', "");
-    Expect(1, 129783, '\p{^Is_EBase=	true}', "");
-    Expect(1, 129783, '\P{Is_EBase=	true}', "");
-    Expect(0, 129783, '\P{^Is_EBase=	true}', "");
-    Error('\p{Emoji_Component=_/a/no}');
-    Error('\P{Emoji_Component=_/a/no}');
+    Expect(1, 262141, '\p{Is_Ea= 	W}', "");
+    Expect(0, 262141, '\p{^Is_Ea= 	W}', "");
+    Expect(0, 262141, '\P{Is_Ea= 	W}', "");
+    Expect(1, 262141, '\P{^Is_Ea= 	W}', "");
+    Expect(0, 262144, '\p{Is_Ea= 	W}', "");
+    Expect(1, 262144, '\p{^Is_Ea= 	W}', "");
+    Expect(1, 262144, '\P{Is_Ea= 	W}', "");
+    Expect(0, 262144, '\P{^Is_Ea= 	W}', "");
+    Error('\p{Emoji_Modifier_Base=:=-No}');
+    Error('\P{Emoji_Modifier_Base=:=-No}');
+    Expect(1, 129785, '\p{Emoji_Modifier_Base=:\ANo\z:}', "");;
+    Expect(0, 129784, '\p{Emoji_Modifier_Base=:\ANo\z:}', "");;
+    Expect(1, 129785, '\p{Emoji_Modifier_Base=no}', "");
+    Expect(0, 129785, '\p{^Emoji_Modifier_Base=no}', "");
+    Expect(0, 129785, '\P{Emoji_Modifier_Base=no}', "");
+    Expect(1, 129785, '\P{^Emoji_Modifier_Base=no}', "");
+    Expect(0, 129784, '\p{Emoji_Modifier_Base=no}', "");
+    Expect(1, 129784, '\p{^Emoji_Modifier_Base=no}', "");
+    Expect(1, 129784, '\P{Emoji_Modifier_Base=no}', "");
+    Expect(0, 129784, '\P{^Emoji_Modifier_Base=no}', "");
+    Expect(1, 129785, '\p{Emoji_Modifier_Base=:\Ano\z:}', "");;
+    Expect(0, 129784, '\p{Emoji_Modifier_Base=:\Ano\z:}', "");;
+    Expect(1, 129785, '\p{Emoji_Modifier_Base=--no}', "");
+    Expect(0, 129785, '\p{^Emoji_Modifier_Base=--no}', "");
+    Expect(0, 129785, '\P{Emoji_Modifier_Base=--no}', "");
+    Expect(1, 129785, '\P{^Emoji_Modifier_Base=--no}', "");
+    Expect(0, 129784, '\p{Emoji_Modifier_Base=--no}', "");
+    Expect(1, 129784, '\p{^Emoji_Modifier_Base=--no}', "");
+    Expect(1, 129784, '\P{Emoji_Modifier_Base=--no}', "");
+    Expect(0, 129784, '\P{^Emoji_Modifier_Base=--no}', "");
+    Error('\p{EBase= /a/N}');
+    Error('\P{EBase= /a/N}');
+    Expect(1, 129785, '\p{EBase=:\AN\z:}', "");;
+    Expect(0, 129784, '\p{EBase=:\AN\z:}', "");;
+    Expect(1, 129785, '\p{EBase=n}', "");
+    Expect(0, 129785, '\p{^EBase=n}', "");
+    Expect(0, 129785, '\P{EBase=n}', "");
+    Expect(1, 129785, '\P{^EBase=n}', "");
+    Expect(0, 129784, '\p{EBase=n}', "");
+    Expect(1, 129784, '\p{^EBase=n}', "");
+    Expect(1, 129784, '\P{EBase=n}', "");
+    Expect(0, 129784, '\P{^EBase=n}', "");
+    Expect(1, 129785, '\p{EBase=:\An\z:}', "");;
+    Expect(0, 129784, '\p{EBase=:\An\z:}', "");;
+    Expect(1, 129785, '\p{EBase=_	n}', "");
+    Expect(0, 129785, '\p{^EBase=_	n}', "");
+    Expect(0, 129785, '\P{EBase=_	n}', "");
+    Expect(1, 129785, '\P{^EBase=_	n}', "");
+    Expect(0, 129784, '\p{EBase=_	n}', "");
+    Expect(1, 129784, '\p{^EBase=_	n}', "");
+    Expect(1, 129784, '\P{EBase=_	n}', "");
+    Expect(0, 129784, '\P{^EBase=_	n}', "");
+    Error('\p{Is_Emoji_Modifier_Base= :=f}');
+    Error('\P{Is_Emoji_Modifier_Base= :=f}');
+    Expect(1, 129785, '\p{Is_Emoji_Modifier_Base: f}', "");
+    Expect(0, 129785, '\p{^Is_Emoji_Modifier_Base: f}', "");
+    Expect(0, 129785, '\P{Is_Emoji_Modifier_Base: f}', "");
+    Expect(1, 129785, '\P{^Is_Emoji_Modifier_Base: f}', "");
+    Expect(0, 129784, '\p{Is_Emoji_Modifier_Base: f}', "");
+    Expect(1, 129784, '\p{^Is_Emoji_Modifier_Base: f}', "");
+    Expect(1, 129784, '\P{Is_Emoji_Modifier_Base: f}', "");
+    Expect(0, 129784, '\P{^Is_Emoji_Modifier_Base: f}', "");
+    Expect(1, 129785, '\p{Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(0, 129785, '\p{^Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(0, 129785, '\P{Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(1, 129785, '\P{^Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(0, 129784, '\p{Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(1, 129784, '\p{^Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(1, 129784, '\P{Is_Emoji_Modifier_Base=-_F}', "");
+    Expect(0, 129784, '\P{^Is_Emoji_Modifier_Base=-_F}', "");
+    Error('\p{Is_EBase=-:=false}');
+    Error('\P{Is_EBase=-:=false}');
+    Expect(1, 129785, '\p{Is_EBase=false}', "");
+    Expect(0, 129785, '\p{^Is_EBase=false}', "");
+    Expect(0, 129785, '\P{Is_EBase=false}', "");
+    Expect(1, 129785, '\P{^Is_EBase=false}', "");
+    Expect(0, 129784, '\p{Is_EBase=false}', "");
+    Expect(1, 129784, '\p{^Is_EBase=false}', "");
+    Expect(1, 129784, '\P{Is_EBase=false}', "");
+    Expect(0, 129784, '\P{^Is_EBase=false}', "");
+    Expect(1, 129785, '\p{Is_EBase=-False}', "");
+    Expect(0, 129785, '\p{^Is_EBase=-False}', "");
+    Expect(0, 129785, '\P{Is_EBase=-False}', "");
+    Expect(1, 129785, '\P{^Is_EBase=-False}', "");
+    Expect(0, 129784, '\p{Is_EBase=-False}', "");
+    Expect(1, 129784, '\p{^Is_EBase=-False}', "");
+    Expect(1, 129784, '\P{Is_EBase=-False}', "");
+    Expect(0, 129784, '\P{^Is_EBase=-False}', "");
+    Error('\p{Emoji_Modifier_Base=/a/__Yes}');
+    Error('\P{Emoji_Modifier_Base=/a/__Yes}');
+    Expect(1, 129784, '\p{Emoji_Modifier_Base=:\AYes\z:}', "");;
+    Expect(0, 129785, '\p{Emoji_Modifier_Base=:\AYes\z:}', "");;
+    Expect(1, 129784, '\p{Emoji_Modifier_Base:   yes}', "");
+    Expect(0, 129784, '\p{^Emoji_Modifier_Base:   yes}', "");
+    Expect(0, 129784, '\P{Emoji_Modifier_Base:   yes}', "");
+    Expect(1, 129784, '\P{^Emoji_Modifier_Base:   yes}', "");
+    Expect(0, 129785, '\p{Emoji_Modifier_Base:   yes}', "");
+    Expect(1, 129785, '\p{^Emoji_Modifier_Base:   yes}', "");
+    Expect(1, 129785, '\P{Emoji_Modifier_Base:   yes}', "");
+    Expect(0, 129785, '\P{^Emoji_Modifier_Base:   yes}', "");
+    Expect(1, 129784, '\p{Emoji_Modifier_Base=:\Ayes\z:}', "");;
+    Expect(0, 129785, '\p{Emoji_Modifier_Base=:\Ayes\z:}', "");;
+    Expect(1, 129784, '\p{Emoji_Modifier_Base=		Yes}', "");
+    Expect(0, 129784, '\p{^Emoji_Modifier_Base=		Yes}', "");
+    Expect(0, 129784, '\P{Emoji_Modifier_Base=		Yes}', "");
+    Expect(1, 129784, '\P{^Emoji_Modifier_Base=		Yes}', "");
+    Expect(0, 129785, '\p{Emoji_Modifier_Base=		Yes}', "");
+    Expect(1, 129785, '\p{^Emoji_Modifier_Base=		Yes}', "");
+    Expect(1, 129785, '\P{Emoji_Modifier_Base=		Yes}', "");
+    Expect(0, 129785, '\P{^Emoji_Modifier_Base=		Yes}', "");
+    Error('\p{EBase=/a/	Y}');
+    Error('\P{EBase=/a/	Y}');
+    Expect(1, 129784, '\p{EBase=:\AY\z:}', "");;
+    Expect(0, 129785, '\p{EBase=:\AY\z:}', "");;
+    Expect(1, 129784, '\p{EBase=y}', "");
+    Expect(0, 129784, '\p{^EBase=y}', "");
+    Expect(0, 129784, '\P{EBase=y}', "");
+    Expect(1, 129784, '\P{^EBase=y}', "");
+    Expect(0, 129785, '\p{EBase=y}', "");
+    Expect(1, 129785, '\p{^EBase=y}', "");
+    Expect(1, 129785, '\P{EBase=y}', "");
+    Expect(0, 129785, '\P{^EBase=y}', "");
+    Expect(1, 129784, '\p{EBase=:\Ay\z:}', "");;
+    Expect(0, 129785, '\p{EBase=:\Ay\z:}', "");;
+    Expect(1, 129784, '\p{EBase= _y}', "");
+    Expect(0, 129784, '\p{^EBase= _y}', "");
+    Expect(0, 129784, '\P{EBase= _y}', "");
+    Expect(1, 129784, '\P{^EBase= _y}', "");
+    Expect(0, 129785, '\p{EBase= _y}', "");
+    Expect(1, 129785, '\p{^EBase= _y}', "");
+    Expect(1, 129785, '\P{EBase= _y}', "");
+    Expect(0, 129785, '\P{^EBase= _y}', "");
+    Error('\p{Is_Emoji_Modifier_Base=	:=T}');
+    Error('\P{Is_Emoji_Modifier_Base=	:=T}');
+    Expect(1, 129784, '\p{Is_Emoji_Modifier_Base=t}', "");
+    Expect(0, 129784, '\p{^Is_Emoji_Modifier_Base=t}', "");
+    Expect(0, 129784, '\P{Is_Emoji_Modifier_Base=t}', "");
+    Expect(1, 129784, '\P{^Is_Emoji_Modifier_Base=t}', "");
+    Expect(0, 129785, '\p{Is_Emoji_Modifier_Base=t}', "");
+    Expect(1, 129785, '\p{^Is_Emoji_Modifier_Base=t}', "");
+    Expect(1, 129785, '\P{Is_Emoji_Modifier_Base=t}', "");
+    Expect(0, 129785, '\P{^Is_Emoji_Modifier_Base=t}', "");
+    Expect(1, 129784, '\p{Is_Emoji_Modifier_Base=--T}', "");
+    Expect(0, 129784, '\p{^Is_Emoji_Modifier_Base=--T}', "");
+    Expect(0, 129784, '\P{Is_Emoji_Modifier_Base=--T}', "");
+    Expect(1, 129784, '\P{^Is_Emoji_Modifier_Base=--T}', "");
+    Expect(0, 129785, '\p{Is_Emoji_Modifier_Base=--T}', "");
+    Expect(1, 129785, '\p{^Is_Emoji_Modifier_Base=--T}', "");
+    Expect(1, 129785, '\P{Is_Emoji_Modifier_Base=--T}', "");
+    Expect(0, 129785, '\P{^Is_Emoji_Modifier_Base=--T}', "");
+    Error('\p{Is_EBase=		TRUE/a/}');
+    Error('\P{Is_EBase=		TRUE/a/}');
+    Expect(1, 129784, '\p{Is_EBase:   true}', "");
+    Expect(0, 129784, '\p{^Is_EBase:   true}', "");
+    Expect(0, 129784, '\P{Is_EBase:   true}', "");
+    Expect(1, 129784, '\P{^Is_EBase:   true}', "");
+    Expect(0, 129785, '\p{Is_EBase:   true}', "");
+    Expect(1, 129785, '\p{^Is_EBase:   true}', "");
+    Expect(1, 129785, '\P{Is_EBase:   true}', "");
+    Expect(0, 129785, '\P{^Is_EBase:   true}', "");
+    Expect(1, 129784, '\p{Is_EBase: 	TRUE}', "");
+    Expect(0, 129784, '\p{^Is_EBase: 	TRUE}', "");
+    Expect(0, 129784, '\P{Is_EBase: 	TRUE}', "");
+    Expect(1, 129784, '\P{^Is_EBase: 	TRUE}', "");
+    Expect(0, 129785, '\p{Is_EBase: 	TRUE}', "");
+    Expect(1, 129785, '\p{^Is_EBase: 	TRUE}', "");
+    Expect(1, 129785, '\P{Is_EBase: 	TRUE}', "");
+    Expect(0, 129785, '\P{^Is_EBase: 	TRUE}', "");
+    Error('\p{Emoji_Component:	-:=no}');
+    Error('\P{Emoji_Component:	-:=no}');
     Expect(1, 917632, '\p{Emoji_Component=:\ANo\z:}', "");;
     Expect(0, 917631, '\p{Emoji_Component=:\ANo\z:}', "");;
-    Expect(1, 917632, '\p{Emoji_Component:	no}', "");
-    Expect(0, 917632, '\p{^Emoji_Component:	no}', "");
-    Expect(0, 917632, '\P{Emoji_Component:	no}', "");
-    Expect(1, 917632, '\P{^Emoji_Component:	no}', "");
-    Expect(0, 917631, '\p{Emoji_Component:	no}', "");
-    Expect(1, 917631, '\p{^Emoji_Component:	no}', "");
-    Expect(1, 917631, '\P{Emoji_Component:	no}', "");
-    Expect(0, 917631, '\P{^Emoji_Component:	no}', "");
+    Expect(1, 917632, '\p{Emoji_Component=no}', "");
+    Expect(0, 917632, '\p{^Emoji_Component=no}', "");
+    Expect(0, 917632, '\P{Emoji_Component=no}', "");
+    Expect(1, 917632, '\P{^Emoji_Component=no}', "");
+    Expect(0, 917631, '\p{Emoji_Component=no}', "");
+    Expect(1, 917631, '\p{^Emoji_Component=no}', "");
+    Expect(1, 917631, '\P{Emoji_Component=no}', "");
+    Expect(0, 917631, '\P{^Emoji_Component=no}', "");
     Expect(1, 917632, '\p{Emoji_Component=:\Ano\z:}', "");;
     Expect(0, 917631, '\p{Emoji_Component=:\Ano\z:}', "");;
-    Expect(1, 917632, '\p{Emoji_Component=-_NO}', "");
-    Expect(0, 917632, '\p{^Emoji_Component=-_NO}', "");
-    Expect(0, 917632, '\P{Emoji_Component=-_NO}', "");
-    Expect(1, 917632, '\P{^Emoji_Component=-_NO}', "");
-    Expect(0, 917631, '\p{Emoji_Component=-_NO}', "");
-    Expect(1, 917631, '\p{^Emoji_Component=-_NO}', "");
-    Expect(1, 917631, '\P{Emoji_Component=-_NO}', "");
-    Expect(0, 917631, '\P{^Emoji_Component=-_NO}', "");
-    Error('\p{EComp=:=	_N}');
-    Error('\P{EComp=:=	_N}');
+    Expect(1, 917632, '\p{Emoji_Component=-no}', "");
+    Expect(0, 917632, '\p{^Emoji_Component=-no}', "");
+    Expect(0, 917632, '\P{Emoji_Component=-no}', "");
+    Expect(1, 917632, '\P{^Emoji_Component=-no}', "");
+    Expect(0, 917631, '\p{Emoji_Component=-no}', "");
+    Expect(1, 917631, '\p{^Emoji_Component=-no}', "");
+    Expect(1, 917631, '\P{Emoji_Component=-no}', "");
+    Expect(0, 917631, '\P{^Emoji_Component=-no}', "");
+    Error('\p{EComp=_-N:=}');
+    Error('\P{EComp=_-N:=}');
     Expect(1, 917632, '\p{EComp=:\AN\z:}', "");;
     Expect(0, 917631, '\p{EComp=:\AN\z:}', "");;
     Expect(1, 917632, '\p{EComp=n}', "");
@@ -37843,16 +38419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917631, '\P{^EComp=n}', "");
     Expect(1, 917632, '\p{EComp=:\An\z:}', "");;
     Expect(0, 917631, '\p{EComp=:\An\z:}', "");;
-    Expect(1, 917632, '\p{EComp=_N}', "");
-    Expect(0, 917632, '\p{^EComp=_N}', "");
-    Expect(0, 917632, '\P{EComp=_N}', "");
-    Expect(1, 917632, '\P{^EComp=_N}', "");
-    Expect(0, 917631, '\p{EComp=_N}', "");
-    Expect(1, 917631, '\p{^EComp=_N}', "");
-    Expect(1, 917631, '\P{EComp=_N}', "");
-    Expect(0, 917631, '\P{^EComp=_N}', "");
-    Error('\p{Is_Emoji_Component=:=  F}');
-    Error('\P{Is_Emoji_Component=:=  F}');
+    Expect(1, 917632, '\p{EComp=	N}', "");
+    Expect(0, 917632, '\p{^EComp=	N}', "");
+    Expect(0, 917632, '\P{EComp=	N}', "");
+    Expect(1, 917632, '\P{^EComp=	N}', "");
+    Expect(0, 917631, '\p{EComp=	N}', "");
+    Expect(1, 917631, '\p{^EComp=	N}', "");
+    Expect(1, 917631, '\P{EComp=	N}', "");
+    Expect(0, 917631, '\P{^EComp=	N}', "");
+    Error('\p{Is_Emoji_Component=_/a/F}');
+    Error('\P{Is_Emoji_Component=_/a/F}');
     Expect(1, 917632, '\p{Is_Emoji_Component=f}', "");
     Expect(0, 917632, '\p{^Is_Emoji_Component=f}', "");
     Expect(0, 917632, '\P{Is_Emoji_Component=f}', "");
@@ -37861,16 +38437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917631, '\p{^Is_Emoji_Component=f}', "");
     Expect(1, 917631, '\P{Is_Emoji_Component=f}', "");
     Expect(0, 917631, '\P{^Is_Emoji_Component=f}', "");
-    Expect(1, 917632, '\p{Is_Emoji_Component= -F}', "");
-    Expect(0, 917632, '\p{^Is_Emoji_Component= -F}', "");
-    Expect(0, 917632, '\P{Is_Emoji_Component= -F}', "");
-    Expect(1, 917632, '\P{^Is_Emoji_Component= -F}', "");
-    Expect(0, 917631, '\p{Is_Emoji_Component= -F}', "");
-    Expect(1, 917631, '\p{^Is_Emoji_Component= -F}', "");
-    Expect(1, 917631, '\P{Is_Emoji_Component= -F}', "");
-    Expect(0, 917631, '\P{^Is_Emoji_Component= -F}', "");
-    Error('\p{Is_EComp=/a/	false}');
-    Error('\P{Is_EComp=/a/	false}');
+    Expect(1, 917632, '\p{Is_Emoji_Component=_	F}', "");
+    Expect(0, 917632, '\p{^Is_Emoji_Component=_	F}', "");
+    Expect(0, 917632, '\P{Is_Emoji_Component=_	F}', "");
+    Expect(1, 917632, '\P{^Is_Emoji_Component=_	F}', "");
+    Expect(0, 917631, '\p{Is_Emoji_Component=_	F}', "");
+    Expect(1, 917631, '\p{^Is_Emoji_Component=_	F}', "");
+    Expect(1, 917631, '\P{Is_Emoji_Component=_	F}', "");
+    Expect(0, 917631, '\P{^Is_Emoji_Component=_	F}', "");
+    Error('\p{Is_EComp:-:=false}');
+    Error('\P{Is_EComp:-:=false}');
     Expect(1, 917632, '\p{Is_EComp=false}', "");
     Expect(0, 917632, '\p{^Is_EComp=false}', "");
     Expect(0, 917632, '\P{Is_EComp=false}', "");
@@ -37879,16 +38455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917631, '\p{^Is_EComp=false}', "");
     Expect(1, 917631, '\P{Is_EComp=false}', "");
     Expect(0, 917631, '\P{^Is_EComp=false}', "");
-    Expect(1, 917632, '\p{Is_EComp= FALSE}', "");
-    Expect(0, 917632, '\p{^Is_EComp= FALSE}', "");
-    Expect(0, 917632, '\P{Is_EComp= FALSE}', "");
-    Expect(1, 917632, '\P{^Is_EComp= FALSE}', "");
-    Expect(0, 917631, '\p{Is_EComp= FALSE}', "");
-    Expect(1, 917631, '\p{^Is_EComp= FALSE}', "");
-    Expect(1, 917631, '\P{Is_EComp= FALSE}', "");
-    Expect(0, 917631, '\P{^Is_EComp= FALSE}', "");
-    Error('\p{Emoji_Component=/a/_yes}');
-    Error('\P{Emoji_Component=/a/_yes}');
+    Expect(1, 917632, '\p{Is_EComp= 	FALSE}', "");
+    Expect(0, 917632, '\p{^Is_EComp= 	FALSE}', "");
+    Expect(0, 917632, '\P{Is_EComp= 	FALSE}', "");
+    Expect(1, 917632, '\P{^Is_EComp= 	FALSE}', "");
+    Expect(0, 917631, '\p{Is_EComp= 	FALSE}', "");
+    Expect(1, 917631, '\p{^Is_EComp= 	FALSE}', "");
+    Expect(1, 917631, '\P{Is_EComp= 	FALSE}', "");
+    Expect(0, 917631, '\P{^Is_EComp= 	FALSE}', "");
+    Error('\p{Emoji_Component=_:=Yes}');
+    Error('\P{Emoji_Component=_:=Yes}');
     Expect(1, 917631, '\p{Emoji_Component=:\AYes\z:}', "");;
     Expect(0, 917632, '\p{Emoji_Component=:\AYes\z:}', "");;
     Expect(1, 917631, '\p{Emoji_Component=yes}', "");
@@ -37901,16 +38477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^Emoji_Component=yes}', "");
     Expect(1, 917631, '\p{Emoji_Component=:\Ayes\z:}', "");;
     Expect(0, 917632, '\p{Emoji_Component=:\Ayes\z:}', "");;
-    Expect(1, 917631, '\p{Emoji_Component= YES}', "");
-    Expect(0, 917631, '\p{^Emoji_Component= YES}', "");
-    Expect(0, 917631, '\P{Emoji_Component= YES}', "");
-    Expect(1, 917631, '\P{^Emoji_Component= YES}', "");
-    Expect(0, 917632, '\p{Emoji_Component= YES}', "");
-    Expect(1, 917632, '\p{^Emoji_Component= YES}', "");
-    Expect(1, 917632, '\P{Emoji_Component= YES}', "");
-    Expect(0, 917632, '\P{^Emoji_Component= YES}', "");
-    Error('\p{EComp=:= Y}');
-    Error('\P{EComp=:= Y}');
+    Expect(1, 917631, '\p{Emoji_Component=__Yes}', "");
+    Expect(0, 917631, '\p{^Emoji_Component=__Yes}', "");
+    Expect(0, 917631, '\P{Emoji_Component=__Yes}', "");
+    Expect(1, 917631, '\P{^Emoji_Component=__Yes}', "");
+    Expect(0, 917632, '\p{Emoji_Component=__Yes}', "");
+    Expect(1, 917632, '\p{^Emoji_Component=__Yes}', "");
+    Expect(1, 917632, '\P{Emoji_Component=__Yes}', "");
+    Expect(0, 917632, '\P{^Emoji_Component=__Yes}', "");
+    Error('\p{EComp=:= 	Y}');
+    Error('\P{EComp=:= 	Y}');
     Expect(1, 917631, '\p{EComp=:\AY\z:}', "");;
     Expect(0, 917632, '\p{EComp=:\AY\z:}', "");;
     Expect(1, 917631, '\p{EComp=y}', "");
@@ -37923,16 +38499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^EComp=y}', "");
     Expect(1, 917631, '\p{EComp=:\Ay\z:}', "");;
     Expect(0, 917632, '\p{EComp=:\Ay\z:}', "");;
-    Expect(1, 917631, '\p{EComp=_-Y}', "");
-    Expect(0, 917631, '\p{^EComp=_-Y}', "");
-    Expect(0, 917631, '\P{EComp=_-Y}', "");
-    Expect(1, 917631, '\P{^EComp=_-Y}', "");
-    Expect(0, 917632, '\p{EComp=_-Y}', "");
-    Expect(1, 917632, '\p{^EComp=_-Y}', "");
-    Expect(1, 917632, '\P{EComp=_-Y}', "");
-    Expect(0, 917632, '\P{^EComp=_-Y}', "");
-    Error('\p{Is_Emoji_Component=_-t:=}');
-    Error('\P{Is_Emoji_Component=_-t:=}');
+    Expect(1, 917631, '\p{EComp= Y}', "");
+    Expect(0, 917631, '\p{^EComp= Y}', "");
+    Expect(0, 917631, '\P{EComp= Y}', "");
+    Expect(1, 917631, '\P{^EComp= Y}', "");
+    Expect(0, 917632, '\p{EComp= Y}', "");
+    Expect(1, 917632, '\p{^EComp= Y}', "");
+    Expect(1, 917632, '\P{EComp= Y}', "");
+    Expect(0, 917632, '\P{^EComp= Y}', "");
+    Error('\p{Is_Emoji_Component=/a/_-t}');
+    Error('\P{Is_Emoji_Component=/a/_-t}');
     Expect(1, 917631, '\p{Is_Emoji_Component=t}', "");
     Expect(0, 917631, '\p{^Is_Emoji_Component=t}', "");
     Expect(0, 917631, '\P{Is_Emoji_Component=t}', "");
@@ -37941,16 +38517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917632, '\p{^Is_Emoji_Component=t}', "");
     Expect(1, 917632, '\P{Is_Emoji_Component=t}', "");
     Expect(0, 917632, '\P{^Is_Emoji_Component=t}', "");
-    Expect(1, 917631, '\p{Is_Emoji_Component:	__T}', "");
-    Expect(0, 917631, '\p{^Is_Emoji_Component:	__T}', "");
-    Expect(0, 917631, '\P{Is_Emoji_Component:	__T}', "");
-    Expect(1, 917631, '\P{^Is_Emoji_Component:	__T}', "");
-    Expect(0, 917632, '\p{Is_Emoji_Component:	__T}', "");
-    Expect(1, 917632, '\p{^Is_Emoji_Component:	__T}', "");
-    Expect(1, 917632, '\P{Is_Emoji_Component:	__T}', "");
-    Expect(0, 917632, '\P{^Is_Emoji_Component:	__T}', "");
-    Error('\p{Is_EComp=_/a/TRUE}');
-    Error('\P{Is_EComp=_/a/TRUE}');
+    Expect(1, 917631, '\p{Is_Emoji_Component=-_t}', "");
+    Expect(0, 917631, '\p{^Is_Emoji_Component=-_t}', "");
+    Expect(0, 917631, '\P{Is_Emoji_Component=-_t}', "");
+    Expect(1, 917631, '\P{^Is_Emoji_Component=-_t}', "");
+    Expect(0, 917632, '\p{Is_Emoji_Component=-_t}', "");
+    Expect(1, 917632, '\p{^Is_Emoji_Component=-_t}', "");
+    Expect(1, 917632, '\P{Is_Emoji_Component=-_t}', "");
+    Expect(0, 917632, '\P{^Is_Emoji_Component=-_t}', "");
+    Error('\p{Is_EComp:   :=_	True}');
+    Error('\P{Is_EComp:   :=_	True}');
     Expect(1, 917631, '\p{Is_EComp=true}', "");
     Expect(0, 917631, '\p{^Is_EComp=true}', "");
     Expect(0, 917631, '\P{Is_EComp=true}', "");
@@ -37959,16 +38535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917632, '\p{^Is_EComp=true}', "");
     Expect(1, 917632, '\P{Is_EComp=true}', "");
     Expect(0, 917632, '\P{^Is_EComp=true}', "");
-    Expect(1, 917631, '\p{Is_EComp: 	true}', "");
-    Expect(0, 917631, '\p{^Is_EComp: 	true}', "");
-    Expect(0, 917631, '\P{Is_EComp: 	true}', "");
-    Expect(1, 917631, '\P{^Is_EComp: 	true}', "");
-    Expect(0, 917632, '\p{Is_EComp: 	true}', "");
-    Expect(1, 917632, '\p{^Is_EComp: 	true}', "");
-    Expect(1, 917632, '\P{Is_EComp: 	true}', "");
-    Expect(0, 917632, '\P{^Is_EComp: 	true}', "");
-    Error('\p{Emoji_Modifier=/a/_No}');
-    Error('\P{Emoji_Modifier=/a/_No}');
+    Expect(1, 917631, '\p{Is_EComp= _True}', "");
+    Expect(0, 917631, '\p{^Is_EComp= _True}', "");
+    Expect(0, 917631, '\P{Is_EComp= _True}', "");
+    Expect(1, 917631, '\P{^Is_EComp= _True}', "");
+    Expect(0, 917632, '\p{Is_EComp= _True}', "");
+    Expect(1, 917632, '\p{^Is_EComp= _True}', "");
+    Expect(1, 917632, '\P{Is_EComp= _True}', "");
+    Expect(0, 917632, '\P{^Is_EComp= _True}', "");
+    Error('\p{Emoji_Modifier=-:=no}');
+    Error('\P{Emoji_Modifier=-:=no}');
     Expect(1, 128000, '\p{Emoji_Modifier=:\ANo\z:}', "");;
     Expect(0, 127999, '\p{Emoji_Modifier=:\ANo\z:}', "");;
     Expect(1, 128000, '\p{Emoji_Modifier=no}', "");
@@ -37981,16 +38557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127999, '\P{^Emoji_Modifier=no}', "");
     Expect(1, 128000, '\p{Emoji_Modifier=:\Ano\z:}', "");;
     Expect(0, 127999, '\p{Emoji_Modifier=:\Ano\z:}', "");;
-    Expect(1, 128000, '\p{Emoji_Modifier=--No}', "");
-    Expect(0, 128000, '\p{^Emoji_Modifier=--No}', "");
-    Expect(0, 128000, '\P{Emoji_Modifier=--No}', "");
-    Expect(1, 128000, '\P{^Emoji_Modifier=--No}', "");
-    Expect(0, 127999, '\p{Emoji_Modifier=--No}', "");
-    Expect(1, 127999, '\p{^Emoji_Modifier=--No}', "");
-    Expect(1, 127999, '\P{Emoji_Modifier=--No}', "");
-    Expect(0, 127999, '\P{^Emoji_Modifier=--No}', "");
-    Error('\p{EMod=:=--N}');
-    Error('\P{EMod=:=--N}');
+    Expect(1, 128000, '\p{Emoji_Modifier=	_no}', "");
+    Expect(0, 128000, '\p{^Emoji_Modifier=	_no}', "");
+    Expect(0, 128000, '\P{Emoji_Modifier=	_no}', "");
+    Expect(1, 128000, '\P{^Emoji_Modifier=	_no}', "");
+    Expect(0, 127999, '\p{Emoji_Modifier=	_no}', "");
+    Expect(1, 127999, '\p{^Emoji_Modifier=	_no}', "");
+    Expect(1, 127999, '\P{Emoji_Modifier=	_no}', "");
+    Expect(0, 127999, '\P{^Emoji_Modifier=	_no}', "");
+    Error('\p{EMod: 	_n:=}');
+    Error('\P{EMod: 	_n:=}');
     Expect(1, 128000, '\p{EMod=:\AN\z:}', "");;
     Expect(0, 127999, '\p{EMod=:\AN\z:}', "");;
     Expect(1, 128000, '\p{EMod=n}', "");
@@ -38003,16 +38579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 127999, '\P{^EMod=n}', "");
     Expect(1, 128000, '\p{EMod=:\An\z:}', "");;
     Expect(0, 127999, '\p{EMod=:\An\z:}', "");;
-    Expect(1, 128000, '\p{EMod=_ N}', "");
-    Expect(0, 128000, '\p{^EMod=_ N}', "");
-    Expect(0, 128000, '\P{EMod=_ N}', "");
-    Expect(1, 128000, '\P{^EMod=_ N}', "");
-    Expect(0, 127999, '\p{EMod=_ N}', "");
-    Expect(1, 127999, '\p{^EMod=_ N}', "");
-    Expect(1, 127999, '\P{EMod=_ N}', "");
-    Expect(0, 127999, '\P{^EMod=_ N}', "");
-    Error('\p{Is_Emoji_Modifier=:= 	F}');
-    Error('\P{Is_Emoji_Modifier=:= 	F}');
+    Expect(1, 128000, '\p{EMod=-_n}', "");
+    Expect(0, 128000, '\p{^EMod=-_n}', "");
+    Expect(0, 128000, '\P{EMod=-_n}', "");
+    Expect(1, 128000, '\P{^EMod=-_n}', "");
+    Expect(0, 127999, '\p{EMod=-_n}', "");
+    Expect(1, 127999, '\p{^EMod=-_n}', "");
+    Expect(1, 127999, '\P{EMod=-_n}', "");
+    Expect(0, 127999, '\P{^EMod=-_n}', "");
+    Error('\p{Is_Emoji_Modifier=	:=F}');
+    Error('\P{Is_Emoji_Modifier=	:=F}');
     Expect(1, 128000, '\p{Is_Emoji_Modifier=f}', "");
     Expect(0, 128000, '\p{^Is_Emoji_Modifier=f}', "");
     Expect(0, 128000, '\P{Is_Emoji_Modifier=f}', "");
@@ -38021,56 +38597,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 127999, '\p{^Is_Emoji_Modifier=f}', "");
     Expect(1, 127999, '\P{Is_Emoji_Modifier=f}', "");
     Expect(0, 127999, '\P{^Is_Emoji_Modifier=f}', "");
-    Expect(1, 128000, '\p{Is_Emoji_Modifier=_ F}', "");
-    Expect(0, 128000, '\p{^Is_Emoji_Modifier=_ F}', "");
-    Expect(0, 128000, '\P{Is_Emoji_Modifier=_ F}', "");
-    Expect(1, 128000, '\P{^Is_Emoji_Modifier=_ F}', "");
-    Expect(0, 127999, '\p{Is_Emoji_Modifier=_ F}', "");
-    Expect(1, 127999, '\p{^Is_Emoji_Modifier=_ F}', "");
-    Expect(1, 127999, '\P{Is_Emoji_Modifier=_ F}', "");
-    Expect(0, 127999, '\P{^Is_Emoji_Modifier=_ F}', "");
-    Error('\p{Is_EMod=/a/-False}');
-    Error('\P{Is_EMod=/a/-False}');
-    Expect(1, 128000, '\p{Is_EMod:false}', "");
-    Expect(0, 128000, '\p{^Is_EMod:false}', "");
-    Expect(0, 128000, '\P{Is_EMod:false}', "");
-    Expect(1, 128000, '\P{^Is_EMod:false}', "");
-    Expect(0, 127999, '\p{Is_EMod:false}', "");
-    Expect(1, 127999, '\p{^Is_EMod:false}', "");
-    Expect(1, 127999, '\P{Is_EMod:false}', "");
-    Expect(0, 127999, '\P{^Is_EMod:false}', "");
-    Expect(1, 128000, '\p{Is_EMod=	 false}', "");
-    Expect(0, 128000, '\p{^Is_EMod=	 false}', "");
-    Expect(0, 128000, '\P{Is_EMod=	 false}', "");
-    Expect(1, 128000, '\P{^Is_EMod=	 false}', "");
-    Expect(0, 127999, '\p{Is_EMod=	 false}', "");
-    Expect(1, 127999, '\p{^Is_EMod=	 false}', "");
-    Expect(1, 127999, '\P{Is_EMod=	 false}', "");
-    Expect(0, 127999, '\P{^Is_EMod=	 false}', "");
-    Error('\p{Emoji_Modifier:_-YES:=}');
-    Error('\P{Emoji_Modifier:_-YES:=}');
+    Expect(1, 128000, '\p{Is_Emoji_Modifier=-F}', "");
+    Expect(0, 128000, '\p{^Is_Emoji_Modifier=-F}', "");
+    Expect(0, 128000, '\P{Is_Emoji_Modifier=-F}', "");
+    Expect(1, 128000, '\P{^Is_Emoji_Modifier=-F}', "");
+    Expect(0, 127999, '\p{Is_Emoji_Modifier=-F}', "");
+    Expect(1, 127999, '\p{^Is_Emoji_Modifier=-F}', "");
+    Expect(1, 127999, '\P{Is_Emoji_Modifier=-F}', "");
+    Expect(0, 127999, '\P{^Is_Emoji_Modifier=-F}', "");
+    Error('\p{Is_EMod= false:=}');
+    Error('\P{Is_EMod= false:=}');
+    Expect(1, 128000, '\p{Is_EMod=false}', "");
+    Expect(0, 128000, '\p{^Is_EMod=false}', "");
+    Expect(0, 128000, '\P{Is_EMod=false}', "");
+    Expect(1, 128000, '\P{^Is_EMod=false}', "");
+    Expect(0, 127999, '\p{Is_EMod=false}', "");
+    Expect(1, 127999, '\p{^Is_EMod=false}', "");
+    Expect(1, 127999, '\P{Is_EMod=false}', "");
+    Expect(0, 127999, '\P{^Is_EMod=false}', "");
+    Expect(1, 128000, '\p{Is_EMod=		false}', "");
+    Expect(0, 128000, '\p{^Is_EMod=		false}', "");
+    Expect(0, 128000, '\P{Is_EMod=		false}', "");
+    Expect(1, 128000, '\P{^Is_EMod=		false}', "");
+    Expect(0, 127999, '\p{Is_EMod=		false}', "");
+    Expect(1, 127999, '\p{^Is_EMod=		false}', "");
+    Expect(1, 127999, '\P{Is_EMod=		false}', "");
+    Expect(0, 127999, '\P{^Is_EMod=		false}', "");
+    Error('\p{Emoji_Modifier=_:=Yes}');
+    Error('\P{Emoji_Modifier=_:=Yes}');
     Expect(1, 127999, '\p{Emoji_Modifier=:\AYes\z:}', "");;
     Expect(0, 128000, '\p{Emoji_Modifier=:\AYes\z:}', "");;
-    Expect(1, 127999, '\p{Emoji_Modifier=yes}', "");
-    Expect(0, 127999, '\p{^Emoji_Modifier=yes}', "");
-    Expect(0, 127999, '\P{Emoji_Modifier=yes}', "");
-    Expect(1, 127999, '\P{^Emoji_Modifier=yes}', "");
-    Expect(0, 128000, '\p{Emoji_Modifier=yes}', "");
-    Expect(1, 128000, '\p{^Emoji_Modifier=yes}', "");
-    Expect(1, 128000, '\P{Emoji_Modifier=yes}', "");
-    Expect(0, 128000, '\P{^Emoji_Modifier=yes}', "");
+    Expect(1, 127999, '\p{Emoji_Modifier:	yes}', "");
+    Expect(0, 127999, '\p{^Emoji_Modifier:	yes}', "");
+    Expect(0, 127999, '\P{Emoji_Modifier:	yes}', "");
+    Expect(1, 127999, '\P{^Emoji_Modifier:	yes}', "");
+    Expect(0, 128000, '\p{Emoji_Modifier:	yes}', "");
+    Expect(1, 128000, '\p{^Emoji_Modifier:	yes}', "");
+    Expect(1, 128000, '\P{Emoji_Modifier:	yes}', "");
+    Expect(0, 128000, '\P{^Emoji_Modifier:	yes}', "");
     Expect(1, 127999, '\p{Emoji_Modifier=:\Ayes\z:}', "");;
     Expect(0, 128000, '\p{Emoji_Modifier=:\Ayes\z:}', "");;
-    Expect(1, 127999, '\p{Emoji_Modifier=_Yes}', "");
-    Expect(0, 127999, '\p{^Emoji_Modifier=_Yes}', "");
-    Expect(0, 127999, '\P{Emoji_Modifier=_Yes}', "");
-    Expect(1, 127999, '\P{^Emoji_Modifier=_Yes}', "");
-    Expect(0, 128000, '\p{Emoji_Modifier=_Yes}', "");
-    Expect(1, 128000, '\p{^Emoji_Modifier=_Yes}', "");
-    Expect(1, 128000, '\P{Emoji_Modifier=_Yes}', "");
-    Expect(0, 128000, '\P{^Emoji_Modifier=_Yes}', "");
-    Error('\p{EMod=-Y:=}');
-    Error('\P{EMod=-Y:=}');
+    Expect(1, 127999, '\p{Emoji_Modifier=-_yes}', "");
+    Expect(0, 127999, '\p{^Emoji_Modifier=-_yes}', "");
+    Expect(0, 127999, '\P{Emoji_Modifier=-_yes}', "");
+    Expect(1, 127999, '\P{^Emoji_Modifier=-_yes}', "");
+    Expect(0, 128000, '\p{Emoji_Modifier=-_yes}', "");
+    Expect(1, 128000, '\p{^Emoji_Modifier=-_yes}', "");
+    Expect(1, 128000, '\P{Emoji_Modifier=-_yes}', "");
+    Expect(0, 128000, '\P{^Emoji_Modifier=-_yes}', "");
+    Error('\p{EMod=- y:=}');
+    Error('\P{EMod=- y:=}');
     Expect(1, 127999, '\p{EMod=:\AY\z:}', "");;
     Expect(0, 128000, '\p{EMod=:\AY\z:}', "");;
     Expect(1, 127999, '\p{EMod=y}', "");
@@ -38083,16 +38659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 128000, '\P{^EMod=y}', "");
     Expect(1, 127999, '\p{EMod=:\Ay\z:}', "");;
     Expect(0, 128000, '\p{EMod=:\Ay\z:}', "");;
-    Expect(1, 127999, '\p{EMod=-_Y}', "");
-    Expect(0, 127999, '\p{^EMod=-_Y}', "");
-    Expect(0, 127999, '\P{EMod=-_Y}', "");
-    Expect(1, 127999, '\P{^EMod=-_Y}', "");
-    Expect(0, 128000, '\p{EMod=-_Y}', "");
-    Expect(1, 128000, '\p{^EMod=-_Y}', "");
-    Expect(1, 128000, '\P{EMod=-_Y}', "");
-    Expect(0, 128000, '\P{^EMod=-_Y}', "");
-    Error('\p{Is_Emoji_Modifier=:= _T}');
-    Error('\P{Is_Emoji_Modifier=:= _T}');
+    Expect(1, 127999, '\p{EMod=--y}', "");
+    Expect(0, 127999, '\p{^EMod=--y}', "");
+    Expect(0, 127999, '\P{EMod=--y}', "");
+    Expect(1, 127999, '\P{^EMod=--y}', "");
+    Expect(0, 128000, '\p{EMod=--y}', "");
+    Expect(1, 128000, '\p{^EMod=--y}', "");
+    Expect(1, 128000, '\P{EMod=--y}', "");
+    Expect(0, 128000, '\P{^EMod=--y}', "");
+    Error('\p{Is_Emoji_Modifier=-T:=}');
+    Error('\P{Is_Emoji_Modifier=-T:=}');
     Expect(1, 127999, '\p{Is_Emoji_Modifier=t}', "");
     Expect(0, 127999, '\p{^Is_Emoji_Modifier=t}', "");
     Expect(0, 127999, '\P{Is_Emoji_Modifier=t}', "");
@@ -38101,16 +38677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128000, '\p{^Is_Emoji_Modifier=t}', "");
     Expect(1, 128000, '\P{Is_Emoji_Modifier=t}', "");
     Expect(0, 128000, '\P{^Is_Emoji_Modifier=t}', "");
-    Expect(1, 127999, '\p{Is_Emoji_Modifier=--T}', "");
-    Expect(0, 127999, '\p{^Is_Emoji_Modifier=--T}', "");
-    Expect(0, 127999, '\P{Is_Emoji_Modifier=--T}', "");
-    Expect(1, 127999, '\P{^Is_Emoji_Modifier=--T}', "");
-    Expect(0, 128000, '\p{Is_Emoji_Modifier=--T}', "");
-    Expect(1, 128000, '\p{^Is_Emoji_Modifier=--T}', "");
-    Expect(1, 128000, '\P{Is_Emoji_Modifier=--T}', "");
-    Expect(0, 128000, '\P{^Is_Emoji_Modifier=--T}', "");
-    Error('\p{Is_EMod=/a/ -true}');
-    Error('\P{Is_EMod=/a/ -true}');
+    Expect(1, 127999, '\p{Is_Emoji_Modifier= 	T}', "");
+    Expect(0, 127999, '\p{^Is_Emoji_Modifier= 	T}', "");
+    Expect(0, 127999, '\P{Is_Emoji_Modifier= 	T}', "");
+    Expect(1, 127999, '\P{^Is_Emoji_Modifier= 	T}', "");
+    Expect(0, 128000, '\p{Is_Emoji_Modifier= 	T}', "");
+    Expect(1, 128000, '\p{^Is_Emoji_Modifier= 	T}', "");
+    Expect(1, 128000, '\P{Is_Emoji_Modifier= 	T}', "");
+    Expect(0, 128000, '\P{^Is_Emoji_Modifier= 	T}', "");
+    Error('\p{Is_EMod=	/a/True}');
+    Error('\P{Is_EMod=	/a/True}');
     Expect(1, 127999, '\p{Is_EMod=true}', "");
     Expect(0, 127999, '\p{^Is_EMod=true}', "");
     Expect(0, 127999, '\P{Is_EMod=true}', "");
@@ -38119,362 +38695,362 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 128000, '\p{^Is_EMod=true}', "");
     Expect(1, 128000, '\P{Is_EMod=true}', "");
     Expect(0, 128000, '\P{^Is_EMod=true}', "");
-    Expect(1, 127999, '\p{Is_EMod=_	TRUE}', "");
-    Expect(0, 127999, '\p{^Is_EMod=_	TRUE}', "");
-    Expect(0, 127999, '\P{Is_EMod=_	TRUE}', "");
-    Expect(1, 127999, '\P{^Is_EMod=_	TRUE}', "");
-    Expect(0, 128000, '\p{Is_EMod=_	TRUE}', "");
-    Expect(1, 128000, '\p{^Is_EMod=_	TRUE}', "");
-    Expect(1, 128000, '\P{Is_EMod=_	TRUE}', "");
-    Expect(0, 128000, '\P{^Is_EMod=_	TRUE}', "");
-    Error('\p{Emoji=:=No}');
-    Error('\P{Emoji=:=No}');
-    Expect(1, 129783, '\p{Emoji=:\ANo\z:}', "");;
-    Expect(0, 129782, '\p{Emoji=:\ANo\z:}', "");;
-    Expect(1, 129783, '\p{Emoji=no}', "");
-    Expect(0, 129783, '\p{^Emoji=no}', "");
-    Expect(0, 129783, '\P{Emoji=no}', "");
-    Expect(1, 129783, '\P{^Emoji=no}', "");
-    Expect(0, 129782, '\p{Emoji=no}', "");
-    Expect(1, 129782, '\p{^Emoji=no}', "");
-    Expect(1, 129782, '\P{Emoji=no}', "");
-    Expect(0, 129782, '\P{^Emoji=no}', "");
-    Expect(1, 129783, '\p{Emoji=:\Ano\z:}', "");;
-    Expect(0, 129782, '\p{Emoji=:\Ano\z:}', "");;
-    Expect(1, 129783, '\p{Emoji= no}', "");
-    Expect(0, 129783, '\p{^Emoji= no}', "");
-    Expect(0, 129783, '\P{Emoji= no}', "");
-    Expect(1, 129783, '\P{^Emoji= no}', "");
-    Expect(0, 129782, '\p{Emoji= no}', "");
-    Expect(1, 129782, '\p{^Emoji= no}', "");
-    Expect(1, 129782, '\P{Emoji= no}', "");
-    Expect(0, 129782, '\P{^Emoji= no}', "");
-    Error('\p{Is_Emoji= n/a/}');
-    Error('\P{Is_Emoji= n/a/}');
-    Expect(1, 129783, '\p{Is_Emoji:n}', "");
-    Expect(0, 129783, '\p{^Is_Emoji:n}', "");
-    Expect(0, 129783, '\P{Is_Emoji:n}', "");
-    Expect(1, 129783, '\P{^Is_Emoji:n}', "");
-    Expect(0, 129782, '\p{Is_Emoji:n}', "");
-    Expect(1, 129782, '\p{^Is_Emoji:n}', "");
-    Expect(1, 129782, '\P{Is_Emoji:n}', "");
-    Expect(0, 129782, '\P{^Is_Emoji:n}', "");
-    Expect(1, 129783, '\p{Is_Emoji=_	N}', "");
-    Expect(0, 129783, '\p{^Is_Emoji=_	N}', "");
-    Expect(0, 129783, '\P{Is_Emoji=_	N}', "");
-    Expect(1, 129783, '\P{^Is_Emoji=_	N}', "");
-    Expect(0, 129782, '\p{Is_Emoji=_	N}', "");
-    Expect(1, 129782, '\p{^Is_Emoji=_	N}', "");
-    Expect(1, 129782, '\P{Is_Emoji=_	N}', "");
-    Expect(0, 129782, '\P{^Is_Emoji=_	N}', "");
-    Error('\p{Emoji=-_f/a/}');
-    Error('\P{Emoji=-_f/a/}');
-    Expect(1, 129783, '\p{Emoji=:\AF\z:}', "");;
-    Expect(0, 129782, '\p{Emoji=:\AF\z:}', "");;
-    Expect(1, 129783, '\p{Emoji=f}', "");
-    Expect(0, 129783, '\p{^Emoji=f}', "");
-    Expect(0, 129783, '\P{Emoji=f}', "");
-    Expect(1, 129783, '\P{^Emoji=f}', "");
-    Expect(0, 129782, '\p{Emoji=f}', "");
-    Expect(1, 129782, '\p{^Emoji=f}', "");
-    Expect(1, 129782, '\P{Emoji=f}', "");
-    Expect(0, 129782, '\P{^Emoji=f}', "");
-    Expect(1, 129783, '\p{Emoji=:\Af\z:}', "");;
-    Expect(0, 129782, '\p{Emoji=:\Af\z:}', "");;
-    Expect(1, 129783, '\p{Emoji=	-F}', "");
-    Expect(0, 129783, '\p{^Emoji=	-F}', "");
-    Expect(0, 129783, '\P{Emoji=	-F}', "");
-    Expect(1, 129783, '\P{^Emoji=	-F}', "");
-    Expect(0, 129782, '\p{Emoji=	-F}', "");
-    Expect(1, 129782, '\p{^Emoji=	-F}', "");
-    Expect(1, 129782, '\P{Emoji=	-F}', "");
-    Expect(0, 129782, '\P{^Emoji=	-F}', "");
-    Error('\p{Is_Emoji=  false/a/}');
-    Error('\P{Is_Emoji=  false/a/}');
-    Expect(1, 129783, '\p{Is_Emoji=false}', "");
-    Expect(0, 129783, '\p{^Is_Emoji=false}', "");
-    Expect(0, 129783, '\P{Is_Emoji=false}', "");
-    Expect(1, 129783, '\P{^Is_Emoji=false}', "");
-    Expect(0, 129782, '\p{Is_Emoji=false}', "");
-    Expect(1, 129782, '\p{^Is_Emoji=false}', "");
-    Expect(1, 129782, '\P{Is_Emoji=false}', "");
-    Expect(0, 129782, '\P{^Is_Emoji=false}', "");
-    Expect(1, 129783, '\p{Is_Emoji=	_false}', "");
-    Expect(0, 129783, '\p{^Is_Emoji=	_false}', "");
-    Expect(0, 129783, '\P{Is_Emoji=	_false}', "");
-    Expect(1, 129783, '\P{^Is_Emoji=	_false}', "");
-    Expect(0, 129782, '\p{Is_Emoji=	_false}', "");
-    Expect(1, 129782, '\p{^Is_Emoji=	_false}', "");
-    Expect(1, 129782, '\P{Is_Emoji=	_false}', "");
-    Expect(0, 129782, '\P{^Is_Emoji=	_false}', "");
-    Error('\p{Emoji=:= -YES}');
-    Error('\P{Emoji=:= -YES}');
-    Expect(1, 129782, '\p{Emoji=:\AYes\z:}', "");;
-    Expect(0, 129783, '\p{Emoji=:\AYes\z:}', "");;
-    Expect(1, 129782, '\p{Emoji=yes}', "");
-    Expect(0, 129782, '\p{^Emoji=yes}', "");
-    Expect(0, 129782, '\P{Emoji=yes}', "");
-    Expect(1, 129782, '\P{^Emoji=yes}', "");
-    Expect(0, 129783, '\p{Emoji=yes}', "");
-    Expect(1, 129783, '\p{^Emoji=yes}', "");
-    Expect(1, 129783, '\P{Emoji=yes}', "");
-    Expect(0, 129783, '\P{^Emoji=yes}', "");
-    Expect(1, 129782, '\p{Emoji=:\Ayes\z:}', "");;
-    Expect(0, 129783, '\p{Emoji=:\Ayes\z:}', "");;
-    Expect(1, 129782, '\p{Emoji=  Yes}', "");
-    Expect(0, 129782, '\p{^Emoji=  Yes}', "");
-    Expect(0, 129782, '\P{Emoji=  Yes}', "");
-    Expect(1, 129782, '\P{^Emoji=  Yes}', "");
-    Expect(0, 129783, '\p{Emoji=  Yes}', "");
-    Expect(1, 129783, '\p{^Emoji=  Yes}', "");
-    Expect(1, 129783, '\P{Emoji=  Yes}', "");
-    Expect(0, 129783, '\P{^Emoji=  Yes}', "");
-    Error('\p{Is_Emoji=/a/ -Y}');
-    Error('\P{Is_Emoji=/a/ -Y}');
-    Expect(1, 129782, '\p{Is_Emoji=y}', "");
-    Expect(0, 129782, '\p{^Is_Emoji=y}', "");
-    Expect(0, 129782, '\P{Is_Emoji=y}', "");
-    Expect(1, 129782, '\P{^Is_Emoji=y}', "");
-    Expect(0, 129783, '\p{Is_Emoji=y}', "");
-    Expect(1, 129783, '\p{^Is_Emoji=y}', "");
-    Expect(1, 129783, '\P{Is_Emoji=y}', "");
-    Expect(0, 129783, '\P{^Is_Emoji=y}', "");
-    Expect(1, 129782, '\p{Is_Emoji=_y}', "");
-    Expect(0, 129782, '\p{^Is_Emoji=_y}', "");
-    Expect(0, 129782, '\P{Is_Emoji=_y}', "");
-    Expect(1, 129782, '\P{^Is_Emoji=_y}', "");
-    Expect(0, 129783, '\p{Is_Emoji=_y}', "");
-    Expect(1, 129783, '\p{^Is_Emoji=_y}', "");
-    Expect(1, 129783, '\P{Is_Emoji=_y}', "");
-    Expect(0, 129783, '\P{^Is_Emoji=_y}', "");
-    Error('\p{Emoji=	t:=}');
-    Error('\P{Emoji=	t:=}');
-    Expect(1, 129782, '\p{Emoji=:\AT\z:}', "");;
-    Expect(0, 129783, '\p{Emoji=:\AT\z:}', "");;
-    Expect(1, 129782, '\p{Emoji=t}', "");
-    Expect(0, 129782, '\p{^Emoji=t}', "");
-    Expect(0, 129782, '\P{Emoji=t}', "");
-    Expect(1, 129782, '\P{^Emoji=t}', "");
-    Expect(0, 129783, '\p{Emoji=t}', "");
-    Expect(1, 129783, '\p{^Emoji=t}', "");
-    Expect(1, 129783, '\P{Emoji=t}', "");
-    Expect(0, 129783, '\P{^Emoji=t}', "");
-    Expect(1, 129782, '\p{Emoji=:\At\z:}', "");;
-    Expect(0, 129783, '\p{Emoji=:\At\z:}', "");;
-    Expect(1, 129782, '\p{Emoji=--T}', "");
-    Expect(0, 129782, '\p{^Emoji=--T}', "");
-    Expect(0, 129782, '\P{Emoji=--T}', "");
-    Expect(1, 129782, '\P{^Emoji=--T}', "");
-    Expect(0, 129783, '\p{Emoji=--T}', "");
-    Expect(1, 129783, '\p{^Emoji=--T}', "");
-    Expect(1, 129783, '\P{Emoji=--T}', "");
-    Expect(0, 129783, '\P{^Emoji=--T}', "");
-    Error('\p{Is_Emoji= :=True}');
-    Error('\P{Is_Emoji= :=True}');
-    Expect(1, 129782, '\p{Is_Emoji=true}', "");
-    Expect(0, 129782, '\p{^Is_Emoji=true}', "");
-    Expect(0, 129782, '\P{Is_Emoji=true}', "");
-    Expect(1, 129782, '\P{^Is_Emoji=true}', "");
-    Expect(0, 129783, '\p{Is_Emoji=true}', "");
-    Expect(1, 129783, '\p{^Is_Emoji=true}', "");
-    Expect(1, 129783, '\P{Is_Emoji=true}', "");
-    Expect(0, 129783, '\P{^Is_Emoji=true}', "");
-    Expect(1, 129782, '\p{Is_Emoji=__True}', "");
-    Expect(0, 129782, '\p{^Is_Emoji=__True}', "");
-    Expect(0, 129782, '\P{Is_Emoji=__True}', "");
-    Expect(1, 129782, '\P{^Is_Emoji=__True}', "");
-    Expect(0, 129783, '\p{Is_Emoji=__True}', "");
-    Expect(1, 129783, '\p{^Is_Emoji=__True}', "");
-    Expect(1, 129783, '\P{Is_Emoji=__True}', "");
-    Expect(0, 129783, '\P{^Is_Emoji=__True}', "");
-    Error('\p{Emoji_Presentation=_	no/a/}');
-    Error('\P{Emoji_Presentation=_	no/a/}');
-    Expect(1, 129783, '\p{Emoji_Presentation=:\ANo\z:}', "");;
-    Expect(0, 129782, '\p{Emoji_Presentation=:\ANo\z:}', "");;
-    Expect(1, 129783, '\p{Emoji_Presentation=no}', "");
-    Expect(0, 129783, '\p{^Emoji_Presentation=no}', "");
-    Expect(0, 129783, '\P{Emoji_Presentation=no}', "");
-    Expect(1, 129783, '\P{^Emoji_Presentation=no}', "");
-    Expect(0, 129782, '\p{Emoji_Presentation=no}', "");
-    Expect(1, 129782, '\p{^Emoji_Presentation=no}', "");
-    Expect(1, 129782, '\P{Emoji_Presentation=no}', "");
-    Expect(0, 129782, '\P{^Emoji_Presentation=no}', "");
-    Expect(1, 129783, '\p{Emoji_Presentation=:\Ano\z:}', "");;
-    Expect(0, 129782, '\p{Emoji_Presentation=:\Ano\z:}', "");;
-    Expect(1, 129783, '\p{Emoji_Presentation=_ NO}', "");
-    Expect(0, 129783, '\p{^Emoji_Presentation=_ NO}', "");
-    Expect(0, 129783, '\P{Emoji_Presentation=_ NO}', "");
-    Expect(1, 129783, '\P{^Emoji_Presentation=_ NO}', "");
-    Expect(0, 129782, '\p{Emoji_Presentation=_ NO}', "");
-    Expect(1, 129782, '\p{^Emoji_Presentation=_ NO}', "");
-    Expect(1, 129782, '\P{Emoji_Presentation=_ NO}', "");
-    Expect(0, 129782, '\P{^Emoji_Presentation=_ NO}', "");
+    Expect(1, 127999, '\p{Is_EMod=	 True}', "");
+    Expect(0, 127999, '\p{^Is_EMod=	 True}', "");
+    Expect(0, 127999, '\P{Is_EMod=	 True}', "");
+    Expect(1, 127999, '\P{^Is_EMod=	 True}', "");
+    Expect(0, 128000, '\p{Is_EMod=	 True}', "");
+    Expect(1, 128000, '\p{^Is_EMod=	 True}', "");
+    Expect(1, 128000, '\P{Is_EMod=	 True}', "");
+    Expect(0, 128000, '\P{^Is_EMod=	 True}', "");
+    Error('\p{Emoji=	/a/NO}');
+    Error('\P{Emoji=	/a/NO}');
+    Expect(1, 129785, '\p{Emoji=:\ANo\z:}', "");;
+    Expect(0, 129784, '\p{Emoji=:\ANo\z:}', "");;
+    Expect(1, 129785, '\p{Emoji:	no}', "");
+    Expect(0, 129785, '\p{^Emoji:	no}', "");
+    Expect(0, 129785, '\P{Emoji:	no}', "");
+    Expect(1, 129785, '\P{^Emoji:	no}', "");
+    Expect(0, 129784, '\p{Emoji:	no}', "");
+    Expect(1, 129784, '\p{^Emoji:	no}', "");
+    Expect(1, 129784, '\P{Emoji:	no}', "");
+    Expect(0, 129784, '\P{^Emoji:	no}', "");
+    Expect(1, 129785, '\p{Emoji=:\Ano\z:}', "");;
+    Expect(0, 129784, '\p{Emoji=:\Ano\z:}', "");;
+    Expect(1, 129785, '\p{Emoji=-	No}', "");
+    Expect(0, 129785, '\p{^Emoji=-	No}', "");
+    Expect(0, 129785, '\P{Emoji=-	No}', "");
+    Expect(1, 129785, '\P{^Emoji=-	No}', "");
+    Expect(0, 129784, '\p{Emoji=-	No}', "");
+    Expect(1, 129784, '\p{^Emoji=-	No}', "");
+    Expect(1, 129784, '\P{Emoji=-	No}', "");
+    Expect(0, 129784, '\P{^Emoji=-	No}', "");
+    Error('\p{Is_Emoji:/a/	-N}');
+    Error('\P{Is_Emoji:/a/	-N}');
+    Expect(1, 129785, '\p{Is_Emoji=n}', "");
+    Expect(0, 129785, '\p{^Is_Emoji=n}', "");
+    Expect(0, 129785, '\P{Is_Emoji=n}', "");
+    Expect(1, 129785, '\P{^Is_Emoji=n}', "");
+    Expect(0, 129784, '\p{Is_Emoji=n}', "");
+    Expect(1, 129784, '\p{^Is_Emoji=n}', "");
+    Expect(1, 129784, '\P{Is_Emoji=n}', "");
+    Expect(0, 129784, '\P{^Is_Emoji=n}', "");
+    Expect(1, 129785, '\p{Is_Emoji:_ N}', "");
+    Expect(0, 129785, '\p{^Is_Emoji:_ N}', "");
+    Expect(0, 129785, '\P{Is_Emoji:_ N}', "");
+    Expect(1, 129785, '\P{^Is_Emoji:_ N}', "");
+    Expect(0, 129784, '\p{Is_Emoji:_ N}', "");
+    Expect(1, 129784, '\p{^Is_Emoji:_ N}', "");
+    Expect(1, 129784, '\P{Is_Emoji:_ N}', "");
+    Expect(0, 129784, '\P{^Is_Emoji:_ N}', "");
+    Error('\p{Emoji:    /a/f}');
+    Error('\P{Emoji:    /a/f}');
+    Expect(1, 129785, '\p{Emoji=:\AF\z:}', "");;
+    Expect(0, 129784, '\p{Emoji=:\AF\z:}', "");;
+    Expect(1, 129785, '\p{Emoji=f}', "");
+    Expect(0, 129785, '\p{^Emoji=f}', "");
+    Expect(0, 129785, '\P{Emoji=f}', "");
+    Expect(1, 129785, '\P{^Emoji=f}', "");
+    Expect(0, 129784, '\p{Emoji=f}', "");
+    Expect(1, 129784, '\p{^Emoji=f}', "");
+    Expect(1, 129784, '\P{Emoji=f}', "");
+    Expect(0, 129784, '\P{^Emoji=f}', "");
+    Expect(1, 129785, '\p{Emoji=:\Af\z:}', "");;
+    Expect(0, 129784, '\p{Emoji=:\Af\z:}', "");;
+    Expect(1, 129785, '\p{Emoji= -F}', "");
+    Expect(0, 129785, '\p{^Emoji= -F}', "");
+    Expect(0, 129785, '\P{Emoji= -F}', "");
+    Expect(1, 129785, '\P{^Emoji= -F}', "");
+    Expect(0, 129784, '\p{Emoji= -F}', "");
+    Expect(1, 129784, '\p{^Emoji= -F}', "");
+    Expect(1, 129784, '\P{Emoji= -F}', "");
+    Expect(0, 129784, '\P{^Emoji= -F}', "");
+    Error('\p{Is_Emoji: -:=False}');
+    Error('\P{Is_Emoji: -:=False}');
+    Expect(1, 129785, '\p{Is_Emoji=false}', "");
+    Expect(0, 129785, '\p{^Is_Emoji=false}', "");
+    Expect(0, 129785, '\P{Is_Emoji=false}', "");
+    Expect(1, 129785, '\P{^Is_Emoji=false}', "");
+    Expect(0, 129784, '\p{Is_Emoji=false}', "");
+    Expect(1, 129784, '\p{^Is_Emoji=false}', "");
+    Expect(1, 129784, '\P{Is_Emoji=false}', "");
+    Expect(0, 129784, '\P{^Is_Emoji=false}', "");
+    Expect(1, 129785, '\p{Is_Emoji=	 FALSE}', "");
+    Expect(0, 129785, '\p{^Is_Emoji=	 FALSE}', "");
+    Expect(0, 129785, '\P{Is_Emoji=	 FALSE}', "");
+    Expect(1, 129785, '\P{^Is_Emoji=	 FALSE}', "");
+    Expect(0, 129784, '\p{Is_Emoji=	 FALSE}', "");
+    Expect(1, 129784, '\p{^Is_Emoji=	 FALSE}', "");
+    Expect(1, 129784, '\P{Is_Emoji=	 FALSE}', "");
+    Expect(0, 129784, '\P{^Is_Emoji=	 FALSE}', "");
+    Error('\p{Emoji=_/a/yes}');
+    Error('\P{Emoji=_/a/yes}');
+    Expect(1, 129784, '\p{Emoji=:\AYes\z:}', "");;
+    Expect(0, 129785, '\p{Emoji=:\AYes\z:}', "");;
+    Expect(1, 129784, '\p{Emoji=yes}', "");
+    Expect(0, 129784, '\p{^Emoji=yes}', "");
+    Expect(0, 129784, '\P{Emoji=yes}', "");
+    Expect(1, 129784, '\P{^Emoji=yes}', "");
+    Expect(0, 129785, '\p{Emoji=yes}', "");
+    Expect(1, 129785, '\p{^Emoji=yes}', "");
+    Expect(1, 129785, '\P{Emoji=yes}', "");
+    Expect(0, 129785, '\P{^Emoji=yes}', "");
+    Expect(1, 129784, '\p{Emoji=:\Ayes\z:}', "");;
+    Expect(0, 129785, '\p{Emoji=:\Ayes\z:}', "");;
+    Expect(1, 129784, '\p{Emoji=_-Yes}', "");
+    Expect(0, 129784, '\p{^Emoji=_-Yes}', "");
+    Expect(0, 129784, '\P{Emoji=_-Yes}', "");
+    Expect(1, 129784, '\P{^Emoji=_-Yes}', "");
+    Expect(0, 129785, '\p{Emoji=_-Yes}', "");
+    Expect(1, 129785, '\p{^Emoji=_-Yes}', "");
+    Expect(1, 129785, '\P{Emoji=_-Yes}', "");
+    Expect(0, 129785, '\P{^Emoji=_-Yes}', "");
+    Error('\p{Is_Emoji=_/a/Y}');
+    Error('\P{Is_Emoji=_/a/Y}');
+    Expect(1, 129784, '\p{Is_Emoji=y}', "");
+    Expect(0, 129784, '\p{^Is_Emoji=y}', "");
+    Expect(0, 129784, '\P{Is_Emoji=y}', "");
+    Expect(1, 129784, '\P{^Is_Emoji=y}', "");
+    Expect(0, 129785, '\p{Is_Emoji=y}', "");
+    Expect(1, 129785, '\p{^Is_Emoji=y}', "");
+    Expect(1, 129785, '\P{Is_Emoji=y}', "");
+    Expect(0, 129785, '\P{^Is_Emoji=y}', "");
+    Expect(1, 129784, '\p{Is_Emoji=-_Y}', "");
+    Expect(0, 129784, '\p{^Is_Emoji=-_Y}', "");
+    Expect(0, 129784, '\P{Is_Emoji=-_Y}', "");
+    Expect(1, 129784, '\P{^Is_Emoji=-_Y}', "");
+    Expect(0, 129785, '\p{Is_Emoji=-_Y}', "");
+    Expect(1, 129785, '\p{^Is_Emoji=-_Y}', "");
+    Expect(1, 129785, '\P{Is_Emoji=-_Y}', "");
+    Expect(0, 129785, '\P{^Is_Emoji=-_Y}', "");
+    Error('\p{Emoji=_T:=}');
+    Error('\P{Emoji=_T:=}');
+    Expect(1, 129784, '\p{Emoji=:\AT\z:}', "");;
+    Expect(0, 129785, '\p{Emoji=:\AT\z:}', "");;
+    Expect(1, 129784, '\p{Emoji=t}', "");
+    Expect(0, 129784, '\p{^Emoji=t}', "");
+    Expect(0, 129784, '\P{Emoji=t}', "");
+    Expect(1, 129784, '\P{^Emoji=t}', "");
+    Expect(0, 129785, '\p{Emoji=t}', "");
+    Expect(1, 129785, '\p{^Emoji=t}', "");
+    Expect(1, 129785, '\P{Emoji=t}', "");
+    Expect(0, 129785, '\P{^Emoji=t}', "");
+    Expect(1, 129784, '\p{Emoji=:\At\z:}', "");;
+    Expect(0, 129785, '\p{Emoji=:\At\z:}', "");;
+    Expect(1, 129784, '\p{Emoji= T}', "");
+    Expect(0, 129784, '\p{^Emoji= T}', "");
+    Expect(0, 129784, '\P{Emoji= T}', "");
+    Expect(1, 129784, '\P{^Emoji= T}', "");
+    Expect(0, 129785, '\p{Emoji= T}', "");
+    Expect(1, 129785, '\p{^Emoji= T}', "");
+    Expect(1, 129785, '\P{Emoji= T}', "");
+    Expect(0, 129785, '\P{^Emoji= T}', "");
+    Error('\p{Is_Emoji=-:=True}');
+    Error('\P{Is_Emoji=-:=True}');
+    Expect(1, 129784, '\p{Is_Emoji=true}', "");
+    Expect(0, 129784, '\p{^Is_Emoji=true}', "");
+    Expect(0, 129784, '\P{Is_Emoji=true}', "");
+    Expect(1, 129784, '\P{^Is_Emoji=true}', "");
+    Expect(0, 129785, '\p{Is_Emoji=true}', "");
+    Expect(1, 129785, '\p{^Is_Emoji=true}', "");
+    Expect(1, 129785, '\P{Is_Emoji=true}', "");
+    Expect(0, 129785, '\P{^Is_Emoji=true}', "");
+    Expect(1, 129784, '\p{Is_Emoji:	- TRUE}', "");
+    Expect(0, 129784, '\p{^Is_Emoji:	- TRUE}', "");
+    Expect(0, 129784, '\P{Is_Emoji:	- TRUE}', "");
+    Expect(1, 129784, '\P{^Is_Emoji:	- TRUE}', "");
+    Expect(0, 129785, '\p{Is_Emoji:	- TRUE}', "");
+    Expect(1, 129785, '\p{^Is_Emoji:	- TRUE}', "");
+    Expect(1, 129785, '\P{Is_Emoji:	- TRUE}', "");
+    Expect(0, 129785, '\P{^Is_Emoji:	- TRUE}', "");
+    Error('\p{Emoji_Presentation=/a/NO}');
+    Error('\P{Emoji_Presentation=/a/NO}');
+    Expect(1, 129785, '\p{Emoji_Presentation=:\ANo\z:}', "");;
+    Expect(0, 129784, '\p{Emoji_Presentation=:\ANo\z:}', "");;
+    Expect(1, 129785, '\p{Emoji_Presentation=no}', "");
+    Expect(0, 129785, '\p{^Emoji_Presentation=no}', "");
+    Expect(0, 129785, '\P{Emoji_Presentation=no}', "");
+    Expect(1, 129785, '\P{^Emoji_Presentation=no}', "");
+    Expect(0, 129784, '\p{Emoji_Presentation=no}', "");
+    Expect(1, 129784, '\p{^Emoji_Presentation=no}', "");
+    Expect(1, 129784, '\P{Emoji_Presentation=no}', "");
+    Expect(0, 129784, '\P{^Emoji_Presentation=no}', "");
+    Expect(1, 129785, '\p{Emoji_Presentation=:\Ano\z:}', "");;
+    Expect(0, 129784, '\p{Emoji_Presentation=:\Ano\z:}', "");;
+    Expect(1, 129785, '\p{Emoji_Presentation=_no}', "");
+    Expect(0, 129785, '\p{^Emoji_Presentation=_no}', "");
+    Expect(0, 129785, '\P{Emoji_Presentation=_no}', "");
+    Expect(1, 129785, '\P{^Emoji_Presentation=_no}', "");
+    Expect(0, 129784, '\p{Emoji_Presentation=_no}', "");
+    Expect(1, 129784, '\p{^Emoji_Presentation=_no}', "");
+    Expect(1, 129784, '\P{Emoji_Presentation=_no}', "");
+    Expect(0, 129784, '\P{^Emoji_Presentation=_no}', "");
     Error('\p{EPres= :=N}');
     Error('\P{EPres= :=N}');
-    Expect(1, 129783, '\p{EPres=:\AN\z:}', "");;
-    Expect(0, 129782, '\p{EPres=:\AN\z:}', "");;
-    Expect(1, 129783, '\p{EPres=n}', "");
-    Expect(0, 129783, '\p{^EPres=n}', "");
-    Expect(0, 129783, '\P{EPres=n}', "");
-    Expect(1, 129783, '\P{^EPres=n}', "");
-    Expect(0, 129782, '\p{EPres=n}', "");
-    Expect(1, 129782, '\p{^EPres=n}', "");
-    Expect(1, 129782, '\P{EPres=n}', "");
-    Expect(0, 129782, '\P{^EPres=n}', "");
-    Expect(1, 129783, '\p{EPres=:\An\z:}', "");;
-    Expect(0, 129782, '\p{EPres=:\An\z:}', "");;
-    Expect(1, 129783, '\p{EPres=_	N}', "");
-    Expect(0, 129783, '\p{^EPres=_	N}', "");
-    Expect(0, 129783, '\P{EPres=_	N}', "");
-    Expect(1, 129783, '\P{^EPres=_	N}', "");
-    Expect(0, 129782, '\p{EPres=_	N}', "");
-    Expect(1, 129782, '\p{^EPres=_	N}', "");
-    Expect(1, 129782, '\P{EPres=_	N}', "");
-    Expect(0, 129782, '\P{^EPres=_	N}', "");
-    Error('\p{Is_Emoji_Presentation=:=	_f}');
-    Error('\P{Is_Emoji_Presentation=:=	_f}');
-    Expect(1, 129783, '\p{Is_Emoji_Presentation=f}', "");
-    Expect(0, 129783, '\p{^Is_Emoji_Presentation=f}', "");
-    Expect(0, 129783, '\P{Is_Emoji_Presentation=f}', "");
-    Expect(1, 129783, '\P{^Is_Emoji_Presentation=f}', "");
-    Expect(0, 129782, '\p{Is_Emoji_Presentation=f}', "");
-    Expect(1, 129782, '\p{^Is_Emoji_Presentation=f}', "");
-    Expect(1, 129782, '\P{Is_Emoji_Presentation=f}', "");
-    Expect(0, 129782, '\P{^Is_Emoji_Presentation=f}', "");
-    Expect(1, 129783, '\p{Is_Emoji_Presentation=_F}', "");
-    Expect(0, 129783, '\p{^Is_Emoji_Presentation=_F}', "");
-    Expect(0, 129783, '\P{Is_Emoji_Presentation=_F}', "");
-    Expect(1, 129783, '\P{^Is_Emoji_Presentation=_F}', "");
-    Expect(0, 129782, '\p{Is_Emoji_Presentation=_F}', "");
-    Expect(1, 129782, '\p{^Is_Emoji_Presentation=_F}', "");
-    Expect(1, 129782, '\P{Is_Emoji_Presentation=_F}', "");
-    Expect(0, 129782, '\P{^Is_Emoji_Presentation=_F}', "");
-    Error('\p{Is_EPres=_-false/a/}');
-    Error('\P{Is_EPres=_-false/a/}');
-    Expect(1, 129783, '\p{Is_EPres=false}', "");
-    Expect(0, 129783, '\p{^Is_EPres=false}', "");
-    Expect(0, 129783, '\P{Is_EPres=false}', "");
-    Expect(1, 129783, '\P{^Is_EPres=false}', "");
-    Expect(0, 129782, '\p{Is_EPres=false}', "");
-    Expect(1, 129782, '\p{^Is_EPres=false}', "");
-    Expect(1, 129782, '\P{Is_EPres=false}', "");
-    Expect(0, 129782, '\P{^Is_EPres=false}', "");
-    Expect(1, 129783, '\p{Is_EPres=	_false}', "");
-    Expect(0, 129783, '\p{^Is_EPres=	_false}', "");
-    Expect(0, 129783, '\P{Is_EPres=	_false}', "");
-    Expect(1, 129783, '\P{^Is_EPres=	_false}', "");
-    Expect(0, 129782, '\p{Is_EPres=	_false}', "");
-    Expect(1, 129782, '\p{^Is_EPres=	_false}', "");
-    Expect(1, 129782, '\P{Is_EPres=	_false}', "");
-    Expect(0, 129782, '\P{^Is_EPres=	_false}', "");
-    Error('\p{Emoji_Presentation= /a/Yes}');
-    Error('\P{Emoji_Presentation= /a/Yes}');
-    Expect(1, 129782, '\p{Emoji_Presentation=:\AYes\z:}', "");;
-    Expect(0, 129783, '\p{Emoji_Presentation=:\AYes\z:}', "");;
-    Expect(1, 129782, '\p{Emoji_Presentation=yes}', "");
-    Expect(0, 129782, '\p{^Emoji_Presentation=yes}', "");
-    Expect(0, 129782, '\P{Emoji_Presentation=yes}', "");
-    Expect(1, 129782, '\P{^Emoji_Presentation=yes}', "");
-    Expect(0, 129783, '\p{Emoji_Presentation=yes}', "");
-    Expect(1, 129783, '\p{^Emoji_Presentation=yes}', "");
-    Expect(1, 129783, '\P{Emoji_Presentation=yes}', "");
-    Expect(0, 129783, '\P{^Emoji_Presentation=yes}', "");
-    Expect(1, 129782, '\p{Emoji_Presentation=:\Ayes\z:}', "");;
-    Expect(0, 129783, '\p{Emoji_Presentation=:\Ayes\z:}', "");;
-    Expect(1, 129782, '\p{Emoji_Presentation=_Yes}', "");
-    Expect(0, 129782, '\p{^Emoji_Presentation=_Yes}', "");
-    Expect(0, 129782, '\P{Emoji_Presentation=_Yes}', "");
-    Expect(1, 129782, '\P{^Emoji_Presentation=_Yes}', "");
-    Expect(0, 129783, '\p{Emoji_Presentation=_Yes}', "");
-    Expect(1, 129783, '\p{^Emoji_Presentation=_Yes}', "");
-    Expect(1, 129783, '\P{Emoji_Presentation=_Yes}', "");
-    Expect(0, 129783, '\P{^Emoji_Presentation=_Yes}', "");
-    Error('\p{EPres=/a/	_Y}');
-    Error('\P{EPres=/a/	_Y}');
-    Expect(1, 129782, '\p{EPres=:\AY\z:}', "");;
-    Expect(0, 129783, '\p{EPres=:\AY\z:}', "");;
-    Expect(1, 129782, '\p{EPres=y}', "");
-    Expect(0, 129782, '\p{^EPres=y}', "");
-    Expect(0, 129782, '\P{EPres=y}', "");
-    Expect(1, 129782, '\P{^EPres=y}', "");
-    Expect(0, 129783, '\p{EPres=y}', "");
-    Expect(1, 129783, '\p{^EPres=y}', "");
-    Expect(1, 129783, '\P{EPres=y}', "");
-    Expect(0, 129783, '\P{^EPres=y}', "");
-    Expect(1, 129782, '\p{EPres=:\Ay\z:}', "");;
-    Expect(0, 129783, '\p{EPres=:\Ay\z:}', "");;
-    Expect(1, 129782, '\p{EPres= 	Y}', "");
-    Expect(0, 129782, '\p{^EPres= 	Y}', "");
-    Expect(0, 129782, '\P{EPres= 	Y}', "");
-    Expect(1, 129782, '\P{^EPres= 	Y}', "");
-    Expect(0, 129783, '\p{EPres= 	Y}', "");
-    Expect(1, 129783, '\p{^EPres= 	Y}', "");
-    Expect(1, 129783, '\P{EPres= 	Y}', "");
-    Expect(0, 129783, '\P{^EPres= 	Y}', "");
-    Error('\p{Is_Emoji_Presentation=:=-T}');
-    Error('\P{Is_Emoji_Presentation=:=-T}');
-    Expect(1, 129782, '\p{Is_Emoji_Presentation=t}', "");
-    Expect(0, 129782, '\p{^Is_Emoji_Presentation=t}', "");
-    Expect(0, 129782, '\P{Is_Emoji_Presentation=t}', "");
-    Expect(1, 129782, '\P{^Is_Emoji_Presentation=t}', "");
-    Expect(0, 129783, '\p{Is_Emoji_Presentation=t}', "");
-    Expect(1, 129783, '\p{^Is_Emoji_Presentation=t}', "");
-    Expect(1, 129783, '\P{Is_Emoji_Presentation=t}', "");
-    Expect(0, 129783, '\P{^Is_Emoji_Presentation=t}', "");
-    Expect(1, 129782, '\p{Is_Emoji_Presentation=--t}', "");
-    Expect(0, 129782, '\p{^Is_Emoji_Presentation=--t}', "");
-    Expect(0, 129782, '\P{Is_Emoji_Presentation=--t}', "");
-    Expect(1, 129782, '\P{^Is_Emoji_Presentation=--t}', "");
-    Expect(0, 129783, '\p{Is_Emoji_Presentation=--t}', "");
-    Expect(1, 129783, '\p{^Is_Emoji_Presentation=--t}', "");
-    Expect(1, 129783, '\P{Is_Emoji_Presentation=--t}', "");
-    Expect(0, 129783, '\P{^Is_Emoji_Presentation=--t}', "");
-    Error('\p{Is_EPres= /a/True}');
-    Error('\P{Is_EPres= /a/True}');
-    Expect(1, 129782, '\p{Is_EPres=true}', "");
-    Expect(0, 129782, '\p{^Is_EPres=true}', "");
-    Expect(0, 129782, '\P{Is_EPres=true}', "");
-    Expect(1, 129782, '\P{^Is_EPres=true}', "");
-    Expect(0, 129783, '\p{Is_EPres=true}', "");
-    Expect(1, 129783, '\p{^Is_EPres=true}', "");
-    Expect(1, 129783, '\P{Is_EPres=true}', "");
-    Expect(0, 129783, '\P{^Is_EPres=true}', "");
-    Expect(1, 129782, '\p{Is_EPres=_	true}', "");
-    Expect(0, 129782, '\p{^Is_EPres=_	true}', "");
-    Expect(0, 129782, '\P{Is_EPres=_	true}', "");
-    Expect(1, 129782, '\P{^Is_EPres=_	true}', "");
-    Expect(0, 129783, '\p{Is_EPres=_	true}', "");
-    Expect(1, 129783, '\p{^Is_EPres=_	true}', "");
-    Expect(1, 129783, '\P{Is_EPres=_	true}', "");
-    Expect(0, 129783, '\P{^Is_EPres=_	true}', "");
+    Expect(1, 129785, '\p{EPres=:\AN\z:}', "");;
+    Expect(0, 129784, '\p{EPres=:\AN\z:}', "");;
+    Expect(1, 129785, '\p{EPres=n}', "");
+    Expect(0, 129785, '\p{^EPres=n}', "");
+    Expect(0, 129785, '\P{EPres=n}', "");
+    Expect(1, 129785, '\P{^EPres=n}', "");
+    Expect(0, 129784, '\p{EPres=n}', "");
+    Expect(1, 129784, '\p{^EPres=n}', "");
+    Expect(1, 129784, '\P{EPres=n}', "");
+    Expect(0, 129784, '\P{^EPres=n}', "");
+    Expect(1, 129785, '\p{EPres=:\An\z:}', "");;
+    Expect(0, 129784, '\p{EPres=:\An\z:}', "");;
+    Expect(1, 129785, '\p{EPres= _n}', "");
+    Expect(0, 129785, '\p{^EPres= _n}', "");
+    Expect(0, 129785, '\P{EPres= _n}', "");
+    Expect(1, 129785, '\P{^EPres= _n}', "");
+    Expect(0, 129784, '\p{EPres= _n}', "");
+    Expect(1, 129784, '\p{^EPres= _n}', "");
+    Expect(1, 129784, '\P{EPres= _n}', "");
+    Expect(0, 129784, '\P{^EPres= _n}', "");
+    Error('\p{Is_Emoji_Presentation=:=	-F}');
+    Error('\P{Is_Emoji_Presentation=:=	-F}');
+    Expect(1, 129785, '\p{Is_Emoji_Presentation=f}', "");
+    Expect(0, 129785, '\p{^Is_Emoji_Presentation=f}', "");
+    Expect(0, 129785, '\P{Is_Emoji_Presentation=f}', "");
+    Expect(1, 129785, '\P{^Is_Emoji_Presentation=f}', "");
+    Expect(0, 129784, '\p{Is_Emoji_Presentation=f}', "");
+    Expect(1, 129784, '\p{^Is_Emoji_Presentation=f}', "");
+    Expect(1, 129784, '\P{Is_Emoji_Presentation=f}', "");
+    Expect(0, 129784, '\P{^Is_Emoji_Presentation=f}', "");
+    Expect(1, 129785, '\p{Is_Emoji_Presentation=	F}', "");
+    Expect(0, 129785, '\p{^Is_Emoji_Presentation=	F}', "");
+    Expect(0, 129785, '\P{Is_Emoji_Presentation=	F}', "");
+    Expect(1, 129785, '\P{^Is_Emoji_Presentation=	F}', "");
+    Expect(0, 129784, '\p{Is_Emoji_Presentation=	F}', "");
+    Expect(1, 129784, '\p{^Is_Emoji_Presentation=	F}', "");
+    Expect(1, 129784, '\P{Is_Emoji_Presentation=	F}', "");
+    Expect(0, 129784, '\P{^Is_Emoji_Presentation=	F}', "");
+    Error('\p{Is_EPres: :=	_false}');
+    Error('\P{Is_EPres: :=	_false}');
+    Expect(1, 129785, '\p{Is_EPres=false}', "");
+    Expect(0, 129785, '\p{^Is_EPres=false}', "");
+    Expect(0, 129785, '\P{Is_EPres=false}', "");
+    Expect(1, 129785, '\P{^Is_EPres=false}', "");
+    Expect(0, 129784, '\p{Is_EPres=false}', "");
+    Expect(1, 129784, '\p{^Is_EPres=false}', "");
+    Expect(1, 129784, '\P{Is_EPres=false}', "");
+    Expect(0, 129784, '\P{^Is_EPres=false}', "");
+    Expect(1, 129785, '\p{Is_EPres:   -False}', "");
+    Expect(0, 129785, '\p{^Is_EPres:   -False}', "");
+    Expect(0, 129785, '\P{Is_EPres:   -False}', "");
+    Expect(1, 129785, '\P{^Is_EPres:   -False}', "");
+    Expect(0, 129784, '\p{Is_EPres:   -False}', "");
+    Expect(1, 129784, '\p{^Is_EPres:   -False}', "");
+    Expect(1, 129784, '\P{Is_EPres:   -False}', "");
+    Expect(0, 129784, '\P{^Is_EPres:   -False}', "");
+    Error('\p{Emoji_Presentation=:=_yes}');
+    Error('\P{Emoji_Presentation=:=_yes}');
+    Expect(1, 129784, '\p{Emoji_Presentation=:\AYes\z:}', "");;
+    Expect(0, 129785, '\p{Emoji_Presentation=:\AYes\z:}', "");;
+    Expect(1, 129784, '\p{Emoji_Presentation=yes}', "");
+    Expect(0, 129784, '\p{^Emoji_Presentation=yes}', "");
+    Expect(0, 129784, '\P{Emoji_Presentation=yes}', "");
+    Expect(1, 129784, '\P{^Emoji_Presentation=yes}', "");
+    Expect(0, 129785, '\p{Emoji_Presentation=yes}', "");
+    Expect(1, 129785, '\p{^Emoji_Presentation=yes}', "");
+    Expect(1, 129785, '\P{Emoji_Presentation=yes}', "");
+    Expect(0, 129785, '\P{^Emoji_Presentation=yes}', "");
+    Expect(1, 129784, '\p{Emoji_Presentation=:\Ayes\z:}', "");;
+    Expect(0, 129785, '\p{Emoji_Presentation=:\Ayes\z:}', "");;
+    Expect(1, 129784, '\p{Emoji_Presentation=- Yes}', "");
+    Expect(0, 129784, '\p{^Emoji_Presentation=- Yes}', "");
+    Expect(0, 129784, '\P{Emoji_Presentation=- Yes}', "");
+    Expect(1, 129784, '\P{^Emoji_Presentation=- Yes}', "");
+    Expect(0, 129785, '\p{Emoji_Presentation=- Yes}', "");
+    Expect(1, 129785, '\p{^Emoji_Presentation=- Yes}', "");
+    Expect(1, 129785, '\P{Emoji_Presentation=- Yes}', "");
+    Expect(0, 129785, '\P{^Emoji_Presentation=- Yes}', "");
+    Error('\p{EPres=	_y/a/}');
+    Error('\P{EPres=	_y/a/}');
+    Expect(1, 129784, '\p{EPres=:\AY\z:}', "");;
+    Expect(0, 129785, '\p{EPres=:\AY\z:}', "");;
+    Expect(1, 129784, '\p{EPres=y}', "");
+    Expect(0, 129784, '\p{^EPres=y}', "");
+    Expect(0, 129784, '\P{EPres=y}', "");
+    Expect(1, 129784, '\P{^EPres=y}', "");
+    Expect(0, 129785, '\p{EPres=y}', "");
+    Expect(1, 129785, '\p{^EPres=y}', "");
+    Expect(1, 129785, '\P{EPres=y}', "");
+    Expect(0, 129785, '\P{^EPres=y}', "");
+    Expect(1, 129784, '\p{EPres=:\Ay\z:}', "");;
+    Expect(0, 129785, '\p{EPres=:\Ay\z:}', "");;
+    Expect(1, 129784, '\p{EPres= -y}', "");
+    Expect(0, 129784, '\p{^EPres= -y}', "");
+    Expect(0, 129784, '\P{EPres= -y}', "");
+    Expect(1, 129784, '\P{^EPres= -y}', "");
+    Expect(0, 129785, '\p{EPres= -y}', "");
+    Expect(1, 129785, '\p{^EPres= -y}', "");
+    Expect(1, 129785, '\P{EPres= -y}', "");
+    Expect(0, 129785, '\P{^EPres= -y}', "");
+    Error('\p{Is_Emoji_Presentation=:= 	T}');
+    Error('\P{Is_Emoji_Presentation=:= 	T}');
+    Expect(1, 129784, '\p{Is_Emoji_Presentation=t}', "");
+    Expect(0, 129784, '\p{^Is_Emoji_Presentation=t}', "");
+    Expect(0, 129784, '\P{Is_Emoji_Presentation=t}', "");
+    Expect(1, 129784, '\P{^Is_Emoji_Presentation=t}', "");
+    Expect(0, 129785, '\p{Is_Emoji_Presentation=t}', "");
+    Expect(1, 129785, '\p{^Is_Emoji_Presentation=t}', "");
+    Expect(1, 129785, '\P{Is_Emoji_Presentation=t}', "");
+    Expect(0, 129785, '\P{^Is_Emoji_Presentation=t}', "");
+    Expect(1, 129784, '\p{Is_Emoji_Presentation=--T}', "");
+    Expect(0, 129784, '\p{^Is_Emoji_Presentation=--T}', "");
+    Expect(0, 129784, '\P{Is_Emoji_Presentation=--T}', "");
+    Expect(1, 129784, '\P{^Is_Emoji_Presentation=--T}', "");
+    Expect(0, 129785, '\p{Is_Emoji_Presentation=--T}', "");
+    Expect(1, 129785, '\p{^Is_Emoji_Presentation=--T}', "");
+    Expect(1, 129785, '\P{Is_Emoji_Presentation=--T}', "");
+    Expect(0, 129785, '\P{^Is_Emoji_Presentation=--T}', "");
+    Error('\p{Is_EPres=/a/  TRUE}');
+    Error('\P{Is_EPres=/a/  TRUE}');
+    Expect(1, 129784, '\p{Is_EPres:   true}', "");
+    Expect(0, 129784, '\p{^Is_EPres:   true}', "");
+    Expect(0, 129784, '\P{Is_EPres:   true}', "");
+    Expect(1, 129784, '\P{^Is_EPres:   true}', "");
+    Expect(0, 129785, '\p{Is_EPres:   true}', "");
+    Expect(1, 129785, '\p{^Is_EPres:   true}', "");
+    Expect(1, 129785, '\P{Is_EPres:   true}', "");
+    Expect(0, 129785, '\P{^Is_EPres:   true}', "");
+    Expect(1, 129784, '\p{Is_EPres=_-true}', "");
+    Expect(0, 129784, '\p{^Is_EPres=_-true}', "");
+    Expect(0, 129784, '\P{Is_EPres=_-true}', "");
+    Expect(1, 129784, '\P{^Is_EPres=_-true}', "");
+    Expect(0, 129785, '\p{Is_EPres=_-true}', "");
+    Expect(1, 129785, '\p{^Is_EPres=_-true}', "");
+    Expect(1, 129785, '\P{Is_EPres=_-true}', "");
+    Expect(0, 129785, '\P{^Is_EPres=_-true}', "");
     Error('\p{equivalentunifiedideograph}');
     Error('\P{equivalentunifiedideograph}');
     Error('\p{equideo}');
     Error('\P{equideo}');
-    Error('\p{Extender= :=no}');
-    Error('\P{Extender= :=no}');
+    Error('\p{Extender=:=- NO}');
+    Error('\P{Extender=:=- NO}');
     Expect(1, 125255, '\p{Extender=:\ANo\z:}', "");;
     Expect(0, 125254, '\p{Extender=:\ANo\z:}', "");;
-    Expect(1, 125255, '\p{Extender: no}', "");
-    Expect(0, 125255, '\p{^Extender: no}', "");
-    Expect(0, 125255, '\P{Extender: no}', "");
-    Expect(1, 125255, '\P{^Extender: no}', "");
-    Expect(0, 125254, '\p{Extender: no}', "");
-    Expect(1, 125254, '\p{^Extender: no}', "");
-    Expect(1, 125254, '\P{Extender: no}', "");
-    Expect(0, 125254, '\P{^Extender: no}', "");
+    Expect(1, 125255, '\p{Extender:no}', "");
+    Expect(0, 125255, '\p{^Extender:no}', "");
+    Expect(0, 125255, '\P{Extender:no}', "");
+    Expect(1, 125255, '\P{^Extender:no}', "");
+    Expect(0, 125254, '\p{Extender:no}', "");
+    Expect(1, 125254, '\p{^Extender:no}', "");
+    Expect(1, 125254, '\P{Extender:no}', "");
+    Expect(0, 125254, '\P{^Extender:no}', "");
     Expect(1, 125255, '\p{Extender=:\Ano\z:}', "");;
     Expect(0, 125254, '\p{Extender=:\Ano\z:}', "");;
-    Expect(1, 125255, '\p{Extender=-_No}', "");
-    Expect(0, 125255, '\p{^Extender=-_No}', "");
-    Expect(0, 125255, '\P{Extender=-_No}', "");
-    Expect(1, 125255, '\P{^Extender=-_No}', "");
-    Expect(0, 125254, '\p{Extender=-_No}', "");
-    Expect(1, 125254, '\p{^Extender=-_No}', "");
-    Expect(1, 125254, '\P{Extender=-_No}', "");
-    Expect(0, 125254, '\P{^Extender=-_No}', "");
-    Error('\p{Ext=-:=n}');
-    Error('\P{Ext=-:=n}');
+    Expect(1, 125255, '\p{Extender=_	no}', "");
+    Expect(0, 125255, '\p{^Extender=_	no}', "");
+    Expect(0, 125255, '\P{Extender=_	no}', "");
+    Expect(1, 125255, '\P{^Extender=_	no}', "");
+    Expect(0, 125254, '\p{Extender=_	no}', "");
+    Expect(1, 125254, '\p{^Extender=_	no}', "");
+    Expect(1, 125254, '\P{Extender=_	no}', "");
+    Expect(0, 125254, '\P{^Extender=_	no}', "");
+    Error('\p{Ext=_n/a/}');
+    Error('\P{Ext=_n/a/}');
     Expect(1, 125255, '\p{Ext=:\AN\z:}', "");;
     Expect(0, 125254, '\p{Ext=:\AN\z:}', "");;
     Expect(1, 125255, '\p{Ext=n}', "");
@@ -38487,34 +39063,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125254, '\P{^Ext=n}', "");
     Expect(1, 125255, '\p{Ext=:\An\z:}', "");;
     Expect(0, 125254, '\p{Ext=:\An\z:}', "");;
-    Expect(1, 125255, '\p{Ext=-N}', "");
-    Expect(0, 125255, '\p{^Ext=-N}', "");
-    Expect(0, 125255, '\P{Ext=-N}', "");
-    Expect(1, 125255, '\P{^Ext=-N}', "");
-    Expect(0, 125254, '\p{Ext=-N}', "");
-    Expect(1, 125254, '\p{^Ext=-N}', "");
-    Expect(1, 125254, '\P{Ext=-N}', "");
-    Expect(0, 125254, '\P{^Ext=-N}', "");
-    Error('\p{Is_Extender=/a/__F}');
-    Error('\P{Is_Extender=/a/__F}');
-    Expect(1, 125255, '\p{Is_Extender:   f}', "");
-    Expect(0, 125255, '\p{^Is_Extender:   f}', "");
-    Expect(0, 125255, '\P{Is_Extender:   f}', "");
-    Expect(1, 125255, '\P{^Is_Extender:   f}', "");
-    Expect(0, 125254, '\p{Is_Extender:   f}', "");
-    Expect(1, 125254, '\p{^Is_Extender:   f}', "");
-    Expect(1, 125254, '\P{Is_Extender:   f}', "");
-    Expect(0, 125254, '\P{^Is_Extender:   f}', "");
-    Expect(1, 125255, '\p{Is_Extender=		F}', "");
-    Expect(0, 125255, '\p{^Is_Extender=		F}', "");
-    Expect(0, 125255, '\P{Is_Extender=		F}', "");
-    Expect(1, 125255, '\P{^Is_Extender=		F}', "");
-    Expect(0, 125254, '\p{Is_Extender=		F}', "");
-    Expect(1, 125254, '\p{^Is_Extender=		F}', "");
-    Expect(1, 125254, '\P{Is_Extender=		F}', "");
-    Expect(0, 125254, '\P{^Is_Extender=		F}', "");
-    Error('\p{Is_Ext=/a/	False}');
-    Error('\P{Is_Ext=/a/	False}');
+    Expect(1, 125255, '\p{Ext=-n}', "");
+    Expect(0, 125255, '\p{^Ext=-n}', "");
+    Expect(0, 125255, '\P{Ext=-n}', "");
+    Expect(1, 125255, '\P{^Ext=-n}', "");
+    Expect(0, 125254, '\p{Ext=-n}', "");
+    Expect(1, 125254, '\p{^Ext=-n}', "");
+    Expect(1, 125254, '\P{Ext=-n}', "");
+    Expect(0, 125254, '\P{^Ext=-n}', "");
+    Error('\p{Is_Extender=  F:=}');
+    Error('\P{Is_Extender=  F:=}');
+    Expect(1, 125255, '\p{Is_Extender=f}', "");
+    Expect(0, 125255, '\p{^Is_Extender=f}', "");
+    Expect(0, 125255, '\P{Is_Extender=f}', "");
+    Expect(1, 125255, '\P{^Is_Extender=f}', "");
+    Expect(0, 125254, '\p{Is_Extender=f}', "");
+    Expect(1, 125254, '\p{^Is_Extender=f}', "");
+    Expect(1, 125254, '\P{Is_Extender=f}', "");
+    Expect(0, 125254, '\P{^Is_Extender=f}', "");
+    Expect(1, 125255, '\p{Is_Extender=- F}', "");
+    Expect(0, 125255, '\p{^Is_Extender=- F}', "");
+    Expect(0, 125255, '\P{Is_Extender=- F}', "");
+    Expect(1, 125255, '\P{^Is_Extender=- F}', "");
+    Expect(0, 125254, '\p{Is_Extender=- F}', "");
+    Expect(1, 125254, '\p{^Is_Extender=- F}', "");
+    Expect(1, 125254, '\P{Is_Extender=- F}', "");
+    Expect(0, 125254, '\P{^Is_Extender=- F}', "");
+    Error('\p{Is_Ext:   :=-_FALSE}');
+    Error('\P{Is_Ext:   :=-_FALSE}');
     Expect(1, 125255, '\p{Is_Ext=false}', "");
     Expect(0, 125255, '\p{^Is_Ext=false}', "");
     Expect(0, 125255, '\P{Is_Ext=false}', "");
@@ -38523,16 +39099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125254, '\p{^Is_Ext=false}', "");
     Expect(1, 125254, '\P{Is_Ext=false}', "");
     Expect(0, 125254, '\P{^Is_Ext=false}', "");
-    Expect(1, 125255, '\p{Is_Ext= _false}', "");
-    Expect(0, 125255, '\p{^Is_Ext= _false}', "");
-    Expect(0, 125255, '\P{Is_Ext= _false}', "");
-    Expect(1, 125255, '\P{^Is_Ext= _false}', "");
-    Expect(0, 125254, '\p{Is_Ext= _false}', "");
-    Expect(1, 125254, '\p{^Is_Ext= _false}', "");
-    Expect(1, 125254, '\P{Is_Ext= _false}', "");
-    Expect(0, 125254, '\P{^Is_Ext= _false}', "");
-    Error('\p{Extender=	:=Yes}');
-    Error('\P{Extender=	:=Yes}');
+    Expect(1, 125255, '\p{Is_Ext=_FALSE}', "");
+    Expect(0, 125255, '\p{^Is_Ext=_FALSE}', "");
+    Expect(0, 125255, '\P{Is_Ext=_FALSE}', "");
+    Expect(1, 125255, '\P{^Is_Ext=_FALSE}', "");
+    Expect(0, 125254, '\p{Is_Ext=_FALSE}', "");
+    Expect(1, 125254, '\p{^Is_Ext=_FALSE}', "");
+    Expect(1, 125254, '\P{Is_Ext=_FALSE}', "");
+    Expect(0, 125254, '\P{^Is_Ext=_FALSE}', "");
+    Error('\p{Extender=_	YES/a/}');
+    Error('\P{Extender=_	YES/a/}');
     Expect(1, 125254, '\p{Extender=:\AYes\z:}', "");;
     Expect(0, 125255, '\p{Extender=:\AYes\z:}', "");;
     Expect(1, 125254, '\p{Extender=yes}', "");
@@ -38545,38 +39121,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125255, '\P{^Extender=yes}', "");
     Expect(1, 125254, '\p{Extender=:\Ayes\z:}', "");;
     Expect(0, 125255, '\p{Extender=:\Ayes\z:}', "");;
-    Expect(1, 125254, '\p{Extender=--Yes}', "");
-    Expect(0, 125254, '\p{^Extender=--Yes}', "");
-    Expect(0, 125254, '\P{Extender=--Yes}', "");
-    Expect(1, 125254, '\P{^Extender=--Yes}', "");
-    Expect(0, 125255, '\p{Extender=--Yes}', "");
-    Expect(1, 125255, '\p{^Extender=--Yes}', "");
-    Expect(1, 125255, '\P{Extender=--Yes}', "");
-    Expect(0, 125255, '\P{^Extender=--Yes}', "");
-    Error('\p{Ext=		Y/a/}');
-    Error('\P{Ext=		Y/a/}');
+    Expect(1, 125254, '\p{Extender:   -YES}', "");
+    Expect(0, 125254, '\p{^Extender:   -YES}', "");
+    Expect(0, 125254, '\P{Extender:   -YES}', "");
+    Expect(1, 125254, '\P{^Extender:   -YES}', "");
+    Expect(0, 125255, '\p{Extender:   -YES}', "");
+    Expect(1, 125255, '\p{^Extender:   -YES}', "");
+    Expect(1, 125255, '\P{Extender:   -YES}', "");
+    Expect(0, 125255, '\P{^Extender:   -YES}', "");
+    Error('\p{Ext=_Y/a/}');
+    Error('\P{Ext=_Y/a/}');
     Expect(1, 125254, '\p{Ext=:\AY\z:}', "");;
     Expect(0, 125255, '\p{Ext=:\AY\z:}', "");;
-    Expect(1, 125254, '\p{Ext:   y}', "");
-    Expect(0, 125254, '\p{^Ext:   y}', "");
-    Expect(0, 125254, '\P{Ext:   y}', "");
-    Expect(1, 125254, '\P{^Ext:   y}', "");
-    Expect(0, 125255, '\p{Ext:   y}', "");
-    Expect(1, 125255, '\p{^Ext:   y}', "");
-    Expect(1, 125255, '\P{Ext:   y}', "");
-    Expect(0, 125255, '\P{^Ext:   y}', "");
+    Expect(1, 125254, '\p{Ext=y}', "");
+    Expect(0, 125254, '\p{^Ext=y}', "");
+    Expect(0, 125254, '\P{Ext=y}', "");
+    Expect(1, 125254, '\P{^Ext=y}', "");
+    Expect(0, 125255, '\p{Ext=y}', "");
+    Expect(1, 125255, '\p{^Ext=y}', "");
+    Expect(1, 125255, '\P{Ext=y}', "");
+    Expect(0, 125255, '\P{^Ext=y}', "");
     Expect(1, 125254, '\p{Ext=:\Ay\z:}', "");;
     Expect(0, 125255, '\p{Ext=:\Ay\z:}', "");;
-    Expect(1, 125254, '\p{Ext: 	Y}', "");
-    Expect(0, 125254, '\p{^Ext: 	Y}', "");
-    Expect(0, 125254, '\P{Ext: 	Y}', "");
-    Expect(1, 125254, '\P{^Ext: 	Y}', "");
-    Expect(0, 125255, '\p{Ext: 	Y}', "");
-    Expect(1, 125255, '\p{^Ext: 	Y}', "");
-    Expect(1, 125255, '\P{Ext: 	Y}', "");
-    Expect(0, 125255, '\P{^Ext: 	Y}', "");
-    Error('\p{Is_Extender:	-:=t}');
-    Error('\P{Is_Extender:	-:=t}');
+    Expect(1, 125254, '\p{Ext=	_Y}', "");
+    Expect(0, 125254, '\p{^Ext=	_Y}', "");
+    Expect(0, 125254, '\P{Ext=	_Y}', "");
+    Expect(1, 125254, '\P{^Ext=	_Y}', "");
+    Expect(0, 125255, '\p{Ext=	_Y}', "");
+    Expect(1, 125255, '\p{^Ext=	_Y}', "");
+    Expect(1, 125255, '\P{Ext=	_Y}', "");
+    Expect(0, 125255, '\P{^Ext=	_Y}', "");
+    Error('\p{Is_Extender:  T/a/}');
+    Error('\P{Is_Extender:  T/a/}');
     Expect(1, 125254, '\p{Is_Extender=t}', "");
     Expect(0, 125254, '\p{^Is_Extender=t}', "");
     Expect(0, 125254, '\P{Is_Extender=t}', "");
@@ -38585,16 +39161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125255, '\p{^Is_Extender=t}', "");
     Expect(1, 125255, '\P{Is_Extender=t}', "");
     Expect(0, 125255, '\P{^Is_Extender=t}', "");
-    Expect(1, 125254, '\p{Is_Extender=-t}', "");
-    Expect(0, 125254, '\p{^Is_Extender=-t}', "");
-    Expect(0, 125254, '\P{Is_Extender=-t}', "");
-    Expect(1, 125254, '\P{^Is_Extender=-t}', "");
-    Expect(0, 125255, '\p{Is_Extender=-t}', "");
-    Expect(1, 125255, '\p{^Is_Extender=-t}', "");
-    Expect(1, 125255, '\P{Is_Extender=-t}', "");
-    Expect(0, 125255, '\P{^Is_Extender=-t}', "");
-    Error('\p{Is_Ext=_-TRUE:=}');
-    Error('\P{Is_Ext=_-TRUE:=}');
+    Expect(1, 125254, '\p{Is_Extender=  t}', "");
+    Expect(0, 125254, '\p{^Is_Extender=  t}', "");
+    Expect(0, 125254, '\P{Is_Extender=  t}', "");
+    Expect(1, 125254, '\P{^Is_Extender=  t}', "");
+    Expect(0, 125255, '\p{Is_Extender=  t}', "");
+    Expect(1, 125255, '\p{^Is_Extender=  t}', "");
+    Expect(1, 125255, '\P{Is_Extender=  t}', "");
+    Expect(0, 125255, '\P{^Is_Extender=  t}', "");
+    Error('\p{Is_Ext=- True:=}');
+    Error('\P{Is_Ext=- True:=}');
     Expect(1, 125254, '\p{Is_Ext=true}', "");
     Expect(0, 125254, '\p{^Is_Ext=true}', "");
     Expect(0, 125254, '\P{Is_Ext=true}', "");
@@ -38611,8 +39187,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125255, '\p{^Is_Ext=	True}', "");
     Expect(1, 125255, '\P{Is_Ext=	True}', "");
     Expect(0, 125255, '\P{^Is_Ext=	True}', "");
-    Error('\p{Extended_Pictographic=_/a/No}');
-    Error('\P{Extended_Pictographic=_/a/No}');
+    Error('\p{Extended_Pictographic=		NO:=}');
+    Error('\P{Extended_Pictographic=		NO:=}');
     Expect(1, 131072, '\p{Extended_Pictographic=:\ANo\z:}', "");;
     Expect(0, 131069, '\p{Extended_Pictographic=:\ANo\z:}', "");;
     Expect(1, 131072, '\p{Extended_Pictographic=no}', "");
@@ -38633,8 +39209,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 131069, '\p{^Extended_Pictographic=_	NO}', "");
     Expect(1, 131069, '\P{Extended_Pictographic=_	NO}', "");
     Expect(0, 131069, '\P{^Extended_Pictographic=_	NO}', "");
-    Error('\p{ExtPict:-:=n}');
-    Error('\P{ExtPict:-:=n}');
+    Error('\p{ExtPict=/a/	N}');
+    Error('\P{ExtPict=/a/	N}');
     Expect(1, 131072, '\p{ExtPict=:\AN\z:}', "");;
     Expect(0, 131069, '\p{ExtPict=:\AN\z:}', "");;
     Expect(1, 131072, '\p{ExtPict=n}', "");
@@ -38647,16 +39223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 131069, '\P{^ExtPict=n}', "");
     Expect(1, 131072, '\p{ExtPict=:\An\z:}', "");;
     Expect(0, 131069, '\p{ExtPict=:\An\z:}', "");;
-    Expect(1, 131072, '\p{ExtPict= 	N}', "");
-    Expect(0, 131072, '\p{^ExtPict= 	N}', "");
-    Expect(0, 131072, '\P{ExtPict= 	N}', "");
-    Expect(1, 131072, '\P{^ExtPict= 	N}', "");
-    Expect(0, 131069, '\p{ExtPict= 	N}', "");
-    Expect(1, 131069, '\p{^ExtPict= 	N}', "");
-    Expect(1, 131069, '\P{ExtPict= 	N}', "");
-    Expect(0, 131069, '\P{^ExtPict= 	N}', "");
-    Error('\p{Is_Extended_Pictographic=_:=F}');
-    Error('\P{Is_Extended_Pictographic=_:=F}');
+    Expect(1, 131072, '\p{ExtPict=__N}', "");
+    Expect(0, 131072, '\p{^ExtPict=__N}', "");
+    Expect(0, 131072, '\P{ExtPict=__N}', "");
+    Expect(1, 131072, '\P{^ExtPict=__N}', "");
+    Expect(0, 131069, '\p{ExtPict=__N}', "");
+    Expect(1, 131069, '\p{^ExtPict=__N}', "");
+    Expect(1, 131069, '\P{ExtPict=__N}', "");
+    Expect(0, 131069, '\P{^ExtPict=__N}', "");
+    Error('\p{Is_Extended_Pictographic=_f/a/}');
+    Error('\P{Is_Extended_Pictographic=_f/a/}');
     Expect(1, 131072, '\p{Is_Extended_Pictographic=f}', "");
     Expect(0, 131072, '\p{^Is_Extended_Pictographic=f}', "");
     Expect(0, 131072, '\P{Is_Extended_Pictographic=f}', "");
@@ -38665,16 +39241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 131069, '\p{^Is_Extended_Pictographic=f}', "");
     Expect(1, 131069, '\P{Is_Extended_Pictographic=f}', "");
     Expect(0, 131069, '\P{^Is_Extended_Pictographic=f}', "");
-    Expect(1, 131072, '\p{Is_Extended_Pictographic=__F}', "");
-    Expect(0, 131072, '\p{^Is_Extended_Pictographic=__F}', "");
-    Expect(0, 131072, '\P{Is_Extended_Pictographic=__F}', "");
-    Expect(1, 131072, '\P{^Is_Extended_Pictographic=__F}', "");
-    Expect(0, 131069, '\p{Is_Extended_Pictographic=__F}', "");
-    Expect(1, 131069, '\p{^Is_Extended_Pictographic=__F}', "");
-    Expect(1, 131069, '\P{Is_Extended_Pictographic=__F}', "");
-    Expect(0, 131069, '\P{^Is_Extended_Pictographic=__F}', "");
-    Error('\p{Is_ExtPict=:= 	False}');
-    Error('\P{Is_ExtPict=:= 	False}');
+    Expect(1, 131072, '\p{Is_Extended_Pictographic= 	F}', "");
+    Expect(0, 131072, '\p{^Is_Extended_Pictographic= 	F}', "");
+    Expect(0, 131072, '\P{Is_Extended_Pictographic= 	F}', "");
+    Expect(1, 131072, '\P{^Is_Extended_Pictographic= 	F}', "");
+    Expect(0, 131069, '\p{Is_Extended_Pictographic= 	F}', "");
+    Expect(1, 131069, '\p{^Is_Extended_Pictographic= 	F}', "");
+    Expect(1, 131069, '\P{Is_Extended_Pictographic= 	F}', "");
+    Expect(0, 131069, '\P{^Is_Extended_Pictographic= 	F}', "");
+    Error('\p{Is_ExtPict= /a/False}');
+    Error('\P{Is_ExtPict= /a/False}');
     Expect(1, 131072, '\p{Is_ExtPict=false}', "");
     Expect(0, 131072, '\p{^Is_ExtPict=false}', "");
     Expect(0, 131072, '\P{Is_ExtPict=false}', "");
@@ -38683,16 +39259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 131069, '\p{^Is_ExtPict=false}', "");
     Expect(1, 131069, '\P{Is_ExtPict=false}', "");
     Expect(0, 131069, '\P{^Is_ExtPict=false}', "");
-    Expect(1, 131072, '\p{Is_ExtPict= False}', "");
-    Expect(0, 131072, '\p{^Is_ExtPict= False}', "");
-    Expect(0, 131072, '\P{Is_ExtPict= False}', "");
-    Expect(1, 131072, '\P{^Is_ExtPict= False}', "");
-    Expect(0, 131069, '\p{Is_ExtPict= False}', "");
-    Expect(1, 131069, '\p{^Is_ExtPict= False}', "");
-    Expect(1, 131069, '\P{Is_ExtPict= False}', "");
-    Expect(0, 131069, '\P{^Is_ExtPict= False}', "");
-    Error('\p{Extended_Pictographic=/a/_-yes}');
-    Error('\P{Extended_Pictographic=/a/_-yes}');
+    Expect(1, 131072, '\p{Is_ExtPict=_False}', "");
+    Expect(0, 131072, '\p{^Is_ExtPict=_False}', "");
+    Expect(0, 131072, '\P{Is_ExtPict=_False}', "");
+    Expect(1, 131072, '\P{^Is_ExtPict=_False}', "");
+    Expect(0, 131069, '\p{Is_ExtPict=_False}', "");
+    Expect(1, 131069, '\p{^Is_ExtPict=_False}', "");
+    Expect(1, 131069, '\P{Is_ExtPict=_False}', "");
+    Expect(0, 131069, '\P{^Is_ExtPict=_False}', "");
+    Error('\p{Extended_Pictographic= _yes:=}');
+    Error('\P{Extended_Pictographic= _yes:=}');
     Expect(1, 131069, '\p{Extended_Pictographic=:\AYes\z:}', "");;
     Expect(0, 131072, '\p{Extended_Pictographic=:\AYes\z:}', "");;
     Expect(1, 131069, '\p{Extended_Pictographic=yes}', "");
@@ -38705,26 +39281,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 131072, '\P{^Extended_Pictographic=yes}', "");
     Expect(1, 131069, '\p{Extended_Pictographic=:\Ayes\z:}', "");;
     Expect(0, 131072, '\p{Extended_Pictographic=:\Ayes\z:}', "");;
-    Expect(1, 131069, '\p{Extended_Pictographic=-_yes}', "");
-    Expect(0, 131069, '\p{^Extended_Pictographic=-_yes}', "");
-    Expect(0, 131069, '\P{Extended_Pictographic=-_yes}', "");
-    Expect(1, 131069, '\P{^Extended_Pictographic=-_yes}', "");
-    Expect(0, 131072, '\p{Extended_Pictographic=-_yes}', "");
-    Expect(1, 131072, '\p{^Extended_Pictographic=-_yes}', "");
-    Expect(1, 131072, '\P{Extended_Pictographic=-_yes}', "");
-    Expect(0, 131072, '\P{^Extended_Pictographic=-_yes}', "");
-    Error('\p{ExtPict:   :=_	Y}');
-    Error('\P{ExtPict:   :=_	Y}');
+    Error('\p{ExtPict=- Y/a/}');
+    Error('\P{ExtPict=- Y/a/}');
     Expect(1, 131069, '\p{ExtPict=:\AY\z:}', "");;
     Expect(0, 131072, '\p{ExtPict=:\AY\z:}', "");;
-    Expect(1, 131069, '\p{ExtPict=y}', "");
-    Expect(0, 131069, '\p{^ExtPict=y}', "");
-    Expect(0, 131069, '\P{ExtPict=y}', "");
-    Expect(1, 131069, '\P{^ExtPict=y}', "");
-    Expect(0, 131072, '\p{ExtPict=y}', "");
-    Expect(1, 131072, '\p{^ExtPict=y}', "");
-    Expect(1, 131072, '\P{ExtPict=y}', "");
-    Expect(0, 131072, '\P{^ExtPict=y}', "");
+    Expect(1, 131069, '\p{ExtPict:y}', "");
+    Expect(0, 131069, '\p{^ExtPict:y}', "");
+    Expect(0, 131069, '\P{ExtPict:y}', "");
+    Expect(1, 131069, '\P{^ExtPict:y}', "");
+    Expect(0, 131072, '\p{ExtPict:y}', "");
+    Expect(1, 131072, '\p{^ExtPict:y}', "");
+    Expect(1, 131072, '\P{ExtPict:y}', "");
+    Expect(0, 131072, '\P{^ExtPict:y}', "");
     Expect(1, 131069, '\p{ExtPict=:\Ay\z:}', "");;
     Expect(0, 131072, '\p{ExtPict=:\Ay\z:}', "");;
     Expect(1, 131069, '\p{ExtPict= _Y}', "");
@@ -38735,8 +39303,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 131072, '\p{^ExtPict= _Y}', "");
     Expect(1, 131072, '\P{ExtPict= _Y}', "");
     Expect(0, 131072, '\P{^ExtPict= _Y}', "");
-    Error('\p{Is_Extended_Pictographic=-:=t}');
-    Error('\P{Is_Extended_Pictographic=-:=t}');
+    Error('\p{Is_Extended_Pictographic=	T/a/}');
+    Error('\P{Is_Extended_Pictographic=	T/a/}');
     Expect(1, 131069, '\p{Is_Extended_Pictographic=t}', "");
     Expect(0, 131069, '\p{^Is_Extended_Pictographic=t}', "");
     Expect(0, 131069, '\P{Is_Extended_Pictographic=t}', "");
@@ -38745,16 +39313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 131072, '\p{^Is_Extended_Pictographic=t}', "");
     Expect(1, 131072, '\P{Is_Extended_Pictographic=t}', "");
     Expect(0, 131072, '\P{^Is_Extended_Pictographic=t}', "");
-    Expect(1, 131069, '\p{Is_Extended_Pictographic=	_t}', "");
-    Expect(0, 131069, '\p{^Is_Extended_Pictographic=	_t}', "");
-    Expect(0, 131069, '\P{Is_Extended_Pictographic=	_t}', "");
-    Expect(1, 131069, '\P{^Is_Extended_Pictographic=	_t}', "");
-    Expect(0, 131072, '\p{Is_Extended_Pictographic=	_t}', "");
-    Expect(1, 131072, '\p{^Is_Extended_Pictographic=	_t}', "");
-    Expect(1, 131072, '\P{Is_Extended_Pictographic=	_t}', "");
-    Expect(0, 131072, '\P{^Is_Extended_Pictographic=	_t}', "");
-    Error('\p{Is_ExtPict: 	_true:=}');
-    Error('\P{Is_ExtPict: 	_true:=}');
+    Expect(1, 131069, '\p{Is_Extended_Pictographic=  t}', "");
+    Expect(0, 131069, '\p{^Is_Extended_Pictographic=  t}', "");
+    Expect(0, 131069, '\P{Is_Extended_Pictographic=  t}', "");
+    Expect(1, 131069, '\P{^Is_Extended_Pictographic=  t}', "");
+    Expect(0, 131072, '\p{Is_Extended_Pictographic=  t}', "");
+    Expect(1, 131072, '\p{^Is_Extended_Pictographic=  t}', "");
+    Expect(1, 131072, '\P{Is_Extended_Pictographic=  t}', "");
+    Expect(0, 131072, '\P{^Is_Extended_Pictographic=  t}', "");
+    Error('\p{Is_ExtPict: _ True/a/}');
+    Error('\P{Is_ExtPict: _ True/a/}');
     Expect(1, 131069, '\p{Is_ExtPict=true}', "");
     Expect(0, 131069, '\p{^Is_ExtPict=true}', "");
     Expect(0, 131069, '\P{Is_ExtPict=true}', "");
@@ -38763,14 +39331,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 131072, '\p{^Is_ExtPict=true}', "");
     Expect(1, 131072, '\P{Is_ExtPict=true}', "");
     Expect(0, 131072, '\P{^Is_ExtPict=true}', "");
-    Expect(1, 131069, '\p{Is_ExtPict=-_true}', "");
-    Expect(0, 131069, '\p{^Is_ExtPict=-_true}', "");
-    Expect(0, 131069, '\P{Is_ExtPict=-_true}', "");
-    Expect(1, 131069, '\P{^Is_ExtPict=-_true}', "");
-    Expect(0, 131072, '\p{Is_ExtPict=-_true}', "");
-    Expect(1, 131072, '\p{^Is_ExtPict=-_true}', "");
-    Expect(1, 131072, '\P{Is_ExtPict=-_true}', "");
-    Expect(0, 131072, '\P{^Is_ExtPict=-_true}', "");
+    Expect(1, 131069, '\p{Is_ExtPict=	 True}', "");
+    Expect(0, 131069, '\p{^Is_ExtPict=	 True}', "");
+    Expect(0, 131069, '\P{Is_ExtPict=	 True}', "");
+    Expect(1, 131069, '\P{^Is_ExtPict=	 True}', "");
+    Expect(0, 131072, '\p{Is_ExtPict=	 True}', "");
+    Expect(1, 131072, '\p{^Is_ExtPict=	 True}', "");
+    Expect(1, 131072, '\P{Is_ExtPict=	 True}', "");
+    Expect(0, 131072, '\P{^Is_ExtPict=	 True}', "");
     Error('\p{fcnfkcclosure}');
     Error('\P{fcnfkcclosure}');
     Error('\p{fcnfkc}');
@@ -38781,30 +39349,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Error('\P{gc}');
     Error('\p{category}');
     Error('\P{category}');
-    Error('\p{General_Category=	:=OTHER}');
-    Error('\P{General_Category=	:=OTHER}');
+    Error('\p{General_Category=	-Other:=}');
+    Error('\P{General_Category=	-Other:=}');
     Expect(1, 918000, '\p{General_Category=:\AOther\z:}', "");;
     Expect(0, 917999, '\p{General_Category=:\AOther\z:}', "");;
-    Expect(1, 918000, '\p{General_Category=other}', "");
-    Expect(0, 918000, '\p{^General_Category=other}', "");
-    Expect(0, 918000, '\P{General_Category=other}', "");
-    Expect(1, 918000, '\P{^General_Category=other}', "");
-    Expect(0, 917999, '\p{General_Category=other}', "");
-    Expect(1, 917999, '\p{^General_Category=other}', "");
-    Expect(1, 917999, '\P{General_Category=other}', "");
-    Expect(0, 917999, '\P{^General_Category=other}', "");
+    Expect(1, 918000, '\p{General_Category:other}', "");
+    Expect(0, 918000, '\p{^General_Category:other}', "");
+    Expect(0, 918000, '\P{General_Category:other}', "");
+    Expect(1, 918000, '\P{^General_Category:other}', "");
+    Expect(0, 917999, '\p{General_Category:other}', "");
+    Expect(1, 917999, '\p{^General_Category:other}', "");
+    Expect(1, 917999, '\P{General_Category:other}', "");
+    Expect(0, 917999, '\P{^General_Category:other}', "");
     Expect(1, 918000, '\p{General_Category=:\Aother\z:}', "");;
     Expect(0, 917999, '\p{General_Category=:\Aother\z:}', "");;
-    Expect(1, 918000, '\p{General_Category=-Other}', "");
-    Expect(0, 918000, '\p{^General_Category=-Other}', "");
-    Expect(0, 918000, '\P{General_Category=-Other}', "");
-    Expect(1, 918000, '\P{^General_Category=-Other}', "");
-    Expect(0, 917999, '\p{General_Category=-Other}', "");
-    Expect(1, 917999, '\p{^General_Category=-Other}', "");
-    Expect(1, 917999, '\P{General_Category=-Other}', "");
-    Expect(0, 917999, '\P{^General_Category=-Other}', "");
-    Error('\p{Gc= c:=}');
-    Error('\P{Gc= c:=}');
+    Expect(1, 918000, '\p{General_Category=	 OTHER}', "");
+    Expect(0, 918000, '\p{^General_Category=	 OTHER}', "");
+    Expect(0, 918000, '\P{General_Category=	 OTHER}', "");
+    Expect(1, 918000, '\P{^General_Category=	 OTHER}', "");
+    Expect(0, 917999, '\p{General_Category=	 OTHER}', "");
+    Expect(1, 917999, '\p{^General_Category=	 OTHER}', "");
+    Expect(1, 917999, '\P{General_Category=	 OTHER}', "");
+    Expect(0, 917999, '\P{^General_Category=	 OTHER}', "");
+    Error('\p{Gc=-/a/C}');
+    Error('\P{Gc=-/a/C}');
     Expect(1, 918000, '\p{Gc=:\AC\z:}', "");;
     Expect(0, 917999, '\p{Gc=:\AC\z:}', "");;
     Expect(1, 918000, '\p{Gc=c}', "");
@@ -38817,38 +39385,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917999, '\P{^Gc=c}', "");
     Expect(1, 918000, '\p{Gc=:\Ac\z:}', "");;
     Expect(0, 917999, '\p{Gc=:\Ac\z:}', "");;
-    Expect(1, 918000, '\p{Gc=		c}', "");
-    Expect(0, 918000, '\p{^Gc=		c}', "");
-    Expect(0, 918000, '\P{Gc=		c}', "");
-    Expect(1, 918000, '\P{^Gc=		c}', "");
-    Expect(0, 917999, '\p{Gc=		c}', "");
-    Expect(1, 917999, '\p{^Gc=		c}', "");
-    Expect(1, 917999, '\P{Gc=		c}', "");
-    Expect(0, 917999, '\P{^Gc=		c}', "");
-    Error('\p{Category=_:=Other}');
-    Error('\P{Category=_:=Other}');
+    Expect(1, 918000, '\p{Gc=-	c}', "");
+    Expect(0, 918000, '\p{^Gc=-	c}', "");
+    Expect(0, 918000, '\P{Gc=-	c}', "");
+    Expect(1, 918000, '\P{^Gc=-	c}', "");
+    Expect(0, 917999, '\p{Gc=-	c}', "");
+    Expect(1, 917999, '\p{^Gc=-	c}', "");
+    Expect(1, 917999, '\P{Gc=-	c}', "");
+    Expect(0, 917999, '\P{^Gc=-	c}', "");
+    Error('\p{Category=:= 	Other}');
+    Error('\P{Category=:= 	Other}');
     Expect(1, 918000, '\p{Category=:\AOther\z:}', "");;
     Expect(0, 917999, '\p{Category=:\AOther\z:}', "");;
-    Expect(1, 918000, '\p{Category:	other}', "");
-    Expect(0, 918000, '\p{^Category:	other}', "");
-    Expect(0, 918000, '\P{Category:	other}', "");
-    Expect(1, 918000, '\P{^Category:	other}', "");
-    Expect(0, 917999, '\p{Category:	other}', "");
-    Expect(1, 917999, '\p{^Category:	other}', "");
-    Expect(1, 917999, '\P{Category:	other}', "");
-    Expect(0, 917999, '\P{^Category:	other}', "");
+    Expect(1, 918000, '\p{Category=other}', "");
+    Expect(0, 918000, '\p{^Category=other}', "");
+    Expect(0, 918000, '\P{Category=other}', "");
+    Expect(1, 918000, '\P{^Category=other}', "");
+    Expect(0, 917999, '\p{Category=other}', "");
+    Expect(1, 917999, '\p{^Category=other}', "");
+    Expect(1, 917999, '\P{Category=other}', "");
+    Expect(0, 917999, '\P{^Category=other}', "");
     Expect(1, 918000, '\p{Category=:\Aother\z:}', "");;
     Expect(0, 917999, '\p{Category=:\Aother\z:}', "");;
-    Expect(1, 918000, '\p{Category=-_other}', "");
-    Expect(0, 918000, '\p{^Category=-_other}', "");
-    Expect(0, 918000, '\P{Category=-_other}', "");
-    Expect(1, 918000, '\P{^Category=-_other}', "");
-    Expect(0, 917999, '\p{Category=-_other}', "");
-    Expect(1, 917999, '\p{^Category=-_other}', "");
-    Expect(1, 917999, '\P{Category=-_other}', "");
-    Expect(0, 917999, '\P{^Category=-_other}', "");
-    Error('\p{Is_General_Category=- c:=}');
-    Error('\P{Is_General_Category=- c:=}');
+    Expect(1, 918000, '\p{Category=	 other}', "");
+    Expect(0, 918000, '\p{^Category=	 other}', "");
+    Expect(0, 918000, '\P{Category=	 other}', "");
+    Expect(1, 918000, '\P{^Category=	 other}', "");
+    Expect(0, 917999, '\p{Category=	 other}', "");
+    Expect(1, 917999, '\p{^Category=	 other}', "");
+    Expect(1, 917999, '\P{Category=	 other}', "");
+    Expect(0, 917999, '\P{^Category=	 other}', "");
+    Error('\p{Is_General_Category=:=--C}');
+    Error('\P{Is_General_Category=:=--C}');
     Expect(1, 918000, '\p{Is_General_Category=c}', "");
     Expect(0, 918000, '\p{^Is_General_Category=c}', "");
     Expect(0, 918000, '\P{Is_General_Category=c}', "");
@@ -38857,16 +39425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917999, '\p{^Is_General_Category=c}', "");
     Expect(1, 917999, '\P{Is_General_Category=c}', "");
     Expect(0, 917999, '\P{^Is_General_Category=c}', "");
-    Expect(1, 918000, '\p{Is_General_Category=--c}', "");
-    Expect(0, 918000, '\p{^Is_General_Category=--c}', "");
-    Expect(0, 918000, '\P{Is_General_Category=--c}', "");
-    Expect(1, 918000, '\P{^Is_General_Category=--c}', "");
-    Expect(0, 917999, '\p{Is_General_Category=--c}', "");
-    Expect(1, 917999, '\p{^Is_General_Category=--c}', "");
-    Expect(1, 917999, '\P{Is_General_Category=--c}', "");
-    Expect(0, 917999, '\P{^Is_General_Category=--c}', "");
-    Error('\p{Is_Gc=-Other:=}');
-    Error('\P{Is_Gc=-Other:=}');
+    Expect(1, 918000, '\p{Is_General_Category:	-_c}', "");
+    Expect(0, 918000, '\p{^Is_General_Category:	-_c}', "");
+    Expect(0, 918000, '\P{Is_General_Category:	-_c}', "");
+    Expect(1, 918000, '\P{^Is_General_Category:	-_c}', "");
+    Expect(0, 917999, '\p{Is_General_Category:	-_c}', "");
+    Expect(1, 917999, '\p{^Is_General_Category:	-_c}', "");
+    Expect(1, 917999, '\P{Is_General_Category:	-_c}', "");
+    Expect(0, 917999, '\P{^Is_General_Category:	-_c}', "");
+    Error('\p{Is_Gc=:=OTHER}');
+    Error('\P{Is_Gc=:=OTHER}');
     Expect(1, 918000, '\p{Is_Gc=other}', "");
     Expect(0, 918000, '\p{^Is_Gc=other}', "");
     Expect(0, 918000, '\P{Is_Gc=other}', "");
@@ -38875,16 +39443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917999, '\p{^Is_Gc=other}', "");
     Expect(1, 917999, '\P{Is_Gc=other}', "");
     Expect(0, 917999, '\P{^Is_Gc=other}', "");
-    Expect(1, 918000, '\p{Is_Gc= 	Other}', "");
-    Expect(0, 918000, '\p{^Is_Gc= 	Other}', "");
-    Expect(0, 918000, '\P{Is_Gc= 	Other}', "");
-    Expect(1, 918000, '\P{^Is_Gc= 	Other}', "");
-    Expect(0, 917999, '\p{Is_Gc= 	Other}', "");
-    Expect(1, 917999, '\p{^Is_Gc= 	Other}', "");
-    Expect(1, 917999, '\P{Is_Gc= 	Other}', "");
-    Expect(0, 917999, '\P{^Is_Gc= 	Other}', "");
-    Error('\p{Is_Category=	/a/C}');
-    Error('\P{Is_Category=	/a/C}');
+    Expect(1, 918000, '\p{Is_Gc= other}', "");
+    Expect(0, 918000, '\p{^Is_Gc= other}', "");
+    Expect(0, 918000, '\P{Is_Gc= other}', "");
+    Expect(1, 918000, '\P{^Is_Gc= other}', "");
+    Expect(0, 917999, '\p{Is_Gc= other}', "");
+    Expect(1, 917999, '\p{^Is_Gc= other}', "");
+    Expect(1, 917999, '\P{Is_Gc= other}', "");
+    Expect(0, 917999, '\P{^Is_Gc= other}', "");
+    Error('\p{Is_Category=_:=C}');
+    Error('\P{Is_Category=_:=C}');
     Expect(1, 918000, '\p{Is_Category=c}', "");
     Expect(0, 918000, '\p{^Is_Category=c}', "");
     Expect(0, 918000, '\P{Is_Category=c}', "");
@@ -38893,26 +39461,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917999, '\p{^Is_Category=c}', "");
     Expect(1, 917999, '\P{Is_Category=c}', "");
     Expect(0, 917999, '\P{^Is_Category=c}', "");
-    Expect(1, 918000, '\p{Is_Category=	 C}', "");
-    Expect(0, 918000, '\p{^Is_Category=	 C}', "");
-    Expect(0, 918000, '\P{Is_Category=	 C}', "");
-    Expect(1, 918000, '\P{^Is_Category=	 C}', "");
-    Expect(0, 917999, '\p{Is_Category=	 C}', "");
-    Expect(1, 917999, '\p{^Is_Category=	 C}', "");
-    Expect(1, 917999, '\P{Is_Category=	 C}', "");
-    Expect(0, 917999, '\P{^Is_Category=	 C}', "");
-    Error('\p{General_Category=	/a/CONTROL}');
-    Error('\P{General_Category=	/a/CONTROL}');
+    Expect(1, 918000, '\p{Is_Category=	C}', "");
+    Expect(0, 918000, '\p{^Is_Category=	C}', "");
+    Expect(0, 918000, '\P{Is_Category=	C}', "");
+    Expect(1, 918000, '\P{^Is_Category=	C}', "");
+    Expect(0, 917999, '\p{Is_Category=	C}', "");
+    Expect(1, 917999, '\p{^Is_Category=	C}', "");
+    Expect(1, 917999, '\P{Is_Category=	C}', "");
+    Expect(0, 917999, '\P{^Is_Category=	C}', "");
+    Error('\p{General_Category=	/a/Control}');
+    Error('\P{General_Category=	/a/Control}');
     Expect(1, 159, '\p{General_Category=:\AControl\z:}', "");;
     Expect(0, 160, '\p{General_Category=:\AControl\z:}', "");;
-    Expect(1, 159, '\p{General_Category:	control}', "");
-    Expect(0, 159, '\p{^General_Category:	control}', "");
-    Expect(0, 159, '\P{General_Category:	control}', "");
-    Expect(1, 159, '\P{^General_Category:	control}', "");
-    Expect(0, 160, '\p{General_Category:	control}', "");
-    Expect(1, 160, '\p{^General_Category:	control}', "");
-    Expect(1, 160, '\P{General_Category:	control}', "");
-    Expect(0, 160, '\P{^General_Category:	control}', "");
+    Expect(1, 159, '\p{General_Category=control}', "");
+    Expect(0, 159, '\p{^General_Category=control}', "");
+    Expect(0, 159, '\P{General_Category=control}', "");
+    Expect(1, 159, '\P{^General_Category=control}', "");
+    Expect(0, 160, '\p{General_Category=control}', "");
+    Expect(1, 160, '\p{^General_Category=control}', "");
+    Expect(1, 160, '\P{General_Category=control}', "");
+    Expect(0, 160, '\P{^General_Category=control}', "");
     Expect(1, 159, '\p{General_Category=:\Acontrol\z:}', "");;
     Expect(0, 160, '\p{General_Category=:\Acontrol\z:}', "");;
     Expect(1, 159, '\p{General_Category=-	Control}', "");
@@ -38923,8 +39491,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 160, '\p{^General_Category=-	Control}', "");
     Expect(1, 160, '\P{General_Category=-	Control}', "");
     Expect(0, 160, '\P{^General_Category=-	Control}', "");
-    Error('\p{Gc:/a/	-Cc}');
-    Error('\P{Gc:/a/	-Cc}');
+    Error('\p{Gc= 	cc/a/}');
+    Error('\P{Gc= 	cc/a/}');
     Expect(1, 159, '\p{Gc=:\ACc\z:}', "");;
     Expect(0, 160, '\p{Gc=:\ACc\z:}', "");;
     Expect(1, 159, '\p{Gc=cc}', "");
@@ -38937,16 +39505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 160, '\P{^Gc=cc}', "");
     Expect(1, 159, '\p{Gc=:\Acc\z:}', "");;
     Expect(0, 160, '\p{Gc=:\Acc\z:}', "");;
-    Expect(1, 159, '\p{Gc:_ Cc}', "");
-    Expect(0, 159, '\p{^Gc:_ Cc}', "");
-    Expect(0, 159, '\P{Gc:_ Cc}', "");
-    Expect(1, 159, '\P{^Gc:_ Cc}', "");
-    Expect(0, 160, '\p{Gc:_ Cc}', "");
-    Expect(1, 160, '\p{^Gc:_ Cc}', "");
-    Expect(1, 160, '\P{Gc:_ Cc}', "");
-    Expect(0, 160, '\P{^Gc:_ Cc}', "");
-    Error('\p{Category:    /a/cntrl}');
-    Error('\P{Category:    /a/cntrl}');
+    Expect(1, 159, '\p{Gc: 	cc}', "");
+    Expect(0, 159, '\p{^Gc: 	cc}', "");
+    Expect(0, 159, '\P{Gc: 	cc}', "");
+    Expect(1, 159, '\P{^Gc: 	cc}', "");
+    Expect(0, 160, '\p{Gc: 	cc}', "");
+    Expect(1, 160, '\p{^Gc: 	cc}', "");
+    Expect(1, 160, '\P{Gc: 	cc}', "");
+    Expect(0, 160, '\P{^Gc: 	cc}', "");
+    Error('\p{Category=:=-Cntrl}');
+    Error('\P{Category=:=-Cntrl}');
     Expect(1, 159, '\p{Category=:\ACntrl\z:}', "");;
     Expect(0, 160, '\p{Category=:\ACntrl\z:}', "");;
     Expect(1, 159, '\p{Category=cntrl}', "");
@@ -38959,16 +39527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 160, '\P{^Category=cntrl}', "");
     Expect(1, 159, '\p{Category=:\Acntrl\z:}', "");;
     Expect(0, 160, '\p{Category=:\Acntrl\z:}', "");;
-    Expect(1, 159, '\p{Category= -Cntrl}', "");
-    Expect(0, 159, '\p{^Category= -Cntrl}', "");
-    Expect(0, 159, '\P{Category= -Cntrl}', "");
-    Expect(1, 159, '\P{^Category= -Cntrl}', "");
-    Expect(0, 160, '\p{Category= -Cntrl}', "");
-    Expect(1, 160, '\p{^Category= -Cntrl}', "");
-    Expect(1, 160, '\P{Category= -Cntrl}', "");
-    Expect(0, 160, '\P{^Category= -Cntrl}', "");
-    Error('\p{Is_General_Category: -:=Control}');
-    Error('\P{Is_General_Category: -:=Control}');
+    Expect(1, 159, '\p{Category=		cntrl}', "");
+    Expect(0, 159, '\p{^Category=		cntrl}', "");
+    Expect(0, 159, '\P{Category=		cntrl}', "");
+    Expect(1, 159, '\P{^Category=		cntrl}', "");
+    Expect(0, 160, '\p{Category=		cntrl}', "");
+    Expect(1, 160, '\p{^Category=		cntrl}', "");
+    Expect(1, 160, '\P{Category=		cntrl}', "");
+    Expect(0, 160, '\P{^Category=		cntrl}', "");
+    Error('\p{Is_General_Category=/a/	 Control}');
+    Error('\P{Is_General_Category=/a/	 Control}');
     Expect(1, 159, '\p{Is_General_Category=control}', "");
     Expect(0, 159, '\p{^Is_General_Category=control}', "");
     Expect(0, 159, '\P{Is_General_Category=control}', "");
@@ -38977,16 +39545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 160, '\p{^Is_General_Category=control}', "");
     Expect(1, 160, '\P{Is_General_Category=control}', "");
     Expect(0, 160, '\P{^Is_General_Category=control}', "");
-    Expect(1, 159, '\p{Is_General_Category=	 CONTROL}', "");
-    Expect(0, 159, '\p{^Is_General_Category=	 CONTROL}', "");
-    Expect(0, 159, '\P{Is_General_Category=	 CONTROL}', "");
-    Expect(1, 159, '\P{^Is_General_Category=	 CONTROL}', "");
-    Expect(0, 160, '\p{Is_General_Category=	 CONTROL}', "");
-    Expect(1, 160, '\p{^Is_General_Category=	 CONTROL}', "");
-    Expect(1, 160, '\P{Is_General_Category=	 CONTROL}', "");
-    Expect(0, 160, '\P{^Is_General_Category=	 CONTROL}', "");
-    Error('\p{Is_Gc=_/a/cc}');
-    Error('\P{Is_Gc=_/a/cc}');
+    Expect(1, 159, '\p{Is_General_Category:   --Control}', "");
+    Expect(0, 159, '\p{^Is_General_Category:   --Control}', "");
+    Expect(0, 159, '\P{Is_General_Category:   --Control}', "");
+    Expect(1, 159, '\P{^Is_General_Category:   --Control}', "");
+    Expect(0, 160, '\p{Is_General_Category:   --Control}', "");
+    Expect(1, 160, '\p{^Is_General_Category:   --Control}', "");
+    Expect(1, 160, '\P{Is_General_Category:   --Control}', "");
+    Expect(0, 160, '\P{^Is_General_Category:   --Control}', "");
+    Error('\p{Is_Gc= Cc:=}');
+    Error('\P{Is_Gc= Cc:=}');
     Expect(1, 159, '\p{Is_Gc=cc}', "");
     Expect(0, 159, '\p{^Is_Gc=cc}', "");
     Expect(0, 159, '\P{Is_Gc=cc}', "");
@@ -38995,16 +39563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 160, '\p{^Is_Gc=cc}', "");
     Expect(1, 160, '\P{Is_Gc=cc}', "");
     Expect(0, 160, '\P{^Is_Gc=cc}', "");
-    Expect(1, 159, '\p{Is_Gc=_-Cc}', "");
-    Expect(0, 159, '\p{^Is_Gc=_-Cc}', "");
-    Expect(0, 159, '\P{Is_Gc=_-Cc}', "");
-    Expect(1, 159, '\P{^Is_Gc=_-Cc}', "");
-    Expect(0, 160, '\p{Is_Gc=_-Cc}', "");
-    Expect(1, 160, '\p{^Is_Gc=_-Cc}', "");
-    Expect(1, 160, '\P{Is_Gc=_-Cc}', "");
-    Expect(0, 160, '\P{^Is_Gc=_-Cc}', "");
-    Error('\p{Is_Category=_/a/Cntrl}');
-    Error('\P{Is_Category=_/a/Cntrl}');
+    Expect(1, 159, '\p{Is_Gc= 	Cc}', "");
+    Expect(0, 159, '\p{^Is_Gc= 	Cc}', "");
+    Expect(0, 159, '\P{Is_Gc= 	Cc}', "");
+    Expect(1, 159, '\P{^Is_Gc= 	Cc}', "");
+    Expect(0, 160, '\p{Is_Gc= 	Cc}', "");
+    Expect(1, 160, '\p{^Is_Gc= 	Cc}', "");
+    Expect(1, 160, '\P{Is_Gc= 	Cc}', "");
+    Expect(0, 160, '\P{^Is_Gc= 	Cc}', "");
+    Error('\p{Is_Category= /a/Cntrl}');
+    Error('\P{Is_Category= /a/Cntrl}');
     Expect(1, 159, '\p{Is_Category=cntrl}', "");
     Expect(0, 159, '\p{^Is_Category=cntrl}', "");
     Expect(0, 159, '\P{Is_Category=cntrl}', "");
@@ -39013,16 +39581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 160, '\p{^Is_Category=cntrl}', "");
     Expect(1, 160, '\P{Is_Category=cntrl}', "");
     Expect(0, 160, '\P{^Is_Category=cntrl}', "");
-    Expect(1, 159, '\p{Is_Category=-_Cntrl}', "");
-    Expect(0, 159, '\p{^Is_Category=-_Cntrl}', "");
-    Expect(0, 159, '\P{Is_Category=-_Cntrl}', "");
-    Expect(1, 159, '\P{^Is_Category=-_Cntrl}', "");
-    Expect(0, 160, '\p{Is_Category=-_Cntrl}', "");
-    Expect(1, 160, '\p{^Is_Category=-_Cntrl}', "");
-    Expect(1, 160, '\P{Is_Category=-_Cntrl}', "");
-    Expect(0, 160, '\P{^Is_Category=-_Cntrl}', "");
-    Error('\p{General_Category=_FORMAT:=}');
-    Error('\P{General_Category=_FORMAT:=}');
+    Expect(1, 159, '\p{Is_Category:	__cntrl}', "");
+    Expect(0, 159, '\p{^Is_Category:	__cntrl}', "");
+    Expect(0, 159, '\P{Is_Category:	__cntrl}', "");
+    Expect(1, 159, '\P{^Is_Category:	__cntrl}', "");
+    Expect(0, 160, '\p{Is_Category:	__cntrl}', "");
+    Expect(1, 160, '\p{^Is_Category:	__cntrl}', "");
+    Expect(1, 160, '\P{Is_Category:	__cntrl}', "");
+    Expect(0, 160, '\P{^Is_Category:	__cntrl}', "");
+    Error('\p{General_Category=--Format:=}');
+    Error('\P{General_Category=--Format:=}');
     Expect(1, 917631, '\p{General_Category=:\AFormat\z:}', "");;
     Expect(0, 917632, '\p{General_Category=:\AFormat\z:}', "");;
     Expect(1, 917631, '\p{General_Category=format}', "");
@@ -39035,16 +39603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^General_Category=format}', "");
     Expect(1, 917631, '\p{General_Category=:\Aformat\z:}', "");;
     Expect(0, 917632, '\p{General_Category=:\Aformat\z:}', "");;
-    Expect(1, 917631, '\p{General_Category= Format}', "");
-    Expect(0, 917631, '\p{^General_Category= Format}', "");
-    Expect(0, 917631, '\P{General_Category= Format}', "");
-    Expect(1, 917631, '\P{^General_Category= Format}', "");
-    Expect(0, 917632, '\p{General_Category= Format}', "");
-    Expect(1, 917632, '\p{^General_Category= Format}', "");
-    Expect(1, 917632, '\P{General_Category= Format}', "");
-    Expect(0, 917632, '\P{^General_Category= Format}', "");
-    Error('\p{Gc=-:=Cf}');
-    Error('\P{Gc=-:=Cf}');
+    Expect(1, 917631, '\p{General_Category=		format}', "");
+    Expect(0, 917631, '\p{^General_Category=		format}', "");
+    Expect(0, 917631, '\P{General_Category=		format}', "");
+    Expect(1, 917631, '\P{^General_Category=		format}', "");
+    Expect(0, 917632, '\p{General_Category=		format}', "");
+    Expect(1, 917632, '\p{^General_Category=		format}', "");
+    Expect(1, 917632, '\P{General_Category=		format}', "");
+    Expect(0, 917632, '\P{^General_Category=		format}', "");
+    Error('\p{Gc=_:=Cf}');
+    Error('\P{Gc=_:=Cf}');
     Expect(1, 917631, '\p{Gc=:\ACf\z:}', "");;
     Expect(0, 917632, '\p{Gc=:\ACf\z:}', "");;
     Expect(1, 917631, '\p{Gc=cf}', "");
@@ -39057,38 +39625,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 917632, '\P{^Gc=cf}', "");
     Expect(1, 917631, '\p{Gc=:\Acf\z:}', "");;
     Expect(0, 917632, '\p{Gc=:\Acf\z:}', "");;
-    Expect(1, 917631, '\p{Gc:	- CF}', "");
-    Expect(0, 917631, '\p{^Gc:	- CF}', "");
-    Expect(0, 917631, '\P{Gc:	- CF}', "");
-    Expect(1, 917631, '\P{^Gc:	- CF}', "");
-    Expect(0, 917632, '\p{Gc:	- CF}', "");
-    Expect(1, 917632, '\p{^Gc:	- CF}', "");
-    Expect(1, 917632, '\P{Gc:	- CF}', "");
-    Expect(0, 917632, '\P{^Gc:	- CF}', "");
-    Error('\p{Category=/a/FORMAT}');
-    Error('\P{Category=/a/FORMAT}');
+    Expect(1, 917631, '\p{Gc=	Cf}', "");
+    Expect(0, 917631, '\p{^Gc=	Cf}', "");
+    Expect(0, 917631, '\P{Gc=	Cf}', "");
+    Expect(1, 917631, '\P{^Gc=	Cf}', "");
+    Expect(0, 917632, '\p{Gc=	Cf}', "");
+    Expect(1, 917632, '\p{^Gc=	Cf}', "");
+    Expect(1, 917632, '\P{Gc=	Cf}', "");
+    Expect(0, 917632, '\P{^Gc=	Cf}', "");
+    Error('\p{Category=	/a/format}');
+    Error('\P{Category=	/a/format}');
     Expect(1, 917631, '\p{Category=:\AFormat\z:}', "");;
     Expect(0, 917632, '\p{Category=:\AFormat\z:}', "");;
-    Expect(1, 917631, '\p{Category=format}', "");
-    Expect(0, 917631, '\p{^Category=format}', "");
-    Expect(0, 917631, '\P{Category=format}', "");
-    Expect(1, 917631, '\P{^Category=format}', "");
-    Expect(0, 917632, '\p{Category=format}', "");
-    Expect(1, 917632, '\p{^Category=format}', "");
-    Expect(1, 917632, '\P{Category=format}', "");
-    Expect(0, 917632, '\P{^Category=format}', "");
+    Expect(1, 917631, '\p{Category:format}', "");
+    Expect(0, 917631, '\p{^Category:format}', "");
+    Expect(0, 917631, '\P{Category:format}', "");
+    Expect(1, 917631, '\P{^Category:format}', "");
+    Expect(0, 917632, '\p{Category:format}', "");
+    Expect(1, 917632, '\p{^Category:format}', "");
+    Expect(1, 917632, '\P{Category:format}', "");
+    Expect(0, 917632, '\P{^Category:format}', "");
     Expect(1, 917631, '\p{Category=:\Aformat\z:}', "");;
     Expect(0, 917632, '\p{Category=:\Aformat\z:}', "");;
-    Expect(1, 917631, '\p{Category=_format}', "");
-    Expect(0, 917631, '\p{^Category=_format}', "");
-    Expect(0, 917631, '\P{Category=_format}', "");
-    Expect(1, 917631, '\P{^Category=_format}', "");
-    Expect(0, 917632, '\p{Category=_format}', "");
-    Expect(1, 917632, '\p{^Category=_format}', "");
-    Expect(1, 917632, '\P{Category=_format}', "");
-    Expect(0, 917632, '\P{^Category=_format}', "");
-    Error('\p{Is_General_Category= :=Cf}');
-    Error('\P{Is_General_Category= :=Cf}');
+    Expect(1, 917631, '\p{Category=_Format}', "");
+    Expect(0, 917631, '\p{^Category=_Format}', "");
+    Expect(0, 917631, '\P{Category=_Format}', "");
+    Expect(1, 917631, '\P{^Category=_Format}', "");
+    Expect(0, 917632, '\p{Category=_Format}', "");
+    Expect(1, 917632, '\p{^Category=_Format}', "");
+    Expect(1, 917632, '\P{Category=_Format}', "");
+    Expect(0, 917632, '\P{^Category=_Format}', "");
+    Error('\p{Is_General_Category= _Cf/a/}');
+    Error('\P{Is_General_Category= _Cf/a/}');
     Expect(1, 917631, '\p{Is_General_Category=cf}', "");
     Expect(0, 917631, '\p{^Is_General_Category=cf}', "");
     Expect(0, 917631, '\P{Is_General_Category=cf}', "");
@@ -39097,16 +39665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917632, '\p{^Is_General_Category=cf}', "");
     Expect(1, 917632, '\P{Is_General_Category=cf}', "");
     Expect(0, 917632, '\P{^Is_General_Category=cf}', "");
-    Expect(1, 917631, '\p{Is_General_Category= _cf}', "");
-    Expect(0, 917631, '\p{^Is_General_Category= _cf}', "");
-    Expect(0, 917631, '\P{Is_General_Category= _cf}', "");
-    Expect(1, 917631, '\P{^Is_General_Category= _cf}', "");
-    Expect(0, 917632, '\p{Is_General_Category= _cf}', "");
-    Expect(1, 917632, '\p{^Is_General_Category= _cf}', "");
-    Expect(1, 917632, '\P{Is_General_Category= _cf}', "");
-    Expect(0, 917632, '\P{^Is_General_Category= _cf}', "");
-    Error('\p{Is_Gc=:=	-FORMAT}');
-    Error('\P{Is_Gc=:=	-FORMAT}');
+    Expect(1, 917631, '\p{Is_General_Category=-	Cf}', "");
+    Expect(0, 917631, '\p{^Is_General_Category=-	Cf}', "");
+    Expect(0, 917631, '\P{Is_General_Category=-	Cf}', "");
+    Expect(1, 917631, '\P{^Is_General_Category=-	Cf}', "");
+    Expect(0, 917632, '\p{Is_General_Category=-	Cf}', "");
+    Expect(1, 917632, '\p{^Is_General_Category=-	Cf}', "");
+    Expect(1, 917632, '\P{Is_General_Category=-	Cf}', "");
+    Expect(0, 917632, '\P{^Is_General_Category=-	Cf}', "");
+    Error('\p{Is_Gc=:=Format}');
+    Error('\P{Is_Gc=:=Format}');
     Expect(1, 917631, '\p{Is_Gc=format}', "");
     Expect(0, 917631, '\p{^Is_Gc=format}', "");
     Expect(0, 917631, '\P{Is_Gc=format}', "");
@@ -39115,16 +39683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917632, '\p{^Is_Gc=format}', "");
     Expect(1, 917632, '\P{Is_Gc=format}', "");
     Expect(0, 917632, '\P{^Is_Gc=format}', "");
-    Expect(1, 917631, '\p{Is_Gc=	Format}', "");
-    Expect(0, 917631, '\p{^Is_Gc=	Format}', "");
-    Expect(0, 917631, '\P{Is_Gc=	Format}', "");
-    Expect(1, 917631, '\P{^Is_Gc=	Format}', "");
-    Expect(0, 917632, '\p{Is_Gc=	Format}', "");
-    Expect(1, 917632, '\p{^Is_Gc=	Format}', "");
-    Expect(1, 917632, '\P{Is_Gc=	Format}', "");
-    Expect(0, 917632, '\P{^Is_Gc=	Format}', "");
-    Error('\p{Is_Category: :=	_cf}');
-    Error('\P{Is_Category: :=	_cf}');
+    Expect(1, 917631, '\p{Is_Gc= FORMAT}', "");
+    Expect(0, 917631, '\p{^Is_Gc= FORMAT}', "");
+    Expect(0, 917631, '\P{Is_Gc= FORMAT}', "");
+    Expect(1, 917631, '\P{^Is_Gc= FORMAT}', "");
+    Expect(0, 917632, '\p{Is_Gc= FORMAT}', "");
+    Expect(1, 917632, '\p{^Is_Gc= FORMAT}', "");
+    Expect(1, 917632, '\P{Is_Gc= FORMAT}', "");
+    Expect(0, 917632, '\P{^Is_Gc= FORMAT}', "");
+    Error('\p{Is_Category=:=- Cf}');
+    Error('\P{Is_Category=:=- Cf}');
     Expect(1, 917631, '\p{Is_Category=cf}', "");
     Expect(0, 917631, '\p{^Is_Category=cf}', "");
     Expect(0, 917631, '\P{Is_Category=cf}', "");
@@ -39133,16 +39701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 917632, '\p{^Is_Category=cf}', "");
     Expect(1, 917632, '\P{Is_Category=cf}', "");
     Expect(0, 917632, '\P{^Is_Category=cf}', "");
-    Expect(1, 917631, '\p{Is_Category:   -Cf}', "");
-    Expect(0, 917631, '\p{^Is_Category:   -Cf}', "");
-    Expect(0, 917631, '\P{Is_Category:   -Cf}', "");
-    Expect(1, 917631, '\P{^Is_Category:   -Cf}', "");
-    Expect(0, 917632, '\p{Is_Category:   -Cf}', "");
-    Expect(1, 917632, '\p{^Is_Category:   -Cf}', "");
-    Expect(1, 917632, '\P{Is_Category:   -Cf}', "");
-    Expect(0, 917632, '\P{^Is_Category:   -Cf}', "");
-    Error('\p{General_Category=:=_unassigned}');
-    Error('\P{General_Category=:=_unassigned}');
+    Expect(1, 917631, '\p{Is_Category=	 Cf}', "");
+    Expect(0, 917631, '\p{^Is_Category=	 Cf}', "");
+    Expect(0, 917631, '\P{Is_Category=	 Cf}', "");
+    Expect(1, 917631, '\P{^Is_Category=	 Cf}', "");
+    Expect(0, 917632, '\p{Is_Category=	 Cf}', "");
+    Expect(1, 917632, '\p{^Is_Category=	 Cf}', "");
+    Expect(1, 917632, '\P{Is_Category=	 Cf}', "");
+    Expect(0, 917632, '\P{^Is_Category=	 Cf}', "");
+    Error('\p{General_Category=	:=Unassigned}');
+    Error('\P{General_Category=	:=Unassigned}');
     Expect(1, 918000, '\p{General_Category=:\AUnassigned\z:}', "");;
     Expect(0, 1114109, '\p{General_Category=:\AUnassigned\z:}', "");;
     Expect(1, 918000, '\p{General_Category=unassigned}', "");
@@ -39155,16 +39723,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1114109, '\P{^General_Category=unassigned}', "");
     Expect(1, 918000, '\p{General_Category=:\Aunassigned\z:}', "");;
     Expect(0, 1114109, '\p{General_Category=:\Aunassigned\z:}', "");;
-    Expect(1, 918000, '\p{General_Category=- Unassigned}', "");
-    Expect(0, 918000, '\p{^General_Category=- Unassigned}', "");
-    Expect(0, 918000, '\P{General_Category=- Unassigned}', "");
-    Expect(1, 918000, '\P{^General_Category=- Unassigned}', "");
-    Expect(0, 1114109, '\p{General_Category=- Unassigned}', "");
-    Expect(1, 1114109, '\p{^General_Category=- Unassigned}', "");
-    Expect(1, 1114109, '\P{General_Category=- Unassigned}', "");
-    Expect(0, 1114109, '\P{^General_Category=- Unassigned}', "");
-    Error('\p{Gc=	_cn/a/}');
-    Error('\P{Gc=	_cn/a/}');
+    Expect(1, 918000, '\p{General_Category: Unassigned}', "");
+    Expect(0, 918000, '\p{^General_Category: Unassigned}', "");
+    Expect(0, 918000, '\P{General_Category: Unassigned}', "");
+    Expect(1, 918000, '\P{^General_Category: Unassigned}', "");
+    Expect(0, 1114109, '\p{General_Category: Unassigned}', "");
+    Expect(1, 1114109, '\p{^General_Category: Unassigned}', "");
+    Expect(1, 1114109, '\P{General_Category: Unassigned}', "");
+    Expect(0, 1114109, '\P{^General_Category: Unassigned}', "");
+    Error('\p{Gc=:=_	Cn}');
+    Error('\P{Gc=:=_	Cn}');
     Expect(1, 918000, '\p{Gc=:\ACn\z:}', "");;
     Expect(0, 1114109, '\p{Gc=:\ACn\z:}', "");;
     Expect(1, 918000, '\p{Gc=cn}', "");
@@ -39177,16 +39745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1114109, '\P{^Gc=cn}', "");
     Expect(1, 918000, '\p{Gc=:\Acn\z:}', "");;
     Expect(0, 1114109, '\p{Gc=:\Acn\z:}', "");;
-    Expect(1, 918000, '\p{Gc= -cn}', "");
-    Expect(0, 918000, '\p{^Gc= -cn}', "");
-    Expect(0, 918000, '\P{Gc= -cn}', "");
-    Expect(1, 918000, '\P{^Gc= -cn}', "");
-    Expect(0, 1114109, '\p{Gc= -cn}', "");
-    Expect(1, 1114109, '\p{^Gc= -cn}', "");
-    Expect(1, 1114109, '\P{Gc= -cn}', "");
-    Expect(0, 1114109, '\P{^Gc= -cn}', "");
-    Error('\p{Category=:= 	UNASSIGNED}');
-    Error('\P{Category=:= 	UNASSIGNED}');
+    Expect(1, 918000, '\p{Gc=	 Cn}', "");
+    Expect(0, 918000, '\p{^Gc=	 Cn}', "");
+    Expect(0, 918000, '\P{Gc=	 Cn}', "");
+    Expect(1, 918000, '\P{^Gc=	 Cn}', "");
+    Expect(0, 1114109, '\p{Gc=	 Cn}', "");
+    Expect(1, 1114109, '\p{^Gc=	 Cn}', "");
+    Expect(1, 1114109, '\P{Gc=	 Cn}', "");
+    Expect(0, 1114109, '\P{^Gc=	 Cn}', "");
+    Error('\p{Category=_unassigned/a/}');
+    Error('\P{Category=_unassigned/a/}');
     Expect(1, 918000, '\p{Category=:\AUnassigned\z:}', "");;
     Expect(0, 1114109, '\p{Category=:\AUnassigned\z:}', "");;
     Expect(1, 918000, '\p{Category=unassigned}', "");
@@ -39199,52 +39767,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 1114109, '\P{^Category=unassigned}', "");
     Expect(1, 918000, '\p{Category=:\Aunassigned\z:}', "");;
     Expect(0, 1114109, '\p{Category=:\Aunassigned\z:}', "");;
-    Expect(1, 918000, '\p{Category=--UNASSIGNED}', "");
-    Expect(0, 918000, '\p{^Category=--UNASSIGNED}', "");
-    Expect(0, 918000, '\P{Category=--UNASSIGNED}', "");
-    Expect(1, 918000, '\P{^Category=--UNASSIGNED}', "");
-    Expect(0, 1114109, '\p{Category=--UNASSIGNED}', "");
-    Expect(1, 1114109, '\p{^Category=--UNASSIGNED}', "");
-    Expect(1, 1114109, '\P{Category=--UNASSIGNED}', "");
-    Expect(0, 1114109, '\P{^Category=--UNASSIGNED}', "");
-    Error('\p{Is_General_Category=/a/  CN}');
-    Error('\P{Is_General_Category=/a/  CN}');
-    Expect(1, 918000, '\p{Is_General_Category:   cn}', "");
-    Expect(0, 918000, '\p{^Is_General_Category:   cn}', "");
-    Expect(0, 918000, '\P{Is_General_Category:   cn}', "");
-    Expect(1, 918000, '\P{^Is_General_Category:   cn}', "");
-    Expect(0, 1114109, '\p{Is_General_Category:   cn}', "");
-    Expect(1, 1114109, '\p{^Is_General_Category:   cn}', "");
-    Expect(1, 1114109, '\P{Is_General_Category:   cn}', "");
-    Expect(0, 1114109, '\P{^Is_General_Category:   cn}', "");
-    Expect(1, 918000, '\p{Is_General_Category=_-cn}', "");
-    Expect(0, 918000, '\p{^Is_General_Category=_-cn}', "");
-    Expect(0, 918000, '\P{Is_General_Category=_-cn}', "");
-    Expect(1, 918000, '\P{^Is_General_Category=_-cn}', "");
-    Expect(0, 1114109, '\p{Is_General_Category=_-cn}', "");
-    Expect(1, 1114109, '\p{^Is_General_Category=_-cn}', "");
-    Expect(1, 1114109, '\P{Is_General_Category=_-cn}', "");
-    Expect(0, 1114109, '\P{^Is_General_Category=_-cn}', "");
-    Error('\p{Is_Gc=:=- UNASSIGNED}');
-    Error('\P{Is_Gc=:=- UNASSIGNED}');
-    Expect(1, 918000, '\p{Is_Gc:unassigned}', "");
-    Expect(0, 918000, '\p{^Is_Gc:unassigned}', "");
-    Expect(0, 918000, '\P{Is_Gc:unassigned}', "");
-    Expect(1, 918000, '\P{^Is_Gc:unassigned}', "");
-    Expect(0, 1114109, '\p{Is_Gc:unassigned}', "");
-    Expect(1, 1114109, '\p{^Is_Gc:unassigned}', "");
-    Expect(1, 1114109, '\P{Is_Gc:unassigned}', "");
-    Expect(0, 1114109, '\P{^Is_Gc:unassigned}', "");
-    Expect(1, 918000, '\p{Is_Gc=_	unassigned}', "");
-    Expect(0, 918000, '\p{^Is_Gc=_	unassigned}', "");
-    Expect(0, 918000, '\P{Is_Gc=_	unassigned}', "");
-    Expect(1, 918000, '\P{^Is_Gc=_	unassigned}', "");
-    Expect(0, 1114109, '\p{Is_Gc=_	unassigned}', "");
-    Expect(1, 1114109, '\p{^Is_Gc=_	unassigned}', "");
-    Expect(1, 1114109, '\P{Is_Gc=_	unassigned}', "");
-    Expect(0, 1114109, '\P{^Is_Gc=_	unassigned}', "");
-    Error('\p{Is_Category=_cn/a/}');
-    Error('\P{Is_Category=_cn/a/}');
+    Expect(1, 918000, '\p{Category:   -Unassigned}', "");
+    Expect(0, 918000, '\p{^Category:   -Unassigned}', "");
+    Expect(0, 918000, '\P{Category:   -Unassigned}', "");
+    Expect(1, 918000, '\P{^Category:   -Unassigned}', "");
+    Expect(0, 1114109, '\p{Category:   -Unassigned}', "");
+    Expect(1, 1114109, '\p{^Category:   -Unassigned}', "");
+    Expect(1, 1114109, '\P{Category:   -Unassigned}', "");
+    Expect(0, 1114109, '\P{^Category:   -Unassigned}', "");
+    Error('\p{Is_General_Category:/a/--Cn}');
+    Error('\P{Is_General_Category:/a/--Cn}');
+    Expect(1, 918000, '\p{Is_General_Category=cn}', "");
+    Expect(0, 918000, '\p{^Is_General_Category=cn}', "");
+    Expect(0, 918000, '\P{Is_General_Category=cn}', "");
+    Expect(1, 918000, '\P{^Is_General_Category=cn}', "");
+    Expect(0, 1114109, '\p{Is_General_Category=cn}', "");
+    Expect(1, 1114109, '\p{^Is_General_Category=cn}', "");
+    Expect(1, 1114109, '\P{Is_General_Category=cn}', "");
+    Expect(0, 1114109, '\P{^Is_General_Category=cn}', "");
+    Expect(1, 918000, '\p{Is_General_Category=_	Cn}', "");
+    Expect(0, 918000, '\p{^Is_General_Category=_	Cn}', "");
+    Expect(0, 918000, '\P{Is_General_Category=_	Cn}', "");
+    Expect(1, 918000, '\P{^Is_General_Category=_	Cn}', "");
+    Expect(0, 1114109, '\p{Is_General_Category=_	Cn}', "");
+    Expect(1, 1114109, '\p{^Is_General_Category=_	Cn}', "");
+    Expect(1, 1114109, '\P{Is_General_Category=_	Cn}', "");
+    Expect(0, 1114109, '\P{^Is_General_Category=_	Cn}', "");
+    Error('\p{Is_Gc=_:=Unassigned}');
+    Error('\P{Is_Gc=_:=Unassigned}');
+    Expect(1, 918000, '\p{Is_Gc=unassigned}', "");
+    Expect(0, 918000, '\p{^Is_Gc=unassigned}', "");
+    Expect(0, 918000, '\P{Is_Gc=unassigned}', "");
+    Expect(1, 918000, '\P{^Is_Gc=unassigned}', "");
+    Expect(0, 1114109, '\p{Is_Gc=unassigned}', "");
+    Expect(1, 1114109, '\p{^Is_Gc=unassigned}', "");
+    Expect(1, 1114109, '\P{Is_Gc=unassigned}', "");
+    Expect(0, 1114109, '\P{^Is_Gc=unassigned}', "");
+    Expect(1, 918000, '\p{Is_Gc=Unassigned}', "");
+    Expect(0, 918000, '\p{^Is_Gc=Unassigned}', "");
+    Expect(0, 918000, '\P{Is_Gc=Unassigned}', "");
+    Expect(1, 918000, '\P{^Is_Gc=Unassigned}', "");
+    Expect(0, 1114109, '\p{Is_Gc=Unassigned}', "");
+    Expect(1, 1114109, '\p{^Is_Gc=Unassigned}', "");
+    Expect(1, 1114109, '\P{Is_Gc=Unassigned}', "");
+    Expect(0, 1114109, '\P{^Is_Gc=Unassigned}', "");
+    Error('\p{Is_Category= CN/a/}');
+    Error('\P{Is_Category= CN/a/}');
     Expect(1, 918000, '\p{Is_Category=cn}', "");
     Expect(0, 918000, '\p{^Is_Category=cn}', "");
     Expect(0, 918000, '\P{Is_Category=cn}', "");
@@ -39253,16 +39821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 1114109, '\p{^Is_Category=cn}', "");
     Expect(1, 1114109, '\P{Is_Category=cn}', "");
     Expect(0, 1114109, '\P{^Is_Category=cn}', "");
-    Expect(1, 918000, '\p{Is_Category=-cn}', "");
-    Expect(0, 918000, '\p{^Is_Category=-cn}', "");
-    Expect(0, 918000, '\P{Is_Category=-cn}', "");
-    Expect(1, 918000, '\P{^Is_Category=-cn}', "");
-    Expect(0, 1114109, '\p{Is_Category=-cn}', "");
-    Expect(1, 1114109, '\p{^Is_Category=-cn}', "");
-    Expect(1, 1114109, '\P{Is_Category=-cn}', "");
-    Expect(0, 1114109, '\P{^Is_Category=-cn}', "");
-    Error('\p{General_Category=:= Private_use}');
-    Error('\P{General_Category=:= Private_use}');
+    Expect(1, 918000, '\p{Is_Category=	_Cn}', "");
+    Expect(0, 918000, '\p{^Is_Category=	_Cn}', "");
+    Expect(0, 918000, '\P{Is_Category=	_Cn}', "");
+    Expect(1, 918000, '\P{^Is_Category=	_Cn}', "");
+    Expect(0, 1114109, '\p{Is_Category=	_Cn}', "");
+    Expect(1, 1114109, '\p{^Is_Category=	_Cn}', "");
+    Expect(1, 1114109, '\P{Is_Category=	_Cn}', "");
+    Expect(0, 1114109, '\P{^Is_Category=	_Cn}', "");
+    Error('\p{General_Category=/a/Private_USE}');
+    Error('\P{General_Category=/a/Private_USE}');
     Expect(1, 1114109, '\p{General_Category=:\APrivate_Use\z:}', "");;
     Expect(0, 63744, '\p{General_Category=:\APrivate_Use\z:}', "");;
     Expect(1, 1114109, '\p{General_Category=privateuse}', "");
@@ -39275,16 +39843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 63744, '\P{^General_Category=privateuse}', "");
     Expect(1, 1114109, '\p{General_Category=:\Aprivateuse\z:}', "");;
     Expect(0, 63744, '\p{General_Category=:\Aprivateuse\z:}', "");;
-    Expect(1, 1114109, '\p{General_Category=  PRIVATE_use}', "");
-    Expect(0, 1114109, '\p{^General_Category=  PRIVATE_use}', "");
-    Expect(0, 1114109, '\P{General_Category=  PRIVATE_use}', "");
-    Expect(1, 1114109, '\P{^General_Category=  PRIVATE_use}', "");
-    Expect(0, 63744, '\p{General_Category=  PRIVATE_use}', "");
-    Expect(1, 63744, '\p{^General_Category=  PRIVATE_use}', "");
-    Expect(1, 63744, '\P{General_Category=  PRIVATE_use}', "");
-    Expect(0, 63744, '\P{^General_Category=  PRIVATE_use}', "");
-    Error('\p{Gc=	CO/a/}');
-    Error('\P{Gc=	CO/a/}');
+    Expect(1, 1114109, '\p{General_Category=_	Private_USE}', "");
+    Expect(0, 1114109, '\p{^General_Category=_	Private_USE}', "");
+    Expect(0, 1114109, '\P{General_Category=_	Private_USE}', "");
+    Expect(1, 1114109, '\P{^General_Category=_	Private_USE}', "");
+    Expect(0, 63744, '\p{General_Category=_	Private_USE}', "");
+    Expect(1, 63744, '\p{^General_Category=_	Private_USE}', "");
+    Expect(1, 63744, '\P{General_Category=_	Private_USE}', "");
+    Expect(0, 63744, '\P{^General_Category=_	Private_USE}', "");
+    Error('\p{Gc=:=	 Co}');
+    Error('\P{Gc=:=	 Co}');
     Expect(1, 1114109, '\p{Gc=:\ACo\z:}', "");;
     Expect(0, 63744, '\p{Gc=:\ACo\z:}', "");;
     Expect(1, 1114109, '\p{Gc=co}', "");
@@ -39297,38 +39865,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 63744, '\P{^Gc=co}', "");
     Expect(1, 1114109, '\p{Gc=:\Aco\z:}', "");;
     Expect(0, 63744, '\p{Gc=:\Aco\z:}', "");;
-    Expect(1, 1114109, '\p{Gc= Co}', "");
-    Expect(0, 1114109, '\p{^Gc= Co}', "");
-    Expect(0, 1114109, '\P{Gc= Co}', "");
-    Expect(1, 1114109, '\P{^Gc= Co}', "");
-    Expect(0, 63744, '\p{Gc= Co}', "");
-    Expect(1, 63744, '\p{^Gc= Co}', "");
-    Expect(1, 63744, '\P{Gc= Co}', "");
-    Expect(0, 63744, '\P{^Gc= Co}', "");
-    Error('\p{Category=  Private_Use/a/}');
-    Error('\P{Category=  Private_Use/a/}');
+    Expect(1, 1114109, '\p{Gc=_CO}', "");
+    Expect(0, 1114109, '\p{^Gc=_CO}', "");
+    Expect(0, 1114109, '\P{Gc=_CO}', "");
+    Expect(1, 1114109, '\P{^Gc=_CO}', "");
+    Expect(0, 63744, '\p{Gc=_CO}', "");
+    Expect(1, 63744, '\p{^Gc=_CO}', "");
+    Expect(1, 63744, '\P{Gc=_CO}', "");
+    Expect(0, 63744, '\P{^Gc=_CO}', "");
+    Error('\p{Category=-:=private_Use}');
+    Error('\P{Category=-:=private_Use}');
     Expect(1, 1114109, '\p{Category=:\APrivate_Use\z:}', "");;
     Expect(0, 63744, '\p{Category=:\APrivate_Use\z:}', "");;
-    Expect(1, 1114109, '\p{Category:   privateuse}', "");
-    Expect(0, 1114109, '\p{^Category:   privateuse}', "");
-    Expect(0, 1114109, '\P{Category:   privateuse}', "");
-    Expect(1, 1114109, '\P{^Category:   privateuse}', "");
-    Expect(0, 63744, '\p{Category:   privateuse}', "");
-    Expect(1, 63744, '\p{^Category:   privateuse}', "");
-    Expect(1, 63744, '\P{Category:   privateuse}', "");
-    Expect(0, 63744, '\P{^Category:   privateuse}', "");
+    Expect(1, 1114109, '\p{Category=privateuse}', "");
+    Expect(0, 1114109, '\p{^Category=privateuse}', "");
+    Expect(0, 1114109, '\P{Category=privateuse}', "");
+    Expect(1, 1114109, '\P{^Category=privateuse}', "");
+    Expect(0, 63744, '\p{Category=privateuse}', "");
+    Expect(1, 63744, '\p{^Category=privateuse}', "");
+    Expect(1, 63744, '\P{Category=privateuse}', "");
+    Expect(0, 63744, '\P{^Category=privateuse}', "");
     Expect(1, 1114109, '\p{Category=:\Aprivateuse\z:}', "");;
     Expect(0, 63744, '\p{Category=:\Aprivateuse\z:}', "");;
-    Expect(1, 1114109, '\p{Category=	_Private_USE}', "");
-    Expect(0, 1114109, '\p{^Category=	_Private_USE}', "");
-    Expect(0, 1114109, '\P{Category=	_Private_USE}', "");
-    Expect(1, 1114109, '\P{^Category=	_Private_USE}', "");
-    Expect(0, 63744, '\p{Category=	_Private_USE}', "");
-    Expect(1, 63744, '\p{^Category=	_Private_USE}', "");
-    Expect(1, 63744, '\P{Category=	_Private_USE}', "");
-    Expect(0, 63744, '\P{^Category=	_Private_USE}', "");
-    Error('\p{Is_General_Category:	:= _CO}');
-    Error('\P{Is_General_Category:	:= _CO}');
+    Expect(1, 1114109, '\p{Category=	Private_Use}', "");
+    Expect(0, 1114109, '\p{^Category=	Private_Use}', "");
+    Expect(0, 1114109, '\P{Category=	Private_Use}', "");
+    Expect(1, 1114109, '\P{^Category=	Private_Use}', "");
+    Expect(0, 63744, '\p{Category=	Private_Use}', "");
+    Expect(1, 63744, '\p{^Category=	Private_Use}', "");
+    Expect(1, 63744, '\P{Category=	Private_Use}', "");
+    Expect(0, 63744, '\P{^Category=	Private_Use}', "");
+    Error('\p{Is_General_Category: /a/ CO}');
+    Error('\P{Is_General_Category: /a/ CO}');
     Expect(1, 1114109, '\p{Is_General_Category=co}', "");
     Expect(0, 1114109, '\p{^Is_General_Category=co}', "");
     Expect(0, 1114109, '\P{Is_General_Category=co}', "");
@@ -39337,34 +39905,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 63744, '\p{^Is_General_Category=co}', "");
     Expect(1, 63744, '\P{Is_General_Category=co}', "");
     Expect(0, 63744, '\P{^Is_General_Category=co}', "");
-    Expect(1, 1114109, '\p{Is_General_Category=- Co}', "");
-    Expect(0, 1114109, '\p{^Is_General_Category=- Co}', "");
-    Expect(0, 1114109, '\P{Is_General_Category=- Co}', "");
-    Expect(1, 1114109, '\P{^Is_General_Category=- Co}', "");
-    Expect(0, 63744, '\p{Is_General_Category=- Co}', "");
-    Expect(1, 63744, '\p{^Is_General_Category=- Co}', "");
-    Expect(1, 63744, '\P{Is_General_Category=- Co}', "");
-    Expect(0, 63744, '\P{^Is_General_Category=- Co}', "");
-    Error('\p{Is_Gc=/a/ PRIVATE_USE}');
-    Error('\P{Is_Gc=/a/ PRIVATE_USE}');
-    Expect(1, 1114109, '\p{Is_Gc:privateuse}', "");
-    Expect(0, 1114109, '\p{^Is_Gc:privateuse}', "");
-    Expect(0, 1114109, '\P{Is_Gc:privateuse}', "");
-    Expect(1, 1114109, '\P{^Is_Gc:privateuse}', "");
-    Expect(0, 63744, '\p{Is_Gc:privateuse}', "");
-    Expect(1, 63744, '\p{^Is_Gc:privateuse}', "");
-    Expect(1, 63744, '\P{Is_Gc:privateuse}', "");
-    Expect(0, 63744, '\P{^Is_Gc:privateuse}', "");
-    Expect(1, 1114109, '\p{Is_Gc=	_private_USE}', "");
-    Expect(0, 1114109, '\p{^Is_Gc=	_private_USE}', "");
-    Expect(0, 1114109, '\P{Is_Gc=	_private_USE}', "");
-    Expect(1, 1114109, '\P{^Is_Gc=	_private_USE}', "");
-    Expect(0, 63744, '\p{Is_Gc=	_private_USE}', "");
-    Expect(1, 63744, '\p{^Is_Gc=	_private_USE}', "");
-    Expect(1, 63744, '\P{Is_Gc=	_private_USE}', "");
-    Expect(0, 63744, '\P{^Is_Gc=	_private_USE}', "");
-    Error('\p{Is_Category=	:=Co}');
-    Error('\P{Is_Category=	:=Co}');
+    Expect(1, 1114109, '\p{Is_General_Category=	 co}', "");
+    Expect(0, 1114109, '\p{^Is_General_Category=	 co}', "");
+    Expect(0, 1114109, '\P{Is_General_Category=	 co}', "");
+    Expect(1, 1114109, '\P{^Is_General_Category=	 co}', "");
+    Expect(0, 63744, '\p{Is_General_Category=	 co}', "");
+    Expect(1, 63744, '\p{^Is_General_Category=	 co}', "");
+    Expect(1, 63744, '\P{Is_General_Category=	 co}', "");
+    Expect(0, 63744, '\P{^Is_General_Category=	 co}', "");
+    Error('\p{Is_Gc=	:=Private_Use}');
+    Error('\P{Is_Gc=	:=Private_Use}');
+    Expect(1, 1114109, '\p{Is_Gc=privateuse}', "");
+    Expect(0, 1114109, '\p{^Is_Gc=privateuse}', "");
+    Expect(0, 1114109, '\P{Is_Gc=privateuse}', "");
+    Expect(1, 1114109, '\P{^Is_Gc=privateuse}', "");
+    Expect(0, 63744, '\p{Is_Gc=privateuse}', "");
+    Expect(1, 63744, '\p{^Is_Gc=privateuse}', "");
+    Expect(1, 63744, '\P{Is_Gc=privateuse}', "");
+    Expect(0, 63744, '\P{^Is_Gc=privateuse}', "");
+    Expect(1, 1114109, '\p{Is_Gc=-_Private_Use}', "");
+    Expect(0, 1114109, '\p{^Is_Gc=-_Private_Use}', "");
+    Expect(0, 1114109, '\P{Is_Gc=-_Private_Use}', "");
+    Expect(1, 1114109, '\P{^Is_Gc=-_Private_Use}', "");
+    Expect(0, 63744, '\p{Is_Gc=-_Private_Use}', "");
+    Expect(1, 63744, '\p{^Is_Gc=-_Private_Use}', "");
+    Expect(1, 63744, '\P{Is_Gc=-_Private_Use}', "");
+    Expect(0, 63744, '\P{^Is_Gc=-_Private_Use}', "");
+    Error('\p{Is_Category=:=_-Co}');
+    Error('\P{Is_Category=:=_-Co}');
     Expect(1, 1114109, '\p{Is_Category=co}', "");
     Expect(0, 1114109, '\p{^Is_Category=co}', "");
     Expect(0, 1114109, '\P{Is_Category=co}', "");
@@ -39373,16 +39941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 63744, '\p{^Is_Category=co}', "");
     Expect(1, 63744, '\P{Is_Category=co}', "");
     Expect(0, 63744, '\P{^Is_Category=co}', "");
-    Expect(1, 1114109, '\p{Is_Category=	Co}', "");
-    Expect(0, 1114109, '\p{^Is_Category=	Co}', "");
-    Expect(0, 1114109, '\P{Is_Category=	Co}', "");
-    Expect(1, 1114109, '\P{^Is_Category=	Co}', "");
-    Expect(0, 63744, '\p{Is_Category=	Co}', "");
-    Expect(1, 63744, '\p{^Is_Category=	Co}', "");
-    Expect(1, 63744, '\P{Is_Category=	Co}', "");
-    Expect(0, 63744, '\P{^Is_Category=	Co}', "");
-    Error('\p{General_Category=:=	 Surrogate}');
-    Error('\P{General_Category=:=	 Surrogate}');
+    Expect(1, 1114109, '\p{Is_Category=--Co}', "");
+    Expect(0, 1114109, '\p{^Is_Category=--Co}', "");
+    Expect(0, 1114109, '\P{Is_Category=--Co}', "");
+    Expect(1, 1114109, '\P{^Is_Category=--Co}', "");
+    Expect(0, 63744, '\p{Is_Category=--Co}', "");
+    Expect(1, 63744, '\p{^Is_Category=--Co}', "");
+    Expect(1, 63744, '\P{Is_Category=--Co}', "");
+    Expect(0, 63744, '\P{^Is_Category=--Co}', "");
+    Error('\p{General_Category=/a/	SURROGATE}');
+    Error('\P{General_Category=/a/	SURROGATE}');
     Expect(1, 57343, '\p{General_Category=:\ASurrogate\z:}', "");;
     Expect(0, 57344, '\p{General_Category=:\ASurrogate\z:}', "");;
     Expect(1, 57343, '\p{General_Category=surrogate}', "");
@@ -39395,16 +39963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^General_Category=surrogate}', "");
     Expect(1, 57343, '\p{General_Category=:\Asurrogate\z:}', "");;
     Expect(0, 57344, '\p{General_Category=:\Asurrogate\z:}', "");;
-    Expect(1, 57343, '\p{General_Category:	surrogate}', "");
-    Expect(0, 57343, '\p{^General_Category:	surrogate}', "");
-    Expect(0, 57343, '\P{General_Category:	surrogate}', "");
-    Expect(1, 57343, '\P{^General_Category:	surrogate}', "");
-    Expect(0, 57344, '\p{General_Category:	surrogate}', "");
-    Expect(1, 57344, '\p{^General_Category:	surrogate}', "");
-    Expect(1, 57344, '\P{General_Category:	surrogate}', "");
-    Expect(0, 57344, '\P{^General_Category:	surrogate}', "");
-    Error('\p{Gc=/a/_Cs}');
-    Error('\P{Gc=/a/_Cs}');
+    Expect(1, 57343, '\p{General_Category=- Surrogate}', "");
+    Expect(0, 57343, '\p{^General_Category=- Surrogate}', "");
+    Expect(0, 57343, '\P{General_Category=- Surrogate}', "");
+    Expect(1, 57343, '\P{^General_Category=- Surrogate}', "");
+    Expect(0, 57344, '\p{General_Category=- Surrogate}', "");
+    Expect(1, 57344, '\p{^General_Category=- Surrogate}', "");
+    Expect(1, 57344, '\P{General_Category=- Surrogate}', "");
+    Expect(0, 57344, '\P{^General_Category=- Surrogate}', "");
+    Error('\p{Gc= 	CS/a/}');
+    Error('\P{Gc= 	CS/a/}');
     Expect(1, 57343, '\p{Gc=:\ACs\z:}', "");;
     Expect(0, 57344, '\p{Gc=:\ACs\z:}', "");;
     Expect(1, 57343, '\p{Gc=cs}', "");
@@ -39417,16 +39985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Gc=cs}', "");
     Expect(1, 57343, '\p{Gc=:\Acs\z:}', "");;
     Expect(0, 57344, '\p{Gc=:\Acs\z:}', "");;
-    Expect(1, 57343, '\p{Gc=__Cs}', "");
-    Expect(0, 57343, '\p{^Gc=__Cs}', "");
-    Expect(0, 57343, '\P{Gc=__Cs}', "");
-    Expect(1, 57343, '\P{^Gc=__Cs}', "");
-    Expect(0, 57344, '\p{Gc=__Cs}', "");
-    Expect(1, 57344, '\p{^Gc=__Cs}', "");
-    Expect(1, 57344, '\P{Gc=__Cs}', "");
-    Expect(0, 57344, '\P{^Gc=__Cs}', "");
-    Error('\p{Category=	_SURROGATE:=}');
-    Error('\P{Category=	_SURROGATE:=}');
+    Expect(1, 57343, '\p{Gc=_ CS}', "");
+    Expect(0, 57343, '\p{^Gc=_ CS}', "");
+    Expect(0, 57343, '\P{Gc=_ CS}', "");
+    Expect(1, 57343, '\P{^Gc=_ CS}', "");
+    Expect(0, 57344, '\p{Gc=_ CS}', "");
+    Expect(1, 57344, '\p{^Gc=_ CS}', "");
+    Expect(1, 57344, '\P{Gc=_ CS}', "");
+    Expect(0, 57344, '\P{^Gc=_ CS}', "");
+    Error('\p{Category=:=		surrogate}');
+    Error('\P{Category=:=		surrogate}');
     Expect(1, 57343, '\p{Category=:\ASurrogate\z:}', "");;
     Expect(0, 57344, '\p{Category=:\ASurrogate\z:}', "");;
     Expect(1, 57343, '\p{Category=surrogate}', "");
@@ -39439,16 +40007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 57344, '\P{^Category=surrogate}', "");
     Expect(1, 57343, '\p{Category=:\Asurrogate\z:}', "");;
     Expect(0, 57344, '\p{Category=:\Asurrogate\z:}', "");;
-    Expect(1, 57343, '\p{Category=  SURROGATE}', "");
-    Expect(0, 57343, '\p{^Category=  SURROGATE}', "");
-    Expect(0, 57343, '\P{Category=  SURROGATE}', "");
-    Expect(1, 57343, '\P{^Category=  SURROGATE}', "");
-    Expect(0, 57344, '\p{Category=  SURROGATE}', "");
-    Expect(1, 57344, '\p{^Category=  SURROGATE}', "");
-    Expect(1, 57344, '\P{Category=  SURROGATE}', "");
-    Expect(0, 57344, '\P{^Category=  SURROGATE}', "");
-    Error('\p{Is_General_Category= -cs:=}');
-    Error('\P{Is_General_Category= -cs:=}');
+    Expect(1, 57343, '\p{Category=--Surrogate}', "");
+    Expect(0, 57343, '\p{^Category=--Surrogate}', "");
+    Expect(0, 57343, '\P{Category=--Surrogate}', "");
+    Expect(1, 57343, '\P{^Category=--Surrogate}', "");
+    Expect(0, 57344, '\p{Category=--Surrogate}', "");
+    Expect(1, 57344, '\p{^Category=--Surrogate}', "");
+    Expect(1, 57344, '\P{Category=--Surrogate}', "");
+    Expect(0, 57344, '\P{^Category=--Surrogate}', "");
+    Error('\p{Is_General_Category=	 Cs/a/}');
+    Error('\P{Is_General_Category=	 Cs/a/}');
     Expect(1, 57343, '\p{Is_General_Category=cs}', "");
     Expect(0, 57343, '\p{^Is_General_Category=cs}', "");
     Expect(0, 57343, '\P{Is_General_Category=cs}', "");
@@ -39457,16 +40025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_General_Category=cs}', "");
     Expect(1, 57344, '\P{Is_General_Category=cs}', "");
     Expect(0, 57344, '\P{^Is_General_Category=cs}', "");
-    Expect(1, 57343, '\p{Is_General_Category=	Cs}', "");
-    Expect(0, 57343, '\p{^Is_General_Category=	Cs}', "");
-    Expect(0, 57343, '\P{Is_General_Category=	Cs}', "");
-    Expect(1, 57343, '\P{^Is_General_Category=	Cs}', "");
-    Expect(0, 57344, '\p{Is_General_Category=	Cs}', "");
-    Expect(1, 57344, '\p{^Is_General_Category=	Cs}', "");
-    Expect(1, 57344, '\P{Is_General_Category=	Cs}', "");
-    Expect(0, 57344, '\P{^Is_General_Category=	Cs}', "");
-    Error('\p{Is_Gc=/a/Surrogate}');
-    Error('\P{Is_Gc=/a/Surrogate}');
+    Expect(1, 57343, '\p{Is_General_Category=-_CS}', "");
+    Expect(0, 57343, '\p{^Is_General_Category=-_CS}', "");
+    Expect(0, 57343, '\P{Is_General_Category=-_CS}', "");
+    Expect(1, 57343, '\P{^Is_General_Category=-_CS}', "");
+    Expect(0, 57344, '\p{Is_General_Category=-_CS}', "");
+    Expect(1, 57344, '\p{^Is_General_Category=-_CS}', "");
+    Expect(1, 57344, '\P{Is_General_Category=-_CS}', "");
+    Expect(0, 57344, '\P{^Is_General_Category=-_CS}', "");
+    Error('\p{Is_Gc=:=Surrogate}');
+    Error('\P{Is_Gc=:=Surrogate}');
     Expect(1, 57343, '\p{Is_Gc=surrogate}', "");
     Expect(0, 57343, '\p{^Is_Gc=surrogate}', "");
     Expect(0, 57343, '\P{Is_Gc=surrogate}', "");
@@ -39475,16 +40043,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Gc=surrogate}', "");
     Expect(1, 57344, '\P{Is_Gc=surrogate}', "");
     Expect(0, 57344, '\P{^Is_Gc=surrogate}', "");
-    Expect(1, 57343, '\p{Is_Gc: SURROGATE}', "");
-    Expect(0, 57343, '\p{^Is_Gc: SURROGATE}', "");
-    Expect(0, 57343, '\P{Is_Gc: SURROGATE}', "");
-    Expect(1, 57343, '\P{^Is_Gc: SURROGATE}', "");
-    Expect(0, 57344, '\p{Is_Gc: SURROGATE}', "");
-    Expect(1, 57344, '\p{^Is_Gc: SURROGATE}', "");
-    Expect(1, 57344, '\P{Is_Gc: SURROGATE}', "");
-    Expect(0, 57344, '\P{^Is_Gc: SURROGATE}', "");
-    Error('\p{Is_Category=:=_Cs}');
-    Error('\P{Is_Category=:=_Cs}');
+    Expect(1, 57343, '\p{Is_Gc=-surrogate}', "");
+    Expect(0, 57343, '\p{^Is_Gc=-surrogate}', "");
+    Expect(0, 57343, '\P{Is_Gc=-surrogate}', "");
+    Expect(1, 57343, '\P{^Is_Gc=-surrogate}', "");
+    Expect(0, 57344, '\p{Is_Gc=-surrogate}', "");
+    Expect(1, 57344, '\p{^Is_Gc=-surrogate}', "");
+    Expect(1, 57344, '\P{Is_Gc=-surrogate}', "");
+    Expect(0, 57344, '\P{^Is_Gc=-surrogate}', "");
+    Error('\p{Is_Category=		Cs/a/}');
+    Error('\P{Is_Category=		Cs/a/}');
     Expect(1, 57343, '\p{Is_Category=cs}', "");
     Expect(0, 57343, '\p{^Is_Category=cs}', "");
     Expect(0, 57343, '\P{Is_Category=cs}', "");
@@ -39493,136 +40061,138 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 57344, '\p{^Is_Category=cs}', "");
     Expect(1, 57344, '\P{Is_Category=cs}', "");
     Expect(0, 57344, '\P{^Is_Category=cs}', "");
-    Expect(1, 57343, '\p{Is_Category=	_Cs}', "");
-    Expect(0, 57343, '\p{^Is_Category=	_Cs}', "");
-    Expect(0, 57343, '\P{Is_Category=	_Cs}', "");
-    Expect(1, 57343, '\P{^Is_Category=	_Cs}', "");
-    Expect(0, 57344, '\p{Is_Category=	_Cs}', "");
-    Expect(1, 57344, '\p{^Is_Category=	_Cs}', "");
-    Expect(1, 57344, '\P{Is_Category=	_Cs}', "");
-    Expect(0, 57344, '\P{^Is_Category=	_Cs}', "");
-    Error('\p{General_Category=-_LETTER/a/}');
-    Error('\P{General_Category=-_LETTER/a/}');
-    Expect(1, 201546, '\p{General_Category=:\ALetter\z:}', "");;
-    Expect(0, 201547, '\p{General_Category=:\ALetter\z:}', "");;
-    Expect(1, 201546, '\p{General_Category=letter}', "");
-    Expect(0, 201546, '\p{^General_Category=letter}', "");
-    Expect(0, 201546, '\P{General_Category=letter}', "");
-    Expect(1, 201546, '\P{^General_Category=letter}', "");
-    Expect(0, 201547, '\p{General_Category=letter}', "");
-    Expect(1, 201547, '\p{^General_Category=letter}', "");
-    Expect(1, 201547, '\P{General_Category=letter}', "");
-    Expect(0, 201547, '\P{^General_Category=letter}', "");
-    Expect(1, 201546, '\p{General_Category=:\Aletter\z:}', "");;
-    Expect(0, 201547, '\p{General_Category=:\Aletter\z:}', "");;
-    Expect(1, 201546, '\p{General_Category=	Letter}', "");
-    Expect(0, 201546, '\p{^General_Category=	Letter}', "");
-    Expect(0, 201546, '\P{General_Category=	Letter}', "");
-    Expect(1, 201546, '\P{^General_Category=	Letter}', "");
-    Expect(0, 201547, '\p{General_Category=	Letter}', "");
-    Expect(1, 201547, '\p{^General_Category=	Letter}', "");
-    Expect(1, 201547, '\P{General_Category=	Letter}', "");
-    Expect(0, 201547, '\P{^General_Category=	Letter}', "");
-    Error('\p{Gc=:=	L}');
-    Error('\P{Gc=:=	L}');
-    Expect(1, 201546, '\p{Gc=:\AL\z:}', "");;
-    Expect(0, 201547, '\p{Gc=:\AL\z:}', "");;
-    Expect(1, 201546, '\p{Gc=l}', "");
-    Expect(0, 201546, '\p{^Gc=l}', "");
-    Expect(0, 201546, '\P{Gc=l}', "");
-    Expect(1, 201546, '\P{^Gc=l}', "");
-    Expect(0, 201547, '\p{Gc=l}', "");
-    Expect(1, 201547, '\p{^Gc=l}', "");
-    Expect(1, 201547, '\P{Gc=l}', "");
-    Expect(0, 201547, '\P{^Gc=l}', "");
-    Expect(1, 201546, '\p{Gc=:\Al\z:}', "");;
-    Expect(0, 201547, '\p{Gc=:\Al\z:}', "");;
-    Expect(1, 201546, '\p{Gc= 	L}', "");
-    Expect(0, 201546, '\p{^Gc= 	L}', "");
-    Expect(0, 201546, '\P{Gc= 	L}', "");
-    Expect(1, 201546, '\P{^Gc= 	L}', "");
-    Expect(0, 201547, '\p{Gc= 	L}', "");
-    Expect(1, 201547, '\p{^Gc= 	L}', "");
-    Expect(1, 201547, '\P{Gc= 	L}', "");
-    Expect(0, 201547, '\P{^Gc= 	L}', "");
-    Error('\p{Category=/a/_ LETTER}');
-    Error('\P{Category=/a/_ LETTER}');
-    Expect(1, 201546, '\p{Category=:\ALetter\z:}', "");;
-    Expect(0, 201547, '\p{Category=:\ALetter\z:}', "");;
-    Expect(1, 201546, '\p{Category:   letter}', "");
-    Expect(0, 201546, '\p{^Category:   letter}', "");
-    Expect(0, 201546, '\P{Category:   letter}', "");
-    Expect(1, 201546, '\P{^Category:   letter}', "");
-    Expect(0, 201547, '\p{Category:   letter}', "");
-    Expect(1, 201547, '\p{^Category:   letter}', "");
-    Expect(1, 201547, '\P{Category:   letter}', "");
-    Expect(0, 201547, '\P{^Category:   letter}', "");
-    Expect(1, 201546, '\p{Category=:\Aletter\z:}', "");;
-    Expect(0, 201547, '\p{Category=:\Aletter\z:}', "");;
-    Expect(1, 201546, '\p{Category=--Letter}', "");
-    Expect(0, 201546, '\p{^Category=--Letter}', "");
-    Expect(0, 201546, '\P{Category=--Letter}', "");
-    Expect(1, 201546, '\P{^Category=--Letter}', "");
-    Expect(0, 201547, '\p{Category=--Letter}', "");
-    Expect(1, 201547, '\p{^Category=--Letter}', "");
-    Expect(1, 201547, '\P{Category=--Letter}', "");
-    Expect(0, 201547, '\P{^Category=--Letter}', "");
-    Error('\p{Is_General_Category=_:=L}');
-    Error('\P{Is_General_Category=_:=L}');
-    Expect(1, 201546, '\p{Is_General_Category=l}', "");
-    Expect(0, 201546, '\p{^Is_General_Category=l}', "");
-    Expect(0, 201546, '\P{Is_General_Category=l}', "");
-    Expect(1, 201546, '\P{^Is_General_Category=l}', "");
-    Expect(0, 201547, '\p{Is_General_Category=l}', "");
-    Expect(1, 201547, '\p{^Is_General_Category=l}', "");
-    Expect(1, 201547, '\P{Is_General_Category=l}', "");
-    Expect(0, 201547, '\P{^Is_General_Category=l}', "");
-    Expect(1, 201546, '\p{Is_General_Category=--L}', "");
-    Expect(0, 201546, '\p{^Is_General_Category=--L}', "");
-    Expect(0, 201546, '\P{Is_General_Category=--L}', "");
-    Expect(1, 201546, '\P{^Is_General_Category=--L}', "");
-    Expect(0, 201547, '\p{Is_General_Category=--L}', "");
-    Expect(1, 201547, '\p{^Is_General_Category=--L}', "");
-    Expect(1, 201547, '\P{Is_General_Category=--L}', "");
-    Expect(0, 201547, '\P{^Is_General_Category=--L}', "");
-    Error('\p{Is_Gc=	:=letter}');
-    Error('\P{Is_Gc=	:=letter}');
-    Expect(1, 201546, '\p{Is_Gc=letter}', "");
-    Expect(0, 201546, '\p{^Is_Gc=letter}', "");
-    Expect(0, 201546, '\P{Is_Gc=letter}', "");
-    Expect(1, 201546, '\P{^Is_Gc=letter}', "");
-    Expect(0, 201547, '\p{Is_Gc=letter}', "");
-    Expect(1, 201547, '\p{^Is_Gc=letter}', "");
-    Expect(1, 201547, '\P{Is_Gc=letter}', "");
-    Expect(0, 201547, '\P{^Is_Gc=letter}', "");
-    Expect(1, 201546, '\p{Is_Gc=_LETTER}', "");
-    Expect(0, 201546, '\p{^Is_Gc=_LETTER}', "");
-    Expect(0, 201546, '\P{Is_Gc=_LETTER}', "");
-    Expect(1, 201546, '\P{^Is_Gc=_LETTER}', "");
-    Expect(0, 201547, '\p{Is_Gc=_LETTER}', "");
-    Expect(1, 201547, '\p{^Is_Gc=_LETTER}', "");
-    Expect(1, 201547, '\P{Is_Gc=_LETTER}', "");
-    Expect(0, 201547, '\P{^Is_Gc=_LETTER}', "");
-    Error('\p{Is_Category=:=L}');
-    Error('\P{Is_Category=:=L}');
-    Expect(1, 201546, '\p{Is_Category=l}', "");
-    Expect(0, 201546, '\p{^Is_Category=l}', "");
-    Expect(0, 201546, '\P{Is_Category=l}', "");
-    Expect(1, 201546, '\P{^Is_Category=l}', "");
-    Expect(0, 201547, '\p{Is_Category=l}', "");
-    Expect(1, 201547, '\p{^Is_Category=l}', "");
-    Expect(1, 201547, '\P{Is_Category=l}', "");
-    Expect(0, 201547, '\P{^Is_Category=l}', "");
-    Expect(1, 201546, '\p{Is_Category=L}', "");
-    Expect(0, 201546, '\p{^Is_Category=L}', "");
-    Expect(0, 201546, '\P{Is_Category=L}', "");
-    Expect(1, 201546, '\P{^Is_Category=L}', "");
-    Expect(0, 201547, '\p{Is_Category=L}', "");
-    Expect(1, 201547, '\p{^Is_Category=L}', "");
-    Expect(1, 201547, '\P{Is_Category=L}', "");
-    Expect(0, 201547, '\P{^Is_Category=L}', "");
-    Error('\p{General_Category= _CASED_letter/a/}');
-    Error('\P{General_Category= _CASED_letter/a/}');
+    Expect(1, 57343, '\p{Is_Category=__CS}', "");
+    Expect(0, 57343, '\p{^Is_Category=__CS}', "");
+    Expect(0, 57343, '\P{Is_Category=__CS}', "");
+    Expect(1, 57343, '\P{^Is_Category=__CS}', "");
+    Expect(0, 57344, '\p{Is_Category=__CS}', "");
+    Expect(1, 57344, '\p{^Is_Category=__CS}', "");
+    Expect(1, 57344, '\P{Is_Category=__CS}', "");
+    Expect(0, 57344, '\P{^Is_Category=__CS}', "");
+    Error('\p{General_Category=_/a/letter}');
+    Error('\P{General_Category=_/a/letter}');
+    Expect(1, 205743, '\p{General_Category=:\ALetter\z:}', "");;
+    Expect(0, 205744, '\p{General_Category=:\ALetter\z:}', "");;
+    Expect(1, 205743, '\p{General_Category=letter}', "");
+    Expect(0, 205743, '\p{^General_Category=letter}', "");
+    Expect(0, 205743, '\P{General_Category=letter}', "");
+    Expect(1, 205743, '\P{^General_Category=letter}', "");
+    Expect(0, 205744, '\p{General_Category=letter}', "");
+    Expect(1, 205744, '\p{^General_Category=letter}', "");
+    Expect(1, 205744, '\P{General_Category=letter}', "");
+    Expect(0, 205744, '\P{^General_Category=letter}', "");
+    Expect(1, 205743, '\p{General_Category=:\Aletter\z:}', "");;
+    Expect(0, 205744, '\p{General_Category=:\Aletter\z:}', "");;
+    Expect(1, 205743, '\p{General_Category= -Letter}', "");
+    Expect(0, 205743, '\p{^General_Category= -Letter}', "");
+    Expect(0, 205743, '\P{General_Category= -Letter}', "");
+    Expect(1, 205743, '\P{^General_Category= -Letter}', "");
+    Expect(0, 205744, '\p{General_Category= -Letter}', "");
+    Expect(1, 205744, '\p{^General_Category= -Letter}', "");
+    Expect(1, 205744, '\P{General_Category= -Letter}', "");
+    Expect(0, 205744, '\P{^General_Category= -Letter}', "");
+    Error('\p{Gc=:=_L}');
+    Error('\P{Gc=:=_L}');
+    Expect(1, 205743, '\p{Gc=:\AL\z:}', "");;
+    Expect(0, 205744, '\p{Gc=:\AL\z:}', "");;
+    Expect(1, 205743, '\p{Gc=l}', "");
+    Expect(0, 205743, '\p{^Gc=l}', "");
+    Expect(0, 205743, '\P{Gc=l}', "");
+    Expect(1, 205743, '\P{^Gc=l}', "");
+    Expect(0, 205744, '\p{Gc=l}', "");
+    Expect(1, 205744, '\p{^Gc=l}', "");
+    Expect(1, 205744, '\P{Gc=l}', "");
+    Expect(0, 205744, '\P{^Gc=l}', "");
+    Expect(1, 205743, '\p{Gc=:\Al\z:}', "");;
+    Expect(0, 205744, '\p{Gc=:\Al\z:}', "");;
+    Expect(1, 205743, '\p{Gc=--L}', "");
+    Expect(0, 205743, '\p{^Gc=--L}', "");
+    Expect(0, 205743, '\P{Gc=--L}', "");
+    Expect(1, 205743, '\P{^Gc=--L}', "");
+    Expect(0, 205744, '\p{Gc=--L}', "");
+    Expect(1, 205744, '\p{^Gc=--L}', "");
+    Expect(1, 205744, '\P{Gc=--L}', "");
+    Expect(0, 205744, '\P{^Gc=--L}', "");
+    Error('\p{Category=	:=LETTER}');
+    Error('\P{Category=	:=LETTER}');
+    Expect(1, 205743, '\p{Category=:\ALetter\z:}', "");;
+    Expect(0, 205744, '\p{Category=:\ALetter\z:}', "");;
+    Expect(1, 205743, '\p{Category=letter}', "");
+    Expect(0, 205743, '\p{^Category=letter}', "");
+    Expect(0, 205743, '\P{Category=letter}', "");
+    Expect(1, 205743, '\P{^Category=letter}', "");
+    Expect(0, 205744, '\p{Category=letter}', "");
+    Expect(1, 205744, '\p{^Category=letter}', "");
+    Expect(1, 205744, '\P{Category=letter}', "");
+    Expect(0, 205744, '\P{^Category=letter}', "");
+    Expect(1, 205743, '\p{Category=:\Aletter\z:}', "");;
+    Expect(0, 205744, '\p{Category=:\Aletter\z:}', "");;
+    Expect(1, 205743, '\p{Category=-Letter}', "");
+    Expect(0, 205743, '\p{^Category=-Letter}', "");
+    Expect(0, 205743, '\P{Category=-Letter}', "");
+    Expect(1, 205743, '\P{^Category=-Letter}', "");
+    Expect(0, 205744, '\p{Category=-Letter}', "");
+    Expect(1, 205744, '\p{^Category=-Letter}', "");
+    Expect(1, 205744, '\P{Category=-Letter}', "");
+    Expect(0, 205744, '\P{^Category=-Letter}', "");
+    Error('\p{Is_General_Category= _L/a/}');
+    Error('\P{Is_General_Category= _L/a/}');
+    Expect(1, 205743, '\p{Is_General_Category=l}', "");
+    Expect(0, 205743, '\p{^Is_General_Category=l}', "");
+    Expect(0, 205743, '\P{Is_General_Category=l}', "");
+    Expect(1, 205743, '\P{^Is_General_Category=l}', "");
+    Expect(0, 205744, '\p{Is_General_Category=l}', "");
+    Expect(1, 205744, '\p{^Is_General_Category=l}', "");
+    Expect(1, 205744, '\P{Is_General_Category=l}', "");
+    Expect(0, 205744, '\P{^Is_General_Category=l}', "");
+    Expect(1, 205743, '\p{Is_General_Category=  L}', "");
+    Expect(0, 205743, '\p{^Is_General_Category=  L}', "");
+    Expect(0, 205743, '\P{Is_General_Category=  L}', "");
+    Expect(1, 205743, '\P{^Is_General_Category=  L}', "");
+    Expect(0, 205744, '\p{Is_General_Category=  L}', "");
+    Expect(1, 205744, '\p{^Is_General_Category=  L}', "");
+    Expect(1, 205744, '\P{Is_General_Category=  L}', "");
+    Expect(0, 205744, '\P{^Is_General_Category=  L}', "");
+    Error('\p{Is_Gc= letter:=}');
+    Error('\P{Is_Gc= letter:=}');
+    Expect(1, 205743, '\p{Is_Gc=letter}', "");
+    Expect(0, 205743, '\p{^Is_Gc=letter}', "");
+    Expect(0, 205743, '\P{Is_Gc=letter}', "");
+    Expect(1, 205743, '\P{^Is_Gc=letter}', "");
+    Expect(0, 205744, '\p{Is_Gc=letter}', "");
+    Expect(1, 205744, '\p{^Is_Gc=letter}', "");
+    Expect(1, 205744, '\P{Is_Gc=letter}', "");
+    Expect(0, 205744, '\P{^Is_Gc=letter}', "");
+    Expect(1, 205743, '\p{Is_Gc= _letter}', "");
+    Expect(0, 205743, '\p{^Is_Gc= _letter}', "");
+    Expect(0, 205743, '\P{Is_Gc= _letter}', "");
+}
+if (!$::TESTCHUNK or $::TESTCHUNK == 2) {
+    Expect(1, 205743, '\P{^Is_Gc= _letter}', "");
+    Expect(0, 205744, '\p{Is_Gc= _letter}', "");
+    Expect(1, 205744, '\p{^Is_Gc= _letter}', "");
+    Expect(1, 205744, '\P{Is_Gc= _letter}', "");
+    Expect(0, 205744, '\P{^Is_Gc= _letter}', "");
+    Error('\p{Is_Category= l:=}');
+    Error('\P{Is_Category= l:=}');
+    Expect(1, 205743, '\p{Is_Category=l}', "");
+    Expect(0, 205743, '\p{^Is_Category=l}', "");
+    Expect(0, 205743, '\P{Is_Category=l}', "");
+    Expect(1, 205743, '\P{^Is_Category=l}', "");
+    Expect(0, 205744, '\p{Is_Category=l}', "");
+    Expect(1, 205744, '\p{^Is_Category=l}', "");
+    Expect(1, 205744, '\P{Is_Category=l}', "");
+    Expect(0, 205744, '\P{^Is_Category=l}', "");
+    Expect(1, 205743, '\p{Is_Category=-_l}', "");
+    Expect(0, 205743, '\p{^Is_Category=-_l}', "");
+    Expect(0, 205743, '\P{Is_Category=-_l}', "");
+    Expect(1, 205743, '\P{^Is_Category=-_l}', "");
+    Expect(0, 205744, '\p{Is_Category=-_l}', "");
+    Expect(1, 205744, '\p{^Is_Category=-_l}', "");
+    Expect(1, 205744, '\P{Is_Category=-_l}', "");
+    Expect(0, 205744, '\P{^Is_Category=-_l}', "");
+    Error('\p{General_Category=:=_-cased_Letter}');
+    Error('\P{General_Category=:=_-cased_Letter}');
     Expect(1, 125251, '\p{General_Category=:\ACased_Letter\z:}', "");;
     Expect(0, 125252, '\p{General_Category=:\ACased_Letter\z:}', "");;
     Expect(1, 125251, '\p{General_Category=casedletter}', "");
@@ -39635,16 +40205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^General_Category=casedletter}', "");
     Expect(1, 125251, '\p{General_Category=:\Acasedletter\z:}', "");;
     Expect(0, 125252, '\p{General_Category=:\Acasedletter\z:}', "");;
-    Expect(1, 125251, '\p{General_Category=	_CASED_Letter}', "");
-    Expect(0, 125251, '\p{^General_Category=	_CASED_Letter}', "");
-    Expect(0, 125251, '\P{General_Category=	_CASED_Letter}', "");
-    Expect(1, 125251, '\P{^General_Category=	_CASED_Letter}', "");
-    Expect(0, 125252, '\p{General_Category=	_CASED_Letter}', "");
-    Expect(1, 125252, '\p{^General_Category=	_CASED_Letter}', "");
-    Expect(1, 125252, '\P{General_Category=	_CASED_Letter}', "");
-    Expect(0, 125252, '\P{^General_Category=	_CASED_Letter}', "");
-    Error('\p{Gc= /a/lc}');
-    Error('\P{Gc= /a/lc}');
+    Expect(1, 125251, '\p{General_Category=-Cased_Letter}', "");
+    Expect(0, 125251, '\p{^General_Category=-Cased_Letter}', "");
+    Expect(0, 125251, '\P{General_Category=-Cased_Letter}', "");
+    Expect(1, 125251, '\P{^General_Category=-Cased_Letter}', "");
+    Expect(0, 125252, '\p{General_Category=-Cased_Letter}', "");
+    Expect(1, 125252, '\p{^General_Category=-Cased_Letter}', "");
+    Expect(1, 125252, '\P{General_Category=-Cased_Letter}', "");
+    Expect(0, 125252, '\P{^General_Category=-Cased_Letter}', "");
+    Error('\p{Gc=_LC:=}');
+    Error('\P{Gc=_LC:=}');
     Expect(1, 125251, '\p{Gc=:\ALC\z:}', "");;
     Expect(0, 125252, '\p{Gc=:\ALC\z:}', "");;
     Expect(1, 125251, '\p{Gc:	lc}', "");
@@ -39657,16 +40227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^Gc:	lc}', "");
     Expect(1, 125251, '\p{Gc=:\Alc\z:}', "");;
     Expect(0, 125252, '\p{Gc=:\Alc\z:}', "");;
-    Expect(1, 125251, '\p{Gc=		lc}', "");
-    Expect(0, 125251, '\p{^Gc=		lc}', "");
-    Expect(0, 125251, '\P{Gc=		lc}', "");
-    Expect(1, 125251, '\P{^Gc=		lc}', "");
-    Expect(0, 125252, '\p{Gc=		lc}', "");
-    Expect(1, 125252, '\p{^Gc=		lc}', "");
-    Expect(1, 125252, '\P{Gc=		lc}', "");
-    Expect(0, 125252, '\P{^Gc=		lc}', "");
-    Error('\p{Category=	-L_:=}');
-    Error('\P{Category=	-L_:=}');
+    Expect(1, 125251, '\p{Gc= -LC}', "");
+    Expect(0, 125251, '\p{^Gc= -LC}', "");
+    Expect(0, 125251, '\P{Gc= -LC}', "");
+    Expect(1, 125251, '\P{^Gc= -LC}', "");
+    Expect(0, 125252, '\p{Gc= -LC}', "");
+    Expect(1, 125252, '\p{^Gc= -LC}', "");
+    Expect(1, 125252, '\P{Gc= -LC}', "");
+    Expect(0, 125252, '\P{^Gc= -LC}', "");
+    Error('\p{Category=	-l_:=}');
+    Error('\P{Category=	-l_:=}');
     Expect(1, 125251, '\p{Category=l_}', "");
     Expect(0, 125251, '\p{^Category=l_}', "");
     Expect(0, 125251, '\P{Category=l_}', "");
@@ -39675,16 +40245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Category=l_}', "");
     Expect(1, 125252, '\P{Category=l_}', "");
     Expect(0, 125252, '\P{^Category=l_}', "");
-    Expect(1, 125251, '\p{Category= l_}', "");
-    Expect(0, 125251, '\p{^Category= l_}', "");
-    Expect(0, 125251, '\P{Category= l_}', "");
-    Expect(1, 125251, '\P{^Category= l_}', "");
-    Expect(0, 125252, '\p{Category= l_}', "");
-    Expect(1, 125252, '\p{^Category= l_}', "");
-    Expect(1, 125252, '\P{Category= l_}', "");
-    Expect(0, 125252, '\P{^Category= l_}', "");
-    Error('\p{Is_General_Category=-	L&/a/}');
-    Error('\P{Is_General_Category=-	L&/a/}');
+    Expect(1, 125251, '\p{Category= L_}', "");
+    Expect(0, 125251, '\p{^Category= L_}', "");
+    Expect(0, 125251, '\P{Category= L_}', "");
+    Expect(1, 125251, '\P{^Category= L_}', "");
+    Expect(0, 125252, '\p{Category= L_}', "");
+    Expect(1, 125252, '\p{^Category= L_}', "");
+    Expect(1, 125252, '\P{Category= L_}', "");
+    Expect(0, 125252, '\P{^Category= L_}', "");
+    Error('\p{Is_General_Category=_/a/L&}');
+    Error('\P{Is_General_Category=_/a/L&}');
     Expect(1, 125251, '\p{Is_General_Category=l&}', "");
     Expect(0, 125251, '\p{^Is_General_Category=l&}', "");
     Expect(0, 125251, '\P{Is_General_Category=l&}', "");
@@ -39701,26 +40271,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_General_Category=	-L&}', "");
     Expect(1, 125252, '\P{Is_General_Category=	-L&}', "");
     Expect(0, 125252, '\P{^Is_General_Category=	-L&}', "");
-    Error('\p{Is_Gc=-_CASED_LETTER/a/}');
-    Error('\P{Is_Gc=-_CASED_LETTER/a/}');
-    Expect(1, 125251, '\p{Is_Gc:casedletter}', "");
-    Expect(0, 125251, '\p{^Is_Gc:casedletter}', "");
-    Expect(0, 125251, '\P{Is_Gc:casedletter}', "");
-    Expect(1, 125251, '\P{^Is_Gc:casedletter}', "");
-    Expect(0, 125252, '\p{Is_Gc:casedletter}', "");
-    Expect(1, 125252, '\p{^Is_Gc:casedletter}', "");
-    Expect(1, 125252, '\P{Is_Gc:casedletter}', "");
-    Expect(0, 125252, '\P{^Is_Gc:casedletter}', "");
-    Expect(1, 125251, '\p{Is_Gc=_	Cased_Letter}', "");
-    Expect(0, 125251, '\p{^Is_Gc=_	Cased_Letter}', "");
-    Expect(0, 125251, '\P{Is_Gc=_	Cased_Letter}', "");
-    Expect(1, 125251, '\P{^Is_Gc=_	Cased_Letter}', "");
-    Expect(0, 125252, '\p{Is_Gc=_	Cased_Letter}', "");
-    Expect(1, 125252, '\p{^Is_Gc=_	Cased_Letter}', "");
-    Expect(1, 125252, '\P{Is_Gc=_	Cased_Letter}', "");
-    Expect(0, 125252, '\P{^Is_Gc=_	Cased_Letter}', "");
-    Error('\p{Is_Category=/a/- LC}');
-    Error('\P{Is_Category=/a/- LC}');
+    Error('\p{Is_Gc:_/a/Cased_Letter}');
+    Error('\P{Is_Gc:_/a/Cased_Letter}');
+    Expect(1, 125251, '\p{Is_Gc=casedletter}', "");
+    Expect(0, 125251, '\p{^Is_Gc=casedletter}', "");
+    Expect(0, 125251, '\P{Is_Gc=casedletter}', "");
+    Expect(1, 125251, '\P{^Is_Gc=casedletter}', "");
+    Expect(0, 125252, '\p{Is_Gc=casedletter}', "");
+    Expect(1, 125252, '\p{^Is_Gc=casedletter}', "");
+    Expect(1, 125252, '\P{Is_Gc=casedletter}', "");
+    Expect(0, 125252, '\P{^Is_Gc=casedletter}', "");
+    Expect(1, 125251, '\p{Is_Gc= 	Cased_letter}', "");
+    Expect(0, 125251, '\p{^Is_Gc= 	Cased_letter}', "");
+    Expect(0, 125251, '\P{Is_Gc= 	Cased_letter}', "");
+    Expect(1, 125251, '\P{^Is_Gc= 	Cased_letter}', "");
+    Expect(0, 125252, '\p{Is_Gc= 	Cased_letter}', "");
+    Expect(1, 125252, '\p{^Is_Gc= 	Cased_letter}', "");
+    Expect(1, 125252, '\P{Is_Gc= 	Cased_letter}', "");
+    Expect(0, 125252, '\P{^Is_Gc= 	Cased_letter}', "");
+    Error('\p{Is_Category=_-LC:=}');
+    Error('\P{Is_Category=_-LC:=}');
     Expect(1, 125251, '\p{Is_Category=lc}', "");
     Expect(0, 125251, '\p{^Is_Category=lc}', "");
     Expect(0, 125251, '\P{Is_Category=lc}', "");
@@ -39729,16 +40299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(1, 125252, '\p{^Is_Category=lc}', "");
     Expect(1, 125252, '\P{Is_Category=lc}', "");
     Expect(0, 125252, '\P{^Is_Category=lc}', "");
-    Expect(1, 125251, '\p{Is_Category=		LC}', "");
-    Expect(0, 125251, '\p{^Is_Category=		LC}', "");
-    Expect(0, 125251, '\P{Is_Category=		LC}', "");
-    Expect(1, 125251, '\P{^Is_Category=		LC}', "");
-    Expect(0, 125252, '\p{Is_Category=		LC}', "");
-    Expect(1, 125252, '\p{^Is_Category=		LC}', "");
-    Expect(1, 125252, '\P{Is_Category=		LC}', "");
-    Expect(0, 125252, '\P{^Is_Category=		LC}', "");
-    Error('\p{General_Category=/a/ lowercase_Letter}');
-    Error('\P{General_Category=/a/ lowercase_Letter}');
+    Expect(1, 125251, '\p{Is_Category=_-lc}', "");
+    Expect(0, 125251, '\p{^Is_Category=_-lc}', "");
+    Expect(0, 125251, '\P{Is_Category=_-lc}', "");
+    Expect(1, 125251, '\P{^Is_Category=_-lc}', "");
+    Expect(0, 125252, '\p{Is_Category=_-lc}', "");
+    Expect(1, 125252, '\p{^Is_Category=_-lc}', "");
+    Expect(1, 125252, '\P{Is_Category=_-lc}', "");
+    Expect(0, 125252, '\P{^Is_Category=_-lc}', "");
+    Error('\p{General_Category=/a/		Lowercase_Letter}');
+    Error('\P{General_Category=/a/		Lowercase_Letter}');
     Expect(1, 125251, '\p{General_Category=:\ALowercase_Letter\z:}', "");;
     Expect(0, 125252, '\p{General_Category=:\ALowercase_Letter\z:}', "");;
     Expect(1, 125251, '\p{General_Category=lowercaseletter}', "");
@@ -39751,16 +40321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^General_Category=lowercaseletter}', "");
     Expect(1, 125251, '\p{General_Category=:\Alowercaseletter\z:}', "");;
     Expect(0, 125252, '\p{General_Category=:\Alowercaseletter\z:}', "");;
-    Expect(1, 125251, '\p{General_Category=_-Lowercase_Letter}', "");
-    Expect(0, 125251, '\p{^General_Category=_-Lowercase_Letter}', "");
-    Expect(0, 125251, '\P{General_Category=_-Lowercase_Letter}', "");
-    Expect(1, 125251, '\P{^General_Category=_-Lowercase_Letter}', "");
-    Expect(0, 125252, '\p{General_Category=_-Lowercase_Letter}', "");
-    Expect(1, 125252, '\p{^General_Category=_-Lowercase_Letter}', "");
-    Expect(1, 125252, '\P{General_Category=_-Lowercase_Letter}', "");
-    Expect(0, 125252, '\P{^General_Category=_-Lowercase_Letter}', "");
-    Error('\p{Gc=	 Ll:=}');
-    Error('\P{Gc=	 Ll:=}');
+    Expect(1, 125251, '\p{General_Category=		lowercase_LETTER}', "");
+    Expect(0, 125251, '\p{^General_Category=		lowercase_LETTER}', "");
+    Expect(0, 125251, '\P{General_Category=		lowercase_LETTER}', "");
+    Expect(1, 125251, '\P{^General_Category=		lowercase_LETTER}', "");
+    Expect(0, 125252, '\p{General_Category=		lowercase_LETTER}', "");
+    Expect(1, 125252, '\p{^General_Category=		lowercase_LETTER}', "");
+    Expect(1, 125252, '\P{General_Category=		lowercase_LETTER}', "");
+    Expect(0, 125252, '\P{^General_Category=		lowercase_LETTER}', "");
+    Error('\p{Gc=/a/_Ll}');
+    Error('\P{Gc=/a/_Ll}');
     Expect(1, 125251, '\p{Gc=:\ALl\z:}', "");;
     Expect(0, 125252, '\p{Gc=:\ALl\z:}', "");;
     Expect(1, 125251, '\p{Gc=ll}', "");
@@ -39773,40 +40343,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 1) 
     Expect(0, 125252, '\P{^Gc=ll}', "");
     Expect(1, 125251, '\p{Gc=:\All\z:}', "");;
     Expect(0, 125252, '\p{Gc=:\All\z:}', "");;
-    Expect(1, 125251, '\p{Gc=_	LL}', "");
-    Expect(0, 125251, '\p{^Gc=_	LL}', "");
-    Expect(0, 125251, '\P{Gc=_	LL}', "");
-    Expect(1, 125251, '\P{^Gc=_	LL}', "");
-    Expect(0, 125252, '\p{Gc=_	LL}', "");
-    Expect(1, 125252, '\p{^Gc=_	LL}', "");
-    Expect(1, 125252, '\P{Gc=_	LL}', "");
-    Expect(0, 125252, '\P{^Gc=_	LL}', "");
-    Error('\p{Category=/a/- LOWERCASE_letter}');
-    Error('\P{Category=/a/- LOWERCASE_letter}');
+    Expect(1, 125251, '\p{Gc= Ll}', "");
+    Expect(0, 125251, '\p{^Gc= Ll}', "");
+    Expect(0, 125251, '\P{Gc= Ll}', "");
+    Expect(1, 125251, '\P{^Gc= Ll}', "");
+    Expect(0, 125252, '\p{Gc= Ll}', "");
+    Expect(1, 125252, '\p{^Gc= Ll}', "");
+    Expect(1, 125252, '\P{Gc= Ll}', "");
+    Expect(0, 125252, '\P{^Gc= Ll}', "");
+    Error('\p{Category:	__LOWERCASE_LETTER/a/}');
+    Error('\P{Category:	__LOWERCASE_LETTER/a/}');
     Expect(1, 125251, '\p{Category=:\ALowercase_Letter\z:}', "");;
     Expect(0, 125252, '\p{Category=:\ALowercase_Letter\z:}', "");;
-    Expect(1, 125251, '\p{Category:   lowercaseletter}', "");
-    Expect(0, 125251, '\p{^Category:   lowercaseletter}', "");
-    Expect(0, 125251, '\P{Category:   lowercaseletter}', "");
-    Expect(1, 125251, '\P{^Category:   lowercaseletter}', "");
-    Expect(0, 125252, '\p{Category:   lowercaseletter}', "");
-    Expect(1, 125252, '\p{^Category:   lowercaseletter}', "");
-    Expect(1, 125252, '\P{Category:   lowercaseletter}', "");
-    Expect(0, 125252, '\P{^Category:   lowercaseletter}', "");
+    Expect(1, 125251, '\p{Category=lowercaseletter}', "");
+    Expect(0, 125251, '\p{^Category=lowercaseletter}', "");
+    Expect(0, 125251, '\P{Category=lowercaseletter}', "");
+    Expect(1, 125251, '\P{^Category=lowercaseletter}', "");
+    Expect(0, 125252, '\p{Category=lowercaseletter}', "");
+    Expect(1, 125252, '\p{^Category=lowercaseletter}', "");
+    Expect(1, 125252, '\P{Category=lowercaseletter}', "");
+    Expect(0, 125252, '\P{^Category=lowercaseletter}', "");
     Expect(1, 125251, '\p{Category=:\Alowercaseletter\z:}', "");;
     Expect(0, 125252, '\p{Category=:\Alowercaseletter\z:}', "");;
-    Expect(1, 125251, '\p{Category=	_Lowercase_Letter}', "");
-    Expect(0, 125251, '\p{^Category=	_Lowercase_Letter}', "");
-    Expect(0, 125251, '\P{Category=	_Lowercase_Letter}', "");
-    Expect(1, 125251, '\P{^Category=	_Lowercase_Letter}', "");
-    Expect(0, 125252, '\p{Category=	_Lowercase_Letter}', "");
-    Expect(1, 125252, '\p{^Category=	_Lowercase_Letter}', "");
-    Expect(1, 125252, '\P{Category=	_Lowercase_Letter}', "");
-}
-if (!$::TESTCHUNK or $::TESTCHUNK == 2) {
-    Expect(0, 125252, '\P{^Category=	_Lowercase_Letter}', "");
-    Error('\p{Is_General_Category=:=	Ll}');
-    Error('\P{Is_General_Category=:=	Ll}');
+    Expect(1, 125251, '\p{Category=-Lowercase_LETTER}', "");
+    Expect(0, 125251, '\p{^Category=-Lowercase_LETTER}', "");
+    Expect(0, 125251, '\P{Category=-Lowercase_LETTER}', "");
+    Expect(1, 125251, '\P{^Category=-Lowercase_LETTER}', "");
+    Expect(0, 125252, '\p{Category=-Lowercase_LETTER}', "");
+    Expect(1, 125252, '\p{^Category=-Lowercase_LETTER}', "");
+    Expect(1, 125252, '\P{Category=-Lowercase_LETTER}', "");
+    Expect(0, 125252, '\P{^Category=-Lowercase_LETTER}', "");
+    Error('\p{Is_General_Category=	Ll/a/}');
+    Error('\P{Is_General_Category=	Ll/a/}');
     Expect(1, 125251, '\p{Is_General_Category=ll}', "");
     Expect(0, 125251, '\p{^Is_General_Category=ll}', "");
     Expect(0, 125251, '\P{Is_General_Category=ll}', "");
@@ -39815,34 +40383,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125252, '\p{^Is_General_Category=ll}', "");
     Expect(1, 125252, '\P{Is_General_Category=ll}', "");
     Expect(0, 125252, '\P{^Is_General_Category=ll}', "");
-    Expect(1, 125251, '\p{Is_General_Category=-Ll}', "");
-    Expect(0, 125251, '\p{^Is_General_Category=-Ll}', "");
-    Expect(0, 125251, '\P{Is_General_Category=-Ll}', "");
-    Expect(1, 125251, '\P{^Is_General_Category=-Ll}', "");
-    Expect(0, 125252, '\p{Is_General_Category=-Ll}', "");
-    Expect(1, 125252, '\p{^Is_General_Category=-Ll}', "");
-    Expect(1, 125252, '\P{Is_General_Category=-Ll}', "");
-    Expect(0, 125252, '\P{^Is_General_Category=-Ll}', "");
-    Error('\p{Is_Gc=_:=Lowercase_Letter}');
-    Error('\P{Is_Gc=_:=Lowercase_Letter}');
-    Expect(1, 125251, '\p{Is_Gc:   lowercaseletter}', "");
-    Expect(0, 125251, '\p{^Is_Gc:   lowercaseletter}', "");
-    Expect(0, 125251, '\P{Is_Gc:   lowercaseletter}', "");
-    Expect(1, 125251, '\P{^Is_Gc:   lowercaseletter}', "");
-    Expect(0, 125252, '\p{Is_Gc:   lowercaseletter}', "");
-    Expect(1, 125252, '\p{^Is_Gc:   lowercaseletter}', "");
-    Expect(1, 125252, '\P{Is_Gc:   lowercaseletter}', "");
-    Expect(0, 125252, '\P{^Is_Gc:   lowercaseletter}', "");
-    Expect(1, 125251, '\p{Is_Gc=__Lowercase_LETTER}', "");
-    Expect(0, 125251, '\p{^Is_Gc=__Lowercase_LETTER}', "");
-    Expect(0, 125251, '\P{Is_Gc=__Lowercase_LETTER}', "");
-    Expect(1, 125251, '\P{^Is_Gc=__Lowercase_LETTER}', "");
-    Expect(0, 125252, '\p{Is_Gc=__Lowercase_LETTER}', "");
-    Expect(1, 125252, '\p{^Is_Gc=__Lowercase_LETTER}', "");
-    Expect(1, 125252, '\P{Is_Gc=__Lowercase_LETTER}', "");
-    Expect(0, 125252, '\P{^Is_Gc=__Lowercase_LETTER}', "");
-    Error('\p{Is_Category=:=	Ll}');
-    Error('\P{Is_Category=:=	Ll}');
+    Expect(1, 125251, '\p{Is_General_Category=-_Ll}', "");
+    Expect(0, 125251, '\p{^Is_General_Category=-_Ll}', "");
+    Expect(0, 125251, '\P{Is_General_Category=-_Ll}', "");
+    Expect(1, 125251, '\P{^Is_General_Category=-_Ll}', "");
+    Expect(0, 125252, '\p{Is_General_Category=-_Ll}', "");
+    Expect(1, 125252, '\p{^Is_General_Category=-_Ll}', "");
+    Expect(1, 125252, '\P{Is_General_Category=-_Ll}', "");
+    Expect(0, 125252, '\P{^Is_General_Category=-_Ll}', "");
+    Error('\p{Is_Gc= _lowercase_Letter/a/}');
+    Error('\P{Is_Gc= _lowercase_Letter/a/}');
+    Expect(1, 125251, '\p{Is_Gc=lowercaseletter}', "");
+    Expect(0, 125251, '\p{^Is_Gc=lowercaseletter}', "");
+    Expect(0, 125251, '\P{Is_Gc=lowercaseletter}', "");
+    Expect(1, 125251, '\P{^Is_Gc=lowercaseletter}', "");
+    Expect(0, 125252, '\p{Is_Gc=lowercaseletter}', "");
+    Expect(1, 125252, '\p{^Is_Gc=lowercaseletter}', "");
+    Expect(1, 125252, '\P{Is_Gc=lowercaseletter}', "");
+    Expect(0, 125252, '\P{^Is_Gc=lowercaseletter}', "");
+    Expect(1, 125251, '\p{Is_Gc=_ lowercase_LETTER}', "");
+    Expect(0, 125251, '\p{^Is_Gc=_ lowercase_LETTER}', "");
+    Expect(0, 125251, '\P{Is_Gc=_ lowercase_LETTER}', "");
+    Expect(1, 125251, '\P{^Is_Gc=_ lowercase_LETTER}', "");
+    Expect(0, 125252, '\p{Is_Gc=_ lowercase_LETTER}', "");
+    Expect(1, 125252, '\p{^Is_Gc=_ lowercase_LETTER}', "");
+    Expect(1, 125252, '\P{Is_Gc=_ lowercase_LETTER}', "");
+    Expect(0, 125252, '\P{^Is_Gc=_ lowercase_LETTER}', "");
+    Error('\p{Is_Category=- Ll/a/}');
+    Error('\P{Is_Category=- Ll/a/}');
     Expect(1, 125251, '\p{Is_Category=ll}', "");
     Expect(0, 125251, '\p{^Is_Category=ll}', "");
     Expect(0, 125251, '\P{Is_Category=ll}', "");
@@ -39851,16 +40419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125252, '\p{^Is_Category=ll}', "");
     Expect(1, 125252, '\P{Is_Category=ll}', "");
     Expect(0, 125252, '\P{^Is_Category=ll}', "");
-    Expect(1, 125251, '\p{Is_Category=	LL}', "");
-    Expect(0, 125251, '\p{^Is_Category=	LL}', "");
-    Expect(0, 125251, '\P{Is_Category=	LL}', "");
-    Expect(1, 125251, '\P{^Is_Category=	LL}', "");
-    Expect(0, 125252, '\p{Is_Category=	LL}', "");
-    Expect(1, 125252, '\p{^Is_Category=	LL}', "");
-    Expect(1, 125252, '\P{Is_Category=	LL}', "");
-    Expect(0, 125252, '\P{^Is_Category=	LL}', "");
-    Error('\p{General_Category= Modifier_Letter:=}');
-    Error('\P{General_Category= Modifier_Letter:=}');
+    Expect(1, 125251, '\p{Is_Category: __LL}', "");
+    Expect(0, 125251, '\p{^Is_Category: __LL}', "");
+    Expect(0, 125251, '\P{Is_Category: __LL}', "");
+    Expect(1, 125251, '\P{^Is_Category: __LL}', "");
+    Expect(0, 125252, '\p{Is_Category: __LL}', "");
+    Expect(1, 125252, '\p{^Is_Category: __LL}', "");
+    Expect(1, 125252, '\P{Is_Category: __LL}', "");
+    Expect(0, 125252, '\P{^Is_Category: __LL}', "");
+    Error('\p{General_Category= -modifier_Letter:=}');
+    Error('\P{General_Category= -modifier_Letter:=}');
     Expect(1, 125259, '\p{General_Category=:\AModifier_Letter\z:}', "");;
     Expect(0, 125260, '\p{General_Category=:\AModifier_Letter\z:}', "");;
     Expect(1, 125259, '\p{General_Category=modifierletter}', "");
@@ -39873,16 +40441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125260, '\P{^General_Category=modifierletter}', "");
     Expect(1, 125259, '\p{General_Category=:\Amodifierletter\z:}', "");;
     Expect(0, 125260, '\p{General_Category=:\Amodifierletter\z:}', "");;
-    Expect(1, 125259, '\p{General_Category=	Modifier_LETTER}', "");
-    Expect(0, 125259, '\p{^General_Category=	Modifier_LETTER}', "");
-    Expect(0, 125259, '\P{General_Category=	Modifier_LETTER}', "");
-    Expect(1, 125259, '\P{^General_Category=	Modifier_LETTER}', "");
-    Expect(0, 125260, '\p{General_Category=	Modifier_LETTER}', "");
-    Expect(1, 125260, '\p{^General_Category=	Modifier_LETTER}', "");
-    Expect(1, 125260, '\P{General_Category=	Modifier_LETTER}', "");
-    Expect(0, 125260, '\P{^General_Category=	Modifier_LETTER}', "");
-    Error('\p{Gc=/a/--Lm}');
-    Error('\P{Gc=/a/--Lm}');
+    Expect(1, 125259, '\p{General_Category=_ Modifier_LETTER}', "");
+    Expect(0, 125259, '\p{^General_Category=_ Modifier_LETTER}', "");
+    Expect(0, 125259, '\P{General_Category=_ Modifier_LETTER}', "");
+    Expect(1, 125259, '\P{^General_Category=_ Modifier_LETTER}', "");
+    Expect(0, 125260, '\p{General_Category=_ Modifier_LETTER}', "");
+    Expect(1, 125260, '\p{^General_Category=_ Modifier_LETTER}', "");
+    Expect(1, 125260, '\P{General_Category=_ Modifier_LETTER}', "");
+    Expect(0, 125260, '\P{^General_Category=_ Modifier_LETTER}', "");
+    Error('\p{Gc=:=	_LM}');
+    Error('\P{Gc=:=	_LM}');
     Expect(1, 125259, '\p{Gc=:\ALm\z:}', "");;
     Expect(0, 125260, '\p{Gc=:\ALm\z:}', "");;
     Expect(1, 125259, '\p{Gc=lm}', "");
@@ -39895,16 +40463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125260, '\P{^Gc=lm}', "");
     Expect(1, 125259, '\p{Gc=:\Alm\z:}', "");;
     Expect(0, 125260, '\p{Gc=:\Alm\z:}', "");;
-    Expect(1, 125259, '\p{Gc= -Lm}', "");
-    Expect(0, 125259, '\p{^Gc= -Lm}', "");
-    Expect(0, 125259, '\P{Gc= -Lm}', "");
-    Expect(1, 125259, '\P{^Gc= -Lm}', "");
-    Expect(0, 125260, '\p{Gc= -Lm}', "");
-    Expect(1, 125260, '\p{^Gc= -Lm}', "");
-    Expect(1, 125260, '\P{Gc= -Lm}', "");
-    Expect(0, 125260, '\P{^Gc= -Lm}', "");
-    Error('\p{Category=/a/ Modifier_LETTER}');
-    Error('\P{Category=/a/ Modifier_LETTER}');
+    Expect(1, 125259, '\p{Gc=- LM}', "");
+    Expect(0, 125259, '\p{^Gc=- LM}', "");
+    Expect(0, 125259, '\P{Gc=- LM}', "");
+    Expect(1, 125259, '\P{^Gc=- LM}', "");
+    Expect(0, 125260, '\p{Gc=- LM}', "");
+    Expect(1, 125260, '\p{^Gc=- LM}', "");
+    Expect(1, 125260, '\P{Gc=- LM}', "");
+    Expect(0, 125260, '\P{^Gc=- LM}', "");
+    Error('\p{Category=/a/-Modifier_Letter}');
+    Error('\P{Category=/a/-Modifier_Letter}');
     Expect(1, 125259, '\p{Category=:\AModifier_Letter\z:}', "");;
     Expect(0, 125260, '\p{Category=:\AModifier_Letter\z:}', "");;
     Expect(1, 125259, '\p{Category=modifierletter}', "");
@@ -39917,16 +40485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125260, '\P{^Category=modifierletter}', "");
     Expect(1, 125259, '\p{Category=:\Amodifierletter\z:}', "");;
     Expect(0, 125260, '\p{Category=:\Amodifierletter\z:}', "");;
-    Expect(1, 125259, '\p{Category=	_Modifier_Letter}', "");
-    Expect(0, 125259, '\p{^Category=	_Modifier_Letter}', "");
-    Expect(0, 125259, '\P{Category=	_Modifier_Letter}', "");
-    Expect(1, 125259, '\P{^Category=	_Modifier_Letter}', "");
-    Expect(0, 125260, '\p{Category=	_Modifier_Letter}', "");
-    Expect(1, 125260, '\p{^Category=	_Modifier_Letter}', "");
-    Expect(1, 125260, '\P{Category=	_Modifier_Letter}', "");
-    Expect(0, 125260, '\P{^Category=	_Modifier_Letter}', "");
-    Error('\p{Is_General_Category=_ Lm:=}');
-    Error('\P{Is_General_Category=_ Lm:=}');
+    Expect(1, 125259, '\p{Category=-	MODIFIER_Letter}', "");
+    Expect(0, 125259, '\p{^Category=-	MODIFIER_Letter}', "");
+    Expect(0, 125259, '\P{Category=-	MODIFIER_Letter}', "");
+    Expect(1, 125259, '\P{^Category=-	MODIFIER_Letter}', "");
+    Expect(0, 125260, '\p{Category=-	MODIFIER_Letter}', "");
+    Expect(1, 125260, '\p{^Category=-	MODIFIER_Letter}', "");
+    Expect(1, 125260, '\P{Category=-	MODIFIER_Letter}', "");
+    Expect(0, 125260, '\P{^Category=-	MODIFIER_Letter}', "");
+    Error('\p{Is_General_Category=/a/_-Lm}');
+    Error('\P{Is_General_Category=/a/_-Lm}');
     Expect(1, 125259, '\p{Is_General_Category=lm}', "");
     Expect(0, 125259, '\p{^Is_General_Category=lm}', "");
     Expect(0, 125259, '\P{Is_General_Category=lm}', "");
@@ -39935,16 +40503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125260, '\p{^Is_General_Category=lm}', "");
     Expect(1, 125260, '\P{Is_General_Category=lm}', "");
     Expect(0, 125260, '\P{^Is_General_Category=lm}', "");
-    Expect(1, 125259, '\p{Is_General_Category=Lm}', "");
-    Expect(0, 125259, '\p{^Is_General_Category=Lm}', "");
-    Expect(0, 125259, '\P{Is_General_Category=Lm}', "");
-    Expect(1, 125259, '\P{^Is_General_Category=Lm}', "");
-    Expect(0, 125260, '\p{Is_General_Category=Lm}', "");
-    Expect(1, 125260, '\p{^Is_General_Category=Lm}', "");
-    Expect(1, 125260, '\P{Is_General_Category=Lm}', "");
-    Expect(0, 125260, '\P{^Is_General_Category=Lm}', "");
-    Error('\p{Is_Gc=/a/	MODIFIER_Letter}');
-    Error('\P{Is_Gc=/a/	MODIFIER_Letter}');
+    Expect(1, 125259, '\p{Is_General_Category=_ lm}', "");
+    Expect(0, 125259, '\p{^Is_General_Category=_ lm}', "");
+    Expect(0, 125259, '\P{Is_General_Category=_ lm}', "");
+    Expect(1, 125259, '\P{^Is_General_Category=_ lm}', "");
+    Expect(0, 125260, '\p{Is_General_Category=_ lm}', "");
+    Expect(1, 125260, '\p{^Is_General_Category=_ lm}', "");
+    Expect(1, 125260, '\P{Is_General_Category=_ lm}', "");
+    Expect(0, 125260, '\P{^Is_General_Category=_ lm}', "");
+    Error('\p{Is_Gc=/a/	MODIFIER_LETTER}');
+    Error('\P{Is_Gc=/a/	MODIFIER_LETTER}');
     Expect(1, 125259, '\p{Is_Gc=modifierletter}', "");
     Expect(0, 125259, '\p{^Is_Gc=modifierletter}', "");
     Expect(0, 125259, '\P{Is_Gc=modifierletter}', "");
@@ -39953,16 +40521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125260, '\p{^Is_Gc=modifierletter}', "");
     Expect(1, 125260, '\P{Is_Gc=modifierletter}', "");
     Expect(0, 125260, '\P{^Is_Gc=modifierletter}', "");
-    Expect(1, 125259, '\p{Is_Gc=_Modifier_LETTER}', "");
-    Expect(0, 125259, '\p{^Is_Gc=_Modifier_LETTER}', "");
-    Expect(0, 125259, '\P{Is_Gc=_Modifier_LETTER}', "");
-    Expect(1, 125259, '\P{^Is_Gc=_Modifier_LETTER}', "");
-    Expect(0, 125260, '\p{Is_Gc=_Modifier_LETTER}', "");
-    Expect(1, 125260, '\p{^Is_Gc=_Modifier_LETTER}', "");
-    Expect(1, 125260, '\P{Is_Gc=_Modifier_LETTER}', "");
-    Expect(0, 125260, '\P{^Is_Gc=_Modifier_LETTER}', "");
-    Error('\p{Is_Category=_/a/lm}');
-    Error('\P{Is_Category=_/a/lm}');
+    Expect(1, 125259, '\p{Is_Gc= _MODIFIER_Letter}', "");
+    Expect(0, 125259, '\p{^Is_Gc= _MODIFIER_Letter}', "");
+    Expect(0, 125259, '\P{Is_Gc= _MODIFIER_Letter}', "");
+    Expect(1, 125259, '\P{^Is_Gc= _MODIFIER_Letter}', "");
+    Expect(0, 125260, '\p{Is_Gc= _MODIFIER_Letter}', "");
+    Expect(1, 125260, '\p{^Is_Gc= _MODIFIER_Letter}', "");
+    Expect(1, 125260, '\P{Is_Gc= _MODIFIER_Letter}', "");
+    Expect(0, 125260, '\P{^Is_Gc= _MODIFIER_Letter}', "");
+    Error('\p{Is_Category=/a/  Lm}');
+    Error('\P{Is_Category=/a/  Lm}');
     Expect(1, 125259, '\p{Is_Category=lm}', "");
     Expect(0, 125259, '\p{^Is_Category=lm}', "");
     Expect(0, 125259, '\P{Is_Category=lm}', "");
@@ -39971,136 +40539,136 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125260, '\p{^Is_Category=lm}', "");
     Expect(1, 125260, '\P{Is_Category=lm}', "");
     Expect(0, 125260, '\P{^Is_Category=lm}', "");
-    Expect(1, 125259, '\p{Is_Category=	-Lm}', "");
-    Expect(0, 125259, '\p{^Is_Category=	-Lm}', "");
-    Expect(0, 125259, '\P{Is_Category=	-Lm}', "");
-    Expect(1, 125259, '\P{^Is_Category=	-Lm}', "");
-    Expect(0, 125260, '\p{Is_Category=	-Lm}', "");
-    Expect(1, 125260, '\p{^Is_Category=	-Lm}', "");
-    Expect(1, 125260, '\P{Is_Category=	-Lm}', "");
-    Expect(0, 125260, '\P{^Is_Category=	-Lm}', "");
-    Error('\p{General_Category=:=-_other_LETTER}');
-    Error('\P{General_Category=:=-_other_LETTER}');
-    Expect(1, 201546, '\p{General_Category=:\AOther_Letter\z:}', "");;
-    Expect(0, 201547, '\p{General_Category=:\AOther_Letter\z:}', "");;
-    Expect(1, 201546, '\p{General_Category:   otherletter}', "");
-    Expect(0, 201546, '\p{^General_Category:   otherletter}', "");
-    Expect(0, 201546, '\P{General_Category:   otherletter}', "");
-    Expect(1, 201546, '\P{^General_Category:   otherletter}', "");
-    Expect(0, 201547, '\p{General_Category:   otherletter}', "");
-    Expect(1, 201547, '\p{^General_Category:   otherletter}', "");
-    Expect(1, 201547, '\P{General_Category:   otherletter}', "");
-    Expect(0, 201547, '\P{^General_Category:   otherletter}', "");
-    Expect(1, 201546, '\p{General_Category=:\Aotherletter\z:}', "");;
-    Expect(0, 201547, '\p{General_Category=:\Aotherletter\z:}', "");;
-    Expect(1, 201546, '\p{General_Category=	-OTHER_LETTER}', "");
-    Expect(0, 201546, '\p{^General_Category=	-OTHER_LETTER}', "");
-    Expect(0, 201546, '\P{General_Category=	-OTHER_LETTER}', "");
-    Expect(1, 201546, '\P{^General_Category=	-OTHER_LETTER}', "");
-    Expect(0, 201547, '\p{General_Category=	-OTHER_LETTER}', "");
-    Expect(1, 201547, '\p{^General_Category=	-OTHER_LETTER}', "");
-    Expect(1, 201547, '\P{General_Category=	-OTHER_LETTER}', "");
-    Expect(0, 201547, '\P{^General_Category=	-OTHER_LETTER}', "");
-    Error('\p{Gc=_:=Lo}');
-    Error('\P{Gc=_:=Lo}');
-    Expect(1, 201546, '\p{Gc=:\ALo\z:}', "");;
-    Expect(0, 201547, '\p{Gc=:\ALo\z:}', "");;
-    Expect(1, 201546, '\p{Gc=lo}', "");
-    Expect(0, 201546, '\p{^Gc=lo}', "");
-    Expect(0, 201546, '\P{Gc=lo}', "");
-    Expect(1, 201546, '\P{^Gc=lo}', "");
-    Expect(0, 201547, '\p{Gc=lo}', "");
-    Expect(1, 201547, '\p{^Gc=lo}', "");
-    Expect(1, 201547, '\P{Gc=lo}', "");
-    Expect(0, 201547, '\P{^Gc=lo}', "");
-    Expect(1, 201546, '\p{Gc=:\Alo\z:}', "");;
-    Expect(0, 201547, '\p{Gc=:\Alo\z:}', "");;
-    Expect(1, 201546, '\p{Gc=	Lo}', "");
-    Expect(0, 201546, '\p{^Gc=	Lo}', "");
-    Expect(0, 201546, '\P{Gc=	Lo}', "");
-    Expect(1, 201546, '\P{^Gc=	Lo}', "");
-    Expect(0, 201547, '\p{Gc=	Lo}', "");
-    Expect(1, 201547, '\p{^Gc=	Lo}', "");
-    Expect(1, 201547, '\P{Gc=	Lo}', "");
-    Expect(0, 201547, '\P{^Gc=	Lo}', "");
-    Error('\p{Category= :=OTHER_Letter}');
-    Error('\P{Category= :=OTHER_Letter}');
-    Expect(1, 201546, '\p{Category=:\AOther_Letter\z:}', "");;
-    Expect(0, 201547, '\p{Category=:\AOther_Letter\z:}', "");;
-    Expect(1, 201546, '\p{Category=otherletter}', "");
-    Expect(0, 201546, '\p{^Category=otherletter}', "");
-    Expect(0, 201546, '\P{Category=otherletter}', "");
-    Expect(1, 201546, '\P{^Category=otherletter}', "");
-    Expect(0, 201547, '\p{Category=otherletter}', "");
-    Expect(1, 201547, '\p{^Category=otherletter}', "");
-    Expect(1, 201547, '\P{Category=otherletter}', "");
-    Expect(0, 201547, '\P{^Category=otherletter}', "");
-    Expect(1, 201546, '\p{Category=:\Aotherletter\z:}', "");;
-    Expect(0, 201547, '\p{Category=:\Aotherletter\z:}', "");;
-    Expect(1, 201546, '\p{Category=-Other_letter}', "");
-    Expect(0, 201546, '\p{^Category=-Other_letter}', "");
-    Expect(0, 201546, '\P{Category=-Other_letter}', "");
-    Expect(1, 201546, '\P{^Category=-Other_letter}', "");
-    Expect(0, 201547, '\p{Category=-Other_letter}', "");
-    Expect(1, 201547, '\p{^Category=-Other_letter}', "");
-    Expect(1, 201547, '\P{Category=-Other_letter}', "");
-    Expect(0, 201547, '\P{^Category=-Other_letter}', "");
-    Error('\p{Is_General_Category=:= -Lo}');
-    Error('\P{Is_General_Category=:= -Lo}');
-    Expect(1, 201546, '\p{Is_General_Category=lo}', "");
-    Expect(0, 201546, '\p{^Is_General_Category=lo}', "");
-    Expect(0, 201546, '\P{Is_General_Category=lo}', "");
-    Expect(1, 201546, '\P{^Is_General_Category=lo}', "");
-    Expect(0, 201547, '\p{Is_General_Category=lo}', "");
-    Expect(1, 201547, '\p{^Is_General_Category=lo}', "");
-    Expect(1, 201547, '\P{Is_General_Category=lo}', "");
-    Expect(0, 201547, '\P{^Is_General_Category=lo}', "");
-    Expect(1, 201546, '\p{Is_General_Category=_ LO}', "");
-    Expect(0, 201546, '\p{^Is_General_Category=_ LO}', "");
-    Expect(0, 201546, '\P{Is_General_Category=_ LO}', "");
-    Expect(1, 201546, '\P{^Is_General_Category=_ LO}', "");
-    Expect(0, 201547, '\p{Is_General_Category=_ LO}', "");
-    Expect(1, 201547, '\p{^Is_General_Category=_ LO}', "");
-    Expect(1, 201547, '\P{Is_General_Category=_ LO}', "");
-    Expect(0, 201547, '\P{^Is_General_Category=_ LO}', "");
-    Error('\p{Is_Gc=/a/  Other_letter}');
-    Error('\P{Is_Gc=/a/  Other_letter}');
-    Expect(1, 201546, '\p{Is_Gc=otherletter}', "");
-    Expect(0, 201546, '\p{^Is_Gc=otherletter}', "");
-    Expect(0, 201546, '\P{Is_Gc=otherletter}', "");
-    Expect(1, 201546, '\P{^Is_Gc=otherletter}', "");
-    Expect(0, 201547, '\p{Is_Gc=otherletter}', "");
-    Expect(1, 201547, '\p{^Is_Gc=otherletter}', "");
-    Expect(1, 201547, '\P{Is_Gc=otherletter}', "");
-    Expect(0, 201547, '\P{^Is_Gc=otherletter}', "");
-    Expect(1, 201546, '\p{Is_Gc=__Other_Letter}', "");
-    Expect(0, 201546, '\p{^Is_Gc=__Other_Letter}', "");
-    Expect(0, 201546, '\P{Is_Gc=__Other_Letter}', "");
-    Expect(1, 201546, '\P{^Is_Gc=__Other_Letter}', "");
-    Expect(0, 201547, '\p{Is_Gc=__Other_Letter}', "");
-    Expect(1, 201547, '\p{^Is_Gc=__Other_Letter}', "");
-    Expect(1, 201547, '\P{Is_Gc=__Other_Letter}', "");
-    Expect(0, 201547, '\P{^Is_Gc=__Other_Letter}', "");
-    Error('\p{Is_Category=_	LO/a/}');
-    Error('\P{Is_Category=_	LO/a/}');
-    Expect(1, 201546, '\p{Is_Category=lo}', "");
-    Expect(0, 201546, '\p{^Is_Category=lo}', "");
-    Expect(0, 201546, '\P{Is_Category=lo}', "");
-    Expect(1, 201546, '\P{^Is_Category=lo}', "");
-    Expect(0, 201547, '\p{Is_Category=lo}', "");
-    Expect(1, 201547, '\p{^Is_Category=lo}', "");
-    Expect(1, 201547, '\P{Is_Category=lo}', "");
-    Expect(0, 201547, '\P{^Is_Category=lo}', "");
-    Expect(1, 201546, '\p{Is_Category=Lo}', "");
-    Expect(0, 201546, '\p{^Is_Category=Lo}', "");
-    Expect(0, 201546, '\P{Is_Category=Lo}', "");
-    Expect(1, 201546, '\P{^Is_Category=Lo}', "");
-    Expect(0, 201547, '\p{Is_Category=Lo}', "");
-    Expect(1, 201547, '\p{^Is_Category=Lo}', "");
-    Expect(1, 201547, '\P{Is_Category=Lo}', "");
-    Expect(0, 201547, '\P{^Is_Category=Lo}', "");
-    Error('\p{General_Category=_:=titlecase_Letter}');
-    Error('\P{General_Category=_:=titlecase_Letter}');
+    Expect(1, 125259, '\p{Is_Category= Lm}', "");
+    Expect(0, 125259, '\p{^Is_Category= Lm}', "");
+    Expect(0, 125259, '\P{Is_Category= Lm}', "");
+    Expect(1, 125259, '\P{^Is_Category= Lm}', "");
+    Expect(0, 125260, '\p{Is_Category= Lm}', "");
+    Expect(1, 125260, '\p{^Is_Category= Lm}', "");
+    Expect(1, 125260, '\P{Is_Category= Lm}', "");
+    Expect(0, 125260, '\P{^Is_Category= Lm}', "");
+    Error('\p{General_Category=-other_LETTER:=}');
+    Error('\P{General_Category=-other_LETTER:=}');
+    Expect(1, 205743, '\p{General_Category=:\AOther_Letter\z:}', "");;
+    Expect(0, 205744, '\p{General_Category=:\AOther_Letter\z:}', "");;
+    Expect(1, 205743, '\p{General_Category=otherletter}', "");
+    Expect(0, 205743, '\p{^General_Category=otherletter}', "");
+    Expect(0, 205743, '\P{General_Category=otherletter}', "");
+    Expect(1, 205743, '\P{^General_Category=otherletter}', "");
+    Expect(0, 205744, '\p{General_Category=otherletter}', "");
+    Expect(1, 205744, '\p{^General_Category=otherletter}', "");
+    Expect(1, 205744, '\P{General_Category=otherletter}', "");
+    Expect(0, 205744, '\P{^General_Category=otherletter}', "");
+    Expect(1, 205743, '\p{General_Category=:\Aotherletter\z:}', "");;
+    Expect(0, 205744, '\p{General_Category=:\Aotherletter\z:}', "");;
+    Expect(1, 205743, '\p{General_Category=	 Other_Letter}', "");
+    Expect(0, 205743, '\p{^General_Category=	 Other_Letter}', "");
+    Expect(0, 205743, '\P{General_Category=	 Other_Letter}', "");
+    Expect(1, 205743, '\P{^General_Category=	 Other_Letter}', "");
+    Expect(0, 205744, '\p{General_Category=	 Other_Letter}', "");
+    Expect(1, 205744, '\p{^General_Category=	 Other_Letter}', "");
+    Expect(1, 205744, '\P{General_Category=	 Other_Letter}', "");
+    Expect(0, 205744, '\P{^General_Category=	 Other_Letter}', "");
+    Error('\p{Gc=:=		Lo}');
+    Error('\P{Gc=:=		Lo}');
+    Expect(1, 205743, '\p{Gc=:\ALo\z:}', "");;
+    Expect(0, 205744, '\p{Gc=:\ALo\z:}', "");;
+    Expect(1, 205743, '\p{Gc=lo}', "");
+    Expect(0, 205743, '\p{^Gc=lo}', "");
+    Expect(0, 205743, '\P{Gc=lo}', "");
+    Expect(1, 205743, '\P{^Gc=lo}', "");
+    Expect(0, 205744, '\p{Gc=lo}', "");
+    Expect(1, 205744, '\p{^Gc=lo}', "");
+    Expect(1, 205744, '\P{Gc=lo}', "");
+    Expect(0, 205744, '\P{^Gc=lo}', "");
+    Expect(1, 205743, '\p{Gc=:\Alo\z:}', "");;
+    Expect(0, 205744, '\p{Gc=:\Alo\z:}', "");;
+    Expect(1, 205743, '\p{Gc=--LO}', "");
+    Expect(0, 205743, '\p{^Gc=--LO}', "");
+    Expect(0, 205743, '\P{Gc=--LO}', "");
+    Expect(1, 205743, '\P{^Gc=--LO}', "");
+    Expect(0, 205744, '\p{Gc=--LO}', "");
+    Expect(1, 205744, '\p{^Gc=--LO}', "");
+    Expect(1, 205744, '\P{Gc=--LO}', "");
+    Expect(0, 205744, '\P{^Gc=--LO}', "");
+    Error('\p{Category:	-:=other_Letter}');
+    Error('\P{Category:	-:=other_Letter}');
+    Expect(1, 205743, '\p{Category=:\AOther_Letter\z:}', "");;
+    Expect(0, 205744, '\p{Category=:\AOther_Letter\z:}', "");;
+    Expect(1, 205743, '\p{Category=otherletter}', "");
+    Expect(0, 205743, '\p{^Category=otherletter}', "");
+    Expect(0, 205743, '\P{Category=otherletter}', "");
+    Expect(1, 205743, '\P{^Category=otherletter}', "");
+    Expect(0, 205744, '\p{Category=otherletter}', "");
+    Expect(1, 205744, '\p{^Category=otherletter}', "");
+    Expect(1, 205744, '\P{Category=otherletter}', "");
+    Expect(0, 205744, '\P{^Category=otherletter}', "");
+    Expect(1, 205743, '\p{Category=:\Aotherletter\z:}', "");;
+    Expect(0, 205744, '\p{Category=:\Aotherletter\z:}', "");;
+    Expect(1, 205743, '\p{Category:_	other_letter}', "");
+    Expect(0, 205743, '\p{^Category:_	other_letter}', "");
+    Expect(0, 205743, '\P{Category:_	other_letter}', "");
+    Expect(1, 205743, '\P{^Category:_	other_letter}', "");
+    Expect(0, 205744, '\p{Category:_	other_letter}', "");
+    Expect(1, 205744, '\p{^Category:_	other_letter}', "");
+    Expect(1, 205744, '\P{Category:_	other_letter}', "");
+    Expect(0, 205744, '\P{^Category:_	other_letter}', "");
+    Error('\p{Is_General_Category:	/a/ -lo}');
+    Error('\P{Is_General_Category:	/a/ -lo}');
+    Expect(1, 205743, '\p{Is_General_Category=lo}', "");
+    Expect(0, 205743, '\p{^Is_General_Category=lo}', "");
+    Expect(0, 205743, '\P{Is_General_Category=lo}', "");
+    Expect(1, 205743, '\P{^Is_General_Category=lo}', "");
+    Expect(0, 205744, '\p{Is_General_Category=lo}', "");
+    Expect(1, 205744, '\p{^Is_General_Category=lo}', "");
+    Expect(1, 205744, '\P{Is_General_Category=lo}', "");
+    Expect(0, 205744, '\P{^Is_General_Category=lo}', "");
+    Expect(1, 205743, '\p{Is_General_Category=	lo}', "");
+    Expect(0, 205743, '\p{^Is_General_Category=	lo}', "");
+    Expect(0, 205743, '\P{Is_General_Category=	lo}', "");
+    Expect(1, 205743, '\P{^Is_General_Category=	lo}', "");
+    Expect(0, 205744, '\p{Is_General_Category=	lo}', "");
+    Expect(1, 205744, '\p{^Is_General_Category=	lo}', "");
+    Expect(1, 205744, '\P{Is_General_Category=	lo}', "");
+    Expect(0, 205744, '\P{^Is_General_Category=	lo}', "");
+    Error('\p{Is_Gc: _/a/Other_Letter}');
+    Error('\P{Is_Gc: _/a/Other_Letter}');
+    Expect(1, 205743, '\p{Is_Gc=otherletter}', "");
+    Expect(0, 205743, '\p{^Is_Gc=otherletter}', "");
+    Expect(0, 205743, '\P{Is_Gc=otherletter}', "");
+    Expect(1, 205743, '\P{^Is_Gc=otherletter}', "");
+    Expect(0, 205744, '\p{Is_Gc=otherletter}', "");
+    Expect(1, 205744, '\p{^Is_Gc=otherletter}', "");
+    Expect(1, 205744, '\P{Is_Gc=otherletter}', "");
+    Expect(0, 205744, '\P{^Is_Gc=otherletter}', "");
+    Expect(1, 205743, '\p{Is_Gc=-Other_letter}', "");
+    Expect(0, 205743, '\p{^Is_Gc=-Other_letter}', "");
+    Expect(0, 205743, '\P{Is_Gc=-Other_letter}', "");
+    Expect(1, 205743, '\P{^Is_Gc=-Other_letter}', "");
+    Expect(0, 205744, '\p{Is_Gc=-Other_letter}', "");
+    Expect(1, 205744, '\p{^Is_Gc=-Other_letter}', "");
+    Expect(1, 205744, '\P{Is_Gc=-Other_letter}', "");
+    Expect(0, 205744, '\P{^Is_Gc=-Other_letter}', "");
+    Error('\p{Is_Category=	/a/Lo}');
+    Error('\P{Is_Category=	/a/Lo}');
+    Expect(1, 205743, '\p{Is_Category=lo}', "");
+    Expect(0, 205743, '\p{^Is_Category=lo}', "");
+    Expect(0, 205743, '\P{Is_Category=lo}', "");
+    Expect(1, 205743, '\P{^Is_Category=lo}', "");
+    Expect(0, 205744, '\p{Is_Category=lo}', "");
+    Expect(1, 205744, '\p{^Is_Category=lo}', "");
+    Expect(1, 205744, '\P{Is_Category=lo}', "");
+    Expect(0, 205744, '\P{^Is_Category=lo}', "");
+    Expect(1, 205743, '\p{Is_Category=	Lo}', "");
+    Expect(0, 205743, '\p{^Is_Category=	Lo}', "");
+    Expect(0, 205743, '\P{Is_Category=	Lo}', "");
+    Expect(1, 205743, '\P{^Is_Category=	Lo}', "");
+    Expect(0, 205744, '\p{Is_Category=	Lo}', "");
+    Expect(1, 205744, '\p{^Is_Category=	Lo}', "");
+    Expect(1, 205744, '\P{Is_Category=	Lo}', "");
+    Expect(0, 205744, '\P{^Is_Category=	Lo}', "");
+    Error('\p{General_Category: 	/a/Titlecase_Letter}');
+    Error('\P{General_Category: 	/a/Titlecase_Letter}');
     Expect(1, 8188, '\p{General_Category=:\ATitlecase_Letter\z:}', "");;
     Expect(0, 8189, '\p{General_Category=:\ATitlecase_Letter\z:}', "");;
     Expect(1, 8188, '\p{General_Category: titlecaseletter}', "");
@@ -40113,16 +40681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8189, '\P{^General_Category: titlecaseletter}', "");
     Expect(1, 8188, '\p{General_Category=:\Atitlecaseletter\z:}', "");;
     Expect(0, 8189, '\p{General_Category=:\Atitlecaseletter\z:}', "");;
-    Expect(1, 8188, '\p{General_Category=	-titlecase_Letter}', "");
-    Expect(0, 8188, '\p{^General_Category=	-titlecase_Letter}', "");
-    Expect(0, 8188, '\P{General_Category=	-titlecase_Letter}', "");
-    Expect(1, 8188, '\P{^General_Category=	-titlecase_Letter}', "");
-    Expect(0, 8189, '\p{General_Category=	-titlecase_Letter}', "");
-    Expect(1, 8189, '\p{^General_Category=	-titlecase_Letter}', "");
-    Expect(1, 8189, '\P{General_Category=	-titlecase_Letter}', "");
-    Expect(0, 8189, '\P{^General_Category=	-titlecase_Letter}', "");
-    Error('\p{Gc=/a/_-Lt}');
-    Error('\P{Gc=/a/_-Lt}');
+    Expect(1, 8188, '\p{General_Category:	_titlecase_Letter}', "");
+    Expect(0, 8188, '\p{^General_Category:	_titlecase_Letter}', "");
+    Expect(0, 8188, '\P{General_Category:	_titlecase_Letter}', "");
+    Expect(1, 8188, '\P{^General_Category:	_titlecase_Letter}', "");
+    Expect(0, 8189, '\p{General_Category:	_titlecase_Letter}', "");
+    Expect(1, 8189, '\p{^General_Category:	_titlecase_Letter}', "");
+    Expect(1, 8189, '\P{General_Category:	_titlecase_Letter}', "");
+    Expect(0, 8189, '\P{^General_Category:	_titlecase_Letter}', "");
+    Error('\p{Gc=-LT/a/}');
+    Error('\P{Gc=-LT/a/}');
     Expect(1, 8188, '\p{Gc=:\ALt\z:}', "");;
     Expect(0, 8189, '\p{Gc=:\ALt\z:}', "");;
     Expect(1, 8188, '\p{Gc=lt}', "");
@@ -40135,16 +40703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8189, '\P{^Gc=lt}', "");
     Expect(1, 8188, '\p{Gc=:\Alt\z:}', "");;
     Expect(0, 8189, '\p{Gc=:\Alt\z:}', "");;
-    Expect(1, 8188, '\p{Gc=-_Lt}', "");
-    Expect(0, 8188, '\p{^Gc=-_Lt}', "");
-    Expect(0, 8188, '\P{Gc=-_Lt}', "");
-    Expect(1, 8188, '\P{^Gc=-_Lt}', "");
-    Expect(0, 8189, '\p{Gc=-_Lt}', "");
-    Expect(1, 8189, '\p{^Gc=-_Lt}', "");
-    Expect(1, 8189, '\P{Gc=-_Lt}', "");
-    Expect(0, 8189, '\P{^Gc=-_Lt}', "");
-    Error('\p{Category=-Titlecase_LETTER:=}');
-    Error('\P{Category=-Titlecase_LETTER:=}');
+    Expect(1, 8188, '\p{Gc: -LT}', "");
+    Expect(0, 8188, '\p{^Gc: -LT}', "");
+    Expect(0, 8188, '\P{Gc: -LT}', "");
+    Expect(1, 8188, '\P{^Gc: -LT}', "");
+    Expect(0, 8189, '\p{Gc: -LT}', "");
+    Expect(1, 8189, '\p{^Gc: -LT}', "");
+    Expect(1, 8189, '\P{Gc: -LT}', "");
+    Expect(0, 8189, '\P{^Gc: -LT}', "");
+    Error('\p{Category=_Titlecase_Letter/a/}');
+    Error('\P{Category=_Titlecase_Letter/a/}');
     Expect(1, 8188, '\p{Category=:\ATitlecase_Letter\z:}', "");;
     Expect(0, 8189, '\p{Category=:\ATitlecase_Letter\z:}', "");;
     Expect(1, 8188, '\p{Category=titlecaseletter}', "");
@@ -40157,34 +40725,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8189, '\P{^Category=titlecaseletter}', "");
     Expect(1, 8188, '\p{Category=:\Atitlecaseletter\z:}', "");;
     Expect(0, 8189, '\p{Category=:\Atitlecaseletter\z:}', "");;
-    Expect(1, 8188, '\p{Category=_Titlecase_LETTER}', "");
-    Expect(0, 8188, '\p{^Category=_Titlecase_LETTER}', "");
-    Expect(0, 8188, '\P{Category=_Titlecase_LETTER}', "");
-    Expect(1, 8188, '\P{^Category=_Titlecase_LETTER}', "");
-    Expect(0, 8189, '\p{Category=_Titlecase_LETTER}', "");
-    Expect(1, 8189, '\p{^Category=_Titlecase_LETTER}', "");
-    Expect(1, 8189, '\P{Category=_Titlecase_LETTER}', "");
-    Expect(0, 8189, '\P{^Category=_Titlecase_LETTER}', "");
-    Error('\p{Is_General_Category=_:=Lt}');
-    Error('\P{Is_General_Category=_:=Lt}');
-    Expect(1, 8188, '\p{Is_General_Category:   lt}', "");
-    Expect(0, 8188, '\p{^Is_General_Category:   lt}', "");
-    Expect(0, 8188, '\P{Is_General_Category:   lt}', "");
-    Expect(1, 8188, '\P{^Is_General_Category:   lt}', "");
-    Expect(0, 8189, '\p{Is_General_Category:   lt}', "");
-    Expect(1, 8189, '\p{^Is_General_Category:   lt}', "");
-    Expect(1, 8189, '\P{Is_General_Category:   lt}', "");
-    Expect(0, 8189, '\P{^Is_General_Category:   lt}', "");
-    Expect(1, 8188, '\p{Is_General_Category=	lt}', "");
-    Expect(0, 8188, '\p{^Is_General_Category=	lt}', "");
-    Expect(0, 8188, '\P{Is_General_Category=	lt}', "");
-    Expect(1, 8188, '\P{^Is_General_Category=	lt}', "");
-    Expect(0, 8189, '\p{Is_General_Category=	lt}', "");
-    Expect(1, 8189, '\p{^Is_General_Category=	lt}', "");
-    Expect(1, 8189, '\P{Is_General_Category=	lt}', "");
-    Expect(0, 8189, '\P{^Is_General_Category=	lt}', "");
-    Error('\p{Is_Gc=_ Titlecase_letter/a/}');
-    Error('\P{Is_Gc=_ Titlecase_letter/a/}');
+    Expect(1, 8188, '\p{Category=	 Titlecase_Letter}', "");
+    Expect(0, 8188, '\p{^Category=	 Titlecase_Letter}', "");
+    Expect(0, 8188, '\P{Category=	 Titlecase_Letter}', "");
+    Expect(1, 8188, '\P{^Category=	 Titlecase_Letter}', "");
+    Expect(0, 8189, '\p{Category=	 Titlecase_Letter}', "");
+    Expect(1, 8189, '\p{^Category=	 Titlecase_Letter}', "");
+    Expect(1, 8189, '\P{Category=	 Titlecase_Letter}', "");
+    Expect(0, 8189, '\P{^Category=	 Titlecase_Letter}', "");
+    Error('\p{Is_General_Category=-_lt/a/}');
+    Error('\P{Is_General_Category=-_lt/a/}');
+    Expect(1, 8188, '\p{Is_General_Category=lt}', "");
+    Expect(0, 8188, '\p{^Is_General_Category=lt}', "");
+    Expect(0, 8188, '\P{Is_General_Category=lt}', "");
+    Expect(1, 8188, '\P{^Is_General_Category=lt}', "");
+    Expect(0, 8189, '\p{Is_General_Category=lt}', "");
+    Expect(1, 8189, '\p{^Is_General_Category=lt}', "");
+    Expect(1, 8189, '\P{Is_General_Category=lt}', "");
+    Expect(0, 8189, '\P{^Is_General_Category=lt}', "");
+    Expect(1, 8188, '\p{Is_General_Category=	LT}', "");
+    Expect(0, 8188, '\p{^Is_General_Category=	LT}', "");
+    Expect(0, 8188, '\P{Is_General_Category=	LT}', "");
+    Expect(1, 8188, '\P{^Is_General_Category=	LT}', "");
+    Expect(0, 8189, '\p{Is_General_Category=	LT}', "");
+    Expect(1, 8189, '\p{^Is_General_Category=	LT}', "");
+    Expect(1, 8189, '\P{Is_General_Category=	LT}', "");
+    Expect(0, 8189, '\P{^Is_General_Category=	LT}', "");
+    Error('\p{Is_Gc=/a/-TITLECASE_LETTER}');
+    Error('\P{Is_Gc=/a/-TITLECASE_LETTER}');
     Expect(1, 8188, '\p{Is_Gc=titlecaseletter}', "");
     Expect(0, 8188, '\p{^Is_Gc=titlecaseletter}', "");
     Expect(0, 8188, '\P{Is_Gc=titlecaseletter}', "");
@@ -40193,16 +40761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8189, '\p{^Is_Gc=titlecaseletter}', "");
     Expect(1, 8189, '\P{Is_Gc=titlecaseletter}', "");
     Expect(0, 8189, '\P{^Is_Gc=titlecaseletter}', "");
-    Expect(1, 8188, '\p{Is_Gc= titlecase_Letter}', "");
-    Expect(0, 8188, '\p{^Is_Gc= titlecase_Letter}', "");
-    Expect(0, 8188, '\P{Is_Gc= titlecase_Letter}', "");
-    Expect(1, 8188, '\P{^Is_Gc= titlecase_Letter}', "");
-    Expect(0, 8189, '\p{Is_Gc= titlecase_Letter}', "");
-    Expect(1, 8189, '\p{^Is_Gc= titlecase_Letter}', "");
-    Expect(1, 8189, '\P{Is_Gc= titlecase_Letter}', "");
-    Expect(0, 8189, '\P{^Is_Gc= titlecase_Letter}', "");
-    Error('\p{Is_Category:	LT/a/}');
-    Error('\P{Is_Category:	LT/a/}');
+    Expect(1, 8188, '\p{Is_Gc= -TITLECASE_letter}', "");
+    Expect(0, 8188, '\p{^Is_Gc= -TITLECASE_letter}', "");
+    Expect(0, 8188, '\P{Is_Gc= -TITLECASE_letter}', "");
+    Expect(1, 8188, '\P{^Is_Gc= -TITLECASE_letter}', "");
+    Expect(0, 8189, '\p{Is_Gc= -TITLECASE_letter}', "");
+    Expect(1, 8189, '\p{^Is_Gc= -TITLECASE_letter}', "");
+    Expect(1, 8189, '\P{Is_Gc= -TITLECASE_letter}', "");
+    Expect(0, 8189, '\P{^Is_Gc= -TITLECASE_letter}', "");
+    Error('\p{Is_Category=__lt:=}');
+    Error('\P{Is_Category=__lt:=}');
     Expect(1, 8188, '\p{Is_Category=lt}', "");
     Expect(0, 8188, '\p{^Is_Category=lt}', "");
     Expect(0, 8188, '\P{Is_Category=lt}', "");
@@ -40211,16 +40779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8189, '\p{^Is_Category=lt}', "");
     Expect(1, 8189, '\P{Is_Category=lt}', "");
     Expect(0, 8189, '\P{^Is_Category=lt}', "");
-    Expect(1, 8188, '\p{Is_Category=_-lt}', "");
-    Expect(0, 8188, '\p{^Is_Category=_-lt}', "");
-    Expect(0, 8188, '\P{Is_Category=_-lt}', "");
-    Expect(1, 8188, '\P{^Is_Category=_-lt}', "");
-    Expect(0, 8189, '\p{Is_Category=_-lt}', "");
-    Expect(1, 8189, '\p{^Is_Category=_-lt}', "");
-    Expect(1, 8189, '\P{Is_Category=_-lt}', "");
-    Expect(0, 8189, '\P{^Is_Category=_-lt}', "");
-    Error('\p{General_Category=:= -UPPERCASE_Letter}');
-    Error('\P{General_Category=:= -UPPERCASE_Letter}');
+    Expect(1, 8188, '\p{Is_Category= -lt}', "");
+    Expect(0, 8188, '\p{^Is_Category= -lt}', "");
+    Expect(0, 8188, '\P{Is_Category= -lt}', "");
+    Expect(1, 8188, '\P{^Is_Category= -lt}', "");
+    Expect(0, 8189, '\p{Is_Category= -lt}', "");
+    Expect(1, 8189, '\p{^Is_Category= -lt}', "");
+    Expect(1, 8189, '\P{Is_Category= -lt}', "");
+    Expect(0, 8189, '\P{^Is_Category= -lt}', "");
+    Error('\p{General_Category=  UPPERCASE_Letter:=}');
+    Error('\P{General_Category=  UPPERCASE_Letter:=}');
     Expect(1, 125217, '\p{General_Category=:\AUppercase_Letter\z:}', "");;
     Expect(0, 125218, '\p{General_Category=:\AUppercase_Letter\z:}', "");;
     Expect(1, 125217, '\p{General_Category=uppercaseletter}', "");
@@ -40233,16 +40801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125218, '\P{^General_Category=uppercaseletter}', "");
     Expect(1, 125217, '\p{General_Category=:\Auppercaseletter\z:}', "");;
     Expect(0, 125218, '\p{General_Category=:\Auppercaseletter\z:}', "");;
-    Expect(1, 125217, '\p{General_Category=--Uppercase_LETTER}', "");
-    Expect(0, 125217, '\p{^General_Category=--Uppercase_LETTER}', "");
-    Expect(0, 125217, '\P{General_Category=--Uppercase_LETTER}', "");
-    Expect(1, 125217, '\P{^General_Category=--Uppercase_LETTER}', "");
-    Expect(0, 125218, '\p{General_Category=--Uppercase_LETTER}', "");
-    Expect(1, 125218, '\p{^General_Category=--Uppercase_LETTER}', "");
-    Expect(1, 125218, '\P{General_Category=--Uppercase_LETTER}', "");
-    Expect(0, 125218, '\P{^General_Category=--Uppercase_LETTER}', "");
-    Error('\p{Gc=-/a/lu}');
-    Error('\P{Gc=-/a/lu}');
+    Expect(1, 125217, '\p{General_Category=	 UPPERCASE_Letter}', "");
+    Expect(0, 125217, '\p{^General_Category=	 UPPERCASE_Letter}', "");
+    Expect(0, 125217, '\P{General_Category=	 UPPERCASE_Letter}', "");
+    Expect(1, 125217, '\P{^General_Category=	 UPPERCASE_Letter}', "");
+    Expect(0, 125218, '\p{General_Category=	 UPPERCASE_Letter}', "");
+    Expect(1, 125218, '\p{^General_Category=	 UPPERCASE_Letter}', "");
+    Expect(1, 125218, '\P{General_Category=	 UPPERCASE_Letter}', "");
+    Expect(0, 125218, '\P{^General_Category=	 UPPERCASE_Letter}', "");
+    Error('\p{Gc=	:=Lu}');
+    Error('\P{Gc=	:=Lu}');
     Expect(1, 125217, '\p{Gc=:\ALu\z:}', "");;
     Expect(0, 125218, '\p{Gc=:\ALu\z:}', "");;
     Expect(1, 125217, '\p{Gc=lu}', "");
@@ -40255,16 +40823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125218, '\P{^Gc=lu}', "");
     Expect(1, 125217, '\p{Gc=:\Alu\z:}', "");;
     Expect(0, 125218, '\p{Gc=:\Alu\z:}', "");;
-    Expect(1, 125217, '\p{Gc=-	Lu}', "");
-    Expect(0, 125217, '\p{^Gc=-	Lu}', "");
-    Expect(0, 125217, '\P{Gc=-	Lu}', "");
-    Expect(1, 125217, '\P{^Gc=-	Lu}', "");
-    Expect(0, 125218, '\p{Gc=-	Lu}', "");
-    Expect(1, 125218, '\p{^Gc=-	Lu}', "");
-    Expect(1, 125218, '\P{Gc=-	Lu}', "");
-    Expect(0, 125218, '\P{^Gc=-	Lu}', "");
-    Error('\p{Category=/a/-	UPPERCASE_Letter}');
-    Error('\P{Category=/a/-	UPPERCASE_Letter}');
+    Expect(1, 125217, '\p{Gc= LU}', "");
+    Expect(0, 125217, '\p{^Gc= LU}', "");
+    Expect(0, 125217, '\P{Gc= LU}', "");
+    Expect(1, 125217, '\P{^Gc= LU}', "");
+    Expect(0, 125218, '\p{Gc= LU}', "");
+    Expect(1, 125218, '\p{^Gc= LU}', "");
+    Expect(1, 125218, '\P{Gc= LU}', "");
+    Expect(0, 125218, '\P{^Gc= LU}', "");
+    Error('\p{Category:/a/-_Uppercase_Letter}');
+    Error('\P{Category:/a/-_Uppercase_Letter}');
     Expect(1, 125217, '\p{Category=:\AUppercase_Letter\z:}', "");;
     Expect(0, 125218, '\p{Category=:\AUppercase_Letter\z:}', "");;
     Expect(1, 125217, '\p{Category=uppercaseletter}', "");
@@ -40277,16 +40845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125218, '\P{^Category=uppercaseletter}', "");
     Expect(1, 125217, '\p{Category=:\Auppercaseletter\z:}', "");;
     Expect(0, 125218, '\p{Category=:\Auppercaseletter\z:}', "");;
-    Expect(1, 125217, '\p{Category=_-Uppercase_LETTER}', "");
-    Expect(0, 125217, '\p{^Category=_-Uppercase_LETTER}', "");
-    Expect(0, 125217, '\P{Category=_-Uppercase_LETTER}', "");
-    Expect(1, 125217, '\P{^Category=_-Uppercase_LETTER}', "");
-    Expect(0, 125218, '\p{Category=_-Uppercase_LETTER}', "");
-    Expect(1, 125218, '\p{^Category=_-Uppercase_LETTER}', "");
-    Expect(1, 125218, '\P{Category=_-Uppercase_LETTER}', "");
-    Expect(0, 125218, '\P{^Category=_-Uppercase_LETTER}', "");
-    Error('\p{Is_General_Category=--lu:=}');
-    Error('\P{Is_General_Category=--lu:=}');
+    Expect(1, 125217, '\p{Category= -UPPERCASE_Letter}', "");
+    Expect(0, 125217, '\p{^Category= -UPPERCASE_Letter}', "");
+    Expect(0, 125217, '\P{Category= -UPPERCASE_Letter}', "");
+    Expect(1, 125217, '\P{^Category= -UPPERCASE_Letter}', "");
+    Expect(0, 125218, '\p{Category= -UPPERCASE_Letter}', "");
+    Expect(1, 125218, '\p{^Category= -UPPERCASE_Letter}', "");
+    Expect(1, 125218, '\P{Category= -UPPERCASE_Letter}', "");
+    Expect(0, 125218, '\P{^Category= -UPPERCASE_Letter}', "");
+    Error('\p{Is_General_Category=Lu/a/}');
+    Error('\P{Is_General_Category=Lu/a/}');
     Expect(1, 125217, '\p{Is_General_Category=lu}', "");
     Expect(0, 125217, '\p{^Is_General_Category=lu}', "");
     Expect(0, 125217, '\P{Is_General_Category=lu}', "");
@@ -40295,34 +40863,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125218, '\p{^Is_General_Category=lu}', "");
     Expect(1, 125218, '\P{Is_General_Category=lu}', "");
     Expect(0, 125218, '\P{^Is_General_Category=lu}', "");
-    Expect(1, 125217, '\p{Is_General_Category:		-Lu}', "");
-    Expect(0, 125217, '\p{^Is_General_Category:		-Lu}', "");
-    Expect(0, 125217, '\P{Is_General_Category:		-Lu}', "");
-    Expect(1, 125217, '\P{^Is_General_Category:		-Lu}', "");
-    Expect(0, 125218, '\p{Is_General_Category:		-Lu}', "");
-    Expect(1, 125218, '\p{^Is_General_Category:		-Lu}', "");
-    Expect(1, 125218, '\P{Is_General_Category:		-Lu}', "");
-    Expect(0, 125218, '\P{^Is_General_Category:		-Lu}', "");
-    Error('\p{Is_Gc=_ Uppercase_LETTER:=}');
-    Error('\P{Is_Gc=_ Uppercase_LETTER:=}');
-    Expect(1, 125217, '\p{Is_Gc:   uppercaseletter}', "");
-    Expect(0, 125217, '\p{^Is_Gc:   uppercaseletter}', "");
-    Expect(0, 125217, '\P{Is_Gc:   uppercaseletter}', "");
-    Expect(1, 125217, '\P{^Is_Gc:   uppercaseletter}', "");
-    Expect(0, 125218, '\p{Is_Gc:   uppercaseletter}', "");
-    Expect(1, 125218, '\p{^Is_Gc:   uppercaseletter}', "");
-    Expect(1, 125218, '\P{Is_Gc:   uppercaseletter}', "");
-    Expect(0, 125218, '\P{^Is_Gc:   uppercaseletter}', "");
-    Expect(1, 125217, '\p{Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(0, 125217, '\p{^Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(0, 125217, '\P{Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(1, 125217, '\P{^Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(0, 125218, '\p{Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(1, 125218, '\p{^Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(1, 125218, '\P{Is_Gc=-	Uppercase_LETTER}', "");
-    Expect(0, 125218, '\P{^Is_Gc=-	Uppercase_LETTER}', "");
-    Error('\p{Is_Category=/a/_ Lu}');
-    Error('\P{Is_Category=/a/_ Lu}');
+    Expect(1, 125217, '\p{Is_General_Category=	LU}', "");
+    Expect(0, 125217, '\p{^Is_General_Category=	LU}', "");
+    Expect(0, 125217, '\P{Is_General_Category=	LU}', "");
+    Expect(1, 125217, '\P{^Is_General_Category=	LU}', "");
+    Expect(0, 125218, '\p{Is_General_Category=	LU}', "");
+    Expect(1, 125218, '\p{^Is_General_Category=	LU}', "");
+    Expect(1, 125218, '\P{Is_General_Category=	LU}', "");
+    Expect(0, 125218, '\P{^Is_General_Category=	LU}', "");
+    Error('\p{Is_Gc=__uppercase_letter:=}');
+    Error('\P{Is_Gc=__uppercase_letter:=}');
+    Expect(1, 125217, '\p{Is_Gc=uppercaseletter}', "");
+    Expect(0, 125217, '\p{^Is_Gc=uppercaseletter}', "");
+    Expect(0, 125217, '\P{Is_Gc=uppercaseletter}', "");
+    Expect(1, 125217, '\P{^Is_Gc=uppercaseletter}', "");
+    Expect(0, 125218, '\p{Is_Gc=uppercaseletter}', "");
+    Expect(1, 125218, '\p{^Is_Gc=uppercaseletter}', "");
+    Expect(1, 125218, '\P{Is_Gc=uppercaseletter}', "");
+    Expect(0, 125218, '\P{^Is_Gc=uppercaseletter}', "");
+    Expect(1, 125217, '\p{Is_Gc=-_Uppercase_Letter}', "");
+    Expect(0, 125217, '\p{^Is_Gc=-_Uppercase_Letter}', "");
+    Expect(0, 125217, '\P{Is_Gc=-_Uppercase_Letter}', "");
+    Expect(1, 125217, '\P{^Is_Gc=-_Uppercase_Letter}', "");
+    Expect(0, 125218, '\p{Is_Gc=-_Uppercase_Letter}', "");
+    Expect(1, 125218, '\p{^Is_Gc=-_Uppercase_Letter}', "");
+    Expect(1, 125218, '\P{Is_Gc=-_Uppercase_Letter}', "");
+    Expect(0, 125218, '\P{^Is_Gc=-_Uppercase_Letter}', "");
+    Error('\p{Is_Category=:=	lu}');
+    Error('\P{Is_Category=:=	lu}');
     Expect(1, 125217, '\p{Is_Category=lu}', "");
     Expect(0, 125217, '\p{^Is_Category=lu}', "");
     Expect(0, 125217, '\P{Is_Category=lu}', "");
@@ -40331,38 +40899,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125218, '\p{^Is_Category=lu}', "");
     Expect(1, 125218, '\P{Is_Category=lu}', "");
     Expect(0, 125218, '\P{^Is_Category=lu}', "");
-    Expect(1, 125217, '\p{Is_Category= -LU}', "");
-    Expect(0, 125217, '\p{^Is_Category= -LU}', "");
-    Expect(0, 125217, '\P{Is_Category= -LU}', "");
-    Expect(1, 125217, '\P{^Is_Category= -LU}', "");
-    Expect(0, 125218, '\p{Is_Category= -LU}', "");
-    Expect(1, 125218, '\p{^Is_Category= -LU}', "");
-    Expect(1, 125218, '\P{Is_Category= -LU}', "");
-    Expect(0, 125218, '\P{^Is_Category= -LU}', "");
-    Error('\p{General_Category=:=__Mark}');
-    Error('\P{General_Category=:=__Mark}');
+    Expect(1, 125217, '\p{Is_Category=_LU}', "");
+    Expect(0, 125217, '\p{^Is_Category=_LU}', "");
+    Expect(0, 125217, '\P{Is_Category=_LU}', "");
+    Expect(1, 125217, '\P{^Is_Category=_LU}', "");
+    Expect(0, 125218, '\p{Is_Category=_LU}', "");
+    Expect(1, 125218, '\p{^Is_Category=_LU}', "");
+    Expect(1, 125218, '\P{Is_Category=_LU}', "");
+    Expect(0, 125218, '\P{^Is_Category=_LU}', "");
+    Error('\p{General_Category= :=mark}');
+    Error('\P{General_Category= :=mark}');
     Expect(1, 917999, '\p{General_Category=:\AMark\z:}', "");;
     Expect(0, 918000, '\p{General_Category=:\AMark\z:}', "");;
-    Expect(1, 917999, '\p{General_Category:mark}', "");
-    Expect(0, 917999, '\p{^General_Category:mark}', "");
-    Expect(0, 917999, '\P{General_Category:mark}', "");
-    Expect(1, 917999, '\P{^General_Category:mark}', "");
-    Expect(0, 918000, '\p{General_Category:mark}', "");
-    Expect(1, 918000, '\p{^General_Category:mark}', "");
-    Expect(1, 918000, '\P{General_Category:mark}', "");
-    Expect(0, 918000, '\P{^General_Category:mark}', "");
+    Expect(1, 917999, '\p{General_Category=mark}', "");
+    Expect(0, 917999, '\p{^General_Category=mark}', "");
+    Expect(0, 917999, '\P{General_Category=mark}', "");
+    Expect(1, 917999, '\P{^General_Category=mark}', "");
+    Expect(0, 918000, '\p{General_Category=mark}', "");
+    Expect(1, 918000, '\p{^General_Category=mark}', "");
+    Expect(1, 918000, '\P{General_Category=mark}', "");
+    Expect(0, 918000, '\P{^General_Category=mark}', "");
     Expect(1, 917999, '\p{General_Category=:\Amark\z:}', "");;
     Expect(0, 918000, '\p{General_Category=:\Amark\z:}', "");;
-    Expect(1, 917999, '\p{General_Category=		MARK}', "");
-    Expect(0, 917999, '\p{^General_Category=		MARK}', "");
-    Expect(0, 917999, '\P{General_Category=		MARK}', "");
-    Expect(1, 917999, '\P{^General_Category=		MARK}', "");
-    Expect(0, 918000, '\p{General_Category=		MARK}', "");
-    Expect(1, 918000, '\p{^General_Category=		MARK}', "");
-    Expect(1, 918000, '\P{General_Category=		MARK}', "");
-    Expect(0, 918000, '\P{^General_Category=		MARK}', "");
-    Error('\p{Gc=:=-	M}');
-    Error('\P{Gc=:=-	M}');
+    Expect(1, 917999, '\p{General_Category= 	Mark}', "");
+    Expect(0, 917999, '\p{^General_Category= 	Mark}', "");
+    Expect(0, 917999, '\P{General_Category= 	Mark}', "");
+    Expect(1, 917999, '\P{^General_Category= 	Mark}', "");
+    Expect(0, 918000, '\p{General_Category= 	Mark}', "");
+    Expect(1, 918000, '\p{^General_Category= 	Mark}', "");
+    Expect(1, 918000, '\P{General_Category= 	Mark}', "");
+    Expect(0, 918000, '\P{^General_Category= 	Mark}', "");
+    Error('\p{Gc=_/a/m}');
+    Error('\P{Gc=_/a/m}');
     Expect(1, 917999, '\p{Gc=:\AM\z:}', "");;
     Expect(0, 918000, '\p{Gc=:\AM\z:}', "");;
     Expect(1, 917999, '\p{Gc=m}', "");
@@ -40375,16 +40943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Gc=m}', "");
     Expect(1, 917999, '\p{Gc=:\Am\z:}', "");;
     Expect(0, 918000, '\p{Gc=:\Am\z:}', "");;
-    Expect(1, 917999, '\p{Gc=	_M}', "");
-    Expect(0, 917999, '\p{^Gc=	_M}', "");
-    Expect(0, 917999, '\P{Gc=	_M}', "");
-    Expect(1, 917999, '\P{^Gc=	_M}', "");
-    Expect(0, 918000, '\p{Gc=	_M}', "");
-    Expect(1, 918000, '\p{^Gc=	_M}', "");
-    Expect(1, 918000, '\P{Gc=	_M}', "");
-    Expect(0, 918000, '\P{^Gc=	_M}', "");
-    Error('\p{Category=	 COMBINING_Mark:=}');
-    Error('\P{Category=	 COMBINING_Mark:=}');
+    Expect(1, 917999, '\p{Gc=--M}', "");
+    Expect(0, 917999, '\p{^Gc=--M}', "");
+    Expect(0, 917999, '\P{Gc=--M}', "");
+    Expect(1, 917999, '\P{^Gc=--M}', "");
+    Expect(0, 918000, '\p{Gc=--M}', "");
+    Expect(1, 918000, '\p{^Gc=--M}', "");
+    Expect(1, 918000, '\P{Gc=--M}', "");
+    Expect(0, 918000, '\P{^Gc=--M}', "");
+    Error('\p{Category=/a/Combining_Mark}');
+    Error('\P{Category=/a/Combining_Mark}');
     Expect(1, 917999, '\p{Category=:\ACombining_Mark\z:}', "");;
     Expect(0, 918000, '\p{Category=:\ACombining_Mark\z:}', "");;
     Expect(1, 917999, '\p{Category=combiningmark}', "");
@@ -40397,16 +40965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Category=combiningmark}', "");
     Expect(1, 917999, '\p{Category=:\Acombiningmark\z:}', "");;
     Expect(0, 918000, '\p{Category=:\Acombiningmark\z:}', "");;
-    Expect(1, 917999, '\p{Category:	_-COMBINING_Mark}', "");
-    Expect(0, 917999, '\p{^Category:	_-COMBINING_Mark}', "");
-    Expect(0, 917999, '\P{Category:	_-COMBINING_Mark}', "");
-    Expect(1, 917999, '\P{^Category:	_-COMBINING_Mark}', "");
-    Expect(0, 918000, '\p{Category:	_-COMBINING_Mark}', "");
-    Expect(1, 918000, '\p{^Category:	_-COMBINING_Mark}', "");
-    Expect(1, 918000, '\P{Category:	_-COMBINING_Mark}', "");
-    Expect(0, 918000, '\P{^Category:	_-COMBINING_Mark}', "");
-    Error('\p{Is_General_Category=_/a/mark}');
-    Error('\P{Is_General_Category=_/a/mark}');
+    Expect(1, 917999, '\p{Category= _COMBINING_MARK}', "");
+    Expect(0, 917999, '\p{^Category= _COMBINING_MARK}', "");
+    Expect(0, 917999, '\P{Category= _COMBINING_MARK}', "");
+    Expect(1, 917999, '\P{^Category= _COMBINING_MARK}', "");
+    Expect(0, 918000, '\p{Category= _COMBINING_MARK}', "");
+    Expect(1, 918000, '\p{^Category= _COMBINING_MARK}', "");
+    Expect(1, 918000, '\P{Category= _COMBINING_MARK}', "");
+    Expect(0, 918000, '\P{^Category= _COMBINING_MARK}', "");
+    Error('\p{Is_General_Category= Mark:=}');
+    Error('\P{Is_General_Category= Mark:=}');
     Expect(1, 917999, '\p{Is_General_Category=mark}', "");
     Expect(0, 917999, '\p{^Is_General_Category=mark}', "");
     Expect(0, 917999, '\P{Is_General_Category=mark}', "");
@@ -40415,52 +40983,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_General_Category=mark}', "");
     Expect(1, 918000, '\P{Is_General_Category=mark}', "");
     Expect(0, 918000, '\P{^Is_General_Category=mark}', "");
-    Expect(1, 917999, '\p{Is_General_Category=-_Mark}', "");
-    Expect(0, 917999, '\p{^Is_General_Category=-_Mark}', "");
-    Expect(0, 917999, '\P{Is_General_Category=-_Mark}', "");
-    Expect(1, 917999, '\P{^Is_General_Category=-_Mark}', "");
-    Expect(0, 918000, '\p{Is_General_Category=-_Mark}', "");
-    Expect(1, 918000, '\p{^Is_General_Category=-_Mark}', "");
-    Expect(1, 918000, '\P{Is_General_Category=-_Mark}', "");
-    Expect(0, 918000, '\P{^Is_General_Category=-_Mark}', "");
-    Error('\p{Is_Gc=/a/-M}');
-    Error('\P{Is_Gc=/a/-M}');
-    Expect(1, 917999, '\p{Is_Gc=m}', "");
-    Expect(0, 917999, '\p{^Is_Gc=m}', "");
-    Expect(0, 917999, '\P{Is_Gc=m}', "");
-    Expect(1, 917999, '\P{^Is_Gc=m}', "");
-    Expect(0, 918000, '\p{Is_Gc=m}', "");
-    Expect(1, 918000, '\p{^Is_Gc=m}', "");
-    Expect(1, 918000, '\P{Is_Gc=m}', "");
-    Expect(0, 918000, '\P{^Is_Gc=m}', "");
-    Expect(1, 917999, '\p{Is_Gc=	-M}', "");
-    Expect(0, 917999, '\p{^Is_Gc=	-M}', "");
-    Expect(0, 917999, '\P{Is_Gc=	-M}', "");
-    Expect(1, 917999, '\P{^Is_Gc=	-M}', "");
-    Expect(0, 918000, '\p{Is_Gc=	-M}', "");
-    Expect(1, 918000, '\p{^Is_Gc=	-M}', "");
-    Expect(1, 918000, '\P{Is_Gc=	-M}', "");
-    Expect(0, 918000, '\P{^Is_Gc=	-M}', "");
-    Error('\p{Is_Category=_Combining_mark:=}');
-    Error('\P{Is_Category=_Combining_mark:=}');
-    Expect(1, 917999, '\p{Is_Category:combiningmark}', "");
-    Expect(0, 917999, '\p{^Is_Category:combiningmark}', "");
-    Expect(0, 917999, '\P{Is_Category:combiningmark}', "");
-    Expect(1, 917999, '\P{^Is_Category:combiningmark}', "");
-    Expect(0, 918000, '\p{Is_Category:combiningmark}', "");
-    Expect(1, 918000, '\p{^Is_Category:combiningmark}', "");
-    Expect(1, 918000, '\P{Is_Category:combiningmark}', "");
-    Expect(0, 918000, '\P{^Is_Category:combiningmark}', "");
-    Expect(1, 917999, '\p{Is_Category:	 COMBINING_Mark}', "");
-    Expect(0, 917999, '\p{^Is_Category:	 COMBINING_Mark}', "");
-    Expect(0, 917999, '\P{Is_Category:	 COMBINING_Mark}', "");
-    Expect(1, 917999, '\P{^Is_Category:	 COMBINING_Mark}', "");
-    Expect(0, 918000, '\p{Is_Category:	 COMBINING_Mark}', "");
-    Expect(1, 918000, '\p{^Is_Category:	 COMBINING_Mark}', "");
-    Expect(1, 918000, '\P{Is_Category:	 COMBINING_Mark}', "");
-    Expect(0, 918000, '\P{^Is_Category:	 COMBINING_Mark}', "");
-    Error('\p{General_Category=/a/_-SPACING_Mark}');
-    Error('\P{General_Category=/a/_-SPACING_Mark}');
+    Expect(1, 917999, '\p{Is_General_Category=-MARK}', "");
+    Expect(0, 917999, '\p{^Is_General_Category=-MARK}', "");
+    Expect(0, 917999, '\P{Is_General_Category=-MARK}', "");
+    Expect(1, 917999, '\P{^Is_General_Category=-MARK}', "");
+    Expect(0, 918000, '\p{Is_General_Category=-MARK}', "");
+    Expect(1, 918000, '\p{^Is_General_Category=-MARK}', "");
+    Expect(1, 918000, '\P{Is_General_Category=-MARK}', "");
+    Expect(0, 918000, '\P{^Is_General_Category=-MARK}', "");
+    Error('\p{Is_Gc=/a/	_M}');
+    Error('\P{Is_Gc=/a/	_M}');
+    Expect(1, 917999, '\p{Is_Gc:m}', "");
+    Expect(0, 917999, '\p{^Is_Gc:m}', "");
+    Expect(0, 917999, '\P{Is_Gc:m}', "");
+    Expect(1, 917999, '\P{^Is_Gc:m}', "");
+    Expect(0, 918000, '\p{Is_Gc:m}', "");
+    Expect(1, 918000, '\p{^Is_Gc:m}', "");
+    Expect(1, 918000, '\P{Is_Gc:m}', "");
+    Expect(0, 918000, '\P{^Is_Gc:m}', "");
+    Expect(1, 917999, '\p{Is_Gc=M}', "");
+    Expect(0, 917999, '\p{^Is_Gc=M}', "");
+    Expect(0, 917999, '\P{Is_Gc=M}', "");
+    Expect(1, 917999, '\P{^Is_Gc=M}', "");
+    Expect(0, 918000, '\p{Is_Gc=M}', "");
+    Expect(1, 918000, '\p{^Is_Gc=M}', "");
+    Expect(1, 918000, '\P{Is_Gc=M}', "");
+    Expect(0, 918000, '\P{^Is_Gc=M}', "");
+    Error('\p{Is_Category=:=-	COMBINING_Mark}');
+    Error('\P{Is_Category=:=-	COMBINING_Mark}');
+    Expect(1, 917999, '\p{Is_Category=combiningmark}', "");
+    Expect(0, 917999, '\p{^Is_Category=combiningmark}', "");
+    Expect(0, 917999, '\P{Is_Category=combiningmark}', "");
+    Expect(1, 917999, '\P{^Is_Category=combiningmark}', "");
+    Expect(0, 918000, '\p{Is_Category=combiningmark}', "");
+    Expect(1, 918000, '\p{^Is_Category=combiningmark}', "");
+    Expect(1, 918000, '\P{Is_Category=combiningmark}', "");
+    Expect(0, 918000, '\P{^Is_Category=combiningmark}', "");
+    Expect(1, 917999, '\p{Is_Category=_-combining_Mark}', "");
+    Expect(0, 917999, '\p{^Is_Category=_-combining_Mark}', "");
+    Expect(0, 917999, '\P{Is_Category=_-combining_Mark}', "");
+    Expect(1, 917999, '\P{^Is_Category=_-combining_Mark}', "");
+    Expect(0, 918000, '\p{Is_Category=_-combining_Mark}', "");
+    Expect(1, 918000, '\p{^Is_Category=_-combining_Mark}', "");
+    Expect(1, 918000, '\P{Is_Category=_-combining_Mark}', "");
+    Expect(0, 918000, '\P{^Is_Category=_-combining_Mark}', "");
+    Error('\p{General_Category=__Spacing_Mark:=}');
+    Error('\P{General_Category=__Spacing_Mark:=}');
     Expect(1, 119154, '\p{General_Category=:\ASpacing_Mark\z:}', "");;
     Expect(0, 119155, '\p{General_Category=:\ASpacing_Mark\z:}', "");;
     Expect(1, 119154, '\p{General_Category=spacingmark}', "");
@@ -40473,16 +41041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119155, '\P{^General_Category=spacingmark}', "");
     Expect(1, 119154, '\p{General_Category=:\Aspacingmark\z:}', "");;
     Expect(0, 119155, '\p{General_Category=:\Aspacingmark\z:}', "");;
-    Expect(1, 119154, '\p{General_Category= 	Spacing_Mark}', "");
-    Expect(0, 119154, '\p{^General_Category= 	Spacing_Mark}', "");
-    Expect(0, 119154, '\P{General_Category= 	Spacing_Mark}', "");
-    Expect(1, 119154, '\P{^General_Category= 	Spacing_Mark}', "");
-    Expect(0, 119155, '\p{General_Category= 	Spacing_Mark}', "");
-    Expect(1, 119155, '\p{^General_Category= 	Spacing_Mark}', "");
-    Expect(1, 119155, '\P{General_Category= 	Spacing_Mark}', "");
-    Expect(0, 119155, '\P{^General_Category= 	Spacing_Mark}', "");
-    Error('\p{Gc=	-mc:=}');
-    Error('\P{Gc=	-mc:=}');
+    Expect(1, 119154, '\p{General_Category=-_Spacing_MARK}', "");
+    Expect(0, 119154, '\p{^General_Category=-_Spacing_MARK}', "");
+    Expect(0, 119154, '\P{General_Category=-_Spacing_MARK}', "");
+    Expect(1, 119154, '\P{^General_Category=-_Spacing_MARK}', "");
+    Expect(0, 119155, '\p{General_Category=-_Spacing_MARK}', "");
+    Expect(1, 119155, '\p{^General_Category=-_Spacing_MARK}', "");
+    Expect(1, 119155, '\P{General_Category=-_Spacing_MARK}', "");
+    Expect(0, 119155, '\P{^General_Category=-_Spacing_MARK}', "");
+    Error('\p{Gc= _MC:=}');
+    Error('\P{Gc= _MC:=}');
     Expect(1, 119154, '\p{Gc=:\AMc\z:}', "");;
     Expect(0, 119155, '\p{Gc=:\AMc\z:}', "");;
     Expect(1, 119154, '\p{Gc=mc}', "");
@@ -40495,16 +41063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119155, '\P{^Gc=mc}', "");
     Expect(1, 119154, '\p{Gc=:\Amc\z:}', "");;
     Expect(0, 119155, '\p{Gc=:\Amc\z:}', "");;
-    Expect(1, 119154, '\p{Gc=-	mc}', "");
-    Expect(0, 119154, '\p{^Gc=-	mc}', "");
-    Expect(0, 119154, '\P{Gc=-	mc}', "");
-    Expect(1, 119154, '\P{^Gc=-	mc}', "");
-    Expect(0, 119155, '\p{Gc=-	mc}', "");
-    Expect(1, 119155, '\p{^Gc=-	mc}', "");
-    Expect(1, 119155, '\P{Gc=-	mc}', "");
-    Expect(0, 119155, '\P{^Gc=-	mc}', "");
-    Error('\p{Category=	:=SPACING_Mark}');
-    Error('\P{Category=	:=SPACING_Mark}');
+    Expect(1, 119154, '\p{Gc=_mc}', "");
+    Expect(0, 119154, '\p{^Gc=_mc}', "");
+    Expect(0, 119154, '\P{Gc=_mc}', "");
+    Expect(1, 119154, '\P{^Gc=_mc}', "");
+    Expect(0, 119155, '\p{Gc=_mc}', "");
+    Expect(1, 119155, '\p{^Gc=_mc}', "");
+    Expect(1, 119155, '\P{Gc=_mc}', "");
+    Expect(0, 119155, '\P{^Gc=_mc}', "");
+    Error('\p{Category=/a/	-Spacing_MARK}');
+    Error('\P{Category=/a/	-Spacing_MARK}');
     Expect(1, 119154, '\p{Category=:\ASpacing_Mark\z:}', "");;
     Expect(0, 119155, '\p{Category=:\ASpacing_Mark\z:}', "");;
     Expect(1, 119154, '\p{Category=spacingmark}', "");
@@ -40517,16 +41085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119155, '\P{^Category=spacingmark}', "");
     Expect(1, 119154, '\p{Category=:\Aspacingmark\z:}', "");;
     Expect(0, 119155, '\p{Category=:\Aspacingmark\z:}', "");;
-    Expect(1, 119154, '\p{Category=	Spacing_MARK}', "");
-    Expect(0, 119154, '\p{^Category=	Spacing_MARK}', "");
-    Expect(0, 119154, '\P{Category=	Spacing_MARK}', "");
-    Expect(1, 119154, '\P{^Category=	Spacing_MARK}', "");
-    Expect(0, 119155, '\p{Category=	Spacing_MARK}', "");
-    Expect(1, 119155, '\p{^Category=	Spacing_MARK}', "");
-    Expect(1, 119155, '\P{Category=	Spacing_MARK}', "");
-    Expect(0, 119155, '\P{^Category=	Spacing_MARK}', "");
-    Error('\p{Is_General_Category=:=_	mc}');
-    Error('\P{Is_General_Category=:=_	mc}');
+    Expect(1, 119154, '\p{Category= spacing_Mark}', "");
+    Expect(0, 119154, '\p{^Category= spacing_Mark}', "");
+    Expect(0, 119154, '\P{Category= spacing_Mark}', "");
+    Expect(1, 119154, '\P{^Category= spacing_Mark}', "");
+    Expect(0, 119155, '\p{Category= spacing_Mark}', "");
+    Expect(1, 119155, '\p{^Category= spacing_Mark}', "");
+    Expect(1, 119155, '\P{Category= spacing_Mark}', "");
+    Expect(0, 119155, '\P{^Category= spacing_Mark}', "");
+    Error('\p{Is_General_Category=	mc/a/}');
+    Error('\P{Is_General_Category=	mc/a/}');
     Expect(1, 119154, '\p{Is_General_Category=mc}', "");
     Expect(0, 119154, '\p{^Is_General_Category=mc}', "");
     Expect(0, 119154, '\P{Is_General_Category=mc}', "");
@@ -40535,16 +41103,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119155, '\p{^Is_General_Category=mc}', "");
     Expect(1, 119155, '\P{Is_General_Category=mc}', "");
     Expect(0, 119155, '\P{^Is_General_Category=mc}', "");
-    Expect(1, 119154, '\p{Is_General_Category=	 Mc}', "");
-    Expect(0, 119154, '\p{^Is_General_Category=	 Mc}', "");
-    Expect(0, 119154, '\P{Is_General_Category=	 Mc}', "");
-    Expect(1, 119154, '\P{^Is_General_Category=	 Mc}', "");
-    Expect(0, 119155, '\p{Is_General_Category=	 Mc}', "");
-    Expect(1, 119155, '\p{^Is_General_Category=	 Mc}', "");
-    Expect(1, 119155, '\P{Is_General_Category=	 Mc}', "");
-    Expect(0, 119155, '\P{^Is_General_Category=	 Mc}', "");
-    Error('\p{Is_Gc=_ spacing_Mark:=}');
-    Error('\P{Is_Gc=_ spacing_Mark:=}');
+    Expect(1, 119154, '\p{Is_General_Category=		mc}', "");
+    Expect(0, 119154, '\p{^Is_General_Category=		mc}', "");
+    Expect(0, 119154, '\P{Is_General_Category=		mc}', "");
+    Expect(1, 119154, '\P{^Is_General_Category=		mc}', "");
+    Expect(0, 119155, '\p{Is_General_Category=		mc}', "");
+    Expect(1, 119155, '\p{^Is_General_Category=		mc}', "");
+    Expect(1, 119155, '\P{Is_General_Category=		mc}', "");
+    Expect(0, 119155, '\P{^Is_General_Category=		mc}', "");
+    Error('\p{Is_Gc=:=-SPACING_MARK}');
+    Error('\P{Is_Gc=:=-SPACING_MARK}');
     Expect(1, 119154, '\p{Is_Gc=spacingmark}', "");
     Expect(0, 119154, '\p{^Is_Gc=spacingmark}', "");
     Expect(0, 119154, '\P{Is_Gc=spacingmark}', "");
@@ -40553,16 +41121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119155, '\p{^Is_Gc=spacingmark}', "");
     Expect(1, 119155, '\P{Is_Gc=spacingmark}', "");
     Expect(0, 119155, '\P{^Is_Gc=spacingmark}', "");
-    Expect(1, 119154, '\p{Is_Gc=_-SPACING_MARK}', "");
-    Expect(0, 119154, '\p{^Is_Gc=_-SPACING_MARK}', "");
-    Expect(0, 119154, '\P{Is_Gc=_-SPACING_MARK}', "");
-    Expect(1, 119154, '\P{^Is_Gc=_-SPACING_MARK}', "");
-    Expect(0, 119155, '\p{Is_Gc=_-SPACING_MARK}', "");
-    Expect(1, 119155, '\p{^Is_Gc=_-SPACING_MARK}', "");
-    Expect(1, 119155, '\P{Is_Gc=_-SPACING_MARK}', "");
-    Expect(0, 119155, '\P{^Is_Gc=_-SPACING_MARK}', "");
-    Error('\p{Is_Category=-/a/Mc}');
-    Error('\P{Is_Category=-/a/Mc}');
+    Expect(1, 119154, '\p{Is_Gc= -Spacing_mark}', "");
+    Expect(0, 119154, '\p{^Is_Gc= -Spacing_mark}', "");
+    Expect(0, 119154, '\P{Is_Gc= -Spacing_mark}', "");
+    Expect(1, 119154, '\P{^Is_Gc= -Spacing_mark}', "");
+    Expect(0, 119155, '\p{Is_Gc= -Spacing_mark}', "");
+    Expect(1, 119155, '\p{^Is_Gc= -Spacing_mark}', "");
+    Expect(1, 119155, '\P{Is_Gc= -Spacing_mark}', "");
+    Expect(0, 119155, '\P{^Is_Gc= -Spacing_mark}', "");
+    Error('\p{Is_Category:	-mc:=}');
+    Error('\P{Is_Category:	-mc:=}');
     Expect(1, 119154, '\p{Is_Category=mc}', "");
     Expect(0, 119154, '\p{^Is_Category=mc}', "");
     Expect(0, 119154, '\P{Is_Category=mc}', "");
@@ -40571,16 +41139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119155, '\p{^Is_Category=mc}', "");
     Expect(1, 119155, '\P{Is_Category=mc}', "");
     Expect(0, 119155, '\P{^Is_Category=mc}', "");
-    Expect(1, 119154, '\p{Is_Category=_	Mc}', "");
-    Expect(0, 119154, '\p{^Is_Category=_	Mc}', "");
-    Expect(0, 119154, '\P{Is_Category=_	Mc}', "");
-    Expect(1, 119154, '\P{^Is_Category=_	Mc}', "");
-    Expect(0, 119155, '\p{Is_Category=_	Mc}', "");
-    Expect(1, 119155, '\p{^Is_Category=_	Mc}', "");
-    Expect(1, 119155, '\P{Is_Category=_	Mc}', "");
-    Expect(0, 119155, '\P{^Is_Category=_	Mc}', "");
-    Error('\p{General_Category= :=ENCLOSING_Mark}');
-    Error('\P{General_Category= :=ENCLOSING_Mark}');
+    Expect(1, 119154, '\p{Is_Category= 	mc}', "");
+    Expect(0, 119154, '\p{^Is_Category= 	mc}', "");
+    Expect(0, 119154, '\P{Is_Category= 	mc}', "");
+    Expect(1, 119154, '\P{^Is_Category= 	mc}', "");
+    Expect(0, 119155, '\p{Is_Category= 	mc}', "");
+    Expect(1, 119155, '\p{^Is_Category= 	mc}', "");
+    Expect(1, 119155, '\P{Is_Category= 	mc}', "");
+    Expect(0, 119155, '\P{^Is_Category= 	mc}', "");
+    Error('\p{General_Category=	Enclosing_MARK/a/}');
+    Error('\P{General_Category=	Enclosing_MARK/a/}');
     Expect(1, 42610, '\p{General_Category=:\AEnclosing_Mark\z:}', "");;
     Expect(0, 42611, '\p{General_Category=:\AEnclosing_Mark\z:}', "");;
     Expect(1, 42610, '\p{General_Category=enclosingmark}', "");
@@ -40593,16 +41161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 42611, '\P{^General_Category=enclosingmark}', "");
     Expect(1, 42610, '\p{General_Category=:\Aenclosingmark\z:}', "");;
     Expect(0, 42611, '\p{General_Category=:\Aenclosingmark\z:}', "");;
-    Expect(1, 42610, '\p{General_Category=	-ENCLOSING_MARK}', "");
-    Expect(0, 42610, '\p{^General_Category=	-ENCLOSING_MARK}', "");
-    Expect(0, 42610, '\P{General_Category=	-ENCLOSING_MARK}', "");
-    Expect(1, 42610, '\P{^General_Category=	-ENCLOSING_MARK}', "");
-    Expect(0, 42611, '\p{General_Category=	-ENCLOSING_MARK}', "");
-    Expect(1, 42611, '\p{^General_Category=	-ENCLOSING_MARK}', "");
-    Expect(1, 42611, '\P{General_Category=	-ENCLOSING_MARK}', "");
-    Expect(0, 42611, '\P{^General_Category=	-ENCLOSING_MARK}', "");
-    Error('\p{Gc=/a/	-Me}');
-    Error('\P{Gc=/a/	-Me}');
+    Expect(1, 42610, '\p{General_Category=	enclosing_Mark}', "");
+    Expect(0, 42610, '\p{^General_Category=	enclosing_Mark}', "");
+    Expect(0, 42610, '\P{General_Category=	enclosing_Mark}', "");
+    Expect(1, 42610, '\P{^General_Category=	enclosing_Mark}', "");
+    Expect(0, 42611, '\p{General_Category=	enclosing_Mark}', "");
+    Expect(1, 42611, '\p{^General_Category=	enclosing_Mark}', "");
+    Expect(1, 42611, '\P{General_Category=	enclosing_Mark}', "");
+    Expect(0, 42611, '\P{^General_Category=	enclosing_Mark}', "");
+    Error('\p{Gc=:=	 Me}');
+    Error('\P{Gc=:=	 Me}');
     Expect(1, 42610, '\p{Gc=:\AMe\z:}', "");;
     Expect(0, 42611, '\p{Gc=:\AMe\z:}', "");;
     Expect(1, 42610, '\p{Gc=me}', "");
@@ -40615,16 +41183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 42611, '\P{^Gc=me}', "");
     Expect(1, 42610, '\p{Gc=:\Ame\z:}', "");;
     Expect(0, 42611, '\p{Gc=:\Ame\z:}', "");;
-    Expect(1, 42610, '\p{Gc= 	Me}', "");
-    Expect(0, 42610, '\p{^Gc= 	Me}', "");
-    Expect(0, 42610, '\P{Gc= 	Me}', "");
-    Expect(1, 42610, '\P{^Gc= 	Me}', "");
-    Expect(0, 42611, '\p{Gc= 	Me}', "");
-    Expect(1, 42611, '\p{^Gc= 	Me}', "");
-    Expect(1, 42611, '\P{Gc= 	Me}', "");
-    Expect(0, 42611, '\P{^Gc= 	Me}', "");
-    Error('\p{Category=:= Enclosing_Mark}');
-    Error('\P{Category=:= Enclosing_Mark}');
+    Expect(1, 42610, '\p{Gc=- me}', "");
+    Expect(0, 42610, '\p{^Gc=- me}', "");
+    Expect(0, 42610, '\P{Gc=- me}', "");
+    Expect(1, 42610, '\P{^Gc=- me}', "");
+    Expect(0, 42611, '\p{Gc=- me}', "");
+    Expect(1, 42611, '\p{^Gc=- me}', "");
+    Expect(1, 42611, '\P{Gc=- me}', "");
+    Expect(0, 42611, '\P{^Gc=- me}', "");
+    Error('\p{Category: _Enclosing_Mark/a/}');
+    Error('\P{Category: _Enclosing_Mark/a/}');
     Expect(1, 42610, '\p{Category=:\AEnclosing_Mark\z:}', "");;
     Expect(0, 42611, '\p{Category=:\AEnclosing_Mark\z:}', "");;
     Expect(1, 42610, '\p{Category=enclosingmark}', "");
@@ -40637,34 +41205,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 42611, '\P{^Category=enclosingmark}', "");
     Expect(1, 42610, '\p{Category=:\Aenclosingmark\z:}', "");;
     Expect(0, 42611, '\p{Category=:\Aenclosingmark\z:}', "");;
-    Expect(1, 42610, '\p{Category=_	ENCLOSING_MARK}', "");
-    Expect(0, 42610, '\p{^Category=_	ENCLOSING_MARK}', "");
-    Expect(0, 42610, '\P{Category=_	ENCLOSING_MARK}', "");
-    Expect(1, 42610, '\P{^Category=_	ENCLOSING_MARK}', "");
-    Expect(0, 42611, '\p{Category=_	ENCLOSING_MARK}', "");
-    Expect(1, 42611, '\p{^Category=_	ENCLOSING_MARK}', "");
-    Expect(1, 42611, '\P{Category=_	ENCLOSING_MARK}', "");
-    Expect(0, 42611, '\P{^Category=_	ENCLOSING_MARK}', "");
-    Error('\p{Is_General_Category=-/a/ME}');
-    Error('\P{Is_General_Category=-/a/ME}');
-    Expect(1, 42610, '\p{Is_General_Category:me}', "");
-    Expect(0, 42610, '\p{^Is_General_Category:me}', "");
-    Expect(0, 42610, '\P{Is_General_Category:me}', "");
-    Expect(1, 42610, '\P{^Is_General_Category:me}', "");
-    Expect(0, 42611, '\p{Is_General_Category:me}', "");
-    Expect(1, 42611, '\p{^Is_General_Category:me}', "");
-    Expect(1, 42611, '\P{Is_General_Category:me}', "");
-    Expect(0, 42611, '\P{^Is_General_Category:me}', "");
-    Expect(1, 42610, '\p{Is_General_Category=_ ME}', "");
-    Expect(0, 42610, '\p{^Is_General_Category=_ ME}', "");
-    Expect(0, 42610, '\P{Is_General_Category=_ ME}', "");
-    Expect(1, 42610, '\P{^Is_General_Category=_ ME}', "");
-    Expect(0, 42611, '\p{Is_General_Category=_ ME}', "");
-    Expect(1, 42611, '\p{^Is_General_Category=_ ME}', "");
-    Expect(1, 42611, '\P{Is_General_Category=_ ME}', "");
-    Expect(0, 42611, '\P{^Is_General_Category=_ ME}', "");
-    Error('\p{Is_Gc=:= _Enclosing_MARK}');
-    Error('\P{Is_Gc=:= _Enclosing_MARK}');
+    Expect(1, 42610, '\p{Category=-	ENCLOSING_MARK}', "");
+    Expect(0, 42610, '\p{^Category=-	ENCLOSING_MARK}', "");
+    Expect(0, 42610, '\P{Category=-	ENCLOSING_MARK}', "");
+    Expect(1, 42610, '\P{^Category=-	ENCLOSING_MARK}', "");
+    Expect(0, 42611, '\p{Category=-	ENCLOSING_MARK}', "");
+    Expect(1, 42611, '\p{^Category=-	ENCLOSING_MARK}', "");
+    Expect(1, 42611, '\P{Category=-	ENCLOSING_MARK}', "");
+    Expect(0, 42611, '\P{^Category=-	ENCLOSING_MARK}', "");
+    Error('\p{Is_General_Category= /a/me}');
+    Error('\P{Is_General_Category= /a/me}');
+    Expect(1, 42610, '\p{Is_General_Category=me}', "");
+    Expect(0, 42610, '\p{^Is_General_Category=me}', "");
+    Expect(0, 42610, '\P{Is_General_Category=me}', "");
+    Expect(1, 42610, '\P{^Is_General_Category=me}', "");
+    Expect(0, 42611, '\p{Is_General_Category=me}', "");
+    Expect(1, 42611, '\p{^Is_General_Category=me}', "");
+    Expect(1, 42611, '\P{Is_General_Category=me}', "");
+    Expect(0, 42611, '\P{^Is_General_Category=me}', "");
+    Expect(1, 42610, '\p{Is_General_Category=--Me}', "");
+    Expect(0, 42610, '\p{^Is_General_Category=--Me}', "");
+    Expect(0, 42610, '\P{Is_General_Category=--Me}', "");
+    Expect(1, 42610, '\P{^Is_General_Category=--Me}', "");
+    Expect(0, 42611, '\p{Is_General_Category=--Me}', "");
+    Expect(1, 42611, '\p{^Is_General_Category=--Me}', "");
+    Expect(1, 42611, '\P{Is_General_Category=--Me}', "");
+    Expect(0, 42611, '\P{^Is_General_Category=--Me}', "");
+    Error('\p{Is_Gc=  ENCLOSING_MARK:=}');
+    Error('\P{Is_Gc=  ENCLOSING_MARK:=}');
     Expect(1, 42610, '\p{Is_Gc=enclosingmark}', "");
     Expect(0, 42610, '\p{^Is_Gc=enclosingmark}', "");
     Expect(0, 42610, '\P{Is_Gc=enclosingmark}', "");
@@ -40673,16 +41241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 42611, '\p{^Is_Gc=enclosingmark}', "");
     Expect(1, 42611, '\P{Is_Gc=enclosingmark}', "");
     Expect(0, 42611, '\P{^Is_Gc=enclosingmark}', "");
-    Expect(1, 42610, '\p{Is_Gc: 	enclosing_MARK}', "");
-    Expect(0, 42610, '\p{^Is_Gc: 	enclosing_MARK}', "");
-    Expect(0, 42610, '\P{Is_Gc: 	enclosing_MARK}', "");
-    Expect(1, 42610, '\P{^Is_Gc: 	enclosing_MARK}', "");
-    Expect(0, 42611, '\p{Is_Gc: 	enclosing_MARK}', "");
-    Expect(1, 42611, '\p{^Is_Gc: 	enclosing_MARK}', "");
-    Expect(1, 42611, '\P{Is_Gc: 	enclosing_MARK}', "");
-    Expect(0, 42611, '\P{^Is_Gc: 	enclosing_MARK}', "");
-    Error('\p{Is_Category=_Me/a/}');
-    Error('\P{Is_Category=_Me/a/}');
+    Expect(1, 42610, '\p{Is_Gc: -_Enclosing_Mark}', "");
+    Expect(0, 42610, '\p{^Is_Gc: -_Enclosing_Mark}', "");
+    Expect(0, 42610, '\P{Is_Gc: -_Enclosing_Mark}', "");
+    Expect(1, 42610, '\P{^Is_Gc: -_Enclosing_Mark}', "");
+    Expect(0, 42611, '\p{Is_Gc: -_Enclosing_Mark}', "");
+    Expect(1, 42611, '\p{^Is_Gc: -_Enclosing_Mark}', "");
+    Expect(1, 42611, '\P{Is_Gc: -_Enclosing_Mark}', "");
+    Expect(0, 42611, '\P{^Is_Gc: -_Enclosing_Mark}', "");
+    Error('\p{Is_Category=:=_	ME}');
+    Error('\P{Is_Category=:=_	ME}');
     Expect(1, 42610, '\p{Is_Category=me}', "");
     Expect(0, 42610, '\p{^Is_Category=me}', "");
     Expect(0, 42610, '\P{Is_Category=me}', "");
@@ -40691,16 +41259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 42611, '\p{^Is_Category=me}', "");
     Expect(1, 42611, '\P{Is_Category=me}', "");
     Expect(0, 42611, '\P{^Is_Category=me}', "");
-    Expect(1, 42610, '\p{Is_Category= -me}', "");
-    Expect(0, 42610, '\p{^Is_Category= -me}', "");
-    Expect(0, 42610, '\P{Is_Category= -me}', "");
-    Expect(1, 42610, '\P{^Is_Category= -me}', "");
-    Expect(0, 42611, '\p{Is_Category= -me}', "");
-    Expect(1, 42611, '\p{^Is_Category= -me}', "");
-    Expect(1, 42611, '\P{Is_Category= -me}', "");
-    Expect(0, 42611, '\P{^Is_Category= -me}', "");
-    Error('\p{General_Category=	 Nonspacing_MARK/a/}');
-    Error('\P{General_Category=	 Nonspacing_MARK/a/}');
+    Expect(1, 42610, '\p{Is_Category=_ME}', "");
+    Expect(0, 42610, '\p{^Is_Category=_ME}', "");
+    Expect(0, 42610, '\P{Is_Category=_ME}', "");
+    Expect(1, 42610, '\P{^Is_Category=_ME}', "");
+    Expect(0, 42611, '\p{Is_Category=_ME}', "");
+    Expect(1, 42611, '\p{^Is_Category=_ME}', "");
+    Expect(1, 42611, '\P{Is_Category=_ME}', "");
+    Expect(0, 42611, '\P{^Is_Category=_ME}', "");
+    Error('\p{General_Category=-nonspacing_Mark:=}');
+    Error('\P{General_Category=-nonspacing_Mark:=}');
     Expect(1, 917999, '\p{General_Category=:\ANonspacing_Mark\z:}', "");;
     Expect(0, 918000, '\p{General_Category=:\ANonspacing_Mark\z:}', "");;
     Expect(1, 917999, '\p{General_Category=nonspacingmark}', "");
@@ -40713,16 +41281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^General_Category=nonspacingmark}', "");
     Expect(1, 917999, '\p{General_Category=:\Anonspacingmark\z:}', "");;
     Expect(0, 918000, '\p{General_Category=:\Anonspacingmark\z:}', "");;
-    Expect(1, 917999, '\p{General_Category=	 Nonspacing_Mark}', "");
-    Expect(0, 917999, '\p{^General_Category=	 Nonspacing_Mark}', "");
-    Expect(0, 917999, '\P{General_Category=	 Nonspacing_Mark}', "");
-    Expect(1, 917999, '\P{^General_Category=	 Nonspacing_Mark}', "");
-    Expect(0, 918000, '\p{General_Category=	 Nonspacing_Mark}', "");
-    Expect(1, 918000, '\p{^General_Category=	 Nonspacing_Mark}', "");
-    Expect(1, 918000, '\P{General_Category=	 Nonspacing_Mark}', "");
-    Expect(0, 918000, '\P{^General_Category=	 Nonspacing_Mark}', "");
-    Error('\p{Gc=/a/MN}');
-    Error('\P{Gc=/a/MN}');
+    Expect(1, 917999, '\p{General_Category=		Nonspacing_mark}', "");
+    Expect(0, 917999, '\p{^General_Category=		Nonspacing_mark}', "");
+    Expect(0, 917999, '\P{General_Category=		Nonspacing_mark}', "");
+    Expect(1, 917999, '\P{^General_Category=		Nonspacing_mark}', "");
+    Expect(0, 918000, '\p{General_Category=		Nonspacing_mark}', "");
+    Expect(1, 918000, '\p{^General_Category=		Nonspacing_mark}', "");
+    Expect(1, 918000, '\P{General_Category=		Nonspacing_mark}', "");
+    Expect(0, 918000, '\P{^General_Category=		Nonspacing_mark}', "");
+    Error('\p{Gc=_	mn:=}');
+    Error('\P{Gc=_	mn:=}');
     Expect(1, 917999, '\p{Gc=:\AMn\z:}', "");;
     Expect(0, 918000, '\p{Gc=:\AMn\z:}', "");;
     Expect(1, 917999, '\p{Gc=mn}', "");
@@ -40735,16 +41303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Gc=mn}', "");
     Expect(1, 917999, '\p{Gc=:\Amn\z:}', "");;
     Expect(0, 918000, '\p{Gc=:\Amn\z:}', "");;
-    Expect(1, 917999, '\p{Gc=-	Mn}', "");
-    Expect(0, 917999, '\p{^Gc=-	Mn}', "");
-    Expect(0, 917999, '\P{Gc=-	Mn}', "");
-    Expect(1, 917999, '\P{^Gc=-	Mn}', "");
-    Expect(0, 918000, '\p{Gc=-	Mn}', "");
-    Expect(1, 918000, '\p{^Gc=-	Mn}', "");
-    Expect(1, 918000, '\P{Gc=-	Mn}', "");
-    Expect(0, 918000, '\P{^Gc=-	Mn}', "");
-    Error('\p{Category=/a/ Nonspacing_Mark}');
-    Error('\P{Category=/a/ Nonspacing_Mark}');
+    Expect(1, 917999, '\p{Gc= mn}', "");
+    Expect(0, 917999, '\p{^Gc= mn}', "");
+    Expect(0, 917999, '\P{Gc= mn}', "");
+    Expect(1, 917999, '\P{^Gc= mn}', "");
+    Expect(0, 918000, '\p{Gc= mn}', "");
+    Expect(1, 918000, '\p{^Gc= mn}', "");
+    Expect(1, 918000, '\P{Gc= mn}', "");
+    Expect(0, 918000, '\P{^Gc= mn}', "");
+    Error('\p{Category=:= 	Nonspacing_mark}');
+    Error('\P{Category=:= 	Nonspacing_mark}');
     Expect(1, 917999, '\p{Category=:\ANonspacing_Mark\z:}', "");;
     Expect(0, 918000, '\p{Category=:\ANonspacing_Mark\z:}', "");;
     Expect(1, 917999, '\p{Category=nonspacingmark}', "");
@@ -40757,16 +41325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Category=nonspacingmark}', "");
     Expect(1, 917999, '\p{Category=:\Anonspacingmark\z:}', "");;
     Expect(0, 918000, '\p{Category=:\Anonspacingmark\z:}', "");;
-    Expect(1, 917999, '\p{Category:	-	Nonspacing_Mark}', "");
-    Expect(0, 917999, '\p{^Category:	-	Nonspacing_Mark}', "");
-    Expect(0, 917999, '\P{Category:	-	Nonspacing_Mark}', "");
-    Expect(1, 917999, '\P{^Category:	-	Nonspacing_Mark}', "");
-    Expect(0, 918000, '\p{Category:	-	Nonspacing_Mark}', "");
-    Expect(1, 918000, '\p{^Category:	-	Nonspacing_Mark}', "");
-    Expect(1, 918000, '\P{Category:	-	Nonspacing_Mark}', "");
-    Expect(0, 918000, '\P{^Category:	-	Nonspacing_Mark}', "");
-    Error('\p{Is_General_Category:	:= _mn}');
-    Error('\P{Is_General_Category:	:= _mn}');
+    Expect(1, 917999, '\p{Category= nonspacing_Mark}', "");
+    Expect(0, 917999, '\p{^Category= nonspacing_Mark}', "");
+    Expect(0, 917999, '\P{Category= nonspacing_Mark}', "");
+    Expect(1, 917999, '\P{^Category= nonspacing_Mark}', "");
+    Expect(0, 918000, '\p{Category= nonspacing_Mark}', "");
+    Expect(1, 918000, '\p{^Category= nonspacing_Mark}', "");
+    Expect(1, 918000, '\P{Category= nonspacing_Mark}', "");
+    Expect(0, 918000, '\P{^Category= nonspacing_Mark}', "");
+    Error('\p{Is_General_Category= MN/a/}');
+    Error('\P{Is_General_Category= MN/a/}');
     Expect(1, 917999, '\p{Is_General_Category=mn}', "");
     Expect(0, 917999, '\p{^Is_General_Category=mn}', "");
     Expect(0, 917999, '\P{Is_General_Category=mn}', "");
@@ -40775,16 +41343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_General_Category=mn}', "");
     Expect(1, 918000, '\P{Is_General_Category=mn}', "");
     Expect(0, 918000, '\P{^Is_General_Category=mn}', "");
-    Expect(1, 917999, '\p{Is_General_Category: _ Mn}', "");
-    Expect(0, 917999, '\p{^Is_General_Category: _ Mn}', "");
-    Expect(0, 917999, '\P{Is_General_Category: _ Mn}', "");
-    Expect(1, 917999, '\P{^Is_General_Category: _ Mn}', "");
-    Expect(0, 918000, '\p{Is_General_Category: _ Mn}', "");
-    Expect(1, 918000, '\p{^Is_General_Category: _ Mn}', "");
-    Expect(1, 918000, '\P{Is_General_Category: _ Mn}', "");
-    Expect(0, 918000, '\P{^Is_General_Category: _ Mn}', "");
-    Error('\p{Is_Gc=:= Nonspacing_mark}');
-    Error('\P{Is_Gc=:= Nonspacing_mark}');
+    Expect(1, 917999, '\p{Is_General_Category=__Mn}', "");
+    Expect(0, 917999, '\p{^Is_General_Category=__Mn}', "");
+    Expect(0, 917999, '\P{Is_General_Category=__Mn}', "");
+    Expect(1, 917999, '\P{^Is_General_Category=__Mn}', "");
+    Expect(0, 918000, '\p{Is_General_Category=__Mn}', "");
+    Expect(1, 918000, '\p{^Is_General_Category=__Mn}', "");
+    Expect(1, 918000, '\P{Is_General_Category=__Mn}', "");
+    Expect(0, 918000, '\P{^Is_General_Category=__Mn}', "");
+    Error('\p{Is_Gc=_/a/Nonspacing_Mark}');
+    Error('\P{Is_Gc=_/a/Nonspacing_Mark}');
     Expect(1, 917999, '\p{Is_Gc=nonspacingmark}', "");
     Expect(0, 917999, '\p{^Is_Gc=nonspacingmark}', "");
     Expect(0, 917999, '\P{Is_Gc=nonspacingmark}', "");
@@ -40793,16 +41361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Gc=nonspacingmark}', "");
     Expect(1, 918000, '\P{Is_Gc=nonspacingmark}', "");
     Expect(0, 918000, '\P{^Is_Gc=nonspacingmark}', "");
-    Expect(1, 917999, '\p{Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(0, 917999, '\p{^Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(0, 917999, '\P{Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(1, 917999, '\P{^Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(0, 918000, '\p{Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(1, 918000, '\p{^Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(1, 918000, '\P{Is_Gc=	_NONSPACING_Mark}', "");
-    Expect(0, 918000, '\P{^Is_Gc=	_NONSPACING_Mark}', "");
-    Error('\p{Is_Category=/a/-MN}');
-    Error('\P{Is_Category=/a/-MN}');
+    Expect(1, 917999, '\p{Is_Gc=_NONSPACING_MARK}', "");
+    Expect(0, 917999, '\p{^Is_Gc=_NONSPACING_MARK}', "");
+    Expect(0, 917999, '\P{Is_Gc=_NONSPACING_MARK}', "");
+    Expect(1, 917999, '\P{^Is_Gc=_NONSPACING_MARK}', "");
+    Expect(0, 918000, '\p{Is_Gc=_NONSPACING_MARK}', "");
+    Expect(1, 918000, '\p{^Is_Gc=_NONSPACING_MARK}', "");
+    Expect(1, 918000, '\P{Is_Gc=_NONSPACING_MARK}', "");
+    Expect(0, 918000, '\P{^Is_Gc=_NONSPACING_MARK}', "");
+    Error('\p{Is_Category=	Mn:=}');
+    Error('\P{Is_Category=	Mn:=}');
     Expect(1, 917999, '\p{Is_Category=mn}', "");
     Expect(0, 917999, '\p{^Is_Category=mn}', "");
     Expect(0, 917999, '\P{Is_Category=mn}', "");
@@ -40811,38 +41379,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Category=mn}', "");
     Expect(1, 918000, '\P{Is_Category=mn}', "");
     Expect(0, 918000, '\P{^Is_Category=mn}', "");
-    Expect(1, 917999, '\p{Is_Category=- Mn}', "");
-    Expect(0, 917999, '\p{^Is_Category=- Mn}', "");
-    Expect(0, 917999, '\P{Is_Category=- Mn}', "");
-    Expect(1, 917999, '\P{^Is_Category=- Mn}', "");
-    Expect(0, 918000, '\p{Is_Category=- Mn}', "");
-    Expect(1, 918000, '\p{^Is_Category=- Mn}', "");
-    Expect(1, 918000, '\P{Is_Category=- Mn}', "");
-    Expect(0, 918000, '\P{^Is_Category=- Mn}', "");
-    Error('\p{General_Category=_:=Number}');
-    Error('\P{General_Category=_:=Number}');
+    Expect(1, 917999, '\p{Is_Category=	 mn}', "");
+    Expect(0, 917999, '\p{^Is_Category=	 mn}', "");
+    Expect(0, 917999, '\P{Is_Category=	 mn}', "");
+    Expect(1, 917999, '\P{^Is_Category=	 mn}', "");
+    Expect(0, 918000, '\p{Is_Category=	 mn}', "");
+    Expect(1, 918000, '\p{^Is_Category=	 mn}', "");
+    Expect(1, 918000, '\P{Is_Category=	 mn}', "");
+    Expect(0, 918000, '\P{^Is_Category=	 mn}', "");
+    Error('\p{General_Category=:= -Number}');
+    Error('\P{General_Category=:= -Number}');
     Expect(1, 130041, '\p{General_Category=:\ANumber\z:}', "");;
     Expect(0, 130042, '\p{General_Category=:\ANumber\z:}', "");;
-    Expect(1, 130041, '\p{General_Category:   number}', "");
-    Expect(0, 130041, '\p{^General_Category:   number}', "");
-    Expect(0, 130041, '\P{General_Category:   number}', "");
-    Expect(1, 130041, '\P{^General_Category:   number}', "");
-    Expect(0, 130042, '\p{General_Category:   number}', "");
-    Expect(1, 130042, '\p{^General_Category:   number}', "");
-    Expect(1, 130042, '\P{General_Category:   number}', "");
-    Expect(0, 130042, '\P{^General_Category:   number}', "");
+    Expect(1, 130041, '\p{General_Category=number}', "");
+    Expect(0, 130041, '\p{^General_Category=number}', "");
+    Expect(0, 130041, '\P{General_Category=number}', "");
+    Expect(1, 130041, '\P{^General_Category=number}', "");
+    Expect(0, 130042, '\p{General_Category=number}', "");
+    Expect(1, 130042, '\p{^General_Category=number}', "");
+    Expect(1, 130042, '\P{General_Category=number}', "");
+    Expect(0, 130042, '\P{^General_Category=number}', "");
     Expect(1, 130041, '\p{General_Category=:\Anumber\z:}', "");;
     Expect(0, 130042, '\p{General_Category=:\Anumber\z:}', "");;
-    Expect(1, 130041, '\p{General_Category:   	Number}', "");
-    Expect(0, 130041, '\p{^General_Category:   	Number}', "");
-    Expect(0, 130041, '\P{General_Category:   	Number}', "");
-    Expect(1, 130041, '\P{^General_Category:   	Number}', "");
-    Expect(0, 130042, '\p{General_Category:   	Number}', "");
-    Expect(1, 130042, '\p{^General_Category:   	Number}', "");
-    Expect(1, 130042, '\P{General_Category:   	Number}', "");
-    Expect(0, 130042, '\P{^General_Category:   	Number}', "");
-    Error('\p{Gc=	_n:=}');
-    Error('\P{Gc=	_n:=}');
+    Expect(1, 130041, '\p{General_Category=--number}', "");
+    Expect(0, 130041, '\p{^General_Category=--number}', "");
+    Expect(0, 130041, '\P{General_Category=--number}', "");
+    Expect(1, 130041, '\P{^General_Category=--number}', "");
+    Expect(0, 130042, '\p{General_Category=--number}', "");
+    Expect(1, 130042, '\p{^General_Category=--number}', "");
+    Expect(1, 130042, '\P{General_Category=--number}', "");
+    Expect(0, 130042, '\P{^General_Category=--number}', "");
+    Error('\p{Gc=:=		N}');
+    Error('\P{Gc=:=		N}');
     Expect(1, 130041, '\p{Gc=:\AN\z:}', "");;
     Expect(0, 130042, '\p{Gc=:\AN\z:}', "");;
     Expect(1, 130041, '\p{Gc=n}', "");
@@ -40855,16 +41423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^Gc=n}', "");
     Expect(1, 130041, '\p{Gc=:\An\z:}', "");;
     Expect(0, 130042, '\p{Gc=:\An\z:}', "");;
-    Expect(1, 130041, '\p{Gc= 	N}', "");
-    Expect(0, 130041, '\p{^Gc= 	N}', "");
-    Expect(0, 130041, '\P{Gc= 	N}', "");
-    Expect(1, 130041, '\P{^Gc= 	N}', "");
-    Expect(0, 130042, '\p{Gc= 	N}', "");
-    Expect(1, 130042, '\p{^Gc= 	N}', "");
-    Expect(1, 130042, '\P{Gc= 	N}', "");
-    Expect(0, 130042, '\P{^Gc= 	N}', "");
-    Error('\p{Category=- number:=}');
-    Error('\P{Category=- number:=}');
+    Expect(1, 130041, '\p{Gc= _N}', "");
+    Expect(0, 130041, '\p{^Gc= _N}', "");
+    Expect(0, 130041, '\P{Gc= _N}', "");
+    Expect(1, 130041, '\P{^Gc= _N}', "");
+    Expect(0, 130042, '\p{Gc= _N}', "");
+    Expect(1, 130042, '\p{^Gc= _N}', "");
+    Expect(1, 130042, '\P{Gc= _N}', "");
+    Expect(0, 130042, '\P{^Gc= _N}', "");
+    Error('\p{Category=:= NUMBER}');
+    Error('\P{Category=:= NUMBER}');
     Expect(1, 130041, '\p{Category=:\ANumber\z:}', "");;
     Expect(0, 130042, '\p{Category=:\ANumber\z:}', "");;
     Expect(1, 130041, '\p{Category=number}', "");
@@ -40877,16 +41445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^Category=number}', "");
     Expect(1, 130041, '\p{Category=:\Anumber\z:}', "");;
     Expect(0, 130042, '\p{Category=:\Anumber\z:}', "");;
-    Expect(1, 130041, '\p{Category= -Number}', "");
-    Expect(0, 130041, '\p{^Category= -Number}', "");
-    Expect(0, 130041, '\P{Category= -Number}', "");
-    Expect(1, 130041, '\P{^Category= -Number}', "");
-    Expect(0, 130042, '\p{Category= -Number}', "");
-    Expect(1, 130042, '\p{^Category= -Number}', "");
-    Expect(1, 130042, '\P{Category= -Number}', "");
-    Expect(0, 130042, '\P{^Category= -Number}', "");
-    Error('\p{Is_General_Category:/a/-N}');
-    Error('\P{Is_General_Category:/a/-N}');
+    Expect(1, 130041, '\p{Category:--number}', "");
+    Expect(0, 130041, '\p{^Category:--number}', "");
+    Expect(0, 130041, '\P{Category:--number}', "");
+    Expect(1, 130041, '\P{^Category:--number}', "");
+    Expect(0, 130042, '\p{Category:--number}', "");
+    Expect(1, 130042, '\p{^Category:--number}', "");
+    Expect(1, 130042, '\P{Category:--number}', "");
+    Expect(0, 130042, '\P{^Category:--number}', "");
+    Error('\p{Is_General_Category=:=	 n}');
+    Error('\P{Is_General_Category=:=	 n}');
     Expect(1, 130041, '\p{Is_General_Category=n}', "");
     Expect(0, 130041, '\p{^Is_General_Category=n}', "");
     Expect(0, 130041, '\P{Is_General_Category=n}', "");
@@ -40895,16 +41463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_General_Category=n}', "");
     Expect(1, 130042, '\P{Is_General_Category=n}', "");
     Expect(0, 130042, '\P{^Is_General_Category=n}', "");
-    Expect(1, 130041, '\p{Is_General_Category= N}', "");
-    Expect(0, 130041, '\p{^Is_General_Category= N}', "");
-    Expect(0, 130041, '\P{Is_General_Category= N}', "");
-    Expect(1, 130041, '\P{^Is_General_Category= N}', "");
-    Expect(0, 130042, '\p{Is_General_Category= N}', "");
-    Expect(1, 130042, '\p{^Is_General_Category= N}', "");
-    Expect(1, 130042, '\P{Is_General_Category= N}', "");
-    Expect(0, 130042, '\P{^Is_General_Category= N}', "");
-    Error('\p{Is_Gc: /a/NUMBER}');
-    Error('\P{Is_Gc: /a/NUMBER}');
+    Expect(1, 130041, '\p{Is_General_Category=	 N}', "");
+    Expect(0, 130041, '\p{^Is_General_Category=	 N}', "");
+    Expect(0, 130041, '\P{Is_General_Category=	 N}', "");
+    Expect(1, 130041, '\P{^Is_General_Category=	 N}', "");
+    Expect(0, 130042, '\p{Is_General_Category=	 N}', "");
+    Expect(1, 130042, '\p{^Is_General_Category=	 N}', "");
+    Expect(1, 130042, '\P{Is_General_Category=	 N}', "");
+    Expect(0, 130042, '\P{^Is_General_Category=	 N}', "");
+    Error('\p{Is_Gc=/a/	_NUMBER}');
+    Error('\P{Is_Gc=/a/	_NUMBER}');
     Expect(1, 130041, '\p{Is_Gc=number}', "");
     Expect(0, 130041, '\p{^Is_Gc=number}', "");
     Expect(0, 130041, '\P{Is_Gc=number}', "");
@@ -40913,34 +41481,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_Gc=number}', "");
     Expect(1, 130042, '\P{Is_Gc=number}', "");
     Expect(0, 130042, '\P{^Is_Gc=number}', "");
-    Expect(1, 130041, '\p{Is_Gc:    Number}', "");
-    Expect(0, 130041, '\p{^Is_Gc:    Number}', "");
-    Expect(0, 130041, '\P{Is_Gc:    Number}', "");
-    Expect(1, 130041, '\P{^Is_Gc:    Number}', "");
-    Expect(0, 130042, '\p{Is_Gc:    Number}', "");
-    Expect(1, 130042, '\p{^Is_Gc:    Number}', "");
-    Expect(1, 130042, '\P{Is_Gc:    Number}', "");
-    Expect(0, 130042, '\P{^Is_Gc:    Number}', "");
-    Error('\p{Is_Category=:=		N}');
-    Error('\P{Is_Category=:=		N}');
-    Expect(1, 130041, '\p{Is_Category:	n}', "");
-    Expect(0, 130041, '\p{^Is_Category:	n}', "");
-    Expect(0, 130041, '\P{Is_Category:	n}', "");
-    Expect(1, 130041, '\P{^Is_Category:	n}', "");
-    Expect(0, 130042, '\p{Is_Category:	n}', "");
-    Expect(1, 130042, '\p{^Is_Category:	n}', "");
-    Expect(1, 130042, '\P{Is_Category:	n}', "");
-    Expect(0, 130042, '\P{^Is_Category:	n}', "");
-    Expect(1, 130041, '\p{Is_Category=-_n}', "");
-    Expect(0, 130041, '\p{^Is_Category=-_n}', "");
-    Expect(0, 130041, '\P{Is_Category=-_n}', "");
-    Expect(1, 130041, '\P{^Is_Category=-_n}', "");
-    Expect(0, 130042, '\p{Is_Category=-_n}', "");
-    Expect(1, 130042, '\p{^Is_Category=-_n}', "");
-    Expect(1, 130042, '\P{Is_Category=-_n}', "");
-    Expect(0, 130042, '\P{^Is_Category=-_n}', "");
-    Error('\p{General_Category=/a/_	DECIMAL_NUMBER}');
-    Error('\P{General_Category=/a/_	DECIMAL_NUMBER}');
+    Expect(1, 130041, '\p{Is_Gc=		NUMBER}', "");
+    Expect(0, 130041, '\p{^Is_Gc=		NUMBER}', "");
+    Expect(0, 130041, '\P{Is_Gc=		NUMBER}', "");
+    Expect(1, 130041, '\P{^Is_Gc=		NUMBER}', "");
+    Expect(0, 130042, '\p{Is_Gc=		NUMBER}', "");
+    Expect(1, 130042, '\p{^Is_Gc=		NUMBER}', "");
+    Expect(1, 130042, '\P{Is_Gc=		NUMBER}', "");
+    Expect(0, 130042, '\P{^Is_Gc=		NUMBER}', "");
+    Error('\p{Is_Category=	/a/n}');
+    Error('\P{Is_Category=	/a/n}');
+    Expect(1, 130041, '\p{Is_Category:n}', "");
+    Expect(0, 130041, '\p{^Is_Category:n}', "");
+    Expect(0, 130041, '\P{Is_Category:n}', "");
+    Expect(1, 130041, '\P{^Is_Category:n}', "");
+    Expect(0, 130042, '\p{Is_Category:n}', "");
+    Expect(1, 130042, '\p{^Is_Category:n}', "");
+    Expect(1, 130042, '\P{Is_Category:n}', "");
+    Expect(0, 130042, '\P{^Is_Category:n}', "");
+    Expect(1, 130041, '\p{Is_Category= n}', "");
+    Expect(0, 130041, '\p{^Is_Category= n}', "");
+    Expect(0, 130041, '\P{Is_Category= n}', "");
+    Expect(1, 130041, '\P{^Is_Category= n}', "");
+    Expect(0, 130042, '\p{Is_Category= n}', "");
+    Expect(1, 130042, '\p{^Is_Category= n}', "");
+    Expect(1, 130042, '\P{Is_Category= n}', "");
+    Expect(0, 130042, '\P{^Is_Category= n}', "");
+    Error('\p{General_Category=/a/-_Decimal_number}');
+    Error('\P{General_Category=/a/-_Decimal_number}');
     Expect(1, 130041, '\p{General_Category=:\ADecimal_Number\z:}', "");;
     Expect(0, 130042, '\p{General_Category=:\ADecimal_Number\z:}', "");;
     Expect(1, 130041, '\p{General_Category=decimalnumber}', "");
@@ -40953,38 +41521,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^General_Category=decimalnumber}', "");
     Expect(1, 130041, '\p{General_Category=:\Adecimalnumber\z:}', "");;
     Expect(0, 130042, '\p{General_Category=:\Adecimalnumber\z:}', "");;
-    Expect(1, 130041, '\p{General_Category=_ Decimal_number}', "");
-    Expect(0, 130041, '\p{^General_Category=_ Decimal_number}', "");
-    Expect(0, 130041, '\P{General_Category=_ Decimal_number}', "");
-    Expect(1, 130041, '\P{^General_Category=_ Decimal_number}', "");
-    Expect(0, 130042, '\p{General_Category=_ Decimal_number}', "");
-    Expect(1, 130042, '\p{^General_Category=_ Decimal_number}', "");
-    Expect(1, 130042, '\P{General_Category=_ Decimal_number}', "");
-    Expect(0, 130042, '\P{^General_Category=_ Decimal_number}', "");
-    Error('\p{Gc= _Nd/a/}');
-    Error('\P{Gc= _Nd/a/}');
+    Expect(1, 130041, '\p{General_Category=--decimal_Number}', "");
+    Expect(0, 130041, '\p{^General_Category=--decimal_Number}', "");
+    Expect(0, 130041, '\P{General_Category=--decimal_Number}', "");
+    Expect(1, 130041, '\P{^General_Category=--decimal_Number}', "");
+    Expect(0, 130042, '\p{General_Category=--decimal_Number}', "");
+    Expect(1, 130042, '\p{^General_Category=--decimal_Number}', "");
+    Expect(1, 130042, '\P{General_Category=--decimal_Number}', "");
+    Expect(0, 130042, '\P{^General_Category=--decimal_Number}', "");
+    Error('\p{Gc=/a/- ND}');
+    Error('\P{Gc=/a/- ND}');
     Expect(1, 130041, '\p{Gc=:\ANd\z:}', "");;
     Expect(0, 130042, '\p{Gc=:\ANd\z:}', "");;
-    Expect(1, 130041, '\p{Gc=nd}', "");
-    Expect(0, 130041, '\p{^Gc=nd}', "");
-    Expect(0, 130041, '\P{Gc=nd}', "");
-    Expect(1, 130041, '\P{^Gc=nd}', "");
-    Expect(0, 130042, '\p{Gc=nd}', "");
-    Expect(1, 130042, '\p{^Gc=nd}', "");
-    Expect(1, 130042, '\P{Gc=nd}', "");
-    Expect(0, 130042, '\P{^Gc=nd}', "");
+    Expect(1, 130041, '\p{Gc:   nd}', "");
+    Expect(0, 130041, '\p{^Gc:   nd}', "");
+    Expect(0, 130041, '\P{Gc:   nd}', "");
+    Expect(1, 130041, '\P{^Gc:   nd}', "");
+    Expect(0, 130042, '\p{Gc:   nd}', "");
+    Expect(1, 130042, '\p{^Gc:   nd}', "");
+    Expect(1, 130042, '\P{Gc:   nd}', "");
+    Expect(0, 130042, '\P{^Gc:   nd}', "");
     Expect(1, 130041, '\p{Gc=:\And\z:}', "");;
     Expect(0, 130042, '\p{Gc=:\And\z:}', "");;
-    Expect(1, 130041, '\p{Gc=Nd}', "");
-    Expect(0, 130041, '\p{^Gc=Nd}', "");
-    Expect(0, 130041, '\P{Gc=Nd}', "");
-    Expect(1, 130041, '\P{^Gc=Nd}', "");
-    Expect(0, 130042, '\p{Gc=Nd}', "");
-    Expect(1, 130042, '\p{^Gc=Nd}', "");
-    Expect(1, 130042, '\P{Gc=Nd}', "");
-    Expect(0, 130042, '\P{^Gc=Nd}', "");
-    Error('\p{Category=/a/DIGIT}');
-    Error('\P{Category=/a/DIGIT}');
+    Expect(1, 130041, '\p{Gc:  	Nd}', "");
+    Expect(0, 130041, '\p{^Gc:  	Nd}', "");
+    Expect(0, 130041, '\P{Gc:  	Nd}', "");
+    Expect(1, 130041, '\P{^Gc:  	Nd}', "");
+    Expect(0, 130042, '\p{Gc:  	Nd}', "");
+    Expect(1, 130042, '\p{^Gc:  	Nd}', "");
+    Expect(1, 130042, '\P{Gc:  	Nd}', "");
+    Expect(0, 130042, '\P{^Gc:  	Nd}', "");
+    Error('\p{Category: /a/-DIGIT}');
+    Error('\P{Category: /a/-DIGIT}');
     Expect(1, 130041, '\p{Category=:\ADigit\z:}', "");;
     Expect(0, 130042, '\p{Category=:\ADigit\z:}', "");;
     Expect(1, 130041, '\p{Category=digit}', "");
@@ -40997,16 +41565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^Category=digit}', "");
     Expect(1, 130041, '\p{Category=:\Adigit\z:}', "");;
     Expect(0, 130042, '\p{Category=:\Adigit\z:}', "");;
-    Expect(1, 130041, '\p{Category=_-digit}', "");
-    Expect(0, 130041, '\p{^Category=_-digit}', "");
-    Expect(0, 130041, '\P{Category=_-digit}', "");
-    Expect(1, 130041, '\P{^Category=_-digit}', "");
-    Expect(0, 130042, '\p{Category=_-digit}', "");
-    Expect(1, 130042, '\p{^Category=_-digit}', "");
-    Expect(1, 130042, '\P{Category=_-digit}', "");
-    Expect(0, 130042, '\P{^Category=_-digit}', "");
-    Error('\p{Is_General_Category=	-decimal_Number/a/}');
-    Error('\P{Is_General_Category=	-decimal_Number/a/}');
+    Expect(1, 130041, '\p{Category= Digit}', "");
+    Expect(0, 130041, '\p{^Category= Digit}', "");
+    Expect(0, 130041, '\P{Category= Digit}', "");
+    Expect(1, 130041, '\P{^Category= Digit}', "");
+    Expect(0, 130042, '\p{Category= Digit}', "");
+    Expect(1, 130042, '\p{^Category= Digit}', "");
+    Expect(1, 130042, '\P{Category= Digit}', "");
+    Expect(0, 130042, '\P{^Category= Digit}', "");
+    Error('\p{Is_General_Category=-:=Decimal_Number}');
+    Error('\P{Is_General_Category=-:=Decimal_Number}');
     Expect(1, 130041, '\p{Is_General_Category=decimalnumber}', "");
     Expect(0, 130041, '\p{^Is_General_Category=decimalnumber}', "");
     Expect(0, 130041, '\P{Is_General_Category=decimalnumber}', "");
@@ -41015,16 +41583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_General_Category=decimalnumber}', "");
     Expect(1, 130042, '\P{Is_General_Category=decimalnumber}', "");
     Expect(0, 130042, '\P{^Is_General_Category=decimalnumber}', "");
-    Expect(1, 130041, '\p{Is_General_Category=	_Decimal_number}', "");
-    Expect(0, 130041, '\p{^Is_General_Category=	_Decimal_number}', "");
-    Expect(0, 130041, '\P{Is_General_Category=	_Decimal_number}', "");
-    Expect(1, 130041, '\P{^Is_General_Category=	_Decimal_number}', "");
-    Expect(0, 130042, '\p{Is_General_Category=	_Decimal_number}', "");
-    Expect(1, 130042, '\p{^Is_General_Category=	_Decimal_number}', "");
-    Expect(1, 130042, '\P{Is_General_Category=	_Decimal_number}', "");
-    Expect(0, 130042, '\P{^Is_General_Category=	_Decimal_number}', "");
-    Error('\p{Is_Gc=:=	ND}');
-    Error('\P{Is_Gc=:=	ND}');
+    Expect(1, 130041, '\p{Is_General_Category=-	decimal_number}', "");
+    Expect(0, 130041, '\p{^Is_General_Category=-	decimal_number}', "");
+    Expect(0, 130041, '\P{Is_General_Category=-	decimal_number}', "");
+    Expect(1, 130041, '\P{^Is_General_Category=-	decimal_number}', "");
+    Expect(0, 130042, '\p{Is_General_Category=-	decimal_number}', "");
+    Expect(1, 130042, '\p{^Is_General_Category=-	decimal_number}', "");
+    Expect(1, 130042, '\P{Is_General_Category=-	decimal_number}', "");
+    Expect(0, 130042, '\P{^Is_General_Category=-	decimal_number}', "");
+    Error('\p{Is_Gc=	-Nd:=}');
+    Error('\P{Is_Gc=	-Nd:=}');
     Expect(1, 130041, '\p{Is_Gc=nd}', "");
     Expect(0, 130041, '\p{^Is_Gc=nd}', "");
     Expect(0, 130041, '\P{Is_Gc=nd}', "");
@@ -41033,34 +41601,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_Gc=nd}', "");
     Expect(1, 130042, '\P{Is_Gc=nd}', "");
     Expect(0, 130042, '\P{^Is_Gc=nd}', "");
-    Expect(1, 130041, '\p{Is_Gc=  nd}', "");
-    Expect(0, 130041, '\p{^Is_Gc=  nd}', "");
-    Expect(0, 130041, '\P{Is_Gc=  nd}', "");
-    Expect(1, 130041, '\P{^Is_Gc=  nd}', "");
-    Expect(0, 130042, '\p{Is_Gc=  nd}', "");
-    Expect(1, 130042, '\p{^Is_Gc=  nd}', "");
-    Expect(1, 130042, '\P{Is_Gc=  nd}', "");
-    Expect(0, 130042, '\P{^Is_Gc=  nd}', "");
-    Error('\p{Is_Category=	/a/digit}');
-    Error('\P{Is_Category=	/a/digit}');
-    Expect(1, 130041, '\p{Is_Category=digit}', "");
-    Expect(0, 130041, '\p{^Is_Category=digit}', "");
-    Expect(0, 130041, '\P{Is_Category=digit}', "");
-    Expect(1, 130041, '\P{^Is_Category=digit}', "");
-    Expect(0, 130042, '\p{Is_Category=digit}', "");
-    Expect(1, 130042, '\p{^Is_Category=digit}', "");
-    Expect(1, 130042, '\P{Is_Category=digit}', "");
-    Expect(0, 130042, '\P{^Is_Category=digit}', "");
-    Expect(1, 130041, '\p{Is_Category:_-digit}', "");
-    Expect(0, 130041, '\p{^Is_Category:_-digit}', "");
-    Expect(0, 130041, '\P{Is_Category:_-digit}', "");
-    Expect(1, 130041, '\P{^Is_Category:_-digit}', "");
-    Expect(0, 130042, '\p{Is_Category:_-digit}', "");
-    Expect(1, 130042, '\p{^Is_Category:_-digit}', "");
-    Expect(1, 130042, '\P{Is_Category:_-digit}', "");
-    Expect(0, 130042, '\P{^Is_Category:_-digit}', "");
-    Error('\p{General_Category=:=--LETTER_number}');
-    Error('\P{General_Category=:=--LETTER_number}');
+    Expect(1, 130041, '\p{Is_Gc=	_nd}', "");
+    Expect(0, 130041, '\p{^Is_Gc=	_nd}', "");
+    Expect(0, 130041, '\P{Is_Gc=	_nd}', "");
+    Expect(1, 130041, '\P{^Is_Gc=	_nd}', "");
+    Expect(0, 130042, '\p{Is_Gc=	_nd}', "");
+    Expect(1, 130042, '\p{^Is_Gc=	_nd}', "");
+    Expect(1, 130042, '\P{Is_Gc=	_nd}', "");
+    Expect(0, 130042, '\P{^Is_Gc=	_nd}', "");
+    Error('\p{Is_Category=- Digit/a/}');
+    Error('\P{Is_Category=- Digit/a/}');
+    Expect(1, 130041, '\p{Is_Category:digit}', "");
+    Expect(0, 130041, '\p{^Is_Category:digit}', "");
+    Expect(0, 130041, '\P{Is_Category:digit}', "");
+    Expect(1, 130041, '\P{^Is_Category:digit}', "");
+    Expect(0, 130042, '\p{Is_Category:digit}', "");
+    Expect(1, 130042, '\p{^Is_Category:digit}', "");
+    Expect(1, 130042, '\P{Is_Category:digit}', "");
+    Expect(0, 130042, '\P{^Is_Category:digit}', "");
+    Expect(1, 130041, '\p{Is_Category=-Digit}', "");
+    Expect(0, 130041, '\p{^Is_Category=-Digit}', "");
+    Expect(0, 130041, '\P{Is_Category=-Digit}', "");
+    Expect(1, 130041, '\P{^Is_Category=-Digit}', "");
+    Expect(0, 130042, '\p{Is_Category=-Digit}', "");
+    Expect(1, 130042, '\p{^Is_Category=-Digit}', "");
+    Expect(1, 130042, '\P{Is_Category=-Digit}', "");
+    Expect(0, 130042, '\P{^Is_Category=-Digit}', "");
+    Error('\p{General_Category=--Letter_Number/a/}');
+    Error('\P{General_Category=--Letter_Number/a/}');
     Expect(1, 74862, '\p{General_Category=:\ALetter_Number\z:}', "");;
     Expect(0, 74863, '\p{General_Category=:\ALetter_Number\z:}', "");;
     Expect(1, 74862, '\p{General_Category=letternumber}', "");
@@ -41073,38 +41641,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74863, '\P{^General_Category=letternumber}', "");
     Expect(1, 74862, '\p{General_Category=:\Aletternumber\z:}', "");;
     Expect(0, 74863, '\p{General_Category=:\Aletternumber\z:}', "");;
-    Expect(1, 74862, '\p{General_Category=__LETTER_number}', "");
-    Expect(0, 74862, '\p{^General_Category=__LETTER_number}', "");
-    Expect(0, 74862, '\P{General_Category=__LETTER_number}', "");
-    Expect(1, 74862, '\P{^General_Category=__LETTER_number}', "");
-    Expect(0, 74863, '\p{General_Category=__LETTER_number}', "");
-    Expect(1, 74863, '\p{^General_Category=__LETTER_number}', "");
-    Expect(1, 74863, '\P{General_Category=__LETTER_number}', "");
-    Expect(0, 74863, '\P{^General_Category=__LETTER_number}', "");
-    Error('\p{Gc:   _NL:=}');
-    Error('\P{Gc:   _NL:=}');
+    Expect(1, 74862, '\p{General_Category= LETTER_Number}', "");
+    Expect(0, 74862, '\p{^General_Category= LETTER_Number}', "");
+    Expect(0, 74862, '\P{General_Category= LETTER_Number}', "");
+    Expect(1, 74862, '\P{^General_Category= LETTER_Number}', "");
+    Expect(0, 74863, '\p{General_Category= LETTER_Number}', "");
+    Expect(1, 74863, '\p{^General_Category= LETTER_Number}', "");
+    Expect(1, 74863, '\P{General_Category= LETTER_Number}', "");
+    Expect(0, 74863, '\P{^General_Category= LETTER_Number}', "");
+    Error('\p{Gc=:= Nl}');
+    Error('\P{Gc=:= Nl}');
     Expect(1, 74862, '\p{Gc=:\ANl\z:}', "");;
     Expect(0, 74863, '\p{Gc=:\ANl\z:}', "");;
-    Expect(1, 74862, '\p{Gc:	nl}', "");
-    Expect(0, 74862, '\p{^Gc:	nl}', "");
-    Expect(0, 74862, '\P{Gc:	nl}', "");
-    Expect(1, 74862, '\P{^Gc:	nl}', "");
-    Expect(0, 74863, '\p{Gc:	nl}', "");
-    Expect(1, 74863, '\p{^Gc:	nl}', "");
-    Expect(1, 74863, '\P{Gc:	nl}', "");
-    Expect(0, 74863, '\P{^Gc:	nl}', "");
+    Expect(1, 74862, '\p{Gc=nl}', "");
+    Expect(0, 74862, '\p{^Gc=nl}', "");
+    Expect(0, 74862, '\P{Gc=nl}', "");
+    Expect(1, 74862, '\P{^Gc=nl}', "");
+    Expect(0, 74863, '\p{Gc=nl}', "");
+    Expect(1, 74863, '\p{^Gc=nl}', "");
+    Expect(1, 74863, '\P{Gc=nl}', "");
+    Expect(0, 74863, '\P{^Gc=nl}', "");
     Expect(1, 74862, '\p{Gc=:\Anl\z:}', "");;
     Expect(0, 74863, '\p{Gc=:\Anl\z:}', "");;
-    Expect(1, 74862, '\p{Gc=_Nl}', "");
-    Expect(0, 74862, '\p{^Gc=_Nl}', "");
-    Expect(0, 74862, '\P{Gc=_Nl}', "");
-    Expect(1, 74862, '\P{^Gc=_Nl}', "");
-    Expect(0, 74863, '\p{Gc=_Nl}', "");
-    Expect(1, 74863, '\p{^Gc=_Nl}', "");
-    Expect(1, 74863, '\P{Gc=_Nl}', "");
-    Expect(0, 74863, '\P{^Gc=_Nl}', "");
-    Error('\p{Category=:=	 letter_number}');
-    Error('\P{Category=:=	 letter_number}');
+    Expect(1, 74862, '\p{Gc= _nl}', "");
+    Expect(0, 74862, '\p{^Gc= _nl}', "");
+    Expect(0, 74862, '\P{Gc= _nl}', "");
+    Expect(1, 74862, '\P{^Gc= _nl}', "");
+    Expect(0, 74863, '\p{Gc= _nl}', "");
+    Expect(1, 74863, '\p{^Gc= _nl}', "");
+    Expect(1, 74863, '\P{Gc= _nl}', "");
+    Expect(0, 74863, '\P{^Gc= _nl}', "");
+    Error('\p{Category=:=Letter_Number}');
+    Error('\P{Category=:=Letter_Number}');
     Expect(1, 74862, '\p{Category=:\ALetter_Number\z:}', "");;
     Expect(0, 74863, '\p{Category=:\ALetter_Number\z:}', "");;
     Expect(1, 74862, '\p{Category=letternumber}', "");
@@ -41117,16 +41685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74863, '\P{^Category=letternumber}', "");
     Expect(1, 74862, '\p{Category=:\Aletternumber\z:}', "");;
     Expect(0, 74863, '\p{Category=:\Aletternumber\z:}', "");;
-    Expect(1, 74862, '\p{Category=LETTER_Number}', "");
-    Expect(0, 74862, '\p{^Category=LETTER_Number}', "");
-    Expect(0, 74862, '\P{Category=LETTER_Number}', "");
-    Expect(1, 74862, '\P{^Category=LETTER_Number}', "");
-    Expect(0, 74863, '\p{Category=LETTER_Number}', "");
-    Expect(1, 74863, '\p{^Category=LETTER_Number}', "");
-    Expect(1, 74863, '\P{Category=LETTER_Number}', "");
-    Expect(0, 74863, '\P{^Category=LETTER_Number}', "");
-    Error('\p{Is_General_Category=:= _NL}');
-    Error('\P{Is_General_Category=:= _NL}');
+    Expect(1, 74862, '\p{Category=_LETTER_Number}', "");
+    Expect(0, 74862, '\p{^Category=_LETTER_Number}', "");
+    Expect(0, 74862, '\P{Category=_LETTER_Number}', "");
+    Expect(1, 74862, '\P{^Category=_LETTER_Number}', "");
+    Expect(0, 74863, '\p{Category=_LETTER_Number}', "");
+    Expect(1, 74863, '\p{^Category=_LETTER_Number}', "");
+    Expect(1, 74863, '\P{Category=_LETTER_Number}', "");
+    Expect(0, 74863, '\P{^Category=_LETTER_Number}', "");
+    Error('\p{Is_General_Category=/a/NL}');
+    Error('\P{Is_General_Category=/a/NL}');
     Expect(1, 74862, '\p{Is_General_Category=nl}', "");
     Expect(0, 74862, '\p{^Is_General_Category=nl}', "");
     Expect(0, 74862, '\P{Is_General_Category=nl}', "");
@@ -41135,16 +41703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74863, '\p{^Is_General_Category=nl}', "");
     Expect(1, 74863, '\P{Is_General_Category=nl}', "");
     Expect(0, 74863, '\P{^Is_General_Category=nl}', "");
-    Expect(1, 74862, '\p{Is_General_Category=	 NL}', "");
-    Expect(0, 74862, '\p{^Is_General_Category=	 NL}', "");
-    Expect(0, 74862, '\P{Is_General_Category=	 NL}', "");
-    Expect(1, 74862, '\P{^Is_General_Category=	 NL}', "");
-    Expect(0, 74863, '\p{Is_General_Category=	 NL}', "");
-    Expect(1, 74863, '\p{^Is_General_Category=	 NL}', "");
-    Expect(1, 74863, '\P{Is_General_Category=	 NL}', "");
-    Expect(0, 74863, '\P{^Is_General_Category=	 NL}', "");
-    Error('\p{Is_Gc=:=-LETTER_number}');
-    Error('\P{Is_Gc=:=-LETTER_number}');
+    Expect(1, 74862, '\p{Is_General_Category=  Nl}', "");
+    Expect(0, 74862, '\p{^Is_General_Category=  Nl}', "");
+    Expect(0, 74862, '\P{Is_General_Category=  Nl}', "");
+    Expect(1, 74862, '\P{^Is_General_Category=  Nl}', "");
+    Expect(0, 74863, '\p{Is_General_Category=  Nl}', "");
+    Expect(1, 74863, '\p{^Is_General_Category=  Nl}', "");
+    Expect(1, 74863, '\P{Is_General_Category=  Nl}', "");
+    Expect(0, 74863, '\P{^Is_General_Category=  Nl}', "");
+    Error('\p{Is_Gc=	Letter_Number/a/}');
+    Error('\P{Is_Gc=	Letter_Number/a/}');
     Expect(1, 74862, '\p{Is_Gc=letternumber}', "");
     Expect(0, 74862, '\p{^Is_Gc=letternumber}', "");
     Expect(0, 74862, '\P{Is_Gc=letternumber}', "");
@@ -41153,78 +41721,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74863, '\p{^Is_Gc=letternumber}', "");
     Expect(1, 74863, '\P{Is_Gc=letternumber}', "");
     Expect(0, 74863, '\P{^Is_Gc=letternumber}', "");
-    Expect(1, 74862, '\p{Is_Gc= _Letter_Number}', "");
-    Expect(0, 74862, '\p{^Is_Gc= _Letter_Number}', "");
-    Expect(0, 74862, '\P{Is_Gc= _Letter_Number}', "");
-    Expect(1, 74862, '\P{^Is_Gc= _Letter_Number}', "");
-    Expect(0, 74863, '\p{Is_Gc= _Letter_Number}', "");
-    Expect(1, 74863, '\p{^Is_Gc= _Letter_Number}', "");
-    Expect(1, 74863, '\P{Is_Gc= _Letter_Number}', "");
-    Expect(0, 74863, '\P{^Is_Gc= _Letter_Number}', "");
-    Error('\p{Is_Category=/a/_NL}');
-    Error('\P{Is_Category=/a/_NL}');
-    Expect(1, 74862, '\p{Is_Category:   nl}', "");
-    Expect(0, 74862, '\p{^Is_Category:   nl}', "");
-    Expect(0, 74862, '\P{Is_Category:   nl}', "");
-    Expect(1, 74862, '\P{^Is_Category:   nl}', "");
-    Expect(0, 74863, '\p{Is_Category:   nl}', "");
-    Expect(1, 74863, '\p{^Is_Category:   nl}', "");
-    Expect(1, 74863, '\P{Is_Category:   nl}', "");
-    Expect(0, 74863, '\P{^Is_Category:   nl}', "");
-    Expect(1, 74862, '\p{Is_Category=_Nl}', "");
-    Expect(0, 74862, '\p{^Is_Category=_Nl}', "");
-    Expect(0, 74862, '\P{Is_Category=_Nl}', "");
-    Expect(1, 74862, '\P{^Is_Category=_Nl}', "");
-    Expect(0, 74863, '\p{Is_Category=_Nl}', "");
-    Expect(1, 74863, '\p{^Is_Category=_Nl}', "");
-    Expect(1, 74863, '\P{Is_Category=_Nl}', "");
-    Expect(0, 74863, '\P{^Is_Category=_Nl}', "");
-    Error('\p{General_Category=/a/ 	other_number}');
-    Error('\P{General_Category=/a/ 	other_number}');
+    Expect(1, 74862, '\p{Is_Gc:	--Letter_number}', "");
+    Expect(0, 74862, '\p{^Is_Gc:	--Letter_number}', "");
+    Expect(0, 74862, '\P{Is_Gc:	--Letter_number}', "");
+    Expect(1, 74862, '\P{^Is_Gc:	--Letter_number}', "");
+    Expect(0, 74863, '\p{Is_Gc:	--Letter_number}', "");
+    Expect(1, 74863, '\p{^Is_Gc:	--Letter_number}', "");
+    Expect(1, 74863, '\P{Is_Gc:	--Letter_number}', "");
+    Expect(0, 74863, '\P{^Is_Gc:	--Letter_number}', "");
+    Error('\p{Is_Category=/a/		nl}');
+    Error('\P{Is_Category=/a/		nl}');
+    Expect(1, 74862, '\p{Is_Category=nl}', "");
+    Expect(0, 74862, '\p{^Is_Category=nl}', "");
+    Expect(0, 74862, '\P{Is_Category=nl}', "");
+    Expect(1, 74862, '\P{^Is_Category=nl}', "");
+    Expect(0, 74863, '\p{Is_Category=nl}', "");
+    Expect(1, 74863, '\p{^Is_Category=nl}', "");
+    Expect(1, 74863, '\P{Is_Category=nl}', "");
+    Expect(0, 74863, '\P{^Is_Category=nl}', "");
+    Expect(1, 74862, '\p{Is_Category=  NL}', "");
+    Expect(0, 74862, '\p{^Is_Category=  NL}', "");
+    Expect(0, 74862, '\P{Is_Category=  NL}', "");
+    Expect(1, 74862, '\P{^Is_Category=  NL}', "");
+    Expect(0, 74863, '\p{Is_Category=  NL}', "");
+    Expect(1, 74863, '\p{^Is_Category=  NL}', "");
+    Expect(1, 74863, '\P{Is_Category=  NL}', "");
+    Expect(0, 74863, '\P{^Is_Category=  NL}', "");
+    Error('\p{General_Category= Other_Number:=}');
+    Error('\P{General_Category= Other_Number:=}');
     Expect(1, 127244, '\p{General_Category=:\AOther_Number\z:}', "");;
     Expect(0, 127245, '\p{General_Category=:\AOther_Number\z:}', "");;
-    Expect(1, 127244, '\p{General_Category=othernumber}', "");
-    Expect(0, 127244, '\p{^General_Category=othernumber}', "");
-    Expect(0, 127244, '\P{General_Category=othernumber}', "");
-    Expect(1, 127244, '\P{^General_Category=othernumber}', "");
-    Expect(0, 127245, '\p{General_Category=othernumber}', "");
-    Expect(1, 127245, '\p{^General_Category=othernumber}', "");
-    Expect(1, 127245, '\P{General_Category=othernumber}', "");
-    Expect(0, 127245, '\P{^General_Category=othernumber}', "");
+    Expect(1, 127244, '\p{General_Category:   othernumber}', "");
+    Expect(0, 127244, '\p{^General_Category:   othernumber}', "");
+    Expect(0, 127244, '\P{General_Category:   othernumber}', "");
+    Expect(1, 127244, '\P{^General_Category:   othernumber}', "");
+    Expect(0, 127245, '\p{General_Category:   othernumber}', "");
+    Expect(1, 127245, '\p{^General_Category:   othernumber}', "");
+    Expect(1, 127245, '\P{General_Category:   othernumber}', "");
+    Expect(0, 127245, '\P{^General_Category:   othernumber}', "");
     Expect(1, 127244, '\p{General_Category=:\Aothernumber\z:}', "");;
     Expect(0, 127245, '\p{General_Category=:\Aothernumber\z:}', "");;
-    Expect(1, 127244, '\p{General_Category=	-OTHER_Number}', "");
-    Expect(0, 127244, '\p{^General_Category=	-OTHER_Number}', "");
-    Expect(0, 127244, '\P{General_Category=	-OTHER_Number}', "");
-    Expect(1, 127244, '\P{^General_Category=	-OTHER_Number}', "");
-    Expect(0, 127245, '\p{General_Category=	-OTHER_Number}', "");
-    Expect(1, 127245, '\p{^General_Category=	-OTHER_Number}', "");
-    Expect(1, 127245, '\P{General_Category=	-OTHER_Number}', "");
-    Expect(0, 127245, '\P{^General_Category=	-OTHER_Number}', "");
-    Error('\p{Gc:	_No/a/}');
-    Error('\P{Gc:	_No/a/}');
+    Expect(1, 127244, '\p{General_Category=  Other_number}', "");
+    Expect(0, 127244, '\p{^General_Category=  Other_number}', "");
+    Expect(0, 127244, '\P{General_Category=  Other_number}', "");
+    Expect(1, 127244, '\P{^General_Category=  Other_number}', "");
+    Expect(0, 127245, '\p{General_Category=  Other_number}', "");
+    Expect(1, 127245, '\p{^General_Category=  Other_number}', "");
+    Expect(1, 127245, '\P{General_Category=  Other_number}', "");
+    Expect(0, 127245, '\P{^General_Category=  Other_number}', "");
+    Error('\p{Gc=:=	 No}');
+    Error('\P{Gc=:=	 No}');
     Expect(1, 127244, '\p{Gc=:\ANo\z:}', "");;
     Expect(0, 127245, '\p{Gc=:\ANo\z:}', "");;
-    Expect(1, 127244, '\p{Gc=no}', "");
-    Expect(0, 127244, '\p{^Gc=no}', "");
-    Expect(0, 127244, '\P{Gc=no}', "");
-    Expect(1, 127244, '\P{^Gc=no}', "");
-    Expect(0, 127245, '\p{Gc=no}', "");
-    Expect(1, 127245, '\p{^Gc=no}', "");
-    Expect(1, 127245, '\P{Gc=no}', "");
-    Expect(0, 127245, '\P{^Gc=no}', "");
+    Expect(1, 127244, '\p{Gc: no}', "");
+    Expect(0, 127244, '\p{^Gc: no}', "");
+    Expect(0, 127244, '\P{Gc: no}', "");
+    Expect(1, 127244, '\P{^Gc: no}', "");
+    Expect(0, 127245, '\p{Gc: no}', "");
+    Expect(1, 127245, '\p{^Gc: no}', "");
+    Expect(1, 127245, '\P{Gc: no}', "");
+    Expect(0, 127245, '\P{^Gc: no}', "");
     Expect(1, 127244, '\p{Gc=:\Ano\z:}', "");;
     Expect(0, 127245, '\p{Gc=:\Ano\z:}', "");;
-    Expect(1, 127244, '\p{Gc=-_No}', "");
-    Expect(0, 127244, '\p{^Gc=-_No}', "");
-    Expect(0, 127244, '\P{Gc=-_No}', "");
-    Expect(1, 127244, '\P{^Gc=-_No}', "");
-    Expect(0, 127245, '\p{Gc=-_No}', "");
-    Expect(1, 127245, '\p{^Gc=-_No}', "");
-    Expect(1, 127245, '\P{Gc=-_No}', "");
-    Expect(0, 127245, '\P{^Gc=-_No}', "");
-    Error('\p{Category= /a/Other_number}');
-    Error('\P{Category= /a/Other_number}');
+    Expect(1, 127244, '\p{Gc=-NO}', "");
+    Expect(0, 127244, '\p{^Gc=-NO}', "");
+    Expect(0, 127244, '\P{Gc=-NO}', "");
+    Expect(1, 127244, '\P{^Gc=-NO}', "");
+    Expect(0, 127245, '\p{Gc=-NO}', "");
+    Expect(1, 127245, '\p{^Gc=-NO}', "");
+    Expect(1, 127245, '\P{Gc=-NO}', "");
+    Expect(0, 127245, '\P{^Gc=-NO}', "");
+    Error('\p{Category=:=- other_Number}');
+    Error('\P{Category=:=- other_Number}');
     Expect(1, 127244, '\p{Category=:\AOther_Number\z:}', "");;
     Expect(0, 127245, '\p{Category=:\AOther_Number\z:}', "");;
     Expect(1, 127244, '\p{Category:othernumber}', "");
@@ -41237,16 +41805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127245, '\P{^Category:othernumber}', "");
     Expect(1, 127244, '\p{Category=:\Aothernumber\z:}', "");;
     Expect(0, 127245, '\p{Category=:\Aothernumber\z:}', "");;
-    Expect(1, 127244, '\p{Category=_-other_number}', "");
-    Expect(0, 127244, '\p{^Category=_-other_number}', "");
-    Expect(0, 127244, '\P{Category=_-other_number}', "");
-    Expect(1, 127244, '\P{^Category=_-other_number}', "");
-    Expect(0, 127245, '\p{Category=_-other_number}', "");
-    Expect(1, 127245, '\p{^Category=_-other_number}', "");
-    Expect(1, 127245, '\P{Category=_-other_number}', "");
-    Expect(0, 127245, '\P{^Category=_-other_number}', "");
-    Error('\p{Is_General_Category=/a/_-no}');
-    Error('\P{Is_General_Category=/a/_-no}');
+    Expect(1, 127244, '\p{Category:	Other_number}', "");
+    Expect(0, 127244, '\p{^Category:	Other_number}', "");
+    Expect(0, 127244, '\P{Category:	Other_number}', "");
+    Expect(1, 127244, '\P{^Category:	Other_number}', "");
+    Expect(0, 127245, '\p{Category:	Other_number}', "");
+    Expect(1, 127245, '\p{^Category:	Other_number}', "");
+    Expect(1, 127245, '\P{Category:	Other_number}', "");
+    Expect(0, 127245, '\P{^Category:	Other_number}', "");
+    Error('\p{Is_General_Category=	-No/a/}');
+    Error('\P{Is_General_Category=	-No/a/}');
     Expect(1, 127244, '\p{Is_General_Category=no}', "");
     Expect(0, 127244, '\p{^Is_General_Category=no}', "");
     Expect(0, 127244, '\P{Is_General_Category=no}', "");
@@ -41255,16 +41823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 127245, '\p{^Is_General_Category=no}', "");
     Expect(1, 127245, '\P{Is_General_Category=no}', "");
     Expect(0, 127245, '\P{^Is_General_Category=no}', "");
-    Expect(1, 127244, '\p{Is_General_Category=-no}', "");
-    Expect(0, 127244, '\p{^Is_General_Category=-no}', "");
-    Expect(0, 127244, '\P{Is_General_Category=-no}', "");
-    Expect(1, 127244, '\P{^Is_General_Category=-no}', "");
-    Expect(0, 127245, '\p{Is_General_Category=-no}', "");
-    Expect(1, 127245, '\p{^Is_General_Category=-no}', "");
-    Expect(1, 127245, '\P{Is_General_Category=-no}', "");
-    Expect(0, 127245, '\P{^Is_General_Category=-no}', "");
-    Error('\p{Is_Gc= /a/Other_Number}');
-    Error('\P{Is_Gc= /a/Other_Number}');
+    Expect(1, 127244, '\p{Is_General_Category=-	no}', "");
+    Expect(0, 127244, '\p{^Is_General_Category=-	no}', "");
+    Expect(0, 127244, '\P{Is_General_Category=-	no}', "");
+    Expect(1, 127244, '\P{^Is_General_Category=-	no}', "");
+    Expect(0, 127245, '\p{Is_General_Category=-	no}', "");
+    Expect(1, 127245, '\p{^Is_General_Category=-	no}', "");
+    Expect(1, 127245, '\P{Is_General_Category=-	no}', "");
+    Expect(0, 127245, '\P{^Is_General_Category=-	no}', "");
+    Error('\p{Is_Gc=_	OTHER_Number:=}');
+    Error('\P{Is_Gc=_	OTHER_Number:=}');
     Expect(1, 127244, '\p{Is_Gc=othernumber}', "");
     Expect(0, 127244, '\p{^Is_Gc=othernumber}', "");
     Expect(0, 127244, '\P{Is_Gc=othernumber}', "");
@@ -41273,34 +41841,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 127245, '\p{^Is_Gc=othernumber}', "");
     Expect(1, 127245, '\P{Is_Gc=othernumber}', "");
     Expect(0, 127245, '\P{^Is_Gc=othernumber}', "");
-    Expect(1, 127244, '\p{Is_Gc:	OTHER_number}', "");
-    Expect(0, 127244, '\p{^Is_Gc:	OTHER_number}', "");
-    Expect(0, 127244, '\P{Is_Gc:	OTHER_number}', "");
-    Expect(1, 127244, '\P{^Is_Gc:	OTHER_number}', "");
-    Expect(0, 127245, '\p{Is_Gc:	OTHER_number}', "");
-    Expect(1, 127245, '\p{^Is_Gc:	OTHER_number}', "");
-    Expect(1, 127245, '\P{Is_Gc:	OTHER_number}', "");
-    Expect(0, 127245, '\P{^Is_Gc:	OTHER_number}', "");
-    Error('\p{Is_Category= No/a/}');
-    Error('\P{Is_Category= No/a/}');
-    Expect(1, 127244, '\p{Is_Category=no}', "");
-    Expect(0, 127244, '\p{^Is_Category=no}', "");
-    Expect(0, 127244, '\P{Is_Category=no}', "");
-    Expect(1, 127244, '\P{^Is_Category=no}', "");
-    Expect(0, 127245, '\p{Is_Category=no}', "");
-    Expect(1, 127245, '\p{^Is_Category=no}', "");
-    Expect(1, 127245, '\P{Is_Category=no}', "");
-    Expect(0, 127245, '\P{^Is_Category=no}', "");
-    Expect(1, 127244, '\p{Is_Category: 	_No}', "");
-    Expect(0, 127244, '\p{^Is_Category: 	_No}', "");
-    Expect(0, 127244, '\P{Is_Category: 	_No}', "");
-    Expect(1, 127244, '\P{^Is_Category: 	_No}', "");
-    Expect(0, 127245, '\p{Is_Category: 	_No}', "");
-    Expect(1, 127245, '\p{^Is_Category: 	_No}', "");
-    Expect(1, 127245, '\P{Is_Category: 	_No}', "");
-    Expect(0, 127245, '\P{^Is_Category: 	_No}', "");
-    Error('\p{General_Category=-:=punctuation}');
-    Error('\P{General_Category=-:=punctuation}');
+    Expect(1, 127244, '\p{Is_Gc=  OTHER_Number}', "");
+    Expect(0, 127244, '\p{^Is_Gc=  OTHER_Number}', "");
+    Expect(0, 127244, '\P{Is_Gc=  OTHER_Number}', "");
+    Expect(1, 127244, '\P{^Is_Gc=  OTHER_Number}', "");
+    Expect(0, 127245, '\p{Is_Gc=  OTHER_Number}', "");
+    Expect(1, 127245, '\p{^Is_Gc=  OTHER_Number}', "");
+    Expect(1, 127245, '\P{Is_Gc=  OTHER_Number}', "");
+    Expect(0, 127245, '\P{^Is_Gc=  OTHER_Number}', "");
+    Error('\p{Is_Category=:=	no}');
+    Error('\P{Is_Category=:=	no}');
+    Expect(1, 127244, '\p{Is_Category:	no}', "");
+    Expect(0, 127244, '\p{^Is_Category:	no}', "");
+    Expect(0, 127244, '\P{Is_Category:	no}', "");
+    Expect(1, 127244, '\P{^Is_Category:	no}', "");
+    Expect(0, 127245, '\p{Is_Category:	no}', "");
+    Expect(1, 127245, '\p{^Is_Category:	no}', "");
+    Expect(1, 127245, '\P{Is_Category:	no}', "");
+    Expect(0, 127245, '\P{^Is_Category:	no}', "");
+    Expect(1, 127244, '\p{Is_Category=_no}', "");
+    Expect(0, 127244, '\p{^Is_Category=_no}', "");
+    Expect(0, 127244, '\P{Is_Category=_no}', "");
+    Expect(1, 127244, '\P{^Is_Category=_no}', "");
+    Expect(0, 127245, '\p{Is_Category=_no}', "");
+    Expect(1, 127245, '\p{^Is_Category=_no}', "");
+    Expect(1, 127245, '\P{Is_Category=_no}', "");
+    Expect(0, 127245, '\P{^Is_Category=_no}', "");
+    Error('\p{General_Category=-/a/Punctuation}');
+    Error('\P{General_Category=-/a/Punctuation}');
     Expect(1, 125279, '\p{General_Category=:\APunctuation\z:}', "");;
     Expect(0, 125280, '\p{General_Category=:\APunctuation\z:}', "");;
     Expect(1, 125279, '\p{General_Category=punctuation}', "");
@@ -41313,16 +41881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^General_Category=punctuation}', "");
     Expect(1, 125279, '\p{General_Category=:\Apunctuation\z:}', "");;
     Expect(0, 125280, '\p{General_Category=:\Apunctuation\z:}', "");;
-    Expect(1, 125279, '\p{General_Category=_punctuation}', "");
-    Expect(0, 125279, '\p{^General_Category=_punctuation}', "");
-    Expect(0, 125279, '\P{General_Category=_punctuation}', "");
-    Expect(1, 125279, '\P{^General_Category=_punctuation}', "");
-    Expect(0, 125280, '\p{General_Category=_punctuation}', "");
-    Expect(1, 125280, '\p{^General_Category=_punctuation}', "");
-    Expect(1, 125280, '\P{General_Category=_punctuation}', "");
-    Expect(0, 125280, '\P{^General_Category=_punctuation}', "");
-    Error('\p{Gc=:= P}');
-    Error('\P{Gc=:= P}');
+    Expect(1, 125279, '\p{General_Category=-Punctuation}', "");
+    Expect(0, 125279, '\p{^General_Category=-Punctuation}', "");
+    Expect(0, 125279, '\P{General_Category=-Punctuation}', "");
+    Expect(1, 125279, '\P{^General_Category=-Punctuation}', "");
+    Expect(0, 125280, '\p{General_Category=-Punctuation}', "");
+    Expect(1, 125280, '\p{^General_Category=-Punctuation}', "");
+    Expect(1, 125280, '\P{General_Category=-Punctuation}', "");
+    Expect(0, 125280, '\P{^General_Category=-Punctuation}', "");
+    Error('\p{Gc=:=_-P}');
+    Error('\P{Gc=:=_-P}');
     Expect(1, 125279, '\p{Gc=:\AP\z:}', "");;
     Expect(0, 125280, '\p{Gc=:\AP\z:}', "");;
     Expect(1, 125279, '\p{Gc=p}', "");
@@ -41335,16 +41903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^Gc=p}', "");
     Expect(1, 125279, '\p{Gc=:\Ap\z:}', "");;
     Expect(0, 125280, '\p{Gc=:\Ap\z:}', "");;
-    Expect(1, 125279, '\p{Gc=_	P}', "");
-    Expect(0, 125279, '\p{^Gc=_	P}', "");
-    Expect(0, 125279, '\P{Gc=_	P}', "");
-    Expect(1, 125279, '\P{^Gc=_	P}', "");
-    Expect(0, 125280, '\p{Gc=_	P}', "");
-    Expect(1, 125280, '\p{^Gc=_	P}', "");
-    Expect(1, 125280, '\P{Gc=_	P}', "");
-    Expect(0, 125280, '\P{^Gc=_	P}', "");
-    Error('\p{Category=-/a/PUNCT}');
-    Error('\P{Category=-/a/PUNCT}');
+    Expect(1, 125279, '\p{Gc=_ P}', "");
+    Expect(0, 125279, '\p{^Gc=_ P}', "");
+    Expect(0, 125279, '\P{Gc=_ P}', "");
+    Expect(1, 125279, '\P{^Gc=_ P}', "");
+    Expect(0, 125280, '\p{Gc=_ P}', "");
+    Expect(1, 125280, '\p{^Gc=_ P}', "");
+    Expect(1, 125280, '\P{Gc=_ P}', "");
+    Expect(0, 125280, '\P{^Gc=_ P}', "");
+    Error('\p{Category=	/a/PUNCT}');
+    Error('\P{Category=	/a/PUNCT}');
     Expect(1, 125279, '\p{Category=:\APunct\z:}', "");;
     Expect(0, 125280, '\p{Category=:\APunct\z:}', "");;
     Expect(1, 125279, '\p{Category=punct}', "");
@@ -41357,16 +41925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^Category=punct}', "");
     Expect(1, 125279, '\p{Category=:\Apunct\z:}', "");;
     Expect(0, 125280, '\p{Category=:\Apunct\z:}', "");;
-    Expect(1, 125279, '\p{Category= -punct}', "");
-    Expect(0, 125279, '\p{^Category= -punct}', "");
-    Expect(0, 125279, '\P{Category= -punct}', "");
-    Expect(1, 125279, '\P{^Category= -punct}', "");
-    Expect(0, 125280, '\p{Category= -punct}', "");
-    Expect(1, 125280, '\p{^Category= -punct}', "");
-    Expect(1, 125280, '\P{Category= -punct}', "");
-    Expect(0, 125280, '\P{^Category= -punct}', "");
-    Error('\p{Is_General_Category=-:=PUNCTUATION}');
-    Error('\P{Is_General_Category=-:=PUNCTUATION}');
+    Expect(1, 125279, '\p{Category= punct}', "");
+    Expect(0, 125279, '\p{^Category= punct}', "");
+    Expect(0, 125279, '\P{Category= punct}', "");
+    Expect(1, 125279, '\P{^Category= punct}', "");
+    Expect(0, 125280, '\p{Category= punct}', "");
+    Expect(1, 125280, '\p{^Category= punct}', "");
+    Expect(1, 125280, '\P{Category= punct}', "");
+    Expect(0, 125280, '\P{^Category= punct}', "");
+    Error('\p{Is_General_Category=/a/	 Punctuation}');
+    Error('\P{Is_General_Category=/a/	 Punctuation}');
     Expect(1, 125279, '\p{Is_General_Category=punctuation}', "");
     Expect(0, 125279, '\p{^Is_General_Category=punctuation}', "");
     Expect(0, 125279, '\P{Is_General_Category=punctuation}', "");
@@ -41375,16 +41943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125280, '\p{^Is_General_Category=punctuation}', "");
     Expect(1, 125280, '\P{Is_General_Category=punctuation}', "");
     Expect(0, 125280, '\P{^Is_General_Category=punctuation}', "");
-    Expect(1, 125279, '\p{Is_General_Category=_ Punctuation}', "");
-    Expect(0, 125279, '\p{^Is_General_Category=_ Punctuation}', "");
-    Expect(0, 125279, '\P{Is_General_Category=_ Punctuation}', "");
-    Expect(1, 125279, '\P{^Is_General_Category=_ Punctuation}', "");
-    Expect(0, 125280, '\p{Is_General_Category=_ Punctuation}', "");
-    Expect(1, 125280, '\p{^Is_General_Category=_ Punctuation}', "");
-    Expect(1, 125280, '\P{Is_General_Category=_ Punctuation}', "");
-    Expect(0, 125280, '\P{^Is_General_Category=_ Punctuation}', "");
-    Error('\p{Is_Gc:   p/a/}');
-    Error('\P{Is_Gc:   p/a/}');
+    Expect(1, 125279, '\p{Is_General_Category=Punctuation}', "");
+    Expect(0, 125279, '\p{^Is_General_Category=Punctuation}', "");
+    Expect(0, 125279, '\P{Is_General_Category=Punctuation}', "");
+    Expect(1, 125279, '\P{^Is_General_Category=Punctuation}', "");
+    Expect(0, 125280, '\p{Is_General_Category=Punctuation}', "");
+    Expect(1, 125280, '\p{^Is_General_Category=Punctuation}', "");
+    Expect(1, 125280, '\P{Is_General_Category=Punctuation}', "");
+    Expect(0, 125280, '\P{^Is_General_Category=Punctuation}', "");
+    Error('\p{Is_Gc=:=	 P}');
+    Error('\P{Is_Gc=:=	 P}');
     Expect(1, 125279, '\p{Is_Gc=p}', "");
     Expect(0, 125279, '\p{^Is_Gc=p}', "");
     Expect(0, 125279, '\P{Is_Gc=p}', "");
@@ -41393,34 +41961,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125280, '\p{^Is_Gc=p}', "");
     Expect(1, 125280, '\P{Is_Gc=p}', "");
     Expect(0, 125280, '\P{^Is_Gc=p}', "");
-    Expect(1, 125279, '\p{Is_Gc:    	P}', "");
-    Expect(0, 125279, '\p{^Is_Gc:    	P}', "");
-    Expect(0, 125279, '\P{Is_Gc:    	P}', "");
-    Expect(1, 125279, '\P{^Is_Gc:    	P}', "");
-    Expect(0, 125280, '\p{Is_Gc:    	P}', "");
-    Expect(1, 125280, '\p{^Is_Gc:    	P}', "");
-    Expect(1, 125280, '\P{Is_Gc:    	P}', "");
-    Expect(0, 125280, '\P{^Is_Gc:    	P}', "");
-    Error('\p{Is_Category=:=	-Punct}');
-    Error('\P{Is_Category=:=	-Punct}');
-    Expect(1, 125279, '\p{Is_Category=punct}', "");
-    Expect(0, 125279, '\p{^Is_Category=punct}', "");
-    Expect(0, 125279, '\P{Is_Category=punct}', "");
-    Expect(1, 125279, '\P{^Is_Category=punct}', "");
-    Expect(0, 125280, '\p{Is_Category=punct}', "");
-    Expect(1, 125280, '\p{^Is_Category=punct}', "");
-    Expect(1, 125280, '\P{Is_Category=punct}', "");
-    Expect(0, 125280, '\P{^Is_Category=punct}', "");
-    Expect(1, 125279, '\p{Is_Category=_	Punct}', "");
-    Expect(0, 125279, '\p{^Is_Category=_	Punct}', "");
-    Expect(0, 125279, '\P{Is_Category=_	Punct}', "");
-    Expect(1, 125279, '\P{^Is_Category=_	Punct}', "");
-    Expect(0, 125280, '\p{Is_Category=_	Punct}', "");
-    Expect(1, 125280, '\p{^Is_Category=_	Punct}', "");
-    Expect(1, 125280, '\P{Is_Category=_	Punct}', "");
-    Expect(0, 125280, '\P{^Is_Category=_	Punct}', "");
-    Error('\p{General_Category=/a/Connector_PUNCTUATION}');
-    Error('\P{General_Category=/a/Connector_PUNCTUATION}');
+    Expect(1, 125279, '\p{Is_Gc=_P}', "");
+    Expect(0, 125279, '\p{^Is_Gc=_P}', "");
+    Expect(0, 125279, '\P{Is_Gc=_P}', "");
+    Expect(1, 125279, '\P{^Is_Gc=_P}', "");
+    Expect(0, 125280, '\p{Is_Gc=_P}', "");
+    Expect(1, 125280, '\p{^Is_Gc=_P}', "");
+    Expect(1, 125280, '\P{Is_Gc=_P}', "");
+    Expect(0, 125280, '\P{^Is_Gc=_P}', "");
+    Error('\p{Is_Category= /a/PUNCT}');
+    Error('\P{Is_Category= /a/PUNCT}');
+    Expect(1, 125279, '\p{Is_Category: punct}', "");
+    Expect(0, 125279, '\p{^Is_Category: punct}', "");
+    Expect(0, 125279, '\P{Is_Category: punct}', "");
+    Expect(1, 125279, '\P{^Is_Category: punct}', "");
+    Expect(0, 125280, '\p{Is_Category: punct}', "");
+    Expect(1, 125280, '\p{^Is_Category: punct}', "");
+    Expect(1, 125280, '\P{Is_Category: punct}', "");
+    Expect(0, 125280, '\P{^Is_Category: punct}', "");
+    Expect(1, 125279, '\p{Is_Category=-Punct}', "");
+    Expect(0, 125279, '\p{^Is_Category=-Punct}', "");
+    Expect(0, 125279, '\P{Is_Category=-Punct}', "");
+    Expect(1, 125279, '\P{^Is_Category=-Punct}', "");
+    Expect(0, 125280, '\p{Is_Category=-Punct}', "");
+    Expect(1, 125280, '\p{^Is_Category=-Punct}', "");
+    Expect(1, 125280, '\P{Is_Category=-Punct}', "");
+    Expect(0, 125280, '\P{^Is_Category=-Punct}', "");
+    Error('\p{General_Category=	-Connector_Punctuation:=}');
+    Error('\P{General_Category=	-Connector_Punctuation:=}');
     Expect(1, 65343, '\p{General_Category=:\AConnector_Punctuation\z:}', "");;
     Expect(0, 65344, '\p{General_Category=:\AConnector_Punctuation\z:}', "");;
     Expect(1, 65343, '\p{General_Category=connectorpunctuation}', "");
@@ -41433,16 +42001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65344, '\P{^General_Category=connectorpunctuation}', "");
     Expect(1, 65343, '\p{General_Category=:\Aconnectorpunctuation\z:}', "");;
     Expect(0, 65344, '\p{General_Category=:\Aconnectorpunctuation\z:}', "");;
-    Expect(1, 65343, '\p{General_Category=__Connector_Punctuation}', "");
-    Expect(0, 65343, '\p{^General_Category=__Connector_Punctuation}', "");
-    Expect(0, 65343, '\P{General_Category=__Connector_Punctuation}', "");
-    Expect(1, 65343, '\P{^General_Category=__Connector_Punctuation}', "");
-    Expect(0, 65344, '\p{General_Category=__Connector_Punctuation}', "");
-    Expect(1, 65344, '\p{^General_Category=__Connector_Punctuation}', "");
-    Expect(1, 65344, '\P{General_Category=__Connector_Punctuation}', "");
-    Expect(0, 65344, '\P{^General_Category=__Connector_Punctuation}', "");
-    Error('\p{Gc=  Pc:=}');
-    Error('\P{Gc=  Pc:=}');
+    Expect(1, 65343, '\p{General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(0, 65343, '\p{^General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(0, 65343, '\P{General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(1, 65343, '\P{^General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(0, 65344, '\p{General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(1, 65344, '\p{^General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(1, 65344, '\P{General_Category=	-CONNECTOR_Punctuation}', "");
+    Expect(0, 65344, '\P{^General_Category=	-CONNECTOR_Punctuation}', "");
+    Error('\p{Gc= :=Pc}');
+    Error('\P{Gc= :=Pc}');
     Expect(1, 65343, '\p{Gc=:\APc\z:}', "");;
     Expect(0, 65344, '\p{Gc=:\APc\z:}', "");;
     Expect(1, 65343, '\p{Gc=pc}', "");
@@ -41455,38 +42023,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65344, '\P{^Gc=pc}', "");
     Expect(1, 65343, '\p{Gc=:\Apc\z:}', "");;
     Expect(0, 65344, '\p{Gc=:\Apc\z:}', "");;
-    Expect(1, 65343, '\p{Gc=		pc}', "");
-    Expect(0, 65343, '\p{^Gc=		pc}', "");
-    Expect(0, 65343, '\P{Gc=		pc}', "");
-    Expect(1, 65343, '\P{^Gc=		pc}', "");
-    Expect(0, 65344, '\p{Gc=		pc}', "");
-    Expect(1, 65344, '\p{^Gc=		pc}', "");
-    Expect(1, 65344, '\P{Gc=		pc}', "");
-    Expect(0, 65344, '\P{^Gc=		pc}', "");
-    Error('\p{Category:  -Connector_Punctuation:=}');
-    Error('\P{Category:  -Connector_Punctuation:=}');
+    Expect(1, 65343, '\p{Gc=		Pc}', "");
+    Expect(0, 65343, '\p{^Gc=		Pc}', "");
+    Expect(0, 65343, '\P{Gc=		Pc}', "");
+    Expect(1, 65343, '\P{^Gc=		Pc}', "");
+    Expect(0, 65344, '\p{Gc=		Pc}', "");
+    Expect(1, 65344, '\p{^Gc=		Pc}', "");
+    Expect(1, 65344, '\P{Gc=		Pc}', "");
+    Expect(0, 65344, '\P{^Gc=		Pc}', "");
+    Error('\p{Category=-	CONNECTOR_Punctuation/a/}');
+    Error('\P{Category=-	CONNECTOR_Punctuation/a/}');
     Expect(1, 65343, '\p{Category=:\AConnector_Punctuation\z:}', "");;
     Expect(0, 65344, '\p{Category=:\AConnector_Punctuation\z:}', "");;
-    Expect(1, 65343, '\p{Category=connectorpunctuation}', "");
-    Expect(0, 65343, '\p{^Category=connectorpunctuation}', "");
-    Expect(0, 65343, '\P{Category=connectorpunctuation}', "");
-    Expect(1, 65343, '\P{^Category=connectorpunctuation}', "");
-    Expect(0, 65344, '\p{Category=connectorpunctuation}', "");
-    Expect(1, 65344, '\p{^Category=connectorpunctuation}', "");
-    Expect(1, 65344, '\P{Category=connectorpunctuation}', "");
-    Expect(0, 65344, '\P{^Category=connectorpunctuation}', "");
+    Expect(1, 65343, '\p{Category:connectorpunctuation}', "");
+    Expect(0, 65343, '\p{^Category:connectorpunctuation}', "");
+    Expect(0, 65343, '\P{Category:connectorpunctuation}', "");
+    Expect(1, 65343, '\P{^Category:connectorpunctuation}', "");
+    Expect(0, 65344, '\p{Category:connectorpunctuation}', "");
+    Expect(1, 65344, '\p{^Category:connectorpunctuation}', "");
+    Expect(1, 65344, '\P{Category:connectorpunctuation}', "");
+    Expect(0, 65344, '\P{^Category:connectorpunctuation}', "");
     Expect(1, 65343, '\p{Category=:\Aconnectorpunctuation\z:}', "");;
     Expect(0, 65344, '\p{Category=:\Aconnectorpunctuation\z:}', "");;
-    Expect(1, 65343, '\p{Category=-_Connector_Punctuation}', "");
-    Expect(0, 65343, '\p{^Category=-_Connector_Punctuation}', "");
-    Expect(0, 65343, '\P{Category=-_Connector_Punctuation}', "");
-    Expect(1, 65343, '\P{^Category=-_Connector_Punctuation}', "");
-    Expect(0, 65344, '\p{Category=-_Connector_Punctuation}', "");
-    Expect(1, 65344, '\p{^Category=-_Connector_Punctuation}', "");
-    Expect(1, 65344, '\P{Category=-_Connector_Punctuation}', "");
-    Expect(0, 65344, '\P{^Category=-_Connector_Punctuation}', "");
-    Error('\p{Is_General_Category=:=Pc}');
-    Error('\P{Is_General_Category=:=Pc}');
+    Expect(1, 65343, '\p{Category=	-Connector_Punctuation}', "");
+    Expect(0, 65343, '\p{^Category=	-Connector_Punctuation}', "");
+    Expect(0, 65343, '\P{Category=	-Connector_Punctuation}', "");
+    Expect(1, 65343, '\P{^Category=	-Connector_Punctuation}', "");
+    Expect(0, 65344, '\p{Category=	-Connector_Punctuation}', "");
+    Expect(1, 65344, '\p{^Category=	-Connector_Punctuation}', "");
+    Expect(1, 65344, '\P{Category=	-Connector_Punctuation}', "");
+    Expect(0, 65344, '\P{^Category=	-Connector_Punctuation}', "");
+    Error('\p{Is_General_Category= :=Pc}');
+    Error('\P{Is_General_Category= :=Pc}');
     Expect(1, 65343, '\p{Is_General_Category=pc}', "");
     Expect(0, 65343, '\p{^Is_General_Category=pc}', "");
     Expect(0, 65343, '\P{Is_General_Category=pc}', "");
@@ -41495,16 +42063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65344, '\p{^Is_General_Category=pc}', "");
     Expect(1, 65344, '\P{Is_General_Category=pc}', "");
     Expect(0, 65344, '\P{^Is_General_Category=pc}', "");
-    Expect(1, 65343, '\p{Is_General_Category=  pc}', "");
-    Expect(0, 65343, '\p{^Is_General_Category=  pc}', "");
-    Expect(0, 65343, '\P{Is_General_Category=  pc}', "");
-    Expect(1, 65343, '\P{^Is_General_Category=  pc}', "");
-    Expect(0, 65344, '\p{Is_General_Category=  pc}', "");
-    Expect(1, 65344, '\p{^Is_General_Category=  pc}', "");
-    Expect(1, 65344, '\P{Is_General_Category=  pc}', "");
-    Expect(0, 65344, '\P{^Is_General_Category=  pc}', "");
-    Error('\p{Is_Gc=:=_Connector_PUNCTUATION}');
-    Error('\P{Is_Gc=:=_Connector_PUNCTUATION}');
+    Expect(1, 65343, '\p{Is_General_Category=_	Pc}', "");
+    Expect(0, 65343, '\p{^Is_General_Category=_	Pc}', "");
+    Expect(0, 65343, '\P{Is_General_Category=_	Pc}', "");
+    Expect(1, 65343, '\P{^Is_General_Category=_	Pc}', "");
+    Expect(0, 65344, '\p{Is_General_Category=_	Pc}', "");
+    Expect(1, 65344, '\p{^Is_General_Category=_	Pc}', "");
+    Expect(1, 65344, '\P{Is_General_Category=_	Pc}', "");
+    Expect(0, 65344, '\P{^Is_General_Category=_	Pc}', "");
+    Error('\p{Is_Gc=__Connector_punctuation:=}');
+    Error('\P{Is_Gc=__Connector_punctuation:=}');
     Expect(1, 65343, '\p{Is_Gc=connectorpunctuation}', "");
     Expect(0, 65343, '\p{^Is_Gc=connectorpunctuation}', "");
     Expect(0, 65343, '\P{Is_Gc=connectorpunctuation}', "");
@@ -41513,16 +42081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65344, '\p{^Is_Gc=connectorpunctuation}', "");
     Expect(1, 65344, '\P{Is_Gc=connectorpunctuation}', "");
     Expect(0, 65344, '\P{^Is_Gc=connectorpunctuation}', "");
-    Expect(1, 65343, '\p{Is_Gc=_ Connector_Punctuation}', "");
-    Expect(0, 65343, '\p{^Is_Gc=_ Connector_Punctuation}', "");
-    Expect(0, 65343, '\P{Is_Gc=_ Connector_Punctuation}', "");
-    Expect(1, 65343, '\P{^Is_Gc=_ Connector_Punctuation}', "");
-    Expect(0, 65344, '\p{Is_Gc=_ Connector_Punctuation}', "");
-    Expect(1, 65344, '\p{^Is_Gc=_ Connector_Punctuation}', "");
-    Expect(1, 65344, '\P{Is_Gc=_ Connector_Punctuation}', "");
-    Expect(0, 65344, '\P{^Is_Gc=_ Connector_Punctuation}', "");
-    Error('\p{Is_Category=:=_	Pc}');
-    Error('\P{Is_Category=:=_	Pc}');
+    Expect(1, 65343, '\p{Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65343, '\p{^Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65343, '\P{Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(1, 65343, '\P{^Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65344, '\p{Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(1, 65344, '\p{^Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(1, 65344, '\P{Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65344, '\P{^Is_Gc=  CONNECTOR_PUNCTUATION}', "");
+    Error('\p{Is_Category=	-pc/a/}');
+    Error('\P{Is_Category=	-pc/a/}');
     Expect(1, 65343, '\p{Is_Category=pc}', "");
     Expect(0, 65343, '\p{^Is_Category=pc}', "");
     Expect(0, 65343, '\P{Is_Category=pc}', "");
@@ -41531,16 +42099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65344, '\p{^Is_Category=pc}', "");
     Expect(1, 65344, '\P{Is_Category=pc}', "");
     Expect(0, 65344, '\P{^Is_Category=pc}', "");
-    Expect(1, 65343, '\p{Is_Category=_pc}', "");
-    Expect(0, 65343, '\p{^Is_Category=_pc}', "");
-    Expect(0, 65343, '\P{Is_Category=_pc}', "");
-    Expect(1, 65343, '\P{^Is_Category=_pc}', "");
-    Expect(0, 65344, '\p{Is_Category=_pc}', "");
-    Expect(1, 65344, '\p{^Is_Category=_pc}', "");
-    Expect(1, 65344, '\P{Is_Category=_pc}', "");
-    Expect(0, 65344, '\P{^Is_Category=_pc}', "");
-    Error('\p{General_Category=_	dash_PUNCTUATION/a/}');
-    Error('\P{General_Category=_	dash_PUNCTUATION/a/}');
+    Expect(1, 65343, '\p{Is_Category=		PC}', "");
+    Expect(0, 65343, '\p{^Is_Category=		PC}', "");
+    Expect(0, 65343, '\P{Is_Category=		PC}', "");
+    Expect(1, 65343, '\P{^Is_Category=		PC}', "");
+    Expect(0, 65344, '\p{Is_Category=		PC}', "");
+    Expect(1, 65344, '\p{^Is_Category=		PC}', "");
+    Expect(1, 65344, '\P{Is_Category=		PC}', "");
+    Expect(0, 65344, '\P{^Is_Category=		PC}', "");
+    Error('\p{General_Category=:=dash_Punctuation}');
+    Error('\P{General_Category=:=dash_Punctuation}');
     Expect(1, 69293, '\p{General_Category=:\ADash_Punctuation\z:}', "");;
     Expect(0, 69294, '\p{General_Category=:\ADash_Punctuation\z:}', "");;
     Expect(1, 69293, '\p{General_Category=dashpunctuation}', "");
@@ -41553,16 +42121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69294, '\P{^General_Category=dashpunctuation}', "");
     Expect(1, 69293, '\p{General_Category=:\Adashpunctuation\z:}', "");;
     Expect(0, 69294, '\p{General_Category=:\Adashpunctuation\z:}', "");;
-    Expect(1, 69293, '\p{General_Category=_-dash_PUNCTUATION}', "");
-    Expect(0, 69293, '\p{^General_Category=_-dash_PUNCTUATION}', "");
-    Expect(0, 69293, '\P{General_Category=_-dash_PUNCTUATION}', "");
-    Expect(1, 69293, '\P{^General_Category=_-dash_PUNCTUATION}', "");
-    Expect(0, 69294, '\p{General_Category=_-dash_PUNCTUATION}', "");
-    Expect(1, 69294, '\p{^General_Category=_-dash_PUNCTUATION}', "");
-    Expect(1, 69294, '\P{General_Category=_-dash_PUNCTUATION}', "");
-    Expect(0, 69294, '\P{^General_Category=_-dash_PUNCTUATION}', "");
-    Error('\p{Gc=		PD:=}');
-    Error('\P{Gc=		PD:=}');
+    Expect(1, 69293, '\p{General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(0, 69293, '\p{^General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(0, 69293, '\P{General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(1, 69293, '\P{^General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(0, 69294, '\p{General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(1, 69294, '\p{^General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(1, 69294, '\P{General_Category=	 Dash_PUNCTUATION}', "");
+    Expect(0, 69294, '\P{^General_Category=	 Dash_PUNCTUATION}', "");
+    Error('\p{Gc:   -:=Pd}');
+    Error('\P{Gc:   -:=Pd}');
     Expect(1, 69293, '\p{Gc=:\APd\z:}', "");;
     Expect(0, 69294, '\p{Gc=:\APd\z:}', "");;
     Expect(1, 69293, '\p{Gc=pd}', "");
@@ -41575,16 +42143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69294, '\P{^Gc=pd}', "");
     Expect(1, 69293, '\p{Gc=:\Apd\z:}', "");;
     Expect(0, 69294, '\p{Gc=:\Apd\z:}', "");;
-    Expect(1, 69293, '\p{Gc=- PD}', "");
-    Expect(0, 69293, '\p{^Gc=- PD}', "");
-    Expect(0, 69293, '\P{Gc=- PD}', "");
-    Expect(1, 69293, '\P{^Gc=- PD}', "");
-    Expect(0, 69294, '\p{Gc=- PD}', "");
-    Expect(1, 69294, '\p{^Gc=- PD}', "");
-    Expect(1, 69294, '\P{Gc=- PD}', "");
-    Expect(0, 69294, '\P{^Gc=- PD}', "");
-    Error('\p{Category=:=	-Dash_PUNCTUATION}');
-    Error('\P{Category=:=	-Dash_PUNCTUATION}');
+    Expect(1, 69293, '\p{Gc= _pd}', "");
+    Expect(0, 69293, '\p{^Gc= _pd}', "");
+    Expect(0, 69293, '\P{Gc= _pd}', "");
+    Expect(1, 69293, '\P{^Gc= _pd}', "");
+    Expect(0, 69294, '\p{Gc= _pd}', "");
+    Expect(1, 69294, '\p{^Gc= _pd}', "");
+    Expect(1, 69294, '\P{Gc= _pd}', "");
+    Expect(0, 69294, '\P{^Gc= _pd}', "");
+    Error('\p{Category=-/a/dash_Punctuation}');
+    Error('\P{Category=-/a/dash_Punctuation}');
     Expect(1, 69293, '\p{Category=:\ADash_Punctuation\z:}', "");;
     Expect(0, 69294, '\p{Category=:\ADash_Punctuation\z:}', "");;
     Expect(1, 69293, '\p{Category=dashpunctuation}', "");
@@ -41597,16 +42165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69294, '\P{^Category=dashpunctuation}', "");
     Expect(1, 69293, '\p{Category=:\Adashpunctuation\z:}', "");;
     Expect(0, 69294, '\p{Category=:\Adashpunctuation\z:}', "");;
-    Expect(1, 69293, '\p{Category=	 Dash_Punctuation}', "");
-    Expect(0, 69293, '\p{^Category=	 Dash_Punctuation}', "");
-    Expect(0, 69293, '\P{Category=	 Dash_Punctuation}', "");
-    Expect(1, 69293, '\P{^Category=	 Dash_Punctuation}', "");
-    Expect(0, 69294, '\p{Category=	 Dash_Punctuation}', "");
-    Expect(1, 69294, '\p{^Category=	 Dash_Punctuation}', "");
-    Expect(1, 69294, '\P{Category=	 Dash_Punctuation}', "");
-    Expect(0, 69294, '\P{^Category=	 Dash_Punctuation}', "");
-    Error('\p{Is_General_Category=:=	-pd}');
-    Error('\P{Is_General_Category=:=	-pd}');
+    Expect(1, 69293, '\p{Category=_dash_Punctuation}', "");
+    Expect(0, 69293, '\p{^Category=_dash_Punctuation}', "");
+    Expect(0, 69293, '\P{Category=_dash_Punctuation}', "");
+    Expect(1, 69293, '\P{^Category=_dash_Punctuation}', "");
+    Expect(0, 69294, '\p{Category=_dash_Punctuation}', "");
+    Expect(1, 69294, '\p{^Category=_dash_Punctuation}', "");
+    Expect(1, 69294, '\P{Category=_dash_Punctuation}', "");
+    Expect(0, 69294, '\P{^Category=_dash_Punctuation}', "");
+    Error('\p{Is_General_Category=/a/_ pd}');
+    Error('\P{Is_General_Category=/a/_ pd}');
     Expect(1, 69293, '\p{Is_General_Category=pd}', "");
     Expect(0, 69293, '\p{^Is_General_Category=pd}', "");
     Expect(0, 69293, '\P{Is_General_Category=pd}', "");
@@ -41615,16 +42183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69294, '\p{^Is_General_Category=pd}', "");
     Expect(1, 69294, '\P{Is_General_Category=pd}', "");
     Expect(0, 69294, '\P{^Is_General_Category=pd}', "");
-    Expect(1, 69293, '\p{Is_General_Category=_Pd}', "");
-    Expect(0, 69293, '\p{^Is_General_Category=_Pd}', "");
-    Expect(0, 69293, '\P{Is_General_Category=_Pd}', "");
-    Expect(1, 69293, '\P{^Is_General_Category=_Pd}', "");
-    Expect(0, 69294, '\p{Is_General_Category=_Pd}', "");
-    Expect(1, 69294, '\p{^Is_General_Category=_Pd}', "");
-    Expect(1, 69294, '\P{Is_General_Category=_Pd}', "");
-    Expect(0, 69294, '\P{^Is_General_Category=_Pd}', "");
-    Error('\p{Is_Gc=/a/DASH_punctuation}');
-    Error('\P{Is_Gc=/a/DASH_punctuation}');
+    Expect(1, 69293, '\p{Is_General_Category:- Pd}', "");
+    Expect(0, 69293, '\p{^Is_General_Category:- Pd}', "");
+    Expect(0, 69293, '\P{Is_General_Category:- Pd}', "");
+    Expect(1, 69293, '\P{^Is_General_Category:- Pd}', "");
+    Expect(0, 69294, '\p{Is_General_Category:- Pd}', "");
+    Expect(1, 69294, '\p{^Is_General_Category:- Pd}', "");
+    Expect(1, 69294, '\P{Is_General_Category:- Pd}', "");
+    Expect(0, 69294, '\P{^Is_General_Category:- Pd}', "");
+    Error('\p{Is_Gc=/a/		Dash_Punctuation}');
+    Error('\P{Is_Gc=/a/		Dash_Punctuation}');
     Expect(1, 69293, '\p{Is_Gc=dashpunctuation}', "");
     Expect(0, 69293, '\p{^Is_Gc=dashpunctuation}', "");
     Expect(0, 69293, '\P{Is_Gc=dashpunctuation}', "");
@@ -41633,16 +42201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69294, '\p{^Is_Gc=dashpunctuation}', "");
     Expect(1, 69294, '\P{Is_Gc=dashpunctuation}', "");
     Expect(0, 69294, '\P{^Is_Gc=dashpunctuation}', "");
-    Expect(1, 69293, '\p{Is_Gc=-	DASH_Punctuation}', "");
-    Expect(0, 69293, '\p{^Is_Gc=-	DASH_Punctuation}', "");
-    Expect(0, 69293, '\P{Is_Gc=-	DASH_Punctuation}', "");
-    Expect(1, 69293, '\P{^Is_Gc=-	DASH_Punctuation}', "");
-    Expect(0, 69294, '\p{Is_Gc=-	DASH_Punctuation}', "");
-    Expect(1, 69294, '\p{^Is_Gc=-	DASH_Punctuation}', "");
-    Expect(1, 69294, '\P{Is_Gc=-	DASH_Punctuation}', "");
-    Expect(0, 69294, '\P{^Is_Gc=-	DASH_Punctuation}', "");
-    Error('\p{Is_Category:_	pd/a/}');
-    Error('\P{Is_Category:_	pd/a/}');
+    Expect(1, 69293, '\p{Is_Gc=_DASH_punctuation}', "");
+    Expect(0, 69293, '\p{^Is_Gc=_DASH_punctuation}', "");
+    Expect(0, 69293, '\P{Is_Gc=_DASH_punctuation}', "");
+    Expect(1, 69293, '\P{^Is_Gc=_DASH_punctuation}', "");
+    Expect(0, 69294, '\p{Is_Gc=_DASH_punctuation}', "");
+    Expect(1, 69294, '\p{^Is_Gc=_DASH_punctuation}', "");
+    Expect(1, 69294, '\P{Is_Gc=_DASH_punctuation}', "");
+    Expect(0, 69294, '\P{^Is_Gc=_DASH_punctuation}', "");
+    Error('\p{Is_Category::=--PD}');
+    Error('\P{Is_Category::=--PD}');
     Expect(1, 69293, '\p{Is_Category=pd}', "");
     Expect(0, 69293, '\p{^Is_Category=pd}', "");
     Expect(0, 69293, '\P{Is_Category=pd}', "");
@@ -41651,16 +42219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69294, '\p{^Is_Category=pd}', "");
     Expect(1, 69294, '\P{Is_Category=pd}', "");
     Expect(0, 69294, '\P{^Is_Category=pd}', "");
-    Expect(1, 69293, '\p{Is_Category=_ Pd}', "");
-    Expect(0, 69293, '\p{^Is_Category=_ Pd}', "");
-    Expect(0, 69293, '\P{Is_Category=_ Pd}', "");
-    Expect(1, 69293, '\P{^Is_Category=_ Pd}', "");
-    Expect(0, 69294, '\p{Is_Category=_ Pd}', "");
-    Expect(1, 69294, '\p{^Is_Category=_ Pd}', "");
-    Expect(1, 69294, '\P{Is_Category=_ Pd}', "");
-    Expect(0, 69294, '\P{^Is_Category=_ Pd}', "");
-    Error('\p{General_Category=_ CLOSE_Punctuation/a/}');
-    Error('\P{General_Category=_ CLOSE_Punctuation/a/}');
+    Expect(1, 69293, '\p{Is_Category=-pd}', "");
+    Expect(0, 69293, '\p{^Is_Category=-pd}', "");
+    Expect(0, 69293, '\P{Is_Category=-pd}', "");
+    Expect(1, 69293, '\P{^Is_Category=-pd}', "");
+    Expect(0, 69294, '\p{Is_Category=-pd}', "");
+    Expect(1, 69294, '\p{^Is_Category=-pd}', "");
+    Expect(1, 69294, '\P{Is_Category=-pd}', "");
+    Expect(0, 69294, '\P{^Is_Category=-pd}', "");
+    Error('\p{General_Category: --close_Punctuation/a/}');
+    Error('\P{General_Category: --close_Punctuation/a/}');
     Expect(1, 65379, '\p{General_Category=:\AClose_Punctuation\z:}', "");;
     Expect(0, 65380, '\p{General_Category=:\AClose_Punctuation\z:}', "");;
     Expect(1, 65379, '\p{General_Category=closepunctuation}', "");
@@ -41673,16 +42241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65380, '\P{^General_Category=closepunctuation}', "");
     Expect(1, 65379, '\p{General_Category=:\Aclosepunctuation\z:}', "");;
     Expect(0, 65380, '\p{General_Category=:\Aclosepunctuation\z:}', "");;
-    Expect(1, 65379, '\p{General_Category=_close_PUNCTUATION}', "");
-    Expect(0, 65379, '\p{^General_Category=_close_PUNCTUATION}', "");
-    Expect(0, 65379, '\P{General_Category=_close_PUNCTUATION}', "");
-    Expect(1, 65379, '\P{^General_Category=_close_PUNCTUATION}', "");
-    Expect(0, 65380, '\p{General_Category=_close_PUNCTUATION}', "");
-    Expect(1, 65380, '\p{^General_Category=_close_PUNCTUATION}', "");
-    Expect(1, 65380, '\P{General_Category=_close_PUNCTUATION}', "");
-    Expect(0, 65380, '\P{^General_Category=_close_PUNCTUATION}', "");
-    Error('\p{Gc= _Pe/a/}');
-    Error('\P{Gc= _Pe/a/}');
+    Expect(1, 65379, '\p{General_Category=	 Close_punctuation}', "");
+    Expect(0, 65379, '\p{^General_Category=	 Close_punctuation}', "");
+    Expect(0, 65379, '\P{General_Category=	 Close_punctuation}', "");
+    Expect(1, 65379, '\P{^General_Category=	 Close_punctuation}', "");
+    Expect(0, 65380, '\p{General_Category=	 Close_punctuation}', "");
+    Expect(1, 65380, '\p{^General_Category=	 Close_punctuation}', "");
+    Expect(1, 65380, '\P{General_Category=	 Close_punctuation}', "");
+    Expect(0, 65380, '\P{^General_Category=	 Close_punctuation}', "");
+    Error('\p{Gc=:=Pe}');
+    Error('\P{Gc=:=Pe}');
     Expect(1, 65379, '\p{Gc=:\APe\z:}', "");;
     Expect(0, 65380, '\p{Gc=:\APe\z:}', "");;
     Expect(1, 65379, '\p{Gc=pe}', "");
@@ -41695,16 +42263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65380, '\P{^Gc=pe}', "");
     Expect(1, 65379, '\p{Gc=:\Ape\z:}', "");;
     Expect(0, 65380, '\p{Gc=:\Ape\z:}', "");;
-    Expect(1, 65379, '\p{Gc= Pe}', "");
-    Expect(0, 65379, '\p{^Gc= Pe}', "");
-    Expect(0, 65379, '\P{Gc= Pe}', "");
-    Expect(1, 65379, '\P{^Gc= Pe}', "");
-    Expect(0, 65380, '\p{Gc= Pe}', "");
-    Expect(1, 65380, '\p{^Gc= Pe}', "");
-    Expect(1, 65380, '\P{Gc= Pe}', "");
-    Expect(0, 65380, '\P{^Gc= Pe}', "");
-    Error('\p{Category=-_close_punctuation/a/}');
-    Error('\P{Category=-_close_punctuation/a/}');
+    Expect(1, 65379, '\p{Gc=	 Pe}', "");
+    Expect(0, 65379, '\p{^Gc=	 Pe}', "");
+    Expect(0, 65379, '\P{Gc=	 Pe}', "");
+    Expect(1, 65379, '\P{^Gc=	 Pe}', "");
+    Expect(0, 65380, '\p{Gc=	 Pe}', "");
+    Expect(1, 65380, '\p{^Gc=	 Pe}', "");
+    Expect(1, 65380, '\P{Gc=	 Pe}', "");
+    Expect(0, 65380, '\P{^Gc=	 Pe}', "");
+    Error('\p{Category=_:=Close_Punctuation}');
+    Error('\P{Category=_:=Close_Punctuation}');
     Expect(1, 65379, '\p{Category=:\AClose_Punctuation\z:}', "");;
     Expect(0, 65380, '\p{Category=:\AClose_Punctuation\z:}', "");;
     Expect(1, 65379, '\p{Category=closepunctuation}', "");
@@ -41717,16 +42285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65380, '\P{^Category=closepunctuation}', "");
     Expect(1, 65379, '\p{Category=:\Aclosepunctuation\z:}', "");;
     Expect(0, 65380, '\p{Category=:\Aclosepunctuation\z:}', "");;
-    Expect(1, 65379, '\p{Category=-Close_Punctuation}', "");
-    Expect(0, 65379, '\p{^Category=-Close_Punctuation}', "");
-    Expect(0, 65379, '\P{Category=-Close_Punctuation}', "");
-    Expect(1, 65379, '\P{^Category=-Close_Punctuation}', "");
-    Expect(0, 65380, '\p{Category=-Close_Punctuation}', "");
-    Expect(1, 65380, '\p{^Category=-Close_Punctuation}', "");
-    Expect(1, 65380, '\P{Category=-Close_Punctuation}', "");
-    Expect(0, 65380, '\P{^Category=-Close_Punctuation}', "");
-    Error('\p{Is_General_Category=/a/Pe}');
-    Error('\P{Is_General_Category=/a/Pe}');
+    Expect(1, 65379, '\p{Category:-_CLOSE_Punctuation}', "");
+    Expect(0, 65379, '\p{^Category:-_CLOSE_Punctuation}', "");
+    Expect(0, 65379, '\P{Category:-_CLOSE_Punctuation}', "");
+    Expect(1, 65379, '\P{^Category:-_CLOSE_Punctuation}', "");
+    Expect(0, 65380, '\p{Category:-_CLOSE_Punctuation}', "");
+    Expect(1, 65380, '\p{^Category:-_CLOSE_Punctuation}', "");
+    Expect(1, 65380, '\P{Category:-_CLOSE_Punctuation}', "");
+    Expect(0, 65380, '\P{^Category:-_CLOSE_Punctuation}', "");
+    Error('\p{Is_General_Category= :=Pe}');
+    Error('\P{Is_General_Category= :=Pe}');
     Expect(1, 65379, '\p{Is_General_Category=pe}', "");
     Expect(0, 65379, '\p{^Is_General_Category=pe}', "");
     Expect(0, 65379, '\P{Is_General_Category=pe}', "");
@@ -41735,16 +42303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65380, '\p{^Is_General_Category=pe}', "");
     Expect(1, 65380, '\P{Is_General_Category=pe}', "");
     Expect(0, 65380, '\P{^Is_General_Category=pe}', "");
-    Expect(1, 65379, '\p{Is_General_Category=-	Pe}', "");
-    Expect(0, 65379, '\p{^Is_General_Category=-	Pe}', "");
-    Expect(0, 65379, '\P{Is_General_Category=-	Pe}', "");
-    Expect(1, 65379, '\P{^Is_General_Category=-	Pe}', "");
-    Expect(0, 65380, '\p{Is_General_Category=-	Pe}', "");
-    Expect(1, 65380, '\p{^Is_General_Category=-	Pe}', "");
-    Expect(1, 65380, '\P{Is_General_Category=-	Pe}', "");
-    Expect(0, 65380, '\P{^Is_General_Category=-	Pe}', "");
-    Error('\p{Is_Gc:_/a/Close_punctuation}');
-    Error('\P{Is_Gc:_/a/Close_punctuation}');
+    Expect(1, 65379, '\p{Is_General_Category=	_Pe}', "");
+    Expect(0, 65379, '\p{^Is_General_Category=	_Pe}', "");
+    Expect(0, 65379, '\P{Is_General_Category=	_Pe}', "");
+    Expect(1, 65379, '\P{^Is_General_Category=	_Pe}', "");
+    Expect(0, 65380, '\p{Is_General_Category=	_Pe}', "");
+    Expect(1, 65380, '\p{^Is_General_Category=	_Pe}', "");
+    Expect(1, 65380, '\P{Is_General_Category=	_Pe}', "");
+    Expect(0, 65380, '\P{^Is_General_Category=	_Pe}', "");
+    Error('\p{Is_Gc=/a/		Close_Punctuation}');
+    Error('\P{Is_Gc=/a/		Close_Punctuation}');
     Expect(1, 65379, '\p{Is_Gc=closepunctuation}', "");
     Expect(0, 65379, '\p{^Is_Gc=closepunctuation}', "");
     Expect(0, 65379, '\P{Is_Gc=closepunctuation}', "");
@@ -41753,34 +42321,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65380, '\p{^Is_Gc=closepunctuation}', "");
     Expect(1, 65380, '\P{Is_Gc=closepunctuation}', "");
     Expect(0, 65380, '\P{^Is_Gc=closepunctuation}', "");
-    Expect(1, 65379, '\p{Is_Gc=-_Close_Punctuation}', "");
-    Expect(0, 65379, '\p{^Is_Gc=-_Close_Punctuation}', "");
-    Expect(0, 65379, '\P{Is_Gc=-_Close_Punctuation}', "");
-    Expect(1, 65379, '\P{^Is_Gc=-_Close_Punctuation}', "");
-    Expect(0, 65380, '\p{Is_Gc=-_Close_Punctuation}', "");
-    Expect(1, 65380, '\p{^Is_Gc=-_Close_Punctuation}', "");
-    Expect(1, 65380, '\P{Is_Gc=-_Close_Punctuation}', "");
-    Expect(0, 65380, '\P{^Is_Gc=-_Close_Punctuation}', "");
-    Error('\p{Is_Category=:=	PE}');
-    Error('\P{Is_Category=:=	PE}');
-    Expect(1, 65379, '\p{Is_Category:	pe}', "");
-    Expect(0, 65379, '\p{^Is_Category:	pe}', "");
-    Expect(0, 65379, '\P{Is_Category:	pe}', "");
-    Expect(1, 65379, '\P{^Is_Category:	pe}', "");
-    Expect(0, 65380, '\p{Is_Category:	pe}', "");
-    Expect(1, 65380, '\p{^Is_Category:	pe}', "");
-    Expect(1, 65380, '\P{Is_Category:	pe}', "");
-    Expect(0, 65380, '\P{^Is_Category:	pe}', "");
-    Expect(1, 65379, '\p{Is_Category:	Pe}', "");
-    Expect(0, 65379, '\p{^Is_Category:	Pe}', "");
-    Expect(0, 65379, '\P{Is_Category:	Pe}', "");
-    Expect(1, 65379, '\P{^Is_Category:	Pe}', "");
-    Expect(0, 65380, '\p{Is_Category:	Pe}', "");
-    Expect(1, 65380, '\p{^Is_Category:	Pe}', "");
-    Expect(1, 65380, '\P{Is_Category:	Pe}', "");
-    Expect(0, 65380, '\P{^Is_Category:	Pe}', "");
-    Error('\p{General_Category= _Final_punctuation/a/}');
-    Error('\P{General_Category= _Final_punctuation/a/}');
+    Expect(1, 65379, '\p{Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(0, 65379, '\p{^Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(0, 65379, '\P{Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(1, 65379, '\P{^Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(0, 65380, '\p{Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(1, 65380, '\p{^Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(1, 65380, '\P{Is_Gc=-Close_PUNCTUATION}', "");
+    Expect(0, 65380, '\P{^Is_Gc=-Close_PUNCTUATION}', "");
+    Error('\p{Is_Category=-	pe:=}');
+    Error('\P{Is_Category=-	pe:=}');
+    Expect(1, 65379, '\p{Is_Category=pe}', "");
+    Expect(0, 65379, '\p{^Is_Category=pe}', "");
+    Expect(0, 65379, '\P{Is_Category=pe}', "");
+    Expect(1, 65379, '\P{^Is_Category=pe}', "");
+    Expect(0, 65380, '\p{Is_Category=pe}', "");
+    Expect(1, 65380, '\p{^Is_Category=pe}', "");
+    Expect(1, 65380, '\P{Is_Category=pe}', "");
+    Expect(0, 65380, '\P{^Is_Category=pe}', "");
+    Expect(1, 65379, '\p{Is_Category=_Pe}', "");
+    Expect(0, 65379, '\p{^Is_Category=_Pe}', "");
+    Expect(0, 65379, '\P{Is_Category=_Pe}', "");
+    Expect(1, 65379, '\P{^Is_Category=_Pe}', "");
+    Expect(0, 65380, '\p{Is_Category=_Pe}', "");
+    Expect(1, 65380, '\p{^Is_Category=_Pe}', "");
+    Expect(1, 65380, '\P{Is_Category=_Pe}', "");
+    Expect(0, 65380, '\P{^Is_Category=_Pe}', "");
+    Error('\p{General_Category=-:=Final_PUNCTUATION}');
+    Error('\P{General_Category=-:=Final_PUNCTUATION}');
     Expect(1, 11809, '\p{General_Category=:\AFinal_Punctuation\z:}', "");;
     Expect(0, 11810, '\p{General_Category=:\AFinal_Punctuation\z:}', "");;
     Expect(1, 11809, '\p{General_Category=finalpunctuation}', "");
@@ -41793,16 +42361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11810, '\P{^General_Category=finalpunctuation}', "");
     Expect(1, 11809, '\p{General_Category=:\Afinalpunctuation\z:}', "");;
     Expect(0, 11810, '\p{General_Category=:\Afinalpunctuation\z:}', "");;
-    Expect(1, 11809, '\p{General_Category= Final_Punctuation}', "");
-    Expect(0, 11809, '\p{^General_Category= Final_Punctuation}', "");
-    Expect(0, 11809, '\P{General_Category= Final_Punctuation}', "");
-    Expect(1, 11809, '\P{^General_Category= Final_Punctuation}', "");
-    Expect(0, 11810, '\p{General_Category= Final_Punctuation}', "");
-    Expect(1, 11810, '\p{^General_Category= Final_Punctuation}', "");
-    Expect(1, 11810, '\P{General_Category= Final_Punctuation}', "");
-    Expect(0, 11810, '\P{^General_Category= Final_Punctuation}', "");
-    Error('\p{Gc=_-Pf:=}');
-    Error('\P{Gc=_-Pf:=}');
+    Expect(1, 11809, '\p{General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(0, 11809, '\p{^General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(0, 11809, '\P{General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(1, 11809, '\P{^General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(0, 11810, '\p{General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(1, 11810, '\p{^General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(1, 11810, '\P{General_Category:   	_Final_PUNCTUATION}', "");
+    Expect(0, 11810, '\P{^General_Category:   	_Final_PUNCTUATION}', "");
+    Error('\p{Gc=/a/_-Pf}');
+    Error('\P{Gc=/a/_-Pf}');
     Expect(1, 11809, '\p{Gc=:\APf\z:}', "");;
     Expect(0, 11810, '\p{Gc=:\APf\z:}', "");;
     Expect(1, 11809, '\p{Gc=pf}', "");
@@ -41815,16 +42383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11810, '\P{^Gc=pf}', "");
     Expect(1, 11809, '\p{Gc=:\Apf\z:}', "");;
     Expect(0, 11810, '\p{Gc=:\Apf\z:}', "");;
-    Expect(1, 11809, '\p{Gc= PF}', "");
-    Expect(0, 11809, '\p{^Gc= PF}', "");
-    Expect(0, 11809, '\P{Gc= PF}', "");
-    Expect(1, 11809, '\P{^Gc= PF}', "");
-    Expect(0, 11810, '\p{Gc= PF}', "");
-    Expect(1, 11810, '\p{^Gc= PF}', "");
-    Expect(1, 11810, '\P{Gc= PF}', "");
-    Expect(0, 11810, '\P{^Gc= PF}', "");
-    Error('\p{Category=:= FINAL_PUNCTUATION}');
-    Error('\P{Category=:= FINAL_PUNCTUATION}');
+    Expect(1, 11809, '\p{Gc=	PF}', "");
+    Expect(0, 11809, '\p{^Gc=	PF}', "");
+    Expect(0, 11809, '\P{Gc=	PF}', "");
+    Expect(1, 11809, '\P{^Gc=	PF}', "");
+    Expect(0, 11810, '\p{Gc=	PF}', "");
+    Expect(1, 11810, '\p{^Gc=	PF}', "");
+    Expect(1, 11810, '\P{Gc=	PF}', "");
+    Expect(0, 11810, '\P{^Gc=	PF}', "");
+    Error('\p{Category=/a/ 	Final_PUNCTUATION}');
+    Error('\P{Category=/a/ 	Final_PUNCTUATION}');
     Expect(1, 11809, '\p{Category=:\AFinal_Punctuation\z:}', "");;
     Expect(0, 11810, '\p{Category=:\AFinal_Punctuation\z:}', "");;
     Expect(1, 11809, '\p{Category=finalpunctuation}', "");
@@ -41837,16 +42405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11810, '\P{^Category=finalpunctuation}', "");
     Expect(1, 11809, '\p{Category=:\Afinalpunctuation\z:}', "");;
     Expect(0, 11810, '\p{Category=:\Afinalpunctuation\z:}', "");;
-    Expect(1, 11809, '\p{Category=--final_Punctuation}', "");
-    Expect(0, 11809, '\p{^Category=--final_Punctuation}', "");
-    Expect(0, 11809, '\P{Category=--final_Punctuation}', "");
-    Expect(1, 11809, '\P{^Category=--final_Punctuation}', "");
-    Expect(0, 11810, '\p{Category=--final_Punctuation}', "");
-    Expect(1, 11810, '\p{^Category=--final_Punctuation}', "");
-    Expect(1, 11810, '\P{Category=--final_Punctuation}', "");
-    Expect(0, 11810, '\P{^Category=--final_Punctuation}', "");
-    Error('\p{Is_General_Category=/a/-_pf}');
-    Error('\P{Is_General_Category=/a/-_pf}');
+    Expect(1, 11809, '\p{Category= Final_PUNCTUATION}', "");
+    Expect(0, 11809, '\p{^Category= Final_PUNCTUATION}', "");
+    Expect(0, 11809, '\P{Category= Final_PUNCTUATION}', "");
+    Expect(1, 11809, '\P{^Category= Final_PUNCTUATION}', "");
+    Expect(0, 11810, '\p{Category= Final_PUNCTUATION}', "");
+    Expect(1, 11810, '\p{^Category= Final_PUNCTUATION}', "");
+    Expect(1, 11810, '\P{Category= Final_PUNCTUATION}', "");
+    Expect(0, 11810, '\P{^Category= Final_PUNCTUATION}', "");
+    Error('\p{Is_General_Category=_/a/Pf}');
+    Error('\P{Is_General_Category=_/a/Pf}');
     Expect(1, 11809, '\p{Is_General_Category=pf}', "");
     Expect(0, 11809, '\p{^Is_General_Category=pf}', "");
     Expect(0, 11809, '\P{Is_General_Category=pf}', "");
@@ -41855,16 +42423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11810, '\p{^Is_General_Category=pf}', "");
     Expect(1, 11810, '\P{Is_General_Category=pf}', "");
     Expect(0, 11810, '\P{^Is_General_Category=pf}', "");
-    Expect(1, 11809, '\p{Is_General_Category=	 pf}', "");
-    Expect(0, 11809, '\p{^Is_General_Category=	 pf}', "");
-    Expect(0, 11809, '\P{Is_General_Category=	 pf}', "");
-    Expect(1, 11809, '\P{^Is_General_Category=	 pf}', "");
-    Expect(0, 11810, '\p{Is_General_Category=	 pf}', "");
-    Expect(1, 11810, '\p{^Is_General_Category=	 pf}', "");
-    Expect(1, 11810, '\P{Is_General_Category=	 pf}', "");
-    Expect(0, 11810, '\P{^Is_General_Category=	 pf}', "");
-    Error('\p{Is_Gc=_:=FINAL_punctuation}');
-    Error('\P{Is_Gc=_:=FINAL_punctuation}');
+    Expect(1, 11809, '\p{Is_General_Category= Pf}', "");
+    Expect(0, 11809, '\p{^Is_General_Category= Pf}', "");
+    Expect(0, 11809, '\P{Is_General_Category= Pf}', "");
+    Expect(1, 11809, '\P{^Is_General_Category= Pf}', "");
+    Expect(0, 11810, '\p{Is_General_Category= Pf}', "");
+    Expect(1, 11810, '\p{^Is_General_Category= Pf}', "");
+    Expect(1, 11810, '\P{Is_General_Category= Pf}', "");
+    Expect(0, 11810, '\P{^Is_General_Category= Pf}', "");
+    Error('\p{Is_Gc=:=	_final_PUNCTUATION}');
+    Error('\P{Is_Gc=:=	_final_PUNCTUATION}');
     Expect(1, 11809, '\p{Is_Gc=finalpunctuation}', "");
     Expect(0, 11809, '\p{^Is_Gc=finalpunctuation}', "");
     Expect(0, 11809, '\P{Is_Gc=finalpunctuation}', "");
@@ -41873,16 +42441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11810, '\p{^Is_Gc=finalpunctuation}', "");
     Expect(1, 11810, '\P{Is_Gc=finalpunctuation}', "");
     Expect(0, 11810, '\P{^Is_Gc=finalpunctuation}', "");
-    Expect(1, 11809, '\p{Is_Gc=_Final_Punctuation}', "");
-    Expect(0, 11809, '\p{^Is_Gc=_Final_Punctuation}', "");
-    Expect(0, 11809, '\P{Is_Gc=_Final_Punctuation}', "");
-    Expect(1, 11809, '\P{^Is_Gc=_Final_Punctuation}', "");
-    Expect(0, 11810, '\p{Is_Gc=_Final_Punctuation}', "");
-    Expect(1, 11810, '\p{^Is_Gc=_Final_Punctuation}', "");
-    Expect(1, 11810, '\P{Is_Gc=_Final_Punctuation}', "");
-    Expect(0, 11810, '\P{^Is_Gc=_Final_Punctuation}', "");
-    Error('\p{Is_Category= /a/pf}');
-    Error('\P{Is_Category= /a/pf}');
+    Expect(1, 11809, '\p{Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(0, 11809, '\p{^Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(0, 11809, '\P{Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(1, 11809, '\P{^Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(0, 11810, '\p{Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(1, 11810, '\p{^Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(1, 11810, '\P{Is_Gc=-FINAL_PUNCTUATION}', "");
+    Expect(0, 11810, '\P{^Is_Gc=-FINAL_PUNCTUATION}', "");
+    Error('\p{Is_Category=-_Pf/a/}');
+    Error('\P{Is_Category=-_Pf/a/}');
     Expect(1, 11809, '\p{Is_Category=pf}', "");
     Expect(0, 11809, '\p{^Is_Category=pf}', "");
     Expect(0, 11809, '\P{Is_Category=pf}', "");
@@ -41891,60 +42459,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11810, '\p{^Is_Category=pf}', "");
     Expect(1, 11810, '\P{Is_Category=pf}', "");
     Expect(0, 11810, '\P{^Is_Category=pf}', "");
-    Expect(1, 11809, '\p{Is_Category= _Pf}', "");
-    Expect(0, 11809, '\p{^Is_Category= _Pf}', "");
-    Expect(0, 11809, '\P{Is_Category= _Pf}', "");
-    Expect(1, 11809, '\P{^Is_Category= _Pf}', "");
-    Expect(0, 11810, '\p{Is_Category= _Pf}', "");
-    Expect(1, 11810, '\p{^Is_Category= _Pf}', "");
-    Expect(1, 11810, '\P{Is_Category= _Pf}', "");
-    Expect(0, 11810, '\P{^Is_Category= _Pf}', "");
-    Error('\p{General_Category=:=initial_PUNCTUATION}');
-    Error('\P{General_Category=:=initial_PUNCTUATION}');
+    Expect(1, 11809, '\p{Is_Category=  Pf}', "");
+    Expect(0, 11809, '\p{^Is_Category=  Pf}', "");
+    Expect(0, 11809, '\P{Is_Category=  Pf}', "");
+    Expect(1, 11809, '\P{^Is_Category=  Pf}', "");
+    Expect(0, 11810, '\p{Is_Category=  Pf}', "");
+    Expect(1, 11810, '\p{^Is_Category=  Pf}', "");
+    Expect(1, 11810, '\P{Is_Category=  Pf}', "");
+    Expect(0, 11810, '\P{^Is_Category=  Pf}', "");
+    Error('\p{General_Category=_:=Initial_Punctuation}');
+    Error('\P{General_Category=_:=Initial_Punctuation}');
     Expect(1, 11808, '\p{General_Category=:\AInitial_Punctuation\z:}', "");;
     Expect(0, 11809, '\p{General_Category=:\AInitial_Punctuation\z:}', "");;
-    Expect(1, 11808, '\p{General_Category=initialpunctuation}', "");
-    Expect(0, 11808, '\p{^General_Category=initialpunctuation}', "");
-    Expect(0, 11808, '\P{General_Category=initialpunctuation}', "");
-    Expect(1, 11808, '\P{^General_Category=initialpunctuation}', "");
-    Expect(0, 11809, '\p{General_Category=initialpunctuation}', "");
-    Expect(1, 11809, '\p{^General_Category=initialpunctuation}', "");
-    Expect(1, 11809, '\P{General_Category=initialpunctuation}', "");
-    Expect(0, 11809, '\P{^General_Category=initialpunctuation}', "");
+    Expect(1, 11808, '\p{General_Category:initialpunctuation}', "");
+    Expect(0, 11808, '\p{^General_Category:initialpunctuation}', "");
+    Expect(0, 11808, '\P{General_Category:initialpunctuation}', "");
+    Expect(1, 11808, '\P{^General_Category:initialpunctuation}', "");
+    Expect(0, 11809, '\p{General_Category:initialpunctuation}', "");
+    Expect(1, 11809, '\p{^General_Category:initialpunctuation}', "");
+    Expect(1, 11809, '\P{General_Category:initialpunctuation}', "");
+    Expect(0, 11809, '\P{^General_Category:initialpunctuation}', "");
     Expect(1, 11808, '\p{General_Category=:\Ainitialpunctuation\z:}', "");;
     Expect(0, 11809, '\p{General_Category=:\Ainitialpunctuation\z:}', "");;
-    Expect(1, 11808, '\p{General_Category= Initial_punctuation}', "");
-    Expect(0, 11808, '\p{^General_Category= Initial_punctuation}', "");
-    Expect(0, 11808, '\P{General_Category= Initial_punctuation}', "");
-    Expect(1, 11808, '\P{^General_Category= Initial_punctuation}', "");
-    Expect(0, 11809, '\p{General_Category= Initial_punctuation}', "");
-    Expect(1, 11809, '\p{^General_Category= Initial_punctuation}', "");
-    Expect(1, 11809, '\P{General_Category= Initial_punctuation}', "");
-    Expect(0, 11809, '\P{^General_Category= Initial_punctuation}', "");
-    Error('\p{Gc=:= PI}');
-    Error('\P{Gc=:= PI}');
+    Expect(1, 11808, '\p{General_Category=	 Initial_punctuation}', "");
+    Expect(0, 11808, '\p{^General_Category=	 Initial_punctuation}', "");
+    Expect(0, 11808, '\P{General_Category=	 Initial_punctuation}', "");
+    Expect(1, 11808, '\P{^General_Category=	 Initial_punctuation}', "");
+    Expect(0, 11809, '\p{General_Category=	 Initial_punctuation}', "");
+    Expect(1, 11809, '\p{^General_Category=	 Initial_punctuation}', "");
+    Expect(1, 11809, '\P{General_Category=	 Initial_punctuation}', "");
+    Expect(0, 11809, '\P{^General_Category=	 Initial_punctuation}', "");
+    Error('\p{Gc=/a/ 	PI}');
+    Error('\P{Gc=/a/ 	PI}');
     Expect(1, 11808, '\p{Gc=:\APi\z:}', "");;
     Expect(0, 11809, '\p{Gc=:\APi\z:}', "");;
-    Expect(1, 11808, '\p{Gc=pi}', "");
-    Expect(0, 11808, '\p{^Gc=pi}', "");
-    Expect(0, 11808, '\P{Gc=pi}', "");
-    Expect(1, 11808, '\P{^Gc=pi}', "");
-    Expect(0, 11809, '\p{Gc=pi}', "");
-    Expect(1, 11809, '\p{^Gc=pi}', "");
-    Expect(1, 11809, '\P{Gc=pi}', "");
-    Expect(0, 11809, '\P{^Gc=pi}', "");
+    Expect(1, 11808, '\p{Gc: pi}', "");
+    Expect(0, 11808, '\p{^Gc: pi}', "");
+    Expect(0, 11808, '\P{Gc: pi}', "");
+    Expect(1, 11808, '\P{^Gc: pi}', "");
+    Expect(0, 11809, '\p{Gc: pi}', "");
+    Expect(1, 11809, '\p{^Gc: pi}', "");
+    Expect(1, 11809, '\P{Gc: pi}', "");
+    Expect(0, 11809, '\P{^Gc: pi}', "");
     Expect(1, 11808, '\p{Gc=:\Api\z:}', "");;
     Expect(0, 11809, '\p{Gc=:\Api\z:}', "");;
-    Expect(1, 11808, '\p{Gc=-Pi}', "");
-    Expect(0, 11808, '\p{^Gc=-Pi}', "");
-    Expect(0, 11808, '\P{Gc=-Pi}', "");
-    Expect(1, 11808, '\P{^Gc=-Pi}', "");
-    Expect(0, 11809, '\p{Gc=-Pi}', "");
-    Expect(1, 11809, '\p{^Gc=-Pi}', "");
-    Expect(1, 11809, '\P{Gc=-Pi}', "");
-    Expect(0, 11809, '\P{^Gc=-Pi}', "");
-    Error('\p{Category=_-INITIAL_Punctuation:=}');
-    Error('\P{Category=_-INITIAL_Punctuation:=}');
+    Expect(1, 11808, '\p{Gc=		Pi}', "");
+    Expect(0, 11808, '\p{^Gc=		Pi}', "");
+    Expect(0, 11808, '\P{Gc=		Pi}', "");
+    Expect(1, 11808, '\P{^Gc=		Pi}', "");
+    Expect(0, 11809, '\p{Gc=		Pi}', "");
+    Expect(1, 11809, '\p{^Gc=		Pi}', "");
+    Expect(1, 11809, '\P{Gc=		Pi}', "");
+    Expect(0, 11809, '\P{^Gc=		Pi}', "");
+    Error('\p{Category: _:=INITIAL_PUNCTUATION}');
+    Error('\P{Category: _:=INITIAL_PUNCTUATION}');
     Expect(1, 11808, '\p{Category=:\AInitial_Punctuation\z:}', "");;
     Expect(0, 11809, '\p{Category=:\AInitial_Punctuation\z:}', "");;
     Expect(1, 11808, '\p{Category=initialpunctuation}', "");
@@ -41957,16 +42525,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11809, '\P{^Category=initialpunctuation}', "");
     Expect(1, 11808, '\p{Category=:\Ainitialpunctuation\z:}', "");;
     Expect(0, 11809, '\p{Category=:\Ainitialpunctuation\z:}', "");;
-    Expect(1, 11808, '\p{Category=	Initial_PUNCTUATION}', "");
-    Expect(0, 11808, '\p{^Category=	Initial_PUNCTUATION}', "");
-    Expect(0, 11808, '\P{Category=	Initial_PUNCTUATION}', "");
-    Expect(1, 11808, '\P{^Category=	Initial_PUNCTUATION}', "");
-    Expect(0, 11809, '\p{Category=	Initial_PUNCTUATION}', "");
-    Expect(1, 11809, '\p{^Category=	Initial_PUNCTUATION}', "");
-    Expect(1, 11809, '\P{Category=	Initial_PUNCTUATION}', "");
-    Expect(0, 11809, '\P{^Category=	Initial_PUNCTUATION}', "");
-    Error('\p{Is_General_Category=_:=Pi}');
-    Error('\P{Is_General_Category=_:=Pi}');
+    Expect(1, 11808, '\p{Category=-	Initial_PUNCTUATION}', "");
+    Expect(0, 11808, '\p{^Category=-	Initial_PUNCTUATION}', "");
+    Expect(0, 11808, '\P{Category=-	Initial_PUNCTUATION}', "");
+    Expect(1, 11808, '\P{^Category=-	Initial_PUNCTUATION}', "");
+    Expect(0, 11809, '\p{Category=-	Initial_PUNCTUATION}', "");
+    Expect(1, 11809, '\p{^Category=-	Initial_PUNCTUATION}', "");
+    Expect(1, 11809, '\P{Category=-	Initial_PUNCTUATION}', "");
+    Expect(0, 11809, '\P{^Category=-	Initial_PUNCTUATION}', "");
+    Error('\p{Is_General_Category= :=Pi}');
+    Error('\P{Is_General_Category= :=Pi}');
     Expect(1, 11808, '\p{Is_General_Category=pi}', "");
     Expect(0, 11808, '\p{^Is_General_Category=pi}', "");
     Expect(0, 11808, '\P{Is_General_Category=pi}', "");
@@ -41975,16 +42543,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11809, '\p{^Is_General_Category=pi}', "");
     Expect(1, 11809, '\P{Is_General_Category=pi}', "");
     Expect(0, 11809, '\P{^Is_General_Category=pi}', "");
-    Expect(1, 11808, '\p{Is_General_Category=_-Pi}', "");
-    Expect(0, 11808, '\p{^Is_General_Category=_-Pi}', "");
-    Expect(0, 11808, '\P{Is_General_Category=_-Pi}', "");
-    Expect(1, 11808, '\P{^Is_General_Category=_-Pi}', "");
-    Expect(0, 11809, '\p{Is_General_Category=_-Pi}', "");
-    Expect(1, 11809, '\p{^Is_General_Category=_-Pi}', "");
-    Expect(1, 11809, '\P{Is_General_Category=_-Pi}', "");
-    Expect(0, 11809, '\P{^Is_General_Category=_-Pi}', "");
-    Error('\p{Is_Gc=:= initial_Punctuation}');
-    Error('\P{Is_Gc=:= initial_Punctuation}');
+    Expect(1, 11808, '\p{Is_General_Category=-_pi}', "");
+    Expect(0, 11808, '\p{^Is_General_Category=-_pi}', "");
+    Expect(0, 11808, '\P{Is_General_Category=-_pi}', "");
+    Expect(1, 11808, '\P{^Is_General_Category=-_pi}', "");
+    Expect(0, 11809, '\p{Is_General_Category=-_pi}', "");
+    Expect(1, 11809, '\p{^Is_General_Category=-_pi}', "");
+    Expect(1, 11809, '\P{Is_General_Category=-_pi}', "");
+    Expect(0, 11809, '\P{^Is_General_Category=-_pi}', "");
+    Error('\p{Is_Gc:   _Initial_Punctuation/a/}');
+    Error('\P{Is_Gc:   _Initial_Punctuation/a/}');
     Expect(1, 11808, '\p{Is_Gc=initialpunctuation}', "");
     Expect(0, 11808, '\p{^Is_Gc=initialpunctuation}', "");
     Expect(0, 11808, '\P{Is_Gc=initialpunctuation}', "");
@@ -41993,16 +42561,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11809, '\p{^Is_Gc=initialpunctuation}', "");
     Expect(1, 11809, '\P{Is_Gc=initialpunctuation}', "");
     Expect(0, 11809, '\P{^Is_Gc=initialpunctuation}', "");
-    Expect(1, 11808, '\p{Is_Gc=	initial_punctuation}', "");
-    Expect(0, 11808, '\p{^Is_Gc=	initial_punctuation}', "");
-    Expect(0, 11808, '\P{Is_Gc=	initial_punctuation}', "");
-    Expect(1, 11808, '\P{^Is_Gc=	initial_punctuation}', "");
-    Expect(0, 11809, '\p{Is_Gc=	initial_punctuation}', "");
-    Expect(1, 11809, '\p{^Is_Gc=	initial_punctuation}', "");
-    Expect(1, 11809, '\P{Is_Gc=	initial_punctuation}', "");
-    Expect(0, 11809, '\P{^Is_Gc=	initial_punctuation}', "");
-    Error('\p{Is_Category=/a/-_Pi}');
-    Error('\P{Is_Category=/a/-_Pi}');
+    Expect(1, 11808, '\p{Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(0, 11808, '\p{^Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(0, 11808, '\P{Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(1, 11808, '\P{^Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(0, 11809, '\p{Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(1, 11809, '\p{^Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(1, 11809, '\P{Is_Gc= 	initial_PUNCTUATION}', "");
+    Expect(0, 11809, '\P{^Is_Gc= 	initial_PUNCTUATION}', "");
+    Error('\p{Is_Category=_:=Pi}');
+    Error('\P{Is_Category=_:=Pi}');
     Expect(1, 11808, '\p{Is_Category=pi}', "");
     Expect(0, 11808, '\p{^Is_Category=pi}', "");
     Expect(0, 11808, '\P{Is_Category=pi}', "");
@@ -42011,38 +42579,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11809, '\p{^Is_Category=pi}', "");
     Expect(1, 11809, '\P{Is_Category=pi}', "");
     Expect(0, 11809, '\P{^Is_Category=pi}', "");
-    Expect(1, 11808, '\p{Is_Category=_-Pi}', "");
-    Expect(0, 11808, '\p{^Is_Category=_-Pi}', "");
-    Expect(0, 11808, '\P{Is_Category=_-Pi}', "");
-    Expect(1, 11808, '\P{^Is_Category=_-Pi}', "");
-    Expect(0, 11809, '\p{Is_Category=_-Pi}', "");
-    Expect(1, 11809, '\p{^Is_Category=_-Pi}', "");
-    Expect(1, 11809, '\P{Is_Category=_-Pi}', "");
-    Expect(0, 11809, '\P{^Is_Category=_-Pi}', "");
-    Error('\p{General_Category=/a/	_Other_PUNCTUATION}');
-    Error('\P{General_Category=/a/	_Other_PUNCTUATION}');
+    Error('\p{General_Category=:= Other_PUNCTUATION}');
+    Error('\P{General_Category=:= Other_PUNCTUATION}');
     Expect(1, 125279, '\p{General_Category=:\AOther_Punctuation\z:}', "");;
     Expect(0, 125280, '\p{General_Category=:\AOther_Punctuation\z:}', "");;
-    Expect(1, 125279, '\p{General_Category:otherpunctuation}', "");
-    Expect(0, 125279, '\p{^General_Category:otherpunctuation}', "");
-    Expect(0, 125279, '\P{General_Category:otherpunctuation}', "");
-    Expect(1, 125279, '\P{^General_Category:otherpunctuation}', "");
-    Expect(0, 125280, '\p{General_Category:otherpunctuation}', "");
-    Expect(1, 125280, '\p{^General_Category:otherpunctuation}', "");
-    Expect(1, 125280, '\P{General_Category:otherpunctuation}', "");
-    Expect(0, 125280, '\P{^General_Category:otherpunctuation}', "");
+    Expect(1, 125279, '\p{General_Category=otherpunctuation}', "");
+    Expect(0, 125279, '\p{^General_Category=otherpunctuation}', "");
+    Expect(0, 125279, '\P{General_Category=otherpunctuation}', "");
+    Expect(1, 125279, '\P{^General_Category=otherpunctuation}', "");
+    Expect(0, 125280, '\p{General_Category=otherpunctuation}', "");
+    Expect(1, 125280, '\p{^General_Category=otherpunctuation}', "");
+    Expect(1, 125280, '\P{General_Category=otherpunctuation}', "");
+    Expect(0, 125280, '\P{^General_Category=otherpunctuation}', "");
     Expect(1, 125279, '\p{General_Category=:\Aotherpunctuation\z:}', "");;
     Expect(0, 125280, '\p{General_Category=:\Aotherpunctuation\z:}', "");;
-    Expect(1, 125279, '\p{General_Category=-	OTHER_Punctuation}', "");
-    Expect(0, 125279, '\p{^General_Category=-	OTHER_Punctuation}', "");
-    Expect(0, 125279, '\P{General_Category=-	OTHER_Punctuation}', "");
-    Expect(1, 125279, '\P{^General_Category=-	OTHER_Punctuation}', "");
-    Expect(0, 125280, '\p{General_Category=-	OTHER_Punctuation}', "");
-    Expect(1, 125280, '\p{^General_Category=-	OTHER_Punctuation}', "");
-    Expect(1, 125280, '\P{General_Category=-	OTHER_Punctuation}', "");
-    Expect(0, 125280, '\P{^General_Category=-	OTHER_Punctuation}', "");
-    Error('\p{Gc=	:=Po}');
-    Error('\P{Gc=	:=Po}');
+    Expect(1, 125279, '\p{General_Category=_	other_PUNCTUATION}', "");
+    Expect(0, 125279, '\p{^General_Category=_	other_PUNCTUATION}', "");
+    Expect(0, 125279, '\P{General_Category=_	other_PUNCTUATION}', "");
+    Expect(1, 125279, '\P{^General_Category=_	other_PUNCTUATION}', "");
+    Expect(0, 125280, '\p{General_Category=_	other_PUNCTUATION}', "");
+    Expect(1, 125280, '\p{^General_Category=_	other_PUNCTUATION}', "");
+    Expect(1, 125280, '\P{General_Category=_	other_PUNCTUATION}', "");
+    Expect(0, 125280, '\P{^General_Category=_	other_PUNCTUATION}', "");
+    Error('\p{Gc=/a/ -Po}');
+    Error('\P{Gc=/a/ -Po}');
     Expect(1, 125279, '\p{Gc=:\APo\z:}', "");;
     Expect(0, 125280, '\p{Gc=:\APo\z:}', "");;
     Expect(1, 125279, '\p{Gc=po}', "");
@@ -42055,16 +42615,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^Gc=po}', "");
     Expect(1, 125279, '\p{Gc=:\Apo\z:}', "");;
     Expect(0, 125280, '\p{Gc=:\Apo\z:}', "");;
-    Expect(1, 125279, '\p{Gc=-po}', "");
-    Expect(0, 125279, '\p{^Gc=-po}', "");
-    Expect(0, 125279, '\P{Gc=-po}', "");
-    Expect(1, 125279, '\P{^Gc=-po}', "");
-    Expect(0, 125280, '\p{Gc=-po}', "");
-    Expect(1, 125280, '\p{^Gc=-po}', "");
-    Expect(1, 125280, '\P{Gc=-po}', "");
-    Expect(0, 125280, '\P{^Gc=-po}', "");
-    Error('\p{Category=-/a/OTHER_punctuation}');
-    Error('\P{Category=-/a/OTHER_punctuation}');
+    Expect(1, 125279, '\p{Gc=_ po}', "");
+    Expect(0, 125279, '\p{^Gc=_ po}', "");
+    Expect(0, 125279, '\P{Gc=_ po}', "");
+    Expect(1, 125279, '\P{^Gc=_ po}', "");
+    Expect(0, 125280, '\p{Gc=_ po}', "");
+    Expect(1, 125280, '\p{^Gc=_ po}', "");
+    Expect(1, 125280, '\P{Gc=_ po}', "");
+    Expect(0, 125280, '\P{^Gc=_ po}', "");
+    Error('\p{Category=_/a/other_Punctuation}');
+    Error('\P{Category=_/a/other_Punctuation}');
     Expect(1, 125279, '\p{Category=:\AOther_Punctuation\z:}', "");;
     Expect(0, 125280, '\p{Category=:\AOther_Punctuation\z:}', "");;
     Expect(1, 125279, '\p{Category=otherpunctuation}', "");
@@ -42077,52 +42637,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^Category=otherpunctuation}', "");
     Expect(1, 125279, '\p{Category=:\Aotherpunctuation\z:}', "");;
     Expect(0, 125280, '\p{Category=:\Aotherpunctuation\z:}', "");;
-    Expect(1, 125279, '\p{Category:   _ other_Punctuation}', "");
-    Expect(0, 125279, '\p{^Category:   _ other_Punctuation}', "");
-    Expect(0, 125279, '\P{Category:   _ other_Punctuation}', "");
-    Expect(1, 125279, '\P{^Category:   _ other_Punctuation}', "");
-    Expect(0, 125280, '\p{Category:   _ other_Punctuation}', "");
-    Expect(1, 125280, '\p{^Category:   _ other_Punctuation}', "");
-    Expect(1, 125280, '\P{Category:   _ other_Punctuation}', "");
-    Expect(0, 125280, '\P{^Category:   _ other_Punctuation}', "");
-    Error('\p{Is_General_Category=_/a/PO}');
-    Error('\P{Is_General_Category=_/a/PO}');
-    Expect(1, 125279, '\p{Is_General_Category=po}', "");
-    Expect(0, 125279, '\p{^Is_General_Category=po}', "");
-    Expect(0, 125279, '\P{Is_General_Category=po}', "");
-    Expect(1, 125279, '\P{^Is_General_Category=po}', "");
-    Expect(0, 125280, '\p{Is_General_Category=po}', "");
-    Expect(1, 125280, '\p{^Is_General_Category=po}', "");
-    Expect(1, 125280, '\P{Is_General_Category=po}', "");
-    Expect(0, 125280, '\P{^Is_General_Category=po}', "");
-    Expect(1, 125279, '\p{Is_General_Category=-PO}', "");
-    Expect(0, 125279, '\p{^Is_General_Category=-PO}', "");
-    Expect(0, 125279, '\P{Is_General_Category=-PO}', "");
-    Expect(1, 125279, '\P{^Is_General_Category=-PO}', "");
-    Expect(0, 125280, '\p{Is_General_Category=-PO}', "");
-    Expect(1, 125280, '\p{^Is_General_Category=-PO}', "");
-    Expect(1, 125280, '\P{Is_General_Category=-PO}', "");
-    Expect(0, 125280, '\P{^Is_General_Category=-PO}', "");
-    Error('\p{Is_Gc=_Other_punctuation:=}');
-    Error('\P{Is_Gc=_Other_punctuation:=}');
-    Expect(1, 125279, '\p{Is_Gc:   otherpunctuation}', "");
-    Expect(0, 125279, '\p{^Is_Gc:   otherpunctuation}', "");
-    Expect(0, 125279, '\P{Is_Gc:   otherpunctuation}', "");
-    Expect(1, 125279, '\P{^Is_Gc:   otherpunctuation}', "");
-    Expect(0, 125280, '\p{Is_Gc:   otherpunctuation}', "");
-    Expect(1, 125280, '\p{^Is_Gc:   otherpunctuation}', "");
-    Expect(1, 125280, '\P{Is_Gc:   otherpunctuation}', "");
-    Expect(0, 125280, '\P{^Is_Gc:   otherpunctuation}', "");
-    Expect(1, 125279, '\p{Is_Gc=  Other_Punctuation}', "");
-    Expect(0, 125279, '\p{^Is_Gc=  Other_Punctuation}', "");
-    Expect(0, 125279, '\P{Is_Gc=  Other_Punctuation}', "");
-    Expect(1, 125279, '\P{^Is_Gc=  Other_Punctuation}', "");
-    Expect(0, 125280, '\p{Is_Gc=  Other_Punctuation}', "");
-    Expect(1, 125280, '\p{^Is_Gc=  Other_Punctuation}', "");
-    Expect(1, 125280, '\P{Is_Gc=  Other_Punctuation}', "");
-    Expect(0, 125280, '\P{^Is_Gc=  Other_Punctuation}', "");
-    Error('\p{Is_Category=/a/_	Po}');
-    Error('\P{Is_Category=/a/_	Po}');
+    Expect(1, 125279, '\p{Category=_ Other_Punctuation}', "");
+    Expect(0, 125279, '\p{^Category=_ Other_Punctuation}', "");
+    Expect(0, 125279, '\P{Category=_ Other_Punctuation}', "");
+    Expect(1, 125279, '\P{^Category=_ Other_Punctuation}', "");
+    Expect(0, 125280, '\p{Category=_ Other_Punctuation}', "");
+    Expect(1, 125280, '\p{^Category=_ Other_Punctuation}', "");
+    Expect(1, 125280, '\P{Category=_ Other_Punctuation}', "");
+    Expect(0, 125280, '\P{^Category=_ Other_Punctuation}', "");
+    Error('\p{Is_General_Category=-/a/po}');
+    Error('\P{Is_General_Category=-/a/po}');
+    Expect(1, 125279, '\p{Is_General_Category: po}', "");
+    Expect(0, 125279, '\p{^Is_General_Category: po}', "");
+    Expect(0, 125279, '\P{Is_General_Category: po}', "");
+    Expect(1, 125279, '\P{^Is_General_Category: po}', "");
+    Expect(0, 125280, '\p{Is_General_Category: po}', "");
+    Expect(1, 125280, '\p{^Is_General_Category: po}', "");
+    Expect(1, 125280, '\P{Is_General_Category: po}', "");
+    Expect(0, 125280, '\P{^Is_General_Category: po}', "");
+    Expect(1, 125279, '\p{Is_General_Category=-	po}', "");
+    Expect(0, 125279, '\p{^Is_General_Category=-	po}', "");
+    Expect(0, 125279, '\P{Is_General_Category=-	po}', "");
+    Expect(1, 125279, '\P{^Is_General_Category=-	po}', "");
+    Expect(0, 125280, '\p{Is_General_Category=-	po}', "");
+    Expect(1, 125280, '\p{^Is_General_Category=-	po}', "");
+    Expect(1, 125280, '\P{Is_General_Category=-	po}', "");
+    Expect(0, 125280, '\P{^Is_General_Category=-	po}', "");
+    Error('\p{Is_Gc= 	Other_PUNCTUATION/a/}');
+    Error('\P{Is_Gc= 	Other_PUNCTUATION/a/}');
+    Expect(1, 125279, '\p{Is_Gc=otherpunctuation}', "");
+    Expect(0, 125279, '\p{^Is_Gc=otherpunctuation}', "");
+    Expect(0, 125279, '\P{Is_Gc=otherpunctuation}', "");
+    Expect(1, 125279, '\P{^Is_Gc=otherpunctuation}', "");
+    Expect(0, 125280, '\p{Is_Gc=otherpunctuation}', "");
+    Expect(1, 125280, '\p{^Is_Gc=otherpunctuation}', "");
+    Expect(1, 125280, '\P{Is_Gc=otherpunctuation}', "");
+    Expect(0, 125280, '\P{^Is_Gc=otherpunctuation}', "");
+    Expect(1, 125279, '\p{Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(0, 125279, '\p{^Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(0, 125279, '\P{Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(1, 125279, '\P{^Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(0, 125280, '\p{Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(1, 125280, '\p{^Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(1, 125280, '\P{Is_Gc=-_other_PUNCTUATION}', "");
+    Expect(0, 125280, '\P{^Is_Gc=-_other_PUNCTUATION}', "");
+    Error('\p{Is_Category= -Po:=}');
+    Error('\P{Is_Category= -Po:=}');
     Expect(1, 125279, '\p{Is_Category=po}', "");
     Expect(0, 125279, '\p{^Is_Category=po}', "");
     Expect(0, 125279, '\P{Is_Category=po}', "");
@@ -42131,16 +42691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125280, '\p{^Is_Category=po}', "");
     Expect(1, 125280, '\P{Is_Category=po}', "");
     Expect(0, 125280, '\P{^Is_Category=po}', "");
-    Expect(1, 125279, '\p{Is_Category=_	Po}', "");
-    Expect(0, 125279, '\p{^Is_Category=_	Po}', "");
-    Expect(0, 125279, '\P{Is_Category=_	Po}', "");
-    Expect(1, 125279, '\P{^Is_Category=_	Po}', "");
-    Expect(0, 125280, '\p{Is_Category=_	Po}', "");
-    Expect(1, 125280, '\p{^Is_Category=_	Po}', "");
-    Expect(1, 125280, '\P{Is_Category=_	Po}', "");
-    Expect(0, 125280, '\P{^Is_Category=_	Po}', "");
-    Error('\p{General_Category=:=open_Punctuation}');
-    Error('\P{General_Category=:=open_Punctuation}');
+    Expect(1, 125279, '\p{Is_Category=_Po}', "");
+    Expect(0, 125279, '\p{^Is_Category=_Po}', "");
+    Expect(0, 125279, '\P{Is_Category=_Po}', "");
+    Expect(1, 125279, '\P{^Is_Category=_Po}', "");
+    Expect(0, 125280, '\p{Is_Category=_Po}', "");
+    Expect(1, 125280, '\p{^Is_Category=_Po}', "");
+    Expect(1, 125280, '\P{Is_Category=_Po}', "");
+    Expect(0, 125280, '\P{^Is_Category=_Po}', "");
+    Error('\p{General_Category=/a/OPEN_Punctuation}');
+    Error('\P{General_Category=/a/OPEN_Punctuation}');
     Expect(1, 65378, '\p{General_Category=:\AOpen_Punctuation\z:}', "");;
     Expect(0, 65379, '\p{General_Category=:\AOpen_Punctuation\z:}', "");;
     Expect(1, 65378, '\p{General_Category=openpunctuation}', "");
@@ -42153,38 +42713,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65379, '\P{^General_Category=openpunctuation}', "");
     Expect(1, 65378, '\p{General_Category=:\Aopenpunctuation\z:}', "");;
     Expect(0, 65379, '\p{General_Category=:\Aopenpunctuation\z:}', "");;
-    Expect(1, 65378, '\p{General_Category=_ OPEN_Punctuation}', "");
-    Expect(0, 65378, '\p{^General_Category=_ OPEN_Punctuation}', "");
-    Expect(0, 65378, '\P{General_Category=_ OPEN_Punctuation}', "");
-    Expect(1, 65378, '\P{^General_Category=_ OPEN_Punctuation}', "");
-    Expect(0, 65379, '\p{General_Category=_ OPEN_Punctuation}', "");
-    Expect(1, 65379, '\p{^General_Category=_ OPEN_Punctuation}', "");
-    Expect(1, 65379, '\P{General_Category=_ OPEN_Punctuation}', "");
-    Expect(0, 65379, '\P{^General_Category=_ OPEN_Punctuation}', "");
-    Error('\p{Gc= :=PS}');
-    Error('\P{Gc= :=PS}');
+    Expect(1, 65378, '\p{General_Category=  open_Punctuation}', "");
+    Expect(0, 65378, '\p{^General_Category=  open_Punctuation}', "");
+    Expect(0, 65378, '\P{General_Category=  open_Punctuation}', "");
+    Expect(1, 65378, '\P{^General_Category=  open_Punctuation}', "");
+    Expect(0, 65379, '\p{General_Category=  open_Punctuation}', "");
+    Expect(1, 65379, '\p{^General_Category=  open_Punctuation}', "");
+    Expect(1, 65379, '\P{General_Category=  open_Punctuation}', "");
+    Expect(0, 65379, '\P{^General_Category=  open_Punctuation}', "");
+    Error('\p{Gc=/a/ -Ps}');
+    Error('\P{Gc=/a/ -Ps}');
     Expect(1, 65378, '\p{Gc=:\APs\z:}', "");;
     Expect(0, 65379, '\p{Gc=:\APs\z:}', "");;
-    Expect(1, 65378, '\p{Gc:ps}', "");
-    Expect(0, 65378, '\p{^Gc:ps}', "");
-    Expect(0, 65378, '\P{Gc:ps}', "");
-    Expect(1, 65378, '\P{^Gc:ps}', "");
-    Expect(0, 65379, '\p{Gc:ps}', "");
-    Expect(1, 65379, '\p{^Gc:ps}', "");
-    Expect(1, 65379, '\P{Gc:ps}', "");
-    Expect(0, 65379, '\P{^Gc:ps}', "");
+    Expect(1, 65378, '\p{Gc=ps}', "");
+    Expect(0, 65378, '\p{^Gc=ps}', "");
+    Expect(0, 65378, '\P{Gc=ps}', "");
+    Expect(1, 65378, '\P{^Gc=ps}', "");
+    Expect(0, 65379, '\p{Gc=ps}', "");
+    Expect(1, 65379, '\p{^Gc=ps}', "");
+    Expect(1, 65379, '\P{Gc=ps}', "");
+    Expect(0, 65379, '\P{^Gc=ps}', "");
     Expect(1, 65378, '\p{Gc=:\Aps\z:}', "");;
     Expect(0, 65379, '\p{Gc=:\Aps\z:}', "");;
-    Expect(1, 65378, '\p{Gc=- PS}', "");
-    Expect(0, 65378, '\p{^Gc=- PS}', "");
-    Expect(0, 65378, '\P{Gc=- PS}', "");
-    Expect(1, 65378, '\P{^Gc=- PS}', "");
-    Expect(0, 65379, '\p{Gc=- PS}', "");
-    Expect(1, 65379, '\p{^Gc=- PS}', "");
-    Expect(1, 65379, '\P{Gc=- PS}', "");
-    Expect(0, 65379, '\P{^Gc=- PS}', "");
-    Error('\p{Category=_-OPEN_punctuation/a/}');
-    Error('\P{Category=_-OPEN_punctuation/a/}');
+    Expect(1, 65378, '\p{Gc=  PS}', "");
+    Expect(0, 65378, '\p{^Gc=  PS}', "");
+    Expect(0, 65378, '\P{Gc=  PS}', "");
+    Expect(1, 65378, '\P{^Gc=  PS}', "");
+    Expect(0, 65379, '\p{Gc=  PS}', "");
+    Expect(1, 65379, '\p{^Gc=  PS}', "");
+    Expect(1, 65379, '\P{Gc=  PS}', "");
+    Expect(0, 65379, '\P{^Gc=  PS}', "");
+    Error('\p{Category=/a/ open_PUNCTUATION}');
+    Error('\P{Category=/a/ open_PUNCTUATION}');
     Expect(1, 65378, '\p{Category=:\AOpen_Punctuation\z:}', "");;
     Expect(0, 65379, '\p{Category=:\AOpen_Punctuation\z:}', "");;
     Expect(1, 65378, '\p{Category=openpunctuation}', "");
@@ -42197,16 +42757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65379, '\P{^Category=openpunctuation}', "");
     Expect(1, 65378, '\p{Category=:\Aopenpunctuation\z:}', "");;
     Expect(0, 65379, '\p{Category=:\Aopenpunctuation\z:}', "");;
-    Expect(1, 65378, '\p{Category= -Open_Punctuation}', "");
-    Expect(0, 65378, '\p{^Category= -Open_Punctuation}', "");
-    Expect(0, 65378, '\P{Category= -Open_Punctuation}', "");
-    Expect(1, 65378, '\P{^Category= -Open_Punctuation}', "");
-    Expect(0, 65379, '\p{Category= -Open_Punctuation}', "");
-    Expect(1, 65379, '\p{^Category= -Open_Punctuation}', "");
-    Expect(1, 65379, '\P{Category= -Open_Punctuation}', "");
-    Expect(0, 65379, '\P{^Category= -Open_Punctuation}', "");
-    Error('\p{Is_General_Category= /a/Ps}');
-    Error('\P{Is_General_Category= /a/Ps}');
+    Expect(1, 65378, '\p{Category:  	Open_Punctuation}', "");
+    Expect(0, 65378, '\p{^Category:  	Open_Punctuation}', "");
+    Expect(0, 65378, '\P{Category:  	Open_Punctuation}', "");
+    Expect(1, 65378, '\P{^Category:  	Open_Punctuation}', "");
+    Expect(0, 65379, '\p{Category:  	Open_Punctuation}', "");
+    Expect(1, 65379, '\p{^Category:  	Open_Punctuation}', "");
+    Expect(1, 65379, '\P{Category:  	Open_Punctuation}', "");
+    Expect(0, 65379, '\P{^Category:  	Open_Punctuation}', "");
+    Error('\p{Is_General_Category=:=-_Ps}');
+    Error('\P{Is_General_Category=:=-_Ps}');
     Expect(1, 65378, '\p{Is_General_Category=ps}', "");
     Expect(0, 65378, '\p{^Is_General_Category=ps}', "");
     Expect(0, 65378, '\P{Is_General_Category=ps}', "");
@@ -42215,16 +42775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65379, '\p{^Is_General_Category=ps}', "");
     Expect(1, 65379, '\P{Is_General_Category=ps}', "");
     Expect(0, 65379, '\P{^Is_General_Category=ps}', "");
-    Expect(1, 65378, '\p{Is_General_Category= _Ps}', "");
-    Expect(0, 65378, '\p{^Is_General_Category= _Ps}', "");
-    Expect(0, 65378, '\P{Is_General_Category= _Ps}', "");
-    Expect(1, 65378, '\P{^Is_General_Category= _Ps}', "");
-    Expect(0, 65379, '\p{Is_General_Category= _Ps}', "");
-    Expect(1, 65379, '\p{^Is_General_Category= _Ps}', "");
-    Expect(1, 65379, '\P{Is_General_Category= _Ps}', "");
-    Expect(0, 65379, '\P{^Is_General_Category= _Ps}', "");
-    Error('\p{Is_Gc=:=	Open_punctuation}');
-    Error('\P{Is_Gc=:=	Open_punctuation}');
+    Expect(1, 65378, '\p{Is_General_Category=_PS}', "");
+    Expect(0, 65378, '\p{^Is_General_Category=_PS}', "");
+    Expect(0, 65378, '\P{Is_General_Category=_PS}', "");
+    Expect(1, 65378, '\P{^Is_General_Category=_PS}', "");
+    Expect(0, 65379, '\p{Is_General_Category=_PS}', "");
+    Expect(1, 65379, '\p{^Is_General_Category=_PS}', "");
+    Expect(1, 65379, '\P{Is_General_Category=_PS}', "");
+    Expect(0, 65379, '\P{^Is_General_Category=_PS}', "");
+    Error('\p{Is_Gc=/a/ OPEN_punctuation}');
+    Error('\P{Is_Gc=/a/ OPEN_punctuation}');
     Expect(1, 65378, '\p{Is_Gc=openpunctuation}', "");
     Expect(0, 65378, '\p{^Is_Gc=openpunctuation}', "");
     Expect(0, 65378, '\P{Is_Gc=openpunctuation}', "");
@@ -42233,16 +42793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65379, '\p{^Is_Gc=openpunctuation}', "");
     Expect(1, 65379, '\P{Is_Gc=openpunctuation}', "");
     Expect(0, 65379, '\P{^Is_Gc=openpunctuation}', "");
-    Expect(1, 65378, '\p{Is_Gc=_Open_Punctuation}', "");
-    Expect(0, 65378, '\p{^Is_Gc=_Open_Punctuation}', "");
-    Expect(0, 65378, '\P{Is_Gc=_Open_Punctuation}', "");
-    Expect(1, 65378, '\P{^Is_Gc=_Open_Punctuation}', "");
-    Expect(0, 65379, '\p{Is_Gc=_Open_Punctuation}', "");
-    Expect(1, 65379, '\p{^Is_Gc=_Open_Punctuation}', "");
-    Expect(1, 65379, '\P{Is_Gc=_Open_Punctuation}', "");
-    Expect(0, 65379, '\P{^Is_Gc=_Open_Punctuation}', "");
-    Error('\p{Is_Category=/a/__PS}');
-    Error('\P{Is_Category=/a/__PS}');
+    Expect(1, 65378, '\p{Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(0, 65378, '\p{^Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(0, 65378, '\P{Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(1, 65378, '\P{^Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(0, 65379, '\p{Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(1, 65379, '\p{^Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(1, 65379, '\P{Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Expect(0, 65379, '\P{^Is_Gc=	_OPEN_PUNCTUATION}', "");
+    Error('\p{Is_Category=/a/_Ps}');
+    Error('\P{Is_Category=/a/_Ps}');
     Expect(1, 65378, '\p{Is_Category=ps}', "");
     Expect(0, 65378, '\p{^Is_Category=ps}', "");
     Expect(0, 65378, '\P{Is_Category=ps}', "");
@@ -42251,16 +42811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65379, '\p{^Is_Category=ps}', "");
     Expect(1, 65379, '\P{Is_Category=ps}', "");
     Expect(0, 65379, '\P{^Is_Category=ps}', "");
-    Expect(1, 65378, '\p{Is_Category=	 PS}', "");
-    Expect(0, 65378, '\p{^Is_Category=	 PS}', "");
-    Expect(0, 65378, '\P{Is_Category=	 PS}', "");
-    Expect(1, 65378, '\P{^Is_Category=	 PS}', "");
-    Expect(0, 65379, '\p{Is_Category=	 PS}', "");
-    Expect(1, 65379, '\p{^Is_Category=	 PS}', "");
-    Expect(1, 65379, '\P{Is_Category=	 PS}', "");
-    Expect(0, 65379, '\P{^Is_Category=	 PS}', "");
-    Error('\p{General_Category=-:=Symbol}');
-    Error('\P{General_Category=-:=Symbol}');
+    Expect(1, 65378, '\p{Is_Category= 	ps}', "");
+    Expect(0, 65378, '\p{^Is_Category= 	ps}', "");
+    Expect(0, 65378, '\P{Is_Category= 	ps}', "");
+    Expect(1, 65378, '\P{^Is_Category= 	ps}', "");
+    Expect(0, 65379, '\p{Is_Category= 	ps}', "");
+    Expect(1, 65379, '\p{^Is_Category= 	ps}', "");
+    Expect(1, 65379, '\P{Is_Category= 	ps}', "");
+    Expect(0, 65379, '\P{^Is_Category= 	ps}', "");
+    Error('\p{General_Category=_SYMBOL:=}');
+    Error('\P{General_Category=_SYMBOL:=}');
     Expect(1, 129994, '\p{General_Category=:\ASymbol\z:}', "");;
     Expect(0, 129995, '\p{General_Category=:\ASymbol\z:}', "");;
     Expect(1, 129994, '\p{General_Category=symbol}', "");
@@ -42273,16 +42833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^General_Category=symbol}', "");
     Expect(1, 129994, '\p{General_Category=:\Asymbol\z:}', "");;
     Expect(0, 129995, '\p{General_Category=:\Asymbol\z:}', "");;
-    Expect(1, 129994, '\p{General_Category= _Symbol}', "");
-    Expect(0, 129994, '\p{^General_Category= _Symbol}', "");
-    Expect(0, 129994, '\P{General_Category= _Symbol}', "");
-    Expect(1, 129994, '\P{^General_Category= _Symbol}', "");
-    Expect(0, 129995, '\p{General_Category= _Symbol}', "");
-    Expect(1, 129995, '\p{^General_Category= _Symbol}', "");
-    Expect(1, 129995, '\P{General_Category= _Symbol}', "");
-    Expect(0, 129995, '\P{^General_Category= _Symbol}', "");
-    Error('\p{Gc= -S/a/}');
-    Error('\P{Gc= -S/a/}');
+    Expect(1, 129994, '\p{General_Category=_symbol}', "");
+    Expect(0, 129994, '\p{^General_Category=_symbol}', "");
+    Expect(0, 129994, '\P{General_Category=_symbol}', "");
+    Expect(1, 129994, '\P{^General_Category=_symbol}', "");
+    Expect(0, 129995, '\p{General_Category=_symbol}', "");
+    Expect(1, 129995, '\p{^General_Category=_symbol}', "");
+    Expect(1, 129995, '\P{General_Category=_symbol}', "");
+    Expect(0, 129995, '\P{^General_Category=_symbol}', "");
+    Error('\p{Gc=/a/_S}');
+    Error('\P{Gc=/a/_S}');
     Expect(1, 129994, '\p{Gc=:\AS\z:}', "");;
     Expect(0, 129995, '\p{Gc=:\AS\z:}', "");;
     Expect(1, 129994, '\p{Gc=s}', "");
@@ -42295,16 +42855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^Gc=s}', "");
     Expect(1, 129994, '\p{Gc=:\As\z:}', "");;
     Expect(0, 129995, '\p{Gc=:\As\z:}', "");;
-    Expect(1, 129994, '\p{Gc:-_s}', "");
-    Expect(0, 129994, '\p{^Gc:-_s}', "");
-    Expect(0, 129994, '\P{Gc:-_s}', "");
-    Expect(1, 129994, '\P{^Gc:-_s}', "");
-    Expect(0, 129995, '\p{Gc:-_s}', "");
-    Expect(1, 129995, '\p{^Gc:-_s}', "");
-    Expect(1, 129995, '\P{Gc:-_s}', "");
-    Expect(0, 129995, '\P{^Gc:-_s}', "");
-    Error('\p{Category=	-SYMBOL:=}');
-    Error('\P{Category=	-SYMBOL:=}');
+    Expect(1, 129994, '\p{Gc=	 s}', "");
+    Expect(0, 129994, '\p{^Gc=	 s}', "");
+    Expect(0, 129994, '\P{Gc=	 s}', "");
+    Expect(1, 129994, '\P{^Gc=	 s}', "");
+    Expect(0, 129995, '\p{Gc=	 s}', "");
+    Expect(1, 129995, '\p{^Gc=	 s}', "");
+    Expect(1, 129995, '\P{Gc=	 s}', "");
+    Expect(0, 129995, '\P{^Gc=	 s}', "");
+    Error('\p{Category= _Symbol:=}');
+    Error('\P{Category= _Symbol:=}');
     Expect(1, 129994, '\p{Category=:\ASymbol\z:}', "");;
     Expect(0, 129995, '\p{Category=:\ASymbol\z:}', "");;
     Expect(1, 129994, '\p{Category=symbol}', "");
@@ -42317,34 +42877,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^Category=symbol}', "");
     Expect(1, 129994, '\p{Category=:\Asymbol\z:}', "");;
     Expect(0, 129995, '\p{Category=:\Asymbol\z:}', "");;
-    Expect(1, 129994, '\p{Category: 	 symbol}', "");
-    Expect(0, 129994, '\p{^Category: 	 symbol}', "");
-    Expect(0, 129994, '\P{Category: 	 symbol}', "");
-    Expect(1, 129994, '\P{^Category: 	 symbol}', "");
-    Expect(0, 129995, '\p{Category: 	 symbol}', "");
-    Expect(1, 129995, '\p{^Category: 	 symbol}', "");
-    Expect(1, 129995, '\P{Category: 	 symbol}', "");
-    Expect(0, 129995, '\P{^Category: 	 symbol}', "");
-    Error('\p{Is_General_Category=/a/-s}');
-    Error('\P{Is_General_Category=/a/-s}');
-    Expect(1, 129994, '\p{Is_General_Category:s}', "");
-    Expect(0, 129994, '\p{^Is_General_Category:s}', "");
-    Expect(0, 129994, '\P{Is_General_Category:s}', "");
-    Expect(1, 129994, '\P{^Is_General_Category:s}', "");
-    Expect(0, 129995, '\p{Is_General_Category:s}', "");
-    Expect(1, 129995, '\p{^Is_General_Category:s}', "");
-    Expect(1, 129995, '\P{Is_General_Category:s}', "");
-    Expect(0, 129995, '\P{^Is_General_Category:s}', "");
-    Expect(1, 129994, '\p{Is_General_Category=-	S}', "");
-    Expect(0, 129994, '\p{^Is_General_Category=-	S}', "");
-    Expect(0, 129994, '\P{Is_General_Category=-	S}', "");
-    Expect(1, 129994, '\P{^Is_General_Category=-	S}', "");
-    Expect(0, 129995, '\p{Is_General_Category=-	S}', "");
-    Expect(1, 129995, '\p{^Is_General_Category=-	S}', "");
-    Expect(1, 129995, '\P{Is_General_Category=-	S}', "");
-    Expect(0, 129995, '\P{^Is_General_Category=-	S}', "");
-    Error('\p{Is_Gc=/a/symbol}');
-    Error('\P{Is_Gc=/a/symbol}');
+    Expect(1, 129994, '\p{Category=--Symbol}', "");
+    Expect(0, 129994, '\p{^Category=--Symbol}', "");
+    Expect(0, 129994, '\P{Category=--Symbol}', "");
+    Expect(1, 129994, '\P{^Category=--Symbol}', "");
+    Expect(0, 129995, '\p{Category=--Symbol}', "");
+    Expect(1, 129995, '\p{^Category=--Symbol}', "");
+    Expect(1, 129995, '\P{Category=--Symbol}', "");
+    Expect(0, 129995, '\P{^Category=--Symbol}', "");
+    Error('\p{Is_General_Category=:=s}');
+    Error('\P{Is_General_Category=:=s}');
+    Expect(1, 129994, '\p{Is_General_Category=s}', "");
+    Expect(0, 129994, '\p{^Is_General_Category=s}', "");
+    Expect(0, 129994, '\P{Is_General_Category=s}', "");
+    Expect(1, 129994, '\P{^Is_General_Category=s}', "");
+    Expect(0, 129995, '\p{Is_General_Category=s}', "");
+    Expect(1, 129995, '\p{^Is_General_Category=s}', "");
+    Expect(1, 129995, '\P{Is_General_Category=s}', "");
+    Expect(0, 129995, '\P{^Is_General_Category=s}', "");
+    Expect(1, 129994, '\p{Is_General_Category=  S}', "");
+    Expect(0, 129994, '\p{^Is_General_Category=  S}', "");
+    Expect(0, 129994, '\P{Is_General_Category=  S}', "");
+    Expect(1, 129994, '\P{^Is_General_Category=  S}', "");
+    Expect(0, 129995, '\p{Is_General_Category=  S}', "");
+    Expect(1, 129995, '\p{^Is_General_Category=  S}', "");
+    Expect(1, 129995, '\P{Is_General_Category=  S}', "");
+    Expect(0, 129995, '\P{^Is_General_Category=  S}', "");
+    Error('\p{Is_Gc=	 symbol/a/}');
+    Error('\P{Is_Gc=	 symbol/a/}');
     Expect(1, 129994, '\p{Is_Gc=symbol}', "");
     Expect(0, 129994, '\p{^Is_Gc=symbol}', "");
     Expect(0, 129994, '\P{Is_Gc=symbol}', "");
@@ -42353,16 +42913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Gc=symbol}', "");
     Expect(1, 129995, '\P{Is_Gc=symbol}', "");
     Expect(0, 129995, '\P{^Is_Gc=symbol}', "");
-    Expect(1, 129994, '\p{Is_Gc=	symbol}', "");
-    Expect(0, 129994, '\p{^Is_Gc=	symbol}', "");
-    Expect(0, 129994, '\P{Is_Gc=	symbol}', "");
-    Expect(1, 129994, '\P{^Is_Gc=	symbol}', "");
-    Expect(0, 129995, '\p{Is_Gc=	symbol}', "");
-    Expect(1, 129995, '\p{^Is_Gc=	symbol}', "");
-    Expect(1, 129995, '\P{Is_Gc=	symbol}', "");
-    Expect(0, 129995, '\P{^Is_Gc=	symbol}', "");
-    Error('\p{Is_Category=_:=S}');
-    Error('\P{Is_Category=_:=S}');
+    Expect(1, 129994, '\p{Is_Gc=		symbol}', "");
+    Expect(0, 129994, '\p{^Is_Gc=		symbol}', "");
+    Expect(0, 129994, '\P{Is_Gc=		symbol}', "");
+    Expect(1, 129994, '\P{^Is_Gc=		symbol}', "");
+    Expect(0, 129995, '\p{Is_Gc=		symbol}', "");
+    Expect(1, 129995, '\p{^Is_Gc=		symbol}', "");
+    Expect(1, 129995, '\P{Is_Gc=		symbol}', "");
+    Expect(0, 129995, '\P{^Is_Gc=		symbol}', "");
+    Error('\p{Is_Category=_S/a/}');
+    Error('\P{Is_Category=_S/a/}');
     Expect(1, 129994, '\p{Is_Category=s}', "");
     Expect(0, 129994, '\p{^Is_Category=s}', "");
     Expect(0, 129994, '\P{Is_Category=s}', "");
@@ -42371,38 +42931,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Category=s}', "");
     Expect(1, 129995, '\P{Is_Category=s}', "");
     Expect(0, 129995, '\P{^Is_Category=s}', "");
-    Expect(1, 129994, '\p{Is_Category:  S}', "");
-    Expect(0, 129994, '\p{^Is_Category:  S}', "");
-    Expect(0, 129994, '\P{Is_Category:  S}', "");
-    Expect(1, 129994, '\P{^Is_Category:  S}', "");
-    Expect(0, 129995, '\p{Is_Category:  S}', "");
-    Expect(1, 129995, '\p{^Is_Category:  S}', "");
-    Expect(1, 129995, '\P{Is_Category:  S}', "");
-    Expect(0, 129995, '\P{^Is_Category:  S}', "");
-    Error('\p{General_Category:_Currency_Symbol/a/}');
-    Error('\P{General_Category:_Currency_Symbol/a/}');
+    Expect(1, 129994, '\p{Is_Category=-S}', "");
+    Expect(0, 129994, '\p{^Is_Category=-S}', "");
+    Expect(0, 129994, '\P{Is_Category=-S}', "");
+    Expect(1, 129994, '\P{^Is_Category=-S}', "");
+    Expect(0, 129995, '\p{Is_Category=-S}', "");
+    Expect(1, 129995, '\p{^Is_Category=-S}', "");
+    Expect(1, 129995, '\P{Is_Category=-S}', "");
+    Expect(0, 129995, '\P{^Is_Category=-S}', "");
+    Error('\p{General_Category=/a/_CURRENCY_symbol}');
+    Error('\P{General_Category=/a/_CURRENCY_symbol}');
     Expect(1, 126128, '\p{General_Category=:\ACurrency_Symbol\z:}', "");;
     Expect(0, 126129, '\p{General_Category=:\ACurrency_Symbol\z:}', "");;
-    Expect(1, 126128, '\p{General_Category: currencysymbol}', "");
-    Expect(0, 126128, '\p{^General_Category: currencysymbol}', "");
-    Expect(0, 126128, '\P{General_Category: currencysymbol}', "");
-    Expect(1, 126128, '\P{^General_Category: currencysymbol}', "");
-    Expect(0, 126129, '\p{General_Category: currencysymbol}', "");
-    Expect(1, 126129, '\p{^General_Category: currencysymbol}', "");
-    Expect(1, 126129, '\P{General_Category: currencysymbol}', "");
-    Expect(0, 126129, '\P{^General_Category: currencysymbol}', "");
+    Expect(1, 126128, '\p{General_Category=currencysymbol}', "");
+    Expect(0, 126128, '\p{^General_Category=currencysymbol}', "");
+    Expect(0, 126128, '\P{General_Category=currencysymbol}', "");
+    Expect(1, 126128, '\P{^General_Category=currencysymbol}', "");
+    Expect(0, 126129, '\p{General_Category=currencysymbol}', "");
+    Expect(1, 126129, '\p{^General_Category=currencysymbol}', "");
+    Expect(1, 126129, '\P{General_Category=currencysymbol}', "");
+    Expect(0, 126129, '\P{^General_Category=currencysymbol}', "");
     Expect(1, 126128, '\p{General_Category=:\Acurrencysymbol\z:}', "");;
     Expect(0, 126129, '\p{General_Category=:\Acurrencysymbol\z:}', "");;
-    Expect(1, 126128, '\p{General_Category=_Currency_Symbol}', "");
-    Expect(0, 126128, '\p{^General_Category=_Currency_Symbol}', "");
-    Expect(0, 126128, '\P{General_Category=_Currency_Symbol}', "");
-    Expect(1, 126128, '\P{^General_Category=_Currency_Symbol}', "");
-    Expect(0, 126129, '\p{General_Category=_Currency_Symbol}', "");
-    Expect(1, 126129, '\p{^General_Category=_Currency_Symbol}', "");
-    Expect(1, 126129, '\P{General_Category=_Currency_Symbol}', "");
-    Expect(0, 126129, '\P{^General_Category=_Currency_Symbol}', "");
-    Error('\p{Gc=	:=SC}');
-    Error('\P{Gc=	:=SC}');
+    Expect(1, 126128, '\p{General_Category:	_CURRENCY_symbol}', "");
+    Expect(0, 126128, '\p{^General_Category:	_CURRENCY_symbol}', "");
+    Expect(0, 126128, '\P{General_Category:	_CURRENCY_symbol}', "");
+    Expect(1, 126128, '\P{^General_Category:	_CURRENCY_symbol}', "");
+    Expect(0, 126129, '\p{General_Category:	_CURRENCY_symbol}', "");
+    Expect(1, 126129, '\p{^General_Category:	_CURRENCY_symbol}', "");
+    Expect(1, 126129, '\P{General_Category:	_CURRENCY_symbol}', "");
+    Expect(0, 126129, '\P{^General_Category:	_CURRENCY_symbol}', "");
+    Error('\p{Gc= _SC/a/}');
+    Error('\P{Gc= _SC/a/}');
     Expect(1, 126128, '\p{Gc=:\ASc\z:}', "");;
     Expect(0, 126129, '\p{Gc=:\ASc\z:}', "");;
     Expect(1, 126128, '\p{Gc=sc}', "");
@@ -42415,16 +42975,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126129, '\P{^Gc=sc}', "");
     Expect(1, 126128, '\p{Gc=:\Asc\z:}', "");;
     Expect(0, 126129, '\p{Gc=:\Asc\z:}', "");;
-    Expect(1, 126128, '\p{Gc= SC}', "");
-    Expect(0, 126128, '\p{^Gc= SC}', "");
-    Expect(0, 126128, '\P{Gc= SC}', "");
-    Expect(1, 126128, '\P{^Gc= SC}', "");
-    Expect(0, 126129, '\p{Gc= SC}', "");
-    Expect(1, 126129, '\p{^Gc= SC}', "");
-    Expect(1, 126129, '\P{Gc= SC}', "");
-    Expect(0, 126129, '\P{^Gc= SC}', "");
-    Error('\p{Category=-	Currency_symbol/a/}');
-    Error('\P{Category=-	Currency_symbol/a/}');
+    Expect(1, 126128, '\p{Gc=_Sc}', "");
+    Expect(0, 126128, '\p{^Gc=_Sc}', "");
+    Expect(0, 126128, '\P{Gc=_Sc}', "");
+    Expect(1, 126128, '\P{^Gc=_Sc}', "");
+    Expect(0, 126129, '\p{Gc=_Sc}', "");
+    Expect(1, 126129, '\p{^Gc=_Sc}', "");
+    Expect(1, 126129, '\P{Gc=_Sc}', "");
+    Expect(0, 126129, '\P{^Gc=_Sc}', "");
+    Error('\p{Category=-:=currency_symbol}');
+    Error('\P{Category=-:=currency_symbol}');
     Expect(1, 126128, '\p{Category=:\ACurrency_Symbol\z:}', "");;
     Expect(0, 126129, '\p{Category=:\ACurrency_Symbol\z:}', "");;
     Expect(1, 126128, '\p{Category=currencysymbol}', "");
@@ -42437,16 +42997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126129, '\P{^Category=currencysymbol}', "");
     Expect(1, 126128, '\p{Category=:\Acurrencysymbol\z:}', "");;
     Expect(0, 126129, '\p{Category=:\Acurrencysymbol\z:}', "");;
-    Expect(1, 126128, '\p{Category=	currency_Symbol}', "");
-    Expect(0, 126128, '\p{^Category=	currency_Symbol}', "");
-    Expect(0, 126128, '\P{Category=	currency_Symbol}', "");
-    Expect(1, 126128, '\P{^Category=	currency_Symbol}', "");
-    Expect(0, 126129, '\p{Category=	currency_Symbol}', "");
-    Expect(1, 126129, '\p{^Category=	currency_Symbol}', "");
-    Expect(1, 126129, '\P{Category=	currency_Symbol}', "");
-    Expect(0, 126129, '\P{^Category=	currency_Symbol}', "");
-    Error('\p{Is_General_Category=/a/  SC}');
-    Error('\P{Is_General_Category=/a/  SC}');
+    Expect(1, 126128, '\p{Category=	-Currency_Symbol}', "");
+    Expect(0, 126128, '\p{^Category=	-Currency_Symbol}', "");
+    Expect(0, 126128, '\P{Category=	-Currency_Symbol}', "");
+    Expect(1, 126128, '\P{^Category=	-Currency_Symbol}', "");
+    Expect(0, 126129, '\p{Category=	-Currency_Symbol}', "");
+    Expect(1, 126129, '\p{^Category=	-Currency_Symbol}', "");
+    Expect(1, 126129, '\P{Category=	-Currency_Symbol}', "");
+    Expect(0, 126129, '\P{^Category=	-Currency_Symbol}', "");
+    Error('\p{Is_General_Category=/a/_-Sc}');
+    Error('\P{Is_General_Category=/a/_-Sc}');
     Expect(1, 126128, '\p{Is_General_Category=sc}', "");
     Expect(0, 126128, '\p{^Is_General_Category=sc}', "");
     Expect(0, 126128, '\P{Is_General_Category=sc}', "");
@@ -42455,16 +43015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126129, '\p{^Is_General_Category=sc}', "");
     Expect(1, 126129, '\P{Is_General_Category=sc}', "");
     Expect(0, 126129, '\P{^Is_General_Category=sc}', "");
-    Expect(1, 126128, '\p{Is_General_Category=-	sc}', "");
-    Expect(0, 126128, '\p{^Is_General_Category=-	sc}', "");
-    Expect(0, 126128, '\P{Is_General_Category=-	sc}', "");
-    Expect(1, 126128, '\P{^Is_General_Category=-	sc}', "");
-    Expect(0, 126129, '\p{Is_General_Category=-	sc}', "");
-    Expect(1, 126129, '\p{^Is_General_Category=-	sc}', "");
-    Expect(1, 126129, '\P{Is_General_Category=-	sc}', "");
-    Expect(0, 126129, '\P{^Is_General_Category=-	sc}', "");
-    Error('\p{Is_Gc=Currency_symbol/a/}');
-    Error('\P{Is_Gc=Currency_symbol/a/}');
+    Expect(1, 126128, '\p{Is_General_Category=_ Sc}', "");
+    Expect(0, 126128, '\p{^Is_General_Category=_ Sc}', "");
+    Expect(0, 126128, '\P{Is_General_Category=_ Sc}', "");
+    Expect(1, 126128, '\P{^Is_General_Category=_ Sc}', "");
+    Expect(0, 126129, '\p{Is_General_Category=_ Sc}', "");
+    Expect(1, 126129, '\p{^Is_General_Category=_ Sc}', "");
+    Expect(1, 126129, '\P{Is_General_Category=_ Sc}', "");
+    Expect(0, 126129, '\P{^Is_General_Category=_ Sc}', "");
+    Error('\p{Is_Gc=/a/ Currency_symbol}');
+    Error('\P{Is_Gc=/a/ Currency_symbol}');
     Expect(1, 126128, '\p{Is_Gc=currencysymbol}', "");
     Expect(0, 126128, '\p{^Is_Gc=currencysymbol}', "");
     Expect(0, 126128, '\P{Is_Gc=currencysymbol}', "");
@@ -42473,16 +43033,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126129, '\p{^Is_Gc=currencysymbol}', "");
     Expect(1, 126129, '\P{Is_Gc=currencysymbol}', "");
     Expect(0, 126129, '\P{^Is_Gc=currencysymbol}', "");
-    Expect(1, 126128, '\p{Is_Gc: 	 Currency_Symbol}', "");
-    Expect(0, 126128, '\p{^Is_Gc: 	 Currency_Symbol}', "");
-    Expect(0, 126128, '\P{Is_Gc: 	 Currency_Symbol}', "");
-    Expect(1, 126128, '\P{^Is_Gc: 	 Currency_Symbol}', "");
-    Expect(0, 126129, '\p{Is_Gc: 	 Currency_Symbol}', "");
-    Expect(1, 126129, '\p{^Is_Gc: 	 Currency_Symbol}', "");
-    Expect(1, 126129, '\P{Is_Gc: 	 Currency_Symbol}', "");
-    Expect(0, 126129, '\P{^Is_Gc: 	 Currency_Symbol}', "");
-    Error('\p{Is_Category=_/a/Sc}');
-    Error('\P{Is_Category=_/a/Sc}');
+    Expect(1, 126128, '\p{Is_Gc=_Currency_Symbol}', "");
+    Expect(0, 126128, '\p{^Is_Gc=_Currency_Symbol}', "");
+    Expect(0, 126128, '\P{Is_Gc=_Currency_Symbol}', "");
+    Expect(1, 126128, '\P{^Is_Gc=_Currency_Symbol}', "");
+    Expect(0, 126129, '\p{Is_Gc=_Currency_Symbol}', "");
+    Expect(1, 126129, '\p{^Is_Gc=_Currency_Symbol}', "");
+    Expect(1, 126129, '\P{Is_Gc=_Currency_Symbol}', "");
+    Expect(0, 126129, '\P{^Is_Gc=_Currency_Symbol}', "");
+    Error('\p{Is_Category=/a/__Sc}');
+    Error('\P{Is_Category=/a/__Sc}');
     Expect(1, 126128, '\p{Is_Category=sc}', "");
     Expect(0, 126128, '\p{^Is_Category=sc}', "");
     Expect(0, 126128, '\P{Is_Category=sc}', "");
@@ -42491,16 +43051,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126129, '\p{^Is_Category=sc}', "");
     Expect(1, 126129, '\P{Is_Category=sc}', "");
     Expect(0, 126129, '\P{^Is_Category=sc}', "");
-    Expect(1, 126128, '\p{Is_Category=		Sc}', "");
-    Expect(0, 126128, '\p{^Is_Category=		Sc}', "");
-    Expect(0, 126128, '\P{Is_Category=		Sc}', "");
-    Expect(1, 126128, '\P{^Is_Category=		Sc}', "");
-    Expect(0, 126129, '\p{Is_Category=		Sc}', "");
-    Expect(1, 126129, '\p{^Is_Category=		Sc}', "");
-    Expect(1, 126129, '\P{Is_Category=		Sc}', "");
-    Expect(0, 126129, '\P{^Is_Category=		Sc}', "");
-    Error('\p{General_Category= :=MODIFIER_Symbol}');
-    Error('\P{General_Category= :=MODIFIER_Symbol}');
+    Expect(1, 126128, '\p{Is_Category=SC}', "");
+    Expect(0, 126128, '\p{^Is_Category=SC}', "");
+    Expect(0, 126128, '\P{Is_Category=SC}', "");
+    Expect(1, 126128, '\P{^Is_Category=SC}', "");
+    Expect(0, 126129, '\p{Is_Category=SC}', "");
+    Expect(1, 126129, '\p{^Is_Category=SC}', "");
+    Expect(1, 126129, '\P{Is_Category=SC}', "");
+    Expect(0, 126129, '\P{^Is_Category=SC}', "");
+    Error('\p{General_Category=/a/__Modifier_Symbol}');
+    Error('\P{General_Category=/a/__Modifier_Symbol}');
     Expect(1, 127999, '\p{General_Category=:\AModifier_Symbol\z:}', "");;
     Expect(0, 128000, '\p{General_Category=:\AModifier_Symbol\z:}', "");;
     Expect(1, 127999, '\p{General_Category=modifiersymbol}', "");
@@ -42513,60 +43073,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 128000, '\P{^General_Category=modifiersymbol}', "");
     Expect(1, 127999, '\p{General_Category=:\Amodifiersymbol\z:}', "");;
     Expect(0, 128000, '\p{General_Category=:\Amodifiersymbol\z:}', "");;
-    Expect(1, 127999, '\p{General_Category= _MODIFIER_symbol}', "");
-    Expect(0, 127999, '\p{^General_Category= _MODIFIER_symbol}', "");
-    Expect(0, 127999, '\P{General_Category= _MODIFIER_symbol}', "");
-    Expect(1, 127999, '\P{^General_Category= _MODIFIER_symbol}', "");
-    Expect(0, 128000, '\p{General_Category= _MODIFIER_symbol}', "");
-    Expect(1, 128000, '\p{^General_Category= _MODIFIER_symbol}', "");
-    Expect(1, 128000, '\P{General_Category= _MODIFIER_symbol}', "");
-    Expect(0, 128000, '\P{^General_Category= _MODIFIER_symbol}', "");
-    Error('\p{Gc=_SK:=}');
-    Error('\P{Gc=_SK:=}');
+    Expect(1, 127999, '\p{General_Category=		Modifier_symbol}', "");
+    Expect(0, 127999, '\p{^General_Category=		Modifier_symbol}', "");
+    Expect(0, 127999, '\P{General_Category=		Modifier_symbol}', "");
+    Expect(1, 127999, '\P{^General_Category=		Modifier_symbol}', "");
+    Expect(0, 128000, '\p{General_Category=		Modifier_symbol}', "");
+    Expect(1, 128000, '\p{^General_Category=		Modifier_symbol}', "");
+    Expect(1, 128000, '\P{General_Category=		Modifier_symbol}', "");
+    Expect(0, 128000, '\P{^General_Category=		Modifier_symbol}', "");
+    Error('\p{Gc:   -:=Sk}');
+    Error('\P{Gc:   -:=Sk}');
     Expect(1, 127999, '\p{Gc=:\ASk\z:}', "");;
     Expect(0, 128000, '\p{Gc=:\ASk\z:}', "");;
-    Expect(1, 127999, '\p{Gc=sk}', "");
-    Expect(0, 127999, '\p{^Gc=sk}', "");
-    Expect(0, 127999, '\P{Gc=sk}', "");
-    Expect(1, 127999, '\P{^Gc=sk}', "");
-    Expect(0, 128000, '\p{Gc=sk}', "");
-    Expect(1, 128000, '\p{^Gc=sk}', "");
-    Expect(1, 128000, '\P{Gc=sk}', "");
-    Expect(0, 128000, '\P{^Gc=sk}', "");
+    Expect(1, 127999, '\p{Gc:   sk}', "");
+    Expect(0, 127999, '\p{^Gc:   sk}', "");
+    Expect(0, 127999, '\P{Gc:   sk}', "");
+    Expect(1, 127999, '\P{^Gc:   sk}', "");
+    Expect(0, 128000, '\p{Gc:   sk}', "");
+    Expect(1, 128000, '\p{^Gc:   sk}', "");
+    Expect(1, 128000, '\P{Gc:   sk}', "");
+    Expect(0, 128000, '\P{^Gc:   sk}', "");
     Expect(1, 127999, '\p{Gc=:\Ask\z:}', "");;
     Expect(0, 128000, '\p{Gc=:\Ask\z:}', "");;
-    Expect(1, 127999, '\p{Gc=- Sk}', "");
-    Expect(0, 127999, '\p{^Gc=- Sk}', "");
-    Expect(0, 127999, '\P{Gc=- Sk}', "");
-    Expect(1, 127999, '\P{^Gc=- Sk}', "");
-    Expect(0, 128000, '\p{Gc=- Sk}', "");
-    Expect(1, 128000, '\p{^Gc=- Sk}', "");
-    Expect(1, 128000, '\P{Gc=- Sk}', "");
-    Expect(0, 128000, '\P{^Gc=- Sk}', "");
-    Error('\p{Category= MODIFIER_Symbol:=}');
-    Error('\P{Category= MODIFIER_Symbol:=}');
+    Expect(1, 127999, '\p{Gc:   -_Sk}', "");
+    Expect(0, 127999, '\p{^Gc:   -_Sk}', "");
+    Expect(0, 127999, '\P{Gc:   -_Sk}', "");
+    Expect(1, 127999, '\P{^Gc:   -_Sk}', "");
+    Expect(0, 128000, '\p{Gc:   -_Sk}', "");
+    Expect(1, 128000, '\p{^Gc:   -_Sk}', "");
+    Expect(1, 128000, '\P{Gc:   -_Sk}', "");
+    Expect(0, 128000, '\P{^Gc:   -_Sk}', "");
+    Error('\p{Category= modifier_Symbol/a/}');
+    Error('\P{Category= modifier_Symbol/a/}');
     Expect(1, 127999, '\p{Category=:\AModifier_Symbol\z:}', "");;
     Expect(0, 128000, '\p{Category=:\AModifier_Symbol\z:}', "");;
-    Expect(1, 127999, '\p{Category=modifiersymbol}', "");
-    Expect(0, 127999, '\p{^Category=modifiersymbol}', "");
-    Expect(0, 127999, '\P{Category=modifiersymbol}', "");
-    Expect(1, 127999, '\P{^Category=modifiersymbol}', "");
-    Expect(0, 128000, '\p{Category=modifiersymbol}', "");
-    Expect(1, 128000, '\p{^Category=modifiersymbol}', "");
-    Expect(1, 128000, '\P{Category=modifiersymbol}', "");
-    Expect(0, 128000, '\P{^Category=modifiersymbol}', "");
+    Expect(1, 127999, '\p{Category:	modifiersymbol}', "");
+    Expect(0, 127999, '\p{^Category:	modifiersymbol}', "");
+    Expect(0, 127999, '\P{Category:	modifiersymbol}', "");
+    Expect(1, 127999, '\P{^Category:	modifiersymbol}', "");
+    Expect(0, 128000, '\p{Category:	modifiersymbol}', "");
+    Expect(1, 128000, '\p{^Category:	modifiersymbol}', "");
+    Expect(1, 128000, '\P{Category:	modifiersymbol}', "");
+    Expect(0, 128000, '\P{^Category:	modifiersymbol}', "");
     Expect(1, 127999, '\p{Category=:\Amodifiersymbol\z:}', "");;
     Expect(0, 128000, '\p{Category=:\Amodifiersymbol\z:}', "");;
-    Expect(1, 127999, '\p{Category=	 Modifier_symbol}', "");
-    Expect(0, 127999, '\p{^Category=	 Modifier_symbol}', "");
-    Expect(0, 127999, '\P{Category=	 Modifier_symbol}', "");
-    Expect(1, 127999, '\P{^Category=	 Modifier_symbol}', "");
-    Expect(0, 128000, '\p{Category=	 Modifier_symbol}', "");
-    Expect(1, 128000, '\p{^Category=	 Modifier_symbol}', "");
-    Expect(1, 128000, '\P{Category=	 Modifier_symbol}', "");
-    Expect(0, 128000, '\P{^Category=	 Modifier_symbol}', "");
-    Error('\p{Is_General_Category:   :=sk}');
-    Error('\P{Is_General_Category:   :=sk}');
+    Expect(1, 127999, '\p{Category=_-modifier_Symbol}', "");
+    Expect(0, 127999, '\p{^Category=_-modifier_Symbol}', "");
+    Expect(0, 127999, '\P{Category=_-modifier_Symbol}', "");
+    Expect(1, 127999, '\P{^Category=_-modifier_Symbol}', "");
+    Expect(0, 128000, '\p{Category=_-modifier_Symbol}', "");
+    Expect(1, 128000, '\p{^Category=_-modifier_Symbol}', "");
+    Expect(1, 128000, '\P{Category=_-modifier_Symbol}', "");
+    Expect(0, 128000, '\P{^Category=_-modifier_Symbol}', "");
+    Error('\p{Is_General_Category=/a/ Sk}');
+    Error('\P{Is_General_Category=/a/ Sk}');
     Expect(1, 127999, '\p{Is_General_Category=sk}', "");
     Expect(0, 127999, '\p{^Is_General_Category=sk}', "");
     Expect(0, 127999, '\P{Is_General_Category=sk}', "");
@@ -42575,16 +43135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128000, '\p{^Is_General_Category=sk}', "");
     Expect(1, 128000, '\P{Is_General_Category=sk}', "");
     Expect(0, 128000, '\P{^Is_General_Category=sk}', "");
-    Expect(1, 127999, '\p{Is_General_Category=_Sk}', "");
-    Expect(0, 127999, '\p{^Is_General_Category=_Sk}', "");
-    Expect(0, 127999, '\P{Is_General_Category=_Sk}', "");
-    Expect(1, 127999, '\P{^Is_General_Category=_Sk}', "");
-    Expect(0, 128000, '\p{Is_General_Category=_Sk}', "");
-    Expect(1, 128000, '\p{^Is_General_Category=_Sk}', "");
-    Expect(1, 128000, '\P{Is_General_Category=_Sk}', "");
-    Expect(0, 128000, '\P{^Is_General_Category=_Sk}', "");
-    Error('\p{Is_Gc=	/a/Modifier_symbol}');
-    Error('\P{Is_Gc=	/a/Modifier_symbol}');
+    Expect(1, 127999, '\p{Is_General_Category= -SK}', "");
+    Expect(0, 127999, '\p{^Is_General_Category= -SK}', "");
+    Expect(0, 127999, '\P{Is_General_Category= -SK}', "");
+    Expect(1, 127999, '\P{^Is_General_Category= -SK}', "");
+    Expect(0, 128000, '\p{Is_General_Category= -SK}', "");
+    Expect(1, 128000, '\p{^Is_General_Category= -SK}', "");
+    Expect(1, 128000, '\P{Is_General_Category= -SK}', "");
+    Expect(0, 128000, '\P{^Is_General_Category= -SK}', "");
+    Error('\p{Is_Gc=_/a/MODIFIER_Symbol}');
+    Error('\P{Is_Gc=_/a/MODIFIER_Symbol}');
     Expect(1, 127999, '\p{Is_Gc=modifiersymbol}', "");
     Expect(0, 127999, '\p{^Is_Gc=modifiersymbol}', "");
     Expect(0, 127999, '\P{Is_Gc=modifiersymbol}', "");
@@ -42593,34 +43153,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128000, '\p{^Is_Gc=modifiersymbol}', "");
     Expect(1, 128000, '\P{Is_Gc=modifiersymbol}', "");
     Expect(0, 128000, '\P{^Is_Gc=modifiersymbol}', "");
-    Expect(1, 127999, '\p{Is_Gc=-Modifier_Symbol}', "");
-    Expect(0, 127999, '\p{^Is_Gc=-Modifier_Symbol}', "");
-    Expect(0, 127999, '\P{Is_Gc=-Modifier_Symbol}', "");
-    Expect(1, 127999, '\P{^Is_Gc=-Modifier_Symbol}', "");
-    Expect(0, 128000, '\p{Is_Gc=-Modifier_Symbol}', "");
-    Expect(1, 128000, '\p{^Is_Gc=-Modifier_Symbol}', "");
-    Expect(1, 128000, '\P{Is_Gc=-Modifier_Symbol}', "");
-    Expect(0, 128000, '\P{^Is_Gc=-Modifier_Symbol}', "");
-    Error('\p{Is_Category= :=Sk}');
-    Error('\P{Is_Category= :=Sk}');
-    Expect(1, 127999, '\p{Is_Category=sk}', "");
-    Expect(0, 127999, '\p{^Is_Category=sk}', "");
-    Expect(0, 127999, '\P{Is_Category=sk}', "");
-    Expect(1, 127999, '\P{^Is_Category=sk}', "");
-    Expect(0, 128000, '\p{Is_Category=sk}', "");
-    Expect(1, 128000, '\p{^Is_Category=sk}', "");
-    Expect(1, 128000, '\P{Is_Category=sk}', "");
-    Expect(0, 128000, '\P{^Is_Category=sk}', "");
-    Expect(1, 127999, '\p{Is_Category:  _sk}', "");
-    Expect(0, 127999, '\p{^Is_Category:  _sk}', "");
-    Expect(0, 127999, '\P{Is_Category:  _sk}', "");
-    Expect(1, 127999, '\P{^Is_Category:  _sk}', "");
-    Expect(0, 128000, '\p{Is_Category:  _sk}', "");
-    Expect(1, 128000, '\p{^Is_Category:  _sk}', "");
-    Expect(1, 128000, '\P{Is_Category:  _sk}', "");
-    Expect(0, 128000, '\P{^Is_Category:  _sk}', "");
-    Error('\p{General_Category= /a/MATH_Symbol}');
-    Error('\P{General_Category= /a/MATH_Symbol}');
+    Expect(1, 127999, '\p{Is_Gc=-modifier_SYMBOL}', "");
+    Expect(0, 127999, '\p{^Is_Gc=-modifier_SYMBOL}', "");
+    Expect(0, 127999, '\P{Is_Gc=-modifier_SYMBOL}', "");
+    Expect(1, 127999, '\P{^Is_Gc=-modifier_SYMBOL}', "");
+    Expect(0, 128000, '\p{Is_Gc=-modifier_SYMBOL}', "");
+    Expect(1, 128000, '\p{^Is_Gc=-modifier_SYMBOL}', "");
+    Expect(1, 128000, '\P{Is_Gc=-modifier_SYMBOL}', "");
+    Expect(0, 128000, '\P{^Is_Gc=-modifier_SYMBOL}', "");
+    Error('\p{Is_Category=/a/	sk}');
+    Error('\P{Is_Category=/a/	sk}');
+    Expect(1, 127999, '\p{Is_Category:sk}', "");
+    Expect(0, 127999, '\p{^Is_Category:sk}', "");
+    Expect(0, 127999, '\P{Is_Category:sk}', "");
+    Expect(1, 127999, '\P{^Is_Category:sk}', "");
+    Expect(0, 128000, '\p{Is_Category:sk}', "");
+    Expect(1, 128000, '\p{^Is_Category:sk}', "");
+    Expect(1, 128000, '\P{Is_Category:sk}', "");
+    Expect(0, 128000, '\P{^Is_Category:sk}', "");
+    Expect(1, 127999, '\p{Is_Category: 	 Sk}', "");
+    Expect(0, 127999, '\p{^Is_Category: 	 Sk}', "");
+    Expect(0, 127999, '\P{Is_Category: 	 Sk}', "");
+    Expect(1, 127999, '\P{^Is_Category: 	 Sk}', "");
+    Expect(0, 128000, '\p{Is_Category: 	 Sk}', "");
+    Expect(1, 128000, '\p{^Is_Category: 	 Sk}', "");
+    Expect(1, 128000, '\P{Is_Category: 	 Sk}', "");
+    Expect(0, 128000, '\P{^Is_Category: 	 Sk}', "");
+    Error('\p{General_Category=	_Math_Symbol:=}');
+    Error('\P{General_Category=	_Math_Symbol:=}');
     Expect(1, 126705, '\p{General_Category=:\AMath_Symbol\z:}', "");;
     Expect(0, 126706, '\p{General_Category=:\AMath_Symbol\z:}', "");;
     Expect(1, 126705, '\p{General_Category=mathsymbol}', "");
@@ -42633,16 +43193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126706, '\P{^General_Category=mathsymbol}', "");
     Expect(1, 126705, '\p{General_Category=:\Amathsymbol\z:}', "");;
     Expect(0, 126706, '\p{General_Category=:\Amathsymbol\z:}', "");;
-    Expect(1, 126705, '\p{General_Category: __math_Symbol}', "");
-    Expect(0, 126705, '\p{^General_Category: __math_Symbol}', "");
-    Expect(0, 126705, '\P{General_Category: __math_Symbol}', "");
-    Expect(1, 126705, '\P{^General_Category: __math_Symbol}', "");
-    Expect(0, 126706, '\p{General_Category: __math_Symbol}', "");
-    Expect(1, 126706, '\p{^General_Category: __math_Symbol}', "");
-    Expect(1, 126706, '\P{General_Category: __math_Symbol}', "");
-    Expect(0, 126706, '\P{^General_Category: __math_Symbol}', "");
-    Error('\p{Gc=/a/--Sm}');
-    Error('\P{Gc=/a/--Sm}');
+    Expect(1, 126705, '\p{General_Category=-_math_SYMBOL}', "");
+    Expect(0, 126705, '\p{^General_Category=-_math_SYMBOL}', "");
+    Expect(0, 126705, '\P{General_Category=-_math_SYMBOL}', "");
+    Expect(1, 126705, '\P{^General_Category=-_math_SYMBOL}', "");
+    Expect(0, 126706, '\p{General_Category=-_math_SYMBOL}', "");
+    Expect(1, 126706, '\p{^General_Category=-_math_SYMBOL}', "");
+    Expect(1, 126706, '\P{General_Category=-_math_SYMBOL}', "");
+    Expect(0, 126706, '\P{^General_Category=-_math_SYMBOL}', "");
+    Error('\p{Gc=-SM/a/}');
+    Error('\P{Gc=-SM/a/}');
     Expect(1, 126705, '\p{Gc=:\ASm\z:}', "");;
     Expect(0, 126706, '\p{Gc=:\ASm\z:}', "");;
     Expect(1, 126705, '\p{Gc=sm}', "");
@@ -42655,16 +43215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126706, '\P{^Gc=sm}', "");
     Expect(1, 126705, '\p{Gc=:\Asm\z:}', "");;
     Expect(0, 126706, '\p{Gc=:\Asm\z:}', "");;
-    Expect(1, 126705, '\p{Gc=	sm}', "");
-    Expect(0, 126705, '\p{^Gc=	sm}', "");
-    Expect(0, 126705, '\P{Gc=	sm}', "");
-    Expect(1, 126705, '\P{^Gc=	sm}', "");
-    Expect(0, 126706, '\p{Gc=	sm}', "");
-    Expect(1, 126706, '\p{^Gc=	sm}', "");
-    Expect(1, 126706, '\P{Gc=	sm}', "");
-    Expect(0, 126706, '\P{^Gc=	sm}', "");
-    Error('\p{Category=/a/	-MATH_Symbol}');
-    Error('\P{Category=/a/	-MATH_Symbol}');
+    Expect(1, 126705, '\p{Gc=- Sm}', "");
+    Expect(0, 126705, '\p{^Gc=- Sm}', "");
+    Expect(0, 126705, '\P{Gc=- Sm}', "");
+    Expect(1, 126705, '\P{^Gc=- Sm}', "");
+    Expect(0, 126706, '\p{Gc=- Sm}', "");
+    Expect(1, 126706, '\p{^Gc=- Sm}', "");
+    Expect(1, 126706, '\P{Gc=- Sm}', "");
+    Expect(0, 126706, '\P{^Gc=- Sm}', "");
+    Error('\p{Category=:=		MATH_SYMBOL}');
+    Error('\P{Category=:=		MATH_SYMBOL}');
     Expect(1, 126705, '\p{Category=:\AMath_Symbol\z:}', "");;
     Expect(0, 126706, '\p{Category=:\AMath_Symbol\z:}', "");;
     Expect(1, 126705, '\p{Category=mathsymbol}', "");
@@ -42677,16 +43237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126706, '\P{^Category=mathsymbol}', "");
     Expect(1, 126705, '\p{Category=:\Amathsymbol\z:}', "");;
     Expect(0, 126706, '\p{Category=:\Amathsymbol\z:}', "");;
-    Expect(1, 126705, '\p{Category:   _MATH_Symbol}', "");
-    Expect(0, 126705, '\p{^Category:   _MATH_Symbol}', "");
-    Expect(0, 126705, '\P{Category:   _MATH_Symbol}', "");
-    Expect(1, 126705, '\P{^Category:   _MATH_Symbol}', "");
-    Expect(0, 126706, '\p{Category:   _MATH_Symbol}', "");
-    Expect(1, 126706, '\p{^Category:   _MATH_Symbol}', "");
-    Expect(1, 126706, '\P{Category:   _MATH_Symbol}', "");
-    Expect(0, 126706, '\P{^Category:   _MATH_Symbol}', "");
-    Error('\p{Is_General_Category=:=SM}');
-    Error('\P{Is_General_Category=:=SM}');
+    Expect(1, 126705, '\p{Category=  math_Symbol}', "");
+    Expect(0, 126705, '\p{^Category=  math_Symbol}', "");
+    Expect(0, 126705, '\P{Category=  math_Symbol}', "");
+    Expect(1, 126705, '\P{^Category=  math_Symbol}', "");
+    Expect(0, 126706, '\p{Category=  math_Symbol}', "");
+    Expect(1, 126706, '\p{^Category=  math_Symbol}', "");
+    Expect(1, 126706, '\P{Category=  math_Symbol}', "");
+    Expect(0, 126706, '\P{^Category=  math_Symbol}', "");
+    Error('\p{Is_General_Category=-_Sm:=}');
+    Error('\P{Is_General_Category=-_Sm:=}');
     Expect(1, 126705, '\p{Is_General_Category=sm}', "");
     Expect(0, 126705, '\p{^Is_General_Category=sm}', "");
     Expect(0, 126705, '\P{Is_General_Category=sm}', "");
@@ -42695,52 +43255,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126706, '\p{^Is_General_Category=sm}', "");
     Expect(1, 126706, '\P{Is_General_Category=sm}', "");
     Expect(0, 126706, '\P{^Is_General_Category=sm}', "");
-    Expect(1, 126705, '\p{Is_General_Category=	-SM}', "");
-    Expect(0, 126705, '\p{^Is_General_Category=	-SM}', "");
-    Expect(0, 126705, '\P{Is_General_Category=	-SM}', "");
-    Expect(1, 126705, '\P{^Is_General_Category=	-SM}', "");
-    Expect(0, 126706, '\p{Is_General_Category=	-SM}', "");
-    Expect(1, 126706, '\p{^Is_General_Category=	-SM}', "");
-    Expect(1, 126706, '\P{Is_General_Category=	-SM}', "");
-    Expect(0, 126706, '\P{^Is_General_Category=	-SM}', "");
-    Error('\p{Is_Gc=:=_ Math_Symbol}');
-    Error('\P{Is_Gc=:=_ Math_Symbol}');
-    Expect(1, 126705, '\p{Is_Gc=mathsymbol}', "");
-    Expect(0, 126705, '\p{^Is_Gc=mathsymbol}', "");
-    Expect(0, 126705, '\P{Is_Gc=mathsymbol}', "");
-    Expect(1, 126705, '\P{^Is_Gc=mathsymbol}', "");
-    Expect(0, 126706, '\p{Is_Gc=mathsymbol}', "");
-    Expect(1, 126706, '\p{^Is_Gc=mathsymbol}', "");
-    Expect(1, 126706, '\P{Is_Gc=mathsymbol}', "");
-    Expect(0, 126706, '\P{^Is_Gc=mathsymbol}', "");
-    Expect(1, 126705, '\p{Is_Gc=-Math_symbol}', "");
-    Expect(0, 126705, '\p{^Is_Gc=-Math_symbol}', "");
-    Expect(0, 126705, '\P{Is_Gc=-Math_symbol}', "");
-    Expect(1, 126705, '\P{^Is_Gc=-Math_symbol}', "");
-    Expect(0, 126706, '\p{Is_Gc=-Math_symbol}', "");
-    Expect(1, 126706, '\p{^Is_Gc=-Math_symbol}', "");
-    Expect(1, 126706, '\P{Is_Gc=-Math_symbol}', "");
-    Expect(0, 126706, '\P{^Is_Gc=-Math_symbol}', "");
-    Error('\p{Is_Category=- sm/a/}');
-    Error('\P{Is_Category=- sm/a/}');
-    Expect(1, 126705, '\p{Is_Category=sm}', "");
-    Expect(0, 126705, '\p{^Is_Category=sm}', "");
-    Expect(0, 126705, '\P{Is_Category=sm}', "");
-    Expect(1, 126705, '\P{^Is_Category=sm}', "");
-    Expect(0, 126706, '\p{Is_Category=sm}', "");
-    Expect(1, 126706, '\p{^Is_Category=sm}', "");
-    Expect(1, 126706, '\P{Is_Category=sm}', "");
-    Expect(0, 126706, '\P{^Is_Category=sm}', "");
-    Expect(1, 126705, '\p{Is_Category= -sm}', "");
-    Expect(0, 126705, '\p{^Is_Category= -sm}', "");
-    Expect(0, 126705, '\P{Is_Category= -sm}', "");
-    Expect(1, 126705, '\P{^Is_Category= -sm}', "");
-    Expect(0, 126706, '\p{Is_Category= -sm}', "");
-    Expect(1, 126706, '\p{^Is_Category= -sm}', "");
-    Expect(1, 126706, '\P{Is_Category= -sm}', "");
-    Expect(0, 126706, '\P{^Is_Category= -sm}', "");
-    Error('\p{General_Category=	 other_Symbol:=}');
-    Error('\P{General_Category=	 other_Symbol:=}');
+    Expect(1, 126705, '\p{Is_General_Category=	_sm}', "");
+    Expect(0, 126705, '\p{^Is_General_Category=	_sm}', "");
+    Expect(0, 126705, '\P{Is_General_Category=	_sm}', "");
+    Expect(1, 126705, '\P{^Is_General_Category=	_sm}', "");
+    Expect(0, 126706, '\p{Is_General_Category=	_sm}', "");
+    Expect(1, 126706, '\p{^Is_General_Category=	_sm}', "");
+    Expect(1, 126706, '\P{Is_General_Category=	_sm}', "");
+    Expect(0, 126706, '\P{^Is_General_Category=	_sm}', "");
+    Error('\p{Is_Gc=	/a/math_Symbol}');
+    Error('\P{Is_Gc=	/a/math_Symbol}');
+    Expect(1, 126705, '\p{Is_Gc:	mathsymbol}', "");
+    Expect(0, 126705, '\p{^Is_Gc:	mathsymbol}', "");
+    Expect(0, 126705, '\P{Is_Gc:	mathsymbol}', "");
+    Expect(1, 126705, '\P{^Is_Gc:	mathsymbol}', "");
+    Expect(0, 126706, '\p{Is_Gc:	mathsymbol}', "");
+    Expect(1, 126706, '\p{^Is_Gc:	mathsymbol}', "");
+    Expect(1, 126706, '\P{Is_Gc:	mathsymbol}', "");
+    Expect(0, 126706, '\P{^Is_Gc:	mathsymbol}', "");
+    Expect(1, 126705, '\p{Is_Gc=	-math_Symbol}', "");
+    Expect(0, 126705, '\p{^Is_Gc=	-math_Symbol}', "");
+    Expect(0, 126705, '\P{Is_Gc=	-math_Symbol}', "");
+    Expect(1, 126705, '\P{^Is_Gc=	-math_Symbol}', "");
+    Expect(0, 126706, '\p{Is_Gc=	-math_Symbol}', "");
+    Expect(1, 126706, '\p{^Is_Gc=	-math_Symbol}', "");
+    Expect(1, 126706, '\P{Is_Gc=	-math_Symbol}', "");
+    Expect(0, 126706, '\P{^Is_Gc=	-math_Symbol}', "");
+    Error('\p{Is_Category= /a/SM}');
+    Error('\P{Is_Category= /a/SM}');
+    Expect(1, 126705, '\p{Is_Category:   sm}', "");
+    Expect(0, 126705, '\p{^Is_Category:   sm}', "");
+    Expect(0, 126705, '\P{Is_Category:   sm}', "");
+    Expect(1, 126705, '\P{^Is_Category:   sm}', "");
+    Expect(0, 126706, '\p{Is_Category:   sm}', "");
+    Expect(1, 126706, '\p{^Is_Category:   sm}', "");
+    Expect(1, 126706, '\P{Is_Category:   sm}', "");
+    Expect(0, 126706, '\P{^Is_Category:   sm}', "");
+    Expect(1, 126705, '\p{Is_Category=-sm}', "");
+    Expect(0, 126705, '\p{^Is_Category=-sm}', "");
+    Expect(0, 126705, '\P{Is_Category=-sm}', "");
+    Expect(1, 126705, '\P{^Is_Category=-sm}', "");
+    Expect(0, 126706, '\p{Is_Category=-sm}', "");
+    Expect(1, 126706, '\p{^Is_Category=-sm}', "");
+    Expect(1, 126706, '\P{Is_Category=-sm}', "");
+    Expect(0, 126706, '\P{^Is_Category=-sm}', "");
+    Error('\p{General_Category=:=	-other_symbol}');
+    Error('\P{General_Category=:=	-other_symbol}');
     Expect(1, 129994, '\p{General_Category=:\AOther_Symbol\z:}', "");;
     Expect(0, 129995, '\p{General_Category=:\AOther_Symbol\z:}', "");;
     Expect(1, 129994, '\p{General_Category=othersymbol}', "");
@@ -42753,16 +43313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^General_Category=othersymbol}', "");
     Expect(1, 129994, '\p{General_Category=:\Aothersymbol\z:}', "");;
     Expect(0, 129995, '\p{General_Category=:\Aothersymbol\z:}', "");;
-    Expect(1, 129994, '\p{General_Category=	_other_Symbol}', "");
-    Expect(0, 129994, '\p{^General_Category=	_other_Symbol}', "");
-    Expect(0, 129994, '\P{General_Category=	_other_Symbol}', "");
-    Expect(1, 129994, '\P{^General_Category=	_other_Symbol}', "");
-    Expect(0, 129995, '\p{General_Category=	_other_Symbol}', "");
-    Expect(1, 129995, '\p{^General_Category=	_other_Symbol}', "");
-    Expect(1, 129995, '\P{General_Category=	_other_Symbol}', "");
-    Expect(0, 129995, '\P{^General_Category=	_other_Symbol}', "");
-    Error('\p{Gc: /a/_ SO}');
-    Error('\P{Gc: /a/_ SO}');
+    Expect(1, 129994, '\p{General_Category=- other_Symbol}', "");
+    Expect(0, 129994, '\p{^General_Category=- other_Symbol}', "");
+    Expect(0, 129994, '\P{General_Category=- other_Symbol}', "");
+    Expect(1, 129994, '\P{^General_Category=- other_Symbol}', "");
+    Expect(0, 129995, '\p{General_Category=- other_Symbol}', "");
+    Expect(1, 129995, '\p{^General_Category=- other_Symbol}', "");
+    Expect(1, 129995, '\P{General_Category=- other_Symbol}', "");
+    Expect(0, 129995, '\P{^General_Category=- other_Symbol}', "");
+    Error('\p{Gc=-/a/SO}');
+    Error('\P{Gc=-/a/SO}');
     Expect(1, 129994, '\p{Gc=:\ASo\z:}', "");;
     Expect(0, 129995, '\p{Gc=:\ASo\z:}', "");;
     Expect(1, 129994, '\p{Gc=so}', "");
@@ -42775,16 +43335,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^Gc=so}', "");
     Expect(1, 129994, '\p{Gc=:\Aso\z:}', "");;
     Expect(0, 129995, '\p{Gc=:\Aso\z:}', "");;
-    Expect(1, 129994, '\p{Gc=--so}', "");
-    Expect(0, 129994, '\p{^Gc=--so}', "");
-    Expect(0, 129994, '\P{Gc=--so}', "");
-    Expect(1, 129994, '\P{^Gc=--so}', "");
-    Expect(0, 129995, '\p{Gc=--so}', "");
-    Expect(1, 129995, '\p{^Gc=--so}', "");
-    Expect(1, 129995, '\P{Gc=--so}', "");
-    Expect(0, 129995, '\P{^Gc=--so}', "");
-    Error('\p{Category=_/a/other_symbol}');
-    Error('\P{Category=_/a/other_symbol}');
+    Expect(1, 129994, '\p{Gc=	SO}', "");
+    Expect(0, 129994, '\p{^Gc=	SO}', "");
+    Expect(0, 129994, '\P{Gc=	SO}', "");
+    Expect(1, 129994, '\P{^Gc=	SO}', "");
+    Expect(0, 129995, '\p{Gc=	SO}', "");
+    Expect(1, 129995, '\p{^Gc=	SO}', "");
+    Expect(1, 129995, '\P{Gc=	SO}', "");
+    Expect(0, 129995, '\P{^Gc=	SO}', "");
+    Error('\p{Category=:=	OTHER_symbol}');
+    Error('\P{Category=:=	OTHER_symbol}');
     Expect(1, 129994, '\p{Category=:\AOther_Symbol\z:}', "");;
     Expect(0, 129995, '\p{Category=:\AOther_Symbol\z:}', "");;
     Expect(1, 129994, '\p{Category=othersymbol}', "");
@@ -42797,16 +43357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^Category=othersymbol}', "");
     Expect(1, 129994, '\p{Category=:\Aothersymbol\z:}', "");;
     Expect(0, 129995, '\p{Category=:\Aothersymbol\z:}', "");;
-    Expect(1, 129994, '\p{Category=	Other_SYMBOL}', "");
-    Expect(0, 129994, '\p{^Category=	Other_SYMBOL}', "");
-    Expect(0, 129994, '\P{Category=	Other_SYMBOL}', "");
-    Expect(1, 129994, '\P{^Category=	Other_SYMBOL}', "");
-    Expect(0, 129995, '\p{Category=	Other_SYMBOL}', "");
-    Expect(1, 129995, '\p{^Category=	Other_SYMBOL}', "");
-    Expect(1, 129995, '\P{Category=	Other_SYMBOL}', "");
-    Expect(0, 129995, '\P{^Category=	Other_SYMBOL}', "");
-    Error('\p{Is_General_Category=-:=so}');
-    Error('\P{Is_General_Category=-:=so}');
+    Expect(1, 129994, '\p{Category= Other_Symbol}', "");
+    Expect(0, 129994, '\p{^Category= Other_Symbol}', "");
+    Expect(0, 129994, '\P{Category= Other_Symbol}', "");
+    Expect(1, 129994, '\P{^Category= Other_Symbol}', "");
+    Expect(0, 129995, '\p{Category= Other_Symbol}', "");
+    Expect(1, 129995, '\p{^Category= Other_Symbol}', "");
+    Expect(1, 129995, '\P{Category= Other_Symbol}', "");
+    Expect(0, 129995, '\P{^Category= Other_Symbol}', "");
+    Error('\p{Is_General_Category=/a/So}');
+    Error('\P{Is_General_Category=/a/So}');
     Expect(1, 129994, '\p{Is_General_Category=so}', "");
     Expect(0, 129994, '\p{^Is_General_Category=so}', "");
     Expect(0, 129994, '\P{Is_General_Category=so}', "");
@@ -42815,16 +43375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_General_Category=so}', "");
     Expect(1, 129995, '\P{Is_General_Category=so}', "");
     Expect(0, 129995, '\P{^Is_General_Category=so}', "");
-    Expect(1, 129994, '\p{Is_General_Category=-so}', "");
-    Expect(0, 129994, '\p{^Is_General_Category=-so}', "");
-    Expect(0, 129994, '\P{Is_General_Category=-so}', "");
-    Expect(1, 129994, '\P{^Is_General_Category=-so}', "");
-    Expect(0, 129995, '\p{Is_General_Category=-so}', "");
-    Expect(1, 129995, '\p{^Is_General_Category=-so}', "");
-    Expect(1, 129995, '\P{Is_General_Category=-so}', "");
-    Expect(0, 129995, '\P{^Is_General_Category=-so}', "");
-    Error('\p{Is_Gc=__OTHER_SYMBOL:=}');
-    Error('\P{Is_Gc=__OTHER_SYMBOL:=}');
+    Expect(1, 129994, '\p{Is_General_Category:    	SO}', "");
+    Expect(0, 129994, '\p{^Is_General_Category:    	SO}', "");
+    Expect(0, 129994, '\P{Is_General_Category:    	SO}', "");
+    Expect(1, 129994, '\P{^Is_General_Category:    	SO}', "");
+    Expect(0, 129995, '\p{Is_General_Category:    	SO}', "");
+    Expect(1, 129995, '\p{^Is_General_Category:    	SO}', "");
+    Expect(1, 129995, '\P{Is_General_Category:    	SO}', "");
+    Expect(0, 129995, '\P{^Is_General_Category:    	SO}', "");
+    Error('\p{Is_Gc=:=_OTHER_SYMBOL}');
+    Error('\P{Is_Gc=:=_OTHER_SYMBOL}');
     Expect(1, 129994, '\p{Is_Gc=othersymbol}', "");
     Expect(0, 129994, '\p{^Is_Gc=othersymbol}', "");
     Expect(0, 129994, '\P{Is_Gc=othersymbol}', "");
@@ -42833,16 +43393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Gc=othersymbol}', "");
     Expect(1, 129995, '\P{Is_Gc=othersymbol}', "");
     Expect(0, 129995, '\P{^Is_Gc=othersymbol}', "");
-    Expect(1, 129994, '\p{Is_Gc=	other_symbol}', "");
-    Expect(0, 129994, '\p{^Is_Gc=	other_symbol}', "");
-    Expect(0, 129994, '\P{Is_Gc=	other_symbol}', "");
-    Expect(1, 129994, '\P{^Is_Gc=	other_symbol}', "");
-    Expect(0, 129995, '\p{Is_Gc=	other_symbol}', "");
-    Expect(1, 129995, '\p{^Is_Gc=	other_symbol}', "");
-    Expect(1, 129995, '\P{Is_Gc=	other_symbol}', "");
-    Expect(0, 129995, '\P{^Is_Gc=	other_symbol}', "");
-    Error('\p{Is_Category=_/a/So}');
-    Error('\P{Is_Category=_/a/So}');
+    Expect(1, 129994, '\p{Is_Gc=	-Other_Symbol}', "");
+    Expect(0, 129994, '\p{^Is_Gc=	-Other_Symbol}', "");
+    Expect(0, 129994, '\P{Is_Gc=	-Other_Symbol}', "");
+    Expect(1, 129994, '\P{^Is_Gc=	-Other_Symbol}', "");
+    Expect(0, 129995, '\p{Is_Gc=	-Other_Symbol}', "");
+    Expect(1, 129995, '\p{^Is_Gc=	-Other_Symbol}', "");
+    Expect(1, 129995, '\P{Is_Gc=	-Other_Symbol}', "");
+    Expect(0, 129995, '\P{^Is_Gc=	-Other_Symbol}', "");
+    Error('\p{Is_Category=/a/	-so}');
+    Error('\P{Is_Category=/a/	-so}');
     Expect(1, 129994, '\p{Is_Category=so}', "");
     Expect(0, 129994, '\p{^Is_Category=so}', "");
     Expect(0, 129994, '\P{Is_Category=so}', "");
@@ -42851,16 +43411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Category=so}', "");
     Expect(1, 129995, '\P{Is_Category=so}', "");
     Expect(0, 129995, '\P{^Is_Category=so}', "");
-    Expect(1, 129994, '\p{Is_Category=	So}', "");
-    Expect(0, 129994, '\p{^Is_Category=	So}', "");
-    Expect(0, 129994, '\P{Is_Category=	So}', "");
-    Expect(1, 129994, '\P{^Is_Category=	So}', "");
-    Expect(0, 129995, '\p{Is_Category=	So}', "");
-    Expect(1, 129995, '\p{^Is_Category=	So}', "");
-    Expect(1, 129995, '\P{Is_Category=	So}', "");
-    Expect(0, 129995, '\P{^Is_Category=	So}', "");
-    Error('\p{General_Category=/a/separator}');
-    Error('\P{General_Category=/a/separator}');
+    Expect(1, 129994, '\p{Is_Category=_	so}', "");
+    Expect(0, 129994, '\p{^Is_Category=_	so}', "");
+    Expect(0, 129994, '\P{Is_Category=_	so}', "");
+    Expect(1, 129994, '\P{^Is_Category=_	so}', "");
+    Expect(0, 129995, '\p{Is_Category=_	so}', "");
+    Expect(1, 129995, '\p{^Is_Category=_	so}', "");
+    Expect(1, 129995, '\P{Is_Category=_	so}', "");
+    Expect(0, 129995, '\P{^Is_Category=_	so}', "");
+    Error('\p{General_Category=_Separator/a/}');
+    Error('\P{General_Category=_Separator/a/}');
     Expect(1, 12288, '\p{General_Category=:\ASeparator\z:}', "");;
     Expect(0, 12289, '\p{General_Category=:\ASeparator\z:}', "");;
     Expect(1, 12288, '\p{General_Category=separator}', "");
@@ -42873,16 +43433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12289, '\P{^General_Category=separator}', "");
     Expect(1, 12288, '\p{General_Category=:\Aseparator\z:}', "");;
     Expect(0, 12289, '\p{General_Category=:\Aseparator\z:}', "");;
-    Expect(1, 12288, '\p{General_Category=	-Separator}', "");
-    Expect(0, 12288, '\p{^General_Category=	-Separator}', "");
-    Expect(0, 12288, '\P{General_Category=	-Separator}', "");
-    Expect(1, 12288, '\P{^General_Category=	-Separator}', "");
-    Expect(0, 12289, '\p{General_Category=	-Separator}', "");
-    Expect(1, 12289, '\p{^General_Category=	-Separator}', "");
-    Expect(1, 12289, '\P{General_Category=	-Separator}', "");
-    Expect(0, 12289, '\P{^General_Category=	-Separator}', "");
-    Error('\p{Gc=/a/z}');
-    Error('\P{Gc=/a/z}');
+    Expect(1, 12288, '\p{General_Category=- SEPARATOR}', "");
+    Expect(0, 12288, '\p{^General_Category=- SEPARATOR}', "");
+    Expect(0, 12288, '\P{General_Category=- SEPARATOR}', "");
+    Expect(1, 12288, '\P{^General_Category=- SEPARATOR}', "");
+    Expect(0, 12289, '\p{General_Category=- SEPARATOR}', "");
+    Expect(1, 12289, '\p{^General_Category=- SEPARATOR}', "");
+    Expect(1, 12289, '\P{General_Category=- SEPARATOR}', "");
+    Expect(0, 12289, '\P{^General_Category=- SEPARATOR}', "");
+    Error('\p{Gc:   :=z}');
+    Error('\P{Gc:   :=z}');
     Expect(1, 12288, '\p{Gc=:\AZ\z:}', "");;
     Expect(0, 12289, '\p{Gc=:\AZ\z:}', "");;
     Expect(1, 12288, '\p{Gc=z}', "");
@@ -42895,16 +43455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12289, '\P{^Gc=z}', "");
     Expect(1, 12288, '\p{Gc=:\Az\z:}', "");;
     Expect(0, 12289, '\p{Gc=:\Az\z:}', "");;
-    Expect(1, 12288, '\p{Gc=__Z}', "");
-    Expect(0, 12288, '\p{^Gc=__Z}', "");
-    Expect(0, 12288, '\P{Gc=__Z}', "");
-    Expect(1, 12288, '\P{^Gc=__Z}', "");
-    Expect(0, 12289, '\p{Gc=__Z}', "");
-    Expect(1, 12289, '\p{^Gc=__Z}', "");
-    Expect(1, 12289, '\P{Gc=__Z}', "");
-    Expect(0, 12289, '\P{^Gc=__Z}', "");
-    Error('\p{Category=-Separator:=}');
-    Error('\P{Category=-Separator:=}');
+    Expect(1, 12288, '\p{Gc=	 z}', "");
+    Expect(0, 12288, '\p{^Gc=	 z}', "");
+    Expect(0, 12288, '\P{Gc=	 z}', "");
+    Expect(1, 12288, '\P{^Gc=	 z}', "");
+    Expect(0, 12289, '\p{Gc=	 z}', "");
+    Expect(1, 12289, '\p{^Gc=	 z}', "");
+    Expect(1, 12289, '\P{Gc=	 z}', "");
+    Expect(0, 12289, '\P{^Gc=	 z}', "");
+    Error('\p{Category:   -Separator/a/}');
+    Error('\P{Category:   -Separator/a/}');
     Expect(1, 12288, '\p{Category=:\ASeparator\z:}', "");;
     Expect(0, 12289, '\p{Category=:\ASeparator\z:}', "");;
     Expect(1, 12288, '\p{Category=separator}', "");
@@ -42917,16 +43477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12289, '\P{^Category=separator}', "");
     Expect(1, 12288, '\p{Category=:\Aseparator\z:}', "");;
     Expect(0, 12289, '\p{Category=:\Aseparator\z:}', "");;
-    Expect(1, 12288, '\p{Category=  Separator}', "");
-    Expect(0, 12288, '\p{^Category=  Separator}', "");
-    Expect(0, 12288, '\P{Category=  Separator}', "");
-    Expect(1, 12288, '\P{^Category=  Separator}', "");
-    Expect(0, 12289, '\p{Category=  Separator}', "");
-    Expect(1, 12289, '\p{^Category=  Separator}', "");
-    Expect(1, 12289, '\P{Category=  Separator}', "");
-    Expect(0, 12289, '\P{^Category=  Separator}', "");
-    Error('\p{Is_General_Category:	 :=Z}');
-    Error('\P{Is_General_Category:	 :=Z}');
+    Expect(1, 12288, '\p{Category=	 SEPARATOR}', "");
+    Expect(0, 12288, '\p{^Category=	 SEPARATOR}', "");
+    Expect(0, 12288, '\P{Category=	 SEPARATOR}', "");
+    Expect(1, 12288, '\P{^Category=	 SEPARATOR}', "");
+    Expect(0, 12289, '\p{Category=	 SEPARATOR}', "");
+    Expect(1, 12289, '\p{^Category=	 SEPARATOR}', "");
+    Expect(1, 12289, '\P{Category=	 SEPARATOR}', "");
+    Expect(0, 12289, '\P{^Category=	 SEPARATOR}', "");
+    Error('\p{Is_General_Category:	/a/-	z}');
+    Error('\P{Is_General_Category:	/a/-	z}');
     Expect(1, 12288, '\p{Is_General_Category=z}', "");
     Expect(0, 12288, '\p{^Is_General_Category=z}', "");
     Expect(0, 12288, '\P{Is_General_Category=z}', "");
@@ -42935,34 +43495,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12289, '\p{^Is_General_Category=z}', "");
     Expect(1, 12289, '\P{Is_General_Category=z}', "");
     Expect(0, 12289, '\P{^Is_General_Category=z}', "");
-    Expect(1, 12288, '\p{Is_General_Category=--Z}', "");
-    Expect(0, 12288, '\p{^Is_General_Category=--Z}', "");
-    Expect(0, 12288, '\P{Is_General_Category=--Z}', "");
-    Expect(1, 12288, '\P{^Is_General_Category=--Z}', "");
-    Expect(0, 12289, '\p{Is_General_Category=--Z}', "");
-    Expect(1, 12289, '\p{^Is_General_Category=--Z}', "");
-    Expect(1, 12289, '\P{Is_General_Category=--Z}', "");
-    Expect(0, 12289, '\P{^Is_General_Category=--Z}', "");
-    Error('\p{Is_Gc=_	Separator:=}');
-    Error('\P{Is_Gc=_	Separator:=}');
-    Expect(1, 12288, '\p{Is_Gc: separator}', "");
-    Expect(0, 12288, '\p{^Is_Gc: separator}', "");
-    Expect(0, 12288, '\P{Is_Gc: separator}', "");
-    Expect(1, 12288, '\P{^Is_Gc: separator}', "");
-    Expect(0, 12289, '\p{Is_Gc: separator}', "");
-    Expect(1, 12289, '\p{^Is_Gc: separator}', "");
-    Expect(1, 12289, '\P{Is_Gc: separator}', "");
-    Expect(0, 12289, '\P{^Is_Gc: separator}', "");
-    Expect(1, 12288, '\p{Is_Gc:_Separator}', "");
-    Expect(0, 12288, '\p{^Is_Gc:_Separator}', "");
-    Expect(0, 12288, '\P{Is_Gc:_Separator}', "");
-    Expect(1, 12288, '\P{^Is_Gc:_Separator}', "");
-    Expect(0, 12289, '\p{Is_Gc:_Separator}', "");
-    Expect(1, 12289, '\p{^Is_Gc:_Separator}', "");
-    Expect(1, 12289, '\P{Is_Gc:_Separator}', "");
-    Expect(0, 12289, '\P{^Is_Gc:_Separator}', "");
-    Error('\p{Is_Category=	:=Z}');
-    Error('\P{Is_Category=	:=Z}');
+    Expect(1, 12288, '\p{Is_General_Category=	-Z}', "");
+    Expect(0, 12288, '\p{^Is_General_Category=	-Z}', "");
+    Expect(0, 12288, '\P{Is_General_Category=	-Z}', "");
+    Expect(1, 12288, '\P{^Is_General_Category=	-Z}', "");
+    Expect(0, 12289, '\p{Is_General_Category=	-Z}', "");
+    Expect(1, 12289, '\p{^Is_General_Category=	-Z}', "");
+    Expect(1, 12289, '\P{Is_General_Category=	-Z}', "");
+    Expect(0, 12289, '\P{^Is_General_Category=	-Z}', "");
+    Error('\p{Is_Gc=_:=Separator}');
+    Error('\P{Is_Gc=_:=Separator}');
+    Expect(1, 12288, '\p{Is_Gc=separator}', "");
+    Expect(0, 12288, '\p{^Is_Gc=separator}', "");
+    Expect(0, 12288, '\P{Is_Gc=separator}', "");
+    Expect(1, 12288, '\P{^Is_Gc=separator}', "");
+    Expect(0, 12289, '\p{Is_Gc=separator}', "");
+    Expect(1, 12289, '\p{^Is_Gc=separator}', "");
+    Expect(1, 12289, '\P{Is_Gc=separator}', "");
+    Expect(0, 12289, '\P{^Is_Gc=separator}', "");
+    Expect(1, 12288, '\p{Is_Gc=	separator}', "");
+    Expect(0, 12288, '\p{^Is_Gc=	separator}', "");
+    Expect(0, 12288, '\P{Is_Gc=	separator}', "");
+    Expect(1, 12288, '\P{^Is_Gc=	separator}', "");
+    Expect(0, 12289, '\p{Is_Gc=	separator}', "");
+    Expect(1, 12289, '\p{^Is_Gc=	separator}', "");
+    Expect(1, 12289, '\P{Is_Gc=	separator}', "");
+    Expect(0, 12289, '\P{^Is_Gc=	separator}', "");
+    Error('\p{Is_Category:	 :=Z}');
+    Error('\P{Is_Category:	 :=Z}');
     Expect(1, 12288, '\p{Is_Category=z}', "");
     Expect(0, 12288, '\p{^Is_Category=z}', "");
     Expect(0, 12288, '\P{Is_Category=z}', "");
@@ -42971,16 +43531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12289, '\p{^Is_Category=z}', "");
     Expect(1, 12289, '\P{Is_Category=z}', "");
     Expect(0, 12289, '\P{^Is_Category=z}', "");
-    Expect(1, 12288, '\p{Is_Category= Z}', "");
-    Expect(0, 12288, '\p{^Is_Category= Z}', "");
-    Expect(0, 12288, '\P{Is_Category= Z}', "");
-    Expect(1, 12288, '\P{^Is_Category= Z}', "");
-    Expect(0, 12289, '\p{Is_Category= Z}', "");
-    Expect(1, 12289, '\p{^Is_Category= Z}', "");
-    Expect(1, 12289, '\P{Is_Category= Z}', "");
-    Expect(0, 12289, '\P{^Is_Category= Z}', "");
-    Error('\p{General_Category=_ line_Separator:=}');
-    Error('\P{General_Category=_ line_Separator:=}');
+    Expect(1, 12288, '\p{Is_Category=-	Z}', "");
+    Expect(0, 12288, '\p{^Is_Category=-	Z}', "");
+    Expect(0, 12288, '\P{Is_Category=-	Z}', "");
+    Expect(1, 12288, '\P{^Is_Category=-	Z}', "");
+    Expect(0, 12289, '\p{Is_Category=-	Z}', "");
+    Expect(1, 12289, '\p{^Is_Category=-	Z}', "");
+    Expect(1, 12289, '\P{Is_Category=-	Z}', "");
+    Expect(0, 12289, '\P{^Is_Category=-	Z}', "");
+    Error('\p{General_Category=_LINE_SEPARATOR:=}');
+    Error('\P{General_Category=_LINE_SEPARATOR:=}');
     Expect(1, 8232, '\p{General_Category=:\ALine_Separator\z:}', "");;
     Expect(0, 8233, '\p{General_Category=:\ALine_Separator\z:}', "");;
     Expect(1, 8232, '\p{General_Category=lineseparator}', "");
@@ -42993,16 +43553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8233, '\P{^General_Category=lineseparator}', "");
     Expect(1, 8232, '\p{General_Category=:\Alineseparator\z:}', "");;
     Expect(0, 8233, '\p{General_Category=:\Alineseparator\z:}', "");;
-    Expect(1, 8232, '\p{General_Category=--Line_Separator}', "");
-    Expect(0, 8232, '\p{^General_Category=--Line_Separator}', "");
-    Expect(0, 8232, '\P{General_Category=--Line_Separator}', "");
-    Expect(1, 8232, '\P{^General_Category=--Line_Separator}', "");
-    Expect(0, 8233, '\p{General_Category=--Line_Separator}', "");
-    Expect(1, 8233, '\p{^General_Category=--Line_Separator}', "");
-    Expect(1, 8233, '\P{General_Category=--Line_Separator}', "");
-    Expect(0, 8233, '\P{^General_Category=--Line_Separator}', "");
-    Error('\p{Gc=/a/__Zl}');
-    Error('\P{Gc=/a/__Zl}');
+    Expect(1, 8232, '\p{General_Category=	_LINE_Separator}', "");
+    Expect(0, 8232, '\p{^General_Category=	_LINE_Separator}', "");
+    Expect(0, 8232, '\P{General_Category=	_LINE_Separator}', "");
+    Expect(1, 8232, '\P{^General_Category=	_LINE_Separator}', "");
+    Expect(0, 8233, '\p{General_Category=	_LINE_Separator}', "");
+    Expect(1, 8233, '\p{^General_Category=	_LINE_Separator}', "");
+    Expect(1, 8233, '\P{General_Category=	_LINE_Separator}', "");
+    Expect(0, 8233, '\P{^General_Category=	_LINE_Separator}', "");
+    Error('\p{Gc=-	Zl/a/}');
+    Error('\P{Gc=-	Zl/a/}');
     Expect(1, 8232, '\p{Gc=:\AZl\z:}', "");;
     Expect(0, 8233, '\p{Gc=:\AZl\z:}', "");;
     Expect(1, 8232, '\p{Gc=zl}', "");
@@ -43015,16 +43575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8233, '\P{^Gc=zl}', "");
     Expect(1, 8232, '\p{Gc=:\Azl\z:}', "");;
     Expect(0, 8233, '\p{Gc=:\Azl\z:}', "");;
-    Expect(1, 8232, '\p{Gc=	Zl}', "");
-    Expect(0, 8232, '\p{^Gc=	Zl}', "");
-    Expect(0, 8232, '\P{Gc=	Zl}', "");
-    Expect(1, 8232, '\P{^Gc=	Zl}', "");
-    Expect(0, 8233, '\p{Gc=	Zl}', "");
-    Expect(1, 8233, '\p{^Gc=	Zl}', "");
-    Expect(1, 8233, '\P{Gc=	Zl}', "");
-    Expect(0, 8233, '\P{^Gc=	Zl}', "");
-    Error('\p{Category=:=	 line_Separator}');
-    Error('\P{Category=:=	 line_Separator}');
+    Expect(1, 8232, '\p{Gc=-_Zl}', "");
+    Expect(0, 8232, '\p{^Gc=-_Zl}', "");
+    Expect(0, 8232, '\P{Gc=-_Zl}', "");
+    Expect(1, 8232, '\P{^Gc=-_Zl}', "");
+    Expect(0, 8233, '\p{Gc=-_Zl}', "");
+    Expect(1, 8233, '\p{^Gc=-_Zl}', "");
+    Expect(1, 8233, '\P{Gc=-_Zl}', "");
+    Expect(0, 8233, '\P{^Gc=-_Zl}', "");
+    Error('\p{Category=	-line_SEPARATOR/a/}');
+    Error('\P{Category=	-line_SEPARATOR/a/}');
     Expect(1, 8232, '\p{Category=:\ALine_Separator\z:}', "");;
     Expect(0, 8233, '\p{Category=:\ALine_Separator\z:}', "");;
     Expect(1, 8232, '\p{Category=lineseparator}', "");
@@ -43037,34 +43597,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8233, '\P{^Category=lineseparator}', "");
     Expect(1, 8232, '\p{Category=:\Alineseparator\z:}', "");;
     Expect(0, 8233, '\p{Category=:\Alineseparator\z:}', "");;
-    Expect(1, 8232, '\p{Category:	 Line_separator}', "");
-    Expect(0, 8232, '\p{^Category:	 Line_separator}', "");
-    Expect(0, 8232, '\P{Category:	 Line_separator}', "");
-    Expect(1, 8232, '\P{^Category:	 Line_separator}', "");
-    Expect(0, 8233, '\p{Category:	 Line_separator}', "");
-    Expect(1, 8233, '\p{^Category:	 Line_separator}', "");
-    Expect(1, 8233, '\P{Category:	 Line_separator}', "");
-    Expect(0, 8233, '\P{^Category:	 Line_separator}', "");
-    Error('\p{Is_General_Category= 	Zl/a/}');
-    Error('\P{Is_General_Category= 	Zl/a/}');
-    Expect(1, 8232, '\p{Is_General_Category=zl}', "");
-    Expect(0, 8232, '\p{^Is_General_Category=zl}', "");
-    Expect(0, 8232, '\P{Is_General_Category=zl}', "");
-    Expect(1, 8232, '\P{^Is_General_Category=zl}', "");
-    Expect(0, 8233, '\p{Is_General_Category=zl}', "");
-    Expect(1, 8233, '\p{^Is_General_Category=zl}', "");
-    Expect(1, 8233, '\P{Is_General_Category=zl}', "");
-    Expect(0, 8233, '\P{^Is_General_Category=zl}', "");
-    Expect(1, 8232, '\p{Is_General_Category=--ZL}', "");
-    Expect(0, 8232, '\p{^Is_General_Category=--ZL}', "");
-    Expect(0, 8232, '\P{Is_General_Category=--ZL}', "");
-    Expect(1, 8232, '\P{^Is_General_Category=--ZL}', "");
-    Expect(0, 8233, '\p{Is_General_Category=--ZL}', "");
-    Expect(1, 8233, '\p{^Is_General_Category=--ZL}', "");
-    Expect(1, 8233, '\P{Is_General_Category=--ZL}', "");
-    Expect(0, 8233, '\P{^Is_General_Category=--ZL}', "");
-    Error('\p{Is_Gc:   _Line_SEPARATOR/a/}');
-    Error('\P{Is_Gc:   _Line_SEPARATOR/a/}');
+    Expect(1, 8232, '\p{Category=_LINE_Separator}', "");
+    Expect(0, 8232, '\p{^Category=_LINE_Separator}', "");
+    Expect(0, 8232, '\P{Category=_LINE_Separator}', "");
+    Expect(1, 8232, '\P{^Category=_LINE_Separator}', "");
+    Expect(0, 8233, '\p{Category=_LINE_Separator}', "");
+    Expect(1, 8233, '\p{^Category=_LINE_Separator}', "");
+    Expect(1, 8233, '\P{Category=_LINE_Separator}', "");
+    Expect(0, 8233, '\P{^Category=_LINE_Separator}', "");
+    Error('\p{Is_General_Category=:=-Zl}');
+    Error('\P{Is_General_Category=:=-Zl}');
+    Expect(1, 8232, '\p{Is_General_Category:	zl}', "");
+    Expect(0, 8232, '\p{^Is_General_Category:	zl}', "");
+    Expect(0, 8232, '\P{Is_General_Category:	zl}', "");
+    Expect(1, 8232, '\P{^Is_General_Category:	zl}', "");
+    Expect(0, 8233, '\p{Is_General_Category:	zl}', "");
+    Expect(1, 8233, '\p{^Is_General_Category:	zl}', "");
+    Expect(1, 8233, '\P{Is_General_Category:	zl}', "");
+    Expect(0, 8233, '\P{^Is_General_Category:	zl}', "");
+    Expect(1, 8232, '\p{Is_General_Category=-_Zl}', "");
+    Expect(0, 8232, '\p{^Is_General_Category=-_Zl}', "");
+    Expect(0, 8232, '\P{Is_General_Category=-_Zl}', "");
+    Expect(1, 8232, '\P{^Is_General_Category=-_Zl}', "");
+    Expect(0, 8233, '\p{Is_General_Category=-_Zl}', "");
+    Expect(1, 8233, '\p{^Is_General_Category=-_Zl}', "");
+    Expect(1, 8233, '\P{Is_General_Category=-_Zl}', "");
+    Expect(0, 8233, '\P{^Is_General_Category=-_Zl}', "");
+    Error('\p{Is_Gc=_LINE_separator:=}');
+    Error('\P{Is_Gc=_LINE_separator:=}');
     Expect(1, 8232, '\p{Is_Gc=lineseparator}', "");
     Expect(0, 8232, '\p{^Is_Gc=lineseparator}', "");
     Expect(0, 8232, '\P{Is_Gc=lineseparator}', "");
@@ -43073,16 +43633,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8233, '\p{^Is_Gc=lineseparator}', "");
     Expect(1, 8233, '\P{Is_Gc=lineseparator}', "");
     Expect(0, 8233, '\P{^Is_Gc=lineseparator}', "");
-    Expect(1, 8232, '\p{Is_Gc=_	Line_Separator}', "");
-    Expect(0, 8232, '\p{^Is_Gc=_	Line_Separator}', "");
-    Expect(0, 8232, '\P{Is_Gc=_	Line_Separator}', "");
-    Expect(1, 8232, '\P{^Is_Gc=_	Line_Separator}', "");
-    Expect(0, 8233, '\p{Is_Gc=_	Line_Separator}', "");
-    Expect(1, 8233, '\p{^Is_Gc=_	Line_Separator}', "");
-    Expect(1, 8233, '\P{Is_Gc=_	Line_Separator}', "");
-    Expect(0, 8233, '\P{^Is_Gc=_	Line_Separator}', "");
-    Error('\p{Is_Category=/a/_zl}');
-    Error('\P{Is_Category=/a/_zl}');
+    Expect(1, 8232, '\p{Is_Gc=-_Line_Separator}', "");
+    Expect(0, 8232, '\p{^Is_Gc=-_Line_Separator}', "");
+    Expect(0, 8232, '\P{Is_Gc=-_Line_Separator}', "");
+    Expect(1, 8232, '\P{^Is_Gc=-_Line_Separator}', "");
+    Expect(0, 8233, '\p{Is_Gc=-_Line_Separator}', "");
+    Expect(1, 8233, '\p{^Is_Gc=-_Line_Separator}', "");
+    Expect(1, 8233, '\P{Is_Gc=-_Line_Separator}', "");
+    Expect(0, 8233, '\P{^Is_Gc=-_Line_Separator}', "");
+    Error('\p{Is_Category=	_Zl/a/}');
+    Error('\P{Is_Category=	_Zl/a/}');
     Expect(1, 8232, '\p{Is_Category=zl}', "");
     Expect(0, 8232, '\p{^Is_Category=zl}', "");
     Expect(0, 8232, '\P{Is_Category=zl}', "");
@@ -43091,16 +43651,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8233, '\p{^Is_Category=zl}', "");
     Expect(1, 8233, '\P{Is_Category=zl}', "");
     Expect(0, 8233, '\P{^Is_Category=zl}', "");
-    Expect(1, 8232, '\p{Is_Category=		ZL}', "");
-    Expect(0, 8232, '\p{^Is_Category=		ZL}', "");
-    Expect(0, 8232, '\P{Is_Category=		ZL}', "");
-    Expect(1, 8232, '\P{^Is_Category=		ZL}', "");
-    Expect(0, 8233, '\p{Is_Category=		ZL}', "");
-    Expect(1, 8233, '\p{^Is_Category=		ZL}', "");
-    Expect(1, 8233, '\P{Is_Category=		ZL}', "");
-    Expect(0, 8233, '\P{^Is_Category=		ZL}', "");
-    Error('\p{General_Category:    _Paragraph_SEPARATOR/a/}');
-    Error('\P{General_Category:    _Paragraph_SEPARATOR/a/}');
+    Expect(1, 8232, '\p{Is_Category=	_Zl}', "");
+    Expect(0, 8232, '\p{^Is_Category=	_Zl}', "");
+    Expect(0, 8232, '\P{Is_Category=	_Zl}', "");
+    Expect(1, 8232, '\P{^Is_Category=	_Zl}', "");
+    Expect(0, 8233, '\p{Is_Category=	_Zl}', "");
+    Expect(1, 8233, '\p{^Is_Category=	_Zl}', "");
+    Expect(1, 8233, '\P{Is_Category=	_Zl}', "");
+    Expect(0, 8233, '\P{^Is_Category=	_Zl}', "");
+    Error('\p{General_Category=	/a/Paragraph_Separator}');
+    Error('\P{General_Category=	/a/Paragraph_Separator}');
     Expect(1, 8233, '\p{General_Category=:\AParagraph_Separator\z:}', "");;
     Expect(0, 8234, '\p{General_Category=:\AParagraph_Separator\z:}', "");;
     Expect(1, 8233, '\p{General_Category=paragraphseparator}', "");
@@ -43113,16 +43673,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8234, '\P{^General_Category=paragraphseparator}', "");
     Expect(1, 8233, '\p{General_Category=:\Aparagraphseparator\z:}', "");;
     Expect(0, 8234, '\p{General_Category=:\Aparagraphseparator\z:}', "");;
-    Expect(1, 8233, '\p{General_Category=__Paragraph_Separator}', "");
-    Expect(0, 8233, '\p{^General_Category=__Paragraph_Separator}', "");
-    Expect(0, 8233, '\P{General_Category=__Paragraph_Separator}', "");
-    Expect(1, 8233, '\P{^General_Category=__Paragraph_Separator}', "");
-    Expect(0, 8234, '\p{General_Category=__Paragraph_Separator}', "");
-    Expect(1, 8234, '\p{^General_Category=__Paragraph_Separator}', "");
-    Expect(1, 8234, '\P{General_Category=__Paragraph_Separator}', "");
-    Expect(0, 8234, '\P{^General_Category=__Paragraph_Separator}', "");
-    Error('\p{Gc=-:=zp}');
-    Error('\P{Gc=-:=zp}');
+    Expect(1, 8233, '\p{General_Category=_ Paragraph_separator}', "");
+    Expect(0, 8233, '\p{^General_Category=_ Paragraph_separator}', "");
+    Expect(0, 8233, '\P{General_Category=_ Paragraph_separator}', "");
+    Expect(1, 8233, '\P{^General_Category=_ Paragraph_separator}', "");
+    Expect(0, 8234, '\p{General_Category=_ Paragraph_separator}', "");
+    Expect(1, 8234, '\p{^General_Category=_ Paragraph_separator}', "");
+    Expect(1, 8234, '\P{General_Category=_ Paragraph_separator}', "");
+    Expect(0, 8234, '\P{^General_Category=_ Paragraph_separator}', "");
+    Error('\p{Gc=/a/_Zp}');
+    Error('\P{Gc=/a/_Zp}');
     Expect(1, 8233, '\p{Gc=:\AZp\z:}', "");;
     Expect(0, 8234, '\p{Gc=:\AZp\z:}', "");;
     Expect(1, 8233, '\p{Gc=zp}', "");
@@ -43135,16 +43695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8234, '\P{^Gc=zp}', "");
     Expect(1, 8233, '\p{Gc=:\Azp\z:}', "");;
     Expect(0, 8234, '\p{Gc=:\Azp\z:}', "");;
-    Expect(1, 8233, '\p{Gc= 	Zp}', "");
-    Expect(0, 8233, '\p{^Gc= 	Zp}', "");
-    Expect(0, 8233, '\P{Gc= 	Zp}', "");
-    Expect(1, 8233, '\P{^Gc= 	Zp}', "");
-    Expect(0, 8234, '\p{Gc= 	Zp}', "");
-    Expect(1, 8234, '\p{^Gc= 	Zp}', "");
-    Expect(1, 8234, '\P{Gc= 	Zp}', "");
-    Expect(0, 8234, '\P{^Gc= 	Zp}', "");
-    Error('\p{Category=/a/_-Paragraph_Separator}');
-    Error('\P{Category=/a/_-Paragraph_Separator}');
+    Expect(1, 8233, '\p{Gc=	 ZP}', "");
+    Expect(0, 8233, '\p{^Gc=	 ZP}', "");
+    Expect(0, 8233, '\P{Gc=	 ZP}', "");
+    Expect(1, 8233, '\P{^Gc=	 ZP}', "");
+    Expect(0, 8234, '\p{Gc=	 ZP}', "");
+    Expect(1, 8234, '\p{^Gc=	 ZP}', "");
+    Expect(1, 8234, '\P{Gc=	 ZP}', "");
+    Expect(0, 8234, '\P{^Gc=	 ZP}', "");
+    Error('\p{Category=:= 	paragraph_separator}');
+    Error('\P{Category=:= 	paragraph_separator}');
     Expect(1, 8233, '\p{Category=:\AParagraph_Separator\z:}', "");;
     Expect(0, 8234, '\p{Category=:\AParagraph_Separator\z:}', "");;
     Expect(1, 8233, '\p{Category=paragraphseparator}', "");
@@ -43157,34 +43717,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8234, '\P{^Category=paragraphseparator}', "");
     Expect(1, 8233, '\p{Category=:\Aparagraphseparator\z:}', "");;
     Expect(0, 8234, '\p{Category=:\Aparagraphseparator\z:}', "");;
-    Expect(1, 8233, '\p{Category=_Paragraph_SEPARATOR}', "");
-    Expect(0, 8233, '\p{^Category=_Paragraph_SEPARATOR}', "");
-    Expect(0, 8233, '\P{Category=_Paragraph_SEPARATOR}', "");
-    Expect(1, 8233, '\P{^Category=_Paragraph_SEPARATOR}', "");
-    Expect(0, 8234, '\p{Category=_Paragraph_SEPARATOR}', "");
-    Expect(1, 8234, '\p{^Category=_Paragraph_SEPARATOR}', "");
-    Expect(1, 8234, '\P{Category=_Paragraph_SEPARATOR}', "");
-    Expect(0, 8234, '\P{^Category=_Paragraph_SEPARATOR}', "");
-    Error('\p{Is_General_Category:   /a/ zp}');
-    Error('\P{Is_General_Category:   /a/ zp}');
-    Expect(1, 8233, '\p{Is_General_Category=zp}', "");
-    Expect(0, 8233, '\p{^Is_General_Category=zp}', "");
-    Expect(0, 8233, '\P{Is_General_Category=zp}', "");
-    Expect(1, 8233, '\P{^Is_General_Category=zp}', "");
-    Expect(0, 8234, '\p{Is_General_Category=zp}', "");
-    Expect(1, 8234, '\p{^Is_General_Category=zp}', "");
-    Expect(1, 8234, '\P{Is_General_Category=zp}', "");
-    Expect(0, 8234, '\P{^Is_General_Category=zp}', "");
-    Expect(1, 8233, '\p{Is_General_Category=	Zp}', "");
-    Expect(0, 8233, '\p{^Is_General_Category=	Zp}', "");
-    Expect(0, 8233, '\P{Is_General_Category=	Zp}', "");
-    Expect(1, 8233, '\P{^Is_General_Category=	Zp}', "");
-    Expect(0, 8234, '\p{Is_General_Category=	Zp}', "");
-    Expect(1, 8234, '\p{^Is_General_Category=	Zp}', "");
-    Expect(1, 8234, '\P{Is_General_Category=	Zp}', "");
-    Expect(0, 8234, '\P{^Is_General_Category=	Zp}', "");
-    Error('\p{Is_Gc=/a/__Paragraph_Separator}');
-    Error('\P{Is_Gc=/a/__Paragraph_Separator}');
+    Expect(1, 8233, '\p{Category=  PARAGRAPH_Separator}', "");
+    Expect(0, 8233, '\p{^Category=  PARAGRAPH_Separator}', "");
+    Expect(0, 8233, '\P{Category=  PARAGRAPH_Separator}', "");
+    Expect(1, 8233, '\P{^Category=  PARAGRAPH_Separator}', "");
+    Expect(0, 8234, '\p{Category=  PARAGRAPH_Separator}', "");
+    Expect(1, 8234, '\p{^Category=  PARAGRAPH_Separator}', "");
+    Expect(1, 8234, '\P{Category=  PARAGRAPH_Separator}', "");
+    Expect(0, 8234, '\P{^Category=  PARAGRAPH_Separator}', "");
+    Error('\p{Is_General_Category:	/a/ -ZP}');
+    Error('\P{Is_General_Category:	/a/ -ZP}');
+    Expect(1, 8233, '\p{Is_General_Category:zp}', "");
+    Expect(0, 8233, '\p{^Is_General_Category:zp}', "");
+    Expect(0, 8233, '\P{Is_General_Category:zp}', "");
+    Expect(1, 8233, '\P{^Is_General_Category:zp}', "");
+    Expect(0, 8234, '\p{Is_General_Category:zp}', "");
+    Expect(1, 8234, '\p{^Is_General_Category:zp}', "");
+    Expect(1, 8234, '\P{Is_General_Category:zp}', "");
+    Expect(0, 8234, '\P{^Is_General_Category:zp}', "");
+    Expect(1, 8233, '\p{Is_General_Category=--zp}', "");
+    Expect(0, 8233, '\p{^Is_General_Category=--zp}', "");
+    Expect(0, 8233, '\P{Is_General_Category=--zp}', "");
+    Expect(1, 8233, '\P{^Is_General_Category=--zp}', "");
+    Expect(0, 8234, '\p{Is_General_Category=--zp}', "");
+    Expect(1, 8234, '\p{^Is_General_Category=--zp}', "");
+    Expect(1, 8234, '\P{Is_General_Category=--zp}', "");
+    Expect(0, 8234, '\P{^Is_General_Category=--zp}', "");
+    Error('\p{Is_Gc= :=PARAGRAPH_Separator}');
+    Error('\P{Is_Gc= :=PARAGRAPH_Separator}');
     Expect(1, 8233, '\p{Is_Gc=paragraphseparator}', "");
     Expect(0, 8233, '\p{^Is_Gc=paragraphseparator}', "");
     Expect(0, 8233, '\P{Is_Gc=paragraphseparator}', "");
@@ -43193,16 +43753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8234, '\p{^Is_Gc=paragraphseparator}', "");
     Expect(1, 8234, '\P{Is_Gc=paragraphseparator}', "");
     Expect(0, 8234, '\P{^Is_Gc=paragraphseparator}', "");
-    Expect(1, 8233, '\p{Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(0, 8233, '\p{^Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(0, 8233, '\P{Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(1, 8233, '\P{^Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(0, 8234, '\p{Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(1, 8234, '\p{^Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(1, 8234, '\P{Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Expect(0, 8234, '\P{^Is_Gc: 	 PARAGRAPH_Separator}', "");
-    Error('\p{Is_Category=/a/__Zp}');
-    Error('\P{Is_Category=/a/__Zp}');
+    Expect(1, 8233, '\p{Is_Gc=--paragraph_Separator}', "");
+    Expect(0, 8233, '\p{^Is_Gc=--paragraph_Separator}', "");
+    Expect(0, 8233, '\P{Is_Gc=--paragraph_Separator}', "");
+    Expect(1, 8233, '\P{^Is_Gc=--paragraph_Separator}', "");
+    Expect(0, 8234, '\p{Is_Gc=--paragraph_Separator}', "");
+    Expect(1, 8234, '\p{^Is_Gc=--paragraph_Separator}', "");
+    Expect(1, 8234, '\P{Is_Gc=--paragraph_Separator}', "");
+    Expect(0, 8234, '\P{^Is_Gc=--paragraph_Separator}', "");
+    Error('\p{Is_Category=/a/--zp}');
+    Error('\P{Is_Category=/a/--zp}');
     Expect(1, 8233, '\p{Is_Category=zp}', "");
     Expect(0, 8233, '\p{^Is_Category=zp}', "");
     Expect(0, 8233, '\P{Is_Category=zp}', "");
@@ -43211,60 +43771,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8234, '\p{^Is_Category=zp}', "");
     Expect(1, 8234, '\P{Is_Category=zp}', "");
     Expect(0, 8234, '\P{^Is_Category=zp}', "");
-    Expect(1, 8233, '\p{Is_Category=-Zp}', "");
-    Expect(0, 8233, '\p{^Is_Category=-Zp}', "");
-    Expect(0, 8233, '\P{Is_Category=-Zp}', "");
-    Expect(1, 8233, '\P{^Is_Category=-Zp}', "");
-    Expect(0, 8234, '\p{Is_Category=-Zp}', "");
-    Expect(1, 8234, '\p{^Is_Category=-Zp}', "");
-    Expect(1, 8234, '\P{Is_Category=-Zp}', "");
-    Expect(0, 8234, '\P{^Is_Category=-Zp}', "");
-    Error('\p{General_Category=-:=Space_Separator}');
-    Error('\P{General_Category=-:=Space_Separator}');
+    Expect(1, 8233, '\p{Is_Category= Zp}', "");
+    Expect(0, 8233, '\p{^Is_Category= Zp}', "");
+    Expect(0, 8233, '\P{Is_Category= Zp}', "");
+    Expect(1, 8233, '\P{^Is_Category= Zp}', "");
+    Expect(0, 8234, '\p{Is_Category= Zp}', "");
+    Expect(1, 8234, '\p{^Is_Category= Zp}', "");
+    Expect(1, 8234, '\P{Is_Category= Zp}', "");
+    Expect(0, 8234, '\P{^Is_Category= Zp}', "");
+    Error('\p{General_Category=:=	 space_Separator}');
+    Error('\P{General_Category=:=	 space_Separator}');
     Expect(1, 12288, '\p{General_Category=:\ASpace_Separator\z:}', "");;
     Expect(0, 12289, '\p{General_Category=:\ASpace_Separator\z:}', "");;
-    Expect(1, 12288, '\p{General_Category:   spaceseparator}', "");
-    Expect(0, 12288, '\p{^General_Category:   spaceseparator}', "");
-    Expect(0, 12288, '\P{General_Category:   spaceseparator}', "");
-    Expect(1, 12288, '\P{^General_Category:   spaceseparator}', "");
-    Expect(0, 12289, '\p{General_Category:   spaceseparator}', "");
-    Expect(1, 12289, '\p{^General_Category:   spaceseparator}', "");
-    Expect(1, 12289, '\P{General_Category:   spaceseparator}', "");
-    Expect(0, 12289, '\P{^General_Category:   spaceseparator}', "");
+    Expect(1, 12288, '\p{General_Category:spaceseparator}', "");
+    Expect(0, 12288, '\p{^General_Category:spaceseparator}', "");
+    Expect(0, 12288, '\P{General_Category:spaceseparator}', "");
+    Expect(1, 12288, '\P{^General_Category:spaceseparator}', "");
+    Expect(0, 12289, '\p{General_Category:spaceseparator}', "");
+    Expect(1, 12289, '\p{^General_Category:spaceseparator}', "");
+    Expect(1, 12289, '\P{General_Category:spaceseparator}', "");
+    Expect(0, 12289, '\P{^General_Category:spaceseparator}', "");
     Expect(1, 12288, '\p{General_Category=:\Aspaceseparator\z:}', "");;
     Expect(0, 12289, '\p{General_Category=:\Aspaceseparator\z:}', "");;
-    Expect(1, 12288, '\p{General_Category= _Space_Separator}', "");
-    Expect(0, 12288, '\p{^General_Category= _Space_Separator}', "");
-    Expect(0, 12288, '\P{General_Category= _Space_Separator}', "");
-    Expect(1, 12288, '\P{^General_Category= _Space_Separator}', "");
-    Expect(0, 12289, '\p{General_Category= _Space_Separator}', "");
-    Expect(1, 12289, '\p{^General_Category= _Space_Separator}', "");
-    Expect(1, 12289, '\P{General_Category= _Space_Separator}', "");
-    Expect(0, 12289, '\P{^General_Category= _Space_Separator}', "");
-    Error('\p{Gc= Zs/a/}');
-    Error('\P{Gc= Zs/a/}');
+    Expect(1, 12288, '\p{General_Category= -space_separator}', "");
+    Expect(0, 12288, '\p{^General_Category= -space_separator}', "");
+    Expect(0, 12288, '\P{General_Category= -space_separator}', "");
+    Expect(1, 12288, '\P{^General_Category= -space_separator}', "");
+    Expect(0, 12289, '\p{General_Category= -space_separator}', "");
+    Expect(1, 12289, '\p{^General_Category= -space_separator}', "");
+    Expect(1, 12289, '\P{General_Category= -space_separator}', "");
+    Expect(0, 12289, '\P{^General_Category= -space_separator}', "");
+    Error('\p{Gc=:=-Zs}');
+    Error('\P{Gc=:=-Zs}');
     Expect(1, 12288, '\p{Gc=:\AZs\z:}', "");;
     Expect(0, 12289, '\p{Gc=:\AZs\z:}', "");;
-    Expect(1, 12288, '\p{Gc:	zs}', "");
-    Expect(0, 12288, '\p{^Gc:	zs}', "");
-    Expect(0, 12288, '\P{Gc:	zs}', "");
-    Expect(1, 12288, '\P{^Gc:	zs}', "");
-    Expect(0, 12289, '\p{Gc:	zs}', "");
-    Expect(1, 12289, '\p{^Gc:	zs}', "");
-    Expect(1, 12289, '\P{Gc:	zs}', "");
-    Expect(0, 12289, '\P{^Gc:	zs}', "");
+    Expect(1, 12288, '\p{Gc=zs}', "");
+    Expect(0, 12288, '\p{^Gc=zs}', "");
+    Expect(0, 12288, '\P{Gc=zs}', "");
+    Expect(1, 12288, '\P{^Gc=zs}', "");
+    Expect(0, 12289, '\p{Gc=zs}', "");
+    Expect(1, 12289, '\p{^Gc=zs}', "");
+    Expect(1, 12289, '\P{Gc=zs}', "");
+    Expect(0, 12289, '\P{^Gc=zs}', "");
     Expect(1, 12288, '\p{Gc=:\Azs\z:}', "");;
     Expect(0, 12289, '\p{Gc=:\Azs\z:}', "");;
-    Expect(1, 12288, '\p{Gc= 	zs}', "");
-    Expect(0, 12288, '\p{^Gc= 	zs}', "");
-    Expect(0, 12288, '\P{Gc= 	zs}', "");
-    Expect(1, 12288, '\P{^Gc= 	zs}', "");
-    Expect(0, 12289, '\p{Gc= 	zs}', "");
-    Expect(1, 12289, '\p{^Gc= 	zs}', "");
-    Expect(1, 12289, '\P{Gc= 	zs}', "");
-    Expect(0, 12289, '\P{^Gc= 	zs}', "");
-    Error('\p{Category=/a/ SPACE_Separator}');
-    Error('\P{Category=/a/ SPACE_Separator}');
+    Expect(1, 12288, '\p{Gc=  ZS}', "");
+    Expect(0, 12288, '\p{^Gc=  ZS}', "");
+    Expect(0, 12288, '\P{Gc=  ZS}', "");
+    Expect(1, 12288, '\P{^Gc=  ZS}', "");
+    Expect(0, 12289, '\p{Gc=  ZS}', "");
+    Expect(1, 12289, '\p{^Gc=  ZS}', "");
+    Expect(1, 12289, '\P{Gc=  ZS}', "");
+    Expect(0, 12289, '\P{^Gc=  ZS}', "");
+    Error('\p{Category=	-SPACE_SEPARATOR:=}');
+    Error('\P{Category=	-SPACE_SEPARATOR:=}');
     Expect(1, 12288, '\p{Category=:\ASpace_Separator\z:}', "");;
     Expect(0, 12289, '\p{Category=:\ASpace_Separator\z:}', "");;
     Expect(1, 12288, '\p{Category=spaceseparator}', "");
@@ -43277,16 +43837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12289, '\P{^Category=spaceseparator}', "");
     Expect(1, 12288, '\p{Category=:\Aspaceseparator\z:}', "");;
     Expect(0, 12289, '\p{Category=:\Aspaceseparator\z:}', "");;
-    Expect(1, 12288, '\p{Category=		SPACE_SEPARATOR}', "");
-    Expect(0, 12288, '\p{^Category=		SPACE_SEPARATOR}', "");
-    Expect(0, 12288, '\P{Category=		SPACE_SEPARATOR}', "");
-    Expect(1, 12288, '\P{^Category=		SPACE_SEPARATOR}', "");
-    Expect(0, 12289, '\p{Category=		SPACE_SEPARATOR}', "");
-    Expect(1, 12289, '\p{^Category=		SPACE_SEPARATOR}', "");
-    Expect(1, 12289, '\P{Category=		SPACE_SEPARATOR}', "");
-    Expect(0, 12289, '\P{^Category=		SPACE_SEPARATOR}', "");
-    Error('\p{Is_General_Category:_/a/Zs}');
-    Error('\P{Is_General_Category:_/a/Zs}');
+    Expect(1, 12288, '\p{Category:    SPACE_Separator}', "");
+    Expect(0, 12288, '\p{^Category:    SPACE_Separator}', "");
+    Expect(0, 12288, '\P{Category:    SPACE_Separator}', "");
+    Expect(1, 12288, '\P{^Category:    SPACE_Separator}', "");
+    Expect(0, 12289, '\p{Category:    SPACE_Separator}', "");
+    Expect(1, 12289, '\p{^Category:    SPACE_Separator}', "");
+    Expect(1, 12289, '\P{Category:    SPACE_Separator}', "");
+    Expect(0, 12289, '\P{^Category:    SPACE_Separator}', "");
+    Error('\p{Is_General_Category=:= -Zs}');
+    Error('\P{Is_General_Category=:= -Zs}');
     Expect(1, 12288, '\p{Is_General_Category=zs}', "");
     Expect(0, 12288, '\p{^Is_General_Category=zs}', "");
     Expect(0, 12288, '\P{Is_General_Category=zs}', "");
@@ -43295,34 +43855,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12289, '\p{^Is_General_Category=zs}', "");
     Expect(1, 12289, '\P{Is_General_Category=zs}', "");
     Expect(0, 12289, '\P{^Is_General_Category=zs}', "");
-    Expect(1, 12288, '\p{Is_General_Category=  zs}', "");
-    Expect(0, 12288, '\p{^Is_General_Category=  zs}', "");
-    Expect(0, 12288, '\P{Is_General_Category=  zs}', "");
-    Expect(1, 12288, '\P{^Is_General_Category=  zs}', "");
-    Expect(0, 12289, '\p{Is_General_Category=  zs}', "");
-    Expect(1, 12289, '\p{^Is_General_Category=  zs}', "");
-    Expect(1, 12289, '\P{Is_General_Category=  zs}', "");
-    Expect(0, 12289, '\P{^Is_General_Category=  zs}', "");
-    Error('\p{Is_Gc=/a/	Space_separator}');
-    Error('\P{Is_Gc=/a/	Space_separator}');
-    Expect(1, 12288, '\p{Is_Gc:spaceseparator}', "");
-    Expect(0, 12288, '\p{^Is_Gc:spaceseparator}', "");
-    Expect(0, 12288, '\P{Is_Gc:spaceseparator}', "");
-    Expect(1, 12288, '\P{^Is_Gc:spaceseparator}', "");
-    Expect(0, 12289, '\p{Is_Gc:spaceseparator}', "");
-    Expect(1, 12289, '\p{^Is_Gc:spaceseparator}', "");
-    Expect(1, 12289, '\P{Is_Gc:spaceseparator}', "");
-    Expect(0, 12289, '\P{^Is_Gc:spaceseparator}', "");
-    Expect(1, 12288, '\p{Is_Gc= -Space_SEPARATOR}', "");
-    Expect(0, 12288, '\p{^Is_Gc= -Space_SEPARATOR}', "");
-    Expect(0, 12288, '\P{Is_Gc= -Space_SEPARATOR}', "");
-    Expect(1, 12288, '\P{^Is_Gc= -Space_SEPARATOR}', "");
-    Expect(0, 12289, '\p{Is_Gc= -Space_SEPARATOR}', "");
-    Expect(1, 12289, '\p{^Is_Gc= -Space_SEPARATOR}', "");
-    Expect(1, 12289, '\P{Is_Gc= -Space_SEPARATOR}', "");
-    Expect(0, 12289, '\P{^Is_Gc= -Space_SEPARATOR}', "");
-    Error('\p{Is_Category=	_Zs:=}');
-    Error('\P{Is_Category=	_Zs:=}');
+    Expect(1, 12288, '\p{Is_General_Category=-ZS}', "");
+    Expect(0, 12288, '\p{^Is_General_Category=-ZS}', "");
+    Expect(0, 12288, '\P{Is_General_Category=-ZS}', "");
+    Expect(1, 12288, '\P{^Is_General_Category=-ZS}', "");
+    Expect(0, 12289, '\p{Is_General_Category=-ZS}', "");
+    Expect(1, 12289, '\p{^Is_General_Category=-ZS}', "");
+    Expect(1, 12289, '\P{Is_General_Category=-ZS}', "");
+    Expect(0, 12289, '\P{^Is_General_Category=-ZS}', "");
+    Error('\p{Is_Gc=	_Space_SEPARATOR:=}');
+    Error('\P{Is_Gc=	_Space_SEPARATOR:=}');
+    Expect(1, 12288, '\p{Is_Gc: spaceseparator}', "");
+    Expect(0, 12288, '\p{^Is_Gc: spaceseparator}', "");
+    Expect(0, 12288, '\P{Is_Gc: spaceseparator}', "");
+    Expect(1, 12288, '\P{^Is_Gc: spaceseparator}', "");
+    Expect(0, 12289, '\p{Is_Gc: spaceseparator}', "");
+    Expect(1, 12289, '\p{^Is_Gc: spaceseparator}', "");
+    Expect(1, 12289, '\P{Is_Gc: spaceseparator}', "");
+    Expect(0, 12289, '\P{^Is_Gc: spaceseparator}', "");
+    Expect(1, 12288, '\p{Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(0, 12288, '\p{^Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(0, 12288, '\P{Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(1, 12288, '\P{^Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(0, 12289, '\p{Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(1, 12289, '\p{^Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(1, 12289, '\P{Is_Gc=	SPACE_SEPARATOR}', "");
+    Expect(0, 12289, '\P{^Is_Gc=	SPACE_SEPARATOR}', "");
+    Error('\p{Is_Category=/a/		zs}');
+    Error('\P{Is_Category=/a/		zs}');
     Expect(1, 12288, '\p{Is_Category=zs}', "");
     Expect(0, 12288, '\p{^Is_Category=zs}', "");
     Expect(0, 12288, '\P{Is_Category=zs}', "");
@@ -43331,22 +43891,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12289, '\p{^Is_Category=zs}', "");
     Expect(1, 12289, '\P{Is_Category=zs}', "");
     Expect(0, 12289, '\P{^Is_Category=zs}', "");
-    Expect(1, 12288, '\p{Is_Category=- zs}', "");
-    Expect(0, 12288, '\p{^Is_Category=- zs}', "");
-    Expect(0, 12288, '\P{Is_Category=- zs}', "");
-    Expect(1, 12288, '\P{^Is_Category=- zs}', "");
-    Expect(0, 12289, '\p{Is_Category=- zs}', "");
-    Expect(1, 12289, '\p{^Is_Category=- zs}', "");
-    Expect(1, 12289, '\P{Is_Category=- zs}', "");
-    Expect(0, 12289, '\P{^Is_Category=- zs}', "");
+    Expect(1, 12288, '\p{Is_Category=__Zs}', "");
+    Expect(0, 12288, '\p{^Is_Category=__Zs}', "");
+    Expect(0, 12288, '\P{Is_Category=__Zs}', "");
+    Expect(1, 12288, '\P{^Is_Category=__Zs}', "");
+    Expect(0, 12289, '\p{Is_Category=__Zs}', "");
+    Expect(1, 12289, '\p{^Is_Category=__Zs}', "");
+    Expect(1, 12289, '\P{Is_Category=__Zs}', "");
+    Expect(0, 12289, '\P{^Is_Category=__Zs}', "");
     Error('\p{graphemeclusterbreak}');
     Error('\P{graphemeclusterbreak}');
     Error('\p{gcb}');
     Error('\P{gcb}');
     Error('\p{_perlgcb}');
     Error('\P{_perlgcb}');
-    Error('\p{Grapheme_Cluster_Break=-/a/Control}');
-    Error('\P{Grapheme_Cluster_Break=-/a/Control}');
+    Error('\p{Grapheme_Cluster_Break=- control:=}');
+    Error('\P{Grapheme_Cluster_Break=- control:=}');
     Expect(1, 921599, '\p{Grapheme_Cluster_Break=:\AControl\z:}', "");;
     Expect(0, 921600, '\p{Grapheme_Cluster_Break=:\AControl\z:}', "");;
     Expect(1, 921599, '\p{Grapheme_Cluster_Break=control}', "");
@@ -43359,16 +43919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 921600, '\P{^Grapheme_Cluster_Break=control}', "");
     Expect(1, 921599, '\p{Grapheme_Cluster_Break=:\Acontrol\z:}', "");;
     Expect(0, 921600, '\p{Grapheme_Cluster_Break=:\Acontrol\z:}', "");;
-    Expect(1, 921599, '\p{Grapheme_Cluster_Break= control}', "");
-    Expect(0, 921599, '\p{^Grapheme_Cluster_Break= control}', "");
-    Expect(0, 921599, '\P{Grapheme_Cluster_Break= control}', "");
-    Expect(1, 921599, '\P{^Grapheme_Cluster_Break= control}', "");
-    Expect(0, 921600, '\p{Grapheme_Cluster_Break= control}', "");
-    Expect(1, 921600, '\p{^Grapheme_Cluster_Break= control}', "");
-    Expect(1, 921600, '\P{Grapheme_Cluster_Break= control}', "");
-    Expect(0, 921600, '\P{^Grapheme_Cluster_Break= control}', "");
-    Error('\p{GCB=/a/_	CN}');
-    Error('\P{GCB=/a/_	CN}');
+    Expect(1, 921599, '\p{Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921599, '\p{^Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921599, '\P{Grapheme_Cluster_Break= 	control}', "");
+    Expect(1, 921599, '\P{^Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921600, '\p{Grapheme_Cluster_Break= 	control}', "");
+    Expect(1, 921600, '\p{^Grapheme_Cluster_Break= 	control}', "");
+    Expect(1, 921600, '\P{Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921600, '\P{^Grapheme_Cluster_Break= 	control}', "");
+    Error('\p{GCB=:=-CN}');
+    Error('\P{GCB=:=-CN}');
     Expect(1, 921599, '\p{GCB=:\ACN\z:}', "");;
     Expect(0, 921600, '\p{GCB=:\ACN\z:}', "");;
     Expect(1, 921599, '\p{GCB:	cn}', "");
@@ -43381,16 +43941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 921600, '\P{^GCB:	cn}', "");
     Expect(1, 921599, '\p{GCB=:\Acn\z:}', "");;
     Expect(0, 921600, '\p{GCB=:\Acn\z:}', "");;
-    Expect(1, 921599, '\p{GCB=-CN}', "");
-    Expect(0, 921599, '\p{^GCB=-CN}', "");
-    Expect(0, 921599, '\P{GCB=-CN}', "");
-    Expect(1, 921599, '\P{^GCB=-CN}', "");
-    Expect(0, 921600, '\p{GCB=-CN}', "");
-    Expect(1, 921600, '\p{^GCB=-CN}', "");
-    Expect(1, 921600, '\P{GCB=-CN}', "");
-    Expect(0, 921600, '\P{^GCB=-CN}', "");
-    Error('\p{Is_Grapheme_Cluster_Break= /a/CONTROL}');
-    Error('\P{Is_Grapheme_Cluster_Break= /a/CONTROL}');
+    Expect(1, 921599, '\p{GCB=- CN}', "");
+    Expect(0, 921599, '\p{^GCB=- CN}', "");
+    Expect(0, 921599, '\P{GCB=- CN}', "");
+    Expect(1, 921599, '\P{^GCB=- CN}', "");
+    Expect(0, 921600, '\p{GCB=- CN}', "");
+    Expect(1, 921600, '\p{^GCB=- CN}', "");
+    Expect(1, 921600, '\P{GCB=- CN}', "");
+    Expect(0, 921600, '\P{^GCB=- CN}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=	-control:=}');
+    Error('\P{Is_Grapheme_Cluster_Break=	-control:=}');
     Expect(1, 921599, '\p{Is_Grapheme_Cluster_Break=control}', "");
     Expect(0, 921599, '\p{^Is_Grapheme_Cluster_Break=control}', "");
     Expect(0, 921599, '\P{Is_Grapheme_Cluster_Break=control}', "");
@@ -43399,34 +43959,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 921600, '\p{^Is_Grapheme_Cluster_Break=control}', "");
     Expect(1, 921600, '\P{Is_Grapheme_Cluster_Break=control}', "");
     Expect(0, 921600, '\P{^Is_Grapheme_Cluster_Break=control}', "");
-    Expect(1, 921599, '\p{Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(0, 921599, '\p{^Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(0, 921599, '\P{Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(1, 921599, '\P{^Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(0, 921600, '\p{Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(1, 921600, '\p{^Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(1, 921600, '\P{Is_Grapheme_Cluster_Break=	-control}', "");
-    Expect(0, 921600, '\P{^Is_Grapheme_Cluster_Break=	-control}', "");
-    Error('\p{Is_GCB=/a/-_CN}');
-    Error('\P{Is_GCB=/a/-_CN}');
-    Expect(1, 921599, '\p{Is_GCB=cn}', "");
-    Expect(0, 921599, '\p{^Is_GCB=cn}', "");
-    Expect(0, 921599, '\P{Is_GCB=cn}', "");
-    Expect(1, 921599, '\P{^Is_GCB=cn}', "");
-    Expect(0, 921600, '\p{Is_GCB=cn}', "");
-    Expect(1, 921600, '\p{^Is_GCB=cn}', "");
-    Expect(1, 921600, '\P{Is_GCB=cn}', "");
-    Expect(0, 921600, '\P{^Is_GCB=cn}', "");
-    Expect(1, 921599, '\p{Is_GCB=-_CN}', "");
-    Expect(0, 921599, '\p{^Is_GCB=-_CN}', "");
-    Expect(0, 921599, '\P{Is_GCB=-_CN}', "");
-    Expect(1, 921599, '\P{^Is_GCB=-_CN}', "");
-    Expect(0, 921600, '\p{Is_GCB=-_CN}', "");
-    Expect(1, 921600, '\p{^Is_GCB=-_CN}', "");
-    Expect(1, 921600, '\P{Is_GCB=-_CN}', "");
-    Expect(0, 921600, '\P{^Is_GCB=-_CN}', "");
-    Error('\p{Grapheme_Cluster_Break:	:=CR}');
-    Error('\P{Grapheme_Cluster_Break:	:=CR}');
+    Expect(1, 921599, '\p{Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921599, '\p{^Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921599, '\P{Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(1, 921599, '\P{^Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921600, '\p{Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(1, 921600, '\p{^Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(1, 921600, '\P{Is_Grapheme_Cluster_Break= 	control}', "");
+    Expect(0, 921600, '\P{^Is_Grapheme_Cluster_Break= 	control}', "");
+    Error('\p{Is_GCB=	-CN:=}');
+    Error('\P{Is_GCB=	-CN:=}');
+    Expect(1, 921599, '\p{Is_GCB: cn}', "");
+    Expect(0, 921599, '\p{^Is_GCB: cn}', "");
+    Expect(0, 921599, '\P{Is_GCB: cn}', "");
+    Expect(1, 921599, '\P{^Is_GCB: cn}', "");
+    Expect(0, 921600, '\p{Is_GCB: cn}', "");
+    Expect(1, 921600, '\p{^Is_GCB: cn}', "");
+    Expect(1, 921600, '\P{Is_GCB: cn}', "");
+    Expect(0, 921600, '\P{^Is_GCB: cn}', "");
+    Expect(1, 921599, '\p{Is_GCB= cn}', "");
+    Expect(0, 921599, '\p{^Is_GCB= cn}', "");
+    Expect(0, 921599, '\P{Is_GCB= cn}', "");
+    Expect(1, 921599, '\P{^Is_GCB= cn}', "");
+    Expect(0, 921600, '\p{Is_GCB= cn}', "");
+    Expect(1, 921600, '\p{^Is_GCB= cn}', "");
+    Expect(1, 921600, '\P{Is_GCB= cn}', "");
+    Expect(0, 921600, '\P{^Is_GCB= cn}', "");
+    Error('\p{Grapheme_Cluster_Break=:= _CR}');
+    Error('\P{Grapheme_Cluster_Break=:= _CR}');
     Expect(1, 13, '\p{Grapheme_Cluster_Break=:\ACR\z:}', "");;
     Expect(0, 14, '\p{Grapheme_Cluster_Break=:\ACR\z:}', "");;
     Expect(1, 13, '\p{Grapheme_Cluster_Break=cr}', "");
@@ -43439,16 +43999,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 14, '\P{^Grapheme_Cluster_Break=cr}', "");
     Expect(1, 13, '\p{Grapheme_Cluster_Break=:\Acr\z:}', "");;
     Expect(0, 14, '\p{Grapheme_Cluster_Break=:\Acr\z:}', "");;
-    Expect(1, 13, '\p{Grapheme_Cluster_Break=_CR}', "");
-    Expect(0, 13, '\p{^Grapheme_Cluster_Break=_CR}', "");
-    Expect(0, 13, '\P{Grapheme_Cluster_Break=_CR}', "");
-    Expect(1, 13, '\P{^Grapheme_Cluster_Break=_CR}', "");
-    Expect(0, 14, '\p{Grapheme_Cluster_Break=_CR}', "");
-    Expect(1, 14, '\p{^Grapheme_Cluster_Break=_CR}', "");
-    Expect(1, 14, '\P{Grapheme_Cluster_Break=_CR}', "");
-    Expect(0, 14, '\P{^Grapheme_Cluster_Break=_CR}', "");
-    Error('\p{GCB=:=_-CR}');
-    Error('\P{GCB=:=_-CR}');
+    Expect(1, 13, '\p{Grapheme_Cluster_Break=_cr}', "");
+    Expect(0, 13, '\p{^Grapheme_Cluster_Break=_cr}', "");
+    Expect(0, 13, '\P{Grapheme_Cluster_Break=_cr}', "");
+    Expect(1, 13, '\P{^Grapheme_Cluster_Break=_cr}', "");
+    Expect(0, 14, '\p{Grapheme_Cluster_Break=_cr}', "");
+    Expect(1, 14, '\p{^Grapheme_Cluster_Break=_cr}', "");
+    Expect(1, 14, '\P{Grapheme_Cluster_Break=_cr}', "");
+    Expect(0, 14, '\P{^Grapheme_Cluster_Break=_cr}', "");
+    Error('\p{GCB=:=CR}');
+    Error('\P{GCB=:=CR}');
     Expect(1, 13, '\p{GCB=:\ACR\z:}', "");;
     Expect(0, 14, '\p{GCB=:\ACR\z:}', "");;
     Expect(1, 13, '\p{GCB=cr}', "");
@@ -43461,174 +44021,174 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 14, '\P{^GCB=cr}', "");
     Expect(1, 13, '\p{GCB=:\Acr\z:}', "");;
     Expect(0, 14, '\p{GCB=:\Acr\z:}', "");;
-    Expect(1, 13, '\p{GCB=-CR}', "");
-    Expect(0, 13, '\p{^GCB=-CR}', "");
-    Expect(0, 13, '\P{GCB=-CR}', "");
-    Expect(1, 13, '\P{^GCB=-CR}', "");
-    Expect(0, 14, '\p{GCB=-CR}', "");
-    Expect(1, 14, '\p{^GCB=-CR}', "");
-    Expect(1, 14, '\P{GCB=-CR}', "");
-    Expect(0, 14, '\P{^GCB=-CR}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=	/a/cr}');
-    Error('\P{Is_Grapheme_Cluster_Break=	/a/cr}');
-    Expect(1, 13, '\p{Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(0, 13, '\p{^Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(0, 13, '\P{Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(1, 13, '\P{^Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(0, 14, '\p{Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(1, 14, '\p{^Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(1, 14, '\P{Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(0, 14, '\P{^Is_Grapheme_Cluster_Break: cr}', "");
-    Expect(1, 13, '\p{Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(0, 13, '\p{^Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(0, 13, '\P{Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(1, 13, '\P{^Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(0, 14, '\p{Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(1, 14, '\p{^Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(1, 14, '\P{Is_Grapheme_Cluster_Break=- CR}', "");
-    Expect(0, 14, '\P{^Is_Grapheme_Cluster_Break=- CR}', "");
-    Error('\p{Is_GCB=-/a/CR}');
-    Error('\P{Is_GCB=-/a/CR}');
-    Expect(1, 13, '\p{Is_GCB=cr}', "");
-    Expect(0, 13, '\p{^Is_GCB=cr}', "");
-    Expect(0, 13, '\P{Is_GCB=cr}', "");
-    Expect(1, 13, '\P{^Is_GCB=cr}', "");
-    Expect(0, 14, '\p{Is_GCB=cr}', "");
-    Expect(1, 14, '\p{^Is_GCB=cr}', "");
-    Expect(1, 14, '\P{Is_GCB=cr}', "");
-    Expect(0, 14, '\P{^Is_GCB=cr}', "");
-    Expect(1, 13, '\p{Is_GCB=	CR}', "");
-    Expect(0, 13, '\p{^Is_GCB=	CR}', "");
-    Expect(0, 13, '\P{Is_GCB=	CR}', "");
-    Expect(1, 13, '\P{^Is_GCB=	CR}', "");
-    Expect(0, 14, '\p{Is_GCB=	CR}', "");
-    Expect(1, 14, '\p{^Is_GCB=	CR}', "");
-    Expect(1, 14, '\P{Is_GCB=	CR}', "");
-    Expect(0, 14, '\P{^Is_GCB=	CR}', "");
-    Error('\p{Grapheme_Cluster_Break=:=	E_base}');
-    Error('\P{Grapheme_Cluster_Break=:=	E_base}');
+    Expect(1, 13, '\p{GCB=CR}', "");
+    Expect(0, 13, '\p{^GCB=CR}', "");
+    Expect(0, 13, '\P{GCB=CR}', "");
+    Expect(1, 13, '\P{^GCB=CR}', "");
+    Expect(0, 14, '\p{GCB=CR}', "");
+    Expect(1, 14, '\p{^GCB=CR}', "");
+    Expect(1, 14, '\P{GCB=CR}', "");
+    Expect(0, 14, '\P{^GCB=CR}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=/a/CR}');
+    Error('\P{Is_Grapheme_Cluster_Break=/a/CR}');
+    Expect(1, 13, '\p{Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(0, 13, '\p{^Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(0, 13, '\P{Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(1, 13, '\P{^Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(0, 14, '\p{Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(1, 14, '\p{^Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(1, 14, '\P{Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(0, 14, '\P{^Is_Grapheme_Cluster_Break=cr}', "");
+    Expect(1, 13, '\p{Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(0, 13, '\p{^Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(0, 13, '\P{Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(1, 13, '\P{^Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(0, 14, '\p{Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(1, 14, '\p{^Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(1, 14, '\P{Is_Grapheme_Cluster_Break= CR}', "");
+    Expect(0, 14, '\P{^Is_Grapheme_Cluster_Break= CR}', "");
+    Error('\p{Is_GCB=	/a/CR}');
+    Error('\P{Is_GCB=	/a/CR}');
+    Expect(1, 13, '\p{Is_GCB:   cr}', "");
+    Expect(0, 13, '\p{^Is_GCB:   cr}', "");
+    Expect(0, 13, '\P{Is_GCB:   cr}', "");
+    Expect(1, 13, '\P{^Is_GCB:   cr}', "");
+    Expect(0, 14, '\p{Is_GCB:   cr}', "");
+    Expect(1, 14, '\p{^Is_GCB:   cr}', "");
+    Expect(1, 14, '\P{Is_GCB:   cr}', "");
+    Expect(0, 14, '\P{^Is_GCB:   cr}', "");
+    Expect(1, 13, '\p{Is_GCB= -CR}', "");
+    Expect(0, 13, '\p{^Is_GCB= -CR}', "");
+    Expect(0, 13, '\P{Is_GCB= -CR}', "");
+    Expect(1, 13, '\P{^Is_GCB= -CR}', "");
+    Expect(0, 14, '\p{Is_GCB= -CR}', "");
+    Expect(1, 14, '\p{^Is_GCB= -CR}', "");
+    Expect(1, 14, '\P{Is_GCB= -CR}', "");
+    Expect(0, 14, '\P{^Is_GCB= -CR}', "");
+    Error('\p{Grapheme_Cluster_Break=/a/	_E_BASE}');
+    Error('\P{Grapheme_Cluster_Break=/a/	_E_BASE}');
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\AE_Base\z:}', "");;
     Expect(0, 1, '\p{Grapheme_Cluster_Break=ebase}', "");
     Expect(1, 1, '\p{^Grapheme_Cluster_Break=ebase}', "");
     Expect(1, 1, '\P{Grapheme_Cluster_Break=ebase}', "");
     Expect(0, 1, '\P{^Grapheme_Cluster_Break=ebase}', "");
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\Aebase\z:}', "");;
-    Expect(0, 1, '\p{Grapheme_Cluster_Break= E_Base}', "");
-    Expect(1, 1, '\p{^Grapheme_Cluster_Break= E_Base}', "");
-    Expect(1, 1, '\P{Grapheme_Cluster_Break= E_Base}', "");
-    Expect(0, 1, '\P{^Grapheme_Cluster_Break= E_Base}', "");
-    Error('\p{GCB=/a/EB}');
-    Error('\P{GCB=/a/EB}');
+    Expect(0, 1, '\p{Grapheme_Cluster_Break:   	E_Base}', "");
+    Expect(1, 1, '\p{^Grapheme_Cluster_Break:   	E_Base}', "");
+    Expect(1, 1, '\P{Grapheme_Cluster_Break:   	E_Base}', "");
+    Expect(0, 1, '\P{^Grapheme_Cluster_Break:   	E_Base}', "");
+    Error('\p{GCB=/a/_ EB}');
+    Error('\P{GCB=/a/_ EB}');
     Expect(0, 1, '\p{GCB=:\AEB\z:}', "");;
     Expect(0, 1, '\p{GCB=eb}', "");
     Expect(1, 1, '\p{^GCB=eb}', "");
     Expect(1, 1, '\P{GCB=eb}', "");
     Expect(0, 1, '\P{^GCB=eb}', "");
     Expect(0, 1, '\p{GCB=:\Aeb\z:}', "");;
-    Expect(0, 1, '\p{GCB:    	EB}', "");
-    Expect(1, 1, '\p{^GCB:    	EB}', "");
-    Expect(1, 1, '\P{GCB:    	EB}', "");
-    Expect(0, 1, '\P{^GCB:    	EB}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=:=_E_BASE}');
-    Error('\P{Is_Grapheme_Cluster_Break=:=_E_BASE}');
+    Expect(0, 1, '\p{GCB=-_EB}', "");
+    Expect(1, 1, '\p{^GCB=-_EB}', "");
+    Expect(1, 1, '\P{GCB=-_EB}', "");
+    Expect(0, 1, '\P{^GCB=-_EB}', "");
+    Error('\p{Is_Grapheme_Cluster_Break:			E_Base:=}');
+    Error('\P{Is_Grapheme_Cluster_Break:			E_Base:=}');
     Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=ebase}', "");
     Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=ebase}', "");
     Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=ebase}', "");
     Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=ebase}', "");
-    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=	-E_Base}', "");
-    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=	-E_Base}', "");
-    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=	-E_Base}', "");
-    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=	-E_Base}', "");
-    Error('\p{Is_GCB=/a/	-eb}');
-    Error('\P{Is_GCB=/a/	-eb}');
+    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break= -E_base}', "");
+    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break= -E_base}', "");
+    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break= -E_base}', "");
+    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break= -E_base}', "");
+    Error('\p{Is_GCB=:=	EB}');
+    Error('\P{Is_GCB=:=	EB}');
     Expect(0, 1, '\p{Is_GCB=eb}', "");
     Expect(1, 1, '\p{^Is_GCB=eb}', "");
     Expect(1, 1, '\P{Is_GCB=eb}', "");
     Expect(0, 1, '\P{^Is_GCB=eb}', "");
-    Expect(0, 1, '\p{Is_GCB=_	eb}', "");
-    Expect(1, 1, '\p{^Is_GCB=_	eb}', "");
-    Expect(1, 1, '\P{Is_GCB=_	eb}', "");
-    Expect(0, 1, '\P{^Is_GCB=_	eb}', "");
-    Error('\p{Grapheme_Cluster_Break=- E_Base_GAZ/a/}');
-    Error('\P{Grapheme_Cluster_Break=- E_Base_GAZ/a/}');
+    Expect(0, 1, '\p{Is_GCB=EB}', "");
+    Expect(1, 1, '\p{^Is_GCB=EB}', "");
+    Expect(1, 1, '\P{Is_GCB=EB}', "");
+    Expect(0, 1, '\P{^Is_GCB=EB}', "");
+    Error('\p{Grapheme_Cluster_Break=  E_base_GAZ:=}');
+    Error('\P{Grapheme_Cluster_Break=  E_base_GAZ:=}');
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\AE_Base_GAZ\z:}', "");;
     Expect(0, 1, '\p{Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(1, 1, '\p{^Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(1, 1, '\P{Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(0, 1, '\P{^Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\Aebasegaz\z:}', "");;
-    Expect(0, 1, '\p{Grapheme_Cluster_Break=-E_BASE_GAZ}', "");
-    Expect(1, 1, '\p{^Grapheme_Cluster_Break=-E_BASE_GAZ}', "");
-    Expect(1, 1, '\P{Grapheme_Cluster_Break=-E_BASE_GAZ}', "");
-    Expect(0, 1, '\P{^Grapheme_Cluster_Break=-E_BASE_GAZ}', "");
-    Error('\p{GCB=/a/ _ebg}');
-    Error('\P{GCB=/a/ _ebg}');
+    Expect(0, 1, '\p{Grapheme_Cluster_Break=-_E_Base_GAZ}', "");
+    Expect(1, 1, '\p{^Grapheme_Cluster_Break=-_E_Base_GAZ}', "");
+    Expect(1, 1, '\P{Grapheme_Cluster_Break=-_E_Base_GAZ}', "");
+    Expect(0, 1, '\P{^Grapheme_Cluster_Break=-_E_Base_GAZ}', "");
+    Error('\p{GCB=/a/__ebg}');
+    Error('\P{GCB=/a/__ebg}');
     Expect(0, 1, '\p{GCB=:\AEBG\z:}', "");;
-    Expect(0, 1, '\p{GCB=ebg}', "");
-    Expect(1, 1, '\p{^GCB=ebg}', "");
-    Expect(1, 1, '\P{GCB=ebg}', "");
-    Expect(0, 1, '\P{^GCB=ebg}', "");
+    Expect(0, 1, '\p{GCB: ebg}', "");
+    Expect(1, 1, '\p{^GCB: ebg}', "");
+    Expect(1, 1, '\P{GCB: ebg}', "");
+    Expect(0, 1, '\P{^GCB: ebg}', "");
     Expect(0, 1, '\p{GCB=:\Aebg\z:}', "");;
-    Expect(0, 1, '\p{GCB=-ebg}', "");
-    Expect(1, 1, '\p{^GCB=-ebg}', "");
-    Expect(1, 1, '\P{GCB=-ebg}', "");
-    Expect(0, 1, '\P{^GCB=-ebg}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=/a/ _E_Base_GAZ}');
-    Error('\P{Is_Grapheme_Cluster_Break=/a/ _E_Base_GAZ}');
+    Expect(0, 1, '\p{GCB=_	EBG}', "");
+    Expect(1, 1, '\p{^GCB=_	EBG}', "");
+    Expect(1, 1, '\P{GCB=_	EBG}', "");
+    Expect(0, 1, '\P{^GCB=_	EBG}', "");
+    Error('\p{Is_Grapheme_Cluster_Break: /a/	e_Base_gaz}');
+    Error('\P{Is_Grapheme_Cluster_Break: /a/	e_Base_gaz}');
     Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=ebasegaz}', "");
     Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=ebasegaz}', "");
-    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=	-E_Base_GAZ}', "");
-    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=	-E_Base_GAZ}', "");
-    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=	-E_Base_GAZ}', "");
-    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=	-E_Base_GAZ}', "");
-    Error('\p{Is_GCB=_:=EBG}');
-    Error('\P{Is_GCB=_:=EBG}');
+    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=- e_Base_GAZ}', "");
+    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=- e_Base_GAZ}', "");
+    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=- e_Base_GAZ}', "");
+    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=- e_Base_GAZ}', "");
+    Error('\p{Is_GCB=	EBG:=}');
+    Error('\P{Is_GCB=	EBG:=}');
     Expect(0, 1, '\p{Is_GCB=ebg}', "");
     Expect(1, 1, '\p{^Is_GCB=ebg}', "");
     Expect(1, 1, '\P{Is_GCB=ebg}', "");
     Expect(0, 1, '\P{^Is_GCB=ebg}', "");
-    Expect(0, 1, '\p{Is_GCB=	ebg}', "");
-    Expect(1, 1, '\p{^Is_GCB=	ebg}', "");
-    Expect(1, 1, '\P{Is_GCB=	ebg}', "");
-    Expect(0, 1, '\P{^Is_GCB=	ebg}', "");
-    Error('\p{Grapheme_Cluster_Break:	-E_MODIFIER/a/}');
-    Error('\P{Grapheme_Cluster_Break:	-E_MODIFIER/a/}');
+    Expect(0, 1, '\p{Is_GCB= 	ebg}', "");
+    Expect(1, 1, '\p{^Is_GCB= 	ebg}', "");
+    Expect(1, 1, '\P{Is_GCB= 	ebg}', "");
+    Expect(0, 1, '\P{^Is_GCB= 	ebg}', "");
+    Error('\p{Grapheme_Cluster_Break=-	E_MODIFIER/a/}');
+    Error('\P{Grapheme_Cluster_Break=-	E_MODIFIER/a/}');
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\AE_Modifier\z:}', "");;
     Expect(0, 1, '\p{Grapheme_Cluster_Break=emodifier}', "");
     Expect(1, 1, '\p{^Grapheme_Cluster_Break=emodifier}', "");
     Expect(1, 1, '\P{Grapheme_Cluster_Break=emodifier}', "");
     Expect(0, 1, '\P{^Grapheme_Cluster_Break=emodifier}', "");
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\Aemodifier\z:}', "");;
-    Expect(0, 1, '\p{Grapheme_Cluster_Break=	 E_Modifier}', "");
-    Expect(1, 1, '\p{^Grapheme_Cluster_Break=	 E_Modifier}', "");
-    Expect(1, 1, '\P{Grapheme_Cluster_Break=	 E_Modifier}', "");
-    Expect(0, 1, '\P{^Grapheme_Cluster_Break=	 E_Modifier}', "");
-    Error('\p{GCB=-EM/a/}');
-    Error('\P{GCB=-EM/a/}');
+    Expect(0, 1, '\p{Grapheme_Cluster_Break=_e_modifier}', "");
+    Expect(1, 1, '\p{^Grapheme_Cluster_Break=_e_modifier}', "");
+    Expect(1, 1, '\P{Grapheme_Cluster_Break=_e_modifier}', "");
+    Expect(0, 1, '\P{^Grapheme_Cluster_Break=_e_modifier}', "");
+    Error('\p{GCB=_/a/EM}');
+    Error('\P{GCB=_/a/EM}');
     Expect(0, 1, '\p{GCB=:\AEM\z:}', "");;
     Expect(0, 1, '\p{GCB=em}', "");
     Expect(1, 1, '\p{^GCB=em}', "");
     Expect(1, 1, '\P{GCB=em}', "");
     Expect(0, 1, '\P{^GCB=em}', "");
     Expect(0, 1, '\p{GCB=:\Aem\z:}', "");;
-    Expect(0, 1, '\p{GCB=-EM}', "");
-    Expect(1, 1, '\p{^GCB=-EM}', "");
-    Expect(1, 1, '\P{GCB=-EM}', "");
-    Expect(0, 1, '\P{^GCB=-EM}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=	/a/E_Modifier}');
-    Error('\P{Is_Grapheme_Cluster_Break=	/a/E_Modifier}');
+    Expect(0, 1, '\p{GCB=-	EM}', "");
+    Expect(1, 1, '\p{^GCB=-	EM}', "");
+    Expect(1, 1, '\P{GCB=-	EM}', "");
+    Expect(0, 1, '\P{^GCB=-	EM}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=__E_modifier/a/}');
+    Error('\P{Is_Grapheme_Cluster_Break=__E_modifier/a/}');
     Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=emodifier}', "");
     Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=emodifier}', "");
     Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=emodifier}', "");
     Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=emodifier}', "");
-    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=-_E_MODIFIER}', "");
-    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=-_E_MODIFIER}', "");
-    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=-_E_MODIFIER}', "");
-    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=-_E_MODIFIER}', "");
-    Error('\p{Is_GCB=-	EM:=}');
-    Error('\P{Is_GCB=-	EM:=}');
+    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=-E_MODIFIER}', "");
+    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=-E_MODIFIER}', "");
+    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=-E_MODIFIER}', "");
+    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=-E_MODIFIER}', "");
+    Error('\p{Is_GCB=:=- em}');
+    Error('\P{Is_GCB=:=- em}');
     Expect(0, 1, '\p{Is_GCB=em}', "");
     Expect(1, 1, '\p{^Is_GCB=em}', "");
     Expect(1, 1, '\P{Is_GCB=em}', "");
@@ -43637,30 +44197,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1, '\p{^Is_GCB=_EM}', "");
     Expect(1, 1, '\P{Is_GCB=_EM}', "");
     Expect(0, 1, '\P{^Is_GCB=_EM}', "");
-    Error('\p{Grapheme_Cluster_Break=:=-Extend}');
-    Error('\P{Grapheme_Cluster_Break=:=-Extend}');
+    Error('\p{Grapheme_Cluster_Break=_-extend/a/}');
+    Error('\P{Grapheme_Cluster_Break=_-extend/a/}');
     Expect(1, 917999, '\p{Grapheme_Cluster_Break=:\AExtend\z:}', "");;
     Expect(0, 918000, '\p{Grapheme_Cluster_Break=:\AExtend\z:}', "");;
-    Expect(1, 917999, '\p{Grapheme_Cluster_Break:	extend}', "");
-    Expect(0, 917999, '\p{^Grapheme_Cluster_Break:	extend}', "");
-    Expect(0, 917999, '\P{Grapheme_Cluster_Break:	extend}', "");
-    Expect(1, 917999, '\P{^Grapheme_Cluster_Break:	extend}', "");
-    Expect(0, 918000, '\p{Grapheme_Cluster_Break:	extend}', "");
-    Expect(1, 918000, '\p{^Grapheme_Cluster_Break:	extend}', "");
-    Expect(1, 918000, '\P{Grapheme_Cluster_Break:	extend}', "");
-    Expect(0, 918000, '\P{^Grapheme_Cluster_Break:	extend}', "");
+    Expect(1, 917999, '\p{Grapheme_Cluster_Break=extend}', "");
+    Expect(0, 917999, '\p{^Grapheme_Cluster_Break=extend}', "");
+    Expect(0, 917999, '\P{Grapheme_Cluster_Break=extend}', "");
+    Expect(1, 917999, '\P{^Grapheme_Cluster_Break=extend}', "");
+    Expect(0, 918000, '\p{Grapheme_Cluster_Break=extend}', "");
+    Expect(1, 918000, '\p{^Grapheme_Cluster_Break=extend}', "");
+    Expect(1, 918000, '\P{Grapheme_Cluster_Break=extend}', "");
+    Expect(0, 918000, '\P{^Grapheme_Cluster_Break=extend}', "");
     Expect(1, 917999, '\p{Grapheme_Cluster_Break=:\Aextend\z:}', "");;
     Expect(0, 918000, '\p{Grapheme_Cluster_Break=:\Aextend\z:}', "");;
-    Expect(1, 917999, '\p{Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(0, 917999, '\p{^Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(0, 917999, '\P{Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(1, 917999, '\P{^Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(0, 918000, '\p{Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(1, 918000, '\p{^Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(1, 918000, '\P{Grapheme_Cluster_Break=-_Extend}', "");
-    Expect(0, 918000, '\P{^Grapheme_Cluster_Break=-_Extend}', "");
-    Error('\p{GCB=	_EX:=}');
-    Error('\P{GCB=	_EX:=}');
+    Expect(1, 917999, '\p{Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(0, 917999, '\p{^Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(0, 917999, '\P{Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(1, 917999, '\P{^Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(0, 918000, '\p{Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(1, 918000, '\p{^Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(1, 918000, '\P{Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Expect(0, 918000, '\P{^Grapheme_Cluster_Break:	-_EXTEND}', "");
+    Error('\p{GCB=:=		EX}');
+    Error('\P{GCB=:=		EX}');
     Expect(1, 917999, '\p{GCB=:\AEX\z:}', "");;
     Expect(0, 918000, '\p{GCB=:\AEX\z:}', "");;
     Expect(1, 917999, '\p{GCB=ex}', "");
@@ -43673,16 +44233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^GCB=ex}', "");
     Expect(1, 917999, '\p{GCB=:\Aex\z:}', "");;
     Expect(0, 918000, '\p{GCB=:\Aex\z:}', "");;
-    Expect(1, 917999, '\p{GCB=-	EX}', "");
-    Expect(0, 917999, '\p{^GCB=-	EX}', "");
-    Expect(0, 917999, '\P{GCB=-	EX}', "");
-    Expect(1, 917999, '\P{^GCB=-	EX}', "");
-    Expect(0, 918000, '\p{GCB=-	EX}', "");
-    Expect(1, 918000, '\p{^GCB=-	EX}', "");
-    Expect(1, 918000, '\P{GCB=-	EX}', "");
-    Expect(0, 918000, '\P{^GCB=-	EX}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=__EXTEND/a/}');
-    Error('\P{Is_Grapheme_Cluster_Break=__EXTEND/a/}');
+    Expect(1, 917999, '\p{GCB:_-EX}', "");
+    Expect(0, 917999, '\p{^GCB:_-EX}', "");
+    Expect(0, 917999, '\P{GCB:_-EX}', "");
+    Expect(1, 917999, '\P{^GCB:_-EX}', "");
+    Expect(0, 918000, '\p{GCB:_-EX}', "");
+    Expect(1, 918000, '\p{^GCB:_-EX}', "");
+    Expect(1, 918000, '\P{GCB:_-EX}', "");
+    Expect(0, 918000, '\P{^GCB:_-EX}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=	:=Extend}');
+    Error('\P{Is_Grapheme_Cluster_Break=	:=Extend}');
     Expect(1, 917999, '\p{Is_Grapheme_Cluster_Break=extend}', "");
     Expect(0, 917999, '\p{^Is_Grapheme_Cluster_Break=extend}', "");
     Expect(0, 917999, '\P{Is_Grapheme_Cluster_Break=extend}', "");
@@ -43691,16 +44251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Grapheme_Cluster_Break=extend}', "");
     Expect(1, 918000, '\P{Is_Grapheme_Cluster_Break=extend}', "");
     Expect(0, 918000, '\P{^Is_Grapheme_Cluster_Break=extend}', "");
-    Expect(1, 917999, '\p{Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(0, 917999, '\p{^Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(0, 917999, '\P{Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(1, 917999, '\P{^Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(0, 918000, '\p{Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(1, 918000, '\p{^Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(1, 918000, '\P{Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Expect(0, 918000, '\P{^Is_Grapheme_Cluster_Break=-EXTEND}', "");
-    Error('\p{Is_GCB=	EX:=}');
-    Error('\P{Is_GCB=	EX:=}');
+    Expect(1, 917999, '\p{Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(0, 917999, '\p{^Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(0, 917999, '\P{Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(1, 917999, '\P{^Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(0, 918000, '\p{Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(1, 918000, '\p{^Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(1, 918000, '\P{Is_Grapheme_Cluster_Break=	_extend}', "");
+    Expect(0, 918000, '\P{^Is_Grapheme_Cluster_Break=	_extend}', "");
+    Error('\p{Is_GCB::= -EX}');
+    Error('\P{Is_GCB::= -EX}');
     Expect(1, 917999, '\p{Is_GCB=ex}', "");
     Expect(0, 917999, '\p{^Is_GCB=ex}', "");
     Expect(0, 917999, '\P{Is_GCB=ex}', "");
@@ -43709,60 +44269,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_GCB=ex}', "");
     Expect(1, 918000, '\P{Is_GCB=ex}', "");
     Expect(0, 918000, '\P{^Is_GCB=ex}', "");
-    Expect(1, 917999, '\p{Is_GCB:   -	ex}', "");
-    Expect(0, 917999, '\p{^Is_GCB:   -	ex}', "");
-    Expect(0, 917999, '\P{Is_GCB:   -	ex}', "");
-    Expect(1, 917999, '\P{^Is_GCB:   -	ex}', "");
-    Expect(0, 918000, '\p{Is_GCB:   -	ex}', "");
-    Expect(1, 918000, '\p{^Is_GCB:   -	ex}', "");
-    Expect(1, 918000, '\P{Is_GCB:   -	ex}', "");
-    Expect(0, 918000, '\P{^Is_GCB:   -	ex}', "");
-    Error('\p{Grapheme_Cluster_Break=-_glue_After_ZWJ:=}');
-    Error('\P{Grapheme_Cluster_Break=-_glue_After_ZWJ:=}');
+    Expect(1, 917999, '\p{Is_GCB:   	EX}', "");
+    Expect(0, 917999, '\p{^Is_GCB:   	EX}', "");
+    Expect(0, 917999, '\P{Is_GCB:   	EX}', "");
+    Expect(1, 917999, '\P{^Is_GCB:   	EX}', "");
+    Expect(0, 918000, '\p{Is_GCB:   	EX}', "");
+    Expect(1, 918000, '\p{^Is_GCB:   	EX}', "");
+    Expect(1, 918000, '\P{Is_GCB:   	EX}', "");
+    Expect(0, 918000, '\P{^Is_GCB:   	EX}', "");
+    Error('\p{Grapheme_Cluster_Break:_	Glue_After_Zwj/a/}');
+    Error('\P{Grapheme_Cluster_Break:_	Glue_After_Zwj/a/}');
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\AGlue_After_Zwj\z:}', "");;
     Expect(0, 1, '\p{Grapheme_Cluster_Break=glueafterzwj}', "");
     Expect(1, 1, '\p{^Grapheme_Cluster_Break=glueafterzwj}', "");
     Expect(1, 1, '\P{Grapheme_Cluster_Break=glueafterzwj}', "");
     Expect(0, 1, '\P{^Grapheme_Cluster_Break=glueafterzwj}', "");
     Expect(0, 1, '\p{Grapheme_Cluster_Break=:\Aglueafterzwj\z:}', "");;
-    Expect(0, 1, '\p{Grapheme_Cluster_Break=	glue_AFTER_ZWJ}', "");
-    Expect(1, 1, '\p{^Grapheme_Cluster_Break=	glue_AFTER_ZWJ}', "");
-    Expect(1, 1, '\P{Grapheme_Cluster_Break=	glue_AFTER_ZWJ}', "");
-    Expect(0, 1, '\P{^Grapheme_Cluster_Break=	glue_AFTER_ZWJ}', "");
-    Error('\p{GCB=:= 	gaz}');
-    Error('\P{GCB=:= 	gaz}');
+    Expect(0, 1, '\p{Grapheme_Cluster_Break= Glue_After_ZWJ}', "");
+    Expect(1, 1, '\p{^Grapheme_Cluster_Break= Glue_After_ZWJ}', "");
+    Expect(1, 1, '\P{Grapheme_Cluster_Break= Glue_After_ZWJ}', "");
+    Expect(0, 1, '\P{^Grapheme_Cluster_Break= Glue_After_ZWJ}', "");
+    Error('\p{GCB=:=--GAZ}');
+    Error('\P{GCB=:=--GAZ}');
     Expect(0, 1, '\p{GCB=:\AGAZ\z:}', "");;
     Expect(0, 1, '\p{GCB=gaz}', "");
     Expect(1, 1, '\p{^GCB=gaz}', "");
     Expect(1, 1, '\P{GCB=gaz}', "");
     Expect(0, 1, '\P{^GCB=gaz}', "");
     Expect(0, 1, '\p{GCB=:\Agaz\z:}', "");;
-    Expect(0, 1, '\p{GCB=__GAZ}', "");
-    Expect(1, 1, '\p{^GCB=__GAZ}', "");
-    Expect(1, 1, '\P{GCB=__GAZ}', "");
-    Expect(0, 1, '\P{^GCB=__GAZ}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=-/a/Glue_AFTER_Zwj}');
-    Error('\P{Is_Grapheme_Cluster_Break=-/a/Glue_AFTER_Zwj}');
-    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break:glueafterzwj}', "");
-    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break:glueafterzwj}', "");
-    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break:glueafterzwj}', "");
-    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break:glueafterzwj}', "");
-    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=  glue_after_ZWJ}', "");
-    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=  glue_after_ZWJ}', "");
-    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=  glue_after_ZWJ}', "");
-    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=  glue_after_ZWJ}', "");
-    Error('\p{Is_GCB=:=gaz}');
-    Error('\P{Is_GCB=:=gaz}');
+    Expect(0, 1, '\p{GCB=	-GAZ}', "");
+    Expect(1, 1, '\p{^GCB=	-GAZ}', "");
+    Expect(1, 1, '\P{GCB=	-GAZ}', "");
+    Expect(0, 1, '\P{^GCB=	-GAZ}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=	-GLUE_After_ZWJ/a/}');
+    Error('\P{Is_Grapheme_Cluster_Break=	-GLUE_After_ZWJ/a/}');
+    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=glueafterzwj}', "");
+    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=glueafterzwj}', "");
+    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=glueafterzwj}', "");
+    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=glueafterzwj}', "");
+    Expect(0, 1, '\p{Is_Grapheme_Cluster_Break=--Glue_After_zwj}', "");
+    Expect(1, 1, '\p{^Is_Grapheme_Cluster_Break=--Glue_After_zwj}', "");
+    Expect(1, 1, '\P{Is_Grapheme_Cluster_Break=--Glue_After_zwj}', "");
+    Expect(0, 1, '\P{^Is_Grapheme_Cluster_Break=--Glue_After_zwj}', "");
+    Error('\p{Is_GCB=_ GAZ:=}');
+    Error('\P{Is_GCB=_ GAZ:=}');
     Expect(0, 1, '\p{Is_GCB=gaz}', "");
     Expect(1, 1, '\p{^Is_GCB=gaz}', "");
     Expect(1, 1, '\P{Is_GCB=gaz}', "");
     Expect(0, 1, '\P{^Is_GCB=gaz}', "");
-    Expect(0, 1, '\p{Is_GCB=--GAZ}', "");
-    Expect(1, 1, '\p{^Is_GCB=--GAZ}', "");
-    Expect(1, 1, '\P{Is_GCB=--GAZ}', "");
-    Expect(0, 1, '\P{^Is_GCB=--GAZ}', "");
-    Error('\p{Grapheme_Cluster_Break=/a/--l}');
-    Error('\P{Grapheme_Cluster_Break=/a/--l}');
+    Expect(0, 1, '\p{Is_GCB: __GAZ}', "");
+    Expect(1, 1, '\p{^Is_GCB: __GAZ}', "");
+    Expect(1, 1, '\P{Is_GCB: __GAZ}', "");
+    Expect(0, 1, '\P{^Is_GCB: __GAZ}', "");
+    Error('\p{Grapheme_Cluster_Break=__L/a/}');
+    Error('\P{Grapheme_Cluster_Break=__L/a/}');
     Expect(1, 43388, '\p{Grapheme_Cluster_Break=:\AL\z:}', "");;
     Expect(0, 43389, '\p{Grapheme_Cluster_Break=:\AL\z:}', "");;
     Expect(1, 43388, '\p{Grapheme_Cluster_Break=l}', "");
@@ -43775,38 +44335,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43389, '\P{^Grapheme_Cluster_Break=l}', "");
     Expect(1, 43388, '\p{Grapheme_Cluster_Break=:\Al\z:}', "");;
     Expect(0, 43389, '\p{Grapheme_Cluster_Break=:\Al\z:}', "");;
-    Expect(1, 43388, '\p{Grapheme_Cluster_Break= L}', "");
-    Expect(0, 43388, '\p{^Grapheme_Cluster_Break= L}', "");
-    Expect(0, 43388, '\P{Grapheme_Cluster_Break= L}', "");
-    Expect(1, 43388, '\P{^Grapheme_Cluster_Break= L}', "");
-    Expect(0, 43389, '\p{Grapheme_Cluster_Break= L}', "");
-    Expect(1, 43389, '\p{^Grapheme_Cluster_Break= L}', "");
-    Expect(1, 43389, '\P{Grapheme_Cluster_Break= L}', "");
-    Expect(0, 43389, '\P{^Grapheme_Cluster_Break= L}', "");
-    Error('\p{GCB=/a/ 	l}');
-    Error('\P{GCB=/a/ 	l}');
+    Expect(1, 43388, '\p{Grapheme_Cluster_Break=-L}', "");
+    Expect(0, 43388, '\p{^Grapheme_Cluster_Break=-L}', "");
+    Expect(0, 43388, '\P{Grapheme_Cluster_Break=-L}', "");
+    Expect(1, 43388, '\P{^Grapheme_Cluster_Break=-L}', "");
+    Expect(0, 43389, '\p{Grapheme_Cluster_Break=-L}', "");
+    Expect(1, 43389, '\p{^Grapheme_Cluster_Break=-L}', "");
+    Expect(1, 43389, '\P{Grapheme_Cluster_Break=-L}', "");
+    Expect(0, 43389, '\P{^Grapheme_Cluster_Break=-L}', "");
+    Error('\p{GCB=/a/  l}');
+    Error('\P{GCB=/a/  l}');
     Expect(1, 43388, '\p{GCB=:\AL\z:}', "");;
     Expect(0, 43389, '\p{GCB=:\AL\z:}', "");;
-    Expect(1, 43388, '\p{GCB=l}', "");
-    Expect(0, 43388, '\p{^GCB=l}', "");
-    Expect(0, 43388, '\P{GCB=l}', "");
-    Expect(1, 43388, '\P{^GCB=l}', "");
-    Expect(0, 43389, '\p{GCB=l}', "");
-    Expect(1, 43389, '\p{^GCB=l}', "");
-    Expect(1, 43389, '\P{GCB=l}', "");
-    Expect(0, 43389, '\P{^GCB=l}', "");
+    Expect(1, 43388, '\p{GCB:	l}', "");
+    Expect(0, 43388, '\p{^GCB:	l}', "");
+    Expect(0, 43388, '\P{GCB:	l}', "");
+    Expect(1, 43388, '\P{^GCB:	l}', "");
+    Expect(0, 43389, '\p{GCB:	l}', "");
+    Expect(1, 43389, '\p{^GCB:	l}', "");
+    Expect(1, 43389, '\P{GCB:	l}', "");
+    Expect(0, 43389, '\P{^GCB:	l}', "");
     Expect(1, 43388, '\p{GCB=:\Al\z:}', "");;
     Expect(0, 43389, '\p{GCB=:\Al\z:}', "");;
-    Expect(1, 43388, '\p{GCB=_-L}', "");
-    Expect(0, 43388, '\p{^GCB=_-L}', "");
-    Expect(0, 43388, '\P{GCB=_-L}', "");
-    Expect(1, 43388, '\P{^GCB=_-L}', "");
-    Expect(0, 43389, '\p{GCB=_-L}', "");
-    Expect(1, 43389, '\p{^GCB=_-L}', "");
-    Expect(1, 43389, '\P{GCB=_-L}', "");
-    Expect(0, 43389, '\P{^GCB=_-L}', "");
-    Error('\p{Is_Grapheme_Cluster_Break:	- L:=}');
-    Error('\P{Is_Grapheme_Cluster_Break:	- L:=}');
+    Expect(1, 43388, '\p{GCB=	L}', "");
+    Expect(0, 43388, '\p{^GCB=	L}', "");
+    Expect(0, 43388, '\P{GCB=	L}', "");
+    Expect(1, 43388, '\P{^GCB=	L}', "");
+    Expect(0, 43389, '\p{GCB=	L}', "");
+    Expect(1, 43389, '\p{^GCB=	L}', "");
+    Expect(1, 43389, '\P{GCB=	L}', "");
+    Expect(0, 43389, '\P{^GCB=	L}', "");
+    Error('\p{Is_Grapheme_Cluster_Break:	/a/	 l}');
+    Error('\P{Is_Grapheme_Cluster_Break:	/a/	 l}');
     Expect(1, 43388, '\p{Is_Grapheme_Cluster_Break=l}', "");
     Expect(0, 43388, '\p{^Is_Grapheme_Cluster_Break=l}', "");
     Expect(0, 43388, '\P{Is_Grapheme_Cluster_Break=l}', "");
@@ -43815,34 +44375,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43389, '\p{^Is_Grapheme_Cluster_Break=l}', "");
     Expect(1, 43389, '\P{Is_Grapheme_Cluster_Break=l}', "");
     Expect(0, 43389, '\P{^Is_Grapheme_Cluster_Break=l}', "");
-    Expect(1, 43388, '\p{Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(0, 43388, '\p{^Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(0, 43388, '\P{Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(1, 43388, '\P{^Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(0, 43389, '\p{Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(1, 43389, '\p{^Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(1, 43389, '\P{Is_Grapheme_Cluster_Break=	L}', "");
-    Expect(0, 43389, '\P{^Is_Grapheme_Cluster_Break=	L}', "");
-    Error('\p{Is_GCB: :=_ L}');
-    Error('\P{Is_GCB: :=_ L}');
-    Expect(1, 43388, '\p{Is_GCB:	l}', "");
-    Expect(0, 43388, '\p{^Is_GCB:	l}', "");
-    Expect(0, 43388, '\P{Is_GCB:	l}', "");
-    Expect(1, 43388, '\P{^Is_GCB:	l}', "");
-    Expect(0, 43389, '\p{Is_GCB:	l}', "");
-    Expect(1, 43389, '\p{^Is_GCB:	l}', "");
-    Expect(1, 43389, '\P{Is_GCB:	l}', "");
-    Expect(0, 43389, '\P{^Is_GCB:	l}', "");
-    Expect(1, 43388, '\p{Is_GCB=_l}', "");
-    Expect(0, 43388, '\p{^Is_GCB=_l}', "");
-    Expect(0, 43388, '\P{Is_GCB=_l}', "");
-    Expect(1, 43388, '\P{^Is_GCB=_l}', "");
-    Expect(0, 43389, '\p{Is_GCB=_l}', "");
-    Expect(1, 43389, '\p{^Is_GCB=_l}', "");
-    Expect(1, 43389, '\P{Is_GCB=_l}', "");
-    Expect(0, 43389, '\P{^Is_GCB=_l}', "");
-    Error('\p{Grapheme_Cluster_Break:	:=LF}');
-    Error('\P{Grapheme_Cluster_Break:	:=LF}');
+    Expect(1, 43388, '\p{Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(0, 43388, '\p{^Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(0, 43388, '\P{Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(1, 43388, '\P{^Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(0, 43389, '\p{Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(1, 43389, '\p{^Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(1, 43389, '\P{Is_Grapheme_Cluster_Break=		l}', "");
+    Expect(0, 43389, '\P{^Is_Grapheme_Cluster_Break=		l}', "");
+    Error('\p{Is_GCB:   /a/ L}');
+    Error('\P{Is_GCB:   /a/ L}');
+    Expect(1, 43388, '\p{Is_GCB=l}', "");
+    Expect(0, 43388, '\p{^Is_GCB=l}', "");
+    Expect(0, 43388, '\P{Is_GCB=l}', "");
+    Expect(1, 43388, '\P{^Is_GCB=l}', "");
+    Expect(0, 43389, '\p{Is_GCB=l}', "");
+    Expect(1, 43389, '\p{^Is_GCB=l}', "");
+    Expect(1, 43389, '\P{Is_GCB=l}', "");
+    Expect(0, 43389, '\P{^Is_GCB=l}', "");
+    Expect(1, 43388, '\p{Is_GCB= L}', "");
+    Expect(0, 43388, '\p{^Is_GCB= L}', "");
+    Expect(0, 43388, '\P{Is_GCB= L}', "");
+    Expect(1, 43388, '\P{^Is_GCB= L}', "");
+    Expect(0, 43389, '\p{Is_GCB= L}', "");
+    Expect(1, 43389, '\p{^Is_GCB= L}', "");
+    Expect(1, 43389, '\P{Is_GCB= L}', "");
+    Expect(0, 43389, '\P{^Is_GCB= L}', "");
+    Error('\p{Grapheme_Cluster_Break=:=	-LF}');
+    Error('\P{Grapheme_Cluster_Break=:=	-LF}');
     Expect(1, 10, '\p{Grapheme_Cluster_Break=:\ALF\z:}', "");;
     Expect(0, 11, '\p{Grapheme_Cluster_Break=:\ALF\z:}', "");;
     Expect(1, 10, '\p{Grapheme_Cluster_Break=lf}', "");
@@ -43855,16 +44415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11, '\P{^Grapheme_Cluster_Break=lf}', "");
     Expect(1, 10, '\p{Grapheme_Cluster_Break=:\Alf\z:}', "");;
     Expect(0, 11, '\p{Grapheme_Cluster_Break=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{Grapheme_Cluster_Break=_ LF}', "");
-    Expect(0, 10, '\p{^Grapheme_Cluster_Break=_ LF}', "");
-    Expect(0, 10, '\P{Grapheme_Cluster_Break=_ LF}', "");
-    Expect(1, 10, '\P{^Grapheme_Cluster_Break=_ LF}', "");
-    Expect(0, 11, '\p{Grapheme_Cluster_Break=_ LF}', "");
-    Expect(1, 11, '\p{^Grapheme_Cluster_Break=_ LF}', "");
-    Expect(1, 11, '\P{Grapheme_Cluster_Break=_ LF}', "");
-    Expect(0, 11, '\P{^Grapheme_Cluster_Break=_ LF}', "");
-    Error('\p{GCB= -LF/a/}');
-    Error('\P{GCB= -LF/a/}');
+    Expect(1, 10, '\p{Grapheme_Cluster_Break=_LF}', "");
+    Expect(0, 10, '\p{^Grapheme_Cluster_Break=_LF}', "");
+    Expect(0, 10, '\P{Grapheme_Cluster_Break=_LF}', "");
+    Expect(1, 10, '\P{^Grapheme_Cluster_Break=_LF}', "");
+    Expect(0, 11, '\p{Grapheme_Cluster_Break=_LF}', "");
+    Expect(1, 11, '\p{^Grapheme_Cluster_Break=_LF}', "");
+    Expect(1, 11, '\P{Grapheme_Cluster_Break=_LF}', "");
+    Expect(0, 11, '\P{^Grapheme_Cluster_Break=_LF}', "");
+    Error('\p{GCB=/a/ LF}');
+    Error('\P{GCB=/a/ LF}');
     Expect(1, 10, '\p{GCB=:\ALF\z:}', "");;
     Expect(0, 11, '\p{GCB=:\ALF\z:}', "");;
     Expect(1, 10, '\p{GCB=lf}', "");
@@ -43877,16 +44437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11, '\P{^GCB=lf}', "");
     Expect(1, 10, '\p{GCB=:\Alf\z:}', "");;
     Expect(0, 11, '\p{GCB=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{GCB:	 LF}', "");
-    Expect(0, 10, '\p{^GCB:	 LF}', "");
-    Expect(0, 10, '\P{GCB:	 LF}', "");
-    Expect(1, 10, '\P{^GCB:	 LF}', "");
-    Expect(0, 11, '\p{GCB:	 LF}', "");
-    Expect(1, 11, '\p{^GCB:	 LF}', "");
-    Expect(1, 11, '\P{GCB:	 LF}', "");
-    Expect(0, 11, '\P{^GCB:	 LF}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=/a/- LF}');
-    Error('\P{Is_Grapheme_Cluster_Break=/a/- LF}');
+    Expect(1, 10, '\p{GCB=  LF}', "");
+    Expect(0, 10, '\p{^GCB=  LF}', "");
+    Expect(0, 10, '\P{GCB=  LF}', "");
+    Expect(1, 10, '\P{^GCB=  LF}', "");
+    Expect(0, 11, '\p{GCB=  LF}', "");
+    Expect(1, 11, '\p{^GCB=  LF}', "");
+    Expect(1, 11, '\P{GCB=  LF}', "");
+    Expect(0, 11, '\P{^GCB=  LF}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=	lf:=}');
+    Error('\P{Is_Grapheme_Cluster_Break=	lf:=}');
     Expect(1, 10, '\p{Is_Grapheme_Cluster_Break=lf}', "");
     Expect(0, 10, '\p{^Is_Grapheme_Cluster_Break=lf}', "");
     Expect(0, 10, '\P{Is_Grapheme_Cluster_Break=lf}', "");
@@ -43895,16 +44455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11, '\p{^Is_Grapheme_Cluster_Break=lf}', "");
     Expect(1, 11, '\P{Is_Grapheme_Cluster_Break=lf}', "");
     Expect(0, 11, '\P{^Is_Grapheme_Cluster_Break=lf}', "");
-    Expect(1, 10, '\p{Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(0, 10, '\p{^Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(0, 10, '\P{Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(1, 10, '\P{^Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(0, 11, '\p{Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(1, 11, '\p{^Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(1, 11, '\P{Is_Grapheme_Cluster_Break=	 LF}', "");
-    Expect(0, 11, '\P{^Is_Grapheme_Cluster_Break=	 LF}', "");
-    Error('\p{Is_GCB=-LF:=}');
-    Error('\P{Is_GCB=-LF:=}');
+    Expect(1, 10, '\p{Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(0, 10, '\p{^Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(0, 10, '\P{Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(1, 10, '\P{^Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(0, 11, '\p{Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(1, 11, '\p{^Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(1, 11, '\P{Is_Grapheme_Cluster_Break=_-lf}', "");
+    Expect(0, 11, '\P{^Is_Grapheme_Cluster_Break=_-lf}', "");
+    Error('\p{Is_GCB:   :=-LF}');
+    Error('\P{Is_GCB:   :=-LF}');
     Expect(1, 10, '\p{Is_GCB=lf}', "");
     Expect(0, 10, '\p{^Is_GCB=lf}', "");
     Expect(0, 10, '\P{Is_GCB=lf}', "");
@@ -43913,38 +44473,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11, '\p{^Is_GCB=lf}', "");
     Expect(1, 11, '\P{Is_GCB=lf}', "");
     Expect(0, 11, '\P{^Is_GCB=lf}', "");
-    Expect(1, 10, '\p{Is_GCB= 	lf}', "");
-    Expect(0, 10, '\p{^Is_GCB= 	lf}', "");
-    Expect(0, 10, '\P{Is_GCB= 	lf}', "");
-    Expect(1, 10, '\P{^Is_GCB= 	lf}', "");
-    Expect(0, 11, '\p{Is_GCB= 	lf}', "");
-    Expect(1, 11, '\p{^Is_GCB= 	lf}', "");
-    Expect(1, 11, '\P{Is_GCB= 	lf}', "");
-    Expect(0, 11, '\P{^Is_GCB= 	lf}', "");
-    Error('\p{Grapheme_Cluster_Break=_LV/a/}');
-    Error('\P{Grapheme_Cluster_Break=_LV/a/}');
+    Expect(1, 10, '\p{Is_GCB:	 LF}', "");
+    Expect(0, 10, '\p{^Is_GCB:	 LF}', "");
+    Expect(0, 10, '\P{Is_GCB:	 LF}', "");
+    Expect(1, 10, '\P{^Is_GCB:	 LF}', "");
+    Expect(0, 11, '\p{Is_GCB:	 LF}', "");
+    Expect(1, 11, '\p{^Is_GCB:	 LF}', "");
+    Expect(1, 11, '\P{Is_GCB:	 LF}', "");
+    Expect(0, 11, '\P{^Is_GCB:	 LF}', "");
+    Error('\p{Grapheme_Cluster_Break: :=LV}');
+    Error('\P{Grapheme_Cluster_Break: :=LV}');
     Expect(1, 55176, '\p{Grapheme_Cluster_Break=:\ALV\z:}', "");;
     Expect(0, 55177, '\p{Grapheme_Cluster_Break=:\ALV\z:}', "");;
-    Expect(1, 55176, '\p{Grapheme_Cluster_Break: lv}', "");
-    Expect(0, 55176, '\p{^Grapheme_Cluster_Break: lv}', "");
-    Expect(0, 55176, '\P{Grapheme_Cluster_Break: lv}', "");
-    Expect(1, 55176, '\P{^Grapheme_Cluster_Break: lv}', "");
-    Expect(0, 55177, '\p{Grapheme_Cluster_Break: lv}', "");
-    Expect(1, 55177, '\p{^Grapheme_Cluster_Break: lv}', "");
-    Expect(1, 55177, '\P{Grapheme_Cluster_Break: lv}', "");
-    Expect(0, 55177, '\P{^Grapheme_Cluster_Break: lv}', "");
+    Expect(1, 55176, '\p{Grapheme_Cluster_Break=lv}', "");
+    Expect(0, 55176, '\p{^Grapheme_Cluster_Break=lv}', "");
+    Expect(0, 55176, '\P{Grapheme_Cluster_Break=lv}', "");
+    Expect(1, 55176, '\P{^Grapheme_Cluster_Break=lv}', "");
+    Expect(0, 55177, '\p{Grapheme_Cluster_Break=lv}', "");
+    Expect(1, 55177, '\p{^Grapheme_Cluster_Break=lv}', "");
+    Expect(1, 55177, '\P{Grapheme_Cluster_Break=lv}', "");
+    Expect(0, 55177, '\P{^Grapheme_Cluster_Break=lv}', "");
     Expect(1, 55176, '\p{Grapheme_Cluster_Break=:\Alv\z:}', "");;
     Expect(0, 55177, '\p{Grapheme_Cluster_Break=:\Alv\z:}', "");;
-    Expect(1, 55176, '\p{Grapheme_Cluster_Break= -lv}', "");
-    Expect(0, 55176, '\p{^Grapheme_Cluster_Break= -lv}', "");
-    Expect(0, 55176, '\P{Grapheme_Cluster_Break= -lv}', "");
-    Expect(1, 55176, '\P{^Grapheme_Cluster_Break= -lv}', "");
-    Expect(0, 55177, '\p{Grapheme_Cluster_Break= -lv}', "");
-    Expect(1, 55177, '\p{^Grapheme_Cluster_Break= -lv}', "");
-    Expect(1, 55177, '\P{Grapheme_Cluster_Break= -lv}', "");
-    Expect(0, 55177, '\P{^Grapheme_Cluster_Break= -lv}', "");
-    Error('\p{GCB=:=lv}');
-    Error('\P{GCB=:=lv}');
+    Expect(1, 55176, '\p{Grapheme_Cluster_Break= 	LV}', "");
+    Expect(0, 55176, '\p{^Grapheme_Cluster_Break= 	LV}', "");
+    Expect(0, 55176, '\P{Grapheme_Cluster_Break= 	LV}', "");
+    Expect(1, 55176, '\P{^Grapheme_Cluster_Break= 	LV}', "");
+    Expect(0, 55177, '\p{Grapheme_Cluster_Break= 	LV}', "");
+    Expect(1, 55177, '\p{^Grapheme_Cluster_Break= 	LV}', "");
+    Expect(1, 55177, '\P{Grapheme_Cluster_Break= 	LV}', "");
+    Expect(0, 55177, '\P{^Grapheme_Cluster_Break= 	LV}', "");
+    Error('\p{GCB=/a/lv}');
+    Error('\P{GCB=/a/lv}');
     Expect(1, 55176, '\p{GCB=:\ALV\z:}', "");;
     Expect(0, 55177, '\p{GCB=:\ALV\z:}', "");;
     Expect(1, 55176, '\p{GCB=lv}', "");
@@ -43957,16 +44517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55177, '\P{^GCB=lv}', "");
     Expect(1, 55176, '\p{GCB=:\Alv\z:}', "");;
     Expect(0, 55177, '\p{GCB=:\Alv\z:}', "");;
-    Expect(1, 55176, '\p{GCB=	LV}', "");
-    Expect(0, 55176, '\p{^GCB=	LV}', "");
-    Expect(0, 55176, '\P{GCB=	LV}', "");
-    Expect(1, 55176, '\P{^GCB=	LV}', "");
-    Expect(0, 55177, '\p{GCB=	LV}', "");
-    Expect(1, 55177, '\p{^GCB=	LV}', "");
-    Expect(1, 55177, '\P{GCB=	LV}', "");
-    Expect(0, 55177, '\P{^GCB=	LV}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=-lv/a/}');
-    Error('\P{Is_Grapheme_Cluster_Break=-lv/a/}');
+    Expect(1, 55176, '\p{GCB:   _	LV}', "");
+    Expect(0, 55176, '\p{^GCB:   _	LV}', "");
+    Expect(0, 55176, '\P{GCB:   _	LV}', "");
+    Expect(1, 55176, '\P{^GCB:   _	LV}', "");
+    Expect(0, 55177, '\p{GCB:   _	LV}', "");
+    Expect(1, 55177, '\p{^GCB:   _	LV}', "");
+    Expect(1, 55177, '\P{GCB:   _	LV}', "");
+    Expect(0, 55177, '\P{^GCB:   _	LV}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=_:=LV}');
+    Error('\P{Is_Grapheme_Cluster_Break=_:=LV}');
     Expect(1, 55176, '\p{Is_Grapheme_Cluster_Break=lv}', "");
     Expect(0, 55176, '\p{^Is_Grapheme_Cluster_Break=lv}', "");
     Expect(0, 55176, '\P{Is_Grapheme_Cluster_Break=lv}', "");
@@ -43975,16 +44535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55177, '\p{^Is_Grapheme_Cluster_Break=lv}', "");
     Expect(1, 55177, '\P{Is_Grapheme_Cluster_Break=lv}', "");
     Expect(0, 55177, '\P{^Is_Grapheme_Cluster_Break=lv}', "");
-    Expect(1, 55176, '\p{Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(0, 55176, '\p{^Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(0, 55176, '\P{Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(1, 55176, '\P{^Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(0, 55177, '\p{Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(1, 55177, '\p{^Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(1, 55177, '\P{Is_Grapheme_Cluster_Break=-	lv}', "");
-    Expect(0, 55177, '\P{^Is_Grapheme_Cluster_Break=-	lv}', "");
-    Error('\p{Is_GCB:/a/-	LV}');
-    Error('\P{Is_GCB:/a/-	LV}');
+    Expect(1, 55176, '\p{Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(0, 55176, '\p{^Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(0, 55176, '\P{Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(1, 55176, '\P{^Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(0, 55177, '\p{Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(1, 55177, '\p{^Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(1, 55177, '\P{Is_Grapheme_Cluster_Break=--LV}', "");
+    Expect(0, 55177, '\P{^Is_Grapheme_Cluster_Break=--LV}', "");
+    Error('\p{Is_GCB= lv:=}');
+    Error('\P{Is_GCB= lv:=}');
     Expect(1, 55176, '\p{Is_GCB=lv}', "");
     Expect(0, 55176, '\p{^Is_GCB=lv}', "");
     Expect(0, 55176, '\P{Is_GCB=lv}', "");
@@ -43993,16 +44553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55177, '\p{^Is_GCB=lv}', "");
     Expect(1, 55177, '\P{Is_GCB=lv}', "");
     Expect(0, 55177, '\P{^Is_GCB=lv}', "");
-    Expect(1, 55176, '\p{Is_GCB=_LV}', "");
-    Expect(0, 55176, '\p{^Is_GCB=_LV}', "");
-    Expect(0, 55176, '\P{Is_GCB=_LV}', "");
-    Expect(1, 55176, '\P{^Is_GCB=_LV}', "");
-    Expect(0, 55177, '\p{Is_GCB=_LV}', "");
-    Expect(1, 55177, '\p{^Is_GCB=_LV}', "");
-    Expect(1, 55177, '\P{Is_GCB=_LV}', "");
-    Expect(0, 55177, '\P{^Is_GCB=_LV}', "");
-    Error('\p{Grapheme_Cluster_Break=_:=LVT}');
-    Error('\P{Grapheme_Cluster_Break=_:=LVT}');
+    Expect(1, 55176, '\p{Is_GCB= -LV}', "");
+    Expect(0, 55176, '\p{^Is_GCB= -LV}', "");
+    Expect(0, 55176, '\P{Is_GCB= -LV}', "");
+    Expect(1, 55176, '\P{^Is_GCB= -LV}', "");
+    Expect(0, 55177, '\p{Is_GCB= -LV}', "");
+    Expect(1, 55177, '\p{^Is_GCB= -LV}', "");
+    Expect(1, 55177, '\P{Is_GCB= -LV}', "");
+    Expect(0, 55177, '\P{^Is_GCB= -LV}', "");
+    Error('\p{Grapheme_Cluster_Break=		lvt/a/}');
+    Error('\P{Grapheme_Cluster_Break=		lvt/a/}');
     Expect(1, 55203, '\p{Grapheme_Cluster_Break=:\ALVT\z:}', "");;
     Expect(0, 55204, '\p{Grapheme_Cluster_Break=:\ALVT\z:}', "");;
     Expect(1, 55203, '\p{Grapheme_Cluster_Break=lvt}', "");
@@ -44015,16 +44575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55204, '\P{^Grapheme_Cluster_Break=lvt}', "");
     Expect(1, 55203, '\p{Grapheme_Cluster_Break=:\Alvt\z:}', "");;
     Expect(0, 55204, '\p{Grapheme_Cluster_Break=:\Alvt\z:}', "");;
-    Expect(1, 55203, '\p{Grapheme_Cluster_Break=_lvt}', "");
-    Expect(0, 55203, '\p{^Grapheme_Cluster_Break=_lvt}', "");
-    Expect(0, 55203, '\P{Grapheme_Cluster_Break=_lvt}', "");
-    Expect(1, 55203, '\P{^Grapheme_Cluster_Break=_lvt}', "");
-    Expect(0, 55204, '\p{Grapheme_Cluster_Break=_lvt}', "");
-    Expect(1, 55204, '\p{^Grapheme_Cluster_Break=_lvt}', "");
-    Expect(1, 55204, '\P{Grapheme_Cluster_Break=_lvt}', "");
-    Expect(0, 55204, '\P{^Grapheme_Cluster_Break=_lvt}', "");
-    Error('\p{GCB=:=LVT}');
-    Error('\P{GCB=:=LVT}');
+    Expect(1, 55203, '\p{Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(0, 55203, '\p{^Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(0, 55203, '\P{Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(1, 55203, '\P{^Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(0, 55204, '\p{Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(1, 55204, '\p{^Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(1, 55204, '\P{Grapheme_Cluster_Break=_ LVT}', "");
+    Expect(0, 55204, '\P{^Grapheme_Cluster_Break=_ LVT}', "");
+    Error('\p{GCB=-:=lvt}');
+    Error('\P{GCB=-:=lvt}');
     Expect(1, 55203, '\p{GCB=:\ALVT\z:}', "");;
     Expect(0, 55204, '\p{GCB=:\ALVT\z:}', "");;
     Expect(1, 55203, '\p{GCB=lvt}', "");
@@ -44037,16 +44597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55204, '\P{^GCB=lvt}', "");
     Expect(1, 55203, '\p{GCB=:\Alvt\z:}', "");;
     Expect(0, 55204, '\p{GCB=:\Alvt\z:}', "");;
-    Expect(1, 55203, '\p{GCB=LVT}', "");
-    Expect(0, 55203, '\p{^GCB=LVT}', "");
-    Expect(0, 55203, '\P{GCB=LVT}', "");
-    Expect(1, 55203, '\P{^GCB=LVT}', "");
-    Expect(0, 55204, '\p{GCB=LVT}', "");
-    Expect(1, 55204, '\p{^GCB=LVT}', "");
-    Expect(1, 55204, '\P{GCB=LVT}', "");
-    Expect(0, 55204, '\P{^GCB=LVT}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=/a/LVT}');
-    Error('\P{Is_Grapheme_Cluster_Break=/a/LVT}');
+    Expect(1, 55203, '\p{GCB=--LVT}', "");
+    Expect(0, 55203, '\p{^GCB=--LVT}', "");
+    Expect(0, 55203, '\P{GCB=--LVT}', "");
+    Expect(1, 55203, '\P{^GCB=--LVT}', "");
+    Expect(0, 55204, '\p{GCB=--LVT}', "");
+    Expect(1, 55204, '\p{^GCB=--LVT}', "");
+    Expect(1, 55204, '\P{GCB=--LVT}', "");
+    Expect(0, 55204, '\P{^GCB=--LVT}', "");
+    Error('\p{Is_Grapheme_Cluster_Break= lvt/a/}');
+    Error('\P{Is_Grapheme_Cluster_Break= lvt/a/}');
     Expect(1, 55203, '\p{Is_Grapheme_Cluster_Break=lvt}', "");
     Expect(0, 55203, '\p{^Is_Grapheme_Cluster_Break=lvt}', "");
     Expect(0, 55203, '\P{Is_Grapheme_Cluster_Break=lvt}', "");
@@ -44055,114 +44615,114 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55204, '\p{^Is_Grapheme_Cluster_Break=lvt}', "");
     Expect(1, 55204, '\P{Is_Grapheme_Cluster_Break=lvt}', "");
     Expect(0, 55204, '\P{^Is_Grapheme_Cluster_Break=lvt}', "");
-    Expect(1, 55203, '\p{Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(0, 55203, '\p{^Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(0, 55203, '\P{Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(1, 55203, '\P{^Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(0, 55204, '\p{Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(1, 55204, '\p{^Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(1, 55204, '\P{Is_Grapheme_Cluster_Break= LVT}', "");
-    Expect(0, 55204, '\P{^Is_Grapheme_Cluster_Break= LVT}', "");
-    Error('\p{Is_GCB=	/a/LVT}');
-    Error('\P{Is_GCB=	/a/LVT}');
-    Expect(1, 55203, '\p{Is_GCB:   lvt}', "");
-    Expect(0, 55203, '\p{^Is_GCB:   lvt}', "");
-    Expect(0, 55203, '\P{Is_GCB:   lvt}', "");
-    Expect(1, 55203, '\P{^Is_GCB:   lvt}', "");
-    Expect(0, 55204, '\p{Is_GCB:   lvt}', "");
-    Expect(1, 55204, '\p{^Is_GCB:   lvt}', "");
-    Expect(1, 55204, '\P{Is_GCB:   lvt}', "");
-    Expect(0, 55204, '\P{^Is_GCB:   lvt}', "");
-    Expect(1, 55203, '\p{Is_GCB= -LVT}', "");
-    Expect(0, 55203, '\p{^Is_GCB= -LVT}', "");
-    Expect(0, 55203, '\P{Is_GCB= -LVT}', "");
-    Expect(1, 55203, '\P{^Is_GCB= -LVT}', "");
-    Expect(0, 55204, '\p{Is_GCB= -LVT}', "");
-    Expect(1, 55204, '\p{^Is_GCB= -LVT}', "");
-    Expect(1, 55204, '\P{Is_GCB= -LVT}', "");
-    Expect(0, 55204, '\P{^Is_GCB= -LVT}', "");
-    Error('\p{Grapheme_Cluster_Break=-/a/Prepend}');
-    Error('\P{Grapheme_Cluster_Break=-/a/Prepend}');
-    Expect(1, 73030, '\p{Grapheme_Cluster_Break=:\APrepend\z:}', "");;
-    Expect(0, 73031, '\p{Grapheme_Cluster_Break=:\APrepend\z:}', "");;
-    Expect(1, 73030, '\p{Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73030, '\p{^Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73030, '\P{Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73030, '\P{^Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73031, '\p{Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73031, '\p{^Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73031, '\P{Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73031, '\P{^Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73030, '\p{Grapheme_Cluster_Break=:\Aprepend\z:}', "");;
-    Expect(0, 73031, '\p{Grapheme_Cluster_Break=:\Aprepend\z:}', "");;
-    Expect(1, 73030, '\p{Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(0, 73030, '\p{^Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(0, 73030, '\P{Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(1, 73030, '\P{^Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(0, 73031, '\p{Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(1, 73031, '\p{^Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(1, 73031, '\P{Grapheme_Cluster_Break= PREPEND}', "");
-    Expect(0, 73031, '\P{^Grapheme_Cluster_Break= PREPEND}', "");
-    Error('\p{GCB=:=_PP}');
-    Error('\P{GCB=:=_PP}');
-    Expect(1, 73030, '\p{GCB=:\APP\z:}', "");;
-    Expect(0, 73031, '\p{GCB=:\APP\z:}', "");;
-    Expect(1, 73030, '\p{GCB:   pp}', "");
-    Expect(0, 73030, '\p{^GCB:   pp}', "");
-    Expect(0, 73030, '\P{GCB:   pp}', "");
-    Expect(1, 73030, '\P{^GCB:   pp}', "");
-    Expect(0, 73031, '\p{GCB:   pp}', "");
-    Expect(1, 73031, '\p{^GCB:   pp}', "");
-    Expect(1, 73031, '\P{GCB:   pp}', "");
-    Expect(0, 73031, '\P{^GCB:   pp}', "");
-    Expect(1, 73030, '\p{GCB=:\App\z:}', "");;
-    Expect(0, 73031, '\p{GCB=:\App\z:}', "");;
-    Expect(1, 73030, '\p{GCB= -PP}', "");
-    Expect(0, 73030, '\p{^GCB= -PP}', "");
-    Expect(0, 73030, '\P{GCB= -PP}', "");
-    Expect(1, 73030, '\P{^GCB= -PP}', "");
-    Expect(0, 73031, '\p{GCB= -PP}', "");
-    Expect(1, 73031, '\p{^GCB= -PP}', "");
-    Expect(1, 73031, '\P{GCB= -PP}', "");
-    Expect(0, 73031, '\P{^GCB= -PP}', "");
-    Error('\p{Is_Grapheme_Cluster_Break= /a/Prepend}');
-    Error('\P{Is_Grapheme_Cluster_Break= /a/Prepend}');
-    Expect(1, 73030, '\p{Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73030, '\p{^Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73030, '\P{Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73030, '\P{^Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73031, '\p{Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73031, '\p{^Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73031, '\P{Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(0, 73031, '\P{^Is_Grapheme_Cluster_Break=prepend}', "");
-    Expect(1, 73030, '\p{Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(0, 73030, '\p{^Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(0, 73030, '\P{Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(1, 73030, '\P{^Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(0, 73031, '\p{Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(1, 73031, '\p{^Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(1, 73031, '\P{Is_Grapheme_Cluster_Break=	prepend}', "");
-    Expect(0, 73031, '\P{^Is_Grapheme_Cluster_Break=	prepend}', "");
-    Error('\p{Is_GCB=/a/-PP}');
-    Error('\P{Is_GCB=/a/-PP}');
-    Expect(1, 73030, '\p{Is_GCB=pp}', "");
-    Expect(0, 73030, '\p{^Is_GCB=pp}', "");
-    Expect(0, 73030, '\P{Is_GCB=pp}', "");
-    Expect(1, 73030, '\P{^Is_GCB=pp}', "");
-    Expect(0, 73031, '\p{Is_GCB=pp}', "");
-    Expect(1, 73031, '\p{^Is_GCB=pp}', "");
-    Expect(1, 73031, '\P{Is_GCB=pp}', "");
-    Expect(0, 73031, '\P{^Is_GCB=pp}', "");
-    Expect(1, 73030, '\p{Is_GCB=- PP}', "");
-    Expect(0, 73030, '\p{^Is_GCB=- PP}', "");
-    Expect(0, 73030, '\P{Is_GCB=- PP}', "");
-    Expect(1, 73030, '\P{^Is_GCB=- PP}', "");
-    Expect(0, 73031, '\p{Is_GCB=- PP}', "");
-    Expect(1, 73031, '\p{^Is_GCB=- PP}', "");
-    Expect(1, 73031, '\P{Is_GCB=- PP}', "");
-    Expect(0, 73031, '\P{^Is_GCB=- PP}', "");
-    Error('\p{Grapheme_Cluster_Break=Regional_indicator:=}');
-    Error('\P{Grapheme_Cluster_Break=Regional_indicator:=}');
+    Expect(1, 55203, '\p{Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(0, 55203, '\p{^Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(0, 55203, '\P{Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(1, 55203, '\P{^Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(0, 55204, '\p{Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(1, 55204, '\p{^Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(1, 55204, '\P{Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Expect(0, 55204, '\P{^Is_Grapheme_Cluster_Break:   _-LVT}', "");
+    Error('\p{Is_GCB=-	LVT:=}');
+    Error('\P{Is_GCB=-	LVT:=}');
+    Expect(1, 55203, '\p{Is_GCB=lvt}', "");
+    Expect(0, 55203, '\p{^Is_GCB=lvt}', "");
+    Expect(0, 55203, '\P{Is_GCB=lvt}', "");
+    Expect(1, 55203, '\P{^Is_GCB=lvt}', "");
+    Expect(0, 55204, '\p{Is_GCB=lvt}', "");
+    Expect(1, 55204, '\p{^Is_GCB=lvt}', "");
+    Expect(1, 55204, '\P{Is_GCB=lvt}', "");
+    Expect(0, 55204, '\P{^Is_GCB=lvt}', "");
+    Expect(1, 55203, '\p{Is_GCB=_LVT}', "");
+    Expect(0, 55203, '\p{^Is_GCB=_LVT}', "");
+    Expect(0, 55203, '\P{Is_GCB=_LVT}', "");
+    Expect(1, 55203, '\P{^Is_GCB=_LVT}', "");
+    Expect(0, 55204, '\p{Is_GCB=_LVT}', "");
+    Expect(1, 55204, '\p{^Is_GCB=_LVT}', "");
+    Expect(1, 55204, '\P{Is_GCB=_LVT}', "");
+    Expect(0, 55204, '\P{^Is_GCB=_LVT}', "");
+    Error('\p{Grapheme_Cluster_Break=-:=Prepend}');
+    Error('\P{Grapheme_Cluster_Break=-:=Prepend}');
+    Expect(1, 73474, '\p{Grapheme_Cluster_Break=:\APrepend\z:}', "");;
+    Expect(0, 73475, '\p{Grapheme_Cluster_Break=:\APrepend\z:}', "");;
+    Expect(1, 73474, '\p{Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73474, '\p{^Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73474, '\P{Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73474, '\P{^Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73475, '\p{Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73475, '\p{^Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73475, '\P{Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73475, '\P{^Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73474, '\p{Grapheme_Cluster_Break=:\Aprepend\z:}', "");;
+    Expect(0, 73475, '\p{Grapheme_Cluster_Break=:\Aprepend\z:}', "");;
+    Expect(1, 73474, '\p{Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(0, 73474, '\p{^Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(0, 73474, '\P{Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(1, 73474, '\P{^Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(0, 73475, '\p{Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(1, 73475, '\p{^Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(1, 73475, '\P{Grapheme_Cluster_Break=-_Prepend}', "");
+    Expect(0, 73475, '\P{^Grapheme_Cluster_Break=-_Prepend}', "");
+    Error('\p{GCB: /a/PP}');
+    Error('\P{GCB: /a/PP}');
+    Expect(1, 73474, '\p{GCB=:\APP\z:}', "");;
+    Expect(0, 73475, '\p{GCB=:\APP\z:}', "");;
+    Expect(1, 73474, '\p{GCB=pp}', "");
+    Expect(0, 73474, '\p{^GCB=pp}', "");
+    Expect(0, 73474, '\P{GCB=pp}', "");
+    Expect(1, 73474, '\P{^GCB=pp}', "");
+    Expect(0, 73475, '\p{GCB=pp}', "");
+    Expect(1, 73475, '\p{^GCB=pp}', "");
+    Expect(1, 73475, '\P{GCB=pp}', "");
+    Expect(0, 73475, '\P{^GCB=pp}', "");
+    Expect(1, 73474, '\p{GCB=:\App\z:}', "");;
+    Expect(0, 73475, '\p{GCB=:\App\z:}', "");;
+    Expect(1, 73474, '\p{GCB=-pp}', "");
+    Expect(0, 73474, '\p{^GCB=-pp}', "");
+    Expect(0, 73474, '\P{GCB=-pp}', "");
+    Expect(1, 73474, '\P{^GCB=-pp}', "");
+    Expect(0, 73475, '\p{GCB=-pp}', "");
+    Expect(1, 73475, '\p{^GCB=-pp}', "");
+    Expect(1, 73475, '\P{GCB=-pp}', "");
+    Expect(0, 73475, '\P{^GCB=-pp}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=-/a/Prepend}');
+    Error('\P{Is_Grapheme_Cluster_Break=-/a/Prepend}');
+    Expect(1, 73474, '\p{Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73474, '\p{^Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73474, '\P{Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73474, '\P{^Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73475, '\p{Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73475, '\p{^Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73475, '\P{Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(0, 73475, '\P{^Is_Grapheme_Cluster_Break=prepend}', "");
+    Expect(1, 73474, '\p{Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(0, 73474, '\p{^Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(0, 73474, '\P{Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(1, 73474, '\P{^Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(0, 73475, '\p{Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(1, 73475, '\p{^Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(1, 73475, '\P{Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Expect(0, 73475, '\P{^Is_Grapheme_Cluster_Break= _Prepend}', "");
+    Error('\p{Is_GCB=:=PP}');
+    Error('\P{Is_GCB=:=PP}');
+    Expect(1, 73474, '\p{Is_GCB=pp}', "");
+    Expect(0, 73474, '\p{^Is_GCB=pp}', "");
+    Expect(0, 73474, '\P{Is_GCB=pp}', "");
+    Expect(1, 73474, '\P{^Is_GCB=pp}', "");
+    Expect(0, 73475, '\p{Is_GCB=pp}', "");
+    Expect(1, 73475, '\p{^Is_GCB=pp}', "");
+    Expect(1, 73475, '\P{Is_GCB=pp}', "");
+    Expect(0, 73475, '\P{^Is_GCB=pp}', "");
+    Expect(1, 73474, '\p{Is_GCB=- PP}', "");
+    Expect(0, 73474, '\p{^Is_GCB=- PP}', "");
+    Expect(0, 73474, '\P{Is_GCB=- PP}', "");
+    Expect(1, 73474, '\P{^Is_GCB=- PP}', "");
+    Expect(0, 73475, '\p{Is_GCB=- PP}', "");
+    Expect(1, 73475, '\p{^Is_GCB=- PP}', "");
+    Expect(1, 73475, '\P{Is_GCB=- PP}', "");
+    Expect(0, 73475, '\P{^Is_GCB=- PP}', "");
+    Error('\p{Grapheme_Cluster_Break=/a/_	Regional_Indicator}');
+    Error('\P{Grapheme_Cluster_Break=/a/_	Regional_Indicator}');
     Expect(1, 127487, '\p{Grapheme_Cluster_Break=:\ARegional_Indicator\z:}', "");;
     Expect(0, 127488, '\p{Grapheme_Cluster_Break=:\ARegional_Indicator\z:}', "");;
     Expect(1, 127487, '\p{Grapheme_Cluster_Break=regionalindicator}', "");
@@ -44175,16 +44735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127488, '\P{^Grapheme_Cluster_Break=regionalindicator}', "");
     Expect(1, 127487, '\p{Grapheme_Cluster_Break=:\Aregionalindicator\z:}', "");;
     Expect(0, 127488, '\p{Grapheme_Cluster_Break=:\Aregionalindicator\z:}', "");;
-    Expect(1, 127487, '\p{Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(0, 127487, '\p{^Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(0, 127487, '\P{Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(1, 127487, '\P{^Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(0, 127488, '\p{Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(1, 127488, '\p{^Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(1, 127488, '\P{Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Expect(0, 127488, '\P{^Grapheme_Cluster_Break=- Regional_indicator}', "");
-    Error('\p{GCB:	:=	RI}');
-    Error('\P{GCB:	:=	RI}');
+    Expect(1, 127487, '\p{Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(0, 127487, '\p{^Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(0, 127487, '\P{Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(1, 127487, '\P{^Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(0, 127488, '\p{Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(1, 127488, '\p{^Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(1, 127488, '\P{Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Expect(0, 127488, '\P{^Grapheme_Cluster_Break=-Regional_INDICATOR}', "");
+    Error('\p{GCB= /a/ri}');
+    Error('\P{GCB= /a/ri}');
     Expect(1, 127487, '\p{GCB=:\ARI\z:}', "");;
     Expect(0, 127488, '\p{GCB=:\ARI\z:}', "");;
     Expect(1, 127487, '\p{GCB=ri}', "");
@@ -44197,16 +44757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127488, '\P{^GCB=ri}', "");
     Expect(1, 127487, '\p{GCB=:\Ari\z:}', "");;
     Expect(0, 127488, '\p{GCB=:\Ari\z:}', "");;
-    Expect(1, 127487, '\p{GCB=_RI}', "");
-    Expect(0, 127487, '\p{^GCB=_RI}', "");
-    Expect(0, 127487, '\P{GCB=_RI}', "");
-    Expect(1, 127487, '\P{^GCB=_RI}', "");
-    Expect(0, 127488, '\p{GCB=_RI}', "");
-    Expect(1, 127488, '\p{^GCB=_RI}', "");
-    Expect(1, 127488, '\P{GCB=_RI}', "");
-    Expect(0, 127488, '\P{^GCB=_RI}', "");
-    Error('\p{Is_Grapheme_Cluster_Break: 	/a/Regional_indicator}');
-    Error('\P{Is_Grapheme_Cluster_Break: 	/a/Regional_indicator}');
+    Expect(1, 127487, '\p{GCB=-_ri}', "");
+    Expect(0, 127487, '\p{^GCB=-_ri}', "");
+    Expect(0, 127487, '\P{GCB=-_ri}', "");
+    Expect(1, 127487, '\P{^GCB=-_ri}', "");
+    Expect(0, 127488, '\p{GCB=-_ri}', "");
+    Expect(1, 127488, '\p{^GCB=-_ri}', "");
+    Expect(1, 127488, '\P{GCB=-_ri}', "");
+    Expect(0, 127488, '\P{^GCB=-_ri}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=_/a/Regional_INDICATOR}');
+    Error('\P{Is_Grapheme_Cluster_Break=_/a/Regional_INDICATOR}');
     Expect(1, 127487, '\p{Is_Grapheme_Cluster_Break=regionalindicator}', "");
     Expect(0, 127487, '\p{^Is_Grapheme_Cluster_Break=regionalindicator}', "");
     Expect(0, 127487, '\P{Is_Grapheme_Cluster_Break=regionalindicator}', "");
@@ -44215,34 +44775,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 127488, '\p{^Is_Grapheme_Cluster_Break=regionalindicator}', "");
     Expect(1, 127488, '\P{Is_Grapheme_Cluster_Break=regionalindicator}', "");
     Expect(0, 127488, '\P{^Is_Grapheme_Cluster_Break=regionalindicator}', "");
-    Expect(1, 127487, '\p{Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(0, 127487, '\p{^Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(0, 127487, '\P{Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(1, 127487, '\P{^Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(0, 127488, '\p{Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(1, 127488, '\p{^Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(1, 127488, '\P{Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Expect(0, 127488, '\P{^Is_Grapheme_Cluster_Break=  Regional_indicator}', "");
-    Error('\p{Is_GCB=/a/	ri}');
-    Error('\P{Is_GCB=/a/	ri}');
-    Expect(1, 127487, '\p{Is_GCB=ri}', "");
-    Expect(0, 127487, '\p{^Is_GCB=ri}', "");
-    Expect(0, 127487, '\P{Is_GCB=ri}', "");
-    Expect(1, 127487, '\P{^Is_GCB=ri}', "");
-    Expect(0, 127488, '\p{Is_GCB=ri}', "");
-    Expect(1, 127488, '\p{^Is_GCB=ri}', "");
-    Expect(1, 127488, '\P{Is_GCB=ri}', "");
-    Expect(0, 127488, '\P{^Is_GCB=ri}', "");
-    Expect(1, 127487, '\p{Is_GCB=_ri}', "");
-    Expect(0, 127487, '\p{^Is_GCB=_ri}', "");
-    Expect(0, 127487, '\P{Is_GCB=_ri}', "");
-    Expect(1, 127487, '\P{^Is_GCB=_ri}', "");
-    Expect(0, 127488, '\p{Is_GCB=_ri}', "");
-    Expect(1, 127488, '\p{^Is_GCB=_ri}', "");
-    Expect(1, 127488, '\P{Is_GCB=_ri}', "");
-    Expect(0, 127488, '\P{^Is_GCB=_ri}', "");
-    Error('\p{Grapheme_Cluster_Break=-/a/SpacingMark}');
-    Error('\P{Grapheme_Cluster_Break=-/a/SpacingMark}');
+    Expect(1, 127487, '\p{Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(0, 127487, '\p{^Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(0, 127487, '\P{Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(1, 127487, '\P{^Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(0, 127488, '\p{Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(1, 127488, '\p{^Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(1, 127488, '\P{Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Expect(0, 127488, '\P{^Is_Grapheme_Cluster_Break=_	regional_indicator}', "");
+    Error('\p{Is_GCB= -RI/a/}');
+    Error('\P{Is_GCB= -RI/a/}');
+    Expect(1, 127487, '\p{Is_GCB:   ri}', "");
+    Expect(0, 127487, '\p{^Is_GCB:   ri}', "");
+    Expect(0, 127487, '\P{Is_GCB:   ri}', "");
+    Expect(1, 127487, '\P{^Is_GCB:   ri}', "");
+    Expect(0, 127488, '\p{Is_GCB:   ri}', "");
+    Expect(1, 127488, '\p{^Is_GCB:   ri}', "");
+    Expect(1, 127488, '\P{Is_GCB:   ri}', "");
+    Expect(0, 127488, '\P{^Is_GCB:   ri}', "");
+    Expect(1, 127487, '\p{Is_GCB=  ri}', "");
+    Expect(0, 127487, '\p{^Is_GCB=  ri}', "");
+    Expect(0, 127487, '\P{Is_GCB=  ri}', "");
+    Expect(1, 127487, '\P{^Is_GCB=  ri}', "");
+    Expect(0, 127488, '\p{Is_GCB=  ri}', "");
+    Expect(1, 127488, '\p{^Is_GCB=  ri}', "");
+    Expect(1, 127488, '\P{Is_GCB=  ri}', "");
+    Expect(0, 127488, '\P{^Is_GCB=  ri}', "");
+    Error('\p{Grapheme_Cluster_Break=	-SpacingMark/a/}');
+    Error('\P{Grapheme_Cluster_Break=	-SpacingMark/a/}');
     Expect(1, 119149, '\p{Grapheme_Cluster_Break=:\ASpacingMark\z:}', "");;
     Expect(0, 119150, '\p{Grapheme_Cluster_Break=:\ASpacingMark\z:}', "");;
     Expect(1, 119149, '\p{Grapheme_Cluster_Break=spacingmark}', "");
@@ -44255,16 +44815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119150, '\P{^Grapheme_Cluster_Break=spacingmark}', "");
     Expect(1, 119149, '\p{Grapheme_Cluster_Break=:\Aspacingmark\z:}', "");;
     Expect(0, 119150, '\p{Grapheme_Cluster_Break=:\Aspacingmark\z:}', "");;
-    Expect(1, 119149, '\p{Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119149, '\p{^Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119149, '\P{Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(1, 119149, '\P{^Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119150, '\p{Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(1, 119150, '\p{^Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(1, 119150, '\P{Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119150, '\P{^Grapheme_Cluster_Break=_spacingmark}', "");
-    Error('\p{GCB=_SM:=}');
-    Error('\P{GCB=_SM:=}');
+    Expect(1, 119149, '\p{Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(0, 119149, '\p{^Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(0, 119149, '\P{Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(1, 119149, '\P{^Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(0, 119150, '\p{Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(1, 119150, '\p{^Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(1, 119150, '\P{Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Expect(0, 119150, '\P{^Grapheme_Cluster_Break= 	SpacingMark}', "");
+    Error('\p{GCB=:=		SM}');
+    Error('\P{GCB=:=		SM}');
     Expect(1, 119149, '\p{GCB=:\ASM\z:}', "");;
     Expect(0, 119150, '\p{GCB=:\ASM\z:}', "");;
     Expect(1, 119149, '\p{GCB=sm}', "");
@@ -44277,16 +44837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119150, '\P{^GCB=sm}', "");
     Expect(1, 119149, '\p{GCB=:\Asm\z:}', "");;
     Expect(0, 119150, '\p{GCB=:\Asm\z:}', "");;
-    Expect(1, 119149, '\p{GCB=		sm}', "");
-    Expect(0, 119149, '\p{^GCB=		sm}', "");
-    Expect(0, 119149, '\P{GCB=		sm}', "");
-    Expect(1, 119149, '\P{^GCB=		sm}', "");
-    Expect(0, 119150, '\p{GCB=		sm}', "");
-    Expect(1, 119150, '\p{^GCB=		sm}', "");
-    Expect(1, 119150, '\P{GCB=		sm}', "");
-    Expect(0, 119150, '\P{^GCB=		sm}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=-_SpacingMark:=}');
-    Error('\P{Is_Grapheme_Cluster_Break=-_SpacingMark:=}');
+    Expect(1, 119149, '\p{GCB=_ sm}', "");
+    Expect(0, 119149, '\p{^GCB=_ sm}', "");
+    Expect(0, 119149, '\P{GCB=_ sm}', "");
+    Expect(1, 119149, '\P{^GCB=_ sm}', "");
+    Expect(0, 119150, '\p{GCB=_ sm}', "");
+    Expect(1, 119150, '\p{^GCB=_ sm}', "");
+    Expect(1, 119150, '\P{GCB=_ sm}', "");
+    Expect(0, 119150, '\P{^GCB=_ sm}', "");
+    Error('\p{Is_Grapheme_Cluster_Break: -SpacingMark:=}');
+    Error('\P{Is_Grapheme_Cluster_Break: -SpacingMark:=}');
     Expect(1, 119149, '\p{Is_Grapheme_Cluster_Break=spacingmark}', "");
     Expect(0, 119149, '\p{^Is_Grapheme_Cluster_Break=spacingmark}', "");
     Expect(0, 119149, '\P{Is_Grapheme_Cluster_Break=spacingmark}', "");
@@ -44295,16 +44855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119150, '\p{^Is_Grapheme_Cluster_Break=spacingmark}', "");
     Expect(1, 119150, '\P{Is_Grapheme_Cluster_Break=spacingmark}', "");
     Expect(0, 119150, '\P{^Is_Grapheme_Cluster_Break=spacingmark}', "");
-    Expect(1, 119149, '\p{Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119149, '\p{^Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119149, '\P{Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(1, 119149, '\P{^Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119150, '\p{Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(1, 119150, '\p{^Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(1, 119150, '\P{Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Expect(0, 119150, '\P{^Is_Grapheme_Cluster_Break=_spacingmark}', "");
-    Error('\p{Is_GCB=	:=sm}');
-    Error('\P{Is_GCB=	:=sm}');
+    Expect(1, 119149, '\p{Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(0, 119149, '\p{^Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(0, 119149, '\P{Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(1, 119149, '\P{^Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(0, 119150, '\p{Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(1, 119150, '\p{^Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(1, 119150, '\P{Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Expect(0, 119150, '\P{^Is_Grapheme_Cluster_Break=_SPACINGMARK}', "");
+    Error('\p{Is_GCB:-:=sm}');
+    Error('\P{Is_GCB:-:=sm}');
     Expect(1, 119149, '\p{Is_GCB=sm}', "");
     Expect(0, 119149, '\p{^Is_GCB=sm}', "");
     Expect(0, 119149, '\P{Is_GCB=sm}', "");
@@ -44313,16 +44873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119150, '\p{^Is_GCB=sm}', "");
     Expect(1, 119150, '\P{Is_GCB=sm}', "");
     Expect(0, 119150, '\P{^Is_GCB=sm}', "");
-    Expect(1, 119149, '\p{Is_GCB=--sm}', "");
-    Expect(0, 119149, '\p{^Is_GCB=--sm}', "");
-    Expect(0, 119149, '\P{Is_GCB=--sm}', "");
-    Expect(1, 119149, '\P{^Is_GCB=--sm}', "");
-    Expect(0, 119150, '\p{Is_GCB=--sm}', "");
-    Expect(1, 119150, '\p{^Is_GCB=--sm}', "");
-    Expect(1, 119150, '\P{Is_GCB=--sm}', "");
-    Expect(0, 119150, '\P{^Is_GCB=--sm}', "");
-    Error('\p{Grapheme_Cluster_Break=_t/a/}');
-    Error('\P{Grapheme_Cluster_Break=_t/a/}');
+    Expect(1, 119149, '\p{Is_GCB=_	SM}', "");
+    Expect(0, 119149, '\p{^Is_GCB=_	SM}', "");
+    Expect(0, 119149, '\P{Is_GCB=_	SM}', "");
+    Expect(1, 119149, '\P{^Is_GCB=_	SM}', "");
+    Expect(0, 119150, '\p{Is_GCB=_	SM}', "");
+    Expect(1, 119150, '\p{^Is_GCB=_	SM}', "");
+    Expect(1, 119150, '\P{Is_GCB=_	SM}', "");
+    Expect(0, 119150, '\P{^Is_GCB=_	SM}', "");
+    Error('\p{Grapheme_Cluster_Break=	/a/t}');
+    Error('\P{Grapheme_Cluster_Break=	/a/t}');
     Expect(1, 55291, '\p{Grapheme_Cluster_Break=:\AT\z:}', "");;
     Expect(0, 55292, '\p{Grapheme_Cluster_Break=:\AT\z:}', "");;
     Expect(1, 55291, '\p{Grapheme_Cluster_Break=t}', "");
@@ -44343,8 +44903,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55292, '\p{^Grapheme_Cluster_Break=		T}', "");
     Expect(1, 55292, '\P{Grapheme_Cluster_Break=		T}', "");
     Expect(0, 55292, '\P{^Grapheme_Cluster_Break=		T}', "");
-    Error('\p{GCB=:=__T}');
-    Error('\P{GCB=:=__T}');
+    Error('\p{GCB= T/a/}');
+    Error('\P{GCB= T/a/}');
     Expect(1, 55291, '\p{GCB=:\AT\z:}', "");;
     Expect(0, 55292, '\p{GCB=:\AT\z:}', "");;
     Expect(1, 55291, '\p{GCB=t}', "");
@@ -44357,34 +44917,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55292, '\P{^GCB=t}', "");
     Expect(1, 55291, '\p{GCB=:\At\z:}', "");;
     Expect(0, 55292, '\p{GCB=:\At\z:}', "");;
-    Expect(1, 55291, '\p{GCB=_t}', "");
-    Expect(0, 55291, '\p{^GCB=_t}', "");
-    Expect(0, 55291, '\P{GCB=_t}', "");
-    Expect(1, 55291, '\P{^GCB=_t}', "");
-    Expect(0, 55292, '\p{GCB=_t}', "");
-    Expect(1, 55292, '\p{^GCB=_t}', "");
-    Expect(1, 55292, '\P{GCB=_t}', "");
-    Expect(0, 55292, '\P{^GCB=_t}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=/a/-_T}');
-    Error('\P{Is_Grapheme_Cluster_Break=/a/-_T}');
-    Expect(1, 55291, '\p{Is_Grapheme_Cluster_Break=t}', "");
-    Expect(0, 55291, '\p{^Is_Grapheme_Cluster_Break=t}', "");
-    Expect(0, 55291, '\P{Is_Grapheme_Cluster_Break=t}', "");
-    Expect(1, 55291, '\P{^Is_Grapheme_Cluster_Break=t}', "");
-    Expect(0, 55292, '\p{Is_Grapheme_Cluster_Break=t}', "");
-    Expect(1, 55292, '\p{^Is_Grapheme_Cluster_Break=t}', "");
-    Expect(1, 55292, '\P{Is_Grapheme_Cluster_Break=t}', "");
-    Expect(0, 55292, '\P{^Is_Grapheme_Cluster_Break=t}', "");
-    Expect(1, 55291, '\p{Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(0, 55291, '\p{^Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(0, 55291, '\P{Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(1, 55291, '\P{^Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(0, 55292, '\p{Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(1, 55292, '\p{^Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(1, 55292, '\P{Is_Grapheme_Cluster_Break=	T}', "");
-    Expect(0, 55292, '\P{^Is_Grapheme_Cluster_Break=	T}', "");
-    Error('\p{Is_GCB=	T/a/}');
-    Error('\P{Is_GCB=	T/a/}');
+    Expect(1, 55291, '\p{GCB=- T}', "");
+    Expect(0, 55291, '\p{^GCB=- T}', "");
+    Expect(0, 55291, '\P{GCB=- T}', "");
+    Expect(1, 55291, '\P{^GCB=- T}', "");
+    Expect(0, 55292, '\p{GCB=- T}', "");
+    Expect(1, 55292, '\p{^GCB=- T}', "");
+    Expect(1, 55292, '\P{GCB=- T}', "");
+    Expect(0, 55292, '\P{^GCB=- T}', "");
+    Error('\p{Is_Grapheme_Cluster_Break= /a/T}');
+    Error('\P{Is_Grapheme_Cluster_Break= /a/T}');
+    Expect(1, 55291, '\p{Is_Grapheme_Cluster_Break:t}', "");
+    Expect(0, 55291, '\p{^Is_Grapheme_Cluster_Break:t}', "");
+    Expect(0, 55291, '\P{Is_Grapheme_Cluster_Break:t}', "");
+    Expect(1, 55291, '\P{^Is_Grapheme_Cluster_Break:t}', "");
+    Expect(0, 55292, '\p{Is_Grapheme_Cluster_Break:t}', "");
+    Expect(1, 55292, '\p{^Is_Grapheme_Cluster_Break:t}', "");
+    Expect(1, 55292, '\P{Is_Grapheme_Cluster_Break:t}', "");
+    Expect(0, 55292, '\P{^Is_Grapheme_Cluster_Break:t}', "");
+    Expect(1, 55291, '\p{Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(0, 55291, '\p{^Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(0, 55291, '\P{Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(1, 55291, '\P{^Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(0, 55292, '\p{Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(1, 55292, '\p{^Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(1, 55292, '\P{Is_Grapheme_Cluster_Break=-_T}', "");
+    Expect(0, 55292, '\P{^Is_Grapheme_Cluster_Break=-_T}', "");
+    Error('\p{Is_GCB:	:=	T}');
+    Error('\P{Is_GCB:	:=	T}');
     Expect(1, 55291, '\p{Is_GCB=t}', "");
     Expect(0, 55291, '\p{^Is_GCB=t}', "");
     Expect(0, 55291, '\P{Is_GCB=t}', "");
@@ -44393,16 +44953,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55292, '\p{^Is_GCB=t}', "");
     Expect(1, 55292, '\P{Is_GCB=t}', "");
     Expect(0, 55292, '\P{^Is_GCB=t}', "");
-    Expect(1, 55291, '\p{Is_GCB: 	T}', "");
-    Expect(0, 55291, '\p{^Is_GCB: 	T}', "");
-    Expect(0, 55291, '\P{Is_GCB: 	T}', "");
-    Expect(1, 55291, '\P{^Is_GCB: 	T}', "");
-    Expect(0, 55292, '\p{Is_GCB: 	T}', "");
-    Expect(1, 55292, '\p{^Is_GCB: 	T}', "");
-    Expect(1, 55292, '\P{Is_GCB: 	T}', "");
-    Expect(0, 55292, '\P{^Is_GCB: 	T}', "");
-    Error('\p{Grapheme_Cluster_Break= /a/V}');
-    Error('\P{Grapheme_Cluster_Break= /a/V}');
+    Expect(1, 55291, '\p{Is_GCB=-T}', "");
+    Expect(0, 55291, '\p{^Is_GCB=-T}', "");
+    Expect(0, 55291, '\P{Is_GCB=-T}', "");
+    Expect(1, 55291, '\P{^Is_GCB=-T}', "");
+    Expect(0, 55292, '\p{Is_GCB=-T}', "");
+    Expect(1, 55292, '\p{^Is_GCB=-T}', "");
+    Expect(1, 55292, '\P{Is_GCB=-T}', "");
+    Expect(0, 55292, '\P{^Is_GCB=-T}', "");
+    Error('\p{Grapheme_Cluster_Break=		V/a/}');
+    Error('\P{Grapheme_Cluster_Break=		V/a/}');
     Expect(1, 55238, '\p{Grapheme_Cluster_Break=:\AV\z:}', "");;
     Expect(0, 55239, '\p{Grapheme_Cluster_Break=:\AV\z:}', "");;
     Expect(1, 55238, '\p{Grapheme_Cluster_Break=v}', "");
@@ -44415,16 +44975,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55239, '\P{^Grapheme_Cluster_Break=v}', "");
     Expect(1, 55238, '\p{Grapheme_Cluster_Break=:\Av\z:}', "");;
     Expect(0, 55239, '\p{Grapheme_Cluster_Break=:\Av\z:}', "");;
-    Expect(1, 55238, '\p{Grapheme_Cluster_Break:   - V}', "");
-    Expect(0, 55238, '\p{^Grapheme_Cluster_Break:   - V}', "");
-    Expect(0, 55238, '\P{Grapheme_Cluster_Break:   - V}', "");
-    Expect(1, 55238, '\P{^Grapheme_Cluster_Break:   - V}', "");
-    Expect(0, 55239, '\p{Grapheme_Cluster_Break:   - V}', "");
-    Expect(1, 55239, '\p{^Grapheme_Cluster_Break:   - V}', "");
-    Expect(1, 55239, '\P{Grapheme_Cluster_Break:   - V}', "");
-    Expect(0, 55239, '\P{^Grapheme_Cluster_Break:   - V}', "");
-    Error('\p{GCB=_ v:=}');
-    Error('\P{GCB=_ v:=}');
+    Error('\p{GCB:   -/a/V}');
+    Error('\P{GCB:   -/a/V}');
     Expect(1, 55238, '\p{GCB=:\AV\z:}', "");;
     Expect(0, 55239, '\p{GCB=:\AV\z:}', "");;
     Expect(1, 55238, '\p{GCB=v}', "");
@@ -44437,16 +44989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55239, '\P{^GCB=v}', "");
     Expect(1, 55238, '\p{GCB=:\Av\z:}', "");;
     Expect(0, 55239, '\p{GCB=:\Av\z:}', "");;
-    Expect(1, 55238, '\p{GCB:	-V}', "");
-    Expect(0, 55238, '\p{^GCB:	-V}', "");
-    Expect(0, 55238, '\P{GCB:	-V}', "");
-    Expect(1, 55238, '\P{^GCB:	-V}', "");
-    Expect(0, 55239, '\p{GCB:	-V}', "");
-    Expect(1, 55239, '\p{^GCB:	-V}', "");
-    Expect(1, 55239, '\P{GCB:	-V}', "");
-    Expect(0, 55239, '\P{^GCB:	-V}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=_	V/a/}');
-    Error('\P{Is_Grapheme_Cluster_Break=_	V/a/}');
+    Expect(1, 55238, '\p{GCB:    	v}', "");
+    Expect(0, 55238, '\p{^GCB:    	v}', "");
+    Expect(0, 55238, '\P{GCB:    	v}', "");
+    Expect(1, 55238, '\P{^GCB:    	v}', "");
+    Expect(0, 55239, '\p{GCB:    	v}', "");
+    Expect(1, 55239, '\p{^GCB:    	v}', "");
+    Expect(1, 55239, '\P{GCB:    	v}', "");
+    Expect(0, 55239, '\P{^GCB:    	v}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=-:=V}');
+    Error('\P{Is_Grapheme_Cluster_Break=-:=V}');
     Expect(1, 55238, '\p{Is_Grapheme_Cluster_Break=v}', "");
     Expect(0, 55238, '\p{^Is_Grapheme_Cluster_Break=v}', "");
     Expect(0, 55238, '\P{Is_Grapheme_Cluster_Break=v}', "");
@@ -44455,16 +45007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55239, '\p{^Is_Grapheme_Cluster_Break=v}', "");
     Expect(1, 55239, '\P{Is_Grapheme_Cluster_Break=v}', "");
     Expect(0, 55239, '\P{^Is_Grapheme_Cluster_Break=v}', "");
-    Expect(1, 55238, '\p{Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(0, 55238, '\p{^Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(0, 55238, '\P{Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(1, 55238, '\P{^Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(0, 55239, '\p{Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(1, 55239, '\p{^Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(1, 55239, '\P{Is_Grapheme_Cluster_Break=	V}', "");
-    Expect(0, 55239, '\P{^Is_Grapheme_Cluster_Break=	V}', "");
-    Error('\p{Is_GCB=/a/_V}');
-    Error('\P{Is_GCB=/a/_V}');
+    Expect(1, 55238, '\p{Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(0, 55238, '\p{^Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(0, 55238, '\P{Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(1, 55238, '\P{^Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(0, 55239, '\p{Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(1, 55239, '\p{^Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(1, 55239, '\P{Is_Grapheme_Cluster_Break=_ V}', "");
+    Expect(0, 55239, '\P{^Is_Grapheme_Cluster_Break=_ V}', "");
+    Error('\p{Is_GCB=:=V}');
+    Error('\P{Is_GCB=:=V}');
     Expect(1, 55238, '\p{Is_GCB=v}', "");
     Expect(0, 55238, '\p{^Is_GCB=v}', "");
     Expect(0, 55238, '\P{Is_GCB=v}', "");
@@ -44473,16 +45025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55239, '\p{^Is_GCB=v}', "");
     Expect(1, 55239, '\P{Is_GCB=v}', "");
     Expect(0, 55239, '\P{^Is_GCB=v}', "");
-    Expect(1, 55238, '\p{Is_GCB=_ V}', "");
-    Expect(0, 55238, '\p{^Is_GCB=_ V}', "");
-    Expect(0, 55238, '\P{Is_GCB=_ V}', "");
-    Expect(1, 55238, '\P{^Is_GCB=_ V}', "");
-    Expect(0, 55239, '\p{Is_GCB=_ V}', "");
-    Expect(1, 55239, '\p{^Is_GCB=_ V}', "");
-    Expect(1, 55239, '\P{Is_GCB=_ V}', "");
-    Expect(0, 55239, '\P{^Is_GCB=_ V}', "");
-    Error('\p{Grapheme_Cluster_Break=/a/		Other}');
-    Error('\P{Grapheme_Cluster_Break=/a/		Other}');
+    Expect(1, 55238, '\p{Is_GCB=_V}', "");
+    Expect(0, 55238, '\p{^Is_GCB=_V}', "");
+    Expect(0, 55238, '\P{Is_GCB=_V}', "");
+    Expect(1, 55238, '\P{^Is_GCB=_V}', "");
+    Expect(0, 55239, '\p{Is_GCB=_V}', "");
+    Expect(1, 55239, '\p{^Is_GCB=_V}', "");
+    Expect(1, 55239, '\P{Is_GCB=_V}', "");
+    Expect(0, 55239, '\P{^Is_GCB=_V}', "");
+    Error('\p{Grapheme_Cluster_Break=	-OTHER:=}');
+    Error('\P{Grapheme_Cluster_Break=	-OTHER:=}');
     Expect(1, 921600, '\p{Grapheme_Cluster_Break=:\AOther\z:}', "");;
     Expect(0, 921599, '\p{Grapheme_Cluster_Break=:\AOther\z:}', "");;
     Expect(1, 921600, '\p{Grapheme_Cluster_Break=other}', "");
@@ -44495,14 +45047,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 921599, '\P{^Grapheme_Cluster_Break=other}', "");
     Expect(1, 921600, '\p{Grapheme_Cluster_Break=:\Aother\z:}', "");;
     Expect(0, 921599, '\p{Grapheme_Cluster_Break=:\Aother\z:}', "");;
-    Expect(1, 921600, '\p{Grapheme_Cluster_Break=	-other}', "");
-    Expect(0, 921600, '\p{^Grapheme_Cluster_Break=	-other}', "");
-    Expect(0, 921600, '\P{Grapheme_Cluster_Break=	-other}', "");
-    Expect(1, 921600, '\P{^Grapheme_Cluster_Break=	-other}', "");
-    Expect(0, 921599, '\p{Grapheme_Cluster_Break=	-other}', "");
-    Expect(1, 921599, '\p{^Grapheme_Cluster_Break=	-other}', "");
-    Expect(1, 921599, '\P{Grapheme_Cluster_Break=	-other}', "");
-    Expect(0, 921599, '\P{^Grapheme_Cluster_Break=	-other}', "");
+    Expect(1, 921600, '\p{Grapheme_Cluster_Break=_-other}', "");
+    Expect(0, 921600, '\p{^Grapheme_Cluster_Break=_-other}', "");
+    Expect(0, 921600, '\P{Grapheme_Cluster_Break=_-other}', "");
+    Expect(1, 921600, '\P{^Grapheme_Cluster_Break=_-other}', "");
+    Expect(0, 921599, '\p{Grapheme_Cluster_Break=_-other}', "");
+    Expect(1, 921599, '\p{^Grapheme_Cluster_Break=_-other}', "");
+    Expect(1, 921599, '\P{Grapheme_Cluster_Break=_-other}', "");
+    Expect(0, 921599, '\P{^Grapheme_Cluster_Break=_-other}', "");
     Error('\p{GCB=/a/XX}');
     Error('\P{GCB=/a/XX}');
     Expect(1, 921600, '\p{GCB=:\AXX\z:}', "");;
@@ -44517,16 +45069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 921599, '\P{^GCB=xx}', "");
     Expect(1, 921600, '\p{GCB=:\Axx\z:}', "");;
     Expect(0, 921599, '\p{GCB=:\Axx\z:}', "");;
-    Expect(1, 921600, '\p{GCB=_-XX}', "");
-    Expect(0, 921600, '\p{^GCB=_-XX}', "");
-    Expect(0, 921600, '\P{GCB=_-XX}', "");
-    Expect(1, 921600, '\P{^GCB=_-XX}', "");
-    Expect(0, 921599, '\p{GCB=_-XX}', "");
-    Expect(1, 921599, '\p{^GCB=_-XX}', "");
-    Expect(1, 921599, '\P{GCB=_-XX}', "");
-    Expect(0, 921599, '\P{^GCB=_-XX}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=:=-Other}');
-    Error('\P{Is_Grapheme_Cluster_Break=:=-Other}');
+    Expect(1, 921600, '\p{GCB=_xx}', "");
+    Expect(0, 921600, '\p{^GCB=_xx}', "");
+    Expect(0, 921600, '\P{GCB=_xx}', "");
+    Expect(1, 921600, '\P{^GCB=_xx}', "");
+    Expect(0, 921599, '\p{GCB=_xx}', "");
+    Expect(1, 921599, '\p{^GCB=_xx}', "");
+    Expect(1, 921599, '\P{GCB=_xx}', "");
+    Expect(0, 921599, '\P{^GCB=_xx}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=-	other/a/}');
+    Error('\P{Is_Grapheme_Cluster_Break=-	other/a/}');
     Expect(1, 921600, '\p{Is_Grapheme_Cluster_Break=other}', "");
     Expect(0, 921600, '\p{^Is_Grapheme_Cluster_Break=other}', "");
     Expect(0, 921600, '\P{Is_Grapheme_Cluster_Break=other}', "");
@@ -44535,16 +45087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 921599, '\p{^Is_Grapheme_Cluster_Break=other}', "");
     Expect(1, 921599, '\P{Is_Grapheme_Cluster_Break=other}', "");
     Expect(0, 921599, '\P{^Is_Grapheme_Cluster_Break=other}', "");
-    Expect(1, 921600, '\p{Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(0, 921600, '\p{^Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(0, 921600, '\P{Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(1, 921600, '\P{^Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(0, 921599, '\p{Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(1, 921599, '\p{^Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(1, 921599, '\P{Is_Grapheme_Cluster_Break:-other}', "");
-    Expect(0, 921599, '\P{^Is_Grapheme_Cluster_Break:-other}', "");
-    Error('\p{Is_GCB=-_XX:=}');
-    Error('\P{Is_GCB=-_XX:=}');
+    Expect(1, 921600, '\p{Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(0, 921600, '\p{^Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(0, 921600, '\P{Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(1, 921600, '\P{^Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(0, 921599, '\p{Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(1, 921599, '\p{^Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(1, 921599, '\P{Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Expect(0, 921599, '\P{^Is_Grapheme_Cluster_Break=	OTHER}', "");
+    Error('\p{Is_GCB=:=		XX}');
+    Error('\P{Is_GCB=:=		XX}');
     Expect(1, 921600, '\p{Is_GCB=xx}', "");
     Expect(0, 921600, '\p{^Is_GCB=xx}', "");
     Expect(0, 921600, '\P{Is_GCB=xx}', "");
@@ -44553,38 +45105,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 921599, '\p{^Is_GCB=xx}', "");
     Expect(1, 921599, '\P{Is_GCB=xx}', "");
     Expect(0, 921599, '\P{^Is_GCB=xx}', "");
-    Expect(1, 921600, '\p{Is_GCB=_	XX}', "");
-    Expect(0, 921600, '\p{^Is_GCB=_	XX}', "");
-    Expect(0, 921600, '\P{Is_GCB=_	XX}', "");
-    Expect(1, 921600, '\P{^Is_GCB=_	XX}', "");
-    Expect(0, 921599, '\p{Is_GCB=_	XX}', "");
-    Expect(1, 921599, '\p{^Is_GCB=_	XX}', "");
-    Expect(1, 921599, '\P{Is_GCB=_	XX}', "");
-    Expect(0, 921599, '\P{^Is_GCB=_	XX}', "");
-    Error('\p{Grapheme_Cluster_Break=-:=zwj}');
-    Error('\P{Grapheme_Cluster_Break=-:=zwj}');
+    Expect(1, 921600, '\p{Is_GCB=XX}', "");
+    Expect(0, 921600, '\p{^Is_GCB=XX}', "");
+    Expect(0, 921600, '\P{Is_GCB=XX}', "");
+    Expect(1, 921600, '\P{^Is_GCB=XX}', "");
+    Expect(0, 921599, '\p{Is_GCB=XX}', "");
+    Expect(1, 921599, '\p{^Is_GCB=XX}', "");
+    Expect(1, 921599, '\P{Is_GCB=XX}', "");
+    Expect(0, 921599, '\P{^Is_GCB=XX}', "");
+    Error('\p{Grapheme_Cluster_Break=_:=ZWJ}');
+    Error('\P{Grapheme_Cluster_Break=_:=ZWJ}');
     Expect(1, 8205, '\p{Grapheme_Cluster_Break=:\AZWJ\z:}', "");;
     Expect(0, 8206, '\p{Grapheme_Cluster_Break=:\AZWJ\z:}', "");;
-    Expect(1, 8205, '\p{Grapheme_Cluster_Break=zwj}', "");
-    Expect(0, 8205, '\p{^Grapheme_Cluster_Break=zwj}', "");
-    Expect(0, 8205, '\P{Grapheme_Cluster_Break=zwj}', "");
-    Expect(1, 8205, '\P{^Grapheme_Cluster_Break=zwj}', "");
-    Expect(0, 8206, '\p{Grapheme_Cluster_Break=zwj}', "");
-    Expect(1, 8206, '\p{^Grapheme_Cluster_Break=zwj}', "");
-    Expect(1, 8206, '\P{Grapheme_Cluster_Break=zwj}', "");
-    Expect(0, 8206, '\P{^Grapheme_Cluster_Break=zwj}', "");
+    Expect(1, 8205, '\p{Grapheme_Cluster_Break:   zwj}', "");
+    Expect(0, 8205, '\p{^Grapheme_Cluster_Break:   zwj}', "");
+    Expect(0, 8205, '\P{Grapheme_Cluster_Break:   zwj}', "");
+    Expect(1, 8205, '\P{^Grapheme_Cluster_Break:   zwj}', "");
+    Expect(0, 8206, '\p{Grapheme_Cluster_Break:   zwj}', "");
+    Expect(1, 8206, '\p{^Grapheme_Cluster_Break:   zwj}', "");
+    Expect(1, 8206, '\P{Grapheme_Cluster_Break:   zwj}', "");
+    Expect(0, 8206, '\P{^Grapheme_Cluster_Break:   zwj}', "");
     Expect(1, 8205, '\p{Grapheme_Cluster_Break=:\Azwj\z:}', "");;
     Expect(0, 8206, '\p{Grapheme_Cluster_Break=:\Azwj\z:}', "");;
-    Expect(1, 8205, '\p{Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(0, 8205, '\p{^Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(0, 8205, '\P{Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(1, 8205, '\P{^Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(0, 8206, '\p{Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(1, 8206, '\p{^Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(1, 8206, '\P{Grapheme_Cluster_Break=-ZWJ}', "");
-    Expect(0, 8206, '\P{^Grapheme_Cluster_Break=-ZWJ}', "");
-    Error('\p{GCB=  zwj:=}');
-    Error('\P{GCB=  zwj:=}');
+    Expect(1, 8205, '\p{Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(0, 8205, '\p{^Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(0, 8205, '\P{Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(1, 8205, '\P{^Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(0, 8206, '\p{Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(1, 8206, '\p{^Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(1, 8206, '\P{Grapheme_Cluster_Break=		ZWJ}', "");
+    Expect(0, 8206, '\P{^Grapheme_Cluster_Break=		ZWJ}', "");
+    Error('\p{GCB=	ZWJ/a/}');
+    Error('\P{GCB=	ZWJ/a/}');
     Expect(1, 8205, '\p{GCB=:\AZWJ\z:}', "");;
     Expect(0, 8206, '\p{GCB=:\AZWJ\z:}', "");;
     Expect(1, 8205, '\p{GCB=zwj}', "");
@@ -44597,16 +45149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^GCB=zwj}', "");
     Expect(1, 8205, '\p{GCB=:\Azwj\z:}', "");;
     Expect(0, 8206, '\p{GCB=:\Azwj\z:}', "");;
-    Expect(1, 8205, '\p{GCB=_-ZWJ}', "");
-    Expect(0, 8205, '\p{^GCB=_-ZWJ}', "");
-    Expect(0, 8205, '\P{GCB=_-ZWJ}', "");
-    Expect(1, 8205, '\P{^GCB=_-ZWJ}', "");
-    Expect(0, 8206, '\p{GCB=_-ZWJ}', "");
-    Expect(1, 8206, '\p{^GCB=_-ZWJ}', "");
-    Expect(1, 8206, '\P{GCB=_-ZWJ}', "");
-    Expect(0, 8206, '\P{^GCB=_-ZWJ}', "");
-    Error('\p{Is_Grapheme_Cluster_Break=  zwj:=}');
-    Error('\P{Is_Grapheme_Cluster_Break=  zwj:=}');
+    Expect(1, 8205, '\p{GCB=-	zwj}', "");
+    Expect(0, 8205, '\p{^GCB=-	zwj}', "");
+    Expect(0, 8205, '\P{GCB=-	zwj}', "");
+    Expect(1, 8205, '\P{^GCB=-	zwj}', "");
+    Expect(0, 8206, '\p{GCB=-	zwj}', "");
+    Expect(1, 8206, '\p{^GCB=-	zwj}', "");
+    Expect(1, 8206, '\P{GCB=-	zwj}', "");
+    Expect(0, 8206, '\P{^GCB=-	zwj}', "");
+    Error('\p{Is_Grapheme_Cluster_Break=_:=ZWJ}');
+    Error('\P{Is_Grapheme_Cluster_Break=_:=ZWJ}');
     Expect(1, 8205, '\p{Is_Grapheme_Cluster_Break=zwj}', "");
     Expect(0, 8205, '\p{^Is_Grapheme_Cluster_Break=zwj}', "");
     Expect(0, 8205, '\P{Is_Grapheme_Cluster_Break=zwj}', "");
@@ -44615,16 +45167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Grapheme_Cluster_Break=zwj}', "");
     Expect(1, 8206, '\P{Is_Grapheme_Cluster_Break=zwj}', "");
     Expect(0, 8206, '\P{^Is_Grapheme_Cluster_Break=zwj}', "");
-    Expect(1, 8205, '\p{Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(0, 8205, '\p{^Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(0, 8205, '\P{Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(1, 8205, '\P{^Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(0, 8206, '\p{Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(1, 8206, '\p{^Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(1, 8206, '\P{Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Expect(0, 8206, '\P{^Is_Grapheme_Cluster_Break= -ZWJ}', "");
-    Error('\p{Is_GCB=-:=ZWJ}');
-    Error('\P{Is_GCB=-:=ZWJ}');
+    Expect(1, 8205, '\p{Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(0, 8205, '\p{^Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(0, 8205, '\P{Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(1, 8205, '\P{^Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(0, 8206, '\p{Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(1, 8206, '\p{^Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(1, 8206, '\P{Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Expect(0, 8206, '\P{^Is_Grapheme_Cluster_Break=  ZWJ}', "");
+    Error('\p{Is_GCB=:=	_zwj}');
+    Error('\P{Is_GCB=:=	_zwj}');
     Expect(1, 8205, '\p{Is_GCB=zwj}', "");
     Expect(0, 8205, '\p{^Is_GCB=zwj}', "");
     Expect(0, 8205, '\P{Is_GCB=zwj}', "");
@@ -44633,176 +45185,176 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_GCB=zwj}', "");
     Expect(1, 8206, '\P{Is_GCB=zwj}', "");
     Expect(0, 8206, '\P{^Is_GCB=zwj}', "");
-    Expect(1, 8205, '\p{Is_GCB=_ZWJ}', "");
-    Expect(0, 8205, '\p{^Is_GCB=_ZWJ}', "");
-    Expect(0, 8205, '\P{Is_GCB=_ZWJ}', "");
-    Expect(1, 8205, '\P{^Is_GCB=_ZWJ}', "");
-    Expect(0, 8206, '\p{Is_GCB=_ZWJ}', "");
-    Expect(1, 8206, '\p{^Is_GCB=_ZWJ}', "");
-    Expect(1, 8206, '\P{Is_GCB=_ZWJ}', "");
-    Expect(0, 8206, '\P{^Is_GCB=_ZWJ}', "");
-    Error('\p{Grapheme_Base=/a/ No}');
-    Error('\P{Grapheme_Base=/a/ No}');
-    Expect(1, 201547, '\p{Grapheme_Base=:\ANo\z:}', "");;
-    Expect(0, 201546, '\p{Grapheme_Base=:\ANo\z:}', "");;
-    Expect(1, 201547, '\p{Grapheme_Base=no}', "");
-    Expect(0, 201547, '\p{^Grapheme_Base=no}', "");
-    Expect(0, 201547, '\P{Grapheme_Base=no}', "");
-    Expect(1, 201547, '\P{^Grapheme_Base=no}', "");
-    Expect(0, 201546, '\p{Grapheme_Base=no}', "");
-    Expect(1, 201546, '\p{^Grapheme_Base=no}', "");
-    Expect(1, 201546, '\P{Grapheme_Base=no}', "");
-    Expect(0, 201546, '\P{^Grapheme_Base=no}', "");
-    Expect(1, 201547, '\p{Grapheme_Base=:\Ano\z:}', "");;
-    Expect(0, 201546, '\p{Grapheme_Base=:\Ano\z:}', "");;
-    Expect(1, 201547, '\p{Grapheme_Base=  No}', "");
-    Expect(0, 201547, '\p{^Grapheme_Base=  No}', "");
-    Expect(0, 201547, '\P{Grapheme_Base=  No}', "");
-    Expect(1, 201547, '\P{^Grapheme_Base=  No}', "");
-    Expect(0, 201546, '\p{Grapheme_Base=  No}', "");
-    Expect(1, 201546, '\p{^Grapheme_Base=  No}', "");
-    Expect(1, 201546, '\P{Grapheme_Base=  No}', "");
-    Expect(0, 201546, '\P{^Grapheme_Base=  No}', "");
-    Error('\p{Gr_Base=	n:=}');
-    Error('\P{Gr_Base=	n:=}');
-    Expect(1, 201547, '\p{Gr_Base=:\AN\z:}', "");;
-    Expect(0, 201546, '\p{Gr_Base=:\AN\z:}', "");;
-    Expect(1, 201547, '\p{Gr_Base=n}', "");
-    Expect(0, 201547, '\p{^Gr_Base=n}', "");
-    Expect(0, 201547, '\P{Gr_Base=n}', "");
-    Expect(1, 201547, '\P{^Gr_Base=n}', "");
-    Expect(0, 201546, '\p{Gr_Base=n}', "");
-    Expect(1, 201546, '\p{^Gr_Base=n}', "");
-    Expect(1, 201546, '\P{Gr_Base=n}', "");
-    Expect(0, 201546, '\P{^Gr_Base=n}', "");
-    Expect(1, 201547, '\p{Gr_Base=:\An\z:}', "");;
-    Expect(0, 201546, '\p{Gr_Base=:\An\z:}', "");;
-    Expect(1, 201547, '\p{Gr_Base=_-n}', "");
-    Expect(0, 201547, '\p{^Gr_Base=_-n}', "");
-    Expect(0, 201547, '\P{Gr_Base=_-n}', "");
-    Expect(1, 201547, '\P{^Gr_Base=_-n}', "");
-    Expect(0, 201546, '\p{Gr_Base=_-n}', "");
-    Expect(1, 201546, '\p{^Gr_Base=_-n}', "");
-    Expect(1, 201546, '\P{Gr_Base=_-n}', "");
-    Expect(0, 201546, '\P{^Gr_Base=_-n}', "");
-    Error('\p{Is_Grapheme_Base:   :=-F}');
-    Error('\P{Is_Grapheme_Base:   :=-F}');
-    Expect(1, 201547, '\p{Is_Grapheme_Base=f}', "");
-    Expect(0, 201547, '\p{^Is_Grapheme_Base=f}', "");
-    Expect(0, 201547, '\P{Is_Grapheme_Base=f}', "");
-    Expect(1, 201547, '\P{^Is_Grapheme_Base=f}', "");
-    Expect(0, 201546, '\p{Is_Grapheme_Base=f}', "");
-    Expect(1, 201546, '\p{^Is_Grapheme_Base=f}', "");
-    Expect(1, 201546, '\P{Is_Grapheme_Base=f}', "");
-    Expect(0, 201546, '\P{^Is_Grapheme_Base=f}', "");
-    Expect(1, 201547, '\p{Is_Grapheme_Base:	 F}', "");
-    Expect(0, 201547, '\p{^Is_Grapheme_Base:	 F}', "");
-    Expect(0, 201547, '\P{Is_Grapheme_Base:	 F}', "");
-    Expect(1, 201547, '\P{^Is_Grapheme_Base:	 F}', "");
-    Expect(0, 201546, '\p{Is_Grapheme_Base:	 F}', "");
-    Expect(1, 201546, '\p{^Is_Grapheme_Base:	 F}', "");
-    Expect(1, 201546, '\P{Is_Grapheme_Base:	 F}', "");
-    Expect(0, 201546, '\P{^Is_Grapheme_Base:	 F}', "");
-    Error('\p{Is_Gr_Base: :=False}');
-    Error('\P{Is_Gr_Base: :=False}');
-    Expect(1, 201547, '\p{Is_Gr_Base=false}', "");
-    Expect(0, 201547, '\p{^Is_Gr_Base=false}', "");
-    Expect(0, 201547, '\P{Is_Gr_Base=false}', "");
-    Expect(1, 201547, '\P{^Is_Gr_Base=false}', "");
-    Expect(0, 201546, '\p{Is_Gr_Base=false}', "");
-    Expect(1, 201546, '\p{^Is_Gr_Base=false}', "");
-    Expect(1, 201546, '\P{Is_Gr_Base=false}', "");
-    Expect(0, 201546, '\P{^Is_Gr_Base=false}', "");
-    Expect(1, 201547, '\p{Is_Gr_Base= 	False}', "");
-    Expect(0, 201547, '\p{^Is_Gr_Base= 	False}', "");
-    Expect(0, 201547, '\P{Is_Gr_Base= 	False}', "");
-    Expect(1, 201547, '\P{^Is_Gr_Base= 	False}', "");
-    Expect(0, 201546, '\p{Is_Gr_Base= 	False}', "");
-    Expect(1, 201546, '\p{^Is_Gr_Base= 	False}', "");
-    Expect(1, 201546, '\P{Is_Gr_Base= 	False}', "");
-    Expect(0, 201546, '\P{^Is_Gr_Base= 	False}', "");
-    Error('\p{Grapheme_Base=/a/yes}');
-    Error('\P{Grapheme_Base=/a/yes}');
-    Expect(1, 201546, '\p{Grapheme_Base=:\AYes\z:}', "");;
-    Expect(0, 201547, '\p{Grapheme_Base=:\AYes\z:}', "");;
-    Expect(1, 201546, '\p{Grapheme_Base=yes}', "");
-    Expect(0, 201546, '\p{^Grapheme_Base=yes}', "");
-    Expect(0, 201546, '\P{Grapheme_Base=yes}', "");
-    Expect(1, 201546, '\P{^Grapheme_Base=yes}', "");
-    Expect(0, 201547, '\p{Grapheme_Base=yes}', "");
-    Expect(1, 201547, '\p{^Grapheme_Base=yes}', "");
-    Expect(1, 201547, '\P{Grapheme_Base=yes}', "");
-    Expect(0, 201547, '\P{^Grapheme_Base=yes}', "");
-    Expect(1, 201546, '\p{Grapheme_Base=:\Ayes\z:}', "");;
-    Expect(0, 201547, '\p{Grapheme_Base=:\Ayes\z:}', "");;
-    Expect(1, 201546, '\p{Grapheme_Base:   _	Yes}', "");
-    Expect(0, 201546, '\p{^Grapheme_Base:   _	Yes}', "");
-    Expect(0, 201546, '\P{Grapheme_Base:   _	Yes}', "");
-    Expect(1, 201546, '\P{^Grapheme_Base:   _	Yes}', "");
-    Expect(0, 201547, '\p{Grapheme_Base:   _	Yes}', "");
-    Expect(1, 201547, '\p{^Grapheme_Base:   _	Yes}', "");
-    Expect(1, 201547, '\P{Grapheme_Base:   _	Yes}', "");
-    Expect(0, 201547, '\P{^Grapheme_Base:   _	Yes}', "");
-    Error('\p{Gr_Base=_:=Y}');
-    Error('\P{Gr_Base=_:=Y}');
-    Expect(1, 201546, '\p{Gr_Base=:\AY\z:}', "");;
-    Expect(0, 201547, '\p{Gr_Base=:\AY\z:}', "");;
-    Expect(1, 201546, '\p{Gr_Base=y}', "");
-    Expect(0, 201546, '\p{^Gr_Base=y}', "");
-    Expect(0, 201546, '\P{Gr_Base=y}', "");
-    Expect(1, 201546, '\P{^Gr_Base=y}', "");
-    Expect(0, 201547, '\p{Gr_Base=y}', "");
-    Expect(1, 201547, '\p{^Gr_Base=y}', "");
-    Expect(1, 201547, '\P{Gr_Base=y}', "");
-    Expect(0, 201547, '\P{^Gr_Base=y}', "");
-    Expect(1, 201546, '\p{Gr_Base=:\Ay\z:}', "");;
-    Expect(0, 201547, '\p{Gr_Base=:\Ay\z:}', "");;
-    Expect(1, 201546, '\p{Gr_Base=--Y}', "");
-    Expect(0, 201546, '\p{^Gr_Base=--Y}', "");
-    Expect(0, 201546, '\P{Gr_Base=--Y}', "");
-    Expect(1, 201546, '\P{^Gr_Base=--Y}', "");
-    Expect(0, 201547, '\p{Gr_Base=--Y}', "");
-    Expect(1, 201547, '\p{^Gr_Base=--Y}', "");
-    Expect(1, 201547, '\P{Gr_Base=--Y}', "");
-    Expect(0, 201547, '\P{^Gr_Base=--Y}', "");
-    Error('\p{Is_Grapheme_Base= t:=}');
-    Error('\P{Is_Grapheme_Base= t:=}');
-    Expect(1, 201546, '\p{Is_Grapheme_Base=t}', "");
-    Expect(0, 201546, '\p{^Is_Grapheme_Base=t}', "");
-    Expect(0, 201546, '\P{Is_Grapheme_Base=t}', "");
-    Expect(1, 201546, '\P{^Is_Grapheme_Base=t}', "");
-    Expect(0, 201547, '\p{Is_Grapheme_Base=t}', "");
-    Expect(1, 201547, '\p{^Is_Grapheme_Base=t}', "");
-    Expect(1, 201547, '\P{Is_Grapheme_Base=t}', "");
-    Expect(0, 201547, '\P{^Is_Grapheme_Base=t}', "");
-    Expect(1, 201546, '\p{Is_Grapheme_Base= -T}', "");
-    Expect(0, 201546, '\p{^Is_Grapheme_Base= -T}', "");
-    Expect(0, 201546, '\P{Is_Grapheme_Base= -T}', "");
-    Expect(1, 201546, '\P{^Is_Grapheme_Base= -T}', "");
-    Expect(0, 201547, '\p{Is_Grapheme_Base= -T}', "");
-    Expect(1, 201547, '\p{^Is_Grapheme_Base= -T}', "");
-    Expect(1, 201547, '\P{Is_Grapheme_Base= -T}', "");
-    Expect(0, 201547, '\P{^Is_Grapheme_Base= -T}', "");
-    Error('\p{Is_Gr_Base=		true/a/}');
-    Error('\P{Is_Gr_Base=		true/a/}');
-    Expect(1, 201546, '\p{Is_Gr_Base=true}', "");
-    Expect(0, 201546, '\p{^Is_Gr_Base=true}', "");
-    Expect(0, 201546, '\P{Is_Gr_Base=true}', "");
-    Expect(1, 201546, '\P{^Is_Gr_Base=true}', "");
-    Expect(0, 201547, '\p{Is_Gr_Base=true}', "");
-    Expect(1, 201547, '\p{^Is_Gr_Base=true}', "");
-    Expect(1, 201547, '\P{Is_Gr_Base=true}', "");
-    Expect(0, 201547, '\P{^Is_Gr_Base=true}', "");
-    Expect(1, 201546, '\p{Is_Gr_Base=_ True}', "");
-    Expect(0, 201546, '\p{^Is_Gr_Base=_ True}', "");
-    Expect(0, 201546, '\P{Is_Gr_Base=_ True}', "");
-    Expect(1, 201546, '\P{^Is_Gr_Base=_ True}', "");
-    Expect(0, 201547, '\p{Is_Gr_Base=_ True}', "");
-    Expect(1, 201547, '\p{^Is_Gr_Base=_ True}', "");
-    Expect(1, 201547, '\P{Is_Gr_Base=_ True}', "");
-    Expect(0, 201547, '\P{^Is_Gr_Base=_ True}', "");
-    Error('\p{Grapheme_Extend=-:=no}');
-    Error('\P{Grapheme_Extend=-:=no}');
+    Expect(1, 8205, '\p{Is_GCB:   	_ZWJ}', "");
+    Expect(0, 8205, '\p{^Is_GCB:   	_ZWJ}', "");
+    Expect(0, 8205, '\P{Is_GCB:   	_ZWJ}', "");
+    Expect(1, 8205, '\P{^Is_GCB:   	_ZWJ}', "");
+    Expect(0, 8206, '\p{Is_GCB:   	_ZWJ}', "");
+    Expect(1, 8206, '\p{^Is_GCB:   	_ZWJ}', "");
+    Expect(1, 8206, '\P{Is_GCB:   	_ZWJ}', "");
+    Expect(0, 8206, '\P{^Is_GCB:   	_ZWJ}', "");
+    Error('\p{Grapheme_Base=:= _no}');
+    Error('\P{Grapheme_Base=:= _no}');
+    Expect(1, 205744, '\p{Grapheme_Base=:\ANo\z:}', "");;
+    Expect(0, 205743, '\p{Grapheme_Base=:\ANo\z:}', "");;
+    Expect(1, 205744, '\p{Grapheme_Base=no}', "");
+    Expect(0, 205744, '\p{^Grapheme_Base=no}', "");
+    Expect(0, 205744, '\P{Grapheme_Base=no}', "");
+    Expect(1, 205744, '\P{^Grapheme_Base=no}', "");
+    Expect(0, 205743, '\p{Grapheme_Base=no}', "");
+    Expect(1, 205743, '\p{^Grapheme_Base=no}', "");
+    Expect(1, 205743, '\P{Grapheme_Base=no}', "");
+    Expect(0, 205743, '\P{^Grapheme_Base=no}', "");
+    Expect(1, 205744, '\p{Grapheme_Base=:\Ano\z:}', "");;
+    Expect(0, 205743, '\p{Grapheme_Base=:\Ano\z:}', "");;
+    Expect(1, 205744, '\p{Grapheme_Base=	_No}', "");
+    Expect(0, 205744, '\p{^Grapheme_Base=	_No}', "");
+    Expect(0, 205744, '\P{Grapheme_Base=	_No}', "");
+    Expect(1, 205744, '\P{^Grapheme_Base=	_No}', "");
+    Expect(0, 205743, '\p{Grapheme_Base=	_No}', "");
+    Expect(1, 205743, '\p{^Grapheme_Base=	_No}', "");
+    Expect(1, 205743, '\P{Grapheme_Base=	_No}', "");
+    Expect(0, 205743, '\P{^Grapheme_Base=	_No}', "");
+    Error('\p{Gr_Base=	:=N}');
+    Error('\P{Gr_Base=	:=N}');
+    Expect(1, 205744, '\p{Gr_Base=:\AN\z:}', "");;
+    Expect(0, 205743, '\p{Gr_Base=:\AN\z:}', "");;
+    Expect(1, 205744, '\p{Gr_Base=n}', "");
+    Expect(0, 205744, '\p{^Gr_Base=n}', "");
+    Expect(0, 205744, '\P{Gr_Base=n}', "");
+    Expect(1, 205744, '\P{^Gr_Base=n}', "");
+    Expect(0, 205743, '\p{Gr_Base=n}', "");
+    Expect(1, 205743, '\p{^Gr_Base=n}', "");
+    Expect(1, 205743, '\P{Gr_Base=n}', "");
+    Expect(0, 205743, '\P{^Gr_Base=n}', "");
+    Expect(1, 205744, '\p{Gr_Base=:\An\z:}', "");;
+    Expect(0, 205743, '\p{Gr_Base=:\An\z:}', "");;
+    Expect(1, 205744, '\p{Gr_Base= n}', "");
+    Expect(0, 205744, '\p{^Gr_Base= n}', "");
+    Expect(0, 205744, '\P{Gr_Base= n}', "");
+    Expect(1, 205744, '\P{^Gr_Base= n}', "");
+    Expect(0, 205743, '\p{Gr_Base= n}', "");
+    Expect(1, 205743, '\p{^Gr_Base= n}', "");
+    Expect(1, 205743, '\P{Gr_Base= n}', "");
+    Expect(0, 205743, '\P{^Gr_Base= n}', "");
+    Error('\p{Is_Grapheme_Base=_/a/f}');
+    Error('\P{Is_Grapheme_Base=_/a/f}');
+    Expect(1, 205744, '\p{Is_Grapheme_Base:	f}', "");
+    Expect(0, 205744, '\p{^Is_Grapheme_Base:	f}', "");
+    Expect(0, 205744, '\P{Is_Grapheme_Base:	f}', "");
+    Expect(1, 205744, '\P{^Is_Grapheme_Base:	f}', "");
+    Expect(0, 205743, '\p{Is_Grapheme_Base:	f}', "");
+    Expect(1, 205743, '\p{^Is_Grapheme_Base:	f}', "");
+    Expect(1, 205743, '\P{Is_Grapheme_Base:	f}', "");
+    Expect(0, 205743, '\P{^Is_Grapheme_Base:	f}', "");
+    Expect(1, 205744, '\p{Is_Grapheme_Base=		F}', "");
+    Expect(0, 205744, '\p{^Is_Grapheme_Base=		F}', "");
+    Expect(0, 205744, '\P{Is_Grapheme_Base=		F}', "");
+    Expect(1, 205744, '\P{^Is_Grapheme_Base=		F}', "");
+    Expect(0, 205743, '\p{Is_Grapheme_Base=		F}', "");
+    Expect(1, 205743, '\p{^Is_Grapheme_Base=		F}', "");
+    Expect(1, 205743, '\P{Is_Grapheme_Base=		F}', "");
+    Expect(0, 205743, '\P{^Is_Grapheme_Base=		F}', "");
+    Error('\p{Is_Gr_Base=:=_-False}');
+    Error('\P{Is_Gr_Base=:=_-False}');
+    Expect(1, 205744, '\p{Is_Gr_Base: false}', "");
+    Expect(0, 205744, '\p{^Is_Gr_Base: false}', "");
+    Expect(0, 205744, '\P{Is_Gr_Base: false}', "");
+    Expect(1, 205744, '\P{^Is_Gr_Base: false}', "");
+    Expect(0, 205743, '\p{Is_Gr_Base: false}', "");
+    Expect(1, 205743, '\p{^Is_Gr_Base: false}', "");
+    Expect(1, 205743, '\P{Is_Gr_Base: false}', "");
+    Expect(0, 205743, '\P{^Is_Gr_Base: false}', "");
+    Expect(1, 205744, '\p{Is_Gr_Base:    _FALSE}', "");
+    Expect(0, 205744, '\p{^Is_Gr_Base:    _FALSE}', "");
+    Expect(0, 205744, '\P{Is_Gr_Base:    _FALSE}', "");
+    Expect(1, 205744, '\P{^Is_Gr_Base:    _FALSE}', "");
+    Expect(0, 205743, '\p{Is_Gr_Base:    _FALSE}', "");
+    Expect(1, 205743, '\p{^Is_Gr_Base:    _FALSE}', "");
+    Expect(1, 205743, '\P{Is_Gr_Base:    _FALSE}', "");
+    Expect(0, 205743, '\P{^Is_Gr_Base:    _FALSE}', "");
+    Error('\p{Grapheme_Base::=	Yes}');
+    Error('\P{Grapheme_Base::=	Yes}');
+    Expect(1, 205743, '\p{Grapheme_Base=:\AYes\z:}', "");;
+    Expect(0, 205744, '\p{Grapheme_Base=:\AYes\z:}', "");;
+    Expect(1, 205743, '\p{Grapheme_Base=yes}', "");
+    Expect(0, 205743, '\p{^Grapheme_Base=yes}', "");
+    Expect(0, 205743, '\P{Grapheme_Base=yes}', "");
+    Expect(1, 205743, '\P{^Grapheme_Base=yes}', "");
+    Expect(0, 205744, '\p{Grapheme_Base=yes}', "");
+    Expect(1, 205744, '\p{^Grapheme_Base=yes}', "");
+    Expect(1, 205744, '\P{Grapheme_Base=yes}', "");
+    Expect(0, 205744, '\P{^Grapheme_Base=yes}', "");
+    Expect(1, 205743, '\p{Grapheme_Base=:\Ayes\z:}', "");;
+    Expect(0, 205744, '\p{Grapheme_Base=:\Ayes\z:}', "");;
+    Expect(1, 205743, '\p{Grapheme_Base=- YES}', "");
+    Expect(0, 205743, '\p{^Grapheme_Base=- YES}', "");
+    Expect(0, 205743, '\P{Grapheme_Base=- YES}', "");
+    Expect(1, 205743, '\P{^Grapheme_Base=- YES}', "");
+    Expect(0, 205744, '\p{Grapheme_Base=- YES}', "");
+    Expect(1, 205744, '\p{^Grapheme_Base=- YES}', "");
+    Expect(1, 205744, '\P{Grapheme_Base=- YES}', "");
+    Expect(0, 205744, '\P{^Grapheme_Base=- YES}', "");
+    Error('\p{Gr_Base=/a/	-Y}');
+    Error('\P{Gr_Base=/a/	-Y}');
+    Expect(1, 205743, '\p{Gr_Base=:\AY\z:}', "");;
+    Expect(0, 205744, '\p{Gr_Base=:\AY\z:}', "");;
+    Expect(1, 205743, '\p{Gr_Base=y}', "");
+    Expect(0, 205743, '\p{^Gr_Base=y}', "");
+    Expect(0, 205743, '\P{Gr_Base=y}', "");
+    Expect(1, 205743, '\P{^Gr_Base=y}', "");
+    Expect(0, 205744, '\p{Gr_Base=y}', "");
+    Expect(1, 205744, '\p{^Gr_Base=y}', "");
+    Expect(1, 205744, '\P{Gr_Base=y}', "");
+    Expect(0, 205744, '\P{^Gr_Base=y}', "");
+    Expect(1, 205743, '\p{Gr_Base=:\Ay\z:}', "");;
+    Expect(0, 205744, '\p{Gr_Base=:\Ay\z:}', "");;
+    Expect(1, 205743, '\p{Gr_Base=--y}', "");
+    Expect(0, 205743, '\p{^Gr_Base=--y}', "");
+    Expect(0, 205743, '\P{Gr_Base=--y}', "");
+    Expect(1, 205743, '\P{^Gr_Base=--y}', "");
+    Expect(0, 205744, '\p{Gr_Base=--y}', "");
+    Expect(1, 205744, '\p{^Gr_Base=--y}', "");
+    Expect(1, 205744, '\P{Gr_Base=--y}', "");
+    Expect(0, 205744, '\P{^Gr_Base=--y}', "");
+    Error('\p{Is_Grapheme_Base=/a/ -T}');
+    Error('\P{Is_Grapheme_Base=/a/ -T}');
+    Expect(1, 205743, '\p{Is_Grapheme_Base=t}', "");
+    Expect(0, 205743, '\p{^Is_Grapheme_Base=t}', "");
+    Expect(0, 205743, '\P{Is_Grapheme_Base=t}', "");
+    Expect(1, 205743, '\P{^Is_Grapheme_Base=t}', "");
+    Expect(0, 205744, '\p{Is_Grapheme_Base=t}', "");
+    Expect(1, 205744, '\p{^Is_Grapheme_Base=t}', "");
+    Expect(1, 205744, '\P{Is_Grapheme_Base=t}', "");
+    Expect(0, 205744, '\P{^Is_Grapheme_Base=t}', "");
+    Expect(1, 205743, '\p{Is_Grapheme_Base= _T}', "");
+    Expect(0, 205743, '\p{^Is_Grapheme_Base= _T}', "");
+    Expect(0, 205743, '\P{Is_Grapheme_Base= _T}', "");
+    Expect(1, 205743, '\P{^Is_Grapheme_Base= _T}', "");
+    Expect(0, 205744, '\p{Is_Grapheme_Base= _T}', "");
+    Expect(1, 205744, '\p{^Is_Grapheme_Base= _T}', "");
+    Expect(1, 205744, '\P{Is_Grapheme_Base= _T}', "");
+    Expect(0, 205744, '\P{^Is_Grapheme_Base= _T}', "");
+    Error('\p{Is_Gr_Base=/a/		True}');
+    Error('\P{Is_Gr_Base=/a/		True}');
+    Expect(1, 205743, '\p{Is_Gr_Base=true}', "");
+    Expect(0, 205743, '\p{^Is_Gr_Base=true}', "");
+    Expect(0, 205743, '\P{Is_Gr_Base=true}', "");
+    Expect(1, 205743, '\P{^Is_Gr_Base=true}', "");
+    Expect(0, 205744, '\p{Is_Gr_Base=true}', "");
+    Expect(1, 205744, '\p{^Is_Gr_Base=true}', "");
+    Expect(1, 205744, '\P{Is_Gr_Base=true}', "");
+    Expect(0, 205744, '\P{^Is_Gr_Base=true}', "");
+    Expect(1, 205743, '\p{Is_Gr_Base=__True}', "");
+    Expect(0, 205743, '\p{^Is_Gr_Base=__True}', "");
+    Expect(0, 205743, '\P{Is_Gr_Base=__True}', "");
+    Expect(1, 205743, '\P{^Is_Gr_Base=__True}', "");
+    Expect(0, 205744, '\p{Is_Gr_Base=__True}', "");
+    Expect(1, 205744, '\p{^Is_Gr_Base=__True}', "");
+    Expect(1, 205744, '\P{Is_Gr_Base=__True}', "");
+    Expect(0, 205744, '\P{^Is_Gr_Base=__True}', "");
+    Error('\p{Grapheme_Extend=/a/	no}');
+    Error('\P{Grapheme_Extend=/a/	no}');
     Expect(1, 918000, '\p{Grapheme_Extend=:\ANo\z:}', "");;
     Expect(0, 917999, '\p{Grapheme_Extend=:\ANo\z:}', "");;
     Expect(1, 918000, '\p{Grapheme_Extend=no}', "");
@@ -44815,38 +45367,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^Grapheme_Extend=no}', "");
     Expect(1, 918000, '\p{Grapheme_Extend=:\Ano\z:}', "");;
     Expect(0, 917999, '\p{Grapheme_Extend=:\Ano\z:}', "");;
-    Expect(1, 918000, '\p{Grapheme_Extend=--NO}', "");
-    Expect(0, 918000, '\p{^Grapheme_Extend=--NO}', "");
-    Expect(0, 918000, '\P{Grapheme_Extend=--NO}', "");
-    Expect(1, 918000, '\P{^Grapheme_Extend=--NO}', "");
-    Expect(0, 917999, '\p{Grapheme_Extend=--NO}', "");
-    Expect(1, 917999, '\p{^Grapheme_Extend=--NO}', "");
-    Expect(1, 917999, '\P{Grapheme_Extend=--NO}', "");
-    Expect(0, 917999, '\P{^Grapheme_Extend=--NO}', "");
-    Error('\p{Gr_Ext= n/a/}');
-    Error('\P{Gr_Ext= n/a/}');
+    Expect(1, 918000, '\p{Grapheme_Extend=		No}', "");
+    Expect(0, 918000, '\p{^Grapheme_Extend=		No}', "");
+    Expect(0, 918000, '\P{Grapheme_Extend=		No}', "");
+    Expect(1, 918000, '\P{^Grapheme_Extend=		No}', "");
+    Expect(0, 917999, '\p{Grapheme_Extend=		No}', "");
+    Expect(1, 917999, '\p{^Grapheme_Extend=		No}', "");
+    Expect(1, 917999, '\P{Grapheme_Extend=		No}', "");
+    Expect(0, 917999, '\P{^Grapheme_Extend=		No}', "");
+    Error('\p{Gr_Ext=	N:=}');
+    Error('\P{Gr_Ext=	N:=}');
     Expect(1, 918000, '\p{Gr_Ext=:\AN\z:}', "");;
     Expect(0, 917999, '\p{Gr_Ext=:\AN\z:}', "");;
-    Expect(1, 918000, '\p{Gr_Ext=n}', "");
-    Expect(0, 918000, '\p{^Gr_Ext=n}', "");
-    Expect(0, 918000, '\P{Gr_Ext=n}', "");
-    Expect(1, 918000, '\P{^Gr_Ext=n}', "");
-    Expect(0, 917999, '\p{Gr_Ext=n}', "");
-    Expect(1, 917999, '\p{^Gr_Ext=n}', "");
-    Expect(1, 917999, '\P{Gr_Ext=n}', "");
-    Expect(0, 917999, '\P{^Gr_Ext=n}', "");
+    Expect(1, 918000, '\p{Gr_Ext: n}', "");
+    Expect(0, 918000, '\p{^Gr_Ext: n}', "");
+    Expect(0, 918000, '\P{Gr_Ext: n}', "");
+    Expect(1, 918000, '\P{^Gr_Ext: n}', "");
+    Expect(0, 917999, '\p{Gr_Ext: n}', "");
+    Expect(1, 917999, '\p{^Gr_Ext: n}', "");
+    Expect(1, 917999, '\P{Gr_Ext: n}', "");
+    Expect(0, 917999, '\P{^Gr_Ext: n}', "");
     Expect(1, 918000, '\p{Gr_Ext=:\An\z:}', "");;
     Expect(0, 917999, '\p{Gr_Ext=:\An\z:}', "");;
-    Expect(1, 918000, '\p{Gr_Ext:   _-N}', "");
-    Expect(0, 918000, '\p{^Gr_Ext:   _-N}', "");
-    Expect(0, 918000, '\P{Gr_Ext:   _-N}', "");
-    Expect(1, 918000, '\P{^Gr_Ext:   _-N}', "");
-    Expect(0, 917999, '\p{Gr_Ext:   _-N}', "");
-    Expect(1, 917999, '\p{^Gr_Ext:   _-N}', "");
-    Expect(1, 917999, '\P{Gr_Ext:   _-N}', "");
-    Expect(0, 917999, '\P{^Gr_Ext:   _-N}', "");
-    Error('\p{Is_Grapheme_Extend=-	F:=}');
-    Error('\P{Is_Grapheme_Extend=-	F:=}');
+    Expect(1, 918000, '\p{Gr_Ext= n}', "");
+    Expect(0, 918000, '\p{^Gr_Ext= n}', "");
+    Expect(0, 918000, '\P{Gr_Ext= n}', "");
+    Expect(1, 918000, '\P{^Gr_Ext= n}', "");
+    Expect(0, 917999, '\p{Gr_Ext= n}', "");
+    Expect(1, 917999, '\p{^Gr_Ext= n}', "");
+    Expect(1, 917999, '\P{Gr_Ext= n}', "");
+    Expect(0, 917999, '\P{^Gr_Ext= n}', "");
+    Error('\p{Is_Grapheme_Extend= -F:=}');
+    Error('\P{Is_Grapheme_Extend= -F:=}');
     Expect(1, 918000, '\p{Is_Grapheme_Extend=f}', "");
     Expect(0, 918000, '\p{^Is_Grapheme_Extend=f}', "");
     Expect(0, 918000, '\P{Is_Grapheme_Extend=f}', "");
@@ -44855,16 +45407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_Grapheme_Extend=f}', "");
     Expect(1, 917999, '\P{Is_Grapheme_Extend=f}', "");
     Expect(0, 917999, '\P{^Is_Grapheme_Extend=f}', "");
-    Expect(1, 918000, '\p{Is_Grapheme_Extend=_F}', "");
-    Expect(0, 918000, '\p{^Is_Grapheme_Extend=_F}', "");
-    Expect(0, 918000, '\P{Is_Grapheme_Extend=_F}', "");
-    Expect(1, 918000, '\P{^Is_Grapheme_Extend=_F}', "");
-    Expect(0, 917999, '\p{Is_Grapheme_Extend=_F}', "");
-    Expect(1, 917999, '\p{^Is_Grapheme_Extend=_F}', "");
-    Expect(1, 917999, '\P{Is_Grapheme_Extend=_F}', "");
-    Expect(0, 917999, '\P{^Is_Grapheme_Extend=_F}', "");
-    Error('\p{Is_Gr_Ext=-:=False}');
-    Error('\P{Is_Gr_Ext=-:=False}');
+    Expect(1, 918000, '\p{Is_Grapheme_Extend=- F}', "");
+    Expect(0, 918000, '\p{^Is_Grapheme_Extend=- F}', "");
+    Expect(0, 918000, '\P{Is_Grapheme_Extend=- F}', "");
+    Expect(1, 918000, '\P{^Is_Grapheme_Extend=- F}', "");
+    Expect(0, 917999, '\p{Is_Grapheme_Extend=- F}', "");
+    Expect(1, 917999, '\p{^Is_Grapheme_Extend=- F}', "");
+    Expect(1, 917999, '\P{Is_Grapheme_Extend=- F}', "");
+    Expect(0, 917999, '\P{^Is_Grapheme_Extend=- F}', "");
+    Error('\p{Is_Gr_Ext=:=--False}');
+    Error('\P{Is_Gr_Ext=:=--False}');
     Expect(1, 918000, '\p{Is_Gr_Ext=false}', "");
     Expect(0, 918000, '\p{^Is_Gr_Ext=false}', "");
     Expect(0, 918000, '\P{Is_Gr_Ext=false}', "");
@@ -44873,38 +45425,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_Gr_Ext=false}', "");
     Expect(1, 917999, '\P{Is_Gr_Ext=false}', "");
     Expect(0, 917999, '\P{^Is_Gr_Ext=false}', "");
-    Expect(1, 918000, '\p{Is_Gr_Ext=-_False}', "");
-    Expect(0, 918000, '\p{^Is_Gr_Ext=-_False}', "");
-    Expect(0, 918000, '\P{Is_Gr_Ext=-_False}', "");
-    Expect(1, 918000, '\P{^Is_Gr_Ext=-_False}', "");
-    Expect(0, 917999, '\p{Is_Gr_Ext=-_False}', "");
-    Expect(1, 917999, '\p{^Is_Gr_Ext=-_False}', "");
-    Expect(1, 917999, '\P{Is_Gr_Ext=-_False}', "");
-    Expect(0, 917999, '\P{^Is_Gr_Ext=-_False}', "");
-    Error('\p{Grapheme_Extend: /a/YES}');
-    Error('\P{Grapheme_Extend: /a/YES}');
+    Expect(1, 918000, '\p{Is_Gr_Ext=_	False}', "");
+    Expect(0, 918000, '\p{^Is_Gr_Ext=_	False}', "");
+    Expect(0, 918000, '\P{Is_Gr_Ext=_	False}', "");
+    Expect(1, 918000, '\P{^Is_Gr_Ext=_	False}', "");
+    Expect(0, 917999, '\p{Is_Gr_Ext=_	False}', "");
+    Expect(1, 917999, '\p{^Is_Gr_Ext=_	False}', "");
+    Expect(1, 917999, '\P{Is_Gr_Ext=_	False}', "");
+    Expect(0, 917999, '\P{^Is_Gr_Ext=_	False}', "");
+    Error('\p{Grapheme_Extend:    -YES:=}');
+    Error('\P{Grapheme_Extend:    -YES:=}');
     Expect(1, 917999, '\p{Grapheme_Extend=:\AYes\z:}', "");;
     Expect(0, 918000, '\p{Grapheme_Extend=:\AYes\z:}', "");;
-    Expect(1, 917999, '\p{Grapheme_Extend=yes}', "");
-    Expect(0, 917999, '\p{^Grapheme_Extend=yes}', "");
-    Expect(0, 917999, '\P{Grapheme_Extend=yes}', "");
-    Expect(1, 917999, '\P{^Grapheme_Extend=yes}', "");
-    Expect(0, 918000, '\p{Grapheme_Extend=yes}', "");
-    Expect(1, 918000, '\p{^Grapheme_Extend=yes}', "");
-    Expect(1, 918000, '\P{Grapheme_Extend=yes}', "");
-    Expect(0, 918000, '\P{^Grapheme_Extend=yes}', "");
+    Expect(1, 917999, '\p{Grapheme_Extend:	yes}', "");
+    Expect(0, 917999, '\p{^Grapheme_Extend:	yes}', "");
+    Expect(0, 917999, '\P{Grapheme_Extend:	yes}', "");
+    Expect(1, 917999, '\P{^Grapheme_Extend:	yes}', "");
+    Expect(0, 918000, '\p{Grapheme_Extend:	yes}', "");
+    Expect(1, 918000, '\p{^Grapheme_Extend:	yes}', "");
+    Expect(1, 918000, '\P{Grapheme_Extend:	yes}', "");
+    Expect(0, 918000, '\P{^Grapheme_Extend:	yes}', "");
     Expect(1, 917999, '\p{Grapheme_Extend=:\Ayes\z:}', "");;
     Expect(0, 918000, '\p{Grapheme_Extend=:\Ayes\z:}', "");;
-    Expect(1, 917999, '\p{Grapheme_Extend=-yes}', "");
-    Expect(0, 917999, '\p{^Grapheme_Extend=-yes}', "");
-    Expect(0, 917999, '\P{Grapheme_Extend=-yes}', "");
-    Expect(1, 917999, '\P{^Grapheme_Extend=-yes}', "");
-    Expect(0, 918000, '\p{Grapheme_Extend=-yes}', "");
-    Expect(1, 918000, '\p{^Grapheme_Extend=-yes}', "");
-    Expect(1, 918000, '\P{Grapheme_Extend=-yes}', "");
-    Expect(0, 918000, '\P{^Grapheme_Extend=-yes}', "");
-    Error('\p{Gr_Ext=-/a/Y}');
-    Error('\P{Gr_Ext=-/a/Y}');
+    Expect(1, 917999, '\p{Grapheme_Extend=- yes}', "");
+    Expect(0, 917999, '\p{^Grapheme_Extend=- yes}', "");
+    Expect(0, 917999, '\P{Grapheme_Extend=- yes}', "");
+    Expect(1, 917999, '\P{^Grapheme_Extend=- yes}', "");
+    Expect(0, 918000, '\p{Grapheme_Extend=- yes}', "");
+    Expect(1, 918000, '\p{^Grapheme_Extend=- yes}', "");
+    Expect(1, 918000, '\P{Grapheme_Extend=- yes}', "");
+    Expect(0, 918000, '\P{^Grapheme_Extend=- yes}', "");
+    Error('\p{Gr_Ext=_ y:=}');
+    Error('\P{Gr_Ext=_ y:=}');
     Expect(1, 917999, '\p{Gr_Ext=:\AY\z:}', "");;
     Expect(0, 918000, '\p{Gr_Ext=:\AY\z:}', "");;
     Expect(1, 917999, '\p{Gr_Ext=y}', "");
@@ -44917,16 +45469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Gr_Ext=y}', "");
     Expect(1, 917999, '\p{Gr_Ext=:\Ay\z:}', "");;
     Expect(0, 918000, '\p{Gr_Ext=:\Ay\z:}', "");;
-    Expect(1, 917999, '\p{Gr_Ext= _Y}', "");
-    Expect(0, 917999, '\p{^Gr_Ext= _Y}', "");
-    Expect(0, 917999, '\P{Gr_Ext= _Y}', "");
-    Expect(1, 917999, '\P{^Gr_Ext= _Y}', "");
-    Expect(0, 918000, '\p{Gr_Ext= _Y}', "");
-    Expect(1, 918000, '\p{^Gr_Ext= _Y}', "");
-    Expect(1, 918000, '\P{Gr_Ext= _Y}', "");
-    Expect(0, 918000, '\P{^Gr_Ext= _Y}', "");
-    Error('\p{Is_Grapheme_Extend=:=T}');
-    Error('\P{Is_Grapheme_Extend=:=T}');
+    Expect(1, 917999, '\p{Gr_Ext=  y}', "");
+    Expect(0, 917999, '\p{^Gr_Ext=  y}', "");
+    Expect(0, 917999, '\P{Gr_Ext=  y}', "");
+    Expect(1, 917999, '\P{^Gr_Ext=  y}', "");
+    Expect(0, 918000, '\p{Gr_Ext=  y}', "");
+    Expect(1, 918000, '\p{^Gr_Ext=  y}', "");
+    Expect(1, 918000, '\P{Gr_Ext=  y}', "");
+    Expect(0, 918000, '\P{^Gr_Ext=  y}', "");
+    Error('\p{Is_Grapheme_Extend:-T:=}');
+    Error('\P{Is_Grapheme_Extend:-T:=}');
     Expect(1, 917999, '\p{Is_Grapheme_Extend=t}', "");
     Expect(0, 917999, '\p{^Is_Grapheme_Extend=t}', "");
     Expect(0, 917999, '\P{Is_Grapheme_Extend=t}', "");
@@ -44935,16 +45487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Grapheme_Extend=t}', "");
     Expect(1, 918000, '\P{Is_Grapheme_Extend=t}', "");
     Expect(0, 918000, '\P{^Is_Grapheme_Extend=t}', "");
-    Expect(1, 917999, '\p{Is_Grapheme_Extend=- T}', "");
-    Expect(0, 917999, '\p{^Is_Grapheme_Extend=- T}', "");
-    Expect(0, 917999, '\P{Is_Grapheme_Extend=- T}', "");
-    Expect(1, 917999, '\P{^Is_Grapheme_Extend=- T}', "");
-    Expect(0, 918000, '\p{Is_Grapheme_Extend=- T}', "");
-    Expect(1, 918000, '\p{^Is_Grapheme_Extend=- T}', "");
-    Expect(1, 918000, '\P{Is_Grapheme_Extend=- T}', "");
-    Expect(0, 918000, '\P{^Is_Grapheme_Extend=- T}', "");
-    Error('\p{Is_Gr_Ext= _True:=}');
-    Error('\P{Is_Gr_Ext= _True:=}');
+    Expect(1, 917999, '\p{Is_Grapheme_Extend=	T}', "");
+    Expect(0, 917999, '\p{^Is_Grapheme_Extend=	T}', "");
+    Expect(0, 917999, '\P{Is_Grapheme_Extend=	T}', "");
+    Expect(1, 917999, '\P{^Is_Grapheme_Extend=	T}', "");
+    Expect(0, 918000, '\p{Is_Grapheme_Extend=	T}', "");
+    Expect(1, 918000, '\p{^Is_Grapheme_Extend=	T}', "");
+    Expect(1, 918000, '\P{Is_Grapheme_Extend=	T}', "");
+    Expect(0, 918000, '\P{^Is_Grapheme_Extend=	T}', "");
+    Error('\p{Is_Gr_Ext= 	TRUE/a/}');
+    Error('\P{Is_Gr_Ext= 	TRUE/a/}');
     Expect(1, 917999, '\p{Is_Gr_Ext=true}', "");
     Expect(0, 917999, '\p{^Is_Gr_Ext=true}', "");
     Expect(0, 917999, '\P{Is_Gr_Ext=true}', "");
@@ -44953,16 +45505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Gr_Ext=true}', "");
     Expect(1, 918000, '\P{Is_Gr_Ext=true}', "");
     Expect(0, 918000, '\P{^Is_Gr_Ext=true}', "");
-    Expect(1, 917999, '\p{Is_Gr_Ext=__true}', "");
-    Expect(0, 917999, '\p{^Is_Gr_Ext=__true}', "");
-    Expect(0, 917999, '\P{Is_Gr_Ext=__true}', "");
-    Expect(1, 917999, '\P{^Is_Gr_Ext=__true}', "");
-    Expect(0, 918000, '\p{Is_Gr_Ext=__true}', "");
-    Expect(1, 918000, '\p{^Is_Gr_Ext=__true}', "");
-    Expect(1, 918000, '\P{Is_Gr_Ext=__true}', "");
-    Expect(0, 918000, '\P{^Is_Gr_Ext=__true}', "");
-    Error('\p{Grapheme_Link=No}');
-    Error('\P{Grapheme_Link=No}');
+    Expect(1, 917999, '\p{Is_Gr_Ext=True}', "");
+    Expect(0, 917999, '\p{^Is_Gr_Ext=True}', "");
+    Expect(0, 917999, '\P{Is_Gr_Ext=True}', "");
+    Expect(1, 917999, '\P{^Is_Gr_Ext=True}', "");
+    Expect(0, 918000, '\p{Is_Gr_Ext=True}', "");
+    Expect(1, 918000, '\p{^Is_Gr_Ext=True}', "");
+    Expect(1, 918000, '\P{Is_Gr_Ext=True}', "");
+    Expect(0, 918000, '\P{^Is_Gr_Ext=True}', "");
+    Error('\p{Grapheme_Link:No}');
+    Error('\P{Grapheme_Link:No}');
     Error('\p{Gr_Link=N}');
     Error('\P{Gr_Link=N}');
     Error('\p{Is_Grapheme_Link=F}');
@@ -44973,56 +45525,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Grapheme_Link=Yes}');
     Error('\p{Gr_Link=Y}');
     Error('\P{Gr_Link=Y}');
-    Error('\p{Is_Grapheme_Link:	T}');
-    Error('\P{Is_Grapheme_Link:	T}');
+    Error('\p{Is_Grapheme_Link=T}');
+    Error('\P{Is_Grapheme_Link=T}');
     Error('\p{Is_Gr_Link=True}');
     Error('\P{Is_Gr_Link=True}');
-    Error('\p{Hex_Digit=-/a/NO}');
-    Error('\P{Hex_Digit=-/a/NO}');
+    Error('\p{Hex_Digit=/a/	-No}');
+    Error('\P{Hex_Digit=/a/	-No}');
     Expect(1, 65351, '\p{Hex_Digit=:\ANo\z:}', "");;
     Expect(0, 65350, '\p{Hex_Digit=:\ANo\z:}', "");;
-    Expect(1, 65351, '\p{Hex_Digit: no}', "");
-    Expect(0, 65351, '\p{^Hex_Digit: no}', "");
-    Expect(0, 65351, '\P{Hex_Digit: no}', "");
-    Expect(1, 65351, '\P{^Hex_Digit: no}', "");
-    Expect(0, 65350, '\p{Hex_Digit: no}', "");
-    Expect(1, 65350, '\p{^Hex_Digit: no}', "");
-    Expect(1, 65350, '\P{Hex_Digit: no}', "");
-    Expect(0, 65350, '\P{^Hex_Digit: no}', "");
+    Expect(1, 65351, '\p{Hex_Digit=no}', "");
+    Expect(0, 65351, '\p{^Hex_Digit=no}', "");
+    Expect(0, 65351, '\P{Hex_Digit=no}', "");
+    Expect(1, 65351, '\P{^Hex_Digit=no}', "");
+    Expect(0, 65350, '\p{Hex_Digit=no}', "");
+    Expect(1, 65350, '\p{^Hex_Digit=no}', "");
+    Expect(1, 65350, '\P{Hex_Digit=no}', "");
+    Expect(0, 65350, '\P{^Hex_Digit=no}', "");
     Expect(1, 65351, '\p{Hex_Digit=:\Ano\z:}', "");;
     Expect(0, 65350, '\p{Hex_Digit=:\Ano\z:}', "");;
-    Expect(1, 65351, '\p{Hex_Digit=_	no}', "");
-    Expect(0, 65351, '\p{^Hex_Digit=_	no}', "");
-    Expect(0, 65351, '\P{Hex_Digit=_	no}', "");
-    Expect(1, 65351, '\P{^Hex_Digit=_	no}', "");
-    Expect(0, 65350, '\p{Hex_Digit=_	no}', "");
-    Expect(1, 65350, '\p{^Hex_Digit=_	no}', "");
-    Expect(1, 65350, '\P{Hex_Digit=_	no}', "");
-    Expect(0, 65350, '\P{^Hex_Digit=_	no}', "");
-    Error('\p{Hex= -N/a/}');
-    Error('\P{Hex= -N/a/}');
+    Expect(1, 65351, '\p{Hex_Digit= no}', "");
+    Expect(0, 65351, '\p{^Hex_Digit= no}', "");
+    Expect(0, 65351, '\P{Hex_Digit= no}', "");
+    Expect(1, 65351, '\P{^Hex_Digit= no}', "");
+    Expect(0, 65350, '\p{Hex_Digit= no}', "");
+    Expect(1, 65350, '\p{^Hex_Digit= no}', "");
+    Expect(1, 65350, '\P{Hex_Digit= no}', "");
+    Expect(0, 65350, '\P{^Hex_Digit= no}', "");
+    Error('\p{Hex:   :=N}');
+    Error('\P{Hex:   :=N}');
     Expect(1, 65351, '\p{Hex=:\AN\z:}', "");;
     Expect(0, 65350, '\p{Hex=:\AN\z:}', "");;
-    Expect(1, 65351, '\p{Hex:   n}', "");
-    Expect(0, 65351, '\p{^Hex:   n}', "");
-    Expect(0, 65351, '\P{Hex:   n}', "");
-    Expect(1, 65351, '\P{^Hex:   n}', "");
-    Expect(0, 65350, '\p{Hex:   n}', "");
-    Expect(1, 65350, '\p{^Hex:   n}', "");
-    Expect(1, 65350, '\P{Hex:   n}', "");
-    Expect(0, 65350, '\P{^Hex:   n}', "");
+    Expect(1, 65351, '\p{Hex=n}', "");
+    Expect(0, 65351, '\p{^Hex=n}', "");
+    Expect(0, 65351, '\P{Hex=n}', "");
+    Expect(1, 65351, '\P{^Hex=n}', "");
+    Expect(0, 65350, '\p{Hex=n}', "");
+    Expect(1, 65350, '\p{^Hex=n}', "");
+    Expect(1, 65350, '\P{Hex=n}', "");
+    Expect(0, 65350, '\P{^Hex=n}', "");
     Expect(1, 65351, '\p{Hex=:\An\z:}', "");;
     Expect(0, 65350, '\p{Hex=:\An\z:}', "");;
-    Expect(1, 65351, '\p{Hex=  n}', "");
-    Expect(0, 65351, '\p{^Hex=  n}', "");
-    Expect(0, 65351, '\P{Hex=  n}', "");
-    Expect(1, 65351, '\P{^Hex=  n}', "");
-    Expect(0, 65350, '\p{Hex=  n}', "");
-    Expect(1, 65350, '\p{^Hex=  n}', "");
-    Expect(1, 65350, '\P{Hex=  n}', "");
-    Expect(0, 65350, '\P{^Hex=  n}', "");
-    Error('\p{Is_Hex_Digit=	-F/a/}');
-    Error('\P{Is_Hex_Digit=	-F/a/}');
+    Expect(1, 65351, '\p{Hex=-_N}', "");
+    Expect(0, 65351, '\p{^Hex=-_N}', "");
+    Expect(0, 65351, '\P{Hex=-_N}', "");
+    Expect(1, 65351, '\P{^Hex=-_N}', "");
+    Expect(0, 65350, '\p{Hex=-_N}', "");
+    Expect(1, 65350, '\p{^Hex=-_N}', "");
+    Expect(1, 65350, '\P{Hex=-_N}', "");
+    Expect(0, 65350, '\P{^Hex=-_N}', "");
+    Error('\p{Is_Hex_Digit= :=f}');
+    Error('\P{Is_Hex_Digit= :=f}');
     Expect(1, 65351, '\p{Is_Hex_Digit=f}', "");
     Expect(0, 65351, '\p{^Is_Hex_Digit=f}', "");
     Expect(0, 65351, '\P{Is_Hex_Digit=f}', "");
@@ -45031,16 +45583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65350, '\p{^Is_Hex_Digit=f}', "");
     Expect(1, 65350, '\P{Is_Hex_Digit=f}', "");
     Expect(0, 65350, '\P{^Is_Hex_Digit=f}', "");
-    Expect(1, 65351, '\p{Is_Hex_Digit= 	F}', "");
-    Expect(0, 65351, '\p{^Is_Hex_Digit= 	F}', "");
-    Expect(0, 65351, '\P{Is_Hex_Digit= 	F}', "");
-    Expect(1, 65351, '\P{^Is_Hex_Digit= 	F}', "");
-    Expect(0, 65350, '\p{Is_Hex_Digit= 	F}', "");
-    Expect(1, 65350, '\p{^Is_Hex_Digit= 	F}', "");
-    Expect(1, 65350, '\P{Is_Hex_Digit= 	F}', "");
-    Expect(0, 65350, '\P{^Is_Hex_Digit= 	F}', "");
-    Error('\p{Is_Hex=:=		False}');
-    Error('\P{Is_Hex=:=		False}');
+    Expect(1, 65351, '\p{Is_Hex_Digit=_-F}', "");
+    Expect(0, 65351, '\p{^Is_Hex_Digit=_-F}', "");
+    Expect(0, 65351, '\P{Is_Hex_Digit=_-F}', "");
+    Expect(1, 65351, '\P{^Is_Hex_Digit=_-F}', "");
+    Expect(0, 65350, '\p{Is_Hex_Digit=_-F}', "");
+    Expect(1, 65350, '\p{^Is_Hex_Digit=_-F}', "");
+    Expect(1, 65350, '\P{Is_Hex_Digit=_-F}', "");
+    Expect(0, 65350, '\P{^Is_Hex_Digit=_-F}', "");
+    Error('\p{Is_Hex=-	false/a/}');
+    Error('\P{Is_Hex=-	false/a/}');
     Expect(1, 65351, '\p{Is_Hex=false}', "");
     Expect(0, 65351, '\p{^Is_Hex=false}', "");
     Expect(0, 65351, '\P{Is_Hex=false}', "");
@@ -45049,16 +45601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65350, '\p{^Is_Hex=false}', "");
     Expect(1, 65350, '\P{Is_Hex=false}', "");
     Expect(0, 65350, '\P{^Is_Hex=false}', "");
-    Expect(1, 65351, '\p{Is_Hex=_ false}', "");
-    Expect(0, 65351, '\p{^Is_Hex=_ false}', "");
-    Expect(0, 65351, '\P{Is_Hex=_ false}', "");
-    Expect(1, 65351, '\P{^Is_Hex=_ false}', "");
-    Expect(0, 65350, '\p{Is_Hex=_ false}', "");
-    Expect(1, 65350, '\p{^Is_Hex=_ false}', "");
-    Expect(1, 65350, '\P{Is_Hex=_ false}', "");
-    Expect(0, 65350, '\P{^Is_Hex=_ false}', "");
-    Error('\p{Hex_Digit: -Yes:=}');
-    Error('\P{Hex_Digit: -Yes:=}');
+    Expect(1, 65351, '\p{Is_Hex=-	false}', "");
+    Expect(0, 65351, '\p{^Is_Hex=-	false}', "");
+    Expect(0, 65351, '\P{Is_Hex=-	false}', "");
+    Expect(1, 65351, '\P{^Is_Hex=-	false}', "");
+    Expect(0, 65350, '\p{Is_Hex=-	false}', "");
+    Expect(1, 65350, '\p{^Is_Hex=-	false}', "");
+    Expect(1, 65350, '\P{Is_Hex=-	false}', "");
+    Expect(0, 65350, '\P{^Is_Hex=-	false}', "");
+    Error('\p{Hex_Digit=:=	 YES}');
+    Error('\P{Hex_Digit=:=	 YES}');
     Expect(1, 65350, '\p{Hex_Digit=:\AYes\z:}', "");;
     Expect(0, 65351, '\p{Hex_Digit=:\AYes\z:}', "");;
     Expect(1, 65350, '\p{Hex_Digit=yes}', "");
@@ -45071,16 +45623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65351, '\P{^Hex_Digit=yes}', "");
     Expect(1, 65350, '\p{Hex_Digit=:\Ayes\z:}', "");;
     Expect(0, 65351, '\p{Hex_Digit=:\Ayes\z:}', "");;
-    Expect(1, 65350, '\p{Hex_Digit=_YES}', "");
-    Expect(0, 65350, '\p{^Hex_Digit=_YES}', "");
-    Expect(0, 65350, '\P{Hex_Digit=_YES}', "");
-    Expect(1, 65350, '\P{^Hex_Digit=_YES}', "");
-    Expect(0, 65351, '\p{Hex_Digit=_YES}', "");
-    Expect(1, 65351, '\p{^Hex_Digit=_YES}', "");
-    Expect(1, 65351, '\P{Hex_Digit=_YES}', "");
-    Expect(0, 65351, '\P{^Hex_Digit=_YES}', "");
-    Error('\p{Hex:-:=y}');
-    Error('\P{Hex:-:=y}');
+    Expect(1, 65350, '\p{Hex_Digit=--YES}', "");
+    Expect(0, 65350, '\p{^Hex_Digit=--YES}', "");
+    Expect(0, 65350, '\P{Hex_Digit=--YES}', "");
+    Expect(1, 65350, '\P{^Hex_Digit=--YES}', "");
+    Expect(0, 65351, '\p{Hex_Digit=--YES}', "");
+    Expect(1, 65351, '\p{^Hex_Digit=--YES}', "");
+    Expect(1, 65351, '\P{Hex_Digit=--YES}', "");
+    Expect(0, 65351, '\P{^Hex_Digit=--YES}', "");
+    Error('\p{Hex=:=- Y}');
+    Error('\P{Hex=:=- Y}');
     Expect(1, 65350, '\p{Hex=:\AY\z:}', "");;
     Expect(0, 65351, '\p{Hex=:\AY\z:}', "");;
     Expect(1, 65350, '\p{Hex=y}', "");
@@ -45093,16 +45645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65351, '\P{^Hex=y}', "");
     Expect(1, 65350, '\p{Hex=:\Ay\z:}', "");;
     Expect(0, 65351, '\p{Hex=:\Ay\z:}', "");;
-    Expect(1, 65350, '\p{Hex=_	Y}', "");
-    Expect(0, 65350, '\p{^Hex=_	Y}', "");
-    Expect(0, 65350, '\P{Hex=_	Y}', "");
-    Expect(1, 65350, '\P{^Hex=_	Y}', "");
-    Expect(0, 65351, '\p{Hex=_	Y}', "");
-    Expect(1, 65351, '\p{^Hex=_	Y}', "");
-    Expect(1, 65351, '\P{Hex=_	Y}', "");
-    Expect(0, 65351, '\P{^Hex=_	Y}', "");
-    Error('\p{Is_Hex_Digit=	/a/t}');
-    Error('\P{Is_Hex_Digit=	/a/t}');
+    Expect(1, 65350, '\p{Hex=Y}', "");
+    Expect(0, 65350, '\p{^Hex=Y}', "");
+    Expect(0, 65350, '\P{Hex=Y}', "");
+    Expect(1, 65350, '\P{^Hex=Y}', "");
+    Expect(0, 65351, '\p{Hex=Y}', "");
+    Expect(1, 65351, '\p{^Hex=Y}', "");
+    Expect(1, 65351, '\P{Hex=Y}', "");
+    Expect(0, 65351, '\P{^Hex=Y}', "");
+    Error('\p{Is_Hex_Digit=-/a/t}');
+    Error('\P{Is_Hex_Digit=-/a/t}');
     Expect(1, 65350, '\p{Is_Hex_Digit=t}', "");
     Expect(0, 65350, '\p{^Is_Hex_Digit=t}', "");
     Expect(0, 65350, '\P{Is_Hex_Digit=t}', "");
@@ -45111,16 +45663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65351, '\p{^Is_Hex_Digit=t}', "");
     Expect(1, 65351, '\P{Is_Hex_Digit=t}', "");
     Expect(0, 65351, '\P{^Is_Hex_Digit=t}', "");
-    Expect(1, 65350, '\p{Is_Hex_Digit=		T}', "");
-    Expect(0, 65350, '\p{^Is_Hex_Digit=		T}', "");
-    Expect(0, 65350, '\P{Is_Hex_Digit=		T}', "");
-    Expect(1, 65350, '\P{^Is_Hex_Digit=		T}', "");
-    Expect(0, 65351, '\p{Is_Hex_Digit=		T}', "");
-    Expect(1, 65351, '\p{^Is_Hex_Digit=		T}', "");
-    Expect(1, 65351, '\P{Is_Hex_Digit=		T}', "");
-    Expect(0, 65351, '\P{^Is_Hex_Digit=		T}', "");
-    Error('\p{Is_Hex= True/a/}');
-    Error('\P{Is_Hex= True/a/}');
+    Expect(1, 65350, '\p{Is_Hex_Digit=_-T}', "");
+    Expect(0, 65350, '\p{^Is_Hex_Digit=_-T}', "");
+    Expect(0, 65350, '\P{Is_Hex_Digit=_-T}', "");
+    Expect(1, 65350, '\P{^Is_Hex_Digit=_-T}', "");
+    Expect(0, 65351, '\p{Is_Hex_Digit=_-T}', "");
+    Expect(1, 65351, '\p{^Is_Hex_Digit=_-T}', "");
+    Expect(1, 65351, '\P{Is_Hex_Digit=_-T}', "");
+    Expect(0, 65351, '\P{^Is_Hex_Digit=_-T}', "");
+    Error('\p{Is_Hex=_:=TRUE}');
+    Error('\P{Is_Hex=_:=TRUE}');
     Expect(1, 65350, '\p{Is_Hex=true}', "");
     Expect(0, 65350, '\p{^Is_Hex=true}', "");
     Expect(0, 65350, '\P{Is_Hex=true}', "");
@@ -45129,64 +45681,64 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65351, '\p{^Is_Hex=true}', "");
     Expect(1, 65351, '\P{Is_Hex=true}', "");
     Expect(0, 65351, '\P{^Is_Hex=true}', "");
-    Expect(1, 65350, '\p{Is_Hex=- True}', "");
-    Expect(0, 65350, '\p{^Is_Hex=- True}', "");
-    Expect(0, 65350, '\P{Is_Hex=- True}', "");
-    Expect(1, 65350, '\P{^Is_Hex=- True}', "");
-    Expect(0, 65351, '\p{Is_Hex=- True}', "");
-    Expect(1, 65351, '\p{^Is_Hex=- True}', "");
-    Expect(1, 65351, '\P{Is_Hex=- True}', "");
-    Expect(0, 65351, '\P{^Is_Hex=- True}', "");
+    Expect(1, 65350, '\p{Is_Hex=	-True}', "");
+    Expect(0, 65350, '\p{^Is_Hex=	-True}', "");
+    Expect(0, 65350, '\P{Is_Hex=	-True}', "");
+    Expect(1, 65350, '\P{^Is_Hex=	-True}', "");
+    Expect(0, 65351, '\p{Is_Hex=	-True}', "");
+    Expect(1, 65351, '\p{^Is_Hex=	-True}', "");
+    Expect(1, 65351, '\P{Is_Hex=	-True}', "");
+    Expect(0, 65351, '\P{^Is_Hex=	-True}', "");
     Error('\p{hangulsyllabletype}');
     Error('\P{hangulsyllabletype}');
     Error('\p{hst}');
     Error('\P{hst}');
-    Error('\p{Hangul_Syllable_Type= /a/Leading_jamo}');
-    Error('\P{Hangul_Syllable_Type= /a/Leading_jamo}');
+    Error('\p{Hangul_Syllable_Type=:=leading_Jamo}');
+    Error('\P{Hangul_Syllable_Type=:=leading_Jamo}');
     Expect(1, 43388, '\p{Hangul_Syllable_Type=:\ALeading_Jamo\z:}', "");;
     Expect(0, 43389, '\p{Hangul_Syllable_Type=:\ALeading_Jamo\z:}', "");;
-    Expect(1, 43388, '\p{Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(0, 43388, '\p{^Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(0, 43388, '\P{Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(1, 43388, '\P{^Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(0, 43389, '\p{Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(1, 43389, '\p{^Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(1, 43389, '\P{Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(0, 43389, '\P{^Hangul_Syllable_Type=leadingjamo}', "");
+    Expect(1, 43388, '\p{Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(0, 43388, '\p{^Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(0, 43388, '\P{Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(1, 43388, '\P{^Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(0, 43389, '\p{Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(1, 43389, '\p{^Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(1, 43389, '\P{Hangul_Syllable_Type: leadingjamo}', "");
+    Expect(0, 43389, '\P{^Hangul_Syllable_Type: leadingjamo}', "");
     Expect(1, 43388, '\p{Hangul_Syllable_Type=:\Aleadingjamo\z:}', "");;
     Expect(0, 43389, '\p{Hangul_Syllable_Type=:\Aleadingjamo\z:}', "");;
-    Expect(1, 43388, '\p{Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(0, 43388, '\p{^Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(0, 43388, '\P{Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(1, 43388, '\P{^Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(0, 43389, '\p{Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(1, 43389, '\p{^Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(1, 43389, '\P{Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Expect(0, 43389, '\P{^Hangul_Syllable_Type=--Leading_Jamo}', "");
-    Error('\p{Hst=:=L}');
-    Error('\P{Hst=:=L}');
+    Expect(1, 43388, '\p{Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(0, 43388, '\p{^Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(0, 43388, '\P{Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(1, 43388, '\P{^Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(0, 43389, '\p{Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(1, 43389, '\p{^Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(1, 43389, '\P{Hangul_Syllable_Type=- leading_JAMO}', "");
+    Expect(0, 43389, '\P{^Hangul_Syllable_Type=- leading_JAMO}', "");
+    Error('\p{Hst=:= -L}');
+    Error('\P{Hst=:= -L}');
     Expect(1, 43388, '\p{Hst=:\AL\z:}', "");;
     Expect(0, 43389, '\p{Hst=:\AL\z:}', "");;
-    Expect(1, 43388, '\p{Hst:   l}', "");
-    Expect(0, 43388, '\p{^Hst:   l}', "");
-    Expect(0, 43388, '\P{Hst:   l}', "");
-    Expect(1, 43388, '\P{^Hst:   l}', "");
-    Expect(0, 43389, '\p{Hst:   l}', "");
-    Expect(1, 43389, '\p{^Hst:   l}', "");
-    Expect(1, 43389, '\P{Hst:   l}', "");
-    Expect(0, 43389, '\P{^Hst:   l}', "");
+    Expect(1, 43388, '\p{Hst:l}', "");
+    Expect(0, 43388, '\p{^Hst:l}', "");
+    Expect(0, 43388, '\P{Hst:l}', "");
+    Expect(1, 43388, '\P{^Hst:l}', "");
+    Expect(0, 43389, '\p{Hst:l}', "");
+    Expect(1, 43389, '\p{^Hst:l}', "");
+    Expect(1, 43389, '\P{Hst:l}', "");
+    Expect(0, 43389, '\P{^Hst:l}', "");
     Expect(1, 43388, '\p{Hst=:\Al\z:}', "");;
     Expect(0, 43389, '\p{Hst=:\Al\z:}', "");;
-    Expect(1, 43388, '\p{Hst= -l}', "");
-    Expect(0, 43388, '\p{^Hst= -l}', "");
-    Expect(0, 43388, '\P{Hst= -l}', "");
-    Expect(1, 43388, '\P{^Hst= -l}', "");
-    Expect(0, 43389, '\p{Hst= -l}', "");
-    Expect(1, 43389, '\p{^Hst= -l}', "");
-    Expect(1, 43389, '\P{Hst= -l}', "");
-    Expect(0, 43389, '\P{^Hst= -l}', "");
-    Error('\p{Is_Hangul_Syllable_Type=/a/ 	Leading_Jamo}');
-    Error('\P{Is_Hangul_Syllable_Type=/a/ 	Leading_Jamo}');
+    Expect(1, 43388, '\p{Hst=		L}', "");
+    Expect(0, 43388, '\p{^Hst=		L}', "");
+    Expect(0, 43388, '\P{Hst=		L}', "");
+    Expect(1, 43388, '\P{^Hst=		L}', "");
+    Expect(0, 43389, '\p{Hst=		L}', "");
+    Expect(1, 43389, '\p{^Hst=		L}', "");
+    Expect(1, 43389, '\P{Hst=		L}', "");
+    Expect(0, 43389, '\P{^Hst=		L}', "");
+    Error('\p{Is_Hangul_Syllable_Type: :=-_Leading_jamo}');
+    Error('\P{Is_Hangul_Syllable_Type: :=-_Leading_jamo}');
     Expect(1, 43388, '\p{Is_Hangul_Syllable_Type=leadingjamo}', "");
     Expect(0, 43388, '\p{^Is_Hangul_Syllable_Type=leadingjamo}', "");
     Expect(0, 43388, '\P{Is_Hangul_Syllable_Type=leadingjamo}', "");
@@ -45195,16 +45747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43389, '\p{^Is_Hangul_Syllable_Type=leadingjamo}', "");
     Expect(1, 43389, '\P{Is_Hangul_Syllable_Type=leadingjamo}', "");
     Expect(0, 43389, '\P{^Is_Hangul_Syllable_Type=leadingjamo}', "");
-    Expect(1, 43388, '\p{Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(0, 43388, '\p{^Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(0, 43388, '\P{Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(1, 43388, '\P{^Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(0, 43389, '\p{Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(1, 43389, '\p{^Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(1, 43389, '\P{Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Expect(0, 43389, '\P{^Is_Hangul_Syllable_Type=- Leading_Jamo}', "");
-    Error('\p{Is_Hst=/a/ _l}');
-    Error('\P{Is_Hst=/a/ _l}');
+    Expect(1, 43388, '\p{Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(0, 43388, '\p{^Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(0, 43388, '\P{Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(1, 43388, '\P{^Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(0, 43389, '\p{Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(1, 43389, '\p{^Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(1, 43389, '\P{Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Expect(0, 43389, '\P{^Is_Hangul_Syllable_Type= _Leading_jamo}', "");
+    Error('\p{Is_Hst:   /a/L}');
+    Error('\P{Is_Hst:   /a/L}');
     Expect(1, 43388, '\p{Is_Hst=l}', "");
     Expect(0, 43388, '\p{^Is_Hst=l}', "");
     Expect(0, 43388, '\P{Is_Hst=l}', "");
@@ -45213,16 +45765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43389, '\p{^Is_Hst=l}', "");
     Expect(1, 43389, '\P{Is_Hst=l}', "");
     Expect(0, 43389, '\P{^Is_Hst=l}', "");
-    Expect(1, 43388, '\p{Is_Hst:_L}', "");
-    Expect(0, 43388, '\p{^Is_Hst:_L}', "");
-    Expect(0, 43388, '\P{Is_Hst:_L}', "");
-    Expect(1, 43388, '\P{^Is_Hst:_L}', "");
-    Expect(0, 43389, '\p{Is_Hst:_L}', "");
-    Expect(1, 43389, '\p{^Is_Hst:_L}', "");
-    Expect(1, 43389, '\P{Is_Hst:_L}', "");
-    Expect(0, 43389, '\P{^Is_Hst:_L}', "");
-    Error('\p{Hangul_Syllable_Type=-LV_Syllable/a/}');
-    Error('\P{Hangul_Syllable_Type=-LV_Syllable/a/}');
+    Expect(1, 43388, '\p{Is_Hst= 	l}', "");
+    Expect(0, 43388, '\p{^Is_Hst= 	l}', "");
+    Expect(0, 43388, '\P{Is_Hst= 	l}', "");
+    Expect(1, 43388, '\P{^Is_Hst= 	l}', "");
+    Expect(0, 43389, '\p{Is_Hst= 	l}', "");
+    Expect(1, 43389, '\p{^Is_Hst= 	l}', "");
+    Expect(1, 43389, '\P{Is_Hst= 	l}', "");
+    Expect(0, 43389, '\P{^Is_Hst= 	l}', "");
+    Error('\p{Hangul_Syllable_Type= _LV_Syllable:=}');
+    Error('\P{Hangul_Syllable_Type= _LV_Syllable:=}');
     Expect(1, 55176, '\p{Hangul_Syllable_Type=:\ALV_Syllable\z:}', "");;
     Expect(0, 55177, '\p{Hangul_Syllable_Type=:\ALV_Syllable\z:}', "");;
     Expect(1, 55176, '\p{Hangul_Syllable_Type=lvsyllable}', "");
@@ -45235,38 +45787,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55177, '\P{^Hangul_Syllable_Type=lvsyllable}', "");
     Expect(1, 55176, '\p{Hangul_Syllable_Type=:\Alvsyllable\z:}', "");;
     Expect(0, 55177, '\p{Hangul_Syllable_Type=:\Alvsyllable\z:}', "");;
-    Expect(1, 55176, '\p{Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(0, 55176, '\p{^Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(0, 55176, '\P{Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(1, 55176, '\P{^Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(0, 55177, '\p{Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(1, 55177, '\p{^Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(1, 55177, '\P{Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Expect(0, 55177, '\P{^Hangul_Syllable_Type=_-lv_Syllable}', "");
-    Error('\p{Hst=	_LV:=}');
-    Error('\P{Hst=	_LV:=}');
+    Expect(1, 55176, '\p{Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(0, 55176, '\p{^Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(0, 55176, '\P{Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(1, 55176, '\P{^Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(0, 55177, '\p{Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(1, 55177, '\p{^Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(1, 55177, '\P{Hangul_Syllable_Type=--LV_Syllable}', "");
+    Expect(0, 55177, '\P{^Hangul_Syllable_Type=--LV_Syllable}', "");
+    Error('\p{Hst=:= LV}');
+    Error('\P{Hst=:= LV}');
     Expect(1, 55176, '\p{Hst=:\ALV\z:}', "");;
     Expect(0, 55177, '\p{Hst=:\ALV\z:}', "");;
-    Expect(1, 55176, '\p{Hst=lv}', "");
-    Expect(0, 55176, '\p{^Hst=lv}', "");
-    Expect(0, 55176, '\P{Hst=lv}', "");
-    Expect(1, 55176, '\P{^Hst=lv}', "");
-    Expect(0, 55177, '\p{Hst=lv}', "");
-    Expect(1, 55177, '\p{^Hst=lv}', "");
-    Expect(1, 55177, '\P{Hst=lv}', "");
-    Expect(0, 55177, '\P{^Hst=lv}', "");
+    Expect(1, 55176, '\p{Hst:lv}', "");
+    Expect(0, 55176, '\p{^Hst:lv}', "");
+    Expect(0, 55176, '\P{Hst:lv}', "");
+    Expect(1, 55176, '\P{^Hst:lv}', "");
+    Expect(0, 55177, '\p{Hst:lv}', "");
+    Expect(1, 55177, '\p{^Hst:lv}', "");
+    Expect(1, 55177, '\P{Hst:lv}', "");
+    Expect(0, 55177, '\P{^Hst:lv}', "");
     Expect(1, 55176, '\p{Hst=:\Alv\z:}', "");;
     Expect(0, 55177, '\p{Hst=:\Alv\z:}', "");;
-    Expect(1, 55176, '\p{Hst=-LV}', "");
-    Expect(0, 55176, '\p{^Hst=-LV}', "");
-    Expect(0, 55176, '\P{Hst=-LV}', "");
-    Expect(1, 55176, '\P{^Hst=-LV}', "");
-    Expect(0, 55177, '\p{Hst=-LV}', "");
-    Expect(1, 55177, '\p{^Hst=-LV}', "");
-    Expect(1, 55177, '\P{Hst=-LV}', "");
-    Expect(0, 55177, '\P{^Hst=-LV}', "");
-    Error('\p{Is_Hangul_Syllable_Type=:=  LV_syllable}');
-    Error('\P{Is_Hangul_Syllable_Type=:=  LV_syllable}');
+    Expect(1, 55176, '\p{Hst: LV}', "");
+    Expect(0, 55176, '\p{^Hst: LV}', "");
+    Expect(0, 55176, '\P{Hst: LV}', "");
+    Expect(1, 55176, '\P{^Hst: LV}', "");
+    Expect(0, 55177, '\p{Hst: LV}', "");
+    Expect(1, 55177, '\p{^Hst: LV}', "");
+    Expect(1, 55177, '\P{Hst: LV}', "");
+    Expect(0, 55177, '\P{^Hst: LV}', "");
+    Error('\p{Is_Hangul_Syllable_Type=__LV_Syllable:=}');
+    Error('\P{Is_Hangul_Syllable_Type=__LV_Syllable:=}');
     Expect(1, 55176, '\p{Is_Hangul_Syllable_Type=lvsyllable}', "");
     Expect(0, 55176, '\p{^Is_Hangul_Syllable_Type=lvsyllable}', "");
     Expect(0, 55176, '\P{Is_Hangul_Syllable_Type=lvsyllable}', "");
@@ -45275,16 +45827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55177, '\p{^Is_Hangul_Syllable_Type=lvsyllable}', "");
     Expect(1, 55177, '\P{Is_Hangul_Syllable_Type=lvsyllable}', "");
     Expect(0, 55177, '\P{^Is_Hangul_Syllable_Type=lvsyllable}', "");
-    Expect(1, 55176, '\p{Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(0, 55176, '\p{^Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(0, 55176, '\P{Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(1, 55176, '\P{^Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(0, 55177, '\p{Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(1, 55177, '\p{^Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(1, 55177, '\P{Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Expect(0, 55177, '\P{^Is_Hangul_Syllable_Type=_	LV_Syllable}', "");
-    Error('\p{Is_Hst=-/a/LV}');
-    Error('\P{Is_Hst=-/a/LV}');
+    Expect(1, 55176, '\p{Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(0, 55176, '\p{^Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(0, 55176, '\P{Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(1, 55176, '\P{^Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(0, 55177, '\p{Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(1, 55177, '\p{^Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(1, 55177, '\P{Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Expect(0, 55177, '\P{^Is_Hangul_Syllable_Type=	 LV_Syllable}', "");
+    Error('\p{Is_Hst= :=LV}');
+    Error('\P{Is_Hst= :=LV}');
     Expect(1, 55176, '\p{Is_Hst=lv}', "");
     Expect(0, 55176, '\p{^Is_Hst=lv}', "");
     Expect(0, 55176, '\P{Is_Hst=lv}', "");
@@ -45293,16 +45845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55177, '\p{^Is_Hst=lv}', "");
     Expect(1, 55177, '\P{Is_Hst=lv}', "");
     Expect(0, 55177, '\P{^Is_Hst=lv}', "");
-    Expect(1, 55176, '\p{Is_Hst=_LV}', "");
-    Expect(0, 55176, '\p{^Is_Hst=_LV}', "");
-    Expect(0, 55176, '\P{Is_Hst=_LV}', "");
-    Expect(1, 55176, '\P{^Is_Hst=_LV}', "");
-    Expect(0, 55177, '\p{Is_Hst=_LV}', "");
-    Expect(1, 55177, '\p{^Is_Hst=_LV}', "");
-    Expect(1, 55177, '\P{Is_Hst=_LV}', "");
-    Expect(0, 55177, '\P{^Is_Hst=_LV}', "");
-    Error('\p{Hangul_Syllable_Type= LVT_SYLLABLE:=}');
-    Error('\P{Hangul_Syllable_Type= LVT_SYLLABLE:=}');
+    Expect(1, 55176, '\p{Is_Hst=--LV}', "");
+    Expect(0, 55176, '\p{^Is_Hst=--LV}', "");
+    Expect(0, 55176, '\P{Is_Hst=--LV}', "");
+    Expect(1, 55176, '\P{^Is_Hst=--LV}', "");
+    Expect(0, 55177, '\p{Is_Hst=--LV}', "");
+    Expect(1, 55177, '\p{^Is_Hst=--LV}', "");
+    Expect(1, 55177, '\P{Is_Hst=--LV}', "");
+    Expect(0, 55177, '\P{^Is_Hst=--LV}', "");
+    Error('\p{Hangul_Syllable_Type=-:=LVT_syllable}');
+    Error('\P{Hangul_Syllable_Type=-:=LVT_syllable}');
     Expect(1, 55203, '\p{Hangul_Syllable_Type=:\ALVT_Syllable\z:}', "");;
     Expect(0, 55204, '\p{Hangul_Syllable_Type=:\ALVT_Syllable\z:}', "");;
     Expect(1, 55203, '\p{Hangul_Syllable_Type=lvtsyllable}', "");
@@ -45315,16 +45867,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55204, '\P{^Hangul_Syllable_Type=lvtsyllable}', "");
     Expect(1, 55203, '\p{Hangul_Syllable_Type=:\Alvtsyllable\z:}', "");;
     Expect(0, 55204, '\p{Hangul_Syllable_Type=:\Alvtsyllable\z:}', "");;
-    Expect(1, 55203, '\p{Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(0, 55203, '\p{^Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(0, 55203, '\P{Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(1, 55203, '\P{^Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(0, 55204, '\p{Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(1, 55204, '\p{^Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(1, 55204, '\P{Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Expect(0, 55204, '\P{^Hangul_Syllable_Type=_ LVT_Syllable}', "");
-    Error('\p{Hst=-_lvt:=}');
-    Error('\P{Hst=-_lvt:=}');
+    Expect(1, 55203, '\p{Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(0, 55203, '\p{^Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(0, 55203, '\P{Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(1, 55203, '\P{^Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(0, 55204, '\p{Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(1, 55204, '\p{^Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(1, 55204, '\P{Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Expect(0, 55204, '\P{^Hangul_Syllable_Type=- lvt_Syllable}', "");
+    Error('\p{Hst= _LVT:=}');
+    Error('\P{Hst= _LVT:=}');
     Expect(1, 55203, '\p{Hst=:\ALVT\z:}', "");;
     Expect(0, 55204, '\p{Hst=:\ALVT\z:}', "");;
     Expect(1, 55203, '\p{Hst=lvt}', "");
@@ -45337,16 +45889,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55204, '\P{^Hst=lvt}', "");
     Expect(1, 55203, '\p{Hst=:\Alvt\z:}', "");;
     Expect(0, 55204, '\p{Hst=:\Alvt\z:}', "");;
-    Expect(1, 55203, '\p{Hst=	LVT}', "");
-    Expect(0, 55203, '\p{^Hst=	LVT}', "");
-    Expect(0, 55203, '\P{Hst=	LVT}', "");
-    Expect(1, 55203, '\P{^Hst=	LVT}', "");
-    Expect(0, 55204, '\p{Hst=	LVT}', "");
-    Expect(1, 55204, '\p{^Hst=	LVT}', "");
-    Expect(1, 55204, '\P{Hst=	LVT}', "");
-    Expect(0, 55204, '\P{^Hst=	LVT}', "");
-    Error('\p{Is_Hangul_Syllable_Type=/a/LVT_Syllable}');
-    Error('\P{Is_Hangul_Syllable_Type=/a/LVT_Syllable}');
+    Expect(1, 55203, '\p{Hst: -LVT}', "");
+    Expect(0, 55203, '\p{^Hst: -LVT}', "");
+    Expect(0, 55203, '\P{Hst: -LVT}', "");
+    Expect(1, 55203, '\P{^Hst: -LVT}', "");
+    Expect(0, 55204, '\p{Hst: -LVT}', "");
+    Expect(1, 55204, '\p{^Hst: -LVT}', "");
+    Expect(1, 55204, '\P{Hst: -LVT}', "");
+    Expect(0, 55204, '\P{^Hst: -LVT}', "");
+    Error('\p{Is_Hangul_Syllable_Type=_lvt_syllable/a/}');
+    Error('\P{Is_Hangul_Syllable_Type=_lvt_syllable/a/}');
     Expect(1, 55203, '\p{Is_Hangul_Syllable_Type=lvtsyllable}', "");
     Expect(0, 55203, '\p{^Is_Hangul_Syllable_Type=lvtsyllable}', "");
     Expect(0, 55203, '\P{Is_Hangul_Syllable_Type=lvtsyllable}', "");
@@ -45355,16 +45907,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55204, '\p{^Is_Hangul_Syllable_Type=lvtsyllable}', "");
     Expect(1, 55204, '\P{Is_Hangul_Syllable_Type=lvtsyllable}', "");
     Expect(0, 55204, '\P{^Is_Hangul_Syllable_Type=lvtsyllable}', "");
-    Expect(1, 55203, '\p{Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(0, 55203, '\p{^Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(0, 55203, '\P{Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(1, 55203, '\P{^Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(0, 55204, '\p{Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(1, 55204, '\p{^Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(1, 55204, '\P{Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Expect(0, 55204, '\P{^Is_Hangul_Syllable_Type=-LVT_SYLLABLE}', "");
-    Error('\p{Is_Hst=--lvt:=}');
-    Error('\P{Is_Hst=--lvt:=}');
+    Expect(1, 55203, '\p{Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(0, 55203, '\p{^Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(0, 55203, '\P{Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(1, 55203, '\P{^Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(0, 55204, '\p{Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(1, 55204, '\p{^Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(1, 55204, '\P{Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Expect(0, 55204, '\P{^Is_Hangul_Syllable_Type=	lvt_Syllable}', "");
+    Error('\p{Is_Hst=/a/		LVT}');
+    Error('\P{Is_Hst=/a/		LVT}');
     Expect(1, 55203, '\p{Is_Hst=lvt}', "");
     Expect(0, 55203, '\p{^Is_Hst=lvt}', "");
     Expect(0, 55203, '\P{Is_Hst=lvt}', "");
@@ -45373,16 +45925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55204, '\p{^Is_Hst=lvt}', "");
     Expect(1, 55204, '\P{Is_Hst=lvt}', "");
     Expect(0, 55204, '\P{^Is_Hst=lvt}', "");
-    Expect(1, 55203, '\p{Is_Hst=_lvt}', "");
-    Expect(0, 55203, '\p{^Is_Hst=_lvt}', "");
-    Expect(0, 55203, '\P{Is_Hst=_lvt}', "");
-    Expect(1, 55203, '\P{^Is_Hst=_lvt}', "");
-    Expect(0, 55204, '\p{Is_Hst=_lvt}', "");
-    Expect(1, 55204, '\p{^Is_Hst=_lvt}', "");
-    Expect(1, 55204, '\P{Is_Hst=_lvt}', "");
-    Expect(0, 55204, '\P{^Is_Hst=_lvt}', "");
-    Error('\p{Hangul_Syllable_Type:   	:=Not_Applicable}');
-    Error('\P{Hangul_Syllable_Type:   	:=Not_Applicable}');
+    Expect(1, 55203, '\p{Is_Hst=-_LVT}', "");
+    Expect(0, 55203, '\p{^Is_Hst=-_LVT}', "");
+    Expect(0, 55203, '\P{Is_Hst=-_LVT}', "");
+    Expect(1, 55203, '\P{^Is_Hst=-_LVT}', "");
+    Expect(0, 55204, '\p{Is_Hst=-_LVT}', "");
+    Expect(1, 55204, '\p{^Is_Hst=-_LVT}', "");
+    Expect(1, 55204, '\P{Is_Hst=-_LVT}', "");
+    Expect(0, 55204, '\P{^Is_Hst=-_LVT}', "");
+    Error('\p{Hangul_Syllable_Type=  not_Applicable/a/}');
+    Error('\P{Hangul_Syllable_Type=  not_Applicable/a/}');
     Expect(1, 55292, '\p{Hangul_Syllable_Type=:\ANot_Applicable\z:}', "");;
     Expect(0, 55291, '\p{Hangul_Syllable_Type=:\ANot_Applicable\z:}', "");;
     Expect(1, 55292, '\p{Hangul_Syllable_Type=notapplicable}', "");
@@ -45403,8 +45955,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55291, '\p{^Hangul_Syllable_Type=	not_APPLICABLE}', "");
     Expect(1, 55291, '\P{Hangul_Syllable_Type=	not_APPLICABLE}', "");
     Expect(0, 55291, '\P{^Hangul_Syllable_Type=	not_APPLICABLE}', "");
-    Error('\p{Hst=_ NA/a/}');
-    Error('\P{Hst=_ NA/a/}');
+    Error('\p{Hst=	/a/NA}');
+    Error('\P{Hst=	/a/NA}');
     Expect(1, 55292, '\p{Hst=:\ANA\z:}', "");;
     Expect(0, 55291, '\p{Hst=:\ANA\z:}', "");;
     Expect(1, 55292, '\p{Hst=na}', "");
@@ -45417,16 +45969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55291, '\P{^Hst=na}', "");
     Expect(1, 55292, '\p{Hst=:\Ana\z:}', "");;
     Expect(0, 55291, '\p{Hst=:\Ana\z:}', "");;
-    Expect(1, 55292, '\p{Hst= -NA}', "");
-    Expect(0, 55292, '\p{^Hst= -NA}', "");
-    Expect(0, 55292, '\P{Hst= -NA}', "");
-    Expect(1, 55292, '\P{^Hst= -NA}', "");
-    Expect(0, 55291, '\p{Hst= -NA}', "");
-    Expect(1, 55291, '\p{^Hst= -NA}', "");
-    Expect(1, 55291, '\P{Hst= -NA}', "");
-    Expect(0, 55291, '\P{^Hst= -NA}', "");
-    Error('\p{Is_Hangul_Syllable_Type=/a/ _Not_applicable}');
-    Error('\P{Is_Hangul_Syllable_Type=/a/ _Not_applicable}');
+    Expect(1, 55292, '\p{Hst= 	NA}', "");
+    Expect(0, 55292, '\p{^Hst= 	NA}', "");
+    Expect(0, 55292, '\P{Hst= 	NA}', "");
+    Expect(1, 55292, '\P{^Hst= 	NA}', "");
+    Expect(0, 55291, '\p{Hst= 	NA}', "");
+    Expect(1, 55291, '\p{^Hst= 	NA}', "");
+    Expect(1, 55291, '\P{Hst= 	NA}', "");
+    Expect(0, 55291, '\P{^Hst= 	NA}', "");
+    Error('\p{Is_Hangul_Syllable_Type=__not_Applicable:=}');
+    Error('\P{Is_Hangul_Syllable_Type=__not_Applicable:=}');
     Expect(1, 55292, '\p{Is_Hangul_Syllable_Type=notapplicable}', "");
     Expect(0, 55292, '\p{^Is_Hangul_Syllable_Type=notapplicable}', "");
     Expect(0, 55292, '\P{Is_Hangul_Syllable_Type=notapplicable}', "");
@@ -45435,34 +45987,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55291, '\p{^Is_Hangul_Syllable_Type=notapplicable}', "");
     Expect(1, 55291, '\P{Is_Hangul_Syllable_Type=notapplicable}', "");
     Expect(0, 55291, '\P{^Is_Hangul_Syllable_Type=notapplicable}', "");
-    Expect(1, 55292, '\p{Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(0, 55292, '\p{^Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(0, 55292, '\P{Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(1, 55292, '\P{^Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(0, 55291, '\p{Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(1, 55291, '\p{^Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(1, 55291, '\P{Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Expect(0, 55291, '\P{^Is_Hangul_Syllable_Type=-_not_applicable}', "");
-    Error('\p{Is_Hst=	/a/na}');
-    Error('\P{Is_Hst=	/a/na}');
-    Expect(1, 55292, '\p{Is_Hst=na}', "");
-    Expect(0, 55292, '\p{^Is_Hst=na}', "");
-    Expect(0, 55292, '\P{Is_Hst=na}', "");
-    Expect(1, 55292, '\P{^Is_Hst=na}', "");
-    Expect(0, 55291, '\p{Is_Hst=na}', "");
-    Expect(1, 55291, '\p{^Is_Hst=na}', "");
-    Expect(1, 55291, '\P{Is_Hst=na}', "");
-    Expect(0, 55291, '\P{^Is_Hst=na}', "");
-    Expect(1, 55292, '\p{Is_Hst=  NA}', "");
-    Expect(0, 55292, '\p{^Is_Hst=  NA}', "");
-    Expect(0, 55292, '\P{Is_Hst=  NA}', "");
-    Expect(1, 55292, '\P{^Is_Hst=  NA}', "");
-    Expect(0, 55291, '\p{Is_Hst=  NA}', "");
-    Expect(1, 55291, '\p{^Is_Hst=  NA}', "");
-    Expect(1, 55291, '\P{Is_Hst=  NA}', "");
-    Expect(0, 55291, '\P{^Is_Hst=  NA}', "");
-    Error('\p{Hangul_Syllable_Type=	/a/Trailing_JAMO}');
-    Error('\P{Hangul_Syllable_Type=	/a/Trailing_JAMO}');
+    Expect(1, 55292, '\p{Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(0, 55292, '\p{^Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(0, 55292, '\P{Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(1, 55292, '\P{^Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(0, 55291, '\p{Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(1, 55291, '\p{^Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(1, 55291, '\P{Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Expect(0, 55291, '\P{^Is_Hangul_Syllable_Type=-not_Applicable}', "");
+    Error('\p{Is_Hst=-NA/a/}');
+    Error('\P{Is_Hst=-NA/a/}');
+    Expect(1, 55292, '\p{Is_Hst:   na}', "");
+    Expect(0, 55292, '\p{^Is_Hst:   na}', "");
+    Expect(0, 55292, '\P{Is_Hst:   na}', "");
+    Expect(1, 55292, '\P{^Is_Hst:   na}', "");
+    Expect(0, 55291, '\p{Is_Hst:   na}', "");
+    Expect(1, 55291, '\p{^Is_Hst:   na}', "");
+    Expect(1, 55291, '\P{Is_Hst:   na}', "");
+    Expect(0, 55291, '\P{^Is_Hst:   na}', "");
+    Expect(1, 55292, '\p{Is_Hst=	-NA}', "");
+    Expect(0, 55292, '\p{^Is_Hst=	-NA}', "");
+    Expect(0, 55292, '\P{Is_Hst=	-NA}', "");
+    Expect(1, 55292, '\P{^Is_Hst=	-NA}', "");
+    Expect(0, 55291, '\p{Is_Hst=	-NA}', "");
+    Expect(1, 55291, '\p{^Is_Hst=	-NA}', "");
+    Expect(1, 55291, '\P{Is_Hst=	-NA}', "");
+    Expect(0, 55291, '\P{^Is_Hst=	-NA}', "");
+    Error('\p{Hangul_Syllable_Type= /a/Trailing_Jamo}');
+    Error('\P{Hangul_Syllable_Type= /a/Trailing_Jamo}');
     Expect(1, 55291, '\p{Hangul_Syllable_Type=:\ATrailing_Jamo\z:}', "");;
     Expect(0, 55292, '\p{Hangul_Syllable_Type=:\ATrailing_Jamo\z:}', "");;
     Expect(1, 55291, '\p{Hangul_Syllable_Type=trailingjamo}', "");
@@ -45475,16 +46027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55292, '\P{^Hangul_Syllable_Type=trailingjamo}', "");
     Expect(1, 55291, '\p{Hangul_Syllable_Type=:\Atrailingjamo\z:}', "");;
     Expect(0, 55292, '\p{Hangul_Syllable_Type=:\Atrailingjamo\z:}', "");;
-    Expect(1, 55291, '\p{Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(0, 55291, '\p{^Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(0, 55291, '\P{Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(1, 55291, '\P{^Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(0, 55292, '\p{Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(1, 55292, '\p{^Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(1, 55292, '\P{Hangul_Syllable_Type= trailing_jamo}', "");
-    Expect(0, 55292, '\P{^Hangul_Syllable_Type= trailing_jamo}', "");
-    Error('\p{Hst=:=--T}');
-    Error('\P{Hst=:=--T}');
+    Expect(1, 55291, '\p{Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(0, 55291, '\p{^Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(0, 55291, '\P{Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(1, 55291, '\P{^Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(0, 55292, '\p{Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(1, 55292, '\p{^Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(1, 55292, '\P{Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Expect(0, 55292, '\P{^Hangul_Syllable_Type:	- Trailing_Jamo}', "");
+    Error('\p{Hst= :=T}');
+    Error('\P{Hst= :=T}');
     Expect(1, 55291, '\p{Hst=:\AT\z:}', "");;
     Expect(0, 55292, '\p{Hst=:\AT\z:}', "");;
     Expect(1, 55291, '\p{Hst=t}', "");
@@ -45497,34 +46049,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55292, '\P{^Hst=t}', "");
     Expect(1, 55291, '\p{Hst=:\At\z:}', "");;
     Expect(0, 55292, '\p{Hst=:\At\z:}', "");;
-    Expect(1, 55291, '\p{Hst=-T}', "");
-    Expect(0, 55291, '\p{^Hst=-T}', "");
-    Expect(0, 55291, '\P{Hst=-T}', "");
-    Expect(1, 55291, '\P{^Hst=-T}', "");
-    Expect(0, 55292, '\p{Hst=-T}', "");
-    Expect(1, 55292, '\p{^Hst=-T}', "");
-    Expect(1, 55292, '\P{Hst=-T}', "");
-    Expect(0, 55292, '\P{^Hst=-T}', "");
-    Error('\p{Is_Hangul_Syllable_Type: -Trailing_JAMO:=}');
-    Error('\P{Is_Hangul_Syllable_Type: -Trailing_JAMO:=}');
-    Expect(1, 55291, '\p{Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(0, 55291, '\p{^Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(0, 55291, '\P{Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(1, 55291, '\P{^Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(0, 55292, '\p{Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(1, 55292, '\p{^Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(1, 55292, '\P{Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(0, 55292, '\P{^Is_Hangul_Syllable_Type=trailingjamo}', "");
-    Expect(1, 55291, '\p{Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(0, 55291, '\p{^Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(0, 55291, '\P{Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(1, 55291, '\P{^Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(0, 55292, '\p{Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(1, 55292, '\p{^Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(1, 55292, '\P{Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Expect(0, 55292, '\P{^Is_Hangul_Syllable_Type=	-Trailing_Jamo}', "");
-    Error('\p{Is_Hst:   _/a/T}');
-    Error('\P{Is_Hst:   _/a/T}');
+    Expect(1, 55291, '\p{Hst=_T}', "");
+    Expect(0, 55291, '\p{^Hst=_T}', "");
+    Expect(0, 55291, '\P{Hst=_T}', "");
+    Expect(1, 55291, '\P{^Hst=_T}', "");
+    Expect(0, 55292, '\p{Hst=_T}', "");
+    Expect(1, 55292, '\p{^Hst=_T}', "");
+    Expect(1, 55292, '\P{Hst=_T}', "");
+    Expect(0, 55292, '\P{^Hst=_T}', "");
+    Error('\p{Is_Hangul_Syllable_Type=:=_ TRAILING_Jamo}');
+    Error('\P{Is_Hangul_Syllable_Type=:=_ TRAILING_Jamo}');
+    Expect(1, 55291, '\p{Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(0, 55291, '\p{^Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(0, 55291, '\P{Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(1, 55291, '\P{^Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(0, 55292, '\p{Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(1, 55292, '\p{^Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(1, 55292, '\P{Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(0, 55292, '\P{^Is_Hangul_Syllable_Type: trailingjamo}', "");
+    Expect(1, 55291, '\p{Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(0, 55291, '\p{^Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(0, 55291, '\P{Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(1, 55291, '\P{^Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(0, 55292, '\p{Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(1, 55292, '\p{^Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(1, 55292, '\P{Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Expect(0, 55292, '\P{^Is_Hangul_Syllable_Type=	_Trailing_Jamo}', "");
+    Error('\p{Is_Hst=:=	T}');
+    Error('\P{Is_Hst=:=	T}');
     Expect(1, 55291, '\p{Is_Hst=t}', "");
     Expect(0, 55291, '\p{^Is_Hst=t}', "");
     Expect(0, 55291, '\P{Is_Hst=t}', "");
@@ -45533,16 +46085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55292, '\p{^Is_Hst=t}', "");
     Expect(1, 55292, '\P{Is_Hst=t}', "");
     Expect(0, 55292, '\P{^Is_Hst=t}', "");
-    Expect(1, 55291, '\p{Is_Hst=	t}', "");
-    Expect(0, 55291, '\p{^Is_Hst=	t}', "");
-    Expect(0, 55291, '\P{Is_Hst=	t}', "");
-    Expect(1, 55291, '\P{^Is_Hst=	t}', "");
-    Expect(0, 55292, '\p{Is_Hst=	t}', "");
-    Expect(1, 55292, '\p{^Is_Hst=	t}', "");
-    Expect(1, 55292, '\P{Is_Hst=	t}', "");
-    Expect(0, 55292, '\P{^Is_Hst=	t}', "");
-    Error('\p{Hangul_Syllable_Type=:=Vowel_Jamo}');
-    Error('\P{Hangul_Syllable_Type=:=Vowel_Jamo}');
+    Expect(1, 55291, '\p{Is_Hst=-T}', "");
+    Expect(0, 55291, '\p{^Is_Hst=-T}', "");
+    Expect(0, 55291, '\P{Is_Hst=-T}', "");
+    Expect(1, 55291, '\P{^Is_Hst=-T}', "");
+    Expect(0, 55292, '\p{Is_Hst=-T}', "");
+    Expect(1, 55292, '\p{^Is_Hst=-T}', "");
+    Expect(1, 55292, '\P{Is_Hst=-T}', "");
+    Expect(0, 55292, '\P{^Is_Hst=-T}', "");
+    Error('\p{Hangul_Syllable_Type=-	Vowel_Jamo:=}');
+    Error('\P{Hangul_Syllable_Type=-	Vowel_Jamo:=}');
     Expect(1, 55238, '\p{Hangul_Syllable_Type=:\AVowel_Jamo\z:}', "");;
     Expect(0, 55239, '\p{Hangul_Syllable_Type=:\AVowel_Jamo\z:}', "");;
     Expect(1, 55238, '\p{Hangul_Syllable_Type=voweljamo}', "");
@@ -45555,16 +46107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55239, '\P{^Hangul_Syllable_Type=voweljamo}', "");
     Expect(1, 55238, '\p{Hangul_Syllable_Type=:\Avoweljamo\z:}', "");;
     Expect(0, 55239, '\p{Hangul_Syllable_Type=:\Avoweljamo\z:}', "");;
-    Expect(1, 55238, '\p{Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(0, 55238, '\p{^Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(0, 55238, '\P{Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(1, 55238, '\P{^Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(0, 55239, '\p{Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(1, 55239, '\p{^Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(1, 55239, '\P{Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Expect(0, 55239, '\P{^Hangul_Syllable_Type=Vowel_Jamo}', "");
-    Error('\p{Hst=_:=V}');
-    Error('\P{Hst=_:=V}');
+    Expect(1, 55238, '\p{Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(0, 55238, '\p{^Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(0, 55238, '\P{Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(1, 55238, '\P{^Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(0, 55239, '\p{Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(1, 55239, '\p{^Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(1, 55239, '\P{Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Expect(0, 55239, '\P{^Hangul_Syllable_Type=	 vowel_Jamo}', "");
+    Error('\p{Hst=/a/ 	V}');
+    Error('\P{Hst=/a/ 	V}');
     Expect(1, 55238, '\p{Hst=:\AV\z:}', "");;
     Expect(0, 55239, '\p{Hst=:\AV\z:}', "");;
     Expect(1, 55238, '\p{Hst=v}', "");
@@ -45577,16 +46129,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55239, '\P{^Hst=v}', "");
     Expect(1, 55238, '\p{Hst=:\Av\z:}', "");;
     Expect(0, 55239, '\p{Hst=:\Av\z:}', "");;
-    Expect(1, 55238, '\p{Hst:	 	V}', "");
-    Expect(0, 55238, '\p{^Hst:	 	V}', "");
-    Expect(0, 55238, '\P{Hst:	 	V}', "");
-    Expect(1, 55238, '\P{^Hst:	 	V}', "");
-    Expect(0, 55239, '\p{Hst:	 	V}', "");
-    Expect(1, 55239, '\p{^Hst:	 	V}', "");
-    Expect(1, 55239, '\P{Hst:	 	V}', "");
-    Expect(0, 55239, '\P{^Hst:	 	V}', "");
-    Error('\p{Is_Hangul_Syllable_Type=_-VOWEL_JAMO/a/}');
-    Error('\P{Is_Hangul_Syllable_Type=_-VOWEL_JAMO/a/}');
+    Expect(1, 55238, '\p{Hst=-V}', "");
+    Expect(0, 55238, '\p{^Hst=-V}', "");
+    Expect(0, 55238, '\P{Hst=-V}', "");
+    Expect(1, 55238, '\P{^Hst=-V}', "");
+    Expect(0, 55239, '\p{Hst=-V}', "");
+    Expect(1, 55239, '\p{^Hst=-V}', "");
+    Expect(1, 55239, '\P{Hst=-V}', "");
+    Expect(0, 55239, '\P{^Hst=-V}', "");
+    Error('\p{Is_Hangul_Syllable_Type=/a/_	vowel_JAMO}');
+    Error('\P{Is_Hangul_Syllable_Type=/a/_	vowel_JAMO}');
     Expect(1, 55238, '\p{Is_Hangul_Syllable_Type=voweljamo}', "");
     Expect(0, 55238, '\p{^Is_Hangul_Syllable_Type=voweljamo}', "");
     Expect(0, 55238, '\P{Is_Hangul_Syllable_Type=voweljamo}', "");
@@ -45595,16 +46147,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55239, '\p{^Is_Hangul_Syllable_Type=voweljamo}', "");
     Expect(1, 55239, '\P{Is_Hangul_Syllable_Type=voweljamo}', "");
     Expect(0, 55239, '\P{^Is_Hangul_Syllable_Type=voweljamo}', "");
-    Expect(1, 55238, '\p{Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(0, 55238, '\p{^Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(0, 55238, '\P{Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(1, 55238, '\P{^Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(0, 55239, '\p{Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(1, 55239, '\p{^Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(1, 55239, '\P{Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Expect(0, 55239, '\P{^Is_Hangul_Syllable_Type:__Vowel_JAMO}', "");
-    Error('\p{Is_Hst=	:=v}');
-    Error('\P{Is_Hst=	:=v}');
+    Expect(1, 55238, '\p{Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(0, 55238, '\p{^Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(0, 55238, '\P{Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(1, 55238, '\P{^Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(0, 55239, '\p{Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(1, 55239, '\p{^Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(1, 55239, '\P{Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Expect(0, 55239, '\P{^Is_Hangul_Syllable_Type=  VOWEL_JAMO}', "");
+    Error('\p{Is_Hst=:=  V}');
+    Error('\P{Is_Hst=:=  V}');
     Expect(1, 55238, '\p{Is_Hst=v}', "");
     Expect(0, 55238, '\p{^Is_Hst=v}', "");
     Expect(0, 55238, '\P{Is_Hst=v}', "");
@@ -45613,16 +46165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55239, '\p{^Is_Hst=v}', "");
     Expect(1, 55239, '\P{Is_Hst=v}', "");
     Expect(0, 55239, '\P{^Is_Hst=v}', "");
-    Expect(1, 55238, '\p{Is_Hst=-_V}', "");
-    Expect(0, 55238, '\p{^Is_Hst=-_V}', "");
-    Expect(0, 55238, '\P{Is_Hst=-_V}', "");
-    Expect(1, 55238, '\P{^Is_Hst=-_V}', "");
-    Expect(0, 55239, '\p{Is_Hst=-_V}', "");
-    Expect(1, 55239, '\p{^Is_Hst=-_V}', "");
-    Expect(1, 55239, '\P{Is_Hst=-_V}', "");
-    Expect(0, 55239, '\P{^Is_Hst=-_V}', "");
-    Error('\p{Hyphen=-NO:=}');
-    Error('\P{Hyphen=-NO:=}');
+    Expect(1, 55238, '\p{Is_Hst= -V}', "");
+    Expect(0, 55238, '\p{^Is_Hst= -V}', "");
+    Expect(0, 55238, '\P{Is_Hst= -V}', "");
+    Expect(1, 55238, '\P{^Is_Hst= -V}', "");
+    Expect(0, 55239, '\p{Is_Hst= -V}', "");
+    Expect(1, 55239, '\p{^Is_Hst= -V}', "");
+    Expect(1, 55239, '\P{Is_Hst= -V}', "");
+    Expect(0, 55239, '\P{^Is_Hst= -V}', "");
+    Error('\p{Hyphen= 	No/a/}');
+    Error('\P{Hyphen= 	No/a/}');
     Expect(1, 65382, '\p{Hyphen=no}', 'deprecated');
     Expect(0, 65382, '\p{^Hyphen=no}', 'deprecated');
     Expect(0, 65382, '\P{Hyphen=no}', 'deprecated');
@@ -45631,16 +46183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65381, '\p{^Hyphen=no}', 'deprecated');
     Expect(1, 65381, '\P{Hyphen=no}', 'deprecated');
     Expect(0, 65381, '\P{^Hyphen=no}', 'deprecated');
-    Expect(1, 65382, '\p{Hyphen= _no}', 'deprecated');
-    Expect(0, 65382, '\p{^Hyphen= _no}', 'deprecated');
-    Expect(0, 65382, '\P{Hyphen= _no}', 'deprecated');
-    Expect(1, 65382, '\P{^Hyphen= _no}', 'deprecated');
-    Expect(0, 65381, '\p{Hyphen= _no}', 'deprecated');
-    Expect(1, 65381, '\p{^Hyphen= _no}', 'deprecated');
-    Expect(1, 65381, '\P{Hyphen= _no}', 'deprecated');
-    Expect(0, 65381, '\P{^Hyphen= _no}', 'deprecated');
-    Error('\p{Is_Hyphen=/a/		N}');
-    Error('\P{Is_Hyphen=/a/		N}');
+    Expect(1, 65382, '\p{Hyphen=-NO}', 'deprecated');
+    Expect(0, 65382, '\p{^Hyphen=-NO}', 'deprecated');
+    Expect(0, 65382, '\P{Hyphen=-NO}', 'deprecated');
+    Expect(1, 65382, '\P{^Hyphen=-NO}', 'deprecated');
+    Expect(0, 65381, '\p{Hyphen=-NO}', 'deprecated');
+    Expect(1, 65381, '\p{^Hyphen=-NO}', 'deprecated');
+    Expect(1, 65381, '\P{Hyphen=-NO}', 'deprecated');
+    Expect(0, 65381, '\P{^Hyphen=-NO}', 'deprecated');
+    Error('\p{Is_Hyphen=	:=N}');
+    Error('\P{Is_Hyphen=	:=N}');
     Expect(1, 65382, '\p{Is_Hyphen=n}', 'deprecated');
     Expect(0, 65382, '\p{^Is_Hyphen=n}', 'deprecated');
     Expect(0, 65382, '\P{Is_Hyphen=n}', 'deprecated');
@@ -45649,8 +46201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65381, '\p{^Is_Hyphen=n}', 'deprecated');
     Expect(1, 65381, '\P{Is_Hyphen=n}', 'deprecated');
     Expect(0, 65381, '\P{^Is_Hyphen=n}', 'deprecated');
-    Error('\p{Hyphen=:= 	f}');
-    Error('\P{Hyphen=:= 	f}');
+    Expect(1, 65382, '\p{Is_Hyphen=		n}', 'deprecated');
+    Expect(0, 65382, '\p{^Is_Hyphen=		n}', 'deprecated');
+    Expect(0, 65382, '\P{Is_Hyphen=		n}', 'deprecated');
+    Expect(1, 65382, '\P{^Is_Hyphen=		n}', 'deprecated');
+    Expect(0, 65381, '\p{Is_Hyphen=		n}', 'deprecated');
+    Expect(1, 65381, '\p{^Is_Hyphen=		n}', 'deprecated');
+    Expect(1, 65381, '\P{Is_Hyphen=		n}', 'deprecated');
+    Expect(0, 65381, '\P{^Is_Hyphen=		n}', 'deprecated');
+    Error('\p{Hyphen=:=	F}');
+    Error('\P{Hyphen=:=	F}');
     Expect(1, 65382, '\p{Hyphen=:\AF\z:}', 'deprecated');;
     Expect(0, 65381, '\p{Hyphen=:\AF\z:}', 'deprecated');;
     Expect(1, 65382, '\p{Hyphen=f}', 'deprecated');
@@ -45663,16 +46223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65381, '\P{^Hyphen=f}', 'deprecated');
     Expect(1, 65382, '\p{Hyphen=:\Af\z:}', 'deprecated');;
     Expect(0, 65381, '\p{Hyphen=:\Af\z:}', 'deprecated');;
-    Expect(1, 65382, '\p{Hyphen=  F}', 'deprecated');
-    Expect(0, 65382, '\p{^Hyphen=  F}', 'deprecated');
-    Expect(0, 65382, '\P{Hyphen=  F}', 'deprecated');
-    Expect(1, 65382, '\P{^Hyphen=  F}', 'deprecated');
-    Expect(0, 65381, '\p{Hyphen=  F}', 'deprecated');
-    Expect(1, 65381, '\p{^Hyphen=  F}', 'deprecated');
-    Expect(1, 65381, '\P{Hyphen=  F}', 'deprecated');
-    Expect(0, 65381, '\P{^Hyphen=  F}', 'deprecated');
-    Error('\p{Is_Hyphen=:=	FALSE}');
-    Error('\P{Is_Hyphen=:=	FALSE}');
+    Expect(1, 65382, '\p{Hyphen:   	f}', 'deprecated');
+    Expect(0, 65382, '\p{^Hyphen:   	f}', 'deprecated');
+    Expect(0, 65382, '\P{Hyphen:   	f}', 'deprecated');
+    Expect(1, 65382, '\P{^Hyphen:   	f}', 'deprecated');
+    Expect(0, 65381, '\p{Hyphen:   	f}', 'deprecated');
+    Expect(1, 65381, '\p{^Hyphen:   	f}', 'deprecated');
+    Expect(1, 65381, '\P{Hyphen:   	f}', 'deprecated');
+    Expect(0, 65381, '\P{^Hyphen:   	f}', 'deprecated');
+    Error('\p{Is_Hyphen=  False/a/}');
+    Error('\P{Is_Hyphen=  False/a/}');
     Expect(1, 65382, '\p{Is_Hyphen=false}', 'deprecated');
     Expect(0, 65382, '\p{^Is_Hyphen=false}', 'deprecated');
     Expect(0, 65382, '\P{Is_Hyphen=false}', 'deprecated');
@@ -45681,16 +46241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65381, '\p{^Is_Hyphen=false}', 'deprecated');
     Expect(1, 65381, '\P{Is_Hyphen=false}', 'deprecated');
     Expect(0, 65381, '\P{^Is_Hyphen=false}', 'deprecated');
-    Expect(1, 65382, '\p{Is_Hyphen=_-False}', 'deprecated');
-    Expect(0, 65382, '\p{^Is_Hyphen=_-False}', 'deprecated');
-    Expect(0, 65382, '\P{Is_Hyphen=_-False}', 'deprecated');
-    Expect(1, 65382, '\P{^Is_Hyphen=_-False}', 'deprecated');
-    Expect(0, 65381, '\p{Is_Hyphen=_-False}', 'deprecated');
-    Expect(1, 65381, '\p{^Is_Hyphen=_-False}', 'deprecated');
-    Expect(1, 65381, '\P{Is_Hyphen=_-False}', 'deprecated');
-    Expect(0, 65381, '\P{^Is_Hyphen=_-False}', 'deprecated');
-    Error('\p{Hyphen=	:=Yes}');
-    Error('\P{Hyphen=	:=Yes}');
+    Expect(1, 65382, '\p{Is_Hyphen= FALSE}', 'deprecated');
+    Expect(0, 65382, '\p{^Is_Hyphen= FALSE}', 'deprecated');
+    Expect(0, 65382, '\P{Is_Hyphen= FALSE}', 'deprecated');
+    Expect(1, 65382, '\P{^Is_Hyphen= FALSE}', 'deprecated');
+    Expect(0, 65381, '\p{Is_Hyphen= FALSE}', 'deprecated');
+    Expect(1, 65381, '\p{^Is_Hyphen= FALSE}', 'deprecated');
+    Expect(1, 65381, '\P{Is_Hyphen= FALSE}', 'deprecated');
+    Expect(0, 65381, '\P{^Is_Hyphen= FALSE}', 'deprecated');
+    Error('\p{Hyphen= _Yes:=}');
+    Error('\P{Hyphen= _Yes:=}');
     Expect(1, 65381, '\p{Hyphen=yes}', 'deprecated');
     Expect(0, 65381, '\p{^Hyphen=yes}', 'deprecated');
     Expect(0, 65381, '\P{Hyphen=yes}', 'deprecated');
@@ -45699,16 +46259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65382, '\p{^Hyphen=yes}', 'deprecated');
     Expect(1, 65382, '\P{Hyphen=yes}', 'deprecated');
     Expect(0, 65382, '\P{^Hyphen=yes}', 'deprecated');
-    Expect(1, 65381, '\p{Hyphen=  Yes}', 'deprecated');
-    Expect(0, 65381, '\p{^Hyphen=  Yes}', 'deprecated');
-    Expect(0, 65381, '\P{Hyphen=  Yes}', 'deprecated');
-    Expect(1, 65381, '\P{^Hyphen=  Yes}', 'deprecated');
-    Expect(0, 65382, '\p{Hyphen=  Yes}', 'deprecated');
-    Expect(1, 65382, '\p{^Hyphen=  Yes}', 'deprecated');
-    Expect(1, 65382, '\P{Hyphen=  Yes}', 'deprecated');
-    Expect(0, 65382, '\P{^Hyphen=  Yes}', 'deprecated');
-    Error('\p{Is_Hyphen=/a/	-Y}');
-    Error('\P{Is_Hyphen=/a/	-Y}');
+    Expect(1, 65381, '\p{Hyphen=		yes}', 'deprecated');
+    Expect(0, 65381, '\p{^Hyphen=		yes}', 'deprecated');
+    Expect(0, 65381, '\P{Hyphen=		yes}', 'deprecated');
+    Expect(1, 65381, '\P{^Hyphen=		yes}', 'deprecated');
+    Expect(0, 65382, '\p{Hyphen=		yes}', 'deprecated');
+    Expect(1, 65382, '\p{^Hyphen=		yes}', 'deprecated');
+    Expect(1, 65382, '\P{Hyphen=		yes}', 'deprecated');
+    Expect(0, 65382, '\P{^Hyphen=		yes}', 'deprecated');
+    Error('\p{Is_Hyphen=_-Y:=}');
+    Error('\P{Is_Hyphen=_-Y:=}');
     Expect(1, 65381, '\p{Is_Hyphen=y}', 'deprecated');
     Expect(0, 65381, '\p{^Is_Hyphen=y}', 'deprecated');
     Expect(0, 65381, '\P{Is_Hyphen=y}', 'deprecated');
@@ -45717,16 +46277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65382, '\p{^Is_Hyphen=y}', 'deprecated');
     Expect(1, 65382, '\P{Is_Hyphen=y}', 'deprecated');
     Expect(0, 65382, '\P{^Is_Hyphen=y}', 'deprecated');
-    Expect(1, 65381, '\p{Is_Hyphen= y}', 'deprecated');
-    Expect(0, 65381, '\p{^Is_Hyphen= y}', 'deprecated');
-    Expect(0, 65381, '\P{Is_Hyphen= y}', 'deprecated');
-    Expect(1, 65381, '\P{^Is_Hyphen= y}', 'deprecated');
-    Expect(0, 65382, '\p{Is_Hyphen= y}', 'deprecated');
-    Expect(1, 65382, '\p{^Is_Hyphen= y}', 'deprecated');
-    Expect(1, 65382, '\P{Is_Hyphen= y}', 'deprecated');
-    Expect(0, 65382, '\P{^Is_Hyphen= y}', 'deprecated');
-    Error('\p{Hyphen:   :=T}');
-    Error('\P{Hyphen:   :=T}');
+    Expect(1, 65381, '\p{Is_Hyphen=	y}', 'deprecated');
+    Expect(0, 65381, '\p{^Is_Hyphen=	y}', 'deprecated');
+    Expect(0, 65381, '\P{Is_Hyphen=	y}', 'deprecated');
+    Expect(1, 65381, '\P{^Is_Hyphen=	y}', 'deprecated');
+    Expect(0, 65382, '\p{Is_Hyphen=	y}', 'deprecated');
+    Expect(1, 65382, '\p{^Is_Hyphen=	y}', 'deprecated');
+    Expect(1, 65382, '\P{Is_Hyphen=	y}', 'deprecated');
+    Expect(0, 65382, '\P{^Is_Hyphen=	y}', 'deprecated');
+    Error('\p{Hyphen=_t:=}');
+    Error('\P{Hyphen=_t:=}');
     Expect(1, 65381, '\p{Hyphen=:\AT\z:}', 'deprecated');;
     Expect(0, 65382, '\p{Hyphen=:\AT\z:}', 'deprecated');;
     Expect(1, 65381, '\p{Hyphen=t}', 'deprecated');
@@ -45739,16 +46299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65382, '\P{^Hyphen=t}', 'deprecated');
     Expect(1, 65381, '\p{Hyphen=:\At\z:}', 'deprecated');;
     Expect(0, 65382, '\p{Hyphen=:\At\z:}', 'deprecated');;
-    Expect(1, 65381, '\p{Hyphen=-_T}', 'deprecated');
-    Expect(0, 65381, '\p{^Hyphen=-_T}', 'deprecated');
-    Expect(0, 65381, '\P{Hyphen=-_T}', 'deprecated');
-    Expect(1, 65381, '\P{^Hyphen=-_T}', 'deprecated');
-    Expect(0, 65382, '\p{Hyphen=-_T}', 'deprecated');
-    Expect(1, 65382, '\p{^Hyphen=-_T}', 'deprecated');
-    Expect(1, 65382, '\P{Hyphen=-_T}', 'deprecated');
-    Expect(0, 65382, '\P{^Hyphen=-_T}', 'deprecated');
-    Error('\p{Is_Hyphen= :=true}');
-    Error('\P{Is_Hyphen= :=true}');
+    Expect(1, 65381, '\p{Hyphen=_ t}', 'deprecated');
+    Expect(0, 65381, '\p{^Hyphen=_ t}', 'deprecated');
+    Expect(0, 65381, '\P{Hyphen=_ t}', 'deprecated');
+    Expect(1, 65381, '\P{^Hyphen=_ t}', 'deprecated');
+    Expect(0, 65382, '\p{Hyphen=_ t}', 'deprecated');
+    Expect(1, 65382, '\p{^Hyphen=_ t}', 'deprecated');
+    Expect(1, 65382, '\P{Hyphen=_ t}', 'deprecated');
+    Expect(0, 65382, '\P{^Hyphen=_ t}', 'deprecated');
+    Error('\p{Is_Hyphen=	 true/a/}');
+    Error('\P{Is_Hyphen=	 true/a/}');
     Expect(1, 65381, '\p{Is_Hyphen=true}', 'deprecated');
     Expect(0, 65381, '\p{^Is_Hyphen=true}', 'deprecated');
     Expect(0, 65381, '\P{Is_Hyphen=true}', 'deprecated');
@@ -45757,16 +46317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65382, '\p{^Is_Hyphen=true}', 'deprecated');
     Expect(1, 65382, '\P{Is_Hyphen=true}', 'deprecated');
     Expect(0, 65382, '\P{^Is_Hyphen=true}', 'deprecated');
-    Expect(1, 65381, '\p{Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(0, 65381, '\p{^Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(0, 65381, '\P{Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(1, 65381, '\P{^Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(0, 65382, '\p{Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(1, 65382, '\p{^Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(1, 65382, '\P{Is_Hyphen=_-TRUE}', 'deprecated');
-    Expect(0, 65382, '\P{^Is_Hyphen=_-TRUE}', 'deprecated');
-    Error('\p{ID_Continue=-	no/a/}');
-    Error('\P{ID_Continue=-	no/a/}');
+    Expect(1, 65381, '\p{Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(0, 65381, '\p{^Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(0, 65381, '\P{Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(1, 65381, '\P{^Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(0, 65382, '\p{Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(1, 65382, '\p{^Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(1, 65382, '\P{Is_Hyphen=_ TRUE}', 'deprecated');
+    Expect(0, 65382, '\P{^Is_Hyphen=_ TRUE}', 'deprecated');
+    Error('\p{ID_Continue=	No/a/}');
+    Error('\P{ID_Continue=	No/a/}');
     Expect(1, 918000, '\p{ID_Continue=:\ANo\z:}', "");;
     Expect(0, 917999, '\p{ID_Continue=:\ANo\z:}', "");;
     Expect(1, 918000, '\p{ID_Continue=no}', "");
@@ -45779,16 +46339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^ID_Continue=no}', "");
     Expect(1, 918000, '\p{ID_Continue=:\Ano\z:}', "");;
     Expect(0, 917999, '\p{ID_Continue=:\Ano\z:}', "");;
-    Expect(1, 918000, '\p{ID_Continue=-	no}', "");
-    Expect(0, 918000, '\p{^ID_Continue=-	no}', "");
-    Expect(0, 918000, '\P{ID_Continue=-	no}', "");
-    Expect(1, 918000, '\P{^ID_Continue=-	no}', "");
-    Expect(0, 917999, '\p{ID_Continue=-	no}', "");
-    Expect(1, 917999, '\p{^ID_Continue=-	no}', "");
-    Expect(1, 917999, '\P{ID_Continue=-	no}', "");
-    Expect(0, 917999, '\P{^ID_Continue=-	no}', "");
-    Error('\p{IDC=:=	 N}');
-    Error('\P{IDC=:=	 N}');
+    Expect(1, 918000, '\p{ID_Continue=-No}', "");
+    Expect(0, 918000, '\p{^ID_Continue=-No}', "");
+    Expect(0, 918000, '\P{ID_Continue=-No}', "");
+    Expect(1, 918000, '\P{^ID_Continue=-No}', "");
+    Expect(0, 917999, '\p{ID_Continue=-No}', "");
+    Expect(1, 917999, '\p{^ID_Continue=-No}', "");
+    Expect(1, 917999, '\P{ID_Continue=-No}', "");
+    Expect(0, 917999, '\P{^ID_Continue=-No}', "");
+    Error('\p{IDC=	-N/a/}');
+    Error('\P{IDC=	-N/a/}');
     Expect(1, 918000, '\p{IDC=:\AN\z:}', "");;
     Expect(0, 917999, '\p{IDC=:\AN\z:}', "");;
     Expect(1, 918000, '\p{IDC=n}', "");
@@ -45801,16 +46361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^IDC=n}', "");
     Expect(1, 918000, '\p{IDC=:\An\z:}', "");;
     Expect(0, 917999, '\p{IDC=:\An\z:}', "");;
-    Expect(1, 918000, '\p{IDC=--N}', "");
-    Expect(0, 918000, '\p{^IDC=--N}', "");
-    Expect(0, 918000, '\P{IDC=--N}', "");
-    Expect(1, 918000, '\P{^IDC=--N}', "");
-    Expect(0, 917999, '\p{IDC=--N}', "");
-    Expect(1, 917999, '\p{^IDC=--N}', "");
-    Expect(1, 917999, '\P{IDC=--N}', "");
-    Expect(0, 917999, '\P{^IDC=--N}', "");
-    Error('\p{Is_ID_Continue=:=- F}');
-    Error('\P{Is_ID_Continue=:=- F}');
+    Expect(1, 918000, '\p{IDC=_	N}', "");
+    Expect(0, 918000, '\p{^IDC=_	N}', "");
+    Expect(0, 918000, '\P{IDC=_	N}', "");
+    Expect(1, 918000, '\P{^IDC=_	N}', "");
+    Expect(0, 917999, '\p{IDC=_	N}', "");
+    Expect(1, 917999, '\p{^IDC=_	N}', "");
+    Expect(1, 917999, '\P{IDC=_	N}', "");
+    Expect(0, 917999, '\P{^IDC=_	N}', "");
+    Error('\p{Is_ID_Continue=	/a/f}');
+    Error('\P{Is_ID_Continue=	/a/f}');
     Expect(1, 918000, '\p{Is_ID_Continue=f}', "");
     Expect(0, 918000, '\p{^Is_ID_Continue=f}', "");
     Expect(0, 918000, '\P{Is_ID_Continue=f}', "");
@@ -45819,16 +46379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_ID_Continue=f}', "");
     Expect(1, 917999, '\P{Is_ID_Continue=f}', "");
     Expect(0, 917999, '\P{^Is_ID_Continue=f}', "");
-    Expect(1, 918000, '\p{Is_ID_Continue=F}', "");
-    Expect(0, 918000, '\p{^Is_ID_Continue=F}', "");
-    Expect(0, 918000, '\P{Is_ID_Continue=F}', "");
-    Expect(1, 918000, '\P{^Is_ID_Continue=F}', "");
-    Expect(0, 917999, '\p{Is_ID_Continue=F}', "");
-    Expect(1, 917999, '\p{^Is_ID_Continue=F}', "");
-    Expect(1, 917999, '\P{Is_ID_Continue=F}', "");
-    Expect(0, 917999, '\P{^Is_ID_Continue=F}', "");
-    Error('\p{Is_IDC=-/a/false}');
-    Error('\P{Is_IDC=-/a/false}');
+    Expect(1, 918000, '\p{Is_ID_Continue=	f}', "");
+    Expect(0, 918000, '\p{^Is_ID_Continue=	f}', "");
+    Expect(0, 918000, '\P{Is_ID_Continue=	f}', "");
+    Expect(1, 918000, '\P{^Is_ID_Continue=	f}', "");
+    Expect(0, 917999, '\p{Is_ID_Continue=	f}', "");
+    Expect(1, 917999, '\p{^Is_ID_Continue=	f}', "");
+    Expect(1, 917999, '\P{Is_ID_Continue=	f}', "");
+    Expect(0, 917999, '\P{^Is_ID_Continue=	f}', "");
+    Error('\p{Is_IDC=/a/_ FALSE}');
+    Error('\P{Is_IDC=/a/_ FALSE}');
     Expect(1, 918000, '\p{Is_IDC=false}', "");
     Expect(0, 918000, '\p{^Is_IDC=false}', "");
     Expect(0, 918000, '\P{Is_IDC=false}', "");
@@ -45837,16 +46397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_IDC=false}', "");
     Expect(1, 917999, '\P{Is_IDC=false}', "");
     Expect(0, 917999, '\P{^Is_IDC=false}', "");
-    Expect(1, 918000, '\p{Is_IDC=_-FALSE}', "");
-    Expect(0, 918000, '\p{^Is_IDC=_-FALSE}', "");
-    Expect(0, 918000, '\P{Is_IDC=_-FALSE}', "");
-    Expect(1, 918000, '\P{^Is_IDC=_-FALSE}', "");
-    Expect(0, 917999, '\p{Is_IDC=_-FALSE}', "");
-    Expect(1, 917999, '\p{^Is_IDC=_-FALSE}', "");
-    Expect(1, 917999, '\P{Is_IDC=_-FALSE}', "");
-    Expect(0, 917999, '\P{^Is_IDC=_-FALSE}', "");
-    Error('\p{ID_Continue=_:=YES}');
-    Error('\P{ID_Continue=_:=YES}');
+    Expect(1, 918000, '\p{Is_IDC=__False}', "");
+    Expect(0, 918000, '\p{^Is_IDC=__False}', "");
+    Expect(0, 918000, '\P{Is_IDC=__False}', "");
+    Expect(1, 918000, '\P{^Is_IDC=__False}', "");
+    Expect(0, 917999, '\p{Is_IDC=__False}', "");
+    Expect(1, 917999, '\p{^Is_IDC=__False}', "");
+    Expect(1, 917999, '\P{Is_IDC=__False}', "");
+    Expect(0, 917999, '\P{^Is_IDC=__False}', "");
+    Error('\p{ID_Continue=/a/_yes}');
+    Error('\P{ID_Continue=/a/_yes}');
     Expect(1, 917999, '\p{ID_Continue=:\AYes\z:}', "");;
     Expect(0, 918000, '\p{ID_Continue=:\AYes\z:}', "");;
     Expect(1, 917999, '\p{ID_Continue=yes}', "");
@@ -45859,38 +46419,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^ID_Continue=yes}', "");
     Expect(1, 917999, '\p{ID_Continue=:\Ayes\z:}', "");;
     Expect(0, 918000, '\p{ID_Continue=:\Ayes\z:}', "");;
-    Expect(1, 917999, '\p{ID_Continue=	-Yes}', "");
-    Expect(0, 917999, '\p{^ID_Continue=	-Yes}', "");
-    Expect(0, 917999, '\P{ID_Continue=	-Yes}', "");
-    Expect(1, 917999, '\P{^ID_Continue=	-Yes}', "");
-    Expect(0, 918000, '\p{ID_Continue=	-Yes}', "");
-    Expect(1, 918000, '\p{^ID_Continue=	-Yes}', "");
-    Expect(1, 918000, '\P{ID_Continue=	-Yes}', "");
-    Expect(0, 918000, '\P{^ID_Continue=	-Yes}', "");
-    Error('\p{IDC=:= y}');
-    Error('\P{IDC=:= y}');
+    Expect(1, 917999, '\p{ID_Continue= Yes}', "");
+    Expect(0, 917999, '\p{^ID_Continue= Yes}', "");
+    Expect(0, 917999, '\P{ID_Continue= Yes}', "");
+    Expect(1, 917999, '\P{^ID_Continue= Yes}', "");
+    Expect(0, 918000, '\p{ID_Continue= Yes}', "");
+    Expect(1, 918000, '\p{^ID_Continue= Yes}', "");
+    Expect(1, 918000, '\P{ID_Continue= Yes}', "");
+    Expect(0, 918000, '\P{^ID_Continue= Yes}', "");
+    Error('\p{IDC=	:=Y}');
+    Error('\P{IDC=	:=Y}');
     Expect(1, 917999, '\p{IDC=:\AY\z:}', "");;
     Expect(0, 918000, '\p{IDC=:\AY\z:}', "");;
-    Expect(1, 917999, '\p{IDC: y}', "");
-    Expect(0, 917999, '\p{^IDC: y}', "");
-    Expect(0, 917999, '\P{IDC: y}', "");
-    Expect(1, 917999, '\P{^IDC: y}', "");
-    Expect(0, 918000, '\p{IDC: y}', "");
-    Expect(1, 918000, '\p{^IDC: y}', "");
-    Expect(1, 918000, '\P{IDC: y}', "");
-    Expect(0, 918000, '\P{^IDC: y}', "");
+    Expect(1, 917999, '\p{IDC=y}', "");
+    Expect(0, 917999, '\p{^IDC=y}', "");
+    Expect(0, 917999, '\P{IDC=y}', "");
+    Expect(1, 917999, '\P{^IDC=y}', "");
+    Expect(0, 918000, '\p{IDC=y}', "");
+    Expect(1, 918000, '\p{^IDC=y}', "");
+    Expect(1, 918000, '\P{IDC=y}', "");
+    Expect(0, 918000, '\P{^IDC=y}', "");
     Expect(1, 917999, '\p{IDC=:\Ay\z:}', "");;
     Expect(0, 918000, '\p{IDC=:\Ay\z:}', "");;
-    Expect(1, 917999, '\p{IDC=- y}', "");
-    Expect(0, 917999, '\p{^IDC=- y}', "");
-    Expect(0, 917999, '\P{IDC=- y}', "");
-    Expect(1, 917999, '\P{^IDC=- y}', "");
-    Expect(0, 918000, '\p{IDC=- y}', "");
-    Expect(1, 918000, '\p{^IDC=- y}', "");
-    Expect(1, 918000, '\P{IDC=- y}', "");
-    Expect(0, 918000, '\P{^IDC=- y}', "");
-    Error('\p{Is_ID_Continue=  t/a/}');
-    Error('\P{Is_ID_Continue=  t/a/}');
+    Expect(1, 917999, '\p{IDC= Y}', "");
+    Expect(0, 917999, '\p{^IDC= Y}', "");
+    Expect(0, 917999, '\P{IDC= Y}', "");
+    Expect(1, 917999, '\P{^IDC= Y}', "");
+    Expect(0, 918000, '\p{IDC= Y}', "");
+    Expect(1, 918000, '\p{^IDC= Y}', "");
+    Expect(1, 918000, '\P{IDC= Y}', "");
+    Expect(0, 918000, '\P{^IDC= Y}', "");
+    Error('\p{Is_ID_Continue=-/a/T}');
+    Error('\P{Is_ID_Continue=-/a/T}');
     Expect(1, 917999, '\p{Is_ID_Continue=t}', "");
     Expect(0, 917999, '\p{^Is_ID_Continue=t}', "");
     Expect(0, 917999, '\P{Is_ID_Continue=t}', "");
@@ -45899,16 +46459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_ID_Continue=t}', "");
     Expect(1, 918000, '\P{Is_ID_Continue=t}', "");
     Expect(0, 918000, '\P{^Is_ID_Continue=t}', "");
-    Expect(1, 917999, '\p{Is_ID_Continue=__T}', "");
-    Expect(0, 917999, '\p{^Is_ID_Continue=__T}', "");
-    Expect(0, 917999, '\P{Is_ID_Continue=__T}', "");
-    Expect(1, 917999, '\P{^Is_ID_Continue=__T}', "");
-    Expect(0, 918000, '\p{Is_ID_Continue=__T}', "");
-    Expect(1, 918000, '\p{^Is_ID_Continue=__T}', "");
-    Expect(1, 918000, '\P{Is_ID_Continue=__T}', "");
-    Expect(0, 918000, '\P{^Is_ID_Continue=__T}', "");
-    Error('\p{Is_IDC=/a/	true}');
-    Error('\P{Is_IDC=/a/	true}');
+    Expect(1, 917999, '\p{Is_ID_Continue=	T}', "");
+    Expect(0, 917999, '\p{^Is_ID_Continue=	T}', "");
+    Expect(0, 917999, '\P{Is_ID_Continue=	T}', "");
+    Expect(1, 917999, '\P{^Is_ID_Continue=	T}', "");
+    Expect(0, 918000, '\p{Is_ID_Continue=	T}', "");
+    Expect(1, 918000, '\p{^Is_ID_Continue=	T}', "");
+    Expect(1, 918000, '\P{Is_ID_Continue=	T}', "");
+    Expect(0, 918000, '\P{^Is_ID_Continue=	T}', "");
+    Error('\p{Is_IDC=	 true:=}');
+    Error('\P{Is_IDC=	 true:=}');
     Expect(1, 917999, '\p{Is_IDC=true}', "");
     Expect(0, 917999, '\p{^Is_IDC=true}', "");
     Expect(0, 917999, '\P{Is_IDC=true}', "");
@@ -45917,100 +46477,100 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_IDC=true}', "");
     Expect(1, 918000, '\P{Is_IDC=true}', "");
     Expect(0, 918000, '\P{^Is_IDC=true}', "");
-    Expect(1, 917999, '\p{Is_IDC= True}', "");
-    Expect(0, 917999, '\p{^Is_IDC= True}', "");
-    Expect(0, 917999, '\P{Is_IDC= True}', "");
-    Expect(1, 917999, '\P{^Is_IDC= True}', "");
-    Expect(0, 918000, '\p{Is_IDC= True}', "");
-    Expect(1, 918000, '\p{^Is_IDC= True}', "");
-    Expect(1, 918000, '\P{Is_IDC= True}', "");
-    Expect(0, 918000, '\P{^Is_IDC= True}', "");
+    Expect(1, 917999, '\p{Is_IDC= -True}', "");
+    Expect(0, 917999, '\p{^Is_IDC= -True}', "");
+    Expect(0, 917999, '\P{Is_IDC= -True}', "");
+    Expect(1, 917999, '\P{^Is_IDC= -True}', "");
+    Expect(0, 918000, '\p{Is_IDC= -True}', "");
+    Expect(1, 918000, '\p{^Is_IDC= -True}', "");
+    Expect(1, 918000, '\P{Is_IDC= -True}', "");
+    Expect(0, 918000, '\P{^Is_IDC= -True}', "");
     Error('\p{identifierstatus}');
     Error('\P{identifierstatus}');
-    Error('\p{Identifier_Status=	-allowed:=}');
-    Error('\P{Identifier_Status=	-allowed:=}');
-    Expect(1, 201546, '\p{Identifier_Status=:\AAllowed\z:}', "");;
-    Expect(0, 201547, '\p{Identifier_Status=:\AAllowed\z:}', "");;
-    Expect(1, 201546, '\p{Identifier_Status=allowed}', "");
-    Expect(0, 201546, '\p{^Identifier_Status=allowed}', "");
-    Expect(0, 201546, '\P{Identifier_Status=allowed}', "");
-    Expect(1, 201546, '\P{^Identifier_Status=allowed}', "");
-    Expect(0, 201547, '\p{Identifier_Status=allowed}', "");
-    Expect(1, 201547, '\p{^Identifier_Status=allowed}', "");
-    Expect(1, 201547, '\P{Identifier_Status=allowed}', "");
-    Expect(0, 201547, '\P{^Identifier_Status=allowed}', "");
-    Expect(1, 201546, '\p{Identifier_Status=:\Aallowed\z:}', "");;
-    Expect(0, 201547, '\p{Identifier_Status=:\Aallowed\z:}', "");;
-    Expect(1, 201546, '\p{Identifier_Status=--Allowed}', "");
-    Expect(0, 201546, '\p{^Identifier_Status=--Allowed}', "");
-    Expect(0, 201546, '\P{Identifier_Status=--Allowed}', "");
-    Expect(1, 201546, '\P{^Identifier_Status=--Allowed}', "");
-    Expect(0, 201547, '\p{Identifier_Status=--Allowed}', "");
-    Expect(1, 201547, '\p{^Identifier_Status=--Allowed}', "");
-    Expect(1, 201547, '\P{Identifier_Status=--Allowed}', "");
-    Expect(0, 201547, '\P{^Identifier_Status=--Allowed}', "");
-    Error('\p{Is_Identifier_Status=/a/_ allowed}');
-    Error('\P{Is_Identifier_Status=/a/_ allowed}');
-    Expect(1, 201546, '\p{Is_Identifier_Status=allowed}', "");
-    Expect(0, 201546, '\p{^Is_Identifier_Status=allowed}', "");
-    Expect(0, 201546, '\P{Is_Identifier_Status=allowed}', "");
-    Expect(1, 201546, '\P{^Is_Identifier_Status=allowed}', "");
-    Expect(0, 201547, '\p{Is_Identifier_Status=allowed}', "");
-    Expect(1, 201547, '\p{^Is_Identifier_Status=allowed}', "");
-    Expect(1, 201547, '\P{Is_Identifier_Status=allowed}', "");
-    Expect(0, 201547, '\P{^Is_Identifier_Status=allowed}', "");
-    Expect(1, 201546, '\p{Is_Identifier_Status=__ALLOWED}', "");
-    Expect(0, 201546, '\p{^Is_Identifier_Status=__ALLOWED}', "");
-    Expect(0, 201546, '\P{Is_Identifier_Status=__ALLOWED}', "");
-    Expect(1, 201546, '\P{^Is_Identifier_Status=__ALLOWED}', "");
-    Expect(0, 201547, '\p{Is_Identifier_Status=__ALLOWED}', "");
-    Expect(1, 201547, '\p{^Is_Identifier_Status=__ALLOWED}', "");
-    Expect(1, 201547, '\P{Is_Identifier_Status=__ALLOWED}', "");
-    Expect(0, 201547, '\P{^Is_Identifier_Status=__ALLOWED}', "");
-    Error('\p{Identifier_Status: 	/a/restricted}');
-    Error('\P{Identifier_Status: 	/a/restricted}');
-    Expect(1, 201547, '\p{Identifier_Status=:\ARestricted\z:}', "");;
-    Expect(0, 201546, '\p{Identifier_Status=:\ARestricted\z:}', "");;
-    Expect(1, 201547, '\p{Identifier_Status=restricted}', "");
-    Expect(0, 201547, '\p{^Identifier_Status=restricted}', "");
-    Expect(0, 201547, '\P{Identifier_Status=restricted}', "");
-    Expect(1, 201547, '\P{^Identifier_Status=restricted}', "");
-    Expect(0, 201546, '\p{Identifier_Status=restricted}', "");
-    Expect(1, 201546, '\p{^Identifier_Status=restricted}', "");
-    Expect(1, 201546, '\P{Identifier_Status=restricted}', "");
-    Expect(0, 201546, '\P{^Identifier_Status=restricted}', "");
-    Expect(1, 201547, '\p{Identifier_Status=:\Arestricted\z:}', "");;
-    Expect(0, 201546, '\p{Identifier_Status=:\Arestricted\z:}', "");;
-    Expect(1, 201547, '\p{Identifier_Status=_-Restricted}', "");
-    Expect(0, 201547, '\p{^Identifier_Status=_-Restricted}', "");
-    Expect(0, 201547, '\P{Identifier_Status=_-Restricted}', "");
-    Expect(1, 201547, '\P{^Identifier_Status=_-Restricted}', "");
-    Expect(0, 201546, '\p{Identifier_Status=_-Restricted}', "");
-    Expect(1, 201546, '\p{^Identifier_Status=_-Restricted}', "");
-    Expect(1, 201546, '\P{Identifier_Status=_-Restricted}', "");
-    Expect(0, 201546, '\P{^Identifier_Status=_-Restricted}', "");
-    Error('\p{Is_Identifier_Status=-_RESTRICTED:=}');
-    Error('\P{Is_Identifier_Status=-_RESTRICTED:=}');
-    Expect(1, 201547, '\p{Is_Identifier_Status: restricted}', "");
-    Expect(0, 201547, '\p{^Is_Identifier_Status: restricted}', "");
-    Expect(0, 201547, '\P{Is_Identifier_Status: restricted}', "");
-    Expect(1, 201547, '\P{^Is_Identifier_Status: restricted}', "");
-    Expect(0, 201546, '\p{Is_Identifier_Status: restricted}', "");
-    Expect(1, 201546, '\p{^Is_Identifier_Status: restricted}', "");
-    Expect(1, 201546, '\P{Is_Identifier_Status: restricted}', "");
-    Expect(0, 201546, '\P{^Is_Identifier_Status: restricted}', "");
-    Expect(1, 201547, '\p{Is_Identifier_Status=	_Restricted}', "");
-    Expect(0, 201547, '\p{^Is_Identifier_Status=	_Restricted}', "");
-    Expect(0, 201547, '\P{Is_Identifier_Status=	_Restricted}', "");
-    Expect(1, 201547, '\P{^Is_Identifier_Status=	_Restricted}', "");
-    Expect(0, 201546, '\p{Is_Identifier_Status=	_Restricted}', "");
-    Expect(1, 201546, '\p{^Is_Identifier_Status=	_Restricted}', "");
-    Expect(1, 201546, '\P{Is_Identifier_Status=	_Restricted}', "");
-    Expect(0, 201546, '\P{^Is_Identifier_Status=	_Restricted}', "");
+    Error('\p{Identifier_Status=_Allowed:=}');
+    Error('\P{Identifier_Status=_Allowed:=}');
+    Expect(1, 205743, '\p{Identifier_Status=:\AAllowed\z:}', "");;
+    Expect(0, 205744, '\p{Identifier_Status=:\AAllowed\z:}', "");;
+    Expect(1, 205743, '\p{Identifier_Status=allowed}', "");
+    Expect(0, 205743, '\p{^Identifier_Status=allowed}', "");
+    Expect(0, 205743, '\P{Identifier_Status=allowed}', "");
+    Expect(1, 205743, '\P{^Identifier_Status=allowed}', "");
+    Expect(0, 205744, '\p{Identifier_Status=allowed}', "");
+    Expect(1, 205744, '\p{^Identifier_Status=allowed}', "");
+    Expect(1, 205744, '\P{Identifier_Status=allowed}', "");
+    Expect(0, 205744, '\P{^Identifier_Status=allowed}', "");
+    Expect(1, 205743, '\p{Identifier_Status=:\Aallowed\z:}', "");;
+    Expect(0, 205744, '\p{Identifier_Status=:\Aallowed\z:}', "");;
+    Expect(1, 205743, '\p{Identifier_Status=_Allowed}', "");
+    Expect(0, 205743, '\p{^Identifier_Status=_Allowed}', "");
+    Expect(0, 205743, '\P{Identifier_Status=_Allowed}', "");
+    Expect(1, 205743, '\P{^Identifier_Status=_Allowed}', "");
+    Expect(0, 205744, '\p{Identifier_Status=_Allowed}', "");
+    Expect(1, 205744, '\p{^Identifier_Status=_Allowed}', "");
+    Expect(1, 205744, '\P{Identifier_Status=_Allowed}', "");
+    Expect(0, 205744, '\P{^Identifier_Status=_Allowed}', "");
+    Error('\p{Is_Identifier_Status:   	/a/Allowed}');
+    Error('\P{Is_Identifier_Status:   	/a/Allowed}');
+    Expect(1, 205743, '\p{Is_Identifier_Status=allowed}', "");
+    Expect(0, 205743, '\p{^Is_Identifier_Status=allowed}', "");
+    Expect(0, 205743, '\P{Is_Identifier_Status=allowed}', "");
+    Expect(1, 205743, '\P{^Is_Identifier_Status=allowed}', "");
+    Expect(0, 205744, '\p{Is_Identifier_Status=allowed}', "");
+    Expect(1, 205744, '\p{^Is_Identifier_Status=allowed}', "");
+    Expect(1, 205744, '\P{Is_Identifier_Status=allowed}', "");
+    Expect(0, 205744, '\P{^Is_Identifier_Status=allowed}', "");
+    Expect(1, 205743, '\p{Is_Identifier_Status=_	allowed}', "");
+    Expect(0, 205743, '\p{^Is_Identifier_Status=_	allowed}', "");
+    Expect(0, 205743, '\P{Is_Identifier_Status=_	allowed}', "");
+    Expect(1, 205743, '\P{^Is_Identifier_Status=_	allowed}', "");
+    Expect(0, 205744, '\p{Is_Identifier_Status=_	allowed}', "");
+    Expect(1, 205744, '\p{^Is_Identifier_Status=_	allowed}', "");
+    Expect(1, 205744, '\P{Is_Identifier_Status=_	allowed}', "");
+    Expect(0, 205744, '\P{^Is_Identifier_Status=_	allowed}', "");
+    Error('\p{Identifier_Status=-_Restricted/a/}');
+    Error('\P{Identifier_Status=-_Restricted/a/}');
+    Expect(1, 205744, '\p{Identifier_Status=:\ARestricted\z:}', "");;
+    Expect(0, 205743, '\p{Identifier_Status=:\ARestricted\z:}', "");;
+    Expect(1, 205744, '\p{Identifier_Status=restricted}', "");
+    Expect(0, 205744, '\p{^Identifier_Status=restricted}', "");
+    Expect(0, 205744, '\P{Identifier_Status=restricted}', "");
+    Expect(1, 205744, '\P{^Identifier_Status=restricted}', "");
+    Expect(0, 205743, '\p{Identifier_Status=restricted}', "");
+    Expect(1, 205743, '\p{^Identifier_Status=restricted}', "");
+    Expect(1, 205743, '\P{Identifier_Status=restricted}', "");
+    Expect(0, 205743, '\P{^Identifier_Status=restricted}', "");
+    Expect(1, 205744, '\p{Identifier_Status=:\Arestricted\z:}', "");;
+    Expect(0, 205743, '\p{Identifier_Status=:\Arestricted\z:}', "");;
+    Expect(1, 205744, '\p{Identifier_Status=	 Restricted}', "");
+    Expect(0, 205744, '\p{^Identifier_Status=	 Restricted}', "");
+    Expect(0, 205744, '\P{Identifier_Status=	 Restricted}', "");
+    Expect(1, 205744, '\P{^Identifier_Status=	 Restricted}', "");
+    Expect(0, 205743, '\p{Identifier_Status=	 Restricted}', "");
+    Expect(1, 205743, '\p{^Identifier_Status=	 Restricted}', "");
+    Expect(1, 205743, '\P{Identifier_Status=	 Restricted}', "");
+    Expect(0, 205743, '\P{^Identifier_Status=	 Restricted}', "");
+    Error('\p{Is_Identifier_Status=	:=Restricted}');
+    Error('\P{Is_Identifier_Status=	:=Restricted}');
+    Expect(1, 205744, '\p{Is_Identifier_Status=restricted}', "");
+    Expect(0, 205744, '\p{^Is_Identifier_Status=restricted}', "");
+    Expect(0, 205744, '\P{Is_Identifier_Status=restricted}', "");
+    Expect(1, 205744, '\P{^Is_Identifier_Status=restricted}', "");
+    Expect(0, 205743, '\p{Is_Identifier_Status=restricted}', "");
+    Expect(1, 205743, '\p{^Is_Identifier_Status=restricted}', "");
+    Expect(1, 205743, '\P{Is_Identifier_Status=restricted}', "");
+    Expect(0, 205743, '\P{^Is_Identifier_Status=restricted}', "");
+    Expect(1, 205744, '\p{Is_Identifier_Status=	-Restricted}', "");
+    Expect(0, 205744, '\p{^Is_Identifier_Status=	-Restricted}', "");
+    Expect(0, 205744, '\P{Is_Identifier_Status=	-Restricted}', "");
+    Expect(1, 205744, '\P{^Is_Identifier_Status=	-Restricted}', "");
+    Expect(0, 205743, '\p{Is_Identifier_Status=	-Restricted}', "");
+    Expect(1, 205743, '\p{^Is_Identifier_Status=	-Restricted}', "");
+    Expect(1, 205743, '\P{Is_Identifier_Status=	-Restricted}', "");
+    Expect(0, 205743, '\P{^Is_Identifier_Status=	-Restricted}', "");
     Error('\p{identifiertype}');
     Error('\P{identifiertype}');
-    Error('\p{Identifier_Type= Default_IGNORABLE:=}');
-    Error('\P{Identifier_Type= Default_IGNORABLE:=}');
+    Error('\p{Identifier_Type=:=		Default_Ignorable}');
+    Error('\P{Identifier_Type=:=		Default_Ignorable}');
     Expect(1, 917999, '\p{Identifier_Type=:\ADefault_Ignorable\z:}', "");;
     Expect(0, 918000, '\p{Identifier_Type=:\ADefault_Ignorable\z:}', "");;
     Expect(1, 917999, '\p{Identifier_Type=defaultignorable}', "");
@@ -46023,34 +46583,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Identifier_Type=defaultignorable}', "");
     Expect(1, 917999, '\p{Identifier_Type=:\Adefaultignorable\z:}', "");;
     Expect(0, 918000, '\p{Identifier_Type=:\Adefaultignorable\z:}', "");;
-    Expect(1, 917999, '\p{Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(0, 917999, '\p{^Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(0, 917999, '\P{Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(1, 917999, '\P{^Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(0, 918000, '\p{Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(1, 918000, '\p{^Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(1, 918000, '\P{Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Expect(0, 918000, '\P{^Identifier_Type=	-DEFAULT_IGNORABLE}', "");
-    Error('\p{Is_Identifier_Type=- default_ignorable:=}');
-    Error('\P{Is_Identifier_Type=- default_ignorable:=}');
-    Expect(1, 917999, '\p{Is_Identifier_Type:   defaultignorable}', "");
-    Expect(0, 917999, '\p{^Is_Identifier_Type:   defaultignorable}', "");
-    Expect(0, 917999, '\P{Is_Identifier_Type:   defaultignorable}', "");
-    Expect(1, 917999, '\P{^Is_Identifier_Type:   defaultignorable}', "");
-    Expect(0, 918000, '\p{Is_Identifier_Type:   defaultignorable}', "");
-    Expect(1, 918000, '\p{^Is_Identifier_Type:   defaultignorable}', "");
-    Expect(1, 918000, '\P{Is_Identifier_Type:   defaultignorable}', "");
-    Expect(0, 918000, '\P{^Is_Identifier_Type:   defaultignorable}', "");
-    Expect(1, 917999, '\p{Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(0, 917999, '\p{^Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(0, 917999, '\P{Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(1, 917999, '\P{^Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(0, 918000, '\p{Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(1, 918000, '\p{^Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(1, 918000, '\P{Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Expect(0, 918000, '\P{^Is_Identifier_Type=-_DEFAULT_ignorable}', "");
-    Error('\p{Identifier_Type=:=  deprecated}');
-    Error('\P{Identifier_Type=:=  deprecated}');
+    Expect(1, 917999, '\p{Identifier_Type=	Default_Ignorable}', "");
+    Expect(0, 917999, '\p{^Identifier_Type=	Default_Ignorable}', "");
+    Expect(0, 917999, '\P{Identifier_Type=	Default_Ignorable}', "");
+    Expect(1, 917999, '\P{^Identifier_Type=	Default_Ignorable}', "");
+    Expect(0, 918000, '\p{Identifier_Type=	Default_Ignorable}', "");
+    Expect(1, 918000, '\p{^Identifier_Type=	Default_Ignorable}', "");
+    Expect(1, 918000, '\P{Identifier_Type=	Default_Ignorable}', "");
+    Expect(0, 918000, '\P{^Identifier_Type=	Default_Ignorable}', "");
+    Error('\p{Is_Identifier_Type=/a/		Default_Ignorable}');
+    Error('\P{Is_Identifier_Type=/a/		Default_Ignorable}');
+    Expect(1, 917999, '\p{Is_Identifier_Type=defaultignorable}', "");
+    Expect(0, 917999, '\p{^Is_Identifier_Type=defaultignorable}', "");
+    Expect(0, 917999, '\P{Is_Identifier_Type=defaultignorable}', "");
+    Expect(1, 917999, '\P{^Is_Identifier_Type=defaultignorable}', "");
+    Expect(0, 918000, '\p{Is_Identifier_Type=defaultignorable}', "");
+    Expect(1, 918000, '\p{^Is_Identifier_Type=defaultignorable}', "");
+    Expect(1, 918000, '\P{Is_Identifier_Type=defaultignorable}', "");
+    Expect(0, 918000, '\P{^Is_Identifier_Type=defaultignorable}', "");
+    Expect(1, 917999, '\p{Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(0, 917999, '\p{^Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(0, 917999, '\P{Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(1, 917999, '\P{^Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(0, 918000, '\p{Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(1, 918000, '\p{^Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(1, 918000, '\P{Is_Identifier_Type=__Default_Ignorable}', "");
+    Expect(0, 918000, '\P{^Is_Identifier_Type=__Default_Ignorable}', "");
+    Error('\p{Identifier_Type=/a/-	Deprecated}');
+    Error('\P{Identifier_Type=/a/-	Deprecated}');
     Expect(1, 917505, '\p{Identifier_Type=:\ADeprecated\z:}', "");;
     Expect(0, 917506, '\p{Identifier_Type=:\ADeprecated\z:}', "");;
     Expect(1, 917505, '\p{Identifier_Type=deprecated}', "");
@@ -46063,16 +46623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917506, '\P{^Identifier_Type=deprecated}', "");
     Expect(1, 917505, '\p{Identifier_Type=:\Adeprecated\z:}', "");;
     Expect(0, 917506, '\p{Identifier_Type=:\Adeprecated\z:}', "");;
-    Expect(1, 917505, '\p{Identifier_Type=-_DEPRECATED}', "");
-    Expect(0, 917505, '\p{^Identifier_Type=-_DEPRECATED}', "");
-    Expect(0, 917505, '\P{Identifier_Type=-_DEPRECATED}', "");
-    Expect(1, 917505, '\P{^Identifier_Type=-_DEPRECATED}', "");
-    Expect(0, 917506, '\p{Identifier_Type=-_DEPRECATED}', "");
-    Expect(1, 917506, '\p{^Identifier_Type=-_DEPRECATED}', "");
-    Expect(1, 917506, '\P{Identifier_Type=-_DEPRECATED}', "");
-    Expect(0, 917506, '\P{^Identifier_Type=-_DEPRECATED}', "");
-    Error('\p{Is_Identifier_Type=-/a/Deprecated}');
-    Error('\P{Is_Identifier_Type=-/a/Deprecated}');
+    Expect(1, 917505, '\p{Identifier_Type=  Deprecated}', "");
+    Expect(0, 917505, '\p{^Identifier_Type=  Deprecated}', "");
+    Expect(0, 917505, '\P{Identifier_Type=  Deprecated}', "");
+    Expect(1, 917505, '\P{^Identifier_Type=  Deprecated}', "");
+    Expect(0, 917506, '\p{Identifier_Type=  Deprecated}', "");
+    Expect(1, 917506, '\p{^Identifier_Type=  Deprecated}', "");
+    Expect(1, 917506, '\P{Identifier_Type=  Deprecated}', "");
+    Expect(0, 917506, '\P{^Identifier_Type=  Deprecated}', "");
+    Error('\p{Is_Identifier_Type:   Deprecated/a/}');
+    Error('\P{Is_Identifier_Type:   Deprecated/a/}');
     Expect(1, 917505, '\p{Is_Identifier_Type=deprecated}', "");
     Expect(0, 917505, '\p{^Is_Identifier_Type=deprecated}', "");
     Expect(0, 917505, '\P{Is_Identifier_Type=deprecated}', "");
@@ -46081,16 +46641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917506, '\p{^Is_Identifier_Type=deprecated}', "");
     Expect(1, 917506, '\P{Is_Identifier_Type=deprecated}', "");
     Expect(0, 917506, '\P{^Is_Identifier_Type=deprecated}', "");
-    Expect(1, 917505, '\p{Is_Identifier_Type=	-deprecated}', "");
-    Expect(0, 917505, '\p{^Is_Identifier_Type=	-deprecated}', "");
-    Expect(0, 917505, '\P{Is_Identifier_Type=	-deprecated}', "");
-    Expect(1, 917505, '\P{^Is_Identifier_Type=	-deprecated}', "");
-    Expect(0, 917506, '\p{Is_Identifier_Type=	-deprecated}', "");
-    Expect(1, 917506, '\p{^Is_Identifier_Type=	-deprecated}', "");
-    Expect(1, 917506, '\P{Is_Identifier_Type=	-deprecated}', "");
-    Expect(0, 917506, '\P{^Is_Identifier_Type=	-deprecated}', "");
-    Error('\p{Identifier_Type=/a/exclusion}');
-    Error('\P{Identifier_Type=/a/exclusion}');
+    Expect(1, 917505, '\p{Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(0, 917505, '\p{^Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(0, 917505, '\P{Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(1, 917505, '\P{^Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(0, 917506, '\p{Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(1, 917506, '\p{^Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(1, 917506, '\P{Is_Identifier_Type:  DEPRECATED}', "");
+    Expect(0, 917506, '\P{^Is_Identifier_Type:  DEPRECATED}', "");
+    Error('\p{Identifier_Type=/a/Exclusion}');
+    Error('\P{Identifier_Type=/a/Exclusion}');
     Expect(1, 125142, '\p{Identifier_Type=:\AExclusion\z:}', "");;
     Expect(0, 125143, '\p{Identifier_Type=:\AExclusion\z:}', "");;
     Expect(1, 125142, '\p{Identifier_Type=exclusion}', "");
@@ -46111,8 +46671,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125143, '\p{^Identifier_Type=	 Exclusion}', "");
     Expect(1, 125143, '\P{Identifier_Type=	 Exclusion}', "");
     Expect(0, 125143, '\P{^Identifier_Type=	 Exclusion}', "");
-    Error('\p{Is_Identifier_Type=		Exclusion:=}');
-    Error('\P{Is_Identifier_Type=		Exclusion:=}');
+    Error('\p{Is_Identifier_Type=-Exclusion:=}');
+    Error('\P{Is_Identifier_Type=-Exclusion:=}');
     Expect(1, 125142, '\p{Is_Identifier_Type=exclusion}', "");
     Expect(0, 125142, '\p{^Is_Identifier_Type=exclusion}', "");
     Expect(0, 125142, '\P{Is_Identifier_Type=exclusion}', "");
@@ -46121,16 +46681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125143, '\p{^Is_Identifier_Type=exclusion}', "");
     Expect(1, 125143, '\P{Is_Identifier_Type=exclusion}', "");
     Expect(0, 125143, '\P{^Is_Identifier_Type=exclusion}', "");
-    Expect(1, 125142, '\p{Is_Identifier_Type=_	Exclusion}', "");
-    Expect(0, 125142, '\p{^Is_Identifier_Type=_	Exclusion}', "");
-    Expect(0, 125142, '\P{Is_Identifier_Type=_	Exclusion}', "");
-    Expect(1, 125142, '\P{^Is_Identifier_Type=_	Exclusion}', "");
-    Expect(0, 125143, '\p{Is_Identifier_Type=_	Exclusion}', "");
-    Expect(1, 125143, '\p{^Is_Identifier_Type=_	Exclusion}', "");
-    Expect(1, 125143, '\P{Is_Identifier_Type=_	Exclusion}', "");
-    Expect(0, 125143, '\P{^Is_Identifier_Type=_	Exclusion}', "");
-    Error('\p{Identifier_Type=  Inclusion/a/}');
-    Error('\P{Identifier_Type=  Inclusion/a/}');
+    Expect(1, 125142, '\p{Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(0, 125142, '\p{^Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(0, 125142, '\P{Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(1, 125142, '\P{^Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(0, 125143, '\p{Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(1, 125143, '\p{^Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(1, 125143, '\P{Is_Identifier_Type=	-EXCLUSION}', "");
+    Expect(0, 125143, '\P{^Is_Identifier_Type=	-EXCLUSION}', "");
+    Error('\p{Identifier_Type=_:=INCLUSION}');
+    Error('\P{Identifier_Type=_:=INCLUSION}');
     Expect(1, 12539, '\p{Identifier_Type=:\AInclusion\z:}', "");;
     Expect(0, 12540, '\p{Identifier_Type=:\AInclusion\z:}', "");;
     Expect(1, 12539, '\p{Identifier_Type=inclusion}', "");
@@ -46143,16 +46703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12540, '\P{^Identifier_Type=inclusion}', "");
     Expect(1, 12539, '\p{Identifier_Type=:\Ainclusion\z:}', "");;
     Expect(0, 12540, '\p{Identifier_Type=:\Ainclusion\z:}', "");;
-    Expect(1, 12539, '\p{Identifier_Type= inclusion}', "");
-    Expect(0, 12539, '\p{^Identifier_Type= inclusion}', "");
-    Expect(0, 12539, '\P{Identifier_Type= inclusion}', "");
-    Expect(1, 12539, '\P{^Identifier_Type= inclusion}', "");
-    Expect(0, 12540, '\p{Identifier_Type= inclusion}', "");
-    Expect(1, 12540, '\p{^Identifier_Type= inclusion}', "");
-    Expect(1, 12540, '\P{Identifier_Type= inclusion}', "");
-    Expect(0, 12540, '\P{^Identifier_Type= inclusion}', "");
-    Error('\p{Is_Identifier_Type=/a/_	Inclusion}');
-    Error('\P{Is_Identifier_Type=/a/_	Inclusion}');
+    Expect(1, 12539, '\p{Identifier_Type=__INCLUSION}', "");
+    Expect(0, 12539, '\p{^Identifier_Type=__INCLUSION}', "");
+    Expect(0, 12539, '\P{Identifier_Type=__INCLUSION}', "");
+    Expect(1, 12539, '\P{^Identifier_Type=__INCLUSION}', "");
+    Expect(0, 12540, '\p{Identifier_Type=__INCLUSION}', "");
+    Expect(1, 12540, '\p{^Identifier_Type=__INCLUSION}', "");
+    Expect(1, 12540, '\P{Identifier_Type=__INCLUSION}', "");
+    Expect(0, 12540, '\P{^Identifier_Type=__INCLUSION}', "");
+    Error('\p{Is_Identifier_Type=_	Inclusion/a/}');
+    Error('\P{Is_Identifier_Type=_	Inclusion/a/}');
     Expect(1, 12539, '\p{Is_Identifier_Type=inclusion}', "");
     Expect(0, 12539, '\p{^Is_Identifier_Type=inclusion}', "");
     Expect(0, 12539, '\P{Is_Identifier_Type=inclusion}', "");
@@ -46161,16 +46721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12540, '\p{^Is_Identifier_Type=inclusion}', "");
     Expect(1, 12540, '\P{Is_Identifier_Type=inclusion}', "");
     Expect(0, 12540, '\P{^Is_Identifier_Type=inclusion}', "");
-    Expect(1, 12539, '\p{Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(0, 12539, '\p{^Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(0, 12539, '\P{Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(1, 12539, '\P{^Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(0, 12540, '\p{Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(1, 12540, '\p{^Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(1, 12540, '\P{Is_Identifier_Type= 	INCLUSION}', "");
-    Expect(0, 12540, '\P{^Is_Identifier_Type= 	INCLUSION}', "");
-    Error('\p{Identifier_Type=__limited_Use:=}');
-    Error('\P{Identifier_Type=__limited_Use:=}');
+    Expect(1, 12539, '\p{Is_Identifier_Type=_-inclusion}', "");
+    Expect(0, 12539, '\p{^Is_Identifier_Type=_-inclusion}', "");
+    Expect(0, 12539, '\P{Is_Identifier_Type=_-inclusion}', "");
+    Expect(1, 12539, '\P{^Is_Identifier_Type=_-inclusion}', "");
+    Expect(0, 12540, '\p{Is_Identifier_Type=_-inclusion}', "");
+    Expect(1, 12540, '\p{^Is_Identifier_Type=_-inclusion}', "");
+    Expect(1, 12540, '\P{Is_Identifier_Type=_-inclusion}', "");
+    Expect(0, 12540, '\P{^Is_Identifier_Type=_-inclusion}', "");
+    Error('\p{Identifier_Type=_:=limited_Use}');
+    Error('\P{Identifier_Type=_:=limited_Use}');
     Expect(1, 125279, '\p{Identifier_Type=:\ALimited_Use\z:}', "");;
     Expect(0, 125280, '\p{Identifier_Type=:\ALimited_Use\z:}', "");;
     Expect(1, 125279, '\p{Identifier_Type=limiteduse}', "");
@@ -46183,16 +46743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^Identifier_Type=limiteduse}', "");
     Expect(1, 125279, '\p{Identifier_Type=:\Alimiteduse\z:}', "");;
     Expect(0, 125280, '\p{Identifier_Type=:\Alimiteduse\z:}', "");;
-    Expect(1, 125279, '\p{Identifier_Type=-limited_Use}', "");
-    Expect(0, 125279, '\p{^Identifier_Type=-limited_Use}', "");
-    Expect(0, 125279, '\P{Identifier_Type=-limited_Use}', "");
-    Expect(1, 125279, '\P{^Identifier_Type=-limited_Use}', "");
-    Expect(0, 125280, '\p{Identifier_Type=-limited_Use}', "");
-    Expect(1, 125280, '\p{^Identifier_Type=-limited_Use}', "");
-    Expect(1, 125280, '\P{Identifier_Type=-limited_Use}', "");
-    Expect(0, 125280, '\P{^Identifier_Type=-limited_Use}', "");
-    Error('\p{Is_Identifier_Type=:=- LIMITED_Use}');
-    Error('\P{Is_Identifier_Type=:=- LIMITED_Use}');
+    Expect(1, 125279, '\p{Identifier_Type=	LIMITED_use}', "");
+    Expect(0, 125279, '\p{^Identifier_Type=	LIMITED_use}', "");
+    Expect(0, 125279, '\P{Identifier_Type=	LIMITED_use}', "");
+    Expect(1, 125279, '\P{^Identifier_Type=	LIMITED_use}', "");
+    Expect(0, 125280, '\p{Identifier_Type=	LIMITED_use}', "");
+    Expect(1, 125280, '\p{^Identifier_Type=	LIMITED_use}', "");
+    Expect(1, 125280, '\P{Identifier_Type=	LIMITED_use}', "");
+    Expect(0, 125280, '\P{^Identifier_Type=	LIMITED_use}', "");
+    Error('\p{Is_Identifier_Type=/a/_Limited_use}');
+    Error('\P{Is_Identifier_Type=/a/_Limited_use}');
     Expect(1, 125279, '\p{Is_Identifier_Type=limiteduse}', "");
     Expect(0, 125279, '\p{^Is_Identifier_Type=limiteduse}', "");
     Expect(0, 125279, '\P{Is_Identifier_Type=limiteduse}', "");
@@ -46201,16 +46761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125280, '\p{^Is_Identifier_Type=limiteduse}', "");
     Expect(1, 125280, '\P{Is_Identifier_Type=limiteduse}', "");
     Expect(0, 125280, '\P{^Is_Identifier_Type=limiteduse}', "");
-    Expect(1, 125279, '\p{Is_Identifier_Type: _	limited_USE}', "");
-    Expect(0, 125279, '\p{^Is_Identifier_Type: _	limited_USE}', "");
-    Expect(0, 125279, '\P{Is_Identifier_Type: _	limited_USE}', "");
-    Expect(1, 125279, '\P{^Is_Identifier_Type: _	limited_USE}', "");
-    Expect(0, 125280, '\p{Is_Identifier_Type: _	limited_USE}', "");
-    Expect(1, 125280, '\p{^Is_Identifier_Type: _	limited_USE}', "");
-    Expect(1, 125280, '\P{Is_Identifier_Type: _	limited_USE}', "");
-    Expect(0, 125280, '\P{^Is_Identifier_Type: _	limited_USE}', "");
-    Error('\p{Identifier_Type=:= _NOT_character}');
-    Error('\P{Identifier_Type=:= _NOT_character}');
+    Expect(1, 125279, '\p{Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(0, 125279, '\p{^Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(0, 125279, '\P{Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(1, 125279, '\P{^Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(0, 125280, '\p{Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(1, 125280, '\p{^Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(1, 125280, '\P{Is_Identifier_Type=_	LIMITED_Use}', "");
+    Expect(0, 125280, '\P{^Is_Identifier_Type=_	LIMITED_Use}', "");
+    Error('\p{Identifier_Type=/a/		not_Character}');
+    Error('\P{Identifier_Type=/a/		not_Character}');
     Expect(1, 918000, '\p{Identifier_Type=:\ANot_Character\z:}', "");;
     Expect(0, 917999, '\p{Identifier_Type=:\ANot_Character\z:}', "");;
     Expect(1, 918000, '\p{Identifier_Type=notcharacter}', "");
@@ -46223,16 +46783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^Identifier_Type=notcharacter}', "");
     Expect(1, 918000, '\p{Identifier_Type=:\Anotcharacter\z:}', "");;
     Expect(0, 917999, '\p{Identifier_Type=:\Anotcharacter\z:}', "");;
-    Expect(1, 918000, '\p{Identifier_Type=_ Not_Character}', "");
-    Expect(0, 918000, '\p{^Identifier_Type=_ Not_Character}', "");
-    Expect(0, 918000, '\P{Identifier_Type=_ Not_Character}', "");
-    Expect(1, 918000, '\P{^Identifier_Type=_ Not_Character}', "");
-    Expect(0, 917999, '\p{Identifier_Type=_ Not_Character}', "");
-    Expect(1, 917999, '\p{^Identifier_Type=_ Not_Character}', "");
-    Expect(1, 917999, '\P{Identifier_Type=_ Not_Character}', "");
-    Expect(0, 917999, '\P{^Identifier_Type=_ Not_Character}', "");
-    Error('\p{Is_Identifier_Type=/a/_ Not_Character}');
-    Error('\P{Is_Identifier_Type=/a/_ Not_Character}');
+    Expect(1, 918000, '\p{Identifier_Type= Not_Character}', "");
+    Expect(0, 918000, '\p{^Identifier_Type= Not_Character}', "");
+    Expect(0, 918000, '\P{Identifier_Type= Not_Character}', "");
+    Expect(1, 918000, '\P{^Identifier_Type= Not_Character}', "");
+    Expect(0, 917999, '\p{Identifier_Type= Not_Character}', "");
+    Expect(1, 917999, '\p{^Identifier_Type= Not_Character}', "");
+    Expect(1, 917999, '\P{Identifier_Type= Not_Character}', "");
+    Expect(0, 917999, '\P{^Identifier_Type= Not_Character}', "");
+    Error('\p{Is_Identifier_Type=:=  Not_CHARACTER}');
+    Error('\P{Is_Identifier_Type=:=  Not_CHARACTER}');
     Expect(1, 918000, '\p{Is_Identifier_Type=notcharacter}', "");
     Expect(0, 918000, '\p{^Is_Identifier_Type=notcharacter}', "");
     Expect(0, 918000, '\P{Is_Identifier_Type=notcharacter}', "");
@@ -46241,16 +46801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_Identifier_Type=notcharacter}', "");
     Expect(1, 917999, '\P{Is_Identifier_Type=notcharacter}', "");
     Expect(0, 917999, '\P{^Is_Identifier_Type=notcharacter}', "");
-    Expect(1, 918000, '\p{Is_Identifier_Type=	 Not_Character}', "");
-    Expect(0, 918000, '\p{^Is_Identifier_Type=	 Not_Character}', "");
-    Expect(0, 918000, '\P{Is_Identifier_Type=	 Not_Character}', "");
-    Expect(1, 918000, '\P{^Is_Identifier_Type=	 Not_Character}', "");
-    Expect(0, 917999, '\p{Is_Identifier_Type=	 Not_Character}', "");
-    Expect(1, 917999, '\p{^Is_Identifier_Type=	 Not_Character}', "");
-    Expect(1, 917999, '\P{Is_Identifier_Type=	 Not_Character}', "");
-    Expect(0, 917999, '\P{^Is_Identifier_Type=	 Not_Character}', "");
-    Error('\p{Identifier_Type=__not_NFKC:=}');
-    Error('\P{Identifier_Type=__not_NFKC:=}');
+    Expect(1, 918000, '\p{Is_Identifier_Type= Not_Character}', "");
+    Expect(0, 918000, '\p{^Is_Identifier_Type= Not_Character}', "");
+    Expect(0, 918000, '\P{Is_Identifier_Type= Not_Character}', "");
+    Expect(1, 918000, '\P{^Is_Identifier_Type= Not_Character}', "");
+    Expect(0, 917999, '\p{Is_Identifier_Type= Not_Character}', "");
+    Expect(1, 917999, '\p{^Is_Identifier_Type= Not_Character}', "");
+    Expect(1, 917999, '\P{Is_Identifier_Type= Not_Character}', "");
+    Expect(0, 917999, '\P{^Is_Identifier_Type= Not_Character}', "");
+    Error('\p{Identifier_Type=- not_NFKC/a/}');
+    Error('\P{Identifier_Type=- not_NFKC/a/}');
     Expect(1, 195101, '\p{Identifier_Type=:\ANot_NFKC\z:}', "");;
     Expect(0, 195102, '\p{Identifier_Type=:\ANot_NFKC\z:}', "");;
     Expect(1, 195101, '\p{Identifier_Type=notnfkc}', "");
@@ -46263,16 +46823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^Identifier_Type=notnfkc}', "");
     Expect(1, 195101, '\p{Identifier_Type=:\Anotnfkc\z:}', "");;
     Expect(0, 195102, '\p{Identifier_Type=:\Anotnfkc\z:}', "");;
-    Expect(1, 195101, '\p{Identifier_Type= Not_NFKC}', "");
-    Expect(0, 195101, '\p{^Identifier_Type= Not_NFKC}', "");
-    Expect(0, 195101, '\P{Identifier_Type= Not_NFKC}', "");
-    Expect(1, 195101, '\P{^Identifier_Type= Not_NFKC}', "");
-    Expect(0, 195102, '\p{Identifier_Type= Not_NFKC}', "");
-    Expect(1, 195102, '\p{^Identifier_Type= Not_NFKC}', "");
-    Expect(1, 195102, '\P{Identifier_Type= Not_NFKC}', "");
-    Expect(0, 195102, '\P{^Identifier_Type= Not_NFKC}', "");
-    Error('\p{Is_Identifier_Type=/a/Not_NFKC}');
-    Error('\P{Is_Identifier_Type=/a/Not_NFKC}');
+    Expect(1, 195101, '\p{Identifier_Type= -Not_nfkc}', "");
+    Expect(0, 195101, '\p{^Identifier_Type= -Not_nfkc}', "");
+    Expect(0, 195101, '\P{Identifier_Type= -Not_nfkc}', "");
+    Expect(1, 195101, '\P{^Identifier_Type= -Not_nfkc}', "");
+    Expect(0, 195102, '\p{Identifier_Type= -Not_nfkc}', "");
+    Expect(1, 195102, '\p{^Identifier_Type= -Not_nfkc}', "");
+    Expect(1, 195102, '\P{Identifier_Type= -Not_nfkc}', "");
+    Expect(0, 195102, '\P{^Identifier_Type= -Not_nfkc}', "");
+    Error('\p{Is_Identifier_Type=	Not_nfkc:=}');
+    Error('\P{Is_Identifier_Type=	Not_nfkc:=}');
     Expect(1, 195101, '\p{Is_Identifier_Type=notnfkc}', "");
     Expect(0, 195101, '\p{^Is_Identifier_Type=notnfkc}', "");
     Expect(0, 195101, '\P{Is_Identifier_Type=notnfkc}', "");
@@ -46281,38 +46841,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_Identifier_Type=notnfkc}', "");
     Expect(1, 195102, '\P{Is_Identifier_Type=notnfkc}', "");
     Expect(0, 195102, '\P{^Is_Identifier_Type=notnfkc}', "");
-    Expect(1, 195101, '\p{Is_Identifier_Type=_not_nfkc}', "");
-    Expect(0, 195101, '\p{^Is_Identifier_Type=_not_nfkc}', "");
-    Expect(0, 195101, '\P{Is_Identifier_Type=_not_nfkc}', "");
-    Expect(1, 195101, '\P{^Is_Identifier_Type=_not_nfkc}', "");
-    Expect(0, 195102, '\p{Is_Identifier_Type=_not_nfkc}', "");
-    Expect(1, 195102, '\p{^Is_Identifier_Type=_not_nfkc}', "");
-    Expect(1, 195102, '\P{Is_Identifier_Type=_not_nfkc}', "");
-    Expect(0, 195102, '\P{^Is_Identifier_Type=_not_nfkc}', "");
-    Error('\p{Identifier_Type=/a/ _Not_XID}');
-    Error('\P{Identifier_Type=/a/ _Not_XID}');
+    Expect(1, 195101, '\p{Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(0, 195101, '\p{^Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(0, 195101, '\P{Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(1, 195101, '\P{^Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(0, 195102, '\p{Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(1, 195102, '\p{^Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(1, 195102, '\P{Is_Identifier_Type= -Not_NFKC}', "");
+    Expect(0, 195102, '\P{^Is_Identifier_Type= -Not_NFKC}', "");
+    Error('\p{Identifier_Type=/a/_not_XID}');
+    Error('\P{Identifier_Type=/a/_not_XID}');
     Expect(1, 129994, '\p{Identifier_Type=:\ANot_XID\z:}', "");;
     Expect(0, 129995, '\p{Identifier_Type=:\ANot_XID\z:}', "");;
-    Expect(1, 129994, '\p{Identifier_Type=notxid}', "");
-    Expect(0, 129994, '\p{^Identifier_Type=notxid}', "");
-    Expect(0, 129994, '\P{Identifier_Type=notxid}', "");
-    Expect(1, 129994, '\P{^Identifier_Type=notxid}', "");
-    Expect(0, 129995, '\p{Identifier_Type=notxid}', "");
-    Expect(1, 129995, '\p{^Identifier_Type=notxid}', "");
-    Expect(1, 129995, '\P{Identifier_Type=notxid}', "");
-    Expect(0, 129995, '\P{^Identifier_Type=notxid}', "");
+    Expect(1, 129994, '\p{Identifier_Type:   notxid}', "");
+    Expect(0, 129994, '\p{^Identifier_Type:   notxid}', "");
+    Expect(0, 129994, '\P{Identifier_Type:   notxid}', "");
+    Expect(1, 129994, '\P{^Identifier_Type:   notxid}', "");
+    Expect(0, 129995, '\p{Identifier_Type:   notxid}', "");
+    Expect(1, 129995, '\p{^Identifier_Type:   notxid}', "");
+    Expect(1, 129995, '\P{Identifier_Type:   notxid}', "");
+    Expect(0, 129995, '\P{^Identifier_Type:   notxid}', "");
     Expect(1, 129994, '\p{Identifier_Type=:\Anotxid\z:}', "");;
     Expect(0, 129995, '\p{Identifier_Type=:\Anotxid\z:}', "");;
-    Expect(1, 129994, '\p{Identifier_Type=Not_XID}', "");
-    Expect(0, 129994, '\p{^Identifier_Type=Not_XID}', "");
-    Expect(0, 129994, '\P{Identifier_Type=Not_XID}', "");
-    Expect(1, 129994, '\P{^Identifier_Type=Not_XID}', "");
-    Expect(0, 129995, '\p{Identifier_Type=Not_XID}', "");
-    Expect(1, 129995, '\p{^Identifier_Type=Not_XID}', "");
-    Expect(1, 129995, '\P{Identifier_Type=Not_XID}', "");
-    Expect(0, 129995, '\P{^Identifier_Type=Not_XID}', "");
-    Error('\p{Is_Identifier_Type:	:=		not_xid}');
-    Error('\P{Is_Identifier_Type:	:=		not_xid}');
+    Expect(1, 129994, '\p{Identifier_Type=	_NOT_XID}', "");
+    Expect(0, 129994, '\p{^Identifier_Type=	_NOT_XID}', "");
+    Expect(0, 129994, '\P{Identifier_Type=	_NOT_XID}', "");
+    Expect(1, 129994, '\P{^Identifier_Type=	_NOT_XID}', "");
+    Expect(0, 129995, '\p{Identifier_Type=	_NOT_XID}', "");
+    Expect(1, 129995, '\p{^Identifier_Type=	_NOT_XID}', "");
+    Expect(1, 129995, '\P{Identifier_Type=	_NOT_XID}', "");
+    Expect(0, 129995, '\P{^Identifier_Type=	_NOT_XID}', "");
+    Error('\p{Is_Identifier_Type= -Not_XID:=}');
+    Error('\P{Is_Identifier_Type= -Not_XID:=}');
     Expect(1, 129994, '\p{Is_Identifier_Type=notxid}', "");
     Expect(0, 129994, '\p{^Is_Identifier_Type=notxid}', "");
     Expect(0, 129994, '\P{Is_Identifier_Type=notxid}', "");
@@ -46321,16 +46881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Identifier_Type=notxid}', "");
     Expect(1, 129995, '\P{Is_Identifier_Type=notxid}', "");
     Expect(0, 129995, '\P{^Is_Identifier_Type=notxid}', "");
-    Expect(1, 129994, '\p{Is_Identifier_Type=  NOT_xid}', "");
-    Expect(0, 129994, '\p{^Is_Identifier_Type=  NOT_xid}', "");
-    Expect(0, 129994, '\P{Is_Identifier_Type=  NOT_xid}', "");
-    Expect(1, 129994, '\P{^Is_Identifier_Type=  NOT_xid}', "");
-    Expect(0, 129995, '\p{Is_Identifier_Type=  NOT_xid}', "");
-    Expect(1, 129995, '\p{^Is_Identifier_Type=  NOT_xid}', "");
-    Expect(1, 129995, '\P{Is_Identifier_Type=  NOT_xid}', "");
-    Expect(0, 129995, '\P{^Is_Identifier_Type=  NOT_xid}', "");
-    Error('\p{Identifier_Type=/a/	_obsolete}');
-    Error('\P{Identifier_Type=/a/	_obsolete}');
+    Expect(1, 129994, '\p{Is_Identifier_Type= _not_xid}', "");
+    Expect(0, 129994, '\p{^Is_Identifier_Type= _not_xid}', "");
+    Expect(0, 129994, '\P{Is_Identifier_Type= _not_xid}', "");
+    Expect(1, 129994, '\P{^Is_Identifier_Type= _not_xid}', "");
+    Expect(0, 129995, '\p{Is_Identifier_Type= _not_xid}', "");
+    Expect(1, 129995, '\p{^Is_Identifier_Type= _not_xid}', "");
+    Expect(1, 129995, '\P{Is_Identifier_Type= _not_xid}', "");
+    Expect(0, 129995, '\P{^Is_Identifier_Type= _not_xid}', "");
+    Error('\p{Identifier_Type=-	OBSOLETE:=}');
+    Error('\P{Identifier_Type=-	OBSOLETE:=}');
     Expect(1, 119365, '\p{Identifier_Type=:\AObsolete\z:}', "");;
     Expect(0, 119366, '\p{Identifier_Type=:\AObsolete\z:}', "");;
     Expect(1, 119365, '\p{Identifier_Type=obsolete}', "");
@@ -46343,16 +46903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119366, '\P{^Identifier_Type=obsolete}', "");
     Expect(1, 119365, '\p{Identifier_Type=:\Aobsolete\z:}', "");;
     Expect(0, 119366, '\p{Identifier_Type=:\Aobsolete\z:}', "");;
-    Expect(1, 119365, '\p{Identifier_Type=-Obsolete}', "");
-    Expect(0, 119365, '\p{^Identifier_Type=-Obsolete}', "");
-    Expect(0, 119365, '\P{Identifier_Type=-Obsolete}', "");
-    Expect(1, 119365, '\P{^Identifier_Type=-Obsolete}', "");
-    Expect(0, 119366, '\p{Identifier_Type=-Obsolete}', "");
-    Expect(1, 119366, '\p{^Identifier_Type=-Obsolete}', "");
-    Expect(1, 119366, '\P{Identifier_Type=-Obsolete}', "");
-    Expect(0, 119366, '\P{^Identifier_Type=-Obsolete}', "");
-    Error('\p{Is_Identifier_Type= OBSOLETE/a/}');
-    Error('\P{Is_Identifier_Type= OBSOLETE/a/}');
+    Expect(1, 119365, '\p{Identifier_Type:_-obsolete}', "");
+    Expect(0, 119365, '\p{^Identifier_Type:_-obsolete}', "");
+    Expect(0, 119365, '\P{Identifier_Type:_-obsolete}', "");
+    Expect(1, 119365, '\P{^Identifier_Type:_-obsolete}', "");
+    Expect(0, 119366, '\p{Identifier_Type:_-obsolete}', "");
+    Expect(1, 119366, '\p{^Identifier_Type:_-obsolete}', "");
+    Expect(1, 119366, '\P{Identifier_Type:_-obsolete}', "");
+    Expect(0, 119366, '\P{^Identifier_Type:_-obsolete}', "");
+    Error('\p{Is_Identifier_Type=:=	obsolete}');
+    Error('\P{Is_Identifier_Type=:=	obsolete}');
     Expect(1, 119365, '\p{Is_Identifier_Type=obsolete}', "");
     Expect(0, 119365, '\p{^Is_Identifier_Type=obsolete}', "");
     Expect(0, 119365, '\P{Is_Identifier_Type=obsolete}', "");
@@ -46361,56 +46921,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119366, '\p{^Is_Identifier_Type=obsolete}', "");
     Expect(1, 119366, '\P{Is_Identifier_Type=obsolete}', "");
     Expect(0, 119366, '\P{^Is_Identifier_Type=obsolete}', "");
-    Expect(1, 119365, '\p{Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(0, 119365, '\p{^Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(0, 119365, '\P{Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(1, 119365, '\P{^Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(0, 119366, '\p{Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(1, 119366, '\p{^Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(1, 119366, '\P{Is_Identifier_Type=-OBSOLETE}', "");
-    Expect(0, 119366, '\P{^Is_Identifier_Type=-OBSOLETE}', "");
-    Error('\p{Identifier_Type=/a/	Recommended}');
-    Error('\P{Identifier_Type=/a/	Recommended}');
-    Expect(1, 201546, '\p{Identifier_Type=:\ARecommended\z:}', "");;
-    Expect(0, 201547, '\p{Identifier_Type=:\ARecommended\z:}', "");;
-    Expect(1, 201546, '\p{Identifier_Type=recommended}', "");
-    Expect(0, 201546, '\p{^Identifier_Type=recommended}', "");
-    Expect(0, 201546, '\P{Identifier_Type=recommended}', "");
-    Expect(1, 201546, '\P{^Identifier_Type=recommended}', "");
-    Expect(0, 201547, '\p{Identifier_Type=recommended}', "");
-    Expect(1, 201547, '\p{^Identifier_Type=recommended}', "");
-    Expect(1, 201547, '\P{Identifier_Type=recommended}', "");
-    Expect(0, 201547, '\P{^Identifier_Type=recommended}', "");
-    Expect(1, 201546, '\p{Identifier_Type=:\Arecommended\z:}', "");;
-    Expect(0, 201547, '\p{Identifier_Type=:\Arecommended\z:}', "");;
-    Expect(1, 201546, '\p{Identifier_Type=_	Recommended}', "");
-    Expect(0, 201546, '\p{^Identifier_Type=_	Recommended}', "");
-    Expect(0, 201546, '\P{Identifier_Type=_	Recommended}', "");
-    Expect(1, 201546, '\P{^Identifier_Type=_	Recommended}', "");
-    Expect(0, 201547, '\p{Identifier_Type=_	Recommended}', "");
-    Expect(1, 201547, '\p{^Identifier_Type=_	Recommended}', "");
-    Expect(1, 201547, '\P{Identifier_Type=_	Recommended}', "");
-    Expect(0, 201547, '\P{^Identifier_Type=_	Recommended}', "");
-    Error('\p{Is_Identifier_Type=recommended:=}');
-    Error('\P{Is_Identifier_Type=recommended:=}');
-    Expect(1, 201546, '\p{Is_Identifier_Type=recommended}', "");
-    Expect(0, 201546, '\p{^Is_Identifier_Type=recommended}', "");
-    Expect(0, 201546, '\P{Is_Identifier_Type=recommended}', "");
-    Expect(1, 201546, '\P{^Is_Identifier_Type=recommended}', "");
-    Expect(0, 201547, '\p{Is_Identifier_Type=recommended}', "");
-    Expect(1, 201547, '\p{^Is_Identifier_Type=recommended}', "");
-    Expect(1, 201547, '\P{Is_Identifier_Type=recommended}', "");
-    Expect(0, 201547, '\P{^Is_Identifier_Type=recommended}', "");
-    Expect(1, 201546, '\p{Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(0, 201546, '\p{^Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(0, 201546, '\P{Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(1, 201546, '\P{^Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(0, 201547, '\p{Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(1, 201547, '\p{^Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(1, 201547, '\P{Is_Identifier_Type=--RECOMMENDED}', "");
-    Expect(0, 201547, '\P{^Is_Identifier_Type=--RECOMMENDED}', "");
-    Error('\p{Identifier_Type=- Technical/a/}');
-    Error('\P{Identifier_Type=- Technical/a/}');
+    Expect(1, 119365, '\p{Is_Identifier_Type: -Obsolete}', "");
+    Expect(0, 119365, '\p{^Is_Identifier_Type: -Obsolete}', "");
+    Expect(0, 119365, '\P{Is_Identifier_Type: -Obsolete}', "");
+    Expect(1, 119365, '\P{^Is_Identifier_Type: -Obsolete}', "");
+    Expect(0, 119366, '\p{Is_Identifier_Type: -Obsolete}', "");
+    Expect(1, 119366, '\p{^Is_Identifier_Type: -Obsolete}', "");
+    Expect(1, 119366, '\P{Is_Identifier_Type: -Obsolete}', "");
+    Expect(0, 119366, '\P{^Is_Identifier_Type: -Obsolete}', "");
+    Error('\p{Identifier_Type=	Recommended/a/}');
+    Error('\P{Identifier_Type=	Recommended/a/}');
+    Expect(1, 205743, '\p{Identifier_Type=:\ARecommended\z:}', "");;
+    Expect(0, 205744, '\p{Identifier_Type=:\ARecommended\z:}', "");;
+    Expect(1, 205743, '\p{Identifier_Type=recommended}', "");
+    Expect(0, 205743, '\p{^Identifier_Type=recommended}', "");
+    Expect(0, 205743, '\P{Identifier_Type=recommended}', "");
+    Expect(1, 205743, '\P{^Identifier_Type=recommended}', "");
+    Expect(0, 205744, '\p{Identifier_Type=recommended}', "");
+    Expect(1, 205744, '\p{^Identifier_Type=recommended}', "");
+    Expect(1, 205744, '\P{Identifier_Type=recommended}', "");
+    Expect(0, 205744, '\P{^Identifier_Type=recommended}', "");
+    Expect(1, 205743, '\p{Identifier_Type=:\Arecommended\z:}', "");;
+    Expect(0, 205744, '\p{Identifier_Type=:\Arecommended\z:}', "");;
+    Expect(1, 205743, '\p{Identifier_Type=_ RECOMMENDED}', "");
+    Expect(0, 205743, '\p{^Identifier_Type=_ RECOMMENDED}', "");
+    Expect(0, 205743, '\P{Identifier_Type=_ RECOMMENDED}', "");
+    Expect(1, 205743, '\P{^Identifier_Type=_ RECOMMENDED}', "");
+    Expect(0, 205744, '\p{Identifier_Type=_ RECOMMENDED}', "");
+    Expect(1, 205744, '\p{^Identifier_Type=_ RECOMMENDED}', "");
+    Expect(1, 205744, '\P{Identifier_Type=_ RECOMMENDED}', "");
+    Expect(0, 205744, '\P{^Identifier_Type=_ RECOMMENDED}', "");
+    Error('\p{Is_Identifier_Type=:=--recommended}');
+    Error('\P{Is_Identifier_Type=:=--recommended}');
+    Expect(1, 205743, '\p{Is_Identifier_Type=recommended}', "");
+    Expect(0, 205743, '\p{^Is_Identifier_Type=recommended}', "");
+    Expect(0, 205743, '\P{Is_Identifier_Type=recommended}', "");
+    Expect(1, 205743, '\P{^Is_Identifier_Type=recommended}', "");
+    Expect(0, 205744, '\p{Is_Identifier_Type=recommended}', "");
+    Expect(1, 205744, '\p{^Is_Identifier_Type=recommended}', "");
+    Expect(1, 205744, '\P{Is_Identifier_Type=recommended}', "");
+    Expect(0, 205744, '\P{^Is_Identifier_Type=recommended}', "");
+    Expect(1, 205743, '\p{Is_Identifier_Type=	Recommended}', "");
+    Expect(0, 205743, '\p{^Is_Identifier_Type=	Recommended}', "");
+    Expect(0, 205743, '\P{Is_Identifier_Type=	Recommended}', "");
+    Expect(1, 205743, '\P{^Is_Identifier_Type=	Recommended}', "");
+    Expect(0, 205744, '\p{Is_Identifier_Type=	Recommended}', "");
+    Expect(1, 205744, '\p{^Is_Identifier_Type=	Recommended}', "");
+    Expect(1, 205744, '\P{Is_Identifier_Type=	Recommended}', "");
+    Expect(0, 205744, '\P{^Is_Identifier_Type=	Recommended}', "");
+    Error('\p{Identifier_Type:   :=	technical}');
+    Error('\P{Identifier_Type:   :=	technical}');
     Expect(1, 119638, '\p{Identifier_Type=:\ATechnical\z:}', "");;
     Expect(0, 119639, '\p{Identifier_Type=:\ATechnical\z:}', "");;
     Expect(1, 119638, '\p{Identifier_Type=technical}', "");
@@ -46423,16 +46983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 119639, '\P{^Identifier_Type=technical}', "");
     Expect(1, 119638, '\p{Identifier_Type=:\Atechnical\z:}', "");;
     Expect(0, 119639, '\p{Identifier_Type=:\Atechnical\z:}', "");;
-    Expect(1, 119638, '\p{Identifier_Type:	 -technical}', "");
-    Expect(0, 119638, '\p{^Identifier_Type:	 -technical}', "");
-    Expect(0, 119638, '\P{Identifier_Type:	 -technical}', "");
-    Expect(1, 119638, '\P{^Identifier_Type:	 -technical}', "");
-    Expect(0, 119639, '\p{Identifier_Type:	 -technical}', "");
-    Expect(1, 119639, '\p{^Identifier_Type:	 -technical}', "");
-    Expect(1, 119639, '\P{Identifier_Type:	 -technical}', "");
-    Expect(0, 119639, '\P{^Identifier_Type:	 -technical}', "");
-    Error('\p{Is_Identifier_Type=	 Technical:=}');
-    Error('\P{Is_Identifier_Type=	 Technical:=}');
+    Expect(1, 119638, '\p{Identifier_Type=-	TECHNICAL}', "");
+    Expect(0, 119638, '\p{^Identifier_Type=-	TECHNICAL}', "");
+    Expect(0, 119638, '\P{Identifier_Type=-	TECHNICAL}', "");
+    Expect(1, 119638, '\P{^Identifier_Type=-	TECHNICAL}', "");
+    Expect(0, 119639, '\p{Identifier_Type=-	TECHNICAL}', "");
+    Expect(1, 119639, '\p{^Identifier_Type=-	TECHNICAL}', "");
+    Expect(1, 119639, '\P{Identifier_Type=-	TECHNICAL}', "");
+    Expect(0, 119639, '\P{^Identifier_Type=-	TECHNICAL}', "");
+    Error('\p{Is_Identifier_Type=/a/-_Technical}');
+    Error('\P{Is_Identifier_Type=/a/-_Technical}');
     Expect(1, 119638, '\p{Is_Identifier_Type=technical}', "");
     Expect(0, 119638, '\p{^Is_Identifier_Type=technical}', "");
     Expect(0, 119638, '\P{Is_Identifier_Type=technical}', "");
@@ -46441,376 +47001,376 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119639, '\p{^Is_Identifier_Type=technical}', "");
     Expect(1, 119639, '\P{Is_Identifier_Type=technical}', "");
     Expect(0, 119639, '\P{^Is_Identifier_Type=technical}', "");
-    Expect(1, 119638, '\p{Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(0, 119638, '\p{^Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(0, 119638, '\P{Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(1, 119638, '\P{^Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(0, 119639, '\p{Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(1, 119639, '\p{^Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(1, 119639, '\P{Is_Identifier_Type=_-TECHNICAL}', "");
-    Expect(0, 119639, '\P{^Is_Identifier_Type=_-TECHNICAL}', "");
-    Error('\p{Identifier_Type=_-Uncommon_USE:=}');
-    Error('\P{Identifier_Type=_-Uncommon_USE:=}');
+    Expect(1, 119638, '\p{Is_Identifier_Type=--technical}', "");
+    Expect(0, 119638, '\p{^Is_Identifier_Type=--technical}', "");
+    Expect(0, 119638, '\P{Is_Identifier_Type=--technical}', "");
+    Expect(1, 119638, '\P{^Is_Identifier_Type=--technical}', "");
+    Expect(0, 119639, '\p{Is_Identifier_Type=--technical}', "");
+    Expect(1, 119639, '\p{^Is_Identifier_Type=--technical}', "");
+    Expect(1, 119639, '\P{Is_Identifier_Type=--technical}', "");
+    Expect(0, 119639, '\P{^Is_Identifier_Type=--technical}', "");
+    Error('\p{Identifier_Type=:=__Uncommon_Use}');
+    Error('\P{Identifier_Type=:=__Uncommon_Use}');
     Expect(1, 128335, '\p{Identifier_Type=:\AUncommon_Use\z:}', "");;
     Expect(0, 128336, '\p{Identifier_Type=:\AUncommon_Use\z:}', "");;
-    Expect(1, 128335, '\p{Identifier_Type=uncommonuse}', "");
-    Expect(0, 128335, '\p{^Identifier_Type=uncommonuse}', "");
-    Expect(0, 128335, '\P{Identifier_Type=uncommonuse}', "");
-    Expect(1, 128335, '\P{^Identifier_Type=uncommonuse}', "");
-    Expect(0, 128336, '\p{Identifier_Type=uncommonuse}', "");
-    Expect(1, 128336, '\p{^Identifier_Type=uncommonuse}', "");
-    Expect(1, 128336, '\P{Identifier_Type=uncommonuse}', "");
-    Expect(0, 128336, '\P{^Identifier_Type=uncommonuse}', "");
+    Expect(1, 128335, '\p{Identifier_Type: uncommonuse}', "");
+    Expect(0, 128335, '\p{^Identifier_Type: uncommonuse}', "");
+    Expect(0, 128335, '\P{Identifier_Type: uncommonuse}', "");
+    Expect(1, 128335, '\P{^Identifier_Type: uncommonuse}', "");
+    Expect(0, 128336, '\p{Identifier_Type: uncommonuse}', "");
+    Expect(1, 128336, '\p{^Identifier_Type: uncommonuse}', "");
+    Expect(1, 128336, '\P{Identifier_Type: uncommonuse}', "");
+    Expect(0, 128336, '\P{^Identifier_Type: uncommonuse}', "");
     Expect(1, 128335, '\p{Identifier_Type=:\Auncommonuse\z:}', "");;
     Expect(0, 128336, '\p{Identifier_Type=:\Auncommonuse\z:}', "");;
-    Expect(1, 128335, '\p{Identifier_Type=_uncommon_Use}', "");
-    Expect(0, 128335, '\p{^Identifier_Type=_uncommon_Use}', "");
-    Expect(0, 128335, '\P{Identifier_Type=_uncommon_Use}', "");
-    Expect(1, 128335, '\P{^Identifier_Type=_uncommon_Use}', "");
-    Expect(0, 128336, '\p{Identifier_Type=_uncommon_Use}', "");
-    Expect(1, 128336, '\p{^Identifier_Type=_uncommon_Use}', "");
-    Expect(1, 128336, '\P{Identifier_Type=_uncommon_Use}', "");
-    Expect(0, 128336, '\P{^Identifier_Type=_uncommon_Use}', "");
-    Error('\p{Is_Identifier_Type=/a/	Uncommon_Use}');
-    Error('\P{Is_Identifier_Type=/a/	Uncommon_Use}');
-    Expect(1, 128335, '\p{Is_Identifier_Type=uncommonuse}', "");
-    Expect(0, 128335, '\p{^Is_Identifier_Type=uncommonuse}', "");
-    Expect(0, 128335, '\P{Is_Identifier_Type=uncommonuse}', "");
-    Expect(1, 128335, '\P{^Is_Identifier_Type=uncommonuse}', "");
-    Expect(0, 128336, '\p{Is_Identifier_Type=uncommonuse}', "");
-    Expect(1, 128336, '\p{^Is_Identifier_Type=uncommonuse}', "");
-    Expect(1, 128336, '\P{Is_Identifier_Type=uncommonuse}', "");
-    Expect(0, 128336, '\P{^Is_Identifier_Type=uncommonuse}', "");
-    Expect(1, 128335, '\p{Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(0, 128335, '\p{^Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(0, 128335, '\P{Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(1, 128335, '\P{^Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(0, 128336, '\p{Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(1, 128336, '\p{^Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(1, 128336, '\P{Is_Identifier_Type= -Uncommon_Use}', "");
-    Expect(0, 128336, '\P{^Is_Identifier_Type= -Uncommon_Use}', "");
-    Error('\p{Ideographic= No/a/}');
-    Error('\P{Ideographic= No/a/}');
-    Expect(1, 201547, '\p{Ideographic=:\ANo\z:}', "");;
-    Expect(0, 201546, '\p{Ideographic=:\ANo\z:}', "");;
-    Expect(1, 201547, '\p{Ideographic=no}', "");
-    Expect(0, 201547, '\p{^Ideographic=no}', "");
-    Expect(0, 201547, '\P{Ideographic=no}', "");
-    Expect(1, 201547, '\P{^Ideographic=no}', "");
-    Expect(0, 201546, '\p{Ideographic=no}', "");
-    Expect(1, 201546, '\p{^Ideographic=no}', "");
-    Expect(1, 201546, '\P{Ideographic=no}', "");
-    Expect(0, 201546, '\P{^Ideographic=no}', "");
-    Expect(1, 201547, '\p{Ideographic=:\Ano\z:}', "");;
-    Expect(0, 201546, '\p{Ideographic=:\Ano\z:}', "");;
-    Expect(1, 201547, '\p{Ideographic= -No}', "");
-    Expect(0, 201547, '\p{^Ideographic= -No}', "");
-    Expect(0, 201547, '\P{Ideographic= -No}', "");
-    Expect(1, 201547, '\P{^Ideographic= -No}', "");
-    Expect(0, 201546, '\p{Ideographic= -No}', "");
-    Expect(1, 201546, '\p{^Ideographic= -No}', "");
-    Expect(1, 201546, '\P{Ideographic= -No}', "");
-    Expect(0, 201546, '\P{^Ideographic= -No}', "");
-    Error('\p{Ideo= :=N}');
-    Error('\P{Ideo= :=N}');
-    Expect(1, 201547, '\p{Ideo=:\AN\z:}', "");;
-    Expect(0, 201546, '\p{Ideo=:\AN\z:}', "");;
-    Expect(1, 201547, '\p{Ideo=n}', "");
-    Expect(0, 201547, '\p{^Ideo=n}', "");
-    Expect(0, 201547, '\P{Ideo=n}', "");
-    Expect(1, 201547, '\P{^Ideo=n}', "");
-    Expect(0, 201546, '\p{Ideo=n}', "");
-    Expect(1, 201546, '\p{^Ideo=n}', "");
-    Expect(1, 201546, '\P{Ideo=n}', "");
-    Expect(0, 201546, '\P{^Ideo=n}', "");
-    Expect(1, 201547, '\p{Ideo=:\An\z:}', "");;
-    Expect(0, 201546, '\p{Ideo=:\An\z:}', "");;
-    Expect(1, 201547, '\p{Ideo= 	n}', "");
-    Expect(0, 201547, '\p{^Ideo= 	n}', "");
-    Expect(0, 201547, '\P{Ideo= 	n}', "");
-    Expect(1, 201547, '\P{^Ideo= 	n}', "");
-    Expect(0, 201546, '\p{Ideo= 	n}', "");
-    Expect(1, 201546, '\p{^Ideo= 	n}', "");
-    Expect(1, 201546, '\P{Ideo= 	n}', "");
-    Expect(0, 201546, '\P{^Ideo= 	n}', "");
-    Error('\p{Is_Ideographic=	:=F}');
-    Error('\P{Is_Ideographic=	:=F}');
-    Expect(1, 201547, '\p{Is_Ideographic:f}', "");
-    Expect(0, 201547, '\p{^Is_Ideographic:f}', "");
-    Expect(0, 201547, '\P{Is_Ideographic:f}', "");
-    Expect(1, 201547, '\P{^Is_Ideographic:f}', "");
-    Expect(0, 201546, '\p{Is_Ideographic:f}', "");
-    Expect(1, 201546, '\p{^Is_Ideographic:f}', "");
-    Expect(1, 201546, '\P{Is_Ideographic:f}', "");
-    Expect(0, 201546, '\P{^Is_Ideographic:f}', "");
-    Expect(1, 201547, '\p{Is_Ideographic=-_f}', "");
-    Expect(0, 201547, '\p{^Is_Ideographic=-_f}', "");
-    Expect(0, 201547, '\P{Is_Ideographic=-_f}', "");
-    Expect(1, 201547, '\P{^Is_Ideographic=-_f}', "");
-    Expect(0, 201546, '\p{Is_Ideographic=-_f}', "");
-    Expect(1, 201546, '\p{^Is_Ideographic=-_f}', "");
-    Expect(1, 201546, '\P{Is_Ideographic=-_f}', "");
-    Expect(0, 201546, '\P{^Is_Ideographic=-_f}', "");
-    Error('\p{Is_Ideo=/a/ 	FALSE}');
-    Error('\P{Is_Ideo=/a/ 	FALSE}');
-    Expect(1, 201547, '\p{Is_Ideo=false}', "");
-    Expect(0, 201547, '\p{^Is_Ideo=false}', "");
-    Expect(0, 201547, '\P{Is_Ideo=false}', "");
-    Expect(1, 201547, '\P{^Is_Ideo=false}', "");
-    Expect(0, 201546, '\p{Is_Ideo=false}', "");
-    Expect(1, 201546, '\p{^Is_Ideo=false}', "");
-    Expect(1, 201546, '\P{Is_Ideo=false}', "");
-    Expect(0, 201546, '\P{^Is_Ideo=false}', "");
-    Expect(1, 201547, '\p{Is_Ideo=-	False}', "");
-    Expect(0, 201547, '\p{^Is_Ideo=-	False}', "");
-    Expect(0, 201547, '\P{Is_Ideo=-	False}', "");
-    Expect(1, 201547, '\P{^Is_Ideo=-	False}', "");
-    Expect(0, 201546, '\p{Is_Ideo=-	False}', "");
-    Expect(1, 201546, '\p{^Is_Ideo=-	False}', "");
-    Expect(1, 201546, '\P{Is_Ideo=-	False}', "");
-    Expect(0, 201546, '\P{^Is_Ideo=-	False}', "");
-    Error('\p{Ideographic= :=yes}');
-    Error('\P{Ideographic= :=yes}');
-    Expect(1, 201546, '\p{Ideographic=:\AYes\z:}', "");;
-    Expect(0, 201547, '\p{Ideographic=:\AYes\z:}', "");;
-    Expect(1, 201546, '\p{Ideographic=yes}', "");
-    Expect(0, 201546, '\p{^Ideographic=yes}', "");
-    Expect(0, 201546, '\P{Ideographic=yes}', "");
-    Expect(1, 201546, '\P{^Ideographic=yes}', "");
-    Expect(0, 201547, '\p{Ideographic=yes}', "");
-    Expect(1, 201547, '\p{^Ideographic=yes}', "");
-    Expect(1, 201547, '\P{Ideographic=yes}', "");
-    Expect(0, 201547, '\P{^Ideographic=yes}', "");
-    Expect(1, 201546, '\p{Ideographic=:\Ayes\z:}', "");;
-    Expect(0, 201547, '\p{Ideographic=:\Ayes\z:}', "");;
-    Expect(1, 201546, '\p{Ideographic=-	Yes}', "");
-    Expect(0, 201546, '\p{^Ideographic=-	Yes}', "");
-    Expect(0, 201546, '\P{Ideographic=-	Yes}', "");
-    Expect(1, 201546, '\P{^Ideographic=-	Yes}', "");
-    Expect(0, 201547, '\p{Ideographic=-	Yes}', "");
-    Expect(1, 201547, '\p{^Ideographic=-	Yes}', "");
-    Expect(1, 201547, '\P{Ideographic=-	Yes}', "");
-    Expect(0, 201547, '\P{^Ideographic=-	Yes}', "");
-    Error('\p{Ideo:  y/a/}');
-    Error('\P{Ideo:  y/a/}');
-    Expect(1, 201546, '\p{Ideo=:\AY\z:}', "");;
-    Expect(0, 201547, '\p{Ideo=:\AY\z:}', "");;
-    Expect(1, 201546, '\p{Ideo=y}', "");
-    Expect(0, 201546, '\p{^Ideo=y}', "");
-    Expect(0, 201546, '\P{Ideo=y}', "");
-    Expect(1, 201546, '\P{^Ideo=y}', "");
-    Expect(0, 201547, '\p{Ideo=y}', "");
-    Expect(1, 201547, '\p{^Ideo=y}', "");
-    Expect(1, 201547, '\P{Ideo=y}', "");
-    Expect(0, 201547, '\P{^Ideo=y}', "");
-    Expect(1, 201546, '\p{Ideo=:\Ay\z:}', "");;
-    Expect(0, 201547, '\p{Ideo=:\Ay\z:}', "");;
-    Expect(1, 201546, '\p{Ideo=	 Y}', "");
-    Expect(0, 201546, '\p{^Ideo=	 Y}', "");
-    Expect(0, 201546, '\P{Ideo=	 Y}', "");
-    Expect(1, 201546, '\P{^Ideo=	 Y}', "");
-    Expect(0, 201547, '\p{Ideo=	 Y}', "");
-    Expect(1, 201547, '\p{^Ideo=	 Y}', "");
-    Expect(1, 201547, '\P{Ideo=	 Y}', "");
-    Expect(0, 201547, '\P{^Ideo=	 Y}', "");
-    Error('\p{Is_Ideographic=	:=T}');
-    Error('\P{Is_Ideographic=	:=T}');
-    Expect(1, 201546, '\p{Is_Ideographic=t}', "");
-    Expect(0, 201546, '\p{^Is_Ideographic=t}', "");
-    Expect(0, 201546, '\P{Is_Ideographic=t}', "");
-    Expect(1, 201546, '\P{^Is_Ideographic=t}', "");
-    Expect(0, 201547, '\p{Is_Ideographic=t}', "");
-    Expect(1, 201547, '\p{^Is_Ideographic=t}', "");
-    Expect(1, 201547, '\P{Is_Ideographic=t}', "");
-    Expect(0, 201547, '\P{^Is_Ideographic=t}', "");
-    Expect(1, 201546, '\p{Is_Ideographic=T}', "");
-    Expect(0, 201546, '\p{^Is_Ideographic=T}', "");
-    Expect(0, 201546, '\P{Is_Ideographic=T}', "");
-    Expect(1, 201546, '\P{^Is_Ideographic=T}', "");
-    Expect(0, 201547, '\p{Is_Ideographic=T}', "");
-    Expect(1, 201547, '\p{^Is_Ideographic=T}', "");
-    Expect(1, 201547, '\P{Is_Ideographic=T}', "");
-    Expect(0, 201547, '\P{^Is_Ideographic=T}', "");
-    Error('\p{Is_Ideo=	-TRUE:=}');
-    Error('\P{Is_Ideo=	-TRUE:=}');
-    Expect(1, 201546, '\p{Is_Ideo=true}', "");
-    Expect(0, 201546, '\p{^Is_Ideo=true}', "");
-    Expect(0, 201546, '\P{Is_Ideo=true}', "");
-    Expect(1, 201546, '\P{^Is_Ideo=true}', "");
-    Expect(0, 201547, '\p{Is_Ideo=true}', "");
-    Expect(1, 201547, '\p{^Is_Ideo=true}', "");
-    Expect(1, 201547, '\P{Is_Ideo=true}', "");
-    Expect(0, 201547, '\P{^Is_Ideo=true}', "");
-    Expect(1, 201546, '\p{Is_Ideo=TRUE}', "");
-    Expect(0, 201546, '\p{^Is_Ideo=TRUE}', "");
-    Expect(0, 201546, '\P{Is_Ideo=TRUE}', "");
-    Expect(1, 201546, '\P{^Is_Ideo=TRUE}', "");
-    Expect(0, 201547, '\p{Is_Ideo=TRUE}', "");
-    Expect(1, 201547, '\p{^Is_Ideo=TRUE}', "");
-    Expect(1, 201547, '\P{Is_Ideo=TRUE}', "");
-    Expect(0, 201547, '\P{^Is_Ideo=TRUE}', "");
-    Error('\p{ID_Start=:=_ No}');
-    Error('\P{ID_Start=:=_ No}');
-    Expect(1, 201547, '\p{ID_Start=:\ANo\z:}', "");;
-    Expect(0, 201546, '\p{ID_Start=:\ANo\z:}', "");;
-    Expect(1, 201547, '\p{ID_Start: no}', "");
-    Expect(0, 201547, '\p{^ID_Start: no}', "");
-    Expect(0, 201547, '\P{ID_Start: no}', "");
-    Expect(1, 201547, '\P{^ID_Start: no}', "");
-    Expect(0, 201546, '\p{ID_Start: no}', "");
-    Expect(1, 201546, '\p{^ID_Start: no}', "");
-    Expect(1, 201546, '\P{ID_Start: no}', "");
-    Expect(0, 201546, '\P{^ID_Start: no}', "");
-    Expect(1, 201547, '\p{ID_Start=:\Ano\z:}', "");;
-    Expect(0, 201546, '\p{ID_Start=:\Ano\z:}', "");;
-    Expect(1, 201547, '\p{ID_Start=	-no}', "");
-    Expect(0, 201547, '\p{^ID_Start=	-no}', "");
-    Expect(0, 201547, '\P{ID_Start=	-no}', "");
-    Expect(1, 201547, '\P{^ID_Start=	-no}', "");
-    Expect(0, 201546, '\p{ID_Start=	-no}', "");
-    Expect(1, 201546, '\p{^ID_Start=	-no}', "");
-    Expect(1, 201546, '\P{ID_Start=	-no}', "");
-    Expect(0, 201546, '\P{^ID_Start=	-no}', "");
-    Error('\p{IDS= N:=}');
-    Error('\P{IDS= N:=}');
-    Expect(1, 201547, '\p{IDS=:\AN\z:}', "");;
-    Expect(0, 201546, '\p{IDS=:\AN\z:}', "");;
-    Expect(1, 201547, '\p{IDS=n}', "");
-    Expect(0, 201547, '\p{^IDS=n}', "");
-    Expect(0, 201547, '\P{IDS=n}', "");
-    Expect(1, 201547, '\P{^IDS=n}', "");
-    Expect(0, 201546, '\p{IDS=n}', "");
-    Expect(1, 201546, '\p{^IDS=n}', "");
-    Expect(1, 201546, '\P{IDS=n}', "");
-    Expect(0, 201546, '\P{^IDS=n}', "");
-    Expect(1, 201547, '\p{IDS=:\An\z:}', "");;
-    Expect(0, 201546, '\p{IDS=:\An\z:}', "");;
-    Expect(1, 201547, '\p{IDS=	 N}', "");
-    Expect(0, 201547, '\p{^IDS=	 N}', "");
-    Expect(0, 201547, '\P{IDS=	 N}', "");
-    Expect(1, 201547, '\P{^IDS=	 N}', "");
-    Expect(0, 201546, '\p{IDS=	 N}', "");
-    Expect(1, 201546, '\p{^IDS=	 N}', "");
-    Expect(1, 201546, '\P{IDS=	 N}', "");
-    Expect(0, 201546, '\P{^IDS=	 N}', "");
-    Error('\p{Is_ID_Start=	F:=}');
-    Error('\P{Is_ID_Start=	F:=}');
-    Expect(1, 201547, '\p{Is_ID_Start=f}', "");
-    Expect(0, 201547, '\p{^Is_ID_Start=f}', "");
-    Expect(0, 201547, '\P{Is_ID_Start=f}', "");
-    Expect(1, 201547, '\P{^Is_ID_Start=f}', "");
-    Expect(0, 201546, '\p{Is_ID_Start=f}', "");
-    Expect(1, 201546, '\p{^Is_ID_Start=f}', "");
-    Expect(1, 201546, '\P{Is_ID_Start=f}', "");
-    Expect(0, 201546, '\P{^Is_ID_Start=f}', "");
-    Expect(1, 201547, '\p{Is_ID_Start=  F}', "");
-    Expect(0, 201547, '\p{^Is_ID_Start=  F}', "");
-    Expect(0, 201547, '\P{Is_ID_Start=  F}', "");
-    Expect(1, 201547, '\P{^Is_ID_Start=  F}', "");
-    Expect(0, 201546, '\p{Is_ID_Start=  F}', "");
-    Expect(1, 201546, '\p{^Is_ID_Start=  F}', "");
-    Expect(1, 201546, '\P{Is_ID_Start=  F}', "");
-    Expect(0, 201546, '\P{^Is_ID_Start=  F}', "");
-    Error('\p{Is_IDS=/a/_	False}');
-    Error('\P{Is_IDS=/a/_	False}');
-    Expect(1, 201547, '\p{Is_IDS=false}', "");
-    Expect(0, 201547, '\p{^Is_IDS=false}', "");
-    Expect(0, 201547, '\P{Is_IDS=false}', "");
-    Expect(1, 201547, '\P{^Is_IDS=false}', "");
-    Expect(0, 201546, '\p{Is_IDS=false}', "");
-    Expect(1, 201546, '\p{^Is_IDS=false}', "");
-    Expect(1, 201546, '\P{Is_IDS=false}', "");
-    Expect(0, 201546, '\P{^Is_IDS=false}', "");
-    Expect(1, 201547, '\p{Is_IDS=_ False}', "");
-    Expect(0, 201547, '\p{^Is_IDS=_ False}', "");
-    Expect(0, 201547, '\P{Is_IDS=_ False}', "");
-    Expect(1, 201547, '\P{^Is_IDS=_ False}', "");
-    Expect(0, 201546, '\p{Is_IDS=_ False}', "");
-    Expect(1, 201546, '\p{^Is_IDS=_ False}', "");
-    Expect(1, 201546, '\P{Is_IDS=_ False}', "");
-    Expect(0, 201546, '\P{^Is_IDS=_ False}', "");
-    Error('\p{ID_Start=_-yes:=}');
-    Error('\P{ID_Start=_-yes:=}');
-    Expect(1, 201546, '\p{ID_Start=:\AYes\z:}', "");;
-    Expect(0, 201547, '\p{ID_Start=:\AYes\z:}', "");;
-    Expect(1, 201546, '\p{ID_Start=yes}', "");
-    Expect(0, 201546, '\p{^ID_Start=yes}', "");
-    Expect(0, 201546, '\P{ID_Start=yes}', "");
-    Expect(1, 201546, '\P{^ID_Start=yes}', "");
-    Expect(0, 201547, '\p{ID_Start=yes}', "");
-    Expect(1, 201547, '\p{^ID_Start=yes}', "");
-    Expect(1, 201547, '\P{ID_Start=yes}', "");
-    Expect(0, 201547, '\P{^ID_Start=yes}', "");
-    Expect(1, 201546, '\p{ID_Start=:\Ayes\z:}', "");;
-    Expect(0, 201547, '\p{ID_Start=:\Ayes\z:}', "");;
-    Expect(1, 201546, '\p{ID_Start=_ Yes}', "");
-    Expect(0, 201546, '\p{^ID_Start=_ Yes}', "");
-    Expect(0, 201546, '\P{ID_Start=_ Yes}', "");
-    Expect(1, 201546, '\P{^ID_Start=_ Yes}', "");
-    Expect(0, 201547, '\p{ID_Start=_ Yes}', "");
-    Expect(1, 201547, '\p{^ID_Start=_ Yes}', "");
-    Expect(1, 201547, '\P{ID_Start=_ Yes}', "");
-    Expect(0, 201547, '\P{^ID_Start=_ Yes}', "");
-    Error('\p{IDS=:=-	Y}');
-    Error('\P{IDS=:=-	Y}');
-    Expect(1, 201546, '\p{IDS=:\AY\z:}', "");;
-    Expect(0, 201547, '\p{IDS=:\AY\z:}', "");;
-    Expect(1, 201546, '\p{IDS=y}', "");
-    Expect(0, 201546, '\p{^IDS=y}', "");
-    Expect(0, 201546, '\P{IDS=y}', "");
-    Expect(1, 201546, '\P{^IDS=y}', "");
-    Expect(0, 201547, '\p{IDS=y}', "");
-    Expect(1, 201547, '\p{^IDS=y}', "");
-    Expect(1, 201547, '\P{IDS=y}', "");
-    Expect(0, 201547, '\P{^IDS=y}', "");
-    Expect(1, 201546, '\p{IDS=:\Ay\z:}', "");;
-    Expect(0, 201547, '\p{IDS=:\Ay\z:}', "");;
-    Expect(1, 201546, '\p{IDS=--Y}', "");
-    Expect(0, 201546, '\p{^IDS=--Y}', "");
-    Expect(0, 201546, '\P{IDS=--Y}', "");
-    Expect(1, 201546, '\P{^IDS=--Y}', "");
-    Expect(0, 201547, '\p{IDS=--Y}', "");
-    Expect(1, 201547, '\p{^IDS=--Y}', "");
-    Expect(1, 201547, '\P{IDS=--Y}', "");
-    Expect(0, 201547, '\P{^IDS=--Y}', "");
-    Error('\p{Is_ID_Start=/a/	-T}');
-    Error('\P{Is_ID_Start=/a/	-T}');
-    Expect(1, 201546, '\p{Is_ID_Start=t}', "");
-    Expect(0, 201546, '\p{^Is_ID_Start=t}', "");
-    Expect(0, 201546, '\P{Is_ID_Start=t}', "");
-    Expect(1, 201546, '\P{^Is_ID_Start=t}', "");
-    Expect(0, 201547, '\p{Is_ID_Start=t}', "");
-    Expect(1, 201547, '\p{^Is_ID_Start=t}', "");
-    Expect(1, 201547, '\P{Is_ID_Start=t}', "");
-    Expect(0, 201547, '\P{^Is_ID_Start=t}', "");
-    Expect(1, 201546, '\p{Is_ID_Start=__T}', "");
-    Expect(0, 201546, '\p{^Is_ID_Start=__T}', "");
-    Expect(0, 201546, '\P{Is_ID_Start=__T}', "");
-    Expect(1, 201546, '\P{^Is_ID_Start=__T}', "");
-    Expect(0, 201547, '\p{Is_ID_Start=__T}', "");
-    Expect(1, 201547, '\p{^Is_ID_Start=__T}', "");
-    Expect(1, 201547, '\P{Is_ID_Start=__T}', "");
-    Expect(0, 201547, '\P{^Is_ID_Start=__T}', "");
-    Error('\p{Is_IDS=/a/-	True}');
-    Error('\P{Is_IDS=/a/-	True}');
-    Expect(1, 201546, '\p{Is_IDS=true}', "");
-    Expect(0, 201546, '\p{^Is_IDS=true}', "");
-    Expect(0, 201546, '\P{Is_IDS=true}', "");
-    Expect(1, 201546, '\P{^Is_IDS=true}', "");
-    Expect(0, 201547, '\p{Is_IDS=true}', "");
-    Expect(1, 201547, '\p{^Is_IDS=true}', "");
-    Expect(1, 201547, '\P{Is_IDS=true}', "");
-    Expect(0, 201547, '\P{^Is_IDS=true}', "");
-    Expect(1, 201546, '\p{Is_IDS=  True}', "");
-    Expect(0, 201546, '\p{^Is_IDS=  True}', "");
-    Expect(0, 201546, '\P{Is_IDS=  True}', "");
-    Expect(1, 201546, '\P{^Is_IDS=  True}', "");
-    Expect(0, 201547, '\p{Is_IDS=  True}', "");
-    Expect(1, 201547, '\p{^Is_IDS=  True}', "");
-    Expect(1, 201547, '\P{Is_IDS=  True}', "");
-    Expect(0, 201547, '\P{^Is_IDS=  True}', "");
-    Error('\p{IDS_Binary_Operator:   No/a/}');
-    Error('\P{IDS_Binary_Operator:   No/a/}');
+    Expect(1, 128335, '\p{Identifier_Type: 	uncommon_use}', "");
+    Expect(0, 128335, '\p{^Identifier_Type: 	uncommon_use}', "");
+    Expect(0, 128335, '\P{Identifier_Type: 	uncommon_use}', "");
+    Expect(1, 128335, '\P{^Identifier_Type: 	uncommon_use}', "");
+    Expect(0, 128336, '\p{Identifier_Type: 	uncommon_use}', "");
+    Expect(1, 128336, '\p{^Identifier_Type: 	uncommon_use}', "");
+    Expect(1, 128336, '\P{Identifier_Type: 	uncommon_use}', "");
+    Expect(0, 128336, '\P{^Identifier_Type: 	uncommon_use}', "");
+    Error('\p{Is_Identifier_Type=	:=uncommon_use}');
+    Error('\P{Is_Identifier_Type=	:=uncommon_use}');
+    Expect(1, 128335, '\p{Is_Identifier_Type:	uncommonuse}', "");
+    Expect(0, 128335, '\p{^Is_Identifier_Type:	uncommonuse}', "");
+    Expect(0, 128335, '\P{Is_Identifier_Type:	uncommonuse}', "");
+    Expect(1, 128335, '\P{^Is_Identifier_Type:	uncommonuse}', "");
+    Expect(0, 128336, '\p{Is_Identifier_Type:	uncommonuse}', "");
+    Expect(1, 128336, '\p{^Is_Identifier_Type:	uncommonuse}', "");
+    Expect(1, 128336, '\P{Is_Identifier_Type:	uncommonuse}', "");
+    Expect(0, 128336, '\P{^Is_Identifier_Type:	uncommonuse}', "");
+    Expect(1, 128335, '\p{Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(0, 128335, '\p{^Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(0, 128335, '\P{Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(1, 128335, '\P{^Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(0, 128336, '\p{Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(1, 128336, '\p{^Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(1, 128336, '\P{Is_Identifier_Type=_-uncommon_Use}', "");
+    Expect(0, 128336, '\P{^Is_Identifier_Type=_-uncommon_Use}', "");
+    Error('\p{Ideographic=-_NO:=}');
+    Error('\P{Ideographic=-_NO:=}');
+    Expect(1, 205744, '\p{Ideographic=:\ANo\z:}', "");;
+    Expect(0, 205743, '\p{Ideographic=:\ANo\z:}', "");;
+    Expect(1, 205744, '\p{Ideographic=no}', "");
+    Expect(0, 205744, '\p{^Ideographic=no}', "");
+    Expect(0, 205744, '\P{Ideographic=no}', "");
+    Expect(1, 205744, '\P{^Ideographic=no}', "");
+    Expect(0, 205743, '\p{Ideographic=no}', "");
+    Expect(1, 205743, '\p{^Ideographic=no}', "");
+    Expect(1, 205743, '\P{Ideographic=no}', "");
+    Expect(0, 205743, '\P{^Ideographic=no}', "");
+    Expect(1, 205744, '\p{Ideographic=:\Ano\z:}', "");;
+    Expect(0, 205743, '\p{Ideographic=:\Ano\z:}', "");;
+    Expect(1, 205744, '\p{Ideographic:	 -No}', "");
+    Expect(0, 205744, '\p{^Ideographic:	 -No}', "");
+    Expect(0, 205744, '\P{Ideographic:	 -No}', "");
+    Expect(1, 205744, '\P{^Ideographic:	 -No}', "");
+    Expect(0, 205743, '\p{Ideographic:	 -No}', "");
+    Expect(1, 205743, '\p{^Ideographic:	 -No}', "");
+    Expect(1, 205743, '\P{Ideographic:	 -No}', "");
+    Expect(0, 205743, '\P{^Ideographic:	 -No}', "");
+    Error('\p{Ideo=	_N:=}');
+    Error('\P{Ideo=	_N:=}');
+    Expect(1, 205744, '\p{Ideo=:\AN\z:}', "");;
+    Expect(0, 205743, '\p{Ideo=:\AN\z:}', "");;
+    Expect(1, 205744, '\p{Ideo=n}', "");
+    Expect(0, 205744, '\p{^Ideo=n}', "");
+    Expect(0, 205744, '\P{Ideo=n}', "");
+    Expect(1, 205744, '\P{^Ideo=n}', "");
+    Expect(0, 205743, '\p{Ideo=n}', "");
+    Expect(1, 205743, '\p{^Ideo=n}', "");
+    Expect(1, 205743, '\P{Ideo=n}', "");
+    Expect(0, 205743, '\P{^Ideo=n}', "");
+    Expect(1, 205744, '\p{Ideo=:\An\z:}', "");;
+    Expect(0, 205743, '\p{Ideo=:\An\z:}', "");;
+    Expect(1, 205744, '\p{Ideo= N}', "");
+    Expect(0, 205744, '\p{^Ideo= N}', "");
+    Expect(0, 205744, '\P{Ideo= N}', "");
+    Expect(1, 205744, '\P{^Ideo= N}', "");
+    Expect(0, 205743, '\p{Ideo= N}', "");
+    Expect(1, 205743, '\p{^Ideo= N}', "");
+    Expect(1, 205743, '\P{Ideo= N}', "");
+    Expect(0, 205743, '\P{^Ideo= N}', "");
+    Error('\p{Is_Ideographic=_/a/F}');
+    Error('\P{Is_Ideographic=_/a/F}');
+    Expect(1, 205744, '\p{Is_Ideographic=f}', "");
+    Expect(0, 205744, '\p{^Is_Ideographic=f}', "");
+    Expect(0, 205744, '\P{Is_Ideographic=f}', "");
+    Expect(1, 205744, '\P{^Is_Ideographic=f}', "");
+    Expect(0, 205743, '\p{Is_Ideographic=f}', "");
+    Expect(1, 205743, '\p{^Is_Ideographic=f}', "");
+    Expect(1, 205743, '\P{Is_Ideographic=f}', "");
+    Expect(0, 205743, '\P{^Is_Ideographic=f}', "");
+    Expect(1, 205744, '\p{Is_Ideographic=_f}', "");
+    Expect(0, 205744, '\p{^Is_Ideographic=_f}', "");
+    Expect(0, 205744, '\P{Is_Ideographic=_f}', "");
+    Expect(1, 205744, '\P{^Is_Ideographic=_f}', "");
+    Expect(0, 205743, '\p{Is_Ideographic=_f}', "");
+    Expect(1, 205743, '\p{^Is_Ideographic=_f}', "");
+    Expect(1, 205743, '\P{Is_Ideographic=_f}', "");
+    Expect(0, 205743, '\P{^Is_Ideographic=_f}', "");
+    Error('\p{Is_Ideo:		-False:=}');
+    Error('\P{Is_Ideo:		-False:=}');
+    Expect(1, 205744, '\p{Is_Ideo=false}', "");
+    Expect(0, 205744, '\p{^Is_Ideo=false}', "");
+    Expect(0, 205744, '\P{Is_Ideo=false}', "");
+    Expect(1, 205744, '\P{^Is_Ideo=false}', "");
+    Expect(0, 205743, '\p{Is_Ideo=false}', "");
+    Expect(1, 205743, '\p{^Is_Ideo=false}', "");
+    Expect(1, 205743, '\P{Is_Ideo=false}', "");
+    Expect(0, 205743, '\P{^Is_Ideo=false}', "");
+    Expect(1, 205744, '\p{Is_Ideo=  false}', "");
+    Expect(0, 205744, '\p{^Is_Ideo=  false}', "");
+    Expect(0, 205744, '\P{Is_Ideo=  false}', "");
+    Expect(1, 205744, '\P{^Is_Ideo=  false}', "");
+    Expect(0, 205743, '\p{Is_Ideo=  false}', "");
+    Expect(1, 205743, '\p{^Is_Ideo=  false}', "");
+    Expect(1, 205743, '\P{Is_Ideo=  false}', "");
+    Expect(0, 205743, '\P{^Is_Ideo=  false}', "");
+    Error('\p{Ideographic:   /a/  Yes}');
+    Error('\P{Ideographic:   /a/  Yes}');
+    Expect(1, 205743, '\p{Ideographic=:\AYes\z:}', "");;
+    Expect(0, 205744, '\p{Ideographic=:\AYes\z:}', "");;
+    Expect(1, 205743, '\p{Ideographic=yes}', "");
+    Expect(0, 205743, '\p{^Ideographic=yes}', "");
+    Expect(0, 205743, '\P{Ideographic=yes}', "");
+    Expect(1, 205743, '\P{^Ideographic=yes}', "");
+    Expect(0, 205744, '\p{Ideographic=yes}', "");
+    Expect(1, 205744, '\p{^Ideographic=yes}', "");
+    Expect(1, 205744, '\P{Ideographic=yes}', "");
+    Expect(0, 205744, '\P{^Ideographic=yes}', "");
+    Expect(1, 205743, '\p{Ideographic=:\Ayes\z:}', "");;
+    Expect(0, 205744, '\p{Ideographic=:\Ayes\z:}', "");;
+    Expect(1, 205743, '\p{Ideographic=	_Yes}', "");
+    Expect(0, 205743, '\p{^Ideographic=	_Yes}', "");
+    Expect(0, 205743, '\P{Ideographic=	_Yes}', "");
+    Expect(1, 205743, '\P{^Ideographic=	_Yes}', "");
+    Expect(0, 205744, '\p{Ideographic=	_Yes}', "");
+    Expect(1, 205744, '\p{^Ideographic=	_Yes}', "");
+    Expect(1, 205744, '\P{Ideographic=	_Yes}', "");
+    Expect(0, 205744, '\P{^Ideographic=	_Yes}', "");
+    Error('\p{Ideo=_:=Y}');
+    Error('\P{Ideo=_:=Y}');
+    Expect(1, 205743, '\p{Ideo=:\AY\z:}', "");;
+    Expect(0, 205744, '\p{Ideo=:\AY\z:}', "");;
+    Expect(1, 205743, '\p{Ideo=y}', "");
+    Expect(0, 205743, '\p{^Ideo=y}', "");
+    Expect(0, 205743, '\P{Ideo=y}', "");
+    Expect(1, 205743, '\P{^Ideo=y}', "");
+    Expect(0, 205744, '\p{Ideo=y}', "");
+    Expect(1, 205744, '\p{^Ideo=y}', "");
+    Expect(1, 205744, '\P{Ideo=y}', "");
+    Expect(0, 205744, '\P{^Ideo=y}', "");
+    Expect(1, 205743, '\p{Ideo=:\Ay\z:}', "");;
+    Expect(0, 205744, '\p{Ideo=:\Ay\z:}', "");;
+    Expect(1, 205743, '\p{Ideo=__Y}', "");
+    Expect(0, 205743, '\p{^Ideo=__Y}', "");
+    Expect(0, 205743, '\P{Ideo=__Y}', "");
+    Expect(1, 205743, '\P{^Ideo=__Y}', "");
+    Expect(0, 205744, '\p{Ideo=__Y}', "");
+    Expect(1, 205744, '\p{^Ideo=__Y}', "");
+    Expect(1, 205744, '\P{Ideo=__Y}', "");
+    Expect(0, 205744, '\P{^Ideo=__Y}', "");
+    Error('\p{Is_Ideographic=	_T/a/}');
+    Error('\P{Is_Ideographic=	_T/a/}');
+    Expect(1, 205743, '\p{Is_Ideographic=t}', "");
+    Expect(0, 205743, '\p{^Is_Ideographic=t}', "");
+    Expect(0, 205743, '\P{Is_Ideographic=t}', "");
+    Expect(1, 205743, '\P{^Is_Ideographic=t}', "");
+    Expect(0, 205744, '\p{Is_Ideographic=t}', "");
+    Expect(1, 205744, '\p{^Is_Ideographic=t}', "");
+    Expect(1, 205744, '\P{Is_Ideographic=t}', "");
+    Expect(0, 205744, '\P{^Is_Ideographic=t}', "");
+    Expect(1, 205743, '\p{Is_Ideographic=-t}', "");
+    Expect(0, 205743, '\p{^Is_Ideographic=-t}', "");
+    Expect(0, 205743, '\P{Is_Ideographic=-t}', "");
+    Expect(1, 205743, '\P{^Is_Ideographic=-t}', "");
+    Expect(0, 205744, '\p{Is_Ideographic=-t}', "");
+    Expect(1, 205744, '\p{^Is_Ideographic=-t}', "");
+    Expect(1, 205744, '\P{Is_Ideographic=-t}', "");
+    Expect(0, 205744, '\P{^Is_Ideographic=-t}', "");
+    Error('\p{Is_Ideo=:= True}');
+    Error('\P{Is_Ideo=:= True}');
+    Expect(1, 205743, '\p{Is_Ideo=true}', "");
+    Expect(0, 205743, '\p{^Is_Ideo=true}', "");
+    Expect(0, 205743, '\P{Is_Ideo=true}', "");
+    Expect(1, 205743, '\P{^Is_Ideo=true}', "");
+    Expect(0, 205744, '\p{Is_Ideo=true}', "");
+    Expect(1, 205744, '\p{^Is_Ideo=true}', "");
+    Expect(1, 205744, '\P{Is_Ideo=true}', "");
+    Expect(0, 205744, '\P{^Is_Ideo=true}', "");
+    Expect(1, 205743, '\p{Is_Ideo=-	True}', "");
+    Expect(0, 205743, '\p{^Is_Ideo=-	True}', "");
+    Expect(0, 205743, '\P{Is_Ideo=-	True}', "");
+    Expect(1, 205743, '\P{^Is_Ideo=-	True}', "");
+    Expect(0, 205744, '\p{Is_Ideo=-	True}', "");
+    Expect(1, 205744, '\p{^Is_Ideo=-	True}', "");
+    Expect(1, 205744, '\P{Is_Ideo=-	True}', "");
+    Expect(0, 205744, '\P{^Is_Ideo=-	True}', "");
+    Error('\p{ID_Start=:=_no}');
+    Error('\P{ID_Start=:=_no}');
+    Expect(1, 205744, '\p{ID_Start=:\ANo\z:}', "");;
+    Expect(0, 205743, '\p{ID_Start=:\ANo\z:}', "");;
+    Expect(1, 205744, '\p{ID_Start=no}', "");
+    Expect(0, 205744, '\p{^ID_Start=no}', "");
+    Expect(0, 205744, '\P{ID_Start=no}', "");
+    Expect(1, 205744, '\P{^ID_Start=no}', "");
+    Expect(0, 205743, '\p{ID_Start=no}', "");
+    Expect(1, 205743, '\p{^ID_Start=no}', "");
+    Expect(1, 205743, '\P{ID_Start=no}', "");
+    Expect(0, 205743, '\P{^ID_Start=no}', "");
+    Expect(1, 205744, '\p{ID_Start=:\Ano\z:}', "");;
+    Expect(0, 205743, '\p{ID_Start=:\Ano\z:}', "");;
+    Expect(1, 205744, '\p{ID_Start=-_NO}', "");
+    Expect(0, 205744, '\p{^ID_Start=-_NO}', "");
+    Expect(0, 205744, '\P{ID_Start=-_NO}', "");
+    Expect(1, 205744, '\P{^ID_Start=-_NO}', "");
+    Expect(0, 205743, '\p{ID_Start=-_NO}', "");
+    Expect(1, 205743, '\p{^ID_Start=-_NO}', "");
+    Expect(1, 205743, '\P{ID_Start=-_NO}', "");
+    Expect(0, 205743, '\P{^ID_Start=-_NO}', "");
+    Error('\p{IDS=  n:=}');
+    Error('\P{IDS=  n:=}');
+    Expect(1, 205744, '\p{IDS=:\AN\z:}', "");;
+    Expect(0, 205743, '\p{IDS=:\AN\z:}', "");;
+    Expect(1, 205744, '\p{IDS=n}', "");
+    Expect(0, 205744, '\p{^IDS=n}', "");
+    Expect(0, 205744, '\P{IDS=n}', "");
+    Expect(1, 205744, '\P{^IDS=n}', "");
+    Expect(0, 205743, '\p{IDS=n}', "");
+    Expect(1, 205743, '\p{^IDS=n}', "");
+    Expect(1, 205743, '\P{IDS=n}', "");
+    Expect(0, 205743, '\P{^IDS=n}', "");
+    Expect(1, 205744, '\p{IDS=:\An\z:}', "");;
+    Expect(0, 205743, '\p{IDS=:\An\z:}', "");;
+    Expect(1, 205744, '\p{IDS=_-N}', "");
+    Expect(0, 205744, '\p{^IDS=_-N}', "");
+    Expect(0, 205744, '\P{IDS=_-N}', "");
+    Expect(1, 205744, '\P{^IDS=_-N}', "");
+    Expect(0, 205743, '\p{IDS=_-N}', "");
+    Expect(1, 205743, '\p{^IDS=_-N}', "");
+    Expect(1, 205743, '\P{IDS=_-N}', "");
+    Expect(0, 205743, '\P{^IDS=_-N}', "");
+    Error('\p{Is_ID_Start=:=-_F}');
+    Error('\P{Is_ID_Start=:=-_F}');
+    Expect(1, 205744, '\p{Is_ID_Start=f}', "");
+    Expect(0, 205744, '\p{^Is_ID_Start=f}', "");
+    Expect(0, 205744, '\P{Is_ID_Start=f}', "");
+    Expect(1, 205744, '\P{^Is_ID_Start=f}', "");
+    Expect(0, 205743, '\p{Is_ID_Start=f}', "");
+    Expect(1, 205743, '\p{^Is_ID_Start=f}', "");
+    Expect(1, 205743, '\P{Is_ID_Start=f}', "");
+    Expect(0, 205743, '\P{^Is_ID_Start=f}', "");
+    Expect(1, 205744, '\p{Is_ID_Start= 	F}', "");
+    Expect(0, 205744, '\p{^Is_ID_Start= 	F}', "");
+    Expect(0, 205744, '\P{Is_ID_Start= 	F}', "");
+    Expect(1, 205744, '\P{^Is_ID_Start= 	F}', "");
+    Expect(0, 205743, '\p{Is_ID_Start= 	F}', "");
+    Expect(1, 205743, '\p{^Is_ID_Start= 	F}', "");
+    Expect(1, 205743, '\P{Is_ID_Start= 	F}', "");
+    Expect(0, 205743, '\P{^Is_ID_Start= 	F}', "");
+    Error('\p{Is_IDS=/a/	-False}');
+    Error('\P{Is_IDS=/a/	-False}');
+    Expect(1, 205744, '\p{Is_IDS=false}', "");
+    Expect(0, 205744, '\p{^Is_IDS=false}', "");
+    Expect(0, 205744, '\P{Is_IDS=false}', "");
+    Expect(1, 205744, '\P{^Is_IDS=false}', "");
+    Expect(0, 205743, '\p{Is_IDS=false}', "");
+    Expect(1, 205743, '\p{^Is_IDS=false}', "");
+    Expect(1, 205743, '\P{Is_IDS=false}', "");
+    Expect(0, 205743, '\P{^Is_IDS=false}', "");
+    Expect(1, 205744, '\p{Is_IDS= false}', "");
+    Expect(0, 205744, '\p{^Is_IDS= false}', "");
+    Expect(0, 205744, '\P{Is_IDS= false}', "");
+    Expect(1, 205744, '\P{^Is_IDS= false}', "");
+    Expect(0, 205743, '\p{Is_IDS= false}', "");
+    Expect(1, 205743, '\p{^Is_IDS= false}', "");
+    Expect(1, 205743, '\P{Is_IDS= false}', "");
+    Expect(0, 205743, '\P{^Is_IDS= false}', "");
+    Error('\p{ID_Start=/a/-	YES}');
+    Error('\P{ID_Start=/a/-	YES}');
+    Expect(1, 205743, '\p{ID_Start=:\AYes\z:}', "");;
+    Expect(0, 205744, '\p{ID_Start=:\AYes\z:}', "");;
+    Expect(1, 205743, '\p{ID_Start:   yes}', "");
+    Expect(0, 205743, '\p{^ID_Start:   yes}', "");
+    Expect(0, 205743, '\P{ID_Start:   yes}', "");
+    Expect(1, 205743, '\P{^ID_Start:   yes}', "");
+    Expect(0, 205744, '\p{ID_Start:   yes}', "");
+    Expect(1, 205744, '\p{^ID_Start:   yes}', "");
+    Expect(1, 205744, '\P{ID_Start:   yes}', "");
+    Expect(0, 205744, '\P{^ID_Start:   yes}', "");
+    Expect(1, 205743, '\p{ID_Start=:\Ayes\z:}', "");;
+    Expect(0, 205744, '\p{ID_Start=:\Ayes\z:}', "");;
+    Expect(1, 205743, '\p{ID_Start= -Yes}', "");
+    Expect(0, 205743, '\p{^ID_Start= -Yes}', "");
+    Expect(0, 205743, '\P{ID_Start= -Yes}', "");
+    Expect(1, 205743, '\P{^ID_Start= -Yes}', "");
+    Expect(0, 205744, '\p{ID_Start= -Yes}', "");
+    Expect(1, 205744, '\p{^ID_Start= -Yes}', "");
+    Expect(1, 205744, '\P{ID_Start= -Yes}', "");
+    Expect(0, 205744, '\P{^ID_Start= -Yes}', "");
+    Error('\p{IDS:   -_y:=}');
+    Error('\P{IDS:   -_y:=}');
+    Expect(1, 205743, '\p{IDS=:\AY\z:}', "");;
+    Expect(0, 205744, '\p{IDS=:\AY\z:}', "");;
+    Expect(1, 205743, '\p{IDS=y}', "");
+    Expect(0, 205743, '\p{^IDS=y}', "");
+    Expect(0, 205743, '\P{IDS=y}', "");
+    Expect(1, 205743, '\P{^IDS=y}', "");
+    Expect(0, 205744, '\p{IDS=y}', "");
+    Expect(1, 205744, '\p{^IDS=y}', "");
+    Expect(1, 205744, '\P{IDS=y}', "");
+    Expect(0, 205744, '\P{^IDS=y}', "");
+    Expect(1, 205743, '\p{IDS=:\Ay\z:}', "");;
+    Expect(0, 205744, '\p{IDS=:\Ay\z:}', "");;
+    Expect(1, 205743, '\p{IDS=-Y}', "");
+    Expect(0, 205743, '\p{^IDS=-Y}', "");
+    Expect(0, 205743, '\P{IDS=-Y}', "");
+    Expect(1, 205743, '\P{^IDS=-Y}', "");
+    Expect(0, 205744, '\p{IDS=-Y}', "");
+    Expect(1, 205744, '\p{^IDS=-Y}', "");
+    Expect(1, 205744, '\P{IDS=-Y}', "");
+    Expect(0, 205744, '\P{^IDS=-Y}', "");
+    Error('\p{Is_ID_Start=	t:=}');
+    Error('\P{Is_ID_Start=	t:=}');
+    Expect(1, 205743, '\p{Is_ID_Start=t}', "");
+    Expect(0, 205743, '\p{^Is_ID_Start=t}', "");
+    Expect(0, 205743, '\P{Is_ID_Start=t}', "");
+    Expect(1, 205743, '\P{^Is_ID_Start=t}', "");
+    Expect(0, 205744, '\p{Is_ID_Start=t}', "");
+    Expect(1, 205744, '\p{^Is_ID_Start=t}', "");
+    Expect(1, 205744, '\P{Is_ID_Start=t}', "");
+    Expect(0, 205744, '\P{^Is_ID_Start=t}', "");
+    Expect(1, 205743, '\p{Is_ID_Start=--T}', "");
+    Expect(0, 205743, '\p{^Is_ID_Start=--T}', "");
+    Expect(0, 205743, '\P{Is_ID_Start=--T}', "");
+    Expect(1, 205743, '\P{^Is_ID_Start=--T}', "");
+    Expect(0, 205744, '\p{Is_ID_Start=--T}', "");
+    Expect(1, 205744, '\p{^Is_ID_Start=--T}', "");
+    Expect(1, 205744, '\P{Is_ID_Start=--T}', "");
+    Expect(0, 205744, '\P{^Is_ID_Start=--T}', "");
+    Error('\p{Is_IDS=_ TRUE/a/}');
+    Error('\P{Is_IDS=_ TRUE/a/}');
+    Expect(1, 205743, '\p{Is_IDS=true}', "");
+    Expect(0, 205743, '\p{^Is_IDS=true}', "");
+    Expect(0, 205743, '\P{Is_IDS=true}', "");
+    Expect(1, 205743, '\P{^Is_IDS=true}', "");
+    Expect(0, 205744, '\p{Is_IDS=true}', "");
+    Expect(1, 205744, '\p{^Is_IDS=true}', "");
+    Expect(1, 205744, '\P{Is_IDS=true}', "");
+    Expect(0, 205744, '\P{^Is_IDS=true}', "");
+    Expect(1, 205743, '\p{Is_IDS=_-TRUE}', "");
+    Expect(0, 205743, '\p{^Is_IDS=_-TRUE}', "");
+    Expect(0, 205743, '\P{Is_IDS=_-TRUE}', "");
+    Expect(1, 205743, '\P{^Is_IDS=_-TRUE}', "");
+    Expect(0, 205744, '\p{Is_IDS=_-TRUE}', "");
+    Expect(1, 205744, '\p{^Is_IDS=_-TRUE}', "");
+    Expect(1, 205744, '\P{Is_IDS=_-TRUE}', "");
+    Expect(0, 205744, '\P{^Is_IDS=_-TRUE}', "");
+    Error('\p{IDS_Binary_Operator=-	NO/a/}');
+    Error('\P{IDS_Binary_Operator=-	NO/a/}');
     Expect(1, 12284, '\p{IDS_Binary_Operator=:\ANo\z:}', "");;
     Expect(0, 12283, '\p{IDS_Binary_Operator=:\ANo\z:}', "");;
     Expect(1, 12284, '\p{IDS_Binary_Operator=no}', "");
@@ -46823,16 +47383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12283, '\P{^IDS_Binary_Operator=no}', "");
     Expect(1, 12284, '\p{IDS_Binary_Operator=:\Ano\z:}', "");;
     Expect(0, 12283, '\p{IDS_Binary_Operator=:\Ano\z:}', "");;
-    Expect(1, 12284, '\p{IDS_Binary_Operator:  NO}', "");
-    Expect(0, 12284, '\p{^IDS_Binary_Operator:  NO}', "");
-    Expect(0, 12284, '\P{IDS_Binary_Operator:  NO}', "");
-    Expect(1, 12284, '\P{^IDS_Binary_Operator:  NO}', "");
-    Expect(0, 12283, '\p{IDS_Binary_Operator:  NO}', "");
-    Expect(1, 12283, '\p{^IDS_Binary_Operator:  NO}', "");
-    Expect(1, 12283, '\P{IDS_Binary_Operator:  NO}', "");
-    Expect(0, 12283, '\P{^IDS_Binary_Operator:  NO}', "");
-    Error('\p{IDSB=/a/N}');
-    Error('\P{IDSB=/a/N}');
+    Expect(1, 12284, '\p{IDS_Binary_Operator:		 NO}', "");
+    Expect(0, 12284, '\p{^IDS_Binary_Operator:		 NO}', "");
+    Expect(0, 12284, '\P{IDS_Binary_Operator:		 NO}', "");
+    Expect(1, 12284, '\P{^IDS_Binary_Operator:		 NO}', "");
+    Expect(0, 12283, '\p{IDS_Binary_Operator:		 NO}', "");
+    Expect(1, 12283, '\p{^IDS_Binary_Operator:		 NO}', "");
+    Expect(1, 12283, '\P{IDS_Binary_Operator:		 NO}', "");
+    Expect(0, 12283, '\P{^IDS_Binary_Operator:		 NO}', "");
+    Error('\p{IDSB=--N/a/}');
+    Error('\P{IDSB=--N/a/}');
     Expect(1, 12284, '\p{IDSB=:\AN\z:}', "");;
     Expect(0, 12283, '\p{IDSB=:\AN\z:}', "");;
     Expect(1, 12284, '\p{IDSB=n}', "");
@@ -46845,16 +47405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12283, '\P{^IDSB=n}', "");
     Expect(1, 12284, '\p{IDSB=:\An\z:}', "");;
     Expect(0, 12283, '\p{IDSB=:\An\z:}', "");;
-    Expect(1, 12284, '\p{IDSB=	 N}', "");
-    Expect(0, 12284, '\p{^IDSB=	 N}', "");
-    Expect(0, 12284, '\P{IDSB=	 N}', "");
-    Expect(1, 12284, '\P{^IDSB=	 N}', "");
-    Expect(0, 12283, '\p{IDSB=	 N}', "");
-    Expect(1, 12283, '\p{^IDSB=	 N}', "");
-    Expect(1, 12283, '\P{IDSB=	 N}', "");
-    Expect(0, 12283, '\P{^IDSB=	 N}', "");
-    Error('\p{Is_IDS_Binary_Operator=-F:=}');
-    Error('\P{Is_IDS_Binary_Operator=-F:=}');
+    Expect(1, 12284, '\p{IDSB=		N}', "");
+    Expect(0, 12284, '\p{^IDSB=		N}', "");
+    Expect(0, 12284, '\P{IDSB=		N}', "");
+    Expect(1, 12284, '\P{^IDSB=		N}', "");
+    Expect(0, 12283, '\p{IDSB=		N}', "");
+    Expect(1, 12283, '\p{^IDSB=		N}', "");
+    Expect(1, 12283, '\P{IDSB=		N}', "");
+    Expect(0, 12283, '\P{^IDSB=		N}', "");
+    Error('\p{Is_IDS_Binary_Operator=-/a/F}');
+    Error('\P{Is_IDS_Binary_Operator=-/a/F}');
     Expect(1, 12284, '\p{Is_IDS_Binary_Operator=f}', "");
     Expect(0, 12284, '\p{^Is_IDS_Binary_Operator=f}', "");
     Expect(0, 12284, '\P{Is_IDS_Binary_Operator=f}', "");
@@ -46863,16 +47423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12283, '\p{^Is_IDS_Binary_Operator=f}', "");
     Expect(1, 12283, '\P{Is_IDS_Binary_Operator=f}', "");
     Expect(0, 12283, '\P{^Is_IDS_Binary_Operator=f}', "");
-    Expect(1, 12284, '\p{Is_IDS_Binary_Operator=	-F}', "");
-    Expect(0, 12284, '\p{^Is_IDS_Binary_Operator=	-F}', "");
-    Expect(0, 12284, '\P{Is_IDS_Binary_Operator=	-F}', "");
-    Expect(1, 12284, '\P{^Is_IDS_Binary_Operator=	-F}', "");
-    Expect(0, 12283, '\p{Is_IDS_Binary_Operator=	-F}', "");
-    Expect(1, 12283, '\p{^Is_IDS_Binary_Operator=	-F}', "");
-    Expect(1, 12283, '\P{Is_IDS_Binary_Operator=	-F}', "");
-    Expect(0, 12283, '\P{^Is_IDS_Binary_Operator=	-F}', "");
-    Error('\p{Is_IDSB=_:=FALSE}');
-    Error('\P{Is_IDSB=_:=FALSE}');
+    Expect(1, 12284, '\p{Is_IDS_Binary_Operator=--F}', "");
+    Expect(0, 12284, '\p{^Is_IDS_Binary_Operator=--F}', "");
+    Expect(0, 12284, '\P{Is_IDS_Binary_Operator=--F}', "");
+    Expect(1, 12284, '\P{^Is_IDS_Binary_Operator=--F}', "");
+    Expect(0, 12283, '\p{Is_IDS_Binary_Operator=--F}', "");
+    Expect(1, 12283, '\p{^Is_IDS_Binary_Operator=--F}', "");
+    Expect(1, 12283, '\P{Is_IDS_Binary_Operator=--F}', "");
+    Expect(0, 12283, '\P{^Is_IDS_Binary_Operator=--F}', "");
+    Error('\p{Is_IDSB=- false:=}');
+    Error('\P{Is_IDSB=- false:=}');
     Expect(1, 12284, '\p{Is_IDSB=false}', "");
     Expect(0, 12284, '\p{^Is_IDSB=false}', "");
     Expect(0, 12284, '\P{Is_IDSB=false}', "");
@@ -46881,16 +47441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12283, '\p{^Is_IDSB=false}', "");
     Expect(1, 12283, '\P{Is_IDSB=false}', "");
     Expect(0, 12283, '\P{^Is_IDSB=false}', "");
-    Expect(1, 12284, '\p{Is_IDSB=__FALSE}', "");
-    Expect(0, 12284, '\p{^Is_IDSB=__FALSE}', "");
-    Expect(0, 12284, '\P{Is_IDSB=__FALSE}', "");
-    Expect(1, 12284, '\P{^Is_IDSB=__FALSE}', "");
-    Expect(0, 12283, '\p{Is_IDSB=__FALSE}', "");
-    Expect(1, 12283, '\p{^Is_IDSB=__FALSE}', "");
-    Expect(1, 12283, '\P{Is_IDSB=__FALSE}', "");
-    Expect(0, 12283, '\P{^Is_IDSB=__FALSE}', "");
-    Error('\p{IDS_Binary_Operator=_	Yes/a/}');
-    Error('\P{IDS_Binary_Operator=_	Yes/a/}');
+    Expect(1, 12284, '\p{Is_IDSB=_	FALSE}', "");
+    Expect(0, 12284, '\p{^Is_IDSB=_	FALSE}', "");
+    Expect(0, 12284, '\P{Is_IDSB=_	FALSE}', "");
+    Expect(1, 12284, '\P{^Is_IDSB=_	FALSE}', "");
+    Expect(0, 12283, '\p{Is_IDSB=_	FALSE}', "");
+    Expect(1, 12283, '\p{^Is_IDSB=_	FALSE}', "");
+    Expect(1, 12283, '\P{Is_IDSB=_	FALSE}', "");
+    Expect(0, 12283, '\P{^Is_IDSB=_	FALSE}', "");
+    Error('\p{IDS_Binary_Operator=-:=Yes}');
+    Error('\P{IDS_Binary_Operator=-:=Yes}');
     Expect(1, 12283, '\p{IDS_Binary_Operator=:\AYes\z:}', "");;
     Expect(0, 12284, '\p{IDS_Binary_Operator=:\AYes\z:}', "");;
     Expect(1, 12283, '\p{IDS_Binary_Operator=yes}', "");
@@ -46903,16 +47463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12284, '\P{^IDS_Binary_Operator=yes}', "");
     Expect(1, 12283, '\p{IDS_Binary_Operator=:\Ayes\z:}', "");;
     Expect(0, 12284, '\p{IDS_Binary_Operator=:\Ayes\z:}', "");;
-    Expect(1, 12283, '\p{IDS_Binary_Operator=_-yes}', "");
-    Expect(0, 12283, '\p{^IDS_Binary_Operator=_-yes}', "");
-    Expect(0, 12283, '\P{IDS_Binary_Operator=_-yes}', "");
-    Expect(1, 12283, '\P{^IDS_Binary_Operator=_-yes}', "");
-    Expect(0, 12284, '\p{IDS_Binary_Operator=_-yes}', "");
-    Expect(1, 12284, '\p{^IDS_Binary_Operator=_-yes}', "");
-    Expect(1, 12284, '\P{IDS_Binary_Operator=_-yes}', "");
-    Expect(0, 12284, '\P{^IDS_Binary_Operator=_-yes}', "");
-    Error('\p{IDSB=:=	_y}');
-    Error('\P{IDSB=:=	_y}');
+    Expect(1, 12283, '\p{IDS_Binary_Operator=-_Yes}', "");
+    Expect(0, 12283, '\p{^IDS_Binary_Operator=-_Yes}', "");
+    Expect(0, 12283, '\P{IDS_Binary_Operator=-_Yes}', "");
+    Expect(1, 12283, '\P{^IDS_Binary_Operator=-_Yes}', "");
+    Expect(0, 12284, '\p{IDS_Binary_Operator=-_Yes}', "");
+    Expect(1, 12284, '\p{^IDS_Binary_Operator=-_Yes}', "");
+    Expect(1, 12284, '\P{IDS_Binary_Operator=-_Yes}', "");
+    Expect(0, 12284, '\P{^IDS_Binary_Operator=-_Yes}', "");
+    Error('\p{IDSB=	Y:=}');
+    Error('\P{IDSB=	Y:=}');
     Expect(1, 12283, '\p{IDSB=:\AY\z:}', "");;
     Expect(0, 12284, '\p{IDSB=:\AY\z:}', "");;
     Expect(1, 12283, '\p{IDSB=y}', "");
@@ -46925,16 +47485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12284, '\P{^IDSB=y}', "");
     Expect(1, 12283, '\p{IDSB=:\Ay\z:}', "");;
     Expect(0, 12284, '\p{IDSB=:\Ay\z:}', "");;
-    Expect(1, 12283, '\p{IDSB=	-Y}', "");
-    Expect(0, 12283, '\p{^IDSB=	-Y}', "");
-    Expect(0, 12283, '\P{IDSB=	-Y}', "");
-    Expect(1, 12283, '\P{^IDSB=	-Y}', "");
-    Expect(0, 12284, '\p{IDSB=	-Y}', "");
-    Expect(1, 12284, '\p{^IDSB=	-Y}', "");
-    Expect(1, 12284, '\P{IDSB=	-Y}', "");
-    Expect(0, 12284, '\P{^IDSB=	-Y}', "");
-    Error('\p{Is_IDS_Binary_Operator=:= -t}');
-    Error('\P{Is_IDS_Binary_Operator=:= -t}');
+    Expect(1, 12283, '\p{IDSB:   		Y}', "");
+    Expect(0, 12283, '\p{^IDSB:   		Y}', "");
+    Expect(0, 12283, '\P{IDSB:   		Y}', "");
+    Expect(1, 12283, '\P{^IDSB:   		Y}', "");
+    Expect(0, 12284, '\p{IDSB:   		Y}', "");
+    Expect(1, 12284, '\p{^IDSB:   		Y}', "");
+    Expect(1, 12284, '\P{IDSB:   		Y}', "");
+    Expect(0, 12284, '\P{^IDSB:   		Y}', "");
+    Error('\p{Is_IDS_Binary_Operator=_/a/t}');
+    Error('\P{Is_IDS_Binary_Operator=_/a/t}');
     Expect(1, 12283, '\p{Is_IDS_Binary_Operator=t}', "");
     Expect(0, 12283, '\p{^Is_IDS_Binary_Operator=t}', "");
     Expect(0, 12283, '\P{Is_IDS_Binary_Operator=t}', "");
@@ -46943,16 +47503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12284, '\p{^Is_IDS_Binary_Operator=t}', "");
     Expect(1, 12284, '\P{Is_IDS_Binary_Operator=t}', "");
     Expect(0, 12284, '\P{^Is_IDS_Binary_Operator=t}', "");
-    Expect(1, 12283, '\p{Is_IDS_Binary_Operator: _T}', "");
-    Expect(0, 12283, '\p{^Is_IDS_Binary_Operator: _T}', "");
-    Expect(0, 12283, '\P{Is_IDS_Binary_Operator: _T}', "");
-    Expect(1, 12283, '\P{^Is_IDS_Binary_Operator: _T}', "");
-    Expect(0, 12284, '\p{Is_IDS_Binary_Operator: _T}', "");
-    Expect(1, 12284, '\p{^Is_IDS_Binary_Operator: _T}', "");
-    Expect(1, 12284, '\P{Is_IDS_Binary_Operator: _T}', "");
-    Expect(0, 12284, '\P{^Is_IDS_Binary_Operator: _T}', "");
-    Error('\p{Is_IDSB= -True:=}');
-    Error('\P{Is_IDSB= -True:=}');
+    Expect(1, 12283, '\p{Is_IDS_Binary_Operator:_T}', "");
+    Expect(0, 12283, '\p{^Is_IDS_Binary_Operator:_T}', "");
+    Expect(0, 12283, '\P{Is_IDS_Binary_Operator:_T}', "");
+    Expect(1, 12283, '\P{^Is_IDS_Binary_Operator:_T}', "");
+    Expect(0, 12284, '\p{Is_IDS_Binary_Operator:_T}', "");
+    Expect(1, 12284, '\p{^Is_IDS_Binary_Operator:_T}', "");
+    Expect(1, 12284, '\P{Is_IDS_Binary_Operator:_T}', "");
+    Expect(0, 12284, '\P{^Is_IDS_Binary_Operator:_T}', "");
+    Error('\p{Is_IDSB=_/a/True}');
+    Error('\P{Is_IDSB=_/a/True}');
     Expect(1, 12283, '\p{Is_IDSB=true}', "");
     Expect(0, 12283, '\p{^Is_IDSB=true}', "");
     Expect(0, 12283, '\P{Is_IDSB=true}', "");
@@ -46961,16 +47521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12284, '\p{^Is_IDSB=true}', "");
     Expect(1, 12284, '\P{Is_IDSB=true}', "");
     Expect(0, 12284, '\P{^Is_IDSB=true}', "");
-    Expect(1, 12283, '\p{Is_IDSB=-	True}', "");
-    Expect(0, 12283, '\p{^Is_IDSB=-	True}', "");
-    Expect(0, 12283, '\P{Is_IDSB=-	True}', "");
-    Expect(1, 12283, '\P{^Is_IDSB=-	True}', "");
-    Expect(0, 12284, '\p{Is_IDSB=-	True}', "");
-    Expect(1, 12284, '\p{^Is_IDSB=-	True}', "");
-    Expect(1, 12284, '\P{Is_IDSB=-	True}', "");
-    Expect(0, 12284, '\P{^Is_IDSB=-	True}', "");
-    Error('\p{IDS_Trinary_Operator=:=_ no}');
-    Error('\P{IDS_Trinary_Operator=:=_ no}');
+    Expect(1, 12283, '\p{Is_IDSB= true}', "");
+    Expect(0, 12283, '\p{^Is_IDSB= true}', "");
+    Expect(0, 12283, '\P{Is_IDSB= true}', "");
+    Expect(1, 12283, '\P{^Is_IDSB= true}', "");
+    Expect(0, 12284, '\p{Is_IDSB= true}', "");
+    Expect(1, 12284, '\p{^Is_IDSB= true}', "");
+    Expect(1, 12284, '\P{Is_IDSB= true}', "");
+    Expect(0, 12284, '\P{^Is_IDSB= true}', "");
+    Error('\p{IDS_Trinary_Operator=	/a/No}');
+    Error('\P{IDS_Trinary_Operator=	/a/No}');
     Expect(1, 12276, '\p{IDS_Trinary_Operator=:\ANo\z:}', "");;
     Expect(0, 12275, '\p{IDS_Trinary_Operator=:\ANo\z:}', "");;
     Expect(1, 12276, '\p{IDS_Trinary_Operator=no}', "");
@@ -46983,16 +47543,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12275, '\P{^IDS_Trinary_Operator=no}', "");
     Expect(1, 12276, '\p{IDS_Trinary_Operator=:\Ano\z:}', "");;
     Expect(0, 12275, '\p{IDS_Trinary_Operator=:\Ano\z:}', "");;
-    Expect(1, 12276, '\p{IDS_Trinary_Operator=__No}', "");
-    Expect(0, 12276, '\p{^IDS_Trinary_Operator=__No}', "");
-    Expect(0, 12276, '\P{IDS_Trinary_Operator=__No}', "");
-    Expect(1, 12276, '\P{^IDS_Trinary_Operator=__No}', "");
-    Expect(0, 12275, '\p{IDS_Trinary_Operator=__No}', "");
-    Expect(1, 12275, '\p{^IDS_Trinary_Operator=__No}', "");
-    Expect(1, 12275, '\P{IDS_Trinary_Operator=__No}', "");
-    Expect(0, 12275, '\P{^IDS_Trinary_Operator=__No}', "");
-    Error('\p{IDST: __N:=}');
-    Error('\P{IDST: __N:=}');
+    Expect(1, 12276, '\p{IDS_Trinary_Operator=	no}', "");
+    Expect(0, 12276, '\p{^IDS_Trinary_Operator=	no}', "");
+    Expect(0, 12276, '\P{IDS_Trinary_Operator=	no}', "");
+    Expect(1, 12276, '\P{^IDS_Trinary_Operator=	no}', "");
+    Expect(0, 12275, '\p{IDS_Trinary_Operator=	no}', "");
+    Expect(1, 12275, '\p{^IDS_Trinary_Operator=	no}', "");
+    Expect(1, 12275, '\P{IDS_Trinary_Operator=	no}', "");
+    Expect(0, 12275, '\P{^IDS_Trinary_Operator=	no}', "");
+    Error('\p{IDST=/a/- N}');
+    Error('\P{IDST=/a/- N}');
     Expect(1, 12276, '\p{IDST=:\AN\z:}', "");;
     Expect(0, 12275, '\p{IDST=:\AN\z:}', "");;
     Expect(1, 12276, '\p{IDST=n}', "");
@@ -47005,16 +47565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12275, '\P{^IDST=n}', "");
     Expect(1, 12276, '\p{IDST=:\An\z:}', "");;
     Expect(0, 12275, '\p{IDST=:\An\z:}', "");;
-    Expect(1, 12276, '\p{IDST= -n}', "");
-    Expect(0, 12276, '\p{^IDST= -n}', "");
-    Expect(0, 12276, '\P{IDST= -n}', "");
-    Expect(1, 12276, '\P{^IDST= -n}', "");
-    Expect(0, 12275, '\p{IDST= -n}', "");
-    Expect(1, 12275, '\p{^IDST= -n}', "");
-    Expect(1, 12275, '\P{IDST= -n}', "");
-    Expect(0, 12275, '\P{^IDST= -n}', "");
-    Error('\p{Is_IDS_Trinary_Operator=/a/  F}');
-    Error('\P{Is_IDS_Trinary_Operator=/a/  F}');
+    Expect(1, 12276, '\p{IDST=__N}', "");
+    Expect(0, 12276, '\p{^IDST=__N}', "");
+    Expect(0, 12276, '\P{IDST=__N}', "");
+    Expect(1, 12276, '\P{^IDST=__N}', "");
+    Expect(0, 12275, '\p{IDST=__N}', "");
+    Expect(1, 12275, '\p{^IDST=__N}', "");
+    Expect(1, 12275, '\P{IDST=__N}', "");
+    Expect(0, 12275, '\P{^IDST=__N}', "");
+    Error('\p{Is_IDS_Trinary_Operator=	-F:=}');
+    Error('\P{Is_IDS_Trinary_Operator=	-F:=}');
     Expect(1, 12276, '\p{Is_IDS_Trinary_Operator=f}', "");
     Expect(0, 12276, '\p{^Is_IDS_Trinary_Operator=f}', "");
     Expect(0, 12276, '\P{Is_IDS_Trinary_Operator=f}', "");
@@ -47023,16 +47583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12275, '\p{^Is_IDS_Trinary_Operator=f}', "");
     Expect(1, 12275, '\P{Is_IDS_Trinary_Operator=f}', "");
     Expect(0, 12275, '\P{^Is_IDS_Trinary_Operator=f}', "");
-    Expect(1, 12276, '\p{Is_IDS_Trinary_Operator= -f}', "");
-    Expect(0, 12276, '\p{^Is_IDS_Trinary_Operator= -f}', "");
-    Expect(0, 12276, '\P{Is_IDS_Trinary_Operator= -f}', "");
-    Expect(1, 12276, '\P{^Is_IDS_Trinary_Operator= -f}', "");
-    Expect(0, 12275, '\p{Is_IDS_Trinary_Operator= -f}', "");
-    Expect(1, 12275, '\p{^Is_IDS_Trinary_Operator= -f}', "");
-    Expect(1, 12275, '\P{Is_IDS_Trinary_Operator= -f}', "");
-    Expect(0, 12275, '\P{^Is_IDS_Trinary_Operator= -f}', "");
-    Error('\p{Is_IDST=:=False}');
-    Error('\P{Is_IDST=:=False}');
+    Expect(1, 12276, '\p{Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(0, 12276, '\p{^Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(0, 12276, '\P{Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(1, 12276, '\P{^Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(0, 12275, '\p{Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(1, 12275, '\p{^Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(1, 12275, '\P{Is_IDS_Trinary_Operator=	_f}', "");
+    Expect(0, 12275, '\P{^Is_IDS_Trinary_Operator=	_f}', "");
+    Error('\p{Is_IDST= :=false}');
+    Error('\P{Is_IDST= :=false}');
     Expect(1, 12276, '\p{Is_IDST=false}', "");
     Expect(0, 12276, '\p{^Is_IDST=false}', "");
     Expect(0, 12276, '\P{Is_IDST=false}', "");
@@ -47041,16 +47601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12275, '\p{^Is_IDST=false}', "");
     Expect(1, 12275, '\P{Is_IDST=false}', "");
     Expect(0, 12275, '\P{^Is_IDST=false}', "");
-    Expect(1, 12276, '\p{Is_IDST= False}', "");
-    Expect(0, 12276, '\p{^Is_IDST= False}', "");
-    Expect(0, 12276, '\P{Is_IDST= False}', "");
-    Expect(1, 12276, '\P{^Is_IDST= False}', "");
-    Expect(0, 12275, '\p{Is_IDST= False}', "");
-    Expect(1, 12275, '\p{^Is_IDST= False}', "");
-    Expect(1, 12275, '\P{Is_IDST= False}', "");
-    Expect(0, 12275, '\P{^Is_IDST= False}', "");
-    Error('\p{IDS_Trinary_Operator=_/a/Yes}');
-    Error('\P{IDS_Trinary_Operator=_/a/Yes}');
+    Expect(1, 12276, '\p{Is_IDST: 		False}', "");
+    Expect(0, 12276, '\p{^Is_IDST: 		False}', "");
+    Expect(0, 12276, '\P{Is_IDST: 		False}', "");
+    Expect(1, 12276, '\P{^Is_IDST: 		False}', "");
+    Expect(0, 12275, '\p{Is_IDST: 		False}', "");
+    Expect(1, 12275, '\p{^Is_IDST: 		False}', "");
+    Expect(1, 12275, '\P{Is_IDST: 		False}', "");
+    Expect(0, 12275, '\P{^Is_IDST: 		False}', "");
+    Error('\p{IDS_Trinary_Operator=:=- Yes}');
+    Error('\P{IDS_Trinary_Operator=:=- Yes}');
     Expect(1, 12275, '\p{IDS_Trinary_Operator=:\AYes\z:}', "");;
     Expect(0, 12276, '\p{IDS_Trinary_Operator=:\AYes\z:}', "");;
     Expect(1, 12275, '\p{IDS_Trinary_Operator=yes}', "");
@@ -47063,16 +47623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12276, '\P{^IDS_Trinary_Operator=yes}', "");
     Expect(1, 12275, '\p{IDS_Trinary_Operator=:\Ayes\z:}', "");;
     Expect(0, 12276, '\p{IDS_Trinary_Operator=:\Ayes\z:}', "");;
-    Expect(1, 12275, '\p{IDS_Trinary_Operator=_Yes}', "");
-    Expect(0, 12275, '\p{^IDS_Trinary_Operator=_Yes}', "");
-    Expect(0, 12275, '\P{IDS_Trinary_Operator=_Yes}', "");
-    Expect(1, 12275, '\P{^IDS_Trinary_Operator=_Yes}', "");
-    Expect(0, 12276, '\p{IDS_Trinary_Operator=_Yes}', "");
-    Expect(1, 12276, '\p{^IDS_Trinary_Operator=_Yes}', "");
-    Expect(1, 12276, '\P{IDS_Trinary_Operator=_Yes}', "");
-    Expect(0, 12276, '\P{^IDS_Trinary_Operator=_Yes}', "");
-    Error('\p{IDST=/a/__Y}');
-    Error('\P{IDST=/a/__Y}');
+    Expect(1, 12275, '\p{IDS_Trinary_Operator=_-yes}', "");
+    Expect(0, 12275, '\p{^IDS_Trinary_Operator=_-yes}', "");
+    Expect(0, 12275, '\P{IDS_Trinary_Operator=_-yes}', "");
+    Expect(1, 12275, '\P{^IDS_Trinary_Operator=_-yes}', "");
+    Expect(0, 12276, '\p{IDS_Trinary_Operator=_-yes}', "");
+    Expect(1, 12276, '\p{^IDS_Trinary_Operator=_-yes}', "");
+    Expect(1, 12276, '\P{IDS_Trinary_Operator=_-yes}', "");
+    Expect(0, 12276, '\P{^IDS_Trinary_Operator=_-yes}', "");
+    Error('\p{IDST=-:=Y}');
+    Error('\P{IDST=-:=Y}');
     Expect(1, 12275, '\p{IDST=:\AY\z:}', "");;
     Expect(0, 12276, '\p{IDST=:\AY\z:}', "");;
     Expect(1, 12275, '\p{IDST=y}', "");
@@ -47085,16 +47645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 12276, '\P{^IDST=y}', "");
     Expect(1, 12275, '\p{IDST=:\Ay\z:}', "");;
     Expect(0, 12276, '\p{IDST=:\Ay\z:}', "");;
-    Expect(1, 12275, '\p{IDST=	_Y}', "");
-    Expect(0, 12275, '\p{^IDST=	_Y}', "");
-    Expect(0, 12275, '\P{IDST=	_Y}', "");
-    Expect(1, 12275, '\P{^IDST=	_Y}', "");
-    Expect(0, 12276, '\p{IDST=	_Y}', "");
-    Expect(1, 12276, '\p{^IDST=	_Y}', "");
-    Expect(1, 12276, '\P{IDST=	_Y}', "");
-    Expect(0, 12276, '\P{^IDST=	_Y}', "");
-    Error('\p{Is_IDS_Trinary_Operator=_/a/T}');
-    Error('\P{Is_IDS_Trinary_Operator=_/a/T}');
+    Expect(1, 12275, '\p{IDST=		Y}', "");
+    Expect(0, 12275, '\p{^IDST=		Y}', "");
+    Expect(0, 12275, '\P{IDST=		Y}', "");
+    Expect(1, 12275, '\P{^IDST=		Y}', "");
+    Expect(0, 12276, '\p{IDST=		Y}', "");
+    Expect(1, 12276, '\p{^IDST=		Y}', "");
+    Expect(1, 12276, '\P{IDST=		Y}', "");
+    Expect(0, 12276, '\P{^IDST=		Y}', "");
+    Error('\p{Is_IDS_Trinary_Operator=:=_	T}');
+    Error('\P{Is_IDS_Trinary_Operator=:=_	T}');
     Expect(1, 12275, '\p{Is_IDS_Trinary_Operator=t}', "");
     Expect(0, 12275, '\p{^Is_IDS_Trinary_Operator=t}', "");
     Expect(0, 12275, '\P{Is_IDS_Trinary_Operator=t}', "");
@@ -47103,50 +47663,50 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12276, '\p{^Is_IDS_Trinary_Operator=t}', "");
     Expect(1, 12276, '\P{Is_IDS_Trinary_Operator=t}', "");
     Expect(0, 12276, '\P{^Is_IDS_Trinary_Operator=t}', "");
-    Expect(1, 12275, '\p{Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(0, 12275, '\p{^Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(0, 12275, '\P{Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(1, 12275, '\P{^Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(0, 12276, '\p{Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(1, 12276, '\p{^Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(1, 12276, '\P{Is_IDS_Trinary_Operator:	 	T}', "");
-    Expect(0, 12276, '\P{^Is_IDS_Trinary_Operator:	 	T}', "");
-    Error('\p{Is_IDST=	_True/a/}');
-    Error('\P{Is_IDST=	_True/a/}');
-    Expect(1, 12275, '\p{Is_IDST: true}', "");
-    Expect(0, 12275, '\p{^Is_IDST: true}', "");
-    Expect(0, 12275, '\P{Is_IDST: true}', "");
-    Expect(1, 12275, '\P{^Is_IDST: true}', "");
-    Expect(0, 12276, '\p{Is_IDST: true}', "");
-    Expect(1, 12276, '\p{^Is_IDST: true}', "");
-    Expect(1, 12276, '\P{Is_IDST: true}', "");
-    Expect(0, 12276, '\P{^Is_IDST: true}', "");
-    Expect(1, 12275, '\p{Is_IDST=  TRUE}', "");
-    Expect(0, 12275, '\p{^Is_IDST=  TRUE}', "");
-    Expect(0, 12275, '\P{Is_IDST=  TRUE}', "");
-    Expect(1, 12275, '\P{^Is_IDST=  TRUE}', "");
-    Expect(0, 12276, '\p{Is_IDST=  TRUE}', "");
-    Expect(1, 12276, '\p{^Is_IDST=  TRUE}', "");
-    Expect(1, 12276, '\P{Is_IDST=  TRUE}', "");
-    Expect(0, 12276, '\P{^Is_IDST=  TRUE}', "");
+    Expect(1, 12275, '\p{Is_IDS_Trinary_Operator=		T}', "");
+    Expect(0, 12275, '\p{^Is_IDS_Trinary_Operator=		T}', "");
+    Expect(0, 12275, '\P{Is_IDS_Trinary_Operator=		T}', "");
+    Expect(1, 12275, '\P{^Is_IDS_Trinary_Operator=		T}', "");
+    Expect(0, 12276, '\p{Is_IDS_Trinary_Operator=		T}', "");
+    Expect(1, 12276, '\p{^Is_IDS_Trinary_Operator=		T}', "");
+    Expect(1, 12276, '\P{Is_IDS_Trinary_Operator=		T}', "");
+    Expect(0, 12276, '\P{^Is_IDS_Trinary_Operator=		T}', "");
+    Error('\p{Is_IDST=/a/	TRUE}');
+    Error('\P{Is_IDST=/a/	TRUE}');
+    Expect(1, 12275, '\p{Is_IDST=true}', "");
+    Expect(0, 12275, '\p{^Is_IDST=true}', "");
+    Expect(0, 12275, '\P{Is_IDST=true}', "");
+    Expect(1, 12275, '\P{^Is_IDST=true}', "");
+    Expect(0, 12276, '\p{Is_IDST=true}', "");
+    Expect(1, 12276, '\p{^Is_IDST=true}', "");
+    Expect(1, 12276, '\P{Is_IDST=true}', "");
+    Expect(0, 12276, '\P{^Is_IDST=true}', "");
+    Expect(1, 12275, '\p{Is_IDST=--True}', "");
+    Expect(0, 12275, '\p{^Is_IDST=--True}', "");
+    Expect(0, 12275, '\P{Is_IDST=--True}', "");
+    Expect(1, 12275, '\P{^Is_IDST=--True}', "");
+    Expect(0, 12276, '\p{Is_IDST=--True}', "");
+    Expect(1, 12276, '\p{^Is_IDST=--True}', "");
+    Expect(1, 12276, '\P{Is_IDST=--True}', "");
+    Expect(0, 12276, '\P{^Is_IDST=--True}', "");
     Error('\p{presentin}');
     Error('\P{presentin}');
     Error('\p{in}');
     Error('\P{in}');
-    Error('\p{Present_In=_/a/00_00_1.1}');
-    Error('\P{Present_In=_/a/00_00_1.1}');
+    Error('\p{Present_In=/a/00001.1}');
+    Error('\P{Present_In=/a/00001.1}');
     Expect(1, 65533, '\p{Present_In=:\A1.1\z:}', "");;
     Expect(0, 65536, '\p{Present_In=:\A1.1\z:}', "");;
-    Expect(1, 65533, '\p{Present_In=+1.1}', "");
-    Expect(0, 65533, '\p{^Present_In=+1.1}', "");
-    Expect(0, 65533, '\P{Present_In=+1.1}', "");
-    Expect(1, 65533, '\P{^Present_In=+1.1}', "");
-    Expect(0, 65536, '\p{Present_In=+1.1}', "");
-    Expect(1, 65536, '\p{^Present_In=+1.1}', "");
-    Expect(1, 65536, '\P{Present_In=+1.1}', "");
-    Expect(0, 65536, '\P{^Present_In=+1.1}', "");
-    Error('\p{In= 	V1_1/a/}');
-    Error('\P{In= 	V1_1/a/}');
+    Expect(1, 65533, '\p{Present_In:   +0_1.1}', "");
+    Expect(0, 65533, '\p{^Present_In:   +0_1.1}', "");
+    Expect(0, 65533, '\P{Present_In:   +0_1.1}', "");
+    Expect(1, 65533, '\P{^Present_In:   +0_1.1}', "");
+    Expect(0, 65536, '\p{Present_In:   +0_1.1}', "");
+    Expect(1, 65536, '\p{^Present_In:   +0_1.1}', "");
+    Expect(1, 65536, '\P{Present_In:   +0_1.1}', "");
+    Expect(0, 65536, '\P{^Present_In:   +0_1.1}', "");
+    Error('\p{In=:=- V1_1}');
+    Error('\P{In=:=- V1_1}');
     Expect(1, 65533, '\p{In=:\AV1_1\z:}', "");;
     Expect(0, 65536, '\p{In=:\AV1_1\z:}', "");;
     Expect(1, 65533, '\p{In=v11}', "");
@@ -47159,26 +47719,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65536, '\P{^In=v11}', "");
     Expect(1, 65533, '\p{In=:\Av11\z:}', "");;
     Expect(0, 65536, '\p{In=:\Av11\z:}', "");;
-    Expect(1, 65533, '\p{In= v1_1}', "");
-    Expect(0, 65533, '\p{^In= v1_1}', "");
-    Expect(0, 65533, '\P{In= v1_1}', "");
-    Expect(1, 65533, '\P{^In= v1_1}', "");
-    Expect(0, 65536, '\p{In= v1_1}', "");
-    Expect(1, 65536, '\p{^In= v1_1}', "");
-    Expect(1, 65536, '\P{In= v1_1}', "");
-    Expect(0, 65536, '\P{^In= v1_1}', "");
-    Error('\p{Is_Present_In=		0001.1/a/}');
-    Error('\P{Is_Present_In=		0001.1/a/}');
-    Expect(1, 65533, '\p{Is_Present_In=000_000_01.1}', "");
-    Expect(0, 65533, '\p{^Is_Present_In=000_000_01.1}', "");
-    Expect(0, 65533, '\P{Is_Present_In=000_000_01.1}', "");
-    Expect(1, 65533, '\P{^Is_Present_In=000_000_01.1}', "");
-    Expect(0, 65536, '\p{Is_Present_In=000_000_01.1}', "");
-    Expect(1, 65536, '\p{^Is_Present_In=000_000_01.1}', "");
-    Expect(1, 65536, '\P{Is_Present_In=000_000_01.1}', "");
-    Expect(0, 65536, '\P{^Is_Present_In=000_000_01.1}', "");
-    Error('\p{Is_In=_/a/V1_1}');
-    Error('\P{Is_In=_/a/V1_1}');
+    Expect(1, 65533, '\p{In=-	V1_1}', "");
+    Expect(0, 65533, '\p{^In=-	V1_1}', "");
+    Expect(0, 65533, '\P{In=-	V1_1}', "");
+    Expect(1, 65533, '\P{^In=-	V1_1}', "");
+    Expect(0, 65536, '\p{In=-	V1_1}', "");
+    Expect(1, 65536, '\p{^In=-	V1_1}', "");
+    Expect(1, 65536, '\P{In=-	V1_1}', "");
+    Expect(0, 65536, '\P{^In=-	V1_1}', "");
+    Error('\p{Is_Present_In:   - +001.1/a/}');
+    Error('\P{Is_Present_In:   - +001.1/a/}');
+    Expect(1, 65533, '\p{Is_Present_In=01.1}', "");
+    Expect(0, 65533, '\p{^Is_Present_In=01.1}', "");
+    Expect(0, 65533, '\P{Is_Present_In=01.1}', "");
+    Expect(1, 65533, '\P{^Is_Present_In=01.1}', "");
+    Expect(0, 65536, '\p{Is_Present_In=01.1}', "");
+    Expect(1, 65536, '\p{^Is_Present_In=01.1}', "");
+    Expect(1, 65536, '\P{Is_Present_In=01.1}', "");
+    Expect(0, 65536, '\P{^Is_Present_In=01.1}', "");
+    Error('\p{Is_In:   -/a/V1_1}');
+    Error('\P{Is_In:   -/a/V1_1}');
     Expect(1, 65533, '\p{Is_In=v11}', "");
     Expect(0, 65533, '\p{^Is_In=v11}', "");
     Expect(0, 65533, '\P{Is_In=v11}', "");
@@ -47187,28 +47747,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65536, '\p{^Is_In=v11}', "");
     Expect(1, 65536, '\P{Is_In=v11}', "");
     Expect(0, 65536, '\P{^Is_In=v11}', "");
-    Expect(1, 65533, '\p{Is_In=__v1_1}', "");
-    Expect(0, 65533, '\p{^Is_In=__v1_1}', "");
-    Expect(0, 65533, '\P{Is_In=__v1_1}', "");
-    Expect(1, 65533, '\P{^Is_In=__v1_1}', "");
-    Expect(0, 65536, '\p{Is_In=__v1_1}', "");
-    Expect(1, 65536, '\p{^Is_In=__v1_1}', "");
-    Expect(1, 65536, '\P{Is_In=__v1_1}', "");
-    Expect(0, 65536, '\P{^Is_In=__v1_1}', "");
-    Error('\p{Present_In=/a/--00_00_00_00_01_0.0}');
-    Error('\P{Present_In=/a/--00_00_00_00_01_0.0}');
+    Expect(1, 65533, '\p{Is_In=-V1_1}', "");
+    Expect(0, 65533, '\p{^Is_In=-V1_1}', "");
+    Expect(0, 65533, '\P{Is_In=-V1_1}', "");
+    Expect(1, 65533, '\P{^Is_In=-V1_1}', "");
+    Expect(0, 65536, '\p{Is_In=-V1_1}', "");
+    Expect(1, 65536, '\p{^Is_In=-V1_1}', "");
+    Expect(1, 65536, '\P{Is_In=-V1_1}', "");
+    Expect(0, 65536, '\P{^Is_In=-V1_1}', "");
+    Error('\p{Present_In=/a/-	000000001_0.0}');
+    Error('\P{Present_In=/a/-	000000001_0.0}');
     Expect(1, 983040, '\p{Present_In=:\A10.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A10.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=+00_00_01_0.0}', "");
-    Expect(0, 983040, '\p{^Present_In=+00_00_01_0.0}', "");
-    Expect(0, 983040, '\P{Present_In=+00_00_01_0.0}', "");
-    Expect(1, 983040, '\P{^Present_In=+00_00_01_0.0}', "");
-    Expect(0, 983037, '\p{Present_In=+00_00_01_0.0}', "");
-    Expect(1, 983037, '\p{^Present_In=+00_00_01_0.0}', "");
-    Expect(1, 983037, '\P{Present_In=+00_00_01_0.0}', "");
-    Expect(0, 983037, '\P{^Present_In=+00_00_01_0.0}', "");
-    Error('\p{In=/a/ _V10_0}');
-    Error('\P{In=/a/ _V10_0}');
+    Expect(1, 983040, '\p{Present_In=0000000010.0}', "");
+    Expect(0, 983040, '\p{^Present_In=0000000010.0}', "");
+    Expect(0, 983040, '\P{Present_In=0000000010.0}', "");
+    Expect(1, 983040, '\P{^Present_In=0000000010.0}', "");
+    Expect(0, 983037, '\p{Present_In=0000000010.0}', "");
+    Expect(1, 983037, '\p{^Present_In=0000000010.0}', "");
+    Expect(1, 983037, '\P{Present_In=0000000010.0}', "");
+    Expect(0, 983037, '\P{^Present_In=0000000010.0}', "");
+    Error('\p{In=:=V10_0}');
+    Error('\P{In=:=V10_0}');
     Expect(1, 983040, '\p{In=:\AV10_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV10_0\z:}', "");;
     Expect(1, 983040, '\p{In=v100}', "");
@@ -47221,26 +47781,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v100}', "");
     Expect(1, 983040, '\p{In=:\Av100\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av100\z:}', "");;
-    Expect(1, 983040, '\p{In=-_V10_0}', "");
-    Expect(0, 983040, '\p{^In=-_V10_0}', "");
-    Expect(0, 983040, '\P{In=-_V10_0}', "");
-    Expect(1, 983040, '\P{^In=-_V10_0}', "");
-    Expect(0, 983037, '\p{In=-_V10_0}', "");
-    Expect(1, 983037, '\p{^In=-_V10_0}', "");
-    Expect(1, 983037, '\P{In=-_V10_0}', "");
-    Expect(0, 983037, '\P{^In=-_V10_0}', "");
-    Error('\p{Is_Present_In=-010.0/a/}');
-    Error('\P{Is_Present_In=-010.0/a/}');
-    Expect(1, 983040, '\p{Is_Present_In=000_000_000_10.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=000_000_000_10.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=000_000_000_10.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=000_000_000_10.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=000_000_000_10.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=000_000_000_10.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=000_000_000_10.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=000_000_000_10.0}', "");
-    Error('\p{Is_In=/a/- v10_0}');
-    Error('\P{Is_In=/a/- v10_0}');
+    Expect(1, 983040, '\p{In= V10_0}', "");
+    Expect(0, 983040, '\p{^In= V10_0}', "");
+    Expect(0, 983040, '\P{In= V10_0}', "");
+    Expect(1, 983040, '\P{^In= V10_0}', "");
+    Expect(0, 983037, '\p{In= V10_0}', "");
+    Expect(1, 983037, '\p{^In= V10_0}', "");
+    Expect(1, 983037, '\P{In= V10_0}', "");
+    Expect(0, 983037, '\P{^In= V10_0}', "");
+    Error('\p{Is_Present_In::=-000010.0}');
+    Error('\P{Is_Present_In::=-000010.0}');
+    Expect(1, 983040, '\p{Is_Present_In=+0010.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=+0010.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=+0010.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=+0010.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=+0010.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=+0010.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=+0010.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=+0010.0}', "");
+    Error('\p{Is_In=:=-_V10_0}');
+    Error('\P{Is_In=:=-_V10_0}');
     Expect(1, 983040, '\p{Is_In=v100}', "");
     Expect(0, 983040, '\p{^Is_In=v100}', "");
     Expect(0, 983040, '\P{Is_In=v100}', "");
@@ -47249,60 +47809,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v100}', "");
     Expect(1, 983037, '\P{Is_In=v100}', "");
     Expect(0, 983037, '\P{^Is_In=v100}', "");
-    Expect(1, 983040, '\p{Is_In:			V10_0}', "");
-    Expect(0, 983040, '\p{^Is_In:			V10_0}', "");
-    Expect(0, 983040, '\P{Is_In:			V10_0}', "");
-    Expect(1, 983040, '\P{^Is_In:			V10_0}', "");
-    Expect(0, 983037, '\p{Is_In:			V10_0}', "");
-    Expect(1, 983037, '\p{^Is_In:			V10_0}', "");
-    Expect(1, 983037, '\P{Is_In:			V10_0}', "");
-    Expect(0, 983037, '\P{^Is_In:			V10_0}', "");
-    Error('\p{Present_In= +00000011.0/a/}');
-    Error('\P{Present_In= +00000011.0/a/}');
+    Expect(1, 983040, '\p{Is_In: -V10_0}', "");
+    Expect(0, 983040, '\p{^Is_In: -V10_0}', "");
+    Expect(0, 983040, '\P{Is_In: -V10_0}', "");
+    Expect(1, 983040, '\P{^Is_In: -V10_0}', "");
+    Expect(0, 983037, '\p{Is_In: -V10_0}', "");
+    Expect(1, 983037, '\p{^Is_In: -V10_0}', "");
+    Expect(1, 983037, '\P{Is_In: -V10_0}', "");
+    Expect(0, 983037, '\P{^Is_In: -V10_0}', "");
+    Error('\p{Present_In:	_:=000000001_1.0}');
+    Error('\P{Present_In:	_:=000000001_1.0}');
     Expect(1, 983040, '\p{Present_In=:\A11.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A11.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=0000000011.0}', "");
-    Expect(0, 983040, '\p{^Present_In=0000000011.0}', "");
-    Expect(0, 983040, '\P{Present_In=0000000011.0}', "");
-    Expect(1, 983040, '\P{^Present_In=0000000011.0}', "");
-    Expect(0, 983037, '\p{Present_In=0000000011.0}', "");
-    Expect(1, 983037, '\p{^Present_In=0000000011.0}', "");
-    Expect(1, 983037, '\P{Present_In=0000000011.0}', "");
-    Expect(0, 983037, '\P{^Present_In=0000000011.0}', "");
-    Error('\p{In=-	V11_0:=}');
-    Error('\P{In=-	V11_0:=}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_0_0_0_0_0_011.0}', "");
+    Error('\p{In=	V11_0/a/}');
+    Error('\P{In=	V11_0/a/}');
     Expect(1, 983040, '\p{In=:\AV11_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV11_0\z:}', "");;
-    Expect(1, 983040, '\p{In=v110}', "");
-    Expect(0, 983040, '\p{^In=v110}', "");
-    Expect(0, 983040, '\P{In=v110}', "");
-    Expect(1, 983040, '\P{^In=v110}', "");
-    Expect(0, 983037, '\p{In=v110}', "");
-    Expect(1, 983037, '\p{^In=v110}', "");
-    Expect(1, 983037, '\P{In=v110}', "");
-    Expect(0, 983037, '\P{^In=v110}', "");
+    Expect(1, 983040, '\p{In: v110}', "");
+    Expect(0, 983040, '\p{^In: v110}', "");
+    Expect(0, 983040, '\P{In: v110}', "");
+    Expect(1, 983040, '\P{^In: v110}', "");
+    Expect(0, 983037, '\p{In: v110}', "");
+    Expect(1, 983037, '\p{^In: v110}', "");
+    Expect(1, 983037, '\P{In: v110}', "");
+    Expect(0, 983037, '\P{^In: v110}', "");
     Expect(1, 983040, '\p{In=:\Av110\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av110\z:}', "");;
-    Expect(1, 983040, '\p{In=__V11_0}', "");
-    Expect(0, 983040, '\p{^In=__V11_0}', "");
-    Expect(0, 983040, '\P{In=__V11_0}', "");
-    Expect(1, 983040, '\P{^In=__V11_0}', "");
-    Expect(0, 983037, '\p{In=__V11_0}', "");
-    Expect(1, 983037, '\p{^In=__V11_0}', "");
-    Expect(1, 983037, '\P{In=__V11_0}', "");
-    Expect(0, 983037, '\P{^In=__V11_0}', "");
-    Error('\p{Is_Present_In=-+0_0_0_0_011.0/a/}');
-    Error('\P{Is_Present_In=-+0_0_0_0_011.0/a/}');
-    Expect(1, 983040, '\p{Is_Present_In=+11.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=+11.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=+11.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=+11.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=+11.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=+11.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=+11.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=+11.0}', "");
-    Error('\p{Is_In=	v11_0/a/}');
-    Error('\P{Is_In=	v11_0/a/}');
+    Expect(1, 983040, '\p{In=-v11_0}', "");
+    Expect(0, 983040, '\p{^In=-v11_0}', "");
+    Expect(0, 983040, '\P{In=-v11_0}', "");
+    Expect(1, 983040, '\P{^In=-v11_0}', "");
+    Expect(0, 983037, '\p{In=-v11_0}', "");
+    Expect(1, 983037, '\p{^In=-v11_0}', "");
+    Expect(1, 983037, '\P{In=-v11_0}', "");
+    Expect(0, 983037, '\P{^In=-v11_0}', "");
+    Error('\p{Is_Present_In= /a/1_1.0}');
+    Error('\P{Is_Present_In= /a/1_1.0}');
+    Expect(1, 983040, '\p{Is_Present_In=+00_00_11.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=+00_00_11.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=+00_00_11.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=+00_00_11.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=+00_00_11.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=+00_00_11.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=+00_00_11.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=+00_00_11.0}', "");
+    Error('\p{Is_In=_V11_0:=}');
+    Error('\P{Is_In=_V11_0:=}');
     Expect(1, 983040, '\p{Is_In=v110}', "");
     Expect(0, 983040, '\p{^Is_In=v110}', "");
     Expect(0, 983040, '\P{Is_In=v110}', "");
@@ -47311,28 +47871,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v110}', "");
     Expect(1, 983037, '\P{Is_In=v110}', "");
     Expect(0, 983037, '\P{^Is_In=v110}', "");
-    Expect(1, 983040, '\p{Is_In= 	V11_0}', "");
-    Expect(0, 983040, '\p{^Is_In= 	V11_0}', "");
-    Expect(0, 983040, '\P{Is_In= 	V11_0}', "");
-    Expect(1, 983040, '\P{^Is_In= 	V11_0}', "");
-    Expect(0, 983037, '\p{Is_In= 	V11_0}', "");
-    Expect(1, 983037, '\p{^Is_In= 	V11_0}', "");
-    Expect(1, 983037, '\P{Is_In= 	V11_0}', "");
-    Expect(0, 983037, '\P{^Is_In= 	V11_0}', "");
-    Error('\p{Present_In:  000_000_12.0:=}');
-    Error('\P{Present_In:  000_000_12.0:=}');
+    Expect(1, 983040, '\p{Is_In=	V11_0}', "");
+    Expect(0, 983040, '\p{^Is_In=	V11_0}', "");
+    Expect(0, 983040, '\P{Is_In=	V11_0}', "");
+    Expect(1, 983040, '\P{^Is_In=	V11_0}', "");
+    Expect(0, 983037, '\p{Is_In=	V11_0}', "");
+    Expect(1, 983037, '\p{^Is_In=	V11_0}', "");
+    Expect(1, 983037, '\P{Is_In=	V11_0}', "");
+    Expect(0, 983037, '\P{^Is_In=	V11_0}', "");
+    Error('\p{Present_In=  00000000012.0/a/}');
+    Error('\P{Present_In=  00000000012.0/a/}');
     Expect(1, 983040, '\p{Present_In=:\A12.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A12.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(0, 983040, '\p{^Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(0, 983040, '\P{Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(1, 983040, '\P{^Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(0, 983037, '\p{Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(1, 983037, '\p{^Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(1, 983037, '\P{Present_In:0_0_0_0_0_0_12.0}', "");
-    Expect(0, 983037, '\P{^Present_In:0_0_0_0_0_0_12.0}', "");
-    Error('\p{In=-v12_0/a/}');
-    Error('\P{In=-v12_0/a/}');
+    Expect(1, 983040, '\p{Present_In=001_2.0}', "");
+    Expect(0, 983040, '\p{^Present_In=001_2.0}', "");
+    Expect(0, 983040, '\P{Present_In=001_2.0}', "");
+    Expect(1, 983040, '\P{^Present_In=001_2.0}', "");
+    Expect(0, 983037, '\p{Present_In=001_2.0}', "");
+    Expect(1, 983037, '\p{^Present_In=001_2.0}', "");
+    Expect(1, 983037, '\P{Present_In=001_2.0}', "");
+    Expect(0, 983037, '\P{^Present_In=001_2.0}', "");
+    Error('\p{In=/a/	_v12_0}');
+    Error('\P{In=/a/	_v12_0}');
     Expect(1, 983040, '\p{In=:\AV12_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV12_0\z:}', "");;
     Expect(1, 983040, '\p{In=v120}', "");
@@ -47345,26 +47905,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v120}', "");
     Expect(1, 983040, '\p{In=:\Av120\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av120\z:}', "");;
-    Expect(1, 983040, '\p{In=	 V12_0}', "");
-    Expect(0, 983040, '\p{^In=	 V12_0}', "");
-    Expect(0, 983040, '\P{In=	 V12_0}', "");
-    Expect(1, 983040, '\P{^In=	 V12_0}', "");
-    Expect(0, 983037, '\p{In=	 V12_0}', "");
-    Expect(1, 983037, '\p{^In=	 V12_0}', "");
-    Expect(1, 983037, '\P{In=	 V12_0}', "");
-    Expect(0, 983037, '\P{^In=	 V12_0}', "");
-    Error('\p{Is_Present_In=-	+00000012.0:=}');
-    Error('\P{Is_Present_In=-	+00000012.0:=}');
-    Expect(1, 983040, '\p{Is_Present_In=+00012.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=+00012.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=+00012.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=+00012.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=+00012.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=+00012.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=+00012.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=+00012.0}', "");
-    Error('\p{Is_In=:=-V12_0}');
-    Error('\P{Is_In=:=-V12_0}');
+    Expect(1, 983040, '\p{In=		v12_0}', "");
+    Expect(0, 983040, '\p{^In=		v12_0}', "");
+    Expect(0, 983040, '\P{In=		v12_0}', "");
+    Expect(1, 983040, '\P{^In=		v12_0}', "");
+    Expect(0, 983037, '\p{In=		v12_0}', "");
+    Expect(1, 983037, '\p{^In=		v12_0}', "");
+    Expect(1, 983037, '\P{In=		v12_0}', "");
+    Expect(0, 983037, '\P{^In=		v12_0}', "");
+    Error('\p{Is_Present_In=:=	0012.0}');
+    Error('\P{Is_Present_In=:=	0012.0}');
+    Expect(1, 983040, '\p{Is_Present_In=00000_00001_2.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=00000_00001_2.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=00000_00001_2.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=00000_00001_2.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=00000_00001_2.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=00000_00001_2.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=00000_00001_2.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=00000_00001_2.0}', "");
+    Error('\p{Is_In=	 v12_0/a/}');
+    Error('\P{Is_In=	 v12_0/a/}');
     Expect(1, 983040, '\p{Is_In=v120}', "");
     Expect(0, 983040, '\p{^Is_In=v120}', "");
     Expect(0, 983040, '\P{Is_In=v120}', "");
@@ -47373,28 +47933,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v120}', "");
     Expect(1, 983037, '\P{Is_In=v120}', "");
     Expect(0, 983037, '\P{^Is_In=v120}', "");
-    Expect(1, 983040, '\p{Is_In=-v12_0}', "");
-    Expect(0, 983040, '\p{^Is_In=-v12_0}', "");
-    Expect(0, 983040, '\P{Is_In=-v12_0}', "");
-    Expect(1, 983040, '\P{^Is_In=-v12_0}', "");
-    Expect(0, 983037, '\p{Is_In=-v12_0}', "");
-    Expect(1, 983037, '\p{^Is_In=-v12_0}', "");
-    Expect(1, 983037, '\P{Is_In=-v12_0}', "");
-    Expect(0, 983037, '\P{^Is_In=-v12_0}', "");
-    Error('\p{Present_In=:=-+0_0_0_0_12.1}');
-    Error('\P{Present_In=:=-+0_0_0_0_12.1}');
+    Expect(1, 983040, '\p{Is_In=	V12_0}', "");
+    Expect(0, 983040, '\p{^Is_In=	V12_0}', "");
+    Expect(0, 983040, '\P{Is_In=	V12_0}', "");
+    Expect(1, 983040, '\P{^Is_In=	V12_0}', "");
+    Expect(0, 983037, '\p{Is_In=	V12_0}', "");
+    Expect(1, 983037, '\p{^Is_In=	V12_0}', "");
+    Expect(1, 983037, '\P{Is_In=	V12_0}', "");
+    Expect(0, 983037, '\P{^Is_In=	V12_0}', "");
+    Error('\p{Present_In=/a/_+0000_0001_2.1}');
+    Error('\P{Present_In=/a/_+0000_0001_2.1}');
     Expect(1, 983040, '\p{Present_In=:\A12.1\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A12.1\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00000_00001_2.1}', "");
-    Expect(0, 983040, '\p{^Present_In=00000_00001_2.1}', "");
-    Expect(0, 983040, '\P{Present_In=00000_00001_2.1}', "");
-    Expect(1, 983040, '\P{^Present_In=00000_00001_2.1}', "");
-    Expect(0, 983037, '\p{Present_In=00000_00001_2.1}', "");
-    Expect(1, 983037, '\p{^Present_In=00000_00001_2.1}', "");
-    Expect(1, 983037, '\P{Present_In=00000_00001_2.1}', "");
-    Expect(0, 983037, '\P{^Present_In=00000_00001_2.1}', "");
-    Error('\p{In=-/a/V12_1}');
-    Error('\P{In=-/a/V12_1}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_0_0_012.1}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_0_0_012.1}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_0_0_012.1}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_0_0_012.1}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_0_0_012.1}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_0_0_012.1}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_0_0_012.1}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_0_0_012.1}', "");
+    Error('\p{In=	V12_1/a/}');
+    Error('\P{In=	V12_1/a/}');
     Expect(1, 983040, '\p{In=:\AV12_1\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV12_1\z:}', "");;
     Expect(1, 983040, '\p{In=v121}', "");
@@ -47407,26 +47967,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v121}', "");
     Expect(1, 983040, '\p{In=:\Av121\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av121\z:}', "");;
-    Expect(1, 983040, '\p{In:		_V12_1}', "");
-    Expect(0, 983040, '\p{^In:		_V12_1}', "");
-    Expect(0, 983040, '\P{In:		_V12_1}', "");
-    Expect(1, 983040, '\P{^In:		_V12_1}', "");
-    Expect(0, 983037, '\p{In:		_V12_1}', "");
-    Expect(1, 983037, '\p{^In:		_V12_1}', "");
-    Expect(1, 983037, '\P{In:		_V12_1}', "");
-    Expect(0, 983037, '\P{^In:		_V12_1}', "");
-    Error('\p{Is_Present_In=--+012.1/a/}');
-    Error('\P{Is_Present_In=--+012.1/a/}');
-    Expect(1, 983040, '\p{Is_Present_In=00_00_12.1}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=00_00_12.1}', "");
-    Expect(0, 983040, '\P{Is_Present_In=00_00_12.1}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=00_00_12.1}', "");
-    Expect(0, 983037, '\p{Is_Present_In=00_00_12.1}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=00_00_12.1}', "");
-    Expect(1, 983037, '\P{Is_Present_In=00_00_12.1}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=00_00_12.1}', "");
-    Error('\p{Is_In=:=v12_1}');
-    Error('\P{Is_In=:=v12_1}');
+    Expect(1, 983040, '\p{In:    V12_1}', "");
+    Expect(0, 983040, '\p{^In:    V12_1}', "");
+    Expect(0, 983040, '\P{In:    V12_1}', "");
+    Expect(1, 983040, '\P{^In:    V12_1}', "");
+    Expect(0, 983037, '\p{In:    V12_1}', "");
+    Expect(1, 983037, '\p{^In:    V12_1}', "");
+    Expect(1, 983037, '\P{In:    V12_1}', "");
+    Expect(0, 983037, '\P{^In:    V12_1}', "");
+    Error('\p{Is_Present_In=/a/_-0000000012.1}');
+    Error('\P{Is_Present_In=/a/_-0000000012.1}');
+    Expect(1, 983040, '\p{Is_Present_In=0_0_12.1}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=0_0_12.1}', "");
+    Expect(0, 983040, '\P{Is_Present_In=0_0_12.1}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=0_0_12.1}', "");
+    Expect(0, 983037, '\p{Is_Present_In=0_0_12.1}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=0_0_12.1}', "");
+    Expect(1, 983037, '\P{Is_Present_In=0_0_12.1}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=0_0_12.1}', "");
+    Error('\p{Is_In=:=	 V12_1}');
+    Error('\P{Is_In=:=	 V12_1}');
     Expect(1, 983040, '\p{Is_In=v121}', "");
     Expect(0, 983040, '\p{^Is_In=v121}', "");
     Expect(0, 983040, '\P{Is_In=v121}', "");
@@ -47435,122 +47995,122 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v121}', "");
     Expect(1, 983037, '\P{Is_In=v121}', "");
     Expect(0, 983037, '\P{^Is_In=v121}', "");
-    Expect(1, 983040, '\p{Is_In=		V12_1}', "");
-    Expect(0, 983040, '\p{^Is_In=		V12_1}', "");
-    Expect(0, 983040, '\P{Is_In=		V12_1}', "");
-    Expect(1, 983040, '\P{^Is_In=		V12_1}', "");
-    Expect(0, 983037, '\p{Is_In=		V12_1}', "");
-    Expect(1, 983037, '\p{^Is_In=		V12_1}', "");
-    Expect(1, 983037, '\P{Is_In=		V12_1}', "");
-    Expect(0, 983037, '\P{^Is_In=		V12_1}', "");
-    Error('\p{Present_In=	000013.0:=}');
-    Error('\P{Present_In=	000013.0:=}');
+    Expect(1, 983040, '\p{Is_In=_V12_1}', "");
+    Expect(0, 983040, '\p{^Is_In=_V12_1}', "");
+    Expect(0, 983040, '\P{Is_In=_V12_1}', "");
+    Expect(1, 983040, '\P{^Is_In=_V12_1}', "");
+    Expect(0, 983037, '\p{Is_In=_V12_1}', "");
+    Expect(1, 983037, '\p{^Is_In=_V12_1}', "");
+    Expect(1, 983037, '\P{Is_In=_V12_1}', "");
+    Expect(0, 983037, '\P{^Is_In=_V12_1}', "");
+    Error('\p{Present_In=	0000001_3.0/a/}');
+    Error('\P{Present_In=	0000001_3.0/a/}');
     Expect(1, 983040, '\p{Present_In=:\A13.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A13.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=13.0}', "");
-    Expect(0, 983040, '\p{^Present_In=13.0}', "");
-    Expect(0, 983040, '\P{Present_In=13.0}', "");
-    Expect(1, 983040, '\P{^Present_In=13.0}', "");
-    Expect(0, 983037, '\p{Present_In=13.0}', "");
-    Expect(1, 983037, '\p{^Present_In=13.0}', "");
-    Expect(1, 983037, '\P{Present_In=13.0}', "");
-    Expect(0, 983037, '\P{^Present_In=13.0}', "");
-    Error('\p{In=_:=V13_0}');
-    Error('\P{In=_:=V13_0}');
+    Expect(1, 983040, '\p{Present_In=1_3.0}', "");
+    Expect(0, 983040, '\p{^Present_In=1_3.0}', "");
+    Expect(0, 983040, '\P{Present_In=1_3.0}', "");
+    Expect(1, 983040, '\P{^Present_In=1_3.0}', "");
+    Expect(0, 983037, '\p{Present_In=1_3.0}', "");
+    Expect(1, 983037, '\p{^Present_In=1_3.0}', "");
+    Expect(1, 983037, '\P{Present_In=1_3.0}', "");
+    Expect(0, 983037, '\P{^Present_In=1_3.0}', "");
+    Error('\p{In=/a/ _V13_0}');
+    Error('\P{In=/a/ _V13_0}');
     Expect(1, 983040, '\p{In=:\AV13_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV13_0\z:}', "");;
-    Expect(1, 983040, '\p{In:	v130}', "");
-    Expect(0, 983040, '\p{^In:	v130}', "");
-    Expect(0, 983040, '\P{In:	v130}', "");
-    Expect(1, 983040, '\P{^In:	v130}', "");
-    Expect(0, 983037, '\p{In:	v130}', "");
-    Expect(1, 983037, '\p{^In:	v130}', "");
-    Expect(1, 983037, '\P{In:	v130}', "");
-    Expect(0, 983037, '\P{^In:	v130}', "");
+    Expect(1, 983040, '\p{In:   v130}', "");
+    Expect(0, 983040, '\p{^In:   v130}', "");
+    Expect(0, 983040, '\P{In:   v130}', "");
+    Expect(1, 983040, '\P{^In:   v130}', "");
+    Expect(0, 983037, '\p{In:   v130}', "");
+    Expect(1, 983037, '\p{^In:   v130}', "");
+    Expect(1, 983037, '\P{In:   v130}', "");
+    Expect(0, 983037, '\P{^In:   v130}', "");
     Expect(1, 983040, '\p{In=:\Av130\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av130\z:}', "");;
-    Expect(1, 983040, '\p{In=	-V13_0}', "");
-    Expect(0, 983040, '\p{^In=	-V13_0}', "");
-    Expect(0, 983040, '\P{In=	-V13_0}', "");
-    Expect(1, 983040, '\P{^In=	-V13_0}', "");
-    Expect(0, 983037, '\p{In=	-V13_0}', "");
-    Expect(1, 983037, '\p{^In=	-V13_0}', "");
-    Expect(1, 983037, '\P{In=	-V13_0}', "");
-    Expect(0, 983037, '\P{^In=	-V13_0}', "");
-    Error('\p{Is_Present_In= 0000000013.0/a/}');
-    Error('\P{Is_Present_In= 0000000013.0/a/}');
-    Expect(1, 983040, '\p{Is_Present_In=00000013.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=00000013.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=00000013.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=00000013.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=00000013.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=00000013.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=00000013.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=00000013.0}', "");
-    Error('\p{Is_In=/a/	V13_0}');
-    Error('\P{Is_In=/a/	V13_0}');
-    Expect(1, 983040, '\p{Is_In=v130}', "");
-    Expect(0, 983040, '\p{^Is_In=v130}', "");
-    Expect(0, 983040, '\P{Is_In=v130}', "");
-    Expect(1, 983040, '\P{^Is_In=v130}', "");
-    Expect(0, 983037, '\p{Is_In=v130}', "");
-    Expect(1, 983037, '\p{^Is_In=v130}', "");
-    Expect(1, 983037, '\P{Is_In=v130}', "");
-    Expect(0, 983037, '\P{^Is_In=v130}', "");
-    Expect(1, 983040, '\p{Is_In=	 v13_0}', "");
-    Expect(0, 983040, '\p{^Is_In=	 v13_0}', "");
-    Expect(0, 983040, '\P{Is_In=	 v13_0}', "");
-    Expect(1, 983040, '\P{^Is_In=	 v13_0}', "");
-    Expect(0, 983037, '\p{Is_In=	 v13_0}', "");
-    Expect(1, 983037, '\p{^Is_In=	 v13_0}', "");
-    Expect(1, 983037, '\P{Is_In=	 v13_0}', "");
-    Expect(0, 983037, '\P{^Is_In=	 v13_0}', "");
-    Error('\p{Present_In=	:=0_0_0_0_0_0_0_0014.0}');
-    Error('\P{Present_In=	:=0_0_0_0_0_0_0_0014.0}');
+    Expect(1, 983040, '\p{In=	V13_0}', "");
+    Expect(0, 983040, '\p{^In=	V13_0}', "");
+    Expect(0, 983040, '\P{In=	V13_0}', "");
+    Expect(1, 983040, '\P{^In=	V13_0}', "");
+    Expect(0, 983037, '\p{In=	V13_0}', "");
+    Expect(1, 983037, '\p{^In=	V13_0}', "");
+    Expect(1, 983037, '\P{In=	V13_0}', "");
+    Expect(0, 983037, '\P{^In=	V13_0}', "");
+    Error('\p{Is_Present_In: -/a/013.0}');
+    Error('\P{Is_Present_In: -/a/013.0}');
+    Expect(1, 983040, '\p{Is_Present_In=013.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=013.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=013.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=013.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=013.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=013.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=013.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=013.0}', "");
+    Error('\p{Is_In= V13_0:=}');
+    Error('\P{Is_In= V13_0:=}');
+    Expect(1, 983040, '\p{Is_In:   v130}', "");
+    Expect(0, 983040, '\p{^Is_In:   v130}', "");
+    Expect(0, 983040, '\P{Is_In:   v130}', "");
+    Expect(1, 983040, '\P{^Is_In:   v130}', "");
+    Expect(0, 983037, '\p{Is_In:   v130}', "");
+    Expect(1, 983037, '\p{^Is_In:   v130}', "");
+    Expect(1, 983037, '\P{Is_In:   v130}', "");
+    Expect(0, 983037, '\P{^Is_In:   v130}', "");
+    Expect(1, 983040, '\p{Is_In:		V13_0}', "");
+    Expect(0, 983040, '\p{^Is_In:		V13_0}', "");
+    Expect(0, 983040, '\P{Is_In:		V13_0}', "");
+    Expect(1, 983040, '\P{^Is_In:		V13_0}', "");
+    Expect(0, 983037, '\p{Is_In:		V13_0}', "");
+    Expect(1, 983037, '\p{^Is_In:		V13_0}', "");
+    Expect(1, 983037, '\P{Is_In:		V13_0}', "");
+    Expect(0, 983037, '\P{^Is_In:		V13_0}', "");
+    Error('\p{Present_In=/a/-	0000014.0}');
+    Error('\P{Present_In=/a/-	0000014.0}');
     Expect(1, 983040, '\p{Present_In=:\A14.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A14.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=+0_0_0_14.0}', "");
-    Expect(0, 983040, '\p{^Present_In=+0_0_0_14.0}', "");
-    Expect(0, 983040, '\P{Present_In=+0_0_0_14.0}', "");
-    Expect(1, 983040, '\P{^Present_In=+0_0_0_14.0}', "");
-    Expect(0, 983037, '\p{Present_In=+0_0_0_14.0}', "");
-    Expect(1, 983037, '\p{^Present_In=+0_0_0_14.0}', "");
-    Expect(1, 983037, '\P{Present_In=+0_0_0_14.0}', "");
-    Expect(0, 983037, '\P{^Present_In=+0_0_0_14.0}', "");
-    Error('\p{In=-	V14_0:=}');
-    Error('\P{In=-	V14_0:=}');
+    Expect(1, 983040, '\p{Present_In: 0000000001_4.0}', "");
+    Expect(0, 983040, '\p{^Present_In: 0000000001_4.0}', "");
+    Expect(0, 983040, '\P{Present_In: 0000000001_4.0}', "");
+    Expect(1, 983040, '\P{^Present_In: 0000000001_4.0}', "");
+    Expect(0, 983037, '\p{Present_In: 0000000001_4.0}', "");
+    Expect(1, 983037, '\p{^Present_In: 0000000001_4.0}', "");
+    Expect(1, 983037, '\P{Present_In: 0000000001_4.0}', "");
+    Expect(0, 983037, '\P{^Present_In: 0000000001_4.0}', "");
+    Error('\p{In=:=  V14_0}');
+    Error('\P{In=:=  V14_0}');
     Expect(1, 983040, '\p{In=:\AV14_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV14_0\z:}', "");;
-    Expect(1, 983040, '\p{In: v140}', "");
-    Expect(0, 983040, '\p{^In: v140}', "");
-    Expect(0, 983040, '\P{In: v140}', "");
-    Expect(1, 983040, '\P{^In: v140}', "");
-    Expect(0, 983037, '\p{In: v140}', "");
-    Expect(1, 983037, '\p{^In: v140}', "");
-    Expect(1, 983037, '\P{In: v140}', "");
-    Expect(0, 983037, '\P{^In: v140}', "");
+    Expect(1, 983040, '\p{In=v140}', "");
+    Expect(0, 983040, '\p{^In=v140}', "");
+    Expect(0, 983040, '\P{In=v140}', "");
+    Expect(1, 983040, '\P{^In=v140}', "");
+    Expect(0, 983037, '\p{In=v140}', "");
+    Expect(1, 983037, '\p{^In=v140}', "");
+    Expect(1, 983037, '\P{In=v140}', "");
+    Expect(0, 983037, '\P{^In=v140}', "");
     Expect(1, 983040, '\p{In=:\Av140\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av140\z:}', "");;
-    Expect(1, 983040, '\p{In=_	V14_0}', "");
-    Expect(0, 983040, '\p{^In=_	V14_0}', "");
-    Expect(0, 983040, '\P{In=_	V14_0}', "");
-    Expect(1, 983040, '\P{^In=_	V14_0}', "");
-    Expect(0, 983037, '\p{In=_	V14_0}', "");
-    Expect(1, 983037, '\p{^In=_	V14_0}', "");
-    Expect(1, 983037, '\P{In=_	V14_0}', "");
-    Expect(0, 983037, '\P{^In=_	V14_0}', "");
-    Error('\p{Is_Present_In:/a/--00_00_14.0}');
-    Error('\P{Is_Present_In:/a/--00_00_14.0}');
-    Expect(1, 983040, '\p{Is_Present_In=00014.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=00014.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=00014.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=00014.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=00014.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=00014.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=00014.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=00014.0}', "");
-    Error('\p{Is_In=	:=V14_0}');
-    Error('\P{Is_In=	:=V14_0}');
+    Expect(1, 983040, '\p{In=V14_0}', "");
+    Expect(0, 983040, '\p{^In=V14_0}', "");
+    Expect(0, 983040, '\P{In=V14_0}', "");
+    Expect(1, 983040, '\P{^In=V14_0}', "");
+    Expect(0, 983037, '\p{In=V14_0}', "");
+    Expect(1, 983037, '\p{^In=V14_0}', "");
+    Expect(1, 983037, '\P{In=V14_0}', "");
+    Expect(0, 983037, '\P{^In=V14_0}', "");
+    Error('\p{Is_Present_In=/a/- +000014.0}');
+    Error('\P{Is_Present_In=/a/- +000014.0}');
+    Expect(1, 983040, '\p{Is_Present_In=000000014.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=000000014.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=000000014.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=000000014.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=000000014.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=000000014.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=000000014.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=000000014.0}', "");
+    Error('\p{Is_In=/a/-V14_0}');
+    Error('\P{Is_In=/a/-V14_0}');
     Expect(1, 983040, '\p{Is_In=v140}', "");
     Expect(0, 983040, '\p{^Is_In=v140}', "");
     Expect(0, 983040, '\P{Is_In=v140}', "");
@@ -47559,26 +48119,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v140}', "");
     Expect(1, 983037, '\P{Is_In=v140}', "");
     Expect(0, 983037, '\P{^Is_In=v140}', "");
-    Expect(1, 983040, '\p{Is_In=V14_0}', "");
-    Expect(0, 983040, '\p{^Is_In=V14_0}', "");
-    Expect(0, 983040, '\P{Is_In=V14_0}', "");
-    Expect(1, 983040, '\P{^Is_In=V14_0}', "");
-    Expect(0, 983037, '\p{Is_In=V14_0}', "");
-    Expect(1, 983037, '\p{^Is_In=V14_0}', "");
-    Expect(1, 983037, '\P{Is_In=V14_0}', "");
-    Expect(0, 983037, '\P{^Is_In=V14_0}', "");
-    Error('\p{Present_In=	_2.0/a/}');
-    Error('\P{Present_In=	_2.0/a/}');
+    Expect(1, 983040, '\p{Is_In:   _ v14_0}', "");
+    Expect(0, 983040, '\p{^Is_In:   _ v14_0}', "");
+    Expect(0, 983040, '\P{Is_In:   _ v14_0}', "");
+    Expect(1, 983040, '\P{^Is_In:   _ v14_0}', "");
+    Expect(0, 983037, '\p{Is_In:   _ v14_0}', "");
+    Expect(1, 983037, '\p{^Is_In:   _ v14_0}', "");
+    Expect(1, 983037, '\P{Is_In:   _ v14_0}', "");
+    Expect(0, 983037, '\P{^Is_In:   _ v14_0}', "");
+    Error('\p{Present_In=	00000015.0:=}');
+    Error('\P{Present_In=	00000015.0:=}');
+    Expect(1, 983040, '\p{Present_In=:\A15.0\z:}', "");;
+    Expect(0, 983037, '\p{Present_In=:\A15.0\z:}', "");;
+    Expect(1, 983040, '\p{Present_In=0000000015.0}', "");
+    Expect(0, 983040, '\p{^Present_In=0000000015.0}', "");
+    Expect(0, 983040, '\P{Present_In=0000000015.0}', "");
+    Expect(1, 983040, '\P{^Present_In=0000000015.0}', "");
+    Expect(0, 983037, '\p{Present_In=0000000015.0}', "");
+    Expect(1, 983037, '\p{^Present_In=0000000015.0}', "");
+    Expect(1, 983037, '\P{Present_In=0000000015.0}', "");
+    Expect(0, 983037, '\P{^Present_In=0000000015.0}', "");
+    Error('\p{In=/a/v15_0}');
+    Error('\P{In=/a/v15_0}');
+    Expect(1, 983040, '\p{In=:\AV15_0\z:}', "");;
+    Expect(0, 983037, '\p{In=:\AV15_0\z:}', "");;
+    Expect(1, 983040, '\p{In=v150}', "");
+    Expect(0, 983040, '\p{^In=v150}', "");
+    Expect(0, 983040, '\P{In=v150}', "");
+    Expect(1, 983040, '\P{^In=v150}', "");
+    Expect(0, 983037, '\p{In=v150}', "");
+    Expect(1, 983037, '\p{^In=v150}', "");
+    Expect(1, 983037, '\P{In=v150}', "");
+    Expect(0, 983037, '\P{^In=v150}', "");
+    Expect(1, 983040, '\p{In=:\Av150\z:}', "");;
+    Expect(0, 983037, '\p{In=:\Av150\z:}', "");;
+    Expect(1, 983040, '\p{In=	 V15_0}', "");
+    Expect(0, 983040, '\p{^In=	 V15_0}', "");
+    Expect(0, 983040, '\P{In=	 V15_0}', "");
+    Expect(1, 983040, '\P{^In=	 V15_0}', "");
+    Expect(0, 983037, '\p{In=	 V15_0}', "");
+    Expect(1, 983037, '\p{^In=	 V15_0}', "");
+    Expect(1, 983037, '\P{In=	 V15_0}', "");
+    Expect(0, 983037, '\P{^In=	 V15_0}', "");
+    Error('\p{Is_Present_In=:=_	+01_5.0}');
+    Error('\P{Is_Present_In=:=_	+01_5.0}');
+    Expect(1, 983040, '\p{Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In:   0_0_0_0_0_0_015.0}', "");
+    Error('\p{Is_In=_:=V15_0}');
+    Error('\P{Is_In=_:=V15_0}');
+    Expect(1, 983040, '\p{Is_In:	v150}', "");
+    Expect(0, 983040, '\p{^Is_In:	v150}', "");
+    Expect(0, 983040, '\P{Is_In:	v150}', "");
+    Expect(1, 983040, '\P{^Is_In:	v150}', "");
+    Expect(0, 983037, '\p{Is_In:	v150}', "");
+    Expect(1, 983037, '\p{^Is_In:	v150}', "");
+    Expect(1, 983037, '\P{Is_In:	v150}', "");
+    Expect(0, 983037, '\P{^Is_In:	v150}', "");
+    Expect(1, 983040, '\p{Is_In= -V15_0}', "");
+    Expect(0, 983040, '\p{^Is_In= -V15_0}', "");
+    Expect(0, 983040, '\P{Is_In= -V15_0}', "");
+    Expect(1, 983040, '\P{^Is_In= -V15_0}', "");
+    Expect(0, 983037, '\p{Is_In= -V15_0}', "");
+    Expect(1, 983037, '\p{^Is_In= -V15_0}', "");
+    Expect(1, 983037, '\P{Is_In= -V15_0}', "");
+    Expect(0, 983037, '\P{^Is_In= -V15_0}', "");
+    Error('\p{Present_In=:=	_+000002.0}');
+    Error('\P{Present_In=:=	_+000002.0}');
     Expect(1, 983040, '\p{Present_In=:\A2.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A2.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=0000_2.0}', "");
-    Expect(0, 983040, '\p{^Present_In=0000_2.0}', "");
-    Expect(0, 983040, '\P{Present_In=0000_2.0}', "");
-    Expect(1, 983040, '\P{^Present_In=0000_2.0}', "");
-    Expect(0, 983037, '\p{Present_In=0000_2.0}', "");
-    Expect(1, 983037, '\p{^Present_In=0000_2.0}', "");
-    Expect(1, 983037, '\P{Present_In=0000_2.0}', "");
-    Expect(0, 983037, '\P{^Present_In=0000_2.0}', "");
+    Expect(1, 983040, '\p{Present_In=0000000002.0}', "");
+    Expect(0, 983040, '\p{^Present_In=0000000002.0}', "");
+    Expect(0, 983040, '\P{Present_In=0000000002.0}', "");
+    Expect(1, 983040, '\P{^Present_In=0000000002.0}', "");
+    Expect(0, 983037, '\p{Present_In=0000000002.0}', "");
+    Expect(1, 983037, '\p{^Present_In=0000000002.0}', "");
+    Expect(1, 983037, '\P{Present_In=0000000002.0}', "");
+    Expect(0, 983037, '\P{^Present_In=0000000002.0}', "");
     Error('\p{In=/a/V2_0}');
     Error('\P{In=/a/V2_0}');
     Expect(1, 983040, '\p{In=:\AV2_0\z:}', "");;
@@ -47593,16 +48215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v20}', "");
     Expect(1, 983040, '\p{In=:\Av20\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av20\z:}', "");;
-    Expect(1, 983040, '\p{In=		v2_0}', "");
-    Expect(0, 983040, '\p{^In=		v2_0}', "");
-    Expect(0, 983040, '\P{In=		v2_0}', "");
-    Expect(1, 983040, '\P{^In=		v2_0}', "");
-    Expect(0, 983037, '\p{In=		v2_0}', "");
-    Expect(1, 983037, '\p{^In=		v2_0}', "");
-    Expect(1, 983037, '\P{In=		v2_0}', "");
-    Expect(0, 983037, '\P{^In=		v2_0}', "");
-    Error('\p{Is_Present_In= :=0002.0}');
-    Error('\P{Is_Present_In= :=0002.0}');
+    Expect(1, 983040, '\p{In=	V2_0}', "");
+    Expect(0, 983040, '\p{^In=	V2_0}', "");
+    Expect(0, 983040, '\P{In=	V2_0}', "");
+    Expect(1, 983040, '\P{^In=	V2_0}', "");
+    Expect(0, 983037, '\p{In=	V2_0}', "");
+    Expect(1, 983037, '\p{^In=	V2_0}', "");
+    Expect(1, 983037, '\P{In=	V2_0}', "");
+    Expect(0, 983037, '\P{^In=	V2_0}', "");
+    Error('\p{Is_Present_In=_:=00_2.0}');
+    Error('\P{Is_Present_In=_:=00_2.0}');
     Expect(1, 983040, '\p{Is_Present_In=00000002.0}', "");
     Expect(0, 983040, '\p{^Is_Present_In=00000002.0}', "");
     Expect(0, 983040, '\P{Is_Present_In=00000002.0}', "");
@@ -47611,8 +48233,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_Present_In=00000002.0}', "");
     Expect(1, 983037, '\P{Is_Present_In=00000002.0}', "");
     Expect(0, 983037, '\P{^Is_Present_In=00000002.0}', "");
-    Error('\p{Is_In= -v2_0:=}');
-    Error('\P{Is_In= -v2_0:=}');
+    Error('\p{Is_In=-/a/V2_0}');
+    Error('\P{Is_In=-/a/V2_0}');
     Expect(1, 983040, '\p{Is_In=v20}', "");
     Expect(0, 983040, '\p{^Is_In=v20}', "");
     Expect(0, 983040, '\P{Is_In=v20}', "");
@@ -47621,28 +48243,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v20}', "");
     Expect(1, 983037, '\P{Is_In=v20}', "");
     Expect(0, 983037, '\P{^Is_In=v20}', "");
-    Expect(1, 983040, '\p{Is_In:   - v2_0}', "");
-    Expect(0, 983040, '\p{^Is_In:   - v2_0}', "");
-    Expect(0, 983040, '\P{Is_In:   - v2_0}', "");
-    Expect(1, 983040, '\P{^Is_In:   - v2_0}', "");
-    Expect(0, 983037, '\p{Is_In:   - v2_0}', "");
-    Expect(1, 983037, '\p{^Is_In:   - v2_0}', "");
-    Expect(1, 983037, '\P{Is_In:   - v2_0}', "");
-    Expect(0, 983037, '\P{^Is_In:   - v2_0}', "");
-    Error('\p{Present_In: -:=2.1}');
-    Error('\P{Present_In: -:=2.1}');
+    Expect(1, 983040, '\p{Is_In=V2_0}', "");
+    Expect(0, 983040, '\p{^Is_In=V2_0}', "");
+    Expect(0, 983040, '\P{Is_In=V2_0}', "");
+    Expect(1, 983040, '\P{^Is_In=V2_0}', "");
+    Expect(0, 983037, '\p{Is_In=V2_0}', "");
+    Expect(1, 983037, '\p{^Is_In=V2_0}', "");
+    Expect(1, 983037, '\P{Is_In=V2_0}', "");
+    Expect(0, 983037, '\P{^Is_In=V2_0}', "");
+    Error('\p{Present_In=	-2.1/a/}');
+    Error('\P{Present_In=	-2.1/a/}');
     Expect(1, 983040, '\p{Present_In=:\A2.1\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A2.1\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00_00_02.1}', "");
-    Expect(0, 983040, '\p{^Present_In=00_00_02.1}', "");
-    Expect(0, 983040, '\P{Present_In=00_00_02.1}', "");
-    Expect(1, 983040, '\P{^Present_In=00_00_02.1}', "");
-    Expect(0, 983037, '\p{Present_In=00_00_02.1}', "");
-    Expect(1, 983037, '\p{^Present_In=00_00_02.1}', "");
-    Expect(1, 983037, '\P{Present_In=00_00_02.1}', "");
-    Expect(0, 983037, '\P{^Present_In=00_00_02.1}', "");
-    Error('\p{In:   -/a/V2_1}');
-    Error('\P{In:   -/a/V2_1}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_0_0_0_0002.1}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_0_0_0_0002.1}', "");
+    Error('\p{In=/a/_-V2_1}');
+    Error('\P{In=/a/_-V2_1}');
     Expect(1, 983040, '\p{In=:\AV2_1\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV2_1\z:}', "");;
     Expect(1, 983040, '\p{In=v21}', "");
@@ -47655,56 +48277,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v21}', "");
     Expect(1, 983040, '\p{In=:\Av21\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av21\z:}', "");;
-    Expect(1, 983040, '\p{In=-V2_1}', "");
-    Expect(0, 983040, '\p{^In=-V2_1}', "");
-    Expect(0, 983040, '\P{In=-V2_1}', "");
-    Expect(1, 983040, '\P{^In=-V2_1}', "");
-    Expect(0, 983037, '\p{In=-V2_1}', "");
-    Expect(1, 983037, '\p{^In=-V2_1}', "");
-    Expect(1, 983037, '\P{In=-V2_1}', "");
-    Expect(0, 983037, '\P{^In=-V2_1}', "");
-    Error('\p{Is_Present_In=/a/-	00000000_2.1}');
-    Error('\P{Is_Present_In=/a/-	00000000_2.1}');
-    Expect(1, 983040, '\p{Is_Present_In=000000002.1}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=000000002.1}', "");
-    Expect(0, 983040, '\P{Is_Present_In=000000002.1}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=000000002.1}', "");
-    Expect(0, 983037, '\p{Is_Present_In=000000002.1}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=000000002.1}', "");
-    Expect(1, 983037, '\P{Is_Present_In=000000002.1}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=000000002.1}', "");
-    Error('\p{Is_In=:=V2_1}');
-    Error('\P{Is_In=:=V2_1}');
-    Expect(1, 983040, '\p{Is_In=v21}', "");
-    Expect(0, 983040, '\p{^Is_In=v21}', "");
-    Expect(0, 983040, '\P{Is_In=v21}', "");
-    Expect(1, 983040, '\P{^Is_In=v21}', "");
-    Expect(0, 983037, '\p{Is_In=v21}', "");
-    Expect(1, 983037, '\p{^Is_In=v21}', "");
-    Expect(1, 983037, '\P{Is_In=v21}', "");
-    Expect(0, 983037, '\P{^Is_In=v21}', "");
-    Expect(1, 983040, '\p{Is_In= V2_1}', "");
-    Expect(0, 983040, '\p{^Is_In= V2_1}', "");
-    Expect(0, 983040, '\P{Is_In= V2_1}', "");
-    Expect(1, 983040, '\P{^Is_In= V2_1}', "");
-    Expect(0, 983037, '\p{Is_In= V2_1}', "");
-    Expect(1, 983037, '\p{^Is_In= V2_1}', "");
-    Expect(1, 983037, '\P{Is_In= V2_1}', "");
-    Expect(0, 983037, '\P{^Is_In= V2_1}', "");
-    Error('\p{Present_In::=-00003.0}');
-    Error('\P{Present_In::=-00003.0}');
+    Expect(1, 983040, '\p{In= 	v2_1}', "");
+    Expect(0, 983040, '\p{^In= 	v2_1}', "");
+    Expect(0, 983040, '\P{In= 	v2_1}', "");
+    Expect(1, 983040, '\P{^In= 	v2_1}', "");
+    Expect(0, 983037, '\p{In= 	v2_1}', "");
+    Expect(1, 983037, '\p{^In= 	v2_1}', "");
+    Expect(1, 983037, '\P{In= 	v2_1}', "");
+    Expect(0, 983037, '\P{^In= 	v2_1}', "");
+    Error('\p{Is_Present_In=/a/+000_000_2.1}');
+    Error('\P{Is_Present_In=/a/+000_000_2.1}');
+    Expect(1, 983040, '\p{Is_Present_In=00000002.1}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=00000002.1}', "");
+    Expect(0, 983040, '\P{Is_Present_In=00000002.1}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=00000002.1}', "");
+    Expect(0, 983037, '\p{Is_Present_In=00000002.1}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=00000002.1}', "");
+    Expect(1, 983037, '\P{Is_Present_In=00000002.1}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=00000002.1}', "");
+    Error('\p{Is_In=/a/_V2_1}');
+    Error('\P{Is_In=/a/_V2_1}');
+    Expect(1, 983040, '\p{Is_In: v21}', "");
+    Expect(0, 983040, '\p{^Is_In: v21}', "");
+    Expect(0, 983040, '\P{Is_In: v21}', "");
+    Expect(1, 983040, '\P{^Is_In: v21}', "");
+    Expect(0, 983037, '\p{Is_In: v21}', "");
+    Expect(1, 983037, '\p{^Is_In: v21}', "");
+    Expect(1, 983037, '\P{Is_In: v21}', "");
+    Expect(0, 983037, '\P{^Is_In: v21}', "");
+    Expect(1, 983040, '\p{Is_In=_-V2_1}', "");
+    Expect(0, 983040, '\p{^Is_In=_-V2_1}', "");
+    Expect(0, 983040, '\P{Is_In=_-V2_1}', "");
+    Expect(1, 983040, '\P{^Is_In=_-V2_1}', "");
+    Expect(0, 983037, '\p{Is_In=_-V2_1}', "");
+    Expect(1, 983037, '\p{^Is_In=_-V2_1}', "");
+    Expect(1, 983037, '\P{Is_In=_-V2_1}', "");
+    Expect(0, 983037, '\P{^Is_In=_-V2_1}', "");
+    Error('\p{Present_In= _3.0:=}');
+    Error('\P{Present_In= _3.0:=}');
     Expect(1, 983040, '\p{Present_In=:\A3.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A3.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=+003.0}', "");
-    Expect(0, 983040, '\p{^Present_In=+003.0}', "");
-    Expect(0, 983040, '\P{Present_In=+003.0}', "");
-    Expect(1, 983040, '\P{^Present_In=+003.0}', "");
-    Expect(0, 983037, '\p{Present_In=+003.0}', "");
-    Expect(1, 983037, '\p{^Present_In=+003.0}', "");
-    Expect(1, 983037, '\P{Present_In=+003.0}', "");
-    Expect(0, 983037, '\P{^Present_In=+003.0}', "");
-    Error('\p{In=:=-_V3_0}');
-    Error('\P{In=:=-_V3_0}');
+    Expect(1, 983040, '\p{Present_In=0000_3.0}', "");
+    Expect(0, 983040, '\p{^Present_In=0000_3.0}', "");
+    Expect(0, 983040, '\P{Present_In=0000_3.0}', "");
+    Expect(1, 983040, '\P{^Present_In=0000_3.0}', "");
+    Expect(0, 983037, '\p{Present_In=0000_3.0}', "");
+    Expect(1, 983037, '\p{^Present_In=0000_3.0}', "");
+    Expect(1, 983037, '\P{Present_In=0000_3.0}', "");
+    Expect(0, 983037, '\P{^Present_In=0000_3.0}', "");
+    Error('\p{In=_/a/V3_0}');
+    Error('\P{In=_/a/V3_0}');
     Expect(1, 983040, '\p{In=:\AV3_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV3_0\z:}', "");;
     Expect(1, 983040, '\p{In=v30}', "");
@@ -47717,88 +48339,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v30}', "");
     Expect(1, 983040, '\p{In=:\Av30\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av30\z:}', "");;
-    Expect(1, 983040, '\p{In: -V3_0}', "");
-    Expect(0, 983040, '\p{^In: -V3_0}', "");
-    Expect(0, 983040, '\P{In: -V3_0}', "");
-    Expect(1, 983040, '\P{^In: -V3_0}', "");
-    Expect(0, 983037, '\p{In: -V3_0}', "");
-    Expect(1, 983037, '\p{^In: -V3_0}', "");
-    Expect(1, 983037, '\P{In: -V3_0}', "");
-    Expect(0, 983037, '\P{^In: -V3_0}', "");
-    Error('\p{Is_Present_In:	_:=00000000_3.0}');
-    Error('\P{Is_Present_In:	_:=00000000_3.0}');
-    Expect(1, 983040, '\p{Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0_0_0_0_0_0_0_003.0}', "");
-    Error('\p{Is_In=	V3_0/a/}');
-    Error('\P{Is_In=	V3_0/a/}');
-    Expect(1, 983040, '\p{Is_In: v30}', "");
-    Expect(0, 983040, '\p{^Is_In: v30}', "");
-    Expect(0, 983040, '\P{Is_In: v30}', "");
-    Expect(1, 983040, '\P{^Is_In: v30}', "");
-    Expect(0, 983037, '\p{Is_In: v30}', "");
-    Expect(1, 983037, '\p{^Is_In: v30}', "");
-    Expect(1, 983037, '\P{Is_In: v30}', "");
-    Expect(0, 983037, '\P{^Is_In: v30}', "");
-    Expect(1, 983040, '\p{Is_In=-v3_0}', "");
-    Expect(0, 983040, '\p{^Is_In=-v3_0}', "");
-    Expect(0, 983040, '\P{Is_In=-v3_0}', "");
-    Expect(1, 983040, '\P{^Is_In=-v3_0}', "");
-    Expect(0, 983037, '\p{Is_In=-v3_0}', "");
-    Expect(1, 983037, '\p{^Is_In=-v3_0}', "");
-    Expect(1, 983037, '\P{Is_In=-v3_0}', "");
-    Expect(0, 983037, '\P{^Is_In=-v3_0}', "");
-    Error('\p{Present_In=-/a/3.1}');
-    Error('\P{Present_In=-/a/3.1}');
+    Expect(1, 983040, '\p{In=	 V3_0}', "");
+    Expect(0, 983040, '\p{^In=	 V3_0}', "");
+    Expect(0, 983040, '\P{In=	 V3_0}', "");
+    Expect(1, 983040, '\P{^In=	 V3_0}', "");
+    Expect(0, 983037, '\p{In=	 V3_0}', "");
+    Expect(1, 983037, '\p{^In=	 V3_0}', "");
+    Expect(1, 983037, '\P{In=	 V3_0}', "");
+    Expect(0, 983037, '\P{^In=	 V3_0}', "");
+    Error('\p{Is_Present_In=_3.0/a/}');
+    Error('\P{Is_Present_In=_3.0/a/}');
+    Expect(1, 983040, '\p{Is_Present_In: 000000003.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In: 000000003.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In: 000000003.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In: 000000003.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In: 000000003.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In: 000000003.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In: 000000003.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In: 000000003.0}', "");
+    Error('\p{Is_In=-/a/V3_0}');
+    Error('\P{Is_In=-/a/V3_0}');
+    Expect(1, 983040, '\p{Is_In=v30}', "");
+    Expect(0, 983040, '\p{^Is_In=v30}', "");
+    Expect(0, 983040, '\P{Is_In=v30}', "");
+    Expect(1, 983040, '\P{^Is_In=v30}', "");
+    Expect(0, 983037, '\p{Is_In=v30}', "");
+    Expect(1, 983037, '\p{^Is_In=v30}', "");
+    Expect(1, 983037, '\P{Is_In=v30}', "");
+    Expect(0, 983037, '\P{^Is_In=v30}', "");
+    Expect(1, 983040, '\p{Is_In= -v3_0}', "");
+    Expect(0, 983040, '\p{^Is_In= -v3_0}', "");
+    Expect(0, 983040, '\P{Is_In= -v3_0}', "");
+    Expect(1, 983040, '\P{^Is_In= -v3_0}', "");
+    Expect(0, 983037, '\p{Is_In= -v3_0}', "");
+    Expect(1, 983037, '\p{^Is_In= -v3_0}', "");
+    Expect(1, 983037, '\P{Is_In= -v3_0}', "");
+    Expect(0, 983037, '\P{^Is_In= -v3_0}', "");
+    Error('\p{Present_In=:=	_00003.1}');
+    Error('\P{Present_In=:=	_00003.1}');
     Expect(1, 983040, '\p{Present_In=:\A3.1\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A3.1\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00_3.1}', "");
-    Expect(0, 983040, '\p{^Present_In=00_3.1}', "");
-    Expect(0, 983040, '\P{Present_In=00_3.1}', "");
-    Expect(1, 983040, '\P{^Present_In=00_3.1}', "");
-    Expect(0, 983037, '\p{Present_In=00_3.1}', "");
-    Expect(1, 983037, '\p{^Present_In=00_3.1}', "");
-    Expect(1, 983037, '\P{Present_In=00_3.1}', "");
-    Expect(0, 983037, '\P{^Present_In=00_3.1}', "");
-    Error('\p{In= 	v3_1:=}');
-    Error('\P{In= 	v3_1:=}');
+    Expect(1, 983040, '\p{Present_In=0000000003.1}', "");
+    Expect(0, 983040, '\p{^Present_In=0000000003.1}', "");
+    Expect(0, 983040, '\P{Present_In=0000000003.1}', "");
+    Expect(1, 983040, '\P{^Present_In=0000000003.1}', "");
+    Expect(0, 983037, '\p{Present_In=0000000003.1}', "");
+    Expect(1, 983037, '\p{^Present_In=0000000003.1}', "");
+    Expect(1, 983037, '\P{Present_In=0000000003.1}', "");
+    Expect(0, 983037, '\P{^Present_In=0000000003.1}', "");
+    Error('\p{In=	:=V3_1}');
+    Error('\P{In=	:=V3_1}');
     Expect(1, 983040, '\p{In=:\AV3_1\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV3_1\z:}', "");;
-    Expect(1, 983040, '\p{In=v31}', "");
-    Expect(0, 983040, '\p{^In=v31}', "");
-    Expect(0, 983040, '\P{In=v31}', "");
-    Expect(1, 983040, '\P{^In=v31}', "");
-    Expect(0, 983037, '\p{In=v31}', "");
-    Expect(1, 983037, '\p{^In=v31}', "");
-    Expect(1, 983037, '\P{In=v31}', "");
-    Expect(0, 983037, '\P{^In=v31}', "");
+    Expect(1, 983040, '\p{In:v31}', "");
+    Expect(0, 983040, '\p{^In:v31}', "");
+    Expect(0, 983040, '\P{In:v31}', "");
+    Expect(1, 983040, '\P{^In:v31}', "");
+    Expect(0, 983037, '\p{In:v31}', "");
+    Expect(1, 983037, '\p{^In:v31}', "");
+    Expect(1, 983037, '\P{In:v31}', "");
+    Expect(0, 983037, '\P{^In:v31}', "");
     Expect(1, 983040, '\p{In=:\Av31\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av31\z:}', "");;
-    Expect(1, 983040, '\p{In=__V3_1}', "");
-    Expect(0, 983040, '\p{^In=__V3_1}', "");
-    Expect(0, 983040, '\P{In=__V3_1}', "");
-    Expect(1, 983040, '\P{^In=__V3_1}', "");
-    Expect(0, 983037, '\p{In=__V3_1}', "");
-    Expect(1, 983037, '\p{^In=__V3_1}', "");
-    Expect(1, 983037, '\P{In=__V3_1}', "");
-    Expect(0, 983037, '\P{^In=__V3_1}', "");
-    Error('\p{Is_Present_In=/a/- 0_0_0_0_0_0_0_03.1}');
-    Error('\P{Is_Present_In=/a/- 0_0_0_0_0_0_0_03.1}');
-    Expect(1, 983040, '\p{Is_Present_In=00003.1}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=00003.1}', "");
-    Expect(0, 983040, '\P{Is_Present_In=00003.1}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=00003.1}', "");
-    Expect(0, 983037, '\p{Is_Present_In=00003.1}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=00003.1}', "");
-    Expect(1, 983037, '\P{Is_Present_In=00003.1}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=00003.1}', "");
-    Error('\p{Is_In=:=- v3_1}');
-    Error('\P{Is_In=:=- v3_1}');
+    Expect(1, 983040, '\p{In:    v3_1}', "");
+    Expect(0, 983040, '\p{^In:    v3_1}', "");
+    Expect(0, 983040, '\P{In:    v3_1}', "");
+    Expect(1, 983040, '\P{^In:    v3_1}', "");
+    Expect(0, 983037, '\p{In:    v3_1}', "");
+    Expect(1, 983037, '\p{^In:    v3_1}', "");
+    Expect(1, 983037, '\P{In:    v3_1}', "");
+    Expect(0, 983037, '\P{^In:    v3_1}', "");
+    Error('\p{Is_Present_In=/a/_-00003.1}');
+    Error('\P{Is_Present_In=/a/_-00003.1}');
+    Expect(1, 983040, '\p{Is_Present_In=0_3.1}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=0_3.1}', "");
+    Expect(0, 983040, '\P{Is_Present_In=0_3.1}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=0_3.1}', "");
+    Expect(0, 983037, '\p{Is_Present_In=0_3.1}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=0_3.1}', "");
+    Expect(1, 983037, '\P{Is_Present_In=0_3.1}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=0_3.1}', "");
+    Error('\p{Is_In=	 V3_1/a/}');
+    Error('\P{Is_In=	 V3_1/a/}');
     Expect(1, 983040, '\p{Is_In=v31}', "");
     Expect(0, 983040, '\p{^Is_In=v31}', "");
     Expect(0, 983040, '\P{Is_In=v31}', "");
@@ -47807,28 +48429,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v31}', "");
     Expect(1, 983037, '\P{Is_In=v31}', "");
     Expect(0, 983037, '\P{^Is_In=v31}', "");
-    Expect(1, 983040, '\p{Is_In=- V3_1}', "");
-    Expect(0, 983040, '\p{^Is_In=- V3_1}', "");
-    Expect(0, 983040, '\P{Is_In=- V3_1}', "");
-    Expect(1, 983040, '\P{^Is_In=- V3_1}', "");
-    Expect(0, 983037, '\p{Is_In=- V3_1}', "");
-    Expect(1, 983037, '\p{^Is_In=- V3_1}', "");
-    Expect(1, 983037, '\P{Is_In=- V3_1}', "");
-    Expect(0, 983037, '\P{^Is_In=- V3_1}', "");
-    Error('\p{Present_In=/a/-00_00_03.2}');
-    Error('\P{Present_In=/a/-00_00_03.2}');
+    Expect(1, 983040, '\p{Is_In=__V3_1}', "");
+    Expect(0, 983040, '\p{^Is_In=__V3_1}', "");
+    Expect(0, 983040, '\P{Is_In=__V3_1}', "");
+    Expect(1, 983040, '\P{^Is_In=__V3_1}', "");
+    Expect(0, 983037, '\p{Is_In=__V3_1}', "");
+    Expect(1, 983037, '\p{^Is_In=__V3_1}', "");
+    Expect(1, 983037, '\P{Is_In=__V3_1}', "");
+    Expect(0, 983037, '\P{^Is_In=__V3_1}', "");
+    Error('\p{Present_In=/a/_	0000003.2}');
+    Error('\P{Present_In=/a/_	0000003.2}');
     Expect(1, 983040, '\p{Present_In=:\A3.2\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A3.2\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=000_000_03.2}', "");
-    Expect(0, 983040, '\p{^Present_In=000_000_03.2}', "");
-    Expect(0, 983040, '\P{Present_In=000_000_03.2}', "");
-    Expect(1, 983040, '\P{^Present_In=000_000_03.2}', "");
-    Expect(0, 983037, '\p{Present_In=000_000_03.2}', "");
-    Expect(1, 983037, '\p{^Present_In=000_000_03.2}', "");
-    Expect(1, 983037, '\P{Present_In=000_000_03.2}', "");
-    Expect(0, 983037, '\P{^Present_In=000_000_03.2}', "");
-    Error('\p{In= :=V3_2}');
-    Error('\P{In= :=V3_2}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_0_0_03.2}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_0_0_03.2}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_0_0_03.2}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_0_0_03.2}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_0_0_03.2}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_0_0_03.2}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_0_0_03.2}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_0_0_03.2}', "");
+    Error('\p{In=_/a/V3_2}');
+    Error('\P{In=_/a/V3_2}');
     Expect(1, 983040, '\p{In=:\AV3_2\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV3_2\z:}', "");;
     Expect(1, 983040, '\p{In=v32}', "");
@@ -47841,56 +48463,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v32}', "");
     Expect(1, 983040, '\p{In=:\Av32\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av32\z:}', "");;
-    Expect(1, 983040, '\p{In=  v3_2}', "");
-    Expect(0, 983040, '\p{^In=  v3_2}', "");
-    Expect(0, 983040, '\P{In=  v3_2}', "");
-    Expect(1, 983040, '\P{^In=  v3_2}', "");
-    Expect(0, 983037, '\p{In=  v3_2}', "");
-    Expect(1, 983037, '\p{^In=  v3_2}', "");
-    Expect(1, 983037, '\P{In=  v3_2}', "");
-    Expect(0, 983037, '\P{^In=  v3_2}', "");
-    Error('\p{Is_Present_In=:=	00000_3.2}');
-    Error('\P{Is_Present_In=:=	00000_3.2}');
-    Expect(1, 983040, '\p{Is_Present_In=000_000_03.2}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=000_000_03.2}', "");
-    Expect(0, 983040, '\P{Is_Present_In=000_000_03.2}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=000_000_03.2}', "");
-    Expect(0, 983037, '\p{Is_Present_In=000_000_03.2}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=000_000_03.2}', "");
-    Expect(1, 983037, '\P{Is_Present_In=000_000_03.2}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=000_000_03.2}', "");
-    Error('\p{Is_In=/a/--V3_2}');
-    Error('\P{Is_In=/a/--V3_2}');
-    Expect(1, 983040, '\p{Is_In=v32}', "");
-    Expect(0, 983040, '\p{^Is_In=v32}', "");
-    Expect(0, 983040, '\P{Is_In=v32}', "");
-    Expect(1, 983040, '\P{^Is_In=v32}', "");
-    Expect(0, 983037, '\p{Is_In=v32}', "");
-    Expect(1, 983037, '\p{^Is_In=v32}', "");
-    Expect(1, 983037, '\P{Is_In=v32}', "");
-    Expect(0, 983037, '\P{^Is_In=v32}', "");
-    Expect(1, 983040, '\p{Is_In= 	V3_2}', "");
-    Expect(0, 983040, '\p{^Is_In= 	V3_2}', "");
-    Expect(0, 983040, '\P{Is_In= 	V3_2}', "");
-    Expect(1, 983040, '\P{^Is_In= 	V3_2}', "");
-    Expect(0, 983037, '\p{Is_In= 	V3_2}', "");
-    Expect(1, 983037, '\p{^Is_In= 	V3_2}', "");
-    Expect(1, 983037, '\P{Is_In= 	V3_2}', "");
-    Expect(0, 983037, '\P{^Is_In= 	V3_2}', "");
-    Error('\p{Present_In= -+0_0_0_0_0_0_0_04.0:=}');
-    Error('\P{Present_In= -+0_0_0_0_0_0_0_04.0:=}');
+    Expect(1, 983040, '\p{In=- v3_2}', "");
+    Expect(0, 983040, '\p{^In=- v3_2}', "");
+    Expect(0, 983040, '\P{In=- v3_2}', "");
+    Expect(1, 983040, '\P{^In=- v3_2}', "");
+    Expect(0, 983037, '\p{In=- v3_2}', "");
+    Expect(1, 983037, '\p{^In=- v3_2}', "");
+    Expect(1, 983037, '\P{In=- v3_2}', "");
+    Expect(0, 983037, '\P{^In=- v3_2}', "");
+    Error('\p{Is_Present_In=	-00003.2/a/}');
+    Error('\P{Is_Present_In=	-00003.2/a/}');
+    Expect(1, 983040, '\p{Is_Present_In=+00_00_00_03.2}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=+00_00_00_03.2}', "");
+    Expect(0, 983040, '\P{Is_Present_In=+00_00_00_03.2}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=+00_00_00_03.2}', "");
+    Expect(0, 983037, '\p{Is_Present_In=+00_00_00_03.2}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=+00_00_00_03.2}', "");
+    Expect(1, 983037, '\P{Is_Present_In=+00_00_00_03.2}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=+00_00_00_03.2}', "");
+    Error('\p{Is_In=	 V3_2/a/}');
+    Error('\P{Is_In=	 V3_2/a/}');
+    Expect(1, 983040, '\p{Is_In:   v32}', "");
+    Expect(0, 983040, '\p{^Is_In:   v32}', "");
+    Expect(0, 983040, '\P{Is_In:   v32}', "");
+    Expect(1, 983040, '\P{^Is_In:   v32}', "");
+    Expect(0, 983037, '\p{Is_In:   v32}', "");
+    Expect(1, 983037, '\p{^Is_In:   v32}', "");
+    Expect(1, 983037, '\P{Is_In:   v32}', "");
+    Expect(0, 983037, '\P{^Is_In:   v32}', "");
+    Expect(1, 983040, '\p{Is_In=		V3_2}', "");
+    Expect(0, 983040, '\p{^Is_In=		V3_2}', "");
+    Expect(0, 983040, '\P{Is_In=		V3_2}', "");
+    Expect(1, 983040, '\P{^Is_In=		V3_2}', "");
+    Expect(0, 983037, '\p{Is_In=		V3_2}', "");
+    Expect(1, 983037, '\p{^Is_In=		V3_2}', "");
+    Expect(1, 983037, '\P{Is_In=		V3_2}', "");
+    Expect(0, 983037, '\P{^Is_In=		V3_2}', "");
+    Error('\p{Present_In=-_00_00_00_04.0/a/}');
+    Error('\P{Present_In=-_00_00_00_04.0/a/}');
     Expect(1, 983040, '\p{Present_In=:\A4.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A4.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In:	+004.0}', "");
-    Expect(0, 983040, '\p{^Present_In:	+004.0}', "");
-    Expect(0, 983040, '\P{Present_In:	+004.0}', "");
-    Expect(1, 983040, '\P{^Present_In:	+004.0}', "");
-    Expect(0, 983037, '\p{Present_In:	+004.0}', "");
-    Expect(1, 983037, '\p{^Present_In:	+004.0}', "");
-    Expect(1, 983037, '\P{Present_In:	+004.0}', "");
-    Expect(0, 983037, '\P{^Present_In:	+004.0}', "");
-    Error('\p{In= /a/V4_0}');
-    Error('\P{In= /a/V4_0}');
+    Expect(1, 983040, '\p{Present_In=+0_4.0}', "");
+    Expect(0, 983040, '\p{^Present_In=+0_4.0}', "");
+    Expect(0, 983040, '\P{Present_In=+0_4.0}', "");
+    Expect(1, 983040, '\P{^Present_In=+0_4.0}', "");
+    Expect(0, 983037, '\p{Present_In=+0_4.0}', "");
+    Expect(1, 983037, '\p{^Present_In=+0_4.0}', "");
+    Expect(1, 983037, '\P{Present_In=+0_4.0}', "");
+    Expect(0, 983037, '\P{^Present_In=+0_4.0}', "");
+    Error('\p{In=:=_V4_0}');
+    Error('\P{In=:=_V4_0}');
     Expect(1, 983040, '\p{In=:\AV4_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV4_0\z:}', "");;
     Expect(1, 983040, '\p{In=v40}', "");
@@ -47903,26 +48525,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v40}', "");
     Expect(1, 983040, '\p{In=:\Av40\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av40\z:}', "");;
-    Expect(1, 983040, '\p{In:	-_V4_0}', "");
-    Expect(0, 983040, '\p{^In:	-_V4_0}', "");
-    Expect(0, 983040, '\P{In:	-_V4_0}', "");
-    Expect(1, 983040, '\P{^In:	-_V4_0}', "");
-    Expect(0, 983037, '\p{In:	-_V4_0}', "");
-    Expect(1, 983037, '\p{^In:	-_V4_0}', "");
-    Expect(1, 983037, '\P{In:	-_V4_0}', "");
-    Expect(0, 983037, '\P{^In:	-_V4_0}', "");
-    Error('\p{Is_Present_In=:=0_0_0_0_04.0}');
-    Error('\P{Is_Present_In=:=0_0_0_0_04.0}');
-    Expect(1, 983040, '\p{Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In:0_0_0_0_04.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In:0_0_0_0_04.0}', "");
-    Error('\p{Is_In=	-V4_0/a/}');
-    Error('\P{Is_In=	-V4_0/a/}');
+    Expect(1, 983040, '\p{In=_v4_0}', "");
+    Expect(0, 983040, '\p{^In=_v4_0}', "");
+    Expect(0, 983040, '\P{In=_v4_0}', "");
+    Expect(1, 983040, '\P{^In=_v4_0}', "");
+    Expect(0, 983037, '\p{In=_v4_0}', "");
+    Expect(1, 983037, '\p{^In=_v4_0}', "");
+    Expect(1, 983037, '\P{In=_v4_0}', "");
+    Expect(0, 983037, '\P{^In=_v4_0}', "");
+    Error('\p{Is_Present_In= -+04.0/a/}');
+    Error('\P{Is_Present_In= -+04.0/a/}');
+    Expect(1, 983040, '\p{Is_Present_In=00_4.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=00_4.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=00_4.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=00_4.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=00_4.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=00_4.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=00_4.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=00_4.0}', "");
+    Error('\p{Is_In=	-V4_0:=}');
+    Error('\P{Is_In=	-V4_0:=}');
     Expect(1, 983040, '\p{Is_In=v40}', "");
     Expect(0, 983040, '\p{^Is_In=v40}', "");
     Expect(0, 983040, '\P{Is_In=v40}', "");
@@ -47931,28 +48553,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v40}', "");
     Expect(1, 983037, '\P{Is_In=v40}', "");
     Expect(0, 983037, '\P{^Is_In=v40}', "");
-    Expect(1, 983040, '\p{Is_In= V4_0}', "");
-    Expect(0, 983040, '\p{^Is_In= V4_0}', "");
-    Expect(0, 983040, '\P{Is_In= V4_0}', "");
-    Expect(1, 983040, '\P{^Is_In= V4_0}', "");
-    Expect(0, 983037, '\p{Is_In= V4_0}', "");
-    Expect(1, 983037, '\p{^Is_In= V4_0}', "");
-    Expect(1, 983037, '\P{Is_In= V4_0}', "");
-    Expect(0, 983037, '\P{^Is_In= V4_0}', "");
-    Error('\p{Present_In=/a/-_+0_0_04.1}');
-    Error('\P{Present_In=/a/-_+0_0_04.1}');
+    Expect(1, 983040, '\p{Is_In=__V4_0}', "");
+    Expect(0, 983040, '\p{^Is_In=__V4_0}', "");
+    Expect(0, 983040, '\P{Is_In=__V4_0}', "");
+    Expect(1, 983040, '\P{^Is_In=__V4_0}', "");
+    Expect(0, 983037, '\p{Is_In=__V4_0}', "");
+    Expect(1, 983037, '\p{^Is_In=__V4_0}', "");
+    Expect(1, 983037, '\P{Is_In=__V4_0}', "");
+    Expect(0, 983037, '\P{^Is_In=__V4_0}', "");
+    Error('\p{Present_In=/a/-_+0_0_0_0_0004.1}');
+    Error('\P{Present_In=/a/-_+0_0_0_0_0004.1}');
     Expect(1, 983040, '\p{Present_In=:\A4.1\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A4.1\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=+000_4.1}', "");
-    Expect(0, 983040, '\p{^Present_In=+000_4.1}', "");
-    Expect(0, 983040, '\P{Present_In=+000_4.1}', "");
-    Expect(1, 983040, '\P{^Present_In=+000_4.1}', "");
-    Expect(0, 983037, '\p{Present_In=+000_4.1}', "");
-    Expect(1, 983037, '\p{^Present_In=+000_4.1}', "");
-    Expect(1, 983037, '\P{Present_In=+000_4.1}', "");
-    Expect(0, 983037, '\P{^Present_In=+000_4.1}', "");
-    Error('\p{In=:=	V4_1}');
-    Error('\P{In=:=	V4_1}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_0_004.1}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_0_004.1}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_0_004.1}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_0_004.1}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_0_004.1}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_0_004.1}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_0_004.1}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_0_004.1}', "");
+    Error('\p{In= /a/V4_1}');
+    Error('\P{In= /a/V4_1}');
     Expect(1, 983040, '\p{In=:\AV4_1\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV4_1\z:}', "");;
     Expect(1, 983040, '\p{In=v41}', "");
@@ -47965,26 +48587,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v41}', "");
     Expect(1, 983040, '\p{In=:\Av41\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av41\z:}', "");;
-    Expect(1, 983040, '\p{In= -V4_1}', "");
-    Expect(0, 983040, '\p{^In= -V4_1}', "");
-    Expect(0, 983040, '\P{In= -V4_1}', "");
-    Expect(1, 983040, '\P{^In= -V4_1}', "");
-    Expect(0, 983037, '\p{In= -V4_1}', "");
-    Expect(1, 983037, '\p{^In= -V4_1}', "");
-    Expect(1, 983037, '\P{In= -V4_1}', "");
-    Expect(0, 983037, '\P{^In= -V4_1}', "");
-    Error('\p{Is_Present_In: 	/a/04.1}');
-    Error('\P{Is_Present_In: 	/a/04.1}');
-    Expect(1, 983040, '\p{Is_Present_In: 000000000_4.1}', "");
-    Expect(0, 983040, '\p{^Is_Present_In: 000000000_4.1}', "");
-    Expect(0, 983040, '\P{Is_Present_In: 000000000_4.1}', "");
-    Expect(1, 983040, '\P{^Is_Present_In: 000000000_4.1}', "");
-    Expect(0, 983037, '\p{Is_Present_In: 000000000_4.1}', "");
-    Expect(1, 983037, '\p{^Is_Present_In: 000000000_4.1}', "");
-    Expect(1, 983037, '\P{Is_Present_In: 000000000_4.1}', "");
-    Expect(0, 983037, '\P{^Is_Present_In: 000000000_4.1}', "");
-    Error('\p{Is_In=:=  V4_1}');
-    Error('\P{Is_In=:=  V4_1}');
+    Expect(1, 983040, '\p{In:-	V4_1}', "");
+    Expect(0, 983040, '\p{^In:-	V4_1}', "");
+    Expect(0, 983040, '\P{In:-	V4_1}', "");
+    Expect(1, 983040, '\P{^In:-	V4_1}', "");
+    Expect(0, 983037, '\p{In:-	V4_1}', "");
+    Expect(1, 983037, '\p{^In:-	V4_1}', "");
+    Expect(1, 983037, '\P{In:-	V4_1}', "");
+    Expect(0, 983037, '\P{^In:-	V4_1}', "");
+    Error('\p{Is_Present_In:   :=000000004.1}');
+    Error('\P{Is_Present_In:   :=000000004.1}');
+    Expect(1, 983040, '\p{Is_Present_In=0000000004.1}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=0000000004.1}', "");
+    Expect(0, 983040, '\P{Is_Present_In=0000000004.1}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=0000000004.1}', "");
+    Expect(0, 983037, '\p{Is_Present_In=0000000004.1}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=0000000004.1}', "");
+    Expect(1, 983037, '\P{Is_Present_In=0000000004.1}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=0000000004.1}', "");
+    Error('\p{Is_In:   -/a/V4_1}');
+    Error('\P{Is_In:   -/a/V4_1}');
     Expect(1, 983040, '\p{Is_In=v41}', "");
     Expect(0, 983040, '\p{^Is_In=v41}', "");
     Expect(0, 983040, '\P{Is_In=v41}', "");
@@ -47993,28 +48615,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v41}', "");
     Expect(1, 983037, '\P{Is_In=v41}', "");
     Expect(0, 983037, '\P{^Is_In=v41}', "");
-    Expect(1, 983040, '\p{Is_In=V4_1}', "");
-    Expect(0, 983040, '\p{^Is_In=V4_1}', "");
-    Expect(0, 983040, '\P{Is_In=V4_1}', "");
-    Expect(1, 983040, '\P{^Is_In=V4_1}', "");
-    Expect(0, 983037, '\p{Is_In=V4_1}', "");
-    Expect(1, 983037, '\p{^Is_In=V4_1}', "");
-    Expect(1, 983037, '\P{Is_In=V4_1}', "");
-    Expect(0, 983037, '\P{^Is_In=V4_1}', "");
-    Error('\p{Present_In=/a/- +00005.0}');
-    Error('\P{Present_In=/a/- +00005.0}');
+    Expect(1, 983040, '\p{Is_In=_ v4_1}', "");
+    Expect(0, 983040, '\p{^Is_In=_ v4_1}', "");
+    Expect(0, 983040, '\P{Is_In=_ v4_1}', "");
+    Expect(1, 983040, '\P{^Is_In=_ v4_1}', "");
+    Expect(0, 983037, '\p{Is_In=_ v4_1}', "");
+    Expect(1, 983037, '\p{^Is_In=_ v4_1}', "");
+    Expect(1, 983037, '\P{Is_In=_ v4_1}', "");
+    Expect(0, 983037, '\P{^Is_In=_ v4_1}', "");
+    Error('\p{Present_In=_0005.0:=}');
+    Error('\P{Present_In=_0005.0:=}');
     Expect(1, 983040, '\p{Present_In=:\A5.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A5.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00000005.0}', "");
-    Expect(0, 983040, '\p{^Present_In=00000005.0}', "");
-    Expect(0, 983040, '\P{Present_In=00000005.0}', "");
-    Expect(1, 983040, '\P{^Present_In=00000005.0}', "");
-    Expect(0, 983037, '\p{Present_In=00000005.0}', "");
-    Expect(1, 983037, '\p{^Present_In=00000005.0}', "");
-    Expect(1, 983037, '\P{Present_In=00000005.0}', "");
-    Expect(0, 983037, '\P{^Present_In=00000005.0}', "");
-    Error('\p{In=/a/-V5_0}');
-    Error('\P{In=/a/-V5_0}');
+    Expect(1, 983040, '\p{Present_In=000005.0}', "");
+    Expect(0, 983040, '\p{^Present_In=000005.0}', "");
+    Expect(0, 983040, '\P{Present_In=000005.0}', "");
+    Expect(1, 983040, '\P{^Present_In=000005.0}', "");
+    Expect(0, 983037, '\p{Present_In=000005.0}', "");
+    Expect(1, 983037, '\p{^Present_In=000005.0}', "");
+    Expect(1, 983037, '\P{Present_In=000005.0}', "");
+    Expect(0, 983037, '\P{^Present_In=000005.0}', "");
+    Error('\p{In= V5_0/a/}');
+    Error('\P{In= V5_0/a/}');
     Expect(1, 983040, '\p{In=:\AV5_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV5_0\z:}', "");;
     Expect(1, 983040, '\p{In=v50}', "");
@@ -48027,26 +48649,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v50}', "");
     Expect(1, 983040, '\p{In=:\Av50\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av50\z:}', "");;
-    Expect(1, 983040, '\p{In:   _ v5_0}', "");
-    Expect(0, 983040, '\p{^In:   _ v5_0}', "");
-    Expect(0, 983040, '\P{In:   _ v5_0}', "");
-    Expect(1, 983040, '\P{^In:   _ v5_0}', "");
-    Expect(0, 983037, '\p{In:   _ v5_0}', "");
-    Expect(1, 983037, '\p{^In:   _ v5_0}', "");
-    Expect(1, 983037, '\P{In:   _ v5_0}', "");
-    Expect(0, 983037, '\P{^In:   _ v5_0}', "");
-    Error('\p{Is_Present_In=	0000005.0:=}');
-    Error('\P{Is_Present_In=	0000005.0:=}');
-    Expect(1, 983040, '\p{Is_Present_In=000000005.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=000000005.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=000000005.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=000000005.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=000000005.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=000000005.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=000000005.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=000000005.0}', "");
-    Error('\p{Is_In=/a/v5_0}');
-    Error('\P{Is_In=/a/v5_0}');
+    Expect(1, 983040, '\p{In=_V5_0}', "");
+    Expect(0, 983040, '\p{^In=_V5_0}', "");
+    Expect(0, 983040, '\P{In=_V5_0}', "");
+    Expect(1, 983040, '\P{^In=_V5_0}', "");
+    Expect(0, 983037, '\p{In=_V5_0}', "");
+    Expect(1, 983037, '\p{^In=_V5_0}', "");
+    Expect(1, 983037, '\P{In=_V5_0}', "");
+    Expect(0, 983037, '\P{^In=_V5_0}', "");
+    Error('\p{Is_Present_In=:=--000005.0}');
+    Error('\P{Is_Present_In=:=--000005.0}');
+    Expect(1, 983040, '\p{Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=+0_0_0_0_005.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=+0_0_0_0_005.0}', "");
+    Error('\p{Is_In= :=v5_0}');
+    Error('\P{Is_In= :=v5_0}');
     Expect(1, 983040, '\p{Is_In=v50}', "");
     Expect(0, 983040, '\p{^Is_In=v50}', "");
     Expect(0, 983040, '\P{Is_In=v50}', "");
@@ -48055,60 +48677,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v50}', "");
     Expect(1, 983037, '\P{Is_In=v50}', "");
     Expect(0, 983037, '\P{^Is_In=v50}', "");
-    Expect(1, 983040, '\p{Is_In=	 V5_0}', "");
-    Expect(0, 983040, '\p{^Is_In=	 V5_0}', "");
-    Expect(0, 983040, '\P{Is_In=	 V5_0}', "");
-    Expect(1, 983040, '\P{^Is_In=	 V5_0}', "");
-    Expect(0, 983037, '\p{Is_In=	 V5_0}', "");
-    Expect(1, 983037, '\p{^Is_In=	 V5_0}', "");
-    Expect(1, 983037, '\P{Is_In=	 V5_0}', "");
-    Expect(0, 983037, '\P{^Is_In=	 V5_0}', "");
-    Error('\p{Present_In=:=_	+0_5.1}');
-    Error('\P{Present_In=:=_	+0_5.1}');
+    Expect(1, 983040, '\p{Is_In: _ v5_0}', "");
+    Expect(0, 983040, '\p{^Is_In: _ v5_0}', "");
+    Expect(0, 983040, '\P{Is_In: _ v5_0}', "");
+    Expect(1, 983040, '\P{^Is_In: _ v5_0}', "");
+    Expect(0, 983037, '\p{Is_In: _ v5_0}', "");
+    Expect(1, 983037, '\p{^Is_In: _ v5_0}', "");
+    Expect(1, 983037, '\P{Is_In: _ v5_0}', "");
+    Expect(0, 983037, '\P{^Is_In: _ v5_0}', "");
+    Error('\p{Present_In=/a/-_0005.1}');
+    Error('\P{Present_In=/a/-_0005.1}');
     Expect(1, 983040, '\p{Present_In=:\A5.1\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A5.1\z:}', "");;
-    Expect(1, 983040, '\p{Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(0, 983040, '\p{^Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(0, 983040, '\P{Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(1, 983040, '\P{^Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(0, 983037, '\p{Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(1, 983037, '\p{^Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(1, 983037, '\P{Present_In:   0_0_0_0_0_005.1}', "");
-    Expect(0, 983037, '\P{^Present_In:   0_0_0_0_0_005.1}', "");
-    Error('\p{In=_:=V5_1}');
-    Error('\P{In=_:=V5_1}');
+    Expect(1, 983040, '\p{Present_In=000000005.1}', "");
+    Expect(0, 983040, '\p{^Present_In=000000005.1}', "");
+    Expect(0, 983040, '\P{Present_In=000000005.1}', "");
+    Expect(1, 983040, '\P{^Present_In=000000005.1}', "");
+    Expect(0, 983037, '\p{Present_In=000000005.1}', "");
+    Expect(1, 983037, '\p{^Present_In=000000005.1}', "");
+    Expect(1, 983037, '\P{Present_In=000000005.1}', "");
+    Expect(0, 983037, '\P{^Present_In=000000005.1}', "");
+    Error('\p{In=/a/V5_1}');
+    Error('\P{In=/a/V5_1}');
     Expect(1, 983040, '\p{In=:\AV5_1\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV5_1\z:}', "");;
-    Expect(1, 983040, '\p{In:	v51}', "");
-    Expect(0, 983040, '\p{^In:	v51}', "");
-    Expect(0, 983040, '\P{In:	v51}', "");
-    Expect(1, 983040, '\P{^In:	v51}', "");
-    Expect(0, 983037, '\p{In:	v51}', "");
-    Expect(1, 983037, '\p{^In:	v51}', "");
-    Expect(1, 983037, '\P{In:	v51}', "");
-    Expect(0, 983037, '\P{^In:	v51}', "");
+    Expect(1, 983040, '\p{In=v51}', "");
+    Expect(0, 983040, '\p{^In=v51}', "");
+    Expect(0, 983040, '\P{In=v51}', "");
+    Expect(1, 983040, '\P{^In=v51}', "");
+    Expect(0, 983037, '\p{In=v51}', "");
+    Expect(1, 983037, '\p{^In=v51}', "");
+    Expect(1, 983037, '\P{In=v51}', "");
+    Expect(0, 983037, '\P{^In=v51}', "");
     Expect(1, 983040, '\p{In=:\Av51\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av51\z:}', "");;
-    Expect(1, 983040, '\p{In= -V5_1}', "");
-    Expect(0, 983040, '\p{^In= -V5_1}', "");
-    Expect(0, 983040, '\P{In= -V5_1}', "");
-    Expect(1, 983040, '\P{^In= -V5_1}', "");
-    Expect(0, 983037, '\p{In= -V5_1}', "");
-    Expect(1, 983037, '\p{^In= -V5_1}', "");
-    Expect(1, 983037, '\P{In= -V5_1}', "");
-    Expect(0, 983037, '\P{^In= -V5_1}', "");
-    Error('\p{Is_Present_In=:=	_+000005.1}');
-    Error('\P{Is_Present_In=:=	_+000005.1}');
-    Expect(1, 983040, '\p{Is_Present_In=0000000005.1}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0000000005.1}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0000000005.1}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0000000005.1}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0000000005.1}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0000000005.1}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0000000005.1}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0000000005.1}', "");
-    Error('\p{Is_In=/a/V5_1}');
-    Error('\P{Is_In=/a/V5_1}');
+    Expect(1, 983040, '\p{In=_	V5_1}', "");
+    Expect(0, 983040, '\p{^In=_	V5_1}', "");
+    Expect(0, 983040, '\P{In=_	V5_1}', "");
+    Expect(1, 983040, '\P{^In=_	V5_1}', "");
+    Expect(0, 983037, '\p{In=_	V5_1}', "");
+    Expect(1, 983037, '\p{^In=_	V5_1}', "");
+    Expect(1, 983037, '\P{In=_	V5_1}', "");
+    Expect(0, 983037, '\P{^In=_	V5_1}', "");
+    Error('\p{Is_Present_In=-	+0005.1/a/}');
+    Error('\P{Is_Present_In=-	+0005.1/a/}');
+    Expect(1, 983040, '\p{Is_Present_In=0_5.1}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=0_5.1}', "");
+    Expect(0, 983040, '\P{Is_Present_In=0_5.1}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=0_5.1}', "");
+    Expect(0, 983037, '\p{Is_Present_In=0_5.1}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=0_5.1}', "");
+    Expect(1, 983037, '\P{Is_Present_In=0_5.1}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=0_5.1}', "");
+    Error('\p{Is_In= V5_1:=}');
+    Error('\P{Is_In= V5_1:=}');
     Expect(1, 983040, '\p{Is_In=v51}', "");
     Expect(0, 983040, '\p{^Is_In=v51}', "");
     Expect(0, 983040, '\P{Is_In=v51}', "");
@@ -48117,28 +48739,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v51}', "");
     Expect(1, 983037, '\P{Is_In=v51}', "");
     Expect(0, 983037, '\P{^Is_In=v51}', "");
-    Expect(1, 983040, '\p{Is_In=	V5_1}', "");
-    Expect(0, 983040, '\p{^Is_In=	V5_1}', "");
-    Expect(0, 983040, '\P{Is_In=	V5_1}', "");
-    Expect(1, 983040, '\P{^Is_In=	V5_1}', "");
-    Expect(0, 983037, '\p{Is_In=	V5_1}', "");
-    Expect(1, 983037, '\p{^Is_In=	V5_1}', "");
-    Expect(1, 983037, '\P{Is_In=	V5_1}', "");
-    Expect(0, 983037, '\P{^Is_In=	V5_1}', "");
-    Error('\p{Present_In=_:=00_5.2}');
-    Error('\P{Present_In=_:=00_5.2}');
+    Expect(1, 983040, '\p{Is_In=--v5_1}', "");
+    Expect(0, 983040, '\p{^Is_In=--v5_1}', "");
+    Expect(0, 983040, '\P{Is_In=--v5_1}', "");
+    Expect(1, 983040, '\P{^Is_In=--v5_1}', "");
+    Expect(0, 983037, '\p{Is_In=--v5_1}', "");
+    Expect(1, 983037, '\p{^Is_In=--v5_1}', "");
+    Expect(1, 983037, '\P{Is_In=--v5_1}', "");
+    Expect(0, 983037, '\P{^Is_In=--v5_1}', "");
+    Error('\p{Present_In=:=--000_5.2}');
+    Error('\P{Present_In=:=--000_5.2}');
     Expect(1, 983040, '\p{Present_In=:\A5.2\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A5.2\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00000005.2}', "");
-    Expect(0, 983040, '\p{^Present_In=00000005.2}', "");
-    Expect(0, 983040, '\P{Present_In=00000005.2}', "");
-    Expect(1, 983040, '\P{^Present_In=00000005.2}', "");
-    Expect(0, 983037, '\p{Present_In=00000005.2}', "");
-    Expect(1, 983037, '\p{^Present_In=00000005.2}', "");
-    Expect(1, 983037, '\P{Present_In=00000005.2}', "");
-    Expect(0, 983037, '\P{^Present_In=00000005.2}', "");
-    Error('\p{In=-/a/V5_2}');
-    Error('\P{In=-/a/V5_2}');
+    Expect(1, 983040, '\p{Present_In=000000005.2}', "");
+    Expect(0, 983040, '\p{^Present_In=000000005.2}', "");
+    Expect(0, 983040, '\P{Present_In=000000005.2}', "");
+    Expect(1, 983040, '\P{^Present_In=000000005.2}', "");
+    Expect(0, 983037, '\p{Present_In=000000005.2}', "");
+    Expect(1, 983037, '\p{^Present_In=000000005.2}', "");
+    Expect(1, 983037, '\P{Present_In=000000005.2}', "");
+    Expect(0, 983037, '\P{^Present_In=000000005.2}', "");
+    Error('\p{In=/a/--V5_2}');
+    Error('\P{In=/a/--V5_2}');
     Expect(1, 983040, '\p{In=:\AV5_2\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV5_2\z:}', "");;
     Expect(1, 983040, '\p{In=v52}', "");
@@ -48151,26 +48773,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v52}', "");
     Expect(1, 983040, '\p{In=:\Av52\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av52\z:}', "");;
-    Expect(1, 983040, '\p{In=V5_2}', "");
-    Expect(0, 983040, '\p{^In=V5_2}', "");
-    Expect(0, 983040, '\P{In=V5_2}', "");
-    Expect(1, 983040, '\P{^In=V5_2}', "");
-    Expect(0, 983037, '\p{In=V5_2}', "");
-    Expect(1, 983037, '\p{^In=V5_2}', "");
-    Expect(1, 983037, '\P{In=V5_2}', "");
-    Expect(0, 983037, '\P{^In=V5_2}', "");
-    Error('\p{Is_Present_In=	-5.2/a/}');
-    Error('\P{Is_Present_In=	-5.2/a/}');
-    Expect(1, 983040, '\p{Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0_0_0_0_0_0_0005.2}', "");
-    Error('\p{Is_In=/a/_-V5_2}');
-    Error('\P{Is_In=/a/_-V5_2}');
+    Expect(1, 983040, '\p{In=-	v5_2}', "");
+    Expect(0, 983040, '\p{^In=-	v5_2}', "");
+    Expect(0, 983040, '\P{In=-	v5_2}', "");
+    Expect(1, 983040, '\P{^In=-	v5_2}', "");
+    Expect(0, 983037, '\p{In=-	v5_2}', "");
+    Expect(1, 983037, '\p{^In=-	v5_2}', "");
+    Expect(1, 983037, '\P{In=-	v5_2}', "");
+    Expect(0, 983037, '\P{^In=-	v5_2}', "");
+    Error('\p{Is_Present_In=:=--0000005.2}');
+    Error('\P{Is_Present_In=:=--0000005.2}');
+    Expect(1, 983040, '\p{Is_Present_In=000_000_000_5.2}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=000_000_000_5.2}', "");
+    Expect(0, 983040, '\P{Is_Present_In=000_000_000_5.2}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=000_000_000_5.2}', "");
+    Expect(0, 983037, '\p{Is_Present_In=000_000_000_5.2}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=000_000_000_5.2}', "");
+    Expect(1, 983037, '\P{Is_Present_In=000_000_000_5.2}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=000_000_000_5.2}', "");
+    Error('\p{Is_In=-/a/V5_2}');
+    Error('\P{Is_In=-/a/V5_2}');
     Expect(1, 983040, '\p{Is_In=v52}', "");
     Expect(0, 983040, '\p{^Is_In=v52}', "");
     Expect(0, 983040, '\P{Is_In=v52}', "");
@@ -48179,60 +48801,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v52}', "");
     Expect(1, 983037, '\P{Is_In=v52}', "");
     Expect(0, 983037, '\P{^Is_In=v52}', "");
-    Expect(1, 983040, '\p{Is_In= 	v5_2}', "");
-    Expect(0, 983040, '\p{^Is_In= 	v5_2}', "");
-    Expect(0, 983040, '\P{Is_In= 	v5_2}', "");
-    Expect(1, 983040, '\P{^Is_In= 	v5_2}', "");
-    Expect(0, 983037, '\p{Is_In= 	v5_2}', "");
-    Expect(1, 983037, '\p{^Is_In= 	v5_2}', "");
-    Expect(1, 983037, '\P{Is_In= 	v5_2}', "");
-    Expect(0, 983037, '\P{^Is_In= 	v5_2}', "");
-    Error('\p{Present_In=/a/+000_000_6.0}');
-    Error('\P{Present_In=/a/+000_000_6.0}');
+    Expect(1, 983040, '\p{Is_In=__V5_2}', "");
+    Expect(0, 983040, '\p{^Is_In=__V5_2}', "");
+    Expect(0, 983040, '\P{Is_In=__V5_2}', "");
+    Expect(1, 983040, '\P{^Is_In=__V5_2}', "");
+    Expect(0, 983037, '\p{Is_In=__V5_2}', "");
+    Expect(1, 983037, '\p{^Is_In=__V5_2}', "");
+    Expect(1, 983037, '\P{Is_In=__V5_2}', "");
+    Expect(0, 983037, '\P{^Is_In=__V5_2}', "");
+    Error('\p{Present_In=-/a/00000006.0}');
+    Error('\P{Present_In=-/a/00000006.0}');
     Expect(1, 983040, '\p{Present_In=:\A6.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A6.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00000006.0}', "");
-    Expect(0, 983040, '\p{^Present_In=00000006.0}', "");
-    Expect(0, 983040, '\P{Present_In=00000006.0}', "");
-    Expect(1, 983040, '\P{^Present_In=00000006.0}', "");
-    Expect(0, 983037, '\p{Present_In=00000006.0}', "");
-    Expect(1, 983037, '\p{^Present_In=00000006.0}', "");
-    Expect(1, 983037, '\P{Present_In=00000006.0}', "");
-    Expect(0, 983037, '\P{^Present_In=00000006.0}', "");
-    Error('\p{In=/a/_V6_0}');
-    Error('\P{In=/a/_V6_0}');
+    Expect(1, 983040, '\p{Present_In=006.0}', "");
+    Expect(0, 983040, '\p{^Present_In=006.0}', "");
+    Expect(0, 983040, '\P{Present_In=006.0}', "");
+    Expect(1, 983040, '\P{^Present_In=006.0}', "");
+    Expect(0, 983037, '\p{Present_In=006.0}', "");
+    Expect(1, 983037, '\p{^Present_In=006.0}', "");
+    Expect(1, 983037, '\P{Present_In=006.0}', "");
+    Expect(0, 983037, '\P{^Present_In=006.0}', "");
+    Error('\p{In=:=  V6_0}');
+    Error('\P{In=:=  V6_0}');
     Expect(1, 983040, '\p{In=:\AV6_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV6_0\z:}', "");;
-    Expect(1, 983040, '\p{In: v60}', "");
-    Expect(0, 983040, '\p{^In: v60}', "");
-    Expect(0, 983040, '\P{In: v60}', "");
-    Expect(1, 983040, '\P{^In: v60}', "");
-    Expect(0, 983037, '\p{In: v60}', "");
-    Expect(1, 983037, '\p{^In: v60}', "");
-    Expect(1, 983037, '\P{In: v60}', "");
-    Expect(0, 983037, '\P{^In: v60}', "");
+    Expect(1, 983040, '\p{In=v60}', "");
+    Expect(0, 983040, '\p{^In=v60}', "");
+    Expect(0, 983040, '\P{In=v60}', "");
+    Expect(1, 983040, '\P{^In=v60}', "");
+    Expect(0, 983037, '\p{In=v60}', "");
+    Expect(1, 983037, '\p{^In=v60}', "");
+    Expect(1, 983037, '\P{In=v60}', "");
+    Expect(0, 983037, '\P{^In=v60}', "");
     Expect(1, 983040, '\p{In=:\Av60\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av60\z:}', "");;
-    Expect(1, 983040, '\p{In=_-V6_0}', "");
-    Expect(0, 983040, '\p{^In=_-V6_0}', "");
-    Expect(0, 983040, '\P{In=_-V6_0}', "");
-    Expect(1, 983040, '\P{^In=_-V6_0}', "");
-    Expect(0, 983037, '\p{In=_-V6_0}', "");
-    Expect(1, 983037, '\p{^In=_-V6_0}', "");
-    Expect(1, 983037, '\P{In=_-V6_0}', "");
-    Expect(0, 983037, '\P{^In=_-V6_0}', "");
-    Error('\p{Is_Present_In= _6.0:=}');
-    Error('\P{Is_Present_In= _6.0:=}');
-    Expect(1, 983040, '\p{Is_Present_In=0000_6.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0000_6.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0000_6.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0000_6.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0000_6.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0000_6.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0000_6.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0000_6.0}', "");
-    Error('\p{Is_In=_/a/V6_0}');
-    Error('\P{Is_In=_/a/V6_0}');
+    Expect(1, 983040, '\p{In= 	V6_0}', "");
+    Expect(0, 983040, '\p{^In= 	V6_0}', "");
+    Expect(0, 983040, '\P{In= 	V6_0}', "");
+    Expect(1, 983040, '\P{^In= 	V6_0}', "");
+    Expect(0, 983037, '\p{In= 	V6_0}', "");
+    Expect(1, 983037, '\p{^In= 	V6_0}', "");
+    Expect(1, 983037, '\P{In= 	V6_0}', "");
+    Expect(0, 983037, '\P{^In= 	V6_0}', "");
+    Error('\p{Is_Present_In:    :=+0000000006.0}');
+    Error('\P{Is_Present_In:    :=+0000000006.0}');
+    Expect(1, 983040, '\p{Is_Present_In=00006.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=00006.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=00006.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=00006.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=00006.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=00006.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=00006.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=00006.0}', "");
+    Error('\p{Is_In=:= V6_0}');
+    Error('\P{Is_In=:= V6_0}');
     Expect(1, 983040, '\p{Is_In=v60}', "");
     Expect(0, 983040, '\p{^Is_In=v60}', "");
     Expect(0, 983040, '\P{Is_In=v60}', "");
@@ -48241,28 +48863,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v60}', "");
     Expect(1, 983037, '\P{Is_In=v60}', "");
     Expect(0, 983037, '\P{^Is_In=v60}', "");
-    Expect(1, 983040, '\p{Is_In=	 V6_0}', "");
-    Expect(0, 983040, '\p{^Is_In=	 V6_0}', "");
-    Expect(0, 983040, '\P{Is_In=	 V6_0}', "");
-    Expect(1, 983040, '\P{^Is_In=	 V6_0}', "");
-    Expect(0, 983037, '\p{Is_In=	 V6_0}', "");
-    Expect(1, 983037, '\p{^Is_In=	 V6_0}', "");
-    Expect(1, 983037, '\P{Is_In=	 V6_0}', "");
-    Expect(0, 983037, '\P{^Is_In=	 V6_0}', "");
-    Error('\p{Present_In=_6.1/a/}');
-    Error('\P{Present_In=_6.1/a/}');
+    Expect(1, 983040, '\p{Is_In=_	v6_0}', "");
+    Expect(0, 983040, '\p{^Is_In=_	v6_0}', "");
+    Expect(0, 983040, '\P{Is_In=_	v6_0}', "");
+    Expect(1, 983040, '\P{^Is_In=_	v6_0}', "");
+    Expect(0, 983037, '\p{Is_In=_	v6_0}', "");
+    Expect(1, 983037, '\p{^Is_In=_	v6_0}', "");
+    Expect(1, 983037, '\P{Is_In=_	v6_0}', "");
+    Expect(0, 983037, '\P{^Is_In=_	v6_0}', "");
+    Error('\p{Present_In=-0000_0000_6.1:=}');
+    Error('\P{Present_In=-0000_0000_6.1:=}');
     Expect(1, 983040, '\p{Present_In=:\A6.1\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A6.1\z:}', "");;
-    Expect(1, 983040, '\p{Present_In: 000000006.1}', "");
-    Expect(0, 983040, '\p{^Present_In: 000000006.1}', "");
-    Expect(0, 983040, '\P{Present_In: 000000006.1}', "");
-    Expect(1, 983040, '\P{^Present_In: 000000006.1}', "");
-    Expect(0, 983037, '\p{Present_In: 000000006.1}', "");
-    Expect(1, 983037, '\p{^Present_In: 000000006.1}', "");
-    Expect(1, 983037, '\P{Present_In: 000000006.1}', "");
-    Expect(0, 983037, '\P{^Present_In: 000000006.1}', "");
-    Error('\p{In=-/a/V6_1}');
-    Error('\P{In=-/a/V6_1}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_06.1}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_06.1}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_06.1}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_06.1}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_06.1}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_06.1}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_06.1}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_06.1}', "");
+    Error('\p{In= 	V6_1/a/}');
+    Error('\P{In= 	V6_1/a/}');
     Expect(1, 983040, '\p{In=:\AV6_1\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV6_1\z:}', "");;
     Expect(1, 983040, '\p{In=v61}', "");
@@ -48275,56 +48897,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v61}', "");
     Expect(1, 983040, '\p{In=:\Av61\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av61\z:}', "");;
-    Expect(1, 983040, '\p{In= -v6_1}', "");
-    Expect(0, 983040, '\p{^In= -v6_1}', "");
-    Expect(0, 983040, '\P{In= -v6_1}', "");
-    Expect(1, 983040, '\P{^In= -v6_1}', "");
-    Expect(0, 983037, '\p{In= -v6_1}', "");
-    Expect(1, 983037, '\p{^In= -v6_1}', "");
-    Expect(1, 983037, '\P{In= -v6_1}', "");
-    Expect(0, 983037, '\P{^In= -v6_1}', "");
-    Error('\p{Is_Present_In=:=	_00006.1}');
-    Error('\P{Is_Present_In=:=	_00006.1}');
-    Expect(1, 983040, '\p{Is_Present_In=0000000006.1}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0000000006.1}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0000000006.1}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0000000006.1}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0000000006.1}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0000000006.1}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0000000006.1}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0000000006.1}', "");
-    Error('\p{Is_In=	:=V6_1}');
-    Error('\P{Is_In=	:=V6_1}');
-    Expect(1, 983040, '\p{Is_In:v61}', "");
-    Expect(0, 983040, '\p{^Is_In:v61}', "");
-    Expect(0, 983040, '\P{Is_In:v61}', "");
-    Expect(1, 983040, '\P{^Is_In:v61}', "");
-    Expect(0, 983037, '\p{Is_In:v61}', "");
-    Expect(1, 983037, '\p{^Is_In:v61}', "");
-    Expect(1, 983037, '\P{Is_In:v61}', "");
-    Expect(0, 983037, '\P{^Is_In:v61}', "");
-    Expect(1, 983040, '\p{Is_In:    v6_1}', "");
-    Expect(0, 983040, '\p{^Is_In:    v6_1}', "");
-    Expect(0, 983040, '\P{Is_In:    v6_1}', "");
-    Expect(1, 983040, '\P{^Is_In:    v6_1}', "");
-    Expect(0, 983037, '\p{Is_In:    v6_1}', "");
-    Expect(1, 983037, '\p{^Is_In:    v6_1}', "");
-    Expect(1, 983037, '\P{Is_In:    v6_1}', "");
-    Expect(0, 983037, '\P{^Is_In:    v6_1}', "");
-    Error('\p{Present_In=/a/_-00006.2}');
-    Error('\P{Present_In=/a/_-00006.2}');
+    Expect(1, 983040, '\p{In=	V6_1}', "");
+    Expect(0, 983040, '\p{^In=	V6_1}', "");
+    Expect(0, 983040, '\P{In=	V6_1}', "");
+    Expect(1, 983040, '\P{^In=	V6_1}', "");
+    Expect(0, 983037, '\p{In=	V6_1}', "");
+    Expect(1, 983037, '\p{^In=	V6_1}', "");
+    Expect(1, 983037, '\P{In=	V6_1}', "");
+    Expect(0, 983037, '\P{^In=	V6_1}', "");
+    Error('\p{Is_Present_In=- +006.1/a/}');
+    Error('\P{Is_Present_In=- +006.1/a/}');
+    Expect(1, 983040, '\p{Is_Present_In=6.1}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=6.1}', "");
+    Expect(0, 983040, '\P{Is_Present_In=6.1}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=6.1}', "");
+    Expect(0, 983037, '\p{Is_Present_In=6.1}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=6.1}', "");
+    Expect(1, 983037, '\P{Is_Present_In=6.1}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=6.1}', "");
+    Error('\p{Is_In=	/a/V6_1}');
+    Error('\P{Is_In=	/a/V6_1}');
+    Expect(1, 983040, '\p{Is_In=v61}', "");
+    Expect(0, 983040, '\p{^Is_In=v61}', "");
+    Expect(0, 983040, '\P{Is_In=v61}', "");
+    Expect(1, 983040, '\P{^Is_In=v61}', "");
+    Expect(0, 983037, '\p{Is_In=v61}', "");
+    Expect(1, 983037, '\p{^Is_In=v61}', "");
+    Expect(1, 983037, '\P{Is_In=v61}', "");
+    Expect(0, 983037, '\P{^Is_In=v61}', "");
+    Expect(1, 983040, '\p{Is_In=	_V6_1}', "");
+    Expect(0, 983040, '\p{^Is_In=	_V6_1}', "");
+    Expect(0, 983040, '\P{Is_In=	_V6_1}', "");
+    Expect(1, 983040, '\P{^Is_In=	_V6_1}', "");
+    Expect(0, 983037, '\p{Is_In=	_V6_1}', "");
+    Expect(1, 983037, '\p{^Is_In=	_V6_1}', "");
+    Expect(1, 983037, '\P{Is_In=	_V6_1}', "");
+    Expect(0, 983037, '\P{^Is_In=	_V6_1}', "");
+    Error('\p{Present_In:_/a/00_00_6.2}');
+    Error('\P{Present_In:_/a/00_00_6.2}');
     Expect(1, 983040, '\p{Present_In=:\A6.2\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A6.2\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=0_6.2}', "");
-    Expect(0, 983040, '\p{^Present_In=0_6.2}', "");
-    Expect(0, 983040, '\P{Present_In=0_6.2}', "");
-    Expect(1, 983040, '\P{^Present_In=0_6.2}', "");
-    Expect(0, 983037, '\p{Present_In=0_6.2}', "");
-    Expect(1, 983037, '\p{^Present_In=0_6.2}', "");
-    Expect(1, 983037, '\P{Present_In=0_6.2}', "");
-    Expect(0, 983037, '\P{^Present_In=0_6.2}', "");
-    Error('\p{In=	 V6_2/a/}');
-    Error('\P{In=	 V6_2/a/}');
+    Expect(1, 983040, '\p{Present_In=006.2}', "");
+    Expect(0, 983040, '\p{^Present_In=006.2}', "");
+    Expect(0, 983040, '\P{Present_In=006.2}', "");
+    Expect(1, 983040, '\P{^Present_In=006.2}', "");
+    Expect(0, 983037, '\p{Present_In=006.2}', "");
+    Expect(1, 983037, '\p{^Present_In=006.2}', "");
+    Expect(1, 983037, '\P{Present_In=006.2}', "");
+    Expect(0, 983037, '\P{^Present_In=006.2}', "");
+    Error('\p{In=:=	-V6_2}');
+    Error('\P{In=:=	-V6_2}');
     Expect(1, 983040, '\p{In=:\AV6_2\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV6_2\z:}', "");;
     Expect(1, 983040, '\p{In=v62}', "");
@@ -48337,26 +48959,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v62}', "");
     Expect(1, 983040, '\p{In=:\Av62\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av62\z:}', "");;
-    Expect(1, 983040, '\p{In=__V6_2}', "");
-    Expect(0, 983040, '\p{^In=__V6_2}', "");
-    Expect(0, 983040, '\P{In=__V6_2}', "");
-    Expect(1, 983040, '\P{^In=__V6_2}', "");
-    Expect(0, 983037, '\p{In=__V6_2}', "");
-    Expect(1, 983037, '\p{^In=__V6_2}', "");
-    Expect(1, 983037, '\P{In=__V6_2}', "");
-    Expect(0, 983037, '\P{^In=__V6_2}', "");
-    Error('\p{Is_Present_In=/a/_	0000006.2}');
-    Error('\P{Is_Present_In=/a/_	0000006.2}');
-    Expect(1, 983040, '\p{Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0_0_0_0_0_06.2}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0_0_0_0_0_06.2}', "");
-    Error('\p{Is_In=_/a/V6_2}');
-    Error('\P{Is_In=_/a/V6_2}');
+    Expect(1, 983040, '\p{In: 		v6_2}', "");
+    Expect(0, 983040, '\p{^In: 		v6_2}', "");
+    Expect(0, 983040, '\P{In: 		v6_2}', "");
+    Expect(1, 983040, '\P{^In: 		v6_2}', "");
+    Expect(0, 983037, '\p{In: 		v6_2}', "");
+    Expect(1, 983037, '\p{^In: 		v6_2}', "");
+    Expect(1, 983037, '\P{In: 		v6_2}', "");
+    Expect(0, 983037, '\P{^In: 		v6_2}', "");
+    Error('\p{Is_Present_In=_+06.2:=}');
+    Error('\P{Is_Present_In=_+06.2:=}');
+    Expect(1, 983040, '\p{Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(0, 983040, '\p{^Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(0, 983040, '\P{Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(1, 983040, '\P{^Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(0, 983037, '\p{Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(1, 983037, '\p{^Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(1, 983037, '\P{Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Expect(0, 983037, '\P{^Is_Present_In:	0_0_0_0_0_0_0_06.2}', "");
+    Error('\p{Is_In=/a/	_V6_2}');
+    Error('\P{Is_In=/a/	_V6_2}');
     Expect(1, 983040, '\p{Is_In=v62}', "");
     Expect(0, 983040, '\p{^Is_In=v62}', "");
     Expect(0, 983040, '\P{Is_In=v62}', "");
@@ -48365,60 +48987,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v62}', "");
     Expect(1, 983037, '\P{Is_In=v62}', "");
     Expect(0, 983037, '\P{^Is_In=v62}', "");
-    Expect(1, 983040, '\p{Is_In=- v6_2}', "");
-    Expect(0, 983040, '\p{^Is_In=- v6_2}', "");
-    Expect(0, 983040, '\P{Is_In=- v6_2}', "");
-    Expect(1, 983040, '\P{^Is_In=- v6_2}', "");
-    Expect(0, 983037, '\p{Is_In=- v6_2}', "");
-    Expect(1, 983037, '\p{^Is_In=- v6_2}', "");
-    Expect(1, 983037, '\P{Is_In=- v6_2}', "");
-    Expect(0, 983037, '\P{^Is_In=- v6_2}', "");
-    Error('\p{Present_In=	-00006.3/a/}');
-    Error('\P{Present_In=	-00006.3/a/}');
+    Expect(1, 983040, '\p{Is_In= _V6_2}', "");
+    Expect(0, 983040, '\p{^Is_In= _V6_2}', "");
+    Expect(0, 983040, '\P{Is_In= _V6_2}', "");
+    Expect(1, 983040, '\P{^Is_In= _V6_2}', "");
+    Expect(0, 983037, '\p{Is_In= _V6_2}', "");
+    Expect(1, 983037, '\p{^Is_In= _V6_2}', "");
+    Expect(1, 983037, '\P{Is_In= _V6_2}', "");
+    Expect(0, 983037, '\P{^Is_In= _V6_2}', "");
+    Error('\p{Present_In=/a/  +0_0_0_0_0_0_0_06.3}');
+    Error('\P{Present_In=/a/  +0_0_0_0_0_0_0_06.3}');
     Expect(1, 983040, '\p{Present_In=:\A6.3\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A6.3\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=+00_00_00_06.3}', "");
-    Expect(0, 983040, '\p{^Present_In=+00_00_00_06.3}', "");
-    Expect(0, 983040, '\P{Present_In=+00_00_00_06.3}', "");
-    Expect(1, 983040, '\P{^Present_In=+00_00_00_06.3}', "");
-    Expect(0, 983037, '\p{Present_In=+00_00_00_06.3}', "");
-    Expect(1, 983037, '\p{^Present_In=+00_00_00_06.3}', "");
-    Expect(1, 983037, '\P{Present_In=+00_00_00_06.3}', "");
-    Expect(0, 983037, '\P{^Present_In=+00_00_00_06.3}', "");
-    Error('\p{In=	 V6_3/a/}');
-    Error('\P{In=	 V6_3/a/}');
+    Expect(1, 983040, '\p{Present_In=+06.3}', "");
+    Expect(0, 983040, '\p{^Present_In=+06.3}', "");
+    Expect(0, 983040, '\P{Present_In=+06.3}', "");
+    Expect(1, 983040, '\P{^Present_In=+06.3}', "");
+    Expect(0, 983037, '\p{Present_In=+06.3}', "");
+    Expect(1, 983037, '\p{^Present_In=+06.3}', "");
+    Expect(1, 983037, '\P{Present_In=+06.3}', "");
+    Expect(0, 983037, '\P{^Present_In=+06.3}', "");
+    Error('\p{In= -V6_3:=}');
+    Error('\P{In= -V6_3:=}');
     Expect(1, 983040, '\p{In=:\AV6_3\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV6_3\z:}', "");;
-    Expect(1, 983040, '\p{In:   v63}', "");
-    Expect(0, 983040, '\p{^In:   v63}', "");
-    Expect(0, 983040, '\P{In:   v63}', "");
-    Expect(1, 983040, '\P{^In:   v63}', "");
-    Expect(0, 983037, '\p{In:   v63}', "");
-    Expect(1, 983037, '\p{^In:   v63}', "");
-    Expect(1, 983037, '\P{In:   v63}', "");
-    Expect(0, 983037, '\P{^In:   v63}', "");
+    Expect(1, 983040, '\p{In=v63}', "");
+    Expect(0, 983040, '\p{^In=v63}', "");
+    Expect(0, 983040, '\P{In=v63}', "");
+    Expect(1, 983040, '\P{^In=v63}', "");
+    Expect(0, 983037, '\p{In=v63}', "");
+    Expect(1, 983037, '\p{^In=v63}', "");
+    Expect(1, 983037, '\P{In=v63}', "");
+    Expect(0, 983037, '\P{^In=v63}', "");
     Expect(1, 983040, '\p{In=:\Av63\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av63\z:}', "");;
-    Expect(1, 983040, '\p{In=		V6_3}', "");
-    Expect(0, 983040, '\p{^In=		V6_3}', "");
-    Expect(0, 983040, '\P{In=		V6_3}', "");
-    Expect(1, 983040, '\P{^In=		V6_3}', "");
-    Expect(0, 983037, '\p{In=		V6_3}', "");
-    Expect(1, 983037, '\p{^In=		V6_3}', "");
-    Expect(1, 983037, '\P{In=		V6_3}', "");
-    Expect(0, 983037, '\P{^In=		V6_3}', "");
-    Error('\p{Is_Present_In=-_00_00_00_06.3/a/}');
-    Error('\P{Is_Present_In=-_00_00_00_06.3/a/}');
-    Expect(1, 983040, '\p{Is_Present_In=+0_6.3}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=+0_6.3}', "");
-    Expect(0, 983040, '\P{Is_Present_In=+0_6.3}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=+0_6.3}', "");
-    Expect(0, 983037, '\p{Is_Present_In=+0_6.3}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=+0_6.3}', "");
-    Expect(1, 983037, '\P{Is_Present_In=+0_6.3}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=+0_6.3}', "");
-    Error('\p{Is_In=:=_V6_3}');
-    Error('\P{Is_In=:=_V6_3}');
+    Expect(1, 983040, '\p{In=_ V6_3}', "");
+    Expect(0, 983040, '\p{^In=_ V6_3}', "");
+    Expect(0, 983040, '\P{In=_ V6_3}', "");
+    Expect(1, 983040, '\P{^In=_ V6_3}', "");
+    Expect(0, 983037, '\p{In=_ V6_3}', "");
+    Expect(1, 983037, '\p{^In=_ V6_3}', "");
+    Expect(1, 983037, '\P{In=_ V6_3}', "");
+    Expect(0, 983037, '\P{^In=_ V6_3}', "");
+    Error('\p{Is_Present_In:	/a/  0000006.3}');
+    Error('\P{Is_Present_In:	/a/  0000006.3}');
+    Expect(1, 983040, '\p{Is_Present_In=0_0_06.3}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=0_0_06.3}', "");
+    Expect(0, 983040, '\P{Is_Present_In=0_0_06.3}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=0_0_06.3}', "");
+    Expect(0, 983037, '\p{Is_Present_In=0_0_06.3}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=0_0_06.3}', "");
+    Expect(1, 983037, '\P{Is_Present_In=0_0_06.3}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=0_0_06.3}', "");
+    Error('\p{Is_In=:=- V6_3}');
+    Error('\P{Is_In=:=- V6_3}');
     Expect(1, 983040, '\p{Is_In=v63}', "");
     Expect(0, 983040, '\p{^Is_In=v63}', "");
     Expect(0, 983040, '\P{Is_In=v63}', "");
@@ -48427,28 +49049,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v63}', "");
     Expect(1, 983037, '\P{Is_In=v63}', "");
     Expect(0, 983037, '\P{^Is_In=v63}', "");
-    Expect(1, 983040, '\p{Is_In=_v6_3}', "");
-    Expect(0, 983040, '\p{^Is_In=_v6_3}', "");
-    Expect(0, 983040, '\P{Is_In=_v6_3}', "");
-    Expect(1, 983040, '\P{^Is_In=_v6_3}', "");
-    Expect(0, 983037, '\p{Is_In=_v6_3}', "");
-    Expect(1, 983037, '\p{^Is_In=_v6_3}', "");
-    Expect(1, 983037, '\P{Is_In=_v6_3}', "");
-    Expect(0, 983037, '\P{^Is_In=_v6_3}', "");
-    Error('\p{Present_In= -+07.0/a/}');
-    Error('\P{Present_In= -+07.0/a/}');
+    Expect(1, 983040, '\p{Is_In=--V6_3}', "");
+    Expect(0, 983040, '\p{^Is_In=--V6_3}', "");
+    Expect(0, 983040, '\P{Is_In=--V6_3}', "");
+    Expect(1, 983040, '\P{^Is_In=--V6_3}', "");
+    Expect(0, 983037, '\p{Is_In=--V6_3}', "");
+    Expect(1, 983037, '\p{^Is_In=--V6_3}', "");
+    Expect(1, 983037, '\P{Is_In=--V6_3}', "");
+    Expect(0, 983037, '\P{^Is_In=--V6_3}', "");
+    Error('\p{Present_In=-:=000007.0}');
+    Error('\P{Present_In=-:=000007.0}');
     Expect(1, 983040, '\p{Present_In=:\A7.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A7.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=00_7.0}', "");
-    Expect(0, 983040, '\p{^Present_In=00_7.0}', "");
-    Expect(0, 983040, '\P{Present_In=00_7.0}', "");
-    Expect(1, 983040, '\P{^Present_In=00_7.0}', "");
-    Expect(0, 983037, '\p{Present_In=00_7.0}', "");
-    Expect(1, 983037, '\p{^Present_In=00_7.0}', "");
-    Expect(1, 983037, '\P{Present_In=00_7.0}', "");
-    Expect(0, 983037, '\P{^Present_In=00_7.0}', "");
-    Error('\p{In=	-V7_0:=}');
-    Error('\P{In=	-V7_0:=}');
+    Expect(1, 983040, '\p{Present_In=00_00_00_7.0}', "");
+    Expect(0, 983040, '\p{^Present_In=00_00_00_7.0}', "");
+    Expect(0, 983040, '\P{Present_In=00_00_00_7.0}', "");
+    Expect(1, 983040, '\P{^Present_In=00_00_00_7.0}', "");
+    Expect(0, 983037, '\p{Present_In=00_00_00_7.0}', "");
+    Expect(1, 983037, '\p{^Present_In=00_00_00_7.0}', "");
+    Expect(1, 983037, '\P{Present_In=00_00_00_7.0}', "");
+    Expect(0, 983037, '\P{^Present_In=00_00_00_7.0}', "");
+    Error('\p{In=:=v7_0}');
+    Error('\P{In=:=v7_0}');
     Expect(1, 983040, '\p{In=:\AV7_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV7_0\z:}', "");;
     Expect(1, 983040, '\p{In=v70}', "");
@@ -48461,56 +49083,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v70}', "");
     Expect(1, 983040, '\p{In=:\Av70\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av70\z:}', "");;
-    Expect(1, 983040, '\p{In=__V7_0}', "");
-    Expect(0, 983040, '\p{^In=__V7_0}', "");
-    Expect(0, 983040, '\P{In=__V7_0}', "");
-    Expect(1, 983040, '\P{^In=__V7_0}', "");
-    Expect(0, 983037, '\p{In=__V7_0}', "");
-    Expect(1, 983037, '\p{^In=__V7_0}', "");
-    Expect(1, 983037, '\P{In=__V7_0}', "");
-    Expect(0, 983037, '\P{^In=__V7_0}', "");
-    Error('\p{Is_Present_In=/a/-_+0_0_0_0_0007.0}');
-    Error('\P{Is_Present_In=/a/-_+0_0_0_0_0007.0}');
-    Expect(1, 983040, '\p{Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=0_0_0_0_007.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=0_0_0_0_007.0}', "");
-    Error('\p{Is_In= /a/V7_0}');
-    Error('\P{Is_In= /a/V7_0}');
-    Expect(1, 983040, '\p{Is_In=v70}', "");
-    Expect(0, 983040, '\p{^Is_In=v70}', "");
-    Expect(0, 983040, '\P{Is_In=v70}', "");
-    Expect(1, 983040, '\P{^Is_In=v70}', "");
-    Expect(0, 983037, '\p{Is_In=v70}', "");
-    Expect(1, 983037, '\p{^Is_In=v70}', "");
-    Expect(1, 983037, '\P{Is_In=v70}', "");
-    Expect(0, 983037, '\P{^Is_In=v70}', "");
-    Expect(1, 983040, '\p{Is_In:-	V7_0}', "");
-    Expect(0, 983040, '\p{^Is_In:-	V7_0}', "");
-    Expect(0, 983040, '\P{Is_In:-	V7_0}', "");
-    Expect(1, 983040, '\P{^Is_In:-	V7_0}', "");
-    Expect(0, 983037, '\p{Is_In:-	V7_0}', "");
-    Expect(1, 983037, '\p{^Is_In:-	V7_0}', "");
-    Expect(1, 983037, '\P{Is_In:-	V7_0}', "");
-    Expect(0, 983037, '\P{^Is_In:-	V7_0}', "");
-    Error('\p{Present_In:   :=000000008.0}');
-    Error('\P{Present_In:   :=000000008.0}');
+    Expect(1, 983040, '\p{In= 	V7_0}', "");
+    Expect(0, 983040, '\p{^In= 	V7_0}', "");
+    Expect(0, 983040, '\P{In= 	V7_0}', "");
+    Expect(1, 983040, '\P{^In= 	V7_0}', "");
+    Expect(0, 983037, '\p{In= 	V7_0}', "");
+    Expect(1, 983037, '\p{^In= 	V7_0}', "");
+    Expect(1, 983037, '\P{In= 	V7_0}', "");
+    Expect(0, 983037, '\P{^In= 	V7_0}', "");
+    Error('\p{Is_Present_In=	0_0_0_07.0:=}');
+    Error('\P{Is_Present_In=	0_0_0_07.0:=}');
+    Expect(1, 983040, '\p{Is_Present_In=000000000_7.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=000000000_7.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=000000000_7.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=000000000_7.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=000000000_7.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=000000000_7.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=000000000_7.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=000000000_7.0}', "");
+    Error('\p{Is_In=-_V7_0/a/}');
+    Error('\P{Is_In=-_V7_0/a/}');
+    Expect(1, 983040, '\p{Is_In:	v70}', "");
+    Expect(0, 983040, '\p{^Is_In:	v70}', "");
+    Expect(0, 983040, '\P{Is_In:	v70}', "");
+    Expect(1, 983040, '\P{^Is_In:	v70}', "");
+    Expect(0, 983037, '\p{Is_In:	v70}', "");
+    Expect(1, 983037, '\p{^Is_In:	v70}', "");
+    Expect(1, 983037, '\P{Is_In:	v70}', "");
+    Expect(0, 983037, '\P{^Is_In:	v70}', "");
+    Expect(1, 983040, '\p{Is_In=	-V7_0}', "");
+    Expect(0, 983040, '\p{^Is_In=	-V7_0}', "");
+    Expect(0, 983040, '\P{Is_In=	-V7_0}', "");
+    Expect(1, 983040, '\P{^Is_In=	-V7_0}', "");
+    Expect(0, 983037, '\p{Is_In=	-V7_0}', "");
+    Expect(1, 983037, '\p{^Is_In=	-V7_0}', "");
+    Expect(1, 983037, '\P{Is_In=	-V7_0}', "");
+    Expect(0, 983037, '\P{^Is_In=	-V7_0}', "");
+    Error('\p{Present_In=-+0_0_08.0/a/}');
+    Error('\P{Present_In=-+0_0_08.0/a/}');
     Expect(1, 983040, '\p{Present_In=:\A8.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A8.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=0000000008.0}', "");
-    Expect(0, 983040, '\p{^Present_In=0000000008.0}', "");
-    Expect(0, 983040, '\P{Present_In=0000000008.0}', "");
-    Expect(1, 983040, '\P{^Present_In=0000000008.0}', "");
-    Expect(0, 983037, '\p{Present_In=0000000008.0}', "");
-    Expect(1, 983037, '\p{^Present_In=0000000008.0}', "");
-    Expect(1, 983037, '\P{Present_In=0000000008.0}', "");
-    Expect(0, 983037, '\P{^Present_In=0000000008.0}', "");
-    Error('\p{In:   -/a/V8_0}');
-    Error('\P{In:   -/a/V8_0}');
+    Expect(1, 983040, '\p{Present_In=0_0_0_0_0_08.0}', "");
+    Expect(0, 983040, '\p{^Present_In=0_0_0_0_0_08.0}', "");
+    Expect(0, 983040, '\P{Present_In=0_0_0_0_0_08.0}', "");
+    Expect(1, 983040, '\P{^Present_In=0_0_0_0_0_08.0}', "");
+    Expect(0, 983037, '\p{Present_In=0_0_0_0_0_08.0}', "");
+    Expect(1, 983037, '\p{^Present_In=0_0_0_0_0_08.0}', "");
+    Expect(1, 983037, '\P{Present_In=0_0_0_0_0_08.0}', "");
+    Expect(0, 983037, '\P{^Present_In=0_0_0_0_0_08.0}', "");
+    Error('\p{In=_/a/V8_0}');
+    Error('\P{In=_/a/V8_0}');
     Expect(1, 983040, '\p{In=:\AV8_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV8_0\z:}', "");;
     Expect(1, 983040, '\p{In=v80}', "");
@@ -48523,26 +49145,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v80}', "");
     Expect(1, 983040, '\p{In=:\Av80\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av80\z:}', "");;
-    Expect(1, 983040, '\p{In=_ v8_0}', "");
-    Expect(0, 983040, '\p{^In=_ v8_0}', "");
-    Expect(0, 983040, '\P{In=_ v8_0}', "");
-    Expect(1, 983040, '\P{^In=_ v8_0}', "");
-    Expect(0, 983037, '\p{In=_ v8_0}', "");
-    Expect(1, 983037, '\p{^In=_ v8_0}', "");
-    Expect(1, 983037, '\P{In=_ v8_0}', "");
-    Expect(0, 983037, '\P{^In=_ v8_0}', "");
-    Error('\p{Is_Present_In=_0008.0:=}');
-    Error('\P{Is_Present_In=_0008.0:=}');
-    Expect(1, 983040, '\p{Is_Present_In=000008.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=000008.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=000008.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=000008.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=000008.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=000008.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=000008.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=000008.0}', "");
-    Error('\p{Is_In= V8_0/a/}');
-    Error('\P{Is_In= V8_0/a/}');
+    Expect(1, 983040, '\p{In=-V8_0}', "");
+    Expect(0, 983040, '\p{^In=-V8_0}', "");
+    Expect(0, 983040, '\P{In=-V8_0}', "");
+    Expect(1, 983040, '\P{^In=-V8_0}', "");
+    Expect(0, 983037, '\p{In=-V8_0}', "");
+    Expect(1, 983037, '\p{^In=-V8_0}', "");
+    Expect(1, 983037, '\P{In=-V8_0}', "");
+    Expect(0, 983037, '\P{^In=-V8_0}', "");
+    Error('\p{Is_Present_In=-00008.0/a/}');
+    Error('\P{Is_Present_In=-00008.0/a/}');
+    Expect(1, 983040, '\p{Is_Present_In=000_8.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=000_8.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=000_8.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=000_8.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=000_8.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=000_8.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=000_8.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=000_8.0}', "");
+    Error('\p{Is_In=-V8_0/a/}');
+    Error('\P{Is_In=-V8_0/a/}');
     Expect(1, 983040, '\p{Is_In=v80}', "");
     Expect(0, 983040, '\p{^Is_In=v80}', "");
     Expect(0, 983040, '\P{Is_In=v80}', "");
@@ -48551,28 +49173,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v80}', "");
     Expect(1, 983037, '\P{Is_In=v80}', "");
     Expect(0, 983037, '\P{^Is_In=v80}', "");
-    Expect(1, 983040, '\p{Is_In=_V8_0}', "");
-    Expect(0, 983040, '\p{^Is_In=_V8_0}', "");
-    Expect(0, 983040, '\P{Is_In=_V8_0}', "");
-    Expect(1, 983040, '\P{^Is_In=_V8_0}', "");
-    Expect(0, 983037, '\p{Is_In=_V8_0}', "");
-    Expect(1, 983037, '\p{^Is_In=_V8_0}', "");
-    Expect(1, 983037, '\P{Is_In=_V8_0}', "");
-    Expect(0, 983037, '\P{^Is_In=_V8_0}', "");
-    Error('\p{Present_In=:=--000009.0}');
-    Error('\P{Present_In=:=--000009.0}');
+    Expect(1, 983040, '\p{Is_In=-_V8_0}', "");
+    Expect(0, 983040, '\p{^Is_In=-_V8_0}', "");
+    Expect(0, 983040, '\P{Is_In=-_V8_0}', "");
+    Expect(1, 983040, '\P{^Is_In=-_V8_0}', "");
+    Expect(0, 983037, '\p{Is_In=-_V8_0}', "");
+    Expect(1, 983037, '\p{^Is_In=-_V8_0}', "");
+    Expect(1, 983037, '\P{Is_In=-_V8_0}', "");
+    Expect(0, 983037, '\P{^Is_In=-_V8_0}', "");
+    Error('\p{Present_In= -09.0/a/}');
+    Error('\P{Present_In= -09.0/a/}');
     Expect(1, 983040, '\p{Present_In=:\A9.0\z:}', "");;
     Expect(0, 983037, '\p{Present_In=:\A9.0\z:}', "");;
-    Expect(1, 983040, '\p{Present_In=+0_0_0_0_009.0}', "");
-    Expect(0, 983040, '\p{^Present_In=+0_0_0_0_009.0}', "");
-    Expect(0, 983040, '\P{Present_In=+0_0_0_0_009.0}', "");
-    Expect(1, 983040, '\P{^Present_In=+0_0_0_0_009.0}', "");
-    Expect(0, 983037, '\p{Present_In=+0_0_0_0_009.0}', "");
-    Expect(1, 983037, '\p{^Present_In=+0_0_0_0_009.0}', "");
-    Expect(1, 983037, '\P{Present_In=+0_0_0_0_009.0}', "");
-    Expect(0, 983037, '\P{^Present_In=+0_0_0_0_009.0}', "");
-    Error('\p{In= :=v9_0}');
-    Error('\P{In= :=v9_0}');
+    Expect(1, 983040, '\p{Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(0, 983040, '\p{^Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(0, 983040, '\P{Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(1, 983040, '\P{^Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(0, 983037, '\p{Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(1, 983037, '\p{^Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(1, 983037, '\P{Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Expect(0, 983037, '\P{^Present_In=+0_0_0_0_0_0_0_0_09.0}', "");
+    Error('\p{In=:=V9_0}');
+    Error('\P{In=:=V9_0}');
     Expect(1, 983040, '\p{In=:\AV9_0\z:}', "");;
     Expect(0, 983037, '\p{In=:\AV9_0\z:}', "");;
     Expect(1, 983040, '\p{In=v90}', "");
@@ -48585,26 +49207,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983037, '\P{^In=v90}', "");
     Expect(1, 983040, '\p{In=:\Av90\z:}', "");;
     Expect(0, 983037, '\p{In=:\Av90\z:}', "");;
-    Expect(1, 983040, '\p{In: _ v9_0}', "");
-    Expect(0, 983040, '\p{^In: _ v9_0}', "");
-    Expect(0, 983040, '\P{In: _ v9_0}', "");
-    Expect(1, 983040, '\P{^In: _ v9_0}', "");
-    Expect(0, 983037, '\p{In: _ v9_0}', "");
-    Expect(1, 983037, '\p{^In: _ v9_0}', "");
-    Expect(1, 983037, '\P{In: _ v9_0}', "");
-    Expect(0, 983037, '\P{^In: _ v9_0}', "");
-    Error('\p{Is_Present_In=/a/-_0009.0}');
-    Error('\P{Is_Present_In=/a/-_0009.0}');
-    Expect(1, 983040, '\p{Is_Present_In=000000009.0}', "");
-    Expect(0, 983040, '\p{^Is_Present_In=000000009.0}', "");
-    Expect(0, 983040, '\P{Is_Present_In=000000009.0}', "");
-    Expect(1, 983040, '\P{^Is_Present_In=000000009.0}', "");
-    Expect(0, 983037, '\p{Is_Present_In=000000009.0}', "");
-    Expect(1, 983037, '\p{^Is_Present_In=000000009.0}', "");
-    Expect(1, 983037, '\P{Is_Present_In=000000009.0}', "");
-    Expect(0, 983037, '\P{^Is_Present_In=000000009.0}', "");
-    Error('\p{Is_In=/a/V9_0}');
-    Error('\P{Is_In=/a/V9_0}');
+    Expect(1, 983040, '\p{In= V9_0}', "");
+    Expect(0, 983040, '\p{^In= V9_0}', "");
+    Expect(0, 983040, '\P{In= V9_0}', "");
+    Expect(1, 983040, '\P{^In= V9_0}', "");
+    Expect(0, 983037, '\p{In= V9_0}', "");
+    Expect(1, 983037, '\p{^In= V9_0}', "");
+    Expect(1, 983037, '\P{In= V9_0}', "");
+    Expect(0, 983037, '\P{^In= V9_0}', "");
+    Error('\p{Is_Present_In:-:=9.0}');
+    Error('\P{Is_Present_In:-:=9.0}');
+    Expect(1, 983040, '\p{Is_Present_In=000009.0}', "");
+    Expect(0, 983040, '\p{^Is_Present_In=000009.0}', "");
+    Expect(0, 983040, '\P{Is_Present_In=000009.0}', "");
+    Expect(1, 983040, '\P{^Is_Present_In=000009.0}', "");
+    Expect(0, 983037, '\p{Is_Present_In=000009.0}', "");
+    Expect(1, 983037, '\p{^Is_Present_In=000009.0}', "");
+    Expect(1, 983037, '\P{Is_Present_In=000009.0}', "");
+    Expect(0, 983037, '\P{^Is_Present_In=000009.0}', "");
+    Error('\p{Is_In=	:=V9_0}');
+    Error('\P{Is_In=	:=V9_0}');
     Expect(1, 983040, '\p{Is_In=v90}', "");
     Expect(0, 983040, '\p{^Is_In=v90}', "");
     Expect(0, 983040, '\P{Is_In=v90}', "");
@@ -48613,38 +49235,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983037, '\p{^Is_In=v90}', "");
     Expect(1, 983037, '\P{Is_In=v90}', "");
     Expect(0, 983037, '\P{^Is_In=v90}', "");
-    Expect(1, 983040, '\p{Is_In=_	V9_0}', "");
-    Expect(0, 983040, '\p{^Is_In=_	V9_0}', "");
-    Expect(0, 983040, '\P{Is_In=_	V9_0}', "");
-    Expect(1, 983040, '\P{^Is_In=_	V9_0}', "");
-    Expect(0, 983037, '\p{Is_In=_	V9_0}', "");
-    Expect(1, 983037, '\p{^Is_In=_	V9_0}', "");
-    Expect(1, 983037, '\P{Is_In=_	V9_0}', "");
-    Expect(0, 983037, '\P{^Is_In=_	V9_0}', "");
-    Error('\p{Present_In=-:=UNASSIGNED}');
-    Error('\P{Present_In=-:=UNASSIGNED}');
+    Expect(1, 983040, '\p{Is_In=	_V9_0}', "");
+    Expect(0, 983040, '\p{^Is_In=	_V9_0}', "");
+    Expect(0, 983040, '\P{Is_In=	_V9_0}', "");
+    Expect(1, 983040, '\P{^Is_In=	_V9_0}', "");
+    Expect(0, 983037, '\p{Is_In=	_V9_0}', "");
+    Expect(1, 983037, '\p{^Is_In=	_V9_0}', "");
+    Expect(1, 983037, '\P{Is_In=	_V9_0}', "");
+    Expect(0, 983037, '\P{^Is_In=	_V9_0}', "");
+    Error('\p{Present_In=	UNASSIGNED:=}');
+    Error('\P{Present_In=	UNASSIGNED:=}');
     Expect(1, 983037, '\p{Present_In=:\AUnassigned\z:}', "");;
     Expect(0, 983040, '\p{Present_In=:\AUnassigned\z:}', "");;
-    Expect(1, 983037, '\p{Present_In=unassigned}', "");
-    Expect(0, 983037, '\p{^Present_In=unassigned}', "");
-    Expect(0, 983037, '\P{Present_In=unassigned}', "");
-    Expect(1, 983037, '\P{^Present_In=unassigned}', "");
-    Expect(0, 983040, '\p{Present_In=unassigned}', "");
-    Expect(1, 983040, '\p{^Present_In=unassigned}', "");
-    Expect(1, 983040, '\P{Present_In=unassigned}', "");
-    Expect(0, 983040, '\P{^Present_In=unassigned}', "");
+    Expect(1, 983037, '\p{Present_In: unassigned}', "");
+    Expect(0, 983037, '\p{^Present_In: unassigned}', "");
+    Expect(0, 983037, '\P{Present_In: unassigned}', "");
+    Expect(1, 983037, '\P{^Present_In: unassigned}', "");
+    Expect(0, 983040, '\p{Present_In: unassigned}', "");
+    Expect(1, 983040, '\p{^Present_In: unassigned}', "");
+    Expect(1, 983040, '\P{Present_In: unassigned}', "");
+    Expect(0, 983040, '\P{^Present_In: unassigned}', "");
     Expect(1, 983037, '\p{Present_In=:\Aunassigned\z:}', "");;
     Expect(0, 983040, '\p{Present_In=:\Aunassigned\z:}', "");;
-    Expect(1, 983037, '\p{Present_In=--Unassigned}', "");
-    Expect(0, 983037, '\p{^Present_In=--Unassigned}', "");
-    Expect(0, 983037, '\P{Present_In=--Unassigned}', "");
-    Expect(1, 983037, '\P{^Present_In=--Unassigned}', "");
-    Expect(0, 983040, '\p{Present_In=--Unassigned}', "");
-    Expect(1, 983040, '\p{^Present_In=--Unassigned}', "");
-    Expect(1, 983040, '\P{Present_In=--Unassigned}', "");
-    Expect(0, 983040, '\P{^Present_In=--Unassigned}', "");
-    Error('\p{In=/a/- NA}');
-    Error('\P{In=/a/- NA}');
+    Expect(1, 983037, '\p{Present_In=--unassigned}', "");
+    Expect(0, 983037, '\p{^Present_In=--unassigned}', "");
+    Expect(0, 983037, '\P{Present_In=--unassigned}', "");
+    Expect(1, 983037, '\P{^Present_In=--unassigned}', "");
+    Expect(0, 983040, '\p{Present_In=--unassigned}', "");
+    Expect(1, 983040, '\p{^Present_In=--unassigned}', "");
+    Expect(1, 983040, '\P{Present_In=--unassigned}', "");
+    Expect(0, 983040, '\P{^Present_In=--unassigned}', "");
+    Error('\p{In=:= 	NA}');
+    Error('\P{In=:= 	NA}');
     Expect(1, 983037, '\p{In=:\ANA\z:}', "");;
     Expect(0, 983040, '\p{In=:\ANA\z:}', "");;
     Expect(1, 983037, '\p{In=na}', "");
@@ -48657,34 +49279,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 983040, '\P{^In=na}', "");
     Expect(1, 983037, '\p{In=:\Ana\z:}', "");;
     Expect(0, 983040, '\p{In=:\Ana\z:}', "");;
-    Expect(1, 983037, '\p{In:__NA}', "");
-    Expect(0, 983037, '\p{^In:__NA}', "");
-    Expect(0, 983037, '\P{In:__NA}', "");
-    Expect(1, 983037, '\P{^In:__NA}', "");
-    Expect(0, 983040, '\p{In:__NA}', "");
-    Expect(1, 983040, '\p{^In:__NA}', "");
-    Expect(1, 983040, '\P{In:__NA}', "");
-    Expect(0, 983040, '\P{^In:__NA}', "");
-    Error('\p{Is_Present_In=/a/UNASSIGNED}');
-    Error('\P{Is_Present_In=/a/UNASSIGNED}');
-    Expect(1, 983037, '\p{Is_Present_In=unassigned}', "");
-    Expect(0, 983037, '\p{^Is_Present_In=unassigned}', "");
-    Expect(0, 983037, '\P{Is_Present_In=unassigned}', "");
-    Expect(1, 983037, '\P{^Is_Present_In=unassigned}', "");
-    Expect(0, 983040, '\p{Is_Present_In=unassigned}', "");
-    Expect(1, 983040, '\p{^Is_Present_In=unassigned}', "");
-    Expect(1, 983040, '\P{Is_Present_In=unassigned}', "");
-    Expect(0, 983040, '\P{^Is_Present_In=unassigned}', "");
-    Expect(1, 983037, '\p{Is_Present_In:   --unassigned}', "");
-    Expect(0, 983037, '\p{^Is_Present_In:   --unassigned}', "");
-    Expect(0, 983037, '\P{Is_Present_In:   --unassigned}', "");
-    Expect(1, 983037, '\P{^Is_Present_In:   --unassigned}', "");
-    Expect(0, 983040, '\p{Is_Present_In:   --unassigned}', "");
-    Expect(1, 983040, '\p{^Is_Present_In:   --unassigned}', "");
-    Expect(1, 983040, '\P{Is_Present_In:   --unassigned}', "");
-    Expect(0, 983040, '\P{^Is_Present_In:   --unassigned}', "");
-    Error('\p{Is_In=-na/a/}');
-    Error('\P{Is_In=-na/a/}');
+    Expect(1, 983037, '\p{In=__na}', "");
+    Expect(0, 983037, '\p{^In=__na}', "");
+    Expect(0, 983037, '\P{In=__na}', "");
+    Expect(1, 983037, '\P{^In=__na}', "");
+    Expect(0, 983040, '\p{In=__na}', "");
+    Expect(1, 983040, '\p{^In=__na}', "");
+    Expect(1, 983040, '\P{In=__na}', "");
+    Expect(0, 983040, '\P{^In=__na}', "");
+    Error('\p{Is_Present_In:	_/a/Unassigned}');
+    Error('\P{Is_Present_In:	_/a/Unassigned}');
+    Expect(1, 983037, '\p{Is_Present_In:   unassigned}', "");
+    Expect(0, 983037, '\p{^Is_Present_In:   unassigned}', "");
+    Expect(0, 983037, '\P{Is_Present_In:   unassigned}', "");
+    Expect(1, 983037, '\P{^Is_Present_In:   unassigned}', "");
+    Expect(0, 983040, '\p{Is_Present_In:   unassigned}', "");
+    Expect(1, 983040, '\p{^Is_Present_In:   unassigned}', "");
+    Expect(1, 983040, '\P{Is_Present_In:   unassigned}', "");
+    Expect(0, 983040, '\P{^Is_Present_In:   unassigned}', "");
+    Expect(1, 983037, '\p{Is_Present_In=- UNASSIGNED}', "");
+    Expect(0, 983037, '\p{^Is_Present_In=- UNASSIGNED}', "");
+    Expect(0, 983037, '\P{Is_Present_In=- UNASSIGNED}', "");
+    Expect(1, 983037, '\P{^Is_Present_In=- UNASSIGNED}', "");
+    Expect(0, 983040, '\p{Is_Present_In=- UNASSIGNED}', "");
+    Expect(1, 983040, '\p{^Is_Present_In=- UNASSIGNED}', "");
+    Expect(1, 983040, '\P{Is_Present_In=- UNASSIGNED}', "");
+    Expect(0, 983040, '\P{^Is_Present_In=- UNASSIGNED}', "");
+    Error('\p{Is_In=_/a/NA}');
+    Error('\P{Is_In=_/a/NA}');
     Expect(1, 983037, '\p{Is_In=na}', "");
     Expect(0, 983037, '\p{^Is_In=na}', "");
     Expect(0, 983037, '\P{Is_In=na}', "");
@@ -48693,100 +49315,100 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 983040, '\p{^Is_In=na}', "");
     Expect(1, 983040, '\P{Is_In=na}', "");
     Expect(0, 983040, '\P{^Is_In=na}', "");
-    Expect(1, 983037, '\p{Is_In=__NA}', "");
-    Expect(0, 983037, '\p{^Is_In=__NA}', "");
-    Expect(0, 983037, '\P{Is_In=__NA}', "");
-    Expect(1, 983037, '\P{^Is_In=__NA}', "");
-    Expect(0, 983040, '\p{Is_In=__NA}', "");
-    Expect(1, 983040, '\p{^Is_In=__NA}', "");
-    Expect(1, 983040, '\P{Is_In=__NA}', "");
-    Expect(0, 983040, '\P{^Is_In=__NA}', "");
+    Expect(1, 983037, '\p{Is_In= na}', "");
+    Expect(0, 983037, '\p{^Is_In= na}', "");
+    Expect(0, 983037, '\P{Is_In= na}', "");
+    Expect(1, 983037, '\P{^Is_In= na}', "");
+    Expect(0, 983040, '\p{Is_In= na}', "");
+    Expect(1, 983040, '\p{^Is_In= na}', "");
+    Expect(1, 983040, '\P{Is_In= na}', "");
+    Expect(0, 983040, '\P{^Is_In= na}', "");
     Error('\p{indicpositionalcategory}');
     Error('\P{indicpositionalcategory}');
     Error('\p{inpc}');
     Error('\P{inpc}');
-    Error('\p{Indic_Positional_Category=/a/		Bottom}');
-    Error('\P{Indic_Positional_Category=/a/		Bottom}');
-    Expect(1, 73460, '\p{Indic_Positional_Category=:\ABottom\z:}', "");;
-    Expect(0, 73461, '\p{Indic_Positional_Category=:\ABottom\z:}', "");;
-    Expect(1, 73460, '\p{Indic_Positional_Category=bottom}', "");
-    Expect(0, 73460, '\p{^Indic_Positional_Category=bottom}', "");
-    Expect(0, 73460, '\P{Indic_Positional_Category=bottom}', "");
-    Expect(1, 73460, '\P{^Indic_Positional_Category=bottom}', "");
-    Expect(0, 73461, '\p{Indic_Positional_Category=bottom}', "");
-    Expect(1, 73461, '\p{^Indic_Positional_Category=bottom}', "");
-    Expect(1, 73461, '\P{Indic_Positional_Category=bottom}', "");
-    Expect(0, 73461, '\P{^Indic_Positional_Category=bottom}', "");
-    Expect(1, 73460, '\p{Indic_Positional_Category=:\Abottom\z:}', "");;
-    Expect(0, 73461, '\p{Indic_Positional_Category=:\Abottom\z:}', "");;
-    Expect(1, 73460, '\p{Indic_Positional_Category=		bottom}', "");
-    Expect(0, 73460, '\p{^Indic_Positional_Category=		bottom}', "");
-    Expect(0, 73460, '\P{Indic_Positional_Category=		bottom}', "");
-    Expect(1, 73460, '\P{^Indic_Positional_Category=		bottom}', "");
-    Expect(0, 73461, '\p{Indic_Positional_Category=		bottom}', "");
-    Expect(1, 73461, '\p{^Indic_Positional_Category=		bottom}', "");
-    Expect(1, 73461, '\P{Indic_Positional_Category=		bottom}', "");
-    Expect(0, 73461, '\P{^Indic_Positional_Category=		bottom}', "");
-    Error('\p{InPC=	BOTTOM/a/}');
-    Error('\P{InPC=	BOTTOM/a/}');
-    Expect(1, 73460, '\p{InPC=:\ABottom\z:}', "");;
-    Expect(0, 73461, '\p{InPC=:\ABottom\z:}', "");;
-    Expect(1, 73460, '\p{InPC=bottom}', "");
-    Expect(0, 73460, '\p{^InPC=bottom}', "");
-    Expect(0, 73460, '\P{InPC=bottom}', "");
-    Expect(1, 73460, '\P{^InPC=bottom}', "");
-    Expect(0, 73461, '\p{InPC=bottom}', "");
-    Expect(1, 73461, '\p{^InPC=bottom}', "");
-    Expect(1, 73461, '\P{InPC=bottom}', "");
-    Expect(0, 73461, '\P{^InPC=bottom}', "");
-    Expect(1, 73460, '\p{InPC=:\Abottom\z:}', "");;
-    Expect(0, 73461, '\p{InPC=:\Abottom\z:}', "");;
-    Expect(1, 73460, '\p{InPC=  Bottom}', "");
-    Expect(0, 73460, '\p{^InPC=  Bottom}', "");
-    Expect(0, 73460, '\P{InPC=  Bottom}', "");
-    Expect(1, 73460, '\P{^InPC=  Bottom}', "");
-    Expect(0, 73461, '\p{InPC=  Bottom}', "");
-    Expect(1, 73461, '\p{^InPC=  Bottom}', "");
-    Expect(1, 73461, '\P{InPC=  Bottom}', "");
-    Expect(0, 73461, '\P{^InPC=  Bottom}', "");
-    Error('\p{Is_Indic_Positional_Category=	 Bottom/a/}');
-    Error('\P{Is_Indic_Positional_Category=	 Bottom/a/}');
-    Expect(1, 73460, '\p{Is_Indic_Positional_Category=bottom}', "");
-    Expect(0, 73460, '\p{^Is_Indic_Positional_Category=bottom}', "");
-    Expect(0, 73460, '\P{Is_Indic_Positional_Category=bottom}', "");
-    Expect(1, 73460, '\P{^Is_Indic_Positional_Category=bottom}', "");
-    Expect(0, 73461, '\p{Is_Indic_Positional_Category=bottom}', "");
-    Expect(1, 73461, '\p{^Is_Indic_Positional_Category=bottom}', "");
-    Expect(1, 73461, '\P{Is_Indic_Positional_Category=bottom}', "");
-    Expect(0, 73461, '\P{^Is_Indic_Positional_Category=bottom}', "");
-    Expect(1, 73460, '\p{Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(0, 73460, '\p{^Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(0, 73460, '\P{Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(1, 73460, '\P{^Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(0, 73461, '\p{Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(1, 73461, '\p{^Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(1, 73461, '\P{Is_Indic_Positional_Category=- Bottom}', "");
-    Expect(0, 73461, '\P{^Is_Indic_Positional_Category=- Bottom}', "");
-    Error('\p{Is_InPC=:=	_bottom}');
-    Error('\P{Is_InPC=:=	_bottom}');
-    Expect(1, 73460, '\p{Is_InPC=bottom}', "");
-    Expect(0, 73460, '\p{^Is_InPC=bottom}', "");
-    Expect(0, 73460, '\P{Is_InPC=bottom}', "");
-    Expect(1, 73460, '\P{^Is_InPC=bottom}', "");
-    Expect(0, 73461, '\p{Is_InPC=bottom}', "");
-    Expect(1, 73461, '\p{^Is_InPC=bottom}', "");
-    Expect(1, 73461, '\P{Is_InPC=bottom}', "");
-    Expect(0, 73461, '\P{^Is_InPC=bottom}', "");
-    Expect(1, 73460, '\p{Is_InPC=  Bottom}', "");
-    Expect(0, 73460, '\p{^Is_InPC=  Bottom}', "");
-    Expect(0, 73460, '\P{Is_InPC=  Bottom}', "");
-    Expect(1, 73460, '\P{^Is_InPC=  Bottom}', "");
-    Expect(0, 73461, '\p{Is_InPC=  Bottom}', "");
-    Expect(1, 73461, '\p{^Is_InPC=  Bottom}', "");
-    Expect(1, 73461, '\P{Is_InPC=  Bottom}', "");
-    Expect(0, 73461, '\P{^Is_InPC=  Bottom}', "");
-    Error('\p{Indic_Positional_Category:    :=Bottom_AND_left}');
-    Error('\P{Indic_Positional_Category:    :=Bottom_AND_left}');
+    Error('\p{Indic_Positional_Category=/a/ -bottom}');
+    Error('\P{Indic_Positional_Category=/a/ -bottom}');
+    Expect(1, 73530, '\p{Indic_Positional_Category=:\ABottom\z:}', "");;
+    Expect(0, 73531, '\p{Indic_Positional_Category=:\ABottom\z:}', "");;
+    Expect(1, 73530, '\p{Indic_Positional_Category=bottom}', "");
+    Expect(0, 73530, '\p{^Indic_Positional_Category=bottom}', "");
+    Expect(0, 73530, '\P{Indic_Positional_Category=bottom}', "");
+    Expect(1, 73530, '\P{^Indic_Positional_Category=bottom}', "");
+    Expect(0, 73531, '\p{Indic_Positional_Category=bottom}', "");
+    Expect(1, 73531, '\p{^Indic_Positional_Category=bottom}', "");
+    Expect(1, 73531, '\P{Indic_Positional_Category=bottom}', "");
+    Expect(0, 73531, '\P{^Indic_Positional_Category=bottom}', "");
+    Expect(1, 73530, '\p{Indic_Positional_Category=:\Abottom\z:}', "");;
+    Expect(0, 73531, '\p{Indic_Positional_Category=:\Abottom\z:}', "");;
+    Expect(1, 73530, '\p{Indic_Positional_Category=_-Bottom}', "");
+    Expect(0, 73530, '\p{^Indic_Positional_Category=_-Bottom}', "");
+    Expect(0, 73530, '\P{Indic_Positional_Category=_-Bottom}', "");
+    Expect(1, 73530, '\P{^Indic_Positional_Category=_-Bottom}', "");
+    Expect(0, 73531, '\p{Indic_Positional_Category=_-Bottom}', "");
+    Expect(1, 73531, '\p{^Indic_Positional_Category=_-Bottom}', "");
+    Expect(1, 73531, '\P{Indic_Positional_Category=_-Bottom}', "");
+    Expect(0, 73531, '\P{^Indic_Positional_Category=_-Bottom}', "");
+    Error('\p{InPC=-	Bottom:=}');
+    Error('\P{InPC=-	Bottom:=}');
+    Expect(1, 73530, '\p{InPC=:\ABottom\z:}', "");;
+    Expect(0, 73531, '\p{InPC=:\ABottom\z:}', "");;
+    Expect(1, 73530, '\p{InPC=bottom}', "");
+    Expect(0, 73530, '\p{^InPC=bottom}', "");
+    Expect(0, 73530, '\P{InPC=bottom}', "");
+    Expect(1, 73530, '\P{^InPC=bottom}', "");
+    Expect(0, 73531, '\p{InPC=bottom}', "");
+    Expect(1, 73531, '\p{^InPC=bottom}', "");
+    Expect(1, 73531, '\P{InPC=bottom}', "");
+    Expect(0, 73531, '\P{^InPC=bottom}', "");
+    Expect(1, 73530, '\p{InPC=:\Abottom\z:}', "");;
+    Expect(0, 73531, '\p{InPC=:\Abottom\z:}', "");;
+    Expect(1, 73530, '\p{InPC=-	Bottom}', "");
+    Expect(0, 73530, '\p{^InPC=-	Bottom}', "");
+    Expect(0, 73530, '\P{InPC=-	Bottom}', "");
+    Expect(1, 73530, '\P{^InPC=-	Bottom}', "");
+    Expect(0, 73531, '\p{InPC=-	Bottom}', "");
+    Expect(1, 73531, '\p{^InPC=-	Bottom}', "");
+    Expect(1, 73531, '\P{InPC=-	Bottom}', "");
+    Expect(0, 73531, '\P{^InPC=-	Bottom}', "");
+    Error('\p{Is_Indic_Positional_Category=_ bottom:=}');
+    Error('\P{Is_Indic_Positional_Category=_ bottom:=}');
+    Expect(1, 73530, '\p{Is_Indic_Positional_Category=bottom}', "");
+    Expect(0, 73530, '\p{^Is_Indic_Positional_Category=bottom}', "");
+    Expect(0, 73530, '\P{Is_Indic_Positional_Category=bottom}', "");
+    Expect(1, 73530, '\P{^Is_Indic_Positional_Category=bottom}', "");
+    Expect(0, 73531, '\p{Is_Indic_Positional_Category=bottom}', "");
+    Expect(1, 73531, '\p{^Is_Indic_Positional_Category=bottom}', "");
+    Expect(1, 73531, '\P{Is_Indic_Positional_Category=bottom}', "");
+    Expect(0, 73531, '\P{^Is_Indic_Positional_Category=bottom}', "");
+    Expect(1, 73530, '\p{Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(0, 73530, '\p{^Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(0, 73530, '\P{Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(1, 73530, '\P{^Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(0, 73531, '\p{Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(1, 73531, '\p{^Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(1, 73531, '\P{Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Expect(0, 73531, '\P{^Is_Indic_Positional_Category=-	BOTTOM}', "");
+    Error('\p{Is_InPC=-BOTTOM:=}');
+    Error('\P{Is_InPC=-BOTTOM:=}');
+    Expect(1, 73530, '\p{Is_InPC=bottom}', "");
+    Expect(0, 73530, '\p{^Is_InPC=bottom}', "");
+    Expect(0, 73530, '\P{Is_InPC=bottom}', "");
+    Expect(1, 73530, '\P{^Is_InPC=bottom}', "");
+    Expect(0, 73531, '\p{Is_InPC=bottom}', "");
+    Expect(1, 73531, '\p{^Is_InPC=bottom}', "");
+    Expect(1, 73531, '\P{Is_InPC=bottom}', "");
+    Expect(0, 73531, '\P{^Is_InPC=bottom}', "");
+    Expect(1, 73530, '\p{Is_InPC=_ bottom}', "");
+    Expect(0, 73530, '\p{^Is_InPC=_ bottom}', "");
+    Expect(0, 73530, '\P{Is_InPC=_ bottom}', "");
+    Expect(1, 73530, '\P{^Is_InPC=_ bottom}', "");
+    Expect(0, 73531, '\p{Is_InPC=_ bottom}', "");
+    Expect(1, 73531, '\p{^Is_InPC=_ bottom}', "");
+    Expect(1, 73531, '\P{Is_InPC=_ bottom}', "");
+    Expect(0, 73531, '\P{^Is_InPC=_ bottom}', "");
+    Error('\p{Indic_Positional_Category=:=_	Bottom_AND_Left}');
+    Error('\P{Indic_Positional_Category=:=_	Bottom_AND_Left}');
     Expect(1, 43455, '\p{Indic_Positional_Category=:\ABottom_And_Left\z:}', "");;
     Expect(0, 43456, '\p{Indic_Positional_Category=:\ABottom_And_Left\z:}', "");;
     Expect(1, 43455, '\p{Indic_Positional_Category=bottomandleft}', "");
@@ -48799,38 +49421,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43456, '\P{^Indic_Positional_Category=bottomandleft}', "");
     Expect(1, 43455, '\p{Indic_Positional_Category=:\Abottomandleft\z:}', "");;
     Expect(0, 43456, '\p{Indic_Positional_Category=:\Abottomandleft\z:}', "");;
-    Expect(1, 43455, '\p{Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(0, 43455, '\p{^Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(0, 43455, '\P{Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(1, 43455, '\P{^Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(0, 43456, '\p{Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(1, 43456, '\p{^Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(1, 43456, '\P{Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Expect(0, 43456, '\P{^Indic_Positional_Category=	 Bottom_And_Left}', "");
-    Error('\p{InPC=-:=BOTTOM_And_LEFT}');
-    Error('\P{InPC=-:=BOTTOM_And_LEFT}');
+    Expect(1, 43455, '\p{Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(0, 43455, '\p{^Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(0, 43455, '\P{Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(1, 43455, '\P{^Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(0, 43456, '\p{Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(1, 43456, '\p{^Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(1, 43456, '\P{Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Expect(0, 43456, '\P{^Indic_Positional_Category=_	Bottom_And_Left}', "");
+    Error('\p{InPC=- BOTTOM_AND_LEFT:=}');
+    Error('\P{InPC=- BOTTOM_AND_LEFT:=}');
     Expect(1, 43455, '\p{InPC=:\ABottom_And_Left\z:}', "");;
     Expect(0, 43456, '\p{InPC=:\ABottom_And_Left\z:}', "");;
-    Expect(1, 43455, '\p{InPC:bottomandleft}', "");
-    Expect(0, 43455, '\p{^InPC:bottomandleft}', "");
-    Expect(0, 43455, '\P{InPC:bottomandleft}', "");
-    Expect(1, 43455, '\P{^InPC:bottomandleft}', "");
-    Expect(0, 43456, '\p{InPC:bottomandleft}', "");
-    Expect(1, 43456, '\p{^InPC:bottomandleft}', "");
-    Expect(1, 43456, '\P{InPC:bottomandleft}', "");
-    Expect(0, 43456, '\P{^InPC:bottomandleft}', "");
+    Expect(1, 43455, '\p{InPC=bottomandleft}', "");
+    Expect(0, 43455, '\p{^InPC=bottomandleft}', "");
+    Expect(0, 43455, '\P{InPC=bottomandleft}', "");
+    Expect(1, 43455, '\P{^InPC=bottomandleft}', "");
+    Expect(0, 43456, '\p{InPC=bottomandleft}', "");
+    Expect(1, 43456, '\p{^InPC=bottomandleft}', "");
+    Expect(1, 43456, '\P{InPC=bottomandleft}', "");
+    Expect(0, 43456, '\P{^InPC=bottomandleft}', "");
     Expect(1, 43455, '\p{InPC=:\Abottomandleft\z:}', "");;
     Expect(0, 43456, '\p{InPC=:\Abottomandleft\z:}', "");;
-    Expect(1, 43455, '\p{InPC=_ Bottom_And_Left}', "");
-    Expect(0, 43455, '\p{^InPC=_ Bottom_And_Left}', "");
-    Expect(0, 43455, '\P{InPC=_ Bottom_And_Left}', "");
-    Expect(1, 43455, '\P{^InPC=_ Bottom_And_Left}', "");
-    Expect(0, 43456, '\p{InPC=_ Bottom_And_Left}', "");
-    Expect(1, 43456, '\p{^InPC=_ Bottom_And_Left}', "");
-    Expect(1, 43456, '\P{InPC=_ Bottom_And_Left}', "");
-    Expect(0, 43456, '\P{^InPC=_ Bottom_And_Left}', "");
-    Error('\p{Is_Indic_Positional_Category=:=		Bottom_AND_left}');
-    Error('\P{Is_Indic_Positional_Category=:=		Bottom_AND_left}');
+    Expect(1, 43455, '\p{InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(0, 43455, '\p{^InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(0, 43455, '\P{InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(1, 43455, '\P{^InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(0, 43456, '\p{InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(1, 43456, '\p{^InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(1, 43456, '\P{InPC:	_-Bottom_AND_LEFT}', "");
+    Expect(0, 43456, '\P{^InPC:	_-Bottom_AND_LEFT}', "");
+    Error('\p{Is_Indic_Positional_Category=/a/_bottom_and_Left}');
+    Error('\P{Is_Indic_Positional_Category=/a/_bottom_and_Left}');
     Expect(1, 43455, '\p{Is_Indic_Positional_Category=bottomandleft}', "");
     Expect(0, 43455, '\p{^Is_Indic_Positional_Category=bottomandleft}', "");
     Expect(0, 43455, '\P{Is_Indic_Positional_Category=bottomandleft}', "");
@@ -48839,34 +49461,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43456, '\p{^Is_Indic_Positional_Category=bottomandleft}', "");
     Expect(1, 43456, '\P{Is_Indic_Positional_Category=bottomandleft}', "");
     Expect(0, 43456, '\P{^Is_Indic_Positional_Category=bottomandleft}', "");
-    Expect(1, 43455, '\p{Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(0, 43455, '\p{^Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(0, 43455, '\P{Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(1, 43455, '\P{^Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(0, 43456, '\p{Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(1, 43456, '\p{^Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(1, 43456, '\P{Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Expect(0, 43456, '\P{^Is_Indic_Positional_Category=	 bottom_And_LEFT}', "");
-    Error('\p{Is_InPC=/a/	Bottom_And_Left}');
-    Error('\P{Is_InPC=/a/	Bottom_And_Left}');
-    Expect(1, 43455, '\p{Is_InPC=bottomandleft}', "");
-    Expect(0, 43455, '\p{^Is_InPC=bottomandleft}', "");
-    Expect(0, 43455, '\P{Is_InPC=bottomandleft}', "");
-    Expect(1, 43455, '\P{^Is_InPC=bottomandleft}', "");
-    Expect(0, 43456, '\p{Is_InPC=bottomandleft}', "");
-    Expect(1, 43456, '\p{^Is_InPC=bottomandleft}', "");
-    Expect(1, 43456, '\P{Is_InPC=bottomandleft}', "");
-    Expect(0, 43456, '\P{^Is_InPC=bottomandleft}', "");
-    Expect(1, 43455, '\p{Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(0, 43455, '\p{^Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(0, 43455, '\P{Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(1, 43455, '\P{^Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(0, 43456, '\p{Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(1, 43456, '\p{^Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(1, 43456, '\P{Is_InPC=_-Bottom_And_LEFT}', "");
-    Expect(0, 43456, '\P{^Is_InPC=_-Bottom_And_LEFT}', "");
-    Error('\p{Indic_Positional_Category=	Bottom_And_RIGHT:=}');
-    Error('\P{Indic_Positional_Category=	Bottom_And_RIGHT:=}');
+    Expect(1, 43455, '\p{Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(0, 43455, '\p{^Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(0, 43455, '\P{Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(1, 43455, '\P{^Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(0, 43456, '\p{Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(1, 43456, '\p{^Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(1, 43456, '\P{Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Expect(0, 43456, '\P{^Is_Indic_Positional_Category=-_bottom_and_left}', "");
+    Error('\p{Is_InPC=:=_-Bottom_and_Left}');
+    Error('\P{Is_InPC=:=_-Bottom_and_Left}');
+    Expect(1, 43455, '\p{Is_InPC:	bottomandleft}', "");
+    Expect(0, 43455, '\p{^Is_InPC:	bottomandleft}', "");
+    Expect(0, 43455, '\P{Is_InPC:	bottomandleft}', "");
+    Expect(1, 43455, '\P{^Is_InPC:	bottomandleft}', "");
+    Expect(0, 43456, '\p{Is_InPC:	bottomandleft}', "");
+    Expect(1, 43456, '\p{^Is_InPC:	bottomandleft}', "");
+    Expect(1, 43456, '\P{Is_InPC:	bottomandleft}', "");
+    Expect(0, 43456, '\P{^Is_InPC:	bottomandleft}', "");
+    Expect(1, 43455, '\p{Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(0, 43455, '\p{^Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(0, 43455, '\P{Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(1, 43455, '\P{^Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(0, 43456, '\p{Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(1, 43456, '\p{^Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(1, 43456, '\P{Is_InPC=- BOTTOM_And_Left}', "");
+    Expect(0, 43456, '\P{^Is_InPC=- BOTTOM_And_Left}', "");
+    Error('\p{Indic_Positional_Category=	 BOTTOM_and_Right:=}');
+    Error('\P{Indic_Positional_Category=	 BOTTOM_and_Right:=}');
     Expect(1, 72002, '\p{Indic_Positional_Category=:\ABottom_And_Right\z:}', "");;
     Expect(0, 72003, '\p{Indic_Positional_Category=:\ABottom_And_Right\z:}', "");;
     Expect(1, 72002, '\p{Indic_Positional_Category=bottomandright}', "");
@@ -48879,38 +49501,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72003, '\P{^Indic_Positional_Category=bottomandright}', "");
     Expect(1, 72002, '\p{Indic_Positional_Category=:\Abottomandright\z:}', "");;
     Expect(0, 72003, '\p{Indic_Positional_Category=:\Abottomandright\z:}', "");;
-    Expect(1, 72002, '\p{Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(0, 72002, '\p{^Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(0, 72002, '\P{Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(1, 72002, '\P{^Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(0, 72003, '\p{Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(1, 72003, '\p{^Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(1, 72003, '\P{Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Expect(0, 72003, '\P{^Indic_Positional_Category:   	Bottom_And_Right}', "");
-    Error('\p{InPC:   -/a/Bottom_And_Right}');
-    Error('\P{InPC:   -/a/Bottom_And_Right}');
+    Expect(1, 72002, '\p{Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(0, 72002, '\p{^Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(0, 72002, '\P{Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(1, 72002, '\P{^Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(0, 72003, '\p{Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(1, 72003, '\p{^Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(1, 72003, '\P{Indic_Positional_Category=  Bottom_And_Right}', "");
+    Expect(0, 72003, '\P{^Indic_Positional_Category=  Bottom_And_Right}', "");
+    Error('\p{InPC= 	bottom_AND_right/a/}');
+    Error('\P{InPC= 	bottom_AND_right/a/}');
     Expect(1, 72002, '\p{InPC=:\ABottom_And_Right\z:}', "");;
     Expect(0, 72003, '\p{InPC=:\ABottom_And_Right\z:}', "");;
-    Expect(1, 72002, '\p{InPC: bottomandright}', "");
-    Expect(0, 72002, '\p{^InPC: bottomandright}', "");
-    Expect(0, 72002, '\P{InPC: bottomandright}', "");
-    Expect(1, 72002, '\P{^InPC: bottomandright}', "");
-    Expect(0, 72003, '\p{InPC: bottomandright}', "");
-    Expect(1, 72003, '\p{^InPC: bottomandright}', "");
-    Expect(1, 72003, '\P{InPC: bottomandright}', "");
-    Expect(0, 72003, '\P{^InPC: bottomandright}', "");
+    Expect(1, 72002, '\p{InPC=bottomandright}', "");
+    Expect(0, 72002, '\p{^InPC=bottomandright}', "");
+    Expect(0, 72002, '\P{InPC=bottomandright}', "");
+    Expect(1, 72002, '\P{^InPC=bottomandright}', "");
+    Expect(0, 72003, '\p{InPC=bottomandright}', "");
+    Expect(1, 72003, '\p{^InPC=bottomandright}', "");
+    Expect(1, 72003, '\P{InPC=bottomandright}', "");
+    Expect(0, 72003, '\P{^InPC=bottomandright}', "");
     Expect(1, 72002, '\p{InPC=:\Abottomandright\z:}', "");;
     Expect(0, 72003, '\p{InPC=:\Abottomandright\z:}', "");;
-    Expect(1, 72002, '\p{InPC= BOTTOM_and_RIGHT}', "");
-    Expect(0, 72002, '\p{^InPC= BOTTOM_and_RIGHT}', "");
-    Expect(0, 72002, '\P{InPC= BOTTOM_and_RIGHT}', "");
-    Expect(1, 72002, '\P{^InPC= BOTTOM_and_RIGHT}', "");
-    Expect(0, 72003, '\p{InPC= BOTTOM_and_RIGHT}', "");
-    Expect(1, 72003, '\p{^InPC= BOTTOM_and_RIGHT}', "");
-    Expect(1, 72003, '\P{InPC= BOTTOM_and_RIGHT}', "");
-    Expect(0, 72003, '\P{^InPC= BOTTOM_and_RIGHT}', "");
-    Error('\p{Is_Indic_Positional_Category=	-Bottom_and_right/a/}');
-    Error('\P{Is_Indic_Positional_Category=	-Bottom_and_right/a/}');
+    Expect(1, 72002, '\p{InPC= _Bottom_AND_Right}', "");
+    Expect(0, 72002, '\p{^InPC= _Bottom_AND_Right}', "");
+    Expect(0, 72002, '\P{InPC= _Bottom_AND_Right}', "");
+    Expect(1, 72002, '\P{^InPC= _Bottom_AND_Right}', "");
+    Expect(0, 72003, '\p{InPC= _Bottom_AND_Right}', "");
+    Expect(1, 72003, '\p{^InPC= _Bottom_AND_Right}', "");
+    Expect(1, 72003, '\P{InPC= _Bottom_AND_Right}', "");
+    Expect(0, 72003, '\P{^InPC= _Bottom_AND_Right}', "");
+    Error('\p{Is_Indic_Positional_Category:-_Bottom_And_RIGHT:=}');
+    Error('\P{Is_Indic_Positional_Category:-_Bottom_And_RIGHT:=}');
     Expect(1, 72002, '\p{Is_Indic_Positional_Category=bottomandright}', "");
     Expect(0, 72002, '\p{^Is_Indic_Positional_Category=bottomandright}', "");
     Expect(0, 72002, '\P{Is_Indic_Positional_Category=bottomandright}', "");
@@ -48919,16 +49541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72003, '\p{^Is_Indic_Positional_Category=bottomandright}', "");
     Expect(1, 72003, '\P{Is_Indic_Positional_Category=bottomandright}', "");
     Expect(0, 72003, '\P{^Is_Indic_Positional_Category=bottomandright}', "");
-    Expect(1, 72002, '\p{Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(0, 72002, '\p{^Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(0, 72002, '\P{Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(1, 72002, '\P{^Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(0, 72003, '\p{Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(1, 72003, '\p{^Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(1, 72003, '\P{Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Expect(0, 72003, '\P{^Is_Indic_Positional_Category=	-BOTTOM_And_Right}', "");
-    Error('\p{Is_InPC=:=	_BOTTOM_And_Right}');
-    Error('\P{Is_InPC=:=	_BOTTOM_And_Right}');
+    Expect(1, 72002, '\p{Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(0, 72002, '\p{^Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(0, 72002, '\P{Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(1, 72002, '\P{^Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(0, 72003, '\p{Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(1, 72003, '\p{^Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(1, 72003, '\P{Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Expect(0, 72003, '\P{^Is_Indic_Positional_Category:	-bottom_AND_Right}', "");
+    Error('\p{Is_InPC=	_Bottom_And_Right/a/}');
+    Error('\P{Is_InPC=	_Bottom_And_Right/a/}');
     Expect(1, 72002, '\p{Is_InPC=bottomandright}', "");
     Expect(0, 72002, '\p{^Is_InPC=bottomandright}', "");
     Expect(0, 72002, '\P{Is_InPC=bottomandright}', "");
@@ -48937,96 +49559,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72003, '\p{^Is_InPC=bottomandright}', "");
     Expect(1, 72003, '\P{Is_InPC=bottomandright}', "");
     Expect(0, 72003, '\P{^Is_InPC=bottomandright}', "");
-    Expect(1, 72002, '\p{Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(0, 72002, '\p{^Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(0, 72002, '\P{Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(1, 72002, '\P{^Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(0, 72003, '\p{Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(1, 72003, '\p{^Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(1, 72003, '\P{Is_InPC= BOTTOM_AND_Right}', "");
-    Expect(0, 72003, '\P{^Is_InPC= BOTTOM_AND_Right}', "");
-    Error('\p{Indic_Positional_Category=:=	-LEFT}');
-    Error('\P{Indic_Positional_Category=:=	-LEFT}');
-    Expect(1, 73461, '\p{Indic_Positional_Category=:\ALeft\z:}', "");;
-    Expect(0, 73462, '\p{Indic_Positional_Category=:\ALeft\z:}', "");;
-    Expect(1, 73461, '\p{Indic_Positional_Category=left}', "");
-    Expect(0, 73461, '\p{^Indic_Positional_Category=left}', "");
-    Expect(0, 73461, '\P{Indic_Positional_Category=left}', "");
-    Expect(1, 73461, '\P{^Indic_Positional_Category=left}', "");
-    Expect(0, 73462, '\p{Indic_Positional_Category=left}', "");
-    Expect(1, 73462, '\p{^Indic_Positional_Category=left}', "");
-    Expect(1, 73462, '\P{Indic_Positional_Category=left}', "");
-    Expect(0, 73462, '\P{^Indic_Positional_Category=left}', "");
-    Expect(1, 73461, '\p{Indic_Positional_Category=:\Aleft\z:}', "");;
-    Expect(0, 73462, '\p{Indic_Positional_Category=:\Aleft\z:}', "");;
-    Expect(1, 73461, '\p{Indic_Positional_Category=	left}', "");
-    Expect(0, 73461, '\p{^Indic_Positional_Category=	left}', "");
-    Expect(0, 73461, '\P{Indic_Positional_Category=	left}', "");
-    Expect(1, 73461, '\P{^Indic_Positional_Category=	left}', "");
-    Expect(0, 73462, '\p{Indic_Positional_Category=	left}', "");
-    Expect(1, 73462, '\p{^Indic_Positional_Category=	left}', "");
-    Expect(1, 73462, '\P{Indic_Positional_Category=	left}', "");
-    Expect(0, 73462, '\P{^Indic_Positional_Category=	left}', "");
-    Error('\p{InPC=/a/Left}');
-    Error('\P{InPC=/a/Left}');
-    Expect(1, 73461, '\p{InPC=:\ALeft\z:}', "");;
-    Expect(0, 73462, '\p{InPC=:\ALeft\z:}', "");;
-    Expect(1, 73461, '\p{InPC=left}', "");
-    Expect(0, 73461, '\p{^InPC=left}', "");
-    Expect(0, 73461, '\P{InPC=left}', "");
-    Expect(1, 73461, '\P{^InPC=left}', "");
-    Expect(0, 73462, '\p{InPC=left}', "");
-    Expect(1, 73462, '\p{^InPC=left}', "");
-    Expect(1, 73462, '\P{InPC=left}', "");
-    Expect(0, 73462, '\P{^InPC=left}', "");
-    Expect(1, 73461, '\p{InPC=:\Aleft\z:}', "");;
-    Expect(0, 73462, '\p{InPC=:\Aleft\z:}', "");;
-    Expect(1, 73461, '\p{InPC=	_left}', "");
-    Expect(0, 73461, '\p{^InPC=	_left}', "");
-    Expect(0, 73461, '\P{InPC=	_left}', "");
-    Expect(1, 73461, '\P{^InPC=	_left}', "");
-    Expect(0, 73462, '\p{InPC=	_left}', "");
-    Expect(1, 73462, '\p{^InPC=	_left}', "");
-    Expect(1, 73462, '\P{InPC=	_left}', "");
-    Expect(0, 73462, '\P{^InPC=	_left}', "");
-    Error('\p{Is_Indic_Positional_Category= _Left:=}');
-    Error('\P{Is_Indic_Positional_Category= _Left:=}');
-    Expect(1, 73461, '\p{Is_Indic_Positional_Category:	left}', "");
-    Expect(0, 73461, '\p{^Is_Indic_Positional_Category:	left}', "");
-    Expect(0, 73461, '\P{Is_Indic_Positional_Category:	left}', "");
-    Expect(1, 73461, '\P{^Is_Indic_Positional_Category:	left}', "");
-    Expect(0, 73462, '\p{Is_Indic_Positional_Category:	left}', "");
-    Expect(1, 73462, '\p{^Is_Indic_Positional_Category:	left}', "");
-    Expect(1, 73462, '\P{Is_Indic_Positional_Category:	left}', "");
-    Expect(0, 73462, '\P{^Is_Indic_Positional_Category:	left}', "");
-    Expect(1, 73461, '\p{Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(0, 73461, '\p{^Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(0, 73461, '\P{Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(1, 73461, '\P{^Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(0, 73462, '\p{Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(1, 73462, '\p{^Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(1, 73462, '\P{Is_Indic_Positional_Category=-LEFT}', "");
-    Expect(0, 73462, '\P{^Is_Indic_Positional_Category=-LEFT}', "");
-    Error('\p{Is_InPC=  LEFT/a/}');
-    Error('\P{Is_InPC=  LEFT/a/}');
-    Expect(1, 73461, '\p{Is_InPC=left}', "");
-    Expect(0, 73461, '\p{^Is_InPC=left}', "");
-    Expect(0, 73461, '\P{Is_InPC=left}', "");
-    Expect(1, 73461, '\P{^Is_InPC=left}', "");
-    Expect(0, 73462, '\p{Is_InPC=left}', "");
-    Expect(1, 73462, '\p{^Is_InPC=left}', "");
-    Expect(1, 73462, '\P{Is_InPC=left}', "");
-    Expect(0, 73462, '\P{^Is_InPC=left}', "");
-    Expect(1, 73461, '\p{Is_InPC= Left}', "");
-    Expect(0, 73461, '\p{^Is_InPC= Left}', "");
-    Expect(0, 73461, '\P{Is_InPC= Left}', "");
-    Expect(1, 73461, '\P{^Is_InPC= Left}', "");
-    Expect(0, 73462, '\p{Is_InPC= Left}', "");
-    Expect(1, 73462, '\p{^Is_InPC= Left}', "");
-    Expect(1, 73462, '\P{Is_InPC= Left}', "");
-    Expect(0, 73462, '\P{^Is_InPC= Left}', "");
-    Error('\p{Indic_Positional_Category:	 Left_and_Right/a/}');
-    Error('\P{Indic_Positional_Category:	 Left_and_Right/a/}');
+    Expect(1, 72002, '\p{Is_InPC=_Bottom_AND_Right}', "");
+    Expect(0, 72002, '\p{^Is_InPC=_Bottom_AND_Right}', "");
+    Expect(0, 72002, '\P{Is_InPC=_Bottom_AND_Right}', "");
+    Expect(1, 72002, '\P{^Is_InPC=_Bottom_AND_Right}', "");
+    Expect(0, 72003, '\p{Is_InPC=_Bottom_AND_Right}', "");
+    Expect(1, 72003, '\p{^Is_InPC=_Bottom_AND_Right}', "");
+    Expect(1, 72003, '\P{Is_InPC=_Bottom_AND_Right}', "");
+    Expect(0, 72003, '\P{^Is_InPC=_Bottom_AND_Right}', "");
+    Error('\p{Indic_Positional_Category=:= -Left}');
+    Error('\P{Indic_Positional_Category=:= -Left}');
+    Expect(1, 73535, '\p{Indic_Positional_Category=:\ALeft\z:}', "");;
+    Expect(0, 73536, '\p{Indic_Positional_Category=:\ALeft\z:}', "");;
+    Expect(1, 73535, '\p{Indic_Positional_Category=left}', "");
+    Expect(0, 73535, '\p{^Indic_Positional_Category=left}', "");
+    Expect(0, 73535, '\P{Indic_Positional_Category=left}', "");
+    Expect(1, 73535, '\P{^Indic_Positional_Category=left}', "");
+    Expect(0, 73536, '\p{Indic_Positional_Category=left}', "");
+    Expect(1, 73536, '\p{^Indic_Positional_Category=left}', "");
+    Expect(1, 73536, '\P{Indic_Positional_Category=left}', "");
+    Expect(0, 73536, '\P{^Indic_Positional_Category=left}', "");
+    Expect(1, 73535, '\p{Indic_Positional_Category=:\Aleft\z:}', "");;
+    Expect(0, 73536, '\p{Indic_Positional_Category=:\Aleft\z:}', "");;
+    Expect(1, 73535, '\p{Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73535, '\p{^Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73535, '\P{Indic_Positional_Category= 	Left}', "");
+    Expect(1, 73535, '\P{^Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73536, '\p{Indic_Positional_Category= 	Left}', "");
+    Expect(1, 73536, '\p{^Indic_Positional_Category= 	Left}', "");
+    Expect(1, 73536, '\P{Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73536, '\P{^Indic_Positional_Category= 	Left}', "");
+    Error('\p{InPC=/a/-left}');
+    Error('\P{InPC=/a/-left}');
+    Expect(1, 73535, '\p{InPC=:\ALeft\z:}', "");;
+    Expect(0, 73536, '\p{InPC=:\ALeft\z:}', "");;
+    Expect(1, 73535, '\p{InPC=left}', "");
+    Expect(0, 73535, '\p{^InPC=left}', "");
+    Expect(0, 73535, '\P{InPC=left}', "");
+    Expect(1, 73535, '\P{^InPC=left}', "");
+    Expect(0, 73536, '\p{InPC=left}', "");
+    Expect(1, 73536, '\p{^InPC=left}', "");
+    Expect(1, 73536, '\P{InPC=left}', "");
+    Expect(0, 73536, '\P{^InPC=left}', "");
+    Expect(1, 73535, '\p{InPC=:\Aleft\z:}', "");;
+    Expect(0, 73536, '\p{InPC=:\Aleft\z:}', "");;
+    Expect(1, 73535, '\p{InPC=	LEFT}', "");
+    Expect(0, 73535, '\p{^InPC=	LEFT}', "");
+    Expect(0, 73535, '\P{InPC=	LEFT}', "");
+    Expect(1, 73535, '\P{^InPC=	LEFT}', "");
+    Expect(0, 73536, '\p{InPC=	LEFT}', "");
+    Expect(1, 73536, '\p{^InPC=	LEFT}', "");
+    Expect(1, 73536, '\P{InPC=	LEFT}', "");
+    Expect(0, 73536, '\P{^InPC=	LEFT}', "");
+    Error('\p{Is_Indic_Positional_Category=:= Left}');
+    Error('\P{Is_Indic_Positional_Category=:= Left}');
+    Expect(1, 73535, '\p{Is_Indic_Positional_Category=left}', "");
+    Expect(0, 73535, '\p{^Is_Indic_Positional_Category=left}', "");
+    Expect(0, 73535, '\P{Is_Indic_Positional_Category=left}', "");
+    Expect(1, 73535, '\P{^Is_Indic_Positional_Category=left}', "");
+    Expect(0, 73536, '\p{Is_Indic_Positional_Category=left}', "");
+    Expect(1, 73536, '\p{^Is_Indic_Positional_Category=left}', "");
+    Expect(1, 73536, '\P{Is_Indic_Positional_Category=left}', "");
+    Expect(0, 73536, '\P{^Is_Indic_Positional_Category=left}', "");
+    Expect(1, 73535, '\p{Is_Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73535, '\p{^Is_Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73535, '\P{Is_Indic_Positional_Category= 	Left}', "");
+    Expect(1, 73535, '\P{^Is_Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73536, '\p{Is_Indic_Positional_Category= 	Left}', "");
+    Expect(1, 73536, '\p{^Is_Indic_Positional_Category= 	Left}', "");
+    Expect(1, 73536, '\P{Is_Indic_Positional_Category= 	Left}', "");
+    Expect(0, 73536, '\P{^Is_Indic_Positional_Category= 	Left}', "");
+    Error('\p{Is_InPC=	 LEFT/a/}');
+    Error('\P{Is_InPC=	 LEFT/a/}');
+    Expect(1, 73535, '\p{Is_InPC=left}', "");
+    Expect(0, 73535, '\p{^Is_InPC=left}', "");
+    Expect(0, 73535, '\P{Is_InPC=left}', "");
+    Expect(1, 73535, '\P{^Is_InPC=left}', "");
+    Expect(0, 73536, '\p{Is_InPC=left}', "");
+    Expect(1, 73536, '\p{^Is_InPC=left}', "");
+    Expect(1, 73536, '\P{Is_InPC=left}', "");
+    Expect(0, 73536, '\P{^Is_InPC=left}', "");
+    Expect(1, 73535, '\p{Is_InPC:   	Left}', "");
+    Expect(0, 73535, '\p{^Is_InPC:   	Left}', "");
+    Expect(0, 73535, '\P{Is_InPC:   	Left}', "");
+    Expect(1, 73535, '\P{^Is_InPC:   	Left}', "");
+    Expect(0, 73536, '\p{Is_InPC:   	Left}', "");
+    Expect(1, 73536, '\p{^Is_InPC:   	Left}', "");
+    Expect(1, 73536, '\P{Is_InPC:   	Left}', "");
+    Expect(0, 73536, '\P{^Is_InPC:   	Left}', "");
+    Error('\p{Indic_Positional_Category=-/a/LEFT_and_Right}');
+    Error('\P{Indic_Positional_Category=-/a/LEFT_and_Right}');
     Expect(1, 71992, '\p{Indic_Positional_Category=:\ALeft_And_Right\z:}', "");;
     Expect(0, 71993, '\p{Indic_Positional_Category=:\ALeft_And_Right\z:}', "");;
     Expect(1, 71992, '\p{Indic_Positional_Category=leftandright}', "");
@@ -49039,16 +49661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71993, '\P{^Indic_Positional_Category=leftandright}', "");
     Expect(1, 71992, '\p{Indic_Positional_Category=:\Aleftandright\z:}', "");;
     Expect(0, 71993, '\p{Indic_Positional_Category=:\Aleftandright\z:}', "");;
-    Expect(1, 71992, '\p{Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(0, 71992, '\p{^Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(0, 71992, '\P{Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(1, 71992, '\P{^Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(0, 71993, '\p{Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(1, 71993, '\p{^Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(1, 71993, '\P{Indic_Positional_Category=_-LEFT_and_right}', "");
-    Expect(0, 71993, '\P{^Indic_Positional_Category=_-LEFT_and_right}', "");
-    Error('\p{InPC=-Left_AND_Right/a/}');
-    Error('\P{InPC=-Left_AND_Right/a/}');
+    Expect(1, 71992, '\p{Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(0, 71992, '\p{^Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(0, 71992, '\P{Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(1, 71992, '\P{^Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(0, 71993, '\p{Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(1, 71993, '\p{^Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(1, 71993, '\P{Indic_Positional_Category=left_AND_RIGHT}', "");
+    Expect(0, 71993, '\P{^Indic_Positional_Category=left_AND_RIGHT}', "");
+    Error('\p{InPC:	/a/	-LEFT_and_RIGHT}');
+    Error('\P{InPC:	/a/	-LEFT_and_RIGHT}');
     Expect(1, 71992, '\p{InPC=:\ALeft_And_Right\z:}', "");;
     Expect(0, 71993, '\p{InPC=:\ALeft_And_Right\z:}', "");;
     Expect(1, 71992, '\p{InPC=leftandright}', "");
@@ -49061,16 +49683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71993, '\P{^InPC=leftandright}', "");
     Expect(1, 71992, '\p{InPC=:\Aleftandright\z:}', "");;
     Expect(0, 71993, '\p{InPC=:\Aleftandright\z:}', "");;
-    Expect(1, 71992, '\p{InPC= -left_AND_Right}', "");
-    Expect(0, 71992, '\p{^InPC= -left_AND_Right}', "");
-    Expect(0, 71992, '\P{InPC= -left_AND_Right}', "");
-    Expect(1, 71992, '\P{^InPC= -left_AND_Right}', "");
-    Expect(0, 71993, '\p{InPC= -left_AND_Right}', "");
-    Expect(1, 71993, '\p{^InPC= -left_AND_Right}', "");
-    Expect(1, 71993, '\P{InPC= -left_AND_Right}', "");
-    Expect(0, 71993, '\P{^InPC= -left_AND_Right}', "");
-    Error('\p{Is_Indic_Positional_Category=:=-LEFT_AND_RIGHT}');
-    Error('\P{Is_Indic_Positional_Category=:=-LEFT_AND_RIGHT}');
+    Expect(1, 71992, '\p{InPC:  LEFT_AND_Right}', "");
+    Expect(0, 71992, '\p{^InPC:  LEFT_AND_Right}', "");
+    Expect(0, 71992, '\P{InPC:  LEFT_AND_Right}', "");
+    Expect(1, 71992, '\P{^InPC:  LEFT_AND_Right}', "");
+    Expect(0, 71993, '\p{InPC:  LEFT_AND_Right}', "");
+    Expect(1, 71993, '\p{^InPC:  LEFT_AND_Right}', "");
+    Expect(1, 71993, '\P{InPC:  LEFT_AND_Right}', "");
+    Expect(0, 71993, '\P{^InPC:  LEFT_AND_Right}', "");
+    Error('\p{Is_Indic_Positional_Category=  Left_And_Right:=}');
+    Error('\P{Is_Indic_Positional_Category=  Left_And_Right:=}');
     Expect(1, 71992, '\p{Is_Indic_Positional_Category=leftandright}', "");
     Expect(0, 71992, '\p{^Is_Indic_Positional_Category=leftandright}', "");
     Expect(0, 71992, '\P{Is_Indic_Positional_Category=leftandright}', "");
@@ -49079,16 +49701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71993, '\p{^Is_Indic_Positional_Category=leftandright}', "");
     Expect(1, 71993, '\P{Is_Indic_Positional_Category=leftandright}', "");
     Expect(0, 71993, '\P{^Is_Indic_Positional_Category=leftandright}', "");
-    Expect(1, 71992, '\p{Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(0, 71992, '\p{^Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(0, 71992, '\P{Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(1, 71992, '\P{^Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(0, 71993, '\p{Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(1, 71993, '\p{^Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(1, 71993, '\P{Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Expect(0, 71993, '\P{^Is_Indic_Positional_Category=_-left_AND_Right}', "");
-    Error('\p{Is_InPC=/a/	-left_And_right}');
-    Error('\P{Is_InPC=/a/	-left_And_right}');
+    Expect(1, 71992, '\p{Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(0, 71992, '\p{^Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(0, 71992, '\P{Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(1, 71992, '\P{^Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(0, 71993, '\p{Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(1, 71993, '\p{^Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(1, 71993, '\P{Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Expect(0, 71993, '\P{^Is_Indic_Positional_Category= Left_and_RIGHT}', "");
+    Error('\p{Is_InPC=/a/_LEFT_and_Right}');
+    Error('\P{Is_InPC=/a/_LEFT_and_Right}');
     Expect(1, 71992, '\p{Is_InPC=leftandright}', "");
     Expect(0, 71992, '\p{^Is_InPC=leftandright}', "");
     Expect(0, 71992, '\P{Is_InPC=leftandright}', "");
@@ -49097,96 +49719,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71993, '\p{^Is_InPC=leftandright}', "");
     Expect(1, 71993, '\P{Is_InPC=leftandright}', "");
     Expect(0, 71993, '\P{^Is_InPC=leftandright}', "");
-    Expect(1, 71992, '\p{Is_InPC=  left_and_Right}', "");
-    Expect(0, 71992, '\p{^Is_InPC=  left_and_Right}', "");
-    Expect(0, 71992, '\P{Is_InPC=  left_and_Right}', "");
-    Expect(1, 71992, '\P{^Is_InPC=  left_and_Right}', "");
-    Expect(0, 71993, '\p{Is_InPC=  left_and_Right}', "");
-    Expect(1, 71993, '\p{^Is_InPC=  left_and_Right}', "");
-    Expect(1, 71993, '\P{Is_InPC=  left_and_Right}', "");
-    Expect(0, 71993, '\P{^Is_InPC=  left_and_Right}', "");
-    Error('\p{Indic_Positional_Category=/a/_	NA}');
-    Error('\P{Indic_Positional_Category=/a/_	NA}');
-    Expect(1, 73463, '\p{Indic_Positional_Category=:\ANA\z:}', "");;
-    Expect(0, 73462, '\p{Indic_Positional_Category=:\ANA\z:}', "");;
-    Expect(1, 73463, '\p{Indic_Positional_Category=na}', "");
-    Expect(0, 73463, '\p{^Indic_Positional_Category=na}', "");
-    Expect(0, 73463, '\P{Indic_Positional_Category=na}', "");
-    Expect(1, 73463, '\P{^Indic_Positional_Category=na}', "");
-    Expect(0, 73462, '\p{Indic_Positional_Category=na}', "");
-    Expect(1, 73462, '\p{^Indic_Positional_Category=na}', "");
-    Expect(1, 73462, '\P{Indic_Positional_Category=na}', "");
-    Expect(0, 73462, '\P{^Indic_Positional_Category=na}', "");
-    Expect(1, 73463, '\p{Indic_Positional_Category=:\Ana\z:}', "");;
-    Expect(0, 73462, '\p{Indic_Positional_Category=:\Ana\z:}', "");;
-    Expect(1, 73463, '\p{Indic_Positional_Category=	-NA}', "");
-    Expect(0, 73463, '\p{^Indic_Positional_Category=	-NA}', "");
-    Expect(0, 73463, '\P{Indic_Positional_Category=	-NA}', "");
-    Expect(1, 73463, '\P{^Indic_Positional_Category=	-NA}', "");
-    Expect(0, 73462, '\p{Indic_Positional_Category=	-NA}', "");
-    Expect(1, 73462, '\p{^Indic_Positional_Category=	-NA}', "");
-    Expect(1, 73462, '\P{Indic_Positional_Category=	-NA}', "");
-    Expect(0, 73462, '\P{^Indic_Positional_Category=	-NA}', "");
-    Error('\p{InPC=:=NA}');
-    Error('\P{InPC=:=NA}');
-    Expect(1, 73463, '\p{InPC=:\ANA\z:}', "");;
-    Expect(0, 73462, '\p{InPC=:\ANA\z:}', "");;
-    Expect(1, 73463, '\p{InPC=na}', "");
-    Expect(0, 73463, '\p{^InPC=na}', "");
-    Expect(0, 73463, '\P{InPC=na}', "");
-    Expect(1, 73463, '\P{^InPC=na}', "");
-    Expect(0, 73462, '\p{InPC=na}', "");
-    Expect(1, 73462, '\p{^InPC=na}', "");
-    Expect(1, 73462, '\P{InPC=na}', "");
-    Expect(0, 73462, '\P{^InPC=na}', "");
-    Expect(1, 73463, '\p{InPC=:\Ana\z:}', "");;
-    Expect(0, 73462, '\p{InPC=:\Ana\z:}', "");;
-    Expect(1, 73463, '\p{InPC=--na}', "");
-    Expect(0, 73463, '\p{^InPC=--na}', "");
-    Expect(0, 73463, '\P{InPC=--na}', "");
-    Expect(1, 73463, '\P{^InPC=--na}', "");
-    Expect(0, 73462, '\p{InPC=--na}', "");
-    Expect(1, 73462, '\p{^InPC=--na}', "");
-    Expect(1, 73462, '\P{InPC=--na}', "");
-    Expect(0, 73462, '\P{^InPC=--na}', "");
-    Error('\p{Is_Indic_Positional_Category=:= NA}');
-    Error('\P{Is_Indic_Positional_Category=:= NA}');
-    Expect(1, 73463, '\p{Is_Indic_Positional_Category=na}', "");
-    Expect(0, 73463, '\p{^Is_Indic_Positional_Category=na}', "");
-    Expect(0, 73463, '\P{Is_Indic_Positional_Category=na}', "");
-    Expect(1, 73463, '\P{^Is_Indic_Positional_Category=na}', "");
-    Expect(0, 73462, '\p{Is_Indic_Positional_Category=na}', "");
-    Expect(1, 73462, '\p{^Is_Indic_Positional_Category=na}', "");
-    Expect(1, 73462, '\P{Is_Indic_Positional_Category=na}', "");
-    Expect(0, 73462, '\P{^Is_Indic_Positional_Category=na}', "");
-    Expect(1, 73463, '\p{Is_Indic_Positional_Category=	_NA}', "");
-    Expect(0, 73463, '\p{^Is_Indic_Positional_Category=	_NA}', "");
-    Expect(0, 73463, '\P{Is_Indic_Positional_Category=	_NA}', "");
-    Expect(1, 73463, '\P{^Is_Indic_Positional_Category=	_NA}', "");
-    Expect(0, 73462, '\p{Is_Indic_Positional_Category=	_NA}', "");
-    Expect(1, 73462, '\p{^Is_Indic_Positional_Category=	_NA}', "");
-    Expect(1, 73462, '\P{Is_Indic_Positional_Category=	_NA}', "");
-    Expect(0, 73462, '\P{^Is_Indic_Positional_Category=	_NA}', "");
-    Error('\p{Is_InPC=/a/_	NA}');
-    Error('\P{Is_InPC=/a/_	NA}');
-    Expect(1, 73463, '\p{Is_InPC=na}', "");
-    Expect(0, 73463, '\p{^Is_InPC=na}', "");
-    Expect(0, 73463, '\P{Is_InPC=na}', "");
-    Expect(1, 73463, '\P{^Is_InPC=na}', "");
-    Expect(0, 73462, '\p{Is_InPC=na}', "");
-    Expect(1, 73462, '\p{^Is_InPC=na}', "");
-    Expect(1, 73462, '\P{Is_InPC=na}', "");
-    Expect(0, 73462, '\P{^Is_InPC=na}', "");
-    Expect(1, 73463, '\p{Is_InPC:__NA}', "");
-    Expect(0, 73463, '\p{^Is_InPC:__NA}', "");
-    Expect(0, 73463, '\P{Is_InPC:__NA}', "");
-    Expect(1, 73463, '\P{^Is_InPC:__NA}', "");
-    Expect(0, 73462, '\p{Is_InPC:__NA}', "");
-    Expect(1, 73462, '\p{^Is_InPC:__NA}', "");
-    Expect(1, 73462, '\P{Is_InPC:__NA}', "");
-    Expect(0, 73462, '\P{^Is_InPC:__NA}', "");
-    Error('\p{Indic_Positional_Category=:=	Overstruck}');
-    Error('\P{Indic_Positional_Category=:=	Overstruck}');
+    Expect(1, 71992, '\p{Is_InPC=	Left_AND_Right}', "");
+    Expect(0, 71992, '\p{^Is_InPC=	Left_AND_Right}', "");
+    Expect(0, 71992, '\P{Is_InPC=	Left_AND_Right}', "");
+    Expect(1, 71992, '\P{^Is_InPC=	Left_AND_Right}', "");
+    Expect(0, 71993, '\p{Is_InPC=	Left_AND_Right}', "");
+    Expect(1, 71993, '\p{^Is_InPC=	Left_AND_Right}', "");
+    Expect(1, 71993, '\P{Is_InPC=	Left_AND_Right}', "");
+    Expect(0, 71993, '\P{^Is_InPC=	Left_AND_Right}', "");
+    Error('\p{Indic_Positional_Category=/a/ -na}');
+    Error('\P{Indic_Positional_Category=/a/ -na}');
+    Expect(1, 73538, '\p{Indic_Positional_Category=:\ANA\z:}', "");;
+    Expect(0, 73537, '\p{Indic_Positional_Category=:\ANA\z:}', "");;
+    Expect(1, 73538, '\p{Indic_Positional_Category=na}', "");
+    Expect(0, 73538, '\p{^Indic_Positional_Category=na}', "");
+    Expect(0, 73538, '\P{Indic_Positional_Category=na}', "");
+    Expect(1, 73538, '\P{^Indic_Positional_Category=na}', "");
+    Expect(0, 73537, '\p{Indic_Positional_Category=na}', "");
+    Expect(1, 73537, '\p{^Indic_Positional_Category=na}', "");
+    Expect(1, 73537, '\P{Indic_Positional_Category=na}', "");
+    Expect(0, 73537, '\P{^Indic_Positional_Category=na}', "");
+    Expect(1, 73538, '\p{Indic_Positional_Category=:\Ana\z:}', "");;
+    Expect(0, 73537, '\p{Indic_Positional_Category=:\Ana\z:}', "");;
+    Expect(1, 73538, '\p{Indic_Positional_Category:   _	NA}', "");
+    Expect(0, 73538, '\p{^Indic_Positional_Category:   _	NA}', "");
+    Expect(0, 73538, '\P{Indic_Positional_Category:   _	NA}', "");
+    Expect(1, 73538, '\P{^Indic_Positional_Category:   _	NA}', "");
+    Expect(0, 73537, '\p{Indic_Positional_Category:   _	NA}', "");
+    Expect(1, 73537, '\p{^Indic_Positional_Category:   _	NA}', "");
+    Expect(1, 73537, '\P{Indic_Positional_Category:   _	NA}', "");
+    Expect(0, 73537, '\P{^Indic_Positional_Category:   _	NA}', "");
+    Error('\p{InPC:  /a/NA}');
+    Error('\P{InPC:  /a/NA}');
+    Expect(1, 73538, '\p{InPC=:\ANA\z:}', "");;
+    Expect(0, 73537, '\p{InPC=:\ANA\z:}', "");;
+    Expect(1, 73538, '\p{InPC:na}', "");
+    Expect(0, 73538, '\p{^InPC:na}', "");
+    Expect(0, 73538, '\P{InPC:na}', "");
+    Expect(1, 73538, '\P{^InPC:na}', "");
+    Expect(0, 73537, '\p{InPC:na}', "");
+    Expect(1, 73537, '\p{^InPC:na}', "");
+    Expect(1, 73537, '\P{InPC:na}', "");
+    Expect(0, 73537, '\P{^InPC:na}', "");
+    Expect(1, 73538, '\p{InPC=:\Ana\z:}', "");;
+    Expect(0, 73537, '\p{InPC=:\Ana\z:}', "");;
+    Expect(1, 73538, '\p{InPC:-	na}', "");
+    Expect(0, 73538, '\p{^InPC:-	na}', "");
+    Expect(0, 73538, '\P{InPC:-	na}', "");
+    Expect(1, 73538, '\P{^InPC:-	na}', "");
+    Expect(0, 73537, '\p{InPC:-	na}', "");
+    Expect(1, 73537, '\p{^InPC:-	na}', "");
+    Expect(1, 73537, '\P{InPC:-	na}', "");
+    Expect(0, 73537, '\P{^InPC:-	na}', "");
+    Error('\p{Is_Indic_Positional_Category= -na/a/}');
+    Error('\P{Is_Indic_Positional_Category= -na/a/}');
+    Expect(1, 73538, '\p{Is_Indic_Positional_Category=na}', "");
+    Expect(0, 73538, '\p{^Is_Indic_Positional_Category=na}', "");
+    Expect(0, 73538, '\P{Is_Indic_Positional_Category=na}', "");
+    Expect(1, 73538, '\P{^Is_Indic_Positional_Category=na}', "");
+    Expect(0, 73537, '\p{Is_Indic_Positional_Category=na}', "");
+    Expect(1, 73537, '\p{^Is_Indic_Positional_Category=na}', "");
+    Expect(1, 73537, '\P{Is_Indic_Positional_Category=na}', "");
+    Expect(0, 73537, '\P{^Is_Indic_Positional_Category=na}', "");
+    Expect(1, 73538, '\p{Is_Indic_Positional_Category=  NA}', "");
+    Expect(0, 73538, '\p{^Is_Indic_Positional_Category=  NA}', "");
+    Expect(0, 73538, '\P{Is_Indic_Positional_Category=  NA}', "");
+    Expect(1, 73538, '\P{^Is_Indic_Positional_Category=  NA}', "");
+    Expect(0, 73537, '\p{Is_Indic_Positional_Category=  NA}', "");
+    Expect(1, 73537, '\p{^Is_Indic_Positional_Category=  NA}', "");
+    Expect(1, 73537, '\P{Is_Indic_Positional_Category=  NA}', "");
+    Expect(0, 73537, '\P{^Is_Indic_Positional_Category=  NA}', "");
+    Error('\p{Is_InPC=	 NA:=}');
+    Error('\P{Is_InPC=	 NA:=}');
+    Expect(1, 73538, '\p{Is_InPC:   na}', "");
+    Expect(0, 73538, '\p{^Is_InPC:   na}', "");
+    Expect(0, 73538, '\P{Is_InPC:   na}', "");
+    Expect(1, 73538, '\P{^Is_InPC:   na}', "");
+    Expect(0, 73537, '\p{Is_InPC:   na}', "");
+    Expect(1, 73537, '\p{^Is_InPC:   na}', "");
+    Expect(1, 73537, '\P{Is_InPC:   na}', "");
+    Expect(0, 73537, '\P{^Is_InPC:   na}', "");
+    Expect(1, 73538, '\p{Is_InPC:   - na}', "");
+    Expect(0, 73538, '\p{^Is_InPC:   - na}', "");
+    Expect(0, 73538, '\P{Is_InPC:   - na}', "");
+    Expect(1, 73538, '\P{^Is_InPC:   - na}', "");
+    Expect(0, 73537, '\p{Is_InPC:   - na}', "");
+    Expect(1, 73537, '\p{^Is_InPC:   - na}', "");
+    Expect(1, 73537, '\P{Is_InPC:   - na}', "");
+    Expect(0, 73537, '\P{^Is_InPC:   - na}', "");
+    Error('\p{Indic_Positional_Category=- overstruck:=}');
+    Error('\P{Indic_Positional_Category=- overstruck:=}');
     Expect(1, 68102, '\p{Indic_Positional_Category=:\AOverstruck\z:}', "");;
     Expect(0, 68103, '\p{Indic_Positional_Category=:\AOverstruck\z:}', "");;
     Expect(1, 68102, '\p{Indic_Positional_Category=overstruck}', "");
@@ -49199,16 +49821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68103, '\P{^Indic_Positional_Category=overstruck}', "");
     Expect(1, 68102, '\p{Indic_Positional_Category=:\Aoverstruck\z:}', "");;
     Expect(0, 68103, '\p{Indic_Positional_Category=:\Aoverstruck\z:}', "");;
-    Expect(1, 68102, '\p{Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(0, 68102, '\p{^Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(0, 68102, '\P{Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(1, 68102, '\P{^Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(0, 68103, '\p{Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(1, 68103, '\p{^Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(1, 68103, '\P{Indic_Positional_Category=-OVERSTRUCK}', "");
-    Expect(0, 68103, '\P{^Indic_Positional_Category=-OVERSTRUCK}', "");
-    Error('\p{InPC=:=	OVERSTRUCK}');
-    Error('\P{InPC=:=	OVERSTRUCK}');
+    Expect(1, 68102, '\p{Indic_Positional_Category=	-Overstruck}', "");
+    Expect(0, 68102, '\p{^Indic_Positional_Category=	-Overstruck}', "");
+    Expect(0, 68102, '\P{Indic_Positional_Category=	-Overstruck}', "");
+    Expect(1, 68102, '\P{^Indic_Positional_Category=	-Overstruck}', "");
+    Expect(0, 68103, '\p{Indic_Positional_Category=	-Overstruck}', "");
+    Expect(1, 68103, '\p{^Indic_Positional_Category=	-Overstruck}', "");
+    Expect(1, 68103, '\P{Indic_Positional_Category=	-Overstruck}', "");
+    Expect(0, 68103, '\P{^Indic_Positional_Category=	-Overstruck}', "");
+    Error('\p{InPC:	 :=overstruck}');
+    Error('\P{InPC:	 :=overstruck}');
     Expect(1, 68102, '\p{InPC=:\AOverstruck\z:}', "");;
     Expect(0, 68103, '\p{InPC=:\AOverstruck\z:}', "");;
     Expect(1, 68102, '\p{InPC=overstruck}', "");
@@ -49221,34 +49843,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68103, '\P{^InPC=overstruck}', "");
     Expect(1, 68102, '\p{InPC=:\Aoverstruck\z:}', "");;
     Expect(0, 68103, '\p{InPC=:\Aoverstruck\z:}', "");;
-    Expect(1, 68102, '\p{InPC=	 Overstruck}', "");
-    Expect(0, 68102, '\p{^InPC=	 Overstruck}', "");
-    Expect(0, 68102, '\P{InPC=	 Overstruck}', "");
-    Expect(1, 68102, '\P{^InPC=	 Overstruck}', "");
-    Expect(0, 68103, '\p{InPC=	 Overstruck}', "");
-    Expect(1, 68103, '\p{^InPC=	 Overstruck}', "");
-    Expect(1, 68103, '\P{InPC=	 Overstruck}', "");
-    Expect(0, 68103, '\P{^InPC=	 Overstruck}', "");
-    Error('\p{Is_Indic_Positional_Category=:=Overstruck}');
-    Error('\P{Is_Indic_Positional_Category=:=Overstruck}');
-    Expect(1, 68102, '\p{Is_Indic_Positional_Category:overstruck}', "");
-    Expect(0, 68102, '\p{^Is_Indic_Positional_Category:overstruck}', "");
-    Expect(0, 68102, '\P{Is_Indic_Positional_Category:overstruck}', "");
-    Expect(1, 68102, '\P{^Is_Indic_Positional_Category:overstruck}', "");
-    Expect(0, 68103, '\p{Is_Indic_Positional_Category:overstruck}', "");
-    Expect(1, 68103, '\p{^Is_Indic_Positional_Category:overstruck}', "");
-    Expect(1, 68103, '\P{Is_Indic_Positional_Category:overstruck}', "");
-    Expect(0, 68103, '\P{^Is_Indic_Positional_Category:overstruck}', "");
-    Expect(1, 68102, '\p{Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(0, 68102, '\p{^Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(0, 68102, '\P{Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(1, 68102, '\P{^Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(0, 68103, '\p{Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(1, 68103, '\p{^Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(1, 68103, '\P{Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Expect(0, 68103, '\P{^Is_Indic_Positional_Category: _OVERSTRUCK}', "");
-    Error('\p{Is_InPC:   - OVERSTRUCK/a/}');
-    Error('\P{Is_InPC:   - OVERSTRUCK/a/}');
+    Expect(1, 68102, '\p{InPC=-OVERSTRUCK}', "");
+    Expect(0, 68102, '\p{^InPC=-OVERSTRUCK}', "");
+    Expect(0, 68102, '\P{InPC=-OVERSTRUCK}', "");
+    Expect(1, 68102, '\P{^InPC=-OVERSTRUCK}', "");
+    Expect(0, 68103, '\p{InPC=-OVERSTRUCK}', "");
+    Expect(1, 68103, '\p{^InPC=-OVERSTRUCK}', "");
+    Expect(1, 68103, '\P{InPC=-OVERSTRUCK}', "");
+    Expect(0, 68103, '\P{^InPC=-OVERSTRUCK}', "");
+    Error('\p{Is_Indic_Positional_Category=/a/	 Overstruck}');
+    Error('\P{Is_Indic_Positional_Category=/a/	 Overstruck}');
+    Expect(1, 68102, '\p{Is_Indic_Positional_Category=overstruck}', "");
+    Expect(0, 68102, '\p{^Is_Indic_Positional_Category=overstruck}', "");
+    Expect(0, 68102, '\P{Is_Indic_Positional_Category=overstruck}', "");
+    Expect(1, 68102, '\P{^Is_Indic_Positional_Category=overstruck}', "");
+    Expect(0, 68103, '\p{Is_Indic_Positional_Category=overstruck}', "");
+    Expect(1, 68103, '\p{^Is_Indic_Positional_Category=overstruck}', "");
+    Expect(1, 68103, '\P{Is_Indic_Positional_Category=overstruck}', "");
+    Expect(0, 68103, '\P{^Is_Indic_Positional_Category=overstruck}', "");
+    Expect(1, 68102, '\p{Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(0, 68102, '\p{^Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(0, 68102, '\P{Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(1, 68102, '\P{^Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(0, 68103, '\p{Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(1, 68103, '\p{^Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(1, 68103, '\P{Is_Indic_Positional_Category=_Overstruck}', "");
+    Expect(0, 68103, '\P{^Is_Indic_Positional_Category=_Overstruck}', "");
+    Error('\p{Is_InPC=	-Overstruck:=}');
+    Error('\P{Is_InPC=	-Overstruck:=}');
     Expect(1, 68102, '\p{Is_InPC=overstruck}', "");
     Expect(0, 68102, '\p{^Is_InPC=overstruck}', "");
     Expect(0, 68102, '\P{Is_InPC=overstruck}', "");
@@ -49257,176 +49879,176 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68103, '\p{^Is_InPC=overstruck}', "");
     Expect(1, 68103, '\P{Is_InPC=overstruck}', "");
     Expect(0, 68103, '\P{^Is_InPC=overstruck}', "");
-    Expect(1, 68102, '\p{Is_InPC=-	Overstruck}', "");
-    Expect(0, 68102, '\p{^Is_InPC=-	Overstruck}', "");
-    Expect(0, 68102, '\P{Is_InPC=-	Overstruck}', "");
-    Expect(1, 68102, '\P{^Is_InPC=-	Overstruck}', "");
-    Expect(0, 68103, '\p{Is_InPC=-	Overstruck}', "");
-    Expect(1, 68103, '\p{^Is_InPC=-	Overstruck}', "");
-    Expect(1, 68103, '\P{Is_InPC=-	Overstruck}', "");
-    Expect(0, 68103, '\P{^Is_InPC=-	Overstruck}', "");
-    Error('\p{Indic_Positional_Category=/a/		Right}');
-    Error('\P{Indic_Positional_Category=/a/		Right}');
-    Expect(1, 73462, '\p{Indic_Positional_Category=:\ARight\z:}', "");;
-    Expect(0, 73463, '\p{Indic_Positional_Category=:\ARight\z:}', "");;
-    Expect(1, 73462, '\p{Indic_Positional_Category=right}', "");
-    Expect(0, 73462, '\p{^Indic_Positional_Category=right}', "");
-    Expect(0, 73462, '\P{Indic_Positional_Category=right}', "");
-    Expect(1, 73462, '\P{^Indic_Positional_Category=right}', "");
-    Expect(0, 73463, '\p{Indic_Positional_Category=right}', "");
-    Expect(1, 73463, '\p{^Indic_Positional_Category=right}', "");
-    Expect(1, 73463, '\P{Indic_Positional_Category=right}', "");
-    Expect(0, 73463, '\P{^Indic_Positional_Category=right}', "");
-    Expect(1, 73462, '\p{Indic_Positional_Category=:\Aright\z:}', "");;
-    Expect(0, 73463, '\p{Indic_Positional_Category=:\Aright\z:}', "");;
-    Expect(1, 73462, '\p{Indic_Positional_Category= right}', "");
-    Expect(0, 73462, '\p{^Indic_Positional_Category= right}', "");
-    Expect(0, 73462, '\P{Indic_Positional_Category= right}', "");
-    Expect(1, 73462, '\P{^Indic_Positional_Category= right}', "");
-    Expect(0, 73463, '\p{Indic_Positional_Category= right}', "");
-    Expect(1, 73463, '\p{^Indic_Positional_Category= right}', "");
-    Expect(1, 73463, '\P{Indic_Positional_Category= right}', "");
-    Expect(0, 73463, '\P{^Indic_Positional_Category= right}', "");
-    Error('\p{InPC=:= Right}');
-    Error('\P{InPC=:= Right}');
-    Expect(1, 73462, '\p{InPC=:\ARight\z:}', "");;
-    Expect(0, 73463, '\p{InPC=:\ARight\z:}', "");;
-    Expect(1, 73462, '\p{InPC=right}', "");
-    Expect(0, 73462, '\p{^InPC=right}', "");
-    Expect(0, 73462, '\P{InPC=right}', "");
-    Expect(1, 73462, '\P{^InPC=right}', "");
-    Expect(0, 73463, '\p{InPC=right}', "");
-    Expect(1, 73463, '\p{^InPC=right}', "");
-    Expect(1, 73463, '\P{InPC=right}', "");
-    Expect(0, 73463, '\P{^InPC=right}', "");
-    Expect(1, 73462, '\p{InPC=:\Aright\z:}', "");;
-    Expect(0, 73463, '\p{InPC=:\Aright\z:}', "");;
-    Expect(1, 73462, '\p{InPC=	-right}', "");
-    Expect(0, 73462, '\p{^InPC=	-right}', "");
-    Expect(0, 73462, '\P{InPC=	-right}', "");
-    Expect(1, 73462, '\P{^InPC=	-right}', "");
-    Expect(0, 73463, '\p{InPC=	-right}', "");
-    Expect(1, 73463, '\p{^InPC=	-right}', "");
-    Expect(1, 73463, '\P{InPC=	-right}', "");
-    Expect(0, 73463, '\P{^InPC=	-right}', "");
-    Error('\p{Is_Indic_Positional_Category=_/a/Right}');
-    Error('\P{Is_Indic_Positional_Category=_/a/Right}');
-    Expect(1, 73462, '\p{Is_Indic_Positional_Category=right}', "");
-    Expect(0, 73462, '\p{^Is_Indic_Positional_Category=right}', "");
-    Expect(0, 73462, '\P{Is_Indic_Positional_Category=right}', "");
-    Expect(1, 73462, '\P{^Is_Indic_Positional_Category=right}', "");
-    Expect(0, 73463, '\p{Is_Indic_Positional_Category=right}', "");
-    Expect(1, 73463, '\p{^Is_Indic_Positional_Category=right}', "");
-    Expect(1, 73463, '\P{Is_Indic_Positional_Category=right}', "");
-    Expect(0, 73463, '\P{^Is_Indic_Positional_Category=right}', "");
-    Expect(1, 73462, '\p{Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(0, 73462, '\p{^Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(0, 73462, '\P{Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(1, 73462, '\P{^Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(0, 73463, '\p{Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(1, 73463, '\p{^Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(1, 73463, '\P{Is_Indic_Positional_Category=_-RIGHT}', "");
-    Expect(0, 73463, '\P{^Is_Indic_Positional_Category=_-RIGHT}', "");
-    Error('\p{Is_InPC=	-right:=}');
-    Error('\P{Is_InPC=	-right:=}');
-    Expect(1, 73462, '\p{Is_InPC:right}', "");
-    Expect(0, 73462, '\p{^Is_InPC:right}', "");
-    Expect(0, 73462, '\P{Is_InPC:right}', "");
-    Expect(1, 73462, '\P{^Is_InPC:right}', "");
-    Expect(0, 73463, '\p{Is_InPC:right}', "");
-    Expect(1, 73463, '\p{^Is_InPC:right}', "");
-    Expect(1, 73463, '\P{Is_InPC:right}', "");
-    Expect(0, 73463, '\P{^Is_InPC:right}', "");
-    Expect(1, 73462, '\p{Is_InPC= Right}', "");
-    Expect(0, 73462, '\p{^Is_InPC= Right}', "");
-    Expect(0, 73462, '\P{Is_InPC= Right}', "");
-    Expect(1, 73462, '\P{^Is_InPC= Right}', "");
-    Expect(0, 73463, '\p{Is_InPC= Right}', "");
-    Expect(1, 73463, '\p{^Is_InPC= Right}', "");
-    Expect(1, 73463, '\P{Is_InPC= Right}', "");
-    Expect(0, 73463, '\P{^Is_InPC= Right}', "");
-    Error('\p{Indic_Positional_Category=/a/TOP}');
-    Error('\P{Indic_Positional_Category=/a/TOP}');
-    Expect(1, 73459, '\p{Indic_Positional_Category=:\ATop\z:}', "");;
-    Expect(0, 73460, '\p{Indic_Positional_Category=:\ATop\z:}', "");;
-    Expect(1, 73459, '\p{Indic_Positional_Category:   top}', "");
-    Expect(0, 73459, '\p{^Indic_Positional_Category:   top}', "");
-    Expect(0, 73459, '\P{Indic_Positional_Category:   top}', "");
-    Expect(1, 73459, '\P{^Indic_Positional_Category:   top}', "");
-    Expect(0, 73460, '\p{Indic_Positional_Category:   top}', "");
-    Expect(1, 73460, '\p{^Indic_Positional_Category:   top}', "");
-    Expect(1, 73460, '\P{Indic_Positional_Category:   top}', "");
-    Expect(0, 73460, '\P{^Indic_Positional_Category:   top}', "");
-    Expect(1, 73459, '\p{Indic_Positional_Category=:\Atop\z:}', "");;
-    Expect(0, 73460, '\p{Indic_Positional_Category=:\Atop\z:}', "");;
-    Expect(1, 73459, '\p{Indic_Positional_Category=-TOP}', "");
-    Expect(0, 73459, '\p{^Indic_Positional_Category=-TOP}', "");
-    Expect(0, 73459, '\P{Indic_Positional_Category=-TOP}', "");
-    Expect(1, 73459, '\P{^Indic_Positional_Category=-TOP}', "");
-    Expect(0, 73460, '\p{Indic_Positional_Category=-TOP}', "");
-    Expect(1, 73460, '\p{^Indic_Positional_Category=-TOP}', "");
-    Expect(1, 73460, '\P{Indic_Positional_Category=-TOP}', "");
-    Expect(0, 73460, '\P{^Indic_Positional_Category=-TOP}', "");
-    Error('\p{InPC:   -:=Top}');
-    Error('\P{InPC:   -:=Top}');
-    Expect(1, 73459, '\p{InPC=:\ATop\z:}', "");;
-    Expect(0, 73460, '\p{InPC=:\ATop\z:}', "");;
-    Expect(1, 73459, '\p{InPC=top}', "");
-    Expect(0, 73459, '\p{^InPC=top}', "");
-    Expect(0, 73459, '\P{InPC=top}', "");
-    Expect(1, 73459, '\P{^InPC=top}', "");
-    Expect(0, 73460, '\p{InPC=top}', "");
-    Expect(1, 73460, '\p{^InPC=top}', "");
-    Expect(1, 73460, '\P{InPC=top}', "");
-    Expect(0, 73460, '\P{^InPC=top}', "");
-    Expect(1, 73459, '\p{InPC=:\Atop\z:}', "");;
-    Expect(0, 73460, '\p{InPC=:\Atop\z:}', "");;
-    Expect(1, 73459, '\p{InPC=		top}', "");
-    Expect(0, 73459, '\p{^InPC=		top}', "");
-    Expect(0, 73459, '\P{InPC=		top}', "");
-    Expect(1, 73459, '\P{^InPC=		top}', "");
-    Expect(0, 73460, '\p{InPC=		top}', "");
-    Expect(1, 73460, '\p{^InPC=		top}', "");
-    Expect(1, 73460, '\P{InPC=		top}', "");
-    Expect(0, 73460, '\P{^InPC=		top}', "");
-    Error('\p{Is_Indic_Positional_Category=:=	_Top}');
-    Error('\P{Is_Indic_Positional_Category=:=	_Top}');
-    Expect(1, 73459, '\p{Is_Indic_Positional_Category=top}', "");
-    Expect(0, 73459, '\p{^Is_Indic_Positional_Category=top}', "");
-    Expect(0, 73459, '\P{Is_Indic_Positional_Category=top}', "");
-    Expect(1, 73459, '\P{^Is_Indic_Positional_Category=top}', "");
-    Expect(0, 73460, '\p{Is_Indic_Positional_Category=top}', "");
-    Expect(1, 73460, '\p{^Is_Indic_Positional_Category=top}', "");
-    Expect(1, 73460, '\P{Is_Indic_Positional_Category=top}', "");
-    Expect(0, 73460, '\P{^Is_Indic_Positional_Category=top}', "");
-    Expect(1, 73459, '\p{Is_Indic_Positional_Category=- Top}', "");
-    Expect(0, 73459, '\p{^Is_Indic_Positional_Category=- Top}', "");
-    Expect(0, 73459, '\P{Is_Indic_Positional_Category=- Top}', "");
-    Expect(1, 73459, '\P{^Is_Indic_Positional_Category=- Top}', "");
-    Expect(0, 73460, '\p{Is_Indic_Positional_Category=- Top}', "");
-    Expect(1, 73460, '\p{^Is_Indic_Positional_Category=- Top}', "");
-    Expect(1, 73460, '\P{Is_Indic_Positional_Category=- Top}', "");
-    Expect(0, 73460, '\P{^Is_Indic_Positional_Category=- Top}', "");
-    Error('\p{Is_InPC:   := Top}');
-    Error('\P{Is_InPC:   := Top}');
-    Expect(1, 73459, '\p{Is_InPC=top}', "");
-    Expect(0, 73459, '\p{^Is_InPC=top}', "");
-    Expect(0, 73459, '\P{Is_InPC=top}', "");
-    Expect(1, 73459, '\P{^Is_InPC=top}', "");
-    Expect(0, 73460, '\p{Is_InPC=top}', "");
-    Expect(1, 73460, '\p{^Is_InPC=top}', "");
-    Expect(1, 73460, '\P{Is_InPC=top}', "");
-    Expect(0, 73460, '\P{^Is_InPC=top}', "");
-    Expect(1, 73459, '\p{Is_InPC=	TOP}', "");
-    Expect(0, 73459, '\p{^Is_InPC=	TOP}', "");
-    Expect(0, 73459, '\P{Is_InPC=	TOP}', "");
-    Expect(1, 73459, '\P{^Is_InPC=	TOP}', "");
-    Expect(0, 73460, '\p{Is_InPC=	TOP}', "");
-    Expect(1, 73460, '\p{^Is_InPC=	TOP}', "");
-    Expect(1, 73460, '\P{Is_InPC=	TOP}', "");
-    Expect(0, 73460, '\P{^Is_InPC=	TOP}', "");
-    Error('\p{Indic_Positional_Category= _Top_And_Bottom:=}');
-    Error('\P{Indic_Positional_Category= _Top_And_Bottom:=}');
+    Expect(1, 68102, '\p{Is_InPC:    	overstruck}', "");
+    Expect(0, 68102, '\p{^Is_InPC:    	overstruck}', "");
+    Expect(0, 68102, '\P{Is_InPC:    	overstruck}', "");
+    Expect(1, 68102, '\P{^Is_InPC:    	overstruck}', "");
+    Expect(0, 68103, '\p{Is_InPC:    	overstruck}', "");
+    Expect(1, 68103, '\p{^Is_InPC:    	overstruck}', "");
+    Expect(1, 68103, '\P{Is_InPC:    	overstruck}', "");
+    Expect(0, 68103, '\P{^Is_InPC:    	overstruck}', "");
+    Error('\p{Indic_Positional_Category=:=	 Right}');
+    Error('\P{Indic_Positional_Category=:=	 Right}');
+    Expect(1, 73537, '\p{Indic_Positional_Category=:\ARight\z:}', "");;
+    Expect(0, 73538, '\p{Indic_Positional_Category=:\ARight\z:}', "");;
+    Expect(1, 73537, '\p{Indic_Positional_Category=right}', "");
+    Expect(0, 73537, '\p{^Indic_Positional_Category=right}', "");
+    Expect(0, 73537, '\P{Indic_Positional_Category=right}', "");
+    Expect(1, 73537, '\P{^Indic_Positional_Category=right}', "");
+    Expect(0, 73538, '\p{Indic_Positional_Category=right}', "");
+    Expect(1, 73538, '\p{^Indic_Positional_Category=right}', "");
+    Expect(1, 73538, '\P{Indic_Positional_Category=right}', "");
+    Expect(0, 73538, '\P{^Indic_Positional_Category=right}', "");
+    Expect(1, 73537, '\p{Indic_Positional_Category=:\Aright\z:}', "");;
+    Expect(0, 73538, '\p{Indic_Positional_Category=:\Aright\z:}', "");;
+    Expect(1, 73537, '\p{Indic_Positional_Category=	right}', "");
+    Expect(0, 73537, '\p{^Indic_Positional_Category=	right}', "");
+    Expect(0, 73537, '\P{Indic_Positional_Category=	right}', "");
+    Expect(1, 73537, '\P{^Indic_Positional_Category=	right}', "");
+    Expect(0, 73538, '\p{Indic_Positional_Category=	right}', "");
+    Expect(1, 73538, '\p{^Indic_Positional_Category=	right}', "");
+    Expect(1, 73538, '\P{Indic_Positional_Category=	right}', "");
+    Expect(0, 73538, '\P{^Indic_Positional_Category=	right}', "");
+    Error('\p{InPC=	_Right/a/}');
+    Error('\P{InPC=	_Right/a/}');
+    Expect(1, 73537, '\p{InPC=:\ARight\z:}', "");;
+    Expect(0, 73538, '\p{InPC=:\ARight\z:}', "");;
+    Expect(1, 73537, '\p{InPC=right}', "");
+    Expect(0, 73537, '\p{^InPC=right}', "");
+    Expect(0, 73537, '\P{InPC=right}', "");
+    Expect(1, 73537, '\P{^InPC=right}', "");
+    Expect(0, 73538, '\p{InPC=right}', "");
+    Expect(1, 73538, '\p{^InPC=right}', "");
+    Expect(1, 73538, '\P{InPC=right}', "");
+    Expect(0, 73538, '\P{^InPC=right}', "");
+    Expect(1, 73537, '\p{InPC=:\Aright\z:}', "");;
+    Expect(0, 73538, '\p{InPC=:\Aright\z:}', "");;
+    Expect(1, 73537, '\p{InPC=	right}', "");
+    Expect(0, 73537, '\p{^InPC=	right}', "");
+    Expect(0, 73537, '\P{InPC=	right}', "");
+    Expect(1, 73537, '\P{^InPC=	right}', "");
+    Expect(0, 73538, '\p{InPC=	right}', "");
+    Expect(1, 73538, '\p{^InPC=	right}', "");
+    Expect(1, 73538, '\P{InPC=	right}', "");
+    Expect(0, 73538, '\P{^InPC=	right}', "");
+    Error('\p{Is_Indic_Positional_Category=_/a/RIGHT}');
+    Error('\P{Is_Indic_Positional_Category=_/a/RIGHT}');
+    Expect(1, 73537, '\p{Is_Indic_Positional_Category=right}', "");
+    Expect(0, 73537, '\p{^Is_Indic_Positional_Category=right}', "");
+    Expect(0, 73537, '\P{Is_Indic_Positional_Category=right}', "");
+    Expect(1, 73537, '\P{^Is_Indic_Positional_Category=right}', "");
+    Expect(0, 73538, '\p{Is_Indic_Positional_Category=right}', "");
+    Expect(1, 73538, '\p{^Is_Indic_Positional_Category=right}', "");
+    Expect(1, 73538, '\P{Is_Indic_Positional_Category=right}', "");
+    Expect(0, 73538, '\P{^Is_Indic_Positional_Category=right}', "");
+    Expect(1, 73537, '\p{Is_Indic_Positional_Category=-	Right}', "");
+    Expect(0, 73537, '\p{^Is_Indic_Positional_Category=-	Right}', "");
+    Expect(0, 73537, '\P{Is_Indic_Positional_Category=-	Right}', "");
+    Expect(1, 73537, '\P{^Is_Indic_Positional_Category=-	Right}', "");
+    Expect(0, 73538, '\p{Is_Indic_Positional_Category=-	Right}', "");
+    Expect(1, 73538, '\p{^Is_Indic_Positional_Category=-	Right}', "");
+    Expect(1, 73538, '\P{Is_Indic_Positional_Category=-	Right}', "");
+    Expect(0, 73538, '\P{^Is_Indic_Positional_Category=-	Right}', "");
+    Error('\p{Is_InPC=/a/Right}');
+    Error('\P{Is_InPC=/a/Right}');
+    Expect(1, 73537, '\p{Is_InPC=right}', "");
+    Expect(0, 73537, '\p{^Is_InPC=right}', "");
+    Expect(0, 73537, '\P{Is_InPC=right}', "");
+    Expect(1, 73537, '\P{^Is_InPC=right}', "");
+    Expect(0, 73538, '\p{Is_InPC=right}', "");
+    Expect(1, 73538, '\p{^Is_InPC=right}', "");
+    Expect(1, 73538, '\P{Is_InPC=right}', "");
+    Expect(0, 73538, '\P{^Is_InPC=right}', "");
+    Expect(1, 73537, '\p{Is_InPC=-	right}', "");
+    Expect(0, 73537, '\p{^Is_InPC=-	right}', "");
+    Expect(0, 73537, '\P{Is_InPC=-	right}', "");
+    Expect(1, 73537, '\P{^Is_InPC=-	right}', "");
+    Expect(0, 73538, '\p{Is_InPC=-	right}', "");
+    Expect(1, 73538, '\p{^Is_InPC=-	right}', "");
+    Expect(1, 73538, '\P{Is_InPC=-	right}', "");
+    Expect(0, 73538, '\P{^Is_InPC=-	right}', "");
+    Error('\p{Indic_Positional_Category=_:=TOP}');
+    Error('\P{Indic_Positional_Category=_:=TOP}');
+    Expect(1, 73536, '\p{Indic_Positional_Category=:\ATop\z:}', "");;
+    Expect(0, 73537, '\p{Indic_Positional_Category=:\ATop\z:}', "");;
+    Expect(1, 73536, '\p{Indic_Positional_Category=top}', "");
+    Expect(0, 73536, '\p{^Indic_Positional_Category=top}', "");
+    Expect(0, 73536, '\P{Indic_Positional_Category=top}', "");
+    Expect(1, 73536, '\P{^Indic_Positional_Category=top}', "");
+    Expect(0, 73537, '\p{Indic_Positional_Category=top}', "");
+    Expect(1, 73537, '\p{^Indic_Positional_Category=top}', "");
+    Expect(1, 73537, '\P{Indic_Positional_Category=top}', "");
+    Expect(0, 73537, '\P{^Indic_Positional_Category=top}', "");
+    Expect(1, 73536, '\p{Indic_Positional_Category=:\Atop\z:}', "");;
+    Expect(0, 73537, '\p{Indic_Positional_Category=:\Atop\z:}', "");;
+    Expect(1, 73536, '\p{Indic_Positional_Category=-TOP}', "");
+    Expect(0, 73536, '\p{^Indic_Positional_Category=-TOP}', "");
+    Expect(0, 73536, '\P{Indic_Positional_Category=-TOP}', "");
+    Expect(1, 73536, '\P{^Indic_Positional_Category=-TOP}', "");
+    Expect(0, 73537, '\p{Indic_Positional_Category=-TOP}', "");
+    Expect(1, 73537, '\p{^Indic_Positional_Category=-TOP}', "");
+    Expect(1, 73537, '\P{Indic_Positional_Category=-TOP}', "");
+    Expect(0, 73537, '\P{^Indic_Positional_Category=-TOP}', "");
+    Error('\p{InPC=-TOP:=}');
+    Error('\P{InPC=-TOP:=}');
+    Expect(1, 73536, '\p{InPC=:\ATop\z:}', "");;
+    Expect(0, 73537, '\p{InPC=:\ATop\z:}', "");;
+    Expect(1, 73536, '\p{InPC=top}', "");
+    Expect(0, 73536, '\p{^InPC=top}', "");
+    Expect(0, 73536, '\P{InPC=top}', "");
+    Expect(1, 73536, '\P{^InPC=top}', "");
+    Expect(0, 73537, '\p{InPC=top}', "");
+    Expect(1, 73537, '\p{^InPC=top}', "");
+    Expect(1, 73537, '\P{InPC=top}', "");
+    Expect(0, 73537, '\P{^InPC=top}', "");
+    Expect(1, 73536, '\p{InPC=:\Atop\z:}', "");;
+    Expect(0, 73537, '\p{InPC=:\Atop\z:}', "");;
+    Expect(1, 73536, '\p{InPC=_ TOP}', "");
+    Expect(0, 73536, '\p{^InPC=_ TOP}', "");
+    Expect(0, 73536, '\P{InPC=_ TOP}', "");
+    Expect(1, 73536, '\P{^InPC=_ TOP}', "");
+    Expect(0, 73537, '\p{InPC=_ TOP}', "");
+    Expect(1, 73537, '\p{^InPC=_ TOP}', "");
+    Expect(1, 73537, '\P{InPC=_ TOP}', "");
+    Expect(0, 73537, '\P{^InPC=_ TOP}', "");
+    Error('\p{Is_Indic_Positional_Category=Top:=}');
+    Error('\P{Is_Indic_Positional_Category=Top:=}');
+    Expect(1, 73536, '\p{Is_Indic_Positional_Category=top}', "");
+    Expect(0, 73536, '\p{^Is_Indic_Positional_Category=top}', "");
+    Expect(0, 73536, '\P{Is_Indic_Positional_Category=top}', "");
+    Expect(1, 73536, '\P{^Is_Indic_Positional_Category=top}', "");
+    Expect(0, 73537, '\p{Is_Indic_Positional_Category=top}', "");
+    Expect(1, 73537, '\p{^Is_Indic_Positional_Category=top}', "");
+    Expect(1, 73537, '\P{Is_Indic_Positional_Category=top}', "");
+    Expect(0, 73537, '\P{^Is_Indic_Positional_Category=top}', "");
+    Expect(1, 73536, '\p{Is_Indic_Positional_Category=-Top}', "");
+    Expect(0, 73536, '\p{^Is_Indic_Positional_Category=-Top}', "");
+    Expect(0, 73536, '\P{Is_Indic_Positional_Category=-Top}', "");
+    Expect(1, 73536, '\P{^Is_Indic_Positional_Category=-Top}', "");
+    Expect(0, 73537, '\p{Is_Indic_Positional_Category=-Top}', "");
+    Expect(1, 73537, '\p{^Is_Indic_Positional_Category=-Top}', "");
+    Expect(1, 73537, '\P{Is_Indic_Positional_Category=-Top}', "");
+    Expect(0, 73537, '\P{^Is_Indic_Positional_Category=-Top}', "");
+    Error('\p{Is_InPC=:=Top}');
+    Error('\P{Is_InPC=:=Top}');
+    Expect(1, 73536, '\p{Is_InPC=top}', "");
+    Expect(0, 73536, '\p{^Is_InPC=top}', "");
+    Expect(0, 73536, '\P{Is_InPC=top}', "");
+    Expect(1, 73536, '\P{^Is_InPC=top}', "");
+    Expect(0, 73537, '\p{Is_InPC=top}', "");
+    Expect(1, 73537, '\p{^Is_InPC=top}', "");
+    Expect(1, 73537, '\P{Is_InPC=top}', "");
+    Expect(0, 73537, '\P{^Is_InPC=top}', "");
+    Expect(1, 73536, '\p{Is_InPC=	 Top}', "");
+    Expect(0, 73536, '\p{^Is_InPC=	 Top}', "");
+    Expect(0, 73536, '\P{Is_InPC=	 Top}', "");
+    Expect(1, 73536, '\P{^Is_InPC=	 Top}', "");
+    Expect(0, 73537, '\p{Is_InPC=	 Top}', "");
+    Expect(1, 73537, '\p{^Is_InPC=	 Top}', "");
+    Expect(1, 73537, '\P{Is_InPC=	 Top}', "");
+    Expect(0, 73537, '\P{^Is_InPC=	 Top}', "");
+    Error('\p{Indic_Positional_Category=/a/--Top_AND_Bottom}');
+    Error('\P{Indic_Positional_Category=/a/--Top_AND_Bottom}');
     Expect(1, 69935, '\p{Indic_Positional_Category=:\ATop_And_Bottom\z:}', "");;
     Expect(0, 69936, '\p{Indic_Positional_Category=:\ATop_And_Bottom\z:}', "");;
     Expect(1, 69935, '\p{Indic_Positional_Category=topandbottom}', "");
@@ -49439,16 +50061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69936, '\P{^Indic_Positional_Category=topandbottom}', "");
     Expect(1, 69935, '\p{Indic_Positional_Category=:\Atopandbottom\z:}', "");;
     Expect(0, 69936, '\p{Indic_Positional_Category=:\Atopandbottom\z:}', "");;
-    Expect(1, 69935, '\p{Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(0, 69935, '\p{^Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(0, 69935, '\P{Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(1, 69935, '\P{^Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(0, 69936, '\p{Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(1, 69936, '\p{^Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(1, 69936, '\P{Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Expect(0, 69936, '\P{^Indic_Positional_Category=  Top_And_BOTTOM}', "");
-    Error('\p{InPC=/a/_ Top_And_Bottom}');
-    Error('\P{InPC=/a/_ Top_And_Bottom}');
+    Expect(1, 69935, '\p{Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(0, 69935, '\p{^Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(0, 69935, '\P{Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(1, 69935, '\P{^Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(0, 69936, '\p{Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(1, 69936, '\p{^Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(1, 69936, '\P{Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Expect(0, 69936, '\P{^Indic_Positional_Category=-	Top_And_BOTTOM}', "");
+    Error('\p{InPC=:=top_and_BOTTOM}');
+    Error('\P{InPC=:=top_and_BOTTOM}');
     Expect(1, 69935, '\p{InPC=:\ATop_And_Bottom\z:}', "");;
     Expect(0, 69936, '\p{InPC=:\ATop_And_Bottom\z:}', "");;
     Expect(1, 69935, '\p{InPC=topandbottom}', "");
@@ -49461,16 +50083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69936, '\P{^InPC=topandbottom}', "");
     Expect(1, 69935, '\p{InPC=:\Atopandbottom\z:}', "");;
     Expect(0, 69936, '\p{InPC=:\Atopandbottom\z:}', "");;
-    Expect(1, 69935, '\p{InPC=_-TOP_AND_bottom}', "");
-    Expect(0, 69935, '\p{^InPC=_-TOP_AND_bottom}', "");
-    Expect(0, 69935, '\P{InPC=_-TOP_AND_bottom}', "");
-    Expect(1, 69935, '\P{^InPC=_-TOP_AND_bottom}', "");
-    Expect(0, 69936, '\p{InPC=_-TOP_AND_bottom}', "");
-    Expect(1, 69936, '\p{^InPC=_-TOP_AND_bottom}', "");
-    Expect(1, 69936, '\P{InPC=_-TOP_AND_bottom}', "");
-    Expect(0, 69936, '\P{^InPC=_-TOP_AND_bottom}', "");
-    Error('\p{Is_Indic_Positional_Category=_-TOP_and_Bottom/a/}');
-    Error('\P{Is_Indic_Positional_Category=_-TOP_and_Bottom/a/}');
+    Expect(1, 69935, '\p{InPC=Top_And_bottom}', "");
+    Expect(0, 69935, '\p{^InPC=Top_And_bottom}', "");
+    Expect(0, 69935, '\P{InPC=Top_And_bottom}', "");
+    Expect(1, 69935, '\P{^InPC=Top_And_bottom}', "");
+    Expect(0, 69936, '\p{InPC=Top_And_bottom}', "");
+    Expect(1, 69936, '\p{^InPC=Top_And_bottom}', "");
+    Expect(1, 69936, '\P{InPC=Top_And_bottom}', "");
+    Expect(0, 69936, '\P{^InPC=Top_And_bottom}', "");
+    Error('\p{Is_Indic_Positional_Category=/a/Top_AND_BOTTOM}');
+    Error('\P{Is_Indic_Positional_Category=/a/Top_AND_BOTTOM}');
     Expect(1, 69935, '\p{Is_Indic_Positional_Category=topandbottom}', "");
     Expect(0, 69935, '\p{^Is_Indic_Positional_Category=topandbottom}', "");
     Expect(0, 69935, '\P{Is_Indic_Positional_Category=topandbottom}', "");
@@ -49479,16 +50101,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69936, '\p{^Is_Indic_Positional_Category=topandbottom}', "");
     Expect(1, 69936, '\P{Is_Indic_Positional_Category=topandbottom}', "");
     Expect(0, 69936, '\P{^Is_Indic_Positional_Category=topandbottom}', "");
-    Expect(1, 69935, '\p{Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(0, 69935, '\p{^Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(0, 69935, '\P{Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(1, 69935, '\P{^Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(0, 69936, '\p{Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(1, 69936, '\p{^Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(1, 69936, '\P{Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Expect(0, 69936, '\P{^Is_Indic_Positional_Category:_-Top_And_Bottom}', "");
-    Error('\p{Is_InPC=:=	_Top_And_BOTTOM}');
-    Error('\P{Is_InPC=:=	_Top_And_BOTTOM}');
+    Expect(1, 69935, '\p{Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(0, 69935, '\p{^Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(0, 69935, '\P{Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(1, 69935, '\P{^Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(0, 69936, '\p{Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(1, 69936, '\p{^Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(1, 69936, '\P{Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Expect(0, 69936, '\P{^Is_Indic_Positional_Category=-_Top_and_Bottom}', "");
+    Error('\p{Is_InPC=/a/--TOP_and_Bottom}');
+    Error('\P{Is_InPC=/a/--TOP_and_Bottom}');
     Expect(1, 69935, '\p{Is_InPC=topandbottom}', "");
     Expect(0, 69935, '\p{^Is_InPC=topandbottom}', "");
     Expect(0, 69935, '\P{Is_InPC=topandbottom}', "");
@@ -49497,16 +50119,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69936, '\p{^Is_InPC=topandbottom}', "");
     Expect(1, 69936, '\P{Is_InPC=topandbottom}', "");
     Expect(0, 69936, '\P{^Is_InPC=topandbottom}', "");
-    Expect(1, 69935, '\p{Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(0, 69935, '\p{^Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(0, 69935, '\P{Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(1, 69935, '\P{^Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(0, 69936, '\p{Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(1, 69936, '\p{^Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(1, 69936, '\P{Is_InPC=_-Top_and_BOTTOM}', "");
-    Expect(0, 69936, '\P{^Is_InPC=_-Top_and_BOTTOM}', "");
-    Error('\p{Indic_Positional_Category:   	top_And_bottom_and_LEFT:=}');
-    Error('\P{Indic_Positional_Category:   	top_And_bottom_and_LEFT:=}');
+    Expect(1, 69935, '\p{Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(0, 69935, '\p{^Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(0, 69935, '\P{Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(1, 69935, '\P{^Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(0, 69936, '\p{Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(1, 69936, '\p{^Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(1, 69936, '\P{Is_InPC= _TOP_and_BOTTOM}', "");
+    Expect(0, 69936, '\P{^Is_InPC= _TOP_and_BOTTOM}', "");
+    Error('\p{Indic_Positional_Category=/a/Top_And_Bottom_and_left}');
+    Error('\P{Indic_Positional_Category=/a/Top_And_Bottom_and_left}');
     Expect(1, 71454, '\p{Indic_Positional_Category=:\ATop_And_Bottom_And_Left\z:}', "");;
     Expect(0, 71455, '\p{Indic_Positional_Category=:\ATop_And_Bottom_And_Left\z:}', "");;
     Expect(1, 71454, '\p{Indic_Positional_Category=topandbottomandleft}', "");
@@ -49519,38 +50141,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71455, '\P{^Indic_Positional_Category=topandbottomandleft}', "");
     Expect(1, 71454, '\p{Indic_Positional_Category=:\Atopandbottomandleft\z:}', "");;
     Expect(0, 71455, '\p{Indic_Positional_Category=:\Atopandbottomandleft\z:}', "");;
-    Expect(1, 71454, '\p{Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(0, 71454, '\p{^Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(0, 71454, '\P{Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(1, 71454, '\P{^Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(0, 71455, '\p{Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(1, 71455, '\p{^Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(1, 71455, '\P{Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Expect(0, 71455, '\P{^Indic_Positional_Category=-	TOP_And_Bottom_AND_Left}', "");
-    Error('\p{InPC:	:=  top_AND_bottom_And_Left}');
-    Error('\P{InPC:	:=  top_AND_bottom_And_Left}');
+    Expect(1, 71454, '\p{Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(0, 71454, '\p{^Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(0, 71454, '\P{Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(1, 71454, '\P{^Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(0, 71455, '\p{Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(1, 71455, '\p{^Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(1, 71455, '\P{Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Expect(0, 71455, '\P{^Indic_Positional_Category=--top_AND_BOTTOM_AND_LEFT}', "");
+    Error('\p{InPC=/a/	top_And_bottom_and_left}');
+    Error('\P{InPC=/a/	top_And_bottom_and_left}');
     Expect(1, 71454, '\p{InPC=:\ATop_And_Bottom_And_Left\z:}', "");;
     Expect(0, 71455, '\p{InPC=:\ATop_And_Bottom_And_Left\z:}', "");;
-    Expect(1, 71454, '\p{InPC:	topandbottomandleft}', "");
-    Expect(0, 71454, '\p{^InPC:	topandbottomandleft}', "");
-    Expect(0, 71454, '\P{InPC:	topandbottomandleft}', "");
-    Expect(1, 71454, '\P{^InPC:	topandbottomandleft}', "");
-    Expect(0, 71455, '\p{InPC:	topandbottomandleft}', "");
-    Expect(1, 71455, '\p{^InPC:	topandbottomandleft}', "");
-    Expect(1, 71455, '\P{InPC:	topandbottomandleft}', "");
-    Expect(0, 71455, '\P{^InPC:	topandbottomandleft}', "");
+    Expect(1, 71454, '\p{InPC=topandbottomandleft}', "");
+    Expect(0, 71454, '\p{^InPC=topandbottomandleft}', "");
+    Expect(0, 71454, '\P{InPC=topandbottomandleft}', "");
+    Expect(1, 71454, '\P{^InPC=topandbottomandleft}', "");
+    Expect(0, 71455, '\p{InPC=topandbottomandleft}', "");
+    Expect(1, 71455, '\p{^InPC=topandbottomandleft}', "");
+    Expect(1, 71455, '\P{InPC=topandbottomandleft}', "");
+    Expect(0, 71455, '\P{^InPC=topandbottomandleft}', "");
     Expect(1, 71454, '\p{InPC=:\Atopandbottomandleft\z:}', "");;
     Expect(0, 71455, '\p{InPC=:\Atopandbottomandleft\z:}', "");;
-    Expect(1, 71454, '\p{InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(0, 71454, '\p{^InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(0, 71454, '\P{InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(1, 71454, '\P{^InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(0, 71455, '\p{InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(1, 71455, '\p{^InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(1, 71455, '\P{InPC=--Top_and_Bottom_and_Left}', "");
-    Expect(0, 71455, '\P{^InPC=--Top_and_Bottom_and_Left}', "");
-    Error('\p{Is_Indic_Positional_Category=/a/-Top_and_Bottom_And_left}');
-    Error('\P{Is_Indic_Positional_Category=/a/-Top_and_Bottom_And_left}');
+    Expect(1, 71454, '\p{InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(0, 71454, '\p{^InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(0, 71454, '\P{InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(1, 71454, '\P{^InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(0, 71455, '\p{InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(1, 71455, '\p{^InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(1, 71455, '\P{InPC:   -Top_AND_Bottom_And_Left}', "");
+    Expect(0, 71455, '\P{^InPC:   -Top_AND_Bottom_And_Left}', "");
+    Error('\p{Is_Indic_Positional_Category=_ top_And_BOTTOM_And_left/a/}');
+    Error('\P{Is_Indic_Positional_Category=_ top_And_BOTTOM_And_left/a/}');
     Expect(1, 71454, '\p{Is_Indic_Positional_Category=topandbottomandleft}', "");
     Expect(0, 71454, '\p{^Is_Indic_Positional_Category=topandbottomandleft}', "");
     Expect(0, 71454, '\P{Is_Indic_Positional_Category=topandbottomandleft}', "");
@@ -49559,16 +50181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71455, '\p{^Is_Indic_Positional_Category=topandbottomandleft}', "");
     Expect(1, 71455, '\P{Is_Indic_Positional_Category=topandbottomandleft}', "");
     Expect(0, 71455, '\P{^Is_Indic_Positional_Category=topandbottomandleft}', "");
-    Expect(1, 71454, '\p{Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(0, 71454, '\p{^Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(0, 71454, '\P{Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(1, 71454, '\P{^Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(0, 71455, '\p{Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(1, 71455, '\p{^Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(1, 71455, '\P{Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Expect(0, 71455, '\P{^Is_Indic_Positional_Category=		top_and_bottom_and_Left}', "");
-    Error('\p{Is_InPC=-:=Top_And_BOTTOM_And_Left}');
-    Error('\P{Is_InPC=-:=Top_And_BOTTOM_And_Left}');
+    Expect(1, 71454, '\p{Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(0, 71454, '\p{^Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(0, 71454, '\P{Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(1, 71454, '\P{^Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(0, 71455, '\p{Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(1, 71455, '\p{^Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(1, 71455, '\P{Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Expect(0, 71455, '\P{^Is_Indic_Positional_Category=-_Top_And_Bottom_AND_left}', "");
+    Error('\p{Is_InPC=/a/--top_And_bottom_AND_LEFT}');
+    Error('\P{Is_InPC=/a/--top_And_bottom_AND_LEFT}');
     Expect(1, 71454, '\p{Is_InPC=topandbottomandleft}', "");
     Expect(0, 71454, '\p{^Is_InPC=topandbottomandleft}', "");
     Expect(0, 71454, '\P{Is_InPC=topandbottomandleft}', "");
@@ -49577,16 +50199,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71455, '\p{^Is_InPC=topandbottomandleft}', "");
     Expect(1, 71455, '\P{Is_InPC=topandbottomandleft}', "");
     Expect(0, 71455, '\P{^Is_InPC=topandbottomandleft}', "");
-    Expect(1, 71454, '\p{Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(0, 71454, '\p{^Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(0, 71454, '\P{Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(1, 71454, '\P{^Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(0, 71455, '\p{Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(1, 71455, '\p{^Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(1, 71455, '\P{Is_InPC= _Top_AND_bottom_And_left}', "");
-    Expect(0, 71455, '\P{^Is_InPC= _Top_AND_bottom_And_left}', "");
-    Error('\p{Indic_Positional_Category=-/a/Top_And_BOTTOM_And_Right}');
-    Error('\P{Indic_Positional_Category=-/a/Top_And_BOTTOM_And_Right}');
+    Expect(1, 71454, '\p{Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(0, 71454, '\p{^Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(0, 71454, '\P{Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(1, 71454, '\P{^Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(0, 71455, '\p{Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(1, 71455, '\p{^Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(1, 71455, '\P{Is_InPC=	Top_And_Bottom_And_left}', "");
+    Expect(0, 71455, '\P{^Is_InPC=	Top_And_Bottom_And_left}', "");
+    Error('\p{Indic_Positional_Category=:=  TOP_AND_Bottom_And_right}');
+    Error('\P{Indic_Positional_Category=:=  TOP_AND_Bottom_And_right}');
     Expect(1, 6973, '\p{Indic_Positional_Category=:\ATop_And_Bottom_And_Right\z:}', "");;
     Expect(0, 6974, '\p{Indic_Positional_Category=:\ATop_And_Bottom_And_Right\z:}', "");;
     Expect(1, 6973, '\p{Indic_Positional_Category=topandbottomandright}', "");
@@ -49599,16 +50221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6974, '\P{^Indic_Positional_Category=topandbottomandright}', "");
     Expect(1, 6973, '\p{Indic_Positional_Category=:\Atopandbottomandright\z:}', "");;
     Expect(0, 6974, '\p{Indic_Positional_Category=:\Atopandbottomandright\z:}', "");;
-    Expect(1, 6973, '\p{Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(0, 6973, '\p{^Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(0, 6973, '\P{Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(1, 6973, '\P{^Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(0, 6974, '\p{Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(1, 6974, '\p{^Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(1, 6974, '\P{Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Expect(0, 6974, '\P{^Indic_Positional_Category: __top_And_Bottom_AND_RIGHT}', "");
-    Error('\p{InPC= :=Top_AND_Bottom_And_Right}');
-    Error('\P{InPC= :=Top_AND_Bottom_And_Right}');
+    Expect(1, 6973, '\p{Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(0, 6973, '\p{^Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(0, 6973, '\P{Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(1, 6973, '\P{^Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(0, 6974, '\p{Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(1, 6974, '\p{^Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(1, 6974, '\P{Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Expect(0, 6974, '\P{^Indic_Positional_Category=_	top_AND_BOTTOM_AND_RIGHT}', "");
+    Error('\p{InPC= /a/Top_AND_BOTTOM_And_Right}');
+    Error('\P{InPC= /a/Top_AND_BOTTOM_And_Right}');
     Expect(1, 6973, '\p{InPC=:\ATop_And_Bottom_And_Right\z:}', "");;
     Expect(0, 6974, '\p{InPC=:\ATop_And_Bottom_And_Right\z:}', "");;
     Expect(1, 6973, '\p{InPC=topandbottomandright}', "");
@@ -49621,52 +50243,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6974, '\P{^InPC=topandbottomandright}', "");
     Expect(1, 6973, '\p{InPC=:\Atopandbottomandright\z:}', "");;
     Expect(0, 6974, '\p{InPC=:\Atopandbottomandright\z:}', "");;
-    Expect(1, 6973, '\p{InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(0, 6973, '\p{^InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(0, 6973, '\P{InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(1, 6973, '\P{^InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(0, 6974, '\p{InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(1, 6974, '\p{^InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(1, 6974, '\P{InPC:   - Top_And_BOTTOM_And_right}', "");
-    Expect(0, 6974, '\P{^InPC:   - Top_And_BOTTOM_And_right}', "");
-    Error('\p{Is_Indic_Positional_Category= -top_And_bottom_And_right/a/}');
-    Error('\P{Is_Indic_Positional_Category= -top_And_bottom_And_right/a/}');
-    Expect(1, 6973, '\p{Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(0, 6973, '\p{^Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(0, 6973, '\P{Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(1, 6973, '\P{^Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(0, 6974, '\p{Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(1, 6974, '\p{^Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(1, 6974, '\P{Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(0, 6974, '\P{^Is_Indic_Positional_Category:topandbottomandright}', "");
-    Expect(1, 6973, '\p{Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(0, 6973, '\p{^Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(0, 6973, '\P{Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(1, 6973, '\P{^Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(0, 6974, '\p{Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(1, 6974, '\p{^Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(1, 6974, '\P{Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Expect(0, 6974, '\P{^Is_Indic_Positional_Category= _Top_And_Bottom_And_Right}', "");
-    Error('\p{Is_InPC=	_Top_And_Bottom_AND_RIGHT/a/}');
-    Error('\P{Is_InPC=	_Top_And_Bottom_AND_RIGHT/a/}');
-    Expect(1, 6973, '\p{Is_InPC:topandbottomandright}', "");
-    Expect(0, 6973, '\p{^Is_InPC:topandbottomandright}', "");
-    Expect(0, 6973, '\P{Is_InPC:topandbottomandright}', "");
-    Expect(1, 6973, '\P{^Is_InPC:topandbottomandright}', "");
-    Expect(0, 6974, '\p{Is_InPC:topandbottomandright}', "");
-    Expect(1, 6974, '\p{^Is_InPC:topandbottomandright}', "");
-    Expect(1, 6974, '\P{Is_InPC:topandbottomandright}', "");
-    Expect(0, 6974, '\P{^Is_InPC:topandbottomandright}', "");
-    Expect(1, 6973, '\p{Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(0, 6973, '\p{^Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(0, 6973, '\P{Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(1, 6973, '\P{^Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(0, 6974, '\p{Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(1, 6974, '\p{^Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(1, 6974, '\P{Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Expect(0, 6974, '\P{^Is_InPC=__TOP_And_Bottom_AND_Right}', "");
-    Error('\p{Indic_Positional_Category=:=-Top_And_left}');
-    Error('\P{Indic_Positional_Category=:=-Top_And_left}');
+    Expect(1, 6973, '\p{InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(0, 6973, '\p{^InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(0, 6973, '\P{InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(1, 6973, '\P{^InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(0, 6974, '\p{InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(1, 6974, '\p{^InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(1, 6974, '\P{InPC=	_top_And_BOTTOM_and_right}', "");
+    Expect(0, 6974, '\P{^InPC=	_top_And_BOTTOM_and_right}', "");
+    Error('\p{Is_Indic_Positional_Category:   	Top_And_Bottom_AND_Right/a/}');
+    Error('\P{Is_Indic_Positional_Category:   	Top_And_Bottom_AND_Right/a/}');
+    Expect(1, 6973, '\p{Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(0, 6973, '\p{^Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(0, 6973, '\P{Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(1, 6973, '\P{^Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(0, 6974, '\p{Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(1, 6974, '\p{^Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(1, 6974, '\P{Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(0, 6974, '\P{^Is_Indic_Positional_Category=topandbottomandright}', "");
+    Expect(1, 6973, '\p{Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(0, 6973, '\p{^Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(0, 6973, '\P{Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(1, 6973, '\P{^Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(0, 6974, '\p{Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(1, 6974, '\p{^Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(1, 6974, '\P{Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Expect(0, 6974, '\P{^Is_Indic_Positional_Category=_	Top_AND_BOTTOM_And_RIGHT}', "");
+    Error('\p{Is_InPC=	_Top_and_bottom_And_Right/a/}');
+    Error('\P{Is_InPC=	_Top_and_bottom_And_Right/a/}');
+    Expect(1, 6973, '\p{Is_InPC=topandbottomandright}', "");
+    Expect(0, 6973, '\p{^Is_InPC=topandbottomandright}', "");
+    Expect(0, 6973, '\P{Is_InPC=topandbottomandright}', "");
+    Expect(1, 6973, '\P{^Is_InPC=topandbottomandright}', "");
+    Expect(0, 6974, '\p{Is_InPC=topandbottomandright}', "");
+    Expect(1, 6974, '\p{^Is_InPC=topandbottomandright}', "");
+    Expect(1, 6974, '\P{Is_InPC=topandbottomandright}', "");
+    Expect(0, 6974, '\P{^Is_InPC=topandbottomandright}', "");
+    Expect(1, 6973, '\p{Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(0, 6973, '\p{^Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(0, 6973, '\P{Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(1, 6973, '\P{^Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(0, 6974, '\p{Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(1, 6974, '\p{^Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(1, 6974, '\P{Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Expect(0, 6974, '\P{^Is_InPC=-	Top_and_Bottom_And_Right}', "");
+    Error('\p{Indic_Positional_Category=_-top_And_Left:=}');
+    Error('\P{Indic_Positional_Category=_-top_And_Left:=}');
     Expect(1, 71097, '\p{Indic_Positional_Category=:\ATop_And_Left\z:}', "");;
     Expect(0, 71098, '\p{Indic_Positional_Category=:\ATop_And_Left\z:}', "");;
     Expect(1, 71097, '\p{Indic_Positional_Category=topandleft}', "");
@@ -49679,16 +50301,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71098, '\P{^Indic_Positional_Category=topandleft}', "");
     Expect(1, 71097, '\p{Indic_Positional_Category=:\Atopandleft\z:}', "");;
     Expect(0, 71098, '\p{Indic_Positional_Category=:\Atopandleft\z:}', "");;
-    Expect(1, 71097, '\p{Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(0, 71097, '\p{^Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(0, 71097, '\P{Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(1, 71097, '\P{^Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(0, 71098, '\p{Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(1, 71098, '\p{^Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(1, 71098, '\P{Indic_Positional_Category=	_Top_And_Left}', "");
-    Expect(0, 71098, '\P{^Indic_Positional_Category=	_Top_And_Left}', "");
-    Error('\p{InPC:   /a/-Top_and_Left}');
-    Error('\P{InPC:   /a/-Top_and_Left}');
+    Expect(1, 71097, '\p{Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(0, 71097, '\p{^Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(0, 71097, '\P{Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(1, 71097, '\P{^Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(0, 71098, '\p{Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(1, 71098, '\p{^Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(1, 71098, '\P{Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Expect(0, 71098, '\P{^Indic_Positional_Category:_-top_AND_LEFT}', "");
+    Error('\p{InPC: :=__TOP_AND_LEFT}');
+    Error('\P{InPC: :=__TOP_AND_LEFT}');
     Expect(1, 71097, '\p{InPC=:\ATop_And_Left\z:}', "");;
     Expect(0, 71098, '\p{InPC=:\ATop_And_Left\z:}', "");;
     Expect(1, 71097, '\p{InPC=topandleft}', "");
@@ -49701,96 +50323,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71098, '\P{^InPC=topandleft}', "");
     Expect(1, 71097, '\p{InPC=:\Atopandleft\z:}', "");;
     Expect(0, 71098, '\p{InPC=:\Atopandleft\z:}', "");;
-    Expect(1, 71097, '\p{InPC= TOP_And_Left}', "");
-    Expect(0, 71097, '\p{^InPC= TOP_And_Left}', "");
-    Expect(0, 71097, '\P{InPC= TOP_And_Left}', "");
-    Expect(1, 71097, '\P{^InPC= TOP_And_Left}', "");
-    Expect(0, 71098, '\p{InPC= TOP_And_Left}', "");
-    Expect(1, 71098, '\p{^InPC= TOP_And_Left}', "");
-    Expect(1, 71098, '\P{InPC= TOP_And_Left}', "");
-    Expect(0, 71098, '\P{^InPC= TOP_And_Left}', "");
-    Error('\p{Is_Indic_Positional_Category:/a/ 	Top_AND_Left}');
-    Error('\P{Is_Indic_Positional_Category:/a/ 	Top_AND_Left}');
-    Expect(1, 71097, '\p{Is_Indic_Positional_Category: topandleft}', "");
-    Expect(0, 71097, '\p{^Is_Indic_Positional_Category: topandleft}', "");
-    Expect(0, 71097, '\P{Is_Indic_Positional_Category: topandleft}', "");
-    Expect(1, 71097, '\P{^Is_Indic_Positional_Category: topandleft}', "");
-    Expect(0, 71098, '\p{Is_Indic_Positional_Category: topandleft}', "");
-    Expect(1, 71098, '\p{^Is_Indic_Positional_Category: topandleft}', "");
-    Expect(1, 71098, '\P{Is_Indic_Positional_Category: topandleft}', "");
-    Expect(0, 71098, '\P{^Is_Indic_Positional_Category: topandleft}', "");
-    Expect(1, 71097, '\p{Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(0, 71097, '\p{^Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(0, 71097, '\P{Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(1, 71097, '\P{^Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(0, 71098, '\p{Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(1, 71098, '\p{^Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(1, 71098, '\P{Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Expect(0, 71098, '\P{^Is_Indic_Positional_Category=TOP_AND_Left}', "");
-    Error('\p{Is_InPC=_/a/top_And_left}');
-    Error('\P{Is_InPC=_/a/top_And_left}');
-    Expect(1, 71097, '\p{Is_InPC:	topandleft}', "");
-    Expect(0, 71097, '\p{^Is_InPC:	topandleft}', "");
-    Expect(0, 71097, '\P{Is_InPC:	topandleft}', "");
-    Expect(1, 71097, '\P{^Is_InPC:	topandleft}', "");
-    Expect(0, 71098, '\p{Is_InPC:	topandleft}', "");
-    Expect(1, 71098, '\p{^Is_InPC:	topandleft}', "");
-    Expect(1, 71098, '\P{Is_InPC:	topandleft}', "");
-    Expect(0, 71098, '\P{^Is_InPC:	topandleft}', "");
-    Expect(1, 71097, '\p{Is_InPC=--TOP_and_LEFT}', "");
-    Expect(0, 71097, '\p{^Is_InPC=--TOP_and_LEFT}', "");
-    Expect(0, 71097, '\P{Is_InPC=--TOP_and_LEFT}', "");
-    Expect(1, 71097, '\P{^Is_InPC=--TOP_and_LEFT}', "");
-    Expect(0, 71098, '\p{Is_InPC=--TOP_and_LEFT}', "");
-    Expect(1, 71098, '\p{^Is_InPC=--TOP_and_LEFT}', "");
-    Expect(1, 71098, '\P{Is_InPC=--TOP_and_LEFT}', "");
-    Expect(0, 71098, '\P{^Is_InPC=--TOP_and_LEFT}', "");
-    Error('\p{Indic_Positional_Category=:=_	top_and_Left_and_Right}');
-    Error('\P{Indic_Positional_Category=:=_	top_and_Left_and_Right}');
+    Expect(1, 71097, '\p{InPC=	_Top_and_left}', "");
+    Expect(0, 71097, '\p{^InPC=	_Top_and_left}', "");
+    Expect(0, 71097, '\P{InPC=	_Top_and_left}', "");
+    Expect(1, 71097, '\P{^InPC=	_Top_and_left}', "");
+    Expect(0, 71098, '\p{InPC=	_Top_and_left}', "");
+    Expect(1, 71098, '\p{^InPC=	_Top_and_left}', "");
+    Expect(1, 71098, '\P{InPC=	_Top_and_left}', "");
+    Expect(0, 71098, '\P{^InPC=	_Top_and_left}', "");
+    Error('\p{Is_Indic_Positional_Category=-top_and_Left:=}');
+    Error('\P{Is_Indic_Positional_Category=-top_and_Left:=}');
+    Expect(1, 71097, '\p{Is_Indic_Positional_Category=topandleft}', "");
+    Expect(0, 71097, '\p{^Is_Indic_Positional_Category=topandleft}', "");
+    Expect(0, 71097, '\P{Is_Indic_Positional_Category=topandleft}', "");
+    Expect(1, 71097, '\P{^Is_Indic_Positional_Category=topandleft}', "");
+    Expect(0, 71098, '\p{Is_Indic_Positional_Category=topandleft}', "");
+    Expect(1, 71098, '\p{^Is_Indic_Positional_Category=topandleft}', "");
+    Expect(1, 71098, '\P{Is_Indic_Positional_Category=topandleft}', "");
+    Expect(0, 71098, '\P{^Is_Indic_Positional_Category=topandleft}', "");
+    Expect(1, 71097, '\p{Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(0, 71097, '\p{^Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(0, 71097, '\P{Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(1, 71097, '\P{^Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(0, 71098, '\p{Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(1, 71098, '\p{^Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(1, 71098, '\P{Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Expect(0, 71098, '\P{^Is_Indic_Positional_Category:     Top_And_Left}', "");
+    Error('\p{Is_InPC=:=_	TOP_And_Left}');
+    Error('\P{Is_InPC=:=_	TOP_And_Left}');
+    Expect(1, 71097, '\p{Is_InPC=topandleft}', "");
+    Expect(0, 71097, '\p{^Is_InPC=topandleft}', "");
+    Expect(0, 71097, '\P{Is_InPC=topandleft}', "");
+    Expect(1, 71097, '\P{^Is_InPC=topandleft}', "");
+    Expect(0, 71098, '\p{Is_InPC=topandleft}', "");
+    Expect(1, 71098, '\p{^Is_InPC=topandleft}', "");
+    Expect(1, 71098, '\P{Is_InPC=topandleft}', "");
+    Expect(0, 71098, '\P{^Is_InPC=topandleft}', "");
+    Expect(1, 71097, '\p{Is_InPC=Top_AND_LEFT}', "");
+    Expect(0, 71097, '\p{^Is_InPC=Top_AND_LEFT}', "");
+    Expect(0, 71097, '\P{Is_InPC=Top_AND_LEFT}', "");
+    Expect(1, 71097, '\P{^Is_InPC=Top_AND_LEFT}', "");
+    Expect(0, 71098, '\p{Is_InPC=Top_AND_LEFT}', "");
+    Expect(1, 71098, '\p{^Is_InPC=Top_AND_LEFT}', "");
+    Expect(1, 71098, '\P{Is_InPC=Top_AND_LEFT}', "");
+    Expect(0, 71098, '\P{^Is_InPC=Top_AND_LEFT}', "");
+    Error('\p{Indic_Positional_Category:   _TOP_And_Left_And_Right:=}');
+    Error('\P{Indic_Positional_Category:   _TOP_And_Left_And_Right:=}');
     Expect(1, 71099, '\p{Indic_Positional_Category=:\ATop_And_Left_And_Right\z:}', "");;
     Expect(0, 71100, '\p{Indic_Positional_Category=:\ATop_And_Left_And_Right\z:}', "");;
-    Expect(1, 71099, '\p{Indic_Positional_Category: topandleftandright}', "");
-    Expect(0, 71099, '\p{^Indic_Positional_Category: topandleftandright}', "");
-    Expect(0, 71099, '\P{Indic_Positional_Category: topandleftandright}', "");
-    Expect(1, 71099, '\P{^Indic_Positional_Category: topandleftandright}', "");
-    Expect(0, 71100, '\p{Indic_Positional_Category: topandleftandright}', "");
-    Expect(1, 71100, '\p{^Indic_Positional_Category: topandleftandright}', "");
-    Expect(1, 71100, '\P{Indic_Positional_Category: topandleftandright}', "");
-    Expect(0, 71100, '\P{^Indic_Positional_Category: topandleftandright}', "");
+    Expect(1, 71099, '\p{Indic_Positional_Category=topandleftandright}', "");
+    Expect(0, 71099, '\p{^Indic_Positional_Category=topandleftandright}', "");
+    Expect(0, 71099, '\P{Indic_Positional_Category=topandleftandright}', "");
+    Expect(1, 71099, '\P{^Indic_Positional_Category=topandleftandright}', "");
+    Expect(0, 71100, '\p{Indic_Positional_Category=topandleftandright}', "");
+    Expect(1, 71100, '\p{^Indic_Positional_Category=topandleftandright}', "");
+    Expect(1, 71100, '\P{Indic_Positional_Category=topandleftandright}', "");
+    Expect(0, 71100, '\P{^Indic_Positional_Category=topandleftandright}', "");
     Expect(1, 71099, '\p{Indic_Positional_Category=:\Atopandleftandright\z:}', "");;
     Expect(0, 71100, '\p{Indic_Positional_Category=:\Atopandleftandright\z:}', "");;
-    Expect(1, 71099, '\p{Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(0, 71099, '\p{^Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(0, 71099, '\P{Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(1, 71099, '\P{^Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(0, 71100, '\p{Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(1, 71100, '\p{^Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(1, 71100, '\P{Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Expect(0, 71100, '\P{^Indic_Positional_Category=-Top_And_Left_And_Right}', "");
-    Error('\p{InPC=	/a/top_And_Left_and_Right}');
-    Error('\P{InPC=	/a/top_And_Left_and_Right}');
+    Expect(1, 71099, '\p{Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(0, 71099, '\p{^Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(0, 71099, '\P{Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(1, 71099, '\P{^Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(0, 71100, '\p{Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(1, 71100, '\p{^Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(1, 71100, '\P{Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Expect(0, 71100, '\P{^Indic_Positional_Category=Top_And_Left_AND_Right}', "");
+    Error('\p{InPC=/a/  TOP_And_LEFT_And_right}');
+    Error('\P{InPC=/a/  TOP_And_LEFT_And_right}');
     Expect(1, 71099, '\p{InPC=:\ATop_And_Left_And_Right\z:}', "");;
     Expect(0, 71100, '\p{InPC=:\ATop_And_Left_And_Right\z:}', "");;
-    Expect(1, 71099, '\p{InPC=topandleftandright}', "");
-    Expect(0, 71099, '\p{^InPC=topandleftandright}', "");
-    Expect(0, 71099, '\P{InPC=topandleftandright}', "");
-    Expect(1, 71099, '\P{^InPC=topandleftandright}', "");
-    Expect(0, 71100, '\p{InPC=topandleftandright}', "");
-    Expect(1, 71100, '\p{^InPC=topandleftandright}', "");
-    Expect(1, 71100, '\P{InPC=topandleftandright}', "");
-    Expect(0, 71100, '\P{^InPC=topandleftandright}', "");
+    Expect(1, 71099, '\p{InPC:	topandleftandright}', "");
+    Expect(0, 71099, '\p{^InPC:	topandleftandright}', "");
+    Expect(0, 71099, '\P{InPC:	topandleftandright}', "");
+    Expect(1, 71099, '\P{^InPC:	topandleftandright}', "");
+    Expect(0, 71100, '\p{InPC:	topandleftandright}', "");
+    Expect(1, 71100, '\p{^InPC:	topandleftandright}', "");
+    Expect(1, 71100, '\P{InPC:	topandleftandright}', "");
+    Expect(0, 71100, '\P{^InPC:	topandleftandright}', "");
     Expect(1, 71099, '\p{InPC=:\Atopandleftandright\z:}', "");;
     Expect(0, 71100, '\p{InPC=:\Atopandleftandright\z:}', "");;
-    Expect(1, 71099, '\p{InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(0, 71099, '\p{^InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(0, 71099, '\P{InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(1, 71099, '\P{^InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(0, 71100, '\p{InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(1, 71100, '\p{^InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(1, 71100, '\P{InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Expect(0, 71100, '\P{^InPC= _TOP_AND_Left_and_RIGHT}', "");
-    Error('\p{Is_Indic_Positional_Category=-	top_AND_Left_And_RIGHT:=}');
-    Error('\P{Is_Indic_Positional_Category=-	top_AND_Left_And_RIGHT:=}');
+    Expect(1, 71099, '\p{InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(0, 71099, '\p{^InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(0, 71099, '\P{InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(1, 71099, '\P{^InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(0, 71100, '\p{InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(1, 71100, '\p{^InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(1, 71100, '\P{InPC=_ Top_And_Left_AND_Right}', "");
+    Expect(0, 71100, '\P{^InPC=_ Top_And_Left_AND_Right}', "");
+    Error('\p{Is_Indic_Positional_Category=-_Top_And_Left_and_RIGHT/a/}');
+    Error('\P{Is_Indic_Positional_Category=-_Top_And_Left_and_RIGHT/a/}');
     Expect(1, 71099, '\p{Is_Indic_Positional_Category=topandleftandright}', "");
     Expect(0, 71099, '\p{^Is_Indic_Positional_Category=topandleftandright}', "");
     Expect(0, 71099, '\P{Is_Indic_Positional_Category=topandleftandright}', "");
@@ -49799,34 +50421,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71100, '\p{^Is_Indic_Positional_Category=topandleftandright}', "");
     Expect(1, 71100, '\P{Is_Indic_Positional_Category=topandleftandright}', "");
     Expect(0, 71100, '\P{^Is_Indic_Positional_Category=topandleftandright}', "");
-    Expect(1, 71099, '\p{Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(0, 71099, '\p{^Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(0, 71099, '\P{Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(1, 71099, '\P{^Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(0, 71100, '\p{Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(1, 71100, '\p{^Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(1, 71100, '\P{Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Expect(0, 71100, '\P{^Is_Indic_Positional_Category=  Top_And_LEFT_And_right}', "");
-    Error('\p{Is_InPC=:=	top_AND_Left_And_Right}');
-    Error('\P{Is_InPC=:=	top_AND_Left_And_Right}');
-    Expect(1, 71099, '\p{Is_InPC:	topandleftandright}', "");
-    Expect(0, 71099, '\p{^Is_InPC:	topandleftandright}', "");
-    Expect(0, 71099, '\P{Is_InPC:	topandleftandright}', "");
-    Expect(1, 71099, '\P{^Is_InPC:	topandleftandright}', "");
-    Expect(0, 71100, '\p{Is_InPC:	topandleftandright}', "");
-    Expect(1, 71100, '\p{^Is_InPC:	topandleftandright}', "");
-    Expect(1, 71100, '\P{Is_InPC:	topandleftandright}', "");
-    Expect(0, 71100, '\P{^Is_InPC:	topandleftandright}', "");
-    Expect(1, 71099, '\p{Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(0, 71099, '\p{^Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(0, 71099, '\P{Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(1, 71099, '\P{^Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(0, 71100, '\p{Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(1, 71100, '\p{^Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(1, 71100, '\P{Is_InPC=-_top_AND_left_And_Right}', "");
-    Expect(0, 71100, '\P{^Is_InPC=-_top_AND_left_And_Right}', "");
-    Error('\p{Indic_Positional_Category:   	Top_AND_RIGHT:=}');
-    Error('\P{Indic_Positional_Category:   	Top_AND_RIGHT:=}');
+    Expect(1, 71099, '\p{Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(0, 71099, '\p{^Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(0, 71099, '\P{Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(1, 71099, '\P{^Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(0, 71100, '\p{Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(1, 71100, '\p{^Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(1, 71100, '\P{Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Expect(0, 71100, '\P{^Is_Indic_Positional_Category=-top_And_LEFT_AND_right}', "");
+    Error('\p{Is_InPC=:=	-TOP_And_Left_AND_right}');
+    Error('\P{Is_InPC=:=	-TOP_And_Left_AND_right}');
+    Expect(1, 71099, '\p{Is_InPC=topandleftandright}', "");
+    Expect(0, 71099, '\p{^Is_InPC=topandleftandright}', "");
+    Expect(0, 71099, '\P{Is_InPC=topandleftandright}', "");
+    Expect(1, 71099, '\P{^Is_InPC=topandleftandright}', "");
+    Expect(0, 71100, '\p{Is_InPC=topandleftandright}', "");
+    Expect(1, 71100, '\p{^Is_InPC=topandleftandright}', "");
+    Expect(1, 71100, '\P{Is_InPC=topandleftandright}', "");
+    Expect(0, 71100, '\P{^Is_InPC=topandleftandright}', "");
+    Expect(1, 71099, '\p{Is_InPC= top_and_left_and_Right}', "");
+    Expect(0, 71099, '\p{^Is_InPC= top_and_left_and_Right}', "");
+    Expect(0, 71099, '\P{Is_InPC= top_and_left_and_Right}', "");
+    Expect(1, 71099, '\P{^Is_InPC= top_and_left_and_Right}', "");
+    Expect(0, 71100, '\p{Is_InPC= top_and_left_and_Right}', "");
+    Expect(1, 71100, '\p{^Is_InPC= top_and_left_and_Right}', "");
+    Expect(1, 71100, '\P{Is_InPC= top_and_left_and_Right}', "");
+    Expect(0, 71100, '\P{^Is_InPC= top_and_left_and_Right}', "");
+    Error('\p{Indic_Positional_Category=/a/TOP_and_right}');
+    Error('\P{Indic_Positional_Category=/a/TOP_and_right}');
     Expect(1, 70195, '\p{Indic_Positional_Category=:\ATop_And_Right\z:}', "");;
     Expect(0, 70196, '\p{Indic_Positional_Category=:\ATop_And_Right\z:}', "");;
     Expect(1, 70195, '\p{Indic_Positional_Category=topandright}', "");
@@ -49839,16 +50461,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 70196, '\P{^Indic_Positional_Category=topandright}', "");
     Expect(1, 70195, '\p{Indic_Positional_Category=:\Atopandright\z:}', "");;
     Expect(0, 70196, '\p{Indic_Positional_Category=:\Atopandright\z:}', "");;
-    Expect(1, 70195, '\p{Indic_Positional_Category=	top_And_Right}', "");
-    Expect(0, 70195, '\p{^Indic_Positional_Category=	top_And_Right}', "");
-    Expect(0, 70195, '\P{Indic_Positional_Category=	top_And_Right}', "");
-    Expect(1, 70195, '\P{^Indic_Positional_Category=	top_And_Right}', "");
-    Expect(0, 70196, '\p{Indic_Positional_Category=	top_And_Right}', "");
-    Expect(1, 70196, '\p{^Indic_Positional_Category=	top_And_Right}', "");
-    Expect(1, 70196, '\P{Indic_Positional_Category=	top_And_Right}', "");
-    Expect(0, 70196, '\P{^Indic_Positional_Category=	top_And_Right}', "");
-    Error('\p{InPC=	top_and_Right:=}');
-    Error('\P{InPC=	top_and_Right:=}');
+    Expect(1, 70195, '\p{Indic_Positional_Category= top_And_Right}', "");
+    Expect(0, 70195, '\p{^Indic_Positional_Category= top_And_Right}', "");
+    Expect(0, 70195, '\P{Indic_Positional_Category= top_And_Right}', "");
+    Expect(1, 70195, '\P{^Indic_Positional_Category= top_And_Right}', "");
+    Expect(0, 70196, '\p{Indic_Positional_Category= top_And_Right}', "");
+    Expect(1, 70196, '\p{^Indic_Positional_Category= top_And_Right}', "");
+    Expect(1, 70196, '\P{Indic_Positional_Category= top_And_Right}', "");
+    Expect(0, 70196, '\P{^Indic_Positional_Category= top_And_Right}', "");
+    Error('\p{InPC=_/a/Top_AND_right}');
+    Error('\P{InPC=_/a/Top_AND_right}');
     Expect(1, 70195, '\p{InPC=:\ATop_And_Right\z:}', "");;
     Expect(0, 70196, '\p{InPC=:\ATop_And_Right\z:}', "");;
     Expect(1, 70195, '\p{InPC=topandright}', "");
@@ -49861,16 +50483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 70196, '\P{^InPC=topandright}', "");
     Expect(1, 70195, '\p{InPC=:\Atopandright\z:}', "");;
     Expect(0, 70196, '\p{InPC=:\Atopandright\z:}', "");;
-    Expect(1, 70195, '\p{InPC=-	top_And_Right}', "");
-    Expect(0, 70195, '\p{^InPC=-	top_And_Right}', "");
-    Expect(0, 70195, '\P{InPC=-	top_And_Right}', "");
-    Expect(1, 70195, '\P{^InPC=-	top_And_Right}', "");
-    Expect(0, 70196, '\p{InPC=-	top_And_Right}', "");
-    Expect(1, 70196, '\p{^InPC=-	top_And_Right}', "");
-    Expect(1, 70196, '\P{InPC=-	top_And_Right}', "");
-    Expect(0, 70196, '\P{^InPC=-	top_And_Right}', "");
-    Error('\p{Is_Indic_Positional_Category=_/a/Top_and_Right}');
-    Error('\P{Is_Indic_Positional_Category=_/a/Top_and_Right}');
+    Expect(1, 70195, '\p{InPC=	Top_AND_RIGHT}', "");
+    Expect(0, 70195, '\p{^InPC=	Top_AND_RIGHT}', "");
+    Expect(0, 70195, '\P{InPC=	Top_AND_RIGHT}', "");
+    Expect(1, 70195, '\P{^InPC=	Top_AND_RIGHT}', "");
+    Expect(0, 70196, '\p{InPC=	Top_AND_RIGHT}', "");
+    Expect(1, 70196, '\p{^InPC=	Top_AND_RIGHT}', "");
+    Expect(1, 70196, '\P{InPC=	Top_AND_RIGHT}', "");
+    Expect(0, 70196, '\P{^InPC=	Top_AND_RIGHT}', "");
+    Error('\p{Is_Indic_Positional_Category= :=top_And_Right}');
+    Error('\P{Is_Indic_Positional_Category= :=top_And_Right}');
     Expect(1, 70195, '\p{Is_Indic_Positional_Category=topandright}', "");
     Expect(0, 70195, '\p{^Is_Indic_Positional_Category=topandright}', "");
     Expect(0, 70195, '\P{Is_Indic_Positional_Category=topandright}', "");
@@ -49879,78 +50501,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 70196, '\p{^Is_Indic_Positional_Category=topandright}', "");
     Expect(1, 70196, '\P{Is_Indic_Positional_Category=topandright}', "");
     Expect(0, 70196, '\P{^Is_Indic_Positional_Category=topandright}', "");
-    Expect(1, 70195, '\p{Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(0, 70195, '\p{^Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(0, 70195, '\P{Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(1, 70195, '\P{^Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(0, 70196, '\p{Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(1, 70196, '\p{^Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(1, 70196, '\P{Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Expect(0, 70196, '\P{^Is_Indic_Positional_Category=	 Top_And_Right}', "");
-    Error('\p{Is_InPC=-:=Top_And_right}');
-    Error('\P{Is_InPC=-:=Top_And_right}');
-    Expect(1, 70195, '\p{Is_InPC=topandright}', "");
-    Expect(0, 70195, '\p{^Is_InPC=topandright}', "");
-    Expect(0, 70195, '\P{Is_InPC=topandright}', "");
-    Expect(1, 70195, '\P{^Is_InPC=topandright}', "");
-    Expect(0, 70196, '\p{Is_InPC=topandright}', "");
-    Expect(1, 70196, '\p{^Is_InPC=topandright}', "");
-    Expect(1, 70196, '\P{Is_InPC=topandright}', "");
-    Expect(0, 70196, '\P{^Is_InPC=topandright}', "");
-    Expect(1, 70195, '\p{Is_InPC=__Top_and_Right}', "");
-    Expect(0, 70195, '\p{^Is_InPC=__Top_and_Right}', "");
-    Expect(0, 70195, '\P{Is_InPC=__Top_and_Right}', "");
-    Expect(1, 70195, '\P{^Is_InPC=__Top_and_Right}', "");
-    Expect(0, 70196, '\p{Is_InPC=__Top_and_Right}', "");
-    Expect(1, 70196, '\p{^Is_InPC=__Top_and_Right}', "");
-    Expect(1, 70196, '\P{Is_InPC=__Top_and_Right}', "");
-    Expect(0, 70196, '\P{^Is_InPC=__Top_and_Right}', "");
-    Error('\p{Indic_Positional_Category= -VISUAL_ORDER_Left/a/}');
-    Error('\P{Indic_Positional_Category= -VISUAL_ORDER_Left/a/}');
+    Expect(1, 70195, '\p{Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(0, 70195, '\p{^Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(0, 70195, '\P{Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(1, 70195, '\P{^Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(0, 70196, '\p{Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(1, 70196, '\p{^Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(1, 70196, '\P{Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Expect(0, 70196, '\P{^Is_Indic_Positional_Category=_	Top_AND_Right}', "");
+    Error('\p{Is_InPC=:=		TOP_and_RIGHT}');
+    Error('\P{Is_InPC=:=		TOP_and_RIGHT}');
+    Expect(1, 70195, '\p{Is_InPC:	topandright}', "");
+    Expect(0, 70195, '\p{^Is_InPC:	topandright}', "");
+    Expect(0, 70195, '\P{Is_InPC:	topandright}', "");
+    Expect(1, 70195, '\P{^Is_InPC:	topandright}', "");
+    Expect(0, 70196, '\p{Is_InPC:	topandright}', "");
+    Expect(1, 70196, '\p{^Is_InPC:	topandright}', "");
+    Expect(1, 70196, '\P{Is_InPC:	topandright}', "");
+    Expect(0, 70196, '\P{^Is_InPC:	topandright}', "");
+    Expect(1, 70195, '\p{Is_InPC= _top_AND_Right}', "");
+    Expect(0, 70195, '\p{^Is_InPC= _top_AND_Right}', "");
+    Expect(0, 70195, '\P{Is_InPC= _top_AND_Right}', "");
+    Expect(1, 70195, '\P{^Is_InPC= _top_AND_Right}', "");
+    Expect(0, 70196, '\p{Is_InPC= _top_AND_Right}', "");
+    Expect(1, 70196, '\p{^Is_InPC= _top_AND_Right}', "");
+    Expect(1, 70196, '\P{Is_InPC= _top_AND_Right}', "");
+    Expect(0, 70196, '\P{^Is_InPC= _top_AND_Right}', "");
+    Error('\p{Indic_Positional_Category: 	/a/visual_Order_Left}');
+    Error('\P{Indic_Positional_Category: 	/a/visual_Order_Left}');
     Expect(1, 43708, '\p{Indic_Positional_Category=:\AVisual_Order_Left\z:}', "");;
     Expect(0, 43709, '\p{Indic_Positional_Category=:\AVisual_Order_Left\z:}', "");;
-    Expect(1, 43708, '\p{Indic_Positional_Category: visualorderleft}', "");
-    Expect(0, 43708, '\p{^Indic_Positional_Category: visualorderleft}', "");
-    Expect(0, 43708, '\P{Indic_Positional_Category: visualorderleft}', "");
-    Expect(1, 43708, '\P{^Indic_Positional_Category: visualorderleft}', "");
-    Expect(0, 43709, '\p{Indic_Positional_Category: visualorderleft}', "");
-    Expect(1, 43709, '\p{^Indic_Positional_Category: visualorderleft}', "");
-    Expect(1, 43709, '\P{Indic_Positional_Category: visualorderleft}', "");
-    Expect(0, 43709, '\P{^Indic_Positional_Category: visualorderleft}', "");
+    Expect(1, 43708, '\p{Indic_Positional_Category=visualorderleft}', "");
+    Expect(0, 43708, '\p{^Indic_Positional_Category=visualorderleft}', "");
+    Expect(0, 43708, '\P{Indic_Positional_Category=visualorderleft}', "");
+    Expect(1, 43708, '\P{^Indic_Positional_Category=visualorderleft}', "");
+    Expect(0, 43709, '\p{Indic_Positional_Category=visualorderleft}', "");
+    Expect(1, 43709, '\p{^Indic_Positional_Category=visualorderleft}', "");
+    Expect(1, 43709, '\P{Indic_Positional_Category=visualorderleft}', "");
+    Expect(0, 43709, '\P{^Indic_Positional_Category=visualorderleft}', "");
     Expect(1, 43708, '\p{Indic_Positional_Category=:\Avisualorderleft\z:}', "");;
     Expect(0, 43709, '\p{Indic_Positional_Category=:\Avisualorderleft\z:}', "");;
-    Expect(1, 43708, '\p{Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(0, 43708, '\p{^Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(0, 43708, '\P{Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(1, 43708, '\P{^Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(0, 43709, '\p{Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(1, 43709, '\p{^Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(1, 43709, '\P{Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Expect(0, 43709, '\P{^Indic_Positional_Category=-Visual_ORDER_Left}', "");
-    Error('\p{InPC=	-Visual_ORDER_LEFT/a/}');
-    Error('\P{InPC=	-Visual_ORDER_LEFT/a/}');
+    Expect(1, 43708, '\p{Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(0, 43708, '\p{^Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(0, 43708, '\P{Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(1, 43708, '\P{^Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(0, 43709, '\p{Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(1, 43709, '\p{^Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(1, 43709, '\P{Indic_Positional_Category=--visual_order_LEFT}', "");
+    Expect(0, 43709, '\P{^Indic_Positional_Category=--visual_order_LEFT}', "");
+    Error('\p{InPC=	:=Visual_Order_Left}');
+    Error('\P{InPC=	:=Visual_Order_Left}');
     Expect(1, 43708, '\p{InPC=:\AVisual_Order_Left\z:}', "");;
     Expect(0, 43709, '\p{InPC=:\AVisual_Order_Left\z:}', "");;
-    Expect(1, 43708, '\p{InPC:   visualorderleft}', "");
-    Expect(0, 43708, '\p{^InPC:   visualorderleft}', "");
-    Expect(0, 43708, '\P{InPC:   visualorderleft}', "");
-    Expect(1, 43708, '\P{^InPC:   visualorderleft}', "");
-    Expect(0, 43709, '\p{InPC:   visualorderleft}', "");
-    Expect(1, 43709, '\p{^InPC:   visualorderleft}', "");
-    Expect(1, 43709, '\P{InPC:   visualorderleft}', "");
-    Expect(0, 43709, '\P{^InPC:   visualorderleft}', "");
+    Expect(1, 43708, '\p{InPC:visualorderleft}', "");
+    Expect(0, 43708, '\p{^InPC:visualorderleft}', "");
+    Expect(0, 43708, '\P{InPC:visualorderleft}', "");
+    Expect(1, 43708, '\P{^InPC:visualorderleft}', "");
+    Expect(0, 43709, '\p{InPC:visualorderleft}', "");
+    Expect(1, 43709, '\p{^InPC:visualorderleft}', "");
+    Expect(1, 43709, '\P{InPC:visualorderleft}', "");
+    Expect(0, 43709, '\P{^InPC:visualorderleft}', "");
     Expect(1, 43708, '\p{InPC=:\Avisualorderleft\z:}', "");;
     Expect(0, 43709, '\p{InPC=:\Avisualorderleft\z:}', "");;
-    Expect(1, 43708, '\p{InPC=_visual_Order_Left}', "");
-    Expect(0, 43708, '\p{^InPC=_visual_Order_Left}', "");
-    Expect(0, 43708, '\P{InPC=_visual_Order_Left}', "");
-    Expect(1, 43708, '\P{^InPC=_visual_Order_Left}', "");
-    Expect(0, 43709, '\p{InPC=_visual_Order_Left}', "");
-    Expect(1, 43709, '\p{^InPC=_visual_Order_Left}', "");
-    Expect(1, 43709, '\P{InPC=_visual_Order_Left}', "");
-    Expect(0, 43709, '\P{^InPC=_visual_Order_Left}', "");
-    Error('\p{Is_Indic_Positional_Category=-_visual_Order_Left:=}');
-    Error('\P{Is_Indic_Positional_Category=-_visual_Order_Left:=}');
+    Expect(1, 43708, '\p{InPC= _Visual_Order_left}', "");
+    Expect(0, 43708, '\p{^InPC= _Visual_Order_left}', "");
+    Expect(0, 43708, '\P{InPC= _Visual_Order_left}', "");
+    Expect(1, 43708, '\P{^InPC= _Visual_Order_left}', "");
+    Expect(0, 43709, '\p{InPC= _Visual_Order_left}', "");
+    Expect(1, 43709, '\p{^InPC= _Visual_Order_left}', "");
+    Expect(1, 43709, '\P{InPC= _Visual_Order_left}', "");
+    Expect(0, 43709, '\P{^InPC= _Visual_Order_left}', "");
+    Error('\p{Is_Indic_Positional_Category=- Visual_order_left/a/}');
+    Error('\P{Is_Indic_Positional_Category=- Visual_order_left/a/}');
     Expect(1, 43708, '\p{Is_Indic_Positional_Category=visualorderleft}', "");
     Expect(0, 43708, '\p{^Is_Indic_Positional_Category=visualorderleft}', "");
     Expect(0, 43708, '\P{Is_Indic_Positional_Category=visualorderleft}', "");
@@ -49959,16 +50581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43709, '\p{^Is_Indic_Positional_Category=visualorderleft}', "");
     Expect(1, 43709, '\P{Is_Indic_Positional_Category=visualorderleft}', "");
     Expect(0, 43709, '\P{^Is_Indic_Positional_Category=visualorderleft}', "");
-    Expect(1, 43708, '\p{Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(0, 43708, '\p{^Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(0, 43708, '\P{Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(1, 43708, '\P{^Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(0, 43709, '\p{Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(1, 43709, '\p{^Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(1, 43709, '\P{Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Expect(0, 43709, '\P{^Is_Indic_Positional_Category=	_VISUAL_ORDER_LEFT}', "");
-    Error('\p{Is_InPC=-visual_order_LEFT:=}');
-    Error('\P{Is_InPC=-visual_order_LEFT:=}');
+    Expect(1, 43708, '\p{Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(0, 43708, '\p{^Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(0, 43708, '\P{Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(1, 43708, '\P{^Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(0, 43709, '\p{Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(1, 43709, '\p{^Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(1, 43709, '\P{Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Expect(0, 43709, '\P{^Is_Indic_Positional_Category=	 VISUAL_Order_Left}', "");
+    Error('\p{Is_InPC=:=_VISUAL_Order_Left}');
+    Error('\P{Is_InPC=:=_VISUAL_Order_Left}');
     Expect(1, 43708, '\p{Is_InPC=visualorderleft}', "");
     Expect(0, 43708, '\p{^Is_InPC=visualorderleft}', "");
     Expect(0, 43708, '\P{Is_InPC=visualorderleft}', "");
@@ -49977,20 +50599,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43709, '\p{^Is_InPC=visualorderleft}', "");
     Expect(1, 43709, '\P{Is_InPC=visualorderleft}', "");
     Expect(0, 43709, '\P{^Is_InPC=visualorderleft}', "");
-    Expect(1, 43708, '\p{Is_InPC=_-Visual_Order_left}', "");
-    Expect(0, 43708, '\p{^Is_InPC=_-Visual_Order_left}', "");
-    Expect(0, 43708, '\P{Is_InPC=_-Visual_Order_left}', "");
-    Expect(1, 43708, '\P{^Is_InPC=_-Visual_Order_left}', "");
-    Expect(0, 43709, '\p{Is_InPC=_-Visual_Order_left}', "");
-    Expect(1, 43709, '\p{^Is_InPC=_-Visual_Order_left}', "");
-    Expect(1, 43709, '\P{Is_InPC=_-Visual_Order_left}', "");
-    Expect(0, 43709, '\P{^Is_InPC=_-Visual_Order_left}', "");
+    Expect(1, 43708, '\p{Is_InPC= VISUAL_order_Left}', "");
+    Expect(0, 43708, '\p{^Is_InPC= VISUAL_order_Left}', "");
+    Expect(0, 43708, '\P{Is_InPC= VISUAL_order_Left}', "");
+    Expect(1, 43708, '\P{^Is_InPC= VISUAL_order_Left}', "");
+    Expect(0, 43709, '\p{Is_InPC= VISUAL_order_Left}', "");
+    Expect(1, 43709, '\p{^Is_InPC= VISUAL_order_Left}', "");
+    Expect(1, 43709, '\P{Is_InPC= VISUAL_order_Left}', "");
+    Expect(0, 43709, '\P{^Is_InPC= VISUAL_order_Left}', "");
     Error('\p{indicsyllabiccategory}');
     Error('\P{indicsyllabiccategory}');
     Error('\p{insc}');
     Error('\P{insc}');
-    Error('\p{Indic_Syllabic_Category=-Avagraha:=}');
-    Error('\P{Indic_Syllabic_Category=-Avagraha:=}');
+    Error('\p{Indic_Syllabic_Category=  AVAGRAHA:=}');
+    Error('\P{Indic_Syllabic_Category=  AVAGRAHA:=}');
     Expect(1, 72768, '\p{Indic_Syllabic_Category=:\AAvagraha\z:}', "");;
     Expect(0, 72769, '\p{Indic_Syllabic_Category=:\AAvagraha\z:}', "");;
     Expect(1, 72768, '\p{Indic_Syllabic_Category=avagraha}', "");
@@ -50003,56 +50625,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72769, '\P{^Indic_Syllabic_Category=avagraha}', "");
     Expect(1, 72768, '\p{Indic_Syllabic_Category=:\Aavagraha\z:}', "");;
     Expect(0, 72769, '\p{Indic_Syllabic_Category=:\Aavagraha\z:}', "");;
-    Expect(1, 72768, '\p{Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72768, '\p{^Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72768, '\P{Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(1, 72768, '\P{^Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72769, '\p{Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(1, 72769, '\p{^Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(1, 72769, '\P{Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72769, '\P{^Indic_Syllabic_Category=-Avagraha}', "");
-    Error('\p{InSC=  avagraha/a/}');
-    Error('\P{InSC=  avagraha/a/}');
+    Expect(1, 72768, '\p{Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(0, 72768, '\p{^Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(0, 72768, '\P{Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(1, 72768, '\P{^Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(0, 72769, '\p{Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(1, 72769, '\p{^Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(1, 72769, '\P{Indic_Syllabic_Category= AVAGRAHA}', "");
+    Expect(0, 72769, '\P{^Indic_Syllabic_Category= AVAGRAHA}', "");
+    Error('\p{InSC=	-AVAGRAHA/a/}');
+    Error('\P{InSC=	-AVAGRAHA/a/}');
     Expect(1, 72768, '\p{InSC=:\AAvagraha\z:}', "");;
     Expect(0, 72769, '\p{InSC=:\AAvagraha\z:}', "");;
-    Expect(1, 72768, '\p{InSC:   avagraha}', "");
-    Expect(0, 72768, '\p{^InSC:   avagraha}', "");
-    Expect(0, 72768, '\P{InSC:   avagraha}', "");
-    Expect(1, 72768, '\P{^InSC:   avagraha}', "");
-    Expect(0, 72769, '\p{InSC:   avagraha}', "");
-    Expect(1, 72769, '\p{^InSC:   avagraha}', "");
-    Expect(1, 72769, '\P{InSC:   avagraha}', "");
-    Expect(0, 72769, '\P{^InSC:   avagraha}', "");
+    Expect(1, 72768, '\p{InSC=avagraha}', "");
+    Expect(0, 72768, '\p{^InSC=avagraha}', "");
+    Expect(0, 72768, '\P{InSC=avagraha}', "");
+    Expect(1, 72768, '\P{^InSC=avagraha}', "");
+    Expect(0, 72769, '\p{InSC=avagraha}', "");
+    Expect(1, 72769, '\p{^InSC=avagraha}', "");
+    Expect(1, 72769, '\P{InSC=avagraha}', "");
+    Expect(0, 72769, '\P{^InSC=avagraha}', "");
     Expect(1, 72768, '\p{InSC=:\Aavagraha\z:}', "");;
     Expect(0, 72769, '\p{InSC=:\Aavagraha\z:}', "");;
-    Expect(1, 72768, '\p{InSC=	_avagraha}', "");
-    Expect(0, 72768, '\p{^InSC=	_avagraha}', "");
-    Expect(0, 72768, '\P{InSC=	_avagraha}', "");
-    Expect(1, 72768, '\P{^InSC=	_avagraha}', "");
-    Expect(0, 72769, '\p{InSC=	_avagraha}', "");
-    Expect(1, 72769, '\p{^InSC=	_avagraha}', "");
-    Expect(1, 72769, '\P{InSC=	_avagraha}', "");
-    Expect(0, 72769, '\P{^InSC=	_avagraha}', "");
-    Error('\p{Is_Indic_Syllabic_Category=_ Avagraha/a/}');
-    Error('\P{Is_Indic_Syllabic_Category=_ Avagraha/a/}');
-    Expect(1, 72768, '\p{Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(0, 72768, '\p{^Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(0, 72768, '\P{Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(1, 72768, '\P{^Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(0, 72769, '\p{Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(1, 72769, '\p{^Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(1, 72769, '\P{Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(0, 72769, '\P{^Is_Indic_Syllabic_Category: avagraha}', "");
-    Expect(1, 72768, '\p{Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72768, '\p{^Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72768, '\P{Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(1, 72768, '\P{^Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72769, '\p{Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(1, 72769, '\p{^Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(1, 72769, '\P{Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Expect(0, 72769, '\P{^Is_Indic_Syllabic_Category=-Avagraha}', "");
-    Error('\p{Is_InSC=/a/		AVAGRAHA}');
-    Error('\P{Is_InSC=/a/		AVAGRAHA}');
+    Expect(1, 72768, '\p{InSC=_ AVAGRAHA}', "");
+    Expect(0, 72768, '\p{^InSC=_ AVAGRAHA}', "");
+    Expect(0, 72768, '\P{InSC=_ AVAGRAHA}', "");
+    Expect(1, 72768, '\P{^InSC=_ AVAGRAHA}', "");
+    Expect(0, 72769, '\p{InSC=_ AVAGRAHA}', "");
+    Expect(1, 72769, '\p{^InSC=_ AVAGRAHA}', "");
+    Expect(1, 72769, '\P{InSC=_ AVAGRAHA}', "");
+    Expect(0, 72769, '\P{^InSC=_ AVAGRAHA}', "");
+    Error('\p{Is_Indic_Syllabic_Category= Avagraha:=}');
+    Error('\P{Is_Indic_Syllabic_Category= Avagraha:=}');
+    Expect(1, 72768, '\p{Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(0, 72768, '\p{^Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(0, 72768, '\P{Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(1, 72768, '\P{^Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(0, 72769, '\p{Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(1, 72769, '\p{^Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(1, 72769, '\P{Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(0, 72769, '\P{^Is_Indic_Syllabic_Category=avagraha}', "");
+    Expect(1, 72768, '\p{Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(0, 72768, '\p{^Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(0, 72768, '\P{Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(1, 72768, '\P{^Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(0, 72769, '\p{Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(1, 72769, '\p{^Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(1, 72769, '\P{Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Expect(0, 72769, '\P{^Is_Indic_Syllabic_Category=	Avagraha}', "");
+    Error('\p{Is_InSC=_/a/AVAGRAHA}');
+    Error('\P{Is_InSC=_/a/AVAGRAHA}');
     Expect(1, 72768, '\p{Is_InSC=avagraha}', "");
     Expect(0, 72768, '\p{^Is_InSC=avagraha}', "");
     Expect(0, 72768, '\P{Is_InSC=avagraha}', "");
@@ -50061,118 +50683,118 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72769, '\p{^Is_InSC=avagraha}', "");
     Expect(1, 72769, '\P{Is_InSC=avagraha}', "");
     Expect(0, 72769, '\P{^Is_InSC=avagraha}', "");
-    Expect(1, 72768, '\p{Is_InSC=		AVAGRAHA}', "");
-    Expect(0, 72768, '\p{^Is_InSC=		AVAGRAHA}', "");
-    Expect(0, 72768, '\P{Is_InSC=		AVAGRAHA}', "");
-    Expect(1, 72768, '\P{^Is_InSC=		AVAGRAHA}', "");
-    Expect(0, 72769, '\p{Is_InSC=		AVAGRAHA}', "");
-    Expect(1, 72769, '\p{^Is_InSC=		AVAGRAHA}', "");
-    Expect(1, 72769, '\P{Is_InSC=		AVAGRAHA}', "");
-    Expect(0, 72769, '\P{^Is_InSC=		AVAGRAHA}', "");
-    Error('\p{Indic_Syllabic_Category=-	BINDU:=}');
-    Error('\P{Indic_Syllabic_Category=-	BINDU:=}');
-    Expect(1, 73109, '\p{Indic_Syllabic_Category=:\ABindu\z:}', "");;
-    Expect(0, 73110, '\p{Indic_Syllabic_Category=:\ABindu\z:}', "");;
-    Expect(1, 73109, '\p{Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73109, '\p{^Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73109, '\P{Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73109, '\P{^Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73110, '\p{Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73110, '\p{^Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73110, '\P{Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73110, '\P{^Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73109, '\p{Indic_Syllabic_Category=:\Abindu\z:}', "");;
-    Expect(0, 73110, '\p{Indic_Syllabic_Category=:\Abindu\z:}', "");;
-    Expect(1, 73109, '\p{Indic_Syllabic_Category=	-bindu}', "");
-    Expect(0, 73109, '\p{^Indic_Syllabic_Category=	-bindu}', "");
-    Expect(0, 73109, '\P{Indic_Syllabic_Category=	-bindu}', "");
-    Expect(1, 73109, '\P{^Indic_Syllabic_Category=	-bindu}', "");
-    Expect(0, 73110, '\p{Indic_Syllabic_Category=	-bindu}', "");
-    Expect(1, 73110, '\p{^Indic_Syllabic_Category=	-bindu}', "");
-    Expect(1, 73110, '\P{Indic_Syllabic_Category=	-bindu}', "");
-    Expect(0, 73110, '\P{^Indic_Syllabic_Category=	-bindu}', "");
-    Error('\p{InSC= /a/BINDU}');
-    Error('\P{InSC= /a/BINDU}');
-    Expect(1, 73109, '\p{InSC=:\ABindu\z:}', "");;
-    Expect(0, 73110, '\p{InSC=:\ABindu\z:}', "");;
-    Expect(1, 73109, '\p{InSC=bindu}', "");
-    Expect(0, 73109, '\p{^InSC=bindu}', "");
-    Expect(0, 73109, '\P{InSC=bindu}', "");
-    Expect(1, 73109, '\P{^InSC=bindu}', "");
-    Expect(0, 73110, '\p{InSC=bindu}', "");
-    Expect(1, 73110, '\p{^InSC=bindu}', "");
-    Expect(1, 73110, '\P{InSC=bindu}', "");
-    Expect(0, 73110, '\P{^InSC=bindu}', "");
-    Expect(1, 73109, '\p{InSC=:\Abindu\z:}', "");;
-    Expect(0, 73110, '\p{InSC=:\Abindu\z:}', "");;
-    Expect(1, 73109, '\p{InSC=	_Bindu}', "");
-    Expect(0, 73109, '\p{^InSC=	_Bindu}', "");
-    Expect(0, 73109, '\P{InSC=	_Bindu}', "");
-    Expect(1, 73109, '\P{^InSC=	_Bindu}', "");
-    Expect(0, 73110, '\p{InSC=	_Bindu}', "");
-    Expect(1, 73110, '\p{^InSC=	_Bindu}', "");
-    Expect(1, 73110, '\P{InSC=	_Bindu}', "");
-    Expect(0, 73110, '\P{^InSC=	_Bindu}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:=--Bindu}');
-    Error('\P{Is_Indic_Syllabic_Category=:=--Bindu}');
-    Expect(1, 73109, '\p{Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73109, '\p{^Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73109, '\P{Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73109, '\P{^Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73110, '\p{Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73110, '\p{^Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73110, '\P{Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(0, 73110, '\P{^Is_Indic_Syllabic_Category=bindu}', "");
-    Expect(1, 73109, '\p{Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(0, 73109, '\p{^Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(0, 73109, '\P{Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(1, 73109, '\P{^Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(0, 73110, '\p{Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(1, 73110, '\p{^Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(1, 73110, '\P{Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Expect(0, 73110, '\P{^Is_Indic_Syllabic_Category=_	Bindu}', "");
-    Error('\p{Is_InSC=-Bindu/a/}');
-    Error('\P{Is_InSC=-Bindu/a/}');
-    Expect(1, 73109, '\p{Is_InSC=bindu}', "");
-    Expect(0, 73109, '\p{^Is_InSC=bindu}', "");
-    Expect(0, 73109, '\P{Is_InSC=bindu}', "");
-    Expect(1, 73109, '\P{^Is_InSC=bindu}', "");
-    Expect(0, 73110, '\p{Is_InSC=bindu}', "");
-    Expect(1, 73110, '\p{^Is_InSC=bindu}', "");
-    Expect(1, 73110, '\P{Is_InSC=bindu}', "");
-    Expect(0, 73110, '\P{^Is_InSC=bindu}', "");
-    Expect(1, 73109, '\p{Is_InSC= 	bindu}', "");
-    Expect(0, 73109, '\p{^Is_InSC= 	bindu}', "");
-    Expect(0, 73109, '\P{Is_InSC= 	bindu}', "");
-    Expect(1, 73109, '\P{^Is_InSC= 	bindu}', "");
-    Expect(0, 73110, '\p{Is_InSC= 	bindu}', "");
-    Expect(1, 73110, '\p{^Is_InSC= 	bindu}', "");
-    Expect(1, 73110, '\P{Is_InSC= 	bindu}', "");
-    Expect(0, 73110, '\P{^Is_InSC= 	bindu}', "");
-    Error('\p{Indic_Syllabic_Category:	/a/Brahmi_Joining_NUMBER}');
-    Error('\P{Indic_Syllabic_Category:	/a/Brahmi_Joining_NUMBER}');
+    Expect(1, 72768, '\p{Is_InSC=	-avagraha}', "");
+    Expect(0, 72768, '\p{^Is_InSC=	-avagraha}', "");
+    Expect(0, 72768, '\P{Is_InSC=	-avagraha}', "");
+    Expect(1, 72768, '\P{^Is_InSC=	-avagraha}', "");
+    Expect(0, 72769, '\p{Is_InSC=	-avagraha}', "");
+    Expect(1, 72769, '\p{^Is_InSC=	-avagraha}', "");
+    Expect(1, 72769, '\P{Is_InSC=	-avagraha}', "");
+    Expect(0, 72769, '\P{^Is_InSC=	-avagraha}', "");
+    Error('\p{Indic_Syllabic_Category=/a/Bindu}');
+    Error('\P{Indic_Syllabic_Category=/a/Bindu}');
+    Expect(1, 73473, '\p{Indic_Syllabic_Category=:\ABindu\z:}', "");;
+    Expect(0, 73474, '\p{Indic_Syllabic_Category=:\ABindu\z:}', "");;
+    Expect(1, 73473, '\p{Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73473, '\p{^Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73473, '\P{Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73473, '\P{^Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73474, '\p{Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73474, '\p{^Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73474, '\P{Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73474, '\P{^Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73473, '\p{Indic_Syllabic_Category=:\Abindu\z:}', "");;
+    Expect(0, 73474, '\p{Indic_Syllabic_Category=:\Abindu\z:}', "");;
+    Expect(1, 73473, '\p{Indic_Syllabic_Category=__BINDU}', "");
+    Expect(0, 73473, '\p{^Indic_Syllabic_Category=__BINDU}', "");
+    Expect(0, 73473, '\P{Indic_Syllabic_Category=__BINDU}', "");
+    Expect(1, 73473, '\P{^Indic_Syllabic_Category=__BINDU}', "");
+    Expect(0, 73474, '\p{Indic_Syllabic_Category=__BINDU}', "");
+    Expect(1, 73474, '\p{^Indic_Syllabic_Category=__BINDU}', "");
+    Expect(1, 73474, '\P{Indic_Syllabic_Category=__BINDU}', "");
+    Expect(0, 73474, '\P{^Indic_Syllabic_Category=__BINDU}', "");
+    Error('\p{InSC=	/a/bindu}');
+    Error('\P{InSC=	/a/bindu}');
+    Expect(1, 73473, '\p{InSC=:\ABindu\z:}', "");;
+    Expect(0, 73474, '\p{InSC=:\ABindu\z:}', "");;
+    Expect(1, 73473, '\p{InSC=bindu}', "");
+    Expect(0, 73473, '\p{^InSC=bindu}', "");
+    Expect(0, 73473, '\P{InSC=bindu}', "");
+    Expect(1, 73473, '\P{^InSC=bindu}', "");
+    Expect(0, 73474, '\p{InSC=bindu}', "");
+    Expect(1, 73474, '\p{^InSC=bindu}', "");
+    Expect(1, 73474, '\P{InSC=bindu}', "");
+    Expect(0, 73474, '\P{^InSC=bindu}', "");
+    Expect(1, 73473, '\p{InSC=:\Abindu\z:}', "");;
+    Expect(0, 73474, '\p{InSC=:\Abindu\z:}', "");;
+    Expect(1, 73473, '\p{InSC=	bindu}', "");
+    Expect(0, 73473, '\p{^InSC=	bindu}', "");
+    Expect(0, 73473, '\P{InSC=	bindu}', "");
+    Expect(1, 73473, '\P{^InSC=	bindu}', "");
+    Expect(0, 73474, '\p{InSC=	bindu}', "");
+    Expect(1, 73474, '\p{^InSC=	bindu}', "");
+    Expect(1, 73474, '\P{InSC=	bindu}', "");
+    Expect(0, 73474, '\P{^InSC=	bindu}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	/a/Bindu}');
+    Error('\P{Is_Indic_Syllabic_Category=	/a/Bindu}');
+    Expect(1, 73473, '\p{Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73473, '\p{^Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73473, '\P{Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73473, '\P{^Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73474, '\p{Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73474, '\p{^Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73474, '\P{Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(0, 73474, '\P{^Is_Indic_Syllabic_Category=bindu}', "");
+    Expect(1, 73473, '\p{Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(0, 73473, '\p{^Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(0, 73473, '\P{Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(1, 73473, '\P{^Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(0, 73474, '\p{Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(1, 73474, '\p{^Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(1, 73474, '\P{Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Expect(0, 73474, '\P{^Is_Indic_Syllabic_Category=-	Bindu}', "");
+    Error('\p{Is_InSC=/a/__BINDU}');
+    Error('\P{Is_InSC=/a/__BINDU}');
+    Expect(1, 73473, '\p{Is_InSC=bindu}', "");
+    Expect(0, 73473, '\p{^Is_InSC=bindu}', "");
+    Expect(0, 73473, '\P{Is_InSC=bindu}', "");
+    Expect(1, 73473, '\P{^Is_InSC=bindu}', "");
+    Expect(0, 73474, '\p{Is_InSC=bindu}', "");
+    Expect(1, 73474, '\p{^Is_InSC=bindu}', "");
+    Expect(1, 73474, '\P{Is_InSC=bindu}', "");
+    Expect(0, 73474, '\P{^Is_InSC=bindu}', "");
+    Expect(1, 73473, '\p{Is_InSC=	_Bindu}', "");
+    Expect(0, 73473, '\p{^Is_InSC=	_Bindu}', "");
+    Expect(0, 73473, '\P{Is_InSC=	_Bindu}', "");
+    Expect(1, 73473, '\P{^Is_InSC=	_Bindu}', "");
+    Expect(0, 73474, '\p{Is_InSC=	_Bindu}', "");
+    Expect(1, 73474, '\p{^Is_InSC=	_Bindu}', "");
+    Expect(1, 73474, '\P{Is_InSC=	_Bindu}', "");
+    Expect(0, 73474, '\P{^Is_InSC=	_Bindu}', "");
+    Error('\p{Indic_Syllabic_Category:	:=Brahmi_JOINING_Number}');
+    Error('\P{Indic_Syllabic_Category:	:=Brahmi_JOINING_Number}');
     Expect(1, 69733, '\p{Indic_Syllabic_Category=:\ABrahmi_Joining_Number\z:}', "");;
     Expect(0, 69734, '\p{Indic_Syllabic_Category=:\ABrahmi_Joining_Number\z:}', "");;
-    Expect(1, 69733, '\p{Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(0, 69733, '\p{^Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(0, 69733, '\P{Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(1, 69733, '\P{^Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(0, 69734, '\p{Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(1, 69734, '\p{^Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(1, 69734, '\P{Indic_Syllabic_Category:	brahmijoiningnumber}', "");
-    Expect(0, 69734, '\P{^Indic_Syllabic_Category:	brahmijoiningnumber}', "");
+    Expect(1, 69733, '\p{Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(0, 69733, '\p{^Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(0, 69733, '\P{Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(1, 69733, '\P{^Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(0, 69734, '\p{Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(1, 69734, '\p{^Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(1, 69734, '\P{Indic_Syllabic_Category: brahmijoiningnumber}', "");
+    Expect(0, 69734, '\P{^Indic_Syllabic_Category: brahmijoiningnumber}', "");
     Expect(1, 69733, '\p{Indic_Syllabic_Category=:\Abrahmijoiningnumber\z:}', "");;
     Expect(0, 69734, '\p{Indic_Syllabic_Category=:\Abrahmijoiningnumber\z:}', "");;
-    Expect(1, 69733, '\p{Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(0, 69733, '\p{^Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(0, 69733, '\P{Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(1, 69733, '\P{^Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(0, 69734, '\p{Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(1, 69734, '\p{^Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(1, 69734, '\P{Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Expect(0, 69734, '\P{^Indic_Syllabic_Category= -Brahmi_Joining_Number}', "");
-    Error('\p{InSC=	/a/brahmi_Joining_NUMBER}');
-    Error('\P{InSC=	/a/brahmi_Joining_NUMBER}');
+    Expect(1, 69733, '\p{Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(0, 69733, '\p{^Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(0, 69733, '\P{Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(1, 69733, '\P{^Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(0, 69734, '\p{Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(1, 69734, '\p{^Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(1, 69734, '\P{Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Expect(0, 69734, '\P{^Indic_Syllabic_Category=_-Brahmi_JOINING_number}', "");
+    Error('\p{InSC=-	Brahmi_Joining_Number:=}');
+    Error('\P{InSC=-	Brahmi_Joining_Number:=}');
     Expect(1, 69733, '\p{InSC=:\ABrahmi_Joining_Number\z:}', "");;
     Expect(0, 69734, '\p{InSC=:\ABrahmi_Joining_Number\z:}', "");;
     Expect(1, 69733, '\p{InSC=brahmijoiningnumber}', "");
@@ -50185,16 +50807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69734, '\P{^InSC=brahmijoiningnumber}', "");
     Expect(1, 69733, '\p{InSC=:\Abrahmijoiningnumber\z:}', "");;
     Expect(0, 69734, '\p{InSC=:\Abrahmijoiningnumber\z:}', "");;
-    Expect(1, 69733, '\p{InSC=-_BRAHMI_Joining_number}', "");
-    Expect(0, 69733, '\p{^InSC=-_BRAHMI_Joining_number}', "");
-    Expect(0, 69733, '\P{InSC=-_BRAHMI_Joining_number}', "");
-    Expect(1, 69733, '\P{^InSC=-_BRAHMI_Joining_number}', "");
-    Expect(0, 69734, '\p{InSC=-_BRAHMI_Joining_number}', "");
-    Expect(1, 69734, '\p{^InSC=-_BRAHMI_Joining_number}', "");
-    Expect(1, 69734, '\P{InSC=-_BRAHMI_Joining_number}', "");
-    Expect(0, 69734, '\P{^InSC=-_BRAHMI_Joining_number}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	Brahmi_Joining_number/a/}');
-    Error('\P{Is_Indic_Syllabic_Category=	Brahmi_Joining_number/a/}');
+    Expect(1, 69733, '\p{InSC=  Brahmi_Joining_Number}', "");
+    Expect(0, 69733, '\p{^InSC=  Brahmi_Joining_Number}', "");
+    Expect(0, 69733, '\P{InSC=  Brahmi_Joining_Number}', "");
+    Expect(1, 69733, '\P{^InSC=  Brahmi_Joining_Number}', "");
+    Expect(0, 69734, '\p{InSC=  Brahmi_Joining_Number}', "");
+    Expect(1, 69734, '\p{^InSC=  Brahmi_Joining_Number}', "");
+    Expect(1, 69734, '\P{InSC=  Brahmi_Joining_Number}', "");
+    Expect(0, 69734, '\P{^InSC=  Brahmi_Joining_Number}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	/a/Brahmi_JOINING_number}');
+    Error('\P{Is_Indic_Syllabic_Category=	/a/Brahmi_JOINING_number}');
     Expect(1, 69733, '\p{Is_Indic_Syllabic_Category=brahmijoiningnumber}', "");
     Expect(0, 69733, '\p{^Is_Indic_Syllabic_Category=brahmijoiningnumber}', "");
     Expect(0, 69733, '\P{Is_Indic_Syllabic_Category=brahmijoiningnumber}', "");
@@ -50203,16 +50825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69734, '\p{^Is_Indic_Syllabic_Category=brahmijoiningnumber}', "");
     Expect(1, 69734, '\P{Is_Indic_Syllabic_Category=brahmijoiningnumber}', "");
     Expect(0, 69734, '\P{^Is_Indic_Syllabic_Category=brahmijoiningnumber}', "");
-    Expect(1, 69733, '\p{Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(0, 69733, '\p{^Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(0, 69733, '\P{Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(1, 69733, '\P{^Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(0, 69734, '\p{Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(1, 69734, '\p{^Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(1, 69734, '\P{Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Expect(0, 69734, '\P{^Is_Indic_Syllabic_Category=BRAHMI_JOINING_Number}', "");
-    Error('\p{Is_InSC=:=Brahmi_Joining_number}');
-    Error('\P{Is_InSC=:=Brahmi_Joining_number}');
+    Expect(1, 69733, '\p{Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(0, 69733, '\p{^Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(0, 69733, '\P{Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(1, 69733, '\P{^Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(0, 69734, '\p{Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(1, 69734, '\p{^Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(1, 69734, '\P{Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Expect(0, 69734, '\P{^Is_Indic_Syllabic_Category:    Brahmi_Joining_Number}', "");
+    Error('\p{Is_InSC=	/a/brahmi_Joining_Number}');
+    Error('\P{Is_InSC=	/a/brahmi_Joining_Number}');
     Expect(1, 69733, '\p{Is_InSC=brahmijoiningnumber}', "");
     Expect(0, 69733, '\p{^Is_InSC=brahmijoiningnumber}', "");
     Expect(0, 69733, '\P{Is_InSC=brahmijoiningnumber}', "");
@@ -50221,16 +50843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69734, '\p{^Is_InSC=brahmijoiningnumber}', "");
     Expect(1, 69734, '\P{Is_InSC=brahmijoiningnumber}', "");
     Expect(0, 69734, '\P{^Is_InSC=brahmijoiningnumber}', "");
-    Expect(1, 69733, '\p{Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(0, 69733, '\p{^Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(0, 69733, '\P{Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(1, 69733, '\P{^Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(0, 69734, '\p{Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(1, 69734, '\p{^Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(1, 69734, '\P{Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Expect(0, 69734, '\P{^Is_InSC=_-BRAHMI_Joining_NUMBER}', "");
-    Error('\p{Indic_Syllabic_Category=/a/_CANTILLATION_MARK}');
-    Error('\P{Indic_Syllabic_Category=/a/_CANTILLATION_MARK}');
+    Expect(1, 69733, '\p{Is_InSC=- brahmi_joining_number}', "");
+    Expect(0, 69733, '\p{^Is_InSC=- brahmi_joining_number}', "");
+    Expect(0, 69733, '\P{Is_InSC=- brahmi_joining_number}', "");
+    Expect(1, 69733, '\P{^Is_InSC=- brahmi_joining_number}', "");
+    Expect(0, 69734, '\p{Is_InSC=- brahmi_joining_number}', "");
+    Expect(1, 69734, '\p{^Is_InSC=- brahmi_joining_number}', "");
+    Expect(1, 69734, '\P{Is_InSC=- brahmi_joining_number}', "");
+    Expect(0, 69734, '\P{^Is_InSC=- brahmi_joining_number}', "");
+    Error('\p{Indic_Syllabic_Category=:=_Cantillation_Mark}');
+    Error('\P{Indic_Syllabic_Category=:=_Cantillation_Mark}');
     Expect(1, 70516, '\p{Indic_Syllabic_Category=:\ACantillation_Mark\z:}', "");;
     Expect(0, 70517, '\p{Indic_Syllabic_Category=:\ACantillation_Mark\z:}', "");;
     Expect(1, 70516, '\p{Indic_Syllabic_Category=cantillationmark}', "");
@@ -50243,16 +50865,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 70517, '\P{^Indic_Syllabic_Category=cantillationmark}', "");
     Expect(1, 70516, '\p{Indic_Syllabic_Category=:\Acantillationmark\z:}', "");;
     Expect(0, 70517, '\p{Indic_Syllabic_Category=:\Acantillationmark\z:}', "");;
-    Expect(1, 70516, '\p{Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(0, 70516, '\p{^Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(0, 70516, '\P{Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(1, 70516, '\P{^Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(0, 70517, '\p{Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(1, 70517, '\p{^Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(1, 70517, '\P{Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Expect(0, 70517, '\P{^Indic_Syllabic_Category= Cantillation_MARK}', "");
-    Error('\p{InSC= :=Cantillation_MARK}');
-    Error('\P{InSC= :=Cantillation_MARK}');
+    Expect(1, 70516, '\p{Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(0, 70516, '\p{^Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(0, 70516, '\P{Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(1, 70516, '\P{^Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(0, 70517, '\p{Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(1, 70517, '\p{^Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(1, 70517, '\P{Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Expect(0, 70517, '\P{^Indic_Syllabic_Category=  Cantillation_Mark}', "");
+    Error('\p{InSC=/a/ CANTILLATION_mark}');
+    Error('\P{InSC=/a/ CANTILLATION_mark}');
     Expect(1, 70516, '\p{InSC=:\ACantillation_Mark\z:}', "");;
     Expect(0, 70517, '\p{InSC=:\ACantillation_Mark\z:}', "");;
     Expect(1, 70516, '\p{InSC=cantillationmark}', "");
@@ -50265,34 +50887,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 70517, '\P{^InSC=cantillationmark}', "");
     Expect(1, 70516, '\p{InSC=:\Acantillationmark\z:}', "");;
     Expect(0, 70517, '\p{InSC=:\Acantillationmark\z:}', "");;
-    Expect(1, 70516, '\p{InSC=- Cantillation_Mark}', "");
-    Expect(0, 70516, '\p{^InSC=- Cantillation_Mark}', "");
-    Expect(0, 70516, '\P{InSC=- Cantillation_Mark}', "");
-    Expect(1, 70516, '\P{^InSC=- Cantillation_Mark}', "");
-    Expect(0, 70517, '\p{InSC=- Cantillation_Mark}', "");
-    Expect(1, 70517, '\p{^InSC=- Cantillation_Mark}', "");
-    Expect(1, 70517, '\P{InSC=- Cantillation_Mark}', "");
-    Expect(0, 70517, '\P{^InSC=- Cantillation_Mark}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:= CANTILLATION_Mark}');
-    Error('\P{Is_Indic_Syllabic_Category=:= CANTILLATION_Mark}');
-    Expect(1, 70516, '\p{Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(0, 70516, '\p{^Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(0, 70516, '\P{Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(1, 70516, '\P{^Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(0, 70517, '\p{Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(1, 70517, '\p{^Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(1, 70517, '\P{Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(0, 70517, '\P{^Is_Indic_Syllabic_Category: cantillationmark}', "");
-    Expect(1, 70516, '\p{Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(0, 70516, '\p{^Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(0, 70516, '\P{Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(1, 70516, '\P{^Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(0, 70517, '\p{Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(1, 70517, '\p{^Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(1, 70517, '\P{Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Expect(0, 70517, '\P{^Is_Indic_Syllabic_Category=	 Cantillation_Mark}', "");
-    Error('\p{Is_InSC:-Cantillation_Mark:=}');
-    Error('\P{Is_InSC:-Cantillation_Mark:=}');
+    Expect(1, 70516, '\p{InSC=_	CANTILLATION_Mark}', "");
+    Expect(0, 70516, '\p{^InSC=_	CANTILLATION_Mark}', "");
+    Expect(0, 70516, '\P{InSC=_	CANTILLATION_Mark}', "");
+    Expect(1, 70516, '\P{^InSC=_	CANTILLATION_Mark}', "");
+    Expect(0, 70517, '\p{InSC=_	CANTILLATION_Mark}', "");
+    Expect(1, 70517, '\p{^InSC=_	CANTILLATION_Mark}', "");
+    Expect(1, 70517, '\P{InSC=_	CANTILLATION_Mark}', "");
+    Expect(0, 70517, '\P{^InSC=_	CANTILLATION_Mark}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_/a/Cantillation_mark}');
+    Error('\P{Is_Indic_Syllabic_Category=_/a/Cantillation_mark}');
+    Expect(1, 70516, '\p{Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(0, 70516, '\p{^Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(0, 70516, '\P{Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(1, 70516, '\P{^Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(0, 70517, '\p{Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(1, 70517, '\p{^Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(1, 70517, '\P{Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(0, 70517, '\P{^Is_Indic_Syllabic_Category=cantillationmark}', "");
+    Expect(1, 70516, '\p{Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(0, 70516, '\p{^Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(0, 70516, '\P{Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(1, 70516, '\P{^Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(0, 70517, '\p{Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(1, 70517, '\p{^Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(1, 70517, '\P{Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Expect(0, 70517, '\P{^Is_Indic_Syllabic_Category= 	Cantillation_mark}', "");
+    Error('\p{Is_InSC=/a/_Cantillation_Mark}');
+    Error('\P{Is_InSC=/a/_Cantillation_Mark}');
     Expect(1, 70516, '\p{Is_InSC=cantillationmark}', "");
     Expect(0, 70516, '\p{^Is_InSC=cantillationmark}', "");
     Expect(0, 70516, '\P{Is_InSC=cantillationmark}', "");
@@ -50301,96 +50923,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 70517, '\p{^Is_InSC=cantillationmark}', "");
     Expect(1, 70517, '\P{Is_InSC=cantillationmark}', "");
     Expect(0, 70517, '\P{^Is_InSC=cantillationmark}', "");
-    Expect(1, 70516, '\p{Is_InSC=		Cantillation_Mark}', "");
-    Expect(0, 70516, '\p{^Is_InSC=		Cantillation_Mark}', "");
-    Expect(0, 70516, '\P{Is_InSC=		Cantillation_Mark}', "");
-    Expect(1, 70516, '\P{^Is_InSC=		Cantillation_Mark}', "");
-    Expect(0, 70517, '\p{Is_InSC=		Cantillation_Mark}', "");
-    Expect(1, 70517, '\p{^Is_InSC=		Cantillation_Mark}', "");
-    Expect(1, 70517, '\P{Is_InSC=		Cantillation_Mark}', "");
-    Expect(0, 70517, '\P{^Is_InSC=		Cantillation_Mark}', "");
-    Error('\p{Indic_Syllabic_Category=:=-Consonant}');
-    Error('\P{Indic_Syllabic_Category=:=-Consonant}');
-    Expect(1, 73457, '\p{Indic_Syllabic_Category=:\AConsonant\z:}', "");;
-    Expect(0, 73458, '\p{Indic_Syllabic_Category=:\AConsonant\z:}', "");;
-    Expect(1, 73457, '\p{Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73457, '\p{^Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73457, '\P{Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73457, '\P{^Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73458, '\p{Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73458, '\p{^Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73458, '\P{Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73458, '\P{^Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73457, '\p{Indic_Syllabic_Category=:\Aconsonant\z:}', "");;
-    Expect(0, 73458, '\p{Indic_Syllabic_Category=:\Aconsonant\z:}', "");;
-    Expect(1, 73457, '\p{Indic_Syllabic_Category=-Consonant}', "");
-    Expect(0, 73457, '\p{^Indic_Syllabic_Category=-Consonant}', "");
-    Expect(0, 73457, '\P{Indic_Syllabic_Category=-Consonant}', "");
-    Expect(1, 73457, '\P{^Indic_Syllabic_Category=-Consonant}', "");
-    Expect(0, 73458, '\p{Indic_Syllabic_Category=-Consonant}', "");
-    Expect(1, 73458, '\p{^Indic_Syllabic_Category=-Consonant}', "");
-    Expect(1, 73458, '\P{Indic_Syllabic_Category=-Consonant}', "");
-    Expect(0, 73458, '\P{^Indic_Syllabic_Category=-Consonant}', "");
-    Error('\p{InSC=		consonant/a/}');
-    Error('\P{InSC=		consonant/a/}');
-    Expect(1, 73457, '\p{InSC=:\AConsonant\z:}', "");;
-    Expect(0, 73458, '\p{InSC=:\AConsonant\z:}', "");;
-    Expect(1, 73457, '\p{InSC=consonant}', "");
-    Expect(0, 73457, '\p{^InSC=consonant}', "");
-    Expect(0, 73457, '\P{InSC=consonant}', "");
-    Expect(1, 73457, '\P{^InSC=consonant}', "");
-    Expect(0, 73458, '\p{InSC=consonant}', "");
-    Expect(1, 73458, '\p{^InSC=consonant}', "");
-    Expect(1, 73458, '\P{InSC=consonant}', "");
-    Expect(0, 73458, '\P{^InSC=consonant}', "");
-    Expect(1, 73457, '\p{InSC=:\Aconsonant\z:}', "");;
-    Expect(0, 73458, '\p{InSC=:\Aconsonant\z:}', "");;
-    Expect(1, 73457, '\p{InSC= _consonant}', "");
-    Expect(0, 73457, '\p{^InSC= _consonant}', "");
-    Expect(0, 73457, '\P{InSC= _consonant}', "");
-    Expect(1, 73457, '\P{^InSC= _consonant}', "");
-    Expect(0, 73458, '\p{InSC= _consonant}', "");
-    Expect(1, 73458, '\p{^InSC= _consonant}', "");
-    Expect(1, 73458, '\P{InSC= _consonant}', "");
-    Expect(0, 73458, '\P{^InSC= _consonant}', "");
-    Error('\p{Is_Indic_Syllabic_Category= -Consonant/a/}');
-    Error('\P{Is_Indic_Syllabic_Category= -Consonant/a/}');
-    Expect(1, 73457, '\p{Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73457, '\p{^Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73457, '\P{Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73457, '\P{^Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73458, '\p{Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73458, '\p{^Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73458, '\P{Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(0, 73458, '\P{^Is_Indic_Syllabic_Category=consonant}', "");
-    Expect(1, 73457, '\p{Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(0, 73457, '\p{^Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(0, 73457, '\P{Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(1, 73457, '\P{^Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(0, 73458, '\p{Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(1, 73458, '\p{^Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(1, 73458, '\P{Is_Indic_Syllabic_Category= consonant}', "");
-    Expect(0, 73458, '\P{^Is_Indic_Syllabic_Category= consonant}', "");
-    Error('\p{Is_InSC=:=	-consonant}');
-    Error('\P{Is_InSC=:=	-consonant}');
-    Expect(1, 73457, '\p{Is_InSC=consonant}', "");
-    Expect(0, 73457, '\p{^Is_InSC=consonant}', "");
-    Expect(0, 73457, '\P{Is_InSC=consonant}', "");
-    Expect(1, 73457, '\P{^Is_InSC=consonant}', "");
-    Expect(0, 73458, '\p{Is_InSC=consonant}', "");
-    Expect(1, 73458, '\p{^Is_InSC=consonant}', "");
-    Expect(1, 73458, '\P{Is_InSC=consonant}', "");
-    Expect(0, 73458, '\P{^Is_InSC=consonant}', "");
-    Expect(1, 73457, '\p{Is_InSC=--consonant}', "");
-    Expect(0, 73457, '\p{^Is_InSC=--consonant}', "");
-    Expect(0, 73457, '\P{Is_InSC=--consonant}', "");
-    Expect(1, 73457, '\P{^Is_InSC=--consonant}', "");
-    Expect(0, 73458, '\p{Is_InSC=--consonant}', "");
-    Expect(1, 73458, '\p{^Is_InSC=--consonant}', "");
-    Expect(1, 73458, '\P{Is_InSC=--consonant}', "");
-    Expect(0, 73458, '\P{^Is_InSC=--consonant}', "");
-    Error('\p{Indic_Syllabic_Category= 	Consonant_dead/a/}');
-    Error('\P{Indic_Syllabic_Category= 	Consonant_dead/a/}');
+    Expect(1, 70516, '\p{Is_InSC:	 _Cantillation_mark}', "");
+    Expect(0, 70516, '\p{^Is_InSC:	 _Cantillation_mark}', "");
+    Expect(0, 70516, '\P{Is_InSC:	 _Cantillation_mark}', "");
+    Expect(1, 70516, '\P{^Is_InSC:	 _Cantillation_mark}', "");
+    Expect(0, 70517, '\p{Is_InSC:	 _Cantillation_mark}', "");
+    Expect(1, 70517, '\p{^Is_InSC:	 _Cantillation_mark}', "");
+    Expect(1, 70517, '\P{Is_InSC:	 _Cantillation_mark}', "");
+    Expect(0, 70517, '\P{^Is_InSC:	 _Cantillation_mark}', "");
+    Error('\p{Indic_Syllabic_Category=:=--consonant}');
+    Error('\P{Indic_Syllabic_Category=:=--consonant}');
+    Expect(1, 73523, '\p{Indic_Syllabic_Category=:\AConsonant\z:}', "");;
+    Expect(0, 73524, '\p{Indic_Syllabic_Category=:\AConsonant\z:}', "");;
+    Expect(1, 73523, '\p{Indic_Syllabic_Category=consonant}', "");
+    Expect(0, 73523, '\p{^Indic_Syllabic_Category=consonant}', "");
+    Expect(0, 73523, '\P{Indic_Syllabic_Category=consonant}', "");
+    Expect(1, 73523, '\P{^Indic_Syllabic_Category=consonant}', "");
+    Expect(0, 73524, '\p{Indic_Syllabic_Category=consonant}', "");
+    Expect(1, 73524, '\p{^Indic_Syllabic_Category=consonant}', "");
+    Expect(1, 73524, '\P{Indic_Syllabic_Category=consonant}', "");
+    Expect(0, 73524, '\P{^Indic_Syllabic_Category=consonant}', "");
+    Expect(1, 73523, '\p{Indic_Syllabic_Category=:\Aconsonant\z:}', "");;
+    Expect(0, 73524, '\p{Indic_Syllabic_Category=:\Aconsonant\z:}', "");;
+    Expect(1, 73523, '\p{Indic_Syllabic_Category=__consonant}', "");
+    Expect(0, 73523, '\p{^Indic_Syllabic_Category=__consonant}', "");
+    Expect(0, 73523, '\P{Indic_Syllabic_Category=__consonant}', "");
+    Expect(1, 73523, '\P{^Indic_Syllabic_Category=__consonant}', "");
+    Expect(0, 73524, '\p{Indic_Syllabic_Category=__consonant}', "");
+    Expect(1, 73524, '\p{^Indic_Syllabic_Category=__consonant}', "");
+    Expect(1, 73524, '\P{Indic_Syllabic_Category=__consonant}', "");
+    Expect(0, 73524, '\P{^Indic_Syllabic_Category=__consonant}', "");
+    Error('\p{InSC=:= Consonant}');
+    Error('\P{InSC=:= Consonant}');
+    Expect(1, 73523, '\p{InSC=:\AConsonant\z:}', "");;
+    Expect(0, 73524, '\p{InSC=:\AConsonant\z:}', "");;
+    Expect(1, 73523, '\p{InSC=consonant}', "");
+    Expect(0, 73523, '\p{^InSC=consonant}', "");
+    Expect(0, 73523, '\P{InSC=consonant}', "");
+    Expect(1, 73523, '\P{^InSC=consonant}', "");
+    Expect(0, 73524, '\p{InSC=consonant}', "");
+    Expect(1, 73524, '\p{^InSC=consonant}', "");
+    Expect(1, 73524, '\P{InSC=consonant}', "");
+    Expect(0, 73524, '\P{^InSC=consonant}', "");
+    Expect(1, 73523, '\p{InSC=:\Aconsonant\z:}', "");;
+    Expect(0, 73524, '\p{InSC=:\Aconsonant\z:}', "");;
+    Expect(1, 73523, '\p{InSC=-_consonant}', "");
+    Expect(0, 73523, '\p{^InSC=-_consonant}', "");
+    Expect(0, 73523, '\P{InSC=-_consonant}', "");
+    Expect(1, 73523, '\P{^InSC=-_consonant}', "");
+    Expect(0, 73524, '\p{InSC=-_consonant}', "");
+    Expect(1, 73524, '\p{^InSC=-_consonant}', "");
+    Expect(1, 73524, '\P{InSC=-_consonant}', "");
+    Expect(0, 73524, '\P{^InSC=-_consonant}', "");
+    Error('\p{Is_Indic_Syllabic_Category=/a/-Consonant}');
+    Error('\P{Is_Indic_Syllabic_Category=/a/-Consonant}');
+    Expect(1, 73523, '\p{Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(0, 73523, '\p{^Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(0, 73523, '\P{Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(1, 73523, '\P{^Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(0, 73524, '\p{Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(1, 73524, '\p{^Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(1, 73524, '\P{Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(0, 73524, '\P{^Is_Indic_Syllabic_Category:	consonant}', "");
+    Expect(1, 73523, '\p{Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(0, 73523, '\p{^Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(0, 73523, '\P{Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(1, 73523, '\P{^Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(0, 73524, '\p{Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(1, 73524, '\p{^Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(1, 73524, '\P{Is_Indic_Syllabic_Category=Consonant}', "");
+    Expect(0, 73524, '\P{^Is_Indic_Syllabic_Category=Consonant}', "");
+    Error('\p{Is_InSC= Consonant/a/}');
+    Error('\P{Is_InSC= Consonant/a/}');
+    Expect(1, 73523, '\p{Is_InSC=consonant}', "");
+    Expect(0, 73523, '\p{^Is_InSC=consonant}', "");
+    Expect(0, 73523, '\P{Is_InSC=consonant}', "");
+    Expect(1, 73523, '\P{^Is_InSC=consonant}', "");
+    Expect(0, 73524, '\p{Is_InSC=consonant}', "");
+    Expect(1, 73524, '\p{^Is_InSC=consonant}', "");
+    Expect(1, 73524, '\P{Is_InSC=consonant}', "");
+    Expect(0, 73524, '\P{^Is_InSC=consonant}', "");
+    Expect(1, 73523, '\p{Is_InSC:	 CONSONANT}', "");
+    Expect(0, 73523, '\p{^Is_InSC:	 CONSONANT}', "");
+    Expect(0, 73523, '\P{Is_InSC:	 CONSONANT}', "");
+    Expect(1, 73523, '\P{^Is_InSC:	 CONSONANT}', "");
+    Expect(0, 73524, '\p{Is_InSC:	 CONSONANT}', "");
+    Expect(1, 73524, '\p{^Is_InSC:	 CONSONANT}', "");
+    Expect(1, 73524, '\P{Is_InSC:	 CONSONANT}', "");
+    Expect(0, 73524, '\P{^Is_InSC:	 CONSONANT}', "");
+    Error('\p{Indic_Syllabic_Category=	-Consonant_Dead/a/}');
+    Error('\P{Indic_Syllabic_Category=	-Consonant_Dead/a/}');
     Expect(1, 7411, '\p{Indic_Syllabic_Category=:\AConsonant_Dead\z:}', "");;
     Expect(0, 7412, '\p{Indic_Syllabic_Category=:\AConsonant_Dead\z:}', "");;
     Expect(1, 7411, '\p{Indic_Syllabic_Category=consonantdead}', "");
@@ -50403,38 +51025,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 7412, '\P{^Indic_Syllabic_Category=consonantdead}', "");
     Expect(1, 7411, '\p{Indic_Syllabic_Category=:\Aconsonantdead\z:}', "");;
     Expect(0, 7412, '\p{Indic_Syllabic_Category=:\Aconsonantdead\z:}', "");;
-    Expect(1, 7411, '\p{Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(0, 7411, '\p{^Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(0, 7411, '\P{Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(1, 7411, '\P{^Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(0, 7412, '\p{Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(1, 7412, '\p{^Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(1, 7412, '\P{Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Expect(0, 7412, '\P{^Indic_Syllabic_Category=-_CONSONANT_Dead}', "");
-    Error('\p{InSC=--Consonant_Dead/a/}');
-    Error('\P{InSC=--Consonant_Dead/a/}');
+    Expect(1, 7411, '\p{Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(0, 7411, '\p{^Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(0, 7411, '\P{Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(1, 7411, '\P{^Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(0, 7412, '\p{Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(1, 7412, '\p{^Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(1, 7412, '\P{Indic_Syllabic_Category= _Consonant_dead}', "");
+    Expect(0, 7412, '\P{^Indic_Syllabic_Category= _Consonant_dead}', "");
+    Error('\p{InSC=_consonant_dead/a/}');
+    Error('\P{InSC=_consonant_dead/a/}');
     Expect(1, 7411, '\p{InSC=:\AConsonant_Dead\z:}', "");;
     Expect(0, 7412, '\p{InSC=:\AConsonant_Dead\z:}', "");;
-    Expect(1, 7411, '\p{InSC=consonantdead}', "");
-    Expect(0, 7411, '\p{^InSC=consonantdead}', "");
-    Expect(0, 7411, '\P{InSC=consonantdead}', "");
-    Expect(1, 7411, '\P{^InSC=consonantdead}', "");
-    Expect(0, 7412, '\p{InSC=consonantdead}', "");
-    Expect(1, 7412, '\p{^InSC=consonantdead}', "");
-    Expect(1, 7412, '\P{InSC=consonantdead}', "");
-    Expect(0, 7412, '\P{^InSC=consonantdead}', "");
+    Expect(1, 7411, '\p{InSC:	consonantdead}', "");
+    Expect(0, 7411, '\p{^InSC:	consonantdead}', "");
+    Expect(0, 7411, '\P{InSC:	consonantdead}', "");
+    Expect(1, 7411, '\P{^InSC:	consonantdead}', "");
+    Expect(0, 7412, '\p{InSC:	consonantdead}', "");
+    Expect(1, 7412, '\p{^InSC:	consonantdead}', "");
+    Expect(1, 7412, '\P{InSC:	consonantdead}', "");
+    Expect(0, 7412, '\P{^InSC:	consonantdead}', "");
     Expect(1, 7411, '\p{InSC=:\Aconsonantdead\z:}', "");;
     Expect(0, 7412, '\p{InSC=:\Aconsonantdead\z:}', "");;
-    Expect(1, 7411, '\p{InSC=	CONSONANT_Dead}', "");
-    Expect(0, 7411, '\p{^InSC=	CONSONANT_Dead}', "");
-    Expect(0, 7411, '\P{InSC=	CONSONANT_Dead}', "");
-    Expect(1, 7411, '\P{^InSC=	CONSONANT_Dead}', "");
-    Expect(0, 7412, '\p{InSC=	CONSONANT_Dead}', "");
-    Expect(1, 7412, '\p{^InSC=	CONSONANT_Dead}', "");
-    Expect(1, 7412, '\P{InSC=	CONSONANT_Dead}', "");
-    Expect(0, 7412, '\P{^InSC=	CONSONANT_Dead}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	consonant_dead:=}');
-    Error('\P{Is_Indic_Syllabic_Category=	consonant_dead:=}');
+    Expect(1, 7411, '\p{InSC=__consonant_Dead}', "");
+    Expect(0, 7411, '\p{^InSC=__consonant_Dead}', "");
+    Expect(0, 7411, '\P{InSC=__consonant_Dead}', "");
+    Expect(1, 7411, '\P{^InSC=__consonant_Dead}', "");
+    Expect(0, 7412, '\p{InSC=__consonant_Dead}', "");
+    Expect(1, 7412, '\p{^InSC=__consonant_Dead}', "");
+    Expect(1, 7412, '\P{InSC=__consonant_Dead}', "");
+    Expect(0, 7412, '\P{^InSC=__consonant_Dead}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	/a/Consonant_Dead}');
+    Error('\P{Is_Indic_Syllabic_Category=	/a/Consonant_Dead}');
     Expect(1, 7411, '\p{Is_Indic_Syllabic_Category=consonantdead}', "");
     Expect(0, 7411, '\p{^Is_Indic_Syllabic_Category=consonantdead}', "");
     Expect(0, 7411, '\P{Is_Indic_Syllabic_Category=consonantdead}', "");
@@ -50443,16 +51065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 7412, '\p{^Is_Indic_Syllabic_Category=consonantdead}', "");
     Expect(1, 7412, '\P{Is_Indic_Syllabic_Category=consonantdead}', "");
     Expect(0, 7412, '\P{^Is_Indic_Syllabic_Category=consonantdead}', "");
-    Expect(1, 7411, '\p{Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(0, 7411, '\p{^Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(0, 7411, '\P{Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(1, 7411, '\P{^Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(0, 7412, '\p{Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(1, 7412, '\p{^Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(1, 7412, '\P{Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Expect(0, 7412, '\P{^Is_Indic_Syllabic_Category=_-Consonant_Dead}', "");
-    Error('\p{Is_InSC=:=-CONSONANT_Dead}');
-    Error('\P{Is_InSC=:=-CONSONANT_Dead}');
+    Expect(1, 7411, '\p{Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(0, 7411, '\p{^Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(0, 7411, '\P{Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(1, 7411, '\P{^Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(0, 7412, '\p{Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(1, 7412, '\p{^Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(1, 7412, '\P{Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Expect(0, 7412, '\P{^Is_Indic_Syllabic_Category=-	Consonant_DEAD}', "");
+    Error('\p{Is_InSC=:=Consonant_Dead}');
+    Error('\P{Is_InSC=:=Consonant_Dead}');
     Expect(1, 7411, '\p{Is_InSC=consonantdead}', "");
     Expect(0, 7411, '\p{^Is_InSC=consonantdead}', "");
     Expect(0, 7411, '\P{Is_InSC=consonantdead}', "");
@@ -50461,16 +51083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 7412, '\p{^Is_InSC=consonantdead}', "");
     Expect(1, 7412, '\P{Is_InSC=consonantdead}', "");
     Expect(0, 7412, '\P{^Is_InSC=consonantdead}', "");
-    Expect(1, 7411, '\p{Is_InSC=- CONSONANT_Dead}', "");
-    Expect(0, 7411, '\p{^Is_InSC=- CONSONANT_Dead}', "");
-    Expect(0, 7411, '\P{Is_InSC=- CONSONANT_Dead}', "");
-    Expect(1, 7411, '\P{^Is_InSC=- CONSONANT_Dead}', "");
-    Expect(0, 7412, '\p{Is_InSC=- CONSONANT_Dead}', "");
-    Expect(1, 7412, '\p{^Is_InSC=- CONSONANT_Dead}', "");
-    Expect(1, 7412, '\P{Is_InSC=- CONSONANT_Dead}', "");
-    Expect(0, 7412, '\P{^Is_InSC=- CONSONANT_Dead}', "");
-    Error('\p{Indic_Syllabic_Category=-_CONSONANT_FINAL:=}');
-    Error('\P{Indic_Syllabic_Category=-_CONSONANT_FINAL:=}');
+    Expect(1, 7411, '\p{Is_InSC=		Consonant_Dead}', "");
+    Expect(0, 7411, '\p{^Is_InSC=		Consonant_Dead}', "");
+    Expect(0, 7411, '\P{Is_InSC=		Consonant_Dead}', "");
+    Expect(1, 7411, '\P{^Is_InSC=		Consonant_Dead}', "");
+    Expect(0, 7412, '\p{Is_InSC=		Consonant_Dead}', "");
+    Expect(1, 7412, '\p{^Is_InSC=		Consonant_Dead}', "");
+    Expect(1, 7412, '\P{Is_InSC=		Consonant_Dead}', "");
+    Expect(0, 7412, '\P{^Is_InSC=		Consonant_Dead}', "");
+    Error('\p{Indic_Syllabic_Category:/a/_-Consonant_final}');
+    Error('\P{Indic_Syllabic_Category:/a/_-Consonant_final}');
     Expect(1, 72341, '\p{Indic_Syllabic_Category=:\AConsonant_Final\z:}', "");;
     Expect(0, 72342, '\p{Indic_Syllabic_Category=:\AConsonant_Final\z:}', "");;
     Expect(1, 72341, '\p{Indic_Syllabic_Category=consonantfinal}', "");
@@ -50483,16 +51105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72342, '\P{^Indic_Syllabic_Category=consonantfinal}', "");
     Expect(1, 72341, '\p{Indic_Syllabic_Category=:\Aconsonantfinal\z:}', "");;
     Expect(0, 72342, '\p{Indic_Syllabic_Category=:\Aconsonantfinal\z:}', "");;
-    Expect(1, 72341, '\p{Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(0, 72341, '\p{^Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(0, 72341, '\P{Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(1, 72341, '\P{^Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(0, 72342, '\p{Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(1, 72342, '\p{^Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(1, 72342, '\P{Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Expect(0, 72342, '\P{^Indic_Syllabic_Category:	__CONSONANT_Final}', "");
-    Error('\p{InSC=:=CONSONANT_Final}');
-    Error('\P{InSC=:=CONSONANT_Final}');
+    Expect(1, 72341, '\p{Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(0, 72341, '\p{^Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(0, 72341, '\P{Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(1, 72341, '\P{^Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(0, 72342, '\p{Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(1, 72342, '\p{^Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(1, 72342, '\P{Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Expect(0, 72342, '\P{^Indic_Syllabic_Category=_ CONSONANT_final}', "");
+    Error('\p{InSC=-/a/Consonant_final}');
+    Error('\P{InSC=-/a/Consonant_final}');
     Expect(1, 72341, '\p{InSC=:\AConsonant_Final\z:}', "");;
     Expect(0, 72342, '\p{InSC=:\AConsonant_Final\z:}', "");;
     Expect(1, 72341, '\p{InSC=consonantfinal}', "");
@@ -50505,16 +51127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72342, '\P{^InSC=consonantfinal}', "");
     Expect(1, 72341, '\p{InSC=:\Aconsonantfinal\z:}', "");;
     Expect(0, 72342, '\p{InSC=:\Aconsonantfinal\z:}', "");;
-    Expect(1, 72341, '\p{InSC=_	CONSONANT_Final}', "");
-    Expect(0, 72341, '\p{^InSC=_	CONSONANT_Final}', "");
-    Expect(0, 72341, '\P{InSC=_	CONSONANT_Final}', "");
-    Expect(1, 72341, '\P{^InSC=_	CONSONANT_Final}', "");
-    Expect(0, 72342, '\p{InSC=_	CONSONANT_Final}', "");
-    Expect(1, 72342, '\p{^InSC=_	CONSONANT_Final}', "");
-    Expect(1, 72342, '\P{InSC=_	CONSONANT_Final}', "");
-    Expect(0, 72342, '\P{^InSC=_	CONSONANT_Final}', "");
-    Error('\p{Is_Indic_Syllabic_Category= :=Consonant_FINAL}');
-    Error('\P{Is_Indic_Syllabic_Category= :=Consonant_FINAL}');
+    Expect(1, 72341, '\p{InSC=	_Consonant_Final}', "");
+    Expect(0, 72341, '\p{^InSC=	_Consonant_Final}', "");
+    Expect(0, 72341, '\P{InSC=	_Consonant_Final}', "");
+    Expect(1, 72341, '\P{^InSC=	_Consonant_Final}', "");
+    Expect(0, 72342, '\p{InSC=	_Consonant_Final}', "");
+    Expect(1, 72342, '\p{^InSC=	_Consonant_Final}', "");
+    Expect(1, 72342, '\P{InSC=	_Consonant_Final}', "");
+    Expect(0, 72342, '\P{^InSC=	_Consonant_Final}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_ CONSONANT_Final:=}');
+    Error('\P{Is_Indic_Syllabic_Category=_ CONSONANT_Final:=}');
     Expect(1, 72341, '\p{Is_Indic_Syllabic_Category=consonantfinal}', "");
     Expect(0, 72341, '\p{^Is_Indic_Syllabic_Category=consonantfinal}', "");
     Expect(0, 72341, '\P{Is_Indic_Syllabic_Category=consonantfinal}', "");
@@ -50523,16 +51145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72342, '\p{^Is_Indic_Syllabic_Category=consonantfinal}', "");
     Expect(1, 72342, '\P{Is_Indic_Syllabic_Category=consonantfinal}', "");
     Expect(0, 72342, '\P{^Is_Indic_Syllabic_Category=consonantfinal}', "");
-    Expect(1, 72341, '\p{Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(0, 72341, '\p{^Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(0, 72341, '\P{Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(1, 72341, '\P{^Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(0, 72342, '\p{Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(1, 72342, '\p{^Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(1, 72342, '\P{Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Expect(0, 72342, '\P{^Is_Indic_Syllabic_Category=- Consonant_FINAL}', "");
-    Error('\p{Is_InSC=/a/-_CONSONANT_final}');
-    Error('\P{Is_InSC=/a/-_CONSONANT_final}');
+    Expect(1, 72341, '\p{Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(0, 72341, '\p{^Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(0, 72341, '\P{Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(1, 72341, '\P{^Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(0, 72342, '\p{Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(1, 72342, '\p{^Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(1, 72342, '\P{Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Expect(0, 72342, '\P{^Is_Indic_Syllabic_Category=_	Consonant_Final}', "");
+    Error('\p{Is_InSC=_:=Consonant_Final}');
+    Error('\P{Is_InSC=_:=Consonant_Final}');
     Expect(1, 72341, '\p{Is_InSC=consonantfinal}', "");
     Expect(0, 72341, '\p{^Is_InSC=consonantfinal}', "");
     Expect(0, 72341, '\P{Is_InSC=consonantfinal}', "");
@@ -50541,38 +51163,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72342, '\p{^Is_InSC=consonantfinal}', "");
     Expect(1, 72342, '\P{Is_InSC=consonantfinal}', "");
     Expect(0, 72342, '\P{^Is_InSC=consonantfinal}', "");
-    Expect(1, 72341, '\p{Is_InSC=-_Consonant_final}', "");
-    Expect(0, 72341, '\p{^Is_InSC=-_Consonant_final}', "");
-    Expect(0, 72341, '\P{Is_InSC=-_Consonant_final}', "");
-    Expect(1, 72341, '\P{^Is_InSC=-_Consonant_final}', "");
-    Expect(0, 72342, '\p{Is_InSC=-_Consonant_final}', "");
-    Expect(1, 72342, '\p{^Is_InSC=-_Consonant_final}', "");
-    Expect(1, 72342, '\P{Is_InSC=-_Consonant_final}', "");
-    Expect(0, 72342, '\P{^Is_InSC=-_Consonant_final}', "");
-    Error('\p{Indic_Syllabic_Category=/a/	 Consonant_HEAD_Letter}');
-    Error('\P{Indic_Syllabic_Category=/a/	 Consonant_HEAD_Letter}');
+    Expect(1, 72341, '\p{Is_InSC: -consonant_FINAL}', "");
+    Expect(0, 72341, '\p{^Is_InSC: -consonant_FINAL}', "");
+    Expect(0, 72341, '\P{Is_InSC: -consonant_FINAL}', "");
+    Expect(1, 72341, '\P{^Is_InSC: -consonant_FINAL}', "");
+    Expect(0, 72342, '\p{Is_InSC: -consonant_FINAL}', "");
+    Expect(1, 72342, '\p{^Is_InSC: -consonant_FINAL}', "");
+    Expect(1, 72342, '\P{Is_InSC: -consonant_FINAL}', "");
+    Expect(0, 72342, '\P{^Is_InSC: -consonant_FINAL}', "");
+    Error('\p{Indic_Syllabic_Category:	:= 	consonant_head_letter}');
+    Error('\P{Indic_Syllabic_Category:	:= 	consonant_head_letter}');
     Expect(1, 3980, '\p{Indic_Syllabic_Category=:\AConsonant_Head_Letter\z:}', "");;
     Expect(0, 3981, '\p{Indic_Syllabic_Category=:\AConsonant_Head_Letter\z:}', "");;
-    Expect(1, 3980, '\p{Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(0, 3980, '\p{^Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(0, 3980, '\P{Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(1, 3980, '\P{^Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(0, 3981, '\p{Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(1, 3981, '\p{^Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(1, 3981, '\P{Indic_Syllabic_Category: consonantheadletter}', "");
-    Expect(0, 3981, '\P{^Indic_Syllabic_Category: consonantheadletter}', "");
+    Expect(1, 3980, '\p{Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(0, 3980, '\p{^Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(0, 3980, '\P{Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(1, 3980, '\P{^Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(0, 3981, '\p{Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(1, 3981, '\p{^Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(1, 3981, '\P{Indic_Syllabic_Category=consonantheadletter}', "");
+    Expect(0, 3981, '\P{^Indic_Syllabic_Category=consonantheadletter}', "");
     Expect(1, 3980, '\p{Indic_Syllabic_Category=:\Aconsonantheadletter\z:}', "");;
     Expect(0, 3981, '\p{Indic_Syllabic_Category=:\Aconsonantheadletter\z:}', "");;
-    Expect(1, 3980, '\p{Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(0, 3980, '\p{^Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(0, 3980, '\P{Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(1, 3980, '\P{^Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(0, 3981, '\p{Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(1, 3981, '\p{^Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(1, 3981, '\P{Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Expect(0, 3981, '\P{^Indic_Syllabic_Category=- CONSONANT_Head_Letter}', "");
-    Error('\p{InSC:   /a/CONSONANT_head_letter}');
-    Error('\P{InSC:   /a/CONSONANT_head_letter}');
+    Expect(1, 3980, '\p{Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(0, 3980, '\p{^Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(0, 3980, '\P{Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(1, 3980, '\P{^Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(0, 3981, '\p{Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(1, 3981, '\p{^Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(1, 3981, '\P{Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Expect(0, 3981, '\P{^Indic_Syllabic_Category=  Consonant_Head_LETTER}', "");
+    Error('\p{InSC=:= Consonant_head_Letter}');
+    Error('\P{InSC=:= Consonant_head_Letter}');
     Expect(1, 3980, '\p{InSC=:\AConsonant_Head_Letter\z:}', "");;
     Expect(0, 3981, '\p{InSC=:\AConsonant_Head_Letter\z:}', "");;
     Expect(1, 3980, '\p{InSC=consonantheadletter}', "");
@@ -50585,16 +51207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 3981, '\P{^InSC=consonantheadletter}', "");
     Expect(1, 3980, '\p{InSC=:\Aconsonantheadletter\z:}', "");;
     Expect(0, 3981, '\p{InSC=:\Aconsonantheadletter\z:}', "");;
-    Expect(1, 3980, '\p{InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(0, 3980, '\p{^InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(0, 3980, '\P{InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(1, 3980, '\P{^InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(0, 3981, '\p{InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(1, 3981, '\p{^InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(1, 3981, '\P{InSC=-CONSONANT_HEAD_LETTER}', "");
-    Expect(0, 3981, '\P{^InSC=-CONSONANT_HEAD_LETTER}', "");
-    Error('\p{Is_Indic_Syllabic_Category=-:=Consonant_HEAD_LETTER}');
-    Error('\P{Is_Indic_Syllabic_Category=-:=Consonant_HEAD_LETTER}');
+    Expect(1, 3980, '\p{InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(0, 3980, '\p{^InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(0, 3980, '\P{InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(1, 3980, '\P{^InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(0, 3981, '\p{InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(1, 3981, '\p{^InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(1, 3981, '\P{InSC=-	CONSONANT_head_LETTER}', "");
+    Expect(0, 3981, '\P{^InSC=-	CONSONANT_head_LETTER}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	_Consonant_Head_Letter:=}');
+    Error('\P{Is_Indic_Syllabic_Category=	_Consonant_Head_Letter:=}');
     Expect(1, 3980, '\p{Is_Indic_Syllabic_Category=consonantheadletter}', "");
     Expect(0, 3980, '\p{^Is_Indic_Syllabic_Category=consonantheadletter}', "");
     Expect(0, 3980, '\P{Is_Indic_Syllabic_Category=consonantheadletter}', "");
@@ -50603,16 +51225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3981, '\p{^Is_Indic_Syllabic_Category=consonantheadletter}', "");
     Expect(1, 3981, '\P{Is_Indic_Syllabic_Category=consonantheadletter}', "");
     Expect(0, 3981, '\P{^Is_Indic_Syllabic_Category=consonantheadletter}', "");
-    Expect(1, 3980, '\p{Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(0, 3980, '\p{^Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(0, 3980, '\P{Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(1, 3980, '\P{^Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(0, 3981, '\p{Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(1, 3981, '\p{^Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(1, 3981, '\P{Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Expect(0, 3981, '\P{^Is_Indic_Syllabic_Category:CONSONANT_Head_Letter}', "");
-    Error('\p{Is_InSC=/a/ -consonant_Head_Letter}');
-    Error('\P{Is_InSC=/a/ -consonant_Head_Letter}');
+    Expect(1, 3980, '\p{Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(0, 3980, '\p{^Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(0, 3980, '\P{Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(1, 3980, '\P{^Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(0, 3981, '\p{Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(1, 3981, '\p{^Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(1, 3981, '\P{Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Expect(0, 3981, '\P{^Is_Indic_Syllabic_Category=-	consonant_HEAD_Letter}', "");
+    Error('\p{Is_InSC=	Consonant_head_Letter:=}');
+    Error('\P{Is_InSC=	Consonant_head_Letter:=}');
     Expect(1, 3980, '\p{Is_InSC=consonantheadletter}', "");
     Expect(0, 3980, '\p{^Is_InSC=consonantheadletter}', "");
     Expect(0, 3980, '\P{Is_InSC=consonantheadletter}', "");
@@ -50621,38 +51243,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3981, '\p{^Is_InSC=consonantheadletter}', "");
     Expect(1, 3981, '\P{Is_InSC=consonantheadletter}', "");
     Expect(0, 3981, '\P{^Is_InSC=consonantheadletter}', "");
-    Expect(1, 3980, '\p{Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(0, 3980, '\p{^Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(0, 3980, '\P{Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(1, 3980, '\P{^Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(0, 3981, '\p{Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(1, 3981, '\p{^Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(1, 3981, '\P{Is_InSC: -	consonant_HEAD_Letter}', "");
-    Expect(0, 3981, '\P{^Is_InSC: -	consonant_HEAD_Letter}', "");
-    Error('\p{Indic_Syllabic_Category:   -Consonant_INITIAL_Postfixed:=}');
-    Error('\P{Indic_Syllabic_Category:   -Consonant_INITIAL_Postfixed:=}');
+    Expect(1, 3980, '\p{Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(0, 3980, '\p{^Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(0, 3980, '\P{Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(1, 3980, '\P{^Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(0, 3981, '\p{Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(1, 3981, '\p{^Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(1, 3981, '\P{Is_InSC=_CONSONANT_head_Letter}', "");
+    Expect(0, 3981, '\P{^Is_InSC=_CONSONANT_head_Letter}', "");
+    Error('\p{Indic_Syllabic_Category=_ Consonant_Initial_Postfixed/a/}');
+    Error('\P{Indic_Syllabic_Category=_ Consonant_Initial_Postfixed/a/}');
     Expect(1, 6746, '\p{Indic_Syllabic_Category=:\AConsonant_Initial_Postfixed\z:}', "");;
     Expect(0, 6747, '\p{Indic_Syllabic_Category=:\AConsonant_Initial_Postfixed\z:}', "");;
-    Expect(1, 6746, '\p{Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6746, '\p{^Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6746, '\P{Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6746, '\P{^Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6747, '\p{Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6747, '\p{^Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6747, '\P{Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6747, '\P{^Indic_Syllabic_Category=consonantinitialpostfixed}', "");
+    Expect(1, 6746, '\p{Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6746, '\p{^Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6746, '\P{Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6746, '\P{^Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6747, '\p{Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6747, '\p{^Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6747, '\P{Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6747, '\P{^Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
     Expect(1, 6746, '\p{Indic_Syllabic_Category=:\Aconsonantinitialpostfixed\z:}', "");;
     Expect(0, 6747, '\p{Indic_Syllabic_Category=:\Aconsonantinitialpostfixed\z:}', "");;
-    Expect(1, 6746, '\p{Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(0, 6746, '\p{^Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(0, 6746, '\P{Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(1, 6746, '\P{^Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(0, 6747, '\p{Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(1, 6747, '\p{^Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(1, 6747, '\P{Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Expect(0, 6747, '\P{^Indic_Syllabic_Category=- Consonant_Initial_Postfixed}', "");
-    Error('\p{InSC=/a/Consonant_Initial_POSTFIXED}');
-    Error('\P{InSC=/a/Consonant_Initial_POSTFIXED}');
+    Expect(1, 6746, '\p{Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(0, 6746, '\p{^Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(0, 6746, '\P{Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(1, 6746, '\P{^Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(0, 6747, '\p{Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(1, 6747, '\p{^Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(1, 6747, '\P{Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Expect(0, 6747, '\P{^Indic_Syllabic_Category=--consonant_Initial_Postfixed}', "");
+    Error('\p{InSC=	Consonant_initial_POSTFIXED:=}');
+    Error('\P{InSC=	Consonant_initial_POSTFIXED:=}');
     Expect(1, 6746, '\p{InSC=:\AConsonant_Initial_Postfixed\z:}', "");;
     Expect(0, 6747, '\p{InSC=:\AConsonant_Initial_Postfixed\z:}', "");;
     Expect(1, 6746, '\p{InSC=consonantinitialpostfixed}', "");
@@ -50665,34 +51287,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6747, '\P{^InSC=consonantinitialpostfixed}', "");
     Expect(1, 6746, '\p{InSC=:\Aconsonantinitialpostfixed\z:}', "");;
     Expect(0, 6747, '\p{InSC=:\Aconsonantinitialpostfixed\z:}', "");;
-    Expect(1, 6746, '\p{InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(0, 6746, '\p{^InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(0, 6746, '\P{InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(1, 6746, '\P{^InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(0, 6747, '\p{InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(1, 6747, '\p{^InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(1, 6747, '\P{InSC=- Consonant_Initial_POSTFIXED}', "");
-    Expect(0, 6747, '\P{^InSC=- Consonant_Initial_POSTFIXED}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:=	Consonant_initial_postfixed}');
-    Error('\P{Is_Indic_Syllabic_Category=:=	Consonant_initial_postfixed}');
-    Expect(1, 6746, '\p{Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6746, '\p{^Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6746, '\P{Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6746, '\P{^Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6747, '\p{Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6747, '\p{^Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6747, '\P{Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(0, 6747, '\P{^Is_Indic_Syllabic_Category=consonantinitialpostfixed}', "");
-    Expect(1, 6746, '\p{Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(0, 6746, '\p{^Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(0, 6746, '\P{Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(1, 6746, '\P{^Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(0, 6747, '\p{Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(1, 6747, '\p{^Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(1, 6747, '\P{Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Expect(0, 6747, '\P{^Is_Indic_Syllabic_Category=_	consonant_INITIAL_Postfixed}', "");
-    Error('\p{Is_InSC=	CONSONANT_initial_Postfixed/a/}');
-    Error('\P{Is_InSC=	CONSONANT_initial_Postfixed/a/}');
+    Expect(1, 6746, '\p{InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(0, 6746, '\p{^InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(0, 6746, '\P{InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(1, 6746, '\P{^InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(0, 6747, '\p{InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(1, 6747, '\p{^InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(1, 6747, '\P{InSC=_consonant_INITIAL_postfixed}', "");
+    Expect(0, 6747, '\P{^InSC=_consonant_INITIAL_postfixed}', "");
+    Error('\p{Is_Indic_Syllabic_Category=/a/Consonant_Initial_Postfixed}');
+    Error('\P{Is_Indic_Syllabic_Category=/a/Consonant_Initial_Postfixed}');
+    Expect(1, 6746, '\p{Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6746, '\p{^Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6746, '\P{Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6746, '\P{^Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6747, '\p{Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6747, '\p{^Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6747, '\P{Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(0, 6747, '\P{^Is_Indic_Syllabic_Category:	consonantinitialpostfixed}', "");
+    Expect(1, 6746, '\p{Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(0, 6746, '\p{^Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(0, 6746, '\P{Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(1, 6746, '\P{^Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(0, 6747, '\p{Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(1, 6747, '\p{^Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(1, 6747, '\P{Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Expect(0, 6747, '\P{^Is_Indic_Syllabic_Category= _Consonant_Initial_POSTFIXED}', "");
+    Error('\p{Is_InSC=/a/--Consonant_initial_postfixed}');
+    Error('\P{Is_InSC=/a/--Consonant_initial_postfixed}');
     Expect(1, 6746, '\p{Is_InSC=consonantinitialpostfixed}', "");
     Expect(0, 6746, '\p{^Is_InSC=consonantinitialpostfixed}', "");
     Expect(0, 6746, '\P{Is_InSC=consonantinitialpostfixed}', "");
@@ -50701,16 +51323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 6747, '\p{^Is_InSC=consonantinitialpostfixed}', "");
     Expect(1, 6747, '\P{Is_InSC=consonantinitialpostfixed}', "");
     Expect(0, 6747, '\P{^Is_InSC=consonantinitialpostfixed}', "");
-    Expect(1, 6746, '\p{Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(0, 6746, '\p{^Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(0, 6746, '\P{Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(1, 6746, '\P{^Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(0, 6747, '\p{Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(1, 6747, '\p{^Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(1, 6747, '\P{Is_InSC:_consonant_initial_postfixed}', "");
-    Expect(0, 6747, '\P{^Is_InSC:_consonant_initial_postfixed}', "");
-    Error('\p{Indic_Syllabic_Category=:=CONSONANT_KILLER}');
-    Error('\P{Indic_Syllabic_Category=:=CONSONANT_KILLER}');
+    Expect(1, 6746, '\p{Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(0, 6746, '\p{^Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(0, 6746, '\P{Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(1, 6746, '\P{^Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(0, 6747, '\p{Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(1, 6747, '\p{^Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(1, 6747, '\P{Is_InSC=		consonant_Initial_Postfixed}', "");
+    Expect(0, 6747, '\P{^Is_InSC=		consonant_Initial_Postfixed}', "");
+    Error('\p{Indic_Syllabic_Category=_:=consonant_Killer}');
+    Error('\P{Indic_Syllabic_Category=_:=consonant_Killer}');
     Expect(1, 6093, '\p{Indic_Syllabic_Category=:\AConsonant_Killer\z:}', "");;
     Expect(0, 6094, '\p{Indic_Syllabic_Category=:\AConsonant_Killer\z:}', "");;
     Expect(1, 6093, '\p{Indic_Syllabic_Category=consonantkiller}', "");
@@ -50723,16 +51345,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6094, '\P{^Indic_Syllabic_Category=consonantkiller}', "");
     Expect(1, 6093, '\p{Indic_Syllabic_Category=:\Aconsonantkiller\z:}', "");;
     Expect(0, 6094, '\p{Indic_Syllabic_Category=:\Aconsonantkiller\z:}', "");;
-    Expect(1, 6093, '\p{Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(0, 6093, '\p{^Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(0, 6093, '\P{Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(1, 6093, '\P{^Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(0, 6094, '\p{Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(1, 6094, '\p{^Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(1, 6094, '\P{Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Expect(0, 6094, '\P{^Indic_Syllabic_Category= -Consonant_Killer}', "");
-    Error('\p{InSC=_:=consonant_KILLER}');
-    Error('\P{InSC=_:=consonant_KILLER}');
+    Expect(1, 6093, '\p{Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(0, 6093, '\p{^Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(0, 6093, '\P{Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(1, 6093, '\P{^Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(0, 6094, '\p{Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(1, 6094, '\p{^Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(1, 6094, '\P{Indic_Syllabic_Category=_-consonant_killer}', "");
+    Expect(0, 6094, '\P{^Indic_Syllabic_Category=_-consonant_killer}', "");
+    Error('\p{InSC= -CONSONANT_killer/a/}');
+    Error('\P{InSC= -CONSONANT_killer/a/}');
     Expect(1, 6093, '\p{InSC=:\AConsonant_Killer\z:}', "");;
     Expect(0, 6094, '\p{InSC=:\AConsonant_Killer\z:}', "");;
     Expect(1, 6093, '\p{InSC=consonantkiller}', "");
@@ -50745,16 +51367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6094, '\P{^InSC=consonantkiller}', "");
     Expect(1, 6093, '\p{InSC=:\Aconsonantkiller\z:}', "");;
     Expect(0, 6094, '\p{InSC=:\Aconsonantkiller\z:}', "");;
-    Expect(1, 6093, '\p{InSC= Consonant_killer}', "");
-    Expect(0, 6093, '\p{^InSC= Consonant_killer}', "");
-    Expect(0, 6093, '\P{InSC= Consonant_killer}', "");
-    Expect(1, 6093, '\P{^InSC= Consonant_killer}', "");
-    Expect(0, 6094, '\p{InSC= Consonant_killer}', "");
-    Expect(1, 6094, '\p{^InSC= Consonant_killer}', "");
-    Expect(1, 6094, '\P{InSC= Consonant_killer}', "");
-    Expect(0, 6094, '\P{^InSC= Consonant_killer}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	-Consonant_Killer:=}');
-    Error('\P{Is_Indic_Syllabic_Category=	-Consonant_Killer:=}');
+    Expect(1, 6093, '\p{InSC=_CONSONANT_killer}', "");
+    Expect(0, 6093, '\p{^InSC=_CONSONANT_killer}', "");
+    Expect(0, 6093, '\P{InSC=_CONSONANT_killer}', "");
+    Expect(1, 6093, '\P{^InSC=_CONSONANT_killer}', "");
+    Expect(0, 6094, '\p{InSC=_CONSONANT_killer}', "");
+    Expect(1, 6094, '\p{^InSC=_CONSONANT_killer}', "");
+    Expect(1, 6094, '\P{InSC=_CONSONANT_killer}', "");
+    Expect(0, 6094, '\P{^InSC=_CONSONANT_killer}', "");
+    Error('\p{Is_Indic_Syllabic_Category=- consonant_Killer/a/}');
+    Error('\P{Is_Indic_Syllabic_Category=- consonant_Killer/a/}');
     Expect(1, 6093, '\p{Is_Indic_Syllabic_Category=consonantkiller}', "");
     Expect(0, 6093, '\p{^Is_Indic_Syllabic_Category=consonantkiller}', "");
     Expect(0, 6093, '\P{Is_Indic_Syllabic_Category=consonantkiller}', "");
@@ -50763,16 +51385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 6094, '\p{^Is_Indic_Syllabic_Category=consonantkiller}', "");
     Expect(1, 6094, '\P{Is_Indic_Syllabic_Category=consonantkiller}', "");
     Expect(0, 6094, '\P{^Is_Indic_Syllabic_Category=consonantkiller}', "");
-    Expect(1, 6093, '\p{Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(0, 6093, '\p{^Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(0, 6093, '\P{Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(1, 6093, '\P{^Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(0, 6094, '\p{Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(1, 6094, '\p{^Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(1, 6094, '\P{Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Expect(0, 6094, '\P{^Is_Indic_Syllabic_Category=-CONSONANT_Killer}', "");
-    Error('\p{Is_InSC=		consonant_killer/a/}');
-    Error('\P{Is_InSC=		consonant_killer/a/}');
+    Expect(1, 6093, '\p{Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(0, 6093, '\p{^Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(0, 6093, '\P{Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(1, 6093, '\P{^Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(0, 6094, '\p{Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(1, 6094, '\p{^Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(1, 6094, '\P{Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Expect(0, 6094, '\P{^Is_Indic_Syllabic_Category=  consonant_Killer}', "");
+    Error('\p{Is_InSC= 	Consonant_Killer:=}');
+    Error('\P{Is_InSC= 	Consonant_Killer:=}');
     Expect(1, 6093, '\p{Is_InSC=consonantkiller}', "");
     Expect(0, 6093, '\p{^Is_InSC=consonantkiller}', "");
     Expect(0, 6093, '\P{Is_InSC=consonantkiller}', "");
@@ -50781,16 +51403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 6094, '\p{^Is_InSC=consonantkiller}', "");
     Expect(1, 6094, '\P{Is_InSC=consonantkiller}', "");
     Expect(0, 6094, '\P{^Is_InSC=consonantkiller}', "");
-    Expect(1, 6093, '\p{Is_InSC:    consonant_Killer}', "");
-    Expect(0, 6093, '\p{^Is_InSC:    consonant_Killer}', "");
-    Expect(0, 6093, '\P{Is_InSC:    consonant_Killer}', "");
-    Expect(1, 6093, '\P{^Is_InSC:    consonant_Killer}', "");
-    Expect(0, 6094, '\p{Is_InSC:    consonant_Killer}', "");
-    Expect(1, 6094, '\p{^Is_InSC:    consonant_Killer}', "");
-    Expect(1, 6094, '\P{Is_InSC:    consonant_Killer}', "");
-    Expect(0, 6094, '\P{^Is_InSC:    consonant_Killer}', "");
-    Error('\p{Indic_Syllabic_Category=:=- Consonant_MEDIAL}');
-    Error('\P{Indic_Syllabic_Category=:=- Consonant_MEDIAL}');
+    Expect(1, 6093, '\p{Is_InSC=	-Consonant_Killer}', "");
+    Expect(0, 6093, '\p{^Is_InSC=	-Consonant_Killer}', "");
+    Expect(0, 6093, '\P{Is_InSC=	-Consonant_Killer}', "");
+    Expect(1, 6093, '\P{^Is_InSC=	-Consonant_Killer}', "");
+    Expect(0, 6094, '\p{Is_InSC=	-Consonant_Killer}', "");
+    Expect(1, 6094, '\p{^Is_InSC=	-Consonant_Killer}', "");
+    Expect(1, 6094, '\P{Is_InSC=	-Consonant_Killer}', "");
+    Expect(0, 6094, '\P{^Is_InSC=	-Consonant_Killer}', "");
+    Error('\p{Indic_Syllabic_Category=_Consonant_Medial/a/}');
+    Error('\P{Indic_Syllabic_Category=_Consonant_Medial/a/}');
     Expect(1, 73031, '\p{Indic_Syllabic_Category=:\AConsonant_Medial\z:}', "");;
     Expect(0, 73032, '\p{Indic_Syllabic_Category=:\AConsonant_Medial\z:}', "");;
     Expect(1, 73031, '\p{Indic_Syllabic_Category=consonantmedial}', "");
@@ -50803,16 +51425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73032, '\P{^Indic_Syllabic_Category=consonantmedial}', "");
     Expect(1, 73031, '\p{Indic_Syllabic_Category=:\Aconsonantmedial\z:}', "");;
     Expect(0, 73032, '\p{Indic_Syllabic_Category=:\Aconsonantmedial\z:}', "");;
-    Expect(1, 73031, '\p{Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(0, 73031, '\p{^Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(0, 73031, '\P{Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(1, 73031, '\P{^Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(0, 73032, '\p{Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(1, 73032, '\p{^Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(1, 73032, '\P{Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Expect(0, 73032, '\P{^Indic_Syllabic_Category=	Consonant_Medial}', "");
-    Error('\p{InSC=/a/	-consonant_Medial}');
-    Error('\P{InSC=/a/	-consonant_Medial}');
+    Expect(1, 73031, '\p{Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(0, 73031, '\p{^Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(0, 73031, '\P{Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(1, 73031, '\P{^Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(0, 73032, '\p{Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(1, 73032, '\p{^Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(1, 73032, '\P{Indic_Syllabic_Category=Consonant_Medial}', "");
+    Expect(0, 73032, '\P{^Indic_Syllabic_Category=Consonant_Medial}', "");
+    Error('\p{InSC=	CONSONANT_Medial:=}');
+    Error('\P{InSC=	CONSONANT_Medial:=}');
     Expect(1, 73031, '\p{InSC=:\AConsonant_Medial\z:}', "");;
     Expect(0, 73032, '\p{InSC=:\AConsonant_Medial\z:}', "");;
     Expect(1, 73031, '\p{InSC=consonantmedial}', "");
@@ -50825,16 +51447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73032, '\P{^InSC=consonantmedial}', "");
     Expect(1, 73031, '\p{InSC=:\Aconsonantmedial\z:}', "");;
     Expect(0, 73032, '\p{InSC=:\Aconsonantmedial\z:}', "");;
-    Expect(1, 73031, '\p{InSC=_-consonant_MEDIAL}', "");
-    Expect(0, 73031, '\p{^InSC=_-consonant_MEDIAL}', "");
-    Expect(0, 73031, '\P{InSC=_-consonant_MEDIAL}', "");
-    Expect(1, 73031, '\P{^InSC=_-consonant_MEDIAL}', "");
-    Expect(0, 73032, '\p{InSC=_-consonant_MEDIAL}', "");
-    Expect(1, 73032, '\p{^InSC=_-consonant_MEDIAL}', "");
-    Expect(1, 73032, '\P{InSC=_-consonant_MEDIAL}', "");
-    Expect(0, 73032, '\P{^InSC=_-consonant_MEDIAL}', "");
-    Error('\p{Is_Indic_Syllabic_Category=_/a/Consonant_Medial}');
-    Error('\P{Is_Indic_Syllabic_Category=_/a/Consonant_Medial}');
+    Expect(1, 73031, '\p{InSC:   	Consonant_medial}', "");
+    Expect(0, 73031, '\p{^InSC:   	Consonant_medial}', "");
+    Expect(0, 73031, '\P{InSC:   	Consonant_medial}', "");
+    Expect(1, 73031, '\P{^InSC:   	Consonant_medial}', "");
+    Expect(0, 73032, '\p{InSC:   	Consonant_medial}', "");
+    Expect(1, 73032, '\p{^InSC:   	Consonant_medial}', "");
+    Expect(1, 73032, '\P{InSC:   	Consonant_medial}', "");
+    Expect(0, 73032, '\P{^InSC:   	Consonant_medial}', "");
+    Error('\p{Is_Indic_Syllabic_Category= :=consonant_Medial}');
+    Error('\P{Is_Indic_Syllabic_Category= :=consonant_Medial}');
     Expect(1, 73031, '\p{Is_Indic_Syllabic_Category:	consonantmedial}', "");
     Expect(0, 73031, '\p{^Is_Indic_Syllabic_Category:	consonantmedial}', "");
     Expect(0, 73031, '\P{Is_Indic_Syllabic_Category:	consonantmedial}', "");
@@ -50843,34 +51465,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73032, '\p{^Is_Indic_Syllabic_Category:	consonantmedial}', "");
     Expect(1, 73032, '\P{Is_Indic_Syllabic_Category:	consonantmedial}', "");
     Expect(0, 73032, '\P{^Is_Indic_Syllabic_Category:	consonantmedial}', "");
-    Expect(1, 73031, '\p{Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(0, 73031, '\p{^Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(0, 73031, '\P{Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(1, 73031, '\P{^Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(0, 73032, '\p{Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(1, 73032, '\p{^Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(1, 73032, '\P{Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Expect(0, 73032, '\P{^Is_Indic_Syllabic_Category=-_Consonant_MEDIAL}', "");
-    Error('\p{Is_InSC= /a/consonant_Medial}');
-    Error('\P{Is_InSC= /a/consonant_Medial}');
-    Expect(1, 73031, '\p{Is_InSC=consonantmedial}', "");
-    Expect(0, 73031, '\p{^Is_InSC=consonantmedial}', "");
-    Expect(0, 73031, '\P{Is_InSC=consonantmedial}', "");
-    Expect(1, 73031, '\P{^Is_InSC=consonantmedial}', "");
-    Expect(0, 73032, '\p{Is_InSC=consonantmedial}', "");
-    Expect(1, 73032, '\p{^Is_InSC=consonantmedial}', "");
-    Expect(1, 73032, '\P{Is_InSC=consonantmedial}', "");
-    Expect(0, 73032, '\P{^Is_InSC=consonantmedial}', "");
-    Expect(1, 73031, '\p{Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(0, 73031, '\p{^Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(0, 73031, '\P{Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(1, 73031, '\P{^Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(0, 73032, '\p{Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(1, 73032, '\p{^Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(1, 73032, '\P{Is_InSC=_	Consonant_MEDIAL}', "");
-    Expect(0, 73032, '\P{^Is_InSC=_	Consonant_MEDIAL}', "");
-    Error('\p{Indic_Syllabic_Category=	_consonant_placeholder/a/}');
-    Error('\P{Indic_Syllabic_Category=	_consonant_placeholder/a/}');
+    Expect(1, 73031, '\p{Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(0, 73031, '\p{^Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(0, 73031, '\P{Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(1, 73031, '\P{^Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(0, 73032, '\p{Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(1, 73032, '\p{^Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(1, 73032, '\P{Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Expect(0, 73032, '\P{^Is_Indic_Syllabic_Category=_ CONSONANT_Medial}', "");
+    Error('\p{Is_InSC=/a/	 CONSONANT_Medial}');
+    Error('\P{Is_InSC=/a/	 CONSONANT_Medial}');
+    Expect(1, 73031, '\p{Is_InSC:consonantmedial}', "");
+    Expect(0, 73031, '\p{^Is_InSC:consonantmedial}', "");
+    Expect(0, 73031, '\P{Is_InSC:consonantmedial}', "");
+    Expect(1, 73031, '\P{^Is_InSC:consonantmedial}', "");
+    Expect(0, 73032, '\p{Is_InSC:consonantmedial}', "");
+    Expect(1, 73032, '\p{^Is_InSC:consonantmedial}', "");
+    Expect(1, 73032, '\P{Is_InSC:consonantmedial}', "");
+    Expect(0, 73032, '\P{^Is_InSC:consonantmedial}', "");
+    Expect(1, 73031, '\p{Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(0, 73031, '\p{^Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(0, 73031, '\P{Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(1, 73031, '\P{^Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(0, 73032, '\p{Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(1, 73032, '\p{^Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(1, 73032, '\P{Is_InSC=_-Consonant_MEDIAL}', "");
+    Expect(0, 73032, '\P{^Is_InSC=_-Consonant_MEDIAL}', "");
+    Error('\p{Indic_Syllabic_Category= :=Consonant_Placeholder}');
+    Error('\P{Indic_Syllabic_Category= :=Consonant_Placeholder}');
     Expect(1, 73458, '\p{Indic_Syllabic_Category=:\AConsonant_Placeholder\z:}', "");;
     Expect(0, 73459, '\p{Indic_Syllabic_Category=:\AConsonant_Placeholder\z:}', "");;
     Expect(1, 73458, '\p{Indic_Syllabic_Category=consonantplaceholder}', "");
@@ -50883,16 +51505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73459, '\P{^Indic_Syllabic_Category=consonantplaceholder}', "");
     Expect(1, 73458, '\p{Indic_Syllabic_Category=:\Aconsonantplaceholder\z:}', "");;
     Expect(0, 73459, '\p{Indic_Syllabic_Category=:\Aconsonantplaceholder\z:}', "");;
-    Expect(1, 73458, '\p{Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(0, 73458, '\p{^Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(0, 73458, '\P{Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(1, 73458, '\P{^Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(0, 73459, '\p{Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(1, 73459, '\p{^Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(1, 73459, '\P{Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Expect(0, 73459, '\P{^Indic_Syllabic_Category= _consonant_PLACEHOLDER}', "");
-    Error('\p{InSC=:=- Consonant_placeholder}');
-    Error('\P{InSC=:=- Consonant_placeholder}');
+    Expect(1, 73458, '\p{Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(0, 73458, '\p{^Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(0, 73458, '\P{Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(1, 73458, '\P{^Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(0, 73459, '\p{Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(1, 73459, '\p{^Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(1, 73459, '\P{Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Expect(0, 73459, '\P{^Indic_Syllabic_Category:		_Consonant_placeholder}', "");
+    Error('\p{InSC=	_consonant_PLACEHOLDER/a/}');
+    Error('\P{InSC=	_consonant_PLACEHOLDER/a/}');
     Expect(1, 73458, '\p{InSC=:\AConsonant_Placeholder\z:}', "");;
     Expect(0, 73459, '\p{InSC=:\AConsonant_Placeholder\z:}', "");;
     Expect(1, 73458, '\p{InSC=consonantplaceholder}', "");
@@ -50905,16 +51527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73459, '\P{^InSC=consonantplaceholder}', "");
     Expect(1, 73458, '\p{InSC=:\Aconsonantplaceholder\z:}', "");;
     Expect(0, 73459, '\p{InSC=:\Aconsonantplaceholder\z:}', "");;
-    Expect(1, 73458, '\p{InSC=	 consonant_placeholder}', "");
-    Expect(0, 73458, '\p{^InSC=	 consonant_placeholder}', "");
-    Expect(0, 73458, '\P{InSC=	 consonant_placeholder}', "");
-    Expect(1, 73458, '\P{^InSC=	 consonant_placeholder}', "");
-    Expect(0, 73459, '\p{InSC=	 consonant_placeholder}', "");
-    Expect(1, 73459, '\p{^InSC=	 consonant_placeholder}', "");
-    Expect(1, 73459, '\P{InSC=	 consonant_placeholder}', "");
-    Expect(0, 73459, '\P{^InSC=	 consonant_placeholder}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	_CONSONANT_Placeholder/a/}');
-    Error('\P{Is_Indic_Syllabic_Category=	_CONSONANT_Placeholder/a/}');
+    Expect(1, 73458, '\p{InSC=		Consonant_Placeholder}', "");
+    Expect(0, 73458, '\p{^InSC=		Consonant_Placeholder}', "");
+    Expect(0, 73458, '\P{InSC=		Consonant_Placeholder}', "");
+    Expect(1, 73458, '\P{^InSC=		Consonant_Placeholder}', "");
+    Expect(0, 73459, '\p{InSC=		Consonant_Placeholder}', "");
+    Expect(1, 73459, '\p{^InSC=		Consonant_Placeholder}', "");
+    Expect(1, 73459, '\P{InSC=		Consonant_Placeholder}', "");
+    Expect(0, 73459, '\P{^InSC=		Consonant_Placeholder}', "");
+    Error('\p{Is_Indic_Syllabic_Category=-/a/CONSONANT_placeholder}');
+    Error('\P{Is_Indic_Syllabic_Category=-/a/CONSONANT_placeholder}');
     Expect(1, 73458, '\p{Is_Indic_Syllabic_Category=consonantplaceholder}', "");
     Expect(0, 73458, '\p{^Is_Indic_Syllabic_Category=consonantplaceholder}', "");
     Expect(0, 73458, '\P{Is_Indic_Syllabic_Category=consonantplaceholder}', "");
@@ -50923,16 +51545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73459, '\p{^Is_Indic_Syllabic_Category=consonantplaceholder}', "");
     Expect(1, 73459, '\P{Is_Indic_Syllabic_Category=consonantplaceholder}', "");
     Expect(0, 73459, '\P{^Is_Indic_Syllabic_Category=consonantplaceholder}', "");
-    Expect(1, 73458, '\p{Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(0, 73458, '\p{^Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(0, 73458, '\P{Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(1, 73458, '\P{^Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(0, 73459, '\p{Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(1, 73459, '\p{^Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(1, 73459, '\P{Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Expect(0, 73459, '\P{^Is_Indic_Syllabic_Category=-CONSONANT_Placeholder}', "");
-    Error('\p{Is_InSC=__Consonant_PLACEHOLDER/a/}');
-    Error('\P{Is_InSC=__Consonant_PLACEHOLDER/a/}');
+    Expect(1, 73458, '\p{Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(0, 73458, '\p{^Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(0, 73458, '\P{Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(1, 73458, '\P{^Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(0, 73459, '\p{Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(1, 73459, '\p{^Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(1, 73459, '\P{Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Expect(0, 73459, '\P{^Is_Indic_Syllabic_Category= 	consonant_Placeholder}', "");
+    Error('\p{Is_InSC=	:=CONSONANT_placeholder}');
+    Error('\P{Is_InSC=	:=CONSONANT_placeholder}');
     Expect(1, 73458, '\p{Is_InSC=consonantplaceholder}', "");
     Expect(0, 73458, '\p{^Is_InSC=consonantplaceholder}', "");
     Expect(0, 73458, '\P{Is_InSC=consonantplaceholder}', "");
@@ -50941,96 +51563,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73459, '\p{^Is_InSC=consonantplaceholder}', "");
     Expect(1, 73459, '\P{Is_InSC=consonantplaceholder}', "");
     Expect(0, 73459, '\P{^Is_InSC=consonantplaceholder}', "");
-    Expect(1, 73458, '\p{Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(0, 73458, '\p{^Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(0, 73458, '\P{Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(1, 73458, '\P{^Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(0, 73459, '\p{Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(1, 73459, '\p{^Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(1, 73459, '\P{Is_InSC=_consonant_PLACEHOLDER}', "");
-    Expect(0, 73459, '\P{^Is_InSC=_consonant_PLACEHOLDER}', "");
-    Error('\p{Indic_Syllabic_Category=-/a/Consonant_Preceding_Repha}');
-    Error('\P{Indic_Syllabic_Category=-/a/Consonant_Preceding_Repha}');
-    Expect(1, 73030, '\p{Indic_Syllabic_Category=:\AConsonant_Preceding_Repha\z:}', "");;
-    Expect(0, 73031, '\p{Indic_Syllabic_Category=:\AConsonant_Preceding_Repha\z:}', "");;
-    Expect(1, 73030, '\p{Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\p{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\P{Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\P{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\p{Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\p{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\P{Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\P{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\p{Indic_Syllabic_Category=:\Aconsonantprecedingrepha\z:}', "");;
-    Expect(0, 73031, '\p{Indic_Syllabic_Category=:\Aconsonantprecedingrepha\z:}', "");;
-    Expect(1, 73030, '\p{Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(0, 73030, '\p{^Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(0, 73030, '\P{Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(1, 73030, '\P{^Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(0, 73031, '\p{Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(1, 73031, '\p{^Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(1, 73031, '\P{Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Expect(0, 73031, '\P{^Indic_Syllabic_Category=_consonant_preceding_Repha}', "");
-    Error('\p{InSC= :=consonant_Preceding_Repha}');
-    Error('\P{InSC= :=consonant_Preceding_Repha}');
-    Expect(1, 73030, '\p{InSC=:\AConsonant_Preceding_Repha\z:}', "");;
-    Expect(0, 73031, '\p{InSC=:\AConsonant_Preceding_Repha\z:}', "");;
-    Expect(1, 73030, '\p{InSC=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\p{^InSC=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\P{InSC=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\P{^InSC=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\p{InSC=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\p{^InSC=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\P{InSC=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\P{^InSC=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\p{InSC=:\Aconsonantprecedingrepha\z:}', "");;
-    Expect(0, 73031, '\p{InSC=:\Aconsonantprecedingrepha\z:}', "");;
-    Expect(1, 73030, '\p{InSC= -consonant_PRECEDING_repha}', "");
-    Expect(0, 73030, '\p{^InSC= -consonant_PRECEDING_repha}', "");
-    Expect(0, 73030, '\P{InSC= -consonant_PRECEDING_repha}', "");
-    Expect(1, 73030, '\P{^InSC= -consonant_PRECEDING_repha}', "");
-    Expect(0, 73031, '\p{InSC= -consonant_PRECEDING_repha}', "");
-    Expect(1, 73031, '\p{^InSC= -consonant_PRECEDING_repha}', "");
-    Expect(1, 73031, '\P{InSC= -consonant_PRECEDING_repha}', "");
-    Expect(0, 73031, '\P{^InSC= -consonant_PRECEDING_repha}', "");
-    Error('\p{Is_Indic_Syllabic_Category=-/a/Consonant_Preceding_REPHA}');
-    Error('\P{Is_Indic_Syllabic_Category=-/a/Consonant_Preceding_REPHA}');
-    Expect(1, 73030, '\p{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\p{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\P{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\P{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\p{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\p{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\P{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\P{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\p{Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(0, 73030, '\p{^Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(0, 73030, '\P{Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(1, 73030, '\P{^Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(0, 73031, '\p{Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(1, 73031, '\p{^Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(1, 73031, '\P{Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Expect(0, 73031, '\P{^Is_Indic_Syllabic_Category=_	CONSONANT_PRECEDING_Repha}', "");
-    Error('\p{Is_InSC=:=_	Consonant_preceding_repha}');
-    Error('\P{Is_InSC=:=_	Consonant_preceding_repha}');
-    Expect(1, 73030, '\p{Is_InSC=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\p{^Is_InSC=consonantprecedingrepha}', "");
-    Expect(0, 73030, '\P{Is_InSC=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\P{^Is_InSC=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\p{Is_InSC=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\p{^Is_InSC=consonantprecedingrepha}', "");
-    Expect(1, 73031, '\P{Is_InSC=consonantprecedingrepha}', "");
-    Expect(0, 73031, '\P{^Is_InSC=consonantprecedingrepha}', "");
-    Expect(1, 73030, '\p{Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(0, 73030, '\p{^Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(0, 73030, '\P{Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(1, 73030, '\P{^Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(0, 73031, '\p{Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(1, 73031, '\p{^Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(1, 73031, '\P{Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Expect(0, 73031, '\P{^Is_InSC=	Consonant_Preceding_REPHA}', "");
-    Error('\p{Indic_Syllabic_Category:   := Consonant_prefixed}');
-    Error('\P{Indic_Syllabic_Category:   := Consonant_prefixed}');
+    Expect(1, 73458, '\p{Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(0, 73458, '\p{^Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(0, 73458, '\P{Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(1, 73458, '\P{^Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(0, 73459, '\p{Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(1, 73459, '\p{^Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(1, 73459, '\P{Is_InSC=__CONSONANT_Placeholder}', "");
+    Expect(0, 73459, '\P{^Is_InSC=__CONSONANT_Placeholder}', "");
+    Error('\p{Indic_Syllabic_Category=:=-	consonant_Preceding_Repha}');
+    Error('\P{Indic_Syllabic_Category=:=-	consonant_Preceding_Repha}');
+    Expect(1, 73474, '\p{Indic_Syllabic_Category=:\AConsonant_Preceding_Repha\z:}', "");;
+    Expect(0, 73475, '\p{Indic_Syllabic_Category=:\AConsonant_Preceding_Repha\z:}', "");;
+    Expect(1, 73474, '\p{Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\p{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\P{Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\P{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\p{Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\p{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\P{Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\P{^Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\p{Indic_Syllabic_Category=:\Aconsonantprecedingrepha\z:}', "");;
+    Expect(0, 73475, '\p{Indic_Syllabic_Category=:\Aconsonantprecedingrepha\z:}', "");;
+    Expect(1, 73474, '\p{Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(0, 73474, '\p{^Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(0, 73474, '\P{Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(1, 73474, '\P{^Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(0, 73475, '\p{Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(1, 73475, '\p{^Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(1, 73475, '\P{Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Expect(0, 73475, '\P{^Indic_Syllabic_Category=	Consonant_Preceding_repha}', "");
+    Error('\p{InSC=	 CONSONANT_Preceding_Repha/a/}');
+    Error('\P{InSC=	 CONSONANT_Preceding_Repha/a/}');
+    Expect(1, 73474, '\p{InSC=:\AConsonant_Preceding_Repha\z:}', "");;
+    Expect(0, 73475, '\p{InSC=:\AConsonant_Preceding_Repha\z:}', "");;
+    Expect(1, 73474, '\p{InSC=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\p{^InSC=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\P{InSC=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\P{^InSC=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\p{InSC=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\p{^InSC=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\P{InSC=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\P{^InSC=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\p{InSC=:\Aconsonantprecedingrepha\z:}', "");;
+    Expect(0, 73475, '\p{InSC=:\Aconsonantprecedingrepha\z:}', "");;
+    Expect(1, 73474, '\p{InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(0, 73474, '\p{^InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(0, 73474, '\P{InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(1, 73474, '\P{^InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(0, 73475, '\p{InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(1, 73475, '\p{^InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(1, 73475, '\P{InSC:   - consonant_PRECEDING_REPHA}', "");
+    Expect(0, 73475, '\P{^InSC:   - consonant_PRECEDING_REPHA}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	:=consonant_Preceding_Repha}');
+    Error('\P{Is_Indic_Syllabic_Category=	:=consonant_Preceding_Repha}');
+    Expect(1, 73474, '\p{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\p{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\P{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\P{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\p{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\p{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\P{Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\P{^Is_Indic_Syllabic_Category=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\p{Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(0, 73474, '\p{^Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(0, 73474, '\P{Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(1, 73474, '\P{^Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(0, 73475, '\p{Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(1, 73475, '\p{^Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(1, 73475, '\P{Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Expect(0, 73475, '\P{^Is_Indic_Syllabic_Category: _	Consonant_PRECEDING_Repha}', "");
+    Error('\p{Is_InSC= -Consonant_preceding_REPHA/a/}');
+    Error('\P{Is_InSC= -Consonant_preceding_REPHA/a/}');
+    Expect(1, 73474, '\p{Is_InSC=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\p{^Is_InSC=consonantprecedingrepha}', "");
+    Expect(0, 73474, '\P{Is_InSC=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\P{^Is_InSC=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\p{Is_InSC=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\p{^Is_InSC=consonantprecedingrepha}', "");
+    Expect(1, 73475, '\P{Is_InSC=consonantprecedingrepha}', "");
+    Expect(0, 73475, '\P{^Is_InSC=consonantprecedingrepha}', "");
+    Expect(1, 73474, '\p{Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(0, 73474, '\p{^Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(0, 73474, '\P{Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(1, 73474, '\P{^Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(0, 73475, '\p{Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(1, 73475, '\p{^Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(1, 73475, '\P{Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Expect(0, 73475, '\P{^Is_InSC=__consonant_PRECEDING_Repha}', "");
+    Error('\p{Indic_Syllabic_Category=-/a/consonant_PREFIXED}');
+    Error('\P{Indic_Syllabic_Category=-/a/consonant_PREFIXED}');
     Expect(1, 72329, '\p{Indic_Syllabic_Category=:\AConsonant_Prefixed\z:}', "");;
     Expect(0, 72330, '\p{Indic_Syllabic_Category=:\AConsonant_Prefixed\z:}', "");;
     Expect(1, 72329, '\p{Indic_Syllabic_Category=consonantprefixed}', "");
@@ -51043,16 +51665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72330, '\P{^Indic_Syllabic_Category=consonantprefixed}', "");
     Expect(1, 72329, '\p{Indic_Syllabic_Category=:\Aconsonantprefixed\z:}', "");;
     Expect(0, 72330, '\p{Indic_Syllabic_Category=:\Aconsonantprefixed\z:}', "");;
-    Expect(1, 72329, '\p{Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(0, 72329, '\p{^Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(0, 72329, '\P{Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(1, 72329, '\P{^Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(0, 72330, '\p{Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(1, 72330, '\p{^Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(1, 72330, '\P{Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Expect(0, 72330, '\P{^Indic_Syllabic_Category=	CONSONANT_Prefixed}', "");
-    Error('\p{InSC: _:=CONSONANT_Prefixed}');
-    Error('\P{InSC: _:=CONSONANT_Prefixed}');
+    Expect(1, 72329, '\p{Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(0, 72329, '\p{^Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(0, 72329, '\P{Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(1, 72329, '\P{^Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(0, 72330, '\p{Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(1, 72330, '\p{^Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(1, 72330, '\P{Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Expect(0, 72330, '\P{^Indic_Syllabic_Category= Consonant_prefixed}', "");
+    Error('\p{InSC=	_Consonant_Prefixed/a/}');
+    Error('\P{InSC=	_Consonant_Prefixed/a/}');
     Expect(1, 72329, '\p{InSC=:\AConsonant_Prefixed\z:}', "");;
     Expect(0, 72330, '\p{InSC=:\AConsonant_Prefixed\z:}', "");;
     Expect(1, 72329, '\p{InSC=consonantprefixed}', "");
@@ -51065,16 +51687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72330, '\P{^InSC=consonantprefixed}', "");
     Expect(1, 72329, '\p{InSC=:\Aconsonantprefixed\z:}', "");;
     Expect(0, 72330, '\p{InSC=:\Aconsonantprefixed\z:}', "");;
-    Expect(1, 72329, '\p{InSC:    -Consonant_prefixed}', "");
-    Expect(0, 72329, '\p{^InSC:    -Consonant_prefixed}', "");
-    Expect(0, 72329, '\P{InSC:    -Consonant_prefixed}', "");
-    Expect(1, 72329, '\P{^InSC:    -Consonant_prefixed}', "");
-    Expect(0, 72330, '\p{InSC:    -Consonant_prefixed}', "");
-    Expect(1, 72330, '\p{^InSC:    -Consonant_prefixed}', "");
-    Expect(1, 72330, '\P{InSC:    -Consonant_prefixed}', "");
-    Expect(0, 72330, '\P{^InSC:    -Consonant_prefixed}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:=Consonant_prefixed}');
-    Error('\P{Is_Indic_Syllabic_Category=:=Consonant_prefixed}');
+    Expect(1, 72329, '\p{InSC:-Consonant_prefixed}', "");
+    Expect(0, 72329, '\p{^InSC:-Consonant_prefixed}', "");
+    Expect(0, 72329, '\P{InSC:-Consonant_prefixed}', "");
+    Expect(1, 72329, '\P{^InSC:-Consonant_prefixed}', "");
+    Expect(0, 72330, '\p{InSC:-Consonant_prefixed}', "");
+    Expect(1, 72330, '\p{^InSC:-Consonant_prefixed}', "");
+    Expect(1, 72330, '\P{InSC:-Consonant_prefixed}', "");
+    Expect(0, 72330, '\P{^InSC:-Consonant_prefixed}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_ CONSONANT_Prefixed:=}');
+    Error('\P{Is_Indic_Syllabic_Category=_ CONSONANT_Prefixed:=}');
     Expect(1, 72329, '\p{Is_Indic_Syllabic_Category=consonantprefixed}', "");
     Expect(0, 72329, '\p{^Is_Indic_Syllabic_Category=consonantprefixed}', "");
     Expect(0, 72329, '\P{Is_Indic_Syllabic_Category=consonantprefixed}', "");
@@ -51083,16 +51705,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72330, '\p{^Is_Indic_Syllabic_Category=consonantprefixed}', "");
     Expect(1, 72330, '\P{Is_Indic_Syllabic_Category=consonantprefixed}', "");
     Expect(0, 72330, '\P{^Is_Indic_Syllabic_Category=consonantprefixed}', "");
-    Expect(1, 72329, '\p{Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(0, 72329, '\p{^Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(0, 72329, '\P{Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(1, 72329, '\P{^Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(0, 72330, '\p{Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(1, 72330, '\p{^Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(1, 72330, '\P{Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Expect(0, 72330, '\P{^Is_Indic_Syllabic_Category=- CONSONANT_PREFIXED}', "");
-    Error('\p{Is_InSC=-_CONSONANT_Prefixed:=}');
-    Error('\P{Is_InSC=-_CONSONANT_Prefixed:=}');
+    Expect(1, 72329, '\p{Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(0, 72329, '\p{^Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(0, 72329, '\P{Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(1, 72329, '\P{^Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(0, 72330, '\p{Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(1, 72330, '\p{^Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(1, 72330, '\P{Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Expect(0, 72330, '\P{^Is_Indic_Syllabic_Category:Consonant_Prefixed}', "");
+    Error('\p{Is_InSC=	Consonant_PREFIXED:=}');
+    Error('\P{Is_InSC=	Consonant_PREFIXED:=}');
     Expect(1, 72329, '\p{Is_InSC=consonantprefixed}', "");
     Expect(0, 72329, '\p{^Is_InSC=consonantprefixed}', "");
     Expect(0, 72329, '\P{Is_InSC=consonantprefixed}', "");
@@ -51101,16 +51723,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72330, '\p{^Is_InSC=consonantprefixed}', "");
     Expect(1, 72330, '\P{Is_InSC=consonantprefixed}', "");
     Expect(0, 72330, '\P{^Is_InSC=consonantprefixed}', "");
-    Expect(1, 72329, '\p{Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(0, 72329, '\p{^Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(0, 72329, '\P{Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(1, 72329, '\P{^Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(0, 72330, '\p{Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(1, 72330, '\p{^Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(1, 72330, '\P{Is_InSC=__Consonant_PREFIXED}', "");
-    Expect(0, 72330, '\P{^Is_InSC=__Consonant_PREFIXED}', "");
-    Error('\p{Indic_Syllabic_Category: :=_ consonant_subjoined}');
-    Error('\P{Indic_Syllabic_Category: :=_ consonant_subjoined}');
+    Expect(1, 72329, '\p{Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(0, 72329, '\p{^Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(0, 72329, '\P{Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(1, 72329, '\P{^Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(0, 72330, '\p{Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(1, 72330, '\p{^Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(1, 72330, '\P{Is_InSC:			CONSONANT_PREFIXED}', "");
+    Expect(0, 72330, '\P{^Is_InSC:			CONSONANT_PREFIXED}', "");
+    Error('\p{Indic_Syllabic_Category=:=-CONSONANT_SUBJOINED}');
+    Error('\P{Indic_Syllabic_Category=:=-CONSONANT_SUBJOINED}');
     Expect(1, 72879, '\p{Indic_Syllabic_Category=:\AConsonant_Subjoined\z:}', "");;
     Expect(0, 72880, '\p{Indic_Syllabic_Category=:\AConsonant_Subjoined\z:}', "");;
     Expect(1, 72879, '\p{Indic_Syllabic_Category=consonantsubjoined}', "");
@@ -51123,16 +51745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72880, '\P{^Indic_Syllabic_Category=consonantsubjoined}', "");
     Expect(1, 72879, '\p{Indic_Syllabic_Category=:\Aconsonantsubjoined\z:}', "");;
     Expect(0, 72880, '\p{Indic_Syllabic_Category=:\Aconsonantsubjoined\z:}', "");;
-    Expect(1, 72879, '\p{Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(0, 72879, '\p{^Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(0, 72879, '\P{Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(1, 72879, '\P{^Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(0, 72880, '\p{Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(1, 72880, '\p{^Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(1, 72880, '\P{Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Expect(0, 72880, '\P{^Indic_Syllabic_Category=	Consonant_SUBJOINED}', "");
-    Error('\p{InSC=/a/--Consonant_Subjoined}');
-    Error('\P{InSC=/a/--Consonant_Subjoined}');
+    Expect(1, 72879, '\p{Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(0, 72879, '\p{^Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(0, 72879, '\P{Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(1, 72879, '\P{^Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(0, 72880, '\p{Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(1, 72880, '\p{^Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(1, 72880, '\P{Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Expect(0, 72880, '\P{^Indic_Syllabic_Category=_-consonant_Subjoined}', "");
+    Error('\p{InSC:   :=-_Consonant_subjoined}');
+    Error('\P{InSC:   :=-_Consonant_subjoined}');
     Expect(1, 72879, '\p{InSC=:\AConsonant_Subjoined\z:}', "");;
     Expect(0, 72880, '\p{InSC=:\AConsonant_Subjoined\z:}', "");;
     Expect(1, 72879, '\p{InSC=consonantsubjoined}', "");
@@ -51145,16 +51767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72880, '\P{^InSC=consonantsubjoined}', "");
     Expect(1, 72879, '\p{InSC=:\Aconsonantsubjoined\z:}', "");;
     Expect(0, 72880, '\p{InSC=:\Aconsonantsubjoined\z:}', "");;
-    Expect(1, 72879, '\p{InSC:__Consonant_subjoined}', "");
-    Expect(0, 72879, '\p{^InSC:__Consonant_subjoined}', "");
-    Expect(0, 72879, '\P{InSC:__Consonant_subjoined}', "");
-    Expect(1, 72879, '\P{^InSC:__Consonant_subjoined}', "");
-    Expect(0, 72880, '\p{InSC:__Consonant_subjoined}', "");
-    Expect(1, 72880, '\p{^InSC:__Consonant_subjoined}', "");
-    Expect(1, 72880, '\P{InSC:__Consonant_subjoined}', "");
-    Expect(0, 72880, '\P{^InSC:__Consonant_subjoined}', "");
-    Error('\p{Is_Indic_Syllabic_Category=-/a/Consonant_subjoined}');
-    Error('\P{Is_Indic_Syllabic_Category=-/a/Consonant_subjoined}');
+    Expect(1, 72879, '\p{InSC= consonant_subjoined}', "");
+    Expect(0, 72879, '\p{^InSC= consonant_subjoined}', "");
+    Expect(0, 72879, '\P{InSC= consonant_subjoined}', "");
+    Expect(1, 72879, '\P{^InSC= consonant_subjoined}', "");
+    Expect(0, 72880, '\p{InSC= consonant_subjoined}', "");
+    Expect(1, 72880, '\p{^InSC= consonant_subjoined}', "");
+    Expect(1, 72880, '\P{InSC= consonant_subjoined}', "");
+    Expect(0, 72880, '\P{^InSC= consonant_subjoined}', "");
+    Error('\p{Is_Indic_Syllabic_Category=/a/Consonant_Subjoined}');
+    Error('\P{Is_Indic_Syllabic_Category=/a/Consonant_Subjoined}');
     Expect(1, 72879, '\p{Is_Indic_Syllabic_Category=consonantsubjoined}', "");
     Expect(0, 72879, '\p{^Is_Indic_Syllabic_Category=consonantsubjoined}', "");
     Expect(0, 72879, '\P{Is_Indic_Syllabic_Category=consonantsubjoined}', "");
@@ -51163,16 +51785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72880, '\p{^Is_Indic_Syllabic_Category=consonantsubjoined}', "");
     Expect(1, 72880, '\P{Is_Indic_Syllabic_Category=consonantsubjoined}', "");
     Expect(0, 72880, '\P{^Is_Indic_Syllabic_Category=consonantsubjoined}', "");
-    Expect(1, 72879, '\p{Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(0, 72879, '\p{^Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(0, 72879, '\P{Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(1, 72879, '\P{^Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(0, 72880, '\p{Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(1, 72880, '\p{^Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(1, 72880, '\P{Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Expect(0, 72880, '\P{^Is_Indic_Syllabic_Category= consonant_Subjoined}', "");
-    Error('\p{Is_InSC= :=Consonant_subjoined}');
-    Error('\P{Is_InSC= :=Consonant_subjoined}');
+    Expect(1, 72879, '\p{Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(0, 72879, '\p{^Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(0, 72879, '\P{Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(1, 72879, '\P{^Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(0, 72880, '\p{Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(1, 72880, '\p{^Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(1, 72880, '\P{Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Expect(0, 72880, '\P{^Is_Indic_Syllabic_Category= CONSONANT_Subjoined}', "");
+    Error('\p{Is_InSC=-_CONSONANT_subjoined:=}');
+    Error('\P{Is_InSC=-_CONSONANT_subjoined:=}');
     Expect(1, 72879, '\p{Is_InSC=consonantsubjoined}', "");
     Expect(0, 72879, '\p{^Is_InSC=consonantsubjoined}', "");
     Expect(0, 72879, '\P{Is_InSC=consonantsubjoined}', "");
@@ -51181,16 +51803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72880, '\p{^Is_InSC=consonantsubjoined}', "");
     Expect(1, 72880, '\P{Is_InSC=consonantsubjoined}', "");
     Expect(0, 72880, '\P{^Is_InSC=consonantsubjoined}', "");
-    Expect(1, 72879, '\p{Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(0, 72879, '\p{^Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(0, 72879, '\P{Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(1, 72879, '\P{^Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(0, 72880, '\p{Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(1, 72880, '\p{^Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(1, 72880, '\P{Is_InSC:   _CONSONANT_Subjoined}', "");
-    Expect(0, 72880, '\P{^Is_InSC:   _CONSONANT_Subjoined}', "");
-    Error('\p{Indic_Syllabic_Category=_Consonant_Succeeding_REPHA:=}');
-    Error('\P{Indic_Syllabic_Category=_Consonant_Succeeding_REPHA:=}');
+    Expect(1, 72879, '\p{Is_InSC= Consonant_Subjoined}', "");
+    Expect(0, 72879, '\p{^Is_InSC= Consonant_Subjoined}', "");
+    Expect(0, 72879, '\P{Is_InSC= Consonant_Subjoined}', "");
+    Expect(1, 72879, '\P{^Is_InSC= Consonant_Subjoined}', "");
+    Expect(0, 72880, '\p{Is_InSC= Consonant_Subjoined}', "");
+    Expect(1, 72880, '\p{^Is_InSC= Consonant_Subjoined}', "");
+    Expect(1, 72880, '\P{Is_InSC= Consonant_Subjoined}', "");
+    Expect(0, 72880, '\P{^Is_InSC= Consonant_Subjoined}', "");
+    Error('\p{Indic_Syllabic_Category=	_Consonant_Succeeding_Repha/a/}');
+    Error('\P{Indic_Syllabic_Category=	_Consonant_Succeeding_Repha/a/}');
     Expect(1, 6092, '\p{Indic_Syllabic_Category=:\AConsonant_Succeeding_Repha\z:}', "");;
     Expect(0, 6093, '\p{Indic_Syllabic_Category=:\AConsonant_Succeeding_Repha\z:}', "");;
     Expect(1, 6092, '\p{Indic_Syllabic_Category=consonantsucceedingrepha}', "");
@@ -51203,16 +51825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6093, '\P{^Indic_Syllabic_Category=consonantsucceedingrepha}', "");
     Expect(1, 6092, '\p{Indic_Syllabic_Category=:\Aconsonantsucceedingrepha\z:}', "");;
     Expect(0, 6093, '\p{Indic_Syllabic_Category=:\Aconsonantsucceedingrepha\z:}', "");;
-    Expect(1, 6092, '\p{Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(0, 6092, '\p{^Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(0, 6092, '\P{Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(1, 6092, '\P{^Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(0, 6093, '\p{Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(1, 6093, '\p{^Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(1, 6093, '\P{Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Expect(0, 6093, '\P{^Indic_Syllabic_Category=__Consonant_Succeeding_repha}', "");
-    Error('\p{InSC=-:=Consonant_Succeeding_repha}');
-    Error('\P{InSC=-:=Consonant_Succeeding_repha}');
+    Expect(1, 6092, '\p{Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(0, 6092, '\p{^Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(0, 6092, '\P{Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(1, 6092, '\P{^Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(0, 6093, '\p{Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(1, 6093, '\p{^Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(1, 6093, '\P{Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Expect(0, 6093, '\P{^Indic_Syllabic_Category=_CONSONANT_SUCCEEDING_Repha}', "");
+    Error('\p{InSC= :=Consonant_Succeeding_Repha}');
+    Error('\P{InSC= :=Consonant_Succeeding_Repha}');
     Expect(1, 6092, '\p{InSC=:\AConsonant_Succeeding_Repha\z:}', "");;
     Expect(0, 6093, '\p{InSC=:\AConsonant_Succeeding_Repha\z:}', "");;
     Expect(1, 6092, '\p{InSC=consonantsucceedingrepha}', "");
@@ -51225,34 +51847,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6093, '\P{^InSC=consonantsucceedingrepha}', "");
     Expect(1, 6092, '\p{InSC=:\Aconsonantsucceedingrepha\z:}', "");;
     Expect(0, 6093, '\p{InSC=:\Aconsonantsucceedingrepha\z:}', "");;
-    Expect(1, 6092, '\p{InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(0, 6092, '\p{^InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(0, 6092, '\P{InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(1, 6092, '\P{^InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(0, 6093, '\p{InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(1, 6093, '\p{^InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(1, 6093, '\P{InSC=	-Consonant_Succeeding_repha}', "");
-    Expect(0, 6093, '\P{^InSC=	-Consonant_Succeeding_repha}', "");
-    Error('\p{Is_Indic_Syllabic_Category=/a/_Consonant_succeeding_Repha}');
-    Error('\P{Is_Indic_Syllabic_Category=/a/_Consonant_succeeding_Repha}');
-    Expect(1, 6092, '\p{Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(0, 6092, '\p{^Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(0, 6092, '\P{Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(1, 6092, '\P{^Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(0, 6093, '\p{Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(1, 6093, '\p{^Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(1, 6093, '\P{Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(0, 6093, '\P{^Is_Indic_Syllabic_Category: consonantsucceedingrepha}', "");
-    Expect(1, 6092, '\p{Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(0, 6092, '\p{^Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(0, 6092, '\P{Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(1, 6092, '\P{^Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(0, 6093, '\p{Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(1, 6093, '\p{^Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(1, 6093, '\P{Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Expect(0, 6093, '\P{^Is_Indic_Syllabic_Category=	Consonant_Succeeding_Repha}', "");
-    Error('\p{Is_InSC=_/a/Consonant_SUCCEEDING_REPHA}');
-    Error('\P{Is_InSC=_/a/Consonant_SUCCEEDING_REPHA}');
+    Expect(1, 6092, '\p{InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(0, 6092, '\p{^InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(0, 6092, '\P{InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(1, 6092, '\P{^InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(0, 6093, '\p{InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(1, 6093, '\p{^InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(1, 6093, '\P{InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Expect(0, 6093, '\P{^InSC=_CONSONANT_Succeeding_REPHA}', "");
+    Error('\p{Is_Indic_Syllabic_Category=/a/	-Consonant_succeeding_repha}');
+    Error('\P{Is_Indic_Syllabic_Category=/a/	-Consonant_succeeding_repha}');
+    Expect(1, 6092, '\p{Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(0, 6092, '\p{^Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(0, 6092, '\P{Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(1, 6092, '\P{^Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(0, 6093, '\p{Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(1, 6093, '\p{^Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(1, 6093, '\P{Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(0, 6093, '\P{^Is_Indic_Syllabic_Category=consonantsucceedingrepha}', "");
+    Expect(1, 6092, '\p{Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6092, '\p{^Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6092, '\P{Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(1, 6092, '\P{^Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6093, '\p{Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(1, 6093, '\p{^Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(1, 6093, '\P{Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6093, '\P{^Is_Indic_Syllabic_Category=_consonant_SUCCEEDING_Repha}', "");
+    Error('\p{Is_InSC= :=Consonant_Succeeding_Repha}');
+    Error('\P{Is_InSC= :=Consonant_Succeeding_Repha}');
     Expect(1, 6092, '\p{Is_InSC=consonantsucceedingrepha}', "");
     Expect(0, 6092, '\p{^Is_InSC=consonantsucceedingrepha}', "");
     Expect(0, 6092, '\P{Is_InSC=consonantsucceedingrepha}', "");
@@ -51261,16 +51883,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 6093, '\p{^Is_InSC=consonantsucceedingrepha}', "");
     Expect(1, 6093, '\P{Is_InSC=consonantsucceedingrepha}', "");
     Expect(0, 6093, '\P{^Is_InSC=consonantsucceedingrepha}', "");
-    Expect(1, 6092, '\p{Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(0, 6092, '\p{^Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(0, 6092, '\P{Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(1, 6092, '\P{^Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(0, 6093, '\p{Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(1, 6093, '\p{^Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(1, 6093, '\P{Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Expect(0, 6093, '\P{^Is_InSC=	_Consonant_Succeeding_REPHA}', "");
-    Error('\p{Indic_Syllabic_Category=/a/-Consonant_With_Stacker}');
-    Error('\P{Indic_Syllabic_Category=/a/-Consonant_With_Stacker}');
+    Expect(1, 6092, '\p{Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6092, '\p{^Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6092, '\P{Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(1, 6092, '\P{^Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6093, '\p{Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(1, 6093, '\p{^Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(1, 6093, '\P{Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Expect(0, 6093, '\P{^Is_InSC:	-	Consonant_SUCCEEDING_Repha}', "");
+    Error('\p{Indic_Syllabic_Category=/a/	consonant_with_stacker}');
+    Error('\P{Indic_Syllabic_Category=/a/	consonant_with_stacker}');
     Expect(1, 70753, '\p{Indic_Syllabic_Category=:\AConsonant_With_Stacker\z:}', "");;
     Expect(0, 70754, '\p{Indic_Syllabic_Category=:\AConsonant_With_Stacker\z:}', "");;
     Expect(1, 70753, '\p{Indic_Syllabic_Category=consonantwithstacker}', "");
@@ -51283,16 +51905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 70754, '\P{^Indic_Syllabic_Category=consonantwithstacker}', "");
     Expect(1, 70753, '\p{Indic_Syllabic_Category=:\Aconsonantwithstacker\z:}', "");;
     Expect(0, 70754, '\p{Indic_Syllabic_Category=:\Aconsonantwithstacker\z:}', "");;
-    Expect(1, 70753, '\p{Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(0, 70753, '\p{^Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(0, 70753, '\P{Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(1, 70753, '\P{^Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(0, 70754, '\p{Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(1, 70754, '\p{^Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(1, 70754, '\P{Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Expect(0, 70754, '\P{^Indic_Syllabic_Category=	Consonant_With_STACKER}', "");
-    Error('\p{InSC=	/a/Consonant_With_Stacker}');
-    Error('\P{InSC=	/a/Consonant_With_Stacker}');
+    Expect(1, 70753, '\p{Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(0, 70753, '\p{^Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(0, 70753, '\P{Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(1, 70753, '\P{^Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(0, 70754, '\p{Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(1, 70754, '\p{^Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(1, 70754, '\P{Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Expect(0, 70754, '\P{^Indic_Syllabic_Category=	-Consonant_With_STACKER}', "");
+    Error('\p{InSC=-_consonant_with_STACKER/a/}');
+    Error('\P{InSC=-_consonant_with_STACKER/a/}');
     Expect(1, 70753, '\p{InSC=:\AConsonant_With_Stacker\z:}', "");;
     Expect(0, 70754, '\p{InSC=:\AConsonant_With_Stacker\z:}', "");;
     Expect(1, 70753, '\p{InSC=consonantwithstacker}', "");
@@ -51305,16 +51927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 70754, '\P{^InSC=consonantwithstacker}', "");
     Expect(1, 70753, '\p{InSC=:\Aconsonantwithstacker\z:}', "");;
     Expect(0, 70754, '\p{InSC=:\Aconsonantwithstacker\z:}', "");;
-    Expect(1, 70753, '\p{InSC=-	Consonant_with_Stacker}', "");
-    Expect(0, 70753, '\p{^InSC=-	Consonant_with_Stacker}', "");
-    Expect(0, 70753, '\P{InSC=-	Consonant_with_Stacker}', "");
-    Expect(1, 70753, '\P{^InSC=-	Consonant_with_Stacker}', "");
-    Expect(0, 70754, '\p{InSC=-	Consonant_with_Stacker}', "");
-    Expect(1, 70754, '\p{^InSC=-	Consonant_with_Stacker}', "");
-    Expect(1, 70754, '\P{InSC=-	Consonant_with_Stacker}', "");
-    Expect(0, 70754, '\P{^InSC=-	Consonant_with_Stacker}', "");
-    Error('\p{Is_Indic_Syllabic_Category=/a/ Consonant_WITH_STACKER}');
-    Error('\P{Is_Indic_Syllabic_Category=/a/ Consonant_WITH_STACKER}');
+    Expect(1, 70753, '\p{InSC=--Consonant_WITH_STACKER}', "");
+    Expect(0, 70753, '\p{^InSC=--Consonant_WITH_STACKER}', "");
+    Expect(0, 70753, '\P{InSC=--Consonant_WITH_STACKER}', "");
+    Expect(1, 70753, '\P{^InSC=--Consonant_WITH_STACKER}', "");
+    Expect(0, 70754, '\p{InSC=--Consonant_WITH_STACKER}', "");
+    Expect(1, 70754, '\p{^InSC=--Consonant_WITH_STACKER}', "");
+    Expect(1, 70754, '\P{InSC=--Consonant_WITH_STACKER}', "");
+    Expect(0, 70754, '\P{^InSC=--Consonant_WITH_STACKER}', "");
+    Error('\p{Is_Indic_Syllabic_Category=:=Consonant_with_stacker}');
+    Error('\P{Is_Indic_Syllabic_Category=:=Consonant_with_stacker}');
     Expect(1, 70753, '\p{Is_Indic_Syllabic_Category=consonantwithstacker}', "");
     Expect(0, 70753, '\p{^Is_Indic_Syllabic_Category=consonantwithstacker}', "");
     Expect(0, 70753, '\P{Is_Indic_Syllabic_Category=consonantwithstacker}', "");
@@ -51323,16 +51945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 70754, '\p{^Is_Indic_Syllabic_Category=consonantwithstacker}', "");
     Expect(1, 70754, '\P{Is_Indic_Syllabic_Category=consonantwithstacker}', "");
     Expect(0, 70754, '\P{^Is_Indic_Syllabic_Category=consonantwithstacker}', "");
-    Expect(1, 70753, '\p{Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(0, 70753, '\p{^Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(0, 70753, '\P{Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(1, 70753, '\P{^Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(0, 70754, '\p{Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(1, 70754, '\p{^Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(1, 70754, '\P{Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Expect(0, 70754, '\P{^Is_Indic_Syllabic_Category:	CONSONANT_With_Stacker}', "");
-    Error('\p{Is_InSC=/a/_-Consonant_With_Stacker}');
-    Error('\P{Is_InSC=/a/_-Consonant_With_Stacker}');
+    Expect(1, 70753, '\p{Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(0, 70753, '\p{^Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(0, 70753, '\P{Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(1, 70753, '\P{^Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(0, 70754, '\p{Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(1, 70754, '\p{^Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(1, 70754, '\P{Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Expect(0, 70754, '\P{^Is_Indic_Syllabic_Category=_ CONSONANT_WITH_stacker}', "");
+    Error('\p{Is_InSC=/a/CONSONANT_With_stacker}');
+    Error('\P{Is_InSC=/a/CONSONANT_With_stacker}');
     Expect(1, 70753, '\p{Is_InSC=consonantwithstacker}', "");
     Expect(0, 70753, '\p{^Is_InSC=consonantwithstacker}', "");
     Expect(0, 70753, '\P{Is_InSC=consonantwithstacker}', "");
@@ -51341,16 +51963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 70754, '\p{^Is_InSC=consonantwithstacker}', "");
     Expect(1, 70754, '\P{Is_InSC=consonantwithstacker}', "");
     Expect(0, 70754, '\P{^Is_InSC=consonantwithstacker}', "");
-    Expect(1, 70753, '\p{Is_InSC=-Consonant_With_stacker}', "");
-    Expect(0, 70753, '\p{^Is_InSC=-Consonant_With_stacker}', "");
-    Expect(0, 70753, '\P{Is_InSC=-Consonant_With_stacker}', "");
-    Expect(1, 70753, '\P{^Is_InSC=-Consonant_With_stacker}', "");
-    Expect(0, 70754, '\p{Is_InSC=-Consonant_With_stacker}', "");
-    Expect(1, 70754, '\p{^Is_InSC=-Consonant_With_stacker}', "");
-    Expect(1, 70754, '\P{Is_InSC=-Consonant_With_stacker}', "");
-    Expect(0, 70754, '\P{^Is_InSC=-Consonant_With_stacker}', "");
-    Error('\p{Indic_Syllabic_Category= Gemination_MARK:=}');
-    Error('\P{Indic_Syllabic_Category= Gemination_MARK:=}');
+    Expect(1, 70753, '\p{Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(0, 70753, '\p{^Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(0, 70753, '\P{Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(1, 70753, '\P{^Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(0, 70754, '\p{Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(1, 70754, '\p{^Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(1, 70754, '\P{Is_InSC=-	Consonant_with_Stacker}', "");
+    Expect(0, 70754, '\P{^Is_InSC=-	Consonant_with_Stacker}', "");
+    Error('\p{Indic_Syllabic_Category=:=--GEMINATION_Mark}');
+    Error('\P{Indic_Syllabic_Category=:=--GEMINATION_Mark}');
     Expect(1, 72344, '\p{Indic_Syllabic_Category=:\AGemination_Mark\z:}', "");;
     Expect(0, 72345, '\p{Indic_Syllabic_Category=:\AGemination_Mark\z:}', "");;
     Expect(1, 72344, '\p{Indic_Syllabic_Category=geminationmark}', "");
@@ -51363,16 +51985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72345, '\P{^Indic_Syllabic_Category=geminationmark}', "");
     Expect(1, 72344, '\p{Indic_Syllabic_Category=:\Ageminationmark\z:}', "");;
     Expect(0, 72345, '\p{Indic_Syllabic_Category=:\Ageminationmark\z:}', "");;
-    Expect(1, 72344, '\p{Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(0, 72344, '\p{^Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(0, 72344, '\P{Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(1, 72344, '\P{^Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(0, 72345, '\p{Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(1, 72345, '\p{^Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(1, 72345, '\P{Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Expect(0, 72345, '\P{^Indic_Syllabic_Category= _GEMINATION_Mark}', "");
-    Error('\p{InSC=:= gemination_mark}');
-    Error('\P{InSC=:= gemination_mark}');
+    Expect(1, 72344, '\p{Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(0, 72344, '\p{^Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(0, 72344, '\P{Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(1, 72344, '\P{^Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(0, 72345, '\p{Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(1, 72345, '\p{^Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(1, 72345, '\P{Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Expect(0, 72345, '\P{^Indic_Syllabic_Category=_	Gemination_Mark}', "");
+    Error('\p{InSC=/a/- Gemination_mark}');
+    Error('\P{InSC=/a/- Gemination_mark}');
     Expect(1, 72344, '\p{InSC=:\AGemination_Mark\z:}', "");;
     Expect(0, 72345, '\p{InSC=:\AGemination_Mark\z:}', "");;
     Expect(1, 72344, '\p{InSC=geminationmark}', "");
@@ -51385,16 +52007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72345, '\P{^InSC=geminationmark}', "");
     Expect(1, 72344, '\p{InSC=:\Ageminationmark\z:}', "");;
     Expect(0, 72345, '\p{InSC=:\Ageminationmark\z:}', "");;
-    Expect(1, 72344, '\p{InSC=	Gemination_Mark}', "");
-    Expect(0, 72344, '\p{^InSC=	Gemination_Mark}', "");
-    Expect(0, 72344, '\P{InSC=	Gemination_Mark}', "");
-    Expect(1, 72344, '\P{^InSC=	Gemination_Mark}', "");
-    Expect(0, 72345, '\p{InSC=	Gemination_Mark}', "");
-    Expect(1, 72345, '\p{^InSC=	Gemination_Mark}', "");
-    Expect(1, 72345, '\P{InSC=	Gemination_Mark}', "");
-    Expect(0, 72345, '\P{^InSC=	Gemination_Mark}', "");
-    Error('\p{Is_Indic_Syllabic_Category= gemination_Mark/a/}');
-    Error('\P{Is_Indic_Syllabic_Category= gemination_Mark/a/}');
+    Expect(1, 72344, '\p{InSC=	_GEMINATION_mark}', "");
+    Expect(0, 72344, '\p{^InSC=	_GEMINATION_mark}', "");
+    Expect(0, 72344, '\P{InSC=	_GEMINATION_mark}', "");
+    Expect(1, 72344, '\P{^InSC=	_GEMINATION_mark}', "");
+    Expect(0, 72345, '\p{InSC=	_GEMINATION_mark}', "");
+    Expect(1, 72345, '\p{^InSC=	_GEMINATION_mark}', "");
+    Expect(1, 72345, '\P{InSC=	_GEMINATION_mark}', "");
+    Expect(0, 72345, '\P{^InSC=	_GEMINATION_mark}', "");
+    Error('\p{Is_Indic_Syllabic_Category=-_GEMINATION_mark:=}');
+    Error('\P{Is_Indic_Syllabic_Category=-_GEMINATION_mark:=}');
     Expect(1, 72344, '\p{Is_Indic_Syllabic_Category=geminationmark}', "");
     Expect(0, 72344, '\p{^Is_Indic_Syllabic_Category=geminationmark}', "");
     Expect(0, 72344, '\P{Is_Indic_Syllabic_Category=geminationmark}', "");
@@ -51403,114 +52025,114 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72345, '\p{^Is_Indic_Syllabic_Category=geminationmark}', "");
     Expect(1, 72345, '\P{Is_Indic_Syllabic_Category=geminationmark}', "");
     Expect(0, 72345, '\P{^Is_Indic_Syllabic_Category=geminationmark}', "");
-    Expect(1, 72344, '\p{Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(0, 72344, '\p{^Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(0, 72344, '\P{Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(1, 72344, '\P{^Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(0, 72345, '\p{Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(1, 72345, '\p{^Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(1, 72345, '\P{Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Expect(0, 72345, '\P{^Is_Indic_Syllabic_Category=-_GEMINATION_Mark}', "");
-    Error('\p{Is_InSC=_:=GEMINATION_MARK}');
-    Error('\P{Is_InSC=_:=GEMINATION_MARK}');
-    Expect(1, 72344, '\p{Is_InSC: geminationmark}', "");
-    Expect(0, 72344, '\p{^Is_InSC: geminationmark}', "");
-    Expect(0, 72344, '\P{Is_InSC: geminationmark}', "");
-    Expect(1, 72344, '\P{^Is_InSC: geminationmark}', "");
-    Expect(0, 72345, '\p{Is_InSC: geminationmark}', "");
-    Expect(1, 72345, '\p{^Is_InSC: geminationmark}', "");
-    Expect(1, 72345, '\P{Is_InSC: geminationmark}', "");
-    Expect(0, 72345, '\P{^Is_InSC: geminationmark}', "");
-    Expect(1, 72344, '\p{Is_InSC=-_Gemination_Mark}', "");
-    Expect(0, 72344, '\p{^Is_InSC=-_Gemination_Mark}', "");
-    Expect(0, 72344, '\P{Is_InSC=-_Gemination_Mark}', "");
-    Expect(1, 72344, '\P{^Is_InSC=-_Gemination_Mark}', "");
-    Expect(0, 72345, '\p{Is_InSC=-_Gemination_Mark}', "");
-    Expect(1, 72345, '\p{^Is_InSC=-_Gemination_Mark}', "");
-    Expect(1, 72345, '\P{Is_InSC=-_Gemination_Mark}', "");
-    Expect(0, 72345, '\P{^Is_InSC=-_Gemination_Mark}', "");
-    Error('\p{Indic_Syllabic_Category=:=	invisible_STACKER}');
-    Error('\P{Indic_Syllabic_Category=:=	invisible_STACKER}');
-    Expect(1, 73111, '\p{Indic_Syllabic_Category=:\AInvisible_Stacker\z:}', "");;
-    Expect(0, 73112, '\p{Indic_Syllabic_Category=:\AInvisible_Stacker\z:}', "");;
-    Expect(1, 73111, '\p{Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73111, '\p{^Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73111, '\P{Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73111, '\P{^Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73112, '\p{Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73112, '\p{^Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73112, '\P{Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73112, '\P{^Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73111, '\p{Indic_Syllabic_Category=:\Ainvisiblestacker\z:}', "");;
-    Expect(0, 73112, '\p{Indic_Syllabic_Category=:\Ainvisiblestacker\z:}', "");;
-    Expect(1, 73111, '\p{Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(0, 73111, '\p{^Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(0, 73111, '\P{Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(1, 73111, '\P{^Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(0, 73112, '\p{Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(1, 73112, '\p{^Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(1, 73112, '\P{Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Expect(0, 73112, '\P{^Indic_Syllabic_Category:		 INVISIBLE_STACKER}', "");
-    Error('\p{InSC=_:=Invisible_stacker}');
-    Error('\P{InSC=_:=Invisible_stacker}');
-    Expect(1, 73111, '\p{InSC=:\AInvisible_Stacker\z:}', "");;
-    Expect(0, 73112, '\p{InSC=:\AInvisible_Stacker\z:}', "");;
-    Expect(1, 73111, '\p{InSC=invisiblestacker}', "");
-    Expect(0, 73111, '\p{^InSC=invisiblestacker}', "");
-    Expect(0, 73111, '\P{InSC=invisiblestacker}', "");
-    Expect(1, 73111, '\P{^InSC=invisiblestacker}', "");
-    Expect(0, 73112, '\p{InSC=invisiblestacker}', "");
-    Expect(1, 73112, '\p{^InSC=invisiblestacker}', "");
-    Expect(1, 73112, '\P{InSC=invisiblestacker}', "");
-    Expect(0, 73112, '\P{^InSC=invisiblestacker}', "");
-    Expect(1, 73111, '\p{InSC=:\Ainvisiblestacker\z:}', "");;
-    Expect(0, 73112, '\p{InSC=:\Ainvisiblestacker\z:}', "");;
-    Expect(1, 73111, '\p{InSC=	 Invisible_stacker}', "");
-    Expect(0, 73111, '\p{^InSC=	 Invisible_stacker}', "");
-    Expect(0, 73111, '\P{InSC=	 Invisible_stacker}', "");
-    Expect(1, 73111, '\P{^InSC=	 Invisible_stacker}', "");
-    Expect(0, 73112, '\p{InSC=	 Invisible_stacker}', "");
-    Expect(1, 73112, '\p{^InSC=	 Invisible_stacker}', "");
-    Expect(1, 73112, '\P{InSC=	 Invisible_stacker}', "");
-    Expect(0, 73112, '\P{^InSC=	 Invisible_stacker}', "");
-    Error('\p{Is_Indic_Syllabic_Category=_Invisible_STACKER/a/}');
-    Error('\P{Is_Indic_Syllabic_Category=_Invisible_STACKER/a/}');
-    Expect(1, 73111, '\p{Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73111, '\p{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73111, '\P{Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73111, '\P{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73112, '\p{Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73112, '\p{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73112, '\P{Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(0, 73112, '\P{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
-    Expect(1, 73111, '\p{Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(0, 73111, '\p{^Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(0, 73111, '\P{Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(1, 73111, '\P{^Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(0, 73112, '\p{Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(1, 73112, '\p{^Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(1, 73112, '\P{Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Expect(0, 73112, '\P{^Is_Indic_Syllabic_Category= invisible_Stacker}', "");
-    Error('\p{Is_InSC= invisible_stacker:=}');
-    Error('\P{Is_InSC= invisible_stacker:=}');
-    Expect(1, 73111, '\p{Is_InSC=invisiblestacker}', "");
-    Expect(0, 73111, '\p{^Is_InSC=invisiblestacker}', "");
-    Expect(0, 73111, '\P{Is_InSC=invisiblestacker}', "");
-    Expect(1, 73111, '\P{^Is_InSC=invisiblestacker}', "");
-    Expect(0, 73112, '\p{Is_InSC=invisiblestacker}', "");
-    Expect(1, 73112, '\p{^Is_InSC=invisiblestacker}', "");
-    Expect(1, 73112, '\P{Is_InSC=invisiblestacker}', "");
-    Expect(0, 73112, '\P{^Is_InSC=invisiblestacker}', "");
-    Expect(1, 73111, '\p{Is_InSC=_ Invisible_Stacker}', "");
-    Expect(0, 73111, '\p{^Is_InSC=_ Invisible_Stacker}', "");
-    Expect(0, 73111, '\P{Is_InSC=_ Invisible_Stacker}', "");
-    Expect(1, 73111, '\P{^Is_InSC=_ Invisible_Stacker}', "");
-    Expect(0, 73112, '\p{Is_InSC=_ Invisible_Stacker}', "");
-    Expect(1, 73112, '\p{^Is_InSC=_ Invisible_Stacker}', "");
-    Expect(1, 73112, '\P{Is_InSC=_ Invisible_Stacker}', "");
-    Expect(0, 73112, '\P{^Is_InSC=_ Invisible_Stacker}', "");
-    Error('\p{Indic_Syllabic_Category:   _/a/joiner}');
-    Error('\P{Indic_Syllabic_Category:   _/a/joiner}');
+    Expect(1, 72344, '\p{Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(0, 72344, '\p{^Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(0, 72344, '\P{Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(1, 72344, '\P{^Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(0, 72345, '\p{Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(1, 72345, '\p{^Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(1, 72345, '\P{Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Expect(0, 72345, '\P{^Is_Indic_Syllabic_Category= _Gemination_mark}', "");
+    Error('\p{Is_InSC=/a/ 	GEMINATION_mark}');
+    Error('\P{Is_InSC=/a/ 	GEMINATION_mark}');
+    Expect(1, 72344, '\p{Is_InSC=geminationmark}', "");
+    Expect(0, 72344, '\p{^Is_InSC=geminationmark}', "");
+    Expect(0, 72344, '\P{Is_InSC=geminationmark}', "");
+    Expect(1, 72344, '\P{^Is_InSC=geminationmark}', "");
+    Expect(0, 72345, '\p{Is_InSC=geminationmark}', "");
+    Expect(1, 72345, '\p{^Is_InSC=geminationmark}', "");
+    Expect(1, 72345, '\P{Is_InSC=geminationmark}', "");
+    Expect(0, 72345, '\P{^Is_InSC=geminationmark}', "");
+    Expect(1, 72344, '\p{Is_InSC=_-gemination_Mark}', "");
+    Expect(0, 72344, '\p{^Is_InSC=_-gemination_Mark}', "");
+    Expect(0, 72344, '\P{Is_InSC=_-gemination_Mark}', "");
+    Expect(1, 72344, '\P{^Is_InSC=_-gemination_Mark}', "");
+    Expect(0, 72345, '\p{Is_InSC=_-gemination_Mark}', "");
+    Expect(1, 72345, '\p{^Is_InSC=_-gemination_Mark}', "");
+    Expect(1, 72345, '\P{Is_InSC=_-gemination_Mark}', "");
+    Expect(0, 72345, '\P{^Is_InSC=_-gemination_Mark}', "");
+    Error('\p{Indic_Syllabic_Category=/a/-_INVISIBLE_STACKER}');
+    Error('\P{Indic_Syllabic_Category=/a/-_INVISIBLE_STACKER}');
+    Expect(1, 73538, '\p{Indic_Syllabic_Category=:\AInvisible_Stacker\z:}', "");;
+    Expect(0, 73539, '\p{Indic_Syllabic_Category=:\AInvisible_Stacker\z:}', "");;
+    Expect(1, 73538, '\p{Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73538, '\p{^Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73538, '\P{Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73538, '\P{^Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73539, '\p{Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73539, '\p{^Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73539, '\P{Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73539, '\P{^Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73538, '\p{Indic_Syllabic_Category=:\Ainvisiblestacker\z:}', "");;
+    Expect(0, 73539, '\p{Indic_Syllabic_Category=:\Ainvisiblestacker\z:}', "");;
+    Expect(1, 73538, '\p{Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(0, 73538, '\p{^Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(0, 73538, '\P{Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(1, 73538, '\P{^Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(0, 73539, '\p{Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(1, 73539, '\p{^Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(1, 73539, '\P{Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Expect(0, 73539, '\P{^Indic_Syllabic_Category=	INVISIBLE_Stacker}', "");
+    Error('\p{InSC=	Invisible_STACKER:=}');
+    Error('\P{InSC=	Invisible_STACKER:=}');
+    Expect(1, 73538, '\p{InSC=:\AInvisible_Stacker\z:}', "");;
+    Expect(0, 73539, '\p{InSC=:\AInvisible_Stacker\z:}', "");;
+    Expect(1, 73538, '\p{InSC=invisiblestacker}', "");
+    Expect(0, 73538, '\p{^InSC=invisiblestacker}', "");
+    Expect(0, 73538, '\P{InSC=invisiblestacker}', "");
+    Expect(1, 73538, '\P{^InSC=invisiblestacker}', "");
+    Expect(0, 73539, '\p{InSC=invisiblestacker}', "");
+    Expect(1, 73539, '\p{^InSC=invisiblestacker}', "");
+    Expect(1, 73539, '\P{InSC=invisiblestacker}', "");
+    Expect(0, 73539, '\P{^InSC=invisiblestacker}', "");
+    Expect(1, 73538, '\p{InSC=:\Ainvisiblestacker\z:}', "");;
+    Expect(0, 73539, '\p{InSC=:\Ainvisiblestacker\z:}', "");;
+    Expect(1, 73538, '\p{InSC=	_Invisible_STACKER}', "");
+    Expect(0, 73538, '\p{^InSC=	_Invisible_STACKER}', "");
+    Expect(0, 73538, '\P{InSC=	_Invisible_STACKER}', "");
+    Expect(1, 73538, '\P{^InSC=	_Invisible_STACKER}', "");
+    Expect(0, 73539, '\p{InSC=	_Invisible_STACKER}', "");
+    Expect(1, 73539, '\p{^InSC=	_Invisible_STACKER}', "");
+    Expect(1, 73539, '\P{InSC=	_Invisible_STACKER}', "");
+    Expect(0, 73539, '\P{^InSC=	_Invisible_STACKER}', "");
+    Error('\p{Is_Indic_Syllabic_Category:	/a/	_Invisible_Stacker}');
+    Error('\P{Is_Indic_Syllabic_Category:	/a/	_Invisible_Stacker}');
+    Expect(1, 73538, '\p{Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73538, '\p{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73538, '\P{Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73538, '\P{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73539, '\p{Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73539, '\p{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73539, '\P{Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(0, 73539, '\P{^Is_Indic_Syllabic_Category=invisiblestacker}', "");
+    Expect(1, 73538, '\p{Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(0, 73538, '\p{^Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(0, 73538, '\P{Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(1, 73538, '\P{^Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(0, 73539, '\p{Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(1, 73539, '\p{^Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(1, 73539, '\P{Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Expect(0, 73539, '\P{^Is_Indic_Syllabic_Category=-	invisible_Stacker}', "");
+    Error('\p{Is_InSC= /a/invisible_STACKER}');
+    Error('\P{Is_InSC= /a/invisible_STACKER}');
+    Expect(1, 73538, '\p{Is_InSC=invisiblestacker}', "");
+    Expect(0, 73538, '\p{^Is_InSC=invisiblestacker}', "");
+    Expect(0, 73538, '\P{Is_InSC=invisiblestacker}', "");
+    Expect(1, 73538, '\P{^Is_InSC=invisiblestacker}', "");
+    Expect(0, 73539, '\p{Is_InSC=invisiblestacker}', "");
+    Expect(1, 73539, '\p{^Is_InSC=invisiblestacker}', "");
+    Expect(1, 73539, '\P{Is_InSC=invisiblestacker}', "");
+    Expect(0, 73539, '\P{^Is_InSC=invisiblestacker}', "");
+    Expect(1, 73538, '\p{Is_InSC=	invisible_Stacker}', "");
+    Expect(0, 73538, '\p{^Is_InSC=	invisible_Stacker}', "");
+    Expect(0, 73538, '\P{Is_InSC=	invisible_Stacker}', "");
+    Expect(1, 73538, '\P{^Is_InSC=	invisible_Stacker}', "");
+    Expect(0, 73539, '\p{Is_InSC=	invisible_Stacker}', "");
+    Expect(1, 73539, '\p{^Is_InSC=	invisible_Stacker}', "");
+    Expect(1, 73539, '\P{Is_InSC=	invisible_Stacker}', "");
+    Expect(0, 73539, '\P{^Is_InSC=	invisible_Stacker}', "");
+    Error('\p{Indic_Syllabic_Category= /a/Joiner}');
+    Error('\P{Indic_Syllabic_Category= /a/Joiner}');
     Expect(1, 8205, '\p{Indic_Syllabic_Category=:\AJoiner\z:}', "");;
     Expect(0, 8206, '\p{Indic_Syllabic_Category=:\AJoiner\z:}', "");;
     Expect(1, 8205, '\p{Indic_Syllabic_Category=joiner}', "");
@@ -51523,16 +52145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^Indic_Syllabic_Category=joiner}', "");
     Expect(1, 8205, '\p{Indic_Syllabic_Category=:\Ajoiner\z:}', "");;
     Expect(0, 8206, '\p{Indic_Syllabic_Category=:\Ajoiner\z:}', "");;
-    Expect(1, 8205, '\p{Indic_Syllabic_Category=	-joiner}', "");
-    Expect(0, 8205, '\p{^Indic_Syllabic_Category=	-joiner}', "");
-    Expect(0, 8205, '\P{Indic_Syllabic_Category=	-joiner}', "");
-    Expect(1, 8205, '\P{^Indic_Syllabic_Category=	-joiner}', "");
-    Expect(0, 8206, '\p{Indic_Syllabic_Category=	-joiner}', "");
-    Expect(1, 8206, '\p{^Indic_Syllabic_Category=	-joiner}', "");
-    Expect(1, 8206, '\P{Indic_Syllabic_Category=	-joiner}', "");
-    Expect(0, 8206, '\P{^Indic_Syllabic_Category=	-joiner}', "");
-    Error('\p{InSC:	/a/	-JOINER}');
-    Error('\P{InSC:	/a/	-JOINER}');
+    Expect(1, 8205, '\p{Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(0, 8205, '\p{^Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(0, 8205, '\P{Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(1, 8205, '\P{^Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(0, 8206, '\p{Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(1, 8206, '\p{^Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(1, 8206, '\P{Indic_Syllabic_Category=_	JOINER}', "");
+    Expect(0, 8206, '\P{^Indic_Syllabic_Category=_	JOINER}', "");
+    Error('\p{InSC: _JOINER:=}');
+    Error('\P{InSC: _JOINER:=}');
     Expect(1, 8205, '\p{InSC=:\AJoiner\z:}', "");;
     Expect(0, 8206, '\p{InSC=:\AJoiner\z:}', "");;
     Expect(1, 8205, '\p{InSC=joiner}', "");
@@ -51545,16 +52167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^InSC=joiner}', "");
     Expect(1, 8205, '\p{InSC=:\Ajoiner\z:}', "");;
     Expect(0, 8206, '\p{InSC=:\Ajoiner\z:}', "");;
-    Expect(1, 8205, '\p{InSC=	Joiner}', "");
-    Expect(0, 8205, '\p{^InSC=	Joiner}', "");
-    Expect(0, 8205, '\P{InSC=	Joiner}', "");
-    Expect(1, 8205, '\P{^InSC=	Joiner}', "");
-    Expect(0, 8206, '\p{InSC=	Joiner}', "");
-    Expect(1, 8206, '\p{^InSC=	Joiner}', "");
-    Expect(1, 8206, '\P{InSC=	Joiner}', "");
-    Expect(0, 8206, '\P{^InSC=	Joiner}', "");
-    Error('\p{Is_Indic_Syllabic_Category:-:=Joiner}');
-    Error('\P{Is_Indic_Syllabic_Category:-:=Joiner}');
+    Expect(1, 8205, '\p{InSC: __Joiner}', "");
+    Expect(0, 8205, '\p{^InSC: __Joiner}', "");
+    Expect(0, 8205, '\P{InSC: __Joiner}', "");
+    Expect(1, 8205, '\P{^InSC: __Joiner}', "");
+    Expect(0, 8206, '\p{InSC: __Joiner}', "");
+    Expect(1, 8206, '\p{^InSC: __Joiner}', "");
+    Expect(1, 8206, '\P{InSC: __Joiner}', "");
+    Expect(0, 8206, '\P{^InSC: __Joiner}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_-joiner:=}');
+    Error('\P{Is_Indic_Syllabic_Category=_-joiner:=}');
     Expect(1, 8205, '\p{Is_Indic_Syllabic_Category=joiner}', "");
     Expect(0, 8205, '\p{^Is_Indic_Syllabic_Category=joiner}', "");
     Expect(0, 8205, '\P{Is_Indic_Syllabic_Category=joiner}', "");
@@ -51563,16 +52185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Indic_Syllabic_Category=joiner}', "");
     Expect(1, 8206, '\P{Is_Indic_Syllabic_Category=joiner}', "");
     Expect(0, 8206, '\P{^Is_Indic_Syllabic_Category=joiner}', "");
-    Expect(1, 8205, '\p{Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(0, 8205, '\p{^Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(0, 8205, '\P{Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(1, 8205, '\P{^Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(0, 8206, '\p{Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(1, 8206, '\p{^Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(1, 8206, '\P{Is_Indic_Syllabic_Category=	 joiner}', "");
-    Expect(0, 8206, '\P{^Is_Indic_Syllabic_Category=	 joiner}', "");
-    Error('\p{Is_InSC=_	Joiner/a/}');
-    Error('\P{Is_InSC=_	Joiner/a/}');
+    Expect(1, 8205, '\p{Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(0, 8205, '\p{^Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(0, 8205, '\P{Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(1, 8205, '\P{^Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(0, 8206, '\p{Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(1, 8206, '\p{^Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(1, 8206, '\P{Is_Indic_Syllabic_Category= -Joiner}', "");
+    Expect(0, 8206, '\P{^Is_Indic_Syllabic_Category= -Joiner}', "");
+    Error('\p{Is_InSC=- joiner/a/}');
+    Error('\P{Is_InSC=- joiner/a/}');
     Expect(1, 8205, '\p{Is_InSC=joiner}', "");
     Expect(0, 8205, '\p{^Is_InSC=joiner}', "");
     Expect(0, 8205, '\P{Is_InSC=joiner}', "");
@@ -51581,16 +52203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_InSC=joiner}', "");
     Expect(1, 8206, '\P{Is_InSC=joiner}', "");
     Expect(0, 8206, '\P{^Is_InSC=joiner}', "");
-    Expect(1, 8205, '\p{Is_InSC=_JOINER}', "");
-    Expect(0, 8205, '\p{^Is_InSC=_JOINER}', "");
-    Expect(0, 8205, '\P{Is_InSC=_JOINER}', "");
-    Expect(1, 8205, '\P{^Is_InSC=_JOINER}', "");
-    Expect(0, 8206, '\p{Is_InSC=_JOINER}', "");
-    Expect(1, 8206, '\p{^Is_InSC=_JOINER}', "");
-    Expect(1, 8206, '\P{Is_InSC=_JOINER}', "");
-    Expect(0, 8206, '\P{^Is_InSC=_JOINER}', "");
-    Error('\p{Indic_Syllabic_Category=_:=modifying_Letter}');
-    Error('\P{Indic_Syllabic_Category=_:=modifying_Letter}');
+    Expect(1, 8205, '\p{Is_InSC=	joiner}', "");
+    Expect(0, 8205, '\p{^Is_InSC=	joiner}', "");
+    Expect(0, 8205, '\P{Is_InSC=	joiner}', "");
+    Expect(1, 8205, '\P{^Is_InSC=	joiner}', "");
+    Expect(0, 8206, '\p{Is_InSC=	joiner}', "");
+    Expect(1, 8206, '\p{^Is_InSC=	joiner}', "");
+    Expect(1, 8206, '\P{Is_InSC=	joiner}', "");
+    Expect(0, 8206, '\P{^Is_InSC=	joiner}', "");
+    Error('\p{Indic_Syllabic_Category=/a/-_Modifying_letter}');
+    Error('\P{Indic_Syllabic_Category=/a/-_Modifying_letter}');
     Expect(1, 2947, '\p{Indic_Syllabic_Category=:\AModifying_Letter\z:}', "");;
     Expect(0, 2948, '\p{Indic_Syllabic_Category=:\AModifying_Letter\z:}', "");;
     Expect(1, 2947, '\p{Indic_Syllabic_Category=modifyingletter}', "");
@@ -51603,56 +52225,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2948, '\P{^Indic_Syllabic_Category=modifyingletter}', "");
     Expect(1, 2947, '\p{Indic_Syllabic_Category=:\Amodifyingletter\z:}', "");;
     Expect(0, 2948, '\p{Indic_Syllabic_Category=:\Amodifyingletter\z:}', "");;
-    Expect(1, 2947, '\p{Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(0, 2947, '\p{^Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(0, 2947, '\P{Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(1, 2947, '\P{^Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(0, 2948, '\p{Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(1, 2948, '\p{^Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(1, 2948, '\P{Indic_Syllabic_Category=		modifying_Letter}', "");
-    Expect(0, 2948, '\P{^Indic_Syllabic_Category=		modifying_Letter}', "");
-    Error('\p{InSC= :=Modifying_letter}');
-    Error('\P{InSC= :=Modifying_letter}');
+    Expect(1, 2947, '\p{Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(0, 2947, '\p{^Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(0, 2947, '\P{Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(1, 2947, '\P{^Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(0, 2948, '\p{Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(1, 2948, '\p{^Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(1, 2948, '\P{Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Expect(0, 2948, '\P{^Indic_Syllabic_Category=	 Modifying_LETTER}', "");
+    Error('\p{InSC=	_Modifying_Letter:=}');
+    Error('\P{InSC=	_Modifying_Letter:=}');
     Expect(1, 2947, '\p{InSC=:\AModifying_Letter\z:}', "");;
     Expect(0, 2948, '\p{InSC=:\AModifying_Letter\z:}', "");;
-    Expect(1, 2947, '\p{InSC=modifyingletter}', "");
-    Expect(0, 2947, '\p{^InSC=modifyingletter}', "");
-    Expect(0, 2947, '\P{InSC=modifyingletter}', "");
-    Expect(1, 2947, '\P{^InSC=modifyingletter}', "");
-    Expect(0, 2948, '\p{InSC=modifyingletter}', "");
-    Expect(1, 2948, '\p{^InSC=modifyingletter}', "");
-    Expect(1, 2948, '\P{InSC=modifyingletter}', "");
-    Expect(0, 2948, '\P{^InSC=modifyingletter}', "");
+    Expect(1, 2947, '\p{InSC:modifyingletter}', "");
+    Expect(0, 2947, '\p{^InSC:modifyingletter}', "");
+    Expect(0, 2947, '\P{InSC:modifyingletter}', "");
+    Expect(1, 2947, '\P{^InSC:modifyingletter}', "");
+    Expect(0, 2948, '\p{InSC:modifyingletter}', "");
+    Expect(1, 2948, '\p{^InSC:modifyingletter}', "");
+    Expect(1, 2948, '\P{InSC:modifyingletter}', "");
+    Expect(0, 2948, '\P{^InSC:modifyingletter}', "");
     Expect(1, 2947, '\p{InSC=:\Amodifyingletter\z:}', "");;
     Expect(0, 2948, '\p{InSC=:\Amodifyingletter\z:}', "");;
-    Expect(1, 2947, '\p{InSC=	-MODIFYING_LETTER}', "");
-    Expect(0, 2947, '\p{^InSC=	-MODIFYING_LETTER}', "");
-    Expect(0, 2947, '\P{InSC=	-MODIFYING_LETTER}', "");
-    Expect(1, 2947, '\P{^InSC=	-MODIFYING_LETTER}', "");
-    Expect(0, 2948, '\p{InSC=	-MODIFYING_LETTER}', "");
-    Expect(1, 2948, '\p{^InSC=	-MODIFYING_LETTER}', "");
-    Expect(1, 2948, '\P{InSC=	-MODIFYING_LETTER}', "");
-    Expect(0, 2948, '\P{^InSC=	-MODIFYING_LETTER}', "");
-    Error('\p{Is_Indic_Syllabic_Category= 	Modifying_Letter:=}');
-    Error('\P{Is_Indic_Syllabic_Category= 	Modifying_Letter:=}');
-    Expect(1, 2947, '\p{Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(0, 2947, '\p{^Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(0, 2947, '\P{Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(1, 2947, '\P{^Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(0, 2948, '\p{Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(1, 2948, '\p{^Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(1, 2948, '\P{Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(0, 2948, '\P{^Is_Indic_Syllabic_Category:   modifyingletter}', "");
-    Expect(1, 2947, '\p{Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(0, 2947, '\p{^Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(0, 2947, '\P{Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(1, 2947, '\P{^Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(0, 2948, '\p{Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(1, 2948, '\p{^Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(1, 2948, '\P{Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Expect(0, 2948, '\P{^Is_Indic_Syllabic_Category=__Modifying_Letter}', "");
-    Error('\p{Is_InSC=_	Modifying_LETTER/a/}');
-    Error('\P{Is_InSC=_	Modifying_LETTER/a/}');
+    Expect(1, 2947, '\p{InSC=_modifying_Letter}', "");
+    Expect(0, 2947, '\p{^InSC=_modifying_Letter}', "");
+    Expect(0, 2947, '\P{InSC=_modifying_Letter}', "");
+    Expect(1, 2947, '\P{^InSC=_modifying_Letter}', "");
+    Expect(0, 2948, '\p{InSC=_modifying_Letter}', "");
+    Expect(1, 2948, '\p{^InSC=_modifying_Letter}', "");
+    Expect(1, 2948, '\P{InSC=_modifying_Letter}', "");
+    Expect(0, 2948, '\P{^InSC=_modifying_Letter}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_:=MODIFYING_Letter}');
+    Error('\P{Is_Indic_Syllabic_Category=_:=MODIFYING_Letter}');
+    Expect(1, 2947, '\p{Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(0, 2947, '\p{^Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(0, 2947, '\P{Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(1, 2947, '\P{^Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(0, 2948, '\p{Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(1, 2948, '\p{^Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(1, 2948, '\P{Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(0, 2948, '\P{^Is_Indic_Syllabic_Category=modifyingletter}', "");
+    Expect(1, 2947, '\p{Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(0, 2947, '\p{^Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(0, 2947, '\P{Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(1, 2947, '\P{^Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(0, 2948, '\p{Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(1, 2948, '\p{^Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(1, 2948, '\P{Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Expect(0, 2948, '\P{^Is_Indic_Syllabic_Category=modifying_LETTER}', "");
+    Error('\p{Is_InSC=_	Modifying_letter:=}');
+    Error('\P{Is_InSC=_	Modifying_letter:=}');
     Expect(1, 2947, '\p{Is_InSC=modifyingletter}', "");
     Expect(0, 2947, '\p{^Is_InSC=modifyingletter}', "");
     Expect(0, 2947, '\P{Is_InSC=modifyingletter}', "");
@@ -51661,16 +52283,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2948, '\p{^Is_InSC=modifyingletter}', "");
     Expect(1, 2948, '\P{Is_InSC=modifyingletter}', "");
     Expect(0, 2948, '\P{^Is_InSC=modifyingletter}', "");
-    Expect(1, 2947, '\p{Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(0, 2947, '\p{^Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(0, 2947, '\P{Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(1, 2947, '\P{^Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(0, 2948, '\p{Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(1, 2948, '\p{^Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(1, 2948, '\P{Is_InSC=-MODIFYING_LETTER}', "");
-    Expect(0, 2948, '\P{^Is_InSC=-MODIFYING_LETTER}', "");
-    Error('\p{Indic_Syllabic_Category: _Non_Joiner:=}');
-    Error('\P{Indic_Syllabic_Category: _Non_Joiner:=}');
+    Expect(1, 2947, '\p{Is_InSC=	_Modifying_Letter}', "");
+    Expect(0, 2947, '\p{^Is_InSC=	_Modifying_Letter}', "");
+    Expect(0, 2947, '\P{Is_InSC=	_Modifying_Letter}', "");
+    Expect(1, 2947, '\P{^Is_InSC=	_Modifying_Letter}', "");
+    Expect(0, 2948, '\p{Is_InSC=	_Modifying_Letter}', "");
+    Expect(1, 2948, '\p{^Is_InSC=	_Modifying_Letter}', "");
+    Expect(1, 2948, '\P{Is_InSC=	_Modifying_Letter}', "");
+    Expect(0, 2948, '\P{^Is_InSC=	_Modifying_Letter}', "");
+    Error('\p{Indic_Syllabic_Category=-_non_Joiner:=}');
+    Error('\P{Indic_Syllabic_Category=-_non_Joiner:=}');
     Expect(1, 8204, '\p{Indic_Syllabic_Category=:\ANon_Joiner\z:}', "");;
     Expect(0, 8205, '\p{Indic_Syllabic_Category=:\ANon_Joiner\z:}', "");;
     Expect(1, 8204, '\p{Indic_Syllabic_Category=nonjoiner}', "");
@@ -51683,56 +52305,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8205, '\P{^Indic_Syllabic_Category=nonjoiner}', "");
     Expect(1, 8204, '\p{Indic_Syllabic_Category=:\Anonjoiner\z:}', "");;
     Expect(0, 8205, '\p{Indic_Syllabic_Category=:\Anonjoiner\z:}', "");;
-    Expect(1, 8204, '\p{Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(0, 8204, '\p{^Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(0, 8204, '\P{Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(1, 8204, '\P{^Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(0, 8205, '\p{Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(1, 8205, '\p{^Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(1, 8205, '\P{Indic_Syllabic_Category=	 non_Joiner}', "");
-    Expect(0, 8205, '\P{^Indic_Syllabic_Category=	 non_Joiner}', "");
-    Error('\p{InSC=:=	-Non_Joiner}');
-    Error('\P{InSC=:=	-Non_Joiner}');
+    Expect(1, 8204, '\p{Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(0, 8204, '\p{^Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(0, 8204, '\P{Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(1, 8204, '\P{^Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(0, 8205, '\p{Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(1, 8205, '\p{^Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(1, 8205, '\P{Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Expect(0, 8205, '\P{^Indic_Syllabic_Category:	_NON_Joiner}', "");
+    Error('\p{InSC=-Non_JOINER/a/}');
+    Error('\P{InSC=-Non_JOINER/a/}');
     Expect(1, 8204, '\p{InSC=:\ANon_Joiner\z:}', "");;
     Expect(0, 8205, '\p{InSC=:\ANon_Joiner\z:}', "");;
-    Expect(1, 8204, '\p{InSC=nonjoiner}', "");
-    Expect(0, 8204, '\p{^InSC=nonjoiner}', "");
-    Expect(0, 8204, '\P{InSC=nonjoiner}', "");
-    Expect(1, 8204, '\P{^InSC=nonjoiner}', "");
-    Expect(0, 8205, '\p{InSC=nonjoiner}', "");
-    Expect(1, 8205, '\p{^InSC=nonjoiner}', "");
-    Expect(1, 8205, '\P{InSC=nonjoiner}', "");
-    Expect(0, 8205, '\P{^InSC=nonjoiner}', "");
+    Expect(1, 8204, '\p{InSC:nonjoiner}', "");
+    Expect(0, 8204, '\p{^InSC:nonjoiner}', "");
+    Expect(0, 8204, '\P{InSC:nonjoiner}', "");
+    Expect(1, 8204, '\P{^InSC:nonjoiner}', "");
+    Expect(0, 8205, '\p{InSC:nonjoiner}', "");
+    Expect(1, 8205, '\p{^InSC:nonjoiner}', "");
+    Expect(1, 8205, '\P{InSC:nonjoiner}', "");
+    Expect(0, 8205, '\P{^InSC:nonjoiner}', "");
     Expect(1, 8204, '\p{InSC=:\Anonjoiner\z:}', "");;
     Expect(0, 8205, '\p{InSC=:\Anonjoiner\z:}', "");;
-    Expect(1, 8204, '\p{InSC= NON_Joiner}', "");
-    Expect(0, 8204, '\p{^InSC= NON_Joiner}', "");
-    Expect(0, 8204, '\P{InSC= NON_Joiner}', "");
-    Expect(1, 8204, '\P{^InSC= NON_Joiner}', "");
-    Expect(0, 8205, '\p{InSC= NON_Joiner}', "");
-    Expect(1, 8205, '\p{^InSC= NON_Joiner}', "");
-    Expect(1, 8205, '\P{InSC= NON_Joiner}', "");
-    Expect(0, 8205, '\P{^InSC= NON_Joiner}', "");
-    Error('\p{Is_Indic_Syllabic_Category:   _non_joiner:=}');
-    Error('\P{Is_Indic_Syllabic_Category:   _non_joiner:=}');
-    Expect(1, 8204, '\p{Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(0, 8204, '\p{^Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(0, 8204, '\P{Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(1, 8204, '\P{^Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(0, 8205, '\p{Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(1, 8205, '\p{^Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(1, 8205, '\P{Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(0, 8205, '\P{^Is_Indic_Syllabic_Category=nonjoiner}', "");
-    Expect(1, 8204, '\p{Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(0, 8204, '\p{^Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(0, 8204, '\P{Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(1, 8204, '\P{^Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(0, 8205, '\p{Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(1, 8205, '\p{^Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(1, 8205, '\P{Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Expect(0, 8205, '\P{^Is_Indic_Syllabic_Category:	-_NON_Joiner}', "");
-    Error('\p{Is_InSC=_ NON_Joiner/a/}');
-    Error('\P{Is_InSC=_ NON_Joiner/a/}');
+    Expect(1, 8204, '\p{InSC=-	Non_Joiner}', "");
+    Expect(0, 8204, '\p{^InSC=-	Non_Joiner}', "");
+    Expect(0, 8204, '\P{InSC=-	Non_Joiner}', "");
+    Expect(1, 8204, '\P{^InSC=-	Non_Joiner}', "");
+    Expect(0, 8205, '\p{InSC=-	Non_Joiner}', "");
+    Expect(1, 8205, '\p{^InSC=-	Non_Joiner}', "");
+    Expect(1, 8205, '\P{InSC=-	Non_Joiner}', "");
+    Expect(0, 8205, '\P{^InSC=-	Non_Joiner}', "");
+    Error('\p{Is_Indic_Syllabic_Category=-:=NON_JOINER}');
+    Error('\P{Is_Indic_Syllabic_Category=-:=NON_JOINER}');
+    Expect(1, 8204, '\p{Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(0, 8204, '\p{^Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(0, 8204, '\P{Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(1, 8204, '\P{^Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(0, 8205, '\p{Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(1, 8205, '\p{^Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(1, 8205, '\P{Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(0, 8205, '\P{^Is_Indic_Syllabic_Category:	nonjoiner}', "");
+    Expect(1, 8204, '\p{Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(0, 8204, '\p{^Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(0, 8204, '\P{Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(1, 8204, '\P{^Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(0, 8205, '\p{Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(1, 8205, '\p{^Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(1, 8205, '\P{Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Expect(0, 8205, '\P{^Is_Indic_Syllabic_Category= 	Non_JOINER}', "");
+    Error('\p{Is_InSC:	/a/	non_Joiner}');
+    Error('\P{Is_InSC:	/a/	non_Joiner}');
     Expect(1, 8204, '\p{Is_InSC=nonjoiner}', "");
     Expect(0, 8204, '\p{^Is_InSC=nonjoiner}', "");
     Expect(0, 8204, '\P{Is_InSC=nonjoiner}', "");
@@ -51741,16 +52363,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8205, '\p{^Is_InSC=nonjoiner}', "");
     Expect(1, 8205, '\P{Is_InSC=nonjoiner}', "");
     Expect(0, 8205, '\P{^Is_InSC=nonjoiner}', "");
-    Expect(1, 8204, '\p{Is_InSC=- non_JOINER}', "");
-    Expect(0, 8204, '\p{^Is_InSC=- non_JOINER}', "");
-    Expect(0, 8204, '\P{Is_InSC=- non_JOINER}', "");
-    Expect(1, 8204, '\P{^Is_InSC=- non_JOINER}', "");
-    Expect(0, 8205, '\p{Is_InSC=- non_JOINER}', "");
-    Expect(1, 8205, '\p{^Is_InSC=- non_JOINER}', "");
-    Expect(1, 8205, '\P{Is_InSC=- non_JOINER}', "");
-    Expect(0, 8205, '\P{^Is_InSC=- non_JOINER}', "");
-    Error('\p{Indic_Syllabic_Category=:= nukta}');
-    Error('\P{Indic_Syllabic_Category=:= nukta}');
+    Expect(1, 8204, '\p{Is_InSC=		Non_JOINER}', "");
+    Expect(0, 8204, '\p{^Is_InSC=		Non_JOINER}', "");
+    Expect(0, 8204, '\P{Is_InSC=		Non_JOINER}', "");
+    Expect(1, 8204, '\P{^Is_InSC=		Non_JOINER}', "");
+    Expect(0, 8205, '\p{Is_InSC=		Non_JOINER}', "");
+    Expect(1, 8205, '\p{^Is_InSC=		Non_JOINER}', "");
+    Expect(1, 8205, '\P{Is_InSC=		Non_JOINER}', "");
+    Expect(0, 8205, '\P{^Is_InSC=		Non_JOINER}', "");
+    Error('\p{Indic_Syllabic_Category=  Nukta/a/}');
+    Error('\P{Indic_Syllabic_Category=  Nukta/a/}');
     Expect(1, 73026, '\p{Indic_Syllabic_Category=:\ANukta\z:}', "");;
     Expect(0, 73027, '\p{Indic_Syllabic_Category=:\ANukta\z:}', "");;
     Expect(1, 73026, '\p{Indic_Syllabic_Category=nukta}', "");
@@ -51763,16 +52385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73027, '\P{^Indic_Syllabic_Category=nukta}', "");
     Expect(1, 73026, '\p{Indic_Syllabic_Category=:\Anukta\z:}', "");;
     Expect(0, 73027, '\p{Indic_Syllabic_Category=:\Anukta\z:}', "");;
-    Expect(1, 73026, '\p{Indic_Syllabic_Category=	Nukta}', "");
-    Expect(0, 73026, '\p{^Indic_Syllabic_Category=	Nukta}', "");
-    Expect(0, 73026, '\P{Indic_Syllabic_Category=	Nukta}', "");
-    Expect(1, 73026, '\P{^Indic_Syllabic_Category=	Nukta}', "");
-    Expect(0, 73027, '\p{Indic_Syllabic_Category=	Nukta}', "");
-    Expect(1, 73027, '\p{^Indic_Syllabic_Category=	Nukta}', "");
-    Expect(1, 73027, '\P{Indic_Syllabic_Category=	Nukta}', "");
-    Expect(0, 73027, '\P{^Indic_Syllabic_Category=	Nukta}', "");
-    Error('\p{InSC=/a/_	Nukta}');
-    Error('\P{InSC=/a/_	Nukta}');
+    Expect(1, 73026, '\p{Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(0, 73026, '\p{^Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(0, 73026, '\P{Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(1, 73026, '\P{^Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(0, 73027, '\p{Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(1, 73027, '\p{^Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(1, 73027, '\P{Indic_Syllabic_Category= 	Nukta}', "");
+    Expect(0, 73027, '\P{^Indic_Syllabic_Category= 	Nukta}', "");
+    Error('\p{InSC=-/a/nukta}');
+    Error('\P{InSC=-/a/nukta}');
     Expect(1, 73026, '\p{InSC=:\ANukta\z:}', "");;
     Expect(0, 73027, '\p{InSC=:\ANukta\z:}', "");;
     Expect(1, 73026, '\p{InSC=nukta}', "");
@@ -51785,34 +52407,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73027, '\P{^InSC=nukta}', "");
     Expect(1, 73026, '\p{InSC=:\Anukta\z:}', "");;
     Expect(0, 73027, '\p{InSC=:\Anukta\z:}', "");;
-    Expect(1, 73026, '\p{InSC=_	Nukta}', "");
-    Expect(0, 73026, '\p{^InSC=_	Nukta}', "");
-    Expect(0, 73026, '\P{InSC=_	Nukta}', "");
-    Expect(1, 73026, '\P{^InSC=_	Nukta}', "");
-    Expect(0, 73027, '\p{InSC=_	Nukta}', "");
-    Expect(1, 73027, '\p{^InSC=_	Nukta}', "");
-    Expect(1, 73027, '\P{InSC=_	Nukta}', "");
-    Expect(0, 73027, '\P{^InSC=_	Nukta}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:=		NUKTA}');
-    Error('\P{Is_Indic_Syllabic_Category=:=		NUKTA}');
-    Expect(1, 73026, '\p{Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(0, 73026, '\p{^Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(0, 73026, '\P{Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(1, 73026, '\P{^Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(0, 73027, '\p{Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(1, 73027, '\p{^Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(1, 73027, '\P{Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(0, 73027, '\P{^Is_Indic_Syllabic_Category=nukta}', "");
-    Expect(1, 73026, '\p{Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(0, 73026, '\p{^Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(0, 73026, '\P{Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(1, 73026, '\P{^Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(0, 73027, '\p{Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(1, 73027, '\p{^Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(1, 73027, '\P{Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Expect(0, 73027, '\P{^Is_Indic_Syllabic_Category:	-Nukta}', "");
-    Error('\p{Is_InSC:	-Nukta:=}');
-    Error('\P{Is_InSC:	-Nukta:=}');
+    Expect(1, 73026, '\p{InSC=	NUKTA}', "");
+    Expect(0, 73026, '\p{^InSC=	NUKTA}', "");
+    Expect(0, 73026, '\P{InSC=	NUKTA}', "");
+    Expect(1, 73026, '\P{^InSC=	NUKTA}', "");
+    Expect(0, 73027, '\p{InSC=	NUKTA}', "");
+    Expect(1, 73027, '\p{^InSC=	NUKTA}', "");
+    Expect(1, 73027, '\P{InSC=	NUKTA}', "");
+    Expect(0, 73027, '\P{^InSC=	NUKTA}', "");
+    Error('\p{Is_Indic_Syllabic_Category=-_Nukta:=}');
+    Error('\P{Is_Indic_Syllabic_Category=-_Nukta:=}');
+    Expect(1, 73026, '\p{Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(0, 73026, '\p{^Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(0, 73026, '\P{Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(1, 73026, '\P{^Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(0, 73027, '\p{Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(1, 73027, '\p{^Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(1, 73027, '\P{Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(0, 73027, '\P{^Is_Indic_Syllabic_Category: nukta}', "");
+    Expect(1, 73026, '\p{Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(0, 73026, '\p{^Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(0, 73026, '\P{Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(1, 73026, '\P{^Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(0, 73027, '\p{Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(1, 73027, '\p{^Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(1, 73027, '\P{Is_Indic_Syllabic_Category=_nukta}', "");
+    Expect(0, 73027, '\P{^Is_Indic_Syllabic_Category=_nukta}', "");
+    Error('\p{Is_InSC=_:=NUKTA}');
+    Error('\P{Is_InSC=_:=NUKTA}');
     Expect(1, 73026, '\p{Is_InSC=nukta}', "");
     Expect(0, 73026, '\p{^Is_InSC=nukta}', "");
     Expect(0, 73026, '\P{Is_InSC=nukta}', "");
@@ -51821,96 +52443,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73027, '\p{^Is_InSC=nukta}', "");
     Expect(1, 73027, '\P{Is_InSC=nukta}', "");
     Expect(0, 73027, '\P{^Is_InSC=nukta}', "");
-    Expect(1, 73026, '\p{Is_InSC: -	Nukta}', "");
-    Expect(0, 73026, '\p{^Is_InSC: -	Nukta}', "");
-    Expect(0, 73026, '\P{Is_InSC: -	Nukta}', "");
-    Expect(1, 73026, '\P{^Is_InSC: -	Nukta}', "");
-    Expect(0, 73027, '\p{Is_InSC: -	Nukta}', "");
-    Expect(1, 73027, '\p{^Is_InSC: -	Nukta}', "");
-    Expect(1, 73027, '\P{Is_InSC: -	Nukta}', "");
-    Expect(0, 73027, '\P{^Is_InSC: -	Nukta}', "");
-    Error('\p{Indic_Syllabic_Category:	/a/- Number}');
-    Error('\P{Indic_Syllabic_Category:	/a/- Number}');
-    Expect(1, 73129, '\p{Indic_Syllabic_Category=:\ANumber\z:}', "");;
-    Expect(0, 73130, '\p{Indic_Syllabic_Category=:\ANumber\z:}', "");;
-    Expect(1, 73129, '\p{Indic_Syllabic_Category=number}', "");
-    Expect(0, 73129, '\p{^Indic_Syllabic_Category=number}', "");
-    Expect(0, 73129, '\P{Indic_Syllabic_Category=number}', "");
-    Expect(1, 73129, '\P{^Indic_Syllabic_Category=number}', "");
-    Expect(0, 73130, '\p{Indic_Syllabic_Category=number}', "");
-    Expect(1, 73130, '\p{^Indic_Syllabic_Category=number}', "");
-    Expect(1, 73130, '\P{Indic_Syllabic_Category=number}', "");
-    Expect(0, 73130, '\P{^Indic_Syllabic_Category=number}', "");
-    Expect(1, 73129, '\p{Indic_Syllabic_Category=:\Anumber\z:}', "");;
-    Expect(0, 73130, '\p{Indic_Syllabic_Category=:\Anumber\z:}', "");;
-    Expect(1, 73129, '\p{Indic_Syllabic_Category=-number}', "");
-    Expect(0, 73129, '\p{^Indic_Syllabic_Category=-number}', "");
-    Expect(0, 73129, '\P{Indic_Syllabic_Category=-number}', "");
-    Expect(1, 73129, '\P{^Indic_Syllabic_Category=-number}', "");
-    Expect(0, 73130, '\p{Indic_Syllabic_Category=-number}', "");
-    Expect(1, 73130, '\p{^Indic_Syllabic_Category=-number}', "");
-    Expect(1, 73130, '\P{Indic_Syllabic_Category=-number}', "");
-    Expect(0, 73130, '\P{^Indic_Syllabic_Category=-number}', "");
-    Error('\p{InSC=	/a/number}');
-    Error('\P{InSC=	/a/number}');
-    Expect(1, 73129, '\p{InSC=:\ANumber\z:}', "");;
-    Expect(0, 73130, '\p{InSC=:\ANumber\z:}', "");;
-    Expect(1, 73129, '\p{InSC:   number}', "");
-    Expect(0, 73129, '\p{^InSC:   number}', "");
-    Expect(0, 73129, '\P{InSC:   number}', "");
-    Expect(1, 73129, '\P{^InSC:   number}', "");
-    Expect(0, 73130, '\p{InSC:   number}', "");
-    Expect(1, 73130, '\p{^InSC:   number}', "");
-    Expect(1, 73130, '\P{InSC:   number}', "");
-    Expect(0, 73130, '\P{^InSC:   number}', "");
-    Expect(1, 73129, '\p{InSC=:\Anumber\z:}', "");;
-    Expect(0, 73130, '\p{InSC=:\Anumber\z:}', "");;
-    Expect(1, 73129, '\p{InSC:	_	Number}', "");
-    Expect(0, 73129, '\p{^InSC:	_	Number}', "");
-    Expect(0, 73129, '\P{InSC:	_	Number}', "");
-    Expect(1, 73129, '\P{^InSC:	_	Number}', "");
-    Expect(0, 73130, '\p{InSC:	_	Number}', "");
-    Expect(1, 73130, '\p{^InSC:	_	Number}', "");
-    Expect(1, 73130, '\P{InSC:	_	Number}', "");
-    Expect(0, 73130, '\P{^InSC:	_	Number}', "");
-    Error('\p{Is_Indic_Syllabic_Category= /a/Number}');
-    Error('\P{Is_Indic_Syllabic_Category= /a/Number}');
-    Expect(1, 73129, '\p{Is_Indic_Syllabic_Category=number}', "");
-    Expect(0, 73129, '\p{^Is_Indic_Syllabic_Category=number}', "");
-    Expect(0, 73129, '\P{Is_Indic_Syllabic_Category=number}', "");
-    Expect(1, 73129, '\P{^Is_Indic_Syllabic_Category=number}', "");
-    Expect(0, 73130, '\p{Is_Indic_Syllabic_Category=number}', "");
-    Expect(1, 73130, '\p{^Is_Indic_Syllabic_Category=number}', "");
-    Expect(1, 73130, '\P{Is_Indic_Syllabic_Category=number}', "");
-    Expect(0, 73130, '\P{^Is_Indic_Syllabic_Category=number}', "");
-    Expect(1, 73129, '\p{Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(0, 73129, '\p{^Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(0, 73129, '\P{Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(1, 73129, '\P{^Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(0, 73130, '\p{Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(1, 73130, '\p{^Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(1, 73130, '\P{Is_Indic_Syllabic_Category=_	Number}', "");
-    Expect(0, 73130, '\P{^Is_Indic_Syllabic_Category=_	Number}', "");
-    Error('\p{Is_InSC=/a/-	Number}');
-    Error('\P{Is_InSC=/a/-	Number}');
-    Expect(1, 73129, '\p{Is_InSC=number}', "");
-    Expect(0, 73129, '\p{^Is_InSC=number}', "");
-    Expect(0, 73129, '\P{Is_InSC=number}', "");
-    Expect(1, 73129, '\P{^Is_InSC=number}', "");
-    Expect(0, 73130, '\p{Is_InSC=number}', "");
-    Expect(1, 73130, '\p{^Is_InSC=number}', "");
-    Expect(1, 73130, '\P{Is_InSC=number}', "");
-    Expect(0, 73130, '\P{^Is_InSC=number}', "");
-    Expect(1, 73129, '\p{Is_InSC=	number}', "");
-    Expect(0, 73129, '\p{^Is_InSC=	number}', "");
-    Expect(0, 73129, '\P{Is_InSC=	number}', "");
-    Expect(1, 73129, '\P{^Is_InSC=	number}', "");
-    Expect(0, 73130, '\p{Is_InSC=	number}', "");
-    Expect(1, 73130, '\p{^Is_InSC=	number}', "");
-    Expect(1, 73130, '\P{Is_InSC=	number}', "");
-    Expect(0, 73130, '\P{^Is_InSC=	number}', "");
-    Error('\p{Indic_Syllabic_Category=	Number_JOINER:=}');
-    Error('\P{Indic_Syllabic_Category=	Number_JOINER:=}');
+    Expect(1, 73026, '\p{Is_InSC=--Nukta}', "");
+    Expect(0, 73026, '\p{^Is_InSC=--Nukta}', "");
+    Expect(0, 73026, '\P{Is_InSC=--Nukta}', "");
+    Expect(1, 73026, '\P{^Is_InSC=--Nukta}', "");
+    Expect(0, 73027, '\p{Is_InSC=--Nukta}', "");
+    Expect(1, 73027, '\p{^Is_InSC=--Nukta}', "");
+    Expect(1, 73027, '\P{Is_InSC=--Nukta}', "");
+    Expect(0, 73027, '\P{^Is_InSC=--Nukta}', "");
+    Error('\p{Indic_Syllabic_Category= -Number/a/}');
+    Error('\P{Indic_Syllabic_Category= -Number/a/}');
+    Expect(1, 73561, '\p{Indic_Syllabic_Category=:\ANumber\z:}', "");;
+    Expect(0, 73562, '\p{Indic_Syllabic_Category=:\ANumber\z:}', "");;
+    Expect(1, 73561, '\p{Indic_Syllabic_Category=number}', "");
+    Expect(0, 73561, '\p{^Indic_Syllabic_Category=number}', "");
+    Expect(0, 73561, '\P{Indic_Syllabic_Category=number}', "");
+    Expect(1, 73561, '\P{^Indic_Syllabic_Category=number}', "");
+    Expect(0, 73562, '\p{Indic_Syllabic_Category=number}', "");
+    Expect(1, 73562, '\p{^Indic_Syllabic_Category=number}', "");
+    Expect(1, 73562, '\P{Indic_Syllabic_Category=number}', "");
+    Expect(0, 73562, '\P{^Indic_Syllabic_Category=number}', "");
+    Expect(1, 73561, '\p{Indic_Syllabic_Category=:\Anumber\z:}', "");;
+    Expect(0, 73562, '\p{Indic_Syllabic_Category=:\Anumber\z:}', "");;
+    Expect(1, 73561, '\p{Indic_Syllabic_Category=-_Number}', "");
+    Expect(0, 73561, '\p{^Indic_Syllabic_Category=-_Number}', "");
+    Expect(0, 73561, '\P{Indic_Syllabic_Category=-_Number}', "");
+    Expect(1, 73561, '\P{^Indic_Syllabic_Category=-_Number}', "");
+    Expect(0, 73562, '\p{Indic_Syllabic_Category=-_Number}', "");
+    Expect(1, 73562, '\p{^Indic_Syllabic_Category=-_Number}', "");
+    Expect(1, 73562, '\P{Indic_Syllabic_Category=-_Number}', "");
+    Expect(0, 73562, '\P{^Indic_Syllabic_Category=-_Number}', "");
+    Error('\p{InSC=:=Number}');
+    Error('\P{InSC=:=Number}');
+    Expect(1, 73561, '\p{InSC=:\ANumber\z:}', "");;
+    Expect(0, 73562, '\p{InSC=:\ANumber\z:}', "");;
+    Expect(1, 73561, '\p{InSC=number}', "");
+    Expect(0, 73561, '\p{^InSC=number}', "");
+    Expect(0, 73561, '\P{InSC=number}', "");
+    Expect(1, 73561, '\P{^InSC=number}', "");
+    Expect(0, 73562, '\p{InSC=number}', "");
+    Expect(1, 73562, '\p{^InSC=number}', "");
+    Expect(1, 73562, '\P{InSC=number}', "");
+    Expect(0, 73562, '\P{^InSC=number}', "");
+    Expect(1, 73561, '\p{InSC=:\Anumber\z:}', "");;
+    Expect(0, 73562, '\p{InSC=:\Anumber\z:}', "");;
+    Expect(1, 73561, '\p{InSC=-_Number}', "");
+    Expect(0, 73561, '\p{^InSC=-_Number}', "");
+    Expect(0, 73561, '\P{InSC=-_Number}', "");
+    Expect(1, 73561, '\P{^InSC=-_Number}', "");
+    Expect(0, 73562, '\p{InSC=-_Number}', "");
+    Expect(1, 73562, '\p{^InSC=-_Number}', "");
+    Expect(1, 73562, '\P{InSC=-_Number}', "");
+    Expect(0, 73562, '\P{^InSC=-_Number}', "");
+    Error('\p{Is_Indic_Syllabic_Category=--Number/a/}');
+    Error('\P{Is_Indic_Syllabic_Category=--Number/a/}');
+    Expect(1, 73561, '\p{Is_Indic_Syllabic_Category=number}', "");
+    Expect(0, 73561, '\p{^Is_Indic_Syllabic_Category=number}', "");
+    Expect(0, 73561, '\P{Is_Indic_Syllabic_Category=number}', "");
+    Expect(1, 73561, '\P{^Is_Indic_Syllabic_Category=number}', "");
+    Expect(0, 73562, '\p{Is_Indic_Syllabic_Category=number}', "");
+    Expect(1, 73562, '\p{^Is_Indic_Syllabic_Category=number}', "");
+    Expect(1, 73562, '\P{Is_Indic_Syllabic_Category=number}', "");
+    Expect(0, 73562, '\P{^Is_Indic_Syllabic_Category=number}', "");
+    Expect(1, 73561, '\p{Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(0, 73561, '\p{^Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(0, 73561, '\P{Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(1, 73561, '\P{^Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(0, 73562, '\p{Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(1, 73562, '\p{^Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(1, 73562, '\P{Is_Indic_Syllabic_Category=		Number}', "");
+    Expect(0, 73562, '\P{^Is_Indic_Syllabic_Category=		Number}', "");
+    Error('\p{Is_InSC=__Number:=}');
+    Error('\P{Is_InSC=__Number:=}');
+    Expect(1, 73561, '\p{Is_InSC: number}', "");
+    Expect(0, 73561, '\p{^Is_InSC: number}', "");
+    Expect(0, 73561, '\P{Is_InSC: number}', "");
+    Expect(1, 73561, '\P{^Is_InSC: number}', "");
+    Expect(0, 73562, '\p{Is_InSC: number}', "");
+    Expect(1, 73562, '\p{^Is_InSC: number}', "");
+    Expect(1, 73562, '\P{Is_InSC: number}', "");
+    Expect(0, 73562, '\P{^Is_InSC: number}', "");
+    Expect(1, 73561, '\p{Is_InSC=	Number}', "");
+    Expect(0, 73561, '\p{^Is_InSC=	Number}', "");
+    Expect(0, 73561, '\P{Is_InSC=	Number}', "");
+    Expect(1, 73561, '\P{^Is_InSC=	Number}', "");
+    Expect(0, 73562, '\p{Is_InSC=	Number}', "");
+    Expect(1, 73562, '\p{^Is_InSC=	Number}', "");
+    Expect(1, 73562, '\P{Is_InSC=	Number}', "");
+    Expect(0, 73562, '\P{^Is_InSC=	Number}', "");
+    Error('\p{Indic_Syllabic_Category=-:=Number_JOINER}');
+    Error('\P{Indic_Syllabic_Category=-:=Number_JOINER}');
     Expect(1, 69759, '\p{Indic_Syllabic_Category=:\ANumber_Joiner\z:}', "");;
     Expect(0, 69760, '\p{Indic_Syllabic_Category=:\ANumber_Joiner\z:}', "");;
     Expect(1, 69759, '\p{Indic_Syllabic_Category=numberjoiner}', "");
@@ -51923,16 +52545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69760, '\P{^Indic_Syllabic_Category=numberjoiner}', "");
     Expect(1, 69759, '\p{Indic_Syllabic_Category=:\Anumberjoiner\z:}', "");;
     Expect(0, 69760, '\p{Indic_Syllabic_Category=:\Anumberjoiner\z:}', "");;
-    Expect(1, 69759, '\p{Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(0, 69759, '\p{^Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(0, 69759, '\P{Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(1, 69759, '\P{^Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(0, 69760, '\p{Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(1, 69760, '\p{^Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(1, 69760, '\P{Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Expect(0, 69760, '\P{^Indic_Syllabic_Category:	_Number_JOINER}', "");
-    Error('\p{InSC=:=NUMBER_Joiner}');
-    Error('\P{InSC=:=NUMBER_Joiner}');
+    Expect(1, 69759, '\p{Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(0, 69759, '\p{^Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(0, 69759, '\P{Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(1, 69759, '\P{^Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(0, 69760, '\p{Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(1, 69760, '\p{^Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(1, 69760, '\P{Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Expect(0, 69760, '\P{^Indic_Syllabic_Category=-	Number_Joiner}', "");
+    Error('\p{InSC=:= Number_Joiner}');
+    Error('\P{InSC=:= Number_Joiner}');
     Expect(1, 69759, '\p{InSC=:\ANumber_Joiner\z:}', "");;
     Expect(0, 69760, '\p{InSC=:\ANumber_Joiner\z:}', "");;
     Expect(1, 69759, '\p{InSC=numberjoiner}', "");
@@ -51945,16 +52567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69760, '\P{^InSC=numberjoiner}', "");
     Expect(1, 69759, '\p{InSC=:\Anumberjoiner\z:}', "");;
     Expect(0, 69760, '\p{InSC=:\Anumberjoiner\z:}', "");;
-    Expect(1, 69759, '\p{InSC:  _number_JOINER}', "");
-    Expect(0, 69759, '\p{^InSC:  _number_JOINER}', "");
-    Expect(0, 69759, '\P{InSC:  _number_JOINER}', "");
-    Expect(1, 69759, '\P{^InSC:  _number_JOINER}', "");
-    Expect(0, 69760, '\p{InSC:  _number_JOINER}', "");
-    Expect(1, 69760, '\p{^InSC:  _number_JOINER}', "");
-    Expect(1, 69760, '\P{InSC:  _number_JOINER}', "");
-    Expect(0, 69760, '\P{^InSC:  _number_JOINER}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:=	NUMBER_JOINER}');
-    Error('\P{Is_Indic_Syllabic_Category=:=	NUMBER_JOINER}');
+    Expect(1, 69759, '\p{InSC=_	NUMBER_Joiner}', "");
+    Expect(0, 69759, '\p{^InSC=_	NUMBER_Joiner}', "");
+    Expect(0, 69759, '\P{InSC=_	NUMBER_Joiner}', "");
+    Expect(1, 69759, '\P{^InSC=_	NUMBER_Joiner}', "");
+    Expect(0, 69760, '\p{InSC=_	NUMBER_Joiner}', "");
+    Expect(1, 69760, '\p{^InSC=_	NUMBER_Joiner}', "");
+    Expect(1, 69760, '\P{InSC=_	NUMBER_Joiner}', "");
+    Expect(0, 69760, '\P{^InSC=_	NUMBER_Joiner}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	_NUMBER_JOINER/a/}');
+    Error('\P{Is_Indic_Syllabic_Category=	_NUMBER_JOINER/a/}');
     Expect(1, 69759, '\p{Is_Indic_Syllabic_Category=numberjoiner}', "");
     Expect(0, 69759, '\p{^Is_Indic_Syllabic_Category=numberjoiner}', "");
     Expect(0, 69759, '\P{Is_Indic_Syllabic_Category=numberjoiner}', "");
@@ -51963,16 +52585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69760, '\p{^Is_Indic_Syllabic_Category=numberjoiner}', "");
     Expect(1, 69760, '\P{Is_Indic_Syllabic_Category=numberjoiner}', "");
     Expect(0, 69760, '\P{^Is_Indic_Syllabic_Category=numberjoiner}', "");
-    Expect(1, 69759, '\p{Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(0, 69759, '\p{^Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(0, 69759, '\P{Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(1, 69759, '\P{^Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(0, 69760, '\p{Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(1, 69760, '\p{^Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(1, 69760, '\P{Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Expect(0, 69760, '\P{^Is_Indic_Syllabic_Category: 	-number_Joiner}', "");
-    Error('\p{Is_InSC=:=- Number_joiner}');
-    Error('\P{Is_InSC=:=- Number_joiner}');
+    Expect(1, 69759, '\p{Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(0, 69759, '\p{^Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(0, 69759, '\P{Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(1, 69759, '\P{^Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(0, 69760, '\p{Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(1, 69760, '\p{^Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(1, 69760, '\P{Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Expect(0, 69760, '\P{^Is_Indic_Syllabic_Category=_NUMBER_JOINER}', "");
+    Error('\p{Is_InSC=:=Number_JOINER}');
+    Error('\P{Is_InSC=:=Number_JOINER}');
     Expect(1, 69759, '\p{Is_InSC=numberjoiner}', "");
     Expect(0, 69759, '\p{^Is_InSC=numberjoiner}', "");
     Expect(0, 69759, '\P{Is_InSC=numberjoiner}', "");
@@ -51981,176 +52603,176 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69760, '\p{^Is_InSC=numberjoiner}', "");
     Expect(1, 69760, '\P{Is_InSC=numberjoiner}', "");
     Expect(0, 69760, '\P{^Is_InSC=numberjoiner}', "");
-    Expect(1, 69759, '\p{Is_InSC=--number_Joiner}', "");
-    Expect(0, 69759, '\p{^Is_InSC=--number_Joiner}', "");
-    Expect(0, 69759, '\P{Is_InSC=--number_Joiner}', "");
-    Expect(1, 69759, '\P{^Is_InSC=--number_Joiner}', "");
-    Expect(0, 69760, '\p{Is_InSC=--number_Joiner}', "");
-    Expect(1, 69760, '\p{^Is_InSC=--number_Joiner}', "");
-    Expect(1, 69760, '\P{Is_InSC=--number_Joiner}', "");
-    Expect(0, 69760, '\P{^Is_InSC=--number_Joiner}', "");
-    Error('\p{Indic_Syllabic_Category=-OTHER:=}');
-    Error('\P{Indic_Syllabic_Category=-OTHER:=}');
-    Expect(1, 73463, '\p{Indic_Syllabic_Category=:\AOther\z:}', "");;
-    Expect(0, 73462, '\p{Indic_Syllabic_Category=:\AOther\z:}', "");;
-    Expect(1, 73463, '\p{Indic_Syllabic_Category=other}', "");
-    Expect(0, 73463, '\p{^Indic_Syllabic_Category=other}', "");
-    Expect(0, 73463, '\P{Indic_Syllabic_Category=other}', "");
-    Expect(1, 73463, '\P{^Indic_Syllabic_Category=other}', "");
-    Expect(0, 73462, '\p{Indic_Syllabic_Category=other}', "");
-    Expect(1, 73462, '\p{^Indic_Syllabic_Category=other}', "");
-    Expect(1, 73462, '\P{Indic_Syllabic_Category=other}', "");
-    Expect(0, 73462, '\P{^Indic_Syllabic_Category=other}', "");
-    Expect(1, 73463, '\p{Indic_Syllabic_Category=:\Aother\z:}', "");;
-    Expect(0, 73462, '\p{Indic_Syllabic_Category=:\Aother\z:}', "");;
-    Expect(1, 73463, '\p{Indic_Syllabic_Category=__other}', "");
-    Expect(0, 73463, '\p{^Indic_Syllabic_Category=__other}', "");
-    Expect(0, 73463, '\P{Indic_Syllabic_Category=__other}', "");
-    Expect(1, 73463, '\P{^Indic_Syllabic_Category=__other}', "");
-    Expect(0, 73462, '\p{Indic_Syllabic_Category=__other}', "");
-    Expect(1, 73462, '\p{^Indic_Syllabic_Category=__other}', "");
-    Expect(1, 73462, '\P{Indic_Syllabic_Category=__other}', "");
-    Expect(0, 73462, '\P{^Indic_Syllabic_Category=__other}', "");
-    Error('\p{InSC=/a/Other}');
-    Error('\P{InSC=/a/Other}');
-    Expect(1, 73463, '\p{InSC=:\AOther\z:}', "");;
-    Expect(0, 73462, '\p{InSC=:\AOther\z:}', "");;
-    Expect(1, 73463, '\p{InSC=other}', "");
-    Expect(0, 73463, '\p{^InSC=other}', "");
-    Expect(0, 73463, '\P{InSC=other}', "");
-    Expect(1, 73463, '\P{^InSC=other}', "");
-    Expect(0, 73462, '\p{InSC=other}', "");
-    Expect(1, 73462, '\p{^InSC=other}', "");
-    Expect(1, 73462, '\P{InSC=other}', "");
-    Expect(0, 73462, '\P{^InSC=other}', "");
-    Expect(1, 73463, '\p{InSC=:\Aother\z:}', "");;
-    Expect(0, 73462, '\p{InSC=:\Aother\z:}', "");;
-    Expect(1, 73463, '\p{InSC=-Other}', "");
-    Expect(0, 73463, '\p{^InSC=-Other}', "");
-    Expect(0, 73463, '\P{InSC=-Other}', "");
-    Expect(1, 73463, '\P{^InSC=-Other}', "");
-    Expect(0, 73462, '\p{InSC=-Other}', "");
-    Expect(1, 73462, '\p{^InSC=-Other}', "");
-    Expect(1, 73462, '\P{InSC=-Other}', "");
-    Expect(0, 73462, '\P{^InSC=-Other}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	/a/Other}');
-    Error('\P{Is_Indic_Syllabic_Category=	/a/Other}');
-    Expect(1, 73463, '\p{Is_Indic_Syllabic_Category=other}', "");
-    Expect(0, 73463, '\p{^Is_Indic_Syllabic_Category=other}', "");
-    Expect(0, 73463, '\P{Is_Indic_Syllabic_Category=other}', "");
-    Expect(1, 73463, '\P{^Is_Indic_Syllabic_Category=other}', "");
-    Expect(0, 73462, '\p{Is_Indic_Syllabic_Category=other}', "");
-    Expect(1, 73462, '\p{^Is_Indic_Syllabic_Category=other}', "");
-    Expect(1, 73462, '\P{Is_Indic_Syllabic_Category=other}', "");
-    Expect(0, 73462, '\P{^Is_Indic_Syllabic_Category=other}', "");
-    Expect(1, 73463, '\p{Is_Indic_Syllabic_Category=-other}', "");
-    Expect(0, 73463, '\p{^Is_Indic_Syllabic_Category=-other}', "");
-    Expect(0, 73463, '\P{Is_Indic_Syllabic_Category=-other}', "");
-    Expect(1, 73463, '\P{^Is_Indic_Syllabic_Category=-other}', "");
-    Expect(0, 73462, '\p{Is_Indic_Syllabic_Category=-other}', "");
-    Expect(1, 73462, '\p{^Is_Indic_Syllabic_Category=-other}', "");
-    Expect(1, 73462, '\P{Is_Indic_Syllabic_Category=-other}', "");
-    Expect(0, 73462, '\P{^Is_Indic_Syllabic_Category=-other}', "");
-    Error('\p{Is_InSC=-:=Other}');
-    Error('\P{Is_InSC=-:=Other}');
-    Expect(1, 73463, '\p{Is_InSC=other}', "");
-    Expect(0, 73463, '\p{^Is_InSC=other}', "");
-    Expect(0, 73463, '\P{Is_InSC=other}', "");
-    Expect(1, 73463, '\P{^Is_InSC=other}', "");
-    Expect(0, 73462, '\p{Is_InSC=other}', "");
-    Expect(1, 73462, '\p{^Is_InSC=other}', "");
-    Expect(1, 73462, '\P{Is_InSC=other}', "");
-    Expect(0, 73462, '\P{^Is_InSC=other}', "");
-    Expect(1, 73463, '\p{Is_InSC=-OTHER}', "");
-    Expect(0, 73463, '\p{^Is_InSC=-OTHER}', "");
-    Expect(0, 73463, '\P{Is_InSC=-OTHER}', "");
-    Expect(1, 73463, '\P{^Is_InSC=-OTHER}', "");
-    Expect(0, 73462, '\p{Is_InSC=-OTHER}', "");
-    Expect(1, 73462, '\p{^Is_InSC=-OTHER}', "");
-    Expect(1, 73462, '\P{Is_InSC=-OTHER}', "");
-    Expect(0, 73462, '\P{^Is_InSC=-OTHER}', "");
-    Error('\p{Indic_Syllabic_Category=__pure_Killer:=}');
-    Error('\P{Indic_Syllabic_Category=__pure_Killer:=}');
-    Expect(1, 73028, '\p{Indic_Syllabic_Category=:\APure_Killer\z:}', "");;
-    Expect(0, 73029, '\p{Indic_Syllabic_Category=:\APure_Killer\z:}', "");;
-    Expect(1, 73028, '\p{Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73028, '\p{^Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73028, '\P{Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73028, '\P{^Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73029, '\p{Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73029, '\p{^Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73029, '\P{Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73029, '\P{^Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73028, '\p{Indic_Syllabic_Category=:\Apurekiller\z:}', "");;
-    Expect(0, 73029, '\p{Indic_Syllabic_Category=:\Apurekiller\z:}', "");;
-    Expect(1, 73028, '\p{Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(0, 73028, '\p{^Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(0, 73028, '\P{Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(1, 73028, '\P{^Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(0, 73029, '\p{Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(1, 73029, '\p{^Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(1, 73029, '\P{Indic_Syllabic_Category: -_Pure_killer}', "");
-    Expect(0, 73029, '\P{^Indic_Syllabic_Category: -_Pure_killer}', "");
-    Error('\p{InSC=- Pure_KILLER:=}');
-    Error('\P{InSC=- Pure_KILLER:=}');
-    Expect(1, 73028, '\p{InSC=:\APure_Killer\z:}', "");;
-    Expect(0, 73029, '\p{InSC=:\APure_Killer\z:}', "");;
-    Expect(1, 73028, '\p{InSC=purekiller}', "");
-    Expect(0, 73028, '\p{^InSC=purekiller}', "");
-    Expect(0, 73028, '\P{InSC=purekiller}', "");
-    Expect(1, 73028, '\P{^InSC=purekiller}', "");
-    Expect(0, 73029, '\p{InSC=purekiller}', "");
-    Expect(1, 73029, '\p{^InSC=purekiller}', "");
-    Expect(1, 73029, '\P{InSC=purekiller}', "");
-    Expect(0, 73029, '\P{^InSC=purekiller}', "");
-    Expect(1, 73028, '\p{InSC=:\Apurekiller\z:}', "");;
-    Expect(0, 73029, '\p{InSC=:\Apurekiller\z:}', "");;
-    Expect(1, 73028, '\p{InSC=-_PURE_killer}', "");
-    Expect(0, 73028, '\p{^InSC=-_PURE_killer}', "");
-    Expect(0, 73028, '\P{InSC=-_PURE_killer}', "");
-    Expect(1, 73028, '\P{^InSC=-_PURE_killer}', "");
-    Expect(0, 73029, '\p{InSC=-_PURE_killer}', "");
-    Expect(1, 73029, '\p{^InSC=-_PURE_killer}', "");
-    Expect(1, 73029, '\P{InSC=-_PURE_killer}', "");
-    Expect(0, 73029, '\P{^InSC=-_PURE_killer}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	/a/PURE_KILLER}');
-    Error('\P{Is_Indic_Syllabic_Category=	/a/PURE_KILLER}');
-    Expect(1, 73028, '\p{Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73028, '\p{^Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73028, '\P{Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73028, '\P{^Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73029, '\p{Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73029, '\p{^Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73029, '\P{Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(0, 73029, '\P{^Is_Indic_Syllabic_Category=purekiller}', "");
-    Expect(1, 73028, '\p{Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(0, 73028, '\p{^Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(0, 73028, '\P{Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(1, 73028, '\P{^Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(0, 73029, '\p{Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(1, 73029, '\p{^Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(1, 73029, '\P{Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Expect(0, 73029, '\P{^Is_Indic_Syllabic_Category=	pure_Killer}', "");
-    Error('\p{Is_InSC=	 Pure_killer:=}');
-    Error('\P{Is_InSC=	 Pure_killer:=}');
-    Expect(1, 73028, '\p{Is_InSC=purekiller}', "");
-    Expect(0, 73028, '\p{^Is_InSC=purekiller}', "");
-    Expect(0, 73028, '\P{Is_InSC=purekiller}', "");
-    Expect(1, 73028, '\P{^Is_InSC=purekiller}', "");
-    Expect(0, 73029, '\p{Is_InSC=purekiller}', "");
-    Expect(1, 73029, '\p{^Is_InSC=purekiller}', "");
-    Expect(1, 73029, '\P{Is_InSC=purekiller}', "");
-    Expect(0, 73029, '\P{^Is_InSC=purekiller}', "");
-    Expect(1, 73028, '\p{Is_InSC= -pure_killer}', "");
-    Expect(0, 73028, '\p{^Is_InSC= -pure_killer}', "");
-    Expect(0, 73028, '\P{Is_InSC= -pure_killer}', "");
-    Expect(1, 73028, '\P{^Is_InSC= -pure_killer}', "");
-    Expect(0, 73029, '\p{Is_InSC= -pure_killer}', "");
-    Expect(1, 73029, '\p{^Is_InSC= -pure_killer}', "");
-    Expect(1, 73029, '\P{Is_InSC= -pure_killer}', "");
-    Expect(0, 73029, '\P{^Is_InSC= -pure_killer}', "");
-    Error('\p{Indic_Syllabic_Category=-	REGISTER_Shifter/a/}');
-    Error('\P{Indic_Syllabic_Category=-	REGISTER_Shifter/a/}');
+    Expect(1, 69759, '\p{Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(0, 69759, '\p{^Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(0, 69759, '\P{Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(1, 69759, '\P{^Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(0, 69760, '\p{Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(1, 69760, '\p{^Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(1, 69760, '\P{Is_InSC=	 NUMBER_JOINER}', "");
+    Expect(0, 69760, '\P{^Is_InSC=	 NUMBER_JOINER}', "");
+    Error('\p{Indic_Syllabic_Category=:=-	other}');
+    Error('\P{Indic_Syllabic_Category=:=-	other}');
+    Expect(1, 73562, '\p{Indic_Syllabic_Category=:\AOther\z:}', "");;
+    Expect(0, 73561, '\p{Indic_Syllabic_Category=:\AOther\z:}', "");;
+    Expect(1, 73562, '\p{Indic_Syllabic_Category=other}', "");
+    Expect(0, 73562, '\p{^Indic_Syllabic_Category=other}', "");
+    Expect(0, 73562, '\P{Indic_Syllabic_Category=other}', "");
+    Expect(1, 73562, '\P{^Indic_Syllabic_Category=other}', "");
+    Expect(0, 73561, '\p{Indic_Syllabic_Category=other}', "");
+    Expect(1, 73561, '\p{^Indic_Syllabic_Category=other}', "");
+    Expect(1, 73561, '\P{Indic_Syllabic_Category=other}', "");
+    Expect(0, 73561, '\P{^Indic_Syllabic_Category=other}', "");
+    Expect(1, 73562, '\p{Indic_Syllabic_Category=:\Aother\z:}', "");;
+    Expect(0, 73561, '\p{Indic_Syllabic_Category=:\Aother\z:}', "");;
+    Expect(1, 73562, '\p{Indic_Syllabic_Category: 	Other}', "");
+    Expect(0, 73562, '\p{^Indic_Syllabic_Category: 	Other}', "");
+    Expect(0, 73562, '\P{Indic_Syllabic_Category: 	Other}', "");
+    Expect(1, 73562, '\P{^Indic_Syllabic_Category: 	Other}', "");
+    Expect(0, 73561, '\p{Indic_Syllabic_Category: 	Other}', "");
+    Expect(1, 73561, '\p{^Indic_Syllabic_Category: 	Other}', "");
+    Expect(1, 73561, '\P{Indic_Syllabic_Category: 	Other}', "");
+    Expect(0, 73561, '\P{^Indic_Syllabic_Category: 	Other}', "");
+    Error('\p{InSC=/a/other}');
+    Error('\P{InSC=/a/other}');
+    Expect(1, 73562, '\p{InSC=:\AOther\z:}', "");;
+    Expect(0, 73561, '\p{InSC=:\AOther\z:}', "");;
+    Expect(1, 73562, '\p{InSC=other}', "");
+    Expect(0, 73562, '\p{^InSC=other}', "");
+    Expect(0, 73562, '\P{InSC=other}', "");
+    Expect(1, 73562, '\P{^InSC=other}', "");
+    Expect(0, 73561, '\p{InSC=other}', "");
+    Expect(1, 73561, '\p{^InSC=other}', "");
+    Expect(1, 73561, '\P{InSC=other}', "");
+    Expect(0, 73561, '\P{^InSC=other}', "");
+    Expect(1, 73562, '\p{InSC=:\Aother\z:}', "");;
+    Expect(0, 73561, '\p{InSC=:\Aother\z:}', "");;
+    Expect(1, 73562, '\p{InSC=	_OTHER}', "");
+    Expect(0, 73562, '\p{^InSC=	_OTHER}', "");
+    Expect(0, 73562, '\P{InSC=	_OTHER}', "");
+    Expect(1, 73562, '\P{^InSC=	_OTHER}', "");
+    Expect(0, 73561, '\p{InSC=	_OTHER}', "");
+    Expect(1, 73561, '\p{^InSC=	_OTHER}', "");
+    Expect(1, 73561, '\P{InSC=	_OTHER}', "");
+    Expect(0, 73561, '\P{^InSC=	_OTHER}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_/a/OTHER}');
+    Error('\P{Is_Indic_Syllabic_Category=_/a/OTHER}');
+    Expect(1, 73562, '\p{Is_Indic_Syllabic_Category=other}', "");
+    Expect(0, 73562, '\p{^Is_Indic_Syllabic_Category=other}', "");
+    Expect(0, 73562, '\P{Is_Indic_Syllabic_Category=other}', "");
+    Expect(1, 73562, '\P{^Is_Indic_Syllabic_Category=other}', "");
+    Expect(0, 73561, '\p{Is_Indic_Syllabic_Category=other}', "");
+    Expect(1, 73561, '\p{^Is_Indic_Syllabic_Category=other}', "");
+    Expect(1, 73561, '\P{Is_Indic_Syllabic_Category=other}', "");
+    Expect(0, 73561, '\P{^Is_Indic_Syllabic_Category=other}', "");
+    Expect(1, 73562, '\p{Is_Indic_Syllabic_Category= Other}', "");
+    Expect(0, 73562, '\p{^Is_Indic_Syllabic_Category= Other}', "");
+    Expect(0, 73562, '\P{Is_Indic_Syllabic_Category= Other}', "");
+    Expect(1, 73562, '\P{^Is_Indic_Syllabic_Category= Other}', "");
+    Expect(0, 73561, '\p{Is_Indic_Syllabic_Category= Other}', "");
+    Expect(1, 73561, '\p{^Is_Indic_Syllabic_Category= Other}', "");
+    Expect(1, 73561, '\P{Is_Indic_Syllabic_Category= Other}', "");
+    Expect(0, 73561, '\P{^Is_Indic_Syllabic_Category= Other}', "");
+    Error('\p{Is_InSC= _OTHER:=}');
+    Error('\P{Is_InSC= _OTHER:=}');
+    Expect(1, 73562, '\p{Is_InSC=other}', "");
+    Expect(0, 73562, '\p{^Is_InSC=other}', "");
+    Expect(0, 73562, '\P{Is_InSC=other}', "");
+    Expect(1, 73562, '\P{^Is_InSC=other}', "");
+    Expect(0, 73561, '\p{Is_InSC=other}', "");
+    Expect(1, 73561, '\p{^Is_InSC=other}', "");
+    Expect(1, 73561, '\P{Is_InSC=other}', "");
+    Expect(0, 73561, '\P{^Is_InSC=other}', "");
+    Expect(1, 73562, '\p{Is_InSC=-	other}', "");
+    Expect(0, 73562, '\p{^Is_InSC=-	other}', "");
+    Expect(0, 73562, '\P{Is_InSC=-	other}', "");
+    Expect(1, 73562, '\P{^Is_InSC=-	other}', "");
+    Expect(0, 73561, '\p{Is_InSC=-	other}', "");
+    Expect(1, 73561, '\p{^Is_InSC=-	other}', "");
+    Expect(1, 73561, '\P{Is_InSC=-	other}', "");
+    Expect(0, 73561, '\P{^Is_InSC=-	other}', "");
+    Error('\p{Indic_Syllabic_Category= _pure_killer/a/}');
+    Error('\P{Indic_Syllabic_Category= _pure_killer/a/}');
+    Expect(1, 73537, '\p{Indic_Syllabic_Category=:\APure_Killer\z:}', "");;
+    Expect(0, 73538, '\p{Indic_Syllabic_Category=:\APure_Killer\z:}', "");;
+    Expect(1, 73537, '\p{Indic_Syllabic_Category:	purekiller}', "");
+    Expect(0, 73537, '\p{^Indic_Syllabic_Category:	purekiller}', "");
+    Expect(0, 73537, '\P{Indic_Syllabic_Category:	purekiller}', "");
+    Expect(1, 73537, '\P{^Indic_Syllabic_Category:	purekiller}', "");
+    Expect(0, 73538, '\p{Indic_Syllabic_Category:	purekiller}', "");
+    Expect(1, 73538, '\p{^Indic_Syllabic_Category:	purekiller}', "");
+    Expect(1, 73538, '\P{Indic_Syllabic_Category:	purekiller}', "");
+    Expect(0, 73538, '\P{^Indic_Syllabic_Category:	purekiller}', "");
+    Expect(1, 73537, '\p{Indic_Syllabic_Category=:\Apurekiller\z:}', "");;
+    Expect(0, 73538, '\p{Indic_Syllabic_Category=:\Apurekiller\z:}', "");;
+    Expect(1, 73537, '\p{Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(0, 73537, '\p{^Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(0, 73537, '\P{Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(1, 73537, '\P{^Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(0, 73538, '\p{Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(1, 73538, '\p{^Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(1, 73538, '\P{Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Expect(0, 73538, '\P{^Indic_Syllabic_Category=	_pure_KILLER}', "");
+    Error('\p{InSC=_/a/pure_killer}');
+    Error('\P{InSC=_/a/pure_killer}');
+    Expect(1, 73537, '\p{InSC=:\APure_Killer\z:}', "");;
+    Expect(0, 73538, '\p{InSC=:\APure_Killer\z:}', "");;
+    Expect(1, 73537, '\p{InSC=purekiller}', "");
+    Expect(0, 73537, '\p{^InSC=purekiller}', "");
+    Expect(0, 73537, '\P{InSC=purekiller}', "");
+    Expect(1, 73537, '\P{^InSC=purekiller}', "");
+    Expect(0, 73538, '\p{InSC=purekiller}', "");
+    Expect(1, 73538, '\p{^InSC=purekiller}', "");
+    Expect(1, 73538, '\P{InSC=purekiller}', "");
+    Expect(0, 73538, '\P{^InSC=purekiller}', "");
+    Expect(1, 73537, '\p{InSC=:\Apurekiller\z:}', "");;
+    Expect(0, 73538, '\p{InSC=:\Apurekiller\z:}', "");;
+    Expect(1, 73537, '\p{InSC=-Pure_Killer}', "");
+    Expect(0, 73537, '\p{^InSC=-Pure_Killer}', "");
+    Expect(0, 73537, '\P{InSC=-Pure_Killer}', "");
+    Expect(1, 73537, '\P{^InSC=-Pure_Killer}', "");
+    Expect(0, 73538, '\p{InSC=-Pure_Killer}', "");
+    Expect(1, 73538, '\p{^InSC=-Pure_Killer}', "");
+    Expect(1, 73538, '\P{InSC=-Pure_Killer}', "");
+    Expect(0, 73538, '\P{^InSC=-Pure_Killer}', "");
+    Error('\p{Is_Indic_Syllabic_Category=  Pure_KILLER/a/}');
+    Error('\P{Is_Indic_Syllabic_Category=  Pure_KILLER/a/}');
+    Expect(1, 73537, '\p{Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(0, 73537, '\p{^Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(0, 73537, '\P{Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(1, 73537, '\P{^Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(0, 73538, '\p{Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(1, 73538, '\p{^Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(1, 73538, '\P{Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(0, 73538, '\P{^Is_Indic_Syllabic_Category=purekiller}', "");
+    Expect(1, 73537, '\p{Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(0, 73537, '\p{^Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(0, 73537, '\P{Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(1, 73537, '\P{^Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(0, 73538, '\p{Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(1, 73538, '\p{^Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(1, 73538, '\P{Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Expect(0, 73538, '\P{^Is_Indic_Syllabic_Category=-	pure_Killer}', "");
+    Error('\p{Is_InSC=:=_Pure_Killer}');
+    Error('\P{Is_InSC=:=_Pure_Killer}');
+    Expect(1, 73537, '\p{Is_InSC=purekiller}', "");
+    Expect(0, 73537, '\p{^Is_InSC=purekiller}', "");
+    Expect(0, 73537, '\P{Is_InSC=purekiller}', "");
+    Expect(1, 73537, '\P{^Is_InSC=purekiller}', "");
+    Expect(0, 73538, '\p{Is_InSC=purekiller}', "");
+    Expect(1, 73538, '\p{^Is_InSC=purekiller}', "");
+    Expect(1, 73538, '\P{Is_InSC=purekiller}', "");
+    Expect(0, 73538, '\P{^Is_InSC=purekiller}', "");
+    Expect(1, 73537, '\p{Is_InSC=--pure_killer}', "");
+    Expect(0, 73537, '\p{^Is_InSC=--pure_killer}', "");
+    Expect(0, 73537, '\P{Is_InSC=--pure_killer}', "");
+    Expect(1, 73537, '\P{^Is_InSC=--pure_killer}', "");
+    Expect(0, 73538, '\p{Is_InSC=--pure_killer}', "");
+    Expect(1, 73538, '\p{^Is_InSC=--pure_killer}', "");
+    Expect(1, 73538, '\P{Is_InSC=--pure_killer}', "");
+    Expect(0, 73538, '\P{^Is_InSC=--pure_killer}', "");
+    Error('\p{Indic_Syllabic_Category= /a/REGISTER_shifter}');
+    Error('\P{Indic_Syllabic_Category= /a/REGISTER_shifter}');
     Expect(1, 6090, '\p{Indic_Syllabic_Category=:\ARegister_Shifter\z:}', "");;
     Expect(0, 6091, '\p{Indic_Syllabic_Category=:\ARegister_Shifter\z:}', "");;
     Expect(1, 6090, '\p{Indic_Syllabic_Category=registershifter}', "");
@@ -52163,16 +52785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6091, '\P{^Indic_Syllabic_Category=registershifter}', "");
     Expect(1, 6090, '\p{Indic_Syllabic_Category=:\Aregistershifter\z:}', "");;
     Expect(0, 6091, '\p{Indic_Syllabic_Category=:\Aregistershifter\z:}', "");;
-    Expect(1, 6090, '\p{Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(0, 6090, '\p{^Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(0, 6090, '\P{Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(1, 6090, '\P{^Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(0, 6091, '\p{Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(1, 6091, '\p{^Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(1, 6091, '\P{Indic_Syllabic_Category=	_register_Shifter}', "");
-    Expect(0, 6091, '\P{^Indic_Syllabic_Category=	_register_Shifter}', "");
-    Error('\p{InSC=- register_Shifter/a/}');
-    Error('\P{InSC=- register_Shifter/a/}');
+    Expect(1, 6090, '\p{Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(0, 6090, '\p{^Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(0, 6090, '\P{Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(1, 6090, '\P{^Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(0, 6091, '\p{Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(1, 6091, '\p{^Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(1, 6091, '\P{Indic_Syllabic_Category:    Register_shifter}', "");
+    Expect(0, 6091, '\P{^Indic_Syllabic_Category:    Register_shifter}', "");
+    Error('\p{InSC=	_Register_Shifter/a/}');
+    Error('\P{InSC=	_Register_Shifter/a/}');
     Expect(1, 6090, '\p{InSC=:\ARegister_Shifter\z:}', "");;
     Expect(0, 6091, '\p{InSC=:\ARegister_Shifter\z:}', "");;
     Expect(1, 6090, '\p{InSC=registershifter}', "");
@@ -52185,16 +52807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 6091, '\P{^InSC=registershifter}', "");
     Expect(1, 6090, '\p{InSC=:\Aregistershifter\z:}', "");;
     Expect(0, 6091, '\p{InSC=:\Aregistershifter\z:}', "");;
-    Expect(1, 6090, '\p{InSC=	-Register_Shifter}', "");
-    Expect(0, 6090, '\p{^InSC=	-Register_Shifter}', "");
-    Expect(0, 6090, '\P{InSC=	-Register_Shifter}', "");
-    Expect(1, 6090, '\P{^InSC=	-Register_Shifter}', "");
-    Expect(0, 6091, '\p{InSC=	-Register_Shifter}', "");
-    Expect(1, 6091, '\p{^InSC=	-Register_Shifter}', "");
-    Expect(1, 6091, '\P{InSC=	-Register_Shifter}', "");
-    Expect(0, 6091, '\P{^InSC=	-Register_Shifter}', "");
-    Error('\p{Is_Indic_Syllabic_Category:    /a/Register_shifter}');
-    Error('\P{Is_Indic_Syllabic_Category:    /a/Register_shifter}');
+    Expect(1, 6090, '\p{InSC= _Register_shifter}', "");
+    Expect(0, 6090, '\p{^InSC= _Register_shifter}', "");
+    Expect(0, 6090, '\P{InSC= _Register_shifter}', "");
+    Expect(1, 6090, '\P{^InSC= _Register_shifter}', "");
+    Expect(0, 6091, '\p{InSC= _Register_shifter}', "");
+    Expect(1, 6091, '\p{^InSC= _Register_shifter}', "");
+    Expect(1, 6091, '\P{InSC= _Register_shifter}', "");
+    Expect(0, 6091, '\P{^InSC= _Register_shifter}', "");
+    Error('\p{Is_Indic_Syllabic_Category=:=Register_Shifter}');
+    Error('\P{Is_Indic_Syllabic_Category=:=Register_Shifter}');
     Expect(1, 6090, '\p{Is_Indic_Syllabic_Category=registershifter}', "");
     Expect(0, 6090, '\p{^Is_Indic_Syllabic_Category=registershifter}', "");
     Expect(0, 6090, '\P{Is_Indic_Syllabic_Category=registershifter}', "");
@@ -52203,16 +52825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 6091, '\p{^Is_Indic_Syllabic_Category=registershifter}', "");
     Expect(1, 6091, '\P{Is_Indic_Syllabic_Category=registershifter}', "");
     Expect(0, 6091, '\P{^Is_Indic_Syllabic_Category=registershifter}', "");
-    Expect(1, 6090, '\p{Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(0, 6090, '\p{^Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(0, 6090, '\P{Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(1, 6090, '\P{^Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(0, 6091, '\p{Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(1, 6091, '\p{^Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(1, 6091, '\P{Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Expect(0, 6091, '\P{^Is_Indic_Syllabic_Category=-_register_SHIFTER}', "");
-    Error('\p{Is_InSC= /a/register_SHIFTER}');
-    Error('\P{Is_InSC= /a/register_SHIFTER}');
+    Expect(1, 6090, '\p{Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(0, 6090, '\p{^Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(0, 6090, '\P{Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(1, 6090, '\P{^Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(0, 6091, '\p{Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(1, 6091, '\p{^Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(1, 6091, '\P{Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Expect(0, 6091, '\P{^Is_Indic_Syllabic_Category=	REGISTER_SHIFTER}', "");
+    Error('\p{Is_InSC=	_Register_shifter:=}');
+    Error('\P{Is_InSC=	_Register_shifter:=}');
     Expect(1, 6090, '\p{Is_InSC=registershifter}', "");
     Expect(0, 6090, '\p{^Is_InSC=registershifter}', "");
     Expect(0, 6090, '\P{Is_InSC=registershifter}', "");
@@ -52221,16 +52843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 6091, '\p{^Is_InSC=registershifter}', "");
     Expect(1, 6091, '\P{Is_InSC=registershifter}', "");
     Expect(0, 6091, '\P{^Is_InSC=registershifter}', "");
-    Expect(1, 6090, '\p{Is_InSC=_-REGISTER_shifter}', "");
-    Expect(0, 6090, '\p{^Is_InSC=_-REGISTER_shifter}', "");
-    Expect(0, 6090, '\P{Is_InSC=_-REGISTER_shifter}', "");
-    Expect(1, 6090, '\P{^Is_InSC=_-REGISTER_shifter}', "");
-    Expect(0, 6091, '\p{Is_InSC=_-REGISTER_shifter}', "");
-    Expect(1, 6091, '\p{^Is_InSC=_-REGISTER_shifter}', "");
-    Expect(1, 6091, '\P{Is_InSC=_-REGISTER_shifter}', "");
-    Expect(0, 6091, '\P{^Is_InSC=_-REGISTER_shifter}', "");
-    Error('\p{Indic_Syllabic_Category=	:=Syllable_Modifier}');
-    Error('\P{Indic_Syllabic_Category=	:=Syllable_Modifier}');
+    Expect(1, 6090, '\p{Is_InSC:    Register_Shifter}', "");
+    Expect(0, 6090, '\p{^Is_InSC:    Register_Shifter}', "");
+    Expect(0, 6090, '\P{Is_InSC:    Register_Shifter}', "");
+    Expect(1, 6090, '\P{^Is_InSC:    Register_Shifter}', "");
+    Expect(0, 6091, '\p{Is_InSC:    Register_Shifter}', "");
+    Expect(1, 6091, '\p{^Is_InSC:    Register_Shifter}', "");
+    Expect(1, 6091, '\P{Is_InSC:    Register_Shifter}', "");
+    Expect(0, 6091, '\P{^Is_InSC:    Register_Shifter}', "");
+    Error('\p{Indic_Syllabic_Category=/a/--syllable_MODIFIER}');
+    Error('\P{Indic_Syllabic_Category=/a/--syllable_MODIFIER}');
     Expect(1, 72243, '\p{Indic_Syllabic_Category=:\ASyllable_Modifier\z:}', "");;
     Expect(0, 72244, '\p{Indic_Syllabic_Category=:\ASyllable_Modifier\z:}', "");;
     Expect(1, 72243, '\p{Indic_Syllabic_Category=syllablemodifier}', "");
@@ -52243,38 +52865,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72244, '\P{^Indic_Syllabic_Category=syllablemodifier}', "");
     Expect(1, 72243, '\p{Indic_Syllabic_Category=:\Asyllablemodifier\z:}', "");;
     Expect(0, 72244, '\p{Indic_Syllabic_Category=:\Asyllablemodifier\z:}', "");;
-    Expect(1, 72243, '\p{Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(0, 72243, '\p{^Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(0, 72243, '\P{Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(1, 72243, '\P{^Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(0, 72244, '\p{Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(1, 72244, '\p{^Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(1, 72244, '\P{Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Expect(0, 72244, '\P{^Indic_Syllabic_Category=	Syllable_MODIFIER}', "");
-    Error('\p{InSC=/a/		Syllable_MODIFIER}');
-    Error('\P{InSC=/a/		Syllable_MODIFIER}');
+    Expect(1, 72243, '\p{Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(0, 72243, '\p{^Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(0, 72243, '\P{Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(1, 72243, '\P{^Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(0, 72244, '\p{Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(1, 72244, '\p{^Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(1, 72244, '\P{Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Expect(0, 72244, '\P{^Indic_Syllabic_Category=		Syllable_Modifier}', "");
+    Error('\p{InSC=/a/ Syllable_MODIFIER}');
+    Error('\P{InSC=/a/ Syllable_MODIFIER}');
     Expect(1, 72243, '\p{InSC=:\ASyllable_Modifier\z:}', "");;
     Expect(0, 72244, '\p{InSC=:\ASyllable_Modifier\z:}', "");;
-    Expect(1, 72243, '\p{InSC:	syllablemodifier}', "");
-    Expect(0, 72243, '\p{^InSC:	syllablemodifier}', "");
-    Expect(0, 72243, '\P{InSC:	syllablemodifier}', "");
-    Expect(1, 72243, '\P{^InSC:	syllablemodifier}', "");
-    Expect(0, 72244, '\p{InSC:	syllablemodifier}', "");
-    Expect(1, 72244, '\p{^InSC:	syllablemodifier}', "");
-    Expect(1, 72244, '\P{InSC:	syllablemodifier}', "");
-    Expect(0, 72244, '\P{^InSC:	syllablemodifier}', "");
+    Expect(1, 72243, '\p{InSC=syllablemodifier}', "");
+    Expect(0, 72243, '\p{^InSC=syllablemodifier}', "");
+    Expect(0, 72243, '\P{InSC=syllablemodifier}', "");
+    Expect(1, 72243, '\P{^InSC=syllablemodifier}', "");
+    Expect(0, 72244, '\p{InSC=syllablemodifier}', "");
+    Expect(1, 72244, '\p{^InSC=syllablemodifier}', "");
+    Expect(1, 72244, '\P{InSC=syllablemodifier}', "");
+    Expect(0, 72244, '\P{^InSC=syllablemodifier}', "");
     Expect(1, 72243, '\p{InSC=:\Asyllablemodifier\z:}', "");;
     Expect(0, 72244, '\p{InSC=:\Asyllablemodifier\z:}', "");;
-    Expect(1, 72243, '\p{InSC=	Syllable_Modifier}', "");
-    Expect(0, 72243, '\p{^InSC=	Syllable_Modifier}', "");
-    Expect(0, 72243, '\P{InSC=	Syllable_Modifier}', "");
-    Expect(1, 72243, '\P{^InSC=	Syllable_Modifier}', "");
-    Expect(0, 72244, '\p{InSC=	Syllable_Modifier}', "");
-    Expect(1, 72244, '\p{^InSC=	Syllable_Modifier}', "");
-    Expect(1, 72244, '\P{InSC=	Syllable_Modifier}', "");
-    Expect(0, 72244, '\P{^InSC=	Syllable_Modifier}', "");
-    Error('\p{Is_Indic_Syllabic_Category=:=-	syllable_Modifier}');
-    Error('\P{Is_Indic_Syllabic_Category=:=-	syllable_Modifier}');
+    Expect(1, 72243, '\p{InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(0, 72243, '\p{^InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(0, 72243, '\P{InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(1, 72243, '\P{^InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(0, 72244, '\p{InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(1, 72244, '\p{^InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(1, 72244, '\P{InSC=  SYLLABLE_MODIFIER}', "");
+    Expect(0, 72244, '\P{^InSC=  SYLLABLE_MODIFIER}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_:=SYLLABLE_modifier}');
+    Error('\P{Is_Indic_Syllabic_Category=_:=SYLLABLE_modifier}');
     Expect(1, 72243, '\p{Is_Indic_Syllabic_Category=syllablemodifier}', "");
     Expect(0, 72243, '\p{^Is_Indic_Syllabic_Category=syllablemodifier}', "");
     Expect(0, 72243, '\P{Is_Indic_Syllabic_Category=syllablemodifier}', "");
@@ -52283,16 +52905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72244, '\p{^Is_Indic_Syllabic_Category=syllablemodifier}', "");
     Expect(1, 72244, '\P{Is_Indic_Syllabic_Category=syllablemodifier}', "");
     Expect(0, 72244, '\P{^Is_Indic_Syllabic_Category=syllablemodifier}', "");
-    Expect(1, 72243, '\p{Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(0, 72243, '\p{^Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(0, 72243, '\P{Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(1, 72243, '\P{^Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(0, 72244, '\p{Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(1, 72244, '\p{^Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(1, 72244, '\P{Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Expect(0, 72244, '\P{^Is_Indic_Syllabic_Category= -syllable_MODIFIER}', "");
-    Error('\p{Is_InSC=_-Syllable_Modifier/a/}');
-    Error('\P{Is_InSC=_-Syllable_Modifier/a/}');
+    Expect(1, 72243, '\p{Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(0, 72243, '\p{^Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(0, 72243, '\P{Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(1, 72243, '\P{^Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(0, 72244, '\p{Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(1, 72244, '\p{^Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(1, 72244, '\P{Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Expect(0, 72244, '\P{^Is_Indic_Syllabic_Category= Syllable_modifier}', "");
+    Error('\p{Is_InSC:	__syllable_Modifier/a/}');
+    Error('\P{Is_InSC:	__syllable_Modifier/a/}');
     Expect(1, 72243, '\p{Is_InSC=syllablemodifier}', "");
     Expect(0, 72243, '\p{^Is_InSC=syllablemodifier}', "");
     Expect(0, 72243, '\P{Is_InSC=syllablemodifier}', "");
@@ -52301,16 +52923,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72244, '\p{^Is_InSC=syllablemodifier}', "");
     Expect(1, 72244, '\P{Is_InSC=syllablemodifier}', "");
     Expect(0, 72244, '\P{^Is_InSC=syllablemodifier}', "");
-    Expect(1, 72243, '\p{Is_InSC=-_syllable_modifier}', "");
-    Expect(0, 72243, '\p{^Is_InSC=-_syllable_modifier}', "");
-    Expect(0, 72243, '\P{Is_InSC=-_syllable_modifier}', "");
-    Expect(1, 72243, '\P{^Is_InSC=-_syllable_modifier}', "");
-    Expect(0, 72244, '\p{Is_InSC=-_syllable_modifier}', "");
-    Expect(1, 72244, '\p{^Is_InSC=-_syllable_modifier}', "");
-    Expect(1, 72244, '\P{Is_InSC=-_syllable_modifier}', "");
-    Expect(0, 72244, '\P{^Is_InSC=-_syllable_modifier}', "");
-    Error('\p{Indic_Syllabic_Category= _TONE_Letter:=}');
-    Error('\P{Indic_Syllabic_Category= _TONE_Letter:=}');
+    Expect(1, 72243, '\p{Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(0, 72243, '\p{^Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(0, 72243, '\P{Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(1, 72243, '\P{^Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(0, 72244, '\p{Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(1, 72244, '\p{^Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(1, 72244, '\P{Is_InSC=-	SYLLABLE_Modifier}', "");
+    Expect(0, 72244, '\P{^Is_InSC=-	SYLLABLE_Modifier}', "");
+    Error('\p{Indic_Syllabic_Category= TONE_Letter/a/}');
+    Error('\P{Indic_Syllabic_Category= TONE_Letter/a/}');
     Expect(1, 43714, '\p{Indic_Syllabic_Category=:\ATone_Letter\z:}', "");;
     Expect(0, 43715, '\p{Indic_Syllabic_Category=:\ATone_Letter\z:}', "");;
     Expect(1, 43714, '\p{Indic_Syllabic_Category=toneletter}', "");
@@ -52323,16 +52945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43715, '\P{^Indic_Syllabic_Category=toneletter}', "");
     Expect(1, 43714, '\p{Indic_Syllabic_Category=:\Atoneletter\z:}', "");;
     Expect(0, 43715, '\p{Indic_Syllabic_Category=:\Atoneletter\z:}', "");;
-    Expect(1, 43714, '\p{Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(0, 43714, '\p{^Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(0, 43714, '\P{Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(1, 43714, '\P{^Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(0, 43715, '\p{Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(1, 43715, '\p{^Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(1, 43715, '\P{Indic_Syllabic_Category=_ tone_Letter}', "");
-    Expect(0, 43715, '\P{^Indic_Syllabic_Category=_ tone_Letter}', "");
-    Error('\p{InSC=Tone_letter/a/}');
-    Error('\P{InSC=Tone_letter/a/}');
+    Expect(1, 43714, '\p{Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(0, 43714, '\p{^Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(0, 43714, '\P{Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(1, 43714, '\P{^Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(0, 43715, '\p{Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(1, 43715, '\p{^Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(1, 43715, '\P{Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Expect(0, 43715, '\P{^Indic_Syllabic_Category=- Tone_LETTER}', "");
+    Error('\p{InSC:/a/ tone_LETTER}');
+    Error('\P{InSC:/a/ tone_LETTER}');
     Expect(1, 43714, '\p{InSC=:\ATone_Letter\z:}', "");;
     Expect(0, 43715, '\p{InSC=:\ATone_Letter\z:}', "");;
     Expect(1, 43714, '\p{InSC=toneletter}', "");
@@ -52345,52 +52967,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43715, '\P{^InSC=toneletter}', "");
     Expect(1, 43714, '\p{InSC=:\Atoneletter\z:}', "");;
     Expect(0, 43715, '\p{InSC=:\Atoneletter\z:}', "");;
-    Expect(1, 43714, '\p{InSC=_	Tone_LETTER}', "");
-    Expect(0, 43714, '\p{^InSC=_	Tone_LETTER}', "");
-    Expect(0, 43714, '\P{InSC=_	Tone_LETTER}', "");
-    Expect(1, 43714, '\P{^InSC=_	Tone_LETTER}', "");
-    Expect(0, 43715, '\p{InSC=_	Tone_LETTER}', "");
-    Expect(1, 43715, '\p{^InSC=_	Tone_LETTER}', "");
-    Expect(1, 43715, '\P{InSC=_	Tone_LETTER}', "");
-    Expect(0, 43715, '\P{^InSC=_	Tone_LETTER}', "");
-    Error('\p{Is_Indic_Syllabic_Category=TONE_LETTER/a/}');
-    Error('\P{Is_Indic_Syllabic_Category=TONE_LETTER/a/}');
-    Expect(1, 43714, '\p{Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(0, 43714, '\p{^Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(0, 43714, '\P{Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(1, 43714, '\P{^Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(0, 43715, '\p{Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(1, 43715, '\p{^Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(1, 43715, '\P{Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(0, 43715, '\P{^Is_Indic_Syllabic_Category=toneletter}', "");
-    Expect(1, 43714, '\p{Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(0, 43714, '\p{^Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(0, 43714, '\P{Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(1, 43714, '\P{^Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(0, 43715, '\p{Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(1, 43715, '\p{^Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(1, 43715, '\P{Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Expect(0, 43715, '\P{^Is_Indic_Syllabic_Category= 	Tone_Letter}', "");
-    Error('\p{Is_InSC=:=TONE_Letter}');
-    Error('\P{Is_InSC=:=TONE_Letter}');
-    Expect(1, 43714, '\p{Is_InSC:	toneletter}', "");
-    Expect(0, 43714, '\p{^Is_InSC:	toneletter}', "");
-    Expect(0, 43714, '\P{Is_InSC:	toneletter}', "");
-    Expect(1, 43714, '\P{^Is_InSC:	toneletter}', "");
-    Expect(0, 43715, '\p{Is_InSC:	toneletter}', "");
-    Expect(1, 43715, '\p{^Is_InSC:	toneletter}', "");
-    Expect(1, 43715, '\P{Is_InSC:	toneletter}', "");
-    Expect(0, 43715, '\P{^Is_InSC:	toneletter}', "");
-    Expect(1, 43714, '\p{Is_InSC=	_Tone_Letter}', "");
-    Expect(0, 43714, '\p{^Is_InSC=	_Tone_Letter}', "");
-    Expect(0, 43714, '\P{Is_InSC=	_Tone_Letter}', "");
-    Expect(1, 43714, '\P{^Is_InSC=	_Tone_Letter}', "");
-    Expect(0, 43715, '\p{Is_InSC=	_Tone_Letter}', "");
-    Expect(1, 43715, '\p{^Is_InSC=	_Tone_Letter}', "");
-    Expect(1, 43715, '\P{Is_InSC=	_Tone_Letter}', "");
-    Expect(0, 43715, '\P{^Is_InSC=	_Tone_Letter}', "");
-    Error('\p{Indic_Syllabic_Category=__Tone_MARK:=}');
-    Error('\P{Indic_Syllabic_Category=__Tone_MARK:=}');
+    Expect(1, 43714, '\p{InSC=	 Tone_letter}', "");
+    Expect(0, 43714, '\p{^InSC=	 Tone_letter}', "");
+    Expect(0, 43714, '\P{InSC=	 Tone_letter}', "");
+    Expect(1, 43714, '\P{^InSC=	 Tone_letter}', "");
+    Expect(0, 43715, '\p{InSC=	 Tone_letter}', "");
+    Expect(1, 43715, '\p{^InSC=	 Tone_letter}', "");
+    Expect(1, 43715, '\P{InSC=	 Tone_letter}', "");
+    Expect(0, 43715, '\P{^InSC=	 Tone_letter}', "");
+    Error('\p{Is_Indic_Syllabic_Category=/a/Tone_Letter}');
+    Error('\P{Is_Indic_Syllabic_Category=/a/Tone_Letter}');
+    Expect(1, 43714, '\p{Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(0, 43714, '\p{^Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(0, 43714, '\P{Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(1, 43714, '\P{^Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(0, 43715, '\p{Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(1, 43715, '\p{^Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(1, 43715, '\P{Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(0, 43715, '\P{^Is_Indic_Syllabic_Category:toneletter}', "");
+    Expect(1, 43714, '\p{Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(0, 43714, '\p{^Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(0, 43714, '\P{Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(1, 43714, '\P{^Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(0, 43715, '\p{Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(1, 43715, '\p{^Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(1, 43715, '\P{Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Expect(0, 43715, '\P{^Is_Indic_Syllabic_Category=	 tone_letter}', "");
+    Error('\p{Is_InSC=__Tone_letter:=}');
+    Error('\P{Is_InSC=__Tone_letter:=}');
+    Expect(1, 43714, '\p{Is_InSC:   toneletter}', "");
+    Expect(0, 43714, '\p{^Is_InSC:   toneletter}', "");
+    Expect(0, 43714, '\P{Is_InSC:   toneletter}', "");
+    Expect(1, 43714, '\P{^Is_InSC:   toneletter}', "");
+    Expect(0, 43715, '\p{Is_InSC:   toneletter}', "");
+    Expect(1, 43715, '\p{^Is_InSC:   toneletter}', "");
+    Expect(1, 43715, '\P{Is_InSC:   toneletter}', "");
+    Expect(0, 43715, '\P{^Is_InSC:   toneletter}', "");
+    Expect(1, 43714, '\p{Is_InSC= -tone_Letter}', "");
+    Expect(0, 43714, '\p{^Is_InSC= -tone_Letter}', "");
+    Expect(0, 43714, '\P{Is_InSC= -tone_Letter}', "");
+    Expect(1, 43714, '\P{^Is_InSC= -tone_Letter}', "");
+    Expect(0, 43715, '\p{Is_InSC= -tone_Letter}', "");
+    Expect(1, 43715, '\p{^Is_InSC= -tone_Letter}', "");
+    Expect(1, 43715, '\P{Is_InSC= -tone_Letter}', "");
+    Expect(0, 43715, '\P{^Is_InSC= -tone_Letter}', "");
+    Error('\p{Indic_Syllabic_Category=_:=tone_Mark}');
+    Error('\P{Indic_Syllabic_Category=_:=tone_Mark}');
     Expect(1, 44012, '\p{Indic_Syllabic_Category=:\ATone_Mark\z:}', "");;
     Expect(0, 44013, '\p{Indic_Syllabic_Category=:\ATone_Mark\z:}', "");;
     Expect(1, 44012, '\p{Indic_Syllabic_Category=tonemark}', "");
@@ -52403,16 +53025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 44013, '\P{^Indic_Syllabic_Category=tonemark}', "");
     Expect(1, 44012, '\p{Indic_Syllabic_Category=:\Atonemark\z:}', "");;
     Expect(0, 44013, '\p{Indic_Syllabic_Category=:\Atonemark\z:}', "");;
-    Expect(1, 44012, '\p{Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(0, 44012, '\p{^Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(0, 44012, '\P{Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(1, 44012, '\P{^Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(0, 44013, '\p{Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(1, 44013, '\p{^Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(1, 44013, '\P{Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Expect(0, 44013, '\P{^Indic_Syllabic_Category:	_ TONE_Mark}', "");
-    Error('\p{InSC=-:=Tone_mark}');
-    Error('\P{InSC=-:=Tone_mark}');
+    Expect(1, 44012, '\p{Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(0, 44012, '\p{^Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(0, 44012, '\P{Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(1, 44012, '\P{^Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(0, 44013, '\p{Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(1, 44013, '\p{^Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(1, 44013, '\P{Indic_Syllabic_Category=	-tone_Mark}', "");
+    Expect(0, 44013, '\P{^Indic_Syllabic_Category=	-tone_Mark}', "");
+    Error('\p{InSC=:=	-Tone_Mark}');
+    Error('\P{InSC=:=	-Tone_Mark}');
     Expect(1, 44012, '\p{InSC=:\ATone_Mark\z:}', "");;
     Expect(0, 44013, '\p{InSC=:\ATone_Mark\z:}', "");;
     Expect(1, 44012, '\p{InSC=tonemark}', "");
@@ -52425,16 +53047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 44013, '\P{^InSC=tonemark}', "");
     Expect(1, 44012, '\p{InSC=:\Atonemark\z:}', "");;
     Expect(0, 44013, '\p{InSC=:\Atonemark\z:}', "");;
-    Expect(1, 44012, '\p{InSC: _Tone_MARK}', "");
-    Expect(0, 44012, '\p{^InSC: _Tone_MARK}', "");
-    Expect(0, 44012, '\P{InSC: _Tone_MARK}', "");
-    Expect(1, 44012, '\P{^InSC: _Tone_MARK}', "");
-    Expect(0, 44013, '\p{InSC: _Tone_MARK}', "");
-    Expect(1, 44013, '\p{^InSC: _Tone_MARK}', "");
-    Expect(1, 44013, '\P{InSC: _Tone_MARK}', "");
-    Expect(0, 44013, '\P{^InSC: _Tone_MARK}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	Tone_Mark:=}');
-    Error('\P{Is_Indic_Syllabic_Category=	Tone_Mark:=}');
+    Expect(1, 44012, '\p{InSC= 	TONE_Mark}', "");
+    Expect(0, 44012, '\p{^InSC= 	TONE_Mark}', "");
+    Expect(0, 44012, '\P{InSC= 	TONE_Mark}', "");
+    Expect(1, 44012, '\P{^InSC= 	TONE_Mark}', "");
+    Expect(0, 44013, '\p{InSC= 	TONE_Mark}', "");
+    Expect(1, 44013, '\p{^InSC= 	TONE_Mark}', "");
+    Expect(1, 44013, '\P{InSC= 	TONE_Mark}', "");
+    Expect(0, 44013, '\P{^InSC= 	TONE_Mark}', "");
+    Error('\p{Is_Indic_Syllabic_Category=_ tone_MARK:=}');
+    Error('\P{Is_Indic_Syllabic_Category=_ tone_MARK:=}');
     Expect(1, 44012, '\p{Is_Indic_Syllabic_Category=tonemark}', "");
     Expect(0, 44012, '\p{^Is_Indic_Syllabic_Category=tonemark}', "");
     Expect(0, 44012, '\P{Is_Indic_Syllabic_Category=tonemark}', "");
@@ -52443,16 +53065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 44013, '\p{^Is_Indic_Syllabic_Category=tonemark}', "");
     Expect(1, 44013, '\P{Is_Indic_Syllabic_Category=tonemark}', "");
     Expect(0, 44013, '\P{^Is_Indic_Syllabic_Category=tonemark}', "");
-    Expect(1, 44012, '\p{Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(0, 44012, '\p{^Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(0, 44012, '\P{Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(1, 44012, '\P{^Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(0, 44013, '\p{Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(1, 44013, '\p{^Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(1, 44013, '\P{Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Expect(0, 44013, '\P{^Is_Indic_Syllabic_Category=	-TONE_MARK}', "");
-    Error('\p{Is_InSC= :=Tone_mark}');
-    Error('\P{Is_InSC= :=Tone_mark}');
+    Expect(1, 44012, '\p{Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(0, 44012, '\p{^Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(0, 44012, '\P{Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(1, 44012, '\P{^Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(0, 44013, '\p{Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(1, 44013, '\p{^Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(1, 44013, '\P{Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Expect(0, 44013, '\P{^Is_Indic_Syllabic_Category=-Tone_mark}', "");
+    Error('\p{Is_InSC:   /a/	 Tone_Mark}');
+    Error('\P{Is_InSC:   /a/	 Tone_Mark}');
     Expect(1, 44012, '\p{Is_InSC=tonemark}', "");
     Expect(0, 44012, '\p{^Is_InSC=tonemark}', "");
     Expect(0, 44012, '\P{Is_InSC=tonemark}', "");
@@ -52461,60 +53083,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 44013, '\p{^Is_InSC=tonemark}', "");
     Expect(1, 44013, '\P{Is_InSC=tonemark}', "");
     Expect(0, 44013, '\P{^Is_InSC=tonemark}', "");
-    Expect(1, 44012, '\p{Is_InSC=	TONE_Mark}', "");
-    Expect(0, 44012, '\p{^Is_InSC=	TONE_Mark}', "");
-    Expect(0, 44012, '\P{Is_InSC=	TONE_Mark}', "");
-    Expect(1, 44012, '\P{^Is_InSC=	TONE_Mark}', "");
-    Expect(0, 44013, '\p{Is_InSC=	TONE_Mark}', "");
-    Expect(1, 44013, '\p{^Is_InSC=	TONE_Mark}', "");
-    Expect(1, 44013, '\P{Is_InSC=	TONE_Mark}', "");
-    Expect(0, 44013, '\P{^Is_InSC=	TONE_Mark}', "");
-    Error('\p{Indic_Syllabic_Category=_/a/virama}');
-    Error('\P{Indic_Syllabic_Category=_/a/virama}');
+    Expect(1, 44012, '\p{Is_InSC:   _Tone_Mark}', "");
+    Expect(0, 44012, '\p{^Is_InSC:   _Tone_Mark}', "");
+    Expect(0, 44012, '\P{Is_InSC:   _Tone_Mark}', "");
+    Expect(1, 44012, '\P{^Is_InSC:   _Tone_Mark}', "");
+    Expect(0, 44013, '\p{Is_InSC:   _Tone_Mark}', "");
+    Expect(1, 44013, '\p{^Is_InSC:   _Tone_Mark}', "");
+    Expect(1, 44013, '\P{Is_InSC:   _Tone_Mark}', "");
+    Expect(0, 44013, '\P{^Is_InSC:   _Tone_Mark}', "");
+    Error('\p{Indic_Syllabic_Category=/a/--Virama}');
+    Error('\P{Indic_Syllabic_Category=/a/--Virama}');
     Expect(1, 72767, '\p{Indic_Syllabic_Category=:\AVirama\z:}', "");;
     Expect(0, 72768, '\p{Indic_Syllabic_Category=:\AVirama\z:}', "");;
-    Expect(1, 72767, '\p{Indic_Syllabic_Category:	virama}', "");
-    Expect(0, 72767, '\p{^Indic_Syllabic_Category:	virama}', "");
-    Expect(0, 72767, '\P{Indic_Syllabic_Category:	virama}', "");
-    Expect(1, 72767, '\P{^Indic_Syllabic_Category:	virama}', "");
-    Expect(0, 72768, '\p{Indic_Syllabic_Category:	virama}', "");
-    Expect(1, 72768, '\p{^Indic_Syllabic_Category:	virama}', "");
-    Expect(1, 72768, '\P{Indic_Syllabic_Category:	virama}', "");
-    Expect(0, 72768, '\P{^Indic_Syllabic_Category:	virama}', "");
+    Expect(1, 72767, '\p{Indic_Syllabic_Category=virama}', "");
+    Expect(0, 72767, '\p{^Indic_Syllabic_Category=virama}', "");
+    Expect(0, 72767, '\P{Indic_Syllabic_Category=virama}', "");
+    Expect(1, 72767, '\P{^Indic_Syllabic_Category=virama}', "");
+    Expect(0, 72768, '\p{Indic_Syllabic_Category=virama}', "");
+    Expect(1, 72768, '\p{^Indic_Syllabic_Category=virama}', "");
+    Expect(1, 72768, '\P{Indic_Syllabic_Category=virama}', "");
+    Expect(0, 72768, '\P{^Indic_Syllabic_Category=virama}', "");
     Expect(1, 72767, '\p{Indic_Syllabic_Category=:\Avirama\z:}', "");;
     Expect(0, 72768, '\p{Indic_Syllabic_Category=:\Avirama\z:}', "");;
-    Expect(1, 72767, '\p{Indic_Syllabic_Category=	-Virama}', "");
-    Expect(0, 72767, '\p{^Indic_Syllabic_Category=	-Virama}', "");
-    Expect(0, 72767, '\P{Indic_Syllabic_Category=	-Virama}', "");
-    Expect(1, 72767, '\P{^Indic_Syllabic_Category=	-Virama}', "");
-    Expect(0, 72768, '\p{Indic_Syllabic_Category=	-Virama}', "");
-    Expect(1, 72768, '\p{^Indic_Syllabic_Category=	-Virama}', "");
-    Expect(1, 72768, '\P{Indic_Syllabic_Category=	-Virama}', "");
-    Expect(0, 72768, '\P{^Indic_Syllabic_Category=	-Virama}', "");
-    Error('\p{InSC=/a/  virama}');
-    Error('\P{InSC=/a/  virama}');
+    Expect(1, 72767, '\p{Indic_Syllabic_Category=- Virama}', "");
+    Expect(0, 72767, '\p{^Indic_Syllabic_Category=- Virama}', "");
+    Expect(0, 72767, '\P{Indic_Syllabic_Category=- Virama}', "");
+    Expect(1, 72767, '\P{^Indic_Syllabic_Category=- Virama}', "");
+    Expect(0, 72768, '\p{Indic_Syllabic_Category=- Virama}', "");
+    Expect(1, 72768, '\p{^Indic_Syllabic_Category=- Virama}', "");
+    Expect(1, 72768, '\P{Indic_Syllabic_Category=- Virama}', "");
+    Expect(0, 72768, '\P{^Indic_Syllabic_Category=- Virama}', "");
+    Error('\p{InSC:_:=Virama}');
+    Error('\P{InSC:_:=Virama}');
     Expect(1, 72767, '\p{InSC=:\AVirama\z:}', "");;
     Expect(0, 72768, '\p{InSC=:\AVirama\z:}', "");;
-    Expect(1, 72767, '\p{InSC=virama}', "");
-    Expect(0, 72767, '\p{^InSC=virama}', "");
-    Expect(0, 72767, '\P{InSC=virama}', "");
-    Expect(1, 72767, '\P{^InSC=virama}', "");
-    Expect(0, 72768, '\p{InSC=virama}', "");
-    Expect(1, 72768, '\p{^InSC=virama}', "");
-    Expect(1, 72768, '\P{InSC=virama}', "");
-    Expect(0, 72768, '\P{^InSC=virama}', "");
+    Expect(1, 72767, '\p{InSC:   virama}', "");
+    Expect(0, 72767, '\p{^InSC:   virama}', "");
+    Expect(0, 72767, '\P{InSC:   virama}', "");
+    Expect(1, 72767, '\P{^InSC:   virama}', "");
+    Expect(0, 72768, '\p{InSC:   virama}', "");
+    Expect(1, 72768, '\p{^InSC:   virama}', "");
+    Expect(1, 72768, '\P{InSC:   virama}', "");
+    Expect(0, 72768, '\P{^InSC:   virama}', "");
     Expect(1, 72767, '\p{InSC=:\Avirama\z:}', "");;
     Expect(0, 72768, '\p{InSC=:\Avirama\z:}', "");;
-    Expect(1, 72767, '\p{InSC:_ Virama}', "");
-    Expect(0, 72767, '\p{^InSC:_ Virama}', "");
-    Expect(0, 72767, '\P{InSC:_ Virama}', "");
-    Expect(1, 72767, '\P{^InSC:_ Virama}', "");
-    Expect(0, 72768, '\p{InSC:_ Virama}', "");
-    Expect(1, 72768, '\p{^InSC:_ Virama}', "");
-    Expect(1, 72768, '\P{InSC:_ Virama}', "");
-    Expect(0, 72768, '\P{^InSC:_ Virama}', "");
-    Error('\p{Is_Indic_Syllabic_Category=-VIRAMA:=}');
-    Error('\P{Is_Indic_Syllabic_Category=-VIRAMA:=}');
+    Expect(1, 72767, '\p{InSC= -virama}', "");
+    Expect(0, 72767, '\p{^InSC= -virama}', "");
+    Expect(0, 72767, '\P{InSC= -virama}', "");
+    Expect(1, 72767, '\P{^InSC= -virama}', "");
+    Expect(0, 72768, '\p{InSC= -virama}', "");
+    Expect(1, 72768, '\p{^InSC= -virama}', "");
+    Expect(1, 72768, '\P{InSC= -virama}', "");
+    Expect(0, 72768, '\P{^InSC= -virama}', "");
+    Error('\p{Is_Indic_Syllabic_Category:	:=_	Virama}');
+    Error('\P{Is_Indic_Syllabic_Category:	:=_	Virama}');
     Expect(1, 72767, '\p{Is_Indic_Syllabic_Category=virama}', "");
     Expect(0, 72767, '\p{^Is_Indic_Syllabic_Category=virama}', "");
     Expect(0, 72767, '\P{Is_Indic_Syllabic_Category=virama}', "");
@@ -52523,16 +53145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72768, '\p{^Is_Indic_Syllabic_Category=virama}', "");
     Expect(1, 72768, '\P{Is_Indic_Syllabic_Category=virama}', "");
     Expect(0, 72768, '\P{^Is_Indic_Syllabic_Category=virama}', "");
-    Expect(1, 72767, '\p{Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(0, 72767, '\p{^Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(0, 72767, '\P{Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(1, 72767, '\P{^Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(0, 72768, '\p{Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(1, 72768, '\p{^Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(1, 72768, '\P{Is_Indic_Syllabic_Category=-virama}', "");
-    Expect(0, 72768, '\P{^Is_Indic_Syllabic_Category=-virama}', "");
-    Error('\p{Is_InSC=-:=Virama}');
-    Error('\P{Is_InSC=-:=Virama}');
+    Expect(1, 72767, '\p{Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(0, 72767, '\p{^Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(0, 72767, '\P{Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(1, 72767, '\P{^Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(0, 72768, '\p{Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(1, 72768, '\p{^Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(1, 72768, '\P{Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Expect(0, 72768, '\P{^Is_Indic_Syllabic_Category=_-VIRAMA}', "");
+    Error('\p{Is_InSC=-Virama:=}');
+    Error('\P{Is_InSC=-Virama:=}');
     Expect(1, 72767, '\p{Is_InSC=virama}', "");
     Expect(0, 72767, '\p{^Is_InSC=virama}', "");
     Expect(0, 72767, '\P{Is_InSC=virama}', "");
@@ -52541,96 +53163,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72768, '\p{^Is_InSC=virama}', "");
     Expect(1, 72768, '\P{Is_InSC=virama}', "");
     Expect(0, 72768, '\P{^Is_InSC=virama}', "");
-    Expect(1, 72767, '\p{Is_InSC= Virama}', "");
-    Expect(0, 72767, '\p{^Is_InSC= Virama}', "");
-    Expect(0, 72767, '\P{Is_InSC= Virama}', "");
-    Expect(1, 72767, '\P{^Is_InSC= Virama}', "");
-    Expect(0, 72768, '\p{Is_InSC= Virama}', "");
-    Expect(1, 72768, '\p{^Is_InSC= Virama}', "");
-    Expect(1, 72768, '\P{Is_InSC= Virama}', "");
-    Expect(0, 72768, '\P{^Is_InSC= Virama}', "");
-    Error('\p{Indic_Syllabic_Category=/a/ -Visarga}');
-    Error('\P{Indic_Syllabic_Category=/a/ -Visarga}');
-    Expect(1, 73110, '\p{Indic_Syllabic_Category=:\AVisarga\z:}', "");;
-    Expect(0, 73111, '\p{Indic_Syllabic_Category=:\AVisarga\z:}', "");;
-    Expect(1, 73110, '\p{Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73110, '\p{^Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73110, '\P{Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73110, '\P{^Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73111, '\p{Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73111, '\p{^Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73111, '\P{Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73111, '\P{^Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73110, '\p{Indic_Syllabic_Category=:\Avisarga\z:}', "");;
-    Expect(0, 73111, '\p{Indic_Syllabic_Category=:\Avisarga\z:}', "");;
-    Expect(1, 73110, '\p{Indic_Syllabic_Category=- visarga}', "");
-    Expect(0, 73110, '\p{^Indic_Syllabic_Category=- visarga}', "");
-    Expect(0, 73110, '\P{Indic_Syllabic_Category=- visarga}', "");
-    Expect(1, 73110, '\P{^Indic_Syllabic_Category=- visarga}', "");
-    Expect(0, 73111, '\p{Indic_Syllabic_Category=- visarga}', "");
-    Expect(1, 73111, '\p{^Indic_Syllabic_Category=- visarga}', "");
-    Expect(1, 73111, '\P{Indic_Syllabic_Category=- visarga}', "");
-    Expect(0, 73111, '\P{^Indic_Syllabic_Category=- visarga}', "");
-    Error('\p{InSC=/a/	-Visarga}');
-    Error('\P{InSC=/a/	-Visarga}');
-    Expect(1, 73110, '\p{InSC=:\AVisarga\z:}', "");;
-    Expect(0, 73111, '\p{InSC=:\AVisarga\z:}', "");;
-    Expect(1, 73110, '\p{InSC=visarga}', "");
-    Expect(0, 73110, '\p{^InSC=visarga}', "");
-    Expect(0, 73110, '\P{InSC=visarga}', "");
-    Expect(1, 73110, '\P{^InSC=visarga}', "");
-    Expect(0, 73111, '\p{InSC=visarga}', "");
-    Expect(1, 73111, '\p{^InSC=visarga}', "");
-    Expect(1, 73111, '\P{InSC=visarga}', "");
-    Expect(0, 73111, '\P{^InSC=visarga}', "");
-    Expect(1, 73110, '\p{InSC=:\Avisarga\z:}', "");;
-    Expect(0, 73111, '\p{InSC=:\Avisarga\z:}', "");;
-    Expect(1, 73110, '\p{InSC=__Visarga}', "");
-    Expect(0, 73110, '\p{^InSC=__Visarga}', "");
-    Expect(0, 73110, '\P{InSC=__Visarga}', "");
-    Expect(1, 73110, '\P{^InSC=__Visarga}', "");
-    Expect(0, 73111, '\p{InSC=__Visarga}', "");
-    Expect(1, 73111, '\p{^InSC=__Visarga}', "");
-    Expect(1, 73111, '\P{InSC=__Visarga}', "");
-    Expect(0, 73111, '\P{^InSC=__Visarga}', "");
-    Error('\p{Is_Indic_Syllabic_Category=_	Visarga/a/}');
-    Error('\P{Is_Indic_Syllabic_Category=_	Visarga/a/}');
-    Expect(1, 73110, '\p{Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73110, '\p{^Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73110, '\P{Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73110, '\P{^Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73111, '\p{Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73111, '\p{^Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73111, '\P{Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(0, 73111, '\P{^Is_Indic_Syllabic_Category=visarga}', "");
-    Expect(1, 73110, '\p{Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(0, 73110, '\p{^Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(0, 73110, '\P{Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(1, 73110, '\P{^Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(0, 73111, '\p{Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(1, 73111, '\p{^Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(1, 73111, '\P{Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Expect(0, 73111, '\P{^Is_Indic_Syllabic_Category:   __VISARGA}', "");
-    Error('\p{Is_InSC=	Visarga:=}');
-    Error('\P{Is_InSC=	Visarga:=}');
-    Expect(1, 73110, '\p{Is_InSC=visarga}', "");
-    Expect(0, 73110, '\p{^Is_InSC=visarga}', "");
-    Expect(0, 73110, '\P{Is_InSC=visarga}', "");
-    Expect(1, 73110, '\P{^Is_InSC=visarga}', "");
-    Expect(0, 73111, '\p{Is_InSC=visarga}', "");
-    Expect(1, 73111, '\p{^Is_InSC=visarga}', "");
-    Expect(1, 73111, '\P{Is_InSC=visarga}', "");
-    Expect(0, 73111, '\P{^Is_InSC=visarga}', "");
-    Expect(1, 73110, '\p{Is_InSC= 	Visarga}', "");
-    Expect(0, 73110, '\p{^Is_InSC= 	Visarga}', "");
-    Expect(0, 73110, '\P{Is_InSC= 	Visarga}', "");
-    Expect(1, 73110, '\P{^Is_InSC= 	Visarga}', "");
-    Expect(0, 73111, '\p{Is_InSC= 	Visarga}', "");
-    Expect(1, 73111, '\p{^Is_InSC= 	Visarga}', "");
-    Expect(1, 73111, '\P{Is_InSC= 	Visarga}', "");
-    Expect(0, 73111, '\P{^Is_InSC= 	Visarga}', "");
-    Error('\p{Indic_Syllabic_Category=		Vowel:=}');
-    Error('\P{Indic_Syllabic_Category=		Vowel:=}');
+    Expect(1, 72767, '\p{Is_InSC=Virama}', "");
+    Expect(0, 72767, '\p{^Is_InSC=Virama}', "");
+    Expect(0, 72767, '\P{Is_InSC=Virama}', "");
+    Expect(1, 72767, '\P{^Is_InSC=Virama}', "");
+    Expect(0, 72768, '\p{Is_InSC=Virama}', "");
+    Expect(1, 72768, '\p{^Is_InSC=Virama}', "");
+    Expect(1, 72768, '\P{Is_InSC=Virama}', "");
+    Expect(0, 72768, '\P{^Is_InSC=Virama}', "");
+    Error('\p{Indic_Syllabic_Category:   _-VISARGA/a/}');
+    Error('\P{Indic_Syllabic_Category:   _-VISARGA/a/}');
+    Expect(1, 73475, '\p{Indic_Syllabic_Category=:\AVisarga\z:}', "");;
+    Expect(0, 73476, '\p{Indic_Syllabic_Category=:\AVisarga\z:}', "");;
+    Expect(1, 73475, '\p{Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73475, '\p{^Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73475, '\P{Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73475, '\P{^Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73476, '\p{Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73476, '\p{^Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73476, '\P{Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73476, '\P{^Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73475, '\p{Indic_Syllabic_Category=:\Avisarga\z:}', "");;
+    Expect(0, 73476, '\p{Indic_Syllabic_Category=:\Avisarga\z:}', "");;
+    Expect(1, 73475, '\p{Indic_Syllabic_Category=	Visarga}', "");
+    Expect(0, 73475, '\p{^Indic_Syllabic_Category=	Visarga}', "");
+    Expect(0, 73475, '\P{Indic_Syllabic_Category=	Visarga}', "");
+    Expect(1, 73475, '\P{^Indic_Syllabic_Category=	Visarga}', "");
+    Expect(0, 73476, '\p{Indic_Syllabic_Category=	Visarga}', "");
+    Expect(1, 73476, '\p{^Indic_Syllabic_Category=	Visarga}', "");
+    Expect(1, 73476, '\P{Indic_Syllabic_Category=	Visarga}', "");
+    Expect(0, 73476, '\P{^Indic_Syllabic_Category=	Visarga}', "");
+    Error('\p{InSC=_:=visarga}');
+    Error('\P{InSC=_:=visarga}');
+    Expect(1, 73475, '\p{InSC=:\AVisarga\z:}', "");;
+    Expect(0, 73476, '\p{InSC=:\AVisarga\z:}', "");;
+    Expect(1, 73475, '\p{InSC:visarga}', "");
+    Expect(0, 73475, '\p{^InSC:visarga}', "");
+    Expect(0, 73475, '\P{InSC:visarga}', "");
+    Expect(1, 73475, '\P{^InSC:visarga}', "");
+    Expect(0, 73476, '\p{InSC:visarga}', "");
+    Expect(1, 73476, '\p{^InSC:visarga}', "");
+    Expect(1, 73476, '\P{InSC:visarga}', "");
+    Expect(0, 73476, '\P{^InSC:visarga}', "");
+    Expect(1, 73475, '\p{InSC=:\Avisarga\z:}', "");;
+    Expect(0, 73476, '\p{InSC=:\Avisarga\z:}', "");;
+    Expect(1, 73475, '\p{InSC=_VISARGA}', "");
+    Expect(0, 73475, '\p{^InSC=_VISARGA}', "");
+    Expect(0, 73475, '\P{InSC=_VISARGA}', "");
+    Expect(1, 73475, '\P{^InSC=_VISARGA}', "");
+    Expect(0, 73476, '\p{InSC=_VISARGA}', "");
+    Expect(1, 73476, '\p{^InSC=_VISARGA}', "");
+    Expect(1, 73476, '\P{InSC=_VISARGA}', "");
+    Expect(0, 73476, '\P{^InSC=_VISARGA}', "");
+    Error('\p{Is_Indic_Syllabic_Category=	_VISARGA/a/}');
+    Error('\P{Is_Indic_Syllabic_Category=	_VISARGA/a/}');
+    Expect(1, 73475, '\p{Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73475, '\p{^Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73475, '\P{Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73475, '\P{^Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73476, '\p{Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73476, '\p{^Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73476, '\P{Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(0, 73476, '\P{^Is_Indic_Syllabic_Category=visarga}', "");
+    Expect(1, 73475, '\p{Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(0, 73475, '\p{^Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(0, 73475, '\P{Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(1, 73475, '\P{^Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(0, 73476, '\p{Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(1, 73476, '\p{^Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(1, 73476, '\P{Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Expect(0, 73476, '\P{^Is_Indic_Syllabic_Category: -VISARGA}', "");
+    Error('\p{Is_InSC:	:=_VISARGA}');
+    Error('\P{Is_InSC:	:=_VISARGA}');
+    Expect(1, 73475, '\p{Is_InSC: visarga}', "");
+    Expect(0, 73475, '\p{^Is_InSC: visarga}', "");
+    Expect(0, 73475, '\P{Is_InSC: visarga}', "");
+    Expect(1, 73475, '\P{^Is_InSC: visarga}', "");
+    Expect(0, 73476, '\p{Is_InSC: visarga}', "");
+    Expect(1, 73476, '\p{^Is_InSC: visarga}', "");
+    Expect(1, 73476, '\P{Is_InSC: visarga}', "");
+    Expect(0, 73476, '\P{^Is_InSC: visarga}', "");
+    Expect(1, 73475, '\p{Is_InSC=	visarga}', "");
+    Expect(0, 73475, '\p{^Is_InSC=	visarga}', "");
+    Expect(0, 73475, '\P{Is_InSC=	visarga}', "");
+    Expect(1, 73475, '\P{^Is_InSC=	visarga}', "");
+    Expect(0, 73476, '\p{Is_InSC=	visarga}', "");
+    Expect(1, 73476, '\p{^Is_InSC=	visarga}', "");
+    Expect(1, 73476, '\P{Is_InSC=	visarga}', "");
+    Expect(0, 73476, '\P{^Is_InSC=	visarga}', "");
+    Error('\p{Indic_Syllabic_Category:   _	Vowel/a/}');
+    Error('\P{Indic_Syllabic_Category:   _	Vowel/a/}');
     Expect(1, 69972, '\p{Indic_Syllabic_Category=:\AVowel\z:}', "");;
     Expect(0, 69973, '\p{Indic_Syllabic_Category=:\AVowel\z:}', "");;
     Expect(1, 69972, '\p{Indic_Syllabic_Category=vowel}', "");
@@ -52643,14 +53265,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69973, '\P{^Indic_Syllabic_Category=vowel}', "");
     Expect(1, 69972, '\p{Indic_Syllabic_Category=:\Avowel\z:}', "");;
     Expect(0, 69973, '\p{Indic_Syllabic_Category=:\Avowel\z:}', "");;
-    Expect(1, 69972, '\p{Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(0, 69972, '\p{^Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(0, 69972, '\P{Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(1, 69972, '\P{^Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(0, 69973, '\p{Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(1, 69973, '\p{^Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(1, 69973, '\P{Indic_Syllabic_Category=	_Vowel}', "");
-    Expect(0, 69973, '\P{^Indic_Syllabic_Category=	_Vowel}', "");
+    Expect(1, 69972, '\p{Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(0, 69972, '\p{^Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(0, 69972, '\P{Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(1, 69972, '\P{^Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(0, 69973, '\p{Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(1, 69973, '\p{^Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(1, 69973, '\P{Indic_Syllabic_Category=_-Vowel}', "");
+    Expect(0, 69973, '\P{^Indic_Syllabic_Category=_-Vowel}', "");
     Error('\p{InSC=-:=Vowel}');
     Error('\P{InSC=-:=Vowel}');
     Expect(1, 69972, '\p{InSC=:\AVowel\z:}', "");;
@@ -52665,16 +53287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69973, '\P{^InSC=vowel}', "");
     Expect(1, 69972, '\p{InSC=:\Avowel\z:}', "");;
     Expect(0, 69973, '\p{InSC=:\Avowel\z:}', "");;
-    Expect(1, 69972, '\p{InSC= Vowel}', "");
-    Expect(0, 69972, '\p{^InSC= Vowel}', "");
-    Expect(0, 69972, '\P{InSC= Vowel}', "");
-    Expect(1, 69972, '\P{^InSC= Vowel}', "");
-    Expect(0, 69973, '\p{InSC= Vowel}', "");
-    Expect(1, 69973, '\p{^InSC= Vowel}', "");
-    Expect(1, 69973, '\P{InSC= Vowel}', "");
-    Expect(0, 69973, '\P{^InSC= Vowel}', "");
-    Error('\p{Is_Indic_Syllabic_Category=- Vowel:=}');
-    Error('\P{Is_Indic_Syllabic_Category=- Vowel:=}');
+    Expect(1, 69972, '\p{InSC=-Vowel}', "");
+    Expect(0, 69972, '\p{^InSC=-Vowel}', "");
+    Expect(0, 69972, '\P{InSC=-Vowel}', "");
+    Expect(1, 69972, '\P{^InSC=-Vowel}', "");
+    Expect(0, 69973, '\p{InSC=-Vowel}', "");
+    Expect(1, 69973, '\p{^InSC=-Vowel}', "");
+    Expect(1, 69973, '\P{InSC=-Vowel}', "");
+    Expect(0, 69973, '\P{^InSC=-Vowel}', "");
+    Error('\p{Is_Indic_Syllabic_Category= VOWEL:=}');
+    Error('\P{Is_Indic_Syllabic_Category= VOWEL:=}');
     Expect(1, 69972, '\p{Is_Indic_Syllabic_Category=vowel}', "");
     Expect(0, 69972, '\p{^Is_Indic_Syllabic_Category=vowel}', "");
     Expect(0, 69972, '\P{Is_Indic_Syllabic_Category=vowel}', "");
@@ -52691,192 +53313,192 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69973, '\p{^Is_Indic_Syllabic_Category=_ Vowel}', "");
     Expect(1, 69973, '\P{Is_Indic_Syllabic_Category=_ Vowel}', "");
     Expect(0, 69973, '\P{^Is_Indic_Syllabic_Category=_ Vowel}', "");
-    Error('\p{Is_InSC=:=	_Vowel}');
-    Error('\P{Is_InSC=:=	_Vowel}');
-    Expect(1, 69972, '\p{Is_InSC=vowel}', "");
-    Expect(0, 69972, '\p{^Is_InSC=vowel}', "");
-    Expect(0, 69972, '\P{Is_InSC=vowel}', "");
-    Expect(1, 69972, '\P{^Is_InSC=vowel}', "");
-    Expect(0, 69973, '\p{Is_InSC=vowel}', "");
-    Expect(1, 69973, '\p{^Is_InSC=vowel}', "");
-    Expect(1, 69973, '\P{Is_InSC=vowel}', "");
-    Expect(0, 69973, '\P{^Is_InSC=vowel}', "");
-    Expect(1, 69972, '\p{Is_InSC=_VOWEL}', "");
-    Expect(0, 69972, '\p{^Is_InSC=_VOWEL}', "");
-    Expect(0, 69972, '\P{Is_InSC=_VOWEL}', "");
-    Expect(1, 69972, '\P{^Is_InSC=_VOWEL}', "");
-    Expect(0, 69973, '\p{Is_InSC=_VOWEL}', "");
-    Expect(1, 69973, '\p{^Is_InSC=_VOWEL}', "");
-    Expect(1, 69973, '\P{Is_InSC=_VOWEL}', "");
-    Expect(0, 69973, '\P{^Is_InSC=_VOWEL}', "");
-    Error('\p{Indic_Syllabic_Category=:=-_vowel_dependent}');
-    Error('\P{Indic_Syllabic_Category=:=-_vowel_dependent}');
-    Expect(1, 73462, '\p{Indic_Syllabic_Category=:\AVowel_Dependent\z:}', "");;
-    Expect(0, 73463, '\p{Indic_Syllabic_Category=:\AVowel_Dependent\z:}', "");;
-    Expect(1, 73462, '\p{Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(0, 73462, '\p{^Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(0, 73462, '\P{Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(1, 73462, '\P{^Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(0, 73463, '\p{Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(1, 73463, '\p{^Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(1, 73463, '\P{Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(0, 73463, '\P{^Indic_Syllabic_Category:	voweldependent}', "");
-    Expect(1, 73462, '\p{Indic_Syllabic_Category=:\Avoweldependent\z:}', "");;
-    Expect(0, 73463, '\p{Indic_Syllabic_Category=:\Avoweldependent\z:}', "");;
-    Expect(1, 73462, '\p{Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(0, 73462, '\p{^Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(0, 73462, '\P{Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(1, 73462, '\P{^Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(0, 73463, '\p{Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(1, 73463, '\p{^Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(1, 73463, '\P{Indic_Syllabic_Category=_vowel_dependent}', "");
-    Expect(0, 73463, '\P{^Indic_Syllabic_Category=_vowel_dependent}', "");
-    Error('\p{InSC:   _vowel_Dependent/a/}');
-    Error('\P{InSC:   _vowel_Dependent/a/}');
-    Expect(1, 73462, '\p{InSC=:\AVowel_Dependent\z:}', "");;
-    Expect(0, 73463, '\p{InSC=:\AVowel_Dependent\z:}', "");;
-    Expect(1, 73462, '\p{InSC:voweldependent}', "");
-    Expect(0, 73462, '\p{^InSC:voweldependent}', "");
-    Expect(0, 73462, '\P{InSC:voweldependent}', "");
-    Expect(1, 73462, '\P{^InSC:voweldependent}', "");
-    Expect(0, 73463, '\p{InSC:voweldependent}', "");
-    Expect(1, 73463, '\p{^InSC:voweldependent}', "");
-    Expect(1, 73463, '\P{InSC:voweldependent}', "");
-    Expect(0, 73463, '\P{^InSC:voweldependent}', "");
-    Expect(1, 73462, '\p{InSC=:\Avoweldependent\z:}', "");;
-    Expect(0, 73463, '\p{InSC=:\Avoweldependent\z:}', "");;
-    Expect(1, 73462, '\p{InSC=-_Vowel_Dependent}', "");
-    Expect(0, 73462, '\p{^InSC=-_Vowel_Dependent}', "");
-    Expect(0, 73462, '\P{InSC=-_Vowel_Dependent}', "");
-    Expect(1, 73462, '\P{^InSC=-_Vowel_Dependent}', "");
-    Expect(0, 73463, '\p{InSC=-_Vowel_Dependent}', "");
-    Expect(1, 73463, '\p{^InSC=-_Vowel_Dependent}', "");
-    Expect(1, 73463, '\P{InSC=-_Vowel_Dependent}', "");
-    Expect(0, 73463, '\P{^InSC=-_Vowel_Dependent}', "");
-    Error('\p{Is_Indic_Syllabic_Category= 	Vowel_DEPENDENT:=}');
-    Error('\P{Is_Indic_Syllabic_Category= 	Vowel_DEPENDENT:=}');
-    Expect(1, 73462, '\p{Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(0, 73462, '\p{^Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(0, 73462, '\P{Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(1, 73462, '\P{^Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(0, 73463, '\p{Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(1, 73463, '\p{^Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(1, 73463, '\P{Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(0, 73463, '\P{^Is_Indic_Syllabic_Category:voweldependent}', "");
-    Expect(1, 73462, '\p{Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(0, 73462, '\p{^Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(0, 73462, '\P{Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(1, 73462, '\P{^Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(0, 73463, '\p{Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(1, 73463, '\p{^Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(1, 73463, '\P{Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Expect(0, 73463, '\P{^Is_Indic_Syllabic_Category= _VOWEL_Dependent}', "");
-    Error('\p{Is_InSC=:= 	vowel_Dependent}');
-    Error('\P{Is_InSC=:= 	vowel_Dependent}');
-    Expect(1, 73462, '\p{Is_InSC=voweldependent}', "");
-    Expect(0, 73462, '\p{^Is_InSC=voweldependent}', "");
-    Expect(0, 73462, '\P{Is_InSC=voweldependent}', "");
-    Expect(1, 73462, '\P{^Is_InSC=voweldependent}', "");
-    Expect(0, 73463, '\p{Is_InSC=voweldependent}', "");
-    Expect(1, 73463, '\p{^Is_InSC=voweldependent}', "");
-    Expect(1, 73463, '\P{Is_InSC=voweldependent}', "");
-    Expect(0, 73463, '\P{^Is_InSC=voweldependent}', "");
-    Expect(1, 73462, '\p{Is_InSC=vowel_dependent}', "");
-    Expect(0, 73462, '\p{^Is_InSC=vowel_dependent}', "");
-    Expect(0, 73462, '\P{Is_InSC=vowel_dependent}', "");
-    Expect(1, 73462, '\P{^Is_InSC=vowel_dependent}', "");
-    Expect(0, 73463, '\p{Is_InSC=vowel_dependent}', "");
-    Expect(1, 73463, '\p{^Is_InSC=vowel_dependent}', "");
-    Expect(1, 73463, '\P{Is_InSC=vowel_dependent}', "");
-    Expect(0, 73463, '\P{^Is_InSC=vowel_dependent}', "");
-    Error('\p{Indic_Syllabic_Category=-:=VOWEL_Independent}');
-    Error('\P{Indic_Syllabic_Category=-:=VOWEL_Independent}');
-    Expect(1, 73067, '\p{Indic_Syllabic_Category=:\AVowel_Independent\z:}', "");;
-    Expect(0, 73068, '\p{Indic_Syllabic_Category=:\AVowel_Independent\z:}', "");;
-    Expect(1, 73067, '\p{Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73067, '\p{^Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73067, '\P{Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73067, '\P{^Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73068, '\p{Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73068, '\p{^Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73068, '\P{Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73068, '\P{^Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73067, '\p{Indic_Syllabic_Category=:\Avowelindependent\z:}', "");;
-    Expect(0, 73068, '\p{Indic_Syllabic_Category=:\Avowelindependent\z:}', "");;
-    Expect(1, 73067, '\p{Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(0, 73067, '\p{^Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(0, 73067, '\P{Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(1, 73067, '\P{^Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(0, 73068, '\p{Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(1, 73068, '\p{^Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(1, 73068, '\P{Indic_Syllabic_Category= vowel_Independent}', "");
-    Expect(0, 73068, '\P{^Indic_Syllabic_Category= vowel_Independent}', "");
-    Error('\p{InSC=:=-VOWEL_INDEPENDENT}');
-    Error('\P{InSC=:=-VOWEL_INDEPENDENT}');
-    Expect(1, 73067, '\p{InSC=:\AVowel_Independent\z:}', "");;
-    Expect(0, 73068, '\p{InSC=:\AVowel_Independent\z:}', "");;
-    Expect(1, 73067, '\p{InSC:   vowelindependent}', "");
-    Expect(0, 73067, '\p{^InSC:   vowelindependent}', "");
-    Expect(0, 73067, '\P{InSC:   vowelindependent}', "");
-    Expect(1, 73067, '\P{^InSC:   vowelindependent}', "");
-    Expect(0, 73068, '\p{InSC:   vowelindependent}', "");
-    Expect(1, 73068, '\p{^InSC:   vowelindependent}', "");
-    Expect(1, 73068, '\P{InSC:   vowelindependent}', "");
-    Expect(0, 73068, '\P{^InSC:   vowelindependent}', "");
-    Expect(1, 73067, '\p{InSC=:\Avowelindependent\z:}', "");;
-    Expect(0, 73068, '\p{InSC=:\Avowelindependent\z:}', "");;
-    Expect(1, 73067, '\p{InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(0, 73067, '\p{^InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(0, 73067, '\P{InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(1, 73067, '\P{^InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(0, 73068, '\p{InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(1, 73068, '\p{^InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(1, 73068, '\P{InSC= 	Vowel_INDEPENDENT}', "");
-    Expect(0, 73068, '\P{^InSC= 	Vowel_INDEPENDENT}', "");
-    Error('\p{Is_Indic_Syllabic_Category=	:=vowel_independent}');
-    Error('\P{Is_Indic_Syllabic_Category=	:=vowel_independent}');
-    Expect(1, 73067, '\p{Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73067, '\p{^Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73067, '\P{Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73067, '\P{^Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73068, '\p{Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73068, '\p{^Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73068, '\P{Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(0, 73068, '\P{^Is_Indic_Syllabic_Category=vowelindependent}', "");
-    Expect(1, 73067, '\p{Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(0, 73067, '\p{^Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(0, 73067, '\P{Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(1, 73067, '\P{^Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(0, 73068, '\p{Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(1, 73068, '\p{^Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(1, 73068, '\P{Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Expect(0, 73068, '\P{^Is_Indic_Syllabic_Category= _vowel_independent}', "");
-    Error('\p{Is_InSC:		-vowel_INDEPENDENT:=}');
-    Error('\P{Is_InSC:		-vowel_INDEPENDENT:=}');
-    Expect(1, 73067, '\p{Is_InSC=vowelindependent}', "");
-    Expect(0, 73067, '\p{^Is_InSC=vowelindependent}', "");
-    Expect(0, 73067, '\P{Is_InSC=vowelindependent}', "");
-    Expect(1, 73067, '\P{^Is_InSC=vowelindependent}', "");
-    Expect(0, 73068, '\p{Is_InSC=vowelindependent}', "");
-    Expect(1, 73068, '\p{^Is_InSC=vowelindependent}', "");
-    Expect(1, 73068, '\P{Is_InSC=vowelindependent}', "");
-    Expect(0, 73068, '\P{^Is_InSC=vowelindependent}', "");
-    Expect(1, 73067, '\p{Is_InSC=_ vowel_independent}', "");
-    Expect(0, 73067, '\p{^Is_InSC=_ vowel_independent}', "");
-    Expect(0, 73067, '\P{Is_InSC=_ vowel_independent}', "");
-    Expect(1, 73067, '\P{^Is_InSC=_ vowel_independent}', "");
-    Expect(0, 73068, '\p{Is_InSC=_ vowel_independent}', "");
-    Expect(1, 73068, '\p{^Is_InSC=_ vowel_independent}', "");
-    Expect(1, 73068, '\P{Is_InSC=_ vowel_independent}', "");
-    Expect(0, 73068, '\P{^Is_InSC=_ vowel_independent}', "");
+    Error('\p{Is_InSC=	vowel:=}');
+    Error('\P{Is_InSC=	vowel:=}');
+    Expect(1, 69972, '\p{Is_InSC:vowel}', "");
+    Expect(0, 69972, '\p{^Is_InSC:vowel}', "");
+    Expect(0, 69972, '\P{Is_InSC:vowel}', "");
+    Expect(1, 69972, '\P{^Is_InSC:vowel}', "");
+    Expect(0, 69973, '\p{Is_InSC:vowel}', "");
+    Expect(1, 69973, '\p{^Is_InSC:vowel}', "");
+    Expect(1, 69973, '\P{Is_InSC:vowel}', "");
+    Expect(0, 69973, '\P{^Is_InSC:vowel}', "");
+    Expect(1, 69972, '\p{Is_InSC=_ VOWEL}', "");
+    Expect(0, 69972, '\p{^Is_InSC=_ VOWEL}', "");
+    Expect(0, 69972, '\P{Is_InSC=_ VOWEL}', "");
+    Expect(1, 69972, '\P{^Is_InSC=_ VOWEL}', "");
+    Expect(0, 69973, '\p{Is_InSC=_ VOWEL}', "");
+    Expect(1, 69973, '\p{^Is_InSC=_ VOWEL}', "");
+    Expect(1, 69973, '\P{Is_InSC=_ VOWEL}', "");
+    Expect(0, 69973, '\P{^Is_InSC=_ VOWEL}', "");
+    Error('\p{Indic_Syllabic_Category=/a/-Vowel_Dependent}');
+    Error('\P{Indic_Syllabic_Category=/a/-Vowel_Dependent}');
+    Expect(1, 73536, '\p{Indic_Syllabic_Category=:\AVowel_Dependent\z:}', "");;
+    Expect(0, 73537, '\p{Indic_Syllabic_Category=:\AVowel_Dependent\z:}', "");;
+    Expect(1, 73536, '\p{Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73536, '\p{^Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73536, '\P{Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73536, '\P{^Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73537, '\p{Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73537, '\p{^Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73537, '\P{Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73537, '\P{^Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73536, '\p{Indic_Syllabic_Category=:\Avoweldependent\z:}', "");;
+    Expect(0, 73537, '\p{Indic_Syllabic_Category=:\Avoweldependent\z:}', "");;
+    Expect(1, 73536, '\p{Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(0, 73536, '\p{^Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(0, 73536, '\P{Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(1, 73536, '\P{^Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(0, 73537, '\p{Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(1, 73537, '\p{^Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(1, 73537, '\P{Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Expect(0, 73537, '\P{^Indic_Syllabic_Category=__Vowel_Dependent}', "");
+    Error('\p{InSC=/a/_ Vowel_DEPENDENT}');
+    Error('\P{InSC=/a/_ Vowel_DEPENDENT}');
+    Expect(1, 73536, '\p{InSC=:\AVowel_Dependent\z:}', "");;
+    Expect(0, 73537, '\p{InSC=:\AVowel_Dependent\z:}', "");;
+    Expect(1, 73536, '\p{InSC=voweldependent}', "");
+    Expect(0, 73536, '\p{^InSC=voweldependent}', "");
+    Expect(0, 73536, '\P{InSC=voweldependent}', "");
+    Expect(1, 73536, '\P{^InSC=voweldependent}', "");
+    Expect(0, 73537, '\p{InSC=voweldependent}', "");
+    Expect(1, 73537, '\p{^InSC=voweldependent}', "");
+    Expect(1, 73537, '\P{InSC=voweldependent}', "");
+    Expect(0, 73537, '\P{^InSC=voweldependent}', "");
+    Expect(1, 73536, '\p{InSC=:\Avoweldependent\z:}', "");;
+    Expect(0, 73537, '\p{InSC=:\Avoweldependent\z:}', "");;
+    Expect(1, 73536, '\p{InSC:	 -VOWEL_Dependent}', "");
+    Expect(0, 73536, '\p{^InSC:	 -VOWEL_Dependent}', "");
+    Expect(0, 73536, '\P{InSC:	 -VOWEL_Dependent}', "");
+    Expect(1, 73536, '\P{^InSC:	 -VOWEL_Dependent}', "");
+    Expect(0, 73537, '\p{InSC:	 -VOWEL_Dependent}', "");
+    Expect(1, 73537, '\p{^InSC:	 -VOWEL_Dependent}', "");
+    Expect(1, 73537, '\P{InSC:	 -VOWEL_Dependent}', "");
+    Expect(0, 73537, '\P{^InSC:	 -VOWEL_Dependent}', "");
+    Error('\p{Is_Indic_Syllabic_Category= :=VOWEL_Dependent}');
+    Error('\P{Is_Indic_Syllabic_Category= :=VOWEL_Dependent}');
+    Expect(1, 73536, '\p{Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73536, '\p{^Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73536, '\P{Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73536, '\P{^Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73537, '\p{Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73537, '\p{^Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73537, '\P{Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(0, 73537, '\P{^Is_Indic_Syllabic_Category=voweldependent}', "");
+    Expect(1, 73536, '\p{Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(0, 73536, '\p{^Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(0, 73536, '\P{Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(1, 73536, '\P{^Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(0, 73537, '\p{Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(1, 73537, '\p{^Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(1, 73537, '\P{Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Expect(0, 73537, '\P{^Is_Indic_Syllabic_Category=_Vowel_DEPENDENT}', "");
+    Error('\p{Is_InSC=/a/--vowel_Dependent}');
+    Error('\P{Is_InSC=/a/--vowel_Dependent}');
+    Expect(1, 73536, '\p{Is_InSC=voweldependent}', "");
+    Expect(0, 73536, '\p{^Is_InSC=voweldependent}', "");
+    Expect(0, 73536, '\P{Is_InSC=voweldependent}', "");
+    Expect(1, 73536, '\P{^Is_InSC=voweldependent}', "");
+    Expect(0, 73537, '\p{Is_InSC=voweldependent}', "");
+    Expect(1, 73537, '\p{^Is_InSC=voweldependent}', "");
+    Expect(1, 73537, '\P{Is_InSC=voweldependent}', "");
+    Expect(0, 73537, '\P{^Is_InSC=voweldependent}', "");
+    Expect(1, 73536, '\p{Is_InSC=_	vowel_Dependent}', "");
+    Expect(0, 73536, '\p{^Is_InSC=_	vowel_Dependent}', "");
+    Expect(0, 73536, '\P{Is_InSC=_	vowel_Dependent}', "");
+    Expect(1, 73536, '\P{^Is_InSC=_	vowel_Dependent}', "");
+    Expect(0, 73537, '\p{Is_InSC=_	vowel_Dependent}', "");
+    Expect(1, 73537, '\p{^Is_InSC=_	vowel_Dependent}', "");
+    Expect(1, 73537, '\P{Is_InSC=_	vowel_Dependent}', "");
+    Expect(0, 73537, '\P{^Is_InSC=_	vowel_Dependent}', "");
+    Error('\p{Indic_Syllabic_Category:    /a/Vowel_INDEPENDENT}');
+    Error('\P{Indic_Syllabic_Category:    /a/Vowel_INDEPENDENT}');
+    Expect(1, 73488, '\p{Indic_Syllabic_Category=:\AVowel_Independent\z:}', "");;
+    Expect(0, 73489, '\p{Indic_Syllabic_Category=:\AVowel_Independent\z:}', "");;
+    Expect(1, 73488, '\p{Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73488, '\p{^Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73488, '\P{Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73488, '\P{^Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73489, '\p{Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73489, '\p{^Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73489, '\P{Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73489, '\P{^Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73488, '\p{Indic_Syllabic_Category=:\Avowelindependent\z:}', "");;
+    Expect(0, 73489, '\p{Indic_Syllabic_Category=:\Avowelindependent\z:}', "");;
+    Expect(1, 73488, '\p{Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(0, 73488, '\p{^Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(0, 73488, '\P{Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(1, 73488, '\P{^Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(0, 73489, '\p{Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(1, 73489, '\p{^Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(1, 73489, '\P{Indic_Syllabic_Category=- vowel_Independent}', "");
+    Expect(0, 73489, '\P{^Indic_Syllabic_Category=- vowel_Independent}', "");
+    Error('\p{InSC= Vowel_independent:=}');
+    Error('\P{InSC= Vowel_independent:=}');
+    Expect(1, 73488, '\p{InSC=:\AVowel_Independent\z:}', "");;
+    Expect(0, 73489, '\p{InSC=:\AVowel_Independent\z:}', "");;
+    Expect(1, 73488, '\p{InSC=vowelindependent}', "");
+    Expect(0, 73488, '\p{^InSC=vowelindependent}', "");
+    Expect(0, 73488, '\P{InSC=vowelindependent}', "");
+    Expect(1, 73488, '\P{^InSC=vowelindependent}', "");
+    Expect(0, 73489, '\p{InSC=vowelindependent}', "");
+    Expect(1, 73489, '\p{^InSC=vowelindependent}', "");
+    Expect(1, 73489, '\P{InSC=vowelindependent}', "");
+    Expect(0, 73489, '\P{^InSC=vowelindependent}', "");
+    Expect(1, 73488, '\p{InSC=:\Avowelindependent\z:}', "");;
+    Expect(0, 73489, '\p{InSC=:\Avowelindependent\z:}', "");;
+    Expect(1, 73488, '\p{InSC:   -	Vowel_independent}', "");
+    Expect(0, 73488, '\p{^InSC:   -	Vowel_independent}', "");
+    Expect(0, 73488, '\P{InSC:   -	Vowel_independent}', "");
+    Expect(1, 73488, '\P{^InSC:   -	Vowel_independent}', "");
+    Expect(0, 73489, '\p{InSC:   -	Vowel_independent}', "");
+    Expect(1, 73489, '\p{^InSC:   -	Vowel_independent}', "");
+    Expect(1, 73489, '\P{InSC:   -	Vowel_independent}', "");
+    Expect(0, 73489, '\P{^InSC:   -	Vowel_independent}', "");
+    Error('\p{Is_Indic_Syllabic_Category= 	VOWEL_INDEPENDENT:=}');
+    Error('\P{Is_Indic_Syllabic_Category= 	VOWEL_INDEPENDENT:=}');
+    Expect(1, 73488, '\p{Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73488, '\p{^Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73488, '\P{Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73488, '\P{^Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73489, '\p{Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73489, '\p{^Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73489, '\P{Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(0, 73489, '\P{^Is_Indic_Syllabic_Category=vowelindependent}', "");
+    Expect(1, 73488, '\p{Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(0, 73488, '\p{^Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(0, 73488, '\P{Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(1, 73488, '\P{^Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(0, 73489, '\p{Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(1, 73489, '\p{^Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(1, 73489, '\P{Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Expect(0, 73489, '\P{^Is_Indic_Syllabic_Category=	_Vowel_Independent}', "");
+    Error('\p{Is_InSC=/a/  vowel_INDEPENDENT}');
+    Error('\P{Is_InSC=/a/  vowel_INDEPENDENT}');
+    Expect(1, 73488, '\p{Is_InSC=vowelindependent}', "");
+    Expect(0, 73488, '\p{^Is_InSC=vowelindependent}', "");
+    Expect(0, 73488, '\P{Is_InSC=vowelindependent}', "");
+    Expect(1, 73488, '\P{^Is_InSC=vowelindependent}', "");
+    Expect(0, 73489, '\p{Is_InSC=vowelindependent}', "");
+    Expect(1, 73489, '\p{^Is_InSC=vowelindependent}', "");
+    Expect(1, 73489, '\P{Is_InSC=vowelindependent}', "");
+    Expect(0, 73489, '\P{^Is_InSC=vowelindependent}', "");
+    Expect(1, 73488, '\p{Is_InSC:	 vowel_Independent}', "");
+    Expect(0, 73488, '\p{^Is_InSC:	 vowel_Independent}', "");
+    Expect(0, 73488, '\P{Is_InSC:	 vowel_Independent}', "");
+    Expect(1, 73488, '\P{^Is_InSC:	 vowel_Independent}', "");
+    Expect(0, 73489, '\p{Is_InSC:	 vowel_Independent}', "");
+    Expect(1, 73489, '\p{^Is_InSC:	 vowel_Independent}', "");
+    Expect(1, 73489, '\P{Is_InSC:	 vowel_Independent}', "");
+    Expect(0, 73489, '\P{^Is_InSC:	 vowel_Independent}', "");
     Error('\p{isocomment}');
     Error('\P{isocomment}');
     Error('\p{joininggroup}');
     Error('\P{joininggroup}');
     Error('\p{jg}');
     Error('\P{jg}');
-    Error('\p{Joining_Group=	:=African_feh}');
-    Error('\P{Joining_Group=	:=African_feh}');
+    Error('\p{Joining_Group=/a/AFRICAN_feh}');
+    Error('\P{Joining_Group=/a/AFRICAN_feh}');
     Expect(1, 2235, '\p{Joining_Group=:\AAfrican_Feh\z:}', "");;
     Expect(0, 2236, '\p{Joining_Group=:\AAfrican_Feh\z:}', "");;
     Expect(1, 2235, '\p{Joining_Group=africanfeh}', "");
@@ -52889,16 +53511,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2236, '\P{^Joining_Group=africanfeh}', "");
     Expect(1, 2235, '\p{Joining_Group=:\Aafricanfeh\z:}', "");;
     Expect(0, 2236, '\p{Joining_Group=:\Aafricanfeh\z:}', "");;
-    Expect(1, 2235, '\p{Joining_Group= 	African_FEH}', "");
-    Expect(0, 2235, '\p{^Joining_Group= 	African_FEH}', "");
-    Expect(0, 2235, '\P{Joining_Group= 	African_FEH}', "");
-    Expect(1, 2235, '\P{^Joining_Group= 	African_FEH}', "");
-    Expect(0, 2236, '\p{Joining_Group= 	African_FEH}', "");
-    Expect(1, 2236, '\p{^Joining_Group= 	African_FEH}', "");
-    Expect(1, 2236, '\P{Joining_Group= 	African_FEH}', "");
-    Expect(0, 2236, '\P{^Joining_Group= 	African_FEH}', "");
-    Error('\p{Jg=-_african_Feh:=}');
-    Error('\P{Jg=-_african_Feh:=}');
+    Expect(1, 2235, '\p{Joining_Group=_African_FEH}', "");
+    Expect(0, 2235, '\p{^Joining_Group=_African_FEH}', "");
+    Expect(0, 2235, '\P{Joining_Group=_African_FEH}', "");
+    Expect(1, 2235, '\P{^Joining_Group=_African_FEH}', "");
+    Expect(0, 2236, '\p{Joining_Group=_African_FEH}', "");
+    Expect(1, 2236, '\p{^Joining_Group=_African_FEH}', "");
+    Expect(1, 2236, '\P{Joining_Group=_African_FEH}', "");
+    Expect(0, 2236, '\P{^Joining_Group=_African_FEH}', "");
+    Error('\p{Jg=/a/_AFRICAN_FEH}');
+    Error('\P{Jg=/a/_AFRICAN_FEH}');
     Expect(1, 2235, '\p{Jg=:\AAfrican_Feh\z:}', "");;
     Expect(0, 2236, '\p{Jg=:\AAfrican_Feh\z:}', "");;
     Expect(1, 2235, '\p{Jg=africanfeh}', "");
@@ -52911,16 +53533,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2236, '\P{^Jg=africanfeh}', "");
     Expect(1, 2235, '\p{Jg=:\Aafricanfeh\z:}', "");;
     Expect(0, 2236, '\p{Jg=:\Aafricanfeh\z:}', "");;
-    Expect(1, 2235, '\p{Jg=	African_Feh}', "");
-    Expect(0, 2235, '\p{^Jg=	African_Feh}', "");
-    Expect(0, 2235, '\P{Jg=	African_Feh}', "");
-    Expect(1, 2235, '\P{^Jg=	African_Feh}', "");
-    Expect(0, 2236, '\p{Jg=	African_Feh}', "");
-    Expect(1, 2236, '\p{^Jg=	African_Feh}', "");
-    Expect(1, 2236, '\P{Jg=	African_Feh}', "");
-    Expect(0, 2236, '\P{^Jg=	African_Feh}', "");
-    Error('\p{Is_Joining_Group=-:=african_feh}');
-    Error('\P{Is_Joining_Group=-:=african_feh}');
+    Expect(1, 2235, '\p{Jg=-African_Feh}', "");
+    Expect(0, 2235, '\p{^Jg=-African_Feh}', "");
+    Expect(0, 2235, '\P{Jg=-African_Feh}', "");
+    Expect(1, 2235, '\P{^Jg=-African_Feh}', "");
+    Expect(0, 2236, '\p{Jg=-African_Feh}', "");
+    Expect(1, 2236, '\p{^Jg=-African_Feh}', "");
+    Expect(1, 2236, '\P{Jg=-African_Feh}', "");
+    Expect(0, 2236, '\P{^Jg=-African_Feh}', "");
+    Error('\p{Is_Joining_Group=:=_-African_Feh}');
+    Error('\P{Is_Joining_Group=:=_-African_Feh}');
     Expect(1, 2235, '\p{Is_Joining_Group=africanfeh}', "");
     Expect(0, 2235, '\p{^Is_Joining_Group=africanfeh}', "");
     Expect(0, 2235, '\P{Is_Joining_Group=africanfeh}', "");
@@ -52929,16 +53551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2236, '\p{^Is_Joining_Group=africanfeh}', "");
     Expect(1, 2236, '\P{Is_Joining_Group=africanfeh}', "");
     Expect(0, 2236, '\P{^Is_Joining_Group=africanfeh}', "");
-    Expect(1, 2235, '\p{Is_Joining_Group=	-African_FEH}', "");
-    Expect(0, 2235, '\p{^Is_Joining_Group=	-African_FEH}', "");
-    Expect(0, 2235, '\P{Is_Joining_Group=	-African_FEH}', "");
-    Expect(1, 2235, '\P{^Is_Joining_Group=	-African_FEH}', "");
-    Expect(0, 2236, '\p{Is_Joining_Group=	-African_FEH}', "");
-    Expect(1, 2236, '\p{^Is_Joining_Group=	-African_FEH}', "");
-    Expect(1, 2236, '\P{Is_Joining_Group=	-African_FEH}', "");
-    Expect(0, 2236, '\P{^Is_Joining_Group=	-African_FEH}', "");
-    Error('\p{Is_Jg=/a/African_feh}');
-    Error('\P{Is_Jg=/a/African_feh}');
+    Expect(1, 2235, '\p{Is_Joining_Group=  African_Feh}', "");
+    Expect(0, 2235, '\p{^Is_Joining_Group=  African_Feh}', "");
+    Expect(0, 2235, '\P{Is_Joining_Group=  African_Feh}', "");
+    Expect(1, 2235, '\P{^Is_Joining_Group=  African_Feh}', "");
+    Expect(0, 2236, '\p{Is_Joining_Group=  African_Feh}', "");
+    Expect(1, 2236, '\p{^Is_Joining_Group=  African_Feh}', "");
+    Expect(1, 2236, '\P{Is_Joining_Group=  African_Feh}', "");
+    Expect(0, 2236, '\P{^Is_Joining_Group=  African_Feh}', "");
+    Error('\p{Is_Jg=/a/	 African_Feh}');
+    Error('\P{Is_Jg=/a/	 African_Feh}');
     Expect(1, 2235, '\p{Is_Jg=africanfeh}', "");
     Expect(0, 2235, '\p{^Is_Jg=africanfeh}', "");
     Expect(0, 2235, '\P{Is_Jg=africanfeh}', "");
@@ -52947,16 +53569,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2236, '\p{^Is_Jg=africanfeh}', "");
     Expect(1, 2236, '\P{Is_Jg=africanfeh}', "");
     Expect(0, 2236, '\P{^Is_Jg=africanfeh}', "");
-    Expect(1, 2235, '\p{Is_Jg=_african_Feh}', "");
-    Expect(0, 2235, '\p{^Is_Jg=_african_Feh}', "");
-    Expect(0, 2235, '\P{Is_Jg=_african_Feh}', "");
-    Expect(1, 2235, '\P{^Is_Jg=_african_Feh}', "");
-    Expect(0, 2236, '\p{Is_Jg=_african_Feh}', "");
-    Expect(1, 2236, '\p{^Is_Jg=_african_Feh}', "");
-    Expect(1, 2236, '\P{Is_Jg=_african_Feh}', "");
-    Expect(0, 2236, '\P{^Is_Jg=_african_Feh}', "");
-    Error('\p{Joining_Group=_ African_Noon/a/}');
-    Error('\P{Joining_Group=_ African_Noon/a/}');
+    Expect(1, 2235, '\p{Is_Jg=	-African_FEH}', "");
+    Expect(0, 2235, '\p{^Is_Jg=	-African_FEH}', "");
+    Expect(0, 2235, '\P{Is_Jg=	-African_FEH}', "");
+    Expect(1, 2235, '\P{^Is_Jg=	-African_FEH}', "");
+    Expect(0, 2236, '\p{Is_Jg=	-African_FEH}', "");
+    Expect(1, 2236, '\p{^Is_Jg=	-African_FEH}', "");
+    Expect(1, 2236, '\P{Is_Jg=	-African_FEH}', "");
+    Expect(0, 2236, '\P{^Is_Jg=	-African_FEH}', "");
+    Error('\p{Joining_Group=/a/AFRICAN_Noon}');
+    Error('\P{Joining_Group=/a/AFRICAN_Noon}');
     Expect(1, 2237, '\p{Joining_Group=:\AAfrican_Noon\z:}', "");;
     Expect(0, 2238, '\p{Joining_Group=:\AAfrican_Noon\z:}', "");;
     Expect(1, 2237, '\p{Joining_Group=africannoon}', "");
@@ -52969,16 +53591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2238, '\P{^Joining_Group=africannoon}', "");
     Expect(1, 2237, '\p{Joining_Group=:\Aafricannoon\z:}', "");;
     Expect(0, 2238, '\p{Joining_Group=:\Aafricannoon\z:}', "");;
-    Expect(1, 2237, '\p{Joining_Group=AFRICAN_Noon}', "");
-    Expect(0, 2237, '\p{^Joining_Group=AFRICAN_Noon}', "");
-    Expect(0, 2237, '\P{Joining_Group=AFRICAN_Noon}', "");
-    Expect(1, 2237, '\P{^Joining_Group=AFRICAN_Noon}', "");
-    Expect(0, 2238, '\p{Joining_Group=AFRICAN_Noon}', "");
-    Expect(1, 2238, '\p{^Joining_Group=AFRICAN_Noon}', "");
-    Expect(1, 2238, '\P{Joining_Group=AFRICAN_Noon}', "");
-    Expect(0, 2238, '\P{^Joining_Group=AFRICAN_Noon}', "");
-    Error('\p{Jg=:=		AFRICAN_NOON}');
-    Error('\P{Jg=:=		AFRICAN_NOON}');
+    Expect(1, 2237, '\p{Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(0, 2237, '\p{^Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(0, 2237, '\P{Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(1, 2237, '\P{^Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(0, 2238, '\p{Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(1, 2238, '\p{^Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(1, 2238, '\P{Joining_Group=_	AFRICAN_NOON}', "");
+    Expect(0, 2238, '\P{^Joining_Group=_	AFRICAN_NOON}', "");
+    Error('\p{Jg= /a/AFRICAN_Noon}');
+    Error('\P{Jg= /a/AFRICAN_Noon}');
     Expect(1, 2237, '\p{Jg=:\AAfrican_Noon\z:}', "");;
     Expect(0, 2238, '\p{Jg=:\AAfrican_Noon\z:}', "");;
     Expect(1, 2237, '\p{Jg=africannoon}', "");
@@ -52991,16 +53613,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2238, '\P{^Jg=africannoon}', "");
     Expect(1, 2237, '\p{Jg=:\Aafricannoon\z:}', "");;
     Expect(0, 2238, '\p{Jg=:\Aafricannoon\z:}', "");;
-    Expect(1, 2237, '\p{Jg=	African_noon}', "");
-    Expect(0, 2237, '\p{^Jg=	African_noon}', "");
-    Expect(0, 2237, '\P{Jg=	African_noon}', "");
-    Expect(1, 2237, '\P{^Jg=	African_noon}', "");
-    Expect(0, 2238, '\p{Jg=	African_noon}', "");
-    Expect(1, 2238, '\p{^Jg=	African_noon}', "");
-    Expect(1, 2238, '\P{Jg=	African_noon}', "");
-    Expect(0, 2238, '\P{^Jg=	African_noon}', "");
-    Error('\p{Is_Joining_Group=  African_Noon:=}');
-    Error('\P{Is_Joining_Group=  African_Noon:=}');
+    Expect(1, 2237, '\p{Jg= African_NOON}', "");
+    Expect(0, 2237, '\p{^Jg= African_NOON}', "");
+    Expect(0, 2237, '\P{Jg= African_NOON}', "");
+    Expect(1, 2237, '\P{^Jg= African_NOON}', "");
+    Expect(0, 2238, '\p{Jg= African_NOON}', "");
+    Expect(1, 2238, '\p{^Jg= African_NOON}', "");
+    Expect(1, 2238, '\P{Jg= African_NOON}', "");
+    Expect(0, 2238, '\P{^Jg= African_NOON}', "");
+    Error('\p{Is_Joining_Group=_ African_Noon:=}');
+    Error('\P{Is_Joining_Group=_ African_Noon:=}');
     Expect(1, 2237, '\p{Is_Joining_Group=africannoon}', "");
     Expect(0, 2237, '\p{^Is_Joining_Group=africannoon}', "");
     Expect(0, 2237, '\P{Is_Joining_Group=africannoon}', "");
@@ -53009,34 +53631,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2238, '\p{^Is_Joining_Group=africannoon}', "");
     Expect(1, 2238, '\P{Is_Joining_Group=africannoon}', "");
     Expect(0, 2238, '\P{^Is_Joining_Group=africannoon}', "");
-    Expect(1, 2237, '\p{Is_Joining_Group=-	african_NOON}', "");
-    Expect(0, 2237, '\p{^Is_Joining_Group=-	african_NOON}', "");
-    Expect(0, 2237, '\P{Is_Joining_Group=-	african_NOON}', "");
-    Expect(1, 2237, '\P{^Is_Joining_Group=-	african_NOON}', "");
-    Expect(0, 2238, '\p{Is_Joining_Group=-	african_NOON}', "");
-    Expect(1, 2238, '\p{^Is_Joining_Group=-	african_NOON}', "");
-    Expect(1, 2238, '\P{Is_Joining_Group=-	african_NOON}', "");
-    Expect(0, 2238, '\P{^Is_Joining_Group=-	african_NOON}', "");
-    Error('\p{Is_Jg=	African_Noon:=}');
-    Error('\P{Is_Jg=	African_Noon:=}');
-    Expect(1, 2237, '\p{Is_Jg=africannoon}', "");
-    Expect(0, 2237, '\p{^Is_Jg=africannoon}', "");
-    Expect(0, 2237, '\P{Is_Jg=africannoon}', "");
-    Expect(1, 2237, '\P{^Is_Jg=africannoon}', "");
-    Expect(0, 2238, '\p{Is_Jg=africannoon}', "");
-    Expect(1, 2238, '\p{^Is_Jg=africannoon}', "");
-    Expect(1, 2238, '\P{Is_Jg=africannoon}', "");
-    Expect(0, 2238, '\P{^Is_Jg=africannoon}', "");
-    Expect(1, 2237, '\p{Is_Jg=African_NOON}', "");
-    Expect(0, 2237, '\p{^Is_Jg=African_NOON}', "");
-    Expect(0, 2237, '\P{Is_Jg=African_NOON}', "");
-    Expect(1, 2237, '\P{^Is_Jg=African_NOON}', "");
-    Expect(0, 2238, '\p{Is_Jg=African_NOON}', "");
-    Expect(1, 2238, '\p{^Is_Jg=African_NOON}', "");
-    Expect(1, 2238, '\P{Is_Jg=African_NOON}', "");
-    Expect(0, 2238, '\P{^Is_Jg=African_NOON}', "");
-    Error('\p{Joining_Group= :=AFRICAN_QAF}');
-    Error('\P{Joining_Group= :=AFRICAN_QAF}');
+    Expect(1, 2237, '\p{Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(0, 2237, '\p{^Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(0, 2237, '\P{Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(1, 2237, '\P{^Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(0, 2238, '\p{Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(1, 2238, '\p{^Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(1, 2238, '\P{Is_Joining_Group=	_AFRICAN_noon}', "");
+    Expect(0, 2238, '\P{^Is_Joining_Group=	_AFRICAN_noon}', "");
+    Error('\p{Is_Jg=:=_African_noon}');
+    Error('\P{Is_Jg=:=_African_noon}');
+    Expect(1, 2237, '\p{Is_Jg: africannoon}', "");
+    Expect(0, 2237, '\p{^Is_Jg: africannoon}', "");
+    Expect(0, 2237, '\P{Is_Jg: africannoon}', "");
+    Expect(1, 2237, '\P{^Is_Jg: africannoon}', "");
+    Expect(0, 2238, '\p{Is_Jg: africannoon}', "");
+    Expect(1, 2238, '\p{^Is_Jg: africannoon}', "");
+    Expect(1, 2238, '\P{Is_Jg: africannoon}', "");
+    Expect(0, 2238, '\P{^Is_Jg: africannoon}', "");
+    Expect(1, 2237, '\p{Is_Jg=	African_noon}', "");
+    Expect(0, 2237, '\p{^Is_Jg=	African_noon}', "");
+    Expect(0, 2237, '\P{Is_Jg=	African_noon}', "");
+    Expect(1, 2237, '\P{^Is_Jg=	African_noon}', "");
+    Expect(0, 2238, '\p{Is_Jg=	African_noon}', "");
+    Expect(1, 2238, '\p{^Is_Jg=	African_noon}', "");
+    Expect(1, 2238, '\P{Is_Jg=	African_noon}', "");
+    Expect(0, 2238, '\P{^Is_Jg=	African_noon}', "");
+    Error('\p{Joining_Group= /a/african_QAF}');
+    Error('\P{Joining_Group= /a/african_QAF}');
     Expect(1, 2244, '\p{Joining_Group=:\AAfrican_Qaf\z:}', "");;
     Expect(0, 2245, '\p{Joining_Group=:\AAfrican_Qaf\z:}', "");;
     Expect(1, 2244, '\p{Joining_Group=africanqaf}', "");
@@ -53049,16 +53671,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2245, '\P{^Joining_Group=africanqaf}', "");
     Expect(1, 2244, '\p{Joining_Group=:\Aafricanqaf\z:}', "");;
     Expect(0, 2245, '\p{Joining_Group=:\Aafricanqaf\z:}', "");;
-    Expect(1, 2244, '\p{Joining_Group=-	african_QAF}', "");
-    Expect(0, 2244, '\p{^Joining_Group=-	african_QAF}', "");
-    Expect(0, 2244, '\P{Joining_Group=-	african_QAF}', "");
-    Expect(1, 2244, '\P{^Joining_Group=-	african_QAF}', "");
-    Expect(0, 2245, '\p{Joining_Group=-	african_QAF}', "");
-    Expect(1, 2245, '\p{^Joining_Group=-	african_QAF}', "");
-    Expect(1, 2245, '\P{Joining_Group=-	african_QAF}', "");
-    Expect(0, 2245, '\P{^Joining_Group=-	african_QAF}', "");
-    Error('\p{Jg=:=African_qaf}');
-    Error('\P{Jg=:=African_qaf}');
+    Expect(1, 2244, '\p{Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(0, 2244, '\p{^Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(0, 2244, '\P{Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(1, 2244, '\P{^Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(0, 2245, '\p{Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(1, 2245, '\p{^Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(1, 2245, '\P{Joining_Group:	 AFRICAN_qaf}', "");
+    Expect(0, 2245, '\P{^Joining_Group:	 AFRICAN_qaf}', "");
+    Error('\p{Jg=-African_qaf:=}');
+    Error('\P{Jg=-African_qaf:=}');
     Expect(1, 2244, '\p{Jg=:\AAfrican_Qaf\z:}', "");;
     Expect(0, 2245, '\p{Jg=:\AAfrican_Qaf\z:}', "");;
     Expect(1, 2244, '\p{Jg=africanqaf}', "");
@@ -53071,16 +53693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2245, '\P{^Jg=africanqaf}', "");
     Expect(1, 2244, '\p{Jg=:\Aafricanqaf\z:}', "");;
     Expect(0, 2245, '\p{Jg=:\Aafricanqaf\z:}', "");;
-    Expect(1, 2244, '\p{Jg=_African_qaf}', "");
-    Expect(0, 2244, '\p{^Jg=_African_qaf}', "");
-    Expect(0, 2244, '\P{Jg=_African_qaf}', "");
-    Expect(1, 2244, '\P{^Jg=_African_qaf}', "");
-    Expect(0, 2245, '\p{Jg=_African_qaf}', "");
-    Expect(1, 2245, '\p{^Jg=_African_qaf}', "");
-    Expect(1, 2245, '\P{Jg=_African_qaf}', "");
-    Expect(0, 2245, '\P{^Jg=_African_qaf}', "");
-    Error('\p{Is_Joining_Group=	-AFRICAN_QAF/a/}');
-    Error('\P{Is_Joining_Group=	-AFRICAN_QAF/a/}');
+    Expect(1, 2244, '\p{Jg=	 African_QAF}', "");
+    Expect(0, 2244, '\p{^Jg=	 African_QAF}', "");
+    Expect(0, 2244, '\P{Jg=	 African_QAF}', "");
+    Expect(1, 2244, '\P{^Jg=	 African_QAF}', "");
+    Expect(0, 2245, '\p{Jg=	 African_QAF}', "");
+    Expect(1, 2245, '\p{^Jg=	 African_QAF}', "");
+    Expect(1, 2245, '\P{Jg=	 African_QAF}', "");
+    Expect(0, 2245, '\P{^Jg=	 African_QAF}', "");
+    Error('\p{Is_Joining_Group=	african_Qaf:=}');
+    Error('\P{Is_Joining_Group=	african_Qaf:=}');
     Expect(1, 2244, '\p{Is_Joining_Group=africanqaf}', "");
     Expect(0, 2244, '\p{^Is_Joining_Group=africanqaf}', "");
     Expect(0, 2244, '\P{Is_Joining_Group=africanqaf}', "");
@@ -53089,16 +53711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2245, '\p{^Is_Joining_Group=africanqaf}', "");
     Expect(1, 2245, '\P{Is_Joining_Group=africanqaf}', "");
     Expect(0, 2245, '\P{^Is_Joining_Group=africanqaf}', "");
-    Expect(1, 2244, '\p{Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(0, 2244, '\p{^Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(0, 2244, '\P{Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(1, 2244, '\P{^Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(0, 2245, '\p{Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(1, 2245, '\p{^Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(1, 2245, '\P{Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Expect(0, 2245, '\P{^Is_Joining_Group:   -AFRICAN_QAF}', "");
-    Error('\p{Is_Jg=	/a/African_Qaf}');
-    Error('\P{Is_Jg=	/a/African_Qaf}');
+    Expect(1, 2244, '\p{Is_Joining_Group=	 African_Qaf}', "");
+    Expect(0, 2244, '\p{^Is_Joining_Group=	 African_Qaf}', "");
+    Expect(0, 2244, '\P{Is_Joining_Group=	 African_Qaf}', "");
+    Expect(1, 2244, '\P{^Is_Joining_Group=	 African_Qaf}', "");
+    Expect(0, 2245, '\p{Is_Joining_Group=	 African_Qaf}', "");
+    Expect(1, 2245, '\p{^Is_Joining_Group=	 African_Qaf}', "");
+    Expect(1, 2245, '\P{Is_Joining_Group=	 African_Qaf}', "");
+    Expect(0, 2245, '\P{^Is_Joining_Group=	 African_Qaf}', "");
+    Error('\p{Is_Jg=	_AFRICAN_QAF:=}');
+    Error('\P{Is_Jg=	_AFRICAN_QAF:=}');
     Expect(1, 2244, '\p{Is_Jg=africanqaf}', "");
     Expect(0, 2244, '\p{^Is_Jg=africanqaf}', "");
     Expect(0, 2244, '\P{Is_Jg=africanqaf}', "");
@@ -53107,16 +53729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2245, '\p{^Is_Jg=africanqaf}', "");
     Expect(1, 2245, '\P{Is_Jg=africanqaf}', "");
     Expect(0, 2245, '\P{^Is_Jg=africanqaf}', "");
-    Expect(1, 2244, '\p{Is_Jg=	African_QAF}', "");
-    Expect(0, 2244, '\p{^Is_Jg=	African_QAF}', "");
-    Expect(0, 2244, '\P{Is_Jg=	African_QAF}', "");
-    Expect(1, 2244, '\P{^Is_Jg=	African_QAF}', "");
-    Expect(0, 2245, '\p{Is_Jg=	African_QAF}', "");
-    Expect(1, 2245, '\p{^Is_Jg=	African_QAF}', "");
-    Expect(1, 2245, '\P{Is_Jg=	African_QAF}', "");
-    Expect(0, 2245, '\P{^Is_Jg=	African_QAF}', "");
-    Error('\p{Joining_Group=	_AIN/a/}');
-    Error('\P{Joining_Group=	_AIN/a/}');
+    Expect(1, 2244, '\p{Is_Jg=_	African_QAF}', "");
+    Expect(0, 2244, '\p{^Is_Jg=_	African_QAF}', "");
+    Expect(0, 2244, '\P{Is_Jg=_	African_QAF}', "");
+    Expect(1, 2244, '\P{^Is_Jg=_	African_QAF}', "");
+    Expect(0, 2245, '\p{Is_Jg=_	African_QAF}', "");
+    Expect(1, 2245, '\p{^Is_Jg=_	African_QAF}', "");
+    Expect(1, 2245, '\P{Is_Jg=_	African_QAF}', "");
+    Expect(0, 2245, '\P{^Is_Jg=_	African_QAF}', "");
+    Error('\p{Joining_Group= 	AIN/a/}');
+    Error('\P{Joining_Group= 	AIN/a/}');
     Expect(1, 2243, '\p{Joining_Group=:\AAin\z:}', "");;
     Expect(0, 2244, '\p{Joining_Group=:\AAin\z:}', "");;
     Expect(1, 2243, '\p{Joining_Group=ain}', "");
@@ -53129,16 +53751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2244, '\P{^Joining_Group=ain}', "");
     Expect(1, 2243, '\p{Joining_Group=:\Aain\z:}', "");;
     Expect(0, 2244, '\p{Joining_Group=:\Aain\z:}', "");;
-    Expect(1, 2243, '\p{Joining_Group=- AIN}', "");
-    Expect(0, 2243, '\p{^Joining_Group=- AIN}', "");
-    Expect(0, 2243, '\P{Joining_Group=- AIN}', "");
-    Expect(1, 2243, '\P{^Joining_Group=- AIN}', "");
-    Expect(0, 2244, '\p{Joining_Group=- AIN}', "");
-    Expect(1, 2244, '\p{^Joining_Group=- AIN}', "");
-    Expect(1, 2244, '\P{Joining_Group=- AIN}', "");
-    Expect(0, 2244, '\P{^Joining_Group=- AIN}', "");
-    Error('\p{Jg= /a/Ain}');
-    Error('\P{Jg= /a/Ain}');
+    Expect(1, 2243, '\p{Joining_Group=  Ain}', "");
+    Expect(0, 2243, '\p{^Joining_Group=  Ain}', "");
+    Expect(0, 2243, '\P{Joining_Group=  Ain}', "");
+    Expect(1, 2243, '\P{^Joining_Group=  Ain}', "");
+    Expect(0, 2244, '\p{Joining_Group=  Ain}', "");
+    Expect(1, 2244, '\p{^Joining_Group=  Ain}', "");
+    Expect(1, 2244, '\P{Joining_Group=  Ain}', "");
+    Expect(0, 2244, '\P{^Joining_Group=  Ain}', "");
+    Error('\p{Jg=:=_	ain}');
+    Error('\P{Jg=:=_	ain}');
     Expect(1, 2243, '\p{Jg=:\AAin\z:}', "");;
     Expect(0, 2244, '\p{Jg=:\AAin\z:}', "");;
     Expect(1, 2243, '\p{Jg=ain}', "");
@@ -53151,16 +53773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2244, '\P{^Jg=ain}', "");
     Expect(1, 2243, '\p{Jg=:\Aain\z:}', "");;
     Expect(0, 2244, '\p{Jg=:\Aain\z:}', "");;
-    Expect(1, 2243, '\p{Jg=-	Ain}', "");
-    Expect(0, 2243, '\p{^Jg=-	Ain}', "");
-    Expect(0, 2243, '\P{Jg=-	Ain}', "");
-    Expect(1, 2243, '\P{^Jg=-	Ain}', "");
-    Expect(0, 2244, '\p{Jg=-	Ain}', "");
-    Expect(1, 2244, '\p{^Jg=-	Ain}', "");
-    Expect(1, 2244, '\P{Jg=-	Ain}', "");
-    Expect(0, 2244, '\P{^Jg=-	Ain}', "");
-    Error('\p{Is_Joining_Group: -Ain/a/}');
-    Error('\P{Is_Joining_Group: -Ain/a/}');
+    Expect(1, 2243, '\p{Jg=  ain}', "");
+    Expect(0, 2243, '\p{^Jg=  ain}', "");
+    Expect(0, 2243, '\P{Jg=  ain}', "");
+    Expect(1, 2243, '\P{^Jg=  ain}', "");
+    Expect(0, 2244, '\p{Jg=  ain}', "");
+    Expect(1, 2244, '\p{^Jg=  ain}', "");
+    Expect(1, 2244, '\P{Jg=  ain}', "");
+    Expect(0, 2244, '\P{^Jg=  ain}', "");
+    Error('\p{Is_Joining_Group=	_ain/a/}');
+    Error('\P{Is_Joining_Group=	_ain/a/}');
     Expect(1, 2243, '\p{Is_Joining_Group=ain}', "");
     Expect(0, 2243, '\p{^Is_Joining_Group=ain}', "");
     Expect(0, 2243, '\P{Is_Joining_Group=ain}', "");
@@ -53169,34 +53791,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2244, '\p{^Is_Joining_Group=ain}', "");
     Expect(1, 2244, '\P{Is_Joining_Group=ain}', "");
     Expect(0, 2244, '\P{^Is_Joining_Group=ain}', "");
-    Expect(1, 2243, '\p{Is_Joining_Group=_AIN}', "");
-    Expect(0, 2243, '\p{^Is_Joining_Group=_AIN}', "");
-    Expect(0, 2243, '\P{Is_Joining_Group=_AIN}', "");
-    Expect(1, 2243, '\P{^Is_Joining_Group=_AIN}', "");
-    Expect(0, 2244, '\p{Is_Joining_Group=_AIN}', "");
-    Expect(1, 2244, '\p{^Is_Joining_Group=_AIN}', "");
-    Expect(1, 2244, '\P{Is_Joining_Group=_AIN}', "");
-    Expect(0, 2244, '\P{^Is_Joining_Group=_AIN}', "");
-    Error('\p{Is_Jg=/a/-ain}');
-    Error('\P{Is_Jg=/a/-ain}');
-    Expect(1, 2243, '\p{Is_Jg:	ain}', "");
-    Expect(0, 2243, '\p{^Is_Jg:	ain}', "");
-    Expect(0, 2243, '\P{Is_Jg:	ain}', "");
-    Expect(1, 2243, '\P{^Is_Jg:	ain}', "");
-    Expect(0, 2244, '\p{Is_Jg:	ain}', "");
-    Expect(1, 2244, '\p{^Is_Jg:	ain}', "");
-    Expect(1, 2244, '\P{Is_Jg:	ain}', "");
-    Expect(0, 2244, '\P{^Is_Jg:	ain}', "");
-    Expect(1, 2243, '\p{Is_Jg=_AIN}', "");
-    Expect(0, 2243, '\p{^Is_Jg=_AIN}', "");
-    Expect(0, 2243, '\P{Is_Jg=_AIN}', "");
-    Expect(1, 2243, '\P{^Is_Jg=_AIN}', "");
-    Expect(0, 2244, '\p{Is_Jg=_AIN}', "");
-    Expect(1, 2244, '\p{^Is_Jg=_AIN}', "");
-    Expect(1, 2244, '\P{Is_Jg=_AIN}', "");
-    Expect(0, 2244, '\P{^Is_Jg=_AIN}', "");
-    Error('\p{Joining_Group=_ALAPH/a/}');
-    Error('\P{Joining_Group=_ALAPH/a/}');
+    Expect(1, 2243, '\p{Is_Joining_Group: -_AIN}', "");
+    Expect(0, 2243, '\p{^Is_Joining_Group: -_AIN}', "");
+    Expect(0, 2243, '\P{Is_Joining_Group: -_AIN}', "");
+    Expect(1, 2243, '\P{^Is_Joining_Group: -_AIN}', "");
+    Expect(0, 2244, '\p{Is_Joining_Group: -_AIN}', "");
+    Expect(1, 2244, '\p{^Is_Joining_Group: -_AIN}', "");
+    Expect(1, 2244, '\P{Is_Joining_Group: -_AIN}', "");
+    Expect(0, 2244, '\P{^Is_Joining_Group: -_AIN}', "");
+    Error('\p{Is_Jg= /a/AIN}');
+    Error('\P{Is_Jg= /a/AIN}');
+    Expect(1, 2243, '\p{Is_Jg=ain}', "");
+    Expect(0, 2243, '\p{^Is_Jg=ain}', "");
+    Expect(0, 2243, '\P{Is_Jg=ain}', "");
+    Expect(1, 2243, '\P{^Is_Jg=ain}', "");
+    Expect(0, 2244, '\p{Is_Jg=ain}', "");
+    Expect(1, 2244, '\p{^Is_Jg=ain}', "");
+    Expect(1, 2244, '\P{Is_Jg=ain}', "");
+    Expect(0, 2244, '\P{^Is_Jg=ain}', "");
+    Expect(1, 2243, '\p{Is_Jg= Ain}', "");
+    Expect(0, 2243, '\p{^Is_Jg= Ain}', "");
+    Expect(0, 2243, '\P{Is_Jg= Ain}', "");
+    Expect(1, 2243, '\P{^Is_Jg= Ain}', "");
+    Expect(0, 2244, '\p{Is_Jg= Ain}', "");
+    Expect(1, 2244, '\p{^Is_Jg= Ain}', "");
+    Expect(1, 2244, '\P{Is_Jg= Ain}', "");
+    Expect(0, 2244, '\P{^Is_Jg= Ain}', "");
+    Error('\p{Joining_Group=/a/	_alaph}');
+    Error('\P{Joining_Group=/a/	_alaph}');
     Expect(1, 1808, '\p{Joining_Group=:\AAlaph\z:}', "");;
     Expect(0, 1809, '\p{Joining_Group=:\AAlaph\z:}', "");;
     Expect(1, 1808, '\p{Joining_Group=alaph}', "");
@@ -53209,16 +53831,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1809, '\P{^Joining_Group=alaph}', "");
     Expect(1, 1808, '\p{Joining_Group=:\Aalaph\z:}', "");;
     Expect(0, 1809, '\p{Joining_Group=:\Aalaph\z:}', "");;
-    Expect(1, 1808, '\p{Joining_Group=	_Alaph}', "");
-    Expect(0, 1808, '\p{^Joining_Group=	_Alaph}', "");
-    Expect(0, 1808, '\P{Joining_Group=	_Alaph}', "");
-    Expect(1, 1808, '\P{^Joining_Group=	_Alaph}', "");
-    Expect(0, 1809, '\p{Joining_Group=	_Alaph}', "");
-    Expect(1, 1809, '\p{^Joining_Group=	_Alaph}', "");
-    Expect(1, 1809, '\P{Joining_Group=	_Alaph}', "");
-    Expect(0, 1809, '\P{^Joining_Group=	_Alaph}', "");
-    Error('\p{Jg=- ALAPH/a/}');
-    Error('\P{Jg=- ALAPH/a/}');
+    Expect(1, 1808, '\p{Joining_Group= 	ALAPH}', "");
+    Expect(0, 1808, '\p{^Joining_Group= 	ALAPH}', "");
+    Expect(0, 1808, '\P{Joining_Group= 	ALAPH}', "");
+    Expect(1, 1808, '\P{^Joining_Group= 	ALAPH}', "");
+    Expect(0, 1809, '\p{Joining_Group= 	ALAPH}', "");
+    Expect(1, 1809, '\p{^Joining_Group= 	ALAPH}', "");
+    Expect(1, 1809, '\P{Joining_Group= 	ALAPH}', "");
+    Expect(0, 1809, '\P{^Joining_Group= 	ALAPH}', "");
+    Error('\p{Jg=_/a/Alaph}');
+    Error('\P{Jg=_/a/Alaph}');
     Expect(1, 1808, '\p{Jg=:\AAlaph\z:}', "");;
     Expect(0, 1809, '\p{Jg=:\AAlaph\z:}', "");;
     Expect(1, 1808, '\p{Jg=alaph}', "");
@@ -53231,52 +53853,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1809, '\P{^Jg=alaph}', "");
     Expect(1, 1808, '\p{Jg=:\Aalaph\z:}', "");;
     Expect(0, 1809, '\p{Jg=:\Aalaph\z:}', "");;
-    Expect(1, 1808, '\p{Jg=_-Alaph}', "");
-    Expect(0, 1808, '\p{^Jg=_-Alaph}', "");
-    Expect(0, 1808, '\P{Jg=_-Alaph}', "");
-    Expect(1, 1808, '\P{^Jg=_-Alaph}', "");
-    Expect(0, 1809, '\p{Jg=_-Alaph}', "");
-    Expect(1, 1809, '\p{^Jg=_-Alaph}', "");
-    Expect(1, 1809, '\P{Jg=_-Alaph}', "");
-    Expect(0, 1809, '\P{^Jg=_-Alaph}', "");
-    Error('\p{Is_Joining_Group=_:=Alaph}');
-    Error('\P{Is_Joining_Group=_:=Alaph}');
-    Expect(1, 1808, '\p{Is_Joining_Group=alaph}', "");
-    Expect(0, 1808, '\p{^Is_Joining_Group=alaph}', "");
-    Expect(0, 1808, '\P{Is_Joining_Group=alaph}', "");
-    Expect(1, 1808, '\P{^Is_Joining_Group=alaph}', "");
-    Expect(0, 1809, '\p{Is_Joining_Group=alaph}', "");
-    Expect(1, 1809, '\p{^Is_Joining_Group=alaph}', "");
-    Expect(1, 1809, '\P{Is_Joining_Group=alaph}', "");
-    Expect(0, 1809, '\P{^Is_Joining_Group=alaph}', "");
-    Expect(1, 1808, '\p{Is_Joining_Group=-ALAPH}', "");
-    Expect(0, 1808, '\p{^Is_Joining_Group=-ALAPH}', "");
-    Expect(0, 1808, '\P{Is_Joining_Group=-ALAPH}', "");
-    Expect(1, 1808, '\P{^Is_Joining_Group=-ALAPH}', "");
-    Expect(0, 1809, '\p{Is_Joining_Group=-ALAPH}', "");
-    Expect(1, 1809, '\p{^Is_Joining_Group=-ALAPH}', "");
-    Expect(1, 1809, '\P{Is_Joining_Group=-ALAPH}', "");
-    Expect(0, 1809, '\P{^Is_Joining_Group=-ALAPH}', "");
-    Error('\p{Is_Jg=/a/_ALAPH}');
-    Error('\P{Is_Jg=/a/_ALAPH}');
-    Expect(1, 1808, '\p{Is_Jg:   alaph}', "");
-    Expect(0, 1808, '\p{^Is_Jg:   alaph}', "");
-    Expect(0, 1808, '\P{Is_Jg:   alaph}', "");
-    Expect(1, 1808, '\P{^Is_Jg:   alaph}', "");
-    Expect(0, 1809, '\p{Is_Jg:   alaph}', "");
-    Expect(1, 1809, '\p{^Is_Jg:   alaph}', "");
-    Expect(1, 1809, '\P{Is_Jg:   alaph}', "");
-    Expect(0, 1809, '\P{^Is_Jg:   alaph}', "");
-    Expect(1, 1808, '\p{Is_Jg=-alaph}', "");
-    Expect(0, 1808, '\p{^Is_Jg=-alaph}', "");
-    Expect(0, 1808, '\P{Is_Jg=-alaph}', "");
-    Expect(1, 1808, '\P{^Is_Jg=-alaph}', "");
-    Expect(0, 1809, '\p{Is_Jg=-alaph}', "");
-    Expect(1, 1809, '\p{^Is_Jg=-alaph}', "");
-    Expect(1, 1809, '\P{Is_Jg=-alaph}', "");
-    Expect(0, 1809, '\P{^Is_Jg=-alaph}', "");
-    Error('\p{Joining_Group:   := _Alef}');
-    Error('\P{Joining_Group:   := _Alef}');
+    Expect(1, 1808, '\p{Jg=__Alaph}', "");
+    Expect(0, 1808, '\p{^Jg=__Alaph}', "");
+    Expect(0, 1808, '\P{Jg=__Alaph}', "");
+    Expect(1, 1808, '\P{^Jg=__Alaph}', "");
+    Expect(0, 1809, '\p{Jg=__Alaph}', "");
+    Expect(1, 1809, '\p{^Jg=__Alaph}', "");
+    Expect(1, 1809, '\P{Jg=__Alaph}', "");
+    Expect(0, 1809, '\P{^Jg=__Alaph}', "");
+    Error('\p{Is_Joining_Group=  alaph/a/}');
+    Error('\P{Is_Joining_Group=  alaph/a/}');
+    Expect(1, 1808, '\p{Is_Joining_Group:	alaph}', "");
+    Expect(0, 1808, '\p{^Is_Joining_Group:	alaph}', "");
+    Expect(0, 1808, '\P{Is_Joining_Group:	alaph}', "");
+    Expect(1, 1808, '\P{^Is_Joining_Group:	alaph}', "");
+    Expect(0, 1809, '\p{Is_Joining_Group:	alaph}', "");
+    Expect(1, 1809, '\p{^Is_Joining_Group:	alaph}', "");
+    Expect(1, 1809, '\P{Is_Joining_Group:	alaph}', "");
+    Expect(0, 1809, '\P{^Is_Joining_Group:	alaph}', "");
+    Expect(1, 1808, '\p{Is_Joining_Group= -Alaph}', "");
+    Expect(0, 1808, '\p{^Is_Joining_Group= -Alaph}', "");
+    Expect(0, 1808, '\P{Is_Joining_Group= -Alaph}', "");
+    Expect(1, 1808, '\P{^Is_Joining_Group= -Alaph}', "");
+    Expect(0, 1809, '\p{Is_Joining_Group= -Alaph}', "");
+    Expect(1, 1809, '\p{^Is_Joining_Group= -Alaph}', "");
+    Expect(1, 1809, '\P{Is_Joining_Group= -Alaph}', "");
+    Expect(0, 1809, '\P{^Is_Joining_Group= -Alaph}', "");
+    Error('\p{Is_Jg:    /a/ALAPH}');
+    Error('\P{Is_Jg:    /a/ALAPH}');
+    Expect(1, 1808, '\p{Is_Jg=alaph}', "");
+    Expect(0, 1808, '\p{^Is_Jg=alaph}', "");
+    Expect(0, 1808, '\P{Is_Jg=alaph}', "");
+    Expect(1, 1808, '\P{^Is_Jg=alaph}', "");
+    Expect(0, 1809, '\p{Is_Jg=alaph}', "");
+    Expect(1, 1809, '\p{^Is_Jg=alaph}', "");
+    Expect(1, 1809, '\P{Is_Jg=alaph}', "");
+    Expect(0, 1809, '\P{^Is_Jg=alaph}', "");
+    Expect(1, 1808, '\p{Is_Jg= _Alaph}', "");
+    Expect(0, 1808, '\p{^Is_Jg= _Alaph}', "");
+    Expect(0, 1808, '\P{Is_Jg= _Alaph}', "");
+    Expect(1, 1808, '\P{^Is_Jg= _Alaph}', "");
+    Expect(0, 1809, '\p{Is_Jg= _Alaph}', "");
+    Expect(1, 1809, '\p{^Is_Jg= _Alaph}', "");
+    Expect(1, 1809, '\P{Is_Jg= _Alaph}', "");
+    Expect(0, 1809, '\P{^Is_Jg= _Alaph}', "");
+    Error('\p{Joining_Group= Alef/a/}');
+    Error('\P{Joining_Group= Alef/a/}');
     Expect(1, 2178, '\p{Joining_Group=:\AAlef\z:}', "");;
     Expect(0, 2179, '\p{Joining_Group=:\AAlef\z:}', "");;
     Expect(1, 2178, '\p{Joining_Group=alef}', "");
@@ -53289,16 +53911,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2179, '\P{^Joining_Group=alef}', "");
     Expect(1, 2178, '\p{Joining_Group=:\Aalef\z:}', "");;
     Expect(0, 2179, '\p{Joining_Group=:\Aalef\z:}', "");;
-    Expect(1, 2178, '\p{Joining_Group= -alef}', "");
-    Expect(0, 2178, '\p{^Joining_Group= -alef}', "");
-    Expect(0, 2178, '\P{Joining_Group= -alef}', "");
-    Expect(1, 2178, '\P{^Joining_Group= -alef}', "");
-    Expect(0, 2179, '\p{Joining_Group= -alef}', "");
-    Expect(1, 2179, '\p{^Joining_Group= -alef}', "");
-    Expect(1, 2179, '\P{Joining_Group= -alef}', "");
-    Expect(0, 2179, '\P{^Joining_Group= -alef}', "");
-    Error('\p{Jg= ALEF/a/}');
-    Error('\P{Jg= ALEF/a/}');
+    Expect(1, 2178, '\p{Joining_Group=-_Alef}', "");
+    Expect(0, 2178, '\p{^Joining_Group=-_Alef}', "");
+    Expect(0, 2178, '\P{Joining_Group=-_Alef}', "");
+    Expect(1, 2178, '\P{^Joining_Group=-_Alef}', "");
+    Expect(0, 2179, '\p{Joining_Group=-_Alef}', "");
+    Expect(1, 2179, '\p{^Joining_Group=-_Alef}', "");
+    Expect(1, 2179, '\P{Joining_Group=-_Alef}', "");
+    Expect(0, 2179, '\P{^Joining_Group=-_Alef}', "");
+    Error('\p{Jg= :=alef}');
+    Error('\P{Jg= :=alef}');
     Expect(1, 2178, '\p{Jg=:\AAlef\z:}', "");;
     Expect(0, 2179, '\p{Jg=:\AAlef\z:}', "");;
     Expect(1, 2178, '\p{Jg=alef}', "");
@@ -53311,16 +53933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2179, '\P{^Jg=alef}', "");
     Expect(1, 2178, '\p{Jg=:\Aalef\z:}', "");;
     Expect(0, 2179, '\p{Jg=:\Aalef\z:}', "");;
-    Expect(1, 2178, '\p{Jg=- Alef}', "");
-    Expect(0, 2178, '\p{^Jg=- Alef}', "");
-    Expect(0, 2178, '\P{Jg=- Alef}', "");
-    Expect(1, 2178, '\P{^Jg=- Alef}', "");
-    Expect(0, 2179, '\p{Jg=- Alef}', "");
-    Expect(1, 2179, '\p{^Jg=- Alef}', "");
-    Expect(1, 2179, '\P{Jg=- Alef}', "");
-    Expect(0, 2179, '\P{^Jg=- Alef}', "");
-    Error('\p{Is_Joining_Group:/a/__Alef}');
-    Error('\P{Is_Joining_Group:/a/__Alef}');
+    Expect(1, 2178, '\p{Jg=_	Alef}', "");
+    Expect(0, 2178, '\p{^Jg=_	Alef}', "");
+    Expect(0, 2178, '\P{Jg=_	Alef}', "");
+    Expect(1, 2178, '\P{^Jg=_	Alef}', "");
+    Expect(0, 2179, '\p{Jg=_	Alef}', "");
+    Expect(1, 2179, '\p{^Jg=_	Alef}', "");
+    Expect(1, 2179, '\P{Jg=_	Alef}', "");
+    Expect(0, 2179, '\P{^Jg=_	Alef}', "");
+    Error('\p{Is_Joining_Group=_:=Alef}');
+    Error('\P{Is_Joining_Group=_:=Alef}');
     Expect(1, 2178, '\p{Is_Joining_Group=alef}', "");
     Expect(0, 2178, '\p{^Is_Joining_Group=alef}', "");
     Expect(0, 2178, '\P{Is_Joining_Group=alef}', "");
@@ -53329,16 +53951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2179, '\p{^Is_Joining_Group=alef}', "");
     Expect(1, 2179, '\P{Is_Joining_Group=alef}', "");
     Expect(0, 2179, '\P{^Is_Joining_Group=alef}', "");
-    Expect(1, 2178, '\p{Is_Joining_Group= _ALEF}', "");
-    Expect(0, 2178, '\p{^Is_Joining_Group= _ALEF}', "");
-    Expect(0, 2178, '\P{Is_Joining_Group= _ALEF}', "");
-    Expect(1, 2178, '\P{^Is_Joining_Group= _ALEF}', "");
-    Expect(0, 2179, '\p{Is_Joining_Group= _ALEF}', "");
-    Expect(1, 2179, '\p{^Is_Joining_Group= _ALEF}', "");
-    Expect(1, 2179, '\P{Is_Joining_Group= _ALEF}', "");
-    Expect(0, 2179, '\P{^Is_Joining_Group= _ALEF}', "");
-    Error('\p{Is_Jg=alef:=}');
-    Error('\P{Is_Jg=alef:=}');
+    Expect(1, 2178, '\p{Is_Joining_Group=	_Alef}', "");
+    Expect(0, 2178, '\p{^Is_Joining_Group=	_Alef}', "");
+    Expect(0, 2178, '\P{Is_Joining_Group=	_Alef}', "");
+    Expect(1, 2178, '\P{^Is_Joining_Group=	_Alef}', "");
+    Expect(0, 2179, '\p{Is_Joining_Group=	_Alef}', "");
+    Expect(1, 2179, '\p{^Is_Joining_Group=	_Alef}', "");
+    Expect(1, 2179, '\P{Is_Joining_Group=	_Alef}', "");
+    Expect(0, 2179, '\P{^Is_Joining_Group=	_Alef}', "");
+    Error('\p{Is_Jg:   /a/ Alef}');
+    Error('\P{Is_Jg:   /a/ Alef}');
     Expect(1, 2178, '\p{Is_Jg=alef}', "");
     Expect(0, 2178, '\p{^Is_Jg=alef}', "");
     Expect(0, 2178, '\P{Is_Jg=alef}', "");
@@ -53347,16 +53969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2179, '\p{^Is_Jg=alef}', "");
     Expect(1, 2179, '\P{Is_Jg=alef}', "");
     Expect(0, 2179, '\P{^Is_Jg=alef}', "");
-    Expect(1, 2178, '\p{Is_Jg=_Alef}', "");
-    Expect(0, 2178, '\p{^Is_Jg=_Alef}', "");
-    Expect(0, 2178, '\P{Is_Jg=_Alef}', "");
-    Expect(1, 2178, '\P{^Is_Jg=_Alef}', "");
-    Expect(0, 2179, '\p{Is_Jg=_Alef}', "");
-    Expect(1, 2179, '\p{^Is_Jg=_Alef}', "");
-    Expect(1, 2179, '\P{Is_Jg=_Alef}', "");
-    Expect(0, 2179, '\P{^Is_Jg=_Alef}', "");
-    Error('\p{Joining_Group=:= _Beh}');
-    Error('\P{Joining_Group=:= _Beh}');
+    Expect(1, 2178, '\p{Is_Jg= Alef}', "");
+    Expect(0, 2178, '\p{^Is_Jg= Alef}', "");
+    Expect(0, 2178, '\P{Is_Jg= Alef}', "");
+    Expect(1, 2178, '\P{^Is_Jg= Alef}', "");
+    Expect(0, 2179, '\p{Is_Jg= Alef}', "");
+    Expect(1, 2179, '\p{^Is_Jg= Alef}', "");
+    Expect(1, 2179, '\P{Is_Jg= Alef}', "");
+    Expect(0, 2179, '\P{^Is_Jg= Alef}', "");
+    Error('\p{Joining_Group=/a/ -BEH}');
+    Error('\P{Joining_Group=/a/ -BEH}');
     Expect(1, 2240, '\p{Joining_Group=:\ABeh\z:}', "");;
     Expect(0, 2241, '\p{Joining_Group=:\ABeh\z:}', "");;
     Expect(1, 2240, '\p{Joining_Group=beh}', "");
@@ -53369,16 +53991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2241, '\P{^Joining_Group=beh}', "");
     Expect(1, 2240, '\p{Joining_Group=:\Abeh\z:}', "");;
     Expect(0, 2241, '\p{Joining_Group=:\Abeh\z:}', "");;
-    Expect(1, 2240, '\p{Joining_Group=_	BEH}', "");
-    Expect(0, 2240, '\p{^Joining_Group=_	BEH}', "");
-    Expect(0, 2240, '\P{Joining_Group=_	BEH}', "");
-    Expect(1, 2240, '\P{^Joining_Group=_	BEH}', "");
-    Expect(0, 2241, '\p{Joining_Group=_	BEH}', "");
-    Expect(1, 2241, '\p{^Joining_Group=_	BEH}', "");
-    Expect(1, 2241, '\P{Joining_Group=_	BEH}', "");
-    Expect(0, 2241, '\P{^Joining_Group=_	BEH}', "");
-    Error('\p{Jg=- BEH/a/}');
-    Error('\P{Jg=- BEH/a/}');
+    Expect(1, 2240, '\p{Joining_Group= beh}', "");
+    Expect(0, 2240, '\p{^Joining_Group= beh}', "");
+    Expect(0, 2240, '\P{Joining_Group= beh}', "");
+    Expect(1, 2240, '\P{^Joining_Group= beh}', "");
+    Expect(0, 2241, '\p{Joining_Group= beh}', "");
+    Expect(1, 2241, '\p{^Joining_Group= beh}', "");
+    Expect(1, 2241, '\P{Joining_Group= beh}', "");
+    Expect(0, 2241, '\P{^Joining_Group= beh}', "");
+    Error('\p{Jg=:=__Beh}');
+    Error('\P{Jg=:=__Beh}');
     Expect(1, 2240, '\p{Jg=:\ABeh\z:}', "");;
     Expect(0, 2241, '\p{Jg=:\ABeh\z:}', "");;
     Expect(1, 2240, '\p{Jg=beh}', "");
@@ -53391,16 +54013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2241, '\P{^Jg=beh}', "");
     Expect(1, 2240, '\p{Jg=:\Abeh\z:}', "");;
     Expect(0, 2241, '\p{Jg=:\Abeh\z:}', "");;
-    Expect(1, 2240, '\p{Jg=	Beh}', "");
-    Expect(0, 2240, '\p{^Jg=	Beh}', "");
-    Expect(0, 2240, '\P{Jg=	Beh}', "");
-    Expect(1, 2240, '\P{^Jg=	Beh}', "");
-    Expect(0, 2241, '\p{Jg=	Beh}', "");
-    Expect(1, 2241, '\p{^Jg=	Beh}', "");
-    Expect(1, 2241, '\P{Jg=	Beh}', "");
-    Expect(0, 2241, '\P{^Jg=	Beh}', "");
-    Error('\p{Is_Joining_Group=:=	_Beh}');
-    Error('\P{Is_Joining_Group=:=	_Beh}');
+    Expect(1, 2240, '\p{Jg=-beh}', "");
+    Expect(0, 2240, '\p{^Jg=-beh}', "");
+    Expect(0, 2240, '\P{Jg=-beh}', "");
+    Expect(1, 2240, '\P{^Jg=-beh}', "");
+    Expect(0, 2241, '\p{Jg=-beh}', "");
+    Expect(1, 2241, '\p{^Jg=-beh}', "");
+    Expect(1, 2241, '\P{Jg=-beh}', "");
+    Expect(0, 2241, '\P{^Jg=-beh}', "");
+    Error('\p{Is_Joining_Group=/a/	Beh}');
+    Error('\P{Is_Joining_Group=/a/	Beh}');
     Expect(1, 2240, '\p{Is_Joining_Group=beh}', "");
     Expect(0, 2240, '\p{^Is_Joining_Group=beh}', "");
     Expect(0, 2240, '\P{Is_Joining_Group=beh}', "");
@@ -53409,16 +54031,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2241, '\p{^Is_Joining_Group=beh}', "");
     Expect(1, 2241, '\P{Is_Joining_Group=beh}', "");
     Expect(0, 2241, '\P{^Is_Joining_Group=beh}', "");
-    Expect(1, 2240, '\p{Is_Joining_Group=- BEH}', "");
-    Expect(0, 2240, '\p{^Is_Joining_Group=- BEH}', "");
-    Expect(0, 2240, '\P{Is_Joining_Group=- BEH}', "");
-    Expect(1, 2240, '\P{^Is_Joining_Group=- BEH}', "");
-    Expect(0, 2241, '\p{Is_Joining_Group=- BEH}', "");
-    Expect(1, 2241, '\p{^Is_Joining_Group=- BEH}', "");
-    Expect(1, 2241, '\P{Is_Joining_Group=- BEH}', "");
-    Expect(0, 2241, '\P{^Is_Joining_Group=- BEH}', "");
-    Error('\p{Is_Jg=-Beh/a/}');
-    Error('\P{Is_Jg=-Beh/a/}');
+    Expect(1, 2240, '\p{Is_Joining_Group:     beh}', "");
+    Expect(0, 2240, '\p{^Is_Joining_Group:     beh}', "");
+    Expect(0, 2240, '\P{Is_Joining_Group:     beh}', "");
+    Expect(1, 2240, '\P{^Is_Joining_Group:     beh}', "");
+    Expect(0, 2241, '\p{Is_Joining_Group:     beh}', "");
+    Expect(1, 2241, '\p{^Is_Joining_Group:     beh}', "");
+    Expect(1, 2241, '\P{Is_Joining_Group:     beh}', "");
+    Expect(0, 2241, '\P{^Is_Joining_Group:     beh}', "");
+    Error('\p{Is_Jg=/a/Beh}');
+    Error('\P{Is_Jg=/a/Beh}');
     Expect(1, 2240, '\p{Is_Jg=beh}', "");
     Expect(0, 2240, '\p{^Is_Jg=beh}', "");
     Expect(0, 2240, '\P{Is_Jg=beh}', "");
@@ -53427,8 +54049,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2241, '\p{^Is_Jg=beh}', "");
     Expect(1, 2241, '\P{Is_Jg=beh}', "");
     Expect(0, 2241, '\P{^Is_Jg=beh}', "");
-    Error('\p{Joining_Group=/a/_Beth}');
-    Error('\P{Joining_Group=/a/_Beth}');
+    Expect(1, 2240, '\p{Is_Jg=- Beh}', "");
+    Expect(0, 2240, '\p{^Is_Jg=- Beh}', "");
+    Expect(0, 2240, '\P{Is_Jg=- Beh}', "");
+    Expect(1, 2240, '\P{^Is_Jg=- Beh}', "");
+    Expect(0, 2241, '\p{Is_Jg=- Beh}', "");
+    Expect(1, 2241, '\p{^Is_Jg=- Beh}', "");
+    Expect(1, 2241, '\P{Is_Jg=- Beh}', "");
+    Expect(0, 2241, '\P{^Is_Jg=- Beh}', "");
+    Error('\p{Joining_Group=:=-_BETH}');
+    Error('\P{Joining_Group=:=-_BETH}');
     Expect(1, 1837, '\p{Joining_Group=:\ABeth\z:}', "");;
     Expect(0, 1838, '\p{Joining_Group=:\ABeth\z:}', "");;
     Expect(1, 1837, '\p{Joining_Group=beth}', "");
@@ -53441,16 +54071,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1838, '\P{^Joining_Group=beth}', "");
     Expect(1, 1837, '\p{Joining_Group=:\Abeth\z:}', "");;
     Expect(0, 1838, '\p{Joining_Group=:\Abeth\z:}', "");;
-    Expect(1, 1837, '\p{Joining_Group=__Beth}', "");
-    Expect(0, 1837, '\p{^Joining_Group=__Beth}', "");
-    Expect(0, 1837, '\P{Joining_Group=__Beth}', "");
-    Expect(1, 1837, '\P{^Joining_Group=__Beth}', "");
-    Expect(0, 1838, '\p{Joining_Group=__Beth}', "");
-    Expect(1, 1838, '\p{^Joining_Group=__Beth}', "");
-    Expect(1, 1838, '\P{Joining_Group=__Beth}', "");
-    Expect(0, 1838, '\P{^Joining_Group=__Beth}', "");
-    Error('\p{Jg=:=--BETH}');
-    Error('\P{Jg=:=--BETH}');
+    Error('\p{Jg=-	beth:=}');
+    Error('\P{Jg=-	beth:=}');
     Expect(1, 1837, '\p{Jg=:\ABeth\z:}', "");;
     Expect(0, 1838, '\p{Jg=:\ABeth\z:}', "");;
     Expect(1, 1837, '\p{Jg=beth}', "");
@@ -53463,16 +54085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1838, '\P{^Jg=beth}', "");
     Expect(1, 1837, '\p{Jg=:\Abeth\z:}', "");;
     Expect(0, 1838, '\p{Jg=:\Abeth\z:}', "");;
-    Expect(1, 1837, '\p{Jg=-Beth}', "");
-    Expect(0, 1837, '\p{^Jg=-Beth}', "");
-    Expect(0, 1837, '\P{Jg=-Beth}', "");
-    Expect(1, 1837, '\P{^Jg=-Beth}', "");
-    Expect(0, 1838, '\p{Jg=-Beth}', "");
-    Expect(1, 1838, '\p{^Jg=-Beth}', "");
-    Expect(1, 1838, '\P{Jg=-Beth}', "");
-    Expect(0, 1838, '\P{^Jg=-Beth}', "");
-    Error('\p{Is_Joining_Group= BETH:=}');
-    Error('\P{Is_Joining_Group= BETH:=}');
+    Expect(1, 1837, '\p{Jg=_BETH}', "");
+    Expect(0, 1837, '\p{^Jg=_BETH}', "");
+    Expect(0, 1837, '\P{Jg=_BETH}', "");
+    Expect(1, 1837, '\P{^Jg=_BETH}', "");
+    Expect(0, 1838, '\p{Jg=_BETH}', "");
+    Expect(1, 1838, '\p{^Jg=_BETH}', "");
+    Expect(1, 1838, '\P{Jg=_BETH}', "");
+    Expect(0, 1838, '\P{^Jg=_BETH}', "");
+    Error('\p{Is_Joining_Group=:=	beth}');
+    Error('\P{Is_Joining_Group=:=	beth}');
     Expect(1, 1837, '\p{Is_Joining_Group=beth}', "");
     Expect(0, 1837, '\p{^Is_Joining_Group=beth}', "");
     Expect(0, 1837, '\P{Is_Joining_Group=beth}', "");
@@ -53481,56 +54103,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1838, '\p{^Is_Joining_Group=beth}', "");
     Expect(1, 1838, '\P{Is_Joining_Group=beth}', "");
     Expect(0, 1838, '\P{^Is_Joining_Group=beth}', "");
-    Expect(1, 1837, '\p{Is_Joining_Group=_ Beth}', "");
-    Expect(0, 1837, '\p{^Is_Joining_Group=_ Beth}', "");
-    Expect(0, 1837, '\P{Is_Joining_Group=_ Beth}', "");
-    Expect(1, 1837, '\P{^Is_Joining_Group=_ Beth}', "");
-    Expect(0, 1838, '\p{Is_Joining_Group=_ Beth}', "");
-    Expect(1, 1838, '\p{^Is_Joining_Group=_ Beth}', "");
-    Expect(1, 1838, '\P{Is_Joining_Group=_ Beth}', "");
-    Expect(0, 1838, '\P{^Is_Joining_Group=_ Beth}', "");
-    Error('\p{Is_Jg=	beth:=}');
-    Error('\P{Is_Jg=	beth:=}');
-    Expect(1, 1837, '\p{Is_Jg:beth}', "");
-    Expect(0, 1837, '\p{^Is_Jg:beth}', "");
-    Expect(0, 1837, '\P{Is_Jg:beth}', "");
-    Expect(1, 1837, '\P{^Is_Jg:beth}', "");
-    Expect(0, 1838, '\p{Is_Jg:beth}', "");
-    Expect(1, 1838, '\p{^Is_Jg:beth}', "");
-    Expect(1, 1838, '\P{Is_Jg:beth}', "");
-    Expect(0, 1838, '\P{^Is_Jg:beth}', "");
-    Expect(1, 1837, '\p{Is_Jg=_ BETH}', "");
-    Expect(0, 1837, '\p{^Is_Jg=_ BETH}', "");
-    Expect(0, 1837, '\P{Is_Jg=_ BETH}', "");
-    Expect(1, 1837, '\P{^Is_Jg=_ BETH}', "");
-    Expect(0, 1838, '\p{Is_Jg=_ BETH}', "");
-    Expect(1, 1838, '\p{^Is_Jg=_ BETH}', "");
-    Expect(1, 1838, '\P{Is_Jg=_ BETH}', "");
-    Expect(0, 1838, '\P{^Is_Jg=_ BETH}', "");
-    Error('\p{Joining_Group=- Burushaski_Yeh_Barree:=}');
-    Error('\P{Joining_Group=- Burushaski_Yeh_Barree:=}');
+    Expect(1, 1837, '\p{Is_Joining_Group= 	Beth}', "");
+    Expect(0, 1837, '\p{^Is_Joining_Group= 	Beth}', "");
+    Expect(0, 1837, '\P{Is_Joining_Group= 	Beth}', "");
+    Expect(1, 1837, '\P{^Is_Joining_Group= 	Beth}', "");
+    Expect(0, 1838, '\p{Is_Joining_Group= 	Beth}', "");
+    Expect(1, 1838, '\p{^Is_Joining_Group= 	Beth}', "");
+    Expect(1, 1838, '\P{Is_Joining_Group= 	Beth}', "");
+    Expect(0, 1838, '\P{^Is_Joining_Group= 	Beth}', "");
+    Error('\p{Is_Jg=-_Beth:=}');
+    Error('\P{Is_Jg=-_Beth:=}');
+    Expect(1, 1837, '\p{Is_Jg=beth}', "");
+    Expect(0, 1837, '\p{^Is_Jg=beth}', "");
+    Expect(0, 1837, '\P{Is_Jg=beth}', "");
+    Expect(1, 1837, '\P{^Is_Jg=beth}', "");
+    Expect(0, 1838, '\p{Is_Jg=beth}', "");
+    Expect(1, 1838, '\p{^Is_Jg=beth}', "");
+    Expect(1, 1838, '\P{Is_Jg=beth}', "");
+    Expect(0, 1838, '\P{^Is_Jg=beth}', "");
+    Expect(1, 1837, '\p{Is_Jg=-beth}', "");
+    Expect(0, 1837, '\p{^Is_Jg=-beth}', "");
+    Expect(0, 1837, '\P{Is_Jg=-beth}', "");
+    Expect(1, 1837, '\P{^Is_Jg=-beth}', "");
+    Expect(0, 1838, '\p{Is_Jg=-beth}', "");
+    Expect(1, 1838, '\p{^Is_Jg=-beth}', "");
+    Expect(1, 1838, '\P{Is_Jg=-beth}', "");
+    Expect(0, 1838, '\P{^Is_Jg=-beth}', "");
+    Error('\p{Joining_Group:   	:=burushaski_YEH_barree}');
+    Error('\P{Joining_Group:   	:=burushaski_YEH_barree}');
     Expect(1, 1915, '\p{Joining_Group=:\ABurushaski_Yeh_Barree\z:}', "");;
     Expect(0, 1916, '\p{Joining_Group=:\ABurushaski_Yeh_Barree\z:}', "");;
-    Expect(1, 1915, '\p{Joining_Group=burushaskiyehbarree}', "");
-    Expect(0, 1915, '\p{^Joining_Group=burushaskiyehbarree}', "");
-    Expect(0, 1915, '\P{Joining_Group=burushaskiyehbarree}', "");
-    Expect(1, 1915, '\P{^Joining_Group=burushaskiyehbarree}', "");
-    Expect(0, 1916, '\p{Joining_Group=burushaskiyehbarree}', "");
-    Expect(1, 1916, '\p{^Joining_Group=burushaskiyehbarree}', "");
-    Expect(1, 1916, '\P{Joining_Group=burushaskiyehbarree}', "");
-    Expect(0, 1916, '\P{^Joining_Group=burushaskiyehbarree}', "");
+    Expect(1, 1915, '\p{Joining_Group: burushaskiyehbarree}', "");
+    Expect(0, 1915, '\p{^Joining_Group: burushaskiyehbarree}', "");
+    Expect(0, 1915, '\P{Joining_Group: burushaskiyehbarree}', "");
+    Expect(1, 1915, '\P{^Joining_Group: burushaskiyehbarree}', "");
+    Expect(0, 1916, '\p{Joining_Group: burushaskiyehbarree}', "");
+    Expect(1, 1916, '\p{^Joining_Group: burushaskiyehbarree}', "");
+    Expect(1, 1916, '\P{Joining_Group: burushaskiyehbarree}', "");
+    Expect(0, 1916, '\P{^Joining_Group: burushaskiyehbarree}', "");
     Expect(1, 1915, '\p{Joining_Group=:\Aburushaskiyehbarree\z:}', "");;
     Expect(0, 1916, '\p{Joining_Group=:\Aburushaskiyehbarree\z:}', "");;
-    Expect(1, 1915, '\p{Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(0, 1915, '\p{^Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(0, 1915, '\P{Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(1, 1915, '\P{^Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(0, 1916, '\p{Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(1, 1916, '\p{^Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(1, 1916, '\P{Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Expect(0, 1916, '\P{^Joining_Group=-_Burushaski_Yeh_Barree}', "");
-    Error('\p{Jg=  Burushaski_yeh_Barree:=}');
-    Error('\P{Jg=  Burushaski_yeh_Barree:=}');
+    Expect(1, 1915, '\p{Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1915, '\p{^Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1915, '\P{Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(1, 1915, '\P{^Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1916, '\p{Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(1, 1916, '\p{^Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(1, 1916, '\P{Joining_Group= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1916, '\P{^Joining_Group= -Burushaski_YEH_Barree}', "");
+    Error('\p{Jg=	BURUSHASKI_Yeh_barree/a/}');
+    Error('\P{Jg=	BURUSHASKI_Yeh_barree/a/}');
     Expect(1, 1915, '\p{Jg=:\ABurushaski_Yeh_Barree\z:}', "");;
     Expect(0, 1916, '\p{Jg=:\ABurushaski_Yeh_Barree\z:}', "");;
     Expect(1, 1915, '\p{Jg=burushaskiyehbarree}', "");
@@ -53543,16 +54165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1916, '\P{^Jg=burushaskiyehbarree}', "");
     Expect(1, 1915, '\p{Jg=:\Aburushaskiyehbarree\z:}', "");;
     Expect(0, 1916, '\p{Jg=:\Aburushaskiyehbarree\z:}', "");;
-    Expect(1, 1915, '\p{Jg= Burushaski_Yeh_barree}', "");
-    Expect(0, 1915, '\p{^Jg= Burushaski_Yeh_barree}', "");
-    Expect(0, 1915, '\P{Jg= Burushaski_Yeh_barree}', "");
-    Expect(1, 1915, '\P{^Jg= Burushaski_Yeh_barree}', "");
-    Expect(0, 1916, '\p{Jg= Burushaski_Yeh_barree}', "");
-    Expect(1, 1916, '\p{^Jg= Burushaski_Yeh_barree}', "");
-    Expect(1, 1916, '\P{Jg= Burushaski_Yeh_barree}', "");
-    Expect(0, 1916, '\P{^Jg= Burushaski_Yeh_barree}', "");
-    Error('\p{Is_Joining_Group=/a/_-burushaski_YEH_Barree}');
-    Error('\P{Is_Joining_Group=/a/_-burushaski_YEH_Barree}');
+    Expect(1, 1915, '\p{Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(0, 1915, '\p{^Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(0, 1915, '\P{Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(1, 1915, '\P{^Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(0, 1916, '\p{Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(1, 1916, '\p{^Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(1, 1916, '\P{Jg=_-burushaski_Yeh_Barree}', "");
+    Expect(0, 1916, '\P{^Jg=_-burushaski_Yeh_Barree}', "");
+    Error('\p{Is_Joining_Group= /a/BURUSHASKI_Yeh_Barree}');
+    Error('\P{Is_Joining_Group= /a/BURUSHASKI_Yeh_Barree}');
     Expect(1, 1915, '\p{Is_Joining_Group=burushaskiyehbarree}', "");
     Expect(0, 1915, '\p{^Is_Joining_Group=burushaskiyehbarree}', "");
     Expect(0, 1915, '\P{Is_Joining_Group=burushaskiyehbarree}', "");
@@ -53561,16 +54183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1916, '\p{^Is_Joining_Group=burushaskiyehbarree}', "");
     Expect(1, 1916, '\P{Is_Joining_Group=burushaskiyehbarree}', "");
     Expect(0, 1916, '\P{^Is_Joining_Group=burushaskiyehbarree}', "");
-    Expect(1, 1915, '\p{Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(0, 1915, '\p{^Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(0, 1915, '\P{Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(1, 1915, '\P{^Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(0, 1916, '\p{Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(1, 1916, '\p{^Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(1, 1916, '\P{Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Expect(0, 1916, '\P{^Is_Joining_Group=	 Burushaski_yeh_barree}', "");
-    Error('\p{Is_Jg= Burushaski_yeh_barree:=}');
-    Error('\P{Is_Jg= Burushaski_yeh_barree:=}');
+    Expect(1, 1915, '\p{Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(0, 1915, '\p{^Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(0, 1915, '\P{Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(1, 1915, '\P{^Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(0, 1916, '\p{Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(1, 1916, '\p{^Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(1, 1916, '\P{Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Expect(0, 1916, '\P{^Is_Joining_Group=_-burushaski_YEH_barree}', "");
+    Error('\p{Is_Jg=/a/	BURUSHASKI_Yeh_barree}');
+    Error('\P{Is_Jg=/a/	BURUSHASKI_Yeh_barree}');
     Expect(1, 1915, '\p{Is_Jg=burushaskiyehbarree}', "");
     Expect(0, 1915, '\p{^Is_Jg=burushaskiyehbarree}', "");
     Expect(0, 1915, '\P{Is_Jg=burushaskiyehbarree}', "");
@@ -53579,16 +54201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1916, '\p{^Is_Jg=burushaskiyehbarree}', "");
     Expect(1, 1916, '\P{Is_Jg=burushaskiyehbarree}', "");
     Expect(0, 1916, '\P{^Is_Jg=burushaskiyehbarree}', "");
-    Expect(1, 1915, '\p{Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(0, 1915, '\p{^Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(0, 1915, '\P{Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(1, 1915, '\P{^Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(0, 1916, '\p{Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(1, 1916, '\p{^Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(1, 1916, '\P{Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Expect(0, 1916, '\P{^Is_Jg:__BURUSHASKI_YEH_barree}', "");
-    Error('\p{Joining_Group=/a/ _Dal}');
-    Error('\P{Joining_Group=/a/ _Dal}');
+    Expect(1, 1915, '\p{Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1915, '\p{^Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1915, '\P{Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(1, 1915, '\P{^Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1916, '\p{Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(1, 1916, '\p{^Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(1, 1916, '\P{Is_Jg= -Burushaski_YEH_Barree}', "");
+    Expect(0, 1916, '\P{^Is_Jg= -Burushaski_YEH_Barree}', "");
+    Error('\p{Joining_Group=:= -dal}');
+    Error('\P{Joining_Group=:= -dal}');
     Expect(1, 2222, '\p{Joining_Group=:\ADal\z:}', "");;
     Expect(0, 2223, '\p{Joining_Group=:\ADal\z:}', "");;
     Expect(1, 2222, '\p{Joining_Group=dal}', "");
@@ -53601,16 +54223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2223, '\P{^Joining_Group=dal}', "");
     Expect(1, 2222, '\p{Joining_Group=:\Adal\z:}', "");;
     Expect(0, 2223, '\p{Joining_Group=:\Adal\z:}', "");;
-    Expect(1, 2222, '\p{Joining_Group:	--Dal}', "");
-    Expect(0, 2222, '\p{^Joining_Group:	--Dal}', "");
-    Expect(0, 2222, '\P{Joining_Group:	--Dal}', "");
-    Expect(1, 2222, '\P{^Joining_Group:	--Dal}', "");
-    Expect(0, 2223, '\p{Joining_Group:	--Dal}', "");
-    Expect(1, 2223, '\p{^Joining_Group:	--Dal}', "");
-    Expect(1, 2223, '\P{Joining_Group:	--Dal}', "");
-    Expect(0, 2223, '\P{^Joining_Group:	--Dal}', "");
-    Error('\p{Jg=__DAL/a/}');
-    Error('\P{Jg=__DAL/a/}');
+    Expect(1, 2222, '\p{Joining_Group=_Dal}', "");
+    Expect(0, 2222, '\p{^Joining_Group=_Dal}', "");
+    Expect(0, 2222, '\P{Joining_Group=_Dal}', "");
+    Expect(1, 2222, '\P{^Joining_Group=_Dal}', "");
+    Expect(0, 2223, '\p{Joining_Group=_Dal}', "");
+    Expect(1, 2223, '\p{^Joining_Group=_Dal}', "");
+    Expect(1, 2223, '\P{Joining_Group=_Dal}', "");
+    Expect(0, 2223, '\P{^Joining_Group=_Dal}', "");
+    Error('\p{Jg=/a/ _Dal}');
+    Error('\P{Jg=/a/ _Dal}');
     Expect(1, 2222, '\p{Jg=:\ADal\z:}', "");;
     Expect(0, 2223, '\p{Jg=:\ADal\z:}', "");;
     Expect(1, 2222, '\p{Jg=dal}', "");
@@ -53623,74 +54245,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2223, '\P{^Jg=dal}', "");
     Expect(1, 2222, '\p{Jg=:\Adal\z:}', "");;
     Expect(0, 2223, '\p{Jg=:\Adal\z:}', "");;
-    Expect(1, 2222, '\p{Jg=	DAL}', "");
-    Expect(0, 2222, '\p{^Jg=	DAL}', "");
-    Expect(0, 2222, '\P{Jg=	DAL}', "");
-    Expect(1, 2222, '\P{^Jg=	DAL}', "");
-    Expect(0, 2223, '\p{Jg=	DAL}', "");
-    Expect(1, 2223, '\p{^Jg=	DAL}', "");
-    Expect(1, 2223, '\P{Jg=	DAL}', "");
-    Expect(0, 2223, '\P{^Jg=	DAL}', "");
-    Error('\p{Is_Joining_Group=	_Dal:=}');
-    Error('\P{Is_Joining_Group=	_Dal:=}');
-    Expect(1, 2222, '\p{Is_Joining_Group=dal}', "");
-    Expect(0, 2222, '\p{^Is_Joining_Group=dal}', "");
-    Expect(0, 2222, '\P{Is_Joining_Group=dal}', "");
-    Expect(1, 2222, '\P{^Is_Joining_Group=dal}', "");
-    Expect(0, 2223, '\p{Is_Joining_Group=dal}', "");
-    Expect(1, 2223, '\p{^Is_Joining_Group=dal}', "");
-    Expect(1, 2223, '\P{Is_Joining_Group=dal}', "");
-    Expect(0, 2223, '\P{^Is_Joining_Group=dal}', "");
-    Expect(1, 2222, '\p{Is_Joining_Group=-Dal}', "");
-    Expect(0, 2222, '\p{^Is_Joining_Group=-Dal}', "");
-    Expect(0, 2222, '\P{Is_Joining_Group=-Dal}', "");
-    Expect(1, 2222, '\P{^Is_Joining_Group=-Dal}', "");
-    Expect(0, 2223, '\p{Is_Joining_Group=-Dal}', "");
-    Expect(1, 2223, '\p{^Is_Joining_Group=-Dal}', "");
-    Expect(1, 2223, '\P{Is_Joining_Group=-Dal}', "");
-    Expect(0, 2223, '\P{^Is_Joining_Group=-Dal}', "");
-    Error('\p{Is_Jg=_-Dal:=}');
-    Error('\P{Is_Jg=_-Dal:=}');
-    Expect(1, 2222, '\p{Is_Jg=dal}', "");
-    Expect(0, 2222, '\p{^Is_Jg=dal}', "");
-    Expect(0, 2222, '\P{Is_Jg=dal}', "");
-    Expect(1, 2222, '\P{^Is_Jg=dal}', "");
-    Expect(0, 2223, '\p{Is_Jg=dal}', "");
-    Expect(1, 2223, '\p{^Is_Jg=dal}', "");
-    Expect(1, 2223, '\P{Is_Jg=dal}', "");
-    Expect(0, 2223, '\P{^Is_Jg=dal}', "");
-    Expect(1, 2222, '\p{Is_Jg=Dal}', "");
-    Expect(0, 2222, '\p{^Is_Jg=Dal}', "");
-    Expect(0, 2222, '\P{Is_Jg=Dal}', "");
-    Expect(1, 2222, '\P{^Is_Jg=Dal}', "");
-    Expect(0, 2223, '\p{Is_Jg=Dal}', "");
-    Expect(1, 2223, '\p{^Is_Jg=Dal}', "");
-    Expect(1, 2223, '\P{Is_Jg=Dal}', "");
-    Expect(0, 2223, '\P{^Is_Jg=Dal}', "");
-    Error('\p{Joining_Group: /a/-_DALATH_Rish}');
-    Error('\P{Joining_Group: /a/-_DALATH_Rish}');
+    Expect(1, 2222, '\p{Jg= -dal}', "");
+    Expect(0, 2222, '\p{^Jg= -dal}', "");
+    Expect(0, 2222, '\P{Jg= -dal}', "");
+    Expect(1, 2222, '\P{^Jg= -dal}', "");
+    Expect(0, 2223, '\p{Jg= -dal}', "");
+    Expect(1, 2223, '\p{^Jg= -dal}', "");
+    Expect(1, 2223, '\P{Jg= -dal}', "");
+    Expect(0, 2223, '\P{^Jg= -dal}', "");
+    Error('\p{Is_Joining_Group=:=	 Dal}');
+    Error('\P{Is_Joining_Group=:=	 Dal}');
+    Expect(1, 2222, '\p{Is_Joining_Group:   dal}', "");
+    Expect(0, 2222, '\p{^Is_Joining_Group:   dal}', "");
+    Expect(0, 2222, '\P{Is_Joining_Group:   dal}', "");
+    Expect(1, 2222, '\P{^Is_Joining_Group:   dal}', "");
+    Expect(0, 2223, '\p{Is_Joining_Group:   dal}', "");
+    Expect(1, 2223, '\p{^Is_Joining_Group:   dal}', "");
+    Expect(1, 2223, '\P{Is_Joining_Group:   dal}', "");
+    Expect(0, 2223, '\P{^Is_Joining_Group:   dal}', "");
+    Expect(1, 2222, '\p{Is_Joining_Group= dal}', "");
+    Expect(0, 2222, '\p{^Is_Joining_Group= dal}', "");
+    Expect(0, 2222, '\P{Is_Joining_Group= dal}', "");
+    Expect(1, 2222, '\P{^Is_Joining_Group= dal}', "");
+    Expect(0, 2223, '\p{Is_Joining_Group= dal}', "");
+    Expect(1, 2223, '\p{^Is_Joining_Group= dal}', "");
+    Expect(1, 2223, '\P{Is_Joining_Group= dal}', "");
+    Expect(0, 2223, '\P{^Is_Joining_Group= dal}', "");
+    Error('\p{Is_Jg=:= dal}');
+    Error('\P{Is_Jg=:= dal}');
+    Expect(1, 2222, '\p{Is_Jg:dal}', "");
+    Expect(0, 2222, '\p{^Is_Jg:dal}', "");
+    Expect(0, 2222, '\P{Is_Jg:dal}', "");
+    Expect(1, 2222, '\P{^Is_Jg:dal}', "");
+    Expect(0, 2223, '\p{Is_Jg:dal}', "");
+    Expect(1, 2223, '\p{^Is_Jg:dal}', "");
+    Expect(1, 2223, '\P{Is_Jg:dal}', "");
+    Expect(0, 2223, '\P{^Is_Jg:dal}', "");
+    Expect(1, 2222, '\p{Is_Jg=-	Dal}', "");
+    Expect(0, 2222, '\p{^Is_Jg=-	Dal}', "");
+    Expect(0, 2222, '\P{Is_Jg=-	Dal}', "");
+    Expect(1, 2222, '\P{^Is_Jg=-	Dal}', "");
+    Expect(0, 2223, '\p{Is_Jg=-	Dal}', "");
+    Expect(1, 2223, '\p{^Is_Jg=-	Dal}', "");
+    Expect(1, 2223, '\P{Is_Jg=-	Dal}', "");
+    Expect(0, 2223, '\P{^Is_Jg=-	Dal}', "");
+    Error('\p{Joining_Group=:=__DALATH_RISH}');
+    Error('\P{Joining_Group=:=__DALATH_RISH}');
     Expect(1, 1839, '\p{Joining_Group=:\ADalath_Rish\z:}', "");;
     Expect(0, 1840, '\p{Joining_Group=:\ADalath_Rish\z:}', "");;
-    Expect(1, 1839, '\p{Joining_Group=dalathrish}', "");
-    Expect(0, 1839, '\p{^Joining_Group=dalathrish}', "");
-    Expect(0, 1839, '\P{Joining_Group=dalathrish}', "");
-    Expect(1, 1839, '\P{^Joining_Group=dalathrish}', "");
-    Expect(0, 1840, '\p{Joining_Group=dalathrish}', "");
-    Expect(1, 1840, '\p{^Joining_Group=dalathrish}', "");
-    Expect(1, 1840, '\P{Joining_Group=dalathrish}', "");
-    Expect(0, 1840, '\P{^Joining_Group=dalathrish}', "");
+    Expect(1, 1839, '\p{Joining_Group:   dalathrish}', "");
+    Expect(0, 1839, '\p{^Joining_Group:   dalathrish}', "");
+    Expect(0, 1839, '\P{Joining_Group:   dalathrish}', "");
+    Expect(1, 1839, '\P{^Joining_Group:   dalathrish}', "");
+    Expect(0, 1840, '\p{Joining_Group:   dalathrish}', "");
+    Expect(1, 1840, '\p{^Joining_Group:   dalathrish}', "");
+    Expect(1, 1840, '\P{Joining_Group:   dalathrish}', "");
+    Expect(0, 1840, '\P{^Joining_Group:   dalathrish}', "");
     Expect(1, 1839, '\p{Joining_Group=:\Adalathrish\z:}', "");;
     Expect(0, 1840, '\p{Joining_Group=:\Adalathrish\z:}', "");;
-    Expect(1, 1839, '\p{Joining_Group=_	Dalath_Rish}', "");
-    Expect(0, 1839, '\p{^Joining_Group=_	Dalath_Rish}', "");
-    Expect(0, 1839, '\P{Joining_Group=_	Dalath_Rish}', "");
-    Expect(1, 1839, '\P{^Joining_Group=_	Dalath_Rish}', "");
-    Expect(0, 1840, '\p{Joining_Group=_	Dalath_Rish}', "");
-    Expect(1, 1840, '\p{^Joining_Group=_	Dalath_Rish}', "");
-    Expect(1, 1840, '\P{Joining_Group=_	Dalath_Rish}', "");
-    Expect(0, 1840, '\P{^Joining_Group=_	Dalath_Rish}', "");
-    Error('\p{Jg=:=DALATH_Rish}');
-    Error('\P{Jg=:=DALATH_Rish}');
+    Expect(1, 1839, '\p{Joining_Group= _dalath_Rish}', "");
+    Expect(0, 1839, '\p{^Joining_Group= _dalath_Rish}', "");
+    Expect(0, 1839, '\P{Joining_Group= _dalath_Rish}', "");
+    Expect(1, 1839, '\P{^Joining_Group= _dalath_Rish}', "");
+    Expect(0, 1840, '\p{Joining_Group= _dalath_Rish}', "");
+    Expect(1, 1840, '\p{^Joining_Group= _dalath_Rish}', "");
+    Expect(1, 1840, '\P{Joining_Group= _dalath_Rish}', "");
+    Expect(0, 1840, '\P{^Joining_Group= _dalath_Rish}', "");
+    Error('\p{Jg=:= Dalath_RISH}');
+    Error('\P{Jg=:= Dalath_RISH}');
     Expect(1, 1839, '\p{Jg=:\ADalath_Rish\z:}', "");;
     Expect(0, 1840, '\p{Jg=:\ADalath_Rish\z:}', "");;
     Expect(1, 1839, '\p{Jg=dalathrish}', "");
@@ -53703,16 +54325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1840, '\P{^Jg=dalathrish}', "");
     Expect(1, 1839, '\p{Jg=:\Adalathrish\z:}', "");;
     Expect(0, 1840, '\p{Jg=:\Adalathrish\z:}', "");;
-    Expect(1, 1839, '\p{Jg:	-	Dalath_Rish}', "");
-    Expect(0, 1839, '\p{^Jg:	-	Dalath_Rish}', "");
-    Expect(0, 1839, '\P{Jg:	-	Dalath_Rish}', "");
-    Expect(1, 1839, '\P{^Jg:	-	Dalath_Rish}', "");
-    Expect(0, 1840, '\p{Jg:	-	Dalath_Rish}', "");
-    Expect(1, 1840, '\p{^Jg:	-	Dalath_Rish}', "");
-    Expect(1, 1840, '\P{Jg:	-	Dalath_Rish}', "");
-    Expect(0, 1840, '\P{^Jg:	-	Dalath_Rish}', "");
-    Error('\p{Is_Joining_Group=	 Dalath_rish:=}');
-    Error('\P{Is_Joining_Group=	 Dalath_rish:=}');
+    Expect(1, 1839, '\p{Jg:_ DALATH_Rish}', "");
+    Expect(0, 1839, '\p{^Jg:_ DALATH_Rish}', "");
+    Expect(0, 1839, '\P{Jg:_ DALATH_Rish}', "");
+    Expect(1, 1839, '\P{^Jg:_ DALATH_Rish}', "");
+    Expect(0, 1840, '\p{Jg:_ DALATH_Rish}', "");
+    Expect(1, 1840, '\p{^Jg:_ DALATH_Rish}', "");
+    Expect(1, 1840, '\P{Jg:_ DALATH_Rish}', "");
+    Expect(0, 1840, '\P{^Jg:_ DALATH_Rish}', "");
+    Error('\p{Is_Joining_Group= :=DALATH_rish}');
+    Error('\P{Is_Joining_Group= :=DALATH_rish}');
     Expect(1, 1839, '\p{Is_Joining_Group=dalathrish}', "");
     Expect(0, 1839, '\p{^Is_Joining_Group=dalathrish}', "");
     Expect(0, 1839, '\P{Is_Joining_Group=dalathrish}', "");
@@ -53721,16 +54343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1840, '\p{^Is_Joining_Group=dalathrish}', "");
     Expect(1, 1840, '\P{Is_Joining_Group=dalathrish}', "");
     Expect(0, 1840, '\P{^Is_Joining_Group=dalathrish}', "");
-    Expect(1, 1839, '\p{Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(0, 1839, '\p{^Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(0, 1839, '\P{Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(1, 1839, '\P{^Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(0, 1840, '\p{Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(1, 1840, '\p{^Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(1, 1840, '\P{Is_Joining_Group=-	DALATH_rish}', "");
-    Expect(0, 1840, '\P{^Is_Joining_Group=-	DALATH_rish}', "");
-    Error('\p{Is_Jg=:= -Dalath_rish}');
-    Error('\P{Is_Jg=:= -Dalath_rish}');
+    Expect(1, 1839, '\p{Is_Joining_Group=--DALATH_rish}', "");
+    Expect(0, 1839, '\p{^Is_Joining_Group=--DALATH_rish}', "");
+    Expect(0, 1839, '\P{Is_Joining_Group=--DALATH_rish}', "");
+    Expect(1, 1839, '\P{^Is_Joining_Group=--DALATH_rish}', "");
+    Expect(0, 1840, '\p{Is_Joining_Group=--DALATH_rish}', "");
+    Expect(1, 1840, '\p{^Is_Joining_Group=--DALATH_rish}', "");
+    Expect(1, 1840, '\P{Is_Joining_Group=--DALATH_rish}', "");
+    Expect(0, 1840, '\P{^Is_Joining_Group=--DALATH_rish}', "");
+    Error('\p{Is_Jg=:=  Dalath_Rish}');
+    Error('\P{Is_Jg=:=  Dalath_Rish}');
     Expect(1, 1839, '\p{Is_Jg=dalathrish}', "");
     Expect(0, 1839, '\p{^Is_Jg=dalathrish}', "");
     Expect(0, 1839, '\P{Is_Jg=dalathrish}', "");
@@ -53739,16 +54361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1840, '\p{^Is_Jg=dalathrish}', "");
     Expect(1, 1840, '\P{Is_Jg=dalathrish}', "");
     Expect(0, 1840, '\P{^Is_Jg=dalathrish}', "");
-    Expect(1, 1839, '\p{Is_Jg=-_dalath_RISH}', "");
-    Expect(0, 1839, '\p{^Is_Jg=-_dalath_RISH}', "");
-    Expect(0, 1839, '\P{Is_Jg=-_dalath_RISH}', "");
-    Expect(1, 1839, '\P{^Is_Jg=-_dalath_RISH}', "");
-    Expect(0, 1840, '\p{Is_Jg=-_dalath_RISH}', "");
-    Expect(1, 1840, '\p{^Is_Jg=-_dalath_RISH}', "");
-    Expect(1, 1840, '\P{Is_Jg=-_dalath_RISH}', "");
-    Expect(0, 1840, '\P{^Is_Jg=-_dalath_RISH}', "");
-    Error('\p{Joining_Group=/a/-	E}');
-    Error('\P{Joining_Group=/a/-	E}');
+    Expect(1, 1839, '\p{Is_Jg=_	dalath_RISH}', "");
+    Expect(0, 1839, '\p{^Is_Jg=_	dalath_RISH}', "");
+    Expect(0, 1839, '\P{Is_Jg=_	dalath_RISH}', "");
+    Expect(1, 1839, '\P{^Is_Jg=_	dalath_RISH}', "");
+    Expect(0, 1840, '\p{Is_Jg=_	dalath_RISH}', "");
+    Expect(1, 1840, '\p{^Is_Jg=_	dalath_RISH}', "");
+    Expect(1, 1840, '\P{Is_Jg=_	dalath_RISH}', "");
+    Expect(0, 1840, '\P{^Is_Jg=_	dalath_RISH}', "");
+    Error('\p{Joining_Group=- E:=}');
+    Error('\P{Joining_Group=- E:=}');
     Expect(1, 1829, '\p{Joining_Group=:\AE\z:}', "");;
     Expect(0, 1830, '\p{Joining_Group=:\AE\z:}', "");;
     Expect(1, 1829, '\p{Joining_Group=e}', "");
@@ -53761,38 +54383,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1830, '\P{^Joining_Group=e}', "");
     Expect(1, 1829, '\p{Joining_Group=:\Ae\z:}', "");;
     Expect(0, 1830, '\p{Joining_Group=:\Ae\z:}', "");;
-    Expect(1, 1829, '\p{Joining_Group= _e}', "");
-    Expect(0, 1829, '\p{^Joining_Group= _e}', "");
-    Expect(0, 1829, '\P{Joining_Group= _e}', "");
-    Expect(1, 1829, '\P{^Joining_Group= _e}', "");
-    Expect(0, 1830, '\p{Joining_Group= _e}', "");
-    Expect(1, 1830, '\p{^Joining_Group= _e}', "");
-    Expect(1, 1830, '\P{Joining_Group= _e}', "");
-    Expect(0, 1830, '\P{^Joining_Group= _e}', "");
-    Error('\p{Jg: /a/E}');
-    Error('\P{Jg: /a/E}');
+    Error('\p{Jg:   -_E:=}');
+    Error('\P{Jg:   -_E:=}');
     Expect(1, 1829, '\p{Jg=:\AE\z:}', "");;
     Expect(0, 1830, '\p{Jg=:\AE\z:}', "");;
-    Expect(1, 1829, '\p{Jg=e}', "");
-    Expect(0, 1829, '\p{^Jg=e}', "");
-    Expect(0, 1829, '\P{Jg=e}', "");
-    Expect(1, 1829, '\P{^Jg=e}', "");
-    Expect(0, 1830, '\p{Jg=e}', "");
-    Expect(1, 1830, '\p{^Jg=e}', "");
-    Expect(1, 1830, '\P{Jg=e}', "");
-    Expect(0, 1830, '\P{^Jg=e}', "");
+    Expect(1, 1829, '\p{Jg:	e}', "");
+    Expect(0, 1829, '\p{^Jg:	e}', "");
+    Expect(0, 1829, '\P{Jg:	e}', "");
+    Expect(1, 1829, '\P{^Jg:	e}', "");
+    Expect(0, 1830, '\p{Jg:	e}', "");
+    Expect(1, 1830, '\p{^Jg:	e}', "");
+    Expect(1, 1830, '\P{Jg:	e}', "");
+    Expect(0, 1830, '\P{^Jg:	e}', "");
     Expect(1, 1829, '\p{Jg=:\Ae\z:}', "");;
     Expect(0, 1830, '\p{Jg=:\Ae\z:}', "");;
-    Expect(1, 1829, '\p{Jg=  E}', "");
-    Expect(0, 1829, '\p{^Jg=  E}', "");
-    Expect(0, 1829, '\P{Jg=  E}', "");
-    Expect(1, 1829, '\P{^Jg=  E}', "");
-    Expect(0, 1830, '\p{Jg=  E}', "");
-    Expect(1, 1830, '\p{^Jg=  E}', "");
-    Expect(1, 1830, '\P{Jg=  E}', "");
-    Expect(0, 1830, '\P{^Jg=  E}', "");
-    Error('\p{Is_Joining_Group=-E:=}');
-    Error('\P{Is_Joining_Group=-E:=}');
+    Expect(1, 1829, '\p{Jg: 		E}', "");
+    Expect(0, 1829, '\p{^Jg: 		E}', "");
+    Expect(0, 1829, '\P{Jg: 		E}', "");
+    Expect(1, 1829, '\P{^Jg: 		E}', "");
+    Expect(0, 1830, '\p{Jg: 		E}', "");
+    Expect(1, 1830, '\p{^Jg: 		E}', "");
+    Expect(1, 1830, '\P{Jg: 		E}', "");
+    Expect(0, 1830, '\P{^Jg: 		E}', "");
+    Error('\p{Is_Joining_Group=:=-e}');
+    Error('\P{Is_Joining_Group=:=-e}');
     Expect(1, 1829, '\p{Is_Joining_Group=e}', "");
     Expect(0, 1829, '\p{^Is_Joining_Group=e}', "");
     Expect(0, 1829, '\P{Is_Joining_Group=e}', "");
@@ -53801,16 +54415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1830, '\p{^Is_Joining_Group=e}', "");
     Expect(1, 1830, '\P{Is_Joining_Group=e}', "");
     Expect(0, 1830, '\P{^Is_Joining_Group=e}', "");
-    Expect(1, 1829, '\p{Is_Joining_Group=__E}', "");
-    Expect(0, 1829, '\p{^Is_Joining_Group=__E}', "");
-    Expect(0, 1829, '\P{Is_Joining_Group=__E}', "");
-    Expect(1, 1829, '\P{^Is_Joining_Group=__E}', "");
-    Expect(0, 1830, '\p{Is_Joining_Group=__E}', "");
-    Expect(1, 1830, '\p{^Is_Joining_Group=__E}', "");
-    Expect(1, 1830, '\P{Is_Joining_Group=__E}', "");
-    Expect(0, 1830, '\P{^Is_Joining_Group=__E}', "");
-    Error('\p{Is_Jg=/a/_ E}');
-    Error('\P{Is_Jg=/a/_ E}');
+    Expect(1, 1829, '\p{Is_Joining_Group: E}', "");
+    Expect(0, 1829, '\p{^Is_Joining_Group: E}', "");
+    Expect(0, 1829, '\P{Is_Joining_Group: E}', "");
+    Expect(1, 1829, '\P{^Is_Joining_Group: E}', "");
+    Expect(0, 1830, '\p{Is_Joining_Group: E}', "");
+    Expect(1, 1830, '\p{^Is_Joining_Group: E}', "");
+    Expect(1, 1830, '\P{Is_Joining_Group: E}', "");
+    Expect(0, 1830, '\P{^Is_Joining_Group: E}', "");
+    Error('\p{Is_Jg=/a/_ e}');
+    Error('\P{Is_Jg=/a/_ e}');
     Expect(1, 1829, '\p{Is_Jg=e}', "");
     Expect(0, 1829, '\p{^Is_Jg=e}', "");
     Expect(0, 1829, '\P{Is_Jg=e}', "");
@@ -53819,16 +54433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1830, '\p{^Is_Jg=e}', "");
     Expect(1, 1830, '\P{Is_Jg=e}', "");
     Expect(0, 1830, '\P{^Is_Jg=e}', "");
-    Expect(1, 1829, '\p{Is_Jg=E}', "");
-    Expect(0, 1829, '\p{^Is_Jg=E}', "");
-    Expect(0, 1829, '\P{Is_Jg=E}', "");
-    Expect(1, 1829, '\P{^Is_Jg=E}', "");
-    Expect(0, 1830, '\p{Is_Jg=E}', "");
-    Expect(1, 1830, '\p{^Is_Jg=E}', "");
-    Expect(1, 1830, '\P{Is_Jg=E}', "");
-    Expect(0, 1830, '\P{^Is_Jg=E}', "");
-    Error('\p{Joining_Group=_Farsi_yeh/a/}');
-    Error('\P{Joining_Group=_Farsi_yeh/a/}');
+    Expect(1, 1829, '\p{Is_Jg=-_E}', "");
+    Expect(0, 1829, '\p{^Is_Jg=-_E}', "");
+    Expect(0, 1829, '\P{Is_Jg=-_E}', "");
+    Expect(1, 1829, '\P{^Is_Jg=-_E}', "");
+    Expect(0, 1830, '\p{Is_Jg=-_E}', "");
+    Expect(1, 1830, '\p{^Is_Jg=-_E}', "");
+    Expect(1, 1830, '\P{Is_Jg=-_E}', "");
+    Expect(0, 1830, '\P{^Is_Jg=-_E}', "");
+    Error('\p{Joining_Group=/a/Farsi_yeh}');
+    Error('\P{Joining_Group=/a/Farsi_yeh}');
     Expect(1, 1910, '\p{Joining_Group=:\AFarsi_Yeh\z:}', "");;
     Expect(0, 1911, '\p{Joining_Group=:\AFarsi_Yeh\z:}', "");;
     Expect(1, 1910, '\p{Joining_Group=farsiyeh}', "");
@@ -53841,16 +54455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1911, '\P{^Joining_Group=farsiyeh}', "");
     Expect(1, 1910, '\p{Joining_Group=:\Afarsiyeh\z:}', "");;
     Expect(0, 1911, '\p{Joining_Group=:\Afarsiyeh\z:}', "");;
-    Expect(1, 1910, '\p{Joining_Group= -FARSI_YEH}', "");
-    Expect(0, 1910, '\p{^Joining_Group= -FARSI_YEH}', "");
-    Expect(0, 1910, '\P{Joining_Group= -FARSI_YEH}', "");
-    Expect(1, 1910, '\P{^Joining_Group= -FARSI_YEH}', "");
-    Expect(0, 1911, '\p{Joining_Group= -FARSI_YEH}', "");
-    Expect(1, 1911, '\p{^Joining_Group= -FARSI_YEH}', "");
-    Expect(1, 1911, '\P{Joining_Group= -FARSI_YEH}', "");
-    Expect(0, 1911, '\P{^Joining_Group= -FARSI_YEH}', "");
-    Error('\p{Jg=/a/ -farsi_YEH}');
-    Error('\P{Jg=/a/ -farsi_YEH}');
+    Expect(1, 1910, '\p{Joining_Group=_-Farsi_Yeh}', "");
+    Expect(0, 1910, '\p{^Joining_Group=_-Farsi_Yeh}', "");
+    Expect(0, 1910, '\P{Joining_Group=_-Farsi_Yeh}', "");
+    Expect(1, 1910, '\P{^Joining_Group=_-Farsi_Yeh}', "");
+    Expect(0, 1911, '\p{Joining_Group=_-Farsi_Yeh}', "");
+    Expect(1, 1911, '\p{^Joining_Group=_-Farsi_Yeh}', "");
+    Expect(1, 1911, '\P{Joining_Group=_-Farsi_Yeh}', "");
+    Expect(0, 1911, '\P{^Joining_Group=_-Farsi_Yeh}', "");
+    Error('\p{Jg:   /a/- farsi_YEH}');
+    Error('\P{Jg:   /a/- farsi_YEH}');
     Expect(1, 1910, '\p{Jg=:\AFarsi_Yeh\z:}', "");;
     Expect(0, 1911, '\p{Jg=:\AFarsi_Yeh\z:}', "");;
     Expect(1, 1910, '\p{Jg=farsiyeh}', "");
@@ -53863,16 +54477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1911, '\P{^Jg=farsiyeh}', "");
     Expect(1, 1910, '\p{Jg=:\Afarsiyeh\z:}', "");;
     Expect(0, 1911, '\p{Jg=:\Afarsiyeh\z:}', "");;
-    Expect(1, 1910, '\p{Jg=	Farsi_yeh}', "");
-    Expect(0, 1910, '\p{^Jg=	Farsi_yeh}', "");
-    Expect(0, 1910, '\P{Jg=	Farsi_yeh}', "");
-    Expect(1, 1910, '\P{^Jg=	Farsi_yeh}', "");
-    Expect(0, 1911, '\p{Jg=	Farsi_yeh}', "");
-    Expect(1, 1911, '\p{^Jg=	Farsi_yeh}', "");
-    Expect(1, 1911, '\P{Jg=	Farsi_yeh}', "");
-    Expect(0, 1911, '\P{^Jg=	Farsi_yeh}', "");
-    Error('\p{Is_Joining_Group=_/a/Farsi_YEH}');
-    Error('\P{Is_Joining_Group=_/a/Farsi_YEH}');
+    Expect(1, 1910, '\p{Jg:   _Farsi_Yeh}', "");
+    Expect(0, 1910, '\p{^Jg:   _Farsi_Yeh}', "");
+    Expect(0, 1910, '\P{Jg:   _Farsi_Yeh}', "");
+    Expect(1, 1910, '\P{^Jg:   _Farsi_Yeh}', "");
+    Expect(0, 1911, '\p{Jg:   _Farsi_Yeh}', "");
+    Expect(1, 1911, '\p{^Jg:   _Farsi_Yeh}', "");
+    Expect(1, 1911, '\P{Jg:   _Farsi_Yeh}', "");
+    Expect(0, 1911, '\P{^Jg:   _Farsi_Yeh}', "");
+    Error('\p{Is_Joining_Group=Farsi_yeh/a/}');
+    Error('\P{Is_Joining_Group=Farsi_yeh/a/}');
     Expect(1, 1910, '\p{Is_Joining_Group=farsiyeh}', "");
     Expect(0, 1910, '\p{^Is_Joining_Group=farsiyeh}', "");
     Expect(0, 1910, '\P{Is_Joining_Group=farsiyeh}', "");
@@ -53881,16 +54495,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1911, '\p{^Is_Joining_Group=farsiyeh}', "");
     Expect(1, 1911, '\P{Is_Joining_Group=farsiyeh}', "");
     Expect(0, 1911, '\P{^Is_Joining_Group=farsiyeh}', "");
-    Expect(1, 1910, '\p{Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(0, 1910, '\p{^Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(0, 1910, '\P{Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(1, 1910, '\P{^Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(0, 1911, '\p{Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(1, 1911, '\p{^Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(1, 1911, '\P{Is_Joining_Group=	Farsi_yeh}', "");
-    Expect(0, 1911, '\P{^Is_Joining_Group=	Farsi_yeh}', "");
-    Error('\p{Is_Jg:	/a/ _FARSI_yeh}');
-    Error('\P{Is_Jg:	/a/ _FARSI_yeh}');
+    Expect(1, 1910, '\p{Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(0, 1910, '\p{^Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(0, 1910, '\P{Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(1, 1910, '\P{^Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(0, 1911, '\p{Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(1, 1911, '\p{^Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(1, 1911, '\P{Is_Joining_Group=-	FARSI_YEH}', "");
+    Expect(0, 1911, '\P{^Is_Joining_Group=-	FARSI_YEH}', "");
+    Error('\p{Is_Jg= /a/farsi_yeh}');
+    Error('\P{Is_Jg= /a/farsi_yeh}');
     Expect(1, 1910, '\p{Is_Jg=farsiyeh}', "");
     Expect(0, 1910, '\p{^Is_Jg=farsiyeh}', "");
     Expect(0, 1910, '\P{Is_Jg=farsiyeh}', "");
@@ -53899,16 +54513,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1911, '\p{^Is_Jg=farsiyeh}', "");
     Expect(1, 1911, '\P{Is_Jg=farsiyeh}', "");
     Expect(0, 1911, '\P{^Is_Jg=farsiyeh}', "");
-    Expect(1, 1910, '\p{Is_Jg=_Farsi_Yeh}', "");
-    Expect(0, 1910, '\p{^Is_Jg=_Farsi_Yeh}', "");
-    Expect(0, 1910, '\P{Is_Jg=_Farsi_Yeh}', "");
-    Expect(1, 1910, '\P{^Is_Jg=_Farsi_Yeh}', "");
-    Expect(0, 1911, '\p{Is_Jg=_Farsi_Yeh}', "");
-    Expect(1, 1911, '\p{^Is_Jg=_Farsi_Yeh}', "");
-    Expect(1, 1911, '\P{Is_Jg=_Farsi_Yeh}', "");
-    Expect(0, 1911, '\P{^Is_Jg=_Farsi_Yeh}', "");
-    Error('\p{Joining_Group:	 	fe/a/}');
-    Error('\P{Joining_Group:	 	fe/a/}');
+    Expect(1, 1910, '\p{Is_Jg=_-Farsi_Yeh}', "");
+    Expect(0, 1910, '\p{^Is_Jg=_-Farsi_Yeh}', "");
+    Expect(0, 1910, '\P{Is_Jg=_-Farsi_Yeh}', "");
+    Expect(1, 1910, '\P{^Is_Jg=_-Farsi_Yeh}', "");
+    Expect(0, 1911, '\p{Is_Jg=_-Farsi_Yeh}', "");
+    Expect(1, 1911, '\p{^Is_Jg=_-Farsi_Yeh}', "");
+    Expect(1, 1911, '\P{Is_Jg=_-Farsi_Yeh}', "");
+    Expect(0, 1911, '\P{^Is_Jg=_-Farsi_Yeh}', "");
+    Error('\p{Joining_Group=:=-Fe}');
+    Error('\P{Joining_Group=:=-Fe}');
     Expect(1, 1871, '\p{Joining_Group=:\AFe\z:}', "");;
     Expect(0, 1872, '\p{Joining_Group=:\AFe\z:}', "");;
     Expect(1, 1871, '\p{Joining_Group=fe}', "");
@@ -53921,16 +54535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1872, '\P{^Joining_Group=fe}', "");
     Expect(1, 1871, '\p{Joining_Group=:\Afe\z:}', "");;
     Expect(0, 1872, '\p{Joining_Group=:\Afe\z:}', "");;
-    Expect(1, 1871, '\p{Joining_Group=  Fe}', "");
-    Expect(0, 1871, '\p{^Joining_Group=  Fe}', "");
-    Expect(0, 1871, '\P{Joining_Group=  Fe}', "");
-    Expect(1, 1871, '\P{^Joining_Group=  Fe}', "");
-    Expect(0, 1872, '\p{Joining_Group=  Fe}', "");
-    Expect(1, 1872, '\p{^Joining_Group=  Fe}', "");
-    Expect(1, 1872, '\P{Joining_Group=  Fe}', "");
-    Expect(0, 1872, '\P{^Joining_Group=  Fe}', "");
-    Error('\p{Jg=/a/FE}');
-    Error('\P{Jg=/a/FE}');
+    Expect(1, 1871, '\p{Joining_Group: _ Fe}', "");
+    Expect(0, 1871, '\p{^Joining_Group: _ Fe}', "");
+    Expect(0, 1871, '\P{Joining_Group: _ Fe}', "");
+    Expect(1, 1871, '\P{^Joining_Group: _ Fe}', "");
+    Expect(0, 1872, '\p{Joining_Group: _ Fe}', "");
+    Expect(1, 1872, '\p{^Joining_Group: _ Fe}', "");
+    Expect(1, 1872, '\P{Joining_Group: _ Fe}', "");
+    Expect(0, 1872, '\P{^Joining_Group: _ Fe}', "");
+    Error('\p{Jg:	-/a/Fe}');
+    Error('\P{Jg:	-/a/Fe}');
     Expect(1, 1871, '\p{Jg=:\AFe\z:}', "");;
     Expect(0, 1872, '\p{Jg=:\AFe\z:}', "");;
     Expect(1, 1871, '\p{Jg=fe}', "");
@@ -53943,16 +54557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1872, '\P{^Jg=fe}', "");
     Expect(1, 1871, '\p{Jg=:\Afe\z:}', "");;
     Expect(0, 1872, '\p{Jg=:\Afe\z:}', "");;
-    Expect(1, 1871, '\p{Jg=--fe}', "");
-    Expect(0, 1871, '\p{^Jg=--fe}', "");
-    Expect(0, 1871, '\P{Jg=--fe}', "");
-    Expect(1, 1871, '\P{^Jg=--fe}', "");
-    Expect(0, 1872, '\p{Jg=--fe}', "");
-    Expect(1, 1872, '\p{^Jg=--fe}', "");
-    Expect(1, 1872, '\P{Jg=--fe}', "");
-    Expect(0, 1872, '\P{^Jg=--fe}', "");
-    Error('\p{Is_Joining_Group=/a/_-fe}');
-    Error('\P{Is_Joining_Group=/a/_-fe}');
+    Expect(1, 1871, '\p{Jg=	_FE}', "");
+    Expect(0, 1871, '\p{^Jg=	_FE}', "");
+    Expect(0, 1871, '\P{Jg=	_FE}', "");
+    Expect(1, 1871, '\P{^Jg=	_FE}', "");
+    Expect(0, 1872, '\p{Jg=	_FE}', "");
+    Expect(1, 1872, '\p{^Jg=	_FE}', "");
+    Expect(1, 1872, '\P{Jg=	_FE}', "");
+    Expect(0, 1872, '\P{^Jg=	_FE}', "");
+    Error('\p{Is_Joining_Group: :=	Fe}');
+    Error('\P{Is_Joining_Group: :=	Fe}');
     Expect(1, 1871, '\p{Is_Joining_Group=fe}', "");
     Expect(0, 1871, '\p{^Is_Joining_Group=fe}', "");
     Expect(0, 1871, '\P{Is_Joining_Group=fe}', "");
@@ -53961,34 +54575,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1872, '\p{^Is_Joining_Group=fe}', "");
     Expect(1, 1872, '\P{Is_Joining_Group=fe}', "");
     Expect(0, 1872, '\P{^Is_Joining_Group=fe}', "");
-    Expect(1, 1871, '\p{Is_Joining_Group=__Fe}', "");
-    Expect(0, 1871, '\p{^Is_Joining_Group=__Fe}', "");
-    Expect(0, 1871, '\P{Is_Joining_Group=__Fe}', "");
-    Expect(1, 1871, '\P{^Is_Joining_Group=__Fe}', "");
-    Expect(0, 1872, '\p{Is_Joining_Group=__Fe}', "");
-    Expect(1, 1872, '\p{^Is_Joining_Group=__Fe}', "");
-    Expect(1, 1872, '\P{Is_Joining_Group=__Fe}', "");
-    Expect(0, 1872, '\P{^Is_Joining_Group=__Fe}', "");
-    Error('\p{Is_Jg=:=-Fe}');
-    Error('\P{Is_Jg=:=-Fe}');
-    Expect(1, 1871, '\p{Is_Jg: fe}', "");
-    Expect(0, 1871, '\p{^Is_Jg: fe}', "");
-    Expect(0, 1871, '\P{Is_Jg: fe}', "");
-    Expect(1, 1871, '\P{^Is_Jg: fe}', "");
-    Expect(0, 1872, '\p{Is_Jg: fe}', "");
-    Expect(1, 1872, '\p{^Is_Jg: fe}', "");
-    Expect(1, 1872, '\P{Is_Jg: fe}', "");
-    Expect(0, 1872, '\P{^Is_Jg: fe}', "");
-    Expect(1, 1871, '\p{Is_Jg= Fe}', "");
-    Expect(0, 1871, '\p{^Is_Jg= Fe}', "");
-    Expect(0, 1871, '\P{Is_Jg= Fe}', "");
-    Expect(1, 1871, '\P{^Is_Jg= Fe}', "");
-    Expect(0, 1872, '\p{Is_Jg= Fe}', "");
-    Expect(1, 1872, '\p{^Is_Jg= Fe}', "");
-    Expect(1, 1872, '\P{Is_Jg= Fe}', "");
-    Expect(0, 1872, '\P{^Is_Jg= Fe}', "");
-    Error('\p{Joining_Group=:=feh}');
-    Error('\P{Joining_Group=:=feh}');
+    Expect(1, 1871, '\p{Is_Joining_Group=_-fe}', "");
+    Expect(0, 1871, '\p{^Is_Joining_Group=_-fe}', "");
+    Expect(0, 1871, '\P{Is_Joining_Group=_-fe}', "");
+    Expect(1, 1871, '\P{^Is_Joining_Group=_-fe}', "");
+    Expect(0, 1872, '\p{Is_Joining_Group=_-fe}', "");
+    Expect(1, 1872, '\p{^Is_Joining_Group=_-fe}', "");
+    Expect(1, 1872, '\P{Is_Joining_Group=_-fe}', "");
+    Expect(0, 1872, '\P{^Is_Joining_Group=_-fe}', "");
+    Error('\p{Is_Jg=:= 	fe}');
+    Error('\P{Is_Jg=:= 	fe}');
+    Expect(1, 1871, '\p{Is_Jg=fe}', "");
+    Expect(0, 1871, '\p{^Is_Jg=fe}', "");
+    Expect(0, 1871, '\P{Is_Jg=fe}', "");
+    Expect(1, 1871, '\P{^Is_Jg=fe}', "");
+    Expect(0, 1872, '\p{Is_Jg=fe}', "");
+    Expect(1, 1872, '\p{^Is_Jg=fe}', "");
+    Expect(1, 1872, '\P{Is_Jg=fe}', "");
+    Expect(0, 1872, '\P{^Is_Jg=fe}', "");
+    Expect(1, 1871, '\p{Is_Jg=_	FE}', "");
+    Expect(0, 1871, '\p{^Is_Jg=_	FE}', "");
+    Expect(0, 1871, '\P{Is_Jg=_	FE}', "");
+    Expect(1, 1871, '\P{^Is_Jg=_	FE}', "");
+    Expect(0, 1872, '\p{Is_Jg=_	FE}', "");
+    Expect(1, 1872, '\p{^Is_Jg=_	FE}', "");
+    Expect(1, 1872, '\P{Is_Jg=_	FE}', "");
+    Expect(0, 1872, '\P{^Is_Jg=_	FE}', "");
+    Error('\p{Joining_Group: -FEH:=}');
+    Error('\P{Joining_Group: -FEH:=}');
     Expect(1, 2212, '\p{Joining_Group=:\AFeh\z:}', "");;
     Expect(0, 2213, '\p{Joining_Group=:\AFeh\z:}', "");;
     Expect(1, 2212, '\p{Joining_Group=feh}', "");
@@ -54001,38 +54615,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2213, '\P{^Joining_Group=feh}', "");
     Expect(1, 2212, '\p{Joining_Group=:\Afeh\z:}', "");;
     Expect(0, 2213, '\p{Joining_Group=:\Afeh\z:}', "");;
-    Expect(1, 2212, '\p{Joining_Group=Feh}', "");
-    Expect(0, 2212, '\p{^Joining_Group=Feh}', "");
-    Expect(0, 2212, '\P{Joining_Group=Feh}', "");
-    Expect(1, 2212, '\P{^Joining_Group=Feh}', "");
-    Expect(0, 2213, '\p{Joining_Group=Feh}', "");
-    Expect(1, 2213, '\p{^Joining_Group=Feh}', "");
-    Expect(1, 2213, '\P{Joining_Group=Feh}', "");
-    Expect(0, 2213, '\P{^Joining_Group=Feh}', "");
-    Error('\p{Jg= /a/Feh}');
-    Error('\P{Jg= /a/Feh}');
+    Expect(1, 2212, '\p{Joining_Group=  Feh}', "");
+    Expect(0, 2212, '\p{^Joining_Group=  Feh}', "");
+    Expect(0, 2212, '\P{Joining_Group=  Feh}', "");
+    Expect(1, 2212, '\P{^Joining_Group=  Feh}', "");
+    Expect(0, 2213, '\p{Joining_Group=  Feh}', "");
+    Expect(1, 2213, '\p{^Joining_Group=  Feh}', "");
+    Expect(1, 2213, '\P{Joining_Group=  Feh}', "");
+    Expect(0, 2213, '\P{^Joining_Group=  Feh}', "");
+    Error('\p{Jg=_:=feh}');
+    Error('\P{Jg=_:=feh}');
     Expect(1, 2212, '\p{Jg=:\AFeh\z:}', "");;
     Expect(0, 2213, '\p{Jg=:\AFeh\z:}', "");;
-    Expect(1, 2212, '\p{Jg:	feh}', "");
-    Expect(0, 2212, '\p{^Jg:	feh}', "");
-    Expect(0, 2212, '\P{Jg:	feh}', "");
-    Expect(1, 2212, '\P{^Jg:	feh}', "");
-    Expect(0, 2213, '\p{Jg:	feh}', "");
-    Expect(1, 2213, '\p{^Jg:	feh}', "");
-    Expect(1, 2213, '\P{Jg:	feh}', "");
-    Expect(0, 2213, '\P{^Jg:	feh}', "");
+    Expect(1, 2212, '\p{Jg:   feh}', "");
+    Expect(0, 2212, '\p{^Jg:   feh}', "");
+    Expect(0, 2212, '\P{Jg:   feh}', "");
+    Expect(1, 2212, '\P{^Jg:   feh}', "");
+    Expect(0, 2213, '\p{Jg:   feh}', "");
+    Expect(1, 2213, '\p{^Jg:   feh}', "");
+    Expect(1, 2213, '\P{Jg:   feh}', "");
+    Expect(0, 2213, '\P{^Jg:   feh}', "");
     Expect(1, 2212, '\p{Jg=:\Afeh\z:}', "");;
     Expect(0, 2213, '\p{Jg=:\Afeh\z:}', "");;
-    Expect(1, 2212, '\p{Jg=_FEH}', "");
-    Expect(0, 2212, '\p{^Jg=_FEH}', "");
-    Expect(0, 2212, '\P{Jg=_FEH}', "");
-    Expect(1, 2212, '\P{^Jg=_FEH}', "");
-    Expect(0, 2213, '\p{Jg=_FEH}', "");
-    Expect(1, 2213, '\p{^Jg=_FEH}', "");
-    Expect(1, 2213, '\P{Jg=_FEH}', "");
-    Expect(0, 2213, '\P{^Jg=_FEH}', "");
-    Error('\p{Is_Joining_Group=__feh:=}');
-    Error('\P{Is_Joining_Group=__feh:=}');
+    Expect(1, 2212, '\p{Jg= _Feh}', "");
+    Expect(0, 2212, '\p{^Jg= _Feh}', "");
+    Expect(0, 2212, '\P{Jg= _Feh}', "");
+    Expect(1, 2212, '\P{^Jg= _Feh}', "");
+    Expect(0, 2213, '\p{Jg= _Feh}', "");
+    Expect(1, 2213, '\p{^Jg= _Feh}', "");
+    Expect(1, 2213, '\P{Jg= _Feh}', "");
+    Expect(0, 2213, '\P{^Jg= _Feh}', "");
+    Error('\p{Is_Joining_Group=/a/-	FEH}');
+    Error('\P{Is_Joining_Group=/a/-	FEH}');
     Expect(1, 2212, '\p{Is_Joining_Group=feh}', "");
     Expect(0, 2212, '\p{^Is_Joining_Group=feh}', "");
     Expect(0, 2212, '\P{Is_Joining_Group=feh}', "");
@@ -54041,16 +54655,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2213, '\p{^Is_Joining_Group=feh}', "");
     Expect(1, 2213, '\P{Is_Joining_Group=feh}', "");
     Expect(0, 2213, '\P{^Is_Joining_Group=feh}', "");
-    Expect(1, 2212, '\p{Is_Joining_Group= _Feh}', "");
-    Expect(0, 2212, '\p{^Is_Joining_Group= _Feh}', "");
-    Expect(0, 2212, '\P{Is_Joining_Group= _Feh}', "");
-    Expect(1, 2212, '\P{^Is_Joining_Group= _Feh}', "");
-    Expect(0, 2213, '\p{Is_Joining_Group= _Feh}', "");
-    Expect(1, 2213, '\p{^Is_Joining_Group= _Feh}', "");
-    Expect(1, 2213, '\P{Is_Joining_Group= _Feh}', "");
-    Expect(0, 2213, '\P{^Is_Joining_Group= _Feh}', "");
-    Error('\p{Is_Jg=/a/	_FEH}');
-    Error('\P{Is_Jg=/a/	_FEH}');
+    Expect(1, 2212, '\p{Is_Joining_Group=	-Feh}', "");
+    Expect(0, 2212, '\p{^Is_Joining_Group=	-Feh}', "");
+    Expect(0, 2212, '\P{Is_Joining_Group=	-Feh}', "");
+    Expect(1, 2212, '\P{^Is_Joining_Group=	-Feh}', "");
+    Expect(0, 2213, '\p{Is_Joining_Group=	-Feh}', "");
+    Expect(1, 2213, '\p{^Is_Joining_Group=	-Feh}', "");
+    Expect(1, 2213, '\P{Is_Joining_Group=	-Feh}', "");
+    Expect(0, 2213, '\P{^Is_Joining_Group=	-Feh}', "");
+    Error('\p{Is_Jg=_Feh:=}');
+    Error('\P{Is_Jg=_Feh:=}');
     Expect(1, 2212, '\p{Is_Jg=feh}', "");
     Expect(0, 2212, '\p{^Is_Jg=feh}', "");
     Expect(0, 2212, '\P{Is_Jg=feh}', "");
@@ -54059,60 +54673,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2213, '\p{^Is_Jg=feh}', "");
     Expect(1, 2213, '\P{Is_Jg=feh}', "");
     Expect(0, 2213, '\P{^Is_Jg=feh}', "");
-    Expect(1, 2212, '\p{Is_Jg=FEH}', "");
-    Expect(0, 2212, '\p{^Is_Jg=FEH}', "");
-    Expect(0, 2212, '\P{Is_Jg=FEH}', "");
-    Expect(1, 2212, '\P{^Is_Jg=FEH}', "");
-    Expect(0, 2213, '\p{Is_Jg=FEH}', "");
-    Expect(1, 2213, '\p{^Is_Jg=FEH}', "");
-    Expect(1, 2213, '\P{Is_Jg=FEH}', "");
-    Expect(0, 2213, '\P{^Is_Jg=FEH}', "");
-    Error('\p{Joining_Group=_ FINAL_SEMKATH:=}');
-    Error('\P{Joining_Group=_ FINAL_SEMKATH:=}');
+    Expect(1, 2212, '\p{Is_Jg:- feh}', "");
+    Expect(0, 2212, '\p{^Is_Jg:- feh}', "");
+    Expect(0, 2212, '\P{Is_Jg:- feh}', "");
+    Expect(1, 2212, '\P{^Is_Jg:- feh}', "");
+    Expect(0, 2213, '\p{Is_Jg:- feh}', "");
+    Expect(1, 2213, '\p{^Is_Jg:- feh}', "");
+    Expect(1, 2213, '\P{Is_Jg:- feh}', "");
+    Expect(0, 2213, '\P{^Is_Jg:- feh}', "");
+    Error('\p{Joining_Group=_:=Final_Semkath}');
+    Error('\P{Joining_Group=_:=Final_Semkath}');
     Expect(1, 1828, '\p{Joining_Group=:\AFinal_Semkath\z:}', "");;
     Expect(0, 1829, '\p{Joining_Group=:\AFinal_Semkath\z:}', "");;
-    Expect(1, 1828, '\p{Joining_Group=finalsemkath}', "");
-    Expect(0, 1828, '\p{^Joining_Group=finalsemkath}', "");
-    Expect(0, 1828, '\P{Joining_Group=finalsemkath}', "");
-    Expect(1, 1828, '\P{^Joining_Group=finalsemkath}', "");
-    Expect(0, 1829, '\p{Joining_Group=finalsemkath}', "");
-    Expect(1, 1829, '\p{^Joining_Group=finalsemkath}', "");
-    Expect(1, 1829, '\P{Joining_Group=finalsemkath}', "");
-    Expect(0, 1829, '\P{^Joining_Group=finalsemkath}', "");
+    Expect(1, 1828, '\p{Joining_Group:finalsemkath}', "");
+    Expect(0, 1828, '\p{^Joining_Group:finalsemkath}', "");
+    Expect(0, 1828, '\P{Joining_Group:finalsemkath}', "");
+    Expect(1, 1828, '\P{^Joining_Group:finalsemkath}', "");
+    Expect(0, 1829, '\p{Joining_Group:finalsemkath}', "");
+    Expect(1, 1829, '\p{^Joining_Group:finalsemkath}', "");
+    Expect(1, 1829, '\P{Joining_Group:finalsemkath}', "");
+    Expect(0, 1829, '\P{^Joining_Group:finalsemkath}', "");
     Expect(1, 1828, '\p{Joining_Group=:\Afinalsemkath\z:}', "");;
     Expect(0, 1829, '\p{Joining_Group=:\Afinalsemkath\z:}', "");;
-    Expect(1, 1828, '\p{Joining_Group=		Final_SEMKATH}', "");
-    Expect(0, 1828, '\p{^Joining_Group=		Final_SEMKATH}', "");
-    Expect(0, 1828, '\P{Joining_Group=		Final_SEMKATH}', "");
-    Expect(1, 1828, '\P{^Joining_Group=		Final_SEMKATH}', "");
-    Expect(0, 1829, '\p{Joining_Group=		Final_SEMKATH}', "");
-    Expect(1, 1829, '\p{^Joining_Group=		Final_SEMKATH}', "");
-    Expect(1, 1829, '\P{Joining_Group=		Final_SEMKATH}', "");
-    Expect(0, 1829, '\P{^Joining_Group=		Final_SEMKATH}', "");
-    Error('\p{Jg=/a/ -Final_semkath}');
-    Error('\P{Jg=/a/ -Final_semkath}');
+    Expect(1, 1828, '\p{Joining_Group=_ FINAL_Semkath}', "");
+    Expect(0, 1828, '\p{^Joining_Group=_ FINAL_Semkath}', "");
+    Expect(0, 1828, '\P{Joining_Group=_ FINAL_Semkath}', "");
+    Expect(1, 1828, '\P{^Joining_Group=_ FINAL_Semkath}', "");
+    Expect(0, 1829, '\p{Joining_Group=_ FINAL_Semkath}', "");
+    Expect(1, 1829, '\p{^Joining_Group=_ FINAL_Semkath}', "");
+    Expect(1, 1829, '\P{Joining_Group=_ FINAL_Semkath}', "");
+    Expect(0, 1829, '\P{^Joining_Group=_ FINAL_Semkath}', "");
+    Error('\p{Jg=	 Final_semkath:=}');
+    Error('\P{Jg=	 Final_semkath:=}');
     Expect(1, 1828, '\p{Jg=:\AFinal_Semkath\z:}', "");;
     Expect(0, 1829, '\p{Jg=:\AFinal_Semkath\z:}', "");;
-    Expect(1, 1828, '\p{Jg:	finalsemkath}', "");
-    Expect(0, 1828, '\p{^Jg:	finalsemkath}', "");
-    Expect(0, 1828, '\P{Jg:	finalsemkath}', "");
-    Expect(1, 1828, '\P{^Jg:	finalsemkath}', "");
-    Expect(0, 1829, '\p{Jg:	finalsemkath}', "");
-    Expect(1, 1829, '\p{^Jg:	finalsemkath}', "");
-    Expect(1, 1829, '\P{Jg:	finalsemkath}', "");
-    Expect(0, 1829, '\P{^Jg:	finalsemkath}', "");
+    Expect(1, 1828, '\p{Jg=finalsemkath}', "");
+    Expect(0, 1828, '\p{^Jg=finalsemkath}', "");
+    Expect(0, 1828, '\P{Jg=finalsemkath}', "");
+    Expect(1, 1828, '\P{^Jg=finalsemkath}', "");
+    Expect(0, 1829, '\p{Jg=finalsemkath}', "");
+    Expect(1, 1829, '\p{^Jg=finalsemkath}', "");
+    Expect(1, 1829, '\P{Jg=finalsemkath}', "");
+    Expect(0, 1829, '\P{^Jg=finalsemkath}', "");
     Expect(1, 1828, '\p{Jg=:\Afinalsemkath\z:}', "");;
     Expect(0, 1829, '\p{Jg=:\Afinalsemkath\z:}', "");;
-    Expect(1, 1828, '\p{Jg=_	Final_Semkath}', "");
-    Expect(0, 1828, '\p{^Jg=_	Final_Semkath}', "");
-    Expect(0, 1828, '\P{Jg=_	Final_Semkath}', "");
-    Expect(1, 1828, '\P{^Jg=_	Final_Semkath}', "");
-    Expect(0, 1829, '\p{Jg=_	Final_Semkath}', "");
-    Expect(1, 1829, '\p{^Jg=_	Final_Semkath}', "");
-    Expect(1, 1829, '\P{Jg=_	Final_Semkath}', "");
-    Expect(0, 1829, '\P{^Jg=_	Final_Semkath}', "");
-    Error('\p{Is_Joining_Group=	Final_semkath:=}');
-    Error('\P{Is_Joining_Group=	Final_semkath:=}');
+    Expect(1, 1828, '\p{Jg=_FINAL_SEMKATH}', "");
+    Expect(0, 1828, '\p{^Jg=_FINAL_SEMKATH}', "");
+    Expect(0, 1828, '\P{Jg=_FINAL_SEMKATH}', "");
+    Expect(1, 1828, '\P{^Jg=_FINAL_SEMKATH}', "");
+    Expect(0, 1829, '\p{Jg=_FINAL_SEMKATH}', "");
+    Expect(1, 1829, '\p{^Jg=_FINAL_SEMKATH}', "");
+    Expect(1, 1829, '\P{Jg=_FINAL_SEMKATH}', "");
+    Expect(0, 1829, '\P{^Jg=_FINAL_SEMKATH}', "");
+    Error('\p{Is_Joining_Group=  FINAL_Semkath:=}');
+    Error('\P{Is_Joining_Group=  FINAL_Semkath:=}');
     Expect(1, 1828, '\p{Is_Joining_Group=finalsemkath}', "");
     Expect(0, 1828, '\p{^Is_Joining_Group=finalsemkath}', "");
     Expect(0, 1828, '\P{Is_Joining_Group=finalsemkath}', "");
@@ -54121,16 +54735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1829, '\p{^Is_Joining_Group=finalsemkath}', "");
     Expect(1, 1829, '\P{Is_Joining_Group=finalsemkath}', "");
     Expect(0, 1829, '\P{^Is_Joining_Group=finalsemkath}', "");
-    Expect(1, 1828, '\p{Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(0, 1828, '\p{^Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(0, 1828, '\P{Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(1, 1828, '\P{^Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(0, 1829, '\p{Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(1, 1829, '\p{^Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(1, 1829, '\P{Is_Joining_Group=_Final_SEMKATH}', "");
-    Expect(0, 1829, '\P{^Is_Joining_Group=_Final_SEMKATH}', "");
-    Error('\p{Is_Jg=:=Final_Semkath}');
-    Error('\P{Is_Jg=:=Final_Semkath}');
+    Expect(1, 1828, '\p{Is_Joining_Group: _Final_Semkath}', "");
+    Expect(0, 1828, '\p{^Is_Joining_Group: _Final_Semkath}', "");
+    Expect(0, 1828, '\P{Is_Joining_Group: _Final_Semkath}', "");
+    Expect(1, 1828, '\P{^Is_Joining_Group: _Final_Semkath}', "");
+    Expect(0, 1829, '\p{Is_Joining_Group: _Final_Semkath}', "");
+    Expect(1, 1829, '\p{^Is_Joining_Group: _Final_Semkath}', "");
+    Expect(1, 1829, '\P{Is_Joining_Group: _Final_Semkath}', "");
+    Expect(0, 1829, '\P{^Is_Joining_Group: _Final_Semkath}', "");
+    Error('\p{Is_Jg=_-FINAL_Semkath:=}');
+    Error('\P{Is_Jg=_-FINAL_Semkath:=}');
     Expect(1, 1828, '\p{Is_Jg=finalsemkath}', "");
     Expect(0, 1828, '\p{^Is_Jg=finalsemkath}', "");
     Expect(0, 1828, '\P{Is_Jg=finalsemkath}', "");
@@ -54139,16 +54753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1829, '\p{^Is_Jg=finalsemkath}', "");
     Expect(1, 1829, '\P{Is_Jg=finalsemkath}', "");
     Expect(0, 1829, '\P{^Is_Jg=finalsemkath}', "");
-    Expect(1, 1828, '\p{Is_Jg=- final_SEMKATH}', "");
-    Expect(0, 1828, '\p{^Is_Jg=- final_SEMKATH}', "");
-    Expect(0, 1828, '\P{Is_Jg=- final_SEMKATH}', "");
-    Expect(1, 1828, '\P{^Is_Jg=- final_SEMKATH}', "");
-    Expect(0, 1829, '\p{Is_Jg=- final_SEMKATH}', "");
-    Expect(1, 1829, '\p{^Is_Jg=- final_SEMKATH}', "");
-    Expect(1, 1829, '\P{Is_Jg=- final_SEMKATH}', "");
-    Expect(0, 1829, '\P{^Is_Jg=- final_SEMKATH}', "");
-    Error('\p{Joining_Group: - Gaf/a/}');
-    Error('\P{Joining_Group: - Gaf/a/}');
+    Expect(1, 1828, '\p{Is_Jg=	FINAL_Semkath}', "");
+    Expect(0, 1828, '\p{^Is_Jg=	FINAL_Semkath}', "");
+    Expect(0, 1828, '\P{Is_Jg=	FINAL_Semkath}', "");
+    Expect(1, 1828, '\P{^Is_Jg=	FINAL_Semkath}', "");
+    Expect(0, 1829, '\p{Is_Jg=	FINAL_Semkath}', "");
+    Expect(1, 1829, '\p{^Is_Jg=	FINAL_Semkath}', "");
+    Expect(1, 1829, '\P{Is_Jg=	FINAL_Semkath}', "");
+    Expect(0, 1829, '\P{^Is_Jg=	FINAL_Semkath}', "");
+    Error('\p{Joining_Group=_GAF/a/}');
+    Error('\P{Joining_Group=_GAF/a/}');
     Expect(1, 2248, '\p{Joining_Group=:\AGaf\z:}', "");;
     Expect(0, 2249, '\p{Joining_Group=:\AGaf\z:}', "");;
     Expect(1, 2248, '\p{Joining_Group=gaf}', "");
@@ -54161,16 +54775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2249, '\P{^Joining_Group=gaf}', "");
     Expect(1, 2248, '\p{Joining_Group=:\Agaf\z:}', "");;
     Expect(0, 2249, '\p{Joining_Group=:\Agaf\z:}', "");;
-    Expect(1, 2248, '\p{Joining_Group=_GAF}', "");
-    Expect(0, 2248, '\p{^Joining_Group=_GAF}', "");
-    Expect(0, 2248, '\P{Joining_Group=_GAF}', "");
-    Expect(1, 2248, '\P{^Joining_Group=_GAF}', "");
-    Expect(0, 2249, '\p{Joining_Group=_GAF}', "");
-    Expect(1, 2249, '\p{^Joining_Group=_GAF}', "");
-    Expect(1, 2249, '\P{Joining_Group=_GAF}', "");
-    Expect(0, 2249, '\P{^Joining_Group=_GAF}', "");
-    Error('\p{Jg=/a/-GAF}');
-    Error('\P{Jg=/a/-GAF}');
+    Expect(1, 2248, '\p{Joining_Group=-Gaf}', "");
+    Expect(0, 2248, '\p{^Joining_Group=-Gaf}', "");
+    Expect(0, 2248, '\P{Joining_Group=-Gaf}', "");
+    Expect(1, 2248, '\P{^Joining_Group=-Gaf}', "");
+    Expect(0, 2249, '\p{Joining_Group=-Gaf}', "");
+    Expect(1, 2249, '\p{^Joining_Group=-Gaf}', "");
+    Expect(1, 2249, '\P{Joining_Group=-Gaf}', "");
+    Expect(0, 2249, '\P{^Joining_Group=-Gaf}', "");
+    Error('\p{Jg=_:=Gaf}');
+    Error('\P{Jg=_:=Gaf}');
     Expect(1, 2248, '\p{Jg=:\AGaf\z:}', "");;
     Expect(0, 2249, '\p{Jg=:\AGaf\z:}', "");;
     Expect(1, 2248, '\p{Jg=gaf}', "");
@@ -54183,34 +54797,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2249, '\P{^Jg=gaf}', "");
     Expect(1, 2248, '\p{Jg=:\Agaf\z:}', "");;
     Expect(0, 2249, '\p{Jg=:\Agaf\z:}', "");;
-    Expect(1, 2248, '\p{Jg=_	Gaf}', "");
-    Expect(0, 2248, '\p{^Jg=_	Gaf}', "");
-    Expect(0, 2248, '\P{Jg=_	Gaf}', "");
-    Expect(1, 2248, '\P{^Jg=_	Gaf}', "");
-    Expect(0, 2249, '\p{Jg=_	Gaf}', "");
-    Expect(1, 2249, '\p{^Jg=_	Gaf}', "");
-    Expect(1, 2249, '\P{Jg=_	Gaf}', "");
-    Expect(0, 2249, '\P{^Jg=_	Gaf}', "");
-    Error('\p{Is_Joining_Group=-/a/GAF}');
-    Error('\P{Is_Joining_Group=-/a/GAF}');
-    Expect(1, 2248, '\p{Is_Joining_Group:   gaf}', "");
-    Expect(0, 2248, '\p{^Is_Joining_Group:   gaf}', "");
-    Expect(0, 2248, '\P{Is_Joining_Group:   gaf}', "");
-    Expect(1, 2248, '\P{^Is_Joining_Group:   gaf}', "");
-    Expect(0, 2249, '\p{Is_Joining_Group:   gaf}', "");
-    Expect(1, 2249, '\p{^Is_Joining_Group:   gaf}', "");
-    Expect(1, 2249, '\P{Is_Joining_Group:   gaf}', "");
-    Expect(0, 2249, '\P{^Is_Joining_Group:   gaf}', "");
-    Expect(1, 2248, '\p{Is_Joining_Group=- Gaf}', "");
-    Expect(0, 2248, '\p{^Is_Joining_Group=- Gaf}', "");
-    Expect(0, 2248, '\P{Is_Joining_Group=- Gaf}', "");
-    Expect(1, 2248, '\P{^Is_Joining_Group=- Gaf}', "");
-    Expect(0, 2249, '\p{Is_Joining_Group=- Gaf}', "");
-    Expect(1, 2249, '\p{^Is_Joining_Group=- Gaf}', "");
-    Expect(1, 2249, '\P{Is_Joining_Group=- Gaf}', "");
-    Expect(0, 2249, '\P{^Is_Joining_Group=- Gaf}', "");
-    Error('\p{Is_Jg=_ gaf:=}');
-    Error('\P{Is_Jg=_ gaf:=}');
+    Error('\p{Is_Joining_Group=	_gaf:=}');
+    Error('\P{Is_Joining_Group=	_gaf:=}');
+    Expect(1, 2248, '\p{Is_Joining_Group=gaf}', "");
+    Expect(0, 2248, '\p{^Is_Joining_Group=gaf}', "");
+    Expect(0, 2248, '\P{Is_Joining_Group=gaf}', "");
+    Expect(1, 2248, '\P{^Is_Joining_Group=gaf}', "");
+    Expect(0, 2249, '\p{Is_Joining_Group=gaf}', "");
+    Expect(1, 2249, '\p{^Is_Joining_Group=gaf}', "");
+    Expect(1, 2249, '\P{Is_Joining_Group=gaf}', "");
+    Expect(0, 2249, '\P{^Is_Joining_Group=gaf}', "");
+    Expect(1, 2248, '\p{Is_Joining_Group= Gaf}', "");
+    Expect(0, 2248, '\p{^Is_Joining_Group= Gaf}', "");
+    Expect(0, 2248, '\P{Is_Joining_Group= Gaf}', "");
+    Expect(1, 2248, '\P{^Is_Joining_Group= Gaf}', "");
+    Expect(0, 2249, '\p{Is_Joining_Group= Gaf}', "");
+    Expect(1, 2249, '\p{^Is_Joining_Group= Gaf}', "");
+    Expect(1, 2249, '\P{Is_Joining_Group= Gaf}', "");
+    Expect(0, 2249, '\P{^Is_Joining_Group= Gaf}', "");
+    Error('\p{Is_Jg=	 Gaf:=}');
+    Error('\P{Is_Jg=	 Gaf:=}');
     Expect(1, 2248, '\p{Is_Jg=gaf}', "");
     Expect(0, 2248, '\p{^Is_Jg=gaf}', "");
     Expect(0, 2248, '\P{Is_Jg=gaf}', "");
@@ -54219,16 +54825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2249, '\p{^Is_Jg=gaf}', "");
     Expect(1, 2249, '\P{Is_Jg=gaf}', "");
     Expect(0, 2249, '\P{^Is_Jg=gaf}', "");
-    Expect(1, 2248, '\p{Is_Jg= -GAF}', "");
-    Expect(0, 2248, '\p{^Is_Jg= -GAF}', "");
-    Expect(0, 2248, '\P{Is_Jg= -GAF}', "");
-    Expect(1, 2248, '\P{^Is_Jg= -GAF}', "");
-    Expect(0, 2249, '\p{Is_Jg= -GAF}', "");
-    Expect(1, 2249, '\p{^Is_Jg= -GAF}', "");
-    Expect(1, 2249, '\P{Is_Jg= -GAF}', "");
-    Expect(0, 2249, '\P{^Is_Jg= -GAF}', "");
-    Error('\p{Joining_Group=	Gamal/a/}');
-    Error('\P{Joining_Group=	Gamal/a/}');
+    Expect(1, 2248, '\p{Is_Jg=	-GAF}', "");
+    Expect(0, 2248, '\p{^Is_Jg=	-GAF}', "");
+    Expect(0, 2248, '\P{Is_Jg=	-GAF}', "");
+    Expect(1, 2248, '\P{^Is_Jg=	-GAF}', "");
+    Expect(0, 2249, '\p{Is_Jg=	-GAF}', "");
+    Expect(1, 2249, '\p{^Is_Jg=	-GAF}', "");
+    Expect(1, 2249, '\P{Is_Jg=	-GAF}', "");
+    Expect(0, 2249, '\P{^Is_Jg=	-GAF}', "");
+    Error('\p{Joining_Group=GAMAL:=}');
+    Error('\P{Joining_Group=GAMAL:=}');
     Expect(1, 1838, '\p{Joining_Group=:\AGamal\z:}', "");;
     Expect(0, 1839, '\p{Joining_Group=:\AGamal\z:}', "");;
     Expect(1, 1838, '\p{Joining_Group=gamal}', "");
@@ -54241,16 +54847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1839, '\P{^Joining_Group=gamal}', "");
     Expect(1, 1838, '\p{Joining_Group=:\Agamal\z:}', "");;
     Expect(0, 1839, '\p{Joining_Group=:\Agamal\z:}', "");;
-    Expect(1, 1838, '\p{Joining_Group=	_gamal}', "");
-    Expect(0, 1838, '\p{^Joining_Group=	_gamal}', "");
-    Expect(0, 1838, '\P{Joining_Group=	_gamal}', "");
-    Expect(1, 1838, '\P{^Joining_Group=	_gamal}', "");
-    Expect(0, 1839, '\p{Joining_Group=	_gamal}', "");
-    Expect(1, 1839, '\p{^Joining_Group=	_gamal}', "");
-    Expect(1, 1839, '\P{Joining_Group=	_gamal}', "");
-    Expect(0, 1839, '\P{^Joining_Group=	_gamal}', "");
-    Error('\p{Jg=:= 	Gamal}');
-    Error('\P{Jg=:= 	Gamal}');
+    Expect(1, 1838, '\p{Joining_Group:		gamal}', "");
+    Expect(0, 1838, '\p{^Joining_Group:		gamal}', "");
+    Expect(0, 1838, '\P{Joining_Group:		gamal}', "");
+    Expect(1, 1838, '\P{^Joining_Group:		gamal}', "");
+    Expect(0, 1839, '\p{Joining_Group:		gamal}', "");
+    Expect(1, 1839, '\p{^Joining_Group:		gamal}', "");
+    Expect(1, 1839, '\P{Joining_Group:		gamal}', "");
+    Expect(0, 1839, '\P{^Joining_Group:		gamal}', "");
+    Error('\p{Jg= -gamal:=}');
+    Error('\P{Jg= -gamal:=}');
     Expect(1, 1838, '\p{Jg=:\AGamal\z:}', "");;
     Expect(0, 1839, '\p{Jg=:\AGamal\z:}', "");;
     Expect(1, 1838, '\p{Jg=gamal}', "");
@@ -54263,16 +54869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1839, '\P{^Jg=gamal}', "");
     Expect(1, 1838, '\p{Jg=:\Agamal\z:}', "");;
     Expect(0, 1839, '\p{Jg=:\Agamal\z:}', "");;
-    Expect(1, 1838, '\p{Jg=	 Gamal}', "");
-    Expect(0, 1838, '\p{^Jg=	 Gamal}', "");
-    Expect(0, 1838, '\P{Jg=	 Gamal}', "");
-    Expect(1, 1838, '\P{^Jg=	 Gamal}', "");
-    Expect(0, 1839, '\p{Jg=	 Gamal}', "");
-    Expect(1, 1839, '\p{^Jg=	 Gamal}', "");
-    Expect(1, 1839, '\P{Jg=	 Gamal}', "");
-    Expect(0, 1839, '\P{^Jg=	 Gamal}', "");
-    Error('\p{Is_Joining_Group=:=gamal}');
-    Error('\P{Is_Joining_Group=:=gamal}');
+    Expect(1, 1838, '\p{Jg=-Gamal}', "");
+    Expect(0, 1838, '\p{^Jg=-Gamal}', "");
+    Expect(0, 1838, '\P{Jg=-Gamal}', "");
+    Expect(1, 1838, '\P{^Jg=-Gamal}', "");
+    Expect(0, 1839, '\p{Jg=-Gamal}', "");
+    Expect(1, 1839, '\p{^Jg=-Gamal}', "");
+    Expect(1, 1839, '\P{Jg=-Gamal}', "");
+    Expect(0, 1839, '\P{^Jg=-Gamal}', "");
+    Error('\p{Is_Joining_Group=:=-	Gamal}');
+    Error('\P{Is_Joining_Group=:=-	Gamal}');
     Expect(1, 1838, '\p{Is_Joining_Group=gamal}', "");
     Expect(0, 1838, '\p{^Is_Joining_Group=gamal}', "");
     Expect(0, 1838, '\P{Is_Joining_Group=gamal}', "");
@@ -54281,34 +54887,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1839, '\p{^Is_Joining_Group=gamal}', "");
     Expect(1, 1839, '\P{Is_Joining_Group=gamal}', "");
     Expect(0, 1839, '\P{^Is_Joining_Group=gamal}', "");
-    Expect(1, 1838, '\p{Is_Joining_Group=-_Gamal}', "");
-    Expect(0, 1838, '\p{^Is_Joining_Group=-_Gamal}', "");
-    Expect(0, 1838, '\P{Is_Joining_Group=-_Gamal}', "");
-    Expect(1, 1838, '\P{^Is_Joining_Group=-_Gamal}', "");
-    Expect(0, 1839, '\p{Is_Joining_Group=-_Gamal}', "");
-    Expect(1, 1839, '\p{^Is_Joining_Group=-_Gamal}', "");
-    Expect(1, 1839, '\P{Is_Joining_Group=-_Gamal}', "");
-    Expect(0, 1839, '\P{^Is_Joining_Group=-_Gamal}', "");
-    Error('\p{Is_Jg= gamal/a/}');
-    Error('\P{Is_Jg= gamal/a/}');
-    Expect(1, 1838, '\p{Is_Jg:   gamal}', "");
-    Expect(0, 1838, '\p{^Is_Jg:   gamal}', "");
-    Expect(0, 1838, '\P{Is_Jg:   gamal}', "");
-    Expect(1, 1838, '\P{^Is_Jg:   gamal}', "");
-    Expect(0, 1839, '\p{Is_Jg:   gamal}', "");
-    Expect(1, 1839, '\p{^Is_Jg:   gamal}', "");
-    Expect(1, 1839, '\P{Is_Jg:   gamal}', "");
-    Expect(0, 1839, '\P{^Is_Jg:   gamal}', "");
-    Expect(1, 1838, '\p{Is_Jg=- gamal}', "");
-    Expect(0, 1838, '\p{^Is_Jg=- gamal}', "");
-    Expect(0, 1838, '\P{Is_Jg=- gamal}', "");
-    Expect(1, 1838, '\P{^Is_Jg=- gamal}', "");
-    Expect(0, 1839, '\p{Is_Jg=- gamal}', "");
-    Expect(1, 1839, '\p{^Is_Jg=- gamal}', "");
-    Expect(1, 1839, '\P{Is_Jg=- gamal}', "");
-    Expect(0, 1839, '\P{^Is_Jg=- gamal}', "");
-    Error('\p{Joining_Group=/a/__hah}');
-    Error('\P{Joining_Group=/a/__hah}');
+    Expect(1, 1838, '\p{Is_Joining_Group=	Gamal}', "");
+    Expect(0, 1838, '\p{^Is_Joining_Group=	Gamal}', "");
+    Expect(0, 1838, '\P{Is_Joining_Group=	Gamal}', "");
+    Expect(1, 1838, '\P{^Is_Joining_Group=	Gamal}', "");
+    Expect(0, 1839, '\p{Is_Joining_Group=	Gamal}', "");
+    Expect(1, 1839, '\p{^Is_Joining_Group=	Gamal}', "");
+    Expect(1, 1839, '\P{Is_Joining_Group=	Gamal}', "");
+    Expect(0, 1839, '\P{^Is_Joining_Group=	Gamal}', "");
+    Error('\p{Is_Jg: Gamal/a/}');
+    Error('\P{Is_Jg: Gamal/a/}');
+    Expect(1, 1838, '\p{Is_Jg=gamal}', "");
+    Expect(0, 1838, '\p{^Is_Jg=gamal}', "");
+    Expect(0, 1838, '\P{Is_Jg=gamal}', "");
+    Expect(1, 1838, '\P{^Is_Jg=gamal}', "");
+    Expect(0, 1839, '\p{Is_Jg=gamal}', "");
+    Expect(1, 1839, '\p{^Is_Jg=gamal}', "");
+    Expect(1, 1839, '\P{Is_Jg=gamal}', "");
+    Expect(0, 1839, '\P{^Is_Jg=gamal}', "");
+    Expect(1, 1838, '\p{Is_Jg=  Gamal}', "");
+    Expect(0, 1838, '\p{^Is_Jg=  Gamal}', "");
+    Expect(0, 1838, '\P{Is_Jg=  Gamal}', "");
+    Expect(1, 1838, '\P{^Is_Jg=  Gamal}', "");
+    Expect(0, 1839, '\p{Is_Jg=  Gamal}', "");
+    Expect(1, 1839, '\p{^Is_Jg=  Gamal}', "");
+    Expect(1, 1839, '\P{Is_Jg=  Gamal}', "");
+    Expect(0, 1839, '\P{^Is_Jg=  Gamal}', "");
+    Error('\p{Joining_Group=/a/Hah}');
+    Error('\P{Joining_Group=/a/Hah}');
     Expect(1, 2246, '\p{Joining_Group=:\AHah\z:}', "");;
     Expect(0, 2247, '\p{Joining_Group=:\AHah\z:}', "");;
     Expect(1, 2246, '\p{Joining_Group=hah}', "");
@@ -54321,38 +54927,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2247, '\P{^Joining_Group=hah}', "");
     Expect(1, 2246, '\p{Joining_Group=:\Ahah\z:}', "");;
     Expect(0, 2247, '\p{Joining_Group=:\Ahah\z:}', "");;
-    Expect(1, 2246, '\p{Joining_Group=_-Hah}', "");
-    Expect(0, 2246, '\p{^Joining_Group=_-Hah}', "");
-    Expect(0, 2246, '\P{Joining_Group=_-Hah}', "");
-    Expect(1, 2246, '\P{^Joining_Group=_-Hah}', "");
-    Expect(0, 2247, '\p{Joining_Group=_-Hah}', "");
-    Expect(1, 2247, '\p{^Joining_Group=_-Hah}', "");
-    Expect(1, 2247, '\P{Joining_Group=_-Hah}', "");
-    Expect(0, 2247, '\P{^Joining_Group=_-Hah}', "");
-    Error('\p{Jg:-_hah:=}');
-    Error('\P{Jg:-_hah:=}');
+    Expect(1, 2246, '\p{Joining_Group:    Hah}', "");
+    Expect(0, 2246, '\p{^Joining_Group:    Hah}', "");
+    Expect(0, 2246, '\P{Joining_Group:    Hah}', "");
+    Expect(1, 2246, '\P{^Joining_Group:    Hah}', "");
+    Expect(0, 2247, '\p{Joining_Group:    Hah}', "");
+    Expect(1, 2247, '\p{^Joining_Group:    Hah}', "");
+    Expect(1, 2247, '\P{Joining_Group:    Hah}', "");
+    Expect(0, 2247, '\P{^Joining_Group:    Hah}', "");
+    Error('\p{Jg=:= -Hah}');
+    Error('\P{Jg=:= -Hah}');
     Expect(1, 2246, '\p{Jg=:\AHah\z:}', "");;
     Expect(0, 2247, '\p{Jg=:\AHah\z:}', "");;
-    Expect(1, 2246, '\p{Jg:	hah}', "");
-    Expect(0, 2246, '\p{^Jg:	hah}', "");
-    Expect(0, 2246, '\P{Jg:	hah}', "");
-    Expect(1, 2246, '\P{^Jg:	hah}', "");
-    Expect(0, 2247, '\p{Jg:	hah}', "");
-    Expect(1, 2247, '\p{^Jg:	hah}', "");
-    Expect(1, 2247, '\P{Jg:	hah}', "");
-    Expect(0, 2247, '\P{^Jg:	hah}', "");
+    Expect(1, 2246, '\p{Jg=hah}', "");
+    Expect(0, 2246, '\p{^Jg=hah}', "");
+    Expect(0, 2246, '\P{Jg=hah}', "");
+    Expect(1, 2246, '\P{^Jg=hah}', "");
+    Expect(0, 2247, '\p{Jg=hah}', "");
+    Expect(1, 2247, '\p{^Jg=hah}', "");
+    Expect(1, 2247, '\P{Jg=hah}', "");
+    Expect(0, 2247, '\P{^Jg=hah}', "");
     Expect(1, 2246, '\p{Jg=:\Ahah\z:}', "");;
     Expect(0, 2247, '\p{Jg=:\Ahah\z:}', "");;
-    Expect(1, 2246, '\p{Jg=-Hah}', "");
-    Expect(0, 2246, '\p{^Jg=-Hah}', "");
-    Expect(0, 2246, '\P{Jg=-Hah}', "");
-    Expect(1, 2246, '\P{^Jg=-Hah}', "");
-    Expect(0, 2247, '\p{Jg=-Hah}', "");
-    Expect(1, 2247, '\p{^Jg=-Hah}', "");
-    Expect(1, 2247, '\P{Jg=-Hah}', "");
-    Expect(0, 2247, '\P{^Jg=-Hah}', "");
-    Error('\p{Is_Joining_Group=_ Hah/a/}');
-    Error('\P{Is_Joining_Group=_ Hah/a/}');
+    Expect(1, 2246, '\p{Jg=	HAH}', "");
+    Expect(0, 2246, '\p{^Jg=	HAH}', "");
+    Expect(0, 2246, '\P{Jg=	HAH}', "");
+    Expect(1, 2246, '\P{^Jg=	HAH}', "");
+    Expect(0, 2247, '\p{Jg=	HAH}', "");
+    Expect(1, 2247, '\p{^Jg=	HAH}', "");
+    Expect(1, 2247, '\P{Jg=	HAH}', "");
+    Expect(0, 2247, '\P{^Jg=	HAH}', "");
+    Error('\p{Is_Joining_Group=:=_Hah}');
+    Error('\P{Is_Joining_Group=:=_Hah}');
     Expect(1, 2246, '\p{Is_Joining_Group=hah}', "");
     Expect(0, 2246, '\p{^Is_Joining_Group=hah}', "");
     Expect(0, 2246, '\P{Is_Joining_Group=hah}', "");
@@ -54361,24 +54967,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2247, '\p{^Is_Joining_Group=hah}', "");
     Expect(1, 2247, '\P{Is_Joining_Group=hah}', "");
     Expect(0, 2247, '\P{^Is_Joining_Group=hah}', "");
-    Expect(1, 2246, '\p{Is_Joining_Group= -Hah}', "");
-    Expect(0, 2246, '\p{^Is_Joining_Group= -Hah}', "");
-    Expect(0, 2246, '\P{Is_Joining_Group= -Hah}', "");
-    Expect(1, 2246, '\P{^Is_Joining_Group= -Hah}', "");
-    Expect(0, 2247, '\p{Is_Joining_Group= -Hah}', "");
-    Expect(1, 2247, '\p{^Is_Joining_Group= -Hah}', "");
-    Expect(1, 2247, '\P{Is_Joining_Group= -Hah}', "");
-    Expect(0, 2247, '\P{^Is_Joining_Group= -Hah}', "");
-    Error('\p{Is_Jg= :=HAH}');
-    Error('\P{Is_Jg= :=HAH}');
-    Expect(1, 2246, '\p{Is_Jg:	hah}', "");
-    Expect(0, 2246, '\p{^Is_Jg:	hah}', "");
-    Expect(0, 2246, '\P{Is_Jg:	hah}', "");
-    Expect(1, 2246, '\P{^Is_Jg:	hah}', "");
-    Expect(0, 2247, '\p{Is_Jg:	hah}', "");
-    Expect(1, 2247, '\p{^Is_Jg:	hah}', "");
-    Expect(1, 2247, '\P{Is_Jg:	hah}', "");
-    Expect(0, 2247, '\P{^Is_Jg:	hah}', "");
+    Expect(1, 2246, '\p{Is_Joining_Group:--Hah}', "");
+    Expect(0, 2246, '\p{^Is_Joining_Group:--Hah}', "");
+    Expect(0, 2246, '\P{Is_Joining_Group:--Hah}', "");
+    Expect(1, 2246, '\P{^Is_Joining_Group:--Hah}', "");
+    Expect(0, 2247, '\p{Is_Joining_Group:--Hah}', "");
+    Expect(1, 2247, '\p{^Is_Joining_Group:--Hah}', "");
+    Expect(1, 2247, '\P{Is_Joining_Group:--Hah}', "");
+    Expect(0, 2247, '\P{^Is_Joining_Group:--Hah}', "");
+    Error('\p{Is_Jg=_ HAH/a/}');
+    Error('\P{Is_Jg=_ HAH/a/}');
+    Expect(1, 2246, '\p{Is_Jg=hah}', "");
+    Expect(0, 2246, '\p{^Is_Jg=hah}', "");
+    Expect(0, 2246, '\P{Is_Jg=hah}', "");
+    Expect(1, 2246, '\P{^Is_Jg=hah}', "");
+    Expect(0, 2247, '\p{Is_Jg=hah}', "");
+    Expect(1, 2247, '\p{^Is_Jg=hah}', "");
+    Expect(1, 2247, '\P{Is_Jg=hah}', "");
+    Expect(0, 2247, '\P{^Is_Jg=hah}', "");
     Expect(1, 2246, '\p{Is_Jg=_Hah}', "");
     Expect(0, 2246, '\p{^Is_Jg=_Hah}', "");
     Expect(0, 2246, '\P{Is_Jg=_Hah}', "");
@@ -54387,8 +54993,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2247, '\p{^Is_Jg=_Hah}', "");
     Expect(1, 2247, '\P{Is_Jg=_Hah}', "");
     Expect(0, 2247, '\P{^Is_Jg=_Hah}', "");
-    Error('\p{Joining_Group=:= 	Hanifi_rohingya_kinna_ya}');
-    Error('\P{Joining_Group=:= 	Hanifi_rohingya_kinna_ya}');
+    Error('\p{Joining_Group:   	:=hanifi_Rohingya_KINNA_ya}');
+    Error('\P{Joining_Group:   	:=hanifi_Rohingya_KINNA_ya}');
     Expect(1, 68899, '\p{Joining_Group=:\AHanifi_Rohingya_Kinna_Ya\z:}', "");;
     Expect(0, 68900, '\p{Joining_Group=:\AHanifi_Rohingya_Kinna_Ya\z:}', "");;
     Expect(1, 68899, '\p{Joining_Group=hanifirohingyakinnaya}', "");
@@ -54401,16 +55007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68900, '\P{^Joining_Group=hanifirohingyakinnaya}', "");
     Expect(1, 68899, '\p{Joining_Group=:\Ahanifirohingyakinnaya\z:}', "");;
     Expect(0, 68900, '\p{Joining_Group=:\Ahanifirohingyakinnaya\z:}', "");;
-    Expect(1, 68899, '\p{Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(0, 68899, '\p{^Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(0, 68899, '\P{Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(1, 68899, '\P{^Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(0, 68900, '\p{Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(1, 68900, '\p{^Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(1, 68900, '\P{Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Expect(0, 68900, '\P{^Joining_Group= 	Hanifi_Rohingya_Kinna_ya}', "");
-    Error('\p{Jg=:= 	Hanifi_Rohingya_Kinna_YA}');
-    Error('\P{Jg=:= 	Hanifi_Rohingya_Kinna_YA}');
+    Expect(1, 68899, '\p{Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(0, 68899, '\p{^Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(0, 68899, '\P{Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(1, 68899, '\P{^Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(0, 68900, '\p{Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(1, 68900, '\p{^Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(1, 68900, '\P{Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Expect(0, 68900, '\P{^Joining_Group= 	HANIFI_Rohingya_kinna_Ya}', "");
+    Error('\p{Jg=-_Hanifi_ROHINGYA_Kinna_Ya/a/}');
+    Error('\P{Jg=-_Hanifi_ROHINGYA_Kinna_Ya/a/}');
     Expect(1, 68899, '\p{Jg=:\AHanifi_Rohingya_Kinna_Ya\z:}', "");;
     Expect(0, 68900, '\p{Jg=:\AHanifi_Rohingya_Kinna_Ya\z:}', "");;
     Expect(1, 68899, '\p{Jg=hanifirohingyakinnaya}', "");
@@ -54423,16 +55029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68900, '\P{^Jg=hanifirohingyakinnaya}', "");
     Expect(1, 68899, '\p{Jg=:\Ahanifirohingyakinnaya\z:}', "");;
     Expect(0, 68900, '\p{Jg=:\Ahanifirohingyakinnaya\z:}', "");;
-    Expect(1, 68899, '\p{Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(0, 68899, '\p{^Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(0, 68899, '\P{Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(1, 68899, '\P{^Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(0, 68900, '\p{Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(1, 68900, '\p{^Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(1, 68900, '\P{Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Expect(0, 68900, '\P{^Jg=  Hanifi_Rohingya_KINNA_ya}', "");
-    Error('\p{Is_Joining_Group=/a/ 	HANIFI_Rohingya_Kinna_ya}');
-    Error('\P{Is_Joining_Group=/a/ 	HANIFI_Rohingya_Kinna_ya}');
+    Expect(1, 68899, '\p{Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(0, 68899, '\p{^Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(0, 68899, '\P{Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(1, 68899, '\P{^Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(0, 68900, '\p{Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(1, 68900, '\p{^Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(1, 68900, '\P{Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Expect(0, 68900, '\P{^Jg=- hanifi_Rohingya_Kinna_Ya}', "");
+    Error('\p{Is_Joining_Group= _HANIFI_ROHINGYA_Kinna_Ya:=}');
+    Error('\P{Is_Joining_Group= _HANIFI_ROHINGYA_Kinna_Ya:=}');
     Expect(1, 68899, '\p{Is_Joining_Group=hanifirohingyakinnaya}', "");
     Expect(0, 68899, '\p{^Is_Joining_Group=hanifirohingyakinnaya}', "");
     Expect(0, 68899, '\P{Is_Joining_Group=hanifirohingyakinnaya}', "");
@@ -54441,16 +55047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68900, '\p{^Is_Joining_Group=hanifirohingyakinnaya}', "");
     Expect(1, 68900, '\P{Is_Joining_Group=hanifirohingyakinnaya}', "");
     Expect(0, 68900, '\P{^Is_Joining_Group=hanifirohingyakinnaya}', "");
-    Expect(1, 68899, '\p{Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(0, 68899, '\p{^Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(0, 68899, '\P{Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(1, 68899, '\P{^Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(0, 68900, '\p{Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(1, 68900, '\p{^Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(1, 68900, '\P{Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Expect(0, 68900, '\P{^Is_Joining_Group= hanifi_Rohingya_kinna_YA}', "");
-    Error('\p{Is_Jg=	 Hanifi_Rohingya_Kinna_Ya/a/}');
-    Error('\P{Is_Jg=	 Hanifi_Rohingya_Kinna_Ya/a/}');
+    Expect(1, 68899, '\p{Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(0, 68899, '\p{^Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(0, 68899, '\P{Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(1, 68899, '\P{^Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(0, 68900, '\p{Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(1, 68900, '\p{^Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(1, 68900, '\P{Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Expect(0, 68900, '\P{^Is_Joining_Group=	-Hanifi_rohingya_Kinna_Ya}', "");
+    Error('\p{Is_Jg=-hanifi_Rohingya_Kinna_ya/a/}');
+    Error('\P{Is_Jg=-hanifi_Rohingya_Kinna_ya/a/}');
     Expect(1, 68899, '\p{Is_Jg=hanifirohingyakinnaya}', "");
     Expect(0, 68899, '\p{^Is_Jg=hanifirohingyakinnaya}', "");
     Expect(0, 68899, '\P{Is_Jg=hanifirohingyakinnaya}', "");
@@ -54459,16 +55065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68900, '\p{^Is_Jg=hanifirohingyakinnaya}', "");
     Expect(1, 68900, '\P{Is_Jg=hanifirohingyakinnaya}', "");
     Expect(0, 68900, '\P{^Is_Jg=hanifirohingyakinnaya}', "");
-    Expect(1, 68899, '\p{Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(0, 68899, '\p{^Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(0, 68899, '\P{Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(1, 68899, '\P{^Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(0, 68900, '\p{Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(1, 68900, '\p{^Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(1, 68900, '\P{Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Expect(0, 68900, '\P{^Is_Jg=	 Hanifi_ROHINGYA_Kinna_ya}', "");
-    Error('\p{Joining_Group:	_/a/HANIFI_Rohingya_Pa}');
-    Error('\P{Joining_Group:	_/a/HANIFI_Rohingya_Pa}');
+    Expect(1, 68899, '\p{Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(0, 68899, '\p{^Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(0, 68899, '\P{Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(1, 68899, '\P{^Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(0, 68900, '\p{Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(1, 68900, '\p{^Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(1, 68900, '\P{Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Expect(0, 68900, '\P{^Is_Jg=- Hanifi_ROHINGYA_KINNA_ya}', "");
+    Error('\p{Joining_Group=_:=HANIFI_Rohingya_pa}');
+    Error('\P{Joining_Group=_:=HANIFI_Rohingya_pa}');
     Expect(1, 68892, '\p{Joining_Group=:\AHanifi_Rohingya_Pa\z:}', "");;
     Expect(0, 68893, '\p{Joining_Group=:\AHanifi_Rohingya_Pa\z:}', "");;
     Expect(1, 68892, '\p{Joining_Group=hanifirohingyapa}', "");
@@ -54481,16 +55087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68893, '\P{^Joining_Group=hanifirohingyapa}', "");
     Expect(1, 68892, '\p{Joining_Group=:\Ahanifirohingyapa\z:}', "");;
     Expect(0, 68893, '\p{Joining_Group=:\Ahanifirohingyapa\z:}', "");;
-    Expect(1, 68892, '\p{Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(0, 68892, '\p{^Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(0, 68892, '\P{Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(1, 68892, '\P{^Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(0, 68893, '\p{Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(1, 68893, '\p{^Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(1, 68893, '\P{Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Expect(0, 68893, '\P{^Joining_Group=	 HANIFI_Rohingya_PA}', "");
-    Error('\p{Jg:   -:=Hanifi_ROHINGYA_pa}');
-    Error('\P{Jg:   -:=Hanifi_ROHINGYA_pa}');
+    Expect(1, 68892, '\p{Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(0, 68892, '\p{^Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(0, 68892, '\P{Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(1, 68892, '\P{^Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(0, 68893, '\p{Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(1, 68893, '\p{^Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(1, 68893, '\P{Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Expect(0, 68893, '\P{^Joining_Group=-	HANIFI_Rohingya_pa}', "");
+    Error('\p{Jg=_-HANIFI_ROHINGYA_pa:=}');
+    Error('\P{Jg=_-HANIFI_ROHINGYA_pa:=}');
     Expect(1, 68892, '\p{Jg=:\AHanifi_Rohingya_Pa\z:}', "");;
     Expect(0, 68893, '\p{Jg=:\AHanifi_Rohingya_Pa\z:}', "");;
     Expect(1, 68892, '\p{Jg=hanifirohingyapa}', "");
@@ -54503,16 +55109,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68893, '\P{^Jg=hanifirohingyapa}', "");
     Expect(1, 68892, '\p{Jg=:\Ahanifirohingyapa\z:}', "");;
     Expect(0, 68893, '\p{Jg=:\Ahanifirohingyapa\z:}', "");;
-    Expect(1, 68892, '\p{Jg: hanifi_Rohingya_Pa}', "");
-    Expect(0, 68892, '\p{^Jg: hanifi_Rohingya_Pa}', "");
-    Expect(0, 68892, '\P{Jg: hanifi_Rohingya_Pa}', "");
-    Expect(1, 68892, '\P{^Jg: hanifi_Rohingya_Pa}', "");
-    Expect(0, 68893, '\p{Jg: hanifi_Rohingya_Pa}', "");
-    Expect(1, 68893, '\p{^Jg: hanifi_Rohingya_Pa}', "");
-    Expect(1, 68893, '\P{Jg: hanifi_Rohingya_Pa}', "");
-    Expect(0, 68893, '\P{^Jg: hanifi_Rohingya_Pa}', "");
-    Error('\p{Is_Joining_Group=:=	_hanifi_ROHINGYA_Pa}');
-    Error('\P{Is_Joining_Group=:=	_hanifi_ROHINGYA_Pa}');
+    Expect(1, 68892, '\p{Jg=  hanifi_rohingya_PA}', "");
+    Expect(0, 68892, '\p{^Jg=  hanifi_rohingya_PA}', "");
+    Expect(0, 68892, '\P{Jg=  hanifi_rohingya_PA}', "");
+    Expect(1, 68892, '\P{^Jg=  hanifi_rohingya_PA}', "");
+    Expect(0, 68893, '\p{Jg=  hanifi_rohingya_PA}', "");
+    Expect(1, 68893, '\p{^Jg=  hanifi_rohingya_PA}', "");
+    Expect(1, 68893, '\P{Jg=  hanifi_rohingya_PA}', "");
+    Expect(0, 68893, '\P{^Jg=  hanifi_rohingya_PA}', "");
+    Error('\p{Is_Joining_Group::=-	Hanifi_ROHINGYA_PA}');
+    Error('\P{Is_Joining_Group::=-	Hanifi_ROHINGYA_PA}');
     Expect(1, 68892, '\p{Is_Joining_Group=hanifirohingyapa}', "");
     Expect(0, 68892, '\p{^Is_Joining_Group=hanifirohingyapa}', "");
     Expect(0, 68892, '\P{Is_Joining_Group=hanifirohingyapa}', "");
@@ -54521,16 +55127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68893, '\p{^Is_Joining_Group=hanifirohingyapa}', "");
     Expect(1, 68893, '\P{Is_Joining_Group=hanifirohingyapa}', "");
     Expect(0, 68893, '\P{^Is_Joining_Group=hanifirohingyapa}', "");
-    Expect(1, 68892, '\p{Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(0, 68892, '\p{^Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(0, 68892, '\P{Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(1, 68892, '\P{^Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(0, 68893, '\p{Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(1, 68893, '\p{^Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(1, 68893, '\P{Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Expect(0, 68893, '\P{^Is_Joining_Group=_Hanifi_Rohingya_Pa}', "");
-    Error('\p{Is_Jg:   :=Hanifi_Rohingya_Pa}');
-    Error('\P{Is_Jg:   :=Hanifi_Rohingya_Pa}');
+    Expect(1, 68892, '\p{Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(0, 68892, '\p{^Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(0, 68892, '\P{Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(1, 68892, '\P{^Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(0, 68893, '\p{Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(1, 68893, '\p{^Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(1, 68893, '\P{Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Expect(0, 68893, '\P{^Is_Joining_Group= Hanifi_rohingya_Pa}', "");
+    Error('\p{Is_Jg=:=hanifi_ROHINGYA_Pa}');
+    Error('\P{Is_Jg=:=hanifi_ROHINGYA_Pa}');
     Expect(1, 68892, '\p{Is_Jg=hanifirohingyapa}', "");
     Expect(0, 68892, '\p{^Is_Jg=hanifirohingyapa}', "");
     Expect(0, 68892, '\P{Is_Jg=hanifirohingyapa}', "");
@@ -54539,16 +55145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68893, '\p{^Is_Jg=hanifirohingyapa}', "");
     Expect(1, 68893, '\P{Is_Jg=hanifirohingyapa}', "");
     Expect(0, 68893, '\P{^Is_Jg=hanifirohingyapa}', "");
-    Expect(1, 68892, '\p{Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(0, 68892, '\p{^Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(0, 68892, '\P{Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(1, 68892, '\P{^Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(0, 68893, '\p{Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(1, 68893, '\p{^Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(1, 68893, '\P{Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Expect(0, 68893, '\P{^Is_Jg=-_hanifi_rohingya_Pa}', "");
-    Error('\p{Joining_Group=/a/HE}');
-    Error('\P{Joining_Group=/a/HE}');
+    Expect(1, 68892, '\p{Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(0, 68892, '\p{^Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(0, 68892, '\P{Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(1, 68892, '\P{^Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(0, 68893, '\p{Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(1, 68893, '\p{^Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(1, 68893, '\P{Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Expect(0, 68893, '\P{^Is_Jg= 	Hanifi_Rohingya_pa}', "");
+    Error('\p{Joining_Group=_:=He}');
+    Error('\P{Joining_Group=_:=He}');
     Expect(1, 1815, '\p{Joining_Group=:\AHe\z:}', "");;
     Expect(0, 1816, '\p{Joining_Group=:\AHe\z:}', "");;
     Expect(1, 1815, '\p{Joining_Group=he}', "");
@@ -54561,38 +55167,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1816, '\P{^Joining_Group=he}', "");
     Expect(1, 1815, '\p{Joining_Group=:\Ahe\z:}', "");;
     Expect(0, 1816, '\p{Joining_Group=:\Ahe\z:}', "");;
-    Expect(1, 1815, '\p{Joining_Group=	-he}', "");
-    Expect(0, 1815, '\p{^Joining_Group=	-he}', "");
-    Expect(0, 1815, '\P{Joining_Group=	-he}', "");
-    Expect(1, 1815, '\P{^Joining_Group=	-he}', "");
-    Expect(0, 1816, '\p{Joining_Group=	-he}', "");
-    Expect(1, 1816, '\p{^Joining_Group=	-he}', "");
-    Expect(1, 1816, '\P{Joining_Group=	-he}', "");
-    Expect(0, 1816, '\P{^Joining_Group=	-he}', "");
-    Error('\p{Jg= -HE:=}');
-    Error('\P{Jg= -HE:=}');
+    Expect(1, 1815, '\p{Joining_Group=	He}', "");
+    Expect(0, 1815, '\p{^Joining_Group=	He}', "");
+    Expect(0, 1815, '\P{Joining_Group=	He}', "");
+    Expect(1, 1815, '\P{^Joining_Group=	He}', "");
+    Expect(0, 1816, '\p{Joining_Group=	He}', "");
+    Expect(1, 1816, '\p{^Joining_Group=	He}', "");
+    Expect(1, 1816, '\P{Joining_Group=	He}', "");
+    Expect(0, 1816, '\P{^Joining_Group=	He}', "");
+    Error('\p{Jg=-/a/He}');
+    Error('\P{Jg=-/a/He}');
     Expect(1, 1815, '\p{Jg=:\AHe\z:}', "");;
     Expect(0, 1816, '\p{Jg=:\AHe\z:}', "");;
-    Expect(1, 1815, '\p{Jg=he}', "");
-    Expect(0, 1815, '\p{^Jg=he}', "");
-    Expect(0, 1815, '\P{Jg=he}', "");
-    Expect(1, 1815, '\P{^Jg=he}', "");
-    Expect(0, 1816, '\p{Jg=he}', "");
-    Expect(1, 1816, '\p{^Jg=he}', "");
-    Expect(1, 1816, '\P{Jg=he}', "");
-    Expect(0, 1816, '\P{^Jg=he}', "");
+    Expect(1, 1815, '\p{Jg:	he}', "");
+    Expect(0, 1815, '\p{^Jg:	he}', "");
+    Expect(0, 1815, '\P{Jg:	he}', "");
+    Expect(1, 1815, '\P{^Jg:	he}', "");
+    Expect(0, 1816, '\p{Jg:	he}', "");
+    Expect(1, 1816, '\p{^Jg:	he}', "");
+    Expect(1, 1816, '\P{Jg:	he}', "");
+    Expect(0, 1816, '\P{^Jg:	he}', "");
     Expect(1, 1815, '\p{Jg=:\Ahe\z:}', "");;
     Expect(0, 1816, '\p{Jg=:\Ahe\z:}', "");;
-    Expect(1, 1815, '\p{Jg=-	he}', "");
-    Expect(0, 1815, '\p{^Jg=-	he}', "");
-    Expect(0, 1815, '\P{Jg=-	he}', "");
-    Expect(1, 1815, '\P{^Jg=-	he}', "");
-    Expect(0, 1816, '\p{Jg=-	he}', "");
-    Expect(1, 1816, '\p{^Jg=-	he}', "");
-    Expect(1, 1816, '\P{Jg=-	he}', "");
-    Expect(0, 1816, '\P{^Jg=-	he}', "");
-    Error('\p{Is_Joining_Group: /a/He}');
-    Error('\P{Is_Joining_Group: /a/He}');
+    Expect(1, 1815, '\p{Jg=-_He}', "");
+    Expect(0, 1815, '\p{^Jg=-_He}', "");
+    Expect(0, 1815, '\P{Jg=-_He}', "");
+    Expect(1, 1815, '\P{^Jg=-_He}', "");
+    Expect(0, 1816, '\p{Jg=-_He}', "");
+    Expect(1, 1816, '\p{^Jg=-_He}', "");
+    Expect(1, 1816, '\P{Jg=-_He}', "");
+    Expect(0, 1816, '\P{^Jg=-_He}', "");
+    Error('\p{Is_Joining_Group:	he/a/}');
+    Error('\P{Is_Joining_Group:	he/a/}');
     Expect(1, 1815, '\p{Is_Joining_Group=he}', "");
     Expect(0, 1815, '\p{^Is_Joining_Group=he}', "");
     Expect(0, 1815, '\P{Is_Joining_Group=he}', "");
@@ -54601,16 +55207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1816, '\p{^Is_Joining_Group=he}', "");
     Expect(1, 1816, '\P{Is_Joining_Group=he}', "");
     Expect(0, 1816, '\P{^Is_Joining_Group=he}', "");
-    Expect(1, 1815, '\p{Is_Joining_Group=	_He}', "");
-    Expect(0, 1815, '\p{^Is_Joining_Group=	_He}', "");
-    Expect(0, 1815, '\P{Is_Joining_Group=	_He}', "");
-    Expect(1, 1815, '\P{^Is_Joining_Group=	_He}', "");
-    Expect(0, 1816, '\p{Is_Joining_Group=	_He}', "");
-    Expect(1, 1816, '\p{^Is_Joining_Group=	_He}', "");
-    Expect(1, 1816, '\P{Is_Joining_Group=	_He}', "");
-    Expect(0, 1816, '\P{^Is_Joining_Group=	_He}', "");
-    Error('\p{Is_Jg=/a/	_He}');
-    Error('\P{Is_Jg=/a/	_He}');
+    Expect(1, 1815, '\p{Is_Joining_Group= 	HE}', "");
+    Expect(0, 1815, '\p{^Is_Joining_Group= 	HE}', "");
+    Expect(0, 1815, '\P{Is_Joining_Group= 	HE}', "");
+    Expect(1, 1815, '\P{^Is_Joining_Group= 	HE}', "");
+    Expect(0, 1816, '\p{Is_Joining_Group= 	HE}', "");
+    Expect(1, 1816, '\p{^Is_Joining_Group= 	HE}', "");
+    Expect(1, 1816, '\P{Is_Joining_Group= 	HE}', "");
+    Expect(0, 1816, '\P{^Is_Joining_Group= 	HE}', "");
+    Error('\p{Is_Jg= /a/HE}');
+    Error('\P{Is_Jg= /a/HE}');
     Expect(1, 1815, '\p{Is_Jg=he}', "");
     Expect(0, 1815, '\p{^Is_Jg=he}', "");
     Expect(0, 1815, '\P{Is_Jg=he}', "");
@@ -54619,38 +55225,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1816, '\p{^Is_Jg=he}', "");
     Expect(1, 1816, '\P{Is_Jg=he}', "");
     Expect(0, 1816, '\P{^Is_Jg=he}', "");
-    Expect(1, 1815, '\p{Is_Jg=_HE}', "");
-    Expect(0, 1815, '\p{^Is_Jg=_HE}', "");
-    Expect(0, 1815, '\P{Is_Jg=_HE}', "");
-    Expect(1, 1815, '\P{^Is_Jg=_HE}', "");
-    Expect(0, 1816, '\p{Is_Jg=_HE}', "");
-    Expect(1, 1816, '\p{^Is_Jg=_HE}', "");
-    Expect(1, 1816, '\P{Is_Jg=_HE}', "");
-    Expect(0, 1816, '\P{^Is_Jg=_HE}', "");
-    Error('\p{Joining_Group=_ HEH/a/}');
-    Error('\P{Joining_Group=_ HEH/a/}');
+    Expect(1, 1815, '\p{Is_Jg=	-HE}', "");
+    Expect(0, 1815, '\p{^Is_Jg=	-HE}', "");
+    Expect(0, 1815, '\P{Is_Jg=	-HE}', "");
+    Expect(1, 1815, '\P{^Is_Jg=	-HE}', "");
+    Expect(0, 1816, '\p{Is_Jg=	-HE}', "");
+    Expect(1, 1816, '\p{^Is_Jg=	-HE}', "");
+    Expect(1, 1816, '\P{Is_Jg=	-HE}', "");
+    Expect(0, 1816, '\P{^Is_Jg=	-HE}', "");
+    Error('\p{Joining_Group=_:=HEH}');
+    Error('\P{Joining_Group=_:=HEH}');
     Expect(1, 1607, '\p{Joining_Group=:\AHeh\z:}', "");;
     Expect(0, 1608, '\p{Joining_Group=:\AHeh\z:}', "");;
-    Expect(1, 1607, '\p{Joining_Group=heh}', "");
-    Expect(0, 1607, '\p{^Joining_Group=heh}', "");
-    Expect(0, 1607, '\P{Joining_Group=heh}', "");
-    Expect(1, 1607, '\P{^Joining_Group=heh}', "");
-    Expect(0, 1608, '\p{Joining_Group=heh}', "");
-    Expect(1, 1608, '\p{^Joining_Group=heh}', "");
-    Expect(1, 1608, '\P{Joining_Group=heh}', "");
-    Expect(0, 1608, '\P{^Joining_Group=heh}', "");
+    Expect(1, 1607, '\p{Joining_Group:   heh}', "");
+    Expect(0, 1607, '\p{^Joining_Group:   heh}', "");
+    Expect(0, 1607, '\P{Joining_Group:   heh}', "");
+    Expect(1, 1607, '\P{^Joining_Group:   heh}', "");
+    Expect(0, 1608, '\p{Joining_Group:   heh}', "");
+    Expect(1, 1608, '\p{^Joining_Group:   heh}', "");
+    Expect(1, 1608, '\P{Joining_Group:   heh}', "");
+    Expect(0, 1608, '\P{^Joining_Group:   heh}', "");
     Expect(1, 1607, '\p{Joining_Group=:\Aheh\z:}', "");;
     Expect(0, 1608, '\p{Joining_Group=:\Aheh\z:}', "");;
-    Expect(1, 1607, '\p{Joining_Group=_Heh}', "");
-    Expect(0, 1607, '\p{^Joining_Group=_Heh}', "");
-    Expect(0, 1607, '\P{Joining_Group=_Heh}', "");
-    Expect(1, 1607, '\P{^Joining_Group=_Heh}', "");
-    Expect(0, 1608, '\p{Joining_Group=_Heh}', "");
-    Expect(1, 1608, '\p{^Joining_Group=_Heh}', "");
-    Expect(1, 1608, '\P{Joining_Group=_Heh}', "");
-    Expect(0, 1608, '\P{^Joining_Group=_Heh}', "");
-    Error('\p{Jg= :=heh}');
-    Error('\P{Jg= :=heh}');
+    Expect(1, 1607, '\p{Joining_Group=		HEH}', "");
+    Expect(0, 1607, '\p{^Joining_Group=		HEH}', "");
+    Expect(0, 1607, '\P{Joining_Group=		HEH}', "");
+    Expect(1, 1607, '\P{^Joining_Group=		HEH}', "");
+    Expect(0, 1608, '\p{Joining_Group=		HEH}', "");
+    Expect(1, 1608, '\p{^Joining_Group=		HEH}', "");
+    Expect(1, 1608, '\P{Joining_Group=		HEH}', "");
+    Expect(0, 1608, '\P{^Joining_Group=		HEH}', "");
+    Error('\p{Jg= -Heh:=}');
+    Error('\P{Jg= -Heh:=}');
     Expect(1, 1607, '\p{Jg=:\AHeh\z:}', "");;
     Expect(0, 1608, '\p{Jg=:\AHeh\z:}', "");;
     Expect(1, 1607, '\p{Jg=heh}', "");
@@ -54663,16 +55269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1608, '\P{^Jg=heh}', "");
     Expect(1, 1607, '\p{Jg=:\Aheh\z:}', "");;
     Expect(0, 1608, '\p{Jg=:\Aheh\z:}', "");;
-    Expect(1, 1607, '\p{Jg=	 HEH}', "");
-    Expect(0, 1607, '\p{^Jg=	 HEH}', "");
-    Expect(0, 1607, '\P{Jg=	 HEH}', "");
-    Expect(1, 1607, '\P{^Jg=	 HEH}', "");
-    Expect(0, 1608, '\p{Jg=	 HEH}', "");
-    Expect(1, 1608, '\p{^Jg=	 HEH}', "");
-    Expect(1, 1608, '\P{Jg=	 HEH}', "");
-    Expect(0, 1608, '\P{^Jg=	 HEH}', "");
-    Error('\p{Is_Joining_Group=_:=heh}');
-    Error('\P{Is_Joining_Group=_:=heh}');
+    Expect(1, 1607, '\p{Jg= 	Heh}', "");
+    Expect(0, 1607, '\p{^Jg= 	Heh}', "");
+    Expect(0, 1607, '\P{Jg= 	Heh}', "");
+    Expect(1, 1607, '\P{^Jg= 	Heh}', "");
+    Expect(0, 1608, '\p{Jg= 	Heh}', "");
+    Expect(1, 1608, '\p{^Jg= 	Heh}', "");
+    Expect(1, 1608, '\P{Jg= 	Heh}', "");
+    Expect(0, 1608, '\P{^Jg= 	Heh}', "");
+    Error('\p{Is_Joining_Group=/a/-heh}');
+    Error('\P{Is_Joining_Group=/a/-heh}');
     Expect(1, 1607, '\p{Is_Joining_Group=heh}', "");
     Expect(0, 1607, '\p{^Is_Joining_Group=heh}', "");
     Expect(0, 1607, '\P{Is_Joining_Group=heh}', "");
@@ -54681,16 +55287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1608, '\p{^Is_Joining_Group=heh}', "");
     Expect(1, 1608, '\P{Is_Joining_Group=heh}', "");
     Expect(0, 1608, '\P{^Is_Joining_Group=heh}', "");
-    Expect(1, 1607, '\p{Is_Joining_Group=	_HEH}', "");
-    Expect(0, 1607, '\p{^Is_Joining_Group=	_HEH}', "");
-    Expect(0, 1607, '\P{Is_Joining_Group=	_HEH}', "");
-    Expect(1, 1607, '\P{^Is_Joining_Group=	_HEH}', "");
-    Expect(0, 1608, '\p{Is_Joining_Group=	_HEH}', "");
-    Expect(1, 1608, '\p{^Is_Joining_Group=	_HEH}', "");
-    Expect(1, 1608, '\P{Is_Joining_Group=	_HEH}', "");
-    Expect(0, 1608, '\P{^Is_Joining_Group=	_HEH}', "");
-    Error('\p{Is_Jg=/a/-	Heh}');
-    Error('\P{Is_Jg=/a/-	Heh}');
+    Expect(1, 1607, '\p{Is_Joining_Group:- HEH}', "");
+    Expect(0, 1607, '\p{^Is_Joining_Group:- HEH}', "");
+    Expect(0, 1607, '\P{Is_Joining_Group:- HEH}', "");
+    Expect(1, 1607, '\P{^Is_Joining_Group:- HEH}', "");
+    Expect(0, 1608, '\p{Is_Joining_Group:- HEH}', "");
+    Expect(1, 1608, '\p{^Is_Joining_Group:- HEH}', "");
+    Expect(1, 1608, '\P{Is_Joining_Group:- HEH}', "");
+    Expect(0, 1608, '\P{^Is_Joining_Group:- HEH}', "");
+    Error('\p{Is_Jg=:=	-Heh}');
+    Error('\P{Is_Jg=:=	-Heh}');
     Expect(1, 1607, '\p{Is_Jg=heh}', "");
     Expect(0, 1607, '\p{^Is_Jg=heh}', "");
     Expect(0, 1607, '\P{Is_Jg=heh}', "");
@@ -54699,16 +55305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1608, '\p{^Is_Jg=heh}', "");
     Expect(1, 1608, '\P{Is_Jg=heh}', "");
     Expect(0, 1608, '\P{^Is_Jg=heh}', "");
-    Expect(1, 1607, '\p{Is_Jg= 	HEH}', "");
-    Expect(0, 1607, '\p{^Is_Jg= 	HEH}', "");
-    Expect(0, 1607, '\P{Is_Jg= 	HEH}', "");
-    Expect(1, 1607, '\P{^Is_Jg= 	HEH}', "");
-    Expect(0, 1608, '\p{Is_Jg= 	HEH}', "");
-    Expect(1, 1608, '\p{^Is_Jg= 	HEH}', "");
-    Expect(1, 1608, '\P{Is_Jg= 	HEH}', "");
-    Expect(0, 1608, '\P{^Is_Jg= 	HEH}', "");
-    Error('\p{Joining_Group=	 HEH_Goal:=}');
-    Error('\P{Joining_Group=	 HEH_Goal:=}');
+    Expect(1, 1607, '\p{Is_Jg:  _Heh}', "");
+    Expect(0, 1607, '\p{^Is_Jg:  _Heh}', "");
+    Expect(0, 1607, '\P{Is_Jg:  _Heh}', "");
+    Expect(1, 1607, '\P{^Is_Jg:  _Heh}', "");
+    Expect(0, 1608, '\p{Is_Jg:  _Heh}', "");
+    Expect(1, 1608, '\p{^Is_Jg:  _Heh}', "");
+    Expect(1, 1608, '\P{Is_Jg:  _Heh}', "");
+    Expect(0, 1608, '\P{^Is_Jg:  _Heh}', "");
+    Error('\p{Joining_Group=_ HEH_GOAL/a/}');
+    Error('\P{Joining_Group=_ HEH_GOAL/a/}');
     Expect(1, 1730, '\p{Joining_Group=:\AHeh_Goal\z:}', "");;
     Expect(0, 1731, '\p{Joining_Group=:\AHeh_Goal\z:}', "");;
     Expect(1, 1730, '\p{Joining_Group=hehgoal}', "");
@@ -54721,16 +55327,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1731, '\P{^Joining_Group=hehgoal}', "");
     Expect(1, 1730, '\p{Joining_Group=:\Ahehgoal\z:}', "");;
     Expect(0, 1731, '\p{Joining_Group=:\Ahehgoal\z:}', "");;
-    Expect(1, 1730, '\p{Joining_Group=_	HEH_Goal}', "");
-    Expect(0, 1730, '\p{^Joining_Group=_	HEH_Goal}', "");
-    Expect(0, 1730, '\P{Joining_Group=_	HEH_Goal}', "");
-    Expect(1, 1730, '\P{^Joining_Group=_	HEH_Goal}', "");
-    Expect(0, 1731, '\p{Joining_Group=_	HEH_Goal}', "");
-    Expect(1, 1731, '\p{^Joining_Group=_	HEH_Goal}', "");
-    Expect(1, 1731, '\P{Joining_Group=_	HEH_Goal}', "");
-    Expect(0, 1731, '\P{^Joining_Group=_	HEH_Goal}', "");
-    Error('\p{Jg=- heh_Goal/a/}');
-    Error('\P{Jg=- heh_Goal/a/}');
+    Expect(1, 1730, '\p{Joining_Group= _Heh_goal}', "");
+    Expect(0, 1730, '\p{^Joining_Group= _Heh_goal}', "");
+    Expect(0, 1730, '\P{Joining_Group= _Heh_goal}', "");
+    Expect(1, 1730, '\P{^Joining_Group= _Heh_goal}', "");
+    Expect(0, 1731, '\p{Joining_Group= _Heh_goal}', "");
+    Expect(1, 1731, '\p{^Joining_Group= _Heh_goal}', "");
+    Expect(1, 1731, '\P{Joining_Group= _Heh_goal}', "");
+    Expect(0, 1731, '\P{^Joining_Group= _Heh_goal}', "");
+    Error('\p{Jg=_:=HEH_Goal}');
+    Error('\P{Jg=_:=HEH_Goal}');
     Expect(1, 1730, '\p{Jg=:\AHeh_Goal\z:}', "");;
     Expect(0, 1731, '\p{Jg=:\AHeh_Goal\z:}', "");;
     Expect(1, 1730, '\p{Jg=hehgoal}', "");
@@ -54743,16 +55349,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1731, '\P{^Jg=hehgoal}', "");
     Expect(1, 1730, '\p{Jg=:\Ahehgoal\z:}', "");;
     Expect(0, 1731, '\p{Jg=:\Ahehgoal\z:}', "");;
-    Expect(1, 1730, '\p{Jg= 	HEH_goal}', "");
-    Expect(0, 1730, '\p{^Jg= 	HEH_goal}', "");
-    Expect(0, 1730, '\P{Jg= 	HEH_goal}', "");
-    Expect(1, 1730, '\P{^Jg= 	HEH_goal}', "");
-    Expect(0, 1731, '\p{Jg= 	HEH_goal}', "");
-    Expect(1, 1731, '\p{^Jg= 	HEH_goal}', "");
-    Expect(1, 1731, '\P{Jg= 	HEH_goal}', "");
-    Expect(0, 1731, '\P{^Jg= 	HEH_goal}', "");
-    Error('\p{Is_Joining_Group=:= _heh_GOAL}');
-    Error('\P{Is_Joining_Group=:= _heh_GOAL}');
+    Expect(1, 1730, '\p{Jg=- heh_goal}', "");
+    Expect(0, 1730, '\p{^Jg=- heh_goal}', "");
+    Expect(0, 1730, '\P{Jg=- heh_goal}', "");
+    Expect(1, 1730, '\P{^Jg=- heh_goal}', "");
+    Expect(0, 1731, '\p{Jg=- heh_goal}', "");
+    Expect(1, 1731, '\p{^Jg=- heh_goal}', "");
+    Expect(1, 1731, '\P{Jg=- heh_goal}', "");
+    Expect(0, 1731, '\P{^Jg=- heh_goal}', "");
+    Error('\p{Is_Joining_Group=:=	_HEH_Goal}');
+    Error('\P{Is_Joining_Group=:=	_HEH_Goal}');
     Expect(1, 1730, '\p{Is_Joining_Group=hehgoal}', "");
     Expect(0, 1730, '\p{^Is_Joining_Group=hehgoal}', "");
     Expect(0, 1730, '\P{Is_Joining_Group=hehgoal}', "");
@@ -54761,34 +55367,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1731, '\p{^Is_Joining_Group=hehgoal}', "");
     Expect(1, 1731, '\P{Is_Joining_Group=hehgoal}', "");
     Expect(0, 1731, '\P{^Is_Joining_Group=hehgoal}', "");
-    Expect(1, 1730, '\p{Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(0, 1730, '\p{^Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(0, 1730, '\P{Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(1, 1730, '\P{^Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(0, 1731, '\p{Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(1, 1731, '\p{^Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(1, 1731, '\P{Is_Joining_Group=	Heh_GOAL}', "");
-    Expect(0, 1731, '\P{^Is_Joining_Group=	Heh_GOAL}', "");
-    Error('\p{Is_Jg=_:=HEH_goal}');
-    Error('\P{Is_Jg=_:=HEH_goal}');
-    Expect(1, 1730, '\p{Is_Jg:   hehgoal}', "");
-    Expect(0, 1730, '\p{^Is_Jg:   hehgoal}', "");
-    Expect(0, 1730, '\P{Is_Jg:   hehgoal}', "");
-    Expect(1, 1730, '\P{^Is_Jg:   hehgoal}', "");
-    Expect(0, 1731, '\p{Is_Jg:   hehgoal}', "");
-    Expect(1, 1731, '\p{^Is_Jg:   hehgoal}', "");
-    Expect(1, 1731, '\P{Is_Jg:   hehgoal}', "");
-    Expect(0, 1731, '\P{^Is_Jg:   hehgoal}', "");
-    Expect(1, 1730, '\p{Is_Jg=-Heh_Goal}', "");
-    Expect(0, 1730, '\p{^Is_Jg=-Heh_Goal}', "");
-    Expect(0, 1730, '\P{Is_Jg=-Heh_Goal}', "");
-    Expect(1, 1730, '\P{^Is_Jg=-Heh_Goal}', "");
-    Expect(0, 1731, '\p{Is_Jg=-Heh_Goal}', "");
-    Expect(1, 1731, '\p{^Is_Jg=-Heh_Goal}', "");
-    Expect(1, 1731, '\P{Is_Jg=-Heh_Goal}', "");
-    Expect(0, 1731, '\P{^Is_Jg=-Heh_Goal}', "");
-    Error('\p{Joining_Group=	/a/Heth}');
-    Error('\P{Joining_Group=	/a/Heth}');
+    Expect(1, 1730, '\p{Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(0, 1730, '\p{^Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(0, 1730, '\P{Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(1, 1730, '\P{^Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(0, 1731, '\p{Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(1, 1731, '\p{^Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(1, 1731, '\P{Is_Joining_Group=	-HEH_Goal}', "");
+    Expect(0, 1731, '\P{^Is_Joining_Group=	-HEH_Goal}', "");
+    Error('\p{Is_Jg=Heh_goal/a/}');
+    Error('\P{Is_Jg=Heh_goal/a/}');
+    Expect(1, 1730, '\p{Is_Jg=hehgoal}', "");
+    Expect(0, 1730, '\p{^Is_Jg=hehgoal}', "");
+    Expect(0, 1730, '\P{Is_Jg=hehgoal}', "");
+    Expect(1, 1730, '\P{^Is_Jg=hehgoal}', "");
+    Expect(0, 1731, '\p{Is_Jg=hehgoal}', "");
+    Expect(1, 1731, '\p{^Is_Jg=hehgoal}', "");
+    Expect(1, 1731, '\P{Is_Jg=hehgoal}', "");
+    Expect(0, 1731, '\P{^Is_Jg=hehgoal}', "");
+    Expect(1, 1730, '\p{Is_Jg=_ HEH_Goal}', "");
+    Expect(0, 1730, '\p{^Is_Jg=_ HEH_Goal}', "");
+    Expect(0, 1730, '\P{Is_Jg=_ HEH_Goal}', "");
+    Expect(1, 1730, '\P{^Is_Jg=_ HEH_Goal}', "");
+    Expect(0, 1731, '\p{Is_Jg=_ HEH_Goal}', "");
+    Expect(1, 1731, '\p{^Is_Jg=_ HEH_Goal}', "");
+    Expect(1, 1731, '\P{Is_Jg=_ HEH_Goal}', "");
+    Expect(0, 1731, '\P{^Is_Jg=_ HEH_Goal}', "");
+    Error('\p{Joining_Group=:=heth}');
+    Error('\P{Joining_Group=:=heth}');
     Expect(1, 1818, '\p{Joining_Group=:\AHeth\z:}', "");;
     Expect(0, 1819, '\p{Joining_Group=:\AHeth\z:}', "");;
     Expect(1, 1818, '\p{Joining_Group=heth}', "");
@@ -54801,16 +55407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1819, '\P{^Joining_Group=heth}', "");
     Expect(1, 1818, '\p{Joining_Group=:\Aheth\z:}', "");;
     Expect(0, 1819, '\p{Joining_Group=:\Aheth\z:}', "");;
-    Expect(1, 1818, '\p{Joining_Group=	-Heth}', "");
-    Expect(0, 1818, '\p{^Joining_Group=	-Heth}', "");
-    Expect(0, 1818, '\P{Joining_Group=	-Heth}', "");
-    Expect(1, 1818, '\P{^Joining_Group=	-Heth}', "");
-    Expect(0, 1819, '\p{Joining_Group=	-Heth}', "");
-    Expect(1, 1819, '\p{^Joining_Group=	-Heth}', "");
-    Expect(1, 1819, '\P{Joining_Group=	-Heth}', "");
-    Expect(0, 1819, '\P{^Joining_Group=	-Heth}', "");
-    Error('\p{Jg=_Heth:=}');
-    Error('\P{Jg=_Heth:=}');
+    Expect(1, 1818, '\p{Joining_Group=-heth}', "");
+    Expect(0, 1818, '\p{^Joining_Group=-heth}', "");
+    Expect(0, 1818, '\P{Joining_Group=-heth}', "");
+    Expect(1, 1818, '\P{^Joining_Group=-heth}', "");
+    Expect(0, 1819, '\p{Joining_Group=-heth}', "");
+    Expect(1, 1819, '\p{^Joining_Group=-heth}', "");
+    Expect(1, 1819, '\P{Joining_Group=-heth}', "");
+    Expect(0, 1819, '\P{^Joining_Group=-heth}', "");
+    Error('\p{Jg=/a/_Heth}');
+    Error('\P{Jg=/a/_Heth}');
     Expect(1, 1818, '\p{Jg=:\AHeth\z:}', "");;
     Expect(0, 1819, '\p{Jg=:\AHeth\z:}', "");;
     Expect(1, 1818, '\p{Jg=heth}', "");
@@ -54823,34 +55429,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1819, '\P{^Jg=heth}', "");
     Expect(1, 1818, '\p{Jg=:\Aheth\z:}', "");;
     Expect(0, 1819, '\p{Jg=:\Aheth\z:}', "");;
-    Expect(1, 1818, '\p{Jg:- heth}', "");
-    Expect(0, 1818, '\p{^Jg:- heth}', "");
-    Expect(0, 1818, '\P{Jg:- heth}', "");
-    Expect(1, 1818, '\P{^Jg:- heth}', "");
-    Expect(0, 1819, '\p{Jg:- heth}', "");
-    Expect(1, 1819, '\p{^Jg:- heth}', "");
-    Expect(1, 1819, '\P{Jg:- heth}', "");
-    Expect(0, 1819, '\P{^Jg:- heth}', "");
-    Error('\p{Is_Joining_Group=:=_Heth}');
-    Error('\P{Is_Joining_Group=:=_Heth}');
-    Expect(1, 1818, '\p{Is_Joining_Group:heth}', "");
-    Expect(0, 1818, '\p{^Is_Joining_Group:heth}', "");
-    Expect(0, 1818, '\P{Is_Joining_Group:heth}', "");
-    Expect(1, 1818, '\P{^Is_Joining_Group:heth}', "");
-    Expect(0, 1819, '\p{Is_Joining_Group:heth}', "");
-    Expect(1, 1819, '\p{^Is_Joining_Group:heth}', "");
-    Expect(1, 1819, '\P{Is_Joining_Group:heth}', "");
-    Expect(0, 1819, '\P{^Is_Joining_Group:heth}', "");
-    Expect(1, 1818, '\p{Is_Joining_Group=-HETH}', "");
-    Expect(0, 1818, '\p{^Is_Joining_Group=-HETH}', "");
-    Expect(0, 1818, '\P{Is_Joining_Group=-HETH}', "");
-    Expect(1, 1818, '\P{^Is_Joining_Group=-HETH}', "");
-    Expect(0, 1819, '\p{Is_Joining_Group=-HETH}', "");
-    Expect(1, 1819, '\p{^Is_Joining_Group=-HETH}', "");
-    Expect(1, 1819, '\P{Is_Joining_Group=-HETH}', "");
-    Expect(0, 1819, '\P{^Is_Joining_Group=-HETH}', "");
-    Error('\p{Is_Jg:/a/	Heth}');
-    Error('\P{Is_Jg:/a/	Heth}');
+    Expect(1, 1818, '\p{Jg:	_heth}', "");
+    Expect(0, 1818, '\p{^Jg:	_heth}', "");
+    Expect(0, 1818, '\P{Jg:	_heth}', "");
+    Expect(1, 1818, '\P{^Jg:	_heth}', "");
+    Expect(0, 1819, '\p{Jg:	_heth}', "");
+    Expect(1, 1819, '\p{^Jg:	_heth}', "");
+    Expect(1, 1819, '\P{Jg:	_heth}', "");
+    Expect(0, 1819, '\P{^Jg:	_heth}', "");
+    Error('\p{Is_Joining_Group=:=	 heth}');
+    Error('\P{Is_Joining_Group=:=	 heth}');
+    Expect(1, 1818, '\p{Is_Joining_Group=heth}', "");
+    Expect(0, 1818, '\p{^Is_Joining_Group=heth}', "");
+    Expect(0, 1818, '\P{Is_Joining_Group=heth}', "");
+    Expect(1, 1818, '\P{^Is_Joining_Group=heth}', "");
+    Expect(0, 1819, '\p{Is_Joining_Group=heth}', "");
+    Expect(1, 1819, '\p{^Is_Joining_Group=heth}', "");
+    Expect(1, 1819, '\P{Is_Joining_Group=heth}', "");
+    Expect(0, 1819, '\P{^Is_Joining_Group=heth}', "");
+    Expect(1, 1818, '\p{Is_Joining_Group=-Heth}', "");
+    Expect(0, 1818, '\p{^Is_Joining_Group=-Heth}', "");
+    Expect(0, 1818, '\P{Is_Joining_Group=-Heth}', "");
+    Expect(1, 1818, '\P{^Is_Joining_Group=-Heth}', "");
+    Expect(0, 1819, '\p{Is_Joining_Group=-Heth}', "");
+    Expect(1, 1819, '\p{^Is_Joining_Group=-Heth}', "");
+    Expect(1, 1819, '\P{Is_Joining_Group=-Heth}', "");
+    Expect(0, 1819, '\P{^Is_Joining_Group=-Heth}', "");
+    Error('\p{Is_Jg=_Heth/a/}');
+    Error('\P{Is_Jg=_Heth/a/}');
     Expect(1, 1818, '\p{Is_Jg=heth}', "");
     Expect(0, 1818, '\p{^Is_Jg=heth}', "");
     Expect(0, 1818, '\P{Is_Jg=heth}', "");
@@ -54859,38 +55465,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1819, '\p{^Is_Jg=heth}', "");
     Expect(1, 1819, '\P{Is_Jg=heth}', "");
     Expect(0, 1819, '\P{^Is_Jg=heth}', "");
-    Expect(1, 1818, '\p{Is_Jg=	Heth}', "");
-    Expect(0, 1818, '\p{^Is_Jg=	Heth}', "");
-    Expect(0, 1818, '\P{Is_Jg=	Heth}', "");
-    Expect(1, 1818, '\P{^Is_Jg=	Heth}', "");
-    Expect(0, 1819, '\p{Is_Jg=	Heth}', "");
-    Expect(1, 1819, '\p{^Is_Jg=	Heth}', "");
-    Expect(1, 1819, '\P{Is_Jg=	Heth}', "");
-    Expect(0, 1819, '\P{^Is_Jg=	Heth}', "");
-    Error('\p{Joining_Group:   _	Kaf:=}');
-    Error('\P{Joining_Group:   _	Kaf:=}');
+    Expect(1, 1818, '\p{Is_Jg=--HETH}', "");
+    Expect(0, 1818, '\p{^Is_Jg=--HETH}', "");
+    Expect(0, 1818, '\P{Is_Jg=--HETH}', "");
+    Expect(1, 1818, '\P{^Is_Jg=--HETH}', "");
+    Expect(0, 1819, '\p{Is_Jg=--HETH}', "");
+    Expect(1, 1819, '\p{^Is_Jg=--HETH}', "");
+    Expect(1, 1819, '\P{Is_Jg=--HETH}', "");
+    Expect(0, 1819, '\P{^Is_Jg=--HETH}', "");
+    Error('\p{Joining_Group= kaf/a/}');
+    Error('\P{Joining_Group= kaf/a/}');
     Expect(1, 2228, '\p{Joining_Group=:\AKaf\z:}', "");;
     Expect(0, 2229, '\p{Joining_Group=:\AKaf\z:}', "");;
-    Expect(1, 2228, '\p{Joining_Group: kaf}', "");
-    Expect(0, 2228, '\p{^Joining_Group: kaf}', "");
-    Expect(0, 2228, '\P{Joining_Group: kaf}', "");
-    Expect(1, 2228, '\P{^Joining_Group: kaf}', "");
-    Expect(0, 2229, '\p{Joining_Group: kaf}', "");
-    Expect(1, 2229, '\p{^Joining_Group: kaf}', "");
-    Expect(1, 2229, '\P{Joining_Group: kaf}', "");
-    Expect(0, 2229, '\P{^Joining_Group: kaf}', "");
+    Expect(1, 2228, '\p{Joining_Group=kaf}', "");
+    Expect(0, 2228, '\p{^Joining_Group=kaf}', "");
+    Expect(0, 2228, '\P{Joining_Group=kaf}', "");
+    Expect(1, 2228, '\P{^Joining_Group=kaf}', "");
+    Expect(0, 2229, '\p{Joining_Group=kaf}', "");
+    Expect(1, 2229, '\p{^Joining_Group=kaf}', "");
+    Expect(1, 2229, '\P{Joining_Group=kaf}', "");
+    Expect(0, 2229, '\P{^Joining_Group=kaf}', "");
     Expect(1, 2228, '\p{Joining_Group=:\Akaf\z:}', "");;
     Expect(0, 2229, '\p{Joining_Group=:\Akaf\z:}', "");;
-    Expect(1, 2228, '\p{Joining_Group= KAF}', "");
-    Expect(0, 2228, '\p{^Joining_Group= KAF}', "");
-    Expect(0, 2228, '\P{Joining_Group= KAF}', "");
-    Expect(1, 2228, '\P{^Joining_Group= KAF}', "");
-    Expect(0, 2229, '\p{Joining_Group= KAF}', "");
-    Expect(1, 2229, '\p{^Joining_Group= KAF}', "");
-    Expect(1, 2229, '\P{Joining_Group= KAF}', "");
-    Expect(0, 2229, '\P{^Joining_Group= KAF}', "");
-    Error('\p{Jg=/a/_kaf}');
-    Error('\P{Jg=/a/_kaf}');
+    Expect(1, 2228, '\p{Joining_Group=-KAF}', "");
+    Expect(0, 2228, '\p{^Joining_Group=-KAF}', "");
+    Expect(0, 2228, '\P{Joining_Group=-KAF}', "");
+    Expect(1, 2228, '\P{^Joining_Group=-KAF}', "");
+    Expect(0, 2229, '\p{Joining_Group=-KAF}', "");
+    Expect(1, 2229, '\p{^Joining_Group=-KAF}', "");
+    Expect(1, 2229, '\P{Joining_Group=-KAF}', "");
+    Expect(0, 2229, '\P{^Joining_Group=-KAF}', "");
+    Error('\p{Jg=-/a/Kaf}');
+    Error('\P{Jg=-/a/Kaf}');
     Expect(1, 2228, '\p{Jg=:\AKaf\z:}', "");;
     Expect(0, 2229, '\p{Jg=:\AKaf\z:}', "");;
     Expect(1, 2228, '\p{Jg=kaf}', "");
@@ -54903,16 +55509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2229, '\P{^Jg=kaf}', "");
     Expect(1, 2228, '\p{Jg=:\Akaf\z:}', "");;
     Expect(0, 2229, '\p{Jg=:\Akaf\z:}', "");;
-    Expect(1, 2228, '\p{Jg= -kaf}', "");
-    Expect(0, 2228, '\p{^Jg= -kaf}', "");
-    Expect(0, 2228, '\P{Jg= -kaf}', "");
-    Expect(1, 2228, '\P{^Jg= -kaf}', "");
-    Expect(0, 2229, '\p{Jg= -kaf}', "");
-    Expect(1, 2229, '\p{^Jg= -kaf}', "");
-    Expect(1, 2229, '\P{Jg= -kaf}', "");
-    Expect(0, 2229, '\P{^Jg= -kaf}', "");
-    Error('\p{Is_Joining_Group= /a/Kaf}');
-    Error('\P{Is_Joining_Group= /a/Kaf}');
+    Expect(1, 2228, '\p{Jg= -KAF}', "");
+    Expect(0, 2228, '\p{^Jg= -KAF}', "");
+    Expect(0, 2228, '\P{Jg= -KAF}', "");
+    Expect(1, 2228, '\P{^Jg= -KAF}', "");
+    Expect(0, 2229, '\p{Jg= -KAF}', "");
+    Expect(1, 2229, '\p{^Jg= -KAF}', "");
+    Expect(1, 2229, '\P{Jg= -KAF}', "");
+    Expect(0, 2229, '\P{^Jg= -KAF}', "");
+    Error('\p{Is_Joining_Group=-_Kaf:=}');
+    Error('\P{Is_Joining_Group=-_Kaf:=}');
     Expect(1, 2228, '\p{Is_Joining_Group=kaf}', "");
     Expect(0, 2228, '\p{^Is_Joining_Group=kaf}', "");
     Expect(0, 2228, '\P{Is_Joining_Group=kaf}', "");
@@ -54921,16 +55527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2229, '\p{^Is_Joining_Group=kaf}', "");
     Expect(1, 2229, '\P{Is_Joining_Group=kaf}', "");
     Expect(0, 2229, '\P{^Is_Joining_Group=kaf}', "");
-    Expect(1, 2228, '\p{Is_Joining_Group= Kaf}', "");
-    Expect(0, 2228, '\p{^Is_Joining_Group= Kaf}', "");
-    Expect(0, 2228, '\P{Is_Joining_Group= Kaf}', "");
-    Expect(1, 2228, '\P{^Is_Joining_Group= Kaf}', "");
-    Expect(0, 2229, '\p{Is_Joining_Group= Kaf}', "");
-    Expect(1, 2229, '\p{^Is_Joining_Group= Kaf}', "");
-    Expect(1, 2229, '\P{Is_Joining_Group= Kaf}', "");
-    Expect(0, 2229, '\P{^Is_Joining_Group= Kaf}', "");
-    Error('\p{Is_Jg=_ kaf/a/}');
-    Error('\P{Is_Jg=_ kaf/a/}');
+    Expect(1, 2228, '\p{Is_Joining_Group=-_KAF}', "");
+    Expect(0, 2228, '\p{^Is_Joining_Group=-_KAF}', "");
+    Expect(0, 2228, '\P{Is_Joining_Group=-_KAF}', "");
+    Expect(1, 2228, '\P{^Is_Joining_Group=-_KAF}', "");
+    Expect(0, 2229, '\p{Is_Joining_Group=-_KAF}', "");
+    Expect(1, 2229, '\p{^Is_Joining_Group=-_KAF}', "");
+    Expect(1, 2229, '\P{Is_Joining_Group=-_KAF}', "");
+    Expect(0, 2229, '\P{^Is_Joining_Group=-_KAF}', "");
+    Error('\p{Is_Jg=--Kaf/a/}');
+    Error('\P{Is_Jg=--Kaf/a/}');
     Expect(1, 2228, '\p{Is_Jg=kaf}', "");
     Expect(0, 2228, '\p{^Is_Jg=kaf}', "");
     Expect(0, 2228, '\P{Is_Jg=kaf}', "");
@@ -54939,16 +55545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2229, '\p{^Is_Jg=kaf}', "");
     Expect(1, 2229, '\P{Is_Jg=kaf}', "");
     Expect(0, 2229, '\P{^Is_Jg=kaf}', "");
-    Expect(1, 2228, '\p{Is_Jg=_ Kaf}', "");
-    Expect(0, 2228, '\p{^Is_Jg=_ Kaf}', "");
-    Expect(0, 2228, '\P{Is_Jg=_ Kaf}', "");
-    Expect(1, 2228, '\P{^Is_Jg=_ Kaf}', "");
-    Expect(0, 2229, '\p{Is_Jg=_ Kaf}', "");
-    Expect(1, 2229, '\p{^Is_Jg=_ Kaf}', "");
-    Expect(1, 2229, '\P{Is_Jg=_ Kaf}', "");
-    Expect(0, 2229, '\P{^Is_Jg=_ Kaf}', "");
-    Error('\p{Joining_Group=/a/	 KAPH}');
-    Error('\P{Joining_Group=/a/	 KAPH}');
+    Expect(1, 2228, '\p{Is_Jg=	-Kaf}', "");
+    Expect(0, 2228, '\p{^Is_Jg=	-Kaf}', "");
+    Expect(0, 2228, '\P{Is_Jg=	-Kaf}', "");
+    Expect(1, 2228, '\P{^Is_Jg=	-Kaf}', "");
+    Expect(0, 2229, '\p{Is_Jg=	-Kaf}', "");
+    Expect(1, 2229, '\p{^Is_Jg=	-Kaf}', "");
+    Expect(1, 2229, '\P{Is_Jg=	-Kaf}', "");
+    Expect(0, 2229, '\P{^Is_Jg=	-Kaf}', "");
+    Error('\p{Joining_Group=_:=KAPH}');
+    Error('\P{Joining_Group=_:=KAPH}');
     Expect(1, 1823, '\p{Joining_Group=:\AKaph\z:}', "");;
     Expect(0, 1824, '\p{Joining_Group=:\AKaph\z:}', "");;
     Expect(1, 1823, '\p{Joining_Group=kaph}', "");
@@ -54961,16 +55567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1824, '\P{^Joining_Group=kaph}', "");
     Expect(1, 1823, '\p{Joining_Group=:\Akaph\z:}', "");;
     Expect(0, 1824, '\p{Joining_Group=:\Akaph\z:}', "");;
-    Expect(1, 1823, '\p{Joining_Group= 	kaph}', "");
-    Expect(0, 1823, '\p{^Joining_Group= 	kaph}', "");
-    Expect(0, 1823, '\P{Joining_Group= 	kaph}', "");
-    Expect(1, 1823, '\P{^Joining_Group= 	kaph}', "");
-    Expect(0, 1824, '\p{Joining_Group= 	kaph}', "");
-    Expect(1, 1824, '\p{^Joining_Group= 	kaph}', "");
-    Expect(1, 1824, '\P{Joining_Group= 	kaph}', "");
-    Expect(0, 1824, '\P{^Joining_Group= 	kaph}', "");
-    Error('\p{Jg= Kaph:=}');
-    Error('\P{Jg= Kaph:=}');
+    Expect(1, 1823, '\p{Joining_Group=- Kaph}', "");
+    Expect(0, 1823, '\p{^Joining_Group=- Kaph}', "");
+    Expect(0, 1823, '\P{Joining_Group=- Kaph}', "");
+    Expect(1, 1823, '\P{^Joining_Group=- Kaph}', "");
+    Expect(0, 1824, '\p{Joining_Group=- Kaph}', "");
+    Expect(1, 1824, '\p{^Joining_Group=- Kaph}', "");
+    Expect(1, 1824, '\P{Joining_Group=- Kaph}', "");
+    Expect(0, 1824, '\P{^Joining_Group=- Kaph}', "");
+    Error('\p{Jg: _	kaph/a/}');
+    Error('\P{Jg: _	kaph/a/}');
     Expect(1, 1823, '\p{Jg=:\AKaph\z:}', "");;
     Expect(0, 1824, '\p{Jg=:\AKaph\z:}', "");;
     Expect(1, 1823, '\p{Jg=kaph}', "");
@@ -54983,34 +55589,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1824, '\P{^Jg=kaph}', "");
     Expect(1, 1823, '\p{Jg=:\Akaph\z:}', "");;
     Expect(0, 1824, '\p{Jg=:\Akaph\z:}', "");;
-    Expect(1, 1823, '\p{Jg=	Kaph}', "");
-    Expect(0, 1823, '\p{^Jg=	Kaph}', "");
-    Expect(0, 1823, '\P{Jg=	Kaph}', "");
-    Expect(1, 1823, '\P{^Jg=	Kaph}', "");
-    Expect(0, 1824, '\p{Jg=	Kaph}', "");
-    Expect(1, 1824, '\p{^Jg=	Kaph}', "");
-    Expect(1, 1824, '\P{Jg=	Kaph}', "");
-    Expect(0, 1824, '\P{^Jg=	Kaph}', "");
-    Error('\p{Is_Joining_Group=-:=kaph}');
-    Error('\P{Is_Joining_Group=-:=kaph}');
-    Expect(1, 1823, '\p{Is_Joining_Group: kaph}', "");
-    Expect(0, 1823, '\p{^Is_Joining_Group: kaph}', "");
-    Expect(0, 1823, '\P{Is_Joining_Group: kaph}', "");
-    Expect(1, 1823, '\P{^Is_Joining_Group: kaph}', "");
-    Expect(0, 1824, '\p{Is_Joining_Group: kaph}', "");
-    Expect(1, 1824, '\p{^Is_Joining_Group: kaph}', "");
-    Expect(1, 1824, '\P{Is_Joining_Group: kaph}', "");
-    Expect(0, 1824, '\P{^Is_Joining_Group: kaph}', "");
-    Expect(1, 1823, '\p{Is_Joining_Group= Kaph}', "");
-    Expect(0, 1823, '\p{^Is_Joining_Group= Kaph}', "");
-    Expect(0, 1823, '\P{Is_Joining_Group= Kaph}', "");
-    Expect(1, 1823, '\P{^Is_Joining_Group= Kaph}', "");
-    Expect(0, 1824, '\p{Is_Joining_Group= Kaph}', "");
-    Expect(1, 1824, '\p{^Is_Joining_Group= Kaph}', "");
-    Expect(1, 1824, '\P{Is_Joining_Group= Kaph}', "");
-    Expect(0, 1824, '\P{^Is_Joining_Group= Kaph}', "");
-    Error('\p{Is_Jg=/a/_Kaph}');
-    Error('\P{Is_Jg=/a/_Kaph}');
+    Expect(1, 1823, '\p{Jg=_-kaph}', "");
+    Expect(0, 1823, '\p{^Jg=_-kaph}', "");
+    Expect(0, 1823, '\P{Jg=_-kaph}', "");
+    Expect(1, 1823, '\P{^Jg=_-kaph}', "");
+    Expect(0, 1824, '\p{Jg=_-kaph}', "");
+    Expect(1, 1824, '\p{^Jg=_-kaph}', "");
+    Expect(1, 1824, '\P{Jg=_-kaph}', "");
+    Expect(0, 1824, '\P{^Jg=_-kaph}', "");
+    Error('\p{Is_Joining_Group:    /a/Kaph}');
+    Error('\P{Is_Joining_Group:    /a/Kaph}');
+    Expect(1, 1823, '\p{Is_Joining_Group=kaph}', "");
+    Expect(0, 1823, '\p{^Is_Joining_Group=kaph}', "");
+    Expect(0, 1823, '\P{Is_Joining_Group=kaph}', "");
+    Expect(1, 1823, '\P{^Is_Joining_Group=kaph}', "");
+    Expect(0, 1824, '\p{Is_Joining_Group=kaph}', "");
+    Expect(1, 1824, '\p{^Is_Joining_Group=kaph}', "");
+    Expect(1, 1824, '\P{Is_Joining_Group=kaph}', "");
+    Expect(0, 1824, '\P{^Is_Joining_Group=kaph}', "");
+    Expect(1, 1823, '\p{Is_Joining_Group=  Kaph}', "");
+    Expect(0, 1823, '\p{^Is_Joining_Group=  Kaph}', "");
+    Expect(0, 1823, '\P{Is_Joining_Group=  Kaph}', "");
+    Expect(1, 1823, '\P{^Is_Joining_Group=  Kaph}', "");
+    Expect(0, 1824, '\p{Is_Joining_Group=  Kaph}', "");
+    Expect(1, 1824, '\p{^Is_Joining_Group=  Kaph}', "");
+    Expect(1, 1824, '\P{Is_Joining_Group=  Kaph}', "");
+    Expect(0, 1824, '\P{^Is_Joining_Group=  Kaph}', "");
+    Error('\p{Is_Jg=-	Kaph/a/}');
+    Error('\P{Is_Jg=-	Kaph/a/}');
     Expect(1, 1823, '\p{Is_Jg=kaph}', "");
     Expect(0, 1823, '\p{^Is_Jg=kaph}', "");
     Expect(0, 1823, '\P{Is_Jg=kaph}', "");
@@ -55019,16 +55625,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1824, '\p{^Is_Jg=kaph}', "");
     Expect(1, 1824, '\P{Is_Jg=kaph}', "");
     Expect(0, 1824, '\P{^Is_Jg=kaph}', "");
-    Expect(1, 1823, '\p{Is_Jg=-Kaph}', "");
-    Expect(0, 1823, '\p{^Is_Jg=-Kaph}', "");
-    Expect(0, 1823, '\P{Is_Jg=-Kaph}', "");
-    Expect(1, 1823, '\P{^Is_Jg=-Kaph}', "");
-    Expect(0, 1824, '\p{Is_Jg=-Kaph}', "");
-    Expect(1, 1824, '\p{^Is_Jg=-Kaph}', "");
-    Expect(1, 1824, '\P{Is_Jg=-Kaph}', "");
-    Expect(0, 1824, '\P{^Is_Jg=-Kaph}', "");
-    Error('\p{Joining_Group= -Khaph/a/}');
-    Error('\P{Joining_Group= -Khaph/a/}');
+    Expect(1, 1823, '\p{Is_Jg=-	KAPH}', "");
+    Expect(0, 1823, '\p{^Is_Jg=-	KAPH}', "");
+    Expect(0, 1823, '\P{Is_Jg=-	KAPH}', "");
+    Expect(1, 1823, '\P{^Is_Jg=-	KAPH}', "");
+    Expect(0, 1824, '\p{Is_Jg=-	KAPH}', "");
+    Expect(1, 1824, '\p{^Is_Jg=-	KAPH}', "");
+    Expect(1, 1824, '\P{Is_Jg=-	KAPH}', "");
+    Expect(0, 1824, '\P{^Is_Jg=-	KAPH}', "");
+    Error('\p{Joining_Group=	-Khaph/a/}');
+    Error('\P{Joining_Group=	-Khaph/a/}');
     Expect(1, 1870, '\p{Joining_Group=:\AKhaph\z:}', "");;
     Expect(0, 1871, '\p{Joining_Group=:\AKhaph\z:}', "");;
     Expect(1, 1870, '\p{Joining_Group=khaph}', "");
@@ -55041,16 +55647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1871, '\P{^Joining_Group=khaph}', "");
     Expect(1, 1870, '\p{Joining_Group=:\Akhaph\z:}', "");;
     Expect(0, 1871, '\p{Joining_Group=:\Akhaph\z:}', "");;
-    Expect(1, 1870, '\p{Joining_Group=--KHAPH}', "");
-    Expect(0, 1870, '\p{^Joining_Group=--KHAPH}', "");
-    Expect(0, 1870, '\P{Joining_Group=--KHAPH}', "");
-    Expect(1, 1870, '\P{^Joining_Group=--KHAPH}', "");
-    Expect(0, 1871, '\p{Joining_Group=--KHAPH}', "");
-    Expect(1, 1871, '\p{^Joining_Group=--KHAPH}', "");
-    Expect(1, 1871, '\P{Joining_Group=--KHAPH}', "");
-    Expect(0, 1871, '\P{^Joining_Group=--KHAPH}', "");
-    Error('\p{Jg=- Khaph/a/}');
-    Error('\P{Jg=- Khaph/a/}');
+    Expect(1, 1870, '\p{Joining_Group=  Khaph}', "");
+    Expect(0, 1870, '\p{^Joining_Group=  Khaph}', "");
+    Expect(0, 1870, '\P{Joining_Group=  Khaph}', "");
+    Expect(1, 1870, '\P{^Joining_Group=  Khaph}', "");
+    Expect(0, 1871, '\p{Joining_Group=  Khaph}', "");
+    Expect(1, 1871, '\p{^Joining_Group=  Khaph}', "");
+    Expect(1, 1871, '\P{Joining_Group=  Khaph}', "");
+    Expect(0, 1871, '\P{^Joining_Group=  Khaph}', "");
+    Error('\p{Jg=:=_ khaph}');
+    Error('\P{Jg=:=_ khaph}');
     Expect(1, 1870, '\p{Jg=:\AKhaph\z:}', "");;
     Expect(0, 1871, '\p{Jg=:\AKhaph\z:}', "");;
     Expect(1, 1870, '\p{Jg=khaph}', "");
@@ -55063,16 +55669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1871, '\P{^Jg=khaph}', "");
     Expect(1, 1870, '\p{Jg=:\Akhaph\z:}', "");;
     Expect(0, 1871, '\p{Jg=:\Akhaph\z:}', "");;
-    Expect(1, 1870, '\p{Jg= 	KHAPH}', "");
-    Expect(0, 1870, '\p{^Jg= 	KHAPH}', "");
-    Expect(0, 1870, '\P{Jg= 	KHAPH}', "");
-    Expect(1, 1870, '\P{^Jg= 	KHAPH}', "");
-    Expect(0, 1871, '\p{Jg= 	KHAPH}', "");
-    Expect(1, 1871, '\p{^Jg= 	KHAPH}', "");
-    Expect(1, 1871, '\P{Jg= 	KHAPH}', "");
-    Expect(0, 1871, '\P{^Jg= 	KHAPH}', "");
-    Error('\p{Is_Joining_Group=	_khaph/a/}');
-    Error('\P{Is_Joining_Group=	_khaph/a/}');
+    Expect(1, 1870, '\p{Jg=-Khaph}', "");
+    Expect(0, 1870, '\p{^Jg=-Khaph}', "");
+    Expect(0, 1870, '\P{Jg=-Khaph}', "");
+    Expect(1, 1870, '\P{^Jg=-Khaph}', "");
+    Expect(0, 1871, '\p{Jg=-Khaph}', "");
+    Expect(1, 1871, '\p{^Jg=-Khaph}', "");
+    Expect(1, 1871, '\P{Jg=-Khaph}', "");
+    Expect(0, 1871, '\P{^Jg=-Khaph}', "");
+    Error('\p{Is_Joining_Group=/a/- Khaph}');
+    Error('\P{Is_Joining_Group=/a/- Khaph}');
     Expect(1, 1870, '\p{Is_Joining_Group=khaph}', "");
     Expect(0, 1870, '\p{^Is_Joining_Group=khaph}', "");
     Expect(0, 1870, '\P{Is_Joining_Group=khaph}', "");
@@ -55081,56 +55687,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1871, '\p{^Is_Joining_Group=khaph}', "");
     Expect(1, 1871, '\P{Is_Joining_Group=khaph}', "");
     Expect(0, 1871, '\P{^Is_Joining_Group=khaph}', "");
-    Expect(1, 1870, '\p{Is_Joining_Group=	_khaph}', "");
-    Expect(0, 1870, '\p{^Is_Joining_Group=	_khaph}', "");
-    Expect(0, 1870, '\P{Is_Joining_Group=	_khaph}', "");
-    Expect(1, 1870, '\P{^Is_Joining_Group=	_khaph}', "");
-    Expect(0, 1871, '\p{Is_Joining_Group=	_khaph}', "");
-    Expect(1, 1871, '\p{^Is_Joining_Group=	_khaph}', "");
-    Expect(1, 1871, '\P{Is_Joining_Group=	_khaph}', "");
-    Expect(0, 1871, '\P{^Is_Joining_Group=	_khaph}', "");
-    Error('\p{Is_Jg= khaph:=}');
-    Error('\P{Is_Jg= khaph:=}');
-    Expect(1, 1870, '\p{Is_Jg:khaph}', "");
-    Expect(0, 1870, '\p{^Is_Jg:khaph}', "");
-    Expect(0, 1870, '\P{Is_Jg:khaph}', "");
-    Expect(1, 1870, '\P{^Is_Jg:khaph}', "");
-    Expect(0, 1871, '\p{Is_Jg:khaph}', "");
-    Expect(1, 1871, '\p{^Is_Jg:khaph}', "");
-    Expect(1, 1871, '\P{Is_Jg:khaph}', "");
-    Expect(0, 1871, '\P{^Is_Jg:khaph}', "");
-    Expect(1, 1870, '\p{Is_Jg=	_Khaph}', "");
-    Expect(0, 1870, '\p{^Is_Jg=	_Khaph}', "");
-    Expect(0, 1870, '\P{Is_Jg=	_Khaph}', "");
-    Expect(1, 1870, '\P{^Is_Jg=	_Khaph}', "");
-    Expect(0, 1871, '\p{Is_Jg=	_Khaph}', "");
-    Expect(1, 1871, '\p{^Is_Jg=	_Khaph}', "");
-    Expect(1, 1871, '\P{Is_Jg=	_Khaph}', "");
-    Expect(0, 1871, '\P{^Is_Jg=	_Khaph}', "");
-    Error('\p{Joining_Group=	:=Knotted_heh}');
-    Error('\P{Joining_Group=	:=Knotted_heh}');
+    Expect(1, 1870, '\p{Is_Joining_Group=_KHAPH}', "");
+    Expect(0, 1870, '\p{^Is_Joining_Group=_KHAPH}', "");
+    Expect(0, 1870, '\P{Is_Joining_Group=_KHAPH}', "");
+    Expect(1, 1870, '\P{^Is_Joining_Group=_KHAPH}', "");
+    Expect(0, 1871, '\p{Is_Joining_Group=_KHAPH}', "");
+    Expect(1, 1871, '\p{^Is_Joining_Group=_KHAPH}', "");
+    Expect(1, 1871, '\P{Is_Joining_Group=_KHAPH}', "");
+    Expect(0, 1871, '\P{^Is_Joining_Group=_KHAPH}', "");
+    Error('\p{Is_Jg=:=__khaph}');
+    Error('\P{Is_Jg=:=__khaph}');
+    Expect(1, 1870, '\p{Is_Jg=khaph}', "");
+    Expect(0, 1870, '\p{^Is_Jg=khaph}', "");
+    Expect(0, 1870, '\P{Is_Jg=khaph}', "");
+    Expect(1, 1870, '\P{^Is_Jg=khaph}', "");
+    Expect(0, 1871, '\p{Is_Jg=khaph}', "");
+    Expect(1, 1871, '\p{^Is_Jg=khaph}', "");
+    Expect(1, 1871, '\P{Is_Jg=khaph}', "");
+    Expect(0, 1871, '\P{^Is_Jg=khaph}', "");
+    Expect(1, 1870, '\p{Is_Jg=-KHAPH}', "");
+    Expect(0, 1870, '\p{^Is_Jg=-KHAPH}', "");
+    Expect(0, 1870, '\P{Is_Jg=-KHAPH}', "");
+    Expect(1, 1870, '\P{^Is_Jg=-KHAPH}', "");
+    Expect(0, 1871, '\p{Is_Jg=-KHAPH}', "");
+    Expect(1, 1871, '\p{^Is_Jg=-KHAPH}', "");
+    Expect(1, 1871, '\P{Is_Jg=-KHAPH}', "");
+    Expect(0, 1871, '\P{^Is_Jg=-KHAPH}', "");
+    Error('\p{Joining_Group= KNOTTED_HEH/a/}');
+    Error('\P{Joining_Group= KNOTTED_HEH/a/}');
     Expect(1, 1791, '\p{Joining_Group=:\AKnotted_Heh\z:}', "");;
     Expect(0, 1792, '\p{Joining_Group=:\AKnotted_Heh\z:}', "");;
-    Expect(1, 1791, '\p{Joining_Group=knottedheh}', "");
-    Expect(0, 1791, '\p{^Joining_Group=knottedheh}', "");
-    Expect(0, 1791, '\P{Joining_Group=knottedheh}', "");
-    Expect(1, 1791, '\P{^Joining_Group=knottedheh}', "");
-    Expect(0, 1792, '\p{Joining_Group=knottedheh}', "");
-    Expect(1, 1792, '\p{^Joining_Group=knottedheh}', "");
-    Expect(1, 1792, '\P{Joining_Group=knottedheh}', "");
-    Expect(0, 1792, '\P{^Joining_Group=knottedheh}', "");
+    Expect(1, 1791, '\p{Joining_Group: knottedheh}', "");
+    Expect(0, 1791, '\p{^Joining_Group: knottedheh}', "");
+    Expect(0, 1791, '\P{Joining_Group: knottedheh}', "");
+    Expect(1, 1791, '\P{^Joining_Group: knottedheh}', "");
+    Expect(0, 1792, '\p{Joining_Group: knottedheh}', "");
+    Expect(1, 1792, '\p{^Joining_Group: knottedheh}', "");
+    Expect(1, 1792, '\P{Joining_Group: knottedheh}', "");
+    Expect(0, 1792, '\P{^Joining_Group: knottedheh}', "");
     Expect(1, 1791, '\p{Joining_Group=:\Aknottedheh\z:}', "");;
     Expect(0, 1792, '\p{Joining_Group=:\Aknottedheh\z:}', "");;
-    Expect(1, 1791, '\p{Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(0, 1791, '\p{^Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(0, 1791, '\P{Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(1, 1791, '\P{^Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(0, 1792, '\p{Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(1, 1792, '\p{^Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(1, 1792, '\P{Joining_Group=-	KNOTTED_Heh}', "");
-    Expect(0, 1792, '\P{^Joining_Group=-	KNOTTED_Heh}', "");
-    Error('\p{Jg=:=- knotted_Heh}');
-    Error('\P{Jg=:=- knotted_Heh}');
+    Expect(1, 1791, '\p{Joining_Group:		-Knotted_HEH}', "");
+    Expect(0, 1791, '\p{^Joining_Group:		-Knotted_HEH}', "");
+    Expect(0, 1791, '\P{Joining_Group:		-Knotted_HEH}', "");
+    Expect(1, 1791, '\P{^Joining_Group:		-Knotted_HEH}', "");
+    Expect(0, 1792, '\p{Joining_Group:		-Knotted_HEH}', "");
+    Expect(1, 1792, '\p{^Joining_Group:		-Knotted_HEH}', "");
+    Expect(1, 1792, '\P{Joining_Group:		-Knotted_HEH}', "");
+    Expect(0, 1792, '\P{^Joining_Group:		-Knotted_HEH}', "");
+    Error('\p{Jg=/a/-Knotted_HEH}');
+    Error('\P{Jg=/a/-Knotted_HEH}');
     Expect(1, 1791, '\p{Jg=:\AKnotted_Heh\z:}', "");;
     Expect(0, 1792, '\p{Jg=:\AKnotted_Heh\z:}', "");;
     Expect(1, 1791, '\p{Jg=knottedheh}', "");
@@ -55143,16 +55749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1792, '\P{^Jg=knottedheh}', "");
     Expect(1, 1791, '\p{Jg=:\Aknottedheh\z:}', "");;
     Expect(0, 1792, '\p{Jg=:\Aknottedheh\z:}', "");;
-    Expect(1, 1791, '\p{Jg= KNOTTED_Heh}', "");
-    Expect(0, 1791, '\p{^Jg= KNOTTED_Heh}', "");
-    Expect(0, 1791, '\P{Jg= KNOTTED_Heh}', "");
-    Expect(1, 1791, '\P{^Jg= KNOTTED_Heh}', "");
-    Expect(0, 1792, '\p{Jg= KNOTTED_Heh}', "");
-    Expect(1, 1792, '\p{^Jg= KNOTTED_Heh}', "");
-    Expect(1, 1792, '\P{Jg= KNOTTED_Heh}', "");
-    Expect(0, 1792, '\P{^Jg= KNOTTED_Heh}', "");
-    Error('\p{Is_Joining_Group=:=Knotted_HEH}');
-    Error('\P{Is_Joining_Group=:=Knotted_HEH}');
+    Expect(1, 1791, '\p{Jg=	knotted_HEH}', "");
+    Expect(0, 1791, '\p{^Jg=	knotted_HEH}', "");
+    Expect(0, 1791, '\P{Jg=	knotted_HEH}', "");
+    Expect(1, 1791, '\P{^Jg=	knotted_HEH}', "");
+    Expect(0, 1792, '\p{Jg=	knotted_HEH}', "");
+    Expect(1, 1792, '\p{^Jg=	knotted_HEH}', "");
+    Expect(1, 1792, '\P{Jg=	knotted_HEH}', "");
+    Expect(0, 1792, '\P{^Jg=	knotted_HEH}', "");
+    Error('\p{Is_Joining_Group=/a/_Knotted_Heh}');
+    Error('\P{Is_Joining_Group=/a/_Knotted_Heh}');
     Expect(1, 1791, '\p{Is_Joining_Group=knottedheh}', "");
     Expect(0, 1791, '\p{^Is_Joining_Group=knottedheh}', "");
     Expect(0, 1791, '\P{Is_Joining_Group=knottedheh}', "");
@@ -55161,16 +55767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1792, '\p{^Is_Joining_Group=knottedheh}', "");
     Expect(1, 1792, '\P{Is_Joining_Group=knottedheh}', "");
     Expect(0, 1792, '\P{^Is_Joining_Group=knottedheh}', "");
-    Expect(1, 1791, '\p{Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(0, 1791, '\p{^Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(0, 1791, '\P{Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(1, 1791, '\P{^Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(0, 1792, '\p{Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(1, 1792, '\p{^Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(1, 1792, '\P{Is_Joining_Group=_	Knotted_HEH}', "");
-    Expect(0, 1792, '\P{^Is_Joining_Group=_	Knotted_HEH}', "");
-    Error('\p{Is_Jg=-KNOTTED_Heh/a/}');
-    Error('\P{Is_Jg=-KNOTTED_Heh/a/}');
+    Expect(1, 1791, '\p{Is_Joining_Group=	knotted_HEH}', "");
+    Expect(0, 1791, '\p{^Is_Joining_Group=	knotted_HEH}', "");
+    Expect(0, 1791, '\P{Is_Joining_Group=	knotted_HEH}', "");
+    Expect(1, 1791, '\P{^Is_Joining_Group=	knotted_HEH}', "");
+    Expect(0, 1792, '\p{Is_Joining_Group=	knotted_HEH}', "");
+    Expect(1, 1792, '\p{^Is_Joining_Group=	knotted_HEH}', "");
+    Expect(1, 1792, '\P{Is_Joining_Group=	knotted_HEH}', "");
+    Expect(0, 1792, '\P{^Is_Joining_Group=	knotted_HEH}', "");
+    Error('\p{Is_Jg=  KNOTTED_Heh/a/}');
+    Error('\P{Is_Jg=  KNOTTED_Heh/a/}');
     Expect(1, 1791, '\p{Is_Jg=knottedheh}', "");
     Expect(0, 1791, '\p{^Is_Jg=knottedheh}', "");
     Expect(0, 1791, '\P{Is_Jg=knottedheh}', "");
@@ -55179,16 +55785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1792, '\p{^Is_Jg=knottedheh}', "");
     Expect(1, 1792, '\P{Is_Jg=knottedheh}', "");
     Expect(0, 1792, '\P{^Is_Jg=knottedheh}', "");
-    Expect(1, 1791, '\p{Is_Jg=	knotted_Heh}', "");
-    Expect(0, 1791, '\p{^Is_Jg=	knotted_Heh}', "");
-    Expect(0, 1791, '\P{Is_Jg=	knotted_Heh}', "");
-    Expect(1, 1791, '\P{^Is_Jg=	knotted_Heh}', "");
-    Expect(0, 1792, '\p{Is_Jg=	knotted_Heh}', "");
-    Expect(1, 1792, '\p{^Is_Jg=	knotted_Heh}', "");
-    Expect(1, 1792, '\P{Is_Jg=	knotted_Heh}', "");
-    Expect(0, 1792, '\P{^Is_Jg=	knotted_Heh}', "");
-    Error('\p{Joining_Group=/a/lam}');
-    Error('\P{Joining_Group=/a/lam}');
+    Expect(1, 1791, '\p{Is_Jg=_	Knotted_HEH}', "");
+    Expect(0, 1791, '\p{^Is_Jg=_	Knotted_HEH}', "");
+    Expect(0, 1791, '\P{Is_Jg=_	Knotted_HEH}', "");
+    Expect(1, 1791, '\P{^Is_Jg=_	Knotted_HEH}', "");
+    Expect(0, 1792, '\p{Is_Jg=_	Knotted_HEH}', "");
+    Expect(1, 1792, '\p{^Is_Jg=_	Knotted_HEH}', "");
+    Expect(1, 1792, '\P{Is_Jg=_	Knotted_HEH}', "");
+    Expect(0, 1792, '\P{^Is_Jg=_	Knotted_HEH}', "");
+    Error('\p{Joining_Group:   -lam/a/}');
+    Error('\P{Joining_Group:   -lam/a/}');
     Expect(1, 2247, '\p{Joining_Group=:\ALam\z:}', "");;
     Expect(0, 2248, '\p{Joining_Group=:\ALam\z:}', "");;
     Expect(1, 2247, '\p{Joining_Group=lam}', "");
@@ -55201,16 +55807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2248, '\P{^Joining_Group=lam}', "");
     Expect(1, 2247, '\p{Joining_Group=:\Alam\z:}', "");;
     Expect(0, 2248, '\p{Joining_Group=:\Alam\z:}', "");;
-    Expect(1, 2247, '\p{Joining_Group=-Lam}', "");
-    Expect(0, 2247, '\p{^Joining_Group=-Lam}', "");
-    Expect(0, 2247, '\P{Joining_Group=-Lam}', "");
-    Expect(1, 2247, '\P{^Joining_Group=-Lam}', "");
-    Expect(0, 2248, '\p{Joining_Group=-Lam}', "");
-    Expect(1, 2248, '\p{^Joining_Group=-Lam}', "");
-    Expect(1, 2248, '\P{Joining_Group=-Lam}', "");
-    Expect(0, 2248, '\P{^Joining_Group=-Lam}', "");
-    Error('\p{Jg=_	LAM/a/}');
-    Error('\P{Jg=_	LAM/a/}');
+    Expect(1, 2247, '\p{Joining_Group=	Lam}', "");
+    Expect(0, 2247, '\p{^Joining_Group=	Lam}', "");
+    Expect(0, 2247, '\P{Joining_Group=	Lam}', "");
+    Expect(1, 2247, '\P{^Joining_Group=	Lam}', "");
+    Expect(0, 2248, '\p{Joining_Group=	Lam}', "");
+    Expect(1, 2248, '\p{^Joining_Group=	Lam}', "");
+    Expect(1, 2248, '\P{Joining_Group=	Lam}', "");
+    Expect(0, 2248, '\P{^Joining_Group=	Lam}', "");
+    Error('\p{Jg=	:=Lam}');
+    Error('\P{Jg=	:=Lam}');
     Expect(1, 2247, '\p{Jg=:\ALam\z:}', "");;
     Expect(0, 2248, '\p{Jg=:\ALam\z:}', "");;
     Expect(1, 2247, '\p{Jg=lam}', "");
@@ -55223,14 +55829,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2248, '\P{^Jg=lam}', "");
     Expect(1, 2247, '\p{Jg=:\Alam\z:}', "");;
     Expect(0, 2248, '\p{Jg=:\Alam\z:}', "");;
-    Expect(1, 2247, '\p{Jg: _Lam}', "");
-    Expect(0, 2247, '\p{^Jg: _Lam}', "");
-    Expect(0, 2247, '\P{Jg: _Lam}', "");
-    Expect(1, 2247, '\P{^Jg: _Lam}', "");
-    Expect(0, 2248, '\p{Jg: _Lam}', "");
-    Expect(1, 2248, '\p{^Jg: _Lam}', "");
-    Expect(1, 2248, '\P{Jg: _Lam}', "");
-    Expect(0, 2248, '\P{^Jg: _Lam}', "");
+    Expect(1, 2247, '\p{Jg=_-LAM}', "");
+    Expect(0, 2247, '\p{^Jg=_-LAM}', "");
+    Expect(0, 2247, '\P{Jg=_-LAM}', "");
+    Expect(1, 2247, '\P{^Jg=_-LAM}', "");
+    Expect(0, 2248, '\p{Jg=_-LAM}', "");
+    Expect(1, 2248, '\p{^Jg=_-LAM}', "");
+    Expect(1, 2248, '\P{Jg=_-LAM}', "");
+    Expect(0, 2248, '\P{^Jg=_-LAM}', "");
     Error('\p{Is_Joining_Group=/a/lam}');
     Error('\P{Is_Joining_Group=/a/lam}');
     Expect(1, 2247, '\p{Is_Joining_Group=lam}', "");
@@ -55241,16 +55847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2248, '\p{^Is_Joining_Group=lam}', "");
     Expect(1, 2248, '\P{Is_Joining_Group=lam}', "");
     Expect(0, 2248, '\P{^Is_Joining_Group=lam}', "");
-    Expect(1, 2247, '\p{Is_Joining_Group=- Lam}', "");
-    Expect(0, 2247, '\p{^Is_Joining_Group=- Lam}', "");
-    Expect(0, 2247, '\P{Is_Joining_Group=- Lam}', "");
-    Expect(1, 2247, '\P{^Is_Joining_Group=- Lam}', "");
-    Expect(0, 2248, '\p{Is_Joining_Group=- Lam}', "");
-    Expect(1, 2248, '\p{^Is_Joining_Group=- Lam}', "");
-    Expect(1, 2248, '\P{Is_Joining_Group=- Lam}', "");
-    Expect(0, 2248, '\P{^Is_Joining_Group=- Lam}', "");
-    Error('\p{Is_Jg=:=LAM}');
-    Error('\P{Is_Jg=:=LAM}');
+    Expect(1, 2247, '\p{Is_Joining_Group=	Lam}', "");
+    Expect(0, 2247, '\p{^Is_Joining_Group=	Lam}', "");
+    Expect(0, 2247, '\P{Is_Joining_Group=	Lam}', "");
+    Expect(1, 2247, '\P{^Is_Joining_Group=	Lam}', "");
+    Expect(0, 2248, '\p{Is_Joining_Group=	Lam}', "");
+    Expect(1, 2248, '\p{^Is_Joining_Group=	Lam}', "");
+    Expect(1, 2248, '\P{Is_Joining_Group=	Lam}', "");
+    Expect(0, 2248, '\P{^Is_Joining_Group=	Lam}', "");
+    Error('\p{Is_Jg=_/a/lam}');
+    Error('\P{Is_Jg=_/a/lam}');
     Expect(1, 2247, '\p{Is_Jg=lam}', "");
     Expect(0, 2247, '\p{^Is_Jg=lam}', "");
     Expect(0, 2247, '\P{Is_Jg=lam}', "");
@@ -55259,16 +55865,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2248, '\p{^Is_Jg=lam}', "");
     Expect(1, 2248, '\P{Is_Jg=lam}', "");
     Expect(0, 2248, '\P{^Is_Jg=lam}', "");
-    Expect(1, 2247, '\p{Is_Jg=-Lam}', "");
-    Expect(0, 2247, '\p{^Is_Jg=-Lam}', "");
-    Expect(0, 2247, '\P{Is_Jg=-Lam}', "");
-    Expect(1, 2247, '\P{^Is_Jg=-Lam}', "");
-    Expect(0, 2248, '\p{Is_Jg=-Lam}', "");
-    Expect(1, 2248, '\p{^Is_Jg=-Lam}', "");
-    Expect(1, 2248, '\P{Is_Jg=-Lam}', "");
-    Expect(0, 2248, '\P{^Is_Jg=-Lam}', "");
-    Error('\p{Joining_Group=_/a/LAMADH}');
-    Error('\P{Joining_Group=_/a/LAMADH}');
+    Expect(1, 2247, '\p{Is_Jg=-LAM}', "");
+    Expect(0, 2247, '\p{^Is_Jg=-LAM}', "");
+    Expect(0, 2247, '\P{Is_Jg=-LAM}', "");
+    Expect(1, 2247, '\P{^Is_Jg=-LAM}', "");
+    Expect(0, 2248, '\p{Is_Jg=-LAM}', "");
+    Expect(1, 2248, '\p{^Is_Jg=-LAM}', "");
+    Expect(1, 2248, '\P{Is_Jg=-LAM}', "");
+    Expect(0, 2248, '\P{^Is_Jg=-LAM}', "");
+    Error('\p{Joining_Group=/a/_-Lamadh}');
+    Error('\P{Joining_Group=/a/_-Lamadh}');
     Expect(1, 1824, '\p{Joining_Group=:\ALamadh\z:}', "");;
     Expect(0, 1825, '\p{Joining_Group=:\ALamadh\z:}', "");;
     Expect(1, 1824, '\p{Joining_Group=lamadh}', "");
@@ -55281,16 +55887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1825, '\P{^Joining_Group=lamadh}', "");
     Expect(1, 1824, '\p{Joining_Group=:\Alamadh\z:}', "");;
     Expect(0, 1825, '\p{Joining_Group=:\Alamadh\z:}', "");;
-    Expect(1, 1824, '\p{Joining_Group= Lamadh}', "");
-    Expect(0, 1824, '\p{^Joining_Group= Lamadh}', "");
-    Expect(0, 1824, '\P{Joining_Group= Lamadh}', "");
-    Expect(1, 1824, '\P{^Joining_Group= Lamadh}', "");
-    Expect(0, 1825, '\p{Joining_Group= Lamadh}', "");
-    Expect(1, 1825, '\p{^Joining_Group= Lamadh}', "");
-    Expect(1, 1825, '\P{Joining_Group= Lamadh}', "");
-    Expect(0, 1825, '\P{^Joining_Group= Lamadh}', "");
-    Error('\p{Jg:   - lamadh/a/}');
-    Error('\P{Jg:   - lamadh/a/}');
+    Expect(1, 1824, '\p{Joining_Group=	_lamadh}', "");
+    Expect(0, 1824, '\p{^Joining_Group=	_lamadh}', "");
+    Expect(0, 1824, '\P{Joining_Group=	_lamadh}', "");
+    Expect(1, 1824, '\P{^Joining_Group=	_lamadh}', "");
+    Expect(0, 1825, '\p{Joining_Group=	_lamadh}', "");
+    Expect(1, 1825, '\p{^Joining_Group=	_lamadh}', "");
+    Expect(1, 1825, '\P{Joining_Group=	_lamadh}', "");
+    Expect(0, 1825, '\P{^Joining_Group=	_lamadh}', "");
+    Error('\p{Jg=_-Lamadh/a/}');
+    Error('\P{Jg=_-Lamadh/a/}');
     Expect(1, 1824, '\p{Jg=:\ALamadh\z:}', "");;
     Expect(0, 1825, '\p{Jg=:\ALamadh\z:}', "");;
     Expect(1, 1824, '\p{Jg=lamadh}', "");
@@ -55303,16 +55909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1825, '\P{^Jg=lamadh}', "");
     Expect(1, 1824, '\p{Jg=:\Alamadh\z:}', "");;
     Expect(0, 1825, '\p{Jg=:\Alamadh\z:}', "");;
-    Expect(1, 1824, '\p{Jg=_	lamadh}', "");
-    Expect(0, 1824, '\p{^Jg=_	lamadh}', "");
-    Expect(0, 1824, '\P{Jg=_	lamadh}', "");
-    Expect(1, 1824, '\P{^Jg=_	lamadh}', "");
-    Expect(0, 1825, '\p{Jg=_	lamadh}', "");
-    Expect(1, 1825, '\p{^Jg=_	lamadh}', "");
-    Expect(1, 1825, '\P{Jg=_	lamadh}', "");
-    Expect(0, 1825, '\P{^Jg=_	lamadh}', "");
-    Error('\p{Is_Joining_Group=_/a/LAMADH}');
-    Error('\P{Is_Joining_Group=_/a/LAMADH}');
+    Expect(1, 1824, '\p{Jg= lamadh}', "");
+    Expect(0, 1824, '\p{^Jg= lamadh}', "");
+    Expect(0, 1824, '\P{Jg= lamadh}', "");
+    Expect(1, 1824, '\P{^Jg= lamadh}', "");
+    Expect(0, 1825, '\p{Jg= lamadh}', "");
+    Expect(1, 1825, '\p{^Jg= lamadh}', "");
+    Expect(1, 1825, '\P{Jg= lamadh}', "");
+    Expect(0, 1825, '\P{^Jg= lamadh}', "");
+    Error('\p{Is_Joining_Group=_/a/Lamadh}');
+    Error('\P{Is_Joining_Group=_/a/Lamadh}');
     Expect(1, 1824, '\p{Is_Joining_Group=lamadh}', "");
     Expect(0, 1824, '\p{^Is_Joining_Group=lamadh}', "");
     Expect(0, 1824, '\P{Is_Joining_Group=lamadh}', "");
@@ -55321,16 +55927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1825, '\p{^Is_Joining_Group=lamadh}', "");
     Expect(1, 1825, '\P{Is_Joining_Group=lamadh}', "");
     Expect(0, 1825, '\P{^Is_Joining_Group=lamadh}', "");
-    Expect(1, 1824, '\p{Is_Joining_Group=_	lamadh}', "");
-    Expect(0, 1824, '\p{^Is_Joining_Group=_	lamadh}', "");
-    Expect(0, 1824, '\P{Is_Joining_Group=_	lamadh}', "");
-    Expect(1, 1824, '\P{^Is_Joining_Group=_	lamadh}', "");
-    Expect(0, 1825, '\p{Is_Joining_Group=_	lamadh}', "");
-    Expect(1, 1825, '\p{^Is_Joining_Group=_	lamadh}', "");
-    Expect(1, 1825, '\P{Is_Joining_Group=_	lamadh}', "");
-    Expect(0, 1825, '\P{^Is_Joining_Group=_	lamadh}', "");
-    Error('\p{Is_Jg=/a/	_lamadh}');
-    Error('\P{Is_Jg=/a/	_lamadh}');
+    Expect(1, 1824, '\p{Is_Joining_Group= 	lamadh}', "");
+    Expect(0, 1824, '\p{^Is_Joining_Group= 	lamadh}', "");
+    Expect(0, 1824, '\P{Is_Joining_Group= 	lamadh}', "");
+    Expect(1, 1824, '\P{^Is_Joining_Group= 	lamadh}', "");
+    Expect(0, 1825, '\p{Is_Joining_Group= 	lamadh}', "");
+    Expect(1, 1825, '\p{^Is_Joining_Group= 	lamadh}', "");
+    Expect(1, 1825, '\P{Is_Joining_Group= 	lamadh}', "");
+    Expect(0, 1825, '\P{^Is_Joining_Group= 	lamadh}', "");
+    Error('\p{Is_Jg: /a/		LAMADH}');
+    Error('\P{Is_Jg: /a/		LAMADH}');
     Expect(1, 1824, '\p{Is_Jg=lamadh}', "");
     Expect(0, 1824, '\p{^Is_Jg=lamadh}', "");
     Expect(0, 1824, '\P{Is_Jg=lamadh}', "");
@@ -55339,16 +55945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1825, '\p{^Is_Jg=lamadh}', "");
     Expect(1, 1825, '\P{Is_Jg=lamadh}', "");
     Expect(0, 1825, '\P{^Is_Jg=lamadh}', "");
-    Expect(1, 1824, '\p{Is_Jg=  LAMADH}', "");
-    Expect(0, 1824, '\p{^Is_Jg=  LAMADH}', "");
-    Expect(0, 1824, '\P{Is_Jg=  LAMADH}', "");
-    Expect(1, 1824, '\P{^Is_Jg=  LAMADH}', "");
-    Expect(0, 1825, '\p{Is_Jg=  LAMADH}', "");
-    Expect(1, 1825, '\p{^Is_Jg=  LAMADH}', "");
-    Expect(1, 1825, '\P{Is_Jg=  LAMADH}', "");
-    Expect(0, 1825, '\P{^Is_Jg=  LAMADH}', "");
-    Error('\p{Joining_Group=:=-malayalam_bha}');
-    Error('\P{Joining_Group=:=-malayalam_bha}');
+    Expect(1, 1824, '\p{Is_Jg: 		LAMADH}', "");
+    Expect(0, 1824, '\p{^Is_Jg: 		LAMADH}', "");
+    Expect(0, 1824, '\P{Is_Jg: 		LAMADH}', "");
+    Expect(1, 1824, '\P{^Is_Jg: 		LAMADH}', "");
+    Expect(0, 1825, '\p{Is_Jg: 		LAMADH}', "");
+    Expect(1, 1825, '\p{^Is_Jg: 		LAMADH}', "");
+    Expect(1, 1825, '\P{Is_Jg: 		LAMADH}', "");
+    Expect(0, 1825, '\P{^Is_Jg: 		LAMADH}', "");
+    Error('\p{Joining_Group=/a/malayalam_bha}');
+    Error('\P{Joining_Group=/a/malayalam_bha}');
     Expect(1, 2150, '\p{Joining_Group=:\AMalayalam_Bha\z:}', "");;
     Expect(0, 2151, '\p{Joining_Group=:\AMalayalam_Bha\z:}', "");;
     Expect(1, 2150, '\p{Joining_Group=malayalambha}', "");
@@ -55361,16 +55967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2151, '\P{^Joining_Group=malayalambha}', "");
     Expect(1, 2150, '\p{Joining_Group=:\Amalayalambha\z:}', "");;
     Expect(0, 2151, '\p{Joining_Group=:\Amalayalambha\z:}', "");;
-    Expect(1, 2150, '\p{Joining_Group= _malayalam_Bha}', "");
-    Expect(0, 2150, '\p{^Joining_Group= _malayalam_Bha}', "");
-    Expect(0, 2150, '\P{Joining_Group= _malayalam_Bha}', "");
-    Expect(1, 2150, '\P{^Joining_Group= _malayalam_Bha}', "");
-    Expect(0, 2151, '\p{Joining_Group= _malayalam_Bha}', "");
-    Expect(1, 2151, '\p{^Joining_Group= _malayalam_Bha}', "");
-    Expect(1, 2151, '\P{Joining_Group= _malayalam_Bha}', "");
-    Expect(0, 2151, '\P{^Joining_Group= _malayalam_Bha}', "");
-    Error('\p{Jg=_-MALAYALAM_BHA:=}');
-    Error('\P{Jg=_-MALAYALAM_BHA:=}');
+    Expect(1, 2150, '\p{Joining_Group=MALAYALAM_BHA}', "");
+    Expect(0, 2150, '\p{^Joining_Group=MALAYALAM_BHA}', "");
+    Expect(0, 2150, '\P{Joining_Group=MALAYALAM_BHA}', "");
+    Expect(1, 2150, '\P{^Joining_Group=MALAYALAM_BHA}', "");
+    Expect(0, 2151, '\p{Joining_Group=MALAYALAM_BHA}', "");
+    Expect(1, 2151, '\p{^Joining_Group=MALAYALAM_BHA}', "");
+    Expect(1, 2151, '\P{Joining_Group=MALAYALAM_BHA}', "");
+    Expect(0, 2151, '\P{^Joining_Group=MALAYALAM_BHA}', "");
+    Error('\p{Jg=/a/malayalam_Bha}');
+    Error('\P{Jg=/a/malayalam_Bha}');
     Expect(1, 2150, '\p{Jg=:\AMalayalam_Bha\z:}', "");;
     Expect(0, 2151, '\p{Jg=:\AMalayalam_Bha\z:}', "");;
     Expect(1, 2150, '\p{Jg=malayalambha}', "");
@@ -55383,16 +55989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2151, '\P{^Jg=malayalambha}', "");
     Expect(1, 2150, '\p{Jg=:\Amalayalambha\z:}', "");;
     Expect(0, 2151, '\p{Jg=:\Amalayalambha\z:}', "");;
-    Expect(1, 2150, '\p{Jg=- Malayalam_bha}', "");
-    Expect(0, 2150, '\p{^Jg=- Malayalam_bha}', "");
-    Expect(0, 2150, '\P{Jg=- Malayalam_bha}', "");
-    Expect(1, 2150, '\P{^Jg=- Malayalam_bha}', "");
-    Expect(0, 2151, '\p{Jg=- Malayalam_bha}', "");
-    Expect(1, 2151, '\p{^Jg=- Malayalam_bha}', "");
-    Expect(1, 2151, '\P{Jg=- Malayalam_bha}', "");
-    Expect(0, 2151, '\P{^Jg=- Malayalam_bha}', "");
-    Error('\p{Is_Joining_Group= malayalam_Bha:=}');
-    Error('\P{Is_Joining_Group= malayalam_Bha:=}');
+    Expect(1, 2150, '\p{Jg= Malayalam_BHA}', "");
+    Expect(0, 2150, '\p{^Jg= Malayalam_BHA}', "");
+    Expect(0, 2150, '\P{Jg= Malayalam_BHA}', "");
+    Expect(1, 2150, '\P{^Jg= Malayalam_BHA}', "");
+    Expect(0, 2151, '\p{Jg= Malayalam_BHA}', "");
+    Expect(1, 2151, '\p{^Jg= Malayalam_BHA}', "");
+    Expect(1, 2151, '\P{Jg= Malayalam_BHA}', "");
+    Expect(0, 2151, '\P{^Jg= Malayalam_BHA}', "");
+    Error('\p{Is_Joining_Group=_	Malayalam_bha:=}');
+    Error('\P{Is_Joining_Group=_	Malayalam_bha:=}');
     Expect(1, 2150, '\p{Is_Joining_Group=malayalambha}', "");
     Expect(0, 2150, '\p{^Is_Joining_Group=malayalambha}', "");
     Expect(0, 2150, '\P{Is_Joining_Group=malayalambha}', "");
@@ -55401,34 +56007,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2151, '\p{^Is_Joining_Group=malayalambha}', "");
     Expect(1, 2151, '\P{Is_Joining_Group=malayalambha}', "");
     Expect(0, 2151, '\P{^Is_Joining_Group=malayalambha}', "");
-    Expect(1, 2150, '\p{Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(0, 2150, '\p{^Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(0, 2150, '\P{Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(1, 2150, '\P{^Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(0, 2151, '\p{Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(1, 2151, '\p{^Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(1, 2151, '\P{Is_Joining_Group=__Malayalam_Bha}', "");
-    Expect(0, 2151, '\P{^Is_Joining_Group=__Malayalam_Bha}', "");
-    Error('\p{Is_Jg=--Malayalam_Bha/a/}');
-    Error('\P{Is_Jg=--Malayalam_Bha/a/}');
-    Expect(1, 2150, '\p{Is_Jg:	malayalambha}', "");
-    Expect(0, 2150, '\p{^Is_Jg:	malayalambha}', "");
-    Expect(0, 2150, '\P{Is_Jg:	malayalambha}', "");
-    Expect(1, 2150, '\P{^Is_Jg:	malayalambha}', "");
-    Expect(0, 2151, '\p{Is_Jg:	malayalambha}', "");
-    Expect(1, 2151, '\p{^Is_Jg:	malayalambha}', "");
-    Expect(1, 2151, '\P{Is_Jg:	malayalambha}', "");
-    Expect(0, 2151, '\P{^Is_Jg:	malayalambha}', "");
-    Expect(1, 2150, '\p{Is_Jg=	malayalam_Bha}', "");
-    Expect(0, 2150, '\p{^Is_Jg=	malayalam_Bha}', "");
-    Expect(0, 2150, '\P{Is_Jg=	malayalam_Bha}', "");
-    Expect(1, 2150, '\P{^Is_Jg=	malayalam_Bha}', "");
-    Expect(0, 2151, '\p{Is_Jg=	malayalam_Bha}', "");
-    Expect(1, 2151, '\p{^Is_Jg=	malayalam_Bha}', "");
-    Expect(1, 2151, '\P{Is_Jg=	malayalam_Bha}', "");
-    Expect(0, 2151, '\P{^Is_Jg=	malayalam_Bha}', "");
-    Error('\p{Joining_Group=-_malayalam_JA/a/}');
-    Error('\P{Joining_Group=-_malayalam_JA/a/}');
+    Expect(1, 2150, '\p{Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(0, 2150, '\p{^Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(0, 2150, '\P{Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(1, 2150, '\P{^Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(0, 2151, '\p{Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(1, 2151, '\p{^Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(1, 2151, '\P{Is_Joining_Group=	-Malayalam_Bha}', "");
+    Expect(0, 2151, '\P{^Is_Joining_Group=	-Malayalam_Bha}', "");
+    Error('\p{Is_Jg=/a/	-Malayalam_Bha}');
+    Error('\P{Is_Jg=/a/	-Malayalam_Bha}');
+    Expect(1, 2150, '\p{Is_Jg=malayalambha}', "");
+    Expect(0, 2150, '\p{^Is_Jg=malayalambha}', "");
+    Expect(0, 2150, '\P{Is_Jg=malayalambha}', "");
+    Expect(1, 2150, '\P{^Is_Jg=malayalambha}', "");
+    Expect(0, 2151, '\p{Is_Jg=malayalambha}', "");
+    Expect(1, 2151, '\p{^Is_Jg=malayalambha}', "");
+    Expect(1, 2151, '\P{Is_Jg=malayalambha}', "");
+    Expect(0, 2151, '\P{^Is_Jg=malayalambha}', "");
+    Expect(1, 2150, '\p{Is_Jg=- Malayalam_Bha}', "");
+    Expect(0, 2150, '\p{^Is_Jg=- Malayalam_Bha}', "");
+    Expect(0, 2150, '\P{Is_Jg=- Malayalam_Bha}', "");
+    Expect(1, 2150, '\P{^Is_Jg=- Malayalam_Bha}', "");
+    Expect(0, 2151, '\p{Is_Jg=- Malayalam_Bha}', "");
+    Expect(1, 2151, '\p{^Is_Jg=- Malayalam_Bha}', "");
+    Expect(1, 2151, '\P{Is_Jg=- Malayalam_Bha}', "");
+    Expect(0, 2151, '\P{^Is_Jg=- Malayalam_Bha}', "");
+    Error('\p{Joining_Group=-:=Malayalam_JA}');
+    Error('\P{Joining_Group=-:=Malayalam_JA}');
     Expect(1, 2145, '\p{Joining_Group=:\AMalayalam_Ja\z:}', "");;
     Expect(0, 2146, '\p{Joining_Group=:\AMalayalam_Ja\z:}', "");;
     Expect(1, 2145, '\p{Joining_Group=malayalamja}', "");
@@ -55441,16 +56047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2146, '\P{^Joining_Group=malayalamja}', "");
     Expect(1, 2145, '\p{Joining_Group=:\Amalayalamja\z:}', "");;
     Expect(0, 2146, '\p{Joining_Group=:\Amalayalamja\z:}', "");;
-    Expect(1, 2145, '\p{Joining_Group:   -	malayalam_Ja}', "");
-    Expect(0, 2145, '\p{^Joining_Group:   -	malayalam_Ja}', "");
-    Expect(0, 2145, '\P{Joining_Group:   -	malayalam_Ja}', "");
-    Expect(1, 2145, '\P{^Joining_Group:   -	malayalam_Ja}', "");
-    Expect(0, 2146, '\p{Joining_Group:   -	malayalam_Ja}', "");
-    Expect(1, 2146, '\p{^Joining_Group:   -	malayalam_Ja}', "");
-    Expect(1, 2146, '\P{Joining_Group:   -	malayalam_Ja}', "");
-    Expect(0, 2146, '\P{^Joining_Group:   -	malayalam_Ja}', "");
-    Error('\p{Jg=- malayalam_Ja:=}');
-    Error('\P{Jg=- malayalam_Ja:=}');
+    Expect(1, 2145, '\p{Joining_Group=	_malayalam_JA}', "");
+    Expect(0, 2145, '\p{^Joining_Group=	_malayalam_JA}', "");
+    Expect(0, 2145, '\P{Joining_Group=	_malayalam_JA}', "");
+    Expect(1, 2145, '\P{^Joining_Group=	_malayalam_JA}', "");
+    Expect(0, 2146, '\p{Joining_Group=	_malayalam_JA}', "");
+    Expect(1, 2146, '\p{^Joining_Group=	_malayalam_JA}', "");
+    Expect(1, 2146, '\P{Joining_Group=	_malayalam_JA}', "");
+    Expect(0, 2146, '\P{^Joining_Group=	_malayalam_JA}', "");
+    Error('\p{Jg=	-MALAYALAM_ja:=}');
+    Error('\P{Jg=	-MALAYALAM_ja:=}');
     Expect(1, 2145, '\p{Jg=:\AMalayalam_Ja\z:}', "");;
     Expect(0, 2146, '\p{Jg=:\AMalayalam_Ja\z:}', "");;
     Expect(1, 2145, '\p{Jg=malayalamja}', "");
@@ -55463,16 +56069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2146, '\P{^Jg=malayalamja}', "");
     Expect(1, 2145, '\p{Jg=:\Amalayalamja\z:}', "");;
     Expect(0, 2146, '\p{Jg=:\Amalayalamja\z:}', "");;
-    Expect(1, 2145, '\p{Jg=_Malayalam_Ja}', "");
-    Expect(0, 2145, '\p{^Jg=_Malayalam_Ja}', "");
-    Expect(0, 2145, '\P{Jg=_Malayalam_Ja}', "");
-    Expect(1, 2145, '\P{^Jg=_Malayalam_Ja}', "");
-    Expect(0, 2146, '\p{Jg=_Malayalam_Ja}', "");
-    Expect(1, 2146, '\p{^Jg=_Malayalam_Ja}', "");
-    Expect(1, 2146, '\P{Jg=_Malayalam_Ja}', "");
-    Expect(0, 2146, '\P{^Jg=_Malayalam_Ja}', "");
-    Error('\p{Is_Joining_Group=_ Malayalam_ja/a/}');
-    Error('\P{Is_Joining_Group=_ Malayalam_ja/a/}');
+    Expect(1, 2145, '\p{Jg=-MALAYALAM_Ja}', "");
+    Expect(0, 2145, '\p{^Jg=-MALAYALAM_Ja}', "");
+    Expect(0, 2145, '\P{Jg=-MALAYALAM_Ja}', "");
+    Expect(1, 2145, '\P{^Jg=-MALAYALAM_Ja}', "");
+    Expect(0, 2146, '\p{Jg=-MALAYALAM_Ja}', "");
+    Expect(1, 2146, '\p{^Jg=-MALAYALAM_Ja}', "");
+    Expect(1, 2146, '\P{Jg=-MALAYALAM_Ja}', "");
+    Expect(0, 2146, '\P{^Jg=-MALAYALAM_Ja}', "");
+    Error('\p{Is_Joining_Group=	/a/Malayalam_Ja}');
+    Error('\P{Is_Joining_Group=	/a/Malayalam_Ja}');
     Expect(1, 2145, '\p{Is_Joining_Group=malayalamja}', "");
     Expect(0, 2145, '\p{^Is_Joining_Group=malayalamja}', "");
     Expect(0, 2145, '\P{Is_Joining_Group=malayalamja}', "");
@@ -55481,16 +56087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2146, '\p{^Is_Joining_Group=malayalamja}', "");
     Expect(1, 2146, '\P{Is_Joining_Group=malayalamja}', "");
     Expect(0, 2146, '\P{^Is_Joining_Group=malayalamja}', "");
-    Expect(1, 2145, '\p{Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(0, 2145, '\p{^Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(0, 2145, '\P{Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(1, 2145, '\P{^Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(0, 2146, '\p{Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(1, 2146, '\p{^Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(1, 2146, '\P{Is_Joining_Group=-_Malayalam_ja}', "");
-    Expect(0, 2146, '\P{^Is_Joining_Group=-_Malayalam_ja}', "");
-    Error('\p{Is_Jg= :=MALAYALAM_JA}');
-    Error('\P{Is_Jg= :=MALAYALAM_JA}');
+    Expect(1, 2145, '\p{Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(0, 2145, '\p{^Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(0, 2145, '\P{Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(1, 2145, '\P{^Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(0, 2146, '\p{Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(1, 2146, '\p{^Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(1, 2146, '\P{Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Expect(0, 2146, '\P{^Is_Joining_Group=	MALAYALAM_Ja}', "");
+    Error('\p{Is_Jg:   __malayalam_ja:=}');
+    Error('\P{Is_Jg:   __malayalam_ja:=}');
     Expect(1, 2145, '\p{Is_Jg=malayalamja}', "");
     Expect(0, 2145, '\p{^Is_Jg=malayalamja}', "");
     Expect(0, 2145, '\P{Is_Jg=malayalamja}', "");
@@ -55499,16 +56105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2146, '\p{^Is_Jg=malayalamja}', "");
     Expect(1, 2146, '\P{Is_Jg=malayalamja}', "");
     Expect(0, 2146, '\P{^Is_Jg=malayalamja}', "");
-    Expect(1, 2145, '\p{Is_Jg=--Malayalam_Ja}', "");
-    Expect(0, 2145, '\p{^Is_Jg=--Malayalam_Ja}', "");
-    Expect(0, 2145, '\P{Is_Jg=--Malayalam_Ja}', "");
-    Expect(1, 2145, '\P{^Is_Jg=--Malayalam_Ja}', "");
-    Expect(0, 2146, '\p{Is_Jg=--Malayalam_Ja}', "");
-    Expect(1, 2146, '\p{^Is_Jg=--Malayalam_Ja}', "");
-    Expect(1, 2146, '\P{Is_Jg=--Malayalam_Ja}', "");
-    Expect(0, 2146, '\P{^Is_Jg=--Malayalam_Ja}', "");
-    Error('\p{Joining_Group=/a/	Malayalam_lla}');
-    Error('\P{Joining_Group=/a/	Malayalam_lla}');
+    Expect(1, 2145, '\p{Is_Jg= -Malayalam_JA}', "");
+    Expect(0, 2145, '\p{^Is_Jg= -Malayalam_JA}', "");
+    Expect(0, 2145, '\P{Is_Jg= -Malayalam_JA}', "");
+    Expect(1, 2145, '\P{^Is_Jg= -Malayalam_JA}', "");
+    Expect(0, 2146, '\p{Is_Jg= -Malayalam_JA}', "");
+    Expect(1, 2146, '\p{^Is_Jg= -Malayalam_JA}', "");
+    Expect(1, 2146, '\P{Is_Jg= -Malayalam_JA}', "");
+    Expect(0, 2146, '\P{^Is_Jg= -Malayalam_JA}', "");
+    Error('\p{Joining_Group= Malayalam_Lla:=}');
+    Error('\P{Joining_Group= Malayalam_Lla:=}');
     Expect(1, 2152, '\p{Joining_Group=:\AMalayalam_Lla\z:}', "");;
     Expect(0, 2153, '\p{Joining_Group=:\AMalayalam_Lla\z:}', "");;
     Expect(1, 2152, '\p{Joining_Group=malayalamlla}', "");
@@ -55521,38 +56127,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2153, '\P{^Joining_Group=malayalamlla}', "");
     Expect(1, 2152, '\p{Joining_Group=:\Amalayalamlla\z:}', "");;
     Expect(0, 2153, '\p{Joining_Group=:\Amalayalamlla\z:}', "");;
-    Expect(1, 2152, '\p{Joining_Group= _malayalam_Lla}', "");
-    Expect(0, 2152, '\p{^Joining_Group= _malayalam_Lla}', "");
-    Expect(0, 2152, '\P{Joining_Group= _malayalam_Lla}', "");
-    Expect(1, 2152, '\P{^Joining_Group= _malayalam_Lla}', "");
-    Expect(0, 2153, '\p{Joining_Group= _malayalam_Lla}', "");
-    Expect(1, 2153, '\p{^Joining_Group= _malayalam_Lla}', "");
-    Expect(1, 2153, '\P{Joining_Group= _malayalam_Lla}', "");
-    Expect(0, 2153, '\P{^Joining_Group= _malayalam_Lla}', "");
-    Error('\p{Jg=- Malayalam_lla/a/}');
-    Error('\P{Jg=- Malayalam_lla/a/}');
+    Expect(1, 2152, '\p{Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(0, 2152, '\p{^Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(0, 2152, '\P{Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(1, 2152, '\P{^Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(0, 2153, '\p{Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(1, 2153, '\p{^Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(1, 2153, '\P{Joining_Group=  MALAYALAM_Lla}', "");
+    Expect(0, 2153, '\P{^Joining_Group=  MALAYALAM_Lla}', "");
+    Error('\p{Jg=	-malayalam_lla/a/}');
+    Error('\P{Jg=	-malayalam_lla/a/}');
     Expect(1, 2152, '\p{Jg=:\AMalayalam_Lla\z:}', "");;
     Expect(0, 2153, '\p{Jg=:\AMalayalam_Lla\z:}', "");;
-    Expect(1, 2152, '\p{Jg:   malayalamlla}', "");
-    Expect(0, 2152, '\p{^Jg:   malayalamlla}', "");
-    Expect(0, 2152, '\P{Jg:   malayalamlla}', "");
-    Expect(1, 2152, '\P{^Jg:   malayalamlla}', "");
-    Expect(0, 2153, '\p{Jg:   malayalamlla}', "");
-    Expect(1, 2153, '\p{^Jg:   malayalamlla}', "");
-    Expect(1, 2153, '\P{Jg:   malayalamlla}', "");
-    Expect(0, 2153, '\P{^Jg:   malayalamlla}', "");
+    Expect(1, 2152, '\p{Jg=malayalamlla}', "");
+    Expect(0, 2152, '\p{^Jg=malayalamlla}', "");
+    Expect(0, 2152, '\P{Jg=malayalamlla}', "");
+    Expect(1, 2152, '\P{^Jg=malayalamlla}', "");
+    Expect(0, 2153, '\p{Jg=malayalamlla}', "");
+    Expect(1, 2153, '\p{^Jg=malayalamlla}', "");
+    Expect(1, 2153, '\P{Jg=malayalamlla}', "");
+    Expect(0, 2153, '\P{^Jg=malayalamlla}', "");
     Expect(1, 2152, '\p{Jg=:\Amalayalamlla\z:}', "");;
     Expect(0, 2153, '\p{Jg=:\Amalayalamlla\z:}', "");;
-    Expect(1, 2152, '\p{Jg=	MALAYALAM_Lla}', "");
-    Expect(0, 2152, '\p{^Jg=	MALAYALAM_Lla}', "");
-    Expect(0, 2152, '\P{Jg=	MALAYALAM_Lla}', "");
-    Expect(1, 2152, '\P{^Jg=	MALAYALAM_Lla}', "");
-    Expect(0, 2153, '\p{Jg=	MALAYALAM_Lla}', "");
-    Expect(1, 2153, '\p{^Jg=	MALAYALAM_Lla}', "");
-    Expect(1, 2153, '\P{Jg=	MALAYALAM_Lla}', "");
-    Expect(0, 2153, '\P{^Jg=	MALAYALAM_Lla}', "");
-    Error('\p{Is_Joining_Group=_/a/Malayalam_LLA}');
-    Error('\P{Is_Joining_Group=_/a/Malayalam_LLA}');
+    Expect(1, 2152, '\p{Jg= Malayalam_LLA}', "");
+    Expect(0, 2152, '\p{^Jg= Malayalam_LLA}', "");
+    Expect(0, 2152, '\P{Jg= Malayalam_LLA}', "");
+    Expect(1, 2152, '\P{^Jg= Malayalam_LLA}', "");
+    Expect(0, 2153, '\p{Jg= Malayalam_LLA}', "");
+    Expect(1, 2153, '\p{^Jg= Malayalam_LLA}', "");
+    Expect(1, 2153, '\P{Jg= Malayalam_LLA}', "");
+    Expect(0, 2153, '\P{^Jg= Malayalam_LLA}', "");
+    Error('\p{Is_Joining_Group=/a/ -Malayalam_LLA}');
+    Error('\P{Is_Joining_Group=/a/ -Malayalam_LLA}');
     Expect(1, 2152, '\p{Is_Joining_Group=malayalamlla}', "");
     Expect(0, 2152, '\p{^Is_Joining_Group=malayalamlla}', "");
     Expect(0, 2152, '\P{Is_Joining_Group=malayalamlla}', "");
@@ -55561,16 +56167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2153, '\p{^Is_Joining_Group=malayalamlla}', "");
     Expect(1, 2153, '\P{Is_Joining_Group=malayalamlla}', "");
     Expect(0, 2153, '\P{^Is_Joining_Group=malayalamlla}', "");
-    Expect(1, 2152, '\p{Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(0, 2152, '\p{^Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(0, 2152, '\P{Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(1, 2152, '\P{^Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(0, 2153, '\p{Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(1, 2153, '\p{^Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(1, 2153, '\P{Is_Joining_Group=_Malayalam_lla}', "");
-    Expect(0, 2153, '\P{^Is_Joining_Group=_Malayalam_lla}', "");
-    Error('\p{Is_Jg=	_malayalam_LLA:=}');
-    Error('\P{Is_Jg=	_malayalam_LLA:=}');
+    Expect(1, 2152, '\p{Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(0, 2152, '\p{^Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(0, 2152, '\P{Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(1, 2152, '\P{^Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(0, 2153, '\p{Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(1, 2153, '\p{^Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(1, 2153, '\P{Is_Joining_Group= 	Malayalam_Lla}', "");
+    Expect(0, 2153, '\P{^Is_Joining_Group= 	Malayalam_Lla}', "");
+    Error('\p{Is_Jg=	 malayalam_Lla:=}');
+    Error('\P{Is_Jg=	 malayalam_Lla:=}');
     Expect(1, 2152, '\p{Is_Jg=malayalamlla}', "");
     Expect(0, 2152, '\p{^Is_Jg=malayalamlla}', "");
     Expect(0, 2152, '\P{Is_Jg=malayalamlla}', "");
@@ -55579,16 +56185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2153, '\p{^Is_Jg=malayalamlla}', "");
     Expect(1, 2153, '\P{Is_Jg=malayalamlla}', "");
     Expect(0, 2153, '\P{^Is_Jg=malayalamlla}', "");
-    Expect(1, 2152, '\p{Is_Jg= -Malayalam_Lla}', "");
-    Expect(0, 2152, '\p{^Is_Jg= -Malayalam_Lla}', "");
-    Expect(0, 2152, '\P{Is_Jg= -Malayalam_Lla}', "");
-    Expect(1, 2152, '\P{^Is_Jg= -Malayalam_Lla}', "");
-    Expect(0, 2153, '\p{Is_Jg= -Malayalam_Lla}', "");
-    Expect(1, 2153, '\p{^Is_Jg= -Malayalam_Lla}', "");
-    Expect(1, 2153, '\P{Is_Jg= -Malayalam_Lla}', "");
-    Expect(0, 2153, '\P{^Is_Jg= -Malayalam_Lla}', "");
-    Error('\p{Joining_Group=		MALAYALAM_Llla/a/}');
-    Error('\P{Joining_Group=		MALAYALAM_Llla/a/}');
+    Expect(1, 2152, '\p{Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(0, 2152, '\p{^Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(0, 2152, '\P{Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(1, 2152, '\P{^Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(0, 2153, '\p{Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(1, 2153, '\p{^Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(1, 2153, '\P{Is_Jg=-MALAYALAM_Lla}', "");
+    Expect(0, 2153, '\P{^Is_Jg=-MALAYALAM_Lla}', "");
+    Error('\p{Joining_Group= /a/Malayalam_llla}');
+    Error('\P{Joining_Group= /a/Malayalam_llla}');
     Expect(1, 2153, '\p{Joining_Group=:\AMalayalam_Llla\z:}', "");;
     Expect(0, 2154, '\p{Joining_Group=:\AMalayalam_Llla\z:}', "");;
     Expect(1, 2153, '\p{Joining_Group=malayalamllla}', "");
@@ -55601,16 +56207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2154, '\P{^Joining_Group=malayalamllla}', "");
     Expect(1, 2153, '\p{Joining_Group=:\Amalayalamllla\z:}', "");;
     Expect(0, 2154, '\p{Joining_Group=:\Amalayalamllla\z:}', "");;
-    Expect(1, 2153, '\p{Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(0, 2153, '\p{^Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(0, 2153, '\P{Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(1, 2153, '\P{^Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(0, 2154, '\p{Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(1, 2154, '\p{^Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(1, 2154, '\P{Joining_Group=	-Malayalam_LLLA}', "");
-    Expect(0, 2154, '\P{^Joining_Group=	-Malayalam_LLLA}', "");
-    Error('\p{Jg=/a/--MALAYALAM_Llla}');
-    Error('\P{Jg=/a/--MALAYALAM_Llla}');
+    Expect(1, 2153, '\p{Joining_Group=--Malayalam_Llla}', "");
+    Expect(0, 2153, '\p{^Joining_Group=--Malayalam_Llla}', "");
+    Expect(0, 2153, '\P{Joining_Group=--Malayalam_Llla}', "");
+    Expect(1, 2153, '\P{^Joining_Group=--Malayalam_Llla}', "");
+    Expect(0, 2154, '\p{Joining_Group=--Malayalam_Llla}', "");
+    Expect(1, 2154, '\p{^Joining_Group=--Malayalam_Llla}', "");
+    Expect(1, 2154, '\P{Joining_Group=--Malayalam_Llla}', "");
+    Expect(0, 2154, '\P{^Joining_Group=--Malayalam_Llla}', "");
+    Error('\p{Jg=/a/-MALAYALAM_Llla}');
+    Error('\P{Jg=/a/-MALAYALAM_Llla}');
     Expect(1, 2153, '\p{Jg=:\AMalayalam_Llla\z:}', "");;
     Expect(0, 2154, '\p{Jg=:\AMalayalam_Llla\z:}', "");;
     Expect(1, 2153, '\p{Jg=malayalamllla}', "");
@@ -55623,16 +56229,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2154, '\P{^Jg=malayalamllla}', "");
     Expect(1, 2153, '\p{Jg=:\Amalayalamllla\z:}', "");;
     Expect(0, 2154, '\p{Jg=:\Amalayalamllla\z:}', "");;
-    Expect(1, 2153, '\p{Jg=Malayalam_LLLA}', "");
-    Expect(0, 2153, '\p{^Jg=Malayalam_LLLA}', "");
-    Expect(0, 2153, '\P{Jg=Malayalam_LLLA}', "");
-    Expect(1, 2153, '\P{^Jg=Malayalam_LLLA}', "");
-    Expect(0, 2154, '\p{Jg=Malayalam_LLLA}', "");
-    Expect(1, 2154, '\p{^Jg=Malayalam_LLLA}', "");
-    Expect(1, 2154, '\P{Jg=Malayalam_LLLA}', "");
-    Expect(0, 2154, '\P{^Jg=Malayalam_LLLA}', "");
-    Error('\p{Is_Joining_Group=_ MALAYALAM_Llla:=}');
-    Error('\P{Is_Joining_Group=_ MALAYALAM_Llla:=}');
+    Expect(1, 2153, '\p{Jg=  malayalam_Llla}', "");
+    Expect(0, 2153, '\p{^Jg=  malayalam_Llla}', "");
+    Expect(0, 2153, '\P{Jg=  malayalam_Llla}', "");
+    Expect(1, 2153, '\P{^Jg=  malayalam_Llla}', "");
+    Expect(0, 2154, '\p{Jg=  malayalam_Llla}', "");
+    Expect(1, 2154, '\p{^Jg=  malayalam_Llla}', "");
+    Expect(1, 2154, '\P{Jg=  malayalam_Llla}', "");
+    Expect(0, 2154, '\P{^Jg=  malayalam_Llla}', "");
+    Error('\p{Is_Joining_Group=/a/	-malayalam_Llla}');
+    Error('\P{Is_Joining_Group=/a/	-malayalam_Llla}');
     Expect(1, 2153, '\p{Is_Joining_Group=malayalamllla}', "");
     Expect(0, 2153, '\p{^Is_Joining_Group=malayalamllla}', "");
     Expect(0, 2153, '\P{Is_Joining_Group=malayalamllla}', "");
@@ -55641,16 +56247,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2154, '\p{^Is_Joining_Group=malayalamllla}', "");
     Expect(1, 2154, '\P{Is_Joining_Group=malayalamllla}', "");
     Expect(0, 2154, '\P{^Is_Joining_Group=malayalamllla}', "");
-    Expect(1, 2153, '\p{Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(0, 2153, '\p{^Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(0, 2153, '\P{Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(1, 2153, '\P{^Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(0, 2154, '\p{Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(1, 2154, '\p{^Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(1, 2154, '\P{Is_Joining_Group=-_Malayalam_Llla}', "");
-    Expect(0, 2154, '\P{^Is_Joining_Group=-_Malayalam_Llla}', "");
-    Error('\p{Is_Jg=/a/-_Malayalam_LLLA}');
-    Error('\P{Is_Jg=/a/-_Malayalam_LLLA}');
+    Expect(1, 2153, '\p{Is_Joining_Group= -malayalam_llla}', "");
+    Expect(0, 2153, '\p{^Is_Joining_Group= -malayalam_llla}', "");
+    Expect(0, 2153, '\P{Is_Joining_Group= -malayalam_llla}', "");
+    Expect(1, 2153, '\P{^Is_Joining_Group= -malayalam_llla}', "");
+    Expect(0, 2154, '\p{Is_Joining_Group= -malayalam_llla}', "");
+    Expect(1, 2154, '\p{^Is_Joining_Group= -malayalam_llla}', "");
+    Expect(1, 2154, '\P{Is_Joining_Group= -malayalam_llla}', "");
+    Expect(0, 2154, '\P{^Is_Joining_Group= -malayalam_llla}', "");
+    Error('\p{Is_Jg: /a/MALAYALAM_Llla}');
+    Error('\P{Is_Jg: /a/MALAYALAM_Llla}');
     Expect(1, 2153, '\p{Is_Jg=malayalamllla}', "");
     Expect(0, 2153, '\p{^Is_Jg=malayalamllla}', "");
     Expect(0, 2153, '\P{Is_Jg=malayalamllla}', "");
@@ -55659,16 +56265,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2154, '\p{^Is_Jg=malayalamllla}', "");
     Expect(1, 2154, '\P{Is_Jg=malayalamllla}', "");
     Expect(0, 2154, '\P{^Is_Jg=malayalamllla}', "");
-    Expect(1, 2153, '\p{Is_Jg:   	malayalam_Llla}', "");
-    Expect(0, 2153, '\p{^Is_Jg:   	malayalam_Llla}', "");
-    Expect(0, 2153, '\P{Is_Jg:   	malayalam_Llla}', "");
-    Expect(1, 2153, '\P{^Is_Jg:   	malayalam_Llla}', "");
-    Expect(0, 2154, '\p{Is_Jg:   	malayalam_Llla}', "");
-    Expect(1, 2154, '\p{^Is_Jg:   	malayalam_Llla}', "");
-    Expect(1, 2154, '\P{Is_Jg:   	malayalam_Llla}', "");
-    Expect(0, 2154, '\P{^Is_Jg:   	malayalam_Llla}', "");
-    Error('\p{Joining_Group=:=	Malayalam_NGA}');
-    Error('\P{Joining_Group=:=	Malayalam_NGA}');
+    Expect(1, 2153, '\p{Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(0, 2153, '\p{^Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(0, 2153, '\P{Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(1, 2153, '\P{^Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(0, 2154, '\p{Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(1, 2154, '\p{^Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(1, 2154, '\P{Is_Jg=__MALAYALAM_LLLA}', "");
+    Expect(0, 2154, '\P{^Is_Jg=__MALAYALAM_LLLA}', "");
+    Error('\p{Joining_Group=:=_Malayalam_Nga}');
+    Error('\P{Joining_Group=:=_Malayalam_Nga}');
     Expect(1, 2144, '\p{Joining_Group=:\AMalayalam_Nga\z:}', "");;
     Expect(0, 2145, '\p{Joining_Group=:\AMalayalam_Nga\z:}', "");;
     Expect(1, 2144, '\p{Joining_Group=malayalamnga}', "");
@@ -55681,16 +56287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2145, '\P{^Joining_Group=malayalamnga}', "");
     Expect(1, 2144, '\p{Joining_Group=:\Amalayalamnga\z:}', "");;
     Expect(0, 2145, '\p{Joining_Group=:\Amalayalamnga\z:}', "");;
-    Expect(1, 2144, '\p{Joining_Group=  Malayalam_NGA}', "");
-    Expect(0, 2144, '\p{^Joining_Group=  Malayalam_NGA}', "");
-    Expect(0, 2144, '\P{Joining_Group=  Malayalam_NGA}', "");
-    Expect(1, 2144, '\P{^Joining_Group=  Malayalam_NGA}', "");
-    Expect(0, 2145, '\p{Joining_Group=  Malayalam_NGA}', "");
-    Expect(1, 2145, '\p{^Joining_Group=  Malayalam_NGA}', "");
-    Expect(1, 2145, '\P{Joining_Group=  Malayalam_NGA}', "");
-    Expect(0, 2145, '\P{^Joining_Group=  Malayalam_NGA}', "");
-    Error('\p{Jg=-	malayalam_nga:=}');
-    Error('\P{Jg=-	malayalam_nga:=}');
+    Expect(1, 2144, '\p{Joining_Group=- malayalam_Nga}', "");
+    Expect(0, 2144, '\p{^Joining_Group=- malayalam_Nga}', "");
+    Expect(0, 2144, '\P{Joining_Group=- malayalam_Nga}', "");
+    Expect(1, 2144, '\P{^Joining_Group=- malayalam_Nga}', "");
+    Expect(0, 2145, '\p{Joining_Group=- malayalam_Nga}', "");
+    Expect(1, 2145, '\p{^Joining_Group=- malayalam_Nga}', "");
+    Expect(1, 2145, '\P{Joining_Group=- malayalam_Nga}', "");
+    Expect(0, 2145, '\P{^Joining_Group=- malayalam_Nga}', "");
+    Error('\p{Jg=:=_MALAYALAM_NGA}');
+    Error('\P{Jg=:=_MALAYALAM_NGA}');
     Expect(1, 2144, '\p{Jg=:\AMalayalam_Nga\z:}', "");;
     Expect(0, 2145, '\p{Jg=:\AMalayalam_Nga\z:}', "");;
     Expect(1, 2144, '\p{Jg=malayalamnga}', "");
@@ -55703,16 +56309,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2145, '\P{^Jg=malayalamnga}', "");
     Expect(1, 2144, '\p{Jg=:\Amalayalamnga\z:}', "");;
     Expect(0, 2145, '\p{Jg=:\Amalayalamnga\z:}', "");;
-    Expect(1, 2144, '\p{Jg=-MALAYALAM_Nga}', "");
-    Expect(0, 2144, '\p{^Jg=-MALAYALAM_Nga}', "");
-    Expect(0, 2144, '\P{Jg=-MALAYALAM_Nga}', "");
-    Expect(1, 2144, '\P{^Jg=-MALAYALAM_Nga}', "");
-    Expect(0, 2145, '\p{Jg=-MALAYALAM_Nga}', "");
-    Expect(1, 2145, '\p{^Jg=-MALAYALAM_Nga}', "");
-    Expect(1, 2145, '\P{Jg=-MALAYALAM_Nga}', "");
-    Expect(0, 2145, '\P{^Jg=-MALAYALAM_Nga}', "");
-    Error('\p{Is_Joining_Group=	malayalam_NGA:=}');
-    Error('\P{Is_Joining_Group=	malayalam_NGA:=}');
+    Expect(1, 2144, '\p{Jg= malayalam_nga}', "");
+    Expect(0, 2144, '\p{^Jg= malayalam_nga}', "");
+    Expect(0, 2144, '\P{Jg= malayalam_nga}', "");
+    Expect(1, 2144, '\P{^Jg= malayalam_nga}', "");
+    Expect(0, 2145, '\p{Jg= malayalam_nga}', "");
+    Expect(1, 2145, '\p{^Jg= malayalam_nga}', "");
+    Expect(1, 2145, '\P{Jg= malayalam_nga}', "");
+    Expect(0, 2145, '\P{^Jg= malayalam_nga}', "");
+    Error('\p{Is_Joining_Group: /a/- MALAYALAM_Nga}');
+    Error('\P{Is_Joining_Group: /a/- MALAYALAM_Nga}');
     Expect(1, 2144, '\p{Is_Joining_Group=malayalamnga}', "");
     Expect(0, 2144, '\p{^Is_Joining_Group=malayalamnga}', "");
     Expect(0, 2144, '\P{Is_Joining_Group=malayalamnga}', "");
@@ -55721,16 +56327,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2145, '\p{^Is_Joining_Group=malayalamnga}', "");
     Expect(1, 2145, '\P{Is_Joining_Group=malayalamnga}', "");
     Expect(0, 2145, '\P{^Is_Joining_Group=malayalamnga}', "");
-    Expect(1, 2144, '\p{Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(0, 2144, '\p{^Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(0, 2144, '\P{Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(1, 2144, '\P{^Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(0, 2145, '\p{Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(1, 2145, '\p{^Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(1, 2145, '\P{Is_Joining_Group=  MALAYALAM_nga}', "");
-    Expect(0, 2145, '\P{^Is_Joining_Group=  MALAYALAM_nga}', "");
-    Error('\p{Is_Jg=/a/	_Malayalam_NGA}');
-    Error('\P{Is_Jg=/a/	_Malayalam_NGA}');
+    Expect(1, 2144, '\p{Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(0, 2144, '\p{^Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(0, 2144, '\P{Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(1, 2144, '\P{^Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(0, 2145, '\p{Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(1, 2145, '\p{^Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(1, 2145, '\P{Is_Joining_Group=Malayalam_Nga}', "");
+    Expect(0, 2145, '\P{^Is_Joining_Group=Malayalam_Nga}', "");
+    Error('\p{Is_Jg: /a/ Malayalam_Nga}');
+    Error('\P{Is_Jg: /a/ Malayalam_Nga}');
     Expect(1, 2144, '\p{Is_Jg=malayalamnga}', "");
     Expect(0, 2144, '\p{^Is_Jg=malayalamnga}', "");
     Expect(0, 2144, '\P{Is_Jg=malayalamnga}', "");
@@ -55739,16 +56345,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2145, '\p{^Is_Jg=malayalamnga}', "");
     Expect(1, 2145, '\P{Is_Jg=malayalamnga}', "");
     Expect(0, 2145, '\P{^Is_Jg=malayalamnga}', "");
-    Expect(1, 2144, '\p{Is_Jg=--Malayalam_Nga}', "");
-    Expect(0, 2144, '\p{^Is_Jg=--Malayalam_Nga}', "");
-    Expect(0, 2144, '\P{Is_Jg=--Malayalam_Nga}', "");
-    Expect(1, 2144, '\P{^Is_Jg=--Malayalam_Nga}', "");
-    Expect(0, 2145, '\p{Is_Jg=--Malayalam_Nga}', "");
-    Expect(1, 2145, '\p{^Is_Jg=--Malayalam_Nga}', "");
-    Expect(1, 2145, '\P{Is_Jg=--Malayalam_Nga}', "");
-    Expect(0, 2145, '\P{^Is_Jg=--Malayalam_Nga}', "");
-    Error('\p{Joining_Group=/a/_malayalam_NNA}');
-    Error('\P{Joining_Group=/a/_malayalam_NNA}');
+    Expect(1, 2144, '\p{Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(0, 2144, '\p{^Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(0, 2144, '\P{Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(1, 2144, '\P{^Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(0, 2145, '\p{Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(1, 2145, '\p{^Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(1, 2145, '\P{Is_Jg=-	MALAYALAM_Nga}', "");
+    Expect(0, 2145, '\P{^Is_Jg=-	MALAYALAM_Nga}', "");
+    Error('\p{Joining_Group=_/a/malayalam_Nna}');
+    Error('\P{Joining_Group=_/a/malayalam_Nna}');
     Expect(1, 2148, '\p{Joining_Group=:\AMalayalam_Nna\z:}', "");;
     Expect(0, 2149, '\p{Joining_Group=:\AMalayalam_Nna\z:}', "");;
     Expect(1, 2148, '\p{Joining_Group=malayalamnna}', "");
@@ -55761,38 +56367,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2149, '\P{^Joining_Group=malayalamnna}', "");
     Expect(1, 2148, '\p{Joining_Group=:\Amalayalamnna\z:}', "");;
     Expect(0, 2149, '\p{Joining_Group=:\Amalayalamnna\z:}', "");;
-    Expect(1, 2148, '\p{Joining_Group= malayalam_NNA}', "");
-    Expect(0, 2148, '\p{^Joining_Group= malayalam_NNA}', "");
-    Expect(0, 2148, '\P{Joining_Group= malayalam_NNA}', "");
-    Expect(1, 2148, '\P{^Joining_Group= malayalam_NNA}', "");
-    Expect(0, 2149, '\p{Joining_Group= malayalam_NNA}', "");
-    Expect(1, 2149, '\p{^Joining_Group= malayalam_NNA}', "");
-    Expect(1, 2149, '\P{Joining_Group= malayalam_NNA}', "");
-    Expect(0, 2149, '\P{^Joining_Group= malayalam_NNA}', "");
-    Error('\p{Jg=malayalam_Nna:=}');
-    Error('\P{Jg=malayalam_Nna:=}');
+    Expect(1, 2148, '\p{Joining_Group=-_Malayalam_nna}', "");
+    Expect(0, 2148, '\p{^Joining_Group=-_Malayalam_nna}', "");
+    Expect(0, 2148, '\P{Joining_Group=-_Malayalam_nna}', "");
+    Expect(1, 2148, '\P{^Joining_Group=-_Malayalam_nna}', "");
+    Expect(0, 2149, '\p{Joining_Group=-_Malayalam_nna}', "");
+    Expect(1, 2149, '\p{^Joining_Group=-_Malayalam_nna}', "");
+    Expect(1, 2149, '\P{Joining_Group=-_Malayalam_nna}', "");
+    Expect(0, 2149, '\P{^Joining_Group=-_Malayalam_nna}', "");
+    Error('\p{Jg=:=_Malayalam_nna}');
+    Error('\P{Jg=:=_Malayalam_nna}');
     Expect(1, 2148, '\p{Jg=:\AMalayalam_Nna\z:}', "");;
     Expect(0, 2149, '\p{Jg=:\AMalayalam_Nna\z:}', "");;
-    Expect(1, 2148, '\p{Jg: malayalamnna}', "");
-    Expect(0, 2148, '\p{^Jg: malayalamnna}', "");
-    Expect(0, 2148, '\P{Jg: malayalamnna}', "");
-    Expect(1, 2148, '\P{^Jg: malayalamnna}', "");
-    Expect(0, 2149, '\p{Jg: malayalamnna}', "");
-    Expect(1, 2149, '\p{^Jg: malayalamnna}', "");
-    Expect(1, 2149, '\P{Jg: malayalamnna}', "");
-    Expect(0, 2149, '\P{^Jg: malayalamnna}', "");
+    Expect(1, 2148, '\p{Jg=malayalamnna}', "");
+    Expect(0, 2148, '\p{^Jg=malayalamnna}', "");
+    Expect(0, 2148, '\P{Jg=malayalamnna}', "");
+    Expect(1, 2148, '\P{^Jg=malayalamnna}', "");
+    Expect(0, 2149, '\p{Jg=malayalamnna}', "");
+    Expect(1, 2149, '\p{^Jg=malayalamnna}', "");
+    Expect(1, 2149, '\P{Jg=malayalamnna}', "");
+    Expect(0, 2149, '\P{^Jg=malayalamnna}', "");
     Expect(1, 2148, '\p{Jg=:\Amalayalamnna\z:}', "");;
     Expect(0, 2149, '\p{Jg=:\Amalayalamnna\z:}', "");;
-    Expect(1, 2148, '\p{Jg=- Malayalam_NNA}', "");
-    Expect(0, 2148, '\p{^Jg=- Malayalam_NNA}', "");
-    Expect(0, 2148, '\P{Jg=- Malayalam_NNA}', "");
-    Expect(1, 2148, '\P{^Jg=- Malayalam_NNA}', "");
-    Expect(0, 2149, '\p{Jg=- Malayalam_NNA}', "");
-    Expect(1, 2149, '\p{^Jg=- Malayalam_NNA}', "");
-    Expect(1, 2149, '\P{Jg=- Malayalam_NNA}', "");
-    Expect(0, 2149, '\P{^Jg=- Malayalam_NNA}', "");
-    Error('\p{Is_Joining_Group=:=- malayalam_Nna}');
-    Error('\P{Is_Joining_Group=:=- malayalam_Nna}');
+    Expect(1, 2148, '\p{Jg=  malayalam_Nna}', "");
+    Expect(0, 2148, '\p{^Jg=  malayalam_Nna}', "");
+    Expect(0, 2148, '\P{Jg=  malayalam_Nna}', "");
+    Expect(1, 2148, '\P{^Jg=  malayalam_Nna}', "");
+    Expect(0, 2149, '\p{Jg=  malayalam_Nna}', "");
+    Expect(1, 2149, '\p{^Jg=  malayalam_Nna}', "");
+    Expect(1, 2149, '\P{Jg=  malayalam_Nna}', "");
+    Expect(0, 2149, '\P{^Jg=  malayalam_Nna}', "");
+    Error('\p{Is_Joining_Group=__MALAYALAM_Nna:=}');
+    Error('\P{Is_Joining_Group=__MALAYALAM_Nna:=}');
     Expect(1, 2148, '\p{Is_Joining_Group=malayalamnna}', "");
     Expect(0, 2148, '\p{^Is_Joining_Group=malayalamnna}', "");
     Expect(0, 2148, '\P{Is_Joining_Group=malayalamnna}', "");
@@ -55801,16 +56407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2149, '\p{^Is_Joining_Group=malayalamnna}', "");
     Expect(1, 2149, '\P{Is_Joining_Group=malayalamnna}', "");
     Expect(0, 2149, '\P{^Is_Joining_Group=malayalamnna}', "");
-    Expect(1, 2148, '\p{Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(0, 2148, '\p{^Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(0, 2148, '\P{Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(1, 2148, '\P{^Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(0, 2149, '\p{Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(1, 2149, '\p{^Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(1, 2149, '\P{Is_Joining_Group: __Malayalam_nna}', "");
-    Expect(0, 2149, '\P{^Is_Joining_Group: __Malayalam_nna}', "");
-    Error('\p{Is_Jg=-_Malayalam_nna:=}');
-    Error('\P{Is_Jg=-_Malayalam_nna:=}');
+    Expect(1, 2148, '\p{Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(0, 2148, '\p{^Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(0, 2148, '\P{Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(1, 2148, '\P{^Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(0, 2149, '\p{Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(1, 2149, '\p{^Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(1, 2149, '\P{Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Expect(0, 2149, '\P{^Is_Joining_Group:	-	MALAYALAM_nna}', "");
+    Error('\p{Is_Jg=:=--malayalam_nna}');
+    Error('\P{Is_Jg=:=--malayalam_nna}');
     Expect(1, 2148, '\p{Is_Jg=malayalamnna}', "");
     Expect(0, 2148, '\p{^Is_Jg=malayalamnna}', "");
     Expect(0, 2148, '\P{Is_Jg=malayalamnna}', "");
@@ -55819,38 +56425,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2149, '\p{^Is_Jg=malayalamnna}', "");
     Expect(1, 2149, '\P{Is_Jg=malayalamnna}', "");
     Expect(0, 2149, '\P{^Is_Jg=malayalamnna}', "");
-    Expect(1, 2148, '\p{Is_Jg=-	malayalam_nna}', "");
-    Expect(0, 2148, '\p{^Is_Jg=-	malayalam_nna}', "");
-    Expect(0, 2148, '\P{Is_Jg=-	malayalam_nna}', "");
-    Expect(1, 2148, '\P{^Is_Jg=-	malayalam_nna}', "");
-    Expect(0, 2149, '\p{Is_Jg=-	malayalam_nna}', "");
-    Expect(1, 2149, '\p{^Is_Jg=-	malayalam_nna}', "");
-    Expect(1, 2149, '\P{Is_Jg=-	malayalam_nna}', "");
-    Expect(0, 2149, '\P{^Is_Jg=-	malayalam_nna}', "");
-    Error('\p{Joining_Group=_	malayalam_nnna:=}');
-    Error('\P{Joining_Group=_	malayalam_nnna:=}');
+    Expect(1, 2148, '\p{Is_Jg=	-Malayalam_NNA}', "");
+    Expect(0, 2148, '\p{^Is_Jg=	-Malayalam_NNA}', "");
+    Expect(0, 2148, '\P{Is_Jg=	-Malayalam_NNA}', "");
+    Expect(1, 2148, '\P{^Is_Jg=	-Malayalam_NNA}', "");
+    Expect(0, 2149, '\p{Is_Jg=	-Malayalam_NNA}', "");
+    Expect(1, 2149, '\p{^Is_Jg=	-Malayalam_NNA}', "");
+    Expect(1, 2149, '\P{Is_Jg=	-Malayalam_NNA}', "");
+    Expect(0, 2149, '\P{^Is_Jg=	-Malayalam_NNA}', "");
+    Error('\p{Joining_Group=_/a/malayalam_nnna}');
+    Error('\P{Joining_Group=_/a/malayalam_nnna}');
     Expect(1, 2149, '\p{Joining_Group=:\AMalayalam_Nnna\z:}', "");;
     Expect(0, 2150, '\p{Joining_Group=:\AMalayalam_Nnna\z:}', "");;
-    Expect(1, 2149, '\p{Joining_Group=malayalamnnna}', "");
-    Expect(0, 2149, '\p{^Joining_Group=malayalamnnna}', "");
-    Expect(0, 2149, '\P{Joining_Group=malayalamnnna}', "");
-    Expect(1, 2149, '\P{^Joining_Group=malayalamnnna}', "");
-    Expect(0, 2150, '\p{Joining_Group=malayalamnnna}', "");
-    Expect(1, 2150, '\p{^Joining_Group=malayalamnnna}', "");
-    Expect(1, 2150, '\P{Joining_Group=malayalamnnna}', "");
-    Expect(0, 2150, '\P{^Joining_Group=malayalamnnna}', "");
+    Expect(1, 2149, '\p{Joining_Group:	malayalamnnna}', "");
+    Expect(0, 2149, '\p{^Joining_Group:	malayalamnnna}', "");
+    Expect(0, 2149, '\P{Joining_Group:	malayalamnnna}', "");
+    Expect(1, 2149, '\P{^Joining_Group:	malayalamnnna}', "");
+    Expect(0, 2150, '\p{Joining_Group:	malayalamnnna}', "");
+    Expect(1, 2150, '\p{^Joining_Group:	malayalamnnna}', "");
+    Expect(1, 2150, '\P{Joining_Group:	malayalamnnna}', "");
+    Expect(0, 2150, '\P{^Joining_Group:	malayalamnnna}', "");
     Expect(1, 2149, '\p{Joining_Group=:\Amalayalamnnna\z:}', "");;
     Expect(0, 2150, '\p{Joining_Group=:\Amalayalamnnna\z:}', "");;
-    Expect(1, 2149, '\p{Joining_Group= -Malayalam_NNNA}', "");
-    Expect(0, 2149, '\p{^Joining_Group= -Malayalam_NNNA}', "");
-    Expect(0, 2149, '\P{Joining_Group= -Malayalam_NNNA}', "");
-    Expect(1, 2149, '\P{^Joining_Group= -Malayalam_NNNA}', "");
-    Expect(0, 2150, '\p{Joining_Group= -Malayalam_NNNA}', "");
-    Expect(1, 2150, '\p{^Joining_Group= -Malayalam_NNNA}', "");
-    Expect(1, 2150, '\P{Joining_Group= -Malayalam_NNNA}', "");
-    Expect(0, 2150, '\P{^Joining_Group= -Malayalam_NNNA}', "");
-    Error('\p{Jg= :=malayalam_nnna}');
-    Error('\P{Jg= :=malayalam_nnna}');
+    Expect(1, 2149, '\p{Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(0, 2149, '\p{^Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(0, 2149, '\P{Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(1, 2149, '\P{^Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(0, 2150, '\p{Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(1, 2150, '\p{^Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(1, 2150, '\P{Joining_Group=-MALAYALAM_Nnna}', "");
+    Expect(0, 2150, '\P{^Joining_Group=-MALAYALAM_Nnna}', "");
+    Error('\p{Jg: _	MALAYALAM_NNNA:=}');
+    Error('\P{Jg: _	MALAYALAM_NNNA:=}');
     Expect(1, 2149, '\p{Jg=:\AMalayalam_Nnna\z:}', "");;
     Expect(0, 2150, '\p{Jg=:\AMalayalam_Nnna\z:}', "");;
     Expect(1, 2149, '\p{Jg=malayalamnnna}', "");
@@ -55863,16 +56469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2150, '\P{^Jg=malayalamnnna}', "");
     Expect(1, 2149, '\p{Jg=:\Amalayalamnnna\z:}', "");;
     Expect(0, 2150, '\p{Jg=:\Amalayalamnnna\z:}', "");;
-    Expect(1, 2149, '\p{Jg=_MALAYALAM_Nnna}', "");
-    Expect(0, 2149, '\p{^Jg=_MALAYALAM_Nnna}', "");
-    Expect(0, 2149, '\P{Jg=_MALAYALAM_Nnna}', "");
-    Expect(1, 2149, '\P{^Jg=_MALAYALAM_Nnna}', "");
-    Expect(0, 2150, '\p{Jg=_MALAYALAM_Nnna}', "");
-    Expect(1, 2150, '\p{^Jg=_MALAYALAM_Nnna}', "");
-    Expect(1, 2150, '\P{Jg=_MALAYALAM_Nnna}', "");
-    Expect(0, 2150, '\P{^Jg=_MALAYALAM_Nnna}', "");
-    Error('\p{Is_Joining_Group:	/a/ malayalam_Nnna}');
-    Error('\P{Is_Joining_Group:	/a/ malayalam_Nnna}');
+    Expect(1, 2149, '\p{Jg=-Malayalam_nnna}', "");
+    Expect(0, 2149, '\p{^Jg=-Malayalam_nnna}', "");
+    Expect(0, 2149, '\P{Jg=-Malayalam_nnna}', "");
+    Expect(1, 2149, '\P{^Jg=-Malayalam_nnna}', "");
+    Expect(0, 2150, '\p{Jg=-Malayalam_nnna}', "");
+    Expect(1, 2150, '\p{^Jg=-Malayalam_nnna}', "");
+    Expect(1, 2150, '\P{Jg=-Malayalam_nnna}', "");
+    Expect(0, 2150, '\P{^Jg=-Malayalam_nnna}', "");
+    Error('\p{Is_Joining_Group=/a/_	MALAYALAM_NNNA}');
+    Error('\P{Is_Joining_Group=/a/_	MALAYALAM_NNNA}');
     Expect(1, 2149, '\p{Is_Joining_Group=malayalamnnna}', "");
     Expect(0, 2149, '\p{^Is_Joining_Group=malayalamnnna}', "");
     Expect(0, 2149, '\P{Is_Joining_Group=malayalamnnna}', "");
@@ -55881,16 +56487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2150, '\p{^Is_Joining_Group=malayalamnnna}', "");
     Expect(1, 2150, '\P{Is_Joining_Group=malayalamnnna}', "");
     Expect(0, 2150, '\P{^Is_Joining_Group=malayalamnnna}', "");
-    Expect(1, 2149, '\p{Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(0, 2149, '\p{^Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(0, 2149, '\P{Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(1, 2149, '\P{^Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(0, 2150, '\p{Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(1, 2150, '\p{^Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(1, 2150, '\P{Is_Joining_Group:		malayalam_nnna}', "");
-    Expect(0, 2150, '\P{^Is_Joining_Group:		malayalam_nnna}', "");
-    Error('\p{Is_Jg=	Malayalam_Nnna:=}');
-    Error('\P{Is_Jg=	Malayalam_Nnna:=}');
+    Expect(1, 2149, '\p{Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(0, 2149, '\p{^Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(0, 2149, '\P{Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(1, 2149, '\P{^Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(0, 2150, '\p{Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(1, 2150, '\p{^Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(1, 2150, '\P{Is_Joining_Group:	_malayalam_NNNA}', "");
+    Expect(0, 2150, '\P{^Is_Joining_Group:	_malayalam_NNNA}', "");
+    Error('\p{Is_Jg=-/a/malayalam_Nnna}');
+    Error('\P{Is_Jg=-/a/malayalam_Nnna}');
     Expect(1, 2149, '\p{Is_Jg=malayalamnnna}', "");
     Expect(0, 2149, '\p{^Is_Jg=malayalamnnna}', "");
     Expect(0, 2149, '\P{Is_Jg=malayalamnnna}', "");
@@ -55899,16 +56505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2150, '\p{^Is_Jg=malayalamnnna}', "");
     Expect(1, 2150, '\P{Is_Jg=malayalamnnna}', "");
     Expect(0, 2150, '\P{^Is_Jg=malayalamnnna}', "");
-    Expect(1, 2149, '\p{Is_Jg:	--Malayalam_nnna}', "");
-    Expect(0, 2149, '\p{^Is_Jg:	--Malayalam_nnna}', "");
-    Expect(0, 2149, '\P{Is_Jg:	--Malayalam_nnna}', "");
-    Expect(1, 2149, '\P{^Is_Jg:	--Malayalam_nnna}', "");
-    Expect(0, 2150, '\p{Is_Jg:	--Malayalam_nnna}', "");
-    Expect(1, 2150, '\p{^Is_Jg:	--Malayalam_nnna}', "");
-    Expect(1, 2150, '\P{Is_Jg:	--Malayalam_nnna}', "");
-    Expect(0, 2150, '\P{^Is_Jg:	--Malayalam_nnna}', "");
-    Error('\p{Joining_Group=/a/ malayalam_nya}');
-    Error('\P{Joining_Group=/a/ malayalam_nya}');
+    Expect(1, 2149, '\p{Is_Jg=- malayalam_Nnna}', "");
+    Expect(0, 2149, '\p{^Is_Jg=- malayalam_Nnna}', "");
+    Expect(0, 2149, '\P{Is_Jg=- malayalam_Nnna}', "");
+    Expect(1, 2149, '\P{^Is_Jg=- malayalam_Nnna}', "");
+    Expect(0, 2150, '\p{Is_Jg=- malayalam_Nnna}', "");
+    Expect(1, 2150, '\p{^Is_Jg=- malayalam_Nnna}', "");
+    Expect(1, 2150, '\P{Is_Jg=- malayalam_Nnna}', "");
+    Expect(0, 2150, '\P{^Is_Jg=- malayalam_Nnna}', "");
+    Error('\p{Joining_Group=	/a/MALAYALAM_Nya}');
+    Error('\P{Joining_Group=	/a/MALAYALAM_Nya}');
     Expect(1, 2146, '\p{Joining_Group=:\AMalayalam_Nya\z:}', "");;
     Expect(0, 2147, '\p{Joining_Group=:\AMalayalam_Nya\z:}', "");;
     Expect(1, 2146, '\p{Joining_Group=malayalamnya}', "");
@@ -55921,16 +56527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2147, '\P{^Joining_Group=malayalamnya}', "");
     Expect(1, 2146, '\p{Joining_Group=:\Amalayalamnya\z:}', "");;
     Expect(0, 2147, '\p{Joining_Group=:\Amalayalamnya\z:}', "");;
-    Expect(1, 2146, '\p{Joining_Group=_Malayalam_Nya}', "");
-    Expect(0, 2146, '\p{^Joining_Group=_Malayalam_Nya}', "");
-    Expect(0, 2146, '\P{Joining_Group=_Malayalam_Nya}', "");
-    Expect(1, 2146, '\P{^Joining_Group=_Malayalam_Nya}', "");
-    Expect(0, 2147, '\p{Joining_Group=_Malayalam_Nya}', "");
-    Expect(1, 2147, '\p{^Joining_Group=_Malayalam_Nya}', "");
-    Expect(1, 2147, '\P{Joining_Group=_Malayalam_Nya}', "");
-    Expect(0, 2147, '\P{^Joining_Group=_Malayalam_Nya}', "");
-    Error('\p{Jg=:=		MALAYALAM_Nya}');
-    Error('\P{Jg=:=		MALAYALAM_Nya}');
+    Expect(1, 2146, '\p{Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(0, 2146, '\p{^Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(0, 2146, '\P{Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(1, 2146, '\P{^Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(0, 2147, '\p{Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(1, 2147, '\p{^Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(1, 2147, '\P{Joining_Group= 	MALAYALAM_Nya}', "");
+    Expect(0, 2147, '\P{^Joining_Group= 	MALAYALAM_Nya}', "");
+    Error('\p{Jg=malayalam_Nya/a/}');
+    Error('\P{Jg=malayalam_Nya/a/}');
     Expect(1, 2146, '\p{Jg=:\AMalayalam_Nya\z:}', "");;
     Expect(0, 2147, '\p{Jg=:\AMalayalam_Nya\z:}', "");;
     Expect(1, 2146, '\p{Jg=malayalamnya}', "");
@@ -55943,16 +56549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2147, '\P{^Jg=malayalamnya}', "");
     Expect(1, 2146, '\p{Jg=:\Amalayalamnya\z:}', "");;
     Expect(0, 2147, '\p{Jg=:\Amalayalamnya\z:}', "");;
-    Expect(1, 2146, '\p{Jg= MALAYALAM_nya}', "");
-    Expect(0, 2146, '\p{^Jg= MALAYALAM_nya}', "");
-    Expect(0, 2146, '\P{Jg= MALAYALAM_nya}', "");
-    Expect(1, 2146, '\P{^Jg= MALAYALAM_nya}', "");
-    Expect(0, 2147, '\p{Jg= MALAYALAM_nya}', "");
-    Expect(1, 2147, '\p{^Jg= MALAYALAM_nya}', "");
-    Expect(1, 2147, '\P{Jg= MALAYALAM_nya}', "");
-    Expect(0, 2147, '\P{^Jg= MALAYALAM_nya}', "");
-    Error('\p{Is_Joining_Group: :=_	Malayalam_Nya}');
-    Error('\P{Is_Joining_Group: :=_	Malayalam_Nya}');
+    Expect(1, 2146, '\p{Jg=malayalam_nya}', "");
+    Expect(0, 2146, '\p{^Jg=malayalam_nya}', "");
+    Expect(0, 2146, '\P{Jg=malayalam_nya}', "");
+    Expect(1, 2146, '\P{^Jg=malayalam_nya}', "");
+    Expect(0, 2147, '\p{Jg=malayalam_nya}', "");
+    Expect(1, 2147, '\p{^Jg=malayalam_nya}', "");
+    Expect(1, 2147, '\P{Jg=malayalam_nya}', "");
+    Expect(0, 2147, '\P{^Jg=malayalam_nya}', "");
+    Error('\p{Is_Joining_Group:   _malayalam_Nya/a/}');
+    Error('\P{Is_Joining_Group:   _malayalam_Nya/a/}');
     Expect(1, 2146, '\p{Is_Joining_Group=malayalamnya}', "");
     Expect(0, 2146, '\p{^Is_Joining_Group=malayalamnya}', "");
     Expect(0, 2146, '\P{Is_Joining_Group=malayalamnya}', "");
@@ -55961,16 +56567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2147, '\p{^Is_Joining_Group=malayalamnya}', "");
     Expect(1, 2147, '\P{Is_Joining_Group=malayalamnya}', "");
     Expect(0, 2147, '\P{^Is_Joining_Group=malayalamnya}', "");
-    Expect(1, 2146, '\p{Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(0, 2146, '\p{^Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(0, 2146, '\P{Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(1, 2146, '\P{^Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(0, 2147, '\p{Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(1, 2147, '\p{^Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(1, 2147, '\P{Is_Joining_Group=	-malayalam_nya}', "");
-    Expect(0, 2147, '\P{^Is_Joining_Group=	-malayalam_nya}', "");
-    Error('\p{Is_Jg=:=	Malayalam_Nya}');
-    Error('\P{Is_Jg=:=	Malayalam_Nya}');
+    Expect(1, 2146, '\p{Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(0, 2146, '\p{^Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(0, 2146, '\P{Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(1, 2146, '\P{^Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(0, 2147, '\p{Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(1, 2147, '\p{^Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(1, 2147, '\P{Is_Joining_Group= _Malayalam_NYA}', "");
+    Expect(0, 2147, '\P{^Is_Joining_Group= _Malayalam_NYA}', "");
+    Error('\p{Is_Jg:		/a/MALAYALAM_NYA}');
+    Error('\P{Is_Jg:		/a/MALAYALAM_NYA}');
     Expect(1, 2146, '\p{Is_Jg=malayalamnya}', "");
     Expect(0, 2146, '\p{^Is_Jg=malayalamnya}', "");
     Expect(0, 2146, '\P{Is_Jg=malayalamnya}', "");
@@ -55979,60 +56585,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2147, '\p{^Is_Jg=malayalamnya}', "");
     Expect(1, 2147, '\P{Is_Jg=malayalamnya}', "");
     Expect(0, 2147, '\P{^Is_Jg=malayalamnya}', "");
-    Expect(1, 2146, '\p{Is_Jg=malayalam_nya}', "");
-    Expect(0, 2146, '\p{^Is_Jg=malayalam_nya}', "");
-    Expect(0, 2146, '\P{Is_Jg=malayalam_nya}', "");
-    Expect(1, 2146, '\P{^Is_Jg=malayalam_nya}', "");
-    Expect(0, 2147, '\p{Is_Jg=malayalam_nya}', "");
-    Expect(1, 2147, '\p{^Is_Jg=malayalam_nya}', "");
-    Expect(1, 2147, '\P{Is_Jg=malayalam_nya}', "");
-    Expect(0, 2147, '\P{^Is_Jg=malayalam_nya}', "");
-    Error('\p{Joining_Group=/a/MALAYALAM_ra}');
-    Error('\P{Joining_Group=/a/MALAYALAM_ra}');
+    Expect(1, 2146, '\p{Is_Jg=		Malayalam_NYA}', "");
+    Expect(0, 2146, '\p{^Is_Jg=		Malayalam_NYA}', "");
+    Expect(0, 2146, '\P{Is_Jg=		Malayalam_NYA}', "");
+    Expect(1, 2146, '\P{^Is_Jg=		Malayalam_NYA}', "");
+    Expect(0, 2147, '\p{Is_Jg=		Malayalam_NYA}', "");
+    Expect(1, 2147, '\p{^Is_Jg=		Malayalam_NYA}', "");
+    Expect(1, 2147, '\P{Is_Jg=		Malayalam_NYA}', "");
+    Expect(0, 2147, '\P{^Is_Jg=		Malayalam_NYA}', "");
+    Error('\p{Joining_Group= _malayalam_Ra:=}');
+    Error('\P{Joining_Group= _malayalam_Ra:=}');
     Expect(1, 2151, '\p{Joining_Group=:\AMalayalam_Ra\z:}', "");;
     Expect(0, 2152, '\p{Joining_Group=:\AMalayalam_Ra\z:}', "");;
-    Expect(1, 2151, '\p{Joining_Group:malayalamra}', "");
-    Expect(0, 2151, '\p{^Joining_Group:malayalamra}', "");
-    Expect(0, 2151, '\P{Joining_Group:malayalamra}', "");
-    Expect(1, 2151, '\P{^Joining_Group:malayalamra}', "");
-    Expect(0, 2152, '\p{Joining_Group:malayalamra}', "");
-    Expect(1, 2152, '\p{^Joining_Group:malayalamra}', "");
-    Expect(1, 2152, '\P{Joining_Group:malayalamra}', "");
-    Expect(0, 2152, '\P{^Joining_Group:malayalamra}', "");
+    Expect(1, 2151, '\p{Joining_Group=malayalamra}', "");
+    Expect(0, 2151, '\p{^Joining_Group=malayalamra}', "");
+    Expect(0, 2151, '\P{Joining_Group=malayalamra}', "");
+    Expect(1, 2151, '\P{^Joining_Group=malayalamra}', "");
+    Expect(0, 2152, '\p{Joining_Group=malayalamra}', "");
+    Expect(1, 2152, '\p{^Joining_Group=malayalamra}', "");
+    Expect(1, 2152, '\P{Joining_Group=malayalamra}', "");
+    Expect(0, 2152, '\P{^Joining_Group=malayalamra}', "");
     Expect(1, 2151, '\p{Joining_Group=:\Amalayalamra\z:}', "");;
     Expect(0, 2152, '\p{Joining_Group=:\Amalayalamra\z:}', "");;
-    Expect(1, 2151, '\p{Joining_Group=_ malayalam_ra}', "");
-    Expect(0, 2151, '\p{^Joining_Group=_ malayalam_ra}', "");
-    Expect(0, 2151, '\P{Joining_Group=_ malayalam_ra}', "");
-    Expect(1, 2151, '\P{^Joining_Group=_ malayalam_ra}', "");
-    Expect(0, 2152, '\p{Joining_Group=_ malayalam_ra}', "");
-    Expect(1, 2152, '\p{^Joining_Group=_ malayalam_ra}', "");
-    Expect(1, 2152, '\P{Joining_Group=_ malayalam_ra}', "");
-    Expect(0, 2152, '\P{^Joining_Group=_ malayalam_ra}', "");
-    Error('\p{Jg=	:=Malayalam_ra}');
-    Error('\P{Jg=	:=Malayalam_ra}');
+    Expect(1, 2151, '\p{Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(0, 2151, '\p{^Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(0, 2151, '\P{Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(1, 2151, '\P{^Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(0, 2152, '\p{Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(1, 2152, '\p{^Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(1, 2152, '\P{Joining_Group:-MALAYALAM_Ra}', "");
+    Expect(0, 2152, '\P{^Joining_Group:-MALAYALAM_Ra}', "");
+    Error('\p{Jg=	MALAYALAM_ra/a/}');
+    Error('\P{Jg=	MALAYALAM_ra/a/}');
     Expect(1, 2151, '\p{Jg=:\AMalayalam_Ra\z:}', "");;
     Expect(0, 2152, '\p{Jg=:\AMalayalam_Ra\z:}', "");;
-    Expect(1, 2151, '\p{Jg=malayalamra}', "");
-    Expect(0, 2151, '\p{^Jg=malayalamra}', "");
-    Expect(0, 2151, '\P{Jg=malayalamra}', "");
-    Expect(1, 2151, '\P{^Jg=malayalamra}', "");
-    Expect(0, 2152, '\p{Jg=malayalamra}', "");
-    Expect(1, 2152, '\p{^Jg=malayalamra}', "");
-    Expect(1, 2152, '\P{Jg=malayalamra}', "");
-    Expect(0, 2152, '\P{^Jg=malayalamra}', "");
+    Expect(1, 2151, '\p{Jg:   malayalamra}', "");
+    Expect(0, 2151, '\p{^Jg:   malayalamra}', "");
+    Expect(0, 2151, '\P{Jg:   malayalamra}', "");
+    Expect(1, 2151, '\P{^Jg:   malayalamra}', "");
+    Expect(0, 2152, '\p{Jg:   malayalamra}', "");
+    Expect(1, 2152, '\p{^Jg:   malayalamra}', "");
+    Expect(1, 2152, '\P{Jg:   malayalamra}', "");
+    Expect(0, 2152, '\P{^Jg:   malayalamra}', "");
     Expect(1, 2151, '\p{Jg=:\Amalayalamra\z:}', "");;
     Expect(0, 2152, '\p{Jg=:\Amalayalamra\z:}', "");;
-    Expect(1, 2151, '\p{Jg= 	Malayalam_ra}', "");
-    Expect(0, 2151, '\p{^Jg= 	Malayalam_ra}', "");
-    Expect(0, 2151, '\P{Jg= 	Malayalam_ra}', "");
-    Expect(1, 2151, '\P{^Jg= 	Malayalam_ra}', "");
-    Expect(0, 2152, '\p{Jg= 	Malayalam_ra}', "");
-    Expect(1, 2152, '\p{^Jg= 	Malayalam_ra}', "");
-    Expect(1, 2152, '\P{Jg= 	Malayalam_ra}', "");
-    Expect(0, 2152, '\P{^Jg= 	Malayalam_ra}', "");
-    Error('\p{Is_Joining_Group=	 malayalam_Ra/a/}');
-    Error('\P{Is_Joining_Group=	 malayalam_Ra/a/}');
+    Expect(1, 2151, '\p{Jg=-	malayalam_RA}', "");
+    Expect(0, 2151, '\p{^Jg=-	malayalam_RA}', "");
+    Expect(0, 2151, '\P{Jg=-	malayalam_RA}', "");
+    Expect(1, 2151, '\P{^Jg=-	malayalam_RA}', "");
+    Expect(0, 2152, '\p{Jg=-	malayalam_RA}', "");
+    Expect(1, 2152, '\p{^Jg=-	malayalam_RA}', "");
+    Expect(1, 2152, '\P{Jg=-	malayalam_RA}', "");
+    Expect(0, 2152, '\P{^Jg=-	malayalam_RA}', "");
+    Error('\p{Is_Joining_Group=-:=malayalam_ra}');
+    Error('\P{Is_Joining_Group=-:=malayalam_ra}');
     Expect(1, 2151, '\p{Is_Joining_Group=malayalamra}', "");
     Expect(0, 2151, '\p{^Is_Joining_Group=malayalamra}', "");
     Expect(0, 2151, '\P{Is_Joining_Group=malayalamra}', "");
@@ -56041,78 +56647,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2152, '\p{^Is_Joining_Group=malayalamra}', "");
     Expect(1, 2152, '\P{Is_Joining_Group=malayalamra}', "");
     Expect(0, 2152, '\P{^Is_Joining_Group=malayalamra}', "");
-    Expect(1, 2151, '\p{Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(0, 2151, '\p{^Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(0, 2151, '\P{Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(1, 2151, '\P{^Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(0, 2152, '\p{Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(1, 2152, '\p{^Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(1, 2152, '\P{Is_Joining_Group=	_malayalam_RA}', "");
-    Expect(0, 2152, '\P{^Is_Joining_Group=	_malayalam_RA}', "");
-    Error('\p{Is_Jg=/a/ _MALAYALAM_ra}');
-    Error('\P{Is_Jg=/a/ _MALAYALAM_ra}');
-    Expect(1, 2151, '\p{Is_Jg=malayalamra}', "");
-    Expect(0, 2151, '\p{^Is_Jg=malayalamra}', "");
-    Expect(0, 2151, '\P{Is_Jg=malayalamra}', "");
-    Expect(1, 2151, '\P{^Is_Jg=malayalamra}', "");
-    Expect(0, 2152, '\p{Is_Jg=malayalamra}', "");
-    Expect(1, 2152, '\p{^Is_Jg=malayalamra}', "");
-    Expect(1, 2152, '\P{Is_Jg=malayalamra}', "");
-    Expect(0, 2152, '\P{^Is_Jg=malayalamra}', "");
-    Expect(1, 2151, '\p{Is_Jg=-	malayalam_RA}', "");
-    Expect(0, 2151, '\p{^Is_Jg=-	malayalam_RA}', "");
-    Expect(0, 2151, '\P{Is_Jg=-	malayalam_RA}', "");
-    Expect(1, 2151, '\P{^Is_Jg=-	malayalam_RA}', "");
-    Expect(0, 2152, '\p{Is_Jg=-	malayalam_RA}', "");
-    Expect(1, 2152, '\p{^Is_Jg=-	malayalam_RA}', "");
-    Expect(1, 2152, '\P{Is_Jg=-	malayalam_RA}', "");
-    Expect(0, 2152, '\P{^Is_Jg=-	malayalam_RA}', "");
-    Error('\p{Joining_Group:-/a/Malayalam_SSA}');
-    Error('\P{Joining_Group:-/a/Malayalam_SSA}');
+    Expect(1, 2151, '\p{Is_Joining_Group= Malayalam_RA}', "");
+    Expect(0, 2151, '\p{^Is_Joining_Group= Malayalam_RA}', "");
+    Expect(0, 2151, '\P{Is_Joining_Group= Malayalam_RA}', "");
+    Expect(1, 2151, '\P{^Is_Joining_Group= Malayalam_RA}', "");
+    Expect(0, 2152, '\p{Is_Joining_Group= Malayalam_RA}', "");
+    Expect(1, 2152, '\p{^Is_Joining_Group= Malayalam_RA}', "");
+    Expect(1, 2152, '\P{Is_Joining_Group= Malayalam_RA}', "");
+    Expect(0, 2152, '\P{^Is_Joining_Group= Malayalam_RA}', "");
+    Error('\p{Is_Jg:	 :=Malayalam_Ra}');
+    Error('\P{Is_Jg:	 :=Malayalam_Ra}');
+    Expect(1, 2151, '\p{Is_Jg:   malayalamra}', "");
+    Expect(0, 2151, '\p{^Is_Jg:   malayalamra}', "");
+    Expect(0, 2151, '\P{Is_Jg:   malayalamra}', "");
+    Expect(1, 2151, '\P{^Is_Jg:   malayalamra}', "");
+    Expect(0, 2152, '\p{Is_Jg:   malayalamra}', "");
+    Expect(1, 2152, '\p{^Is_Jg:   malayalamra}', "");
+    Expect(1, 2152, '\P{Is_Jg:   malayalamra}', "");
+    Expect(0, 2152, '\P{^Is_Jg:   malayalamra}', "");
+    Expect(1, 2151, '\p{Is_Jg=	malayalam_RA}', "");
+    Expect(0, 2151, '\p{^Is_Jg=	malayalam_RA}', "");
+    Expect(0, 2151, '\P{Is_Jg=	malayalam_RA}', "");
+    Expect(1, 2151, '\P{^Is_Jg=	malayalam_RA}', "");
+    Expect(0, 2152, '\p{Is_Jg=	malayalam_RA}', "");
+    Expect(1, 2152, '\p{^Is_Jg=	malayalam_RA}', "");
+    Expect(1, 2152, '\P{Is_Jg=	malayalam_RA}', "");
+    Expect(0, 2152, '\P{^Is_Jg=	malayalam_RA}', "");
+    Error('\p{Joining_Group=_-Malayalam_SSA:=}');
+    Error('\P{Joining_Group=_-Malayalam_SSA:=}');
     Expect(1, 2154, '\p{Joining_Group=:\AMalayalam_Ssa\z:}', "");;
     Expect(0, 2155, '\p{Joining_Group=:\AMalayalam_Ssa\z:}', "");;
-    Expect(1, 2154, '\p{Joining_Group: malayalamssa}', "");
-    Expect(0, 2154, '\p{^Joining_Group: malayalamssa}', "");
-    Expect(0, 2154, '\P{Joining_Group: malayalamssa}', "");
-    Expect(1, 2154, '\P{^Joining_Group: malayalamssa}', "");
-    Expect(0, 2155, '\p{Joining_Group: malayalamssa}', "");
-    Expect(1, 2155, '\p{^Joining_Group: malayalamssa}', "");
-    Expect(1, 2155, '\P{Joining_Group: malayalamssa}', "");
-    Expect(0, 2155, '\P{^Joining_Group: malayalamssa}', "");
+    Expect(1, 2154, '\p{Joining_Group=malayalamssa}', "");
+    Expect(0, 2154, '\p{^Joining_Group=malayalamssa}', "");
+    Expect(0, 2154, '\P{Joining_Group=malayalamssa}', "");
+    Expect(1, 2154, '\P{^Joining_Group=malayalamssa}', "");
+    Expect(0, 2155, '\p{Joining_Group=malayalamssa}', "");
+    Expect(1, 2155, '\p{^Joining_Group=malayalamssa}', "");
+    Expect(1, 2155, '\P{Joining_Group=malayalamssa}', "");
+    Expect(0, 2155, '\P{^Joining_Group=malayalamssa}', "");
     Expect(1, 2154, '\p{Joining_Group=:\Amalayalamssa\z:}', "");;
     Expect(0, 2155, '\p{Joining_Group=:\Amalayalamssa\z:}', "");;
-    Expect(1, 2154, '\p{Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(0, 2154, '\p{^Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(0, 2154, '\P{Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(1, 2154, '\P{^Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(0, 2155, '\p{Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(1, 2155, '\p{^Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(1, 2155, '\P{Joining_Group:	-Malayalam_Ssa}', "");
-    Expect(0, 2155, '\P{^Joining_Group:	-Malayalam_Ssa}', "");
-    Error('\p{Jg=	 MALAYALAM_SSA/a/}');
-    Error('\P{Jg=	 MALAYALAM_SSA/a/}');
+    Expect(1, 2154, '\p{Joining_Group=	Malayalam_ssa}', "");
+    Expect(0, 2154, '\p{^Joining_Group=	Malayalam_ssa}', "");
+    Expect(0, 2154, '\P{Joining_Group=	Malayalam_ssa}', "");
+    Expect(1, 2154, '\P{^Joining_Group=	Malayalam_ssa}', "");
+    Expect(0, 2155, '\p{Joining_Group=	Malayalam_ssa}', "");
+    Expect(1, 2155, '\p{^Joining_Group=	Malayalam_ssa}', "");
+    Expect(1, 2155, '\P{Joining_Group=	Malayalam_ssa}', "");
+    Expect(0, 2155, '\P{^Joining_Group=	Malayalam_ssa}', "");
+    Error('\p{Jg=	-MALAYALAM_ssa/a/}');
+    Error('\P{Jg=	-MALAYALAM_ssa/a/}');
     Expect(1, 2154, '\p{Jg=:\AMalayalam_Ssa\z:}', "");;
     Expect(0, 2155, '\p{Jg=:\AMalayalam_Ssa\z:}', "");;
-    Expect(1, 2154, '\p{Jg:   malayalamssa}', "");
-    Expect(0, 2154, '\p{^Jg:   malayalamssa}', "");
-    Expect(0, 2154, '\P{Jg:   malayalamssa}', "");
-    Expect(1, 2154, '\P{^Jg:   malayalamssa}', "");
-    Expect(0, 2155, '\p{Jg:   malayalamssa}', "");
-    Expect(1, 2155, '\p{^Jg:   malayalamssa}', "");
-    Expect(1, 2155, '\P{Jg:   malayalamssa}', "");
-    Expect(0, 2155, '\P{^Jg:   malayalamssa}', "");
+    Expect(1, 2154, '\p{Jg=malayalamssa}', "");
+    Expect(0, 2154, '\p{^Jg=malayalamssa}', "");
+    Expect(0, 2154, '\P{Jg=malayalamssa}', "");
+    Expect(1, 2154, '\P{^Jg=malayalamssa}', "");
+    Expect(0, 2155, '\p{Jg=malayalamssa}', "");
+    Expect(1, 2155, '\p{^Jg=malayalamssa}', "");
+    Expect(1, 2155, '\P{Jg=malayalamssa}', "");
+    Expect(0, 2155, '\P{^Jg=malayalamssa}', "");
     Expect(1, 2154, '\p{Jg=:\Amalayalamssa\z:}', "");;
     Expect(0, 2155, '\p{Jg=:\Amalayalamssa\z:}', "");;
-    Expect(1, 2154, '\p{Jg=	malayalam_Ssa}', "");
-    Expect(0, 2154, '\p{^Jg=	malayalam_Ssa}', "");
-    Expect(0, 2154, '\P{Jg=	malayalam_Ssa}', "");
-    Expect(1, 2154, '\P{^Jg=	malayalam_Ssa}', "");
-    Expect(0, 2155, '\p{Jg=	malayalam_Ssa}', "");
-    Expect(1, 2155, '\p{^Jg=	malayalam_Ssa}', "");
-    Expect(1, 2155, '\P{Jg=	malayalam_Ssa}', "");
-    Expect(0, 2155, '\P{^Jg=	malayalam_Ssa}', "");
-    Error('\p{Is_Joining_Group= -Malayalam_ssa:=}');
-    Error('\P{Is_Joining_Group= -Malayalam_ssa:=}');
+    Expect(1, 2154, '\p{Jg=_-Malayalam_ssa}', "");
+    Expect(0, 2154, '\p{^Jg=_-Malayalam_ssa}', "");
+    Expect(0, 2154, '\P{Jg=_-Malayalam_ssa}', "");
+    Expect(1, 2154, '\P{^Jg=_-Malayalam_ssa}', "");
+    Expect(0, 2155, '\p{Jg=_-Malayalam_ssa}', "");
+    Expect(1, 2155, '\p{^Jg=_-Malayalam_ssa}', "");
+    Expect(1, 2155, '\P{Jg=_-Malayalam_ssa}', "");
+    Expect(0, 2155, '\P{^Jg=_-Malayalam_ssa}', "");
+    Error('\p{Is_Joining_Group= _malayalam_ssa/a/}');
+    Error('\P{Is_Joining_Group= _malayalam_ssa/a/}');
     Expect(1, 2154, '\p{Is_Joining_Group=malayalamssa}', "");
     Expect(0, 2154, '\p{^Is_Joining_Group=malayalamssa}', "");
     Expect(0, 2154, '\P{Is_Joining_Group=malayalamssa}', "");
@@ -56121,34 +56727,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2155, '\p{^Is_Joining_Group=malayalamssa}', "");
     Expect(1, 2155, '\P{Is_Joining_Group=malayalamssa}', "");
     Expect(0, 2155, '\P{^Is_Joining_Group=malayalamssa}', "");
-    Expect(1, 2154, '\p{Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(0, 2154, '\p{^Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(0, 2154, '\P{Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(1, 2154, '\P{^Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(0, 2155, '\p{Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(1, 2155, '\p{^Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(1, 2155, '\P{Is_Joining_Group=- Malayalam_Ssa}', "");
-    Expect(0, 2155, '\P{^Is_Joining_Group=- Malayalam_Ssa}', "");
-    Error('\p{Is_Jg=		Malayalam_SSA/a/}');
-    Error('\P{Is_Jg=		Malayalam_SSA/a/}');
-    Expect(1, 2154, '\p{Is_Jg=malayalamssa}', "");
-    Expect(0, 2154, '\p{^Is_Jg=malayalamssa}', "");
-    Expect(0, 2154, '\P{Is_Jg=malayalamssa}', "");
-    Expect(1, 2154, '\P{^Is_Jg=malayalamssa}', "");
-    Expect(0, 2155, '\p{Is_Jg=malayalamssa}', "");
-    Expect(1, 2155, '\p{^Is_Jg=malayalamssa}', "");
-    Expect(1, 2155, '\P{Is_Jg=malayalamssa}', "");
-    Expect(0, 2155, '\P{^Is_Jg=malayalamssa}', "");
-    Expect(1, 2154, '\p{Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(0, 2154, '\p{^Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(0, 2154, '\P{Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(1, 2154, '\P{^Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(0, 2155, '\p{Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(1, 2155, '\p{^Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(1, 2155, '\P{Is_Jg=	MALAYALAM_SSA}', "");
-    Expect(0, 2155, '\P{^Is_Jg=	MALAYALAM_SSA}', "");
-    Error('\p{Joining_Group=	_Malayalam_tta/a/}');
-    Error('\P{Joining_Group=	_Malayalam_tta/a/}');
+    Expect(1, 2154, '\p{Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(0, 2154, '\p{^Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(0, 2154, '\P{Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(1, 2154, '\P{^Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(0, 2155, '\p{Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(1, 2155, '\p{^Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(1, 2155, '\P{Is_Joining_Group=Malayalam_Ssa}', "");
+    Expect(0, 2155, '\P{^Is_Joining_Group=Malayalam_Ssa}', "");
+    Error('\p{Is_Jg=-:=Malayalam_SSA}');
+    Error('\P{Is_Jg=-:=Malayalam_SSA}');
+    Expect(1, 2154, '\p{Is_Jg:   malayalamssa}', "");
+    Expect(0, 2154, '\p{^Is_Jg:   malayalamssa}', "");
+    Expect(0, 2154, '\P{Is_Jg:   malayalamssa}', "");
+    Expect(1, 2154, '\P{^Is_Jg:   malayalamssa}', "");
+    Expect(0, 2155, '\p{Is_Jg:   malayalamssa}', "");
+    Expect(1, 2155, '\p{^Is_Jg:   malayalamssa}', "");
+    Expect(1, 2155, '\P{Is_Jg:   malayalamssa}', "");
+    Expect(0, 2155, '\P{^Is_Jg:   malayalamssa}', "");
+    Expect(1, 2154, '\p{Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(0, 2154, '\p{^Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(0, 2154, '\P{Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(1, 2154, '\P{^Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(0, 2155, '\p{Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(1, 2155, '\p{^Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(1, 2155, '\P{Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Expect(0, 2155, '\P{^Is_Jg:	_-MALAYALAM_Ssa}', "");
+    Error('\p{Joining_Group= Malayalam_tta/a/}');
+    Error('\P{Joining_Group= Malayalam_tta/a/}');
     Expect(1, 2147, '\p{Joining_Group=:\AMalayalam_Tta\z:}', "");;
     Expect(0, 2148, '\p{Joining_Group=:\AMalayalam_Tta\z:}', "");;
     Expect(1, 2147, '\p{Joining_Group=malayalamtta}', "");
@@ -56161,16 +56767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2148, '\P{^Joining_Group=malayalamtta}', "");
     Expect(1, 2147, '\p{Joining_Group=:\Amalayalamtta\z:}', "");;
     Expect(0, 2148, '\p{Joining_Group=:\Amalayalamtta\z:}', "");;
-    Expect(1, 2147, '\p{Joining_Group=	_Malayalam_Tta}', "");
-    Expect(0, 2147, '\p{^Joining_Group=	_Malayalam_Tta}', "");
-    Expect(0, 2147, '\P{Joining_Group=	_Malayalam_Tta}', "");
-    Expect(1, 2147, '\P{^Joining_Group=	_Malayalam_Tta}', "");
-    Expect(0, 2148, '\p{Joining_Group=	_Malayalam_Tta}', "");
-    Expect(1, 2148, '\p{^Joining_Group=	_Malayalam_Tta}', "");
-    Expect(1, 2148, '\P{Joining_Group=	_Malayalam_Tta}', "");
-    Expect(0, 2148, '\P{^Joining_Group=	_Malayalam_Tta}', "");
-    Error('\p{Jg=:=_ malayalam_tta}');
-    Error('\P{Jg=:=_ malayalam_tta}');
+    Expect(1, 2147, '\p{Joining_Group=-	Malayalam_TTA}', "");
+    Expect(0, 2147, '\p{^Joining_Group=-	Malayalam_TTA}', "");
+    Expect(0, 2147, '\P{Joining_Group=-	Malayalam_TTA}', "");
+    Expect(1, 2147, '\P{^Joining_Group=-	Malayalam_TTA}', "");
+    Expect(0, 2148, '\p{Joining_Group=-	Malayalam_TTA}', "");
+    Expect(1, 2148, '\p{^Joining_Group=-	Malayalam_TTA}', "");
+    Expect(1, 2148, '\P{Joining_Group=-	Malayalam_TTA}', "");
+    Expect(0, 2148, '\P{^Joining_Group=-	Malayalam_TTA}', "");
+    Error('\p{Jg=- malayalam_Tta:=}');
+    Error('\P{Jg=- malayalam_Tta:=}');
     Expect(1, 2147, '\p{Jg=:\AMalayalam_Tta\z:}', "");;
     Expect(0, 2148, '\p{Jg=:\AMalayalam_Tta\z:}', "");;
     Expect(1, 2147, '\p{Jg=malayalamtta}', "");
@@ -56183,16 +56789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2148, '\P{^Jg=malayalamtta}', "");
     Expect(1, 2147, '\p{Jg=:\Amalayalamtta\z:}', "");;
     Expect(0, 2148, '\p{Jg=:\Amalayalamtta\z:}', "");;
-    Expect(1, 2147, '\p{Jg:   	malayalam_tta}', "");
-    Expect(0, 2147, '\p{^Jg:   	malayalam_tta}', "");
-    Expect(0, 2147, '\P{Jg:   	malayalam_tta}', "");
-    Expect(1, 2147, '\P{^Jg:   	malayalam_tta}', "");
-    Expect(0, 2148, '\p{Jg:   	malayalam_tta}', "");
-    Expect(1, 2148, '\p{^Jg:   	malayalam_tta}', "");
-    Expect(1, 2148, '\P{Jg:   	malayalam_tta}', "");
-    Expect(0, 2148, '\P{^Jg:   	malayalam_tta}', "");
-    Error('\p{Is_Joining_Group=_-Malayalam_TTA/a/}');
-    Error('\P{Is_Joining_Group=_-Malayalam_TTA/a/}');
+    Expect(1, 2147, '\p{Jg=-MALAYALAM_Tta}', "");
+    Expect(0, 2147, '\p{^Jg=-MALAYALAM_Tta}', "");
+    Expect(0, 2147, '\P{Jg=-MALAYALAM_Tta}', "");
+    Expect(1, 2147, '\P{^Jg=-MALAYALAM_Tta}', "");
+    Expect(0, 2148, '\p{Jg=-MALAYALAM_Tta}', "");
+    Expect(1, 2148, '\p{^Jg=-MALAYALAM_Tta}', "");
+    Expect(1, 2148, '\P{Jg=-MALAYALAM_Tta}', "");
+    Expect(0, 2148, '\P{^Jg=-MALAYALAM_Tta}', "");
+    Error('\p{Is_Joining_Group=:=_MALAYALAM_TTA}');
+    Error('\P{Is_Joining_Group=:=_MALAYALAM_TTA}');
     Expect(1, 2147, '\p{Is_Joining_Group=malayalamtta}', "");
     Expect(0, 2147, '\p{^Is_Joining_Group=malayalamtta}', "");
     Expect(0, 2147, '\P{Is_Joining_Group=malayalamtta}', "");
@@ -56201,16 +56807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2148, '\p{^Is_Joining_Group=malayalamtta}', "");
     Expect(1, 2148, '\P{Is_Joining_Group=malayalamtta}', "");
     Expect(0, 2148, '\P{^Is_Joining_Group=malayalamtta}', "");
-    Expect(1, 2147, '\p{Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(0, 2147, '\p{^Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(0, 2147, '\P{Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(1, 2147, '\P{^Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(0, 2148, '\p{Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(1, 2148, '\p{^Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(1, 2148, '\P{Is_Joining_Group=	-Malayalam_Tta}', "");
-    Expect(0, 2148, '\P{^Is_Joining_Group=	-Malayalam_Tta}', "");
-    Error('\p{Is_Jg=:=	Malayalam_tta}');
-    Error('\P{Is_Jg=:=	Malayalam_tta}');
+    Expect(1, 2147, '\p{Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(0, 2147, '\p{^Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(0, 2147, '\P{Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(1, 2147, '\P{^Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(0, 2148, '\p{Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(1, 2148, '\p{^Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(1, 2148, '\P{Is_Joining_Group= 	Malayalam_tta}', "");
+    Expect(0, 2148, '\P{^Is_Joining_Group= 	Malayalam_tta}', "");
+    Error('\p{Is_Jg=  Malayalam_Tta:=}');
+    Error('\P{Is_Jg=  Malayalam_Tta:=}');
     Expect(1, 2147, '\p{Is_Jg=malayalamtta}', "");
     Expect(0, 2147, '\p{^Is_Jg=malayalamtta}', "");
     Expect(0, 2147, '\P{Is_Jg=malayalamtta}', "");
@@ -56219,16 +56825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2148, '\p{^Is_Jg=malayalamtta}', "");
     Expect(1, 2148, '\P{Is_Jg=malayalamtta}', "");
     Expect(0, 2148, '\P{^Is_Jg=malayalamtta}', "");
-    Expect(1, 2147, '\p{Is_Jg:   Malayalam_tta}', "");
-    Expect(0, 2147, '\p{^Is_Jg:   Malayalam_tta}', "");
-    Expect(0, 2147, '\P{Is_Jg:   Malayalam_tta}', "");
-    Expect(1, 2147, '\P{^Is_Jg:   Malayalam_tta}', "");
-    Expect(0, 2148, '\p{Is_Jg:   Malayalam_tta}', "");
-    Expect(1, 2148, '\p{^Is_Jg:   Malayalam_tta}', "");
-    Expect(1, 2148, '\P{Is_Jg:   Malayalam_tta}', "");
-    Expect(0, 2148, '\P{^Is_Jg:   Malayalam_tta}', "");
-    Error('\p{Joining_Group:/a/-MANICHAEAN_ALEPH}');
-    Error('\P{Joining_Group:/a/-MANICHAEAN_ALEPH}');
+    Expect(1, 2147, '\p{Is_Jg=_ malayalam_Tta}', "");
+    Expect(0, 2147, '\p{^Is_Jg=_ malayalam_Tta}', "");
+    Expect(0, 2147, '\P{Is_Jg=_ malayalam_Tta}', "");
+    Expect(1, 2147, '\P{^Is_Jg=_ malayalam_Tta}', "");
+    Expect(0, 2148, '\p{Is_Jg=_ malayalam_Tta}', "");
+    Expect(1, 2148, '\p{^Is_Jg=_ malayalam_Tta}', "");
+    Expect(1, 2148, '\P{Is_Jg=_ malayalam_Tta}', "");
+    Expect(0, 2148, '\P{^Is_Jg=_ malayalam_Tta}', "");
+    Error('\p{Joining_Group=/a/ 	MANICHAEAN_aleph}');
+    Error('\P{Joining_Group=/a/ 	MANICHAEAN_aleph}');
     Expect(1, 68288, '\p{Joining_Group=:\AManichaean_Aleph\z:}', "");;
     Expect(0, 68289, '\p{Joining_Group=:\AManichaean_Aleph\z:}', "");;
     Expect(1, 68288, '\p{Joining_Group=manichaeanaleph}', "");
@@ -56241,16 +56847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68289, '\P{^Joining_Group=manichaeanaleph}', "");
     Expect(1, 68288, '\p{Joining_Group=:\Amanichaeanaleph\z:}', "");;
     Expect(0, 68289, '\p{Joining_Group=:\Amanichaeanaleph\z:}', "");;
-    Expect(1, 68288, '\p{Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(0, 68288, '\p{^Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(0, 68288, '\P{Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(1, 68288, '\P{^Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(0, 68289, '\p{Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(1, 68289, '\p{^Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(1, 68289, '\P{Joining_Group=-Manichaean_ALEPH}', "");
-    Expect(0, 68289, '\P{^Joining_Group=-Manichaean_ALEPH}', "");
-    Error('\p{Jg=	:=manichaean_Aleph}');
-    Error('\P{Jg=	:=manichaean_Aleph}');
+    Expect(1, 68288, '\p{Joining_Group=__Manichaean_Aleph}', "");
+    Expect(0, 68288, '\p{^Joining_Group=__Manichaean_Aleph}', "");
+    Expect(0, 68288, '\P{Joining_Group=__Manichaean_Aleph}', "");
+    Expect(1, 68288, '\P{^Joining_Group=__Manichaean_Aleph}', "");
+    Expect(0, 68289, '\p{Joining_Group=__Manichaean_Aleph}', "");
+    Expect(1, 68289, '\p{^Joining_Group=__Manichaean_Aleph}', "");
+    Expect(1, 68289, '\P{Joining_Group=__Manichaean_Aleph}', "");
+    Expect(0, 68289, '\P{^Joining_Group=__Manichaean_Aleph}', "");
+    Error('\p{Jg= :=MANICHAEAN_ALEPH}');
+    Error('\P{Jg= :=MANICHAEAN_ALEPH}');
     Expect(1, 68288, '\p{Jg=:\AManichaean_Aleph\z:}', "");;
     Expect(0, 68289, '\p{Jg=:\AManichaean_Aleph\z:}', "");;
     Expect(1, 68288, '\p{Jg=manichaeanaleph}', "");
@@ -56263,34 +56869,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68289, '\P{^Jg=manichaeanaleph}', "");
     Expect(1, 68288, '\p{Jg=:\Amanichaeanaleph\z:}', "");;
     Expect(0, 68289, '\p{Jg=:\Amanichaeanaleph\z:}', "");;
-    Expect(1, 68288, '\p{Jg=- Manichaean_ALEPH}', "");
-    Expect(0, 68288, '\p{^Jg=- Manichaean_ALEPH}', "");
-    Expect(0, 68288, '\P{Jg=- Manichaean_ALEPH}', "");
-    Expect(1, 68288, '\P{^Jg=- Manichaean_ALEPH}', "");
-    Expect(0, 68289, '\p{Jg=- Manichaean_ALEPH}', "");
-    Expect(1, 68289, '\p{^Jg=- Manichaean_ALEPH}', "");
-    Expect(1, 68289, '\P{Jg=- Manichaean_ALEPH}', "");
-    Expect(0, 68289, '\P{^Jg=- Manichaean_ALEPH}', "");
-    Error('\p{Is_Joining_Group=	 Manichaean_aleph/a/}');
-    Error('\P{Is_Joining_Group=	 Manichaean_aleph/a/}');
-    Expect(1, 68288, '\p{Is_Joining_Group=manichaeanaleph}', "");
-    Expect(0, 68288, '\p{^Is_Joining_Group=manichaeanaleph}', "");
-    Expect(0, 68288, '\P{Is_Joining_Group=manichaeanaleph}', "");
-    Expect(1, 68288, '\P{^Is_Joining_Group=manichaeanaleph}', "");
-    Expect(0, 68289, '\p{Is_Joining_Group=manichaeanaleph}', "");
-    Expect(1, 68289, '\p{^Is_Joining_Group=manichaeanaleph}', "");
-    Expect(1, 68289, '\P{Is_Joining_Group=manichaeanaleph}', "");
-    Expect(0, 68289, '\P{^Is_Joining_Group=manichaeanaleph}', "");
-    Expect(1, 68288, '\p{Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(0, 68288, '\p{^Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(0, 68288, '\P{Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(1, 68288, '\P{^Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(0, 68289, '\p{Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(1, 68289, '\p{^Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(1, 68289, '\P{Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Expect(0, 68289, '\P{^Is_Joining_Group=_	Manichaean_Aleph}', "");
-    Error('\p{Is_Jg=	-manichaean_Aleph:=}');
-    Error('\P{Is_Jg=	-manichaean_Aleph:=}');
+    Expect(1, 68288, '\p{Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(0, 68288, '\p{^Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(0, 68288, '\P{Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(1, 68288, '\P{^Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(0, 68289, '\p{Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(1, 68289, '\p{^Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(1, 68289, '\P{Jg=	_MANICHAEAN_ALEPH}', "");
+    Expect(0, 68289, '\P{^Jg=	_MANICHAEAN_ALEPH}', "");
+    Error('\p{Is_Joining_Group::=Manichaean_aleph}');
+    Error('\P{Is_Joining_Group::=Manichaean_aleph}');
+    Expect(1, 68288, '\p{Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(0, 68288, '\p{^Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(0, 68288, '\P{Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(1, 68288, '\P{^Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(0, 68289, '\p{Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(1, 68289, '\p{^Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(1, 68289, '\P{Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(0, 68289, '\P{^Is_Joining_Group:	manichaeanaleph}', "");
+    Expect(1, 68288, '\p{Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(0, 68288, '\p{^Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(0, 68288, '\P{Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(1, 68288, '\P{^Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(0, 68289, '\p{Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(1, 68289, '\p{^Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(1, 68289, '\P{Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Expect(0, 68289, '\P{^Is_Joining_Group=	-Manichaean_Aleph}', "");
+    Error('\p{Is_Jg=:=Manichaean_ALEPH}');
+    Error('\P{Is_Jg=:=Manichaean_ALEPH}');
     Expect(1, 68288, '\p{Is_Jg=manichaeanaleph}', "");
     Expect(0, 68288, '\p{^Is_Jg=manichaeanaleph}', "");
     Expect(0, 68288, '\P{Is_Jg=manichaeanaleph}', "");
@@ -56299,16 +56905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68289, '\p{^Is_Jg=manichaeanaleph}', "");
     Expect(1, 68289, '\P{Is_Jg=manichaeanaleph}', "");
     Expect(0, 68289, '\P{^Is_Jg=manichaeanaleph}', "");
-    Expect(1, 68288, '\p{Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(0, 68288, '\p{^Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(0, 68288, '\P{Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(1, 68288, '\P{^Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(0, 68289, '\p{Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(1, 68289, '\p{^Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(1, 68289, '\P{Is_Jg=MANICHAEAN_Aleph}', "");
-    Expect(0, 68289, '\P{^Is_Jg=MANICHAEAN_Aleph}', "");
-    Error('\p{Joining_Group:- Manichaean_ayin:=}');
-    Error('\P{Joining_Group:- Manichaean_ayin:=}');
+    Expect(1, 68288, '\p{Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(0, 68288, '\p{^Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(0, 68288, '\P{Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(1, 68288, '\P{^Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(0, 68289, '\p{Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(1, 68289, '\p{^Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(1, 68289, '\P{Is_Jg=- MANICHAEAN_Aleph}', "");
+    Expect(0, 68289, '\P{^Is_Jg=- MANICHAEAN_Aleph}', "");
+    Error('\p{Joining_Group=_:=Manichaean_AYIN}');
+    Error('\P{Joining_Group=_:=Manichaean_AYIN}');
     Expect(1, 68314, '\p{Joining_Group=:\AManichaean_Ayin\z:}', "");;
     Expect(0, 68315, '\p{Joining_Group=:\AManichaean_Ayin\z:}', "");;
     Expect(1, 68314, '\p{Joining_Group=manichaeanayin}', "");
@@ -56321,16 +56927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68315, '\P{^Joining_Group=manichaeanayin}', "");
     Expect(1, 68314, '\p{Joining_Group=:\Amanichaeanayin\z:}', "");;
     Expect(0, 68315, '\p{Joining_Group=:\Amanichaeanayin\z:}', "");;
-    Expect(1, 68314, '\p{Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(0, 68314, '\p{^Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(0, 68314, '\P{Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(1, 68314, '\P{^Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(0, 68315, '\p{Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(1, 68315, '\p{^Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(1, 68315, '\P{Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Expect(0, 68315, '\P{^Joining_Group=_-MANICHAEAN_Ayin}', "");
-    Error('\p{Jg=	/a/MANICHAEAN_Ayin}');
-    Error('\P{Jg=	/a/MANICHAEAN_Ayin}');
+    Expect(1, 68314, '\p{Joining_Group=	Manichaean_ayin}', "");
+    Expect(0, 68314, '\p{^Joining_Group=	Manichaean_ayin}', "");
+    Expect(0, 68314, '\P{Joining_Group=	Manichaean_ayin}', "");
+    Expect(1, 68314, '\P{^Joining_Group=	Manichaean_ayin}', "");
+    Expect(0, 68315, '\p{Joining_Group=	Manichaean_ayin}', "");
+    Expect(1, 68315, '\p{^Joining_Group=	Manichaean_ayin}', "");
+    Expect(1, 68315, '\P{Joining_Group=	Manichaean_ayin}', "");
+    Expect(0, 68315, '\P{^Joining_Group=	Manichaean_ayin}', "");
+    Error('\p{Jg=:=- MANICHAEAN_Ayin}');
+    Error('\P{Jg=:=- MANICHAEAN_Ayin}');
     Expect(1, 68314, '\p{Jg=:\AManichaean_Ayin\z:}', "");;
     Expect(0, 68315, '\p{Jg=:\AManichaean_Ayin\z:}', "");;
     Expect(1, 68314, '\p{Jg=manichaeanayin}', "");
@@ -56343,16 +56949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68315, '\P{^Jg=manichaeanayin}', "");
     Expect(1, 68314, '\p{Jg=:\Amanichaeanayin\z:}', "");;
     Expect(0, 68315, '\p{Jg=:\Amanichaeanayin\z:}', "");;
-    Expect(1, 68314, '\p{Jg=-Manichaean_AYIN}', "");
-    Expect(0, 68314, '\p{^Jg=-Manichaean_AYIN}', "");
-    Expect(0, 68314, '\P{Jg=-Manichaean_AYIN}', "");
-    Expect(1, 68314, '\P{^Jg=-Manichaean_AYIN}', "");
-    Expect(0, 68315, '\p{Jg=-Manichaean_AYIN}', "");
-    Expect(1, 68315, '\p{^Jg=-Manichaean_AYIN}', "");
-    Expect(1, 68315, '\P{Jg=-Manichaean_AYIN}', "");
-    Expect(0, 68315, '\P{^Jg=-Manichaean_AYIN}', "");
-    Error('\p{Is_Joining_Group=	/a/manichaean_AYIN}');
-    Error('\P{Is_Joining_Group=	/a/manichaean_AYIN}');
+    Expect(1, 68314, '\p{Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(0, 68314, '\p{^Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(0, 68314, '\P{Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(1, 68314, '\P{^Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(0, 68315, '\p{Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(1, 68315, '\p{^Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(1, 68315, '\P{Jg=_	MANICHAEAN_Ayin}', "");
+    Expect(0, 68315, '\P{^Jg=_	MANICHAEAN_Ayin}', "");
+    Error('\p{Is_Joining_Group=_	Manichaean_ayin/a/}');
+    Error('\P{Is_Joining_Group=_	Manichaean_ayin/a/}');
     Expect(1, 68314, '\p{Is_Joining_Group=manichaeanayin}', "");
     Expect(0, 68314, '\p{^Is_Joining_Group=manichaeanayin}', "");
     Expect(0, 68314, '\P{Is_Joining_Group=manichaeanayin}', "");
@@ -56361,16 +56967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68315, '\p{^Is_Joining_Group=manichaeanayin}', "");
     Expect(1, 68315, '\P{Is_Joining_Group=manichaeanayin}', "");
     Expect(0, 68315, '\P{^Is_Joining_Group=manichaeanayin}', "");
-    Expect(1, 68314, '\p{Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(0, 68314, '\p{^Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(0, 68314, '\P{Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(1, 68314, '\P{^Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(0, 68315, '\p{Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(1, 68315, '\p{^Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(1, 68315, '\P{Is_Joining_Group=		Manichaean_AYIN}', "");
-    Expect(0, 68315, '\P{^Is_Joining_Group=		Manichaean_AYIN}', "");
-    Error('\p{Is_Jg=:=  Manichaean_Ayin}');
-    Error('\P{Is_Jg=:=  Manichaean_Ayin}');
+    Expect(1, 68314, '\p{Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(0, 68314, '\p{^Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(0, 68314, '\P{Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(1, 68314, '\P{^Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(0, 68315, '\p{Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(1, 68315, '\p{^Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(1, 68315, '\P{Is_Joining_Group=-Manichaean_Ayin}', "");
+    Expect(0, 68315, '\P{^Is_Joining_Group=-Manichaean_Ayin}', "");
+    Error('\p{Is_Jg=/a/_-Manichaean_Ayin}');
+    Error('\P{Is_Jg=/a/_-Manichaean_Ayin}');
     Expect(1, 68314, '\p{Is_Jg=manichaeanayin}', "");
     Expect(0, 68314, '\p{^Is_Jg=manichaeanayin}', "");
     Expect(0, 68314, '\P{Is_Jg=manichaeanayin}', "");
@@ -56379,38 +56985,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68315, '\p{^Is_Jg=manichaeanayin}', "");
     Expect(1, 68315, '\P{Is_Jg=manichaeanayin}', "");
     Expect(0, 68315, '\P{^Is_Jg=manichaeanayin}', "");
-    Expect(1, 68314, '\p{Is_Jg=Manichaean_AYIN}', "");
-    Expect(0, 68314, '\p{^Is_Jg=Manichaean_AYIN}', "");
-    Expect(0, 68314, '\P{Is_Jg=Manichaean_AYIN}', "");
-    Expect(1, 68314, '\P{^Is_Jg=Manichaean_AYIN}', "");
-    Expect(0, 68315, '\p{Is_Jg=Manichaean_AYIN}', "");
-    Expect(1, 68315, '\p{^Is_Jg=Manichaean_AYIN}', "");
-    Expect(1, 68315, '\P{Is_Jg=Manichaean_AYIN}', "");
-    Expect(0, 68315, '\P{^Is_Jg=Manichaean_AYIN}', "");
-    Error('\p{Joining_Group=__MANICHAEAN_Beth/a/}');
-    Error('\P{Joining_Group=__MANICHAEAN_Beth/a/}');
+    Expect(1, 68314, '\p{Is_Jg= _Manichaean_Ayin}', "");
+    Expect(0, 68314, '\p{^Is_Jg= _Manichaean_Ayin}', "");
+    Expect(0, 68314, '\P{Is_Jg= _Manichaean_Ayin}', "");
+    Expect(1, 68314, '\P{^Is_Jg= _Manichaean_Ayin}', "");
+    Expect(0, 68315, '\p{Is_Jg= _Manichaean_Ayin}', "");
+    Expect(1, 68315, '\p{^Is_Jg= _Manichaean_Ayin}', "");
+    Expect(1, 68315, '\P{Is_Jg= _Manichaean_Ayin}', "");
+    Expect(0, 68315, '\P{^Is_Jg= _Manichaean_Ayin}', "");
+    Error('\p{Joining_Group=/a/	Manichaean_beth}');
+    Error('\P{Joining_Group=/a/	Manichaean_beth}');
     Expect(1, 68290, '\p{Joining_Group=:\AManichaean_Beth\z:}', "");;
     Expect(0, 68291, '\p{Joining_Group=:\AManichaean_Beth\z:}', "");;
-    Expect(1, 68290, '\p{Joining_Group:manichaeanbeth}', "");
-    Expect(0, 68290, '\p{^Joining_Group:manichaeanbeth}', "");
-    Expect(0, 68290, '\P{Joining_Group:manichaeanbeth}', "");
-    Expect(1, 68290, '\P{^Joining_Group:manichaeanbeth}', "");
-    Expect(0, 68291, '\p{Joining_Group:manichaeanbeth}', "");
-    Expect(1, 68291, '\p{^Joining_Group:manichaeanbeth}', "");
-    Expect(1, 68291, '\P{Joining_Group:manichaeanbeth}', "");
-    Expect(0, 68291, '\P{^Joining_Group:manichaeanbeth}', "");
+    Expect(1, 68290, '\p{Joining_Group=manichaeanbeth}', "");
+    Expect(0, 68290, '\p{^Joining_Group=manichaeanbeth}', "");
+    Expect(0, 68290, '\P{Joining_Group=manichaeanbeth}', "");
+    Expect(1, 68290, '\P{^Joining_Group=manichaeanbeth}', "");
+    Expect(0, 68291, '\p{Joining_Group=manichaeanbeth}', "");
+    Expect(1, 68291, '\p{^Joining_Group=manichaeanbeth}', "");
+    Expect(1, 68291, '\P{Joining_Group=manichaeanbeth}', "");
+    Expect(0, 68291, '\P{^Joining_Group=manichaeanbeth}', "");
     Expect(1, 68290, '\p{Joining_Group=:\Amanichaeanbeth\z:}', "");;
     Expect(0, 68291, '\p{Joining_Group=:\Amanichaeanbeth\z:}', "");;
-    Expect(1, 68290, '\p{Joining_Group=_manichaean_beth}', "");
-    Expect(0, 68290, '\p{^Joining_Group=_manichaean_beth}', "");
-    Expect(0, 68290, '\P{Joining_Group=_manichaean_beth}', "");
-    Expect(1, 68290, '\P{^Joining_Group=_manichaean_beth}', "");
-    Expect(0, 68291, '\p{Joining_Group=_manichaean_beth}', "");
-    Expect(1, 68291, '\p{^Joining_Group=_manichaean_beth}', "");
-    Expect(1, 68291, '\P{Joining_Group=_manichaean_beth}', "");
-    Expect(0, 68291, '\P{^Joining_Group=_manichaean_beth}', "");
-    Error('\p{Jg=-/a/Manichaean_BETH}');
-    Error('\P{Jg=-/a/Manichaean_BETH}');
+    Expect(1, 68290, '\p{Joining_Group=MANICHAEAN_beth}', "");
+    Expect(0, 68290, '\p{^Joining_Group=MANICHAEAN_beth}', "");
+    Expect(0, 68290, '\P{Joining_Group=MANICHAEAN_beth}', "");
+    Expect(1, 68290, '\P{^Joining_Group=MANICHAEAN_beth}', "");
+    Expect(0, 68291, '\p{Joining_Group=MANICHAEAN_beth}', "");
+    Expect(1, 68291, '\p{^Joining_Group=MANICHAEAN_beth}', "");
+    Expect(1, 68291, '\P{Joining_Group=MANICHAEAN_beth}', "");
+    Expect(0, 68291, '\P{^Joining_Group=MANICHAEAN_beth}', "");
+    Error('\p{Jg:   /a/-_Manichaean_Beth}');
+    Error('\P{Jg:   /a/-_Manichaean_Beth}');
     Expect(1, 68290, '\p{Jg=:\AManichaean_Beth\z:}', "");;
     Expect(0, 68291, '\p{Jg=:\AManichaean_Beth\z:}', "");;
     Expect(1, 68290, '\p{Jg=manichaeanbeth}', "");
@@ -56423,34 +57029,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68291, '\P{^Jg=manichaeanbeth}', "");
     Expect(1, 68290, '\p{Jg=:\Amanichaeanbeth\z:}', "");;
     Expect(0, 68291, '\p{Jg=:\Amanichaeanbeth\z:}', "");;
-    Expect(1, 68290, '\p{Jg=  Manichaean_Beth}', "");
-    Expect(0, 68290, '\p{^Jg=  Manichaean_Beth}', "");
-    Expect(0, 68290, '\P{Jg=  Manichaean_Beth}', "");
-    Expect(1, 68290, '\P{^Jg=  Manichaean_Beth}', "");
-    Expect(0, 68291, '\p{Jg=  Manichaean_Beth}', "");
-    Expect(1, 68291, '\p{^Jg=  Manichaean_Beth}', "");
-    Expect(1, 68291, '\P{Jg=  Manichaean_Beth}', "");
-    Expect(0, 68291, '\P{^Jg=  Manichaean_Beth}', "");
-    Error('\p{Is_Joining_Group=:=Manichaean_Beth}');
-    Error('\P{Is_Joining_Group=:=Manichaean_Beth}');
-    Expect(1, 68290, '\p{Is_Joining_Group: manichaeanbeth}', "");
-    Expect(0, 68290, '\p{^Is_Joining_Group: manichaeanbeth}', "");
-    Expect(0, 68290, '\P{Is_Joining_Group: manichaeanbeth}', "");
-    Expect(1, 68290, '\P{^Is_Joining_Group: manichaeanbeth}', "");
-    Expect(0, 68291, '\p{Is_Joining_Group: manichaeanbeth}', "");
-    Expect(1, 68291, '\p{^Is_Joining_Group: manichaeanbeth}', "");
-    Expect(1, 68291, '\P{Is_Joining_Group: manichaeanbeth}', "");
-    Expect(0, 68291, '\P{^Is_Joining_Group: manichaeanbeth}', "");
-    Expect(1, 68290, '\p{Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(0, 68290, '\p{^Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(0, 68290, '\P{Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(1, 68290, '\P{^Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(0, 68291, '\p{Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(1, 68291, '\p{^Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(1, 68291, '\P{Is_Joining_Group=_Manichaean_Beth}', "");
-    Expect(0, 68291, '\P{^Is_Joining_Group=_Manichaean_Beth}', "");
-    Error('\p{Is_Jg=/a/- MANICHAEAN_Beth}');
-    Error('\P{Is_Jg=/a/- MANICHAEAN_Beth}');
+    Expect(1, 68290, '\p{Jg: -	Manichaean_BETH}', "");
+    Expect(0, 68290, '\p{^Jg: -	Manichaean_BETH}', "");
+    Expect(0, 68290, '\P{Jg: -	Manichaean_BETH}', "");
+    Expect(1, 68290, '\P{^Jg: -	Manichaean_BETH}', "");
+    Expect(0, 68291, '\p{Jg: -	Manichaean_BETH}', "");
+    Expect(1, 68291, '\p{^Jg: -	Manichaean_BETH}', "");
+    Expect(1, 68291, '\P{Jg: -	Manichaean_BETH}', "");
+    Expect(0, 68291, '\P{^Jg: -	Manichaean_BETH}', "");
+    Error('\p{Is_Joining_Group=-	Manichaean_Beth:=}');
+    Error('\P{Is_Joining_Group=-	Manichaean_Beth:=}');
+    Expect(1, 68290, '\p{Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(0, 68290, '\p{^Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(0, 68290, '\P{Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(1, 68290, '\P{^Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(0, 68291, '\p{Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(1, 68291, '\p{^Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(1, 68291, '\P{Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(0, 68291, '\P{^Is_Joining_Group:	manichaeanbeth}', "");
+    Expect(1, 68290, '\p{Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(0, 68290, '\p{^Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(0, 68290, '\P{Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(1, 68290, '\P{^Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(0, 68291, '\p{Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(1, 68291, '\p{^Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(1, 68291, '\P{Is_Joining_Group: 	Manichaean_BETH}', "");
+    Expect(0, 68291, '\P{^Is_Joining_Group: 	Manichaean_BETH}', "");
+    Error('\p{Is_Jg=_-Manichaean_beth/a/}');
+    Error('\P{Is_Jg=_-Manichaean_beth/a/}');
     Expect(1, 68290, '\p{Is_Jg=manichaeanbeth}', "");
     Expect(0, 68290, '\p{^Is_Jg=manichaeanbeth}', "");
     Expect(0, 68290, '\P{Is_Jg=manichaeanbeth}', "");
@@ -56459,16 +57065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68291, '\p{^Is_Jg=manichaeanbeth}', "");
     Expect(1, 68291, '\P{Is_Jg=manichaeanbeth}', "");
     Expect(0, 68291, '\P{^Is_Jg=manichaeanbeth}', "");
-    Expect(1, 68290, '\p{Is_Jg=_ manichaean_Beth}', "");
-    Expect(0, 68290, '\p{^Is_Jg=_ manichaean_Beth}', "");
-    Expect(0, 68290, '\P{Is_Jg=_ manichaean_Beth}', "");
-    Expect(1, 68290, '\P{^Is_Jg=_ manichaean_Beth}', "");
-    Expect(0, 68291, '\p{Is_Jg=_ manichaean_Beth}', "");
-    Expect(1, 68291, '\p{^Is_Jg=_ manichaean_Beth}', "");
-    Expect(1, 68291, '\P{Is_Jg=_ manichaean_Beth}', "");
-    Expect(0, 68291, '\P{^Is_Jg=_ manichaean_Beth}', "");
-    Error('\p{Joining_Group=-_manichaean_Daleth:=}');
-    Error('\P{Joining_Group=-_manichaean_Daleth:=}');
+    Expect(1, 68290, '\p{Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(0, 68290, '\p{^Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(0, 68290, '\P{Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(1, 68290, '\P{^Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(0, 68291, '\p{Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(1, 68291, '\p{^Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(1, 68291, '\P{Is_Jg=_MANICHAEAN_Beth}', "");
+    Expect(0, 68291, '\P{^Is_Jg=_MANICHAEAN_Beth}', "");
+    Error('\p{Joining_Group=:=	 MANICHAEAN_Daleth}');
+    Error('\P{Joining_Group=:=	 MANICHAEAN_Daleth}');
     Expect(1, 68293, '\p{Joining_Group=:\AManichaean_Daleth\z:}', "");;
     Expect(0, 68294, '\p{Joining_Group=:\AManichaean_Daleth\z:}', "");;
     Expect(1, 68293, '\p{Joining_Group=manichaeandaleth}', "");
@@ -56481,16 +57087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68294, '\P{^Joining_Group=manichaeandaleth}', "");
     Expect(1, 68293, '\p{Joining_Group=:\Amanichaeandaleth\z:}', "");;
     Expect(0, 68294, '\p{Joining_Group=:\Amanichaeandaleth\z:}', "");;
-    Expect(1, 68293, '\p{Joining_Group=_-manichaean_Daleth}', "");
-    Expect(0, 68293, '\p{^Joining_Group=_-manichaean_Daleth}', "");
-    Expect(0, 68293, '\P{Joining_Group=_-manichaean_Daleth}', "");
-    Expect(1, 68293, '\P{^Joining_Group=_-manichaean_Daleth}', "");
-    Expect(0, 68294, '\p{Joining_Group=_-manichaean_Daleth}', "");
-    Expect(1, 68294, '\p{^Joining_Group=_-manichaean_Daleth}', "");
-    Expect(1, 68294, '\P{Joining_Group=_-manichaean_Daleth}', "");
-    Expect(0, 68294, '\P{^Joining_Group=_-manichaean_Daleth}', "");
-    Error('\p{Jg=_-Manichaean_DALETH/a/}');
-    Error('\P{Jg=_-Manichaean_DALETH/a/}');
+    Expect(1, 68293, '\p{Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(0, 68293, '\p{^Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(0, 68293, '\P{Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(1, 68293, '\P{^Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(0, 68294, '\p{Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(1, 68294, '\p{^Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(1, 68294, '\P{Joining_Group=- MANICHAEAN_Daleth}', "");
+    Expect(0, 68294, '\P{^Joining_Group=- MANICHAEAN_Daleth}', "");
+    Error('\p{Jg=	 Manichaean_Daleth/a/}');
+    Error('\P{Jg=	 Manichaean_Daleth/a/}');
     Expect(1, 68293, '\p{Jg=:\AManichaean_Daleth\z:}', "");;
     Expect(0, 68294, '\p{Jg=:\AManichaean_Daleth\z:}', "");;
     Expect(1, 68293, '\p{Jg=manichaeandaleth}', "");
@@ -56503,34 +57109,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68294, '\P{^Jg=manichaeandaleth}', "");
     Expect(1, 68293, '\p{Jg=:\Amanichaeandaleth\z:}', "");;
     Expect(0, 68294, '\p{Jg=:\Amanichaeandaleth\z:}', "");;
-    Expect(1, 68293, '\p{Jg=_Manichaean_Daleth}', "");
-    Expect(0, 68293, '\p{^Jg=_Manichaean_Daleth}', "");
-    Expect(0, 68293, '\P{Jg=_Manichaean_Daleth}', "");
-    Expect(1, 68293, '\P{^Jg=_Manichaean_Daleth}', "");
-    Expect(0, 68294, '\p{Jg=_Manichaean_Daleth}', "");
-    Expect(1, 68294, '\p{^Jg=_Manichaean_Daleth}', "");
-    Expect(1, 68294, '\P{Jg=_Manichaean_Daleth}', "");
-    Expect(0, 68294, '\P{^Jg=_Manichaean_Daleth}', "");
-    Error('\p{Is_Joining_Group=/a/-_manichaean_daleth}');
-    Error('\P{Is_Joining_Group=/a/-_manichaean_daleth}');
-    Expect(1, 68293, '\p{Is_Joining_Group: manichaeandaleth}', "");
-    Expect(0, 68293, '\p{^Is_Joining_Group: manichaeandaleth}', "");
-    Expect(0, 68293, '\P{Is_Joining_Group: manichaeandaleth}', "");
-    Expect(1, 68293, '\P{^Is_Joining_Group: manichaeandaleth}', "");
-    Expect(0, 68294, '\p{Is_Joining_Group: manichaeandaleth}', "");
-    Expect(1, 68294, '\p{^Is_Joining_Group: manichaeandaleth}', "");
-    Expect(1, 68294, '\P{Is_Joining_Group: manichaeandaleth}', "");
-    Expect(0, 68294, '\P{^Is_Joining_Group: manichaeandaleth}', "");
-    Expect(1, 68293, '\p{Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(0, 68293, '\p{^Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(0, 68293, '\P{Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(1, 68293, '\P{^Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(0, 68294, '\p{Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(1, 68294, '\p{^Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(1, 68294, '\P{Is_Joining_Group=--manichaean_Daleth}', "");
-    Expect(0, 68294, '\P{^Is_Joining_Group=--manichaean_Daleth}', "");
-    Error('\p{Is_Jg=:=-MANICHAEAN_daleth}');
-    Error('\P{Is_Jg=:=-MANICHAEAN_daleth}');
+    Expect(1, 68293, '\p{Jg=--Manichaean_DALETH}', "");
+    Expect(0, 68293, '\p{^Jg=--Manichaean_DALETH}', "");
+    Expect(0, 68293, '\P{Jg=--Manichaean_DALETH}', "");
+    Expect(1, 68293, '\P{^Jg=--Manichaean_DALETH}', "");
+    Expect(0, 68294, '\p{Jg=--Manichaean_DALETH}', "");
+    Expect(1, 68294, '\p{^Jg=--Manichaean_DALETH}', "");
+    Expect(1, 68294, '\P{Jg=--Manichaean_DALETH}', "");
+    Expect(0, 68294, '\P{^Jg=--Manichaean_DALETH}', "");
+    Error('\p{Is_Joining_Group: __Manichaean_DALETH:=}');
+    Error('\P{Is_Joining_Group: __Manichaean_DALETH:=}');
+    Expect(1, 68293, '\p{Is_Joining_Group=manichaeandaleth}', "");
+    Expect(0, 68293, '\p{^Is_Joining_Group=manichaeandaleth}', "");
+    Expect(0, 68293, '\P{Is_Joining_Group=manichaeandaleth}', "");
+    Expect(1, 68293, '\P{^Is_Joining_Group=manichaeandaleth}', "");
+    Expect(0, 68294, '\p{Is_Joining_Group=manichaeandaleth}', "");
+    Expect(1, 68294, '\p{^Is_Joining_Group=manichaeandaleth}', "");
+    Expect(1, 68294, '\P{Is_Joining_Group=manichaeandaleth}', "");
+    Expect(0, 68294, '\P{^Is_Joining_Group=manichaeandaleth}', "");
+    Expect(1, 68293, '\p{Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(0, 68293, '\p{^Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(0, 68293, '\P{Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(1, 68293, '\P{^Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(0, 68294, '\p{Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(1, 68294, '\p{^Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(1, 68294, '\P{Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Expect(0, 68294, '\P{^Is_Joining_Group=-MANICHAEAN_Daleth}', "");
+    Error('\p{Is_Jg=_Manichaean_Daleth/a/}');
+    Error('\P{Is_Jg=_Manichaean_Daleth/a/}');
     Expect(1, 68293, '\p{Is_Jg=manichaeandaleth}', "");
     Expect(0, 68293, '\p{^Is_Jg=manichaeandaleth}', "");
     Expect(0, 68293, '\P{Is_Jg=manichaeandaleth}', "");
@@ -56539,16 +57145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68294, '\p{^Is_Jg=manichaeandaleth}', "");
     Expect(1, 68294, '\P{Is_Jg=manichaeandaleth}', "");
     Expect(0, 68294, '\P{^Is_Jg=manichaeandaleth}', "");
-    Expect(1, 68293, '\p{Is_Jg=- manichaean_DALETH}', "");
-    Expect(0, 68293, '\p{^Is_Jg=- manichaean_DALETH}', "");
-    Expect(0, 68293, '\P{Is_Jg=- manichaean_DALETH}', "");
-    Expect(1, 68293, '\P{^Is_Jg=- manichaean_DALETH}', "");
-    Expect(0, 68294, '\p{Is_Jg=- manichaean_DALETH}', "");
-    Expect(1, 68294, '\p{^Is_Jg=- manichaean_DALETH}', "");
-    Expect(1, 68294, '\P{Is_Jg=- manichaean_DALETH}', "");
-    Expect(0, 68294, '\P{^Is_Jg=- manichaean_DALETH}', "");
-    Error('\p{Joining_Group=_/a/Manichaean_DHAMEDH}');
-    Error('\P{Joining_Group=_/a/Manichaean_DHAMEDH}');
+    Expect(1, 68293, '\p{Is_Jg=--Manichaean_Daleth}', "");
+    Expect(0, 68293, '\p{^Is_Jg=--Manichaean_Daleth}', "");
+    Expect(0, 68293, '\P{Is_Jg=--Manichaean_Daleth}', "");
+    Expect(1, 68293, '\P{^Is_Jg=--Manichaean_Daleth}', "");
+    Expect(0, 68294, '\p{Is_Jg=--Manichaean_Daleth}', "");
+    Expect(1, 68294, '\p{^Is_Jg=--Manichaean_Daleth}', "");
+    Expect(1, 68294, '\P{Is_Jg=--Manichaean_Daleth}', "");
+    Expect(0, 68294, '\P{^Is_Jg=--Manichaean_Daleth}', "");
+    Error('\p{Joining_Group=/a/ manichaean_dhamedh}');
+    Error('\P{Joining_Group=/a/ manichaean_dhamedh}');
     Expect(1, 68308, '\p{Joining_Group=:\AManichaean_Dhamedh\z:}', "");;
     Expect(0, 68309, '\p{Joining_Group=:\AManichaean_Dhamedh\z:}', "");;
     Expect(1, 68308, '\p{Joining_Group=manichaeandhamedh}', "");
@@ -56561,16 +57167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68309, '\P{^Joining_Group=manichaeandhamedh}', "");
     Expect(1, 68308, '\p{Joining_Group=:\Amanichaeandhamedh\z:}', "");;
     Expect(0, 68309, '\p{Joining_Group=:\Amanichaeandhamedh\z:}', "");;
-    Expect(1, 68308, '\p{Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68308, '\p{^Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68308, '\P{Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(1, 68308, '\P{^Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68309, '\p{Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(1, 68309, '\p{^Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(1, 68309, '\P{Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68309, '\P{^Joining_Group=	_MANICHAEAN_Dhamedh}', "");
-    Error('\p{Jg=:=-	manichaean_dhamedh}');
-    Error('\P{Jg=:=-	manichaean_dhamedh}');
+    Expect(1, 68308, '\p{Joining_Group= manichaean_Dhamedh}', "");
+    Expect(0, 68308, '\p{^Joining_Group= manichaean_Dhamedh}', "");
+    Expect(0, 68308, '\P{Joining_Group= manichaean_Dhamedh}', "");
+    Expect(1, 68308, '\P{^Joining_Group= manichaean_Dhamedh}', "");
+    Expect(0, 68309, '\p{Joining_Group= manichaean_Dhamedh}', "");
+    Expect(1, 68309, '\p{^Joining_Group= manichaean_Dhamedh}', "");
+    Expect(1, 68309, '\P{Joining_Group= manichaean_Dhamedh}', "");
+    Expect(0, 68309, '\P{^Joining_Group= manichaean_Dhamedh}', "");
+    Error('\p{Jg=	-MANICHAEAN_DHAMEDH:=}');
+    Error('\P{Jg=	-MANICHAEAN_DHAMEDH:=}');
     Expect(1, 68308, '\p{Jg=:\AManichaean_Dhamedh\z:}', "");;
     Expect(0, 68309, '\p{Jg=:\AManichaean_Dhamedh\z:}', "");;
     Expect(1, 68308, '\p{Jg=manichaeandhamedh}', "");
@@ -56583,16 +57189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68309, '\P{^Jg=manichaeandhamedh}', "");
     Expect(1, 68308, '\p{Jg=:\Amanichaeandhamedh\z:}', "");;
     Expect(0, 68309, '\p{Jg=:\Amanichaeandhamedh\z:}', "");;
-    Expect(1, 68308, '\p{Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(0, 68308, '\p{^Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(0, 68308, '\P{Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(1, 68308, '\P{^Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(0, 68309, '\p{Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(1, 68309, '\p{^Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(1, 68309, '\P{Jg=		MANICHAEAN_dhamedh}', "");
-    Expect(0, 68309, '\P{^Jg=		MANICHAEAN_dhamedh}', "");
-    Error('\p{Is_Joining_Group=/a/-MANICHAEAN_Dhamedh}');
-    Error('\P{Is_Joining_Group=/a/-MANICHAEAN_Dhamedh}');
+    Expect(1, 68308, '\p{Jg=-_Manichaean_dhamedh}', "");
+    Expect(0, 68308, '\p{^Jg=-_Manichaean_dhamedh}', "");
+    Expect(0, 68308, '\P{Jg=-_Manichaean_dhamedh}', "");
+    Expect(1, 68308, '\P{^Jg=-_Manichaean_dhamedh}', "");
+    Expect(0, 68309, '\p{Jg=-_Manichaean_dhamedh}', "");
+    Expect(1, 68309, '\p{^Jg=-_Manichaean_dhamedh}', "");
+    Expect(1, 68309, '\P{Jg=-_Manichaean_dhamedh}', "");
+    Expect(0, 68309, '\P{^Jg=-_Manichaean_dhamedh}', "");
+    Error('\p{Is_Joining_Group=:=	 Manichaean_dhamedh}');
+    Error('\P{Is_Joining_Group=:=	 Manichaean_dhamedh}');
     Expect(1, 68308, '\p{Is_Joining_Group=manichaeandhamedh}', "");
     Expect(0, 68308, '\p{^Is_Joining_Group=manichaeandhamedh}', "");
     Expect(0, 68308, '\P{Is_Joining_Group=manichaeandhamedh}', "");
@@ -56601,16 +57207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68309, '\p{^Is_Joining_Group=manichaeandhamedh}', "");
     Expect(1, 68309, '\P{Is_Joining_Group=manichaeandhamedh}', "");
     Expect(0, 68309, '\P{^Is_Joining_Group=manichaeandhamedh}', "");
-    Expect(1, 68308, '\p{Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(0, 68308, '\p{^Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(0, 68308, '\P{Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(1, 68308, '\P{^Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(0, 68309, '\p{Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(1, 68309, '\p{^Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(1, 68309, '\P{Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Expect(0, 68309, '\P{^Is_Joining_Group=	_Manichaean_dhamedh}', "");
-    Error('\p{Is_Jg=	MANICHAEAN_dhamedh/a/}');
-    Error('\P{Is_Jg=	MANICHAEAN_dhamedh/a/}');
+    Expect(1, 68308, '\p{Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(0, 68308, '\p{^Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(0, 68308, '\P{Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(1, 68308, '\P{^Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(0, 68309, '\p{Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(1, 68309, '\p{^Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(1, 68309, '\P{Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Expect(0, 68309, '\P{^Is_Joining_Group=-MANICHAEAN_Dhamedh}', "");
+    Error('\p{Is_Jg=:=manichaean_Dhamedh}');
+    Error('\P{Is_Jg=:=manichaean_Dhamedh}');
     Expect(1, 68308, '\p{Is_Jg=manichaeandhamedh}', "");
     Expect(0, 68308, '\p{^Is_Jg=manichaeandhamedh}', "");
     Expect(0, 68308, '\P{Is_Jg=manichaeandhamedh}', "");
@@ -56619,16 +57225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68309, '\p{^Is_Jg=manichaeandhamedh}', "");
     Expect(1, 68309, '\P{Is_Jg=manichaeandhamedh}', "");
     Expect(0, 68309, '\P{^Is_Jg=manichaeandhamedh}', "");
-    Expect(1, 68308, '\p{Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68308, '\p{^Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68308, '\P{Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(1, 68308, '\P{^Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68309, '\p{Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(1, 68309, '\p{^Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(1, 68309, '\P{Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Expect(0, 68309, '\P{^Is_Jg: _MANICHAEAN_Dhamedh}', "");
-    Error('\p{Joining_Group:		/a/manichaean_Five}');
-    Error('\P{Joining_Group:		/a/manichaean_Five}');
+    Expect(1, 68308, '\p{Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(0, 68308, '\p{^Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(0, 68308, '\P{Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(1, 68308, '\P{^Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(0, 68309, '\p{Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(1, 68309, '\p{^Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(1, 68309, '\P{Is_Jg= -Manichaean_Dhamedh}', "");
+    Expect(0, 68309, '\P{^Is_Jg= -Manichaean_Dhamedh}', "");
+    Error('\p{Joining_Group:	:=Manichaean_five}');
+    Error('\P{Joining_Group:	:=Manichaean_five}');
     Expect(1, 68332, '\p{Joining_Group=:\AManichaean_Five\z:}', "");;
     Expect(0, 68333, '\p{Joining_Group=:\AManichaean_Five\z:}', "");;
     Expect(1, 68332, '\p{Joining_Group=manichaeanfive}', "");
@@ -56641,16 +57247,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68333, '\P{^Joining_Group=manichaeanfive}', "");
     Expect(1, 68332, '\p{Joining_Group=:\Amanichaeanfive\z:}', "");;
     Expect(0, 68333, '\p{Joining_Group=:\Amanichaeanfive\z:}', "");;
-    Expect(1, 68332, '\p{Joining_Group=	manichaean_Five}', "");
-    Expect(0, 68332, '\p{^Joining_Group=	manichaean_Five}', "");
-    Expect(0, 68332, '\P{Joining_Group=	manichaean_Five}', "");
-    Expect(1, 68332, '\P{^Joining_Group=	manichaean_Five}', "");
-    Expect(0, 68333, '\p{Joining_Group=	manichaean_Five}', "");
-    Expect(1, 68333, '\p{^Joining_Group=	manichaean_Five}', "");
-    Expect(1, 68333, '\P{Joining_Group=	manichaean_Five}', "");
-    Expect(0, 68333, '\P{^Joining_Group=	manichaean_Five}', "");
-    Error('\p{Jg=	:=Manichaean_FIVE}');
-    Error('\P{Jg=	:=Manichaean_FIVE}');
+    Expect(1, 68332, '\p{Joining_Group=  manichaean_Five}', "");
+    Expect(0, 68332, '\p{^Joining_Group=  manichaean_Five}', "");
+    Expect(0, 68332, '\P{Joining_Group=  manichaean_Five}', "");
+    Expect(1, 68332, '\P{^Joining_Group=  manichaean_Five}', "");
+    Expect(0, 68333, '\p{Joining_Group=  manichaean_Five}', "");
+    Expect(1, 68333, '\p{^Joining_Group=  manichaean_Five}', "");
+    Expect(1, 68333, '\P{Joining_Group=  manichaean_Five}', "");
+    Expect(0, 68333, '\P{^Joining_Group=  manichaean_Five}', "");
+    Error('\p{Jg=_Manichaean_Five:=}');
+    Error('\P{Jg=_Manichaean_Five:=}');
     Expect(1, 68332, '\p{Jg=:\AManichaean_Five\z:}', "");;
     Expect(0, 68333, '\p{Jg=:\AManichaean_Five\z:}', "");;
     Expect(1, 68332, '\p{Jg=manichaeanfive}', "");
@@ -56663,16 +57269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68333, '\P{^Jg=manichaeanfive}', "");
     Expect(1, 68332, '\p{Jg=:\Amanichaeanfive\z:}', "");;
     Expect(0, 68333, '\p{Jg=:\Amanichaeanfive\z:}', "");;
-    Expect(1, 68332, '\p{Jg: 	Manichaean_Five}', "");
-    Expect(0, 68332, '\p{^Jg: 	Manichaean_Five}', "");
-    Expect(0, 68332, '\P{Jg: 	Manichaean_Five}', "");
-    Expect(1, 68332, '\P{^Jg: 	Manichaean_Five}', "");
-    Expect(0, 68333, '\p{Jg: 	Manichaean_Five}', "");
-    Expect(1, 68333, '\p{^Jg: 	Manichaean_Five}', "");
-    Expect(1, 68333, '\P{Jg: 	Manichaean_Five}', "");
-    Expect(0, 68333, '\P{^Jg: 	Manichaean_Five}', "");
-    Error('\p{Is_Joining_Group=:=	MANICHAEAN_Five}');
-    Error('\P{Is_Joining_Group=:=	MANICHAEAN_Five}');
+    Expect(1, 68332, '\p{Jg=_manichaean_five}', "");
+    Expect(0, 68332, '\p{^Jg=_manichaean_five}', "");
+    Expect(0, 68332, '\P{Jg=_manichaean_five}', "");
+    Expect(1, 68332, '\P{^Jg=_manichaean_five}', "");
+    Expect(0, 68333, '\p{Jg=_manichaean_five}', "");
+    Expect(1, 68333, '\p{^Jg=_manichaean_five}', "");
+    Expect(1, 68333, '\P{Jg=_manichaean_five}', "");
+    Expect(0, 68333, '\P{^Jg=_manichaean_five}', "");
+    Error('\p{Is_Joining_Group=:=  manichaean_Five}');
+    Error('\P{Is_Joining_Group=:=  manichaean_Five}');
     Expect(1, 68332, '\p{Is_Joining_Group=manichaeanfive}', "");
     Expect(0, 68332, '\p{^Is_Joining_Group=manichaeanfive}', "");
     Expect(0, 68332, '\P{Is_Joining_Group=manichaeanfive}', "");
@@ -56681,34 +57287,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68333, '\p{^Is_Joining_Group=manichaeanfive}', "");
     Expect(1, 68333, '\P{Is_Joining_Group=manichaeanfive}', "");
     Expect(0, 68333, '\P{^Is_Joining_Group=manichaeanfive}', "");
-    Expect(1, 68332, '\p{Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(0, 68332, '\p{^Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(0, 68332, '\P{Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(1, 68332, '\P{^Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(0, 68333, '\p{Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(1, 68333, '\p{^Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(1, 68333, '\P{Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Expect(0, 68333, '\P{^Is_Joining_Group= MANICHAEAN_FIVE}', "");
-    Error('\p{Is_Jg: manichaean_five/a/}');
-    Error('\P{Is_Jg: manichaean_five/a/}');
-    Expect(1, 68332, '\p{Is_Jg=manichaeanfive}', "");
-    Expect(0, 68332, '\p{^Is_Jg=manichaeanfive}', "");
-    Expect(0, 68332, '\P{Is_Jg=manichaeanfive}', "");
-    Expect(1, 68332, '\P{^Is_Jg=manichaeanfive}', "");
-    Expect(0, 68333, '\p{Is_Jg=manichaeanfive}', "");
-    Expect(1, 68333, '\p{^Is_Jg=manichaeanfive}', "");
-    Expect(1, 68333, '\P{Is_Jg=manichaeanfive}', "");
-    Expect(0, 68333, '\P{^Is_Jg=manichaeanfive}', "");
-    Expect(1, 68332, '\p{Is_Jg=__Manichaean_Five}', "");
-    Expect(0, 68332, '\p{^Is_Jg=__Manichaean_Five}', "");
-    Expect(0, 68332, '\P{Is_Jg=__Manichaean_Five}', "");
-    Expect(1, 68332, '\P{^Is_Jg=__Manichaean_Five}', "");
-    Expect(0, 68333, '\p{Is_Jg=__Manichaean_Five}', "");
-    Expect(1, 68333, '\p{^Is_Jg=__Manichaean_Five}', "");
-    Expect(1, 68333, '\P{Is_Jg=__Manichaean_Five}', "");
-    Expect(0, 68333, '\P{^Is_Jg=__Manichaean_Five}', "");
-    Error('\p{Joining_Group:   _	manichaean_GIMEL/a/}');
-    Error('\P{Joining_Group:   _	manichaean_GIMEL/a/}');
+    Expect(1, 68332, '\p{Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(0, 68332, '\p{^Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(0, 68332, '\P{Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(1, 68332, '\P{^Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(0, 68333, '\p{Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(1, 68333, '\p{^Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(1, 68333, '\P{Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Expect(0, 68333, '\P{^Is_Joining_Group=	_Manichaean_FIVE}', "");
+    Error('\p{Is_Jg:	:= -MANICHAEAN_FIVE}');
+    Error('\P{Is_Jg:	:= -MANICHAEAN_FIVE}');
+    Expect(1, 68332, '\p{Is_Jg:   manichaeanfive}', "");
+    Expect(0, 68332, '\p{^Is_Jg:   manichaeanfive}', "");
+    Expect(0, 68332, '\P{Is_Jg:   manichaeanfive}', "");
+    Expect(1, 68332, '\P{^Is_Jg:   manichaeanfive}', "");
+    Expect(0, 68333, '\p{Is_Jg:   manichaeanfive}', "");
+    Expect(1, 68333, '\p{^Is_Jg:   manichaeanfive}', "");
+    Expect(1, 68333, '\P{Is_Jg:   manichaeanfive}', "");
+    Expect(0, 68333, '\P{^Is_Jg:   manichaeanfive}', "");
+    Expect(1, 68332, '\p{Is_Jg=	Manichaean_FIVE}', "");
+    Expect(0, 68332, '\p{^Is_Jg=	Manichaean_FIVE}', "");
+    Expect(0, 68332, '\P{Is_Jg=	Manichaean_FIVE}', "");
+    Expect(1, 68332, '\P{^Is_Jg=	Manichaean_FIVE}', "");
+    Expect(0, 68333, '\p{Is_Jg=	Manichaean_FIVE}', "");
+    Expect(1, 68333, '\p{^Is_Jg=	Manichaean_FIVE}', "");
+    Expect(1, 68333, '\P{Is_Jg=	Manichaean_FIVE}', "");
+    Expect(0, 68333, '\P{^Is_Jg=	Manichaean_FIVE}', "");
+    Error('\p{Joining_Group:   -_manichaean_GIMEL:=}');
+    Error('\P{Joining_Group:   -_manichaean_GIMEL:=}');
     Expect(1, 68292, '\p{Joining_Group=:\AManichaean_Gimel\z:}', "");;
     Expect(0, 68293, '\p{Joining_Group=:\AManichaean_Gimel\z:}', "");;
     Expect(1, 68292, '\p{Joining_Group=manichaeangimel}', "");
@@ -56721,38 +57327,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68293, '\P{^Joining_Group=manichaeangimel}', "");
     Expect(1, 68292, '\p{Joining_Group=:\Amanichaeangimel\z:}', "");;
     Expect(0, 68293, '\p{Joining_Group=:\Amanichaeangimel\z:}', "");;
-    Expect(1, 68292, '\p{Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(0, 68292, '\p{^Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(0, 68292, '\P{Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(1, 68292, '\P{^Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(0, 68293, '\p{Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(1, 68293, '\p{^Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(1, 68293, '\P{Joining_Group=	 Manichaean_Gimel}', "");
-    Expect(0, 68293, '\P{^Joining_Group=	 Manichaean_Gimel}', "");
-    Error('\p{Jg=-/a/Manichaean_gimel}');
-    Error('\P{Jg=-/a/Manichaean_gimel}');
+    Expect(1, 68292, '\p{Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(0, 68292, '\p{^Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(0, 68292, '\P{Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(1, 68292, '\P{^Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(0, 68293, '\p{Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(1, 68293, '\p{^Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(1, 68293, '\P{Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Expect(0, 68293, '\P{^Joining_Group=		MANICHAEAN_GIMEL}', "");
+    Error('\p{Jg=	:=manichaean_gimel}');
+    Error('\P{Jg=	:=manichaean_gimel}');
     Expect(1, 68292, '\p{Jg=:\AManichaean_Gimel\z:}', "");;
     Expect(0, 68293, '\p{Jg=:\AManichaean_Gimel\z:}', "");;
-    Expect(1, 68292, '\p{Jg: manichaeangimel}', "");
-    Expect(0, 68292, '\p{^Jg: manichaeangimel}', "");
-    Expect(0, 68292, '\P{Jg: manichaeangimel}', "");
-    Expect(1, 68292, '\P{^Jg: manichaeangimel}', "");
-    Expect(0, 68293, '\p{Jg: manichaeangimel}', "");
-    Expect(1, 68293, '\p{^Jg: manichaeangimel}', "");
-    Expect(1, 68293, '\P{Jg: manichaeangimel}', "");
-    Expect(0, 68293, '\P{^Jg: manichaeangimel}', "");
+    Expect(1, 68292, '\p{Jg=manichaeangimel}', "");
+    Expect(0, 68292, '\p{^Jg=manichaeangimel}', "");
+    Expect(0, 68292, '\P{Jg=manichaeangimel}', "");
+    Expect(1, 68292, '\P{^Jg=manichaeangimel}', "");
+    Expect(0, 68293, '\p{Jg=manichaeangimel}', "");
+    Expect(1, 68293, '\p{^Jg=manichaeangimel}', "");
+    Expect(1, 68293, '\P{Jg=manichaeangimel}', "");
+    Expect(0, 68293, '\P{^Jg=manichaeangimel}', "");
     Expect(1, 68292, '\p{Jg=:\Amanichaeangimel\z:}', "");;
     Expect(0, 68293, '\p{Jg=:\Amanichaeangimel\z:}', "");;
-    Expect(1, 68292, '\p{Jg=manichaean_GIMEL}', "");
-    Expect(0, 68292, '\p{^Jg=manichaean_GIMEL}', "");
-    Expect(0, 68292, '\P{Jg=manichaean_GIMEL}', "");
-    Expect(1, 68292, '\P{^Jg=manichaean_GIMEL}', "");
-    Expect(0, 68293, '\p{Jg=manichaean_GIMEL}', "");
-    Expect(1, 68293, '\p{^Jg=manichaean_GIMEL}', "");
-    Expect(1, 68293, '\P{Jg=manichaean_GIMEL}', "");
-    Expect(0, 68293, '\P{^Jg=manichaean_GIMEL}', "");
-    Error('\p{Is_Joining_Group=	:=MANICHAEAN_gimel}');
-    Error('\P{Is_Joining_Group=	:=MANICHAEAN_gimel}');
+    Expect(1, 68292, '\p{Jg= 	Manichaean_Gimel}', "");
+    Expect(0, 68292, '\p{^Jg= 	Manichaean_Gimel}', "");
+    Expect(0, 68292, '\P{Jg= 	Manichaean_Gimel}', "");
+    Expect(1, 68292, '\P{^Jg= 	Manichaean_Gimel}', "");
+    Expect(0, 68293, '\p{Jg= 	Manichaean_Gimel}', "");
+    Expect(1, 68293, '\p{^Jg= 	Manichaean_Gimel}', "");
+    Expect(1, 68293, '\P{Jg= 	Manichaean_Gimel}', "");
+    Expect(0, 68293, '\P{^Jg= 	Manichaean_Gimel}', "");
+    Error('\p{Is_Joining_Group=/a/MANICHAEAN_gimel}');
+    Error('\P{Is_Joining_Group=/a/MANICHAEAN_gimel}');
     Expect(1, 68292, '\p{Is_Joining_Group=manichaeangimel}', "");
     Expect(0, 68292, '\p{^Is_Joining_Group=manichaeangimel}', "");
     Expect(0, 68292, '\P{Is_Joining_Group=manichaeangimel}', "");
@@ -56761,16 +57367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68293, '\p{^Is_Joining_Group=manichaeangimel}', "");
     Expect(1, 68293, '\P{Is_Joining_Group=manichaeangimel}', "");
     Expect(0, 68293, '\P{^Is_Joining_Group=manichaeangimel}', "");
-    Expect(1, 68292, '\p{Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(0, 68292, '\p{^Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(0, 68292, '\P{Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(1, 68292, '\P{^Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(0, 68293, '\p{Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(1, 68293, '\p{^Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(1, 68293, '\P{Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Expect(0, 68293, '\P{^Is_Joining_Group=	-Manichaean_GIMEL}', "");
-    Error('\p{Is_Jg=:=_	manichaean_GIMEL}');
-    Error('\P{Is_Jg=:=_	manichaean_GIMEL}');
+    Expect(1, 68292, '\p{Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(0, 68292, '\p{^Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(0, 68292, '\P{Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(1, 68292, '\P{^Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(0, 68293, '\p{Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(1, 68293, '\p{^Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(1, 68293, '\P{Is_Joining_Group=-manichaean_Gimel}', "");
+    Expect(0, 68293, '\P{^Is_Joining_Group=-manichaean_Gimel}', "");
+    Error('\p{Is_Jg=:= -Manichaean_Gimel}');
+    Error('\P{Is_Jg=:= -Manichaean_Gimel}');
     Expect(1, 68292, '\p{Is_Jg=manichaeangimel}', "");
     Expect(0, 68292, '\p{^Is_Jg=manichaeangimel}', "");
     Expect(0, 68292, '\P{Is_Jg=manichaeangimel}', "");
@@ -56779,16 +57385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68293, '\p{^Is_Jg=manichaeangimel}', "");
     Expect(1, 68293, '\P{Is_Jg=manichaeangimel}', "");
     Expect(0, 68293, '\P{^Is_Jg=manichaeangimel}', "");
-    Expect(1, 68292, '\p{Is_Jg=-Manichaean_Gimel}', "");
-    Expect(0, 68292, '\p{^Is_Jg=-Manichaean_Gimel}', "");
-    Expect(0, 68292, '\P{Is_Jg=-Manichaean_Gimel}', "");
-    Expect(1, 68292, '\P{^Is_Jg=-Manichaean_Gimel}', "");
-    Expect(0, 68293, '\p{Is_Jg=-Manichaean_Gimel}', "");
-    Expect(1, 68293, '\p{^Is_Jg=-Manichaean_Gimel}', "");
-    Expect(1, 68293, '\P{Is_Jg=-Manichaean_Gimel}', "");
-    Expect(0, 68293, '\P{^Is_Jg=-Manichaean_Gimel}', "");
-    Error('\p{Joining_Group= :=Manichaean_Heth}');
-    Error('\P{Joining_Group= :=Manichaean_Heth}');
+    Expect(1, 68292, '\p{Is_Jg=-manichaean_Gimel}', "");
+    Expect(0, 68292, '\p{^Is_Jg=-manichaean_Gimel}', "");
+    Expect(0, 68292, '\P{Is_Jg=-manichaean_Gimel}', "");
+    Expect(1, 68292, '\P{^Is_Jg=-manichaean_Gimel}', "");
+    Expect(0, 68293, '\p{Is_Jg=-manichaean_Gimel}', "");
+    Expect(1, 68293, '\p{^Is_Jg=-manichaean_Gimel}', "");
+    Expect(1, 68293, '\P{Is_Jg=-manichaean_Gimel}', "");
+    Expect(0, 68293, '\P{^Is_Jg=-manichaean_Gimel}', "");
+    Error('\p{Joining_Group:-_Manichaean_heth:=}');
+    Error('\P{Joining_Group:-_Manichaean_heth:=}');
     Expect(1, 68301, '\p{Joining_Group=:\AManichaean_Heth\z:}', "");;
     Expect(0, 68302, '\p{Joining_Group=:\AManichaean_Heth\z:}', "");;
     Expect(1, 68301, '\p{Joining_Group=manichaeanheth}', "");
@@ -56801,16 +57407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68302, '\P{^Joining_Group=manichaeanheth}', "");
     Expect(1, 68301, '\p{Joining_Group=:\Amanichaeanheth\z:}', "");;
     Expect(0, 68302, '\p{Joining_Group=:\Amanichaeanheth\z:}', "");;
-    Expect(1, 68301, '\p{Joining_Group=-manichaean_heth}', "");
-    Expect(0, 68301, '\p{^Joining_Group=-manichaean_heth}', "");
-    Expect(0, 68301, '\P{Joining_Group=-manichaean_heth}', "");
-    Expect(1, 68301, '\P{^Joining_Group=-manichaean_heth}', "");
-    Expect(0, 68302, '\p{Joining_Group=-manichaean_heth}', "");
-    Expect(1, 68302, '\p{^Joining_Group=-manichaean_heth}', "");
-    Expect(1, 68302, '\P{Joining_Group=-manichaean_heth}', "");
-    Expect(0, 68302, '\P{^Joining_Group=-manichaean_heth}', "");
-    Error('\p{Jg=/a/	-manichaean_heth}');
-    Error('\P{Jg=/a/	-manichaean_heth}');
+    Expect(1, 68301, '\p{Joining_Group=	Manichaean_Heth}', "");
+    Expect(0, 68301, '\p{^Joining_Group=	Manichaean_Heth}', "");
+    Expect(0, 68301, '\P{Joining_Group=	Manichaean_Heth}', "");
+    Expect(1, 68301, '\P{^Joining_Group=	Manichaean_Heth}', "");
+    Expect(0, 68302, '\p{Joining_Group=	Manichaean_Heth}', "");
+    Expect(1, 68302, '\p{^Joining_Group=	Manichaean_Heth}', "");
+    Expect(1, 68302, '\P{Joining_Group=	Manichaean_Heth}', "");
+    Expect(0, 68302, '\P{^Joining_Group=	Manichaean_Heth}', "");
+    Error('\p{Jg:		/a/MANICHAEAN_Heth}');
+    Error('\P{Jg:		/a/MANICHAEAN_Heth}');
     Expect(1, 68301, '\p{Jg=:\AManichaean_Heth\z:}', "");;
     Expect(0, 68302, '\p{Jg=:\AManichaean_Heth\z:}', "");;
     Expect(1, 68301, '\p{Jg=manichaeanheth}', "");
@@ -56823,16 +57429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68302, '\P{^Jg=manichaeanheth}', "");
     Expect(1, 68301, '\p{Jg=:\Amanichaeanheth\z:}', "");;
     Expect(0, 68302, '\p{Jg=:\Amanichaeanheth\z:}', "");;
-    Expect(1, 68301, '\p{Jg=__manichaean_heth}', "");
-    Expect(0, 68301, '\p{^Jg=__manichaean_heth}', "");
-    Expect(0, 68301, '\P{Jg=__manichaean_heth}', "");
-    Expect(1, 68301, '\P{^Jg=__manichaean_heth}', "");
-    Expect(0, 68302, '\p{Jg=__manichaean_heth}', "");
-    Expect(1, 68302, '\p{^Jg=__manichaean_heth}', "");
-    Expect(1, 68302, '\P{Jg=__manichaean_heth}', "");
-    Expect(0, 68302, '\P{^Jg=__manichaean_heth}', "");
-    Error('\p{Is_Joining_Group=-/a/Manichaean_Heth}');
-    Error('\P{Is_Joining_Group=-/a/Manichaean_Heth}');
+    Expect(1, 68301, '\p{Jg=__Manichaean_HETH}', "");
+    Expect(0, 68301, '\p{^Jg=__Manichaean_HETH}', "");
+    Expect(0, 68301, '\P{Jg=__Manichaean_HETH}', "");
+    Expect(1, 68301, '\P{^Jg=__Manichaean_HETH}', "");
+    Expect(0, 68302, '\p{Jg=__Manichaean_HETH}', "");
+    Expect(1, 68302, '\p{^Jg=__Manichaean_HETH}', "");
+    Expect(1, 68302, '\P{Jg=__Manichaean_HETH}', "");
+    Expect(0, 68302, '\P{^Jg=__Manichaean_HETH}', "");
+    Error('\p{Is_Joining_Group=:=-_Manichaean_Heth}');
+    Error('\P{Is_Joining_Group=:=-_Manichaean_Heth}');
     Expect(1, 68301, '\p{Is_Joining_Group=manichaeanheth}', "");
     Expect(0, 68301, '\p{^Is_Joining_Group=manichaeanheth}', "");
     Expect(0, 68301, '\P{Is_Joining_Group=manichaeanheth}', "");
@@ -56841,16 +57447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68302, '\p{^Is_Joining_Group=manichaeanheth}', "");
     Expect(1, 68302, '\P{Is_Joining_Group=manichaeanheth}', "");
     Expect(0, 68302, '\P{^Is_Joining_Group=manichaeanheth}', "");
-    Expect(1, 68301, '\p{Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(0, 68301, '\p{^Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(0, 68301, '\P{Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(1, 68301, '\P{^Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(0, 68302, '\p{Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(1, 68302, '\p{^Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(1, 68302, '\P{Is_Joining_Group=- Manichaean_HETH}', "");
-    Expect(0, 68302, '\P{^Is_Joining_Group=- Manichaean_HETH}', "");
-    Error('\p{Is_Jg= _Manichaean_HETH/a/}');
-    Error('\P{Is_Jg= _Manichaean_HETH/a/}');
+    Expect(1, 68301, '\p{Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(0, 68301, '\p{^Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(0, 68301, '\P{Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(1, 68301, '\P{^Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(0, 68302, '\p{Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(1, 68302, '\p{^Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(1, 68302, '\P{Is_Joining_Group=	_Manichaean_heth}', "");
+    Expect(0, 68302, '\P{^Is_Joining_Group=	_Manichaean_heth}', "");
+    Error('\p{Is_Jg=manichaean_Heth/a/}');
+    Error('\P{Is_Jg=manichaean_Heth/a/}');
     Expect(1, 68301, '\p{Is_Jg=manichaeanheth}', "");
     Expect(0, 68301, '\p{^Is_Jg=manichaeanheth}', "");
     Expect(0, 68301, '\P{Is_Jg=manichaeanheth}', "");
@@ -56859,16 +57465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68302, '\p{^Is_Jg=manichaeanheth}', "");
     Expect(1, 68302, '\P{Is_Jg=manichaeanheth}', "");
     Expect(0, 68302, '\P{^Is_Jg=manichaeanheth}', "");
-    Expect(1, 68301, '\p{Is_Jg:   _manichaean_Heth}', "");
-    Expect(0, 68301, '\p{^Is_Jg:   _manichaean_Heth}', "");
-    Expect(0, 68301, '\P{Is_Jg:   _manichaean_Heth}', "");
-    Expect(1, 68301, '\P{^Is_Jg:   _manichaean_Heth}', "");
-    Expect(0, 68302, '\p{Is_Jg:   _manichaean_Heth}', "");
-    Expect(1, 68302, '\p{^Is_Jg:   _manichaean_Heth}', "");
-    Expect(1, 68302, '\P{Is_Jg:   _manichaean_Heth}', "");
-    Expect(0, 68302, '\P{^Is_Jg:   _manichaean_Heth}', "");
-    Error('\p{Joining_Group=:=MANICHAEAN_Hundred}');
-    Error('\P{Joining_Group=:=MANICHAEAN_Hundred}');
+    Expect(1, 68301, '\p{Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(0, 68301, '\p{^Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(0, 68301, '\P{Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(1, 68301, '\P{^Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(0, 68302, '\p{Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(1, 68302, '\p{^Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(1, 68302, '\P{Is_Jg:	-	Manichaean_HETH}', "");
+    Expect(0, 68302, '\P{^Is_Jg:	-	Manichaean_HETH}', "");
+    Error('\p{Joining_Group= MANICHAEAN_HUNDRED:=}');
+    Error('\P{Joining_Group= MANICHAEAN_HUNDRED:=}');
     Expect(1, 68335, '\p{Joining_Group=:\AManichaean_Hundred\z:}', "");;
     Expect(0, 68336, '\p{Joining_Group=:\AManichaean_Hundred\z:}', "");;
     Expect(1, 68335, '\p{Joining_Group=manichaeanhundred}', "");
@@ -56881,38 +57487,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68336, '\P{^Joining_Group=manichaeanhundred}', "");
     Expect(1, 68335, '\p{Joining_Group=:\Amanichaeanhundred\z:}', "");;
     Expect(0, 68336, '\p{Joining_Group=:\Amanichaeanhundred\z:}', "");;
-    Expect(1, 68335, '\p{Joining_Group= Manichaean_Hundred}', "");
-    Expect(0, 68335, '\p{^Joining_Group= Manichaean_Hundred}', "");
-    Expect(0, 68335, '\P{Joining_Group= Manichaean_Hundred}', "");
-    Expect(1, 68335, '\P{^Joining_Group= Manichaean_Hundred}', "");
-    Expect(0, 68336, '\p{Joining_Group= Manichaean_Hundred}', "");
-    Expect(1, 68336, '\p{^Joining_Group= Manichaean_Hundred}', "");
-    Expect(1, 68336, '\P{Joining_Group= Manichaean_Hundred}', "");
-    Expect(0, 68336, '\P{^Joining_Group= Manichaean_Hundred}', "");
-    Error('\p{Jg=-_Manichaean_HUNDRED/a/}');
-    Error('\P{Jg=-_Manichaean_HUNDRED/a/}');
+    Expect(1, 68335, '\p{Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(0, 68335, '\p{^Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(0, 68335, '\P{Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(1, 68335, '\P{^Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(0, 68336, '\p{Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(1, 68336, '\p{^Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(1, 68336, '\P{Joining_Group= -MANICHAEAN_Hundred}', "");
+    Expect(0, 68336, '\P{^Joining_Group= -MANICHAEAN_Hundred}', "");
+    Error('\p{Jg=/a/MANICHAEAN_hundred}');
+    Error('\P{Jg=/a/MANICHAEAN_hundred}');
     Expect(1, 68335, '\p{Jg=:\AManichaean_Hundred\z:}', "");;
     Expect(0, 68336, '\p{Jg=:\AManichaean_Hundred\z:}', "");;
-    Expect(1, 68335, '\p{Jg=manichaeanhundred}', "");
-    Expect(0, 68335, '\p{^Jg=manichaeanhundred}', "");
-    Expect(0, 68335, '\P{Jg=manichaeanhundred}', "");
-    Expect(1, 68335, '\P{^Jg=manichaeanhundred}', "");
-    Expect(0, 68336, '\p{Jg=manichaeanhundred}', "");
-    Expect(1, 68336, '\p{^Jg=manichaeanhundred}', "");
-    Expect(1, 68336, '\P{Jg=manichaeanhundred}', "");
-    Expect(0, 68336, '\P{^Jg=manichaeanhundred}', "");
+    Expect(1, 68335, '\p{Jg: manichaeanhundred}', "");
+    Expect(0, 68335, '\p{^Jg: manichaeanhundred}', "");
+    Expect(0, 68335, '\P{Jg: manichaeanhundred}', "");
+    Expect(1, 68335, '\P{^Jg: manichaeanhundred}', "");
+    Expect(0, 68336, '\p{Jg: manichaeanhundred}', "");
+    Expect(1, 68336, '\p{^Jg: manichaeanhundred}', "");
+    Expect(1, 68336, '\P{Jg: manichaeanhundred}', "");
+    Expect(0, 68336, '\P{^Jg: manichaeanhundred}', "");
     Expect(1, 68335, '\p{Jg=:\Amanichaeanhundred\z:}', "");;
     Expect(0, 68336, '\p{Jg=:\Amanichaeanhundred\z:}', "");;
-    Expect(1, 68335, '\p{Jg= MANICHAEAN_hundred}', "");
-    Expect(0, 68335, '\p{^Jg= MANICHAEAN_hundred}', "");
-    Expect(0, 68335, '\P{Jg= MANICHAEAN_hundred}', "");
-    Expect(1, 68335, '\P{^Jg= MANICHAEAN_hundred}', "");
-    Expect(0, 68336, '\p{Jg= MANICHAEAN_hundred}', "");
-    Expect(1, 68336, '\p{^Jg= MANICHAEAN_hundred}', "");
-    Expect(1, 68336, '\P{Jg= MANICHAEAN_hundred}', "");
-    Expect(0, 68336, '\P{^Jg= MANICHAEAN_hundred}', "");
-    Error('\p{Is_Joining_Group=-manichaean_Hundred:=}');
-    Error('\P{Is_Joining_Group=-manichaean_Hundred:=}');
+    Expect(1, 68335, '\p{Jg=	manichaean_hundred}', "");
+    Expect(0, 68335, '\p{^Jg=	manichaean_hundred}', "");
+    Expect(0, 68335, '\P{Jg=	manichaean_hundred}', "");
+    Expect(1, 68335, '\P{^Jg=	manichaean_hundred}', "");
+    Expect(0, 68336, '\p{Jg=	manichaean_hundred}', "");
+    Expect(1, 68336, '\p{^Jg=	manichaean_hundred}', "");
+    Expect(1, 68336, '\P{Jg=	manichaean_hundred}', "");
+    Expect(0, 68336, '\P{^Jg=	manichaean_hundred}', "");
+    Error('\p{Is_Joining_Group=_-manichaean_Hundred/a/}');
+    Error('\P{Is_Joining_Group=_-manichaean_Hundred/a/}');
     Expect(1, 68335, '\p{Is_Joining_Group=manichaeanhundred}', "");
     Expect(0, 68335, '\p{^Is_Joining_Group=manichaeanhundred}', "");
     Expect(0, 68335, '\P{Is_Joining_Group=manichaeanhundred}', "");
@@ -56921,16 +57527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68336, '\p{^Is_Joining_Group=manichaeanhundred}', "");
     Expect(1, 68336, '\P{Is_Joining_Group=manichaeanhundred}', "");
     Expect(0, 68336, '\P{^Is_Joining_Group=manichaeanhundred}', "");
-    Expect(1, 68335, '\p{Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(0, 68335, '\p{^Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(0, 68335, '\P{Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(1, 68335, '\P{^Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(0, 68336, '\p{Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(1, 68336, '\p{^Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(1, 68336, '\P{Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Expect(0, 68336, '\P{^Is_Joining_Group= 	Manichaean_Hundred}', "");
-    Error('\p{Is_Jg=/a/- Manichaean_HUNDRED}');
-    Error('\P{Is_Jg=/a/- Manichaean_HUNDRED}');
+    Expect(1, 68335, '\p{Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(0, 68335, '\p{^Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(0, 68335, '\P{Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(1, 68335, '\P{^Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(0, 68336, '\p{Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(1, 68336, '\p{^Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(1, 68336, '\P{Is_Joining_Group= -Manichaean_Hundred}', "");
+    Expect(0, 68336, '\P{^Is_Joining_Group= -Manichaean_Hundred}', "");
+    Error('\p{Is_Jg:	 :=Manichaean_HUNDRED}');
+    Error('\P{Is_Jg:	 :=Manichaean_HUNDRED}');
     Expect(1, 68335, '\p{Is_Jg=manichaeanhundred}', "");
     Expect(0, 68335, '\p{^Is_Jg=manichaeanhundred}', "");
     Expect(0, 68335, '\P{Is_Jg=manichaeanhundred}', "");
@@ -56939,60 +57545,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68336, '\p{^Is_Jg=manichaeanhundred}', "");
     Expect(1, 68336, '\P{Is_Jg=manichaeanhundred}', "");
     Expect(0, 68336, '\P{^Is_Jg=manichaeanhundred}', "");
-    Expect(1, 68335, '\p{Is_Jg=	-manichaean_Hundred}', "");
-    Expect(0, 68335, '\p{^Is_Jg=	-manichaean_Hundred}', "");
-    Expect(0, 68335, '\P{Is_Jg=	-manichaean_Hundred}', "");
-    Expect(1, 68335, '\P{^Is_Jg=	-manichaean_Hundred}', "");
-    Expect(0, 68336, '\p{Is_Jg=	-manichaean_Hundred}', "");
-    Expect(1, 68336, '\p{^Is_Jg=	-manichaean_Hundred}', "");
-    Expect(1, 68336, '\P{Is_Jg=	-manichaean_Hundred}', "");
-    Expect(0, 68336, '\P{^Is_Jg=	-manichaean_Hundred}', "");
-    Error('\p{Joining_Group=:=__Manichaean_Kaph}');
-    Error('\P{Joining_Group=:=__Manichaean_Kaph}');
+    Expect(1, 68335, '\p{Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(0, 68335, '\p{^Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(0, 68335, '\P{Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(1, 68335, '\P{^Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(0, 68336, '\p{Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(1, 68336, '\p{^Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(1, 68336, '\P{Is_Jg= -MANICHAEAN_hundred}', "");
+    Expect(0, 68336, '\P{^Is_Jg= -MANICHAEAN_hundred}', "");
+    Error('\p{Joining_Group=:=manichaean_KAPH}');
+    Error('\P{Joining_Group=:=manichaean_KAPH}');
     Expect(1, 68306, '\p{Joining_Group=:\AManichaean_Kaph\z:}', "");;
     Expect(0, 68307, '\p{Joining_Group=:\AManichaean_Kaph\z:}', "");;
-    Expect(1, 68306, '\p{Joining_Group=manichaeankaph}', "");
-    Expect(0, 68306, '\p{^Joining_Group=manichaeankaph}', "");
-    Expect(0, 68306, '\P{Joining_Group=manichaeankaph}', "");
-    Expect(1, 68306, '\P{^Joining_Group=manichaeankaph}', "");
-    Expect(0, 68307, '\p{Joining_Group=manichaeankaph}', "");
-    Expect(1, 68307, '\p{^Joining_Group=manichaeankaph}', "");
-    Expect(1, 68307, '\P{Joining_Group=manichaeankaph}', "");
-    Expect(0, 68307, '\P{^Joining_Group=manichaeankaph}', "");
+    Expect(1, 68306, '\p{Joining_Group:manichaeankaph}', "");
+    Expect(0, 68306, '\p{^Joining_Group:manichaeankaph}', "");
+    Expect(0, 68306, '\P{Joining_Group:manichaeankaph}', "");
+    Expect(1, 68306, '\P{^Joining_Group:manichaeankaph}', "");
+    Expect(0, 68307, '\p{Joining_Group:manichaeankaph}', "");
+    Expect(1, 68307, '\p{^Joining_Group:manichaeankaph}', "");
+    Expect(1, 68307, '\P{Joining_Group:manichaeankaph}', "");
+    Expect(0, 68307, '\P{^Joining_Group:manichaeankaph}', "");
     Expect(1, 68306, '\p{Joining_Group=:\Amanichaeankaph\z:}', "");;
     Expect(0, 68307, '\p{Joining_Group=:\Amanichaeankaph\z:}', "");;
-    Expect(1, 68306, '\p{Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(0, 68306, '\p{^Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(0, 68306, '\P{Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(1, 68306, '\P{^Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(0, 68307, '\p{Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(1, 68307, '\p{^Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(1, 68307, '\P{Joining_Group=__MANICHAEAN_KAPH}', "");
-    Expect(0, 68307, '\P{^Joining_Group=__MANICHAEAN_KAPH}', "");
-    Error('\p{Jg= /a/Manichaean_Kaph}');
-    Error('\P{Jg= /a/Manichaean_Kaph}');
+    Expect(1, 68306, '\p{Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(0, 68306, '\p{^Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(0, 68306, '\P{Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(1, 68306, '\P{^Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(0, 68307, '\p{Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(1, 68307, '\p{^Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(1, 68307, '\P{Joining_Group:	_	manichaean_Kaph}', "");
+    Expect(0, 68307, '\P{^Joining_Group:	_	manichaean_Kaph}', "");
+    Error('\p{Jg= -MANICHAEAN_Kaph:=}');
+    Error('\P{Jg= -MANICHAEAN_Kaph:=}');
     Expect(1, 68306, '\p{Jg=:\AManichaean_Kaph\z:}', "");;
     Expect(0, 68307, '\p{Jg=:\AManichaean_Kaph\z:}', "");;
-    Expect(1, 68306, '\p{Jg=manichaeankaph}', "");
-    Expect(0, 68306, '\p{^Jg=manichaeankaph}', "");
-    Expect(0, 68306, '\P{Jg=manichaeankaph}', "");
-    Expect(1, 68306, '\P{^Jg=manichaeankaph}', "");
-    Expect(0, 68307, '\p{Jg=manichaeankaph}', "");
-    Expect(1, 68307, '\p{^Jg=manichaeankaph}', "");
-    Expect(1, 68307, '\P{Jg=manichaeankaph}', "");
-    Expect(0, 68307, '\P{^Jg=manichaeankaph}', "");
+    Expect(1, 68306, '\p{Jg:	manichaeankaph}', "");
+    Expect(0, 68306, '\p{^Jg:	manichaeankaph}', "");
+    Expect(0, 68306, '\P{Jg:	manichaeankaph}', "");
+    Expect(1, 68306, '\P{^Jg:	manichaeankaph}', "");
+    Expect(0, 68307, '\p{Jg:	manichaeankaph}', "");
+    Expect(1, 68307, '\p{^Jg:	manichaeankaph}', "");
+    Expect(1, 68307, '\P{Jg:	manichaeankaph}', "");
+    Expect(0, 68307, '\P{^Jg:	manichaeankaph}', "");
     Expect(1, 68306, '\p{Jg=:\Amanichaeankaph\z:}', "");;
     Expect(0, 68307, '\p{Jg=:\Amanichaeankaph\z:}', "");;
-    Expect(1, 68306, '\p{Jg=-manichaean_KAPH}', "");
-    Expect(0, 68306, '\p{^Jg=-manichaean_KAPH}', "");
-    Expect(0, 68306, '\P{Jg=-manichaean_KAPH}', "");
-    Expect(1, 68306, '\P{^Jg=-manichaean_KAPH}', "");
-    Expect(0, 68307, '\p{Jg=-manichaean_KAPH}', "");
-    Expect(1, 68307, '\p{^Jg=-manichaean_KAPH}', "");
-    Expect(1, 68307, '\P{Jg=-manichaean_KAPH}', "");
-    Expect(0, 68307, '\P{^Jg=-manichaean_KAPH}', "");
-    Error('\p{Is_Joining_Group= :=MANICHAEAN_Kaph}');
-    Error('\P{Is_Joining_Group= :=MANICHAEAN_Kaph}');
+    Expect(1, 68306, '\p{Jg=MANICHAEAN_KAPH}', "");
+    Expect(0, 68306, '\p{^Jg=MANICHAEAN_KAPH}', "");
+    Expect(0, 68306, '\P{Jg=MANICHAEAN_KAPH}', "");
+    Expect(1, 68306, '\P{^Jg=MANICHAEAN_KAPH}', "");
+    Expect(0, 68307, '\p{Jg=MANICHAEAN_KAPH}', "");
+    Expect(1, 68307, '\p{^Jg=MANICHAEAN_KAPH}', "");
+    Expect(1, 68307, '\P{Jg=MANICHAEAN_KAPH}', "");
+    Expect(0, 68307, '\P{^Jg=MANICHAEAN_KAPH}', "");
+    Error('\p{Is_Joining_Group=		Manichaean_kaph/a/}');
+    Error('\P{Is_Joining_Group=		Manichaean_kaph/a/}');
     Expect(1, 68306, '\p{Is_Joining_Group=manichaeankaph}', "");
     Expect(0, 68306, '\p{^Is_Joining_Group=manichaeankaph}', "");
     Expect(0, 68306, '\P{Is_Joining_Group=manichaeankaph}', "");
@@ -57001,16 +57607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68307, '\p{^Is_Joining_Group=manichaeankaph}', "");
     Expect(1, 68307, '\P{Is_Joining_Group=manichaeankaph}', "");
     Expect(0, 68307, '\P{^Is_Joining_Group=manichaeankaph}', "");
-    Expect(1, 68306, '\p{Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(0, 68306, '\p{^Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(0, 68306, '\P{Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(1, 68306, '\P{^Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(0, 68307, '\p{Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(1, 68307, '\p{^Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(1, 68307, '\P{Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Expect(0, 68307, '\P{^Is_Joining_Group= MANICHAEAN_Kaph}', "");
-    Error('\p{Is_Jg::=_-Manichaean_KAPH}');
-    Error('\P{Is_Jg::=_-Manichaean_KAPH}');
+    Expect(1, 68306, '\p{Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(0, 68306, '\p{^Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(0, 68306, '\P{Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(1, 68306, '\P{^Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(0, 68307, '\p{Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(1, 68307, '\p{^Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(1, 68307, '\P{Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Expect(0, 68307, '\P{^Is_Joining_Group=	-Manichaean_Kaph}', "");
+    Error('\p{Is_Jg: :=--Manichaean_Kaph}');
+    Error('\P{Is_Jg: :=--Manichaean_Kaph}');
     Expect(1, 68306, '\p{Is_Jg=manichaeankaph}', "");
     Expect(0, 68306, '\p{^Is_Jg=manichaeankaph}', "");
     Expect(0, 68306, '\P{Is_Jg=manichaeankaph}', "");
@@ -57019,38 +57625,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68307, '\p{^Is_Jg=manichaeankaph}', "");
     Expect(1, 68307, '\P{Is_Jg=manichaeankaph}', "");
     Expect(0, 68307, '\P{^Is_Jg=manichaeankaph}', "");
-    Expect(1, 68306, '\p{Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(0, 68306, '\p{^Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(0, 68306, '\P{Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(1, 68306, '\P{^Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(0, 68307, '\p{Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(1, 68307, '\p{^Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(1, 68307, '\P{Is_Jg=MANICHAEAN_KAPH}', "");
-    Expect(0, 68307, '\P{^Is_Jg=MANICHAEAN_KAPH}', "");
-    Error('\p{Joining_Group=-/a/Manichaean_Lamedh}');
-    Error('\P{Joining_Group=-/a/Manichaean_Lamedh}');
+    Expect(1, 68306, '\p{Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(0, 68306, '\p{^Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(0, 68306, '\P{Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(1, 68306, '\P{^Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(0, 68307, '\p{Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(1, 68307, '\p{^Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(1, 68307, '\P{Is_Jg=	_Manichaean_KAPH}', "");
+    Expect(0, 68307, '\P{^Is_Jg=	_Manichaean_KAPH}', "");
+    Error('\p{Joining_Group: := MANICHAEAN_Lamedh}');
+    Error('\P{Joining_Group: := MANICHAEAN_Lamedh}');
     Expect(1, 68307, '\p{Joining_Group=:\AManichaean_Lamedh\z:}', "");;
     Expect(0, 68308, '\p{Joining_Group=:\AManichaean_Lamedh\z:}', "");;
-    Expect(1, 68307, '\p{Joining_Group:manichaeanlamedh}', "");
-    Expect(0, 68307, '\p{^Joining_Group:manichaeanlamedh}', "");
-    Expect(0, 68307, '\P{Joining_Group:manichaeanlamedh}', "");
-    Expect(1, 68307, '\P{^Joining_Group:manichaeanlamedh}', "");
-    Expect(0, 68308, '\p{Joining_Group:manichaeanlamedh}', "");
-    Expect(1, 68308, '\p{^Joining_Group:manichaeanlamedh}', "");
-    Expect(1, 68308, '\P{Joining_Group:manichaeanlamedh}', "");
-    Expect(0, 68308, '\P{^Joining_Group:manichaeanlamedh}', "");
+    Expect(1, 68307, '\p{Joining_Group=manichaeanlamedh}', "");
+    Expect(0, 68307, '\p{^Joining_Group=manichaeanlamedh}', "");
+    Expect(0, 68307, '\P{Joining_Group=manichaeanlamedh}', "");
+    Expect(1, 68307, '\P{^Joining_Group=manichaeanlamedh}', "");
+    Expect(0, 68308, '\p{Joining_Group=manichaeanlamedh}', "");
+    Expect(1, 68308, '\p{^Joining_Group=manichaeanlamedh}', "");
+    Expect(1, 68308, '\P{Joining_Group=manichaeanlamedh}', "");
+    Expect(0, 68308, '\P{^Joining_Group=manichaeanlamedh}', "");
     Expect(1, 68307, '\p{Joining_Group=:\Amanichaeanlamedh\z:}', "");;
     Expect(0, 68308, '\p{Joining_Group=:\Amanichaeanlamedh\z:}', "");;
-    Expect(1, 68307, '\p{Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(0, 68307, '\p{^Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(0, 68307, '\P{Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(1, 68307, '\P{^Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(0, 68308, '\p{Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(1, 68308, '\p{^Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(1, 68308, '\P{Joining_Group=  Manichaean_Lamedh}', "");
-    Expect(0, 68308, '\P{^Joining_Group=  Manichaean_Lamedh}', "");
-    Error('\p{Jg=-/a/Manichaean_lamedh}');
-    Error('\P{Jg=-/a/Manichaean_lamedh}');
+    Expect(1, 68307, '\p{Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(0, 68307, '\p{^Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(0, 68307, '\P{Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(1, 68307, '\P{^Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(0, 68308, '\p{Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(1, 68308, '\p{^Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(1, 68308, '\P{Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Expect(0, 68308, '\P{^Joining_Group=	_MANICHAEAN_Lamedh}', "");
+    Error('\p{Jg:   /a/	-Manichaean_Lamedh}');
+    Error('\P{Jg:   /a/	-Manichaean_Lamedh}');
     Expect(1, 68307, '\p{Jg=:\AManichaean_Lamedh\z:}', "");;
     Expect(0, 68308, '\p{Jg=:\AManichaean_Lamedh\z:}', "");;
     Expect(1, 68307, '\p{Jg=manichaeanlamedh}', "");
@@ -57063,16 +57669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68308, '\P{^Jg=manichaeanlamedh}', "");
     Expect(1, 68307, '\p{Jg=:\Amanichaeanlamedh\z:}', "");;
     Expect(0, 68308, '\p{Jg=:\Amanichaeanlamedh\z:}', "");;
-    Expect(1, 68307, '\p{Jg=_-Manichaean_lamedh}', "");
-    Expect(0, 68307, '\p{^Jg=_-Manichaean_lamedh}', "");
-    Expect(0, 68307, '\P{Jg=_-Manichaean_lamedh}', "");
-    Expect(1, 68307, '\P{^Jg=_-Manichaean_lamedh}', "");
-    Expect(0, 68308, '\p{Jg=_-Manichaean_lamedh}', "");
-    Expect(1, 68308, '\p{^Jg=_-Manichaean_lamedh}', "");
-    Expect(1, 68308, '\P{Jg=_-Manichaean_lamedh}', "");
-    Expect(0, 68308, '\P{^Jg=_-Manichaean_lamedh}', "");
-    Error('\p{Is_Joining_Group=/a/Manichaean_Lamedh}');
-    Error('\P{Is_Joining_Group=/a/Manichaean_Lamedh}');
+    Expect(1, 68307, '\p{Jg:   -Manichaean_lamedh}', "");
+    Expect(0, 68307, '\p{^Jg:   -Manichaean_lamedh}', "");
+    Expect(0, 68307, '\P{Jg:   -Manichaean_lamedh}', "");
+    Expect(1, 68307, '\P{^Jg:   -Manichaean_lamedh}', "");
+    Expect(0, 68308, '\p{Jg:   -Manichaean_lamedh}', "");
+    Expect(1, 68308, '\p{^Jg:   -Manichaean_lamedh}', "");
+    Expect(1, 68308, '\P{Jg:   -Manichaean_lamedh}', "");
+    Expect(0, 68308, '\P{^Jg:   -Manichaean_lamedh}', "");
+    Error('\p{Is_Joining_Group=/a/manichaean_Lamedh}');
+    Error('\P{Is_Joining_Group=/a/manichaean_Lamedh}');
     Expect(1, 68307, '\p{Is_Joining_Group=manichaeanlamedh}', "");
     Expect(0, 68307, '\p{^Is_Joining_Group=manichaeanlamedh}', "");
     Expect(0, 68307, '\P{Is_Joining_Group=manichaeanlamedh}', "");
@@ -57081,16 +57687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68308, '\p{^Is_Joining_Group=manichaeanlamedh}', "");
     Expect(1, 68308, '\P{Is_Joining_Group=manichaeanlamedh}', "");
     Expect(0, 68308, '\P{^Is_Joining_Group=manichaeanlamedh}', "");
-    Expect(1, 68307, '\p{Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(0, 68307, '\p{^Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(0, 68307, '\P{Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(1, 68307, '\P{^Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(0, 68308, '\p{Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(1, 68308, '\p{^Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(1, 68308, '\P{Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Expect(0, 68308, '\P{^Is_Joining_Group=		Manichaean_Lamedh}', "");
-    Error('\p{Is_Jg=	 Manichaean_Lamedh/a/}');
-    Error('\P{Is_Jg=	 Manichaean_Lamedh/a/}');
+    Expect(1, 68307, '\p{Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(0, 68307, '\p{^Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(0, 68307, '\P{Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(1, 68307, '\P{^Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(0, 68308, '\p{Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(1, 68308, '\p{^Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(1, 68308, '\P{Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Expect(0, 68308, '\P{^Is_Joining_Group=_ Manichaean_Lamedh}', "");
+    Error('\p{Is_Jg=	-MANICHAEAN_lamedh:=}');
+    Error('\P{Is_Jg=	-MANICHAEAN_lamedh:=}');
     Expect(1, 68307, '\p{Is_Jg=manichaeanlamedh}', "");
     Expect(0, 68307, '\p{^Is_Jg=manichaeanlamedh}', "");
     Expect(0, 68307, '\P{Is_Jg=manichaeanlamedh}', "");
@@ -57099,16 +57705,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68308, '\p{^Is_Jg=manichaeanlamedh}', "");
     Expect(1, 68308, '\P{Is_Jg=manichaeanlamedh}', "");
     Expect(0, 68308, '\P{^Is_Jg=manichaeanlamedh}', "");
-    Expect(1, 68307, '\p{Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(0, 68307, '\p{^Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(0, 68307, '\P{Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(1, 68307, '\P{^Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(0, 68308, '\p{Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(1, 68308, '\p{^Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(1, 68308, '\P{Is_Jg=-Manichaean_Lamedh}', "");
-    Expect(0, 68308, '\P{^Is_Jg=-Manichaean_Lamedh}', "");
-    Error('\p{Joining_Group=Manichaean_MEM:=}');
-    Error('\P{Joining_Group=Manichaean_MEM:=}');
+    Expect(1, 68307, '\p{Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(0, 68307, '\p{^Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(0, 68307, '\P{Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(1, 68307, '\P{^Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(0, 68308, '\p{Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(1, 68308, '\p{^Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(1, 68308, '\P{Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Expect(0, 68308, '\P{^Is_Jg=_ MANICHAEAN_lamedh}', "");
+    Error('\p{Joining_Group=/a/_ MANICHAEAN_mem}');
+    Error('\P{Joining_Group=/a/_ MANICHAEAN_mem}');
     Expect(1, 68310, '\p{Joining_Group=:\AManichaean_Mem\z:}', "");;
     Expect(0, 68311, '\p{Joining_Group=:\AManichaean_Mem\z:}', "");;
     Expect(1, 68310, '\p{Joining_Group=manichaeanmem}', "");
@@ -57121,16 +57727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68311, '\P{^Joining_Group=manichaeanmem}', "");
     Expect(1, 68310, '\p{Joining_Group=:\Amanichaeanmem\z:}', "");;
     Expect(0, 68311, '\p{Joining_Group=:\Amanichaeanmem\z:}', "");;
-    Expect(1, 68310, '\p{Joining_Group=_Manichaean_Mem}', "");
-    Expect(0, 68310, '\p{^Joining_Group=_Manichaean_Mem}', "");
-    Expect(0, 68310, '\P{Joining_Group=_Manichaean_Mem}', "");
-    Expect(1, 68310, '\P{^Joining_Group=_Manichaean_Mem}', "");
-    Expect(0, 68311, '\p{Joining_Group=_Manichaean_Mem}', "");
-    Expect(1, 68311, '\p{^Joining_Group=_Manichaean_Mem}', "");
-    Expect(1, 68311, '\P{Joining_Group=_Manichaean_Mem}', "");
-    Expect(0, 68311, '\P{^Joining_Group=_Manichaean_Mem}', "");
-    Error('\p{Jg=_/a/Manichaean_Mem}');
-    Error('\P{Jg=_/a/Manichaean_Mem}');
+    Expect(1, 68310, '\p{Joining_Group=-Manichaean_Mem}', "");
+    Expect(0, 68310, '\p{^Joining_Group=-Manichaean_Mem}', "");
+    Expect(0, 68310, '\P{Joining_Group=-Manichaean_Mem}', "");
+    Expect(1, 68310, '\P{^Joining_Group=-Manichaean_Mem}', "");
+    Expect(0, 68311, '\p{Joining_Group=-Manichaean_Mem}', "");
+    Expect(1, 68311, '\p{^Joining_Group=-Manichaean_Mem}', "");
+    Expect(1, 68311, '\P{Joining_Group=-Manichaean_Mem}', "");
+    Expect(0, 68311, '\P{^Joining_Group=-Manichaean_Mem}', "");
+    Error('\p{Jg=	MANICHAEAN_mem/a/}');
+    Error('\P{Jg=	MANICHAEAN_mem/a/}');
     Expect(1, 68310, '\p{Jg=:\AManichaean_Mem\z:}', "");;
     Expect(0, 68311, '\p{Jg=:\AManichaean_Mem\z:}', "");;
     Expect(1, 68310, '\p{Jg=manichaeanmem}', "");
@@ -57151,8 +57757,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68311, '\p{^Jg=-Manichaean_Mem}', "");
     Expect(1, 68311, '\P{Jg=-Manichaean_Mem}', "");
     Expect(0, 68311, '\P{^Jg=-Manichaean_Mem}', "");
-    Error('\p{Is_Joining_Group=:=_-Manichaean_Mem}');
-    Error('\P{Is_Joining_Group=:=_-Manichaean_Mem}');
+    Error('\p{Is_Joining_Group=_ manichaean_Mem:=}');
+    Error('\P{Is_Joining_Group=_ manichaean_Mem:=}');
     Expect(1, 68310, '\p{Is_Joining_Group=manichaeanmem}', "");
     Expect(0, 68310, '\p{^Is_Joining_Group=manichaeanmem}', "");
     Expect(0, 68310, '\P{Is_Joining_Group=manichaeanmem}', "");
@@ -57161,16 +57767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68311, '\p{^Is_Joining_Group=manichaeanmem}', "");
     Expect(1, 68311, '\P{Is_Joining_Group=manichaeanmem}', "");
     Expect(0, 68311, '\P{^Is_Joining_Group=manichaeanmem}', "");
-    Expect(1, 68310, '\p{Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(0, 68310, '\p{^Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(0, 68310, '\P{Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(1, 68310, '\P{^Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(0, 68311, '\p{Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(1, 68311, '\p{^Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(1, 68311, '\P{Is_Joining_Group=	_Manichaean_Mem}', "");
-    Expect(0, 68311, '\P{^Is_Joining_Group=	_Manichaean_Mem}', "");
-    Error('\p{Is_Jg=-:=MANICHAEAN_MEM}');
-    Error('\P{Is_Jg=-:=MANICHAEAN_MEM}');
+    Expect(1, 68310, '\p{Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(0, 68310, '\p{^Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(0, 68310, '\P{Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(1, 68310, '\P{^Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(0, 68311, '\p{Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(1, 68311, '\p{^Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(1, 68311, '\P{Is_Joining_Group=		Manichaean_Mem}', "");
+    Expect(0, 68311, '\P{^Is_Joining_Group=		Manichaean_Mem}', "");
+    Error('\p{Is_Jg= :=Manichaean_mem}');
+    Error('\P{Is_Jg= :=Manichaean_mem}');
     Expect(1, 68310, '\p{Is_Jg=manichaeanmem}', "");
     Expect(0, 68310, '\p{^Is_Jg=manichaeanmem}', "");
     Expect(0, 68310, '\P{Is_Jg=manichaeanmem}', "");
@@ -57179,16 +57785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68311, '\p{^Is_Jg=manichaeanmem}', "");
     Expect(1, 68311, '\P{Is_Jg=manichaeanmem}', "");
     Expect(0, 68311, '\P{^Is_Jg=manichaeanmem}', "");
-    Expect(1, 68310, '\p{Is_Jg=-Manichaean_MEM}', "");
-    Expect(0, 68310, '\p{^Is_Jg=-Manichaean_MEM}', "");
-    Expect(0, 68310, '\P{Is_Jg=-Manichaean_MEM}', "");
-    Expect(1, 68310, '\P{^Is_Jg=-Manichaean_MEM}', "");
-    Expect(0, 68311, '\p{Is_Jg=-Manichaean_MEM}', "");
-    Expect(1, 68311, '\p{^Is_Jg=-Manichaean_MEM}', "");
-    Expect(1, 68311, '\P{Is_Jg=-Manichaean_MEM}', "");
-    Expect(0, 68311, '\P{^Is_Jg=-Manichaean_MEM}', "");
-    Error('\p{Joining_Group=:=_MANICHAEAN_Nun}');
-    Error('\P{Joining_Group=:=_MANICHAEAN_Nun}');
+    Expect(1, 68310, '\p{Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(0, 68310, '\p{^Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(0, 68310, '\P{Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(1, 68310, '\P{^Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(0, 68311, '\p{Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(1, 68311, '\p{^Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(1, 68311, '\P{Is_Jg=	MANICHAEAN_mem}', "");
+    Expect(0, 68311, '\P{^Is_Jg=	MANICHAEAN_mem}', "");
+    Error('\p{Joining_Group=-MANICHAEAN_Nun/a/}');
+    Error('\P{Joining_Group=-MANICHAEAN_Nun/a/}');
     Expect(1, 68311, '\p{Joining_Group=:\AManichaean_Nun\z:}', "");;
     Expect(0, 68312, '\p{Joining_Group=:\AManichaean_Nun\z:}', "");;
     Expect(1, 68311, '\p{Joining_Group=manichaeannun}', "");
@@ -57201,74 +57807,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68312, '\P{^Joining_Group=manichaeannun}', "");
     Expect(1, 68311, '\p{Joining_Group=:\Amanichaeannun\z:}', "");;
     Expect(0, 68312, '\p{Joining_Group=:\Amanichaeannun\z:}', "");;
-    Expect(1, 68311, '\p{Joining_Group=_Manichaean_Nun}', "");
-    Expect(0, 68311, '\p{^Joining_Group=_Manichaean_Nun}', "");
-    Expect(0, 68311, '\P{Joining_Group=_Manichaean_Nun}', "");
-    Expect(1, 68311, '\P{^Joining_Group=_Manichaean_Nun}', "");
-    Expect(0, 68312, '\p{Joining_Group=_Manichaean_Nun}', "");
-    Expect(1, 68312, '\p{^Joining_Group=_Manichaean_Nun}', "");
-    Expect(1, 68312, '\P{Joining_Group=_Manichaean_Nun}', "");
-    Expect(0, 68312, '\P{^Joining_Group=_Manichaean_Nun}', "");
-    Error('\p{Jg=	MANICHAEAN_NUN:=}');
-    Error('\P{Jg=	MANICHAEAN_NUN:=}');
+    Expect(1, 68311, '\p{Joining_Group=  Manichaean_Nun}', "");
+    Expect(0, 68311, '\p{^Joining_Group=  Manichaean_Nun}', "");
+    Expect(0, 68311, '\P{Joining_Group=  Manichaean_Nun}', "");
+    Expect(1, 68311, '\P{^Joining_Group=  Manichaean_Nun}', "");
+    Expect(0, 68312, '\p{Joining_Group=  Manichaean_Nun}', "");
+    Expect(1, 68312, '\p{^Joining_Group=  Manichaean_Nun}', "");
+    Expect(1, 68312, '\P{Joining_Group=  Manichaean_Nun}', "");
+    Expect(0, 68312, '\P{^Joining_Group=  Manichaean_Nun}', "");
+    Error('\p{Jg=_Manichaean_Nun/a/}');
+    Error('\P{Jg=_Manichaean_Nun/a/}');
     Expect(1, 68311, '\p{Jg=:\AManichaean_Nun\z:}', "");;
     Expect(0, 68312, '\p{Jg=:\AManichaean_Nun\z:}', "");;
-    Expect(1, 68311, '\p{Jg=manichaeannun}', "");
-    Expect(0, 68311, '\p{^Jg=manichaeannun}', "");
-    Expect(0, 68311, '\P{Jg=manichaeannun}', "");
-    Expect(1, 68311, '\P{^Jg=manichaeannun}', "");
-    Expect(0, 68312, '\p{Jg=manichaeannun}', "");
-    Expect(1, 68312, '\p{^Jg=manichaeannun}', "");
-    Expect(1, 68312, '\P{Jg=manichaeannun}', "");
-    Expect(0, 68312, '\P{^Jg=manichaeannun}', "");
+    Expect(1, 68311, '\p{Jg: manichaeannun}', "");
+    Expect(0, 68311, '\p{^Jg: manichaeannun}', "");
+    Expect(0, 68311, '\P{Jg: manichaeannun}', "");
+    Expect(1, 68311, '\P{^Jg: manichaeannun}', "");
+    Expect(0, 68312, '\p{Jg: manichaeannun}', "");
+    Expect(1, 68312, '\p{^Jg: manichaeannun}', "");
+    Expect(1, 68312, '\P{Jg: manichaeannun}', "");
+    Expect(0, 68312, '\P{^Jg: manichaeannun}', "");
     Expect(1, 68311, '\p{Jg=:\Amanichaeannun\z:}', "");;
     Expect(0, 68312, '\p{Jg=:\Amanichaeannun\z:}', "");;
-    Expect(1, 68311, '\p{Jg=--Manichaean_Nun}', "");
-    Expect(0, 68311, '\p{^Jg=--Manichaean_Nun}', "");
-    Expect(0, 68311, '\P{Jg=--Manichaean_Nun}', "");
-    Expect(1, 68311, '\P{^Jg=--Manichaean_Nun}', "");
-    Expect(0, 68312, '\p{Jg=--Manichaean_Nun}', "");
-    Expect(1, 68312, '\p{^Jg=--Manichaean_Nun}', "");
-    Expect(1, 68312, '\P{Jg=--Manichaean_Nun}', "");
-    Expect(0, 68312, '\P{^Jg=--Manichaean_Nun}', "");
-    Error('\p{Is_Joining_Group:   	/a/Manichaean_Nun}');
-    Error('\P{Is_Joining_Group:   	/a/Manichaean_Nun}');
-    Expect(1, 68311, '\p{Is_Joining_Group:   manichaeannun}', "");
-    Expect(0, 68311, '\p{^Is_Joining_Group:   manichaeannun}', "");
-    Expect(0, 68311, '\P{Is_Joining_Group:   manichaeannun}', "");
-    Expect(1, 68311, '\P{^Is_Joining_Group:   manichaeannun}', "");
-    Expect(0, 68312, '\p{Is_Joining_Group:   manichaeannun}', "");
-    Expect(1, 68312, '\p{^Is_Joining_Group:   manichaeannun}', "");
-    Expect(1, 68312, '\P{Is_Joining_Group:   manichaeannun}', "");
-    Expect(0, 68312, '\P{^Is_Joining_Group:   manichaeannun}', "");
-    Expect(1, 68311, '\p{Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(0, 68311, '\p{^Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(0, 68311, '\P{Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(1, 68311, '\P{^Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(0, 68312, '\p{Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(1, 68312, '\p{^Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(1, 68312, '\P{Is_Joining_Group=	manichaean_Nun}', "");
-    Expect(0, 68312, '\P{^Is_Joining_Group=	manichaean_Nun}', "");
-    Error('\p{Is_Jg=/a/	Manichaean_Nun}');
-    Error('\P{Is_Jg=/a/	Manichaean_Nun}');
-    Expect(1, 68311, '\p{Is_Jg=manichaeannun}', "");
-    Expect(0, 68311, '\p{^Is_Jg=manichaeannun}', "");
-    Expect(0, 68311, '\P{Is_Jg=manichaeannun}', "");
-    Expect(1, 68311, '\P{^Is_Jg=manichaeannun}', "");
-    Expect(0, 68312, '\p{Is_Jg=manichaeannun}', "");
-    Expect(1, 68312, '\p{^Is_Jg=manichaeannun}', "");
-    Expect(1, 68312, '\P{Is_Jg=manichaeannun}', "");
-    Expect(0, 68312, '\P{^Is_Jg=manichaeannun}', "");
-    Expect(1, 68311, '\p{Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(0, 68311, '\p{^Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(0, 68311, '\P{Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(1, 68311, '\P{^Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(0, 68312, '\p{Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(1, 68312, '\p{^Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(1, 68312, '\P{Is_Jg=_MANICHAEAN_Nun}', "");
-    Expect(0, 68312, '\P{^Is_Jg=_MANICHAEAN_Nun}', "");
-    Error('\p{Joining_Group=/a/	 MANICHAEAN_One}');
-    Error('\P{Joining_Group=/a/	 MANICHAEAN_One}');
+    Expect(1, 68311, '\p{Jg=_-MANICHAEAN_NUN}', "");
+    Expect(0, 68311, '\p{^Jg=_-MANICHAEAN_NUN}', "");
+    Expect(0, 68311, '\P{Jg=_-MANICHAEAN_NUN}', "");
+    Expect(1, 68311, '\P{^Jg=_-MANICHAEAN_NUN}', "");
+    Expect(0, 68312, '\p{Jg=_-MANICHAEAN_NUN}', "");
+    Expect(1, 68312, '\p{^Jg=_-MANICHAEAN_NUN}', "");
+    Expect(1, 68312, '\P{Jg=_-MANICHAEAN_NUN}', "");
+    Expect(0, 68312, '\P{^Jg=_-MANICHAEAN_NUN}', "");
+    Error('\p{Is_Joining_Group=--manichaean_Nun:=}');
+    Error('\P{Is_Joining_Group=--manichaean_Nun:=}');
+    Expect(1, 68311, '\p{Is_Joining_Group=manichaeannun}', "");
+    Expect(0, 68311, '\p{^Is_Joining_Group=manichaeannun}', "");
+    Expect(0, 68311, '\P{Is_Joining_Group=manichaeannun}', "");
+    Expect(1, 68311, '\P{^Is_Joining_Group=manichaeannun}', "");
+    Expect(0, 68312, '\p{Is_Joining_Group=manichaeannun}', "");
+    Expect(1, 68312, '\p{^Is_Joining_Group=manichaeannun}', "");
+    Expect(1, 68312, '\P{Is_Joining_Group=manichaeannun}', "");
+    Expect(0, 68312, '\P{^Is_Joining_Group=manichaeannun}', "");
+    Expect(1, 68311, '\p{Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(0, 68311, '\p{^Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(0, 68311, '\P{Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(1, 68311, '\P{^Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(0, 68312, '\p{Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(1, 68312, '\p{^Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(1, 68312, '\P{Is_Joining_Group= -Manichaean_NUN}', "");
+    Expect(0, 68312, '\P{^Is_Joining_Group= -Manichaean_NUN}', "");
+    Error('\p{Is_Jg=/a/--Manichaean_nun}');
+    Error('\P{Is_Jg=/a/--Manichaean_nun}');
+    Expect(1, 68311, '\p{Is_Jg:   manichaeannun}', "");
+    Expect(0, 68311, '\p{^Is_Jg:   manichaeannun}', "");
+    Expect(0, 68311, '\P{Is_Jg:   manichaeannun}', "");
+    Expect(1, 68311, '\P{^Is_Jg:   manichaeannun}', "");
+    Expect(0, 68312, '\p{Is_Jg:   manichaeannun}', "");
+    Expect(1, 68312, '\p{^Is_Jg:   manichaeannun}', "");
+    Expect(1, 68312, '\P{Is_Jg:   manichaeannun}', "");
+    Expect(0, 68312, '\P{^Is_Jg:   manichaeannun}', "");
+    Expect(1, 68311, '\p{Is_Jg=  manichaean_NUN}', "");
+    Expect(0, 68311, '\p{^Is_Jg=  manichaean_NUN}', "");
+    Expect(0, 68311, '\P{Is_Jg=  manichaean_NUN}', "");
+    Expect(1, 68311, '\P{^Is_Jg=  manichaean_NUN}', "");
+    Expect(0, 68312, '\p{Is_Jg=  manichaean_NUN}', "");
+    Expect(1, 68312, '\p{^Is_Jg=  manichaean_NUN}', "");
+    Expect(1, 68312, '\P{Is_Jg=  manichaean_NUN}', "");
+    Expect(0, 68312, '\P{^Is_Jg=  manichaean_NUN}', "");
+    Error('\p{Joining_Group=_-Manichaean_One:=}');
+    Error('\P{Joining_Group=_-Manichaean_One:=}');
     Expect(1, 68331, '\p{Joining_Group=:\AManichaean_One\z:}', "");;
     Expect(0, 68332, '\p{Joining_Group=:\AManichaean_One\z:}', "");;
     Expect(1, 68331, '\p{Joining_Group=manichaeanone}', "");
@@ -57281,16 +57887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68332, '\P{^Joining_Group=manichaeanone}', "");
     Expect(1, 68331, '\p{Joining_Group=:\Amanichaeanone\z:}', "");;
     Expect(0, 68332, '\p{Joining_Group=:\Amanichaeanone\z:}', "");;
-    Expect(1, 68331, '\p{Joining_Group=- MANICHAEAN_One}', "");
-    Expect(0, 68331, '\p{^Joining_Group=- MANICHAEAN_One}', "");
-    Expect(0, 68331, '\P{Joining_Group=- MANICHAEAN_One}', "");
-    Expect(1, 68331, '\P{^Joining_Group=- MANICHAEAN_One}', "");
-    Expect(0, 68332, '\p{Joining_Group=- MANICHAEAN_One}', "");
-    Expect(1, 68332, '\p{^Joining_Group=- MANICHAEAN_One}', "");
-    Expect(1, 68332, '\P{Joining_Group=- MANICHAEAN_One}', "");
-    Expect(0, 68332, '\P{^Joining_Group=- MANICHAEAN_One}', "");
-    Error('\p{Jg=_	manichaean_one:=}');
-    Error('\P{Jg=_	manichaean_one:=}');
+    Expect(1, 68331, '\p{Joining_Group=--Manichaean_ONE}', "");
+    Expect(0, 68331, '\p{^Joining_Group=--Manichaean_ONE}', "");
+    Expect(0, 68331, '\P{Joining_Group=--Manichaean_ONE}', "");
+    Expect(1, 68331, '\P{^Joining_Group=--Manichaean_ONE}', "");
+    Expect(0, 68332, '\p{Joining_Group=--Manichaean_ONE}', "");
+    Expect(1, 68332, '\p{^Joining_Group=--Manichaean_ONE}', "");
+    Expect(1, 68332, '\P{Joining_Group=--Manichaean_ONE}', "");
+    Expect(0, 68332, '\P{^Joining_Group=--Manichaean_ONE}', "");
+    Error('\p{Jg= /a/manichaean_One}');
+    Error('\P{Jg= /a/manichaean_One}');
     Expect(1, 68331, '\p{Jg=:\AManichaean_One\z:}', "");;
     Expect(0, 68332, '\p{Jg=:\AManichaean_One\z:}', "");;
     Expect(1, 68331, '\p{Jg=manichaeanone}', "");
@@ -57303,34 +57909,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68332, '\P{^Jg=manichaeanone}', "");
     Expect(1, 68331, '\p{Jg=:\Amanichaeanone\z:}', "");;
     Expect(0, 68332, '\p{Jg=:\Amanichaeanone\z:}', "");;
-    Expect(1, 68331, '\p{Jg=	 manichaean_ONE}', "");
-    Expect(0, 68331, '\p{^Jg=	 manichaean_ONE}', "");
-    Expect(0, 68331, '\P{Jg=	 manichaean_ONE}', "");
-    Expect(1, 68331, '\P{^Jg=	 manichaean_ONE}', "");
-    Expect(0, 68332, '\p{Jg=	 manichaean_ONE}', "");
-    Expect(1, 68332, '\p{^Jg=	 manichaean_ONE}', "");
-    Expect(1, 68332, '\P{Jg=	 manichaean_ONE}', "");
-    Expect(0, 68332, '\P{^Jg=	 manichaean_ONE}', "");
-    Error('\p{Is_Joining_Group=--manichaean_ONE/a/}');
-    Error('\P{Is_Joining_Group=--manichaean_ONE/a/}');
-    Expect(1, 68331, '\p{Is_Joining_Group:   manichaeanone}', "");
-    Expect(0, 68331, '\p{^Is_Joining_Group:   manichaeanone}', "");
-    Expect(0, 68331, '\P{Is_Joining_Group:   manichaeanone}', "");
-    Expect(1, 68331, '\P{^Is_Joining_Group:   manichaeanone}', "");
-    Expect(0, 68332, '\p{Is_Joining_Group:   manichaeanone}', "");
-    Expect(1, 68332, '\p{^Is_Joining_Group:   manichaeanone}', "");
-    Expect(1, 68332, '\P{Is_Joining_Group:   manichaeanone}', "");
-    Expect(0, 68332, '\P{^Is_Joining_Group:   manichaeanone}', "");
-    Expect(1, 68331, '\p{Is_Joining_Group=	-manichaean_One}', "");
-    Expect(0, 68331, '\p{^Is_Joining_Group=	-manichaean_One}', "");
-    Expect(0, 68331, '\P{Is_Joining_Group=	-manichaean_One}', "");
-    Expect(1, 68331, '\P{^Is_Joining_Group=	-manichaean_One}', "");
-    Expect(0, 68332, '\p{Is_Joining_Group=	-manichaean_One}', "");
-    Expect(1, 68332, '\p{^Is_Joining_Group=	-manichaean_One}', "");
-    Expect(1, 68332, '\P{Is_Joining_Group=	-manichaean_One}', "");
-    Expect(0, 68332, '\P{^Is_Joining_Group=	-manichaean_One}', "");
-    Error('\p{Is_Jg=--Manichaean_One/a/}');
-    Error('\P{Is_Jg=--Manichaean_One/a/}');
+    Expect(1, 68331, '\p{Jg=__manichaean_One}', "");
+    Expect(0, 68331, '\p{^Jg=__manichaean_One}', "");
+    Expect(0, 68331, '\P{Jg=__manichaean_One}', "");
+    Expect(1, 68331, '\P{^Jg=__manichaean_One}', "");
+    Expect(0, 68332, '\p{Jg=__manichaean_One}', "");
+    Expect(1, 68332, '\p{^Jg=__manichaean_One}', "");
+    Expect(1, 68332, '\P{Jg=__manichaean_One}', "");
+    Expect(0, 68332, '\P{^Jg=__manichaean_One}', "");
+    Error('\p{Is_Joining_Group: -MANICHAEAN_one/a/}');
+    Error('\P{Is_Joining_Group: -MANICHAEAN_one/a/}');
+    Expect(1, 68331, '\p{Is_Joining_Group=manichaeanone}', "");
+    Expect(0, 68331, '\p{^Is_Joining_Group=manichaeanone}', "");
+    Expect(0, 68331, '\P{Is_Joining_Group=manichaeanone}', "");
+    Expect(1, 68331, '\P{^Is_Joining_Group=manichaeanone}', "");
+    Expect(0, 68332, '\p{Is_Joining_Group=manichaeanone}', "");
+    Expect(1, 68332, '\p{^Is_Joining_Group=manichaeanone}', "");
+    Expect(1, 68332, '\P{Is_Joining_Group=manichaeanone}', "");
+    Expect(0, 68332, '\P{^Is_Joining_Group=manichaeanone}', "");
+    Expect(1, 68331, '\p{Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(0, 68331, '\p{^Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(0, 68331, '\P{Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(1, 68331, '\P{^Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(0, 68332, '\p{Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(1, 68332, '\p{^Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(1, 68332, '\P{Is_Joining_Group=_-Manichaean_One}', "");
+    Expect(0, 68332, '\P{^Is_Joining_Group=_-Manichaean_One}', "");
+    Error('\p{Is_Jg=/a/_ Manichaean_one}');
+    Error('\P{Is_Jg=/a/_ Manichaean_one}');
     Expect(1, 68331, '\p{Is_Jg=manichaeanone}', "");
     Expect(0, 68331, '\p{^Is_Jg=manichaeanone}', "");
     Expect(0, 68331, '\P{Is_Jg=manichaeanone}', "");
@@ -57339,16 +57945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68332, '\p{^Is_Jg=manichaeanone}', "");
     Expect(1, 68332, '\P{Is_Jg=manichaeanone}', "");
     Expect(0, 68332, '\P{^Is_Jg=manichaeanone}', "");
-    Expect(1, 68331, '\p{Is_Jg=--manichaean_One}', "");
-    Expect(0, 68331, '\p{^Is_Jg=--manichaean_One}', "");
-    Expect(0, 68331, '\P{Is_Jg=--manichaean_One}', "");
-    Expect(1, 68331, '\P{^Is_Jg=--manichaean_One}', "");
-    Expect(0, 68332, '\p{Is_Jg=--manichaean_One}', "");
-    Expect(1, 68332, '\p{^Is_Jg=--manichaean_One}', "");
-    Expect(1, 68332, '\P{Is_Jg=--manichaean_One}', "");
-    Expect(0, 68332, '\P{^Is_Jg=--manichaean_One}', "");
-    Error('\p{Joining_Group=-_Manichaean_Pe/a/}');
-    Error('\P{Joining_Group=-_Manichaean_Pe/a/}');
+    Expect(1, 68331, '\p{Is_Jg: _manichaean_one}', "");
+    Expect(0, 68331, '\p{^Is_Jg: _manichaean_one}', "");
+    Expect(0, 68331, '\P{Is_Jg: _manichaean_one}', "");
+    Expect(1, 68331, '\P{^Is_Jg: _manichaean_one}', "");
+    Expect(0, 68332, '\p{Is_Jg: _manichaean_one}', "");
+    Expect(1, 68332, '\p{^Is_Jg: _manichaean_one}', "");
+    Expect(1, 68332, '\P{Is_Jg: _manichaean_one}', "");
+    Expect(0, 68332, '\P{^Is_Jg: _manichaean_one}', "");
+    Error('\p{Joining_Group=	:=MANICHAEAN_PE}');
+    Error('\P{Joining_Group=	:=MANICHAEAN_PE}');
     Expect(1, 68316, '\p{Joining_Group=:\AManichaean_Pe\z:}', "");;
     Expect(0, 68317, '\p{Joining_Group=:\AManichaean_Pe\z:}', "");;
     Expect(1, 68316, '\p{Joining_Group=manichaeanpe}', "");
@@ -57361,16 +57967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68317, '\P{^Joining_Group=manichaeanpe}', "");
     Expect(1, 68316, '\p{Joining_Group=:\Amanichaeanpe\z:}', "");;
     Expect(0, 68317, '\p{Joining_Group=:\Amanichaeanpe\z:}', "");;
-    Expect(1, 68316, '\p{Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(0, 68316, '\p{^Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(0, 68316, '\P{Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(1, 68316, '\P{^Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(0, 68317, '\p{Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(1, 68317, '\p{^Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(1, 68317, '\P{Joining_Group=	_MANICHAEAN_Pe}', "");
-    Expect(0, 68317, '\P{^Joining_Group=	_MANICHAEAN_Pe}', "");
-    Error('\p{Jg=:=	-Manichaean_pe}');
-    Error('\P{Jg=:=	-Manichaean_pe}');
+    Expect(1, 68316, '\p{Joining_Group=	Manichaean_Pe}', "");
+    Expect(0, 68316, '\p{^Joining_Group=	Manichaean_Pe}', "");
+    Expect(0, 68316, '\P{Joining_Group=	Manichaean_Pe}', "");
+    Expect(1, 68316, '\P{^Joining_Group=	Manichaean_Pe}', "");
+    Expect(0, 68317, '\p{Joining_Group=	Manichaean_Pe}', "");
+    Expect(1, 68317, '\p{^Joining_Group=	Manichaean_Pe}', "");
+    Expect(1, 68317, '\P{Joining_Group=	Manichaean_Pe}', "");
+    Expect(0, 68317, '\P{^Joining_Group=	Manichaean_Pe}', "");
+    Error('\p{Jg: /a/_ MANICHAEAN_PE}');
+    Error('\P{Jg: /a/_ MANICHAEAN_PE}');
     Expect(1, 68316, '\p{Jg=:\AManichaean_Pe\z:}', "");;
     Expect(0, 68317, '\p{Jg=:\AManichaean_Pe\z:}', "");;
     Expect(1, 68316, '\p{Jg=manichaeanpe}', "");
@@ -57383,34 +57989,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68317, '\P{^Jg=manichaeanpe}', "");
     Expect(1, 68316, '\p{Jg=:\Amanichaeanpe\z:}', "");;
     Expect(0, 68317, '\p{Jg=:\Amanichaeanpe\z:}', "");;
-    Expect(1, 68316, '\p{Jg=_	manichaean_pe}', "");
-    Expect(0, 68316, '\p{^Jg=_	manichaean_pe}', "");
-    Expect(0, 68316, '\P{Jg=_	manichaean_pe}', "");
-    Expect(1, 68316, '\P{^Jg=_	manichaean_pe}', "");
-    Expect(0, 68317, '\p{Jg=_	manichaean_pe}', "");
-    Expect(1, 68317, '\p{^Jg=_	manichaean_pe}', "");
-    Expect(1, 68317, '\P{Jg=_	manichaean_pe}', "");
-    Expect(0, 68317, '\P{^Jg=_	manichaean_pe}', "");
-    Error('\p{Is_Joining_Group=:=  Manichaean_Pe}');
-    Error('\P{Is_Joining_Group=:=  Manichaean_Pe}');
-    Expect(1, 68316, '\p{Is_Joining_Group=manichaeanpe}', "");
-    Expect(0, 68316, '\p{^Is_Joining_Group=manichaeanpe}', "");
-    Expect(0, 68316, '\P{Is_Joining_Group=manichaeanpe}', "");
-    Expect(1, 68316, '\P{^Is_Joining_Group=manichaeanpe}', "");
-    Expect(0, 68317, '\p{Is_Joining_Group=manichaeanpe}', "");
-    Expect(1, 68317, '\p{^Is_Joining_Group=manichaeanpe}', "");
-    Expect(1, 68317, '\P{Is_Joining_Group=manichaeanpe}', "");
-    Expect(0, 68317, '\P{^Is_Joining_Group=manichaeanpe}', "");
-    Expect(1, 68316, '\p{Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(0, 68316, '\p{^Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(0, 68316, '\P{Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(1, 68316, '\P{^Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(0, 68317, '\p{Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(1, 68317, '\p{^Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(1, 68317, '\P{Is_Joining_Group=_ Manichaean_Pe}', "");
-    Expect(0, 68317, '\P{^Is_Joining_Group=_ Manichaean_Pe}', "");
-    Error('\p{Is_Jg=:=_Manichaean_Pe}');
-    Error('\P{Is_Jg=:=_Manichaean_Pe}');
+    Expect(1, 68316, '\p{Jg=	Manichaean_PE}', "");
+    Expect(0, 68316, '\p{^Jg=	Manichaean_PE}', "");
+    Expect(0, 68316, '\P{Jg=	Manichaean_PE}', "");
+    Expect(1, 68316, '\P{^Jg=	Manichaean_PE}', "");
+    Expect(0, 68317, '\p{Jg=	Manichaean_PE}', "");
+    Expect(1, 68317, '\p{^Jg=	Manichaean_PE}', "");
+    Expect(1, 68317, '\P{Jg=	Manichaean_PE}', "");
+    Expect(0, 68317, '\P{^Jg=	Manichaean_PE}', "");
+    Error('\p{Is_Joining_Group=_-manichaean_Pe/a/}');
+    Error('\P{Is_Joining_Group=_-manichaean_Pe/a/}');
+    Expect(1, 68316, '\p{Is_Joining_Group: manichaeanpe}', "");
+    Expect(0, 68316, '\p{^Is_Joining_Group: manichaeanpe}', "");
+    Expect(0, 68316, '\P{Is_Joining_Group: manichaeanpe}', "");
+    Expect(1, 68316, '\P{^Is_Joining_Group: manichaeanpe}', "");
+    Expect(0, 68317, '\p{Is_Joining_Group: manichaeanpe}', "");
+    Expect(1, 68317, '\p{^Is_Joining_Group: manichaeanpe}', "");
+    Expect(1, 68317, '\P{Is_Joining_Group: manichaeanpe}', "");
+    Expect(0, 68317, '\P{^Is_Joining_Group: manichaeanpe}', "");
+    Expect(1, 68316, '\p{Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(0, 68316, '\p{^Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(0, 68316, '\P{Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(1, 68316, '\P{^Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(0, 68317, '\p{Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(1, 68317, '\p{^Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(1, 68317, '\P{Is_Joining_Group:   __Manichaean_Pe}', "");
+    Expect(0, 68317, '\P{^Is_Joining_Group:   __Manichaean_Pe}', "");
+    Error('\p{Is_Jg=_Manichaean_Pe:=}');
+    Error('\P{Is_Jg=_Manichaean_Pe:=}');
     Expect(1, 68316, '\p{Is_Jg=manichaeanpe}', "");
     Expect(0, 68316, '\p{^Is_Jg=manichaeanpe}', "");
     Expect(0, 68316, '\P{Is_Jg=manichaeanpe}', "");
@@ -57419,38 +58025,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68317, '\p{^Is_Jg=manichaeanpe}', "");
     Expect(1, 68317, '\P{Is_Jg=manichaeanpe}', "");
     Expect(0, 68317, '\P{^Is_Jg=manichaeanpe}', "");
-    Expect(1, 68316, '\p{Is_Jg=-Manichaean_Pe}', "");
-    Expect(0, 68316, '\p{^Is_Jg=-Manichaean_Pe}', "");
-    Expect(0, 68316, '\P{Is_Jg=-Manichaean_Pe}', "");
-    Expect(1, 68316, '\P{^Is_Jg=-Manichaean_Pe}', "");
-    Expect(0, 68317, '\p{Is_Jg=-Manichaean_Pe}', "");
-    Expect(1, 68317, '\p{^Is_Jg=-Manichaean_Pe}', "");
-    Expect(1, 68317, '\P{Is_Jg=-Manichaean_Pe}', "");
-    Expect(0, 68317, '\P{^Is_Jg=-Manichaean_Pe}', "");
-    Error('\p{Joining_Group=_:=Manichaean_Qoph}');
-    Error('\P{Joining_Group=_:=Manichaean_Qoph}');
+    Expect(1, 68316, '\p{Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(0, 68316, '\p{^Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(0, 68316, '\P{Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(1, 68316, '\P{^Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(0, 68317, '\p{Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(1, 68317, '\p{^Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(1, 68317, '\P{Is_Jg=	MANICHAEAN_PE}', "");
+    Expect(0, 68317, '\P{^Is_Jg=	MANICHAEAN_PE}', "");
+    Error('\p{Joining_Group= -Manichaean_QOPH/a/}');
+    Error('\P{Joining_Group= -Manichaean_QOPH/a/}');
     Expect(1, 68320, '\p{Joining_Group=:\AManichaean_Qoph\z:}', "");;
     Expect(0, 68321, '\p{Joining_Group=:\AManichaean_Qoph\z:}', "");;
-    Expect(1, 68320, '\p{Joining_Group:	manichaeanqoph}', "");
-    Expect(0, 68320, '\p{^Joining_Group:	manichaeanqoph}', "");
-    Expect(0, 68320, '\P{Joining_Group:	manichaeanqoph}', "");
-    Expect(1, 68320, '\P{^Joining_Group:	manichaeanqoph}', "");
-    Expect(0, 68321, '\p{Joining_Group:	manichaeanqoph}', "");
-    Expect(1, 68321, '\p{^Joining_Group:	manichaeanqoph}', "");
-    Expect(1, 68321, '\P{Joining_Group:	manichaeanqoph}', "");
-    Expect(0, 68321, '\P{^Joining_Group:	manichaeanqoph}', "");
+    Expect(1, 68320, '\p{Joining_Group=manichaeanqoph}', "");
+    Expect(0, 68320, '\p{^Joining_Group=manichaeanqoph}', "");
+    Expect(0, 68320, '\P{Joining_Group=manichaeanqoph}', "");
+    Expect(1, 68320, '\P{^Joining_Group=manichaeanqoph}', "");
+    Expect(0, 68321, '\p{Joining_Group=manichaeanqoph}', "");
+    Expect(1, 68321, '\p{^Joining_Group=manichaeanqoph}', "");
+    Expect(1, 68321, '\P{Joining_Group=manichaeanqoph}', "");
+    Expect(0, 68321, '\P{^Joining_Group=manichaeanqoph}', "");
     Expect(1, 68320, '\p{Joining_Group=:\Amanichaeanqoph\z:}', "");;
     Expect(0, 68321, '\p{Joining_Group=:\Amanichaeanqoph\z:}', "");;
-    Expect(1, 68320, '\p{Joining_Group:   Manichaean_Qoph}', "");
-    Expect(0, 68320, '\p{^Joining_Group:   Manichaean_Qoph}', "");
-    Expect(0, 68320, '\P{Joining_Group:   Manichaean_Qoph}', "");
-    Expect(1, 68320, '\P{^Joining_Group:   Manichaean_Qoph}', "");
-    Expect(0, 68321, '\p{Joining_Group:   Manichaean_Qoph}', "");
-    Expect(1, 68321, '\p{^Joining_Group:   Manichaean_Qoph}', "");
-    Expect(1, 68321, '\P{Joining_Group:   Manichaean_Qoph}', "");
-    Expect(0, 68321, '\P{^Joining_Group:   Manichaean_Qoph}', "");
-    Error('\p{Jg=-_Manichaean_QOPH/a/}');
-    Error('\P{Jg=-_Manichaean_QOPH/a/}');
+    Expect(1, 68320, '\p{Joining_Group: _-Manichaean_qoph}', "");
+    Expect(0, 68320, '\p{^Joining_Group: _-Manichaean_qoph}', "");
+    Expect(0, 68320, '\P{Joining_Group: _-Manichaean_qoph}', "");
+    Expect(1, 68320, '\P{^Joining_Group: _-Manichaean_qoph}', "");
+    Expect(0, 68321, '\p{Joining_Group: _-Manichaean_qoph}', "");
+    Expect(1, 68321, '\p{^Joining_Group: _-Manichaean_qoph}', "");
+    Expect(1, 68321, '\P{Joining_Group: _-Manichaean_qoph}', "");
+    Expect(0, 68321, '\P{^Joining_Group: _-Manichaean_qoph}', "");
+    Error('\p{Jg=:= MANICHAEAN_Qoph}');
+    Error('\P{Jg=:= MANICHAEAN_Qoph}');
     Expect(1, 68320, '\p{Jg=:\AManichaean_Qoph\z:}', "");;
     Expect(0, 68321, '\p{Jg=:\AManichaean_Qoph\z:}', "");;
     Expect(1, 68320, '\p{Jg=manichaeanqoph}', "");
@@ -57463,16 +58069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68321, '\P{^Jg=manichaeanqoph}', "");
     Expect(1, 68320, '\p{Jg=:\Amanichaeanqoph\z:}', "");;
     Expect(0, 68321, '\p{Jg=:\Amanichaeanqoph\z:}', "");;
-    Expect(1, 68320, '\p{Jg=- MANICHAEAN_Qoph}', "");
-    Expect(0, 68320, '\p{^Jg=- MANICHAEAN_Qoph}', "");
-    Expect(0, 68320, '\P{Jg=- MANICHAEAN_Qoph}', "");
-    Expect(1, 68320, '\P{^Jg=- MANICHAEAN_Qoph}', "");
-    Expect(0, 68321, '\p{Jg=- MANICHAEAN_Qoph}', "");
-    Expect(1, 68321, '\p{^Jg=- MANICHAEAN_Qoph}', "");
-    Expect(1, 68321, '\P{Jg=- MANICHAEAN_Qoph}', "");
-    Expect(0, 68321, '\P{^Jg=- MANICHAEAN_Qoph}', "");
-    Error('\p{Is_Joining_Group: -manichaean_qoph:=}');
-    Error('\P{Is_Joining_Group: -manichaean_qoph:=}');
+    Expect(1, 68320, '\p{Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(0, 68320, '\p{^Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(0, 68320, '\P{Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(1, 68320, '\P{^Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(0, 68321, '\p{Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(1, 68321, '\p{^Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(1, 68321, '\P{Jg=_-MANICHAEAN_Qoph}', "");
+    Expect(0, 68321, '\P{^Jg=_-MANICHAEAN_Qoph}', "");
+    Error('\p{Is_Joining_Group:   -:=manichaean_qoph}');
+    Error('\P{Is_Joining_Group:   -:=manichaean_qoph}');
     Expect(1, 68320, '\p{Is_Joining_Group=manichaeanqoph}', "");
     Expect(0, 68320, '\p{^Is_Joining_Group=manichaeanqoph}', "");
     Expect(0, 68320, '\P{Is_Joining_Group=manichaeanqoph}', "");
@@ -57481,16 +58087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68321, '\p{^Is_Joining_Group=manichaeanqoph}', "");
     Expect(1, 68321, '\P{Is_Joining_Group=manichaeanqoph}', "");
     Expect(0, 68321, '\P{^Is_Joining_Group=manichaeanqoph}', "");
-    Expect(1, 68320, '\p{Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(0, 68320, '\p{^Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(0, 68320, '\P{Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(1, 68320, '\P{^Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(0, 68321, '\p{Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(1, 68321, '\p{^Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(1, 68321, '\P{Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Expect(0, 68321, '\P{^Is_Joining_Group=MANICHAEAN_Qoph}', "");
-    Error('\p{Is_Jg=--Manichaean_qoph:=}');
-    Error('\P{Is_Jg=--Manichaean_qoph:=}');
+    Expect(1, 68320, '\p{Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(0, 68320, '\p{^Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(0, 68320, '\P{Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(1, 68320, '\P{^Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(0, 68321, '\p{Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(1, 68321, '\p{^Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(1, 68321, '\P{Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Expect(0, 68321, '\P{^Is_Joining_Group=-MANICHAEAN_qoph}', "");
+    Error('\p{Is_Jg=_MANICHAEAN_Qoph/a/}');
+    Error('\P{Is_Jg=_MANICHAEAN_Qoph/a/}');
     Expect(1, 68320, '\p{Is_Jg=manichaeanqoph}', "");
     Expect(0, 68320, '\p{^Is_Jg=manichaeanqoph}', "");
     Expect(0, 68320, '\P{Is_Jg=manichaeanqoph}', "");
@@ -57499,16 +58105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68321, '\p{^Is_Jg=manichaeanqoph}', "");
     Expect(1, 68321, '\P{Is_Jg=manichaeanqoph}', "");
     Expect(0, 68321, '\P{^Is_Jg=manichaeanqoph}', "");
-    Expect(1, 68320, '\p{Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(0, 68320, '\p{^Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(0, 68320, '\P{Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(1, 68320, '\P{^Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(0, 68321, '\p{Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(1, 68321, '\p{^Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(1, 68321, '\P{Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Expect(0, 68321, '\P{^Is_Jg= 	MANICHAEAN_Qoph}', "");
-    Error('\p{Joining_Group=-Manichaean_Resh:=}');
-    Error('\P{Joining_Group=-Manichaean_Resh:=}');
+    Expect(1, 68320, '\p{Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(0, 68320, '\p{^Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(0, 68320, '\P{Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(1, 68320, '\P{^Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(0, 68321, '\p{Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(1, 68321, '\p{^Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(1, 68321, '\P{Is_Jg=  MANICHAEAN_qoph}', "");
+    Expect(0, 68321, '\P{^Is_Jg=  MANICHAEAN_qoph}', "");
+    Error('\p{Joining_Group=	:=Manichaean_resh}');
+    Error('\P{Joining_Group=	:=Manichaean_resh}');
     Expect(1, 68321, '\p{Joining_Group=:\AManichaean_Resh\z:}', "");;
     Expect(0, 68322, '\p{Joining_Group=:\AManichaean_Resh\z:}', "");;
     Expect(1, 68321, '\p{Joining_Group=manichaeanresh}', "");
@@ -57521,16 +58127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68322, '\P{^Joining_Group=manichaeanresh}', "");
     Expect(1, 68321, '\p{Joining_Group=:\Amanichaeanresh\z:}', "");;
     Expect(0, 68322, '\p{Joining_Group=:\Amanichaeanresh\z:}', "");;
-    Expect(1, 68321, '\p{Joining_Group=_Manichaean_RESH}', "");
-    Expect(0, 68321, '\p{^Joining_Group=_Manichaean_RESH}', "");
-    Expect(0, 68321, '\P{Joining_Group=_Manichaean_RESH}', "");
-    Expect(1, 68321, '\P{^Joining_Group=_Manichaean_RESH}', "");
-    Expect(0, 68322, '\p{Joining_Group=_Manichaean_RESH}', "");
-    Expect(1, 68322, '\p{^Joining_Group=_Manichaean_RESH}', "");
-    Expect(1, 68322, '\P{Joining_Group=_Manichaean_RESH}', "");
-    Expect(0, 68322, '\P{^Joining_Group=_Manichaean_RESH}', "");
-    Error('\p{Jg=_-Manichaean_RESH:=}');
-    Error('\P{Jg=_-Manichaean_RESH:=}');
+    Expect(1, 68321, '\p{Joining_Group:   	Manichaean_Resh}', "");
+    Expect(0, 68321, '\p{^Joining_Group:   	Manichaean_Resh}', "");
+    Expect(0, 68321, '\P{Joining_Group:   	Manichaean_Resh}', "");
+    Expect(1, 68321, '\P{^Joining_Group:   	Manichaean_Resh}', "");
+    Expect(0, 68322, '\p{Joining_Group:   	Manichaean_Resh}', "");
+    Expect(1, 68322, '\p{^Joining_Group:   	Manichaean_Resh}', "");
+    Expect(1, 68322, '\P{Joining_Group:   	Manichaean_Resh}', "");
+    Expect(0, 68322, '\P{^Joining_Group:   	Manichaean_Resh}', "");
+    Error('\p{Jg=/a/_Manichaean_Resh}');
+    Error('\P{Jg=/a/_Manichaean_Resh}');
     Expect(1, 68321, '\p{Jg=:\AManichaean_Resh\z:}', "");;
     Expect(0, 68322, '\p{Jg=:\AManichaean_Resh\z:}', "");;
     Expect(1, 68321, '\p{Jg=manichaeanresh}', "");
@@ -57543,16 +58149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68322, '\P{^Jg=manichaeanresh}', "");
     Expect(1, 68321, '\p{Jg=:\Amanichaeanresh\z:}', "");;
     Expect(0, 68322, '\p{Jg=:\Amanichaeanresh\z:}', "");;
-    Expect(1, 68321, '\p{Jg=-	Manichaean_Resh}', "");
-    Expect(0, 68321, '\p{^Jg=-	Manichaean_Resh}', "");
-    Expect(0, 68321, '\P{Jg=-	Manichaean_Resh}', "");
-    Expect(1, 68321, '\P{^Jg=-	Manichaean_Resh}', "");
-    Expect(0, 68322, '\p{Jg=-	Manichaean_Resh}', "");
-    Expect(1, 68322, '\p{^Jg=-	Manichaean_Resh}', "");
-    Expect(1, 68322, '\P{Jg=-	Manichaean_Resh}', "");
-    Expect(0, 68322, '\P{^Jg=-	Manichaean_Resh}', "");
-    Error('\p{Is_Joining_Group=	_Manichaean_resh:=}');
-    Error('\P{Is_Joining_Group=	_Manichaean_resh:=}');
+    Expect(1, 68321, '\p{Jg=--manichaean_Resh}', "");
+    Expect(0, 68321, '\p{^Jg=--manichaean_Resh}', "");
+    Expect(0, 68321, '\P{Jg=--manichaean_Resh}', "");
+    Expect(1, 68321, '\P{^Jg=--manichaean_Resh}', "");
+    Expect(0, 68322, '\p{Jg=--manichaean_Resh}', "");
+    Expect(1, 68322, '\p{^Jg=--manichaean_Resh}', "");
+    Expect(1, 68322, '\P{Jg=--manichaean_Resh}', "");
+    Expect(0, 68322, '\P{^Jg=--manichaean_Resh}', "");
+    Error('\p{Is_Joining_Group=	Manichaean_RESH:=}');
+    Error('\P{Is_Joining_Group=	Manichaean_RESH:=}');
     Expect(1, 68321, '\p{Is_Joining_Group=manichaeanresh}', "");
     Expect(0, 68321, '\p{^Is_Joining_Group=manichaeanresh}', "");
     Expect(0, 68321, '\P{Is_Joining_Group=manichaeanresh}', "");
@@ -57561,16 +58167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68322, '\p{^Is_Joining_Group=manichaeanresh}', "");
     Expect(1, 68322, '\P{Is_Joining_Group=manichaeanresh}', "");
     Expect(0, 68322, '\P{^Is_Joining_Group=manichaeanresh}', "");
-    Expect(1, 68321, '\p{Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(0, 68321, '\p{^Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(0, 68321, '\P{Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(1, 68321, '\P{^Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(0, 68322, '\p{Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(1, 68322, '\p{^Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(1, 68322, '\P{Is_Joining_Group=	manichaean_Resh}', "");
-    Expect(0, 68322, '\P{^Is_Joining_Group=	manichaean_Resh}', "");
-    Error('\p{Is_Jg=- Manichaean_RESH:=}');
-    Error('\P{Is_Jg=- Manichaean_RESH:=}');
+    Expect(1, 68321, '\p{Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(0, 68321, '\p{^Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(0, 68321, '\P{Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(1, 68321, '\P{^Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(0, 68322, '\p{Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(1, 68322, '\p{^Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(1, 68322, '\P{Is_Joining_Group=_ manichaean_Resh}', "");
+    Expect(0, 68322, '\P{^Is_Joining_Group=_ manichaean_Resh}', "");
+    Error('\p{Is_Jg=		MANICHAEAN_Resh/a/}');
+    Error('\P{Is_Jg=		MANICHAEAN_Resh/a/}');
     Expect(1, 68321, '\p{Is_Jg=manichaeanresh}', "");
     Expect(0, 68321, '\p{^Is_Jg=manichaeanresh}', "");
     Expect(0, 68321, '\P{Is_Jg=manichaeanresh}', "");
@@ -57579,16 +58185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68322, '\p{^Is_Jg=manichaeanresh}', "");
     Expect(1, 68322, '\P{Is_Jg=manichaeanresh}', "");
     Expect(0, 68322, '\P{^Is_Jg=manichaeanresh}', "");
-    Expect(1, 68321, '\p{Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(0, 68321, '\p{^Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(0, 68321, '\P{Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(1, 68321, '\P{^Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(0, 68322, '\p{Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(1, 68322, '\p{^Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(1, 68322, '\P{Is_Jg= _MANICHAEAN_RESH}', "");
-    Expect(0, 68322, '\P{^Is_Jg= _MANICHAEAN_RESH}', "");
-    Error('\p{Joining_Group= :=MANICHAEAN_Sadhe}');
-    Error('\P{Joining_Group= :=MANICHAEAN_Sadhe}');
+    Expect(1, 68321, '\p{Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(0, 68321, '\p{^Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(0, 68321, '\P{Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(1, 68321, '\P{^Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(0, 68322, '\p{Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(1, 68322, '\p{^Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(1, 68322, '\P{Is_Jg=__MANICHAEAN_resh}', "");
+    Expect(0, 68322, '\P{^Is_Jg=__MANICHAEAN_resh}', "");
+    Error('\p{Joining_Group=-	MANICHAEAN_Sadhe:=}');
+    Error('\P{Joining_Group=-	MANICHAEAN_Sadhe:=}');
     Expect(1, 68317, '\p{Joining_Group=:\AManichaean_Sadhe\z:}', "");;
     Expect(0, 68318, '\p{Joining_Group=:\AManichaean_Sadhe\z:}', "");;
     Expect(1, 68317, '\p{Joining_Group=manichaeansadhe}', "");
@@ -57601,16 +58207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68318, '\P{^Joining_Group=manichaeansadhe}', "");
     Expect(1, 68317, '\p{Joining_Group=:\Amanichaeansadhe\z:}', "");;
     Expect(0, 68318, '\p{Joining_Group=:\Amanichaeansadhe\z:}', "");;
-    Expect(1, 68317, '\p{Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(0, 68317, '\p{^Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(0, 68317, '\P{Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(1, 68317, '\P{^Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(0, 68318, '\p{Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(1, 68318, '\p{^Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(1, 68318, '\P{Joining_Group=-	Manichaean_SADHE}', "");
-    Expect(0, 68318, '\P{^Joining_Group=-	Manichaean_SADHE}', "");
-    Error('\p{Jg: 	manichaean_sadhe:=}');
-    Error('\P{Jg: 	manichaean_sadhe:=}');
+    Expect(1, 68317, '\p{Joining_Group= -manichaean_SADHE}', "");
+    Expect(0, 68317, '\p{^Joining_Group= -manichaean_SADHE}', "");
+    Expect(0, 68317, '\P{Joining_Group= -manichaean_SADHE}', "");
+    Expect(1, 68317, '\P{^Joining_Group= -manichaean_SADHE}', "");
+    Expect(0, 68318, '\p{Joining_Group= -manichaean_SADHE}', "");
+    Expect(1, 68318, '\p{^Joining_Group= -manichaean_SADHE}', "");
+    Expect(1, 68318, '\P{Joining_Group= -manichaean_SADHE}', "");
+    Expect(0, 68318, '\P{^Joining_Group= -manichaean_SADHE}', "");
+    Error('\p{Jg=:= -manichaean_Sadhe}');
+    Error('\P{Jg=:= -manichaean_Sadhe}');
     Expect(1, 68317, '\p{Jg=:\AManichaean_Sadhe\z:}', "");;
     Expect(0, 68318, '\p{Jg=:\AManichaean_Sadhe\z:}', "");;
     Expect(1, 68317, '\p{Jg=manichaeansadhe}', "");
@@ -57623,52 +58229,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68318, '\P{^Jg=manichaeansadhe}', "");
     Expect(1, 68317, '\p{Jg=:\Amanichaeansadhe\z:}', "");;
     Expect(0, 68318, '\p{Jg=:\Amanichaeansadhe\z:}', "");;
-    Expect(1, 68317, '\p{Jg=_-manichaean_Sadhe}', "");
-    Expect(0, 68317, '\p{^Jg=_-manichaean_Sadhe}', "");
-    Expect(0, 68317, '\P{Jg=_-manichaean_Sadhe}', "");
-    Expect(1, 68317, '\P{^Jg=_-manichaean_Sadhe}', "");
-    Expect(0, 68318, '\p{Jg=_-manichaean_Sadhe}', "");
-    Expect(1, 68318, '\p{^Jg=_-manichaean_Sadhe}', "");
-    Expect(1, 68318, '\P{Jg=_-manichaean_Sadhe}', "");
-    Expect(0, 68318, '\P{^Jg=_-manichaean_Sadhe}', "");
-    Error('\p{Is_Joining_Group= Manichaean_Sadhe/a/}');
-    Error('\P{Is_Joining_Group= Manichaean_Sadhe/a/}');
-    Expect(1, 68317, '\p{Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(0, 68317, '\p{^Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(0, 68317, '\P{Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(1, 68317, '\P{^Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(0, 68318, '\p{Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(1, 68318, '\p{^Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(1, 68318, '\P{Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(0, 68318, '\P{^Is_Joining_Group:	manichaeansadhe}', "");
-    Expect(1, 68317, '\p{Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(0, 68317, '\p{^Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(0, 68317, '\P{Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(1, 68317, '\P{^Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(0, 68318, '\p{Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(1, 68318, '\p{^Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(1, 68318, '\P{Is_Joining_Group=  Manichaean_SADHE}', "");
-    Expect(0, 68318, '\P{^Is_Joining_Group=  Manichaean_SADHE}', "");
-    Error('\p{Is_Jg= -manichaean_SADHE/a/}');
-    Error('\P{Is_Jg= -manichaean_SADHE/a/}');
-    Expect(1, 68317, '\p{Is_Jg=manichaeansadhe}', "");
-    Expect(0, 68317, '\p{^Is_Jg=manichaeansadhe}', "");
-    Expect(0, 68317, '\P{Is_Jg=manichaeansadhe}', "");
-    Expect(1, 68317, '\P{^Is_Jg=manichaeansadhe}', "");
-    Expect(0, 68318, '\p{Is_Jg=manichaeansadhe}', "");
-    Expect(1, 68318, '\p{^Is_Jg=manichaeansadhe}', "");
-    Expect(1, 68318, '\P{Is_Jg=manichaeansadhe}', "");
-    Expect(0, 68318, '\P{^Is_Jg=manichaeansadhe}', "");
-    Expect(1, 68317, '\p{Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(0, 68317, '\p{^Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(0, 68317, '\P{Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(1, 68317, '\P{^Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(0, 68318, '\p{Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(1, 68318, '\p{^Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(1, 68318, '\P{Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Expect(0, 68318, '\P{^Is_Jg=	 MANICHAEAN_SADHE}', "");
-    Error('\p{Joining_Group=manichaean_Samekh/a/}');
-    Error('\P{Joining_Group=manichaean_Samekh/a/}');
+    Expect(1, 68317, '\p{Jg: 	manichaean_Sadhe}', "");
+    Expect(0, 68317, '\p{^Jg: 	manichaean_Sadhe}', "");
+    Expect(0, 68317, '\P{Jg: 	manichaean_Sadhe}', "");
+    Expect(1, 68317, '\P{^Jg: 	manichaean_Sadhe}', "");
+    Expect(0, 68318, '\p{Jg: 	manichaean_Sadhe}', "");
+    Expect(1, 68318, '\p{^Jg: 	manichaean_Sadhe}', "");
+    Expect(1, 68318, '\P{Jg: 	manichaean_Sadhe}', "");
+    Expect(0, 68318, '\P{^Jg: 	manichaean_Sadhe}', "");
+    Error('\p{Is_Joining_Group=/a/_ Manichaean_Sadhe}');
+    Error('\P{Is_Joining_Group=/a/_ Manichaean_Sadhe}');
+    Expect(1, 68317, '\p{Is_Joining_Group=manichaeansadhe}', "");
+    Expect(0, 68317, '\p{^Is_Joining_Group=manichaeansadhe}', "");
+    Expect(0, 68317, '\P{Is_Joining_Group=manichaeansadhe}', "");
+    Expect(1, 68317, '\P{^Is_Joining_Group=manichaeansadhe}', "");
+    Expect(0, 68318, '\p{Is_Joining_Group=manichaeansadhe}', "");
+    Expect(1, 68318, '\p{^Is_Joining_Group=manichaeansadhe}', "");
+    Expect(1, 68318, '\P{Is_Joining_Group=manichaeansadhe}', "");
+    Expect(0, 68318, '\P{^Is_Joining_Group=manichaeansadhe}', "");
+    Expect(1, 68317, '\p{Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(0, 68317, '\p{^Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(0, 68317, '\P{Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(1, 68317, '\P{^Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(0, 68318, '\p{Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(1, 68318, '\p{^Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(1, 68318, '\P{Is_Joining_Group=  manichaean_SADHE}', "");
+    Expect(0, 68318, '\P{^Is_Joining_Group=  manichaean_SADHE}', "");
+    Error('\p{Is_Jg=	Manichaean_Sadhe/a/}');
+    Error('\P{Is_Jg=	Manichaean_Sadhe/a/}');
+    Expect(1, 68317, '\p{Is_Jg:   manichaeansadhe}', "");
+    Expect(0, 68317, '\p{^Is_Jg:   manichaeansadhe}', "");
+    Expect(0, 68317, '\P{Is_Jg:   manichaeansadhe}', "");
+    Expect(1, 68317, '\P{^Is_Jg:   manichaeansadhe}', "");
+    Expect(0, 68318, '\p{Is_Jg:   manichaeansadhe}', "");
+    Expect(1, 68318, '\p{^Is_Jg:   manichaeansadhe}', "");
+    Expect(1, 68318, '\P{Is_Jg:   manichaeansadhe}', "");
+    Expect(0, 68318, '\P{^Is_Jg:   manichaeansadhe}', "");
+    Expect(1, 68317, '\p{Is_Jg=Manichaean_SADHE}', "");
+    Expect(0, 68317, '\p{^Is_Jg=Manichaean_SADHE}', "");
+    Expect(0, 68317, '\P{Is_Jg=Manichaean_SADHE}', "");
+    Expect(1, 68317, '\P{^Is_Jg=Manichaean_SADHE}', "");
+    Expect(0, 68318, '\p{Is_Jg=Manichaean_SADHE}', "");
+    Expect(1, 68318, '\p{^Is_Jg=Manichaean_SADHE}', "");
+    Expect(1, 68318, '\P{Is_Jg=Manichaean_SADHE}', "");
+    Expect(0, 68318, '\P{^Is_Jg=Manichaean_SADHE}', "");
+    Error('\p{Joining_Group=__manichaean_SAMEKH:=}');
+    Error('\P{Joining_Group=__manichaean_SAMEKH:=}');
     Expect(1, 68312, '\p{Joining_Group=:\AManichaean_Samekh\z:}', "");;
     Expect(0, 68313, '\p{Joining_Group=:\AManichaean_Samekh\z:}', "");;
     Expect(1, 68312, '\p{Joining_Group=manichaeansamekh}', "");
@@ -57681,16 +58287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68313, '\P{^Joining_Group=manichaeansamekh}', "");
     Expect(1, 68312, '\p{Joining_Group=:\Amanichaeansamekh\z:}', "");;
     Expect(0, 68313, '\p{Joining_Group=:\Amanichaeansamekh\z:}', "");;
-    Expect(1, 68312, '\p{Joining_Group= Manichaean_Samekh}', "");
-    Expect(0, 68312, '\p{^Joining_Group= Manichaean_Samekh}', "");
-    Expect(0, 68312, '\P{Joining_Group= Manichaean_Samekh}', "");
-    Expect(1, 68312, '\P{^Joining_Group= Manichaean_Samekh}', "");
-    Expect(0, 68313, '\p{Joining_Group= Manichaean_Samekh}', "");
-    Expect(1, 68313, '\p{^Joining_Group= Manichaean_Samekh}', "");
-    Expect(1, 68313, '\P{Joining_Group= Manichaean_Samekh}', "");
-    Expect(0, 68313, '\P{^Joining_Group= Manichaean_Samekh}', "");
-    Error('\p{Jg=:=	Manichaean_Samekh}');
-    Error('\P{Jg=:=	Manichaean_Samekh}');
+    Expect(1, 68312, '\p{Joining_Group=	manichaean_Samekh}', "");
+    Expect(0, 68312, '\p{^Joining_Group=	manichaean_Samekh}', "");
+    Expect(0, 68312, '\P{Joining_Group=	manichaean_Samekh}', "");
+    Expect(1, 68312, '\P{^Joining_Group=	manichaean_Samekh}', "");
+    Expect(0, 68313, '\p{Joining_Group=	manichaean_Samekh}', "");
+    Expect(1, 68313, '\p{^Joining_Group=	manichaean_Samekh}', "");
+    Expect(1, 68313, '\P{Joining_Group=	manichaean_Samekh}', "");
+    Expect(0, 68313, '\P{^Joining_Group=	manichaean_Samekh}', "");
+    Error('\p{Jg=:=_-manichaean_SAMEKH}');
+    Error('\P{Jg=:=_-manichaean_SAMEKH}');
     Expect(1, 68312, '\p{Jg=:\AManichaean_Samekh\z:}', "");;
     Expect(0, 68313, '\p{Jg=:\AManichaean_Samekh\z:}', "");;
     Expect(1, 68312, '\p{Jg=manichaeansamekh}', "");
@@ -57703,16 +58309,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68313, '\P{^Jg=manichaeansamekh}', "");
     Expect(1, 68312, '\p{Jg=:\Amanichaeansamekh\z:}', "");;
     Expect(0, 68313, '\p{Jg=:\Amanichaeansamekh\z:}', "");;
-    Expect(1, 68312, '\p{Jg=-_manichaean_Samekh}', "");
-    Expect(0, 68312, '\p{^Jg=-_manichaean_Samekh}', "");
-    Expect(0, 68312, '\P{Jg=-_manichaean_Samekh}', "");
-    Expect(1, 68312, '\P{^Jg=-_manichaean_Samekh}', "");
-    Expect(0, 68313, '\p{Jg=-_manichaean_Samekh}', "");
-    Expect(1, 68313, '\p{^Jg=-_manichaean_Samekh}', "");
-    Expect(1, 68313, '\P{Jg=-_manichaean_Samekh}', "");
-    Expect(0, 68313, '\P{^Jg=-_manichaean_Samekh}', "");
-    Error('\p{Is_Joining_Group=-/a/manichaean_Samekh}');
-    Error('\P{Is_Joining_Group=-/a/manichaean_Samekh}');
+    Expect(1, 68312, '\p{Jg: _-Manichaean_SAMEKH}', "");
+    Expect(0, 68312, '\p{^Jg: _-Manichaean_SAMEKH}', "");
+    Expect(0, 68312, '\P{Jg: _-Manichaean_SAMEKH}', "");
+    Expect(1, 68312, '\P{^Jg: _-Manichaean_SAMEKH}', "");
+    Expect(0, 68313, '\p{Jg: _-Manichaean_SAMEKH}', "");
+    Expect(1, 68313, '\p{^Jg: _-Manichaean_SAMEKH}', "");
+    Expect(1, 68313, '\P{Jg: _-Manichaean_SAMEKH}', "");
+    Expect(0, 68313, '\P{^Jg: _-Manichaean_SAMEKH}', "");
+    Error('\p{Is_Joining_Group=	Manichaean_Samekh:=}');
+    Error('\P{Is_Joining_Group=	Manichaean_Samekh:=}');
     Expect(1, 68312, '\p{Is_Joining_Group=manichaeansamekh}', "");
     Expect(0, 68312, '\p{^Is_Joining_Group=manichaeansamekh}', "");
     Expect(0, 68312, '\P{Is_Joining_Group=manichaeansamekh}', "");
@@ -57721,34 +58327,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68313, '\p{^Is_Joining_Group=manichaeansamekh}', "");
     Expect(1, 68313, '\P{Is_Joining_Group=manichaeansamekh}', "");
     Expect(0, 68313, '\P{^Is_Joining_Group=manichaeansamekh}', "");
-    Expect(1, 68312, '\p{Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(0, 68312, '\p{^Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(0, 68312, '\P{Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(1, 68312, '\P{^Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(0, 68313, '\p{Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(1, 68313, '\p{^Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(1, 68313, '\P{Is_Joining_Group=--Manichaean_samekh}', "");
-    Expect(0, 68313, '\P{^Is_Joining_Group=--Manichaean_samekh}', "");
-    Error('\p{Is_Jg=/a/__MANICHAEAN_Samekh}');
-    Error('\P{Is_Jg=/a/__MANICHAEAN_Samekh}');
-    Expect(1, 68312, '\p{Is_Jg=manichaeansamekh}', "");
-    Expect(0, 68312, '\p{^Is_Jg=manichaeansamekh}', "");
-    Expect(0, 68312, '\P{Is_Jg=manichaeansamekh}', "");
-    Expect(1, 68312, '\P{^Is_Jg=manichaeansamekh}', "");
-    Expect(0, 68313, '\p{Is_Jg=manichaeansamekh}', "");
-    Expect(1, 68313, '\p{^Is_Jg=manichaeansamekh}', "");
-    Expect(1, 68313, '\P{Is_Jg=manichaeansamekh}', "");
-    Expect(0, 68313, '\P{^Is_Jg=manichaeansamekh}', "");
-    Expect(1, 68312, '\p{Is_Jg= -Manichaean_Samekh}', "");
-    Expect(0, 68312, '\p{^Is_Jg= -Manichaean_Samekh}', "");
-    Expect(0, 68312, '\P{Is_Jg= -Manichaean_Samekh}', "");
-    Expect(1, 68312, '\P{^Is_Jg= -Manichaean_Samekh}', "");
-    Expect(0, 68313, '\p{Is_Jg= -Manichaean_Samekh}', "");
-    Expect(1, 68313, '\p{^Is_Jg= -Manichaean_Samekh}', "");
-    Expect(1, 68313, '\P{Is_Jg= -Manichaean_Samekh}', "");
-    Expect(0, 68313, '\P{^Is_Jg= -Manichaean_Samekh}', "");
-    Error('\p{Joining_Group=:=_Manichaean_Taw}');
-    Error('\P{Joining_Group=:=_Manichaean_Taw}');
+    Expect(1, 68312, '\p{Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(0, 68312, '\p{^Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(0, 68312, '\P{Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(1, 68312, '\P{^Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(0, 68313, '\p{Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(1, 68313, '\p{^Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(1, 68313, '\P{Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Expect(0, 68313, '\P{^Is_Joining_Group=_Manichaean_SAMEKH}', "");
+    Error('\p{Is_Jg=	:=Manichaean_Samekh}');
+    Error('\P{Is_Jg=	:=Manichaean_Samekh}');
+    Expect(1, 68312, '\p{Is_Jg:   manichaeansamekh}', "");
+    Expect(0, 68312, '\p{^Is_Jg:   manichaeansamekh}', "");
+    Expect(0, 68312, '\P{Is_Jg:   manichaeansamekh}', "");
+    Expect(1, 68312, '\P{^Is_Jg:   manichaeansamekh}', "");
+    Expect(0, 68313, '\p{Is_Jg:   manichaeansamekh}', "");
+    Expect(1, 68313, '\p{^Is_Jg:   manichaeansamekh}', "");
+    Expect(1, 68313, '\P{Is_Jg:   manichaeansamekh}', "");
+    Expect(0, 68313, '\P{^Is_Jg:   manichaeansamekh}', "");
+    Expect(1, 68312, '\p{Is_Jg=-	Manichaean_samekh}', "");
+    Expect(0, 68312, '\p{^Is_Jg=-	Manichaean_samekh}', "");
+    Expect(0, 68312, '\P{Is_Jg=-	Manichaean_samekh}', "");
+    Expect(1, 68312, '\P{^Is_Jg=-	Manichaean_samekh}', "");
+    Expect(0, 68313, '\p{Is_Jg=-	Manichaean_samekh}', "");
+    Expect(1, 68313, '\p{^Is_Jg=-	Manichaean_samekh}', "");
+    Expect(1, 68313, '\P{Is_Jg=-	Manichaean_samekh}', "");
+    Expect(0, 68313, '\P{^Is_Jg=-	Manichaean_samekh}', "");
+    Error('\p{Joining_Group=-:=manichaean_Taw}');
+    Error('\P{Joining_Group=-:=manichaean_Taw}');
     Expect(1, 68324, '\p{Joining_Group=:\AManichaean_Taw\z:}', "");;
     Expect(0, 68325, '\p{Joining_Group=:\AManichaean_Taw\z:}', "");;
     Expect(1, 68324, '\p{Joining_Group=manichaeantaw}', "");
@@ -57761,16 +58367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68325, '\P{^Joining_Group=manichaeantaw}', "");
     Expect(1, 68324, '\p{Joining_Group=:\Amanichaeantaw\z:}', "");;
     Expect(0, 68325, '\p{Joining_Group=:\Amanichaeantaw\z:}', "");;
-    Expect(1, 68324, '\p{Joining_Group: --Manichaean_taw}', "");
-    Expect(0, 68324, '\p{^Joining_Group: --Manichaean_taw}', "");
-    Expect(0, 68324, '\P{Joining_Group: --Manichaean_taw}', "");
-    Expect(1, 68324, '\P{^Joining_Group: --Manichaean_taw}', "");
-    Expect(0, 68325, '\p{Joining_Group: --Manichaean_taw}', "");
-    Expect(1, 68325, '\p{^Joining_Group: --Manichaean_taw}', "");
-    Expect(1, 68325, '\P{Joining_Group: --Manichaean_taw}', "");
-    Expect(0, 68325, '\P{^Joining_Group: --Manichaean_taw}', "");
-    Error('\p{Jg:	 _manichaean_Taw/a/}');
-    Error('\P{Jg:	 _manichaean_Taw/a/}');
+    Expect(1, 68324, '\p{Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(0, 68324, '\p{^Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(0, 68324, '\P{Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(1, 68324, '\P{^Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(0, 68325, '\p{Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(1, 68325, '\p{^Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(1, 68325, '\P{Joining_Group:		MANICHAEAN_TAW}', "");
+    Expect(0, 68325, '\P{^Joining_Group:		MANICHAEAN_TAW}', "");
+    Error('\p{Jg= :=manichaean_TAW}');
+    Error('\P{Jg= :=manichaean_TAW}');
     Expect(1, 68324, '\p{Jg=:\AManichaean_Taw\z:}', "");;
     Expect(0, 68325, '\p{Jg=:\AManichaean_Taw\z:}', "");;
     Expect(1, 68324, '\p{Jg=manichaeantaw}', "");
@@ -57783,34 +58389,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68325, '\P{^Jg=manichaeantaw}', "");
     Expect(1, 68324, '\p{Jg=:\Amanichaeantaw\z:}', "");;
     Expect(0, 68325, '\p{Jg=:\Amanichaeantaw\z:}', "");;
-    Expect(1, 68324, '\p{Jg=--Manichaean_TAW}', "");
-    Expect(0, 68324, '\p{^Jg=--Manichaean_TAW}', "");
-    Expect(0, 68324, '\P{Jg=--Manichaean_TAW}', "");
-    Expect(1, 68324, '\P{^Jg=--Manichaean_TAW}', "");
-    Expect(0, 68325, '\p{Jg=--Manichaean_TAW}', "");
-    Expect(1, 68325, '\p{^Jg=--Manichaean_TAW}', "");
-    Expect(1, 68325, '\P{Jg=--Manichaean_TAW}', "");
-    Expect(0, 68325, '\P{^Jg=--Manichaean_TAW}', "");
-    Error('\p{Is_Joining_Group:	-MANICHAEAN_taw/a/}');
-    Error('\P{Is_Joining_Group:	-MANICHAEAN_taw/a/}');
-    Expect(1, 68324, '\p{Is_Joining_Group=manichaeantaw}', "");
-    Expect(0, 68324, '\p{^Is_Joining_Group=manichaeantaw}', "");
-    Expect(0, 68324, '\P{Is_Joining_Group=manichaeantaw}', "");
-    Expect(1, 68324, '\P{^Is_Joining_Group=manichaeantaw}', "");
-    Expect(0, 68325, '\p{Is_Joining_Group=manichaeantaw}', "");
-    Expect(1, 68325, '\p{^Is_Joining_Group=manichaeantaw}', "");
-    Expect(1, 68325, '\P{Is_Joining_Group=manichaeantaw}', "");
-    Expect(0, 68325, '\P{^Is_Joining_Group=manichaeantaw}', "");
-    Expect(1, 68324, '\p{Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(0, 68324, '\p{^Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(0, 68324, '\P{Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(1, 68324, '\P{^Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(0, 68325, '\p{Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(1, 68325, '\p{^Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(1, 68325, '\P{Is_Joining_Group=	Manichaean_Taw}', "");
-    Expect(0, 68325, '\P{^Is_Joining_Group=	Manichaean_Taw}', "");
-    Error('\p{Is_Jg=/a/	MANICHAEAN_Taw}');
-    Error('\P{Is_Jg=/a/	MANICHAEAN_Taw}');
+    Expect(1, 68324, '\p{Jg=-	manichaean_taw}', "");
+    Expect(0, 68324, '\p{^Jg=-	manichaean_taw}', "");
+    Expect(0, 68324, '\P{Jg=-	manichaean_taw}', "");
+    Expect(1, 68324, '\P{^Jg=-	manichaean_taw}', "");
+    Expect(0, 68325, '\p{Jg=-	manichaean_taw}', "");
+    Expect(1, 68325, '\p{^Jg=-	manichaean_taw}', "");
+    Expect(1, 68325, '\P{Jg=-	manichaean_taw}', "");
+    Expect(0, 68325, '\P{^Jg=-	manichaean_taw}', "");
+    Error('\p{Is_Joining_Group=/a/	_manichaean_Taw}');
+    Error('\P{Is_Joining_Group=/a/	_manichaean_Taw}');
+    Expect(1, 68324, '\p{Is_Joining_Group: manichaeantaw}', "");
+    Expect(0, 68324, '\p{^Is_Joining_Group: manichaeantaw}', "");
+    Expect(0, 68324, '\P{Is_Joining_Group: manichaeantaw}', "");
+    Expect(1, 68324, '\P{^Is_Joining_Group: manichaeantaw}', "");
+    Expect(0, 68325, '\p{Is_Joining_Group: manichaeantaw}', "");
+    Expect(1, 68325, '\p{^Is_Joining_Group: manichaeantaw}', "");
+    Expect(1, 68325, '\P{Is_Joining_Group: manichaeantaw}', "");
+    Expect(0, 68325, '\P{^Is_Joining_Group: manichaeantaw}', "");
+    Expect(1, 68324, '\p{Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(0, 68324, '\p{^Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(0, 68324, '\P{Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(1, 68324, '\P{^Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(0, 68325, '\p{Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(1, 68325, '\p{^Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(1, 68325, '\P{Is_Joining_Group=--Manichaean_Taw}', "");
+    Expect(0, 68325, '\P{^Is_Joining_Group=--Manichaean_Taw}', "");
+    Error('\p{Is_Jg=	_manichaean_Taw:=}');
+    Error('\P{Is_Jg=	_manichaean_Taw:=}');
     Expect(1, 68324, '\p{Is_Jg=manichaeantaw}', "");
     Expect(0, 68324, '\p{^Is_Jg=manichaeantaw}', "");
     Expect(0, 68324, '\P{Is_Jg=manichaeantaw}', "");
@@ -57819,38 +58425,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68325, '\p{^Is_Jg=manichaeantaw}', "");
     Expect(1, 68325, '\P{Is_Jg=manichaeantaw}', "");
     Expect(0, 68325, '\P{^Is_Jg=manichaeantaw}', "");
-    Expect(1, 68324, '\p{Is_Jg=-_Manichaean_taw}', "");
-    Expect(0, 68324, '\p{^Is_Jg=-_Manichaean_taw}', "");
-    Expect(0, 68324, '\P{Is_Jg=-_Manichaean_taw}', "");
-    Expect(1, 68324, '\P{^Is_Jg=-_Manichaean_taw}', "");
-    Expect(0, 68325, '\p{Is_Jg=-_Manichaean_taw}', "");
-    Expect(1, 68325, '\p{^Is_Jg=-_Manichaean_taw}', "");
-    Expect(1, 68325, '\P{Is_Jg=-_Manichaean_taw}', "");
-    Expect(0, 68325, '\P{^Is_Jg=-_Manichaean_taw}', "");
-    Error('\p{Joining_Group=/a/  manichaean_TEN}');
-    Error('\P{Joining_Group=/a/  manichaean_TEN}');
+    Expect(1, 68324, '\p{Is_Jg:	manichaean_taw}', "");
+    Expect(0, 68324, '\p{^Is_Jg:	manichaean_taw}', "");
+    Expect(0, 68324, '\P{Is_Jg:	manichaean_taw}', "");
+    Expect(1, 68324, '\P{^Is_Jg:	manichaean_taw}', "");
+    Expect(0, 68325, '\p{Is_Jg:	manichaean_taw}', "");
+    Expect(1, 68325, '\p{^Is_Jg:	manichaean_taw}', "");
+    Expect(1, 68325, '\P{Is_Jg:	manichaean_taw}', "");
+    Expect(0, 68325, '\P{^Is_Jg:	manichaean_taw}', "");
+    Error('\p{Joining_Group=:=_-manichaean_TEN}');
+    Error('\P{Joining_Group=:=_-manichaean_TEN}');
     Expect(1, 68333, '\p{Joining_Group=:\AManichaean_Ten\z:}', "");;
     Expect(0, 68334, '\p{Joining_Group=:\AManichaean_Ten\z:}', "");;
-    Expect(1, 68333, '\p{Joining_Group: manichaeanten}', "");
-    Expect(0, 68333, '\p{^Joining_Group: manichaeanten}', "");
-    Expect(0, 68333, '\P{Joining_Group: manichaeanten}', "");
-    Expect(1, 68333, '\P{^Joining_Group: manichaeanten}', "");
-    Expect(0, 68334, '\p{Joining_Group: manichaeanten}', "");
-    Expect(1, 68334, '\p{^Joining_Group: manichaeanten}', "");
-    Expect(1, 68334, '\P{Joining_Group: manichaeanten}', "");
-    Expect(0, 68334, '\P{^Joining_Group: manichaeanten}', "");
+    Expect(1, 68333, '\p{Joining_Group=manichaeanten}', "");
+    Expect(0, 68333, '\p{^Joining_Group=manichaeanten}', "");
+    Expect(0, 68333, '\P{Joining_Group=manichaeanten}', "");
+    Expect(1, 68333, '\P{^Joining_Group=manichaeanten}', "");
+    Expect(0, 68334, '\p{Joining_Group=manichaeanten}', "");
+    Expect(1, 68334, '\p{^Joining_Group=manichaeanten}', "");
+    Expect(1, 68334, '\P{Joining_Group=manichaeanten}', "");
+    Expect(0, 68334, '\P{^Joining_Group=manichaeanten}', "");
     Expect(1, 68333, '\p{Joining_Group=:\Amanichaeanten\z:}', "");;
     Expect(0, 68334, '\p{Joining_Group=:\Amanichaeanten\z:}', "");;
-    Expect(1, 68333, '\p{Joining_Group=-	manichaean_Ten}', "");
-    Expect(0, 68333, '\p{^Joining_Group=-	manichaean_Ten}', "");
-    Expect(0, 68333, '\P{Joining_Group=-	manichaean_Ten}', "");
-    Expect(1, 68333, '\P{^Joining_Group=-	manichaean_Ten}', "");
-    Expect(0, 68334, '\p{Joining_Group=-	manichaean_Ten}', "");
-    Expect(1, 68334, '\p{^Joining_Group=-	manichaean_Ten}', "");
-    Expect(1, 68334, '\P{Joining_Group=-	manichaean_Ten}', "");
-    Expect(0, 68334, '\P{^Joining_Group=-	manichaean_Ten}', "");
-    Error('\p{Jg:	 :=manichaean_Ten}');
-    Error('\P{Jg:	 :=manichaean_Ten}');
+    Expect(1, 68333, '\p{Joining_Group=--Manichaean_TEN}', "");
+    Expect(0, 68333, '\p{^Joining_Group=--Manichaean_TEN}', "");
+    Expect(0, 68333, '\P{Joining_Group=--Manichaean_TEN}', "");
+    Expect(1, 68333, '\P{^Joining_Group=--Manichaean_TEN}', "");
+    Expect(0, 68334, '\p{Joining_Group=--Manichaean_TEN}', "");
+    Expect(1, 68334, '\p{^Joining_Group=--Manichaean_TEN}', "");
+    Expect(1, 68334, '\P{Joining_Group=--Manichaean_TEN}', "");
+    Expect(0, 68334, '\P{^Joining_Group=--Manichaean_TEN}', "");
+    Error('\p{Jg=/a/MANICHAEAN_TEN}');
+    Error('\P{Jg=/a/MANICHAEAN_TEN}');
     Expect(1, 68333, '\p{Jg=:\AManichaean_Ten\z:}', "");;
     Expect(0, 68334, '\p{Jg=:\AManichaean_Ten\z:}', "");;
     Expect(1, 68333, '\p{Jg=manichaeanten}', "");
@@ -57863,34 +58469,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68334, '\P{^Jg=manichaeanten}', "");
     Expect(1, 68333, '\p{Jg=:\Amanichaeanten\z:}', "");;
     Expect(0, 68334, '\p{Jg=:\Amanichaeanten\z:}', "");;
-    Expect(1, 68333, '\p{Jg= 	Manichaean_Ten}', "");
-    Expect(0, 68333, '\p{^Jg= 	Manichaean_Ten}', "");
-    Expect(0, 68333, '\P{Jg= 	Manichaean_Ten}', "");
-    Expect(1, 68333, '\P{^Jg= 	Manichaean_Ten}', "");
-    Expect(0, 68334, '\p{Jg= 	Manichaean_Ten}', "");
-    Expect(1, 68334, '\p{^Jg= 	Manichaean_Ten}', "");
-    Expect(1, 68334, '\P{Jg= 	Manichaean_Ten}', "");
-    Expect(0, 68334, '\P{^Jg= 	Manichaean_Ten}', "");
-    Error('\p{Is_Joining_Group=		Manichaean_Ten:=}');
-    Error('\P{Is_Joining_Group=		Manichaean_Ten:=}');
-    Expect(1, 68333, '\p{Is_Joining_Group:   manichaeanten}', "");
-    Expect(0, 68333, '\p{^Is_Joining_Group:   manichaeanten}', "");
-    Expect(0, 68333, '\P{Is_Joining_Group:   manichaeanten}', "");
-    Expect(1, 68333, '\P{^Is_Joining_Group:   manichaeanten}', "");
-    Expect(0, 68334, '\p{Is_Joining_Group:   manichaeanten}', "");
-    Expect(1, 68334, '\p{^Is_Joining_Group:   manichaeanten}', "");
-    Expect(1, 68334, '\P{Is_Joining_Group:   manichaeanten}', "");
-    Expect(0, 68334, '\P{^Is_Joining_Group:   manichaeanten}', "");
-    Expect(1, 68333, '\p{Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(0, 68333, '\p{^Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(0, 68333, '\P{Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(1, 68333, '\P{^Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(0, 68334, '\p{Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(1, 68334, '\p{^Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(1, 68334, '\P{Is_Joining_Group=	_manichaean_TEN}', "");
-    Expect(0, 68334, '\P{^Is_Joining_Group=	_manichaean_TEN}', "");
-    Error('\p{Is_Jg=  Manichaean_Ten/a/}');
-    Error('\P{Is_Jg=  Manichaean_Ten/a/}');
+    Expect(1, 68333, '\p{Jg:   _ manichaean_ten}', "");
+    Expect(0, 68333, '\p{^Jg:   _ manichaean_ten}', "");
+    Expect(0, 68333, '\P{Jg:   _ manichaean_ten}', "");
+    Expect(1, 68333, '\P{^Jg:   _ manichaean_ten}', "");
+    Expect(0, 68334, '\p{Jg:   _ manichaean_ten}', "");
+    Expect(1, 68334, '\p{^Jg:   _ manichaean_ten}', "");
+    Expect(1, 68334, '\P{Jg:   _ manichaean_ten}', "");
+    Expect(0, 68334, '\P{^Jg:   _ manichaean_ten}', "");
+    Error('\p{Is_Joining_Group: 	 Manichaean_Ten:=}');
+    Error('\P{Is_Joining_Group: 	 Manichaean_Ten:=}');
+    Expect(1, 68333, '\p{Is_Joining_Group=manichaeanten}', "");
+    Expect(0, 68333, '\p{^Is_Joining_Group=manichaeanten}', "");
+    Expect(0, 68333, '\P{Is_Joining_Group=manichaeanten}', "");
+    Expect(1, 68333, '\P{^Is_Joining_Group=manichaeanten}', "");
+    Expect(0, 68334, '\p{Is_Joining_Group=manichaeanten}', "");
+    Expect(1, 68334, '\p{^Is_Joining_Group=manichaeanten}', "");
+    Expect(1, 68334, '\P{Is_Joining_Group=manichaeanten}', "");
+    Expect(0, 68334, '\P{^Is_Joining_Group=manichaeanten}', "");
+    Expect(1, 68333, '\p{Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(0, 68333, '\p{^Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(0, 68333, '\P{Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(1, 68333, '\P{^Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(0, 68334, '\p{Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(1, 68334, '\p{^Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(1, 68334, '\P{Is_Joining_Group=-_Manichaean_TEN}', "");
+    Expect(0, 68334, '\P{^Is_Joining_Group=-_Manichaean_TEN}', "");
+    Error('\p{Is_Jg:   _:=manichaean_TEN}');
+    Error('\P{Is_Jg:   _:=manichaean_TEN}');
     Expect(1, 68333, '\p{Is_Jg=manichaeanten}', "");
     Expect(0, 68333, '\p{^Is_Jg=manichaeanten}', "");
     Expect(0, 68333, '\P{Is_Jg=manichaeanten}', "");
@@ -57899,16 +58505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68334, '\p{^Is_Jg=manichaeanten}', "");
     Expect(1, 68334, '\P{Is_Jg=manichaeanten}', "");
     Expect(0, 68334, '\P{^Is_Jg=manichaeanten}', "");
-    Expect(1, 68333, '\p{Is_Jg=		manichaean_Ten}', "");
-    Expect(0, 68333, '\p{^Is_Jg=		manichaean_Ten}', "");
-    Expect(0, 68333, '\P{Is_Jg=		manichaean_Ten}', "");
-    Expect(1, 68333, '\P{^Is_Jg=		manichaean_Ten}', "");
-    Expect(0, 68334, '\p{Is_Jg=		manichaean_Ten}', "");
-    Expect(1, 68334, '\p{^Is_Jg=		manichaean_Ten}', "");
-    Expect(1, 68334, '\P{Is_Jg=		manichaean_Ten}', "");
-    Expect(0, 68334, '\P{^Is_Jg=		manichaean_Ten}', "");
-    Error('\p{Joining_Group=:=--MANICHAEAN_Teth}');
-    Error('\P{Joining_Group=:=--MANICHAEAN_Teth}');
+    Expect(1, 68333, '\p{Is_Jg=	Manichaean_Ten}', "");
+    Expect(0, 68333, '\p{^Is_Jg=	Manichaean_Ten}', "");
+    Expect(0, 68333, '\P{Is_Jg=	Manichaean_Ten}', "");
+    Expect(1, 68333, '\P{^Is_Jg=	Manichaean_Ten}', "");
+    Expect(0, 68334, '\p{Is_Jg=	Manichaean_Ten}', "");
+    Expect(1, 68334, '\p{^Is_Jg=	Manichaean_Ten}', "");
+    Expect(1, 68334, '\P{Is_Jg=	Manichaean_Ten}', "");
+    Expect(0, 68334, '\P{^Is_Jg=	Manichaean_Ten}', "");
+    Error('\p{Joining_Group=- Manichaean_Teth:=}');
+    Error('\P{Joining_Group=- Manichaean_Teth:=}');
     Expect(1, 68302, '\p{Joining_Group=:\AManichaean_Teth\z:}', "");;
     Expect(0, 68303, '\p{Joining_Group=:\AManichaean_Teth\z:}', "");;
     Expect(1, 68302, '\p{Joining_Group=manichaeanteth}', "");
@@ -57921,16 +58527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68303, '\P{^Joining_Group=manichaeanteth}', "");
     Expect(1, 68302, '\p{Joining_Group=:\Amanichaeanteth\z:}', "");;
     Expect(0, 68303, '\p{Joining_Group=:\Amanichaeanteth\z:}', "");;
-    Expect(1, 68302, '\p{Joining_Group=	 Manichaean_Teth}', "");
-    Expect(0, 68302, '\p{^Joining_Group=	 Manichaean_Teth}', "");
-    Expect(0, 68302, '\P{Joining_Group=	 Manichaean_Teth}', "");
-    Expect(1, 68302, '\P{^Joining_Group=	 Manichaean_Teth}', "");
-    Expect(0, 68303, '\p{Joining_Group=	 Manichaean_Teth}', "");
-    Expect(1, 68303, '\p{^Joining_Group=	 Manichaean_Teth}', "");
-    Expect(1, 68303, '\P{Joining_Group=	 Manichaean_Teth}', "");
-    Expect(0, 68303, '\P{^Joining_Group=	 Manichaean_Teth}', "");
-    Error('\p{Jg=/a/-_manichaean_TETH}');
-    Error('\P{Jg=/a/-_manichaean_TETH}');
+    Expect(1, 68302, '\p{Joining_Group=		Manichaean_Teth}', "");
+    Expect(0, 68302, '\p{^Joining_Group=		Manichaean_Teth}', "");
+    Expect(0, 68302, '\P{Joining_Group=		Manichaean_Teth}', "");
+    Expect(1, 68302, '\P{^Joining_Group=		Manichaean_Teth}', "");
+    Expect(0, 68303, '\p{Joining_Group=		Manichaean_Teth}', "");
+    Expect(1, 68303, '\p{^Joining_Group=		Manichaean_Teth}', "");
+    Expect(1, 68303, '\P{Joining_Group=		Manichaean_Teth}', "");
+    Expect(0, 68303, '\P{^Joining_Group=		Manichaean_Teth}', "");
+    Error('\p{Jg=/a/_ Manichaean_TETH}');
+    Error('\P{Jg=/a/_ Manichaean_TETH}');
     Expect(1, 68302, '\p{Jg=:\AManichaean_Teth\z:}', "");;
     Expect(0, 68303, '\p{Jg=:\AManichaean_Teth\z:}', "");;
     Expect(1, 68302, '\p{Jg=manichaeanteth}', "");
@@ -57943,16 +58549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68303, '\P{^Jg=manichaeanteth}', "");
     Expect(1, 68302, '\p{Jg=:\Amanichaeanteth\z:}', "");;
     Expect(0, 68303, '\p{Jg=:\Amanichaeanteth\z:}', "");;
-    Expect(1, 68302, '\p{Jg=_	Manichaean_Teth}', "");
-    Expect(0, 68302, '\p{^Jg=_	Manichaean_Teth}', "");
-    Expect(0, 68302, '\P{Jg=_	Manichaean_Teth}', "");
-    Expect(1, 68302, '\P{^Jg=_	Manichaean_Teth}', "");
-    Expect(0, 68303, '\p{Jg=_	Manichaean_Teth}', "");
-    Expect(1, 68303, '\p{^Jg=_	Manichaean_Teth}', "");
-    Expect(1, 68303, '\P{Jg=_	Manichaean_Teth}', "");
-    Expect(0, 68303, '\P{^Jg=_	Manichaean_Teth}', "");
-    Error('\p{Is_Joining_Group= -manichaean_teth:=}');
-    Error('\P{Is_Joining_Group= -manichaean_teth:=}');
+    Expect(1, 68302, '\p{Jg=MANICHAEAN_Teth}', "");
+    Expect(0, 68302, '\p{^Jg=MANICHAEAN_Teth}', "");
+    Expect(0, 68302, '\P{Jg=MANICHAEAN_Teth}', "");
+    Expect(1, 68302, '\P{^Jg=MANICHAEAN_Teth}', "");
+    Expect(0, 68303, '\p{Jg=MANICHAEAN_Teth}', "");
+    Expect(1, 68303, '\p{^Jg=MANICHAEAN_Teth}', "");
+    Expect(1, 68303, '\P{Jg=MANICHAEAN_Teth}', "");
+    Expect(0, 68303, '\P{^Jg=MANICHAEAN_Teth}', "");
+    Error('\p{Is_Joining_Group: :=  manichaean_TETH}');
+    Error('\P{Is_Joining_Group: :=  manichaean_TETH}');
     Expect(1, 68302, '\p{Is_Joining_Group=manichaeanteth}', "");
     Expect(0, 68302, '\p{^Is_Joining_Group=manichaeanteth}', "");
     Expect(0, 68302, '\P{Is_Joining_Group=manichaeanteth}', "");
@@ -57961,16 +58567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68303, '\p{^Is_Joining_Group=manichaeanteth}', "");
     Expect(1, 68303, '\P{Is_Joining_Group=manichaeanteth}', "");
     Expect(0, 68303, '\P{^Is_Joining_Group=manichaeanteth}', "");
-    Expect(1, 68302, '\p{Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(0, 68302, '\p{^Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(0, 68302, '\P{Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(1, 68302, '\P{^Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(0, 68303, '\p{Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(1, 68303, '\p{^Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(1, 68303, '\P{Is_Joining_Group=- Manichaean_TETH}', "");
-    Expect(0, 68303, '\P{^Is_Joining_Group=- Manichaean_TETH}', "");
-    Error('\p{Is_Jg=-:=MANICHAEAN_TETH}');
-    Error('\P{Is_Jg=-:=MANICHAEAN_TETH}');
+    Expect(1, 68302, '\p{Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(0, 68302, '\p{^Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(0, 68302, '\P{Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(1, 68302, '\P{^Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(0, 68303, '\p{Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(1, 68303, '\p{^Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(1, 68303, '\P{Is_Joining_Group=_	Manichaean_Teth}', "");
+    Expect(0, 68303, '\P{^Is_Joining_Group=_	Manichaean_Teth}', "");
+    Error('\p{Is_Jg=/a/_ Manichaean_Teth}');
+    Error('\P{Is_Jg=/a/_ Manichaean_Teth}');
     Expect(1, 68302, '\p{Is_Jg=manichaeanteth}', "");
     Expect(0, 68302, '\p{^Is_Jg=manichaeanteth}', "");
     Expect(0, 68302, '\P{Is_Jg=manichaeanteth}', "");
@@ -57979,16 +58585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68303, '\p{^Is_Jg=manichaeanteth}', "");
     Expect(1, 68303, '\P{Is_Jg=manichaeanteth}', "");
     Expect(0, 68303, '\P{^Is_Jg=manichaeanteth}', "");
-    Expect(1, 68302, '\p{Is_Jg=-Manichaean_Teth}', "");
-    Expect(0, 68302, '\p{^Is_Jg=-Manichaean_Teth}', "");
-    Expect(0, 68302, '\P{Is_Jg=-Manichaean_Teth}', "");
-    Expect(1, 68302, '\P{^Is_Jg=-Manichaean_Teth}', "");
-    Expect(0, 68303, '\p{Is_Jg=-Manichaean_Teth}', "");
-    Expect(1, 68303, '\p{^Is_Jg=-Manichaean_Teth}', "");
-    Expect(1, 68303, '\P{Is_Jg=-Manichaean_Teth}', "");
-    Expect(0, 68303, '\P{^Is_Jg=-Manichaean_Teth}', "");
-    Error('\p{Joining_Group=	:=MANICHAEAN_thamedh}');
-    Error('\P{Joining_Group=	:=MANICHAEAN_thamedh}');
+    Expect(1, 68302, '\p{Is_Jg= _Manichaean_teth}', "");
+    Expect(0, 68302, '\p{^Is_Jg= _Manichaean_teth}', "");
+    Expect(0, 68302, '\P{Is_Jg= _Manichaean_teth}', "");
+    Expect(1, 68302, '\P{^Is_Jg= _Manichaean_teth}', "");
+    Expect(0, 68303, '\p{Is_Jg= _Manichaean_teth}', "");
+    Expect(1, 68303, '\p{^Is_Jg= _Manichaean_teth}', "");
+    Expect(1, 68303, '\P{Is_Jg= _Manichaean_teth}', "");
+    Expect(0, 68303, '\P{^Is_Jg= _Manichaean_teth}', "");
+    Error('\p{Joining_Group:- Manichaean_THAMEDH/a/}');
+    Error('\P{Joining_Group:- Manichaean_THAMEDH/a/}');
     Expect(1, 68309, '\p{Joining_Group=:\AManichaean_Thamedh\z:}', "");;
     Expect(0, 68310, '\p{Joining_Group=:\AManichaean_Thamedh\z:}', "");;
     Expect(1, 68309, '\p{Joining_Group=manichaeanthamedh}', "");
@@ -58001,16 +58607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68310, '\P{^Joining_Group=manichaeanthamedh}', "");
     Expect(1, 68309, '\p{Joining_Group=:\Amanichaeanthamedh\z:}', "");;
     Expect(0, 68310, '\p{Joining_Group=:\Amanichaeanthamedh\z:}', "");;
-    Expect(1, 68309, '\p{Joining_Group=  manichaean_Thamedh}', "");
-    Expect(0, 68309, '\p{^Joining_Group=  manichaean_Thamedh}', "");
-    Expect(0, 68309, '\P{Joining_Group=  manichaean_Thamedh}', "");
-    Expect(1, 68309, '\P{^Joining_Group=  manichaean_Thamedh}', "");
-    Expect(0, 68310, '\p{Joining_Group=  manichaean_Thamedh}', "");
-    Expect(1, 68310, '\p{^Joining_Group=  manichaean_Thamedh}', "");
-    Expect(1, 68310, '\P{Joining_Group=  manichaean_Thamedh}', "");
-    Expect(0, 68310, '\P{^Joining_Group=  manichaean_Thamedh}', "");
-    Error('\p{Jg=/a/	Manichaean_Thamedh}');
-    Error('\P{Jg=/a/	Manichaean_Thamedh}');
+    Expect(1, 68309, '\p{Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(0, 68309, '\p{^Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(0, 68309, '\P{Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(1, 68309, '\P{^Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(0, 68310, '\p{Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(1, 68310, '\p{^Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(1, 68310, '\P{Joining_Group:_manichaean_THAMEDH}', "");
+    Expect(0, 68310, '\P{^Joining_Group:_manichaean_THAMEDH}', "");
+    Error('\p{Jg=/a/_	Manichaean_THAMEDH}');
+    Error('\P{Jg=/a/_	Manichaean_THAMEDH}');
     Expect(1, 68309, '\p{Jg=:\AManichaean_Thamedh\z:}', "");;
     Expect(0, 68310, '\p{Jg=:\AManichaean_Thamedh\z:}', "");;
     Expect(1, 68309, '\p{Jg=manichaeanthamedh}', "");
@@ -58023,34 +58629,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68310, '\P{^Jg=manichaeanthamedh}', "");
     Expect(1, 68309, '\p{Jg=:\Amanichaeanthamedh\z:}', "");;
     Expect(0, 68310, '\p{Jg=:\Amanichaeanthamedh\z:}', "");;
-    Expect(1, 68309, '\p{Jg=-	manichaean_Thamedh}', "");
-    Expect(0, 68309, '\p{^Jg=-	manichaean_Thamedh}', "");
-    Expect(0, 68309, '\P{Jg=-	manichaean_Thamedh}', "");
-    Expect(1, 68309, '\P{^Jg=-	manichaean_Thamedh}', "");
-    Expect(0, 68310, '\p{Jg=-	manichaean_Thamedh}', "");
-    Expect(1, 68310, '\p{^Jg=-	manichaean_Thamedh}', "");
-    Expect(1, 68310, '\P{Jg=-	manichaean_Thamedh}', "");
-    Expect(0, 68310, '\P{^Jg=-	manichaean_Thamedh}', "");
-    Error('\p{Is_Joining_Group= -Manichaean_THAMEDH/a/}');
-    Error('\P{Is_Joining_Group= -Manichaean_THAMEDH/a/}');
-    Expect(1, 68309, '\p{Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(0, 68309, '\p{^Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(0, 68309, '\P{Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(1, 68309, '\P{^Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(0, 68310, '\p{Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(1, 68310, '\p{^Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(1, 68310, '\P{Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(0, 68310, '\P{^Is_Joining_Group:   manichaeanthamedh}', "");
-    Expect(1, 68309, '\p{Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(0, 68309, '\p{^Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(0, 68309, '\P{Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(1, 68309, '\P{^Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(0, 68310, '\p{Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(1, 68310, '\p{^Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(1, 68310, '\P{Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Expect(0, 68310, '\P{^Is_Joining_Group:    	manichaean_Thamedh}', "");
-    Error('\p{Is_Jg= :=manichaean_Thamedh}');
-    Error('\P{Is_Jg= :=manichaean_Thamedh}');
+    Expect(1, 68309, '\p{Jg=Manichaean_Thamedh}', "");
+    Expect(0, 68309, '\p{^Jg=Manichaean_Thamedh}', "");
+    Expect(0, 68309, '\P{Jg=Manichaean_Thamedh}', "");
+    Expect(1, 68309, '\P{^Jg=Manichaean_Thamedh}', "");
+    Expect(0, 68310, '\p{Jg=Manichaean_Thamedh}', "");
+    Expect(1, 68310, '\p{^Jg=Manichaean_Thamedh}', "");
+    Expect(1, 68310, '\P{Jg=Manichaean_Thamedh}', "");
+    Expect(0, 68310, '\P{^Jg=Manichaean_Thamedh}', "");
+    Error('\p{Is_Joining_Group=:=  Manichaean_Thamedh}');
+    Error('\P{Is_Joining_Group=:=  Manichaean_Thamedh}');
+    Expect(1, 68309, '\p{Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(0, 68309, '\p{^Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(0, 68309, '\P{Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(1, 68309, '\P{^Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(0, 68310, '\p{Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(1, 68310, '\p{^Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(1, 68310, '\P{Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(0, 68310, '\P{^Is_Joining_Group=manichaeanthamedh}', "");
+    Expect(1, 68309, '\p{Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(0, 68309, '\p{^Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(0, 68309, '\P{Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(1, 68309, '\P{^Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(0, 68310, '\p{Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(1, 68310, '\p{^Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(1, 68310, '\P{Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Expect(0, 68310, '\P{^Is_Joining_Group=-	Manichaean_thamedh}', "");
+    Error('\p{Is_Jg=-:=manichaean_Thamedh}');
+    Error('\P{Is_Jg=-:=manichaean_Thamedh}');
     Expect(1, 68309, '\p{Is_Jg=manichaeanthamedh}', "");
     Expect(0, 68309, '\p{^Is_Jg=manichaeanthamedh}', "");
     Expect(0, 68309, '\P{Is_Jg=manichaeanthamedh}', "");
@@ -58059,38 +58665,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68310, '\p{^Is_Jg=manichaeanthamedh}', "");
     Expect(1, 68310, '\P{Is_Jg=manichaeanthamedh}', "");
     Expect(0, 68310, '\P{^Is_Jg=manichaeanthamedh}', "");
-    Expect(1, 68309, '\p{Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(0, 68309, '\p{^Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(0, 68309, '\P{Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(1, 68309, '\P{^Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(0, 68310, '\p{Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(1, 68310, '\p{^Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(1, 68310, '\P{Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Expect(0, 68310, '\P{^Is_Jg=	 MANICHAEAN_THAMEDH}', "");
-    Error('\p{Joining_Group=/a/Manichaean_Twenty}');
-    Error('\P{Joining_Group=/a/Manichaean_Twenty}');
+    Expect(1, 68309, '\p{Is_Jg=  manichaean_Thamedh}', "");
+    Expect(0, 68309, '\p{^Is_Jg=  manichaean_Thamedh}', "");
+    Expect(0, 68309, '\P{Is_Jg=  manichaean_Thamedh}', "");
+    Expect(1, 68309, '\P{^Is_Jg=  manichaean_Thamedh}', "");
+    Expect(0, 68310, '\p{Is_Jg=  manichaean_Thamedh}', "");
+    Expect(1, 68310, '\p{^Is_Jg=  manichaean_Thamedh}', "");
+    Expect(1, 68310, '\P{Is_Jg=  manichaean_Thamedh}', "");
+    Expect(0, 68310, '\P{^Is_Jg=  manichaean_Thamedh}', "");
+    Error('\p{Joining_Group=:=	-Manichaean_twenty}');
+    Error('\P{Joining_Group=:=	-Manichaean_twenty}');
     Expect(1, 68334, '\p{Joining_Group=:\AManichaean_Twenty\z:}', "");;
     Expect(0, 68335, '\p{Joining_Group=:\AManichaean_Twenty\z:}', "");;
-    Expect(1, 68334, '\p{Joining_Group: manichaeantwenty}', "");
-    Expect(0, 68334, '\p{^Joining_Group: manichaeantwenty}', "");
-    Expect(0, 68334, '\P{Joining_Group: manichaeantwenty}', "");
-    Expect(1, 68334, '\P{^Joining_Group: manichaeantwenty}', "");
-    Expect(0, 68335, '\p{Joining_Group: manichaeantwenty}', "");
-    Expect(1, 68335, '\p{^Joining_Group: manichaeantwenty}', "");
-    Expect(1, 68335, '\P{Joining_Group: manichaeantwenty}', "");
-    Expect(0, 68335, '\P{^Joining_Group: manichaeantwenty}', "");
+    Expect(1, 68334, '\p{Joining_Group=manichaeantwenty}', "");
+    Expect(0, 68334, '\p{^Joining_Group=manichaeantwenty}', "");
+    Expect(0, 68334, '\P{Joining_Group=manichaeantwenty}', "");
+    Expect(1, 68334, '\P{^Joining_Group=manichaeantwenty}', "");
+    Expect(0, 68335, '\p{Joining_Group=manichaeantwenty}', "");
+    Expect(1, 68335, '\p{^Joining_Group=manichaeantwenty}', "");
+    Expect(1, 68335, '\P{Joining_Group=manichaeantwenty}', "");
+    Expect(0, 68335, '\P{^Joining_Group=manichaeantwenty}', "");
     Expect(1, 68334, '\p{Joining_Group=:\Amanichaeantwenty\z:}', "");;
     Expect(0, 68335, '\p{Joining_Group=:\Amanichaeantwenty\z:}', "");;
-    Expect(1, 68334, '\p{Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(0, 68334, '\p{^Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(0, 68334, '\P{Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(1, 68334, '\P{^Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(0, 68335, '\p{Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(1, 68335, '\p{^Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(1, 68335, '\P{Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Expect(0, 68335, '\P{^Joining_Group=_-MANICHAEAN_TWENTY}', "");
-    Error('\p{Jg=/a/		Manichaean_TWENTY}');
-    Error('\P{Jg=/a/		Manichaean_TWENTY}');
+    Expect(1, 68334, '\p{Joining_Group=manichaean_Twenty}', "");
+    Expect(0, 68334, '\p{^Joining_Group=manichaean_Twenty}', "");
+    Expect(0, 68334, '\P{Joining_Group=manichaean_Twenty}', "");
+    Expect(1, 68334, '\P{^Joining_Group=manichaean_Twenty}', "");
+    Expect(0, 68335, '\p{Joining_Group=manichaean_Twenty}', "");
+    Expect(1, 68335, '\p{^Joining_Group=manichaean_Twenty}', "");
+    Expect(1, 68335, '\P{Joining_Group=manichaean_Twenty}', "");
+    Expect(0, 68335, '\P{^Joining_Group=manichaean_Twenty}', "");
+    Error('\p{Jg:_manichaean_TWENTY/a/}');
+    Error('\P{Jg:_manichaean_TWENTY/a/}');
     Expect(1, 68334, '\p{Jg=:\AManichaean_Twenty\z:}', "");;
     Expect(0, 68335, '\p{Jg=:\AManichaean_Twenty\z:}', "");;
     Expect(1, 68334, '\p{Jg=manichaeantwenty}', "");
@@ -58103,16 +58709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68335, '\P{^Jg=manichaeantwenty}', "");
     Expect(1, 68334, '\p{Jg=:\Amanichaeantwenty\z:}', "");;
     Expect(0, 68335, '\p{Jg=:\Amanichaeantwenty\z:}', "");;
-    Expect(1, 68334, '\p{Jg=_	manichaean_Twenty}', "");
-    Expect(0, 68334, '\p{^Jg=_	manichaean_Twenty}', "");
-    Expect(0, 68334, '\P{Jg=_	manichaean_Twenty}', "");
-    Expect(1, 68334, '\P{^Jg=_	manichaean_Twenty}', "");
-    Expect(0, 68335, '\p{Jg=_	manichaean_Twenty}', "");
-    Expect(1, 68335, '\p{^Jg=_	manichaean_Twenty}', "");
-    Expect(1, 68335, '\P{Jg=_	manichaean_Twenty}', "");
-    Expect(0, 68335, '\P{^Jg=_	manichaean_Twenty}', "");
-    Error('\p{Is_Joining_Group: _ Manichaean_Twenty:=}');
-    Error('\P{Is_Joining_Group: _ Manichaean_Twenty:=}');
+    Expect(1, 68334, '\p{Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(0, 68334, '\p{^Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(0, 68334, '\P{Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(1, 68334, '\P{^Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(0, 68335, '\p{Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(1, 68335, '\p{^Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(1, 68335, '\P{Jg:   -	MANICHAEAN_Twenty}', "");
+    Expect(0, 68335, '\P{^Jg:   -	MANICHAEAN_Twenty}', "");
+    Error('\p{Is_Joining_Group=/a/Manichaean_TWENTY}');
+    Error('\P{Is_Joining_Group=/a/Manichaean_TWENTY}');
     Expect(1, 68334, '\p{Is_Joining_Group=manichaeantwenty}', "");
     Expect(0, 68334, '\p{^Is_Joining_Group=manichaeantwenty}', "");
     Expect(0, 68334, '\P{Is_Joining_Group=manichaeantwenty}', "");
@@ -58121,16 +58727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68335, '\p{^Is_Joining_Group=manichaeantwenty}', "");
     Expect(1, 68335, '\P{Is_Joining_Group=manichaeantwenty}', "");
     Expect(0, 68335, '\P{^Is_Joining_Group=manichaeantwenty}', "");
-    Expect(1, 68334, '\p{Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(0, 68334, '\p{^Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(0, 68334, '\P{Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(1, 68334, '\P{^Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(0, 68335, '\p{Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(1, 68335, '\p{^Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(1, 68335, '\P{Is_Joining_Group=Manichaean_Twenty}', "");
-    Expect(0, 68335, '\P{^Is_Joining_Group=Manichaean_Twenty}', "");
-    Error('\p{Is_Jg=/a/	MANICHAEAN_TWENTY}');
-    Error('\P{Is_Jg=/a/	MANICHAEAN_TWENTY}');
+    Expect(1, 68334, '\p{Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(0, 68334, '\p{^Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(0, 68334, '\P{Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(1, 68334, '\P{^Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(0, 68335, '\p{Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(1, 68335, '\p{^Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(1, 68335, '\P{Is_Joining_Group= -Manichaean_Twenty}', "");
+    Expect(0, 68335, '\P{^Is_Joining_Group= -Manichaean_Twenty}', "");
+    Error('\p{Is_Jg=/a/	Manichaean_Twenty}');
+    Error('\P{Is_Jg=/a/	Manichaean_Twenty}');
     Expect(1, 68334, '\p{Is_Jg=manichaeantwenty}', "");
     Expect(0, 68334, '\p{^Is_Jg=manichaeantwenty}', "");
     Expect(0, 68334, '\P{Is_Jg=manichaeantwenty}', "");
@@ -58139,16 +58745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68335, '\p{^Is_Jg=manichaeantwenty}', "");
     Expect(1, 68335, '\P{Is_Jg=manichaeantwenty}', "");
     Expect(0, 68335, '\P{^Is_Jg=manichaeantwenty}', "");
-    Expect(1, 68334, '\p{Is_Jg= Manichaean_TWENTY}', "");
-    Expect(0, 68334, '\p{^Is_Jg= Manichaean_TWENTY}', "");
-    Expect(0, 68334, '\P{Is_Jg= Manichaean_TWENTY}', "");
-    Expect(1, 68334, '\P{^Is_Jg= Manichaean_TWENTY}', "");
-    Expect(0, 68335, '\p{Is_Jg= Manichaean_TWENTY}', "");
-    Expect(1, 68335, '\p{^Is_Jg= Manichaean_TWENTY}', "");
-    Expect(1, 68335, '\P{Is_Jg= Manichaean_TWENTY}', "");
-    Expect(0, 68335, '\P{^Is_Jg= Manichaean_TWENTY}', "");
-    Error('\p{Joining_Group=_/a/Manichaean_waw}');
-    Error('\P{Joining_Group=_/a/Manichaean_waw}');
+    Expect(1, 68334, '\p{Is_Jg=--Manichaean_Twenty}', "");
+    Expect(0, 68334, '\p{^Is_Jg=--Manichaean_Twenty}', "");
+    Expect(0, 68334, '\P{Is_Jg=--Manichaean_Twenty}', "");
+    Expect(1, 68334, '\P{^Is_Jg=--Manichaean_Twenty}', "");
+    Expect(0, 68335, '\p{Is_Jg=--Manichaean_Twenty}', "");
+    Expect(1, 68335, '\p{^Is_Jg=--Manichaean_Twenty}', "");
+    Expect(1, 68335, '\P{Is_Jg=--Manichaean_Twenty}', "");
+    Expect(0, 68335, '\P{^Is_Jg=--Manichaean_Twenty}', "");
+    Error('\p{Joining_Group=-/a/Manichaean_Waw}');
+    Error('\P{Joining_Group=-/a/Manichaean_Waw}');
     Expect(1, 68295, '\p{Joining_Group=:\AManichaean_Waw\z:}', "");;
     Expect(0, 68296, '\p{Joining_Group=:\AManichaean_Waw\z:}', "");;
     Expect(1, 68295, '\p{Joining_Group=manichaeanwaw}', "");
@@ -58161,16 +58767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68296, '\P{^Joining_Group=manichaeanwaw}', "");
     Expect(1, 68295, '\p{Joining_Group=:\Amanichaeanwaw\z:}', "");;
     Expect(0, 68296, '\p{Joining_Group=:\Amanichaeanwaw\z:}', "");;
-    Expect(1, 68295, '\p{Joining_Group=	manichaean_WAW}', "");
-    Expect(0, 68295, '\p{^Joining_Group=	manichaean_WAW}', "");
-    Expect(0, 68295, '\P{Joining_Group=	manichaean_WAW}', "");
-    Expect(1, 68295, '\P{^Joining_Group=	manichaean_WAW}', "");
-    Expect(0, 68296, '\p{Joining_Group=	manichaean_WAW}', "");
-    Expect(1, 68296, '\p{^Joining_Group=	manichaean_WAW}', "");
-    Expect(1, 68296, '\P{Joining_Group=	manichaean_WAW}', "");
-    Expect(0, 68296, '\P{^Joining_Group=	manichaean_WAW}', "");
-    Error('\p{Jg=:= _Manichaean_WAW}');
-    Error('\P{Jg=:= _Manichaean_WAW}');
+    Expect(1, 68295, '\p{Joining_Group=--manichaean_WAW}', "");
+    Expect(0, 68295, '\p{^Joining_Group=--manichaean_WAW}', "");
+    Expect(0, 68295, '\P{Joining_Group=--manichaean_WAW}', "");
+    Expect(1, 68295, '\P{^Joining_Group=--manichaean_WAW}', "");
+    Expect(0, 68296, '\p{Joining_Group=--manichaean_WAW}', "");
+    Expect(1, 68296, '\p{^Joining_Group=--manichaean_WAW}', "");
+    Expect(1, 68296, '\P{Joining_Group=--manichaean_WAW}', "");
+    Expect(0, 68296, '\P{^Joining_Group=--manichaean_WAW}', "");
+    Error('\p{Jg=	 MANICHAEAN_Waw:=}');
+    Error('\P{Jg=	 MANICHAEAN_Waw:=}');
     Expect(1, 68295, '\p{Jg=:\AManichaean_Waw\z:}', "");;
     Expect(0, 68296, '\p{Jg=:\AManichaean_Waw\z:}', "");;
     Expect(1, 68295, '\p{Jg=manichaeanwaw}', "");
@@ -58183,34 +58789,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68296, '\P{^Jg=manichaeanwaw}', "");
     Expect(1, 68295, '\p{Jg=:\Amanichaeanwaw\z:}', "");;
     Expect(0, 68296, '\p{Jg=:\Amanichaeanwaw\z:}', "");;
-    Expect(1, 68295, '\p{Jg=_-Manichaean_waw}', "");
-    Expect(0, 68295, '\p{^Jg=_-Manichaean_waw}', "");
-    Expect(0, 68295, '\P{Jg=_-Manichaean_waw}', "");
-    Expect(1, 68295, '\P{^Jg=_-Manichaean_waw}', "");
-    Expect(0, 68296, '\p{Jg=_-Manichaean_waw}', "");
-    Expect(1, 68296, '\p{^Jg=_-Manichaean_waw}', "");
-    Expect(1, 68296, '\P{Jg=_-Manichaean_waw}', "");
-    Expect(0, 68296, '\P{^Jg=_-Manichaean_waw}', "");
-    Error('\p{Is_Joining_Group=-_MANICHAEAN_waw/a/}');
-    Error('\P{Is_Joining_Group=-_MANICHAEAN_waw/a/}');
-    Expect(1, 68295, '\p{Is_Joining_Group=manichaeanwaw}', "");
-    Expect(0, 68295, '\p{^Is_Joining_Group=manichaeanwaw}', "");
-    Expect(0, 68295, '\P{Is_Joining_Group=manichaeanwaw}', "");
-    Expect(1, 68295, '\P{^Is_Joining_Group=manichaeanwaw}', "");
-    Expect(0, 68296, '\p{Is_Joining_Group=manichaeanwaw}', "");
-    Expect(1, 68296, '\p{^Is_Joining_Group=manichaeanwaw}', "");
-    Expect(1, 68296, '\P{Is_Joining_Group=manichaeanwaw}', "");
-    Expect(0, 68296, '\P{^Is_Joining_Group=manichaeanwaw}', "");
-    Expect(1, 68295, '\p{Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(0, 68295, '\p{^Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(0, 68295, '\P{Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(1, 68295, '\P{^Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(0, 68296, '\p{Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(1, 68296, '\p{^Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(1, 68296, '\P{Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Expect(0, 68296, '\P{^Is_Joining_Group=MANICHAEAN_Waw}', "");
-    Error('\p{Is_Jg= :=MANICHAEAN_waw}');
-    Error('\P{Is_Jg= :=MANICHAEAN_waw}');
+    Expect(1, 68295, '\p{Jg=_-Manichaean_WAW}', "");
+    Expect(0, 68295, '\p{^Jg=_-Manichaean_WAW}', "");
+    Expect(0, 68295, '\P{Jg=_-Manichaean_WAW}', "");
+    Expect(1, 68295, '\P{^Jg=_-Manichaean_WAW}', "");
+    Expect(0, 68296, '\p{Jg=_-Manichaean_WAW}', "");
+    Expect(1, 68296, '\p{^Jg=_-Manichaean_WAW}', "");
+    Expect(1, 68296, '\P{Jg=_-Manichaean_WAW}', "");
+    Expect(0, 68296, '\P{^Jg=_-Manichaean_WAW}', "");
+    Error('\p{Is_Joining_Group=	_Manichaean_waw:=}');
+    Error('\P{Is_Joining_Group=	_Manichaean_waw:=}');
+    Expect(1, 68295, '\p{Is_Joining_Group: manichaeanwaw}', "");
+    Expect(0, 68295, '\p{^Is_Joining_Group: manichaeanwaw}', "");
+    Expect(0, 68295, '\P{Is_Joining_Group: manichaeanwaw}', "");
+    Expect(1, 68295, '\P{^Is_Joining_Group: manichaeanwaw}', "");
+    Expect(0, 68296, '\p{Is_Joining_Group: manichaeanwaw}', "");
+    Expect(1, 68296, '\p{^Is_Joining_Group: manichaeanwaw}', "");
+    Expect(1, 68296, '\P{Is_Joining_Group: manichaeanwaw}', "");
+    Expect(0, 68296, '\P{^Is_Joining_Group: manichaeanwaw}', "");
+    Expect(1, 68295, '\p{Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(0, 68295, '\p{^Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(0, 68295, '\P{Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(1, 68295, '\P{^Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(0, 68296, '\p{Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(1, 68296, '\p{^Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(1, 68296, '\P{Is_Joining_Group=--manichaean_Waw}', "");
+    Expect(0, 68296, '\P{^Is_Joining_Group=--manichaean_Waw}', "");
+    Error('\p{Is_Jg=--manichaean_waw/a/}');
+    Error('\P{Is_Jg=--manichaean_waw/a/}');
     Expect(1, 68295, '\p{Is_Jg=manichaeanwaw}', "");
     Expect(0, 68295, '\p{^Is_Jg=manichaeanwaw}', "");
     Expect(0, 68295, '\P{Is_Jg=manichaeanwaw}', "");
@@ -58219,16 +58825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68296, '\p{^Is_Jg=manichaeanwaw}', "");
     Expect(1, 68296, '\P{Is_Jg=manichaeanwaw}', "");
     Expect(0, 68296, '\P{^Is_Jg=manichaeanwaw}', "");
-    Expect(1, 68295, '\p{Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(0, 68295, '\p{^Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(0, 68295, '\P{Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(1, 68295, '\P{^Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(0, 68296, '\p{Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(1, 68296, '\p{^Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(1, 68296, '\P{Is_Jg=--MANICHAEAN_Waw}', "");
-    Expect(0, 68296, '\P{^Is_Jg=--MANICHAEAN_Waw}', "");
-    Error('\p{Joining_Group=-Manichaean_Yodh:=}');
-    Error('\P{Joining_Group=-Manichaean_Yodh:=}');
+    Expect(1, 68295, '\p{Is_Jg=_-manichaean_Waw}', "");
+    Expect(0, 68295, '\p{^Is_Jg=_-manichaean_Waw}', "");
+    Expect(0, 68295, '\P{Is_Jg=_-manichaean_Waw}', "");
+    Expect(1, 68295, '\P{^Is_Jg=_-manichaean_Waw}', "");
+    Expect(0, 68296, '\p{Is_Jg=_-manichaean_Waw}', "");
+    Expect(1, 68296, '\p{^Is_Jg=_-manichaean_Waw}', "");
+    Expect(1, 68296, '\P{Is_Jg=_-manichaean_Waw}', "");
+    Expect(0, 68296, '\P{^Is_Jg=_-manichaean_Waw}', "");
+    Error('\p{Joining_Group=/a/Manichaean_Yodh}');
+    Error('\P{Joining_Group=/a/Manichaean_Yodh}');
     Expect(1, 68303, '\p{Joining_Group=:\AManichaean_Yodh\z:}', "");;
     Expect(0, 68304, '\p{Joining_Group=:\AManichaean_Yodh\z:}', "");;
     Expect(1, 68303, '\p{Joining_Group=manichaeanyodh}', "");
@@ -58241,16 +58847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68304, '\P{^Joining_Group=manichaeanyodh}', "");
     Expect(1, 68303, '\p{Joining_Group=:\Amanichaeanyodh\z:}', "");;
     Expect(0, 68304, '\p{Joining_Group=:\Amanichaeanyodh\z:}', "");;
-    Expect(1, 68303, '\p{Joining_Group=-Manichaean_Yodh}', "");
-    Expect(0, 68303, '\p{^Joining_Group=-Manichaean_Yodh}', "");
-    Expect(0, 68303, '\P{Joining_Group=-Manichaean_Yodh}', "");
-    Expect(1, 68303, '\P{^Joining_Group=-Manichaean_Yodh}', "");
-    Expect(0, 68304, '\p{Joining_Group=-Manichaean_Yodh}', "");
-    Expect(1, 68304, '\p{^Joining_Group=-Manichaean_Yodh}', "");
-    Expect(1, 68304, '\P{Joining_Group=-Manichaean_Yodh}', "");
-    Expect(0, 68304, '\P{^Joining_Group=-Manichaean_Yodh}', "");
-    Error('\p{Jg=-:=manichaean_Yodh}');
-    Error('\P{Jg=-:=manichaean_Yodh}');
+    Expect(1, 68303, '\p{Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(0, 68303, '\p{^Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(0, 68303, '\P{Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(1, 68303, '\P{^Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(0, 68304, '\p{Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(1, 68304, '\p{^Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(1, 68304, '\P{Joining_Group=MANICHAEAN_Yodh}', "");
+    Expect(0, 68304, '\P{^Joining_Group=MANICHAEAN_Yodh}', "");
+    Error('\p{Jg=	Manichaean_Yodh/a/}');
+    Error('\P{Jg=	Manichaean_Yodh/a/}');
     Expect(1, 68303, '\p{Jg=:\AManichaean_Yodh\z:}', "");;
     Expect(0, 68304, '\p{Jg=:\AManichaean_Yodh\z:}', "");;
     Expect(1, 68303, '\p{Jg=manichaeanyodh}', "");
@@ -58263,16 +58869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68304, '\P{^Jg=manichaeanyodh}', "");
     Expect(1, 68303, '\p{Jg=:\Amanichaeanyodh\z:}', "");;
     Expect(0, 68304, '\p{Jg=:\Amanichaeanyodh\z:}', "");;
-    Expect(1, 68303, '\p{Jg=	-Manichaean_Yodh}', "");
-    Expect(0, 68303, '\p{^Jg=	-Manichaean_Yodh}', "");
-    Expect(0, 68303, '\P{Jg=	-Manichaean_Yodh}', "");
-    Expect(1, 68303, '\P{^Jg=	-Manichaean_Yodh}', "");
-    Expect(0, 68304, '\p{Jg=	-Manichaean_Yodh}', "");
-    Expect(1, 68304, '\p{^Jg=	-Manichaean_Yodh}', "");
-    Expect(1, 68304, '\P{Jg=	-Manichaean_Yodh}', "");
-    Expect(0, 68304, '\P{^Jg=	-Manichaean_Yodh}', "");
-    Error('\p{Is_Joining_Group=/a/ _manichaean_yodh}');
-    Error('\P{Is_Joining_Group=/a/ _manichaean_yodh}');
+    Expect(1, 68303, '\p{Jg=  Manichaean_YODH}', "");
+    Expect(0, 68303, '\p{^Jg=  Manichaean_YODH}', "");
+    Expect(0, 68303, '\P{Jg=  Manichaean_YODH}', "");
+    Expect(1, 68303, '\P{^Jg=  Manichaean_YODH}', "");
+    Expect(0, 68304, '\p{Jg=  Manichaean_YODH}', "");
+    Expect(1, 68304, '\p{^Jg=  Manichaean_YODH}', "");
+    Expect(1, 68304, '\P{Jg=  Manichaean_YODH}', "");
+    Expect(0, 68304, '\P{^Jg=  Manichaean_YODH}', "");
+    Error('\p{Is_Joining_Group=	-Manichaean_yodh/a/}');
+    Error('\P{Is_Joining_Group=	-Manichaean_yodh/a/}');
     Expect(1, 68303, '\p{Is_Joining_Group=manichaeanyodh}', "");
     Expect(0, 68303, '\p{^Is_Joining_Group=manichaeanyodh}', "");
     Expect(0, 68303, '\P{Is_Joining_Group=manichaeanyodh}', "");
@@ -58281,16 +58887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68304, '\p{^Is_Joining_Group=manichaeanyodh}', "");
     Expect(1, 68304, '\P{Is_Joining_Group=manichaeanyodh}', "");
     Expect(0, 68304, '\P{^Is_Joining_Group=manichaeanyodh}', "");
-    Expect(1, 68303, '\p{Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(0, 68303, '\p{^Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(0, 68303, '\P{Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(1, 68303, '\P{^Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(0, 68304, '\p{Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(1, 68304, '\p{^Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(1, 68304, '\P{Is_Joining_Group=_manichaean_YODH}', "");
-    Expect(0, 68304, '\P{^Is_Joining_Group=_manichaean_YODH}', "");
-    Error('\p{Is_Jg=-_Manichaean_YODH/a/}');
-    Error('\P{Is_Jg=-_Manichaean_YODH/a/}');
+    Expect(1, 68303, '\p{Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(0, 68303, '\p{^Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(0, 68303, '\P{Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(1, 68303, '\P{^Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(0, 68304, '\p{Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(1, 68304, '\p{^Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(1, 68304, '\P{Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Expect(0, 68304, '\P{^Is_Joining_Group: 	MANICHAEAN_Yodh}', "");
+    Error('\p{Is_Jg=:=-Manichaean_yodh}');
+    Error('\P{Is_Jg=:=-Manichaean_yodh}');
     Expect(1, 68303, '\p{Is_Jg=manichaeanyodh}', "");
     Expect(0, 68303, '\p{^Is_Jg=manichaeanyodh}', "");
     Expect(0, 68303, '\P{Is_Jg=manichaeanyodh}', "");
@@ -58299,16 +58905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68304, '\p{^Is_Jg=manichaeanyodh}', "");
     Expect(1, 68304, '\P{Is_Jg=manichaeanyodh}', "");
     Expect(0, 68304, '\P{^Is_Jg=manichaeanyodh}', "");
-    Expect(1, 68303, '\p{Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(0, 68303, '\p{^Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(0, 68303, '\P{Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(1, 68303, '\P{^Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(0, 68304, '\p{Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(1, 68304, '\p{^Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(1, 68304, '\P{Is_Jg= _MANICHAEAN_YODH}', "");
-    Expect(0, 68304, '\P{^Is_Jg= _MANICHAEAN_YODH}', "");
-    Error('\p{Joining_Group=	/a/manichaean_zayin}');
-    Error('\P{Joining_Group=	/a/manichaean_zayin}');
+    Expect(1, 68303, '\p{Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(0, 68303, '\p{^Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(0, 68303, '\P{Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(1, 68303, '\P{^Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(0, 68304, '\p{Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(1, 68304, '\p{^Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(1, 68304, '\P{Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Expect(0, 68304, '\P{^Is_Jg=	-MANICHAEAN_Yodh}', "");
+    Error('\p{Joining_Group=/a/  Manichaean_ZAYIN}');
+    Error('\P{Joining_Group=/a/  Manichaean_ZAYIN}');
     Expect(1, 68298, '\p{Joining_Group=:\AManichaean_Zayin\z:}', "");;
     Expect(0, 68299, '\p{Joining_Group=:\AManichaean_Zayin\z:}', "");;
     Expect(1, 68298, '\p{Joining_Group=manichaeanzayin}', "");
@@ -58321,16 +58927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68299, '\P{^Joining_Group=manichaeanzayin}', "");
     Expect(1, 68298, '\p{Joining_Group=:\Amanichaeanzayin\z:}', "");;
     Expect(0, 68299, '\p{Joining_Group=:\Amanichaeanzayin\z:}', "");;
-    Expect(1, 68298, '\p{Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68298, '\p{^Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68298, '\P{Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(1, 68298, '\P{^Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68299, '\p{Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(1, 68299, '\p{^Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(1, 68299, '\P{Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68299, '\P{^Joining_Group= -MANICHAEAN_ZAYIN}', "");
-    Error('\p{Jg=	 Manichaean_zayin/a/}');
-    Error('\P{Jg=	 Manichaean_zayin/a/}');
+    Expect(1, 68298, '\p{Joining_Group:   -manichaean_Zayin}', "");
+    Expect(0, 68298, '\p{^Joining_Group:   -manichaean_Zayin}', "");
+    Expect(0, 68298, '\P{Joining_Group:   -manichaean_Zayin}', "");
+    Expect(1, 68298, '\P{^Joining_Group:   -manichaean_Zayin}', "");
+    Expect(0, 68299, '\p{Joining_Group:   -manichaean_Zayin}', "");
+    Expect(1, 68299, '\p{^Joining_Group:   -manichaean_Zayin}', "");
+    Expect(1, 68299, '\P{Joining_Group:   -manichaean_Zayin}', "");
+    Expect(0, 68299, '\P{^Joining_Group:   -manichaean_Zayin}', "");
+    Error('\p{Jg=-:=MANICHAEAN_Zayin}');
+    Error('\P{Jg=-:=MANICHAEAN_Zayin}');
     Expect(1, 68298, '\p{Jg=:\AManichaean_Zayin\z:}', "");;
     Expect(0, 68299, '\p{Jg=:\AManichaean_Zayin\z:}', "");;
     Expect(1, 68298, '\p{Jg=manichaeanzayin}', "");
@@ -58343,16 +58949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68299, '\P{^Jg=manichaeanzayin}', "");
     Expect(1, 68298, '\p{Jg=:\Amanichaeanzayin\z:}', "");;
     Expect(0, 68299, '\p{Jg=:\Amanichaeanzayin\z:}', "");;
-    Expect(1, 68298, '\p{Jg= Manichaean_ZAYIN}', "");
-    Expect(0, 68298, '\p{^Jg= Manichaean_ZAYIN}', "");
-    Expect(0, 68298, '\P{Jg= Manichaean_ZAYIN}', "");
-    Expect(1, 68298, '\P{^Jg= Manichaean_ZAYIN}', "");
-    Expect(0, 68299, '\p{Jg= Manichaean_ZAYIN}', "");
-    Expect(1, 68299, '\p{^Jg= Manichaean_ZAYIN}', "");
-    Expect(1, 68299, '\P{Jg= Manichaean_ZAYIN}', "");
-    Expect(0, 68299, '\P{^Jg= Manichaean_ZAYIN}', "");
-    Error('\p{Is_Joining_Group=/a/MANICHAEAN_Zayin}');
-    Error('\P{Is_Joining_Group=/a/MANICHAEAN_Zayin}');
+    Expect(1, 68298, '\p{Jg=- Manichaean_Zayin}', "");
+    Expect(0, 68298, '\p{^Jg=- Manichaean_Zayin}', "");
+    Expect(0, 68298, '\P{Jg=- Manichaean_Zayin}', "");
+    Expect(1, 68298, '\P{^Jg=- Manichaean_Zayin}', "");
+    Expect(0, 68299, '\p{Jg=- Manichaean_Zayin}', "");
+    Expect(1, 68299, '\p{^Jg=- Manichaean_Zayin}', "");
+    Expect(1, 68299, '\P{Jg=- Manichaean_Zayin}', "");
+    Expect(0, 68299, '\P{^Jg=- Manichaean_Zayin}', "");
+    Error('\p{Is_Joining_Group=:=_	Manichaean_zayin}');
+    Error('\P{Is_Joining_Group=:=_	Manichaean_zayin}');
     Expect(1, 68298, '\p{Is_Joining_Group=manichaeanzayin}', "");
     Expect(0, 68298, '\p{^Is_Joining_Group=manichaeanzayin}', "");
     Expect(0, 68298, '\P{Is_Joining_Group=manichaeanzayin}', "");
@@ -58361,34 +58967,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68299, '\p{^Is_Joining_Group=manichaeanzayin}', "");
     Expect(1, 68299, '\P{Is_Joining_Group=manichaeanzayin}', "");
     Expect(0, 68299, '\P{^Is_Joining_Group=manichaeanzayin}', "");
-    Expect(1, 68298, '\p{Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68298, '\p{^Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68298, '\P{Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(1, 68298, '\P{^Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68299, '\p{Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(1, 68299, '\p{^Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(1, 68299, '\P{Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Expect(0, 68299, '\P{^Is_Joining_Group=	MANICHAEAN_ZAYIN}', "");
-    Error('\p{Is_Jg=-	manichaean_ZAYIN/a/}');
-    Error('\P{Is_Jg=-	manichaean_ZAYIN/a/}');
-    Expect(1, 68298, '\p{Is_Jg:   manichaeanzayin}', "");
-    Expect(0, 68298, '\p{^Is_Jg:   manichaeanzayin}', "");
-    Expect(0, 68298, '\P{Is_Jg:   manichaeanzayin}', "");
-    Expect(1, 68298, '\P{^Is_Jg:   manichaeanzayin}', "");
-    Expect(0, 68299, '\p{Is_Jg:   manichaeanzayin}', "");
-    Expect(1, 68299, '\p{^Is_Jg:   manichaeanzayin}', "");
-    Expect(1, 68299, '\P{Is_Jg:   manichaeanzayin}', "");
-    Expect(0, 68299, '\P{^Is_Jg:   manichaeanzayin}', "");
-    Expect(1, 68298, '\p{Is_Jg=  manichaean_Zayin}', "");
-    Expect(0, 68298, '\p{^Is_Jg=  manichaean_Zayin}', "");
-    Expect(0, 68298, '\P{Is_Jg=  manichaean_Zayin}', "");
-    Expect(1, 68298, '\P{^Is_Jg=  manichaean_Zayin}', "");
-    Expect(0, 68299, '\p{Is_Jg=  manichaean_Zayin}', "");
-    Expect(1, 68299, '\p{^Is_Jg=  manichaean_Zayin}', "");
-    Expect(1, 68299, '\P{Is_Jg=  manichaean_Zayin}', "");
-    Expect(0, 68299, '\P{^Is_Jg=  manichaean_Zayin}', "");
-    Error('\p{Joining_Group=_-Meem:=}');
-    Error('\P{Joining_Group=_-Meem:=}');
+    Expect(1, 68298, '\p{Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(0, 68298, '\p{^Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(0, 68298, '\P{Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(1, 68298, '\P{^Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(0, 68299, '\p{Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(1, 68299, '\p{^Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(1, 68299, '\P{Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Expect(0, 68299, '\P{^Is_Joining_Group=Manichaean_ZAYIN}', "");
+    Error('\p{Is_Jg=/a/ -MANICHAEAN_Zayin}');
+    Error('\P{Is_Jg=/a/ -MANICHAEAN_Zayin}');
+    Expect(1, 68298, '\p{Is_Jg=manichaeanzayin}', "");
+    Expect(0, 68298, '\p{^Is_Jg=manichaeanzayin}', "");
+    Expect(0, 68298, '\P{Is_Jg=manichaeanzayin}', "");
+    Expect(1, 68298, '\P{^Is_Jg=manichaeanzayin}', "");
+    Expect(0, 68299, '\p{Is_Jg=manichaeanzayin}', "");
+    Expect(1, 68299, '\p{^Is_Jg=manichaeanzayin}', "");
+    Expect(1, 68299, '\P{Is_Jg=manichaeanzayin}', "");
+    Expect(0, 68299, '\P{^Is_Jg=manichaeanzayin}', "");
+    Expect(1, 68298, '\p{Is_Jg=  Manichaean_Zayin}', "");
+    Expect(0, 68298, '\p{^Is_Jg=  Manichaean_Zayin}', "");
+    Expect(0, 68298, '\P{Is_Jg=  Manichaean_Zayin}', "");
+    Expect(1, 68298, '\P{^Is_Jg=  Manichaean_Zayin}', "");
+    Expect(0, 68299, '\p{Is_Jg=  Manichaean_Zayin}', "");
+    Expect(1, 68299, '\p{^Is_Jg=  Manichaean_Zayin}', "");
+    Expect(1, 68299, '\P{Is_Jg=  Manichaean_Zayin}', "");
+    Expect(0, 68299, '\P{^Is_Jg=  Manichaean_Zayin}', "");
+    Error('\p{Joining_Group=/a/Meem}');
+    Error('\P{Joining_Group=/a/Meem}');
     Expect(1, 2215, '\p{Joining_Group=:\AMeem\z:}', "");;
     Expect(0, 2216, '\p{Joining_Group=:\AMeem\z:}', "");;
     Expect(1, 2215, '\p{Joining_Group=meem}', "");
@@ -58401,16 +59007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2216, '\P{^Joining_Group=meem}', "");
     Expect(1, 2215, '\p{Joining_Group=:\Ameem\z:}', "");;
     Expect(0, 2216, '\p{Joining_Group=:\Ameem\z:}', "");;
-    Expect(1, 2215, '\p{Joining_Group=_Meem}', "");
-    Expect(0, 2215, '\p{^Joining_Group=_Meem}', "");
-    Expect(0, 2215, '\P{Joining_Group=_Meem}', "");
-    Expect(1, 2215, '\P{^Joining_Group=_Meem}', "");
-    Expect(0, 2216, '\p{Joining_Group=_Meem}', "");
-    Expect(1, 2216, '\p{^Joining_Group=_Meem}', "");
-    Expect(1, 2216, '\P{Joining_Group=_Meem}', "");
-    Expect(0, 2216, '\P{^Joining_Group=_Meem}', "");
-    Error('\p{Jg=/a/ Meem}');
-    Error('\P{Jg=/a/ Meem}');
+    Expect(1, 2215, '\p{Joining_Group:		MEEM}', "");
+    Expect(0, 2215, '\p{^Joining_Group:		MEEM}', "");
+    Expect(0, 2215, '\P{Joining_Group:		MEEM}', "");
+    Expect(1, 2215, '\P{^Joining_Group:		MEEM}', "");
+    Expect(0, 2216, '\p{Joining_Group:		MEEM}', "");
+    Expect(1, 2216, '\p{^Joining_Group:		MEEM}', "");
+    Expect(1, 2216, '\P{Joining_Group:		MEEM}', "");
+    Expect(0, 2216, '\P{^Joining_Group:		MEEM}', "");
+    Error('\p{Jg=_meem:=}');
+    Error('\P{Jg=_meem:=}');
     Expect(1, 2215, '\p{Jg=:\AMeem\z:}', "");;
     Expect(0, 2216, '\p{Jg=:\AMeem\z:}', "");;
     Expect(1, 2215, '\p{Jg=meem}', "");
@@ -58423,16 +59029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2216, '\P{^Jg=meem}', "");
     Expect(1, 2215, '\p{Jg=:\Ameem\z:}', "");;
     Expect(0, 2216, '\p{Jg=:\Ameem\z:}', "");;
-    Expect(1, 2215, '\p{Jg=_ Meem}', "");
-    Expect(0, 2215, '\p{^Jg=_ Meem}', "");
-    Expect(0, 2215, '\P{Jg=_ Meem}', "");
-    Expect(1, 2215, '\P{^Jg=_ Meem}', "");
-    Expect(0, 2216, '\p{Jg=_ Meem}', "");
-    Expect(1, 2216, '\p{^Jg=_ Meem}', "");
-    Expect(1, 2216, '\P{Jg=_ Meem}', "");
-    Expect(0, 2216, '\P{^Jg=_ Meem}', "");
-    Error('\p{Is_Joining_Group: _Meem:=}');
-    Error('\P{Is_Joining_Group: _Meem:=}');
+    Expect(1, 2215, '\p{Jg=	_Meem}', "");
+    Expect(0, 2215, '\p{^Jg=	_Meem}', "");
+    Expect(0, 2215, '\P{Jg=	_Meem}', "");
+    Expect(1, 2215, '\P{^Jg=	_Meem}', "");
+    Expect(0, 2216, '\p{Jg=	_Meem}', "");
+    Expect(1, 2216, '\p{^Jg=	_Meem}', "");
+    Expect(1, 2216, '\P{Jg=	_Meem}', "");
+    Expect(0, 2216, '\P{^Jg=	_Meem}', "");
+    Error('\p{Is_Joining_Group=/a/	 Meem}');
+    Error('\P{Is_Joining_Group=/a/	 Meem}');
     Expect(1, 2215, '\p{Is_Joining_Group=meem}', "");
     Expect(0, 2215, '\p{^Is_Joining_Group=meem}', "");
     Expect(0, 2215, '\P{Is_Joining_Group=meem}', "");
@@ -58441,16 +59047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2216, '\p{^Is_Joining_Group=meem}', "");
     Expect(1, 2216, '\P{Is_Joining_Group=meem}', "");
     Expect(0, 2216, '\P{^Is_Joining_Group=meem}', "");
-    Expect(1, 2215, '\p{Is_Joining_Group: _Meem}', "");
-    Expect(0, 2215, '\p{^Is_Joining_Group: _Meem}', "");
-    Expect(0, 2215, '\P{Is_Joining_Group: _Meem}', "");
-    Expect(1, 2215, '\P{^Is_Joining_Group: _Meem}', "");
-    Expect(0, 2216, '\p{Is_Joining_Group: _Meem}', "");
-    Expect(1, 2216, '\p{^Is_Joining_Group: _Meem}', "");
-    Expect(1, 2216, '\P{Is_Joining_Group: _Meem}', "");
-    Expect(0, 2216, '\P{^Is_Joining_Group: _Meem}', "");
-    Error('\p{Is_Jg=--Meem/a/}');
-    Error('\P{Is_Jg=--Meem/a/}');
+    Expect(1, 2215, '\p{Is_Joining_Group=-Meem}', "");
+    Expect(0, 2215, '\p{^Is_Joining_Group=-Meem}', "");
+    Expect(0, 2215, '\P{Is_Joining_Group=-Meem}', "");
+    Expect(1, 2215, '\P{^Is_Joining_Group=-Meem}', "");
+    Expect(0, 2216, '\p{Is_Joining_Group=-Meem}', "");
+    Expect(1, 2216, '\p{^Is_Joining_Group=-Meem}', "");
+    Expect(1, 2216, '\P{Is_Joining_Group=-Meem}', "");
+    Expect(0, 2216, '\P{^Is_Joining_Group=-Meem}', "");
+    Error('\p{Is_Jg:	:=	_MEEM}');
+    Error('\P{Is_Jg:	:=	_MEEM}');
     Expect(1, 2215, '\p{Is_Jg=meem}', "");
     Expect(0, 2215, '\p{^Is_Jg=meem}', "");
     Expect(0, 2215, '\P{Is_Jg=meem}', "");
@@ -58459,16 +59065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2216, '\p{^Is_Jg=meem}', "");
     Expect(1, 2216, '\P{Is_Jg=meem}', "");
     Expect(0, 2216, '\P{^Is_Jg=meem}', "");
-    Expect(1, 2215, '\p{Is_Jg=	 Meem}', "");
-    Expect(0, 2215, '\p{^Is_Jg=	 Meem}', "");
-    Expect(0, 2215, '\P{Is_Jg=	 Meem}', "");
-    Expect(1, 2215, '\P{^Is_Jg=	 Meem}', "");
-    Expect(0, 2216, '\p{Is_Jg=	 Meem}', "");
-    Expect(1, 2216, '\p{^Is_Jg=	 Meem}', "");
-    Expect(1, 2216, '\P{Is_Jg=	 Meem}', "");
-    Expect(0, 2216, '\P{^Is_Jg=	 Meem}', "");
-    Error('\p{Joining_Group=-_mim/a/}');
-    Error('\P{Joining_Group=-_mim/a/}');
+    Expect(1, 2215, '\p{Is_Jg=Meem}', "");
+    Expect(0, 2215, '\p{^Is_Jg=Meem}', "");
+    Expect(0, 2215, '\P{Is_Jg=Meem}', "");
+    Expect(1, 2215, '\P{^Is_Jg=Meem}', "");
+    Expect(0, 2216, '\p{Is_Jg=Meem}', "");
+    Expect(1, 2216, '\p{^Is_Jg=Meem}', "");
+    Expect(1, 2216, '\P{Is_Jg=Meem}', "");
+    Expect(0, 2216, '\P{^Is_Jg=Meem}', "");
+    Error('\p{Joining_Group=:=MIM}');
+    Error('\P{Joining_Group=:=MIM}');
     Expect(1, 1825, '\p{Joining_Group=:\AMim\z:}', "");;
     Expect(0, 1826, '\p{Joining_Group=:\AMim\z:}', "");;
     Expect(1, 1825, '\p{Joining_Group=mim}', "");
@@ -58481,16 +59087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1826, '\P{^Joining_Group=mim}', "");
     Expect(1, 1825, '\p{Joining_Group=:\Amim\z:}', "");;
     Expect(0, 1826, '\p{Joining_Group=:\Amim\z:}', "");;
-    Expect(1, 1825, '\p{Joining_Group= mim}', "");
-    Expect(0, 1825, '\p{^Joining_Group= mim}', "");
-    Expect(0, 1825, '\P{Joining_Group= mim}', "");
-    Expect(1, 1825, '\P{^Joining_Group= mim}', "");
-    Expect(0, 1826, '\p{Joining_Group= mim}', "");
-    Expect(1, 1826, '\p{^Joining_Group= mim}', "");
-    Expect(1, 1826, '\P{Joining_Group= mim}', "");
-    Expect(0, 1826, '\P{^Joining_Group= mim}', "");
-    Error('\p{Jg= :=MIM}');
-    Error('\P{Jg= :=MIM}');
+    Expect(1, 1825, '\p{Joining_Group=_-MIM}', "");
+    Expect(0, 1825, '\p{^Joining_Group=_-MIM}', "");
+    Expect(0, 1825, '\P{Joining_Group=_-MIM}', "");
+    Expect(1, 1825, '\P{^Joining_Group=_-MIM}', "");
+    Expect(0, 1826, '\p{Joining_Group=_-MIM}', "");
+    Expect(1, 1826, '\p{^Joining_Group=_-MIM}', "");
+    Expect(1, 1826, '\P{Joining_Group=_-MIM}', "");
+    Expect(0, 1826, '\P{^Joining_Group=_-MIM}', "");
+    Error('\p{Jg=/a/-_Mim}');
+    Error('\P{Jg=/a/-_Mim}');
     Expect(1, 1825, '\p{Jg=:\AMim\z:}', "");;
     Expect(0, 1826, '\p{Jg=:\AMim\z:}', "");;
     Expect(1, 1825, '\p{Jg=mim}', "");
@@ -58503,14 +59109,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1826, '\P{^Jg=mim}', "");
     Expect(1, 1825, '\p{Jg=:\Amim\z:}', "");;
     Expect(0, 1826, '\p{Jg=:\Amim\z:}', "");;
-    Expect(1, 1825, '\p{Jg=_ Mim}', "");
-    Expect(0, 1825, '\p{^Jg=_ Mim}', "");
-    Expect(0, 1825, '\P{Jg=_ Mim}', "");
-    Expect(1, 1825, '\P{^Jg=_ Mim}', "");
-    Expect(0, 1826, '\p{Jg=_ Mim}', "");
-    Expect(1, 1826, '\p{^Jg=_ Mim}', "");
-    Expect(1, 1826, '\P{Jg=_ Mim}', "");
-    Expect(0, 1826, '\P{^Jg=_ Mim}', "");
+    Expect(1, 1825, '\p{Jg=_-MIM}', "");
+    Expect(0, 1825, '\p{^Jg=_-MIM}', "");
+    Expect(0, 1825, '\P{Jg=_-MIM}', "");
+    Expect(1, 1825, '\P{^Jg=_-MIM}', "");
+    Expect(0, 1826, '\p{Jg=_-MIM}', "");
+    Expect(1, 1826, '\p{^Jg=_-MIM}', "");
+    Expect(1, 1826, '\P{Jg=_-MIM}', "");
+    Expect(0, 1826, '\P{^Jg=_-MIM}', "");
     Error('\p{Is_Joining_Group= /a/Mim}');
     Error('\P{Is_Joining_Group= /a/Mim}');
     Expect(1, 1825, '\p{Is_Joining_Group=mim}', "");
@@ -58521,16 +59127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1826, '\p{^Is_Joining_Group=mim}', "");
     Expect(1, 1826, '\P{Is_Joining_Group=mim}', "");
     Expect(0, 1826, '\P{^Is_Joining_Group=mim}', "");
-    Expect(1, 1825, '\p{Is_Joining_Group=	-mim}', "");
-    Expect(0, 1825, '\p{^Is_Joining_Group=	-mim}', "");
-    Expect(0, 1825, '\P{Is_Joining_Group=	-mim}', "");
-    Expect(1, 1825, '\P{^Is_Joining_Group=	-mim}', "");
-    Expect(0, 1826, '\p{Is_Joining_Group=	-mim}', "");
-    Expect(1, 1826, '\p{^Is_Joining_Group=	-mim}', "");
-    Expect(1, 1826, '\P{Is_Joining_Group=	-mim}', "");
-    Expect(0, 1826, '\P{^Is_Joining_Group=	-mim}', "");
-    Error('\p{Is_Jg=	Mim/a/}');
-    Error('\P{Is_Jg=	Mim/a/}');
+    Expect(1, 1825, '\p{Is_Joining_Group:-_MIM}', "");
+    Expect(0, 1825, '\p{^Is_Joining_Group:-_MIM}', "");
+    Expect(0, 1825, '\P{Is_Joining_Group:-_MIM}', "");
+    Expect(1, 1825, '\P{^Is_Joining_Group:-_MIM}', "");
+    Expect(0, 1826, '\p{Is_Joining_Group:-_MIM}', "");
+    Expect(1, 1826, '\p{^Is_Joining_Group:-_MIM}', "");
+    Expect(1, 1826, '\P{Is_Joining_Group:-_MIM}', "");
+    Expect(0, 1826, '\P{^Is_Joining_Group:-_MIM}', "");
+    Error('\p{Is_Jg=	/a/Mim}');
+    Error('\P{Is_Jg=	/a/Mim}');
     Expect(1, 1825, '\p{Is_Jg=mim}', "");
     Expect(0, 1825, '\p{^Is_Jg=mim}', "");
     Expect(0, 1825, '\P{Is_Jg=mim}', "");
@@ -58539,16 +59145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1826, '\p{^Is_Jg=mim}', "");
     Expect(1, 1826, '\P{Is_Jg=mim}', "");
     Expect(0, 1826, '\P{^Is_Jg=mim}', "");
-    Expect(1, 1825, '\p{Is_Jg=Mim}', "");
-    Expect(0, 1825, '\p{^Is_Jg=Mim}', "");
-    Expect(0, 1825, '\P{Is_Jg=Mim}', "");
-    Expect(1, 1825, '\P{^Is_Jg=Mim}', "");
-    Expect(0, 1826, '\p{Is_Jg=Mim}', "");
-    Expect(1, 1826, '\p{^Is_Jg=Mim}', "");
-    Expect(1, 1826, '\P{Is_Jg=Mim}', "");
-    Expect(0, 1826, '\P{^Is_Jg=Mim}', "");
-    Error('\p{Joining_Group=	no_joining_group:=}');
-    Error('\P{Joining_Group=	no_joining_group:=}');
+    Expect(1, 1825, '\p{Is_Jg=__Mim}', "");
+    Expect(0, 1825, '\p{^Is_Jg=__Mim}', "");
+    Expect(0, 1825, '\P{Is_Jg=__Mim}', "");
+    Expect(1, 1825, '\P{^Is_Jg=__Mim}', "");
+    Expect(0, 1826, '\p{Is_Jg=__Mim}', "");
+    Expect(1, 1826, '\p{^Is_Jg=__Mim}', "");
+    Expect(1, 1826, '\P{Is_Jg=__Mim}', "");
+    Expect(0, 1826, '\P{^Is_Jg=__Mim}', "");
+    Error('\p{Joining_Group=__no_JOINING_Group/a/}');
+    Error('\P{Joining_Group=__no_JOINING_Group/a/}');
     Expect(1, 68900, '\p{Joining_Group=:\ANo_Joining_Group\z:}', "");;
     Expect(0, 68899, '\p{Joining_Group=:\ANo_Joining_Group\z:}', "");;
     Expect(1, 68900, '\p{Joining_Group=nojoininggroup}', "");
@@ -58561,16 +59167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68899, '\P{^Joining_Group=nojoininggroup}', "");
     Expect(1, 68900, '\p{Joining_Group=:\Anojoininggroup\z:}', "");;
     Expect(0, 68899, '\p{Joining_Group=:\Anojoininggroup\z:}', "");;
-    Expect(1, 68900, '\p{Joining_Group:		 No_joining_Group}', "");
-    Expect(0, 68900, '\p{^Joining_Group:		 No_joining_Group}', "");
-    Expect(0, 68900, '\P{Joining_Group:		 No_joining_Group}', "");
-    Expect(1, 68900, '\P{^Joining_Group:		 No_joining_Group}', "");
-    Expect(0, 68899, '\p{Joining_Group:		 No_joining_Group}', "");
-    Expect(1, 68899, '\p{^Joining_Group:		 No_joining_Group}', "");
-    Expect(1, 68899, '\P{Joining_Group:		 No_joining_Group}', "");
-    Expect(0, 68899, '\P{^Joining_Group:		 No_joining_Group}', "");
-    Error('\p{Jg=:=-_No_Joining_GROUP}');
-    Error('\P{Jg=:=-_No_Joining_GROUP}');
+    Expect(1, 68900, '\p{Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(0, 68900, '\p{^Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(0, 68900, '\P{Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(1, 68900, '\P{^Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(0, 68899, '\p{Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(1, 68899, '\p{^Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(1, 68899, '\P{Joining_Group:   -No_Joining_GROUP}', "");
+    Expect(0, 68899, '\P{^Joining_Group:   -No_Joining_GROUP}', "");
+    Error('\p{Jg=/a/_-No_joining_GROUP}');
+    Error('\P{Jg=/a/_-No_joining_GROUP}');
     Expect(1, 68900, '\p{Jg=:\ANo_Joining_Group\z:}', "");;
     Expect(0, 68899, '\p{Jg=:\ANo_Joining_Group\z:}', "");;
     Expect(1, 68900, '\p{Jg=nojoininggroup}', "");
@@ -58583,16 +59189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68899, '\P{^Jg=nojoininggroup}', "");
     Expect(1, 68900, '\p{Jg=:\Anojoininggroup\z:}', "");;
     Expect(0, 68899, '\p{Jg=:\Anojoininggroup\z:}', "");;
-    Expect(1, 68900, '\p{Jg=		NO_Joining_Group}', "");
-    Expect(0, 68900, '\p{^Jg=		NO_Joining_Group}', "");
-    Expect(0, 68900, '\P{Jg=		NO_Joining_Group}', "");
-    Expect(1, 68900, '\P{^Jg=		NO_Joining_Group}', "");
-    Expect(0, 68899, '\p{Jg=		NO_Joining_Group}', "");
-    Expect(1, 68899, '\p{^Jg=		NO_Joining_Group}', "");
-    Expect(1, 68899, '\P{Jg=		NO_Joining_Group}', "");
-    Expect(0, 68899, '\P{^Jg=		NO_Joining_Group}', "");
-    Error('\p{Is_Joining_Group=/a/_no_Joining_group}');
-    Error('\P{Is_Joining_Group=/a/_no_Joining_group}');
+    Expect(1, 68900, '\p{Jg=_ No_joining_Group}', "");
+    Expect(0, 68900, '\p{^Jg=_ No_joining_Group}', "");
+    Expect(0, 68900, '\P{Jg=_ No_joining_Group}', "");
+    Expect(1, 68900, '\P{^Jg=_ No_joining_Group}', "");
+    Expect(0, 68899, '\p{Jg=_ No_joining_Group}', "");
+    Expect(1, 68899, '\p{^Jg=_ No_joining_Group}', "");
+    Expect(1, 68899, '\P{Jg=_ No_joining_Group}', "");
+    Expect(0, 68899, '\P{^Jg=_ No_joining_Group}', "");
+    Error('\p{Is_Joining_Group=/a/ _No_JOINING_group}');
+    Error('\P{Is_Joining_Group=/a/ _No_JOINING_group}');
     Expect(1, 68900, '\p{Is_Joining_Group=nojoininggroup}', "");
     Expect(0, 68900, '\p{^Is_Joining_Group=nojoininggroup}', "");
     Expect(0, 68900, '\P{Is_Joining_Group=nojoininggroup}', "");
@@ -58601,16 +59207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68899, '\p{^Is_Joining_Group=nojoininggroup}', "");
     Expect(1, 68899, '\P{Is_Joining_Group=nojoininggroup}', "");
     Expect(0, 68899, '\P{^Is_Joining_Group=nojoininggroup}', "");
-    Expect(1, 68900, '\p{Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(0, 68900, '\p{^Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(0, 68900, '\P{Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(1, 68900, '\P{^Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(0, 68899, '\p{Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(1, 68899, '\p{^Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(1, 68899, '\P{Is_Joining_Group:   	_no_Joining_Group}', "");
-    Expect(0, 68899, '\P{^Is_Joining_Group:   	_no_Joining_Group}', "");
-    Error('\p{Is_Jg=:=--No_JOINING_Group}');
-    Error('\P{Is_Jg=:=--No_JOINING_Group}');
+    Expect(1, 68900, '\p{Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(0, 68900, '\p{^Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(0, 68900, '\P{Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(1, 68900, '\P{^Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(0, 68899, '\p{Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(1, 68899, '\p{^Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(1, 68899, '\P{Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Expect(0, 68899, '\P{^Is_Joining_Group=_NO_Joining_GROUP}', "");
+    Error('\p{Is_Jg=	No_JOINING_Group:=}');
+    Error('\P{Is_Jg=	No_JOINING_Group:=}');
     Expect(1, 68900, '\p{Is_Jg=nojoininggroup}', "");
     Expect(0, 68900, '\p{^Is_Jg=nojoininggroup}', "");
     Expect(0, 68900, '\P{Is_Jg=nojoininggroup}', "");
@@ -58619,16 +59225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68899, '\p{^Is_Jg=nojoininggroup}', "");
     Expect(1, 68899, '\P{Is_Jg=nojoininggroup}', "");
     Expect(0, 68899, '\P{^Is_Jg=nojoininggroup}', "");
-    Expect(1, 68900, '\p{Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(0, 68900, '\p{^Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(0, 68900, '\P{Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(1, 68900, '\P{^Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(0, 68899, '\p{Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(1, 68899, '\p{^Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(1, 68899, '\P{Is_Jg=--NO_JOINING_GROUP}', "");
-    Expect(0, 68899, '\P{^Is_Jg=--NO_JOINING_GROUP}', "");
-    Error('\p{Joining_Group=:=	_noon}');
-    Error('\P{Joining_Group=:=	_noon}');
+    Expect(1, 68900, '\p{Is_Jg=	No_joining_Group}', "");
+    Expect(0, 68900, '\p{^Is_Jg=	No_joining_Group}', "");
+    Expect(0, 68900, '\P{Is_Jg=	No_joining_Group}', "");
+    Expect(1, 68900, '\P{^Is_Jg=	No_joining_Group}', "");
+    Expect(0, 68899, '\p{Is_Jg=	No_joining_Group}', "");
+    Expect(1, 68899, '\p{^Is_Jg=	No_joining_Group}', "");
+    Expect(1, 68899, '\P{Is_Jg=	No_joining_Group}', "");
+    Expect(0, 68899, '\P{^Is_Jg=	No_joining_Group}', "");
+    Error('\p{Joining_Group=_Noon:=}');
+    Error('\P{Joining_Group=_Noon:=}');
     Expect(1, 2185, '\p{Joining_Group=:\ANoon\z:}', "");;
     Expect(0, 2186, '\p{Joining_Group=:\ANoon\z:}', "");;
     Expect(1, 2185, '\p{Joining_Group=noon}', "");
@@ -58641,16 +59247,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2186, '\P{^Joining_Group=noon}', "");
     Expect(1, 2185, '\p{Joining_Group=:\Anoon\z:}', "");;
     Expect(0, 2186, '\p{Joining_Group=:\Anoon\z:}', "");;
-    Expect(1, 2185, '\p{Joining_Group= _noon}', "");
-    Expect(0, 2185, '\p{^Joining_Group= _noon}', "");
-    Expect(0, 2185, '\P{Joining_Group= _noon}', "");
-    Expect(1, 2185, '\P{^Joining_Group= _noon}', "");
-    Expect(0, 2186, '\p{Joining_Group= _noon}', "");
-    Expect(1, 2186, '\p{^Joining_Group= _noon}', "");
-    Expect(1, 2186, '\P{Joining_Group= _noon}', "");
-    Expect(0, 2186, '\P{^Joining_Group= _noon}', "");
-    Error('\p{Jg=/a/		Noon}');
-    Error('\P{Jg=/a/		Noon}');
+    Expect(1, 2185, '\p{Joining_Group=__noon}', "");
+    Expect(0, 2185, '\p{^Joining_Group=__noon}', "");
+    Expect(0, 2185, '\P{Joining_Group=__noon}', "");
+    Expect(1, 2185, '\P{^Joining_Group=__noon}', "");
+    Expect(0, 2186, '\p{Joining_Group=__noon}', "");
+    Expect(1, 2186, '\p{^Joining_Group=__noon}', "");
+    Expect(1, 2186, '\P{Joining_Group=__noon}', "");
+    Expect(0, 2186, '\P{^Joining_Group=__noon}', "");
+    Error('\p{Jg=--NOON:=}');
+    Error('\P{Jg=--NOON:=}');
     Expect(1, 2185, '\p{Jg=:\ANoon\z:}', "");;
     Expect(0, 2186, '\p{Jg=:\ANoon\z:}', "");;
     Expect(1, 2185, '\p{Jg=noon}', "");
@@ -58663,16 +59269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2186, '\P{^Jg=noon}', "");
     Expect(1, 2185, '\p{Jg=:\Anoon\z:}', "");;
     Expect(0, 2186, '\p{Jg=:\Anoon\z:}', "");;
-    Expect(1, 2185, '\p{Jg=--Noon}', "");
-    Expect(0, 2185, '\p{^Jg=--Noon}', "");
-    Expect(0, 2185, '\P{Jg=--Noon}', "");
-    Expect(1, 2185, '\P{^Jg=--Noon}', "");
-    Expect(0, 2186, '\p{Jg=--Noon}', "");
-    Expect(1, 2186, '\p{^Jg=--Noon}', "");
-    Expect(1, 2186, '\P{Jg=--Noon}', "");
-    Expect(0, 2186, '\P{^Jg=--Noon}', "");
-    Error('\p{Is_Joining_Group=/a/Noon}');
-    Error('\P{Is_Joining_Group=/a/Noon}');
+    Expect(1, 2185, '\p{Jg=	Noon}', "");
+    Expect(0, 2185, '\p{^Jg=	Noon}', "");
+    Expect(0, 2185, '\P{Jg=	Noon}', "");
+    Expect(1, 2185, '\P{^Jg=	Noon}', "");
+    Expect(0, 2186, '\p{Jg=	Noon}', "");
+    Expect(1, 2186, '\p{^Jg=	Noon}', "");
+    Expect(1, 2186, '\P{Jg=	Noon}', "");
+    Expect(0, 2186, '\P{^Jg=	Noon}', "");
+    Error('\p{Is_Joining_Group=/a/  Noon}');
+    Error('\P{Is_Joining_Group=/a/  Noon}');
     Expect(1, 2185, '\p{Is_Joining_Group=noon}', "");
     Expect(0, 2185, '\p{^Is_Joining_Group=noon}', "");
     Expect(0, 2185, '\P{Is_Joining_Group=noon}', "");
@@ -58681,16 +59287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2186, '\p{^Is_Joining_Group=noon}', "");
     Expect(1, 2186, '\P{Is_Joining_Group=noon}', "");
     Expect(0, 2186, '\P{^Is_Joining_Group=noon}', "");
-    Expect(1, 2185, '\p{Is_Joining_Group: -	Noon}', "");
-    Expect(0, 2185, '\p{^Is_Joining_Group: -	Noon}', "");
-    Expect(0, 2185, '\P{Is_Joining_Group: -	Noon}', "");
-    Expect(1, 2185, '\P{^Is_Joining_Group: -	Noon}', "");
-    Expect(0, 2186, '\p{Is_Joining_Group: -	Noon}', "");
-    Expect(1, 2186, '\p{^Is_Joining_Group: -	Noon}', "");
-    Expect(1, 2186, '\P{Is_Joining_Group: -	Noon}', "");
-    Expect(0, 2186, '\P{^Is_Joining_Group: -	Noon}', "");
-    Error('\p{Is_Jg=/a/NOON}');
-    Error('\P{Is_Jg=/a/NOON}');
+    Expect(1, 2185, '\p{Is_Joining_Group=__NOON}', "");
+    Expect(0, 2185, '\p{^Is_Joining_Group=__NOON}', "");
+    Expect(0, 2185, '\P{Is_Joining_Group=__NOON}', "");
+    Expect(1, 2185, '\P{^Is_Joining_Group=__NOON}', "");
+    Expect(0, 2186, '\p{Is_Joining_Group=__NOON}', "");
+    Expect(1, 2186, '\p{^Is_Joining_Group=__NOON}', "");
+    Expect(1, 2186, '\P{Is_Joining_Group=__NOON}', "");
+    Expect(0, 2186, '\P{^Is_Joining_Group=__NOON}', "");
+    Error('\p{Is_Jg=:=_ NOON}');
+    Error('\P{Is_Jg=:=_ NOON}');
     Expect(1, 2185, '\p{Is_Jg=noon}', "");
     Expect(0, 2185, '\p{^Is_Jg=noon}', "");
     Expect(0, 2185, '\P{Is_Jg=noon}', "");
@@ -58699,16 +59305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2186, '\p{^Is_Jg=noon}', "");
     Expect(1, 2186, '\P{Is_Jg=noon}', "");
     Expect(0, 2186, '\P{^Is_Jg=noon}', "");
-    Expect(1, 2185, '\p{Is_Jg=__Noon}', "");
-    Expect(0, 2185, '\p{^Is_Jg=__Noon}', "");
-    Expect(0, 2185, '\P{Is_Jg=__Noon}', "");
-    Expect(1, 2185, '\P{^Is_Jg=__Noon}', "");
-    Expect(0, 2186, '\p{Is_Jg=__Noon}', "");
-    Expect(1, 2186, '\p{^Is_Jg=__Noon}', "");
-    Expect(1, 2186, '\P{Is_Jg=__Noon}', "");
-    Expect(0, 2186, '\P{^Is_Jg=__Noon}', "");
-    Error('\p{Joining_Group=	_NUN:=}');
-    Error('\P{Joining_Group=	_NUN:=}');
+    Expect(1, 2185, '\p{Is_Jg=	-Noon}', "");
+    Expect(0, 2185, '\p{^Is_Jg=	-Noon}', "");
+    Expect(0, 2185, '\P{Is_Jg=	-Noon}', "");
+    Expect(1, 2185, '\P{^Is_Jg=	-Noon}', "");
+    Expect(0, 2186, '\p{Is_Jg=	-Noon}', "");
+    Expect(1, 2186, '\p{^Is_Jg=	-Noon}', "");
+    Expect(1, 2186, '\P{Is_Jg=	-Noon}', "");
+    Expect(0, 2186, '\P{^Is_Jg=	-Noon}', "");
+    Error('\p{Joining_Group=/a/	Nun}');
+    Error('\P{Joining_Group=/a/	Nun}');
     Expect(1, 1826, '\p{Joining_Group=:\ANun\z:}', "");;
     Expect(0, 1827, '\p{Joining_Group=:\ANun\z:}', "");;
     Expect(1, 1826, '\p{Joining_Group=nun}', "");
@@ -58721,38 +59327,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1827, '\P{^Joining_Group=nun}', "");
     Expect(1, 1826, '\p{Joining_Group=:\Anun\z:}', "");;
     Expect(0, 1827, '\p{Joining_Group=:\Anun\z:}', "");;
-    Expect(1, 1826, '\p{Joining_Group= NUN}', "");
-    Expect(0, 1826, '\p{^Joining_Group= NUN}', "");
-    Expect(0, 1826, '\P{Joining_Group= NUN}', "");
-    Expect(1, 1826, '\P{^Joining_Group= NUN}', "");
-    Expect(0, 1827, '\p{Joining_Group= NUN}', "");
-    Expect(1, 1827, '\p{^Joining_Group= NUN}', "");
-    Expect(1, 1827, '\P{Joining_Group= NUN}', "");
-    Expect(0, 1827, '\P{^Joining_Group= NUN}', "");
-    Error('\p{Jg=-:=Nun}');
-    Error('\P{Jg=-:=Nun}');
+    Expect(1, 1826, '\p{Joining_Group=- nun}', "");
+    Expect(0, 1826, '\p{^Joining_Group=- nun}', "");
+    Expect(0, 1826, '\P{Joining_Group=- nun}', "");
+    Expect(1, 1826, '\P{^Joining_Group=- nun}', "");
+    Expect(0, 1827, '\p{Joining_Group=- nun}', "");
+    Expect(1, 1827, '\p{^Joining_Group=- nun}', "");
+    Expect(1, 1827, '\P{Joining_Group=- nun}', "");
+    Expect(0, 1827, '\P{^Joining_Group=- nun}', "");
+    Error('\p{Jg=--Nun:=}');
+    Error('\P{Jg=--Nun:=}');
     Expect(1, 1826, '\p{Jg=:\ANun\z:}', "");;
     Expect(0, 1827, '\p{Jg=:\ANun\z:}', "");;
-    Expect(1, 1826, '\p{Jg:nun}', "");
-    Expect(0, 1826, '\p{^Jg:nun}', "");
-    Expect(0, 1826, '\P{Jg:nun}', "");
-    Expect(1, 1826, '\P{^Jg:nun}', "");
-    Expect(0, 1827, '\p{Jg:nun}', "");
-    Expect(1, 1827, '\p{^Jg:nun}', "");
-    Expect(1, 1827, '\P{Jg:nun}', "");
-    Expect(0, 1827, '\P{^Jg:nun}', "");
+    Expect(1, 1826, '\p{Jg=nun}', "");
+    Expect(0, 1826, '\p{^Jg=nun}', "");
+    Expect(0, 1826, '\P{Jg=nun}', "");
+    Expect(1, 1826, '\P{^Jg=nun}', "");
+    Expect(0, 1827, '\p{Jg=nun}', "");
+    Expect(1, 1827, '\p{^Jg=nun}', "");
+    Expect(1, 1827, '\P{Jg=nun}', "");
+    Expect(0, 1827, '\P{^Jg=nun}', "");
     Expect(1, 1826, '\p{Jg=:\Anun\z:}', "");;
     Expect(0, 1827, '\p{Jg=:\Anun\z:}', "");;
-    Expect(1, 1826, '\p{Jg=	-Nun}', "");
-    Expect(0, 1826, '\p{^Jg=	-Nun}', "");
-    Expect(0, 1826, '\P{Jg=	-Nun}', "");
-    Expect(1, 1826, '\P{^Jg=	-Nun}', "");
-    Expect(0, 1827, '\p{Jg=	-Nun}', "");
-    Expect(1, 1827, '\p{^Jg=	-Nun}', "");
-    Expect(1, 1827, '\P{Jg=	-Nun}', "");
-    Expect(0, 1827, '\P{^Jg=	-Nun}', "");
-    Error('\p{Is_Joining_Group=:= 	NUN}');
-    Error('\P{Is_Joining_Group=:= 	NUN}');
+    Expect(1, 1826, '\p{Jg=	 NUN}', "");
+    Expect(0, 1826, '\p{^Jg=	 NUN}', "");
+    Expect(0, 1826, '\P{Jg=	 NUN}', "");
+    Expect(1, 1826, '\P{^Jg=	 NUN}', "");
+    Expect(0, 1827, '\p{Jg=	 NUN}', "");
+    Expect(1, 1827, '\p{^Jg=	 NUN}', "");
+    Expect(1, 1827, '\P{Jg=	 NUN}', "");
+    Expect(0, 1827, '\P{^Jg=	 NUN}', "");
+    Error('\p{Is_Joining_Group=/a/_	NUN}');
+    Error('\P{Is_Joining_Group=/a/_	NUN}');
     Expect(1, 1826, '\p{Is_Joining_Group=nun}', "");
     Expect(0, 1826, '\p{^Is_Joining_Group=nun}', "");
     Expect(0, 1826, '\P{Is_Joining_Group=nun}', "");
@@ -58761,16 +59367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1827, '\p{^Is_Joining_Group=nun}', "");
     Expect(1, 1827, '\P{Is_Joining_Group=nun}', "");
     Expect(0, 1827, '\P{^Is_Joining_Group=nun}', "");
-    Expect(1, 1826, '\p{Is_Joining_Group=-	Nun}', "");
-    Expect(0, 1826, '\p{^Is_Joining_Group=-	Nun}', "");
-    Expect(0, 1826, '\P{Is_Joining_Group=-	Nun}', "");
-    Expect(1, 1826, '\P{^Is_Joining_Group=-	Nun}', "");
-    Expect(0, 1827, '\p{Is_Joining_Group=-	Nun}', "");
-    Expect(1, 1827, '\p{^Is_Joining_Group=-	Nun}', "");
-    Expect(1, 1827, '\P{Is_Joining_Group=-	Nun}', "");
-    Expect(0, 1827, '\P{^Is_Joining_Group=-	Nun}', "");
-    Error('\p{Is_Jg=  nun/a/}');
-    Error('\P{Is_Jg=  nun/a/}');
+    Expect(1, 1826, '\p{Is_Joining_Group=_Nun}', "");
+    Expect(0, 1826, '\p{^Is_Joining_Group=_Nun}', "");
+    Expect(0, 1826, '\P{Is_Joining_Group=_Nun}', "");
+    Expect(1, 1826, '\P{^Is_Joining_Group=_Nun}', "");
+    Expect(0, 1827, '\p{Is_Joining_Group=_Nun}', "");
+    Expect(1, 1827, '\p{^Is_Joining_Group=_Nun}', "");
+    Expect(1, 1827, '\P{Is_Joining_Group=_Nun}', "");
+    Expect(0, 1827, '\P{^Is_Joining_Group=_Nun}', "");
+    Error('\p{Is_Jg=__Nun/a/}');
+    Error('\P{Is_Jg=__Nun/a/}');
     Expect(1, 1826, '\p{Is_Jg=nun}', "");
     Expect(0, 1826, '\p{^Is_Jg=nun}', "");
     Expect(0, 1826, '\P{Is_Jg=nun}', "");
@@ -58779,38 +59385,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1827, '\p{^Is_Jg=nun}', "");
     Expect(1, 1827, '\P{Is_Jg=nun}', "");
     Expect(0, 1827, '\P{^Is_Jg=nun}', "");
-    Expect(1, 1826, '\p{Is_Jg=-Nun}', "");
-    Expect(0, 1826, '\p{^Is_Jg=-Nun}', "");
-    Expect(0, 1826, '\P{Is_Jg=-Nun}', "");
-    Expect(1, 1826, '\P{^Is_Jg=-Nun}', "");
-    Expect(0, 1827, '\p{Is_Jg=-Nun}', "");
-    Expect(1, 1827, '\p{^Is_Jg=-Nun}', "");
-    Expect(1, 1827, '\P{Is_Jg=-Nun}', "");
-    Expect(0, 1827, '\P{^Is_Jg=-Nun}', "");
-    Error('\p{Joining_Group=_:=nya}');
-    Error('\P{Joining_Group=_:=nya}');
+    Expect(1, 1826, '\p{Is_Jg=	NUN}', "");
+    Expect(0, 1826, '\p{^Is_Jg=	NUN}', "");
+    Expect(0, 1826, '\P{Is_Jg=	NUN}', "");
+    Expect(1, 1826, '\P{^Is_Jg=	NUN}', "");
+    Expect(0, 1827, '\p{Is_Jg=	NUN}', "");
+    Expect(1, 1827, '\p{^Is_Jg=	NUN}', "");
+    Expect(1, 1827, '\P{Is_Jg=	NUN}', "");
+    Expect(0, 1827, '\P{^Is_Jg=	NUN}', "");
+    Error('\p{Joining_Group=	/a/NYA}');
+    Error('\P{Joining_Group=	/a/NYA}');
     Expect(1, 1725, '\p{Joining_Group=:\ANya\z:}', "");;
     Expect(0, 1726, '\p{Joining_Group=:\ANya\z:}', "");;
-    Expect(1, 1725, '\p{Joining_Group: nya}', "");
-    Expect(0, 1725, '\p{^Joining_Group: nya}', "");
-    Expect(0, 1725, '\P{Joining_Group: nya}', "");
-    Expect(1, 1725, '\P{^Joining_Group: nya}', "");
-    Expect(0, 1726, '\p{Joining_Group: nya}', "");
-    Expect(1, 1726, '\p{^Joining_Group: nya}', "");
-    Expect(1, 1726, '\P{Joining_Group: nya}', "");
-    Expect(0, 1726, '\P{^Joining_Group: nya}', "");
+    Expect(1, 1725, '\p{Joining_Group=nya}', "");
+    Expect(0, 1725, '\p{^Joining_Group=nya}', "");
+    Expect(0, 1725, '\P{Joining_Group=nya}', "");
+    Expect(1, 1725, '\P{^Joining_Group=nya}', "");
+    Expect(0, 1726, '\p{Joining_Group=nya}', "");
+    Expect(1, 1726, '\p{^Joining_Group=nya}', "");
+    Expect(1, 1726, '\P{Joining_Group=nya}', "");
+    Expect(0, 1726, '\P{^Joining_Group=nya}', "");
     Expect(1, 1725, '\p{Joining_Group=:\Anya\z:}', "");;
     Expect(0, 1726, '\p{Joining_Group=:\Anya\z:}', "");;
-    Expect(1, 1725, '\p{Joining_Group=__nya}', "");
-    Expect(0, 1725, '\p{^Joining_Group=__nya}', "");
-    Expect(0, 1725, '\P{Joining_Group=__nya}', "");
-    Expect(1, 1725, '\P{^Joining_Group=__nya}', "");
-    Expect(0, 1726, '\p{Joining_Group=__nya}', "");
-    Expect(1, 1726, '\p{^Joining_Group=__nya}', "");
-    Expect(1, 1726, '\P{Joining_Group=__nya}', "");
-    Expect(0, 1726, '\P{^Joining_Group=__nya}', "");
-    Error('\p{Jg=:=Nya}');
-    Error('\P{Jg=:=Nya}');
+    Expect(1, 1725, '\p{Joining_Group= Nya}', "");
+    Expect(0, 1725, '\p{^Joining_Group= Nya}', "");
+    Expect(0, 1725, '\P{Joining_Group= Nya}', "");
+    Expect(1, 1725, '\P{^Joining_Group= Nya}', "");
+    Expect(0, 1726, '\p{Joining_Group= Nya}', "");
+    Expect(1, 1726, '\p{^Joining_Group= Nya}', "");
+    Expect(1, 1726, '\P{Joining_Group= Nya}', "");
+    Expect(0, 1726, '\P{^Joining_Group= Nya}', "");
+    Error('\p{Jg: --nya/a/}');
+    Error('\P{Jg: --nya/a/}');
     Expect(1, 1725, '\p{Jg=:\ANya\z:}', "");;
     Expect(0, 1726, '\p{Jg=:\ANya\z:}', "");;
     Expect(1, 1725, '\p{Jg=nya}', "");
@@ -58823,34 +59429,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1726, '\P{^Jg=nya}', "");
     Expect(1, 1725, '\p{Jg=:\Anya\z:}', "");;
     Expect(0, 1726, '\p{Jg=:\Anya\z:}', "");;
-    Expect(1, 1725, '\p{Jg=- Nya}', "");
-    Expect(0, 1725, '\p{^Jg=- Nya}', "");
-    Expect(0, 1725, '\P{Jg=- Nya}', "");
-    Expect(1, 1725, '\P{^Jg=- Nya}', "");
-    Expect(0, 1726, '\p{Jg=- Nya}', "");
-    Expect(1, 1726, '\p{^Jg=- Nya}', "");
-    Expect(1, 1726, '\P{Jg=- Nya}', "");
-    Expect(0, 1726, '\P{^Jg=- Nya}', "");
-    Error('\p{Is_Joining_Group= /a/Nya}');
-    Error('\P{Is_Joining_Group= /a/Nya}');
-    Expect(1, 1725, '\p{Is_Joining_Group: nya}', "");
-    Expect(0, 1725, '\p{^Is_Joining_Group: nya}', "");
-    Expect(0, 1725, '\P{Is_Joining_Group: nya}', "");
-    Expect(1, 1725, '\P{^Is_Joining_Group: nya}', "");
-    Expect(0, 1726, '\p{Is_Joining_Group: nya}', "");
-    Expect(1, 1726, '\p{^Is_Joining_Group: nya}', "");
-    Expect(1, 1726, '\P{Is_Joining_Group: nya}', "");
-    Expect(0, 1726, '\P{^Is_Joining_Group: nya}', "");
-    Expect(1, 1725, '\p{Is_Joining_Group= _nya}', "");
-    Expect(0, 1725, '\p{^Is_Joining_Group= _nya}', "");
-    Expect(0, 1725, '\P{Is_Joining_Group= _nya}', "");
-    Expect(1, 1725, '\P{^Is_Joining_Group= _nya}', "");
-    Expect(0, 1726, '\p{Is_Joining_Group= _nya}', "");
-    Expect(1, 1726, '\p{^Is_Joining_Group= _nya}', "");
-    Expect(1, 1726, '\P{Is_Joining_Group= _nya}', "");
-    Expect(0, 1726, '\P{^Is_Joining_Group= _nya}', "");
-    Error('\p{Is_Jg=/a/_-Nya}');
-    Error('\P{Is_Jg=/a/_-Nya}');
+    Expect(1, 1725, '\p{Jg=- NYA}', "");
+    Expect(0, 1725, '\p{^Jg=- NYA}', "");
+    Expect(0, 1725, '\P{Jg=- NYA}', "");
+    Expect(1, 1725, '\P{^Jg=- NYA}', "");
+    Expect(0, 1726, '\p{Jg=- NYA}', "");
+    Expect(1, 1726, '\p{^Jg=- NYA}', "");
+    Expect(1, 1726, '\P{Jg=- NYA}', "");
+    Expect(0, 1726, '\P{^Jg=- NYA}', "");
+    Error('\p{Is_Joining_Group=/a/	_nya}');
+    Error('\P{Is_Joining_Group=/a/	_nya}');
+    Expect(1, 1725, '\p{Is_Joining_Group=nya}', "");
+    Expect(0, 1725, '\p{^Is_Joining_Group=nya}', "");
+    Expect(0, 1725, '\P{Is_Joining_Group=nya}', "");
+    Expect(1, 1725, '\P{^Is_Joining_Group=nya}', "");
+    Expect(0, 1726, '\p{Is_Joining_Group=nya}', "");
+    Expect(1, 1726, '\p{^Is_Joining_Group=nya}', "");
+    Expect(1, 1726, '\P{Is_Joining_Group=nya}', "");
+    Expect(0, 1726, '\P{^Is_Joining_Group=nya}', "");
+    Expect(1, 1725, '\p{Is_Joining_Group=	NYA}', "");
+    Expect(0, 1725, '\p{^Is_Joining_Group=	NYA}', "");
+    Expect(0, 1725, '\P{Is_Joining_Group=	NYA}', "");
+    Expect(1, 1725, '\P{^Is_Joining_Group=	NYA}', "");
+    Expect(0, 1726, '\p{Is_Joining_Group=	NYA}', "");
+    Expect(1, 1726, '\p{^Is_Joining_Group=	NYA}', "");
+    Expect(1, 1726, '\P{Is_Joining_Group=	NYA}', "");
+    Expect(0, 1726, '\P{^Is_Joining_Group=	NYA}', "");
+    Error('\p{Is_Jg=/a/-nya}');
+    Error('\P{Is_Jg=/a/-nya}');
     Expect(1, 1725, '\p{Is_Jg=nya}', "");
     Expect(0, 1725, '\p{^Is_Jg=nya}', "");
     Expect(0, 1725, '\P{Is_Jg=nya}', "");
@@ -58859,60 +59465,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1726, '\p{^Is_Jg=nya}', "");
     Expect(1, 1726, '\P{Is_Jg=nya}', "");
     Expect(0, 1726, '\P{^Is_Jg=nya}', "");
-    Expect(1, 1725, '\p{Is_Jg:- Nya}', "");
-    Expect(0, 1725, '\p{^Is_Jg:- Nya}', "");
-    Expect(0, 1725, '\P{Is_Jg:- Nya}', "");
-    Expect(1, 1725, '\P{^Is_Jg:- Nya}', "");
-    Expect(0, 1726, '\p{Is_Jg:- Nya}', "");
-    Expect(1, 1726, '\p{^Is_Jg:- Nya}', "");
-    Expect(1, 1726, '\P{Is_Jg:- Nya}', "");
-    Expect(0, 1726, '\P{^Is_Jg:- Nya}', "");
-    Error('\p{Joining_Group=/a/Pe}');
-    Error('\P{Joining_Group=/a/Pe}');
+    Expect(1, 1725, '\p{Is_Jg=	Nya}', "");
+    Expect(0, 1725, '\p{^Is_Jg=	Nya}', "");
+    Expect(0, 1725, '\P{Is_Jg=	Nya}', "");
+    Expect(1, 1725, '\P{^Is_Jg=	Nya}', "");
+    Expect(0, 1726, '\p{Is_Jg=	Nya}', "");
+    Expect(1, 1726, '\p{^Is_Jg=	Nya}', "");
+    Expect(1, 1726, '\P{Is_Jg=	Nya}', "");
+    Expect(0, 1726, '\P{^Is_Jg=	Nya}', "");
+    Error('\p{Joining_Group=/a/ PE}');
+    Error('\P{Joining_Group=/a/ PE}');
     Expect(1, 1830, '\p{Joining_Group=:\APe\z:}', "");;
     Expect(0, 1831, '\p{Joining_Group=:\APe\z:}', "");;
-    Expect(1, 1830, '\p{Joining_Group=pe}', "");
-    Expect(0, 1830, '\p{^Joining_Group=pe}', "");
-    Expect(0, 1830, '\P{Joining_Group=pe}', "");
-    Expect(1, 1830, '\P{^Joining_Group=pe}', "");
-    Expect(0, 1831, '\p{Joining_Group=pe}', "");
-    Expect(1, 1831, '\p{^Joining_Group=pe}', "");
-    Expect(1, 1831, '\P{Joining_Group=pe}', "");
-    Expect(0, 1831, '\P{^Joining_Group=pe}', "");
+    Expect(1, 1830, '\p{Joining_Group:pe}', "");
+    Expect(0, 1830, '\p{^Joining_Group:pe}', "");
+    Expect(0, 1830, '\P{Joining_Group:pe}', "");
+    Expect(1, 1830, '\P{^Joining_Group:pe}', "");
+    Expect(0, 1831, '\p{Joining_Group:pe}', "");
+    Expect(1, 1831, '\p{^Joining_Group:pe}', "");
+    Expect(1, 1831, '\P{Joining_Group:pe}', "");
+    Expect(0, 1831, '\P{^Joining_Group:pe}', "");
     Expect(1, 1830, '\p{Joining_Group=:\Ape\z:}', "");;
     Expect(0, 1831, '\p{Joining_Group=:\Ape\z:}', "");;
-    Expect(1, 1830, '\p{Joining_Group=	-pe}', "");
-    Expect(0, 1830, '\p{^Joining_Group=	-pe}', "");
-    Expect(0, 1830, '\P{Joining_Group=	-pe}', "");
-    Expect(1, 1830, '\P{^Joining_Group=	-pe}', "");
-    Expect(0, 1831, '\p{Joining_Group=	-pe}', "");
-    Expect(1, 1831, '\p{^Joining_Group=	-pe}', "");
-    Expect(1, 1831, '\P{Joining_Group=	-pe}', "");
-    Expect(0, 1831, '\P{^Joining_Group=	-pe}', "");
-    Error('\p{Jg=-pe/a/}');
-    Error('\P{Jg=-pe/a/}');
+    Expect(1, 1830, '\p{Joining_Group=	Pe}', "");
+    Expect(0, 1830, '\p{^Joining_Group=	Pe}', "");
+    Expect(0, 1830, '\P{Joining_Group=	Pe}', "");
+    Expect(1, 1830, '\P{^Joining_Group=	Pe}', "");
+    Expect(0, 1831, '\p{Joining_Group=	Pe}', "");
+    Expect(1, 1831, '\p{^Joining_Group=	Pe}', "");
+    Expect(1, 1831, '\P{Joining_Group=	Pe}', "");
+    Expect(0, 1831, '\P{^Joining_Group=	Pe}', "");
+    Error('\p{Jg=_:=PE}');
+    Error('\P{Jg=_:=PE}');
     Expect(1, 1830, '\p{Jg=:\APe\z:}', "");;
     Expect(0, 1831, '\p{Jg=:\APe\z:}', "");;
-    Expect(1, 1830, '\p{Jg=pe}', "");
-    Expect(0, 1830, '\p{^Jg=pe}', "");
-    Expect(0, 1830, '\P{Jg=pe}', "");
-    Expect(1, 1830, '\P{^Jg=pe}', "");
-    Expect(0, 1831, '\p{Jg=pe}', "");
-    Expect(1, 1831, '\p{^Jg=pe}', "");
-    Expect(1, 1831, '\P{Jg=pe}', "");
-    Expect(0, 1831, '\P{^Jg=pe}', "");
+    Expect(1, 1830, '\p{Jg:   pe}', "");
+    Expect(0, 1830, '\p{^Jg:   pe}', "");
+    Expect(0, 1830, '\P{Jg:   pe}', "");
+    Expect(1, 1830, '\P{^Jg:   pe}', "");
+    Expect(0, 1831, '\p{Jg:   pe}', "");
+    Expect(1, 1831, '\p{^Jg:   pe}', "");
+    Expect(1, 1831, '\P{Jg:   pe}', "");
+    Expect(0, 1831, '\P{^Jg:   pe}', "");
     Expect(1, 1830, '\p{Jg=:\Ape\z:}', "");;
     Expect(0, 1831, '\p{Jg=:\Ape\z:}', "");;
-    Expect(1, 1830, '\p{Jg=_ Pe}', "");
-    Expect(0, 1830, '\p{^Jg=_ Pe}', "");
-    Expect(0, 1830, '\P{Jg=_ Pe}', "");
-    Expect(1, 1830, '\P{^Jg=_ Pe}', "");
-    Expect(0, 1831, '\p{Jg=_ Pe}', "");
-    Expect(1, 1831, '\p{^Jg=_ Pe}', "");
-    Expect(1, 1831, '\P{Jg=_ Pe}', "");
-    Expect(0, 1831, '\P{^Jg=_ Pe}', "");
-    Error('\p{Is_Joining_Group: /a/PE}');
-    Error('\P{Is_Joining_Group: /a/PE}');
+    Expect(1, 1830, '\p{Jg=_Pe}', "");
+    Expect(0, 1830, '\p{^Jg=_Pe}', "");
+    Expect(0, 1830, '\P{Jg=_Pe}', "");
+    Expect(1, 1830, '\P{^Jg=_Pe}', "");
+    Expect(0, 1831, '\p{Jg=_Pe}', "");
+    Expect(1, 1831, '\p{^Jg=_Pe}', "");
+    Expect(1, 1831, '\P{Jg=_Pe}', "");
+    Expect(0, 1831, '\P{^Jg=_Pe}', "");
+    Error('\p{Is_Joining_Group=/a/ PE}');
+    Error('\P{Is_Joining_Group=/a/ PE}');
     Expect(1, 1830, '\p{Is_Joining_Group=pe}', "");
     Expect(0, 1830, '\p{^Is_Joining_Group=pe}', "");
     Expect(0, 1830, '\P{Is_Joining_Group=pe}', "");
@@ -58921,16 +59527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1831, '\p{^Is_Joining_Group=pe}', "");
     Expect(1, 1831, '\P{Is_Joining_Group=pe}', "");
     Expect(0, 1831, '\P{^Is_Joining_Group=pe}', "");
-    Expect(1, 1830, '\p{Is_Joining_Group=	Pe}', "");
-    Expect(0, 1830, '\p{^Is_Joining_Group=	Pe}', "");
-    Expect(0, 1830, '\P{Is_Joining_Group=	Pe}', "");
-    Expect(1, 1830, '\P{^Is_Joining_Group=	Pe}', "");
-    Expect(0, 1831, '\p{Is_Joining_Group=	Pe}', "");
-    Expect(1, 1831, '\p{^Is_Joining_Group=	Pe}', "");
-    Expect(1, 1831, '\P{Is_Joining_Group=	Pe}', "");
-    Expect(0, 1831, '\P{^Is_Joining_Group=	Pe}', "");
-    Error('\p{Is_Jg=:=_-Pe}');
-    Error('\P{Is_Jg=:=_-Pe}');
+    Expect(1, 1830, '\p{Is_Joining_Group=--PE}', "");
+    Expect(0, 1830, '\p{^Is_Joining_Group=--PE}', "");
+    Expect(0, 1830, '\P{Is_Joining_Group=--PE}', "");
+    Expect(1, 1830, '\P{^Is_Joining_Group=--PE}', "");
+    Expect(0, 1831, '\p{Is_Joining_Group=--PE}', "");
+    Expect(1, 1831, '\p{^Is_Joining_Group=--PE}', "");
+    Expect(1, 1831, '\P{Is_Joining_Group=--PE}', "");
+    Expect(0, 1831, '\P{^Is_Joining_Group=--PE}', "");
+    Error('\p{Is_Jg=:=_Pe}');
+    Error('\P{Is_Jg=:=_Pe}');
     Expect(1, 1830, '\p{Is_Jg=pe}', "");
     Expect(0, 1830, '\p{^Is_Jg=pe}', "");
     Expect(0, 1830, '\P{Is_Jg=pe}', "");
@@ -58939,16 +59545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1831, '\p{^Is_Jg=pe}', "");
     Expect(1, 1831, '\P{Is_Jg=pe}', "");
     Expect(0, 1831, '\P{^Is_Jg=pe}', "");
-    Expect(1, 1830, '\p{Is_Jg= 	Pe}', "");
-    Expect(0, 1830, '\p{^Is_Jg= 	Pe}', "");
-    Expect(0, 1830, '\P{Is_Jg= 	Pe}', "");
-    Expect(1, 1830, '\P{^Is_Jg= 	Pe}', "");
-    Expect(0, 1831, '\p{Is_Jg= 	Pe}', "");
-    Expect(1, 1831, '\p{^Is_Jg= 	Pe}', "");
-    Expect(1, 1831, '\P{Is_Jg= 	Pe}', "");
-    Expect(0, 1831, '\P{^Is_Jg= 	Pe}', "");
-    Error('\p{Joining_Group:/a/-	QAF}');
-    Error('\P{Joining_Group:/a/-	QAF}');
+    Expect(1, 1830, '\p{Is_Jg=_PE}', "");
+    Expect(0, 1830, '\p{^Is_Jg=_PE}', "");
+    Expect(0, 1830, '\P{Is_Jg=_PE}', "");
+    Expect(1, 1830, '\P{^Is_Jg=_PE}', "");
+    Expect(0, 1831, '\p{Is_Jg=_PE}', "");
+    Expect(1, 1831, '\p{^Is_Jg=_PE}', "");
+    Expect(1, 1831, '\P{Is_Jg=_PE}', "");
+    Expect(0, 1831, '\P{^Is_Jg=_PE}', "");
+    Error('\p{Joining_Group=	 QAF:=}');
+    Error('\P{Joining_Group=	 QAF:=}');
     Expect(1, 2229, '\p{Joining_Group=:\AQaf\z:}', "");;
     Expect(0, 2230, '\p{Joining_Group=:\AQaf\z:}', "");;
     Expect(1, 2229, '\p{Joining_Group=qaf}', "");
@@ -58961,16 +59567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2230, '\P{^Joining_Group=qaf}', "");
     Expect(1, 2229, '\p{Joining_Group=:\Aqaf\z:}', "");;
     Expect(0, 2230, '\p{Joining_Group=:\Aqaf\z:}', "");;
-    Expect(1, 2229, '\p{Joining_Group=-Qaf}', "");
-    Expect(0, 2229, '\p{^Joining_Group=-Qaf}', "");
-    Expect(0, 2229, '\P{Joining_Group=-Qaf}', "");
-    Expect(1, 2229, '\P{^Joining_Group=-Qaf}', "");
-    Expect(0, 2230, '\p{Joining_Group=-Qaf}', "");
-    Expect(1, 2230, '\p{^Joining_Group=-Qaf}', "");
-    Expect(1, 2230, '\P{Joining_Group=-Qaf}', "");
-    Expect(0, 2230, '\P{^Joining_Group=-Qaf}', "");
-    Error('\p{Jg=/a/		QAF}');
-    Error('\P{Jg=/a/		QAF}');
+    Expect(1, 2229, '\p{Joining_Group=_ QAF}', "");
+    Expect(0, 2229, '\p{^Joining_Group=_ QAF}', "");
+    Expect(0, 2229, '\P{Joining_Group=_ QAF}', "");
+    Expect(1, 2229, '\P{^Joining_Group=_ QAF}', "");
+    Expect(0, 2230, '\p{Joining_Group=_ QAF}', "");
+    Expect(1, 2230, '\p{^Joining_Group=_ QAF}', "");
+    Expect(1, 2230, '\P{Joining_Group=_ QAF}', "");
+    Expect(0, 2230, '\P{^Joining_Group=_ QAF}', "");
+    Error('\p{Jg=:=Qaf}');
+    Error('\P{Jg=:=Qaf}');
     Expect(1, 2229, '\p{Jg=:\AQaf\z:}', "");;
     Expect(0, 2230, '\p{Jg=:\AQaf\z:}', "");;
     Expect(1, 2229, '\p{Jg=qaf}', "");
@@ -58983,16 +59589,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2230, '\P{^Jg=qaf}', "");
     Expect(1, 2229, '\p{Jg=:\Aqaf\z:}', "");;
     Expect(0, 2230, '\p{Jg=:\Aqaf\z:}', "");;
-    Expect(1, 2229, '\p{Jg=-Qaf}', "");
-    Expect(0, 2229, '\p{^Jg=-Qaf}', "");
-    Expect(0, 2229, '\P{Jg=-Qaf}', "");
-    Expect(1, 2229, '\P{^Jg=-Qaf}', "");
-    Expect(0, 2230, '\p{Jg=-Qaf}', "");
-    Expect(1, 2230, '\p{^Jg=-Qaf}', "");
-    Expect(1, 2230, '\P{Jg=-Qaf}', "");
-    Expect(0, 2230, '\P{^Jg=-Qaf}', "");
-    Error('\p{Is_Joining_Group: -QAF:=}');
-    Error('\P{Is_Joining_Group: -QAF:=}');
+    Error('\p{Is_Joining_Group=/a/-Qaf}');
+    Error('\P{Is_Joining_Group=/a/-Qaf}');
     Expect(1, 2229, '\p{Is_Joining_Group=qaf}', "");
     Expect(0, 2229, '\p{^Is_Joining_Group=qaf}', "");
     Expect(0, 2229, '\P{Is_Joining_Group=qaf}', "");
@@ -59001,16 +59599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2230, '\p{^Is_Joining_Group=qaf}', "");
     Expect(1, 2230, '\P{Is_Joining_Group=qaf}', "");
     Expect(0, 2230, '\P{^Is_Joining_Group=qaf}', "");
-    Expect(1, 2229, '\p{Is_Joining_Group=-_Qaf}', "");
-    Expect(0, 2229, '\p{^Is_Joining_Group=-_Qaf}', "");
-    Expect(0, 2229, '\P{Is_Joining_Group=-_Qaf}', "");
-    Expect(1, 2229, '\P{^Is_Joining_Group=-_Qaf}', "");
-    Expect(0, 2230, '\p{Is_Joining_Group=-_Qaf}', "");
-    Expect(1, 2230, '\p{^Is_Joining_Group=-_Qaf}', "");
-    Expect(1, 2230, '\P{Is_Joining_Group=-_Qaf}', "");
-    Expect(0, 2230, '\P{^Is_Joining_Group=-_Qaf}', "");
-    Error('\p{Is_Jg=/a/	-Qaf}');
-    Error('\P{Is_Jg=/a/	-Qaf}');
+    Expect(1, 2229, '\p{Is_Joining_Group= 	Qaf}', "");
+    Expect(0, 2229, '\p{^Is_Joining_Group= 	Qaf}', "");
+    Expect(0, 2229, '\P{Is_Joining_Group= 	Qaf}', "");
+    Expect(1, 2229, '\P{^Is_Joining_Group= 	Qaf}', "");
+    Expect(0, 2230, '\p{Is_Joining_Group= 	Qaf}', "");
+    Expect(1, 2230, '\p{^Is_Joining_Group= 	Qaf}', "");
+    Expect(1, 2230, '\P{Is_Joining_Group= 	Qaf}', "");
+    Expect(0, 2230, '\P{^Is_Joining_Group= 	Qaf}', "");
+    Error('\p{Is_Jg= /a/qaf}');
+    Error('\P{Is_Jg= /a/qaf}');
     Expect(1, 2229, '\p{Is_Jg=qaf}', "");
     Expect(0, 2229, '\p{^Is_Jg=qaf}', "");
     Expect(0, 2229, '\P{Is_Jg=qaf}', "");
@@ -59019,38 +59617,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2230, '\p{^Is_Jg=qaf}', "");
     Expect(1, 2230, '\P{Is_Jg=qaf}', "");
     Expect(0, 2230, '\P{^Is_Jg=qaf}', "");
-    Expect(1, 2229, '\p{Is_Jg= _Qaf}', "");
-    Expect(0, 2229, '\p{^Is_Jg= _Qaf}', "");
-    Expect(0, 2229, '\P{Is_Jg= _Qaf}', "");
-    Expect(1, 2229, '\P{^Is_Jg= _Qaf}', "");
-    Expect(0, 2230, '\p{Is_Jg= _Qaf}', "");
-    Expect(1, 2230, '\p{^Is_Jg= _Qaf}', "");
-    Expect(1, 2230, '\P{Is_Jg= _Qaf}', "");
-    Expect(0, 2230, '\P{^Is_Jg= _Qaf}', "");
-    Error('\p{Joining_Group=--QAPH/a/}');
-    Error('\P{Joining_Group=--QAPH/a/}');
+    Expect(1, 2229, '\p{Is_Jg=	Qaf}', "");
+    Expect(0, 2229, '\p{^Is_Jg=	Qaf}', "");
+    Expect(0, 2229, '\P{Is_Jg=	Qaf}', "");
+    Expect(1, 2229, '\P{^Is_Jg=	Qaf}', "");
+    Expect(0, 2230, '\p{Is_Jg=	Qaf}', "");
+    Expect(1, 2230, '\p{^Is_Jg=	Qaf}', "");
+    Expect(1, 2230, '\P{Is_Jg=	Qaf}', "");
+    Expect(0, 2230, '\P{^Is_Jg=	Qaf}', "");
+    Error('\p{Joining_Group=_:=Qaph}');
+    Error('\P{Joining_Group=_:=Qaph}');
     Expect(1, 1833, '\p{Joining_Group=:\AQaph\z:}', "");;
     Expect(0, 1834, '\p{Joining_Group=:\AQaph\z:}', "");;
-    Expect(1, 1833, '\p{Joining_Group:   qaph}', "");
-    Expect(0, 1833, '\p{^Joining_Group:   qaph}', "");
-    Expect(0, 1833, '\P{Joining_Group:   qaph}', "");
-    Expect(1, 1833, '\P{^Joining_Group:   qaph}', "");
-    Expect(0, 1834, '\p{Joining_Group:   qaph}', "");
-    Expect(1, 1834, '\p{^Joining_Group:   qaph}', "");
-    Expect(1, 1834, '\P{Joining_Group:   qaph}', "");
-    Expect(0, 1834, '\P{^Joining_Group:   qaph}', "");
+    Expect(1, 1833, '\p{Joining_Group=qaph}', "");
+    Expect(0, 1833, '\p{^Joining_Group=qaph}', "");
+    Expect(0, 1833, '\P{Joining_Group=qaph}', "");
+    Expect(1, 1833, '\P{^Joining_Group=qaph}', "");
+    Expect(0, 1834, '\p{Joining_Group=qaph}', "");
+    Expect(1, 1834, '\p{^Joining_Group=qaph}', "");
+    Expect(1, 1834, '\P{Joining_Group=qaph}', "");
+    Expect(0, 1834, '\P{^Joining_Group=qaph}', "");
     Expect(1, 1833, '\p{Joining_Group=:\Aqaph\z:}', "");;
     Expect(0, 1834, '\p{Joining_Group=:\Aqaph\z:}', "");;
-    Expect(1, 1833, '\p{Joining_Group= Qaph}', "");
-    Expect(0, 1833, '\p{^Joining_Group= Qaph}', "");
-    Expect(0, 1833, '\P{Joining_Group= Qaph}', "");
-    Expect(1, 1833, '\P{^Joining_Group= Qaph}', "");
-    Expect(0, 1834, '\p{Joining_Group= Qaph}', "");
-    Expect(1, 1834, '\p{^Joining_Group= Qaph}', "");
-    Expect(1, 1834, '\P{Joining_Group= Qaph}', "");
-    Expect(0, 1834, '\P{^Joining_Group= Qaph}', "");
-    Error('\p{Jg=:=	Qaph}');
-    Error('\P{Jg=:=	Qaph}');
+    Expect(1, 1833, '\p{Joining_Group=_Qaph}', "");
+    Expect(0, 1833, '\p{^Joining_Group=_Qaph}', "");
+    Expect(0, 1833, '\P{Joining_Group=_Qaph}', "");
+    Expect(1, 1833, '\P{^Joining_Group=_Qaph}', "");
+    Expect(0, 1834, '\p{Joining_Group=_Qaph}', "");
+    Expect(1, 1834, '\p{^Joining_Group=_Qaph}', "");
+    Expect(1, 1834, '\P{Joining_Group=_Qaph}', "");
+    Expect(0, 1834, '\P{^Joining_Group=_Qaph}', "");
+    Error('\p{Jg=_:=Qaph}');
+    Error('\P{Jg=_:=Qaph}');
     Expect(1, 1833, '\p{Jg=:\AQaph\z:}', "");;
     Expect(0, 1834, '\p{Jg=:\AQaph\z:}', "");;
     Expect(1, 1833, '\p{Jg=qaph}', "");
@@ -59063,16 +59661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1834, '\P{^Jg=qaph}', "");
     Expect(1, 1833, '\p{Jg=:\Aqaph\z:}', "");;
     Expect(0, 1834, '\p{Jg=:\Aqaph\z:}', "");;
-    Expect(1, 1833, '\p{Jg=Qaph}', "");
-    Expect(0, 1833, '\p{^Jg=Qaph}', "");
-    Expect(0, 1833, '\P{Jg=Qaph}', "");
-    Expect(1, 1833, '\P{^Jg=Qaph}', "");
-    Expect(0, 1834, '\p{Jg=Qaph}', "");
-    Expect(1, 1834, '\p{^Jg=Qaph}', "");
-    Expect(1, 1834, '\P{Jg=Qaph}', "");
-    Expect(0, 1834, '\P{^Jg=Qaph}', "");
-    Error('\p{Is_Joining_Group=/a/  Qaph}');
-    Error('\P{Is_Joining_Group=/a/  Qaph}');
+    Expect(1, 1833, '\p{Jg=	QAPH}', "");
+    Expect(0, 1833, '\p{^Jg=	QAPH}', "");
+    Expect(0, 1833, '\P{Jg=	QAPH}', "");
+    Expect(1, 1833, '\P{^Jg=	QAPH}', "");
+    Expect(0, 1834, '\p{Jg=	QAPH}', "");
+    Expect(1, 1834, '\p{^Jg=	QAPH}', "");
+    Expect(1, 1834, '\P{Jg=	QAPH}', "");
+    Expect(0, 1834, '\P{^Jg=	QAPH}', "");
+    Error('\p{Is_Joining_Group=Qaph:=}');
+    Error('\P{Is_Joining_Group=Qaph:=}');
     Expect(1, 1833, '\p{Is_Joining_Group=qaph}', "");
     Expect(0, 1833, '\p{^Is_Joining_Group=qaph}', "");
     Expect(0, 1833, '\P{Is_Joining_Group=qaph}', "");
@@ -59081,34 +59679,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1834, '\p{^Is_Joining_Group=qaph}', "");
     Expect(1, 1834, '\P{Is_Joining_Group=qaph}', "");
     Expect(0, 1834, '\P{^Is_Joining_Group=qaph}', "");
-    Expect(1, 1833, '\p{Is_Joining_Group=_-Qaph}', "");
-    Expect(0, 1833, '\p{^Is_Joining_Group=_-Qaph}', "");
-    Expect(0, 1833, '\P{Is_Joining_Group=_-Qaph}', "");
-    Expect(1, 1833, '\P{^Is_Joining_Group=_-Qaph}', "");
-    Expect(0, 1834, '\p{Is_Joining_Group=_-Qaph}', "");
-    Expect(1, 1834, '\p{^Is_Joining_Group=_-Qaph}', "");
-    Expect(1, 1834, '\P{Is_Joining_Group=_-Qaph}', "");
-    Expect(0, 1834, '\P{^Is_Joining_Group=_-Qaph}', "");
-    Error('\p{Is_Jg=	:=qaph}');
-    Error('\P{Is_Jg=	:=qaph}');
-    Expect(1, 1833, '\p{Is_Jg=qaph}', "");
-    Expect(0, 1833, '\p{^Is_Jg=qaph}', "");
-    Expect(0, 1833, '\P{Is_Jg=qaph}', "");
-    Expect(1, 1833, '\P{^Is_Jg=qaph}', "");
-    Expect(0, 1834, '\p{Is_Jg=qaph}', "");
-    Expect(1, 1834, '\p{^Is_Jg=qaph}', "");
-    Expect(1, 1834, '\P{Is_Jg=qaph}', "");
-    Expect(0, 1834, '\P{^Is_Jg=qaph}', "");
-    Expect(1, 1833, '\p{Is_Jg= Qaph}', "");
-    Expect(0, 1833, '\p{^Is_Jg= Qaph}', "");
-    Expect(0, 1833, '\P{Is_Jg= Qaph}', "");
-    Expect(1, 1833, '\P{^Is_Jg= Qaph}', "");
-    Expect(0, 1834, '\p{Is_Jg= Qaph}', "");
-    Expect(1, 1834, '\p{^Is_Jg= Qaph}', "");
-    Expect(1, 1834, '\P{Is_Jg= Qaph}', "");
-    Expect(0, 1834, '\P{^Is_Jg= Qaph}', "");
-    Error('\p{Joining_Group=/a/REH}');
-    Error('\P{Joining_Group=/a/REH}');
+    Expect(1, 1833, '\p{Is_Joining_Group=-QAPH}', "");
+    Expect(0, 1833, '\p{^Is_Joining_Group=-QAPH}', "");
+    Expect(0, 1833, '\P{Is_Joining_Group=-QAPH}', "");
+    Expect(1, 1833, '\P{^Is_Joining_Group=-QAPH}', "");
+    Expect(0, 1834, '\p{Is_Joining_Group=-QAPH}', "");
+    Expect(1, 1834, '\p{^Is_Joining_Group=-QAPH}', "");
+    Expect(1, 1834, '\P{Is_Joining_Group=-QAPH}', "");
+    Expect(0, 1834, '\P{^Is_Joining_Group=-QAPH}', "");
+    Error('\p{Is_Jg=__qaph/a/}');
+    Error('\P{Is_Jg=__qaph/a/}');
+    Expect(1, 1833, '\p{Is_Jg:   qaph}', "");
+    Expect(0, 1833, '\p{^Is_Jg:   qaph}', "");
+    Expect(0, 1833, '\P{Is_Jg:   qaph}', "");
+    Expect(1, 1833, '\P{^Is_Jg:   qaph}', "");
+    Expect(0, 1834, '\p{Is_Jg:   qaph}', "");
+    Expect(1, 1834, '\p{^Is_Jg:   qaph}', "");
+    Expect(1, 1834, '\P{Is_Jg:   qaph}', "");
+    Expect(0, 1834, '\P{^Is_Jg:   qaph}', "");
+    Expect(1, 1833, '\p{Is_Jg=__qaph}', "");
+    Expect(0, 1833, '\p{^Is_Jg=__qaph}', "");
+    Expect(0, 1833, '\P{Is_Jg=__qaph}', "");
+    Expect(1, 1833, '\P{^Is_Jg=__qaph}', "");
+    Expect(0, 1834, '\p{Is_Jg=__qaph}', "");
+    Expect(1, 1834, '\p{^Is_Jg=__qaph}', "");
+    Expect(1, 1834, '\P{Is_Jg=__qaph}', "");
+    Expect(0, 1834, '\P{^Is_Jg=__qaph}', "");
+    Error('\p{Joining_Group=-:=reh}');
+    Error('\P{Joining_Group=-:=reh}');
     Expect(1, 2233, '\p{Joining_Group=:\AReh\z:}', "");;
     Expect(0, 2234, '\p{Joining_Group=:\AReh\z:}', "");;
     Expect(1, 2233, '\p{Joining_Group=reh}', "");
@@ -59121,16 +59719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2234, '\P{^Joining_Group=reh}', "");
     Expect(1, 2233, '\p{Joining_Group=:\Areh\z:}', "");;
     Expect(0, 2234, '\p{Joining_Group=:\Areh\z:}', "");;
-    Expect(1, 2233, '\p{Joining_Group=_-reh}', "");
-    Expect(0, 2233, '\p{^Joining_Group=_-reh}', "");
-    Expect(0, 2233, '\P{Joining_Group=_-reh}', "");
-    Expect(1, 2233, '\P{^Joining_Group=_-reh}', "");
-    Expect(0, 2234, '\p{Joining_Group=_-reh}', "");
-    Expect(1, 2234, '\p{^Joining_Group=_-reh}', "");
-    Expect(1, 2234, '\P{Joining_Group=_-reh}', "");
-    Expect(0, 2234, '\P{^Joining_Group=_-reh}', "");
-    Error('\p{Jg:   	 reh/a/}');
-    Error('\P{Jg:   	 reh/a/}');
+    Expect(1, 2233, '\p{Joining_Group= 	Reh}', "");
+    Expect(0, 2233, '\p{^Joining_Group= 	Reh}', "");
+    Expect(0, 2233, '\P{Joining_Group= 	Reh}', "");
+    Expect(1, 2233, '\P{^Joining_Group= 	Reh}', "");
+    Expect(0, 2234, '\p{Joining_Group= 	Reh}', "");
+    Expect(1, 2234, '\p{^Joining_Group= 	Reh}', "");
+    Expect(1, 2234, '\P{Joining_Group= 	Reh}', "");
+    Expect(0, 2234, '\P{^Joining_Group= 	Reh}', "");
+    Error('\p{Jg=	Reh/a/}');
+    Error('\P{Jg=	Reh/a/}');
     Expect(1, 2233, '\p{Jg=:\AReh\z:}', "");;
     Expect(0, 2234, '\p{Jg=:\AReh\z:}', "");;
     Expect(1, 2233, '\p{Jg=reh}', "");
@@ -59143,16 +59741,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2234, '\P{^Jg=reh}', "");
     Expect(1, 2233, '\p{Jg=:\Areh\z:}', "");;
     Expect(0, 2234, '\p{Jg=:\Areh\z:}', "");;
-    Expect(1, 2233, '\p{Jg= -REH}', "");
-    Expect(0, 2233, '\p{^Jg= -REH}', "");
-    Expect(0, 2233, '\P{Jg= -REH}', "");
-    Expect(1, 2233, '\P{^Jg= -REH}', "");
-    Expect(0, 2234, '\p{Jg= -REH}', "");
-    Expect(1, 2234, '\p{^Jg= -REH}', "");
-    Expect(1, 2234, '\P{Jg= -REH}', "");
-    Expect(0, 2234, '\P{^Jg= -REH}', "");
-    Error('\p{Is_Joining_Group=/a/-reh}');
-    Error('\P{Is_Joining_Group=/a/-reh}');
+    Expect(1, 2233, '\p{Jg= Reh}', "");
+    Expect(0, 2233, '\p{^Jg= Reh}', "");
+    Expect(0, 2233, '\P{Jg= Reh}', "");
+    Expect(1, 2233, '\P{^Jg= Reh}', "");
+    Expect(0, 2234, '\p{Jg= Reh}', "");
+    Expect(1, 2234, '\p{^Jg= Reh}', "");
+    Expect(1, 2234, '\P{Jg= Reh}', "");
+    Expect(0, 2234, '\P{^Jg= Reh}', "");
+    Error('\p{Is_Joining_Group=		REH:=}');
+    Error('\P{Is_Joining_Group=		REH:=}');
     Expect(1, 2233, '\p{Is_Joining_Group=reh}', "");
     Expect(0, 2233, '\p{^Is_Joining_Group=reh}', "");
     Expect(0, 2233, '\P{Is_Joining_Group=reh}', "");
@@ -59161,16 +59759,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2234, '\p{^Is_Joining_Group=reh}', "");
     Expect(1, 2234, '\P{Is_Joining_Group=reh}', "");
     Expect(0, 2234, '\P{^Is_Joining_Group=reh}', "");
-    Expect(1, 2233, '\p{Is_Joining_Group=- Reh}', "");
-    Expect(0, 2233, '\p{^Is_Joining_Group=- Reh}', "");
-    Expect(0, 2233, '\P{Is_Joining_Group=- Reh}', "");
-    Expect(1, 2233, '\P{^Is_Joining_Group=- Reh}', "");
-    Expect(0, 2234, '\p{Is_Joining_Group=- Reh}', "");
-    Expect(1, 2234, '\p{^Is_Joining_Group=- Reh}', "");
-    Expect(1, 2234, '\P{Is_Joining_Group=- Reh}', "");
-    Expect(0, 2234, '\P{^Is_Joining_Group=- Reh}', "");
-    Error('\p{Is_Jg=	Reh/a/}');
-    Error('\P{Is_Jg=	Reh/a/}');
+    Expect(1, 2233, '\p{Is_Joining_Group=-REH}', "");
+    Expect(0, 2233, '\p{^Is_Joining_Group=-REH}', "");
+    Expect(0, 2233, '\P{Is_Joining_Group=-REH}', "");
+    Expect(1, 2233, '\P{^Is_Joining_Group=-REH}', "");
+    Expect(0, 2234, '\p{Is_Joining_Group=-REH}', "");
+    Expect(1, 2234, '\p{^Is_Joining_Group=-REH}', "");
+    Expect(1, 2234, '\P{Is_Joining_Group=-REH}', "");
+    Expect(0, 2234, '\P{^Is_Joining_Group=-REH}', "");
+    Error('\p{Is_Jg=:=-REH}');
+    Error('\P{Is_Jg=:=-REH}');
     Expect(1, 2233, '\p{Is_Jg=reh}', "");
     Expect(0, 2233, '\p{^Is_Jg=reh}', "");
     Expect(0, 2233, '\P{Is_Jg=reh}', "");
@@ -59179,16 +59777,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2234, '\p{^Is_Jg=reh}', "");
     Expect(1, 2234, '\P{Is_Jg=reh}', "");
     Expect(0, 2234, '\P{^Is_Jg=reh}', "");
-    Expect(1, 2233, '\p{Is_Jg= 	reh}', "");
-    Expect(0, 2233, '\p{^Is_Jg= 	reh}', "");
-    Expect(0, 2233, '\P{Is_Jg= 	reh}', "");
-    Expect(1, 2233, '\P{^Is_Jg= 	reh}', "");
-    Expect(0, 2234, '\p{Is_Jg= 	reh}', "");
-    Expect(1, 2234, '\p{^Is_Jg= 	reh}', "");
-    Expect(1, 2234, '\P{Is_Jg= 	reh}', "");
-    Expect(0, 2234, '\P{^Is_Jg= 	reh}', "");
-    Error('\p{Joining_Group=-:=reversed_Pe}');
-    Error('\P{Joining_Group=-:=reversed_Pe}');
+    Expect(1, 2233, '\p{Is_Jg= -REH}', "");
+    Expect(0, 2233, '\p{^Is_Jg= -REH}', "");
+    Expect(0, 2233, '\P{Is_Jg= -REH}', "");
+    Expect(1, 2233, '\P{^Is_Jg= -REH}', "");
+    Expect(0, 2234, '\p{Is_Jg= -REH}', "");
+    Expect(1, 2234, '\p{^Is_Jg= -REH}', "");
+    Expect(1, 2234, '\P{Is_Jg= -REH}', "");
+    Expect(0, 2234, '\P{^Is_Jg= -REH}', "");
+    Error('\p{Joining_Group=- Reversed_PE:=}');
+    Error('\P{Joining_Group=- Reversed_PE:=}');
     Expect(1, 1831, '\p{Joining_Group=:\AReversed_Pe\z:}', "");;
     Expect(0, 1832, '\p{Joining_Group=:\AReversed_Pe\z:}', "");;
     Expect(1, 1831, '\p{Joining_Group=reversedpe}', "");
@@ -59201,16 +59799,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1832, '\P{^Joining_Group=reversedpe}', "");
     Expect(1, 1831, '\p{Joining_Group=:\Areversedpe\z:}', "");;
     Expect(0, 1832, '\p{Joining_Group=:\Areversedpe\z:}', "");;
-    Expect(1, 1831, '\p{Joining_Group=	-Reversed_Pe}', "");
-    Expect(0, 1831, '\p{^Joining_Group=	-Reversed_Pe}', "");
-    Expect(0, 1831, '\P{Joining_Group=	-Reversed_Pe}', "");
-    Expect(1, 1831, '\P{^Joining_Group=	-Reversed_Pe}', "");
-    Expect(0, 1832, '\p{Joining_Group=	-Reversed_Pe}', "");
-    Expect(1, 1832, '\p{^Joining_Group=	-Reversed_Pe}', "");
-    Expect(1, 1832, '\P{Joining_Group=	-Reversed_Pe}', "");
-    Expect(0, 1832, '\P{^Joining_Group=	-Reversed_Pe}', "");
-    Error('\p{Jg:	:=REVERSED_pe}');
-    Error('\P{Jg:	:=REVERSED_pe}');
+    Expect(1, 1831, '\p{Joining_Group:    Reversed_PE}', "");
+    Expect(0, 1831, '\p{^Joining_Group:    Reversed_PE}', "");
+    Expect(0, 1831, '\P{Joining_Group:    Reversed_PE}', "");
+    Expect(1, 1831, '\P{^Joining_Group:    Reversed_PE}', "");
+    Expect(0, 1832, '\p{Joining_Group:    Reversed_PE}', "");
+    Expect(1, 1832, '\p{^Joining_Group:    Reversed_PE}', "");
+    Expect(1, 1832, '\P{Joining_Group:    Reversed_PE}', "");
+    Expect(0, 1832, '\P{^Joining_Group:    Reversed_PE}', "");
+    Error('\p{Jg=/a/Reversed_PE}');
+    Error('\P{Jg=/a/Reversed_PE}');
     Expect(1, 1831, '\p{Jg=:\AReversed_Pe\z:}', "");;
     Expect(0, 1832, '\p{Jg=:\AReversed_Pe\z:}', "");;
     Expect(1, 1831, '\p{Jg=reversedpe}', "");
@@ -59223,16 +59821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1832, '\P{^Jg=reversedpe}', "");
     Expect(1, 1831, '\p{Jg=:\Areversedpe\z:}', "");;
     Expect(0, 1832, '\p{Jg=:\Areversedpe\z:}', "");;
-    Expect(1, 1831, '\p{Jg= _reversed_PE}', "");
-    Expect(0, 1831, '\p{^Jg= _reversed_PE}', "");
-    Expect(0, 1831, '\P{Jg= _reversed_PE}', "");
-    Expect(1, 1831, '\P{^Jg= _reversed_PE}', "");
-    Expect(0, 1832, '\p{Jg= _reversed_PE}', "");
-    Expect(1, 1832, '\p{^Jg= _reversed_PE}', "");
-    Expect(1, 1832, '\P{Jg= _reversed_PE}', "");
-    Expect(0, 1832, '\P{^Jg= _reversed_PE}', "");
-    Error('\p{Is_Joining_Group=:=-Reversed_pe}');
-    Error('\P{Is_Joining_Group=:=-Reversed_pe}');
+    Expect(1, 1831, '\p{Jg=_	reversed_PE}', "");
+    Expect(0, 1831, '\p{^Jg=_	reversed_PE}', "");
+    Expect(0, 1831, '\P{Jg=_	reversed_PE}', "");
+    Expect(1, 1831, '\P{^Jg=_	reversed_PE}', "");
+    Expect(0, 1832, '\p{Jg=_	reversed_PE}', "");
+    Expect(1, 1832, '\p{^Jg=_	reversed_PE}', "");
+    Expect(1, 1832, '\P{Jg=_	reversed_PE}', "");
+    Expect(0, 1832, '\P{^Jg=_	reversed_PE}', "");
+    Error('\p{Is_Joining_Group: /a/-Reversed_Pe}');
+    Error('\P{Is_Joining_Group: /a/-Reversed_Pe}');
     Expect(1, 1831, '\p{Is_Joining_Group=reversedpe}', "");
     Expect(0, 1831, '\p{^Is_Joining_Group=reversedpe}', "");
     Expect(0, 1831, '\P{Is_Joining_Group=reversedpe}', "");
@@ -59241,16 +59839,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1832, '\p{^Is_Joining_Group=reversedpe}', "");
     Expect(1, 1832, '\P{Is_Joining_Group=reversedpe}', "");
     Expect(0, 1832, '\P{^Is_Joining_Group=reversedpe}', "");
-    Expect(1, 1831, '\p{Is_Joining_Group=--Reversed_PE}', "");
-    Expect(0, 1831, '\p{^Is_Joining_Group=--Reversed_PE}', "");
-    Expect(0, 1831, '\P{Is_Joining_Group=--Reversed_PE}', "");
-    Expect(1, 1831, '\P{^Is_Joining_Group=--Reversed_PE}', "");
-    Expect(0, 1832, '\p{Is_Joining_Group=--Reversed_PE}', "");
-    Expect(1, 1832, '\p{^Is_Joining_Group=--Reversed_PE}', "");
-    Expect(1, 1832, '\P{Is_Joining_Group=--Reversed_PE}', "");
-    Expect(0, 1832, '\P{^Is_Joining_Group=--Reversed_PE}', "");
-    Error('\p{Is_Jg=/a/	 reversed_Pe}');
-    Error('\P{Is_Jg=/a/	 reversed_Pe}');
+    Expect(1, 1831, '\p{Is_Joining_Group=_reversed_Pe}', "");
+    Expect(0, 1831, '\p{^Is_Joining_Group=_reversed_Pe}', "");
+    Expect(0, 1831, '\P{Is_Joining_Group=_reversed_Pe}', "");
+    Expect(1, 1831, '\P{^Is_Joining_Group=_reversed_Pe}', "");
+    Expect(0, 1832, '\p{Is_Joining_Group=_reversed_Pe}', "");
+    Expect(1, 1832, '\p{^Is_Joining_Group=_reversed_Pe}', "");
+    Expect(1, 1832, '\P{Is_Joining_Group=_reversed_Pe}', "");
+    Expect(0, 1832, '\P{^Is_Joining_Group=_reversed_Pe}', "");
+    Error('\p{Is_Jg=/a/ _Reversed_pe}');
+    Error('\P{Is_Jg=/a/ _Reversed_pe}');
     Expect(1, 1831, '\p{Is_Jg=reversedpe}', "");
     Expect(0, 1831, '\p{^Is_Jg=reversedpe}', "");
     Expect(0, 1831, '\P{Is_Jg=reversedpe}', "");
@@ -59259,16 +59857,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1832, '\p{^Is_Jg=reversedpe}', "");
     Expect(1, 1832, '\P{Is_Jg=reversedpe}', "");
     Expect(0, 1832, '\P{^Is_Jg=reversedpe}', "");
-    Expect(1, 1831, '\p{Is_Jg=  Reversed_Pe}', "");
-    Expect(0, 1831, '\p{^Is_Jg=  Reversed_Pe}', "");
-    Expect(0, 1831, '\P{Is_Jg=  Reversed_Pe}', "");
-    Expect(1, 1831, '\P{^Is_Jg=  Reversed_Pe}', "");
-    Expect(0, 1832, '\p{Is_Jg=  Reversed_Pe}', "");
-    Expect(1, 1832, '\p{^Is_Jg=  Reversed_Pe}', "");
-    Expect(1, 1832, '\P{Is_Jg=  Reversed_Pe}', "");
-    Expect(0, 1832, '\P{^Is_Jg=  Reversed_Pe}', "");
-    Error('\p{Joining_Group=_:=Rohingya_YEH}');
-    Error('\P{Joining_Group=_:=Rohingya_YEH}');
+    Expect(1, 1831, '\p{Is_Jg=--reversed_Pe}', "");
+    Expect(0, 1831, '\p{^Is_Jg=--reversed_Pe}', "");
+    Expect(0, 1831, '\P{Is_Jg=--reversed_Pe}', "");
+    Expect(1, 1831, '\P{^Is_Jg=--reversed_Pe}', "");
+    Expect(0, 1832, '\p{Is_Jg=--reversed_Pe}', "");
+    Expect(1, 1832, '\p{^Is_Jg=--reversed_Pe}', "");
+    Expect(1, 1832, '\P{Is_Jg=--reversed_Pe}', "");
+    Expect(0, 1832, '\P{^Is_Jg=--reversed_Pe}', "");
+    Error('\p{Joining_Group=:=Rohingya_yeh}');
+    Error('\P{Joining_Group=:=Rohingya_yeh}');
     Expect(1, 2220, '\p{Joining_Group=:\ARohingya_Yeh\z:}', "");;
     Expect(0, 2221, '\p{Joining_Group=:\ARohingya_Yeh\z:}', "");;
     Expect(1, 2220, '\p{Joining_Group=rohingyayeh}', "");
@@ -59281,16 +59879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2221, '\P{^Joining_Group=rohingyayeh}', "");
     Expect(1, 2220, '\p{Joining_Group=:\Arohingyayeh\z:}', "");;
     Expect(0, 2221, '\p{Joining_Group=:\Arohingyayeh\z:}', "");;
-    Expect(1, 2220, '\p{Joining_Group: _Rohingya_YEH}', "");
-    Expect(0, 2220, '\p{^Joining_Group: _Rohingya_YEH}', "");
-    Expect(0, 2220, '\P{Joining_Group: _Rohingya_YEH}', "");
-    Expect(1, 2220, '\P{^Joining_Group: _Rohingya_YEH}', "");
-    Expect(0, 2221, '\p{Joining_Group: _Rohingya_YEH}', "");
-    Expect(1, 2221, '\p{^Joining_Group: _Rohingya_YEH}', "");
-    Expect(1, 2221, '\P{Joining_Group: _Rohingya_YEH}', "");
-    Expect(0, 2221, '\P{^Joining_Group: _Rohingya_YEH}', "");
-    Error('\p{Jg=--Rohingya_Yeh/a/}');
-    Error('\P{Jg=--Rohingya_Yeh/a/}');
+    Expect(1, 2220, '\p{Joining_Group=	_Rohingya_yeh}', "");
+    Expect(0, 2220, '\p{^Joining_Group=	_Rohingya_yeh}', "");
+    Expect(0, 2220, '\P{Joining_Group=	_Rohingya_yeh}', "");
+    Expect(1, 2220, '\P{^Joining_Group=	_Rohingya_yeh}', "");
+    Expect(0, 2221, '\p{Joining_Group=	_Rohingya_yeh}', "");
+    Expect(1, 2221, '\p{^Joining_Group=	_Rohingya_yeh}', "");
+    Expect(1, 2221, '\P{Joining_Group=	_Rohingya_yeh}', "");
+    Expect(0, 2221, '\P{^Joining_Group=	_Rohingya_yeh}', "");
+    Error('\p{Jg=	 Rohingya_YEH:=}');
+    Error('\P{Jg=	 Rohingya_YEH:=}');
     Expect(1, 2220, '\p{Jg=:\ARohingya_Yeh\z:}', "");;
     Expect(0, 2221, '\p{Jg=:\ARohingya_Yeh\z:}', "");;
     Expect(1, 2220, '\p{Jg=rohingyayeh}', "");
@@ -59303,16 +59901,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2221, '\P{^Jg=rohingyayeh}', "");
     Expect(1, 2220, '\p{Jg=:\Arohingyayeh\z:}', "");;
     Expect(0, 2221, '\p{Jg=:\Arohingyayeh\z:}', "");;
-    Expect(1, 2220, '\p{Jg: -Rohingya_Yeh}', "");
-    Expect(0, 2220, '\p{^Jg: -Rohingya_Yeh}', "");
-    Expect(0, 2220, '\P{Jg: -Rohingya_Yeh}', "");
-    Expect(1, 2220, '\P{^Jg: -Rohingya_Yeh}', "");
-    Expect(0, 2221, '\p{Jg: -Rohingya_Yeh}', "");
-    Expect(1, 2221, '\p{^Jg: -Rohingya_Yeh}', "");
-    Expect(1, 2221, '\P{Jg: -Rohingya_Yeh}', "");
-    Expect(0, 2221, '\P{^Jg: -Rohingya_Yeh}', "");
-    Error('\p{Is_Joining_Group= /a/rohingya_Yeh}');
-    Error('\P{Is_Joining_Group= /a/rohingya_Yeh}');
+    Expect(1, 2220, '\p{Jg=_	rohingya_yeh}', "");
+    Expect(0, 2220, '\p{^Jg=_	rohingya_yeh}', "");
+    Expect(0, 2220, '\P{Jg=_	rohingya_yeh}', "");
+    Expect(1, 2220, '\P{^Jg=_	rohingya_yeh}', "");
+    Expect(0, 2221, '\p{Jg=_	rohingya_yeh}', "");
+    Expect(1, 2221, '\p{^Jg=_	rohingya_yeh}', "");
+    Expect(1, 2221, '\P{Jg=_	rohingya_yeh}', "");
+    Expect(0, 2221, '\P{^Jg=_	rohingya_yeh}', "");
+    Error('\p{Is_Joining_Group=:=ROHINGYA_YEH}');
+    Error('\P{Is_Joining_Group=:=ROHINGYA_YEH}');
     Expect(1, 2220, '\p{Is_Joining_Group=rohingyayeh}', "");
     Expect(0, 2220, '\p{^Is_Joining_Group=rohingyayeh}', "");
     Expect(0, 2220, '\P{Is_Joining_Group=rohingyayeh}', "");
@@ -59321,16 +59919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2221, '\p{^Is_Joining_Group=rohingyayeh}', "");
     Expect(1, 2221, '\P{Is_Joining_Group=rohingyayeh}', "");
     Expect(0, 2221, '\P{^Is_Joining_Group=rohingyayeh}', "");
-    Expect(1, 2220, '\p{Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(0, 2220, '\p{^Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(0, 2220, '\P{Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(1, 2220, '\P{^Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(0, 2221, '\p{Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(1, 2221, '\p{^Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(1, 2221, '\P{Is_Joining_Group=	Rohingya_yeh}', "");
-    Expect(0, 2221, '\P{^Is_Joining_Group=	Rohingya_yeh}', "");
-    Error('\p{Is_Jg=-/a/ROHINGYA_Yeh}');
-    Error('\P{Is_Jg=-/a/ROHINGYA_Yeh}');
+    Expect(1, 2220, '\p{Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(0, 2220, '\p{^Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(0, 2220, '\P{Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(1, 2220, '\P{^Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(0, 2221, '\p{Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(1, 2221, '\p{^Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(1, 2221, '\P{Is_Joining_Group=-	Rohingya_YEH}', "");
+    Expect(0, 2221, '\P{^Is_Joining_Group=-	Rohingya_YEH}', "");
+    Error('\p{Is_Jg:-/a/ROHINGYA_Yeh}');
+    Error('\P{Is_Jg:-/a/ROHINGYA_Yeh}');
     Expect(1, 2220, '\p{Is_Jg=rohingyayeh}', "");
     Expect(0, 2220, '\p{^Is_Jg=rohingyayeh}', "");
     Expect(0, 2220, '\P{Is_Jg=rohingyayeh}', "");
@@ -59339,16 +59937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2221, '\p{^Is_Jg=rohingyayeh}', "");
     Expect(1, 2221, '\P{Is_Jg=rohingyayeh}', "");
     Expect(0, 2221, '\P{^Is_Jg=rohingyayeh}', "");
-    Expect(1, 2220, '\p{Is_Jg= _Rohingya_Yeh}', "");
-    Expect(0, 2220, '\p{^Is_Jg= _Rohingya_Yeh}', "");
-    Expect(0, 2220, '\P{Is_Jg= _Rohingya_Yeh}', "");
-    Expect(1, 2220, '\P{^Is_Jg= _Rohingya_Yeh}', "");
-    Expect(0, 2221, '\p{Is_Jg= _Rohingya_Yeh}', "");
-    Expect(1, 2221, '\p{^Is_Jg= _Rohingya_Yeh}', "");
-    Expect(1, 2221, '\P{Is_Jg= _Rohingya_Yeh}', "");
-    Expect(0, 2221, '\P{^Is_Jg= _Rohingya_Yeh}', "");
-    Error('\p{Joining_Group=_	Sad/a/}');
-    Error('\P{Joining_Group=_	Sad/a/}');
+    Expect(1, 2220, '\p{Is_Jg= _Rohingya_YEH}', "");
+    Expect(0, 2220, '\p{^Is_Jg= _Rohingya_YEH}', "");
+    Expect(0, 2220, '\P{Is_Jg= _Rohingya_YEH}', "");
+    Expect(1, 2220, '\P{^Is_Jg= _Rohingya_YEH}', "");
+    Expect(0, 2221, '\p{Is_Jg= _Rohingya_YEH}', "");
+    Expect(1, 2221, '\p{^Is_Jg= _Rohingya_YEH}', "");
+    Expect(1, 2221, '\P{Is_Jg= _Rohingya_YEH}', "");
+    Expect(0, 2221, '\P{^Is_Jg= _Rohingya_YEH}', "");
+    Error('\p{Joining_Group=:=	_SAD}');
+    Error('\P{Joining_Group=:=	_SAD}');
     Expect(1, 2223, '\p{Joining_Group=:\ASad\z:}', "");;
     Expect(0, 2224, '\p{Joining_Group=:\ASad\z:}', "");;
     Expect(1, 2223, '\p{Joining_Group=sad}', "");
@@ -59361,16 +59959,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2224, '\P{^Joining_Group=sad}', "");
     Expect(1, 2223, '\p{Joining_Group=:\Asad\z:}', "");;
     Expect(0, 2224, '\p{Joining_Group=:\Asad\z:}', "");;
-    Expect(1, 2223, '\p{Joining_Group=	-sad}', "");
-    Expect(0, 2223, '\p{^Joining_Group=	-sad}', "");
-    Expect(0, 2223, '\P{Joining_Group=	-sad}', "");
-    Expect(1, 2223, '\P{^Joining_Group=	-sad}', "");
-    Expect(0, 2224, '\p{Joining_Group=	-sad}', "");
-    Expect(1, 2224, '\p{^Joining_Group=	-sad}', "");
-    Expect(1, 2224, '\P{Joining_Group=	-sad}', "");
-    Expect(0, 2224, '\P{^Joining_Group=	-sad}', "");
-    Error('\p{Jg=/a/SAD}');
-    Error('\P{Jg=/a/SAD}');
+    Expect(1, 2223, '\p{Joining_Group=	Sad}', "");
+    Expect(0, 2223, '\p{^Joining_Group=	Sad}', "");
+    Expect(0, 2223, '\P{Joining_Group=	Sad}', "");
+    Expect(1, 2223, '\P{^Joining_Group=	Sad}', "");
+    Expect(0, 2224, '\p{Joining_Group=	Sad}', "");
+    Expect(1, 2224, '\p{^Joining_Group=	Sad}', "");
+    Expect(1, 2224, '\P{Joining_Group=	Sad}', "");
+    Expect(0, 2224, '\P{^Joining_Group=	Sad}', "");
+    Error('\p{Jg=/a/_	sad}');
+    Error('\P{Jg=/a/_	sad}');
     Expect(1, 2223, '\p{Jg=:\ASad\z:}', "");;
     Expect(0, 2224, '\p{Jg=:\ASad\z:}', "");;
     Expect(1, 2223, '\p{Jg=sad}', "");
@@ -59383,16 +59981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2224, '\P{^Jg=sad}', "");
     Expect(1, 2223, '\p{Jg=:\Asad\z:}', "");;
     Expect(0, 2224, '\p{Jg=:\Asad\z:}', "");;
-    Expect(1, 2223, '\p{Jg= -Sad}', "");
-    Expect(0, 2223, '\p{^Jg= -Sad}', "");
-    Expect(0, 2223, '\P{Jg= -Sad}', "");
-    Expect(1, 2223, '\P{^Jg= -Sad}', "");
-    Expect(0, 2224, '\p{Jg= -Sad}', "");
-    Expect(1, 2224, '\p{^Jg= -Sad}', "");
-    Expect(1, 2224, '\P{Jg= -Sad}', "");
-    Expect(0, 2224, '\P{^Jg= -Sad}', "");
-    Error('\p{Is_Joining_Group=/a/_-SAD}');
-    Error('\P{Is_Joining_Group=/a/_-SAD}');
+    Expect(1, 2223, '\p{Jg=	Sad}', "");
+    Expect(0, 2223, '\p{^Jg=	Sad}', "");
+    Expect(0, 2223, '\P{Jg=	Sad}', "");
+    Expect(1, 2223, '\P{^Jg=	Sad}', "");
+    Expect(0, 2224, '\p{Jg=	Sad}', "");
+    Expect(1, 2224, '\p{^Jg=	Sad}', "");
+    Expect(1, 2224, '\P{Jg=	Sad}', "");
+    Expect(0, 2224, '\P{^Jg=	Sad}', "");
+    Error('\p{Is_Joining_Group= Sad/a/}');
+    Error('\P{Is_Joining_Group= Sad/a/}');
     Expect(1, 2223, '\p{Is_Joining_Group=sad}', "");
     Expect(0, 2223, '\p{^Is_Joining_Group=sad}', "");
     Expect(0, 2223, '\P{Is_Joining_Group=sad}', "");
@@ -59401,56 +59999,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2224, '\p{^Is_Joining_Group=sad}', "");
     Expect(1, 2224, '\P{Is_Joining_Group=sad}', "");
     Expect(0, 2224, '\P{^Is_Joining_Group=sad}', "");
-    Expect(1, 2223, '\p{Is_Joining_Group=--SAD}', "");
-    Expect(0, 2223, '\p{^Is_Joining_Group=--SAD}', "");
-    Expect(0, 2223, '\P{Is_Joining_Group=--SAD}', "");
-    Expect(1, 2223, '\P{^Is_Joining_Group=--SAD}', "");
-    Expect(0, 2224, '\p{Is_Joining_Group=--SAD}', "");
-    Expect(1, 2224, '\p{^Is_Joining_Group=--SAD}', "");
-    Expect(1, 2224, '\P{Is_Joining_Group=--SAD}', "");
-    Expect(0, 2224, '\P{^Is_Joining_Group=--SAD}', "");
-    Error('\p{Is_Jg=_/a/Sad}');
-    Error('\P{Is_Jg=_/a/Sad}');
-    Expect(1, 2223, '\p{Is_Jg:	sad}', "");
-    Expect(0, 2223, '\p{^Is_Jg:	sad}', "");
-    Expect(0, 2223, '\P{Is_Jg:	sad}', "");
-    Expect(1, 2223, '\P{^Is_Jg:	sad}', "");
-    Expect(0, 2224, '\p{Is_Jg:	sad}', "");
-    Expect(1, 2224, '\p{^Is_Jg:	sad}', "");
-    Expect(1, 2224, '\P{Is_Jg:	sad}', "");
-    Expect(0, 2224, '\P{^Is_Jg:	sad}', "");
-    Expect(1, 2223, '\p{Is_Jg:-_sad}', "");
-    Expect(0, 2223, '\p{^Is_Jg:-_sad}', "");
-    Expect(0, 2223, '\P{Is_Jg:-_sad}', "");
-    Expect(1, 2223, '\P{^Is_Jg:-_sad}', "");
-    Expect(0, 2224, '\p{Is_Jg:-_sad}', "");
-    Expect(1, 2224, '\p{^Is_Jg:-_sad}', "");
-    Expect(1, 2224, '\P{Is_Jg:-_sad}', "");
-    Expect(0, 2224, '\P{^Is_Jg:-_sad}', "");
+    Expect(1, 2223, '\p{Is_Joining_Group= Sad}', "");
+    Expect(0, 2223, '\p{^Is_Joining_Group= Sad}', "");
+    Expect(0, 2223, '\P{Is_Joining_Group= Sad}', "");
+    Expect(1, 2223, '\P{^Is_Joining_Group= Sad}', "");
+    Expect(0, 2224, '\p{Is_Joining_Group= Sad}', "");
+    Expect(1, 2224, '\p{^Is_Joining_Group= Sad}', "");
+    Expect(1, 2224, '\P{Is_Joining_Group= Sad}', "");
+    Expect(0, 2224, '\P{^Is_Joining_Group= Sad}', "");
+    Error('\p{Is_Jg= sad/a/}');
+    Error('\P{Is_Jg= sad/a/}');
+    Expect(1, 2223, '\p{Is_Jg:   sad}', "");
+    Expect(0, 2223, '\p{^Is_Jg:   sad}', "");
+    Expect(0, 2223, '\P{Is_Jg:   sad}', "");
+    Expect(1, 2223, '\P{^Is_Jg:   sad}', "");
+    Expect(0, 2224, '\p{Is_Jg:   sad}', "");
+    Expect(1, 2224, '\p{^Is_Jg:   sad}', "");
+    Expect(1, 2224, '\P{Is_Jg:   sad}', "");
+    Expect(0, 2224, '\P{^Is_Jg:   sad}', "");
+    Expect(1, 2223, '\p{Is_Jg=	sad}', "");
+    Expect(0, 2223, '\p{^Is_Jg=	sad}', "");
+    Expect(0, 2223, '\P{Is_Jg=	sad}', "");
+    Expect(1, 2223, '\P{^Is_Jg=	sad}', "");
+    Expect(0, 2224, '\p{Is_Jg=	sad}', "");
+    Expect(1, 2224, '\p{^Is_Jg=	sad}', "");
+    Expect(1, 2224, '\P{Is_Jg=	sad}', "");
+    Expect(0, 2224, '\P{^Is_Jg=	sad}', "");
     Error('\p{Joining_Group= :=Sadhe}');
     Error('\P{Joining_Group= :=Sadhe}');
     Expect(1, 1832, '\p{Joining_Group=:\ASadhe\z:}', "");;
     Expect(0, 1833, '\p{Joining_Group=:\ASadhe\z:}', "");;
-    Expect(1, 1832, '\p{Joining_Group=sadhe}', "");
-    Expect(0, 1832, '\p{^Joining_Group=sadhe}', "");
-    Expect(0, 1832, '\P{Joining_Group=sadhe}', "");
-    Expect(1, 1832, '\P{^Joining_Group=sadhe}', "");
-    Expect(0, 1833, '\p{Joining_Group=sadhe}', "");
-    Expect(1, 1833, '\p{^Joining_Group=sadhe}', "");
-    Expect(1, 1833, '\P{Joining_Group=sadhe}', "");
-    Expect(0, 1833, '\P{^Joining_Group=sadhe}', "");
+    Expect(1, 1832, '\p{Joining_Group:	sadhe}', "");
+    Expect(0, 1832, '\p{^Joining_Group:	sadhe}', "");
+    Expect(0, 1832, '\P{Joining_Group:	sadhe}', "");
+    Expect(1, 1832, '\P{^Joining_Group:	sadhe}', "");
+    Expect(0, 1833, '\p{Joining_Group:	sadhe}', "");
+    Expect(1, 1833, '\p{^Joining_Group:	sadhe}', "");
+    Expect(1, 1833, '\P{Joining_Group:	sadhe}', "");
+    Expect(0, 1833, '\P{^Joining_Group:	sadhe}', "");
     Expect(1, 1832, '\p{Joining_Group=:\Asadhe\z:}', "");;
     Expect(0, 1833, '\p{Joining_Group=:\Asadhe\z:}', "");;
-    Expect(1, 1832, '\p{Joining_Group:		_sadhe}', "");
-    Expect(0, 1832, '\p{^Joining_Group:		_sadhe}', "");
-    Expect(0, 1832, '\P{Joining_Group:		_sadhe}', "");
-    Expect(1, 1832, '\P{^Joining_Group:		_sadhe}', "");
-    Expect(0, 1833, '\p{Joining_Group:		_sadhe}', "");
-    Expect(1, 1833, '\p{^Joining_Group:		_sadhe}', "");
-    Expect(1, 1833, '\P{Joining_Group:		_sadhe}', "");
-    Expect(0, 1833, '\P{^Joining_Group:		_sadhe}', "");
-    Error('\p{Jg=/a/-Sadhe}');
-    Error('\P{Jg=/a/-Sadhe}');
+    Expect(1, 1832, '\p{Joining_Group= _Sadhe}', "");
+    Expect(0, 1832, '\p{^Joining_Group= _Sadhe}', "");
+    Expect(0, 1832, '\P{Joining_Group= _Sadhe}', "");
+    Expect(1, 1832, '\P{^Joining_Group= _Sadhe}', "");
+    Expect(0, 1833, '\p{Joining_Group= _Sadhe}', "");
+    Expect(1, 1833, '\p{^Joining_Group= _Sadhe}', "");
+    Expect(1, 1833, '\P{Joining_Group= _Sadhe}', "");
+    Expect(0, 1833, '\P{^Joining_Group= _Sadhe}', "");
+    Error('\p{Jg=/a/ Sadhe}');
+    Error('\P{Jg=/a/ Sadhe}');
     Expect(1, 1832, '\p{Jg=:\ASadhe\z:}', "");;
     Expect(0, 1833, '\p{Jg=:\ASadhe\z:}', "");;
     Expect(1, 1832, '\p{Jg=sadhe}', "");
@@ -59463,16 +60061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1833, '\P{^Jg=sadhe}', "");
     Expect(1, 1832, '\p{Jg=:\Asadhe\z:}', "");;
     Expect(0, 1833, '\p{Jg=:\Asadhe\z:}', "");;
-    Expect(1, 1832, '\p{Jg=Sadhe}', "");
-    Expect(0, 1832, '\p{^Jg=Sadhe}', "");
-    Expect(0, 1832, '\P{Jg=Sadhe}', "");
-    Expect(1, 1832, '\P{^Jg=Sadhe}', "");
-    Expect(0, 1833, '\p{Jg=Sadhe}', "");
-    Expect(1, 1833, '\p{^Jg=Sadhe}', "");
-    Expect(1, 1833, '\P{Jg=Sadhe}', "");
-    Expect(0, 1833, '\P{^Jg=Sadhe}', "");
-    Error('\p{Is_Joining_Group=_sadhe:=}');
-    Error('\P{Is_Joining_Group=_sadhe:=}');
+    Expect(1, 1832, '\p{Jg=		sadhe}', "");
+    Expect(0, 1832, '\p{^Jg=		sadhe}', "");
+    Expect(0, 1832, '\P{Jg=		sadhe}', "");
+    Expect(1, 1832, '\P{^Jg=		sadhe}', "");
+    Expect(0, 1833, '\p{Jg=		sadhe}', "");
+    Expect(1, 1833, '\p{^Jg=		sadhe}', "");
+    Expect(1, 1833, '\P{Jg=		sadhe}', "");
+    Expect(0, 1833, '\P{^Jg=		sadhe}', "");
+    Error('\p{Is_Joining_Group=	-sadhe:=}');
+    Error('\P{Is_Joining_Group=	-sadhe:=}');
     Expect(1, 1832, '\p{Is_Joining_Group=sadhe}', "");
     Expect(0, 1832, '\p{^Is_Joining_Group=sadhe}', "");
     Expect(0, 1832, '\P{Is_Joining_Group=sadhe}', "");
@@ -59481,34 +60079,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1833, '\p{^Is_Joining_Group=sadhe}', "");
     Expect(1, 1833, '\P{Is_Joining_Group=sadhe}', "");
     Expect(0, 1833, '\P{^Is_Joining_Group=sadhe}', "");
-    Expect(1, 1832, '\p{Is_Joining_Group=Sadhe}', "");
-    Expect(0, 1832, '\p{^Is_Joining_Group=Sadhe}', "");
-    Expect(0, 1832, '\P{Is_Joining_Group=Sadhe}', "");
-    Expect(1, 1832, '\P{^Is_Joining_Group=Sadhe}', "");
-    Expect(0, 1833, '\p{Is_Joining_Group=Sadhe}', "");
-    Expect(1, 1833, '\p{^Is_Joining_Group=Sadhe}', "");
-    Expect(1, 1833, '\P{Is_Joining_Group=Sadhe}', "");
-    Expect(0, 1833, '\P{^Is_Joining_Group=Sadhe}', "");
-    Error('\p{Is_Jg= _sadhe:=}');
-    Error('\P{Is_Jg= _sadhe:=}');
-    Expect(1, 1832, '\p{Is_Jg:	sadhe}', "");
-    Expect(0, 1832, '\p{^Is_Jg:	sadhe}', "");
-    Expect(0, 1832, '\P{Is_Jg:	sadhe}', "");
-    Expect(1, 1832, '\P{^Is_Jg:	sadhe}', "");
-    Expect(0, 1833, '\p{Is_Jg:	sadhe}', "");
-    Expect(1, 1833, '\p{^Is_Jg:	sadhe}', "");
-    Expect(1, 1833, '\P{Is_Jg:	sadhe}', "");
-    Expect(0, 1833, '\P{^Is_Jg:	sadhe}', "");
-    Expect(1, 1832, '\p{Is_Jg=_ SADHE}', "");
-    Expect(0, 1832, '\p{^Is_Jg=_ SADHE}', "");
-    Expect(0, 1832, '\P{Is_Jg=_ SADHE}', "");
-    Expect(1, 1832, '\P{^Is_Jg=_ SADHE}', "");
-    Expect(0, 1833, '\p{Is_Jg=_ SADHE}', "");
-    Expect(1, 1833, '\p{^Is_Jg=_ SADHE}', "");
-    Expect(1, 1833, '\P{Is_Jg=_ SADHE}', "");
-    Expect(0, 1833, '\P{^Is_Jg=_ SADHE}', "");
-    Error('\p{Joining_Group= 	Seen:=}');
-    Error('\P{Joining_Group= 	Seen:=}');
+    Expect(1, 1832, '\p{Is_Joining_Group=-Sadhe}', "");
+    Expect(0, 1832, '\p{^Is_Joining_Group=-Sadhe}', "");
+    Expect(0, 1832, '\P{Is_Joining_Group=-Sadhe}', "");
+    Expect(1, 1832, '\P{^Is_Joining_Group=-Sadhe}', "");
+    Expect(0, 1833, '\p{Is_Joining_Group=-Sadhe}', "");
+    Expect(1, 1833, '\p{^Is_Joining_Group=-Sadhe}', "");
+    Expect(1, 1833, '\P{Is_Joining_Group=-Sadhe}', "");
+    Expect(0, 1833, '\P{^Is_Joining_Group=-Sadhe}', "");
+    Error('\p{Is_Jg=	/a/SADHE}');
+    Error('\P{Is_Jg=	/a/SADHE}');
+    Expect(1, 1832, '\p{Is_Jg=sadhe}', "");
+    Expect(0, 1832, '\p{^Is_Jg=sadhe}', "");
+    Expect(0, 1832, '\P{Is_Jg=sadhe}', "");
+    Expect(1, 1832, '\P{^Is_Jg=sadhe}', "");
+    Expect(0, 1833, '\p{Is_Jg=sadhe}', "");
+    Expect(1, 1833, '\p{^Is_Jg=sadhe}', "");
+    Expect(1, 1833, '\P{Is_Jg=sadhe}', "");
+    Expect(0, 1833, '\P{^Is_Jg=sadhe}', "");
+    Expect(1, 1832, '\p{Is_Jg:    Sadhe}', "");
+    Expect(0, 1832, '\p{^Is_Jg:    Sadhe}', "");
+    Expect(0, 1832, '\P{Is_Jg:    Sadhe}', "");
+    Expect(1, 1832, '\P{^Is_Jg:    Sadhe}', "");
+    Expect(0, 1833, '\p{Is_Jg:    Sadhe}', "");
+    Expect(1, 1833, '\p{^Is_Jg:    Sadhe}', "");
+    Expect(1, 1833, '\P{Is_Jg:    Sadhe}', "");
+    Expect(0, 1833, '\P{^Is_Jg:    Sadhe}', "");
+    Error('\p{Joining_Group=/a/Seen}');
+    Error('\P{Joining_Group=/a/Seen}');
     Expect(1, 1918, '\p{Joining_Group=:\ASeen\z:}', "");;
     Expect(0, 1919, '\p{Joining_Group=:\ASeen\z:}', "");;
     Expect(1, 1918, '\p{Joining_Group=seen}', "");
@@ -59521,38 +60119,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1919, '\P{^Joining_Group=seen}', "");
     Expect(1, 1918, '\p{Joining_Group=:\Aseen\z:}', "");;
     Expect(0, 1919, '\p{Joining_Group=:\Aseen\z:}', "");;
-    Expect(1, 1918, '\p{Joining_Group=-seen}', "");
-    Expect(0, 1918, '\p{^Joining_Group=-seen}', "");
-    Expect(0, 1918, '\P{Joining_Group=-seen}', "");
-    Expect(1, 1918, '\P{^Joining_Group=-seen}', "");
-    Expect(0, 1919, '\p{Joining_Group=-seen}', "");
-    Expect(1, 1919, '\p{^Joining_Group=-seen}', "");
-    Expect(1, 1919, '\P{Joining_Group=-seen}', "");
-    Expect(0, 1919, '\P{^Joining_Group=-seen}', "");
-    Error('\p{Jg=-:=seen}');
-    Error('\P{Jg=-:=seen}');
+    Expect(1, 1918, '\p{Joining_Group=  SEEN}', "");
+    Expect(0, 1918, '\p{^Joining_Group=  SEEN}', "");
+    Expect(0, 1918, '\P{Joining_Group=  SEEN}', "");
+    Expect(1, 1918, '\P{^Joining_Group=  SEEN}', "");
+    Expect(0, 1919, '\p{Joining_Group=  SEEN}', "");
+    Expect(1, 1919, '\p{^Joining_Group=  SEEN}', "");
+    Expect(1, 1919, '\P{Joining_Group=  SEEN}', "");
+    Expect(0, 1919, '\P{^Joining_Group=  SEEN}', "");
+    Error('\p{Jg=:=	 seen}');
+    Error('\P{Jg=:=	 seen}');
     Expect(1, 1918, '\p{Jg=:\ASeen\z:}', "");;
     Expect(0, 1919, '\p{Jg=:\ASeen\z:}', "");;
-    Expect(1, 1918, '\p{Jg=seen}', "");
-    Expect(0, 1918, '\p{^Jg=seen}', "");
-    Expect(0, 1918, '\P{Jg=seen}', "");
-    Expect(1, 1918, '\P{^Jg=seen}', "");
-    Expect(0, 1919, '\p{Jg=seen}', "");
-    Expect(1, 1919, '\p{^Jg=seen}', "");
-    Expect(1, 1919, '\P{Jg=seen}', "");
-    Expect(0, 1919, '\P{^Jg=seen}', "");
+    Expect(1, 1918, '\p{Jg:   seen}', "");
+    Expect(0, 1918, '\p{^Jg:   seen}', "");
+    Expect(0, 1918, '\P{Jg:   seen}', "");
+    Expect(1, 1918, '\P{^Jg:   seen}', "");
+    Expect(0, 1919, '\p{Jg:   seen}', "");
+    Expect(1, 1919, '\p{^Jg:   seen}', "");
+    Expect(1, 1919, '\P{Jg:   seen}', "");
+    Expect(0, 1919, '\P{^Jg:   seen}', "");
     Expect(1, 1918, '\p{Jg=:\Aseen\z:}', "");;
     Expect(0, 1919, '\p{Jg=:\Aseen\z:}', "");;
-    Expect(1, 1918, '\p{Jg: 	SEEN}', "");
-    Expect(0, 1918, '\p{^Jg: 	SEEN}', "");
-    Expect(0, 1918, '\P{Jg: 	SEEN}', "");
-    Expect(1, 1918, '\P{^Jg: 	SEEN}', "");
-    Expect(0, 1919, '\p{Jg: 	SEEN}', "");
-    Expect(1, 1919, '\p{^Jg: 	SEEN}', "");
-    Expect(1, 1919, '\P{Jg: 	SEEN}', "");
-    Expect(0, 1919, '\P{^Jg: 	SEEN}', "");
-    Error('\p{Is_Joining_Group=		Seen/a/}');
-    Error('\P{Is_Joining_Group=		Seen/a/}');
+    Expect(1, 1918, '\p{Jg=-Seen}', "");
+    Expect(0, 1918, '\p{^Jg=-Seen}', "");
+    Expect(0, 1918, '\P{Jg=-Seen}', "");
+    Expect(1, 1918, '\P{^Jg=-Seen}', "");
+    Expect(0, 1919, '\p{Jg=-Seen}', "");
+    Expect(1, 1919, '\p{^Jg=-Seen}', "");
+    Expect(1, 1919, '\P{Jg=-Seen}', "");
+    Expect(0, 1919, '\P{^Jg=-Seen}', "");
+    Error('\p{Is_Joining_Group=_/a/Seen}');
+    Error('\P{Is_Joining_Group=_/a/Seen}');
     Expect(1, 1918, '\p{Is_Joining_Group=seen}', "");
     Expect(0, 1918, '\p{^Is_Joining_Group=seen}', "");
     Expect(0, 1918, '\P{Is_Joining_Group=seen}', "");
@@ -59561,16 +60159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1919, '\p{^Is_Joining_Group=seen}', "");
     Expect(1, 1919, '\P{Is_Joining_Group=seen}', "");
     Expect(0, 1919, '\P{^Is_Joining_Group=seen}', "");
-    Expect(1, 1918, '\p{Is_Joining_Group=__SEEN}', "");
-    Expect(0, 1918, '\p{^Is_Joining_Group=__SEEN}', "");
-    Expect(0, 1918, '\P{Is_Joining_Group=__SEEN}', "");
-    Expect(1, 1918, '\P{^Is_Joining_Group=__SEEN}', "");
-    Expect(0, 1919, '\p{Is_Joining_Group=__SEEN}', "");
-    Expect(1, 1919, '\p{^Is_Joining_Group=__SEEN}', "");
-    Expect(1, 1919, '\P{Is_Joining_Group=__SEEN}', "");
-    Expect(0, 1919, '\P{^Is_Joining_Group=__SEEN}', "");
-    Error('\p{Is_Jg=/a/-_SEEN}');
-    Error('\P{Is_Jg=/a/-_SEEN}');
+    Expect(1, 1918, '\p{Is_Joining_Group= _seen}', "");
+    Expect(0, 1918, '\p{^Is_Joining_Group= _seen}', "");
+    Expect(0, 1918, '\P{Is_Joining_Group= _seen}', "");
+    Expect(1, 1918, '\P{^Is_Joining_Group= _seen}', "");
+    Expect(0, 1919, '\p{Is_Joining_Group= _seen}', "");
+    Expect(1, 1919, '\p{^Is_Joining_Group= _seen}', "");
+    Expect(1, 1919, '\P{Is_Joining_Group= _seen}', "");
+    Expect(0, 1919, '\P{^Is_Joining_Group= _seen}', "");
+    Error('\p{Is_Jg=:=_ Seen}');
+    Error('\P{Is_Jg=:=_ Seen}');
     Expect(1, 1918, '\p{Is_Jg=seen}', "");
     Expect(0, 1918, '\p{^Is_Jg=seen}', "");
     Expect(0, 1918, '\P{Is_Jg=seen}', "");
@@ -59579,16 +60177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1919, '\p{^Is_Jg=seen}', "");
     Expect(1, 1919, '\P{Is_Jg=seen}', "");
     Expect(0, 1919, '\P{^Is_Jg=seen}', "");
-    Expect(1, 1918, '\p{Is_Jg=	 Seen}', "");
-    Expect(0, 1918, '\p{^Is_Jg=	 Seen}', "");
-    Expect(0, 1918, '\P{Is_Jg=	 Seen}', "");
-    Expect(1, 1918, '\P{^Is_Jg=	 Seen}', "");
-    Expect(0, 1919, '\p{Is_Jg=	 Seen}', "");
-    Expect(1, 1919, '\p{^Is_Jg=	 Seen}', "");
-    Expect(1, 1919, '\P{Is_Jg=	 Seen}', "");
-    Expect(0, 1919, '\P{^Is_Jg=	 Seen}', "");
-    Error('\p{Joining_Group=/a/_-Semkath}');
-    Error('\P{Joining_Group=/a/_-Semkath}');
+    Expect(1, 1918, '\p{Is_Jg= -Seen}', "");
+    Expect(0, 1918, '\p{^Is_Jg= -Seen}', "");
+    Expect(0, 1918, '\P{Is_Jg= -Seen}', "");
+    Expect(1, 1918, '\P{^Is_Jg= -Seen}', "");
+    Expect(0, 1919, '\p{Is_Jg= -Seen}', "");
+    Expect(1, 1919, '\p{^Is_Jg= -Seen}', "");
+    Expect(1, 1919, '\P{Is_Jg= -Seen}', "");
+    Expect(0, 1919, '\P{^Is_Jg= -Seen}', "");
+    Error('\p{Joining_Group=-:=SEMKATH}');
+    Error('\P{Joining_Group=-:=SEMKATH}');
     Expect(1, 1827, '\p{Joining_Group=:\ASemkath\z:}', "");;
     Expect(0, 1828, '\p{Joining_Group=:\ASemkath\z:}', "");;
     Expect(1, 1827, '\p{Joining_Group=semkath}', "");
@@ -59601,38 +60199,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1828, '\P{^Joining_Group=semkath}', "");
     Expect(1, 1827, '\p{Joining_Group=:\Asemkath\z:}', "");;
     Expect(0, 1828, '\p{Joining_Group=:\Asemkath\z:}', "");;
-    Expect(1, 1827, '\p{Joining_Group:Semkath}', "");
-    Expect(0, 1827, '\p{^Joining_Group:Semkath}', "");
-    Expect(0, 1827, '\P{Joining_Group:Semkath}', "");
-    Expect(1, 1827, '\P{^Joining_Group:Semkath}', "");
-    Expect(0, 1828, '\p{Joining_Group:Semkath}', "");
-    Expect(1, 1828, '\p{^Joining_Group:Semkath}', "");
-    Expect(1, 1828, '\P{Joining_Group:Semkath}', "");
-    Expect(0, 1828, '\P{^Joining_Group:Semkath}', "");
-    Error('\p{Jg=	semkath:=}');
-    Error('\P{Jg=	semkath:=}');
+    Expect(1, 1827, '\p{Joining_Group=-	Semkath}', "");
+    Expect(0, 1827, '\p{^Joining_Group=-	Semkath}', "");
+    Expect(0, 1827, '\P{Joining_Group=-	Semkath}', "");
+    Expect(1, 1827, '\P{^Joining_Group=-	Semkath}', "");
+    Expect(0, 1828, '\p{Joining_Group=-	Semkath}', "");
+    Expect(1, 1828, '\p{^Joining_Group=-	Semkath}', "");
+    Expect(1, 1828, '\P{Joining_Group=-	Semkath}', "");
+    Expect(0, 1828, '\P{^Joining_Group=-	Semkath}', "");
+    Error('\p{Jg=		semkath/a/}');
+    Error('\P{Jg=		semkath/a/}');
     Expect(1, 1827, '\p{Jg=:\ASemkath\z:}', "");;
     Expect(0, 1828, '\p{Jg=:\ASemkath\z:}', "");;
-    Expect(1, 1827, '\p{Jg=semkath}', "");
-    Expect(0, 1827, '\p{^Jg=semkath}', "");
-    Expect(0, 1827, '\P{Jg=semkath}', "");
-    Expect(1, 1827, '\P{^Jg=semkath}', "");
-    Expect(0, 1828, '\p{Jg=semkath}', "");
-    Expect(1, 1828, '\p{^Jg=semkath}', "");
-    Expect(1, 1828, '\P{Jg=semkath}', "");
-    Expect(0, 1828, '\P{^Jg=semkath}', "");
+    Expect(1, 1827, '\p{Jg: semkath}', "");
+    Expect(0, 1827, '\p{^Jg: semkath}', "");
+    Expect(0, 1827, '\P{Jg: semkath}', "");
+    Expect(1, 1827, '\P{^Jg: semkath}', "");
+    Expect(0, 1828, '\p{Jg: semkath}', "");
+    Expect(1, 1828, '\p{^Jg: semkath}', "");
+    Expect(1, 1828, '\P{Jg: semkath}', "");
+    Expect(0, 1828, '\P{^Jg: semkath}', "");
     Expect(1, 1827, '\p{Jg=:\Asemkath\z:}', "");;
     Expect(0, 1828, '\p{Jg=:\Asemkath\z:}', "");;
-    Expect(1, 1827, '\p{Jg=- semkath}', "");
-    Expect(0, 1827, '\p{^Jg=- semkath}', "");
-    Expect(0, 1827, '\P{Jg=- semkath}', "");
-    Expect(1, 1827, '\P{^Jg=- semkath}', "");
-    Expect(0, 1828, '\p{Jg=- semkath}', "");
-    Expect(1, 1828, '\p{^Jg=- semkath}', "");
-    Expect(1, 1828, '\P{Jg=- semkath}', "");
-    Expect(0, 1828, '\P{^Jg=- semkath}', "");
-    Error('\p{Is_Joining_Group=:= -semkath}');
-    Error('\P{Is_Joining_Group=:= -semkath}');
+    Error('\p{Is_Joining_Group=/a/ Semkath}');
+    Error('\P{Is_Joining_Group=/a/ Semkath}');
     Expect(1, 1827, '\p{Is_Joining_Group=semkath}', "");
     Expect(0, 1827, '\p{^Is_Joining_Group=semkath}', "");
     Expect(0, 1827, '\P{Is_Joining_Group=semkath}', "");
@@ -59641,16 +60231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1828, '\p{^Is_Joining_Group=semkath}', "");
     Expect(1, 1828, '\P{Is_Joining_Group=semkath}', "");
     Expect(0, 1828, '\P{^Is_Joining_Group=semkath}', "");
-    Expect(1, 1827, '\p{Is_Joining_Group:_ semkath}', "");
-    Expect(0, 1827, '\p{^Is_Joining_Group:_ semkath}', "");
-    Expect(0, 1827, '\P{Is_Joining_Group:_ semkath}', "");
-    Expect(1, 1827, '\P{^Is_Joining_Group:_ semkath}', "");
-    Expect(0, 1828, '\p{Is_Joining_Group:_ semkath}', "");
-    Expect(1, 1828, '\p{^Is_Joining_Group:_ semkath}', "");
-    Expect(1, 1828, '\P{Is_Joining_Group:_ semkath}', "");
-    Expect(0, 1828, '\P{^Is_Joining_Group:_ semkath}', "");
-    Error('\p{Is_Jg:  SEMKATH:=}');
-    Error('\P{Is_Jg:  SEMKATH:=}');
+    Expect(1, 1827, '\p{Is_Joining_Group=_-semkath}', "");
+    Expect(0, 1827, '\p{^Is_Joining_Group=_-semkath}', "");
+    Expect(0, 1827, '\P{Is_Joining_Group=_-semkath}', "");
+    Expect(1, 1827, '\P{^Is_Joining_Group=_-semkath}', "");
+    Expect(0, 1828, '\p{Is_Joining_Group=_-semkath}', "");
+    Expect(1, 1828, '\p{^Is_Joining_Group=_-semkath}', "");
+    Expect(1, 1828, '\P{Is_Joining_Group=_-semkath}', "");
+    Expect(0, 1828, '\P{^Is_Joining_Group=_-semkath}', "");
+    Error('\p{Is_Jg=-:=SEMKATH}');
+    Error('\P{Is_Jg=-:=SEMKATH}');
     Expect(1, 1827, '\p{Is_Jg=semkath}', "");
     Expect(0, 1827, '\p{^Is_Jg=semkath}', "");
     Expect(0, 1827, '\P{Is_Jg=semkath}', "");
@@ -59659,16 +60249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1828, '\p{^Is_Jg=semkath}', "");
     Expect(1, 1828, '\P{Is_Jg=semkath}', "");
     Expect(0, 1828, '\P{^Is_Jg=semkath}', "");
-    Expect(1, 1827, '\p{Is_Jg=	semkath}', "");
-    Expect(0, 1827, '\p{^Is_Jg=	semkath}', "");
-    Expect(0, 1827, '\P{Is_Jg=	semkath}', "");
-    Expect(1, 1827, '\P{^Is_Jg=	semkath}', "");
-    Expect(0, 1828, '\p{Is_Jg=	semkath}', "");
-    Expect(1, 1828, '\p{^Is_Jg=	semkath}', "");
-    Expect(1, 1828, '\P{Is_Jg=	semkath}', "");
-    Expect(0, 1828, '\P{^Is_Jg=	semkath}', "");
-    Error('\p{Joining_Group=-/a/Shin}');
-    Error('\P{Joining_Group=-/a/Shin}');
+    Expect(1, 1827, '\p{Is_Jg=_Semkath}', "");
+    Expect(0, 1827, '\p{^Is_Jg=_Semkath}', "");
+    Expect(0, 1827, '\P{Is_Jg=_Semkath}', "");
+    Expect(1, 1827, '\P{^Is_Jg=_Semkath}', "");
+    Expect(0, 1828, '\p{Is_Jg=_Semkath}', "");
+    Expect(1, 1828, '\p{^Is_Jg=_Semkath}', "");
+    Expect(1, 1828, '\P{Is_Jg=_Semkath}', "");
+    Expect(0, 1828, '\P{^Is_Jg=_Semkath}', "");
+    Error('\p{Joining_Group=-Shin/a/}');
+    Error('\P{Joining_Group=-Shin/a/}');
     Expect(1, 1835, '\p{Joining_Group=:\AShin\z:}', "");;
     Expect(0, 1836, '\p{Joining_Group=:\AShin\z:}', "");;
     Expect(1, 1835, '\p{Joining_Group=shin}', "");
@@ -59681,16 +60271,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1836, '\P{^Joining_Group=shin}', "");
     Expect(1, 1835, '\p{Joining_Group=:\Ashin\z:}', "");;
     Expect(0, 1836, '\p{Joining_Group=:\Ashin\z:}', "");;
-    Expect(1, 1835, '\p{Joining_Group: -	SHIN}', "");
-    Expect(0, 1835, '\p{^Joining_Group: -	SHIN}', "");
-    Expect(0, 1835, '\P{Joining_Group: -	SHIN}', "");
-    Expect(1, 1835, '\P{^Joining_Group: -	SHIN}', "");
-    Expect(0, 1836, '\p{Joining_Group: -	SHIN}', "");
-    Expect(1, 1836, '\p{^Joining_Group: -	SHIN}', "");
-    Expect(1, 1836, '\P{Joining_Group: -	SHIN}', "");
-    Expect(0, 1836, '\P{^Joining_Group: -	SHIN}', "");
-    Error('\p{Jg=/a/		SHIN}');
-    Error('\P{Jg=/a/		SHIN}');
+    Expect(1, 1835, '\p{Joining_Group=-shin}', "");
+    Expect(0, 1835, '\p{^Joining_Group=-shin}', "");
+    Expect(0, 1835, '\P{Joining_Group=-shin}', "");
+    Expect(1, 1835, '\P{^Joining_Group=-shin}', "");
+    Expect(0, 1836, '\p{Joining_Group=-shin}', "");
+    Expect(1, 1836, '\p{^Joining_Group=-shin}', "");
+    Expect(1, 1836, '\P{Joining_Group=-shin}', "");
+    Expect(0, 1836, '\P{^Joining_Group=-shin}', "");
+    Error('\p{Jg:   :=Shin}');
+    Error('\P{Jg:   :=Shin}');
     Expect(1, 1835, '\p{Jg=:\AShin\z:}', "");;
     Expect(0, 1836, '\p{Jg=:\AShin\z:}', "");;
     Expect(1, 1835, '\p{Jg=shin}', "");
@@ -59703,16 +60293,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1836, '\P{^Jg=shin}', "");
     Expect(1, 1835, '\p{Jg=:\Ashin\z:}', "");;
     Expect(0, 1836, '\p{Jg=:\Ashin\z:}', "");;
-    Expect(1, 1835, '\p{Jg=_SHIN}', "");
-    Expect(0, 1835, '\p{^Jg=_SHIN}', "");
-    Expect(0, 1835, '\P{Jg=_SHIN}', "");
-    Expect(1, 1835, '\P{^Jg=_SHIN}', "");
-    Expect(0, 1836, '\p{Jg=_SHIN}', "");
-    Expect(1, 1836, '\p{^Jg=_SHIN}', "");
-    Expect(1, 1836, '\P{Jg=_SHIN}', "");
-    Expect(0, 1836, '\P{^Jg=_SHIN}', "");
-    Error('\p{Is_Joining_Group=_	shin/a/}');
-    Error('\P{Is_Joining_Group=_	shin/a/}');
+    Expect(1, 1835, '\p{Jg= Shin}', "");
+    Expect(0, 1835, '\p{^Jg= Shin}', "");
+    Expect(0, 1835, '\P{Jg= Shin}', "");
+    Expect(1, 1835, '\P{^Jg= Shin}', "");
+    Expect(0, 1836, '\p{Jg= Shin}', "");
+    Expect(1, 1836, '\p{^Jg= Shin}', "");
+    Expect(1, 1836, '\P{Jg= Shin}', "");
+    Expect(0, 1836, '\P{^Jg= Shin}', "");
+    Error('\p{Is_Joining_Group: :=Shin}');
+    Error('\P{Is_Joining_Group: :=Shin}');
     Expect(1, 1835, '\p{Is_Joining_Group=shin}', "");
     Expect(0, 1835, '\p{^Is_Joining_Group=shin}', "");
     Expect(0, 1835, '\P{Is_Joining_Group=shin}', "");
@@ -59721,16 +60311,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1836, '\p{^Is_Joining_Group=shin}', "");
     Expect(1, 1836, '\P{Is_Joining_Group=shin}', "");
     Expect(0, 1836, '\P{^Is_Joining_Group=shin}', "");
-    Expect(1, 1835, '\p{Is_Joining_Group:	_SHIN}', "");
-    Expect(0, 1835, '\p{^Is_Joining_Group:	_SHIN}', "");
-    Expect(0, 1835, '\P{Is_Joining_Group:	_SHIN}', "");
-    Expect(1, 1835, '\P{^Is_Joining_Group:	_SHIN}', "");
-    Expect(0, 1836, '\p{Is_Joining_Group:	_SHIN}', "");
-    Expect(1, 1836, '\p{^Is_Joining_Group:	_SHIN}', "");
-    Expect(1, 1836, '\P{Is_Joining_Group:	_SHIN}', "");
-    Expect(0, 1836, '\P{^Is_Joining_Group:	_SHIN}', "");
-    Error('\p{Is_Jg= :=shin}');
-    Error('\P{Is_Jg= :=shin}');
+    Expect(1, 1835, '\p{Is_Joining_Group=__shin}', "");
+    Expect(0, 1835, '\p{^Is_Joining_Group=__shin}', "");
+    Expect(0, 1835, '\P{Is_Joining_Group=__shin}', "");
+    Expect(1, 1835, '\P{^Is_Joining_Group=__shin}', "");
+    Expect(0, 1836, '\p{Is_Joining_Group=__shin}', "");
+    Expect(1, 1836, '\p{^Is_Joining_Group=__shin}', "");
+    Expect(1, 1836, '\P{Is_Joining_Group=__shin}', "");
+    Expect(0, 1836, '\P{^Is_Joining_Group=__shin}', "");
+    Error('\p{Is_Jg=		Shin/a/}');
+    Error('\P{Is_Jg=		Shin/a/}');
     Expect(1, 1835, '\p{Is_Jg=shin}', "");
     Expect(0, 1835, '\p{^Is_Jg=shin}', "");
     Expect(0, 1835, '\P{Is_Jg=shin}', "");
@@ -59739,16 +60329,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1836, '\p{^Is_Jg=shin}', "");
     Expect(1, 1836, '\P{Is_Jg=shin}', "");
     Expect(0, 1836, '\P{^Is_Jg=shin}', "");
-    Expect(1, 1835, '\p{Is_Jg=		Shin}', "");
-    Expect(0, 1835, '\p{^Is_Jg=		Shin}', "");
-    Expect(0, 1835, '\P{Is_Jg=		Shin}', "");
-    Expect(1, 1835, '\P{^Is_Jg=		Shin}', "");
-    Expect(0, 1836, '\p{Is_Jg=		Shin}', "");
-    Expect(1, 1836, '\p{^Is_Jg=		Shin}', "");
-    Expect(1, 1836, '\P{Is_Jg=		Shin}', "");
-    Expect(0, 1836, '\P{^Is_Jg=		Shin}', "");
-    Error('\p{Joining_Group=__Straight_Waw:=}');
-    Error('\P{Joining_Group=__Straight_Waw:=}');
+    Expect(1, 1835, '\p{Is_Jg:_-Shin}', "");
+    Expect(0, 1835, '\p{^Is_Jg:_-Shin}', "");
+    Expect(0, 1835, '\P{Is_Jg:_-Shin}', "");
+    Expect(1, 1835, '\P{^Is_Jg:_-Shin}', "");
+    Expect(0, 1836, '\p{Is_Jg:_-Shin}', "");
+    Expect(1, 1836, '\p{^Is_Jg:_-Shin}', "");
+    Expect(1, 1836, '\P{Is_Jg:_-Shin}', "");
+    Expect(0, 1836, '\P{^Is_Jg:_-Shin}', "");
+    Error('\p{Joining_Group= :=STRAIGHT_Waw}');
+    Error('\P{Joining_Group= :=STRAIGHT_Waw}');
     Expect(1, 2225, '\p{Joining_Group=:\AStraight_Waw\z:}', "");;
     Expect(0, 2226, '\p{Joining_Group=:\AStraight_Waw\z:}', "");;
     Expect(1, 2225, '\p{Joining_Group=straightwaw}', "");
@@ -59761,16 +60351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2226, '\P{^Joining_Group=straightwaw}', "");
     Expect(1, 2225, '\p{Joining_Group=:\Astraightwaw\z:}', "");;
     Expect(0, 2226, '\p{Joining_Group=:\Astraightwaw\z:}', "");;
-    Expect(1, 2225, '\p{Joining_Group= _Straight_WAW}', "");
-    Expect(0, 2225, '\p{^Joining_Group= _Straight_WAW}', "");
-    Expect(0, 2225, '\P{Joining_Group= _Straight_WAW}', "");
-    Expect(1, 2225, '\P{^Joining_Group= _Straight_WAW}', "");
-    Expect(0, 2226, '\p{Joining_Group= _Straight_WAW}', "");
-    Expect(1, 2226, '\p{^Joining_Group= _Straight_WAW}', "");
-    Expect(1, 2226, '\P{Joining_Group= _Straight_WAW}', "");
-    Expect(0, 2226, '\P{^Joining_Group= _Straight_WAW}', "");
-    Error('\p{Jg=--STRAIGHT_waw/a/}');
-    Error('\P{Jg=--STRAIGHT_waw/a/}');
+    Expect(1, 2225, '\p{Joining_Group=_Straight_WAW}', "");
+    Expect(0, 2225, '\p{^Joining_Group=_Straight_WAW}', "");
+    Expect(0, 2225, '\P{Joining_Group=_Straight_WAW}', "");
+    Expect(1, 2225, '\P{^Joining_Group=_Straight_WAW}', "");
+    Expect(0, 2226, '\p{Joining_Group=_Straight_WAW}', "");
+    Expect(1, 2226, '\p{^Joining_Group=_Straight_WAW}', "");
+    Expect(1, 2226, '\P{Joining_Group=_Straight_WAW}', "");
+    Expect(0, 2226, '\P{^Joining_Group=_Straight_WAW}', "");
+    Error('\p{Jg= -straight_Waw/a/}');
+    Error('\P{Jg= -straight_Waw/a/}');
     Expect(1, 2225, '\p{Jg=:\AStraight_Waw\z:}', "");;
     Expect(0, 2226, '\p{Jg=:\AStraight_Waw\z:}', "");;
     Expect(1, 2225, '\p{Jg=straightwaw}', "");
@@ -59783,34 +60373,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2226, '\P{^Jg=straightwaw}', "");
     Expect(1, 2225, '\p{Jg=:\Astraightwaw\z:}', "");;
     Expect(0, 2226, '\p{Jg=:\Astraightwaw\z:}', "");;
-    Expect(1, 2225, '\p{Jg=_Straight_waw}', "");
-    Expect(0, 2225, '\p{^Jg=_Straight_waw}', "");
-    Expect(0, 2225, '\P{Jg=_Straight_waw}', "");
-    Expect(1, 2225, '\P{^Jg=_Straight_waw}', "");
-    Expect(0, 2226, '\p{Jg=_Straight_waw}', "");
-    Expect(1, 2226, '\p{^Jg=_Straight_waw}', "");
-    Expect(1, 2226, '\P{Jg=_Straight_waw}', "");
-    Expect(0, 2226, '\P{^Jg=_Straight_waw}', "");
-    Error('\p{Is_Joining_Group=:=	 STRAIGHT_Waw}');
-    Error('\P{Is_Joining_Group=:=	 STRAIGHT_Waw}');
-    Expect(1, 2225, '\p{Is_Joining_Group:	straightwaw}', "");
-    Expect(0, 2225, '\p{^Is_Joining_Group:	straightwaw}', "");
-    Expect(0, 2225, '\P{Is_Joining_Group:	straightwaw}', "");
-    Expect(1, 2225, '\P{^Is_Joining_Group:	straightwaw}', "");
-    Expect(0, 2226, '\p{Is_Joining_Group:	straightwaw}', "");
-    Expect(1, 2226, '\p{^Is_Joining_Group:	straightwaw}', "");
-    Expect(1, 2226, '\P{Is_Joining_Group:	straightwaw}', "");
-    Expect(0, 2226, '\P{^Is_Joining_Group:	straightwaw}', "");
-    Expect(1, 2225, '\p{Is_Joining_Group= _straight_WAW}', "");
-    Expect(0, 2225, '\p{^Is_Joining_Group= _straight_WAW}', "");
-    Expect(0, 2225, '\P{Is_Joining_Group= _straight_WAW}', "");
-    Expect(1, 2225, '\P{^Is_Joining_Group= _straight_WAW}', "");
-    Expect(0, 2226, '\p{Is_Joining_Group= _straight_WAW}', "");
-    Expect(1, 2226, '\p{^Is_Joining_Group= _straight_WAW}', "");
-    Expect(1, 2226, '\P{Is_Joining_Group= _straight_WAW}', "");
-    Expect(0, 2226, '\P{^Is_Joining_Group= _straight_WAW}', "");
-    Error('\p{Is_Jg=/a/-	Straight_Waw}');
-    Error('\P{Is_Jg=/a/-	Straight_Waw}');
+    Expect(1, 2225, '\p{Jg=	straight_Waw}', "");
+    Expect(0, 2225, '\p{^Jg=	straight_Waw}', "");
+    Expect(0, 2225, '\P{Jg=	straight_Waw}', "");
+    Expect(1, 2225, '\P{^Jg=	straight_Waw}', "");
+    Expect(0, 2226, '\p{Jg=	straight_Waw}', "");
+    Expect(1, 2226, '\p{^Jg=	straight_Waw}', "");
+    Expect(1, 2226, '\P{Jg=	straight_Waw}', "");
+    Expect(0, 2226, '\P{^Jg=	straight_Waw}', "");
+    Error('\p{Is_Joining_Group=:=_Straight_Waw}');
+    Error('\P{Is_Joining_Group=:=_Straight_Waw}');
+    Expect(1, 2225, '\p{Is_Joining_Group=straightwaw}', "");
+    Expect(0, 2225, '\p{^Is_Joining_Group=straightwaw}', "");
+    Expect(0, 2225, '\P{Is_Joining_Group=straightwaw}', "");
+    Expect(1, 2225, '\P{^Is_Joining_Group=straightwaw}', "");
+    Expect(0, 2226, '\p{Is_Joining_Group=straightwaw}', "");
+    Expect(1, 2226, '\p{^Is_Joining_Group=straightwaw}', "");
+    Expect(1, 2226, '\P{Is_Joining_Group=straightwaw}', "");
+    Expect(0, 2226, '\P{^Is_Joining_Group=straightwaw}', "");
+    Expect(1, 2225, '\p{Is_Joining_Group= -straight_Waw}', "");
+    Expect(0, 2225, '\p{^Is_Joining_Group= -straight_Waw}', "");
+    Expect(0, 2225, '\P{Is_Joining_Group= -straight_Waw}', "");
+    Expect(1, 2225, '\P{^Is_Joining_Group= -straight_Waw}', "");
+    Expect(0, 2226, '\p{Is_Joining_Group= -straight_Waw}', "");
+    Expect(1, 2226, '\p{^Is_Joining_Group= -straight_Waw}', "");
+    Expect(1, 2226, '\P{Is_Joining_Group= -straight_Waw}', "");
+    Expect(0, 2226, '\P{^Is_Joining_Group= -straight_Waw}', "");
+    Error('\p{Is_Jg::=-_Straight_WAW}');
+    Error('\P{Is_Jg::=-_Straight_WAW}');
     Expect(1, 2225, '\p{Is_Jg=straightwaw}', "");
     Expect(0, 2225, '\p{^Is_Jg=straightwaw}', "");
     Expect(0, 2225, '\P{Is_Jg=straightwaw}', "");
@@ -59819,16 +60409,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2226, '\p{^Is_Jg=straightwaw}', "");
     Expect(1, 2226, '\P{Is_Jg=straightwaw}', "");
     Expect(0, 2226, '\P{^Is_Jg=straightwaw}', "");
-    Expect(1, 2225, '\p{Is_Jg=	straight_Waw}', "");
-    Expect(0, 2225, '\p{^Is_Jg=	straight_Waw}', "");
-    Expect(0, 2225, '\P{Is_Jg=	straight_Waw}', "");
-    Expect(1, 2225, '\P{^Is_Jg=	straight_Waw}', "");
-    Expect(0, 2226, '\p{Is_Jg=	straight_Waw}', "");
-    Expect(1, 2226, '\p{^Is_Jg=	straight_Waw}', "");
-    Expect(1, 2226, '\P{Is_Jg=	straight_Waw}', "");
-    Expect(0, 2226, '\P{^Is_Jg=	straight_Waw}', "");
-    Error('\p{Joining_Group=	/a/SWASH_KAF}');
-    Error('\P{Joining_Group=	/a/SWASH_KAF}');
+    Expect(1, 2225, '\p{Is_Jg=	 Straight_Waw}', "");
+    Expect(0, 2225, '\p{^Is_Jg=	 Straight_Waw}', "");
+    Expect(0, 2225, '\P{Is_Jg=	 Straight_Waw}', "");
+    Expect(1, 2225, '\P{^Is_Jg=	 Straight_Waw}', "");
+    Expect(0, 2226, '\p{Is_Jg=	 Straight_Waw}', "");
+    Expect(1, 2226, '\p{^Is_Jg=	 Straight_Waw}', "");
+    Expect(1, 2226, '\P{Is_Jg=	 Straight_Waw}', "");
+    Expect(0, 2226, '\P{^Is_Jg=	 Straight_Waw}', "");
+    Error('\p{Joining_Group=:=	SWASH_Kaf}');
+    Error('\P{Joining_Group=:=	SWASH_Kaf}');
     Expect(1, 1706, '\p{Joining_Group=:\ASwash_Kaf\z:}', "");;
     Expect(0, 1707, '\p{Joining_Group=:\ASwash_Kaf\z:}', "");;
     Expect(1, 1706, '\p{Joining_Group=swashkaf}', "");
@@ -59841,16 +60431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1707, '\P{^Joining_Group=swashkaf}', "");
     Expect(1, 1706, '\p{Joining_Group=:\Aswashkaf\z:}', "");;
     Expect(0, 1707, '\p{Joining_Group=:\Aswashkaf\z:}', "");;
-    Expect(1, 1706, '\p{Joining_Group=- Swash_KAF}', "");
-    Expect(0, 1706, '\p{^Joining_Group=- Swash_KAF}', "");
-    Expect(0, 1706, '\P{Joining_Group=- Swash_KAF}', "");
-    Expect(1, 1706, '\P{^Joining_Group=- Swash_KAF}', "");
-    Expect(0, 1707, '\p{Joining_Group=- Swash_KAF}', "");
-    Expect(1, 1707, '\p{^Joining_Group=- Swash_KAF}', "");
-    Expect(1, 1707, '\P{Joining_Group=- Swash_KAF}', "");
-    Expect(0, 1707, '\P{^Joining_Group=- Swash_KAF}', "");
-    Error('\p{Jg= Swash_Kaf:=}');
-    Error('\P{Jg= Swash_Kaf:=}');
+    Expect(1, 1706, '\p{Joining_Group=	 swash_Kaf}', "");
+    Expect(0, 1706, '\p{^Joining_Group=	 swash_Kaf}', "");
+    Expect(0, 1706, '\P{Joining_Group=	 swash_Kaf}', "");
+    Expect(1, 1706, '\P{^Joining_Group=	 swash_Kaf}', "");
+    Expect(0, 1707, '\p{Joining_Group=	 swash_Kaf}', "");
+    Expect(1, 1707, '\p{^Joining_Group=	 swash_Kaf}', "");
+    Expect(1, 1707, '\P{Joining_Group=	 swash_Kaf}', "");
+    Expect(0, 1707, '\P{^Joining_Group=	 swash_Kaf}', "");
+    Error('\p{Jg= :=Swash_Kaf}');
+    Error('\P{Jg= :=Swash_Kaf}');
     Expect(1, 1706, '\p{Jg=:\ASwash_Kaf\z:}', "");;
     Expect(0, 1707, '\p{Jg=:\ASwash_Kaf\z:}', "");;
     Expect(1, 1706, '\p{Jg=swashkaf}', "");
@@ -59863,16 +60453,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1707, '\P{^Jg=swashkaf}', "");
     Expect(1, 1706, '\p{Jg=:\Aswashkaf\z:}', "");;
     Expect(0, 1707, '\p{Jg=:\Aswashkaf\z:}', "");;
-    Expect(1, 1706, '\p{Jg=_Swash_Kaf}', "");
-    Expect(0, 1706, '\p{^Jg=_Swash_Kaf}', "");
-    Expect(0, 1706, '\P{Jg=_Swash_Kaf}', "");
-    Expect(1, 1706, '\P{^Jg=_Swash_Kaf}', "");
-    Expect(0, 1707, '\p{Jg=_Swash_Kaf}', "");
-    Expect(1, 1707, '\p{^Jg=_Swash_Kaf}', "");
-    Expect(1, 1707, '\P{Jg=_Swash_Kaf}', "");
-    Expect(0, 1707, '\P{^Jg=_Swash_Kaf}', "");
-    Error('\p{Is_Joining_Group=/a/_-Swash_kaf}');
-    Error('\P{Is_Joining_Group=/a/_-Swash_kaf}');
+    Expect(1, 1706, '\p{Jg=	Swash_Kaf}', "");
+    Expect(0, 1706, '\p{^Jg=	Swash_Kaf}', "");
+    Expect(0, 1706, '\P{Jg=	Swash_Kaf}', "");
+    Expect(1, 1706, '\P{^Jg=	Swash_Kaf}', "");
+    Expect(0, 1707, '\p{Jg=	Swash_Kaf}', "");
+    Expect(1, 1707, '\p{^Jg=	Swash_Kaf}', "");
+    Expect(1, 1707, '\P{Jg=	Swash_Kaf}', "");
+    Expect(0, 1707, '\P{^Jg=	Swash_Kaf}', "");
+    Error('\p{Is_Joining_Group=	SWASH_Kaf:=}');
+    Error('\P{Is_Joining_Group=	SWASH_Kaf:=}');
     Expect(1, 1706, '\p{Is_Joining_Group=swashkaf}', "");
     Expect(0, 1706, '\p{^Is_Joining_Group=swashkaf}', "");
     Expect(0, 1706, '\P{Is_Joining_Group=swashkaf}', "");
@@ -59881,78 +60471,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1707, '\p{^Is_Joining_Group=swashkaf}', "");
     Expect(1, 1707, '\P{Is_Joining_Group=swashkaf}', "");
     Expect(0, 1707, '\P{^Is_Joining_Group=swashkaf}', "");
-    Expect(1, 1706, '\p{Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(0, 1706, '\p{^Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(0, 1706, '\P{Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(1, 1706, '\P{^Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(0, 1707, '\p{Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(1, 1707, '\p{^Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(1, 1707, '\P{Is_Joining_Group=-Swash_Kaf}', "");
-    Expect(0, 1707, '\P{^Is_Joining_Group=-Swash_Kaf}', "");
-    Error('\p{Is_Jg= :=swash_Kaf}');
-    Error('\P{Is_Jg= :=swash_Kaf}');
-    Expect(1, 1706, '\p{Is_Jg=swashkaf}', "");
-    Expect(0, 1706, '\p{^Is_Jg=swashkaf}', "");
-    Expect(0, 1706, '\P{Is_Jg=swashkaf}', "");
-    Expect(1, 1706, '\P{^Is_Jg=swashkaf}', "");
-    Expect(0, 1707, '\p{Is_Jg=swashkaf}', "");
-    Expect(1, 1707, '\p{^Is_Jg=swashkaf}', "");
-    Expect(1, 1707, '\P{Is_Jg=swashkaf}', "");
-    Expect(0, 1707, '\P{^Is_Jg=swashkaf}', "");
-    Expect(1, 1706, '\p{Is_Jg=	_Swash_Kaf}', "");
-    Expect(0, 1706, '\p{^Is_Jg=	_Swash_Kaf}', "");
-    Expect(0, 1706, '\P{Is_Jg=	_Swash_Kaf}', "");
-    Expect(1, 1706, '\P{^Is_Jg=	_Swash_Kaf}', "");
-    Expect(0, 1707, '\p{Is_Jg=	_Swash_Kaf}', "");
-    Expect(1, 1707, '\p{^Is_Jg=	_Swash_Kaf}', "");
-    Expect(1, 1707, '\P{Is_Jg=	_Swash_Kaf}', "");
-    Expect(0, 1707, '\P{^Is_Jg=	_Swash_Kaf}', "");
-    Error('\p{Joining_Group:__Syriac_Waw:=}');
-    Error('\P{Joining_Group:__Syriac_Waw:=}');
+    Expect(1, 1706, '\p{Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(0, 1706, '\p{^Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(0, 1706, '\P{Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(1, 1706, '\P{^Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(0, 1707, '\p{Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(1, 1707, '\p{^Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(1, 1707, '\P{Is_Joining_Group:   	_Swash_kaf}', "");
+    Expect(0, 1707, '\P{^Is_Joining_Group:   	_Swash_kaf}', "");
+    Error('\p{Is_Jg=	 SWASH_Kaf:=}');
+    Error('\P{Is_Jg=	 SWASH_Kaf:=}');
+    Expect(1, 1706, '\p{Is_Jg:swashkaf}', "");
+    Expect(0, 1706, '\p{^Is_Jg:swashkaf}', "");
+    Expect(0, 1706, '\P{Is_Jg:swashkaf}', "");
+    Expect(1, 1706, '\P{^Is_Jg:swashkaf}', "");
+    Expect(0, 1707, '\p{Is_Jg:swashkaf}', "");
+    Expect(1, 1707, '\p{^Is_Jg:swashkaf}', "");
+    Expect(1, 1707, '\P{Is_Jg:swashkaf}', "");
+    Expect(0, 1707, '\P{^Is_Jg:swashkaf}', "");
+    Expect(1, 1706, '\p{Is_Jg: _Swash_KAF}', "");
+    Expect(0, 1706, '\p{^Is_Jg: _Swash_KAF}', "");
+    Expect(0, 1706, '\P{Is_Jg: _Swash_KAF}', "");
+    Expect(1, 1706, '\P{^Is_Jg: _Swash_KAF}', "");
+    Expect(0, 1707, '\p{Is_Jg: _Swash_KAF}', "");
+    Expect(1, 1707, '\p{^Is_Jg: _Swash_KAF}', "");
+    Expect(1, 1707, '\P{Is_Jg: _Swash_KAF}', "");
+    Expect(0, 1707, '\P{^Is_Jg: _Swash_KAF}', "");
+    Error('\p{Joining_Group= 	SYRIAC_WAW:=}');
+    Error('\P{Joining_Group= 	SYRIAC_WAW:=}');
     Expect(1, 1816, '\p{Joining_Group=:\ASyriac_Waw\z:}', "");;
     Expect(0, 1817, '\p{Joining_Group=:\ASyriac_Waw\z:}', "");;
-    Expect(1, 1816, '\p{Joining_Group=syriacwaw}', "");
-    Expect(0, 1816, '\p{^Joining_Group=syriacwaw}', "");
-    Expect(0, 1816, '\P{Joining_Group=syriacwaw}', "");
-    Expect(1, 1816, '\P{^Joining_Group=syriacwaw}', "");
-    Expect(0, 1817, '\p{Joining_Group=syriacwaw}', "");
-    Expect(1, 1817, '\p{^Joining_Group=syriacwaw}', "");
-    Expect(1, 1817, '\P{Joining_Group=syriacwaw}', "");
-    Expect(0, 1817, '\P{^Joining_Group=syriacwaw}', "");
+    Expect(1, 1816, '\p{Joining_Group:   syriacwaw}', "");
+    Expect(0, 1816, '\p{^Joining_Group:   syriacwaw}', "");
+    Expect(0, 1816, '\P{Joining_Group:   syriacwaw}', "");
+    Expect(1, 1816, '\P{^Joining_Group:   syriacwaw}', "");
+    Expect(0, 1817, '\p{Joining_Group:   syriacwaw}', "");
+    Expect(1, 1817, '\p{^Joining_Group:   syriacwaw}', "");
+    Expect(1, 1817, '\P{Joining_Group:   syriacwaw}', "");
+    Expect(0, 1817, '\P{^Joining_Group:   syriacwaw}', "");
     Expect(1, 1816, '\p{Joining_Group=:\Asyriacwaw\z:}', "");;
     Expect(0, 1817, '\p{Joining_Group=:\Asyriacwaw\z:}', "");;
-    Expect(1, 1816, '\p{Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(0, 1816, '\p{^Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(0, 1816, '\P{Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(1, 1816, '\P{^Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(0, 1817, '\p{Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(1, 1817, '\p{^Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(1, 1817, '\P{Joining_Group=	 SYRIAC_Waw}', "");
-    Expect(0, 1817, '\P{^Joining_Group=	 SYRIAC_Waw}', "");
-    Error('\p{Jg=_	Syriac_waw:=}');
-    Error('\P{Jg=_	Syriac_waw:=}');
+    Expect(1, 1816, '\p{Joining_Group=	-Syriac_Waw}', "");
+    Expect(0, 1816, '\p{^Joining_Group=	-Syriac_Waw}', "");
+    Expect(0, 1816, '\P{Joining_Group=	-Syriac_Waw}', "");
+    Expect(1, 1816, '\P{^Joining_Group=	-Syriac_Waw}', "");
+    Expect(0, 1817, '\p{Joining_Group=	-Syriac_Waw}', "");
+    Expect(1, 1817, '\p{^Joining_Group=	-Syriac_Waw}', "");
+    Expect(1, 1817, '\P{Joining_Group=	-Syriac_Waw}', "");
+    Expect(0, 1817, '\P{^Joining_Group=	-Syriac_Waw}', "");
+    Error('\p{Jg:	/a/-_SYRIAC_waw}');
+    Error('\P{Jg:	/a/-_SYRIAC_waw}');
     Expect(1, 1816, '\p{Jg=:\ASyriac_Waw\z:}', "");;
     Expect(0, 1817, '\p{Jg=:\ASyriac_Waw\z:}', "");;
-    Expect(1, 1816, '\p{Jg=syriacwaw}', "");
-    Expect(0, 1816, '\p{^Jg=syriacwaw}', "");
-    Expect(0, 1816, '\P{Jg=syriacwaw}', "");
-    Expect(1, 1816, '\P{^Jg=syriacwaw}', "");
-    Expect(0, 1817, '\p{Jg=syriacwaw}', "");
-    Expect(1, 1817, '\p{^Jg=syriacwaw}', "");
-    Expect(1, 1817, '\P{Jg=syriacwaw}', "");
-    Expect(0, 1817, '\P{^Jg=syriacwaw}', "");
+    Expect(1, 1816, '\p{Jg:syriacwaw}', "");
+    Expect(0, 1816, '\p{^Jg:syriacwaw}', "");
+    Expect(0, 1816, '\P{Jg:syriacwaw}', "");
+    Expect(1, 1816, '\P{^Jg:syriacwaw}', "");
+    Expect(0, 1817, '\p{Jg:syriacwaw}', "");
+    Expect(1, 1817, '\p{^Jg:syriacwaw}', "");
+    Expect(1, 1817, '\P{Jg:syriacwaw}', "");
+    Expect(0, 1817, '\P{^Jg:syriacwaw}', "");
     Expect(1, 1816, '\p{Jg=:\Asyriacwaw\z:}', "");;
     Expect(0, 1817, '\p{Jg=:\Asyriacwaw\z:}', "");;
-    Expect(1, 1816, '\p{Jg= Syriac_Waw}', "");
-    Expect(0, 1816, '\p{^Jg= Syriac_Waw}', "");
-    Expect(0, 1816, '\P{Jg= Syriac_Waw}', "");
-    Expect(1, 1816, '\P{^Jg= Syriac_Waw}', "");
-    Expect(0, 1817, '\p{Jg= Syriac_Waw}', "");
-    Expect(1, 1817, '\p{^Jg= Syriac_Waw}', "");
-    Expect(1, 1817, '\P{Jg= Syriac_Waw}', "");
-    Expect(0, 1817, '\P{^Jg= Syriac_Waw}', "");
-    Error('\p{Is_Joining_Group=/a/	_SYRIAC_Waw}');
-    Error('\P{Is_Joining_Group=/a/	_SYRIAC_Waw}');
+    Expect(1, 1816, '\p{Jg=-_Syriac_Waw}', "");
+    Expect(0, 1816, '\p{^Jg=-_Syriac_Waw}', "");
+    Expect(0, 1816, '\P{Jg=-_Syriac_Waw}', "");
+    Expect(1, 1816, '\P{^Jg=-_Syriac_Waw}', "");
+    Expect(0, 1817, '\p{Jg=-_Syriac_Waw}', "");
+    Expect(1, 1817, '\p{^Jg=-_Syriac_Waw}', "");
+    Expect(1, 1817, '\P{Jg=-_Syriac_Waw}', "");
+    Expect(0, 1817, '\P{^Jg=-_Syriac_Waw}', "");
+    Error('\p{Is_Joining_Group:	 	syriac_waw:=}');
+    Error('\P{Is_Joining_Group:	 	syriac_waw:=}');
     Expect(1, 1816, '\p{Is_Joining_Group=syriacwaw}', "");
     Expect(0, 1816, '\p{^Is_Joining_Group=syriacwaw}', "");
     Expect(0, 1816, '\P{Is_Joining_Group=syriacwaw}', "");
@@ -59961,16 +60551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1817, '\p{^Is_Joining_Group=syriacwaw}', "");
     Expect(1, 1817, '\P{Is_Joining_Group=syriacwaw}', "");
     Expect(0, 1817, '\P{^Is_Joining_Group=syriacwaw}', "");
-    Expect(1, 1816, '\p{Is_Joining_Group=	syriac_WAW}', "");
-    Expect(0, 1816, '\p{^Is_Joining_Group=	syriac_WAW}', "");
-    Expect(0, 1816, '\P{Is_Joining_Group=	syriac_WAW}', "");
-    Expect(1, 1816, '\P{^Is_Joining_Group=	syriac_WAW}', "");
-    Expect(0, 1817, '\p{Is_Joining_Group=	syriac_WAW}', "");
-    Expect(1, 1817, '\p{^Is_Joining_Group=	syriac_WAW}', "");
-    Expect(1, 1817, '\P{Is_Joining_Group=	syriac_WAW}', "");
-    Expect(0, 1817, '\P{^Is_Joining_Group=	syriac_WAW}', "");
-    Error('\p{Is_Jg=/a/ syriac_Waw}');
-    Error('\P{Is_Jg=/a/ syriac_Waw}');
+    Expect(1, 1816, '\p{Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(0, 1816, '\p{^Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(0, 1816, '\P{Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(1, 1816, '\P{^Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(0, 1817, '\p{Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(1, 1817, '\p{^Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(1, 1817, '\P{Is_Joining_Group=_ syriac_Waw}', "");
+    Expect(0, 1817, '\P{^Is_Joining_Group=_ syriac_Waw}', "");
+    Error('\p{Is_Jg=:=Syriac_waw}');
+    Error('\P{Is_Jg=:=Syriac_waw}');
     Expect(1, 1816, '\p{Is_Jg=syriacwaw}', "");
     Expect(0, 1816, '\p{^Is_Jg=syriacwaw}', "");
     Expect(0, 1816, '\P{Is_Jg=syriacwaw}', "");
@@ -59979,16 +60569,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1817, '\p{^Is_Jg=syriacwaw}', "");
     Expect(1, 1817, '\P{Is_Jg=syriacwaw}', "");
     Expect(0, 1817, '\P{^Is_Jg=syriacwaw}', "");
-    Expect(1, 1816, '\p{Is_Jg:  syriac_waw}', "");
-    Expect(0, 1816, '\p{^Is_Jg:  syriac_waw}', "");
-    Expect(0, 1816, '\P{Is_Jg:  syriac_waw}', "");
-    Expect(1, 1816, '\P{^Is_Jg:  syriac_waw}', "");
-    Expect(0, 1817, '\p{Is_Jg:  syriac_waw}', "");
-    Expect(1, 1817, '\p{^Is_Jg:  syriac_waw}', "");
-    Expect(1, 1817, '\P{Is_Jg:  syriac_waw}', "");
-    Expect(0, 1817, '\P{^Is_Jg:  syriac_waw}', "");
-    Error('\p{Joining_Group:    Tah/a/}');
-    Error('\P{Joining_Group:    Tah/a/}');
+    Expect(1, 1816, '\p{Is_Jg=- syriac_waw}', "");
+    Expect(0, 1816, '\p{^Is_Jg=- syriac_waw}', "");
+    Expect(0, 1816, '\P{Is_Jg=- syriac_waw}', "");
+    Expect(1, 1816, '\P{^Is_Jg=- syriac_waw}', "");
+    Expect(0, 1817, '\p{Is_Jg=- syriac_waw}', "");
+    Expect(1, 1817, '\p{^Is_Jg=- syriac_waw}', "");
+    Expect(1, 1817, '\P{Is_Jg=- syriac_waw}', "");
+    Expect(0, 1817, '\P{^Is_Jg=- syriac_waw}', "");
+    Error('\p{Joining_Group= :=tah}');
+    Error('\P{Joining_Group= :=tah}');
     Expect(1, 2211, '\p{Joining_Group=:\ATah\z:}', "");;
     Expect(0, 2212, '\p{Joining_Group=:\ATah\z:}', "");;
     Expect(1, 2211, '\p{Joining_Group=tah}', "");
@@ -60001,16 +60591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2212, '\P{^Joining_Group=tah}', "");
     Expect(1, 2211, '\p{Joining_Group=:\Atah\z:}', "");;
     Expect(0, 2212, '\p{Joining_Group=:\Atah\z:}', "");;
-    Expect(1, 2211, '\p{Joining_Group=		Tah}', "");
-    Expect(0, 2211, '\p{^Joining_Group=		Tah}', "");
-    Expect(0, 2211, '\P{Joining_Group=		Tah}', "");
-    Expect(1, 2211, '\P{^Joining_Group=		Tah}', "");
-    Expect(0, 2212, '\p{Joining_Group=		Tah}', "");
-    Expect(1, 2212, '\p{^Joining_Group=		Tah}', "");
-    Expect(1, 2212, '\P{Joining_Group=		Tah}', "");
-    Expect(0, 2212, '\P{^Joining_Group=		Tah}', "");
-    Error('\p{Jg= tah/a/}');
-    Error('\P{Jg= tah/a/}');
+    Expect(1, 2211, '\p{Joining_Group= Tah}', "");
+    Expect(0, 2211, '\p{^Joining_Group= Tah}', "");
+    Expect(0, 2211, '\P{Joining_Group= Tah}', "");
+    Expect(1, 2211, '\P{^Joining_Group= Tah}', "");
+    Expect(0, 2212, '\p{Joining_Group= Tah}', "");
+    Expect(1, 2212, '\p{^Joining_Group= Tah}', "");
+    Expect(1, 2212, '\P{Joining_Group= Tah}', "");
+    Expect(0, 2212, '\P{^Joining_Group= Tah}', "");
+    Error('\p{Jg=	_Tah:=}');
+    Error('\P{Jg=	_Tah:=}');
     Expect(1, 2211, '\p{Jg=:\ATah\z:}', "");;
     Expect(0, 2212, '\p{Jg=:\ATah\z:}', "");;
     Expect(1, 2211, '\p{Jg=tah}', "");
@@ -60023,74 +60613,66 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2212, '\P{^Jg=tah}', "");
     Expect(1, 2211, '\p{Jg=:\Atah\z:}', "");;
     Expect(0, 2212, '\p{Jg=:\Atah\z:}', "");;
-    Expect(1, 2211, '\p{Jg=_	TAH}', "");
-    Expect(0, 2211, '\p{^Jg=_	TAH}', "");
-    Expect(0, 2211, '\P{Jg=_	TAH}', "");
-    Expect(1, 2211, '\P{^Jg=_	TAH}', "");
-    Expect(0, 2212, '\p{Jg=_	TAH}', "");
-    Expect(1, 2212, '\p{^Jg=_	TAH}', "");
-    Expect(1, 2212, '\P{Jg=_	TAH}', "");
-    Expect(0, 2212, '\P{^Jg=_	TAH}', "");
-    Error('\p{Is_Joining_Group: :=	-Tah}');
-    Error('\P{Is_Joining_Group: :=	-Tah}');
-    Expect(1, 2211, '\p{Is_Joining_Group: tah}', "");
-    Expect(0, 2211, '\p{^Is_Joining_Group: tah}', "");
-    Expect(0, 2211, '\P{Is_Joining_Group: tah}', "");
-    Expect(1, 2211, '\P{^Is_Joining_Group: tah}', "");
-    Expect(0, 2212, '\p{Is_Joining_Group: tah}', "");
-    Expect(1, 2212, '\p{^Is_Joining_Group: tah}', "");
-    Expect(1, 2212, '\P{Is_Joining_Group: tah}', "");
-    Expect(0, 2212, '\P{^Is_Joining_Group: tah}', "");
-    Expect(1, 2211, '\p{Is_Joining_Group=	tah}', "");
-    Expect(0, 2211, '\p{^Is_Joining_Group=	tah}', "");
-    Expect(0, 2211, '\P{Is_Joining_Group=	tah}', "");
-    Expect(1, 2211, '\P{^Is_Joining_Group=	tah}', "");
-    Expect(0, 2212, '\p{Is_Joining_Group=	tah}', "");
-    Expect(1, 2212, '\p{^Is_Joining_Group=	tah}', "");
-    Expect(1, 2212, '\P{Is_Joining_Group=	tah}', "");
-    Expect(0, 2212, '\P{^Is_Joining_Group=	tah}', "");
-    Error('\p{Is_Jg=		TAH:=}');
-    Error('\P{Is_Jg=		TAH:=}');
-    Expect(1, 2211, '\p{Is_Jg=tah}', "");
-    Expect(0, 2211, '\p{^Is_Jg=tah}', "");
-    Expect(0, 2211, '\P{Is_Jg=tah}', "");
-    Expect(1, 2211, '\P{^Is_Jg=tah}', "");
-    Expect(0, 2212, '\p{Is_Jg=tah}', "");
-    Expect(1, 2212, '\p{^Is_Jg=tah}', "");
-    Expect(1, 2212, '\P{Is_Jg=tah}', "");
-    Expect(0, 2212, '\P{^Is_Jg=tah}', "");
-    Expect(1, 2211, '\p{Is_Jg=-	Tah}', "");
-    Expect(0, 2211, '\p{^Is_Jg=-	Tah}', "");
-    Expect(0, 2211, '\P{Is_Jg=-	Tah}', "");
-    Expect(1, 2211, '\P{^Is_Jg=-	Tah}', "");
-    Expect(0, 2212, '\p{Is_Jg=-	Tah}', "");
-    Expect(1, 2212, '\p{^Is_Jg=-	Tah}', "");
-    Expect(1, 2212, '\P{Is_Jg=-	Tah}', "");
-    Expect(0, 2212, '\P{^Is_Jg=-	Tah}', "");
-    Error('\p{Joining_Group=-taw/a/}');
-    Error('\P{Joining_Group=-taw/a/}');
+    Expect(1, 2211, '\p{Jg=-tah}', "");
+    Expect(0, 2211, '\p{^Jg=-tah}', "");
+    Expect(0, 2211, '\P{Jg=-tah}', "");
+    Expect(1, 2211, '\P{^Jg=-tah}', "");
+    Expect(0, 2212, '\p{Jg=-tah}', "");
+    Expect(1, 2212, '\p{^Jg=-tah}', "");
+    Expect(1, 2212, '\P{Jg=-tah}', "");
+    Expect(0, 2212, '\P{^Jg=-tah}', "");
+    Error('\p{Is_Joining_Group=	:=TAH}');
+    Error('\P{Is_Joining_Group=	:=TAH}');
+    Expect(1, 2211, '\p{Is_Joining_Group=tah}', "");
+    Expect(0, 2211, '\p{^Is_Joining_Group=tah}', "");
+    Expect(0, 2211, '\P{Is_Joining_Group=tah}', "");
+    Expect(1, 2211, '\P{^Is_Joining_Group=tah}', "");
+    Expect(0, 2212, '\p{Is_Joining_Group=tah}', "");
+    Expect(1, 2212, '\p{^Is_Joining_Group=tah}', "");
+    Expect(1, 2212, '\P{Is_Joining_Group=tah}', "");
+    Expect(0, 2212, '\P{^Is_Joining_Group=tah}', "");
+    Expect(1, 2211, '\p{Is_Joining_Group= Tah}', "");
+    Expect(0, 2211, '\p{^Is_Joining_Group= Tah}', "");
+    Expect(0, 2211, '\P{Is_Joining_Group= Tah}', "");
+    Expect(1, 2211, '\P{^Is_Joining_Group= Tah}', "");
+    Expect(0, 2212, '\p{Is_Joining_Group= Tah}', "");
+    Expect(1, 2212, '\p{^Is_Joining_Group= Tah}', "");
+    Expect(1, 2212, '\P{Is_Joining_Group= Tah}', "");
+    Expect(0, 2212, '\P{^Is_Joining_Group= Tah}', "");
+    Error('\p{Is_Jg=	Tah/a/}');
+    Error('\P{Is_Jg=	Tah/a/}');
+    Expect(1, 2211, '\p{Is_Jg: tah}', "");
+    Expect(0, 2211, '\p{^Is_Jg: tah}', "");
+    Expect(0, 2211, '\P{Is_Jg: tah}', "");
+    Expect(1, 2211, '\P{^Is_Jg: tah}', "");
+    Expect(0, 2212, '\p{Is_Jg: tah}', "");
+    Expect(1, 2212, '\p{^Is_Jg: tah}', "");
+    Expect(1, 2212, '\P{Is_Jg: tah}', "");
+    Expect(0, 2212, '\P{^Is_Jg: tah}', "");
+    Error('\p{Joining_Group=:=_ Taw}');
+    Error('\P{Joining_Group=:=_ Taw}');
     Expect(1, 1836, '\p{Joining_Group=:\ATaw\z:}', "");;
     Expect(0, 1837, '\p{Joining_Group=:\ATaw\z:}', "");;
-    Expect(1, 1836, '\p{Joining_Group: taw}', "");
-    Expect(0, 1836, '\p{^Joining_Group: taw}', "");
-    Expect(0, 1836, '\P{Joining_Group: taw}', "");
-    Expect(1, 1836, '\P{^Joining_Group: taw}', "");
-    Expect(0, 1837, '\p{Joining_Group: taw}', "");
-    Expect(1, 1837, '\p{^Joining_Group: taw}', "");
-    Expect(1, 1837, '\P{Joining_Group: taw}', "");
-    Expect(0, 1837, '\P{^Joining_Group: taw}', "");
+    Expect(1, 1836, '\p{Joining_Group=taw}', "");
+    Expect(0, 1836, '\p{^Joining_Group=taw}', "");
+    Expect(0, 1836, '\P{Joining_Group=taw}', "");
+    Expect(1, 1836, '\P{^Joining_Group=taw}', "");
+    Expect(0, 1837, '\p{Joining_Group=taw}', "");
+    Expect(1, 1837, '\p{^Joining_Group=taw}', "");
+    Expect(1, 1837, '\P{Joining_Group=taw}', "");
+    Expect(0, 1837, '\P{^Joining_Group=taw}', "");
     Expect(1, 1836, '\p{Joining_Group=:\Ataw\z:}', "");;
     Expect(0, 1837, '\p{Joining_Group=:\Ataw\z:}', "");;
-    Expect(1, 1836, '\p{Joining_Group:	-TAW}', "");
-    Expect(0, 1836, '\p{^Joining_Group:	-TAW}', "");
-    Expect(0, 1836, '\P{Joining_Group:	-TAW}', "");
-    Expect(1, 1836, '\P{^Joining_Group:	-TAW}', "");
-    Expect(0, 1837, '\p{Joining_Group:	-TAW}', "");
-    Expect(1, 1837, '\p{^Joining_Group:	-TAW}', "");
-    Expect(1, 1837, '\P{Joining_Group:	-TAW}', "");
-    Expect(0, 1837, '\P{^Joining_Group:	-TAW}', "");
-    Error('\p{Jg=	_taw/a/}');
-    Error('\P{Jg=	_taw/a/}');
+    Expect(1, 1836, '\p{Joining_Group=-Taw}', "");
+    Expect(0, 1836, '\p{^Joining_Group=-Taw}', "");
+    Expect(0, 1836, '\P{Joining_Group=-Taw}', "");
+    Expect(1, 1836, '\P{^Joining_Group=-Taw}', "");
+    Expect(0, 1837, '\p{Joining_Group=-Taw}', "");
+    Expect(1, 1837, '\p{^Joining_Group=-Taw}', "");
+    Expect(1, 1837, '\P{Joining_Group=-Taw}', "");
+    Expect(0, 1837, '\P{^Joining_Group=-Taw}', "");
+    Error('\p{Jg= TAW:=}');
+    Error('\P{Jg= TAW:=}');
     Expect(1, 1836, '\p{Jg=:\ATaw\z:}', "");;
     Expect(0, 1837, '\p{Jg=:\ATaw\z:}', "");;
     Expect(1, 1836, '\p{Jg=taw}', "");
@@ -60103,34 +60685,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1837, '\P{^Jg=taw}', "");
     Expect(1, 1836, '\p{Jg=:\Ataw\z:}', "");;
     Expect(0, 1837, '\p{Jg=:\Ataw\z:}', "");;
-    Expect(1, 1836, '\p{Jg: -TAW}', "");
-    Expect(0, 1836, '\p{^Jg: -TAW}', "");
-    Expect(0, 1836, '\P{Jg: -TAW}', "");
-    Expect(1, 1836, '\P{^Jg: -TAW}', "");
-    Expect(0, 1837, '\p{Jg: -TAW}', "");
-    Expect(1, 1837, '\p{^Jg: -TAW}', "");
-    Expect(1, 1837, '\P{Jg: -TAW}', "");
-    Expect(0, 1837, '\P{^Jg: -TAW}', "");
-    Error('\p{Is_Joining_Group:   -/a/TAW}');
-    Error('\P{Is_Joining_Group:   -/a/TAW}');
-    Expect(1, 1836, '\p{Is_Joining_Group=taw}', "");
-    Expect(0, 1836, '\p{^Is_Joining_Group=taw}', "");
-    Expect(0, 1836, '\P{Is_Joining_Group=taw}', "");
-    Expect(1, 1836, '\P{^Is_Joining_Group=taw}', "");
-    Expect(0, 1837, '\p{Is_Joining_Group=taw}', "");
-    Expect(1, 1837, '\p{^Is_Joining_Group=taw}', "");
-    Expect(1, 1837, '\P{Is_Joining_Group=taw}', "");
-    Expect(0, 1837, '\P{^Is_Joining_Group=taw}', "");
-    Expect(1, 1836, '\p{Is_Joining_Group=_-Taw}', "");
-    Expect(0, 1836, '\p{^Is_Joining_Group=_-Taw}', "");
-    Expect(0, 1836, '\P{Is_Joining_Group=_-Taw}', "");
-    Expect(1, 1836, '\P{^Is_Joining_Group=_-Taw}', "");
-    Expect(0, 1837, '\p{Is_Joining_Group=_-Taw}', "");
-    Expect(1, 1837, '\p{^Is_Joining_Group=_-Taw}', "");
-    Expect(1, 1837, '\P{Is_Joining_Group=_-Taw}', "");
-    Expect(0, 1837, '\P{^Is_Joining_Group=_-Taw}', "");
-    Error('\p{Is_Jg=:=TAW}');
-    Error('\P{Is_Jg=:=TAW}');
+    Expect(1, 1836, '\p{Jg=-_Taw}', "");
+    Expect(0, 1836, '\p{^Jg=-_Taw}', "");
+    Expect(0, 1836, '\P{Jg=-_Taw}', "");
+    Expect(1, 1836, '\P{^Jg=-_Taw}', "");
+    Expect(0, 1837, '\p{Jg=-_Taw}', "");
+    Expect(1, 1837, '\p{^Jg=-_Taw}', "");
+    Expect(1, 1837, '\P{Jg=-_Taw}', "");
+    Expect(0, 1837, '\P{^Jg=-_Taw}', "");
+    Error('\p{Is_Joining_Group=/a/__TAW}');
+    Error('\P{Is_Joining_Group=/a/__TAW}');
+    Expect(1, 1836, '\p{Is_Joining_Group: taw}', "");
+    Expect(0, 1836, '\p{^Is_Joining_Group: taw}', "");
+    Expect(0, 1836, '\P{Is_Joining_Group: taw}', "");
+    Expect(1, 1836, '\P{^Is_Joining_Group: taw}', "");
+    Expect(0, 1837, '\p{Is_Joining_Group: taw}', "");
+    Expect(1, 1837, '\p{^Is_Joining_Group: taw}', "");
+    Expect(1, 1837, '\P{Is_Joining_Group: taw}', "");
+    Expect(0, 1837, '\P{^Is_Joining_Group: taw}', "");
+    Expect(1, 1836, '\p{Is_Joining_Group= TAW}', "");
+    Expect(0, 1836, '\p{^Is_Joining_Group= TAW}', "");
+    Expect(0, 1836, '\P{Is_Joining_Group= TAW}', "");
+    Expect(1, 1836, '\P{^Is_Joining_Group= TAW}', "");
+    Expect(0, 1837, '\p{Is_Joining_Group= TAW}', "");
+    Expect(1, 1837, '\p{^Is_Joining_Group= TAW}', "");
+    Expect(1, 1837, '\P{Is_Joining_Group= TAW}', "");
+    Expect(0, 1837, '\P{^Is_Joining_Group= TAW}', "");
+    Error('\p{Is_Jg=:=-Taw}');
+    Error('\P{Is_Jg=:=-Taw}');
     Expect(1, 1836, '\p{Is_Jg=taw}', "");
     Expect(0, 1836, '\p{^Is_Jg=taw}', "");
     Expect(0, 1836, '\P{Is_Jg=taw}', "");
@@ -60139,16 +60721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1837, '\p{^Is_Jg=taw}', "");
     Expect(1, 1837, '\P{Is_Jg=taw}', "");
     Expect(0, 1837, '\P{^Is_Jg=taw}', "");
-    Expect(1, 1836, '\p{Is_Jg=_ Taw}', "");
-    Expect(0, 1836, '\p{^Is_Jg=_ Taw}', "");
-    Expect(0, 1836, '\P{Is_Jg=_ Taw}', "");
-    Expect(1, 1836, '\P{^Is_Jg=_ Taw}', "");
-    Expect(0, 1837, '\p{Is_Jg=_ Taw}', "");
-    Expect(1, 1837, '\p{^Is_Jg=_ Taw}', "");
-    Expect(1, 1837, '\P{Is_Jg=_ Taw}', "");
-    Expect(0, 1837, '\P{^Is_Jg=_ Taw}', "");
-    Error('\p{Joining_Group=/a/	-TEH_MARBUTA}');
-    Error('\P{Joining_Group=/a/	-TEH_MARBUTA}');
+    Expect(1, 1836, '\p{Is_Jg=__taw}', "");
+    Expect(0, 1836, '\p{^Is_Jg=__taw}', "");
+    Expect(0, 1836, '\P{Is_Jg=__taw}', "");
+    Expect(1, 1836, '\P{^Is_Jg=__taw}', "");
+    Expect(0, 1837, '\p{Is_Jg=__taw}', "");
+    Expect(1, 1837, '\p{^Is_Jg=__taw}', "");
+    Expect(1, 1837, '\P{Is_Jg=__taw}', "");
+    Expect(0, 1837, '\P{^Is_Jg=__taw}', "");
+    Error('\p{Joining_Group:-Teh_Marbuta:=}');
+    Error('\P{Joining_Group:-Teh_Marbuta:=}');
     Expect(1, 1749, '\p{Joining_Group=:\ATeh_Marbuta\z:}', "");;
     Expect(0, 1750, '\p{Joining_Group=:\ATeh_Marbuta\z:}', "");;
     Expect(1, 1749, '\p{Joining_Group=tehmarbuta}', "");
@@ -60161,16 +60743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1750, '\P{^Joining_Group=tehmarbuta}', "");
     Expect(1, 1749, '\p{Joining_Group=:\Atehmarbuta\z:}', "");;
     Expect(0, 1750, '\p{Joining_Group=:\Atehmarbuta\z:}', "");;
-    Expect(1, 1749, '\p{Joining_Group= _Teh_MARBUTA}', "");
-    Expect(0, 1749, '\p{^Joining_Group= _Teh_MARBUTA}', "");
-    Expect(0, 1749, '\P{Joining_Group= _Teh_MARBUTA}', "");
-    Expect(1, 1749, '\P{^Joining_Group= _Teh_MARBUTA}', "");
-    Expect(0, 1750, '\p{Joining_Group= _Teh_MARBUTA}', "");
-    Expect(1, 1750, '\p{^Joining_Group= _Teh_MARBUTA}', "");
-    Expect(1, 1750, '\P{Joining_Group= _Teh_MARBUTA}', "");
-    Expect(0, 1750, '\P{^Joining_Group= _Teh_MARBUTA}', "");
-    Error('\p{Jg=_:=TEH_Marbuta}');
-    Error('\P{Jg=_:=TEH_Marbuta}');
+    Expect(1, 1749, '\p{Joining_Group=		TEH_MARBUTA}', "");
+    Expect(0, 1749, '\p{^Joining_Group=		TEH_MARBUTA}', "");
+    Expect(0, 1749, '\P{Joining_Group=		TEH_MARBUTA}', "");
+    Expect(1, 1749, '\P{^Joining_Group=		TEH_MARBUTA}', "");
+    Expect(0, 1750, '\p{Joining_Group=		TEH_MARBUTA}', "");
+    Expect(1, 1750, '\p{^Joining_Group=		TEH_MARBUTA}', "");
+    Expect(1, 1750, '\P{Joining_Group=		TEH_MARBUTA}', "");
+    Expect(0, 1750, '\P{^Joining_Group=		TEH_MARBUTA}', "");
+    Error('\p{Jg= _Teh_Marbuta:=}');
+    Error('\P{Jg= _Teh_Marbuta:=}');
     Expect(1, 1749, '\p{Jg=:\ATeh_Marbuta\z:}', "");;
     Expect(0, 1750, '\p{Jg=:\ATeh_Marbuta\z:}', "");;
     Expect(1, 1749, '\p{Jg=tehmarbuta}', "");
@@ -60183,16 +60765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1750, '\P{^Jg=tehmarbuta}', "");
     Expect(1, 1749, '\p{Jg=:\Atehmarbuta\z:}', "");;
     Expect(0, 1750, '\p{Jg=:\Atehmarbuta\z:}', "");;
-    Expect(1, 1749, '\p{Jg=_ Teh_marbuta}', "");
-    Expect(0, 1749, '\p{^Jg=_ Teh_marbuta}', "");
-    Expect(0, 1749, '\P{Jg=_ Teh_marbuta}', "");
-    Expect(1, 1749, '\P{^Jg=_ Teh_marbuta}', "");
-    Expect(0, 1750, '\p{Jg=_ Teh_marbuta}', "");
-    Expect(1, 1750, '\p{^Jg=_ Teh_marbuta}', "");
-    Expect(1, 1750, '\P{Jg=_ Teh_marbuta}', "");
-    Expect(0, 1750, '\P{^Jg=_ Teh_marbuta}', "");
-    Error('\p{Is_Joining_Group=-_Teh_marbuta:=}');
-    Error('\P{Is_Joining_Group=-_Teh_marbuta:=}');
+    Expect(1, 1749, '\p{Jg=_-teh_MARBUTA}', "");
+    Expect(0, 1749, '\p{^Jg=_-teh_MARBUTA}', "");
+    Expect(0, 1749, '\P{Jg=_-teh_MARBUTA}', "");
+    Expect(1, 1749, '\P{^Jg=_-teh_MARBUTA}', "");
+    Expect(0, 1750, '\p{Jg=_-teh_MARBUTA}', "");
+    Expect(1, 1750, '\p{^Jg=_-teh_MARBUTA}', "");
+    Expect(1, 1750, '\P{Jg=_-teh_MARBUTA}', "");
+    Expect(0, 1750, '\P{^Jg=_-teh_MARBUTA}', "");
+    Error('\p{Is_Joining_Group=-	teh_Marbuta/a/}');
+    Error('\P{Is_Joining_Group=-	teh_Marbuta/a/}');
     Expect(1, 1749, '\p{Is_Joining_Group=tehmarbuta}', "");
     Expect(0, 1749, '\p{^Is_Joining_Group=tehmarbuta}', "");
     Expect(0, 1749, '\P{Is_Joining_Group=tehmarbuta}', "");
@@ -60201,16 +60783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1750, '\p{^Is_Joining_Group=tehmarbuta}', "");
     Expect(1, 1750, '\P{Is_Joining_Group=tehmarbuta}', "");
     Expect(0, 1750, '\P{^Is_Joining_Group=tehmarbuta}', "");
-    Expect(1, 1749, '\p{Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(0, 1749, '\p{^Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(0, 1749, '\P{Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(1, 1749, '\P{^Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(0, 1750, '\p{Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(1, 1750, '\p{^Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(1, 1750, '\P{Is_Joining_Group=  Teh_MARBUTA}', "");
-    Expect(0, 1750, '\P{^Is_Joining_Group=  Teh_MARBUTA}', "");
-    Error('\p{Is_Jg= teh_Marbuta/a/}');
-    Error('\P{Is_Jg= teh_Marbuta/a/}');
+    Expect(1, 1749, '\p{Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(0, 1749, '\p{^Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(0, 1749, '\P{Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(1, 1749, '\P{^Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(0, 1750, '\p{Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(1, 1750, '\p{^Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(1, 1750, '\P{Is_Joining_Group=-Teh_marbuta}', "");
+    Expect(0, 1750, '\P{^Is_Joining_Group=-Teh_marbuta}', "");
+    Error('\p{Is_Jg:   /a/ Teh_Marbuta}');
+    Error('\P{Is_Jg:   /a/ Teh_Marbuta}');
     Expect(1, 1749, '\p{Is_Jg=tehmarbuta}', "");
     Expect(0, 1749, '\p{^Is_Jg=tehmarbuta}', "");
     Expect(0, 1749, '\P{Is_Jg=tehmarbuta}', "");
@@ -60219,38 +60801,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1750, '\p{^Is_Jg=tehmarbuta}', "");
     Expect(1, 1750, '\P{Is_Jg=tehmarbuta}', "");
     Expect(0, 1750, '\P{^Is_Jg=tehmarbuta}', "");
-    Expect(1, 1749, '\p{Is_Jg=	TEH_MARBUTA}', "");
-    Expect(0, 1749, '\p{^Is_Jg=	TEH_MARBUTA}', "");
-    Expect(0, 1749, '\P{Is_Jg=	TEH_MARBUTA}', "");
-    Expect(1, 1749, '\P{^Is_Jg=	TEH_MARBUTA}', "");
-    Expect(0, 1750, '\p{Is_Jg=	TEH_MARBUTA}', "");
-    Expect(1, 1750, '\p{^Is_Jg=	TEH_MARBUTA}', "");
-    Expect(1, 1750, '\P{Is_Jg=	TEH_MARBUTA}', "");
-    Expect(0, 1750, '\P{^Is_Jg=	TEH_MARBUTA}', "");
-    Error('\p{Joining_Group=:=- Hamza_On_HEH_Goal}');
-    Error('\P{Joining_Group=:=- Hamza_On_HEH_Goal}');
+    Expect(1, 1749, '\p{Is_Jg= Teh_marbuta}', "");
+    Expect(0, 1749, '\p{^Is_Jg= Teh_marbuta}', "");
+    Expect(0, 1749, '\P{Is_Jg= Teh_marbuta}', "");
+    Expect(1, 1749, '\P{^Is_Jg= Teh_marbuta}', "");
+    Expect(0, 1750, '\p{Is_Jg= Teh_marbuta}', "");
+    Expect(1, 1750, '\p{^Is_Jg= Teh_marbuta}', "");
+    Expect(1, 1750, '\P{Is_Jg= Teh_marbuta}', "");
+    Expect(0, 1750, '\P{^Is_Jg= Teh_marbuta}', "");
+    Error('\p{Joining_Group= :=Hamza_On_HEH_Goal}');
+    Error('\P{Joining_Group= :=Hamza_On_HEH_Goal}');
     Expect(1, 1731, '\p{Joining_Group=:\AHamza_On_Heh_Goal\z:}', "");;
     Expect(0, 1732, '\p{Joining_Group=:\AHamza_On_Heh_Goal\z:}', "");;
-    Expect(1, 1731, '\p{Joining_Group:	hamzaonhehgoal}', "");
-    Expect(0, 1731, '\p{^Joining_Group:	hamzaonhehgoal}', "");
-    Expect(0, 1731, '\P{Joining_Group:	hamzaonhehgoal}', "");
-    Expect(1, 1731, '\P{^Joining_Group:	hamzaonhehgoal}', "");
-    Expect(0, 1732, '\p{Joining_Group:	hamzaonhehgoal}', "");
-    Expect(1, 1732, '\p{^Joining_Group:	hamzaonhehgoal}', "");
-    Expect(1, 1732, '\P{Joining_Group:	hamzaonhehgoal}', "");
-    Expect(0, 1732, '\P{^Joining_Group:	hamzaonhehgoal}', "");
+    Expect(1, 1731, '\p{Joining_Group=hamzaonhehgoal}', "");
+    Expect(0, 1731, '\p{^Joining_Group=hamzaonhehgoal}', "");
+    Expect(0, 1731, '\P{Joining_Group=hamzaonhehgoal}', "");
+    Expect(1, 1731, '\P{^Joining_Group=hamzaonhehgoal}', "");
+    Expect(0, 1732, '\p{Joining_Group=hamzaonhehgoal}', "");
+    Expect(1, 1732, '\p{^Joining_Group=hamzaonhehgoal}', "");
+    Expect(1, 1732, '\P{Joining_Group=hamzaonhehgoal}', "");
+    Expect(0, 1732, '\P{^Joining_Group=hamzaonhehgoal}', "");
     Expect(1, 1731, '\p{Joining_Group=:\Ahamzaonhehgoal\z:}', "");;
     Expect(0, 1732, '\p{Joining_Group=:\Ahamzaonhehgoal\z:}', "");;
-    Expect(1, 1731, '\p{Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(0, 1731, '\p{^Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(0, 1731, '\P{Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(1, 1731, '\P{^Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(0, 1732, '\p{Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(1, 1732, '\p{^Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(1, 1732, '\P{Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Expect(0, 1732, '\P{^Joining_Group= 	Hamza_On_HEH_Goal}', "");
-    Error('\p{Jg=	 Teh_Marbuta_goal/a/}');
-    Error('\P{Jg=	 Teh_Marbuta_goal/a/}');
+    Expect(1, 1731, '\p{Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(0, 1731, '\p{^Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(0, 1731, '\P{Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(1, 1731, '\P{^Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(0, 1732, '\p{Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(1, 1732, '\p{^Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(1, 1732, '\P{Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Expect(0, 1732, '\P{^Joining_Group= 	Hamza_on_Heh_goal}', "");
+    Error('\p{Jg=/a/- Teh_MARBUTA_Goal}');
+    Error('\P{Jg=/a/- Teh_MARBUTA_Goal}');
     Expect(1, 1731, '\p{Jg=:\ATeh_Marbuta_Goal\z:}', "");;
     Expect(0, 1732, '\p{Jg=:\ATeh_Marbuta_Goal\z:}', "");;
     Expect(1, 1731, '\p{Jg=tehmarbutagoal}', "");
@@ -60263,34 +60845,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1732, '\P{^Jg=tehmarbutagoal}', "");
     Expect(1, 1731, '\p{Jg=:\Atehmarbutagoal\z:}', "");;
     Expect(0, 1732, '\p{Jg=:\Atehmarbutagoal\z:}', "");;
-    Expect(1, 1731, '\p{Jg=		teh_marbuta_Goal}', "");
-    Expect(0, 1731, '\p{^Jg=		teh_marbuta_Goal}', "");
-    Expect(0, 1731, '\P{Jg=		teh_marbuta_Goal}', "");
-    Expect(1, 1731, '\P{^Jg=		teh_marbuta_Goal}', "");
-    Expect(0, 1732, '\p{Jg=		teh_marbuta_Goal}', "");
-    Expect(1, 1732, '\p{^Jg=		teh_marbuta_Goal}', "");
-    Expect(1, 1732, '\P{Jg=		teh_marbuta_Goal}', "");
-    Expect(0, 1732, '\P{^Jg=		teh_marbuta_Goal}', "");
-    Error('\p{Is_Joining_Group=:=-_Hamza_ON_HEH_GOAL}');
-    Error('\P{Is_Joining_Group=:=-_Hamza_ON_HEH_GOAL}');
-    Expect(1, 1731, '\p{Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(0, 1731, '\p{^Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(0, 1731, '\P{Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(1, 1731, '\P{^Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(0, 1732, '\p{Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(1, 1732, '\p{^Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(1, 1732, '\P{Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(0, 1732, '\P{^Is_Joining_Group=hamzaonhehgoal}', "");
-    Expect(1, 1731, '\p{Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(0, 1731, '\p{^Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(0, 1731, '\P{Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(1, 1731, '\P{^Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(0, 1732, '\p{Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(1, 1732, '\p{^Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(1, 1732, '\P{Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Expect(0, 1732, '\P{^Is_Joining_Group=- Hamza_On_Heh_Goal}', "");
-    Error('\p{Is_Jg=-	Teh_Marbuta_goal/a/}');
-    Error('\P{Is_Jg=-	Teh_Marbuta_goal/a/}');
+    Expect(1, 1731, '\p{Jg=_teh_Marbuta_goal}', "");
+    Expect(0, 1731, '\p{^Jg=_teh_Marbuta_goal}', "");
+    Expect(0, 1731, '\P{Jg=_teh_Marbuta_goal}', "");
+    Expect(1, 1731, '\P{^Jg=_teh_Marbuta_goal}', "");
+    Expect(0, 1732, '\p{Jg=_teh_Marbuta_goal}', "");
+    Expect(1, 1732, '\p{^Jg=_teh_Marbuta_goal}', "");
+    Expect(1, 1732, '\P{Jg=_teh_Marbuta_goal}', "");
+    Expect(0, 1732, '\P{^Jg=_teh_Marbuta_goal}', "");
+    Error('\p{Is_Joining_Group=:=_HAMZA_on_HEH_GOAL}');
+    Error('\P{Is_Joining_Group=:=_HAMZA_on_HEH_GOAL}');
+    Expect(1, 1731, '\p{Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(0, 1731, '\p{^Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(0, 1731, '\P{Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(1, 1731, '\P{^Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(0, 1732, '\p{Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(1, 1732, '\p{^Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(1, 1732, '\P{Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(0, 1732, '\P{^Is_Joining_Group:hamzaonhehgoal}', "");
+    Expect(1, 1731, '\p{Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(0, 1731, '\p{^Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(0, 1731, '\P{Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(1, 1731, '\P{^Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(0, 1732, '\p{Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(1, 1732, '\p{^Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(1, 1732, '\P{Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Expect(0, 1732, '\P{^Is_Joining_Group:		hamza_on_HEH_Goal}', "");
+    Error('\p{Is_Jg:   -/a/Teh_MARBUTA_GOAL}');
+    Error('\P{Is_Jg:   -/a/Teh_MARBUTA_GOAL}');
     Expect(1, 1731, '\p{Is_Jg=tehmarbutagoal}', "");
     Expect(0, 1731, '\p{^Is_Jg=tehmarbutagoal}', "");
     Expect(0, 1731, '\P{Is_Jg=tehmarbutagoal}', "");
@@ -60299,16 +60881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1732, '\p{^Is_Jg=tehmarbutagoal}', "");
     Expect(1, 1732, '\P{Is_Jg=tehmarbutagoal}', "");
     Expect(0, 1732, '\P{^Is_Jg=tehmarbutagoal}', "");
-    Expect(1, 1731, '\p{Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(0, 1731, '\p{^Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(0, 1731, '\P{Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(1, 1731, '\P{^Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(0, 1732, '\p{Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(1, 1732, '\p{^Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(1, 1732, '\P{Is_Jg=		Teh_Marbuta_Goal}', "");
-    Expect(0, 1732, '\P{^Is_Jg=		Teh_Marbuta_Goal}', "");
-    Error('\p{Joining_Group=/a/ -TETH}');
-    Error('\P{Joining_Group=/a/ -TETH}');
+    Expect(1, 1731, '\p{Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(0, 1731, '\p{^Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(0, 1731, '\P{Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(1, 1731, '\P{^Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(0, 1732, '\p{Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(1, 1732, '\p{^Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(1, 1732, '\P{Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Expect(0, 1732, '\P{^Is_Jg=	_Teh_Marbuta_Goal}', "");
+    Error('\p{Joining_Group=--Teth/a/}');
+    Error('\P{Joining_Group=--Teth/a/}');
     Expect(1, 1820, '\p{Joining_Group=:\ATeth\z:}', "");;
     Expect(0, 1821, '\p{Joining_Group=:\ATeth\z:}', "");;
     Expect(1, 1820, '\p{Joining_Group=teth}', "");
@@ -60321,16 +60903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1821, '\P{^Joining_Group=teth}', "");
     Expect(1, 1820, '\p{Joining_Group=:\Ateth\z:}', "");;
     Expect(0, 1821, '\p{Joining_Group=:\Ateth\z:}', "");;
-    Expect(1, 1820, '\p{Joining_Group=	_Teth}', "");
-    Expect(0, 1820, '\p{^Joining_Group=	_Teth}', "");
-    Expect(0, 1820, '\P{Joining_Group=	_Teth}', "");
-    Expect(1, 1820, '\P{^Joining_Group=	_Teth}', "");
-    Expect(0, 1821, '\p{Joining_Group=	_Teth}', "");
-    Expect(1, 1821, '\p{^Joining_Group=	_Teth}', "");
-    Expect(1, 1821, '\P{Joining_Group=	_Teth}', "");
-    Expect(0, 1821, '\P{^Joining_Group=	_Teth}', "");
-    Error('\p{Jg=_:=TETH}');
-    Error('\P{Jg=_:=TETH}');
+    Expect(1, 1820, '\p{Joining_Group=_teth}', "");
+    Expect(0, 1820, '\p{^Joining_Group=_teth}', "");
+    Expect(0, 1820, '\P{Joining_Group=_teth}', "");
+    Expect(1, 1820, '\P{^Joining_Group=_teth}', "");
+    Expect(0, 1821, '\p{Joining_Group=_teth}', "");
+    Expect(1, 1821, '\p{^Joining_Group=_teth}', "");
+    Expect(1, 1821, '\P{Joining_Group=_teth}', "");
+    Expect(0, 1821, '\P{^Joining_Group=_teth}', "");
+    Error('\p{Jg=_:=teth}');
+    Error('\P{Jg=_:=teth}');
     Expect(1, 1820, '\p{Jg=:\ATeth\z:}', "");;
     Expect(0, 1821, '\p{Jg=:\ATeth\z:}', "");;
     Expect(1, 1820, '\p{Jg=teth}', "");
@@ -60343,16 +60925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1821, '\P{^Jg=teth}', "");
     Expect(1, 1820, '\p{Jg=:\Ateth\z:}', "");;
     Expect(0, 1821, '\p{Jg=:\Ateth\z:}', "");;
-    Expect(1, 1820, '\p{Jg=--teth}', "");
-    Expect(0, 1820, '\p{^Jg=--teth}', "");
-    Expect(0, 1820, '\P{Jg=--teth}', "");
-    Expect(1, 1820, '\P{^Jg=--teth}', "");
-    Expect(0, 1821, '\p{Jg=--teth}', "");
-    Expect(1, 1821, '\p{^Jg=--teth}', "");
-    Expect(1, 1821, '\P{Jg=--teth}', "");
-    Expect(0, 1821, '\P{^Jg=--teth}', "");
-    Error('\p{Is_Joining_Group=:=TETH}');
-    Error('\P{Is_Joining_Group=:=TETH}');
+    Expect(1, 1820, '\p{Jg=_ Teth}', "");
+    Expect(0, 1820, '\p{^Jg=_ Teth}', "");
+    Expect(0, 1820, '\P{Jg=_ Teth}', "");
+    Expect(1, 1820, '\P{^Jg=_ Teth}', "");
+    Expect(0, 1821, '\p{Jg=_ Teth}', "");
+    Expect(1, 1821, '\p{^Jg=_ Teth}', "");
+    Expect(1, 1821, '\P{Jg=_ Teth}', "");
+    Expect(0, 1821, '\P{^Jg=_ Teth}', "");
+    Error('\p{Is_Joining_Group=	TETH/a/}');
+    Error('\P{Is_Joining_Group=	TETH/a/}');
     Expect(1, 1820, '\p{Is_Joining_Group=teth}', "");
     Expect(0, 1820, '\p{^Is_Joining_Group=teth}', "");
     Expect(0, 1820, '\P{Is_Joining_Group=teth}', "");
@@ -60361,16 +60943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1821, '\p{^Is_Joining_Group=teth}', "");
     Expect(1, 1821, '\P{Is_Joining_Group=teth}', "");
     Expect(0, 1821, '\P{^Is_Joining_Group=teth}', "");
-    Expect(1, 1820, '\p{Is_Joining_Group= teth}', "");
-    Expect(0, 1820, '\p{^Is_Joining_Group= teth}', "");
-    Expect(0, 1820, '\P{Is_Joining_Group= teth}', "");
-    Expect(1, 1820, '\P{^Is_Joining_Group= teth}', "");
-    Expect(0, 1821, '\p{Is_Joining_Group= teth}', "");
-    Expect(1, 1821, '\p{^Is_Joining_Group= teth}', "");
-    Expect(1, 1821, '\P{Is_Joining_Group= teth}', "");
-    Expect(0, 1821, '\P{^Is_Joining_Group= teth}', "");
-    Error('\p{Is_Jg= /a/Teth}');
-    Error('\P{Is_Jg= /a/Teth}');
+    Expect(1, 1820, '\p{Is_Joining_Group: __Teth}', "");
+    Expect(0, 1820, '\p{^Is_Joining_Group: __Teth}', "");
+    Expect(0, 1820, '\P{Is_Joining_Group: __Teth}', "");
+    Expect(1, 1820, '\P{^Is_Joining_Group: __Teth}', "");
+    Expect(0, 1821, '\p{Is_Joining_Group: __Teth}', "");
+    Expect(1, 1821, '\p{^Is_Joining_Group: __Teth}', "");
+    Expect(1, 1821, '\P{Is_Joining_Group: __Teth}', "");
+    Expect(0, 1821, '\P{^Is_Joining_Group: __Teth}', "");
+    Error('\p{Is_Jg= :=Teth}');
+    Error('\P{Is_Jg= :=Teth}');
     Expect(1, 1820, '\p{Is_Jg=teth}', "");
     Expect(0, 1820, '\p{^Is_Jg=teth}', "");
     Expect(0, 1820, '\P{Is_Jg=teth}', "");
@@ -60379,16 +60961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1821, '\p{^Is_Jg=teth}', "");
     Expect(1, 1821, '\P{Is_Jg=teth}', "");
     Expect(0, 1821, '\P{^Is_Jg=teth}', "");
-    Expect(1, 1820, '\p{Is_Jg=_-Teth}', "");
-    Expect(0, 1820, '\p{^Is_Jg=_-Teth}', "");
-    Expect(0, 1820, '\P{Is_Jg=_-Teth}', "");
-    Expect(1, 1820, '\P{^Is_Jg=_-Teth}', "");
-    Expect(0, 1821, '\p{Is_Jg=_-Teth}', "");
-    Expect(1, 1821, '\p{^Is_Jg=_-Teth}', "");
-    Expect(1, 1821, '\P{Is_Jg=_-Teth}', "");
-    Expect(0, 1821, '\P{^Is_Jg=_-Teth}', "");
-    Error('\p{Joining_Group=_:=thin_Yeh}');
-    Error('\P{Joining_Group=_:=thin_Yeh}');
+    Expect(1, 1820, '\p{Is_Jg: 		teth}', "");
+    Expect(0, 1820, '\p{^Is_Jg: 		teth}', "");
+    Expect(0, 1820, '\P{Is_Jg: 		teth}', "");
+    Expect(1, 1820, '\P{^Is_Jg: 		teth}', "");
+    Expect(0, 1821, '\p{Is_Jg: 		teth}', "");
+    Expect(1, 1821, '\p{^Is_Jg: 		teth}', "");
+    Expect(1, 1821, '\P{Is_Jg: 		teth}', "");
+    Expect(0, 1821, '\P{^Is_Jg: 		teth}', "");
+    Error('\p{Joining_Group=/a/__Thin_Yeh}');
+    Error('\P{Joining_Group=/a/__Thin_Yeh}');
     Expect(1, 2182, '\p{Joining_Group=:\AThin_Yeh\z:}', "");;
     Expect(0, 2183, '\p{Joining_Group=:\AThin_Yeh\z:}', "");;
     Expect(1, 2182, '\p{Joining_Group=thinyeh}', "");
@@ -60401,16 +60983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2183, '\P{^Joining_Group=thinyeh}', "");
     Expect(1, 2182, '\p{Joining_Group=:\Athinyeh\z:}', "");;
     Expect(0, 2183, '\p{Joining_Group=:\Athinyeh\z:}', "");;
-    Expect(1, 2182, '\p{Joining_Group=	 THIN_Yeh}', "");
-    Expect(0, 2182, '\p{^Joining_Group=	 THIN_Yeh}', "");
-    Expect(0, 2182, '\P{Joining_Group=	 THIN_Yeh}', "");
-    Expect(1, 2182, '\P{^Joining_Group=	 THIN_Yeh}', "");
-    Expect(0, 2183, '\p{Joining_Group=	 THIN_Yeh}', "");
-    Expect(1, 2183, '\p{^Joining_Group=	 THIN_Yeh}', "");
-    Expect(1, 2183, '\P{Joining_Group=	 THIN_Yeh}', "");
-    Expect(0, 2183, '\P{^Joining_Group=	 THIN_Yeh}', "");
-    Error('\p{Jg=-:=Thin_Yeh}');
-    Error('\P{Jg=-:=Thin_Yeh}');
+    Expect(1, 2182, '\p{Joining_Group=_THIN_Yeh}', "");
+    Expect(0, 2182, '\p{^Joining_Group=_THIN_Yeh}', "");
+    Expect(0, 2182, '\P{Joining_Group=_THIN_Yeh}', "");
+    Expect(1, 2182, '\P{^Joining_Group=_THIN_Yeh}', "");
+    Expect(0, 2183, '\p{Joining_Group=_THIN_Yeh}', "");
+    Expect(1, 2183, '\p{^Joining_Group=_THIN_Yeh}', "");
+    Expect(1, 2183, '\P{Joining_Group=_THIN_Yeh}', "");
+    Expect(0, 2183, '\P{^Joining_Group=_THIN_Yeh}', "");
+    Error('\p{Jg=:=-	THIN_YEH}');
+    Error('\P{Jg=:=-	THIN_YEH}');
     Expect(1, 2182, '\p{Jg=:\AThin_Yeh\z:}', "");;
     Expect(0, 2183, '\p{Jg=:\AThin_Yeh\z:}', "");;
     Expect(1, 2182, '\p{Jg=thinyeh}', "");
@@ -60423,34 +61005,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2183, '\P{^Jg=thinyeh}', "");
     Expect(1, 2182, '\p{Jg=:\Athinyeh\z:}', "");;
     Expect(0, 2183, '\p{Jg=:\Athinyeh\z:}', "");;
-    Expect(1, 2182, '\p{Jg=_Thin_Yeh}', "");
-    Expect(0, 2182, '\p{^Jg=_Thin_Yeh}', "");
-    Expect(0, 2182, '\P{Jg=_Thin_Yeh}', "");
-    Expect(1, 2182, '\P{^Jg=_Thin_Yeh}', "");
-    Expect(0, 2183, '\p{Jg=_Thin_Yeh}', "");
-    Expect(1, 2183, '\p{^Jg=_Thin_Yeh}', "");
-    Expect(1, 2183, '\P{Jg=_Thin_Yeh}', "");
-    Expect(0, 2183, '\P{^Jg=_Thin_Yeh}', "");
-    Error('\p{Is_Joining_Group= :=Thin_yeh}');
-    Error('\P{Is_Joining_Group= :=Thin_yeh}');
-    Expect(1, 2182, '\p{Is_Joining_Group=thinyeh}', "");
-    Expect(0, 2182, '\p{^Is_Joining_Group=thinyeh}', "");
-    Expect(0, 2182, '\P{Is_Joining_Group=thinyeh}', "");
-    Expect(1, 2182, '\P{^Is_Joining_Group=thinyeh}', "");
-    Expect(0, 2183, '\p{Is_Joining_Group=thinyeh}', "");
-    Expect(1, 2183, '\p{^Is_Joining_Group=thinyeh}', "");
-    Expect(1, 2183, '\P{Is_Joining_Group=thinyeh}', "");
-    Expect(0, 2183, '\P{^Is_Joining_Group=thinyeh}', "");
-    Expect(1, 2182, '\p{Is_Joining_Group:  Thin_YEH}', "");
-    Expect(0, 2182, '\p{^Is_Joining_Group:  Thin_YEH}', "");
-    Expect(0, 2182, '\P{Is_Joining_Group:  Thin_YEH}', "");
-    Expect(1, 2182, '\P{^Is_Joining_Group:  Thin_YEH}', "");
-    Expect(0, 2183, '\p{Is_Joining_Group:  Thin_YEH}', "");
-    Expect(1, 2183, '\p{^Is_Joining_Group:  Thin_YEH}', "");
-    Expect(1, 2183, '\P{Is_Joining_Group:  Thin_YEH}', "");
-    Expect(0, 2183, '\P{^Is_Joining_Group:  Thin_YEH}', "");
-    Error('\p{Is_Jg=	_thin_YEH:=}');
-    Error('\P{Is_Jg=	_thin_YEH:=}');
+    Expect(1, 2182, '\p{Jg=	-thin_YEH}', "");
+    Expect(0, 2182, '\p{^Jg=	-thin_YEH}', "");
+    Expect(0, 2182, '\P{Jg=	-thin_YEH}', "");
+    Expect(1, 2182, '\P{^Jg=	-thin_YEH}', "");
+    Expect(0, 2183, '\p{Jg=	-thin_YEH}', "");
+    Expect(1, 2183, '\p{^Jg=	-thin_YEH}', "");
+    Expect(1, 2183, '\P{Jg=	-thin_YEH}', "");
+    Expect(0, 2183, '\P{^Jg=	-thin_YEH}', "");
+    Error('\p{Is_Joining_Group= -THIN_YEH:=}');
+    Error('\P{Is_Joining_Group= -THIN_YEH:=}');
+    Expect(1, 2182, '\p{Is_Joining_Group:thinyeh}', "");
+    Expect(0, 2182, '\p{^Is_Joining_Group:thinyeh}', "");
+    Expect(0, 2182, '\P{Is_Joining_Group:thinyeh}', "");
+    Expect(1, 2182, '\P{^Is_Joining_Group:thinyeh}', "");
+    Expect(0, 2183, '\p{Is_Joining_Group:thinyeh}', "");
+    Expect(1, 2183, '\p{^Is_Joining_Group:thinyeh}', "");
+    Expect(1, 2183, '\P{Is_Joining_Group:thinyeh}', "");
+    Expect(0, 2183, '\P{^Is_Joining_Group:thinyeh}', "");
+    Expect(1, 2182, '\p{Is_Joining_Group=-Thin_YEH}', "");
+    Expect(0, 2182, '\p{^Is_Joining_Group=-Thin_YEH}', "");
+    Expect(0, 2182, '\P{Is_Joining_Group=-Thin_YEH}', "");
+    Expect(1, 2182, '\P{^Is_Joining_Group=-Thin_YEH}', "");
+    Expect(0, 2183, '\p{Is_Joining_Group=-Thin_YEH}', "");
+    Expect(1, 2183, '\p{^Is_Joining_Group=-Thin_YEH}', "");
+    Expect(1, 2183, '\P{Is_Joining_Group=-Thin_YEH}', "");
+    Expect(0, 2183, '\P{^Is_Joining_Group=-Thin_YEH}', "");
+    Error('\p{Is_Jg=-_THIN_Yeh:=}');
+    Error('\P{Is_Jg=-_THIN_Yeh:=}');
     Expect(1, 2182, '\p{Is_Jg=thinyeh}', "");
     Expect(0, 2182, '\p{^Is_Jg=thinyeh}', "");
     Expect(0, 2182, '\P{Is_Jg=thinyeh}', "");
@@ -60459,16 +61041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2183, '\p{^Is_Jg=thinyeh}', "");
     Expect(1, 2183, '\P{Is_Jg=thinyeh}', "");
     Expect(0, 2183, '\P{^Is_Jg=thinyeh}', "");
-    Expect(1, 2182, '\p{Is_Jg=-_Thin_yeh}', "");
-    Expect(0, 2182, '\p{^Is_Jg=-_Thin_yeh}', "");
-    Expect(0, 2182, '\P{Is_Jg=-_Thin_yeh}', "");
-    Expect(1, 2182, '\P{^Is_Jg=-_Thin_yeh}', "");
-    Expect(0, 2183, '\p{Is_Jg=-_Thin_yeh}', "");
-    Expect(1, 2183, '\p{^Is_Jg=-_Thin_yeh}', "");
-    Expect(1, 2183, '\P{Is_Jg=-_Thin_yeh}', "");
-    Expect(0, 2183, '\P{^Is_Jg=-_Thin_yeh}', "");
-    Error('\p{Joining_Group=:=	_Vertical_tail}');
-    Error('\P{Joining_Group=:=	_Vertical_tail}');
+    Expect(1, 2182, '\p{Is_Jg=- Thin_Yeh}', "");
+    Expect(0, 2182, '\p{^Is_Jg=- Thin_Yeh}', "");
+    Expect(0, 2182, '\P{Is_Jg=- Thin_Yeh}', "");
+    Expect(1, 2182, '\P{^Is_Jg=- Thin_Yeh}', "");
+    Expect(0, 2183, '\p{Is_Jg=- Thin_Yeh}', "");
+    Expect(1, 2183, '\p{^Is_Jg=- Thin_Yeh}', "");
+    Expect(1, 2183, '\P{Is_Jg=- Thin_Yeh}', "");
+    Expect(0, 2183, '\P{^Is_Jg=- Thin_Yeh}', "");
+    Error('\p{Joining_Group=:= Vertical_Tail}');
+    Error('\P{Joining_Group=:= Vertical_Tail}');
     Expect(1, 2190, '\p{Joining_Group=:\AVertical_Tail\z:}', "");;
     Expect(0, 2191, '\p{Joining_Group=:\AVertical_Tail\z:}', "");;
     Expect(1, 2190, '\p{Joining_Group=verticaltail}', "");
@@ -60481,56 +61063,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2191, '\P{^Joining_Group=verticaltail}', "");
     Expect(1, 2190, '\p{Joining_Group=:\Averticaltail\z:}', "");;
     Expect(0, 2191, '\p{Joining_Group=:\Averticaltail\z:}', "");;
-    Expect(1, 2190, '\p{Joining_Group= Vertical_TAIL}', "");
-    Expect(0, 2190, '\p{^Joining_Group= Vertical_TAIL}', "");
-    Expect(0, 2190, '\P{Joining_Group= Vertical_TAIL}', "");
-    Expect(1, 2190, '\P{^Joining_Group= Vertical_TAIL}', "");
-    Expect(0, 2191, '\p{Joining_Group= Vertical_TAIL}', "");
-    Expect(1, 2191, '\p{^Joining_Group= Vertical_TAIL}', "");
-    Expect(1, 2191, '\P{Joining_Group= Vertical_TAIL}', "");
-    Expect(0, 2191, '\P{^Joining_Group= Vertical_TAIL}', "");
-    Error('\p{Jg:			VERTICAL_Tail:=}');
-    Error('\P{Jg:			VERTICAL_Tail:=}');
+    Expect(1, 2190, '\p{Joining_Group=_Vertical_Tail}', "");
+    Expect(0, 2190, '\p{^Joining_Group=_Vertical_Tail}', "");
+    Expect(0, 2190, '\P{Joining_Group=_Vertical_Tail}', "");
+    Expect(1, 2190, '\P{^Joining_Group=_Vertical_Tail}', "");
+    Expect(0, 2191, '\p{Joining_Group=_Vertical_Tail}', "");
+    Expect(1, 2191, '\p{^Joining_Group=_Vertical_Tail}', "");
+    Expect(1, 2191, '\P{Joining_Group=_Vertical_Tail}', "");
+    Expect(0, 2191, '\P{^Joining_Group=_Vertical_Tail}', "");
+    Error('\p{Jg=	:=Vertical_Tail}');
+    Error('\P{Jg=	:=Vertical_Tail}');
     Expect(1, 2190, '\p{Jg=:\AVertical_Tail\z:}', "");;
     Expect(0, 2191, '\p{Jg=:\AVertical_Tail\z:}', "");;
-    Expect(1, 2190, '\p{Jg:	verticaltail}', "");
-    Expect(0, 2190, '\p{^Jg:	verticaltail}', "");
-    Expect(0, 2190, '\P{Jg:	verticaltail}', "");
-    Expect(1, 2190, '\P{^Jg:	verticaltail}', "");
-    Expect(0, 2191, '\p{Jg:	verticaltail}', "");
-    Expect(1, 2191, '\p{^Jg:	verticaltail}', "");
-    Expect(1, 2191, '\P{Jg:	verticaltail}', "");
-    Expect(0, 2191, '\P{^Jg:	verticaltail}', "");
+    Expect(1, 2190, '\p{Jg=verticaltail}', "");
+    Expect(0, 2190, '\p{^Jg=verticaltail}', "");
+    Expect(0, 2190, '\P{Jg=verticaltail}', "");
+    Expect(1, 2190, '\P{^Jg=verticaltail}', "");
+    Expect(0, 2191, '\p{Jg=verticaltail}', "");
+    Expect(1, 2191, '\p{^Jg=verticaltail}', "");
+    Expect(1, 2191, '\P{Jg=verticaltail}', "");
+    Expect(0, 2191, '\P{^Jg=verticaltail}', "");
     Expect(1, 2190, '\p{Jg=:\Averticaltail\z:}', "");;
     Expect(0, 2191, '\p{Jg=:\Averticaltail\z:}', "");;
-    Expect(1, 2190, '\p{Jg=_	vertical_Tail}', "");
-    Expect(0, 2190, '\p{^Jg=_	vertical_Tail}', "");
-    Expect(0, 2190, '\P{Jg=_	vertical_Tail}', "");
-    Expect(1, 2190, '\P{^Jg=_	vertical_Tail}', "");
-    Expect(0, 2191, '\p{Jg=_	vertical_Tail}', "");
-    Expect(1, 2191, '\p{^Jg=_	vertical_Tail}', "");
-    Expect(1, 2191, '\P{Jg=_	vertical_Tail}', "");
-    Expect(0, 2191, '\P{^Jg=_	vertical_Tail}', "");
-    Error('\p{Is_Joining_Group=/a/-_VERTICAL_tail}');
-    Error('\P{Is_Joining_Group=/a/-_VERTICAL_tail}');
-    Expect(1, 2190, '\p{Is_Joining_Group=verticaltail}', "");
-    Expect(0, 2190, '\p{^Is_Joining_Group=verticaltail}', "");
-    Expect(0, 2190, '\P{Is_Joining_Group=verticaltail}', "");
-    Expect(1, 2190, '\P{^Is_Joining_Group=verticaltail}', "");
-    Expect(0, 2191, '\p{Is_Joining_Group=verticaltail}', "");
-    Expect(1, 2191, '\p{^Is_Joining_Group=verticaltail}', "");
-    Expect(1, 2191, '\P{Is_Joining_Group=verticaltail}', "");
-    Expect(0, 2191, '\P{^Is_Joining_Group=verticaltail}', "");
-    Expect(1, 2190, '\p{Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(0, 2190, '\p{^Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(0, 2190, '\P{Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(1, 2190, '\P{^Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(0, 2191, '\p{Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(1, 2191, '\p{^Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(1, 2191, '\P{Is_Joining_Group=	-Vertical_tail}', "");
-    Expect(0, 2191, '\P{^Is_Joining_Group=	-Vertical_tail}', "");
-    Error('\p{Is_Jg=/a/--Vertical_Tail}');
-    Error('\P{Is_Jg=/a/--Vertical_Tail}');
+    Expect(1, 2190, '\p{Jg:   	Vertical_Tail}', "");
+    Expect(0, 2190, '\p{^Jg:   	Vertical_Tail}', "");
+    Expect(0, 2190, '\P{Jg:   	Vertical_Tail}', "");
+    Expect(1, 2190, '\P{^Jg:   	Vertical_Tail}', "");
+    Expect(0, 2191, '\p{Jg:   	Vertical_Tail}', "");
+    Expect(1, 2191, '\p{^Jg:   	Vertical_Tail}', "");
+    Expect(1, 2191, '\P{Jg:   	Vertical_Tail}', "");
+    Expect(0, 2191, '\P{^Jg:   	Vertical_Tail}', "");
+    Error('\p{Is_Joining_Group:	:= VERTICAL_TAIL}');
+    Error('\P{Is_Joining_Group:	:= VERTICAL_TAIL}');
+    Expect(1, 2190, '\p{Is_Joining_Group:	verticaltail}', "");
+    Expect(0, 2190, '\p{^Is_Joining_Group:	verticaltail}', "");
+    Expect(0, 2190, '\P{Is_Joining_Group:	verticaltail}', "");
+    Expect(1, 2190, '\P{^Is_Joining_Group:	verticaltail}', "");
+    Expect(0, 2191, '\p{Is_Joining_Group:	verticaltail}', "");
+    Expect(1, 2191, '\p{^Is_Joining_Group:	verticaltail}', "");
+    Expect(1, 2191, '\P{Is_Joining_Group:	verticaltail}', "");
+    Expect(0, 2191, '\P{^Is_Joining_Group:	verticaltail}', "");
+    Expect(1, 2190, '\p{Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(0, 2190, '\p{^Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(0, 2190, '\P{Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(1, 2190, '\P{^Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(0, 2191, '\p{Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(1, 2191, '\p{^Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(1, 2191, '\P{Is_Joining_Group=-	vertical_Tail}', "");
+    Expect(0, 2191, '\P{^Is_Joining_Group=-	vertical_Tail}', "");
+    Error('\p{Is_Jg: /a/-	vertical_Tail}');
+    Error('\P{Is_Jg: /a/-	vertical_Tail}');
     Expect(1, 2190, '\p{Is_Jg=verticaltail}', "");
     Expect(0, 2190, '\p{^Is_Jg=verticaltail}', "");
     Expect(0, 2190, '\P{Is_Jg=verticaltail}', "");
@@ -60539,16 +61121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2191, '\p{^Is_Jg=verticaltail}', "");
     Expect(1, 2191, '\P{Is_Jg=verticaltail}', "");
     Expect(0, 2191, '\P{^Is_Jg=verticaltail}', "");
-    Expect(1, 2190, '\p{Is_Jg=- Vertical_tail}', "");
-    Expect(0, 2190, '\p{^Is_Jg=- Vertical_tail}', "");
-    Expect(0, 2190, '\P{Is_Jg=- Vertical_tail}', "");
-    Expect(1, 2190, '\P{^Is_Jg=- Vertical_tail}', "");
-    Expect(0, 2191, '\p{Is_Jg=- Vertical_tail}', "");
-    Expect(1, 2191, '\p{^Is_Jg=- Vertical_tail}', "");
-    Expect(1, 2191, '\P{Is_Jg=- Vertical_tail}', "");
-    Expect(0, 2191, '\P{^Is_Jg=- Vertical_tail}', "");
-    Error('\p{Joining_Group= Waw/a/}');
-    Error('\P{Joining_Group= Waw/a/}');
+    Expect(1, 2190, '\p{Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(0, 2190, '\p{^Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(0, 2190, '\P{Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(1, 2190, '\P{^Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(0, 2191, '\p{Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(1, 2191, '\p{^Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(1, 2191, '\P{Is_Jg=_-VERTICAL_TAIL}', "");
+    Expect(0, 2191, '\P{^Is_Jg=_-VERTICAL_TAIL}', "");
+    Error('\p{Joining_Group=/a/waw}');
+    Error('\P{Joining_Group=/a/waw}');
     Expect(1, 2219, '\p{Joining_Group=:\AWaw\z:}', "");;
     Expect(0, 2220, '\p{Joining_Group=:\AWaw\z:}', "");;
     Expect(1, 2219, '\p{Joining_Group=waw}', "");
@@ -60561,16 +61143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2220, '\P{^Joining_Group=waw}', "");
     Expect(1, 2219, '\p{Joining_Group=:\Awaw\z:}', "");;
     Expect(0, 2220, '\p{Joining_Group=:\Awaw\z:}', "");;
-    Expect(1, 2219, '\p{Joining_Group:	 Waw}', "");
-    Expect(0, 2219, '\p{^Joining_Group:	 Waw}', "");
-    Expect(0, 2219, '\P{Joining_Group:	 Waw}', "");
-    Expect(1, 2219, '\P{^Joining_Group:	 Waw}', "");
-    Expect(0, 2220, '\p{Joining_Group:	 Waw}', "");
-    Expect(1, 2220, '\p{^Joining_Group:	 Waw}', "");
-    Expect(1, 2220, '\P{Joining_Group:	 Waw}', "");
-    Expect(0, 2220, '\P{^Joining_Group:	 Waw}', "");
-    Error('\p{Jg=/a/	WAW}');
-    Error('\P{Jg=/a/	WAW}');
+    Expect(1, 2219, '\p{Joining_Group= _Waw}', "");
+    Expect(0, 2219, '\p{^Joining_Group= _Waw}', "");
+    Expect(0, 2219, '\P{Joining_Group= _Waw}', "");
+    Expect(1, 2219, '\P{^Joining_Group= _Waw}', "");
+    Expect(0, 2220, '\p{Joining_Group= _Waw}', "");
+    Expect(1, 2220, '\p{^Joining_Group= _Waw}', "");
+    Expect(1, 2220, '\P{Joining_Group= _Waw}', "");
+    Expect(0, 2220, '\P{^Joining_Group= _Waw}', "");
+    Error('\p{Jg=:=  Waw}');
+    Error('\P{Jg=:=  Waw}');
     Expect(1, 2219, '\p{Jg=:\AWaw\z:}', "");;
     Expect(0, 2220, '\p{Jg=:\AWaw\z:}', "");;
     Expect(1, 2219, '\p{Jg=waw}', "");
@@ -60583,52 +61165,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2220, '\P{^Jg=waw}', "");
     Expect(1, 2219, '\p{Jg=:\Awaw\z:}', "");;
     Expect(0, 2220, '\p{Jg=:\Awaw\z:}', "");;
-    Expect(1, 2219, '\p{Jg=-	Waw}', "");
-    Expect(0, 2219, '\p{^Jg=-	Waw}', "");
-    Expect(0, 2219, '\P{Jg=-	Waw}', "");
-    Expect(1, 2219, '\P{^Jg=-	Waw}', "");
-    Expect(0, 2220, '\p{Jg=-	Waw}', "");
-    Expect(1, 2220, '\p{^Jg=-	Waw}', "");
-    Expect(1, 2220, '\P{Jg=-	Waw}', "");
-    Expect(0, 2220, '\P{^Jg=-	Waw}', "");
-    Error('\p{Is_Joining_Group=:=	_waw}');
-    Error('\P{Is_Joining_Group=:=	_waw}');
-    Expect(1, 2219, '\p{Is_Joining_Group:waw}', "");
-    Expect(0, 2219, '\p{^Is_Joining_Group:waw}', "");
-    Expect(0, 2219, '\P{Is_Joining_Group:waw}', "");
-    Expect(1, 2219, '\P{^Is_Joining_Group:waw}', "");
-    Expect(0, 2220, '\p{Is_Joining_Group:waw}', "");
-    Expect(1, 2220, '\p{^Is_Joining_Group:waw}', "");
-    Expect(1, 2220, '\P{Is_Joining_Group:waw}', "");
-    Expect(0, 2220, '\P{^Is_Joining_Group:waw}', "");
-    Expect(1, 2219, '\p{Is_Joining_Group=		Waw}', "");
-    Expect(0, 2219, '\p{^Is_Joining_Group=		Waw}', "");
-    Expect(0, 2219, '\P{Is_Joining_Group=		Waw}', "");
-    Expect(1, 2219, '\P{^Is_Joining_Group=		Waw}', "");
-    Expect(0, 2220, '\p{Is_Joining_Group=		Waw}', "");
-    Expect(1, 2220, '\p{^Is_Joining_Group=		Waw}', "");
-    Expect(1, 2220, '\P{Is_Joining_Group=		Waw}', "");
-    Expect(0, 2220, '\P{^Is_Joining_Group=		Waw}', "");
-    Error('\p{Is_Jg= _Waw/a/}');
-    Error('\P{Is_Jg= _Waw/a/}');
-    Expect(1, 2219, '\p{Is_Jg:   waw}', "");
-    Expect(0, 2219, '\p{^Is_Jg:   waw}', "");
-    Expect(0, 2219, '\P{Is_Jg:   waw}', "");
-    Expect(1, 2219, '\P{^Is_Jg:   waw}', "");
-    Expect(0, 2220, '\p{Is_Jg:   waw}', "");
-    Expect(1, 2220, '\p{^Is_Jg:   waw}', "");
-    Expect(1, 2220, '\P{Is_Jg:   waw}', "");
-    Expect(0, 2220, '\P{^Is_Jg:   waw}', "");
-    Expect(1, 2219, '\p{Is_Jg=_Waw}', "");
-    Expect(0, 2219, '\p{^Is_Jg=_Waw}', "");
-    Expect(0, 2219, '\P{Is_Jg=_Waw}', "");
-    Expect(1, 2219, '\P{^Is_Jg=_Waw}', "");
-    Expect(0, 2220, '\p{Is_Jg=_Waw}', "");
-    Expect(1, 2220, '\p{^Is_Jg=_Waw}', "");
-    Expect(1, 2220, '\P{Is_Jg=_Waw}', "");
-    Expect(0, 2220, '\P{^Is_Jg=_Waw}', "");
-    Error('\p{Joining_Group=	 yeh:=}');
-    Error('\P{Joining_Group=	 yeh:=}');
+    Expect(1, 2219, '\p{Jg= 	Waw}', "");
+    Expect(0, 2219, '\p{^Jg= 	Waw}', "");
+    Expect(0, 2219, '\P{Jg= 	Waw}', "");
+    Expect(1, 2219, '\P{^Jg= 	Waw}', "");
+    Expect(0, 2220, '\p{Jg= 	Waw}', "");
+    Expect(1, 2220, '\p{^Jg= 	Waw}', "");
+    Expect(1, 2220, '\P{Jg= 	Waw}', "");
+    Expect(0, 2220, '\P{^Jg= 	Waw}', "");
+    Error('\p{Is_Joining_Group=	Waw/a/}');
+    Error('\P{Is_Joining_Group=	Waw/a/}');
+    Expect(1, 2219, '\p{Is_Joining_Group=waw}', "");
+    Expect(0, 2219, '\p{^Is_Joining_Group=waw}', "");
+    Expect(0, 2219, '\P{Is_Joining_Group=waw}', "");
+    Expect(1, 2219, '\P{^Is_Joining_Group=waw}', "");
+    Expect(0, 2220, '\p{Is_Joining_Group=waw}', "");
+    Expect(1, 2220, '\p{^Is_Joining_Group=waw}', "");
+    Expect(1, 2220, '\P{Is_Joining_Group=waw}', "");
+    Expect(0, 2220, '\P{^Is_Joining_Group=waw}', "");
+    Expect(1, 2219, '\p{Is_Joining_Group=	 Waw}', "");
+    Expect(0, 2219, '\p{^Is_Joining_Group=	 Waw}', "");
+    Expect(0, 2219, '\P{Is_Joining_Group=	 Waw}', "");
+    Expect(1, 2219, '\P{^Is_Joining_Group=	 Waw}', "");
+    Expect(0, 2220, '\p{Is_Joining_Group=	 Waw}', "");
+    Expect(1, 2220, '\p{^Is_Joining_Group=	 Waw}', "");
+    Expect(1, 2220, '\P{Is_Joining_Group=	 Waw}', "");
+    Expect(0, 2220, '\P{^Is_Joining_Group=	 Waw}', "");
+    Error('\p{Is_Jg= :=Waw}');
+    Error('\P{Is_Jg= :=Waw}');
+    Expect(1, 2219, '\p{Is_Jg=waw}', "");
+    Expect(0, 2219, '\p{^Is_Jg=waw}', "");
+    Expect(0, 2219, '\P{Is_Jg=waw}', "");
+    Expect(1, 2219, '\P{^Is_Jg=waw}', "");
+    Expect(0, 2220, '\p{Is_Jg=waw}', "");
+    Expect(1, 2220, '\p{^Is_Jg=waw}', "");
+    Expect(1, 2220, '\P{Is_Jg=waw}', "");
+    Expect(0, 2220, '\P{^Is_Jg=waw}', "");
+    Expect(1, 2219, '\p{Is_Jg= _WAW}', "");
+    Expect(0, 2219, '\p{^Is_Jg= _WAW}', "");
+    Expect(0, 2219, '\P{Is_Jg= _WAW}', "");
+    Expect(1, 2219, '\P{^Is_Jg= _WAW}', "");
+    Expect(0, 2220, '\p{Is_Jg= _WAW}', "");
+    Expect(1, 2220, '\p{^Is_Jg= _WAW}', "");
+    Expect(1, 2220, '\P{Is_Jg= _WAW}', "");
+    Expect(0, 2220, '\P{^Is_Jg= _WAW}', "");
+    Error('\p{Joining_Group=-Yeh:=}');
+    Error('\P{Joining_Group=-Yeh:=}');
     Expect(1, 2234, '\p{Joining_Group=:\AYeh\z:}', "");;
     Expect(0, 2235, '\p{Joining_Group=:\AYeh\z:}', "");;
     Expect(1, 2234, '\p{Joining_Group=yeh}', "");
@@ -60641,16 +61223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2235, '\P{^Joining_Group=yeh}', "");
     Expect(1, 2234, '\p{Joining_Group=:\Ayeh\z:}', "");;
     Expect(0, 2235, '\p{Joining_Group=:\Ayeh\z:}', "");;
-    Expect(1, 2234, '\p{Joining_Group= YEH}', "");
-    Expect(0, 2234, '\p{^Joining_Group= YEH}', "");
-    Expect(0, 2234, '\P{Joining_Group= YEH}', "");
-    Expect(1, 2234, '\P{^Joining_Group= YEH}', "");
-    Expect(0, 2235, '\p{Joining_Group= YEH}', "");
-    Expect(1, 2235, '\p{^Joining_Group= YEH}', "");
-    Expect(1, 2235, '\P{Joining_Group= YEH}', "");
-    Expect(0, 2235, '\P{^Joining_Group= YEH}', "");
-    Error('\p{Jg=/a/_ YEH}');
-    Error('\P{Jg=/a/_ YEH}');
+    Expect(1, 2234, '\p{Joining_Group=__YEH}', "");
+    Expect(0, 2234, '\p{^Joining_Group=__YEH}', "");
+    Expect(0, 2234, '\P{Joining_Group=__YEH}', "");
+    Expect(1, 2234, '\P{^Joining_Group=__YEH}', "");
+    Expect(0, 2235, '\p{Joining_Group=__YEH}', "");
+    Expect(1, 2235, '\p{^Joining_Group=__YEH}', "");
+    Expect(1, 2235, '\P{Joining_Group=__YEH}', "");
+    Expect(0, 2235, '\P{^Joining_Group=__YEH}', "");
+    Error('\p{Jg: -YEH/a/}');
+    Error('\P{Jg: -YEH/a/}');
     Expect(1, 2234, '\p{Jg=:\AYeh\z:}', "");;
     Expect(0, 2235, '\p{Jg=:\AYeh\z:}', "");;
     Expect(1, 2234, '\p{Jg=yeh}', "");
@@ -60663,16 +61245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 2235, '\P{^Jg=yeh}', "");
     Expect(1, 2234, '\p{Jg=:\Ayeh\z:}', "");;
     Expect(0, 2235, '\p{Jg=:\Ayeh\z:}', "");;
-    Expect(1, 2234, '\p{Jg=	Yeh}', "");
-    Expect(0, 2234, '\p{^Jg=	Yeh}', "");
-    Expect(0, 2234, '\P{Jg=	Yeh}', "");
-    Expect(1, 2234, '\P{^Jg=	Yeh}', "");
-    Expect(0, 2235, '\p{Jg=	Yeh}', "");
-    Expect(1, 2235, '\p{^Jg=	Yeh}', "");
-    Expect(1, 2235, '\P{Jg=	Yeh}', "");
-    Expect(0, 2235, '\P{^Jg=	Yeh}', "");
-    Error('\p{Is_Joining_Group=	 Yeh:=}');
-    Error('\P{Is_Joining_Group=	 Yeh:=}');
+    Expect(1, 2234, '\p{Jg=_	Yeh}', "");
+    Expect(0, 2234, '\p{^Jg=_	Yeh}', "");
+    Expect(0, 2234, '\P{Jg=_	Yeh}', "");
+    Expect(1, 2234, '\P{^Jg=_	Yeh}', "");
+    Expect(0, 2235, '\p{Jg=_	Yeh}', "");
+    Expect(1, 2235, '\p{^Jg=_	Yeh}', "");
+    Expect(1, 2235, '\P{Jg=_	Yeh}', "");
+    Expect(0, 2235, '\P{^Jg=_	Yeh}', "");
+    Error('\p{Is_Joining_Group=/a/	-yeh}');
+    Error('\P{Is_Joining_Group=/a/	-yeh}');
     Expect(1, 2234, '\p{Is_Joining_Group=yeh}', "");
     Expect(0, 2234, '\p{^Is_Joining_Group=yeh}', "");
     Expect(0, 2234, '\P{Is_Joining_Group=yeh}', "");
@@ -60681,16 +61263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2235, '\p{^Is_Joining_Group=yeh}', "");
     Expect(1, 2235, '\P{Is_Joining_Group=yeh}', "");
     Expect(0, 2235, '\P{^Is_Joining_Group=yeh}', "");
-    Expect(1, 2234, '\p{Is_Joining_Group=--yeh}', "");
-    Expect(0, 2234, '\p{^Is_Joining_Group=--yeh}', "");
-    Expect(0, 2234, '\P{Is_Joining_Group=--yeh}', "");
-    Expect(1, 2234, '\P{^Is_Joining_Group=--yeh}', "");
-    Expect(0, 2235, '\p{Is_Joining_Group=--yeh}', "");
-    Expect(1, 2235, '\p{^Is_Joining_Group=--yeh}', "");
-    Expect(1, 2235, '\P{Is_Joining_Group=--yeh}', "");
-    Expect(0, 2235, '\P{^Is_Joining_Group=--yeh}', "");
-    Error('\p{Is_Jg=-:=YEH}');
-    Error('\P{Is_Jg=-:=YEH}');
+    Expect(1, 2234, '\p{Is_Joining_Group=  Yeh}', "");
+    Expect(0, 2234, '\p{^Is_Joining_Group=  Yeh}', "");
+    Expect(0, 2234, '\P{Is_Joining_Group=  Yeh}', "");
+    Expect(1, 2234, '\P{^Is_Joining_Group=  Yeh}', "");
+    Expect(0, 2235, '\p{Is_Joining_Group=  Yeh}', "");
+    Expect(1, 2235, '\p{^Is_Joining_Group=  Yeh}', "");
+    Expect(1, 2235, '\P{Is_Joining_Group=  Yeh}', "");
+    Expect(0, 2235, '\P{^Is_Joining_Group=  Yeh}', "");
+    Error('\p{Is_Jg=_Yeh/a/}');
+    Error('\P{Is_Jg=_Yeh/a/}');
     Expect(1, 2234, '\p{Is_Jg=yeh}', "");
     Expect(0, 2234, '\p{^Is_Jg=yeh}', "");
     Expect(0, 2234, '\P{Is_Jg=yeh}', "");
@@ -60699,16 +61281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 2235, '\p{^Is_Jg=yeh}', "");
     Expect(1, 2235, '\P{Is_Jg=yeh}', "");
     Expect(0, 2235, '\P{^Is_Jg=yeh}', "");
-    Expect(1, 2234, '\p{Is_Jg= 	YEH}', "");
-    Expect(0, 2234, '\p{^Is_Jg= 	YEH}', "");
-    Expect(0, 2234, '\P{Is_Jg= 	YEH}', "");
-    Expect(1, 2234, '\P{^Is_Jg= 	YEH}', "");
-    Expect(0, 2235, '\p{Is_Jg= 	YEH}', "");
-    Expect(1, 2235, '\p{^Is_Jg= 	YEH}', "");
-    Expect(1, 2235, '\P{Is_Jg= 	YEH}', "");
-    Expect(0, 2235, '\P{^Is_Jg= 	YEH}', "");
-    Error('\p{Joining_Group=-Yeh_BARREE/a/}');
-    Error('\P{Joining_Group=-Yeh_BARREE/a/}');
+    Expect(1, 2234, '\p{Is_Jg=  Yeh}', "");
+    Expect(0, 2234, '\p{^Is_Jg=  Yeh}', "");
+    Expect(0, 2234, '\P{Is_Jg=  Yeh}', "");
+    Expect(1, 2234, '\P{^Is_Jg=  Yeh}', "");
+    Expect(0, 2235, '\p{Is_Jg=  Yeh}', "");
+    Expect(1, 2235, '\p{^Is_Jg=  Yeh}', "");
+    Expect(1, 2235, '\P{Is_Jg=  Yeh}', "");
+    Expect(0, 2235, '\P{^Is_Jg=  Yeh}', "");
+    Error('\p{Joining_Group=- yeh_Barree:=}');
+    Error('\P{Joining_Group=- yeh_Barree:=}');
     Expect(1, 1747, '\p{Joining_Group=:\AYeh_Barree\z:}', "");;
     Expect(0, 1748, '\p{Joining_Group=:\AYeh_Barree\z:}', "");;
     Expect(1, 1747, '\p{Joining_Group=yehbarree}', "");
@@ -60721,38 +61303,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1748, '\P{^Joining_Group=yehbarree}', "");
     Expect(1, 1747, '\p{Joining_Group=:\Ayehbarree\z:}', "");;
     Expect(0, 1748, '\p{Joining_Group=:\Ayehbarree\z:}', "");;
-    Expect(1, 1747, '\p{Joining_Group= 	Yeh_BARREE}', "");
-    Expect(0, 1747, '\p{^Joining_Group= 	Yeh_BARREE}', "");
-    Expect(0, 1747, '\P{Joining_Group= 	Yeh_BARREE}', "");
-    Expect(1, 1747, '\P{^Joining_Group= 	Yeh_BARREE}', "");
-    Expect(0, 1748, '\p{Joining_Group= 	Yeh_BARREE}', "");
-    Expect(1, 1748, '\p{^Joining_Group= 	Yeh_BARREE}', "");
-    Expect(1, 1748, '\P{Joining_Group= 	Yeh_BARREE}', "");
-    Expect(0, 1748, '\P{^Joining_Group= 	Yeh_BARREE}', "");
-    Error('\p{Jg=/a/	YEH_Barree}');
-    Error('\P{Jg=/a/	YEH_Barree}');
+    Expect(1, 1747, '\p{Joining_Group:	 yeh_Barree}', "");
+    Expect(0, 1747, '\p{^Joining_Group:	 yeh_Barree}', "");
+    Expect(0, 1747, '\P{Joining_Group:	 yeh_Barree}', "");
+    Expect(1, 1747, '\P{^Joining_Group:	 yeh_Barree}', "");
+    Expect(0, 1748, '\p{Joining_Group:	 yeh_Barree}', "");
+    Expect(1, 1748, '\p{^Joining_Group:	 yeh_Barree}', "");
+    Expect(1, 1748, '\P{Joining_Group:	 yeh_Barree}', "");
+    Expect(0, 1748, '\P{^Joining_Group:	 yeh_Barree}', "");
+    Error('\p{Jg=:=	-Yeh_barree}');
+    Error('\P{Jg=:=	-Yeh_barree}');
     Expect(1, 1747, '\p{Jg=:\AYeh_Barree\z:}', "");;
     Expect(0, 1748, '\p{Jg=:\AYeh_Barree\z:}', "");;
-    Expect(1, 1747, '\p{Jg=yehbarree}', "");
-    Expect(0, 1747, '\p{^Jg=yehbarree}', "");
-    Expect(0, 1747, '\P{Jg=yehbarree}', "");
-    Expect(1, 1747, '\P{^Jg=yehbarree}', "");
-    Expect(0, 1748, '\p{Jg=yehbarree}', "");
-    Expect(1, 1748, '\p{^Jg=yehbarree}', "");
-    Expect(1, 1748, '\P{Jg=yehbarree}', "");
-    Expect(0, 1748, '\P{^Jg=yehbarree}', "");
+    Expect(1, 1747, '\p{Jg: yehbarree}', "");
+    Expect(0, 1747, '\p{^Jg: yehbarree}', "");
+    Expect(0, 1747, '\P{Jg: yehbarree}', "");
+    Expect(1, 1747, '\P{^Jg: yehbarree}', "");
+    Expect(0, 1748, '\p{Jg: yehbarree}', "");
+    Expect(1, 1748, '\p{^Jg: yehbarree}', "");
+    Expect(1, 1748, '\P{Jg: yehbarree}', "");
+    Expect(0, 1748, '\P{^Jg: yehbarree}', "");
     Expect(1, 1747, '\p{Jg=:\Ayehbarree\z:}', "");;
     Expect(0, 1748, '\p{Jg=:\Ayehbarree\z:}', "");;
-    Expect(1, 1747, '\p{Jg=- Yeh_Barree}', "");
-    Expect(0, 1747, '\p{^Jg=- Yeh_Barree}', "");
-    Expect(0, 1747, '\P{Jg=- Yeh_Barree}', "");
-    Expect(1, 1747, '\P{^Jg=- Yeh_Barree}', "");
-    Expect(0, 1748, '\p{Jg=- Yeh_Barree}', "");
-    Expect(1, 1748, '\p{^Jg=- Yeh_Barree}', "");
-    Expect(1, 1748, '\P{Jg=- Yeh_Barree}', "");
-    Expect(0, 1748, '\P{^Jg=- Yeh_Barree}', "");
-    Error('\p{Is_Joining_Group=-/a/yeh_barree}');
-    Error('\P{Is_Joining_Group=-/a/yeh_barree}');
+    Expect(1, 1747, '\p{Jg=	Yeh_barree}', "");
+    Expect(0, 1747, '\p{^Jg=	Yeh_barree}', "");
+    Expect(0, 1747, '\P{Jg=	Yeh_barree}', "");
+    Expect(1, 1747, '\P{^Jg=	Yeh_barree}', "");
+    Expect(0, 1748, '\p{Jg=	Yeh_barree}', "");
+    Expect(1, 1748, '\p{^Jg=	Yeh_barree}', "");
+    Expect(1, 1748, '\P{Jg=	Yeh_barree}', "");
+    Expect(0, 1748, '\P{^Jg=	Yeh_barree}', "");
+    Error('\p{Is_Joining_Group=/a/Yeh_Barree}');
+    Error('\P{Is_Joining_Group=/a/Yeh_Barree}');
     Expect(1, 1747, '\p{Is_Joining_Group=yehbarree}', "");
     Expect(0, 1747, '\p{^Is_Joining_Group=yehbarree}', "");
     Expect(0, 1747, '\P{Is_Joining_Group=yehbarree}', "");
@@ -60761,16 +61343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1748, '\p{^Is_Joining_Group=yehbarree}', "");
     Expect(1, 1748, '\P{Is_Joining_Group=yehbarree}', "");
     Expect(0, 1748, '\P{^Is_Joining_Group=yehbarree}', "");
-    Expect(1, 1747, '\p{Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(0, 1747, '\p{^Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(0, 1747, '\P{Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(1, 1747, '\P{^Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(0, 1748, '\p{Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(1, 1748, '\p{^Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(1, 1748, '\P{Is_Joining_Group:   _YEH_BARREE}', "");
-    Expect(0, 1748, '\P{^Is_Joining_Group:   _YEH_BARREE}', "");
-    Error('\p{Is_Jg=_-yeh_Barree/a/}');
-    Error('\P{Is_Jg=_-yeh_Barree/a/}');
+    Expect(1, 1747, '\p{Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(0, 1747, '\p{^Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(0, 1747, '\P{Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(1, 1747, '\P{^Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(0, 1748, '\p{Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(1, 1748, '\p{^Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(1, 1748, '\P{Is_Joining_Group=-	Yeh_Barree}', "");
+    Expect(0, 1748, '\P{^Is_Joining_Group=-	Yeh_Barree}', "");
+    Error('\p{Is_Jg= Yeh_BARREE:=}');
+    Error('\P{Is_Jg= Yeh_BARREE:=}');
     Expect(1, 1747, '\p{Is_Jg=yehbarree}', "");
     Expect(0, 1747, '\p{^Is_Jg=yehbarree}', "");
     Expect(0, 1747, '\P{Is_Jg=yehbarree}', "");
@@ -60779,38 +61361,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1748, '\p{^Is_Jg=yehbarree}', "");
     Expect(1, 1748, '\P{Is_Jg=yehbarree}', "");
     Expect(0, 1748, '\P{^Is_Jg=yehbarree}', "");
-    Expect(1, 1747, '\p{Is_Jg=- yeh_BARREE}', "");
-    Expect(0, 1747, '\p{^Is_Jg=- yeh_BARREE}', "");
-    Expect(0, 1747, '\P{Is_Jg=- yeh_BARREE}', "");
-    Expect(1, 1747, '\P{^Is_Jg=- yeh_BARREE}', "");
-    Expect(0, 1748, '\p{Is_Jg=- yeh_BARREE}', "");
-    Expect(1, 1748, '\p{^Is_Jg=- yeh_BARREE}', "");
-    Expect(1, 1748, '\P{Is_Jg=- yeh_BARREE}', "");
-    Expect(0, 1748, '\P{^Is_Jg=- yeh_BARREE}', "");
-    Error('\p{Joining_Group:    Yeh_With_Tail:=}');
-    Error('\P{Joining_Group:    Yeh_With_Tail:=}');
+    Expect(1, 1747, '\p{Is_Jg=_Yeh_BARREE}', "");
+    Expect(0, 1747, '\p{^Is_Jg=_Yeh_BARREE}', "");
+    Expect(0, 1747, '\P{Is_Jg=_Yeh_BARREE}', "");
+    Expect(1, 1747, '\P{^Is_Jg=_Yeh_BARREE}', "");
+    Expect(0, 1748, '\p{Is_Jg=_Yeh_BARREE}', "");
+    Expect(1, 1748, '\p{^Is_Jg=_Yeh_BARREE}', "");
+    Expect(1, 1748, '\P{Is_Jg=_Yeh_BARREE}', "");
+    Expect(0, 1748, '\P{^Is_Jg=_Yeh_BARREE}', "");
+    Error('\p{Joining_Group:    -yeh_With_Tail/a/}');
+    Error('\P{Joining_Group:    -yeh_With_Tail/a/}');
     Expect(1, 1741, '\p{Joining_Group=:\AYeh_With_Tail\z:}', "");;
     Expect(0, 1742, '\p{Joining_Group=:\AYeh_With_Tail\z:}', "");;
-    Expect(1, 1741, '\p{Joining_Group=yehwithtail}', "");
-    Expect(0, 1741, '\p{^Joining_Group=yehwithtail}', "");
-    Expect(0, 1741, '\P{Joining_Group=yehwithtail}', "");
-    Expect(1, 1741, '\P{^Joining_Group=yehwithtail}', "");
-    Expect(0, 1742, '\p{Joining_Group=yehwithtail}', "");
-    Expect(1, 1742, '\p{^Joining_Group=yehwithtail}', "");
-    Expect(1, 1742, '\P{Joining_Group=yehwithtail}', "");
-    Expect(0, 1742, '\P{^Joining_Group=yehwithtail}', "");
+    Expect(1, 1741, '\p{Joining_Group: yehwithtail}', "");
+    Expect(0, 1741, '\p{^Joining_Group: yehwithtail}', "");
+    Expect(0, 1741, '\P{Joining_Group: yehwithtail}', "");
+    Expect(1, 1741, '\P{^Joining_Group: yehwithtail}', "");
+    Expect(0, 1742, '\p{Joining_Group: yehwithtail}', "");
+    Expect(1, 1742, '\p{^Joining_Group: yehwithtail}', "");
+    Expect(1, 1742, '\P{Joining_Group: yehwithtail}', "");
+    Expect(0, 1742, '\P{^Joining_Group: yehwithtail}', "");
     Expect(1, 1741, '\p{Joining_Group=:\Ayehwithtail\z:}', "");;
     Expect(0, 1742, '\p{Joining_Group=:\Ayehwithtail\z:}', "");;
-    Expect(1, 1741, '\p{Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(0, 1741, '\p{^Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(0, 1741, '\P{Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(1, 1741, '\P{^Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(0, 1742, '\p{Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(1, 1742, '\p{^Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(1, 1742, '\P{Joining_Group=-_Yeh_With_TAIL}', "");
-    Expect(0, 1742, '\P{^Joining_Group=-_Yeh_With_TAIL}', "");
-    Error('\p{Jg=:=Yeh_With_tail}');
-    Error('\P{Jg=:=Yeh_With_tail}');
+    Expect(1, 1741, '\p{Joining_Group= Yeh_with_tail}', "");
+    Expect(0, 1741, '\p{^Joining_Group= Yeh_with_tail}', "");
+    Expect(0, 1741, '\P{Joining_Group= Yeh_with_tail}', "");
+    Expect(1, 1741, '\P{^Joining_Group= Yeh_with_tail}', "");
+    Expect(0, 1742, '\p{Joining_Group= Yeh_with_tail}', "");
+    Expect(1, 1742, '\p{^Joining_Group= Yeh_with_tail}', "");
+    Expect(1, 1742, '\P{Joining_Group= Yeh_with_tail}', "");
+    Expect(0, 1742, '\P{^Joining_Group= Yeh_with_tail}', "");
+    Error('\p{Jg=		Yeh_With_Tail/a/}');
+    Error('\P{Jg=		Yeh_With_Tail/a/}');
     Expect(1, 1741, '\p{Jg=:\AYeh_With_Tail\z:}', "");;
     Expect(0, 1742, '\p{Jg=:\AYeh_With_Tail\z:}', "");;
     Expect(1, 1741, '\p{Jg=yehwithtail}', "");
@@ -60823,16 +61405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1742, '\P{^Jg=yehwithtail}', "");
     Expect(1, 1741, '\p{Jg=:\Ayehwithtail\z:}', "");;
     Expect(0, 1742, '\p{Jg=:\Ayehwithtail\z:}', "");;
-    Expect(1, 1741, '\p{Jg= -Yeh_With_Tail}', "");
-    Expect(0, 1741, '\p{^Jg= -Yeh_With_Tail}', "");
-    Expect(0, 1741, '\P{Jg= -Yeh_With_Tail}', "");
-    Expect(1, 1741, '\P{^Jg= -Yeh_With_Tail}', "");
-    Expect(0, 1742, '\p{Jg= -Yeh_With_Tail}', "");
-    Expect(1, 1742, '\p{^Jg= -Yeh_With_Tail}', "");
-    Expect(1, 1742, '\P{Jg= -Yeh_With_Tail}', "");
-    Expect(0, 1742, '\P{^Jg= -Yeh_With_Tail}', "");
-    Error('\p{Is_Joining_Group:	__yeh_With_tail/a/}');
-    Error('\P{Is_Joining_Group:	__yeh_With_tail/a/}');
+    Expect(1, 1741, '\p{Jg= YEH_With_Tail}', "");
+    Expect(0, 1741, '\p{^Jg= YEH_With_Tail}', "");
+    Expect(0, 1741, '\P{Jg= YEH_With_Tail}', "");
+    Expect(1, 1741, '\P{^Jg= YEH_With_Tail}', "");
+    Expect(0, 1742, '\p{Jg= YEH_With_Tail}', "");
+    Expect(1, 1742, '\p{^Jg= YEH_With_Tail}', "");
+    Expect(1, 1742, '\P{Jg= YEH_With_Tail}', "");
+    Expect(0, 1742, '\P{^Jg= YEH_With_Tail}', "");
+    Error('\p{Is_Joining_Group=:=- Yeh_With_Tail}');
+    Error('\P{Is_Joining_Group=:=- Yeh_With_Tail}');
     Expect(1, 1741, '\p{Is_Joining_Group=yehwithtail}', "");
     Expect(0, 1741, '\p{^Is_Joining_Group=yehwithtail}', "");
     Expect(0, 1741, '\P{Is_Joining_Group=yehwithtail}', "");
@@ -60841,16 +61423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1742, '\p{^Is_Joining_Group=yehwithtail}', "");
     Expect(1, 1742, '\P{Is_Joining_Group=yehwithtail}', "");
     Expect(0, 1742, '\P{^Is_Joining_Group=yehwithtail}', "");
-    Expect(1, 1741, '\p{Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(0, 1741, '\p{^Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(0, 1741, '\P{Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(1, 1741, '\P{^Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(0, 1742, '\p{Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(1, 1742, '\p{^Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(1, 1742, '\P{Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Expect(0, 1742, '\P{^Is_Joining_Group= -Yeh_With_TAIL}', "");
-    Error('\p{Is_Jg=:=-yeh_with_Tail}');
-    Error('\P{Is_Jg=:=-yeh_with_Tail}');
+    Expect(1, 1741, '\p{Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(0, 1741, '\p{^Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(0, 1741, '\P{Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(1, 1741, '\P{^Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(0, 1742, '\p{Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(1, 1742, '\p{^Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(1, 1742, '\P{Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Expect(0, 1742, '\P{^Is_Joining_Group=-_yeh_WITH_Tail}', "");
+    Error('\p{Is_Jg=--yeh_WITH_TAIL:=}');
+    Error('\P{Is_Jg=--yeh_WITH_TAIL:=}');
     Expect(1, 1741, '\p{Is_Jg=yehwithtail}', "");
     Expect(0, 1741, '\p{^Is_Jg=yehwithtail}', "");
     Expect(0, 1741, '\P{Is_Jg=yehwithtail}', "");
@@ -60859,60 +61441,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1742, '\p{^Is_Jg=yehwithtail}', "");
     Expect(1, 1742, '\P{Is_Jg=yehwithtail}', "");
     Expect(0, 1742, '\P{^Is_Jg=yehwithtail}', "");
-    Expect(1, 1741, '\p{Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(0, 1741, '\p{^Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(0, 1741, '\P{Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(1, 1741, '\P{^Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(0, 1742, '\p{Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(1, 1742, '\p{^Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(1, 1742, '\P{Is_Jg:   - yeh_With_TAIL}', "");
-    Expect(0, 1742, '\P{^Is_Jg:   - yeh_With_TAIL}', "");
-    Error('\p{Joining_Group=/a/-yudh}');
-    Error('\P{Joining_Group=/a/-yudh}');
+    Expect(1, 1741, '\p{Is_Jg=	_yeh_with_Tail}', "");
+    Expect(0, 1741, '\p{^Is_Jg=	_yeh_with_Tail}', "");
+    Expect(0, 1741, '\P{Is_Jg=	_yeh_with_Tail}', "");
+    Expect(1, 1741, '\P{^Is_Jg=	_yeh_with_Tail}', "");
+    Expect(0, 1742, '\p{Is_Jg=	_yeh_with_Tail}', "");
+    Expect(1, 1742, '\p{^Is_Jg=	_yeh_with_Tail}', "");
+    Expect(1, 1742, '\P{Is_Jg=	_yeh_with_Tail}', "");
+    Expect(0, 1742, '\P{^Is_Jg=	_yeh_with_Tail}', "");
+    Error('\p{Joining_Group=:=  yudh}');
+    Error('\P{Joining_Group=:=  yudh}');
     Expect(1, 1821, '\p{Joining_Group=:\AYudh\z:}', "");;
     Expect(0, 1822, '\p{Joining_Group=:\AYudh\z:}', "");;
-    Expect(1, 1821, '\p{Joining_Group:yudh}', "");
-    Expect(0, 1821, '\p{^Joining_Group:yudh}', "");
-    Expect(0, 1821, '\P{Joining_Group:yudh}', "");
-    Expect(1, 1821, '\P{^Joining_Group:yudh}', "");
-    Expect(0, 1822, '\p{Joining_Group:yudh}', "");
-    Expect(1, 1822, '\p{^Joining_Group:yudh}', "");
-    Expect(1, 1822, '\P{Joining_Group:yudh}', "");
-    Expect(0, 1822, '\P{^Joining_Group:yudh}', "");
+    Expect(1, 1821, '\p{Joining_Group=yudh}', "");
+    Expect(0, 1821, '\p{^Joining_Group=yudh}', "");
+    Expect(0, 1821, '\P{Joining_Group=yudh}', "");
+    Expect(1, 1821, '\P{^Joining_Group=yudh}', "");
+    Expect(0, 1822, '\p{Joining_Group=yudh}', "");
+    Expect(1, 1822, '\p{^Joining_Group=yudh}', "");
+    Expect(1, 1822, '\P{Joining_Group=yudh}', "");
+    Expect(0, 1822, '\P{^Joining_Group=yudh}', "");
     Expect(1, 1821, '\p{Joining_Group=:\Ayudh\z:}', "");;
     Expect(0, 1822, '\p{Joining_Group=:\Ayudh\z:}', "");;
-    Expect(1, 1821, '\p{Joining_Group=		YUDH}', "");
-    Expect(0, 1821, '\p{^Joining_Group=		YUDH}', "");
-    Expect(0, 1821, '\P{Joining_Group=		YUDH}', "");
-    Expect(1, 1821, '\P{^Joining_Group=		YUDH}', "");
-    Expect(0, 1822, '\p{Joining_Group=		YUDH}', "");
-    Expect(1, 1822, '\p{^Joining_Group=		YUDH}', "");
-    Expect(1, 1822, '\P{Joining_Group=		YUDH}', "");
-    Expect(0, 1822, '\P{^Joining_Group=		YUDH}', "");
-    Error('\p{Jg= Yudh:=}');
-    Error('\P{Jg= Yudh:=}');
+    Expect(1, 1821, '\p{Joining_Group=_	YUDH}', "");
+    Expect(0, 1821, '\p{^Joining_Group=_	YUDH}', "");
+    Expect(0, 1821, '\P{Joining_Group=_	YUDH}', "");
+    Expect(1, 1821, '\P{^Joining_Group=_	YUDH}', "");
+    Expect(0, 1822, '\p{Joining_Group=_	YUDH}', "");
+    Expect(1, 1822, '\p{^Joining_Group=_	YUDH}', "");
+    Expect(1, 1822, '\P{Joining_Group=_	YUDH}', "");
+    Expect(0, 1822, '\P{^Joining_Group=_	YUDH}', "");
+    Error('\p{Jg=_:=YUDH}');
+    Error('\P{Jg=_:=YUDH}');
     Expect(1, 1821, '\p{Jg=:\AYudh\z:}', "");;
     Expect(0, 1822, '\p{Jg=:\AYudh\z:}', "");;
-    Expect(1, 1821, '\p{Jg=yudh}', "");
-    Expect(0, 1821, '\p{^Jg=yudh}', "");
-    Expect(0, 1821, '\P{Jg=yudh}', "");
-    Expect(1, 1821, '\P{^Jg=yudh}', "");
-    Expect(0, 1822, '\p{Jg=yudh}', "");
-    Expect(1, 1822, '\p{^Jg=yudh}', "");
-    Expect(1, 1822, '\P{Jg=yudh}', "");
-    Expect(0, 1822, '\P{^Jg=yudh}', "");
+    Expect(1, 1821, '\p{Jg: yudh}', "");
+    Expect(0, 1821, '\p{^Jg: yudh}', "");
+    Expect(0, 1821, '\P{Jg: yudh}', "");
+    Expect(1, 1821, '\P{^Jg: yudh}', "");
+    Expect(0, 1822, '\p{Jg: yudh}', "");
+    Expect(1, 1822, '\p{^Jg: yudh}', "");
+    Expect(1, 1822, '\P{Jg: yudh}', "");
+    Expect(0, 1822, '\P{^Jg: yudh}', "");
     Expect(1, 1821, '\p{Jg=:\Ayudh\z:}', "");;
     Expect(0, 1822, '\p{Jg=:\Ayudh\z:}', "");;
-    Expect(1, 1821, '\p{Jg: -Yudh}', "");
-    Expect(0, 1821, '\p{^Jg: -Yudh}', "");
-    Expect(0, 1821, '\P{Jg: -Yudh}', "");
-    Expect(1, 1821, '\P{^Jg: -Yudh}', "");
-    Expect(0, 1822, '\p{Jg: -Yudh}', "");
-    Expect(1, 1822, '\p{^Jg: -Yudh}', "");
-    Expect(1, 1822, '\P{Jg: -Yudh}', "");
-    Expect(0, 1822, '\P{^Jg: -Yudh}', "");
-    Error('\p{Is_Joining_Group=:=	 yudh}');
-    Error('\P{Is_Joining_Group=:=	 yudh}');
+    Expect(1, 1821, '\p{Jg=_Yudh}', "");
+    Expect(0, 1821, '\p{^Jg=_Yudh}', "");
+    Expect(0, 1821, '\P{Jg=_Yudh}', "");
+    Expect(1, 1821, '\P{^Jg=_Yudh}', "");
+    Expect(0, 1822, '\p{Jg=_Yudh}', "");
+    Expect(1, 1822, '\p{^Jg=_Yudh}', "");
+    Expect(1, 1822, '\P{Jg=_Yudh}', "");
+    Expect(0, 1822, '\P{^Jg=_Yudh}', "");
+    Error('\p{Is_Joining_Group=_-YUDH/a/}');
+    Error('\P{Is_Joining_Group=_-YUDH/a/}');
     Expect(1, 1821, '\p{Is_Joining_Group=yudh}', "");
     Expect(0, 1821, '\p{^Is_Joining_Group=yudh}', "");
     Expect(0, 1821, '\P{Is_Joining_Group=yudh}', "");
@@ -60921,16 +61503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1822, '\p{^Is_Joining_Group=yudh}', "");
     Expect(1, 1822, '\P{Is_Joining_Group=yudh}', "");
     Expect(0, 1822, '\P{^Is_Joining_Group=yudh}', "");
-    Expect(1, 1821, '\p{Is_Joining_Group=_ Yudh}', "");
-    Expect(0, 1821, '\p{^Is_Joining_Group=_ Yudh}', "");
-    Expect(0, 1821, '\P{Is_Joining_Group=_ Yudh}', "");
-    Expect(1, 1821, '\P{^Is_Joining_Group=_ Yudh}', "");
-    Expect(0, 1822, '\p{Is_Joining_Group=_ Yudh}', "");
-    Expect(1, 1822, '\p{^Is_Joining_Group=_ Yudh}', "");
-    Expect(1, 1822, '\P{Is_Joining_Group=_ Yudh}', "");
-    Expect(0, 1822, '\P{^Is_Joining_Group=_ Yudh}', "");
-    Error('\p{Is_Jg=/a/-_Yudh}');
-    Error('\P{Is_Jg=/a/-_Yudh}');
+    Expect(1, 1821, '\p{Is_Joining_Group:	 	Yudh}', "");
+    Expect(0, 1821, '\p{^Is_Joining_Group:	 	Yudh}', "");
+    Expect(0, 1821, '\P{Is_Joining_Group:	 	Yudh}', "");
+    Expect(1, 1821, '\P{^Is_Joining_Group:	 	Yudh}', "");
+    Expect(0, 1822, '\p{Is_Joining_Group:	 	Yudh}', "");
+    Expect(1, 1822, '\p{^Is_Joining_Group:	 	Yudh}', "");
+    Expect(1, 1822, '\P{Is_Joining_Group:	 	Yudh}', "");
+    Expect(0, 1822, '\P{^Is_Joining_Group:	 	Yudh}', "");
+    Error('\p{Is_Jg=-YUDH/a/}');
+    Error('\P{Is_Jg=-YUDH/a/}');
     Expect(1, 1821, '\p{Is_Jg=yudh}', "");
     Expect(0, 1821, '\p{^Is_Jg=yudh}', "");
     Expect(0, 1821, '\P{Is_Jg=yudh}', "");
@@ -60939,16 +61521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1822, '\p{^Is_Jg=yudh}', "");
     Expect(1, 1822, '\P{Is_Jg=yudh}', "");
     Expect(0, 1822, '\P{^Is_Jg=yudh}', "");
-    Expect(1, 1821, '\p{Is_Jg=_ Yudh}', "");
-    Expect(0, 1821, '\p{^Is_Jg=_ Yudh}', "");
-    Expect(0, 1821, '\P{Is_Jg=_ Yudh}', "");
-    Expect(1, 1821, '\P{^Is_Jg=_ Yudh}', "");
-    Expect(0, 1822, '\p{Is_Jg=_ Yudh}', "");
-    Expect(1, 1822, '\p{^Is_Jg=_ Yudh}', "");
-    Expect(1, 1822, '\P{Is_Jg=_ Yudh}', "");
-    Expect(0, 1822, '\P{^Is_Jg=_ Yudh}', "");
-    Error('\p{Joining_Group:   	:=Yudh_He}');
-    Error('\P{Joining_Group:   	:=Yudh_He}');
+    Expect(1, 1821, '\p{Is_Jg=-	Yudh}', "");
+    Expect(0, 1821, '\p{^Is_Jg=-	Yudh}', "");
+    Expect(0, 1821, '\P{Is_Jg=-	Yudh}', "");
+    Expect(1, 1821, '\P{^Is_Jg=-	Yudh}', "");
+    Expect(0, 1822, '\p{Is_Jg=-	Yudh}', "");
+    Expect(1, 1822, '\p{^Is_Jg=-	Yudh}', "");
+    Expect(1, 1822, '\P{Is_Jg=-	Yudh}', "");
+    Expect(0, 1822, '\P{^Is_Jg=-	Yudh}', "");
+    Error('\p{Joining_Group=_:=Yudh_he}');
+    Error('\P{Joining_Group=_:=Yudh_he}');
     Expect(1, 1822, '\p{Joining_Group=:\AYudh_He\z:}', "");;
     Expect(0, 1823, '\p{Joining_Group=:\AYudh_He\z:}', "");;
     Expect(1, 1822, '\p{Joining_Group=yudhhe}', "");
@@ -60961,16 +61543,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1823, '\P{^Joining_Group=yudhhe}', "");
     Expect(1, 1822, '\p{Joining_Group=:\Ayudhhe\z:}', "");;
     Expect(0, 1823, '\p{Joining_Group=:\Ayudhhe\z:}', "");;
-    Expect(1, 1822, '\p{Joining_Group=	Yudh_He}', "");
-    Expect(0, 1822, '\p{^Joining_Group=	Yudh_He}', "");
-    Expect(0, 1822, '\P{Joining_Group=	Yudh_He}', "");
-    Expect(1, 1822, '\P{^Joining_Group=	Yudh_He}', "");
-    Expect(0, 1823, '\p{Joining_Group=	Yudh_He}', "");
-    Expect(1, 1823, '\p{^Joining_Group=	Yudh_He}', "");
-    Expect(1, 1823, '\P{Joining_Group=	Yudh_He}', "");
-    Expect(0, 1823, '\P{^Joining_Group=	Yudh_He}', "");
-    Error('\p{Jg= _YUDH_He/a/}');
-    Error('\P{Jg= _YUDH_He/a/}');
+    Expect(1, 1822, '\p{Joining_Group= yudh_He}', "");
+    Expect(0, 1822, '\p{^Joining_Group= yudh_He}', "");
+    Expect(0, 1822, '\P{Joining_Group= yudh_He}', "");
+    Expect(1, 1822, '\P{^Joining_Group= yudh_He}', "");
+    Expect(0, 1823, '\p{Joining_Group= yudh_He}', "");
+    Expect(1, 1823, '\p{^Joining_Group= yudh_He}', "");
+    Expect(1, 1823, '\P{Joining_Group= yudh_He}', "");
+    Expect(0, 1823, '\P{^Joining_Group= yudh_He}', "");
+    Error('\p{Jg=:=-YUDH_HE}');
+    Error('\P{Jg=:=-YUDH_HE}');
     Expect(1, 1822, '\p{Jg=:\AYudh_He\z:}', "");;
     Expect(0, 1823, '\p{Jg=:\AYudh_He\z:}', "");;
     Expect(1, 1822, '\p{Jg=yudhhe}', "");
@@ -60983,16 +61565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1823, '\P{^Jg=yudhhe}', "");
     Expect(1, 1822, '\p{Jg=:\Ayudhhe\z:}', "");;
     Expect(0, 1823, '\p{Jg=:\Ayudhhe\z:}', "");;
-    Expect(1, 1822, '\p{Jg=	yudh_he}', "");
-    Expect(0, 1822, '\p{^Jg=	yudh_he}', "");
-    Expect(0, 1822, '\P{Jg=	yudh_he}', "");
-    Expect(1, 1822, '\P{^Jg=	yudh_he}', "");
-    Expect(0, 1823, '\p{Jg=	yudh_he}', "");
-    Expect(1, 1823, '\p{^Jg=	yudh_he}', "");
-    Expect(1, 1823, '\P{Jg=	yudh_he}', "");
-    Expect(0, 1823, '\P{^Jg=	yudh_he}', "");
-    Error('\p{Is_Joining_Group=/a/- YUDH_He}');
-    Error('\P{Is_Joining_Group=/a/- YUDH_He}');
+    Expect(1, 1822, '\p{Jg=-Yudh_He}', "");
+    Expect(0, 1822, '\p{^Jg=-Yudh_He}', "");
+    Expect(0, 1822, '\P{Jg=-Yudh_He}', "");
+    Expect(1, 1822, '\P{^Jg=-Yudh_He}', "");
+    Expect(0, 1823, '\p{Jg=-Yudh_He}', "");
+    Expect(1, 1823, '\p{^Jg=-Yudh_He}', "");
+    Expect(1, 1823, '\P{Jg=-Yudh_He}', "");
+    Expect(0, 1823, '\P{^Jg=-Yudh_He}', "");
+    Error('\p{Is_Joining_Group=:=yudh_HE}');
+    Error('\P{Is_Joining_Group=:=yudh_HE}');
     Expect(1, 1822, '\p{Is_Joining_Group=yudhhe}', "");
     Expect(0, 1822, '\p{^Is_Joining_Group=yudhhe}', "");
     Expect(0, 1822, '\P{Is_Joining_Group=yudhhe}', "");
@@ -61001,16 +61583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1823, '\p{^Is_Joining_Group=yudhhe}', "");
     Expect(1, 1823, '\P{Is_Joining_Group=yudhhe}', "");
     Expect(0, 1823, '\P{^Is_Joining_Group=yudhhe}', "");
-    Expect(1, 1822, '\p{Is_Joining_Group=		yudh_He}', "");
-    Expect(0, 1822, '\p{^Is_Joining_Group=		yudh_He}', "");
-    Expect(0, 1822, '\P{Is_Joining_Group=		yudh_He}', "");
-    Expect(1, 1822, '\P{^Is_Joining_Group=		yudh_He}', "");
-    Expect(0, 1823, '\p{Is_Joining_Group=		yudh_He}', "");
-    Expect(1, 1823, '\p{^Is_Joining_Group=		yudh_He}', "");
-    Expect(1, 1823, '\P{Is_Joining_Group=		yudh_He}', "");
-    Expect(0, 1823, '\P{^Is_Joining_Group=		yudh_He}', "");
-    Error('\p{Is_Jg=_/a/YUDH_HE}');
-    Error('\P{Is_Jg=_/a/YUDH_HE}');
+    Expect(1, 1822, '\p{Is_Joining_Group= 	Yudh_He}', "");
+    Expect(0, 1822, '\p{^Is_Joining_Group= 	Yudh_He}', "");
+    Expect(0, 1822, '\P{Is_Joining_Group= 	Yudh_He}', "");
+    Expect(1, 1822, '\P{^Is_Joining_Group= 	Yudh_He}', "");
+    Expect(0, 1823, '\p{Is_Joining_Group= 	Yudh_He}', "");
+    Expect(1, 1823, '\p{^Is_Joining_Group= 	Yudh_He}', "");
+    Expect(1, 1823, '\P{Is_Joining_Group= 	Yudh_He}', "");
+    Expect(0, 1823, '\P{^Is_Joining_Group= 	Yudh_He}', "");
+    Error('\p{Is_Jg=:=Yudh_HE}');
+    Error('\P{Is_Jg=:=Yudh_HE}');
     Expect(1, 1822, '\p{Is_Jg=yudhhe}', "");
     Expect(0, 1822, '\p{^Is_Jg=yudhhe}', "");
     Expect(0, 1822, '\P{Is_Jg=yudhhe}', "");
@@ -61019,60 +61601,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1823, '\p{^Is_Jg=yudhhe}', "");
     Expect(1, 1823, '\P{Is_Jg=yudhhe}', "");
     Expect(0, 1823, '\P{^Is_Jg=yudhhe}', "");
-    Expect(1, 1822, '\p{Is_Jg:	_Yudh_He}', "");
-    Expect(0, 1822, '\p{^Is_Jg:	_Yudh_He}', "");
-    Expect(0, 1822, '\P{Is_Jg:	_Yudh_He}', "");
-    Expect(1, 1822, '\P{^Is_Jg:	_Yudh_He}', "");
-    Expect(0, 1823, '\p{Is_Jg:	_Yudh_He}', "");
-    Expect(1, 1823, '\p{^Is_Jg:	_Yudh_He}', "");
-    Expect(1, 1823, '\P{Is_Jg:	_Yudh_He}', "");
-    Expect(0, 1823, '\P{^Is_Jg:	_Yudh_He}', "");
-    Error('\p{Joining_Group=:= zain}');
-    Error('\P{Joining_Group=:= zain}');
+    Expect(1, 1822, '\p{Is_Jg=		yudh_he}', "");
+    Expect(0, 1822, '\p{^Is_Jg=		yudh_he}', "");
+    Expect(0, 1822, '\P{Is_Jg=		yudh_he}', "");
+    Expect(1, 1822, '\P{^Is_Jg=		yudh_he}', "");
+    Expect(0, 1823, '\p{Is_Jg=		yudh_he}', "");
+    Expect(1, 1823, '\p{^Is_Jg=		yudh_he}', "");
+    Expect(1, 1823, '\P{Is_Jg=		yudh_he}', "");
+    Expect(0, 1823, '\P{^Is_Jg=		yudh_he}', "");
+    Error('\p{Joining_Group=:=-_zain}');
+    Error('\P{Joining_Group=:=-_zain}');
     Expect(1, 1817, '\p{Joining_Group=:\AZain\z:}', "");;
     Expect(0, 1818, '\p{Joining_Group=:\AZain\z:}', "");;
-    Expect(1, 1817, '\p{Joining_Group:	zain}', "");
-    Expect(0, 1817, '\p{^Joining_Group:	zain}', "");
-    Expect(0, 1817, '\P{Joining_Group:	zain}', "");
-    Expect(1, 1817, '\P{^Joining_Group:	zain}', "");
-    Expect(0, 1818, '\p{Joining_Group:	zain}', "");
-    Expect(1, 1818, '\p{^Joining_Group:	zain}', "");
-    Expect(1, 1818, '\P{Joining_Group:	zain}', "");
-    Expect(0, 1818, '\P{^Joining_Group:	zain}', "");
+    Expect(1, 1817, '\p{Joining_Group=zain}', "");
+    Expect(0, 1817, '\p{^Joining_Group=zain}', "");
+    Expect(0, 1817, '\P{Joining_Group=zain}', "");
+    Expect(1, 1817, '\P{^Joining_Group=zain}', "");
+    Expect(0, 1818, '\p{Joining_Group=zain}', "");
+    Expect(1, 1818, '\p{^Joining_Group=zain}', "");
+    Expect(1, 1818, '\P{Joining_Group=zain}', "");
+    Expect(0, 1818, '\P{^Joining_Group=zain}', "");
     Expect(1, 1817, '\p{Joining_Group=:\Azain\z:}', "");;
     Expect(0, 1818, '\p{Joining_Group=:\Azain\z:}', "");;
-    Expect(1, 1817, '\p{Joining_Group=__ZAIN}', "");
-    Expect(0, 1817, '\p{^Joining_Group=__ZAIN}', "");
-    Expect(0, 1817, '\P{Joining_Group=__ZAIN}', "");
-    Expect(1, 1817, '\P{^Joining_Group=__ZAIN}', "");
-    Expect(0, 1818, '\p{Joining_Group=__ZAIN}', "");
-    Expect(1, 1818, '\p{^Joining_Group=__ZAIN}', "");
-    Expect(1, 1818, '\P{Joining_Group=__ZAIN}', "");
-    Expect(0, 1818, '\P{^Joining_Group=__ZAIN}', "");
-    Error('\p{Jg=	/a/ZAIN}');
-    Error('\P{Jg=	/a/ZAIN}');
+    Expect(1, 1817, '\p{Joining_Group=-Zain}', "");
+    Expect(0, 1817, '\p{^Joining_Group=-Zain}', "");
+    Expect(0, 1817, '\P{Joining_Group=-Zain}', "");
+    Expect(1, 1817, '\P{^Joining_Group=-Zain}', "");
+    Expect(0, 1818, '\p{Joining_Group=-Zain}', "");
+    Expect(1, 1818, '\p{^Joining_Group=-Zain}', "");
+    Expect(1, 1818, '\P{Joining_Group=-Zain}', "");
+    Expect(0, 1818, '\P{^Joining_Group=-Zain}', "");
+    Error('\p{Jg: :=Zain}');
+    Error('\P{Jg: :=Zain}');
     Expect(1, 1817, '\p{Jg=:\AZain\z:}', "");;
     Expect(0, 1818, '\p{Jg=:\AZain\z:}', "");;
-    Expect(1, 1817, '\p{Jg=zain}', "");
-    Expect(0, 1817, '\p{^Jg=zain}', "");
-    Expect(0, 1817, '\P{Jg=zain}', "");
-    Expect(1, 1817, '\P{^Jg=zain}', "");
-    Expect(0, 1818, '\p{Jg=zain}', "");
-    Expect(1, 1818, '\p{^Jg=zain}', "");
-    Expect(1, 1818, '\P{Jg=zain}', "");
-    Expect(0, 1818, '\P{^Jg=zain}', "");
+    Expect(1, 1817, '\p{Jg:	zain}', "");
+    Expect(0, 1817, '\p{^Jg:	zain}', "");
+    Expect(0, 1817, '\P{Jg:	zain}', "");
+    Expect(1, 1817, '\P{^Jg:	zain}', "");
+    Expect(0, 1818, '\p{Jg:	zain}', "");
+    Expect(1, 1818, '\p{^Jg:	zain}', "");
+    Expect(1, 1818, '\P{Jg:	zain}', "");
+    Expect(0, 1818, '\P{^Jg:	zain}', "");
     Expect(1, 1817, '\p{Jg=:\Azain\z:}', "");;
     Expect(0, 1818, '\p{Jg=:\Azain\z:}', "");;
-    Expect(1, 1817, '\p{Jg=Zain}', "");
-    Expect(0, 1817, '\p{^Jg=Zain}', "");
-    Expect(0, 1817, '\P{Jg=Zain}', "");
-    Expect(1, 1817, '\P{^Jg=Zain}', "");
-    Expect(0, 1818, '\p{Jg=Zain}', "");
-    Expect(1, 1818, '\p{^Jg=Zain}', "");
-    Expect(1, 1818, '\P{Jg=Zain}', "");
-    Expect(0, 1818, '\P{^Jg=Zain}', "");
-    Error('\p{Is_Joining_Group=/a/	-zain}');
-    Error('\P{Is_Joining_Group=/a/	-zain}');
+    Expect(1, 1817, '\p{Jg=-	zain}', "");
+    Expect(0, 1817, '\p{^Jg=-	zain}', "");
+    Expect(0, 1817, '\P{Jg=-	zain}', "");
+    Expect(1, 1817, '\P{^Jg=-	zain}', "");
+    Expect(0, 1818, '\p{Jg=-	zain}', "");
+    Expect(1, 1818, '\p{^Jg=-	zain}', "");
+    Expect(1, 1818, '\P{Jg=-	zain}', "");
+    Expect(0, 1818, '\P{^Jg=-	zain}', "");
+    Error('\p{Is_Joining_Group: :=	ZAIN}');
+    Error('\P{Is_Joining_Group: :=	ZAIN}');
     Expect(1, 1817, '\p{Is_Joining_Group=zain}', "");
     Expect(0, 1817, '\p{^Is_Joining_Group=zain}', "");
     Expect(0, 1817, '\P{Is_Joining_Group=zain}', "");
@@ -61081,16 +61663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1818, '\p{^Is_Joining_Group=zain}', "");
     Expect(1, 1818, '\P{Is_Joining_Group=zain}', "");
     Expect(0, 1818, '\P{^Is_Joining_Group=zain}', "");
-    Expect(1, 1817, '\p{Is_Joining_Group=-ZAIN}', "");
-    Expect(0, 1817, '\p{^Is_Joining_Group=-ZAIN}', "");
-    Expect(0, 1817, '\P{Is_Joining_Group=-ZAIN}', "");
-    Expect(1, 1817, '\P{^Is_Joining_Group=-ZAIN}', "");
-    Expect(0, 1818, '\p{Is_Joining_Group=-ZAIN}', "");
-    Expect(1, 1818, '\p{^Is_Joining_Group=-ZAIN}', "");
-    Expect(1, 1818, '\P{Is_Joining_Group=-ZAIN}', "");
-    Expect(0, 1818, '\P{^Is_Joining_Group=-ZAIN}', "");
-    Error('\p{Is_Jg=:=__Zain}');
-    Error('\P{Is_Jg=:=__Zain}');
+    Expect(1, 1817, '\p{Is_Joining_Group=	-Zain}', "");
+    Expect(0, 1817, '\p{^Is_Joining_Group=	-Zain}', "");
+    Expect(0, 1817, '\P{Is_Joining_Group=	-Zain}', "");
+    Expect(1, 1817, '\P{^Is_Joining_Group=	-Zain}', "");
+    Expect(0, 1818, '\p{Is_Joining_Group=	-Zain}', "");
+    Expect(1, 1818, '\p{^Is_Joining_Group=	-Zain}', "");
+    Expect(1, 1818, '\P{Is_Joining_Group=	-Zain}', "");
+    Expect(0, 1818, '\P{^Is_Joining_Group=	-Zain}', "");
+    Error('\p{Is_Jg=-ZAIN:=}');
+    Error('\P{Is_Jg=-ZAIN:=}');
     Expect(1, 1817, '\p{Is_Jg=zain}', "");
     Expect(0, 1817, '\p{^Is_Jg=zain}', "");
     Expect(0, 1817, '\P{Is_Jg=zain}', "");
@@ -61099,16 +61681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1818, '\p{^Is_Jg=zain}', "");
     Expect(1, 1818, '\P{Is_Jg=zain}', "");
     Expect(0, 1818, '\P{^Is_Jg=zain}', "");
-    Expect(1, 1817, '\p{Is_Jg=_ Zain}', "");
-    Expect(0, 1817, '\p{^Is_Jg=_ Zain}', "");
-    Expect(0, 1817, '\P{Is_Jg=_ Zain}', "");
-    Expect(1, 1817, '\P{^Is_Jg=_ Zain}', "");
-    Expect(0, 1818, '\p{Is_Jg=_ Zain}', "");
-    Expect(1, 1818, '\p{^Is_Jg=_ Zain}', "");
-    Expect(1, 1818, '\P{Is_Jg=_ Zain}', "");
-    Expect(0, 1818, '\P{^Is_Jg=_ Zain}', "");
-    Error('\p{Joining_Group=	ZHAIN/a/}');
-    Error('\P{Joining_Group=	ZHAIN/a/}');
+    Expect(1, 1817, '\p{Is_Jg=	-Zain}', "");
+    Expect(0, 1817, '\p{^Is_Jg=	-Zain}', "");
+    Expect(0, 1817, '\P{Is_Jg=	-Zain}', "");
+    Expect(1, 1817, '\P{^Is_Jg=	-Zain}', "");
+    Expect(0, 1818, '\p{Is_Jg=	-Zain}', "");
+    Expect(1, 1818, '\p{^Is_Jg=	-Zain}', "");
+    Expect(1, 1818, '\P{Is_Jg=	-Zain}', "");
+    Expect(0, 1818, '\P{^Is_Jg=	-Zain}', "");
+    Error('\p{Joining_Group=	-Zhain/a/}');
+    Error('\P{Joining_Group=	-Zhain/a/}');
     Expect(1, 1869, '\p{Joining_Group=:\AZhain\z:}', "");;
     Expect(0, 1870, '\p{Joining_Group=:\AZhain\z:}', "");;
     Expect(1, 1869, '\p{Joining_Group=zhain}', "");
@@ -61121,16 +61703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1870, '\P{^Joining_Group=zhain}', "");
     Expect(1, 1869, '\p{Joining_Group=:\Azhain\z:}', "");;
     Expect(0, 1870, '\p{Joining_Group=:\Azhain\z:}', "");;
-    Expect(1, 1869, '\p{Joining_Group: __Zhain}', "");
-    Expect(0, 1869, '\p{^Joining_Group: __Zhain}', "");
-    Expect(0, 1869, '\P{Joining_Group: __Zhain}', "");
-    Expect(1, 1869, '\P{^Joining_Group: __Zhain}', "");
-    Expect(0, 1870, '\p{Joining_Group: __Zhain}', "");
-    Expect(1, 1870, '\p{^Joining_Group: __Zhain}', "");
-    Expect(1, 1870, '\P{Joining_Group: __Zhain}', "");
-    Expect(0, 1870, '\P{^Joining_Group: __Zhain}', "");
-    Error('\p{Jg= :=Zhain}');
-    Error('\P{Jg= :=Zhain}');
+    Expect(1, 1869, '\p{Joining_Group= _Zhain}', "");
+    Expect(0, 1869, '\p{^Joining_Group= _Zhain}', "");
+    Expect(0, 1869, '\P{Joining_Group= _Zhain}', "");
+    Expect(1, 1869, '\P{^Joining_Group= _Zhain}', "");
+    Expect(0, 1870, '\p{Joining_Group= _Zhain}', "");
+    Expect(1, 1870, '\p{^Joining_Group= _Zhain}', "");
+    Expect(1, 1870, '\P{Joining_Group= _Zhain}', "");
+    Expect(0, 1870, '\P{^Joining_Group= _Zhain}', "");
+    Error('\p{Jg=_Zhain/a/}');
+    Error('\P{Jg=_Zhain/a/}');
     Expect(1, 1869, '\p{Jg=:\AZhain\z:}', "");;
     Expect(0, 1870, '\p{Jg=:\AZhain\z:}', "");;
     Expect(1, 1869, '\p{Jg=zhain}', "");
@@ -61143,16 +61725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1870, '\P{^Jg=zhain}', "");
     Expect(1, 1869, '\p{Jg=:\Azhain\z:}', "");;
     Expect(0, 1870, '\p{Jg=:\Azhain\z:}', "");;
-    Expect(1, 1869, '\p{Jg: 		zhain}', "");
-    Expect(0, 1869, '\p{^Jg: 		zhain}', "");
-    Expect(0, 1869, '\P{Jg: 		zhain}', "");
-    Expect(1, 1869, '\P{^Jg: 		zhain}', "");
-    Expect(0, 1870, '\p{Jg: 		zhain}', "");
-    Expect(1, 1870, '\p{^Jg: 		zhain}', "");
-    Expect(1, 1870, '\P{Jg: 		zhain}', "");
-    Expect(0, 1870, '\P{^Jg: 		zhain}', "");
-    Error('\p{Is_Joining_Group=:=	_Zhain}');
-    Error('\P{Is_Joining_Group=:=	_Zhain}');
+    Expect(1, 1869, '\p{Jg=  zhain}', "");
+    Expect(0, 1869, '\p{^Jg=  zhain}', "");
+    Expect(0, 1869, '\P{Jg=  zhain}', "");
+    Expect(1, 1869, '\P{^Jg=  zhain}', "");
+    Expect(0, 1870, '\p{Jg=  zhain}', "");
+    Expect(1, 1870, '\p{^Jg=  zhain}', "");
+    Expect(1, 1870, '\P{Jg=  zhain}', "");
+    Expect(0, 1870, '\P{^Jg=  zhain}', "");
+    Error('\p{Is_Joining_Group=	/a/zhain}');
+    Error('\P{Is_Joining_Group=	/a/zhain}');
     Expect(1, 1869, '\p{Is_Joining_Group=zhain}', "");
     Expect(0, 1869, '\p{^Is_Joining_Group=zhain}', "");
     Expect(0, 1869, '\P{Is_Joining_Group=zhain}', "");
@@ -61161,56 +61743,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1870, '\p{^Is_Joining_Group=zhain}', "");
     Expect(1, 1870, '\P{Is_Joining_Group=zhain}', "");
     Expect(0, 1870, '\P{^Is_Joining_Group=zhain}', "");
-    Expect(1, 1869, '\p{Is_Joining_Group=_-zhain}', "");
-    Expect(0, 1869, '\p{^Is_Joining_Group=_-zhain}', "");
-    Expect(0, 1869, '\P{Is_Joining_Group=_-zhain}', "");
-    Expect(1, 1869, '\P{^Is_Joining_Group=_-zhain}', "");
-    Expect(0, 1870, '\p{Is_Joining_Group=_-zhain}', "");
-    Expect(1, 1870, '\p{^Is_Joining_Group=_-zhain}', "");
-    Expect(1, 1870, '\P{Is_Joining_Group=_-zhain}', "");
-    Expect(0, 1870, '\P{^Is_Joining_Group=_-zhain}', "");
-    Error('\p{Is_Jg=/a/	_zhain}');
-    Error('\P{Is_Jg=/a/	_zhain}');
-    Expect(1, 1869, '\p{Is_Jg: zhain}', "");
-    Expect(0, 1869, '\p{^Is_Jg: zhain}', "");
-    Expect(0, 1869, '\P{Is_Jg: zhain}', "");
-    Expect(1, 1869, '\P{^Is_Jg: zhain}', "");
-    Expect(0, 1870, '\p{Is_Jg: zhain}', "");
-    Expect(1, 1870, '\p{^Is_Jg: zhain}', "");
-    Expect(1, 1870, '\P{Is_Jg: zhain}', "");
-    Expect(0, 1870, '\P{^Is_Jg: zhain}', "");
-    Expect(1, 1869, '\p{Is_Jg= 	zhain}', "");
-    Expect(0, 1869, '\p{^Is_Jg= 	zhain}', "");
-    Expect(0, 1869, '\P{Is_Jg= 	zhain}', "");
-    Expect(1, 1869, '\P{^Is_Jg= 	zhain}', "");
-    Expect(0, 1870, '\p{Is_Jg= 	zhain}', "");
-    Expect(1, 1870, '\p{^Is_Jg= 	zhain}', "");
-    Expect(1, 1870, '\P{Is_Jg= 	zhain}', "");
-    Expect(0, 1870, '\P{^Is_Jg= 	zhain}', "");
-    Error('\p{Join_Control=-/a/no}');
-    Error('\P{Join_Control=-/a/no}');
+    Expect(1, 1869, '\p{Is_Joining_Group: ZHAIN}', "");
+    Expect(0, 1869, '\p{^Is_Joining_Group: ZHAIN}', "");
+    Expect(0, 1869, '\P{Is_Joining_Group: ZHAIN}', "");
+    Expect(1, 1869, '\P{^Is_Joining_Group: ZHAIN}', "");
+    Expect(0, 1870, '\p{Is_Joining_Group: ZHAIN}', "");
+    Expect(1, 1870, '\p{^Is_Joining_Group: ZHAIN}', "");
+    Expect(1, 1870, '\P{Is_Joining_Group: ZHAIN}', "");
+    Expect(0, 1870, '\P{^Is_Joining_Group: ZHAIN}', "");
+    Error('\p{Is_Jg=/a/-_Zhain}');
+    Error('\P{Is_Jg=/a/-_Zhain}');
+    Expect(1, 1869, '\p{Is_Jg=zhain}', "");
+    Expect(0, 1869, '\p{^Is_Jg=zhain}', "");
+    Expect(0, 1869, '\P{Is_Jg=zhain}', "");
+    Expect(1, 1869, '\P{^Is_Jg=zhain}', "");
+    Expect(0, 1870, '\p{Is_Jg=zhain}', "");
+    Expect(1, 1870, '\p{^Is_Jg=zhain}', "");
+    Expect(1, 1870, '\P{Is_Jg=zhain}', "");
+    Expect(0, 1870, '\P{^Is_Jg=zhain}', "");
+    Expect(1, 1869, '\p{Is_Jg=		Zhain}', "");
+    Expect(0, 1869, '\p{^Is_Jg=		Zhain}', "");
+    Expect(0, 1869, '\P{Is_Jg=		Zhain}', "");
+    Expect(1, 1869, '\P{^Is_Jg=		Zhain}', "");
+    Expect(0, 1870, '\p{Is_Jg=		Zhain}', "");
+    Expect(1, 1870, '\p{^Is_Jg=		Zhain}', "");
+    Expect(1, 1870, '\P{Is_Jg=		Zhain}', "");
+    Expect(0, 1870, '\P{^Is_Jg=		Zhain}', "");
+    Error('\p{Join_Control=/a/--NO}');
+    Error('\P{Join_Control=/a/--NO}');
     Expect(1, 8206, '\p{Join_Control=:\ANo\z:}', "");;
     Expect(0, 8205, '\p{Join_Control=:\ANo\z:}', "");;
-    Expect(1, 8206, '\p{Join_Control:	no}', "");
-    Expect(0, 8206, '\p{^Join_Control:	no}', "");
-    Expect(0, 8206, '\P{Join_Control:	no}', "");
-    Expect(1, 8206, '\P{^Join_Control:	no}', "");
-    Expect(0, 8205, '\p{Join_Control:	no}', "");
-    Expect(1, 8205, '\p{^Join_Control:	no}', "");
-    Expect(1, 8205, '\P{Join_Control:	no}', "");
-    Expect(0, 8205, '\P{^Join_Control:	no}', "");
+    Expect(1, 8206, '\p{Join_Control=no}', "");
+    Expect(0, 8206, '\p{^Join_Control=no}', "");
+    Expect(0, 8206, '\P{Join_Control=no}', "");
+    Expect(1, 8206, '\P{^Join_Control=no}', "");
+    Expect(0, 8205, '\p{Join_Control=no}', "");
+    Expect(1, 8205, '\p{^Join_Control=no}', "");
+    Expect(1, 8205, '\P{Join_Control=no}', "");
+    Expect(0, 8205, '\P{^Join_Control=no}', "");
     Expect(1, 8206, '\p{Join_Control=:\Ano\z:}', "");;
     Expect(0, 8205, '\p{Join_Control=:\Ano\z:}', "");;
-    Expect(1, 8206, '\p{Join_Control=  No}', "");
-    Expect(0, 8206, '\p{^Join_Control=  No}', "");
-    Expect(0, 8206, '\P{Join_Control=  No}', "");
-    Expect(1, 8206, '\P{^Join_Control=  No}', "");
-    Expect(0, 8205, '\p{Join_Control=  No}', "");
-    Expect(1, 8205, '\p{^Join_Control=  No}', "");
-    Expect(1, 8205, '\P{Join_Control=  No}', "");
-    Expect(0, 8205, '\P{^Join_Control=  No}', "");
-    Error('\p{Join_C= _N/a/}');
-    Error('\P{Join_C= _N/a/}');
+    Expect(1, 8206, '\p{Join_Control=__NO}', "");
+    Expect(0, 8206, '\p{^Join_Control=__NO}', "");
+    Expect(0, 8206, '\P{Join_Control=__NO}', "");
+    Expect(1, 8206, '\P{^Join_Control=__NO}', "");
+    Expect(0, 8205, '\p{Join_Control=__NO}', "");
+    Expect(1, 8205, '\p{^Join_Control=__NO}', "");
+    Expect(1, 8205, '\P{Join_Control=__NO}', "");
+    Expect(0, 8205, '\P{^Join_Control=__NO}', "");
+    Error('\p{Join_C=--n:=}');
+    Error('\P{Join_C=--n:=}');
     Expect(1, 8206, '\p{Join_C=:\AN\z:}', "");;
     Expect(0, 8205, '\p{Join_C=:\AN\z:}', "");;
     Expect(1, 8206, '\p{Join_C=n}', "");
@@ -61223,16 +61805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8205, '\P{^Join_C=n}', "");
     Expect(1, 8206, '\p{Join_C=:\An\z:}', "");;
     Expect(0, 8205, '\p{Join_C=:\An\z:}', "");;
-    Expect(1, 8206, '\p{Join_C=	N}', "");
-    Expect(0, 8206, '\p{^Join_C=	N}', "");
-    Expect(0, 8206, '\P{Join_C=	N}', "");
-    Expect(1, 8206, '\P{^Join_C=	N}', "");
-    Expect(0, 8205, '\p{Join_C=	N}', "");
-    Expect(1, 8205, '\p{^Join_C=	N}', "");
-    Expect(1, 8205, '\P{Join_C=	N}', "");
-    Expect(0, 8205, '\P{^Join_C=	N}', "");
-    Error('\p{Is_Join_Control=__F/a/}');
-    Error('\P{Is_Join_Control=__F/a/}');
+    Expect(1, 8206, '\p{Join_C=_N}', "");
+    Expect(0, 8206, '\p{^Join_C=_N}', "");
+    Expect(0, 8206, '\P{Join_C=_N}', "");
+    Expect(1, 8206, '\P{^Join_C=_N}', "");
+    Expect(0, 8205, '\p{Join_C=_N}', "");
+    Expect(1, 8205, '\p{^Join_C=_N}', "");
+    Expect(1, 8205, '\P{Join_C=_N}', "");
+    Expect(0, 8205, '\P{^Join_C=_N}', "");
+    Error('\p{Is_Join_Control=-/a/f}');
+    Error('\P{Is_Join_Control=-/a/f}');
     Expect(1, 8206, '\p{Is_Join_Control=f}', "");
     Expect(0, 8206, '\p{^Is_Join_Control=f}', "");
     Expect(0, 8206, '\P{Is_Join_Control=f}', "");
@@ -61241,16 +61823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8205, '\p{^Is_Join_Control=f}', "");
     Expect(1, 8205, '\P{Is_Join_Control=f}', "");
     Expect(0, 8205, '\P{^Is_Join_Control=f}', "");
-    Expect(1, 8206, '\p{Is_Join_Control=- F}', "");
-    Expect(0, 8206, '\p{^Is_Join_Control=- F}', "");
-    Expect(0, 8206, '\P{Is_Join_Control=- F}', "");
-    Expect(1, 8206, '\P{^Is_Join_Control=- F}', "");
-    Expect(0, 8205, '\p{Is_Join_Control=- F}', "");
-    Expect(1, 8205, '\p{^Is_Join_Control=- F}', "");
-    Expect(1, 8205, '\P{Is_Join_Control=- F}', "");
-    Expect(0, 8205, '\P{^Is_Join_Control=- F}', "");
-    Error('\p{Is_Join_C=/a/ False}');
-    Error('\P{Is_Join_C=/a/ False}');
+    Expect(1, 8206, '\p{Is_Join_Control=-F}', "");
+    Expect(0, 8206, '\p{^Is_Join_Control=-F}', "");
+    Expect(0, 8206, '\P{Is_Join_Control=-F}', "");
+    Expect(1, 8206, '\P{^Is_Join_Control=-F}', "");
+    Expect(0, 8205, '\p{Is_Join_Control=-F}', "");
+    Expect(1, 8205, '\p{^Is_Join_Control=-F}', "");
+    Expect(1, 8205, '\P{Is_Join_Control=-F}', "");
+    Expect(0, 8205, '\P{^Is_Join_Control=-F}', "");
+    Error('\p{Is_Join_C=	:=False}');
+    Error('\P{Is_Join_C=	:=False}');
     Expect(1, 8206, '\p{Is_Join_C=false}', "");
     Expect(0, 8206, '\p{^Is_Join_C=false}', "");
     Expect(0, 8206, '\P{Is_Join_C=false}', "");
@@ -61259,16 +61841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8205, '\p{^Is_Join_C=false}', "");
     Expect(1, 8205, '\P{Is_Join_C=false}', "");
     Expect(0, 8205, '\P{^Is_Join_C=false}', "");
-    Expect(1, 8206, '\p{Is_Join_C= _False}', "");
-    Expect(0, 8206, '\p{^Is_Join_C= _False}', "");
-    Expect(0, 8206, '\P{Is_Join_C= _False}', "");
-    Expect(1, 8206, '\P{^Is_Join_C= _False}', "");
-    Expect(0, 8205, '\p{Is_Join_C= _False}', "");
-    Expect(1, 8205, '\p{^Is_Join_C= _False}', "");
-    Expect(1, 8205, '\P{Is_Join_C= _False}', "");
-    Expect(0, 8205, '\P{^Is_Join_C= _False}', "");
-    Error('\p{Join_Control=	 YES/a/}');
-    Error('\P{Join_Control=	 YES/a/}');
+    Expect(1, 8206, '\p{Is_Join_C: 	false}', "");
+    Expect(0, 8206, '\p{^Is_Join_C: 	false}', "");
+    Expect(0, 8206, '\P{Is_Join_C: 	false}', "");
+    Expect(1, 8206, '\P{^Is_Join_C: 	false}', "");
+    Expect(0, 8205, '\p{Is_Join_C: 	false}', "");
+    Expect(1, 8205, '\p{^Is_Join_C: 	false}', "");
+    Expect(1, 8205, '\P{Is_Join_C: 	false}', "");
+    Expect(0, 8205, '\P{^Is_Join_C: 	false}', "");
+    Error('\p{Join_Control=:= yes}');
+    Error('\P{Join_Control=:= yes}');
     Expect(1, 8205, '\p{Join_Control=:\AYes\z:}', "");;
     Expect(0, 8206, '\p{Join_Control=:\AYes\z:}', "");;
     Expect(1, 8205, '\p{Join_Control=yes}', "");
@@ -61281,16 +61863,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^Join_Control=yes}', "");
     Expect(1, 8205, '\p{Join_Control=:\Ayes\z:}', "");;
     Expect(0, 8206, '\p{Join_Control=:\Ayes\z:}', "");;
-    Expect(1, 8205, '\p{Join_Control=	-Yes}', "");
-    Expect(0, 8205, '\p{^Join_Control=	-Yes}', "");
-    Expect(0, 8205, '\P{Join_Control=	-Yes}', "");
-    Expect(1, 8205, '\P{^Join_Control=	-Yes}', "");
-    Expect(0, 8206, '\p{Join_Control=	-Yes}', "");
-    Expect(1, 8206, '\p{^Join_Control=	-Yes}', "");
-    Expect(1, 8206, '\P{Join_Control=	-Yes}', "");
-    Expect(0, 8206, '\P{^Join_Control=	-Yes}', "");
-    Error('\p{Join_C=_ Y:=}');
-    Error('\P{Join_C=_ Y:=}');
+    Expect(1, 8205, '\p{Join_Control=	Yes}', "");
+    Expect(0, 8205, '\p{^Join_Control=	Yes}', "");
+    Expect(0, 8205, '\P{Join_Control=	Yes}', "");
+    Expect(1, 8205, '\P{^Join_Control=	Yes}', "");
+    Expect(0, 8206, '\p{Join_Control=	Yes}', "");
+    Expect(1, 8206, '\p{^Join_Control=	Yes}', "");
+    Expect(1, 8206, '\P{Join_Control=	Yes}', "");
+    Expect(0, 8206, '\P{^Join_Control=	Yes}', "");
+    Error('\p{Join_C=/a/__y}');
+    Error('\P{Join_C=/a/__y}');
     Expect(1, 8205, '\p{Join_C=:\AY\z:}', "");;
     Expect(0, 8206, '\p{Join_C=:\AY\z:}', "");;
     Expect(1, 8205, '\p{Join_C=y}', "");
@@ -61303,14 +61885,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^Join_C=y}', "");
     Expect(1, 8205, '\p{Join_C=:\Ay\z:}', "");;
     Expect(0, 8206, '\p{Join_C=:\Ay\z:}', "");;
-    Expect(1, 8205, '\p{Join_C=-Y}', "");
-    Expect(0, 8205, '\p{^Join_C=-Y}', "");
-    Expect(0, 8205, '\P{Join_C=-Y}', "");
-    Expect(1, 8205, '\P{^Join_C=-Y}', "");
-    Expect(0, 8206, '\p{Join_C=-Y}', "");
-    Expect(1, 8206, '\p{^Join_C=-Y}', "");
-    Expect(1, 8206, '\P{Join_C=-Y}', "");
-    Expect(0, 8206, '\P{^Join_C=-Y}', "");
+    Expect(1, 8205, '\p{Join_C= -Y}', "");
+    Expect(0, 8205, '\p{^Join_C= -Y}', "");
+    Expect(0, 8205, '\P{Join_C= -Y}', "");
+    Expect(1, 8205, '\P{^Join_C= -Y}', "");
+    Expect(0, 8206, '\p{Join_C= -Y}', "");
+    Expect(1, 8206, '\p{^Join_C= -Y}', "");
+    Expect(1, 8206, '\P{Join_C= -Y}', "");
+    Expect(0, 8206, '\P{^Join_C= -Y}', "");
     Error('\p{Is_Join_Control=/a/T}');
     Error('\P{Is_Join_Control=/a/T}');
     Expect(1, 8205, '\p{Is_Join_Control=t}', "");
@@ -61321,16 +61903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Join_Control=t}', "");
     Expect(1, 8206, '\P{Is_Join_Control=t}', "");
     Expect(0, 8206, '\P{^Is_Join_Control=t}', "");
-    Expect(1, 8205, '\p{Is_Join_Control=-_T}', "");
-    Expect(0, 8205, '\p{^Is_Join_Control=-_T}', "");
-    Expect(0, 8205, '\P{Is_Join_Control=-_T}', "");
-    Expect(1, 8205, '\P{^Is_Join_Control=-_T}', "");
-    Expect(0, 8206, '\p{Is_Join_Control=-_T}', "");
-    Expect(1, 8206, '\p{^Is_Join_Control=-_T}', "");
-    Expect(1, 8206, '\P{Is_Join_Control=-_T}', "");
-    Expect(0, 8206, '\P{^Is_Join_Control=-_T}', "");
-    Error('\p{Is_Join_C=	/a/TRUE}');
-    Error('\P{Is_Join_C=	/a/TRUE}');
+    Expect(1, 8205, '\p{Is_Join_Control=-T}', "");
+    Expect(0, 8205, '\p{^Is_Join_Control=-T}', "");
+    Expect(0, 8205, '\P{Is_Join_Control=-T}', "");
+    Expect(1, 8205, '\P{^Is_Join_Control=-T}', "");
+    Expect(0, 8206, '\p{Is_Join_Control=-T}', "");
+    Expect(1, 8206, '\p{^Is_Join_Control=-T}', "");
+    Expect(1, 8206, '\P{Is_Join_Control=-T}', "");
+    Expect(0, 8206, '\P{^Is_Join_Control=-T}', "");
+    Error('\p{Is_Join_C=:=__true}');
+    Error('\P{Is_Join_C=:=__true}');
     Expect(1, 8205, '\p{Is_Join_C=true}', "");
     Expect(0, 8205, '\p{^Is_Join_C=true}', "");
     Expect(0, 8205, '\P{Is_Join_C=true}', "");
@@ -61339,30 +61921,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Join_C=true}', "");
     Expect(1, 8206, '\P{Is_Join_C=true}', "");
     Expect(0, 8206, '\P{^Is_Join_C=true}', "");
-    Expect(1, 8205, '\p{Is_Join_C=_-TRUE}', "");
-    Expect(0, 8205, '\p{^Is_Join_C=_-TRUE}', "");
-    Expect(0, 8205, '\P{Is_Join_C=_-TRUE}', "");
-    Expect(1, 8205, '\P{^Is_Join_C=_-TRUE}', "");
-    Expect(0, 8206, '\p{Is_Join_C=_-TRUE}', "");
-    Expect(1, 8206, '\p{^Is_Join_C=_-TRUE}', "");
-    Expect(1, 8206, '\P{Is_Join_C=_-TRUE}', "");
-    Expect(0, 8206, '\P{^Is_Join_C=_-TRUE}', "");
+    Expect(1, 8205, '\p{Is_Join_C=__TRUE}', "");
+    Expect(0, 8205, '\p{^Is_Join_C=__TRUE}', "");
+    Expect(0, 8205, '\P{Is_Join_C=__TRUE}', "");
+    Expect(1, 8205, '\P{^Is_Join_C=__TRUE}', "");
+    Expect(0, 8206, '\p{Is_Join_C=__TRUE}', "");
+    Expect(1, 8206, '\p{^Is_Join_C=__TRUE}', "");
+    Expect(1, 8206, '\P{Is_Join_C=__TRUE}', "");
+    Expect(0, 8206, '\P{^Is_Join_C=__TRUE}', "");
     Error('\p{jamoshortname}');
     Error('\P{jamoshortname}');
     Error('\p{jsn}');
     Error('\P{jsn}');
-    Error('\p{Jamo_Short_Name=A}');
-    Error('\P{Jamo_Short_Name=A}');
-    Error('\p{JSN=A}');
-    Error('\P{JSN=A}');
-    Error('\p{Is_Jamo_Short_Name:	A}');
-    Error('\P{Is_Jamo_Short_Name:	A}');
+    Error('\p{Jamo_Short_Name:A}');
+    Error('\P{Jamo_Short_Name:A}');
+    Error('\p{JSN:A}');
+    Error('\P{JSN:A}');
+    Error('\p{Is_Jamo_Short_Name=A}');
+    Error('\P{Is_Jamo_Short_Name=A}');
     Error('\p{Is_JSN=A}');
     Error('\P{Is_JSN=A}');
     Error('\p{Jamo_Short_Name=AE}');
     Error('\P{Jamo_Short_Name=AE}');
-    Error('\p{JSN=AE}');
-    Error('\P{JSN=AE}');
+    Error('\p{JSN:	AE}');
+    Error('\P{JSN:	AE}');
     Error('\p{Is_Jamo_Short_Name=AE}');
     Error('\P{Is_Jamo_Short_Name=AE}');
     Error('\p{Is_JSN=AE}');
@@ -61373,32 +61955,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{JSN=B}');
     Error('\p{Is_Jamo_Short_Name=B}');
     Error('\P{Is_Jamo_Short_Name=B}');
-    Error('\p{Is_JSN:B}');
-    Error('\P{Is_JSN:B}');
-    Error('\p{Jamo_Short_Name:	BB}');
-    Error('\P{Jamo_Short_Name:	BB}');
+    Error('\p{Is_JSN=B}');
+    Error('\P{Is_JSN=B}');
+    Error('\p{Jamo_Short_Name=BB}');
+    Error('\P{Jamo_Short_Name=BB}');
     Error('\p{JSN=BB}');
     Error('\P{JSN=BB}');
     Error('\p{Is_Jamo_Short_Name=BB}');
     Error('\P{Is_Jamo_Short_Name=BB}');
     Error('\p{Is_JSN=BB}');
     Error('\P{Is_JSN=BB}');
-    Error('\p{Jamo_Short_Name:   BS}');
-    Error('\P{Jamo_Short_Name:   BS}');
-    Error('\p{JSN=BS}');
-    Error('\P{JSN=BS}');
-    Error('\p{Is_Jamo_Short_Name=BS}');
-    Error('\P{Is_Jamo_Short_Name=BS}');
+    Error('\p{Jamo_Short_Name=BS}');
+    Error('\P{Jamo_Short_Name=BS}');
+    Error('\p{JSN:	BS}');
+    Error('\P{JSN:	BS}');
+    Error('\p{Is_Jamo_Short_Name: BS}');
+    Error('\P{Is_Jamo_Short_Name: BS}');
     Error('\p{Is_JSN=BS}');
     Error('\P{Is_JSN=BS}');
     Error('\p{Jamo_Short_Name=C}');
     Error('\P{Jamo_Short_Name=C}');
     Error('\p{JSN=C}');
     Error('\P{JSN=C}');
-    Error('\p{Is_Jamo_Short_Name=C}');
-    Error('\P{Is_Jamo_Short_Name=C}');
-    Error('\p{Is_JSN: C}');
-    Error('\P{Is_JSN: C}');
+    Error('\p{Is_Jamo_Short_Name:	C}');
+    Error('\P{Is_Jamo_Short_Name:	C}');
+    Error('\p{Is_JSN=C}');
+    Error('\P{Is_JSN=C}');
     Error('\p{Jamo_Short_Name=D}');
     Error('\P{Jamo_Short_Name=D}');
     Error('\p{JSN=D}');
@@ -61419,8 +62001,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Jamo_Short_Name=E}');
     Error('\p{JSN=E}');
     Error('\P{JSN=E}');
-    Error('\p{Is_Jamo_Short_Name:E}');
-    Error('\P{Is_Jamo_Short_Name:E}');
+    Error('\p{Is_Jamo_Short_Name=E}');
+    Error('\P{Is_Jamo_Short_Name=E}');
     Error('\p{Is_JSN=E}');
     Error('\P{Is_JSN=E}');
     Error('\p{Jamo_Short_Name=EO}');
@@ -61441,14 +62023,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_JSN=EU}');
     Error('\p{Jamo_Short_Name=G}');
     Error('\P{Jamo_Short_Name=G}');
-    Error('\p{JSN:G}');
-    Error('\P{JSN:G}');
-    Error('\p{Is_Jamo_Short_Name:   G}');
-    Error('\P{Is_Jamo_Short_Name:   G}');
+    Error('\p{JSN=G}');
+    Error('\P{JSN=G}');
+    Error('\p{Is_Jamo_Short_Name:G}');
+    Error('\P{Is_Jamo_Short_Name:G}');
     Error('\p{Is_JSN=G}');
     Error('\P{Is_JSN=G}');
-    Error('\p{Jamo_Short_Name=GG}');
-    Error('\P{Jamo_Short_Name=GG}');
+    Error('\p{Jamo_Short_Name:GG}');
+    Error('\P{Jamo_Short_Name:GG}');
     Error('\p{JSN=GG}');
     Error('\P{JSN=GG}');
     Error('\p{Is_Jamo_Short_Name=GG}');
@@ -61457,32 +62039,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_JSN=GG}');
     Error('\p{Jamo_Short_Name=GS}');
     Error('\P{Jamo_Short_Name=GS}');
-    Error('\p{JSN:GS}');
-    Error('\P{JSN:GS}');
+    Error('\p{JSN=GS}');
+    Error('\P{JSN=GS}');
     Error('\p{Is_Jamo_Short_Name=GS}');
     Error('\P{Is_Jamo_Short_Name=GS}');
-    Error('\p{Is_JSN=GS}');
-    Error('\P{Is_JSN=GS}');
+    Error('\p{Is_JSN:	GS}');
+    Error('\P{Is_JSN:	GS}');
     Error('\p{Jamo_Short_Name=H}');
     Error('\P{Jamo_Short_Name=H}');
     Error('\p{JSN=H}');
     Error('\P{JSN=H}');
     Error('\p{Is_Jamo_Short_Name=H}');
     Error('\P{Is_Jamo_Short_Name=H}');
-    Error('\p{Is_JSN: H}');
-    Error('\P{Is_JSN: H}');
+    Error('\p{Is_JSN:   H}');
+    Error('\P{Is_JSN:   H}');
     Error('\p{Jamo_Short_Name=I}');
     Error('\P{Jamo_Short_Name=I}');
-    Error('\p{JSN:I}');
-    Error('\P{JSN:I}');
+    Error('\p{JSN=I}');
+    Error('\P{JSN=I}');
     Error('\p{Is_Jamo_Short_Name=I}');
     Error('\P{Is_Jamo_Short_Name=I}');
     Error('\p{Is_JSN=I}');
     Error('\P{Is_JSN=I}');
-    Error('\p{Jamo_Short_Name: J}');
-    Error('\P{Jamo_Short_Name: J}');
-    Error('\p{JSN:	J}');
-    Error('\P{JSN:	J}');
+    Error('\p{Jamo_Short_Name=J}');
+    Error('\P{Jamo_Short_Name=J}');
+    Error('\p{JSN=J}');
+    Error('\P{JSN=J}');
     Error('\p{Is_Jamo_Short_Name=J}');
     Error('\P{Is_Jamo_Short_Name=J}');
     Error('\p{Is_JSN=J}');
@@ -61491,24 +62073,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Jamo_Short_Name=JJ}');
     Error('\p{JSN=JJ}');
     Error('\P{JSN=JJ}');
-    Error('\p{Is_Jamo_Short_Name:	JJ}');
-    Error('\P{Is_Jamo_Short_Name:	JJ}');
+    Error('\p{Is_Jamo_Short_Name=JJ}');
+    Error('\P{Is_Jamo_Short_Name=JJ}');
     Error('\p{Is_JSN=JJ}');
     Error('\P{Is_JSN=JJ}');
-    Error('\p{Jamo_Short_Name: K}');
-    Error('\P{Jamo_Short_Name: K}');
+    Error('\p{Jamo_Short_Name=K}');
+    Error('\P{Jamo_Short_Name=K}');
     Error('\p{JSN=K}');
     Error('\P{JSN=K}');
     Error('\p{Is_Jamo_Short_Name=K}');
     Error('\P{Is_Jamo_Short_Name=K}');
     Error('\p{Is_JSN=K}');
     Error('\P{Is_JSN=K}');
-    Error('\p{Jamo_Short_Name=L}');
-    Error('\P{Jamo_Short_Name=L}');
+    Error('\p{Jamo_Short_Name: L}');
+    Error('\P{Jamo_Short_Name: L}');
     Error('\p{JSN=L}');
     Error('\P{JSN=L}');
-    Error('\p{Is_Jamo_Short_Name=L}');
-    Error('\P{Is_Jamo_Short_Name=L}');
+    Error('\p{Is_Jamo_Short_Name:   L}');
+    Error('\P{Is_Jamo_Short_Name:   L}');
     Error('\p{Is_JSN=L}');
     Error('\P{Is_JSN=L}');
     Error('\p{Jamo_Short_Name=LB}');
@@ -61527,24 +62109,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Jamo_Short_Name=LG}');
     Error('\p{Is_JSN=LG}');
     Error('\P{Is_JSN=LG}');
-    Error('\p{Jamo_Short_Name:   LH}');
-    Error('\P{Jamo_Short_Name:   LH}');
+    Error('\p{Jamo_Short_Name=LH}');
+    Error('\P{Jamo_Short_Name=LH}');
     Error('\p{JSN=LH}');
     Error('\P{JSN=LH}');
-    Error('\p{Is_Jamo_Short_Name=LH}');
-    Error('\P{Is_Jamo_Short_Name=LH}');
-    Error('\p{Is_JSN:   LH}');
-    Error('\P{Is_JSN:   LH}');
+    Error('\p{Is_Jamo_Short_Name:   LH}');
+    Error('\P{Is_Jamo_Short_Name:   LH}');
+    Error('\p{Is_JSN=LH}');
+    Error('\P{Is_JSN=LH}');
     Error('\p{Jamo_Short_Name=LM}');
     Error('\P{Jamo_Short_Name=LM}');
     Error('\p{JSN=LM}');
     Error('\P{JSN=LM}');
-    Error('\p{Is_Jamo_Short_Name:   LM}');
-    Error('\P{Is_Jamo_Short_Name:   LM}');
+    Error('\p{Is_Jamo_Short_Name=LM}');
+    Error('\P{Is_Jamo_Short_Name=LM}');
     Error('\p{Is_JSN=LM}');
     Error('\P{Is_JSN=LM}');
-    Error('\p{Jamo_Short_Name: LP}');
-    Error('\P{Jamo_Short_Name: LP}');
+    Error('\p{Jamo_Short_Name=LP}');
+    Error('\P{Jamo_Short_Name=LP}');
     Error('\p{JSN=LP}');
     Error('\P{JSN=LP}');
     Error('\p{Is_Jamo_Short_Name=LP}');
@@ -61555,10 +62137,10 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Jamo_Short_Name=LS}');
     Error('\p{JSN=LS}');
     Error('\P{JSN=LS}');
-    Error('\p{Is_Jamo_Short_Name: LS}');
-    Error('\P{Is_Jamo_Short_Name: LS}');
-    Error('\p{Is_JSN=LS}');
-    Error('\P{Is_JSN=LS}');
+    Error('\p{Is_Jamo_Short_Name=LS}');
+    Error('\P{Is_Jamo_Short_Name=LS}');
+    Error('\p{Is_JSN:	LS}');
+    Error('\P{Is_JSN:	LS}');
     Error('\p{Jamo_Short_Name=LT}');
     Error('\P{Jamo_Short_Name=LT}');
     Error('\p{JSN=LT}');
@@ -61575,32 +62157,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Jamo_Short_Name=M}');
     Error('\p{Is_JSN=M}');
     Error('\P{Is_JSN=M}');
-    Error('\p{Jamo_Short_Name:N}');
-    Error('\P{Jamo_Short_Name:N}');
+    Error('\p{Jamo_Short_Name=N}');
+    Error('\P{Jamo_Short_Name=N}');
     Error('\p{JSN=N}');
     Error('\P{JSN=N}');
-    Error('\p{Is_Jamo_Short_Name:   N}');
-    Error('\P{Is_Jamo_Short_Name:   N}');
+    Error('\p{Is_Jamo_Short_Name=N}');
+    Error('\P{Is_Jamo_Short_Name=N}');
     Error('\p{Is_JSN=N}');
     Error('\P{Is_JSN=N}');
     Error('\p{Jamo_Short_Name=NG}');
     Error('\P{Jamo_Short_Name=NG}');
     Error('\p{JSN=NG}');
     Error('\P{JSN=NG}');
-    Error('\p{Is_Jamo_Short_Name=NG}');
-    Error('\P{Is_Jamo_Short_Name=NG}');
-    Error('\p{Is_JSN=NG}');
-    Error('\P{Is_JSN=NG}');
+    Error('\p{Is_Jamo_Short_Name: NG}');
+    Error('\P{Is_Jamo_Short_Name: NG}');
+    Error('\p{Is_JSN: NG}');
+    Error('\P{Is_JSN: NG}');
     Error('\p{Jamo_Short_Name=NH}');
     Error('\P{Jamo_Short_Name=NH}');
-    Error('\p{JSN=NH}');
-    Error('\P{JSN=NH}');
+    Error('\p{JSN: NH}');
+    Error('\P{JSN: NH}');
     Error('\p{Is_Jamo_Short_Name=NH}');
     Error('\P{Is_Jamo_Short_Name=NH}');
     Error('\p{Is_JSN=NH}');
     Error('\P{Is_JSN=NH}');
-    Error('\p{Jamo_Short_Name:NJ}');
-    Error('\P{Jamo_Short_Name:NJ}');
+    Error('\p{Jamo_Short_Name=NJ}');
+    Error('\P{Jamo_Short_Name=NJ}');
     Error('\p{JSN=NJ}');
     Error('\P{JSN=NJ}');
     Error('\p{Is_Jamo_Short_Name=NJ}');
@@ -61611,10 +62193,10 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Jamo_Short_Name=O}');
     Error('\p{JSN=O}');
     Error('\P{JSN=O}');
-    Error('\p{Is_Jamo_Short_Name:   O}');
-    Error('\P{Is_Jamo_Short_Name:   O}');
-    Error('\p{Is_JSN=O}');
-    Error('\P{Is_JSN=O}');
+    Error('\p{Is_Jamo_Short_Name=O}');
+    Error('\P{Is_Jamo_Short_Name=O}');
+    Error('\p{Is_JSN:   O}');
+    Error('\P{Is_JSN:   O}');
     Error('\p{Jamo_Short_Name=OE}');
     Error('\P{Jamo_Short_Name=OE}');
     Error('\p{JSN=OE}');
@@ -61623,8 +62205,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Jamo_Short_Name=OE}');
     Error('\p{Is_JSN=OE}');
     Error('\P{Is_JSN=OE}');
-    Error('\p{Jamo_Short_Name=P}');
-    Error('\P{Jamo_Short_Name=P}');
+    Error('\p{Jamo_Short_Name: P}');
+    Error('\P{Jamo_Short_Name: P}');
     Error('\p{JSN=P}');
     Error('\P{JSN=P}');
     Error('\p{Is_Jamo_Short_Name=P}');
@@ -61637,14 +62219,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{JSN=R}');
     Error('\p{Is_Jamo_Short_Name=R}');
     Error('\P{Is_Jamo_Short_Name=R}');
-    Error('\p{Is_JSN:	R}');
-    Error('\P{Is_JSN:	R}');
+    Error('\p{Is_JSN=R}');
+    Error('\P{Is_JSN=R}');
     Error('\p{Jamo_Short_Name=S}');
     Error('\P{Jamo_Short_Name=S}');
     Error('\p{JSN=S}');
     Error('\P{JSN=S}');
-    Error('\p{Is_Jamo_Short_Name:	S}');
-    Error('\P{Is_Jamo_Short_Name:	S}');
+    Error('\p{Is_Jamo_Short_Name=S}');
+    Error('\P{Is_Jamo_Short_Name=S}');
     Error('\p{Is_JSN=S}');
     Error('\P{Is_JSN=S}');
     Error('\p{Jamo_Short_Name=SS}');
@@ -61653,12 +62235,12 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{JSN=SS}');
     Error('\p{Is_Jamo_Short_Name=SS}');
     Error('\P{Is_Jamo_Short_Name=SS}');
-    Error('\p{Is_JSN=SS}');
-    Error('\P{Is_JSN=SS}');
+    Error('\p{Is_JSN: SS}');
+    Error('\P{Is_JSN: SS}');
     Error('\p{Jamo_Short_Name=T}');
     Error('\P{Jamo_Short_Name=T}');
-    Error('\p{JSN:	T}');
-    Error('\P{JSN:	T}');
+    Error('\p{JSN=T}');
+    Error('\P{JSN=T}');
     Error('\p{Is_Jamo_Short_Name=T}');
     Error('\P{Is_Jamo_Short_Name=T}');
     Error('\p{Is_JSN=T}');
@@ -61687,10 +62269,10 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Jamo_Short_Name=WAE}');
     Error('\p{Is_JSN=WAE}');
     Error('\P{Is_JSN=WAE}');
-    Error('\p{Jamo_Short_Name=WE}');
-    Error('\P{Jamo_Short_Name=WE}');
-    Error('\p{JSN=WE}');
-    Error('\P{JSN=WE}');
+    Error('\p{Jamo_Short_Name: WE}');
+    Error('\P{Jamo_Short_Name: WE}');
+    Error('\p{JSN:   WE}');
+    Error('\P{JSN:   WE}');
     Error('\p{Is_Jamo_Short_Name=WE}');
     Error('\P{Is_Jamo_Short_Name=WE}');
     Error('\p{Is_JSN=WE}');
@@ -61703,8 +62285,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Jamo_Short_Name=WEO}');
     Error('\p{Is_JSN=WEO}');
     Error('\P{Is_JSN=WEO}');
-    Error('\p{Jamo_Short_Name:WI}');
-    Error('\P{Jamo_Short_Name:WI}');
+    Error('\p{Jamo_Short_Name=WI}');
+    Error('\P{Jamo_Short_Name=WI}');
     Error('\p{JSN=WI}');
     Error('\P{JSN=WI}');
     Error('\p{Is_Jamo_Short_Name=WI}');
@@ -61725,14 +62307,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{JSN=YAE}');
     Error('\p{Is_Jamo_Short_Name=YAE}');
     Error('\P{Is_Jamo_Short_Name=YAE}');
-    Error('\p{Is_JSN=YAE}');
-    Error('\P{Is_JSN=YAE}');
+    Error('\p{Is_JSN:   YAE}');
+    Error('\P{Is_JSN:   YAE}');
     Error('\p{Jamo_Short_Name=YE}');
     Error('\P{Jamo_Short_Name=YE}');
     Error('\p{JSN=YE}');
     Error('\P{JSN=YE}');
-    Error('\p{Is_Jamo_Short_Name:YE}');
-    Error('\P{Is_Jamo_Short_Name:YE}');
+    Error('\p{Is_Jamo_Short_Name:	YE}');
+    Error('\P{Is_Jamo_Short_Name:	YE}');
     Error('\p{Is_JSN=YE}');
     Error('\P{Is_JSN=YE}');
     Error('\p{Jamo_Short_Name=YEO}');
@@ -61741,8 +62323,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{JSN=YEO}');
     Error('\p{Is_Jamo_Short_Name=YEO}');
     Error('\P{Is_Jamo_Short_Name=YEO}');
-    Error('\p{Is_JSN:YEO}');
-    Error('\P{Is_JSN:YEO}');
+    Error('\p{Is_JSN=YEO}');
+    Error('\P{Is_JSN=YEO}');
     Error('\p{Jamo_Short_Name=YI}');
     Error('\P{Jamo_Short_Name=YI}');
     Error('\p{JSN=YI}');
@@ -61753,8 +62335,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_JSN=YI}');
     Error('\p{Jamo_Short_Name=YO}');
     Error('\P{Jamo_Short_Name=YO}');
-    Error('\p{JSN:YO}');
-    Error('\P{JSN:YO}');
+    Error('\p{JSN=YO}');
+    Error('\P{JSN=YO}');
     Error('\p{Is_Jamo_Short_Name=YO}');
     Error('\P{Is_Jamo_Short_Name=YO}');
     Error('\p{Is_JSN=YO}');
@@ -61771,8 +62353,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{joiningtype}');
     Error('\p{jt}');
     Error('\P{jt}');
-    Error('\p{Joining_Type=-/a/JOIN_Causing}');
-    Error('\P{Joining_Type=-/a/JOIN_Causing}');
+    Error('\p{Joining_Type=:=-JOIN_Causing}');
+    Error('\P{Joining_Type=:=-JOIN_Causing}');
     Expect(1, 8205, '\p{Joining_Type=:\AJoin_Causing\z:}', "");;
     Expect(0, 8206, '\p{Joining_Type=:\AJoin_Causing\z:}', "");;
     Expect(1, 8205, '\p{Joining_Type=joincausing}', "");
@@ -61785,38 +62367,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^Joining_Type=joincausing}', "");
     Expect(1, 8205, '\p{Joining_Type=:\Ajoincausing\z:}', "");;
     Expect(0, 8206, '\p{Joining_Type=:\Ajoincausing\z:}', "");;
-    Expect(1, 8205, '\p{Joining_Type: 	 JOIN_Causing}', "");
-    Expect(0, 8205, '\p{^Joining_Type: 	 JOIN_Causing}', "");
-    Expect(0, 8205, '\P{Joining_Type: 	 JOIN_Causing}', "");
-    Expect(1, 8205, '\P{^Joining_Type: 	 JOIN_Causing}', "");
-    Expect(0, 8206, '\p{Joining_Type: 	 JOIN_Causing}', "");
-    Expect(1, 8206, '\p{^Joining_Type: 	 JOIN_Causing}', "");
-    Expect(1, 8206, '\P{Joining_Type: 	 JOIN_Causing}', "");
-    Expect(0, 8206, '\P{^Joining_Type: 	 JOIN_Causing}', "");
-    Error('\p{Jt=-	c:=}');
-    Error('\P{Jt=-	c:=}');
+    Expect(1, 8205, '\p{Joining_Type=- Join_causing}', "");
+    Expect(0, 8205, '\p{^Joining_Type=- Join_causing}', "");
+    Expect(0, 8205, '\P{Joining_Type=- Join_causing}', "");
+    Expect(1, 8205, '\P{^Joining_Type=- Join_causing}', "");
+    Expect(0, 8206, '\p{Joining_Type=- Join_causing}', "");
+    Expect(1, 8206, '\p{^Joining_Type=- Join_causing}', "");
+    Expect(1, 8206, '\P{Joining_Type=- Join_causing}', "");
+    Expect(0, 8206, '\P{^Joining_Type=- Join_causing}', "");
+    Error('\p{Jt=-C:=}');
+    Error('\P{Jt=-C:=}');
     Expect(1, 8205, '\p{Jt=:\AC\z:}', "");;
     Expect(0, 8206, '\p{Jt=:\AC\z:}', "");;
-    Expect(1, 8205, '\p{Jt=c}', "");
-    Expect(0, 8205, '\p{^Jt=c}', "");
-    Expect(0, 8205, '\P{Jt=c}', "");
-    Expect(1, 8205, '\P{^Jt=c}', "");
-    Expect(0, 8206, '\p{Jt=c}', "");
-    Expect(1, 8206, '\p{^Jt=c}', "");
-    Expect(1, 8206, '\P{Jt=c}', "");
-    Expect(0, 8206, '\P{^Jt=c}', "");
+    Expect(1, 8205, '\p{Jt:c}', "");
+    Expect(0, 8205, '\p{^Jt:c}', "");
+    Expect(0, 8205, '\P{Jt:c}', "");
+    Expect(1, 8205, '\P{^Jt:c}', "");
+    Expect(0, 8206, '\p{Jt:c}', "");
+    Expect(1, 8206, '\p{^Jt:c}', "");
+    Expect(1, 8206, '\P{Jt:c}', "");
+    Expect(0, 8206, '\P{^Jt:c}', "");
     Expect(1, 8205, '\p{Jt=:\Ac\z:}', "");;
     Expect(0, 8206, '\p{Jt=:\Ac\z:}', "");;
-    Expect(1, 8205, '\p{Jt=	C}', "");
-    Expect(0, 8205, '\p{^Jt=	C}', "");
-    Expect(0, 8205, '\P{Jt=	C}', "");
-    Expect(1, 8205, '\P{^Jt=	C}', "");
-    Expect(0, 8206, '\p{Jt=	C}', "");
-    Expect(1, 8206, '\p{^Jt=	C}', "");
-    Expect(1, 8206, '\P{Jt=	C}', "");
-    Expect(0, 8206, '\P{^Jt=	C}', "");
-    Error('\p{Is_Joining_Type=/a/JOIN_Causing}');
-    Error('\P{Is_Joining_Type=/a/JOIN_Causing}');
+    Expect(1, 8205, '\p{Jt=	_C}', "");
+    Expect(0, 8205, '\p{^Jt=	_C}', "");
+    Expect(0, 8205, '\P{Jt=	_C}', "");
+    Expect(1, 8205, '\P{^Jt=	_C}', "");
+    Expect(0, 8206, '\p{Jt=	_C}', "");
+    Expect(1, 8206, '\p{^Jt=	_C}', "");
+    Expect(1, 8206, '\P{Jt=	_C}', "");
+    Expect(0, 8206, '\P{^Jt=	_C}', "");
+    Error('\p{Is_Joining_Type=	/a/JOIN_CAUSING}');
+    Error('\P{Is_Joining_Type=	/a/JOIN_CAUSING}');
     Expect(1, 8205, '\p{Is_Joining_Type=joincausing}', "");
     Expect(0, 8205, '\p{^Is_Joining_Type=joincausing}', "");
     Expect(0, 8205, '\P{Is_Joining_Type=joincausing}', "");
@@ -61825,16 +62407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Joining_Type=joincausing}', "");
     Expect(1, 8206, '\P{Is_Joining_Type=joincausing}', "");
     Expect(0, 8206, '\P{^Is_Joining_Type=joincausing}', "");
-    Expect(1, 8205, '\p{Is_Joining_Type=_	Join_Causing}', "");
-    Expect(0, 8205, '\p{^Is_Joining_Type=_	Join_Causing}', "");
-    Expect(0, 8205, '\P{Is_Joining_Type=_	Join_Causing}', "");
-    Expect(1, 8205, '\P{^Is_Joining_Type=_	Join_Causing}', "");
-    Expect(0, 8206, '\p{Is_Joining_Type=_	Join_Causing}', "");
-    Expect(1, 8206, '\p{^Is_Joining_Type=_	Join_Causing}', "");
-    Expect(1, 8206, '\P{Is_Joining_Type=_	Join_Causing}', "");
-    Expect(0, 8206, '\P{^Is_Joining_Type=_	Join_Causing}', "");
-    Error('\p{Is_Jt=/a/-	C}');
-    Error('\P{Is_Jt=/a/-	C}');
+    Expect(1, 8205, '\p{Is_Joining_Type=  Join_causing}', "");
+    Expect(0, 8205, '\p{^Is_Joining_Type=  Join_causing}', "");
+    Expect(0, 8205, '\P{Is_Joining_Type=  Join_causing}', "");
+    Expect(1, 8205, '\P{^Is_Joining_Type=  Join_causing}', "");
+    Expect(0, 8206, '\p{Is_Joining_Type=  Join_causing}', "");
+    Expect(1, 8206, '\p{^Is_Joining_Type=  Join_causing}', "");
+    Expect(1, 8206, '\P{Is_Joining_Type=  Join_causing}', "");
+    Expect(0, 8206, '\P{^Is_Joining_Type=  Join_causing}', "");
+    Error('\p{Is_Jt= C/a/}');
+    Error('\P{Is_Jt= C/a/}');
     Expect(1, 8205, '\p{Is_Jt=c}', "");
     Expect(0, 8205, '\p{^Is_Jt=c}', "");
     Expect(0, 8205, '\P{Is_Jt=c}', "");
@@ -61843,16 +62425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Jt=c}', "");
     Expect(1, 8206, '\P{Is_Jt=c}', "");
     Expect(0, 8206, '\P{^Is_Jt=c}', "");
-    Expect(1, 8205, '\p{Is_Jt=- C}', "");
-    Expect(0, 8205, '\p{^Is_Jt=- C}', "");
-    Expect(0, 8205, '\P{Is_Jt=- C}', "");
-    Expect(1, 8205, '\P{^Is_Jt=- C}', "");
-    Expect(0, 8206, '\p{Is_Jt=- C}', "");
-    Expect(1, 8206, '\p{^Is_Jt=- C}', "");
-    Expect(1, 8206, '\P{Is_Jt=- C}', "");
-    Expect(0, 8206, '\P{^Is_Jt=- C}', "");
-    Error('\p{Joining_Type=-Dual_joining:=}');
-    Error('\P{Joining_Type=-Dual_joining:=}');
+    Expect(1, 8205, '\p{Is_Jt=	C}', "");
+    Expect(0, 8205, '\p{^Is_Jt=	C}', "");
+    Expect(0, 8205, '\P{Is_Jt=	C}', "");
+    Expect(1, 8205, '\P{^Is_Jt=	C}', "");
+    Expect(0, 8206, '\p{Is_Jt=	C}', "");
+    Expect(1, 8206, '\p{^Is_Jt=	C}', "");
+    Expect(1, 8206, '\P{Is_Jt=	C}', "");
+    Expect(0, 8206, '\P{^Is_Jt=	C}', "");
+    Error('\p{Joining_Type=:=	-DUAL_joining}');
+    Error('\P{Joining_Type=:=	-DUAL_joining}');
     Expect(1, 125251, '\p{Joining_Type=:\ADual_Joining\z:}', "");;
     Expect(0, 125252, '\p{Joining_Type=:\ADual_Joining\z:}', "");;
     Expect(1, 125251, '\p{Joining_Type=dualjoining}', "");
@@ -61865,16 +62447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125252, '\P{^Joining_Type=dualjoining}', "");
     Expect(1, 125251, '\p{Joining_Type=:\Adualjoining\z:}', "");;
     Expect(0, 125252, '\p{Joining_Type=:\Adualjoining\z:}', "");;
-    Expect(1, 125251, '\p{Joining_Type=--Dual_Joining}', "");
-    Expect(0, 125251, '\p{^Joining_Type=--Dual_Joining}', "");
-    Expect(0, 125251, '\P{Joining_Type=--Dual_Joining}', "");
-    Expect(1, 125251, '\P{^Joining_Type=--Dual_Joining}', "");
-    Expect(0, 125252, '\p{Joining_Type=--Dual_Joining}', "");
-    Expect(1, 125252, '\p{^Joining_Type=--Dual_Joining}', "");
-    Expect(1, 125252, '\P{Joining_Type=--Dual_Joining}', "");
-    Expect(0, 125252, '\P{^Joining_Type=--Dual_Joining}', "");
-    Error('\p{Jt=/a/D}');
-    Error('\P{Jt=/a/D}');
+    Expect(1, 125251, '\p{Joining_Type=	DUAL_JOINING}', "");
+    Expect(0, 125251, '\p{^Joining_Type=	DUAL_JOINING}', "");
+    Expect(0, 125251, '\P{Joining_Type=	DUAL_JOINING}', "");
+    Expect(1, 125251, '\P{^Joining_Type=	DUAL_JOINING}', "");
+    Expect(0, 125252, '\p{Joining_Type=	DUAL_JOINING}', "");
+    Expect(1, 125252, '\p{^Joining_Type=	DUAL_JOINING}', "");
+    Expect(1, 125252, '\P{Joining_Type=	DUAL_JOINING}', "");
+    Expect(0, 125252, '\P{^Joining_Type=	DUAL_JOINING}', "");
+    Error('\p{Jt:   /a/_	D}');
+    Error('\P{Jt:   /a/_	D}');
     Expect(1, 125251, '\p{Jt=:\AD\z:}', "");;
     Expect(0, 125252, '\p{Jt=:\AD\z:}', "");;
     Expect(1, 125251, '\p{Jt=d}', "");
@@ -61887,16 +62469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125252, '\P{^Jt=d}', "");
     Expect(1, 125251, '\p{Jt=:\Ad\z:}', "");;
     Expect(0, 125252, '\p{Jt=:\Ad\z:}', "");;
-    Expect(1, 125251, '\p{Jt=  D}', "");
-    Expect(0, 125251, '\p{^Jt=  D}', "");
-    Expect(0, 125251, '\P{Jt=  D}', "");
-    Expect(1, 125251, '\P{^Jt=  D}', "");
-    Expect(0, 125252, '\p{Jt=  D}', "");
-    Expect(1, 125252, '\p{^Jt=  D}', "");
-    Expect(1, 125252, '\P{Jt=  D}', "");
-    Expect(0, 125252, '\P{^Jt=  D}', "");
-    Error('\p{Is_Joining_Type= /a/Dual_Joining}');
-    Error('\P{Is_Joining_Type= /a/Dual_Joining}');
+    Expect(1, 125251, '\p{Jt=	 D}', "");
+    Expect(0, 125251, '\p{^Jt=	 D}', "");
+    Expect(0, 125251, '\P{Jt=	 D}', "");
+    Expect(1, 125251, '\P{^Jt=	 D}', "");
+    Expect(0, 125252, '\p{Jt=	 D}', "");
+    Expect(1, 125252, '\p{^Jt=	 D}', "");
+    Expect(1, 125252, '\P{Jt=	 D}', "");
+    Expect(0, 125252, '\P{^Jt=	 D}', "");
+    Error('\p{Is_Joining_Type:   :=_-DUAL_Joining}');
+    Error('\P{Is_Joining_Type:   :=_-DUAL_Joining}');
     Expect(1, 125251, '\p{Is_Joining_Type=dualjoining}', "");
     Expect(0, 125251, '\p{^Is_Joining_Type=dualjoining}', "");
     Expect(0, 125251, '\P{Is_Joining_Type=dualjoining}', "");
@@ -61905,34 +62487,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125252, '\p{^Is_Joining_Type=dualjoining}', "");
     Expect(1, 125252, '\P{Is_Joining_Type=dualjoining}', "");
     Expect(0, 125252, '\P{^Is_Joining_Type=dualjoining}', "");
-    Expect(1, 125251, '\p{Is_Joining_Type=	Dual_Joining}', "");
-    Expect(0, 125251, '\p{^Is_Joining_Type=	Dual_Joining}', "");
-    Expect(0, 125251, '\P{Is_Joining_Type=	Dual_Joining}', "");
-    Expect(1, 125251, '\P{^Is_Joining_Type=	Dual_Joining}', "");
-    Expect(0, 125252, '\p{Is_Joining_Type=	Dual_Joining}', "");
-    Expect(1, 125252, '\p{^Is_Joining_Type=	Dual_Joining}', "");
-    Expect(1, 125252, '\P{Is_Joining_Type=	Dual_Joining}', "");
-    Expect(0, 125252, '\P{^Is_Joining_Type=	Dual_Joining}', "");
-    Error('\p{Is_Jt=-:=D}');
-    Error('\P{Is_Jt=-:=D}');
-    Expect(1, 125251, '\p{Is_Jt:d}', "");
-    Expect(0, 125251, '\p{^Is_Jt:d}', "");
-    Expect(0, 125251, '\P{Is_Jt:d}', "");
-    Expect(1, 125251, '\P{^Is_Jt:d}', "");
-    Expect(0, 125252, '\p{Is_Jt:d}', "");
-    Expect(1, 125252, '\p{^Is_Jt:d}', "");
-    Expect(1, 125252, '\P{Is_Jt:d}', "");
-    Expect(0, 125252, '\P{^Is_Jt:d}', "");
-    Expect(1, 125251, '\p{Is_Jt=- D}', "");
-    Expect(0, 125251, '\p{^Is_Jt=- D}', "");
-    Expect(0, 125251, '\P{Is_Jt=- D}', "");
-    Expect(1, 125251, '\P{^Is_Jt=- D}', "");
-    Expect(0, 125252, '\p{Is_Jt=- D}', "");
-    Expect(1, 125252, '\p{^Is_Jt=- D}', "");
-    Expect(1, 125252, '\P{Is_Jt=- D}', "");
-    Expect(0, 125252, '\P{^Is_Jt=- D}', "");
-    Error('\p{Joining_Type=	_LEFT_Joining/a/}');
-    Error('\P{Joining_Type=	_LEFT_Joining/a/}');
+    Expect(1, 125251, '\p{Is_Joining_Type=-DUAL_joining}', "");
+    Expect(0, 125251, '\p{^Is_Joining_Type=-DUAL_joining}', "");
+    Expect(0, 125251, '\P{Is_Joining_Type=-DUAL_joining}', "");
+    Expect(1, 125251, '\P{^Is_Joining_Type=-DUAL_joining}', "");
+    Expect(0, 125252, '\p{Is_Joining_Type=-DUAL_joining}', "");
+    Expect(1, 125252, '\p{^Is_Joining_Type=-DUAL_joining}', "");
+    Expect(1, 125252, '\P{Is_Joining_Type=-DUAL_joining}', "");
+    Expect(0, 125252, '\P{^Is_Joining_Type=-DUAL_joining}', "");
+    Error('\p{Is_Jt=/a/_	D}');
+    Error('\P{Is_Jt=/a/_	D}');
+    Expect(1, 125251, '\p{Is_Jt=d}', "");
+    Expect(0, 125251, '\p{^Is_Jt=d}', "");
+    Expect(0, 125251, '\P{Is_Jt=d}', "");
+    Expect(1, 125251, '\P{^Is_Jt=d}', "");
+    Expect(0, 125252, '\p{Is_Jt=d}', "");
+    Expect(1, 125252, '\p{^Is_Jt=d}', "");
+    Expect(1, 125252, '\P{Is_Jt=d}', "");
+    Expect(0, 125252, '\P{^Is_Jt=d}', "");
+    Expect(1, 125251, '\p{Is_Jt=	D}', "");
+    Expect(0, 125251, '\p{^Is_Jt=	D}', "");
+    Expect(0, 125251, '\P{Is_Jt=	D}', "");
+    Expect(1, 125251, '\P{^Is_Jt=	D}', "");
+    Expect(0, 125252, '\p{Is_Jt=	D}', "");
+    Expect(1, 125252, '\p{^Is_Jt=	D}', "");
+    Expect(1, 125252, '\P{Is_Jt=	D}', "");
+    Expect(0, 125252, '\P{^Is_Jt=	D}', "");
+    Error('\p{Joining_Type= left_Joining/a/}');
+    Error('\P{Joining_Type= left_Joining/a/}');
     Expect(1, 69579, '\p{Joining_Type=:\ALeft_Joining\z:}', "");;
     Expect(0, 69580, '\p{Joining_Type=:\ALeft_Joining\z:}', "");;
     Expect(1, 69579, '\p{Joining_Type=leftjoining}', "");
@@ -61945,16 +62527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69580, '\P{^Joining_Type=leftjoining}', "");
     Expect(1, 69579, '\p{Joining_Type=:\Aleftjoining\z:}', "");;
     Expect(0, 69580, '\p{Joining_Type=:\Aleftjoining\z:}', "");;
-    Expect(1, 69579, '\p{Joining_Type=Left_JOINING}', "");
-    Expect(0, 69579, '\p{^Joining_Type=Left_JOINING}', "");
-    Expect(0, 69579, '\P{Joining_Type=Left_JOINING}', "");
-    Expect(1, 69579, '\P{^Joining_Type=Left_JOINING}', "");
-    Expect(0, 69580, '\p{Joining_Type=Left_JOINING}', "");
-    Expect(1, 69580, '\p{^Joining_Type=Left_JOINING}', "");
-    Expect(1, 69580, '\P{Joining_Type=Left_JOINING}', "");
-    Expect(0, 69580, '\P{^Joining_Type=Left_JOINING}', "");
-    Error('\p{Jt=/a/L}');
-    Error('\P{Jt=/a/L}');
+    Expect(1, 69579, '\p{Joining_Type=-left_JOINING}', "");
+    Expect(0, 69579, '\p{^Joining_Type=-left_JOINING}', "");
+    Expect(0, 69579, '\P{Joining_Type=-left_JOINING}', "");
+    Expect(1, 69579, '\P{^Joining_Type=-left_JOINING}', "");
+    Expect(0, 69580, '\p{Joining_Type=-left_JOINING}', "");
+    Expect(1, 69580, '\p{^Joining_Type=-left_JOINING}', "");
+    Expect(1, 69580, '\P{Joining_Type=-left_JOINING}', "");
+    Expect(0, 69580, '\P{^Joining_Type=-left_JOINING}', "");
+    Error('\p{Jt= /a/L}');
+    Error('\P{Jt= /a/L}');
     Expect(1, 69579, '\p{Jt=:\AL\z:}', "");;
     Expect(0, 69580, '\p{Jt=:\AL\z:}', "");;
     Expect(1, 69579, '\p{Jt=l}', "");
@@ -61967,52 +62549,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69580, '\P{^Jt=l}', "");
     Expect(1, 69579, '\p{Jt=:\Al\z:}', "");;
     Expect(0, 69580, '\p{Jt=:\Al\z:}', "");;
-    Expect(1, 69579, '\p{Jt:		L}', "");
-    Expect(0, 69579, '\p{^Jt:		L}', "");
-    Expect(0, 69579, '\P{Jt:		L}', "");
-    Expect(1, 69579, '\P{^Jt:		L}', "");
-    Expect(0, 69580, '\p{Jt:		L}', "");
-    Expect(1, 69580, '\p{^Jt:		L}', "");
-    Expect(1, 69580, '\P{Jt:		L}', "");
-    Expect(0, 69580, '\P{^Jt:		L}', "");
-    Error('\p{Is_Joining_Type:_Left_joining:=}');
-    Error('\P{Is_Joining_Type:_Left_joining:=}');
-    Expect(1, 69579, '\p{Is_Joining_Type=leftjoining}', "");
-    Expect(0, 69579, '\p{^Is_Joining_Type=leftjoining}', "");
-    Expect(0, 69579, '\P{Is_Joining_Type=leftjoining}', "");
-    Expect(1, 69579, '\P{^Is_Joining_Type=leftjoining}', "");
-    Expect(0, 69580, '\p{Is_Joining_Type=leftjoining}', "");
-    Expect(1, 69580, '\p{^Is_Joining_Type=leftjoining}', "");
-    Expect(1, 69580, '\P{Is_Joining_Type=leftjoining}', "");
-    Expect(0, 69580, '\P{^Is_Joining_Type=leftjoining}', "");
-    Expect(1, 69579, '\p{Is_Joining_Type=	Left_JOINING}', "");
-    Expect(0, 69579, '\p{^Is_Joining_Type=	Left_JOINING}', "");
-    Expect(0, 69579, '\P{Is_Joining_Type=	Left_JOINING}', "");
-    Expect(1, 69579, '\P{^Is_Joining_Type=	Left_JOINING}', "");
-    Expect(0, 69580, '\p{Is_Joining_Type=	Left_JOINING}', "");
-    Expect(1, 69580, '\p{^Is_Joining_Type=	Left_JOINING}', "");
-    Expect(1, 69580, '\P{Is_Joining_Type=	Left_JOINING}', "");
-    Expect(0, 69580, '\P{^Is_Joining_Type=	Left_JOINING}', "");
-    Error('\p{Is_Jt= :=l}');
-    Error('\P{Is_Jt= :=l}');
-    Expect(1, 69579, '\p{Is_Jt=l}', "");
-    Expect(0, 69579, '\p{^Is_Jt=l}', "");
-    Expect(0, 69579, '\P{Is_Jt=l}', "");
-    Expect(1, 69579, '\P{^Is_Jt=l}', "");
-    Expect(0, 69580, '\p{Is_Jt=l}', "");
-    Expect(1, 69580, '\p{^Is_Jt=l}', "");
-    Expect(1, 69580, '\P{Is_Jt=l}', "");
-    Expect(0, 69580, '\P{^Is_Jt=l}', "");
-    Expect(1, 69579, '\p{Is_Jt=	_L}', "");
-    Expect(0, 69579, '\p{^Is_Jt=	_L}', "");
-    Expect(0, 69579, '\P{Is_Jt=	_L}', "");
-    Expect(1, 69579, '\P{^Is_Jt=	_L}', "");
-    Expect(0, 69580, '\p{Is_Jt=	_L}', "");
-    Expect(1, 69580, '\p{^Is_Jt=	_L}', "");
-    Expect(1, 69580, '\P{Is_Jt=	_L}', "");
-    Expect(0, 69580, '\P{^Is_Jt=	_L}', "");
-    Error('\p{Joining_Type= 	Right_Joining/a/}');
-    Error('\P{Joining_Type= 	Right_Joining/a/}');
+    Expect(1, 69579, '\p{Jt=	 L}', "");
+    Expect(0, 69579, '\p{^Jt=	 L}', "");
+    Expect(0, 69579, '\P{Jt=	 L}', "");
+    Expect(1, 69579, '\P{^Jt=	 L}', "");
+    Expect(0, 69580, '\p{Jt=	 L}', "");
+    Expect(1, 69580, '\p{^Jt=	 L}', "");
+    Expect(1, 69580, '\P{Jt=	 L}', "");
+    Expect(0, 69580, '\P{^Jt=	 L}', "");
+    Error('\p{Is_Joining_Type:     Left_Joining:=}');
+    Error('\P{Is_Joining_Type:     Left_Joining:=}');
+    Expect(1, 69579, '\p{Is_Joining_Type:	leftjoining}', "");
+    Expect(0, 69579, '\p{^Is_Joining_Type:	leftjoining}', "");
+    Expect(0, 69579, '\P{Is_Joining_Type:	leftjoining}', "");
+    Expect(1, 69579, '\P{^Is_Joining_Type:	leftjoining}', "");
+    Expect(0, 69580, '\p{Is_Joining_Type:	leftjoining}', "");
+    Expect(1, 69580, '\p{^Is_Joining_Type:	leftjoining}', "");
+    Expect(1, 69580, '\P{Is_Joining_Type:	leftjoining}', "");
+    Expect(0, 69580, '\P{^Is_Joining_Type:	leftjoining}', "");
+    Expect(1, 69579, '\p{Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(0, 69579, '\p{^Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(0, 69579, '\P{Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(1, 69579, '\P{^Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(0, 69580, '\p{Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(1, 69580, '\p{^Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(1, 69580, '\P{Is_Joining_Type=	-Left_JOINING}', "");
+    Expect(0, 69580, '\P{^Is_Joining_Type=	-Left_JOINING}', "");
+    Error('\p{Is_Jt=-:=L}');
+    Error('\P{Is_Jt=-:=L}');
+    Expect(1, 69579, '\p{Is_Jt: l}', "");
+    Expect(0, 69579, '\p{^Is_Jt: l}', "");
+    Expect(0, 69579, '\P{Is_Jt: l}', "");
+    Expect(1, 69579, '\P{^Is_Jt: l}', "");
+    Expect(0, 69580, '\p{Is_Jt: l}', "");
+    Expect(1, 69580, '\p{^Is_Jt: l}', "");
+    Expect(1, 69580, '\P{Is_Jt: l}', "");
+    Expect(0, 69580, '\P{^Is_Jt: l}', "");
+    Expect(1, 69579, '\p{Is_Jt=- l}', "");
+    Expect(0, 69579, '\p{^Is_Jt=- l}', "");
+    Expect(0, 69579, '\P{Is_Jt=- l}', "");
+    Expect(1, 69579, '\P{^Is_Jt=- l}', "");
+    Expect(0, 69580, '\p{Is_Jt=- l}', "");
+    Expect(1, 69580, '\p{^Is_Jt=- l}', "");
+    Expect(1, 69580, '\P{Is_Jt=- l}', "");
+    Expect(0, 69580, '\P{^Is_Jt=- l}', "");
+    Error('\p{Joining_Type=_:=Right_JOINING}');
+    Error('\P{Joining_Type=_:=Right_JOINING}');
     Expect(1, 69577, '\p{Joining_Type=:\ARight_Joining\z:}', "");;
     Expect(0, 69578, '\p{Joining_Type=:\ARight_Joining\z:}', "");;
     Expect(1, 69577, '\p{Joining_Type=rightjoining}', "");
@@ -62025,56 +62607,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 69578, '\P{^Joining_Type=rightjoining}', "");
     Expect(1, 69577, '\p{Joining_Type=:\Arightjoining\z:}', "");;
     Expect(0, 69578, '\p{Joining_Type=:\Arightjoining\z:}', "");;
-    Expect(1, 69577, '\p{Joining_Type=-_Right_Joining}', "");
-    Expect(0, 69577, '\p{^Joining_Type=-_Right_Joining}', "");
-    Expect(0, 69577, '\P{Joining_Type=-_Right_Joining}', "");
-    Expect(1, 69577, '\P{^Joining_Type=-_Right_Joining}', "");
-    Expect(0, 69578, '\p{Joining_Type=-_Right_Joining}', "");
-    Expect(1, 69578, '\p{^Joining_Type=-_Right_Joining}', "");
-    Expect(1, 69578, '\P{Joining_Type=-_Right_Joining}', "");
-    Expect(0, 69578, '\P{^Joining_Type=-_Right_Joining}', "");
-    Error('\p{Jt= :=R}');
-    Error('\P{Jt= :=R}');
+    Expect(1, 69577, '\p{Joining_Type=	_Right_Joining}', "");
+    Expect(0, 69577, '\p{^Joining_Type=	_Right_Joining}', "");
+    Expect(0, 69577, '\P{Joining_Type=	_Right_Joining}', "");
+    Expect(1, 69577, '\P{^Joining_Type=	_Right_Joining}', "");
+    Expect(0, 69578, '\p{Joining_Type=	_Right_Joining}', "");
+    Expect(1, 69578, '\p{^Joining_Type=	_Right_Joining}', "");
+    Expect(1, 69578, '\P{Joining_Type=	_Right_Joining}', "");
+    Expect(0, 69578, '\P{^Joining_Type=	_Right_Joining}', "");
+    Error('\p{Jt=	_R/a/}');
+    Error('\P{Jt=	_R/a/}');
     Expect(1, 69577, '\p{Jt=:\AR\z:}', "");;
     Expect(0, 69578, '\p{Jt=:\AR\z:}', "");;
-    Expect(1, 69577, '\p{Jt=r}', "");
-    Expect(0, 69577, '\p{^Jt=r}', "");
-    Expect(0, 69577, '\P{Jt=r}', "");
-    Expect(1, 69577, '\P{^Jt=r}', "");
-    Expect(0, 69578, '\p{Jt=r}', "");
-    Expect(1, 69578, '\p{^Jt=r}', "");
-    Expect(1, 69578, '\P{Jt=r}', "");
-    Expect(0, 69578, '\P{^Jt=r}', "");
+    Expect(1, 69577, '\p{Jt:	r}', "");
+    Expect(0, 69577, '\p{^Jt:	r}', "");
+    Expect(0, 69577, '\P{Jt:	r}', "");
+    Expect(1, 69577, '\P{^Jt:	r}', "");
+    Expect(0, 69578, '\p{Jt:	r}', "");
+    Expect(1, 69578, '\p{^Jt:	r}', "");
+    Expect(1, 69578, '\P{Jt:	r}', "");
+    Expect(0, 69578, '\P{^Jt:	r}', "");
     Expect(1, 69577, '\p{Jt=:\Ar\z:}', "");;
     Expect(0, 69578, '\p{Jt=:\Ar\z:}', "");;
-    Expect(1, 69577, '\p{Jt= 	r}', "");
-    Expect(0, 69577, '\p{^Jt= 	r}', "");
-    Expect(0, 69577, '\P{Jt= 	r}', "");
-    Expect(1, 69577, '\P{^Jt= 	r}', "");
-    Expect(0, 69578, '\p{Jt= 	r}', "");
-    Expect(1, 69578, '\p{^Jt= 	r}', "");
-    Expect(1, 69578, '\P{Jt= 	r}', "");
-    Expect(0, 69578, '\P{^Jt= 	r}', "");
-    Error('\p{Is_Joining_Type=/a/	Right_Joining}');
-    Error('\P{Is_Joining_Type=/a/	Right_Joining}');
-    Expect(1, 69577, '\p{Is_Joining_Type=rightjoining}', "");
-    Expect(0, 69577, '\p{^Is_Joining_Type=rightjoining}', "");
-    Expect(0, 69577, '\P{Is_Joining_Type=rightjoining}', "");
-    Expect(1, 69577, '\P{^Is_Joining_Type=rightjoining}', "");
-    Expect(0, 69578, '\p{Is_Joining_Type=rightjoining}', "");
-    Expect(1, 69578, '\p{^Is_Joining_Type=rightjoining}', "");
-    Expect(1, 69578, '\P{Is_Joining_Type=rightjoining}', "");
-    Expect(0, 69578, '\P{^Is_Joining_Type=rightjoining}', "");
-    Expect(1, 69577, '\p{Is_Joining_Type:     Right_Joining}', "");
-    Expect(0, 69577, '\p{^Is_Joining_Type:     Right_Joining}', "");
-    Expect(0, 69577, '\P{Is_Joining_Type:     Right_Joining}', "");
-    Expect(1, 69577, '\P{^Is_Joining_Type:     Right_Joining}', "");
-    Expect(0, 69578, '\p{Is_Joining_Type:     Right_Joining}', "");
-    Expect(1, 69578, '\p{^Is_Joining_Type:     Right_Joining}', "");
-    Expect(1, 69578, '\P{Is_Joining_Type:     Right_Joining}', "");
-    Expect(0, 69578, '\P{^Is_Joining_Type:     Right_Joining}', "");
-    Error('\p{Is_Jt:	R:=}');
-    Error('\P{Is_Jt:	R:=}');
+    Expect(1, 69577, '\p{Jt= R}', "");
+    Expect(0, 69577, '\p{^Jt= R}', "");
+    Expect(0, 69577, '\P{Jt= R}', "");
+    Expect(1, 69577, '\P{^Jt= R}', "");
+    Expect(0, 69578, '\p{Jt= R}', "");
+    Expect(1, 69578, '\p{^Jt= R}', "");
+    Expect(1, 69578, '\P{Jt= R}', "");
+    Expect(0, 69578, '\P{^Jt= R}', "");
+    Error('\p{Is_Joining_Type=_/a/Right_JOINING}');
+    Error('\P{Is_Joining_Type=_/a/Right_JOINING}');
+    Expect(1, 69577, '\p{Is_Joining_Type: rightjoining}', "");
+    Expect(0, 69577, '\p{^Is_Joining_Type: rightjoining}', "");
+    Expect(0, 69577, '\P{Is_Joining_Type: rightjoining}', "");
+    Expect(1, 69577, '\P{^Is_Joining_Type: rightjoining}', "");
+    Expect(0, 69578, '\p{Is_Joining_Type: rightjoining}', "");
+    Expect(1, 69578, '\p{^Is_Joining_Type: rightjoining}', "");
+    Expect(1, 69578, '\P{Is_Joining_Type: rightjoining}', "");
+    Expect(0, 69578, '\P{^Is_Joining_Type: rightjoining}', "");
+    Expect(1, 69577, '\p{Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(0, 69577, '\p{^Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(0, 69577, '\P{Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(1, 69577, '\P{^Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(0, 69578, '\p{Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(1, 69578, '\p{^Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(1, 69578, '\P{Is_Joining_Type=-	RIGHT_Joining}', "");
+    Expect(0, 69578, '\P{^Is_Joining_Type=-	RIGHT_Joining}', "");
+    Error('\p{Is_Jt=  R/a/}');
+    Error('\P{Is_Jt=  R/a/}');
     Expect(1, 69577, '\p{Is_Jt=r}', "");
     Expect(0, 69577, '\p{^Is_Jt=r}', "");
     Expect(0, 69577, '\P{Is_Jt=r}', "");
@@ -62083,60 +62665,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 69578, '\p{^Is_Jt=r}', "");
     Expect(1, 69578, '\P{Is_Jt=r}', "");
     Expect(0, 69578, '\P{^Is_Jt=r}', "");
-    Expect(1, 69577, '\p{Is_Jt=--R}', "");
-    Expect(0, 69577, '\p{^Is_Jt=--R}', "");
-    Expect(0, 69577, '\P{Is_Jt=--R}', "");
-    Expect(1, 69577, '\P{^Is_Jt=--R}', "");
-    Expect(0, 69578, '\p{Is_Jt=--R}', "");
-    Expect(1, 69578, '\p{^Is_Jt=--R}', "");
-    Expect(1, 69578, '\P{Is_Jt=--R}', "");
-    Expect(0, 69578, '\P{^Is_Jt=--R}', "");
-    Error('\p{Joining_Type= TRANSPARENT:=}');
-    Error('\P{Joining_Type= TRANSPARENT:=}');
+    Expect(1, 69577, '\p{Is_Jt=	-R}', "");
+    Expect(0, 69577, '\p{^Is_Jt=	-R}', "");
+    Expect(0, 69577, '\P{Is_Jt=	-R}', "");
+    Expect(1, 69577, '\P{^Is_Jt=	-R}', "");
+    Expect(0, 69578, '\p{Is_Jt=	-R}', "");
+    Expect(1, 69578, '\p{^Is_Jt=	-R}', "");
+    Expect(1, 69578, '\P{Is_Jt=	-R}', "");
+    Expect(0, 69578, '\P{^Is_Jt=	-R}', "");
+    Error('\p{Joining_Type=:=_-TRANSPARENT}');
+    Error('\P{Joining_Type=:=_-TRANSPARENT}');
     Expect(1, 917999, '\p{Joining_Type=:\ATransparent\z:}', "");;
     Expect(0, 918000, '\p{Joining_Type=:\ATransparent\z:}', "");;
-    Expect(1, 917999, '\p{Joining_Type=transparent}', "");
-    Expect(0, 917999, '\p{^Joining_Type=transparent}', "");
-    Expect(0, 917999, '\P{Joining_Type=transparent}', "");
-    Expect(1, 917999, '\P{^Joining_Type=transparent}', "");
-    Expect(0, 918000, '\p{Joining_Type=transparent}', "");
-    Expect(1, 918000, '\p{^Joining_Type=transparent}', "");
-    Expect(1, 918000, '\P{Joining_Type=transparent}', "");
-    Expect(0, 918000, '\P{^Joining_Type=transparent}', "");
+    Expect(1, 917999, '\p{Joining_Type:	transparent}', "");
+    Expect(0, 917999, '\p{^Joining_Type:	transparent}', "");
+    Expect(0, 917999, '\P{Joining_Type:	transparent}', "");
+    Expect(1, 917999, '\P{^Joining_Type:	transparent}', "");
+    Expect(0, 918000, '\p{Joining_Type:	transparent}', "");
+    Expect(1, 918000, '\p{^Joining_Type:	transparent}', "");
+    Expect(1, 918000, '\P{Joining_Type:	transparent}', "");
+    Expect(0, 918000, '\P{^Joining_Type:	transparent}', "");
     Expect(1, 917999, '\p{Joining_Type=:\Atransparent\z:}', "");;
     Expect(0, 918000, '\p{Joining_Type=:\Atransparent\z:}', "");;
-    Expect(1, 917999, '\p{Joining_Type:	_-Transparent}', "");
-    Expect(0, 917999, '\p{^Joining_Type:	_-Transparent}', "");
-    Expect(0, 917999, '\P{Joining_Type:	_-Transparent}', "");
-    Expect(1, 917999, '\P{^Joining_Type:	_-Transparent}', "");
-    Expect(0, 918000, '\p{Joining_Type:	_-Transparent}', "");
-    Expect(1, 918000, '\p{^Joining_Type:	_-Transparent}', "");
-    Expect(1, 918000, '\P{Joining_Type:	_-Transparent}', "");
-    Expect(0, 918000, '\P{^Joining_Type:	_-Transparent}', "");
-    Error('\p{Jt=		t/a/}');
-    Error('\P{Jt=		t/a/}');
+    Expect(1, 917999, '\p{Joining_Type=	 TRANSPARENT}', "");
+    Expect(0, 917999, '\p{^Joining_Type=	 TRANSPARENT}', "");
+    Expect(0, 917999, '\P{Joining_Type=	 TRANSPARENT}', "");
+    Expect(1, 917999, '\P{^Joining_Type=	 TRANSPARENT}', "");
+    Expect(0, 918000, '\p{Joining_Type=	 TRANSPARENT}', "");
+    Expect(1, 918000, '\p{^Joining_Type=	 TRANSPARENT}', "");
+    Expect(1, 918000, '\P{Joining_Type=	 TRANSPARENT}', "");
+    Expect(0, 918000, '\P{^Joining_Type=	 TRANSPARENT}', "");
+    Error('\p{Jt=_:=t}');
+    Error('\P{Jt=_:=t}');
     Expect(1, 917999, '\p{Jt=:\AT\z:}', "");;
     Expect(0, 918000, '\p{Jt=:\AT\z:}', "");;
-    Expect(1, 917999, '\p{Jt: t}', "");
-    Expect(0, 917999, '\p{^Jt: t}', "");
-    Expect(0, 917999, '\P{Jt: t}', "");
-    Expect(1, 917999, '\P{^Jt: t}', "");
-    Expect(0, 918000, '\p{Jt: t}', "");
-    Expect(1, 918000, '\p{^Jt: t}', "");
-    Expect(1, 918000, '\P{Jt: t}', "");
-    Expect(0, 918000, '\P{^Jt: t}', "");
+    Expect(1, 917999, '\p{Jt=t}', "");
+    Expect(0, 917999, '\p{^Jt=t}', "");
+    Expect(0, 917999, '\P{Jt=t}', "");
+    Expect(1, 917999, '\P{^Jt=t}', "");
+    Expect(0, 918000, '\p{Jt=t}', "");
+    Expect(1, 918000, '\p{^Jt=t}', "");
+    Expect(1, 918000, '\P{Jt=t}', "");
+    Expect(0, 918000, '\P{^Jt=t}', "");
     Expect(1, 917999, '\p{Jt=:\At\z:}', "");;
     Expect(0, 918000, '\p{Jt=:\At\z:}', "");;
-    Expect(1, 917999, '\p{Jt:		_T}', "");
-    Expect(0, 917999, '\p{^Jt:		_T}', "");
-    Expect(0, 917999, '\P{Jt:		_T}', "");
-    Expect(1, 917999, '\P{^Jt:		_T}', "");
-    Expect(0, 918000, '\p{Jt:		_T}', "");
-    Expect(1, 918000, '\p{^Jt:		_T}', "");
-    Expect(1, 918000, '\P{Jt:		_T}', "");
-    Expect(0, 918000, '\P{^Jt:		_T}', "");
-    Error('\p{Is_Joining_Type=:=Transparent}');
-    Error('\P{Is_Joining_Type=:=Transparent}');
+    Expect(1, 917999, '\p{Jt=-	T}', "");
+    Expect(0, 917999, '\p{^Jt=-	T}', "");
+    Expect(0, 917999, '\P{Jt=-	T}', "");
+    Expect(1, 917999, '\P{^Jt=-	T}', "");
+    Expect(0, 918000, '\p{Jt=-	T}', "");
+    Expect(1, 918000, '\p{^Jt=-	T}', "");
+    Expect(1, 918000, '\P{Jt=-	T}', "");
+    Expect(0, 918000, '\P{^Jt=-	T}', "");
+    Error('\p{Is_Joining_Type=-/a/Transparent}');
+    Error('\P{Is_Joining_Type=-/a/Transparent}');
     Expect(1, 917999, '\p{Is_Joining_Type=transparent}', "");
     Expect(0, 917999, '\p{^Is_Joining_Type=transparent}', "");
     Expect(0, 917999, '\P{Is_Joining_Type=transparent}', "");
@@ -62145,16 +62727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Joining_Type=transparent}', "");
     Expect(1, 918000, '\P{Is_Joining_Type=transparent}', "");
     Expect(0, 918000, '\P{^Is_Joining_Type=transparent}', "");
-    Expect(1, 917999, '\p{Is_Joining_Type= Transparent}', "");
-    Expect(0, 917999, '\p{^Is_Joining_Type= Transparent}', "");
-    Expect(0, 917999, '\P{Is_Joining_Type= Transparent}', "");
-    Expect(1, 917999, '\P{^Is_Joining_Type= Transparent}', "");
-    Expect(0, 918000, '\p{Is_Joining_Type= Transparent}', "");
-    Expect(1, 918000, '\p{^Is_Joining_Type= Transparent}', "");
-    Expect(1, 918000, '\P{Is_Joining_Type= Transparent}', "");
-    Expect(0, 918000, '\P{^Is_Joining_Type= Transparent}', "");
-    Error('\p{Is_Jt=/a/T}');
-    Error('\P{Is_Jt=/a/T}');
+    Expect(1, 917999, '\p{Is_Joining_Type=-	Transparent}', "");
+    Expect(0, 917999, '\p{^Is_Joining_Type=-	Transparent}', "");
+    Expect(0, 917999, '\P{Is_Joining_Type=-	Transparent}', "");
+    Expect(1, 917999, '\P{^Is_Joining_Type=-	Transparent}', "");
+    Expect(0, 918000, '\p{Is_Joining_Type=-	Transparent}', "");
+    Expect(1, 918000, '\p{^Is_Joining_Type=-	Transparent}', "");
+    Expect(1, 918000, '\P{Is_Joining_Type=-	Transparent}', "");
+    Expect(0, 918000, '\P{^Is_Joining_Type=-	Transparent}', "");
+    Error('\p{Is_Jt:-:=T}');
+    Error('\P{Is_Jt:-:=T}');
     Expect(1, 917999, '\p{Is_Jt=t}', "");
     Expect(0, 917999, '\p{^Is_Jt=t}', "");
     Expect(0, 917999, '\P{Is_Jt=t}', "");
@@ -62163,38 +62745,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Jt=t}', "");
     Expect(1, 918000, '\P{Is_Jt=t}', "");
     Expect(0, 918000, '\P{^Is_Jt=t}', "");
-    Expect(1, 917999, '\p{Is_Jt=-_T}', "");
-    Expect(0, 917999, '\p{^Is_Jt=-_T}', "");
-    Expect(0, 917999, '\P{Is_Jt=-_T}', "");
-    Expect(1, 917999, '\P{^Is_Jt=-_T}', "");
-    Expect(0, 918000, '\p{Is_Jt=-_T}', "");
-    Expect(1, 918000, '\p{^Is_Jt=-_T}', "");
-    Expect(1, 918000, '\P{Is_Jt=-_T}', "");
-    Expect(0, 918000, '\P{^Is_Jt=-_T}', "");
-    Error('\p{Joining_Type:   /a/	 NON_joining}');
-    Error('\P{Joining_Type:   /a/	 NON_joining}');
+    Expect(1, 917999, '\p{Is_Jt=	T}', "");
+    Expect(0, 917999, '\p{^Is_Jt=	T}', "");
+    Expect(0, 917999, '\P{Is_Jt=	T}', "");
+    Expect(1, 917999, '\P{^Is_Jt=	T}', "");
+    Expect(0, 918000, '\p{Is_Jt=	T}', "");
+    Expect(1, 918000, '\p{^Is_Jt=	T}', "");
+    Expect(1, 918000, '\P{Is_Jt=	T}', "");
+    Expect(0, 918000, '\P{^Is_Jt=	T}', "");
+    Error('\p{Joining_Type=:= _Non_joining}');
+    Error('\P{Joining_Type=:= _Non_joining}');
     Expect(1, 918000, '\p{Joining_Type=:\ANon_Joining\z:}', "");;
     Expect(0, 917999, '\p{Joining_Type=:\ANon_Joining\z:}', "");;
-    Expect(1, 918000, '\p{Joining_Type:nonjoining}', "");
-    Expect(0, 918000, '\p{^Joining_Type:nonjoining}', "");
-    Expect(0, 918000, '\P{Joining_Type:nonjoining}', "");
-    Expect(1, 918000, '\P{^Joining_Type:nonjoining}', "");
-    Expect(0, 917999, '\p{Joining_Type:nonjoining}', "");
-    Expect(1, 917999, '\p{^Joining_Type:nonjoining}', "");
-    Expect(1, 917999, '\P{Joining_Type:nonjoining}', "");
-    Expect(0, 917999, '\P{^Joining_Type:nonjoining}', "");
+    Expect(1, 918000, '\p{Joining_Type=nonjoining}', "");
+    Expect(0, 918000, '\p{^Joining_Type=nonjoining}', "");
+    Expect(0, 918000, '\P{Joining_Type=nonjoining}', "");
+    Expect(1, 918000, '\P{^Joining_Type=nonjoining}', "");
+    Expect(0, 917999, '\p{Joining_Type=nonjoining}', "");
+    Expect(1, 917999, '\p{^Joining_Type=nonjoining}', "");
+    Expect(1, 917999, '\P{Joining_Type=nonjoining}', "");
+    Expect(0, 917999, '\P{^Joining_Type=nonjoining}', "");
     Expect(1, 918000, '\p{Joining_Type=:\Anonjoining\z:}', "");;
     Expect(0, 917999, '\p{Joining_Type=:\Anonjoining\z:}', "");;
-    Expect(1, 918000, '\p{Joining_Type=__NON_JOINING}', "");
-    Expect(0, 918000, '\p{^Joining_Type=__NON_JOINING}', "");
-    Expect(0, 918000, '\P{Joining_Type=__NON_JOINING}', "");
-    Expect(1, 918000, '\P{^Joining_Type=__NON_JOINING}', "");
-    Expect(0, 917999, '\p{Joining_Type=__NON_JOINING}', "");
-    Expect(1, 917999, '\p{^Joining_Type=__NON_JOINING}', "");
-    Expect(1, 917999, '\P{Joining_Type=__NON_JOINING}', "");
-    Expect(0, 917999, '\P{^Joining_Type=__NON_JOINING}', "");
-    Error('\p{Jt=_-U:=}');
-    Error('\P{Jt=_-U:=}');
+    Expect(1, 918000, '\p{Joining_Type=-	Non_Joining}', "");
+    Expect(0, 918000, '\p{^Joining_Type=-	Non_Joining}', "");
+    Expect(0, 918000, '\P{Joining_Type=-	Non_Joining}', "");
+    Expect(1, 918000, '\P{^Joining_Type=-	Non_Joining}', "");
+    Expect(0, 917999, '\p{Joining_Type=-	Non_Joining}', "");
+    Expect(1, 917999, '\p{^Joining_Type=-	Non_Joining}', "");
+    Expect(1, 917999, '\P{Joining_Type=-	Non_Joining}', "");
+    Expect(0, 917999, '\P{^Joining_Type=-	Non_Joining}', "");
+    Error('\p{Jt=:=_u}');
+    Error('\P{Jt=:=_u}');
     Expect(1, 918000, '\p{Jt=:\AU\z:}', "");;
     Expect(0, 917999, '\p{Jt=:\AU\z:}', "");;
     Expect(1, 918000, '\p{Jt=u}', "");
@@ -62207,16 +62789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^Jt=u}', "");
     Expect(1, 918000, '\p{Jt=:\Au\z:}', "");;
     Expect(0, 917999, '\p{Jt=:\Au\z:}', "");;
-    Expect(1, 918000, '\p{Jt=  u}', "");
-    Expect(0, 918000, '\p{^Jt=  u}', "");
-    Expect(0, 918000, '\P{Jt=  u}', "");
-    Expect(1, 918000, '\P{^Jt=  u}', "");
-    Expect(0, 917999, '\p{Jt=  u}', "");
-    Expect(1, 917999, '\p{^Jt=  u}', "");
-    Expect(1, 917999, '\P{Jt=  u}', "");
-    Expect(0, 917999, '\P{^Jt=  u}', "");
-    Error('\p{Is_Joining_Type=	:=NON_Joining}');
-    Error('\P{Is_Joining_Type=	:=NON_Joining}');
+    Expect(1, 918000, '\p{Jt=_	u}', "");
+    Expect(0, 918000, '\p{^Jt=_	u}', "");
+    Expect(0, 918000, '\P{Jt=_	u}', "");
+    Expect(1, 918000, '\P{^Jt=_	u}', "");
+    Expect(0, 917999, '\p{Jt=_	u}', "");
+    Expect(1, 917999, '\p{^Jt=_	u}', "");
+    Expect(1, 917999, '\P{Jt=_	u}', "");
+    Expect(0, 917999, '\P{^Jt=_	u}', "");
+    Error('\p{Is_Joining_Type=/a/ NON_JOINING}');
+    Error('\P{Is_Joining_Type=/a/ NON_JOINING}');
     Expect(1, 918000, '\p{Is_Joining_Type=nonjoining}', "");
     Expect(0, 918000, '\p{^Is_Joining_Type=nonjoining}', "");
     Expect(0, 918000, '\P{Is_Joining_Type=nonjoining}', "");
@@ -62225,16 +62807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_Joining_Type=nonjoining}', "");
     Expect(1, 917999, '\P{Is_Joining_Type=nonjoining}', "");
     Expect(0, 917999, '\P{^Is_Joining_Type=nonjoining}', "");
-    Expect(1, 918000, '\p{Is_Joining_Type=	-non_Joining}', "");
-    Expect(0, 918000, '\p{^Is_Joining_Type=	-non_Joining}', "");
-    Expect(0, 918000, '\P{Is_Joining_Type=	-non_Joining}', "");
-    Expect(1, 918000, '\P{^Is_Joining_Type=	-non_Joining}', "");
-    Expect(0, 917999, '\p{Is_Joining_Type=	-non_Joining}', "");
-    Expect(1, 917999, '\p{^Is_Joining_Type=	-non_Joining}', "");
-    Expect(1, 917999, '\P{Is_Joining_Type=	-non_Joining}', "");
-    Expect(0, 917999, '\P{^Is_Joining_Type=	-non_Joining}', "");
-    Error('\p{Is_Jt=:=U}');
-    Error('\P{Is_Jt=:=U}');
+    Expect(1, 918000, '\p{Is_Joining_Type:_Non_Joining}', "");
+    Expect(0, 918000, '\p{^Is_Joining_Type:_Non_Joining}', "");
+    Expect(0, 918000, '\P{Is_Joining_Type:_Non_Joining}', "");
+    Expect(1, 918000, '\P{^Is_Joining_Type:_Non_Joining}', "");
+    Expect(0, 917999, '\p{Is_Joining_Type:_Non_Joining}', "");
+    Expect(1, 917999, '\p{^Is_Joining_Type:_Non_Joining}', "");
+    Expect(1, 917999, '\P{Is_Joining_Type:_Non_Joining}', "");
+    Expect(0, 917999, '\P{^Is_Joining_Type:_Non_Joining}', "");
+    Error('\p{Is_Jt:	:=U}');
+    Error('\P{Is_Jt:	:=U}');
     Expect(1, 918000, '\p{Is_Jt=u}', "");
     Expect(0, 918000, '\p{^Is_Jt=u}', "");
     Expect(0, 918000, '\P{Is_Jt=u}', "");
@@ -62243,20 +62825,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_Jt=u}', "");
     Expect(1, 917999, '\P{Is_Jt=u}', "");
     Expect(0, 917999, '\P{^Is_Jt=u}', "");
-    Expect(1, 918000, '\p{Is_Jt:	- U}', "");
-    Expect(0, 918000, '\p{^Is_Jt:	- U}', "");
-    Expect(0, 918000, '\P{Is_Jt:	- U}', "");
-    Expect(1, 918000, '\P{^Is_Jt:	- U}', "");
-    Expect(0, 917999, '\p{Is_Jt:	- U}', "");
-    Expect(1, 917999, '\p{^Is_Jt:	- U}', "");
-    Expect(1, 917999, '\P{Is_Jt:	- U}', "");
-    Expect(0, 917999, '\P{^Is_Jt:	- U}', "");
+    Expect(1, 918000, '\p{Is_Jt=_	U}', "");
+    Expect(0, 918000, '\p{^Is_Jt=_	U}', "");
+    Expect(0, 918000, '\P{Is_Jt=_	U}', "");
+    Expect(1, 918000, '\P{^Is_Jt=_	U}', "");
+    Expect(0, 917999, '\p{Is_Jt=_	U}', "");
+    Expect(1, 917999, '\p{^Is_Jt=_	U}', "");
+    Expect(1, 917999, '\P{Is_Jt=_	U}', "");
+    Expect(0, 917999, '\P{^Is_Jt=_	U}', "");
     Error('\p{linebreak}');
     Error('\P{linebreak}');
     Error('\p{lb}');
     Error('\P{lb}');
-    Error('\p{Line_Break=_Ambiguous/a/}');
-    Error('\P{Line_Break=_Ambiguous/a/}');
+    Error('\p{Line_Break=/a/-ambiguous}');
+    Error('\P{Line_Break=/a/-ambiguous}');
     Expect(1, 127404, '\p{Line_Break=:\AAmbiguous\z:}', "");;
     Expect(0, 127405, '\p{Line_Break=:\AAmbiguous\z:}', "");;
     Expect(1, 127404, '\p{Line_Break=ambiguous}', "");
@@ -62269,16 +62851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127405, '\P{^Line_Break=ambiguous}', "");
     Expect(1, 127404, '\p{Line_Break=:\Aambiguous\z:}', "");;
     Expect(0, 127405, '\p{Line_Break=:\Aambiguous\z:}', "");;
-    Expect(1, 127404, '\p{Line_Break=	 ambiguous}', "");
-    Expect(0, 127404, '\p{^Line_Break=	 ambiguous}', "");
-    Expect(0, 127404, '\P{Line_Break=	 ambiguous}', "");
-    Expect(1, 127404, '\P{^Line_Break=	 ambiguous}', "");
-    Expect(0, 127405, '\p{Line_Break=	 ambiguous}', "");
-    Expect(1, 127405, '\p{^Line_Break=	 ambiguous}', "");
-    Expect(1, 127405, '\P{Line_Break=	 ambiguous}', "");
-    Expect(0, 127405, '\P{^Line_Break=	 ambiguous}', "");
-    Error('\p{Lb=_	ai/a/}');
-    Error('\P{Lb=_	ai/a/}');
+    Expect(1, 127404, '\p{Line_Break=__Ambiguous}', "");
+    Expect(0, 127404, '\p{^Line_Break=__Ambiguous}', "");
+    Expect(0, 127404, '\P{Line_Break=__Ambiguous}', "");
+    Expect(1, 127404, '\P{^Line_Break=__Ambiguous}', "");
+    Expect(0, 127405, '\p{Line_Break=__Ambiguous}', "");
+    Expect(1, 127405, '\p{^Line_Break=__Ambiguous}', "");
+    Expect(1, 127405, '\P{Line_Break=__Ambiguous}', "");
+    Expect(0, 127405, '\P{^Line_Break=__Ambiguous}', "");
+    Error('\p{Lb:	:=_AI}');
+    Error('\P{Lb:	:=_AI}');
     Expect(1, 127404, '\p{Lb=:\AAI\z:}', "");;
     Expect(0, 127405, '\p{Lb=:\AAI\z:}', "");;
     Expect(1, 127404, '\p{Lb=ai}', "");
@@ -62291,34 +62873,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127405, '\P{^Lb=ai}', "");
     Expect(1, 127404, '\p{Lb=:\Aai\z:}', "");;
     Expect(0, 127405, '\p{Lb=:\Aai\z:}', "");;
-    Expect(1, 127404, '\p{Lb=__AI}', "");
-    Expect(0, 127404, '\p{^Lb=__AI}', "");
-    Expect(0, 127404, '\P{Lb=__AI}', "");
-    Expect(1, 127404, '\P{^Lb=__AI}', "");
-    Expect(0, 127405, '\p{Lb=__AI}', "");
-    Expect(1, 127405, '\p{^Lb=__AI}', "");
-    Expect(1, 127405, '\P{Lb=__AI}', "");
-    Expect(0, 127405, '\P{^Lb=__AI}', "");
-    Error('\p{Is_Line_Break=:= ambiguous}');
-    Error('\P{Is_Line_Break=:= ambiguous}');
-    Expect(1, 127404, '\p{Is_Line_Break: ambiguous}', "");
-    Expect(0, 127404, '\p{^Is_Line_Break: ambiguous}', "");
-    Expect(0, 127404, '\P{Is_Line_Break: ambiguous}', "");
-    Expect(1, 127404, '\P{^Is_Line_Break: ambiguous}', "");
-    Expect(0, 127405, '\p{Is_Line_Break: ambiguous}', "");
-    Expect(1, 127405, '\p{^Is_Line_Break: ambiguous}', "");
-    Expect(1, 127405, '\P{Is_Line_Break: ambiguous}', "");
-    Expect(0, 127405, '\P{^Is_Line_Break: ambiguous}', "");
-    Expect(1, 127404, '\p{Is_Line_Break: __Ambiguous}', "");
-    Expect(0, 127404, '\p{^Is_Line_Break: __Ambiguous}', "");
-    Expect(0, 127404, '\P{Is_Line_Break: __Ambiguous}', "");
-    Expect(1, 127404, '\P{^Is_Line_Break: __Ambiguous}', "");
-    Expect(0, 127405, '\p{Is_Line_Break: __Ambiguous}', "");
-    Expect(1, 127405, '\p{^Is_Line_Break: __Ambiguous}', "");
-    Expect(1, 127405, '\P{Is_Line_Break: __Ambiguous}', "");
-    Expect(0, 127405, '\P{^Is_Line_Break: __Ambiguous}', "");
-    Error('\p{Is_Lb=	AI/a/}');
-    Error('\P{Is_Lb=	AI/a/}');
+    Expect(1, 127404, '\p{Lb= AI}', "");
+    Expect(0, 127404, '\p{^Lb= AI}', "");
+    Expect(0, 127404, '\P{Lb= AI}', "");
+    Expect(1, 127404, '\P{^Lb= AI}', "");
+    Expect(0, 127405, '\p{Lb= AI}', "");
+    Expect(1, 127405, '\p{^Lb= AI}', "");
+    Expect(1, 127405, '\P{Lb= AI}', "");
+    Expect(0, 127405, '\P{^Lb= AI}', "");
+    Error('\p{Is_Line_Break=	:=Ambiguous}');
+    Error('\P{Is_Line_Break=	:=Ambiguous}');
+    Expect(1, 127404, '\p{Is_Line_Break=ambiguous}', "");
+    Expect(0, 127404, '\p{^Is_Line_Break=ambiguous}', "");
+    Expect(0, 127404, '\P{Is_Line_Break=ambiguous}', "");
+    Expect(1, 127404, '\P{^Is_Line_Break=ambiguous}', "");
+    Expect(0, 127405, '\p{Is_Line_Break=ambiguous}', "");
+    Expect(1, 127405, '\p{^Is_Line_Break=ambiguous}', "");
+    Expect(1, 127405, '\P{Is_Line_Break=ambiguous}', "");
+    Expect(0, 127405, '\P{^Is_Line_Break=ambiguous}', "");
+    Expect(1, 127404, '\p{Is_Line_Break=	Ambiguous}', "");
+    Expect(0, 127404, '\p{^Is_Line_Break=	Ambiguous}', "");
+    Expect(0, 127404, '\P{Is_Line_Break=	Ambiguous}', "");
+    Expect(1, 127404, '\P{^Is_Line_Break=	Ambiguous}', "");
+    Expect(0, 127405, '\p{Is_Line_Break=	Ambiguous}', "");
+    Expect(1, 127405, '\p{^Is_Line_Break=	Ambiguous}', "");
+    Expect(1, 127405, '\P{Is_Line_Break=	Ambiguous}', "");
+    Expect(0, 127405, '\P{^Is_Line_Break=	Ambiguous}', "");
+    Error('\p{Is_Lb:-_ai:=}');
+    Error('\P{Is_Lb:-_ai:=}');
     Expect(1, 127404, '\p{Is_Lb=ai}', "");
     Expect(0, 127404, '\p{^Is_Lb=ai}', "");
     Expect(0, 127404, '\P{Is_Lb=ai}', "");
@@ -62327,16 +62909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 127405, '\p{^Is_Lb=ai}', "");
     Expect(1, 127405, '\P{Is_Lb=ai}', "");
     Expect(0, 127405, '\P{^Is_Lb=ai}', "");
-    Expect(1, 127404, '\p{Is_Lb=AI}', "");
-    Expect(0, 127404, '\p{^Is_Lb=AI}', "");
-    Expect(0, 127404, '\P{Is_Lb=AI}', "");
-    Expect(1, 127404, '\P{^Is_Lb=AI}', "");
-    Expect(0, 127405, '\p{Is_Lb=AI}', "");
-    Expect(1, 127405, '\p{^Is_Lb=AI}', "");
-    Expect(1, 127405, '\P{Is_Lb=AI}', "");
-    Expect(0, 127405, '\P{^Is_Lb=AI}', "");
-    Error('\p{Line_Break=	:=Alphabetic}');
-    Error('\P{Line_Break=	:=Alphabetic}');
+    Expect(1, 127404, '\p{Is_Lb=	-AI}', "");
+    Expect(0, 127404, '\p{^Is_Lb=	-AI}', "");
+    Expect(0, 127404, '\P{Is_Lb=	-AI}', "");
+    Expect(1, 127404, '\P{^Is_Lb=	-AI}', "");
+    Expect(0, 127405, '\p{Is_Lb=	-AI}', "");
+    Expect(1, 127405, '\p{^Is_Lb=	-AI}', "");
+    Expect(1, 127405, '\P{Is_Lb=	-AI}', "");
+    Expect(0, 127405, '\P{^Is_Lb=	-AI}', "");
+    Error('\p{Line_Break=:= _alphabetic}');
+    Error('\P{Line_Break=:= _alphabetic}');
     Expect(1, 129994, '\p{Line_Break=:\AAlphabetic\z:}', "");;
     Expect(0, 129995, '\p{Line_Break=:\AAlphabetic\z:}', "");;
     Expect(1, 129994, '\p{Line_Break=alphabetic}', "");
@@ -62349,16 +62931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^Line_Break=alphabetic}', "");
     Expect(1, 129994, '\p{Line_Break=:\Aalphabetic\z:}', "");;
     Expect(0, 129995, '\p{Line_Break=:\Aalphabetic\z:}', "");;
-    Expect(1, 129994, '\p{Line_Break=		Alphabetic}', "");
-    Expect(0, 129994, '\p{^Line_Break=		Alphabetic}', "");
-    Expect(0, 129994, '\P{Line_Break=		Alphabetic}', "");
-    Expect(1, 129994, '\P{^Line_Break=		Alphabetic}', "");
-    Expect(0, 129995, '\p{Line_Break=		Alphabetic}', "");
-    Expect(1, 129995, '\p{^Line_Break=		Alphabetic}', "");
-    Expect(1, 129995, '\P{Line_Break=		Alphabetic}', "");
-    Expect(0, 129995, '\P{^Line_Break=		Alphabetic}', "");
-    Error('\p{Lb=/a/	 AL}');
-    Error('\P{Lb=/a/	 AL}');
+    Expect(1, 129994, '\p{Line_Break=_	ALPHABETIC}', "");
+    Expect(0, 129994, '\p{^Line_Break=_	ALPHABETIC}', "");
+    Expect(0, 129994, '\P{Line_Break=_	ALPHABETIC}', "");
+    Expect(1, 129994, '\P{^Line_Break=_	ALPHABETIC}', "");
+    Expect(0, 129995, '\p{Line_Break=_	ALPHABETIC}', "");
+    Expect(1, 129995, '\p{^Line_Break=_	ALPHABETIC}', "");
+    Expect(1, 129995, '\P{Line_Break=_	ALPHABETIC}', "");
+    Expect(0, 129995, '\P{^Line_Break=_	ALPHABETIC}', "");
+    Error('\p{Lb=:=	_AL}');
+    Error('\P{Lb=:=	_AL}');
     Expect(1, 129994, '\p{Lb=:\AAL\z:}', "");;
     Expect(0, 129995, '\p{Lb=:\AAL\z:}', "");;
     Expect(1, 129994, '\p{Lb=al}', "");
@@ -62371,16 +62953,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 129995, '\P{^Lb=al}', "");
     Expect(1, 129994, '\p{Lb=:\Aal\z:}', "");;
     Expect(0, 129995, '\p{Lb=:\Aal\z:}', "");;
-    Expect(1, 129994, '\p{Lb:   -_AL}', "");
-    Expect(0, 129994, '\p{^Lb:   -_AL}', "");
-    Expect(0, 129994, '\P{Lb:   -_AL}', "");
-    Expect(1, 129994, '\P{^Lb:   -_AL}', "");
-    Expect(0, 129995, '\p{Lb:   -_AL}', "");
-    Expect(1, 129995, '\p{^Lb:   -_AL}', "");
-    Expect(1, 129995, '\P{Lb:   -_AL}', "");
-    Expect(0, 129995, '\P{^Lb:   -_AL}', "");
-    Error('\p{Is_Line_Break:_:=Alphabetic}');
-    Error('\P{Is_Line_Break:_:=Alphabetic}');
+    Expect(1, 129994, '\p{Lb=-AL}', "");
+    Expect(0, 129994, '\p{^Lb=-AL}', "");
+    Expect(0, 129994, '\P{Lb=-AL}', "");
+    Expect(1, 129994, '\P{^Lb=-AL}', "");
+    Expect(0, 129995, '\p{Lb=-AL}', "");
+    Expect(1, 129995, '\p{^Lb=-AL}', "");
+    Expect(1, 129995, '\P{Lb=-AL}', "");
+    Expect(0, 129995, '\P{^Lb=-AL}', "");
+    Error('\p{Is_Line_Break:   	-Alphabetic:=}');
+    Error('\P{Is_Line_Break:   	-Alphabetic:=}');
     Expect(1, 129994, '\p{Is_Line_Break=alphabetic}', "");
     Expect(0, 129994, '\p{^Is_Line_Break=alphabetic}', "");
     Expect(0, 129994, '\P{Is_Line_Break=alphabetic}', "");
@@ -62389,16 +62971,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Line_Break=alphabetic}', "");
     Expect(1, 129995, '\P{Is_Line_Break=alphabetic}', "");
     Expect(0, 129995, '\P{^Is_Line_Break=alphabetic}', "");
-    Expect(1, 129994, '\p{Is_Line_Break=	Alphabetic}', "");
-    Expect(0, 129994, '\p{^Is_Line_Break=	Alphabetic}', "");
-    Expect(0, 129994, '\P{Is_Line_Break=	Alphabetic}', "");
-    Expect(1, 129994, '\P{^Is_Line_Break=	Alphabetic}', "");
-    Expect(0, 129995, '\p{Is_Line_Break=	Alphabetic}', "");
-    Expect(1, 129995, '\p{^Is_Line_Break=	Alphabetic}', "");
-    Expect(1, 129995, '\P{Is_Line_Break=	Alphabetic}', "");
-    Expect(0, 129995, '\P{^Is_Line_Break=	Alphabetic}', "");
-    Error('\p{Is_Lb= al:=}');
-    Error('\P{Is_Lb= al:=}');
+    Expect(1, 129994, '\p{Is_Line_Break= Alphabetic}', "");
+    Expect(0, 129994, '\p{^Is_Line_Break= Alphabetic}', "");
+    Expect(0, 129994, '\P{Is_Line_Break= Alphabetic}', "");
+    Expect(1, 129994, '\P{^Is_Line_Break= Alphabetic}', "");
+    Expect(0, 129995, '\p{Is_Line_Break= Alphabetic}', "");
+    Expect(1, 129995, '\p{^Is_Line_Break= Alphabetic}', "");
+    Expect(1, 129995, '\P{Is_Line_Break= Alphabetic}', "");
+    Expect(0, 129995, '\P{^Is_Line_Break= Alphabetic}', "");
+    Error('\p{Is_Lb=-:=AL}');
+    Error('\P{Is_Lb=-:=AL}');
     Expect(1, 129994, '\p{Is_Lb=al}', "");
     Expect(0, 129994, '\p{^Is_Lb=al}', "");
     Expect(0, 129994, '\P{Is_Lb=al}', "");
@@ -62407,16 +62989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 129995, '\p{^Is_Lb=al}', "");
     Expect(1, 129995, '\P{Is_Lb=al}', "");
     Expect(0, 129995, '\P{^Is_Lb=al}', "");
-    Expect(1, 129994, '\p{Is_Lb=--AL}', "");
-    Expect(0, 129994, '\p{^Is_Lb=--AL}', "");
-    Expect(0, 129994, '\P{Is_Lb=--AL}', "");
-    Expect(1, 129994, '\P{^Is_Lb=--AL}', "");
-    Expect(0, 129995, '\p{Is_Lb=--AL}', "");
-    Expect(1, 129995, '\p{^Is_Lb=--AL}', "");
-    Expect(1, 129995, '\P{Is_Lb=--AL}', "");
-    Expect(0, 129995, '\P{^Is_Lb=--AL}', "");
-    Error('\p{Line_Break=/a/_-Break_Both}');
-    Error('\P{Line_Break=/a/_-Break_Both}');
+    Expect(1, 129994, '\p{Is_Lb=	AL}', "");
+    Expect(0, 129994, '\p{^Is_Lb=	AL}', "");
+    Expect(0, 129994, '\P{Is_Lb=	AL}', "");
+    Expect(1, 129994, '\P{^Is_Lb=	AL}', "");
+    Expect(0, 129995, '\p{Is_Lb=	AL}', "");
+    Expect(1, 129995, '\p{^Is_Lb=	AL}', "");
+    Expect(1, 129995, '\P{Is_Lb=	AL}', "");
+    Expect(0, 129995, '\P{^Is_Lb=	AL}', "");
+    Error('\p{Line_Break=:=	BREAK_BOTH}');
+    Error('\P{Line_Break=:=	BREAK_BOTH}');
     Expect(1, 11835, '\p{Line_Break=:\ABreak_Both\z:}', "");;
     Expect(0, 11836, '\p{Line_Break=:\ABreak_Both\z:}', "");;
     Expect(1, 11835, '\p{Line_Break=breakboth}', "");
@@ -62429,16 +63011,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11836, '\P{^Line_Break=breakboth}', "");
     Expect(1, 11835, '\p{Line_Break=:\Abreakboth\z:}', "");;
     Expect(0, 11836, '\p{Line_Break=:\Abreakboth\z:}', "");;
-    Expect(1, 11835, '\p{Line_Break=break_both}', "");
-    Expect(0, 11835, '\p{^Line_Break=break_both}', "");
-    Expect(0, 11835, '\P{Line_Break=break_both}', "");
-    Expect(1, 11835, '\P{^Line_Break=break_both}', "");
-    Expect(0, 11836, '\p{Line_Break=break_both}', "");
-    Expect(1, 11836, '\p{^Line_Break=break_both}', "");
-    Expect(1, 11836, '\P{Line_Break=break_both}', "");
-    Expect(0, 11836, '\P{^Line_Break=break_both}', "");
-    Error('\p{Lb=_-B2:=}');
-    Error('\P{Lb=_-B2:=}');
+    Expect(1, 11835, '\p{Line_Break=-_break_Both}', "");
+    Expect(0, 11835, '\p{^Line_Break=-_break_Both}', "");
+    Expect(0, 11835, '\P{Line_Break=-_break_Both}', "");
+    Expect(1, 11835, '\P{^Line_Break=-_break_Both}', "");
+    Expect(0, 11836, '\p{Line_Break=-_break_Both}', "");
+    Expect(1, 11836, '\p{^Line_Break=-_break_Both}', "");
+    Expect(1, 11836, '\P{Line_Break=-_break_Both}', "");
+    Expect(0, 11836, '\P{^Line_Break=-_break_Both}', "");
+    Error('\p{Lb= 	B2:=}');
+    Error('\P{Lb= 	B2:=}');
     Expect(1, 11835, '\p{Lb=:\AB2\z:}', "");;
     Expect(0, 11836, '\p{Lb=:\AB2\z:}', "");;
     Expect(1, 11835, '\p{Lb=b2}', "");
@@ -62451,16 +63033,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 11836, '\P{^Lb=b2}', "");
     Expect(1, 11835, '\p{Lb=:\Ab2\z:}', "");;
     Expect(0, 11836, '\p{Lb=:\Ab2\z:}', "");;
-    Expect(1, 11835, '\p{Lb=_	B2}', "");
-    Expect(0, 11835, '\p{^Lb=_	B2}', "");
-    Expect(0, 11835, '\P{Lb=_	B2}', "");
-    Expect(1, 11835, '\P{^Lb=_	B2}', "");
-    Expect(0, 11836, '\p{Lb=_	B2}', "");
-    Expect(1, 11836, '\p{^Lb=_	B2}', "");
-    Expect(1, 11836, '\P{Lb=_	B2}', "");
-    Expect(0, 11836, '\P{^Lb=_	B2}', "");
-    Error('\p{Is_Line_Break=	_Break_both:=}');
-    Error('\P{Is_Line_Break=	_Break_both:=}');
+    Expect(1, 11835, '\p{Lb=		B2}', "");
+    Expect(0, 11835, '\p{^Lb=		B2}', "");
+    Expect(0, 11835, '\P{Lb=		B2}', "");
+    Expect(1, 11835, '\P{^Lb=		B2}', "");
+    Expect(0, 11836, '\p{Lb=		B2}', "");
+    Expect(1, 11836, '\p{^Lb=		B2}', "");
+    Expect(1, 11836, '\P{Lb=		B2}', "");
+    Expect(0, 11836, '\P{^Lb=		B2}', "");
+    Error('\p{Is_Line_Break=:=-	Break_both}');
+    Error('\P{Is_Line_Break=:=-	Break_both}');
     Expect(1, 11835, '\p{Is_Line_Break=breakboth}', "");
     Expect(0, 11835, '\p{^Is_Line_Break=breakboth}', "");
     Expect(0, 11835, '\P{Is_Line_Break=breakboth}', "");
@@ -62469,56 +63051,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11836, '\p{^Is_Line_Break=breakboth}', "");
     Expect(1, 11836, '\P{Is_Line_Break=breakboth}', "");
     Expect(0, 11836, '\P{^Is_Line_Break=breakboth}', "");
-    Expect(1, 11835, '\p{Is_Line_Break=__Break_Both}', "");
-    Expect(0, 11835, '\p{^Is_Line_Break=__Break_Both}', "");
-    Expect(0, 11835, '\P{Is_Line_Break=__Break_Both}', "");
-    Expect(1, 11835, '\P{^Is_Line_Break=__Break_Both}', "");
-    Expect(0, 11836, '\p{Is_Line_Break=__Break_Both}', "");
-    Expect(1, 11836, '\p{^Is_Line_Break=__Break_Both}', "");
-    Expect(1, 11836, '\P{Is_Line_Break=__Break_Both}', "");
-    Expect(0, 11836, '\P{^Is_Line_Break=__Break_Both}', "");
-    Error('\p{Is_Lb=	:=b2}');
-    Error('\P{Is_Lb=	:=b2}');
-    Expect(1, 11835, '\p{Is_Lb=b2}', "");
-    Expect(0, 11835, '\p{^Is_Lb=b2}', "");
-    Expect(0, 11835, '\P{Is_Lb=b2}', "");
-    Expect(1, 11835, '\P{^Is_Lb=b2}', "");
-    Expect(0, 11836, '\p{Is_Lb=b2}', "");
-    Expect(1, 11836, '\p{^Is_Lb=b2}', "");
-    Expect(1, 11836, '\P{Is_Lb=b2}', "");
-    Expect(0, 11836, '\P{^Is_Lb=b2}', "");
-    Expect(1, 11835, '\p{Is_Lb= B2}', "");
-    Expect(0, 11835, '\p{^Is_Lb= B2}', "");
-    Expect(0, 11835, '\P{Is_Lb= B2}', "");
-    Expect(1, 11835, '\P{^Is_Lb= B2}', "");
-    Expect(0, 11836, '\p{Is_Lb= B2}', "");
-    Expect(1, 11836, '\p{^Is_Lb= B2}', "");
-    Expect(1, 11836, '\P{Is_Lb= B2}', "");
-    Expect(0, 11836, '\P{^Is_Lb= B2}', "");
-    Error('\p{Line_Break=/a/BREAK_After}');
-    Error('\P{Line_Break=/a/BREAK_After}');
+    Expect(1, 11835, '\p{Is_Line_Break=	 Break_both}', "");
+    Expect(0, 11835, '\p{^Is_Line_Break=	 Break_both}', "");
+    Expect(0, 11835, '\P{Is_Line_Break=	 Break_both}', "");
+    Expect(1, 11835, '\P{^Is_Line_Break=	 Break_both}', "");
+    Expect(0, 11836, '\p{Is_Line_Break=	 Break_both}', "");
+    Expect(1, 11836, '\p{^Is_Line_Break=	 Break_both}', "");
+    Expect(1, 11836, '\P{Is_Line_Break=	 Break_both}', "");
+    Expect(0, 11836, '\P{^Is_Line_Break=	 Break_both}', "");
+    Error('\p{Is_Lb=-/a/B2}');
+    Error('\P{Is_Lb=-/a/B2}');
+    Expect(1, 11835, '\p{Is_Lb: b2}', "");
+    Expect(0, 11835, '\p{^Is_Lb: b2}', "");
+    Expect(0, 11835, '\P{Is_Lb: b2}', "");
+    Expect(1, 11835, '\P{^Is_Lb: b2}', "");
+    Expect(0, 11836, '\p{Is_Lb: b2}', "");
+    Expect(1, 11836, '\p{^Is_Lb: b2}', "");
+    Expect(1, 11836, '\P{Is_Lb: b2}', "");
+    Expect(0, 11836, '\P{^Is_Lb: b2}', "");
+    Expect(1, 11835, '\p{Is_Lb=__B2}', "");
+    Expect(0, 11835, '\p{^Is_Lb=__B2}', "");
+    Expect(0, 11835, '\P{Is_Lb=__B2}', "");
+    Expect(1, 11835, '\P{^Is_Lb=__B2}', "");
+    Expect(0, 11836, '\p{Is_Lb=__B2}', "");
+    Expect(1, 11836, '\p{^Is_Lb=__B2}', "");
+    Expect(1, 11836, '\P{Is_Lb=__B2}', "");
+    Expect(0, 11836, '\P{^Is_Lb=__B2}', "");
+    Error('\p{Line_Break=:=	Break_AFTER}');
+    Error('\P{Line_Break=:=	Break_AFTER}');
     Expect(1, 121482, '\p{Line_Break=:\ABreak_After\z:}', "");;
     Expect(0, 121483, '\p{Line_Break=:\ABreak_After\z:}', "");;
-    Expect(1, 121482, '\p{Line_Break: breakafter}', "");
-    Expect(0, 121482, '\p{^Line_Break: breakafter}', "");
-    Expect(0, 121482, '\P{Line_Break: breakafter}', "");
-    Expect(1, 121482, '\P{^Line_Break: breakafter}', "");
-    Expect(0, 121483, '\p{Line_Break: breakafter}', "");
-    Expect(1, 121483, '\p{^Line_Break: breakafter}', "");
-    Expect(1, 121483, '\P{Line_Break: breakafter}', "");
-    Expect(0, 121483, '\P{^Line_Break: breakafter}', "");
+    Expect(1, 121482, '\p{Line_Break=breakafter}', "");
+    Expect(0, 121482, '\p{^Line_Break=breakafter}', "");
+    Expect(0, 121482, '\P{Line_Break=breakafter}', "");
+    Expect(1, 121482, '\P{^Line_Break=breakafter}', "");
+    Expect(0, 121483, '\p{Line_Break=breakafter}', "");
+    Expect(1, 121483, '\p{^Line_Break=breakafter}', "");
+    Expect(1, 121483, '\P{Line_Break=breakafter}', "");
+    Expect(0, 121483, '\P{^Line_Break=breakafter}', "");
     Expect(1, 121482, '\p{Line_Break=:\Abreakafter\z:}', "");;
     Expect(0, 121483, '\p{Line_Break=:\Abreakafter\z:}', "");;
-    Expect(1, 121482, '\p{Line_Break=-Break_AFTER}', "");
-    Expect(0, 121482, '\p{^Line_Break=-Break_AFTER}', "");
-    Expect(0, 121482, '\P{Line_Break=-Break_AFTER}', "");
-    Expect(1, 121482, '\P{^Line_Break=-Break_AFTER}', "");
-    Expect(0, 121483, '\p{Line_Break=-Break_AFTER}', "");
-    Expect(1, 121483, '\p{^Line_Break=-Break_AFTER}', "");
-    Expect(1, 121483, '\P{Line_Break=-Break_AFTER}', "");
-    Expect(0, 121483, '\P{^Line_Break=-Break_AFTER}', "");
-    Error('\p{Lb=/a/BA}');
-    Error('\P{Lb=/a/BA}');
+    Expect(1, 121482, '\p{Line_Break=__Break_After}', "");
+    Expect(0, 121482, '\p{^Line_Break=__Break_After}', "");
+    Expect(0, 121482, '\P{Line_Break=__Break_After}', "");
+    Expect(1, 121482, '\P{^Line_Break=__Break_After}', "");
+    Expect(0, 121483, '\p{Line_Break=__Break_After}', "");
+    Expect(1, 121483, '\p{^Line_Break=__Break_After}', "");
+    Expect(1, 121483, '\P{Line_Break=__Break_After}', "");
+    Expect(0, 121483, '\P{^Line_Break=__Break_After}', "");
+    Error('\p{Lb=	BA/a/}');
+    Error('\P{Lb=	BA/a/}');
     Expect(1, 121482, '\p{Lb=:\ABA\z:}', "");;
     Expect(0, 121483, '\p{Lb=:\ABA\z:}', "");;
     Expect(1, 121482, '\p{Lb=ba}', "");
@@ -62539,8 +63121,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 121483, '\p{^Lb=-BA}', "");
     Expect(1, 121483, '\P{Lb=-BA}', "");
     Expect(0, 121483, '\P{^Lb=-BA}', "");
-    Error('\p{Is_Line_Break=:=	_Break_after}');
-    Error('\P{Is_Line_Break=:=	_Break_after}');
+    Error('\p{Is_Line_Break:	_/a/Break_After}');
+    Error('\P{Is_Line_Break:	_/a/Break_After}');
     Expect(1, 121482, '\p{Is_Line_Break=breakafter}', "");
     Expect(0, 121482, '\p{^Is_Line_Break=breakafter}', "");
     Expect(0, 121482, '\P{Is_Line_Break=breakafter}', "");
@@ -62549,16 +63131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 121483, '\p{^Is_Line_Break=breakafter}', "");
     Expect(1, 121483, '\P{Is_Line_Break=breakafter}', "");
     Expect(0, 121483, '\P{^Is_Line_Break=breakafter}', "");
-    Expect(1, 121482, '\p{Is_Line_Break=  break_after}', "");
-    Expect(0, 121482, '\p{^Is_Line_Break=  break_after}', "");
-    Expect(0, 121482, '\P{Is_Line_Break=  break_after}', "");
-    Expect(1, 121482, '\P{^Is_Line_Break=  break_after}', "");
-    Expect(0, 121483, '\p{Is_Line_Break=  break_after}', "");
-    Expect(1, 121483, '\p{^Is_Line_Break=  break_after}', "");
-    Expect(1, 121483, '\P{Is_Line_Break=  break_after}', "");
-    Expect(0, 121483, '\P{^Is_Line_Break=  break_after}', "");
-    Error('\p{Is_Lb=	BA/a/}');
-    Error('\P{Is_Lb=	BA/a/}');
+    Expect(1, 121482, '\p{Is_Line_Break=BREAK_After}', "");
+    Expect(0, 121482, '\p{^Is_Line_Break=BREAK_After}', "");
+    Expect(0, 121482, '\P{Is_Line_Break=BREAK_After}', "");
+    Expect(1, 121482, '\P{^Is_Line_Break=BREAK_After}', "");
+    Expect(0, 121483, '\p{Is_Line_Break=BREAK_After}', "");
+    Expect(1, 121483, '\p{^Is_Line_Break=BREAK_After}', "");
+    Expect(1, 121483, '\P{Is_Line_Break=BREAK_After}', "");
+    Expect(0, 121483, '\P{^Is_Line_Break=BREAK_After}', "");
+    Error('\p{Is_Lb:		BA/a/}');
+    Error('\P{Is_Lb:		BA/a/}');
     Expect(1, 121482, '\p{Is_Lb=ba}', "");
     Expect(0, 121482, '\p{^Is_Lb=ba}', "");
     Expect(0, 121482, '\P{Is_Lb=ba}', "");
@@ -62567,16 +63149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 121483, '\p{^Is_Lb=ba}', "");
     Expect(1, 121483, '\P{Is_Lb=ba}', "");
     Expect(0, 121483, '\P{^Is_Lb=ba}', "");
-    Expect(1, 121482, '\p{Is_Lb=_	BA}', "");
-    Expect(0, 121482, '\p{^Is_Lb=_	BA}', "");
-    Expect(0, 121482, '\P{Is_Lb=_	BA}', "");
-    Expect(1, 121482, '\P{^Is_Lb=_	BA}', "");
-    Expect(0, 121483, '\p{Is_Lb=_	BA}', "");
-    Expect(1, 121483, '\p{^Is_Lb=_	BA}', "");
-    Expect(1, 121483, '\P{Is_Lb=_	BA}', "");
-    Expect(0, 121483, '\P{^Is_Lb=_	BA}', "");
-    Error('\p{Line_Break=	 Break_BEFORE:=}');
-    Error('\P{Line_Break=	 Break_BEFORE:=}');
+    Expect(1, 121482, '\p{Is_Lb=- ba}', "");
+    Expect(0, 121482, '\p{^Is_Lb=- ba}', "");
+    Expect(0, 121482, '\P{Is_Lb=- ba}', "");
+    Expect(1, 121482, '\P{^Is_Lb=- ba}', "");
+    Expect(0, 121483, '\p{Is_Lb=- ba}', "");
+    Expect(1, 121483, '\p{^Is_Lb=- ba}', "");
+    Expect(1, 121483, '\P{Is_Lb=- ba}', "");
+    Expect(0, 121483, '\P{^Is_Lb=- ba}', "");
+    Error('\p{Line_Break=/a/__Break_Before}');
+    Error('\P{Line_Break=/a/__Break_Before}');
     Expect(1, 72816, '\p{Line_Break=:\ABreak_Before\z:}', "");;
     Expect(0, 72817, '\p{Line_Break=:\ABreak_Before\z:}', "");;
     Expect(1, 72816, '\p{Line_Break=breakbefore}', "");
@@ -62589,16 +63171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72817, '\P{^Line_Break=breakbefore}', "");
     Expect(1, 72816, '\p{Line_Break=:\Abreakbefore\z:}', "");;
     Expect(0, 72817, '\p{Line_Break=:\Abreakbefore\z:}', "");;
-    Expect(1, 72816, '\p{Line_Break:	--Break_before}', "");
-    Expect(0, 72816, '\p{^Line_Break:	--Break_before}', "");
-    Expect(0, 72816, '\P{Line_Break:	--Break_before}', "");
-    Expect(1, 72816, '\P{^Line_Break:	--Break_before}', "");
-    Expect(0, 72817, '\p{Line_Break:	--Break_before}', "");
-    Expect(1, 72817, '\p{^Line_Break:	--Break_before}', "");
-    Expect(1, 72817, '\P{Line_Break:	--Break_before}', "");
-    Expect(0, 72817, '\P{^Line_Break:	--Break_before}', "");
-    Error('\p{Lb=:=	BB}');
-    Error('\P{Lb=:=	BB}');
+    Expect(1, 72816, '\p{Line_Break=_ break_BEFORE}', "");
+    Expect(0, 72816, '\p{^Line_Break=_ break_BEFORE}', "");
+    Expect(0, 72816, '\P{Line_Break=_ break_BEFORE}', "");
+    Expect(1, 72816, '\P{^Line_Break=_ break_BEFORE}', "");
+    Expect(0, 72817, '\p{Line_Break=_ break_BEFORE}', "");
+    Expect(1, 72817, '\p{^Line_Break=_ break_BEFORE}', "");
+    Expect(1, 72817, '\P{Line_Break=_ break_BEFORE}', "");
+    Expect(0, 72817, '\P{^Line_Break=_ break_BEFORE}', "");
+    Error('\p{Lb=:=BB}');
+    Error('\P{Lb=:=BB}');
     Expect(1, 72816, '\p{Lb=:\ABB\z:}', "");;
     Expect(0, 72817, '\p{Lb=:\ABB\z:}', "");;
     Expect(1, 72816, '\p{Lb=bb}', "");
@@ -62611,16 +63193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 72817, '\P{^Lb=bb}', "");
     Expect(1, 72816, '\p{Lb=:\Abb\z:}', "");;
     Expect(0, 72817, '\p{Lb=:\Abb\z:}', "");;
-    Expect(1, 72816, '\p{Lb= BB}', "");
-    Expect(0, 72816, '\p{^Lb= BB}', "");
-    Expect(0, 72816, '\P{Lb= BB}', "");
-    Expect(1, 72816, '\P{^Lb= BB}', "");
-    Expect(0, 72817, '\p{Lb= BB}', "");
-    Expect(1, 72817, '\p{^Lb= BB}', "");
-    Expect(1, 72817, '\P{Lb= BB}', "");
-    Expect(0, 72817, '\P{^Lb= BB}', "");
-    Error('\p{Is_Line_Break:	/a/Break_Before}');
-    Error('\P{Is_Line_Break:	/a/Break_Before}');
+    Expect(1, 72816, '\p{Lb=_ BB}', "");
+    Expect(0, 72816, '\p{^Lb=_ BB}', "");
+    Expect(0, 72816, '\P{Lb=_ BB}', "");
+    Expect(1, 72816, '\P{^Lb=_ BB}', "");
+    Expect(0, 72817, '\p{Lb=_ BB}', "");
+    Expect(1, 72817, '\p{^Lb=_ BB}', "");
+    Expect(1, 72817, '\P{Lb=_ BB}', "");
+    Expect(0, 72817, '\P{^Lb=_ BB}', "");
+    Error('\p{Is_Line_Break=	/a/Break_before}');
+    Error('\P{Is_Line_Break=	/a/Break_before}');
     Expect(1, 72816, '\p{Is_Line_Break=breakbefore}', "");
     Expect(0, 72816, '\p{^Is_Line_Break=breakbefore}', "");
     Expect(0, 72816, '\P{Is_Line_Break=breakbefore}', "");
@@ -62629,56 +63211,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72817, '\p{^Is_Line_Break=breakbefore}', "");
     Expect(1, 72817, '\P{Is_Line_Break=breakbefore}', "");
     Expect(0, 72817, '\P{^Is_Line_Break=breakbefore}', "");
-    Expect(1, 72816, '\p{Is_Line_Break=_Break_Before}', "");
-    Expect(0, 72816, '\p{^Is_Line_Break=_Break_Before}', "");
-    Expect(0, 72816, '\P{Is_Line_Break=_Break_Before}', "");
-    Expect(1, 72816, '\P{^Is_Line_Break=_Break_Before}', "");
-    Expect(0, 72817, '\p{Is_Line_Break=_Break_Before}', "");
-    Expect(1, 72817, '\p{^Is_Line_Break=_Break_Before}', "");
-    Expect(1, 72817, '\P{Is_Line_Break=_Break_Before}', "");
-    Expect(0, 72817, '\P{^Is_Line_Break=_Break_Before}', "");
-    Error('\p{Is_Lb=- BB:=}');
-    Error('\P{Is_Lb=- BB:=}');
-    Expect(1, 72816, '\p{Is_Lb=bb}', "");
-    Expect(0, 72816, '\p{^Is_Lb=bb}', "");
-    Expect(0, 72816, '\P{Is_Lb=bb}', "");
-    Expect(1, 72816, '\P{^Is_Lb=bb}', "");
-    Expect(0, 72817, '\p{Is_Lb=bb}', "");
-    Expect(1, 72817, '\p{^Is_Lb=bb}', "");
-    Expect(1, 72817, '\P{Is_Lb=bb}', "");
-    Expect(0, 72817, '\P{^Is_Lb=bb}', "");
-    Expect(1, 72816, '\p{Is_Lb:	-_BB}', "");
-    Expect(0, 72816, '\p{^Is_Lb:	-_BB}', "");
-    Expect(0, 72816, '\P{Is_Lb:	-_BB}', "");
-    Expect(1, 72816, '\P{^Is_Lb:	-_BB}', "");
-    Expect(0, 72817, '\p{Is_Lb:	-_BB}', "");
-    Expect(1, 72817, '\p{^Is_Lb:	-_BB}', "");
-    Expect(1, 72817, '\P{Is_Lb:	-_BB}', "");
-    Expect(0, 72817, '\P{^Is_Lb:	-_BB}', "");
-    Error('\p{Line_Break= -Mandatory_Break:=}');
-    Error('\P{Line_Break= -Mandatory_Break:=}');
+    Expect(1, 72816, '\p{Is_Line_Break= Break_before}', "");
+    Expect(0, 72816, '\p{^Is_Line_Break= Break_before}', "");
+    Expect(0, 72816, '\P{Is_Line_Break= Break_before}', "");
+    Expect(1, 72816, '\P{^Is_Line_Break= Break_before}', "");
+    Expect(0, 72817, '\p{Is_Line_Break= Break_before}', "");
+    Expect(1, 72817, '\p{^Is_Line_Break= Break_before}', "");
+    Expect(1, 72817, '\P{Is_Line_Break= Break_before}', "");
+    Expect(0, 72817, '\P{^Is_Line_Break= Break_before}', "");
+    Error('\p{Is_Lb:		_BB:=}');
+    Error('\P{Is_Lb:		_BB:=}');
+    Expect(1, 72816, '\p{Is_Lb:   bb}', "");
+    Expect(0, 72816, '\p{^Is_Lb:   bb}', "");
+    Expect(0, 72816, '\P{Is_Lb:   bb}', "");
+    Expect(1, 72816, '\P{^Is_Lb:   bb}', "");
+    Expect(0, 72817, '\p{Is_Lb:   bb}', "");
+    Expect(1, 72817, '\p{^Is_Lb:   bb}', "");
+    Expect(1, 72817, '\P{Is_Lb:   bb}', "");
+    Expect(0, 72817, '\P{^Is_Lb:   bb}', "");
+    Expect(1, 72816, '\p{Is_Lb=		BB}', "");
+    Expect(0, 72816, '\p{^Is_Lb=		BB}', "");
+    Expect(0, 72816, '\P{Is_Lb=		BB}', "");
+    Expect(1, 72816, '\P{^Is_Lb=		BB}', "");
+    Expect(0, 72817, '\p{Is_Lb=		BB}', "");
+    Expect(1, 72817, '\p{^Is_Lb=		BB}', "");
+    Expect(1, 72817, '\P{Is_Lb=		BB}', "");
+    Expect(0, 72817, '\P{^Is_Lb=		BB}', "");
+    Error('\p{Line_Break: :=	 Mandatory_BREAK}');
+    Error('\P{Line_Break: :=	 Mandatory_BREAK}');
     Expect(1, 8233, '\p{Line_Break=:\AMandatory_Break\z:}', "");;
     Expect(0, 8234, '\p{Line_Break=:\AMandatory_Break\z:}', "");;
-    Expect(1, 8233, '\p{Line_Break=mandatorybreak}', "");
-    Expect(0, 8233, '\p{^Line_Break=mandatorybreak}', "");
-    Expect(0, 8233, '\P{Line_Break=mandatorybreak}', "");
-    Expect(1, 8233, '\P{^Line_Break=mandatorybreak}', "");
-    Expect(0, 8234, '\p{Line_Break=mandatorybreak}', "");
-    Expect(1, 8234, '\p{^Line_Break=mandatorybreak}', "");
-    Expect(1, 8234, '\P{Line_Break=mandatorybreak}', "");
-    Expect(0, 8234, '\P{^Line_Break=mandatorybreak}', "");
+    Expect(1, 8233, '\p{Line_Break:mandatorybreak}', "");
+    Expect(0, 8233, '\p{^Line_Break:mandatorybreak}', "");
+    Expect(0, 8233, '\P{Line_Break:mandatorybreak}', "");
+    Expect(1, 8233, '\P{^Line_Break:mandatorybreak}', "");
+    Expect(0, 8234, '\p{Line_Break:mandatorybreak}', "");
+    Expect(1, 8234, '\p{^Line_Break:mandatorybreak}', "");
+    Expect(1, 8234, '\P{Line_Break:mandatorybreak}', "");
+    Expect(0, 8234, '\P{^Line_Break:mandatorybreak}', "");
     Expect(1, 8233, '\p{Line_Break=:\Amandatorybreak\z:}', "");;
     Expect(0, 8234, '\p{Line_Break=:\Amandatorybreak\z:}', "");;
-    Expect(1, 8233, '\p{Line_Break=- Mandatory_BREAK}', "");
-    Expect(0, 8233, '\p{^Line_Break=- Mandatory_BREAK}', "");
-    Expect(0, 8233, '\P{Line_Break=- Mandatory_BREAK}', "");
-    Expect(1, 8233, '\P{^Line_Break=- Mandatory_BREAK}', "");
-    Expect(0, 8234, '\p{Line_Break=- Mandatory_BREAK}', "");
-    Expect(1, 8234, '\p{^Line_Break=- Mandatory_BREAK}', "");
-    Expect(1, 8234, '\P{Line_Break=- Mandatory_BREAK}', "");
-    Expect(0, 8234, '\P{^Line_Break=- Mandatory_BREAK}', "");
-    Error('\p{Lb=:=BK}');
-    Error('\P{Lb=:=BK}');
+    Expect(1, 8233, '\p{Line_Break=  mandatory_BREAK}', "");
+    Expect(0, 8233, '\p{^Line_Break=  mandatory_BREAK}', "");
+    Expect(0, 8233, '\P{Line_Break=  mandatory_BREAK}', "");
+    Expect(1, 8233, '\P{^Line_Break=  mandatory_BREAK}', "");
+    Expect(0, 8234, '\p{Line_Break=  mandatory_BREAK}', "");
+    Expect(1, 8234, '\p{^Line_Break=  mandatory_BREAK}', "");
+    Expect(1, 8234, '\P{Line_Break=  mandatory_BREAK}', "");
+    Expect(0, 8234, '\P{^Line_Break=  mandatory_BREAK}', "");
+    Error('\p{Lb=	:=BK}');
+    Error('\P{Lb=	:=BK}');
     Expect(1, 8233, '\p{Lb=:\ABK\z:}', "");;
     Expect(0, 8234, '\p{Lb=:\ABK\z:}', "");;
     Expect(1, 8233, '\p{Lb=bk}', "");
@@ -62691,16 +63273,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8234, '\P{^Lb=bk}', "");
     Expect(1, 8233, '\p{Lb=:\Abk\z:}', "");;
     Expect(0, 8234, '\p{Lb=:\Abk\z:}', "");;
-    Expect(1, 8233, '\p{Lb=	BK}', "");
-    Expect(0, 8233, '\p{^Lb=	BK}', "");
-    Expect(0, 8233, '\P{Lb=	BK}', "");
-    Expect(1, 8233, '\P{^Lb=	BK}', "");
-    Expect(0, 8234, '\p{Lb=	BK}', "");
-    Expect(1, 8234, '\p{^Lb=	BK}', "");
-    Expect(1, 8234, '\P{Lb=	BK}', "");
-    Expect(0, 8234, '\P{^Lb=	BK}', "");
-    Error('\p{Is_Line_Break:   	/a/Mandatory_break}');
-    Error('\P{Is_Line_Break:   	/a/Mandatory_break}');
+    Expect(1, 8233, '\p{Lb=  BK}', "");
+    Expect(0, 8233, '\p{^Lb=  BK}', "");
+    Expect(0, 8233, '\P{Lb=  BK}', "");
+    Expect(1, 8233, '\P{^Lb=  BK}', "");
+    Expect(0, 8234, '\p{Lb=  BK}', "");
+    Expect(1, 8234, '\p{^Lb=  BK}', "");
+    Expect(1, 8234, '\P{Lb=  BK}', "");
+    Expect(0, 8234, '\P{^Lb=  BK}', "");
+    Error('\p{Is_Line_Break: _/a/mandatory_BREAK}');
+    Error('\P{Is_Line_Break: _/a/mandatory_BREAK}');
     Expect(1, 8233, '\p{Is_Line_Break=mandatorybreak}', "");
     Expect(0, 8233, '\p{^Is_Line_Break=mandatorybreak}', "");
     Expect(0, 8233, '\P{Is_Line_Break=mandatorybreak}', "");
@@ -62709,16 +63291,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8234, '\p{^Is_Line_Break=mandatorybreak}', "");
     Expect(1, 8234, '\P{Is_Line_Break=mandatorybreak}', "");
     Expect(0, 8234, '\P{^Is_Line_Break=mandatorybreak}', "");
-    Expect(1, 8233, '\p{Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(0, 8233, '\p{^Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(0, 8233, '\P{Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(1, 8233, '\P{^Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(0, 8234, '\p{Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(1, 8234, '\p{^Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(1, 8234, '\P{Is_Line_Break=		Mandatory_BREAK}', "");
-    Expect(0, 8234, '\P{^Is_Line_Break=		Mandatory_BREAK}', "");
-    Error('\p{Is_Lb=:=_-BK}');
-    Error('\P{Is_Lb=:=_-BK}');
+    Expect(1, 8233, '\p{Is_Line_Break=		Mandatory_Break}', "");
+    Expect(0, 8233, '\p{^Is_Line_Break=		Mandatory_Break}', "");
+    Expect(0, 8233, '\P{Is_Line_Break=		Mandatory_Break}', "");
+    Expect(1, 8233, '\P{^Is_Line_Break=		Mandatory_Break}', "");
+    Expect(0, 8234, '\p{Is_Line_Break=		Mandatory_Break}', "");
+    Expect(1, 8234, '\p{^Is_Line_Break=		Mandatory_Break}', "");
+    Expect(1, 8234, '\P{Is_Line_Break=		Mandatory_Break}', "");
+    Expect(0, 8234, '\P{^Is_Line_Break=		Mandatory_Break}', "");
+    Error('\p{Is_Lb=_BK:=}');
+    Error('\P{Is_Lb=_BK:=}');
     Expect(1, 8233, '\p{Is_Lb=bk}', "");
     Expect(0, 8233, '\p{^Is_Lb=bk}', "");
     Expect(0, 8233, '\P{Is_Lb=bk}', "");
@@ -62727,16 +63309,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8234, '\p{^Is_Lb=bk}', "");
     Expect(1, 8234, '\P{Is_Lb=bk}', "");
     Expect(0, 8234, '\P{^Is_Lb=bk}', "");
-    Expect(1, 8233, '\p{Is_Lb:	 -BK}', "");
-    Expect(0, 8233, '\p{^Is_Lb:	 -BK}', "");
-    Expect(0, 8233, '\P{Is_Lb:	 -BK}', "");
-    Expect(1, 8233, '\P{^Is_Lb:	 -BK}', "");
-    Expect(0, 8234, '\p{Is_Lb:	 -BK}', "");
-    Expect(1, 8234, '\p{^Is_Lb:	 -BK}', "");
-    Expect(1, 8234, '\P{Is_Lb:	 -BK}', "");
-    Expect(0, 8234, '\P{^Is_Lb:	 -BK}', "");
-    Error('\p{Line_Break=/a/_	contingent_Break}');
-    Error('\P{Line_Break=/a/_	contingent_Break}');
+    Expect(1, 8233, '\p{Is_Lb=_ BK}', "");
+    Expect(0, 8233, '\p{^Is_Lb=_ BK}', "");
+    Expect(0, 8233, '\P{Is_Lb=_ BK}', "");
+    Expect(1, 8233, '\P{^Is_Lb=_ BK}', "");
+    Expect(0, 8234, '\p{Is_Lb=_ BK}', "");
+    Expect(1, 8234, '\p{^Is_Lb=_ BK}', "");
+    Expect(1, 8234, '\P{Is_Lb=_ BK}', "");
+    Expect(0, 8234, '\P{^Is_Lb=_ BK}', "");
+    Error('\p{Line_Break= Contingent_break:=}');
+    Error('\P{Line_Break= Contingent_break:=}');
     Expect(1, 65532, '\p{Line_Break=:\AContingent_Break\z:}', "");;
     Expect(0, 65533, '\p{Line_Break=:\AContingent_Break\z:}', "");;
     Expect(1, 65532, '\p{Line_Break=contingentbreak}', "");
@@ -62749,38 +63331,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65533, '\P{^Line_Break=contingentbreak}', "");
     Expect(1, 65532, '\p{Line_Break=:\Acontingentbreak\z:}', "");;
     Expect(0, 65533, '\p{Line_Break=:\Acontingentbreak\z:}', "");;
-    Expect(1, 65532, '\p{Line_Break=	CONTINGENT_Break}', "");
-    Expect(0, 65532, '\p{^Line_Break=	CONTINGENT_Break}', "");
-    Expect(0, 65532, '\P{Line_Break=	CONTINGENT_Break}', "");
-    Expect(1, 65532, '\P{^Line_Break=	CONTINGENT_Break}', "");
-    Expect(0, 65533, '\p{Line_Break=	CONTINGENT_Break}', "");
-    Expect(1, 65533, '\p{^Line_Break=	CONTINGENT_Break}', "");
-    Expect(1, 65533, '\P{Line_Break=	CONTINGENT_Break}', "");
-    Expect(0, 65533, '\P{^Line_Break=	CONTINGENT_Break}', "");
-    Error('\p{Lb= CB/a/}');
-    Error('\P{Lb= CB/a/}');
+    Expect(1, 65532, '\p{Line_Break:   	_Contingent_break}', "");
+    Expect(0, 65532, '\p{^Line_Break:   	_Contingent_break}', "");
+    Expect(0, 65532, '\P{Line_Break:   	_Contingent_break}', "");
+    Expect(1, 65532, '\P{^Line_Break:   	_Contingent_break}', "");
+    Expect(0, 65533, '\p{Line_Break:   	_Contingent_break}', "");
+    Expect(1, 65533, '\p{^Line_Break:   	_Contingent_break}', "");
+    Expect(1, 65533, '\P{Line_Break:   	_Contingent_break}', "");
+    Expect(0, 65533, '\P{^Line_Break:   	_Contingent_break}', "");
+    Error('\p{Lb=- CB/a/}');
+    Error('\P{Lb=- CB/a/}');
     Expect(1, 65532, '\p{Lb=:\ACB\z:}', "");;
     Expect(0, 65533, '\p{Lb=:\ACB\z:}', "");;
-    Expect(1, 65532, '\p{Lb=cb}', "");
-    Expect(0, 65532, '\p{^Lb=cb}', "");
-    Expect(0, 65532, '\P{Lb=cb}', "");
-    Expect(1, 65532, '\P{^Lb=cb}', "");
-    Expect(0, 65533, '\p{Lb=cb}', "");
-    Expect(1, 65533, '\p{^Lb=cb}', "");
-    Expect(1, 65533, '\P{Lb=cb}', "");
-    Expect(0, 65533, '\P{^Lb=cb}', "");
+    Expect(1, 65532, '\p{Lb:cb}', "");
+    Expect(0, 65532, '\p{^Lb:cb}', "");
+    Expect(0, 65532, '\P{Lb:cb}', "");
+    Expect(1, 65532, '\P{^Lb:cb}', "");
+    Expect(0, 65533, '\p{Lb:cb}', "");
+    Expect(1, 65533, '\p{^Lb:cb}', "");
+    Expect(1, 65533, '\P{Lb:cb}', "");
+    Expect(0, 65533, '\P{^Lb:cb}', "");
     Expect(1, 65532, '\p{Lb=:\Acb\z:}', "");;
     Expect(0, 65533, '\p{Lb=:\Acb\z:}', "");;
-    Expect(1, 65532, '\p{Lb=  cb}', "");
-    Expect(0, 65532, '\p{^Lb=  cb}', "");
-    Expect(0, 65532, '\P{Lb=  cb}', "");
-    Expect(1, 65532, '\P{^Lb=  cb}', "");
-    Expect(0, 65533, '\p{Lb=  cb}', "");
-    Expect(1, 65533, '\p{^Lb=  cb}', "");
-    Expect(1, 65533, '\P{Lb=  cb}', "");
-    Expect(0, 65533, '\P{^Lb=  cb}', "");
-    Error('\p{Is_Line_Break= /a/CONTINGENT_Break}');
-    Error('\P{Is_Line_Break= /a/CONTINGENT_Break}');
+    Error('\p{Is_Line_Break=_:=contingent_Break}');
+    Error('\P{Is_Line_Break=_:=contingent_Break}');
     Expect(1, 65532, '\p{Is_Line_Break=contingentbreak}', "");
     Expect(0, 65532, '\p{^Is_Line_Break=contingentbreak}', "");
     Expect(0, 65532, '\P{Is_Line_Break=contingentbreak}', "");
@@ -62789,34 +63363,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65533, '\p{^Is_Line_Break=contingentbreak}', "");
     Expect(1, 65533, '\P{Is_Line_Break=contingentbreak}', "");
     Expect(0, 65533, '\P{^Is_Line_Break=contingentbreak}', "");
-    Expect(1, 65532, '\p{Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(0, 65532, '\p{^Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(0, 65532, '\P{Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(1, 65532, '\P{^Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(0, 65533, '\p{Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(1, 65533, '\p{^Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(1, 65533, '\P{Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Expect(0, 65533, '\P{^Is_Line_Break: _CONTINGENT_BREAK}', "");
-    Error('\p{Is_Lb=  CB:=}');
-    Error('\P{Is_Lb=  CB:=}');
-    Expect(1, 65532, '\p{Is_Lb:	cb}', "");
-    Expect(0, 65532, '\p{^Is_Lb:	cb}', "");
-    Expect(0, 65532, '\P{Is_Lb:	cb}', "");
-    Expect(1, 65532, '\P{^Is_Lb:	cb}', "");
-    Expect(0, 65533, '\p{Is_Lb:	cb}', "");
-    Expect(1, 65533, '\p{^Is_Lb:	cb}', "");
-    Expect(1, 65533, '\P{Is_Lb:	cb}', "");
-    Expect(0, 65533, '\P{^Is_Lb:	cb}', "");
-    Expect(1, 65532, '\p{Is_Lb=- CB}', "");
-    Expect(0, 65532, '\p{^Is_Lb=- CB}', "");
-    Expect(0, 65532, '\P{Is_Lb=- CB}', "");
-    Expect(1, 65532, '\P{^Is_Lb=- CB}', "");
-    Expect(0, 65533, '\p{Is_Lb=- CB}', "");
-    Expect(1, 65533, '\p{^Is_Lb=- CB}', "");
-    Expect(1, 65533, '\P{Is_Lb=- CB}', "");
-    Expect(0, 65533, '\P{^Is_Lb=- CB}', "");
-    Error('\p{Line_Break=_/a/CONDITIONAL_Japanese_starter}');
-    Error('\P{Line_Break=_/a/CONDITIONAL_Japanese_starter}');
+    Expect(1, 65532, '\p{Is_Line_Break=  Contingent_Break}', "");
+    Expect(0, 65532, '\p{^Is_Line_Break=  Contingent_Break}', "");
+    Expect(0, 65532, '\P{Is_Line_Break=  Contingent_Break}', "");
+    Expect(1, 65532, '\P{^Is_Line_Break=  Contingent_Break}', "");
+    Expect(0, 65533, '\p{Is_Line_Break=  Contingent_Break}', "");
+    Expect(1, 65533, '\p{^Is_Line_Break=  Contingent_Break}', "");
+    Expect(1, 65533, '\P{Is_Line_Break=  Contingent_Break}', "");
+    Expect(0, 65533, '\P{^Is_Line_Break=  Contingent_Break}', "");
+    Error('\p{Is_Lb=/a/_-CB}');
+    Error('\P{Is_Lb=/a/_-CB}');
+    Expect(1, 65532, '\p{Is_Lb=cb}', "");
+    Expect(0, 65532, '\p{^Is_Lb=cb}', "");
+    Expect(0, 65532, '\P{Is_Lb=cb}', "");
+    Expect(1, 65532, '\P{^Is_Lb=cb}', "");
+    Expect(0, 65533, '\p{Is_Lb=cb}', "");
+    Expect(1, 65533, '\p{^Is_Lb=cb}', "");
+    Expect(1, 65533, '\P{Is_Lb=cb}', "");
+    Expect(0, 65533, '\P{^Is_Lb=cb}', "");
+    Expect(1, 65532, '\p{Is_Lb=-_CB}', "");
+    Expect(0, 65532, '\p{^Is_Lb=-_CB}', "");
+    Expect(0, 65532, '\P{Is_Lb=-_CB}', "");
+    Expect(1, 65532, '\P{^Is_Lb=-_CB}', "");
+    Expect(0, 65533, '\p{Is_Lb=-_CB}', "");
+    Expect(1, 65533, '\p{^Is_Lb=-_CB}', "");
+    Expect(1, 65533, '\P{Is_Lb=-_CB}', "");
+    Expect(0, 65533, '\P{^Is_Lb=-_CB}', "");
+    Error('\p{Line_Break=:=conditional_japanese_STARTER}');
+    Error('\P{Line_Break=:=conditional_japanese_STARTER}');
     Expect(1, 110951, '\p{Line_Break=:\AConditional_Japanese_Starter\z:}', "");;
     Expect(0, 110952, '\p{Line_Break=:\AConditional_Japanese_Starter\z:}', "");;
     Expect(1, 110951, '\p{Line_Break=conditionaljapanesestarter}', "");
@@ -62829,38 +63403,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 110952, '\P{^Line_Break=conditionaljapanesestarter}', "");
     Expect(1, 110951, '\p{Line_Break=:\Aconditionaljapanesestarter\z:}', "");;
     Expect(0, 110952, '\p{Line_Break=:\Aconditionaljapanesestarter\z:}', "");;
-    Expect(1, 110951, '\p{Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(0, 110951, '\p{^Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(0, 110951, '\P{Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(1, 110951, '\P{^Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(0, 110952, '\p{Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(1, 110952, '\p{^Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(1, 110952, '\P{Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Expect(0, 110952, '\P{^Line_Break=__CONDITIONAL_Japanese_starter}', "");
-    Error('\p{Lb=-:=CJ}');
-    Error('\P{Lb=-:=CJ}');
+    Expect(1, 110951, '\p{Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(0, 110951, '\p{^Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(0, 110951, '\P{Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(1, 110951, '\P{^Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(0, 110952, '\p{Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(1, 110952, '\p{^Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(1, 110952, '\P{Line_Break=-_Conditional_Japanese_Starter}', "");
+    Expect(0, 110952, '\P{^Line_Break=-_Conditional_Japanese_Starter}', "");
+    Error('\p{Lb=  cj/a/}');
+    Error('\P{Lb=  cj/a/}');
     Expect(1, 110951, '\p{Lb=:\ACJ\z:}', "");;
     Expect(0, 110952, '\p{Lb=:\ACJ\z:}', "");;
-    Expect(1, 110951, '\p{Lb:	cj}', "");
-    Expect(0, 110951, '\p{^Lb:	cj}', "");
-    Expect(0, 110951, '\P{Lb:	cj}', "");
-    Expect(1, 110951, '\P{^Lb:	cj}', "");
-    Expect(0, 110952, '\p{Lb:	cj}', "");
-    Expect(1, 110952, '\p{^Lb:	cj}', "");
-    Expect(1, 110952, '\P{Lb:	cj}', "");
-    Expect(0, 110952, '\P{^Lb:	cj}', "");
+    Expect(1, 110951, '\p{Lb=cj}', "");
+    Expect(0, 110951, '\p{^Lb=cj}', "");
+    Expect(0, 110951, '\P{Lb=cj}', "");
+    Expect(1, 110951, '\P{^Lb=cj}', "");
+    Expect(0, 110952, '\p{Lb=cj}', "");
+    Expect(1, 110952, '\p{^Lb=cj}', "");
+    Expect(1, 110952, '\P{Lb=cj}', "");
+    Expect(0, 110952, '\P{^Lb=cj}', "");
     Expect(1, 110951, '\p{Lb=:\Acj\z:}', "");;
     Expect(0, 110952, '\p{Lb=:\Acj\z:}', "");;
-    Expect(1, 110951, '\p{Lb=	 CJ}', "");
-    Expect(0, 110951, '\p{^Lb=	 CJ}', "");
-    Expect(0, 110951, '\P{Lb=	 CJ}', "");
-    Expect(1, 110951, '\P{^Lb=	 CJ}', "");
-    Expect(0, 110952, '\p{Lb=	 CJ}', "");
-    Expect(1, 110952, '\p{^Lb=	 CJ}', "");
-    Expect(1, 110952, '\P{Lb=	 CJ}', "");
-    Expect(0, 110952, '\P{^Lb=	 CJ}', "");
-    Error('\p{Is_Line_Break= Conditional_Japanese_STARTER/a/}');
-    Error('\P{Is_Line_Break= Conditional_Japanese_STARTER/a/}');
+    Expect(1, 110951, '\p{Lb=__CJ}', "");
+    Expect(0, 110951, '\p{^Lb=__CJ}', "");
+    Expect(0, 110951, '\P{Lb=__CJ}', "");
+    Expect(1, 110951, '\P{^Lb=__CJ}', "");
+    Expect(0, 110952, '\p{Lb=__CJ}', "");
+    Expect(1, 110952, '\p{^Lb=__CJ}', "");
+    Expect(1, 110952, '\P{Lb=__CJ}', "");
+    Expect(0, 110952, '\P{^Lb=__CJ}', "");
+    Error('\p{Is_Line_Break=:=_-CONDITIONAL_japanese_STARTER}');
+    Error('\P{Is_Line_Break=:=_-CONDITIONAL_japanese_STARTER}');
     Expect(1, 110951, '\p{Is_Line_Break=conditionaljapanesestarter}', "");
     Expect(0, 110951, '\p{^Is_Line_Break=conditionaljapanesestarter}', "");
     Expect(0, 110951, '\P{Is_Line_Break=conditionaljapanesestarter}', "");
@@ -62869,16 +63443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 110952, '\p{^Is_Line_Break=conditionaljapanesestarter}', "");
     Expect(1, 110952, '\P{Is_Line_Break=conditionaljapanesestarter}', "");
     Expect(0, 110952, '\P{^Is_Line_Break=conditionaljapanesestarter}', "");
-    Expect(1, 110951, '\p{Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(0, 110951, '\p{^Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(0, 110951, '\P{Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(1, 110951, '\P{^Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(0, 110952, '\p{Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(1, 110952, '\p{^Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(1, 110952, '\P{Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Expect(0, 110952, '\P{^Is_Line_Break= _CONDITIONAL_japanese_Starter}', "");
-    Error('\p{Is_Lb=/a/CJ}');
-    Error('\P{Is_Lb=/a/CJ}');
+    Expect(1, 110951, '\p{Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(0, 110951, '\p{^Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(0, 110951, '\P{Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(1, 110951, '\P{^Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(0, 110952, '\p{Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(1, 110952, '\p{^Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(1, 110952, '\P{Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Expect(0, 110952, '\P{^Is_Line_Break=_	Conditional_Japanese_Starter}', "");
+    Error('\p{Is_Lb=:=  cj}');
+    Error('\P{Is_Lb=:=  cj}');
     Expect(1, 110951, '\p{Is_Lb=cj}', "");
     Expect(0, 110951, '\p{^Is_Lb=cj}', "");
     Expect(0, 110951, '\P{Is_Lb=cj}', "");
@@ -62887,16 +63461,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 110952, '\p{^Is_Lb=cj}', "");
     Expect(1, 110952, '\P{Is_Lb=cj}', "");
     Expect(0, 110952, '\P{^Is_Lb=cj}', "");
-    Expect(1, 110951, '\p{Is_Lb=	_cj}', "");
-    Expect(0, 110951, '\p{^Is_Lb=	_cj}', "");
-    Expect(0, 110951, '\P{Is_Lb=	_cj}', "");
-    Expect(1, 110951, '\P{^Is_Lb=	_cj}', "");
-    Expect(0, 110952, '\p{Is_Lb=	_cj}', "");
-    Expect(1, 110952, '\p{^Is_Lb=	_cj}', "");
-    Expect(1, 110952, '\P{Is_Lb=	_cj}', "");
-    Expect(0, 110952, '\P{^Is_Lb=	_cj}', "");
-    Error('\p{Line_Break=_-Close_PUNCTUATION:=}');
-    Error('\P{Line_Break=_-Close_PUNCTUATION:=}');
+    Expect(1, 110951, '\p{Is_Lb:		-cj}', "");
+    Expect(0, 110951, '\p{^Is_Lb:		-cj}', "");
+    Expect(0, 110951, '\P{Is_Lb:		-cj}', "");
+    Expect(1, 110951, '\P{^Is_Lb:		-cj}', "");
+    Expect(0, 110952, '\p{Is_Lb:		-cj}', "");
+    Expect(1, 110952, '\p{^Is_Lb:		-cj}', "");
+    Expect(1, 110952, '\P{Is_Lb:		-cj}', "");
+    Expect(0, 110952, '\P{^Is_Lb:		-cj}', "");
+    Error('\p{Line_Break=__CLOSE_Punctuation:=}');
+    Error('\P{Line_Break=__CLOSE_Punctuation:=}');
     Expect(1, 83407, '\p{Line_Break=:\AClose_Punctuation\z:}', "");;
     Expect(0, 83408, '\p{Line_Break=:\AClose_Punctuation\z:}', "");;
     Expect(1, 83407, '\p{Line_Break=closepunctuation}', "");
@@ -62909,16 +63483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 83408, '\P{^Line_Break=closepunctuation}', "");
     Expect(1, 83407, '\p{Line_Break=:\Aclosepunctuation\z:}', "");;
     Expect(0, 83408, '\p{Line_Break=:\Aclosepunctuation\z:}', "");;
-    Expect(1, 83407, '\p{Line_Break=_-Close_Punctuation}', "");
-    Expect(0, 83407, '\p{^Line_Break=_-Close_Punctuation}', "");
-    Expect(0, 83407, '\P{Line_Break=_-Close_Punctuation}', "");
-    Expect(1, 83407, '\P{^Line_Break=_-Close_Punctuation}', "");
-    Expect(0, 83408, '\p{Line_Break=_-Close_Punctuation}', "");
-    Expect(1, 83408, '\p{^Line_Break=_-Close_Punctuation}', "");
-    Expect(1, 83408, '\P{Line_Break=_-Close_Punctuation}', "");
-    Expect(0, 83408, '\P{^Line_Break=_-Close_Punctuation}', "");
-    Error('\p{Lb=/a/ _CL}');
-    Error('\P{Lb=/a/ _CL}');
+    Expect(1, 83407, '\p{Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(0, 83407, '\p{^Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(0, 83407, '\P{Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(1, 83407, '\P{^Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(0, 83408, '\p{Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(1, 83408, '\p{^Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(1, 83408, '\P{Line_Break=	-CLOSE_Punctuation}', "");
+    Expect(0, 83408, '\P{^Line_Break=	-CLOSE_Punctuation}', "");
+    Error('\p{Lb:   _/a/cl}');
+    Error('\P{Lb:   _/a/cl}');
     Expect(1, 83407, '\p{Lb=:\ACL\z:}', "");;
     Expect(0, 83408, '\p{Lb=:\ACL\z:}', "");;
     Expect(1, 83407, '\p{Lb=cl}', "");
@@ -62931,16 +63505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 83408, '\P{^Lb=cl}', "");
     Expect(1, 83407, '\p{Lb=:\Acl\z:}', "");;
     Expect(0, 83408, '\p{Lb=:\Acl\z:}', "");;
-    Expect(1, 83407, '\p{Lb= _CL}', "");
-    Expect(0, 83407, '\p{^Lb= _CL}', "");
-    Expect(0, 83407, '\P{Lb= _CL}', "");
-    Expect(1, 83407, '\P{^Lb= _CL}', "");
-    Expect(0, 83408, '\p{Lb= _CL}', "");
-    Expect(1, 83408, '\p{^Lb= _CL}', "");
-    Expect(1, 83408, '\P{Lb= _CL}', "");
-    Expect(0, 83408, '\P{^Lb= _CL}', "");
-    Error('\p{Is_Line_Break=close_punctuation/a/}');
-    Error('\P{Is_Line_Break=close_punctuation/a/}');
+    Expect(1, 83407, '\p{Lb=	CL}', "");
+    Expect(0, 83407, '\p{^Lb=	CL}', "");
+    Expect(0, 83407, '\P{Lb=	CL}', "");
+    Expect(1, 83407, '\P{^Lb=	CL}', "");
+    Expect(0, 83408, '\p{Lb=	CL}', "");
+    Expect(1, 83408, '\p{^Lb=	CL}', "");
+    Expect(1, 83408, '\P{Lb=	CL}', "");
+    Expect(0, 83408, '\P{^Lb=	CL}', "");
+    Error('\p{Is_Line_Break=/a/ Close_Punctuation}');
+    Error('\P{Is_Line_Break=/a/ Close_Punctuation}');
     Expect(1, 83407, '\p{Is_Line_Break=closepunctuation}', "");
     Expect(0, 83407, '\p{^Is_Line_Break=closepunctuation}', "");
     Expect(0, 83407, '\P{Is_Line_Break=closepunctuation}', "");
@@ -62949,34 +63523,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 83408, '\p{^Is_Line_Break=closepunctuation}', "");
     Expect(1, 83408, '\P{Is_Line_Break=closepunctuation}', "");
     Expect(0, 83408, '\P{^Is_Line_Break=closepunctuation}', "");
-    Expect(1, 83407, '\p{Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(0, 83407, '\p{^Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(0, 83407, '\P{Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(1, 83407, '\P{^Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(0, 83408, '\p{Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(1, 83408, '\p{^Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(1, 83408, '\P{Is_Line_Break=-	Close_Punctuation}', "");
-    Expect(0, 83408, '\P{^Is_Line_Break=-	Close_Punctuation}', "");
-    Error('\p{Is_Lb:-:=CL}');
-    Error('\P{Is_Lb:-:=CL}');
-    Expect(1, 83407, '\p{Is_Lb=cl}', "");
-    Expect(0, 83407, '\p{^Is_Lb=cl}', "");
-    Expect(0, 83407, '\P{Is_Lb=cl}', "");
-    Expect(1, 83407, '\P{^Is_Lb=cl}', "");
-    Expect(0, 83408, '\p{Is_Lb=cl}', "");
-    Expect(1, 83408, '\p{^Is_Lb=cl}', "");
-    Expect(1, 83408, '\P{Is_Lb=cl}', "");
-    Expect(0, 83408, '\P{^Is_Lb=cl}', "");
-    Expect(1, 83407, '\p{Is_Lb=	CL}', "");
-    Expect(0, 83407, '\p{^Is_Lb=	CL}', "");
-    Expect(0, 83407, '\P{Is_Lb=	CL}', "");
-    Expect(1, 83407, '\P{^Is_Lb=	CL}', "");
-    Expect(0, 83408, '\p{Is_Lb=	CL}', "");
-    Expect(1, 83408, '\p{^Is_Lb=	CL}', "");
-    Expect(1, 83408, '\P{Is_Lb=	CL}', "");
-    Expect(0, 83408, '\P{^Is_Lb=	CL}', "");
-    Error('\p{Line_Break=:= _Combining_mark}');
-    Error('\P{Line_Break=:= _Combining_mark}');
+    Expect(1, 83407, '\p{Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(0, 83407, '\p{^Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(0, 83407, '\P{Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(1, 83407, '\P{^Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(0, 83408, '\p{Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(1, 83408, '\p{^Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(1, 83408, '\P{Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Expect(0, 83408, '\P{^Is_Line_Break=	 Close_PUNCTUATION}', "");
+    Error('\p{Is_Lb=:=cl}');
+    Error('\P{Is_Lb=:=cl}');
+    Expect(1, 83407, '\p{Is_Lb:	cl}', "");
+    Expect(0, 83407, '\p{^Is_Lb:	cl}', "");
+    Expect(0, 83407, '\P{Is_Lb:	cl}', "");
+    Expect(1, 83407, '\P{^Is_Lb:	cl}', "");
+    Expect(0, 83408, '\p{Is_Lb:	cl}', "");
+    Expect(1, 83408, '\p{^Is_Lb:	cl}', "");
+    Expect(1, 83408, '\P{Is_Lb:	cl}', "");
+    Expect(0, 83408, '\P{^Is_Lb:	cl}', "");
+    Expect(1, 83407, '\p{Is_Lb= CL}', "");
+    Expect(0, 83407, '\p{^Is_Lb= CL}', "");
+    Expect(0, 83407, '\P{Is_Lb= CL}', "");
+    Expect(1, 83407, '\P{^Is_Lb= CL}', "");
+    Expect(0, 83408, '\p{Is_Lb= CL}', "");
+    Expect(1, 83408, '\p{^Is_Lb= CL}', "");
+    Expect(1, 83408, '\P{Is_Lb= CL}', "");
+    Expect(0, 83408, '\P{^Is_Lb= CL}', "");
+    Error('\p{Line_Break=:=_combining_Mark}');
+    Error('\P{Line_Break=:=_combining_Mark}');
     Expect(1, 917999, '\p{Line_Break=:\ACombining_Mark\z:}', "");;
     Expect(0, 918000, '\p{Line_Break=:\ACombining_Mark\z:}', "");;
     Expect(1, 917999, '\p{Line_Break=combiningmark}', "");
@@ -62989,16 +63563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Line_Break=combiningmark}', "");
     Expect(1, 917999, '\p{Line_Break=:\Acombiningmark\z:}', "");;
     Expect(0, 918000, '\p{Line_Break=:\Acombiningmark\z:}', "");;
-    Expect(1, 917999, '\p{Line_Break=-	Combining_Mark}', "");
-    Expect(0, 917999, '\p{^Line_Break=-	Combining_Mark}', "");
-    Expect(0, 917999, '\P{Line_Break=-	Combining_Mark}', "");
-    Expect(1, 917999, '\P{^Line_Break=-	Combining_Mark}', "");
-    Expect(0, 918000, '\p{Line_Break=-	Combining_Mark}', "");
-    Expect(1, 918000, '\p{^Line_Break=-	Combining_Mark}', "");
-    Expect(1, 918000, '\P{Line_Break=-	Combining_Mark}', "");
-    Expect(0, 918000, '\P{^Line_Break=-	Combining_Mark}', "");
-    Error('\p{Lb=:=_cm}');
-    Error('\P{Lb=:=_cm}');
+    Expect(1, 917999, '\p{Line_Break=	_combining_Mark}', "");
+    Expect(0, 917999, '\p{^Line_Break=	_combining_Mark}', "");
+    Expect(0, 917999, '\P{Line_Break=	_combining_Mark}', "");
+    Expect(1, 917999, '\P{^Line_Break=	_combining_Mark}', "");
+    Expect(0, 918000, '\p{Line_Break=	_combining_Mark}', "");
+    Expect(1, 918000, '\p{^Line_Break=	_combining_Mark}', "");
+    Expect(1, 918000, '\P{Line_Break=	_combining_Mark}', "");
+    Expect(0, 918000, '\P{^Line_Break=	_combining_Mark}', "");
+    Error('\p{Lb=_/a/CM}');
+    Error('\P{Lb=_/a/CM}');
     Expect(1, 917999, '\p{Lb=:\ACM\z:}', "");;
     Expect(0, 918000, '\p{Lb=:\ACM\z:}', "");;
     Expect(1, 917999, '\p{Lb=cm}', "");
@@ -63011,16 +63585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 918000, '\P{^Lb=cm}', "");
     Expect(1, 917999, '\p{Lb=:\Acm\z:}', "");;
     Expect(0, 918000, '\p{Lb=:\Acm\z:}', "");;
-    Expect(1, 917999, '\p{Lb=_	cm}', "");
-    Expect(0, 917999, '\p{^Lb=_	cm}', "");
-    Expect(0, 917999, '\P{Lb=_	cm}', "");
-    Expect(1, 917999, '\P{^Lb=_	cm}', "");
-    Expect(0, 918000, '\p{Lb=_	cm}', "");
-    Expect(1, 918000, '\p{^Lb=_	cm}', "");
-    Expect(1, 918000, '\P{Lb=_	cm}', "");
-    Expect(0, 918000, '\P{^Lb=_	cm}', "");
-    Error('\p{Is_Line_Break=/a/ COMBINING_MARK}');
-    Error('\P{Is_Line_Break=/a/ COMBINING_MARK}');
+    Expect(1, 917999, '\p{Lb=	_CM}', "");
+    Expect(0, 917999, '\p{^Lb=	_CM}', "");
+    Expect(0, 917999, '\P{Lb=	_CM}', "");
+    Expect(1, 917999, '\P{^Lb=	_CM}', "");
+    Expect(0, 918000, '\p{Lb=	_CM}', "");
+    Expect(1, 918000, '\p{^Lb=	_CM}', "");
+    Expect(1, 918000, '\P{Lb=	_CM}', "");
+    Expect(0, 918000, '\P{^Lb=	_CM}', "");
+    Error('\p{Is_Line_Break=-_Combining_Mark:=}');
+    Error('\P{Is_Line_Break=-_Combining_Mark:=}');
     Expect(1, 917999, '\p{Is_Line_Break=combiningmark}', "");
     Expect(0, 917999, '\p{^Is_Line_Break=combiningmark}', "");
     Expect(0, 917999, '\P{Is_Line_Break=combiningmark}', "");
@@ -63029,16 +63603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Line_Break=combiningmark}', "");
     Expect(1, 918000, '\P{Is_Line_Break=combiningmark}', "");
     Expect(0, 918000, '\P{^Is_Line_Break=combiningmark}', "");
-    Expect(1, 917999, '\p{Is_Line_Break:_Combining_Mark}', "");
-    Expect(0, 917999, '\p{^Is_Line_Break:_Combining_Mark}', "");
-    Expect(0, 917999, '\P{Is_Line_Break:_Combining_Mark}', "");
-    Expect(1, 917999, '\P{^Is_Line_Break:_Combining_Mark}', "");
-    Expect(0, 918000, '\p{Is_Line_Break:_Combining_Mark}', "");
-    Expect(1, 918000, '\p{^Is_Line_Break:_Combining_Mark}', "");
-    Expect(1, 918000, '\P{Is_Line_Break:_Combining_Mark}', "");
-    Expect(0, 918000, '\P{^Is_Line_Break:_Combining_Mark}', "");
-    Error('\p{Is_Lb:	:=CM}');
-    Error('\P{Is_Lb:	:=CM}');
+    Expect(1, 917999, '\p{Is_Line_Break= Combining_Mark}', "");
+    Expect(0, 917999, '\p{^Is_Line_Break= Combining_Mark}', "");
+    Expect(0, 917999, '\P{Is_Line_Break= Combining_Mark}', "");
+    Expect(1, 917999, '\P{^Is_Line_Break= Combining_Mark}', "");
+    Expect(0, 918000, '\p{Is_Line_Break= Combining_Mark}', "");
+    Expect(1, 918000, '\p{^Is_Line_Break= Combining_Mark}', "");
+    Expect(1, 918000, '\P{Is_Line_Break= Combining_Mark}', "");
+    Expect(0, 918000, '\P{^Is_Line_Break= Combining_Mark}', "");
+    Error('\p{Is_Lb=/a/- CM}');
+    Error('\P{Is_Lb=/a/- CM}');
     Expect(1, 917999, '\p{Is_Lb=cm}', "");
     Expect(0, 917999, '\p{^Is_Lb=cm}', "");
     Expect(0, 917999, '\P{Is_Lb=cm}', "");
@@ -63047,16 +63621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 918000, '\p{^Is_Lb=cm}', "");
     Expect(1, 918000, '\P{Is_Lb=cm}', "");
     Expect(0, 918000, '\P{^Is_Lb=cm}', "");
-    Expect(1, 917999, '\p{Is_Lb=_	CM}', "");
-    Expect(0, 917999, '\p{^Is_Lb=_	CM}', "");
-    Expect(0, 917999, '\P{Is_Lb=_	CM}', "");
-    Expect(1, 917999, '\P{^Is_Lb=_	CM}', "");
-    Expect(0, 918000, '\p{Is_Lb=_	CM}', "");
-    Expect(1, 918000, '\p{^Is_Lb=_	CM}', "");
-    Expect(1, 918000, '\P{Is_Lb=_	CM}', "");
-    Expect(0, 918000, '\P{^Is_Lb=_	CM}', "");
-    Error('\p{Line_Break=/a/close_Parenthesis}');
-    Error('\P{Line_Break=/a/close_Parenthesis}');
+    Expect(1, 917999, '\p{Is_Lb=  CM}', "");
+    Expect(0, 917999, '\p{^Is_Lb=  CM}', "");
+    Expect(0, 917999, '\P{Is_Lb=  CM}', "");
+    Expect(1, 917999, '\P{^Is_Lb=  CM}', "");
+    Expect(0, 918000, '\p{Is_Lb=  CM}', "");
+    Expect(1, 918000, '\p{^Is_Lb=  CM}', "");
+    Expect(1, 918000, '\P{Is_Lb=  CM}', "");
+    Expect(0, 918000, '\P{^Is_Lb=  CM}', "");
+    Error('\p{Line_Break=- Close_parenthesis:=}');
+    Error('\P{Line_Break=- Close_parenthesis:=}');
     Expect(1, 93, '\p{Line_Break=:\AClose_Parenthesis\z:}', "");;
     Expect(0, 94, '\p{Line_Break=:\AClose_Parenthesis\z:}', "");;
     Expect(1, 93, '\p{Line_Break=closeparenthesis}', "");
@@ -63069,16 +63643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 94, '\P{^Line_Break=closeparenthesis}', "");
     Expect(1, 93, '\p{Line_Break=:\Acloseparenthesis\z:}', "");;
     Expect(0, 94, '\p{Line_Break=:\Acloseparenthesis\z:}', "");;
-    Expect(1, 93, '\p{Line_Break=_-Close_Parenthesis}', "");
-    Expect(0, 93, '\p{^Line_Break=_-Close_Parenthesis}', "");
-    Expect(0, 93, '\P{Line_Break=_-Close_Parenthesis}', "");
-    Expect(1, 93, '\P{^Line_Break=_-Close_Parenthesis}', "");
-    Expect(0, 94, '\p{Line_Break=_-Close_Parenthesis}', "");
-    Expect(1, 94, '\p{^Line_Break=_-Close_Parenthesis}', "");
-    Expect(1, 94, '\P{Line_Break=_-Close_Parenthesis}', "");
-    Expect(0, 94, '\P{^Line_Break=_-Close_Parenthesis}', "");
-    Error('\p{Lb=:=cp}');
-    Error('\P{Lb=:=cp}');
+    Expect(1, 93, '\p{Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(0, 93, '\p{^Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(0, 93, '\P{Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(1, 93, '\P{^Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(0, 94, '\p{Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(1, 94, '\p{^Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(1, 94, '\P{Line_Break= CLOSE_PARENTHESIS}', "");
+    Expect(0, 94, '\P{^Line_Break= CLOSE_PARENTHESIS}', "");
+    Error('\p{Lb=	/a/CP}');
+    Error('\P{Lb=	/a/CP}');
     Expect(1, 93, '\p{Lb=:\ACP\z:}', "");;
     Expect(0, 94, '\p{Lb=:\ACP\z:}', "");;
     Expect(1, 93, '\p{Lb=cp}', "");
@@ -63091,16 +63665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 94, '\P{^Lb=cp}', "");
     Expect(1, 93, '\p{Lb=:\Acp\z:}', "");;
     Expect(0, 94, '\p{Lb=:\Acp\z:}', "");;
-    Expect(1, 93, '\p{Lb= CP}', "");
-    Expect(0, 93, '\p{^Lb= CP}', "");
-    Expect(0, 93, '\P{Lb= CP}', "");
-    Expect(1, 93, '\P{^Lb= CP}', "");
-    Expect(0, 94, '\p{Lb= CP}', "");
-    Expect(1, 94, '\p{^Lb= CP}', "");
-    Expect(1, 94, '\P{Lb= CP}', "");
-    Expect(0, 94, '\P{^Lb= CP}', "");
-    Error('\p{Is_Line_Break=	Close_PARENTHESIS:=}');
-    Error('\P{Is_Line_Break=	Close_PARENTHESIS:=}');
+    Expect(1, 93, '\p{Lb=_	cp}', "");
+    Expect(0, 93, '\p{^Lb=_	cp}', "");
+    Expect(0, 93, '\P{Lb=_	cp}', "");
+    Expect(1, 93, '\P{^Lb=_	cp}', "");
+    Expect(0, 94, '\p{Lb=_	cp}', "");
+    Expect(1, 94, '\p{^Lb=_	cp}', "");
+    Expect(1, 94, '\P{Lb=_	cp}', "");
+    Expect(0, 94, '\P{^Lb=_	cp}', "");
+    Error('\p{Is_Line_Break=:=_ close_Parenthesis}');
+    Error('\P{Is_Line_Break=:=_ close_Parenthesis}');
     Expect(1, 93, '\p{Is_Line_Break=closeparenthesis}', "");
     Expect(0, 93, '\p{^Is_Line_Break=closeparenthesis}', "");
     Expect(0, 93, '\P{Is_Line_Break=closeparenthesis}', "");
@@ -63109,16 +63683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 94, '\p{^Is_Line_Break=closeparenthesis}', "");
     Expect(1, 94, '\P{Is_Line_Break=closeparenthesis}', "");
     Expect(0, 94, '\P{^Is_Line_Break=closeparenthesis}', "");
-    Expect(1, 93, '\p{Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(0, 93, '\p{^Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(0, 93, '\P{Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(1, 93, '\P{^Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(0, 94, '\p{Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(1, 94, '\p{^Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(1, 94, '\P{Is_Line_Break= Close_PARENTHESIS}', "");
-    Expect(0, 94, '\P{^Is_Line_Break= Close_PARENTHESIS}', "");
-    Error('\p{Is_Lb=_:=CP}');
-    Error('\P{Is_Lb=_:=CP}');
+    Expect(1, 93, '\p{Is_Line_Break=-close_parenthesis}', "");
+    Expect(0, 93, '\p{^Is_Line_Break=-close_parenthesis}', "");
+    Expect(0, 93, '\P{Is_Line_Break=-close_parenthesis}', "");
+    Expect(1, 93, '\P{^Is_Line_Break=-close_parenthesis}', "");
+    Expect(0, 94, '\p{Is_Line_Break=-close_parenthesis}', "");
+    Expect(1, 94, '\p{^Is_Line_Break=-close_parenthesis}', "");
+    Expect(1, 94, '\P{Is_Line_Break=-close_parenthesis}', "");
+    Expect(0, 94, '\P{^Is_Line_Break=-close_parenthesis}', "");
+    Error('\p{Is_Lb=:=CP}');
+    Error('\P{Is_Lb=:=CP}');
     Expect(1, 93, '\p{Is_Lb=cp}', "");
     Expect(0, 93, '\p{^Is_Lb=cp}', "");
     Expect(0, 93, '\P{Is_Lb=cp}', "");
@@ -63127,16 +63701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 94, '\p{^Is_Lb=cp}', "");
     Expect(1, 94, '\P{Is_Lb=cp}', "");
     Expect(0, 94, '\P{^Is_Lb=cp}', "");
-    Expect(1, 93, '\p{Is_Lb=	 cp}', "");
-    Expect(0, 93, '\p{^Is_Lb=	 cp}', "");
-    Expect(0, 93, '\P{Is_Lb=	 cp}', "");
-    Expect(1, 93, '\P{^Is_Lb=	 cp}', "");
-    Expect(0, 94, '\p{Is_Lb=	 cp}', "");
-    Expect(1, 94, '\p{^Is_Lb=	 cp}', "");
-    Expect(1, 94, '\P{Is_Lb=	 cp}', "");
-    Expect(0, 94, '\P{^Is_Lb=	 cp}', "");
-    Error('\p{Line_Break:	--carriage_return/a/}');
-    Error('\P{Line_Break:	--carriage_return/a/}');
+    Expect(1, 93, '\p{Is_Lb=-CP}', "");
+    Expect(0, 93, '\p{^Is_Lb=-CP}', "");
+    Expect(0, 93, '\P{Is_Lb=-CP}', "");
+    Expect(1, 93, '\P{^Is_Lb=-CP}', "");
+    Expect(0, 94, '\p{Is_Lb=-CP}', "");
+    Expect(1, 94, '\p{^Is_Lb=-CP}', "");
+    Expect(1, 94, '\P{Is_Lb=-CP}', "");
+    Expect(0, 94, '\P{^Is_Lb=-CP}', "");
+    Error('\p{Line_Break=		CARRIAGE_RETURN:=}');
+    Error('\P{Line_Break=		CARRIAGE_RETURN:=}');
     Expect(1, 13, '\p{Line_Break=:\ACarriage_Return\z:}', "");;
     Expect(0, 14, '\p{Line_Break=:\ACarriage_Return\z:}', "");;
     Expect(1, 13, '\p{Line_Break=carriagereturn}', "");
@@ -63149,208 +63723,216 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 14, '\P{^Line_Break=carriagereturn}', "");
     Expect(1, 13, '\p{Line_Break=:\Acarriagereturn\z:}', "");;
     Expect(0, 14, '\p{Line_Break=:\Acarriagereturn\z:}', "");;
-    Expect(1, 13, '\p{Line_Break=_	Carriage_Return}', "");
-    Expect(0, 13, '\p{^Line_Break=_	Carriage_Return}', "");
-    Expect(0, 13, '\P{Line_Break=_	Carriage_Return}', "");
-    Expect(1, 13, '\P{^Line_Break=_	Carriage_Return}', "");
-    Expect(0, 14, '\p{Line_Break=_	Carriage_Return}', "");
-    Expect(1, 14, '\p{^Line_Break=_	Carriage_Return}', "");
-    Expect(1, 14, '\P{Line_Break=_	Carriage_Return}', "");
-    Expect(0, 14, '\P{^Line_Break=_	Carriage_Return}', "");
-    Error('\p{Lb= -CR/a/}');
-    Error('\P{Lb= -CR/a/}');
+    Expect(1, 13, '\p{Line_Break:   		Carriage_Return}', "");
+    Expect(0, 13, '\p{^Line_Break:   		Carriage_Return}', "");
+    Expect(0, 13, '\P{Line_Break:   		Carriage_Return}', "");
+    Expect(1, 13, '\P{^Line_Break:   		Carriage_Return}', "");
+    Expect(0, 14, '\p{Line_Break:   		Carriage_Return}', "");
+    Expect(1, 14, '\p{^Line_Break:   		Carriage_Return}', "");
+    Expect(1, 14, '\P{Line_Break:   		Carriage_Return}', "");
+    Expect(0, 14, '\P{^Line_Break:   		Carriage_Return}', "");
+    Error('\p{Lb= CR/a/}');
+    Error('\P{Lb= CR/a/}');
     Expect(1, 13, '\p{Lb=:\ACR\z:}', "");;
     Expect(0, 14, '\p{Lb=:\ACR\z:}', "");;
-    Expect(1, 13, '\p{Lb=cr}', "");
-    Expect(0, 13, '\p{^Lb=cr}', "");
-    Expect(0, 13, '\P{Lb=cr}', "");
-    Expect(1, 13, '\P{^Lb=cr}', "");
-    Expect(0, 14, '\p{Lb=cr}', "");
-    Expect(1, 14, '\p{^Lb=cr}', "");
-    Expect(1, 14, '\P{Lb=cr}', "");
-    Expect(0, 14, '\P{^Lb=cr}', "");
+    Expect(1, 13, '\p{Lb:   cr}', "");
+    Expect(0, 13, '\p{^Lb:   cr}', "");
+    Expect(0, 13, '\P{Lb:   cr}', "");
+    Expect(1, 13, '\P{^Lb:   cr}', "");
+    Expect(0, 14, '\p{Lb:   cr}', "");
+    Expect(1, 14, '\p{^Lb:   cr}', "");
+    Expect(1, 14, '\P{Lb:   cr}', "");
+    Expect(0, 14, '\P{^Lb:   cr}', "");
     Expect(1, 13, '\p{Lb=:\Acr\z:}', "");;
     Expect(0, 14, '\p{Lb=:\Acr\z:}', "");;
-    Expect(1, 13, '\p{Lb=_	CR}', "");
-    Expect(0, 13, '\p{^Lb=_	CR}', "");
-    Expect(0, 13, '\P{Lb=_	CR}', "");
-    Expect(1, 13, '\P{^Lb=_	CR}', "");
-    Expect(0, 14, '\p{Lb=_	CR}', "");
-    Expect(1, 14, '\p{^Lb=_	CR}', "");
-    Expect(1, 14, '\P{Lb=_	CR}', "");
-    Expect(0, 14, '\P{^Lb=_	CR}', "");
-    Error('\p{Is_Line_Break=/a/carriage_RETURN}');
-    Error('\P{Is_Line_Break=/a/carriage_RETURN}');
-    Expect(1, 13, '\p{Is_Line_Break=carriagereturn}', "");
-    Expect(0, 13, '\p{^Is_Line_Break=carriagereturn}', "");
-    Expect(0, 13, '\P{Is_Line_Break=carriagereturn}', "");
-    Expect(1, 13, '\P{^Is_Line_Break=carriagereturn}', "");
-    Expect(0, 14, '\p{Is_Line_Break=carriagereturn}', "");
-    Expect(1, 14, '\p{^Is_Line_Break=carriagereturn}', "");
-    Expect(1, 14, '\P{Is_Line_Break=carriagereturn}', "");
-    Expect(0, 14, '\P{^Is_Line_Break=carriagereturn}', "");
-    Expect(1, 13, '\p{Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(0, 13, '\p{^Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(0, 13, '\P{Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(1, 13, '\P{^Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(0, 14, '\p{Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(1, 14, '\p{^Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(1, 14, '\P{Is_Line_Break=-_CARRIAGE_return}', "");
-    Expect(0, 14, '\P{^Is_Line_Break=-_CARRIAGE_return}', "");
-    Error('\p{Is_Lb=_CR:=}');
-    Error('\P{Is_Lb=_CR:=}');
-    Expect(1, 13, '\p{Is_Lb=cr}', "");
-    Expect(0, 13, '\p{^Is_Lb=cr}', "");
-    Expect(0, 13, '\P{Is_Lb=cr}', "");
-    Expect(1, 13, '\P{^Is_Lb=cr}', "");
-    Expect(0, 14, '\p{Is_Lb=cr}', "");
-    Expect(1, 14, '\p{^Is_Lb=cr}', "");
-    Expect(1, 14, '\P{Is_Lb=cr}', "");
-    Expect(0, 14, '\P{^Is_Lb=cr}', "");
-    Error('\p{Line_Break:   --E_base/a/}');
-    Error('\P{Line_Break:   --E_base/a/}');
-    Expect(1, 129782, '\p{Line_Break=:\AE_Base\z:}', "");;
-    Expect(0, 129783, '\p{Line_Break=:\AE_Base\z:}', "");;
-    Expect(1, 129782, '\p{Line_Break=ebase}', "");
-    Expect(0, 129782, '\p{^Line_Break=ebase}', "");
-    Expect(0, 129782, '\P{Line_Break=ebase}', "");
-    Expect(1, 129782, '\P{^Line_Break=ebase}', "");
-    Expect(0, 129783, '\p{Line_Break=ebase}', "");
-    Expect(1, 129783, '\p{^Line_Break=ebase}', "");
-    Expect(1, 129783, '\P{Line_Break=ebase}', "");
-    Expect(0, 129783, '\P{^Line_Break=ebase}', "");
-    Expect(1, 129782, '\p{Line_Break=:\Aebase\z:}', "");;
-    Expect(0, 129783, '\p{Line_Break=:\Aebase\z:}', "");;
-    Expect(1, 129782, '\p{Line_Break= _E_Base}', "");
-    Expect(0, 129782, '\p{^Line_Break= _E_Base}', "");
-    Expect(0, 129782, '\P{Line_Break= _E_Base}', "");
-    Expect(1, 129782, '\P{^Line_Break= _E_Base}', "");
-    Expect(0, 129783, '\p{Line_Break= _E_Base}', "");
-    Expect(1, 129783, '\p{^Line_Break= _E_Base}', "");
-    Expect(1, 129783, '\P{Line_Break= _E_Base}', "");
-    Expect(0, 129783, '\P{^Line_Break= _E_Base}', "");
-    Error('\p{Lb=:=		EB}');
-    Error('\P{Lb=:=		EB}');
-    Expect(1, 129782, '\p{Lb=:\AEB\z:}', "");;
-    Expect(0, 129783, '\p{Lb=:\AEB\z:}', "");;
-    Expect(1, 129782, '\p{Lb=eb}', "");
-    Expect(0, 129782, '\p{^Lb=eb}', "");
-    Expect(0, 129782, '\P{Lb=eb}', "");
-    Expect(1, 129782, '\P{^Lb=eb}', "");
-    Expect(0, 129783, '\p{Lb=eb}', "");
-    Expect(1, 129783, '\p{^Lb=eb}', "");
-    Expect(1, 129783, '\P{Lb=eb}', "");
-    Expect(0, 129783, '\P{^Lb=eb}', "");
-    Expect(1, 129782, '\p{Lb=:\Aeb\z:}', "");;
-    Expect(0, 129783, '\p{Lb=:\Aeb\z:}', "");;
-    Expect(1, 129782, '\p{Lb=-EB}', "");
-    Expect(0, 129782, '\p{^Lb=-EB}', "");
-    Expect(0, 129782, '\P{Lb=-EB}', "");
-    Expect(1, 129782, '\P{^Lb=-EB}', "");
-    Expect(0, 129783, '\p{Lb=-EB}', "");
-    Expect(1, 129783, '\p{^Lb=-EB}', "");
-    Expect(1, 129783, '\P{Lb=-EB}', "");
-    Expect(0, 129783, '\P{^Lb=-EB}', "");
-    Error('\p{Is_Line_Break=/a/ 	E_Base}');
-    Error('\P{Is_Line_Break=/a/ 	E_Base}');
-    Expect(1, 129782, '\p{Is_Line_Break=ebase}', "");
-    Expect(0, 129782, '\p{^Is_Line_Break=ebase}', "");
-    Expect(0, 129782, '\P{Is_Line_Break=ebase}', "");
-    Expect(1, 129782, '\P{^Is_Line_Break=ebase}', "");
-    Expect(0, 129783, '\p{Is_Line_Break=ebase}', "");
-    Expect(1, 129783, '\p{^Is_Line_Break=ebase}', "");
-    Expect(1, 129783, '\P{Is_Line_Break=ebase}', "");
-    Expect(0, 129783, '\P{^Is_Line_Break=ebase}', "");
-    Expect(1, 129782, '\p{Is_Line_Break=--E_BASE}', "");
-    Expect(0, 129782, '\p{^Is_Line_Break=--E_BASE}', "");
-    Expect(0, 129782, '\P{Is_Line_Break=--E_BASE}', "");
-    Expect(1, 129782, '\P{^Is_Line_Break=--E_BASE}', "");
-    Expect(0, 129783, '\p{Is_Line_Break=--E_BASE}', "");
-    Expect(1, 129783, '\p{^Is_Line_Break=--E_BASE}', "");
-    Expect(1, 129783, '\P{Is_Line_Break=--E_BASE}', "");
-    Expect(0, 129783, '\P{^Is_Line_Break=--E_BASE}', "");
-    Error('\p{Is_Lb=	/a/EB}');
-    Error('\P{Is_Lb=	/a/EB}');
-    Expect(1, 129782, '\p{Is_Lb=eb}', "");
-    Expect(0, 129782, '\p{^Is_Lb=eb}', "");
-    Expect(0, 129782, '\P{Is_Lb=eb}', "");
-    Expect(1, 129782, '\P{^Is_Lb=eb}', "");
-    Expect(0, 129783, '\p{Is_Lb=eb}', "");
-    Expect(1, 129783, '\p{^Is_Lb=eb}', "");
-    Expect(1, 129783, '\P{Is_Lb=eb}', "");
-    Expect(0, 129783, '\P{^Is_Lb=eb}', "");
-    Expect(1, 129782, '\p{Is_Lb=  EB}', "");
-    Expect(0, 129782, '\p{^Is_Lb=  EB}', "");
-    Expect(0, 129782, '\P{Is_Lb=  EB}', "");
-    Expect(1, 129782, '\P{^Is_Lb=  EB}', "");
-    Expect(0, 129783, '\p{Is_Lb=  EB}', "");
-    Expect(1, 129783, '\p{^Is_Lb=  EB}', "");
-    Expect(1, 129783, '\P{Is_Lb=  EB}', "");
-    Expect(0, 129783, '\P{^Is_Lb=  EB}', "");
-    Error('\p{Line_Break=_E_Modifier:=}');
-    Error('\P{Line_Break=_E_Modifier:=}');
+    Expect(1, 13, '\p{Lb=  CR}', "");
+    Expect(0, 13, '\p{^Lb=  CR}', "");
+    Expect(0, 13, '\P{Lb=  CR}', "");
+    Expect(1, 13, '\P{^Lb=  CR}', "");
+    Expect(0, 14, '\p{Lb=  CR}', "");
+    Expect(1, 14, '\p{^Lb=  CR}', "");
+    Expect(1, 14, '\P{Lb=  CR}', "");
+    Expect(0, 14, '\P{^Lb=  CR}', "");
+    Error('\p{Is_Line_Break=_/a/Carriage_RETURN}');
+    Error('\P{Is_Line_Break=_/a/Carriage_RETURN}');
+    Expect(1, 13, '\p{Is_Line_Break:carriagereturn}', "");
+    Expect(0, 13, '\p{^Is_Line_Break:carriagereturn}', "");
+    Expect(0, 13, '\P{Is_Line_Break:carriagereturn}', "");
+    Expect(1, 13, '\P{^Is_Line_Break:carriagereturn}', "");
+    Expect(0, 14, '\p{Is_Line_Break:carriagereturn}', "");
+    Expect(1, 14, '\p{^Is_Line_Break:carriagereturn}', "");
+    Expect(1, 14, '\P{Is_Line_Break:carriagereturn}', "");
+    Expect(0, 14, '\P{^Is_Line_Break:carriagereturn}', "");
+    Expect(1, 13, '\p{Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(0, 13, '\p{^Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(0, 13, '\P{Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(1, 13, '\P{^Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(0, 14, '\p{Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(1, 14, '\p{^Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(1, 14, '\P{Is_Line_Break=	 Carriage_RETURN}', "");
+    Expect(0, 14, '\P{^Is_Line_Break=	 Carriage_RETURN}', "");
+    Error('\p{Is_Lb=:= cr}');
+    Error('\P{Is_Lb=:= cr}');
+    Expect(1, 13, '\p{Is_Lb:cr}', "");
+    Expect(0, 13, '\p{^Is_Lb:cr}', "");
+    Expect(0, 13, '\P{Is_Lb:cr}', "");
+    Expect(1, 13, '\P{^Is_Lb:cr}', "");
+    Expect(0, 14, '\p{Is_Lb:cr}', "");
+    Expect(1, 14, '\p{^Is_Lb:cr}', "");
+    Expect(1, 14, '\P{Is_Lb:cr}', "");
+    Expect(0, 14, '\P{^Is_Lb:cr}', "");
+    Expect(1, 13, '\p{Is_Lb=--cr}', "");
+    Expect(0, 13, '\p{^Is_Lb=--cr}', "");
+    Expect(0, 13, '\P{Is_Lb=--cr}', "");
+    Expect(1, 13, '\P{^Is_Lb=--cr}', "");
+    Expect(0, 14, '\p{Is_Lb=--cr}', "");
+    Expect(1, 14, '\p{^Is_Lb=--cr}', "");
+    Expect(1, 14, '\P{Is_Lb=--cr}', "");
+    Expect(0, 14, '\P{^Is_Lb=--cr}', "");
+    Error('\p{Line_Break=-_E_base/a/}');
+    Error('\P{Line_Break=-_E_base/a/}');
+    Expect(1, 129784, '\p{Line_Break=:\AE_Base\z:}', "");;
+    Expect(0, 129785, '\p{Line_Break=:\AE_Base\z:}', "");;
+    Expect(1, 129784, '\p{Line_Break=ebase}', "");
+    Expect(0, 129784, '\p{^Line_Break=ebase}', "");
+    Expect(0, 129784, '\P{Line_Break=ebase}', "");
+    Expect(1, 129784, '\P{^Line_Break=ebase}', "");
+    Expect(0, 129785, '\p{Line_Break=ebase}', "");
+    Expect(1, 129785, '\p{^Line_Break=ebase}', "");
+    Expect(1, 129785, '\P{Line_Break=ebase}', "");
+    Expect(0, 129785, '\P{^Line_Break=ebase}', "");
+    Expect(1, 129784, '\p{Line_Break=:\Aebase\z:}', "");;
+    Expect(0, 129785, '\p{Line_Break=:\Aebase\z:}', "");;
+    Expect(1, 129784, '\p{Line_Break=_ E_BASE}', "");
+    Expect(0, 129784, '\p{^Line_Break=_ E_BASE}', "");
+    Expect(0, 129784, '\P{Line_Break=_ E_BASE}', "");
+    Expect(1, 129784, '\P{^Line_Break=_ E_BASE}', "");
+    Expect(0, 129785, '\p{Line_Break=_ E_BASE}', "");
+    Expect(1, 129785, '\p{^Line_Break=_ E_BASE}', "");
+    Expect(1, 129785, '\P{Line_Break=_ E_BASE}', "");
+    Expect(0, 129785, '\P{^Line_Break=_ E_BASE}', "");
+    Error('\p{Lb=_-EB:=}');
+    Error('\P{Lb=_-EB:=}');
+    Expect(1, 129784, '\p{Lb=:\AEB\z:}', "");;
+    Expect(0, 129785, '\p{Lb=:\AEB\z:}', "");;
+    Expect(1, 129784, '\p{Lb=eb}', "");
+    Expect(0, 129784, '\p{^Lb=eb}', "");
+    Expect(0, 129784, '\P{Lb=eb}', "");
+    Expect(1, 129784, '\P{^Lb=eb}', "");
+    Expect(0, 129785, '\p{Lb=eb}', "");
+    Expect(1, 129785, '\p{^Lb=eb}', "");
+    Expect(1, 129785, '\P{Lb=eb}', "");
+    Expect(0, 129785, '\P{^Lb=eb}', "");
+    Expect(1, 129784, '\p{Lb=:\Aeb\z:}', "");;
+    Expect(0, 129785, '\p{Lb=:\Aeb\z:}', "");;
+    Expect(1, 129784, '\p{Lb=--EB}', "");
+    Expect(0, 129784, '\p{^Lb=--EB}', "");
+    Expect(0, 129784, '\P{Lb=--EB}', "");
+    Expect(1, 129784, '\P{^Lb=--EB}', "");
+    Expect(0, 129785, '\p{Lb=--EB}', "");
+    Expect(1, 129785, '\p{^Lb=--EB}', "");
+    Expect(1, 129785, '\P{Lb=--EB}', "");
+    Expect(0, 129785, '\P{^Lb=--EB}', "");
+    Error('\p{Is_Line_Break=:=E_Base}');
+    Error('\P{Is_Line_Break=:=E_Base}');
+    Expect(1, 129784, '\p{Is_Line_Break=ebase}', "");
+    Expect(0, 129784, '\p{^Is_Line_Break=ebase}', "");
+    Expect(0, 129784, '\P{Is_Line_Break=ebase}', "");
+    Expect(1, 129784, '\P{^Is_Line_Break=ebase}', "");
+    Expect(0, 129785, '\p{Is_Line_Break=ebase}', "");
+    Expect(1, 129785, '\p{^Is_Line_Break=ebase}', "");
+    Expect(1, 129785, '\P{Is_Line_Break=ebase}', "");
+    Expect(0, 129785, '\P{^Is_Line_Break=ebase}', "");
+    Expect(1, 129784, '\p{Is_Line_Break=		E_BASE}', "");
+    Expect(0, 129784, '\p{^Is_Line_Break=		E_BASE}', "");
+    Expect(0, 129784, '\P{Is_Line_Break=		E_BASE}', "");
+    Expect(1, 129784, '\P{^Is_Line_Break=		E_BASE}', "");
+    Expect(0, 129785, '\p{Is_Line_Break=		E_BASE}', "");
+    Expect(1, 129785, '\p{^Is_Line_Break=		E_BASE}', "");
+    Expect(1, 129785, '\P{Is_Line_Break=		E_BASE}', "");
+    Expect(0, 129785, '\P{^Is_Line_Break=		E_BASE}', "");
+    Error('\p{Is_Lb=/a/	-EB}');
+    Error('\P{Is_Lb=/a/	-EB}');
+    Expect(1, 129784, '\p{Is_Lb=eb}', "");
+    Expect(0, 129784, '\p{^Is_Lb=eb}', "");
+    Expect(0, 129784, '\P{Is_Lb=eb}', "");
+    Expect(1, 129784, '\P{^Is_Lb=eb}', "");
+    Expect(0, 129785, '\p{Is_Lb=eb}', "");
+    Expect(1, 129785, '\p{^Is_Lb=eb}', "");
+    Expect(1, 129785, '\P{Is_Lb=eb}', "");
+    Expect(0, 129785, '\P{^Is_Lb=eb}', "");
+    Expect(1, 129784, '\p{Is_Lb=_	EB}', "");
+    Expect(0, 129784, '\p{^Is_Lb=_	EB}', "");
+    Expect(0, 129784, '\P{Is_Lb=_	EB}', "");
+    Expect(1, 129784, '\P{^Is_Lb=_	EB}', "");
+    Expect(0, 129785, '\p{Is_Lb=_	EB}', "");
+    Expect(1, 129785, '\p{^Is_Lb=_	EB}', "");
+    Expect(1, 129785, '\P{Is_Lb=_	EB}', "");
+    Expect(0, 129785, '\P{^Is_Lb=_	EB}', "");
+    Error('\p{Line_Break=-E_modifier/a/}');
+    Error('\P{Line_Break=-E_modifier/a/}');
     Expect(1, 127999, '\p{Line_Break=:\AE_Modifier\z:}', "");;
     Expect(0, 128000, '\p{Line_Break=:\AE_Modifier\z:}', "");;
-    Expect(1, 127999, '\p{Line_Break:   emodifier}', "");
-    Expect(0, 127999, '\p{^Line_Break:   emodifier}', "");
-    Expect(0, 127999, '\P{Line_Break:   emodifier}', "");
-    Expect(1, 127999, '\P{^Line_Break:   emodifier}', "");
-    Expect(0, 128000, '\p{Line_Break:   emodifier}', "");
-    Expect(1, 128000, '\p{^Line_Break:   emodifier}', "");
-    Expect(1, 128000, '\P{Line_Break:   emodifier}', "");
-    Expect(0, 128000, '\P{^Line_Break:   emodifier}', "");
+    Expect(1, 127999, '\p{Line_Break=emodifier}', "");
+    Expect(0, 127999, '\p{^Line_Break=emodifier}', "");
+    Expect(0, 127999, '\P{Line_Break=emodifier}', "");
+    Expect(1, 127999, '\P{^Line_Break=emodifier}', "");
+    Expect(0, 128000, '\p{Line_Break=emodifier}', "");
+    Expect(1, 128000, '\p{^Line_Break=emodifier}', "");
+    Expect(1, 128000, '\P{Line_Break=emodifier}', "");
+    Expect(0, 128000, '\P{^Line_Break=emodifier}', "");
     Expect(1, 127999, '\p{Line_Break=:\Aemodifier\z:}', "");;
     Expect(0, 128000, '\p{Line_Break=:\Aemodifier\z:}', "");;
-    Expect(1, 127999, '\p{Line_Break=	e_MODIFIER}', "");
-    Expect(0, 127999, '\p{^Line_Break=	e_MODIFIER}', "");
-    Expect(0, 127999, '\P{Line_Break=	e_MODIFIER}', "");
-    Expect(1, 127999, '\P{^Line_Break=	e_MODIFIER}', "");
-    Expect(0, 128000, '\p{Line_Break=	e_MODIFIER}', "");
-    Expect(1, 128000, '\p{^Line_Break=	e_MODIFIER}', "");
-    Expect(1, 128000, '\P{Line_Break=	e_MODIFIER}', "");
-    Expect(0, 128000, '\P{^Line_Break=	e_MODIFIER}', "");
-    Error('\p{Lb=-	EM/a/}');
-    Error('\P{Lb=-	EM/a/}');
+    Expect(1, 127999, '\p{Line_Break=	_E_Modifier}', "");
+    Expect(0, 127999, '\p{^Line_Break=	_E_Modifier}', "");
+    Expect(0, 127999, '\P{Line_Break=	_E_Modifier}', "");
+    Expect(1, 127999, '\P{^Line_Break=	_E_Modifier}', "");
+    Expect(0, 128000, '\p{Line_Break=	_E_Modifier}', "");
+    Expect(1, 128000, '\p{^Line_Break=	_E_Modifier}', "");
+    Expect(1, 128000, '\P{Line_Break=	_E_Modifier}', "");
+    Expect(0, 128000, '\P{^Line_Break=	_E_Modifier}', "");
+    Error('\p{Lb:	/a/ EM}');
+    Error('\P{Lb:	/a/ EM}');
     Expect(1, 127999, '\p{Lb=:\AEM\z:}', "");;
     Expect(0, 128000, '\p{Lb=:\AEM\z:}', "");;
-    Expect(1, 127999, '\p{Lb:	em}', "");
-    Expect(0, 127999, '\p{^Lb:	em}', "");
-    Expect(0, 127999, '\P{Lb:	em}', "");
-    Expect(1, 127999, '\P{^Lb:	em}', "");
-    Expect(0, 128000, '\p{Lb:	em}', "");
-    Expect(1, 128000, '\p{^Lb:	em}', "");
-    Expect(1, 128000, '\P{Lb:	em}', "");
-    Expect(0, 128000, '\P{^Lb:	em}', "");
+    Expect(1, 127999, '\p{Lb=em}', "");
+    Expect(0, 127999, '\p{^Lb=em}', "");
+    Expect(0, 127999, '\P{Lb=em}', "");
+    Expect(1, 127999, '\P{^Lb=em}', "");
+    Expect(0, 128000, '\p{Lb=em}', "");
+    Expect(1, 128000, '\p{^Lb=em}', "");
+    Expect(1, 128000, '\P{Lb=em}', "");
+    Expect(0, 128000, '\P{^Lb=em}', "");
     Expect(1, 127999, '\p{Lb=:\Aem\z:}', "");;
     Expect(0, 128000, '\p{Lb=:\Aem\z:}', "");;
-    Expect(1, 127999, '\p{Lb=EM}', "");
-    Expect(0, 127999, '\p{^Lb=EM}', "");
-    Expect(0, 127999, '\P{Lb=EM}', "");
-    Expect(1, 127999, '\P{^Lb=EM}', "");
-    Expect(0, 128000, '\p{Lb=EM}', "");
-    Expect(1, 128000, '\p{^Lb=EM}', "");
-    Expect(1, 128000, '\P{Lb=EM}', "");
-    Expect(0, 128000, '\P{^Lb=EM}', "");
-    Error('\p{Is_Line_Break=:=E_Modifier}');
-    Error('\P{Is_Line_Break=:=E_Modifier}');
-    Expect(1, 127999, '\p{Is_Line_Break:	emodifier}', "");
-    Expect(0, 127999, '\p{^Is_Line_Break:	emodifier}', "");
-    Expect(0, 127999, '\P{Is_Line_Break:	emodifier}', "");
-    Expect(1, 127999, '\P{^Is_Line_Break:	emodifier}', "");
-    Expect(0, 128000, '\p{Is_Line_Break:	emodifier}', "");
-    Expect(1, 128000, '\p{^Is_Line_Break:	emodifier}', "");
-    Expect(1, 128000, '\P{Is_Line_Break:	emodifier}', "");
-    Expect(0, 128000, '\P{^Is_Line_Break:	emodifier}', "");
-    Expect(1, 127999, '\p{Is_Line_Break:   _E_modifier}', "");
-    Expect(0, 127999, '\p{^Is_Line_Break:   _E_modifier}', "");
-    Expect(0, 127999, '\P{Is_Line_Break:   _E_modifier}', "");
-    Expect(1, 127999, '\P{^Is_Line_Break:   _E_modifier}', "");
-    Expect(0, 128000, '\p{Is_Line_Break:   _E_modifier}', "");
-    Expect(1, 128000, '\p{^Is_Line_Break:   _E_modifier}', "");
-    Expect(1, 128000, '\P{Is_Line_Break:   _E_modifier}', "");
-    Expect(0, 128000, '\P{^Is_Line_Break:   _E_modifier}', "");
-    Error('\p{Is_Lb=EM:=}');
-    Error('\P{Is_Lb=EM:=}');
+    Expect(1, 127999, '\p{Lb=-em}', "");
+    Expect(0, 127999, '\p{^Lb=-em}', "");
+    Expect(0, 127999, '\P{Lb=-em}', "");
+    Expect(1, 127999, '\P{^Lb=-em}', "");
+    Expect(0, 128000, '\p{Lb=-em}', "");
+    Expect(1, 128000, '\p{^Lb=-em}', "");
+    Expect(1, 128000, '\P{Lb=-em}', "");
+    Expect(0, 128000, '\P{^Lb=-em}', "");
+    Error('\p{Is_Line_Break= :=e_Modifier}');
+    Error('\P{Is_Line_Break= :=e_Modifier}');
+    Expect(1, 127999, '\p{Is_Line_Break=emodifier}', "");
+    Expect(0, 127999, '\p{^Is_Line_Break=emodifier}', "");
+    Expect(0, 127999, '\P{Is_Line_Break=emodifier}', "");
+    Expect(1, 127999, '\P{^Is_Line_Break=emodifier}', "");
+    Expect(0, 128000, '\p{Is_Line_Break=emodifier}', "");
+    Expect(1, 128000, '\p{^Is_Line_Break=emodifier}', "");
+    Expect(1, 128000, '\P{Is_Line_Break=emodifier}', "");
+    Expect(0, 128000, '\P{^Is_Line_Break=emodifier}', "");
+    Expect(1, 127999, '\p{Is_Line_Break=_ E_Modifier}', "");
+    Expect(0, 127999, '\p{^Is_Line_Break=_ E_Modifier}', "");
+    Expect(0, 127999, '\P{Is_Line_Break=_ E_Modifier}', "");
+    Expect(1, 127999, '\P{^Is_Line_Break=_ E_Modifier}', "");
+    Expect(0, 128000, '\p{Is_Line_Break=_ E_Modifier}', "");
+    Expect(1, 128000, '\p{^Is_Line_Break=_ E_Modifier}', "");
+    Expect(1, 128000, '\P{Is_Line_Break=_ E_Modifier}', "");
+    Expect(0, 128000, '\P{^Is_Line_Break=_ E_Modifier}', "");
+    Error('\p{Is_Lb=/a/	_EM}');
+    Error('\P{Is_Lb=/a/	_EM}');
     Expect(1, 127999, '\p{Is_Lb=em}', "");
     Expect(0, 127999, '\p{^Is_Lb=em}', "");
     Expect(0, 127999, '\P{Is_Lb=em}', "");
@@ -63359,60 +63941,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128000, '\p{^Is_Lb=em}', "");
     Expect(1, 128000, '\P{Is_Lb=em}', "");
     Expect(0, 128000, '\P{^Is_Lb=em}', "");
-    Expect(1, 127999, '\p{Is_Lb=__EM}', "");
-    Expect(0, 127999, '\p{^Is_Lb=__EM}', "");
-    Expect(0, 127999, '\P{Is_Lb=__EM}', "");
-    Expect(1, 127999, '\P{^Is_Lb=__EM}', "");
-    Expect(0, 128000, '\p{Is_Lb=__EM}', "");
-    Expect(1, 128000, '\p{^Is_Lb=__EM}', "");
-    Expect(1, 128000, '\P{Is_Lb=__EM}', "");
-    Expect(0, 128000, '\P{^Is_Lb=__EM}', "");
-    Error('\p{Line_Break=:=exclamation}');
-    Error('\P{Line_Break=:=exclamation}');
+    Expect(1, 127999, '\p{Is_Lb=_ EM}', "");
+    Expect(0, 127999, '\p{^Is_Lb=_ EM}', "");
+    Expect(0, 127999, '\P{Is_Lb=_ EM}', "");
+    Expect(1, 127999, '\P{^Is_Lb=_ EM}', "");
+    Expect(0, 128000, '\p{Is_Lb=_ EM}', "");
+    Expect(1, 128000, '\p{^Is_Lb=_ EM}', "");
+    Expect(1, 128000, '\P{Is_Lb=_ EM}', "");
+    Expect(0, 128000, '\P{^Is_Lb=_ EM}', "");
+    Error('\p{Line_Break=-/a/Exclamation}');
+    Error('\P{Line_Break=-/a/Exclamation}');
     Expect(1, 72817, '\p{Line_Break=:\AExclamation\z:}', "");;
     Expect(0, 72818, '\p{Line_Break=:\AExclamation\z:}', "");;
-    Expect(1, 72817, '\p{Line_Break:exclamation}', "");
-    Expect(0, 72817, '\p{^Line_Break:exclamation}', "");
-    Expect(0, 72817, '\P{Line_Break:exclamation}', "");
-    Expect(1, 72817, '\P{^Line_Break:exclamation}', "");
-    Expect(0, 72818, '\p{Line_Break:exclamation}', "");
-    Expect(1, 72818, '\p{^Line_Break:exclamation}', "");
-    Expect(1, 72818, '\P{Line_Break:exclamation}', "");
-    Expect(0, 72818, '\P{^Line_Break:exclamation}', "");
+    Expect(1, 72817, '\p{Line_Break=exclamation}', "");
+    Expect(0, 72817, '\p{^Line_Break=exclamation}', "");
+    Expect(0, 72817, '\P{Line_Break=exclamation}', "");
+    Expect(1, 72817, '\P{^Line_Break=exclamation}', "");
+    Expect(0, 72818, '\p{Line_Break=exclamation}', "");
+    Expect(1, 72818, '\p{^Line_Break=exclamation}', "");
+    Expect(1, 72818, '\P{Line_Break=exclamation}', "");
+    Expect(0, 72818, '\P{^Line_Break=exclamation}', "");
     Expect(1, 72817, '\p{Line_Break=:\Aexclamation\z:}', "");;
     Expect(0, 72818, '\p{Line_Break=:\Aexclamation\z:}', "");;
-    Expect(1, 72817, '\p{Line_Break=__EXCLAMATION}', "");
-    Expect(0, 72817, '\p{^Line_Break=__EXCLAMATION}', "");
-    Expect(0, 72817, '\P{Line_Break=__EXCLAMATION}', "");
-    Expect(1, 72817, '\P{^Line_Break=__EXCLAMATION}', "");
-    Expect(0, 72818, '\p{Line_Break=__EXCLAMATION}', "");
-    Expect(1, 72818, '\p{^Line_Break=__EXCLAMATION}', "");
-    Expect(1, 72818, '\P{Line_Break=__EXCLAMATION}', "");
-    Expect(0, 72818, '\P{^Line_Break=__EXCLAMATION}', "");
-    Error('\p{Lb:	-:=ex}');
-    Error('\P{Lb:	-:=ex}');
+    Expect(1, 72817, '\p{Line_Break= exclamation}', "");
+    Expect(0, 72817, '\p{^Line_Break= exclamation}', "");
+    Expect(0, 72817, '\P{Line_Break= exclamation}', "");
+    Expect(1, 72817, '\P{^Line_Break= exclamation}', "");
+    Expect(0, 72818, '\p{Line_Break= exclamation}', "");
+    Expect(1, 72818, '\p{^Line_Break= exclamation}', "");
+    Expect(1, 72818, '\P{Line_Break= exclamation}', "");
+    Expect(0, 72818, '\P{^Line_Break= exclamation}', "");
+    Error('\p{Lb=-/a/EX}');
+    Error('\P{Lb=-/a/EX}');
     Expect(1, 72817, '\p{Lb=:\AEX\z:}', "");;
     Expect(0, 72818, '\p{Lb=:\AEX\z:}', "");;
-    Expect(1, 72817, '\p{Lb: ex}', "");
-    Expect(0, 72817, '\p{^Lb: ex}', "");
-    Expect(0, 72817, '\P{Lb: ex}', "");
-    Expect(1, 72817, '\P{^Lb: ex}', "");
-    Expect(0, 72818, '\p{Lb: ex}', "");
-    Expect(1, 72818, '\p{^Lb: ex}', "");
-    Expect(1, 72818, '\P{Lb: ex}', "");
-    Expect(0, 72818, '\P{^Lb: ex}', "");
+    Expect(1, 72817, '\p{Lb=ex}', "");
+    Expect(0, 72817, '\p{^Lb=ex}', "");
+    Expect(0, 72817, '\P{Lb=ex}', "");
+    Expect(1, 72817, '\P{^Lb=ex}', "");
+    Expect(0, 72818, '\p{Lb=ex}', "");
+    Expect(1, 72818, '\p{^Lb=ex}', "");
+    Expect(1, 72818, '\P{Lb=ex}', "");
+    Expect(0, 72818, '\P{^Lb=ex}', "");
     Expect(1, 72817, '\p{Lb=:\Aex\z:}', "");;
     Expect(0, 72818, '\p{Lb=:\Aex\z:}', "");;
-    Expect(1, 72817, '\p{Lb=	EX}', "");
-    Expect(0, 72817, '\p{^Lb=	EX}', "");
-    Expect(0, 72817, '\P{Lb=	EX}', "");
-    Expect(1, 72817, '\P{^Lb=	EX}', "");
-    Expect(0, 72818, '\p{Lb=	EX}', "");
-    Expect(1, 72818, '\p{^Lb=	EX}', "");
-    Expect(1, 72818, '\P{Lb=	EX}', "");
-    Expect(0, 72818, '\P{^Lb=	EX}', "");
-    Error('\p{Is_Line_Break=_ EXCLAMATION/a/}');
-    Error('\P{Is_Line_Break=_ EXCLAMATION/a/}');
+    Expect(1, 72817, '\p{Lb=  EX}', "");
+    Expect(0, 72817, '\p{^Lb=  EX}', "");
+    Expect(0, 72817, '\P{Lb=  EX}', "");
+    Expect(1, 72817, '\P{^Lb=  EX}', "");
+    Expect(0, 72818, '\p{Lb=  EX}', "");
+    Expect(1, 72818, '\p{^Lb=  EX}', "");
+    Expect(1, 72818, '\P{Lb=  EX}', "");
+    Expect(0, 72818, '\P{^Lb=  EX}', "");
+    Error('\p{Is_Line_Break=:=_-EXCLAMATION}');
+    Error('\P{Is_Line_Break=:=_-EXCLAMATION}');
     Expect(1, 72817, '\p{Is_Line_Break=exclamation}', "");
     Expect(0, 72817, '\p{^Is_Line_Break=exclamation}', "");
     Expect(0, 72817, '\P{Is_Line_Break=exclamation}', "");
@@ -63421,16 +64003,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72818, '\p{^Is_Line_Break=exclamation}', "");
     Expect(1, 72818, '\P{Is_Line_Break=exclamation}', "");
     Expect(0, 72818, '\P{^Is_Line_Break=exclamation}', "");
-    Expect(1, 72817, '\p{Is_Line_Break:	-exclamation}', "");
-    Expect(0, 72817, '\p{^Is_Line_Break:	-exclamation}', "");
-    Expect(0, 72817, '\P{Is_Line_Break:	-exclamation}', "");
-    Expect(1, 72817, '\P{^Is_Line_Break:	-exclamation}', "");
-    Expect(0, 72818, '\p{Is_Line_Break:	-exclamation}', "");
-    Expect(1, 72818, '\p{^Is_Line_Break:	-exclamation}', "");
-    Expect(1, 72818, '\P{Is_Line_Break:	-exclamation}', "");
-    Expect(0, 72818, '\P{^Is_Line_Break:	-exclamation}', "");
-    Error('\p{Is_Lb= EX:=}');
-    Error('\P{Is_Lb= EX:=}');
+    Expect(1, 72817, '\p{Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(0, 72817, '\p{^Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(0, 72817, '\P{Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(1, 72817, '\P{^Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(0, 72818, '\p{Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(1, 72818, '\p{^Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(1, 72818, '\P{Is_Line_Break=_-EXCLAMATION}', "");
+    Expect(0, 72818, '\P{^Is_Line_Break=_-EXCLAMATION}', "");
+    Error('\p{Is_Lb=	:=EX}');
+    Error('\P{Is_Lb=	:=EX}');
     Expect(1, 72817, '\p{Is_Lb=ex}', "");
     Expect(0, 72817, '\p{^Is_Lb=ex}', "");
     Expect(0, 72817, '\P{Is_Lb=ex}', "");
@@ -63439,16 +64021,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 72818, '\p{^Is_Lb=ex}', "");
     Expect(1, 72818, '\P{Is_Lb=ex}', "");
     Expect(0, 72818, '\P{^Is_Lb=ex}', "");
-    Expect(1, 72817, '\p{Is_Lb: EX}', "");
-    Expect(0, 72817, '\p{^Is_Lb: EX}', "");
-    Expect(0, 72817, '\P{Is_Lb: EX}', "");
-    Expect(1, 72817, '\P{^Is_Lb: EX}', "");
-    Expect(0, 72818, '\p{Is_Lb: EX}', "");
-    Expect(1, 72818, '\p{^Is_Lb: EX}', "");
-    Expect(1, 72818, '\P{Is_Lb: EX}', "");
-    Expect(0, 72818, '\P{^Is_Lb: EX}', "");
-    Error('\p{Line_Break=_/a/Glue}');
-    Error('\P{Line_Break=_/a/Glue}');
+    Expect(1, 72817, '\p{Is_Lb=- EX}', "");
+    Expect(0, 72817, '\p{^Is_Lb=- EX}', "");
+    Expect(0, 72817, '\P{Is_Lb=- EX}', "");
+    Expect(1, 72817, '\P{^Is_Lb=- EX}', "");
+    Expect(0, 72818, '\p{Is_Lb=- EX}', "");
+    Expect(1, 72818, '\p{^Is_Lb=- EX}', "");
+    Expect(1, 72818, '\P{Is_Lb=- EX}', "");
+    Expect(0, 72818, '\P{^Is_Lb=- EX}', "");
+    Error('\p{Line_Break=:=Glue}');
+    Error('\P{Line_Break=:=Glue}');
     Expect(1, 94180, '\p{Line_Break=:\AGlue\z:}', "");;
     Expect(0, 94181, '\p{Line_Break=:\AGlue\z:}', "");;
     Expect(1, 94180, '\p{Line_Break=glue}', "");
@@ -63461,16 +64043,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 94181, '\P{^Line_Break=glue}', "");
     Expect(1, 94180, '\p{Line_Break=:\Aglue\z:}', "");;
     Expect(0, 94181, '\p{Line_Break=:\Aglue\z:}', "");;
-    Expect(1, 94180, '\p{Line_Break=		Glue}', "");
-    Expect(0, 94180, '\p{^Line_Break=		Glue}', "");
-    Expect(0, 94180, '\P{Line_Break=		Glue}', "");
-    Expect(1, 94180, '\P{^Line_Break=		Glue}', "");
-    Expect(0, 94181, '\p{Line_Break=		Glue}', "");
-    Expect(1, 94181, '\p{^Line_Break=		Glue}', "");
-    Expect(1, 94181, '\P{Line_Break=		Glue}', "");
-    Expect(0, 94181, '\P{^Line_Break=		Glue}', "");
-    Error('\p{Lb=/a/_GL}');
-    Error('\P{Lb=/a/_GL}');
+    Expect(1, 94180, '\p{Line_Break:   -glue}', "");
+    Expect(0, 94180, '\p{^Line_Break:   -glue}', "");
+    Expect(0, 94180, '\P{Line_Break:   -glue}', "");
+    Expect(1, 94180, '\P{^Line_Break:   -glue}', "");
+    Expect(0, 94181, '\p{Line_Break:   -glue}', "");
+    Expect(1, 94181, '\p{^Line_Break:   -glue}', "");
+    Expect(1, 94181, '\P{Line_Break:   -glue}', "");
+    Expect(0, 94181, '\P{^Line_Break:   -glue}', "");
+    Error('\p{Lb=  GL/a/}');
+    Error('\P{Lb=  GL/a/}');
     Expect(1, 94180, '\p{Lb=:\AGL\z:}', "");;
     Expect(0, 94181, '\p{Lb=:\AGL\z:}', "");;
     Expect(1, 94180, '\p{Lb=gl}', "");
@@ -63483,16 +64065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 94181, '\P{^Lb=gl}', "");
     Expect(1, 94180, '\p{Lb=:\Agl\z:}', "");;
     Expect(0, 94181, '\p{Lb=:\Agl\z:}', "");;
-    Expect(1, 94180, '\p{Lb=  GL}', "");
-    Expect(0, 94180, '\p{^Lb=  GL}', "");
-    Expect(0, 94180, '\P{Lb=  GL}', "");
-    Expect(1, 94180, '\P{^Lb=  GL}', "");
-    Expect(0, 94181, '\p{Lb=  GL}', "");
-    Expect(1, 94181, '\p{^Lb=  GL}', "");
-    Expect(1, 94181, '\P{Lb=  GL}', "");
-    Expect(0, 94181, '\P{^Lb=  GL}', "");
-    Error('\p{Is_Line_Break=	/a/Glue}');
-    Error('\P{Is_Line_Break=	/a/Glue}');
+    Expect(1, 94180, '\p{Lb=GL}', "");
+    Expect(0, 94180, '\p{^Lb=GL}', "");
+    Expect(0, 94180, '\P{Lb=GL}', "");
+    Expect(1, 94180, '\P{^Lb=GL}', "");
+    Expect(0, 94181, '\p{Lb=GL}', "");
+    Expect(1, 94181, '\p{^Lb=GL}', "");
+    Expect(1, 94181, '\P{Lb=GL}', "");
+    Expect(0, 94181, '\P{^Lb=GL}', "");
+    Error('\p{Is_Line_Break=:=Glue}');
+    Error('\P{Is_Line_Break=:=Glue}');
     Expect(1, 94180, '\p{Is_Line_Break=glue}', "");
     Expect(0, 94180, '\p{^Is_Line_Break=glue}', "");
     Expect(0, 94180, '\P{Is_Line_Break=glue}', "");
@@ -63501,16 +64083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 94181, '\p{^Is_Line_Break=glue}', "");
     Expect(1, 94181, '\P{Is_Line_Break=glue}', "");
     Expect(0, 94181, '\P{^Is_Line_Break=glue}', "");
-    Expect(1, 94180, '\p{Is_Line_Break=	_Glue}', "");
-    Expect(0, 94180, '\p{^Is_Line_Break=	_Glue}', "");
-    Expect(0, 94180, '\P{Is_Line_Break=	_Glue}', "");
-    Expect(1, 94180, '\P{^Is_Line_Break=	_Glue}', "");
-    Expect(0, 94181, '\p{Is_Line_Break=	_Glue}', "");
-    Expect(1, 94181, '\p{^Is_Line_Break=	_Glue}', "");
-    Expect(1, 94181, '\P{Is_Line_Break=	_Glue}', "");
-    Expect(0, 94181, '\P{^Is_Line_Break=	_Glue}', "");
-    Error('\p{Is_Lb=:=_-GL}');
-    Error('\P{Is_Lb=:=_-GL}');
+    Expect(1, 94180, '\p{Is_Line_Break=__Glue}', "");
+    Expect(0, 94180, '\p{^Is_Line_Break=__Glue}', "");
+    Expect(0, 94180, '\P{Is_Line_Break=__Glue}', "");
+    Expect(1, 94180, '\P{^Is_Line_Break=__Glue}', "");
+    Expect(0, 94181, '\p{Is_Line_Break=__Glue}', "");
+    Expect(1, 94181, '\p{^Is_Line_Break=__Glue}', "");
+    Expect(1, 94181, '\P{Is_Line_Break=__Glue}', "");
+    Expect(0, 94181, '\P{^Is_Line_Break=__Glue}', "");
+    Error('\p{Is_Lb=:=		GL}');
+    Error('\P{Is_Lb=:=		GL}');
     Expect(1, 94180, '\p{Is_Lb=gl}', "");
     Expect(0, 94180, '\p{^Is_Lb=gl}', "");
     Expect(0, 94180, '\P{Is_Lb=gl}', "");
@@ -63519,38 +64101,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 94181, '\p{^Is_Lb=gl}', "");
     Expect(1, 94181, '\P{Is_Lb=gl}', "");
     Expect(0, 94181, '\P{^Is_Lb=gl}', "");
-    Expect(1, 94180, '\p{Is_Lb=-GL}', "");
-    Expect(0, 94180, '\p{^Is_Lb=-GL}', "");
-    Expect(0, 94180, '\P{Is_Lb=-GL}', "");
-    Expect(1, 94180, '\P{^Is_Lb=-GL}', "");
-    Expect(0, 94181, '\p{Is_Lb=-GL}', "");
-    Expect(1, 94181, '\p{^Is_Lb=-GL}', "");
-    Expect(1, 94181, '\P{Is_Lb=-GL}', "");
-    Expect(0, 94181, '\P{^Is_Lb=-GL}', "");
-    Error('\p{Line_Break= H2:=}');
-    Error('\P{Line_Break= H2:=}');
+    Expect(1, 94180, '\p{Is_Lb=	 GL}', "");
+    Expect(0, 94180, '\p{^Is_Lb=	 GL}', "");
+    Expect(0, 94180, '\P{Is_Lb=	 GL}', "");
+    Expect(1, 94180, '\P{^Is_Lb=	 GL}', "");
+    Expect(0, 94181, '\p{Is_Lb=	 GL}', "");
+    Expect(1, 94181, '\p{^Is_Lb=	 GL}', "");
+    Expect(1, 94181, '\P{Is_Lb=	 GL}', "");
+    Expect(0, 94181, '\P{^Is_Lb=	 GL}', "");
+    Error('\p{Line_Break=	 H2:=}');
+    Error('\P{Line_Break=	 H2:=}');
     Expect(1, 55176, '\p{Line_Break=:\AH2\z:}', "");;
     Expect(0, 55177, '\p{Line_Break=:\AH2\z:}', "");;
-    Expect(1, 55176, '\p{Line_Break: h2}', "");
-    Expect(0, 55176, '\p{^Line_Break: h2}', "");
-    Expect(0, 55176, '\P{Line_Break: h2}', "");
-    Expect(1, 55176, '\P{^Line_Break: h2}', "");
-    Expect(0, 55177, '\p{Line_Break: h2}', "");
-    Expect(1, 55177, '\p{^Line_Break: h2}', "");
-    Expect(1, 55177, '\P{Line_Break: h2}', "");
-    Expect(0, 55177, '\P{^Line_Break: h2}', "");
+    Expect(1, 55176, '\p{Line_Break=h2}', "");
+    Expect(0, 55176, '\p{^Line_Break=h2}', "");
+    Expect(0, 55176, '\P{Line_Break=h2}', "");
+    Expect(1, 55176, '\P{^Line_Break=h2}', "");
+    Expect(0, 55177, '\p{Line_Break=h2}', "");
+    Expect(1, 55177, '\p{^Line_Break=h2}', "");
+    Expect(1, 55177, '\P{Line_Break=h2}', "");
+    Expect(0, 55177, '\P{^Line_Break=h2}', "");
     Expect(1, 55176, '\p{Line_Break=:\Ah2\z:}', "");;
     Expect(0, 55177, '\p{Line_Break=:\Ah2\z:}', "");;
-    Expect(1, 55176, '\p{Line_Break= H2}', "");
-    Expect(0, 55176, '\p{^Line_Break= H2}', "");
-    Expect(0, 55176, '\P{Line_Break= H2}', "");
-    Expect(1, 55176, '\P{^Line_Break= H2}', "");
-    Expect(0, 55177, '\p{Line_Break= H2}', "");
-    Expect(1, 55177, '\p{^Line_Break= H2}', "");
-    Expect(1, 55177, '\P{Line_Break= H2}', "");
-    Expect(0, 55177, '\P{^Line_Break= H2}', "");
-    Error('\p{Lb=	 h2:=}');
-    Error('\P{Lb=	 h2:=}');
+    Expect(1, 55176, '\p{Line_Break=		H2}', "");
+    Expect(0, 55176, '\p{^Line_Break=		H2}', "");
+    Expect(0, 55176, '\P{Line_Break=		H2}', "");
+    Expect(1, 55176, '\P{^Line_Break=		H2}', "");
+    Expect(0, 55177, '\p{Line_Break=		H2}', "");
+    Expect(1, 55177, '\p{^Line_Break=		H2}', "");
+    Expect(1, 55177, '\P{Line_Break=		H2}', "");
+    Expect(0, 55177, '\P{^Line_Break=		H2}', "");
+    Error('\p{Lb=:= -H2}');
+    Error('\P{Lb=:= -H2}');
     Expect(1, 55176, '\p{Lb=:\AH2\z:}', "");;
     Expect(0, 55177, '\p{Lb=:\AH2\z:}', "");;
     Expect(1, 55176, '\p{Lb=h2}', "");
@@ -63563,16 +64145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55177, '\P{^Lb=h2}', "");
     Expect(1, 55176, '\p{Lb=:\Ah2\z:}', "");;
     Expect(0, 55177, '\p{Lb=:\Ah2\z:}', "");;
-    Expect(1, 55176, '\p{Lb=-	H2}', "");
-    Expect(0, 55176, '\p{^Lb=-	H2}', "");
-    Expect(0, 55176, '\P{Lb=-	H2}', "");
-    Expect(1, 55176, '\P{^Lb=-	H2}', "");
-    Expect(0, 55177, '\p{Lb=-	H2}', "");
-    Expect(1, 55177, '\p{^Lb=-	H2}', "");
-    Expect(1, 55177, '\P{Lb=-	H2}', "");
-    Expect(0, 55177, '\P{^Lb=-	H2}', "");
-    Error('\p{Is_Line_Break:	h2:=}');
-    Error('\P{Is_Line_Break:	h2:=}');
+    Expect(1, 55176, '\p{Lb=__H2}', "");
+    Expect(0, 55176, '\p{^Lb=__H2}', "");
+    Expect(0, 55176, '\P{Lb=__H2}', "");
+    Expect(1, 55176, '\P{^Lb=__H2}', "");
+    Expect(0, 55177, '\p{Lb=__H2}', "");
+    Expect(1, 55177, '\p{^Lb=__H2}', "");
+    Expect(1, 55177, '\P{Lb=__H2}', "");
+    Expect(0, 55177, '\P{^Lb=__H2}', "");
+    Error('\p{Is_Line_Break=:= _H2}');
+    Error('\P{Is_Line_Break=:= _H2}');
     Expect(1, 55176, '\p{Is_Line_Break=h2}', "");
     Expect(0, 55176, '\p{^Is_Line_Break=h2}', "");
     Expect(0, 55176, '\P{Is_Line_Break=h2}', "");
@@ -63581,16 +64163,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55177, '\p{^Is_Line_Break=h2}', "");
     Expect(1, 55177, '\P{Is_Line_Break=h2}', "");
     Expect(0, 55177, '\P{^Is_Line_Break=h2}', "");
-    Expect(1, 55176, '\p{Is_Line_Break= H2}', "");
-    Expect(0, 55176, '\p{^Is_Line_Break= H2}', "");
-    Expect(0, 55176, '\P{Is_Line_Break= H2}', "");
-    Expect(1, 55176, '\P{^Is_Line_Break= H2}', "");
-    Expect(0, 55177, '\p{Is_Line_Break= H2}', "");
-    Expect(1, 55177, '\p{^Is_Line_Break= H2}', "");
-    Expect(1, 55177, '\P{Is_Line_Break= H2}', "");
-    Expect(0, 55177, '\P{^Is_Line_Break= H2}', "");
-    Error('\p{Is_Lb=:= _H2}');
-    Error('\P{Is_Lb=:= _H2}');
+    Expect(1, 55176, '\p{Is_Line_Break=	 H2}', "");
+    Expect(0, 55176, '\p{^Is_Line_Break=	 H2}', "");
+    Expect(0, 55176, '\P{Is_Line_Break=	 H2}', "");
+    Expect(1, 55176, '\P{^Is_Line_Break=	 H2}', "");
+    Expect(0, 55177, '\p{Is_Line_Break=	 H2}', "");
+    Expect(1, 55177, '\p{^Is_Line_Break=	 H2}', "");
+    Expect(1, 55177, '\P{Is_Line_Break=	 H2}', "");
+    Expect(0, 55177, '\P{^Is_Line_Break=	 H2}', "");
+    Error('\p{Is_Lb: 	H2:=}');
+    Error('\P{Is_Lb: 	H2:=}');
     Expect(1, 55176, '\p{Is_Lb=h2}', "");
     Expect(0, 55176, '\p{^Is_Lb=h2}', "");
     Expect(0, 55176, '\P{Is_Lb=h2}', "");
@@ -63599,16 +64181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55177, '\p{^Is_Lb=h2}', "");
     Expect(1, 55177, '\P{Is_Lb=h2}', "");
     Expect(0, 55177, '\P{^Is_Lb=h2}', "");
-    Expect(1, 55176, '\p{Is_Lb: 	-H2}', "");
-    Expect(0, 55176, '\p{^Is_Lb: 	-H2}', "");
-    Expect(0, 55176, '\P{Is_Lb: 	-H2}', "");
-    Expect(1, 55176, '\P{^Is_Lb: 	-H2}', "");
-    Expect(0, 55177, '\p{Is_Lb: 	-H2}', "");
-    Expect(1, 55177, '\p{^Is_Lb: 	-H2}', "");
-    Expect(1, 55177, '\P{Is_Lb: 	-H2}', "");
-    Expect(0, 55177, '\P{^Is_Lb: 	-H2}', "");
-    Error('\p{Line_Break=/a/__h3}');
-    Error('\P{Line_Break=/a/__h3}');
+    Expect(1, 55176, '\p{Is_Lb=H2}', "");
+    Expect(0, 55176, '\p{^Is_Lb=H2}', "");
+    Expect(0, 55176, '\P{Is_Lb=H2}', "");
+    Expect(1, 55176, '\P{^Is_Lb=H2}', "");
+    Expect(0, 55177, '\p{Is_Lb=H2}', "");
+    Expect(1, 55177, '\p{^Is_Lb=H2}', "");
+    Expect(1, 55177, '\P{Is_Lb=H2}', "");
+    Expect(0, 55177, '\P{^Is_Lb=H2}', "");
+    Error('\p{Line_Break=:= h3}');
+    Error('\P{Line_Break=:= h3}');
     Expect(1, 55203, '\p{Line_Break=:\AH3\z:}', "");;
     Expect(0, 55204, '\p{Line_Break=:\AH3\z:}', "");;
     Expect(1, 55203, '\p{Line_Break=h3}', "");
@@ -63621,16 +64203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55204, '\P{^Line_Break=h3}', "");
     Expect(1, 55203, '\p{Line_Break=:\Ah3\z:}', "");;
     Expect(0, 55204, '\p{Line_Break=:\Ah3\z:}', "");;
-    Expect(1, 55203, '\p{Line_Break=--H3}', "");
-    Expect(0, 55203, '\p{^Line_Break=--H3}', "");
-    Expect(0, 55203, '\P{Line_Break=--H3}', "");
-    Expect(1, 55203, '\P{^Line_Break=--H3}', "");
-    Expect(0, 55204, '\p{Line_Break=--H3}', "");
-    Expect(1, 55204, '\p{^Line_Break=--H3}', "");
-    Expect(1, 55204, '\P{Line_Break=--H3}', "");
-    Expect(0, 55204, '\P{^Line_Break=--H3}', "");
-    Error('\p{Lb=:=	_H3}');
-    Error('\P{Lb=:=	_H3}');
+    Expect(1, 55203, '\p{Line_Break:   _ H3}', "");
+    Expect(0, 55203, '\p{^Line_Break:   _ H3}', "");
+    Expect(0, 55203, '\P{Line_Break:   _ H3}', "");
+    Expect(1, 55203, '\P{^Line_Break:   _ H3}', "");
+    Expect(0, 55204, '\p{Line_Break:   _ H3}', "");
+    Expect(1, 55204, '\p{^Line_Break:   _ H3}', "");
+    Expect(1, 55204, '\P{Line_Break:   _ H3}', "");
+    Expect(0, 55204, '\P{^Line_Break:   _ H3}', "");
+    Error('\p{Lb=_ H3/a/}');
+    Error('\P{Lb=_ H3/a/}');
     Expect(1, 55203, '\p{Lb=:\AH3\z:}', "");;
     Expect(0, 55204, '\p{Lb=:\AH3\z:}', "");;
     Expect(1, 55203, '\p{Lb=h3}', "");
@@ -63643,16 +64225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55204, '\P{^Lb=h3}', "");
     Expect(1, 55203, '\p{Lb=:\Ah3\z:}', "");;
     Expect(0, 55204, '\p{Lb=:\Ah3\z:}', "");;
-    Expect(1, 55203, '\p{Lb=-_H3}', "");
-    Expect(0, 55203, '\p{^Lb=-_H3}', "");
-    Expect(0, 55203, '\P{Lb=-_H3}', "");
-    Expect(1, 55203, '\P{^Lb=-_H3}', "");
-    Expect(0, 55204, '\p{Lb=-_H3}', "");
-    Expect(1, 55204, '\p{^Lb=-_H3}', "");
-    Expect(1, 55204, '\P{Lb=-_H3}', "");
-    Expect(0, 55204, '\P{^Lb=-_H3}', "");
-    Error('\p{Is_Line_Break=/a/ H3}');
-    Error('\P{Is_Line_Break=/a/ H3}');
+    Expect(1, 55203, '\p{Lb=	 H3}', "");
+    Expect(0, 55203, '\p{^Lb=	 H3}', "");
+    Expect(0, 55203, '\P{Lb=	 H3}', "");
+    Expect(1, 55203, '\P{^Lb=	 H3}', "");
+    Expect(0, 55204, '\p{Lb=	 H3}', "");
+    Expect(1, 55204, '\p{^Lb=	 H3}', "");
+    Expect(1, 55204, '\P{Lb=	 H3}', "");
+    Expect(0, 55204, '\P{^Lb=	 H3}', "");
+    Error('\p{Is_Line_Break=/a/- H3}');
+    Error('\P{Is_Line_Break=/a/- H3}');
     Expect(1, 55203, '\p{Is_Line_Break=h3}', "");
     Expect(0, 55203, '\p{^Is_Line_Break=h3}', "");
     Expect(0, 55203, '\P{Is_Line_Break=h3}', "");
@@ -63661,34 +64243,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55204, '\p{^Is_Line_Break=h3}', "");
     Expect(1, 55204, '\P{Is_Line_Break=h3}', "");
     Expect(0, 55204, '\P{^Is_Line_Break=h3}', "");
-    Expect(1, 55203, '\p{Is_Line_Break=	_h3}', "");
-    Expect(0, 55203, '\p{^Is_Line_Break=	_h3}', "");
-    Expect(0, 55203, '\P{Is_Line_Break=	_h3}', "");
-    Expect(1, 55203, '\P{^Is_Line_Break=	_h3}', "");
-    Expect(0, 55204, '\p{Is_Line_Break=	_h3}', "");
-    Expect(1, 55204, '\p{^Is_Line_Break=	_h3}', "");
-    Expect(1, 55204, '\P{Is_Line_Break=	_h3}', "");
-    Expect(0, 55204, '\P{^Is_Line_Break=	_h3}', "");
-    Error('\p{Is_Lb=:=_-H3}');
-    Error('\P{Is_Lb=:=_-H3}');
-    Expect(1, 55203, '\p{Is_Lb=h3}', "");
-    Expect(0, 55203, '\p{^Is_Lb=h3}', "");
-    Expect(0, 55203, '\P{Is_Lb=h3}', "");
-    Expect(1, 55203, '\P{^Is_Lb=h3}', "");
-    Expect(0, 55204, '\p{Is_Lb=h3}', "");
-    Expect(1, 55204, '\p{^Is_Lb=h3}', "");
-    Expect(1, 55204, '\P{Is_Lb=h3}', "");
-    Expect(0, 55204, '\P{^Is_Lb=h3}', "");
-    Expect(1, 55203, '\p{Is_Lb=	_H3}', "");
-    Expect(0, 55203, '\p{^Is_Lb=	_H3}', "");
-    Expect(0, 55203, '\P{Is_Lb=	_H3}', "");
-    Expect(1, 55203, '\P{^Is_Lb=	_H3}', "");
-    Expect(0, 55204, '\p{Is_Lb=	_H3}', "");
-    Expect(1, 55204, '\p{^Is_Lb=	_H3}', "");
-    Expect(1, 55204, '\P{Is_Lb=	_H3}', "");
-    Expect(0, 55204, '\P{^Is_Lb=	_H3}', "");
-    Error('\p{Line_Break=/a/_ HEBREW_LETTER}');
-    Error('\P{Line_Break=/a/_ HEBREW_LETTER}');
+    Expect(1, 55203, '\p{Is_Line_Break=_ h3}', "");
+    Expect(0, 55203, '\p{^Is_Line_Break=_ h3}', "");
+    Expect(0, 55203, '\P{Is_Line_Break=_ h3}', "");
+    Expect(1, 55203, '\P{^Is_Line_Break=_ h3}', "");
+    Expect(0, 55204, '\p{Is_Line_Break=_ h3}', "");
+    Expect(1, 55204, '\p{^Is_Line_Break=_ h3}', "");
+    Expect(1, 55204, '\P{Is_Line_Break=_ h3}', "");
+    Expect(0, 55204, '\P{^Is_Line_Break=_ h3}', "");
+    Error('\p{Is_Lb=	H3:=}');
+    Error('\P{Is_Lb=	H3:=}');
+    Expect(1, 55203, '\p{Is_Lb:   h3}', "");
+    Expect(0, 55203, '\p{^Is_Lb:   h3}', "");
+    Expect(0, 55203, '\P{Is_Lb:   h3}', "");
+    Expect(1, 55203, '\P{^Is_Lb:   h3}', "");
+    Expect(0, 55204, '\p{Is_Lb:   h3}', "");
+    Expect(1, 55204, '\p{^Is_Lb:   h3}', "");
+    Expect(1, 55204, '\P{Is_Lb:   h3}', "");
+    Expect(0, 55204, '\P{^Is_Lb:   h3}', "");
+    Expect(1, 55203, '\p{Is_Lb=		H3}', "");
+    Expect(0, 55203, '\p{^Is_Lb=		H3}', "");
+    Expect(0, 55203, '\P{Is_Lb=		H3}', "");
+    Expect(1, 55203, '\P{^Is_Lb=		H3}', "");
+    Expect(0, 55204, '\p{Is_Lb=		H3}', "");
+    Expect(1, 55204, '\p{^Is_Lb=		H3}', "");
+    Expect(1, 55204, '\P{Is_Lb=		H3}', "");
+    Expect(0, 55204, '\P{^Is_Lb=		H3}', "");
+    Error('\p{Line_Break=__Hebrew_letter/a/}');
+    Error('\P{Line_Break=__Hebrew_letter/a/}');
     Expect(1, 64335, '\p{Line_Break=:\AHebrew_Letter\z:}', "");;
     Expect(0, 64336, '\p{Line_Break=:\AHebrew_Letter\z:}', "");;
     Expect(1, 64335, '\p{Line_Break=hebrewletter}', "");
@@ -63701,16 +64283,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 64336, '\P{^Line_Break=hebrewletter}', "");
     Expect(1, 64335, '\p{Line_Break=:\Ahebrewletter\z:}', "");;
     Expect(0, 64336, '\p{Line_Break=:\Ahebrewletter\z:}', "");;
-    Expect(1, 64335, '\p{Line_Break:		-hebrew_letter}', "");
-    Expect(0, 64335, '\p{^Line_Break:		-hebrew_letter}', "");
-    Expect(0, 64335, '\P{Line_Break:		-hebrew_letter}', "");
-    Expect(1, 64335, '\P{^Line_Break:		-hebrew_letter}', "");
-    Expect(0, 64336, '\p{Line_Break:		-hebrew_letter}', "");
-    Expect(1, 64336, '\p{^Line_Break:		-hebrew_letter}', "");
-    Expect(1, 64336, '\P{Line_Break:		-hebrew_letter}', "");
-    Expect(0, 64336, '\P{^Line_Break:		-hebrew_letter}', "");
-    Error('\p{Lb=:=-_HL}');
-    Error('\P{Lb=:=-_HL}');
+    Expect(1, 64335, '\p{Line_Break=_	hebrew_LETTER}', "");
+    Expect(0, 64335, '\p{^Line_Break=_	hebrew_LETTER}', "");
+    Expect(0, 64335, '\P{Line_Break=_	hebrew_LETTER}', "");
+    Expect(1, 64335, '\P{^Line_Break=_	hebrew_LETTER}', "");
+    Expect(0, 64336, '\p{Line_Break=_	hebrew_LETTER}', "");
+    Expect(1, 64336, '\p{^Line_Break=_	hebrew_LETTER}', "");
+    Expect(1, 64336, '\P{Line_Break=_	hebrew_LETTER}', "");
+    Expect(0, 64336, '\P{^Line_Break=_	hebrew_LETTER}', "");
+    Error('\p{Lb= :=hl}');
+    Error('\P{Lb= :=hl}');
     Expect(1, 64335, '\p{Lb=:\AHL\z:}', "");;
     Expect(0, 64336, '\p{Lb=:\AHL\z:}', "");;
     Expect(1, 64335, '\p{Lb=hl}', "");
@@ -63723,16 +64305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 64336, '\P{^Lb=hl}', "");
     Expect(1, 64335, '\p{Lb=:\Ahl\z:}', "");;
     Expect(0, 64336, '\p{Lb=:\Ahl\z:}', "");;
-    Expect(1, 64335, '\p{Lb=	 hl}', "");
-    Expect(0, 64335, '\p{^Lb=	 hl}', "");
-    Expect(0, 64335, '\P{Lb=	 hl}', "");
-    Expect(1, 64335, '\P{^Lb=	 hl}', "");
-    Expect(0, 64336, '\p{Lb=	 hl}', "");
-    Expect(1, 64336, '\p{^Lb=	 hl}', "");
-    Expect(1, 64336, '\P{Lb=	 hl}', "");
-    Expect(0, 64336, '\P{^Lb=	 hl}', "");
-    Error('\p{Is_Line_Break=/a/_Hebrew_Letter}');
-    Error('\P{Is_Line_Break=/a/_Hebrew_Letter}');
+    Expect(1, 64335, '\p{Lb=_HL}', "");
+    Expect(0, 64335, '\p{^Lb=_HL}', "");
+    Expect(0, 64335, '\P{Lb=_HL}', "");
+    Expect(1, 64335, '\P{^Lb=_HL}', "");
+    Expect(0, 64336, '\p{Lb=_HL}', "");
+    Expect(1, 64336, '\p{^Lb=_HL}', "");
+    Expect(1, 64336, '\P{Lb=_HL}', "");
+    Expect(0, 64336, '\P{^Lb=_HL}', "");
+    Error('\p{Is_Line_Break= Hebrew_Letter:=}');
+    Error('\P{Is_Line_Break= Hebrew_Letter:=}');
     Expect(1, 64335, '\p{Is_Line_Break=hebrewletter}', "");
     Expect(0, 64335, '\p{^Is_Line_Break=hebrewletter}', "");
     Expect(0, 64335, '\P{Is_Line_Break=hebrewletter}', "");
@@ -63741,16 +64323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 64336, '\p{^Is_Line_Break=hebrewletter}', "");
     Expect(1, 64336, '\P{Is_Line_Break=hebrewletter}', "");
     Expect(0, 64336, '\P{^Is_Line_Break=hebrewletter}', "");
-    Expect(1, 64335, '\p{Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(0, 64335, '\p{^Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(0, 64335, '\P{Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(1, 64335, '\P{^Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(0, 64336, '\p{Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(1, 64336, '\p{^Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(1, 64336, '\P{Is_Line_Break=_Hebrew_Letter}', "");
-    Expect(0, 64336, '\P{^Is_Line_Break=_Hebrew_Letter}', "");
-    Error('\p{Is_Lb=/a/ HL}');
-    Error('\P{Is_Lb=/a/ HL}');
+    Expect(1, 64335, '\p{Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(0, 64335, '\p{^Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(0, 64335, '\P{Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(1, 64335, '\P{^Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(0, 64336, '\p{Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(1, 64336, '\p{^Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(1, 64336, '\P{Is_Line_Break: -	Hebrew_Letter}', "");
+    Expect(0, 64336, '\P{^Is_Line_Break: -	Hebrew_Letter}', "");
+    Error('\p{Is_Lb=	/a/hl}');
+    Error('\P{Is_Lb=	/a/hl}');
     Expect(1, 64335, '\p{Is_Lb=hl}', "");
     Expect(0, 64335, '\p{^Is_Lb=hl}', "");
     Expect(0, 64335, '\P{Is_Lb=hl}', "");
@@ -63759,16 +64341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 64336, '\p{^Is_Lb=hl}', "");
     Expect(1, 64336, '\P{Is_Lb=hl}', "");
     Expect(0, 64336, '\P{^Is_Lb=hl}', "");
-    Expect(1, 64335, '\p{Is_Lb= HL}', "");
-    Expect(0, 64335, '\p{^Is_Lb= HL}', "");
-    Expect(0, 64335, '\P{Is_Lb= HL}', "");
-    Expect(1, 64335, '\P{^Is_Lb= HL}', "");
-    Expect(0, 64336, '\p{Is_Lb= HL}', "");
-    Expect(1, 64336, '\p{^Is_Lb= HL}', "");
-    Expect(1, 64336, '\P{Is_Lb= HL}', "");
-    Expect(0, 64336, '\P{^Is_Lb= HL}', "");
-    Error('\p{Line_Break=	Hyphen:=}');
-    Error('\P{Line_Break=	Hyphen:=}');
+    Expect(1, 64335, '\p{Is_Lb=__hl}', "");
+    Expect(0, 64335, '\p{^Is_Lb=__hl}', "");
+    Expect(0, 64335, '\P{Is_Lb=__hl}', "");
+    Expect(1, 64335, '\P{^Is_Lb=__hl}', "");
+    Expect(0, 64336, '\p{Is_Lb=__hl}', "");
+    Expect(1, 64336, '\p{^Is_Lb=__hl}', "");
+    Expect(1, 64336, '\P{Is_Lb=__hl}', "");
+    Expect(0, 64336, '\P{^Is_Lb=__hl}', "");
+    Error('\p{Line_Break= 	HYPHEN:=}');
+    Error('\P{Line_Break= 	HYPHEN:=}');
     Expect(1, 45, '\p{Line_Break=:\AHyphen\z:}', "");;
     Expect(0, 46, '\p{Line_Break=:\AHyphen\z:}', "");;
     Expect(1, 45, '\p{Line_Break=hyphen}', "");
@@ -63781,16 +64363,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 46, '\P{^Line_Break=hyphen}', "");
     Expect(1, 45, '\p{Line_Break=:\Ahyphen\z:}', "");;
     Expect(0, 46, '\p{Line_Break=:\Ahyphen\z:}', "");;
-    Expect(1, 45, '\p{Line_Break=__Hyphen}', "");
-    Expect(0, 45, '\p{^Line_Break=__Hyphen}', "");
-    Expect(0, 45, '\P{Line_Break=__Hyphen}', "");
-    Expect(1, 45, '\P{^Line_Break=__Hyphen}', "");
-    Expect(0, 46, '\p{Line_Break=__Hyphen}', "");
-    Expect(1, 46, '\p{^Line_Break=__Hyphen}', "");
-    Expect(1, 46, '\P{Line_Break=__Hyphen}', "");
-    Expect(0, 46, '\P{^Line_Break=__Hyphen}', "");
-    Error('\p{Lb=	HY:=}');
-    Error('\P{Lb=	HY:=}');
+    Expect(1, 45, '\p{Line_Break=-	HYPHEN}', "");
+    Expect(0, 45, '\p{^Line_Break=-	HYPHEN}', "");
+    Expect(0, 45, '\P{Line_Break=-	HYPHEN}', "");
+    Expect(1, 45, '\P{^Line_Break=-	HYPHEN}', "");
+    Expect(0, 46, '\p{Line_Break=-	HYPHEN}', "");
+    Expect(1, 46, '\p{^Line_Break=-	HYPHEN}', "");
+    Expect(1, 46, '\P{Line_Break=-	HYPHEN}', "");
+    Expect(0, 46, '\P{^Line_Break=-	HYPHEN}', "");
+    Error('\p{Lb=/a/hy}');
+    Error('\P{Lb=/a/hy}');
     Expect(1, 45, '\p{Lb=:\AHY\z:}', "");;
     Expect(0, 46, '\p{Lb=:\AHY\z:}', "");;
     Expect(1, 45, '\p{Lb=hy}', "");
@@ -63803,14 +64385,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 46, '\P{^Lb=hy}', "");
     Expect(1, 45, '\p{Lb=:\Ahy\z:}', "");;
     Expect(0, 46, '\p{Lb=:\Ahy\z:}', "");;
-    Expect(1, 45, '\p{Lb=-HY}', "");
-    Expect(0, 45, '\p{^Lb=-HY}', "");
-    Expect(0, 45, '\P{Lb=-HY}', "");
-    Expect(1, 45, '\P{^Lb=-HY}', "");
-    Expect(0, 46, '\p{Lb=-HY}', "");
-    Expect(1, 46, '\p{^Lb=-HY}', "");
-    Expect(1, 46, '\P{Lb=-HY}', "");
-    Expect(0, 46, '\P{^Lb=-HY}', "");
+    Expect(1, 45, '\p{Lb:  HY}', "");
+    Expect(0, 45, '\p{^Lb:  HY}', "");
+    Expect(0, 45, '\P{Lb:  HY}', "");
+    Expect(1, 45, '\P{^Lb:  HY}', "");
+    Expect(0, 46, '\p{Lb:  HY}', "");
+    Expect(1, 46, '\p{^Lb:  HY}', "");
+    Expect(1, 46, '\P{Lb:  HY}', "");
+    Expect(0, 46, '\P{^Lb:  HY}', "");
     Error('\p{Is_Line_Break=_/a/hyphen}');
     Error('\P{Is_Line_Break=_/a/hyphen}');
     Expect(1, 45, '\p{Is_Line_Break=hyphen}', "");
@@ -63821,16 +64403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 46, '\p{^Is_Line_Break=hyphen}', "");
     Expect(1, 46, '\P{Is_Line_Break=hyphen}', "");
     Expect(0, 46, '\P{^Is_Line_Break=hyphen}', "");
-    Expect(1, 45, '\p{Is_Line_Break=- Hyphen}', "");
-    Expect(0, 45, '\p{^Is_Line_Break=- Hyphen}', "");
-    Expect(0, 45, '\P{Is_Line_Break=- Hyphen}', "");
-    Expect(1, 45, '\P{^Is_Line_Break=- Hyphen}', "");
-    Expect(0, 46, '\p{Is_Line_Break=- Hyphen}', "");
-    Expect(1, 46, '\p{^Is_Line_Break=- Hyphen}', "");
-    Expect(1, 46, '\P{Is_Line_Break=- Hyphen}', "");
-    Expect(0, 46, '\P{^Is_Line_Break=- Hyphen}', "");
-    Error('\p{Is_Lb:	__HY:=}');
-    Error('\P{Is_Lb:	__HY:=}');
+    Expect(1, 45, '\p{Is_Line_Break:	--Hyphen}', "");
+    Expect(0, 45, '\p{^Is_Line_Break:	--Hyphen}', "");
+    Expect(0, 45, '\P{Is_Line_Break:	--Hyphen}', "");
+    Expect(1, 45, '\P{^Is_Line_Break:	--Hyphen}', "");
+    Expect(0, 46, '\p{Is_Line_Break:	--Hyphen}', "");
+    Expect(1, 46, '\p{^Is_Line_Break:	--Hyphen}', "");
+    Expect(1, 46, '\P{Is_Line_Break:	--Hyphen}', "");
+    Expect(0, 46, '\P{^Is_Line_Break:	--Hyphen}', "");
+    Error('\p{Is_Lb=/a/hy}');
+    Error('\P{Is_Lb=/a/hy}');
     Expect(1, 45, '\p{Is_Lb=hy}', "");
     Expect(0, 45, '\p{^Is_Lb=hy}', "");
     Expect(0, 45, '\P{Is_Lb=hy}', "");
@@ -63839,16 +64421,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 46, '\p{^Is_Lb=hy}', "");
     Expect(1, 46, '\P{Is_Lb=hy}', "");
     Expect(0, 46, '\P{^Is_Lb=hy}', "");
-    Expect(1, 45, '\p{Is_Lb=__HY}', "");
-    Expect(0, 45, '\p{^Is_Lb=__HY}', "");
-    Expect(0, 45, '\P{Is_Lb=__HY}', "");
-    Expect(1, 45, '\P{^Is_Lb=__HY}', "");
-    Expect(0, 46, '\p{Is_Lb=__HY}', "");
-    Expect(1, 46, '\p{^Is_Lb=__HY}', "");
-    Expect(1, 46, '\P{Is_Lb=__HY}', "");
-    Expect(0, 46, '\P{^Is_Lb=__HY}', "");
-    Error('\p{Line_Break::=	 Ideographic}');
-    Error('\P{Line_Break::=	 Ideographic}');
+    Expect(1, 45, '\p{Is_Lb:   -_hy}', "");
+    Expect(0, 45, '\p{^Is_Lb:   -_hy}', "");
+    Expect(0, 45, '\P{Is_Lb:   -_hy}', "");
+    Expect(1, 45, '\P{^Is_Lb:   -_hy}', "");
+    Expect(0, 46, '\p{Is_Lb:   -_hy}', "");
+    Expect(1, 46, '\p{^Is_Lb:   -_hy}', "");
+    Expect(1, 46, '\P{Is_Lb:   -_hy}', "");
+    Expect(0, 46, '\P{^Is_Lb:   -_hy}', "");
+    Error('\p{Line_Break=-ideographic:=}');
+    Error('\P{Line_Break=-ideographic:=}');
     Expect(1, 262141, '\p{Line_Break=:\AIdeographic\z:}', "");;
     Expect(0, 262144, '\p{Line_Break=:\AIdeographic\z:}', "");;
     Expect(1, 262141, '\p{Line_Break=ideographic}', "");
@@ -63861,16 +64443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 262144, '\P{^Line_Break=ideographic}', "");
     Expect(1, 262141, '\p{Line_Break=:\Aideographic\z:}', "");;
     Expect(0, 262144, '\p{Line_Break=:\Aideographic\z:}', "");;
-    Expect(1, 262141, '\p{Line_Break=_-ideographic}', "");
-    Expect(0, 262141, '\p{^Line_Break=_-ideographic}', "");
-    Expect(0, 262141, '\P{Line_Break=_-ideographic}', "");
-    Expect(1, 262141, '\P{^Line_Break=_-ideographic}', "");
-    Expect(0, 262144, '\p{Line_Break=_-ideographic}', "");
-    Expect(1, 262144, '\p{^Line_Break=_-ideographic}', "");
-    Expect(1, 262144, '\P{Line_Break=_-ideographic}', "");
-    Expect(0, 262144, '\P{^Line_Break=_-ideographic}', "");
-    Error('\p{Lb= /a/id}');
-    Error('\P{Lb= /a/id}');
+    Expect(1, 262141, '\p{Line_Break= -Ideographic}', "");
+    Expect(0, 262141, '\p{^Line_Break= -Ideographic}', "");
+    Expect(0, 262141, '\P{Line_Break= -Ideographic}', "");
+    Expect(1, 262141, '\P{^Line_Break= -Ideographic}', "");
+    Expect(0, 262144, '\p{Line_Break= -Ideographic}', "");
+    Expect(1, 262144, '\p{^Line_Break= -Ideographic}', "");
+    Expect(1, 262144, '\P{Line_Break= -Ideographic}', "");
+    Expect(0, 262144, '\P{^Line_Break= -Ideographic}', "");
+    Error('\p{Lb=-/a/ID}');
+    Error('\P{Lb=-/a/ID}');
     Expect(1, 262141, '\p{Lb=:\AID\z:}', "");;
     Expect(0, 262144, '\p{Lb=:\AID\z:}', "");;
     Expect(1, 262141, '\p{Lb=id}', "");
@@ -63883,16 +64465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 262144, '\P{^Lb=id}', "");
     Expect(1, 262141, '\p{Lb=:\Aid\z:}', "");;
     Expect(0, 262144, '\p{Lb=:\Aid\z:}', "");;
-    Expect(1, 262141, '\p{Lb= ID}', "");
-    Expect(0, 262141, '\p{^Lb= ID}', "");
-    Expect(0, 262141, '\P{Lb= ID}', "");
-    Expect(1, 262141, '\P{^Lb= ID}', "");
-    Expect(0, 262144, '\p{Lb= ID}', "");
-    Expect(1, 262144, '\p{^Lb= ID}', "");
-    Expect(1, 262144, '\P{Lb= ID}', "");
-    Expect(0, 262144, '\P{^Lb= ID}', "");
-    Error('\p{Is_Line_Break=_ Ideographic/a/}');
-    Error('\P{Is_Line_Break=_ Ideographic/a/}');
+    Expect(1, 262141, '\p{Lb=_ID}', "");
+    Expect(0, 262141, '\p{^Lb=_ID}', "");
+    Expect(0, 262141, '\P{Lb=_ID}', "");
+    Expect(1, 262141, '\P{^Lb=_ID}', "");
+    Expect(0, 262144, '\p{Lb=_ID}', "");
+    Expect(1, 262144, '\p{^Lb=_ID}', "");
+    Expect(1, 262144, '\P{Lb=_ID}', "");
+    Expect(0, 262144, '\P{^Lb=_ID}', "");
+    Error('\p{Is_Line_Break=:=__IDEOGRAPHIC}');
+    Error('\P{Is_Line_Break=:=__IDEOGRAPHIC}');
     Expect(1, 262141, '\p{Is_Line_Break=ideographic}', "");
     Expect(0, 262141, '\p{^Is_Line_Break=ideographic}', "");
     Expect(0, 262141, '\P{Is_Line_Break=ideographic}', "");
@@ -63901,16 +64483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 262144, '\p{^Is_Line_Break=ideographic}', "");
     Expect(1, 262144, '\P{Is_Line_Break=ideographic}', "");
     Expect(0, 262144, '\P{^Is_Line_Break=ideographic}', "");
-    Expect(1, 262141, '\p{Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(0, 262141, '\p{^Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(0, 262141, '\P{Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(1, 262141, '\P{^Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(0, 262144, '\p{Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(1, 262144, '\p{^Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(1, 262144, '\P{Is_Line_Break= IDEOGRAPHIC}', "");
-    Expect(0, 262144, '\P{^Is_Line_Break= IDEOGRAPHIC}', "");
-    Error('\p{Is_Lb=/a/ 	id}');
-    Error('\P{Is_Lb=/a/ 	id}');
+    Expect(1, 262141, '\p{Is_Line_Break=_Ideographic}', "");
+    Expect(0, 262141, '\p{^Is_Line_Break=_Ideographic}', "");
+    Expect(0, 262141, '\P{Is_Line_Break=_Ideographic}', "");
+    Expect(1, 262141, '\P{^Is_Line_Break=_Ideographic}', "");
+    Expect(0, 262144, '\p{Is_Line_Break=_Ideographic}', "");
+    Expect(1, 262144, '\p{^Is_Line_Break=_Ideographic}', "");
+    Expect(1, 262144, '\P{Is_Line_Break=_Ideographic}', "");
+    Expect(0, 262144, '\P{^Is_Line_Break=_Ideographic}', "");
+    Error('\p{Is_Lb=:=_ID}');
+    Error('\P{Is_Lb=:=_ID}');
     Expect(1, 262141, '\p{Is_Lb=id}', "");
     Expect(0, 262141, '\p{^Is_Lb=id}', "");
     Expect(0, 262141, '\P{Is_Lb=id}', "");
@@ -63919,16 +64501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 262144, '\p{^Is_Lb=id}', "");
     Expect(1, 262144, '\P{Is_Lb=id}', "");
     Expect(0, 262144, '\P{^Is_Lb=id}', "");
-    Expect(1, 262141, '\p{Is_Lb=	 ID}', "");
-    Expect(0, 262141, '\p{^Is_Lb=	 ID}', "");
-    Expect(0, 262141, '\P{Is_Lb=	 ID}', "");
-    Expect(1, 262141, '\P{^Is_Lb=	 ID}', "");
-    Expect(0, 262144, '\p{Is_Lb=	 ID}', "");
-    Expect(1, 262144, '\p{^Is_Lb=	 ID}', "");
-    Expect(1, 262144, '\P{Is_Lb=	 ID}', "");
-    Expect(0, 262144, '\P{^Is_Lb=	 ID}', "");
-    Error('\p{Line_Break=:= 	inseparable}');
-    Error('\P{Line_Break=:= 	inseparable}');
+    Expect(1, 262141, '\p{Is_Lb= ID}', "");
+    Expect(0, 262141, '\p{^Is_Lb= ID}', "");
+    Expect(0, 262141, '\P{Is_Lb= ID}', "");
+    Expect(1, 262141, '\P{^Is_Lb= ID}', "");
+    Expect(0, 262144, '\p{Is_Lb= ID}', "");
+    Expect(1, 262144, '\p{^Is_Lb= ID}', "");
+    Expect(1, 262144, '\P{Is_Lb= ID}', "");
+    Expect(0, 262144, '\P{^Is_Lb= ID}', "");
+    Error('\p{Line_Break=_/a/Inseparable}');
+    Error('\P{Line_Break=_/a/Inseparable}');
     Expect(1, 68342, '\p{Line_Break=:\AInseparable\z:}', "");;
     Expect(0, 68343, '\p{Line_Break=:\AInseparable\z:}', "");;
     Expect(1, 68342, '\p{Line_Break=inseparable}', "");
@@ -63941,16 +64523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68343, '\P{^Line_Break=inseparable}', "");
     Expect(1, 68342, '\p{Line_Break=:\Ainseparable\z:}', "");;
     Expect(0, 68343, '\p{Line_Break=:\Ainseparable\z:}', "");;
-    Expect(1, 68342, '\p{Line_Break=-inseparable}', "");
-    Expect(0, 68342, '\p{^Line_Break=-inseparable}', "");
-    Expect(0, 68342, '\P{Line_Break=-inseparable}', "");
-    Expect(1, 68342, '\P{^Line_Break=-inseparable}', "");
-    Expect(0, 68343, '\p{Line_Break=-inseparable}', "");
-    Expect(1, 68343, '\p{^Line_Break=-inseparable}', "");
-    Expect(1, 68343, '\P{Line_Break=-inseparable}', "");
-    Expect(0, 68343, '\P{^Line_Break=-inseparable}', "");
-    Error('\p{Lb=:=IN}');
-    Error('\P{Lb=:=IN}');
+    Expect(1, 68342, '\p{Line_Break=		Inseparable}', "");
+    Expect(0, 68342, '\p{^Line_Break=		Inseparable}', "");
+    Expect(0, 68342, '\P{Line_Break=		Inseparable}', "");
+    Expect(1, 68342, '\P{^Line_Break=		Inseparable}', "");
+    Expect(0, 68343, '\p{Line_Break=		Inseparable}', "");
+    Expect(1, 68343, '\p{^Line_Break=		Inseparable}', "");
+    Expect(1, 68343, '\P{Line_Break=		Inseparable}', "");
+    Expect(0, 68343, '\P{^Line_Break=		Inseparable}', "");
+    Error('\p{Lb:/a/_IN}');
+    Error('\P{Lb:/a/_IN}');
     Expect(1, 68342, '\p{Lb=:\AIN\z:}', "");;
     Expect(0, 68343, '\p{Lb=:\AIN\z:}', "");;
     Expect(1, 68342, '\p{Lb=in}', "");
@@ -63963,16 +64545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68343, '\P{^Lb=in}', "");
     Expect(1, 68342, '\p{Lb=:\Ain\z:}', "");;
     Expect(0, 68343, '\p{Lb=:\Ain\z:}', "");;
-    Expect(1, 68342, '\p{Lb=-IN}', "");
-    Expect(0, 68342, '\p{^Lb=-IN}', "");
-    Expect(0, 68342, '\P{Lb=-IN}', "");
-    Expect(1, 68342, '\P{^Lb=-IN}', "");
-    Expect(0, 68343, '\p{Lb=-IN}', "");
-    Expect(1, 68343, '\p{^Lb=-IN}', "");
-    Expect(1, 68343, '\P{Lb=-IN}', "");
-    Expect(0, 68343, '\P{^Lb=-IN}', "");
-    Error('\p{Is_Line_Break=	/a/INSEPERABLE}');
-    Error('\P{Is_Line_Break=	/a/INSEPERABLE}');
+    Expect(1, 68342, '\p{Lb=	_IN}', "");
+    Expect(0, 68342, '\p{^Lb=	_IN}', "");
+    Expect(0, 68342, '\P{Lb=	_IN}', "");
+    Expect(1, 68342, '\P{^Lb=	_IN}', "");
+    Expect(0, 68343, '\p{Lb=	_IN}', "");
+    Expect(1, 68343, '\p{^Lb=	_IN}', "");
+    Expect(1, 68343, '\P{Lb=	_IN}', "");
+    Expect(0, 68343, '\P{^Lb=	_IN}', "");
+    Error('\p{Is_Line_Break=/a/Inseperable}');
+    Error('\P{Is_Line_Break=/a/Inseperable}');
     Expect(1, 68342, '\p{Is_Line_Break=inseperable}', "");
     Expect(0, 68342, '\p{^Is_Line_Break=inseperable}', "");
     Expect(0, 68342, '\P{Is_Line_Break=inseperable}', "");
@@ -63981,16 +64563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68343, '\p{^Is_Line_Break=inseperable}', "");
     Expect(1, 68343, '\P{Is_Line_Break=inseperable}', "");
     Expect(0, 68343, '\P{^Is_Line_Break=inseperable}', "");
-    Expect(1, 68342, '\p{Is_Line_Break:   _-Inseperable}', "");
-    Expect(0, 68342, '\p{^Is_Line_Break:   _-Inseperable}', "");
-    Expect(0, 68342, '\P{Is_Line_Break:   _-Inseperable}', "");
-    Expect(1, 68342, '\P{^Is_Line_Break:   _-Inseperable}', "");
-    Expect(0, 68343, '\p{Is_Line_Break:   _-Inseperable}', "");
-    Expect(1, 68343, '\p{^Is_Line_Break:   _-Inseperable}', "");
-    Expect(1, 68343, '\P{Is_Line_Break:   _-Inseperable}', "");
-    Expect(0, 68343, '\P{^Is_Line_Break:   _-Inseperable}', "");
-    Error('\p{Is_Lb=_-INSEPARABLE/a/}');
-    Error('\P{Is_Lb=_-INSEPARABLE/a/}');
+    Expect(1, 68342, '\p{Is_Line_Break=- Inseperable}', "");
+    Expect(0, 68342, '\p{^Is_Line_Break=- Inseperable}', "");
+    Expect(0, 68342, '\P{Is_Line_Break=- Inseperable}', "");
+    Expect(1, 68342, '\P{^Is_Line_Break=- Inseperable}', "");
+    Expect(0, 68343, '\p{Is_Line_Break=- Inseperable}', "");
+    Expect(1, 68343, '\p{^Is_Line_Break=- Inseperable}', "");
+    Expect(1, 68343, '\P{Is_Line_Break=- Inseperable}', "");
+    Expect(0, 68343, '\P{^Is_Line_Break=- Inseperable}', "");
+    Error('\p{Is_Lb:	:=Inseparable}');
+    Error('\P{Is_Lb:	:=Inseparable}');
     Expect(1, 68342, '\p{Is_Lb=inseparable}', "");
     Expect(0, 68342, '\p{^Is_Lb=inseparable}', "");
     Expect(0, 68342, '\P{Is_Lb=inseparable}', "");
@@ -63999,16 +64581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68343, '\p{^Is_Lb=inseparable}', "");
     Expect(1, 68343, '\P{Is_Lb=inseparable}', "");
     Expect(0, 68343, '\P{^Is_Lb=inseparable}', "");
-    Expect(1, 68342, '\p{Is_Lb:   _ Inseparable}', "");
-    Expect(0, 68342, '\p{^Is_Lb:   _ Inseparable}', "");
-    Expect(0, 68342, '\P{Is_Lb:   _ Inseparable}', "");
-    Expect(1, 68342, '\P{^Is_Lb:   _ Inseparable}', "");
-    Expect(0, 68343, '\p{Is_Lb:   _ Inseparable}', "");
-    Expect(1, 68343, '\p{^Is_Lb:   _ Inseparable}', "");
-    Expect(1, 68343, '\P{Is_Lb:   _ Inseparable}', "");
-    Expect(0, 68343, '\P{^Is_Lb:   _ Inseparable}', "");
-    Error('\p{Line_Break=Infix_numeric/a/}');
-    Error('\P{Line_Break=Infix_numeric/a/}');
+    Expect(1, 68342, '\p{Is_Lb=_-INSEPARABLE}', "");
+    Expect(0, 68342, '\p{^Is_Lb=_-INSEPARABLE}', "");
+    Expect(0, 68342, '\P{Is_Lb=_-INSEPARABLE}', "");
+    Expect(1, 68342, '\P{^Is_Lb=_-INSEPARABLE}', "");
+    Expect(0, 68343, '\p{Is_Lb=_-INSEPARABLE}', "");
+    Expect(1, 68343, '\p{^Is_Lb=_-INSEPARABLE}', "");
+    Expect(1, 68343, '\P{Is_Lb=_-INSEPARABLE}', "");
+    Expect(0, 68343, '\P{^Is_Lb=_-INSEPARABLE}', "");
+    Error('\p{Line_Break= :=infix_NUMERIC}');
+    Error('\P{Line_Break= :=infix_NUMERIC}');
     Expect(1, 65044, '\p{Line_Break=:\AInfix_Numeric\z:}', "");;
     Expect(0, 65045, '\p{Line_Break=:\AInfix_Numeric\z:}', "");;
     Expect(1, 65044, '\p{Line_Break=infixnumeric}', "");
@@ -64021,16 +64603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65045, '\P{^Line_Break=infixnumeric}', "");
     Expect(1, 65044, '\p{Line_Break=:\Ainfixnumeric\z:}', "");;
     Expect(0, 65045, '\p{Line_Break=:\Ainfixnumeric\z:}', "");;
-    Expect(1, 65044, '\p{Line_Break=__infix_NUMERIC}', "");
-    Expect(0, 65044, '\p{^Line_Break=__infix_NUMERIC}', "");
-    Expect(0, 65044, '\P{Line_Break=__infix_NUMERIC}', "");
-    Expect(1, 65044, '\P{^Line_Break=__infix_NUMERIC}', "");
-    Expect(0, 65045, '\p{Line_Break=__infix_NUMERIC}', "");
-    Expect(1, 65045, '\p{^Line_Break=__infix_NUMERIC}', "");
-    Expect(1, 65045, '\P{Line_Break=__infix_NUMERIC}', "");
-    Expect(0, 65045, '\P{^Line_Break=__infix_NUMERIC}', "");
-    Error('\p{Lb=:=- IS}');
-    Error('\P{Lb=:=- IS}');
+    Expect(1, 65044, '\p{Line_Break=-_INFIX_Numeric}', "");
+    Expect(0, 65044, '\p{^Line_Break=-_INFIX_Numeric}', "");
+    Expect(0, 65044, '\P{Line_Break=-_INFIX_Numeric}', "");
+    Expect(1, 65044, '\P{^Line_Break=-_INFIX_Numeric}', "");
+    Expect(0, 65045, '\p{Line_Break=-_INFIX_Numeric}', "");
+    Expect(1, 65045, '\p{^Line_Break=-_INFIX_Numeric}', "");
+    Expect(1, 65045, '\P{Line_Break=-_INFIX_Numeric}', "");
+    Expect(0, 65045, '\P{^Line_Break=-_INFIX_Numeric}', "");
+    Error('\p{Lb=- IS/a/}');
+    Error('\P{Lb=- IS/a/}');
     Expect(1, 65044, '\p{Lb=:\AIS\z:}', "");;
     Expect(0, 65045, '\p{Lb=:\AIS\z:}', "");;
     Expect(1, 65044, '\p{Lb=is}', "");
@@ -64043,34 +64625,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65045, '\P{^Lb=is}', "");
     Expect(1, 65044, '\p{Lb=:\Ais\z:}', "");;
     Expect(0, 65045, '\p{Lb=:\Ais\z:}', "");;
-    Expect(1, 65044, '\p{Lb=  IS}', "");
-    Expect(0, 65044, '\p{^Lb=  IS}', "");
-    Expect(0, 65044, '\P{Lb=  IS}', "");
-    Expect(1, 65044, '\P{^Lb=  IS}', "");
-    Expect(0, 65045, '\p{Lb=  IS}', "");
-    Expect(1, 65045, '\p{^Lb=  IS}', "");
-    Expect(1, 65045, '\P{Lb=  IS}', "");
-    Expect(0, 65045, '\P{^Lb=  IS}', "");
-    Error('\p{Is_Line_Break:   /a/_	INFIX_Numeric}');
-    Error('\P{Is_Line_Break:   /a/_	INFIX_Numeric}');
-    Expect(1, 65044, '\p{Is_Line_Break=infixnumeric}', "");
-    Expect(0, 65044, '\p{^Is_Line_Break=infixnumeric}', "");
-    Expect(0, 65044, '\P{Is_Line_Break=infixnumeric}', "");
-    Expect(1, 65044, '\P{^Is_Line_Break=infixnumeric}', "");
-    Expect(0, 65045, '\p{Is_Line_Break=infixnumeric}', "");
-    Expect(1, 65045, '\p{^Is_Line_Break=infixnumeric}', "");
-    Expect(1, 65045, '\P{Is_Line_Break=infixnumeric}', "");
-    Expect(0, 65045, '\P{^Is_Line_Break=infixnumeric}', "");
-    Expect(1, 65044, '\p{Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(0, 65044, '\p{^Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(0, 65044, '\P{Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(1, 65044, '\P{^Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(0, 65045, '\p{Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(1, 65045, '\p{^Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(1, 65045, '\P{Is_Line_Break:_ infix_NUMERIC}', "");
-    Expect(0, 65045, '\P{^Is_Line_Break:_ infix_NUMERIC}', "");
-    Error('\p{Is_Lb= -IS:=}');
-    Error('\P{Is_Lb= -IS:=}');
+    Expect(1, 65044, '\p{Lb= _IS}', "");
+    Expect(0, 65044, '\p{^Lb= _IS}', "");
+    Expect(0, 65044, '\P{Lb= _IS}', "");
+    Expect(1, 65044, '\P{^Lb= _IS}', "");
+    Expect(0, 65045, '\p{Lb= _IS}', "");
+    Expect(1, 65045, '\p{^Lb= _IS}', "");
+    Expect(1, 65045, '\P{Lb= _IS}', "");
+    Expect(0, 65045, '\P{^Lb= _IS}', "");
+    Error('\p{Is_Line_Break:_	Infix_Numeric/a/}');
+    Error('\P{Is_Line_Break:_	Infix_Numeric/a/}');
+    Expect(1, 65044, '\p{Is_Line_Break: infixnumeric}', "");
+    Expect(0, 65044, '\p{^Is_Line_Break: infixnumeric}', "");
+    Expect(0, 65044, '\P{Is_Line_Break: infixnumeric}', "");
+    Expect(1, 65044, '\P{^Is_Line_Break: infixnumeric}', "");
+    Expect(0, 65045, '\p{Is_Line_Break: infixnumeric}', "");
+    Expect(1, 65045, '\p{^Is_Line_Break: infixnumeric}', "");
+    Expect(1, 65045, '\P{Is_Line_Break: infixnumeric}', "");
+    Expect(0, 65045, '\P{^Is_Line_Break: infixnumeric}', "");
+    Expect(1, 65044, '\p{Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(0, 65044, '\p{^Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(0, 65044, '\P{Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(1, 65044, '\P{^Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(0, 65045, '\p{Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(1, 65045, '\p{^Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(1, 65045, '\P{Is_Line_Break= Infix_NUMERIC}', "");
+    Expect(0, 65045, '\P{^Is_Line_Break= Infix_NUMERIC}', "");
+    Error('\p{Is_Lb=	:=IS}');
+    Error('\P{Is_Lb=	:=IS}');
     Expect(1, 65044, '\p{Is_Lb=is}', "");
     Expect(0, 65044, '\p{^Is_Lb=is}', "");
     Expect(0, 65044, '\P{Is_Lb=is}', "");
@@ -64079,16 +64661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65045, '\p{^Is_Lb=is}', "");
     Expect(1, 65045, '\P{Is_Lb=is}', "");
     Expect(0, 65045, '\P{^Is_Lb=is}', "");
-    Expect(1, 65044, '\p{Is_Lb=_ IS}', "");
-    Expect(0, 65044, '\p{^Is_Lb=_ IS}', "");
-    Expect(0, 65044, '\P{Is_Lb=_ IS}', "");
-    Expect(1, 65044, '\P{^Is_Lb=_ IS}', "");
-    Expect(0, 65045, '\p{Is_Lb=_ IS}', "");
-    Expect(1, 65045, '\p{^Is_Lb=_ IS}', "");
-    Expect(1, 65045, '\P{Is_Lb=_ IS}', "");
-    Expect(0, 65045, '\P{^Is_Lb=_ IS}', "");
-    Error('\p{Line_Break=:=	_JL}');
-    Error('\P{Line_Break=:=	_JL}');
+    Expect(1, 65044, '\p{Is_Lb=	_is}', "");
+    Expect(0, 65044, '\p{^Is_Lb=	_is}', "");
+    Expect(0, 65044, '\P{Is_Lb=	_is}', "");
+    Expect(1, 65044, '\P{^Is_Lb=	_is}', "");
+    Expect(0, 65045, '\p{Is_Lb=	_is}', "");
+    Expect(1, 65045, '\p{^Is_Lb=	_is}', "");
+    Expect(1, 65045, '\P{Is_Lb=	_is}', "");
+    Expect(0, 65045, '\P{^Is_Lb=	_is}', "");
+    Error('\p{Line_Break=_/a/JL}');
+    Error('\P{Line_Break=_/a/JL}');
     Expect(1, 43388, '\p{Line_Break=:\AJL\z:}', "");;
     Expect(0, 43389, '\p{Line_Break=:\AJL\z:}', "");;
     Expect(1, 43388, '\p{Line_Break=jl}', "");
@@ -64101,56 +64683,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43389, '\P{^Line_Break=jl}', "");
     Expect(1, 43388, '\p{Line_Break=:\Ajl\z:}', "");;
     Expect(0, 43389, '\p{Line_Break=:\Ajl\z:}', "");;
-    Expect(1, 43388, '\p{Line_Break=_	JL}', "");
-    Expect(0, 43388, '\p{^Line_Break=_	JL}', "");
-    Expect(0, 43388, '\P{Line_Break=_	JL}', "");
-    Expect(1, 43388, '\P{^Line_Break=_	JL}', "");
-    Expect(0, 43389, '\p{Line_Break=_	JL}', "");
-    Expect(1, 43389, '\p{^Line_Break=_	JL}', "");
-    Expect(1, 43389, '\P{Line_Break=_	JL}', "");
-    Expect(0, 43389, '\P{^Line_Break=_	JL}', "");
-    Error('\p{Lb: _:=JL}');
-    Error('\P{Lb: _:=JL}');
+    Expect(1, 43388, '\p{Line_Break:   	_JL}', "");
+    Expect(0, 43388, '\p{^Line_Break:   	_JL}', "");
+    Expect(0, 43388, '\P{Line_Break:   	_JL}', "");
+    Expect(1, 43388, '\P{^Line_Break:   	_JL}', "");
+    Expect(0, 43389, '\p{Line_Break:   	_JL}', "");
+    Expect(1, 43389, '\p{^Line_Break:   	_JL}', "");
+    Expect(1, 43389, '\P{Line_Break:   	_JL}', "");
+    Expect(0, 43389, '\P{^Line_Break:   	_JL}', "");
+    Error('\p{Lb=--JL:=}');
+    Error('\P{Lb=--JL:=}');
     Expect(1, 43388, '\p{Lb=:\AJL\z:}', "");;
     Expect(0, 43389, '\p{Lb=:\AJL\z:}', "");;
-    Expect(1, 43388, '\p{Lb:	jl}', "");
-    Expect(0, 43388, '\p{^Lb:	jl}', "");
-    Expect(0, 43388, '\P{Lb:	jl}', "");
-    Expect(1, 43388, '\P{^Lb:	jl}', "");
-    Expect(0, 43389, '\p{Lb:	jl}', "");
-    Expect(1, 43389, '\p{^Lb:	jl}', "");
-    Expect(1, 43389, '\P{Lb:	jl}', "");
-    Expect(0, 43389, '\P{^Lb:	jl}', "");
+    Expect(1, 43388, '\p{Lb=jl}', "");
+    Expect(0, 43388, '\p{^Lb=jl}', "");
+    Expect(0, 43388, '\P{Lb=jl}', "");
+    Expect(1, 43388, '\P{^Lb=jl}', "");
+    Expect(0, 43389, '\p{Lb=jl}', "");
+    Expect(1, 43389, '\p{^Lb=jl}', "");
+    Expect(1, 43389, '\P{Lb=jl}', "");
+    Expect(0, 43389, '\P{^Lb=jl}', "");
     Expect(1, 43388, '\p{Lb=:\Ajl\z:}', "");;
     Expect(0, 43389, '\p{Lb=:\Ajl\z:}', "");;
-    Expect(1, 43388, '\p{Lb=	-JL}', "");
-    Expect(0, 43388, '\p{^Lb=	-JL}', "");
-    Expect(0, 43388, '\P{Lb=	-JL}', "");
-    Expect(1, 43388, '\P{^Lb=	-JL}', "");
-    Expect(0, 43389, '\p{Lb=	-JL}', "");
-    Expect(1, 43389, '\p{^Lb=	-JL}', "");
-    Expect(1, 43389, '\P{Lb=	-JL}', "");
-    Expect(0, 43389, '\P{^Lb=	-JL}', "");
-    Error('\p{Is_Line_Break=:=		JL}');
-    Error('\P{Is_Line_Break=:=		JL}');
-    Expect(1, 43388, '\p{Is_Line_Break=jl}', "");
-    Expect(0, 43388, '\p{^Is_Line_Break=jl}', "");
-    Expect(0, 43388, '\P{Is_Line_Break=jl}', "");
-    Expect(1, 43388, '\P{^Is_Line_Break=jl}', "");
-    Expect(0, 43389, '\p{Is_Line_Break=jl}', "");
-    Expect(1, 43389, '\p{^Is_Line_Break=jl}', "");
-    Expect(1, 43389, '\P{Is_Line_Break=jl}', "");
-    Expect(0, 43389, '\P{^Is_Line_Break=jl}', "");
-    Expect(1, 43388, '\p{Is_Line_Break=-JL}', "");
-    Expect(0, 43388, '\p{^Is_Line_Break=-JL}', "");
-    Expect(0, 43388, '\P{Is_Line_Break=-JL}', "");
-    Expect(1, 43388, '\P{^Is_Line_Break=-JL}', "");
-    Expect(0, 43389, '\p{Is_Line_Break=-JL}', "");
-    Expect(1, 43389, '\p{^Is_Line_Break=-JL}', "");
-    Expect(1, 43389, '\P{Is_Line_Break=-JL}', "");
-    Expect(0, 43389, '\P{^Is_Line_Break=-JL}', "");
-    Error('\p{Is_Lb:   _JL:=}');
-    Error('\P{Is_Lb:   _JL:=}');
+    Expect(1, 43388, '\p{Lb=-_JL}', "");
+    Expect(0, 43388, '\p{^Lb=-_JL}', "");
+    Expect(0, 43388, '\P{Lb=-_JL}', "");
+    Expect(1, 43388, '\P{^Lb=-_JL}', "");
+    Expect(0, 43389, '\p{Lb=-_JL}', "");
+    Expect(1, 43389, '\p{^Lb=-_JL}', "");
+    Expect(1, 43389, '\P{Lb=-_JL}', "");
+    Expect(0, 43389, '\P{^Lb=-_JL}', "");
+    Error('\p{Is_Line_Break=/a/  JL}');
+    Error('\P{Is_Line_Break=/a/  JL}');
+    Expect(1, 43388, '\p{Is_Line_Break: jl}', "");
+    Expect(0, 43388, '\p{^Is_Line_Break: jl}', "");
+    Expect(0, 43388, '\P{Is_Line_Break: jl}', "");
+    Expect(1, 43388, '\P{^Is_Line_Break: jl}', "");
+    Expect(0, 43389, '\p{Is_Line_Break: jl}', "");
+    Expect(1, 43389, '\p{^Is_Line_Break: jl}', "");
+    Expect(1, 43389, '\P{Is_Line_Break: jl}', "");
+    Expect(0, 43389, '\P{^Is_Line_Break: jl}', "");
+    Expect(1, 43388, '\p{Is_Line_Break= _jl}', "");
+    Expect(0, 43388, '\p{^Is_Line_Break= _jl}', "");
+    Expect(0, 43388, '\P{Is_Line_Break= _jl}', "");
+    Expect(1, 43388, '\P{^Is_Line_Break= _jl}', "");
+    Expect(0, 43389, '\p{Is_Line_Break= _jl}', "");
+    Expect(1, 43389, '\p{^Is_Line_Break= _jl}', "");
+    Expect(1, 43389, '\P{Is_Line_Break= _jl}', "");
+    Expect(0, 43389, '\P{^Is_Line_Break= _jl}', "");
+    Error('\p{Is_Lb=-JL/a/}');
+    Error('\P{Is_Lb=-JL/a/}');
     Expect(1, 43388, '\p{Is_Lb=jl}', "");
     Expect(0, 43388, '\p{^Is_Lb=jl}', "");
     Expect(0, 43388, '\P{Is_Lb=jl}', "");
@@ -64159,38 +64741,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43389, '\p{^Is_Lb=jl}', "");
     Expect(1, 43389, '\P{Is_Lb=jl}', "");
     Expect(0, 43389, '\P{^Is_Lb=jl}', "");
-    Expect(1, 43388, '\p{Is_Lb=	_JL}', "");
-    Expect(0, 43388, '\p{^Is_Lb=	_JL}', "");
-    Expect(0, 43388, '\P{Is_Lb=	_JL}', "");
-    Expect(1, 43388, '\P{^Is_Lb=	_JL}', "");
-    Expect(0, 43389, '\p{Is_Lb=	_JL}', "");
-    Expect(1, 43389, '\p{^Is_Lb=	_JL}', "");
-    Expect(1, 43389, '\P{Is_Lb=	_JL}', "");
-    Expect(0, 43389, '\P{^Is_Lb=	_JL}', "");
-    Error('\p{Line_Break=-/a/jt}');
-    Error('\P{Line_Break=-/a/jt}');
+    Expect(1, 43388, '\p{Is_Lb=__JL}', "");
+    Expect(0, 43388, '\p{^Is_Lb=__JL}', "");
+    Expect(0, 43388, '\P{Is_Lb=__JL}', "");
+    Expect(1, 43388, '\P{^Is_Lb=__JL}', "");
+    Expect(0, 43389, '\p{Is_Lb=__JL}', "");
+    Expect(1, 43389, '\p{^Is_Lb=__JL}', "");
+    Expect(1, 43389, '\P{Is_Lb=__JL}', "");
+    Expect(0, 43389, '\P{^Is_Lb=__JL}', "");
+    Error('\p{Line_Break=	_JT/a/}');
+    Error('\P{Line_Break=	_JT/a/}');
     Expect(1, 55291, '\p{Line_Break=:\AJT\z:}', "");;
     Expect(0, 55292, '\p{Line_Break=:\AJT\z:}', "");;
-    Expect(1, 55291, '\p{Line_Break=jt}', "");
-    Expect(0, 55291, '\p{^Line_Break=jt}', "");
-    Expect(0, 55291, '\P{Line_Break=jt}', "");
-    Expect(1, 55291, '\P{^Line_Break=jt}', "");
-    Expect(0, 55292, '\p{Line_Break=jt}', "");
-    Expect(1, 55292, '\p{^Line_Break=jt}', "");
-    Expect(1, 55292, '\P{Line_Break=jt}', "");
-    Expect(0, 55292, '\P{^Line_Break=jt}', "");
+    Expect(1, 55291, '\p{Line_Break:	jt}', "");
+    Expect(0, 55291, '\p{^Line_Break:	jt}', "");
+    Expect(0, 55291, '\P{Line_Break:	jt}', "");
+    Expect(1, 55291, '\P{^Line_Break:	jt}', "");
+    Expect(0, 55292, '\p{Line_Break:	jt}', "");
+    Expect(1, 55292, '\p{^Line_Break:	jt}', "");
+    Expect(1, 55292, '\P{Line_Break:	jt}', "");
+    Expect(0, 55292, '\P{^Line_Break:	jt}', "");
     Expect(1, 55291, '\p{Line_Break=:\Ajt\z:}', "");;
     Expect(0, 55292, '\p{Line_Break=:\Ajt\z:}', "");;
-    Expect(1, 55291, '\p{Line_Break= JT}', "");
-    Expect(0, 55291, '\p{^Line_Break= JT}', "");
-    Expect(0, 55291, '\P{Line_Break= JT}', "");
-    Expect(1, 55291, '\P{^Line_Break= JT}', "");
-    Expect(0, 55292, '\p{Line_Break= JT}', "");
-    Expect(1, 55292, '\p{^Line_Break= JT}', "");
-    Expect(1, 55292, '\P{Line_Break= JT}', "");
-    Expect(0, 55292, '\P{^Line_Break= JT}', "");
-    Error('\p{Lb=_JT:=}');
-    Error('\P{Lb=_JT:=}');
+    Expect(1, 55291, '\p{Line_Break=_JT}', "");
+    Expect(0, 55291, '\p{^Line_Break=_JT}', "");
+    Expect(0, 55291, '\P{Line_Break=_JT}', "");
+    Expect(1, 55291, '\P{^Line_Break=_JT}', "");
+    Expect(0, 55292, '\p{Line_Break=_JT}', "");
+    Expect(1, 55292, '\p{^Line_Break=_JT}', "");
+    Expect(1, 55292, '\P{Line_Break=_JT}', "");
+    Expect(0, 55292, '\P{^Line_Break=_JT}', "");
+    Error('\p{Lb:_:=JT}');
+    Error('\P{Lb:_:=JT}');
     Expect(1, 55291, '\p{Lb=:\AJT\z:}', "");;
     Expect(0, 55292, '\p{Lb=:\AJT\z:}', "");;
     Expect(1, 55291, '\p{Lb=jt}', "");
@@ -64203,16 +64785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55292, '\P{^Lb=jt}', "");
     Expect(1, 55291, '\p{Lb=:\Ajt\z:}', "");;
     Expect(0, 55292, '\p{Lb=:\Ajt\z:}', "");;
-    Expect(1, 55291, '\p{Lb=- JT}', "");
-    Expect(0, 55291, '\p{^Lb=- JT}', "");
-    Expect(0, 55291, '\P{Lb=- JT}', "");
-    Expect(1, 55291, '\P{^Lb=- JT}', "");
-    Expect(0, 55292, '\p{Lb=- JT}', "");
-    Expect(1, 55292, '\p{^Lb=- JT}', "");
-    Expect(1, 55292, '\P{Lb=- JT}', "");
-    Expect(0, 55292, '\P{^Lb=- JT}', "");
-    Error('\p{Is_Line_Break=_/a/JT}');
-    Error('\P{Is_Line_Break=_/a/JT}');
+    Expect(1, 55291, '\p{Lb= JT}', "");
+    Expect(0, 55291, '\p{^Lb= JT}', "");
+    Expect(0, 55291, '\P{Lb= JT}', "");
+    Expect(1, 55291, '\P{^Lb= JT}', "");
+    Expect(0, 55292, '\p{Lb= JT}', "");
+    Expect(1, 55292, '\p{^Lb= JT}', "");
+    Expect(1, 55292, '\P{Lb= JT}', "");
+    Expect(0, 55292, '\P{^Lb= JT}', "");
+    Error('\p{Is_Line_Break=/a/	-JT}');
+    Error('\P{Is_Line_Break=/a/	-JT}');
     Expect(1, 55291, '\p{Is_Line_Break=jt}', "");
     Expect(0, 55291, '\p{^Is_Line_Break=jt}', "");
     Expect(0, 55291, '\P{Is_Line_Break=jt}', "");
@@ -64221,16 +64803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55292, '\p{^Is_Line_Break=jt}', "");
     Expect(1, 55292, '\P{Is_Line_Break=jt}', "");
     Expect(0, 55292, '\P{^Is_Line_Break=jt}', "");
-    Expect(1, 55291, '\p{Is_Line_Break=_ JT}', "");
-    Expect(0, 55291, '\p{^Is_Line_Break=_ JT}', "");
-    Expect(0, 55291, '\P{Is_Line_Break=_ JT}', "");
-    Expect(1, 55291, '\P{^Is_Line_Break=_ JT}', "");
-    Expect(0, 55292, '\p{Is_Line_Break=_ JT}', "");
-    Expect(1, 55292, '\p{^Is_Line_Break=_ JT}', "");
-    Expect(1, 55292, '\P{Is_Line_Break=_ JT}', "");
-    Expect(0, 55292, '\P{^Is_Line_Break=_ JT}', "");
-    Error('\p{Is_Lb=-/a/JT}');
-    Error('\P{Is_Lb=-/a/JT}');
+    Expect(1, 55291, '\p{Is_Line_Break=-	jt}', "");
+    Expect(0, 55291, '\p{^Is_Line_Break=-	jt}', "");
+    Expect(0, 55291, '\P{Is_Line_Break=-	jt}', "");
+    Expect(1, 55291, '\P{^Is_Line_Break=-	jt}', "");
+    Expect(0, 55292, '\p{Is_Line_Break=-	jt}', "");
+    Expect(1, 55292, '\p{^Is_Line_Break=-	jt}', "");
+    Expect(1, 55292, '\P{Is_Line_Break=-	jt}', "");
+    Expect(0, 55292, '\P{^Is_Line_Break=-	jt}', "");
+    Error('\p{Is_Lb= :=jt}');
+    Error('\P{Is_Lb= :=jt}');
     Expect(1, 55291, '\p{Is_Lb=jt}', "");
     Expect(0, 55291, '\p{^Is_Lb=jt}', "");
     Expect(0, 55291, '\P{Is_Lb=jt}', "");
@@ -64239,16 +64821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55292, '\p{^Is_Lb=jt}', "");
     Expect(1, 55292, '\P{Is_Lb=jt}', "");
     Expect(0, 55292, '\P{^Is_Lb=jt}', "");
-    Expect(1, 55291, '\p{Is_Lb= jt}', "");
-    Expect(0, 55291, '\p{^Is_Lb= jt}', "");
-    Expect(0, 55291, '\P{Is_Lb= jt}', "");
-    Expect(1, 55291, '\P{^Is_Lb= jt}', "");
-    Expect(0, 55292, '\p{Is_Lb= jt}', "");
-    Expect(1, 55292, '\p{^Is_Lb= jt}', "");
-    Expect(1, 55292, '\P{Is_Lb= jt}', "");
-    Expect(0, 55292, '\P{^Is_Lb= jt}', "");
-    Error('\p{Line_Break=-/a/JV}');
-    Error('\P{Line_Break=-/a/JV}');
+    Expect(1, 55291, '\p{Is_Lb=__jt}', "");
+    Expect(0, 55291, '\p{^Is_Lb=__jt}', "");
+    Expect(0, 55291, '\P{Is_Lb=__jt}', "");
+    Expect(1, 55291, '\P{^Is_Lb=__jt}', "");
+    Expect(0, 55292, '\p{Is_Lb=__jt}', "");
+    Expect(1, 55292, '\p{^Is_Lb=__jt}', "");
+    Expect(1, 55292, '\P{Is_Lb=__jt}', "");
+    Expect(0, 55292, '\P{^Is_Lb=__jt}', "");
+    Error('\p{Line_Break=_JV/a/}');
+    Error('\P{Line_Break=_JV/a/}');
     Expect(1, 55238, '\p{Line_Break=:\AJV\z:}', "");;
     Expect(0, 55239, '\p{Line_Break=:\AJV\z:}', "");;
     Expect(1, 55238, '\p{Line_Break=jv}', "");
@@ -64269,8 +64851,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55239, '\p{^Line_Break=  JV}', "");
     Expect(1, 55239, '\P{Line_Break=  JV}', "");
     Expect(0, 55239, '\P{^Line_Break=  JV}', "");
-    Error('\p{Lb=:=_-JV}');
-    Error('\P{Lb=:=_-JV}');
+    Error('\p{Lb=:=--JV}');
+    Error('\P{Lb=:=--JV}');
     Expect(1, 55238, '\p{Lb=:\AJV\z:}', "");;
     Expect(0, 55239, '\p{Lb=:\AJV\z:}', "");;
     Expect(1, 55238, '\p{Lb=jv}', "");
@@ -64283,34 +64865,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 55239, '\P{^Lb=jv}', "");
     Expect(1, 55238, '\p{Lb=:\Ajv\z:}', "");;
     Expect(0, 55239, '\p{Lb=:\Ajv\z:}', "");;
-    Expect(1, 55238, '\p{Lb=_-JV}', "");
-    Expect(0, 55238, '\p{^Lb=_-JV}', "");
-    Expect(0, 55238, '\P{Lb=_-JV}', "");
-    Expect(1, 55238, '\P{^Lb=_-JV}', "");
-    Expect(0, 55239, '\p{Lb=_-JV}', "");
-    Expect(1, 55239, '\p{^Lb=_-JV}', "");
-    Expect(1, 55239, '\P{Lb=_-JV}', "");
-    Expect(0, 55239, '\P{^Lb=_-JV}', "");
-    Error('\p{Is_Line_Break=	:=JV}');
-    Error('\P{Is_Line_Break=	:=JV}');
-    Expect(1, 55238, '\p{Is_Line_Break=jv}', "");
-    Expect(0, 55238, '\p{^Is_Line_Break=jv}', "");
-    Expect(0, 55238, '\P{Is_Line_Break=jv}', "");
-    Expect(1, 55238, '\P{^Is_Line_Break=jv}', "");
-    Expect(0, 55239, '\p{Is_Line_Break=jv}', "");
-    Expect(1, 55239, '\p{^Is_Line_Break=jv}', "");
-    Expect(1, 55239, '\P{Is_Line_Break=jv}', "");
-    Expect(0, 55239, '\P{^Is_Line_Break=jv}', "");
-    Expect(1, 55238, '\p{Is_Line_Break=- JV}', "");
-    Expect(0, 55238, '\p{^Is_Line_Break=- JV}', "");
-    Expect(0, 55238, '\P{Is_Line_Break=- JV}', "");
-    Expect(1, 55238, '\P{^Is_Line_Break=- JV}', "");
-    Expect(0, 55239, '\p{Is_Line_Break=- JV}', "");
-    Expect(1, 55239, '\p{^Is_Line_Break=- JV}', "");
-    Expect(1, 55239, '\P{Is_Line_Break=- JV}', "");
-    Expect(0, 55239, '\P{^Is_Line_Break=- JV}', "");
-    Error('\p{Is_Lb=:=JV}');
-    Error('\P{Is_Lb=:=JV}');
+    Expect(1, 55238, '\p{Lb=JV}', "");
+    Expect(0, 55238, '\p{^Lb=JV}', "");
+    Expect(0, 55238, '\P{Lb=JV}', "");
+    Expect(1, 55238, '\P{^Lb=JV}', "");
+    Expect(0, 55239, '\p{Lb=JV}', "");
+    Expect(1, 55239, '\p{^Lb=JV}', "");
+    Expect(1, 55239, '\P{Lb=JV}', "");
+    Expect(0, 55239, '\P{^Lb=JV}', "");
+    Error('\p{Is_Line_Break= :=jv}');
+    Error('\P{Is_Line_Break= :=jv}');
+    Expect(1, 55238, '\p{Is_Line_Break: jv}', "");
+    Expect(0, 55238, '\p{^Is_Line_Break: jv}', "");
+    Expect(0, 55238, '\P{Is_Line_Break: jv}', "");
+    Expect(1, 55238, '\P{^Is_Line_Break: jv}', "");
+    Expect(0, 55239, '\p{Is_Line_Break: jv}', "");
+    Expect(1, 55239, '\p{^Is_Line_Break: jv}', "");
+    Expect(1, 55239, '\P{Is_Line_Break: jv}', "");
+    Expect(0, 55239, '\P{^Is_Line_Break: jv}', "");
+    Expect(1, 55238, '\p{Is_Line_Break=	 JV}', "");
+    Expect(0, 55238, '\p{^Is_Line_Break=	 JV}', "");
+    Expect(0, 55238, '\P{Is_Line_Break=	 JV}', "");
+    Expect(1, 55238, '\P{^Is_Line_Break=	 JV}', "");
+    Expect(0, 55239, '\p{Is_Line_Break=	 JV}', "");
+    Expect(1, 55239, '\p{^Is_Line_Break=	 JV}', "");
+    Expect(1, 55239, '\P{Is_Line_Break=	 JV}', "");
+    Expect(0, 55239, '\P{^Is_Line_Break=	 JV}', "");
+    Error('\p{Is_Lb=JV:=}');
+    Error('\P{Is_Lb=JV:=}');
     Expect(1, 55238, '\p{Is_Lb=jv}', "");
     Expect(0, 55238, '\p{^Is_Lb=jv}', "");
     Expect(0, 55238, '\P{Is_Lb=jv}', "");
@@ -64319,78 +64901,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 55239, '\p{^Is_Lb=jv}', "");
     Expect(1, 55239, '\P{Is_Lb=jv}', "");
     Expect(0, 55239, '\P{^Is_Lb=jv}', "");
-    Expect(1, 55238, '\p{Is_Lb:   -jv}', "");
-    Expect(0, 55238, '\p{^Is_Lb:   -jv}', "");
-    Expect(0, 55238, '\P{Is_Lb:   -jv}', "");
-    Expect(1, 55238, '\P{^Is_Lb:   -jv}', "");
-    Expect(0, 55239, '\p{Is_Lb:   -jv}', "");
-    Expect(1, 55239, '\p{^Is_Lb:   -jv}', "");
-    Expect(1, 55239, '\P{Is_Lb:   -jv}', "");
-    Expect(0, 55239, '\P{^Is_Lb:   -jv}', "");
-    Error('\p{Line_Break= -LINE_Feed/a/}');
-    Error('\P{Line_Break= -LINE_Feed/a/}');
+    Expect(1, 55238, '\p{Is_Lb=_-JV}', "");
+    Expect(0, 55238, '\p{^Is_Lb=_-JV}', "");
+    Expect(0, 55238, '\P{Is_Lb=_-JV}', "");
+    Expect(1, 55238, '\P{^Is_Lb=_-JV}', "");
+    Expect(0, 55239, '\p{Is_Lb=_-JV}', "");
+    Expect(1, 55239, '\p{^Is_Lb=_-JV}', "");
+    Expect(1, 55239, '\P{Is_Lb=_-JV}', "");
+    Expect(0, 55239, '\P{^Is_Lb=_-JV}', "");
+    Error('\p{Line_Break=	_line_feed:=}');
+    Error('\P{Line_Break=	_line_feed:=}');
     Expect(1, 10, '\p{Line_Break=:\ALine_Feed\z:}', "");;
     Expect(0, 11, '\p{Line_Break=:\ALine_Feed\z:}', "");;
-    Expect(1, 10, '\p{Line_Break:linefeed}', "");
-    Expect(0, 10, '\p{^Line_Break:linefeed}', "");
-    Expect(0, 10, '\P{Line_Break:linefeed}', "");
-    Expect(1, 10, '\P{^Line_Break:linefeed}', "");
-    Expect(0, 11, '\p{Line_Break:linefeed}', "");
-    Expect(1, 11, '\p{^Line_Break:linefeed}', "");
-    Expect(1, 11, '\P{Line_Break:linefeed}', "");
-    Expect(0, 11, '\P{^Line_Break:linefeed}', "");
+    Expect(1, 10, '\p{Line_Break=linefeed}', "");
+    Expect(0, 10, '\p{^Line_Break=linefeed}', "");
+    Expect(0, 10, '\P{Line_Break=linefeed}', "");
+    Expect(1, 10, '\P{^Line_Break=linefeed}', "");
+    Expect(0, 11, '\p{Line_Break=linefeed}', "");
+    Expect(1, 11, '\p{^Line_Break=linefeed}', "");
+    Expect(1, 11, '\P{Line_Break=linefeed}', "");
+    Expect(0, 11, '\P{^Line_Break=linefeed}', "");
     Expect(1, 10, '\p{Line_Break=:\Alinefeed\z:}', "");;
     Expect(0, 11, '\p{Line_Break=:\Alinefeed\z:}', "");;
-    Expect(1, 10, '\p{Line_Break:	__Line_feed}', "");
-    Expect(0, 10, '\p{^Line_Break:	__Line_feed}', "");
-    Expect(0, 10, '\P{Line_Break:	__Line_feed}', "");
-    Expect(1, 10, '\P{^Line_Break:	__Line_feed}', "");
-    Expect(0, 11, '\p{Line_Break:	__Line_feed}', "");
-    Expect(1, 11, '\p{^Line_Break:	__Line_feed}', "");
-    Expect(1, 11, '\P{Line_Break:	__Line_feed}', "");
-    Expect(0, 11, '\P{^Line_Break:	__Line_feed}', "");
-    Error('\p{Lb=	:=LF}');
-    Error('\P{Lb=	:=LF}');
+    Expect(1, 10, '\p{Line_Break:	LINE_FEED}', "");
+    Expect(0, 10, '\p{^Line_Break:	LINE_FEED}', "");
+    Expect(0, 10, '\P{Line_Break:	LINE_FEED}', "");
+    Expect(1, 10, '\P{^Line_Break:	LINE_FEED}', "");
+    Expect(0, 11, '\p{Line_Break:	LINE_FEED}', "");
+    Expect(1, 11, '\p{^Line_Break:	LINE_FEED}', "");
+    Expect(1, 11, '\P{Line_Break:	LINE_FEED}', "");
+    Expect(0, 11, '\P{^Line_Break:	LINE_FEED}', "");
+    Error('\p{Lb=_:=LF}');
+    Error('\P{Lb=_:=LF}');
     Expect(1, 10, '\p{Lb=:\ALF\z:}', "");;
     Expect(0, 11, '\p{Lb=:\ALF\z:}', "");;
-    Expect(1, 10, '\p{Lb:   lf}', "");
-    Expect(0, 10, '\p{^Lb:   lf}', "");
-    Expect(0, 10, '\P{Lb:   lf}', "");
-    Expect(1, 10, '\P{^Lb:   lf}', "");
-    Expect(0, 11, '\p{Lb:   lf}', "");
-    Expect(1, 11, '\p{^Lb:   lf}', "");
-    Expect(1, 11, '\P{Lb:   lf}', "");
-    Expect(0, 11, '\P{^Lb:   lf}', "");
+    Expect(1, 10, '\p{Lb=lf}', "");
+    Expect(0, 10, '\p{^Lb=lf}', "");
+    Expect(0, 10, '\P{Lb=lf}', "");
+    Expect(1, 10, '\P{^Lb=lf}', "");
+    Expect(0, 11, '\p{Lb=lf}', "");
+    Expect(1, 11, '\p{^Lb=lf}', "");
+    Expect(1, 11, '\P{Lb=lf}', "");
+    Expect(0, 11, '\P{^Lb=lf}', "");
     Expect(1, 10, '\p{Lb=:\Alf\z:}', "");;
     Expect(0, 11, '\p{Lb=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{Lb=- LF}', "");
-    Expect(0, 10, '\p{^Lb=- LF}', "");
-    Expect(0, 10, '\P{Lb=- LF}', "");
-    Expect(1, 10, '\P{^Lb=- LF}', "");
-    Expect(0, 11, '\p{Lb=- LF}', "");
-    Expect(1, 11, '\p{^Lb=- LF}', "");
-    Expect(1, 11, '\P{Lb=- LF}', "");
-    Expect(0, 11, '\P{^Lb=- LF}', "");
-    Error('\p{Is_Line_Break=_/a/line_FEED}');
-    Error('\P{Is_Line_Break=_/a/line_FEED}');
-    Expect(1, 10, '\p{Is_Line_Break:linefeed}', "");
-    Expect(0, 10, '\p{^Is_Line_Break:linefeed}', "");
-    Expect(0, 10, '\P{Is_Line_Break:linefeed}', "");
-    Expect(1, 10, '\P{^Is_Line_Break:linefeed}', "");
-    Expect(0, 11, '\p{Is_Line_Break:linefeed}', "");
-    Expect(1, 11, '\p{^Is_Line_Break:linefeed}', "");
-    Expect(1, 11, '\P{Is_Line_Break:linefeed}', "");
-    Expect(0, 11, '\P{^Is_Line_Break:linefeed}', "");
-    Expect(1, 10, '\p{Is_Line_Break:	LINE_feed}', "");
-    Expect(0, 10, '\p{^Is_Line_Break:	LINE_feed}', "");
-    Expect(0, 10, '\P{Is_Line_Break:	LINE_feed}', "");
-    Expect(1, 10, '\P{^Is_Line_Break:	LINE_feed}', "");
-    Expect(0, 11, '\p{Is_Line_Break:	LINE_feed}', "");
-    Expect(1, 11, '\p{^Is_Line_Break:	LINE_feed}', "");
-    Expect(1, 11, '\P{Is_Line_Break:	LINE_feed}', "");
-    Expect(0, 11, '\P{^Is_Line_Break:	LINE_feed}', "");
-    Error('\p{Is_Lb=	LF:=}');
-    Error('\P{Is_Lb=	LF:=}');
+    Expect(1, 10, '\p{Lb= LF}', "");
+    Expect(0, 10, '\p{^Lb= LF}', "");
+    Expect(0, 10, '\P{Lb= LF}', "");
+    Expect(1, 10, '\P{^Lb= LF}', "");
+    Expect(0, 11, '\p{Lb= LF}', "");
+    Expect(1, 11, '\p{^Lb= LF}', "");
+    Expect(1, 11, '\P{Lb= LF}', "");
+    Expect(0, 11, '\P{^Lb= LF}', "");
+    Error('\p{Is_Line_Break= 	Line_Feed/a/}');
+    Error('\P{Is_Line_Break= 	Line_Feed/a/}');
+    Expect(1, 10, '\p{Is_Line_Break:	linefeed}', "");
+    Expect(0, 10, '\p{^Is_Line_Break:	linefeed}', "");
+    Expect(0, 10, '\P{Is_Line_Break:	linefeed}', "");
+    Expect(1, 10, '\P{^Is_Line_Break:	linefeed}', "");
+    Expect(0, 11, '\p{Is_Line_Break:	linefeed}', "");
+    Expect(1, 11, '\p{^Is_Line_Break:	linefeed}', "");
+    Expect(1, 11, '\P{Is_Line_Break:	linefeed}', "");
+    Expect(0, 11, '\P{^Is_Line_Break:	linefeed}', "");
+    Expect(1, 10, '\p{Is_Line_Break=_Line_FEED}', "");
+    Expect(0, 10, '\p{^Is_Line_Break=_Line_FEED}', "");
+    Expect(0, 10, '\P{Is_Line_Break=_Line_FEED}', "");
+    Expect(1, 10, '\P{^Is_Line_Break=_Line_FEED}', "");
+    Expect(0, 11, '\p{Is_Line_Break=_Line_FEED}', "");
+    Expect(1, 11, '\p{^Is_Line_Break=_Line_FEED}', "");
+    Expect(1, 11, '\P{Is_Line_Break=_Line_FEED}', "");
+    Expect(0, 11, '\P{^Is_Line_Break=_Line_FEED}', "");
+    Error('\p{Is_Lb=	:=LF}');
+    Error('\P{Is_Lb=	:=LF}');
     Expect(1, 10, '\p{Is_Lb=lf}', "");
     Expect(0, 10, '\p{^Is_Lb=lf}', "");
     Expect(0, 10, '\P{Is_Lb=lf}', "");
@@ -64399,16 +64981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 11, '\p{^Is_Lb=lf}', "");
     Expect(1, 11, '\P{Is_Lb=lf}', "");
     Expect(0, 11, '\P{^Is_Lb=lf}', "");
-    Expect(1, 10, '\p{Is_Lb=	-lf}', "");
-    Expect(0, 10, '\p{^Is_Lb=	-lf}', "");
-    Expect(0, 10, '\P{Is_Lb=	-lf}', "");
-    Expect(1, 10, '\P{^Is_Lb=	-lf}', "");
-    Expect(0, 11, '\p{Is_Lb=	-lf}', "");
-    Expect(1, 11, '\p{^Is_Lb=	-lf}', "");
-    Expect(1, 11, '\P{Is_Lb=	-lf}', "");
-    Expect(0, 11, '\P{^Is_Lb=	-lf}', "");
-    Error('\p{Line_Break=next_line:=}');
-    Error('\P{Line_Break=next_line:=}');
+    Expect(1, 10, '\p{Is_Lb= _LF}', "");
+    Expect(0, 10, '\p{^Is_Lb= _LF}', "");
+    Expect(0, 10, '\P{Is_Lb= _LF}', "");
+    Expect(1, 10, '\P{^Is_Lb= _LF}', "");
+    Expect(0, 11, '\p{Is_Lb= _LF}', "");
+    Expect(1, 11, '\p{^Is_Lb= _LF}', "");
+    Expect(1, 11, '\P{Is_Lb= _LF}', "");
+    Expect(0, 11, '\P{^Is_Lb= _LF}', "");
+    Error('\p{Line_Break= :=Next_Line}');
+    Error('\P{Line_Break= :=Next_Line}');
     Expect(1, 133, '\p{Line_Break=:\ANext_Line\z:}', "");;
     Expect(0, 134, '\p{Line_Break=:\ANext_Line\z:}', "");;
     Expect(1, 133, '\p{Line_Break=nextline}', "");
@@ -64421,16 +65003,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 134, '\P{^Line_Break=nextline}', "");
     Expect(1, 133, '\p{Line_Break=:\Anextline\z:}', "");;
     Expect(0, 134, '\p{Line_Break=:\Anextline\z:}', "");;
-    Expect(1, 133, '\p{Line_Break= Next_Line}', "");
-    Expect(0, 133, '\p{^Line_Break= Next_Line}', "");
-    Expect(0, 133, '\P{Line_Break= Next_Line}', "");
-    Expect(1, 133, '\P{^Line_Break= Next_Line}', "");
-    Expect(0, 134, '\p{Line_Break= Next_Line}', "");
-    Expect(1, 134, '\p{^Line_Break= Next_Line}', "");
-    Expect(1, 134, '\P{Line_Break= Next_Line}', "");
-    Expect(0, 134, '\P{^Line_Break= Next_Line}', "");
-    Error('\p{Lb=/a/	 nl}');
-    Error('\P{Lb=/a/	 nl}');
+    Expect(1, 133, '\p{Line_Break=	Next_line}', "");
+    Expect(0, 133, '\p{^Line_Break=	Next_line}', "");
+    Expect(0, 133, '\P{Line_Break=	Next_line}', "");
+    Expect(1, 133, '\P{^Line_Break=	Next_line}', "");
+    Expect(0, 134, '\p{Line_Break=	Next_line}', "");
+    Expect(1, 134, '\p{^Line_Break=	Next_line}', "");
+    Expect(1, 134, '\P{Line_Break=	Next_line}', "");
+    Expect(0, 134, '\P{^Line_Break=	Next_line}', "");
+    Error('\p{Lb= _nl:=}');
+    Error('\P{Lb= _nl:=}');
     Expect(1, 133, '\p{Lb=:\ANL\z:}', "");;
     Expect(0, 134, '\p{Lb=:\ANL\z:}', "");;
     Expect(1, 133, '\p{Lb=nl}', "");
@@ -64443,34 +65025,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 134, '\P{^Lb=nl}', "");
     Expect(1, 133, '\p{Lb=:\Anl\z:}', "");;
     Expect(0, 134, '\p{Lb=:\Anl\z:}', "");;
-    Expect(1, 133, '\p{Lb= 	NL}', "");
-    Expect(0, 133, '\p{^Lb= 	NL}', "");
-    Expect(0, 133, '\P{Lb= 	NL}', "");
-    Expect(1, 133, '\P{^Lb= 	NL}', "");
-    Expect(0, 134, '\p{Lb= 	NL}', "");
-    Expect(1, 134, '\p{^Lb= 	NL}', "");
-    Expect(1, 134, '\P{Lb= 	NL}', "");
-    Expect(0, 134, '\P{^Lb= 	NL}', "");
-    Error('\p{Is_Line_Break=:=-Next_Line}');
-    Error('\P{Is_Line_Break=:=-Next_Line}');
-    Expect(1, 133, '\p{Is_Line_Break=nextline}', "");
-    Expect(0, 133, '\p{^Is_Line_Break=nextline}', "");
-    Expect(0, 133, '\P{Is_Line_Break=nextline}', "");
-    Expect(1, 133, '\P{^Is_Line_Break=nextline}', "");
-    Expect(0, 134, '\p{Is_Line_Break=nextline}', "");
-    Expect(1, 134, '\p{^Is_Line_Break=nextline}', "");
-    Expect(1, 134, '\P{Is_Line_Break=nextline}', "");
-    Expect(0, 134, '\P{^Is_Line_Break=nextline}', "");
-    Expect(1, 133, '\p{Is_Line_Break= Next_LINE}', "");
-    Expect(0, 133, '\p{^Is_Line_Break= Next_LINE}', "");
-    Expect(0, 133, '\P{Is_Line_Break= Next_LINE}', "");
-    Expect(1, 133, '\P{^Is_Line_Break= Next_LINE}', "");
-    Expect(0, 134, '\p{Is_Line_Break= Next_LINE}', "");
-    Expect(1, 134, '\p{^Is_Line_Break= Next_LINE}', "");
-    Expect(1, 134, '\P{Is_Line_Break= Next_LINE}', "");
-    Expect(0, 134, '\P{^Is_Line_Break= Next_LINE}', "");
-    Error('\p{Is_Lb=:=_	NL}');
-    Error('\P{Is_Lb=:=_	NL}');
+    Expect(1, 133, '\p{Lb:	-nl}', "");
+    Expect(0, 133, '\p{^Lb:	-nl}', "");
+    Expect(0, 133, '\P{Lb:	-nl}', "");
+    Expect(1, 133, '\P{^Lb:	-nl}', "");
+    Expect(0, 134, '\p{Lb:	-nl}', "");
+    Expect(1, 134, '\p{^Lb:	-nl}', "");
+    Expect(1, 134, '\P{Lb:	-nl}', "");
+    Expect(0, 134, '\P{^Lb:	-nl}', "");
+    Error('\p{Is_Line_Break=_ next_Line/a/}');
+    Error('\P{Is_Line_Break=_ next_Line/a/}');
+    Expect(1, 133, '\p{Is_Line_Break:	nextline}', "");
+    Expect(0, 133, '\p{^Is_Line_Break:	nextline}', "");
+    Expect(0, 133, '\P{Is_Line_Break:	nextline}', "");
+    Expect(1, 133, '\P{^Is_Line_Break:	nextline}', "");
+    Expect(0, 134, '\p{Is_Line_Break:	nextline}', "");
+    Expect(1, 134, '\p{^Is_Line_Break:	nextline}', "");
+    Expect(1, 134, '\P{Is_Line_Break:	nextline}', "");
+    Expect(0, 134, '\P{^Is_Line_Break:	nextline}', "");
+    Expect(1, 133, '\p{Is_Line_Break=_Next_LINE}', "");
+    Expect(0, 133, '\p{^Is_Line_Break=_Next_LINE}', "");
+    Expect(0, 133, '\P{Is_Line_Break=_Next_LINE}', "");
+    Expect(1, 133, '\P{^Is_Line_Break=_Next_LINE}', "");
+    Expect(0, 134, '\p{Is_Line_Break=_Next_LINE}', "");
+    Expect(1, 134, '\p{^Is_Line_Break=_Next_LINE}', "");
+    Expect(1, 134, '\P{Is_Line_Break=_Next_LINE}', "");
+    Expect(0, 134, '\P{^Is_Line_Break=_Next_LINE}', "");
+    Error('\p{Is_Lb:			NL/a/}');
+    Error('\P{Is_Lb:			NL/a/}');
     Expect(1, 133, '\p{Is_Lb=nl}', "");
     Expect(0, 133, '\p{^Is_Lb=nl}', "");
     Expect(0, 133, '\P{Is_Lb=nl}', "");
@@ -64479,16 +65061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 134, '\p{^Is_Lb=nl}', "");
     Expect(1, 134, '\P{Is_Lb=nl}', "");
     Expect(0, 134, '\P{^Is_Lb=nl}', "");
-    Expect(1, 133, '\p{Is_Lb=	 NL}', "");
-    Expect(0, 133, '\p{^Is_Lb=	 NL}', "");
-    Expect(0, 133, '\P{Is_Lb=	 NL}', "");
-    Expect(1, 133, '\P{^Is_Lb=	 NL}', "");
-    Expect(0, 134, '\p{Is_Lb=	 NL}', "");
-    Expect(1, 134, '\p{^Is_Lb=	 NL}', "");
-    Expect(1, 134, '\P{Is_Lb=	 NL}', "");
-    Expect(0, 134, '\P{^Is_Lb=	 NL}', "");
-    Error('\p{Line_Break=	/a/Nonstarter}');
-    Error('\P{Line_Break=	/a/Nonstarter}');
+    Expect(1, 133, '\p{Is_Lb= -NL}', "");
+    Expect(0, 133, '\p{^Is_Lb= -NL}', "");
+    Expect(0, 133, '\P{Is_Lb= -NL}', "");
+    Expect(1, 133, '\P{^Is_Lb= -NL}', "");
+    Expect(0, 134, '\p{Is_Lb= -NL}', "");
+    Expect(1, 134, '\p{^Is_Lb= -NL}', "");
+    Expect(1, 134, '\P{Is_Lb= -NL}', "");
+    Expect(0, 134, '\P{^Is_Lb= -NL}', "");
+    Error('\p{Line_Break=:=_ NONSTARTER}');
+    Error('\P{Line_Break=:=_ NONSTARTER}');
     Expect(1, 128635, '\p{Line_Break=:\ANonstarter\z:}', "");;
     Expect(0, 128636, '\p{Line_Break=:\ANonstarter\z:}', "");;
     Expect(1, 128635, '\p{Line_Break=nonstarter}', "");
@@ -64501,16 +65083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 128636, '\P{^Line_Break=nonstarter}', "");
     Expect(1, 128635, '\p{Line_Break=:\Anonstarter\z:}', "");;
     Expect(0, 128636, '\p{Line_Break=:\Anonstarter\z:}', "");;
-    Expect(1, 128635, '\p{Line_Break=_ NONSTARTER}', "");
-    Expect(0, 128635, '\p{^Line_Break=_ NONSTARTER}', "");
-    Expect(0, 128635, '\P{Line_Break=_ NONSTARTER}', "");
-    Expect(1, 128635, '\P{^Line_Break=_ NONSTARTER}', "");
-    Expect(0, 128636, '\p{Line_Break=_ NONSTARTER}', "");
-    Expect(1, 128636, '\p{^Line_Break=_ NONSTARTER}', "");
-    Expect(1, 128636, '\P{Line_Break=_ NONSTARTER}', "");
-    Expect(0, 128636, '\P{^Line_Break=_ NONSTARTER}', "");
-    Error('\p{Lb=  NS:=}');
-    Error('\P{Lb=  NS:=}');
+    Expect(1, 128635, '\p{Line_Break=  NONSTARTER}', "");
+    Expect(0, 128635, '\p{^Line_Break=  NONSTARTER}', "");
+    Expect(0, 128635, '\P{Line_Break=  NONSTARTER}', "");
+    Expect(1, 128635, '\P{^Line_Break=  NONSTARTER}', "");
+    Expect(0, 128636, '\p{Line_Break=  NONSTARTER}', "");
+    Expect(1, 128636, '\p{^Line_Break=  NONSTARTER}', "");
+    Expect(1, 128636, '\P{Line_Break=  NONSTARTER}', "");
+    Expect(0, 128636, '\P{^Line_Break=  NONSTARTER}', "");
+    Error('\p{Lb=/a/_	NS}');
+    Error('\P{Lb=/a/_	NS}');
     Expect(1, 128635, '\p{Lb=:\ANS\z:}', "");;
     Expect(0, 128636, '\p{Lb=:\ANS\z:}', "");;
     Expect(1, 128635, '\p{Lb=ns}', "");
@@ -64523,16 +65105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 128636, '\P{^Lb=ns}', "");
     Expect(1, 128635, '\p{Lb=:\Ans\z:}', "");;
     Expect(0, 128636, '\p{Lb=:\Ans\z:}', "");;
-    Expect(1, 128635, '\p{Lb=NS}', "");
-    Expect(0, 128635, '\p{^Lb=NS}', "");
-    Expect(0, 128635, '\P{Lb=NS}', "");
-    Expect(1, 128635, '\P{^Lb=NS}', "");
-    Expect(0, 128636, '\p{Lb=NS}', "");
-    Expect(1, 128636, '\p{^Lb=NS}', "");
-    Expect(1, 128636, '\P{Lb=NS}', "");
-    Expect(0, 128636, '\P{^Lb=NS}', "");
-    Error('\p{Is_Line_Break=	 nonstarter/a/}');
-    Error('\P{Is_Line_Break=	 nonstarter/a/}');
+    Expect(1, 128635, '\p{Lb=	NS}', "");
+    Expect(0, 128635, '\p{^Lb=	NS}', "");
+    Expect(0, 128635, '\P{Lb=	NS}', "");
+    Expect(1, 128635, '\P{^Lb=	NS}', "");
+    Expect(0, 128636, '\p{Lb=	NS}', "");
+    Expect(1, 128636, '\p{^Lb=	NS}', "");
+    Expect(1, 128636, '\P{Lb=	NS}', "");
+    Expect(0, 128636, '\P{^Lb=	NS}', "");
+    Error('\p{Is_Line_Break=:=-_Nonstarter}');
+    Error('\P{Is_Line_Break=:=-_Nonstarter}');
     Expect(1, 128635, '\p{Is_Line_Break=nonstarter}', "");
     Expect(0, 128635, '\p{^Is_Line_Break=nonstarter}', "");
     Expect(0, 128635, '\P{Is_Line_Break=nonstarter}', "");
@@ -64541,16 +65123,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128636, '\p{^Is_Line_Break=nonstarter}', "");
     Expect(1, 128636, '\P{Is_Line_Break=nonstarter}', "");
     Expect(0, 128636, '\P{^Is_Line_Break=nonstarter}', "");
-    Expect(1, 128635, '\p{Is_Line_Break=-_NONSTARTER}', "");
-    Expect(0, 128635, '\p{^Is_Line_Break=-_NONSTARTER}', "");
-    Expect(0, 128635, '\P{Is_Line_Break=-_NONSTARTER}', "");
-    Expect(1, 128635, '\P{^Is_Line_Break=-_NONSTARTER}', "");
-    Expect(0, 128636, '\p{Is_Line_Break=-_NONSTARTER}', "");
-    Expect(1, 128636, '\p{^Is_Line_Break=-_NONSTARTER}', "");
-    Expect(1, 128636, '\P{Is_Line_Break=-_NONSTARTER}', "");
-    Expect(0, 128636, '\P{^Is_Line_Break=-_NONSTARTER}', "");
-    Error('\p{Is_Lb=-/a/NS}');
-    Error('\P{Is_Lb=-/a/NS}');
+    Expect(1, 128635, '\p{Is_Line_Break= _NONSTARTER}', "");
+    Expect(0, 128635, '\p{^Is_Line_Break= _NONSTARTER}', "");
+    Expect(0, 128635, '\P{Is_Line_Break= _NONSTARTER}', "");
+    Expect(1, 128635, '\P{^Is_Line_Break= _NONSTARTER}', "");
+    Expect(0, 128636, '\p{Is_Line_Break= _NONSTARTER}', "");
+    Expect(1, 128636, '\p{^Is_Line_Break= _NONSTARTER}', "");
+    Expect(1, 128636, '\P{Is_Line_Break= _NONSTARTER}', "");
+    Expect(0, 128636, '\P{^Is_Line_Break= _NONSTARTER}', "");
+    Error('\p{Is_Lb=/a/- NS}');
+    Error('\P{Is_Lb=/a/- NS}');
     Expect(1, 128635, '\p{Is_Lb=ns}', "");
     Expect(0, 128635, '\p{^Is_Lb=ns}', "");
     Expect(0, 128635, '\P{Is_Lb=ns}', "");
@@ -64559,16 +65141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128636, '\p{^Is_Lb=ns}', "");
     Expect(1, 128636, '\P{Is_Lb=ns}', "");
     Expect(0, 128636, '\P{^Is_Lb=ns}', "");
-    Expect(1, 128635, '\p{Is_Lb=-NS}', "");
-    Expect(0, 128635, '\p{^Is_Lb=-NS}', "");
-    Expect(0, 128635, '\P{Is_Lb=-NS}', "");
-    Expect(1, 128635, '\P{^Is_Lb=-NS}', "");
-    Expect(0, 128636, '\p{Is_Lb=-NS}', "");
-    Expect(1, 128636, '\p{^Is_Lb=-NS}', "");
-    Expect(1, 128636, '\P{Is_Lb=-NS}', "");
-    Expect(0, 128636, '\P{^Is_Lb=-NS}', "");
-    Error('\p{Line_Break:	Numeric:=}');
-    Error('\P{Line_Break:	Numeric:=}');
+    Expect(1, 128635, '\p{Is_Lb=_ ns}', "");
+    Expect(0, 128635, '\p{^Is_Lb=_ ns}', "");
+    Expect(0, 128635, '\P{Is_Lb=_ ns}', "");
+    Expect(1, 128635, '\P{^Is_Lb=_ ns}', "");
+    Expect(0, 128636, '\p{Is_Lb=_ ns}', "");
+    Expect(1, 128636, '\p{^Is_Lb=_ ns}', "");
+    Expect(1, 128636, '\P{Is_Lb=_ ns}', "");
+    Expect(0, 128636, '\P{^Is_Lb=_ ns}', "");
+    Error('\p{Line_Break:   /a/	numeric}');
+    Error('\P{Line_Break:   /a/	numeric}');
     Expect(1, 130041, '\p{Line_Break=:\ANumeric\z:}', "");;
     Expect(0, 130042, '\p{Line_Break=:\ANumeric\z:}', "");;
     Expect(1, 130041, '\p{Line_Break=numeric}', "");
@@ -64581,56 +65163,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^Line_Break=numeric}', "");
     Expect(1, 130041, '\p{Line_Break=:\Anumeric\z:}', "");;
     Expect(0, 130042, '\p{Line_Break=:\Anumeric\z:}', "");;
-    Expect(1, 130041, '\p{Line_Break= -NUMERIC}', "");
-    Expect(0, 130041, '\p{^Line_Break= -NUMERIC}', "");
-    Expect(0, 130041, '\P{Line_Break= -NUMERIC}', "");
-    Expect(1, 130041, '\P{^Line_Break= -NUMERIC}', "");
-    Expect(0, 130042, '\p{Line_Break= -NUMERIC}', "");
-    Expect(1, 130042, '\p{^Line_Break= -NUMERIC}', "");
-    Expect(1, 130042, '\P{Line_Break= -NUMERIC}', "");
-    Expect(0, 130042, '\P{^Line_Break= -NUMERIC}', "");
-    Error('\p{Lb=/a/NU}');
-    Error('\P{Lb=/a/NU}');
+    Expect(1, 130041, '\p{Line_Break=Numeric}', "");
+    Expect(0, 130041, '\p{^Line_Break=Numeric}', "");
+    Expect(0, 130041, '\P{Line_Break=Numeric}', "");
+    Expect(1, 130041, '\P{^Line_Break=Numeric}', "");
+    Expect(0, 130042, '\p{Line_Break=Numeric}', "");
+    Expect(1, 130042, '\p{^Line_Break=Numeric}', "");
+    Expect(1, 130042, '\P{Line_Break=Numeric}', "");
+    Expect(0, 130042, '\P{^Line_Break=Numeric}', "");
+    Error('\p{Lb:	:=nu}');
+    Error('\P{Lb:	:=nu}');
     Expect(1, 130041, '\p{Lb=:\ANU\z:}', "");;
     Expect(0, 130042, '\p{Lb=:\ANU\z:}', "");;
-    Expect(1, 130041, '\p{Lb=nu}', "");
-    Expect(0, 130041, '\p{^Lb=nu}', "");
-    Expect(0, 130041, '\P{Lb=nu}', "");
-    Expect(1, 130041, '\P{^Lb=nu}', "");
-    Expect(0, 130042, '\p{Lb=nu}', "");
-    Expect(1, 130042, '\p{^Lb=nu}', "");
-    Expect(1, 130042, '\P{Lb=nu}', "");
-    Expect(0, 130042, '\P{^Lb=nu}', "");
+    Expect(1, 130041, '\p{Lb:nu}', "");
+    Expect(0, 130041, '\p{^Lb:nu}', "");
+    Expect(0, 130041, '\P{Lb:nu}', "");
+    Expect(1, 130041, '\P{^Lb:nu}', "");
+    Expect(0, 130042, '\p{Lb:nu}', "");
+    Expect(1, 130042, '\p{^Lb:nu}', "");
+    Expect(1, 130042, '\P{Lb:nu}', "");
+    Expect(0, 130042, '\P{^Lb:nu}', "");
     Expect(1, 130041, '\p{Lb=:\Anu\z:}', "");;
     Expect(0, 130042, '\p{Lb=:\Anu\z:}', "");;
-    Expect(1, 130041, '\p{Lb: -	NU}', "");
-    Expect(0, 130041, '\p{^Lb: -	NU}', "");
-    Expect(0, 130041, '\P{Lb: -	NU}', "");
-    Expect(1, 130041, '\P{^Lb: -	NU}', "");
-    Expect(0, 130042, '\p{Lb: -	NU}', "");
-    Expect(1, 130042, '\p{^Lb: -	NU}', "");
-    Expect(1, 130042, '\P{Lb: -	NU}', "");
-    Expect(0, 130042, '\P{^Lb: -	NU}', "");
-    Error('\p{Is_Line_Break=	/a/numeric}');
-    Error('\P{Is_Line_Break=	/a/numeric}');
-    Expect(1, 130041, '\p{Is_Line_Break=numeric}', "");
-    Expect(0, 130041, '\p{^Is_Line_Break=numeric}', "");
-    Expect(0, 130041, '\P{Is_Line_Break=numeric}', "");
-    Expect(1, 130041, '\P{^Is_Line_Break=numeric}', "");
-    Expect(0, 130042, '\p{Is_Line_Break=numeric}', "");
-    Expect(1, 130042, '\p{^Is_Line_Break=numeric}', "");
-    Expect(1, 130042, '\P{Is_Line_Break=numeric}', "");
-    Expect(0, 130042, '\P{^Is_Line_Break=numeric}', "");
-    Expect(1, 130041, '\p{Is_Line_Break=__numeric}', "");
-    Expect(0, 130041, '\p{^Is_Line_Break=__numeric}', "");
-    Expect(0, 130041, '\P{Is_Line_Break=__numeric}', "");
-    Expect(1, 130041, '\P{^Is_Line_Break=__numeric}', "");
-    Expect(0, 130042, '\p{Is_Line_Break=__numeric}', "");
-    Expect(1, 130042, '\p{^Is_Line_Break=__numeric}', "");
-    Expect(1, 130042, '\P{Is_Line_Break=__numeric}', "");
-    Expect(0, 130042, '\P{^Is_Line_Break=__numeric}', "");
-    Error('\p{Is_Lb= 	NU:=}');
-    Error('\P{Is_Lb= 	NU:=}');
+    Expect(1, 130041, '\p{Lb=-NU}', "");
+    Expect(0, 130041, '\p{^Lb=-NU}', "");
+    Expect(0, 130041, '\P{Lb=-NU}', "");
+    Expect(1, 130041, '\P{^Lb=-NU}', "");
+    Expect(0, 130042, '\p{Lb=-NU}', "");
+    Expect(1, 130042, '\p{^Lb=-NU}', "");
+    Expect(1, 130042, '\P{Lb=-NU}', "");
+    Expect(0, 130042, '\P{^Lb=-NU}', "");
+    Error('\p{Is_Line_Break= NUMERIC:=}');
+    Error('\P{Is_Line_Break= NUMERIC:=}');
+    Expect(1, 130041, '\p{Is_Line_Break:   numeric}', "");
+    Expect(0, 130041, '\p{^Is_Line_Break:   numeric}', "");
+    Expect(0, 130041, '\P{Is_Line_Break:   numeric}', "");
+    Expect(1, 130041, '\P{^Is_Line_Break:   numeric}', "");
+    Expect(0, 130042, '\p{Is_Line_Break:   numeric}', "");
+    Expect(1, 130042, '\p{^Is_Line_Break:   numeric}', "");
+    Expect(1, 130042, '\P{Is_Line_Break:   numeric}', "");
+    Expect(0, 130042, '\P{^Is_Line_Break:   numeric}', "");
+    Expect(1, 130041, '\p{Is_Line_Break=--Numeric}', "");
+    Expect(0, 130041, '\p{^Is_Line_Break=--Numeric}', "");
+    Expect(0, 130041, '\P{Is_Line_Break=--Numeric}', "");
+    Expect(1, 130041, '\P{^Is_Line_Break=--Numeric}', "");
+    Expect(0, 130042, '\p{Is_Line_Break=--Numeric}', "");
+    Expect(1, 130042, '\p{^Is_Line_Break=--Numeric}', "");
+    Expect(1, 130042, '\P{Is_Line_Break=--Numeric}', "");
+    Expect(0, 130042, '\P{^Is_Line_Break=--Numeric}', "");
+    Error('\p{Is_Lb=_/a/NU}');
+    Error('\P{Is_Lb=_/a/NU}');
     Expect(1, 130041, '\p{Is_Lb=nu}', "");
     Expect(0, 130041, '\p{^Is_Lb=nu}', "");
     Expect(0, 130041, '\P{Is_Lb=nu}', "");
@@ -64639,16 +65221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_Lb=nu}', "");
     Expect(1, 130042, '\P{Is_Lb=nu}', "");
     Expect(0, 130042, '\P{^Is_Lb=nu}', "");
-    Expect(1, 130041, '\p{Is_Lb=-	NU}', "");
-    Expect(0, 130041, '\p{^Is_Lb=-	NU}', "");
-    Expect(0, 130041, '\P{Is_Lb=-	NU}', "");
-    Expect(1, 130041, '\P{^Is_Lb=-	NU}', "");
-    Expect(0, 130042, '\p{Is_Lb=-	NU}', "");
-    Expect(1, 130042, '\p{^Is_Lb=-	NU}', "");
-    Expect(1, 130042, '\P{Is_Lb=-	NU}', "");
-    Expect(0, 130042, '\P{^Is_Lb=-	NU}', "");
-    Error('\p{Line_Break=-_open_PUNCTUATION/a/}');
-    Error('\P{Line_Break=-_open_PUNCTUATION/a/}');
+    Expect(1, 130041, '\p{Is_Lb=	nu}', "");
+    Expect(0, 130041, '\p{^Is_Lb=	nu}', "");
+    Expect(0, 130041, '\P{Is_Lb=	nu}', "");
+    Expect(1, 130041, '\P{^Is_Lb=	nu}', "");
+    Expect(0, 130042, '\p{Is_Lb=	nu}', "");
+    Expect(1, 130042, '\p{^Is_Lb=	nu}', "");
+    Expect(1, 130042, '\P{Is_Lb=	nu}', "");
+    Expect(0, 130042, '\P{^Is_Lb=	nu}', "");
+    Error('\p{Line_Break=/a/  Open_PUNCTUATION}');
+    Error('\P{Line_Break=/a/  Open_PUNCTUATION}');
     Expect(1, 125279, '\p{Line_Break=:\AOpen_Punctuation\z:}', "");;
     Expect(0, 125280, '\p{Line_Break=:\AOpen_Punctuation\z:}', "");;
     Expect(1, 125279, '\p{Line_Break=openpunctuation}', "");
@@ -64661,38 +65243,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125280, '\P{^Line_Break=openpunctuation}', "");
     Expect(1, 125279, '\p{Line_Break=:\Aopenpunctuation\z:}', "");;
     Expect(0, 125280, '\p{Line_Break=:\Aopenpunctuation\z:}', "");;
-    Expect(1, 125279, '\p{Line_Break=-	OPEN_Punctuation}', "");
-    Expect(0, 125279, '\p{^Line_Break=-	OPEN_Punctuation}', "");
-    Expect(0, 125279, '\P{Line_Break=-	OPEN_Punctuation}', "");
-    Expect(1, 125279, '\P{^Line_Break=-	OPEN_Punctuation}', "");
-    Expect(0, 125280, '\p{Line_Break=-	OPEN_Punctuation}', "");
-    Expect(1, 125280, '\p{^Line_Break=-	OPEN_Punctuation}', "");
-    Expect(1, 125280, '\P{Line_Break=-	OPEN_Punctuation}', "");
-    Expect(0, 125280, '\P{^Line_Break=-	OPEN_Punctuation}', "");
-    Error('\p{Lb=/a/OP}');
-    Error('\P{Lb=/a/OP}');
+    Expect(1, 125279, '\p{Line_Break=_-Open_punctuation}', "");
+    Expect(0, 125279, '\p{^Line_Break=_-Open_punctuation}', "");
+    Expect(0, 125279, '\P{Line_Break=_-Open_punctuation}', "");
+    Expect(1, 125279, '\P{^Line_Break=_-Open_punctuation}', "");
+    Expect(0, 125280, '\p{Line_Break=_-Open_punctuation}', "");
+    Expect(1, 125280, '\p{^Line_Break=_-Open_punctuation}', "");
+    Expect(1, 125280, '\P{Line_Break=_-Open_punctuation}', "");
+    Expect(0, 125280, '\P{^Line_Break=_-Open_punctuation}', "");
+    Error('\p{Lb= /a/op}');
+    Error('\P{Lb= /a/op}');
     Expect(1, 125279, '\p{Lb=:\AOP\z:}', "");;
     Expect(0, 125280, '\p{Lb=:\AOP\z:}', "");;
-    Expect(1, 125279, '\p{Lb:	op}', "");
-    Expect(0, 125279, '\p{^Lb:	op}', "");
-    Expect(0, 125279, '\P{Lb:	op}', "");
-    Expect(1, 125279, '\P{^Lb:	op}', "");
-    Expect(0, 125280, '\p{Lb:	op}', "");
-    Expect(1, 125280, '\p{^Lb:	op}', "");
-    Expect(1, 125280, '\P{Lb:	op}', "");
-    Expect(0, 125280, '\P{^Lb:	op}', "");
+    Expect(1, 125279, '\p{Lb: op}', "");
+    Expect(0, 125279, '\p{^Lb: op}', "");
+    Expect(0, 125279, '\P{Lb: op}', "");
+    Expect(1, 125279, '\P{^Lb: op}', "");
+    Expect(0, 125280, '\p{Lb: op}', "");
+    Expect(1, 125280, '\p{^Lb: op}', "");
+    Expect(1, 125280, '\P{Lb: op}', "");
+    Expect(0, 125280, '\P{^Lb: op}', "");
     Expect(1, 125279, '\p{Lb=:\Aop\z:}', "");;
     Expect(0, 125280, '\p{Lb=:\Aop\z:}', "");;
-    Expect(1, 125279, '\p{Lb=--OP}', "");
-    Expect(0, 125279, '\p{^Lb=--OP}', "");
-    Expect(0, 125279, '\P{Lb=--OP}', "");
-    Expect(1, 125279, '\P{^Lb=--OP}', "");
-    Expect(0, 125280, '\p{Lb=--OP}', "");
-    Expect(1, 125280, '\p{^Lb=--OP}', "");
-    Expect(1, 125280, '\P{Lb=--OP}', "");
-    Expect(0, 125280, '\P{^Lb=--OP}', "");
-    Error('\p{Is_Line_Break=_:=OPEN_punctuation}');
-    Error('\P{Is_Line_Break=_:=OPEN_punctuation}');
+    Expect(1, 125279, '\p{Lb=_op}', "");
+    Expect(0, 125279, '\p{^Lb=_op}', "");
+    Expect(0, 125279, '\P{Lb=_op}', "");
+    Expect(1, 125279, '\P{^Lb=_op}', "");
+    Expect(0, 125280, '\p{Lb=_op}', "");
+    Expect(1, 125280, '\p{^Lb=_op}', "");
+    Expect(1, 125280, '\P{Lb=_op}', "");
+    Expect(0, 125280, '\P{^Lb=_op}', "");
+    Error('\p{Is_Line_Break= 	Open_Punctuation:=}');
+    Error('\P{Is_Line_Break= 	Open_Punctuation:=}');
     Expect(1, 125279, '\p{Is_Line_Break=openpunctuation}', "");
     Expect(0, 125279, '\p{^Is_Line_Break=openpunctuation}', "");
     Expect(0, 125279, '\P{Is_Line_Break=openpunctuation}', "");
@@ -64701,34 +65283,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125280, '\p{^Is_Line_Break=openpunctuation}', "");
     Expect(1, 125280, '\P{Is_Line_Break=openpunctuation}', "");
     Expect(0, 125280, '\P{^Is_Line_Break=openpunctuation}', "");
-    Expect(1, 125279, '\p{Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(0, 125279, '\p{^Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(0, 125279, '\P{Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(1, 125279, '\P{^Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(0, 125280, '\p{Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(1, 125280, '\p{^Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(1, 125280, '\P{Is_Line_Break=_open_PUNCTUATION}', "");
-    Expect(0, 125280, '\P{^Is_Line_Break=_open_PUNCTUATION}', "");
-    Error('\p{Is_Lb=/a/-OP}');
-    Error('\P{Is_Lb=/a/-OP}');
-    Expect(1, 125279, '\p{Is_Lb:	op}', "");
-    Expect(0, 125279, '\p{^Is_Lb:	op}', "");
-    Expect(0, 125279, '\P{Is_Lb:	op}', "");
-    Expect(1, 125279, '\P{^Is_Lb:	op}', "");
-    Expect(0, 125280, '\p{Is_Lb:	op}', "");
-    Expect(1, 125280, '\p{^Is_Lb:	op}', "");
-    Expect(1, 125280, '\P{Is_Lb:	op}', "");
-    Expect(0, 125280, '\P{^Is_Lb:	op}', "");
-    Expect(1, 125279, '\p{Is_Lb=-	op}', "");
-    Expect(0, 125279, '\p{^Is_Lb=-	op}', "");
-    Expect(0, 125279, '\P{Is_Lb=-	op}', "");
-    Expect(1, 125279, '\P{^Is_Lb=-	op}', "");
-    Expect(0, 125280, '\p{Is_Lb=-	op}', "");
-    Expect(1, 125280, '\p{^Is_Lb=-	op}', "");
-    Expect(1, 125280, '\P{Is_Lb=-	op}', "");
-    Expect(0, 125280, '\P{^Is_Lb=-	op}', "");
-    Error('\p{Line_Break=:=	 Postfix_Numeric}');
-    Error('\P{Line_Break=:=	 Postfix_Numeric}');
+    Expect(1, 125279, '\p{Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(0, 125279, '\p{^Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(0, 125279, '\P{Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(1, 125279, '\P{^Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(0, 125280, '\p{Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(1, 125280, '\p{^Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(1, 125280, '\P{Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Expect(0, 125280, '\P{^Is_Line_Break=_-Open_PUNCTUATION}', "");
+    Error('\p{Is_Lb=-:=op}');
+    Error('\P{Is_Lb=-:=op}');
+    Expect(1, 125279, '\p{Is_Lb:op}', "");
+    Expect(0, 125279, '\p{^Is_Lb:op}', "");
+    Expect(0, 125279, '\P{Is_Lb:op}', "");
+    Expect(1, 125279, '\P{^Is_Lb:op}', "");
+    Expect(0, 125280, '\p{Is_Lb:op}', "");
+    Expect(1, 125280, '\p{^Is_Lb:op}', "");
+    Expect(1, 125280, '\P{Is_Lb:op}', "");
+    Expect(0, 125280, '\P{^Is_Lb:op}', "");
+    Expect(1, 125279, '\p{Is_Lb=__OP}', "");
+    Expect(0, 125279, '\p{^Is_Lb=__OP}', "");
+    Expect(0, 125279, '\P{Is_Lb=__OP}', "");
+    Expect(1, 125279, '\P{^Is_Lb=__OP}', "");
+    Expect(0, 125280, '\p{Is_Lb=__OP}', "");
+    Expect(1, 125280, '\p{^Is_Lb=__OP}', "");
+    Expect(1, 125280, '\P{Is_Lb=__OP}', "");
+    Expect(0, 125280, '\P{^Is_Lb=__OP}', "");
+    Error('\p{Line_Break=_	postfix_numeric:=}');
+    Error('\P{Line_Break=_	postfix_numeric:=}');
     Expect(1, 126128, '\p{Line_Break=:\APostfix_Numeric\z:}', "");;
     Expect(0, 126129, '\p{Line_Break=:\APostfix_Numeric\z:}', "");;
     Expect(1, 126128, '\p{Line_Break=postfixnumeric}', "");
@@ -64741,16 +65323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126129, '\P{^Line_Break=postfixnumeric}', "");
     Expect(1, 126128, '\p{Line_Break=:\Apostfixnumeric\z:}', "");;
     Expect(0, 126129, '\p{Line_Break=:\Apostfixnumeric\z:}', "");;
-    Expect(1, 126128, '\p{Line_Break=	Postfix_numeric}', "");
-    Expect(0, 126128, '\p{^Line_Break=	Postfix_numeric}', "");
-    Expect(0, 126128, '\P{Line_Break=	Postfix_numeric}', "");
-    Expect(1, 126128, '\P{^Line_Break=	Postfix_numeric}', "");
-    Expect(0, 126129, '\p{Line_Break=	Postfix_numeric}', "");
-    Expect(1, 126129, '\p{^Line_Break=	Postfix_numeric}', "");
-    Expect(1, 126129, '\P{Line_Break=	Postfix_numeric}', "");
-    Expect(0, 126129, '\P{^Line_Break=	Postfix_numeric}', "");
-    Error('\p{Lb=_:=po}');
-    Error('\P{Lb=_:=po}');
+    Expect(1, 126128, '\p{Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(0, 126128, '\p{^Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(0, 126128, '\P{Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(1, 126128, '\P{^Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(0, 126129, '\p{Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(1, 126129, '\p{^Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(1, 126129, '\P{Line_Break=_ POSTFIX_Numeric}', "");
+    Expect(0, 126129, '\P{^Line_Break=_ POSTFIX_Numeric}', "");
+    Error('\p{Lb=_	po:=}');
+    Error('\P{Lb=_	po:=}');
     Expect(1, 126128, '\p{Lb=:\APO\z:}', "");;
     Expect(0, 126129, '\p{Lb=:\APO\z:}', "");;
     Expect(1, 126128, '\p{Lb=po}', "");
@@ -64763,16 +65345,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126129, '\P{^Lb=po}', "");
     Expect(1, 126128, '\p{Lb=:\Apo\z:}', "");;
     Expect(0, 126129, '\p{Lb=:\Apo\z:}', "");;
-    Expect(1, 126128, '\p{Lb:	-	PO}', "");
-    Expect(0, 126128, '\p{^Lb:	-	PO}', "");
-    Expect(0, 126128, '\P{Lb:	-	PO}', "");
-    Expect(1, 126128, '\P{^Lb:	-	PO}', "");
-    Expect(0, 126129, '\p{Lb:	-	PO}', "");
-    Expect(1, 126129, '\p{^Lb:	-	PO}', "");
-    Expect(1, 126129, '\P{Lb:	-	PO}', "");
-    Expect(0, 126129, '\P{^Lb:	-	PO}', "");
-    Error('\p{Is_Line_Break:   /a/-_postfix_NUMERIC}');
-    Error('\P{Is_Line_Break:   /a/-_postfix_NUMERIC}');
+    Expect(1, 126128, '\p{Lb=-_PO}', "");
+    Expect(0, 126128, '\p{^Lb=-_PO}', "");
+    Expect(0, 126128, '\P{Lb=-_PO}', "");
+    Expect(1, 126128, '\P{^Lb=-_PO}', "");
+    Expect(0, 126129, '\p{Lb=-_PO}', "");
+    Expect(1, 126129, '\p{^Lb=-_PO}', "");
+    Expect(1, 126129, '\P{Lb=-_PO}', "");
+    Expect(0, 126129, '\P{^Lb=-_PO}', "");
+    Error('\p{Is_Line_Break= _Postfix_Numeric:=}');
+    Error('\P{Is_Line_Break= _Postfix_Numeric:=}');
     Expect(1, 126128, '\p{Is_Line_Break=postfixnumeric}', "");
     Expect(0, 126128, '\p{^Is_Line_Break=postfixnumeric}', "");
     Expect(0, 126128, '\P{Is_Line_Break=postfixnumeric}', "");
@@ -64781,16 +65363,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126129, '\p{^Is_Line_Break=postfixnumeric}', "");
     Expect(1, 126129, '\P{Is_Line_Break=postfixnumeric}', "");
     Expect(0, 126129, '\P{^Is_Line_Break=postfixnumeric}', "");
-    Expect(1, 126128, '\p{Is_Line_Break= -Postfix_numeric}', "");
-    Expect(0, 126128, '\p{^Is_Line_Break= -Postfix_numeric}', "");
-    Expect(0, 126128, '\P{Is_Line_Break= -Postfix_numeric}', "");
-    Expect(1, 126128, '\P{^Is_Line_Break= -Postfix_numeric}', "");
-    Expect(0, 126129, '\p{Is_Line_Break= -Postfix_numeric}', "");
-    Expect(1, 126129, '\p{^Is_Line_Break= -Postfix_numeric}', "");
-    Expect(1, 126129, '\P{Is_Line_Break= -Postfix_numeric}', "");
-    Expect(0, 126129, '\P{^Is_Line_Break= -Postfix_numeric}', "");
-    Error('\p{Is_Lb=_/a/po}');
-    Error('\P{Is_Lb=_/a/po}');
+    Expect(1, 126128, '\p{Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(0, 126128, '\p{^Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(0, 126128, '\P{Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(1, 126128, '\P{^Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(0, 126129, '\p{Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(1, 126129, '\p{^Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(1, 126129, '\P{Is_Line_Break=_-Postfix_Numeric}', "");
+    Expect(0, 126129, '\P{^Is_Line_Break=_-Postfix_Numeric}', "");
+    Error('\p{Is_Lb:_:=po}');
+    Error('\P{Is_Lb:_:=po}');
     Expect(1, 126128, '\p{Is_Lb=po}', "");
     Expect(0, 126128, '\p{^Is_Lb=po}', "");
     Expect(0, 126128, '\P{Is_Lb=po}', "");
@@ -64799,16 +65381,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126129, '\p{^Is_Lb=po}', "");
     Expect(1, 126129, '\P{Is_Lb=po}', "");
     Expect(0, 126129, '\P{^Is_Lb=po}', "");
-    Expect(1, 126128, '\p{Is_Lb=	_PO}', "");
-    Expect(0, 126128, '\p{^Is_Lb=	_PO}', "");
-    Expect(0, 126128, '\P{Is_Lb=	_PO}', "");
-    Expect(1, 126128, '\P{^Is_Lb=	_PO}', "");
-    Expect(0, 126129, '\p{Is_Lb=	_PO}', "");
-    Expect(1, 126129, '\p{^Is_Lb=	_PO}', "");
-    Expect(1, 126129, '\P{Is_Lb=	_PO}', "");
-    Expect(0, 126129, '\P{^Is_Lb=	_PO}', "");
-    Error('\p{Line_Break=-:=Prefix_numeric}');
-    Error('\P{Line_Break=-:=Prefix_numeric}');
+    Expect(1, 126128, '\p{Is_Lb:_ PO}', "");
+    Expect(0, 126128, '\p{^Is_Lb:_ PO}', "");
+    Expect(0, 126128, '\P{Is_Lb:_ PO}', "");
+    Expect(1, 126128, '\P{^Is_Lb:_ PO}', "");
+    Expect(0, 126129, '\p{Is_Lb:_ PO}', "");
+    Expect(1, 126129, '\p{^Is_Lb:_ PO}', "");
+    Expect(1, 126129, '\P{Is_Lb:_ PO}', "");
+    Expect(0, 126129, '\P{^Is_Lb:_ PO}', "");
+    Error('\p{Line_Break=/a/Prefix_Numeric}');
+    Error('\P{Line_Break=/a/Prefix_Numeric}');
     Expect(1, 123647, '\p{Line_Break=:\APrefix_Numeric\z:}', "");;
     Expect(0, 123648, '\p{Line_Break=:\APrefix_Numeric\z:}', "");;
     Expect(1, 123647, '\p{Line_Break=prefixnumeric}', "");
@@ -64821,16 +65403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 123648, '\P{^Line_Break=prefixnumeric}', "");
     Expect(1, 123647, '\p{Line_Break=:\Aprefixnumeric\z:}', "");;
     Expect(0, 123648, '\p{Line_Break=:\Aprefixnumeric\z:}', "");;
-    Expect(1, 123647, '\p{Line_Break= PREFIX_Numeric}', "");
-    Expect(0, 123647, '\p{^Line_Break= PREFIX_Numeric}', "");
-    Expect(0, 123647, '\P{Line_Break= PREFIX_Numeric}', "");
-    Expect(1, 123647, '\P{^Line_Break= PREFIX_Numeric}', "");
-    Expect(0, 123648, '\p{Line_Break= PREFIX_Numeric}', "");
-    Expect(1, 123648, '\p{^Line_Break= PREFIX_Numeric}', "");
-    Expect(1, 123648, '\P{Line_Break= PREFIX_Numeric}', "");
-    Expect(0, 123648, '\P{^Line_Break= PREFIX_Numeric}', "");
-    Error('\p{Lb=	 pr/a/}');
-    Error('\P{Lb=	 pr/a/}');
+    Expect(1, 123647, '\p{Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(0, 123647, '\p{^Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(0, 123647, '\P{Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(1, 123647, '\P{^Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(0, 123648, '\p{Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(1, 123648, '\p{^Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(1, 123648, '\P{Line_Break: 	 prefix_NUMERIC}', "");
+    Expect(0, 123648, '\P{^Line_Break: 	 prefix_NUMERIC}', "");
+    Error('\p{Lb=_:=PR}');
+    Error('\P{Lb=_:=PR}');
     Expect(1, 123647, '\p{Lb=:\APR\z:}', "");;
     Expect(0, 123648, '\p{Lb=:\APR\z:}', "");;
     Expect(1, 123647, '\p{Lb=pr}', "");
@@ -64843,16 +65425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 123648, '\P{^Lb=pr}', "");
     Expect(1, 123647, '\p{Lb=:\Apr\z:}', "");;
     Expect(0, 123648, '\p{Lb=:\Apr\z:}', "");;
-    Expect(1, 123647, '\p{Lb=-PR}', "");
-    Expect(0, 123647, '\p{^Lb=-PR}', "");
-    Expect(0, 123647, '\P{Lb=-PR}', "");
-    Expect(1, 123647, '\P{^Lb=-PR}', "");
-    Expect(0, 123648, '\p{Lb=-PR}', "");
-    Expect(1, 123648, '\p{^Lb=-PR}', "");
-    Expect(1, 123648, '\P{Lb=-PR}', "");
-    Expect(0, 123648, '\P{^Lb=-PR}', "");
-    Error('\p{Is_Line_Break: -:=PREFIX_numeric}');
-    Error('\P{Is_Line_Break: -:=PREFIX_numeric}');
+    Expect(1, 123647, '\p{Lb=__PR}', "");
+    Expect(0, 123647, '\p{^Lb=__PR}', "");
+    Expect(0, 123647, '\P{Lb=__PR}', "");
+    Expect(1, 123647, '\P{^Lb=__PR}', "");
+    Expect(0, 123648, '\p{Lb=__PR}', "");
+    Expect(1, 123648, '\p{^Lb=__PR}', "");
+    Expect(1, 123648, '\P{Lb=__PR}', "");
+    Expect(0, 123648, '\P{^Lb=__PR}', "");
+    Error('\p{Is_Line_Break=__PREFIX_Numeric/a/}');
+    Error('\P{Is_Line_Break=__PREFIX_Numeric/a/}');
     Expect(1, 123647, '\p{Is_Line_Break=prefixnumeric}', "");
     Expect(0, 123647, '\p{^Is_Line_Break=prefixnumeric}', "");
     Expect(0, 123647, '\P{Is_Line_Break=prefixnumeric}', "");
@@ -64861,16 +65443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 123648, '\p{^Is_Line_Break=prefixnumeric}', "");
     Expect(1, 123648, '\P{Is_Line_Break=prefixnumeric}', "");
     Expect(0, 123648, '\P{^Is_Line_Break=prefixnumeric}', "");
-    Expect(1, 123647, '\p{Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(0, 123647, '\p{^Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(0, 123647, '\P{Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(1, 123647, '\P{^Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(0, 123648, '\p{Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(1, 123648, '\p{^Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(1, 123648, '\P{Is_Line_Break=-PREFIX_Numeric}', "");
-    Expect(0, 123648, '\P{^Is_Line_Break=-PREFIX_Numeric}', "");
-    Error('\p{Is_Lb=:= 	PR}');
-    Error('\P{Is_Lb=:= 	PR}');
+    Expect(1, 123647, '\p{Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(0, 123647, '\p{^Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(0, 123647, '\P{Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(1, 123647, '\P{^Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(0, 123648, '\p{Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(1, 123648, '\p{^Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(1, 123648, '\P{Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Expect(0, 123648, '\P{^Is_Line_Break:	-PREFIX_NUMERIC}', "");
+    Error('\p{Is_Lb:    :=PR}');
+    Error('\P{Is_Lb:    :=PR}');
     Expect(1, 123647, '\p{Is_Lb=pr}', "");
     Expect(0, 123647, '\p{^Is_Lb=pr}', "");
     Expect(0, 123647, '\P{Is_Lb=pr}', "");
@@ -64879,16 +65461,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 123648, '\p{^Is_Lb=pr}', "");
     Expect(1, 123648, '\P{Is_Lb=pr}', "");
     Expect(0, 123648, '\P{^Is_Lb=pr}', "");
-    Expect(1, 123647, '\p{Is_Lb= _PR}', "");
-    Expect(0, 123647, '\p{^Is_Lb= _PR}', "");
-    Expect(0, 123647, '\P{Is_Lb= _PR}', "");
-    Expect(1, 123647, '\P{^Is_Lb= _PR}', "");
-    Expect(0, 123648, '\p{Is_Lb= _PR}', "");
-    Expect(1, 123648, '\p{^Is_Lb= _PR}', "");
-    Expect(1, 123648, '\P{Is_Lb= _PR}', "");
-    Expect(0, 123648, '\P{^Is_Lb= _PR}', "");
-    Error('\p{Line_Break=	/a/Quotation}');
-    Error('\P{Line_Break=	/a/Quotation}');
+    Expect(1, 123647, '\p{Is_Lb=-_PR}', "");
+    Expect(0, 123647, '\p{^Is_Lb=-_PR}', "");
+    Expect(0, 123647, '\P{Is_Lb=-_PR}', "");
+    Expect(1, 123647, '\P{^Is_Lb=-_PR}', "");
+    Expect(0, 123648, '\p{Is_Lb=-_PR}', "");
+    Expect(1, 123648, '\p{^Is_Lb=-_PR}', "");
+    Expect(1, 123648, '\P{Is_Lb=-_PR}', "");
+    Expect(0, 123648, '\P{^Is_Lb=-_PR}', "");
+    Error('\p{Line_Break=/a/	QUOTATION}');
+    Error('\P{Line_Break=/a/	QUOTATION}');
     Expect(1, 128632, '\p{Line_Break=:\AQuotation\z:}', "");;
     Expect(0, 128633, '\p{Line_Break=:\AQuotation\z:}', "");;
     Expect(1, 128632, '\p{Line_Break=quotation}', "");
@@ -64901,38 +65483,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 128633, '\P{^Line_Break=quotation}', "");
     Expect(1, 128632, '\p{Line_Break=:\Aquotation\z:}', "");;
     Expect(0, 128633, '\p{Line_Break=:\Aquotation\z:}', "");;
-    Expect(1, 128632, '\p{Line_Break= QUOTATION}', "");
-    Expect(0, 128632, '\p{^Line_Break= QUOTATION}', "");
-    Expect(0, 128632, '\P{Line_Break= QUOTATION}', "");
-    Expect(1, 128632, '\P{^Line_Break= QUOTATION}', "");
-    Expect(0, 128633, '\p{Line_Break= QUOTATION}', "");
-    Expect(1, 128633, '\p{^Line_Break= QUOTATION}', "");
-    Expect(1, 128633, '\P{Line_Break= QUOTATION}', "");
-    Expect(0, 128633, '\P{^Line_Break= QUOTATION}', "");
-    Error('\p{Lb=	:=QU}');
-    Error('\P{Lb=	:=QU}');
+    Expect(1, 128632, '\p{Line_Break=	_Quotation}', "");
+    Expect(0, 128632, '\p{^Line_Break=	_Quotation}', "");
+    Expect(0, 128632, '\P{Line_Break=	_Quotation}', "");
+    Expect(1, 128632, '\P{^Line_Break=	_Quotation}', "");
+    Expect(0, 128633, '\p{Line_Break=	_Quotation}', "");
+    Expect(1, 128633, '\p{^Line_Break=	_Quotation}', "");
+    Expect(1, 128633, '\P{Line_Break=	_Quotation}', "");
+    Expect(0, 128633, '\P{^Line_Break=	_Quotation}', "");
+    Error('\p{Lb=_QU/a/}');
+    Error('\P{Lb=_QU/a/}');
     Expect(1, 128632, '\p{Lb=:\AQU\z:}', "");;
     Expect(0, 128633, '\p{Lb=:\AQU\z:}', "");;
-    Expect(1, 128632, '\p{Lb=qu}', "");
-    Expect(0, 128632, '\p{^Lb=qu}', "");
-    Expect(0, 128632, '\P{Lb=qu}', "");
-    Expect(1, 128632, '\P{^Lb=qu}', "");
-    Expect(0, 128633, '\p{Lb=qu}', "");
-    Expect(1, 128633, '\p{^Lb=qu}', "");
-    Expect(1, 128633, '\P{Lb=qu}', "");
-    Expect(0, 128633, '\P{^Lb=qu}', "");
+    Expect(1, 128632, '\p{Lb:   qu}', "");
+    Expect(0, 128632, '\p{^Lb:   qu}', "");
+    Expect(0, 128632, '\P{Lb:   qu}', "");
+    Expect(1, 128632, '\P{^Lb:   qu}', "");
+    Expect(0, 128633, '\p{Lb:   qu}', "");
+    Expect(1, 128633, '\p{^Lb:   qu}', "");
+    Expect(1, 128633, '\P{Lb:   qu}', "");
+    Expect(0, 128633, '\P{^Lb:   qu}', "");
     Expect(1, 128632, '\p{Lb=:\Aqu\z:}', "");;
     Expect(0, 128633, '\p{Lb=:\Aqu\z:}', "");;
-    Expect(1, 128632, '\p{Lb=	_qu}', "");
-    Expect(0, 128632, '\p{^Lb=	_qu}', "");
-    Expect(0, 128632, '\P{Lb=	_qu}', "");
-    Expect(1, 128632, '\P{^Lb=	_qu}', "");
-    Expect(0, 128633, '\p{Lb=	_qu}', "");
-    Expect(1, 128633, '\p{^Lb=	_qu}', "");
-    Expect(1, 128633, '\P{Lb=	_qu}', "");
-    Expect(0, 128633, '\P{^Lb=	_qu}', "");
-    Error('\p{Is_Line_Break=_/a/Quotation}');
-    Error('\P{Is_Line_Break=_/a/Quotation}');
+    Expect(1, 128632, '\p{Lb=-_QU}', "");
+    Expect(0, 128632, '\p{^Lb=-_QU}', "");
+    Expect(0, 128632, '\P{Lb=-_QU}', "");
+    Expect(1, 128632, '\P{^Lb=-_QU}', "");
+    Expect(0, 128633, '\p{Lb=-_QU}', "");
+    Expect(1, 128633, '\p{^Lb=-_QU}', "");
+    Expect(1, 128633, '\P{Lb=-_QU}', "");
+    Expect(0, 128633, '\P{^Lb=-_QU}', "");
+    Error('\p{Is_Line_Break=	:=Quotation}');
+    Error('\P{Is_Line_Break=	:=Quotation}');
     Expect(1, 128632, '\p{Is_Line_Break=quotation}', "");
     Expect(0, 128632, '\p{^Is_Line_Break=quotation}', "");
     Expect(0, 128632, '\P{Is_Line_Break=quotation}', "");
@@ -64941,16 +65523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128633, '\p{^Is_Line_Break=quotation}', "");
     Expect(1, 128633, '\P{Is_Line_Break=quotation}', "");
     Expect(0, 128633, '\P{^Is_Line_Break=quotation}', "");
-    Expect(1, 128632, '\p{Is_Line_Break:   	_QUOTATION}', "");
-    Expect(0, 128632, '\p{^Is_Line_Break:   	_QUOTATION}', "");
-    Expect(0, 128632, '\P{Is_Line_Break:   	_QUOTATION}', "");
-    Expect(1, 128632, '\P{^Is_Line_Break:   	_QUOTATION}', "");
-    Expect(0, 128633, '\p{Is_Line_Break:   	_QUOTATION}', "");
-    Expect(1, 128633, '\p{^Is_Line_Break:   	_QUOTATION}', "");
-    Expect(1, 128633, '\P{Is_Line_Break:   	_QUOTATION}', "");
-    Expect(0, 128633, '\P{^Is_Line_Break:   	_QUOTATION}', "");
-    Error('\p{Is_Lb=--QU:=}');
-    Error('\P{Is_Lb=--QU:=}');
+    Expect(1, 128632, '\p{Is_Line_Break= _Quotation}', "");
+    Expect(0, 128632, '\p{^Is_Line_Break= _Quotation}', "");
+    Expect(0, 128632, '\P{Is_Line_Break= _Quotation}', "");
+    Expect(1, 128632, '\P{^Is_Line_Break= _Quotation}', "");
+    Expect(0, 128633, '\p{Is_Line_Break= _Quotation}', "");
+    Expect(1, 128633, '\p{^Is_Line_Break= _Quotation}', "");
+    Expect(1, 128633, '\P{Is_Line_Break= _Quotation}', "");
+    Expect(0, 128633, '\P{^Is_Line_Break= _Quotation}', "");
+    Error('\p{Is_Lb=/a/QU}');
+    Error('\P{Is_Lb=/a/QU}');
     Expect(1, 128632, '\p{Is_Lb=qu}', "");
     Expect(0, 128632, '\p{^Is_Lb=qu}', "");
     Expect(0, 128632, '\P{Is_Lb=qu}', "");
@@ -64959,16 +65541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 128633, '\p{^Is_Lb=qu}', "");
     Expect(1, 128633, '\P{Is_Lb=qu}', "");
     Expect(0, 128633, '\P{^Is_Lb=qu}', "");
-    Expect(1, 128632, '\p{Is_Lb=-_QU}', "");
-    Expect(0, 128632, '\p{^Is_Lb=-_QU}', "");
-    Expect(0, 128632, '\P{Is_Lb=-_QU}', "");
-    Expect(1, 128632, '\P{^Is_Lb=-_QU}', "");
-    Expect(0, 128633, '\p{Is_Lb=-_QU}', "");
-    Expect(1, 128633, '\p{^Is_Lb=-_QU}', "");
-    Expect(1, 128633, '\P{Is_Lb=-_QU}', "");
-    Expect(0, 128633, '\P{^Is_Lb=-_QU}', "");
-    Error('\p{Line_Break=/a/  REGIONAL_Indicator}');
-    Error('\P{Line_Break=/a/  REGIONAL_Indicator}');
+    Expect(1, 128632, '\p{Is_Lb:__qu}', "");
+    Expect(0, 128632, '\p{^Is_Lb:__qu}', "");
+    Expect(0, 128632, '\P{Is_Lb:__qu}', "");
+    Expect(1, 128632, '\P{^Is_Lb:__qu}', "");
+    Expect(0, 128633, '\p{Is_Lb:__qu}', "");
+    Expect(1, 128633, '\p{^Is_Lb:__qu}', "");
+    Expect(1, 128633, '\P{Is_Lb:__qu}', "");
+    Expect(0, 128633, '\P{^Is_Lb:__qu}', "");
+    Error('\p{Line_Break=/a/	Regional_Indicator}');
+    Error('\P{Line_Break=/a/	Regional_Indicator}');
     Expect(1, 127487, '\p{Line_Break=:\ARegional_Indicator\z:}', "");;
     Expect(0, 127488, '\p{Line_Break=:\ARegional_Indicator\z:}', "");;
     Expect(1, 127487, '\p{Line_Break=regionalindicator}', "");
@@ -64981,16 +65563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127488, '\P{^Line_Break=regionalindicator}', "");
     Expect(1, 127487, '\p{Line_Break=:\Aregionalindicator\z:}', "");;
     Expect(0, 127488, '\p{Line_Break=:\Aregionalindicator\z:}', "");;
-    Expect(1, 127487, '\p{Line_Break=	Regional_indicator}', "");
-    Expect(0, 127487, '\p{^Line_Break=	Regional_indicator}', "");
-    Expect(0, 127487, '\P{Line_Break=	Regional_indicator}', "");
-    Expect(1, 127487, '\P{^Line_Break=	Regional_indicator}', "");
-    Expect(0, 127488, '\p{Line_Break=	Regional_indicator}', "");
-    Expect(1, 127488, '\p{^Line_Break=	Regional_indicator}', "");
-    Expect(1, 127488, '\P{Line_Break=	Regional_indicator}', "");
-    Expect(0, 127488, '\P{^Line_Break=	Regional_indicator}', "");
-    Error('\p{Lb=:= RI}');
-    Error('\P{Lb=:= RI}');
+    Expect(1, 127487, '\p{Line_Break=	-regional_INDICATOR}', "");
+    Expect(0, 127487, '\p{^Line_Break=	-regional_INDICATOR}', "");
+    Expect(0, 127487, '\P{Line_Break=	-regional_INDICATOR}', "");
+    Expect(1, 127487, '\P{^Line_Break=	-regional_INDICATOR}', "");
+    Expect(0, 127488, '\p{Line_Break=	-regional_INDICATOR}', "");
+    Expect(1, 127488, '\p{^Line_Break=	-regional_INDICATOR}', "");
+    Expect(1, 127488, '\P{Line_Break=	-regional_INDICATOR}', "");
+    Expect(0, 127488, '\P{^Line_Break=	-regional_INDICATOR}', "");
+    Error('\p{Lb= RI/a/}');
+    Error('\P{Lb= RI/a/}');
     Expect(1, 127487, '\p{Lb=:\ARI\z:}', "");;
     Expect(0, 127488, '\p{Lb=:\ARI\z:}', "");;
     Expect(1, 127487, '\p{Lb=ri}', "");
@@ -65003,16 +65585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127488, '\P{^Lb=ri}', "");
     Expect(1, 127487, '\p{Lb=:\Ari\z:}', "");;
     Expect(0, 127488, '\p{Lb=:\Ari\z:}', "");;
-    Expect(1, 127487, '\p{Lb=_	ri}', "");
-    Expect(0, 127487, '\p{^Lb=_	ri}', "");
-    Expect(0, 127487, '\P{Lb=_	ri}', "");
-    Expect(1, 127487, '\P{^Lb=_	ri}', "");
-    Expect(0, 127488, '\p{Lb=_	ri}', "");
-    Expect(1, 127488, '\p{^Lb=_	ri}', "");
-    Expect(1, 127488, '\P{Lb=_	ri}', "");
-    Expect(0, 127488, '\P{^Lb=_	ri}', "");
-    Error('\p{Is_Line_Break=	Regional_INDICATOR:=}');
-    Error('\P{Is_Line_Break=	Regional_INDICATOR:=}');
+    Expect(1, 127487, '\p{Lb= _RI}', "");
+    Expect(0, 127487, '\p{^Lb= _RI}', "");
+    Expect(0, 127487, '\P{Lb= _RI}', "");
+    Expect(1, 127487, '\P{^Lb= _RI}', "");
+    Expect(0, 127488, '\p{Lb= _RI}', "");
+    Expect(1, 127488, '\p{^Lb= _RI}', "");
+    Expect(1, 127488, '\P{Lb= _RI}', "");
+    Expect(0, 127488, '\P{^Lb= _RI}', "");
+    Error('\p{Is_Line_Break=	/a/regional_Indicator}');
+    Error('\P{Is_Line_Break=	/a/regional_Indicator}');
     Expect(1, 127487, '\p{Is_Line_Break=regionalindicator}', "");
     Expect(0, 127487, '\p{^Is_Line_Break=regionalindicator}', "");
     Expect(0, 127487, '\P{Is_Line_Break=regionalindicator}', "");
@@ -65021,16 +65603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 127488, '\p{^Is_Line_Break=regionalindicator}', "");
     Expect(1, 127488, '\P{Is_Line_Break=regionalindicator}', "");
     Expect(0, 127488, '\P{^Is_Line_Break=regionalindicator}', "");
-    Expect(1, 127487, '\p{Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(0, 127487, '\p{^Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(0, 127487, '\P{Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(1, 127487, '\P{^Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(0, 127488, '\p{Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(1, 127488, '\p{^Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(1, 127488, '\P{Is_Line_Break=__REGIONAL_Indicator}', "");
-    Expect(0, 127488, '\P{^Is_Line_Break=__REGIONAL_Indicator}', "");
-    Error('\p{Is_Lb: := RI}');
-    Error('\P{Is_Lb: := RI}');
+    Expect(1, 127487, '\p{Is_Line_Break=--regional_indicator}', "");
+    Expect(0, 127487, '\p{^Is_Line_Break=--regional_indicator}', "");
+    Expect(0, 127487, '\P{Is_Line_Break=--regional_indicator}', "");
+    Expect(1, 127487, '\P{^Is_Line_Break=--regional_indicator}', "");
+    Expect(0, 127488, '\p{Is_Line_Break=--regional_indicator}', "");
+    Expect(1, 127488, '\p{^Is_Line_Break=--regional_indicator}', "");
+    Expect(1, 127488, '\P{Is_Line_Break=--regional_indicator}', "");
+    Expect(0, 127488, '\P{^Is_Line_Break=--regional_indicator}', "");
+    Error('\p{Is_Lb=:=_ri}');
+    Error('\P{Is_Lb=:=_ri}');
     Expect(1, 127487, '\p{Is_Lb=ri}', "");
     Expect(0, 127487, '\p{^Is_Lb=ri}', "");
     Expect(0, 127487, '\P{Is_Lb=ri}', "");
@@ -65039,16 +65621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 127488, '\p{^Is_Lb=ri}', "");
     Expect(1, 127488, '\P{Is_Lb=ri}', "");
     Expect(0, 127488, '\P{^Is_Lb=ri}', "");
-    Expect(1, 127487, '\p{Is_Lb=	-ri}', "");
-    Expect(0, 127487, '\p{^Is_Lb=	-ri}', "");
-    Expect(0, 127487, '\P{Is_Lb=	-ri}', "");
-    Expect(1, 127487, '\P{^Is_Lb=	-ri}', "");
-    Expect(0, 127488, '\p{Is_Lb=	-ri}', "");
-    Expect(1, 127488, '\p{^Is_Lb=	-ri}', "");
-    Expect(1, 127488, '\P{Is_Lb=	-ri}', "");
-    Expect(0, 127488, '\P{^Is_Lb=	-ri}', "");
-    Error('\p{Line_Break=:=_COMPLEX_context}');
-    Error('\P{Line_Break=:=_COMPLEX_context}');
+    Expect(1, 127487, '\p{Is_Lb= 	RI}', "");
+    Expect(0, 127487, '\p{^Is_Lb= 	RI}', "");
+    Expect(0, 127487, '\P{Is_Lb= 	RI}', "");
+    Expect(1, 127487, '\P{^Is_Lb= 	RI}', "");
+    Expect(0, 127488, '\p{Is_Lb= 	RI}', "");
+    Expect(1, 127488, '\p{^Is_Lb= 	RI}', "");
+    Expect(1, 127488, '\P{Is_Lb= 	RI}', "");
+    Expect(0, 127488, '\P{^Is_Lb= 	RI}', "");
+    Error('\p{Line_Break=/a/complex_context}');
+    Error('\P{Line_Break=/a/complex_context}');
     Expect(1, 71494, '\p{Line_Break=:\AComplex_Context\z:}', "");;
     Expect(0, 71495, '\p{Line_Break=:\AComplex_Context\z:}', "");;
     Expect(1, 71494, '\p{Line_Break=complexcontext}', "");
@@ -65061,16 +65643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71495, '\P{^Line_Break=complexcontext}', "");
     Expect(1, 71494, '\p{Line_Break=:\Acomplexcontext\z:}', "");;
     Expect(0, 71495, '\p{Line_Break=:\Acomplexcontext\z:}', "");;
-    Expect(1, 71494, '\p{Line_Break=	-Complex_Context}', "");
-    Expect(0, 71494, '\p{^Line_Break=	-Complex_Context}', "");
-    Expect(0, 71494, '\P{Line_Break=	-Complex_Context}', "");
-    Expect(1, 71494, '\P{^Line_Break=	-Complex_Context}', "");
-    Expect(0, 71495, '\p{Line_Break=	-Complex_Context}', "");
-    Expect(1, 71495, '\p{^Line_Break=	-Complex_Context}', "");
-    Expect(1, 71495, '\P{Line_Break=	-Complex_Context}', "");
-    Expect(0, 71495, '\P{^Line_Break=	-Complex_Context}', "");
-    Error('\p{Lb=:=SA}');
-    Error('\P{Lb=:=SA}');
+    Expect(1, 71494, '\p{Line_Break=__complex_Context}', "");
+    Expect(0, 71494, '\p{^Line_Break=__complex_Context}', "");
+    Expect(0, 71494, '\P{Line_Break=__complex_Context}', "");
+    Expect(1, 71494, '\P{^Line_Break=__complex_Context}', "");
+    Expect(0, 71495, '\p{Line_Break=__complex_Context}', "");
+    Expect(1, 71495, '\p{^Line_Break=__complex_Context}', "");
+    Expect(1, 71495, '\P{Line_Break=__complex_Context}', "");
+    Expect(0, 71495, '\P{^Line_Break=__complex_Context}', "");
+    Error('\p{Lb=:= 	sa}');
+    Error('\P{Lb=:= 	sa}');
     Expect(1, 71494, '\p{Lb=:\ASA\z:}', "");;
     Expect(0, 71495, '\p{Lb=:\ASA\z:}', "");;
     Expect(1, 71494, '\p{Lb=sa}', "");
@@ -65083,16 +65665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71495, '\P{^Lb=sa}', "");
     Expect(1, 71494, '\p{Lb=:\Asa\z:}', "");;
     Expect(0, 71495, '\p{Lb=:\Asa\z:}', "");;
-    Expect(1, 71494, '\p{Lb=_sa}', "");
-    Expect(0, 71494, '\p{^Lb=_sa}', "");
-    Expect(0, 71494, '\P{Lb=_sa}', "");
-    Expect(1, 71494, '\P{^Lb=_sa}', "");
-    Expect(0, 71495, '\p{Lb=_sa}', "");
-    Expect(1, 71495, '\p{^Lb=_sa}', "");
-    Expect(1, 71495, '\P{Lb=_sa}', "");
-    Expect(0, 71495, '\P{^Lb=_sa}', "");
-    Error('\p{Is_Line_Break= -Complex_Context/a/}');
-    Error('\P{Is_Line_Break= -Complex_Context/a/}');
+    Expect(1, 71494, '\p{Lb=_	SA}', "");
+    Expect(0, 71494, '\p{^Lb=_	SA}', "");
+    Expect(0, 71494, '\P{Lb=_	SA}', "");
+    Expect(1, 71494, '\P{^Lb=_	SA}', "");
+    Expect(0, 71495, '\p{Lb=_	SA}', "");
+    Expect(1, 71495, '\p{^Lb=_	SA}', "");
+    Expect(1, 71495, '\P{Lb=_	SA}', "");
+    Expect(0, 71495, '\P{^Lb=_	SA}', "");
+    Error('\p{Is_Line_Break= :=Complex_Context}');
+    Error('\P{Is_Line_Break= :=Complex_Context}');
     Expect(1, 71494, '\p{Is_Line_Break=complexcontext}', "");
     Expect(0, 71494, '\p{^Is_Line_Break=complexcontext}', "");
     Expect(0, 71494, '\P{Is_Line_Break=complexcontext}', "");
@@ -65101,34 +65683,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71495, '\p{^Is_Line_Break=complexcontext}', "");
     Expect(1, 71495, '\P{Is_Line_Break=complexcontext}', "");
     Expect(0, 71495, '\P{^Is_Line_Break=complexcontext}', "");
-    Expect(1, 71494, '\p{Is_Line_Break=Complex_Context}', "");
-    Expect(0, 71494, '\p{^Is_Line_Break=Complex_Context}', "");
-    Expect(0, 71494, '\P{Is_Line_Break=Complex_Context}', "");
-    Expect(1, 71494, '\P{^Is_Line_Break=Complex_Context}', "");
-    Expect(0, 71495, '\p{Is_Line_Break=Complex_Context}', "");
-    Expect(1, 71495, '\p{^Is_Line_Break=Complex_Context}', "");
-    Expect(1, 71495, '\P{Is_Line_Break=Complex_Context}', "");
-    Expect(0, 71495, '\P{^Is_Line_Break=Complex_Context}', "");
-    Error('\p{Is_Lb= :=sa}');
-    Error('\P{Is_Lb= :=sa}');
-    Expect(1, 71494, '\p{Is_Lb: sa}', "");
-    Expect(0, 71494, '\p{^Is_Lb: sa}', "");
-    Expect(0, 71494, '\P{Is_Lb: sa}', "");
-    Expect(1, 71494, '\P{^Is_Lb: sa}', "");
-    Expect(0, 71495, '\p{Is_Lb: sa}', "");
-    Expect(1, 71495, '\p{^Is_Lb: sa}', "");
-    Expect(1, 71495, '\P{Is_Lb: sa}', "");
-    Expect(0, 71495, '\P{^Is_Lb: sa}', "");
-    Expect(1, 71494, '\p{Is_Lb=	 SA}', "");
-    Expect(0, 71494, '\p{^Is_Lb=	 SA}', "");
-    Expect(0, 71494, '\P{Is_Lb=	 SA}', "");
-    Expect(1, 71494, '\P{^Is_Lb=	 SA}', "");
-    Expect(0, 71495, '\p{Is_Lb=	 SA}', "");
-    Expect(1, 71495, '\p{^Is_Lb=	 SA}', "");
-    Expect(1, 71495, '\P{Is_Lb=	 SA}', "");
-    Expect(0, 71495, '\P{^Is_Lb=	 SA}', "");
-    Error('\p{Line_Break=Surrogate:=}');
-    Error('\P{Line_Break=Surrogate:=}');
+    Expect(1, 71494, '\p{Is_Line_Break= COMPLEX_context}', "");
+    Expect(0, 71494, '\p{^Is_Line_Break= COMPLEX_context}', "");
+    Expect(0, 71494, '\P{Is_Line_Break= COMPLEX_context}', "");
+    Expect(1, 71494, '\P{^Is_Line_Break= COMPLEX_context}', "");
+    Expect(0, 71495, '\p{Is_Line_Break= COMPLEX_context}', "");
+    Expect(1, 71495, '\p{^Is_Line_Break= COMPLEX_context}', "");
+    Expect(1, 71495, '\P{Is_Line_Break= COMPLEX_context}', "");
+    Expect(0, 71495, '\P{^Is_Line_Break= COMPLEX_context}', "");
+    Error('\p{Is_Lb=/a/SA}');
+    Error('\P{Is_Lb=/a/SA}');
+    Expect(1, 71494, '\p{Is_Lb=sa}', "");
+    Expect(0, 71494, '\p{^Is_Lb=sa}', "");
+    Expect(0, 71494, '\P{Is_Lb=sa}', "");
+    Expect(1, 71494, '\P{^Is_Lb=sa}', "");
+    Expect(0, 71495, '\p{Is_Lb=sa}', "");
+    Expect(1, 71495, '\p{^Is_Lb=sa}', "");
+    Expect(1, 71495, '\P{Is_Lb=sa}', "");
+    Expect(0, 71495, '\P{^Is_Lb=sa}', "");
+    Expect(1, 71494, '\p{Is_Lb:	--SA}', "");
+    Expect(0, 71494, '\p{^Is_Lb:	--SA}', "");
+    Expect(0, 71494, '\P{Is_Lb:	--SA}', "");
+    Expect(1, 71494, '\P{^Is_Lb:	--SA}', "");
+    Expect(0, 71495, '\p{Is_Lb:	--SA}', "");
+    Expect(1, 71495, '\p{^Is_Lb:	--SA}', "");
+    Expect(1, 71495, '\P{Is_Lb:	--SA}', "");
+    Expect(0, 71495, '\P{^Is_Lb:	--SA}', "");
+    Error('\p{Line_Break=/a/_Surrogate}');
+    Error('\P{Line_Break=/a/_Surrogate}');
     Expect(1, 57343, '\p{Line_Break=surrogate}', 'deprecated');
     Expect(0, 57343, '\p{^Line_Break=surrogate}', 'deprecated');
     Expect(0, 57343, '\P{Line_Break=surrogate}', 'deprecated');
@@ -65137,16 +65719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 57344, '\p{^Line_Break=surrogate}', 'deprecated');
     Expect(1, 57344, '\P{Line_Break=surrogate}', 'deprecated');
     Expect(0, 57344, '\P{^Line_Break=surrogate}', 'deprecated');
-    Expect(1, 57343, '\p{Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(0, 57343, '\p{^Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(0, 57343, '\P{Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(1, 57343, '\P{^Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(0, 57344, '\p{Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(1, 57344, '\p{^Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(1, 57344, '\P{Line_Break=_-SURROGATE}', 'deprecated');
-    Expect(0, 57344, '\P{^Line_Break=_-SURROGATE}', 'deprecated');
-    Error('\p{Lb= 	sg:=}');
-    Error('\P{Lb= 	sg:=}');
+    Expect(1, 57343, '\p{Line_Break:     surrogate}', 'deprecated');
+    Expect(0, 57343, '\p{^Line_Break:     surrogate}', 'deprecated');
+    Expect(0, 57343, '\P{Line_Break:     surrogate}', 'deprecated');
+    Expect(1, 57343, '\P{^Line_Break:     surrogate}', 'deprecated');
+    Expect(0, 57344, '\p{Line_Break:     surrogate}', 'deprecated');
+    Expect(1, 57344, '\p{^Line_Break:     surrogate}', 'deprecated');
+    Expect(1, 57344, '\P{Line_Break:     surrogate}', 'deprecated');
+    Expect(0, 57344, '\P{^Line_Break:     surrogate}', 'deprecated');
+    Error('\p{Lb=	_SG/a/}');
+    Error('\P{Lb=	_SG/a/}');
     Expect(1, 57343, '\p{Lb=sg}', 'deprecated');
     Expect(0, 57343, '\p{^Lb=sg}', 'deprecated');
     Expect(0, 57343, '\P{Lb=sg}', 'deprecated');
@@ -65155,34 +65737,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 57344, '\p{^Lb=sg}', 'deprecated');
     Expect(1, 57344, '\P{Lb=sg}', 'deprecated');
     Expect(0, 57344, '\P{^Lb=sg}', 'deprecated');
-    Expect(1, 57343, '\p{Lb=- sg}', 'deprecated');
-    Expect(0, 57343, '\p{^Lb=- sg}', 'deprecated');
-    Expect(0, 57343, '\P{Lb=- sg}', 'deprecated');
-    Expect(1, 57343, '\P{^Lb=- sg}', 'deprecated');
-    Expect(0, 57344, '\p{Lb=- sg}', 'deprecated');
-    Expect(1, 57344, '\p{^Lb=- sg}', 'deprecated');
-    Expect(1, 57344, '\P{Lb=- sg}', 'deprecated');
-    Expect(0, 57344, '\P{^Lb=- sg}', 'deprecated');
-    Error('\p{Is_Line_Break=_ Surrogate:=}');
-    Error('\P{Is_Line_Break=_ Surrogate:=}');
-    Expect(1, 57343, '\p{Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(0, 57343, '\p{^Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(0, 57343, '\P{Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(1, 57343, '\P{^Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(0, 57344, '\p{Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(1, 57344, '\p{^Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(1, 57344, '\P{Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(0, 57344, '\P{^Is_Line_Break:   surrogate}', 'deprecated');
-    Expect(1, 57343, '\p{Is_Line_Break= surrogate}', 'deprecated');
-    Expect(0, 57343, '\p{^Is_Line_Break= surrogate}', 'deprecated');
-    Expect(0, 57343, '\P{Is_Line_Break= surrogate}', 'deprecated');
-    Expect(1, 57343, '\P{^Is_Line_Break= surrogate}', 'deprecated');
-    Expect(0, 57344, '\p{Is_Line_Break= surrogate}', 'deprecated');
-    Expect(1, 57344, '\p{^Is_Line_Break= surrogate}', 'deprecated');
-    Expect(1, 57344, '\P{Is_Line_Break= surrogate}', 'deprecated');
-    Expect(0, 57344, '\P{^Is_Line_Break= surrogate}', 'deprecated');
-    Error('\p{Is_Lb=__SG/a/}');
-    Error('\P{Is_Lb=__SG/a/}');
+    Expect(1, 57343, '\p{Lb= _SG}', 'deprecated');
+    Expect(0, 57343, '\p{^Lb= _SG}', 'deprecated');
+    Expect(0, 57343, '\P{Lb= _SG}', 'deprecated');
+    Expect(1, 57343, '\P{^Lb= _SG}', 'deprecated');
+    Expect(0, 57344, '\p{Lb= _SG}', 'deprecated');
+    Expect(1, 57344, '\p{^Lb= _SG}', 'deprecated');
+    Expect(1, 57344, '\P{Lb= _SG}', 'deprecated');
+    Expect(0, 57344, '\P{^Lb= _SG}', 'deprecated');
+    Error('\p{Is_Line_Break= Surrogate/a/}');
+    Error('\P{Is_Line_Break= Surrogate/a/}');
+    Expect(1, 57343, '\p{Is_Line_Break=surrogate}', 'deprecated');
+    Expect(0, 57343, '\p{^Is_Line_Break=surrogate}', 'deprecated');
+    Expect(0, 57343, '\P{Is_Line_Break=surrogate}', 'deprecated');
+    Expect(1, 57343, '\P{^Is_Line_Break=surrogate}', 'deprecated');
+    Expect(0, 57344, '\p{Is_Line_Break=surrogate}', 'deprecated');
+    Expect(1, 57344, '\p{^Is_Line_Break=surrogate}', 'deprecated');
+    Expect(1, 57344, '\P{Is_Line_Break=surrogate}', 'deprecated');
+    Expect(0, 57344, '\P{^Is_Line_Break=surrogate}', 'deprecated');
+    Expect(1, 57343, '\p{Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(0, 57343, '\p{^Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(0, 57343, '\P{Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(1, 57343, '\P{^Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(0, 57344, '\p{Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(1, 57344, '\p{^Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(1, 57344, '\P{Is_Line_Break=-Surrogate}', 'deprecated');
+    Expect(0, 57344, '\P{^Is_Line_Break=-Surrogate}', 'deprecated');
+    Error('\p{Is_Lb=_:=SG}');
+    Error('\P{Is_Lb=_:=SG}');
     Expect(1, 57343, '\p{Is_Lb=sg}', 'deprecated');
     Expect(0, 57343, '\p{^Is_Lb=sg}', 'deprecated');
     Expect(0, 57343, '\P{Is_Lb=sg}', 'deprecated');
@@ -65191,16 +65773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 57344, '\p{^Is_Lb=sg}', 'deprecated');
     Expect(1, 57344, '\P{Is_Lb=sg}', 'deprecated');
     Expect(0, 57344, '\P{^Is_Lb=sg}', 'deprecated');
-    Expect(1, 57343, '\p{Is_Lb= 	SG}', 'deprecated');
-    Expect(0, 57343, '\p{^Is_Lb= 	SG}', 'deprecated');
-    Expect(0, 57343, '\P{Is_Lb= 	SG}', 'deprecated');
-    Expect(1, 57343, '\P{^Is_Lb= 	SG}', 'deprecated');
-    Expect(0, 57344, '\p{Is_Lb= 	SG}', 'deprecated');
-    Expect(1, 57344, '\p{^Is_Lb= 	SG}', 'deprecated');
-    Expect(1, 57344, '\P{Is_Lb= 	SG}', 'deprecated');
-    Expect(0, 57344, '\P{^Is_Lb= 	SG}', 'deprecated');
-    Error('\p{Line_Break:	:= 	Space}');
-    Error('\P{Line_Break:	:= 	Space}');
+    Expect(1, 57343, '\p{Is_Lb=	_SG}', 'deprecated');
+    Expect(0, 57343, '\p{^Is_Lb=	_SG}', 'deprecated');
+    Expect(0, 57343, '\P{Is_Lb=	_SG}', 'deprecated');
+    Expect(1, 57343, '\P{^Is_Lb=	_SG}', 'deprecated');
+    Expect(0, 57344, '\p{Is_Lb=	_SG}', 'deprecated');
+    Expect(1, 57344, '\p{^Is_Lb=	_SG}', 'deprecated');
+    Expect(1, 57344, '\P{Is_Lb=	_SG}', 'deprecated');
+    Expect(0, 57344, '\P{^Is_Lb=	_SG}', 'deprecated');
+    Error('\p{Line_Break= :=Space}');
+    Error('\P{Line_Break= :=Space}');
     Expect(1, 32, '\p{Line_Break=:\ASpace\z:}', "");;
     Expect(0, 33, '\p{Line_Break=:\ASpace\z:}', "");;
     Expect(1, 32, '\p{Line_Break=space}', "");
@@ -65213,16 +65795,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 33, '\P{^Line_Break=space}', "");
     Expect(1, 32, '\p{Line_Break=:\Aspace\z:}', "");;
     Expect(0, 33, '\p{Line_Break=:\Aspace\z:}', "");;
-    Expect(1, 32, '\p{Line_Break=	_Space}', "");
-    Expect(0, 32, '\p{^Line_Break=	_Space}', "");
-    Expect(0, 32, '\P{Line_Break=	_Space}', "");
-    Expect(1, 32, '\P{^Line_Break=	_Space}', "");
-    Expect(0, 33, '\p{Line_Break=	_Space}', "");
-    Expect(1, 33, '\p{^Line_Break=	_Space}', "");
-    Expect(1, 33, '\P{Line_Break=	_Space}', "");
-    Expect(0, 33, '\P{^Line_Break=	_Space}', "");
-    Error('\p{Lb=_ sp/a/}');
-    Error('\P{Lb=_ sp/a/}');
+    Expect(1, 32, '\p{Line_Break=__space}', "");
+    Expect(0, 32, '\p{^Line_Break=__space}', "");
+    Expect(0, 32, '\P{Line_Break=__space}', "");
+    Expect(1, 32, '\P{^Line_Break=__space}', "");
+    Expect(0, 33, '\p{Line_Break=__space}', "");
+    Expect(1, 33, '\p{^Line_Break=__space}', "");
+    Expect(1, 33, '\P{Line_Break=__space}', "");
+    Expect(0, 33, '\P{^Line_Break=__space}', "");
+    Error('\p{Lb=:=sp}');
+    Error('\P{Lb=:=sp}');
     Expect(1, 32, '\p{Lb=:\ASP\z:}', "");;
     Expect(0, 33, '\p{Lb=:\ASP\z:}', "");;
     Expect(1, 32, '\p{Lb=sp}', "");
@@ -65235,16 +65817,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 33, '\P{^Lb=sp}', "");
     Expect(1, 32, '\p{Lb=:\Asp\z:}', "");;
     Expect(0, 33, '\p{Lb=:\Asp\z:}', "");;
-    Expect(1, 32, '\p{Lb:	SP}', "");
-    Expect(0, 32, '\p{^Lb:	SP}', "");
-    Expect(0, 32, '\P{Lb:	SP}', "");
-    Expect(1, 32, '\P{^Lb:	SP}', "");
-    Expect(0, 33, '\p{Lb:	SP}', "");
-    Expect(1, 33, '\p{^Lb:	SP}', "");
-    Expect(1, 33, '\P{Lb:	SP}', "");
-    Expect(0, 33, '\P{^Lb:	SP}', "");
-    Error('\p{Is_Line_Break=:=	Space}');
-    Error('\P{Is_Line_Break=:=	Space}');
+    Expect(1, 32, '\p{Lb:-sp}', "");
+    Expect(0, 32, '\p{^Lb:-sp}', "");
+    Expect(0, 32, '\P{Lb:-sp}', "");
+    Expect(1, 32, '\P{^Lb:-sp}', "");
+    Expect(0, 33, '\p{Lb:-sp}', "");
+    Expect(1, 33, '\p{^Lb:-sp}', "");
+    Expect(1, 33, '\P{Lb:-sp}', "");
+    Expect(0, 33, '\P{^Lb:-sp}', "");
+    Error('\p{Is_Line_Break=_/a/Space}');
+    Error('\P{Is_Line_Break=_/a/Space}');
     Expect(1, 32, '\p{Is_Line_Break=space}', "");
     Expect(0, 32, '\p{^Is_Line_Break=space}', "");
     Expect(0, 32, '\P{Is_Line_Break=space}', "");
@@ -65253,16 +65835,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 33, '\p{^Is_Line_Break=space}', "");
     Expect(1, 33, '\P{Is_Line_Break=space}', "");
     Expect(0, 33, '\P{^Is_Line_Break=space}', "");
-    Expect(1, 32, '\p{Is_Line_Break=	_Space}', "");
-    Expect(0, 32, '\p{^Is_Line_Break=	_Space}', "");
-    Expect(0, 32, '\P{Is_Line_Break=	_Space}', "");
-    Expect(1, 32, '\P{^Is_Line_Break=	_Space}', "");
-    Expect(0, 33, '\p{Is_Line_Break=	_Space}', "");
-    Expect(1, 33, '\p{^Is_Line_Break=	_Space}', "");
-    Expect(1, 33, '\P{Is_Line_Break=	_Space}', "");
-    Expect(0, 33, '\P{^Is_Line_Break=	_Space}', "");
-    Error('\p{Is_Lb=  SP/a/}');
-    Error('\P{Is_Lb=  SP/a/}');
+    Expect(1, 32, '\p{Is_Line_Break=	-Space}', "");
+    Expect(0, 32, '\p{^Is_Line_Break=	-Space}', "");
+    Expect(0, 32, '\P{Is_Line_Break=	-Space}', "");
+    Expect(1, 32, '\P{^Is_Line_Break=	-Space}', "");
+    Expect(0, 33, '\p{Is_Line_Break=	-Space}', "");
+    Expect(1, 33, '\p{^Is_Line_Break=	-Space}', "");
+    Expect(1, 33, '\P{Is_Line_Break=	-Space}', "");
+    Expect(0, 33, '\P{^Is_Line_Break=	-Space}', "");
+    Error('\p{Is_Lb=:=  SP}');
+    Error('\P{Is_Lb=:=  SP}');
     Expect(1, 32, '\p{Is_Lb=sp}', "");
     Expect(0, 32, '\p{^Is_Lb=sp}', "");
     Expect(0, 32, '\P{Is_Lb=sp}', "");
@@ -65271,38 +65853,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 33, '\p{^Is_Lb=sp}', "");
     Expect(1, 33, '\P{Is_Lb=sp}', "");
     Expect(0, 33, '\P{^Is_Lb=sp}', "");
-    Expect(1, 32, '\p{Is_Lb=_ SP}', "");
-    Expect(0, 32, '\p{^Is_Lb=_ SP}', "");
-    Expect(0, 32, '\P{Is_Lb=_ SP}', "");
-    Expect(1, 32, '\P{^Is_Lb=_ SP}', "");
-    Expect(0, 33, '\p{Is_Lb=_ SP}', "");
-    Expect(1, 33, '\p{^Is_Lb=_ SP}', "");
-    Expect(1, 33, '\P{Is_Lb=_ SP}', "");
-    Expect(0, 33, '\P{^Is_Lb=_ SP}', "");
-    Error('\p{Line_Break=/a/Break_Symbols}');
-    Error('\P{Line_Break=/a/Break_Symbols}');
+    Expect(1, 32, '\p{Is_Lb= SP}', "");
+    Expect(0, 32, '\p{^Is_Lb= SP}', "");
+    Expect(0, 32, '\P{Is_Lb= SP}', "");
+    Expect(1, 32, '\P{^Is_Lb= SP}', "");
+    Expect(0, 33, '\p{Is_Lb= SP}', "");
+    Expect(1, 33, '\p{^Is_Lb= SP}', "");
+    Expect(1, 33, '\P{Is_Lb= SP}', "");
+    Expect(0, 33, '\P{^Is_Lb= SP}', "");
+    Error('\p{Line_Break=	-Break_SYMBOLS:=}');
+    Error('\P{Line_Break=	-Break_SYMBOLS:=}');
     Expect(1, 47, '\p{Line_Break=:\ABreak_Symbols\z:}', "");;
     Expect(0, 48, '\p{Line_Break=:\ABreak_Symbols\z:}', "");;
-    Expect(1, 47, '\p{Line_Break:breaksymbols}', "");
-    Expect(0, 47, '\p{^Line_Break:breaksymbols}', "");
-    Expect(0, 47, '\P{Line_Break:breaksymbols}', "");
-    Expect(1, 47, '\P{^Line_Break:breaksymbols}', "");
-    Expect(0, 48, '\p{Line_Break:breaksymbols}', "");
-    Expect(1, 48, '\p{^Line_Break:breaksymbols}', "");
-    Expect(1, 48, '\P{Line_Break:breaksymbols}', "");
-    Expect(0, 48, '\P{^Line_Break:breaksymbols}', "");
+    Expect(1, 47, '\p{Line_Break=breaksymbols}', "");
+    Expect(0, 47, '\p{^Line_Break=breaksymbols}', "");
+    Expect(0, 47, '\P{Line_Break=breaksymbols}', "");
+    Expect(1, 47, '\P{^Line_Break=breaksymbols}', "");
+    Expect(0, 48, '\p{Line_Break=breaksymbols}', "");
+    Expect(1, 48, '\p{^Line_Break=breaksymbols}', "");
+    Expect(1, 48, '\P{Line_Break=breaksymbols}', "");
+    Expect(0, 48, '\P{^Line_Break=breaksymbols}', "");
     Expect(1, 47, '\p{Line_Break=:\Abreaksymbols\z:}', "");;
     Expect(0, 48, '\p{Line_Break=:\Abreaksymbols\z:}', "");;
-    Expect(1, 47, '\p{Line_Break=		Break_symbols}', "");
-    Expect(0, 47, '\p{^Line_Break=		Break_symbols}', "");
-    Expect(0, 47, '\P{Line_Break=		Break_symbols}', "");
-    Expect(1, 47, '\P{^Line_Break=		Break_symbols}', "");
-    Expect(0, 48, '\p{Line_Break=		Break_symbols}', "");
-    Expect(1, 48, '\p{^Line_Break=		Break_symbols}', "");
-    Expect(1, 48, '\P{Line_Break=		Break_symbols}', "");
-    Expect(0, 48, '\P{^Line_Break=		Break_symbols}', "");
-    Error('\p{Lb=/a/-	SY}');
-    Error('\P{Lb=/a/-	SY}');
+    Expect(1, 47, '\p{Line_Break: -Break_Symbols}', "");
+    Expect(0, 47, '\p{^Line_Break: -Break_Symbols}', "");
+    Expect(0, 47, '\P{Line_Break: -Break_Symbols}', "");
+    Expect(1, 47, '\P{^Line_Break: -Break_Symbols}', "");
+    Expect(0, 48, '\p{Line_Break: -Break_Symbols}', "");
+    Expect(1, 48, '\p{^Line_Break: -Break_Symbols}', "");
+    Expect(1, 48, '\P{Line_Break: -Break_Symbols}', "");
+    Expect(0, 48, '\P{^Line_Break: -Break_Symbols}', "");
+    Error('\p{Lb:-	SY/a/}');
+    Error('\P{Lb:-	SY/a/}');
     Expect(1, 47, '\p{Lb=:\ASY\z:}', "");;
     Expect(0, 48, '\p{Lb=:\ASY\z:}', "");;
     Expect(1, 47, '\p{Lb=sy}', "");
@@ -65315,16 +65897,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 48, '\P{^Lb=sy}', "");
     Expect(1, 47, '\p{Lb=:\Asy\z:}', "");;
     Expect(0, 48, '\p{Lb=:\Asy\z:}', "");;
-    Expect(1, 47, '\p{Lb= SY}', "");
-    Expect(0, 47, '\p{^Lb= SY}', "");
-    Expect(0, 47, '\P{Lb= SY}', "");
-    Expect(1, 47, '\P{^Lb= SY}', "");
-    Expect(0, 48, '\p{Lb= SY}', "");
-    Expect(1, 48, '\p{^Lb= SY}', "");
-    Expect(1, 48, '\P{Lb= SY}', "");
-    Expect(0, 48, '\P{^Lb= SY}', "");
-    Error('\p{Is_Line_Break=:= _BREAK_symbols}');
-    Error('\P{Is_Line_Break=:= _BREAK_symbols}');
+    Expect(1, 47, '\p{Lb=--SY}', "");
+    Expect(0, 47, '\p{^Lb=--SY}', "");
+    Expect(0, 47, '\P{Lb=--SY}', "");
+    Expect(1, 47, '\P{^Lb=--SY}', "");
+    Expect(0, 48, '\p{Lb=--SY}', "");
+    Expect(1, 48, '\p{^Lb=--SY}', "");
+    Expect(1, 48, '\P{Lb=--SY}', "");
+    Expect(0, 48, '\P{^Lb=--SY}', "");
+    Error('\p{Is_Line_Break=/a/--BREAK_SYMBOLS}');
+    Error('\P{Is_Line_Break=/a/--BREAK_SYMBOLS}');
     Expect(1, 47, '\p{Is_Line_Break=breaksymbols}', "");
     Expect(0, 47, '\p{^Is_Line_Break=breaksymbols}', "");
     Expect(0, 47, '\P{Is_Line_Break=breaksymbols}', "");
@@ -65333,16 +65915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 48, '\p{^Is_Line_Break=breaksymbols}', "");
     Expect(1, 48, '\P{Is_Line_Break=breaksymbols}', "");
     Expect(0, 48, '\P{^Is_Line_Break=breaksymbols}', "");
-    Expect(1, 47, '\p{Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(0, 47, '\p{^Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(0, 47, '\P{Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(1, 47, '\P{^Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(0, 48, '\p{Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(1, 48, '\p{^Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(1, 48, '\P{Is_Line_Break=	 Break_SYMBOLS}', "");
-    Expect(0, 48, '\P{^Is_Line_Break=	 Break_SYMBOLS}', "");
-    Error('\p{Is_Lb=  sy/a/}');
-    Error('\P{Is_Lb=  sy/a/}');
+    Expect(1, 47, '\p{Is_Line_Break=		Break_Symbols}', "");
+    Expect(0, 47, '\p{^Is_Line_Break=		Break_Symbols}', "");
+    Expect(0, 47, '\P{Is_Line_Break=		Break_Symbols}', "");
+    Expect(1, 47, '\P{^Is_Line_Break=		Break_Symbols}', "");
+    Expect(0, 48, '\p{Is_Line_Break=		Break_Symbols}', "");
+    Expect(1, 48, '\p{^Is_Line_Break=		Break_Symbols}', "");
+    Expect(1, 48, '\P{Is_Line_Break=		Break_Symbols}', "");
+    Expect(0, 48, '\P{^Is_Line_Break=		Break_Symbols}', "");
+    Error('\p{Is_Lb= SY/a/}');
+    Error('\P{Is_Lb= SY/a/}');
     Expect(1, 47, '\p{Is_Lb=sy}', "");
     Expect(0, 47, '\p{^Is_Lb=sy}', "");
     Expect(0, 47, '\P{Is_Lb=sy}', "");
@@ -65351,16 +65933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 48, '\p{^Is_Lb=sy}', "");
     Expect(1, 48, '\P{Is_Lb=sy}', "");
     Expect(0, 48, '\P{^Is_Lb=sy}', "");
-    Expect(1, 47, '\p{Is_Lb=__SY}', "");
-    Expect(0, 47, '\p{^Is_Lb=__SY}', "");
-    Expect(0, 47, '\P{Is_Lb=__SY}', "");
-    Expect(1, 47, '\P{^Is_Lb=__SY}', "");
-    Expect(0, 48, '\p{Is_Lb=__SY}', "");
-    Expect(1, 48, '\p{^Is_Lb=__SY}', "");
-    Expect(1, 48, '\P{Is_Lb=__SY}', "");
-    Expect(0, 48, '\P{^Is_Lb=__SY}', "");
-    Error('\p{Line_Break=-/a/word_Joiner}');
-    Error('\P{Line_Break=-/a/word_Joiner}');
+    Expect(1, 47, '\p{Is_Lb=	 SY}', "");
+    Expect(0, 47, '\p{^Is_Lb=	 SY}', "");
+    Expect(0, 47, '\P{Is_Lb=	 SY}', "");
+    Expect(1, 47, '\P{^Is_Lb=	 SY}', "");
+    Expect(0, 48, '\p{Is_Lb=	 SY}', "");
+    Expect(1, 48, '\p{^Is_Lb=	 SY}', "");
+    Expect(1, 48, '\P{Is_Lb=	 SY}', "");
+    Expect(0, 48, '\P{^Is_Lb=	 SY}', "");
+    Error('\p{Line_Break=:=--Word_joiner}');
+    Error('\P{Line_Break=:=--Word_joiner}');
     Expect(1, 65279, '\p{Line_Break=:\AWord_Joiner\z:}', "");;
     Expect(0, 65280, '\p{Line_Break=:\AWord_Joiner\z:}', "");;
     Expect(1, 65279, '\p{Line_Break=wordjoiner}', "");
@@ -65373,16 +65955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65280, '\P{^Line_Break=wordjoiner}', "");
     Expect(1, 65279, '\p{Line_Break=:\Awordjoiner\z:}', "");;
     Expect(0, 65280, '\p{Line_Break=:\Awordjoiner\z:}', "");;
-    Expect(1, 65279, '\p{Line_Break=--word_Joiner}', "");
-    Expect(0, 65279, '\p{^Line_Break=--word_Joiner}', "");
-    Expect(0, 65279, '\P{Line_Break=--word_Joiner}', "");
-    Expect(1, 65279, '\P{^Line_Break=--word_Joiner}', "");
-    Expect(0, 65280, '\p{Line_Break=--word_Joiner}', "");
-    Expect(1, 65280, '\p{^Line_Break=--word_Joiner}', "");
-    Expect(1, 65280, '\P{Line_Break=--word_Joiner}', "");
-    Expect(0, 65280, '\P{^Line_Break=--word_Joiner}', "");
-    Error('\p{Lb=/a/WJ}');
-    Error('\P{Lb=/a/WJ}');
+    Expect(1, 65279, '\p{Line_Break=	 Word_Joiner}', "");
+    Expect(0, 65279, '\p{^Line_Break=	 Word_Joiner}', "");
+    Expect(0, 65279, '\P{Line_Break=	 Word_Joiner}', "");
+    Expect(1, 65279, '\P{^Line_Break=	 Word_Joiner}', "");
+    Expect(0, 65280, '\p{Line_Break=	 Word_Joiner}', "");
+    Expect(1, 65280, '\p{^Line_Break=	 Word_Joiner}', "");
+    Expect(1, 65280, '\P{Line_Break=	 Word_Joiner}', "");
+    Expect(0, 65280, '\P{^Line_Break=	 Word_Joiner}', "");
+    Error('\p{Lb=_WJ/a/}');
+    Error('\P{Lb=_WJ/a/}');
     Expect(1, 65279, '\p{Lb=:\AWJ\z:}', "");;
     Expect(0, 65280, '\p{Lb=:\AWJ\z:}', "");;
     Expect(1, 65279, '\p{Lb=wj}', "");
@@ -65395,34 +65977,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 65280, '\P{^Lb=wj}', "");
     Expect(1, 65279, '\p{Lb=:\Awj\z:}', "");;
     Expect(0, 65280, '\p{Lb=:\Awj\z:}', "");;
-    Expect(1, 65279, '\p{Lb=	_WJ}', "");
-    Expect(0, 65279, '\p{^Lb=	_WJ}', "");
-    Expect(0, 65279, '\P{Lb=	_WJ}', "");
-    Expect(1, 65279, '\P{^Lb=	_WJ}', "");
-    Expect(0, 65280, '\p{Lb=	_WJ}', "");
-    Expect(1, 65280, '\p{^Lb=	_WJ}', "");
-    Expect(1, 65280, '\P{Lb=	_WJ}', "");
-    Expect(0, 65280, '\P{^Lb=	_WJ}', "");
-    Error('\p{Is_Line_Break=	:=WORD_joiner}');
-    Error('\P{Is_Line_Break=	:=WORD_joiner}');
-    Expect(1, 65279, '\p{Is_Line_Break:wordjoiner}', "");
-    Expect(0, 65279, '\p{^Is_Line_Break:wordjoiner}', "");
-    Expect(0, 65279, '\P{Is_Line_Break:wordjoiner}', "");
-    Expect(1, 65279, '\P{^Is_Line_Break:wordjoiner}', "");
-    Expect(0, 65280, '\p{Is_Line_Break:wordjoiner}', "");
-    Expect(1, 65280, '\p{^Is_Line_Break:wordjoiner}', "");
-    Expect(1, 65280, '\P{Is_Line_Break:wordjoiner}', "");
-    Expect(0, 65280, '\P{^Is_Line_Break:wordjoiner}', "");
-    Expect(1, 65279, '\p{Is_Line_Break=WORD_Joiner}', "");
-    Expect(0, 65279, '\p{^Is_Line_Break=WORD_Joiner}', "");
-    Expect(0, 65279, '\P{Is_Line_Break=WORD_Joiner}', "");
-    Expect(1, 65279, '\P{^Is_Line_Break=WORD_Joiner}', "");
-    Expect(0, 65280, '\p{Is_Line_Break=WORD_Joiner}', "");
-    Expect(1, 65280, '\p{^Is_Line_Break=WORD_Joiner}', "");
-    Expect(1, 65280, '\P{Is_Line_Break=WORD_Joiner}', "");
-    Expect(0, 65280, '\P{^Is_Line_Break=WORD_Joiner}', "");
-    Error('\p{Is_Lb=:= _wj}');
-    Error('\P{Is_Lb=:= _wj}');
+    Expect(1, 65279, '\p{Lb=_WJ}', "");
+    Expect(0, 65279, '\p{^Lb=_WJ}', "");
+    Expect(0, 65279, '\P{Lb=_WJ}', "");
+    Expect(1, 65279, '\P{^Lb=_WJ}', "");
+    Expect(0, 65280, '\p{Lb=_WJ}', "");
+    Expect(1, 65280, '\p{^Lb=_WJ}', "");
+    Expect(1, 65280, '\P{Lb=_WJ}', "");
+    Expect(0, 65280, '\P{^Lb=_WJ}', "");
+    Error('\p{Is_Line_Break=	/a/Word_JOINER}');
+    Error('\P{Is_Line_Break=	/a/Word_JOINER}');
+    Expect(1, 65279, '\p{Is_Line_Break=wordjoiner}', "");
+    Expect(0, 65279, '\p{^Is_Line_Break=wordjoiner}', "");
+    Expect(0, 65279, '\P{Is_Line_Break=wordjoiner}', "");
+    Expect(1, 65279, '\P{^Is_Line_Break=wordjoiner}', "");
+    Expect(0, 65280, '\p{Is_Line_Break=wordjoiner}', "");
+    Expect(1, 65280, '\p{^Is_Line_Break=wordjoiner}', "");
+    Expect(1, 65280, '\P{Is_Line_Break=wordjoiner}', "");
+    Expect(0, 65280, '\P{^Is_Line_Break=wordjoiner}', "");
+    Expect(1, 65279, '\p{Is_Line_Break=	 word_JOINER}', "");
+    Expect(0, 65279, '\p{^Is_Line_Break=	 word_JOINER}', "");
+    Expect(0, 65279, '\P{Is_Line_Break=	 word_JOINER}', "");
+    Expect(1, 65279, '\P{^Is_Line_Break=	 word_JOINER}', "");
+    Expect(0, 65280, '\p{Is_Line_Break=	 word_JOINER}', "");
+    Expect(1, 65280, '\p{^Is_Line_Break=	 word_JOINER}', "");
+    Expect(1, 65280, '\P{Is_Line_Break=	 word_JOINER}', "");
+    Expect(0, 65280, '\P{^Is_Line_Break=	 word_JOINER}', "");
+    Error('\p{Is_Lb=--WJ/a/}');
+    Error('\P{Is_Lb=--WJ/a/}');
     Expect(1, 65279, '\p{Is_Lb=wj}', "");
     Expect(0, 65279, '\p{^Is_Lb=wj}', "");
     Expect(0, 65279, '\P{Is_Lb=wj}', "");
@@ -65431,16 +66013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 65280, '\p{^Is_Lb=wj}', "");
     Expect(1, 65280, '\P{Is_Lb=wj}', "");
     Expect(0, 65280, '\P{^Is_Lb=wj}', "");
-    Expect(1, 65279, '\p{Is_Lb= wj}', "");
-    Expect(0, 65279, '\p{^Is_Lb= wj}', "");
-    Expect(0, 65279, '\P{Is_Lb= wj}', "");
-    Expect(1, 65279, '\P{^Is_Lb= wj}', "");
-    Expect(0, 65280, '\p{Is_Lb= wj}', "");
-    Expect(1, 65280, '\p{^Is_Lb= wj}', "");
-    Expect(1, 65280, '\P{Is_Lb= wj}', "");
-    Expect(0, 65280, '\P{^Is_Lb= wj}', "");
-    Error('\p{Line_Break= /a/UNKNOWN}');
-    Error('\P{Line_Break= /a/UNKNOWN}');
+    Expect(1, 65279, '\p{Is_Lb=_WJ}', "");
+    Expect(0, 65279, '\p{^Is_Lb=_WJ}', "");
+    Expect(0, 65279, '\P{Is_Lb=_WJ}', "");
+    Expect(1, 65279, '\P{^Is_Lb=_WJ}', "");
+    Expect(0, 65280, '\p{Is_Lb=_WJ}', "");
+    Expect(1, 65280, '\p{^Is_Lb=_WJ}', "");
+    Expect(1, 65280, '\P{Is_Lb=_WJ}', "");
+    Expect(0, 65280, '\P{^Is_Lb=_WJ}', "");
+    Error('\p{Line_Break=/a/- Unknown}');
+    Error('\P{Line_Break=/a/- Unknown}');
     Expect(1, 918000, '\p{Line_Break=:\AUnknown\z:}', "");;
     Expect(0, 917999, '\p{Line_Break=:\AUnknown\z:}', "");;
     Expect(1, 918000, '\p{Line_Break=unknown}', "");
@@ -65453,16 +66035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^Line_Break=unknown}', "");
     Expect(1, 918000, '\p{Line_Break=:\Aunknown\z:}', "");;
     Expect(0, 917999, '\p{Line_Break=:\Aunknown\z:}', "");;
-    Expect(1, 918000, '\p{Line_Break=-	Unknown}', "");
-    Expect(0, 918000, '\p{^Line_Break=-	Unknown}', "");
-    Expect(0, 918000, '\P{Line_Break=-	Unknown}', "");
-    Expect(1, 918000, '\P{^Line_Break=-	Unknown}', "");
-    Expect(0, 917999, '\p{Line_Break=-	Unknown}', "");
-    Expect(1, 917999, '\p{^Line_Break=-	Unknown}', "");
-    Expect(1, 917999, '\P{Line_Break=-	Unknown}', "");
-    Expect(0, 917999, '\P{^Line_Break=-	Unknown}', "");
-    Error('\p{Lb=/a/  XX}');
-    Error('\P{Lb=/a/  XX}');
+    Expect(1, 918000, '\p{Line_Break=-Unknown}', "");
+    Expect(0, 918000, '\p{^Line_Break=-Unknown}', "");
+    Expect(0, 918000, '\P{Line_Break=-Unknown}', "");
+    Expect(1, 918000, '\P{^Line_Break=-Unknown}', "");
+    Expect(0, 917999, '\p{Line_Break=-Unknown}', "");
+    Expect(1, 917999, '\p{^Line_Break=-Unknown}', "");
+    Expect(1, 917999, '\P{Line_Break=-Unknown}', "");
+    Expect(0, 917999, '\P{^Line_Break=-Unknown}', "");
+    Error('\p{Lb=		XX/a/}');
+    Error('\P{Lb=		XX/a/}');
     Expect(1, 918000, '\p{Lb=:\AXX\z:}', "");;
     Expect(0, 917999, '\p{Lb=:\AXX\z:}', "");;
     Expect(1, 918000, '\p{Lb=xx}', "");
@@ -65475,16 +66057,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 917999, '\P{^Lb=xx}', "");
     Expect(1, 918000, '\p{Lb=:\Axx\z:}', "");;
     Expect(0, 917999, '\p{Lb=:\Axx\z:}', "");;
-    Expect(1, 918000, '\p{Lb=--XX}', "");
-    Expect(0, 918000, '\p{^Lb=--XX}', "");
-    Expect(0, 918000, '\P{Lb=--XX}', "");
-    Expect(1, 918000, '\P{^Lb=--XX}', "");
-    Expect(0, 917999, '\p{Lb=--XX}', "");
-    Expect(1, 917999, '\p{^Lb=--XX}', "");
-    Expect(1, 917999, '\P{Lb=--XX}', "");
-    Expect(0, 917999, '\P{^Lb=--XX}', "");
-    Error('\p{Is_Line_Break=-/a/unknown}');
-    Error('\P{Is_Line_Break=-/a/unknown}');
+    Expect(1, 918000, '\p{Lb=XX}', "");
+    Expect(0, 918000, '\p{^Lb=XX}', "");
+    Expect(0, 918000, '\P{Lb=XX}', "");
+    Expect(1, 918000, '\P{^Lb=XX}', "");
+    Expect(0, 917999, '\p{Lb=XX}', "");
+    Expect(1, 917999, '\p{^Lb=XX}', "");
+    Expect(1, 917999, '\P{Lb=XX}', "");
+    Expect(0, 917999, '\P{^Lb=XX}', "");
+    Error('\p{Is_Line_Break=_ UNKNOWN/a/}');
+    Error('\P{Is_Line_Break=_ UNKNOWN/a/}');
     Expect(1, 918000, '\p{Is_Line_Break=unknown}', "");
     Expect(0, 918000, '\p{^Is_Line_Break=unknown}', "");
     Expect(0, 918000, '\P{Is_Line_Break=unknown}', "");
@@ -65493,34 +66075,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 917999, '\p{^Is_Line_Break=unknown}', "");
     Expect(1, 917999, '\P{Is_Line_Break=unknown}', "");
     Expect(0, 917999, '\P{^Is_Line_Break=unknown}', "");
-    Expect(1, 918000, '\p{Is_Line_Break=-unknown}', "");
-    Expect(0, 918000, '\p{^Is_Line_Break=-unknown}', "");
-    Expect(0, 918000, '\P{Is_Line_Break=-unknown}', "");
-    Expect(1, 918000, '\P{^Is_Line_Break=-unknown}', "");
-    Expect(0, 917999, '\p{Is_Line_Break=-unknown}', "");
-    Expect(1, 917999, '\p{^Is_Line_Break=-unknown}', "");
-    Expect(1, 917999, '\P{Is_Line_Break=-unknown}', "");
-    Expect(0, 917999, '\P{^Is_Line_Break=-unknown}', "");
-    Error('\p{Is_Lb= _XX/a/}');
-    Error('\P{Is_Lb= _XX/a/}');
-    Expect(1, 918000, '\p{Is_Lb=xx}', "");
-    Expect(0, 918000, '\p{^Is_Lb=xx}', "");
-    Expect(0, 918000, '\P{Is_Lb=xx}', "");
-    Expect(1, 918000, '\P{^Is_Lb=xx}', "");
-    Expect(0, 917999, '\p{Is_Lb=xx}', "");
-    Expect(1, 917999, '\p{^Is_Lb=xx}', "");
-    Expect(1, 917999, '\P{Is_Lb=xx}', "");
-    Expect(0, 917999, '\P{^Is_Lb=xx}', "");
-    Expect(1, 918000, '\p{Is_Lb=	XX}', "");
-    Expect(0, 918000, '\p{^Is_Lb=	XX}', "");
-    Expect(0, 918000, '\P{Is_Lb=	XX}', "");
-    Expect(1, 918000, '\P{^Is_Lb=	XX}', "");
-    Expect(0, 917999, '\p{Is_Lb=	XX}', "");
-    Expect(1, 917999, '\p{^Is_Lb=	XX}', "");
-    Expect(1, 917999, '\P{Is_Lb=	XX}', "");
-    Expect(0, 917999, '\P{^Is_Lb=	XX}', "");
-    Error('\p{Line_Break= ZWSpace:=}');
-    Error('\P{Line_Break= ZWSpace:=}');
+    Expect(1, 918000, '\p{Is_Line_Break=-	unknown}', "");
+    Expect(0, 918000, '\p{^Is_Line_Break=-	unknown}', "");
+    Expect(0, 918000, '\P{Is_Line_Break=-	unknown}', "");
+    Expect(1, 918000, '\P{^Is_Line_Break=-	unknown}', "");
+    Expect(0, 917999, '\p{Is_Line_Break=-	unknown}', "");
+    Expect(1, 917999, '\p{^Is_Line_Break=-	unknown}', "");
+    Expect(1, 917999, '\P{Is_Line_Break=-	unknown}', "");
+    Expect(0, 917999, '\P{^Is_Line_Break=-	unknown}', "");
+    Error('\p{Is_Lb=_-XX:=}');
+    Error('\P{Is_Lb=_-XX:=}');
+    Expect(1, 918000, '\p{Is_Lb: xx}', "");
+    Expect(0, 918000, '\p{^Is_Lb: xx}', "");
+    Expect(0, 918000, '\P{Is_Lb: xx}', "");
+    Expect(1, 918000, '\P{^Is_Lb: xx}', "");
+    Expect(0, 917999, '\p{Is_Lb: xx}', "");
+    Expect(1, 917999, '\p{^Is_Lb: xx}', "");
+    Expect(1, 917999, '\P{Is_Lb: xx}', "");
+    Expect(0, 917999, '\P{^Is_Lb: xx}', "");
+    Expect(1, 918000, '\p{Is_Lb:   		XX}', "");
+    Expect(0, 918000, '\p{^Is_Lb:   		XX}', "");
+    Expect(0, 918000, '\P{Is_Lb:   		XX}', "");
+    Expect(1, 918000, '\P{^Is_Lb:   		XX}', "");
+    Expect(0, 917999, '\p{Is_Lb:   		XX}', "");
+    Expect(1, 917999, '\p{^Is_Lb:   		XX}', "");
+    Expect(1, 917999, '\P{Is_Lb:   		XX}', "");
+    Expect(0, 917999, '\P{^Is_Lb:   		XX}', "");
+    Error('\p{Line_Break= :=ZWSpace}');
+    Error('\P{Line_Break= :=ZWSpace}');
     Expect(1, 8203, '\p{Line_Break=:\AZWSpace\z:}', "");;
     Expect(0, 8204, '\p{Line_Break=:\AZWSpace\z:}', "");;
     Expect(1, 8203, '\p{Line_Break=zwspace}', "");
@@ -65533,38 +66115,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8204, '\P{^Line_Break=zwspace}', "");
     Expect(1, 8203, '\p{Line_Break=:\Azwspace\z:}', "");;
     Expect(0, 8204, '\p{Line_Break=:\Azwspace\z:}', "");;
-    Expect(1, 8203, '\p{Line_Break= -ZWSpace}', "");
-    Expect(0, 8203, '\p{^Line_Break= -ZWSpace}', "");
-    Expect(0, 8203, '\P{Line_Break= -ZWSpace}', "");
-    Expect(1, 8203, '\P{^Line_Break= -ZWSpace}', "");
-    Expect(0, 8204, '\p{Line_Break= -ZWSpace}', "");
-    Expect(1, 8204, '\p{^Line_Break= -ZWSpace}', "");
-    Expect(1, 8204, '\P{Line_Break= -ZWSpace}', "");
-    Expect(0, 8204, '\P{^Line_Break= -ZWSpace}', "");
-    Error('\p{Lb=_/a/ZW}');
-    Error('\P{Lb=_/a/ZW}');
+    Expect(1, 8203, '\p{Line_Break=-_ZWSPACE}', "");
+    Expect(0, 8203, '\p{^Line_Break=-_ZWSPACE}', "");
+    Expect(0, 8203, '\P{Line_Break=-_ZWSPACE}', "");
+    Expect(1, 8203, '\P{^Line_Break=-_ZWSPACE}', "");
+    Expect(0, 8204, '\p{Line_Break=-_ZWSPACE}', "");
+    Expect(1, 8204, '\p{^Line_Break=-_ZWSPACE}', "");
+    Expect(1, 8204, '\P{Line_Break=-_ZWSPACE}', "");
+    Expect(0, 8204, '\P{^Line_Break=-_ZWSPACE}', "");
+    Error('\p{Lb=	ZW:=}');
+    Error('\P{Lb=	ZW:=}');
     Expect(1, 8203, '\p{Lb=:\AZW\z:}', "");;
     Expect(0, 8204, '\p{Lb=:\AZW\z:}', "");;
-    Expect(1, 8203, '\p{Lb=zw}', "");
-    Expect(0, 8203, '\p{^Lb=zw}', "");
-    Expect(0, 8203, '\P{Lb=zw}', "");
-    Expect(1, 8203, '\P{^Lb=zw}', "");
-    Expect(0, 8204, '\p{Lb=zw}', "");
-    Expect(1, 8204, '\p{^Lb=zw}', "");
-    Expect(1, 8204, '\P{Lb=zw}', "");
-    Expect(0, 8204, '\P{^Lb=zw}', "");
+    Expect(1, 8203, '\p{Lb: zw}', "");
+    Expect(0, 8203, '\p{^Lb: zw}', "");
+    Expect(0, 8203, '\P{Lb: zw}', "");
+    Expect(1, 8203, '\P{^Lb: zw}', "");
+    Expect(0, 8204, '\p{Lb: zw}', "");
+    Expect(1, 8204, '\p{^Lb: zw}', "");
+    Expect(1, 8204, '\P{Lb: zw}', "");
+    Expect(0, 8204, '\P{^Lb: zw}', "");
     Expect(1, 8203, '\p{Lb=:\Azw\z:}', "");;
     Expect(0, 8204, '\p{Lb=:\Azw\z:}', "");;
-    Expect(1, 8203, '\p{Lb=-	ZW}', "");
-    Expect(0, 8203, '\p{^Lb=-	ZW}', "");
-    Expect(0, 8203, '\P{Lb=-	ZW}', "");
-    Expect(1, 8203, '\P{^Lb=-	ZW}', "");
-    Expect(0, 8204, '\p{Lb=-	ZW}', "");
-    Expect(1, 8204, '\p{^Lb=-	ZW}', "");
-    Expect(1, 8204, '\P{Lb=-	ZW}', "");
-    Expect(0, 8204, '\P{^Lb=-	ZW}', "");
-    Error('\p{Is_Line_Break=/a/ zwspace}');
-    Error('\P{Is_Line_Break=/a/ zwspace}');
+    Expect(1, 8203, '\p{Lb= 	ZW}', "");
+    Expect(0, 8203, '\p{^Lb= 	ZW}', "");
+    Expect(0, 8203, '\P{Lb= 	ZW}', "");
+    Expect(1, 8203, '\P{^Lb= 	ZW}', "");
+    Expect(0, 8204, '\p{Lb= 	ZW}', "");
+    Expect(1, 8204, '\p{^Lb= 	ZW}', "");
+    Expect(1, 8204, '\P{Lb= 	ZW}', "");
+    Expect(0, 8204, '\P{^Lb= 	ZW}', "");
+    Error('\p{Is_Line_Break=	 ZWSpace/a/}');
+    Error('\P{Is_Line_Break=	 ZWSpace/a/}');
     Expect(1, 8203, '\p{Is_Line_Break=zwspace}', "");
     Expect(0, 8203, '\p{^Is_Line_Break=zwspace}', "");
     Expect(0, 8203, '\P{Is_Line_Break=zwspace}', "");
@@ -65573,16 +66155,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8204, '\p{^Is_Line_Break=zwspace}', "");
     Expect(1, 8204, '\P{Is_Line_Break=zwspace}', "");
     Expect(0, 8204, '\P{^Is_Line_Break=zwspace}', "");
-    Expect(1, 8203, '\p{Is_Line_Break=-_zwspace}', "");
-    Expect(0, 8203, '\p{^Is_Line_Break=-_zwspace}', "");
-    Expect(0, 8203, '\P{Is_Line_Break=-_zwspace}', "");
-    Expect(1, 8203, '\P{^Is_Line_Break=-_zwspace}', "");
-    Expect(0, 8204, '\p{Is_Line_Break=-_zwspace}', "");
-    Expect(1, 8204, '\p{^Is_Line_Break=-_zwspace}', "");
-    Expect(1, 8204, '\P{Is_Line_Break=-_zwspace}', "");
-    Expect(0, 8204, '\P{^Is_Line_Break=-_zwspace}', "");
-    Error('\p{Is_Lb=/a/ _ZW}');
-    Error('\P{Is_Lb=/a/ _ZW}');
+    Expect(1, 8203, '\p{Is_Line_Break=	ZWSpace}', "");
+    Expect(0, 8203, '\p{^Is_Line_Break=	ZWSpace}', "");
+    Expect(0, 8203, '\P{Is_Line_Break=	ZWSpace}', "");
+    Expect(1, 8203, '\P{^Is_Line_Break=	ZWSpace}', "");
+    Expect(0, 8204, '\p{Is_Line_Break=	ZWSpace}', "");
+    Expect(1, 8204, '\p{^Is_Line_Break=	ZWSpace}', "");
+    Expect(1, 8204, '\P{Is_Line_Break=	ZWSpace}', "");
+    Expect(0, 8204, '\P{^Is_Line_Break=	ZWSpace}', "");
+    Error('\p{Is_Lb=	-zw:=}');
+    Error('\P{Is_Lb=	-zw:=}');
     Expect(1, 8203, '\p{Is_Lb=zw}', "");
     Expect(0, 8203, '\p{^Is_Lb=zw}', "");
     Expect(0, 8203, '\P{Is_Lb=zw}', "");
@@ -65591,16 +66173,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8204, '\p{^Is_Lb=zw}', "");
     Expect(1, 8204, '\P{Is_Lb=zw}', "");
     Expect(0, 8204, '\P{^Is_Lb=zw}', "");
-    Expect(1, 8203, '\p{Is_Lb=ZW}', "");
-    Expect(0, 8203, '\p{^Is_Lb=ZW}', "");
-    Expect(0, 8203, '\P{Is_Lb=ZW}', "");
-    Expect(1, 8203, '\P{^Is_Lb=ZW}', "");
-    Expect(0, 8204, '\p{Is_Lb=ZW}', "");
-    Expect(1, 8204, '\p{^Is_Lb=ZW}', "");
-    Expect(1, 8204, '\P{Is_Lb=ZW}', "");
-    Expect(0, 8204, '\P{^Is_Lb=ZW}', "");
-    Error('\p{Line_Break=:= 	ZWJ}');
-    Error('\P{Line_Break=:= 	ZWJ}');
+    Expect(1, 8203, '\p{Is_Lb= zw}', "");
+    Expect(0, 8203, '\p{^Is_Lb= zw}', "");
+    Expect(0, 8203, '\P{Is_Lb= zw}', "");
+    Expect(1, 8203, '\P{^Is_Lb= zw}', "");
+    Expect(0, 8204, '\p{Is_Lb= zw}', "");
+    Expect(1, 8204, '\p{^Is_Lb= zw}', "");
+    Expect(1, 8204, '\P{Is_Lb= zw}', "");
+    Expect(0, 8204, '\P{^Is_Lb= zw}', "");
+    Error('\p{Line_Break=:=ZWJ}');
+    Error('\P{Line_Break=:=ZWJ}');
     Expect(1, 8205, '\p{Line_Break=:\AZWJ\z:}', "");;
     Expect(0, 8206, '\p{Line_Break=:\AZWJ\z:}', "");;
     Expect(1, 8205, '\p{Line_Break=zwj}', "");
@@ -65613,38 +66195,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8206, '\P{^Line_Break=zwj}', "");
     Expect(1, 8205, '\p{Line_Break=:\Azwj\z:}', "");;
     Expect(0, 8206, '\p{Line_Break=:\Azwj\z:}', "");;
-    Expect(1, 8205, '\p{Line_Break=	 ZWJ}', "");
-    Expect(0, 8205, '\p{^Line_Break=	 ZWJ}', "");
-    Expect(0, 8205, '\P{Line_Break=	 ZWJ}', "");
-    Expect(1, 8205, '\P{^Line_Break=	 ZWJ}', "");
-    Expect(0, 8206, '\p{Line_Break=	 ZWJ}', "");
-    Expect(1, 8206, '\p{^Line_Break=	 ZWJ}', "");
-    Expect(1, 8206, '\P{Line_Break=	 ZWJ}', "");
-    Expect(0, 8206, '\P{^Line_Break=	 ZWJ}', "");
-    Error('\p{Lb=_ zwj/a/}');
-    Error('\P{Lb=_ zwj/a/}');
+    Expect(1, 8205, '\p{Line_Break=	ZWJ}', "");
+    Expect(0, 8205, '\p{^Line_Break=	ZWJ}', "");
+    Expect(0, 8205, '\P{Line_Break=	ZWJ}', "");
+    Expect(1, 8205, '\P{^Line_Break=	ZWJ}', "");
+    Expect(0, 8206, '\p{Line_Break=	ZWJ}', "");
+    Expect(1, 8206, '\p{^Line_Break=	ZWJ}', "");
+    Expect(1, 8206, '\P{Line_Break=	ZWJ}', "");
+    Expect(0, 8206, '\P{^Line_Break=	ZWJ}', "");
+    Error('\p{Lb=-/a/ZWJ}');
+    Error('\P{Lb=-/a/ZWJ}');
     Expect(1, 8205, '\p{Lb=:\AZWJ\z:}', "");;
     Expect(0, 8206, '\p{Lb=:\AZWJ\z:}', "");;
-    Expect(1, 8205, '\p{Lb:zwj}', "");
-    Expect(0, 8205, '\p{^Lb:zwj}', "");
-    Expect(0, 8205, '\P{Lb:zwj}', "");
-    Expect(1, 8205, '\P{^Lb:zwj}', "");
-    Expect(0, 8206, '\p{Lb:zwj}', "");
-    Expect(1, 8206, '\p{^Lb:zwj}', "");
-    Expect(1, 8206, '\P{Lb:zwj}', "");
-    Expect(0, 8206, '\P{^Lb:zwj}', "");
+    Expect(1, 8205, '\p{Lb=zwj}', "");
+    Expect(0, 8205, '\p{^Lb=zwj}', "");
+    Expect(0, 8205, '\P{Lb=zwj}', "");
+    Expect(1, 8205, '\P{^Lb=zwj}', "");
+    Expect(0, 8206, '\p{Lb=zwj}', "");
+    Expect(1, 8206, '\p{^Lb=zwj}', "");
+    Expect(1, 8206, '\P{Lb=zwj}', "");
+    Expect(0, 8206, '\P{^Lb=zwj}', "");
     Expect(1, 8205, '\p{Lb=:\Azwj\z:}', "");;
     Expect(0, 8206, '\p{Lb=:\Azwj\z:}', "");;
-    Expect(1, 8205, '\p{Lb=- zwj}', "");
-    Expect(0, 8205, '\p{^Lb=- zwj}', "");
-    Expect(0, 8205, '\P{Lb=- zwj}', "");
-    Expect(1, 8205, '\P{^Lb=- zwj}', "");
-    Expect(0, 8206, '\p{Lb=- zwj}', "");
-    Expect(1, 8206, '\p{^Lb=- zwj}', "");
-    Expect(1, 8206, '\P{Lb=- zwj}', "");
-    Expect(0, 8206, '\P{^Lb=- zwj}', "");
-    Error('\p{Is_Line_Break=/a/ 	ZWJ}');
-    Error('\P{Is_Line_Break=/a/ 	ZWJ}');
+    Expect(1, 8205, '\p{Lb=_	ZWJ}', "");
+    Expect(0, 8205, '\p{^Lb=_	ZWJ}', "");
+    Expect(0, 8205, '\P{Lb=_	ZWJ}', "");
+    Expect(1, 8205, '\P{^Lb=_	ZWJ}', "");
+    Expect(0, 8206, '\p{Lb=_	ZWJ}', "");
+    Expect(1, 8206, '\p{^Lb=_	ZWJ}', "");
+    Expect(1, 8206, '\P{Lb=_	ZWJ}', "");
+    Expect(0, 8206, '\P{^Lb=_	ZWJ}', "");
+    Error('\p{Is_Line_Break=:=-ZWJ}');
+    Error('\P{Is_Line_Break=:=-ZWJ}');
     Expect(1, 8205, '\p{Is_Line_Break=zwj}', "");
     Expect(0, 8205, '\p{^Is_Line_Break=zwj}', "");
     Expect(0, 8205, '\P{Is_Line_Break=zwj}', "");
@@ -65653,58 +66235,58 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8206, '\p{^Is_Line_Break=zwj}', "");
     Expect(1, 8206, '\P{Is_Line_Break=zwj}', "");
     Expect(0, 8206, '\P{^Is_Line_Break=zwj}', "");
-    Expect(1, 8205, '\p{Is_Line_Break=__zwj}', "");
-    Expect(0, 8205, '\p{^Is_Line_Break=__zwj}', "");
-    Expect(0, 8205, '\P{Is_Line_Break=__zwj}', "");
-    Expect(1, 8205, '\P{^Is_Line_Break=__zwj}', "");
-    Expect(0, 8206, '\p{Is_Line_Break=__zwj}', "");
-    Expect(1, 8206, '\p{^Is_Line_Break=__zwj}', "");
-    Expect(1, 8206, '\P{Is_Line_Break=__zwj}', "");
-    Expect(0, 8206, '\P{^Is_Line_Break=__zwj}', "");
-    Error('\p{Is_Lb=_	ZWJ:=}');
-    Error('\P{Is_Lb=_	ZWJ:=}');
-    Expect(1, 8205, '\p{Is_Lb=zwj}', "");
-    Expect(0, 8205, '\p{^Is_Lb=zwj}', "");
-    Expect(0, 8205, '\P{Is_Lb=zwj}', "");
-    Expect(1, 8205, '\P{^Is_Lb=zwj}', "");
-    Expect(0, 8206, '\p{Is_Lb=zwj}', "");
-    Expect(1, 8206, '\p{^Is_Lb=zwj}', "");
-    Expect(1, 8206, '\P{Is_Lb=zwj}', "");
-    Expect(0, 8206, '\P{^Is_Lb=zwj}', "");
-    Expect(1, 8205, '\p{Is_Lb: _ zwj}', "");
-    Expect(0, 8205, '\p{^Is_Lb: _ zwj}', "");
-    Expect(0, 8205, '\P{Is_Lb: _ zwj}', "");
-    Expect(1, 8205, '\P{^Is_Lb: _ zwj}', "");
-    Expect(0, 8206, '\p{Is_Lb: _ zwj}', "");
-    Expect(1, 8206, '\p{^Is_Lb: _ zwj}', "");
-    Expect(1, 8206, '\P{Is_Lb: _ zwj}', "");
-    Expect(0, 8206, '\P{^Is_Lb: _ zwj}', "");
+    Expect(1, 8205, '\p{Is_Line_Break=		ZWJ}', "");
+    Expect(0, 8205, '\p{^Is_Line_Break=		ZWJ}', "");
+    Expect(0, 8205, '\P{Is_Line_Break=		ZWJ}', "");
+    Expect(1, 8205, '\P{^Is_Line_Break=		ZWJ}', "");
+    Expect(0, 8206, '\p{Is_Line_Break=		ZWJ}', "");
+    Expect(1, 8206, '\p{^Is_Line_Break=		ZWJ}', "");
+    Expect(1, 8206, '\P{Is_Line_Break=		ZWJ}', "");
+    Expect(0, 8206, '\P{^Is_Line_Break=		ZWJ}', "");
+    Error('\p{Is_Lb=/a/_-ZWJ}');
+    Error('\P{Is_Lb=/a/_-ZWJ}');
+    Expect(1, 8205, '\p{Is_Lb:   zwj}', "");
+    Expect(0, 8205, '\p{^Is_Lb:   zwj}', "");
+    Expect(0, 8205, '\P{Is_Lb:   zwj}', "");
+    Expect(1, 8205, '\P{^Is_Lb:   zwj}', "");
+    Expect(0, 8206, '\p{Is_Lb:   zwj}', "");
+    Expect(1, 8206, '\p{^Is_Lb:   zwj}', "");
+    Expect(1, 8206, '\P{Is_Lb:   zwj}', "");
+    Expect(0, 8206, '\P{^Is_Lb:   zwj}', "");
+    Expect(1, 8205, '\p{Is_Lb= _zwj}', "");
+    Expect(0, 8205, '\p{^Is_Lb= _zwj}', "");
+    Expect(0, 8205, '\P{Is_Lb= _zwj}', "");
+    Expect(1, 8205, '\P{^Is_Lb= _zwj}', "");
+    Expect(0, 8206, '\p{Is_Lb= _zwj}', "");
+    Expect(1, 8206, '\p{^Is_Lb= _zwj}', "");
+    Expect(1, 8206, '\P{Is_Lb= _zwj}', "");
+    Expect(0, 8206, '\P{^Is_Lb= _zwj}', "");
     Error('\p{lowercasemapping}');
     Error('\P{lowercasemapping}');
-    Error('\p{Logical_Order_Exception=	:=No}');
-    Error('\P{Logical_Order_Exception=	:=No}');
+    Error('\p{Logical_Order_Exception=-no/a/}');
+    Error('\P{Logical_Order_Exception=-no/a/}');
     Expect(1, 43709, '\p{Logical_Order_Exception=:\ANo\z:}', "");;
     Expect(0, 43708, '\p{Logical_Order_Exception=:\ANo\z:}', "");;
-    Expect(1, 43709, '\p{Logical_Order_Exception=no}', "");
-    Expect(0, 43709, '\p{^Logical_Order_Exception=no}', "");
-    Expect(0, 43709, '\P{Logical_Order_Exception=no}', "");
-    Expect(1, 43709, '\P{^Logical_Order_Exception=no}', "");
-    Expect(0, 43708, '\p{Logical_Order_Exception=no}', "");
-    Expect(1, 43708, '\p{^Logical_Order_Exception=no}', "");
-    Expect(1, 43708, '\P{Logical_Order_Exception=no}', "");
-    Expect(0, 43708, '\P{^Logical_Order_Exception=no}', "");
+    Expect(1, 43709, '\p{Logical_Order_Exception:	no}', "");
+    Expect(0, 43709, '\p{^Logical_Order_Exception:	no}', "");
+    Expect(0, 43709, '\P{Logical_Order_Exception:	no}', "");
+    Expect(1, 43709, '\P{^Logical_Order_Exception:	no}', "");
+    Expect(0, 43708, '\p{Logical_Order_Exception:	no}', "");
+    Expect(1, 43708, '\p{^Logical_Order_Exception:	no}', "");
+    Expect(1, 43708, '\P{Logical_Order_Exception:	no}', "");
+    Expect(0, 43708, '\P{^Logical_Order_Exception:	no}', "");
     Expect(1, 43709, '\p{Logical_Order_Exception=:\Ano\z:}', "");;
     Expect(0, 43708, '\p{Logical_Order_Exception=:\Ano\z:}', "");;
-    Expect(1, 43709, '\p{Logical_Order_Exception:	-NO}', "");
-    Expect(0, 43709, '\p{^Logical_Order_Exception:	-NO}', "");
-    Expect(0, 43709, '\P{Logical_Order_Exception:	-NO}', "");
-    Expect(1, 43709, '\P{^Logical_Order_Exception:	-NO}', "");
-    Expect(0, 43708, '\p{Logical_Order_Exception:	-NO}', "");
-    Expect(1, 43708, '\p{^Logical_Order_Exception:	-NO}', "");
-    Expect(1, 43708, '\P{Logical_Order_Exception:	-NO}', "");
-    Expect(0, 43708, '\P{^Logical_Order_Exception:	-NO}', "");
-    Error('\p{LOE:    :=N}');
-    Error('\P{LOE:    :=N}');
+    Expect(1, 43709, '\p{Logical_Order_Exception:__no}', "");
+    Expect(0, 43709, '\p{^Logical_Order_Exception:__no}', "");
+    Expect(0, 43709, '\P{Logical_Order_Exception:__no}', "");
+    Expect(1, 43709, '\P{^Logical_Order_Exception:__no}', "");
+    Expect(0, 43708, '\p{Logical_Order_Exception:__no}', "");
+    Expect(1, 43708, '\p{^Logical_Order_Exception:__no}', "");
+    Expect(1, 43708, '\P{Logical_Order_Exception:__no}', "");
+    Expect(0, 43708, '\P{^Logical_Order_Exception:__no}', "");
+    Error('\p{LOE=:=n}');
+    Error('\P{LOE=:=n}');
     Expect(1, 43709, '\p{LOE=:\AN\z:}', "");;
     Expect(0, 43708, '\p{LOE=:\AN\z:}', "");;
     Expect(1, 43709, '\p{LOE=n}', "");
@@ -65717,16 +66299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43708, '\P{^LOE=n}', "");
     Expect(1, 43709, '\p{LOE=:\An\z:}', "");;
     Expect(0, 43708, '\p{LOE=:\An\z:}', "");;
-    Expect(1, 43709, '\p{LOE=-_N}', "");
-    Expect(0, 43709, '\p{^LOE=-_N}', "");
-    Expect(0, 43709, '\P{LOE=-_N}', "");
-    Expect(1, 43709, '\P{^LOE=-_N}', "");
-    Expect(0, 43708, '\p{LOE=-_N}', "");
-    Expect(1, 43708, '\p{^LOE=-_N}', "");
-    Expect(1, 43708, '\P{LOE=-_N}', "");
-    Expect(0, 43708, '\P{^LOE=-_N}', "");
-    Error('\p{Is_Logical_Order_Exception=/a/	F}');
-    Error('\P{Is_Logical_Order_Exception=/a/	F}');
+    Expect(1, 43709, '\p{LOE=_	N}', "");
+    Expect(0, 43709, '\p{^LOE=_	N}', "");
+    Expect(0, 43709, '\P{LOE=_	N}', "");
+    Expect(1, 43709, '\P{^LOE=_	N}', "");
+    Expect(0, 43708, '\p{LOE=_	N}', "");
+    Expect(1, 43708, '\p{^LOE=_	N}', "");
+    Expect(1, 43708, '\P{LOE=_	N}', "");
+    Expect(0, 43708, '\P{^LOE=_	N}', "");
+    Error('\p{Is_Logical_Order_Exception=/a/		F}');
+    Error('\P{Is_Logical_Order_Exception=/a/		F}');
     Expect(1, 43709, '\p{Is_Logical_Order_Exception=f}', "");
     Expect(0, 43709, '\p{^Is_Logical_Order_Exception=f}', "");
     Expect(0, 43709, '\P{Is_Logical_Order_Exception=f}', "");
@@ -65735,34 +66317,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43708, '\p{^Is_Logical_Order_Exception=f}', "");
     Expect(1, 43708, '\P{Is_Logical_Order_Exception=f}', "");
     Expect(0, 43708, '\P{^Is_Logical_Order_Exception=f}', "");
-    Expect(1, 43709, '\p{Is_Logical_Order_Exception=	_F}', "");
-    Expect(0, 43709, '\p{^Is_Logical_Order_Exception=	_F}', "");
-    Expect(0, 43709, '\P{Is_Logical_Order_Exception=	_F}', "");
-    Expect(1, 43709, '\P{^Is_Logical_Order_Exception=	_F}', "");
-    Expect(0, 43708, '\p{Is_Logical_Order_Exception=	_F}', "");
-    Expect(1, 43708, '\p{^Is_Logical_Order_Exception=	_F}', "");
-    Expect(1, 43708, '\P{Is_Logical_Order_Exception=	_F}', "");
-    Expect(0, 43708, '\P{^Is_Logical_Order_Exception=	_F}', "");
-    Error('\p{Is_LOE=_False/a/}');
-    Error('\P{Is_LOE=_False/a/}');
-    Expect(1, 43709, '\p{Is_LOE:   false}', "");
-    Expect(0, 43709, '\p{^Is_LOE:   false}', "");
-    Expect(0, 43709, '\P{Is_LOE:   false}', "");
-    Expect(1, 43709, '\P{^Is_LOE:   false}', "");
-    Expect(0, 43708, '\p{Is_LOE:   false}', "");
-    Expect(1, 43708, '\p{^Is_LOE:   false}', "");
-    Expect(1, 43708, '\P{Is_LOE:   false}', "");
-    Expect(0, 43708, '\P{^Is_LOE:   false}', "");
-    Expect(1, 43709, '\p{Is_LOE=-_FALSE}', "");
-    Expect(0, 43709, '\p{^Is_LOE=-_FALSE}', "");
-    Expect(0, 43709, '\P{Is_LOE=-_FALSE}', "");
-    Expect(1, 43709, '\P{^Is_LOE=-_FALSE}', "");
-    Expect(0, 43708, '\p{Is_LOE=-_FALSE}', "");
-    Expect(1, 43708, '\p{^Is_LOE=-_FALSE}', "");
-    Expect(1, 43708, '\P{Is_LOE=-_FALSE}', "");
-    Expect(0, 43708, '\P{^Is_LOE=-_FALSE}', "");
-    Error('\p{Logical_Order_Exception=	:=Yes}');
-    Error('\P{Logical_Order_Exception=	:=Yes}');
+    Expect(1, 43709, '\p{Is_Logical_Order_Exception= 	F}', "");
+    Expect(0, 43709, '\p{^Is_Logical_Order_Exception= 	F}', "");
+    Expect(0, 43709, '\P{Is_Logical_Order_Exception= 	F}', "");
+    Expect(1, 43709, '\P{^Is_Logical_Order_Exception= 	F}', "");
+    Expect(0, 43708, '\p{Is_Logical_Order_Exception= 	F}', "");
+    Expect(1, 43708, '\p{^Is_Logical_Order_Exception= 	F}', "");
+    Expect(1, 43708, '\P{Is_Logical_Order_Exception= 	F}', "");
+    Expect(0, 43708, '\P{^Is_Logical_Order_Exception= 	F}', "");
+    Error('\p{Is_LOE=:=	 FALSE}');
+    Error('\P{Is_LOE=:=	 FALSE}');
+    Expect(1, 43709, '\p{Is_LOE=false}', "");
+    Expect(0, 43709, '\p{^Is_LOE=false}', "");
+    Expect(0, 43709, '\P{Is_LOE=false}', "");
+    Expect(1, 43709, '\P{^Is_LOE=false}', "");
+    Expect(0, 43708, '\p{Is_LOE=false}', "");
+    Expect(1, 43708, '\p{^Is_LOE=false}', "");
+    Expect(1, 43708, '\P{Is_LOE=false}', "");
+    Expect(0, 43708, '\P{^Is_LOE=false}', "");
+    Expect(1, 43709, '\p{Is_LOE:   __False}', "");
+    Expect(0, 43709, '\p{^Is_LOE:   __False}', "");
+    Expect(0, 43709, '\P{Is_LOE:   __False}', "");
+    Expect(1, 43709, '\P{^Is_LOE:   __False}', "");
+    Expect(0, 43708, '\p{Is_LOE:   __False}', "");
+    Expect(1, 43708, '\p{^Is_LOE:   __False}', "");
+    Expect(1, 43708, '\P{Is_LOE:   __False}', "");
+    Expect(0, 43708, '\P{^Is_LOE:   __False}', "");
+    Error('\p{Logical_Order_Exception=/a/yes}');
+    Error('\P{Logical_Order_Exception=/a/yes}');
     Expect(1, 43708, '\p{Logical_Order_Exception=:\AYes\z:}', "");;
     Expect(0, 43709, '\p{Logical_Order_Exception=:\AYes\z:}', "");;
     Expect(1, 43708, '\p{Logical_Order_Exception=yes}', "");
@@ -65775,16 +66357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43709, '\P{^Logical_Order_Exception=yes}', "");
     Expect(1, 43708, '\p{Logical_Order_Exception=:\Ayes\z:}', "");;
     Expect(0, 43709, '\p{Logical_Order_Exception=:\Ayes\z:}', "");;
-    Expect(1, 43708, '\p{Logical_Order_Exception= _Yes}', "");
-    Expect(0, 43708, '\p{^Logical_Order_Exception= _Yes}', "");
-    Expect(0, 43708, '\P{Logical_Order_Exception= _Yes}', "");
-    Expect(1, 43708, '\P{^Logical_Order_Exception= _Yes}', "");
-    Expect(0, 43709, '\p{Logical_Order_Exception= _Yes}', "");
-    Expect(1, 43709, '\p{^Logical_Order_Exception= _Yes}', "");
-    Expect(1, 43709, '\P{Logical_Order_Exception= _Yes}', "");
-    Expect(0, 43709, '\P{^Logical_Order_Exception= _Yes}', "");
-    Error('\p{LOE=/a/Y}');
-    Error('\P{LOE=/a/Y}');
+    Expect(1, 43708, '\p{Logical_Order_Exception=  Yes}', "");
+    Expect(0, 43708, '\p{^Logical_Order_Exception=  Yes}', "");
+    Expect(0, 43708, '\P{Logical_Order_Exception=  Yes}', "");
+    Expect(1, 43708, '\P{^Logical_Order_Exception=  Yes}', "");
+    Expect(0, 43709, '\p{Logical_Order_Exception=  Yes}', "");
+    Expect(1, 43709, '\p{^Logical_Order_Exception=  Yes}', "");
+    Expect(1, 43709, '\P{Logical_Order_Exception=  Yes}', "");
+    Expect(0, 43709, '\P{^Logical_Order_Exception=  Yes}', "");
+    Error('\p{LOE=/a/  y}');
+    Error('\P{LOE=/a/  y}');
     Expect(1, 43708, '\p{LOE=:\AY\z:}', "");;
     Expect(0, 43709, '\p{LOE=:\AY\z:}', "");;
     Expect(1, 43708, '\p{LOE=y}', "");
@@ -65797,16 +66379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 43709, '\P{^LOE=y}', "");
     Expect(1, 43708, '\p{LOE=:\Ay\z:}', "");;
     Expect(0, 43709, '\p{LOE=:\Ay\z:}', "");;
-    Expect(1, 43708, '\p{LOE:__y}', "");
-    Expect(0, 43708, '\p{^LOE:__y}', "");
-    Expect(0, 43708, '\P{LOE:__y}', "");
-    Expect(1, 43708, '\P{^LOE:__y}', "");
-    Expect(0, 43709, '\p{LOE:__y}', "");
-    Expect(1, 43709, '\p{^LOE:__y}', "");
-    Expect(1, 43709, '\P{LOE:__y}', "");
-    Expect(0, 43709, '\P{^LOE:__y}', "");
-    Error('\p{Is_Logical_Order_Exception=_T:=}');
-    Error('\P{Is_Logical_Order_Exception=_T:=}');
+    Expect(1, 43708, '\p{LOE=	 y}', "");
+    Expect(0, 43708, '\p{^LOE=	 y}', "");
+    Expect(0, 43708, '\P{LOE=	 y}', "");
+    Expect(1, 43708, '\P{^LOE=	 y}', "");
+    Expect(0, 43709, '\p{LOE=	 y}', "");
+    Expect(1, 43709, '\p{^LOE=	 y}', "");
+    Expect(1, 43709, '\P{LOE=	 y}', "");
+    Expect(0, 43709, '\P{^LOE=	 y}', "");
+    Error('\p{Is_Logical_Order_Exception=_/a/T}');
+    Error('\P{Is_Logical_Order_Exception=_/a/T}');
     Expect(1, 43708, '\p{Is_Logical_Order_Exception=t}', "");
     Expect(0, 43708, '\p{^Is_Logical_Order_Exception=t}', "");
     Expect(0, 43708, '\P{Is_Logical_Order_Exception=t}', "");
@@ -65815,16 +66397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43709, '\p{^Is_Logical_Order_Exception=t}', "");
     Expect(1, 43709, '\P{Is_Logical_Order_Exception=t}', "");
     Expect(0, 43709, '\P{^Is_Logical_Order_Exception=t}', "");
-    Expect(1, 43708, '\p{Is_Logical_Order_Exception=	T}', "");
-    Expect(0, 43708, '\p{^Is_Logical_Order_Exception=	T}', "");
-    Expect(0, 43708, '\P{Is_Logical_Order_Exception=	T}', "");
-    Expect(1, 43708, '\P{^Is_Logical_Order_Exception=	T}', "");
-    Expect(0, 43709, '\p{Is_Logical_Order_Exception=	T}', "");
-    Expect(1, 43709, '\p{^Is_Logical_Order_Exception=	T}', "");
-    Expect(1, 43709, '\P{Is_Logical_Order_Exception=	T}', "");
-    Expect(0, 43709, '\P{^Is_Logical_Order_Exception=	T}', "");
-    Error('\p{Is_LOE=_True/a/}');
-    Error('\P{Is_LOE=_True/a/}');
+    Expect(1, 43708, '\p{Is_Logical_Order_Exception=_T}', "");
+    Expect(0, 43708, '\p{^Is_Logical_Order_Exception=_T}', "");
+    Expect(0, 43708, '\P{Is_Logical_Order_Exception=_T}', "");
+    Expect(1, 43708, '\P{^Is_Logical_Order_Exception=_T}', "");
+    Expect(0, 43709, '\p{Is_Logical_Order_Exception=_T}', "");
+    Expect(1, 43709, '\p{^Is_Logical_Order_Exception=_T}', "");
+    Expect(1, 43709, '\P{Is_Logical_Order_Exception=_T}', "");
+    Expect(0, 43709, '\P{^Is_Logical_Order_Exception=_T}', "");
+    Error('\p{Is_LOE=  TRUE/a/}');
+    Error('\P{Is_LOE=  TRUE/a/}');
     Expect(1, 43708, '\p{Is_LOE=true}', "");
     Expect(0, 43708, '\p{^Is_LOE=true}', "");
     Expect(0, 43708, '\P{Is_LOE=true}', "");
@@ -65833,16 +66415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 43709, '\p{^Is_LOE=true}', "");
     Expect(1, 43709, '\P{Is_LOE=true}', "");
     Expect(0, 43709, '\P{^Is_LOE=true}', "");
-    Expect(1, 43708, '\p{Is_LOE=__TRUE}', "");
-    Expect(0, 43708, '\p{^Is_LOE=__TRUE}', "");
-    Expect(0, 43708, '\P{Is_LOE=__TRUE}', "");
-    Expect(1, 43708, '\P{^Is_LOE=__TRUE}', "");
-    Expect(0, 43709, '\p{Is_LOE=__TRUE}', "");
-    Expect(1, 43709, '\p{^Is_LOE=__TRUE}', "");
-    Expect(1, 43709, '\P{Is_LOE=__TRUE}', "");
-    Expect(0, 43709, '\P{^Is_LOE=__TRUE}', "");
-    Error('\p{Lowercase=_/a/NO}');
-    Error('\P{Lowercase=_/a/NO}');
+    Expect(1, 43708, '\p{Is_LOE=-_True}', "");
+    Expect(0, 43708, '\p{^Is_LOE=-_True}', "");
+    Expect(0, 43708, '\P{Is_LOE=-_True}', "");
+    Expect(1, 43708, '\P{^Is_LOE=-_True}', "");
+    Expect(0, 43709, '\p{Is_LOE=-_True}', "");
+    Expect(1, 43709, '\p{^Is_LOE=-_True}', "");
+    Expect(1, 43709, '\P{Is_LOE=-_True}', "");
+    Expect(0, 43709, '\P{^Is_LOE=-_True}', "");
+    Error('\p{Lowercase= :=no}');
+    Error('\P{Lowercase= :=no}');
     Expect(1, 125252, '\p{Lowercase=:\ANo\z:}', "");;
     Expect(0, 125251, '\p{Lowercase=:\ANo\z:}', "");;
     Expect(1, 125252, '\p{Lowercase=no}', "");
@@ -65855,16 +66437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125251, '\P{^Lowercase=no}', "");
     Expect(1, 125252, '\p{Lowercase=:\Ano\z:}', "");;
     Expect(0, 125251, '\p{Lowercase=:\Ano\z:}', "");;
-    Expect(1, 125252, '\p{Lowercase=- No}', "");
-    Expect(0, 125252, '\p{^Lowercase=- No}', "");
-    Expect(0, 125252, '\P{Lowercase=- No}', "");
-    Expect(1, 125252, '\P{^Lowercase=- No}', "");
-    Expect(0, 125251, '\p{Lowercase=- No}', "");
-    Expect(1, 125251, '\p{^Lowercase=- No}', "");
-    Expect(1, 125251, '\P{Lowercase=- No}', "");
-    Expect(0, 125251, '\P{^Lowercase=- No}', "");
-    Error('\p{Lower=/a/-_n}');
-    Error('\P{Lower=/a/-_n}');
+    Expect(1, 125252, '\p{Lowercase=_No}', "");
+    Expect(0, 125252, '\p{^Lowercase=_No}', "");
+    Expect(0, 125252, '\P{Lowercase=_No}', "");
+    Expect(1, 125252, '\P{^Lowercase=_No}', "");
+    Expect(0, 125251, '\p{Lowercase=_No}', "");
+    Expect(1, 125251, '\p{^Lowercase=_No}', "");
+    Expect(1, 125251, '\P{Lowercase=_No}', "");
+    Expect(0, 125251, '\P{^Lowercase=_No}', "");
+    Error('\p{Lower= _N:=}');
+    Error('\P{Lower= _N:=}');
     Expect(1, 125252, '\p{Lower=:\AN\z:}', "");;
     Expect(0, 125251, '\p{Lower=:\AN\z:}', "");;
     Expect(1, 125252, '\p{Lower=n}', "");
@@ -65877,16 +66459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125251, '\P{^Lower=n}', "");
     Expect(1, 125252, '\p{Lower=:\An\z:}', "");;
     Expect(0, 125251, '\p{Lower=:\An\z:}', "");;
-    Expect(1, 125252, '\p{Lower=_N}', "");
-    Expect(0, 125252, '\p{^Lower=_N}', "");
-    Expect(0, 125252, '\P{Lower=_N}', "");
-    Expect(1, 125252, '\P{^Lower=_N}', "");
-    Expect(0, 125251, '\p{Lower=_N}', "");
-    Expect(1, 125251, '\p{^Lower=_N}', "");
-    Expect(1, 125251, '\P{Lower=_N}', "");
-    Expect(0, 125251, '\P{^Lower=_N}', "");
-    Error('\p{Is_Lowercase=	_F/a/}');
-    Error('\P{Is_Lowercase=	_F/a/}');
+    Expect(1, 125252, '\p{Lower= -N}', "");
+    Expect(0, 125252, '\p{^Lower= -N}', "");
+    Expect(0, 125252, '\P{Lower= -N}', "");
+    Expect(1, 125252, '\P{^Lower= -N}', "");
+    Expect(0, 125251, '\p{Lower= -N}', "");
+    Expect(1, 125251, '\p{^Lower= -N}', "");
+    Expect(1, 125251, '\P{Lower= -N}', "");
+    Expect(0, 125251, '\P{^Lower= -N}', "");
+    Error('\p{Is_Lowercase=-	F:=}');
+    Error('\P{Is_Lowercase=-	F:=}');
     Expect(1, 125252, '\p{Is_Lowercase=f}', "");
     Expect(0, 125252, '\p{^Is_Lowercase=f}', "");
     Expect(0, 125252, '\P{Is_Lowercase=f}', "");
@@ -65895,16 +66477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125251, '\p{^Is_Lowercase=f}', "");
     Expect(1, 125251, '\P{Is_Lowercase=f}', "");
     Expect(0, 125251, '\P{^Is_Lowercase=f}', "");
-    Expect(1, 125252, '\p{Is_Lowercase=-F}', "");
-    Expect(0, 125252, '\p{^Is_Lowercase=-F}', "");
-    Expect(0, 125252, '\P{Is_Lowercase=-F}', "");
-    Expect(1, 125252, '\P{^Is_Lowercase=-F}', "");
-    Expect(0, 125251, '\p{Is_Lowercase=-F}', "");
-    Expect(1, 125251, '\p{^Is_Lowercase=-F}', "");
-    Expect(1, 125251, '\P{Is_Lowercase=-F}', "");
-    Expect(0, 125251, '\P{^Is_Lowercase=-F}', "");
-    Error('\p{Is_Lower=_False/a/}');
-    Error('\P{Is_Lower=_False/a/}');
+    Expect(1, 125252, '\p{Is_Lowercase= F}', "");
+    Expect(0, 125252, '\p{^Is_Lowercase= F}', "");
+    Expect(0, 125252, '\P{Is_Lowercase= F}', "");
+    Expect(1, 125252, '\P{^Is_Lowercase= F}', "");
+    Expect(0, 125251, '\p{Is_Lowercase= F}', "");
+    Expect(1, 125251, '\p{^Is_Lowercase= F}', "");
+    Expect(1, 125251, '\P{Is_Lowercase= F}', "");
+    Expect(0, 125251, '\P{^Is_Lowercase= F}', "");
+    Error('\p{Is_Lower=:=False}');
+    Error('\P{Is_Lower=:=False}');
     Expect(1, 125252, '\p{Is_Lower=false}', "");
     Expect(0, 125252, '\p{^Is_Lower=false}', "");
     Expect(0, 125252, '\P{Is_Lower=false}', "");
@@ -65913,16 +66495,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125251, '\p{^Is_Lower=false}', "");
     Expect(1, 125251, '\P{Is_Lower=false}', "");
     Expect(0, 125251, '\P{^Is_Lower=false}', "");
-    Expect(1, 125252, '\p{Is_Lower=- false}', "");
-    Expect(0, 125252, '\p{^Is_Lower=- false}', "");
-    Expect(0, 125252, '\P{Is_Lower=- false}', "");
-    Expect(1, 125252, '\P{^Is_Lower=- false}', "");
-    Expect(0, 125251, '\p{Is_Lower=- false}', "");
-    Expect(1, 125251, '\p{^Is_Lower=- false}', "");
-    Expect(1, 125251, '\P{Is_Lower=- false}', "");
-    Expect(0, 125251, '\P{^Is_Lower=- false}', "");
-    Error('\p{Lowercase=/a/	Yes}');
-    Error('\P{Lowercase=/a/	Yes}');
+    Error('\p{Lowercase=-Yes/a/}');
+    Error('\P{Lowercase=-Yes/a/}');
     Expect(1, 125251, '\p{Lowercase=:\AYes\z:}', "");;
     Expect(0, 125252, '\p{Lowercase=:\AYes\z:}', "");;
     Expect(1, 125251, '\p{Lowercase=yes}', "");
@@ -65935,16 +66509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125252, '\P{^Lowercase=yes}', "");
     Expect(1, 125251, '\p{Lowercase=:\Ayes\z:}', "");;
     Expect(0, 125252, '\p{Lowercase=:\Ayes\z:}', "");;
-    Expect(1, 125251, '\p{Lowercase=__yes}', "");
-    Expect(0, 125251, '\p{^Lowercase=__yes}', "");
-    Expect(0, 125251, '\P{Lowercase=__yes}', "");
-    Expect(1, 125251, '\P{^Lowercase=__yes}', "");
-    Expect(0, 125252, '\p{Lowercase=__yes}', "");
-    Expect(1, 125252, '\p{^Lowercase=__yes}', "");
-    Expect(1, 125252, '\P{Lowercase=__yes}', "");
-    Expect(0, 125252, '\P{^Lowercase=__yes}', "");
-    Error('\p{Lower=:= -Y}');
-    Error('\P{Lower=:= -Y}');
+    Expect(1, 125251, '\p{Lowercase=_-YES}', "");
+    Expect(0, 125251, '\p{^Lowercase=_-YES}', "");
+    Expect(0, 125251, '\P{Lowercase=_-YES}', "");
+    Expect(1, 125251, '\P{^Lowercase=_-YES}', "");
+    Expect(0, 125252, '\p{Lowercase=_-YES}', "");
+    Expect(1, 125252, '\p{^Lowercase=_-YES}', "");
+    Expect(1, 125252, '\P{Lowercase=_-YES}', "");
+    Expect(0, 125252, '\P{^Lowercase=_-YES}', "");
+    Error('\p{Lower=_Y:=}');
+    Error('\P{Lower=_Y:=}');
     Expect(1, 125251, '\p{Lower=:\AY\z:}', "");;
     Expect(0, 125252, '\p{Lower=:\AY\z:}', "");;
     Expect(1, 125251, '\p{Lower=y}', "");
@@ -65957,16 +66531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 125252, '\P{^Lower=y}', "");
     Expect(1, 125251, '\p{Lower=:\Ay\z:}', "");;
     Expect(0, 125252, '\p{Lower=:\Ay\z:}', "");;
-    Expect(1, 125251, '\p{Lower=-_y}', "");
-    Expect(0, 125251, '\p{^Lower=-_y}', "");
-    Expect(0, 125251, '\P{Lower=-_y}', "");
-    Expect(1, 125251, '\P{^Lower=-_y}', "");
-    Expect(0, 125252, '\p{Lower=-_y}', "");
-    Expect(1, 125252, '\p{^Lower=-_y}', "");
-    Expect(1, 125252, '\P{Lower=-_y}', "");
-    Expect(0, 125252, '\P{^Lower=-_y}', "");
-    Error('\p{Is_Lowercase=:=_-T}');
-    Error('\P{Is_Lowercase=:=_-T}');
+    Expect(1, 125251, '\p{Lower=		Y}', "");
+    Expect(0, 125251, '\p{^Lower=		Y}', "");
+    Expect(0, 125251, '\P{Lower=		Y}', "");
+    Expect(1, 125251, '\P{^Lower=		Y}', "");
+    Expect(0, 125252, '\p{Lower=		Y}', "");
+    Expect(1, 125252, '\p{^Lower=		Y}', "");
+    Expect(1, 125252, '\P{Lower=		Y}', "");
+    Expect(0, 125252, '\P{^Lower=		Y}', "");
+    Error('\p{Is_Lowercase=	/a/T}');
+    Error('\P{Is_Lowercase=	/a/T}');
     Expect(1, 125251, '\p{Is_Lowercase=t}', "");
     Expect(0, 125251, '\p{^Is_Lowercase=t}', "");
     Expect(0, 125251, '\P{Is_Lowercase=t}', "");
@@ -65975,26 +66549,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 125252, '\p{^Is_Lowercase=t}', "");
     Expect(1, 125252, '\P{Is_Lowercase=t}', "");
     Expect(0, 125252, '\P{^Is_Lowercase=t}', "");
-    Error('\p{Is_Lower=/a/_ true}');
-    Error('\P{Is_Lower=/a/_ true}');
-    Expect(1, 125251, '\p{Is_Lower:true}', "");
-    Expect(0, 125251, '\p{^Is_Lower:true}', "");
-    Expect(0, 125251, '\P{Is_Lower:true}', "");
-    Expect(1, 125251, '\P{^Is_Lower:true}', "");
-    Expect(0, 125252, '\p{Is_Lower:true}', "");
-    Expect(1, 125252, '\p{^Is_Lower:true}', "");
-    Expect(1, 125252, '\P{Is_Lower:true}', "");
-    Expect(0, 125252, '\P{^Is_Lower:true}', "");
-    Expect(1, 125251, '\p{Is_Lower=_True}', "");
-    Expect(0, 125251, '\p{^Is_Lower=_True}', "");
-    Expect(0, 125251, '\P{Is_Lower=_True}', "");
-    Expect(1, 125251, '\P{^Is_Lower=_True}', "");
-    Expect(0, 125252, '\p{Is_Lower=_True}', "");
-    Expect(1, 125252, '\p{^Is_Lower=_True}', "");
-    Expect(1, 125252, '\P{Is_Lower=_True}', "");
-    Expect(0, 125252, '\P{^Is_Lower=_True}', "");
-    Error('\p{Math=	_no/a/}');
-    Error('\P{Math=	_no/a/}');
+    Expect(1, 125251, '\p{Is_Lowercase=	-T}', "");
+    Expect(0, 125251, '\p{^Is_Lowercase=	-T}', "");
+    Expect(0, 125251, '\P{Is_Lowercase=	-T}', "");
+    Expect(1, 125251, '\P{^Is_Lowercase=	-T}', "");
+    Expect(0, 125252, '\p{Is_Lowercase=	-T}', "");
+    Expect(1, 125252, '\p{^Is_Lowercase=	-T}', "");
+    Expect(1, 125252, '\P{Is_Lowercase=	-T}', "");
+    Expect(0, 125252, '\P{^Is_Lowercase=	-T}', "");
+    Error('\p{Is_Lower=/a/ 	TRUE}');
+    Error('\P{Is_Lower=/a/ 	TRUE}');
+    Expect(1, 125251, '\p{Is_Lower=true}', "");
+    Expect(0, 125251, '\p{^Is_Lower=true}', "");
+    Expect(0, 125251, '\P{Is_Lower=true}', "");
+    Expect(1, 125251, '\P{^Is_Lower=true}', "");
+    Expect(0, 125252, '\p{Is_Lower=true}', "");
+    Expect(1, 125252, '\p{^Is_Lower=true}', "");
+    Expect(1, 125252, '\P{Is_Lower=true}', "");
+    Expect(0, 125252, '\P{^Is_Lower=true}', "");
+    Expect(1, 125251, '\p{Is_Lower: -TRUE}', "");
+    Expect(0, 125251, '\p{^Is_Lower: -TRUE}', "");
+    Expect(0, 125251, '\P{Is_Lower: -TRUE}', "");
+    Expect(1, 125251, '\P{^Is_Lower: -TRUE}', "");
+    Expect(0, 125252, '\p{Is_Lower: -TRUE}', "");
+    Expect(1, 125252, '\p{^Is_Lower: -TRUE}', "");
+    Expect(1, 125252, '\P{Is_Lower: -TRUE}', "");
+    Expect(0, 125252, '\P{^Is_Lower: -TRUE}', "");
+    Error('\p{Math=/a/  No}');
+    Error('\P{Math=/a/  No}');
     Expect(1, 126706, '\p{Math=:\ANo\z:}', "");;
     Expect(0, 126705, '\p{Math=:\ANo\z:}', "");;
     Expect(1, 126706, '\p{Math=no}', "");
@@ -66007,16 +66589,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126705, '\P{^Math=no}', "");
     Expect(1, 126706, '\p{Math=:\Ano\z:}', "");;
     Expect(0, 126705, '\p{Math=:\Ano\z:}', "");;
-    Expect(1, 126706, '\p{Math=_No}', "");
-    Expect(0, 126706, '\p{^Math=_No}', "");
-    Expect(0, 126706, '\P{Math=_No}', "");
-    Expect(1, 126706, '\P{^Math=_No}', "");
-    Expect(0, 126705, '\p{Math=_No}', "");
-    Expect(1, 126705, '\p{^Math=_No}', "");
-    Expect(1, 126705, '\P{Math=_No}', "");
-    Expect(0, 126705, '\P{^Math=_No}', "");
-    Error('\p{Is_Math=		N/a/}');
-    Error('\P{Is_Math=		N/a/}');
+    Expect(1, 126706, '\p{Math= 	NO}', "");
+    Expect(0, 126706, '\p{^Math= 	NO}', "");
+    Expect(0, 126706, '\P{Math= 	NO}', "");
+    Expect(1, 126706, '\P{^Math= 	NO}', "");
+    Expect(0, 126705, '\p{Math= 	NO}', "");
+    Expect(1, 126705, '\p{^Math= 	NO}', "");
+    Expect(1, 126705, '\P{Math= 	NO}', "");
+    Expect(0, 126705, '\P{^Math= 	NO}', "");
+    Error('\p{Is_Math=	:=N}');
+    Error('\P{Is_Math=	:=N}');
     Expect(1, 126706, '\p{Is_Math=n}', "");
     Expect(0, 126706, '\p{^Is_Math=n}', "");
     Expect(0, 126706, '\P{Is_Math=n}', "");
@@ -66025,16 +66607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126705, '\p{^Is_Math=n}', "");
     Expect(1, 126705, '\P{Is_Math=n}', "");
     Expect(0, 126705, '\P{^Is_Math=n}', "");
-    Expect(1, 126706, '\p{Is_Math=  N}', "");
-    Expect(0, 126706, '\p{^Is_Math=  N}', "");
-    Expect(0, 126706, '\P{Is_Math=  N}', "");
-    Expect(1, 126706, '\P{^Is_Math=  N}', "");
-    Expect(0, 126705, '\p{Is_Math=  N}', "");
-    Expect(1, 126705, '\p{^Is_Math=  N}', "");
-    Expect(1, 126705, '\P{Is_Math=  N}', "");
-    Expect(0, 126705, '\P{^Is_Math=  N}', "");
-    Error('\p{Math=_:=f}');
-    Error('\P{Math=_:=f}');
+    Expect(1, 126706, '\p{Is_Math=N}', "");
+    Expect(0, 126706, '\p{^Is_Math=N}', "");
+    Expect(0, 126706, '\P{Is_Math=N}', "");
+    Expect(1, 126706, '\P{^Is_Math=N}', "");
+    Expect(0, 126705, '\p{Is_Math=N}', "");
+    Expect(1, 126705, '\p{^Is_Math=N}', "");
+    Expect(1, 126705, '\P{Is_Math=N}', "");
+    Expect(0, 126705, '\P{^Is_Math=N}', "");
+    Error('\p{Math: -:=F}');
+    Error('\P{Math: -:=F}');
     Expect(1, 126706, '\p{Math=:\AF\z:}', "");;
     Expect(0, 126705, '\p{Math=:\AF\z:}', "");;
     Expect(1, 126706, '\p{Math=f}', "");
@@ -66047,16 +66629,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126705, '\P{^Math=f}', "");
     Expect(1, 126706, '\p{Math=:\Af\z:}', "");;
     Expect(0, 126705, '\p{Math=:\Af\z:}', "");;
-    Expect(1, 126706, '\p{Math=	 F}', "");
-    Expect(0, 126706, '\p{^Math=	 F}', "");
-    Expect(0, 126706, '\P{Math=	 F}', "");
-    Expect(1, 126706, '\P{^Math=	 F}', "");
-    Expect(0, 126705, '\p{Math=	 F}', "");
-    Expect(1, 126705, '\p{^Math=	 F}', "");
-    Expect(1, 126705, '\P{Math=	 F}', "");
-    Expect(0, 126705, '\P{^Math=	 F}', "");
-    Error('\p{Is_Math=	_FALSE/a/}');
-    Error('\P{Is_Math=	_FALSE/a/}');
+    Expect(1, 126706, '\p{Math=	F}', "");
+    Expect(0, 126706, '\p{^Math=	F}', "");
+    Expect(0, 126706, '\P{Math=	F}', "");
+    Expect(1, 126706, '\P{^Math=	F}', "");
+    Expect(0, 126705, '\p{Math=	F}', "");
+    Expect(1, 126705, '\p{^Math=	F}', "");
+    Expect(1, 126705, '\P{Math=	F}', "");
+    Expect(0, 126705, '\P{^Math=	F}', "");
+    Error('\p{Is_Math=/a/  False}');
+    Error('\P{Is_Math=/a/  False}');
     Expect(1, 126706, '\p{Is_Math=false}', "");
     Expect(0, 126706, '\p{^Is_Math=false}', "");
     Expect(0, 126706, '\P{Is_Math=false}', "");
@@ -66065,16 +66647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126705, '\p{^Is_Math=false}', "");
     Expect(1, 126705, '\P{Is_Math=false}', "");
     Expect(0, 126705, '\P{^Is_Math=false}', "");
-    Expect(1, 126706, '\p{Is_Math=		False}', "");
-    Expect(0, 126706, '\p{^Is_Math=		False}', "");
-    Expect(0, 126706, '\P{Is_Math=		False}', "");
-    Expect(1, 126706, '\P{^Is_Math=		False}', "");
-    Expect(0, 126705, '\p{Is_Math=		False}', "");
-    Expect(1, 126705, '\p{^Is_Math=		False}', "");
-    Expect(1, 126705, '\P{Is_Math=		False}', "");
-    Expect(0, 126705, '\P{^Is_Math=		False}', "");
-    Error('\p{Math:   /a/_Yes}');
-    Error('\P{Math:   /a/_Yes}');
+    Expect(1, 126706, '\p{Is_Math:	  False}', "");
+    Expect(0, 126706, '\p{^Is_Math:	  False}', "");
+    Expect(0, 126706, '\P{Is_Math:	  False}', "");
+    Expect(1, 126706, '\P{^Is_Math:	  False}', "");
+    Expect(0, 126705, '\p{Is_Math:	  False}', "");
+    Expect(1, 126705, '\p{^Is_Math:	  False}', "");
+    Expect(1, 126705, '\P{Is_Math:	  False}', "");
+    Expect(0, 126705, '\P{^Is_Math:	  False}', "");
+    Error('\p{Math=- Yes:=}');
+    Error('\P{Math=- Yes:=}');
     Expect(1, 126705, '\p{Math=:\AYes\z:}', "");;
     Expect(0, 126706, '\p{Math=:\AYes\z:}', "");;
     Expect(1, 126705, '\p{Math=yes}', "");
@@ -66087,16 +66669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126706, '\P{^Math=yes}', "");
     Expect(1, 126705, '\p{Math=:\Ayes\z:}', "");;
     Expect(0, 126706, '\p{Math=:\Ayes\z:}', "");;
-    Expect(1, 126705, '\p{Math=	_yes}', "");
-    Expect(0, 126705, '\p{^Math=	_yes}', "");
-    Expect(0, 126705, '\P{Math=	_yes}', "");
-    Expect(1, 126705, '\P{^Math=	_yes}', "");
-    Expect(0, 126706, '\p{Math=	_yes}', "");
-    Expect(1, 126706, '\p{^Math=	_yes}', "");
-    Expect(1, 126706, '\P{Math=	_yes}', "");
-    Expect(0, 126706, '\P{^Math=	_yes}', "");
-    Error('\p{Is_Math=		Y:=}');
-    Error('\P{Is_Math=		Y:=}');
+    Expect(1, 126705, '\p{Math=  yes}', "");
+    Expect(0, 126705, '\p{^Math=  yes}', "");
+    Expect(0, 126705, '\P{Math=  yes}', "");
+    Expect(1, 126705, '\P{^Math=  yes}', "");
+    Expect(0, 126706, '\p{Math=  yes}', "");
+    Expect(1, 126706, '\p{^Math=  yes}', "");
+    Expect(1, 126706, '\P{Math=  yes}', "");
+    Expect(0, 126706, '\P{^Math=  yes}', "");
+    Error('\p{Is_Math=		y:=}');
+    Error('\P{Is_Math=		y:=}');
     Expect(1, 126705, '\p{Is_Math=y}', "");
     Expect(0, 126705, '\p{^Is_Math=y}', "");
     Expect(0, 126705, '\P{Is_Math=y}', "");
@@ -66105,16 +66687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126706, '\p{^Is_Math=y}', "");
     Expect(1, 126706, '\P{Is_Math=y}', "");
     Expect(0, 126706, '\P{^Is_Math=y}', "");
-    Expect(1, 126705, '\p{Is_Math:  Y}', "");
-    Expect(0, 126705, '\p{^Is_Math:  Y}', "");
-    Expect(0, 126705, '\P{Is_Math:  Y}', "");
-    Expect(1, 126705, '\P{^Is_Math:  Y}', "");
-    Expect(0, 126706, '\p{Is_Math:  Y}', "");
-    Expect(1, 126706, '\p{^Is_Math:  Y}', "");
-    Expect(1, 126706, '\P{Is_Math:  Y}', "");
-    Expect(0, 126706, '\P{^Is_Math:  Y}', "");
-    Error('\p{Math=:= 	T}');
-    Error('\P{Math=:= 	T}');
+    Expect(1, 126705, '\p{Is_Math:  _Y}', "");
+    Expect(0, 126705, '\p{^Is_Math:  _Y}', "");
+    Expect(0, 126705, '\P{Is_Math:  _Y}', "");
+    Expect(1, 126705, '\P{^Is_Math:  _Y}', "");
+    Expect(0, 126706, '\p{Is_Math:  _Y}', "");
+    Expect(1, 126706, '\p{^Is_Math:  _Y}', "");
+    Expect(1, 126706, '\P{Is_Math:  _Y}', "");
+    Expect(0, 126706, '\P{^Is_Math:  _Y}', "");
+    Error('\p{Math=/a/_t}');
+    Error('\P{Math=/a/_t}');
     Expect(1, 126705, '\p{Math=:\AT\z:}', "");;
     Expect(0, 126706, '\p{Math=:\AT\z:}', "");;
     Expect(1, 126705, '\p{Math=t}', "");
@@ -66127,16 +66709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 126706, '\P{^Math=t}', "");
     Expect(1, 126705, '\p{Math=:\At\z:}', "");;
     Expect(0, 126706, '\p{Math=:\At\z:}', "");;
-    Expect(1, 126705, '\p{Math= T}', "");
-    Expect(0, 126705, '\p{^Math= T}', "");
-    Expect(0, 126705, '\P{Math= T}', "");
-    Expect(1, 126705, '\P{^Math= T}', "");
-    Expect(0, 126706, '\p{Math= T}', "");
-    Expect(1, 126706, '\p{^Math= T}', "");
-    Expect(1, 126706, '\P{Math= T}', "");
-    Expect(0, 126706, '\P{^Math= T}', "");
-    Error('\p{Is_Math=  true/a/}');
-    Error('\P{Is_Math=  true/a/}');
+    Expect(1, 126705, '\p{Math=-T}', "");
+    Expect(0, 126705, '\p{^Math=-T}', "");
+    Expect(0, 126705, '\P{Math=-T}', "");
+    Expect(1, 126705, '\P{^Math=-T}', "");
+    Expect(0, 126706, '\p{Math=-T}', "");
+    Expect(1, 126706, '\p{^Math=-T}', "");
+    Expect(1, 126706, '\P{Math=-T}', "");
+    Expect(0, 126706, '\P{^Math=-T}', "");
+    Error('\p{Is_Math=-/a/True}');
+    Error('\P{Is_Math=-/a/True}');
     Expect(1, 126705, '\p{Is_Math=true}', "");
     Expect(0, 126705, '\p{^Is_Math=true}', "");
     Expect(0, 126705, '\P{Is_Math=true}', "");
@@ -66145,14 +66727,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126706, '\p{^Is_Math=true}', "");
     Expect(1, 126706, '\P{Is_Math=true}', "");
     Expect(0, 126706, '\P{^Is_Math=true}', "");
-    Expect(1, 126705, '\p{Is_Math=  True}', "");
-    Expect(0, 126705, '\p{^Is_Math=  True}', "");
-    Expect(0, 126705, '\P{Is_Math=  True}', "");
-    Expect(1, 126705, '\P{^Is_Math=  True}', "");
-    Expect(0, 126706, '\p{Is_Math=  True}', "");
-    Expect(1, 126706, '\p{^Is_Math=  True}', "");
-    Expect(1, 126706, '\P{Is_Math=  True}', "");
-    Expect(0, 126706, '\P{^Is_Math=  True}', "");
+    Expect(1, 126705, '\p{Is_Math=	-TRUE}', "");
+    Expect(0, 126705, '\p{^Is_Math=	-TRUE}', "");
+    Expect(0, 126705, '\P{Is_Math=	-TRUE}', "");
+    Expect(1, 126705, '\P{^Is_Math=	-TRUE}', "");
+    Expect(0, 126706, '\p{Is_Math=	-TRUE}', "");
+    Expect(1, 126706, '\p{^Is_Math=	-TRUE}', "");
+    Expect(1, 126706, '\P{Is_Math=	-TRUE}', "");
+    Expect(0, 126706, '\P{^Is_Math=	-TRUE}', "");
     Error('\p{name}');
     Error('\P{name}');
     Error('\p{na}');
@@ -66165,30 +66747,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{namealias}');
     Error('\p{_perlnamealias}');
     Error('\P{_perlnamealias}');
-    Error('\p{Noncharacter_Code_Point=:=no}');
-    Error('\P{Noncharacter_Code_Point=:=no}');
+    Error('\p{Noncharacter_Code_Point=:=	-No}');
+    Error('\P{Noncharacter_Code_Point=:=	-No}');
     Expect(1, 1114109, '\p{Noncharacter_Code_Point=:\ANo\z:}', "");;
     Expect(0, 1114111, '\p{Noncharacter_Code_Point=:\ANo\z:}', "");;
-    Expect(1, 1114109, '\p{Noncharacter_Code_Point=no}', "");
-    Expect(0, 1114109, '\p{^Noncharacter_Code_Point=no}', "");
-    Expect(0, 1114109, '\P{Noncharacter_Code_Point=no}', "");
-    Expect(1, 1114109, '\P{^Noncharacter_Code_Point=no}', "");
-    Expect(0, 1114111, '\p{Noncharacter_Code_Point=no}', "");
-    Expect(1, 1114111, '\p{^Noncharacter_Code_Point=no}', "");
-    Expect(1, 1114111, '\P{Noncharacter_Code_Point=no}', "");
-    Expect(0, 1114111, '\P{^Noncharacter_Code_Point=no}', "");
+    Expect(1, 1114109, '\p{Noncharacter_Code_Point:	no}', "");
+    Expect(0, 1114109, '\p{^Noncharacter_Code_Point:	no}', "");
+    Expect(0, 1114109, '\P{Noncharacter_Code_Point:	no}', "");
+    Expect(1, 1114109, '\P{^Noncharacter_Code_Point:	no}', "");
+    Expect(0, 1114111, '\p{Noncharacter_Code_Point:	no}', "");
+    Expect(1, 1114111, '\p{^Noncharacter_Code_Point:	no}', "");
+    Expect(1, 1114111, '\P{Noncharacter_Code_Point:	no}', "");
+    Expect(0, 1114111, '\P{^Noncharacter_Code_Point:	no}', "");
     Expect(1, 1114109, '\p{Noncharacter_Code_Point=:\Ano\z:}', "");;
     Expect(0, 1114111, '\p{Noncharacter_Code_Point=:\Ano\z:}', "");;
-    Expect(1, 1114109, '\p{Noncharacter_Code_Point=_	No}', "");
-    Expect(0, 1114109, '\p{^Noncharacter_Code_Point=_	No}', "");
-    Expect(0, 1114109, '\P{Noncharacter_Code_Point=_	No}', "");
-    Expect(1, 1114109, '\P{^Noncharacter_Code_Point=_	No}', "");
-    Expect(0, 1114111, '\p{Noncharacter_Code_Point=_	No}', "");
-    Expect(1, 1114111, '\p{^Noncharacter_Code_Point=_	No}', "");
-    Expect(1, 1114111, '\P{Noncharacter_Code_Point=_	No}', "");
-    Expect(0, 1114111, '\P{^Noncharacter_Code_Point=_	No}', "");
-    Error('\p{NChar=/a/n}');
-    Error('\P{NChar=/a/n}');
+    Expect(1, 1114109, '\p{Noncharacter_Code_Point=		No}', "");
+    Expect(0, 1114109, '\p{^Noncharacter_Code_Point=		No}', "");
+    Expect(0, 1114109, '\P{Noncharacter_Code_Point=		No}', "");
+    Expect(1, 1114109, '\P{^Noncharacter_Code_Point=		No}', "");
+    Expect(0, 1114111, '\p{Noncharacter_Code_Point=		No}', "");
+    Expect(1, 1114111, '\p{^Noncharacter_Code_Point=		No}', "");
+    Expect(1, 1114111, '\P{Noncharacter_Code_Point=		No}', "");
+    Expect(0, 1114111, '\P{^Noncharacter_Code_Point=		No}', "");
+    Error('\p{NChar=:=_-N}');
+    Error('\P{NChar=:=_-N}');
     Expect(1, 1114109, '\p{NChar=:\AN\z:}', "");;
     Expect(0, 1114111, '\p{NChar=:\AN\z:}', "");;
     Expect(1, 1114109, '\p{NChar=n}', "");
@@ -66201,16 +66783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1114111, '\P{^NChar=n}', "");
     Expect(1, 1114109, '\p{NChar=:\An\z:}', "");;
     Expect(0, 1114111, '\p{NChar=:\An\z:}', "");;
-    Expect(1, 1114109, '\p{NChar=__N}', "");
-    Expect(0, 1114109, '\p{^NChar=__N}', "");
-    Expect(0, 1114109, '\P{NChar=__N}', "");
-    Expect(1, 1114109, '\P{^NChar=__N}', "");
-    Expect(0, 1114111, '\p{NChar=__N}', "");
-    Expect(1, 1114111, '\p{^NChar=__N}', "");
-    Expect(1, 1114111, '\P{NChar=__N}', "");
-    Expect(0, 1114111, '\P{^NChar=__N}', "");
-    Error('\p{Is_Noncharacter_Code_Point= F:=}');
-    Error('\P{Is_Noncharacter_Code_Point= F:=}');
+    Expect(1, 1114109, '\p{NChar:-N}', "");
+    Expect(0, 1114109, '\p{^NChar:-N}', "");
+    Expect(0, 1114109, '\P{NChar:-N}', "");
+    Expect(1, 1114109, '\P{^NChar:-N}', "");
+    Expect(0, 1114111, '\p{NChar:-N}', "");
+    Expect(1, 1114111, '\p{^NChar:-N}', "");
+    Expect(1, 1114111, '\P{NChar:-N}', "");
+    Expect(0, 1114111, '\P{^NChar:-N}', "");
+    Error('\p{Is_Noncharacter_Code_Point=:=	f}');
+    Error('\P{Is_Noncharacter_Code_Point=:=	f}');
     Expect(1, 1114109, '\p{Is_Noncharacter_Code_Point=f}', "");
     Expect(0, 1114109, '\p{^Is_Noncharacter_Code_Point=f}', "");
     Expect(0, 1114109, '\P{Is_Noncharacter_Code_Point=f}', "");
@@ -66219,16 +66801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1114111, '\p{^Is_Noncharacter_Code_Point=f}', "");
     Expect(1, 1114111, '\P{Is_Noncharacter_Code_Point=f}', "");
     Expect(0, 1114111, '\P{^Is_Noncharacter_Code_Point=f}', "");
-    Expect(1, 1114109, '\p{Is_Noncharacter_Code_Point= F}', "");
-    Expect(0, 1114109, '\p{^Is_Noncharacter_Code_Point= F}', "");
-    Expect(0, 1114109, '\P{Is_Noncharacter_Code_Point= F}', "");
-    Expect(1, 1114109, '\P{^Is_Noncharacter_Code_Point= F}', "");
-    Expect(0, 1114111, '\p{Is_Noncharacter_Code_Point= F}', "");
-    Expect(1, 1114111, '\p{^Is_Noncharacter_Code_Point= F}', "");
-    Expect(1, 1114111, '\P{Is_Noncharacter_Code_Point= F}', "");
-    Expect(0, 1114111, '\P{^Is_Noncharacter_Code_Point= F}', "");
-    Error('\p{Is_NChar=	False/a/}');
-    Error('\P{Is_NChar=	False/a/}');
+    Expect(1, 1114109, '\p{Is_Noncharacter_Code_Point=_f}', "");
+    Expect(0, 1114109, '\p{^Is_Noncharacter_Code_Point=_f}', "");
+    Expect(0, 1114109, '\P{Is_Noncharacter_Code_Point=_f}', "");
+    Expect(1, 1114109, '\P{^Is_Noncharacter_Code_Point=_f}', "");
+    Expect(0, 1114111, '\p{Is_Noncharacter_Code_Point=_f}', "");
+    Expect(1, 1114111, '\p{^Is_Noncharacter_Code_Point=_f}', "");
+    Expect(1, 1114111, '\P{Is_Noncharacter_Code_Point=_f}', "");
+    Expect(0, 1114111, '\P{^Is_Noncharacter_Code_Point=_f}', "");
+    Error('\p{Is_NChar=:=-FALSE}');
+    Error('\P{Is_NChar=:=-FALSE}');
     Expect(1, 1114109, '\p{Is_NChar=false}', "");
     Expect(0, 1114109, '\p{^Is_NChar=false}', "");
     Expect(0, 1114109, '\P{Is_NChar=false}', "");
@@ -66237,16 +66819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1114111, '\p{^Is_NChar=false}', "");
     Expect(1, 1114111, '\P{Is_NChar=false}', "");
     Expect(0, 1114111, '\P{^Is_NChar=false}', "");
-    Expect(1, 1114109, '\p{Is_NChar=__FALSE}', "");
-    Expect(0, 1114109, '\p{^Is_NChar=__FALSE}', "");
-    Expect(0, 1114109, '\P{Is_NChar=__FALSE}', "");
-    Expect(1, 1114109, '\P{^Is_NChar=__FALSE}', "");
-    Expect(0, 1114111, '\p{Is_NChar=__FALSE}', "");
-    Expect(1, 1114111, '\p{^Is_NChar=__FALSE}', "");
-    Expect(1, 1114111, '\P{Is_NChar=__FALSE}', "");
-    Expect(0, 1114111, '\P{^Is_NChar=__FALSE}', "");
-    Error('\p{Noncharacter_Code_Point=/a/YES}');
-    Error('\P{Noncharacter_Code_Point=/a/YES}');
+    Expect(1, 1114109, '\p{Is_NChar= -false}', "");
+    Expect(0, 1114109, '\p{^Is_NChar= -false}', "");
+    Expect(0, 1114109, '\P{Is_NChar= -false}', "");
+    Expect(1, 1114109, '\P{^Is_NChar= -false}', "");
+    Expect(0, 1114111, '\p{Is_NChar= -false}', "");
+    Expect(1, 1114111, '\p{^Is_NChar= -false}', "");
+    Expect(1, 1114111, '\P{Is_NChar= -false}', "");
+    Expect(0, 1114111, '\P{^Is_NChar= -false}', "");
+    Error('\p{Noncharacter_Code_Point=:= -Yes}');
+    Error('\P{Noncharacter_Code_Point=:= -Yes}');
     Expect(1, 1114111, '\p{Noncharacter_Code_Point=:\AYes\z:}', "");;
     Expect(0, 1114109, '\p{Noncharacter_Code_Point=:\AYes\z:}', "");;
     Expect(1, 1114111, '\p{Noncharacter_Code_Point=yes}', "");
@@ -66259,16 +66841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 1114109, '\P{^Noncharacter_Code_Point=yes}', "");
     Expect(1, 1114111, '\p{Noncharacter_Code_Point=:\Ayes\z:}', "");;
     Expect(0, 1114109, '\p{Noncharacter_Code_Point=:\Ayes\z:}', "");;
-    Expect(1, 1114111, '\p{Noncharacter_Code_Point=_	Yes}', "");
-    Expect(0, 1114111, '\p{^Noncharacter_Code_Point=_	Yes}', "");
-    Expect(0, 1114111, '\P{Noncharacter_Code_Point=_	Yes}', "");
-    Expect(1, 1114111, '\P{^Noncharacter_Code_Point=_	Yes}', "");
-    Expect(0, 1114109, '\p{Noncharacter_Code_Point=_	Yes}', "");
-    Expect(1, 1114109, '\p{^Noncharacter_Code_Point=_	Yes}', "");
-    Expect(1, 1114109, '\P{Noncharacter_Code_Point=_	Yes}', "");
-    Expect(0, 1114109, '\P{^Noncharacter_Code_Point=_	Yes}', "");
-    Error('\p{NChar=_-Y/a/}');
-    Error('\P{NChar=_-Y/a/}');
+    Expect(1, 1114111, '\p{Noncharacter_Code_Point:  _YES}', "");
+    Expect(0, 1114111, '\p{^Noncharacter_Code_Point:  _YES}', "");
+    Expect(0, 1114111, '\P{Noncharacter_Code_Point:  _YES}', "");
+    Expect(1, 1114111, '\P{^Noncharacter_Code_Point:  _YES}', "");
+    Expect(0, 1114109, '\p{Noncharacter_Code_Point:  _YES}', "");
+    Expect(1, 1114109, '\p{^Noncharacter_Code_Point:  _YES}', "");
+    Expect(1, 1114109, '\P{Noncharacter_Code_Point:  _YES}', "");
+    Expect(0, 1114109, '\P{^Noncharacter_Code_Point:  _YES}', "");
+    Error('\p{NChar=_	Y/a/}');
+    Error('\P{NChar=_	Y/a/}');
     Expect(1, 1114111, '\p{NChar=:\AY\z:}', "");;
     Expect(0, 1114109, '\p{NChar=:\AY\z:}', "");;
     Expect(1, 1114111, '\p{NChar=y}', "");
@@ -66289,8 +66871,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1114109, '\p{^NChar=_-Y}', "");
     Expect(1, 1114109, '\P{NChar=_-Y}', "");
     Expect(0, 1114109, '\P{^NChar=_-Y}', "");
-    Error('\p{Is_Noncharacter_Code_Point=	:=t}');
-    Error('\P{Is_Noncharacter_Code_Point=	:=t}');
+    Error('\p{Is_Noncharacter_Code_Point=_	T:=}');
+    Error('\P{Is_Noncharacter_Code_Point=_	T:=}');
     Expect(1, 1114111, '\p{Is_Noncharacter_Code_Point=t}', "");
     Expect(0, 1114111, '\p{^Is_Noncharacter_Code_Point=t}', "");
     Expect(0, 1114111, '\P{Is_Noncharacter_Code_Point=t}', "");
@@ -66299,16 +66881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1114109, '\p{^Is_Noncharacter_Code_Point=t}', "");
     Expect(1, 1114109, '\P{Is_Noncharacter_Code_Point=t}', "");
     Expect(0, 1114109, '\P{^Is_Noncharacter_Code_Point=t}', "");
-    Expect(1, 1114111, '\p{Is_Noncharacter_Code_Point=	T}', "");
-    Expect(0, 1114111, '\p{^Is_Noncharacter_Code_Point=	T}', "");
-    Expect(0, 1114111, '\P{Is_Noncharacter_Code_Point=	T}', "");
-    Expect(1, 1114111, '\P{^Is_Noncharacter_Code_Point=	T}', "");
-    Expect(0, 1114109, '\p{Is_Noncharacter_Code_Point=	T}', "");
-    Expect(1, 1114109, '\p{^Is_Noncharacter_Code_Point=	T}', "");
-    Expect(1, 1114109, '\P{Is_Noncharacter_Code_Point=	T}', "");
-    Expect(0, 1114109, '\P{^Is_Noncharacter_Code_Point=	T}', "");
-    Error('\p{Is_NChar=__TRUE:=}');
-    Error('\P{Is_NChar=__TRUE:=}');
+    Expect(1, 1114111, '\p{Is_Noncharacter_Code_Point: -T}', "");
+    Expect(0, 1114111, '\p{^Is_Noncharacter_Code_Point: -T}', "");
+    Expect(0, 1114111, '\P{Is_Noncharacter_Code_Point: -T}', "");
+    Expect(1, 1114111, '\P{^Is_Noncharacter_Code_Point: -T}', "");
+    Expect(0, 1114109, '\p{Is_Noncharacter_Code_Point: -T}', "");
+    Expect(1, 1114109, '\p{^Is_Noncharacter_Code_Point: -T}', "");
+    Expect(1, 1114109, '\P{Is_Noncharacter_Code_Point: -T}', "");
+    Expect(0, 1114109, '\P{^Is_Noncharacter_Code_Point: -T}', "");
+    Error('\p{Is_NChar=/a/ _TRUE}');
+    Error('\P{Is_NChar=/a/ _TRUE}');
     Expect(1, 1114111, '\p{Is_NChar=true}', "");
     Expect(0, 1114111, '\p{^Is_NChar=true}', "");
     Expect(0, 1114111, '\P{Is_NChar=true}', "");
@@ -66317,20 +66899,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 1114109, '\p{^Is_NChar=true}', "");
     Expect(1, 1114109, '\P{Is_NChar=true}', "");
     Expect(0, 1114109, '\P{^Is_NChar=true}', "");
-    Expect(1, 1114111, '\p{Is_NChar= _True}', "");
-    Expect(0, 1114111, '\p{^Is_NChar= _True}', "");
-    Expect(0, 1114111, '\P{Is_NChar= _True}', "");
-    Expect(1, 1114111, '\P{^Is_NChar= _True}', "");
-    Expect(0, 1114109, '\p{Is_NChar= _True}', "");
-    Expect(1, 1114109, '\p{^Is_NChar= _True}', "");
-    Expect(1, 1114109, '\P{Is_NChar= _True}', "");
-    Expect(0, 1114109, '\P{^Is_NChar= _True}', "");
+    Expect(1, 1114111, '\p{Is_NChar=	TRUE}', "");
+    Expect(0, 1114111, '\p{^Is_NChar=	TRUE}', "");
+    Expect(0, 1114111, '\P{Is_NChar=	TRUE}', "");
+    Expect(1, 1114111, '\P{^Is_NChar=	TRUE}', "");
+    Expect(0, 1114109, '\p{Is_NChar=	TRUE}', "");
+    Expect(1, 1114109, '\p{^Is_NChar=	TRUE}', "");
+    Expect(1, 1114109, '\P{Is_NChar=	TRUE}', "");
+    Expect(0, 1114109, '\P{^Is_NChar=	TRUE}', "");
     Error('\p{nfcquickcheck}');
     Error('\P{nfcquickcheck}');
     Error('\p{nfcqc}');
     Error('\P{nfcqc}');
-    Error('\p{NFC_Quick_Check=--MAYBE/a/}');
-    Error('\P{NFC_Quick_Check=--MAYBE/a/}');
+    Error('\p{NFC_Quick_Check=_-MAYBE:=}');
+    Error('\P{NFC_Quick_Check=_-MAYBE:=}');
     Expect(1, 71984, '\p{NFC_Quick_Check=:\AMaybe\z:}', "");;
     Expect(0, 71985, '\p{NFC_Quick_Check=:\AMaybe\z:}', "");;
     Expect(1, 71984, '\p{NFC_Quick_Check=maybe}', "");
@@ -66343,16 +66925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71985, '\P{^NFC_Quick_Check=maybe}', "");
     Expect(1, 71984, '\p{NFC_Quick_Check=:\Amaybe\z:}', "");;
     Expect(0, 71985, '\p{NFC_Quick_Check=:\Amaybe\z:}', "");;
-    Expect(1, 71984, '\p{NFC_Quick_Check=  maybe}', "");
-    Expect(0, 71984, '\p{^NFC_Quick_Check=  maybe}', "");
-    Expect(0, 71984, '\P{NFC_Quick_Check=  maybe}', "");
-    Expect(1, 71984, '\P{^NFC_Quick_Check=  maybe}', "");
-    Expect(0, 71985, '\p{NFC_Quick_Check=  maybe}', "");
-    Expect(1, 71985, '\p{^NFC_Quick_Check=  maybe}', "");
-    Expect(1, 71985, '\P{NFC_Quick_Check=  maybe}', "");
-    Expect(0, 71985, '\P{^NFC_Quick_Check=  maybe}', "");
-    Error('\p{NFC_QC=	-M:=}');
-    Error('\P{NFC_QC=	-M:=}');
+    Expect(1, 71984, '\p{NFC_Quick_Check=_Maybe}', "");
+    Expect(0, 71984, '\p{^NFC_Quick_Check=_Maybe}', "");
+    Expect(0, 71984, '\P{NFC_Quick_Check=_Maybe}', "");
+    Expect(1, 71984, '\P{^NFC_Quick_Check=_Maybe}', "");
+    Expect(0, 71985, '\p{NFC_Quick_Check=_Maybe}', "");
+    Expect(1, 71985, '\p{^NFC_Quick_Check=_Maybe}', "");
+    Expect(1, 71985, '\P{NFC_Quick_Check=_Maybe}', "");
+    Expect(0, 71985, '\P{^NFC_Quick_Check=_Maybe}', "");
+    Error('\p{NFC_QC=  M:=}');
+    Error('\P{NFC_QC=  M:=}');
     Expect(1, 71984, '\p{NFC_QC=:\AM\z:}', "");;
     Expect(0, 71985, '\p{NFC_QC=:\AM\z:}', "");;
     Expect(1, 71984, '\p{NFC_QC=m}', "");
@@ -66365,16 +66947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71985, '\P{^NFC_QC=m}', "");
     Expect(1, 71984, '\p{NFC_QC=:\Am\z:}', "");;
     Expect(0, 71985, '\p{NFC_QC=:\Am\z:}', "");;
-    Expect(1, 71984, '\p{NFC_QC:	m}', "");
-    Expect(0, 71984, '\p{^NFC_QC:	m}', "");
-    Expect(0, 71984, '\P{NFC_QC:	m}', "");
-    Expect(1, 71984, '\P{^NFC_QC:	m}', "");
-    Expect(0, 71985, '\p{NFC_QC:	m}', "");
-    Expect(1, 71985, '\p{^NFC_QC:	m}', "");
-    Expect(1, 71985, '\P{NFC_QC:	m}', "");
-    Expect(0, 71985, '\P{^NFC_QC:	m}', "");
-    Error('\p{Is_NFC_Quick_Check=/a/-maybe}');
-    Error('\P{Is_NFC_Quick_Check=/a/-maybe}');
+    Expect(1, 71984, '\p{NFC_QC=_M}', "");
+    Expect(0, 71984, '\p{^NFC_QC=_M}', "");
+    Expect(0, 71984, '\P{NFC_QC=_M}', "");
+    Expect(1, 71984, '\P{^NFC_QC=_M}', "");
+    Expect(0, 71985, '\p{NFC_QC=_M}', "");
+    Expect(1, 71985, '\p{^NFC_QC=_M}', "");
+    Expect(1, 71985, '\P{NFC_QC=_M}', "");
+    Expect(0, 71985, '\P{^NFC_QC=_M}', "");
+    Error('\p{Is_NFC_Quick_Check: 	Maybe/a/}');
+    Error('\P{Is_NFC_Quick_Check: 	Maybe/a/}');
     Expect(1, 71984, '\p{Is_NFC_Quick_Check=maybe}', "");
     Expect(0, 71984, '\p{^Is_NFC_Quick_Check=maybe}', "");
     Expect(0, 71984, '\P{Is_NFC_Quick_Check=maybe}', "");
@@ -66383,16 +66965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71985, '\p{^Is_NFC_Quick_Check=maybe}', "");
     Expect(1, 71985, '\P{Is_NFC_Quick_Check=maybe}', "");
     Expect(0, 71985, '\P{^Is_NFC_Quick_Check=maybe}', "");
-    Expect(1, 71984, '\p{Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(0, 71984, '\p{^Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(0, 71984, '\P{Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(1, 71984, '\P{^Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(0, 71985, '\p{Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(1, 71985, '\p{^Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(1, 71985, '\P{Is_NFC_Quick_Check= MAYBE}', "");
-    Expect(0, 71985, '\P{^Is_NFC_Quick_Check= MAYBE}', "");
-    Error('\p{Is_NFC_QC=-_M:=}');
-    Error('\P{Is_NFC_QC=-_M:=}');
+    Expect(1, 71984, '\p{Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(0, 71984, '\p{^Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(0, 71984, '\P{Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(1, 71984, '\P{^Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(0, 71985, '\p{Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(1, 71985, '\p{^Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(1, 71985, '\P{Is_NFC_Quick_Check=	MAYBE}', "");
+    Expect(0, 71985, '\P{^Is_NFC_Quick_Check=	MAYBE}', "");
+    Error('\p{Is_NFC_QC=	-M:=}');
+    Error('\P{Is_NFC_QC=	-M:=}');
     Expect(1, 71984, '\p{Is_NFC_QC=m}', "");
     Expect(0, 71984, '\p{^Is_NFC_QC=m}', "");
     Expect(0, 71984, '\P{Is_NFC_QC=m}', "");
@@ -66401,16 +66983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71985, '\p{^Is_NFC_QC=m}', "");
     Expect(1, 71985, '\P{Is_NFC_QC=m}', "");
     Expect(0, 71985, '\P{^Is_NFC_QC=m}', "");
-    Expect(1, 71984, '\p{Is_NFC_QC=	M}', "");
-    Expect(0, 71984, '\p{^Is_NFC_QC=	M}', "");
-    Expect(0, 71984, '\P{Is_NFC_QC=	M}', "");
-    Expect(1, 71984, '\P{^Is_NFC_QC=	M}', "");
-    Expect(0, 71985, '\p{Is_NFC_QC=	M}', "");
-    Expect(1, 71985, '\p{^Is_NFC_QC=	M}', "");
-    Expect(1, 71985, '\P{Is_NFC_QC=	M}', "");
-    Expect(0, 71985, '\P{^Is_NFC_QC=	M}', "");
-    Error('\p{NFC_Quick_Check=-/a/No}');
-    Error('\P{NFC_Quick_Check=-/a/No}');
+    Expect(1, 71984, '\p{Is_NFC_QC=- m}', "");
+    Expect(0, 71984, '\p{^Is_NFC_QC=- m}', "");
+    Expect(0, 71984, '\P{Is_NFC_QC=- m}', "");
+    Expect(1, 71984, '\P{^Is_NFC_QC=- m}', "");
+    Expect(0, 71985, '\p{Is_NFC_QC=- m}', "");
+    Expect(1, 71985, '\p{^Is_NFC_QC=- m}', "");
+    Expect(1, 71985, '\P{Is_NFC_QC=- m}', "");
+    Expect(0, 71985, '\P{^Is_NFC_QC=- m}', "");
+    Error('\p{NFC_Quick_Check=:=__No}');
+    Error('\P{NFC_Quick_Check=:=__No}');
     Expect(1, 195101, '\p{NFC_Quick_Check=:\ANo\z:}', "");;
     Expect(0, 195102, '\p{NFC_Quick_Check=:\ANo\z:}', "");;
     Expect(1, 195101, '\p{NFC_Quick_Check=no}', "");
@@ -66423,16 +67005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFC_Quick_Check=no}', "");
     Expect(1, 195101, '\p{NFC_Quick_Check=:\Ano\z:}', "");;
     Expect(0, 195102, '\p{NFC_Quick_Check=:\Ano\z:}', "");;
-    Expect(1, 195101, '\p{NFC_Quick_Check:   _No}', "");
-    Expect(0, 195101, '\p{^NFC_Quick_Check:   _No}', "");
-    Expect(0, 195101, '\P{NFC_Quick_Check:   _No}', "");
-    Expect(1, 195101, '\P{^NFC_Quick_Check:   _No}', "");
-    Expect(0, 195102, '\p{NFC_Quick_Check:   _No}', "");
-    Expect(1, 195102, '\p{^NFC_Quick_Check:   _No}', "");
-    Expect(1, 195102, '\P{NFC_Quick_Check:   _No}', "");
-    Expect(0, 195102, '\P{^NFC_Quick_Check:   _No}', "");
-    Error('\p{NFC_QC=/a/ _N}');
-    Error('\P{NFC_QC=/a/ _N}');
+    Expect(1, 195101, '\p{NFC_Quick_Check= _No}', "");
+    Expect(0, 195101, '\p{^NFC_Quick_Check= _No}', "");
+    Expect(0, 195101, '\P{NFC_Quick_Check= _No}', "");
+    Expect(1, 195101, '\P{^NFC_Quick_Check= _No}', "");
+    Expect(0, 195102, '\p{NFC_Quick_Check= _No}', "");
+    Expect(1, 195102, '\p{^NFC_Quick_Check= _No}', "");
+    Expect(1, 195102, '\P{NFC_Quick_Check= _No}', "");
+    Expect(0, 195102, '\P{^NFC_Quick_Check= _No}', "");
+    Error('\p{NFC_QC=:= N}');
+    Error('\P{NFC_QC=:= N}');
     Expect(1, 195101, '\p{NFC_QC=:\AN\z:}', "");;
     Expect(0, 195102, '\p{NFC_QC=:\AN\z:}', "");;
     Expect(1, 195101, '\p{NFC_QC=n}', "");
@@ -66445,16 +67027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFC_QC=n}', "");
     Expect(1, 195101, '\p{NFC_QC=:\An\z:}', "");;
     Expect(0, 195102, '\p{NFC_QC=:\An\z:}', "");;
-    Expect(1, 195101, '\p{NFC_QC=_	N}', "");
-    Expect(0, 195101, '\p{^NFC_QC=_	N}', "");
-    Expect(0, 195101, '\P{NFC_QC=_	N}', "");
-    Expect(1, 195101, '\P{^NFC_QC=_	N}', "");
-    Expect(0, 195102, '\p{NFC_QC=_	N}', "");
-    Expect(1, 195102, '\p{^NFC_QC=_	N}', "");
-    Expect(1, 195102, '\P{NFC_QC=_	N}', "");
-    Expect(0, 195102, '\P{^NFC_QC=_	N}', "");
-    Error('\p{Is_NFC_Quick_Check=-no/a/}');
-    Error('\P{Is_NFC_Quick_Check=-no/a/}');
+    Expect(1, 195101, '\p{NFC_QC=	_N}', "");
+    Expect(0, 195101, '\p{^NFC_QC=	_N}', "");
+    Expect(0, 195101, '\P{NFC_QC=	_N}', "");
+    Expect(1, 195101, '\P{^NFC_QC=	_N}', "");
+    Expect(0, 195102, '\p{NFC_QC=	_N}', "");
+    Expect(1, 195102, '\p{^NFC_QC=	_N}', "");
+    Expect(1, 195102, '\P{NFC_QC=	_N}', "");
+    Expect(0, 195102, '\P{^NFC_QC=	_N}', "");
+    Error('\p{Is_NFC_Quick_Check=/a/_NO}');
+    Error('\P{Is_NFC_Quick_Check=/a/_NO}');
     Expect(1, 195101, '\p{Is_NFC_Quick_Check=no}', "");
     Expect(0, 195101, '\p{^Is_NFC_Quick_Check=no}', "");
     Expect(0, 195101, '\P{Is_NFC_Quick_Check=no}', "");
@@ -66463,16 +67045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_NFC_Quick_Check=no}', "");
     Expect(1, 195102, '\P{Is_NFC_Quick_Check=no}', "");
     Expect(0, 195102, '\P{^Is_NFC_Quick_Check=no}', "");
-    Expect(1, 195101, '\p{Is_NFC_Quick_Check=_No}', "");
-    Expect(0, 195101, '\p{^Is_NFC_Quick_Check=_No}', "");
-    Expect(0, 195101, '\P{Is_NFC_Quick_Check=_No}', "");
-    Expect(1, 195101, '\P{^Is_NFC_Quick_Check=_No}', "");
-    Expect(0, 195102, '\p{Is_NFC_Quick_Check=_No}', "");
-    Expect(1, 195102, '\p{^Is_NFC_Quick_Check=_No}', "");
-    Expect(1, 195102, '\P{Is_NFC_Quick_Check=_No}', "");
-    Expect(0, 195102, '\P{^Is_NFC_Quick_Check=_No}', "");
-    Error('\p{Is_NFC_QC=:= -N}');
-    Error('\P{Is_NFC_QC=:= -N}');
+    Expect(1, 195101, '\p{Is_NFC_Quick_Check= _No}', "");
+    Expect(0, 195101, '\p{^Is_NFC_Quick_Check= _No}', "");
+    Expect(0, 195101, '\P{Is_NFC_Quick_Check= _No}', "");
+    Expect(1, 195101, '\P{^Is_NFC_Quick_Check= _No}', "");
+    Expect(0, 195102, '\p{Is_NFC_Quick_Check= _No}', "");
+    Expect(1, 195102, '\p{^Is_NFC_Quick_Check= _No}', "");
+    Expect(1, 195102, '\P{Is_NFC_Quick_Check= _No}', "");
+    Expect(0, 195102, '\P{^Is_NFC_Quick_Check= _No}', "");
+    Error('\p{Is_NFC_QC= _N/a/}');
+    Error('\P{Is_NFC_QC= _N/a/}');
     Expect(1, 195101, '\p{Is_NFC_QC=n}', "");
     Expect(0, 195101, '\p{^Is_NFC_QC=n}', "");
     Expect(0, 195101, '\P{Is_NFC_QC=n}', "");
@@ -66481,16 +67063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_NFC_QC=n}', "");
     Expect(1, 195102, '\P{Is_NFC_QC=n}', "");
     Expect(0, 195102, '\P{^Is_NFC_QC=n}', "");
-    Expect(1, 195101, '\p{Is_NFC_QC:	_N}', "");
-    Expect(0, 195101, '\p{^Is_NFC_QC:	_N}', "");
-    Expect(0, 195101, '\P{Is_NFC_QC:	_N}', "");
-    Expect(1, 195101, '\P{^Is_NFC_QC:	_N}', "");
-    Expect(0, 195102, '\p{Is_NFC_QC:	_N}', "");
-    Expect(1, 195102, '\p{^Is_NFC_QC:	_N}', "");
-    Expect(1, 195102, '\P{Is_NFC_QC:	_N}', "");
-    Expect(0, 195102, '\P{^Is_NFC_QC:	_N}', "");
-    Error('\p{NFC_Quick_Check= 	YES/a/}');
-    Error('\P{NFC_Quick_Check= 	YES/a/}');
+    Expect(1, 195101, '\p{Is_NFC_QC= _N}', "");
+    Expect(0, 195101, '\p{^Is_NFC_QC= _N}', "");
+    Expect(0, 195101, '\P{Is_NFC_QC= _N}', "");
+    Expect(1, 195101, '\P{^Is_NFC_QC= _N}', "");
+    Expect(0, 195102, '\p{Is_NFC_QC= _N}', "");
+    Expect(1, 195102, '\p{^Is_NFC_QC= _N}', "");
+    Expect(1, 195102, '\P{Is_NFC_QC= _N}', "");
+    Expect(0, 195102, '\P{^Is_NFC_QC= _N}', "");
+    Error('\p{NFC_Quick_Check=-YES:=}');
+    Error('\P{NFC_Quick_Check=-YES:=}');
     Expect(1, 195102, '\p{NFC_Quick_Check=:\AYes\z:}', "");;
     Expect(0, 195101, '\p{NFC_Quick_Check=:\AYes\z:}', "");;
     Expect(1, 195102, '\p{NFC_Quick_Check=yes}', "");
@@ -66503,16 +67085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195101, '\P{^NFC_Quick_Check=yes}', "");
     Expect(1, 195102, '\p{NFC_Quick_Check=:\Ayes\z:}', "");;
     Expect(0, 195101, '\p{NFC_Quick_Check=:\Ayes\z:}', "");;
-    Expect(1, 195102, '\p{NFC_Quick_Check=  YES}', "");
-    Expect(0, 195102, '\p{^NFC_Quick_Check=  YES}', "");
-    Expect(0, 195102, '\P{NFC_Quick_Check=  YES}', "");
-    Expect(1, 195102, '\P{^NFC_Quick_Check=  YES}', "");
-    Expect(0, 195101, '\p{NFC_Quick_Check=  YES}', "");
-    Expect(1, 195101, '\p{^NFC_Quick_Check=  YES}', "");
-    Expect(1, 195101, '\P{NFC_Quick_Check=  YES}', "");
-    Expect(0, 195101, '\P{^NFC_Quick_Check=  YES}', "");
-    Error('\p{NFC_QC=/a/_ Y}');
-    Error('\P{NFC_QC=/a/_ Y}');
+    Expect(1, 195102, '\p{NFC_Quick_Check=	_YES}', "");
+    Expect(0, 195102, '\p{^NFC_Quick_Check=	_YES}', "");
+    Expect(0, 195102, '\P{NFC_Quick_Check=	_YES}', "");
+    Expect(1, 195102, '\P{^NFC_Quick_Check=	_YES}', "");
+    Expect(0, 195101, '\p{NFC_Quick_Check=	_YES}', "");
+    Expect(1, 195101, '\p{^NFC_Quick_Check=	_YES}', "");
+    Expect(1, 195101, '\P{NFC_Quick_Check=	_YES}', "");
+    Expect(0, 195101, '\P{^NFC_Quick_Check=	_YES}', "");
+    Error('\p{NFC_QC=-	Y:=}');
+    Error('\P{NFC_QC=-	Y:=}');
     Expect(1, 195102, '\p{NFC_QC=:\AY\z:}', "");;
     Expect(0, 195101, '\p{NFC_QC=:\AY\z:}', "");;
     Expect(1, 195102, '\p{NFC_QC=y}', "");
@@ -66525,16 +67107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195101, '\P{^NFC_QC=y}', "");
     Expect(1, 195102, '\p{NFC_QC=:\Ay\z:}', "");;
     Expect(0, 195101, '\p{NFC_QC=:\Ay\z:}', "");;
-    Expect(1, 195102, '\p{NFC_QC=Y}', "");
-    Expect(0, 195102, '\p{^NFC_QC=Y}', "");
-    Expect(0, 195102, '\P{NFC_QC=Y}', "");
-    Expect(1, 195102, '\P{^NFC_QC=Y}', "");
-    Expect(0, 195101, '\p{NFC_QC=Y}', "");
-    Expect(1, 195101, '\p{^NFC_QC=Y}', "");
-    Expect(1, 195101, '\P{NFC_QC=Y}', "");
-    Expect(0, 195101, '\P{^NFC_QC=Y}', "");
-    Error('\p{Is_NFC_Quick_Check=		Yes:=}');
-    Error('\P{Is_NFC_Quick_Check=		Yes:=}');
+    Expect(1, 195102, '\p{NFC_QC= 	Y}', "");
+    Expect(0, 195102, '\p{^NFC_QC= 	Y}', "");
+    Expect(0, 195102, '\P{NFC_QC= 	Y}', "");
+    Expect(1, 195102, '\P{^NFC_QC= 	Y}', "");
+    Expect(0, 195101, '\p{NFC_QC= 	Y}', "");
+    Expect(1, 195101, '\p{^NFC_QC= 	Y}', "");
+    Expect(1, 195101, '\P{NFC_QC= 	Y}', "");
+    Expect(0, 195101, '\P{^NFC_QC= 	Y}', "");
+    Error('\p{Is_NFC_Quick_Check=-/a/Yes}');
+    Error('\P{Is_NFC_Quick_Check=-/a/Yes}');
     Expect(1, 195102, '\p{Is_NFC_Quick_Check=yes}', "");
     Expect(0, 195102, '\p{^Is_NFC_Quick_Check=yes}', "");
     Expect(0, 195102, '\P{Is_NFC_Quick_Check=yes}', "");
@@ -66543,16 +67125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFC_Quick_Check=yes}', "");
     Expect(1, 195101, '\P{Is_NFC_Quick_Check=yes}', "");
     Expect(0, 195101, '\P{^Is_NFC_Quick_Check=yes}', "");
-    Expect(1, 195102, '\p{Is_NFC_Quick_Check=_Yes}', "");
-    Expect(0, 195102, '\p{^Is_NFC_Quick_Check=_Yes}', "");
-    Expect(0, 195102, '\P{Is_NFC_Quick_Check=_Yes}', "");
-    Expect(1, 195102, '\P{^Is_NFC_Quick_Check=_Yes}', "");
-    Expect(0, 195101, '\p{Is_NFC_Quick_Check=_Yes}', "");
-    Expect(1, 195101, '\p{^Is_NFC_Quick_Check=_Yes}', "");
-    Expect(1, 195101, '\P{Is_NFC_Quick_Check=_Yes}', "");
-    Expect(0, 195101, '\P{^Is_NFC_Quick_Check=_Yes}', "");
-    Error('\p{Is_NFC_QC:   /a/ _y}');
-    Error('\P{Is_NFC_QC:   /a/ _y}');
+    Expect(1, 195102, '\p{Is_NFC_Quick_Check=--YES}', "");
+    Expect(0, 195102, '\p{^Is_NFC_Quick_Check=--YES}', "");
+    Expect(0, 195102, '\P{Is_NFC_Quick_Check=--YES}', "");
+    Expect(1, 195102, '\P{^Is_NFC_Quick_Check=--YES}', "");
+    Expect(0, 195101, '\p{Is_NFC_Quick_Check=--YES}', "");
+    Expect(1, 195101, '\p{^Is_NFC_Quick_Check=--YES}', "");
+    Expect(1, 195101, '\P{Is_NFC_Quick_Check=--YES}', "");
+    Expect(0, 195101, '\P{^Is_NFC_Quick_Check=--YES}', "");
+    Error('\p{Is_NFC_QC=Y:=}');
+    Error('\P{Is_NFC_QC=Y:=}');
     Expect(1, 195102, '\p{Is_NFC_QC=y}', "");
     Expect(0, 195102, '\p{^Is_NFC_QC=y}', "");
     Expect(0, 195102, '\P{Is_NFC_QC=y}', "");
@@ -66561,20 +67143,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFC_QC=y}', "");
     Expect(1, 195101, '\P{Is_NFC_QC=y}', "");
     Expect(0, 195101, '\P{^Is_NFC_QC=y}', "");
-    Expect(1, 195102, '\p{Is_NFC_QC=	y}', "");
-    Expect(0, 195102, '\p{^Is_NFC_QC=	y}', "");
-    Expect(0, 195102, '\P{Is_NFC_QC=	y}', "");
-    Expect(1, 195102, '\P{^Is_NFC_QC=	y}', "");
-    Expect(0, 195101, '\p{Is_NFC_QC=	y}', "");
-    Expect(1, 195101, '\p{^Is_NFC_QC=	y}', "");
-    Expect(1, 195101, '\P{Is_NFC_QC=	y}', "");
-    Expect(0, 195101, '\P{^Is_NFC_QC=	y}', "");
+    Expect(1, 195102, '\p{Is_NFC_QC= 	Y}', "");
+    Expect(0, 195102, '\p{^Is_NFC_QC= 	Y}', "");
+    Expect(0, 195102, '\P{Is_NFC_QC= 	Y}', "");
+    Expect(1, 195102, '\P{^Is_NFC_QC= 	Y}', "");
+    Expect(0, 195101, '\p{Is_NFC_QC= 	Y}', "");
+    Expect(1, 195101, '\p{^Is_NFC_QC= 	Y}', "");
+    Expect(1, 195101, '\P{Is_NFC_QC= 	Y}', "");
+    Expect(0, 195101, '\P{^Is_NFC_QC= 	Y}', "");
     Error('\p{nfdquickcheck}');
     Error('\P{nfdquickcheck}');
     Error('\p{nfdqc}');
     Error('\P{nfdqc}');
-    Error('\p{NFD_Quick_Check:	:=_ no}');
-    Error('\P{NFD_Quick_Check:	:=_ no}');
+    Error('\p{NFD_Quick_Check= _No/a/}');
+    Error('\P{NFD_Quick_Check= _No/a/}');
     Expect(1, 195101, '\p{NFD_Quick_Check=:\ANo\z:}', "");;
     Expect(0, 195102, '\p{NFD_Quick_Check=:\ANo\z:}', "");;
     Expect(1, 195101, '\p{NFD_Quick_Check=no}', "");
@@ -66587,16 +67169,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFD_Quick_Check=no}', "");
     Expect(1, 195101, '\p{NFD_Quick_Check=:\Ano\z:}', "");;
     Expect(0, 195102, '\p{NFD_Quick_Check=:\Ano\z:}', "");;
-    Expect(1, 195101, '\p{NFD_Quick_Check=_no}', "");
-    Expect(0, 195101, '\p{^NFD_Quick_Check=_no}', "");
-    Expect(0, 195101, '\P{NFD_Quick_Check=_no}', "");
-    Expect(1, 195101, '\P{^NFD_Quick_Check=_no}', "");
-    Expect(0, 195102, '\p{NFD_Quick_Check=_no}', "");
-    Expect(1, 195102, '\p{^NFD_Quick_Check=_no}', "");
-    Expect(1, 195102, '\P{NFD_Quick_Check=_no}', "");
-    Expect(0, 195102, '\P{^NFD_Quick_Check=_no}', "");
-    Error('\p{NFD_QC=/a/__N}');
-    Error('\P{NFD_QC=/a/__N}');
+    Expect(1, 195101, '\p{NFD_Quick_Check:_-No}', "");
+    Expect(0, 195101, '\p{^NFD_Quick_Check:_-No}', "");
+    Expect(0, 195101, '\P{NFD_Quick_Check:_-No}', "");
+    Expect(1, 195101, '\P{^NFD_Quick_Check:_-No}', "");
+    Expect(0, 195102, '\p{NFD_Quick_Check:_-No}', "");
+    Expect(1, 195102, '\p{^NFD_Quick_Check:_-No}', "");
+    Expect(1, 195102, '\P{NFD_Quick_Check:_-No}', "");
+    Expect(0, 195102, '\P{^NFD_Quick_Check:_-No}', "");
+    Error('\p{NFD_QC=	:=N}');
+    Error('\P{NFD_QC=	:=N}');
     Expect(1, 195101, '\p{NFD_QC=:\AN\z:}', "");;
     Expect(0, 195102, '\p{NFD_QC=:\AN\z:}', "");;
     Expect(1, 195101, '\p{NFD_QC=n}', "");
@@ -66609,16 +67191,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFD_QC=n}', "");
     Expect(1, 195101, '\p{NFD_QC=:\An\z:}', "");;
     Expect(0, 195102, '\p{NFD_QC=:\An\z:}', "");;
-    Expect(1, 195101, '\p{NFD_QC=		N}', "");
-    Expect(0, 195101, '\p{^NFD_QC=		N}', "");
-    Expect(0, 195101, '\P{NFD_QC=		N}', "");
-    Expect(1, 195101, '\P{^NFD_QC=		N}', "");
-    Expect(0, 195102, '\p{NFD_QC=		N}', "");
-    Expect(1, 195102, '\p{^NFD_QC=		N}', "");
-    Expect(1, 195102, '\P{NFD_QC=		N}', "");
-    Expect(0, 195102, '\P{^NFD_QC=		N}', "");
-    Error('\p{Is_NFD_Quick_Check= 	No:=}');
-    Error('\P{Is_NFD_Quick_Check= 	No:=}');
+    Expect(1, 195101, '\p{NFD_QC= -N}', "");
+    Expect(0, 195101, '\p{^NFD_QC= -N}', "");
+    Expect(0, 195101, '\P{NFD_QC= -N}', "");
+    Expect(1, 195101, '\P{^NFD_QC= -N}', "");
+    Expect(0, 195102, '\p{NFD_QC= -N}', "");
+    Expect(1, 195102, '\p{^NFD_QC= -N}', "");
+    Expect(1, 195102, '\P{NFD_QC= -N}', "");
+    Expect(0, 195102, '\P{^NFD_QC= -N}', "");
+    Error('\p{Is_NFD_Quick_Check=/a/-_no}');
+    Error('\P{Is_NFD_Quick_Check=/a/-_no}');
     Expect(1, 195101, '\p{Is_NFD_Quick_Check=no}', "");
     Expect(0, 195101, '\p{^Is_NFD_Quick_Check=no}', "");
     Expect(0, 195101, '\P{Is_NFD_Quick_Check=no}', "");
@@ -66627,34 +67209,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_NFD_Quick_Check=no}', "");
     Expect(1, 195102, '\P{Is_NFD_Quick_Check=no}', "");
     Expect(0, 195102, '\P{^Is_NFD_Quick_Check=no}', "");
-    Expect(1, 195101, '\p{Is_NFD_Quick_Check: 	NO}', "");
-    Expect(0, 195101, '\p{^Is_NFD_Quick_Check: 	NO}', "");
-    Expect(0, 195101, '\P{Is_NFD_Quick_Check: 	NO}', "");
-    Expect(1, 195101, '\P{^Is_NFD_Quick_Check: 	NO}', "");
-    Expect(0, 195102, '\p{Is_NFD_Quick_Check: 	NO}', "");
-    Expect(1, 195102, '\p{^Is_NFD_Quick_Check: 	NO}', "");
-    Expect(1, 195102, '\P{Is_NFD_Quick_Check: 	NO}', "");
-    Expect(0, 195102, '\P{^Is_NFD_Quick_Check: 	NO}', "");
-    Error('\p{Is_NFD_QC=_ N:=}');
-    Error('\P{Is_NFD_QC=_ N:=}');
-    Expect(1, 195101, '\p{Is_NFD_QC=n}', "");
-    Expect(0, 195101, '\p{^Is_NFD_QC=n}', "");
-    Expect(0, 195101, '\P{Is_NFD_QC=n}', "");
-    Expect(1, 195101, '\P{^Is_NFD_QC=n}', "");
-    Expect(0, 195102, '\p{Is_NFD_QC=n}', "");
-    Expect(1, 195102, '\p{^Is_NFD_QC=n}', "");
-    Expect(1, 195102, '\P{Is_NFD_QC=n}', "");
-    Expect(0, 195102, '\P{^Is_NFD_QC=n}', "");
-    Expect(1, 195101, '\p{Is_NFD_QC:   -n}', "");
-    Expect(0, 195101, '\p{^Is_NFD_QC:   -n}', "");
-    Expect(0, 195101, '\P{Is_NFD_QC:   -n}', "");
-    Expect(1, 195101, '\P{^Is_NFD_QC:   -n}', "");
-    Expect(0, 195102, '\p{Is_NFD_QC:   -n}', "");
-    Expect(1, 195102, '\p{^Is_NFD_QC:   -n}', "");
-    Expect(1, 195102, '\P{Is_NFD_QC:   -n}', "");
-    Expect(0, 195102, '\P{^Is_NFD_QC:   -n}', "");
-    Error('\p{NFD_Quick_Check=:=YES}');
-    Error('\P{NFD_Quick_Check=:=YES}');
+    Expect(1, 195101, '\p{Is_NFD_Quick_Check= 	No}', "");
+    Expect(0, 195101, '\p{^Is_NFD_Quick_Check= 	No}', "");
+    Expect(0, 195101, '\P{Is_NFD_Quick_Check= 	No}', "");
+    Expect(1, 195101, '\P{^Is_NFD_Quick_Check= 	No}', "");
+    Expect(0, 195102, '\p{Is_NFD_Quick_Check= 	No}', "");
+    Expect(1, 195102, '\p{^Is_NFD_Quick_Check= 	No}', "");
+    Expect(1, 195102, '\P{Is_NFD_Quick_Check= 	No}', "");
+    Expect(0, 195102, '\P{^Is_NFD_Quick_Check= 	No}', "");
+    Error('\p{Is_NFD_QC= N:=}');
+    Error('\P{Is_NFD_QC= N:=}');
+    Expect(1, 195101, '\p{Is_NFD_QC: n}', "");
+    Expect(0, 195101, '\p{^Is_NFD_QC: n}', "");
+    Expect(0, 195101, '\P{Is_NFD_QC: n}', "");
+    Expect(1, 195101, '\P{^Is_NFD_QC: n}', "");
+    Expect(0, 195102, '\p{Is_NFD_QC: n}', "");
+    Expect(1, 195102, '\p{^Is_NFD_QC: n}', "");
+    Expect(1, 195102, '\P{Is_NFD_QC: n}', "");
+    Expect(0, 195102, '\P{^Is_NFD_QC: n}', "");
+    Expect(1, 195101, '\p{Is_NFD_QC=_N}', "");
+    Expect(0, 195101, '\p{^Is_NFD_QC=_N}', "");
+    Expect(0, 195101, '\P{Is_NFD_QC=_N}', "");
+    Expect(1, 195101, '\P{^Is_NFD_QC=_N}', "");
+    Expect(0, 195102, '\p{Is_NFD_QC=_N}', "");
+    Expect(1, 195102, '\p{^Is_NFD_QC=_N}', "");
+    Expect(1, 195102, '\P{Is_NFD_QC=_N}', "");
+    Expect(0, 195102, '\P{^Is_NFD_QC=_N}', "");
+    Error('\p{NFD_Quick_Check=-	Yes/a/}');
+    Error('\P{NFD_Quick_Check=-	Yes/a/}');
     Expect(1, 195102, '\p{NFD_Quick_Check=:\AYes\z:}', "");;
     Expect(0, 195101, '\p{NFD_Quick_Check=:\AYes\z:}', "");;
     Expect(1, 195102, '\p{NFD_Quick_Check=yes}', "");
@@ -66667,38 +67249,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195101, '\P{^NFD_Quick_Check=yes}', "");
     Expect(1, 195102, '\p{NFD_Quick_Check=:\Ayes\z:}', "");;
     Expect(0, 195101, '\p{NFD_Quick_Check=:\Ayes\z:}', "");;
-    Expect(1, 195102, '\p{NFD_Quick_Check= -yes}', "");
-    Expect(0, 195102, '\p{^NFD_Quick_Check= -yes}', "");
-    Expect(0, 195102, '\P{NFD_Quick_Check= -yes}', "");
-    Expect(1, 195102, '\P{^NFD_Quick_Check= -yes}', "");
-    Expect(0, 195101, '\p{NFD_Quick_Check= -yes}', "");
-    Expect(1, 195101, '\p{^NFD_Quick_Check= -yes}', "");
-    Expect(1, 195101, '\P{NFD_Quick_Check= -yes}', "");
-    Expect(0, 195101, '\P{^NFD_Quick_Check= -yes}', "");
-    Error('\p{NFD_QC=	/a/y}');
-    Error('\P{NFD_QC=	/a/y}');
+    Expect(1, 195102, '\p{NFD_Quick_Check= 	YES}', "");
+    Expect(0, 195102, '\p{^NFD_Quick_Check= 	YES}', "");
+    Expect(0, 195102, '\P{NFD_Quick_Check= 	YES}', "");
+    Expect(1, 195102, '\P{^NFD_Quick_Check= 	YES}', "");
+    Expect(0, 195101, '\p{NFD_Quick_Check= 	YES}', "");
+    Expect(1, 195101, '\p{^NFD_Quick_Check= 	YES}', "");
+    Expect(1, 195101, '\P{NFD_Quick_Check= 	YES}', "");
+    Expect(0, 195101, '\P{^NFD_Quick_Check= 	YES}', "");
+    Error('\p{NFD_QC=:= _Y}');
+    Error('\P{NFD_QC=:= _Y}');
     Expect(1, 195102, '\p{NFD_QC=:\AY\z:}', "");;
     Expect(0, 195101, '\p{NFD_QC=:\AY\z:}', "");;
-    Expect(1, 195102, '\p{NFD_QC=y}', "");
-    Expect(0, 195102, '\p{^NFD_QC=y}', "");
-    Expect(0, 195102, '\P{NFD_QC=y}', "");
-    Expect(1, 195102, '\P{^NFD_QC=y}', "");
-    Expect(0, 195101, '\p{NFD_QC=y}', "");
-    Expect(1, 195101, '\p{^NFD_QC=y}', "");
-    Expect(1, 195101, '\P{NFD_QC=y}', "");
-    Expect(0, 195101, '\P{^NFD_QC=y}', "");
+    Expect(1, 195102, '\p{NFD_QC:	y}', "");
+    Expect(0, 195102, '\p{^NFD_QC:	y}', "");
+    Expect(0, 195102, '\P{NFD_QC:	y}', "");
+    Expect(1, 195102, '\P{^NFD_QC:	y}', "");
+    Expect(0, 195101, '\p{NFD_QC:	y}', "");
+    Expect(1, 195101, '\p{^NFD_QC:	y}', "");
+    Expect(1, 195101, '\P{NFD_QC:	y}', "");
+    Expect(0, 195101, '\P{^NFD_QC:	y}', "");
     Expect(1, 195102, '\p{NFD_QC=:\Ay\z:}', "");;
     Expect(0, 195101, '\p{NFD_QC=:\Ay\z:}', "");;
-    Expect(1, 195102, '\p{NFD_QC=-_Y}', "");
-    Expect(0, 195102, '\p{^NFD_QC=-_Y}', "");
-    Expect(0, 195102, '\P{NFD_QC=-_Y}', "");
-    Expect(1, 195102, '\P{^NFD_QC=-_Y}', "");
-    Expect(0, 195101, '\p{NFD_QC=-_Y}', "");
-    Expect(1, 195101, '\p{^NFD_QC=-_Y}', "");
-    Expect(1, 195101, '\P{NFD_QC=-_Y}', "");
-    Expect(0, 195101, '\P{^NFD_QC=-_Y}', "");
-    Error('\p{Is_NFD_Quick_Check=/a/_YES}');
-    Error('\P{Is_NFD_Quick_Check=/a/_YES}');
+    Expect(1, 195102, '\p{NFD_QC:	-_Y}', "");
+    Expect(0, 195102, '\p{^NFD_QC:	-_Y}', "");
+    Expect(0, 195102, '\P{NFD_QC:	-_Y}', "");
+    Expect(1, 195102, '\P{^NFD_QC:	-_Y}', "");
+    Expect(0, 195101, '\p{NFD_QC:	-_Y}', "");
+    Expect(1, 195101, '\p{^NFD_QC:	-_Y}', "");
+    Expect(1, 195101, '\P{NFD_QC:	-_Y}', "");
+    Expect(0, 195101, '\P{^NFD_QC:	-_Y}', "");
+    Error('\p{Is_NFD_Quick_Check=:= 	yes}');
+    Error('\P{Is_NFD_Quick_Check=:= 	yes}');
     Expect(1, 195102, '\p{Is_NFD_Quick_Check=yes}', "");
     Expect(0, 195102, '\p{^Is_NFD_Quick_Check=yes}', "");
     Expect(0, 195102, '\P{Is_NFD_Quick_Check=yes}', "");
@@ -66707,16 +67289,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFD_Quick_Check=yes}', "");
     Expect(1, 195101, '\P{Is_NFD_Quick_Check=yes}', "");
     Expect(0, 195101, '\P{^Is_NFD_Quick_Check=yes}', "");
-    Expect(1, 195102, '\p{Is_NFD_Quick_Check= 	YES}', "");
-    Expect(0, 195102, '\p{^Is_NFD_Quick_Check= 	YES}', "");
-    Expect(0, 195102, '\P{Is_NFD_Quick_Check= 	YES}', "");
-    Expect(1, 195102, '\P{^Is_NFD_Quick_Check= 	YES}', "");
-    Expect(0, 195101, '\p{Is_NFD_Quick_Check= 	YES}', "");
-    Expect(1, 195101, '\p{^Is_NFD_Quick_Check= 	YES}', "");
-    Expect(1, 195101, '\P{Is_NFD_Quick_Check= 	YES}', "");
-    Expect(0, 195101, '\P{^Is_NFD_Quick_Check= 	YES}', "");
-    Error('\p{Is_NFD_QC=/a/-Y}');
-    Error('\P{Is_NFD_QC=/a/-Y}');
+    Expect(1, 195102, '\p{Is_NFD_Quick_Check=	yes}', "");
+    Expect(0, 195102, '\p{^Is_NFD_Quick_Check=	yes}', "");
+    Expect(0, 195102, '\P{Is_NFD_Quick_Check=	yes}', "");
+    Expect(1, 195102, '\P{^Is_NFD_Quick_Check=	yes}', "");
+    Expect(0, 195101, '\p{Is_NFD_Quick_Check=	yes}', "");
+    Expect(1, 195101, '\p{^Is_NFD_Quick_Check=	yes}', "");
+    Expect(1, 195101, '\P{Is_NFD_Quick_Check=	yes}', "");
+    Expect(0, 195101, '\P{^Is_NFD_Quick_Check=	yes}', "");
+    Error('\p{Is_NFD_QC=/a/  Y}');
+    Error('\P{Is_NFD_QC=/a/  Y}');
     Expect(1, 195102, '\p{Is_NFD_QC=y}', "");
     Expect(0, 195102, '\p{^Is_NFD_QC=y}', "");
     Expect(0, 195102, '\P{Is_NFD_QC=y}', "");
@@ -66725,14 +67307,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFD_QC=y}', "");
     Expect(1, 195101, '\P{Is_NFD_QC=y}', "");
     Expect(0, 195101, '\P{^Is_NFD_QC=y}', "");
-    Expect(1, 195102, '\p{Is_NFD_QC= -y}', "");
-    Expect(0, 195102, '\p{^Is_NFD_QC= -y}', "");
-    Expect(0, 195102, '\P{Is_NFD_QC= -y}', "");
-    Expect(1, 195102, '\P{^Is_NFD_QC= -y}', "");
-    Expect(0, 195101, '\p{Is_NFD_QC= -y}', "");
-    Expect(1, 195101, '\p{^Is_NFD_QC= -y}', "");
-    Expect(1, 195101, '\P{Is_NFD_QC= -y}', "");
-    Expect(0, 195101, '\P{^Is_NFD_QC= -y}', "");
+    Expect(1, 195102, '\p{Is_NFD_QC:	-Y}', "");
+    Expect(0, 195102, '\p{^Is_NFD_QC:	-Y}', "");
+    Expect(0, 195102, '\P{Is_NFD_QC:	-Y}', "");
+    Expect(1, 195102, '\P{^Is_NFD_QC:	-Y}', "");
+    Expect(0, 195101, '\p{Is_NFD_QC:	-Y}', "");
+    Expect(1, 195101, '\p{^Is_NFD_QC:	-Y}', "");
+    Expect(1, 195101, '\P{Is_NFD_QC:	-Y}', "");
+    Expect(0, 195101, '\P{^Is_NFD_QC:	-Y}', "");
     Error('\p{nfkccasefold}');
     Error('\P{nfkccasefold}');
     Error('\p{nfkccf}');
@@ -66741,8 +67323,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{nfkcquickcheck}');
     Error('\p{nfkcqc}');
     Error('\P{nfkcqc}');
-    Error('\p{NFKC_Quick_Check=	-Maybe:=}');
-    Error('\P{NFKC_Quick_Check=	-Maybe:=}');
+    Error('\p{NFKC_Quick_Check=/a/	_Maybe}');
+    Error('\P{NFKC_Quick_Check=/a/	_Maybe}');
     Expect(1, 71984, '\p{NFKC_Quick_Check=:\AMaybe\z:}', "");;
     Expect(0, 71985, '\p{NFKC_Quick_Check=:\AMaybe\z:}', "");;
     Expect(1, 71984, '\p{NFKC_Quick_Check=maybe}', "");
@@ -66755,16 +67337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71985, '\P{^NFKC_Quick_Check=maybe}', "");
     Expect(1, 71984, '\p{NFKC_Quick_Check=:\Amaybe\z:}', "");;
     Expect(0, 71985, '\p{NFKC_Quick_Check=:\Amaybe\z:}', "");;
-    Expect(1, 71984, '\p{NFKC_Quick_Check=_	maybe}', "");
-    Expect(0, 71984, '\p{^NFKC_Quick_Check=_	maybe}', "");
-    Expect(0, 71984, '\P{NFKC_Quick_Check=_	maybe}', "");
-    Expect(1, 71984, '\P{^NFKC_Quick_Check=_	maybe}', "");
-    Expect(0, 71985, '\p{NFKC_Quick_Check=_	maybe}', "");
-    Expect(1, 71985, '\p{^NFKC_Quick_Check=_	maybe}', "");
-    Expect(1, 71985, '\P{NFKC_Quick_Check=_	maybe}', "");
-    Expect(0, 71985, '\P{^NFKC_Quick_Check=_	maybe}', "");
-    Error('\p{NFKC_QC=-m/a/}');
-    Error('\P{NFKC_QC=-m/a/}');
+    Expect(1, 71984, '\p{NFKC_Quick_Check=  MAYBE}', "");
+    Expect(0, 71984, '\p{^NFKC_Quick_Check=  MAYBE}', "");
+    Expect(0, 71984, '\P{NFKC_Quick_Check=  MAYBE}', "");
+    Expect(1, 71984, '\P{^NFKC_Quick_Check=  MAYBE}', "");
+    Expect(0, 71985, '\p{NFKC_Quick_Check=  MAYBE}', "");
+    Expect(1, 71985, '\p{^NFKC_Quick_Check=  MAYBE}', "");
+    Expect(1, 71985, '\P{NFKC_Quick_Check=  MAYBE}', "");
+    Expect(0, 71985, '\P{^NFKC_Quick_Check=  MAYBE}', "");
+    Error('\p{NFKC_QC=/a/	-M}');
+    Error('\P{NFKC_QC=/a/	-M}');
     Expect(1, 71984, '\p{NFKC_QC=:\AM\z:}', "");;
     Expect(0, 71985, '\p{NFKC_QC=:\AM\z:}', "");;
     Expect(1, 71984, '\p{NFKC_QC=m}', "");
@@ -66777,34 +67359,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 71985, '\P{^NFKC_QC=m}', "");
     Expect(1, 71984, '\p{NFKC_QC=:\Am\z:}', "");;
     Expect(0, 71985, '\p{NFKC_QC=:\Am\z:}', "");;
-    Expect(1, 71984, '\p{NFKC_QC=	M}', "");
-    Expect(0, 71984, '\p{^NFKC_QC=	M}', "");
-    Expect(0, 71984, '\P{NFKC_QC=	M}', "");
-    Expect(1, 71984, '\P{^NFKC_QC=	M}', "");
-    Expect(0, 71985, '\p{NFKC_QC=	M}', "");
-    Expect(1, 71985, '\p{^NFKC_QC=	M}', "");
-    Expect(1, 71985, '\P{NFKC_QC=	M}', "");
-    Expect(0, 71985, '\P{^NFKC_QC=	M}', "");
-    Error('\p{Is_NFKC_Quick_Check:_ MAYBE/a/}');
-    Error('\P{Is_NFKC_Quick_Check:_ MAYBE/a/}');
-    Expect(1, 71984, '\p{Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(0, 71984, '\p{^Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(0, 71984, '\P{Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(1, 71984, '\P{^Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(0, 71985, '\p{Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(1, 71985, '\p{^Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(1, 71985, '\P{Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(0, 71985, '\P{^Is_NFKC_Quick_Check:   maybe}', "");
-    Expect(1, 71984, '\p{Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(0, 71984, '\p{^Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(0, 71984, '\P{Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(1, 71984, '\P{^Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(0, 71985, '\p{Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(1, 71985, '\p{^Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(1, 71985, '\P{Is_NFKC_Quick_Check=_MAYBE}', "");
-    Expect(0, 71985, '\P{^Is_NFKC_Quick_Check=_MAYBE}', "");
-    Error('\p{Is_NFKC_QC= -M:=}');
-    Error('\P{Is_NFKC_QC= -M:=}');
+    Expect(1, 71984, '\p{NFKC_QC=_M}', "");
+    Expect(0, 71984, '\p{^NFKC_QC=_M}', "");
+    Expect(0, 71984, '\P{NFKC_QC=_M}', "");
+    Expect(1, 71984, '\P{^NFKC_QC=_M}', "");
+    Expect(0, 71985, '\p{NFKC_QC=_M}', "");
+    Expect(1, 71985, '\p{^NFKC_QC=_M}', "");
+    Expect(1, 71985, '\P{NFKC_QC=_M}', "");
+    Expect(0, 71985, '\P{^NFKC_QC=_M}', "");
+    Error('\p{Is_NFKC_Quick_Check=		Maybe/a/}');
+    Error('\P{Is_NFKC_Quick_Check=		Maybe/a/}');
+    Expect(1, 71984, '\p{Is_NFKC_Quick_Check=maybe}', "");
+    Expect(0, 71984, '\p{^Is_NFKC_Quick_Check=maybe}', "");
+    Expect(0, 71984, '\P{Is_NFKC_Quick_Check=maybe}', "");
+    Expect(1, 71984, '\P{^Is_NFKC_Quick_Check=maybe}', "");
+    Expect(0, 71985, '\p{Is_NFKC_Quick_Check=maybe}', "");
+    Expect(1, 71985, '\p{^Is_NFKC_Quick_Check=maybe}', "");
+    Expect(1, 71985, '\P{Is_NFKC_Quick_Check=maybe}', "");
+    Expect(0, 71985, '\P{^Is_NFKC_Quick_Check=maybe}', "");
+    Expect(1, 71984, '\p{Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(0, 71984, '\p{^Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(0, 71984, '\P{Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(1, 71984, '\P{^Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(0, 71985, '\p{Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(1, 71985, '\p{^Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(1, 71985, '\P{Is_NFKC_Quick_Check=		Maybe}', "");
+    Expect(0, 71985, '\P{^Is_NFKC_Quick_Check=		Maybe}', "");
+    Error('\p{Is_NFKC_QC=:=	-M}');
+    Error('\P{Is_NFKC_QC=:=	-M}');
     Expect(1, 71984, '\p{Is_NFKC_QC=m}', "");
     Expect(0, 71984, '\p{^Is_NFKC_QC=m}', "");
     Expect(0, 71984, '\P{Is_NFKC_QC=m}', "");
@@ -66813,16 +67395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 71985, '\p{^Is_NFKC_QC=m}', "");
     Expect(1, 71985, '\P{Is_NFKC_QC=m}', "");
     Expect(0, 71985, '\P{^Is_NFKC_QC=m}', "");
-    Expect(1, 71984, '\p{Is_NFKC_QC=_ M}', "");
-    Expect(0, 71984, '\p{^Is_NFKC_QC=_ M}', "");
-    Expect(0, 71984, '\P{Is_NFKC_QC=_ M}', "");
-    Expect(1, 71984, '\P{^Is_NFKC_QC=_ M}', "");
-    Expect(0, 71985, '\p{Is_NFKC_QC=_ M}', "");
-    Expect(1, 71985, '\p{^Is_NFKC_QC=_ M}', "");
-    Expect(1, 71985, '\P{Is_NFKC_QC=_ M}', "");
-    Expect(0, 71985, '\P{^Is_NFKC_QC=_ M}', "");
-    Error('\p{NFKC_Quick_Check= :=No}');
-    Error('\P{NFKC_Quick_Check= :=No}');
+    Expect(1, 71984, '\p{Is_NFKC_QC=- M}', "");
+    Expect(0, 71984, '\p{^Is_NFKC_QC=- M}', "");
+    Expect(0, 71984, '\P{Is_NFKC_QC=- M}', "");
+    Expect(1, 71984, '\P{^Is_NFKC_QC=- M}', "");
+    Expect(0, 71985, '\p{Is_NFKC_QC=- M}', "");
+    Expect(1, 71985, '\p{^Is_NFKC_QC=- M}', "");
+    Expect(1, 71985, '\P{Is_NFKC_QC=- M}', "");
+    Expect(0, 71985, '\P{^Is_NFKC_QC=- M}', "");
+    Error('\p{NFKC_Quick_Check: :=	-NO}');
+    Error('\P{NFKC_Quick_Check: :=	-NO}');
     Expect(1, 195101, '\p{NFKC_Quick_Check=:\ANo\z:}', "");;
     Expect(0, 195102, '\p{NFKC_Quick_Check=:\ANo\z:}', "");;
     Expect(1, 195101, '\p{NFKC_Quick_Check=no}', "");
@@ -66835,16 +67417,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFKC_Quick_Check=no}', "");
     Expect(1, 195101, '\p{NFKC_Quick_Check=:\Ano\z:}', "");;
     Expect(0, 195102, '\p{NFKC_Quick_Check=:\Ano\z:}', "");;
-    Expect(1, 195101, '\p{NFKC_Quick_Check=-No}', "");
-    Expect(0, 195101, '\p{^NFKC_Quick_Check=-No}', "");
-    Expect(0, 195101, '\P{NFKC_Quick_Check=-No}', "");
-    Expect(1, 195101, '\P{^NFKC_Quick_Check=-No}', "");
-    Expect(0, 195102, '\p{NFKC_Quick_Check=-No}', "");
-    Expect(1, 195102, '\p{^NFKC_Quick_Check=-No}', "");
-    Expect(1, 195102, '\P{NFKC_Quick_Check=-No}', "");
-    Expect(0, 195102, '\P{^NFKC_Quick_Check=-No}', "");
-    Error('\p{NFKC_QC=_/a/N}');
-    Error('\P{NFKC_QC=_/a/N}');
+    Expect(1, 195101, '\p{NFKC_Quick_Check=	-NO}', "");
+    Expect(0, 195101, '\p{^NFKC_Quick_Check=	-NO}', "");
+    Expect(0, 195101, '\P{NFKC_Quick_Check=	-NO}', "");
+    Expect(1, 195101, '\P{^NFKC_Quick_Check=	-NO}', "");
+    Expect(0, 195102, '\p{NFKC_Quick_Check=	-NO}', "");
+    Expect(1, 195102, '\p{^NFKC_Quick_Check=	-NO}', "");
+    Expect(1, 195102, '\P{NFKC_Quick_Check=	-NO}', "");
+    Expect(0, 195102, '\P{^NFKC_Quick_Check=	-NO}', "");
+    Error('\p{NFKC_QC: /a/	 n}');
+    Error('\P{NFKC_QC: /a/	 n}');
     Expect(1, 195101, '\p{NFKC_QC=:\AN\z:}', "");;
     Expect(0, 195102, '\p{NFKC_QC=:\AN\z:}', "");;
     Expect(1, 195101, '\p{NFKC_QC=n}', "");
@@ -66865,8 +67447,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^NFKC_QC=N}', "");
     Expect(1, 195102, '\P{NFKC_QC=N}', "");
     Expect(0, 195102, '\P{^NFKC_QC=N}', "");
-    Error('\p{Is_NFKC_Quick_Check=/a/ -No}');
-    Error('\P{Is_NFKC_Quick_Check=/a/ -No}');
+    Error('\p{Is_NFKC_Quick_Check=_-no/a/}');
+    Error('\P{Is_NFKC_Quick_Check=_-no/a/}');
     Expect(1, 195101, '\p{Is_NFKC_Quick_Check=no}', "");
     Expect(0, 195101, '\p{^Is_NFKC_Quick_Check=no}', "");
     Expect(0, 195101, '\P{Is_NFKC_Quick_Check=no}', "");
@@ -66875,16 +67457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_NFKC_Quick_Check=no}', "");
     Expect(1, 195102, '\P{Is_NFKC_Quick_Check=no}', "");
     Expect(0, 195102, '\P{^Is_NFKC_Quick_Check=no}', "");
-    Expect(1, 195101, '\p{Is_NFKC_Quick_Check=_-no}', "");
-    Expect(0, 195101, '\p{^Is_NFKC_Quick_Check=_-no}', "");
-    Expect(0, 195101, '\P{Is_NFKC_Quick_Check=_-no}', "");
-    Expect(1, 195101, '\P{^Is_NFKC_Quick_Check=_-no}', "");
-    Expect(0, 195102, '\p{Is_NFKC_Quick_Check=_-no}', "");
-    Expect(1, 195102, '\p{^Is_NFKC_Quick_Check=_-no}', "");
-    Expect(1, 195102, '\P{Is_NFKC_Quick_Check=_-no}', "");
-    Expect(0, 195102, '\P{^Is_NFKC_Quick_Check=_-no}', "");
-    Error('\p{Is_NFKC_QC=-N/a/}');
-    Error('\P{Is_NFKC_QC=-N/a/}');
+    Expect(1, 195101, '\p{Is_NFKC_Quick_Check=	No}', "");
+    Expect(0, 195101, '\p{^Is_NFKC_Quick_Check=	No}', "");
+    Expect(0, 195101, '\P{Is_NFKC_Quick_Check=	No}', "");
+    Expect(1, 195101, '\P{^Is_NFKC_Quick_Check=	No}', "");
+    Expect(0, 195102, '\p{Is_NFKC_Quick_Check=	No}', "");
+    Expect(1, 195102, '\p{^Is_NFKC_Quick_Check=	No}', "");
+    Expect(1, 195102, '\P{Is_NFKC_Quick_Check=	No}', "");
+    Expect(0, 195102, '\P{^Is_NFKC_Quick_Check=	No}', "");
+    Error('\p{Is_NFKC_QC=:=	-N}');
+    Error('\P{Is_NFKC_QC=:=	-N}');
     Expect(1, 195101, '\p{Is_NFKC_QC=n}', "");
     Expect(0, 195101, '\p{^Is_NFKC_QC=n}', "");
     Expect(0, 195101, '\P{Is_NFKC_QC=n}', "");
@@ -66893,16 +67475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_NFKC_QC=n}', "");
     Expect(1, 195102, '\P{Is_NFKC_QC=n}', "");
     Expect(0, 195102, '\P{^Is_NFKC_QC=n}', "");
-    Expect(1, 195101, '\p{Is_NFKC_QC=	 N}', "");
-    Expect(0, 195101, '\p{^Is_NFKC_QC=	 N}', "");
-    Expect(0, 195101, '\P{Is_NFKC_QC=	 N}', "");
-    Expect(1, 195101, '\P{^Is_NFKC_QC=	 N}', "");
-    Expect(0, 195102, '\p{Is_NFKC_QC=	 N}', "");
-    Expect(1, 195102, '\p{^Is_NFKC_QC=	 N}', "");
-    Expect(1, 195102, '\P{Is_NFKC_QC=	 N}', "");
-    Expect(0, 195102, '\P{^Is_NFKC_QC=	 N}', "");
-    Error('\p{NFKC_Quick_Check=/a/YES}');
-    Error('\P{NFKC_Quick_Check=/a/YES}');
+    Expect(1, 195101, '\p{Is_NFKC_QC=  n}', "");
+    Expect(0, 195101, '\p{^Is_NFKC_QC=  n}', "");
+    Expect(0, 195101, '\P{Is_NFKC_QC=  n}', "");
+    Expect(1, 195101, '\P{^Is_NFKC_QC=  n}', "");
+    Expect(0, 195102, '\p{Is_NFKC_QC=  n}', "");
+    Expect(1, 195102, '\p{^Is_NFKC_QC=  n}', "");
+    Expect(1, 195102, '\P{Is_NFKC_QC=  n}', "");
+    Expect(0, 195102, '\P{^Is_NFKC_QC=  n}', "");
+    Error('\p{NFKC_Quick_Check=YES/a/}');
+    Error('\P{NFKC_Quick_Check=YES/a/}');
     Expect(1, 195102, '\p{NFKC_Quick_Check=:\AYes\z:}', "");;
     Expect(0, 195101, '\p{NFKC_Quick_Check=:\AYes\z:}', "");;
     Expect(1, 195102, '\p{NFKC_Quick_Check=yes}', "");
@@ -66915,16 +67497,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195101, '\P{^NFKC_Quick_Check=yes}', "");
     Expect(1, 195102, '\p{NFKC_Quick_Check=:\Ayes\z:}', "");;
     Expect(0, 195101, '\p{NFKC_Quick_Check=:\Ayes\z:}', "");;
-    Expect(1, 195102, '\p{NFKC_Quick_Check:			Yes}', "");
-    Expect(0, 195102, '\p{^NFKC_Quick_Check:			Yes}', "");
-    Expect(0, 195102, '\P{NFKC_Quick_Check:			Yes}', "");
-    Expect(1, 195102, '\P{^NFKC_Quick_Check:			Yes}', "");
-    Expect(0, 195101, '\p{NFKC_Quick_Check:			Yes}', "");
-    Expect(1, 195101, '\p{^NFKC_Quick_Check:			Yes}', "");
-    Expect(1, 195101, '\P{NFKC_Quick_Check:			Yes}', "");
-    Expect(0, 195101, '\P{^NFKC_Quick_Check:			Yes}', "");
-    Error('\p{NFKC_QC=-:=Y}');
-    Error('\P{NFKC_QC=-:=Y}');
+    Expect(1, 195102, '\p{NFKC_Quick_Check:__Yes}', "");
+    Expect(0, 195102, '\p{^NFKC_Quick_Check:__Yes}', "");
+    Expect(0, 195102, '\P{NFKC_Quick_Check:__Yes}', "");
+    Expect(1, 195102, '\P{^NFKC_Quick_Check:__Yes}', "");
+    Expect(0, 195101, '\p{NFKC_Quick_Check:__Yes}', "");
+    Expect(1, 195101, '\p{^NFKC_Quick_Check:__Yes}', "");
+    Expect(1, 195101, '\P{NFKC_Quick_Check:__Yes}', "");
+    Expect(0, 195101, '\P{^NFKC_Quick_Check:__Yes}', "");
+    Error('\p{NFKC_QC=_ y:=}');
+    Error('\P{NFKC_QC=_ y:=}');
     Expect(1, 195102, '\p{NFKC_QC=:\AY\z:}', "");;
     Expect(0, 195101, '\p{NFKC_QC=:\AY\z:}', "");;
     Expect(1, 195102, '\p{NFKC_QC=y}', "");
@@ -66937,16 +67519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195101, '\P{^NFKC_QC=y}', "");
     Expect(1, 195102, '\p{NFKC_QC=:\Ay\z:}', "");;
     Expect(0, 195101, '\p{NFKC_QC=:\Ay\z:}', "");;
-    Expect(1, 195102, '\p{NFKC_QC=_Y}', "");
-    Expect(0, 195102, '\p{^NFKC_QC=_Y}', "");
-    Expect(0, 195102, '\P{NFKC_QC=_Y}', "");
-    Expect(1, 195102, '\P{^NFKC_QC=_Y}', "");
-    Expect(0, 195101, '\p{NFKC_QC=_Y}', "");
-    Expect(1, 195101, '\p{^NFKC_QC=_Y}', "");
-    Expect(1, 195101, '\P{NFKC_QC=_Y}', "");
-    Expect(0, 195101, '\P{^NFKC_QC=_Y}', "");
-    Error('\p{Is_NFKC_Quick_Check=--Yes/a/}');
-    Error('\P{Is_NFKC_Quick_Check=--Yes/a/}');
+    Expect(1, 195102, '\p{NFKC_QC=	Y}', "");
+    Expect(0, 195102, '\p{^NFKC_QC=	Y}', "");
+    Expect(0, 195102, '\P{NFKC_QC=	Y}', "");
+    Expect(1, 195102, '\P{^NFKC_QC=	Y}', "");
+    Expect(0, 195101, '\p{NFKC_QC=	Y}', "");
+    Expect(1, 195101, '\p{^NFKC_QC=	Y}', "");
+    Expect(1, 195101, '\P{NFKC_QC=	Y}', "");
+    Expect(0, 195101, '\P{^NFKC_QC=	Y}', "");
+    Error('\p{Is_NFKC_Quick_Check:/a/	yes}');
+    Error('\P{Is_NFKC_Quick_Check:/a/	yes}');
     Expect(1, 195102, '\p{Is_NFKC_Quick_Check=yes}', "");
     Expect(0, 195102, '\p{^Is_NFKC_Quick_Check=yes}', "");
     Expect(0, 195102, '\P{Is_NFKC_Quick_Check=yes}', "");
@@ -66955,16 +67537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFKC_Quick_Check=yes}', "");
     Expect(1, 195101, '\P{Is_NFKC_Quick_Check=yes}', "");
     Expect(0, 195101, '\P{^Is_NFKC_Quick_Check=yes}', "");
-    Expect(1, 195102, '\p{Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(0, 195102, '\p{^Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(0, 195102, '\P{Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(1, 195102, '\P{^Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(0, 195101, '\p{Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(1, 195101, '\p{^Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(1, 195101, '\P{Is_NFKC_Quick_Check=_-YES}', "");
-    Expect(0, 195101, '\P{^Is_NFKC_Quick_Check=_-YES}', "");
-    Error('\p{Is_NFKC_QC:	Y/a/}');
-    Error('\P{Is_NFKC_QC:	Y/a/}');
+    Expect(1, 195102, '\p{Is_NFKC_Quick_Check=-yes}', "");
+    Expect(0, 195102, '\p{^Is_NFKC_Quick_Check=-yes}', "");
+    Expect(0, 195102, '\P{Is_NFKC_Quick_Check=-yes}', "");
+    Expect(1, 195102, '\P{^Is_NFKC_Quick_Check=-yes}', "");
+    Expect(0, 195101, '\p{Is_NFKC_Quick_Check=-yes}', "");
+    Expect(1, 195101, '\p{^Is_NFKC_Quick_Check=-yes}', "");
+    Expect(1, 195101, '\P{Is_NFKC_Quick_Check=-yes}', "");
+    Expect(0, 195101, '\P{^Is_NFKC_Quick_Check=-yes}', "");
+    Error('\p{Is_NFKC_QC=:=y}');
+    Error('\P{Is_NFKC_QC=:=y}');
     Expect(1, 195102, '\p{Is_NFKC_QC=y}', "");
     Expect(0, 195102, '\p{^Is_NFKC_QC=y}', "");
     Expect(0, 195102, '\P{Is_NFKC_QC=y}', "");
@@ -66973,20 +67555,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFKC_QC=y}', "");
     Expect(1, 195101, '\P{Is_NFKC_QC=y}', "");
     Expect(0, 195101, '\P{^Is_NFKC_QC=y}', "");
-    Expect(1, 195102, '\p{Is_NFKC_QC=	-Y}', "");
-    Expect(0, 195102, '\p{^Is_NFKC_QC=	-Y}', "");
-    Expect(0, 195102, '\P{Is_NFKC_QC=	-Y}', "");
-    Expect(1, 195102, '\P{^Is_NFKC_QC=	-Y}', "");
-    Expect(0, 195101, '\p{Is_NFKC_QC=	-Y}', "");
-    Expect(1, 195101, '\p{^Is_NFKC_QC=	-Y}', "");
-    Expect(1, 195101, '\P{Is_NFKC_QC=	-Y}', "");
-    Expect(0, 195101, '\P{^Is_NFKC_QC=	-Y}', "");
+    Expect(1, 195102, '\p{Is_NFKC_QC=	Y}', "");
+    Expect(0, 195102, '\p{^Is_NFKC_QC=	Y}', "");
+    Expect(0, 195102, '\P{Is_NFKC_QC=	Y}', "");
+    Expect(1, 195102, '\P{^Is_NFKC_QC=	Y}', "");
+    Expect(0, 195101, '\p{Is_NFKC_QC=	Y}', "");
+    Expect(1, 195101, '\p{^Is_NFKC_QC=	Y}', "");
+    Expect(1, 195101, '\P{Is_NFKC_QC=	Y}', "");
+    Expect(0, 195101, '\P{^Is_NFKC_QC=	Y}', "");
     Error('\p{nfkdquickcheck}');
     Error('\P{nfkdquickcheck}');
     Error('\p{nfkdqc}');
     Error('\P{nfkdqc}');
-    Error('\p{NFKD_Quick_Check:   -:=NO}');
-    Error('\P{NFKD_Quick_Check:   -:=NO}');
+    Error('\p{NFKD_Quick_Check=-_NO:=}');
+    Error('\P{NFKD_Quick_Check=-_NO:=}');
     Expect(1, 195101, '\p{NFKD_Quick_Check=:\ANo\z:}', "");;
     Expect(0, 195102, '\p{NFKD_Quick_Check=:\ANo\z:}', "");;
     Expect(1, 195101, '\p{NFKD_Quick_Check=no}', "");
@@ -66999,8 +67581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFKD_Quick_Check=no}', "");
     Expect(1, 195101, '\p{NFKD_Quick_Check=:\Ano\z:}', "");;
     Expect(0, 195102, '\p{NFKD_Quick_Check=:\Ano\z:}', "");;
-    Error('\p{NFKD_QC=:=  N}');
-    Error('\P{NFKD_QC=:=  N}');
+    Expect(1, 195101, '\p{NFKD_Quick_Check=	_NO}', "");
+    Expect(0, 195101, '\p{^NFKD_Quick_Check=	_NO}', "");
+    Expect(0, 195101, '\P{NFKD_Quick_Check=	_NO}', "");
+    Expect(1, 195101, '\P{^NFKD_Quick_Check=	_NO}', "");
+    Expect(0, 195102, '\p{NFKD_Quick_Check=	_NO}', "");
+    Expect(1, 195102, '\p{^NFKD_Quick_Check=	_NO}', "");
+    Expect(1, 195102, '\P{NFKD_Quick_Check=	_NO}', "");
+    Expect(0, 195102, '\P{^NFKD_Quick_Check=	_NO}', "");
+    Error('\p{NFKD_QC=:=	_N}');
+    Error('\P{NFKD_QC=:=	_N}');
     Expect(1, 195101, '\p{NFKD_QC=:\AN\z:}', "");;
     Expect(0, 195102, '\p{NFKD_QC=:\AN\z:}', "");;
     Expect(1, 195101, '\p{NFKD_QC=n}', "");
@@ -67013,16 +67603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195102, '\P{^NFKD_QC=n}', "");
     Expect(1, 195101, '\p{NFKD_QC=:\An\z:}', "");;
     Expect(0, 195102, '\p{NFKD_QC=:\An\z:}', "");;
-    Expect(1, 195101, '\p{NFKD_QC=_n}', "");
-    Expect(0, 195101, '\p{^NFKD_QC=_n}', "");
-    Expect(0, 195101, '\P{NFKD_QC=_n}', "");
-    Expect(1, 195101, '\P{^NFKD_QC=_n}', "");
-    Expect(0, 195102, '\p{NFKD_QC=_n}', "");
-    Expect(1, 195102, '\p{^NFKD_QC=_n}', "");
-    Expect(1, 195102, '\P{NFKD_QC=_n}', "");
-    Expect(0, 195102, '\P{^NFKD_QC=_n}', "");
-    Error('\p{Is_NFKD_Quick_Check=/a/- NO}');
-    Error('\P{Is_NFKD_Quick_Check=/a/- NO}');
+    Expect(1, 195101, '\p{NFKD_QC=		N}', "");
+    Expect(0, 195101, '\p{^NFKD_QC=		N}', "");
+    Expect(0, 195101, '\P{NFKD_QC=		N}', "");
+    Expect(1, 195101, '\P{^NFKD_QC=		N}', "");
+    Expect(0, 195102, '\p{NFKD_QC=		N}', "");
+    Expect(1, 195102, '\p{^NFKD_QC=		N}', "");
+    Expect(1, 195102, '\P{NFKD_QC=		N}', "");
+    Expect(0, 195102, '\P{^NFKD_QC=		N}', "");
+    Error('\p{Is_NFKD_Quick_Check:   --No:=}');
+    Error('\P{Is_NFKD_Quick_Check:   --No:=}');
     Expect(1, 195101, '\p{Is_NFKD_Quick_Check=no}', "");
     Expect(0, 195101, '\p{^Is_NFKD_Quick_Check=no}', "");
     Expect(0, 195101, '\P{Is_NFKD_Quick_Check=no}', "");
@@ -67031,34 +67621,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195102, '\p{^Is_NFKD_Quick_Check=no}', "");
     Expect(1, 195102, '\P{Is_NFKD_Quick_Check=no}', "");
     Expect(0, 195102, '\P{^Is_NFKD_Quick_Check=no}', "");
-    Expect(1, 195101, '\p{Is_NFKD_Quick_Check:	- No}', "");
-    Expect(0, 195101, '\p{^Is_NFKD_Quick_Check:	- No}', "");
-    Expect(0, 195101, '\P{Is_NFKD_Quick_Check:	- No}', "");
-    Expect(1, 195101, '\P{^Is_NFKD_Quick_Check:	- No}', "");
-    Expect(0, 195102, '\p{Is_NFKD_Quick_Check:	- No}', "");
-    Expect(1, 195102, '\p{^Is_NFKD_Quick_Check:	- No}', "");
-    Expect(1, 195102, '\P{Is_NFKD_Quick_Check:	- No}', "");
-    Expect(0, 195102, '\P{^Is_NFKD_Quick_Check:	- No}', "");
-    Error('\p{Is_NFKD_QC=-:=N}');
-    Error('\P{Is_NFKD_QC=-:=N}');
-    Expect(1, 195101, '\p{Is_NFKD_QC=n}', "");
-    Expect(0, 195101, '\p{^Is_NFKD_QC=n}', "");
-    Expect(0, 195101, '\P{Is_NFKD_QC=n}', "");
-    Expect(1, 195101, '\P{^Is_NFKD_QC=n}', "");
-    Expect(0, 195102, '\p{Is_NFKD_QC=n}', "");
-    Expect(1, 195102, '\p{^Is_NFKD_QC=n}', "");
-    Expect(1, 195102, '\P{Is_NFKD_QC=n}', "");
-    Expect(0, 195102, '\P{^Is_NFKD_QC=n}', "");
-    Expect(1, 195101, '\p{Is_NFKD_QC=	_N}', "");
-    Expect(0, 195101, '\p{^Is_NFKD_QC=	_N}', "");
-    Expect(0, 195101, '\P{Is_NFKD_QC=	_N}', "");
-    Expect(1, 195101, '\P{^Is_NFKD_QC=	_N}', "");
-    Expect(0, 195102, '\p{Is_NFKD_QC=	_N}', "");
-    Expect(1, 195102, '\p{^Is_NFKD_QC=	_N}', "");
-    Expect(1, 195102, '\P{Is_NFKD_QC=	_N}', "");
-    Expect(0, 195102, '\P{^Is_NFKD_QC=	_N}', "");
-    Error('\p{NFKD_Quick_Check:		_Yes:=}');
-    Error('\P{NFKD_Quick_Check:		_Yes:=}');
+    Expect(1, 195101, '\p{Is_NFKD_Quick_Check=	 No}', "");
+    Expect(0, 195101, '\p{^Is_NFKD_Quick_Check=	 No}', "");
+    Expect(0, 195101, '\P{Is_NFKD_Quick_Check=	 No}', "");
+    Expect(1, 195101, '\P{^Is_NFKD_Quick_Check=	 No}', "");
+    Expect(0, 195102, '\p{Is_NFKD_Quick_Check=	 No}', "");
+    Expect(1, 195102, '\p{^Is_NFKD_Quick_Check=	 No}', "");
+    Expect(1, 195102, '\P{Is_NFKD_Quick_Check=	 No}', "");
+    Expect(0, 195102, '\P{^Is_NFKD_Quick_Check=	 No}', "");
+    Error('\p{Is_NFKD_QC=/a/-_N}');
+    Error('\P{Is_NFKD_QC=/a/-_N}');
+    Expect(1, 195101, '\p{Is_NFKD_QC:   n}', "");
+    Expect(0, 195101, '\p{^Is_NFKD_QC:   n}', "");
+    Expect(0, 195101, '\P{Is_NFKD_QC:   n}', "");
+    Expect(1, 195101, '\P{^Is_NFKD_QC:   n}', "");
+    Expect(0, 195102, '\p{Is_NFKD_QC:   n}', "");
+    Expect(1, 195102, '\p{^Is_NFKD_QC:   n}', "");
+    Expect(1, 195102, '\P{Is_NFKD_QC:   n}', "");
+    Expect(0, 195102, '\P{^Is_NFKD_QC:   n}', "");
+    Expect(1, 195101, '\p{Is_NFKD_QC= N}', "");
+    Expect(0, 195101, '\p{^Is_NFKD_QC= N}', "");
+    Expect(0, 195101, '\P{Is_NFKD_QC= N}', "");
+    Expect(1, 195101, '\P{^Is_NFKD_QC= N}', "");
+    Expect(0, 195102, '\p{Is_NFKD_QC= N}', "");
+    Expect(1, 195102, '\p{^Is_NFKD_QC= N}', "");
+    Expect(1, 195102, '\P{Is_NFKD_QC= N}', "");
+    Expect(0, 195102, '\P{^Is_NFKD_QC= N}', "");
+    Error('\p{NFKD_Quick_Check=/a/-_yes}');
+    Error('\P{NFKD_Quick_Check=/a/-_yes}');
     Expect(1, 195102, '\p{NFKD_Quick_Check=:\AYes\z:}', "");;
     Expect(0, 195101, '\p{NFKD_Quick_Check=:\AYes\z:}', "");;
     Expect(1, 195102, '\p{NFKD_Quick_Check=yes}', "");
@@ -67071,38 +67661,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 195101, '\P{^NFKD_Quick_Check=yes}', "");
     Expect(1, 195102, '\p{NFKD_Quick_Check=:\Ayes\z:}', "");;
     Expect(0, 195101, '\p{NFKD_Quick_Check=:\Ayes\z:}', "");;
-    Expect(1, 195102, '\p{NFKD_Quick_Check=_Yes}', "");
-    Expect(0, 195102, '\p{^NFKD_Quick_Check=_Yes}', "");
-    Expect(0, 195102, '\P{NFKD_Quick_Check=_Yes}', "");
-    Expect(1, 195102, '\P{^NFKD_Quick_Check=_Yes}', "");
-    Expect(0, 195101, '\p{NFKD_Quick_Check=_Yes}', "");
-    Expect(1, 195101, '\p{^NFKD_Quick_Check=_Yes}', "");
-    Expect(1, 195101, '\P{NFKD_Quick_Check=_Yes}', "");
-    Expect(0, 195101, '\P{^NFKD_Quick_Check=_Yes}', "");
-    Error('\p{NFKD_QC=:= Y}');
-    Error('\P{NFKD_QC=:= Y}');
+    Expect(1, 195102, '\p{NFKD_Quick_Check=-Yes}', "");
+    Expect(0, 195102, '\p{^NFKD_Quick_Check=-Yes}', "");
+    Expect(0, 195102, '\P{NFKD_Quick_Check=-Yes}', "");
+    Expect(1, 195102, '\P{^NFKD_Quick_Check=-Yes}', "");
+    Expect(0, 195101, '\p{NFKD_Quick_Check=-Yes}', "");
+    Expect(1, 195101, '\p{^NFKD_Quick_Check=-Yes}', "");
+    Expect(1, 195101, '\P{NFKD_Quick_Check=-Yes}', "");
+    Expect(0, 195101, '\P{^NFKD_Quick_Check=-Yes}', "");
+    Error('\p{NFKD_QC:/a/Y}');
+    Error('\P{NFKD_QC:/a/Y}');
     Expect(1, 195102, '\p{NFKD_QC=:\AY\z:}', "");;
     Expect(0, 195101, '\p{NFKD_QC=:\AY\z:}', "");;
-    Expect(1, 195102, '\p{NFKD_QC=y}', "");
-    Expect(0, 195102, '\p{^NFKD_QC=y}', "");
-    Expect(0, 195102, '\P{NFKD_QC=y}', "");
-    Expect(1, 195102, '\P{^NFKD_QC=y}', "");
-    Expect(0, 195101, '\p{NFKD_QC=y}', "");
-    Expect(1, 195101, '\p{^NFKD_QC=y}', "");
-    Expect(1, 195101, '\P{NFKD_QC=y}', "");
-    Expect(0, 195101, '\P{^NFKD_QC=y}', "");
+    Expect(1, 195102, '\p{NFKD_QC:	y}', "");
+    Expect(0, 195102, '\p{^NFKD_QC:	y}', "");
+    Expect(0, 195102, '\P{NFKD_QC:	y}', "");
+    Expect(1, 195102, '\P{^NFKD_QC:	y}', "");
+    Expect(0, 195101, '\p{NFKD_QC:	y}', "");
+    Expect(1, 195101, '\p{^NFKD_QC:	y}', "");
+    Expect(1, 195101, '\P{NFKD_QC:	y}', "");
+    Expect(0, 195101, '\P{^NFKD_QC:	y}', "");
     Expect(1, 195102, '\p{NFKD_QC=:\Ay\z:}', "");;
     Expect(0, 195101, '\p{NFKD_QC=:\Ay\z:}', "");;
-    Expect(1, 195102, '\p{NFKD_QC=	y}', "");
-    Expect(0, 195102, '\p{^NFKD_QC=	y}', "");
-    Expect(0, 195102, '\P{NFKD_QC=	y}', "");
-    Expect(1, 195102, '\P{^NFKD_QC=	y}', "");
-    Expect(0, 195101, '\p{NFKD_QC=	y}', "");
-    Expect(1, 195101, '\p{^NFKD_QC=	y}', "");
-    Expect(1, 195101, '\P{NFKD_QC=	y}', "");
-    Expect(0, 195101, '\P{^NFKD_QC=	y}', "");
-    Error('\p{Is_NFKD_Quick_Check=_	yes:=}');
-    Error('\P{Is_NFKD_Quick_Check=_	yes:=}');
+    Expect(1, 195102, '\p{NFKD_QC=__Y}', "");
+    Expect(0, 195102, '\p{^NFKD_QC=__Y}', "");
+    Expect(0, 195102, '\P{NFKD_QC=__Y}', "");
+    Expect(1, 195102, '\P{^NFKD_QC=__Y}', "");
+    Expect(0, 195101, '\p{NFKD_QC=__Y}', "");
+    Expect(1, 195101, '\p{^NFKD_QC=__Y}', "");
+    Expect(1, 195101, '\P{NFKD_QC=__Y}', "");
+    Expect(0, 195101, '\P{^NFKD_QC=__Y}', "");
+    Error('\p{Is_NFKD_Quick_Check=	-Yes/a/}');
+    Error('\P{Is_NFKD_Quick_Check=	-Yes/a/}');
     Expect(1, 195102, '\p{Is_NFKD_Quick_Check=yes}', "");
     Expect(0, 195102, '\p{^Is_NFKD_Quick_Check=yes}', "");
     Expect(0, 195102, '\P{Is_NFKD_Quick_Check=yes}', "");
@@ -67111,16 +67701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFKD_Quick_Check=yes}', "");
     Expect(1, 195101, '\P{Is_NFKD_Quick_Check=yes}', "");
     Expect(0, 195101, '\P{^Is_NFKD_Quick_Check=yes}', "");
-    Expect(1, 195102, '\p{Is_NFKD_Quick_Check=-YES}', "");
-    Expect(0, 195102, '\p{^Is_NFKD_Quick_Check=-YES}', "");
-    Expect(0, 195102, '\P{Is_NFKD_Quick_Check=-YES}', "");
-    Expect(1, 195102, '\P{^Is_NFKD_Quick_Check=-YES}', "");
-    Expect(0, 195101, '\p{Is_NFKD_Quick_Check=-YES}', "");
-    Expect(1, 195101, '\p{^Is_NFKD_Quick_Check=-YES}', "");
-    Expect(1, 195101, '\P{Is_NFKD_Quick_Check=-YES}', "");
-    Expect(0, 195101, '\P{^Is_NFKD_Quick_Check=-YES}', "");
-    Error('\p{Is_NFKD_QC= :=y}');
-    Error('\P{Is_NFKD_QC= :=y}');
+    Expect(1, 195102, '\p{Is_NFKD_Quick_Check=Yes}', "");
+    Expect(0, 195102, '\p{^Is_NFKD_Quick_Check=Yes}', "");
+    Expect(0, 195102, '\P{Is_NFKD_Quick_Check=Yes}', "");
+    Expect(1, 195102, '\P{^Is_NFKD_Quick_Check=Yes}', "");
+    Expect(0, 195101, '\p{Is_NFKD_Quick_Check=Yes}', "");
+    Expect(1, 195101, '\p{^Is_NFKD_Quick_Check=Yes}', "");
+    Expect(1, 195101, '\P{Is_NFKD_Quick_Check=Yes}', "");
+    Expect(0, 195101, '\P{^Is_NFKD_Quick_Check=Yes}', "");
+    Error('\p{Is_NFKD_QC=	 Y:=}');
+    Error('\P{Is_NFKD_QC=	 Y:=}');
     Expect(1, 195102, '\p{Is_NFKD_QC=y}', "");
     Expect(0, 195102, '\p{^Is_NFKD_QC=y}', "");
     Expect(0, 195102, '\P{Is_NFKD_QC=y}', "");
@@ -67129,20 +67719,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 195101, '\p{^Is_NFKD_QC=y}', "");
     Expect(1, 195101, '\P{Is_NFKD_QC=y}', "");
     Expect(0, 195101, '\P{^Is_NFKD_QC=y}', "");
-    Expect(1, 195102, '\p{Is_NFKD_QC=-_y}', "");
-    Expect(0, 195102, '\p{^Is_NFKD_QC=-_y}', "");
-    Expect(0, 195102, '\P{Is_NFKD_QC=-_y}', "");
-    Expect(1, 195102, '\P{^Is_NFKD_QC=-_y}', "");
-    Expect(0, 195101, '\p{Is_NFKD_QC=-_y}', "");
-    Expect(1, 195101, '\p{^Is_NFKD_QC=-_y}', "");
-    Expect(1, 195101, '\P{Is_NFKD_QC=-_y}', "");
-    Expect(0, 195101, '\P{^Is_NFKD_QC=-_y}', "");
+    Expect(1, 195102, '\p{Is_NFKD_QC=  Y}', "");
+    Expect(0, 195102, '\p{^Is_NFKD_QC=  Y}', "");
+    Expect(0, 195102, '\P{Is_NFKD_QC=  Y}', "");
+    Expect(1, 195102, '\P{^Is_NFKD_QC=  Y}', "");
+    Expect(0, 195101, '\p{Is_NFKD_QC=  Y}', "");
+    Expect(1, 195101, '\p{^Is_NFKD_QC=  Y}', "");
+    Expect(1, 195101, '\P{Is_NFKD_QC=  Y}', "");
+    Expect(0, 195101, '\P{^Is_NFKD_QC=  Y}', "");
     Error('\p{numerictype}');
     Error('\P{numerictype}');
     Error('\p{nt}');
     Error('\P{nt}');
-    Error('\p{Numeric_Type= /a/decimal}');
-    Error('\P{Numeric_Type= /a/decimal}');
+    Error('\p{Numeric_Type:	/a/_Decimal}');
+    Error('\P{Numeric_Type:	/a/_Decimal}');
     Expect(1, 130041, '\p{Numeric_Type=:\ADecimal\z:}', "");;
     Expect(0, 130042, '\p{Numeric_Type=:\ADecimal\z:}', "");;
     Expect(1, 130041, '\p{Numeric_Type=decimal}', "");
@@ -67155,16 +67745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^Numeric_Type=decimal}', "");
     Expect(1, 130041, '\p{Numeric_Type=:\Adecimal\z:}', "");;
     Expect(0, 130042, '\p{Numeric_Type=:\Adecimal\z:}', "");;
-    Expect(1, 130041, '\p{Numeric_Type:  Decimal}', "");
-    Expect(0, 130041, '\p{^Numeric_Type:  Decimal}', "");
-    Expect(0, 130041, '\P{Numeric_Type:  Decimal}', "");
-    Expect(1, 130041, '\P{^Numeric_Type:  Decimal}', "");
-    Expect(0, 130042, '\p{Numeric_Type:  Decimal}', "");
-    Expect(1, 130042, '\p{^Numeric_Type:  Decimal}', "");
-    Expect(1, 130042, '\P{Numeric_Type:  Decimal}', "");
-    Expect(0, 130042, '\P{^Numeric_Type:  Decimal}', "");
-    Error('\p{Nt=-:=DE}');
-    Error('\P{Nt=-:=DE}');
+    Expect(1, 130041, '\p{Numeric_Type=	 Decimal}', "");
+    Expect(0, 130041, '\p{^Numeric_Type=	 Decimal}', "");
+    Expect(0, 130041, '\P{Numeric_Type=	 Decimal}', "");
+    Expect(1, 130041, '\P{^Numeric_Type=	 Decimal}', "");
+    Expect(0, 130042, '\p{Numeric_Type=	 Decimal}', "");
+    Expect(1, 130042, '\p{^Numeric_Type=	 Decimal}', "");
+    Expect(1, 130042, '\P{Numeric_Type=	 Decimal}', "");
+    Expect(0, 130042, '\P{^Numeric_Type=	 Decimal}', "");
+    Error('\p{Nt=_:=De}');
+    Error('\P{Nt=_:=De}');
     Expect(1, 130041, '\p{Nt=:\ADe\z:}', "");;
     Expect(0, 130042, '\p{Nt=:\ADe\z:}', "");;
     Expect(1, 130041, '\p{Nt=de}', "");
@@ -67177,16 +67767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 130042, '\P{^Nt=de}', "");
     Expect(1, 130041, '\p{Nt=:\Ade\z:}', "");;
     Expect(0, 130042, '\p{Nt=:\Ade\z:}', "");;
-    Expect(1, 130041, '\p{Nt=	De}', "");
-    Expect(0, 130041, '\p{^Nt=	De}', "");
-    Expect(0, 130041, '\P{Nt=	De}', "");
-    Expect(1, 130041, '\P{^Nt=	De}', "");
-    Expect(0, 130042, '\p{Nt=	De}', "");
-    Expect(1, 130042, '\p{^Nt=	De}', "");
-    Expect(1, 130042, '\P{Nt=	De}', "");
-    Expect(0, 130042, '\P{^Nt=	De}', "");
-    Error('\p{Is_Numeric_Type=:=-decimal}');
-    Error('\P{Is_Numeric_Type=:=-decimal}');
+    Expect(1, 130041, '\p{Nt=		De}', "");
+    Expect(0, 130041, '\p{^Nt=		De}', "");
+    Expect(0, 130041, '\P{Nt=		De}', "");
+    Expect(1, 130041, '\P{^Nt=		De}', "");
+    Expect(0, 130042, '\p{Nt=		De}', "");
+    Expect(1, 130042, '\p{^Nt=		De}', "");
+    Expect(1, 130042, '\P{Nt=		De}', "");
+    Expect(0, 130042, '\P{^Nt=		De}', "");
+    Error('\p{Is_Numeric_Type=	:=DECIMAL}');
+    Error('\P{Is_Numeric_Type=	:=DECIMAL}');
     Expect(1, 130041, '\p{Is_Numeric_Type=decimal}', "");
     Expect(0, 130041, '\p{^Is_Numeric_Type=decimal}', "");
     Expect(0, 130041, '\P{Is_Numeric_Type=decimal}', "");
@@ -67195,16 +67785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_Numeric_Type=decimal}', "");
     Expect(1, 130042, '\P{Is_Numeric_Type=decimal}', "");
     Expect(0, 130042, '\P{^Is_Numeric_Type=decimal}', "");
-    Expect(1, 130041, '\p{Is_Numeric_Type= DECIMAL}', "");
-    Expect(0, 130041, '\p{^Is_Numeric_Type= DECIMAL}', "");
-    Expect(0, 130041, '\P{Is_Numeric_Type= DECIMAL}', "");
-    Expect(1, 130041, '\P{^Is_Numeric_Type= DECIMAL}', "");
-    Expect(0, 130042, '\p{Is_Numeric_Type= DECIMAL}', "");
-    Expect(1, 130042, '\p{^Is_Numeric_Type= DECIMAL}', "");
-    Expect(1, 130042, '\P{Is_Numeric_Type= DECIMAL}', "");
-    Expect(0, 130042, '\P{^Is_Numeric_Type= DECIMAL}', "");
-    Error('\p{Is_Nt=-:=De}');
-    Error('\P{Is_Nt=-:=De}');
+    Expect(1, 130041, '\p{Is_Numeric_Type=_decimal}', "");
+    Expect(0, 130041, '\p{^Is_Numeric_Type=_decimal}', "");
+    Expect(0, 130041, '\P{Is_Numeric_Type=_decimal}', "");
+    Expect(1, 130041, '\P{^Is_Numeric_Type=_decimal}', "");
+    Expect(0, 130042, '\p{Is_Numeric_Type=_decimal}', "");
+    Expect(1, 130042, '\p{^Is_Numeric_Type=_decimal}', "");
+    Expect(1, 130042, '\P{Is_Numeric_Type=_decimal}', "");
+    Expect(0, 130042, '\P{^Is_Numeric_Type=_decimal}', "");
+    Error('\p{Is_Nt=/a/de}');
+    Error('\P{Is_Nt=/a/de}');
     Expect(1, 130041, '\p{Is_Nt=de}', "");
     Expect(0, 130041, '\p{^Is_Nt=de}', "");
     Expect(0, 130041, '\P{Is_Nt=de}', "");
@@ -67213,16 +67803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130042, '\p{^Is_Nt=de}', "");
     Expect(1, 130042, '\P{Is_Nt=de}', "");
     Expect(0, 130042, '\P{^Is_Nt=de}', "");
-    Expect(1, 130041, '\p{Is_Nt=	_De}', "");
-    Expect(0, 130041, '\p{^Is_Nt=	_De}', "");
-    Expect(0, 130041, '\P{Is_Nt=	_De}', "");
-    Expect(1, 130041, '\P{^Is_Nt=	_De}', "");
-    Expect(0, 130042, '\p{Is_Nt=	_De}', "");
-    Expect(1, 130042, '\p{^Is_Nt=	_De}', "");
-    Expect(1, 130042, '\P{Is_Nt=	_De}', "");
-    Expect(0, 130042, '\P{^Is_Nt=	_De}', "");
-    Error('\p{Numeric_Type=_:=Digit}');
-    Error('\P{Numeric_Type=_:=Digit}');
+    Expect(1, 130041, '\p{Is_Nt= 	de}', "");
+    Expect(0, 130041, '\p{^Is_Nt= 	de}', "");
+    Expect(0, 130041, '\P{Is_Nt= 	de}', "");
+    Expect(1, 130041, '\P{^Is_Nt= 	de}', "");
+    Expect(0, 130042, '\p{Is_Nt= 	de}', "");
+    Expect(1, 130042, '\p{^Is_Nt= 	de}', "");
+    Expect(1, 130042, '\P{Is_Nt= 	de}', "");
+    Expect(0, 130042, '\P{^Is_Nt= 	de}', "");
+    Error('\p{Numeric_Type=:=-	digit}');
+    Error('\P{Numeric_Type=:=-	digit}');
     Expect(1, 127242, '\p{Numeric_Type=:\ADigit\z:}', "");;
     Expect(0, 127243, '\p{Numeric_Type=:\ADigit\z:}', "");;
     Expect(1, 127242, '\p{Numeric_Type=digit}', "");
@@ -67235,74 +67825,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 127243, '\P{^Numeric_Type=digit}', "");
     Expect(1, 127242, '\p{Numeric_Type=:\Adigit\z:}', "");;
     Expect(0, 127243, '\p{Numeric_Type=:\Adigit\z:}', "");;
-    Expect(1, 127242, '\p{Numeric_Type=	Digit}', "");
-    Expect(0, 127242, '\p{^Numeric_Type=	Digit}', "");
-    Expect(0, 127242, '\P{Numeric_Type=	Digit}', "");
-    Expect(1, 127242, '\P{^Numeric_Type=	Digit}', "");
-    Expect(0, 127243, '\p{Numeric_Type=	Digit}', "");
-    Expect(1, 127243, '\p{^Numeric_Type=	Digit}', "");
-    Expect(1, 127243, '\P{Numeric_Type=	Digit}', "");
-    Expect(0, 127243, '\P{^Numeric_Type=	Digit}', "");
-    Error('\p{Nt:   	:=DI}');
-    Error('\P{Nt:   	:=DI}');
+    Expect(1, 127242, '\p{Numeric_Type=	DIGIT}', "");
+    Expect(0, 127242, '\p{^Numeric_Type=	DIGIT}', "");
+    Expect(0, 127242, '\P{Numeric_Type=	DIGIT}', "");
+    Expect(1, 127242, '\P{^Numeric_Type=	DIGIT}', "");
+    Expect(0, 127243, '\p{Numeric_Type=	DIGIT}', "");
+    Expect(1, 127243, '\p{^Numeric_Type=	DIGIT}', "");
+    Expect(1, 127243, '\P{Numeric_Type=	DIGIT}', "");
+    Expect(0, 127243, '\P{^Numeric_Type=	DIGIT}', "");
+    Error('\p{Nt= di/a/}');
+    Error('\P{Nt= di/a/}');
     Expect(1, 127242, '\p{Nt=:\ADi\z:}', "");;
     Expect(0, 127243, '\p{Nt=:\ADi\z:}', "");;
-    Expect(1, 127242, '\p{Nt:	di}', "");
-    Expect(0, 127242, '\p{^Nt:	di}', "");
-    Expect(0, 127242, '\P{Nt:	di}', "");
-    Expect(1, 127242, '\P{^Nt:	di}', "");
-    Expect(0, 127243, '\p{Nt:	di}', "");
-    Expect(1, 127243, '\p{^Nt:	di}', "");
-    Expect(1, 127243, '\P{Nt:	di}', "");
-    Expect(0, 127243, '\P{^Nt:	di}', "");
+    Expect(1, 127242, '\p{Nt=di}', "");
+    Expect(0, 127242, '\p{^Nt=di}', "");
+    Expect(0, 127242, '\P{Nt=di}', "");
+    Expect(1, 127242, '\P{^Nt=di}', "");
+    Expect(0, 127243, '\p{Nt=di}', "");
+    Expect(1, 127243, '\p{^Nt=di}', "");
+    Expect(1, 127243, '\P{Nt=di}', "");
+    Expect(0, 127243, '\P{^Nt=di}', "");
     Expect(1, 127242, '\p{Nt=:\Adi\z:}', "");;
     Expect(0, 127243, '\p{Nt=:\Adi\z:}', "");;
-    Expect(1, 127242, '\p{Nt=_ Di}', "");
-    Expect(0, 127242, '\p{^Nt=_ Di}', "");
-    Expect(0, 127242, '\P{Nt=_ Di}', "");
-    Expect(1, 127242, '\P{^Nt=_ Di}', "");
-    Expect(0, 127243, '\p{Nt=_ Di}', "");
-    Expect(1, 127243, '\p{^Nt=_ Di}', "");
-    Expect(1, 127243, '\P{Nt=_ Di}', "");
-    Expect(0, 127243, '\P{^Nt=_ Di}', "");
-    Error('\p{Is_Numeric_Type=-DIGIT:=}');
-    Error('\P{Is_Numeric_Type=-DIGIT:=}');
-    Expect(1, 127242, '\p{Is_Numeric_Type=digit}', "");
-    Expect(0, 127242, '\p{^Is_Numeric_Type=digit}', "");
-    Expect(0, 127242, '\P{Is_Numeric_Type=digit}', "");
-    Expect(1, 127242, '\P{^Is_Numeric_Type=digit}', "");
-    Expect(0, 127243, '\p{Is_Numeric_Type=digit}', "");
-    Expect(1, 127243, '\p{^Is_Numeric_Type=digit}', "");
-    Expect(1, 127243, '\P{Is_Numeric_Type=digit}', "");
-    Expect(0, 127243, '\P{^Is_Numeric_Type=digit}', "");
-    Expect(1, 127242, '\p{Is_Numeric_Type=_Digit}', "");
-    Expect(0, 127242, '\p{^Is_Numeric_Type=_Digit}', "");
-    Expect(0, 127242, '\P{Is_Numeric_Type=_Digit}', "");
-    Expect(1, 127242, '\P{^Is_Numeric_Type=_Digit}', "");
-    Expect(0, 127243, '\p{Is_Numeric_Type=_Digit}', "");
-    Expect(1, 127243, '\p{^Is_Numeric_Type=_Digit}', "");
-    Expect(1, 127243, '\P{Is_Numeric_Type=_Digit}', "");
-    Expect(0, 127243, '\P{^Is_Numeric_Type=_Digit}', "");
-    Error('\p{Is_Nt=- di:=}');
-    Error('\P{Is_Nt=- di:=}');
-    Expect(1, 127242, '\p{Is_Nt:   di}', "");
-    Expect(0, 127242, '\p{^Is_Nt:   di}', "");
-    Expect(0, 127242, '\P{Is_Nt:   di}', "");
-    Expect(1, 127242, '\P{^Is_Nt:   di}', "");
-    Expect(0, 127243, '\p{Is_Nt:   di}', "");
-    Expect(1, 127243, '\p{^Is_Nt:   di}', "");
-    Expect(1, 127243, '\P{Is_Nt:   di}', "");
-    Expect(0, 127243, '\P{^Is_Nt:   di}', "");
-    Expect(1, 127242, '\p{Is_Nt=_Di}', "");
-    Expect(0, 127242, '\p{^Is_Nt=_Di}', "");
-    Expect(0, 127242, '\P{Is_Nt=_Di}', "");
-    Expect(1, 127242, '\P{^Is_Nt=_Di}', "");
-    Expect(0, 127243, '\p{Is_Nt=_Di}', "");
-    Expect(1, 127243, '\p{^Is_Nt=_Di}', "");
-    Expect(1, 127243, '\P{Is_Nt=_Di}', "");
-    Expect(0, 127243, '\P{^Is_Nt=_Di}', "");
-    Error('\p{Numeric_Type=_:=None}');
-    Error('\P{Numeric_Type=_:=None}');
+    Expect(1, 127242, '\p{Nt=--Di}', "");
+    Expect(0, 127242, '\p{^Nt=--Di}', "");
+    Expect(0, 127242, '\P{Nt=--Di}', "");
+    Expect(1, 127242, '\P{^Nt=--Di}', "");
+    Expect(0, 127243, '\p{Nt=--Di}', "");
+    Expect(1, 127243, '\p{^Nt=--Di}', "");
+    Expect(1, 127243, '\P{Nt=--Di}', "");
+    Expect(0, 127243, '\P{^Nt=--Di}', "");
+    Error('\p{Is_Numeric_Type=__DIGIT:=}');
+    Error('\P{Is_Numeric_Type=__DIGIT:=}');
+    Expect(1, 127242, '\p{Is_Numeric_Type:   digit}', "");
+    Expect(0, 127242, '\p{^Is_Numeric_Type:   digit}', "");
+    Expect(0, 127242, '\P{Is_Numeric_Type:   digit}', "");
+    Expect(1, 127242, '\P{^Is_Numeric_Type:   digit}', "");
+    Expect(0, 127243, '\p{Is_Numeric_Type:   digit}', "");
+    Expect(1, 127243, '\p{^Is_Numeric_Type:   digit}', "");
+    Expect(1, 127243, '\P{Is_Numeric_Type:   digit}', "");
+    Expect(0, 127243, '\P{^Is_Numeric_Type:   digit}', "");
+    Expect(1, 127242, '\p{Is_Numeric_Type=		Digit}', "");
+    Expect(0, 127242, '\p{^Is_Numeric_Type=		Digit}', "");
+    Expect(0, 127242, '\P{Is_Numeric_Type=		Digit}', "");
+    Expect(1, 127242, '\P{^Is_Numeric_Type=		Digit}', "");
+    Expect(0, 127243, '\p{Is_Numeric_Type=		Digit}', "");
+    Expect(1, 127243, '\p{^Is_Numeric_Type=		Digit}', "");
+    Expect(1, 127243, '\P{Is_Numeric_Type=		Digit}', "");
+    Expect(0, 127243, '\P{^Is_Numeric_Type=		Digit}', "");
+    Error('\p{Is_Nt:/a/di}');
+    Error('\P{Is_Nt:/a/di}');
+    Expect(1, 127242, '\p{Is_Nt=di}', "");
+    Expect(0, 127242, '\p{^Is_Nt=di}', "");
+    Expect(0, 127242, '\P{Is_Nt=di}', "");
+    Expect(1, 127242, '\P{^Is_Nt=di}', "");
+    Expect(0, 127243, '\p{Is_Nt=di}', "");
+    Expect(1, 127243, '\p{^Is_Nt=di}', "");
+    Expect(1, 127243, '\P{Is_Nt=di}', "");
+    Expect(0, 127243, '\P{^Is_Nt=di}', "");
+    Expect(1, 127242, '\p{Is_Nt=	Di}', "");
+    Expect(0, 127242, '\p{^Is_Nt=	Di}', "");
+    Expect(0, 127242, '\P{Is_Nt=	Di}', "");
+    Expect(1, 127242, '\P{^Is_Nt=	Di}', "");
+    Expect(0, 127243, '\p{Is_Nt=	Di}', "");
+    Expect(1, 127243, '\p{^Is_Nt=	Di}', "");
+    Expect(1, 127243, '\P{Is_Nt=	Di}', "");
+    Expect(0, 127243, '\P{^Is_Nt=	Di}', "");
+    Error('\p{Numeric_Type=/a/	-None}');
+    Error('\P{Numeric_Type=/a/	-None}');
     Expect(1, 194705, '\p{Numeric_Type=:\ANone\z:}', "");;
     Expect(0, 194704, '\p{Numeric_Type=:\ANone\z:}', "");;
     Expect(1, 194705, '\p{Numeric_Type=none}', "");
@@ -67315,16 +67905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 194704, '\P{^Numeric_Type=none}', "");
     Expect(1, 194705, '\p{Numeric_Type=:\Anone\z:}', "");;
     Expect(0, 194704, '\p{Numeric_Type=:\Anone\z:}', "");;
-    Expect(1, 194705, '\p{Numeric_Type= none}', "");
-    Expect(0, 194705, '\p{^Numeric_Type= none}', "");
-    Expect(0, 194705, '\P{Numeric_Type= none}', "");
-    Expect(1, 194705, '\P{^Numeric_Type= none}', "");
-    Expect(0, 194704, '\p{Numeric_Type= none}', "");
-    Expect(1, 194704, '\p{^Numeric_Type= none}', "");
-    Expect(1, 194704, '\P{Numeric_Type= none}', "");
-    Expect(0, 194704, '\P{^Numeric_Type= none}', "");
-    Error('\p{Nt=/a/None}');
-    Error('\P{Nt=/a/None}');
+    Expect(1, 194705, '\p{Numeric_Type:	-	none}', "");
+    Expect(0, 194705, '\p{^Numeric_Type:	-	none}', "");
+    Expect(0, 194705, '\P{Numeric_Type:	-	none}', "");
+    Expect(1, 194705, '\P{^Numeric_Type:	-	none}', "");
+    Expect(0, 194704, '\p{Numeric_Type:	-	none}', "");
+    Expect(1, 194704, '\p{^Numeric_Type:	-	none}', "");
+    Expect(1, 194704, '\P{Numeric_Type:	-	none}', "");
+    Expect(0, 194704, '\P{^Numeric_Type:	-	none}', "");
+    Error('\p{Nt=:=	_None}');
+    Error('\P{Nt=:=	_None}');
     Expect(1, 194705, '\p{Nt=:\ANone\z:}', "");;
     Expect(0, 194704, '\p{Nt=:\ANone\z:}', "");;
     Expect(1, 194705, '\p{Nt=none}', "");
@@ -67337,34 +67927,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 194704, '\P{^Nt=none}', "");
     Expect(1, 194705, '\p{Nt=:\Anone\z:}', "");;
     Expect(0, 194704, '\p{Nt=:\Anone\z:}', "");;
-    Expect(1, 194705, '\p{Nt=	None}', "");
-    Expect(0, 194705, '\p{^Nt=	None}', "");
-    Expect(0, 194705, '\P{Nt=	None}', "");
-    Expect(1, 194705, '\P{^Nt=	None}', "");
-    Expect(0, 194704, '\p{Nt=	None}', "");
-    Expect(1, 194704, '\p{^Nt=	None}', "");
-    Expect(1, 194704, '\P{Nt=	None}', "");
-    Expect(0, 194704, '\P{^Nt=	None}', "");
-    Error('\p{Is_Numeric_Type=	_None/a/}');
-    Error('\P{Is_Numeric_Type=	_None/a/}');
-    Expect(1, 194705, '\p{Is_Numeric_Type:none}', "");
-    Expect(0, 194705, '\p{^Is_Numeric_Type:none}', "");
-    Expect(0, 194705, '\P{Is_Numeric_Type:none}', "");
-    Expect(1, 194705, '\P{^Is_Numeric_Type:none}', "");
-    Expect(0, 194704, '\p{Is_Numeric_Type:none}', "");
-    Expect(1, 194704, '\p{^Is_Numeric_Type:none}', "");
-    Expect(1, 194704, '\P{Is_Numeric_Type:none}', "");
-    Expect(0, 194704, '\P{^Is_Numeric_Type:none}', "");
-    Expect(1, 194705, '\p{Is_Numeric_Type:	_-None}', "");
-    Expect(0, 194705, '\p{^Is_Numeric_Type:	_-None}', "");
-    Expect(0, 194705, '\P{Is_Numeric_Type:	_-None}', "");
-    Expect(1, 194705, '\P{^Is_Numeric_Type:	_-None}', "");
-    Expect(0, 194704, '\p{Is_Numeric_Type:	_-None}', "");
-    Expect(1, 194704, '\p{^Is_Numeric_Type:	_-None}', "");
-    Expect(1, 194704, '\P{Is_Numeric_Type:	_-None}', "");
-    Expect(0, 194704, '\P{^Is_Numeric_Type:	_-None}', "");
-    Error('\p{Is_Nt=_-None:=}');
-    Error('\P{Is_Nt=_-None:=}');
+    Expect(1, 194705, '\p{Nt=_None}', "");
+    Expect(0, 194705, '\p{^Nt=_None}', "");
+    Expect(0, 194705, '\P{Nt=_None}', "");
+    Expect(1, 194705, '\P{^Nt=_None}', "");
+    Expect(0, 194704, '\p{Nt=_None}', "");
+    Expect(1, 194704, '\p{^Nt=_None}', "");
+    Expect(1, 194704, '\P{Nt=_None}', "");
+    Expect(0, 194704, '\P{^Nt=_None}', "");
+    Error('\p{Is_Numeric_Type=:=-	None}');
+    Error('\P{Is_Numeric_Type=:=-	None}');
+    Expect(1, 194705, '\p{Is_Numeric_Type=none}', "");
+    Expect(0, 194705, '\p{^Is_Numeric_Type=none}', "");
+    Expect(0, 194705, '\P{Is_Numeric_Type=none}', "");
+    Expect(1, 194705, '\P{^Is_Numeric_Type=none}', "");
+    Expect(0, 194704, '\p{Is_Numeric_Type=none}', "");
+    Expect(1, 194704, '\p{^Is_Numeric_Type=none}', "");
+    Expect(1, 194704, '\P{Is_Numeric_Type=none}', "");
+    Expect(0, 194704, '\P{^Is_Numeric_Type=none}', "");
+    Expect(1, 194705, '\p{Is_Numeric_Type=-	NONE}', "");
+    Expect(0, 194705, '\p{^Is_Numeric_Type=-	NONE}', "");
+    Expect(0, 194705, '\P{Is_Numeric_Type=-	NONE}', "");
+    Expect(1, 194705, '\P{^Is_Numeric_Type=-	NONE}', "");
+    Expect(0, 194704, '\p{Is_Numeric_Type=-	NONE}', "");
+    Expect(1, 194704, '\p{^Is_Numeric_Type=-	NONE}', "");
+    Expect(1, 194704, '\P{Is_Numeric_Type=-	NONE}', "");
+    Expect(0, 194704, '\P{^Is_Numeric_Type=-	NONE}', "");
+    Error('\p{Is_Nt=/a/None}');
+    Error('\P{Is_Nt=/a/None}');
     Expect(1, 194705, '\p{Is_Nt=none}', "");
     Expect(0, 194705, '\p{^Is_Nt=none}', "");
     Expect(0, 194705, '\P{Is_Nt=none}', "");
@@ -67373,16 +67963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 194704, '\p{^Is_Nt=none}', "");
     Expect(1, 194704, '\P{Is_Nt=none}', "");
     Expect(0, 194704, '\P{^Is_Nt=none}', "");
-    Expect(1, 194705, '\p{Is_Nt=_none}', "");
-    Expect(0, 194705, '\p{^Is_Nt=_none}', "");
-    Expect(0, 194705, '\P{Is_Nt=_none}', "");
-    Expect(1, 194705, '\P{^Is_Nt=_none}', "");
-    Expect(0, 194704, '\p{Is_Nt=_none}', "");
-    Expect(1, 194704, '\p{^Is_Nt=_none}', "");
-    Expect(1, 194704, '\P{Is_Nt=_none}', "");
-    Expect(0, 194704, '\P{^Is_Nt=_none}', "");
-    Error('\p{Numeric_Type=		Numeric:=}');
-    Error('\P{Numeric_Type=		Numeric:=}');
+    Expect(1, 194705, '\p{Is_Nt=_None}', "");
+    Expect(0, 194705, '\p{^Is_Nt=_None}', "");
+    Expect(0, 194705, '\P{Is_Nt=_None}', "");
+    Expect(1, 194705, '\P{^Is_Nt=_None}', "");
+    Expect(0, 194704, '\p{Is_Nt=_None}', "");
+    Expect(1, 194704, '\p{^Is_Nt=_None}', "");
+    Expect(1, 194704, '\P{Is_Nt=_None}', "");
+    Expect(0, 194704, '\P{^Is_Nt=_None}', "");
+    Error('\p{Numeric_Type=_/a/numeric}');
+    Error('\P{Numeric_Type=_/a/numeric}');
     Expect(1, 194704, '\p{Numeric_Type=:\ANumeric\z:}', "");;
     Expect(0, 194705, '\p{Numeric_Type=:\ANumeric\z:}', "");;
     Expect(1, 194704, '\p{Numeric_Type=numeric}', "");
@@ -67395,16 +67985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 194705, '\P{^Numeric_Type=numeric}', "");
     Expect(1, 194704, '\p{Numeric_Type=:\Anumeric\z:}', "");;
     Expect(0, 194705, '\p{Numeric_Type=:\Anumeric\z:}', "");;
-    Expect(1, 194704, '\p{Numeric_Type=-_numeric}', "");
-    Expect(0, 194704, '\p{^Numeric_Type=-_numeric}', "");
-    Expect(0, 194704, '\P{Numeric_Type=-_numeric}', "");
-    Expect(1, 194704, '\P{^Numeric_Type=-_numeric}', "");
-    Expect(0, 194705, '\p{Numeric_Type=-_numeric}', "");
-    Expect(1, 194705, '\p{^Numeric_Type=-_numeric}', "");
-    Expect(1, 194705, '\P{Numeric_Type=-_numeric}', "");
-    Expect(0, 194705, '\P{^Numeric_Type=-_numeric}', "");
-    Error('\p{Nt=  Nu/a/}');
-    Error('\P{Nt=  Nu/a/}');
+    Expect(1, 194704, '\p{Numeric_Type:   	numeric}', "");
+    Expect(0, 194704, '\p{^Numeric_Type:   	numeric}', "");
+    Expect(0, 194704, '\P{Numeric_Type:   	numeric}', "");
+    Expect(1, 194704, '\P{^Numeric_Type:   	numeric}', "");
+    Expect(0, 194705, '\p{Numeric_Type:   	numeric}', "");
+    Expect(1, 194705, '\p{^Numeric_Type:   	numeric}', "");
+    Expect(1, 194705, '\P{Numeric_Type:   	numeric}', "");
+    Expect(0, 194705, '\P{^Numeric_Type:   	numeric}', "");
+    Error('\p{Nt=	/a/nu}');
+    Error('\P{Nt=	/a/nu}');
     Expect(1, 194704, '\p{Nt=:\ANu\z:}', "");;
     Expect(0, 194705, '\p{Nt=:\ANu\z:}', "");;
     Expect(1, 194704, '\p{Nt=nu}', "");
@@ -67417,16 +68007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 194705, '\P{^Nt=nu}', "");
     Expect(1, 194704, '\p{Nt=:\Anu\z:}', "");;
     Expect(0, 194705, '\p{Nt=:\Anu\z:}', "");;
-    Expect(1, 194704, '\p{Nt=	nu}', "");
-    Expect(0, 194704, '\p{^Nt=	nu}', "");
-    Expect(0, 194704, '\P{Nt=	nu}', "");
-    Expect(1, 194704, '\P{^Nt=	nu}', "");
-    Expect(0, 194705, '\p{Nt=	nu}', "");
-    Expect(1, 194705, '\p{^Nt=	nu}', "");
-    Expect(1, 194705, '\P{Nt=	nu}', "");
-    Expect(0, 194705, '\P{^Nt=	nu}', "");
-    Error('\p{Is_Numeric_Type=/a/  Numeric}');
-    Error('\P{Is_Numeric_Type=/a/  Numeric}');
+    Expect(1, 194704, '\p{Nt=_-nu}', "");
+    Expect(0, 194704, '\p{^Nt=_-nu}', "");
+    Expect(0, 194704, '\P{Nt=_-nu}', "");
+    Expect(1, 194704, '\P{^Nt=_-nu}', "");
+    Expect(0, 194705, '\p{Nt=_-nu}', "");
+    Expect(1, 194705, '\p{^Nt=_-nu}', "");
+    Expect(1, 194705, '\P{Nt=_-nu}', "");
+    Expect(0, 194705, '\P{^Nt=_-nu}', "");
+    Error('\p{Is_Numeric_Type= numeric:=}');
+    Error('\P{Is_Numeric_Type= numeric:=}');
     Expect(1, 194704, '\p{Is_Numeric_Type=numeric}', "");
     Expect(0, 194704, '\p{^Is_Numeric_Type=numeric}', "");
     Expect(0, 194704, '\P{Is_Numeric_Type=numeric}', "");
@@ -67435,16 +68025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 194705, '\p{^Is_Numeric_Type=numeric}', "");
     Expect(1, 194705, '\P{Is_Numeric_Type=numeric}', "");
     Expect(0, 194705, '\P{^Is_Numeric_Type=numeric}', "");
-    Expect(1, 194704, '\p{Is_Numeric_Type= -numeric}', "");
-    Expect(0, 194704, '\p{^Is_Numeric_Type= -numeric}', "");
-    Expect(0, 194704, '\P{Is_Numeric_Type= -numeric}', "");
-    Expect(1, 194704, '\P{^Is_Numeric_Type= -numeric}', "");
-    Expect(0, 194705, '\p{Is_Numeric_Type= -numeric}', "");
-    Expect(1, 194705, '\p{^Is_Numeric_Type= -numeric}', "");
-    Expect(1, 194705, '\P{Is_Numeric_Type= -numeric}', "");
-    Expect(0, 194705, '\P{^Is_Numeric_Type= -numeric}', "");
-    Error('\p{Is_Nt=:=-	nu}');
-    Error('\P{Is_Nt=:=-	nu}');
+    Expect(1, 194704, '\p{Is_Numeric_Type=	-numeric}', "");
+    Expect(0, 194704, '\p{^Is_Numeric_Type=	-numeric}', "");
+    Expect(0, 194704, '\P{Is_Numeric_Type=	-numeric}', "");
+    Expect(1, 194704, '\P{^Is_Numeric_Type=	-numeric}', "");
+    Expect(0, 194705, '\p{Is_Numeric_Type=	-numeric}', "");
+    Expect(1, 194705, '\p{^Is_Numeric_Type=	-numeric}', "");
+    Expect(1, 194705, '\P{Is_Numeric_Type=	-numeric}', "");
+    Expect(0, 194705, '\P{^Is_Numeric_Type=	-numeric}', "");
+    Error('\p{Is_Nt=/a/-_Nu}');
+    Error('\P{Is_Nt=/a/-_Nu}');
     Expect(1, 194704, '\p{Is_Nt=nu}', "");
     Expect(0, 194704, '\p{^Is_Nt=nu}', "");
     Expect(0, 194704, '\P{Is_Nt=nu}', "");
@@ -67453,38 +68043,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 194705, '\p{^Is_Nt=nu}', "");
     Expect(1, 194705, '\P{Is_Nt=nu}', "");
     Expect(0, 194705, '\P{^Is_Nt=nu}', "");
-    Expect(1, 194704, '\p{Is_Nt=	Nu}', "");
-    Expect(0, 194704, '\p{^Is_Nt=	Nu}', "");
-    Expect(0, 194704, '\P{Is_Nt=	Nu}', "");
-    Expect(1, 194704, '\P{^Is_Nt=	Nu}', "");
-    Expect(0, 194705, '\p{Is_Nt=	Nu}', "");
-    Expect(1, 194705, '\p{^Is_Nt=	Nu}', "");
-    Expect(1, 194705, '\P{Is_Nt=	Nu}', "");
-    Expect(0, 194705, '\P{^Is_Nt=	Nu}', "");
+    Expect(1, 194704, '\p{Is_Nt=-	Nu}', "");
+    Expect(0, 194704, '\p{^Is_Nt=-	Nu}', "");
+    Expect(0, 194704, '\P{Is_Nt=-	Nu}', "");
+    Expect(1, 194704, '\P{^Is_Nt=-	Nu}', "");
+    Expect(0, 194705, '\p{Is_Nt=-	Nu}', "");
+    Expect(1, 194705, '\p{^Is_Nt=-	Nu}', "");
+    Expect(1, 194705, '\P{Is_Nt=-	Nu}', "");
+    Expect(0, 194705, '\P{^Is_Nt=-	Nu}', "");
     Error('\p{numericvalue}');
     Error('\P{numericvalue}');
     Error('\p{nv}');
     Error('\P{nv}');
-    Error('\p{Numeric_Value: _:=-01/0002}');
-    Error('\P{Numeric_Value: _:=-01/0002}');
+    Error('\p{Numeric_Value:	:=-0000000001/002}');
+    Error('\P{Numeric_Value:	:=-0000000001/002}');
     Expect(1, 3891, '\p{Numeric_Value=:\A-1/2\z:}', "");;
     Expect(0, 3892, '\p{Numeric_Value=:\A-1/2\z:}', "");;
-    Expect(1, 3891, '\p{Numeric_Value=-01/0000002}', "");
-    Expect(0, 3891, '\p{^Numeric_Value=-01/0000002}', "");
-    Expect(0, 3891, '\P{Numeric_Value=-01/0000002}', "");
-    Expect(1, 3891, '\P{^Numeric_Value=-01/0000002}', "");
-    Expect(0, 3892, '\p{Numeric_Value=-01/0000002}', "");
-    Expect(1, 3892, '\p{^Numeric_Value=-01/0000002}', "");
-    Expect(1, 3892, '\P{Numeric_Value=-01/0000002}', "");
-    Expect(0, 3892, '\P{^Numeric_Value=-01/0000002}', "");
-    Expect(1, 3891, '\p{Numeric_Value: -60/120}', "");
-    Expect(0, 3891, '\p{^Numeric_Value: -60/120}', "");
-    Expect(0, 3891, '\P{Numeric_Value: -60/120}', "");
-    Expect(1, 3891, '\P{^Numeric_Value: -60/120}', "");
-    Expect(0, 3892, '\p{Numeric_Value: -60/120}', "");
-    Expect(1, 3892, '\p{^Numeric_Value: -60/120}', "");
-    Expect(1, 3892, '\P{Numeric_Value: -60/120}', "");
-    Expect(0, 3892, '\P{^Numeric_Value: -60/120}', "");
+    Expect(1, 3891, '\p{Numeric_Value=-00001/000002}', "");
+    Expect(0, 3891, '\p{^Numeric_Value=-00001/000002}', "");
+    Expect(0, 3891, '\P{Numeric_Value=-00001/000002}', "");
+    Expect(1, 3891, '\P{^Numeric_Value=-00001/000002}', "");
+    Expect(0, 3892, '\p{Numeric_Value=-00001/000002}', "");
+    Expect(1, 3892, '\p{^Numeric_Value=-00001/000002}', "");
+    Expect(1, 3892, '\P{Numeric_Value=-00001/000002}', "");
+    Expect(0, 3892, '\P{^Numeric_Value=-00001/000002}', "");
+    Expect(1, 3891, '\p{Numeric_Value=-60/120}', "");
+    Expect(0, 3891, '\p{^Numeric_Value=-60/120}', "");
+    Expect(0, 3891, '\P{Numeric_Value=-60/120}', "");
+    Expect(1, 3891, '\P{^Numeric_Value=-60/120}', "");
+    Expect(0, 3892, '\p{Numeric_Value=-60/120}', "");
+    Expect(1, 3892, '\p{^Numeric_Value=-60/120}', "");
+    Expect(1, 3892, '\P{Numeric_Value=-60/120}', "");
+    Expect(0, 3892, '\P{^Numeric_Value=-60/120}', "");
     Expect(1, 3891, '\p{Numeric_Value=-5.0e-01}', "");
     Expect(0, 3891, '\p{^Numeric_Value=-5.0e-01}', "");
     Expect(0, 3891, '\P{Numeric_Value=-5.0e-01}', "");
@@ -67517,18 +68107,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3892, '\p{^Numeric_Value=-0.50}', "");
     Expect(1, 3892, '\P{Numeric_Value=-0.50}', "");
     Expect(0, 3892, '\P{^Numeric_Value=-0.50}', "");
-    Error('\p{Nv=_-000001/2/a/}');
-    Error('\P{Nv=_-000001/2/a/}');
+    Error('\p{Nv:	 :=-00000001/00002}');
+    Error('\P{Nv:	 :=-00000001/00002}');
     Expect(1, 3891, '\p{Nv=:\A-1/2\z:}', "");;
     Expect(0, 3892, '\p{Nv=:\A-1/2\z:}', "");;
-    Expect(1, 3891, '\p{Nv=-001/002}', "");
-    Expect(0, 3891, '\p{^Nv=-001/002}', "");
-    Expect(0, 3891, '\P{Nv=-001/002}', "");
-    Expect(1, 3891, '\P{^Nv=-001/002}', "");
-    Expect(0, 3892, '\p{Nv=-001/002}', "");
-    Expect(1, 3892, '\p{^Nv=-001/002}', "");
-    Expect(1, 3892, '\P{Nv=-001/002}', "");
-    Expect(0, 3892, '\P{^Nv=-001/002}', "");
+    Expect(1, 3891, '\p{Nv=-000000001/0000000002}', "");
+    Expect(0, 3891, '\p{^Nv=-000000001/0000000002}', "");
+    Expect(0, 3891, '\P{Nv=-000000001/0000000002}', "");
+    Expect(1, 3891, '\P{^Nv=-000000001/0000000002}', "");
+    Expect(0, 3892, '\p{Nv=-000000001/0000000002}', "");
+    Expect(1, 3892, '\p{^Nv=-000000001/0000000002}', "");
+    Expect(1, 3892, '\P{Nv=-000000001/0000000002}', "");
+    Expect(0, 3892, '\P{^Nv=-000000001/0000000002}', "");
     Expect(1, 3891, '\p{Nv=-60/120}', "");
     Expect(0, 3891, '\p{^Nv=-60/120}', "");
     Expect(0, 3891, '\P{Nv=-60/120}', "");
@@ -67561,24 +68151,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3892, '\p{^Nv=-5.00e-01}', "");
     Expect(1, 3892, '\P{Nv=-5.00e-01}', "");
     Expect(0, 3892, '\P{^Nv=-5.00e-01}', "");
-    Expect(1, 3891, '\p{Nv=-0.50}', "");
-    Expect(0, 3891, '\p{^Nv=-0.50}', "");
-    Expect(0, 3891, '\P{Nv=-0.50}', "");
-    Expect(1, 3891, '\P{^Nv=-0.50}', "");
-    Expect(0, 3892, '\p{Nv=-0.50}', "");
-    Expect(1, 3892, '\p{^Nv=-0.50}', "");
-    Expect(1, 3892, '\P{Nv=-0.50}', "");
-    Expect(0, 3892, '\P{^Nv=-0.50}', "");
-    Error('\p{Is_Numeric_Value=-0000001/2:=}');
-    Error('\P{Is_Numeric_Value=-0000001/2:=}');
-    Expect(1, 3891, '\p{Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(0, 3891, '\p{^Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(0, 3891, '\P{Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(1, 3891, '\P{^Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(0, 3892, '\p{Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(1, 3892, '\p{^Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(1, 3892, '\P{Is_Numeric_Value=-0000001/000000002}', "");
-    Expect(0, 3892, '\P{^Is_Numeric_Value=-0000001/000000002}', "");
+    Expect(1, 3891, '\p{Nv: -0.50}', "");
+    Expect(0, 3891, '\p{^Nv: -0.50}', "");
+    Expect(0, 3891, '\P{Nv: -0.50}', "");
+    Expect(1, 3891, '\P{^Nv: -0.50}', "");
+    Expect(0, 3892, '\p{Nv: -0.50}', "");
+    Expect(1, 3892, '\p{^Nv: -0.50}', "");
+    Expect(1, 3892, '\P{Nv: -0.50}', "");
+    Expect(0, 3892, '\P{^Nv: -0.50}', "");
+    Error('\p{Is_Numeric_Value:   ---001/0000002/a/}');
+    Error('\P{Is_Numeric_Value:   ---001/0000002/a/}');
+    Expect(1, 3891, '\p{Is_Numeric_Value=-0000000001/2}', "");
+    Expect(0, 3891, '\p{^Is_Numeric_Value=-0000000001/2}', "");
+    Expect(0, 3891, '\P{Is_Numeric_Value=-0000000001/2}', "");
+    Expect(1, 3891, '\P{^Is_Numeric_Value=-0000000001/2}', "");
+    Expect(0, 3892, '\p{Is_Numeric_Value=-0000000001/2}', "");
+    Expect(1, 3892, '\p{^Is_Numeric_Value=-0000000001/2}', "");
+    Expect(1, 3892, '\P{Is_Numeric_Value=-0000000001/2}', "");
+    Expect(0, 3892, '\P{^Is_Numeric_Value=-0000000001/2}', "");
     Expect(1, 3891, '\p{Is_Numeric_Value=-60/120}', "");
     Expect(0, 3891, '\p{^Is_Numeric_Value=-60/120}', "");
     Expect(0, 3891, '\P{Is_Numeric_Value=-60/120}', "");
@@ -67603,14 +68193,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3892, '\p{^Is_Numeric_Value=-0.5}', "");
     Expect(1, 3892, '\P{Is_Numeric_Value=-0.5}', "");
     Expect(0, 3892, '\P{^Is_Numeric_Value=-0.5}', "");
-    Expect(1, 3891, '\p{Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(0, 3891, '\p{^Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(0, 3891, '\P{Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(1, 3891, '\P{^Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(0, 3892, '\p{Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(1, 3892, '\p{^Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(1, 3892, '\P{Is_Numeric_Value:	-5.00e-01}', "");
-    Expect(0, 3892, '\P{^Is_Numeric_Value:	-5.00e-01}', "");
+    Expect(1, 3891, '\p{Is_Numeric_Value=-5.00e-01}', "");
+    Expect(0, 3891, '\p{^Is_Numeric_Value=-5.00e-01}', "");
+    Expect(0, 3891, '\P{Is_Numeric_Value=-5.00e-01}', "");
+    Expect(1, 3891, '\P{^Is_Numeric_Value=-5.00e-01}', "");
+    Expect(0, 3892, '\p{Is_Numeric_Value=-5.00e-01}', "");
+    Expect(1, 3892, '\p{^Is_Numeric_Value=-5.00e-01}', "");
+    Expect(1, 3892, '\P{Is_Numeric_Value=-5.00e-01}', "");
+    Expect(0, 3892, '\P{^Is_Numeric_Value=-5.00e-01}', "");
     Expect(1, 3891, '\p{Is_Numeric_Value=-0.50}', "");
     Expect(0, 3891, '\p{^Is_Numeric_Value=-0.50}', "");
     Expect(0, 3891, '\P{Is_Numeric_Value=-0.50}', "");
@@ -67619,32 +68209,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3892, '\p{^Is_Numeric_Value=-0.50}', "");
     Expect(1, 3892, '\P{Is_Numeric_Value=-0.50}', "");
     Expect(0, 3892, '\P{^Is_Numeric_Value=-0.50}', "");
-    Error('\p{Is_Nv=  -1/00000002:=}');
-    Error('\P{Is_Nv=  -1/00000002:=}');
-    Expect(1, 3891, '\p{Is_Nv:	-1/002}', "");
-    Expect(0, 3891, '\p{^Is_Nv:	-1/002}', "");
-    Expect(0, 3891, '\P{Is_Nv:	-1/002}', "");
-    Expect(1, 3891, '\P{^Is_Nv:	-1/002}', "");
-    Expect(0, 3892, '\p{Is_Nv:	-1/002}', "");
-    Expect(1, 3892, '\p{^Is_Nv:	-1/002}', "");
-    Expect(1, 3892, '\P{Is_Nv:	-1/002}', "");
-    Expect(0, 3892, '\P{^Is_Nv:	-1/002}', "");
-    Expect(1, 3891, '\p{Is_Nv=-60/120}', "");
-    Expect(0, 3891, '\p{^Is_Nv=-60/120}', "");
-    Expect(0, 3891, '\P{Is_Nv=-60/120}', "");
-    Expect(1, 3891, '\P{^Is_Nv=-60/120}', "");
-    Expect(0, 3892, '\p{Is_Nv=-60/120}', "");
-    Expect(1, 3892, '\p{^Is_Nv=-60/120}', "");
-    Expect(1, 3892, '\P{Is_Nv=-60/120}', "");
-    Expect(0, 3892, '\P{^Is_Nv=-60/120}', "");
-    Expect(1, 3891, '\p{Is_Nv=-5.0e-01}', "");
-    Expect(0, 3891, '\p{^Is_Nv=-5.0e-01}', "");
-    Expect(0, 3891, '\P{Is_Nv=-5.0e-01}', "");
-    Expect(1, 3891, '\P{^Is_Nv=-5.0e-01}', "");
-    Expect(0, 3892, '\p{Is_Nv=-5.0e-01}', "");
-    Expect(1, 3892, '\p{^Is_Nv=-5.0e-01}', "");
-    Expect(1, 3892, '\P{Is_Nv=-5.0e-01}', "");
-    Expect(0, 3892, '\P{^Is_Nv=-5.0e-01}', "");
+    Error('\p{Is_Nv=/a/-000000001/002}');
+    Error('\P{Is_Nv=/a/-000000001/002}');
+    Expect(1, 3891, '\p{Is_Nv=-000000001/002}', "");
+    Expect(0, 3891, '\p{^Is_Nv=-000000001/002}', "");
+    Expect(0, 3891, '\P{Is_Nv=-000000001/002}', "");
+    Expect(1, 3891, '\P{^Is_Nv=-000000001/002}', "");
+    Expect(0, 3892, '\p{Is_Nv=-000000001/002}', "");
+    Expect(1, 3892, '\p{^Is_Nv=-000000001/002}', "");
+    Expect(1, 3892, '\P{Is_Nv=-000000001/002}', "");
+    Expect(0, 3892, '\P{^Is_Nv=-000000001/002}', "");
+    Expect(1, 3891, '\p{Is_Nv:	-60/120}', "");
+    Expect(0, 3891, '\p{^Is_Nv:	-60/120}', "");
+    Expect(0, 3891, '\P{Is_Nv:	-60/120}', "");
+    Expect(1, 3891, '\P{^Is_Nv:	-60/120}', "");
+    Expect(0, 3892, '\p{Is_Nv:	-60/120}', "");
+    Expect(1, 3892, '\p{^Is_Nv:	-60/120}', "");
+    Expect(1, 3892, '\P{Is_Nv:	-60/120}', "");
+    Expect(0, 3892, '\P{^Is_Nv:	-60/120}', "");
+    Expect(1, 3891, '\p{Is_Nv:	-5.0e-01}', "");
+    Expect(0, 3891, '\p{^Is_Nv:	-5.0e-01}', "");
+    Expect(0, 3891, '\P{Is_Nv:	-5.0e-01}', "");
+    Expect(1, 3891, '\P{^Is_Nv:	-5.0e-01}', "");
+    Expect(0, 3892, '\p{Is_Nv:	-5.0e-01}', "");
+    Expect(1, 3892, '\p{^Is_Nv:	-5.0e-01}', "");
+    Expect(1, 3892, '\P{Is_Nv:	-5.0e-01}', "");
+    Expect(0, 3892, '\P{^Is_Nv:	-5.0e-01}', "");
     Expect(1, 3891, '\p{Is_Nv=-0.5}', "");
     Expect(0, 3891, '\p{^Is_Nv=-0.5}', "");
     Expect(0, 3891, '\P{Is_Nv=-0.5}', "");
@@ -67669,38 +68259,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3892, '\p{^Is_Nv=-0.50}', "");
     Expect(1, 3892, '\P{Is_Nv=-0.50}', "");
     Expect(0, 3892, '\P{^Is_Nv=-0.50}', "");
-    Error('\p{Numeric_Value=/a/  00000000_0}');
-    Error('\P{Numeric_Value=/a/  00000000_0}');
+    Error('\p{Numeric_Value=_:=+00_00_0}');
+    Error('\P{Numeric_Value=_:=+00_00_0}');
     Expect(1, 130032, '\p{Numeric_Value=:\A0\z:}', "");;
     Expect(0, 130033, '\p{Numeric_Value=:\A0\z:}', "");;
-    Expect(1, 130032, '\p{Numeric_Value=00000000}', "");
-    Expect(0, 130032, '\p{^Numeric_Value=00000000}', "");
-    Expect(0, 130032, '\P{Numeric_Value=00000000}', "");
-    Expect(1, 130032, '\P{^Numeric_Value=00000000}', "");
-    Expect(0, 130033, '\p{Numeric_Value=00000000}', "");
-    Expect(1, 130033, '\p{^Numeric_Value=00000000}', "");
-    Expect(1, 130033, '\P{Numeric_Value=00000000}', "");
-    Expect(0, 130033, '\P{^Numeric_Value=00000000}', "");
-    Expect(1, 130032, '\p{Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(0, 130032, '\p{^Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(0, 130032, '\P{Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(1, 130032, '\P{^Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(0, 130033, '\p{Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(1, 130033, '\p{^Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(1, 130033, '\P{Numeric_Value:	0.000000000000000e+00}', "");
-    Expect(0, 130033, '\P{^Numeric_Value:	0.000000000000000e+00}', "");
-    Error('\p{Nv=_/a/000000}');
-    Error('\P{Nv=_/a/000000}');
+    Expect(1, 130032, '\p{Numeric_Value=0000000}', "");
+    Expect(0, 130032, '\p{^Numeric_Value=0000000}', "");
+    Expect(0, 130032, '\P{Numeric_Value=0000000}', "");
+    Expect(1, 130032, '\P{^Numeric_Value=0000000}', "");
+    Expect(0, 130033, '\p{Numeric_Value=0000000}', "");
+    Expect(1, 130033, '\p{^Numeric_Value=0000000}', "");
+    Expect(1, 130033, '\P{Numeric_Value=0000000}', "");
+    Expect(0, 130033, '\P{^Numeric_Value=0000000}', "");
+    Expect(1, 130032, '\p{Numeric_Value=0.000000000000000e+00}', "");
+    Expect(0, 130032, '\p{^Numeric_Value=0.000000000000000e+00}', "");
+    Expect(0, 130032, '\P{Numeric_Value=0.000000000000000e+00}', "");
+    Expect(1, 130032, '\P{^Numeric_Value=0.000000000000000e+00}', "");
+    Expect(0, 130033, '\p{Numeric_Value=0.000000000000000e+00}', "");
+    Expect(1, 130033, '\p{^Numeric_Value=0.000000000000000e+00}', "");
+    Expect(1, 130033, '\P{Numeric_Value=0.000000000000000e+00}', "");
+    Expect(0, 130033, '\P{^Numeric_Value=0.000000000000000e+00}', "");
+    Error('\p{Nv=/a/-+0_0_0_000}');
+    Error('\P{Nv=/a/-+0_0_0_000}');
     Expect(1, 130032, '\p{Nv=:\A0\z:}', "");;
     Expect(0, 130033, '\p{Nv=:\A0\z:}', "");;
-    Expect(1, 130032, '\p{Nv=0}', "");
-    Expect(0, 130032, '\p{^Nv=0}', "");
-    Expect(0, 130032, '\P{Nv=0}', "");
-    Expect(1, 130032, '\P{^Nv=0}', "");
-    Expect(0, 130033, '\p{Nv=0}', "");
-    Expect(1, 130033, '\p{^Nv=0}', "");
-    Expect(1, 130033, '\P{Nv=0}', "");
-    Expect(0, 130033, '\P{^Nv=0}', "");
+    Expect(1, 130032, '\p{Nv=+00000000}', "");
+    Expect(0, 130032, '\p{^Nv=+00000000}', "");
+    Expect(0, 130032, '\P{Nv=+00000000}', "");
+    Expect(1, 130032, '\P{^Nv=+00000000}', "");
+    Expect(0, 130033, '\p{Nv=+00000000}', "");
+    Expect(1, 130033, '\p{^Nv=+00000000}', "");
+    Expect(1, 130033, '\P{Nv=+00000000}', "");
+    Expect(0, 130033, '\P{^Nv=+00000000}', "");
     Expect(1, 130032, '\p{Nv=0.000000000000000e+00}', "");
     Expect(0, 130032, '\p{^Nv=0.000000000000000e+00}', "");
     Expect(0, 130032, '\P{Nv=0.000000000000000e+00}', "");
@@ -67709,16 +68299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130033, '\p{^Nv=0.000000000000000e+00}', "");
     Expect(1, 130033, '\P{Nv=0.000000000000000e+00}', "");
     Expect(0, 130033, '\P{^Nv=0.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value= _+00000:=}');
-    Error('\P{Is_Numeric_Value= _+00000:=}');
-    Expect(1, 130032, '\p{Is_Numeric_Value=00_00_00_0}', "");
-    Expect(0, 130032, '\p{^Is_Numeric_Value=00_00_00_0}', "");
-    Expect(0, 130032, '\P{Is_Numeric_Value=00_00_00_0}', "");
-    Expect(1, 130032, '\P{^Is_Numeric_Value=00_00_00_0}', "");
-    Expect(0, 130033, '\p{Is_Numeric_Value=00_00_00_0}', "");
-    Expect(1, 130033, '\p{^Is_Numeric_Value=00_00_00_0}', "");
-    Expect(1, 130033, '\P{Is_Numeric_Value=00_00_00_0}', "");
-    Expect(0, 130033, '\P{^Is_Numeric_Value=00_00_00_0}', "");
+    Error('\p{Is_Numeric_Value=/a/00_0}');
+    Error('\P{Is_Numeric_Value=/a/00_0}');
+    Expect(1, 130032, '\p{Is_Numeric_Value=+00000_0}', "");
+    Expect(0, 130032, '\p{^Is_Numeric_Value=+00000_0}', "");
+    Expect(0, 130032, '\P{Is_Numeric_Value=+00000_0}', "");
+    Expect(1, 130032, '\P{^Is_Numeric_Value=+00000_0}', "");
+    Expect(0, 130033, '\p{Is_Numeric_Value=+00000_0}', "");
+    Expect(1, 130033, '\p{^Is_Numeric_Value=+00000_0}', "");
+    Expect(1, 130033, '\P{Is_Numeric_Value=+00000_0}', "");
+    Expect(0, 130033, '\P{^Is_Numeric_Value=+00000_0}', "");
     Expect(1, 130032, '\p{Is_Numeric_Value=0.000000000000000e+00}', "");
     Expect(0, 130032, '\p{^Is_Numeric_Value=0.000000000000000e+00}', "");
     Expect(0, 130032, '\P{Is_Numeric_Value=0.000000000000000e+00}', "");
@@ -67727,36 +68317,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 130033, '\p{^Is_Numeric_Value=0.000000000000000e+00}', "");
     Expect(1, 130033, '\P{Is_Numeric_Value=0.000000000000000e+00}', "");
     Expect(0, 130033, '\P{^Is_Numeric_Value=0.000000000000000e+00}', "");
-    Error('\p{Is_Nv=-	0000000/a/}');
-    Error('\P{Is_Nv=-	0000000/a/}');
-    Expect(1, 130032, '\p{Is_Nv=+000_0}', "");
-    Expect(0, 130032, '\p{^Is_Nv=+000_0}', "");
-    Expect(0, 130032, '\P{Is_Nv=+000_0}', "");
-    Expect(1, 130032, '\P{^Is_Nv=+000_0}', "");
-    Expect(0, 130033, '\p{Is_Nv=+000_0}', "");
-    Expect(1, 130033, '\p{^Is_Nv=+000_0}', "");
-    Expect(1, 130033, '\P{Is_Nv=+000_0}', "");
-    Expect(0, 130033, '\P{^Is_Nv=+000_0}', "");
-    Expect(1, 130032, '\p{Is_Nv:	0.000000000000000e+00}', "");
-    Expect(0, 130032, '\p{^Is_Nv:	0.000000000000000e+00}', "");
-    Expect(0, 130032, '\P{Is_Nv:	0.000000000000000e+00}', "");
-    Expect(1, 130032, '\P{^Is_Nv:	0.000000000000000e+00}', "");
-    Expect(0, 130033, '\p{Is_Nv:	0.000000000000000e+00}', "");
-    Expect(1, 130033, '\p{^Is_Nv:	0.000000000000000e+00}', "");
-    Expect(1, 130033, '\P{Is_Nv:	0.000000000000000e+00}', "");
-    Expect(0, 130033, '\P{^Is_Nv:	0.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=/a/ 	+01}');
-    Error('\P{Numeric_Value=/a/ 	+01}');
+    Error('\p{Is_Nv=-	0000000_0/a/}');
+    Error('\P{Is_Nv=-	0000000_0/a/}');
+    Expect(1, 130032, '\p{Is_Nv=+000}', "");
+    Expect(0, 130032, '\p{^Is_Nv=+000}', "");
+    Expect(0, 130032, '\P{Is_Nv=+000}', "");
+    Expect(1, 130032, '\P{^Is_Nv=+000}', "");
+    Expect(0, 130033, '\p{Is_Nv=+000}', "");
+    Expect(1, 130033, '\p{^Is_Nv=+000}', "");
+    Expect(1, 130033, '\P{Is_Nv=+000}', "");
+    Expect(0, 130033, '\P{^Is_Nv=+000}', "");
+    Expect(1, 130032, '\p{Is_Nv=0.000000000000000e+00}', "");
+    Expect(0, 130032, '\p{^Is_Nv=0.000000000000000e+00}', "");
+    Expect(0, 130032, '\P{Is_Nv=0.000000000000000e+00}', "");
+    Expect(1, 130032, '\P{^Is_Nv=0.000000000000000e+00}', "");
+    Expect(0, 130033, '\p{Is_Nv=0.000000000000000e+00}', "");
+    Expect(1, 130033, '\p{^Is_Nv=0.000000000000000e+00}', "");
+    Expect(1, 130033, '\P{Is_Nv=0.000000000000000e+00}', "");
+    Expect(0, 130033, '\P{^Is_Nv=0.000000000000000e+00}', "");
+    Error('\p{Numeric_Value=:=  1}');
+    Error('\P{Numeric_Value=:=  1}');
     Expect(1, 133418, '\p{Numeric_Value=:\A1\z:}', "");;
     Expect(0, 133419, '\p{Numeric_Value=:\A1\z:}', "");;
-    Expect(1, 133418, '\p{Numeric_Value=0001}', "");
-    Expect(0, 133418, '\p{^Numeric_Value=0001}', "");
-    Expect(0, 133418, '\P{Numeric_Value=0001}', "");
-    Expect(1, 133418, '\P{^Numeric_Value=0001}', "");
-    Expect(0, 133419, '\p{Numeric_Value=0001}', "");
-    Expect(1, 133419, '\p{^Numeric_Value=0001}', "");
-    Expect(1, 133419, '\P{Numeric_Value=0001}', "");
-    Expect(0, 133419, '\P{^Numeric_Value=0001}', "");
+    Expect(1, 133418, '\p{Numeric_Value:	0_0_0_01}', "");
+    Expect(0, 133418, '\p{^Numeric_Value:	0_0_0_01}', "");
+    Expect(0, 133418, '\P{Numeric_Value:	0_0_0_01}', "");
+    Expect(1, 133418, '\P{^Numeric_Value:	0_0_0_01}', "");
+    Expect(0, 133419, '\p{Numeric_Value:	0_0_0_01}', "");
+    Expect(1, 133419, '\p{^Numeric_Value:	0_0_0_01}', "");
+    Expect(1, 133419, '\P{Numeric_Value:	0_0_0_01}', "");
+    Expect(0, 133419, '\P{^Numeric_Value:	0_0_0_01}', "");
     Expect(1, 133418, '\p{Numeric_Value=1.000000000000000e+00}', "");
     Expect(0, 133418, '\p{^Numeric_Value=1.000000000000000e+00}', "");
     Expect(0, 133418, '\P{Numeric_Value=1.000000000000000e+00}', "");
@@ -67765,18 +68355,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 133419, '\p{^Numeric_Value=1.000000000000000e+00}', "");
     Expect(1, 133419, '\P{Numeric_Value=1.000000000000000e+00}', "");
     Expect(0, 133419, '\P{^Numeric_Value=1.000000000000000e+00}', "");
-    Error('\p{Nv=/a/	 +01}');
-    Error('\P{Nv=/a/	 +01}');
+    Error('\p{Nv=/a/ _001}');
+    Error('\P{Nv=/a/ _001}');
     Expect(1, 133418, '\p{Nv=:\A1\z:}', "");;
     Expect(0, 133419, '\p{Nv=:\A1\z:}', "");;
-    Expect(1, 133418, '\p{Nv:	1}', "");
-    Expect(0, 133418, '\p{^Nv:	1}', "");
-    Expect(0, 133418, '\P{Nv:	1}', "");
-    Expect(1, 133418, '\P{^Nv:	1}', "");
-    Expect(0, 133419, '\p{Nv:	1}', "");
-    Expect(1, 133419, '\p{^Nv:	1}', "");
-    Expect(1, 133419, '\P{Nv:	1}', "");
-    Expect(0, 133419, '\P{^Nv:	1}', "");
+    Expect(1, 133418, '\p{Nv: 00_00_00_1}', "");
+    Expect(0, 133418, '\p{^Nv: 00_00_00_1}', "");
+    Expect(0, 133418, '\P{Nv: 00_00_00_1}', "");
+    Expect(1, 133418, '\P{^Nv: 00_00_00_1}', "");
+    Expect(0, 133419, '\p{Nv: 00_00_00_1}', "");
+    Expect(1, 133419, '\p{^Nv: 00_00_00_1}', "");
+    Expect(1, 133419, '\P{Nv: 00_00_00_1}', "");
+    Expect(0, 133419, '\P{^Nv: 00_00_00_1}', "");
     Expect(1, 133418, '\p{Nv=1.000000000000000e+00}', "");
     Expect(0, 133418, '\p{^Nv=1.000000000000000e+00}', "");
     Expect(0, 133418, '\P{Nv=1.000000000000000e+00}', "");
@@ -67785,16 +68375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 133419, '\p{^Nv=1.000000000000000e+00}', "");
     Expect(1, 133419, '\P{Nv=1.000000000000000e+00}', "");
     Expect(0, 133419, '\P{^Nv=1.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=--000000001/a/}');
-    Error('\P{Is_Numeric_Value=--000000001/a/}');
-    Expect(1, 133418, '\p{Is_Numeric_Value=000001}', "");
-    Expect(0, 133418, '\p{^Is_Numeric_Value=000001}', "");
-    Expect(0, 133418, '\P{Is_Numeric_Value=000001}', "");
-    Expect(1, 133418, '\P{^Is_Numeric_Value=000001}', "");
-    Expect(0, 133419, '\p{Is_Numeric_Value=000001}', "");
-    Expect(1, 133419, '\p{^Is_Numeric_Value=000001}', "");
-    Expect(1, 133419, '\P{Is_Numeric_Value=000001}', "");
-    Expect(0, 133419, '\P{^Is_Numeric_Value=000001}', "");
+    Error('\p{Is_Numeric_Value=  0_0_0_0_001:=}');
+    Error('\P{Is_Numeric_Value=  0_0_0_0_001:=}');
+    Expect(1, 133418, '\p{Is_Numeric_Value=001}', "");
+    Expect(0, 133418, '\p{^Is_Numeric_Value=001}', "");
+    Expect(0, 133418, '\P{Is_Numeric_Value=001}', "");
+    Expect(1, 133418, '\P{^Is_Numeric_Value=001}', "");
+    Expect(0, 133419, '\p{Is_Numeric_Value=001}', "");
+    Expect(1, 133419, '\p{^Is_Numeric_Value=001}', "");
+    Expect(1, 133419, '\P{Is_Numeric_Value=001}', "");
+    Expect(0, 133419, '\P{^Is_Numeric_Value=001}', "");
     Expect(1, 133418, '\p{Is_Numeric_Value=1.000000000000000e+00}', "");
     Expect(0, 133418, '\p{^Is_Numeric_Value=1.000000000000000e+00}', "");
     Expect(0, 133418, '\P{Is_Numeric_Value=1.000000000000000e+00}', "");
@@ -67803,44 +68393,44 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 133419, '\p{^Is_Numeric_Value=1.000000000000000e+00}', "");
     Expect(1, 133419, '\P{Is_Numeric_Value=1.000000000000000e+00}', "");
     Expect(0, 133419, '\P{^Is_Numeric_Value=1.000000000000000e+00}', "");
-    Error('\p{Is_Nv=/a/0001}');
-    Error('\P{Is_Nv=/a/0001}');
-    Expect(1, 133418, '\p{Is_Nv=+000_1}', "");
-    Expect(0, 133418, '\p{^Is_Nv=+000_1}', "");
-    Expect(0, 133418, '\P{Is_Nv=+000_1}', "");
-    Expect(1, 133418, '\P{^Is_Nv=+000_1}', "");
-    Expect(0, 133419, '\p{Is_Nv=+000_1}', "");
-    Expect(1, 133419, '\p{^Is_Nv=+000_1}', "");
-    Expect(1, 133419, '\P{Is_Nv=+000_1}', "");
-    Expect(0, 133419, '\P{^Is_Nv=+000_1}', "");
-    Expect(1, 133418, '\p{Is_Nv:1.000000000000000e+00}', "");
-    Expect(0, 133418, '\p{^Is_Nv:1.000000000000000e+00}', "");
-    Expect(0, 133418, '\P{Is_Nv:1.000000000000000e+00}', "");
-    Expect(1, 133418, '\P{^Is_Nv:1.000000000000000e+00}', "");
-    Expect(0, 133419, '\p{Is_Nv:1.000000000000000e+00}', "");
-    Expect(1, 133419, '\p{^Is_Nv:1.000000000000000e+00}', "");
-    Expect(1, 133419, '\P{Is_Nv:1.000000000000000e+00}', "");
-    Expect(0, 133419, '\P{^Is_Nv:1.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=/a/__0000000001/00000000010}');
-    Error('\P{Numeric_Value=/a/__0000000001/00000000010}');
+    Error('\p{Is_Nv=_:=01}');
+    Error('\P{Is_Nv=_:=01}');
+    Expect(1, 133418, '\p{Is_Nv=00_1}', "");
+    Expect(0, 133418, '\p{^Is_Nv=00_1}', "");
+    Expect(0, 133418, '\P{Is_Nv=00_1}', "");
+    Expect(1, 133418, '\P{^Is_Nv=00_1}', "");
+    Expect(0, 133419, '\p{Is_Nv=00_1}', "");
+    Expect(1, 133419, '\p{^Is_Nv=00_1}', "");
+    Expect(1, 133419, '\P{Is_Nv=00_1}', "");
+    Expect(0, 133419, '\P{^Is_Nv=00_1}', "");
+    Expect(1, 133418, '\p{Is_Nv=1.000000000000000e+00}', "");
+    Expect(0, 133418, '\p{^Is_Nv=1.000000000000000e+00}', "");
+    Expect(0, 133418, '\P{Is_Nv=1.000000000000000e+00}', "");
+    Expect(1, 133418, '\P{^Is_Nv=1.000000000000000e+00}', "");
+    Expect(0, 133419, '\p{Is_Nv=1.000000000000000e+00}', "");
+    Expect(1, 133419, '\p{^Is_Nv=1.000000000000000e+00}', "");
+    Expect(1, 133419, '\P{Is_Nv=1.000000000000000e+00}', "");
+    Expect(0, 133419, '\P{^Is_Nv=1.000000000000000e+00}', "");
+    Error('\p{Numeric_Value: +00000001/0010/a/}');
+    Error('\P{Numeric_Value: +00000001/0010/a/}');
     Expect(1, 73675, '\p{Numeric_Value=:\A1/10\z:}', "");;
     Expect(0, 73676, '\p{Numeric_Value=:\A1/10\z:}', "");;
-    Expect(1, 73675, '\p{Numeric_Value=1/0010}', "");
-    Expect(0, 73675, '\p{^Numeric_Value=1/0010}', "");
-    Expect(0, 73675, '\P{Numeric_Value=1/0010}', "");
-    Expect(1, 73675, '\P{^Numeric_Value=1/0010}', "");
-    Expect(0, 73676, '\p{Numeric_Value=1/0010}', "");
-    Expect(1, 73676, '\p{^Numeric_Value=1/0010}', "");
-    Expect(1, 73676, '\P{Numeric_Value=1/0010}', "");
-    Expect(0, 73676, '\P{^Numeric_Value=1/0010}', "");
-    Expect(1, 73675, '\p{Numeric_Value:	60/600}', "");
-    Expect(0, 73675, '\p{^Numeric_Value:	60/600}', "");
-    Expect(0, 73675, '\P{Numeric_Value:	60/600}', "");
-    Expect(1, 73675, '\P{^Numeric_Value:	60/600}', "");
-    Expect(0, 73676, '\p{Numeric_Value:	60/600}', "");
-    Expect(1, 73676, '\p{^Numeric_Value:	60/600}', "");
-    Expect(1, 73676, '\P{Numeric_Value:	60/600}', "");
-    Expect(0, 73676, '\P{^Numeric_Value:	60/600}', "");
+    Expect(1, 73675, '\p{Numeric_Value=+1/0000010}', "");
+    Expect(0, 73675, '\p{^Numeric_Value=+1/0000010}', "");
+    Expect(0, 73675, '\P{Numeric_Value=+1/0000010}', "");
+    Expect(1, 73675, '\P{^Numeric_Value=+1/0000010}', "");
+    Expect(0, 73676, '\p{Numeric_Value=+1/0000010}', "");
+    Expect(1, 73676, '\p{^Numeric_Value=+1/0000010}', "");
+    Expect(1, 73676, '\P{Numeric_Value=+1/0000010}', "");
+    Expect(0, 73676, '\P{^Numeric_Value=+1/0000010}', "");
+    Expect(1, 73675, '\p{Numeric_Value=60/600}', "");
+    Expect(0, 73675, '\p{^Numeric_Value=60/600}', "");
+    Expect(0, 73675, '\P{Numeric_Value=60/600}', "");
+    Expect(1, 73675, '\P{^Numeric_Value=60/600}', "");
+    Expect(0, 73676, '\p{Numeric_Value=60/600}', "");
+    Expect(1, 73676, '\p{^Numeric_Value=60/600}', "");
+    Expect(1, 73676, '\P{Numeric_Value=60/600}', "");
+    Expect(0, 73676, '\P{^Numeric_Value=60/600}', "");
     Expect(1, 73675, '\p{Numeric_Value=1.0e-01}', "");
     Expect(0, 73675, '\p{^Numeric_Value=1.0e-01}', "");
     Expect(0, 73675, '\P{Numeric_Value=1.0e-01}', "");
@@ -67849,14 +68439,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73676, '\p{^Numeric_Value=1.0e-01}', "");
     Expect(1, 73676, '\P{Numeric_Value=1.0e-01}', "");
     Expect(0, 73676, '\P{^Numeric_Value=1.0e-01}', "");
-    Expect(1, 73675, '\p{Numeric_Value:	0.1}', "");
-    Expect(0, 73675, '\p{^Numeric_Value:	0.1}', "");
-    Expect(0, 73675, '\P{Numeric_Value:	0.1}', "");
-    Expect(1, 73675, '\P{^Numeric_Value:	0.1}', "");
-    Expect(0, 73676, '\p{Numeric_Value:	0.1}', "");
-    Expect(1, 73676, '\p{^Numeric_Value:	0.1}', "");
-    Expect(1, 73676, '\P{Numeric_Value:	0.1}', "");
-    Expect(0, 73676, '\P{^Numeric_Value:	0.1}', "");
+    Expect(1, 73675, '\p{Numeric_Value=0.1}', "");
+    Expect(0, 73675, '\p{^Numeric_Value=0.1}', "");
+    Expect(0, 73675, '\P{Numeric_Value=0.1}', "");
+    Expect(1, 73675, '\P{^Numeric_Value=0.1}', "");
+    Expect(0, 73676, '\p{Numeric_Value=0.1}', "");
+    Expect(1, 73676, '\p{^Numeric_Value=0.1}', "");
+    Expect(1, 73676, '\P{Numeric_Value=0.1}', "");
+    Expect(0, 73676, '\P{^Numeric_Value=0.1}', "");
     Expect(1, 73675, '\p{Numeric_Value=1.00e-01}', "");
     Expect(0, 73675, '\p{^Numeric_Value=1.00e-01}', "");
     Expect(0, 73675, '\P{Numeric_Value=1.00e-01}', "");
@@ -67865,34 +68455,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73676, '\p{^Numeric_Value=1.00e-01}', "");
     Expect(1, 73676, '\P{Numeric_Value=1.00e-01}', "");
     Expect(0, 73676, '\P{^Numeric_Value=1.00e-01}', "");
-    Expect(1, 73675, '\p{Numeric_Value:0.10}', "");
-    Expect(0, 73675, '\p{^Numeric_Value:0.10}', "");
-    Expect(0, 73675, '\P{Numeric_Value:0.10}', "");
-    Expect(1, 73675, '\P{^Numeric_Value:0.10}', "");
-    Expect(0, 73676, '\p{Numeric_Value:0.10}', "");
-    Expect(1, 73676, '\p{^Numeric_Value:0.10}', "");
-    Expect(1, 73676, '\P{Numeric_Value:0.10}', "");
-    Expect(0, 73676, '\P{^Numeric_Value:0.10}', "");
-    Error('\p{Nv=--001/0010/a/}');
-    Error('\P{Nv=--001/0010/a/}');
+    Expect(1, 73675, '\p{Numeric_Value=0.10}', "");
+    Expect(0, 73675, '\p{^Numeric_Value=0.10}', "");
+    Expect(0, 73675, '\P{Numeric_Value=0.10}', "");
+    Expect(1, 73675, '\P{^Numeric_Value=0.10}', "");
+    Expect(0, 73676, '\p{Numeric_Value=0.10}', "");
+    Expect(1, 73676, '\p{^Numeric_Value=0.10}', "");
+    Expect(1, 73676, '\P{Numeric_Value=0.10}', "");
+    Expect(0, 73676, '\P{^Numeric_Value=0.10}', "");
+    Error('\p{Nv=:=_00000001/0000000010}');
+    Error('\P{Nv=:=_00000001/0000000010}');
     Expect(1, 73675, '\p{Nv=:\A1/10\z:}', "");;
     Expect(0, 73676, '\p{Nv=:\A1/10\z:}', "");;
-    Expect(1, 73675, '\p{Nv=1/00000010}', "");
-    Expect(0, 73675, '\p{^Nv=1/00000010}', "");
-    Expect(0, 73675, '\P{Nv=1/00000010}', "");
-    Expect(1, 73675, '\P{^Nv=1/00000010}', "");
-    Expect(0, 73676, '\p{Nv=1/00000010}', "");
-    Expect(1, 73676, '\p{^Nv=1/00000010}', "");
-    Expect(1, 73676, '\P{Nv=1/00000010}', "");
-    Expect(0, 73676, '\P{^Nv=1/00000010}', "");
-    Expect(1, 73675, '\p{Nv=60/600}', "");
-    Expect(0, 73675, '\p{^Nv=60/600}', "");
-    Expect(0, 73675, '\P{Nv=60/600}', "");
-    Expect(1, 73675, '\P{^Nv=60/600}', "");
-    Expect(0, 73676, '\p{Nv=60/600}', "");
-    Expect(1, 73676, '\p{^Nv=60/600}', "");
-    Expect(1, 73676, '\P{Nv=60/600}', "");
-    Expect(0, 73676, '\P{^Nv=60/600}', "");
+    Expect(1, 73675, '\p{Nv=+0001/0010}', "");
+    Expect(0, 73675, '\p{^Nv=+0001/0010}', "");
+    Expect(0, 73675, '\P{Nv=+0001/0010}', "");
+    Expect(1, 73675, '\P{^Nv=+0001/0010}', "");
+    Expect(0, 73676, '\p{Nv=+0001/0010}', "");
+    Expect(1, 73676, '\p{^Nv=+0001/0010}', "");
+    Expect(1, 73676, '\P{Nv=+0001/0010}', "");
+    Expect(0, 73676, '\P{^Nv=+0001/0010}', "");
+    Expect(1, 73675, '\p{Nv:60/600}', "");
+    Expect(0, 73675, '\p{^Nv:60/600}', "");
+    Expect(0, 73675, '\P{Nv:60/600}', "");
+    Expect(1, 73675, '\P{^Nv:60/600}', "");
+    Expect(0, 73676, '\p{Nv:60/600}', "");
+    Expect(1, 73676, '\p{^Nv:60/600}', "");
+    Expect(1, 73676, '\P{Nv:60/600}', "");
+    Expect(0, 73676, '\P{^Nv:60/600}', "");
     Expect(1, 73675, '\p{Nv=1.0e-01}', "");
     Expect(0, 73675, '\p{^Nv=1.0e-01}', "");
     Expect(0, 73675, '\P{Nv=1.0e-01}', "");
@@ -67901,14 +68491,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73676, '\p{^Nv=1.0e-01}', "");
     Expect(1, 73676, '\P{Nv=1.0e-01}', "");
     Expect(0, 73676, '\P{^Nv=1.0e-01}', "");
-    Expect(1, 73675, '\p{Nv=0.1}', "");
-    Expect(0, 73675, '\p{^Nv=0.1}', "");
-    Expect(0, 73675, '\P{Nv=0.1}', "");
-    Expect(1, 73675, '\P{^Nv=0.1}', "");
-    Expect(0, 73676, '\p{Nv=0.1}', "");
-    Expect(1, 73676, '\p{^Nv=0.1}', "");
-    Expect(1, 73676, '\P{Nv=0.1}', "");
-    Expect(0, 73676, '\P{^Nv=0.1}', "");
+    Expect(1, 73675, '\p{Nv: 0.1}', "");
+    Expect(0, 73675, '\p{^Nv: 0.1}', "");
+    Expect(0, 73675, '\P{Nv: 0.1}', "");
+    Expect(1, 73675, '\P{^Nv: 0.1}', "");
+    Expect(0, 73676, '\p{Nv: 0.1}', "");
+    Expect(1, 73676, '\p{^Nv: 0.1}', "");
+    Expect(1, 73676, '\P{Nv: 0.1}', "");
+    Expect(0, 73676, '\P{^Nv: 0.1}', "");
     Expect(1, 73675, '\p{Nv=1.00e-01}', "");
     Expect(0, 73675, '\p{^Nv=1.00e-01}', "");
     Expect(0, 73675, '\P{Nv=1.00e-01}', "");
@@ -67925,16 +68515,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73676, '\p{^Nv=0.10}', "");
     Expect(1, 73676, '\P{Nv=0.10}', "");
     Expect(0, 73676, '\P{^Nv=0.10}', "");
-    Error('\p{Is_Numeric_Value=	/a/0000001/0000000010}');
-    Error('\P{Is_Numeric_Value=	/a/0000001/0000000010}');
-    Expect(1, 73675, '\p{Is_Numeric_Value=000000001/000010}', "");
-    Expect(0, 73675, '\p{^Is_Numeric_Value=000000001/000010}', "");
-    Expect(0, 73675, '\P{Is_Numeric_Value=000000001/000010}', "");
-    Expect(1, 73675, '\P{^Is_Numeric_Value=000000001/000010}', "");
-    Expect(0, 73676, '\p{Is_Numeric_Value=000000001/000010}', "");
-    Expect(1, 73676, '\p{^Is_Numeric_Value=000000001/000010}', "");
-    Expect(1, 73676, '\P{Is_Numeric_Value=000000001/000010}', "");
-    Expect(0, 73676, '\P{^Is_Numeric_Value=000000001/000010}', "");
+    Error('\p{Is_Numeric_Value=/a/__00000001/0000000010}');
+    Error('\P{Is_Numeric_Value=/a/__00000001/0000000010}');
+    Expect(1, 73675, '\p{Is_Numeric_Value=000001/00000000010}', "");
+    Expect(0, 73675, '\p{^Is_Numeric_Value=000001/00000000010}', "");
+    Expect(0, 73675, '\P{Is_Numeric_Value=000001/00000000010}', "");
+    Expect(1, 73675, '\P{^Is_Numeric_Value=000001/00000000010}', "");
+    Expect(0, 73676, '\p{Is_Numeric_Value=000001/00000000010}', "");
+    Expect(1, 73676, '\p{^Is_Numeric_Value=000001/00000000010}', "");
+    Expect(1, 73676, '\P{Is_Numeric_Value=000001/00000000010}', "");
+    Expect(0, 73676, '\P{^Is_Numeric_Value=000001/00000000010}', "");
     Expect(1, 73675, '\p{Is_Numeric_Value=60/600}', "");
     Expect(0, 73675, '\p{^Is_Numeric_Value=60/600}', "");
     Expect(0, 73675, '\P{Is_Numeric_Value=60/600}', "");
@@ -67975,16 +68565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73676, '\p{^Is_Numeric_Value=0.10}', "");
     Expect(1, 73676, '\P{Is_Numeric_Value=0.10}', "");
     Expect(0, 73676, '\P{^Is_Numeric_Value=0.10}', "");
-    Error('\p{Is_Nv=-0000001/00010:=}');
-    Error('\P{Is_Nv=-0000001/00010:=}');
-    Expect(1, 73675, '\p{Is_Nv=+000000001/000010}', "");
-    Expect(0, 73675, '\p{^Is_Nv=+000000001/000010}', "");
-    Expect(0, 73675, '\P{Is_Nv=+000000001/000010}', "");
-    Expect(1, 73675, '\P{^Is_Nv=+000000001/000010}', "");
-    Expect(0, 73676, '\p{Is_Nv=+000000001/000010}', "");
-    Expect(1, 73676, '\p{^Is_Nv=+000000001/000010}', "");
-    Expect(1, 73676, '\P{Is_Nv=+000000001/000010}', "");
-    Expect(0, 73676, '\P{^Is_Nv=+000000001/000010}', "");
+    Error('\p{Is_Nv=-:=0000001/000000010}');
+    Error('\P{Is_Nv=-:=0000001/000000010}');
+    Expect(1, 73675, '\p{Is_Nv:   00000001/000010}', "");
+    Expect(0, 73675, '\p{^Is_Nv:   00000001/000010}', "");
+    Expect(0, 73675, '\P{Is_Nv:   00000001/000010}', "");
+    Expect(1, 73675, '\P{^Is_Nv:   00000001/000010}', "");
+    Expect(0, 73676, '\p{Is_Nv:   00000001/000010}', "");
+    Expect(1, 73676, '\p{^Is_Nv:   00000001/000010}', "");
+    Expect(1, 73676, '\P{Is_Nv:   00000001/000010}', "");
+    Expect(0, 73676, '\P{^Is_Nv:   00000001/000010}', "");
     Expect(1, 73675, '\p{Is_Nv=60/600}', "");
     Expect(0, 73675, '\p{^Is_Nv=60/600}', "");
     Expect(0, 73675, '\P{Is_Nv=60/600}', "");
@@ -68017,26 +68607,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73676, '\p{^Is_Nv=1.00e-01}', "");
     Expect(1, 73676, '\P{Is_Nv=1.00e-01}', "");
     Expect(0, 73676, '\P{^Is_Nv=1.00e-01}', "");
-    Expect(1, 73675, '\p{Is_Nv:   0.10}', "");
-    Expect(0, 73675, '\p{^Is_Nv:   0.10}', "");
-    Expect(0, 73675, '\P{Is_Nv:   0.10}', "");
-    Expect(1, 73675, '\P{^Is_Nv:   0.10}', "");
-    Expect(0, 73676, '\p{Is_Nv:   0.10}', "");
-    Expect(1, 73676, '\p{^Is_Nv:   0.10}', "");
-    Expect(1, 73676, '\P{Is_Nv:   0.10}', "");
-    Expect(0, 73676, '\P{^Is_Nv:   0.10}', "");
-    Error('\p{Numeric_Value= 	+0001/00012:=}');
-    Error('\P{Numeric_Value= 	+0001/00012:=}');
+    Expect(1, 73675, '\p{Is_Nv=0.10}', "");
+    Expect(0, 73675, '\p{^Is_Nv=0.10}', "");
+    Expect(0, 73675, '\P{Is_Nv=0.10}', "");
+    Expect(1, 73675, '\P{^Is_Nv=0.10}', "");
+    Expect(0, 73676, '\p{Is_Nv=0.10}', "");
+    Expect(1, 73676, '\p{^Is_Nv=0.10}', "");
+    Expect(1, 73676, '\P{Is_Nv=0.10}', "");
+    Expect(0, 73676, '\P{^Is_Nv=0.10}', "");
+    Error('\p{Numeric_Value=/a/00001/0000012}');
+    Error('\P{Numeric_Value=/a/00001/0000012}');
     Expect(1, 68086, '\p{Numeric_Value=:\A1/12\z:}', "");;
     Expect(0, 68087, '\p{Numeric_Value=:\A1/12\z:}', "");;
-    Expect(1, 68086, '\p{Numeric_Value=001/0000000012}', "");
-    Expect(0, 68086, '\p{^Numeric_Value=001/0000000012}', "");
-    Expect(0, 68086, '\P{Numeric_Value=001/0000000012}', "");
-    Expect(1, 68086, '\P{^Numeric_Value=001/0000000012}', "");
-    Expect(0, 68087, '\p{Numeric_Value=001/0000000012}', "");
-    Expect(1, 68087, '\p{^Numeric_Value=001/0000000012}', "");
-    Expect(1, 68087, '\P{Numeric_Value=001/0000000012}', "");
-    Expect(0, 68087, '\P{^Numeric_Value=001/0000000012}', "");
+    Expect(1, 68086, '\p{Numeric_Value=000000001/000012}', "");
+    Expect(0, 68086, '\p{^Numeric_Value=000000001/000012}', "");
+    Expect(0, 68086, '\P{Numeric_Value=000000001/000012}', "");
+    Expect(1, 68086, '\P{^Numeric_Value=000000001/000012}', "");
+    Expect(0, 68087, '\p{Numeric_Value=000000001/000012}', "");
+    Expect(1, 68087, '\p{^Numeric_Value=000000001/000012}', "");
+    Expect(1, 68087, '\P{Numeric_Value=000000001/000012}', "");
+    Expect(0, 68087, '\P{^Numeric_Value=000000001/000012}', "");
     Expect(1, 68086, '\p{Numeric_Value=60/720}', "");
     Expect(0, 68086, '\p{^Numeric_Value=60/720}', "");
     Expect(0, 68086, '\P{Numeric_Value=60/720}', "");
@@ -68047,8 +68637,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68087, '\P{^Numeric_Value=60/720}', "");
     Error('\p{Numeric_Value=8.3e-02}');
     Error('\P{Numeric_Value=8.3e-02}');
-    Error('\p{Numeric_Value:8.33e-02}');
-    Error('\P{Numeric_Value:8.33e-02}');
+    Error('\p{Numeric_Value=8.33e-02}');
+    Error('\P{Numeric_Value=8.33e-02}');
     Error('\p{Numeric_Value=0.08}');
     Error('\P{Numeric_Value=0.08}');
     Expect(1, 68086, '\p{Numeric_Value=8.333e-02}', "");
@@ -68061,14 +68651,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68087, '\P{^Numeric_Value=8.333e-02}', "");
     Error('\p{Numeric_Value=0.083}');
     Error('\P{Numeric_Value=0.083}');
-    Expect(1, 68086, '\p{Numeric_Value:   8.3333e-02}', "");
-    Expect(0, 68086, '\p{^Numeric_Value:   8.3333e-02}', "");
-    Expect(0, 68086, '\P{Numeric_Value:   8.3333e-02}', "");
-    Expect(1, 68086, '\P{^Numeric_Value:   8.3333e-02}', "");
-    Expect(0, 68087, '\p{Numeric_Value:   8.3333e-02}', "");
-    Expect(1, 68087, '\p{^Numeric_Value:   8.3333e-02}', "");
-    Expect(1, 68087, '\P{Numeric_Value:   8.3333e-02}', "");
-    Expect(0, 68087, '\P{^Numeric_Value:   8.3333e-02}', "");
+    Expect(1, 68086, '\p{Numeric_Value=8.3333e-02}', "");
+    Expect(0, 68086, '\p{^Numeric_Value=8.3333e-02}', "");
+    Expect(0, 68086, '\P{Numeric_Value=8.3333e-02}', "");
+    Expect(1, 68086, '\P{^Numeric_Value=8.3333e-02}', "");
+    Expect(0, 68087, '\p{Numeric_Value=8.3333e-02}', "");
+    Expect(1, 68087, '\p{^Numeric_Value=8.3333e-02}', "");
+    Expect(1, 68087, '\P{Numeric_Value=8.3333e-02}', "");
+    Expect(0, 68087, '\P{^Numeric_Value=8.3333e-02}', "");
     Error('\p{Numeric_Value=0.0833}');
     Error('\P{Numeric_Value=0.0833}');
     Expect(1, 68086, '\p{Numeric_Value=8.33333e-02}', "");
@@ -68103,18 +68693,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68087, '\p{^Numeric_Value=0.083333}', "");
     Expect(1, 68087, '\P{Numeric_Value=0.083333}', "");
     Expect(0, 68087, '\P{^Numeric_Value=0.083333}', "");
-    Error('\p{Nv=_-01/0000000012/a/}');
-    Error('\P{Nv=_-01/0000000012/a/}');
+    Error('\p{Nv=/a/_01/0012}');
+    Error('\P{Nv=/a/_01/0012}');
     Expect(1, 68086, '\p{Nv=:\A1/12\z:}', "");;
     Expect(0, 68087, '\p{Nv=:\A1/12\z:}', "");;
-    Expect(1, 68086, '\p{Nv=+001/00012}', "");
-    Expect(0, 68086, '\p{^Nv=+001/00012}', "");
-    Expect(0, 68086, '\P{Nv=+001/00012}', "");
-    Expect(1, 68086, '\P{^Nv=+001/00012}', "");
-    Expect(0, 68087, '\p{Nv=+001/00012}', "");
-    Expect(1, 68087, '\p{^Nv=+001/00012}', "");
-    Expect(1, 68087, '\P{Nv=+001/00012}', "");
-    Expect(0, 68087, '\P{^Nv=+001/00012}', "");
+    Expect(1, 68086, '\p{Nv=+01/00012}', "");
+    Expect(0, 68086, '\p{^Nv=+01/00012}', "");
+    Expect(0, 68086, '\P{Nv=+01/00012}', "");
+    Expect(1, 68086, '\P{^Nv=+01/00012}', "");
+    Expect(0, 68087, '\p{Nv=+01/00012}', "");
+    Expect(1, 68087, '\p{^Nv=+01/00012}', "");
+    Expect(1, 68087, '\P{Nv=+01/00012}', "");
+    Expect(0, 68087, '\P{^Nv=+01/00012}', "");
     Expect(1, 68086, '\p{Nv=60/720}', "");
     Expect(0, 68086, '\p{^Nv=60/720}', "");
     Expect(0, 68086, '\P{Nv=60/720}', "");
@@ -68127,8 +68717,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Nv=8.3e-02}');
     Error('\p{Nv=8.33e-02}');
     Error('\P{Nv=8.33e-02}');
-    Error('\p{Nv: 0.08}');
-    Error('\P{Nv: 0.08}');
+    Error('\p{Nv=0.08}');
+    Error('\P{Nv=0.08}');
     Expect(1, 68086, '\p{Nv=8.333e-02}', "");
     Expect(0, 68086, '\p{^Nv=8.333e-02}', "");
     Expect(0, 68086, '\P{Nv=8.333e-02}', "");
@@ -68139,16 +68729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68087, '\P{^Nv=8.333e-02}', "");
     Error('\p{Nv=0.083}');
     Error('\P{Nv=0.083}');
-    Expect(1, 68086, '\p{Nv:	8.3333e-02}', "");
-    Expect(0, 68086, '\p{^Nv:	8.3333e-02}', "");
-    Expect(0, 68086, '\P{Nv:	8.3333e-02}', "");
-    Expect(1, 68086, '\P{^Nv:	8.3333e-02}', "");
-    Expect(0, 68087, '\p{Nv:	8.3333e-02}', "");
-    Expect(1, 68087, '\p{^Nv:	8.3333e-02}', "");
-    Expect(1, 68087, '\P{Nv:	8.3333e-02}', "");
-    Expect(0, 68087, '\P{^Nv:	8.3333e-02}', "");
-    Error('\p{Nv=0.0833}');
-    Error('\P{Nv=0.0833}');
+    Expect(1, 68086, '\p{Nv=8.3333e-02}', "");
+    Expect(0, 68086, '\p{^Nv=8.3333e-02}', "");
+    Expect(0, 68086, '\P{Nv=8.3333e-02}', "");
+    Expect(1, 68086, '\P{^Nv=8.3333e-02}', "");
+    Expect(0, 68087, '\p{Nv=8.3333e-02}', "");
+    Expect(1, 68087, '\p{^Nv=8.3333e-02}', "");
+    Expect(1, 68087, '\P{Nv=8.3333e-02}', "");
+    Expect(0, 68087, '\P{^Nv=8.3333e-02}', "");
+    Error('\p{Nv:0.0833}');
+    Error('\P{Nv:0.0833}');
     Expect(1, 68086, '\p{Nv=8.33333e-02}', "");
     Expect(0, 68086, '\p{^Nv=8.33333e-02}', "");
     Expect(0, 68086, '\P{Nv=8.33333e-02}', "");
@@ -68181,16 +68771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68087, '\p{^Nv=0.083333}', "");
     Expect(1, 68087, '\P{Nv=0.083333}', "");
     Expect(0, 68087, '\P{^Nv=0.083333}', "");
-    Error('\p{Is_Numeric_Value=:=0000001/0000000012}');
-    Error('\P{Is_Numeric_Value=:=0000001/0000000012}');
-    Expect(1, 68086, '\p{Is_Numeric_Value=1/0012}', "");
-    Expect(0, 68086, '\p{^Is_Numeric_Value=1/0012}', "");
-    Expect(0, 68086, '\P{Is_Numeric_Value=1/0012}', "");
-    Expect(1, 68086, '\P{^Is_Numeric_Value=1/0012}', "");
-    Expect(0, 68087, '\p{Is_Numeric_Value=1/0012}', "");
-    Expect(1, 68087, '\p{^Is_Numeric_Value=1/0012}', "");
-    Expect(1, 68087, '\P{Is_Numeric_Value=1/0012}', "");
-    Expect(0, 68087, '\P{^Is_Numeric_Value=1/0012}', "");
+    Error('\p{Is_Numeric_Value:_ 01/00000000012/a/}');
+    Error('\P{Is_Numeric_Value:_ 01/00000000012/a/}');
+    Expect(1, 68086, '\p{Is_Numeric_Value=0000001/12}', "");
+    Expect(0, 68086, '\p{^Is_Numeric_Value=0000001/12}', "");
+    Expect(0, 68086, '\P{Is_Numeric_Value=0000001/12}', "");
+    Expect(1, 68086, '\P{^Is_Numeric_Value=0000001/12}', "");
+    Expect(0, 68087, '\p{Is_Numeric_Value=0000001/12}', "");
+    Expect(1, 68087, '\p{^Is_Numeric_Value=0000001/12}', "");
+    Expect(1, 68087, '\P{Is_Numeric_Value=0000001/12}', "");
+    Expect(0, 68087, '\P{^Is_Numeric_Value=0000001/12}', "");
     Expect(1, 68086, '\p{Is_Numeric_Value=60/720}', "");
     Expect(0, 68086, '\p{^Is_Numeric_Value=60/720}', "");
     Expect(0, 68086, '\P{Is_Numeric_Value=60/720}', "");
@@ -68257,16 +68847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68087, '\p{^Is_Numeric_Value=0.083333}', "");
     Expect(1, 68087, '\P{Is_Numeric_Value=0.083333}', "");
     Expect(0, 68087, '\P{^Is_Numeric_Value=0.083333}', "");
-    Error('\p{Is_Nv=:=-00000001/0012}');
-    Error('\P{Is_Nv=:=-00000001/0012}');
-    Expect(1, 68086, '\p{Is_Nv=+001/00000000012}', "");
-    Expect(0, 68086, '\p{^Is_Nv=+001/00000000012}', "");
-    Expect(0, 68086, '\P{Is_Nv=+001/00000000012}', "");
-    Expect(1, 68086, '\P{^Is_Nv=+001/00000000012}', "");
-    Expect(0, 68087, '\p{Is_Nv=+001/00000000012}', "");
-    Expect(1, 68087, '\p{^Is_Nv=+001/00000000012}', "");
-    Expect(1, 68087, '\P{Is_Nv=+001/00000000012}', "");
-    Expect(0, 68087, '\P{^Is_Nv=+001/00000000012}', "");
+    Error('\p{Is_Nv= :=0000001/0000000012}');
+    Error('\P{Is_Nv= :=0000001/0000000012}');
+    Expect(1, 68086, '\p{Is_Nv=0000001/000000012}', "");
+    Expect(0, 68086, '\p{^Is_Nv=0000001/000000012}', "");
+    Expect(0, 68086, '\P{Is_Nv=0000001/000000012}', "");
+    Expect(1, 68086, '\P{^Is_Nv=0000001/000000012}', "");
+    Expect(0, 68087, '\p{Is_Nv=0000001/000000012}', "");
+    Expect(1, 68087, '\p{^Is_Nv=0000001/000000012}', "");
+    Expect(1, 68087, '\P{Is_Nv=0000001/000000012}', "");
+    Expect(0, 68087, '\P{^Is_Nv=0000001/000000012}', "");
     Expect(1, 68086, '\p{Is_Nv=60/720}', "");
     Expect(0, 68086, '\p{^Is_Nv=60/720}', "");
     Expect(0, 68086, '\P{Is_Nv=60/720}', "");
@@ -68299,8 +68889,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68087, '\p{^Is_Nv=8.3333e-02}', "");
     Expect(1, 68087, '\P{Is_Nv=8.3333e-02}', "");
     Expect(0, 68087, '\P{^Is_Nv=8.3333e-02}', "");
-    Error('\p{Is_Nv=0.0833}');
-    Error('\P{Is_Nv=0.0833}');
+    Error('\p{Is_Nv:0.0833}');
+    Error('\P{Is_Nv:0.0833}');
     Expect(1, 68086, '\p{Is_Nv=8.33333e-02}', "");
     Expect(0, 68086, '\p{^Is_Nv=8.33333e-02}', "");
     Expect(0, 68086, '\P{Is_Nv=8.33333e-02}', "");
@@ -68333,18 +68923,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68087, '\p{^Is_Nv=0.083333}', "");
     Expect(1, 68087, '\P{Is_Nv=0.083333}', "");
     Expect(0, 68087, '\P{^Is_Nv=0.083333}', "");
-    Error('\p{Numeric_Value=		0000000001/00000000016:=}');
-    Error('\P{Numeric_Value=		0000000001/00000000016:=}');
+    Error('\p{Numeric_Value: 	+001/0016/a/}');
+    Error('\P{Numeric_Value: 	+001/0016/a/}');
     Expect(1, 73674, '\p{Numeric_Value=:\A1/16\z:}', "");;
     Expect(0, 73675, '\p{Numeric_Value=:\A1/16\z:}', "");;
-    Expect(1, 73674, '\p{Numeric_Value=000001/0000000016}', "");
-    Expect(0, 73674, '\p{^Numeric_Value=000001/0000000016}', "");
-    Expect(0, 73674, '\P{Numeric_Value=000001/0000000016}', "");
-    Expect(1, 73674, '\P{^Numeric_Value=000001/0000000016}', "");
-    Expect(0, 73675, '\p{Numeric_Value=000001/0000000016}', "");
-    Expect(1, 73675, '\p{^Numeric_Value=000001/0000000016}', "");
-    Expect(1, 73675, '\P{Numeric_Value=000001/0000000016}', "");
-    Expect(0, 73675, '\P{^Numeric_Value=000001/0000000016}', "");
+    Expect(1, 73674, '\p{Numeric_Value=0000000001/16}', "");
+    Expect(0, 73674, '\p{^Numeric_Value=0000000001/16}', "");
+    Expect(0, 73674, '\P{Numeric_Value=0000000001/16}', "");
+    Expect(1, 73674, '\P{^Numeric_Value=0000000001/16}', "");
+    Expect(0, 73675, '\p{Numeric_Value=0000000001/16}', "");
+    Expect(1, 73675, '\p{^Numeric_Value=0000000001/16}', "");
+    Expect(1, 73675, '\P{Numeric_Value=0000000001/16}', "");
+    Expect(0, 73675, '\P{^Numeric_Value=0000000001/16}', "");
     Expect(1, 73674, '\p{Numeric_Value=60/960}', "");
     Expect(0, 73674, '\p{^Numeric_Value=60/960}', "");
     Expect(0, 73674, '\P{Numeric_Value=60/960}', "");
@@ -68391,34 +68981,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73675, '\p{^Numeric_Value=0.0625}', "");
     Expect(1, 73675, '\P{Numeric_Value=0.0625}', "");
     Expect(0, 73675, '\P{^Numeric_Value=0.0625}', "");
-    Expect(1, 73674, '\p{Numeric_Value:   6.25000e-02}', "");
-    Expect(0, 73674, '\p{^Numeric_Value:   6.25000e-02}', "");
-    Expect(0, 73674, '\P{Numeric_Value:   6.25000e-02}', "");
-    Expect(1, 73674, '\P{^Numeric_Value:   6.25000e-02}', "");
-    Expect(0, 73675, '\p{Numeric_Value:   6.25000e-02}', "");
-    Expect(1, 73675, '\p{^Numeric_Value:   6.25000e-02}', "");
-    Expect(1, 73675, '\P{Numeric_Value:   6.25000e-02}', "");
-    Expect(0, 73675, '\P{^Numeric_Value:   6.25000e-02}', "");
-    Expect(1, 73674, '\p{Numeric_Value:0.06250}', "");
-    Expect(0, 73674, '\p{^Numeric_Value:0.06250}', "");
-    Expect(0, 73674, '\P{Numeric_Value:0.06250}', "");
-    Expect(1, 73674, '\P{^Numeric_Value:0.06250}', "");
-    Expect(0, 73675, '\p{Numeric_Value:0.06250}', "");
-    Expect(1, 73675, '\p{^Numeric_Value:0.06250}', "");
-    Expect(1, 73675, '\P{Numeric_Value:0.06250}', "");
-    Expect(0, 73675, '\P{^Numeric_Value:0.06250}', "");
-    Error('\p{Nv= 00000001/16/a/}');
-    Error('\P{Nv= 00000001/16/a/}');
+    Expect(1, 73674, '\p{Numeric_Value:	6.25000e-02}', "");
+    Expect(0, 73674, '\p{^Numeric_Value:	6.25000e-02}', "");
+    Expect(0, 73674, '\P{Numeric_Value:	6.25000e-02}', "");
+    Expect(1, 73674, '\P{^Numeric_Value:	6.25000e-02}', "");
+    Expect(0, 73675, '\p{Numeric_Value:	6.25000e-02}', "");
+    Expect(1, 73675, '\p{^Numeric_Value:	6.25000e-02}', "");
+    Expect(1, 73675, '\P{Numeric_Value:	6.25000e-02}', "");
+    Expect(0, 73675, '\P{^Numeric_Value:	6.25000e-02}', "");
+    Expect(1, 73674, '\p{Numeric_Value=0.06250}', "");
+    Expect(0, 73674, '\p{^Numeric_Value=0.06250}', "");
+    Expect(0, 73674, '\P{Numeric_Value=0.06250}', "");
+    Expect(1, 73674, '\P{^Numeric_Value=0.06250}', "");
+    Expect(0, 73675, '\p{Numeric_Value=0.06250}', "");
+    Expect(1, 73675, '\p{^Numeric_Value=0.06250}', "");
+    Expect(1, 73675, '\P{Numeric_Value=0.06250}', "");
+    Expect(0, 73675, '\P{^Numeric_Value=0.06250}', "");
+    Error('\p{Nv=:=00000001/016}');
+    Error('\P{Nv=:=00000001/016}');
     Expect(1, 73674, '\p{Nv=:\A1/16\z:}', "");;
     Expect(0, 73675, '\p{Nv=:\A1/16\z:}', "");;
-    Expect(1, 73674, '\p{Nv=01/000016}', "");
-    Expect(0, 73674, '\p{^Nv=01/000016}', "");
-    Expect(0, 73674, '\P{Nv=01/000016}', "");
-    Expect(1, 73674, '\P{^Nv=01/000016}', "");
-    Expect(0, 73675, '\p{Nv=01/000016}', "");
-    Expect(1, 73675, '\p{^Nv=01/000016}', "");
-    Expect(1, 73675, '\P{Nv=01/000016}', "");
-    Expect(0, 73675, '\P{^Nv=01/000016}', "");
+    Expect(1, 73674, '\p{Nv=01/16}', "");
+    Expect(0, 73674, '\p{^Nv=01/16}', "");
+    Expect(0, 73674, '\P{Nv=01/16}', "");
+    Expect(1, 73674, '\P{^Nv=01/16}', "");
+    Expect(0, 73675, '\p{Nv=01/16}', "");
+    Expect(1, 73675, '\p{^Nv=01/16}', "");
+    Expect(1, 73675, '\P{Nv=01/16}', "");
+    Expect(0, 73675, '\P{^Nv=01/16}', "");
     Expect(1, 73674, '\p{Nv=60/960}', "");
     Expect(0, 73674, '\p{^Nv=60/960}', "");
     Expect(0, 73674, '\P{Nv=60/960}', "");
@@ -68473,24 +69063,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73675, '\p{^Nv=6.25000e-02}', "");
     Expect(1, 73675, '\P{Nv=6.25000e-02}', "");
     Expect(0, 73675, '\P{^Nv=6.25000e-02}', "");
-    Expect(1, 73674, '\p{Nv:   0.06250}', "");
-    Expect(0, 73674, '\p{^Nv:   0.06250}', "");
-    Expect(0, 73674, '\P{Nv:   0.06250}', "");
-    Expect(1, 73674, '\P{^Nv:   0.06250}', "");
-    Expect(0, 73675, '\p{Nv:   0.06250}', "");
-    Expect(1, 73675, '\p{^Nv:   0.06250}', "");
-    Expect(1, 73675, '\P{Nv:   0.06250}', "");
-    Expect(0, 73675, '\P{^Nv:   0.06250}', "");
-    Error('\p{Is_Numeric_Value=_	00001/0016:=}');
-    Error('\P{Is_Numeric_Value=_	00001/0016:=}');
-    Expect(1, 73674, '\p{Is_Numeric_Value: 0001/0000016}', "");
-    Expect(0, 73674, '\p{^Is_Numeric_Value: 0001/0000016}', "");
-    Expect(0, 73674, '\P{Is_Numeric_Value: 0001/0000016}', "");
-    Expect(1, 73674, '\P{^Is_Numeric_Value: 0001/0000016}', "");
-    Expect(0, 73675, '\p{Is_Numeric_Value: 0001/0000016}', "");
-    Expect(1, 73675, '\p{^Is_Numeric_Value: 0001/0000016}', "");
-    Expect(1, 73675, '\P{Is_Numeric_Value: 0001/0000016}', "");
-    Expect(0, 73675, '\P{^Is_Numeric_Value: 0001/0000016}', "");
+    Expect(1, 73674, '\p{Nv=0.06250}', "");
+    Expect(0, 73674, '\p{^Nv=0.06250}', "");
+    Expect(0, 73674, '\P{Nv=0.06250}', "");
+    Expect(1, 73674, '\P{^Nv=0.06250}', "");
+    Expect(0, 73675, '\p{Nv=0.06250}', "");
+    Expect(1, 73675, '\p{^Nv=0.06250}', "");
+    Expect(1, 73675, '\P{Nv=0.06250}', "");
+    Expect(0, 73675, '\P{^Nv=0.06250}', "");
+    Error('\p{Is_Numeric_Value=-:=+0000001/0000016}');
+    Error('\P{Is_Numeric_Value=-:=+0000001/0000016}');
+    Expect(1, 73674, '\p{Is_Numeric_Value=00001/0000016}', "");
+    Expect(0, 73674, '\p{^Is_Numeric_Value=00001/0000016}', "");
+    Expect(0, 73674, '\P{Is_Numeric_Value=00001/0000016}', "");
+    Expect(1, 73674, '\P{^Is_Numeric_Value=00001/0000016}', "");
+    Expect(0, 73675, '\p{Is_Numeric_Value=00001/0000016}', "");
+    Expect(1, 73675, '\p{^Is_Numeric_Value=00001/0000016}', "");
+    Expect(1, 73675, '\P{Is_Numeric_Value=00001/0000016}', "");
+    Expect(0, 73675, '\P{^Is_Numeric_Value=00001/0000016}', "");
     Expect(1, 73674, '\p{Is_Numeric_Value=60/960}', "");
     Expect(0, 73674, '\p{^Is_Numeric_Value=60/960}', "");
     Expect(0, 73674, '\P{Is_Numeric_Value=60/960}', "");
@@ -68501,16 +69091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73675, '\P{^Is_Numeric_Value=60/960}', "");
     Error('\p{Is_Numeric_Value=6.2e-02}');
     Error('\P{Is_Numeric_Value=6.2e-02}');
-    Expect(1, 73674, '\p{Is_Numeric_Value=6.25e-02}', "");
-    Expect(0, 73674, '\p{^Is_Numeric_Value=6.25e-02}', "");
-    Expect(0, 73674, '\P{Is_Numeric_Value=6.25e-02}', "");
-    Expect(1, 73674, '\P{^Is_Numeric_Value=6.25e-02}', "");
-    Expect(0, 73675, '\p{Is_Numeric_Value=6.25e-02}', "");
-    Expect(1, 73675, '\p{^Is_Numeric_Value=6.25e-02}', "");
-    Expect(1, 73675, '\P{Is_Numeric_Value=6.25e-02}', "");
-    Expect(0, 73675, '\P{^Is_Numeric_Value=6.25e-02}', "");
-    Error('\p{Is_Numeric_Value:   0.06}');
-    Error('\P{Is_Numeric_Value:   0.06}');
+    Expect(1, 73674, '\p{Is_Numeric_Value: 6.25e-02}', "");
+    Expect(0, 73674, '\p{^Is_Numeric_Value: 6.25e-02}', "");
+    Expect(0, 73674, '\P{Is_Numeric_Value: 6.25e-02}', "");
+    Expect(1, 73674, '\P{^Is_Numeric_Value: 6.25e-02}', "");
+    Expect(0, 73675, '\p{Is_Numeric_Value: 6.25e-02}', "");
+    Expect(1, 73675, '\p{^Is_Numeric_Value: 6.25e-02}', "");
+    Expect(1, 73675, '\P{Is_Numeric_Value: 6.25e-02}', "");
+    Expect(0, 73675, '\P{^Is_Numeric_Value: 6.25e-02}', "");
+    Error('\p{Is_Numeric_Value=0.06}');
+    Error('\P{Is_Numeric_Value=0.06}');
     Expect(1, 73674, '\p{Is_Numeric_Value=6.250e-02}', "");
     Expect(0, 73674, '\p{^Is_Numeric_Value=6.250e-02}', "");
     Expect(0, 73674, '\P{Is_Numeric_Value=6.250e-02}', "");
@@ -68553,16 +69143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73675, '\p{^Is_Numeric_Value=0.06250}', "");
     Expect(1, 73675, '\P{Is_Numeric_Value=0.06250}', "");
     Expect(0, 73675, '\P{^Is_Numeric_Value=0.06250}', "");
-    Error('\p{Is_Nv= :=01/00016}');
-    Error('\P{Is_Nv= :=01/00016}');
-    Expect(1, 73674, '\p{Is_Nv:00000001/000016}', "");
-    Expect(0, 73674, '\p{^Is_Nv:00000001/000016}', "");
-    Expect(0, 73674, '\P{Is_Nv:00000001/000016}', "");
-    Expect(1, 73674, '\P{^Is_Nv:00000001/000016}', "");
-    Expect(0, 73675, '\p{Is_Nv:00000001/000016}', "");
-    Expect(1, 73675, '\p{^Is_Nv:00000001/000016}', "");
-    Expect(1, 73675, '\P{Is_Nv:00000001/000016}', "");
-    Expect(0, 73675, '\P{^Is_Nv:00000001/000016}', "");
+    Error('\p{Is_Nv::= _00001/0000000016}');
+    Error('\P{Is_Nv::= _00001/0000000016}');
+    Expect(1, 73674, '\p{Is_Nv=00000001/16}', "");
+    Expect(0, 73674, '\p{^Is_Nv=00000001/16}', "");
+    Expect(0, 73674, '\P{Is_Nv=00000001/16}', "");
+    Expect(1, 73674, '\P{^Is_Nv=00000001/16}', "");
+    Expect(0, 73675, '\p{Is_Nv=00000001/16}', "");
+    Expect(1, 73675, '\p{^Is_Nv=00000001/16}', "");
+    Expect(1, 73675, '\P{Is_Nv=00000001/16}', "");
+    Expect(0, 73675, '\P{^Is_Nv=00000001/16}', "");
     Expect(1, 73674, '\p{Is_Nv=60/960}', "");
     Expect(0, 73674, '\p{^Is_Nv=60/960}', "");
     Expect(0, 73674, '\P{Is_Nv=60/960}', "");
@@ -68571,8 +69161,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73675, '\p{^Is_Nv=60/960}', "");
     Expect(1, 73675, '\P{Is_Nv=60/960}', "");
     Expect(0, 73675, '\P{^Is_Nv=60/960}', "");
-    Error('\p{Is_Nv=6.2e-02}');
-    Error('\P{Is_Nv=6.2e-02}');
+    Error('\p{Is_Nv:	6.2e-02}');
+    Error('\P{Is_Nv:	6.2e-02}');
     Expect(1, 73674, '\p{Is_Nv=6.25e-02}', "");
     Expect(0, 73674, '\p{^Is_Nv=6.25e-02}', "");
     Expect(0, 73674, '\P{Is_Nv=6.25e-02}', "");
@@ -68593,22 +69183,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73675, '\P{^Is_Nv=6.250e-02}', "");
     Error('\p{Is_Nv=0.062}');
     Error('\P{Is_Nv=0.062}');
-    Expect(1, 73674, '\p{Is_Nv: 6.2500e-02}', "");
-    Expect(0, 73674, '\p{^Is_Nv: 6.2500e-02}', "");
-    Expect(0, 73674, '\P{Is_Nv: 6.2500e-02}', "");
-    Expect(1, 73674, '\P{^Is_Nv: 6.2500e-02}', "");
-    Expect(0, 73675, '\p{Is_Nv: 6.2500e-02}', "");
-    Expect(1, 73675, '\p{^Is_Nv: 6.2500e-02}', "");
-    Expect(1, 73675, '\P{Is_Nv: 6.2500e-02}', "");
-    Expect(0, 73675, '\P{^Is_Nv: 6.2500e-02}', "");
-    Expect(1, 73674, '\p{Is_Nv:   0.0625}', "");
-    Expect(0, 73674, '\p{^Is_Nv:   0.0625}', "");
-    Expect(0, 73674, '\P{Is_Nv:   0.0625}', "");
-    Expect(1, 73674, '\P{^Is_Nv:   0.0625}', "");
-    Expect(0, 73675, '\p{Is_Nv:   0.0625}', "");
-    Expect(1, 73675, '\p{^Is_Nv:   0.0625}', "");
-    Expect(1, 73675, '\P{Is_Nv:   0.0625}', "");
-    Expect(0, 73675, '\P{^Is_Nv:   0.0625}', "");
+    Expect(1, 73674, '\p{Is_Nv=6.2500e-02}', "");
+    Expect(0, 73674, '\p{^Is_Nv=6.2500e-02}', "");
+    Expect(0, 73674, '\P{Is_Nv=6.2500e-02}', "");
+    Expect(1, 73674, '\P{^Is_Nv=6.2500e-02}', "");
+    Expect(0, 73675, '\p{Is_Nv=6.2500e-02}', "");
+    Expect(1, 73675, '\p{^Is_Nv=6.2500e-02}', "");
+    Expect(1, 73675, '\P{Is_Nv=6.2500e-02}', "");
+    Expect(0, 73675, '\P{^Is_Nv=6.2500e-02}', "");
+    Expect(1, 73674, '\p{Is_Nv=0.0625}', "");
+    Expect(0, 73674, '\p{^Is_Nv=0.0625}', "");
+    Expect(0, 73674, '\P{Is_Nv=0.0625}', "");
+    Expect(1, 73674, '\P{^Is_Nv=0.0625}', "");
+    Expect(0, 73675, '\p{Is_Nv=0.0625}', "");
+    Expect(1, 73675, '\p{^Is_Nv=0.0625}', "");
+    Expect(1, 73675, '\P{Is_Nv=0.0625}', "");
+    Expect(0, 73675, '\P{^Is_Nv=0.0625}', "");
     Expect(1, 73674, '\p{Is_Nv=6.25000e-02}', "");
     Expect(0, 73674, '\p{^Is_Nv=6.25000e-02}', "");
     Expect(0, 73674, '\P{Is_Nv=6.25000e-02}', "");
@@ -68625,18 +69215,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73675, '\p{^Is_Nv=0.06250}', "");
     Expect(1, 73675, '\P{Is_Nv=0.06250}', "");
     Expect(0, 73675, '\P{^Is_Nv=0.06250}', "");
-    Error('\p{Numeric_Value=:=		+0000000001/000000000160}');
-    Error('\P{Numeric_Value=:=		+0000000001/000000000160}');
+    Error('\p{Numeric_Value=	/a/+0000000001/000000000160}');
+    Error('\P{Numeric_Value=	/a/+0000000001/000000000160}');
     Expect(1, 73665, '\p{Numeric_Value=:\A1/160\z:}', "");;
     Expect(0, 73666, '\p{Numeric_Value=:\A1/160\z:}', "");;
-    Expect(1, 73665, '\p{Numeric_Value:00000001/000000160}', "");
-    Expect(0, 73665, '\p{^Numeric_Value:00000001/000000160}', "");
-    Expect(0, 73665, '\P{Numeric_Value:00000001/000000160}', "");
-    Expect(1, 73665, '\P{^Numeric_Value:00000001/000000160}', "");
-    Expect(0, 73666, '\p{Numeric_Value:00000001/000000160}', "");
-    Expect(1, 73666, '\p{^Numeric_Value:00000001/000000160}', "");
-    Expect(1, 73666, '\P{Numeric_Value:00000001/000000160}', "");
-    Expect(0, 73666, '\P{^Numeric_Value:00000001/000000160}', "");
+    Expect(1, 73665, '\p{Numeric_Value:001/00000000160}', "");
+    Expect(0, 73665, '\p{^Numeric_Value:001/00000000160}', "");
+    Expect(0, 73665, '\P{Numeric_Value:001/00000000160}', "");
+    Expect(1, 73665, '\P{^Numeric_Value:001/00000000160}', "");
+    Expect(0, 73666, '\p{Numeric_Value:001/00000000160}', "");
+    Expect(1, 73666, '\p{^Numeric_Value:001/00000000160}', "");
+    Expect(1, 73666, '\P{Numeric_Value:001/00000000160}', "");
+    Expect(0, 73666, '\P{^Numeric_Value:001/00000000160}', "");
     Expect(1, 73665, '\p{Numeric_Value=60/9600}', "");
     Expect(0, 73665, '\p{^Numeric_Value=60/9600}', "");
     Expect(0, 73665, '\P{Numeric_Value=60/9600}', "");
@@ -68647,14 +69237,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73666, '\P{^Numeric_Value=60/9600}', "");
     Error('\p{Numeric_Value=6.3e-03}');
     Error('\P{Numeric_Value=6.3e-03}');
-    Expect(1, 73665, '\p{Numeric_Value:	6.25e-03}', "");
-    Expect(0, 73665, '\p{^Numeric_Value:	6.25e-03}', "");
-    Expect(0, 73665, '\P{Numeric_Value:	6.25e-03}', "");
-    Expect(1, 73665, '\P{^Numeric_Value:	6.25e-03}', "");
-    Expect(0, 73666, '\p{Numeric_Value:	6.25e-03}', "");
-    Expect(1, 73666, '\p{^Numeric_Value:	6.25e-03}', "");
-    Expect(1, 73666, '\P{Numeric_Value:	6.25e-03}', "");
-    Expect(0, 73666, '\P{^Numeric_Value:	6.25e-03}', "");
+    Expect(1, 73665, '\p{Numeric_Value=6.25e-03}', "");
+    Expect(0, 73665, '\p{^Numeric_Value=6.25e-03}', "");
+    Expect(0, 73665, '\P{Numeric_Value=6.25e-03}', "");
+    Expect(1, 73665, '\P{^Numeric_Value=6.25e-03}', "");
+    Expect(0, 73666, '\p{Numeric_Value=6.25e-03}', "");
+    Expect(1, 73666, '\p{^Numeric_Value=6.25e-03}', "");
+    Expect(1, 73666, '\P{Numeric_Value=6.25e-03}', "");
+    Expect(0, 73666, '\P{^Numeric_Value=6.25e-03}', "");
     Error('\p{Numeric_Value=0.01}');
     Error('\P{Numeric_Value=0.01}');
     Expect(1, 73665, '\p{Numeric_Value=6.250e-03}', "");
@@ -68709,18 +69299,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Numeric_Value=0.006250}', "");
     Expect(1, 73666, '\P{Numeric_Value=0.006250}', "");
     Expect(0, 73666, '\P{^Numeric_Value=0.006250}', "");
-    Error('\p{Nv=_:=000001/00000000160}');
-    Error('\P{Nv=_:=000001/00000000160}');
+    Error('\p{Nv: -+0000001/00160/a/}');
+    Error('\P{Nv: -+0000001/00160/a/}');
     Expect(1, 73665, '\p{Nv=:\A1/160\z:}', "");;
     Expect(0, 73666, '\p{Nv=:\A1/160\z:}', "");;
-    Expect(1, 73665, '\p{Nv=0000001/000160}', "");
-    Expect(0, 73665, '\p{^Nv=0000001/000160}', "");
-    Expect(0, 73665, '\P{Nv=0000001/000160}', "");
-    Expect(1, 73665, '\P{^Nv=0000001/000160}', "");
-    Expect(0, 73666, '\p{Nv=0000001/000160}', "");
-    Expect(1, 73666, '\p{^Nv=0000001/000160}', "");
-    Expect(1, 73666, '\P{Nv=0000001/000160}', "");
-    Expect(0, 73666, '\P{^Nv=0000001/000160}', "");
+    Expect(1, 73665, '\p{Nv=000000001/0000000160}', "");
+    Expect(0, 73665, '\p{^Nv=000000001/0000000160}', "");
+    Expect(0, 73665, '\P{Nv=000000001/0000000160}', "");
+    Expect(1, 73665, '\P{^Nv=000000001/0000000160}', "");
+    Expect(0, 73666, '\p{Nv=000000001/0000000160}', "");
+    Expect(1, 73666, '\p{^Nv=000000001/0000000160}', "");
+    Expect(1, 73666, '\P{Nv=000000001/0000000160}', "");
+    Expect(0, 73666, '\P{^Nv=000000001/0000000160}', "");
     Expect(1, 73665, '\p{Nv=60/9600}', "");
     Expect(0, 73665, '\p{^Nv=60/9600}', "");
     Expect(0, 73665, '\P{Nv=60/9600}', "");
@@ -68749,16 +69339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Nv=6.250e-03}', "");
     Expect(1, 73666, '\P{Nv=6.250e-03}', "");
     Expect(0, 73666, '\P{^Nv=6.250e-03}', "");
-    Error('\p{Nv:0.006}');
-    Error('\P{Nv:0.006}');
-    Expect(1, 73665, '\p{Nv=6.2500e-03}', "");
-    Expect(0, 73665, '\p{^Nv=6.2500e-03}', "");
-    Expect(0, 73665, '\P{Nv=6.2500e-03}', "");
-    Expect(1, 73665, '\P{^Nv=6.2500e-03}', "");
-    Expect(0, 73666, '\p{Nv=6.2500e-03}', "");
-    Expect(1, 73666, '\p{^Nv=6.2500e-03}', "");
-    Expect(1, 73666, '\P{Nv=6.2500e-03}', "");
-    Expect(0, 73666, '\P{^Nv=6.2500e-03}', "");
+    Error('\p{Nv=0.006}');
+    Error('\P{Nv=0.006}');
+    Expect(1, 73665, '\p{Nv:	6.2500e-03}', "");
+    Expect(0, 73665, '\p{^Nv:	6.2500e-03}', "");
+    Expect(0, 73665, '\P{Nv:	6.2500e-03}', "");
+    Expect(1, 73665, '\P{^Nv:	6.2500e-03}', "");
+    Expect(0, 73666, '\p{Nv:	6.2500e-03}', "");
+    Expect(1, 73666, '\p{^Nv:	6.2500e-03}', "");
+    Expect(1, 73666, '\P{Nv:	6.2500e-03}', "");
+    Expect(0, 73666, '\P{^Nv:	6.2500e-03}', "");
     Error('\p{Nv=0.0063}');
     Error('\P{Nv=0.0063}');
     Expect(1, 73665, '\p{Nv=6.25000e-03}', "");
@@ -68785,24 +69375,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Nv=6.250000e-03}', "");
     Expect(1, 73666, '\P{Nv=6.250000e-03}', "");
     Expect(0, 73666, '\P{^Nv=6.250000e-03}', "");
-    Expect(1, 73665, '\p{Nv=0.006250}', "");
-    Expect(0, 73665, '\p{^Nv=0.006250}', "");
-    Expect(0, 73665, '\P{Nv=0.006250}', "");
-    Expect(1, 73665, '\P{^Nv=0.006250}', "");
-    Expect(0, 73666, '\p{Nv=0.006250}', "");
-    Expect(1, 73666, '\p{^Nv=0.006250}', "");
-    Expect(1, 73666, '\P{Nv=0.006250}', "");
-    Expect(0, 73666, '\P{^Nv=0.006250}', "");
-    Error('\p{Is_Numeric_Value=-	+0000000001/000000000160:=}');
-    Error('\P{Is_Numeric_Value=-	+0000000001/000000000160:=}');
-    Expect(1, 73665, '\p{Is_Numeric_Value=0001/00000160}', "");
-    Expect(0, 73665, '\p{^Is_Numeric_Value=0001/00000160}', "");
-    Expect(0, 73665, '\P{Is_Numeric_Value=0001/00000160}', "");
-    Expect(1, 73665, '\P{^Is_Numeric_Value=0001/00000160}', "");
-    Expect(0, 73666, '\p{Is_Numeric_Value=0001/00000160}', "");
-    Expect(1, 73666, '\p{^Is_Numeric_Value=0001/00000160}', "");
-    Expect(1, 73666, '\P{Is_Numeric_Value=0001/00000160}', "");
-    Expect(0, 73666, '\P{^Is_Numeric_Value=0001/00000160}', "");
+    Expect(1, 73665, '\p{Nv:   0.006250}', "");
+    Expect(0, 73665, '\p{^Nv:   0.006250}', "");
+    Expect(0, 73665, '\P{Nv:   0.006250}', "");
+    Expect(1, 73665, '\P{^Nv:   0.006250}', "");
+    Expect(0, 73666, '\p{Nv:   0.006250}', "");
+    Expect(1, 73666, '\p{^Nv:   0.006250}', "");
+    Expect(1, 73666, '\P{Nv:   0.006250}', "");
+    Expect(0, 73666, '\P{^Nv:   0.006250}', "");
+    Error('\p{Is_Numeric_Value=	:=0000001/00000160}');
+    Error('\P{Is_Numeric_Value=	:=0000001/00000160}');
+    Expect(1, 73665, '\p{Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(0, 73665, '\p{^Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(0, 73665, '\P{Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(1, 73665, '\P{^Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(0, 73666, '\p{Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(1, 73666, '\p{^Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(1, 73666, '\P{Is_Numeric_Value=0000000001/00000000160}', "");
+    Expect(0, 73666, '\P{^Is_Numeric_Value=0000000001/00000000160}', "");
     Expect(1, 73665, '\p{Is_Numeric_Value=60/9600}', "");
     Expect(0, 73665, '\p{^Is_Numeric_Value=60/9600}', "");
     Expect(0, 73665, '\P{Is_Numeric_Value=60/9600}', "");
@@ -68843,22 +69433,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73666, '\P{^Is_Numeric_Value=6.2500e-03}', "");
     Error('\p{Is_Numeric_Value=0.0063}');
     Error('\P{Is_Numeric_Value=0.0063}');
-    Expect(1, 73665, '\p{Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(0, 73665, '\p{^Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(0, 73665, '\P{Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(1, 73665, '\P{^Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(0, 73666, '\p{Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(1, 73666, '\p{^Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(1, 73666, '\P{Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(0, 73666, '\P{^Is_Numeric_Value:   6.25000e-03}', "");
-    Expect(1, 73665, '\p{Is_Numeric_Value=0.00625}', "");
-    Expect(0, 73665, '\p{^Is_Numeric_Value=0.00625}', "");
-    Expect(0, 73665, '\P{Is_Numeric_Value=0.00625}', "");
-    Expect(1, 73665, '\P{^Is_Numeric_Value=0.00625}', "");
-    Expect(0, 73666, '\p{Is_Numeric_Value=0.00625}', "");
-    Expect(1, 73666, '\p{^Is_Numeric_Value=0.00625}', "");
-    Expect(1, 73666, '\P{Is_Numeric_Value=0.00625}', "");
-    Expect(0, 73666, '\P{^Is_Numeric_Value=0.00625}', "");
+    Expect(1, 73665, '\p{Is_Numeric_Value=6.25000e-03}', "");
+    Expect(0, 73665, '\p{^Is_Numeric_Value=6.25000e-03}', "");
+    Expect(0, 73665, '\P{Is_Numeric_Value=6.25000e-03}', "");
+    Expect(1, 73665, '\P{^Is_Numeric_Value=6.25000e-03}', "");
+    Expect(0, 73666, '\p{Is_Numeric_Value=6.25000e-03}', "");
+    Expect(1, 73666, '\p{^Is_Numeric_Value=6.25000e-03}', "");
+    Expect(1, 73666, '\P{Is_Numeric_Value=6.25000e-03}', "");
+    Expect(0, 73666, '\P{^Is_Numeric_Value=6.25000e-03}', "");
+    Expect(1, 73665, '\p{Is_Numeric_Value: 0.00625}', "");
+    Expect(0, 73665, '\p{^Is_Numeric_Value: 0.00625}', "");
+    Expect(0, 73665, '\P{Is_Numeric_Value: 0.00625}', "");
+    Expect(1, 73665, '\P{^Is_Numeric_Value: 0.00625}', "");
+    Expect(0, 73666, '\p{Is_Numeric_Value: 0.00625}', "");
+    Expect(1, 73666, '\p{^Is_Numeric_Value: 0.00625}', "");
+    Expect(1, 73666, '\P{Is_Numeric_Value: 0.00625}', "");
+    Expect(0, 73666, '\P{^Is_Numeric_Value: 0.00625}', "");
     Expect(1, 73665, '\p{Is_Numeric_Value:	6.250000e-03}', "");
     Expect(0, 73665, '\p{^Is_Numeric_Value:	6.250000e-03}', "");
     Expect(0, 73665, '\P{Is_Numeric_Value:	6.250000e-03}', "");
@@ -68875,16 +69465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Is_Numeric_Value=0.006250}', "");
     Expect(1, 73666, '\P{Is_Numeric_Value=0.006250}', "");
     Expect(0, 73666, '\P{^Is_Numeric_Value=0.006250}', "");
-    Error('\p{Is_Nv=:=_-001/0000160}');
-    Error('\P{Is_Nv=:=_-001/0000160}');
-    Expect(1, 73665, '\p{Is_Nv=00000001/0000160}', "");
-    Expect(0, 73665, '\p{^Is_Nv=00000001/0000160}', "");
-    Expect(0, 73665, '\P{Is_Nv=00000001/0000160}', "");
-    Expect(1, 73665, '\P{^Is_Nv=00000001/0000160}', "");
-    Expect(0, 73666, '\p{Is_Nv=00000001/0000160}', "");
-    Expect(1, 73666, '\p{^Is_Nv=00000001/0000160}', "");
-    Expect(1, 73666, '\P{Is_Nv=00000001/0000160}', "");
-    Expect(0, 73666, '\P{^Is_Nv=00000001/0000160}', "");
+    Error('\p{Is_Nv=_/a/000000001/000160}');
+    Error('\P{Is_Nv=_/a/000000001/000160}');
+    Expect(1, 73665, '\p{Is_Nv=00000001/160}', "");
+    Expect(0, 73665, '\p{^Is_Nv=00000001/160}', "");
+    Expect(0, 73665, '\P{Is_Nv=00000001/160}', "");
+    Expect(1, 73665, '\P{^Is_Nv=00000001/160}', "");
+    Expect(0, 73666, '\p{Is_Nv=00000001/160}', "");
+    Expect(1, 73666, '\p{^Is_Nv=00000001/160}', "");
+    Expect(1, 73666, '\P{Is_Nv=00000001/160}', "");
+    Expect(0, 73666, '\P{^Is_Nv=00000001/160}', "");
     Expect(1, 73665, '\p{Is_Nv=60/9600}', "");
     Expect(0, 73665, '\p{^Is_Nv=60/9600}', "");
     Expect(0, 73665, '\P{Is_Nv=60/9600}', "");
@@ -68895,14 +69485,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73666, '\P{^Is_Nv=60/9600}', "");
     Error('\p{Is_Nv=6.3e-03}');
     Error('\P{Is_Nv=6.3e-03}');
-    Expect(1, 73665, '\p{Is_Nv=6.25e-03}', "");
-    Expect(0, 73665, '\p{^Is_Nv=6.25e-03}', "");
-    Expect(0, 73665, '\P{Is_Nv=6.25e-03}', "");
-    Expect(1, 73665, '\P{^Is_Nv=6.25e-03}', "");
-    Expect(0, 73666, '\p{Is_Nv=6.25e-03}', "");
-    Expect(1, 73666, '\p{^Is_Nv=6.25e-03}', "");
-    Expect(1, 73666, '\P{Is_Nv=6.25e-03}', "");
-    Expect(0, 73666, '\P{^Is_Nv=6.25e-03}', "");
+    Expect(1, 73665, '\p{Is_Nv: 6.25e-03}', "");
+    Expect(0, 73665, '\p{^Is_Nv: 6.25e-03}', "");
+    Expect(0, 73665, '\P{Is_Nv: 6.25e-03}', "");
+    Expect(1, 73665, '\P{^Is_Nv: 6.25e-03}', "");
+    Expect(0, 73666, '\p{Is_Nv: 6.25e-03}', "");
+    Expect(1, 73666, '\p{^Is_Nv: 6.25e-03}', "");
+    Expect(1, 73666, '\P{Is_Nv: 6.25e-03}', "");
+    Expect(0, 73666, '\P{^Is_Nv: 6.25e-03}', "");
     Error('\p{Is_Nv=0.01}');
     Error('\P{Is_Nv=0.01}');
     Expect(1, 73665, '\p{Is_Nv=6.250e-03}', "");
@@ -68923,8 +69513,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Is_Nv=6.2500e-03}', "");
     Expect(1, 73666, '\P{Is_Nv=6.2500e-03}', "");
     Expect(0, 73666, '\P{^Is_Nv=6.2500e-03}', "");
-    Error('\p{Is_Nv=0.0063}');
-    Error('\P{Is_Nv=0.0063}');
+    Error('\p{Is_Nv:   0.0063}');
+    Error('\P{Is_Nv:   0.0063}');
     Expect(1, 73665, '\p{Is_Nv=6.25000e-03}', "");
     Expect(0, 73665, '\p{^Is_Nv=6.25000e-03}', "");
     Expect(0, 73665, '\P{Is_Nv=6.25000e-03}', "");
@@ -68933,22 +69523,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Is_Nv=6.25000e-03}', "");
     Expect(1, 73666, '\P{Is_Nv=6.25000e-03}', "");
     Expect(0, 73666, '\P{^Is_Nv=6.25000e-03}', "");
-    Expect(1, 73665, '\p{Is_Nv:0.00625}', "");
-    Expect(0, 73665, '\p{^Is_Nv:0.00625}', "");
-    Expect(0, 73665, '\P{Is_Nv:0.00625}', "");
-    Expect(1, 73665, '\P{^Is_Nv:0.00625}', "");
-    Expect(0, 73666, '\p{Is_Nv:0.00625}', "");
-    Expect(1, 73666, '\p{^Is_Nv:0.00625}', "");
-    Expect(1, 73666, '\P{Is_Nv:0.00625}', "");
-    Expect(0, 73666, '\P{^Is_Nv:0.00625}', "");
-    Expect(1, 73665, '\p{Is_Nv:	6.250000e-03}', "");
-    Expect(0, 73665, '\p{^Is_Nv:	6.250000e-03}', "");
-    Expect(0, 73665, '\P{Is_Nv:	6.250000e-03}', "");
-    Expect(1, 73665, '\P{^Is_Nv:	6.250000e-03}', "");
-    Expect(0, 73666, '\p{Is_Nv:	6.250000e-03}', "");
-    Expect(1, 73666, '\p{^Is_Nv:	6.250000e-03}', "");
-    Expect(1, 73666, '\P{Is_Nv:	6.250000e-03}', "");
-    Expect(0, 73666, '\P{^Is_Nv:	6.250000e-03}', "");
+    Expect(1, 73665, '\p{Is_Nv=0.00625}', "");
+    Expect(0, 73665, '\p{^Is_Nv=0.00625}', "");
+    Expect(0, 73665, '\P{Is_Nv=0.00625}', "");
+    Expect(1, 73665, '\P{^Is_Nv=0.00625}', "");
+    Expect(0, 73666, '\p{Is_Nv=0.00625}', "");
+    Expect(1, 73666, '\p{^Is_Nv=0.00625}', "");
+    Expect(1, 73666, '\P{Is_Nv=0.00625}', "");
+    Expect(0, 73666, '\P{^Is_Nv=0.00625}', "");
+    Expect(1, 73665, '\p{Is_Nv=6.250000e-03}', "");
+    Expect(0, 73665, '\p{^Is_Nv=6.250000e-03}', "");
+    Expect(0, 73665, '\P{Is_Nv=6.250000e-03}', "");
+    Expect(1, 73665, '\P{^Is_Nv=6.250000e-03}', "");
+    Expect(0, 73666, '\p{Is_Nv=6.250000e-03}', "");
+    Expect(1, 73666, '\p{^Is_Nv=6.250000e-03}', "");
+    Expect(1, 73666, '\P{Is_Nv=6.250000e-03}', "");
+    Expect(0, 73666, '\P{^Is_Nv=6.250000e-03}', "");
     Expect(1, 73665, '\p{Is_Nv=0.006250}', "");
     Expect(0, 73665, '\p{^Is_Nv=0.006250}', "");
     Expect(0, 73665, '\P{Is_Nv=0.006250}', "");
@@ -68957,18 +69547,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73666, '\p{^Is_Nv=0.006250}', "");
     Expect(1, 73666, '\P{Is_Nv=0.006250}', "");
     Expect(0, 73666, '\P{^Is_Nv=0.006250}', "");
-    Error('\p{Numeric_Value=	 0000001/000000002/a/}');
-    Error('\P{Numeric_Value=	 0000001/000000002/a/}');
+    Error('\p{Numeric_Value=/a/ -+000001/0000000002}');
+    Error('\P{Numeric_Value=/a/ -+000001/0000000002}');
     Expect(1, 126268, '\p{Numeric_Value=:\A1/2\z:}', "");;
     Expect(0, 126269, '\p{Numeric_Value=:\A1/2\z:}', "");;
-    Expect(1, 126268, '\p{Numeric_Value=+000000001/000002}', "");
-    Expect(0, 126268, '\p{^Numeric_Value=+000000001/000002}', "");
-    Expect(0, 126268, '\P{Numeric_Value=+000000001/000002}', "");
-    Expect(1, 126268, '\P{^Numeric_Value=+000000001/000002}', "");
-    Expect(0, 126269, '\p{Numeric_Value=+000000001/000002}', "");
-    Expect(1, 126269, '\p{^Numeric_Value=+000000001/000002}', "");
-    Expect(1, 126269, '\P{Numeric_Value=+000000001/000002}', "");
-    Expect(0, 126269, '\P{^Numeric_Value=+000000001/000002}', "");
+    Expect(1, 126268, '\p{Numeric_Value=+0000001/0000002}', "");
+    Expect(0, 126268, '\p{^Numeric_Value=+0000001/0000002}', "");
+    Expect(0, 126268, '\P{Numeric_Value=+0000001/0000002}', "");
+    Expect(1, 126268, '\P{^Numeric_Value=+0000001/0000002}', "");
+    Expect(0, 126269, '\p{Numeric_Value=+0000001/0000002}', "");
+    Expect(1, 126269, '\p{^Numeric_Value=+0000001/0000002}', "");
+    Expect(1, 126269, '\P{Numeric_Value=+0000001/0000002}', "");
+    Expect(0, 126269, '\P{^Numeric_Value=+0000001/0000002}', "");
     Expect(1, 126268, '\p{Numeric_Value=60/120}', "");
     Expect(0, 126268, '\p{^Numeric_Value=60/120}', "");
     Expect(0, 126268, '\P{Numeric_Value=60/120}', "");
@@ -69001,34 +69591,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126269, '\p{^Numeric_Value=5.00e-01}', "");
     Expect(1, 126269, '\P{Numeric_Value=5.00e-01}', "");
     Expect(0, 126269, '\P{^Numeric_Value=5.00e-01}', "");
-    Expect(1, 126268, '\p{Numeric_Value=0.50}', "");
-    Expect(0, 126268, '\p{^Numeric_Value=0.50}', "");
-    Expect(0, 126268, '\P{Numeric_Value=0.50}', "");
-    Expect(1, 126268, '\P{^Numeric_Value=0.50}', "");
-    Expect(0, 126269, '\p{Numeric_Value=0.50}', "");
-    Expect(1, 126269, '\p{^Numeric_Value=0.50}', "");
-    Expect(1, 126269, '\P{Numeric_Value=0.50}', "");
-    Expect(0, 126269, '\P{^Numeric_Value=0.50}', "");
-    Error('\p{Nv=:=+0000001/002}');
-    Error('\P{Nv=:=+0000001/002}');
+    Expect(1, 126268, '\p{Numeric_Value:0.50}', "");
+    Expect(0, 126268, '\p{^Numeric_Value:0.50}', "");
+    Expect(0, 126268, '\P{Numeric_Value:0.50}', "");
+    Expect(1, 126268, '\P{^Numeric_Value:0.50}', "");
+    Expect(0, 126269, '\p{Numeric_Value:0.50}', "");
+    Expect(1, 126269, '\p{^Numeric_Value:0.50}', "");
+    Expect(1, 126269, '\P{Numeric_Value:0.50}', "");
+    Expect(0, 126269, '\P{^Numeric_Value:0.50}', "");
+    Error('\p{Nv= /a/00001/000002}');
+    Error('\P{Nv= /a/00001/000002}');
     Expect(1, 126268, '\p{Nv=:\A1/2\z:}', "");;
     Expect(0, 126269, '\p{Nv=:\A1/2\z:}', "");;
-    Expect(1, 126268, '\p{Nv=000000001/02}', "");
-    Expect(0, 126268, '\p{^Nv=000000001/02}', "");
-    Expect(0, 126268, '\P{Nv=000000001/02}', "");
-    Expect(1, 126268, '\P{^Nv=000000001/02}', "");
-    Expect(0, 126269, '\p{Nv=000000001/02}', "");
-    Expect(1, 126269, '\p{^Nv=000000001/02}', "");
-    Expect(1, 126269, '\P{Nv=000000001/02}', "");
-    Expect(0, 126269, '\P{^Nv=000000001/02}', "");
-    Expect(1, 126268, '\p{Nv=60/120}', "");
-    Expect(0, 126268, '\p{^Nv=60/120}', "");
-    Expect(0, 126268, '\P{Nv=60/120}', "");
-    Expect(1, 126268, '\P{^Nv=60/120}', "");
-    Expect(0, 126269, '\p{Nv=60/120}', "");
-    Expect(1, 126269, '\p{^Nv=60/120}', "");
-    Expect(1, 126269, '\P{Nv=60/120}', "");
-    Expect(0, 126269, '\P{^Nv=60/120}', "");
+    Expect(1, 126268, '\p{Nv=0001/002}', "");
+    Expect(0, 126268, '\p{^Nv=0001/002}', "");
+    Expect(0, 126268, '\P{Nv=0001/002}', "");
+    Expect(1, 126268, '\P{^Nv=0001/002}', "");
+    Expect(0, 126269, '\p{Nv=0001/002}', "");
+    Expect(1, 126269, '\p{^Nv=0001/002}', "");
+    Expect(1, 126269, '\P{Nv=0001/002}', "");
+    Expect(0, 126269, '\P{^Nv=0001/002}', "");
+    Expect(1, 126268, '\p{Nv: 60/120}', "");
+    Expect(0, 126268, '\p{^Nv: 60/120}', "");
+    Expect(0, 126268, '\P{Nv: 60/120}', "");
+    Expect(1, 126268, '\P{^Nv: 60/120}', "");
+    Expect(0, 126269, '\p{Nv: 60/120}', "");
+    Expect(1, 126269, '\p{^Nv: 60/120}', "");
+    Expect(1, 126269, '\P{Nv: 60/120}', "");
+    Expect(0, 126269, '\P{^Nv: 60/120}', "");
     Expect(1, 126268, '\p{Nv=5.0e-01}', "");
     Expect(0, 126268, '\p{^Nv=5.0e-01}', "");
     Expect(0, 126268, '\P{Nv=5.0e-01}', "");
@@ -69061,24 +69651,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126269, '\p{^Nv=0.50}', "");
     Expect(1, 126269, '\P{Nv=0.50}', "");
     Expect(0, 126269, '\P{^Nv=0.50}', "");
-    Error('\p{Is_Numeric_Value=:=--00001/2}');
-    Error('\P{Is_Numeric_Value=:=--00001/2}');
-    Expect(1, 126268, '\p{Is_Numeric_Value=00001/00000002}', "");
-    Expect(0, 126268, '\p{^Is_Numeric_Value=00001/00000002}', "");
-    Expect(0, 126268, '\P{Is_Numeric_Value=00001/00000002}', "");
-    Expect(1, 126268, '\P{^Is_Numeric_Value=00001/00000002}', "");
-    Expect(0, 126269, '\p{Is_Numeric_Value=00001/00000002}', "");
-    Expect(1, 126269, '\p{^Is_Numeric_Value=00001/00000002}', "");
-    Expect(1, 126269, '\P{Is_Numeric_Value=00001/00000002}', "");
-    Expect(0, 126269, '\P{^Is_Numeric_Value=00001/00000002}', "");
-    Expect(1, 126268, '\p{Is_Numeric_Value=60/120}', "");
-    Expect(0, 126268, '\p{^Is_Numeric_Value=60/120}', "");
-    Expect(0, 126268, '\P{Is_Numeric_Value=60/120}', "");
-    Expect(1, 126268, '\P{^Is_Numeric_Value=60/120}', "");
-    Expect(0, 126269, '\p{Is_Numeric_Value=60/120}', "");
-    Expect(1, 126269, '\p{^Is_Numeric_Value=60/120}', "");
-    Expect(1, 126269, '\P{Is_Numeric_Value=60/120}', "");
-    Expect(0, 126269, '\P{^Is_Numeric_Value=60/120}', "");
+    Error('\p{Is_Numeric_Value=:=__+000000001/2}');
+    Error('\P{Is_Numeric_Value=:=__+000000001/2}');
+    Expect(1, 126268, '\p{Is_Numeric_Value=+0001/2}', "");
+    Expect(0, 126268, '\p{^Is_Numeric_Value=+0001/2}', "");
+    Expect(0, 126268, '\P{Is_Numeric_Value=+0001/2}', "");
+    Expect(1, 126268, '\P{^Is_Numeric_Value=+0001/2}', "");
+    Expect(0, 126269, '\p{Is_Numeric_Value=+0001/2}', "");
+    Expect(1, 126269, '\p{^Is_Numeric_Value=+0001/2}', "");
+    Expect(1, 126269, '\P{Is_Numeric_Value=+0001/2}', "");
+    Expect(0, 126269, '\P{^Is_Numeric_Value=+0001/2}', "");
+    Expect(1, 126268, '\p{Is_Numeric_Value:	60/120}', "");
+    Expect(0, 126268, '\p{^Is_Numeric_Value:	60/120}', "");
+    Expect(0, 126268, '\P{Is_Numeric_Value:	60/120}', "");
+    Expect(1, 126268, '\P{^Is_Numeric_Value:	60/120}', "");
+    Expect(0, 126269, '\p{Is_Numeric_Value:	60/120}', "");
+    Expect(1, 126269, '\p{^Is_Numeric_Value:	60/120}', "");
+    Expect(1, 126269, '\P{Is_Numeric_Value:	60/120}', "");
+    Expect(0, 126269, '\P{^Is_Numeric_Value:	60/120}', "");
     Expect(1, 126268, '\p{Is_Numeric_Value=5.0e-01}', "");
     Expect(0, 126268, '\p{^Is_Numeric_Value=5.0e-01}', "");
     Expect(0, 126268, '\P{Is_Numeric_Value=5.0e-01}', "");
@@ -69111,32 +69701,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126269, '\p{^Is_Numeric_Value=0.50}', "");
     Expect(1, 126269, '\P{Is_Numeric_Value=0.50}', "");
     Expect(0, 126269, '\P{^Is_Numeric_Value=0.50}', "");
-    Error('\p{Is_Nv=--01/000000002:=}');
-    Error('\P{Is_Nv=--01/000000002:=}');
-    Expect(1, 126268, '\p{Is_Nv=0000001/0000002}', "");
-    Expect(0, 126268, '\p{^Is_Nv=0000001/0000002}', "");
-    Expect(0, 126268, '\P{Is_Nv=0000001/0000002}', "");
-    Expect(1, 126268, '\P{^Is_Nv=0000001/0000002}', "");
-    Expect(0, 126269, '\p{Is_Nv=0000001/0000002}', "");
-    Expect(1, 126269, '\p{^Is_Nv=0000001/0000002}', "");
-    Expect(1, 126269, '\P{Is_Nv=0000001/0000002}', "");
-    Expect(0, 126269, '\P{^Is_Nv=0000001/0000002}', "");
-    Expect(1, 126268, '\p{Is_Nv=60/120}', "");
-    Expect(0, 126268, '\p{^Is_Nv=60/120}', "");
-    Expect(0, 126268, '\P{Is_Nv=60/120}', "");
-    Expect(1, 126268, '\P{^Is_Nv=60/120}', "");
-    Expect(0, 126269, '\p{Is_Nv=60/120}', "");
-    Expect(1, 126269, '\p{^Is_Nv=60/120}', "");
-    Expect(1, 126269, '\P{Is_Nv=60/120}', "");
-    Expect(0, 126269, '\P{^Is_Nv=60/120}', "");
-    Expect(1, 126268, '\p{Is_Nv=5.0e-01}', "");
-    Expect(0, 126268, '\p{^Is_Nv=5.0e-01}', "");
-    Expect(0, 126268, '\P{Is_Nv=5.0e-01}', "");
-    Expect(1, 126268, '\P{^Is_Nv=5.0e-01}', "");
-    Expect(0, 126269, '\p{Is_Nv=5.0e-01}', "");
-    Expect(1, 126269, '\p{^Is_Nv=5.0e-01}', "");
-    Expect(1, 126269, '\P{Is_Nv=5.0e-01}', "");
-    Expect(0, 126269, '\P{^Is_Nv=5.0e-01}', "");
+    Error('\p{Is_Nv:   	/a/01/00000002}');
+    Error('\P{Is_Nv:   	/a/01/00000002}');
+    Expect(1, 126268, '\p{Is_Nv=0000000001/02}', "");
+    Expect(0, 126268, '\p{^Is_Nv=0000000001/02}', "");
+    Expect(0, 126268, '\P{Is_Nv=0000000001/02}', "");
+    Expect(1, 126268, '\P{^Is_Nv=0000000001/02}', "");
+    Expect(0, 126269, '\p{Is_Nv=0000000001/02}', "");
+    Expect(1, 126269, '\p{^Is_Nv=0000000001/02}', "");
+    Expect(1, 126269, '\P{Is_Nv=0000000001/02}', "");
+    Expect(0, 126269, '\P{^Is_Nv=0000000001/02}', "");
+    Expect(1, 126268, '\p{Is_Nv:   60/120}', "");
+    Expect(0, 126268, '\p{^Is_Nv:   60/120}', "");
+    Expect(0, 126268, '\P{Is_Nv:   60/120}', "");
+    Expect(1, 126268, '\P{^Is_Nv:   60/120}', "");
+    Expect(0, 126269, '\p{Is_Nv:   60/120}', "");
+    Expect(1, 126269, '\p{^Is_Nv:   60/120}', "");
+    Expect(1, 126269, '\P{Is_Nv:   60/120}', "");
+    Expect(0, 126269, '\P{^Is_Nv:   60/120}', "");
+    Expect(1, 126268, '\p{Is_Nv: 5.0e-01}', "");
+    Expect(0, 126268, '\p{^Is_Nv: 5.0e-01}', "");
+    Expect(0, 126268, '\P{Is_Nv: 5.0e-01}', "");
+    Expect(1, 126268, '\P{^Is_Nv: 5.0e-01}', "");
+    Expect(0, 126269, '\p{Is_Nv: 5.0e-01}', "");
+    Expect(1, 126269, '\p{^Is_Nv: 5.0e-01}', "");
+    Expect(1, 126269, '\P{Is_Nv: 5.0e-01}', "");
+    Expect(0, 126269, '\P{^Is_Nv: 5.0e-01}', "");
     Expect(1, 126268, '\p{Is_Nv=0.5}', "");
     Expect(0, 126268, '\p{^Is_Nv=0.5}', "");
     Expect(0, 126268, '\P{Is_Nv=0.5}', "");
@@ -69153,26 +69743,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126269, '\p{^Is_Nv=5.00e-01}', "");
     Expect(1, 126269, '\P{Is_Nv=5.00e-01}', "");
     Expect(0, 126269, '\P{^Is_Nv=5.00e-01}', "");
-    Expect(1, 126268, '\p{Is_Nv=0.50}', "");
-    Expect(0, 126268, '\p{^Is_Nv=0.50}', "");
-    Expect(0, 126268, '\P{Is_Nv=0.50}', "");
-    Expect(1, 126268, '\P{^Is_Nv=0.50}', "");
-    Expect(0, 126269, '\p{Is_Nv=0.50}', "");
-    Expect(1, 126269, '\p{^Is_Nv=0.50}', "");
-    Expect(1, 126269, '\P{Is_Nv=0.50}', "");
-    Expect(0, 126269, '\P{^Is_Nv=0.50}', "");
-    Error('\p{Numeric_Value=_:=0001/00000020}');
-    Error('\P{Numeric_Value=_:=0001/00000020}');
+    Expect(1, 126268, '\p{Is_Nv:   0.50}', "");
+    Expect(0, 126268, '\p{^Is_Nv:   0.50}', "");
+    Expect(0, 126268, '\P{Is_Nv:   0.50}', "");
+    Expect(1, 126268, '\P{^Is_Nv:   0.50}', "");
+    Expect(0, 126269, '\p{Is_Nv:   0.50}', "");
+    Expect(1, 126269, '\p{^Is_Nv:   0.50}', "");
+    Expect(1, 126269, '\P{Is_Nv:   0.50}', "");
+    Expect(0, 126269, '\P{^Is_Nv:   0.50}', "");
+    Error('\p{Numeric_Value=:= 	1/00000000020}');
+    Error('\P{Numeric_Value=:= 	1/00000000020}');
     Expect(1, 73672, '\p{Numeric_Value=:\A1/20\z:}', "");;
     Expect(0, 73673, '\p{Numeric_Value=:\A1/20\z:}', "");;
-    Expect(1, 73672, '\p{Numeric_Value=+0000000001/000020}', "");
-    Expect(0, 73672, '\p{^Numeric_Value=+0000000001/000020}', "");
-    Expect(0, 73672, '\P{Numeric_Value=+0000000001/000020}', "");
-    Expect(1, 73672, '\P{^Numeric_Value=+0000000001/000020}', "");
-    Expect(0, 73673, '\p{Numeric_Value=+0000000001/000020}', "");
-    Expect(1, 73673, '\p{^Numeric_Value=+0000000001/000020}', "");
-    Expect(1, 73673, '\P{Numeric_Value=+0000000001/000020}', "");
-    Expect(0, 73673, '\P{^Numeric_Value=+0000000001/000020}', "");
+    Expect(1, 73672, '\p{Numeric_Value=+001/00020}', "");
+    Expect(0, 73672, '\p{^Numeric_Value=+001/00020}', "");
+    Expect(0, 73672, '\P{Numeric_Value=+001/00020}', "");
+    Expect(1, 73672, '\P{^Numeric_Value=+001/00020}', "");
+    Expect(0, 73673, '\p{Numeric_Value=+001/00020}', "");
+    Expect(1, 73673, '\p{^Numeric_Value=+001/00020}', "");
+    Expect(1, 73673, '\P{Numeric_Value=+001/00020}', "");
+    Expect(0, 73673, '\P{^Numeric_Value=+001/00020}', "");
     Expect(1, 73672, '\p{Numeric_Value=60/1200}', "");
     Expect(0, 73672, '\p{^Numeric_Value=60/1200}', "");
     Expect(0, 73672, '\P{Numeric_Value=60/1200}', "");
@@ -69221,18 +69811,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73673, '\p{^Numeric_Value=0.050}', "");
     Expect(1, 73673, '\P{Numeric_Value=0.050}', "");
     Expect(0, 73673, '\P{^Numeric_Value=0.050}', "");
-    Error('\p{Nv=__000001/000020/a/}');
-    Error('\P{Nv=__000001/000020/a/}');
+    Error('\p{Nv=/a/0001/00000020}');
+    Error('\P{Nv=/a/0001/00000020}');
     Expect(1, 73672, '\p{Nv=:\A1/20\z:}', "");;
     Expect(0, 73673, '\p{Nv=:\A1/20\z:}', "");;
-    Expect(1, 73672, '\p{Nv=01/00020}', "");
-    Expect(0, 73672, '\p{^Nv=01/00020}', "");
-    Expect(0, 73672, '\P{Nv=01/00020}', "");
-    Expect(1, 73672, '\P{^Nv=01/00020}', "");
-    Expect(0, 73673, '\p{Nv=01/00020}', "");
-    Expect(1, 73673, '\p{^Nv=01/00020}', "");
-    Expect(1, 73673, '\P{Nv=01/00020}', "");
-    Expect(0, 73673, '\P{^Nv=01/00020}', "");
+    Expect(1, 73672, '\p{Nv=+0000001/000020}', "");
+    Expect(0, 73672, '\p{^Nv=+0000001/000020}', "");
+    Expect(0, 73672, '\P{Nv=+0000001/000020}', "");
+    Expect(1, 73672, '\P{^Nv=+0000001/000020}', "");
+    Expect(0, 73673, '\p{Nv=+0000001/000020}', "");
+    Expect(1, 73673, '\p{^Nv=+0000001/000020}', "");
+    Expect(1, 73673, '\P{Nv=+0000001/000020}', "");
+    Expect(0, 73673, '\P{^Nv=+0000001/000020}', "");
     Expect(1, 73672, '\p{Nv=60/1200}', "");
     Expect(0, 73672, '\p{^Nv=60/1200}', "");
     Expect(0, 73672, '\P{Nv=60/1200}', "");
@@ -69281,16 +69871,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73673, '\p{^Nv=0.050}', "");
     Expect(1, 73673, '\P{Nv=0.050}', "");
     Expect(0, 73673, '\P{^Nv=0.050}', "");
-    Error('\p{Is_Numeric_Value: _:=001/00000000020}');
-    Error('\P{Is_Numeric_Value: _:=001/00000000020}');
-    Expect(1, 73672, '\p{Is_Numeric_Value=+001/020}', "");
-    Expect(0, 73672, '\p{^Is_Numeric_Value=+001/020}', "");
-    Expect(0, 73672, '\P{Is_Numeric_Value=+001/020}', "");
-    Expect(1, 73672, '\P{^Is_Numeric_Value=+001/020}', "");
-    Expect(0, 73673, '\p{Is_Numeric_Value=+001/020}', "");
-    Expect(1, 73673, '\p{^Is_Numeric_Value=+001/020}', "");
-    Expect(1, 73673, '\P{Is_Numeric_Value=+001/020}', "");
-    Expect(0, 73673, '\P{^Is_Numeric_Value=+001/020}', "");
+    Error('\p{Is_Numeric_Value=/a/00001/00000020}');
+    Error('\P{Is_Numeric_Value=/a/00001/00000020}');
+    Expect(1, 73672, '\p{Is_Numeric_Value=+1/000000020}', "");
+    Expect(0, 73672, '\p{^Is_Numeric_Value=+1/000000020}', "");
+    Expect(0, 73672, '\P{Is_Numeric_Value=+1/000000020}', "");
+    Expect(1, 73672, '\P{^Is_Numeric_Value=+1/000000020}', "");
+    Expect(0, 73673, '\p{Is_Numeric_Value=+1/000000020}', "");
+    Expect(1, 73673, '\p{^Is_Numeric_Value=+1/000000020}', "");
+    Expect(1, 73673, '\P{Is_Numeric_Value=+1/000000020}', "");
+    Expect(0, 73673, '\P{^Is_Numeric_Value=+1/000000020}', "");
     Expect(1, 73672, '\p{Is_Numeric_Value=60/1200}', "");
     Expect(0, 73672, '\p{^Is_Numeric_Value=60/1200}', "");
     Expect(0, 73672, '\P{Is_Numeric_Value=60/1200}', "");
@@ -69299,14 +69889,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73673, '\p{^Is_Numeric_Value=60/1200}', "");
     Expect(1, 73673, '\P{Is_Numeric_Value=60/1200}', "");
     Expect(0, 73673, '\P{^Is_Numeric_Value=60/1200}', "");
-    Expect(1, 73672, '\p{Is_Numeric_Value=5.0e-02}', "");
-    Expect(0, 73672, '\p{^Is_Numeric_Value=5.0e-02}', "");
-    Expect(0, 73672, '\P{Is_Numeric_Value=5.0e-02}', "");
-    Expect(1, 73672, '\P{^Is_Numeric_Value=5.0e-02}', "");
-    Expect(0, 73673, '\p{Is_Numeric_Value=5.0e-02}', "");
-    Expect(1, 73673, '\p{^Is_Numeric_Value=5.0e-02}', "");
-    Expect(1, 73673, '\P{Is_Numeric_Value=5.0e-02}', "");
-    Expect(0, 73673, '\P{^Is_Numeric_Value=5.0e-02}', "");
+    Expect(1, 73672, '\p{Is_Numeric_Value:	5.0e-02}', "");
+    Expect(0, 73672, '\p{^Is_Numeric_Value:	5.0e-02}', "");
+    Expect(0, 73672, '\P{Is_Numeric_Value:	5.0e-02}', "");
+    Expect(1, 73672, '\P{^Is_Numeric_Value:	5.0e-02}', "");
+    Expect(0, 73673, '\p{Is_Numeric_Value:	5.0e-02}', "");
+    Expect(1, 73673, '\p{^Is_Numeric_Value:	5.0e-02}', "");
+    Expect(1, 73673, '\P{Is_Numeric_Value:	5.0e-02}', "");
+    Expect(0, 73673, '\P{^Is_Numeric_Value:	5.0e-02}', "");
     Expect(1, 73672, '\p{Is_Numeric_Value=5.00e-02}', "");
     Expect(0, 73672, '\p{^Is_Numeric_Value=5.00e-02}', "");
     Expect(0, 73672, '\P{Is_Numeric_Value=5.00e-02}', "");
@@ -69323,32 +69913,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73673, '\p{^Is_Numeric_Value=0.05}', "");
     Expect(1, 73673, '\P{Is_Numeric_Value=0.05}', "");
     Expect(0, 73673, '\P{^Is_Numeric_Value=0.05}', "");
-    Expect(1, 73672, '\p{Is_Numeric_Value=5.000e-02}', "");
-    Expect(0, 73672, '\p{^Is_Numeric_Value=5.000e-02}', "");
-    Expect(0, 73672, '\P{Is_Numeric_Value=5.000e-02}', "");
-    Expect(1, 73672, '\P{^Is_Numeric_Value=5.000e-02}', "");
-    Expect(0, 73673, '\p{Is_Numeric_Value=5.000e-02}', "");
-    Expect(1, 73673, '\p{^Is_Numeric_Value=5.000e-02}', "");
-    Expect(1, 73673, '\P{Is_Numeric_Value=5.000e-02}', "");
-    Expect(0, 73673, '\P{^Is_Numeric_Value=5.000e-02}', "");
-    Expect(1, 73672, '\p{Is_Numeric_Value=0.050}', "");
-    Expect(0, 73672, '\p{^Is_Numeric_Value=0.050}', "");
-    Expect(0, 73672, '\P{Is_Numeric_Value=0.050}', "");
-    Expect(1, 73672, '\P{^Is_Numeric_Value=0.050}', "");
-    Expect(0, 73673, '\p{Is_Numeric_Value=0.050}', "");
-    Expect(1, 73673, '\p{^Is_Numeric_Value=0.050}', "");
-    Expect(1, 73673, '\P{Is_Numeric_Value=0.050}', "");
-    Expect(0, 73673, '\P{^Is_Numeric_Value=0.050}', "");
-    Error('\p{Is_Nv:	 :=00000001/00000020}');
-    Error('\P{Is_Nv:	 :=00000001/00000020}');
-    Expect(1, 73672, '\p{Is_Nv=01/00000000020}', "");
-    Expect(0, 73672, '\p{^Is_Nv=01/00000000020}', "");
-    Expect(0, 73672, '\P{Is_Nv=01/00000000020}', "");
-    Expect(1, 73672, '\P{^Is_Nv=01/00000000020}', "");
-    Expect(0, 73673, '\p{Is_Nv=01/00000000020}', "");
-    Expect(1, 73673, '\p{^Is_Nv=01/00000000020}', "");
-    Expect(1, 73673, '\P{Is_Nv=01/00000000020}', "");
-    Expect(0, 73673, '\P{^Is_Nv=01/00000000020}', "");
+    Expect(1, 73672, '\p{Is_Numeric_Value:   5.000e-02}', "");
+    Expect(0, 73672, '\p{^Is_Numeric_Value:   5.000e-02}', "");
+    Expect(0, 73672, '\P{Is_Numeric_Value:   5.000e-02}', "");
+    Expect(1, 73672, '\P{^Is_Numeric_Value:   5.000e-02}', "");
+    Expect(0, 73673, '\p{Is_Numeric_Value:   5.000e-02}', "");
+    Expect(1, 73673, '\p{^Is_Numeric_Value:   5.000e-02}', "");
+    Expect(1, 73673, '\P{Is_Numeric_Value:   5.000e-02}', "");
+    Expect(0, 73673, '\P{^Is_Numeric_Value:   5.000e-02}', "");
+    Expect(1, 73672, '\p{Is_Numeric_Value:	0.050}', "");
+    Expect(0, 73672, '\p{^Is_Numeric_Value:	0.050}', "");
+    Expect(0, 73672, '\P{Is_Numeric_Value:	0.050}', "");
+    Expect(1, 73672, '\P{^Is_Numeric_Value:	0.050}', "");
+    Expect(0, 73673, '\p{Is_Numeric_Value:	0.050}', "");
+    Expect(1, 73673, '\p{^Is_Numeric_Value:	0.050}', "");
+    Expect(1, 73673, '\P{Is_Numeric_Value:	0.050}', "");
+    Expect(0, 73673, '\P{^Is_Numeric_Value:	0.050}', "");
+    Error('\p{Is_Nv=/a/	_+001/0000020}');
+    Error('\P{Is_Nv=/a/	_+001/0000020}');
+    Expect(1, 73672, '\p{Is_Nv=+0000001/000020}', "");
+    Expect(0, 73672, '\p{^Is_Nv=+0000001/000020}', "");
+    Expect(0, 73672, '\P{Is_Nv=+0000001/000020}', "");
+    Expect(1, 73672, '\P{^Is_Nv=+0000001/000020}', "");
+    Expect(0, 73673, '\p{Is_Nv=+0000001/000020}', "");
+    Expect(1, 73673, '\p{^Is_Nv=+0000001/000020}', "");
+    Expect(1, 73673, '\P{Is_Nv=+0000001/000020}', "");
+    Expect(0, 73673, '\P{^Is_Nv=+0000001/000020}', "");
     Expect(1, 73672, '\p{Is_Nv=60/1200}', "");
     Expect(0, 73672, '\p{^Is_Nv=60/1200}', "");
     Expect(0, 73672, '\P{Is_Nv=60/1200}', "");
@@ -69381,14 +69971,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73673, '\p{^Is_Nv=0.05}', "");
     Expect(1, 73673, '\P{Is_Nv=0.05}', "");
     Expect(0, 73673, '\P{^Is_Nv=0.05}', "");
-    Expect(1, 73672, '\p{Is_Nv=5.000e-02}', "");
-    Expect(0, 73672, '\p{^Is_Nv=5.000e-02}', "");
-    Expect(0, 73672, '\P{Is_Nv=5.000e-02}', "");
-    Expect(1, 73672, '\P{^Is_Nv=5.000e-02}', "");
-    Expect(0, 73673, '\p{Is_Nv=5.000e-02}', "");
-    Expect(1, 73673, '\p{^Is_Nv=5.000e-02}', "");
-    Expect(1, 73673, '\P{Is_Nv=5.000e-02}', "");
-    Expect(0, 73673, '\P{^Is_Nv=5.000e-02}', "");
+    Expect(1, 73672, '\p{Is_Nv:5.000e-02}', "");
+    Expect(0, 73672, '\p{^Is_Nv:5.000e-02}', "");
+    Expect(0, 73672, '\P{Is_Nv:5.000e-02}', "");
+    Expect(1, 73672, '\P{^Is_Nv:5.000e-02}', "");
+    Expect(0, 73673, '\p{Is_Nv:5.000e-02}', "");
+    Expect(1, 73673, '\p{^Is_Nv:5.000e-02}', "");
+    Expect(1, 73673, '\P{Is_Nv:5.000e-02}', "");
+    Expect(0, 73673, '\P{^Is_Nv:5.000e-02}', "");
     Expect(1, 73672, '\p{Is_Nv=0.050}', "");
     Expect(0, 73672, '\p{^Is_Nv=0.050}', "");
     Expect(0, 73672, '\P{Is_Nv=0.050}', "");
@@ -69397,18 +69987,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73673, '\p{^Is_Nv=0.050}', "");
     Expect(1, 73673, '\P{Is_Nv=0.050}', "");
     Expect(0, 73673, '\P{^Is_Nv=0.050}', "");
-    Error('\p{Numeric_Value=/a/000001/03}');
-    Error('\P{Numeric_Value=/a/000001/03}');
+    Error('\p{Numeric_Value:	 :=000001/00003}');
+    Error('\P{Numeric_Value:	 :=000001/00003}');
     Expect(1, 74853, '\p{Numeric_Value=:\A1/3\z:}', "");;
     Expect(0, 74854, '\p{Numeric_Value=:\A1/3\z:}', "");;
-    Expect(1, 74853, '\p{Numeric_Value=0000000001/000003}', "");
-    Expect(0, 74853, '\p{^Numeric_Value=0000000001/000003}', "");
-    Expect(0, 74853, '\P{Numeric_Value=0000000001/000003}', "");
-    Expect(1, 74853, '\P{^Numeric_Value=0000000001/000003}', "");
-    Expect(0, 74854, '\p{Numeric_Value=0000000001/000003}', "");
-    Expect(1, 74854, '\p{^Numeric_Value=0000000001/000003}', "");
-    Expect(1, 74854, '\P{Numeric_Value=0000000001/000003}', "");
-    Expect(0, 74854, '\P{^Numeric_Value=0000000001/000003}', "");
+    Expect(1, 74853, '\p{Numeric_Value=1/0000003}', "");
+    Expect(0, 74853, '\p{^Numeric_Value=1/0000003}', "");
+    Expect(0, 74853, '\P{Numeric_Value=1/0000003}', "");
+    Expect(1, 74853, '\P{^Numeric_Value=1/0000003}', "");
+    Expect(0, 74854, '\p{Numeric_Value=1/0000003}', "");
+    Expect(1, 74854, '\p{^Numeric_Value=1/0000003}', "");
+    Expect(1, 74854, '\P{Numeric_Value=1/0000003}', "");
+    Expect(0, 74854, '\P{^Numeric_Value=1/0000003}', "");
     Expect(1, 74853, '\p{Numeric_Value=60/180}', "");
     Expect(0, 74853, '\p{^Numeric_Value=60/180}', "");
     Expect(0, 74853, '\P{Numeric_Value=60/180}', "");
@@ -69417,14 +70007,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Numeric_Value=60/180}', "");
     Expect(1, 74854, '\P{Numeric_Value=60/180}', "");
     Expect(0, 74854, '\P{^Numeric_Value=60/180}', "");
-    Error('\p{Numeric_Value:3.3e-01}');
-    Error('\P{Numeric_Value:3.3e-01}');
-    Error('\p{Numeric_Value:   0.3}');
-    Error('\P{Numeric_Value:   0.3}');
+    Error('\p{Numeric_Value:   3.3e-01}');
+    Error('\P{Numeric_Value:   3.3e-01}');
+    Error('\p{Numeric_Value=0.3}');
+    Error('\P{Numeric_Value=0.3}');
     Error('\p{Numeric_Value=3.33e-01}');
     Error('\P{Numeric_Value=3.33e-01}');
-    Error('\p{Numeric_Value:	0.33}');
-    Error('\P{Numeric_Value:	0.33}');
+    Error('\p{Numeric_Value=0.33}');
+    Error('\P{Numeric_Value=0.33}');
     Expect(1, 74853, '\p{Numeric_Value=3.333e-01}', "");
     Expect(0, 74853, '\p{^Numeric_Value=3.333e-01}', "");
     Expect(0, 74853, '\P{Numeric_Value=3.333e-01}', "");
@@ -69433,16 +70023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Numeric_Value=3.333e-01}', "");
     Expect(1, 74854, '\P{Numeric_Value=3.333e-01}', "");
     Expect(0, 74854, '\P{^Numeric_Value=3.333e-01}', "");
-    Error('\p{Numeric_Value=0.333}');
-    Error('\P{Numeric_Value=0.333}');
-    Expect(1, 74853, '\p{Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74853, '\p{^Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74853, '\P{Numeric_Value=3.3333e-01}', "");
-    Expect(1, 74853, '\P{^Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74854, '\p{Numeric_Value=3.3333e-01}', "");
-    Expect(1, 74854, '\p{^Numeric_Value=3.3333e-01}', "");
-    Expect(1, 74854, '\P{Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74854, '\P{^Numeric_Value=3.3333e-01}', "");
+    Error('\p{Numeric_Value: 0.333}');
+    Error('\P{Numeric_Value: 0.333}');
+    Expect(1, 74853, '\p{Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74853, '\p{^Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74853, '\P{Numeric_Value:   3.3333e-01}', "");
+    Expect(1, 74853, '\P{^Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74854, '\p{Numeric_Value:   3.3333e-01}', "");
+    Expect(1, 74854, '\p{^Numeric_Value:   3.3333e-01}', "");
+    Expect(1, 74854, '\P{Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74854, '\P{^Numeric_Value:   3.3333e-01}', "");
     Expect(1, 74853, '\p{Numeric_Value=0.3333}', "");
     Expect(0, 74853, '\p{^Numeric_Value=0.3333}', "");
     Expect(0, 74853, '\P{Numeric_Value=0.3333}', "");
@@ -69467,42 +70057,42 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Numeric_Value=0.33333}', "");
     Expect(1, 74854, '\P{Numeric_Value=0.33333}', "");
     Expect(0, 74854, '\P{^Numeric_Value=0.33333}', "");
-    Error('\p{Nv=:=0000001/000000003}');
-    Error('\P{Nv=:=0000001/000000003}');
+    Error('\p{Nv=/a/_	+000001/00000003}');
+    Error('\P{Nv=/a/_	+000001/00000003}');
     Expect(1, 74853, '\p{Nv=:\A1/3\z:}', "");;
     Expect(0, 74854, '\p{Nv=:\A1/3\z:}', "");;
-    Expect(1, 74853, '\p{Nv=000000001/0000003}', "");
-    Expect(0, 74853, '\p{^Nv=000000001/0000003}', "");
-    Expect(0, 74853, '\P{Nv=000000001/0000003}', "");
-    Expect(1, 74853, '\P{^Nv=000000001/0000003}', "");
-    Expect(0, 74854, '\p{Nv=000000001/0000003}', "");
-    Expect(1, 74854, '\p{^Nv=000000001/0000003}', "");
-    Expect(1, 74854, '\P{Nv=000000001/0000003}', "");
-    Expect(0, 74854, '\P{^Nv=000000001/0000003}', "");
-    Expect(1, 74853, '\p{Nv=60/180}', "");
-    Expect(0, 74853, '\p{^Nv=60/180}', "");
-    Expect(0, 74853, '\P{Nv=60/180}', "");
-    Expect(1, 74853, '\P{^Nv=60/180}', "");
-    Expect(0, 74854, '\p{Nv=60/180}', "");
-    Expect(1, 74854, '\p{^Nv=60/180}', "");
-    Expect(1, 74854, '\P{Nv=60/180}', "");
-    Expect(0, 74854, '\P{^Nv=60/180}', "");
+    Expect(1, 74853, '\p{Nv:   0000001/03}', "");
+    Expect(0, 74853, '\p{^Nv:   0000001/03}', "");
+    Expect(0, 74853, '\P{Nv:   0000001/03}', "");
+    Expect(1, 74853, '\P{^Nv:   0000001/03}', "");
+    Expect(0, 74854, '\p{Nv:   0000001/03}', "");
+    Expect(1, 74854, '\p{^Nv:   0000001/03}', "");
+    Expect(1, 74854, '\P{Nv:   0000001/03}', "");
+    Expect(0, 74854, '\P{^Nv:   0000001/03}', "");
+    Expect(1, 74853, '\p{Nv: 60/180}', "");
+    Expect(0, 74853, '\p{^Nv: 60/180}', "");
+    Expect(0, 74853, '\P{Nv: 60/180}', "");
+    Expect(1, 74853, '\P{^Nv: 60/180}', "");
+    Expect(0, 74854, '\p{Nv: 60/180}', "");
+    Expect(1, 74854, '\p{^Nv: 60/180}', "");
+    Expect(1, 74854, '\P{Nv: 60/180}', "");
+    Expect(0, 74854, '\P{^Nv: 60/180}', "");
     Error('\p{Nv=3.3e-01}');
     Error('\P{Nv=3.3e-01}');
     Error('\p{Nv=0.3}');
     Error('\P{Nv=0.3}');
-    Error('\p{Nv=3.33e-01}');
-    Error('\P{Nv=3.33e-01}');
+    Error('\p{Nv: 3.33e-01}');
+    Error('\P{Nv: 3.33e-01}');
     Error('\p{Nv=0.33}');
     Error('\P{Nv=0.33}');
-    Expect(1, 74853, '\p{Nv=3.333e-01}', "");
-    Expect(0, 74853, '\p{^Nv=3.333e-01}', "");
-    Expect(0, 74853, '\P{Nv=3.333e-01}', "");
-    Expect(1, 74853, '\P{^Nv=3.333e-01}', "");
-    Expect(0, 74854, '\p{Nv=3.333e-01}', "");
-    Expect(1, 74854, '\p{^Nv=3.333e-01}', "");
-    Expect(1, 74854, '\P{Nv=3.333e-01}', "");
-    Expect(0, 74854, '\P{^Nv=3.333e-01}', "");
+    Expect(1, 74853, '\p{Nv: 3.333e-01}', "");
+    Expect(0, 74853, '\p{^Nv: 3.333e-01}', "");
+    Expect(0, 74853, '\P{Nv: 3.333e-01}', "");
+    Expect(1, 74853, '\P{^Nv: 3.333e-01}', "");
+    Expect(0, 74854, '\p{Nv: 3.333e-01}', "");
+    Expect(1, 74854, '\p{^Nv: 3.333e-01}', "");
+    Expect(1, 74854, '\P{Nv: 3.333e-01}', "");
+    Expect(0, 74854, '\P{^Nv: 3.333e-01}', "");
     Error('\p{Nv=0.333}');
     Error('\P{Nv=0.333}');
     Expect(1, 74853, '\p{Nv=3.3333e-01}', "");
@@ -69513,14 +70103,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Nv=3.3333e-01}', "");
     Expect(1, 74854, '\P{Nv=3.3333e-01}', "");
     Expect(0, 74854, '\P{^Nv=3.3333e-01}', "");
-    Expect(1, 74853, '\p{Nv=0.3333}', "");
-    Expect(0, 74853, '\p{^Nv=0.3333}', "");
-    Expect(0, 74853, '\P{Nv=0.3333}', "");
-    Expect(1, 74853, '\P{^Nv=0.3333}', "");
-    Expect(0, 74854, '\p{Nv=0.3333}', "");
-    Expect(1, 74854, '\p{^Nv=0.3333}', "");
-    Expect(1, 74854, '\P{Nv=0.3333}', "");
-    Expect(0, 74854, '\P{^Nv=0.3333}', "");
+    Expect(1, 74853, '\p{Nv:	0.3333}', "");
+    Expect(0, 74853, '\p{^Nv:	0.3333}', "");
+    Expect(0, 74853, '\P{Nv:	0.3333}', "");
+    Expect(1, 74853, '\P{^Nv:	0.3333}', "");
+    Expect(0, 74854, '\p{Nv:	0.3333}', "");
+    Expect(1, 74854, '\p{^Nv:	0.3333}', "");
+    Expect(1, 74854, '\P{Nv:	0.3333}', "");
+    Expect(0, 74854, '\P{^Nv:	0.3333}', "");
     Expect(1, 74853, '\p{Nv=3.33333e-01}', "");
     Expect(0, 74853, '\p{^Nv=3.33333e-01}', "");
     Expect(0, 74853, '\P{Nv=3.33333e-01}', "");
@@ -69529,24 +70119,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Nv=3.33333e-01}', "");
     Expect(1, 74854, '\P{Nv=3.33333e-01}', "");
     Expect(0, 74854, '\P{^Nv=3.33333e-01}', "");
-    Expect(1, 74853, '\p{Nv=0.33333}', "");
-    Expect(0, 74853, '\p{^Nv=0.33333}', "");
-    Expect(0, 74853, '\P{Nv=0.33333}', "");
-    Expect(1, 74853, '\P{^Nv=0.33333}', "");
-    Expect(0, 74854, '\p{Nv=0.33333}', "");
-    Expect(1, 74854, '\p{^Nv=0.33333}', "");
-    Expect(1, 74854, '\P{Nv=0.33333}', "");
-    Expect(0, 74854, '\P{^Nv=0.33333}', "");
-    Error('\p{Is_Numeric_Value=-000000001/000000003/a/}');
-    Error('\P{Is_Numeric_Value=-000000001/000000003/a/}');
-    Expect(1, 74853, '\p{Is_Numeric_Value=00000001/0003}', "");
-    Expect(0, 74853, '\p{^Is_Numeric_Value=00000001/0003}', "");
-    Expect(0, 74853, '\P{Is_Numeric_Value=00000001/0003}', "");
-    Expect(1, 74853, '\P{^Is_Numeric_Value=00000001/0003}', "");
-    Expect(0, 74854, '\p{Is_Numeric_Value=00000001/0003}', "");
-    Expect(1, 74854, '\p{^Is_Numeric_Value=00000001/0003}', "");
-    Expect(1, 74854, '\P{Is_Numeric_Value=00000001/0003}', "");
-    Expect(0, 74854, '\P{^Is_Numeric_Value=00000001/0003}', "");
+    Expect(1, 74853, '\p{Nv: 0.33333}', "");
+    Expect(0, 74853, '\p{^Nv: 0.33333}', "");
+    Expect(0, 74853, '\P{Nv: 0.33333}', "");
+    Expect(1, 74853, '\P{^Nv: 0.33333}', "");
+    Expect(0, 74854, '\p{Nv: 0.33333}', "");
+    Expect(1, 74854, '\p{^Nv: 0.33333}', "");
+    Expect(1, 74854, '\P{Nv: 0.33333}', "");
+    Expect(0, 74854, '\P{^Nv: 0.33333}', "");
+    Error('\p{Is_Numeric_Value=-/a/0000001/0003}');
+    Error('\P{Is_Numeric_Value=-/a/0000001/0003}');
+    Expect(1, 74853, '\p{Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(0, 74853, '\p{^Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(0, 74853, '\P{Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(1, 74853, '\P{^Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(0, 74854, '\p{Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(1, 74854, '\p{^Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(1, 74854, '\P{Is_Numeric_Value=0000000001/0000000003}', "");
+    Expect(0, 74854, '\P{^Is_Numeric_Value=0000000001/0000000003}', "");
     Expect(1, 74853, '\p{Is_Numeric_Value=60/180}', "");
     Expect(0, 74853, '\p{^Is_Numeric_Value=60/180}', "");
     Expect(0, 74853, '\P{Is_Numeric_Value=60/180}', "");
@@ -69557,12 +70147,12 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74854, '\P{^Is_Numeric_Value=60/180}', "");
     Error('\p{Is_Numeric_Value=3.3e-01}');
     Error('\P{Is_Numeric_Value=3.3e-01}');
-    Error('\p{Is_Numeric_Value:	0.3}');
-    Error('\P{Is_Numeric_Value:	0.3}');
+    Error('\p{Is_Numeric_Value=0.3}');
+    Error('\P{Is_Numeric_Value=0.3}');
     Error('\p{Is_Numeric_Value=3.33e-01}');
     Error('\P{Is_Numeric_Value=3.33e-01}');
-    Error('\p{Is_Numeric_Value=0.33}');
-    Error('\P{Is_Numeric_Value=0.33}');
+    Error('\p{Is_Numeric_Value: 0.33}');
+    Error('\P{Is_Numeric_Value: 0.33}');
     Expect(1, 74853, '\p{Is_Numeric_Value=3.333e-01}', "");
     Expect(0, 74853, '\p{^Is_Numeric_Value=3.333e-01}', "");
     Expect(0, 74853, '\P{Is_Numeric_Value=3.333e-01}', "");
@@ -69573,14 +70163,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74854, '\P{^Is_Numeric_Value=3.333e-01}', "");
     Error('\p{Is_Numeric_Value=0.333}');
     Error('\P{Is_Numeric_Value=0.333}');
-    Expect(1, 74853, '\p{Is_Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74853, '\p{^Is_Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74853, '\P{Is_Numeric_Value=3.3333e-01}', "");
-    Expect(1, 74853, '\P{^Is_Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74854, '\p{Is_Numeric_Value=3.3333e-01}', "");
-    Expect(1, 74854, '\p{^Is_Numeric_Value=3.3333e-01}', "");
-    Expect(1, 74854, '\P{Is_Numeric_Value=3.3333e-01}', "");
-    Expect(0, 74854, '\P{^Is_Numeric_Value=3.3333e-01}', "");
+    Expect(1, 74853, '\p{Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74853, '\p{^Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74853, '\P{Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(1, 74853, '\P{^Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74854, '\p{Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(1, 74854, '\p{^Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(1, 74854, '\P{Is_Numeric_Value:   3.3333e-01}', "");
+    Expect(0, 74854, '\P{^Is_Numeric_Value:   3.3333e-01}', "");
     Expect(1, 74853, '\p{Is_Numeric_Value=0.3333}', "");
     Expect(0, 74853, '\p{^Is_Numeric_Value=0.3333}', "");
     Expect(0, 74853, '\P{Is_Numeric_Value=0.3333}', "");
@@ -69597,24 +70187,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Is_Numeric_Value=3.33333e-01}', "");
     Expect(1, 74854, '\P{Is_Numeric_Value=3.33333e-01}', "");
     Expect(0, 74854, '\P{^Is_Numeric_Value=3.33333e-01}', "");
-    Expect(1, 74853, '\p{Is_Numeric_Value=0.33333}', "");
-    Expect(0, 74853, '\p{^Is_Numeric_Value=0.33333}', "");
-    Expect(0, 74853, '\P{Is_Numeric_Value=0.33333}', "");
-    Expect(1, 74853, '\P{^Is_Numeric_Value=0.33333}', "");
-    Expect(0, 74854, '\p{Is_Numeric_Value=0.33333}', "");
-    Expect(1, 74854, '\p{^Is_Numeric_Value=0.33333}', "");
-    Expect(1, 74854, '\P{Is_Numeric_Value=0.33333}', "");
-    Expect(0, 74854, '\P{^Is_Numeric_Value=0.33333}', "");
-    Error('\p{Is_Nv=:=+0000000001/00003}');
-    Error('\P{Is_Nv=:=+0000000001/00003}');
-    Expect(1, 74853, '\p{Is_Nv=0001/000000003}', "");
-    Expect(0, 74853, '\p{^Is_Nv=0001/000000003}', "");
-    Expect(0, 74853, '\P{Is_Nv=0001/000000003}', "");
-    Expect(1, 74853, '\P{^Is_Nv=0001/000000003}', "");
-    Expect(0, 74854, '\p{Is_Nv=0001/000000003}', "");
-    Expect(1, 74854, '\p{^Is_Nv=0001/000000003}', "");
-    Expect(1, 74854, '\P{Is_Nv=0001/000000003}', "");
-    Expect(0, 74854, '\P{^Is_Nv=0001/000000003}', "");
+    Expect(1, 74853, '\p{Is_Numeric_Value:   0.33333}', "");
+    Expect(0, 74853, '\p{^Is_Numeric_Value:   0.33333}', "");
+    Expect(0, 74853, '\P{Is_Numeric_Value:   0.33333}', "");
+    Expect(1, 74853, '\P{^Is_Numeric_Value:   0.33333}', "");
+    Expect(0, 74854, '\p{Is_Numeric_Value:   0.33333}', "");
+    Expect(1, 74854, '\p{^Is_Numeric_Value:   0.33333}', "");
+    Expect(1, 74854, '\P{Is_Numeric_Value:   0.33333}', "");
+    Expect(0, 74854, '\P{^Is_Numeric_Value:   0.33333}', "");
+    Error('\p{Is_Nv= :=00001/000000003}');
+    Error('\P{Is_Nv= :=00001/000000003}');
+    Expect(1, 74853, '\p{Is_Nv=1/00000003}', "");
+    Expect(0, 74853, '\p{^Is_Nv=1/00000003}', "");
+    Expect(0, 74853, '\P{Is_Nv=1/00000003}', "");
+    Expect(1, 74853, '\P{^Is_Nv=1/00000003}', "");
+    Expect(0, 74854, '\p{Is_Nv=1/00000003}', "");
+    Expect(1, 74854, '\p{^Is_Nv=1/00000003}', "");
+    Expect(1, 74854, '\P{Is_Nv=1/00000003}', "");
+    Expect(0, 74854, '\P{^Is_Nv=1/00000003}', "");
     Expect(1, 74853, '\p{Is_Nv=60/180}', "");
     Expect(0, 74853, '\p{^Is_Nv=60/180}', "");
     Expect(0, 74853, '\P{Is_Nv=60/180}', "");
@@ -69623,12 +70213,12 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Is_Nv=60/180}', "");
     Expect(1, 74854, '\P{Is_Nv=60/180}', "");
     Expect(0, 74854, '\P{^Is_Nv=60/180}', "");
-    Error('\p{Is_Nv=3.3e-01}');
-    Error('\P{Is_Nv=3.3e-01}');
+    Error('\p{Is_Nv:3.3e-01}');
+    Error('\P{Is_Nv:3.3e-01}');
     Error('\p{Is_Nv=0.3}');
     Error('\P{Is_Nv=0.3}');
-    Error('\p{Is_Nv:3.33e-01}');
-    Error('\P{Is_Nv:3.33e-01}');
+    Error('\p{Is_Nv=3.33e-01}');
+    Error('\P{Is_Nv=3.33e-01}');
     Error('\p{Is_Nv=0.33}');
     Error('\P{Is_Nv=0.33}');
     Expect(1, 74853, '\p{Is_Nv=3.333e-01}', "");
@@ -69639,8 +70229,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Is_Nv=3.333e-01}', "");
     Expect(1, 74854, '\P{Is_Nv=3.333e-01}', "");
     Expect(0, 74854, '\P{^Is_Nv=3.333e-01}', "");
-    Error('\p{Is_Nv=0.333}');
-    Error('\P{Is_Nv=0.333}');
+    Error('\p{Is_Nv: 0.333}');
+    Error('\P{Is_Nv: 0.333}');
     Expect(1, 74853, '\p{Is_Nv=3.3333e-01}', "");
     Expect(0, 74853, '\p{^Is_Nv=3.3333e-01}', "");
     Expect(0, 74853, '\P{Is_Nv=3.3333e-01}', "");
@@ -69673,30 +70263,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74854, '\p{^Is_Nv=0.33333}', "");
     Expect(1, 74854, '\P{Is_Nv=0.33333}', "");
     Expect(0, 74854, '\P{^Is_Nv=0.33333}', "");
-    Error('\p{Numeric_Value=:=		+01/0000000032}');
-    Error('\P{Numeric_Value=:=		+01/0000000032}');
+    Error('\p{Numeric_Value= 	+1/000032:=}');
+    Error('\P{Numeric_Value= 	+1/000032:=}');
     Expect(1, 73669, '\p{Numeric_Value=:\A1/32\z:}', "");;
     Expect(0, 73670, '\p{Numeric_Value=:\A1/32\z:}', "");;
-    Expect(1, 73669, '\p{Numeric_Value=+000000001/000032}', "");
-    Expect(0, 73669, '\p{^Numeric_Value=+000000001/000032}', "");
-    Expect(0, 73669, '\P{Numeric_Value=+000000001/000032}', "");
-    Expect(1, 73669, '\P{^Numeric_Value=+000000001/000032}', "");
-    Expect(0, 73670, '\p{Numeric_Value=+000000001/000032}', "");
-    Expect(1, 73670, '\p{^Numeric_Value=+000000001/000032}', "");
-    Expect(1, 73670, '\P{Numeric_Value=+000000001/000032}', "");
-    Expect(0, 73670, '\P{^Numeric_Value=+000000001/000032}', "");
-    Expect(1, 73669, '\p{Numeric_Value:60/1920}', "");
-    Expect(0, 73669, '\p{^Numeric_Value:60/1920}', "");
-    Expect(0, 73669, '\P{Numeric_Value:60/1920}', "");
-    Expect(1, 73669, '\P{^Numeric_Value:60/1920}', "");
-    Expect(0, 73670, '\p{Numeric_Value:60/1920}', "");
-    Expect(1, 73670, '\p{^Numeric_Value:60/1920}', "");
-    Expect(1, 73670, '\P{Numeric_Value:60/1920}', "");
-    Expect(0, 73670, '\P{^Numeric_Value:60/1920}', "");
+    Expect(1, 73669, '\p{Numeric_Value=000001/000000032}', "");
+    Expect(0, 73669, '\p{^Numeric_Value=000001/000000032}', "");
+    Expect(0, 73669, '\P{Numeric_Value=000001/000000032}', "");
+    Expect(1, 73669, '\P{^Numeric_Value=000001/000000032}', "");
+    Expect(0, 73670, '\p{Numeric_Value=000001/000000032}', "");
+    Expect(1, 73670, '\p{^Numeric_Value=000001/000000032}', "");
+    Expect(1, 73670, '\P{Numeric_Value=000001/000000032}', "");
+    Expect(0, 73670, '\P{^Numeric_Value=000001/000000032}', "");
+    Expect(1, 73669, '\p{Numeric_Value=60/1920}', "");
+    Expect(0, 73669, '\p{^Numeric_Value=60/1920}', "");
+    Expect(0, 73669, '\P{Numeric_Value=60/1920}', "");
+    Expect(1, 73669, '\P{^Numeric_Value=60/1920}', "");
+    Expect(0, 73670, '\p{Numeric_Value=60/1920}', "");
+    Expect(1, 73670, '\p{^Numeric_Value=60/1920}', "");
+    Expect(1, 73670, '\P{Numeric_Value=60/1920}', "");
+    Expect(0, 73670, '\P{^Numeric_Value=60/1920}', "");
     Error('\p{Numeric_Value=3.1e-02}');
     Error('\P{Numeric_Value=3.1e-02}');
-    Error('\p{Numeric_Value=3.12e-02}');
-    Error('\P{Numeric_Value=3.12e-02}');
+    Error('\p{Numeric_Value: 3.12e-02}');
+    Error('\P{Numeric_Value: 3.12e-02}');
     Error('\p{Numeric_Value=0.03}');
     Error('\P{Numeric_Value=0.03}');
     Expect(1, 73669, '\p{Numeric_Value=3.125e-02}', "");
@@ -69707,8 +70297,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Numeric_Value=3.125e-02}', "");
     Expect(1, 73670, '\P{Numeric_Value=3.125e-02}', "");
     Expect(0, 73670, '\P{^Numeric_Value=3.125e-02}', "");
-    Error('\p{Numeric_Value:	0.031}');
-    Error('\P{Numeric_Value:	0.031}');
+    Error('\p{Numeric_Value=0.031}');
+    Error('\P{Numeric_Value=0.031}');
     Expect(1, 73669, '\p{Numeric_Value=3.1250e-02}', "");
     Expect(0, 73669, '\p{^Numeric_Value=3.1250e-02}', "");
     Expect(0, 73669, '\P{Numeric_Value=3.1250e-02}', "");
@@ -69717,8 +70307,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Numeric_Value=3.1250e-02}', "");
     Expect(1, 73670, '\P{Numeric_Value=3.1250e-02}', "");
     Expect(0, 73670, '\P{^Numeric_Value=3.1250e-02}', "");
-    Error('\p{Numeric_Value:0.0312}');
-    Error('\P{Numeric_Value:0.0312}');
+    Error('\p{Numeric_Value=0.0312}');
+    Error('\P{Numeric_Value=0.0312}');
     Expect(1, 73669, '\p{Numeric_Value=3.12500e-02}', "");
     Expect(0, 73669, '\p{^Numeric_Value=3.12500e-02}', "");
     Expect(0, 73669, '\P{Numeric_Value=3.12500e-02}', "");
@@ -69727,14 +70317,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Numeric_Value=3.12500e-02}', "");
     Expect(1, 73670, '\P{Numeric_Value=3.12500e-02}', "");
     Expect(0, 73670, '\P{^Numeric_Value=3.12500e-02}', "");
-    Expect(1, 73669, '\p{Numeric_Value:	0.03125}', "");
-    Expect(0, 73669, '\p{^Numeric_Value:	0.03125}', "");
-    Expect(0, 73669, '\P{Numeric_Value:	0.03125}', "");
-    Expect(1, 73669, '\P{^Numeric_Value:	0.03125}', "");
-    Expect(0, 73670, '\p{Numeric_Value:	0.03125}', "");
-    Expect(1, 73670, '\p{^Numeric_Value:	0.03125}', "");
-    Expect(1, 73670, '\P{Numeric_Value:	0.03125}', "");
-    Expect(0, 73670, '\P{^Numeric_Value:	0.03125}', "");
+    Expect(1, 73669, '\p{Numeric_Value=0.03125}', "");
+    Expect(0, 73669, '\p{^Numeric_Value=0.03125}', "");
+    Expect(0, 73669, '\P{Numeric_Value=0.03125}', "");
+    Expect(1, 73669, '\P{^Numeric_Value=0.03125}', "");
+    Expect(0, 73670, '\p{Numeric_Value=0.03125}', "");
+    Expect(1, 73670, '\p{^Numeric_Value=0.03125}', "");
+    Expect(1, 73670, '\P{Numeric_Value=0.03125}', "");
+    Expect(0, 73670, '\P{^Numeric_Value=0.03125}', "");
     Expect(1, 73669, '\p{Numeric_Value=3.125000e-02}', "");
     Expect(0, 73669, '\p{^Numeric_Value=3.125000e-02}', "");
     Expect(0, 73669, '\P{Numeric_Value=3.125000e-02}', "");
@@ -69743,26 +70333,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Numeric_Value=3.125000e-02}', "");
     Expect(1, 73670, '\P{Numeric_Value=3.125000e-02}', "");
     Expect(0, 73670, '\P{^Numeric_Value=3.125000e-02}', "");
-    Expect(1, 73669, '\p{Numeric_Value:	0.031250}', "");
-    Expect(0, 73669, '\p{^Numeric_Value:	0.031250}', "");
-    Expect(0, 73669, '\P{Numeric_Value:	0.031250}', "");
-    Expect(1, 73669, '\P{^Numeric_Value:	0.031250}', "");
-    Expect(0, 73670, '\p{Numeric_Value:	0.031250}', "");
-    Expect(1, 73670, '\p{^Numeric_Value:	0.031250}', "");
-    Expect(1, 73670, '\P{Numeric_Value:	0.031250}', "");
-    Expect(0, 73670, '\P{^Numeric_Value:	0.031250}', "");
-    Error('\p{Nv:		0000000001/32/a/}');
-    Error('\P{Nv:		0000000001/32/a/}');
+    Expect(1, 73669, '\p{Numeric_Value=0.031250}', "");
+    Expect(0, 73669, '\p{^Numeric_Value=0.031250}', "");
+    Expect(0, 73669, '\P{Numeric_Value=0.031250}', "");
+    Expect(1, 73669, '\P{^Numeric_Value=0.031250}', "");
+    Expect(0, 73670, '\p{Numeric_Value=0.031250}', "");
+    Expect(1, 73670, '\p{^Numeric_Value=0.031250}', "");
+    Expect(1, 73670, '\P{Numeric_Value=0.031250}', "");
+    Expect(0, 73670, '\P{^Numeric_Value=0.031250}', "");
+    Error('\p{Nv: /a/		+0000001/00000000032}');
+    Error('\P{Nv: /a/		+0000001/00000000032}');
     Expect(1, 73669, '\p{Nv=:\A1/32\z:}', "");;
     Expect(0, 73670, '\p{Nv=:\A1/32\z:}', "");;
-    Expect(1, 73669, '\p{Nv=01/32}', "");
-    Expect(0, 73669, '\p{^Nv=01/32}', "");
-    Expect(0, 73669, '\P{Nv=01/32}', "");
-    Expect(1, 73669, '\P{^Nv=01/32}', "");
-    Expect(0, 73670, '\p{Nv=01/32}', "");
-    Expect(1, 73670, '\p{^Nv=01/32}', "");
-    Expect(1, 73670, '\P{Nv=01/32}', "");
-    Expect(0, 73670, '\P{^Nv=01/32}', "");
+    Expect(1, 73669, '\p{Nv:1/32}', "");
+    Expect(0, 73669, '\p{^Nv:1/32}', "");
+    Expect(0, 73669, '\P{Nv:1/32}', "");
+    Expect(1, 73669, '\P{^Nv:1/32}', "");
+    Expect(0, 73670, '\p{Nv:1/32}', "");
+    Expect(1, 73670, '\p{^Nv:1/32}', "");
+    Expect(1, 73670, '\P{Nv:1/32}', "");
+    Expect(0, 73670, '\P{^Nv:1/32}', "");
     Expect(1, 73669, '\p{Nv=60/1920}', "");
     Expect(0, 73669, '\p{^Nv=60/1920}', "");
     Expect(0, 73669, '\P{Nv=60/1920}', "");
@@ -69813,14 +70403,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Nv=0.03125}', "");
     Expect(1, 73670, '\P{Nv=0.03125}', "");
     Expect(0, 73670, '\P{^Nv=0.03125}', "");
-    Expect(1, 73669, '\p{Nv:	3.125000e-02}', "");
-    Expect(0, 73669, '\p{^Nv:	3.125000e-02}', "");
-    Expect(0, 73669, '\P{Nv:	3.125000e-02}', "");
-    Expect(1, 73669, '\P{^Nv:	3.125000e-02}', "");
-    Expect(0, 73670, '\p{Nv:	3.125000e-02}', "");
-    Expect(1, 73670, '\p{^Nv:	3.125000e-02}', "");
-    Expect(1, 73670, '\P{Nv:	3.125000e-02}', "");
-    Expect(0, 73670, '\P{^Nv:	3.125000e-02}', "");
+    Expect(1, 73669, '\p{Nv=3.125000e-02}', "");
+    Expect(0, 73669, '\p{^Nv=3.125000e-02}', "");
+    Expect(0, 73669, '\P{Nv=3.125000e-02}', "");
+    Expect(1, 73669, '\P{^Nv=3.125000e-02}', "");
+    Expect(0, 73670, '\p{Nv=3.125000e-02}', "");
+    Expect(1, 73670, '\p{^Nv=3.125000e-02}', "");
+    Expect(1, 73670, '\P{Nv=3.125000e-02}', "");
+    Expect(0, 73670, '\P{^Nv=3.125000e-02}', "");
     Expect(1, 73669, '\p{Nv=0.031250}', "");
     Expect(0, 73669, '\p{^Nv=0.031250}', "");
     Expect(0, 73669, '\P{Nv=0.031250}', "");
@@ -69829,16 +70419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Nv=0.031250}', "");
     Expect(1, 73670, '\P{Nv=0.031250}', "");
     Expect(0, 73670, '\P{^Nv=0.031250}', "");
-    Error('\p{Is_Numeric_Value=-:=00000001/032}');
-    Error('\P{Is_Numeric_Value=-:=00000001/032}');
-    Expect(1, 73669, '\p{Is_Numeric_Value=00000001/032}', "");
-    Expect(0, 73669, '\p{^Is_Numeric_Value=00000001/032}', "");
-    Expect(0, 73669, '\P{Is_Numeric_Value=00000001/032}', "");
-    Expect(1, 73669, '\P{^Is_Numeric_Value=00000001/032}', "");
-    Expect(0, 73670, '\p{Is_Numeric_Value=00000001/032}', "");
-    Expect(1, 73670, '\p{^Is_Numeric_Value=00000001/032}', "");
-    Expect(1, 73670, '\P{Is_Numeric_Value=00000001/032}', "");
-    Expect(0, 73670, '\P{^Is_Numeric_Value=00000001/032}', "");
+    Error('\p{Is_Numeric_Value=-0000000001/00000032/a/}');
+    Error('\P{Is_Numeric_Value=-0000000001/00000032/a/}');
+    Expect(1, 73669, '\p{Is_Numeric_Value=+000000001/00032}', "");
+    Expect(0, 73669, '\p{^Is_Numeric_Value=+000000001/00032}', "");
+    Expect(0, 73669, '\P{Is_Numeric_Value=+000000001/00032}', "");
+    Expect(1, 73669, '\P{^Is_Numeric_Value=+000000001/00032}', "");
+    Expect(0, 73670, '\p{Is_Numeric_Value=+000000001/00032}', "");
+    Expect(1, 73670, '\p{^Is_Numeric_Value=+000000001/00032}', "");
+    Expect(1, 73670, '\P{Is_Numeric_Value=+000000001/00032}', "");
+    Expect(0, 73670, '\P{^Is_Numeric_Value=+000000001/00032}', "");
     Expect(1, 73669, '\p{Is_Numeric_Value=60/1920}', "");
     Expect(0, 73669, '\p{^Is_Numeric_Value=60/1920}', "");
     Expect(0, 73669, '\P{Is_Numeric_Value=60/1920}', "");
@@ -69847,12 +70437,12 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Is_Numeric_Value=60/1920}', "");
     Expect(1, 73670, '\P{Is_Numeric_Value=60/1920}', "");
     Expect(0, 73670, '\P{^Is_Numeric_Value=60/1920}', "");
-    Error('\p{Is_Numeric_Value:	3.1e-02}');
-    Error('\P{Is_Numeric_Value:	3.1e-02}');
+    Error('\p{Is_Numeric_Value=3.1e-02}');
+    Error('\P{Is_Numeric_Value=3.1e-02}');
     Error('\p{Is_Numeric_Value=3.12e-02}');
     Error('\P{Is_Numeric_Value=3.12e-02}');
-    Error('\p{Is_Numeric_Value:   0.03}');
-    Error('\P{Is_Numeric_Value:   0.03}');
+    Error('\p{Is_Numeric_Value=0.03}');
+    Error('\P{Is_Numeric_Value=0.03}');
     Expect(1, 73669, '\p{Is_Numeric_Value=3.125e-02}', "");
     Expect(0, 73669, '\p{^Is_Numeric_Value=3.125e-02}', "");
     Expect(0, 73669, '\P{Is_Numeric_Value=3.125e-02}', "");
@@ -69889,14 +70479,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Is_Numeric_Value=0.03125}', "");
     Expect(1, 73670, '\P{Is_Numeric_Value=0.03125}', "");
     Expect(0, 73670, '\P{^Is_Numeric_Value=0.03125}', "");
-    Expect(1, 73669, '\p{Is_Numeric_Value:3.125000e-02}', "");
-    Expect(0, 73669, '\p{^Is_Numeric_Value:3.125000e-02}', "");
-    Expect(0, 73669, '\P{Is_Numeric_Value:3.125000e-02}', "");
-    Expect(1, 73669, '\P{^Is_Numeric_Value:3.125000e-02}', "");
-    Expect(0, 73670, '\p{Is_Numeric_Value:3.125000e-02}', "");
-    Expect(1, 73670, '\p{^Is_Numeric_Value:3.125000e-02}', "");
-    Expect(1, 73670, '\P{Is_Numeric_Value:3.125000e-02}', "");
-    Expect(0, 73670, '\P{^Is_Numeric_Value:3.125000e-02}', "");
+    Expect(1, 73669, '\p{Is_Numeric_Value=3.125000e-02}', "");
+    Expect(0, 73669, '\p{^Is_Numeric_Value=3.125000e-02}', "");
+    Expect(0, 73669, '\P{Is_Numeric_Value=3.125000e-02}', "");
+    Expect(1, 73669, '\P{^Is_Numeric_Value=3.125000e-02}', "");
+    Expect(0, 73670, '\p{Is_Numeric_Value=3.125000e-02}', "");
+    Expect(1, 73670, '\p{^Is_Numeric_Value=3.125000e-02}', "");
+    Expect(1, 73670, '\P{Is_Numeric_Value=3.125000e-02}', "");
+    Expect(0, 73670, '\P{^Is_Numeric_Value=3.125000e-02}', "");
     Expect(1, 73669, '\p{Is_Numeric_Value=0.031250}', "");
     Expect(0, 73669, '\p{^Is_Numeric_Value=0.031250}', "");
     Expect(0, 73669, '\P{Is_Numeric_Value=0.031250}', "");
@@ -69905,16 +70495,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Is_Numeric_Value=0.031250}', "");
     Expect(1, 73670, '\P{Is_Numeric_Value=0.031250}', "");
     Expect(0, 73670, '\P{^Is_Numeric_Value=0.031250}', "");
-    Error('\p{Is_Nv=:=	+00000001/0000032}');
-    Error('\P{Is_Nv=:=	+00000001/0000032}');
-    Expect(1, 73669, '\p{Is_Nv=+0000000001/00000000032}', "");
-    Expect(0, 73669, '\p{^Is_Nv=+0000000001/00000000032}', "");
-    Expect(0, 73669, '\P{Is_Nv=+0000000001/00000000032}', "");
-    Expect(1, 73669, '\P{^Is_Nv=+0000000001/00000000032}', "");
-    Expect(0, 73670, '\p{Is_Nv=+0000000001/00000000032}', "");
-    Expect(1, 73670, '\p{^Is_Nv=+0000000001/00000000032}', "");
-    Expect(1, 73670, '\P{Is_Nv=+0000000001/00000000032}', "");
-    Expect(0, 73670, '\P{^Is_Nv=+0000000001/00000000032}', "");
+    Error('\p{Is_Nv= 01/000032:=}');
+    Error('\P{Is_Nv= 01/000032:=}');
+    Expect(1, 73669, '\p{Is_Nv=+0001/032}', "");
+    Expect(0, 73669, '\p{^Is_Nv=+0001/032}', "");
+    Expect(0, 73669, '\P{Is_Nv=+0001/032}', "");
+    Expect(1, 73669, '\P{^Is_Nv=+0001/032}', "");
+    Expect(0, 73670, '\p{Is_Nv=+0001/032}', "");
+    Expect(1, 73670, '\p{^Is_Nv=+0001/032}', "");
+    Expect(1, 73670, '\P{Is_Nv=+0001/032}', "");
+    Expect(0, 73670, '\P{^Is_Nv=+0001/032}', "");
     Expect(1, 73669, '\p{Is_Nv=60/1920}', "");
     Expect(0, 73669, '\p{^Is_Nv=60/1920}', "");
     Expect(0, 73669, '\P{Is_Nv=60/1920}', "");
@@ -69927,18 +70517,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Nv=3.1e-02}');
     Error('\p{Is_Nv=3.12e-02}');
     Error('\P{Is_Nv=3.12e-02}');
-    Error('\p{Is_Nv:   0.03}');
-    Error('\P{Is_Nv:   0.03}');
-    Expect(1, 73669, '\p{Is_Nv=3.125e-02}', "");
-    Expect(0, 73669, '\p{^Is_Nv=3.125e-02}', "");
-    Expect(0, 73669, '\P{Is_Nv=3.125e-02}', "");
-    Expect(1, 73669, '\P{^Is_Nv=3.125e-02}', "");
-    Expect(0, 73670, '\p{Is_Nv=3.125e-02}', "");
-    Expect(1, 73670, '\p{^Is_Nv=3.125e-02}', "");
-    Expect(1, 73670, '\P{Is_Nv=3.125e-02}', "");
-    Expect(0, 73670, '\P{^Is_Nv=3.125e-02}', "");
-    Error('\p{Is_Nv=0.031}');
-    Error('\P{Is_Nv=0.031}');
+    Error('\p{Is_Nv=0.03}');
+    Error('\P{Is_Nv=0.03}');
+    Expect(1, 73669, '\p{Is_Nv: 3.125e-02}', "");
+    Expect(0, 73669, '\p{^Is_Nv: 3.125e-02}', "");
+    Expect(0, 73669, '\P{Is_Nv: 3.125e-02}', "");
+    Expect(1, 73669, '\P{^Is_Nv: 3.125e-02}', "");
+    Expect(0, 73670, '\p{Is_Nv: 3.125e-02}', "");
+    Expect(1, 73670, '\p{^Is_Nv: 3.125e-02}', "");
+    Expect(1, 73670, '\P{Is_Nv: 3.125e-02}', "");
+    Expect(0, 73670, '\P{^Is_Nv: 3.125e-02}', "");
+    Error('\p{Is_Nv:0.031}');
+    Error('\P{Is_Nv:0.031}');
     Expect(1, 73669, '\p{Is_Nv=3.1250e-02}', "");
     Expect(0, 73669, '\p{^Is_Nv=3.1250e-02}', "");
     Expect(0, 73669, '\P{Is_Nv=3.1250e-02}', "");
@@ -69957,14 +70547,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Is_Nv=3.12500e-02}', "");
     Expect(1, 73670, '\P{Is_Nv=3.12500e-02}', "");
     Expect(0, 73670, '\P{^Is_Nv=3.12500e-02}', "");
-    Expect(1, 73669, '\p{Is_Nv:	0.03125}', "");
-    Expect(0, 73669, '\p{^Is_Nv:	0.03125}', "");
-    Expect(0, 73669, '\P{Is_Nv:	0.03125}', "");
-    Expect(1, 73669, '\P{^Is_Nv:	0.03125}', "");
-    Expect(0, 73670, '\p{Is_Nv:	0.03125}', "");
-    Expect(1, 73670, '\p{^Is_Nv:	0.03125}', "");
-    Expect(1, 73670, '\P{Is_Nv:	0.03125}', "");
-    Expect(0, 73670, '\P{^Is_Nv:	0.03125}', "");
+    Expect(1, 73669, '\p{Is_Nv=0.03125}', "");
+    Expect(0, 73669, '\p{^Is_Nv=0.03125}', "");
+    Expect(0, 73669, '\P{Is_Nv=0.03125}', "");
+    Expect(1, 73669, '\P{^Is_Nv=0.03125}', "");
+    Expect(0, 73670, '\p{Is_Nv=0.03125}', "");
+    Expect(1, 73670, '\p{^Is_Nv=0.03125}', "");
+    Expect(1, 73670, '\P{Is_Nv=0.03125}', "");
+    Expect(0, 73670, '\P{^Is_Nv=0.03125}', "");
     Expect(1, 73669, '\p{Is_Nv=3.125000e-02}', "");
     Expect(0, 73669, '\p{^Is_Nv=3.125000e-02}', "");
     Expect(0, 73669, '\P{Is_Nv=3.125000e-02}', "");
@@ -69981,18 +70571,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73670, '\p{^Is_Nv=0.031250}', "");
     Expect(1, 73670, '\P{Is_Nv=0.031250}', "");
     Expect(0, 73670, '\P{^Is_Nv=0.031250}', "");
-    Error('\p{Numeric_Value=/a/	000000001/00320}');
-    Error('\P{Numeric_Value=/a/	000000001/00320}');
+    Error('\p{Numeric_Value=-:=000000001/000320}');
+    Error('\P{Numeric_Value=-:=000000001/000320}');
     Expect(1, 73684, '\p{Numeric_Value=:\A1/320\z:}', "");;
     Expect(0, 73685, '\p{Numeric_Value=:\A1/320\z:}', "");;
-    Expect(1, 73684, '\p{Numeric_Value=+1/00000320}', "");
-    Expect(0, 73684, '\p{^Numeric_Value=+1/00000320}', "");
-    Expect(0, 73684, '\P{Numeric_Value=+1/00000320}', "");
-    Expect(1, 73684, '\P{^Numeric_Value=+1/00000320}', "");
-    Expect(0, 73685, '\p{Numeric_Value=+1/00000320}', "");
-    Expect(1, 73685, '\p{^Numeric_Value=+1/00000320}', "");
-    Expect(1, 73685, '\P{Numeric_Value=+1/00000320}', "");
-    Expect(0, 73685, '\P{^Numeric_Value=+1/00000320}', "");
+    Expect(1, 73684, '\p{Numeric_Value=000000001/320}', "");
+    Expect(0, 73684, '\p{^Numeric_Value=000000001/320}', "");
+    Expect(0, 73684, '\P{Numeric_Value=000000001/320}', "");
+    Expect(1, 73684, '\P{^Numeric_Value=000000001/320}', "");
+    Expect(0, 73685, '\p{Numeric_Value=000000001/320}', "");
+    Expect(1, 73685, '\p{^Numeric_Value=000000001/320}', "");
+    Expect(1, 73685, '\P{Numeric_Value=000000001/320}', "");
+    Expect(0, 73685, '\P{^Numeric_Value=000000001/320}', "");
     Expect(1, 73684, '\p{Numeric_Value=60/19200}', "");
     Expect(0, 73684, '\p{^Numeric_Value=60/19200}', "");
     Expect(0, 73684, '\P{Numeric_Value=60/19200}', "");
@@ -70001,8 +70591,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Numeric_Value=60/19200}', "");
     Expect(1, 73685, '\P{Numeric_Value=60/19200}', "");
     Expect(0, 73685, '\P{^Numeric_Value=60/19200}', "");
-    Error('\p{Numeric_Value: 3.1e-03}');
-    Error('\P{Numeric_Value: 3.1e-03}');
+    Error('\p{Numeric_Value=3.1e-03}');
+    Error('\P{Numeric_Value=3.1e-03}');
     Error('\p{Numeric_Value=3.13e-03}');
     Error('\P{Numeric_Value=3.13e-03}');
     Expect(1, 73684, '\p{Numeric_Value=3.125e-03}', "");
@@ -70013,8 +70603,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Numeric_Value=3.125e-03}', "");
     Expect(1, 73685, '\P{Numeric_Value=3.125e-03}', "");
     Expect(0, 73685, '\P{^Numeric_Value=3.125e-03}', "");
-    Error('\p{Numeric_Value=0.003}');
-    Error('\P{Numeric_Value=0.003}');
+    Error('\p{Numeric_Value:0.003}');
+    Error('\P{Numeric_Value:0.003}');
     Expect(1, 73684, '\p{Numeric_Value=3.1250e-03}', "");
     Expect(0, 73684, '\p{^Numeric_Value=3.1250e-03}', "");
     Expect(0, 73684, '\P{Numeric_Value=3.1250e-03}', "");
@@ -70059,26 +70649,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Numeric_Value=3.1250000e-03}', "");
     Expect(1, 73685, '\P{Numeric_Value=3.1250000e-03}', "");
     Expect(0, 73685, '\P{^Numeric_Value=3.1250000e-03}', "");
-    Expect(1, 73684, '\p{Numeric_Value: 0.0031250}', "");
-    Expect(0, 73684, '\p{^Numeric_Value: 0.0031250}', "");
-    Expect(0, 73684, '\P{Numeric_Value: 0.0031250}', "");
-    Expect(1, 73684, '\P{^Numeric_Value: 0.0031250}', "");
-    Expect(0, 73685, '\p{Numeric_Value: 0.0031250}', "");
-    Expect(1, 73685, '\p{^Numeric_Value: 0.0031250}', "");
-    Expect(1, 73685, '\P{Numeric_Value: 0.0031250}', "");
-    Expect(0, 73685, '\P{^Numeric_Value: 0.0031250}', "");
-    Error('\p{Nv=:=-_0000001/000000000320}');
-    Error('\P{Nv=:=-_0000001/000000000320}');
+    Expect(1, 73684, '\p{Numeric_Value:   0.0031250}', "");
+    Expect(0, 73684, '\p{^Numeric_Value:   0.0031250}', "");
+    Expect(0, 73684, '\P{Numeric_Value:   0.0031250}', "");
+    Expect(1, 73684, '\P{^Numeric_Value:   0.0031250}', "");
+    Expect(0, 73685, '\p{Numeric_Value:   0.0031250}', "");
+    Expect(1, 73685, '\p{^Numeric_Value:   0.0031250}', "");
+    Expect(1, 73685, '\P{Numeric_Value:   0.0031250}', "");
+    Expect(0, 73685, '\P{^Numeric_Value:   0.0031250}', "");
+    Error('\p{Nv=/a/1/0000000320}');
+    Error('\P{Nv=/a/1/0000000320}');
     Expect(1, 73684, '\p{Nv=:\A1/320\z:}', "");;
     Expect(0, 73685, '\p{Nv=:\A1/320\z:}', "");;
-    Expect(1, 73684, '\p{Nv=01/0000000320}', "");
-    Expect(0, 73684, '\p{^Nv=01/0000000320}', "");
-    Expect(0, 73684, '\P{Nv=01/0000000320}', "");
-    Expect(1, 73684, '\P{^Nv=01/0000000320}', "");
-    Expect(0, 73685, '\p{Nv=01/0000000320}', "");
-    Expect(1, 73685, '\p{^Nv=01/0000000320}', "");
-    Expect(1, 73685, '\P{Nv=01/0000000320}', "");
-    Expect(0, 73685, '\P{^Nv=01/0000000320}', "");
+    Expect(1, 73684, '\p{Nv=+0000000001/320}', "");
+    Expect(0, 73684, '\p{^Nv=+0000000001/320}', "");
+    Expect(0, 73684, '\P{Nv=+0000000001/320}', "");
+    Expect(1, 73684, '\P{^Nv=+0000000001/320}', "");
+    Expect(0, 73685, '\p{Nv=+0000000001/320}', "");
+    Expect(1, 73685, '\p{^Nv=+0000000001/320}', "");
+    Expect(1, 73685, '\P{Nv=+0000000001/320}', "");
+    Expect(0, 73685, '\P{^Nv=+0000000001/320}', "");
     Expect(1, 73684, '\p{Nv=60/19200}', "");
     Expect(0, 73684, '\p{^Nv=60/19200}', "");
     Expect(0, 73684, '\P{Nv=60/19200}', "");
@@ -70111,14 +70701,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73685, '\P{^Nv=3.1250e-03}', "");
     Error('\p{Nv=0.0031}');
     Error('\P{Nv=0.0031}');
-    Expect(1, 73684, '\p{Nv:   3.12500e-03}', "");
-    Expect(0, 73684, '\p{^Nv:   3.12500e-03}', "");
-    Expect(0, 73684, '\P{Nv:   3.12500e-03}', "");
-    Expect(1, 73684, '\P{^Nv:   3.12500e-03}', "");
-    Expect(0, 73685, '\p{Nv:   3.12500e-03}', "");
-    Expect(1, 73685, '\p{^Nv:   3.12500e-03}', "");
-    Expect(1, 73685, '\P{Nv:   3.12500e-03}', "");
-    Expect(0, 73685, '\P{^Nv:   3.12500e-03}', "");
+    Expect(1, 73684, '\p{Nv=3.12500e-03}', "");
+    Expect(0, 73684, '\p{^Nv=3.12500e-03}', "");
+    Expect(0, 73684, '\P{Nv=3.12500e-03}', "");
+    Expect(1, 73684, '\P{^Nv=3.12500e-03}', "");
+    Expect(0, 73685, '\p{Nv=3.12500e-03}', "");
+    Expect(1, 73685, '\p{^Nv=3.12500e-03}', "");
+    Expect(1, 73685, '\P{Nv=3.12500e-03}', "");
+    Expect(0, 73685, '\P{^Nv=3.12500e-03}', "");
     Error('\p{Nv=0.00313}');
     Error('\P{Nv=0.00313}');
     Expect(1, 73684, '\p{Nv=3.125000e-03}', "");
@@ -70153,16 +70743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Nv=0.0031250}', "");
     Expect(1, 73685, '\P{Nv=0.0031250}', "");
     Expect(0, 73685, '\P{^Nv=0.0031250}', "");
-    Error('\p{Is_Numeric_Value=--01/00320/a/}');
-    Error('\P{Is_Numeric_Value=--01/00320/a/}');
-    Expect(1, 73684, '\p{Is_Numeric_Value=00000001/00000320}', "");
-    Expect(0, 73684, '\p{^Is_Numeric_Value=00000001/00000320}', "");
-    Expect(0, 73684, '\P{Is_Numeric_Value=00000001/00000320}', "");
-    Expect(1, 73684, '\P{^Is_Numeric_Value=00000001/00000320}', "");
-    Expect(0, 73685, '\p{Is_Numeric_Value=00000001/00000320}', "");
-    Expect(1, 73685, '\p{^Is_Numeric_Value=00000001/00000320}', "");
-    Expect(1, 73685, '\P{Is_Numeric_Value=00000001/00000320}', "");
-    Expect(0, 73685, '\P{^Is_Numeric_Value=00000001/00000320}', "");
+    Error('\p{Is_Numeric_Value=/a/  00000001/000000320}');
+    Error('\P{Is_Numeric_Value=/a/  00000001/000000320}');
+    Expect(1, 73684, '\p{Is_Numeric_Value=+000001/000320}', "");
+    Expect(0, 73684, '\p{^Is_Numeric_Value=+000001/000320}', "");
+    Expect(0, 73684, '\P{Is_Numeric_Value=+000001/000320}', "");
+    Expect(1, 73684, '\P{^Is_Numeric_Value=+000001/000320}', "");
+    Expect(0, 73685, '\p{Is_Numeric_Value=+000001/000320}', "");
+    Expect(1, 73685, '\p{^Is_Numeric_Value=+000001/000320}', "");
+    Expect(1, 73685, '\P{Is_Numeric_Value=+000001/000320}', "");
+    Expect(0, 73685, '\P{^Is_Numeric_Value=+000001/000320}', "");
     Expect(1, 73684, '\p{Is_Numeric_Value=60/19200}', "");
     Expect(0, 73684, '\p{^Is_Numeric_Value=60/19200}', "");
     Expect(0, 73684, '\P{Is_Numeric_Value=60/19200}', "");
@@ -70183,8 +70773,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Is_Numeric_Value=3.125e-03}', "");
     Expect(1, 73685, '\P{Is_Numeric_Value=3.125e-03}', "");
     Expect(0, 73685, '\P{^Is_Numeric_Value=3.125e-03}', "");
-    Error('\p{Is_Numeric_Value=0.003}');
-    Error('\P{Is_Numeric_Value=0.003}');
+    Error('\p{Is_Numeric_Value:   0.003}');
+    Error('\P{Is_Numeric_Value:   0.003}');
     Expect(1, 73684, '\p{Is_Numeric_Value=3.1250e-03}', "");
     Expect(0, 73684, '\p{^Is_Numeric_Value=3.1250e-03}', "");
     Expect(0, 73684, '\P{Is_Numeric_Value=3.1250e-03}', "");
@@ -70203,8 +70793,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Is_Numeric_Value=3.12500e-03}', "");
     Expect(1, 73685, '\P{Is_Numeric_Value=3.12500e-03}', "");
     Expect(0, 73685, '\P{^Is_Numeric_Value=3.12500e-03}', "");
-    Error('\p{Is_Numeric_Value=0.00313}');
-    Error('\P{Is_Numeric_Value=0.00313}');
+    Error('\p{Is_Numeric_Value:	0.00313}');
+    Error('\P{Is_Numeric_Value:	0.00313}');
     Expect(1, 73684, '\p{Is_Numeric_Value=3.125000e-03}', "");
     Expect(0, 73684, '\p{^Is_Numeric_Value=3.125000e-03}', "");
     Expect(0, 73684, '\P{Is_Numeric_Value=3.125000e-03}', "");
@@ -70237,16 +70827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Is_Numeric_Value=0.0031250}', "");
     Expect(1, 73685, '\P{Is_Numeric_Value=0.0031250}', "");
     Expect(0, 73685, '\P{^Is_Numeric_Value=0.0031250}', "");
-    Error('\p{Is_Nv=_:=01/320}');
-    Error('\P{Is_Nv=_:=01/320}');
-    Expect(1, 73684, '\p{Is_Nv: +0000001/000320}', "");
-    Expect(0, 73684, '\p{^Is_Nv: +0000001/000320}', "");
-    Expect(0, 73684, '\P{Is_Nv: +0000001/000320}', "");
-    Expect(1, 73684, '\P{^Is_Nv: +0000001/000320}', "");
-    Expect(0, 73685, '\p{Is_Nv: +0000001/000320}', "");
-    Expect(1, 73685, '\p{^Is_Nv: +0000001/000320}', "");
-    Expect(1, 73685, '\P{Is_Nv: +0000001/000320}', "");
-    Expect(0, 73685, '\P{^Is_Nv: +0000001/000320}', "");
+    Error('\p{Is_Nv:  _0000000001/000320/a/}');
+    Error('\P{Is_Nv:  _0000000001/000320/a/}');
+    Expect(1, 73684, '\p{Is_Nv=1/00000000320}', "");
+    Expect(0, 73684, '\p{^Is_Nv=1/00000000320}', "");
+    Expect(0, 73684, '\P{Is_Nv=1/00000000320}', "");
+    Expect(1, 73684, '\P{^Is_Nv=1/00000000320}', "");
+    Expect(0, 73685, '\p{Is_Nv=1/00000000320}', "");
+    Expect(1, 73685, '\p{^Is_Nv=1/00000000320}', "");
+    Expect(1, 73685, '\P{Is_Nv=1/00000000320}', "");
+    Expect(0, 73685, '\P{^Is_Nv=1/00000000320}', "");
     Expect(1, 73684, '\p{Is_Nv=60/19200}', "");
     Expect(0, 73684, '\p{^Is_Nv=60/19200}', "");
     Expect(0, 73684, '\P{Is_Nv=60/19200}', "");
@@ -70257,8 +70847,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73685, '\P{^Is_Nv=60/19200}', "");
     Error('\p{Is_Nv=3.1e-03}');
     Error('\P{Is_Nv=3.1e-03}');
-    Error('\p{Is_Nv:   3.13e-03}');
-    Error('\P{Is_Nv:   3.13e-03}');
+    Error('\p{Is_Nv=3.13e-03}');
+    Error('\P{Is_Nv=3.13e-03}');
     Expect(1, 73684, '\p{Is_Nv=3.125e-03}', "");
     Expect(0, 73684, '\p{^Is_Nv=3.125e-03}', "");
     Expect(0, 73684, '\P{Is_Nv=3.125e-03}', "");
@@ -70269,24 +70859,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73685, '\P{^Is_Nv=3.125e-03}', "");
     Error('\p{Is_Nv=0.003}');
     Error('\P{Is_Nv=0.003}');
-    Expect(1, 73684, '\p{Is_Nv:3.1250e-03}', "");
-    Expect(0, 73684, '\p{^Is_Nv:3.1250e-03}', "");
-    Expect(0, 73684, '\P{Is_Nv:3.1250e-03}', "");
-    Expect(1, 73684, '\P{^Is_Nv:3.1250e-03}', "");
-    Expect(0, 73685, '\p{Is_Nv:3.1250e-03}', "");
-    Expect(1, 73685, '\p{^Is_Nv:3.1250e-03}', "");
-    Expect(1, 73685, '\P{Is_Nv:3.1250e-03}', "");
-    Expect(0, 73685, '\P{^Is_Nv:3.1250e-03}', "");
+    Expect(1, 73684, '\p{Is_Nv=3.1250e-03}', "");
+    Expect(0, 73684, '\p{^Is_Nv=3.1250e-03}', "");
+    Expect(0, 73684, '\P{Is_Nv=3.1250e-03}', "");
+    Expect(1, 73684, '\P{^Is_Nv=3.1250e-03}', "");
+    Expect(0, 73685, '\p{Is_Nv=3.1250e-03}', "");
+    Expect(1, 73685, '\p{^Is_Nv=3.1250e-03}', "");
+    Expect(1, 73685, '\P{Is_Nv=3.1250e-03}', "");
+    Expect(0, 73685, '\P{^Is_Nv=3.1250e-03}', "");
     Error('\p{Is_Nv=0.0031}');
     Error('\P{Is_Nv=0.0031}');
-    Expect(1, 73684, '\p{Is_Nv=3.12500e-03}', "");
-    Expect(0, 73684, '\p{^Is_Nv=3.12500e-03}', "");
-    Expect(0, 73684, '\P{Is_Nv=3.12500e-03}', "");
-    Expect(1, 73684, '\P{^Is_Nv=3.12500e-03}', "");
-    Expect(0, 73685, '\p{Is_Nv=3.12500e-03}', "");
-    Expect(1, 73685, '\p{^Is_Nv=3.12500e-03}', "");
-    Expect(1, 73685, '\P{Is_Nv=3.12500e-03}', "");
-    Expect(0, 73685, '\P{^Is_Nv=3.12500e-03}', "");
+    Expect(1, 73684, '\p{Is_Nv:3.12500e-03}', "");
+    Expect(0, 73684, '\p{^Is_Nv:3.12500e-03}', "");
+    Expect(0, 73684, '\P{Is_Nv:3.12500e-03}', "");
+    Expect(1, 73684, '\P{^Is_Nv:3.12500e-03}', "");
+    Expect(0, 73685, '\p{Is_Nv:3.12500e-03}', "");
+    Expect(1, 73685, '\p{^Is_Nv:3.12500e-03}', "");
+    Expect(1, 73685, '\P{Is_Nv:3.12500e-03}', "");
+    Expect(0, 73685, '\P{^Is_Nv:3.12500e-03}', "");
     Error('\p{Is_Nv=0.00313}');
     Error('\P{Is_Nv=0.00313}');
     Expect(1, 73684, '\p{Is_Nv=3.125000e-03}', "");
@@ -70321,18 +70911,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73685, '\p{^Is_Nv=0.0031250}', "");
     Expect(1, 73685, '\P{Is_Nv=0.0031250}', "");
     Expect(0, 73685, '\P{^Is_Nv=0.0031250}', "");
-    Error('\p{Numeric_Value=	/a/001/00004}');
-    Error('\P{Numeric_Value=	/a/001/00004}');
+    Error('\p{Numeric_Value=  000000001/00000004:=}');
+    Error('\P{Numeric_Value=  000000001/00000004:=}');
     Expect(1, 126125, '\p{Numeric_Value=:\A1/4\z:}', "");;
     Expect(0, 126126, '\p{Numeric_Value=:\A1/4\z:}', "");;
-    Expect(1, 126125, '\p{Numeric_Value=+000001/000000004}', "");
-    Expect(0, 126125, '\p{^Numeric_Value=+000001/000000004}', "");
-    Expect(0, 126125, '\P{Numeric_Value=+000001/000000004}', "");
-    Expect(1, 126125, '\P{^Numeric_Value=+000001/000000004}', "");
-    Expect(0, 126126, '\p{Numeric_Value=+000001/000000004}', "");
-    Expect(1, 126126, '\p{^Numeric_Value=+000001/000000004}', "");
-    Expect(1, 126126, '\P{Numeric_Value=+000001/000000004}', "");
-    Expect(0, 126126, '\P{^Numeric_Value=+000001/000000004}', "");
+    Expect(1, 126125, '\p{Numeric_Value=+01/4}', "");
+    Expect(0, 126125, '\p{^Numeric_Value=+01/4}', "");
+    Expect(0, 126125, '\P{Numeric_Value=+01/4}', "");
+    Expect(1, 126125, '\P{^Numeric_Value=+01/4}', "");
+    Expect(0, 126126, '\p{Numeric_Value=+01/4}', "");
+    Expect(1, 126126, '\p{^Numeric_Value=+01/4}', "");
+    Expect(1, 126126, '\P{Numeric_Value=+01/4}', "");
+    Expect(0, 126126, '\P{^Numeric_Value=+01/4}', "");
     Expect(1, 126125, '\p{Numeric_Value=60/240}', "");
     Expect(0, 126125, '\p{^Numeric_Value=60/240}', "");
     Expect(0, 126125, '\P{Numeric_Value=60/240}', "");
@@ -70349,14 +70939,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Numeric_Value=2.5e-01}', "");
     Expect(1, 126126, '\P{Numeric_Value=2.5e-01}', "");
     Expect(0, 126126, '\P{^Numeric_Value=2.5e-01}', "");
-    Expect(1, 126125, '\p{Numeric_Value=2.50e-01}', "");
-    Expect(0, 126125, '\p{^Numeric_Value=2.50e-01}', "");
-    Expect(0, 126125, '\P{Numeric_Value=2.50e-01}', "");
-    Expect(1, 126125, '\P{^Numeric_Value=2.50e-01}', "");
-    Expect(0, 126126, '\p{Numeric_Value=2.50e-01}', "");
-    Expect(1, 126126, '\p{^Numeric_Value=2.50e-01}', "");
-    Expect(1, 126126, '\P{Numeric_Value=2.50e-01}', "");
-    Expect(0, 126126, '\P{^Numeric_Value=2.50e-01}', "");
+    Expect(1, 126125, '\p{Numeric_Value:   2.50e-01}', "");
+    Expect(0, 126125, '\p{^Numeric_Value:   2.50e-01}', "");
+    Expect(0, 126125, '\P{Numeric_Value:   2.50e-01}', "");
+    Expect(1, 126125, '\P{^Numeric_Value:   2.50e-01}', "");
+    Expect(0, 126126, '\p{Numeric_Value:   2.50e-01}', "");
+    Expect(1, 126126, '\p{^Numeric_Value:   2.50e-01}', "");
+    Expect(1, 126126, '\P{Numeric_Value:   2.50e-01}', "");
+    Expect(0, 126126, '\P{^Numeric_Value:   2.50e-01}', "");
     Expect(1, 126125, '\p{Numeric_Value=0.25}', "");
     Expect(0, 126125, '\p{^Numeric_Value=0.25}', "");
     Expect(0, 126125, '\P{Numeric_Value=0.25}', "");
@@ -70373,34 +70963,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Numeric_Value=2.500e-01}', "");
     Expect(1, 126126, '\P{Numeric_Value=2.500e-01}', "");
     Expect(0, 126126, '\P{^Numeric_Value=2.500e-01}', "");
-    Expect(1, 126125, '\p{Numeric_Value=0.250}', "");
-    Expect(0, 126125, '\p{^Numeric_Value=0.250}', "");
-    Expect(0, 126125, '\P{Numeric_Value=0.250}', "");
-    Expect(1, 126125, '\P{^Numeric_Value=0.250}', "");
-    Expect(0, 126126, '\p{Numeric_Value=0.250}', "");
-    Expect(1, 126126, '\p{^Numeric_Value=0.250}', "");
-    Expect(1, 126126, '\P{Numeric_Value=0.250}', "");
-    Expect(0, 126126, '\P{^Numeric_Value=0.250}', "");
-    Error('\p{Nv=_-01/000000004/a/}');
-    Error('\P{Nv=_-01/000000004/a/}');
+    Expect(1, 126125, '\p{Numeric_Value:   0.250}', "");
+    Expect(0, 126125, '\p{^Numeric_Value:   0.250}', "");
+    Expect(0, 126125, '\P{Numeric_Value:   0.250}', "");
+    Expect(1, 126125, '\P{^Numeric_Value:   0.250}', "");
+    Expect(0, 126126, '\p{Numeric_Value:   0.250}', "");
+    Expect(1, 126126, '\p{^Numeric_Value:   0.250}', "");
+    Expect(1, 126126, '\P{Numeric_Value:   0.250}', "");
+    Expect(0, 126126, '\P{^Numeric_Value:   0.250}', "");
+    Error('\p{Nv=_/a/01/0000004}');
+    Error('\P{Nv=_/a/01/0000004}');
     Expect(1, 126125, '\p{Nv=:\A1/4\z:}', "");;
     Expect(0, 126126, '\p{Nv=:\A1/4\z:}', "");;
-    Expect(1, 126125, '\p{Nv=+0001/0000004}', "");
-    Expect(0, 126125, '\p{^Nv=+0001/0000004}', "");
-    Expect(0, 126125, '\P{Nv=+0001/0000004}', "");
-    Expect(1, 126125, '\P{^Nv=+0001/0000004}', "");
-    Expect(0, 126126, '\p{Nv=+0001/0000004}', "");
-    Expect(1, 126126, '\p{^Nv=+0001/0000004}', "");
-    Expect(1, 126126, '\P{Nv=+0001/0000004}', "");
-    Expect(0, 126126, '\P{^Nv=+0001/0000004}', "");
-    Expect(1, 126125, '\p{Nv=60/240}', "");
-    Expect(0, 126125, '\p{^Nv=60/240}', "");
-    Expect(0, 126125, '\P{Nv=60/240}', "");
-    Expect(1, 126125, '\P{^Nv=60/240}', "");
-    Expect(0, 126126, '\p{Nv=60/240}', "");
-    Expect(1, 126126, '\p{^Nv=60/240}', "");
-    Expect(1, 126126, '\P{Nv=60/240}', "");
-    Expect(0, 126126, '\P{^Nv=60/240}', "");
+    Expect(1, 126125, '\p{Nv=0000000001/0000004}', "");
+    Expect(0, 126125, '\p{^Nv=0000000001/0000004}', "");
+    Expect(0, 126125, '\P{Nv=0000000001/0000004}', "");
+    Expect(1, 126125, '\P{^Nv=0000000001/0000004}', "");
+    Expect(0, 126126, '\p{Nv=0000000001/0000004}', "");
+    Expect(1, 126126, '\p{^Nv=0000000001/0000004}', "");
+    Expect(1, 126126, '\P{Nv=0000000001/0000004}', "");
+    Expect(0, 126126, '\P{^Nv=0000000001/0000004}', "");
+    Expect(1, 126125, '\p{Nv:   60/240}', "");
+    Expect(0, 126125, '\p{^Nv:   60/240}', "");
+    Expect(0, 126125, '\P{Nv:   60/240}', "");
+    Expect(1, 126125, '\P{^Nv:   60/240}', "");
+    Expect(0, 126126, '\p{Nv:   60/240}', "");
+    Expect(1, 126126, '\p{^Nv:   60/240}', "");
+    Expect(1, 126126, '\P{Nv:   60/240}', "");
+    Expect(0, 126126, '\P{^Nv:   60/240}', "");
     Expect(1, 126125, '\p{Nv=2.5e-01}', "");
     Expect(0, 126125, '\p{^Nv=2.5e-01}', "");
     Expect(0, 126125, '\P{Nv=2.5e-01}', "");
@@ -70409,14 +70999,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Nv=2.5e-01}', "");
     Expect(1, 126126, '\P{Nv=2.5e-01}', "");
     Expect(0, 126126, '\P{^Nv=2.5e-01}', "");
-    Expect(1, 126125, '\p{Nv:2.50e-01}', "");
-    Expect(0, 126125, '\p{^Nv:2.50e-01}', "");
-    Expect(0, 126125, '\P{Nv:2.50e-01}', "");
-    Expect(1, 126125, '\P{^Nv:2.50e-01}', "");
-    Expect(0, 126126, '\p{Nv:2.50e-01}', "");
-    Expect(1, 126126, '\p{^Nv:2.50e-01}', "");
-    Expect(1, 126126, '\P{Nv:2.50e-01}', "");
-    Expect(0, 126126, '\P{^Nv:2.50e-01}', "");
+    Expect(1, 126125, '\p{Nv=2.50e-01}', "");
+    Expect(0, 126125, '\p{^Nv=2.50e-01}', "");
+    Expect(0, 126125, '\P{Nv=2.50e-01}', "");
+    Expect(1, 126125, '\P{^Nv=2.50e-01}', "");
+    Expect(0, 126126, '\p{Nv=2.50e-01}', "");
+    Expect(1, 126126, '\p{^Nv=2.50e-01}', "");
+    Expect(1, 126126, '\P{Nv=2.50e-01}', "");
+    Expect(0, 126126, '\P{^Nv=2.50e-01}', "");
     Expect(1, 126125, '\p{Nv=0.25}', "");
     Expect(0, 126125, '\p{^Nv=0.25}', "");
     Expect(0, 126125, '\P{Nv=0.25}', "");
@@ -70425,14 +71015,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Nv=0.25}', "");
     Expect(1, 126126, '\P{Nv=0.25}', "");
     Expect(0, 126126, '\P{^Nv=0.25}', "");
-    Expect(1, 126125, '\p{Nv=2.500e-01}', "");
-    Expect(0, 126125, '\p{^Nv=2.500e-01}', "");
-    Expect(0, 126125, '\P{Nv=2.500e-01}', "");
-    Expect(1, 126125, '\P{^Nv=2.500e-01}', "");
-    Expect(0, 126126, '\p{Nv=2.500e-01}', "");
-    Expect(1, 126126, '\p{^Nv=2.500e-01}', "");
-    Expect(1, 126126, '\P{Nv=2.500e-01}', "");
-    Expect(0, 126126, '\P{^Nv=2.500e-01}', "");
+    Expect(1, 126125, '\p{Nv: 2.500e-01}', "");
+    Expect(0, 126125, '\p{^Nv: 2.500e-01}', "");
+    Expect(0, 126125, '\P{Nv: 2.500e-01}', "");
+    Expect(1, 126125, '\P{^Nv: 2.500e-01}', "");
+    Expect(0, 126126, '\p{Nv: 2.500e-01}', "");
+    Expect(1, 126126, '\p{^Nv: 2.500e-01}', "");
+    Expect(1, 126126, '\P{Nv: 2.500e-01}', "");
+    Expect(0, 126126, '\P{^Nv: 2.500e-01}', "");
     Expect(1, 126125, '\p{Nv=0.250}', "");
     Expect(0, 126125, '\p{^Nv=0.250}', "");
     Expect(0, 126125, '\P{Nv=0.250}', "");
@@ -70441,32 +71031,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Nv=0.250}', "");
     Expect(1, 126126, '\P{Nv=0.250}', "");
     Expect(0, 126126, '\P{^Nv=0.250}', "");
-    Error('\p{Is_Numeric_Value=	:=1/04}');
-    Error('\P{Is_Numeric_Value=	:=1/04}');
-    Expect(1, 126125, '\p{Is_Numeric_Value: 000000001/04}', "");
-    Expect(0, 126125, '\p{^Is_Numeric_Value: 000000001/04}', "");
-    Expect(0, 126125, '\P{Is_Numeric_Value: 000000001/04}', "");
-    Expect(1, 126125, '\P{^Is_Numeric_Value: 000000001/04}', "");
-    Expect(0, 126126, '\p{Is_Numeric_Value: 000000001/04}', "");
-    Expect(1, 126126, '\p{^Is_Numeric_Value: 000000001/04}', "");
-    Expect(1, 126126, '\P{Is_Numeric_Value: 000000001/04}', "");
-    Expect(0, 126126, '\P{^Is_Numeric_Value: 000000001/04}', "");
-    Expect(1, 126125, '\p{Is_Numeric_Value=60/240}', "");
-    Expect(0, 126125, '\p{^Is_Numeric_Value=60/240}', "");
-    Expect(0, 126125, '\P{Is_Numeric_Value=60/240}', "");
-    Expect(1, 126125, '\P{^Is_Numeric_Value=60/240}', "");
-    Expect(0, 126126, '\p{Is_Numeric_Value=60/240}', "");
-    Expect(1, 126126, '\p{^Is_Numeric_Value=60/240}', "");
-    Expect(1, 126126, '\P{Is_Numeric_Value=60/240}', "");
-    Expect(0, 126126, '\P{^Is_Numeric_Value=60/240}', "");
-    Expect(1, 126125, '\p{Is_Numeric_Value=2.5e-01}', "");
-    Expect(0, 126125, '\p{^Is_Numeric_Value=2.5e-01}', "");
-    Expect(0, 126125, '\P{Is_Numeric_Value=2.5e-01}', "");
-    Expect(1, 126125, '\P{^Is_Numeric_Value=2.5e-01}', "");
-    Expect(0, 126126, '\p{Is_Numeric_Value=2.5e-01}', "");
-    Expect(1, 126126, '\p{^Is_Numeric_Value=2.5e-01}', "");
-    Expect(1, 126126, '\P{Is_Numeric_Value=2.5e-01}', "");
-    Expect(0, 126126, '\P{^Is_Numeric_Value=2.5e-01}', "");
+    Error('\p{Is_Numeric_Value=_ 01/0004/a/}');
+    Error('\P{Is_Numeric_Value=_ 01/0004/a/}');
+    Expect(1, 126125, '\p{Is_Numeric_Value=0001/004}', "");
+    Expect(0, 126125, '\p{^Is_Numeric_Value=0001/004}', "");
+    Expect(0, 126125, '\P{Is_Numeric_Value=0001/004}', "");
+    Expect(1, 126125, '\P{^Is_Numeric_Value=0001/004}', "");
+    Expect(0, 126126, '\p{Is_Numeric_Value=0001/004}', "");
+    Expect(1, 126126, '\p{^Is_Numeric_Value=0001/004}', "");
+    Expect(1, 126126, '\P{Is_Numeric_Value=0001/004}', "");
+    Expect(0, 126126, '\P{^Is_Numeric_Value=0001/004}', "");
+    Expect(1, 126125, '\p{Is_Numeric_Value: 60/240}', "");
+    Expect(0, 126125, '\p{^Is_Numeric_Value: 60/240}', "");
+    Expect(0, 126125, '\P{Is_Numeric_Value: 60/240}', "");
+    Expect(1, 126125, '\P{^Is_Numeric_Value: 60/240}', "");
+    Expect(0, 126126, '\p{Is_Numeric_Value: 60/240}', "");
+    Expect(1, 126126, '\p{^Is_Numeric_Value: 60/240}', "");
+    Expect(1, 126126, '\P{Is_Numeric_Value: 60/240}', "");
+    Expect(0, 126126, '\P{^Is_Numeric_Value: 60/240}', "");
+    Expect(1, 126125, '\p{Is_Numeric_Value: 2.5e-01}', "");
+    Expect(0, 126125, '\p{^Is_Numeric_Value: 2.5e-01}', "");
+    Expect(0, 126125, '\P{Is_Numeric_Value: 2.5e-01}', "");
+    Expect(1, 126125, '\P{^Is_Numeric_Value: 2.5e-01}', "");
+    Expect(0, 126126, '\p{Is_Numeric_Value: 2.5e-01}', "");
+    Expect(1, 126126, '\p{^Is_Numeric_Value: 2.5e-01}', "");
+    Expect(1, 126126, '\P{Is_Numeric_Value: 2.5e-01}', "");
+    Expect(0, 126126, '\P{^Is_Numeric_Value: 2.5e-01}', "");
     Expect(1, 126125, '\p{Is_Numeric_Value=2.50e-01}', "");
     Expect(0, 126125, '\p{^Is_Numeric_Value=2.50e-01}', "");
     Expect(0, 126125, '\P{Is_Numeric_Value=2.50e-01}', "");
@@ -70499,16 +71089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Is_Numeric_Value=0.250}', "");
     Expect(1, 126126, '\P{Is_Numeric_Value=0.250}', "");
     Expect(0, 126126, '\P{^Is_Numeric_Value=0.250}', "");
-    Error('\p{Is_Nv=/a/	 00000001/000004}');
-    Error('\P{Is_Nv=/a/	 00000001/000004}');
-    Expect(1, 126125, '\p{Is_Nv=+000000001/000004}', "");
-    Expect(0, 126125, '\p{^Is_Nv=+000000001/000004}', "");
-    Expect(0, 126125, '\P{Is_Nv=+000000001/000004}', "");
-    Expect(1, 126125, '\P{^Is_Nv=+000000001/000004}', "");
-    Expect(0, 126126, '\p{Is_Nv=+000000001/000004}', "");
-    Expect(1, 126126, '\p{^Is_Nv=+000000001/000004}', "");
-    Expect(1, 126126, '\P{Is_Nv=+000000001/000004}', "");
-    Expect(0, 126126, '\P{^Is_Nv=+000000001/000004}', "");
+    Error('\p{Is_Nv:    /a/+00000001/000000004}');
+    Error('\P{Is_Nv:    /a/+00000001/000000004}');
+    Expect(1, 126125, '\p{Is_Nv=00001/0000004}', "");
+    Expect(0, 126125, '\p{^Is_Nv=00001/0000004}', "");
+    Expect(0, 126125, '\P{Is_Nv=00001/0000004}', "");
+    Expect(1, 126125, '\P{^Is_Nv=00001/0000004}', "");
+    Expect(0, 126126, '\p{Is_Nv=00001/0000004}', "");
+    Expect(1, 126126, '\p{^Is_Nv=00001/0000004}', "");
+    Expect(1, 126126, '\P{Is_Nv=00001/0000004}', "");
+    Expect(0, 126126, '\P{^Is_Nv=00001/0000004}', "");
     Expect(1, 126125, '\p{Is_Nv=60/240}', "");
     Expect(0, 126125, '\p{^Is_Nv=60/240}', "");
     Expect(0, 126125, '\P{Is_Nv=60/240}', "");
@@ -70517,14 +71107,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Is_Nv=60/240}', "");
     Expect(1, 126126, '\P{Is_Nv=60/240}', "");
     Expect(0, 126126, '\P{^Is_Nv=60/240}', "");
-    Expect(1, 126125, '\p{Is_Nv:2.5e-01}', "");
-    Expect(0, 126125, '\p{^Is_Nv:2.5e-01}', "");
-    Expect(0, 126125, '\P{Is_Nv:2.5e-01}', "");
-    Expect(1, 126125, '\P{^Is_Nv:2.5e-01}', "");
-    Expect(0, 126126, '\p{Is_Nv:2.5e-01}', "");
-    Expect(1, 126126, '\p{^Is_Nv:2.5e-01}', "");
-    Expect(1, 126126, '\P{Is_Nv:2.5e-01}', "");
-    Expect(0, 126126, '\P{^Is_Nv:2.5e-01}', "");
+    Expect(1, 126125, '\p{Is_Nv=2.5e-01}', "");
+    Expect(0, 126125, '\p{^Is_Nv=2.5e-01}', "");
+    Expect(0, 126125, '\P{Is_Nv=2.5e-01}', "");
+    Expect(1, 126125, '\P{^Is_Nv=2.5e-01}', "");
+    Expect(0, 126126, '\p{Is_Nv=2.5e-01}', "");
+    Expect(1, 126126, '\p{^Is_Nv=2.5e-01}', "");
+    Expect(1, 126126, '\P{Is_Nv=2.5e-01}', "");
+    Expect(0, 126126, '\P{^Is_Nv=2.5e-01}', "");
     Expect(1, 126125, '\p{Is_Nv=2.50e-01}', "");
     Expect(0, 126125, '\p{^Is_Nv=2.50e-01}', "");
     Expect(0, 126125, '\P{Is_Nv=2.50e-01}', "");
@@ -70549,42 +71139,42 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126126, '\p{^Is_Nv=2.500e-01}', "");
     Expect(1, 126126, '\P{Is_Nv=2.500e-01}', "");
     Expect(0, 126126, '\P{^Is_Nv=2.500e-01}', "");
-    Expect(1, 126125, '\p{Is_Nv:0.250}', "");
-    Expect(0, 126125, '\p{^Is_Nv:0.250}', "");
-    Expect(0, 126125, '\P{Is_Nv:0.250}', "");
-    Expect(1, 126125, '\P{^Is_Nv:0.250}', "");
-    Expect(0, 126126, '\p{Is_Nv:0.250}', "");
-    Expect(1, 126126, '\p{^Is_Nv:0.250}', "");
-    Expect(1, 126126, '\P{Is_Nv:0.250}', "");
-    Expect(0, 126126, '\P{^Is_Nv:0.250}', "");
-    Error('\p{Numeric_Value=-:=00001/00040}');
-    Error('\P{Numeric_Value=-:=00001/00040}');
+    Expect(1, 126125, '\p{Is_Nv=0.250}', "");
+    Expect(0, 126125, '\p{^Is_Nv=0.250}', "");
+    Expect(0, 126125, '\P{Is_Nv=0.250}', "");
+    Expect(1, 126125, '\P{^Is_Nv=0.250}', "");
+    Expect(0, 126126, '\p{Is_Nv=0.250}', "");
+    Expect(1, 126126, '\p{^Is_Nv=0.250}', "");
+    Expect(1, 126126, '\P{Is_Nv=0.250}', "");
+    Expect(0, 126126, '\P{^Is_Nv=0.250}', "");
+    Error('\p{Numeric_Value=/a/+0000001/040}');
+    Error('\P{Numeric_Value=/a/+0000001/040}');
     Expect(1, 73668, '\p{Numeric_Value=:\A1/40\z:}', "");;
     Expect(0, 73669, '\p{Numeric_Value=:\A1/40\z:}', "");;
-    Expect(1, 73668, '\p{Numeric_Value=00000001/00000000040}', "");
-    Expect(0, 73668, '\p{^Numeric_Value=00000001/00000000040}', "");
-    Expect(0, 73668, '\P{Numeric_Value=00000001/00000000040}', "");
-    Expect(1, 73668, '\P{^Numeric_Value=00000001/00000000040}', "");
-    Expect(0, 73669, '\p{Numeric_Value=00000001/00000000040}', "");
-    Expect(1, 73669, '\p{^Numeric_Value=00000001/00000000040}', "");
-    Expect(1, 73669, '\P{Numeric_Value=00000001/00000000040}', "");
-    Expect(0, 73669, '\P{^Numeric_Value=00000001/00000000040}', "");
-    Expect(1, 73668, '\p{Numeric_Value=60/2400}', "");
-    Expect(0, 73668, '\p{^Numeric_Value=60/2400}', "");
-    Expect(0, 73668, '\P{Numeric_Value=60/2400}', "");
-    Expect(1, 73668, '\P{^Numeric_Value=60/2400}', "");
-    Expect(0, 73669, '\p{Numeric_Value=60/2400}', "");
-    Expect(1, 73669, '\p{^Numeric_Value=60/2400}', "");
-    Expect(1, 73669, '\P{Numeric_Value=60/2400}', "");
-    Expect(0, 73669, '\P{^Numeric_Value=60/2400}', "");
-    Expect(1, 73668, '\p{Numeric_Value:2.5e-02}', "");
-    Expect(0, 73668, '\p{^Numeric_Value:2.5e-02}', "");
-    Expect(0, 73668, '\P{Numeric_Value:2.5e-02}', "");
-    Expect(1, 73668, '\P{^Numeric_Value:2.5e-02}', "");
-    Expect(0, 73669, '\p{Numeric_Value:2.5e-02}', "");
-    Expect(1, 73669, '\p{^Numeric_Value:2.5e-02}', "");
-    Expect(1, 73669, '\P{Numeric_Value:2.5e-02}', "");
-    Expect(0, 73669, '\P{^Numeric_Value:2.5e-02}', "");
+    Expect(1, 73668, '\p{Numeric_Value=00000001/0000040}', "");
+    Expect(0, 73668, '\p{^Numeric_Value=00000001/0000040}', "");
+    Expect(0, 73668, '\P{Numeric_Value=00000001/0000040}', "");
+    Expect(1, 73668, '\P{^Numeric_Value=00000001/0000040}', "");
+    Expect(0, 73669, '\p{Numeric_Value=00000001/0000040}', "");
+    Expect(1, 73669, '\p{^Numeric_Value=00000001/0000040}', "");
+    Expect(1, 73669, '\P{Numeric_Value=00000001/0000040}', "");
+    Expect(0, 73669, '\P{^Numeric_Value=00000001/0000040}', "");
+    Expect(1, 73668, '\p{Numeric_Value:	60/2400}', "");
+    Expect(0, 73668, '\p{^Numeric_Value:	60/2400}', "");
+    Expect(0, 73668, '\P{Numeric_Value:	60/2400}', "");
+    Expect(1, 73668, '\P{^Numeric_Value:	60/2400}', "");
+    Expect(0, 73669, '\p{Numeric_Value:	60/2400}', "");
+    Expect(1, 73669, '\p{^Numeric_Value:	60/2400}', "");
+    Expect(1, 73669, '\P{Numeric_Value:	60/2400}', "");
+    Expect(0, 73669, '\P{^Numeric_Value:	60/2400}', "");
+    Expect(1, 73668, '\p{Numeric_Value=2.5e-02}', "");
+    Expect(0, 73668, '\p{^Numeric_Value=2.5e-02}', "");
+    Expect(0, 73668, '\P{Numeric_Value=2.5e-02}', "");
+    Expect(1, 73668, '\P{^Numeric_Value=2.5e-02}', "");
+    Expect(0, 73669, '\p{Numeric_Value=2.5e-02}', "");
+    Expect(1, 73669, '\p{^Numeric_Value=2.5e-02}', "");
+    Expect(1, 73669, '\P{Numeric_Value=2.5e-02}', "");
+    Expect(0, 73669, '\P{^Numeric_Value=2.5e-02}', "");
     Expect(1, 73668, '\p{Numeric_Value=2.50e-02}', "");
     Expect(0, 73668, '\p{^Numeric_Value=2.50e-02}', "");
     Expect(0, 73668, '\P{Numeric_Value=2.50e-02}', "");
@@ -70611,14 +71201,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Numeric_Value=0.025}', "");
     Expect(1, 73669, '\P{Numeric_Value=0.025}', "");
     Expect(0, 73669, '\P{^Numeric_Value=0.025}', "");
-    Expect(1, 73668, '\p{Numeric_Value:	2.5000e-02}', "");
-    Expect(0, 73668, '\p{^Numeric_Value:	2.5000e-02}', "");
-    Expect(0, 73668, '\P{Numeric_Value:	2.5000e-02}', "");
-    Expect(1, 73668, '\P{^Numeric_Value:	2.5000e-02}', "");
-    Expect(0, 73669, '\p{Numeric_Value:	2.5000e-02}', "");
-    Expect(1, 73669, '\p{^Numeric_Value:	2.5000e-02}', "");
-    Expect(1, 73669, '\P{Numeric_Value:	2.5000e-02}', "");
-    Expect(0, 73669, '\P{^Numeric_Value:	2.5000e-02}', "");
+    Expect(1, 73668, '\p{Numeric_Value=2.5000e-02}', "");
+    Expect(0, 73668, '\p{^Numeric_Value=2.5000e-02}', "");
+    Expect(0, 73668, '\P{Numeric_Value=2.5000e-02}', "");
+    Expect(1, 73668, '\P{^Numeric_Value=2.5000e-02}', "");
+    Expect(0, 73669, '\p{Numeric_Value=2.5000e-02}', "");
+    Expect(1, 73669, '\p{^Numeric_Value=2.5000e-02}', "");
+    Expect(1, 73669, '\P{Numeric_Value=2.5000e-02}', "");
+    Expect(0, 73669, '\P{^Numeric_Value=2.5000e-02}', "");
     Expect(1, 73668, '\p{Numeric_Value=0.0250}', "");
     Expect(0, 73668, '\p{^Numeric_Value=0.0250}', "");
     Expect(0, 73668, '\P{Numeric_Value=0.0250}', "");
@@ -70627,18 +71217,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Numeric_Value=0.0250}', "");
     Expect(1, 73669, '\P{Numeric_Value=0.0250}', "");
     Expect(0, 73669, '\P{^Numeric_Value=0.0250}', "");
-    Error('\p{Nv=:=--+01/40}');
-    Error('\P{Nv=:=--+01/40}');
+    Error('\p{Nv=:= 00001/000040}');
+    Error('\P{Nv=:= 00001/000040}');
     Expect(1, 73668, '\p{Nv=:\A1/40\z:}', "");;
     Expect(0, 73669, '\p{Nv=:\A1/40\z:}', "");;
-    Expect(1, 73668, '\p{Nv=0001/0000000040}', "");
-    Expect(0, 73668, '\p{^Nv=0001/0000000040}', "");
-    Expect(0, 73668, '\P{Nv=0001/0000000040}', "");
-    Expect(1, 73668, '\P{^Nv=0001/0000000040}', "");
-    Expect(0, 73669, '\p{Nv=0001/0000000040}', "");
-    Expect(1, 73669, '\p{^Nv=0001/0000000040}', "");
-    Expect(1, 73669, '\P{Nv=0001/0000000040}', "");
-    Expect(0, 73669, '\P{^Nv=0001/0000000040}', "");
+    Expect(1, 73668, '\p{Nv=0001/00000000040}', "");
+    Expect(0, 73668, '\p{^Nv=0001/00000000040}', "");
+    Expect(0, 73668, '\P{Nv=0001/00000000040}', "");
+    Expect(1, 73668, '\P{^Nv=0001/00000000040}', "");
+    Expect(0, 73669, '\p{Nv=0001/00000000040}', "");
+    Expect(1, 73669, '\p{^Nv=0001/00000000040}', "");
+    Expect(1, 73669, '\P{Nv=0001/00000000040}', "");
+    Expect(0, 73669, '\P{^Nv=0001/00000000040}', "");
     Expect(1, 73668, '\p{Nv=60/2400}', "");
     Expect(0, 73668, '\p{^Nv=60/2400}', "");
     Expect(0, 73668, '\P{Nv=60/2400}', "");
@@ -70697,42 +71287,42 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Nv=0.0250}', "");
     Expect(1, 73669, '\P{Nv=0.0250}', "");
     Expect(0, 73669, '\P{^Nv=0.0250}', "");
-    Error('\p{Is_Numeric_Value=__1/0040/a/}');
-    Error('\P{Is_Numeric_Value=__1/0040/a/}');
-    Expect(1, 73668, '\p{Is_Numeric_Value=0000001/000000040}', "");
-    Expect(0, 73668, '\p{^Is_Numeric_Value=0000001/000000040}', "");
-    Expect(0, 73668, '\P{Is_Numeric_Value=0000001/000000040}', "");
-    Expect(1, 73668, '\P{^Is_Numeric_Value=0000001/000000040}', "");
-    Expect(0, 73669, '\p{Is_Numeric_Value=0000001/000000040}', "");
-    Expect(1, 73669, '\p{^Is_Numeric_Value=0000001/000000040}', "");
-    Expect(1, 73669, '\P{Is_Numeric_Value=0000001/000000040}', "");
-    Expect(0, 73669, '\P{^Is_Numeric_Value=0000001/000000040}', "");
-    Expect(1, 73668, '\p{Is_Numeric_Value=60/2400}', "");
-    Expect(0, 73668, '\p{^Is_Numeric_Value=60/2400}', "");
-    Expect(0, 73668, '\P{Is_Numeric_Value=60/2400}', "");
-    Expect(1, 73668, '\P{^Is_Numeric_Value=60/2400}', "");
-    Expect(0, 73669, '\p{Is_Numeric_Value=60/2400}', "");
-    Expect(1, 73669, '\p{^Is_Numeric_Value=60/2400}', "");
-    Expect(1, 73669, '\P{Is_Numeric_Value=60/2400}', "");
-    Expect(0, 73669, '\P{^Is_Numeric_Value=60/2400}', "");
-    Expect(1, 73668, '\p{Is_Numeric_Value=2.5e-02}', "");
-    Expect(0, 73668, '\p{^Is_Numeric_Value=2.5e-02}', "");
-    Expect(0, 73668, '\P{Is_Numeric_Value=2.5e-02}', "");
-    Expect(1, 73668, '\P{^Is_Numeric_Value=2.5e-02}', "");
-    Expect(0, 73669, '\p{Is_Numeric_Value=2.5e-02}', "");
-    Expect(1, 73669, '\p{^Is_Numeric_Value=2.5e-02}', "");
-    Expect(1, 73669, '\P{Is_Numeric_Value=2.5e-02}', "");
-    Expect(0, 73669, '\P{^Is_Numeric_Value=2.5e-02}', "");
-    Expect(1, 73668, '\p{Is_Numeric_Value: 2.50e-02}', "");
-    Expect(0, 73668, '\p{^Is_Numeric_Value: 2.50e-02}', "");
-    Expect(0, 73668, '\P{Is_Numeric_Value: 2.50e-02}', "");
-    Expect(1, 73668, '\P{^Is_Numeric_Value: 2.50e-02}', "");
-    Expect(0, 73669, '\p{Is_Numeric_Value: 2.50e-02}', "");
-    Expect(1, 73669, '\p{^Is_Numeric_Value: 2.50e-02}', "");
-    Expect(1, 73669, '\P{Is_Numeric_Value: 2.50e-02}', "");
-    Expect(0, 73669, '\P{^Is_Numeric_Value: 2.50e-02}', "");
-    Error('\p{Is_Numeric_Value=0.03}');
-    Error('\P{Is_Numeric_Value=0.03}');
+    Error('\p{Is_Numeric_Value=:=0000000001/000000040}');
+    Error('\P{Is_Numeric_Value=:=0000000001/000000040}');
+    Expect(1, 73668, '\p{Is_Numeric_Value=+00000001/000040}', "");
+    Expect(0, 73668, '\p{^Is_Numeric_Value=+00000001/000040}', "");
+    Expect(0, 73668, '\P{Is_Numeric_Value=+00000001/000040}', "");
+    Expect(1, 73668, '\P{^Is_Numeric_Value=+00000001/000040}', "");
+    Expect(0, 73669, '\p{Is_Numeric_Value=+00000001/000040}', "");
+    Expect(1, 73669, '\p{^Is_Numeric_Value=+00000001/000040}', "");
+    Expect(1, 73669, '\P{Is_Numeric_Value=+00000001/000040}', "");
+    Expect(0, 73669, '\P{^Is_Numeric_Value=+00000001/000040}', "");
+    Expect(1, 73668, '\p{Is_Numeric_Value:	60/2400}', "");
+    Expect(0, 73668, '\p{^Is_Numeric_Value:	60/2400}', "");
+    Expect(0, 73668, '\P{Is_Numeric_Value:	60/2400}', "");
+    Expect(1, 73668, '\P{^Is_Numeric_Value:	60/2400}', "");
+    Expect(0, 73669, '\p{Is_Numeric_Value:	60/2400}', "");
+    Expect(1, 73669, '\p{^Is_Numeric_Value:	60/2400}', "");
+    Expect(1, 73669, '\P{Is_Numeric_Value:	60/2400}', "");
+    Expect(0, 73669, '\P{^Is_Numeric_Value:	60/2400}', "");
+    Expect(1, 73668, '\p{Is_Numeric_Value: 2.5e-02}', "");
+    Expect(0, 73668, '\p{^Is_Numeric_Value: 2.5e-02}', "");
+    Expect(0, 73668, '\P{Is_Numeric_Value: 2.5e-02}', "");
+    Expect(1, 73668, '\P{^Is_Numeric_Value: 2.5e-02}', "");
+    Expect(0, 73669, '\p{Is_Numeric_Value: 2.5e-02}', "");
+    Expect(1, 73669, '\p{^Is_Numeric_Value: 2.5e-02}', "");
+    Expect(1, 73669, '\P{Is_Numeric_Value: 2.5e-02}', "");
+    Expect(0, 73669, '\P{^Is_Numeric_Value: 2.5e-02}', "");
+    Expect(1, 73668, '\p{Is_Numeric_Value=2.50e-02}', "");
+    Expect(0, 73668, '\p{^Is_Numeric_Value=2.50e-02}', "");
+    Expect(0, 73668, '\P{Is_Numeric_Value=2.50e-02}', "");
+    Expect(1, 73668, '\P{^Is_Numeric_Value=2.50e-02}', "");
+    Expect(0, 73669, '\p{Is_Numeric_Value=2.50e-02}', "");
+    Expect(1, 73669, '\p{^Is_Numeric_Value=2.50e-02}', "");
+    Expect(1, 73669, '\P{Is_Numeric_Value=2.50e-02}', "");
+    Expect(0, 73669, '\P{^Is_Numeric_Value=2.50e-02}', "");
+    Error('\p{Is_Numeric_Value:   0.03}');
+    Error('\P{Is_Numeric_Value:   0.03}');
     Expect(1, 73668, '\p{Is_Numeric_Value=2.500e-02}', "");
     Expect(0, 73668, '\p{^Is_Numeric_Value=2.500e-02}', "");
     Expect(0, 73668, '\P{Is_Numeric_Value=2.500e-02}', "");
@@ -70741,14 +71331,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Is_Numeric_Value=2.500e-02}', "");
     Expect(1, 73669, '\P{Is_Numeric_Value=2.500e-02}', "");
     Expect(0, 73669, '\P{^Is_Numeric_Value=2.500e-02}', "");
-    Expect(1, 73668, '\p{Is_Numeric_Value:   0.025}', "");
-    Expect(0, 73668, '\p{^Is_Numeric_Value:   0.025}', "");
-    Expect(0, 73668, '\P{Is_Numeric_Value:   0.025}', "");
-    Expect(1, 73668, '\P{^Is_Numeric_Value:   0.025}', "");
-    Expect(0, 73669, '\p{Is_Numeric_Value:   0.025}', "");
-    Expect(1, 73669, '\p{^Is_Numeric_Value:   0.025}', "");
-    Expect(1, 73669, '\P{Is_Numeric_Value:   0.025}', "");
-    Expect(0, 73669, '\P{^Is_Numeric_Value:   0.025}', "");
+    Expect(1, 73668, '\p{Is_Numeric_Value=0.025}', "");
+    Expect(0, 73668, '\p{^Is_Numeric_Value=0.025}', "");
+    Expect(0, 73668, '\P{Is_Numeric_Value=0.025}', "");
+    Expect(1, 73668, '\P{^Is_Numeric_Value=0.025}', "");
+    Expect(0, 73669, '\p{Is_Numeric_Value=0.025}', "");
+    Expect(1, 73669, '\p{^Is_Numeric_Value=0.025}', "");
+    Expect(1, 73669, '\P{Is_Numeric_Value=0.025}', "");
+    Expect(0, 73669, '\P{^Is_Numeric_Value=0.025}', "");
     Expect(1, 73668, '\p{Is_Numeric_Value=2.5000e-02}', "");
     Expect(0, 73668, '\p{^Is_Numeric_Value=2.5000e-02}', "");
     Expect(0, 73668, '\P{Is_Numeric_Value=2.5000e-02}', "");
@@ -70765,16 +71355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Is_Numeric_Value=0.0250}', "");
     Expect(1, 73669, '\P{Is_Numeric_Value=0.0250}', "");
     Expect(0, 73669, '\P{^Is_Numeric_Value=0.0250}', "");
-    Error('\p{Is_Nv:   /a/	 0000001/000040}');
-    Error('\P{Is_Nv:   /a/	 0000001/000040}');
-    Expect(1, 73668, '\p{Is_Nv=00000001/40}', "");
-    Expect(0, 73668, '\p{^Is_Nv=00000001/40}', "");
-    Expect(0, 73668, '\P{Is_Nv=00000001/40}', "");
-    Expect(1, 73668, '\P{^Is_Nv=00000001/40}', "");
-    Expect(0, 73669, '\p{Is_Nv=00000001/40}', "");
-    Expect(1, 73669, '\p{^Is_Nv=00000001/40}', "");
-    Expect(1, 73669, '\P{Is_Nv=00000001/40}', "");
-    Expect(0, 73669, '\P{^Is_Nv=00000001/40}', "");
+    Error('\p{Is_Nv=/a/_ 00000001/0000000040}');
+    Error('\P{Is_Nv=/a/_ 00000001/0000000040}');
+    Expect(1, 73668, '\p{Is_Nv=+001/00040}', "");
+    Expect(0, 73668, '\p{^Is_Nv=+001/00040}', "");
+    Expect(0, 73668, '\P{Is_Nv=+001/00040}', "");
+    Expect(1, 73668, '\P{^Is_Nv=+001/00040}', "");
+    Expect(0, 73669, '\p{Is_Nv=+001/00040}', "");
+    Expect(1, 73669, '\p{^Is_Nv=+001/00040}', "");
+    Expect(1, 73669, '\P{Is_Nv=+001/00040}', "");
+    Expect(0, 73669, '\P{^Is_Nv=+001/00040}', "");
     Expect(1, 73668, '\p{Is_Nv=60/2400}', "");
     Expect(0, 73668, '\p{^Is_Nv=60/2400}', "");
     Expect(0, 73668, '\P{Is_Nv=60/2400}', "");
@@ -70799,8 +71389,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Is_Nv=2.50e-02}', "");
     Expect(1, 73669, '\P{Is_Nv=2.50e-02}', "");
     Expect(0, 73669, '\P{^Is_Nv=2.50e-02}', "");
-    Error('\p{Is_Nv=0.03}');
-    Error('\P{Is_Nv=0.03}');
+    Error('\p{Is_Nv:0.03}');
+    Error('\P{Is_Nv:0.03}');
     Expect(1, 73668, '\p{Is_Nv=2.500e-02}', "");
     Expect(0, 73668, '\p{^Is_Nv=2.500e-02}', "");
     Expect(0, 73668, '\P{Is_Nv=2.500e-02}', "");
@@ -70825,26 +71415,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73669, '\p{^Is_Nv=2.5000e-02}', "");
     Expect(1, 73669, '\P{Is_Nv=2.5000e-02}', "");
     Expect(0, 73669, '\P{^Is_Nv=2.5000e-02}', "");
-    Expect(1, 73668, '\p{Is_Nv=0.0250}', "");
-    Expect(0, 73668, '\p{^Is_Nv=0.0250}', "");
-    Expect(0, 73668, '\P{Is_Nv=0.0250}', "");
-    Expect(1, 73668, '\P{^Is_Nv=0.0250}', "");
-    Expect(0, 73669, '\p{Is_Nv=0.0250}', "");
-    Expect(1, 73669, '\p{^Is_Nv=0.0250}', "");
-    Expect(1, 73669, '\P{Is_Nv=0.0250}', "");
-    Expect(0, 73669, '\P{^Is_Nv=0.0250}', "");
-    Error('\p{Numeric_Value=:=0000000001/05}');
-    Error('\P{Numeric_Value=:=0000000001/05}');
+    Expect(1, 73668, '\p{Is_Nv: 0.0250}', "");
+    Expect(0, 73668, '\p{^Is_Nv: 0.0250}', "");
+    Expect(0, 73668, '\P{Is_Nv: 0.0250}', "");
+    Expect(1, 73668, '\P{^Is_Nv: 0.0250}', "");
+    Expect(0, 73669, '\p{Is_Nv: 0.0250}', "");
+    Expect(1, 73669, '\p{^Is_Nv: 0.0250}', "");
+    Expect(1, 73669, '\P{Is_Nv: 0.0250}', "");
+    Expect(0, 73669, '\P{^Is_Nv: 0.0250}', "");
+    Error('\p{Numeric_Value:   :=	 0000001/000005}');
+    Error('\P{Numeric_Value:   :=	 0000001/000005}');
     Expect(1, 73679, '\p{Numeric_Value=:\A1/5\z:}', "");;
     Expect(0, 73680, '\p{Numeric_Value=:\A1/5\z:}', "");;
-    Expect(1, 73679, '\p{Numeric_Value=000001/0000005}', "");
-    Expect(0, 73679, '\p{^Numeric_Value=000001/0000005}', "");
-    Expect(0, 73679, '\P{Numeric_Value=000001/0000005}', "");
-    Expect(1, 73679, '\P{^Numeric_Value=000001/0000005}', "");
-    Expect(0, 73680, '\p{Numeric_Value=000001/0000005}', "");
-    Expect(1, 73680, '\p{^Numeric_Value=000001/0000005}', "");
-    Expect(1, 73680, '\P{Numeric_Value=000001/0000005}', "");
-    Expect(0, 73680, '\P{^Numeric_Value=000001/0000005}', "");
+    Expect(1, 73679, '\p{Numeric_Value=+01/000000005}', "");
+    Expect(0, 73679, '\p{^Numeric_Value=+01/000000005}', "");
+    Expect(0, 73679, '\P{Numeric_Value=+01/000000005}', "");
+    Expect(1, 73679, '\P{^Numeric_Value=+01/000000005}', "");
+    Expect(0, 73680, '\p{Numeric_Value=+01/000000005}', "");
+    Expect(1, 73680, '\p{^Numeric_Value=+01/000000005}', "");
+    Expect(1, 73680, '\P{Numeric_Value=+01/000000005}', "");
+    Expect(0, 73680, '\P{^Numeric_Value=+01/000000005}', "");
     Expect(1, 73679, '\p{Numeric_Value=60/300}', "");
     Expect(0, 73679, '\p{^Numeric_Value=60/300}', "");
     Expect(0, 73679, '\P{Numeric_Value=60/300}', "");
@@ -70885,18 +71475,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73680, '\p{^Numeric_Value=0.20}', "");
     Expect(1, 73680, '\P{Numeric_Value=0.20}', "");
     Expect(0, 73680, '\P{^Numeric_Value=0.20}', "");
-    Error('\p{Nv=__000001/05:=}');
-    Error('\P{Nv=__000001/05:=}');
+    Error('\p{Nv=-_001/0000000005/a/}');
+    Error('\P{Nv=-_001/0000000005/a/}');
     Expect(1, 73679, '\p{Nv=:\A1/5\z:}', "");;
     Expect(0, 73680, '\p{Nv=:\A1/5\z:}', "");;
-    Expect(1, 73679, '\p{Nv=00000001/005}', "");
-    Expect(0, 73679, '\p{^Nv=00000001/005}', "");
-    Expect(0, 73679, '\P{Nv=00000001/005}', "");
-    Expect(1, 73679, '\P{^Nv=00000001/005}', "");
-    Expect(0, 73680, '\p{Nv=00000001/005}', "");
-    Expect(1, 73680, '\p{^Nv=00000001/005}', "");
-    Expect(1, 73680, '\P{Nv=00000001/005}', "");
-    Expect(0, 73680, '\P{^Nv=00000001/005}', "");
+    Expect(1, 73679, '\p{Nv=+00000001/0000000005}', "");
+    Expect(0, 73679, '\p{^Nv=+00000001/0000000005}', "");
+    Expect(0, 73679, '\P{Nv=+00000001/0000000005}', "");
+    Expect(1, 73679, '\P{^Nv=+00000001/0000000005}', "");
+    Expect(0, 73680, '\p{Nv=+00000001/0000000005}', "");
+    Expect(1, 73680, '\p{^Nv=+00000001/0000000005}', "");
+    Expect(1, 73680, '\P{Nv=+00000001/0000000005}', "");
+    Expect(0, 73680, '\P{^Nv=+00000001/0000000005}', "");
     Expect(1, 73679, '\p{Nv=60/300}', "");
     Expect(0, 73679, '\p{^Nv=60/300}', "");
     Expect(0, 73679, '\P{Nv=60/300}', "");
@@ -70921,14 +71511,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73680, '\p{^Nv=0.2}', "");
     Expect(1, 73680, '\P{Nv=0.2}', "");
     Expect(0, 73680, '\P{^Nv=0.2}', "");
-    Expect(1, 73679, '\p{Nv=2.00e-01}', "");
-    Expect(0, 73679, '\p{^Nv=2.00e-01}', "");
-    Expect(0, 73679, '\P{Nv=2.00e-01}', "");
-    Expect(1, 73679, '\P{^Nv=2.00e-01}', "");
-    Expect(0, 73680, '\p{Nv=2.00e-01}', "");
-    Expect(1, 73680, '\p{^Nv=2.00e-01}', "");
-    Expect(1, 73680, '\P{Nv=2.00e-01}', "");
-    Expect(0, 73680, '\P{^Nv=2.00e-01}', "");
+    Expect(1, 73679, '\p{Nv:	2.00e-01}', "");
+    Expect(0, 73679, '\p{^Nv:	2.00e-01}', "");
+    Expect(0, 73679, '\P{Nv:	2.00e-01}', "");
+    Expect(1, 73679, '\P{^Nv:	2.00e-01}', "");
+    Expect(0, 73680, '\p{Nv:	2.00e-01}', "");
+    Expect(1, 73680, '\p{^Nv:	2.00e-01}', "");
+    Expect(1, 73680, '\P{Nv:	2.00e-01}', "");
+    Expect(0, 73680, '\P{^Nv:	2.00e-01}', "");
     Expect(1, 73679, '\p{Nv=0.20}', "");
     Expect(0, 73679, '\p{^Nv=0.20}', "");
     Expect(0, 73679, '\P{Nv=0.20}', "");
@@ -70937,24 +71527,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73680, '\p{^Nv=0.20}', "");
     Expect(1, 73680, '\P{Nv=0.20}', "");
     Expect(0, 73680, '\P{^Nv=0.20}', "");
-    Error('\p{Is_Numeric_Value=:= 01/0000005}');
-    Error('\P{Is_Numeric_Value=:= 01/0000005}');
-    Expect(1, 73679, '\p{Is_Numeric_Value=00001/00005}', "");
-    Expect(0, 73679, '\p{^Is_Numeric_Value=00001/00005}', "");
-    Expect(0, 73679, '\P{Is_Numeric_Value=00001/00005}', "");
-    Expect(1, 73679, '\P{^Is_Numeric_Value=00001/00005}', "");
-    Expect(0, 73680, '\p{Is_Numeric_Value=00001/00005}', "");
-    Expect(1, 73680, '\p{^Is_Numeric_Value=00001/00005}', "");
-    Expect(1, 73680, '\P{Is_Numeric_Value=00001/00005}', "");
-    Expect(0, 73680, '\P{^Is_Numeric_Value=00001/00005}', "");
-    Expect(1, 73679, '\p{Is_Numeric_Value:60/300}', "");
-    Expect(0, 73679, '\p{^Is_Numeric_Value:60/300}', "");
-    Expect(0, 73679, '\P{Is_Numeric_Value:60/300}', "");
-    Expect(1, 73679, '\P{^Is_Numeric_Value:60/300}', "");
-    Expect(0, 73680, '\p{Is_Numeric_Value:60/300}', "");
-    Expect(1, 73680, '\p{^Is_Numeric_Value:60/300}', "");
-    Expect(1, 73680, '\P{Is_Numeric_Value:60/300}', "");
-    Expect(0, 73680, '\P{^Is_Numeric_Value:60/300}', "");
+    Error('\p{Is_Numeric_Value=/a/	01/05}');
+    Error('\P{Is_Numeric_Value=/a/	01/05}');
+    Expect(1, 73679, '\p{Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(0, 73679, '\p{^Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(0, 73679, '\P{Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(1, 73679, '\P{^Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(0, 73680, '\p{Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(1, 73680, '\p{^Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(1, 73680, '\P{Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(0, 73680, '\P{^Is_Numeric_Value:   +00001/0000000005}', "");
+    Expect(1, 73679, '\p{Is_Numeric_Value=60/300}', "");
+    Expect(0, 73679, '\p{^Is_Numeric_Value=60/300}', "");
+    Expect(0, 73679, '\P{Is_Numeric_Value=60/300}', "");
+    Expect(1, 73679, '\P{^Is_Numeric_Value=60/300}', "");
+    Expect(0, 73680, '\p{Is_Numeric_Value=60/300}', "");
+    Expect(1, 73680, '\p{^Is_Numeric_Value=60/300}', "");
+    Expect(1, 73680, '\P{Is_Numeric_Value=60/300}', "");
+    Expect(0, 73680, '\P{^Is_Numeric_Value=60/300}', "");
     Expect(1, 73679, '\p{Is_Numeric_Value=2.0e-01}', "");
     Expect(0, 73679, '\p{^Is_Numeric_Value=2.0e-01}', "");
     Expect(0, 73679, '\P{Is_Numeric_Value=2.0e-01}', "");
@@ -70987,16 +71577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73680, '\p{^Is_Numeric_Value=0.20}', "");
     Expect(1, 73680, '\P{Is_Numeric_Value=0.20}', "");
     Expect(0, 73680, '\P{^Is_Numeric_Value=0.20}', "");
-    Error('\p{Is_Nv= 01/0000005/a/}');
-    Error('\P{Is_Nv= 01/0000005/a/}');
-    Expect(1, 73679, '\p{Is_Nv=+00000001/0005}', "");
-    Expect(0, 73679, '\p{^Is_Nv=+00000001/0005}', "");
-    Expect(0, 73679, '\P{Is_Nv=+00000001/0005}', "");
-    Expect(1, 73679, '\P{^Is_Nv=+00000001/0005}', "");
-    Expect(0, 73680, '\p{Is_Nv=+00000001/0005}', "");
-    Expect(1, 73680, '\p{^Is_Nv=+00000001/0005}', "");
-    Expect(1, 73680, '\P{Is_Nv=+00000001/0005}', "");
-    Expect(0, 73680, '\P{^Is_Nv=+00000001/0005}', "");
+    Error('\p{Is_Nv=:= _+00001/00000005}');
+    Error('\P{Is_Nv=:= _+00001/00000005}');
+    Expect(1, 73679, '\p{Is_Nv=0001/005}', "");
+    Expect(0, 73679, '\p{^Is_Nv=0001/005}', "");
+    Expect(0, 73679, '\P{Is_Nv=0001/005}', "");
+    Expect(1, 73679, '\P{^Is_Nv=0001/005}', "");
+    Expect(0, 73680, '\p{Is_Nv=0001/005}', "");
+    Expect(1, 73680, '\p{^Is_Nv=0001/005}', "");
+    Expect(1, 73680, '\P{Is_Nv=0001/005}', "");
+    Expect(0, 73680, '\P{^Is_Nv=0001/005}', "");
     Expect(1, 73679, '\p{Is_Nv=60/300}', "");
     Expect(0, 73679, '\p{^Is_Nv=60/300}', "");
     Expect(0, 73679, '\P{Is_Nv=60/300}', "");
@@ -71037,18 +71627,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73680, '\p{^Is_Nv=0.20}', "");
     Expect(1, 73680, '\P{Is_Nv=0.20}', "");
     Expect(0, 73680, '\P{^Is_Nv=0.20}', "");
-    Error('\p{Numeric_Value=-01/00000006:=}');
-    Error('\P{Numeric_Value=-01/00000006:=}');
+    Error('\p{Numeric_Value=	/a/001/6}');
+    Error('\P{Numeric_Value=	/a/001/6}');
     Expect(1, 126269, '\p{Numeric_Value=:\A1/6\z:}', "");;
     Expect(0, 126270, '\p{Numeric_Value=:\A1/6\z:}', "");;
-    Expect(1, 126269, '\p{Numeric_Value=+001/0006}', "");
-    Expect(0, 126269, '\p{^Numeric_Value=+001/0006}', "");
-    Expect(0, 126269, '\P{Numeric_Value=+001/0006}', "");
-    Expect(1, 126269, '\P{^Numeric_Value=+001/0006}', "");
-    Expect(0, 126270, '\p{Numeric_Value=+001/0006}', "");
-    Expect(1, 126270, '\p{^Numeric_Value=+001/0006}', "");
-    Expect(1, 126270, '\P{Numeric_Value=+001/0006}', "");
-    Expect(0, 126270, '\P{^Numeric_Value=+001/0006}', "");
+    Expect(1, 126269, '\p{Numeric_Value=01/6}', "");
+    Expect(0, 126269, '\p{^Numeric_Value=01/6}', "");
+    Expect(0, 126269, '\P{Numeric_Value=01/6}', "");
+    Expect(1, 126269, '\P{^Numeric_Value=01/6}', "");
+    Expect(0, 126270, '\p{Numeric_Value=01/6}', "");
+    Expect(1, 126270, '\p{^Numeric_Value=01/6}', "");
+    Expect(1, 126270, '\P{Numeric_Value=01/6}', "");
+    Expect(0, 126270, '\P{^Numeric_Value=01/6}', "");
     Expect(1, 126269, '\p{Numeric_Value=60/360}', "");
     Expect(0, 126269, '\p{^Numeric_Value=60/360}', "");
     Expect(0, 126269, '\P{Numeric_Value=60/360}', "");
@@ -71071,8 +71661,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Numeric_Value=1.667e-01}', "");
     Expect(1, 126270, '\P{Numeric_Value=1.667e-01}', "");
     Expect(0, 126270, '\P{^Numeric_Value=1.667e-01}', "");
-    Error('\p{Numeric_Value=0.167}');
-    Error('\P{Numeric_Value=0.167}');
+    Error('\p{Numeric_Value:	0.167}');
+    Error('\P{Numeric_Value:	0.167}');
     Expect(1, 126269, '\p{Numeric_Value=1.6667e-01}', "");
     Expect(0, 126269, '\p{^Numeric_Value=1.6667e-01}', "");
     Expect(0, 126269, '\P{Numeric_Value=1.6667e-01}', "");
@@ -71105,26 +71695,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Numeric_Value=0.16667}', "");
     Expect(1, 126270, '\P{Numeric_Value=0.16667}', "");
     Expect(0, 126270, '\P{^Numeric_Value=0.16667}', "");
-    Error('\p{Nv=-/a/0000001/000006}');
-    Error('\P{Nv=-/a/0000001/000006}');
+    Error('\p{Nv:_ 001/000006/a/}');
+    Error('\P{Nv:_ 001/000006/a/}');
     Expect(1, 126269, '\p{Nv=:\A1/6\z:}', "");;
     Expect(0, 126270, '\p{Nv=:\A1/6\z:}', "");;
-    Expect(1, 126269, '\p{Nv:   01/06}', "");
-    Expect(0, 126269, '\p{^Nv:   01/06}', "");
-    Expect(0, 126269, '\P{Nv:   01/06}', "");
-    Expect(1, 126269, '\P{^Nv:   01/06}', "");
-    Expect(0, 126270, '\p{Nv:   01/06}', "");
-    Expect(1, 126270, '\p{^Nv:   01/06}', "");
-    Expect(1, 126270, '\P{Nv:   01/06}', "");
-    Expect(0, 126270, '\P{^Nv:   01/06}', "");
-    Expect(1, 126269, '\p{Nv=60/360}', "");
-    Expect(0, 126269, '\p{^Nv=60/360}', "");
-    Expect(0, 126269, '\P{Nv=60/360}', "");
-    Expect(1, 126269, '\P{^Nv=60/360}', "");
-    Expect(0, 126270, '\p{Nv=60/360}', "");
-    Expect(1, 126270, '\p{^Nv=60/360}', "");
-    Expect(1, 126270, '\P{Nv=60/360}', "");
-    Expect(0, 126270, '\P{^Nv=60/360}', "");
+    Expect(1, 126269, '\p{Nv=+000001/000000006}', "");
+    Expect(0, 126269, '\p{^Nv=+000001/000000006}', "");
+    Expect(0, 126269, '\P{Nv=+000001/000000006}', "");
+    Expect(1, 126269, '\P{^Nv=+000001/000000006}', "");
+    Expect(0, 126270, '\p{Nv=+000001/000000006}', "");
+    Expect(1, 126270, '\p{^Nv=+000001/000000006}', "");
+    Expect(1, 126270, '\P{Nv=+000001/000000006}', "");
+    Expect(0, 126270, '\P{^Nv=+000001/000000006}', "");
+    Expect(1, 126269, '\p{Nv: 60/360}', "");
+    Expect(0, 126269, '\p{^Nv: 60/360}', "");
+    Expect(0, 126269, '\P{Nv: 60/360}', "");
+    Expect(1, 126269, '\P{^Nv: 60/360}', "");
+    Expect(0, 126270, '\p{Nv: 60/360}', "");
+    Expect(1, 126270, '\p{^Nv: 60/360}', "");
+    Expect(1, 126270, '\P{Nv: 60/360}', "");
+    Expect(0, 126270, '\P{^Nv: 60/360}', "");
     Error('\p{Nv=1.7e-01}');
     Error('\P{Nv=1.7e-01}');
     Error('\p{Nv=1.67e-01}');
@@ -71149,14 +71739,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Nv=1.6667e-01}', "");
     Expect(1, 126270, '\P{Nv=1.6667e-01}', "");
     Expect(0, 126270, '\P{^Nv=1.6667e-01}', "");
-    Expect(1, 126269, '\p{Nv: 0.1667}', "");
-    Expect(0, 126269, '\p{^Nv: 0.1667}', "");
-    Expect(0, 126269, '\P{Nv: 0.1667}', "");
-    Expect(1, 126269, '\P{^Nv: 0.1667}', "");
-    Expect(0, 126270, '\p{Nv: 0.1667}', "");
-    Expect(1, 126270, '\p{^Nv: 0.1667}', "");
-    Expect(1, 126270, '\P{Nv: 0.1667}', "");
-    Expect(0, 126270, '\P{^Nv: 0.1667}', "");
+    Expect(1, 126269, '\p{Nv=0.1667}', "");
+    Expect(0, 126269, '\p{^Nv=0.1667}', "");
+    Expect(0, 126269, '\P{Nv=0.1667}', "");
+    Expect(1, 126269, '\P{^Nv=0.1667}', "");
+    Expect(0, 126270, '\p{Nv=0.1667}', "");
+    Expect(1, 126270, '\p{^Nv=0.1667}', "");
+    Expect(1, 126270, '\P{Nv=0.1667}', "");
+    Expect(0, 126270, '\P{^Nv=0.1667}', "");
     Expect(1, 126269, '\p{Nv=1.66667e-01}', "");
     Expect(0, 126269, '\p{^Nv=1.66667e-01}', "");
     Expect(0, 126269, '\P{Nv=1.66667e-01}', "");
@@ -71173,16 +71763,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Nv=0.16667}', "");
     Expect(1, 126270, '\P{Nv=0.16667}', "");
     Expect(0, 126270, '\P{^Nv=0.16667}', "");
-    Error('\p{Is_Numeric_Value=/a/-0000000001/000006}');
-    Error('\P{Is_Numeric_Value=/a/-0000000001/000006}');
-    Expect(1, 126269, '\p{Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(0, 126269, '\p{^Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(0, 126269, '\P{Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(1, 126269, '\P{^Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(0, 126270, '\p{Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(1, 126270, '\p{^Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(1, 126270, '\P{Is_Numeric_Value=+000000001/0000000006}', "");
-    Expect(0, 126270, '\P{^Is_Numeric_Value=+000000001/0000000006}', "");
+    Error('\p{Is_Numeric_Value=/a/_001/000006}');
+    Error('\P{Is_Numeric_Value=/a/_001/000006}');
+    Expect(1, 126269, '\p{Is_Numeric_Value=1/0000000006}', "");
+    Expect(0, 126269, '\p{^Is_Numeric_Value=1/0000000006}', "");
+    Expect(0, 126269, '\P{Is_Numeric_Value=1/0000000006}', "");
+    Expect(1, 126269, '\P{^Is_Numeric_Value=1/0000000006}', "");
+    Expect(0, 126270, '\p{Is_Numeric_Value=1/0000000006}', "");
+    Expect(1, 126270, '\p{^Is_Numeric_Value=1/0000000006}', "");
+    Expect(1, 126270, '\P{Is_Numeric_Value=1/0000000006}', "");
+    Expect(0, 126270, '\P{^Is_Numeric_Value=1/0000000006}', "");
     Expect(1, 126269, '\p{Is_Numeric_Value=60/360}', "");
     Expect(0, 126269, '\p{^Is_Numeric_Value=60/360}', "");
     Expect(0, 126269, '\P{Is_Numeric_Value=60/360}', "");
@@ -71191,38 +71781,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Is_Numeric_Value=60/360}', "");
     Expect(1, 126270, '\P{Is_Numeric_Value=60/360}', "");
     Expect(0, 126270, '\P{^Is_Numeric_Value=60/360}', "");
-    Error('\p{Is_Numeric_Value=1.7e-01}');
-    Error('\P{Is_Numeric_Value=1.7e-01}');
+    Error('\p{Is_Numeric_Value:1.7e-01}');
+    Error('\P{Is_Numeric_Value:1.7e-01}');
     Error('\p{Is_Numeric_Value=1.67e-01}');
     Error('\P{Is_Numeric_Value=1.67e-01}');
     Error('\p{Is_Numeric_Value=0.17}');
     Error('\P{Is_Numeric_Value=0.17}');
-    Expect(1, 126269, '\p{Is_Numeric_Value:1.667e-01}', "");
-    Expect(0, 126269, '\p{^Is_Numeric_Value:1.667e-01}', "");
-    Expect(0, 126269, '\P{Is_Numeric_Value:1.667e-01}', "");
-    Expect(1, 126269, '\P{^Is_Numeric_Value:1.667e-01}', "");
-    Expect(0, 126270, '\p{Is_Numeric_Value:1.667e-01}', "");
-    Expect(1, 126270, '\p{^Is_Numeric_Value:1.667e-01}', "");
-    Expect(1, 126270, '\P{Is_Numeric_Value:1.667e-01}', "");
-    Expect(0, 126270, '\P{^Is_Numeric_Value:1.667e-01}', "");
+    Expect(1, 126269, '\p{Is_Numeric_Value=1.667e-01}', "");
+    Expect(0, 126269, '\p{^Is_Numeric_Value=1.667e-01}', "");
+    Expect(0, 126269, '\P{Is_Numeric_Value=1.667e-01}', "");
+    Expect(1, 126269, '\P{^Is_Numeric_Value=1.667e-01}', "");
+    Expect(0, 126270, '\p{Is_Numeric_Value=1.667e-01}', "");
+    Expect(1, 126270, '\p{^Is_Numeric_Value=1.667e-01}', "");
+    Expect(1, 126270, '\P{Is_Numeric_Value=1.667e-01}', "");
+    Expect(0, 126270, '\P{^Is_Numeric_Value=1.667e-01}', "");
     Error('\p{Is_Numeric_Value=0.167}');
     Error('\P{Is_Numeric_Value=0.167}');
-    Expect(1, 126269, '\p{Is_Numeric_Value=1.6667e-01}', "");
-    Expect(0, 126269, '\p{^Is_Numeric_Value=1.6667e-01}', "");
-    Expect(0, 126269, '\P{Is_Numeric_Value=1.6667e-01}', "");
-    Expect(1, 126269, '\P{^Is_Numeric_Value=1.6667e-01}', "");
-    Expect(0, 126270, '\p{Is_Numeric_Value=1.6667e-01}', "");
-    Expect(1, 126270, '\p{^Is_Numeric_Value=1.6667e-01}', "");
-    Expect(1, 126270, '\P{Is_Numeric_Value=1.6667e-01}', "");
-    Expect(0, 126270, '\P{^Is_Numeric_Value=1.6667e-01}', "");
-    Expect(1, 126269, '\p{Is_Numeric_Value=0.1667}', "");
-    Expect(0, 126269, '\p{^Is_Numeric_Value=0.1667}', "");
-    Expect(0, 126269, '\P{Is_Numeric_Value=0.1667}', "");
-    Expect(1, 126269, '\P{^Is_Numeric_Value=0.1667}', "");
-    Expect(0, 126270, '\p{Is_Numeric_Value=0.1667}', "");
-    Expect(1, 126270, '\p{^Is_Numeric_Value=0.1667}', "");
-    Expect(1, 126270, '\P{Is_Numeric_Value=0.1667}', "");
-    Expect(0, 126270, '\P{^Is_Numeric_Value=0.1667}', "");
+    Expect(1, 126269, '\p{Is_Numeric_Value:1.6667e-01}', "");
+    Expect(0, 126269, '\p{^Is_Numeric_Value:1.6667e-01}', "");
+    Expect(0, 126269, '\P{Is_Numeric_Value:1.6667e-01}', "");
+    Expect(1, 126269, '\P{^Is_Numeric_Value:1.6667e-01}', "");
+    Expect(0, 126270, '\p{Is_Numeric_Value:1.6667e-01}', "");
+    Expect(1, 126270, '\p{^Is_Numeric_Value:1.6667e-01}', "");
+    Expect(1, 126270, '\P{Is_Numeric_Value:1.6667e-01}', "");
+    Expect(0, 126270, '\P{^Is_Numeric_Value:1.6667e-01}', "");
+    Expect(1, 126269, '\p{Is_Numeric_Value:	0.1667}', "");
+    Expect(0, 126269, '\p{^Is_Numeric_Value:	0.1667}', "");
+    Expect(0, 126269, '\P{Is_Numeric_Value:	0.1667}', "");
+    Expect(1, 126269, '\P{^Is_Numeric_Value:	0.1667}', "");
+    Expect(0, 126270, '\p{Is_Numeric_Value:	0.1667}', "");
+    Expect(1, 126270, '\p{^Is_Numeric_Value:	0.1667}', "");
+    Expect(1, 126270, '\P{Is_Numeric_Value:	0.1667}', "");
+    Expect(0, 126270, '\P{^Is_Numeric_Value:	0.1667}', "");
     Expect(1, 126269, '\p{Is_Numeric_Value=1.66667e-01}', "");
     Expect(0, 126269, '\p{^Is_Numeric_Value=1.66667e-01}', "");
     Expect(0, 126269, '\P{Is_Numeric_Value=1.66667e-01}', "");
@@ -71239,16 +71829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Is_Numeric_Value=0.16667}', "");
     Expect(1, 126270, '\P{Is_Numeric_Value=0.16667}', "");
     Expect(0, 126270, '\P{^Is_Numeric_Value=0.16667}', "");
-    Error('\p{Is_Nv=-_+00000001/6/a/}');
-    Error('\P{Is_Nv=-_+00000001/6/a/}');
-    Expect(1, 126269, '\p{Is_Nv:01/00000006}', "");
-    Expect(0, 126269, '\p{^Is_Nv:01/00000006}', "");
-    Expect(0, 126269, '\P{Is_Nv:01/00000006}', "");
-    Expect(1, 126269, '\P{^Is_Nv:01/00000006}', "");
-    Expect(0, 126270, '\p{Is_Nv:01/00000006}', "");
-    Expect(1, 126270, '\p{^Is_Nv:01/00000006}', "");
-    Expect(1, 126270, '\P{Is_Nv:01/00000006}', "");
-    Expect(0, 126270, '\P{^Is_Nv:01/00000006}', "");
+    Error('\p{Is_Nv= /a/0001/0006}');
+    Error('\P{Is_Nv= /a/0001/0006}');
+    Expect(1, 126269, '\p{Is_Nv=00000001/000000006}', "");
+    Expect(0, 126269, '\p{^Is_Nv=00000001/000000006}', "");
+    Expect(0, 126269, '\P{Is_Nv=00000001/000000006}', "");
+    Expect(1, 126269, '\P{^Is_Nv=00000001/000000006}', "");
+    Expect(0, 126270, '\p{Is_Nv=00000001/000000006}', "");
+    Expect(1, 126270, '\p{^Is_Nv=00000001/000000006}', "");
+    Expect(1, 126270, '\P{Is_Nv=00000001/000000006}', "");
+    Expect(0, 126270, '\P{^Is_Nv=00000001/000000006}', "");
     Expect(1, 126269, '\p{Is_Nv=60/360}', "");
     Expect(0, 126269, '\p{^Is_Nv=60/360}', "");
     Expect(0, 126269, '\P{Is_Nv=60/360}', "");
@@ -71281,14 +71871,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Is_Nv=1.6667e-01}', "");
     Expect(1, 126270, '\P{Is_Nv=1.6667e-01}', "");
     Expect(0, 126270, '\P{^Is_Nv=1.6667e-01}', "");
-    Expect(1, 126269, '\p{Is_Nv=0.1667}', "");
-    Expect(0, 126269, '\p{^Is_Nv=0.1667}', "");
-    Expect(0, 126269, '\P{Is_Nv=0.1667}', "");
-    Expect(1, 126269, '\P{^Is_Nv=0.1667}', "");
-    Expect(0, 126270, '\p{Is_Nv=0.1667}', "");
-    Expect(1, 126270, '\p{^Is_Nv=0.1667}', "");
-    Expect(1, 126270, '\P{Is_Nv=0.1667}', "");
-    Expect(0, 126270, '\P{^Is_Nv=0.1667}', "");
+    Expect(1, 126269, '\p{Is_Nv:   0.1667}', "");
+    Expect(0, 126269, '\p{^Is_Nv:   0.1667}', "");
+    Expect(0, 126269, '\P{Is_Nv:   0.1667}', "");
+    Expect(1, 126269, '\P{^Is_Nv:   0.1667}', "");
+    Expect(0, 126270, '\p{Is_Nv:   0.1667}', "");
+    Expect(1, 126270, '\p{^Is_Nv:   0.1667}', "");
+    Expect(1, 126270, '\P{Is_Nv:   0.1667}', "");
+    Expect(0, 126270, '\P{^Is_Nv:   0.1667}', "");
     Expect(1, 126269, '\p{Is_Nv=1.66667e-01}', "");
     Expect(0, 126269, '\p{^Is_Nv=1.66667e-01}', "");
     Expect(0, 126269, '\P{Is_Nv=1.66667e-01}', "");
@@ -71297,26 +71887,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126270, '\p{^Is_Nv=1.66667e-01}', "");
     Expect(1, 126270, '\P{Is_Nv=1.66667e-01}', "");
     Expect(0, 126270, '\P{^Is_Nv=1.66667e-01}', "");
-    Expect(1, 126269, '\p{Is_Nv:   0.16667}', "");
-    Expect(0, 126269, '\p{^Is_Nv:   0.16667}', "");
-    Expect(0, 126269, '\P{Is_Nv:   0.16667}', "");
-    Expect(1, 126269, '\P{^Is_Nv:   0.16667}', "");
-    Expect(0, 126270, '\p{Is_Nv:   0.16667}', "");
-    Expect(1, 126270, '\p{^Is_Nv:   0.16667}', "");
-    Expect(1, 126270, '\P{Is_Nv:   0.16667}', "");
-    Expect(0, 126270, '\P{^Is_Nv:   0.16667}', "");
-    Error('\p{Numeric_Value=	+0001/0064/a/}');
-    Error('\P{Numeric_Value=	+0001/0064/a/}');
+    Expect(1, 126269, '\p{Is_Nv=0.16667}', "");
+    Expect(0, 126269, '\p{^Is_Nv=0.16667}', "");
+    Expect(0, 126269, '\P{Is_Nv=0.16667}', "");
+    Expect(1, 126269, '\P{^Is_Nv=0.16667}', "");
+    Expect(0, 126270, '\p{Is_Nv=0.16667}', "");
+    Expect(1, 126270, '\p{^Is_Nv=0.16667}', "");
+    Expect(1, 126270, '\P{Is_Nv=0.16667}', "");
+    Expect(0, 126270, '\P{^Is_Nv=0.16667}', "");
+    Error('\p{Numeric_Value: 	000001/64/a/}');
+    Error('\P{Numeric_Value: 	000001/64/a/}');
     Expect(1, 73667, '\p{Numeric_Value=:\A1/64\z:}', "");;
     Expect(0, 73668, '\p{Numeric_Value=:\A1/64\z:}', "");;
-    Expect(1, 73667, '\p{Numeric_Value=0000001/000064}', "");
-    Expect(0, 73667, '\p{^Numeric_Value=0000001/000064}', "");
-    Expect(0, 73667, '\P{Numeric_Value=0000001/000064}', "");
-    Expect(1, 73667, '\P{^Numeric_Value=0000001/000064}', "");
-    Expect(0, 73668, '\p{Numeric_Value=0000001/000064}', "");
-    Expect(1, 73668, '\p{^Numeric_Value=0000001/000064}', "");
-    Expect(1, 73668, '\P{Numeric_Value=0000001/000064}', "");
-    Expect(0, 73668, '\P{^Numeric_Value=0000001/000064}', "");
+    Expect(1, 73667, '\p{Numeric_Value=0000000001/000064}', "");
+    Expect(0, 73667, '\p{^Numeric_Value=0000000001/000064}', "");
+    Expect(0, 73667, '\P{Numeric_Value=0000000001/000064}', "");
+    Expect(1, 73667, '\P{^Numeric_Value=0000000001/000064}', "");
+    Expect(0, 73668, '\p{Numeric_Value=0000000001/000064}', "");
+    Expect(1, 73668, '\p{^Numeric_Value=0000000001/000064}', "");
+    Expect(1, 73668, '\P{Numeric_Value=0000000001/000064}', "");
+    Expect(0, 73668, '\P{^Numeric_Value=0000000001/000064}', "");
     Expect(1, 73667, '\p{Numeric_Value=60/3840}', "");
     Expect(0, 73667, '\p{^Numeric_Value=60/3840}', "");
     Expect(0, 73667, '\P{Numeric_Value=60/3840}', "");
@@ -71327,18 +71917,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73668, '\P{^Numeric_Value=60/3840}', "");
     Error('\p{Numeric_Value=1.6e-02}');
     Error('\P{Numeric_Value=1.6e-02}');
-    Error('\p{Numeric_Value:1.56e-02}');
-    Error('\P{Numeric_Value:1.56e-02}');
-    Error('\p{Numeric_Value=0.02}');
-    Error('\P{Numeric_Value=0.02}');
-    Expect(1, 73667, '\p{Numeric_Value: 1.562e-02}', "");
-    Expect(0, 73667, '\p{^Numeric_Value: 1.562e-02}', "");
-    Expect(0, 73667, '\P{Numeric_Value: 1.562e-02}', "");
-    Expect(1, 73667, '\P{^Numeric_Value: 1.562e-02}', "");
-    Expect(0, 73668, '\p{Numeric_Value: 1.562e-02}', "");
-    Expect(1, 73668, '\p{^Numeric_Value: 1.562e-02}', "");
-    Expect(1, 73668, '\P{Numeric_Value: 1.562e-02}', "");
-    Expect(0, 73668, '\P{^Numeric_Value: 1.562e-02}', "");
+    Error('\p{Numeric_Value=1.56e-02}');
+    Error('\P{Numeric_Value=1.56e-02}');
+    Error('\p{Numeric_Value:0.02}');
+    Error('\P{Numeric_Value:0.02}');
+    Expect(1, 73667, '\p{Numeric_Value=1.562e-02}', "");
+    Expect(0, 73667, '\p{^Numeric_Value=1.562e-02}', "");
+    Expect(0, 73667, '\P{Numeric_Value=1.562e-02}', "");
+    Expect(1, 73667, '\P{^Numeric_Value=1.562e-02}', "");
+    Expect(0, 73668, '\p{Numeric_Value=1.562e-02}', "");
+    Expect(1, 73668, '\p{^Numeric_Value=1.562e-02}', "");
+    Expect(1, 73668, '\P{Numeric_Value=1.562e-02}', "");
+    Expect(0, 73668, '\P{^Numeric_Value=1.562e-02}', "");
     Error('\p{Numeric_Value=0.016}');
     Error('\P{Numeric_Value=0.016}');
     Expect(1, 73667, '\p{Numeric_Value=1.5625e-02}', "");
@@ -71359,14 +71949,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73668, '\p{^Numeric_Value=1.56250e-02}', "");
     Expect(1, 73668, '\P{Numeric_Value=1.56250e-02}', "");
     Expect(0, 73668, '\P{^Numeric_Value=1.56250e-02}', "");
-    Expect(1, 73667, '\p{Numeric_Value:0.01562}', "");
-    Expect(0, 73667, '\p{^Numeric_Value:0.01562}', "");
-    Expect(0, 73667, '\P{Numeric_Value:0.01562}', "");
-    Expect(1, 73667, '\P{^Numeric_Value:0.01562}', "");
-    Expect(0, 73668, '\p{Numeric_Value:0.01562}', "");
-    Expect(1, 73668, '\p{^Numeric_Value:0.01562}', "");
-    Expect(1, 73668, '\P{Numeric_Value:0.01562}', "");
-    Expect(0, 73668, '\P{^Numeric_Value:0.01562}', "");
+    Expect(1, 73667, '\p{Numeric_Value=0.01562}', "");
+    Expect(0, 73667, '\p{^Numeric_Value=0.01562}', "");
+    Expect(0, 73667, '\P{Numeric_Value=0.01562}', "");
+    Expect(1, 73667, '\P{^Numeric_Value=0.01562}', "");
+    Expect(0, 73668, '\p{Numeric_Value=0.01562}', "");
+    Expect(1, 73668, '\p{^Numeric_Value=0.01562}', "");
+    Expect(1, 73668, '\P{Numeric_Value=0.01562}', "");
+    Expect(0, 73668, '\P{^Numeric_Value=0.01562}', "");
     Expect(1, 73667, '\p{Numeric_Value=1.562500e-02}', "");
     Expect(0, 73667, '\p{^Numeric_Value=1.562500e-02}', "");
     Expect(0, 73667, '\P{Numeric_Value=1.562500e-02}', "");
@@ -71383,18 +71973,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73668, '\p{^Numeric_Value=0.015625}', "");
     Expect(1, 73668, '\P{Numeric_Value=0.015625}', "");
     Expect(0, 73668, '\P{^Numeric_Value=0.015625}', "");
-    Error('\p{Nv=  +1/000000064/a/}');
-    Error('\P{Nv=  +1/000000064/a/}');
+    Error('\p{Nv: _ 0001/00000064:=}');
+    Error('\P{Nv: _ 0001/00000064:=}');
     Expect(1, 73667, '\p{Nv=:\A1/64\z:}', "");;
     Expect(0, 73668, '\p{Nv=:\A1/64\z:}', "");;
-    Expect(1, 73667, '\p{Nv=00000001/0000000064}', "");
-    Expect(0, 73667, '\p{^Nv=00000001/0000000064}', "");
-    Expect(0, 73667, '\P{Nv=00000001/0000000064}', "");
-    Expect(1, 73667, '\P{^Nv=00000001/0000000064}', "");
-    Expect(0, 73668, '\p{Nv=00000001/0000000064}', "");
-    Expect(1, 73668, '\p{^Nv=00000001/0000000064}', "");
-    Expect(1, 73668, '\P{Nv=00000001/0000000064}', "");
-    Expect(0, 73668, '\P{^Nv=00000001/0000000064}', "");
+    Expect(1, 73667, '\p{Nv=+0000000001/000064}', "");
+    Expect(0, 73667, '\p{^Nv=+0000000001/000064}', "");
+    Expect(0, 73667, '\P{Nv=+0000000001/000064}', "");
+    Expect(1, 73667, '\P{^Nv=+0000000001/000064}', "");
+    Expect(0, 73668, '\p{Nv=+0000000001/000064}', "");
+    Expect(1, 73668, '\p{^Nv=+0000000001/000064}', "");
+    Expect(1, 73668, '\P{Nv=+0000000001/000064}', "");
+    Expect(0, 73668, '\P{^Nv=+0000000001/000064}', "");
     Expect(1, 73667, '\p{Nv=60/3840}', "");
     Expect(0, 73667, '\p{^Nv=60/3840}', "");
     Expect(0, 73667, '\P{Nv=60/3840}', "");
@@ -71407,8 +71997,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Nv=1.6e-02}');
     Error('\p{Nv=1.56e-02}');
     Error('\P{Nv=1.56e-02}');
-    Error('\p{Nv=0.02}');
-    Error('\P{Nv=0.02}');
+    Error('\p{Nv:0.02}');
+    Error('\P{Nv:0.02}');
     Expect(1, 73667, '\p{Nv=1.562e-02}', "");
     Expect(0, 73667, '\p{^Nv=1.562e-02}', "");
     Expect(0, 73667, '\P{Nv=1.562e-02}', "");
@@ -71429,14 +72019,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73668, '\P{^Nv=1.5625e-02}', "");
     Error('\p{Nv=0.0156}');
     Error('\P{Nv=0.0156}');
-    Expect(1, 73667, '\p{Nv: 1.56250e-02}', "");
-    Expect(0, 73667, '\p{^Nv: 1.56250e-02}', "");
-    Expect(0, 73667, '\P{Nv: 1.56250e-02}', "");
-    Expect(1, 73667, '\P{^Nv: 1.56250e-02}', "");
-    Expect(0, 73668, '\p{Nv: 1.56250e-02}', "");
-    Expect(1, 73668, '\p{^Nv: 1.56250e-02}', "");
-    Expect(1, 73668, '\P{Nv: 1.56250e-02}', "");
-    Expect(0, 73668, '\P{^Nv: 1.56250e-02}', "");
+    Expect(1, 73667, '\p{Nv=1.56250e-02}', "");
+    Expect(0, 73667, '\p{^Nv=1.56250e-02}', "");
+    Expect(0, 73667, '\P{Nv=1.56250e-02}', "");
+    Expect(1, 73667, '\P{^Nv=1.56250e-02}', "");
+    Expect(0, 73668, '\p{Nv=1.56250e-02}', "");
+    Expect(1, 73668, '\p{^Nv=1.56250e-02}', "");
+    Expect(1, 73668, '\P{Nv=1.56250e-02}', "");
+    Expect(0, 73668, '\P{^Nv=1.56250e-02}', "");
     Expect(1, 73667, '\p{Nv=0.01562}', "");
     Expect(0, 73667, '\p{^Nv=0.01562}', "");
     Expect(0, 73667, '\P{Nv=0.01562}', "");
@@ -71461,28 +72051,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73668, '\p{^Nv=0.015625}', "");
     Expect(1, 73668, '\P{Nv=0.015625}', "");
     Expect(0, 73668, '\P{^Nv=0.015625}', "");
-    Error('\p{Is_Numeric_Value=:=+0000001/0000000064}');
-    Error('\P{Is_Numeric_Value=:=+0000001/0000000064}');
-    Expect(1, 73667, '\p{Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(0, 73667, '\p{^Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(0, 73667, '\P{Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(1, 73667, '\P{^Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(0, 73668, '\p{Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(1, 73668, '\p{^Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(1, 73668, '\P{Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(0, 73668, '\P{^Is_Numeric_Value=+0001/00000000064}', "");
-    Expect(1, 73667, '\p{Is_Numeric_Value:	60/3840}', "");
-    Expect(0, 73667, '\p{^Is_Numeric_Value:	60/3840}', "");
-    Expect(0, 73667, '\P{Is_Numeric_Value:	60/3840}', "");
-    Expect(1, 73667, '\P{^Is_Numeric_Value:	60/3840}', "");
-    Expect(0, 73668, '\p{Is_Numeric_Value:	60/3840}', "");
-    Expect(1, 73668, '\p{^Is_Numeric_Value:	60/3840}', "");
-    Expect(1, 73668, '\P{Is_Numeric_Value:	60/3840}', "");
-    Expect(0, 73668, '\P{^Is_Numeric_Value:	60/3840}', "");
-    Error('\p{Is_Numeric_Value=1.6e-02}');
-    Error('\P{Is_Numeric_Value=1.6e-02}');
-    Error('\p{Is_Numeric_Value=1.56e-02}');
-    Error('\P{Is_Numeric_Value=1.56e-02}');
+    Error('\p{Is_Numeric_Value=:=	0000000001/0000000064}');
+    Error('\P{Is_Numeric_Value=:=	0000000001/0000000064}');
+    Expect(1, 73667, '\p{Is_Numeric_Value=000001/00000064}', "");
+    Expect(0, 73667, '\p{^Is_Numeric_Value=000001/00000064}', "");
+    Expect(0, 73667, '\P{Is_Numeric_Value=000001/00000064}', "");
+    Expect(1, 73667, '\P{^Is_Numeric_Value=000001/00000064}', "");
+    Expect(0, 73668, '\p{Is_Numeric_Value=000001/00000064}', "");
+    Expect(1, 73668, '\p{^Is_Numeric_Value=000001/00000064}', "");
+    Expect(1, 73668, '\P{Is_Numeric_Value=000001/00000064}', "");
+    Expect(0, 73668, '\P{^Is_Numeric_Value=000001/00000064}', "");
+    Expect(1, 73667, '\p{Is_Numeric_Value=60/3840}', "");
+    Expect(0, 73667, '\p{^Is_Numeric_Value=60/3840}', "");
+    Expect(0, 73667, '\P{Is_Numeric_Value=60/3840}', "");
+    Expect(1, 73667, '\P{^Is_Numeric_Value=60/3840}', "");
+    Expect(0, 73668, '\p{Is_Numeric_Value=60/3840}', "");
+    Expect(1, 73668, '\p{^Is_Numeric_Value=60/3840}', "");
+    Expect(1, 73668, '\P{Is_Numeric_Value=60/3840}', "");
+    Expect(0, 73668, '\P{^Is_Numeric_Value=60/3840}', "");
+    Error('\p{Is_Numeric_Value:   1.6e-02}');
+    Error('\P{Is_Numeric_Value:   1.6e-02}');
+    Error('\p{Is_Numeric_Value:1.56e-02}');
+    Error('\P{Is_Numeric_Value:1.56e-02}');
     Error('\p{Is_Numeric_Value=0.02}');
     Error('\P{Is_Numeric_Value=0.02}');
     Expect(1, 73667, '\p{Is_Numeric_Value=1.562e-02}', "");
@@ -71493,8 +72083,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73668, '\p{^Is_Numeric_Value=1.562e-02}', "");
     Expect(1, 73668, '\P{Is_Numeric_Value=1.562e-02}', "");
     Expect(0, 73668, '\P{^Is_Numeric_Value=1.562e-02}', "");
-    Error('\p{Is_Numeric_Value=0.016}');
-    Error('\P{Is_Numeric_Value=0.016}');
+    Error('\p{Is_Numeric_Value:   0.016}');
+    Error('\P{Is_Numeric_Value:   0.016}');
     Expect(1, 73667, '\p{Is_Numeric_Value=1.5625e-02}', "");
     Expect(0, 73667, '\p{^Is_Numeric_Value=1.5625e-02}', "");
     Expect(0, 73667, '\P{Is_Numeric_Value=1.5625e-02}', "");
@@ -71537,38 +72127,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73668, '\p{^Is_Numeric_Value=0.015625}', "");
     Expect(1, 73668, '\P{Is_Numeric_Value=0.015625}', "");
     Expect(0, 73668, '\P{^Is_Numeric_Value=0.015625}', "");
-    Error('\p{Is_Nv=_/a/+0001/000000064}');
-    Error('\P{Is_Nv=_/a/+0001/000000064}');
-    Expect(1, 73667, '\p{Is_Nv=0000000001/00000064}', "");
-    Expect(0, 73667, '\p{^Is_Nv=0000000001/00000064}', "");
-    Expect(0, 73667, '\P{Is_Nv=0000000001/00000064}', "");
-    Expect(1, 73667, '\P{^Is_Nv=0000000001/00000064}', "");
-    Expect(0, 73668, '\p{Is_Nv=0000000001/00000064}', "");
-    Expect(1, 73668, '\p{^Is_Nv=0000000001/00000064}', "");
-    Expect(1, 73668, '\P{Is_Nv=0000000001/00000064}', "");
-    Expect(0, 73668, '\P{^Is_Nv=0000000001/00000064}', "");
-    Expect(1, 73667, '\p{Is_Nv:   60/3840}', "");
-    Expect(0, 73667, '\p{^Is_Nv:   60/3840}', "");
-    Expect(0, 73667, '\P{Is_Nv:   60/3840}', "");
-    Expect(1, 73667, '\P{^Is_Nv:   60/3840}', "");
-    Expect(0, 73668, '\p{Is_Nv:   60/3840}', "");
-    Expect(1, 73668, '\p{^Is_Nv:   60/3840}', "");
-    Expect(1, 73668, '\P{Is_Nv:   60/3840}', "");
-    Expect(0, 73668, '\P{^Is_Nv:   60/3840}', "");
+    Error('\p{Is_Nv=_ 00001/64/a/}');
+    Error('\P{Is_Nv=_ 00001/64/a/}');
+    Expect(1, 73667, '\p{Is_Nv=+0000000001/0064}', "");
+    Expect(0, 73667, '\p{^Is_Nv=+0000000001/0064}', "");
+    Expect(0, 73667, '\P{Is_Nv=+0000000001/0064}', "");
+    Expect(1, 73667, '\P{^Is_Nv=+0000000001/0064}', "");
+    Expect(0, 73668, '\p{Is_Nv=+0000000001/0064}', "");
+    Expect(1, 73668, '\p{^Is_Nv=+0000000001/0064}', "");
+    Expect(1, 73668, '\P{Is_Nv=+0000000001/0064}', "");
+    Expect(0, 73668, '\P{^Is_Nv=+0000000001/0064}', "");
+    Expect(1, 73667, '\p{Is_Nv=60/3840}', "");
+    Expect(0, 73667, '\p{^Is_Nv=60/3840}', "");
+    Expect(0, 73667, '\P{Is_Nv=60/3840}', "");
+    Expect(1, 73667, '\P{^Is_Nv=60/3840}', "");
+    Expect(0, 73668, '\p{Is_Nv=60/3840}', "");
+    Expect(1, 73668, '\p{^Is_Nv=60/3840}', "");
+    Expect(1, 73668, '\P{Is_Nv=60/3840}', "");
+    Expect(0, 73668, '\P{^Is_Nv=60/3840}', "");
     Error('\p{Is_Nv=1.6e-02}');
     Error('\P{Is_Nv=1.6e-02}');
     Error('\p{Is_Nv=1.56e-02}');
     Error('\P{Is_Nv=1.56e-02}');
     Error('\p{Is_Nv=0.02}');
     Error('\P{Is_Nv=0.02}');
-    Expect(1, 73667, '\p{Is_Nv: 1.562e-02}', "");
-    Expect(0, 73667, '\p{^Is_Nv: 1.562e-02}', "");
-    Expect(0, 73667, '\P{Is_Nv: 1.562e-02}', "");
-    Expect(1, 73667, '\P{^Is_Nv: 1.562e-02}', "");
-    Expect(0, 73668, '\p{Is_Nv: 1.562e-02}', "");
-    Expect(1, 73668, '\p{^Is_Nv: 1.562e-02}', "");
-    Expect(1, 73668, '\P{Is_Nv: 1.562e-02}', "");
-    Expect(0, 73668, '\P{^Is_Nv: 1.562e-02}', "");
+    Expect(1, 73667, '\p{Is_Nv=1.562e-02}', "");
+    Expect(0, 73667, '\p{^Is_Nv=1.562e-02}', "");
+    Expect(0, 73667, '\P{Is_Nv=1.562e-02}', "");
+    Expect(1, 73667, '\P{^Is_Nv=1.562e-02}', "");
+    Expect(0, 73668, '\p{Is_Nv=1.562e-02}', "");
+    Expect(1, 73668, '\p{^Is_Nv=1.562e-02}', "");
+    Expect(1, 73668, '\P{Is_Nv=1.562e-02}', "");
+    Expect(0, 73668, '\P{^Is_Nv=1.562e-02}', "");
     Error('\p{Is_Nv=0.016}');
     Error('\P{Is_Nv=0.016}');
     Expect(1, 73667, '\p{Is_Nv=1.5625e-02}', "");
@@ -71581,14 +72171,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73668, '\P{^Is_Nv=1.5625e-02}', "");
     Error('\p{Is_Nv=0.0156}');
     Error('\P{Is_Nv=0.0156}');
-    Expect(1, 73667, '\p{Is_Nv:   1.56250e-02}', "");
-    Expect(0, 73667, '\p{^Is_Nv:   1.56250e-02}', "");
-    Expect(0, 73667, '\P{Is_Nv:   1.56250e-02}', "");
-    Expect(1, 73667, '\P{^Is_Nv:   1.56250e-02}', "");
-    Expect(0, 73668, '\p{Is_Nv:   1.56250e-02}', "");
-    Expect(1, 73668, '\p{^Is_Nv:   1.56250e-02}', "");
-    Expect(1, 73668, '\P{Is_Nv:   1.56250e-02}', "");
-    Expect(0, 73668, '\P{^Is_Nv:   1.56250e-02}', "");
+    Expect(1, 73667, '\p{Is_Nv=1.56250e-02}', "");
+    Expect(0, 73667, '\p{^Is_Nv=1.56250e-02}', "");
+    Expect(0, 73667, '\P{Is_Nv=1.56250e-02}', "");
+    Expect(1, 73667, '\P{^Is_Nv=1.56250e-02}', "");
+    Expect(0, 73668, '\p{Is_Nv=1.56250e-02}', "");
+    Expect(1, 73668, '\p{^Is_Nv=1.56250e-02}', "");
+    Expect(1, 73668, '\P{Is_Nv=1.56250e-02}', "");
+    Expect(0, 73668, '\P{^Is_Nv=1.56250e-02}', "");
     Expect(1, 73667, '\p{Is_Nv=0.01562}', "");
     Expect(0, 73667, '\p{^Is_Nv=0.01562}', "");
     Expect(0, 73667, '\P{Is_Nv=0.01562}', "");
@@ -71613,50 +72203,50 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73668, '\p{^Is_Nv=0.015625}', "");
     Expect(1, 73668, '\P{Is_Nv=0.015625}', "");
     Expect(0, 73668, '\P{^Is_Nv=0.015625}', "");
-    Error('\p{Numeric_Value=_-001/0007:=}');
-    Error('\P{Numeric_Value=_-001/0007:=}');
+    Error('\p{Numeric_Value=-/a/+000001/000007}');
+    Error('\P{Numeric_Value=-/a/+000001/000007}');
     Expect(1, 8528, '\p{Numeric_Value=:\A1/7\z:}', "");;
     Expect(0, 8529, '\p{Numeric_Value=:\A1/7\z:}', "");;
-    Expect(1, 8528, '\p{Numeric_Value=000001/0007}', "");
-    Expect(0, 8528, '\p{^Numeric_Value=000001/0007}', "");
-    Expect(0, 8528, '\P{Numeric_Value=000001/0007}', "");
-    Expect(1, 8528, '\P{^Numeric_Value=000001/0007}', "");
-    Expect(0, 8529, '\p{Numeric_Value=000001/0007}', "");
-    Expect(1, 8529, '\p{^Numeric_Value=000001/0007}', "");
-    Expect(1, 8529, '\P{Numeric_Value=000001/0007}', "");
-    Expect(0, 8529, '\P{^Numeric_Value=000001/0007}', "");
-    Expect(1, 8528, '\p{Numeric_Value:   60/420}', "");
-    Expect(0, 8528, '\p{^Numeric_Value:   60/420}', "");
-    Expect(0, 8528, '\P{Numeric_Value:   60/420}', "");
-    Expect(1, 8528, '\P{^Numeric_Value:   60/420}', "");
-    Expect(0, 8529, '\p{Numeric_Value:   60/420}', "");
-    Expect(1, 8529, '\p{^Numeric_Value:   60/420}', "");
-    Expect(1, 8529, '\P{Numeric_Value:   60/420}', "");
-    Expect(0, 8529, '\P{^Numeric_Value:   60/420}', "");
-    Error('\p{Numeric_Value:	1.4e-01}');
-    Error('\P{Numeric_Value:	1.4e-01}');
+    Expect(1, 8528, '\p{Numeric_Value:00000001/000000007}', "");
+    Expect(0, 8528, '\p{^Numeric_Value:00000001/000000007}', "");
+    Expect(0, 8528, '\P{Numeric_Value:00000001/000000007}', "");
+    Expect(1, 8528, '\P{^Numeric_Value:00000001/000000007}', "");
+    Expect(0, 8529, '\p{Numeric_Value:00000001/000000007}', "");
+    Expect(1, 8529, '\p{^Numeric_Value:00000001/000000007}', "");
+    Expect(1, 8529, '\P{Numeric_Value:00000001/000000007}', "");
+    Expect(0, 8529, '\P{^Numeric_Value:00000001/000000007}', "");
+    Expect(1, 8528, '\p{Numeric_Value=60/420}', "");
+    Expect(0, 8528, '\p{^Numeric_Value=60/420}', "");
+    Expect(0, 8528, '\P{Numeric_Value=60/420}', "");
+    Expect(1, 8528, '\P{^Numeric_Value=60/420}', "");
+    Expect(0, 8529, '\p{Numeric_Value=60/420}', "");
+    Expect(1, 8529, '\p{^Numeric_Value=60/420}', "");
+    Expect(1, 8529, '\P{Numeric_Value=60/420}', "");
+    Expect(0, 8529, '\P{^Numeric_Value=60/420}', "");
+    Error('\p{Numeric_Value:1.4e-01}');
+    Error('\P{Numeric_Value:1.4e-01}');
     Error('\p{Numeric_Value=1.43e-01}');
     Error('\P{Numeric_Value=1.43e-01}');
     Error('\p{Numeric_Value=0.14}');
     Error('\P{Numeric_Value=0.14}');
-    Expect(1, 8528, '\p{Numeric_Value=1.429e-01}', "");
-    Expect(0, 8528, '\p{^Numeric_Value=1.429e-01}', "");
-    Expect(0, 8528, '\P{Numeric_Value=1.429e-01}', "");
-    Expect(1, 8528, '\P{^Numeric_Value=1.429e-01}', "");
-    Expect(0, 8529, '\p{Numeric_Value=1.429e-01}', "");
-    Expect(1, 8529, '\p{^Numeric_Value=1.429e-01}', "");
-    Expect(1, 8529, '\P{Numeric_Value=1.429e-01}', "");
-    Expect(0, 8529, '\P{^Numeric_Value=1.429e-01}', "");
+    Expect(1, 8528, '\p{Numeric_Value: 1.429e-01}', "");
+    Expect(0, 8528, '\p{^Numeric_Value: 1.429e-01}', "");
+    Expect(0, 8528, '\P{Numeric_Value: 1.429e-01}', "");
+    Expect(1, 8528, '\P{^Numeric_Value: 1.429e-01}', "");
+    Expect(0, 8529, '\p{Numeric_Value: 1.429e-01}', "");
+    Expect(1, 8529, '\p{^Numeric_Value: 1.429e-01}', "");
+    Expect(1, 8529, '\P{Numeric_Value: 1.429e-01}', "");
+    Expect(0, 8529, '\P{^Numeric_Value: 1.429e-01}', "");
     Error('\p{Numeric_Value=0.143}');
     Error('\P{Numeric_Value=0.143}');
-    Expect(1, 8528, '\p{Numeric_Value:	1.4286e-01}', "");
-    Expect(0, 8528, '\p{^Numeric_Value:	1.4286e-01}', "");
-    Expect(0, 8528, '\P{Numeric_Value:	1.4286e-01}', "");
-    Expect(1, 8528, '\P{^Numeric_Value:	1.4286e-01}', "");
-    Expect(0, 8529, '\p{Numeric_Value:	1.4286e-01}', "");
-    Expect(1, 8529, '\p{^Numeric_Value:	1.4286e-01}', "");
-    Expect(1, 8529, '\P{Numeric_Value:	1.4286e-01}', "");
-    Expect(0, 8529, '\P{^Numeric_Value:	1.4286e-01}', "");
+    Expect(1, 8528, '\p{Numeric_Value=1.4286e-01}', "");
+    Expect(0, 8528, '\p{^Numeric_Value=1.4286e-01}', "");
+    Expect(0, 8528, '\P{Numeric_Value=1.4286e-01}', "");
+    Expect(1, 8528, '\P{^Numeric_Value=1.4286e-01}', "");
+    Expect(0, 8529, '\p{Numeric_Value=1.4286e-01}', "");
+    Expect(1, 8529, '\p{^Numeric_Value=1.4286e-01}', "");
+    Expect(1, 8529, '\P{Numeric_Value=1.4286e-01}', "");
+    Expect(0, 8529, '\P{^Numeric_Value=1.4286e-01}', "");
     Expect(1, 8528, '\p{Numeric_Value=0.1429}', "");
     Expect(0, 8528, '\p{^Numeric_Value=0.1429}', "");
     Expect(0, 8528, '\P{Numeric_Value=0.1429}', "");
@@ -71665,14 +72255,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Numeric_Value=0.1429}', "");
     Expect(1, 8529, '\P{Numeric_Value=0.1429}', "");
     Expect(0, 8529, '\P{^Numeric_Value=0.1429}', "");
-    Expect(1, 8528, '\p{Numeric_Value: 1.42857e-01}', "");
-    Expect(0, 8528, '\p{^Numeric_Value: 1.42857e-01}', "");
-    Expect(0, 8528, '\P{Numeric_Value: 1.42857e-01}', "");
-    Expect(1, 8528, '\P{^Numeric_Value: 1.42857e-01}', "");
-    Expect(0, 8529, '\p{Numeric_Value: 1.42857e-01}', "");
-    Expect(1, 8529, '\p{^Numeric_Value: 1.42857e-01}', "");
-    Expect(1, 8529, '\P{Numeric_Value: 1.42857e-01}', "");
-    Expect(0, 8529, '\P{^Numeric_Value: 1.42857e-01}', "");
+    Expect(1, 8528, '\p{Numeric_Value=1.42857e-01}', "");
+    Expect(0, 8528, '\p{^Numeric_Value=1.42857e-01}', "");
+    Expect(0, 8528, '\P{Numeric_Value=1.42857e-01}', "");
+    Expect(1, 8528, '\P{^Numeric_Value=1.42857e-01}', "");
+    Expect(0, 8529, '\p{Numeric_Value=1.42857e-01}', "");
+    Expect(1, 8529, '\p{^Numeric_Value=1.42857e-01}', "");
+    Expect(1, 8529, '\P{Numeric_Value=1.42857e-01}', "");
+    Expect(0, 8529, '\P{^Numeric_Value=1.42857e-01}', "");
     Expect(1, 8528, '\p{Numeric_Value=0.14286}', "");
     Expect(0, 8528, '\p{^Numeric_Value=0.14286}', "");
     Expect(0, 8528, '\P{Numeric_Value=0.14286}', "");
@@ -71681,18 +72271,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Numeric_Value=0.14286}', "");
     Expect(1, 8529, '\P{Numeric_Value=0.14286}', "");
     Expect(0, 8529, '\P{^Numeric_Value=0.14286}', "");
-    Error('\p{Nv=:=-001/07}');
-    Error('\P{Nv=:=-001/07}');
+    Error('\p{Nv:	-_000000001/07/a/}');
+    Error('\P{Nv:	-_000000001/07/a/}');
     Expect(1, 8528, '\p{Nv=:\A1/7\z:}', "");;
     Expect(0, 8529, '\p{Nv=:\A1/7\z:}', "");;
-    Expect(1, 8528, '\p{Nv=+001/000007}', "");
-    Expect(0, 8528, '\p{^Nv=+001/000007}', "");
-    Expect(0, 8528, '\P{Nv=+001/000007}', "");
-    Expect(1, 8528, '\P{^Nv=+001/000007}', "");
-    Expect(0, 8529, '\p{Nv=+001/000007}', "");
-    Expect(1, 8529, '\p{^Nv=+001/000007}', "");
-    Expect(1, 8529, '\P{Nv=+001/000007}', "");
-    Expect(0, 8529, '\P{^Nv=+001/000007}', "");
+    Expect(1, 8528, '\p{Nv=000001/7}', "");
+    Expect(0, 8528, '\p{^Nv=000001/7}', "");
+    Expect(0, 8528, '\P{Nv=000001/7}', "");
+    Expect(1, 8528, '\P{^Nv=000001/7}', "");
+    Expect(0, 8529, '\p{Nv=000001/7}', "");
+    Expect(1, 8529, '\p{^Nv=000001/7}', "");
+    Expect(1, 8529, '\P{Nv=000001/7}', "");
+    Expect(0, 8529, '\P{^Nv=000001/7}', "");
     Expect(1, 8528, '\p{Nv=60/420}', "");
     Expect(0, 8528, '\p{^Nv=60/420}', "");
     Expect(0, 8528, '\P{Nv=60/420}', "");
@@ -71707,24 +72297,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Nv=1.43e-01}');
     Error('\p{Nv=0.14}');
     Error('\P{Nv=0.14}');
-    Expect(1, 8528, '\p{Nv:	1.429e-01}', "");
-    Expect(0, 8528, '\p{^Nv:	1.429e-01}', "");
-    Expect(0, 8528, '\P{Nv:	1.429e-01}', "");
-    Expect(1, 8528, '\P{^Nv:	1.429e-01}', "");
-    Expect(0, 8529, '\p{Nv:	1.429e-01}', "");
-    Expect(1, 8529, '\p{^Nv:	1.429e-01}', "");
-    Expect(1, 8529, '\P{Nv:	1.429e-01}', "");
-    Expect(0, 8529, '\P{^Nv:	1.429e-01}', "");
+    Expect(1, 8528, '\p{Nv=1.429e-01}', "");
+    Expect(0, 8528, '\p{^Nv=1.429e-01}', "");
+    Expect(0, 8528, '\P{Nv=1.429e-01}', "");
+    Expect(1, 8528, '\P{^Nv=1.429e-01}', "");
+    Expect(0, 8529, '\p{Nv=1.429e-01}', "");
+    Expect(1, 8529, '\p{^Nv=1.429e-01}', "");
+    Expect(1, 8529, '\P{Nv=1.429e-01}', "");
+    Expect(0, 8529, '\P{^Nv=1.429e-01}', "");
     Error('\p{Nv=0.143}');
     Error('\P{Nv=0.143}');
-    Expect(1, 8528, '\p{Nv:	1.4286e-01}', "");
-    Expect(0, 8528, '\p{^Nv:	1.4286e-01}', "");
-    Expect(0, 8528, '\P{Nv:	1.4286e-01}', "");
-    Expect(1, 8528, '\P{^Nv:	1.4286e-01}', "");
-    Expect(0, 8529, '\p{Nv:	1.4286e-01}', "");
-    Expect(1, 8529, '\p{^Nv:	1.4286e-01}', "");
-    Expect(1, 8529, '\P{Nv:	1.4286e-01}', "");
-    Expect(0, 8529, '\P{^Nv:	1.4286e-01}', "");
+    Expect(1, 8528, '\p{Nv=1.4286e-01}', "");
+    Expect(0, 8528, '\p{^Nv=1.4286e-01}', "");
+    Expect(0, 8528, '\P{Nv=1.4286e-01}', "");
+    Expect(1, 8528, '\P{^Nv=1.4286e-01}', "");
+    Expect(0, 8529, '\p{Nv=1.4286e-01}', "");
+    Expect(1, 8529, '\p{^Nv=1.4286e-01}', "");
+    Expect(1, 8529, '\P{Nv=1.4286e-01}', "");
+    Expect(0, 8529, '\P{^Nv=1.4286e-01}', "");
     Expect(1, 8528, '\p{Nv=0.1429}', "");
     Expect(0, 8528, '\p{^Nv=0.1429}', "");
     Expect(0, 8528, '\P{Nv=0.1429}', "");
@@ -71733,40 +72323,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Nv=0.1429}', "");
     Expect(1, 8529, '\P{Nv=0.1429}', "");
     Expect(0, 8529, '\P{^Nv=0.1429}', "");
-    Expect(1, 8528, '\p{Nv=1.42857e-01}', "");
-    Expect(0, 8528, '\p{^Nv=1.42857e-01}', "");
-    Expect(0, 8528, '\P{Nv=1.42857e-01}', "");
-    Expect(1, 8528, '\P{^Nv=1.42857e-01}', "");
-    Expect(0, 8529, '\p{Nv=1.42857e-01}', "");
-    Expect(1, 8529, '\p{^Nv=1.42857e-01}', "");
-    Expect(1, 8529, '\P{Nv=1.42857e-01}', "");
-    Expect(0, 8529, '\P{^Nv=1.42857e-01}', "");
-    Expect(1, 8528, '\p{Nv:0.14286}', "");
-    Expect(0, 8528, '\p{^Nv:0.14286}', "");
-    Expect(0, 8528, '\P{Nv:0.14286}', "");
-    Expect(1, 8528, '\P{^Nv:0.14286}', "");
-    Expect(0, 8529, '\p{Nv:0.14286}', "");
-    Expect(1, 8529, '\p{^Nv:0.14286}', "");
-    Expect(1, 8529, '\P{Nv:0.14286}', "");
-    Expect(0, 8529, '\P{^Nv:0.14286}', "");
-    Error('\p{Is_Numeric_Value=	/a/00001/007}');
-    Error('\P{Is_Numeric_Value=	/a/00001/007}');
-    Expect(1, 8528, '\p{Is_Numeric_Value=000000001/0007}', "");
-    Expect(0, 8528, '\p{^Is_Numeric_Value=000000001/0007}', "");
-    Expect(0, 8528, '\P{Is_Numeric_Value=000000001/0007}', "");
-    Expect(1, 8528, '\P{^Is_Numeric_Value=000000001/0007}', "");
-    Expect(0, 8529, '\p{Is_Numeric_Value=000000001/0007}', "");
-    Expect(1, 8529, '\p{^Is_Numeric_Value=000000001/0007}', "");
-    Expect(1, 8529, '\P{Is_Numeric_Value=000000001/0007}', "");
-    Expect(0, 8529, '\P{^Is_Numeric_Value=000000001/0007}', "");
-    Expect(1, 8528, '\p{Is_Numeric_Value=60/420}', "");
-    Expect(0, 8528, '\p{^Is_Numeric_Value=60/420}', "");
-    Expect(0, 8528, '\P{Is_Numeric_Value=60/420}', "");
-    Expect(1, 8528, '\P{^Is_Numeric_Value=60/420}', "");
-    Expect(0, 8529, '\p{Is_Numeric_Value=60/420}', "");
-    Expect(1, 8529, '\p{^Is_Numeric_Value=60/420}', "");
-    Expect(1, 8529, '\P{Is_Numeric_Value=60/420}', "");
-    Expect(0, 8529, '\P{^Is_Numeric_Value=60/420}', "");
+    Expect(1, 8528, '\p{Nv:	1.42857e-01}', "");
+    Expect(0, 8528, '\p{^Nv:	1.42857e-01}', "");
+    Expect(0, 8528, '\P{Nv:	1.42857e-01}', "");
+    Expect(1, 8528, '\P{^Nv:	1.42857e-01}', "");
+    Expect(0, 8529, '\p{Nv:	1.42857e-01}', "");
+    Expect(1, 8529, '\p{^Nv:	1.42857e-01}', "");
+    Expect(1, 8529, '\P{Nv:	1.42857e-01}', "");
+    Expect(0, 8529, '\P{^Nv:	1.42857e-01}', "");
+    Expect(1, 8528, '\p{Nv=0.14286}', "");
+    Expect(0, 8528, '\p{^Nv=0.14286}', "");
+    Expect(0, 8528, '\P{Nv=0.14286}', "");
+    Expect(1, 8528, '\P{^Nv=0.14286}', "");
+    Expect(0, 8529, '\p{Nv=0.14286}', "");
+    Expect(1, 8529, '\p{^Nv=0.14286}', "");
+    Expect(1, 8529, '\P{Nv=0.14286}', "");
+    Expect(0, 8529, '\P{^Nv=0.14286}', "");
+    Error('\p{Is_Numeric_Value:	  +00000001/0007:=}');
+    Error('\P{Is_Numeric_Value:	  +00000001/0007:=}');
+    Expect(1, 8528, '\p{Is_Numeric_Value:	01/0000000007}', "");
+    Expect(0, 8528, '\p{^Is_Numeric_Value:	01/0000000007}', "");
+    Expect(0, 8528, '\P{Is_Numeric_Value:	01/0000000007}', "");
+    Expect(1, 8528, '\P{^Is_Numeric_Value:	01/0000000007}', "");
+    Expect(0, 8529, '\p{Is_Numeric_Value:	01/0000000007}', "");
+    Expect(1, 8529, '\p{^Is_Numeric_Value:	01/0000000007}', "");
+    Expect(1, 8529, '\P{Is_Numeric_Value:	01/0000000007}', "");
+    Expect(0, 8529, '\P{^Is_Numeric_Value:	01/0000000007}', "");
+    Expect(1, 8528, '\p{Is_Numeric_Value:   60/420}', "");
+    Expect(0, 8528, '\p{^Is_Numeric_Value:   60/420}', "");
+    Expect(0, 8528, '\P{Is_Numeric_Value:   60/420}', "");
+    Expect(1, 8528, '\P{^Is_Numeric_Value:   60/420}', "");
+    Expect(0, 8529, '\p{Is_Numeric_Value:   60/420}', "");
+    Expect(1, 8529, '\p{^Is_Numeric_Value:   60/420}', "");
+    Expect(1, 8529, '\P{Is_Numeric_Value:   60/420}', "");
+    Expect(0, 8529, '\P{^Is_Numeric_Value:   60/420}', "");
     Error('\p{Is_Numeric_Value=1.4e-01}');
     Error('\P{Is_Numeric_Value=1.4e-01}');
     Error('\p{Is_Numeric_Value=1.43e-01}');
@@ -71791,22 +72381,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Is_Numeric_Value=1.4286e-01}', "");
     Expect(1, 8529, '\P{Is_Numeric_Value=1.4286e-01}', "");
     Expect(0, 8529, '\P{^Is_Numeric_Value=1.4286e-01}', "");
-    Expect(1, 8528, '\p{Is_Numeric_Value:	0.1429}', "");
-    Expect(0, 8528, '\p{^Is_Numeric_Value:	0.1429}', "");
-    Expect(0, 8528, '\P{Is_Numeric_Value:	0.1429}', "");
-    Expect(1, 8528, '\P{^Is_Numeric_Value:	0.1429}', "");
-    Expect(0, 8529, '\p{Is_Numeric_Value:	0.1429}', "");
-    Expect(1, 8529, '\p{^Is_Numeric_Value:	0.1429}', "");
-    Expect(1, 8529, '\P{Is_Numeric_Value:	0.1429}', "");
-    Expect(0, 8529, '\P{^Is_Numeric_Value:	0.1429}', "");
-    Expect(1, 8528, '\p{Is_Numeric_Value=1.42857e-01}', "");
-    Expect(0, 8528, '\p{^Is_Numeric_Value=1.42857e-01}', "");
-    Expect(0, 8528, '\P{Is_Numeric_Value=1.42857e-01}', "");
-    Expect(1, 8528, '\P{^Is_Numeric_Value=1.42857e-01}', "");
-    Expect(0, 8529, '\p{Is_Numeric_Value=1.42857e-01}', "");
-    Expect(1, 8529, '\p{^Is_Numeric_Value=1.42857e-01}', "");
-    Expect(1, 8529, '\P{Is_Numeric_Value=1.42857e-01}', "");
-    Expect(0, 8529, '\P{^Is_Numeric_Value=1.42857e-01}', "");
+    Expect(1, 8528, '\p{Is_Numeric_Value=0.1429}', "");
+    Expect(0, 8528, '\p{^Is_Numeric_Value=0.1429}', "");
+    Expect(0, 8528, '\P{Is_Numeric_Value=0.1429}', "");
+    Expect(1, 8528, '\P{^Is_Numeric_Value=0.1429}', "");
+    Expect(0, 8529, '\p{Is_Numeric_Value=0.1429}', "");
+    Expect(1, 8529, '\p{^Is_Numeric_Value=0.1429}', "");
+    Expect(1, 8529, '\P{Is_Numeric_Value=0.1429}', "");
+    Expect(0, 8529, '\P{^Is_Numeric_Value=0.1429}', "");
+    Expect(1, 8528, '\p{Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(0, 8528, '\p{^Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(0, 8528, '\P{Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(1, 8528, '\P{^Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(0, 8529, '\p{Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(1, 8529, '\p{^Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(1, 8529, '\P{Is_Numeric_Value: 1.42857e-01}', "");
+    Expect(0, 8529, '\P{^Is_Numeric_Value: 1.42857e-01}', "");
     Expect(1, 8528, '\p{Is_Numeric_Value=0.14286}', "");
     Expect(0, 8528, '\p{^Is_Numeric_Value=0.14286}', "");
     Expect(0, 8528, '\P{Is_Numeric_Value=0.14286}', "");
@@ -71815,16 +72405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Is_Numeric_Value=0.14286}', "");
     Expect(1, 8529, '\P{Is_Numeric_Value=0.14286}', "");
     Expect(0, 8529, '\P{^Is_Numeric_Value=0.14286}', "");
-    Error('\p{Is_Nv= /a/+000001/07}');
-    Error('\P{Is_Nv= /a/+000001/07}');
-    Expect(1, 8528, '\p{Is_Nv=+0001/7}', "");
-    Expect(0, 8528, '\p{^Is_Nv=+0001/7}', "");
-    Expect(0, 8528, '\P{Is_Nv=+0001/7}', "");
-    Expect(1, 8528, '\P{^Is_Nv=+0001/7}', "");
-    Expect(0, 8529, '\p{Is_Nv=+0001/7}', "");
-    Expect(1, 8529, '\p{^Is_Nv=+0001/7}', "");
-    Expect(1, 8529, '\P{Is_Nv=+0001/7}', "");
-    Expect(0, 8529, '\P{^Is_Nv=+0001/7}', "");
+    Error('\p{Is_Nv=:=00000001/000000007}');
+    Error('\P{Is_Nv=:=00000001/000000007}');
+    Expect(1, 8528, '\p{Is_Nv=+00000001/0000007}', "");
+    Expect(0, 8528, '\p{^Is_Nv=+00000001/0000007}', "");
+    Expect(0, 8528, '\P{Is_Nv=+00000001/0000007}', "");
+    Expect(1, 8528, '\P{^Is_Nv=+00000001/0000007}', "");
+    Expect(0, 8529, '\p{Is_Nv=+00000001/0000007}', "");
+    Expect(1, 8529, '\p{^Is_Nv=+00000001/0000007}', "");
+    Expect(1, 8529, '\P{Is_Nv=+00000001/0000007}', "");
+    Expect(0, 8529, '\P{^Is_Nv=+00000001/0000007}', "");
     Expect(1, 8528, '\p{Is_Nv=60/420}', "");
     Expect(0, 8528, '\p{^Is_Nv=60/420}', "");
     Expect(0, 8528, '\P{Is_Nv=60/420}', "");
@@ -71833,8 +72423,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Is_Nv=60/420}', "");
     Expect(1, 8529, '\P{Is_Nv=60/420}', "");
     Expect(0, 8529, '\P{^Is_Nv=60/420}', "");
-    Error('\p{Is_Nv=1.4e-01}');
-    Error('\P{Is_Nv=1.4e-01}');
+    Error('\p{Is_Nv:   1.4e-01}');
+    Error('\P{Is_Nv:   1.4e-01}');
     Error('\p{Is_Nv=1.43e-01}');
     Error('\P{Is_Nv=1.43e-01}');
     Error('\p{Is_Nv=0.14}');
@@ -71849,22 +72439,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8529, '\P{^Is_Nv=1.429e-01}', "");
     Error('\p{Is_Nv=0.143}');
     Error('\P{Is_Nv=0.143}');
-    Expect(1, 8528, '\p{Is_Nv:	1.4286e-01}', "");
-    Expect(0, 8528, '\p{^Is_Nv:	1.4286e-01}', "");
-    Expect(0, 8528, '\P{Is_Nv:	1.4286e-01}', "");
-    Expect(1, 8528, '\P{^Is_Nv:	1.4286e-01}', "");
-    Expect(0, 8529, '\p{Is_Nv:	1.4286e-01}', "");
-    Expect(1, 8529, '\p{^Is_Nv:	1.4286e-01}', "");
-    Expect(1, 8529, '\P{Is_Nv:	1.4286e-01}', "");
-    Expect(0, 8529, '\P{^Is_Nv:	1.4286e-01}', "");
-    Expect(1, 8528, '\p{Is_Nv=0.1429}', "");
-    Expect(0, 8528, '\p{^Is_Nv=0.1429}', "");
-    Expect(0, 8528, '\P{Is_Nv=0.1429}', "");
-    Expect(1, 8528, '\P{^Is_Nv=0.1429}', "");
-    Expect(0, 8529, '\p{Is_Nv=0.1429}', "");
-    Expect(1, 8529, '\p{^Is_Nv=0.1429}', "");
-    Expect(1, 8529, '\P{Is_Nv=0.1429}', "");
-    Expect(0, 8529, '\P{^Is_Nv=0.1429}', "");
+    Expect(1, 8528, '\p{Is_Nv=1.4286e-01}', "");
+    Expect(0, 8528, '\p{^Is_Nv=1.4286e-01}', "");
+    Expect(0, 8528, '\P{Is_Nv=1.4286e-01}', "");
+    Expect(1, 8528, '\P{^Is_Nv=1.4286e-01}', "");
+    Expect(0, 8529, '\p{Is_Nv=1.4286e-01}', "");
+    Expect(1, 8529, '\p{^Is_Nv=1.4286e-01}', "");
+    Expect(1, 8529, '\P{Is_Nv=1.4286e-01}', "");
+    Expect(0, 8529, '\P{^Is_Nv=1.4286e-01}', "");
+    Expect(1, 8528, '\p{Is_Nv: 0.1429}', "");
+    Expect(0, 8528, '\p{^Is_Nv: 0.1429}', "");
+    Expect(0, 8528, '\P{Is_Nv: 0.1429}', "");
+    Expect(1, 8528, '\P{^Is_Nv: 0.1429}', "");
+    Expect(0, 8529, '\p{Is_Nv: 0.1429}', "");
+    Expect(1, 8529, '\p{^Is_Nv: 0.1429}', "");
+    Expect(1, 8529, '\P{Is_Nv: 0.1429}', "");
+    Expect(0, 8529, '\P{^Is_Nv: 0.1429}', "");
     Expect(1, 8528, '\p{Is_Nv=1.42857e-01}', "");
     Expect(0, 8528, '\p{^Is_Nv=1.42857e-01}', "");
     Expect(0, 8528, '\P{Is_Nv=1.42857e-01}', "");
@@ -71881,18 +72471,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8529, '\p{^Is_Nv=0.14286}', "");
     Expect(1, 8529, '\P{Is_Nv=0.14286}', "");
     Expect(0, 8529, '\P{^Is_Nv=0.14286}', "");
-    Error('\p{Numeric_Value: _:=+00001/00000008}');
-    Error('\P{Numeric_Value: _:=+00001/00000008}');
+    Error('\p{Numeric_Value=/a/-_01/00008}');
+    Error('\P{Numeric_Value=/a/-_01/00008}');
     Expect(1, 74847, '\p{Numeric_Value=:\A1/8\z:}', "");;
     Expect(0, 74848, '\p{Numeric_Value=:\A1/8\z:}', "");;
-    Expect(1, 74847, '\p{Numeric_Value=0001/0000008}', "");
-    Expect(0, 74847, '\p{^Numeric_Value=0001/0000008}', "");
-    Expect(0, 74847, '\P{Numeric_Value=0001/0000008}', "");
-    Expect(1, 74847, '\P{^Numeric_Value=0001/0000008}', "");
-    Expect(0, 74848, '\p{Numeric_Value=0001/0000008}', "");
-    Expect(1, 74848, '\p{^Numeric_Value=0001/0000008}', "");
-    Expect(1, 74848, '\P{Numeric_Value=0001/0000008}', "");
-    Expect(0, 74848, '\P{^Numeric_Value=0001/0000008}', "");
+    Expect(1, 74847, '\p{Numeric_Value=0000000001/00000008}', "");
+    Expect(0, 74847, '\p{^Numeric_Value=0000000001/00000008}', "");
+    Expect(0, 74847, '\P{Numeric_Value=0000000001/00000008}', "");
+    Expect(1, 74847, '\P{^Numeric_Value=0000000001/00000008}', "");
+    Expect(0, 74848, '\p{Numeric_Value=0000000001/00000008}', "");
+    Expect(1, 74848, '\p{^Numeric_Value=0000000001/00000008}', "");
+    Expect(1, 74848, '\P{Numeric_Value=0000000001/00000008}', "");
+    Expect(0, 74848, '\P{^Numeric_Value=0000000001/00000008}', "");
     Expect(1, 74847, '\p{Numeric_Value=60/480}', "");
     Expect(0, 74847, '\p{^Numeric_Value=60/480}', "");
     Expect(0, 74847, '\P{Numeric_Value=60/480}', "");
@@ -71901,8 +72491,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Numeric_Value=60/480}', "");
     Expect(1, 74848, '\P{Numeric_Value=60/480}', "");
     Expect(0, 74848, '\P{^Numeric_Value=60/480}', "");
-    Error('\p{Numeric_Value=1.2e-01}');
-    Error('\P{Numeric_Value=1.2e-01}');
+    Error('\p{Numeric_Value:1.2e-01}');
+    Error('\P{Numeric_Value:1.2e-01}');
     Expect(1, 74847, '\p{Numeric_Value=1.25e-01}', "");
     Expect(0, 74847, '\p{^Numeric_Value=1.25e-01}', "");
     Expect(0, 74847, '\P{Numeric_Value=1.25e-01}', "");
@@ -71921,14 +72511,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Numeric_Value=1.250e-01}', "");
     Expect(1, 74848, '\P{Numeric_Value=1.250e-01}', "");
     Expect(0, 74848, '\P{^Numeric_Value=1.250e-01}', "");
-    Expect(1, 74847, '\p{Numeric_Value=0.125}', "");
-    Expect(0, 74847, '\p{^Numeric_Value=0.125}', "");
-    Expect(0, 74847, '\P{Numeric_Value=0.125}', "");
-    Expect(1, 74847, '\P{^Numeric_Value=0.125}', "");
-    Expect(0, 74848, '\p{Numeric_Value=0.125}', "");
-    Expect(1, 74848, '\p{^Numeric_Value=0.125}', "");
-    Expect(1, 74848, '\P{Numeric_Value=0.125}', "");
-    Expect(0, 74848, '\P{^Numeric_Value=0.125}', "");
+    Expect(1, 74847, '\p{Numeric_Value:0.125}', "");
+    Expect(0, 74847, '\p{^Numeric_Value:0.125}', "");
+    Expect(0, 74847, '\P{Numeric_Value:0.125}', "");
+    Expect(1, 74847, '\P{^Numeric_Value:0.125}', "");
+    Expect(0, 74848, '\p{Numeric_Value:0.125}', "");
+    Expect(1, 74848, '\p{^Numeric_Value:0.125}', "");
+    Expect(1, 74848, '\P{Numeric_Value:0.125}', "");
+    Expect(0, 74848, '\P{^Numeric_Value:0.125}', "");
     Expect(1, 74847, '\p{Numeric_Value=1.2500e-01}', "");
     Expect(0, 74847, '\p{^Numeric_Value=1.2500e-01}', "");
     Expect(0, 74847, '\P{Numeric_Value=1.2500e-01}', "");
@@ -71945,36 +72535,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Numeric_Value=0.1250}', "");
     Expect(1, 74848, '\P{Numeric_Value=0.1250}', "");
     Expect(0, 74848, '\P{^Numeric_Value=0.1250}', "");
-    Error('\p{Nv=_000000001/000008:=}');
-    Error('\P{Nv=_000000001/000008:=}');
+    Error('\p{Nv= 	+000000001/008/a/}');
+    Error('\P{Nv= 	+000000001/008/a/}');
     Expect(1, 74847, '\p{Nv=:\A1/8\z:}', "");;
     Expect(0, 74848, '\p{Nv=:\A1/8\z:}', "");;
-    Expect(1, 74847, '\p{Nv=+001/008}', "");
-    Expect(0, 74847, '\p{^Nv=+001/008}', "");
-    Expect(0, 74847, '\P{Nv=+001/008}', "");
-    Expect(1, 74847, '\P{^Nv=+001/008}', "");
-    Expect(0, 74848, '\p{Nv=+001/008}', "");
-    Expect(1, 74848, '\p{^Nv=+001/008}', "");
-    Expect(1, 74848, '\P{Nv=+001/008}', "");
-    Expect(0, 74848, '\P{^Nv=+001/008}', "");
-    Expect(1, 74847, '\p{Nv:	60/480}', "");
-    Expect(0, 74847, '\p{^Nv:	60/480}', "");
-    Expect(0, 74847, '\P{Nv:	60/480}', "");
-    Expect(1, 74847, '\P{^Nv:	60/480}', "");
-    Expect(0, 74848, '\p{Nv:	60/480}', "");
-    Expect(1, 74848, '\p{^Nv:	60/480}', "");
-    Expect(1, 74848, '\P{Nv:	60/480}', "");
-    Expect(0, 74848, '\P{^Nv:	60/480}', "");
-    Error('\p{Nv: 1.2e-01}');
-    Error('\P{Nv: 1.2e-01}');
-    Expect(1, 74847, '\p{Nv=1.25e-01}', "");
-    Expect(0, 74847, '\p{^Nv=1.25e-01}', "");
-    Expect(0, 74847, '\P{Nv=1.25e-01}', "");
-    Expect(1, 74847, '\P{^Nv=1.25e-01}', "");
-    Expect(0, 74848, '\p{Nv=1.25e-01}', "");
-    Expect(1, 74848, '\p{^Nv=1.25e-01}', "");
-    Expect(1, 74848, '\P{Nv=1.25e-01}', "");
-    Expect(0, 74848, '\P{^Nv=1.25e-01}', "");
+    Expect(1, 74847, '\p{Nv=000000001/008}', "");
+    Expect(0, 74847, '\p{^Nv=000000001/008}', "");
+    Expect(0, 74847, '\P{Nv=000000001/008}', "");
+    Expect(1, 74847, '\P{^Nv=000000001/008}', "");
+    Expect(0, 74848, '\p{Nv=000000001/008}', "");
+    Expect(1, 74848, '\p{^Nv=000000001/008}', "");
+    Expect(1, 74848, '\P{Nv=000000001/008}', "");
+    Expect(0, 74848, '\P{^Nv=000000001/008}', "");
+    Expect(1, 74847, '\p{Nv=60/480}', "");
+    Expect(0, 74847, '\p{^Nv=60/480}', "");
+    Expect(0, 74847, '\P{Nv=60/480}', "");
+    Expect(1, 74847, '\P{^Nv=60/480}', "");
+    Expect(0, 74848, '\p{Nv=60/480}', "");
+    Expect(1, 74848, '\p{^Nv=60/480}', "");
+    Expect(1, 74848, '\P{Nv=60/480}', "");
+    Expect(0, 74848, '\P{^Nv=60/480}', "");
+    Error('\p{Nv=1.2e-01}');
+    Error('\P{Nv=1.2e-01}');
+    Expect(1, 74847, '\p{Nv: 1.25e-01}', "");
+    Expect(0, 74847, '\p{^Nv: 1.25e-01}', "");
+    Expect(0, 74847, '\P{Nv: 1.25e-01}', "");
+    Expect(1, 74847, '\P{^Nv: 1.25e-01}', "");
+    Expect(0, 74848, '\p{Nv: 1.25e-01}', "");
+    Expect(1, 74848, '\p{^Nv: 1.25e-01}', "");
+    Expect(1, 74848, '\P{Nv: 1.25e-01}', "");
+    Expect(0, 74848, '\P{^Nv: 1.25e-01}', "");
     Error('\p{Nv=0.12}');
     Error('\P{Nv=0.12}');
     Expect(1, 74847, '\p{Nv=1.250e-01}', "");
@@ -71985,14 +72575,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Nv=1.250e-01}', "");
     Expect(1, 74848, '\P{Nv=1.250e-01}', "");
     Expect(0, 74848, '\P{^Nv=1.250e-01}', "");
-    Expect(1, 74847, '\p{Nv:0.125}', "");
-    Expect(0, 74847, '\p{^Nv:0.125}', "");
-    Expect(0, 74847, '\P{Nv:0.125}', "");
-    Expect(1, 74847, '\P{^Nv:0.125}', "");
-    Expect(0, 74848, '\p{Nv:0.125}', "");
-    Expect(1, 74848, '\p{^Nv:0.125}', "");
-    Expect(1, 74848, '\P{Nv:0.125}', "");
-    Expect(0, 74848, '\P{^Nv:0.125}', "");
+    Expect(1, 74847, '\p{Nv: 0.125}', "");
+    Expect(0, 74847, '\p{^Nv: 0.125}', "");
+    Expect(0, 74847, '\P{Nv: 0.125}', "");
+    Expect(1, 74847, '\P{^Nv: 0.125}', "");
+    Expect(0, 74848, '\p{Nv: 0.125}', "");
+    Expect(1, 74848, '\p{^Nv: 0.125}', "");
+    Expect(1, 74848, '\P{Nv: 0.125}', "");
+    Expect(0, 74848, '\P{^Nv: 0.125}', "");
     Expect(1, 74847, '\p{Nv=1.2500e-01}', "");
     Expect(0, 74847, '\p{^Nv=1.2500e-01}', "");
     Expect(0, 74847, '\P{Nv=1.2500e-01}', "");
@@ -72009,16 +72599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Nv=0.1250}', "");
     Expect(1, 74848, '\P{Nv=0.1250}', "");
     Expect(0, 74848, '\P{^Nv=0.1250}', "");
-    Error('\p{Is_Numeric_Value:   -:=+000000001/000008}');
-    Error('\P{Is_Numeric_Value:   -:=+000000001/000008}');
-    Expect(1, 74847, '\p{Is_Numeric_Value=0001/8}', "");
-    Expect(0, 74847, '\p{^Is_Numeric_Value=0001/8}', "");
-    Expect(0, 74847, '\P{Is_Numeric_Value=0001/8}', "");
-    Expect(1, 74847, '\P{^Is_Numeric_Value=0001/8}', "");
-    Expect(0, 74848, '\p{Is_Numeric_Value=0001/8}', "");
-    Expect(1, 74848, '\p{^Is_Numeric_Value=0001/8}', "");
-    Expect(1, 74848, '\P{Is_Numeric_Value=0001/8}', "");
-    Expect(0, 74848, '\P{^Is_Numeric_Value=0001/8}', "");
+    Error('\p{Is_Numeric_Value=/a/  1/008}');
+    Error('\P{Is_Numeric_Value=/a/  1/008}');
+    Expect(1, 74847, '\p{Is_Numeric_Value=+001/000000008}', "");
+    Expect(0, 74847, '\p{^Is_Numeric_Value=+001/000000008}', "");
+    Expect(0, 74847, '\P{Is_Numeric_Value=+001/000000008}', "");
+    Expect(1, 74847, '\P{^Is_Numeric_Value=+001/000000008}', "");
+    Expect(0, 74848, '\p{Is_Numeric_Value=+001/000000008}', "");
+    Expect(1, 74848, '\p{^Is_Numeric_Value=+001/000000008}', "");
+    Expect(1, 74848, '\P{Is_Numeric_Value=+001/000000008}', "");
+    Expect(0, 74848, '\P{^Is_Numeric_Value=+001/000000008}', "");
     Expect(1, 74847, '\p{Is_Numeric_Value=60/480}', "");
     Expect(0, 74847, '\p{^Is_Numeric_Value=60/480}', "");
     Expect(0, 74847, '\P{Is_Numeric_Value=60/480}', "");
@@ -72039,22 +72629,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74848, '\P{^Is_Numeric_Value=1.25e-01}', "");
     Error('\p{Is_Numeric_Value: 0.12}');
     Error('\P{Is_Numeric_Value: 0.12}');
-    Expect(1, 74847, '\p{Is_Numeric_Value: 1.250e-01}', "");
-    Expect(0, 74847, '\p{^Is_Numeric_Value: 1.250e-01}', "");
-    Expect(0, 74847, '\P{Is_Numeric_Value: 1.250e-01}', "");
-    Expect(1, 74847, '\P{^Is_Numeric_Value: 1.250e-01}', "");
-    Expect(0, 74848, '\p{Is_Numeric_Value: 1.250e-01}', "");
-    Expect(1, 74848, '\p{^Is_Numeric_Value: 1.250e-01}', "");
-    Expect(1, 74848, '\P{Is_Numeric_Value: 1.250e-01}', "");
-    Expect(0, 74848, '\P{^Is_Numeric_Value: 1.250e-01}', "");
-    Expect(1, 74847, '\p{Is_Numeric_Value:   0.125}', "");
-    Expect(0, 74847, '\p{^Is_Numeric_Value:   0.125}', "");
-    Expect(0, 74847, '\P{Is_Numeric_Value:   0.125}', "");
-    Expect(1, 74847, '\P{^Is_Numeric_Value:   0.125}', "");
-    Expect(0, 74848, '\p{Is_Numeric_Value:   0.125}', "");
-    Expect(1, 74848, '\p{^Is_Numeric_Value:   0.125}', "");
-    Expect(1, 74848, '\P{Is_Numeric_Value:   0.125}', "");
-    Expect(0, 74848, '\P{^Is_Numeric_Value:   0.125}', "");
+    Expect(1, 74847, '\p{Is_Numeric_Value=1.250e-01}', "");
+    Expect(0, 74847, '\p{^Is_Numeric_Value=1.250e-01}', "");
+    Expect(0, 74847, '\P{Is_Numeric_Value=1.250e-01}', "");
+    Expect(1, 74847, '\P{^Is_Numeric_Value=1.250e-01}', "");
+    Expect(0, 74848, '\p{Is_Numeric_Value=1.250e-01}', "");
+    Expect(1, 74848, '\p{^Is_Numeric_Value=1.250e-01}', "");
+    Expect(1, 74848, '\P{Is_Numeric_Value=1.250e-01}', "");
+    Expect(0, 74848, '\P{^Is_Numeric_Value=1.250e-01}', "");
+    Expect(1, 74847, '\p{Is_Numeric_Value=0.125}', "");
+    Expect(0, 74847, '\p{^Is_Numeric_Value=0.125}', "");
+    Expect(0, 74847, '\P{Is_Numeric_Value=0.125}', "");
+    Expect(1, 74847, '\P{^Is_Numeric_Value=0.125}', "");
+    Expect(0, 74848, '\p{Is_Numeric_Value=0.125}', "");
+    Expect(1, 74848, '\p{^Is_Numeric_Value=0.125}', "");
+    Expect(1, 74848, '\P{Is_Numeric_Value=0.125}', "");
+    Expect(0, 74848, '\P{^Is_Numeric_Value=0.125}', "");
     Expect(1, 74847, '\p{Is_Numeric_Value=1.2500e-01}', "");
     Expect(0, 74847, '\p{^Is_Numeric_Value=1.2500e-01}', "");
     Expect(0, 74847, '\P{Is_Numeric_Value=1.2500e-01}', "");
@@ -72063,32 +72653,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Is_Numeric_Value=1.2500e-01}', "");
     Expect(1, 74848, '\P{Is_Numeric_Value=1.2500e-01}', "");
     Expect(0, 74848, '\P{^Is_Numeric_Value=1.2500e-01}', "");
-    Expect(1, 74847, '\p{Is_Numeric_Value=0.1250}', "");
-    Expect(0, 74847, '\p{^Is_Numeric_Value=0.1250}', "");
-    Expect(0, 74847, '\P{Is_Numeric_Value=0.1250}', "");
-    Expect(1, 74847, '\P{^Is_Numeric_Value=0.1250}', "");
-    Expect(0, 74848, '\p{Is_Numeric_Value=0.1250}', "");
-    Expect(1, 74848, '\p{^Is_Numeric_Value=0.1250}', "");
-    Expect(1, 74848, '\P{Is_Numeric_Value=0.1250}', "");
-    Expect(0, 74848, '\P{^Is_Numeric_Value=0.1250}', "");
-    Error('\p{Is_Nv=/a/__+0000000001/0008}');
-    Error('\P{Is_Nv=/a/__+0000000001/0008}');
-    Expect(1, 74847, '\p{Is_Nv:   000001/8}', "");
-    Expect(0, 74847, '\p{^Is_Nv:   000001/8}', "");
-    Expect(0, 74847, '\P{Is_Nv:   000001/8}', "");
-    Expect(1, 74847, '\P{^Is_Nv:   000001/8}', "");
-    Expect(0, 74848, '\p{Is_Nv:   000001/8}', "");
-    Expect(1, 74848, '\p{^Is_Nv:   000001/8}', "");
-    Expect(1, 74848, '\P{Is_Nv:   000001/8}', "");
-    Expect(0, 74848, '\P{^Is_Nv:   000001/8}', "");
-    Expect(1, 74847, '\p{Is_Nv:   60/480}', "");
-    Expect(0, 74847, '\p{^Is_Nv:   60/480}', "");
-    Expect(0, 74847, '\P{Is_Nv:   60/480}', "");
-    Expect(1, 74847, '\P{^Is_Nv:   60/480}', "");
-    Expect(0, 74848, '\p{Is_Nv:   60/480}', "");
-    Expect(1, 74848, '\p{^Is_Nv:   60/480}', "");
-    Expect(1, 74848, '\P{Is_Nv:   60/480}', "");
-    Expect(0, 74848, '\P{^Is_Nv:   60/480}', "");
+    Expect(1, 74847, '\p{Is_Numeric_Value:	0.1250}', "");
+    Expect(0, 74847, '\p{^Is_Numeric_Value:	0.1250}', "");
+    Expect(0, 74847, '\P{Is_Numeric_Value:	0.1250}', "");
+    Expect(1, 74847, '\P{^Is_Numeric_Value:	0.1250}', "");
+    Expect(0, 74848, '\p{Is_Numeric_Value:	0.1250}', "");
+    Expect(1, 74848, '\p{^Is_Numeric_Value:	0.1250}', "");
+    Expect(1, 74848, '\P{Is_Numeric_Value:	0.1250}', "");
+    Expect(0, 74848, '\P{^Is_Numeric_Value:	0.1250}', "");
+    Error('\p{Is_Nv=:=-000000001/00008}');
+    Error('\P{Is_Nv=:=-000000001/00008}');
+    Expect(1, 74847, '\p{Is_Nv=0000000001/08}', "");
+    Expect(0, 74847, '\p{^Is_Nv=0000000001/08}', "");
+    Expect(0, 74847, '\P{Is_Nv=0000000001/08}', "");
+    Expect(1, 74847, '\P{^Is_Nv=0000000001/08}', "");
+    Expect(0, 74848, '\p{Is_Nv=0000000001/08}', "");
+    Expect(1, 74848, '\p{^Is_Nv=0000000001/08}', "");
+    Expect(1, 74848, '\P{Is_Nv=0000000001/08}', "");
+    Expect(0, 74848, '\P{^Is_Nv=0000000001/08}', "");
+    Expect(1, 74847, '\p{Is_Nv=60/480}', "");
+    Expect(0, 74847, '\p{^Is_Nv=60/480}', "");
+    Expect(0, 74847, '\P{Is_Nv=60/480}', "");
+    Expect(1, 74847, '\P{^Is_Nv=60/480}', "");
+    Expect(0, 74848, '\p{Is_Nv=60/480}', "");
+    Expect(1, 74848, '\p{^Is_Nv=60/480}', "");
+    Expect(1, 74848, '\P{Is_Nv=60/480}', "");
+    Expect(0, 74848, '\P{^Is_Nv=60/480}', "");
     Error('\p{Is_Nv=1.2e-01}');
     Error('\P{Is_Nv=1.2e-01}');
     Expect(1, 74847, '\p{Is_Nv=1.25e-01}', "");
@@ -72109,14 +72699,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Is_Nv=1.250e-01}', "");
     Expect(1, 74848, '\P{Is_Nv=1.250e-01}', "");
     Expect(0, 74848, '\P{^Is_Nv=1.250e-01}', "");
-    Expect(1, 74847, '\p{Is_Nv=0.125}', "");
-    Expect(0, 74847, '\p{^Is_Nv=0.125}', "");
-    Expect(0, 74847, '\P{Is_Nv=0.125}', "");
-    Expect(1, 74847, '\P{^Is_Nv=0.125}', "");
-    Expect(0, 74848, '\p{Is_Nv=0.125}', "");
-    Expect(1, 74848, '\p{^Is_Nv=0.125}', "");
-    Expect(1, 74848, '\P{Is_Nv=0.125}', "");
-    Expect(0, 74848, '\P{^Is_Nv=0.125}', "");
+    Expect(1, 74847, '\p{Is_Nv: 0.125}', "");
+    Expect(0, 74847, '\p{^Is_Nv: 0.125}', "");
+    Expect(0, 74847, '\P{Is_Nv: 0.125}', "");
+    Expect(1, 74847, '\P{^Is_Nv: 0.125}', "");
+    Expect(0, 74848, '\p{Is_Nv: 0.125}', "");
+    Expect(1, 74848, '\p{^Is_Nv: 0.125}', "");
+    Expect(1, 74848, '\P{Is_Nv: 0.125}', "");
+    Expect(0, 74848, '\P{^Is_Nv: 0.125}', "");
     Expect(1, 74847, '\p{Is_Nv=1.2500e-01}', "");
     Expect(0, 74847, '\p{^Is_Nv=1.2500e-01}', "");
     Expect(0, 74847, '\P{Is_Nv=1.2500e-01}', "");
@@ -72133,18 +72723,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74848, '\p{^Is_Nv=0.1250}', "");
     Expect(1, 74848, '\P{Is_Nv=0.1250}', "");
     Expect(0, 74848, '\P{^Is_Nv=0.1250}', "");
-    Error('\p{Numeric_Value=	/a/001/80}');
-    Error('\P{Numeric_Value=	/a/001/80}');
+    Error('\p{Numeric_Value=_:=001/000000080}');
+    Error('\P{Numeric_Value=_:=001/000000080}');
     Expect(1, 73666, '\p{Numeric_Value=:\A1/80\z:}', "");;
     Expect(0, 73667, '\p{Numeric_Value=:\A1/80\z:}', "");;
-    Expect(1, 73666, '\p{Numeric_Value=01/80}', "");
-    Expect(0, 73666, '\p{^Numeric_Value=01/80}', "");
-    Expect(0, 73666, '\P{Numeric_Value=01/80}', "");
-    Expect(1, 73666, '\P{^Numeric_Value=01/80}', "");
-    Expect(0, 73667, '\p{Numeric_Value=01/80}', "");
-    Expect(1, 73667, '\p{^Numeric_Value=01/80}', "");
-    Expect(1, 73667, '\P{Numeric_Value=01/80}', "");
-    Expect(0, 73667, '\P{^Numeric_Value=01/80}', "");
+    Expect(1, 73666, '\p{Numeric_Value=+00001/000080}', "");
+    Expect(0, 73666, '\p{^Numeric_Value=+00001/000080}', "");
+    Expect(0, 73666, '\P{Numeric_Value=+00001/000080}', "");
+    Expect(1, 73666, '\P{^Numeric_Value=+00001/000080}', "");
+    Expect(0, 73667, '\p{Numeric_Value=+00001/000080}', "");
+    Expect(1, 73667, '\p{^Numeric_Value=+00001/000080}', "");
+    Expect(1, 73667, '\P{Numeric_Value=+00001/000080}', "");
+    Expect(0, 73667, '\P{^Numeric_Value=+00001/000080}', "");
     Expect(1, 73666, '\p{Numeric_Value=60/4800}', "");
     Expect(0, 73666, '\p{^Numeric_Value=60/4800}', "");
     Expect(0, 73666, '\P{Numeric_Value=60/4800}', "");
@@ -72173,8 +72763,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Numeric_Value=1.250e-02}', "");
     Expect(1, 73667, '\P{Numeric_Value=1.250e-02}', "");
     Expect(0, 73667, '\P{^Numeric_Value=1.250e-02}', "");
-    Error('\p{Numeric_Value:	0.013}');
-    Error('\P{Numeric_Value:	0.013}');
+    Error('\p{Numeric_Value:   0.013}');
+    Error('\P{Numeric_Value:   0.013}');
     Expect(1, 73666, '\p{Numeric_Value=1.2500e-02}', "");
     Expect(0, 73666, '\p{^Numeric_Value=1.2500e-02}', "");
     Expect(0, 73666, '\P{Numeric_Value=1.2500e-02}', "");
@@ -72207,26 +72797,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Numeric_Value=0.01250}', "");
     Expect(1, 73667, '\P{Numeric_Value=0.01250}', "");
     Expect(0, 73667, '\P{^Numeric_Value=0.01250}', "");
-    Error('\p{Nv:_ 001/0000080/a/}');
-    Error('\P{Nv:_ 001/0000080/a/}');
+    Error('\p{Nv=  1/00000080:=}');
+    Error('\P{Nv=  1/00000080:=}');
     Expect(1, 73666, '\p{Nv=:\A1/80\z:}', "");;
     Expect(0, 73667, '\p{Nv=:\A1/80\z:}', "");;
-    Expect(1, 73666, '\p{Nv=+000001/0000000080}', "");
-    Expect(0, 73666, '\p{^Nv=+000001/0000000080}', "");
-    Expect(0, 73666, '\P{Nv=+000001/0000000080}', "");
-    Expect(1, 73666, '\P{^Nv=+000001/0000000080}', "");
-    Expect(0, 73667, '\p{Nv=+000001/0000000080}', "");
-    Expect(1, 73667, '\p{^Nv=+000001/0000000080}', "");
-    Expect(1, 73667, '\P{Nv=+000001/0000000080}', "");
-    Expect(0, 73667, '\P{^Nv=+000001/0000000080}', "");
-    Expect(1, 73666, '\p{Nv: 60/4800}', "");
-    Expect(0, 73666, '\p{^Nv: 60/4800}', "");
-    Expect(0, 73666, '\P{Nv: 60/4800}', "");
-    Expect(1, 73666, '\P{^Nv: 60/4800}', "");
-    Expect(0, 73667, '\p{Nv: 60/4800}', "");
-    Expect(1, 73667, '\p{^Nv: 60/4800}', "");
-    Expect(1, 73667, '\P{Nv: 60/4800}', "");
-    Expect(0, 73667, '\P{^Nv: 60/4800}', "");
+    Expect(1, 73666, '\p{Nv=1/00000080}', "");
+    Expect(0, 73666, '\p{^Nv=1/00000080}', "");
+    Expect(0, 73666, '\P{Nv=1/00000080}', "");
+    Expect(1, 73666, '\P{^Nv=1/00000080}', "");
+    Expect(0, 73667, '\p{Nv=1/00000080}', "");
+    Expect(1, 73667, '\p{^Nv=1/00000080}', "");
+    Expect(1, 73667, '\P{Nv=1/00000080}', "");
+    Expect(0, 73667, '\P{^Nv=1/00000080}', "");
+    Expect(1, 73666, '\p{Nv=60/4800}', "");
+    Expect(0, 73666, '\p{^Nv=60/4800}', "");
+    Expect(0, 73666, '\P{Nv=60/4800}', "");
+    Expect(1, 73666, '\P{^Nv=60/4800}', "");
+    Expect(0, 73667, '\p{Nv=60/4800}', "");
+    Expect(1, 73667, '\p{^Nv=60/4800}', "");
+    Expect(1, 73667, '\P{Nv=60/4800}', "");
+    Expect(0, 73667, '\P{^Nv=60/4800}', "");
     Error('\p{Nv=1.3e-02}');
     Error('\P{Nv=1.3e-02}');
     Expect(1, 73666, '\p{Nv=1.25e-02}', "");
@@ -72257,14 +72847,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Nv=1.2500e-02}', "");
     Expect(1, 73667, '\P{Nv=1.2500e-02}', "");
     Expect(0, 73667, '\P{^Nv=1.2500e-02}', "");
-    Expect(1, 73666, '\p{Nv=0.0125}', "");
-    Expect(0, 73666, '\p{^Nv=0.0125}', "");
-    Expect(0, 73666, '\P{Nv=0.0125}', "");
-    Expect(1, 73666, '\P{^Nv=0.0125}', "");
-    Expect(0, 73667, '\p{Nv=0.0125}', "");
-    Expect(1, 73667, '\p{^Nv=0.0125}', "");
-    Expect(1, 73667, '\P{Nv=0.0125}', "");
-    Expect(0, 73667, '\P{^Nv=0.0125}', "");
+    Expect(1, 73666, '\p{Nv:	0.0125}', "");
+    Expect(0, 73666, '\p{^Nv:	0.0125}', "");
+    Expect(0, 73666, '\P{Nv:	0.0125}', "");
+    Expect(1, 73666, '\P{^Nv:	0.0125}', "");
+    Expect(0, 73667, '\p{Nv:	0.0125}', "");
+    Expect(1, 73667, '\p{^Nv:	0.0125}', "");
+    Expect(1, 73667, '\P{Nv:	0.0125}', "");
+    Expect(0, 73667, '\P{^Nv:	0.0125}', "");
     Expect(1, 73666, '\p{Nv=1.25000e-02}', "");
     Expect(0, 73666, '\p{^Nv=1.25000e-02}', "");
     Expect(0, 73666, '\P{Nv=1.25000e-02}', "");
@@ -72281,16 +72871,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Nv=0.01250}', "");
     Expect(1, 73667, '\P{Nv=0.01250}', "");
     Expect(0, 73667, '\P{^Nv=0.01250}', "");
-    Error('\p{Is_Numeric_Value=/a/_001/0000080}');
-    Error('\P{Is_Numeric_Value=/a/_001/0000080}');
-    Expect(1, 73666, '\p{Is_Numeric_Value=1/00000000080}', "");
-    Expect(0, 73666, '\p{^Is_Numeric_Value=1/00000000080}', "");
-    Expect(0, 73666, '\P{Is_Numeric_Value=1/00000000080}', "");
-    Expect(1, 73666, '\P{^Is_Numeric_Value=1/00000000080}', "");
-    Expect(0, 73667, '\p{Is_Numeric_Value=1/00000000080}', "");
-    Expect(1, 73667, '\p{^Is_Numeric_Value=1/00000000080}', "");
-    Expect(1, 73667, '\P{Is_Numeric_Value=1/00000000080}', "");
-    Expect(0, 73667, '\P{^Is_Numeric_Value=1/00000000080}', "");
+    Error('\p{Is_Numeric_Value=:=_ 00000001/000000080}');
+    Error('\P{Is_Numeric_Value=:=_ 00000001/000000080}');
+    Expect(1, 73666, '\p{Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(0, 73666, '\p{^Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(0, 73666, '\P{Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(1, 73666, '\P{^Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(0, 73667, '\p{Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(1, 73667, '\p{^Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(1, 73667, '\P{Is_Numeric_Value=+0000000001/00000080}', "");
+    Expect(0, 73667, '\P{^Is_Numeric_Value=+0000000001/00000080}', "");
     Expect(1, 73666, '\p{Is_Numeric_Value=60/4800}', "");
     Expect(0, 73666, '\p{^Is_Numeric_Value=60/4800}', "");
     Expect(0, 73666, '\P{Is_Numeric_Value=60/4800}', "");
@@ -72299,8 +72889,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Is_Numeric_Value=60/4800}', "");
     Expect(1, 73667, '\P{Is_Numeric_Value=60/4800}', "");
     Expect(0, 73667, '\P{^Is_Numeric_Value=60/4800}', "");
-    Error('\p{Is_Numeric_Value:1.3e-02}');
-    Error('\P{Is_Numeric_Value:1.3e-02}');
+    Error('\p{Is_Numeric_Value=1.3e-02}');
+    Error('\P{Is_Numeric_Value=1.3e-02}');
     Expect(1, 73666, '\p{Is_Numeric_Value=1.25e-02}', "");
     Expect(0, 73666, '\p{^Is_Numeric_Value=1.25e-02}', "");
     Expect(0, 73666, '\P{Is_Numeric_Value=1.25e-02}', "");
@@ -72321,22 +72911,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73667, '\P{^Is_Numeric_Value=1.250e-02}', "");
     Error('\p{Is_Numeric_Value=0.013}');
     Error('\P{Is_Numeric_Value=0.013}');
-    Expect(1, 73666, '\p{Is_Numeric_Value:1.2500e-02}', "");
-    Expect(0, 73666, '\p{^Is_Numeric_Value:1.2500e-02}', "");
-    Expect(0, 73666, '\P{Is_Numeric_Value:1.2500e-02}', "");
-    Expect(1, 73666, '\P{^Is_Numeric_Value:1.2500e-02}', "");
-    Expect(0, 73667, '\p{Is_Numeric_Value:1.2500e-02}', "");
-    Expect(1, 73667, '\p{^Is_Numeric_Value:1.2500e-02}', "");
-    Expect(1, 73667, '\P{Is_Numeric_Value:1.2500e-02}', "");
-    Expect(0, 73667, '\P{^Is_Numeric_Value:1.2500e-02}', "");
-    Expect(1, 73666, '\p{Is_Numeric_Value:	0.0125}', "");
-    Expect(0, 73666, '\p{^Is_Numeric_Value:	0.0125}', "");
-    Expect(0, 73666, '\P{Is_Numeric_Value:	0.0125}', "");
-    Expect(1, 73666, '\P{^Is_Numeric_Value:	0.0125}', "");
-    Expect(0, 73667, '\p{Is_Numeric_Value:	0.0125}', "");
-    Expect(1, 73667, '\p{^Is_Numeric_Value:	0.0125}', "");
-    Expect(1, 73667, '\P{Is_Numeric_Value:	0.0125}', "");
-    Expect(0, 73667, '\P{^Is_Numeric_Value:	0.0125}', "");
+    Expect(1, 73666, '\p{Is_Numeric_Value=1.2500e-02}', "");
+    Expect(0, 73666, '\p{^Is_Numeric_Value=1.2500e-02}', "");
+    Expect(0, 73666, '\P{Is_Numeric_Value=1.2500e-02}', "");
+    Expect(1, 73666, '\P{^Is_Numeric_Value=1.2500e-02}', "");
+    Expect(0, 73667, '\p{Is_Numeric_Value=1.2500e-02}', "");
+    Expect(1, 73667, '\p{^Is_Numeric_Value=1.2500e-02}', "");
+    Expect(1, 73667, '\P{Is_Numeric_Value=1.2500e-02}', "");
+    Expect(0, 73667, '\P{^Is_Numeric_Value=1.2500e-02}', "");
+    Expect(1, 73666, '\p{Is_Numeric_Value=0.0125}', "");
+    Expect(0, 73666, '\p{^Is_Numeric_Value=0.0125}', "");
+    Expect(0, 73666, '\P{Is_Numeric_Value=0.0125}', "");
+    Expect(1, 73666, '\P{^Is_Numeric_Value=0.0125}', "");
+    Expect(0, 73667, '\p{Is_Numeric_Value=0.0125}', "");
+    Expect(1, 73667, '\p{^Is_Numeric_Value=0.0125}', "");
+    Expect(1, 73667, '\P{Is_Numeric_Value=0.0125}', "");
+    Expect(0, 73667, '\P{^Is_Numeric_Value=0.0125}', "");
     Expect(1, 73666, '\p{Is_Numeric_Value=1.25000e-02}', "");
     Expect(0, 73666, '\p{^Is_Numeric_Value=1.25000e-02}', "");
     Expect(0, 73666, '\P{Is_Numeric_Value=1.25000e-02}', "");
@@ -72353,16 +72943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Is_Numeric_Value=0.01250}', "");
     Expect(1, 73667, '\P{Is_Numeric_Value=0.01250}', "");
     Expect(0, 73667, '\P{^Is_Numeric_Value=0.01250}', "");
-    Error('\p{Is_Nv= /a/0001/00080}');
-    Error('\P{Is_Nv= /a/0001/00080}');
-    Expect(1, 73666, '\p{Is_Nv=00000001/0000000080}', "");
-    Expect(0, 73666, '\p{^Is_Nv=00000001/0000000080}', "");
-    Expect(0, 73666, '\P{Is_Nv=00000001/0000000080}', "");
-    Expect(1, 73666, '\P{^Is_Nv=00000001/0000000080}', "");
-    Expect(0, 73667, '\p{Is_Nv=00000001/0000000080}', "");
-    Expect(1, 73667, '\p{^Is_Nv=00000001/0000000080}', "");
-    Expect(1, 73667, '\P{Is_Nv=00000001/0000000080}', "");
-    Expect(0, 73667, '\P{^Is_Nv=00000001/0000000080}', "");
+    Error('\p{Is_Nv: _ +0000001/0000080/a/}');
+    Error('\P{Is_Nv: _ +0000001/0000080/a/}');
+    Expect(1, 73666, '\p{Is_Nv=0000001/0000080}', "");
+    Expect(0, 73666, '\p{^Is_Nv=0000001/0000080}', "");
+    Expect(0, 73666, '\P{Is_Nv=0000001/0000080}', "");
+    Expect(1, 73666, '\P{^Is_Nv=0000001/0000080}', "");
+    Expect(0, 73667, '\p{Is_Nv=0000001/0000080}', "");
+    Expect(1, 73667, '\p{^Is_Nv=0000001/0000080}', "");
+    Expect(1, 73667, '\P{Is_Nv=0000001/0000080}', "");
+    Expect(0, 73667, '\P{^Is_Nv=0000001/0000080}', "");
     Expect(1, 73666, '\p{Is_Nv=60/4800}', "");
     Expect(0, 73666, '\p{^Is_Nv=60/4800}', "");
     Expect(0, 73666, '\P{Is_Nv=60/4800}', "");
@@ -72401,14 +72991,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Is_Nv=1.2500e-02}', "");
     Expect(1, 73667, '\P{Is_Nv=1.2500e-02}', "");
     Expect(0, 73667, '\P{^Is_Nv=1.2500e-02}', "");
-    Expect(1, 73666, '\p{Is_Nv:   0.0125}', "");
-    Expect(0, 73666, '\p{^Is_Nv:   0.0125}', "");
-    Expect(0, 73666, '\P{Is_Nv:   0.0125}', "");
-    Expect(1, 73666, '\P{^Is_Nv:   0.0125}', "");
-    Expect(0, 73667, '\p{Is_Nv:   0.0125}', "");
-    Expect(1, 73667, '\p{^Is_Nv:   0.0125}', "");
-    Expect(1, 73667, '\P{Is_Nv:   0.0125}', "");
-    Expect(0, 73667, '\P{^Is_Nv:   0.0125}', "");
+    Expect(1, 73666, '\p{Is_Nv=0.0125}', "");
+    Expect(0, 73666, '\p{^Is_Nv=0.0125}', "");
+    Expect(0, 73666, '\P{Is_Nv=0.0125}', "");
+    Expect(1, 73666, '\P{^Is_Nv=0.0125}', "");
+    Expect(0, 73667, '\p{Is_Nv=0.0125}', "");
+    Expect(1, 73667, '\p{^Is_Nv=0.0125}', "");
+    Expect(1, 73667, '\P{Is_Nv=0.0125}', "");
+    Expect(0, 73667, '\P{^Is_Nv=0.0125}', "");
     Expect(1, 73666, '\p{Is_Nv=1.25000e-02}', "");
     Expect(0, 73666, '\p{^Is_Nv=1.25000e-02}', "");
     Expect(0, 73666, '\P{Is_Nv=1.25000e-02}', "");
@@ -72425,18 +73015,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73667, '\p{^Is_Nv=0.01250}', "");
     Expect(1, 73667, '\P{Is_Nv=0.01250}', "");
     Expect(0, 73667, '\P{^Is_Nv=0.01250}', "");
-    Error('\p{Numeric_Value: 	000001/9/a/}');
-    Error('\P{Numeric_Value: 	000001/9/a/}');
+    Error('\p{Numeric_Value=_/a/000000001/09}');
+    Error('\P{Numeric_Value=_/a/000000001/09}');
     Expect(1, 8529, '\p{Numeric_Value=:\A1/9\z:}', "");;
     Expect(0, 8530, '\p{Numeric_Value=:\A1/9\z:}', "");;
-    Expect(1, 8529, '\p{Numeric_Value=0000000001/00009}', "");
-    Expect(0, 8529, '\p{^Numeric_Value=0000000001/00009}', "");
-    Expect(0, 8529, '\P{Numeric_Value=0000000001/00009}', "");
-    Expect(1, 8529, '\P{^Numeric_Value=0000000001/00009}', "");
-    Expect(0, 8530, '\p{Numeric_Value=0000000001/00009}', "");
-    Expect(1, 8530, '\p{^Numeric_Value=0000000001/00009}', "");
-    Expect(1, 8530, '\P{Numeric_Value=0000000001/00009}', "");
-    Expect(0, 8530, '\P{^Numeric_Value=0000000001/00009}', "");
+    Expect(1, 8529, '\p{Numeric_Value=0000000001/0009}', "");
+    Expect(0, 8529, '\p{^Numeric_Value=0000000001/0009}', "");
+    Expect(0, 8529, '\P{Numeric_Value=0000000001/0009}', "");
+    Expect(1, 8529, '\P{^Numeric_Value=0000000001/0009}', "");
+    Expect(0, 8530, '\p{Numeric_Value=0000000001/0009}', "");
+    Expect(1, 8530, '\p{^Numeric_Value=0000000001/0009}', "");
+    Expect(1, 8530, '\P{Numeric_Value=0000000001/0009}', "");
+    Expect(0, 8530, '\P{^Numeric_Value=0000000001/0009}', "");
     Expect(1, 8529, '\p{Numeric_Value=60/540}', "");
     Expect(0, 8529, '\p{^Numeric_Value=60/540}', "");
     Expect(0, 8529, '\P{Numeric_Value=60/540}', "");
@@ -72447,10 +73037,10 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8530, '\P{^Numeric_Value=60/540}', "");
     Error('\p{Numeric_Value=1.1e-01}');
     Error('\P{Numeric_Value=1.1e-01}');
-    Error('\p{Numeric_Value=1.11e-01}');
-    Error('\P{Numeric_Value=1.11e-01}');
-    Error('\p{Numeric_Value:0.11}');
-    Error('\P{Numeric_Value:0.11}');
+    Error('\p{Numeric_Value:1.11e-01}');
+    Error('\P{Numeric_Value:1.11e-01}');
+    Error('\p{Numeric_Value=0.11}');
+    Error('\P{Numeric_Value=0.11}');
     Expect(1, 8529, '\p{Numeric_Value=1.111e-01}', "");
     Expect(0, 8529, '\p{^Numeric_Value=1.111e-01}', "");
     Expect(0, 8529, '\P{Numeric_Value=1.111e-01}', "");
@@ -72461,22 +73051,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 8530, '\P{^Numeric_Value=1.111e-01}', "");
     Error('\p{Numeric_Value=0.111}');
     Error('\P{Numeric_Value=0.111}');
-    Expect(1, 8529, '\p{Numeric_Value=1.1111e-01}', "");
-    Expect(0, 8529, '\p{^Numeric_Value=1.1111e-01}', "");
-    Expect(0, 8529, '\P{Numeric_Value=1.1111e-01}', "");
-    Expect(1, 8529, '\P{^Numeric_Value=1.1111e-01}', "");
-    Expect(0, 8530, '\p{Numeric_Value=1.1111e-01}', "");
-    Expect(1, 8530, '\p{^Numeric_Value=1.1111e-01}', "");
-    Expect(1, 8530, '\P{Numeric_Value=1.1111e-01}', "");
-    Expect(0, 8530, '\P{^Numeric_Value=1.1111e-01}', "");
-    Expect(1, 8529, '\p{Numeric_Value=0.1111}', "");
-    Expect(0, 8529, '\p{^Numeric_Value=0.1111}', "");
-    Expect(0, 8529, '\P{Numeric_Value=0.1111}', "");
-    Expect(1, 8529, '\P{^Numeric_Value=0.1111}', "");
-    Expect(0, 8530, '\p{Numeric_Value=0.1111}', "");
-    Expect(1, 8530, '\p{^Numeric_Value=0.1111}', "");
-    Expect(1, 8530, '\P{Numeric_Value=0.1111}', "");
-    Expect(0, 8530, '\P{^Numeric_Value=0.1111}', "");
+    Expect(1, 8529, '\p{Numeric_Value:1.1111e-01}', "");
+    Expect(0, 8529, '\p{^Numeric_Value:1.1111e-01}', "");
+    Expect(0, 8529, '\P{Numeric_Value:1.1111e-01}', "");
+    Expect(1, 8529, '\P{^Numeric_Value:1.1111e-01}', "");
+    Expect(0, 8530, '\p{Numeric_Value:1.1111e-01}', "");
+    Expect(1, 8530, '\p{^Numeric_Value:1.1111e-01}', "");
+    Expect(1, 8530, '\P{Numeric_Value:1.1111e-01}', "");
+    Expect(0, 8530, '\P{^Numeric_Value:1.1111e-01}', "");
+    Expect(1, 8529, '\p{Numeric_Value:	0.1111}', "");
+    Expect(0, 8529, '\p{^Numeric_Value:	0.1111}', "");
+    Expect(0, 8529, '\P{Numeric_Value:	0.1111}', "");
+    Expect(1, 8529, '\P{^Numeric_Value:	0.1111}', "");
+    Expect(0, 8530, '\p{Numeric_Value:	0.1111}', "");
+    Expect(1, 8530, '\p{^Numeric_Value:	0.1111}', "");
+    Expect(1, 8530, '\P{Numeric_Value:	0.1111}', "");
+    Expect(0, 8530, '\P{^Numeric_Value:	0.1111}', "");
     Expect(1, 8529, '\p{Numeric_Value=1.11111e-01}', "");
     Expect(0, 8529, '\p{^Numeric_Value=1.11111e-01}', "");
     Expect(0, 8529, '\P{Numeric_Value=1.11111e-01}', "");
@@ -72493,18 +73083,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8530, '\p{^Numeric_Value=0.11111}', "");
     Expect(1, 8530, '\P{Numeric_Value=0.11111}', "");
     Expect(0, 8530, '\P{^Numeric_Value=0.11111}', "");
-    Error('\p{Nv=+01/009:=}');
-    Error('\P{Nv=+01/009:=}');
+    Error('\p{Nv=:=	 00001/0009}');
+    Error('\P{Nv=:=	 00001/0009}');
     Expect(1, 8529, '\p{Nv=:\A1/9\z:}', "");;
     Expect(0, 8530, '\p{Nv=:\A1/9\z:}', "");;
-    Expect(1, 8529, '\p{Nv=1/0000009}', "");
-    Expect(0, 8529, '\p{^Nv=1/0000009}', "");
-    Expect(0, 8529, '\P{Nv=1/0000009}', "");
-    Expect(1, 8529, '\P{^Nv=1/0000009}', "");
-    Expect(0, 8530, '\p{Nv=1/0000009}', "");
-    Expect(1, 8530, '\p{^Nv=1/0000009}', "");
-    Expect(1, 8530, '\P{Nv=1/0000009}', "");
-    Expect(0, 8530, '\P{^Nv=1/0000009}', "");
+    Expect(1, 8529, '\p{Nv=+00000001/0000000009}', "");
+    Expect(0, 8529, '\p{^Nv=+00000001/0000000009}', "");
+    Expect(0, 8529, '\P{Nv=+00000001/0000000009}', "");
+    Expect(1, 8529, '\P{^Nv=+00000001/0000000009}', "");
+    Expect(0, 8530, '\p{Nv=+00000001/0000000009}', "");
+    Expect(1, 8530, '\p{^Nv=+00000001/0000000009}', "");
+    Expect(1, 8530, '\P{Nv=+00000001/0000000009}', "");
+    Expect(0, 8530, '\P{^Nv=+00000001/0000000009}', "");
     Expect(1, 8529, '\p{Nv=60/540}', "");
     Expect(0, 8529, '\p{^Nv=60/540}', "");
     Expect(0, 8529, '\P{Nv=60/540}', "");
@@ -72527,8 +73117,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8530, '\p{^Nv=1.111e-01}', "");
     Expect(1, 8530, '\P{Nv=1.111e-01}', "");
     Expect(0, 8530, '\P{^Nv=1.111e-01}', "");
-    Error('\p{Nv:0.111}');
-    Error('\P{Nv:0.111}');
+    Error('\p{Nv=0.111}');
+    Error('\P{Nv=0.111}');
     Expect(1, 8529, '\p{Nv=1.1111e-01}', "");
     Expect(0, 8529, '\p{^Nv=1.1111e-01}', "");
     Expect(0, 8529, '\P{Nv=1.1111e-01}', "");
@@ -72561,24 +73151,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8530, '\p{^Nv=0.11111}', "");
     Expect(1, 8530, '\P{Nv=0.11111}', "");
     Expect(0, 8530, '\P{^Nv=0.11111}', "");
-    Error('\p{Is_Numeric_Value=/a/000000001/0000009}');
-    Error('\P{Is_Numeric_Value=/a/000000001/0000009}');
-    Expect(1, 8529, '\p{Is_Numeric_Value=00001/09}', "");
-    Expect(0, 8529, '\p{^Is_Numeric_Value=00001/09}', "");
-    Expect(0, 8529, '\P{Is_Numeric_Value=00001/09}', "");
-    Expect(1, 8529, '\P{^Is_Numeric_Value=00001/09}', "");
-    Expect(0, 8530, '\p{Is_Numeric_Value=00001/09}', "");
-    Expect(1, 8530, '\p{^Is_Numeric_Value=00001/09}', "");
-    Expect(1, 8530, '\P{Is_Numeric_Value=00001/09}', "");
-    Expect(0, 8530, '\P{^Is_Numeric_Value=00001/09}', "");
-    Expect(1, 8529, '\p{Is_Numeric_Value=60/540}', "");
-    Expect(0, 8529, '\p{^Is_Numeric_Value=60/540}', "");
-    Expect(0, 8529, '\P{Is_Numeric_Value=60/540}', "");
-    Expect(1, 8529, '\P{^Is_Numeric_Value=60/540}', "");
-    Expect(0, 8530, '\p{Is_Numeric_Value=60/540}', "");
-    Expect(1, 8530, '\p{^Is_Numeric_Value=60/540}', "");
-    Expect(1, 8530, '\P{Is_Numeric_Value=60/540}', "");
-    Expect(0, 8530, '\P{^Is_Numeric_Value=60/540}', "");
+    Error('\p{Is_Numeric_Value=:=  000001/000000009}');
+    Error('\P{Is_Numeric_Value=:=  000001/000000009}');
+    Expect(1, 8529, '\p{Is_Numeric_Value=0001/009}', "");
+    Expect(0, 8529, '\p{^Is_Numeric_Value=0001/009}', "");
+    Expect(0, 8529, '\P{Is_Numeric_Value=0001/009}', "");
+    Expect(1, 8529, '\P{^Is_Numeric_Value=0001/009}', "");
+    Expect(0, 8530, '\p{Is_Numeric_Value=0001/009}', "");
+    Expect(1, 8530, '\p{^Is_Numeric_Value=0001/009}', "");
+    Expect(1, 8530, '\P{Is_Numeric_Value=0001/009}', "");
+    Expect(0, 8530, '\P{^Is_Numeric_Value=0001/009}', "");
+    Expect(1, 8529, '\p{Is_Numeric_Value:	60/540}', "");
+    Expect(0, 8529, '\p{^Is_Numeric_Value:	60/540}', "");
+    Expect(0, 8529, '\P{Is_Numeric_Value:	60/540}', "");
+    Expect(1, 8529, '\P{^Is_Numeric_Value:	60/540}', "");
+    Expect(0, 8530, '\p{Is_Numeric_Value:	60/540}', "");
+    Expect(1, 8530, '\p{^Is_Numeric_Value:	60/540}', "");
+    Expect(1, 8530, '\P{Is_Numeric_Value:	60/540}', "");
+    Expect(0, 8530, '\P{^Is_Numeric_Value:	60/540}', "");
     Error('\p{Is_Numeric_Value=1.1e-01}');
     Error('\P{Is_Numeric_Value=1.1e-01}');
     Error('\p{Is_Numeric_Value=1.11e-01}');
@@ -72627,16 +73217,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8530, '\p{^Is_Numeric_Value=0.11111}', "");
     Expect(1, 8530, '\P{Is_Numeric_Value=0.11111}', "");
     Expect(0, 8530, '\P{^Is_Numeric_Value=0.11111}', "");
-    Error('\p{Is_Nv=/a/ 0001/00000009}');
-    Error('\P{Is_Nv=/a/ 0001/00000009}');
-    Expect(1, 8529, '\p{Is_Nv=+000000001/00009}', "");
-    Expect(0, 8529, '\p{^Is_Nv=+000000001/00009}', "");
-    Expect(0, 8529, '\P{Is_Nv=+000000001/00009}', "");
-    Expect(1, 8529, '\P{^Is_Nv=+000000001/00009}', "");
-    Expect(0, 8530, '\p{Is_Nv=+000000001/00009}', "");
-    Expect(1, 8530, '\p{^Is_Nv=+000000001/00009}', "");
-    Expect(1, 8530, '\P{Is_Nv=+000000001/00009}', "");
-    Expect(0, 8530, '\P{^Is_Nv=+000000001/00009}', "");
+    Error('\p{Is_Nv=-/a/+000000001/0009}');
+    Error('\P{Is_Nv=-/a/+000000001/0009}');
+    Expect(1, 8529, '\p{Is_Nv=000000001/09}', "");
+    Expect(0, 8529, '\p{^Is_Nv=000000001/09}', "");
+    Expect(0, 8529, '\P{Is_Nv=000000001/09}', "");
+    Expect(1, 8529, '\P{^Is_Nv=000000001/09}', "");
+    Expect(0, 8530, '\p{Is_Nv=000000001/09}', "");
+    Expect(1, 8530, '\p{^Is_Nv=000000001/09}', "");
+    Expect(1, 8530, '\P{Is_Nv=000000001/09}', "");
+    Expect(0, 8530, '\P{^Is_Nv=000000001/09}', "");
     Expect(1, 8529, '\p{Is_Nv=60/540}', "");
     Expect(0, 8529, '\p{^Is_Nv=60/540}', "");
     Expect(0, 8529, '\P{Is_Nv=60/540}', "");
@@ -72659,8 +73249,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8530, '\p{^Is_Nv=1.111e-01}', "");
     Expect(1, 8530, '\P{Is_Nv=1.111e-01}', "");
     Expect(0, 8530, '\P{^Is_Nv=1.111e-01}', "");
-    Error('\p{Is_Nv:0.111}');
-    Error('\P{Is_Nv:0.111}');
+    Error('\p{Is_Nv=0.111}');
+    Error('\P{Is_Nv=0.111}');
     Expect(1, 8529, '\p{Is_Nv=1.1111e-01}', "");
     Expect(0, 8529, '\p{^Is_Nv=1.1111e-01}', "");
     Expect(0, 8529, '\P{Is_Nv=1.1111e-01}', "");
@@ -72685,26 +73275,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8530, '\p{^Is_Nv=1.11111e-01}', "");
     Expect(1, 8530, '\P{Is_Nv=1.11111e-01}', "");
     Expect(0, 8530, '\P{^Is_Nv=1.11111e-01}', "");
-    Expect(1, 8529, '\p{Is_Nv:	0.11111}', "");
-    Expect(0, 8529, '\p{^Is_Nv:	0.11111}', "");
-    Expect(0, 8529, '\P{Is_Nv:	0.11111}', "");
-    Expect(1, 8529, '\P{^Is_Nv:	0.11111}', "");
-    Expect(0, 8530, '\p{Is_Nv:	0.11111}', "");
-    Expect(1, 8530, '\p{^Is_Nv:	0.11111}', "");
-    Expect(1, 8530, '\P{Is_Nv:	0.11111}', "");
-    Expect(0, 8530, '\P{^Is_Nv:	0.11111}', "");
-    Error('\p{Numeric_Value=:=-_+00010}');
-    Error('\P{Numeric_Value=:=-_+00010}');
+    Expect(1, 8529, '\p{Is_Nv=0.11111}', "");
+    Expect(0, 8529, '\p{^Is_Nv=0.11111}', "");
+    Expect(0, 8529, '\P{Is_Nv=0.11111}', "");
+    Expect(1, 8529, '\P{^Is_Nv=0.11111}', "");
+    Expect(0, 8530, '\p{Is_Nv=0.11111}', "");
+    Expect(1, 8530, '\p{^Is_Nv=0.11111}', "");
+    Expect(1, 8530, '\P{Is_Nv=0.11111}', "");
+    Expect(0, 8530, '\P{^Is_Nv=0.11111}', "");
+    Error('\p{Numeric_Value=--00_00_01_0:=}');
+    Error('\P{Numeric_Value=--00_00_01_0:=}');
     Expect(1, 126263, '\p{Numeric_Value=:\A10\z:}', "");;
     Expect(0, 126264, '\p{Numeric_Value=:\A10\z:}', "");;
-    Expect(1, 126263, '\p{Numeric_Value=+00000000010}', "");
-    Expect(0, 126263, '\p{^Numeric_Value=+00000000010}', "");
-    Expect(0, 126263, '\P{Numeric_Value=+00000000010}', "");
-    Expect(1, 126263, '\P{^Numeric_Value=+00000000010}', "");
-    Expect(0, 126264, '\p{Numeric_Value=+00000000010}', "");
-    Expect(1, 126264, '\p{^Numeric_Value=+00000000010}', "");
-    Expect(1, 126264, '\P{Numeric_Value=+00000000010}', "");
-    Expect(0, 126264, '\P{^Numeric_Value=+00000000010}', "");
+    Expect(1, 126263, '\p{Numeric_Value=00_00_00_10}', "");
+    Expect(0, 126263, '\p{^Numeric_Value=00_00_00_10}', "");
+    Expect(0, 126263, '\P{Numeric_Value=00_00_00_10}', "");
+    Expect(1, 126263, '\P{^Numeric_Value=00_00_00_10}', "");
+    Expect(0, 126264, '\p{Numeric_Value=00_00_00_10}', "");
+    Expect(1, 126264, '\p{^Numeric_Value=00_00_00_10}', "");
+    Expect(1, 126264, '\P{Numeric_Value=00_00_00_10}', "");
+    Expect(0, 126264, '\P{^Numeric_Value=00_00_00_10}', "");
     Expect(1, 126263, '\p{Numeric_Value=1.000000000000000e+01}', "");
     Expect(0, 126263, '\p{^Numeric_Value=1.000000000000000e+01}', "");
     Expect(0, 126263, '\P{Numeric_Value=1.000000000000000e+01}', "");
@@ -72713,18 +73303,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126264, '\p{^Numeric_Value=1.000000000000000e+01}', "");
     Expect(1, 126264, '\P{Numeric_Value=1.000000000000000e+01}', "");
     Expect(0, 126264, '\P{^Numeric_Value=1.000000000000000e+01}', "");
-    Error('\p{Nv=/a/	 0000010}');
-    Error('\P{Nv=/a/	 0000010}');
+    Error('\p{Nv=	:=000010}');
+    Error('\P{Nv=	:=000010}');
     Expect(1, 126263, '\p{Nv=:\A10\z:}', "");;
     Expect(0, 126264, '\p{Nv=:\A10\z:}', "");;
-    Expect(1, 126263, '\p{Nv=0010}', "");
-    Expect(0, 126263, '\p{^Nv=0010}', "");
-    Expect(0, 126263, '\P{Nv=0010}', "");
-    Expect(1, 126263, '\P{^Nv=0010}', "");
-    Expect(0, 126264, '\p{Nv=0010}', "");
-    Expect(1, 126264, '\p{^Nv=0010}', "");
-    Expect(1, 126264, '\P{Nv=0010}', "");
-    Expect(0, 126264, '\P{^Nv=0010}', "");
+    Expect(1, 126263, '\p{Nv=00000000010}', "");
+    Expect(0, 126263, '\p{^Nv=00000000010}', "");
+    Expect(0, 126263, '\P{Nv=00000000010}', "");
+    Expect(1, 126263, '\P{^Nv=00000000010}', "");
+    Expect(0, 126264, '\p{Nv=00000000010}', "");
+    Expect(1, 126264, '\p{^Nv=00000000010}', "");
+    Expect(1, 126264, '\P{Nv=00000000010}', "");
+    Expect(0, 126264, '\P{^Nv=00000000010}', "");
     Expect(1, 126263, '\p{Nv=1.000000000000000e+01}', "");
     Expect(0, 126263, '\p{^Nv=1.000000000000000e+01}', "");
     Expect(0, 126263, '\P{Nv=1.000000000000000e+01}', "");
@@ -72733,16 +73323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126264, '\p{^Nv=1.000000000000000e+01}', "");
     Expect(1, 126264, '\P{Nv=1.000000000000000e+01}', "");
     Expect(0, 126264, '\P{^Nv=1.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/ 010}');
-    Error('\P{Is_Numeric_Value=/a/ 010}');
-    Expect(1, 126263, '\p{Is_Numeric_Value=000000010}', "");
-    Expect(0, 126263, '\p{^Is_Numeric_Value=000000010}', "");
-    Expect(0, 126263, '\P{Is_Numeric_Value=000000010}', "");
-    Expect(1, 126263, '\P{^Is_Numeric_Value=000000010}', "");
-    Expect(0, 126264, '\p{Is_Numeric_Value=000000010}', "");
-    Expect(1, 126264, '\p{^Is_Numeric_Value=000000010}', "");
-    Expect(1, 126264, '\P{Is_Numeric_Value=000000010}', "");
-    Expect(0, 126264, '\P{^Is_Numeric_Value=000000010}', "");
+    Error('\p{Is_Numeric_Value=:=  0001_0}');
+    Error('\P{Is_Numeric_Value=:=  0001_0}');
+    Expect(1, 126263, '\p{Is_Numeric_Value: 1_0}', "");
+    Expect(0, 126263, '\p{^Is_Numeric_Value: 1_0}', "");
+    Expect(0, 126263, '\P{Is_Numeric_Value: 1_0}', "");
+    Expect(1, 126263, '\P{^Is_Numeric_Value: 1_0}', "");
+    Expect(0, 126264, '\p{Is_Numeric_Value: 1_0}', "");
+    Expect(1, 126264, '\p{^Is_Numeric_Value: 1_0}', "");
+    Expect(1, 126264, '\P{Is_Numeric_Value: 1_0}', "");
+    Expect(0, 126264, '\P{^Is_Numeric_Value: 1_0}', "");
     Expect(1, 126263, '\p{Is_Numeric_Value=1.000000000000000e+01}', "");
     Expect(0, 126263, '\p{^Is_Numeric_Value=1.000000000000000e+01}', "");
     Expect(0, 126263, '\P{Is_Numeric_Value=1.000000000000000e+01}', "");
@@ -72751,16 +73341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126264, '\p{^Is_Numeric_Value=1.000000000000000e+01}', "");
     Expect(1, 126264, '\P{Is_Numeric_Value=1.000000000000000e+01}', "");
     Expect(0, 126264, '\P{^Is_Numeric_Value=1.000000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/00000001_0}');
-    Error('\P{Is_Nv=/a/00000001_0}');
-    Expect(1, 126263, '\p{Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(0, 126263, '\p{^Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(0, 126263, '\P{Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(1, 126263, '\P{^Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(0, 126264, '\p{Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(1, 126264, '\p{^Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(1, 126264, '\P{Is_Nv=0_0_0_0_0_0_0_0_010}', "");
-    Expect(0, 126264, '\P{^Is_Nv=0_0_0_0_0_0_0_0_010}', "");
+    Error('\p{Is_Nv= :=0_0_0_0_0_0_0010}');
+    Error('\P{Is_Nv= :=0_0_0_0_0_0_0010}');
+    Expect(1, 126263, '\p{Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(0, 126263, '\p{^Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(0, 126263, '\P{Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(1, 126263, '\P{^Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(0, 126264, '\p{Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(1, 126264, '\p{^Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(1, 126264, '\P{Is_Nv=+0_0_0_0_0_0_0_010}', "");
+    Expect(0, 126264, '\P{^Is_Nv=+0_0_0_0_0_0_0_010}', "");
     Expect(1, 126263, '\p{Is_Nv=1.000000000000000e+01}', "");
     Expect(0, 126263, '\p{^Is_Nv=1.000000000000000e+01}', "");
     Expect(0, 126263, '\P{Is_Nv=1.000000000000000e+01}', "");
@@ -72769,18 +73359,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126264, '\p{^Is_Nv=1.000000000000000e+01}', "");
     Expect(1, 126264, '\P{Is_Nv=1.000000000000000e+01}', "");
     Expect(0, 126264, '\P{^Is_Nv=1.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=:=-_+0_1_00}');
-    Error('\P{Numeric_Value=:=-_+0_1_00}');
+    Error('\p{Numeric_Value=-00000100/a/}');
+    Error('\P{Numeric_Value=-00000100/a/}');
     Expect(1, 126227, '\p{Numeric_Value=:\A100\z:}', "");;
     Expect(0, 126228, '\p{Numeric_Value=:\A100\z:}', "");;
-    Expect(1, 126227, '\p{Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(0, 126227, '\p{^Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(0, 126227, '\P{Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(1, 126227, '\P{^Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(0, 126228, '\p{Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(1, 126228, '\p{^Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(1, 126228, '\P{Numeric_Value=+0_0_0_0_0_100}', "");
-    Expect(0, 126228, '\P{^Numeric_Value=+0_0_0_0_0_100}', "");
+    Expect(1, 126227, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(0, 126227, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(0, 126227, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(1, 126227, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(0, 126228, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(1, 126228, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(1, 126228, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
+    Expect(0, 126228, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_0_1_00}', "");
     Expect(1, 126227, '\p{Numeric_Value=1.000000000000000e+02}', "");
     Expect(0, 126227, '\p{^Numeric_Value=1.000000000000000e+02}', "");
     Expect(0, 126227, '\P{Numeric_Value=1.000000000000000e+02}', "");
@@ -72789,36 +73379,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126228, '\p{^Numeric_Value=1.000000000000000e+02}', "");
     Expect(1, 126228, '\P{Numeric_Value=1.000000000000000e+02}', "");
     Expect(0, 126228, '\P{^Numeric_Value=1.000000000000000e+02}', "");
-    Error('\p{Nv=/a/-0000_0010_0}');
-    Error('\P{Nv=/a/-0000_0010_0}');
+    Error('\p{Nv=-:=0100}');
+    Error('\P{Nv=-:=0100}');
     Expect(1, 126227, '\p{Nv=:\A100\z:}', "");;
     Expect(0, 126228, '\p{Nv=:\A100\z:}', "");;
-    Expect(1, 126227, '\p{Nv=+000_001_00}', "");
-    Expect(0, 126227, '\p{^Nv=+000_001_00}', "");
-    Expect(0, 126227, '\P{Nv=+000_001_00}', "");
-    Expect(1, 126227, '\P{^Nv=+000_001_00}', "");
-    Expect(0, 126228, '\p{Nv=+000_001_00}', "");
-    Expect(1, 126228, '\p{^Nv=+000_001_00}', "");
-    Expect(1, 126228, '\P{Nv=+000_001_00}', "");
-    Expect(0, 126228, '\P{^Nv=+000_001_00}', "");
-    Expect(1, 126227, '\p{Nv=1.000000000000000e+02}', "");
-    Expect(0, 126227, '\p{^Nv=1.000000000000000e+02}', "");
-    Expect(0, 126227, '\P{Nv=1.000000000000000e+02}', "");
-    Expect(1, 126227, '\P{^Nv=1.000000000000000e+02}', "");
-    Expect(0, 126228, '\p{Nv=1.000000000000000e+02}', "");
-    Expect(1, 126228, '\p{^Nv=1.000000000000000e+02}', "");
-    Expect(1, 126228, '\P{Nv=1.000000000000000e+02}', "");
-    Expect(0, 126228, '\P{^Nv=1.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value= 	+0_0_0_0_0_0_0_00100:=}');
-    Error('\P{Is_Numeric_Value= 	+0_0_0_0_0_0_0_00100:=}');
-    Expect(1, 126227, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(0, 126227, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(0, 126227, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(1, 126227, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(0, 126228, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(1, 126228, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(1, 126228, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
-    Expect(0, 126228, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_0100}', "");
+    Expect(1, 126227, '\p{Nv=00000_00010_0}', "");
+    Expect(0, 126227, '\p{^Nv=00000_00010_0}', "");
+    Expect(0, 126227, '\P{Nv=00000_00010_0}', "");
+    Expect(1, 126227, '\P{^Nv=00000_00010_0}', "");
+    Expect(0, 126228, '\p{Nv=00000_00010_0}', "");
+    Expect(1, 126228, '\p{^Nv=00000_00010_0}', "");
+    Expect(1, 126228, '\P{Nv=00000_00010_0}', "");
+    Expect(0, 126228, '\P{^Nv=00000_00010_0}', "");
+    Expect(1, 126227, '\p{Nv:	1.000000000000000e+02}', "");
+    Expect(0, 126227, '\p{^Nv:	1.000000000000000e+02}', "");
+    Expect(0, 126227, '\P{Nv:	1.000000000000000e+02}', "");
+    Expect(1, 126227, '\P{^Nv:	1.000000000000000e+02}', "");
+    Expect(0, 126228, '\p{Nv:	1.000000000000000e+02}', "");
+    Expect(1, 126228, '\p{^Nv:	1.000000000000000e+02}', "");
+    Expect(1, 126228, '\P{Nv:	1.000000000000000e+02}', "");
+    Expect(0, 126228, '\P{^Nv:	1.000000000000000e+02}', "");
+    Error('\p{Is_Numeric_Value= +00_00_01_00:=}');
+    Error('\P{Is_Numeric_Value= +00_00_01_00:=}');
+    Expect(1, 126227, '\p{Is_Numeric_Value=000000000100}', "");
+    Expect(0, 126227, '\p{^Is_Numeric_Value=000000000100}', "");
+    Expect(0, 126227, '\P{Is_Numeric_Value=000000000100}', "");
+    Expect(1, 126227, '\P{^Is_Numeric_Value=000000000100}', "");
+    Expect(0, 126228, '\p{Is_Numeric_Value=000000000100}', "");
+    Expect(1, 126228, '\p{^Is_Numeric_Value=000000000100}', "");
+    Expect(1, 126228, '\P{Is_Numeric_Value=000000000100}', "");
+    Expect(0, 126228, '\P{^Is_Numeric_Value=000000000100}', "");
     Expect(1, 126227, '\p{Is_Numeric_Value=1.000000000000000e+02}', "");
     Expect(0, 126227, '\p{^Is_Numeric_Value=1.000000000000000e+02}', "");
     Expect(0, 126227, '\P{Is_Numeric_Value=1.000000000000000e+02}', "");
@@ -72827,16 +73417,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126228, '\p{^Is_Numeric_Value=1.000000000000000e+02}', "");
     Expect(1, 126228, '\P{Is_Numeric_Value=1.000000000000000e+02}', "");
     Expect(0, 126228, '\P{^Is_Numeric_Value=1.000000000000000e+02}', "");
-    Error('\p{Is_Nv=:= 0_0_0_0_0_0_0_0_0_1_00}');
-    Error('\P{Is_Nv=:= 0_0_0_0_0_0_0_0_0_1_00}');
-    Expect(1, 126227, '\p{Is_Nv=0000100}', "");
-    Expect(0, 126227, '\p{^Is_Nv=0000100}', "");
-    Expect(0, 126227, '\P{Is_Nv=0000100}', "");
-    Expect(1, 126227, '\P{^Is_Nv=0000100}', "");
-    Expect(0, 126228, '\p{Is_Nv=0000100}', "");
-    Expect(1, 126228, '\p{^Is_Nv=0000100}', "");
-    Expect(1, 126228, '\P{Is_Nv=0000100}', "");
-    Expect(0, 126228, '\P{^Is_Nv=0000100}', "");
+    Error('\p{Is_Nv: :=-+000000000100}');
+    Error('\P{Is_Nv: :=-+000000000100}');
+    Expect(1, 126227, '\p{Is_Nv:10_0}', "");
+    Expect(0, 126227, '\p{^Is_Nv:10_0}', "");
+    Expect(0, 126227, '\P{Is_Nv:10_0}', "");
+    Expect(1, 126227, '\P{^Is_Nv:10_0}', "");
+    Expect(0, 126228, '\p{Is_Nv:10_0}', "");
+    Expect(1, 126228, '\p{^Is_Nv:10_0}', "");
+    Expect(1, 126228, '\P{Is_Nv:10_0}', "");
+    Expect(0, 126228, '\P{^Is_Nv:10_0}', "");
     Expect(1, 126227, '\p{Is_Nv=1.000000000000000e+02}', "");
     Expect(0, 126227, '\p{^Is_Nv=1.000000000000000e+02}', "");
     Expect(0, 126227, '\P{Is_Nv=1.000000000000000e+02}', "");
@@ -72845,18 +73435,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126228, '\p{^Is_Nv=1.000000000000000e+02}', "");
     Expect(1, 126228, '\P{Is_Nv=1.000000000000000e+02}', "");
     Expect(0, 126228, '\P{^Is_Nv=1.000000000000000e+02}', "");
-    Error('\p{Numeric_Value= /a/1_0_00}');
-    Error('\P{Numeric_Value= /a/1_0_00}');
+    Error('\p{Numeric_Value=:=00_01_00_0}');
+    Error('\P{Numeric_Value=:=00_01_00_0}');
     Expect(1, 126236, '\p{Numeric_Value=:\A1000\z:}', "");;
     Expect(0, 126237, '\p{Numeric_Value=:\A1000\z:}', "");;
-    Expect(1, 126236, '\p{Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(0, 126236, '\p{^Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(0, 126236, '\P{Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(1, 126236, '\P{^Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(0, 126237, '\p{Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(1, 126237, '\p{^Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(1, 126237, '\P{Numeric_Value=00_00_00_01_00_0}', "");
-    Expect(0, 126237, '\P{^Numeric_Value=00_00_00_01_00_0}', "");
+    Expect(1, 126236, '\p{Numeric_Value=+0000001000}', "");
+    Expect(0, 126236, '\p{^Numeric_Value=+0000001000}', "");
+    Expect(0, 126236, '\P{Numeric_Value=+0000001000}', "");
+    Expect(1, 126236, '\P{^Numeric_Value=+0000001000}', "");
+    Expect(0, 126237, '\p{Numeric_Value=+0000001000}', "");
+    Expect(1, 126237, '\p{^Numeric_Value=+0000001000}', "");
+    Expect(1, 126237, '\P{Numeric_Value=+0000001000}', "");
+    Expect(0, 126237, '\P{^Numeric_Value=+0000001000}', "");
     Expect(1, 126236, '\p{Numeric_Value=1.000000000000000e+03}', "");
     Expect(0, 126236, '\p{^Numeric_Value=1.000000000000000e+03}', "");
     Expect(0, 126236, '\P{Numeric_Value=1.000000000000000e+03}', "");
@@ -72865,18 +73455,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126237, '\p{^Numeric_Value=1.000000000000000e+03}', "");
     Expect(1, 126237, '\P{Numeric_Value=1.000000000000000e+03}', "");
     Expect(0, 126237, '\P{^Numeric_Value=1.000000000000000e+03}', "");
-    Error('\p{Nv=:=_-0_0_0_0_0_1_0_00}');
-    Error('\P{Nv=:=_-0_0_0_0_0_1_0_00}');
+    Error('\p{Nv=	_+000_010_00/a/}');
+    Error('\P{Nv=	_+000_010_00/a/}');
     Expect(1, 126236, '\p{Nv=:\A1000\z:}', "");;
     Expect(0, 126237, '\p{Nv=:\A1000\z:}', "");;
-    Expect(1, 126236, '\p{Nv=00000001000}', "");
-    Expect(0, 126236, '\p{^Nv=00000001000}', "");
-    Expect(0, 126236, '\P{Nv=00000001000}', "");
-    Expect(1, 126236, '\P{^Nv=00000001000}', "");
-    Expect(0, 126237, '\p{Nv=00000001000}', "");
-    Expect(1, 126237, '\p{^Nv=00000001000}', "");
-    Expect(1, 126237, '\P{Nv=00000001000}', "");
-    Expect(0, 126237, '\P{^Nv=00000001000}', "");
+    Expect(1, 126236, '\p{Nv=1000}', "");
+    Expect(0, 126236, '\p{^Nv=1000}', "");
+    Expect(0, 126236, '\P{Nv=1000}', "");
+    Expect(1, 126236, '\P{^Nv=1000}', "");
+    Expect(0, 126237, '\p{Nv=1000}', "");
+    Expect(1, 126237, '\p{^Nv=1000}', "");
+    Expect(1, 126237, '\P{Nv=1000}', "");
+    Expect(0, 126237, '\P{^Nv=1000}', "");
     Expect(1, 126236, '\p{Nv=1.000000000000000e+03}', "");
     Expect(0, 126236, '\p{^Nv=1.000000000000000e+03}', "");
     Expect(0, 126236, '\P{Nv=1.000000000000000e+03}', "");
@@ -72885,16 +73475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126237, '\p{^Nv=1.000000000000000e+03}', "");
     Expect(1, 126237, '\P{Nv=1.000000000000000e+03}', "");
     Expect(0, 126237, '\P{^Nv=1.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value=:=	-00000_00100_0}');
-    Error('\P{Is_Numeric_Value=:=	-00000_00100_0}');
-    Expect(1, 126236, '\p{Is_Numeric_Value=0_1_0_00}', "");
-    Expect(0, 126236, '\p{^Is_Numeric_Value=0_1_0_00}', "");
-    Expect(0, 126236, '\P{Is_Numeric_Value=0_1_0_00}', "");
-    Expect(1, 126236, '\P{^Is_Numeric_Value=0_1_0_00}', "");
-    Expect(0, 126237, '\p{Is_Numeric_Value=0_1_0_00}', "");
-    Expect(1, 126237, '\p{^Is_Numeric_Value=0_1_0_00}', "");
-    Expect(1, 126237, '\P{Is_Numeric_Value=0_1_0_00}', "");
-    Expect(0, 126237, '\P{^Is_Numeric_Value=0_1_0_00}', "");
+    Error('\p{Is_Numeric_Value= _1000/a/}');
+    Error('\P{Is_Numeric_Value= _1000/a/}');
+    Expect(1, 126236, '\p{Is_Numeric_Value=+0001000}', "");
+    Expect(0, 126236, '\p{^Is_Numeric_Value=+0001000}', "");
+    Expect(0, 126236, '\P{Is_Numeric_Value=+0001000}', "");
+    Expect(1, 126236, '\P{^Is_Numeric_Value=+0001000}', "");
+    Expect(0, 126237, '\p{Is_Numeric_Value=+0001000}', "");
+    Expect(1, 126237, '\p{^Is_Numeric_Value=+0001000}', "");
+    Expect(1, 126237, '\P{Is_Numeric_Value=+0001000}', "");
+    Expect(0, 126237, '\P{^Is_Numeric_Value=+0001000}', "");
     Expect(1, 126236, '\p{Is_Numeric_Value=1.000000000000000e+03}', "");
     Expect(0, 126236, '\p{^Is_Numeric_Value=1.000000000000000e+03}', "");
     Expect(0, 126236, '\P{Is_Numeric_Value=1.000000000000000e+03}', "");
@@ -72903,16 +73493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126237, '\p{^Is_Numeric_Value=1.000000000000000e+03}', "");
     Expect(1, 126237, '\P{Is_Numeric_Value=1.000000000000000e+03}', "");
     Expect(0, 126237, '\P{^Is_Numeric_Value=1.000000000000000e+03}', "");
-    Error('\p{Is_Nv=-_+000001000:=}');
-    Error('\P{Is_Nv=-_+000001000:=}');
-    Expect(1, 126236, '\p{Is_Nv=1000}', "");
-    Expect(0, 126236, '\p{^Is_Nv=1000}', "");
-    Expect(0, 126236, '\P{Is_Nv=1000}', "");
-    Expect(1, 126236, '\P{^Is_Nv=1000}', "");
-    Expect(0, 126237, '\p{Is_Nv=1000}', "");
-    Expect(1, 126237, '\p{^Is_Nv=1000}', "");
-    Expect(1, 126237, '\P{Is_Nv=1000}', "");
-    Expect(0, 126237, '\P{^Is_Nv=1000}', "");
+    Error('\p{Is_Nv=-:=01000}');
+    Error('\P{Is_Nv=-:=01000}');
+    Expect(1, 126236, '\p{Is_Nv=01000}', "");
+    Expect(0, 126236, '\p{^Is_Nv=01000}', "");
+    Expect(0, 126236, '\P{Is_Nv=01000}', "");
+    Expect(1, 126236, '\P{^Is_Nv=01000}', "");
+    Expect(0, 126237, '\p{Is_Nv=01000}', "");
+    Expect(1, 126237, '\p{^Is_Nv=01000}', "");
+    Expect(1, 126237, '\P{Is_Nv=01000}', "");
+    Expect(0, 126237, '\P{^Is_Nv=01000}', "");
     Expect(1, 126236, '\p{Is_Nv=1.000000000000000e+03}', "");
     Expect(0, 126236, '\p{^Is_Nv=1.000000000000000e+03}', "");
     Expect(0, 126236, '\P{Is_Nv=1.000000000000000e+03}', "");
@@ -72921,38 +73511,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126237, '\p{^Is_Nv=1.000000000000000e+03}', "");
     Expect(1, 126237, '\P{Is_Nv=1.000000000000000e+03}', "");
     Expect(0, 126237, '\P{^Is_Nv=1.000000000000000e+03}', "");
-    Error('\p{Numeric_Value=:=	-001_000_0}');
-    Error('\P{Numeric_Value=:=	-001_000_0}');
+    Error('\p{Numeric_Value=--00_00_01_00_00/a/}');
+    Error('\P{Numeric_Value=--00_00_01_00_00/a/}');
     Expect(1, 126267, '\p{Numeric_Value=:\A10000\z:}', "");;
     Expect(0, 126268, '\p{Numeric_Value=:\A10000\z:}', "");;
-    Expect(1, 126267, '\p{Numeric_Value=000000010000}', "");
-    Expect(0, 126267, '\p{^Numeric_Value=000000010000}', "");
-    Expect(0, 126267, '\P{Numeric_Value=000000010000}', "");
-    Expect(1, 126267, '\P{^Numeric_Value=000000010000}', "");
-    Expect(0, 126268, '\p{Numeric_Value=000000010000}', "");
-    Expect(1, 126268, '\p{^Numeric_Value=000000010000}', "");
-    Expect(1, 126268, '\P{Numeric_Value=000000010000}', "");
-    Expect(0, 126268, '\P{^Numeric_Value=000000010000}', "");
-    Expect(1, 126267, '\p{Numeric_Value=1.000000000000000e+04}', "");
-    Expect(0, 126267, '\p{^Numeric_Value=1.000000000000000e+04}', "");
-    Expect(0, 126267, '\P{Numeric_Value=1.000000000000000e+04}', "");
-    Expect(1, 126267, '\P{^Numeric_Value=1.000000000000000e+04}', "");
-    Expect(0, 126268, '\p{Numeric_Value=1.000000000000000e+04}', "");
-    Expect(1, 126268, '\p{^Numeric_Value=1.000000000000000e+04}', "");
-    Expect(1, 126268, '\P{Numeric_Value=1.000000000000000e+04}', "");
-    Expect(0, 126268, '\P{^Numeric_Value=1.000000000000000e+04}', "");
-    Error('\p{Nv=/a/--+000000010000}');
-    Error('\P{Nv=/a/--+000000010000}');
+    Expect(1, 126267, '\p{Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(0, 126267, '\p{^Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(0, 126267, '\P{Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(1, 126267, '\P{^Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(0, 126268, '\p{Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(1, 126268, '\p{^Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(1, 126268, '\P{Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(0, 126268, '\P{^Numeric_Value=00_00_00_00_10_000}', "");
+    Expect(1, 126267, '\p{Numeric_Value:1.000000000000000e+04}', "");
+    Expect(0, 126267, '\p{^Numeric_Value:1.000000000000000e+04}', "");
+    Expect(0, 126267, '\P{Numeric_Value:1.000000000000000e+04}', "");
+    Expect(1, 126267, '\P{^Numeric_Value:1.000000000000000e+04}', "");
+    Expect(0, 126268, '\p{Numeric_Value:1.000000000000000e+04}', "");
+    Expect(1, 126268, '\p{^Numeric_Value:1.000000000000000e+04}', "");
+    Expect(1, 126268, '\P{Numeric_Value:1.000000000000000e+04}', "");
+    Expect(0, 126268, '\P{^Numeric_Value:1.000000000000000e+04}', "");
+    Error('\p{Nv=:= -00010000}');
+    Error('\P{Nv=:= -00010000}');
     Expect(1, 126267, '\p{Nv=:\A10000\z:}', "");;
     Expect(0, 126268, '\p{Nv=:\A10000\z:}', "");;
-    Expect(1, 126267, '\p{Nv: 0000010000}', "");
-    Expect(0, 126267, '\p{^Nv: 0000010000}', "");
-    Expect(0, 126267, '\P{Nv: 0000010000}', "");
-    Expect(1, 126267, '\P{^Nv: 0000010000}', "");
-    Expect(0, 126268, '\p{Nv: 0000010000}', "");
-    Expect(1, 126268, '\p{^Nv: 0000010000}', "");
-    Expect(1, 126268, '\P{Nv: 0000010000}', "");
-    Expect(0, 126268, '\P{^Nv: 0000010000}', "");
+    Expect(1, 126267, '\p{Nv:   00001000_0}', "");
+    Expect(0, 126267, '\p{^Nv:   00001000_0}', "");
+    Expect(0, 126267, '\P{Nv:   00001000_0}', "");
+    Expect(1, 126267, '\P{^Nv:   00001000_0}', "");
+    Expect(0, 126268, '\p{Nv:   00001000_0}', "");
+    Expect(1, 126268, '\p{^Nv:   00001000_0}', "");
+    Expect(1, 126268, '\P{Nv:   00001000_0}', "");
+    Expect(0, 126268, '\P{^Nv:   00001000_0}', "");
     Expect(1, 126267, '\p{Nv=1.000000000000000e+04}', "");
     Expect(0, 126267, '\p{^Nv=1.000000000000000e+04}', "");
     Expect(0, 126267, '\P{Nv=1.000000000000000e+04}', "");
@@ -72961,16 +73551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126268, '\p{^Nv=1.000000000000000e+04}', "");
     Expect(1, 126268, '\P{Nv=1.000000000000000e+04}', "");
     Expect(0, 126268, '\P{^Nv=1.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value=-/a/+0000010000}');
-    Error('\P{Is_Numeric_Value=-/a/+0000010000}');
-    Expect(1, 126267, '\p{Is_Numeric_Value=10000}', "");
-    Expect(0, 126267, '\p{^Is_Numeric_Value=10000}', "");
-    Expect(0, 126267, '\P{Is_Numeric_Value=10000}', "");
-    Expect(1, 126267, '\P{^Is_Numeric_Value=10000}', "");
-    Expect(0, 126268, '\p{Is_Numeric_Value=10000}', "");
-    Expect(1, 126268, '\p{^Is_Numeric_Value=10000}', "");
-    Expect(1, 126268, '\P{Is_Numeric_Value=10000}', "");
-    Expect(0, 126268, '\P{^Is_Numeric_Value=10000}', "");
+    Error('\p{Is_Numeric_Value=:=	0_0_0_1_0000}');
+    Error('\P{Is_Numeric_Value=:=	0_0_0_1_0000}');
+    Expect(1, 126267, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(0, 126267, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(0, 126267, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(1, 126267, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(0, 126268, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(1, 126268, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(1, 126268, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
+    Expect(0, 126268, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_1_0000}', "");
     Expect(1, 126267, '\p{Is_Numeric_Value=1.000000000000000e+04}', "");
     Expect(0, 126267, '\p{^Is_Numeric_Value=1.000000000000000e+04}', "");
     Expect(0, 126267, '\P{Is_Numeric_Value=1.000000000000000e+04}', "");
@@ -72979,16 +73569,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126268, '\p{^Is_Numeric_Value=1.000000000000000e+04}', "");
     Expect(1, 126268, '\P{Is_Numeric_Value=1.000000000000000e+04}', "");
     Expect(0, 126268, '\P{^Is_Numeric_Value=1.000000000000000e+04}', "");
-    Error('\p{Is_Nv: 	/a/10_00_0}');
-    Error('\P{Is_Nv: 	/a/10_00_0}');
-    Expect(1, 126267, '\p{Is_Nv=000001000_0}', "");
-    Expect(0, 126267, '\p{^Is_Nv=000001000_0}', "");
-    Expect(0, 126267, '\P{Is_Nv=000001000_0}', "");
-    Expect(1, 126267, '\P{^Is_Nv=000001000_0}', "");
-    Expect(0, 126268, '\p{Is_Nv=000001000_0}', "");
-    Expect(1, 126268, '\p{^Is_Nv=000001000_0}', "");
-    Expect(1, 126268, '\P{Is_Nv=000001000_0}', "");
-    Expect(0, 126268, '\P{^Is_Nv=000001000_0}', "");
+    Error('\p{Is_Nv=	/a/00_10_00_0}');
+    Error('\P{Is_Nv=	/a/00_10_00_0}');
+    Expect(1, 126267, '\p{Is_Nv=000_000_010_000}', "");
+    Expect(0, 126267, '\p{^Is_Nv=000_000_010_000}', "");
+    Expect(0, 126267, '\P{Is_Nv=000_000_010_000}', "");
+    Expect(1, 126267, '\P{^Is_Nv=000_000_010_000}', "");
+    Expect(0, 126268, '\p{Is_Nv=000_000_010_000}', "");
+    Expect(1, 126268, '\p{^Is_Nv=000_000_010_000}', "");
+    Expect(1, 126268, '\P{Is_Nv=000_000_010_000}', "");
+    Expect(0, 126268, '\P{^Is_Nv=000_000_010_000}', "");
     Expect(1, 126267, '\p{Is_Nv=1.000000000000000e+04}', "");
     Expect(0, 126267, '\p{^Is_Nv=1.000000000000000e+04}', "");
     Expect(0, 126267, '\P{Is_Nv=1.000000000000000e+04}', "");
@@ -72997,38 +73587,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126268, '\p{^Is_Nv=1.000000000000000e+04}', "");
     Expect(1, 126268, '\P{Is_Nv=1.000000000000000e+04}', "");
     Expect(0, 126268, '\P{^Is_Nv=1.000000000000000e+04}', "");
-    Error('\p{Numeric_Value=:=	_100000}');
-    Error('\P{Numeric_Value=:=	_100000}');
+    Error('\p{Numeric_Value= :=00_01_00_00_0}');
+    Error('\P{Numeric_Value= :=00_01_00_00_0}');
     Expect(1, 126132, '\p{Numeric_Value=:\A100000\z:}', "");;
     Expect(0, 126133, '\p{Numeric_Value=:\A100000\z:}', "");;
-    Expect(1, 126132, '\p{Numeric_Value=00000000100000}', "");
-    Expect(0, 126132, '\p{^Numeric_Value=00000000100000}', "");
-    Expect(0, 126132, '\P{Numeric_Value=00000000100000}', "");
-    Expect(1, 126132, '\P{^Numeric_Value=00000000100000}', "");
-    Expect(0, 126133, '\p{Numeric_Value=00000000100000}', "");
-    Expect(1, 126133, '\p{^Numeric_Value=00000000100000}', "");
-    Expect(1, 126133, '\P{Numeric_Value=00000000100000}', "");
-    Expect(0, 126133, '\P{^Numeric_Value=00000000100000}', "");
-    Expect(1, 126132, '\p{Numeric_Value:1.000000000000000e+05}', "");
-    Expect(0, 126132, '\p{^Numeric_Value:1.000000000000000e+05}', "");
-    Expect(0, 126132, '\P{Numeric_Value:1.000000000000000e+05}', "");
-    Expect(1, 126132, '\P{^Numeric_Value:1.000000000000000e+05}', "");
-    Expect(0, 126133, '\p{Numeric_Value:1.000000000000000e+05}', "");
-    Expect(1, 126133, '\p{^Numeric_Value:1.000000000000000e+05}', "");
-    Expect(1, 126133, '\P{Numeric_Value:1.000000000000000e+05}', "");
-    Expect(0, 126133, '\P{^Numeric_Value:1.000000000000000e+05}', "");
-    Error('\p{Nv=	/a/10000_0}');
-    Error('\P{Nv=	/a/10000_0}');
+    Expect(1, 126132, '\p{Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126132, '\p{^Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126132, '\P{Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126132, '\P{^Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126133, '\p{Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126133, '\p{^Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126133, '\P{Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126133, '\P{^Numeric_Value=0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126132, '\p{Numeric_Value=1.000000000000000e+05}', "");
+    Expect(0, 126132, '\p{^Numeric_Value=1.000000000000000e+05}', "");
+    Expect(0, 126132, '\P{Numeric_Value=1.000000000000000e+05}', "");
+    Expect(1, 126132, '\P{^Numeric_Value=1.000000000000000e+05}', "");
+    Expect(0, 126133, '\p{Numeric_Value=1.000000000000000e+05}', "");
+    Expect(1, 126133, '\p{^Numeric_Value=1.000000000000000e+05}', "");
+    Expect(1, 126133, '\P{Numeric_Value=1.000000000000000e+05}', "");
+    Expect(0, 126133, '\P{^Numeric_Value=1.000000000000000e+05}', "");
+    Error('\p{Nv=	-+00000100000/a/}');
+    Error('\P{Nv=	-+00000100000/a/}');
     Expect(1, 126132, '\p{Nv=:\A100000\z:}', "");;
     Expect(0, 126133, '\p{Nv=:\A100000\z:}', "");;
-    Expect(1, 126132, '\p{Nv=000_000_010_000_0}', "");
-    Expect(0, 126132, '\p{^Nv=000_000_010_000_0}', "");
-    Expect(0, 126132, '\P{Nv=000_000_010_000_0}', "");
-    Expect(1, 126132, '\P{^Nv=000_000_010_000_0}', "");
-    Expect(0, 126133, '\p{Nv=000_000_010_000_0}', "");
-    Expect(1, 126133, '\p{^Nv=000_000_010_000_0}', "");
-    Expect(1, 126133, '\P{Nv=000_000_010_000_0}', "");
-    Expect(0, 126133, '\P{^Nv=000_000_010_000_0}', "");
+    Expect(1, 126132, '\p{Nv=100000}', "");
+    Expect(0, 126132, '\p{^Nv=100000}', "");
+    Expect(0, 126132, '\P{Nv=100000}', "");
+    Expect(1, 126132, '\P{^Nv=100000}', "");
+    Expect(0, 126133, '\p{Nv=100000}', "");
+    Expect(1, 126133, '\p{^Nv=100000}', "");
+    Expect(1, 126133, '\P{Nv=100000}', "");
+    Expect(0, 126133, '\P{^Nv=100000}', "");
     Expect(1, 126132, '\p{Nv=1.000000000000000e+05}', "");
     Expect(0, 126132, '\p{^Nv=1.000000000000000e+05}', "");
     Expect(0, 126132, '\P{Nv=1.000000000000000e+05}', "");
@@ -73037,16 +73627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126133, '\p{^Nv=1.000000000000000e+05}', "");
     Expect(1, 126133, '\P{Nv=1.000000000000000e+05}', "");
     Expect(0, 126133, '\P{^Nv=1.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=:=	+00_00_01_00_000}');
-    Error('\P{Is_Numeric_Value=:=	+00_00_01_00_000}');
-    Expect(1, 126132, '\p{Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(0, 126132, '\p{^Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(0, 126132, '\P{Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(1, 126132, '\P{^Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(0, 126133, '\p{Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(1, 126133, '\p{^Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(1, 126133, '\P{Is_Numeric_Value=0_0_1_0_0_000}', "");
-    Expect(0, 126133, '\P{^Is_Numeric_Value=0_0_1_0_0_000}', "");
+    Error('\p{Is_Numeric_Value:	_:=+0100000}');
+    Error('\P{Is_Numeric_Value:	_:=+0100000}');
+    Expect(1, 126132, '\p{Is_Numeric_Value=+000000000100000}', "");
+    Expect(0, 126132, '\p{^Is_Numeric_Value=+000000000100000}', "");
+    Expect(0, 126132, '\P{Is_Numeric_Value=+000000000100000}', "");
+    Expect(1, 126132, '\P{^Is_Numeric_Value=+000000000100000}', "");
+    Expect(0, 126133, '\p{Is_Numeric_Value=+000000000100000}', "");
+    Expect(1, 126133, '\p{^Is_Numeric_Value=+000000000100000}', "");
+    Expect(1, 126133, '\P{Is_Numeric_Value=+000000000100000}', "");
+    Expect(0, 126133, '\P{^Is_Numeric_Value=+000000000100000}', "");
     Expect(1, 126132, '\p{Is_Numeric_Value=1.000000000000000e+05}', "");
     Expect(0, 126132, '\p{^Is_Numeric_Value=1.000000000000000e+05}', "");
     Expect(0, 126132, '\P{Is_Numeric_Value=1.000000000000000e+05}', "");
@@ -73055,16 +73645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126133, '\p{^Is_Numeric_Value=1.000000000000000e+05}', "");
     Expect(1, 126133, '\P{Is_Numeric_Value=1.000000000000000e+05}', "");
     Expect(0, 126133, '\P{^Is_Numeric_Value=1.000000000000000e+05}', "");
-    Error('\p{Is_Nv=_	+00000000100000:=}');
-    Error('\P{Is_Nv=_	+00000000100000:=}');
-    Expect(1, 126132, '\p{Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(0, 126132, '\p{^Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(0, 126132, '\P{Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(1, 126132, '\P{^Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(0, 126133, '\p{Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(1, 126133, '\p{^Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(1, 126133, '\P{Is_Nv=+0_0_0_0_1_0_0_000}', "");
-    Expect(0, 126133, '\P{^Is_Nv=+0_0_0_0_1_0_0_000}', "");
+    Error('\p{Is_Nv= :=0100000}');
+    Error('\P{Is_Nv= :=0100000}');
+    Expect(1, 126132, '\p{Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126132, '\p{^Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126132, '\P{Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126132, '\P{^Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126133, '\p{Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126133, '\p{^Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(1, 126133, '\P{Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
+    Expect(0, 126133, '\P{^Is_Nv:	0_0_0_0_1_0_0_0_00}', "");
     Expect(1, 126132, '\p{Is_Nv=1.000000000000000e+05}', "");
     Expect(0, 126132, '\p{^Is_Nv=1.000000000000000e+05}', "");
     Expect(0, 126132, '\P{Is_Nv=1.000000000000000e+05}', "");
@@ -73073,18 +73663,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126133, '\p{^Is_Nv=1.000000000000000e+05}', "");
     Expect(1, 126133, '\P{Is_Nv=1.000000000000000e+05}', "");
     Expect(0, 126133, '\P{^Is_Nv=1.000000000000000e+05}', "");
-    Error('\p{Numeric_Value=_/a/+0_0_0_0_0_0_0_0_1_0_0_0_0_00}');
-    Error('\P{Numeric_Value=_/a/+0_0_0_0_0_0_0_0_1_0_0_0_0_00}');
+    Error('\p{Numeric_Value=-+000_000_000_100_0000:=}');
+    Error('\P{Numeric_Value=-+000_000_000_100_0000:=}');
     Expect(1, 93022, '\p{Numeric_Value=:\A1000000\z:}', "");;
     Expect(0, 93023, '\p{Numeric_Value=:\A1000000\z:}', "");;
-    Expect(1, 93022, '\p{Numeric_Value=000100000_0}', "");
-    Expect(0, 93022, '\p{^Numeric_Value=000100000_0}', "");
-    Expect(0, 93022, '\P{Numeric_Value=000100000_0}', "");
-    Expect(1, 93022, '\P{^Numeric_Value=000100000_0}', "");
-    Expect(0, 93023, '\p{Numeric_Value=000100000_0}', "");
-    Expect(1, 93023, '\p{^Numeric_Value=000100000_0}', "");
-    Expect(1, 93023, '\P{Numeric_Value=000100000_0}', "");
-    Expect(0, 93023, '\P{^Numeric_Value=000100000_0}', "");
+    Expect(1, 93022, '\p{Numeric_Value=+10_00_00_0}', "");
+    Expect(0, 93022, '\p{^Numeric_Value=+10_00_00_0}', "");
+    Expect(0, 93022, '\P{Numeric_Value=+10_00_00_0}', "");
+    Expect(1, 93022, '\P{^Numeric_Value=+10_00_00_0}', "");
+    Expect(0, 93023, '\p{Numeric_Value=+10_00_00_0}', "");
+    Expect(1, 93023, '\p{^Numeric_Value=+10_00_00_0}', "");
+    Expect(1, 93023, '\P{Numeric_Value=+10_00_00_0}', "");
+    Expect(0, 93023, '\P{^Numeric_Value=+10_00_00_0}', "");
     Expect(1, 93022, '\p{Numeric_Value=1.000000000000000e+06}', "");
     Expect(0, 93022, '\p{^Numeric_Value=1.000000000000000e+06}', "");
     Expect(0, 93022, '\P{Numeric_Value=1.000000000000000e+06}', "");
@@ -73093,18 +73683,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93023, '\p{^Numeric_Value=1.000000000000000e+06}', "");
     Expect(1, 93023, '\P{Numeric_Value=1.000000000000000e+06}', "");
     Expect(0, 93023, '\P{^Numeric_Value=1.000000000000000e+06}', "");
-    Error('\p{Nv=-100_000_0/a/}');
-    Error('\P{Nv=-100_000_0/a/}');
+    Error('\p{Nv= +001000000:=}');
+    Error('\P{Nv= +001000000:=}');
     Expect(1, 93022, '\p{Nv=:\A1000000\z:}', "");;
     Expect(0, 93023, '\p{Nv=:\A1000000\z:}', "");;
-    Expect(1, 93022, '\p{Nv=100000_0}', "");
-    Expect(0, 93022, '\p{^Nv=100000_0}', "");
-    Expect(0, 93022, '\P{Nv=100000_0}', "");
-    Expect(1, 93022, '\P{^Nv=100000_0}', "");
-    Expect(0, 93023, '\p{Nv=100000_0}', "");
-    Expect(1, 93023, '\p{^Nv=100000_0}', "");
-    Expect(1, 93023, '\P{Nv=100000_0}', "");
-    Expect(0, 93023, '\P{^Nv=100000_0}', "");
+    Expect(1, 93022, '\p{Nv=01000000}', "");
+    Expect(0, 93022, '\p{^Nv=01000000}', "");
+    Expect(0, 93022, '\P{Nv=01000000}', "");
+    Expect(1, 93022, '\P{^Nv=01000000}', "");
+    Expect(0, 93023, '\p{Nv=01000000}', "");
+    Expect(1, 93023, '\p{^Nv=01000000}', "");
+    Expect(1, 93023, '\P{Nv=01000000}', "");
+    Expect(0, 93023, '\P{^Nv=01000000}', "");
     Expect(1, 93022, '\p{Nv=1.000000000000000e+06}', "");
     Expect(0, 93022, '\p{^Nv=1.000000000000000e+06}', "");
     Expect(0, 93022, '\P{Nv=1.000000000000000e+06}', "");
@@ -73113,16 +73703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93023, '\p{^Nv=1.000000000000000e+06}', "");
     Expect(1, 93023, '\P{Nv=1.000000000000000e+06}', "");
     Expect(0, 93023, '\P{^Nv=1.000000000000000e+06}', "");
-    Error('\p{Is_Numeric_Value:	:=-00_00_10_00_00_0}');
-    Error('\P{Is_Numeric_Value:	:=-00_00_10_00_00_0}');
-    Expect(1, 93022, '\p{Is_Numeric_Value:+01000000}', "");
-    Expect(0, 93022, '\p{^Is_Numeric_Value:+01000000}', "");
-    Expect(0, 93022, '\P{Is_Numeric_Value:+01000000}', "");
-    Expect(1, 93022, '\P{^Is_Numeric_Value:+01000000}', "");
-    Expect(0, 93023, '\p{Is_Numeric_Value:+01000000}', "");
-    Expect(1, 93023, '\p{^Is_Numeric_Value:+01000000}', "");
-    Expect(1, 93023, '\P{Is_Numeric_Value:+01000000}', "");
-    Expect(0, 93023, '\P{^Is_Numeric_Value:+01000000}', "");
+    Error('\p{Is_Numeric_Value=	:=1000000}');
+    Error('\P{Is_Numeric_Value=	:=1000000}');
+    Expect(1, 93022, '\p{Is_Numeric_Value=000000100000_0}', "");
+    Expect(0, 93022, '\p{^Is_Numeric_Value=000000100000_0}', "");
+    Expect(0, 93022, '\P{Is_Numeric_Value=000000100000_0}', "");
+    Expect(1, 93022, '\P{^Is_Numeric_Value=000000100000_0}', "");
+    Expect(0, 93023, '\p{Is_Numeric_Value=000000100000_0}', "");
+    Expect(1, 93023, '\p{^Is_Numeric_Value=000000100000_0}', "");
+    Expect(1, 93023, '\P{Is_Numeric_Value=000000100000_0}', "");
+    Expect(0, 93023, '\P{^Is_Numeric_Value=000000100000_0}', "");
     Expect(1, 93022, '\p{Is_Numeric_Value=1.000000000000000e+06}', "");
     Expect(0, 93022, '\p{^Is_Numeric_Value=1.000000000000000e+06}', "");
     Expect(0, 93022, '\P{Is_Numeric_Value=1.000000000000000e+06}', "");
@@ -73131,16 +73721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93023, '\p{^Is_Numeric_Value=1.000000000000000e+06}', "");
     Expect(1, 93023, '\P{Is_Numeric_Value=1.000000000000000e+06}', "");
     Expect(0, 93023, '\P{^Is_Numeric_Value=1.000000000000000e+06}', "");
-    Error('\p{Is_Nv=__00000001000000/a/}');
-    Error('\P{Is_Nv=__00000001000000/a/}');
-    Expect(1, 93022, '\p{Is_Nv:	+1000000}', "");
-    Expect(0, 93022, '\p{^Is_Nv:	+1000000}', "");
-    Expect(0, 93022, '\P{Is_Nv:	+1000000}', "");
-    Expect(1, 93022, '\P{^Is_Nv:	+1000000}', "");
-    Expect(0, 93023, '\p{Is_Nv:	+1000000}', "");
-    Expect(1, 93023, '\p{^Is_Nv:	+1000000}', "");
-    Expect(1, 93023, '\P{Is_Nv:	+1000000}', "");
-    Expect(0, 93023, '\P{^Is_Nv:	+1000000}', "");
+    Error('\p{Is_Nv=/a/_+0000001000000}');
+    Error('\P{Is_Nv=/a/_+0000001000000}');
+    Expect(1, 93022, '\p{Is_Nv:000000001000000}', "");
+    Expect(0, 93022, '\p{^Is_Nv:000000001000000}', "");
+    Expect(0, 93022, '\P{Is_Nv:000000001000000}', "");
+    Expect(1, 93022, '\P{^Is_Nv:000000001000000}', "");
+    Expect(0, 93023, '\p{Is_Nv:000000001000000}', "");
+    Expect(1, 93023, '\p{^Is_Nv:000000001000000}', "");
+    Expect(1, 93023, '\P{Is_Nv:000000001000000}', "");
+    Expect(0, 93023, '\P{^Is_Nv:000000001000000}', "");
     Expect(1, 93022, '\p{Is_Nv=1.000000000000000e+06}', "");
     Expect(0, 93022, '\p{^Is_Nv=1.000000000000000e+06}', "");
     Expect(0, 93022, '\P{Is_Nv=1.000000000000000e+06}', "");
@@ -73149,18 +73739,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93023, '\p{^Is_Nv=1.000000000000000e+06}', "");
     Expect(1, 93023, '\P{Is_Nv=1.000000000000000e+06}', "");
     Expect(0, 93023, '\P{^Is_Nv=1.000000000000000e+06}', "");
-    Error('\p{Numeric_Value: --+00000000010000000/a/}');
-    Error('\P{Numeric_Value: --+00000000010000000/a/}');
+    Error('\p{Numeric_Value=- 0010000000/a/}');
+    Error('\P{Numeric_Value=- 0010000000/a/}');
     Expect(1, 126113, '\p{Numeric_Value=:\A10000000\z:}', "");;
     Expect(0, 126114, '\p{Numeric_Value=:\A10000000\z:}', "");;
-    Expect(1, 126113, '\p{Numeric_Value=000010000000}', "");
-    Expect(0, 126113, '\p{^Numeric_Value=000010000000}', "");
-    Expect(0, 126113, '\P{Numeric_Value=000010000000}', "");
-    Expect(1, 126113, '\P{^Numeric_Value=000010000000}', "");
-    Expect(0, 126114, '\p{Numeric_Value=000010000000}', "");
-    Expect(1, 126114, '\p{^Numeric_Value=000010000000}', "");
-    Expect(1, 126114, '\P{Numeric_Value=000010000000}', "");
-    Expect(0, 126114, '\P{^Numeric_Value=000010000000}', "");
+    Expect(1, 126113, '\p{Numeric_Value=1000000_0}', "");
+    Expect(0, 126113, '\p{^Numeric_Value=1000000_0}', "");
+    Expect(0, 126113, '\P{Numeric_Value=1000000_0}', "");
+    Expect(1, 126113, '\P{^Numeric_Value=1000000_0}', "");
+    Expect(0, 126114, '\p{Numeric_Value=1000000_0}', "");
+    Expect(1, 126114, '\p{^Numeric_Value=1000000_0}', "");
+    Expect(1, 126114, '\P{Numeric_Value=1000000_0}', "");
+    Expect(0, 126114, '\P{^Numeric_Value=1000000_0}', "");
     Expect(1, 126113, '\p{Numeric_Value=1.000000000000000e+07}', "");
     Expect(0, 126113, '\p{^Numeric_Value=1.000000000000000e+07}', "");
     Expect(0, 126113, '\P{Numeric_Value=1.000000000000000e+07}', "");
@@ -73169,18 +73759,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126114, '\p{^Numeric_Value=1.000000000000000e+07}', "");
     Expect(1, 126114, '\P{Numeric_Value=1.000000000000000e+07}', "");
     Expect(0, 126114, '\P{^Numeric_Value=1.000000000000000e+07}', "");
-    Error('\p{Nv: :=--+00000010000000}');
-    Error('\P{Nv: :=--+00000010000000}');
+    Error('\p{Nv=_	00_00_01_00_00_00_0/a/}');
+    Error('\P{Nv=_	00_00_01_00_00_00_0/a/}');
     Expect(1, 126113, '\p{Nv=:\A10000000\z:}', "");;
     Expect(0, 126114, '\p{Nv=:\A10000000\z:}', "");;
-    Expect(1, 126113, '\p{Nv=+000000010000000}', "");
-    Expect(0, 126113, '\p{^Nv=+000000010000000}', "");
-    Expect(0, 126113, '\P{Nv=+000000010000000}', "");
-    Expect(1, 126113, '\P{^Nv=+000000010000000}', "");
-    Expect(0, 126114, '\p{Nv=+000000010000000}', "");
-    Expect(1, 126114, '\p{^Nv=+000000010000000}', "");
-    Expect(1, 126114, '\P{Nv=+000000010000000}', "");
-    Expect(0, 126114, '\P{^Nv=+000000010000000}', "");
+    Expect(1, 126113, '\p{Nv: 00000010000000}', "");
+    Expect(0, 126113, '\p{^Nv: 00000010000000}', "");
+    Expect(0, 126113, '\P{Nv: 00000010000000}', "");
+    Expect(1, 126113, '\P{^Nv: 00000010000000}', "");
+    Expect(0, 126114, '\p{Nv: 00000010000000}', "");
+    Expect(1, 126114, '\p{^Nv: 00000010000000}', "");
+    Expect(1, 126114, '\P{Nv: 00000010000000}', "");
+    Expect(0, 126114, '\P{^Nv: 00000010000000}', "");
     Expect(1, 126113, '\p{Nv=1.000000000000000e+07}', "");
     Expect(0, 126113, '\p{^Nv=1.000000000000000e+07}', "");
     Expect(0, 126113, '\P{Nv=1.000000000000000e+07}', "");
@@ -73189,34 +73779,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126114, '\p{^Nv=1.000000000000000e+07}', "");
     Expect(1, 126114, '\P{Nv=1.000000000000000e+07}', "");
     Expect(0, 126114, '\P{^Nv=1.000000000000000e+07}', "");
-    Error('\p{Is_Numeric_Value= _+00000000010000000:=}');
-    Error('\P{Is_Numeric_Value= _+00000000010000000:=}');
-    Expect(1, 126113, '\p{Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(0, 126113, '\p{^Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(0, 126113, '\P{Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(1, 126113, '\P{^Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(0, 126114, '\p{Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(1, 126114, '\p{^Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(1, 126114, '\P{Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(0, 126114, '\P{^Is_Numeric_Value:	0000_0001_0000_000}', "");
-    Expect(1, 126113, '\p{Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(0, 126113, '\p{^Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(0, 126113, '\P{Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(1, 126113, '\P{^Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(0, 126114, '\p{Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(1, 126114, '\p{^Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(1, 126114, '\P{Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Expect(0, 126114, '\P{^Is_Numeric_Value:	1.000000000000000e+07}', "");
-    Error('\p{Is_Nv=:=__00000010000000}');
-    Error('\P{Is_Nv=:=__00000010000000}');
-    Expect(1, 126113, '\p{Is_Nv=10000000}', "");
-    Expect(0, 126113, '\p{^Is_Nv=10000000}', "");
-    Expect(0, 126113, '\P{Is_Nv=10000000}', "");
-    Expect(1, 126113, '\P{^Is_Nv=10000000}', "");
-    Expect(0, 126114, '\p{Is_Nv=10000000}', "");
-    Expect(1, 126114, '\p{^Is_Nv=10000000}', "");
-    Expect(1, 126114, '\P{Is_Nv=10000000}', "");
-    Expect(0, 126114, '\P{^Is_Nv=10000000}', "");
+    Error('\p{Is_Numeric_Value=-00000_00001_00000_00/a/}');
+    Error('\P{Is_Numeric_Value=-00000_00001_00000_00/a/}');
+    Expect(1, 126113, '\p{Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(0, 126113, '\p{^Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(0, 126113, '\P{Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(1, 126113, '\P{^Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(0, 126114, '\p{Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(1, 126114, '\p{^Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(1, 126114, '\P{Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(0, 126114, '\P{^Is_Numeric_Value=+0_0_0_0_0_1_0_0_00000}', "");
+    Expect(1, 126113, '\p{Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(0, 126113, '\p{^Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(0, 126113, '\P{Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(1, 126113, '\P{^Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(0, 126114, '\p{Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(1, 126114, '\p{^Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(1, 126114, '\P{Is_Numeric_Value=1.000000000000000e+07}', "");
+    Expect(0, 126114, '\P{^Is_Numeric_Value=1.000000000000000e+07}', "");
+    Error('\p{Is_Nv=_	+010000000/a/}');
+    Error('\P{Is_Nv=_	+010000000/a/}');
+    Expect(1, 126113, '\p{Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(0, 126113, '\p{^Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(0, 126113, '\P{Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(1, 126113, '\P{^Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(0, 126114, '\p{Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(1, 126114, '\p{^Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(1, 126114, '\P{Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
+    Expect(0, 126114, '\P{^Is_Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_00}', "");
     Expect(1, 126113, '\p{Is_Nv=1.000000000000000e+07}', "");
     Expect(0, 126113, '\p{^Is_Nv=1.000000000000000e+07}', "");
     Expect(0, 126113, '\P{Is_Nv=1.000000000000000e+07}', "");
@@ -73225,18 +73815,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126114, '\p{^Is_Nv=1.000000000000000e+07}', "");
     Expect(1, 126114, '\P{Is_Nv=1.000000000000000e+07}', "");
     Expect(0, 126114, '\P{^Is_Nv=1.000000000000000e+07}', "");
-    Error('\p{Numeric_Value= :=0100_0000_00}');
-    Error('\P{Numeric_Value= :=0100_0000_00}');
+    Error('\p{Numeric_Value::=-	+00100000000}');
+    Error('\P{Numeric_Value::=-	+00100000000}');
     Expect(1, 93023, '\p{Numeric_Value=:\A100000000\z:}', "");;
     Expect(0, 93024, '\p{Numeric_Value=:\A100000000\z:}', "");;
-    Expect(1, 93023, '\p{Numeric_Value=00100000000}', "");
-    Expect(0, 93023, '\p{^Numeric_Value=00100000000}', "");
-    Expect(0, 93023, '\P{Numeric_Value=00100000000}', "");
-    Expect(1, 93023, '\P{^Numeric_Value=00100000000}', "");
-    Expect(0, 93024, '\p{Numeric_Value=00100000000}', "");
-    Expect(1, 93024, '\p{^Numeric_Value=00100000000}', "");
-    Expect(1, 93024, '\P{Numeric_Value=00100000000}', "");
-    Expect(0, 93024, '\P{^Numeric_Value=00100000000}', "");
+    Expect(1, 93023, '\p{Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(0, 93023, '\p{^Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(0, 93023, '\P{Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(1, 93023, '\P{^Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(0, 93024, '\p{Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(1, 93024, '\p{^Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(1, 93024, '\P{Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
+    Expect(0, 93024, '\P{^Numeric_Value:   0_0_0_0_0_0_0_0_0_1_0_0_0_0_0000}', "");
     Expect(1, 93023, '\p{Numeric_Value=1.000000000000000e+08}', "");
     Expect(0, 93023, '\p{^Numeric_Value=1.000000000000000e+08}', "");
     Expect(0, 93023, '\P{Numeric_Value=1.000000000000000e+08}', "");
@@ -73245,18 +73835,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93024, '\p{^Numeric_Value=1.000000000000000e+08}', "");
     Expect(1, 93024, '\P{Numeric_Value=1.000000000000000e+08}', "");
     Expect(0, 93024, '\P{^Numeric_Value=1.000000000000000e+08}', "");
-    Error('\p{Nv:+00000100000000/a/}');
-    Error('\P{Nv:+00000100000000/a/}');
+    Error('\p{Nv=/a/		+0100000000}');
+    Error('\P{Nv=/a/		+0100000000}');
     Expect(1, 93023, '\p{Nv=:\A100000000\z:}', "");;
     Expect(0, 93024, '\p{Nv=:\A100000000\z:}', "");;
-    Expect(1, 93023, '\p{Nv=0000100000000}', "");
-    Expect(0, 93023, '\p{^Nv=0000100000000}', "");
-    Expect(0, 93023, '\P{Nv=0000100000000}', "");
-    Expect(1, 93023, '\P{^Nv=0000100000000}', "");
-    Expect(0, 93024, '\p{Nv=0000100000000}', "");
-    Expect(1, 93024, '\p{^Nv=0000100000000}', "");
-    Expect(1, 93024, '\P{Nv=0000100000000}', "");
-    Expect(0, 93024, '\P{^Nv=0000100000000}', "");
+    Expect(1, 93023, '\p{Nv=+00000000100000000}', "");
+    Expect(0, 93023, '\p{^Nv=+00000000100000000}', "");
+    Expect(0, 93023, '\P{Nv=+00000000100000000}', "");
+    Expect(1, 93023, '\P{^Nv=+00000000100000000}', "");
+    Expect(0, 93024, '\p{Nv=+00000000100000000}', "");
+    Expect(1, 93024, '\p{^Nv=+00000000100000000}', "");
+    Expect(1, 93024, '\P{Nv=+00000000100000000}', "");
+    Expect(0, 93024, '\P{^Nv=+00000000100000000}', "");
     Expect(1, 93023, '\p{Nv=1.000000000000000e+08}', "");
     Expect(0, 93023, '\p{^Nv=1.000000000000000e+08}', "");
     Expect(0, 93023, '\P{Nv=1.000000000000000e+08}', "");
@@ -73265,16 +73855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93024, '\p{^Nv=1.000000000000000e+08}', "");
     Expect(1, 93024, '\P{Nv=1.000000000000000e+08}', "");
     Expect(0, 93024, '\P{^Nv=1.000000000000000e+08}', "");
-    Error('\p{Is_Numeric_Value=	 000000000100000000/a/}');
-    Error('\P{Is_Numeric_Value=	 000000000100000000/a/}');
-    Expect(1, 93023, '\p{Is_Numeric_Value=0000100000000}', "");
-    Expect(0, 93023, '\p{^Is_Numeric_Value=0000100000000}', "");
-    Expect(0, 93023, '\P{Is_Numeric_Value=0000100000000}', "");
-    Expect(1, 93023, '\P{^Is_Numeric_Value=0000100000000}', "");
-    Expect(0, 93024, '\p{Is_Numeric_Value=0000100000000}', "");
-    Expect(1, 93024, '\p{^Is_Numeric_Value=0000100000000}', "");
-    Expect(1, 93024, '\P{Is_Numeric_Value=0000100000000}', "");
-    Expect(0, 93024, '\P{^Is_Numeric_Value=0000100000000}', "");
+    Error('\p{Is_Numeric_Value=-_00_00_10_00_00_00_0:=}');
+    Error('\P{Is_Numeric_Value=-_00_00_10_00_00_00_0:=}');
+    Expect(1, 93023, '\p{Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(0, 93023, '\p{^Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(0, 93023, '\P{Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(1, 93023, '\P{^Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(0, 93024, '\p{Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(1, 93024, '\p{^Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(1, 93024, '\P{Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
+    Expect(0, 93024, '\P{^Is_Numeric_Value=+0_0_0_1_0_0_0_00000}', "");
     Expect(1, 93023, '\p{Is_Numeric_Value=1.000000000000000e+08}', "");
     Expect(0, 93023, '\p{^Is_Numeric_Value=1.000000000000000e+08}', "");
     Expect(0, 93023, '\P{Is_Numeric_Value=1.000000000000000e+08}', "");
@@ -73283,16 +73873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93024, '\p{^Is_Numeric_Value=1.000000000000000e+08}', "");
     Expect(1, 93024, '\P{Is_Numeric_Value=1.000000000000000e+08}', "");
     Expect(0, 93024, '\P{^Is_Numeric_Value=1.000000000000000e+08}', "");
-    Error('\p{Is_Nv=:=_0010000000_0}');
-    Error('\P{Is_Nv=:=_0010000000_0}');
-    Expect(1, 93023, '\p{Is_Nv=0000100000000}', "");
-    Expect(0, 93023, '\p{^Is_Nv=0000100000000}', "");
-    Expect(0, 93023, '\P{Is_Nv=0000100000000}', "");
-    Expect(1, 93023, '\P{^Is_Nv=0000100000000}', "");
-    Expect(0, 93024, '\p{Is_Nv=0000100000000}', "");
-    Expect(1, 93024, '\p{^Is_Nv=0000100000000}', "");
-    Expect(1, 93024, '\P{Is_Nv=0000100000000}', "");
-    Expect(0, 93024, '\P{^Is_Nv=0000100000000}', "");
+    Error('\p{Is_Nv=	-00000100000000:=}');
+    Error('\P{Is_Nv=	-00000100000000:=}');
+    Expect(1, 93023, '\p{Is_Nv=00_10_00_00_000}', "");
+    Expect(0, 93023, '\p{^Is_Nv=00_10_00_00_000}', "");
+    Expect(0, 93023, '\P{Is_Nv=00_10_00_00_000}', "");
+    Expect(1, 93023, '\P{^Is_Nv=00_10_00_00_000}', "");
+    Expect(0, 93024, '\p{Is_Nv=00_10_00_00_000}', "");
+    Expect(1, 93024, '\p{^Is_Nv=00_10_00_00_000}', "");
+    Expect(1, 93024, '\P{Is_Nv=00_10_00_00_000}', "");
+    Expect(0, 93024, '\P{^Is_Nv=00_10_00_00_000}', "");
     Expect(1, 93023, '\p{Is_Nv=1.000000000000000e+08}', "");
     Expect(0, 93023, '\p{^Is_Nv=1.000000000000000e+08}', "");
     Expect(0, 93023, '\P{Is_Nv=1.000000000000000e+08}', "");
@@ -73301,38 +73891,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93024, '\p{^Is_Nv=1.000000000000000e+08}', "");
     Expect(1, 93024, '\P{Is_Nv=1.000000000000000e+08}', "");
     Expect(0, 93024, '\P{^Is_Nv=1.000000000000000e+08}', "");
-    Error('\p{Numeric_Value=:=  000_001_000_000_000_0}');
-    Error('\P{Numeric_Value=:=  000_001_000_000_000_0}');
+    Error('\p{Numeric_Value=/a/ +0000010000000000}');
+    Error('\P{Numeric_Value=/a/ +0000010000000000}');
     Expect(1, 93024, '\p{Numeric_Value=:\A10000000000\z:}', "");;
     Expect(0, 93025, '\p{Numeric_Value=:\A10000000000\z:}', "");;
-    Expect(1, 93024, '\p{Numeric_Value=00010000000000}', "");
-    Expect(0, 93024, '\p{^Numeric_Value=00010000000000}', "");
-    Expect(0, 93024, '\P{Numeric_Value=00010000000000}', "");
-    Expect(1, 93024, '\P{^Numeric_Value=00010000000000}', "");
-    Expect(0, 93025, '\p{Numeric_Value=00010000000000}', "");
-    Expect(1, 93025, '\p{^Numeric_Value=00010000000000}', "");
-    Expect(1, 93025, '\P{Numeric_Value=00010000000000}', "");
-    Expect(0, 93025, '\P{^Numeric_Value=00010000000000}', "");
-    Expect(1, 93024, '\p{Numeric_Value:1.000000000000000e+10}', "");
-    Expect(0, 93024, '\p{^Numeric_Value:1.000000000000000e+10}', "");
-    Expect(0, 93024, '\P{Numeric_Value:1.000000000000000e+10}', "");
-    Expect(1, 93024, '\P{^Numeric_Value:1.000000000000000e+10}', "");
-    Expect(0, 93025, '\p{Numeric_Value:1.000000000000000e+10}', "");
-    Expect(1, 93025, '\p{^Numeric_Value:1.000000000000000e+10}', "");
-    Expect(1, 93025, '\P{Numeric_Value:1.000000000000000e+10}', "");
-    Expect(0, 93025, '\P{^Numeric_Value:1.000000000000000e+10}', "");
-    Error('\p{Nv=		00010000000000:=}');
-    Error('\P{Nv=		00010000000000:=}');
+    Expect(1, 93024, '\p{Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93024, '\p{^Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93024, '\P{Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93024, '\P{^Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93025, '\p{Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93025, '\p{^Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93025, '\P{Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93025, '\P{^Numeric_Value=0_1_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93024, '\p{Numeric_Value=1.000000000000000e+10}', "");
+    Expect(0, 93024, '\p{^Numeric_Value=1.000000000000000e+10}', "");
+    Expect(0, 93024, '\P{Numeric_Value=1.000000000000000e+10}', "");
+    Expect(1, 93024, '\P{^Numeric_Value=1.000000000000000e+10}', "");
+    Expect(0, 93025, '\p{Numeric_Value=1.000000000000000e+10}', "");
+    Expect(1, 93025, '\p{^Numeric_Value=1.000000000000000e+10}', "");
+    Expect(1, 93025, '\P{Numeric_Value=1.000000000000000e+10}', "");
+    Expect(0, 93025, '\P{^Numeric_Value=1.000000000000000e+10}', "");
+    Error('\p{Nv=  000000010000000000:=}');
+    Error('\P{Nv=  000000010000000000:=}');
     Expect(1, 93024, '\p{Nv=:\A10000000000\z:}', "");;
     Expect(0, 93025, '\p{Nv=:\A10000000000\z:}', "");;
-    Expect(1, 93024, '\p{Nv=00000010000000000}', "");
-    Expect(0, 93024, '\p{^Nv=00000010000000000}', "");
-    Expect(0, 93024, '\P{Nv=00000010000000000}', "");
-    Expect(1, 93024, '\P{^Nv=00000010000000000}', "");
-    Expect(0, 93025, '\p{Nv=00000010000000000}', "");
-    Expect(1, 93025, '\p{^Nv=00000010000000000}', "");
-    Expect(1, 93025, '\P{Nv=00000010000000000}', "");
-    Expect(0, 93025, '\P{^Nv=00000010000000000}', "");
+    Expect(1, 93024, '\p{Nv=10_00_00_00_000}', "");
+    Expect(0, 93024, '\p{^Nv=10_00_00_00_000}', "");
+    Expect(0, 93024, '\P{Nv=10_00_00_00_000}', "");
+    Expect(1, 93024, '\P{^Nv=10_00_00_00_000}', "");
+    Expect(0, 93025, '\p{Nv=10_00_00_00_000}', "");
+    Expect(1, 93025, '\p{^Nv=10_00_00_00_000}', "");
+    Expect(1, 93025, '\P{Nv=10_00_00_00_000}', "");
+    Expect(0, 93025, '\P{^Nv=10_00_00_00_000}', "");
     Expect(1, 93024, '\p{Nv=1.000000000000000e+10}', "");
     Expect(0, 93024, '\p{^Nv=1.000000000000000e+10}', "");
     Expect(0, 93024, '\P{Nv=1.000000000000000e+10}', "");
@@ -73341,16 +73931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93025, '\p{^Nv=1.000000000000000e+10}', "");
     Expect(1, 93025, '\P{Nv=1.000000000000000e+10}', "");
     Expect(0, 93025, '\P{^Nv=1.000000000000000e+10}', "");
-    Error('\p{Is_Numeric_Value=:=		+000010000000000}');
-    Error('\P{Is_Numeric_Value=:=		+000010000000000}');
-    Expect(1, 93024, '\p{Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(0, 93024, '\p{^Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(0, 93024, '\P{Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(1, 93024, '\P{^Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(0, 93025, '\p{Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(1, 93025, '\p{^Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(1, 93025, '\P{Is_Numeric_Value=00_00_10_00_00_00000}', "");
-    Expect(0, 93025, '\P{^Is_Numeric_Value=00_00_10_00_00_00000}', "");
+    Error('\p{Is_Numeric_Value= 010000000000:=}');
+    Error('\P{Is_Numeric_Value= 010000000000:=}');
+    Expect(1, 93024, '\p{Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(0, 93024, '\p{^Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(0, 93024, '\P{Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(1, 93024, '\P{^Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(0, 93025, '\p{Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(1, 93025, '\p{^Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(1, 93025, '\P{Is_Numeric_Value=+001_000_000_000_0}', "");
+    Expect(0, 93025, '\P{^Is_Numeric_Value=+001_000_000_000_0}', "");
     Expect(1, 93024, '\p{Is_Numeric_Value=1.000000000000000e+10}', "");
     Expect(0, 93024, '\p{^Is_Numeric_Value=1.000000000000000e+10}', "");
     Expect(0, 93024, '\P{Is_Numeric_Value=1.000000000000000e+10}', "");
@@ -73359,16 +73949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93025, '\p{^Is_Numeric_Value=1.000000000000000e+10}', "");
     Expect(1, 93025, '\P{Is_Numeric_Value=1.000000000000000e+10}', "");
     Expect(0, 93025, '\P{^Is_Numeric_Value=1.000000000000000e+10}', "");
-    Error('\p{Is_Nv=:=_ 0000100_0000000_0}');
-    Error('\P{Is_Nv=:=_ 0000100_0000000_0}');
-    Expect(1, 93024, '\p{Is_Nv=+000000010000000000}', "");
-    Expect(0, 93024, '\p{^Is_Nv=+000000010000000000}', "");
-    Expect(0, 93024, '\P{Is_Nv=+000000010000000000}', "");
-    Expect(1, 93024, '\P{^Is_Nv=+000000010000000000}', "");
-    Expect(0, 93025, '\p{Is_Nv=+000000010000000000}', "");
-    Expect(1, 93025, '\p{^Is_Nv=+000000010000000000}', "");
-    Expect(1, 93025, '\P{Is_Nv=+000000010000000000}', "");
-    Expect(0, 93025, '\P{^Is_Nv=+000000010000000000}', "");
+    Error('\p{Is_Nv=		00_00_01_00_00_00_0000/a/}');
+    Error('\P{Is_Nv=		00_00_01_00_00_00_0000/a/}');
+    Expect(1, 93024, '\p{Is_Nv=0000010000000000}', "");
+    Expect(0, 93024, '\p{^Is_Nv=0000010000000000}', "");
+    Expect(0, 93024, '\P{Is_Nv=0000010000000000}', "");
+    Expect(1, 93024, '\P{^Is_Nv=0000010000000000}', "");
+    Expect(0, 93025, '\p{Is_Nv=0000010000000000}', "");
+    Expect(1, 93025, '\p{^Is_Nv=0000010000000000}', "");
+    Expect(1, 93025, '\P{Is_Nv=0000010000000000}', "");
+    Expect(0, 93025, '\P{^Is_Nv=0000010000000000}', "");
     Expect(1, 93024, '\p{Is_Nv=1.000000000000000e+10}', "");
     Expect(0, 93024, '\p{^Is_Nv=1.000000000000000e+10}', "");
     Expect(0, 93024, '\P{Is_Nv=1.000000000000000e+10}', "");
@@ -73377,18 +73967,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93025, '\p{^Is_Nv=1.000000000000000e+10}', "");
     Expect(1, 93025, '\P{Is_Nv=1.000000000000000e+10}', "");
     Expect(0, 93025, '\P{^Is_Nv=1.000000000000000e+10}', "");
-    Error('\p{Numeric_Value=	:=+1_0_0_0_0_0_0_0_00000}');
-    Error('\P{Numeric_Value=	:=+1_0_0_0_0_0_0_0_00000}');
+    Error('\p{Numeric_Value: /a/	 00001000000000000}');
+    Error('\P{Numeric_Value: /a/	 00001000000000000}');
     Expect(1, 93025, '\p{Numeric_Value=:\A1000000000000\z:}', "");;
     Expect(0, 93026, '\p{Numeric_Value=:\A1000000000000\z:}', "");;
-    Expect(1, 93025, '\p{Numeric_Value=0000000001000000000000}', "");
-    Expect(0, 93025, '\p{^Numeric_Value=0000000001000000000000}', "");
-    Expect(0, 93025, '\P{Numeric_Value=0000000001000000000000}', "");
-    Expect(1, 93025, '\P{^Numeric_Value=0000000001000000000000}', "");
-    Expect(0, 93026, '\p{Numeric_Value=0000000001000000000000}', "");
-    Expect(1, 93026, '\p{^Numeric_Value=0000000001000000000000}', "");
-    Expect(1, 93026, '\P{Numeric_Value=0000000001000000000000}', "");
-    Expect(0, 93026, '\P{^Numeric_Value=0000000001000000000000}', "");
+    Expect(1, 93025, '\p{Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(0, 93025, '\p{^Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(0, 93025, '\P{Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(1, 93025, '\P{^Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(0, 93026, '\p{Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(1, 93026, '\p{^Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(1, 93026, '\P{Numeric_Value=+0000000_0010000_0000000_0}', "");
+    Expect(0, 93026, '\P{^Numeric_Value=+0000000_0010000_0000000_0}', "");
     Expect(1, 93025, '\p{Numeric_Value=1.000000000000000e+12}', "");
     Expect(0, 93025, '\p{^Numeric_Value=1.000000000000000e+12}', "");
     Expect(0, 93025, '\P{Numeric_Value=1.000000000000000e+12}', "");
@@ -73397,18 +73987,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93026, '\p{^Numeric_Value=1.000000000000000e+12}', "");
     Expect(1, 93026, '\P{Numeric_Value=1.000000000000000e+12}', "");
     Expect(0, 93026, '\P{^Numeric_Value=1.000000000000000e+12}', "");
-    Error('\p{Nv=-_000000001000000000000/a/}');
-    Error('\P{Nv=-_000000001000000000000/a/}');
+    Error('\p{Nv=		000001000000000000:=}');
+    Error('\P{Nv=		000001000000000000:=}');
     Expect(1, 93025, '\p{Nv=:\A1000000000000\z:}', "");;
     Expect(0, 93026, '\p{Nv=:\A1000000000000\z:}', "");;
-    Expect(1, 93025, '\p{Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(0, 93025, '\p{^Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(0, 93025, '\P{Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(1, 93025, '\P{^Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(0, 93026, '\p{Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(1, 93026, '\p{^Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(1, 93026, '\P{Nv=+00_00_00_01_00_00_00_00_00_00}', "");
-    Expect(0, 93026, '\P{^Nv=+00_00_00_01_00_00_00_00_00_00}', "");
+    Expect(1, 93025, '\p{Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(0, 93025, '\p{^Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(0, 93025, '\P{Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(1, 93025, '\P{^Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(0, 93026, '\p{Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(1, 93026, '\p{^Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(1, 93026, '\P{Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
+    Expect(0, 93026, '\P{^Nv=0_0_0_0_0_0_0_0_1_0_0_0_0_0_0000000}', "");
     Expect(1, 93025, '\p{Nv=1.000000000000000e+12}', "");
     Expect(0, 93025, '\p{^Nv=1.000000000000000e+12}', "");
     Expect(0, 93025, '\P{Nv=1.000000000000000e+12}', "");
@@ -73417,16 +74007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93026, '\p{^Nv=1.000000000000000e+12}', "");
     Expect(1, 93026, '\P{Nv=1.000000000000000e+12}', "");
     Expect(0, 93026, '\P{^Nv=1.000000000000000e+12}', "");
-    Error('\p{Is_Numeric_Value=:=000_000_100_000_000_0000}');
-    Error('\P{Is_Numeric_Value=:=000_000_100_000_000_0000}');
-    Expect(1, 93025, '\p{Is_Numeric_Value=000100000000000_0}', "");
-    Expect(0, 93025, '\p{^Is_Numeric_Value=000100000000000_0}', "");
-    Expect(0, 93025, '\P{Is_Numeric_Value=000100000000000_0}', "");
-    Expect(1, 93025, '\P{^Is_Numeric_Value=000100000000000_0}', "");
-    Expect(0, 93026, '\p{Is_Numeric_Value=000100000000000_0}', "");
-    Expect(1, 93026, '\p{^Is_Numeric_Value=000100000000000_0}', "");
-    Expect(1, 93026, '\P{Is_Numeric_Value=000100000000000_0}', "");
-    Expect(0, 93026, '\P{^Is_Numeric_Value=000100000000000_0}', "");
+    Error('\p{Is_Numeric_Value:   -	00001000000000000:=}');
+    Error('\P{Is_Numeric_Value:   -	00001000000000000:=}');
+    Expect(1, 93025, '\p{Is_Numeric_Value=1000000000000}', "");
+    Expect(0, 93025, '\p{^Is_Numeric_Value=1000000000000}', "");
+    Expect(0, 93025, '\P{Is_Numeric_Value=1000000000000}', "");
+    Expect(1, 93025, '\P{^Is_Numeric_Value=1000000000000}', "");
+    Expect(0, 93026, '\p{Is_Numeric_Value=1000000000000}', "");
+    Expect(1, 93026, '\p{^Is_Numeric_Value=1000000000000}', "");
+    Expect(1, 93026, '\P{Is_Numeric_Value=1000000000000}', "");
+    Expect(0, 93026, '\P{^Is_Numeric_Value=1000000000000}', "");
     Expect(1, 93025, '\p{Is_Numeric_Value=1.000000000000000e+12}', "");
     Expect(0, 93025, '\p{^Is_Numeric_Value=1.000000000000000e+12}', "");
     Expect(0, 93025, '\P{Is_Numeric_Value=1.000000000000000e+12}', "");
@@ -73435,16 +74025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93026, '\p{^Is_Numeric_Value=1.000000000000000e+12}', "");
     Expect(1, 93026, '\P{Is_Numeric_Value=1.000000000000000e+12}', "");
     Expect(0, 93026, '\P{^Is_Numeric_Value=1.000000000000000e+12}', "");
-    Error('\p{Is_Nv=- +00_10_00_00_00_00000:=}');
-    Error('\P{Is_Nv=- +00_10_00_00_00_00000:=}');
-    Expect(1, 93025, '\p{Is_Nv=0000001000000000000}', "");
-    Expect(0, 93025, '\p{^Is_Nv=0000001000000000000}', "");
-    Expect(0, 93025, '\P{Is_Nv=0000001000000000000}', "");
-    Expect(1, 93025, '\P{^Is_Nv=0000001000000000000}', "");
-    Expect(0, 93026, '\p{Is_Nv=0000001000000000000}', "");
-    Expect(1, 93026, '\p{^Is_Nv=0000001000000000000}', "");
-    Expect(1, 93026, '\P{Is_Nv=0000001000000000000}', "");
-    Expect(0, 93026, '\P{^Is_Nv=0000001000000000000}', "");
+    Error('\p{Is_Nv=-00_00_10_00_00_00_00000/a/}');
+    Error('\P{Is_Nv=-00_00_10_00_00_00_00000/a/}');
+    Expect(1, 93025, '\p{Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93025, '\p{^Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93025, '\P{Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93025, '\P{^Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93026, '\p{Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93026, '\p{^Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(1, 93026, '\P{Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
+    Expect(0, 93026, '\P{^Is_Nv=0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_000}', "");
     Expect(1, 93025, '\p{Is_Nv=1.000000000000000e+12}', "");
     Expect(0, 93025, '\p{^Is_Nv=1.000000000000000e+12}', "");
     Expect(0, 93025, '\P{Is_Nv=1.000000000000000e+12}', "");
@@ -73453,18 +74043,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 93026, '\p{^Is_Nv=1.000000000000000e+12}', "");
     Expect(1, 93026, '\P{Is_Nv=1.000000000000000e+12}', "");
     Expect(0, 93026, '\P{^Is_Nv=1.000000000000000e+12}', "");
-    Error('\p{Numeric_Value=-+0_0_0_0_0_0_0_011/a/}');
-    Error('\P{Numeric_Value=-+0_0_0_0_0_0_0_011/a/}');
+    Error('\p{Numeric_Value= -+00_00_00_00_01_1/a/}');
+    Error('\P{Numeric_Value= -+00_00_00_00_01_1/a/}');
     Expect(1, 119531, '\p{Numeric_Value=:\A11\z:}', "");;
     Expect(0, 119532, '\p{Numeric_Value=:\A11\z:}', "");;
-    Expect(1, 119531, '\p{Numeric_Value=0000000011}', "");
-    Expect(0, 119531, '\p{^Numeric_Value=0000000011}', "");
-    Expect(0, 119531, '\P{Numeric_Value=0000000011}', "");
-    Expect(1, 119531, '\P{^Numeric_Value=0000000011}', "");
-    Expect(0, 119532, '\p{Numeric_Value=0000000011}', "");
-    Expect(1, 119532, '\p{^Numeric_Value=0000000011}', "");
-    Expect(1, 119532, '\P{Numeric_Value=0000000011}', "");
-    Expect(0, 119532, '\P{^Numeric_Value=0000000011}', "");
+    Expect(1, 119531, '\p{Numeric_Value=+00000011}', "");
+    Expect(0, 119531, '\p{^Numeric_Value=+00000011}', "");
+    Expect(0, 119531, '\P{Numeric_Value=+00000011}', "");
+    Expect(1, 119531, '\P{^Numeric_Value=+00000011}', "");
+    Expect(0, 119532, '\p{Numeric_Value=+00000011}', "");
+    Expect(1, 119532, '\p{^Numeric_Value=+00000011}', "");
+    Expect(1, 119532, '\P{Numeric_Value=+00000011}', "");
+    Expect(0, 119532, '\P{^Numeric_Value=+00000011}', "");
     Expect(1, 119531, '\p{Numeric_Value=1.100000000000000e+01}', "");
     Expect(0, 119531, '\p{^Numeric_Value=1.100000000000000e+01}', "");
     Expect(0, 119531, '\P{Numeric_Value=1.100000000000000e+01}', "");
@@ -73473,18 +74063,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119532, '\p{^Numeric_Value=1.100000000000000e+01}', "");
     Expect(1, 119532, '\P{Numeric_Value=1.100000000000000e+01}', "");
     Expect(0, 119532, '\P{^Numeric_Value=1.100000000000000e+01}', "");
-    Error('\p{Nv=-00000000011/a/}');
-    Error('\P{Nv=-00000000011/a/}');
+    Error('\p{Nv=/a/ 	000000011}');
+    Error('\P{Nv=/a/ 	000000011}');
     Expect(1, 119531, '\p{Nv=:\A11\z:}', "");;
     Expect(0, 119532, '\p{Nv=:\A11\z:}', "");;
-    Expect(1, 119531, '\p{Nv=011}', "");
-    Expect(0, 119531, '\p{^Nv=011}', "");
-    Expect(0, 119531, '\P{Nv=011}', "");
-    Expect(1, 119531, '\P{^Nv=011}', "");
-    Expect(0, 119532, '\p{Nv=011}', "");
-    Expect(1, 119532, '\p{^Nv=011}', "");
-    Expect(1, 119532, '\P{Nv=011}', "");
-    Expect(0, 119532, '\P{^Nv=011}', "");
+    Expect(1, 119531, '\p{Nv=00_00_01_1}', "");
+    Expect(0, 119531, '\p{^Nv=00_00_01_1}', "");
+    Expect(0, 119531, '\P{Nv=00_00_01_1}', "");
+    Expect(1, 119531, '\P{^Nv=00_00_01_1}', "");
+    Expect(0, 119532, '\p{Nv=00_00_01_1}', "");
+    Expect(1, 119532, '\p{^Nv=00_00_01_1}', "");
+    Expect(1, 119532, '\P{Nv=00_00_01_1}', "");
+    Expect(0, 119532, '\P{^Nv=00_00_01_1}', "");
     Expect(1, 119531, '\p{Nv=1.100000000000000e+01}', "");
     Expect(0, 119531, '\p{^Nv=1.100000000000000e+01}', "");
     Expect(0, 119531, '\P{Nv=1.100000000000000e+01}', "");
@@ -73493,16 +74083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119532, '\p{^Nv=1.100000000000000e+01}', "");
     Expect(1, 119532, '\P{Nv=1.100000000000000e+01}', "");
     Expect(0, 119532, '\P{^Nv=1.100000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value:   :=		1_1}');
-    Error('\P{Is_Numeric_Value:   :=		1_1}');
-    Expect(1, 119531, '\p{Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(0, 119531, '\p{^Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(0, 119531, '\P{Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(1, 119531, '\P{^Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(0, 119532, '\p{Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(1, 119532, '\p{^Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(1, 119532, '\P{Is_Numeric_Value:   +0_0_0_0_0_11}', "");
-    Expect(0, 119532, '\P{^Is_Numeric_Value:   +0_0_0_0_0_11}', "");
+    Error('\p{Is_Numeric_Value=/a/_-00_00_11}');
+    Error('\P{Is_Numeric_Value=/a/_-00_00_11}');
+    Expect(1, 119531, '\p{Is_Numeric_Value=011}', "");
+    Expect(0, 119531, '\p{^Is_Numeric_Value=011}', "");
+    Expect(0, 119531, '\P{Is_Numeric_Value=011}', "");
+    Expect(1, 119531, '\P{^Is_Numeric_Value=011}', "");
+    Expect(0, 119532, '\p{Is_Numeric_Value=011}', "");
+    Expect(1, 119532, '\p{^Is_Numeric_Value=011}', "");
+    Expect(1, 119532, '\P{Is_Numeric_Value=011}', "");
+    Expect(0, 119532, '\P{^Is_Numeric_Value=011}', "");
     Expect(1, 119531, '\p{Is_Numeric_Value=1.100000000000000e+01}', "");
     Expect(0, 119531, '\p{^Is_Numeric_Value=1.100000000000000e+01}', "");
     Expect(0, 119531, '\P{Is_Numeric_Value=1.100000000000000e+01}', "");
@@ -73511,36 +74101,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119532, '\p{^Is_Numeric_Value=1.100000000000000e+01}', "");
     Expect(1, 119532, '\P{Is_Numeric_Value=1.100000000000000e+01}', "");
     Expect(0, 119532, '\P{^Is_Numeric_Value=1.100000000000000e+01}', "");
-    Error('\p{Is_Nv=:= _00011}');
-    Error('\P{Is_Nv=:= _00011}');
-    Expect(1, 119531, '\p{Is_Nv=+00_00_00_011}', "");
-    Expect(0, 119531, '\p{^Is_Nv=+00_00_00_011}', "");
-    Expect(0, 119531, '\P{Is_Nv=+00_00_00_011}', "");
-    Expect(1, 119531, '\P{^Is_Nv=+00_00_00_011}', "");
-    Expect(0, 119532, '\p{Is_Nv=+00_00_00_011}', "");
-    Expect(1, 119532, '\p{^Is_Nv=+00_00_00_011}', "");
-    Expect(1, 119532, '\P{Is_Nv=+00_00_00_011}', "");
-    Expect(0, 119532, '\P{^Is_Nv=+00_00_00_011}', "");
-    Expect(1, 119531, '\p{Is_Nv:   1.100000000000000e+01}', "");
-    Expect(0, 119531, '\p{^Is_Nv:   1.100000000000000e+01}', "");
-    Expect(0, 119531, '\P{Is_Nv:   1.100000000000000e+01}', "");
-    Expect(1, 119531, '\P{^Is_Nv:   1.100000000000000e+01}', "");
-    Expect(0, 119532, '\p{Is_Nv:   1.100000000000000e+01}', "");
-    Expect(1, 119532, '\p{^Is_Nv:   1.100000000000000e+01}', "");
-    Expect(1, 119532, '\P{Is_Nv:   1.100000000000000e+01}', "");
-    Expect(0, 119532, '\P{^Is_Nv:   1.100000000000000e+01}', "");
-    Error('\p{Numeric_Value::=	_011/0012}');
-    Error('\P{Numeric_Value::=	_011/0012}');
+    Error('\p{Is_Nv= +0_0_0_0_0_0_011/a/}');
+    Error('\P{Is_Nv= +0_0_0_0_0_0_011/a/}');
+    Expect(1, 119531, '\p{Is_Nv:	+11}', "");
+    Expect(0, 119531, '\p{^Is_Nv:	+11}', "");
+    Expect(0, 119531, '\P{Is_Nv:	+11}', "");
+    Expect(1, 119531, '\P{^Is_Nv:	+11}', "");
+    Expect(0, 119532, '\p{Is_Nv:	+11}', "");
+    Expect(1, 119532, '\p{^Is_Nv:	+11}', "");
+    Expect(1, 119532, '\P{Is_Nv:	+11}', "");
+    Expect(0, 119532, '\P{^Is_Nv:	+11}', "");
+    Expect(1, 119531, '\p{Is_Nv=1.100000000000000e+01}', "");
+    Expect(0, 119531, '\p{^Is_Nv=1.100000000000000e+01}', "");
+    Expect(0, 119531, '\P{Is_Nv=1.100000000000000e+01}', "");
+    Expect(1, 119531, '\P{^Is_Nv=1.100000000000000e+01}', "");
+    Expect(0, 119532, '\p{Is_Nv=1.100000000000000e+01}', "");
+    Expect(1, 119532, '\p{^Is_Nv=1.100000000000000e+01}', "");
+    Expect(1, 119532, '\P{Is_Nv=1.100000000000000e+01}', "");
+    Expect(0, 119532, '\P{^Is_Nv=1.100000000000000e+01}', "");
+    Error('\p{Numeric_Value= /a/+0000000011/0000000012}');
+    Error('\P{Numeric_Value= /a/+0000000011/0000000012}');
     Expect(1, 68028, '\p{Numeric_Value=:\A11/12\z:}', "");;
     Expect(0, 68029, '\p{Numeric_Value=:\A11/12\z:}', "");;
-    Expect(1, 68028, '\p{Numeric_Value=000000011/000012}', "");
-    Expect(0, 68028, '\p{^Numeric_Value=000000011/000012}', "");
-    Expect(0, 68028, '\P{Numeric_Value=000000011/000012}', "");
-    Expect(1, 68028, '\P{^Numeric_Value=000000011/000012}', "");
-    Expect(0, 68029, '\p{Numeric_Value=000000011/000012}', "");
-    Expect(1, 68029, '\p{^Numeric_Value=000000011/000012}', "");
-    Expect(1, 68029, '\P{Numeric_Value=000000011/000012}', "");
-    Expect(0, 68029, '\P{^Numeric_Value=000000011/000012}', "");
+    Expect(1, 68028, '\p{Numeric_Value:	011/12}', "");
+    Expect(0, 68028, '\p{^Numeric_Value:	011/12}', "");
+    Expect(0, 68028, '\P{Numeric_Value:	011/12}', "");
+    Expect(1, 68028, '\P{^Numeric_Value:	011/12}', "");
+    Expect(0, 68029, '\p{Numeric_Value:	011/12}', "");
+    Expect(1, 68029, '\p{^Numeric_Value:	011/12}', "");
+    Expect(1, 68029, '\P{Numeric_Value:	011/12}', "");
+    Expect(0, 68029, '\P{^Numeric_Value:	011/12}', "");
     Expect(1, 68028, '\p{Numeric_Value=660/720}', "");
     Expect(0, 68028, '\p{^Numeric_Value=660/720}', "");
     Expect(0, 68028, '\P{Numeric_Value=660/720}', "");
@@ -73549,12 +74139,12 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Numeric_Value=660/720}', "");
     Expect(1, 68029, '\P{Numeric_Value=660/720}', "");
     Expect(0, 68029, '\P{^Numeric_Value=660/720}', "");
-    Error('\p{Numeric_Value:9.2e-01}');
-    Error('\P{Numeric_Value:9.2e-01}');
-    Error('\p{Numeric_Value=0.9}');
-    Error('\P{Numeric_Value=0.9}');
-    Error('\p{Numeric_Value:9.17e-01}');
-    Error('\P{Numeric_Value:9.17e-01}');
+    Error('\p{Numeric_Value=9.2e-01}');
+    Error('\P{Numeric_Value=9.2e-01}');
+    Error('\p{Numeric_Value:	0.9}');
+    Error('\P{Numeric_Value:	0.9}');
+    Error('\p{Numeric_Value=9.17e-01}');
+    Error('\P{Numeric_Value=9.17e-01}');
     Error('\p{Numeric_Value=0.92}');
     Error('\P{Numeric_Value=0.92}');
     Expect(1, 68028, '\p{Numeric_Value=9.167e-01}', "");
@@ -73565,8 +74155,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Numeric_Value=9.167e-01}', "");
     Expect(1, 68029, '\P{Numeric_Value=9.167e-01}', "");
     Expect(0, 68029, '\P{^Numeric_Value=9.167e-01}', "");
-    Error('\p{Numeric_Value=0.917}');
-    Error('\P{Numeric_Value=0.917}');
+    Error('\p{Numeric_Value: 0.917}');
+    Error('\P{Numeric_Value: 0.917}');
     Expect(1, 68028, '\p{Numeric_Value=9.1667e-01}', "");
     Expect(0, 68028, '\p{^Numeric_Value=9.1667e-01}', "");
     Expect(0, 68028, '\P{Numeric_Value=9.1667e-01}', "");
@@ -73599,18 +74189,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Numeric_Value=0.91667}', "");
     Expect(1, 68029, '\P{Numeric_Value=0.91667}', "");
     Expect(0, 68029, '\P{^Numeric_Value=0.91667}', "");
-    Error('\p{Nv=/a/		11/000012}');
-    Error('\P{Nv=/a/		11/000012}');
+    Error('\p{Nv=	/a/00000011/12}');
+    Error('\P{Nv=	/a/00000011/12}');
     Expect(1, 68028, '\p{Nv=:\A11/12\z:}', "");;
     Expect(0, 68029, '\p{Nv=:\A11/12\z:}', "");;
-    Expect(1, 68028, '\p{Nv=00000011/00000012}', "");
-    Expect(0, 68028, '\p{^Nv=00000011/00000012}', "");
-    Expect(0, 68028, '\P{Nv=00000011/00000012}', "");
-    Expect(1, 68028, '\P{^Nv=00000011/00000012}', "");
-    Expect(0, 68029, '\p{Nv=00000011/00000012}', "");
-    Expect(1, 68029, '\p{^Nv=00000011/00000012}', "");
-    Expect(1, 68029, '\P{Nv=00000011/00000012}', "");
-    Expect(0, 68029, '\P{^Nv=00000011/00000012}', "");
+    Expect(1, 68028, '\p{Nv=+00011/012}', "");
+    Expect(0, 68028, '\p{^Nv=+00011/012}', "");
+    Expect(0, 68028, '\P{Nv=+00011/012}', "");
+    Expect(1, 68028, '\P{^Nv=+00011/012}', "");
+    Expect(0, 68029, '\p{Nv=+00011/012}', "");
+    Expect(1, 68029, '\p{^Nv=+00011/012}', "");
+    Expect(1, 68029, '\P{Nv=+00011/012}', "");
+    Expect(0, 68029, '\P{^Nv=+00011/012}', "");
     Expect(1, 68028, '\p{Nv=660/720}', "");
     Expect(0, 68028, '\p{^Nv=660/720}', "");
     Expect(0, 68028, '\P{Nv=660/720}', "");
@@ -73621,20 +74211,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 68029, '\P{^Nv=660/720}', "");
     Error('\p{Nv=9.2e-01}');
     Error('\P{Nv=9.2e-01}');
-    Error('\p{Nv=0.9}');
-    Error('\P{Nv=0.9}');
+    Error('\p{Nv:0.9}');
+    Error('\P{Nv:0.9}');
     Error('\p{Nv=9.17e-01}');
     Error('\P{Nv=9.17e-01}');
     Error('\p{Nv=0.92}');
     Error('\P{Nv=0.92}');
-    Expect(1, 68028, '\p{Nv=9.167e-01}', "");
-    Expect(0, 68028, '\p{^Nv=9.167e-01}', "");
-    Expect(0, 68028, '\P{Nv=9.167e-01}', "");
-    Expect(1, 68028, '\P{^Nv=9.167e-01}', "");
-    Expect(0, 68029, '\p{Nv=9.167e-01}', "");
-    Expect(1, 68029, '\p{^Nv=9.167e-01}', "");
-    Expect(1, 68029, '\P{Nv=9.167e-01}', "");
-    Expect(0, 68029, '\P{^Nv=9.167e-01}', "");
+    Expect(1, 68028, '\p{Nv:   9.167e-01}', "");
+    Expect(0, 68028, '\p{^Nv:   9.167e-01}', "");
+    Expect(0, 68028, '\P{Nv:   9.167e-01}', "");
+    Expect(1, 68028, '\P{^Nv:   9.167e-01}', "");
+    Expect(0, 68029, '\p{Nv:   9.167e-01}', "");
+    Expect(1, 68029, '\p{^Nv:   9.167e-01}', "");
+    Expect(1, 68029, '\P{Nv:   9.167e-01}', "");
+    Expect(0, 68029, '\P{^Nv:   9.167e-01}', "");
     Error('\p{Nv=0.917}');
     Error('\P{Nv=0.917}');
     Expect(1, 68028, '\p{Nv=9.1667e-01}', "");
@@ -73653,14 +74243,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Nv=0.9167}', "");
     Expect(1, 68029, '\P{Nv=0.9167}', "");
     Expect(0, 68029, '\P{^Nv=0.9167}', "");
-    Expect(1, 68028, '\p{Nv=9.16667e-01}', "");
-    Expect(0, 68028, '\p{^Nv=9.16667e-01}', "");
-    Expect(0, 68028, '\P{Nv=9.16667e-01}', "");
-    Expect(1, 68028, '\P{^Nv=9.16667e-01}', "");
-    Expect(0, 68029, '\p{Nv=9.16667e-01}', "");
-    Expect(1, 68029, '\p{^Nv=9.16667e-01}', "");
-    Expect(1, 68029, '\P{Nv=9.16667e-01}', "");
-    Expect(0, 68029, '\P{^Nv=9.16667e-01}', "");
+    Expect(1, 68028, '\p{Nv: 9.16667e-01}', "");
+    Expect(0, 68028, '\p{^Nv: 9.16667e-01}', "");
+    Expect(0, 68028, '\P{Nv: 9.16667e-01}', "");
+    Expect(1, 68028, '\P{^Nv: 9.16667e-01}', "");
+    Expect(0, 68029, '\p{Nv: 9.16667e-01}', "");
+    Expect(1, 68029, '\p{^Nv: 9.16667e-01}', "");
+    Expect(1, 68029, '\P{Nv: 9.16667e-01}', "");
+    Expect(0, 68029, '\P{^Nv: 9.16667e-01}', "");
     Expect(1, 68028, '\p{Nv=0.91667}', "");
     Expect(0, 68028, '\p{^Nv=0.91667}', "");
     Expect(0, 68028, '\P{Nv=0.91667}', "");
@@ -73669,32 +74259,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Nv=0.91667}', "");
     Expect(1, 68029, '\P{Nv=0.91667}', "");
     Expect(0, 68029, '\P{^Nv=0.91667}', "");
-    Error('\p{Is_Numeric_Value= :=00000011/0000000012}');
-    Error('\P{Is_Numeric_Value= :=00000011/0000000012}');
-    Expect(1, 68028, '\p{Is_Numeric_Value=11/12}', "");
-    Expect(0, 68028, '\p{^Is_Numeric_Value=11/12}', "");
-    Expect(0, 68028, '\P{Is_Numeric_Value=11/12}', "");
-    Expect(1, 68028, '\P{^Is_Numeric_Value=11/12}', "");
-    Expect(0, 68029, '\p{Is_Numeric_Value=11/12}', "");
-    Expect(1, 68029, '\p{^Is_Numeric_Value=11/12}', "");
-    Expect(1, 68029, '\P{Is_Numeric_Value=11/12}', "");
-    Expect(0, 68029, '\P{^Is_Numeric_Value=11/12}', "");
-    Expect(1, 68028, '\p{Is_Numeric_Value=660/720}', "");
-    Expect(0, 68028, '\p{^Is_Numeric_Value=660/720}', "");
-    Expect(0, 68028, '\P{Is_Numeric_Value=660/720}', "");
-    Expect(1, 68028, '\P{^Is_Numeric_Value=660/720}', "");
-    Expect(0, 68029, '\p{Is_Numeric_Value=660/720}', "");
-    Expect(1, 68029, '\p{^Is_Numeric_Value=660/720}', "");
-    Expect(1, 68029, '\P{Is_Numeric_Value=660/720}', "");
-    Expect(0, 68029, '\P{^Is_Numeric_Value=660/720}', "");
+    Error('\p{Is_Numeric_Value= _00011/0012:=}');
+    Error('\P{Is_Numeric_Value= _00011/0012:=}');
+    Expect(1, 68028, '\p{Is_Numeric_Value:   11/000012}', "");
+    Expect(0, 68028, '\p{^Is_Numeric_Value:   11/000012}', "");
+    Expect(0, 68028, '\P{Is_Numeric_Value:   11/000012}', "");
+    Expect(1, 68028, '\P{^Is_Numeric_Value:   11/000012}', "");
+    Expect(0, 68029, '\p{Is_Numeric_Value:   11/000012}', "");
+    Expect(1, 68029, '\p{^Is_Numeric_Value:   11/000012}', "");
+    Expect(1, 68029, '\P{Is_Numeric_Value:   11/000012}', "");
+    Expect(0, 68029, '\P{^Is_Numeric_Value:   11/000012}', "");
+    Expect(1, 68028, '\p{Is_Numeric_Value: 660/720}', "");
+    Expect(0, 68028, '\p{^Is_Numeric_Value: 660/720}', "");
+    Expect(0, 68028, '\P{Is_Numeric_Value: 660/720}', "");
+    Expect(1, 68028, '\P{^Is_Numeric_Value: 660/720}', "");
+    Expect(0, 68029, '\p{Is_Numeric_Value: 660/720}', "");
+    Expect(1, 68029, '\p{^Is_Numeric_Value: 660/720}', "");
+    Expect(1, 68029, '\P{Is_Numeric_Value: 660/720}', "");
+    Expect(0, 68029, '\P{^Is_Numeric_Value: 660/720}', "");
     Error('\p{Is_Numeric_Value=9.2e-01}');
     Error('\P{Is_Numeric_Value=9.2e-01}');
     Error('\p{Is_Numeric_Value=0.9}');
     Error('\P{Is_Numeric_Value=0.9}');
     Error('\p{Is_Numeric_Value=9.17e-01}');
     Error('\P{Is_Numeric_Value=9.17e-01}');
-    Error('\p{Is_Numeric_Value=0.92}');
-    Error('\P{Is_Numeric_Value=0.92}');
+    Error('\p{Is_Numeric_Value:	0.92}');
+    Error('\P{Is_Numeric_Value:	0.92}');
     Expect(1, 68028, '\p{Is_Numeric_Value=9.167e-01}', "");
     Expect(0, 68028, '\p{^Is_Numeric_Value=9.167e-01}', "");
     Expect(0, 68028, '\P{Is_Numeric_Value=9.167e-01}', "");
@@ -73713,14 +74303,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Is_Numeric_Value=9.1667e-01}', "");
     Expect(1, 68029, '\P{Is_Numeric_Value=9.1667e-01}', "");
     Expect(0, 68029, '\P{^Is_Numeric_Value=9.1667e-01}', "");
-    Expect(1, 68028, '\p{Is_Numeric_Value=0.9167}', "");
-    Expect(0, 68028, '\p{^Is_Numeric_Value=0.9167}', "");
-    Expect(0, 68028, '\P{Is_Numeric_Value=0.9167}', "");
-    Expect(1, 68028, '\P{^Is_Numeric_Value=0.9167}', "");
-    Expect(0, 68029, '\p{Is_Numeric_Value=0.9167}', "");
-    Expect(1, 68029, '\p{^Is_Numeric_Value=0.9167}', "");
-    Expect(1, 68029, '\P{Is_Numeric_Value=0.9167}', "");
-    Expect(0, 68029, '\P{^Is_Numeric_Value=0.9167}', "");
+    Expect(1, 68028, '\p{Is_Numeric_Value: 0.9167}', "");
+    Expect(0, 68028, '\p{^Is_Numeric_Value: 0.9167}', "");
+    Expect(0, 68028, '\P{Is_Numeric_Value: 0.9167}', "");
+    Expect(1, 68028, '\P{^Is_Numeric_Value: 0.9167}', "");
+    Expect(0, 68029, '\p{Is_Numeric_Value: 0.9167}', "");
+    Expect(1, 68029, '\p{^Is_Numeric_Value: 0.9167}', "");
+    Expect(1, 68029, '\P{Is_Numeric_Value: 0.9167}', "");
+    Expect(0, 68029, '\P{^Is_Numeric_Value: 0.9167}', "");
     Expect(1, 68028, '\p{Is_Numeric_Value=9.16667e-01}', "");
     Expect(0, 68028, '\p{^Is_Numeric_Value=9.16667e-01}', "");
     Expect(0, 68028, '\P{Is_Numeric_Value=9.16667e-01}', "");
@@ -73737,16 +74327,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Is_Numeric_Value=0.91667}', "");
     Expect(1, 68029, '\P{Is_Numeric_Value=0.91667}', "");
     Expect(0, 68029, '\P{^Is_Numeric_Value=0.91667}', "");
-    Error('\p{Is_Nv: -	+011/000000012/a/}');
-    Error('\P{Is_Nv: -	+011/000000012/a/}');
-    Expect(1, 68028, '\p{Is_Nv=+0000011/000000012}', "");
-    Expect(0, 68028, '\p{^Is_Nv=+0000011/000000012}', "");
-    Expect(0, 68028, '\P{Is_Nv=+0000011/000000012}', "");
-    Expect(1, 68028, '\P{^Is_Nv=+0000011/000000012}', "");
-    Expect(0, 68029, '\p{Is_Nv=+0000011/000000012}', "");
-    Expect(1, 68029, '\p{^Is_Nv=+0000011/000000012}', "");
-    Expect(1, 68029, '\P{Is_Nv=+0000011/000000012}', "");
-    Expect(0, 68029, '\P{^Is_Nv=+0000011/000000012}', "");
+    Error('\p{Is_Nv=__0011/000012:=}');
+    Error('\P{Is_Nv=__0011/000012:=}');
+    Expect(1, 68028, '\p{Is_Nv=000011/0012}', "");
+    Expect(0, 68028, '\p{^Is_Nv=000011/0012}', "");
+    Expect(0, 68028, '\P{Is_Nv=000011/0012}', "");
+    Expect(1, 68028, '\P{^Is_Nv=000011/0012}', "");
+    Expect(0, 68029, '\p{Is_Nv=000011/0012}', "");
+    Expect(1, 68029, '\p{^Is_Nv=000011/0012}', "");
+    Expect(1, 68029, '\P{Is_Nv=000011/0012}', "");
+    Expect(0, 68029, '\P{^Is_Nv=000011/0012}', "");
     Expect(1, 68028, '\p{Is_Nv=660/720}', "");
     Expect(0, 68028, '\p{^Is_Nv=660/720}', "");
     Expect(0, 68028, '\P{Is_Nv=660/720}', "");
@@ -73759,8 +74349,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Is_Nv=9.2e-01}');
     Error('\p{Is_Nv=0.9}');
     Error('\P{Is_Nv=0.9}');
-    Error('\p{Is_Nv:9.17e-01}');
-    Error('\P{Is_Nv:9.17e-01}');
+    Error('\p{Is_Nv=9.17e-01}');
+    Error('\P{Is_Nv=9.17e-01}');
     Error('\p{Is_Nv=0.92}');
     Error('\P{Is_Nv=0.92}');
     Expect(1, 68028, '\p{Is_Nv=9.167e-01}', "");
@@ -73781,14 +74371,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Is_Nv=9.1667e-01}', "");
     Expect(1, 68029, '\P{Is_Nv=9.1667e-01}', "");
     Expect(0, 68029, '\P{^Is_Nv=9.1667e-01}', "");
-    Expect(1, 68028, '\p{Is_Nv=0.9167}', "");
-    Expect(0, 68028, '\p{^Is_Nv=0.9167}', "");
-    Expect(0, 68028, '\P{Is_Nv=0.9167}', "");
-    Expect(1, 68028, '\P{^Is_Nv=0.9167}', "");
-    Expect(0, 68029, '\p{Is_Nv=0.9167}', "");
-    Expect(1, 68029, '\p{^Is_Nv=0.9167}', "");
-    Expect(1, 68029, '\P{Is_Nv=0.9167}', "");
-    Expect(0, 68029, '\P{^Is_Nv=0.9167}', "");
+    Expect(1, 68028, '\p{Is_Nv:0.9167}', "");
+    Expect(0, 68028, '\p{^Is_Nv:0.9167}', "");
+    Expect(0, 68028, '\P{Is_Nv:0.9167}', "");
+    Expect(1, 68028, '\P{^Is_Nv:0.9167}', "");
+    Expect(0, 68029, '\p{Is_Nv:0.9167}', "");
+    Expect(1, 68029, '\p{^Is_Nv:0.9167}', "");
+    Expect(1, 68029, '\P{Is_Nv:0.9167}', "");
+    Expect(0, 68029, '\P{^Is_Nv:0.9167}', "");
     Expect(1, 68028, '\p{Is_Nv=9.16667e-01}', "");
     Expect(0, 68028, '\p{^Is_Nv=9.16667e-01}', "");
     Expect(0, 68028, '\P{Is_Nv=9.16667e-01}', "");
@@ -73805,18 +74395,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 68029, '\p{^Is_Nv=0.91667}', "");
     Expect(1, 68029, '\P{Is_Nv=0.91667}', "");
     Expect(0, 68029, '\P{^Is_Nv=0.91667}', "");
-    Error('\p{Numeric_Value= /a/+011/00000002}');
-    Error('\P{Numeric_Value= /a/+011/00000002}');
+    Error('\p{Numeric_Value:	-+00011/2/a/}');
+    Error('\P{Numeric_Value:	-+00011/2/a/}');
     Expect(1, 3887, '\p{Numeric_Value=:\A11/2\z:}', "");;
     Expect(0, 3888, '\p{Numeric_Value=:\A11/2\z:}', "");;
-    Expect(1, 3887, '\p{Numeric_Value=00000011/2}', "");
-    Expect(0, 3887, '\p{^Numeric_Value=00000011/2}', "");
-    Expect(0, 3887, '\P{Numeric_Value=00000011/2}', "");
-    Expect(1, 3887, '\P{^Numeric_Value=00000011/2}', "");
-    Expect(0, 3888, '\p{Numeric_Value=00000011/2}', "");
-    Expect(1, 3888, '\p{^Numeric_Value=00000011/2}', "");
-    Expect(1, 3888, '\P{Numeric_Value=00000011/2}', "");
-    Expect(0, 3888, '\P{^Numeric_Value=00000011/2}', "");
+    Expect(1, 3887, '\p{Numeric_Value=+0000000011/0000002}', "");
+    Expect(0, 3887, '\p{^Numeric_Value=+0000000011/0000002}', "");
+    Expect(0, 3887, '\P{Numeric_Value=+0000000011/0000002}', "");
+    Expect(1, 3887, '\P{^Numeric_Value=+0000000011/0000002}', "");
+    Expect(0, 3888, '\p{Numeric_Value=+0000000011/0000002}', "");
+    Expect(1, 3888, '\p{^Numeric_Value=+0000000011/0000002}', "");
+    Expect(1, 3888, '\P{Numeric_Value=+0000000011/0000002}', "");
+    Expect(0, 3888, '\P{^Numeric_Value=+0000000011/0000002}', "");
     Expect(1, 3887, '\p{Numeric_Value=660/120}', "");
     Expect(0, 3887, '\p{^Numeric_Value=660/120}', "");
     Expect(0, 3887, '\P{Numeric_Value=660/120}', "");
@@ -73825,14 +74415,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3888, '\p{^Numeric_Value=660/120}', "");
     Expect(1, 3888, '\P{Numeric_Value=660/120}', "");
     Expect(0, 3888, '\P{^Numeric_Value=660/120}', "");
-    Expect(1, 3887, '\p{Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3887, '\p{^Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3887, '\P{Numeric_Value:   5.5e+00}', "");
-    Expect(1, 3887, '\P{^Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3888, '\p{Numeric_Value:   5.5e+00}', "");
-    Expect(1, 3888, '\p{^Numeric_Value:   5.5e+00}', "");
-    Expect(1, 3888, '\P{Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3888, '\P{^Numeric_Value:   5.5e+00}', "");
+    Expect(1, 3887, '\p{Numeric_Value=5.5e+00}', "");
+    Expect(0, 3887, '\p{^Numeric_Value=5.5e+00}', "");
+    Expect(0, 3887, '\P{Numeric_Value=5.5e+00}', "");
+    Expect(1, 3887, '\P{^Numeric_Value=5.5e+00}', "");
+    Expect(0, 3888, '\p{Numeric_Value=5.5e+00}', "");
+    Expect(1, 3888, '\p{^Numeric_Value=5.5e+00}', "");
+    Expect(1, 3888, '\P{Numeric_Value=5.5e+00}', "");
+    Expect(0, 3888, '\P{^Numeric_Value=5.5e+00}', "");
     Expect(1, 3887, '\p{Numeric_Value=5.5}', "");
     Expect(0, 3887, '\p{^Numeric_Value=5.5}', "");
     Expect(0, 3887, '\P{Numeric_Value=5.5}', "");
@@ -73857,18 +74447,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3888, '\p{^Numeric_Value=5.50}', "");
     Expect(1, 3888, '\P{Numeric_Value=5.50}', "");
     Expect(0, 3888, '\P{^Numeric_Value=5.50}', "");
-    Error('\p{Nv=:=	_+0011/2}');
-    Error('\P{Nv=:=	_+0011/2}');
+    Error('\p{Nv=:= 11/000000002}');
+    Error('\P{Nv=:= 11/000000002}');
     Expect(1, 3887, '\p{Nv=:\A11/2\z:}', "");;
     Expect(0, 3888, '\p{Nv=:\A11/2\z:}', "");;
-    Expect(1, 3887, '\p{Nv=00000000011/02}', "");
-    Expect(0, 3887, '\p{^Nv=00000000011/02}', "");
-    Expect(0, 3887, '\P{Nv=00000000011/02}', "");
-    Expect(1, 3887, '\P{^Nv=00000000011/02}', "");
-    Expect(0, 3888, '\p{Nv=00000000011/02}', "");
-    Expect(1, 3888, '\p{^Nv=00000000011/02}', "");
-    Expect(1, 3888, '\P{Nv=00000000011/02}', "");
-    Expect(0, 3888, '\P{^Nv=00000000011/02}', "");
+    Expect(1, 3887, '\p{Nv=011/02}', "");
+    Expect(0, 3887, '\p{^Nv=011/02}', "");
+    Expect(0, 3887, '\P{Nv=011/02}', "");
+    Expect(1, 3887, '\P{^Nv=011/02}', "");
+    Expect(0, 3888, '\p{Nv=011/02}', "");
+    Expect(1, 3888, '\p{^Nv=011/02}', "");
+    Expect(1, 3888, '\P{Nv=011/02}', "");
+    Expect(0, 3888, '\P{^Nv=011/02}', "");
     Expect(1, 3887, '\p{Nv=660/120}', "");
     Expect(0, 3887, '\p{^Nv=660/120}', "");
     Expect(0, 3887, '\P{Nv=660/120}', "");
@@ -73901,40 +74491,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3888, '\p{^Nv=5.50e+00}', "");
     Expect(1, 3888, '\P{Nv=5.50e+00}', "");
     Expect(0, 3888, '\P{^Nv=5.50e+00}', "");
-    Expect(1, 3887, '\p{Nv:	5.50}', "");
-    Expect(0, 3887, '\p{^Nv:	5.50}', "");
-    Expect(0, 3887, '\P{Nv:	5.50}', "");
-    Expect(1, 3887, '\P{^Nv:	5.50}', "");
-    Expect(0, 3888, '\p{Nv:	5.50}', "");
-    Expect(1, 3888, '\p{^Nv:	5.50}', "");
-    Expect(1, 3888, '\P{Nv:	5.50}', "");
-    Expect(0, 3888, '\P{^Nv:	5.50}', "");
-    Error('\p{Is_Numeric_Value=:=-+0011/002}');
-    Error('\P{Is_Numeric_Value=:=-+0011/002}');
-    Expect(1, 3887, '\p{Is_Numeric_Value=+011/02}', "");
-    Expect(0, 3887, '\p{^Is_Numeric_Value=+011/02}', "");
-    Expect(0, 3887, '\P{Is_Numeric_Value=+011/02}', "");
-    Expect(1, 3887, '\P{^Is_Numeric_Value=+011/02}', "");
-    Expect(0, 3888, '\p{Is_Numeric_Value=+011/02}', "");
-    Expect(1, 3888, '\p{^Is_Numeric_Value=+011/02}', "");
-    Expect(1, 3888, '\P{Is_Numeric_Value=+011/02}', "");
-    Expect(0, 3888, '\P{^Is_Numeric_Value=+011/02}', "");
-    Expect(1, 3887, '\p{Is_Numeric_Value=660/120}', "");
-    Expect(0, 3887, '\p{^Is_Numeric_Value=660/120}', "");
-    Expect(0, 3887, '\P{Is_Numeric_Value=660/120}', "");
-    Expect(1, 3887, '\P{^Is_Numeric_Value=660/120}', "");
-    Expect(0, 3888, '\p{Is_Numeric_Value=660/120}', "");
-    Expect(1, 3888, '\p{^Is_Numeric_Value=660/120}', "");
-    Expect(1, 3888, '\P{Is_Numeric_Value=660/120}', "");
-    Expect(0, 3888, '\P{^Is_Numeric_Value=660/120}', "");
-    Expect(1, 3887, '\p{Is_Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3887, '\p{^Is_Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3887, '\P{Is_Numeric_Value:   5.5e+00}', "");
-    Expect(1, 3887, '\P{^Is_Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3888, '\p{Is_Numeric_Value:   5.5e+00}', "");
-    Expect(1, 3888, '\p{^Is_Numeric_Value:   5.5e+00}', "");
-    Expect(1, 3888, '\P{Is_Numeric_Value:   5.5e+00}', "");
-    Expect(0, 3888, '\P{^Is_Numeric_Value:   5.5e+00}', "");
+    Expect(1, 3887, '\p{Nv: 5.50}', "");
+    Expect(0, 3887, '\p{^Nv: 5.50}', "");
+    Expect(0, 3887, '\P{Nv: 5.50}', "");
+    Expect(1, 3887, '\P{^Nv: 5.50}', "");
+    Expect(0, 3888, '\p{Nv: 5.50}', "");
+    Expect(1, 3888, '\p{^Nv: 5.50}', "");
+    Expect(1, 3888, '\P{Nv: 5.50}', "");
+    Expect(0, 3888, '\P{^Nv: 5.50}', "");
+    Error('\p{Is_Numeric_Value=-	+11/00000002:=}');
+    Error('\P{Is_Numeric_Value=-	+11/00000002:=}');
+    Expect(1, 3887, '\p{Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(0, 3887, '\p{^Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(0, 3887, '\P{Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(1, 3887, '\P{^Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(0, 3888, '\p{Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(1, 3888, '\p{^Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(1, 3888, '\P{Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(0, 3888, '\P{^Is_Numeric_Value=+00000011/0000000002}', "");
+    Expect(1, 3887, '\p{Is_Numeric_Value:	660/120}', "");
+    Expect(0, 3887, '\p{^Is_Numeric_Value:	660/120}', "");
+    Expect(0, 3887, '\P{Is_Numeric_Value:	660/120}', "");
+    Expect(1, 3887, '\P{^Is_Numeric_Value:	660/120}', "");
+    Expect(0, 3888, '\p{Is_Numeric_Value:	660/120}', "");
+    Expect(1, 3888, '\p{^Is_Numeric_Value:	660/120}', "");
+    Expect(1, 3888, '\P{Is_Numeric_Value:	660/120}', "");
+    Expect(0, 3888, '\P{^Is_Numeric_Value:	660/120}', "");
+    Expect(1, 3887, '\p{Is_Numeric_Value=5.5e+00}', "");
+    Expect(0, 3887, '\p{^Is_Numeric_Value=5.5e+00}', "");
+    Expect(0, 3887, '\P{Is_Numeric_Value=5.5e+00}', "");
+    Expect(1, 3887, '\P{^Is_Numeric_Value=5.5e+00}', "");
+    Expect(0, 3888, '\p{Is_Numeric_Value=5.5e+00}', "");
+    Expect(1, 3888, '\p{^Is_Numeric_Value=5.5e+00}', "");
+    Expect(1, 3888, '\P{Is_Numeric_Value=5.5e+00}', "");
+    Expect(0, 3888, '\P{^Is_Numeric_Value=5.5e+00}', "");
     Expect(1, 3887, '\p{Is_Numeric_Value=5.5}', "");
     Expect(0, 3887, '\p{^Is_Numeric_Value=5.5}', "");
     Expect(0, 3887, '\P{Is_Numeric_Value=5.5}', "");
@@ -73951,24 +74541,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3888, '\p{^Is_Numeric_Value=5.50e+00}', "");
     Expect(1, 3888, '\P{Is_Numeric_Value=5.50e+00}', "");
     Expect(0, 3888, '\P{^Is_Numeric_Value=5.50e+00}', "");
-    Expect(1, 3887, '\p{Is_Numeric_Value=5.50}', "");
-    Expect(0, 3887, '\p{^Is_Numeric_Value=5.50}', "");
-    Expect(0, 3887, '\P{Is_Numeric_Value=5.50}', "");
-    Expect(1, 3887, '\P{^Is_Numeric_Value=5.50}', "");
-    Expect(0, 3888, '\p{Is_Numeric_Value=5.50}', "");
-    Expect(1, 3888, '\p{^Is_Numeric_Value=5.50}', "");
-    Expect(1, 3888, '\P{Is_Numeric_Value=5.50}', "");
-    Expect(0, 3888, '\P{^Is_Numeric_Value=5.50}', "");
-    Error('\p{Is_Nv=-/a/11/0000002}');
-    Error('\P{Is_Nv=-/a/11/0000002}');
-    Expect(1, 3887, '\p{Is_Nv:	00000011/002}', "");
-    Expect(0, 3887, '\p{^Is_Nv:	00000011/002}', "");
-    Expect(0, 3887, '\P{Is_Nv:	00000011/002}', "");
-    Expect(1, 3887, '\P{^Is_Nv:	00000011/002}', "");
-    Expect(0, 3888, '\p{Is_Nv:	00000011/002}', "");
-    Expect(1, 3888, '\p{^Is_Nv:	00000011/002}', "");
-    Expect(1, 3888, '\P{Is_Nv:	00000011/002}', "");
-    Expect(0, 3888, '\P{^Is_Nv:	00000011/002}', "");
+    Expect(1, 3887, '\p{Is_Numeric_Value: 5.50}', "");
+    Expect(0, 3887, '\p{^Is_Numeric_Value: 5.50}', "");
+    Expect(0, 3887, '\P{Is_Numeric_Value: 5.50}', "");
+    Expect(1, 3887, '\P{^Is_Numeric_Value: 5.50}', "");
+    Expect(0, 3888, '\p{Is_Numeric_Value: 5.50}', "");
+    Expect(1, 3888, '\p{^Is_Numeric_Value: 5.50}', "");
+    Expect(1, 3888, '\P{Is_Numeric_Value: 5.50}', "");
+    Expect(0, 3888, '\P{^Is_Numeric_Value: 5.50}', "");
+    Error('\p{Is_Nv=:= 	00000011/002}');
+    Error('\P{Is_Nv=:= 	00000011/002}');
+    Expect(1, 3887, '\p{Is_Nv:	0011/0002}', "");
+    Expect(0, 3887, '\p{^Is_Nv:	0011/0002}', "");
+    Expect(0, 3887, '\P{Is_Nv:	0011/0002}', "");
+    Expect(1, 3887, '\P{^Is_Nv:	0011/0002}', "");
+    Expect(0, 3888, '\p{Is_Nv:	0011/0002}', "");
+    Expect(1, 3888, '\p{^Is_Nv:	0011/0002}', "");
+    Expect(1, 3888, '\P{Is_Nv:	0011/0002}', "");
+    Expect(0, 3888, '\P{^Is_Nv:	0011/0002}', "");
     Expect(1, 3887, '\p{Is_Nv=660/120}', "");
     Expect(0, 3887, '\p{^Is_Nv=660/120}', "");
     Expect(0, 3887, '\P{Is_Nv=660/120}', "");
@@ -73985,14 +74575,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3888, '\p{^Is_Nv=5.5e+00}', "");
     Expect(1, 3888, '\P{Is_Nv=5.5e+00}', "");
     Expect(0, 3888, '\P{^Is_Nv=5.5e+00}', "");
-    Expect(1, 3887, '\p{Is_Nv:	5.5}', "");
-    Expect(0, 3887, '\p{^Is_Nv:	5.5}', "");
-    Expect(0, 3887, '\P{Is_Nv:	5.5}', "");
-    Expect(1, 3887, '\P{^Is_Nv:	5.5}', "");
-    Expect(0, 3888, '\p{Is_Nv:	5.5}', "");
-    Expect(1, 3888, '\p{^Is_Nv:	5.5}', "");
-    Expect(1, 3888, '\P{Is_Nv:	5.5}', "");
-    Expect(0, 3888, '\P{^Is_Nv:	5.5}', "");
+    Expect(1, 3887, '\p{Is_Nv=5.5}', "");
+    Expect(0, 3887, '\p{^Is_Nv=5.5}', "");
+    Expect(0, 3887, '\P{Is_Nv=5.5}', "");
+    Expect(1, 3887, '\P{^Is_Nv=5.5}', "");
+    Expect(0, 3888, '\p{Is_Nv=5.5}', "");
+    Expect(1, 3888, '\p{^Is_Nv=5.5}', "");
+    Expect(1, 3888, '\P{Is_Nv=5.5}', "");
+    Expect(0, 3888, '\P{^Is_Nv=5.5}', "");
     Expect(1, 3887, '\p{Is_Nv=5.50e+00}', "");
     Expect(0, 3887, '\p{^Is_Nv=5.50e+00}', "");
     Expect(0, 3887, '\P{Is_Nv=5.50e+00}', "");
@@ -74001,26 +74591,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3888, '\p{^Is_Nv=5.50e+00}', "");
     Expect(1, 3888, '\P{Is_Nv=5.50e+00}', "");
     Expect(0, 3888, '\P{^Is_Nv=5.50e+00}', "");
-    Expect(1, 3887, '\p{Is_Nv=5.50}', "");
-    Expect(0, 3887, '\p{^Is_Nv=5.50}', "");
-    Expect(0, 3887, '\P{Is_Nv=5.50}', "");
-    Expect(1, 3887, '\P{^Is_Nv=5.50}', "");
-    Expect(0, 3888, '\p{Is_Nv=5.50}', "");
-    Expect(1, 3888, '\p{^Is_Nv=5.50}', "");
-    Expect(1, 3888, '\P{Is_Nv=5.50}', "");
-    Expect(0, 3888, '\P{^Is_Nv=5.50}', "");
-    Error('\p{Numeric_Value= /a/00012}');
-    Error('\P{Numeric_Value= /a/00012}');
+    Expect(1, 3887, '\p{Is_Nv:5.50}', "");
+    Expect(0, 3887, '\p{^Is_Nv:5.50}', "");
+    Expect(0, 3887, '\P{Is_Nv:5.50}', "");
+    Expect(1, 3887, '\P{^Is_Nv:5.50}', "");
+    Expect(0, 3888, '\p{Is_Nv:5.50}', "");
+    Expect(1, 3888, '\p{^Is_Nv:5.50}', "");
+    Expect(1, 3888, '\P{Is_Nv:5.50}', "");
+    Expect(0, 3888, '\P{^Is_Nv:5.50}', "");
+    Error('\p{Numeric_Value= :=12}');
+    Error('\P{Numeric_Value= :=12}');
     Expect(1, 119532, '\p{Numeric_Value=:\A12\z:}', "");;
     Expect(0, 119533, '\p{Numeric_Value=:\A12\z:}', "");;
-    Expect(1, 119532, '\p{Numeric_Value=+00000012}', "");
-    Expect(0, 119532, '\p{^Numeric_Value=+00000012}', "");
-    Expect(0, 119532, '\P{Numeric_Value=+00000012}', "");
-    Expect(1, 119532, '\P{^Numeric_Value=+00000012}', "");
-    Expect(0, 119533, '\p{Numeric_Value=+00000012}', "");
-    Expect(1, 119533, '\p{^Numeric_Value=+00000012}', "");
-    Expect(1, 119533, '\P{Numeric_Value=+00000012}', "");
-    Expect(0, 119533, '\P{^Numeric_Value=+00000012}', "");
+    Expect(1, 119532, '\p{Numeric_Value=0000000012}', "");
+    Expect(0, 119532, '\p{^Numeric_Value=0000000012}', "");
+    Expect(0, 119532, '\P{Numeric_Value=0000000012}', "");
+    Expect(1, 119532, '\P{^Numeric_Value=0000000012}', "");
+    Expect(0, 119533, '\p{Numeric_Value=0000000012}', "");
+    Expect(1, 119533, '\p{^Numeric_Value=0000000012}', "");
+    Expect(1, 119533, '\P{Numeric_Value=0000000012}', "");
+    Expect(0, 119533, '\P{^Numeric_Value=0000000012}', "");
     Expect(1, 119532, '\p{Numeric_Value=1.200000000000000e+01}', "");
     Expect(0, 119532, '\p{^Numeric_Value=1.200000000000000e+01}', "");
     Expect(0, 119532, '\P{Numeric_Value=1.200000000000000e+01}', "");
@@ -74029,18 +74619,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119533, '\p{^Numeric_Value=1.200000000000000e+01}', "");
     Expect(1, 119533, '\P{Numeric_Value=1.200000000000000e+01}', "");
     Expect(0, 119533, '\P{^Numeric_Value=1.200000000000000e+01}', "");
-    Error('\p{Nv=_00_01_2/a/}');
-    Error('\P{Nv=_00_01_2/a/}');
+    Error('\p{Nv=:=	_+00000000012}');
+    Error('\P{Nv=:=	_+00000000012}');
     Expect(1, 119532, '\p{Nv=:\A12\z:}', "");;
     Expect(0, 119533, '\p{Nv=:\A12\z:}', "");;
-    Expect(1, 119532, '\p{Nv=0_0_12}', "");
-    Expect(0, 119532, '\p{^Nv=0_0_12}', "");
-    Expect(0, 119532, '\P{Nv=0_0_12}', "");
-    Expect(1, 119532, '\P{^Nv=0_0_12}', "");
-    Expect(0, 119533, '\p{Nv=0_0_12}', "");
-    Expect(1, 119533, '\p{^Nv=0_0_12}', "");
-    Expect(1, 119533, '\P{Nv=0_0_12}', "");
-    Expect(0, 119533, '\P{^Nv=0_0_12}', "");
+    Expect(1, 119532, '\p{Nv=00001_2}', "");
+    Expect(0, 119532, '\p{^Nv=00001_2}', "");
+    Expect(0, 119532, '\P{Nv=00001_2}', "");
+    Expect(1, 119532, '\P{^Nv=00001_2}', "");
+    Expect(0, 119533, '\p{Nv=00001_2}', "");
+    Expect(1, 119533, '\p{^Nv=00001_2}', "");
+    Expect(1, 119533, '\P{Nv=00001_2}', "");
+    Expect(0, 119533, '\P{^Nv=00001_2}', "");
     Expect(1, 119532, '\p{Nv=1.200000000000000e+01}', "");
     Expect(0, 119532, '\p{^Nv=1.200000000000000e+01}', "");
     Expect(0, 119532, '\P{Nv=1.200000000000000e+01}', "");
@@ -74049,16 +74639,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119533, '\p{^Nv=1.200000000000000e+01}', "");
     Expect(1, 119533, '\P{Nv=1.200000000000000e+01}', "");
     Expect(0, 119533, '\P{^Nv=1.200000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=-+00000012/a/}');
-    Error('\P{Is_Numeric_Value=-+00000012/a/}');
-    Expect(1, 119532, '\p{Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(0, 119532, '\p{^Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(0, 119532, '\P{Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(1, 119532, '\P{^Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(0, 119533, '\p{Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(1, 119533, '\p{^Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(1, 119533, '\P{Is_Numeric_Value=+0_0_0_0_012}', "");
-    Expect(0, 119533, '\P{^Is_Numeric_Value=+0_0_0_0_012}', "");
+    Error('\p{Is_Numeric_Value=:=		0000_0001_2}');
+    Error('\P{Is_Numeric_Value=:=		0000_0001_2}');
+    Expect(1, 119532, '\p{Is_Numeric_Value: 00012}', "");
+    Expect(0, 119532, '\p{^Is_Numeric_Value: 00012}', "");
+    Expect(0, 119532, '\P{Is_Numeric_Value: 00012}', "");
+    Expect(1, 119532, '\P{^Is_Numeric_Value: 00012}', "");
+    Expect(0, 119533, '\p{Is_Numeric_Value: 00012}', "");
+    Expect(1, 119533, '\p{^Is_Numeric_Value: 00012}', "");
+    Expect(1, 119533, '\P{Is_Numeric_Value: 00012}', "");
+    Expect(0, 119533, '\P{^Is_Numeric_Value: 00012}', "");
     Expect(1, 119532, '\p{Is_Numeric_Value=1.200000000000000e+01}', "");
     Expect(0, 119532, '\p{^Is_Numeric_Value=1.200000000000000e+01}', "");
     Expect(0, 119532, '\P{Is_Numeric_Value=1.200000000000000e+01}', "");
@@ -74067,16 +74657,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119533, '\p{^Is_Numeric_Value=1.200000000000000e+01}', "");
     Expect(1, 119533, '\P{Is_Numeric_Value=1.200000000000000e+01}', "");
     Expect(0, 119533, '\P{^Is_Numeric_Value=1.200000000000000e+01}', "");
-    Error('\p{Is_Nv=_	+012/a/}');
-    Error('\P{Is_Nv=_	+012/a/}');
-    Expect(1, 119532, '\p{Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(0, 119532, '\p{^Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(0, 119532, '\P{Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(1, 119532, '\P{^Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(0, 119533, '\p{Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(1, 119533, '\p{^Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(1, 119533, '\P{Is_Nv=0_0_0_0_0_0_0_0_12}', "");
-    Expect(0, 119533, '\P{^Is_Nv=0_0_0_0_0_0_0_0_12}', "");
+    Error('\p{Is_Nv=/a/	+0_0_0_0_0012}');
+    Error('\P{Is_Nv=/a/	+0_0_0_0_0012}');
+    Expect(1, 119532, '\p{Is_Nv=+0012}', "");
+    Expect(0, 119532, '\p{^Is_Nv=+0012}', "");
+    Expect(0, 119532, '\P{Is_Nv=+0012}', "");
+    Expect(1, 119532, '\P{^Is_Nv=+0012}', "");
+    Expect(0, 119533, '\p{Is_Nv=+0012}', "");
+    Expect(1, 119533, '\p{^Is_Nv=+0012}', "");
+    Expect(1, 119533, '\P{Is_Nv=+0012}', "");
+    Expect(0, 119533, '\P{^Is_Nv=+0012}', "");
     Expect(1, 119532, '\p{Is_Nv=1.200000000000000e+01}', "");
     Expect(0, 119532, '\p{^Is_Nv=1.200000000000000e+01}', "");
     Expect(0, 119532, '\P{Is_Nv=1.200000000000000e+01}', "");
@@ -74085,18 +74675,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119533, '\p{^Is_Nv=1.200000000000000e+01}', "");
     Expect(1, 119533, '\P{Is_Nv=1.200000000000000e+01}', "");
     Expect(0, 119533, '\P{^Is_Nv=1.200000000000000e+01}', "");
-    Error('\p{Numeric_Value::=-	+0013}');
-    Error('\P{Numeric_Value::=-	+0013}');
+    Error('\p{Numeric_Value: :=  000000013}');
+    Error('\P{Numeric_Value: :=  000000013}');
     Expect(1, 119533, '\p{Numeric_Value=:\A13\z:}', "");;
     Expect(0, 119534, '\p{Numeric_Value=:\A13\z:}', "");;
-    Expect(1, 119533, '\p{Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(0, 119533, '\p{^Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(0, 119533, '\P{Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(1, 119533, '\P{^Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(0, 119534, '\p{Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(1, 119534, '\p{^Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(1, 119534, '\P{Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
-    Expect(0, 119534, '\P{^Numeric_Value:   0_0_0_0_0_0_0_0_013}', "");
+    Expect(1, 119533, '\p{Numeric_Value=+0001_3}', "");
+    Expect(0, 119533, '\p{^Numeric_Value=+0001_3}', "");
+    Expect(0, 119533, '\P{Numeric_Value=+0001_3}', "");
+    Expect(1, 119533, '\P{^Numeric_Value=+0001_3}', "");
+    Expect(0, 119534, '\p{Numeric_Value=+0001_3}', "");
+    Expect(1, 119534, '\p{^Numeric_Value=+0001_3}', "");
+    Expect(1, 119534, '\P{Numeric_Value=+0001_3}', "");
+    Expect(0, 119534, '\P{^Numeric_Value=+0001_3}', "");
     Expect(1, 119533, '\p{Numeric_Value=1.300000000000000e+01}', "");
     Expect(0, 119533, '\p{^Numeric_Value=1.300000000000000e+01}', "");
     Expect(0, 119533, '\P{Numeric_Value=1.300000000000000e+01}', "");
@@ -74105,18 +74695,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119534, '\p{^Numeric_Value=1.300000000000000e+01}', "");
     Expect(1, 119534, '\P{Numeric_Value=1.300000000000000e+01}', "");
     Expect(0, 119534, '\P{^Numeric_Value=1.300000000000000e+01}', "");
-    Error('\p{Nv=/a/		+013}');
-    Error('\P{Nv=/a/		+013}');
+    Error('\p{Nv=/a/000000001_3}');
+    Error('\P{Nv=/a/000000001_3}');
     Expect(1, 119533, '\p{Nv=:\A13\z:}', "");;
     Expect(0, 119534, '\p{Nv=:\A13\z:}', "");;
-    Expect(1, 119533, '\p{Nv=+0000000013}', "");
-    Expect(0, 119533, '\p{^Nv=+0000000013}', "");
-    Expect(0, 119533, '\P{Nv=+0000000013}', "");
-    Expect(1, 119533, '\P{^Nv=+0000000013}', "");
-    Expect(0, 119534, '\p{Nv=+0000000013}', "");
-    Expect(1, 119534, '\p{^Nv=+0000000013}', "");
-    Expect(1, 119534, '\P{Nv=+0000000013}', "");
-    Expect(0, 119534, '\P{^Nv=+0000000013}', "");
+    Expect(1, 119533, '\p{Nv=00001_3}', "");
+    Expect(0, 119533, '\p{^Nv=00001_3}', "");
+    Expect(0, 119533, '\P{Nv=00001_3}', "");
+    Expect(1, 119533, '\P{^Nv=00001_3}', "");
+    Expect(0, 119534, '\p{Nv=00001_3}', "");
+    Expect(1, 119534, '\p{^Nv=00001_3}', "");
+    Expect(1, 119534, '\P{Nv=00001_3}', "");
+    Expect(0, 119534, '\P{^Nv=00001_3}', "");
     Expect(1, 119533, '\p{Nv=1.300000000000000e+01}', "");
     Expect(0, 119533, '\p{^Nv=1.300000000000000e+01}', "");
     Expect(0, 119533, '\P{Nv=1.300000000000000e+01}', "");
@@ -74125,16 +74715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119534, '\p{^Nv=1.300000000000000e+01}', "");
     Expect(1, 119534, '\P{Nv=1.300000000000000e+01}', "");
     Expect(0, 119534, '\P{^Nv=1.300000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=-_0_0_0_013:=}');
-    Error('\P{Is_Numeric_Value=-_0_0_0_013:=}');
-    Expect(1, 119533, '\p{Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(0, 119533, '\p{^Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(0, 119533, '\P{Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(1, 119533, '\P{^Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(0, 119534, '\p{Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(1, 119534, '\p{^Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(1, 119534, '\P{Is_Numeric_Value=+0_0_0_13}', "");
-    Expect(0, 119534, '\P{^Is_Numeric_Value=+0_0_0_13}', "");
+    Error('\p{Is_Numeric_Value=:=-	+013}');
+    Error('\P{Is_Numeric_Value=:=-	+013}');
+    Expect(1, 119533, '\p{Is_Numeric_Value=+1_3}', "");
+    Expect(0, 119533, '\p{^Is_Numeric_Value=+1_3}', "");
+    Expect(0, 119533, '\P{Is_Numeric_Value=+1_3}', "");
+    Expect(1, 119533, '\P{^Is_Numeric_Value=+1_3}', "");
+    Expect(0, 119534, '\p{Is_Numeric_Value=+1_3}', "");
+    Expect(1, 119534, '\p{^Is_Numeric_Value=+1_3}', "");
+    Expect(1, 119534, '\P{Is_Numeric_Value=+1_3}', "");
+    Expect(0, 119534, '\P{^Is_Numeric_Value=+1_3}', "");
     Expect(1, 119533, '\p{Is_Numeric_Value=1.300000000000000e+01}', "");
     Expect(0, 119533, '\p{^Is_Numeric_Value=1.300000000000000e+01}', "");
     Expect(0, 119533, '\P{Is_Numeric_Value=1.300000000000000e+01}', "");
@@ -74143,16 +74733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119534, '\p{^Is_Numeric_Value=1.300000000000000e+01}', "");
     Expect(1, 119534, '\P{Is_Numeric_Value=1.300000000000000e+01}', "");
     Expect(0, 119534, '\P{^Is_Numeric_Value=1.300000000000000e+01}', "");
-    Error('\p{Is_Nv=	-0000013:=}');
-    Error('\P{Is_Nv=	-0000013:=}');
-    Expect(1, 119533, '\p{Is_Nv=001_3}', "");
-    Expect(0, 119533, '\p{^Is_Nv=001_3}', "");
-    Expect(0, 119533, '\P{Is_Nv=001_3}', "");
-    Expect(1, 119533, '\P{^Is_Nv=001_3}', "");
-    Expect(0, 119534, '\p{Is_Nv=001_3}', "");
-    Expect(1, 119534, '\p{^Is_Nv=001_3}', "");
-    Expect(1, 119534, '\P{Is_Nv=001_3}', "");
-    Expect(0, 119534, '\P{^Is_Nv=001_3}', "");
+    Error('\p{Is_Nv=/a/	_+0001_3}');
+    Error('\P{Is_Nv=/a/	_+0001_3}');
+    Expect(1, 119533, '\p{Is_Nv:00_01_3}', "");
+    Expect(0, 119533, '\p{^Is_Nv:00_01_3}', "");
+    Expect(0, 119533, '\P{Is_Nv:00_01_3}', "");
+    Expect(1, 119533, '\P{^Is_Nv:00_01_3}', "");
+    Expect(0, 119534, '\p{Is_Nv:00_01_3}', "");
+    Expect(1, 119534, '\p{^Is_Nv:00_01_3}', "");
+    Expect(1, 119534, '\P{Is_Nv:00_01_3}', "");
+    Expect(0, 119534, '\P{^Is_Nv:00_01_3}', "");
     Expect(1, 119533, '\p{Is_Nv=1.300000000000000e+01}', "");
     Expect(0, 119533, '\p{^Is_Nv=1.300000000000000e+01}', "");
     Expect(0, 119533, '\P{Is_Nv=1.300000000000000e+01}', "");
@@ -74161,18 +74751,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119534, '\p{^Is_Nv=1.300000000000000e+01}', "");
     Expect(1, 119534, '\P{Is_Nv=1.300000000000000e+01}', "");
     Expect(0, 119534, '\P{^Is_Nv=1.300000000000000e+01}', "");
-    Error('\p{Numeric_Value=:=	-+0000013/000002}');
-    Error('\P{Numeric_Value=:=	-+0000013/000002}');
+    Error('\p{Numeric_Value=-/a/013/02}');
+    Error('\P{Numeric_Value=-/a/013/02}');
     Expect(1, 3888, '\p{Numeric_Value=:\A13/2\z:}', "");;
     Expect(0, 3889, '\p{Numeric_Value=:\A13/2\z:}', "");;
-    Expect(1, 3888, '\p{Numeric_Value=+0000013/000000002}', "");
-    Expect(0, 3888, '\p{^Numeric_Value=+0000013/000000002}', "");
-    Expect(0, 3888, '\P{Numeric_Value=+0000013/000000002}', "");
-    Expect(1, 3888, '\P{^Numeric_Value=+0000013/000000002}', "");
-    Expect(0, 3889, '\p{Numeric_Value=+0000013/000000002}', "");
-    Expect(1, 3889, '\p{^Numeric_Value=+0000013/000000002}', "");
-    Expect(1, 3889, '\P{Numeric_Value=+0000013/000000002}', "");
-    Expect(0, 3889, '\P{^Numeric_Value=+0000013/000000002}', "");
+    Expect(1, 3888, '\p{Numeric_Value:   00013/00002}', "");
+    Expect(0, 3888, '\p{^Numeric_Value:   00013/00002}', "");
+    Expect(0, 3888, '\P{Numeric_Value:   00013/00002}', "");
+    Expect(1, 3888, '\P{^Numeric_Value:   00013/00002}', "");
+    Expect(0, 3889, '\p{Numeric_Value:   00013/00002}', "");
+    Expect(1, 3889, '\p{^Numeric_Value:   00013/00002}', "");
+    Expect(1, 3889, '\P{Numeric_Value:   00013/00002}', "");
+    Expect(0, 3889, '\P{^Numeric_Value:   00013/00002}', "");
     Expect(1, 3888, '\p{Numeric_Value=780/120}', "");
     Expect(0, 3888, '\p{^Numeric_Value=780/120}', "");
     Expect(0, 3888, '\P{Numeric_Value=780/120}', "");
@@ -74213,18 +74803,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Numeric_Value=6.50}', "");
     Expect(1, 3889, '\P{Numeric_Value=6.50}', "");
     Expect(0, 3889, '\P{^Numeric_Value=6.50}', "");
-    Error('\p{Nv=-:=00013/02}');
-    Error('\P{Nv=-:=00013/02}');
+    Error('\p{Nv=/a/-_000013/0002}');
+    Error('\P{Nv=/a/-_000013/0002}');
     Expect(1, 3888, '\p{Nv=:\A13/2\z:}', "");;
     Expect(0, 3889, '\p{Nv=:\A13/2\z:}', "");;
-    Expect(1, 3888, '\p{Nv=+00013/0000002}', "");
-    Expect(0, 3888, '\p{^Nv=+00013/0000002}', "");
-    Expect(0, 3888, '\P{Nv=+00013/0000002}', "");
-    Expect(1, 3888, '\P{^Nv=+00013/0000002}', "");
-    Expect(0, 3889, '\p{Nv=+00013/0000002}', "");
-    Expect(1, 3889, '\p{^Nv=+00013/0000002}', "");
-    Expect(1, 3889, '\P{Nv=+00013/0000002}', "");
-    Expect(0, 3889, '\P{^Nv=+00013/0000002}', "");
+    Expect(1, 3888, '\p{Nv:	0000013/00000002}', "");
+    Expect(0, 3888, '\p{^Nv:	0000013/00000002}', "");
+    Expect(0, 3888, '\P{Nv:	0000013/00000002}', "");
+    Expect(1, 3888, '\P{^Nv:	0000013/00000002}', "");
+    Expect(0, 3889, '\p{Nv:	0000013/00000002}', "");
+    Expect(1, 3889, '\p{^Nv:	0000013/00000002}', "");
+    Expect(1, 3889, '\P{Nv:	0000013/00000002}', "");
+    Expect(0, 3889, '\P{^Nv:	0000013/00000002}', "");
     Expect(1, 3888, '\p{Nv=780/120}', "");
     Expect(0, 3888, '\p{^Nv=780/120}', "");
     Expect(0, 3888, '\P{Nv=780/120}', "");
@@ -74233,14 +74823,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Nv=780/120}', "");
     Expect(1, 3889, '\P{Nv=780/120}', "");
     Expect(0, 3889, '\P{^Nv=780/120}', "");
-    Expect(1, 3888, '\p{Nv=6.5e+00}', "");
-    Expect(0, 3888, '\p{^Nv=6.5e+00}', "");
-    Expect(0, 3888, '\P{Nv=6.5e+00}', "");
-    Expect(1, 3888, '\P{^Nv=6.5e+00}', "");
-    Expect(0, 3889, '\p{Nv=6.5e+00}', "");
-    Expect(1, 3889, '\p{^Nv=6.5e+00}', "");
-    Expect(1, 3889, '\P{Nv=6.5e+00}', "");
-    Expect(0, 3889, '\P{^Nv=6.5e+00}', "");
+    Expect(1, 3888, '\p{Nv:	6.5e+00}', "");
+    Expect(0, 3888, '\p{^Nv:	6.5e+00}', "");
+    Expect(0, 3888, '\P{Nv:	6.5e+00}', "");
+    Expect(1, 3888, '\P{^Nv:	6.5e+00}', "");
+    Expect(0, 3889, '\p{Nv:	6.5e+00}', "");
+    Expect(1, 3889, '\p{^Nv:	6.5e+00}', "");
+    Expect(1, 3889, '\P{Nv:	6.5e+00}', "");
+    Expect(0, 3889, '\P{^Nv:	6.5e+00}', "");
     Expect(1, 3888, '\p{Nv=6.5}', "");
     Expect(0, 3888, '\p{^Nv=6.5}', "");
     Expect(0, 3888, '\P{Nv=6.5}', "");
@@ -74249,14 +74839,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Nv=6.5}', "");
     Expect(1, 3889, '\P{Nv=6.5}', "");
     Expect(0, 3889, '\P{^Nv=6.5}', "");
-    Expect(1, 3888, '\p{Nv:   6.50e+00}', "");
-    Expect(0, 3888, '\p{^Nv:   6.50e+00}', "");
-    Expect(0, 3888, '\P{Nv:   6.50e+00}', "");
-    Expect(1, 3888, '\P{^Nv:   6.50e+00}', "");
-    Expect(0, 3889, '\p{Nv:   6.50e+00}', "");
-    Expect(1, 3889, '\p{^Nv:   6.50e+00}', "");
-    Expect(1, 3889, '\P{Nv:   6.50e+00}', "");
-    Expect(0, 3889, '\P{^Nv:   6.50e+00}', "");
+    Expect(1, 3888, '\p{Nv=6.50e+00}', "");
+    Expect(0, 3888, '\p{^Nv=6.50e+00}', "");
+    Expect(0, 3888, '\P{Nv=6.50e+00}', "");
+    Expect(1, 3888, '\P{^Nv=6.50e+00}', "");
+    Expect(0, 3889, '\p{Nv=6.50e+00}', "");
+    Expect(1, 3889, '\p{^Nv=6.50e+00}', "");
+    Expect(1, 3889, '\P{Nv=6.50e+00}', "");
+    Expect(0, 3889, '\P{^Nv=6.50e+00}', "");
     Expect(1, 3888, '\p{Nv=6.50}', "");
     Expect(0, 3888, '\p{^Nv=6.50}', "");
     Expect(0, 3888, '\P{Nv=6.50}', "");
@@ -74265,16 +74855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Nv=6.50}', "");
     Expect(1, 3889, '\P{Nv=6.50}', "");
     Expect(0, 3889, '\P{^Nv=6.50}', "");
-    Error('\p{Is_Numeric_Value=/a/-000013/000000002}');
-    Error('\P{Is_Numeric_Value=/a/-000013/000000002}');
-    Expect(1, 3888, '\p{Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(0, 3888, '\p{^Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(0, 3888, '\P{Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(1, 3888, '\P{^Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(0, 3889, '\p{Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(1, 3889, '\p{^Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(1, 3889, '\P{Is_Numeric_Value: 0000000013/0000002}', "");
-    Expect(0, 3889, '\P{^Is_Numeric_Value: 0000000013/0000002}', "");
+    Error('\p{Is_Numeric_Value=/a/013/002}');
+    Error('\P{Is_Numeric_Value=/a/013/002}');
+    Expect(1, 3888, '\p{Is_Numeric_Value=+013/02}', "");
+    Expect(0, 3888, '\p{^Is_Numeric_Value=+013/02}', "");
+    Expect(0, 3888, '\P{Is_Numeric_Value=+013/02}', "");
+    Expect(1, 3888, '\P{^Is_Numeric_Value=+013/02}', "");
+    Expect(0, 3889, '\p{Is_Numeric_Value=+013/02}', "");
+    Expect(1, 3889, '\p{^Is_Numeric_Value=+013/02}', "");
+    Expect(1, 3889, '\P{Is_Numeric_Value=+013/02}', "");
+    Expect(0, 3889, '\P{^Is_Numeric_Value=+013/02}', "");
     Expect(1, 3888, '\p{Is_Numeric_Value=780/120}', "");
     Expect(0, 3888, '\p{^Is_Numeric_Value=780/120}', "");
     Expect(0, 3888, '\P{Is_Numeric_Value=780/120}', "");
@@ -74283,14 +74873,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Is_Numeric_Value=780/120}', "");
     Expect(1, 3889, '\P{Is_Numeric_Value=780/120}', "");
     Expect(0, 3889, '\P{^Is_Numeric_Value=780/120}', "");
-    Expect(1, 3888, '\p{Is_Numeric_Value=6.5e+00}', "");
-    Expect(0, 3888, '\p{^Is_Numeric_Value=6.5e+00}', "");
-    Expect(0, 3888, '\P{Is_Numeric_Value=6.5e+00}', "");
-    Expect(1, 3888, '\P{^Is_Numeric_Value=6.5e+00}', "");
-    Expect(0, 3889, '\p{Is_Numeric_Value=6.5e+00}', "");
-    Expect(1, 3889, '\p{^Is_Numeric_Value=6.5e+00}', "");
-    Expect(1, 3889, '\P{Is_Numeric_Value=6.5e+00}', "");
-    Expect(0, 3889, '\P{^Is_Numeric_Value=6.5e+00}', "");
+    Expect(1, 3888, '\p{Is_Numeric_Value:   6.5e+00}', "");
+    Expect(0, 3888, '\p{^Is_Numeric_Value:   6.5e+00}', "");
+    Expect(0, 3888, '\P{Is_Numeric_Value:   6.5e+00}', "");
+    Expect(1, 3888, '\P{^Is_Numeric_Value:   6.5e+00}', "");
+    Expect(0, 3889, '\p{Is_Numeric_Value:   6.5e+00}', "");
+    Expect(1, 3889, '\p{^Is_Numeric_Value:   6.5e+00}', "");
+    Expect(1, 3889, '\P{Is_Numeric_Value:   6.5e+00}', "");
+    Expect(0, 3889, '\P{^Is_Numeric_Value:   6.5e+00}', "");
     Expect(1, 3888, '\p{Is_Numeric_Value=6.5}', "");
     Expect(0, 3888, '\p{^Is_Numeric_Value=6.5}', "");
     Expect(0, 3888, '\P{Is_Numeric_Value=6.5}', "");
@@ -74315,16 +74905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Is_Numeric_Value=6.50}', "");
     Expect(1, 3889, '\P{Is_Numeric_Value=6.50}', "");
     Expect(0, 3889, '\P{^Is_Numeric_Value=6.50}', "");
-    Error('\p{Is_Nv=/a/ 	0013/0002}');
-    Error('\P{Is_Nv=/a/ 	0013/0002}');
-    Expect(1, 3888, '\p{Is_Nv=0000013/000000002}', "");
-    Expect(0, 3888, '\p{^Is_Nv=0000013/000000002}', "");
-    Expect(0, 3888, '\P{Is_Nv=0000013/000000002}', "");
-    Expect(1, 3888, '\P{^Is_Nv=0000013/000000002}', "");
-    Expect(0, 3889, '\p{Is_Nv=0000013/000000002}', "");
-    Expect(1, 3889, '\p{^Is_Nv=0000013/000000002}', "");
-    Expect(1, 3889, '\P{Is_Nv=0000013/000000002}', "");
-    Expect(0, 3889, '\P{^Is_Nv=0000013/000000002}', "");
+    Error('\p{Is_Nv=_+013/0002/a/}');
+    Error('\P{Is_Nv=_+013/0002/a/}');
+    Expect(1, 3888, '\p{Is_Nv=00000000013/0000000002}', "");
+    Expect(0, 3888, '\p{^Is_Nv=00000000013/0000000002}', "");
+    Expect(0, 3888, '\P{Is_Nv=00000000013/0000000002}', "");
+    Expect(1, 3888, '\P{^Is_Nv=00000000013/0000000002}', "");
+    Expect(0, 3889, '\p{Is_Nv=00000000013/0000000002}', "");
+    Expect(1, 3889, '\p{^Is_Nv=00000000013/0000000002}', "");
+    Expect(1, 3889, '\P{Is_Nv=00000000013/0000000002}', "");
+    Expect(0, 3889, '\P{^Is_Nv=00000000013/0000000002}', "");
     Expect(1, 3888, '\p{Is_Nv=780/120}', "");
     Expect(0, 3888, '\p{^Is_Nv=780/120}', "");
     Expect(0, 3888, '\P{Is_Nv=780/120}', "");
@@ -74333,14 +74923,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Is_Nv=780/120}', "");
     Expect(1, 3889, '\P{Is_Nv=780/120}', "");
     Expect(0, 3889, '\P{^Is_Nv=780/120}', "");
-    Expect(1, 3888, '\p{Is_Nv=6.5e+00}', "");
-    Expect(0, 3888, '\p{^Is_Nv=6.5e+00}', "");
-    Expect(0, 3888, '\P{Is_Nv=6.5e+00}', "");
-    Expect(1, 3888, '\P{^Is_Nv=6.5e+00}', "");
-    Expect(0, 3889, '\p{Is_Nv=6.5e+00}', "");
-    Expect(1, 3889, '\p{^Is_Nv=6.5e+00}', "");
-    Expect(1, 3889, '\P{Is_Nv=6.5e+00}', "");
-    Expect(0, 3889, '\P{^Is_Nv=6.5e+00}', "");
+    Expect(1, 3888, '\p{Is_Nv:	6.5e+00}', "");
+    Expect(0, 3888, '\p{^Is_Nv:	6.5e+00}', "");
+    Expect(0, 3888, '\P{Is_Nv:	6.5e+00}', "");
+    Expect(1, 3888, '\P{^Is_Nv:	6.5e+00}', "");
+    Expect(0, 3889, '\p{Is_Nv:	6.5e+00}', "");
+    Expect(1, 3889, '\p{^Is_Nv:	6.5e+00}', "");
+    Expect(1, 3889, '\P{Is_Nv:	6.5e+00}', "");
+    Expect(0, 3889, '\P{^Is_Nv:	6.5e+00}', "");
     Expect(1, 3888, '\p{Is_Nv=6.5}', "");
     Expect(0, 3888, '\p{^Is_Nv=6.5}', "");
     Expect(0, 3888, '\P{Is_Nv=6.5}', "");
@@ -74365,18 +74955,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3889, '\p{^Is_Nv=6.50}', "");
     Expect(1, 3889, '\P{Is_Nv=6.50}', "");
     Expect(0, 3889, '\P{^Is_Nv=6.50}', "");
-    Error('\p{Numeric_Value=/a/_14}');
-    Error('\P{Numeric_Value=/a/_14}');
+    Error('\p{Numeric_Value=:=_0_0_0_0_0_0_014}');
+    Error('\P{Numeric_Value=:=_0_0_0_0_0_0_014}');
     Expect(1, 119534, '\p{Numeric_Value=:\A14\z:}', "");;
     Expect(0, 119535, '\p{Numeric_Value=:\A14\z:}', "");;
-    Expect(1, 119534, '\p{Numeric_Value=001_4}', "");
-    Expect(0, 119534, '\p{^Numeric_Value=001_4}', "");
-    Expect(0, 119534, '\P{Numeric_Value=001_4}', "");
-    Expect(1, 119534, '\P{^Numeric_Value=001_4}', "");
-    Expect(0, 119535, '\p{Numeric_Value=001_4}', "");
-    Expect(1, 119535, '\p{^Numeric_Value=001_4}', "");
-    Expect(1, 119535, '\P{Numeric_Value=001_4}', "");
-    Expect(0, 119535, '\P{^Numeric_Value=001_4}', "");
+    Expect(1, 119534, '\p{Numeric_Value=000014}', "");
+    Expect(0, 119534, '\p{^Numeric_Value=000014}', "");
+    Expect(0, 119534, '\P{Numeric_Value=000014}', "");
+    Expect(1, 119534, '\P{^Numeric_Value=000014}', "");
+    Expect(0, 119535, '\p{Numeric_Value=000014}', "");
+    Expect(1, 119535, '\p{^Numeric_Value=000014}', "");
+    Expect(1, 119535, '\P{Numeric_Value=000014}', "");
+    Expect(0, 119535, '\P{^Numeric_Value=000014}', "");
     Expect(1, 119534, '\p{Numeric_Value=1.400000000000000e+01}', "");
     Expect(0, 119534, '\p{^Numeric_Value=1.400000000000000e+01}', "");
     Expect(0, 119534, '\P{Numeric_Value=1.400000000000000e+01}', "");
@@ -74385,18 +74975,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119535, '\p{^Numeric_Value=1.400000000000000e+01}', "");
     Expect(1, 119535, '\P{Numeric_Value=1.400000000000000e+01}', "");
     Expect(0, 119535, '\P{^Numeric_Value=1.400000000000000e+01}', "");
-    Error('\p{Nv=/a/0_0_0_0_0_0_0_14}');
-    Error('\P{Nv=/a/0_0_0_0_0_0_0_14}');
+    Error('\p{Nv=:=00000000014}');
+    Error('\P{Nv=:=00000000014}');
     Expect(1, 119534, '\p{Nv=:\A14\z:}', "");;
     Expect(0, 119535, '\p{Nv=:\A14\z:}', "");;
-    Expect(1, 119534, '\p{Nv=+0_0_0_14}', "");
-    Expect(0, 119534, '\p{^Nv=+0_0_0_14}', "");
-    Expect(0, 119534, '\P{Nv=+0_0_0_14}', "");
-    Expect(1, 119534, '\P{^Nv=+0_0_0_14}', "");
-    Expect(0, 119535, '\p{Nv=+0_0_0_14}', "");
-    Expect(1, 119535, '\p{^Nv=+0_0_0_14}', "");
-    Expect(1, 119535, '\P{Nv=+0_0_0_14}', "");
-    Expect(0, 119535, '\P{^Nv=+0_0_0_14}', "");
+    Expect(1, 119534, '\p{Nv=01_4}', "");
+    Expect(0, 119534, '\p{^Nv=01_4}', "");
+    Expect(0, 119534, '\P{Nv=01_4}', "");
+    Expect(1, 119534, '\P{^Nv=01_4}', "");
+    Expect(0, 119535, '\p{Nv=01_4}', "");
+    Expect(1, 119535, '\p{^Nv=01_4}', "");
+    Expect(1, 119535, '\P{Nv=01_4}', "");
+    Expect(0, 119535, '\P{^Nv=01_4}', "");
     Expect(1, 119534, '\p{Nv=1.400000000000000e+01}', "");
     Expect(0, 119534, '\p{^Nv=1.400000000000000e+01}', "");
     Expect(0, 119534, '\P{Nv=1.400000000000000e+01}', "");
@@ -74405,16 +74995,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119535, '\p{^Nv=1.400000000000000e+01}', "");
     Expect(1, 119535, '\P{Nv=1.400000000000000e+01}', "");
     Expect(0, 119535, '\P{^Nv=1.400000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/14}');
-    Error('\P{Is_Numeric_Value=/a/14}');
-    Expect(1, 119534, '\p{Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(0, 119534, '\p{^Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(0, 119534, '\P{Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(1, 119534, '\P{^Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(0, 119535, '\p{Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(1, 119535, '\p{^Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(1, 119535, '\P{Is_Numeric_Value=0_0_0_0_0_0_014}', "");
-    Expect(0, 119535, '\P{^Is_Numeric_Value=0_0_0_0_0_0_014}', "");
+    Error('\p{Is_Numeric_Value=	+00_00_01_4/a/}');
+    Error('\P{Is_Numeric_Value=	+00_00_01_4/a/}');
+    Expect(1, 119534, '\p{Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(0, 119534, '\p{^Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(0, 119534, '\P{Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(1, 119534, '\P{^Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(0, 119535, '\p{Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(1, 119535, '\p{^Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(1, 119535, '\P{Is_Numeric_Value: 0_0_0_0_0014}', "");
+    Expect(0, 119535, '\P{^Is_Numeric_Value: 0_0_0_0_0014}', "");
     Expect(1, 119534, '\p{Is_Numeric_Value=1.400000000000000e+01}', "");
     Expect(0, 119534, '\p{^Is_Numeric_Value=1.400000000000000e+01}', "");
     Expect(0, 119534, '\P{Is_Numeric_Value=1.400000000000000e+01}', "");
@@ -74423,16 +75013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119535, '\p{^Is_Numeric_Value=1.400000000000000e+01}', "");
     Expect(1, 119535, '\P{Is_Numeric_Value=1.400000000000000e+01}', "");
     Expect(0, 119535, '\P{^Is_Numeric_Value=1.400000000000000e+01}', "");
-    Error('\p{Is_Nv=:=+000000014}');
-    Error('\P{Is_Nv=:=+000000014}');
-    Expect(1, 119534, '\p{Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(0, 119534, '\p{^Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(0, 119534, '\P{Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(1, 119534, '\P{^Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(0, 119535, '\p{Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(1, 119535, '\p{^Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(1, 119535, '\P{Is_Nv=0_0_0_0_0_0_00014}', "");
-    Expect(0, 119535, '\P{^Is_Nv=0_0_0_0_0_0_00014}', "");
+    Error('\p{Is_Nv=	000000014:=}');
+    Error('\P{Is_Nv=	000000014:=}');
+    Expect(1, 119534, '\p{Is_Nv: 00_00_00_00_014}', "");
+    Expect(0, 119534, '\p{^Is_Nv: 00_00_00_00_014}', "");
+    Expect(0, 119534, '\P{Is_Nv: 00_00_00_00_014}', "");
+    Expect(1, 119534, '\P{^Is_Nv: 00_00_00_00_014}', "");
+    Expect(0, 119535, '\p{Is_Nv: 00_00_00_00_014}', "");
+    Expect(1, 119535, '\p{^Is_Nv: 00_00_00_00_014}', "");
+    Expect(1, 119535, '\P{Is_Nv: 00_00_00_00_014}', "");
+    Expect(0, 119535, '\P{^Is_Nv: 00_00_00_00_014}', "");
     Expect(1, 119534, '\p{Is_Nv=1.400000000000000e+01}', "");
     Expect(0, 119534, '\p{^Is_Nv=1.400000000000000e+01}', "");
     Expect(0, 119534, '\P{Is_Nv=1.400000000000000e+01}', "");
@@ -74441,38 +75031,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119535, '\p{^Is_Nv=1.400000000000000e+01}', "");
     Expect(1, 119535, '\P{Is_Nv=1.400000000000000e+01}', "");
     Expect(0, 119535, '\P{^Is_Nv=1.400000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/	 0015}');
-    Error('\P{Numeric_Value=/a/	 0015}');
+    Error('\p{Numeric_Value=00_00_01_5:=}');
+    Error('\P{Numeric_Value=00_00_01_5:=}');
     Expect(1, 119535, '\p{Numeric_Value=:\A15\z:}', "");;
     Expect(0, 119536, '\p{Numeric_Value=:\A15\z:}', "");;
-    Expect(1, 119535, '\p{Numeric_Value=00_00_00_00_015}', "");
-    Expect(0, 119535, '\p{^Numeric_Value=00_00_00_00_015}', "");
-    Expect(0, 119535, '\P{Numeric_Value=00_00_00_00_015}', "");
-    Expect(1, 119535, '\P{^Numeric_Value=00_00_00_00_015}', "");
-    Expect(0, 119536, '\p{Numeric_Value=00_00_00_00_015}', "");
-    Expect(1, 119536, '\p{^Numeric_Value=00_00_00_00_015}', "");
-    Expect(1, 119536, '\P{Numeric_Value=00_00_00_00_015}', "");
-    Expect(0, 119536, '\P{^Numeric_Value=00_00_00_00_015}', "");
-    Expect(1, 119535, '\p{Numeric_Value:1.500000000000000e+01}', "");
-    Expect(0, 119535, '\p{^Numeric_Value:1.500000000000000e+01}', "");
-    Expect(0, 119535, '\P{Numeric_Value:1.500000000000000e+01}', "");
-    Expect(1, 119535, '\P{^Numeric_Value:1.500000000000000e+01}', "");
-    Expect(0, 119536, '\p{Numeric_Value:1.500000000000000e+01}', "");
-    Expect(1, 119536, '\p{^Numeric_Value:1.500000000000000e+01}', "");
-    Expect(1, 119536, '\P{Numeric_Value:1.500000000000000e+01}', "");
-    Expect(0, 119536, '\P{^Numeric_Value:1.500000000000000e+01}', "");
-    Error('\p{Nv=/a/ 15}');
-    Error('\P{Nv=/a/ 15}');
+    Expect(1, 119535, '\p{Numeric_Value=000000015}', "");
+    Expect(0, 119535, '\p{^Numeric_Value=000000015}', "");
+    Expect(0, 119535, '\P{Numeric_Value=000000015}', "");
+    Expect(1, 119535, '\P{^Numeric_Value=000000015}', "");
+    Expect(0, 119536, '\p{Numeric_Value=000000015}', "");
+    Expect(1, 119536, '\p{^Numeric_Value=000000015}', "");
+    Expect(1, 119536, '\P{Numeric_Value=000000015}', "");
+    Expect(0, 119536, '\P{^Numeric_Value=000000015}', "");
+    Expect(1, 119535, '\p{Numeric_Value=1.500000000000000e+01}', "");
+    Expect(0, 119535, '\p{^Numeric_Value=1.500000000000000e+01}', "");
+    Expect(0, 119535, '\P{Numeric_Value=1.500000000000000e+01}', "");
+    Expect(1, 119535, '\P{^Numeric_Value=1.500000000000000e+01}', "");
+    Expect(0, 119536, '\p{Numeric_Value=1.500000000000000e+01}', "");
+    Expect(1, 119536, '\p{^Numeric_Value=1.500000000000000e+01}', "");
+    Expect(1, 119536, '\P{Numeric_Value=1.500000000000000e+01}', "");
+    Expect(0, 119536, '\P{^Numeric_Value=1.500000000000000e+01}', "");
+    Error('\p{Nv:		/a/00_00_00_015}');
+    Error('\P{Nv:		/a/00_00_00_015}');
     Expect(1, 119535, '\p{Nv=:\A15\z:}', "");;
     Expect(0, 119536, '\p{Nv=:\A15\z:}', "");;
-    Expect(1, 119535, '\p{Nv=+01_5}', "");
-    Expect(0, 119535, '\p{^Nv=+01_5}', "");
-    Expect(0, 119535, '\P{Nv=+01_5}', "");
-    Expect(1, 119535, '\P{^Nv=+01_5}', "");
-    Expect(0, 119536, '\p{Nv=+01_5}', "");
-    Expect(1, 119536, '\p{^Nv=+01_5}', "");
-    Expect(1, 119536, '\P{Nv=+01_5}', "");
-    Expect(0, 119536, '\P{^Nv=+01_5}', "");
+    Expect(1, 119535, '\p{Nv=+15}', "");
+    Expect(0, 119535, '\p{^Nv=+15}', "");
+    Expect(0, 119535, '\P{Nv=+15}', "");
+    Expect(1, 119535, '\P{^Nv=+15}', "");
+    Expect(0, 119536, '\p{Nv=+15}', "");
+    Expect(1, 119536, '\p{^Nv=+15}', "");
+    Expect(1, 119536, '\P{Nv=+15}', "");
+    Expect(0, 119536, '\P{^Nv=+15}', "");
     Expect(1, 119535, '\p{Nv=1.500000000000000e+01}', "");
     Expect(0, 119535, '\p{^Nv=1.500000000000000e+01}', "");
     Expect(0, 119535, '\P{Nv=1.500000000000000e+01}', "");
@@ -74481,16 +75071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119536, '\p{^Nv=1.500000000000000e+01}', "");
     Expect(1, 119536, '\P{Nv=1.500000000000000e+01}', "");
     Expect(0, 119536, '\P{^Nv=1.500000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value:   /a/- +015}');
-    Error('\P{Is_Numeric_Value:   /a/- +015}');
-    Expect(1, 119535, '\p{Is_Numeric_Value=+0000015}', "");
-    Expect(0, 119535, '\p{^Is_Numeric_Value=+0000015}', "");
-    Expect(0, 119535, '\P{Is_Numeric_Value=+0000015}', "");
-    Expect(1, 119535, '\P{^Is_Numeric_Value=+0000015}', "");
-    Expect(0, 119536, '\p{Is_Numeric_Value=+0000015}', "");
-    Expect(1, 119536, '\p{^Is_Numeric_Value=+0000015}', "");
-    Expect(1, 119536, '\P{Is_Numeric_Value=+0000015}', "");
-    Expect(0, 119536, '\P{^Is_Numeric_Value=+0000015}', "");
+    Error('\p{Is_Numeric_Value=:= 15}');
+    Error('\P{Is_Numeric_Value=:= 15}');
+    Expect(1, 119535, '\p{Is_Numeric_Value=+01_5}', "");
+    Expect(0, 119535, '\p{^Is_Numeric_Value=+01_5}', "");
+    Expect(0, 119535, '\P{Is_Numeric_Value=+01_5}', "");
+    Expect(1, 119535, '\P{^Is_Numeric_Value=+01_5}', "");
+    Expect(0, 119536, '\p{Is_Numeric_Value=+01_5}', "");
+    Expect(1, 119536, '\p{^Is_Numeric_Value=+01_5}', "");
+    Expect(1, 119536, '\P{Is_Numeric_Value=+01_5}', "");
+    Expect(0, 119536, '\P{^Is_Numeric_Value=+01_5}', "");
     Expect(1, 119535, '\p{Is_Numeric_Value=1.500000000000000e+01}', "");
     Expect(0, 119535, '\p{^Is_Numeric_Value=1.500000000000000e+01}', "");
     Expect(0, 119535, '\P{Is_Numeric_Value=1.500000000000000e+01}', "");
@@ -74499,16 +75089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119536, '\p{^Is_Numeric_Value=1.500000000000000e+01}', "");
     Expect(1, 119536, '\P{Is_Numeric_Value=1.500000000000000e+01}', "");
     Expect(0, 119536, '\P{^Is_Numeric_Value=1.500000000000000e+01}', "");
-    Error('\p{Is_Nv=	/a/+1_5}');
-    Error('\P{Is_Nv=	/a/+1_5}');
-    Expect(1, 119535, '\p{Is_Nv=015}', "");
-    Expect(0, 119535, '\p{^Is_Nv=015}', "");
-    Expect(0, 119535, '\P{Is_Nv=015}', "");
-    Expect(1, 119535, '\P{^Is_Nv=015}', "");
-    Expect(0, 119536, '\p{Is_Nv=015}', "");
-    Expect(1, 119536, '\p{^Is_Nv=015}', "");
-    Expect(1, 119536, '\P{Is_Nv=015}', "");
-    Expect(0, 119536, '\P{^Is_Nv=015}', "");
+    Error('\p{Is_Nv=_:=+0015}');
+    Error('\P{Is_Nv=_:=+0015}');
+    Expect(1, 119535, '\p{Is_Nv=+0_0_0_0_0015}', "");
+    Expect(0, 119535, '\p{^Is_Nv=+0_0_0_0_0015}', "");
+    Expect(0, 119535, '\P{Is_Nv=+0_0_0_0_0015}', "");
+    Expect(1, 119535, '\P{^Is_Nv=+0_0_0_0_0015}', "");
+    Expect(0, 119536, '\p{Is_Nv=+0_0_0_0_0015}', "");
+    Expect(1, 119536, '\p{^Is_Nv=+0_0_0_0_0015}', "");
+    Expect(1, 119536, '\P{Is_Nv=+0_0_0_0_0015}', "");
+    Expect(0, 119536, '\P{^Is_Nv=+0_0_0_0_0015}', "");
     Expect(1, 119535, '\p{Is_Nv=1.500000000000000e+01}', "");
     Expect(0, 119535, '\p{^Is_Nv=1.500000000000000e+01}', "");
     Expect(0, 119535, '\P{Is_Nv=1.500000000000000e+01}', "");
@@ -74517,18 +75107,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119536, '\p{^Is_Nv=1.500000000000000e+01}', "");
     Expect(1, 119536, '\P{Is_Nv=1.500000000000000e+01}', "");
     Expect(0, 119536, '\P{^Is_Nv=1.500000000000000e+01}', "");
-    Error('\p{Numeric_Value=:= 00000000015/002}');
-    Error('\P{Numeric_Value=:= 00000000015/002}');
+    Error('\p{Numeric_Value: _00000015/0000002/a/}');
+    Error('\P{Numeric_Value: _00000015/0000002/a/}');
     Expect(1, 3889, '\p{Numeric_Value=:\A15/2\z:}', "");;
     Expect(0, 3890, '\p{Numeric_Value=:\A15/2\z:}', "");;
-    Expect(1, 3889, '\p{Numeric_Value=+15/02}', "");
-    Expect(0, 3889, '\p{^Numeric_Value=+15/02}', "");
-    Expect(0, 3889, '\P{Numeric_Value=+15/02}', "");
-    Expect(1, 3889, '\P{^Numeric_Value=+15/02}', "");
-    Expect(0, 3890, '\p{Numeric_Value=+15/02}', "");
-    Expect(1, 3890, '\p{^Numeric_Value=+15/02}', "");
-    Expect(1, 3890, '\P{Numeric_Value=+15/02}', "");
-    Expect(0, 3890, '\P{^Numeric_Value=+15/02}', "");
+    Expect(1, 3889, '\p{Numeric_Value:	0000000015/0000000002}', "");
+    Expect(0, 3889, '\p{^Numeric_Value:	0000000015/0000000002}', "");
+    Expect(0, 3889, '\P{Numeric_Value:	0000000015/0000000002}', "");
+    Expect(1, 3889, '\P{^Numeric_Value:	0000000015/0000000002}', "");
+    Expect(0, 3890, '\p{Numeric_Value:	0000000015/0000000002}', "");
+    Expect(1, 3890, '\p{^Numeric_Value:	0000000015/0000000002}', "");
+    Expect(1, 3890, '\P{Numeric_Value:	0000000015/0000000002}', "");
+    Expect(0, 3890, '\P{^Numeric_Value:	0000000015/0000000002}', "");
     Expect(1, 3889, '\p{Numeric_Value=900/120}', "");
     Expect(0, 3889, '\p{^Numeric_Value=900/120}', "");
     Expect(0, 3889, '\P{Numeric_Value=900/120}', "");
@@ -74569,18 +75159,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3890, '\p{^Numeric_Value=7.50}', "");
     Expect(1, 3890, '\P{Numeric_Value=7.50}', "");
     Expect(0, 3890, '\P{^Numeric_Value=7.50}', "");
-    Error('\p{Nv=:=  0000000015/0000002}');
-    Error('\P{Nv=:=  0000000015/0000002}');
+    Error('\p{Nv=:=	+0015/002}');
+    Error('\P{Nv=:=	+0015/002}');
     Expect(1, 3889, '\p{Nv=:\A15/2\z:}', "");;
     Expect(0, 3890, '\p{Nv=:\A15/2\z:}', "");;
-    Expect(1, 3889, '\p{Nv=0000000015/02}', "");
-    Expect(0, 3889, '\p{^Nv=0000000015/02}', "");
-    Expect(0, 3889, '\P{Nv=0000000015/02}', "");
-    Expect(1, 3889, '\P{^Nv=0000000015/02}', "");
-    Expect(0, 3890, '\p{Nv=0000000015/02}', "");
-    Expect(1, 3890, '\p{^Nv=0000000015/02}', "");
-    Expect(1, 3890, '\P{Nv=0000000015/02}', "");
-    Expect(0, 3890, '\P{^Nv=0000000015/02}', "");
+    Expect(1, 3889, '\p{Nv=+000015/000002}', "");
+    Expect(0, 3889, '\p{^Nv=+000015/000002}', "");
+    Expect(0, 3889, '\P{Nv=+000015/000002}', "");
+    Expect(1, 3889, '\P{^Nv=+000015/000002}', "");
+    Expect(0, 3890, '\p{Nv=+000015/000002}', "");
+    Expect(1, 3890, '\p{^Nv=+000015/000002}', "");
+    Expect(1, 3890, '\P{Nv=+000015/000002}', "");
+    Expect(0, 3890, '\P{^Nv=+000015/000002}', "");
     Expect(1, 3889, '\p{Nv=900/120}', "");
     Expect(0, 3889, '\p{^Nv=900/120}', "");
     Expect(0, 3889, '\P{Nv=900/120}', "");
@@ -74621,24 +75211,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3890, '\p{^Nv=7.50}', "");
     Expect(1, 3890, '\P{Nv=7.50}', "");
     Expect(0, 3890, '\P{^Nv=7.50}', "");
-    Error('\p{Is_Numeric_Value=_/a/0000000015/2}');
-    Error('\P{Is_Numeric_Value=_/a/0000000015/2}');
-    Expect(1, 3889, '\p{Is_Numeric_Value=00015/002}', "");
-    Expect(0, 3889, '\p{^Is_Numeric_Value=00015/002}', "");
-    Expect(0, 3889, '\P{Is_Numeric_Value=00015/002}', "");
-    Expect(1, 3889, '\P{^Is_Numeric_Value=00015/002}', "");
-    Expect(0, 3890, '\p{Is_Numeric_Value=00015/002}', "");
-    Expect(1, 3890, '\p{^Is_Numeric_Value=00015/002}', "");
-    Expect(1, 3890, '\P{Is_Numeric_Value=00015/002}', "");
-    Expect(0, 3890, '\P{^Is_Numeric_Value=00015/002}', "");
-    Expect(1, 3889, '\p{Is_Numeric_Value:	900/120}', "");
-    Expect(0, 3889, '\p{^Is_Numeric_Value:	900/120}', "");
-    Expect(0, 3889, '\P{Is_Numeric_Value:	900/120}', "");
-    Expect(1, 3889, '\P{^Is_Numeric_Value:	900/120}', "");
-    Expect(0, 3890, '\p{Is_Numeric_Value:	900/120}', "");
-    Expect(1, 3890, '\p{^Is_Numeric_Value:	900/120}', "");
-    Expect(1, 3890, '\P{Is_Numeric_Value:	900/120}', "");
-    Expect(0, 3890, '\P{^Is_Numeric_Value:	900/120}', "");
+    Error('\p{Is_Numeric_Value=_:=00000015/0000002}');
+    Error('\P{Is_Numeric_Value=_:=00000015/0000002}');
+    Expect(1, 3889, '\p{Is_Numeric_Value:015/0002}', "");
+    Expect(0, 3889, '\p{^Is_Numeric_Value:015/0002}', "");
+    Expect(0, 3889, '\P{Is_Numeric_Value:015/0002}', "");
+    Expect(1, 3889, '\P{^Is_Numeric_Value:015/0002}', "");
+    Expect(0, 3890, '\p{Is_Numeric_Value:015/0002}', "");
+    Expect(1, 3890, '\p{^Is_Numeric_Value:015/0002}', "");
+    Expect(1, 3890, '\P{Is_Numeric_Value:015/0002}', "");
+    Expect(0, 3890, '\P{^Is_Numeric_Value:015/0002}', "");
+    Expect(1, 3889, '\p{Is_Numeric_Value=900/120}', "");
+    Expect(0, 3889, '\p{^Is_Numeric_Value=900/120}', "");
+    Expect(0, 3889, '\P{Is_Numeric_Value=900/120}', "");
+    Expect(1, 3889, '\P{^Is_Numeric_Value=900/120}', "");
+    Expect(0, 3890, '\p{Is_Numeric_Value=900/120}', "");
+    Expect(1, 3890, '\p{^Is_Numeric_Value=900/120}', "");
+    Expect(1, 3890, '\P{Is_Numeric_Value=900/120}', "");
+    Expect(0, 3890, '\P{^Is_Numeric_Value=900/120}', "");
     Expect(1, 3889, '\p{Is_Numeric_Value=7.5e+00}', "");
     Expect(0, 3889, '\p{^Is_Numeric_Value=7.5e+00}', "");
     Expect(0, 3889, '\P{Is_Numeric_Value=7.5e+00}', "");
@@ -74663,24 +75253,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3890, '\p{^Is_Numeric_Value=7.50e+00}', "");
     Expect(1, 3890, '\P{Is_Numeric_Value=7.50e+00}', "");
     Expect(0, 3890, '\P{^Is_Numeric_Value=7.50e+00}', "");
-    Expect(1, 3889, '\p{Is_Numeric_Value: 7.50}', "");
-    Expect(0, 3889, '\p{^Is_Numeric_Value: 7.50}', "");
-    Expect(0, 3889, '\P{Is_Numeric_Value: 7.50}', "");
-    Expect(1, 3889, '\P{^Is_Numeric_Value: 7.50}', "");
-    Expect(0, 3890, '\p{Is_Numeric_Value: 7.50}', "");
-    Expect(1, 3890, '\p{^Is_Numeric_Value: 7.50}', "");
-    Expect(1, 3890, '\P{Is_Numeric_Value: 7.50}', "");
-    Expect(0, 3890, '\P{^Is_Numeric_Value: 7.50}', "");
-    Error('\p{Is_Nv=/a/-_015/2}');
-    Error('\P{Is_Nv=/a/-_015/2}');
-    Expect(1, 3889, '\p{Is_Nv=0000000015/0000002}', "");
-    Expect(0, 3889, '\p{^Is_Nv=0000000015/0000002}', "");
-    Expect(0, 3889, '\P{Is_Nv=0000000015/0000002}', "");
-    Expect(1, 3889, '\P{^Is_Nv=0000000015/0000002}', "");
-    Expect(0, 3890, '\p{Is_Nv=0000000015/0000002}', "");
-    Expect(1, 3890, '\p{^Is_Nv=0000000015/0000002}', "");
-    Expect(1, 3890, '\P{Is_Nv=0000000015/0000002}', "");
-    Expect(0, 3890, '\P{^Is_Nv=0000000015/0000002}', "");
+    Expect(1, 3889, '\p{Is_Numeric_Value=7.50}', "");
+    Expect(0, 3889, '\p{^Is_Numeric_Value=7.50}', "");
+    Expect(0, 3889, '\P{Is_Numeric_Value=7.50}', "");
+    Expect(1, 3889, '\P{^Is_Numeric_Value=7.50}', "");
+    Expect(0, 3890, '\p{Is_Numeric_Value=7.50}', "");
+    Expect(1, 3890, '\p{^Is_Numeric_Value=7.50}', "");
+    Expect(1, 3890, '\P{Is_Numeric_Value=7.50}', "");
+    Expect(0, 3890, '\P{^Is_Numeric_Value=7.50}', "");
+    Error('\p{Is_Nv=:=	-15/002}');
+    Error('\P{Is_Nv=:=	-15/002}');
+    Expect(1, 3889, '\p{Is_Nv=00000000015/002}', "");
+    Expect(0, 3889, '\p{^Is_Nv=00000000015/002}', "");
+    Expect(0, 3889, '\P{Is_Nv=00000000015/002}', "");
+    Expect(1, 3889, '\P{^Is_Nv=00000000015/002}', "");
+    Expect(0, 3890, '\p{Is_Nv=00000000015/002}', "");
+    Expect(1, 3890, '\p{^Is_Nv=00000000015/002}', "");
+    Expect(1, 3890, '\P{Is_Nv=00000000015/002}', "");
+    Expect(0, 3890, '\P{^Is_Nv=00000000015/002}', "");
     Expect(1, 3889, '\p{Is_Nv=900/120}', "");
     Expect(0, 3889, '\p{^Is_Nv=900/120}', "");
     Expect(0, 3889, '\P{Is_Nv=900/120}', "");
@@ -74721,18 +75311,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3890, '\p{^Is_Nv=7.50}', "");
     Expect(1, 3890, '\P{Is_Nv=7.50}', "");
     Expect(0, 3890, '\P{^Is_Nv=7.50}', "");
-    Error('\p{Numeric_Value=__000001_6/a/}');
-    Error('\P{Numeric_Value=__000001_6/a/}');
+    Error('\p{Numeric_Value=:=16}');
+    Error('\P{Numeric_Value=:=16}');
     Expect(1, 119536, '\p{Numeric_Value=:\A16\z:}', "");;
     Expect(0, 119537, '\p{Numeric_Value=:\A16\z:}', "");;
-    Expect(1, 119536, '\p{Numeric_Value=+000016}', "");
-    Expect(0, 119536, '\p{^Numeric_Value=+000016}', "");
-    Expect(0, 119536, '\P{Numeric_Value=+000016}', "");
-    Expect(1, 119536, '\P{^Numeric_Value=+000016}', "");
-    Expect(0, 119537, '\p{Numeric_Value=+000016}', "");
-    Expect(1, 119537, '\p{^Numeric_Value=+000016}', "");
-    Expect(1, 119537, '\P{Numeric_Value=+000016}', "");
-    Expect(0, 119537, '\P{^Numeric_Value=+000016}', "");
+    Expect(1, 119536, '\p{Numeric_Value=0000016}', "");
+    Expect(0, 119536, '\p{^Numeric_Value=0000016}', "");
+    Expect(0, 119536, '\P{Numeric_Value=0000016}', "");
+    Expect(1, 119536, '\P{^Numeric_Value=0000016}', "");
+    Expect(0, 119537, '\p{Numeric_Value=0000016}', "");
+    Expect(1, 119537, '\p{^Numeric_Value=0000016}', "");
+    Expect(1, 119537, '\P{Numeric_Value=0000016}', "");
+    Expect(0, 119537, '\P{^Numeric_Value=0000016}', "");
     Expect(1, 119536, '\p{Numeric_Value=1.600000000000000e+01}', "");
     Expect(0, 119536, '\p{^Numeric_Value=1.600000000000000e+01}', "");
     Expect(0, 119536, '\P{Numeric_Value=1.600000000000000e+01}', "");
@@ -74741,18 +75331,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119537, '\p{^Numeric_Value=1.600000000000000e+01}', "");
     Expect(1, 119537, '\P{Numeric_Value=1.600000000000000e+01}', "");
     Expect(0, 119537, '\P{^Numeric_Value=1.600000000000000e+01}', "");
-    Error('\p{Nv=:= 0016}');
-    Error('\P{Nv=:= 0016}');
+    Error('\p{Nv=:=  0001_6}');
+    Error('\P{Nv=:=  0001_6}');
     Expect(1, 119536, '\p{Nv=:\A16\z:}', "");;
     Expect(0, 119537, '\p{Nv=:\A16\z:}', "");;
-    Expect(1, 119536, '\p{Nv:   00_01_6}', "");
-    Expect(0, 119536, '\p{^Nv:   00_01_6}', "");
-    Expect(0, 119536, '\P{Nv:   00_01_6}', "");
-    Expect(1, 119536, '\P{^Nv:   00_01_6}', "");
-    Expect(0, 119537, '\p{Nv:   00_01_6}', "");
-    Expect(1, 119537, '\p{^Nv:   00_01_6}', "");
-    Expect(1, 119537, '\P{Nv:   00_01_6}', "");
-    Expect(0, 119537, '\P{^Nv:   00_01_6}', "");
+    Expect(1, 119536, '\p{Nv=+000_000_16}', "");
+    Expect(0, 119536, '\p{^Nv=+000_000_16}', "");
+    Expect(0, 119536, '\P{Nv=+000_000_16}', "");
+    Expect(1, 119536, '\P{^Nv=+000_000_16}', "");
+    Expect(0, 119537, '\p{Nv=+000_000_16}', "");
+    Expect(1, 119537, '\p{^Nv=+000_000_16}', "");
+    Expect(1, 119537, '\P{Nv=+000_000_16}', "");
+    Expect(0, 119537, '\P{^Nv=+000_000_16}', "");
     Expect(1, 119536, '\p{Nv=1.600000000000000e+01}', "");
     Expect(0, 119536, '\p{^Nv=1.600000000000000e+01}', "");
     Expect(0, 119536, '\P{Nv=1.600000000000000e+01}', "");
@@ -74761,16 +75351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119537, '\p{^Nv=1.600000000000000e+01}', "");
     Expect(1, 119537, '\P{Nv=1.600000000000000e+01}', "");
     Expect(0, 119537, '\P{^Nv=1.600000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=--1_6/a/}');
-    Error('\P{Is_Numeric_Value=--1_6/a/}');
-    Expect(1, 119536, '\p{Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(0, 119536, '\p{^Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(0, 119536, '\P{Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(1, 119536, '\P{^Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(0, 119537, '\p{Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(1, 119537, '\p{^Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(1, 119537, '\P{Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
-    Expect(0, 119537, '\P{^Is_Numeric_Value: 0_0_0_0_0_0_00016}', "");
+    Error('\p{Is_Numeric_Value=:=0_0_0_0_016}');
+    Error('\P{Is_Numeric_Value=:=0_0_0_0_016}');
+    Expect(1, 119536, '\p{Is_Numeric_Value=0016}', "");
+    Expect(0, 119536, '\p{^Is_Numeric_Value=0016}', "");
+    Expect(0, 119536, '\P{Is_Numeric_Value=0016}', "");
+    Expect(1, 119536, '\P{^Is_Numeric_Value=0016}', "");
+    Expect(0, 119537, '\p{Is_Numeric_Value=0016}', "");
+    Expect(1, 119537, '\p{^Is_Numeric_Value=0016}', "");
+    Expect(1, 119537, '\P{Is_Numeric_Value=0016}', "");
+    Expect(0, 119537, '\P{^Is_Numeric_Value=0016}', "");
     Expect(1, 119536, '\p{Is_Numeric_Value=1.600000000000000e+01}', "");
     Expect(0, 119536, '\p{^Is_Numeric_Value=1.600000000000000e+01}', "");
     Expect(0, 119536, '\P{Is_Numeric_Value=1.600000000000000e+01}', "");
@@ -74779,16 +75369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119537, '\p{^Is_Numeric_Value=1.600000000000000e+01}', "");
     Expect(1, 119537, '\P{Is_Numeric_Value=1.600000000000000e+01}', "");
     Expect(0, 119537, '\P{^Is_Numeric_Value=1.600000000000000e+01}', "");
-    Error('\p{Is_Nv:    :=+00_00_00_01_6}');
-    Error('\P{Is_Nv:    :=+00_00_00_01_6}');
-    Expect(1, 119536, '\p{Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(0, 119536, '\p{^Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(0, 119536, '\P{Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(1, 119536, '\P{^Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(0, 119537, '\p{Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(1, 119537, '\p{^Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(1, 119537, '\P{Is_Nv:   0_0_0_0_0_0_0_016}', "");
-    Expect(0, 119537, '\P{^Is_Nv:   0_0_0_0_0_0_0_016}', "");
+    Error('\p{Is_Nv=/a/--1_6}');
+    Error('\P{Is_Nv=/a/--1_6}');
+    Expect(1, 119536, '\p{Is_Nv:   0000016}', "");
+    Expect(0, 119536, '\p{^Is_Nv:   0000016}', "");
+    Expect(0, 119536, '\P{Is_Nv:   0000016}', "");
+    Expect(1, 119536, '\P{^Is_Nv:   0000016}', "");
+    Expect(0, 119537, '\p{Is_Nv:   0000016}', "");
+    Expect(1, 119537, '\p{^Is_Nv:   0000016}', "");
+    Expect(1, 119537, '\P{Is_Nv:   0000016}', "");
+    Expect(0, 119537, '\P{^Is_Nv:   0000016}', "");
     Expect(1, 119536, '\p{Is_Nv=1.600000000000000e+01}', "");
     Expect(0, 119536, '\p{^Is_Nv=1.600000000000000e+01}', "");
     Expect(0, 119536, '\P{Is_Nv=1.600000000000000e+01}', "");
@@ -74797,18 +75387,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119537, '\p{^Is_Nv=1.600000000000000e+01}', "");
     Expect(1, 119537, '\P{Is_Nv=1.600000000000000e+01}', "");
     Expect(0, 119537, '\P{^Is_Nv=1.600000000000000e+01}', "");
-    Error('\p{Numeric_Value=:=-	000017}');
-    Error('\P{Numeric_Value=:=-	000017}');
+    Error('\p{Numeric_Value=/a/_0_0_0_0_0_0_0_17}');
+    Error('\P{Numeric_Value=/a/_0_0_0_0_0_0_0_17}');
     Expect(1, 119537, '\p{Numeric_Value=:\A17\z:}', "");;
     Expect(0, 119538, '\p{Numeric_Value=:\A17\z:}', "");;
-    Expect(1, 119537, '\p{Numeric_Value=+17}', "");
-    Expect(0, 119537, '\p{^Numeric_Value=+17}', "");
-    Expect(0, 119537, '\P{Numeric_Value=+17}', "");
-    Expect(1, 119537, '\P{^Numeric_Value=+17}', "");
-    Expect(0, 119538, '\p{Numeric_Value=+17}', "");
-    Expect(1, 119538, '\p{^Numeric_Value=+17}', "");
-    Expect(1, 119538, '\P{Numeric_Value=+17}', "");
-    Expect(0, 119538, '\P{^Numeric_Value=+17}', "");
+    Expect(1, 119537, '\p{Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(0, 119537, '\p{^Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(0, 119537, '\P{Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(1, 119537, '\P{^Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(0, 119538, '\p{Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(1, 119538, '\p{^Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(1, 119538, '\P{Numeric_Value=0_0_0_0_0_0017}', "");
+    Expect(0, 119538, '\P{^Numeric_Value=0_0_0_0_0_0017}', "");
     Expect(1, 119537, '\p{Numeric_Value=1.700000000000000e+01}', "");
     Expect(0, 119537, '\p{^Numeric_Value=1.700000000000000e+01}', "");
     Expect(0, 119537, '\P{Numeric_Value=1.700000000000000e+01}', "");
@@ -74817,18 +75407,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119538, '\p{^Numeric_Value=1.700000000000000e+01}', "");
     Expect(1, 119538, '\P{Numeric_Value=1.700000000000000e+01}', "");
     Expect(0, 119538, '\P{^Numeric_Value=1.700000000000000e+01}', "");
-    Error('\p{Nv:		:=+17}');
-    Error('\P{Nv:		:=+17}');
+    Error('\p{Nv=_	0_0_0_0_0_0_0017/a/}');
+    Error('\P{Nv=_	0_0_0_0_0_0_0017/a/}');
     Expect(1, 119537, '\p{Nv=:\A17\z:}', "");;
     Expect(0, 119538, '\p{Nv=:\A17\z:}', "");;
-    Expect(1, 119537, '\p{Nv=000000017}', "");
-    Expect(0, 119537, '\p{^Nv=000000017}', "");
-    Expect(0, 119537, '\P{Nv=000000017}', "");
-    Expect(1, 119537, '\P{^Nv=000000017}', "");
-    Expect(0, 119538, '\p{Nv=000000017}', "");
-    Expect(1, 119538, '\p{^Nv=000000017}', "");
-    Expect(1, 119538, '\P{Nv=000000017}', "");
-    Expect(0, 119538, '\P{^Nv=000000017}', "");
+    Expect(1, 119537, '\p{Nv=00000_00001_7}', "");
+    Expect(0, 119537, '\p{^Nv=00000_00001_7}', "");
+    Expect(0, 119537, '\P{Nv=00000_00001_7}', "");
+    Expect(1, 119537, '\P{^Nv=00000_00001_7}', "");
+    Expect(0, 119538, '\p{Nv=00000_00001_7}', "");
+    Expect(1, 119538, '\p{^Nv=00000_00001_7}', "");
+    Expect(1, 119538, '\P{Nv=00000_00001_7}', "");
+    Expect(0, 119538, '\P{^Nv=00000_00001_7}', "");
     Expect(1, 119537, '\p{Nv=1.700000000000000e+01}', "");
     Expect(0, 119537, '\p{^Nv=1.700000000000000e+01}', "");
     Expect(0, 119537, '\P{Nv=1.700000000000000e+01}', "");
@@ -74837,34 +75427,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119538, '\p{^Nv=1.700000000000000e+01}', "");
     Expect(1, 119538, '\P{Nv=1.700000000000000e+01}', "");
     Expect(0, 119538, '\P{^Nv=1.700000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=:=-000017}');
-    Error('\P{Is_Numeric_Value=:=-000017}');
-    Expect(1, 119537, '\p{Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(0, 119537, '\p{^Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(0, 119537, '\P{Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(1, 119537, '\P{^Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(0, 119538, '\p{Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(1, 119538, '\p{^Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(1, 119538, '\P{Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(0, 119538, '\P{^Is_Numeric_Value=+0_0_0_0_17}', "");
-    Expect(1, 119537, '\p{Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(0, 119537, '\p{^Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(0, 119537, '\P{Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(1, 119537, '\P{^Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(0, 119538, '\p{Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(1, 119538, '\p{^Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(1, 119538, '\P{Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Expect(0, 119538, '\P{^Is_Numeric_Value:	1.700000000000000e+01}', "");
-    Error('\p{Is_Nv=:=	_0000000017}');
-    Error('\P{Is_Nv=:=	_0000000017}');
-    Expect(1, 119537, '\p{Is_Nv=+1_7}', "");
-    Expect(0, 119537, '\p{^Is_Nv=+1_7}', "");
-    Expect(0, 119537, '\P{Is_Nv=+1_7}', "");
-    Expect(1, 119537, '\P{^Is_Nv=+1_7}', "");
-    Expect(0, 119538, '\p{Is_Nv=+1_7}', "");
-    Expect(1, 119538, '\p{^Is_Nv=+1_7}', "");
-    Expect(1, 119538, '\P{Is_Nv=+1_7}', "");
-    Expect(0, 119538, '\P{^Is_Nv=+1_7}', "");
+    Error('\p{Is_Numeric_Value=_:=+0_0_0_0_0_0_0_0_0_17}');
+    Error('\P{Is_Numeric_Value=_:=+0_0_0_0_0_0_0_0_0_17}');
+    Expect(1, 119537, '\p{Is_Numeric_Value=+17}', "");
+    Expect(0, 119537, '\p{^Is_Numeric_Value=+17}', "");
+    Expect(0, 119537, '\P{Is_Numeric_Value=+17}', "");
+    Expect(1, 119537, '\P{^Is_Numeric_Value=+17}', "");
+    Expect(0, 119538, '\p{Is_Numeric_Value=+17}', "");
+    Expect(1, 119538, '\p{^Is_Numeric_Value=+17}', "");
+    Expect(1, 119538, '\P{Is_Numeric_Value=+17}', "");
+    Expect(0, 119538, '\P{^Is_Numeric_Value=+17}', "");
+    Expect(1, 119537, '\p{Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(0, 119537, '\p{^Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(0, 119537, '\P{Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(1, 119537, '\P{^Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(0, 119538, '\p{Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(1, 119538, '\p{^Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(1, 119538, '\P{Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Expect(0, 119538, '\P{^Is_Numeric_Value: 1.700000000000000e+01}', "");
+    Error('\p{Is_Nv=_/a/00_00_01_7}');
+    Error('\P{Is_Nv=_/a/00_00_01_7}');
+    Expect(1, 119537, '\p{Is_Nv=00000017}', "");
+    Expect(0, 119537, '\p{^Is_Nv=00000017}', "");
+    Expect(0, 119537, '\P{Is_Nv=00000017}', "");
+    Expect(1, 119537, '\P{^Is_Nv=00000017}', "");
+    Expect(0, 119538, '\p{Is_Nv=00000017}', "");
+    Expect(1, 119538, '\p{^Is_Nv=00000017}', "");
+    Expect(1, 119538, '\P{Is_Nv=00000017}', "");
+    Expect(0, 119538, '\P{^Is_Nv=00000017}', "");
     Expect(1, 119537, '\p{Is_Nv=1.700000000000000e+01}', "");
     Expect(0, 119537, '\p{^Is_Nv=1.700000000000000e+01}', "");
     Expect(0, 119537, '\P{Is_Nv=1.700000000000000e+01}', "");
@@ -74873,18 +75463,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119538, '\p{^Is_Nv=1.700000000000000e+01}', "");
     Expect(1, 119538, '\P{Is_Nv=1.700000000000000e+01}', "");
     Expect(0, 119538, '\P{^Is_Nv=1.700000000000000e+01}', "");
-    Error('\p{Numeric_Value=-_+000017/0000002/a/}');
-    Error('\P{Numeric_Value=-_+000017/0000002/a/}');
+    Error('\p{Numeric_Value=- +000000017/0002/a/}');
+    Error('\P{Numeric_Value=- +000000017/0002/a/}');
     Expect(1, 3890, '\p{Numeric_Value=:\A17/2\z:}', "");;
     Expect(0, 3891, '\p{Numeric_Value=:\A17/2\z:}', "");;
-    Expect(1, 3890, '\p{Numeric_Value=00017/02}', "");
-    Expect(0, 3890, '\p{^Numeric_Value=00017/02}', "");
-    Expect(0, 3890, '\P{Numeric_Value=00017/02}', "");
-    Expect(1, 3890, '\P{^Numeric_Value=00017/02}', "");
-    Expect(0, 3891, '\p{Numeric_Value=00017/02}', "");
-    Expect(1, 3891, '\p{^Numeric_Value=00017/02}', "");
-    Expect(1, 3891, '\P{Numeric_Value=00017/02}', "");
-    Expect(0, 3891, '\P{^Numeric_Value=00017/02}', "");
+    Expect(1, 3890, '\p{Numeric_Value=0000000017/002}', "");
+    Expect(0, 3890, '\p{^Numeric_Value=0000000017/002}', "");
+    Expect(0, 3890, '\P{Numeric_Value=0000000017/002}', "");
+    Expect(1, 3890, '\P{^Numeric_Value=0000000017/002}', "");
+    Expect(0, 3891, '\p{Numeric_Value=0000000017/002}', "");
+    Expect(1, 3891, '\p{^Numeric_Value=0000000017/002}', "");
+    Expect(1, 3891, '\P{Numeric_Value=0000000017/002}', "");
+    Expect(0, 3891, '\P{^Numeric_Value=0000000017/002}', "");
     Expect(1, 3890, '\p{Numeric_Value=1020/120}', "");
     Expect(0, 3890, '\p{^Numeric_Value=1020/120}', "");
     Expect(0, 3890, '\P{Numeric_Value=1020/120}', "");
@@ -74893,14 +75483,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Numeric_Value=1020/120}', "");
     Expect(1, 3891, '\P{Numeric_Value=1020/120}', "");
     Expect(0, 3891, '\P{^Numeric_Value=1020/120}', "");
-    Expect(1, 3890, '\p{Numeric_Value=8.5e+00}', "");
-    Expect(0, 3890, '\p{^Numeric_Value=8.5e+00}', "");
-    Expect(0, 3890, '\P{Numeric_Value=8.5e+00}', "");
-    Expect(1, 3890, '\P{^Numeric_Value=8.5e+00}', "");
-    Expect(0, 3891, '\p{Numeric_Value=8.5e+00}', "");
-    Expect(1, 3891, '\p{^Numeric_Value=8.5e+00}', "");
-    Expect(1, 3891, '\P{Numeric_Value=8.5e+00}', "");
-    Expect(0, 3891, '\P{^Numeric_Value=8.5e+00}', "");
+    Expect(1, 3890, '\p{Numeric_Value: 8.5e+00}', "");
+    Expect(0, 3890, '\p{^Numeric_Value: 8.5e+00}', "");
+    Expect(0, 3890, '\P{Numeric_Value: 8.5e+00}', "");
+    Expect(1, 3890, '\P{^Numeric_Value: 8.5e+00}', "");
+    Expect(0, 3891, '\p{Numeric_Value: 8.5e+00}', "");
+    Expect(1, 3891, '\p{^Numeric_Value: 8.5e+00}', "");
+    Expect(1, 3891, '\P{Numeric_Value: 8.5e+00}', "");
+    Expect(0, 3891, '\P{^Numeric_Value: 8.5e+00}', "");
     Expect(1, 3890, '\p{Numeric_Value=8.5}', "");
     Expect(0, 3890, '\p{^Numeric_Value=8.5}', "");
     Expect(0, 3890, '\P{Numeric_Value=8.5}', "");
@@ -74917,34 +75507,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Numeric_Value=8.50e+00}', "");
     Expect(1, 3891, '\P{Numeric_Value=8.50e+00}', "");
     Expect(0, 3891, '\P{^Numeric_Value=8.50e+00}', "");
-    Expect(1, 3890, '\p{Numeric_Value=8.50}', "");
-    Expect(0, 3890, '\p{^Numeric_Value=8.50}', "");
-    Expect(0, 3890, '\P{Numeric_Value=8.50}', "");
-    Expect(1, 3890, '\P{^Numeric_Value=8.50}', "");
-    Expect(0, 3891, '\p{Numeric_Value=8.50}', "");
-    Expect(1, 3891, '\p{^Numeric_Value=8.50}', "");
-    Expect(1, 3891, '\P{Numeric_Value=8.50}', "");
-    Expect(0, 3891, '\P{^Numeric_Value=8.50}', "");
-    Error('\p{Nv=/a/_	+000017/0000000002}');
-    Error('\P{Nv=/a/_	+000017/0000000002}');
+    Expect(1, 3890, '\p{Numeric_Value: 8.50}', "");
+    Expect(0, 3890, '\p{^Numeric_Value: 8.50}', "");
+    Expect(0, 3890, '\P{Numeric_Value: 8.50}', "");
+    Expect(1, 3890, '\P{^Numeric_Value: 8.50}', "");
+    Expect(0, 3891, '\p{Numeric_Value: 8.50}', "");
+    Expect(1, 3891, '\p{^Numeric_Value: 8.50}', "");
+    Expect(1, 3891, '\P{Numeric_Value: 8.50}', "");
+    Expect(0, 3891, '\P{^Numeric_Value: 8.50}', "");
+    Error('\p{Nv=:=	0017/0000000002}');
+    Error('\P{Nv=:=	0017/0000000002}');
     Expect(1, 3890, '\p{Nv=:\A17/2\z:}', "");;
     Expect(0, 3891, '\p{Nv=:\A17/2\z:}', "");;
-    Expect(1, 3890, '\p{Nv=000017/0000000002}', "");
-    Expect(0, 3890, '\p{^Nv=000017/0000000002}', "");
-    Expect(0, 3890, '\P{Nv=000017/0000000002}', "");
-    Expect(1, 3890, '\P{^Nv=000017/0000000002}', "");
-    Expect(0, 3891, '\p{Nv=000017/0000000002}', "");
-    Expect(1, 3891, '\p{^Nv=000017/0000000002}', "");
-    Expect(1, 3891, '\P{Nv=000017/0000000002}', "");
-    Expect(0, 3891, '\P{^Nv=000017/0000000002}', "");
-    Expect(1, 3890, '\p{Nv:	1020/120}', "");
-    Expect(0, 3890, '\p{^Nv:	1020/120}', "");
-    Expect(0, 3890, '\P{Nv:	1020/120}', "");
-    Expect(1, 3890, '\P{^Nv:	1020/120}', "");
-    Expect(0, 3891, '\p{Nv:	1020/120}', "");
-    Expect(1, 3891, '\p{^Nv:	1020/120}', "");
-    Expect(1, 3891, '\P{Nv:	1020/120}', "");
-    Expect(0, 3891, '\P{^Nv:	1020/120}', "");
+    Expect(1, 3890, '\p{Nv=00000000017/000000002}', "");
+    Expect(0, 3890, '\p{^Nv=00000000017/000000002}', "");
+    Expect(0, 3890, '\P{Nv=00000000017/000000002}', "");
+    Expect(1, 3890, '\P{^Nv=00000000017/000000002}', "");
+    Expect(0, 3891, '\p{Nv=00000000017/000000002}', "");
+    Expect(1, 3891, '\p{^Nv=00000000017/000000002}', "");
+    Expect(1, 3891, '\P{Nv=00000000017/000000002}', "");
+    Expect(0, 3891, '\P{^Nv=00000000017/000000002}', "");
+    Expect(1, 3890, '\p{Nv=1020/120}', "");
+    Expect(0, 3890, '\p{^Nv=1020/120}', "");
+    Expect(0, 3890, '\P{Nv=1020/120}', "");
+    Expect(1, 3890, '\P{^Nv=1020/120}', "");
+    Expect(0, 3891, '\p{Nv=1020/120}', "");
+    Expect(1, 3891, '\p{^Nv=1020/120}', "");
+    Expect(1, 3891, '\P{Nv=1020/120}', "");
+    Expect(0, 3891, '\P{^Nv=1020/120}', "");
     Expect(1, 3890, '\p{Nv=8.5e+00}', "");
     Expect(0, 3890, '\p{^Nv=8.5e+00}', "");
     Expect(0, 3890, '\P{Nv=8.5e+00}', "");
@@ -74977,24 +75567,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Nv=8.50}', "");
     Expect(1, 3891, '\P{Nv=8.50}', "");
     Expect(0, 3891, '\P{^Nv=8.50}', "");
-    Error('\p{Is_Numeric_Value=-_0017/0002:=}');
-    Error('\P{Is_Numeric_Value=-_0017/0002:=}');
-    Expect(1, 3890, '\p{Is_Numeric_Value: +017/00000002}', "");
-    Expect(0, 3890, '\p{^Is_Numeric_Value: +017/00000002}', "");
-    Expect(0, 3890, '\P{Is_Numeric_Value: +017/00000002}', "");
-    Expect(1, 3890, '\P{^Is_Numeric_Value: +017/00000002}', "");
-    Expect(0, 3891, '\p{Is_Numeric_Value: +017/00000002}', "");
-    Expect(1, 3891, '\p{^Is_Numeric_Value: +017/00000002}', "");
-    Expect(1, 3891, '\P{Is_Numeric_Value: +017/00000002}', "");
-    Expect(0, 3891, '\P{^Is_Numeric_Value: +017/00000002}', "");
-    Expect(1, 3890, '\p{Is_Numeric_Value=1020/120}', "");
-    Expect(0, 3890, '\p{^Is_Numeric_Value=1020/120}', "");
-    Expect(0, 3890, '\P{Is_Numeric_Value=1020/120}', "");
-    Expect(1, 3890, '\P{^Is_Numeric_Value=1020/120}', "");
-    Expect(0, 3891, '\p{Is_Numeric_Value=1020/120}', "");
-    Expect(1, 3891, '\p{^Is_Numeric_Value=1020/120}', "");
-    Expect(1, 3891, '\P{Is_Numeric_Value=1020/120}', "");
-    Expect(0, 3891, '\P{^Is_Numeric_Value=1020/120}', "");
+    Error('\p{Is_Numeric_Value=/a/_0017/0002}');
+    Error('\P{Is_Numeric_Value=/a/_0017/0002}');
+    Expect(1, 3890, '\p{Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(0, 3890, '\p{^Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(0, 3890, '\P{Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(1, 3890, '\P{^Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(0, 3891, '\p{Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(1, 3891, '\p{^Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(1, 3891, '\P{Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(0, 3891, '\P{^Is_Numeric_Value=0000000017/00000002}', "");
+    Expect(1, 3890, '\p{Is_Numeric_Value:   1020/120}', "");
+    Expect(0, 3890, '\p{^Is_Numeric_Value:   1020/120}', "");
+    Expect(0, 3890, '\P{Is_Numeric_Value:   1020/120}', "");
+    Expect(1, 3890, '\P{^Is_Numeric_Value:   1020/120}', "");
+    Expect(0, 3891, '\p{Is_Numeric_Value:   1020/120}', "");
+    Expect(1, 3891, '\p{^Is_Numeric_Value:   1020/120}', "");
+    Expect(1, 3891, '\P{Is_Numeric_Value:   1020/120}', "");
+    Expect(0, 3891, '\P{^Is_Numeric_Value:   1020/120}', "");
     Expect(1, 3890, '\p{Is_Numeric_Value=8.5e+00}', "");
     Expect(0, 3890, '\p{^Is_Numeric_Value=8.5e+00}', "");
     Expect(0, 3890, '\P{Is_Numeric_Value=8.5e+00}', "");
@@ -75027,16 +75617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Is_Numeric_Value=8.50}', "");
     Expect(1, 3891, '\P{Is_Numeric_Value=8.50}', "");
     Expect(0, 3891, '\P{^Is_Numeric_Value=8.50}', "");
-    Error('\p{Is_Nv=	:=+0000017/00002}');
-    Error('\P{Is_Nv=	:=+0000017/00002}');
-    Expect(1, 3890, '\p{Is_Nv=000000017/000002}', "");
-    Expect(0, 3890, '\p{^Is_Nv=000000017/000002}', "");
-    Expect(0, 3890, '\P{Is_Nv=000000017/000002}', "");
-    Expect(1, 3890, '\P{^Is_Nv=000000017/000002}', "");
-    Expect(0, 3891, '\p{Is_Nv=000000017/000002}', "");
-    Expect(1, 3891, '\p{^Is_Nv=000000017/000002}', "");
-    Expect(1, 3891, '\P{Is_Nv=000000017/000002}', "");
-    Expect(0, 3891, '\P{^Is_Nv=000000017/000002}', "");
+    Error('\p{Is_Nv=:=	_0000017/2}');
+    Error('\P{Is_Nv=:=	_0000017/2}');
+    Expect(1, 3890, '\p{Is_Nv=00000000017/002}', "");
+    Expect(0, 3890, '\p{^Is_Nv=00000000017/002}', "");
+    Expect(0, 3890, '\P{Is_Nv=00000000017/002}', "");
+    Expect(1, 3890, '\P{^Is_Nv=00000000017/002}', "");
+    Expect(0, 3891, '\p{Is_Nv=00000000017/002}', "");
+    Expect(1, 3891, '\p{^Is_Nv=00000000017/002}', "");
+    Expect(1, 3891, '\P{Is_Nv=00000000017/002}', "");
+    Expect(0, 3891, '\P{^Is_Nv=00000000017/002}', "");
     Expect(1, 3890, '\p{Is_Nv=1020/120}', "");
     Expect(0, 3890, '\p{^Is_Nv=1020/120}', "");
     Expect(0, 3890, '\P{Is_Nv=1020/120}', "");
@@ -75045,14 +75635,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Is_Nv=1020/120}', "");
     Expect(1, 3891, '\P{Is_Nv=1020/120}', "");
     Expect(0, 3891, '\P{^Is_Nv=1020/120}', "");
-    Expect(1, 3890, '\p{Is_Nv: 8.5e+00}', "");
-    Expect(0, 3890, '\p{^Is_Nv: 8.5e+00}', "");
-    Expect(0, 3890, '\P{Is_Nv: 8.5e+00}', "");
-    Expect(1, 3890, '\P{^Is_Nv: 8.5e+00}', "");
-    Expect(0, 3891, '\p{Is_Nv: 8.5e+00}', "");
-    Expect(1, 3891, '\p{^Is_Nv: 8.5e+00}', "");
-    Expect(1, 3891, '\P{Is_Nv: 8.5e+00}', "");
-    Expect(0, 3891, '\P{^Is_Nv: 8.5e+00}', "");
+    Expect(1, 3890, '\p{Is_Nv=8.5e+00}', "");
+    Expect(0, 3890, '\p{^Is_Nv=8.5e+00}', "");
+    Expect(0, 3890, '\P{Is_Nv=8.5e+00}', "");
+    Expect(1, 3890, '\P{^Is_Nv=8.5e+00}', "");
+    Expect(0, 3891, '\p{Is_Nv=8.5e+00}', "");
+    Expect(1, 3891, '\p{^Is_Nv=8.5e+00}', "");
+    Expect(1, 3891, '\P{Is_Nv=8.5e+00}', "");
+    Expect(0, 3891, '\P{^Is_Nv=8.5e+00}', "");
     Expect(1, 3890, '\p{Is_Nv=8.5}', "");
     Expect(0, 3890, '\p{^Is_Nv=8.5}', "");
     Expect(0, 3890, '\P{Is_Nv=8.5}', "");
@@ -75061,14 +75651,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Is_Nv=8.5}', "");
     Expect(1, 3891, '\P{Is_Nv=8.5}', "");
     Expect(0, 3891, '\P{^Is_Nv=8.5}', "");
-    Expect(1, 3890, '\p{Is_Nv:	8.50e+00}', "");
-    Expect(0, 3890, '\p{^Is_Nv:	8.50e+00}', "");
-    Expect(0, 3890, '\P{Is_Nv:	8.50e+00}', "");
-    Expect(1, 3890, '\P{^Is_Nv:	8.50e+00}', "");
-    Expect(0, 3891, '\p{Is_Nv:	8.50e+00}', "");
-    Expect(1, 3891, '\p{^Is_Nv:	8.50e+00}', "");
-    Expect(1, 3891, '\P{Is_Nv:	8.50e+00}', "");
-    Expect(0, 3891, '\P{^Is_Nv:	8.50e+00}', "");
+    Expect(1, 3890, '\p{Is_Nv:   8.50e+00}', "");
+    Expect(0, 3890, '\p{^Is_Nv:   8.50e+00}', "");
+    Expect(0, 3890, '\P{Is_Nv:   8.50e+00}', "");
+    Expect(1, 3890, '\P{^Is_Nv:   8.50e+00}', "");
+    Expect(0, 3891, '\p{Is_Nv:   8.50e+00}', "");
+    Expect(1, 3891, '\p{^Is_Nv:   8.50e+00}', "");
+    Expect(1, 3891, '\P{Is_Nv:   8.50e+00}', "");
+    Expect(0, 3891, '\P{^Is_Nv:   8.50e+00}', "");
     Expect(1, 3890, '\p{Is_Nv=8.50}', "");
     Expect(0, 3890, '\p{^Is_Nv=8.50}', "");
     Expect(0, 3890, '\P{Is_Nv=8.50}', "");
@@ -75077,18 +75667,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3891, '\p{^Is_Nv=8.50}', "");
     Expect(1, 3891, '\P{Is_Nv=8.50}', "");
     Expect(0, 3891, '\P{^Is_Nv=8.50}', "");
-    Error('\p{Numeric_Value=	/a/0001_8}');
-    Error('\P{Numeric_Value=	/a/0001_8}');
+    Error('\p{Numeric_Value=/a/_+00000018}');
+    Error('\P{Numeric_Value=/a/_+00000018}');
     Expect(1, 119538, '\p{Numeric_Value=:\A18\z:}', "");;
     Expect(0, 119539, '\p{Numeric_Value=:\A18\z:}', "");;
-    Expect(1, 119538, '\p{Numeric_Value=+001_8}', "");
-    Expect(0, 119538, '\p{^Numeric_Value=+001_8}', "");
-    Expect(0, 119538, '\P{Numeric_Value=+001_8}', "");
-    Expect(1, 119538, '\P{^Numeric_Value=+001_8}', "");
-    Expect(0, 119539, '\p{Numeric_Value=+001_8}', "");
-    Expect(1, 119539, '\p{^Numeric_Value=+001_8}', "");
-    Expect(1, 119539, '\P{Numeric_Value=+001_8}', "");
-    Expect(0, 119539, '\P{^Numeric_Value=+001_8}', "");
+    Expect(1, 119538, '\p{Numeric_Value=0018}', "");
+    Expect(0, 119538, '\p{^Numeric_Value=0018}', "");
+    Expect(0, 119538, '\P{Numeric_Value=0018}', "");
+    Expect(1, 119538, '\P{^Numeric_Value=0018}', "");
+    Expect(0, 119539, '\p{Numeric_Value=0018}', "");
+    Expect(1, 119539, '\p{^Numeric_Value=0018}', "");
+    Expect(1, 119539, '\P{Numeric_Value=0018}', "");
+    Expect(0, 119539, '\P{^Numeric_Value=0018}', "");
     Expect(1, 119538, '\p{Numeric_Value=1.800000000000000e+01}', "");
     Expect(0, 119538, '\p{^Numeric_Value=1.800000000000000e+01}', "");
     Expect(0, 119538, '\P{Numeric_Value=1.800000000000000e+01}', "");
@@ -75097,54 +75687,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119539, '\p{^Numeric_Value=1.800000000000000e+01}', "");
     Expect(1, 119539, '\P{Numeric_Value=1.800000000000000e+01}', "");
     Expect(0, 119539, '\P{^Numeric_Value=1.800000000000000e+01}', "");
-    Error('\p{Nv=_0_0_18/a/}');
-    Error('\P{Nv=_0_0_18/a/}');
+    Error('\p{Nv=-/a/0_0_0_0_0_0_0018}');
+    Error('\P{Nv=-/a/0_0_0_0_0_0_0018}');
     Expect(1, 119538, '\p{Nv=:\A18\z:}', "");;
     Expect(0, 119539, '\p{Nv=:\A18\z:}', "");;
-    Expect(1, 119538, '\p{Nv=+018}', "");
-    Expect(0, 119538, '\p{^Nv=+018}', "");
-    Expect(0, 119538, '\P{Nv=+018}', "");
-    Expect(1, 119538, '\P{^Nv=+018}', "");
-    Expect(0, 119539, '\p{Nv=+018}', "");
-    Expect(1, 119539, '\p{^Nv=+018}', "");
-    Expect(1, 119539, '\P{Nv=+018}', "");
-    Expect(0, 119539, '\P{^Nv=+018}', "");
-    Expect(1, 119538, '\p{Nv:1.800000000000000e+01}', "");
-    Expect(0, 119538, '\p{^Nv:1.800000000000000e+01}', "");
-    Expect(0, 119538, '\P{Nv:1.800000000000000e+01}', "");
-    Expect(1, 119538, '\P{^Nv:1.800000000000000e+01}', "");
-    Expect(0, 119539, '\p{Nv:1.800000000000000e+01}', "");
-    Expect(1, 119539, '\p{^Nv:1.800000000000000e+01}', "");
-    Expect(1, 119539, '\P{Nv:1.800000000000000e+01}', "");
-    Expect(0, 119539, '\P{^Nv:1.800000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value= /a/+00018}');
-    Error('\P{Is_Numeric_Value= /a/+00018}');
-    Expect(1, 119538, '\p{Is_Numeric_Value=+0018}', "");
-    Expect(0, 119538, '\p{^Is_Numeric_Value=+0018}', "");
-    Expect(0, 119538, '\P{Is_Numeric_Value=+0018}', "");
-    Expect(1, 119538, '\P{^Is_Numeric_Value=+0018}', "");
-    Expect(0, 119539, '\p{Is_Numeric_Value=+0018}', "");
-    Expect(1, 119539, '\p{^Is_Numeric_Value=+0018}', "");
-    Expect(1, 119539, '\P{Is_Numeric_Value=+0018}', "");
-    Expect(0, 119539, '\P{^Is_Numeric_Value=+0018}', "");
-    Expect(1, 119538, '\p{Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(0, 119538, '\p{^Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(0, 119538, '\P{Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(1, 119538, '\P{^Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(0, 119539, '\p{Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(1, 119539, '\p{^Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(1, 119539, '\P{Is_Numeric_Value=1.800000000000000e+01}', "");
-    Expect(0, 119539, '\P{^Is_Numeric_Value=1.800000000000000e+01}', "");
-    Error('\p{Is_Nv=	0018/a/}');
-    Error('\P{Is_Nv=	0018/a/}');
-    Expect(1, 119538, '\p{Is_Nv=00000018}', "");
-    Expect(0, 119538, '\p{^Is_Nv=00000018}', "");
-    Expect(0, 119538, '\P{Is_Nv=00000018}', "");
-    Expect(1, 119538, '\P{^Is_Nv=00000018}', "");
-    Expect(0, 119539, '\p{Is_Nv=00000018}', "");
-    Expect(1, 119539, '\p{^Is_Nv=00000018}', "");
-    Expect(1, 119539, '\P{Is_Nv=00000018}', "");
-    Expect(0, 119539, '\P{^Is_Nv=00000018}', "");
+    Expect(1, 119538, '\p{Nv=000000018}', "");
+    Expect(0, 119538, '\p{^Nv=000000018}', "");
+    Expect(0, 119538, '\P{Nv=000000018}', "");
+    Expect(1, 119538, '\P{^Nv=000000018}', "");
+    Expect(0, 119539, '\p{Nv=000000018}', "");
+    Expect(1, 119539, '\p{^Nv=000000018}', "");
+    Expect(1, 119539, '\P{Nv=000000018}', "");
+    Expect(0, 119539, '\P{^Nv=000000018}', "");
+    Expect(1, 119538, '\p{Nv=1.800000000000000e+01}', "");
+    Expect(0, 119538, '\p{^Nv=1.800000000000000e+01}', "");
+    Expect(0, 119538, '\P{Nv=1.800000000000000e+01}', "");
+    Expect(1, 119538, '\P{^Nv=1.800000000000000e+01}', "");
+    Expect(0, 119539, '\p{Nv=1.800000000000000e+01}', "");
+    Expect(1, 119539, '\p{^Nv=1.800000000000000e+01}', "");
+    Expect(1, 119539, '\P{Nv=1.800000000000000e+01}', "");
+    Expect(0, 119539, '\P{^Nv=1.800000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value=_-00001_8:=}');
+    Error('\P{Is_Numeric_Value=_-00001_8:=}');
+    Expect(1, 119538, '\p{Is_Numeric_Value=+000000018}', "");
+    Expect(0, 119538, '\p{^Is_Numeric_Value=+000000018}', "");
+    Expect(0, 119538, '\P{Is_Numeric_Value=+000000018}', "");
+    Expect(1, 119538, '\P{^Is_Numeric_Value=+000000018}', "");
+    Expect(0, 119539, '\p{Is_Numeric_Value=+000000018}', "");
+    Expect(1, 119539, '\p{^Is_Numeric_Value=+000000018}', "");
+    Expect(1, 119539, '\P{Is_Numeric_Value=+000000018}', "");
+    Expect(0, 119539, '\P{^Is_Numeric_Value=+000000018}', "");
+    Expect(1, 119538, '\p{Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(0, 119538, '\p{^Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(0, 119538, '\P{Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(1, 119538, '\P{^Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(0, 119539, '\p{Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(1, 119539, '\p{^Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(1, 119539, '\P{Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Expect(0, 119539, '\P{^Is_Numeric_Value:   1.800000000000000e+01}', "");
+    Error('\p{Is_Nv=/a/ 	0_0_0_0_0_0_0_018}');
+    Error('\P{Is_Nv=/a/ 	0_0_0_0_0_0_0_018}');
+    Expect(1, 119538, '\p{Is_Nv:01_8}', "");
+    Expect(0, 119538, '\p{^Is_Nv:01_8}', "");
+    Expect(0, 119538, '\P{Is_Nv:01_8}', "");
+    Expect(1, 119538, '\P{^Is_Nv:01_8}', "");
+    Expect(0, 119539, '\p{Is_Nv:01_8}', "");
+    Expect(1, 119539, '\p{^Is_Nv:01_8}', "");
+    Expect(1, 119539, '\P{Is_Nv:01_8}', "");
+    Expect(0, 119539, '\P{^Is_Nv:01_8}', "");
     Expect(1, 119538, '\p{Is_Nv=1.800000000000000e+01}', "");
     Expect(0, 119538, '\p{^Is_Nv=1.800000000000000e+01}', "");
     Expect(0, 119538, '\P{Is_Nv=1.800000000000000e+01}', "");
@@ -75153,18 +75743,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119539, '\p{^Is_Nv=1.800000000000000e+01}', "");
     Expect(1, 119539, '\P{Is_Nv=1.800000000000000e+01}', "");
     Expect(0, 119539, '\P{^Is_Nv=1.800000000000000e+01}', "");
-    Error('\p{Numeric_Value=-00_00_19:=}');
-    Error('\P{Numeric_Value=-00_00_19:=}');
+    Error('\p{Numeric_Value=_ 0_0_0_19:=}');
+    Error('\P{Numeric_Value=_ 0_0_0_19:=}');
     Expect(1, 119539, '\p{Numeric_Value=:\A19\z:}', "");;
     Expect(0, 119540, '\p{Numeric_Value=:\A19\z:}', "");;
-    Expect(1, 119539, '\p{Numeric_Value=+0019}', "");
-    Expect(0, 119539, '\p{^Numeric_Value=+0019}', "");
-    Expect(0, 119539, '\P{Numeric_Value=+0019}', "");
-    Expect(1, 119539, '\P{^Numeric_Value=+0019}', "");
-    Expect(0, 119540, '\p{Numeric_Value=+0019}', "");
-    Expect(1, 119540, '\p{^Numeric_Value=+0019}', "");
-    Expect(1, 119540, '\P{Numeric_Value=+0019}', "");
-    Expect(0, 119540, '\P{^Numeric_Value=+0019}', "");
+    Expect(1, 119539, '\p{Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119539, '\p{^Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119539, '\P{Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(1, 119539, '\P{^Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119540, '\p{Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(1, 119540, '\p{^Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(1, 119540, '\P{Numeric_Value=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119540, '\P{^Numeric_Value=0_0_0_0_0_0_0019}', "");
     Expect(1, 119539, '\p{Numeric_Value=1.900000000000000e+01}', "");
     Expect(0, 119539, '\p{^Numeric_Value=1.900000000000000e+01}', "");
     Expect(0, 119539, '\P{Numeric_Value=1.900000000000000e+01}', "");
@@ -75173,8 +75763,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119540, '\p{^Numeric_Value=1.900000000000000e+01}', "");
     Expect(1, 119540, '\P{Numeric_Value=1.900000000000000e+01}', "");
     Expect(0, 119540, '\P{^Numeric_Value=1.900000000000000e+01}', "");
-    Error('\p{Nv=-:=0000000019}');
-    Error('\P{Nv=-:=0000000019}');
+    Error('\p{Nv=_000019/a/}');
+    Error('\P{Nv=_000019/a/}');
     Expect(1, 119539, '\p{Nv=:\A19\z:}', "");;
     Expect(0, 119540, '\p{Nv=:\A19\z:}', "");;
     Expect(1, 119539, '\p{Nv=0000000019}', "");
@@ -75193,34 +75783,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119540, '\p{^Nv=1.900000000000000e+01}', "");
     Expect(1, 119540, '\P{Nv=1.900000000000000e+01}', "");
     Expect(0, 119540, '\P{^Nv=1.900000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=		+01_9:=}');
-    Error('\P{Is_Numeric_Value=		+01_9:=}');
-    Expect(1, 119539, '\p{Is_Numeric_Value=+00000000019}', "");
-    Expect(0, 119539, '\p{^Is_Numeric_Value=+00000000019}', "");
-    Expect(0, 119539, '\P{Is_Numeric_Value=+00000000019}', "");
-    Expect(1, 119539, '\P{^Is_Numeric_Value=+00000000019}', "");
-    Expect(0, 119540, '\p{Is_Numeric_Value=+00000000019}', "");
-    Expect(1, 119540, '\p{^Is_Numeric_Value=+00000000019}', "");
-    Expect(1, 119540, '\P{Is_Numeric_Value=+00000000019}', "");
-    Expect(0, 119540, '\P{^Is_Numeric_Value=+00000000019}', "");
-    Expect(1, 119539, '\p{Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(0, 119539, '\p{^Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(0, 119539, '\P{Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(1, 119539, '\P{^Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(0, 119540, '\p{Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(1, 119540, '\p{^Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(1, 119540, '\P{Is_Numeric_Value=1.900000000000000e+01}', "");
-    Expect(0, 119540, '\P{^Is_Numeric_Value=1.900000000000000e+01}', "");
-    Error('\p{Is_Nv:		0_0_0_019/a/}');
-    Error('\P{Is_Nv:		0_0_0_019/a/}');
-    Expect(1, 119539, '\p{Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(0, 119539, '\p{^Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(0, 119539, '\P{Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(1, 119539, '\P{^Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(0, 119540, '\p{Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(1, 119540, '\p{^Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(1, 119540, '\P{Is_Nv=0_0_0_0_0_00019}', "");
-    Expect(0, 119540, '\P{^Is_Nv=0_0_0_0_0_00019}', "");
+    Error('\p{Is_Numeric_Value=:=		000_001_9}');
+    Error('\P{Is_Numeric_Value=:=		000_001_9}');
+    Expect(1, 119539, '\p{Is_Numeric_Value=00000000019}', "");
+    Expect(0, 119539, '\p{^Is_Numeric_Value=00000000019}', "");
+    Expect(0, 119539, '\P{Is_Numeric_Value=00000000019}', "");
+    Expect(1, 119539, '\P{^Is_Numeric_Value=00000000019}', "");
+    Expect(0, 119540, '\p{Is_Numeric_Value=00000000019}', "");
+    Expect(1, 119540, '\p{^Is_Numeric_Value=00000000019}', "");
+    Expect(1, 119540, '\P{Is_Numeric_Value=00000000019}', "");
+    Expect(0, 119540, '\P{^Is_Numeric_Value=00000000019}', "");
+    Expect(1, 119539, '\p{Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(0, 119539, '\p{^Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(0, 119539, '\P{Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(1, 119539, '\P{^Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(0, 119540, '\p{Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(1, 119540, '\p{^Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(1, 119540, '\P{Is_Numeric_Value:1.900000000000000e+01}', "");
+    Expect(0, 119540, '\P{^Is_Numeric_Value:1.900000000000000e+01}', "");
+    Error('\p{Is_Nv=/a/_-00_00_00_01_9}');
+    Error('\P{Is_Nv=/a/_-00_00_00_01_9}');
+    Expect(1, 119539, '\p{Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119539, '\p{^Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119539, '\P{Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(1, 119539, '\P{^Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119540, '\p{Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(1, 119540, '\p{^Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(1, 119540, '\P{Is_Nv=0_0_0_0_0_0_0019}', "");
+    Expect(0, 119540, '\P{^Is_Nv=0_0_0_0_0_0_0019}', "");
     Expect(1, 119539, '\p{Is_Nv=1.900000000000000e+01}', "");
     Expect(0, 119539, '\p{^Is_Nv=1.900000000000000e+01}', "");
     Expect(0, 119539, '\P{Is_Nv=1.900000000000000e+01}', "");
@@ -75229,18 +75819,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 119540, '\p{^Is_Nv=1.900000000000000e+01}', "");
     Expect(1, 119540, '\P{Is_Nv=1.900000000000000e+01}', "");
     Expect(0, 119540, '\P{^Is_Nv=1.900000000000000e+01}', "");
-    Error('\p{Numeric_Value:    /a/2}');
-    Error('\P{Numeric_Value:    /a/2}');
+    Error('\p{Numeric_Value=/a/00002}');
+    Error('\P{Numeric_Value=/a/00002}');
     Expect(1, 140176, '\p{Numeric_Value=:\A2\z:}', "");;
     Expect(0, 140177, '\p{Numeric_Value=:\A2\z:}', "");;
-    Expect(1, 140176, '\p{Numeric_Value:	0000000_2}', "");
-    Expect(0, 140176, '\p{^Numeric_Value:	0000000_2}', "");
-    Expect(0, 140176, '\P{Numeric_Value:	0000000_2}', "");
-    Expect(1, 140176, '\P{^Numeric_Value:	0000000_2}', "");
-    Expect(0, 140177, '\p{Numeric_Value:	0000000_2}', "");
-    Expect(1, 140177, '\p{^Numeric_Value:	0000000_2}', "");
-    Expect(1, 140177, '\P{Numeric_Value:	0000000_2}', "");
-    Expect(0, 140177, '\P{^Numeric_Value:	0000000_2}', "");
+    Expect(1, 140176, '\p{Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140176, '\p{^Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140176, '\P{Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(1, 140176, '\P{^Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140177, '\p{Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(1, 140177, '\p{^Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(1, 140177, '\P{Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140177, '\P{^Numeric_Value=0_0_0_0_0_02}', "");
     Expect(1, 140176, '\p{Numeric_Value=2.000000000000000e+00}', "");
     Expect(0, 140176, '\p{^Numeric_Value=2.000000000000000e+00}', "");
     Expect(0, 140176, '\P{Numeric_Value=2.000000000000000e+00}', "");
@@ -75249,18 +75839,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 140177, '\p{^Numeric_Value=2.000000000000000e+00}', "");
     Expect(1, 140177, '\P{Numeric_Value=2.000000000000000e+00}', "");
     Expect(0, 140177, '\P{^Numeric_Value=2.000000000000000e+00}', "");
-    Error('\p{Nv=_	2/a/}');
-    Error('\P{Nv=_	2/a/}');
+    Error('\p{Nv= 	+000_2:=}');
+    Error('\P{Nv= 	+000_2:=}');
     Expect(1, 140176, '\p{Nv=:\A2\z:}', "");;
     Expect(0, 140177, '\p{Nv=:\A2\z:}', "");;
-    Expect(1, 140176, '\p{Nv=00_2}', "");
-    Expect(0, 140176, '\p{^Nv=00_2}', "");
-    Expect(0, 140176, '\P{Nv=00_2}', "");
-    Expect(1, 140176, '\P{^Nv=00_2}', "");
-    Expect(0, 140177, '\p{Nv=00_2}', "");
-    Expect(1, 140177, '\p{^Nv=00_2}', "");
-    Expect(1, 140177, '\P{Nv=00_2}', "");
-    Expect(0, 140177, '\P{^Nv=00_2}', "");
+    Expect(1, 140176, '\p{Nv=+0000000_2}', "");
+    Expect(0, 140176, '\p{^Nv=+0000000_2}', "");
+    Expect(0, 140176, '\P{Nv=+0000000_2}', "");
+    Expect(1, 140176, '\P{^Nv=+0000000_2}', "");
+    Expect(0, 140177, '\p{Nv=+0000000_2}', "");
+    Expect(1, 140177, '\p{^Nv=+0000000_2}', "");
+    Expect(1, 140177, '\P{Nv=+0000000_2}', "");
+    Expect(0, 140177, '\P{^Nv=+0000000_2}', "");
     Expect(1, 140176, '\p{Nv=2.000000000000000e+00}', "");
     Expect(0, 140176, '\p{^Nv=2.000000000000000e+00}', "");
     Expect(0, 140176, '\P{Nv=2.000000000000000e+00}', "");
@@ -75269,16 +75859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 140177, '\p{^Nv=2.000000000000000e+00}', "");
     Expect(1, 140177, '\P{Nv=2.000000000000000e+00}', "");
     Expect(0, 140177, '\P{^Nv=2.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=:=-	+000_000_02}');
-    Error('\P{Is_Numeric_Value=:=-	+000_000_02}');
-    Expect(1, 140176, '\p{Is_Numeric_Value=002}', "");
-    Expect(0, 140176, '\p{^Is_Numeric_Value=002}', "");
-    Expect(0, 140176, '\P{Is_Numeric_Value=002}', "");
-    Expect(1, 140176, '\P{^Is_Numeric_Value=002}', "");
-    Expect(0, 140177, '\p{Is_Numeric_Value=002}', "");
-    Expect(1, 140177, '\p{^Is_Numeric_Value=002}', "");
-    Expect(1, 140177, '\P{Is_Numeric_Value=002}', "");
-    Expect(0, 140177, '\P{^Is_Numeric_Value=002}', "");
+    Error('\p{Is_Numeric_Value=	/a/00000002}');
+    Error('\P{Is_Numeric_Value=	/a/00000002}');
+    Expect(1, 140176, '\p{Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140176, '\p{^Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140176, '\P{Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(1, 140176, '\P{^Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140177, '\p{Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(1, 140177, '\p{^Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(1, 140177, '\P{Is_Numeric_Value=0_0_0_0_0_02}', "");
+    Expect(0, 140177, '\P{^Is_Numeric_Value=0_0_0_0_0_02}', "");
     Expect(1, 140176, '\p{Is_Numeric_Value=2.000000000000000e+00}', "");
     Expect(0, 140176, '\p{^Is_Numeric_Value=2.000000000000000e+00}', "");
     Expect(0, 140176, '\P{Is_Numeric_Value=2.000000000000000e+00}', "");
@@ -75287,16 +75877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 140177, '\p{^Is_Numeric_Value=2.000000000000000e+00}', "");
     Expect(1, 140177, '\P{Is_Numeric_Value=2.000000000000000e+00}', "");
     Expect(0, 140177, '\P{^Is_Numeric_Value=2.000000000000000e+00}', "");
-    Error('\p{Is_Nv= _000002/a/}');
-    Error('\P{Is_Nv= _000002/a/}');
-    Expect(1, 140176, '\p{Is_Nv=00002}', "");
-    Expect(0, 140176, '\p{^Is_Nv=00002}', "");
-    Expect(0, 140176, '\P{Is_Nv=00002}', "");
-    Expect(1, 140176, '\P{^Is_Nv=00002}', "");
-    Expect(0, 140177, '\p{Is_Nv=00002}', "");
-    Expect(1, 140177, '\p{^Is_Nv=00002}', "");
-    Expect(1, 140177, '\P{Is_Nv=00002}', "");
-    Expect(0, 140177, '\P{^Is_Nv=00002}', "");
+    Error('\p{Is_Nv:		 +000002:=}');
+    Error('\P{Is_Nv:		 +000002:=}');
+    Expect(1, 140176, '\p{Is_Nv=+002}', "");
+    Expect(0, 140176, '\p{^Is_Nv=+002}', "");
+    Expect(0, 140176, '\P{Is_Nv=+002}', "");
+    Expect(1, 140176, '\P{^Is_Nv=+002}', "");
+    Expect(0, 140177, '\p{Is_Nv=+002}', "");
+    Expect(1, 140177, '\p{^Is_Nv=+002}', "");
+    Expect(1, 140177, '\P{Is_Nv=+002}', "");
+    Expect(0, 140177, '\P{^Is_Nv=+002}', "");
     Expect(1, 140176, '\p{Is_Nv=2.000000000000000e+00}', "");
     Expect(0, 140176, '\p{^Is_Nv=2.000000000000000e+00}', "");
     Expect(0, 140176, '\P{Is_Nv=2.000000000000000e+00}', "");
@@ -75305,18 +75895,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 140177, '\p{^Is_Nv=2.000000000000000e+00}', "");
     Expect(1, 140177, '\P{Is_Nv=2.000000000000000e+00}', "");
     Expect(0, 140177, '\P{^Is_Nv=2.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=	0000002/00000003/a/}');
-    Error('\P{Numeric_Value=	0000002/00000003/a/}');
+    Error('\p{Numeric_Value=/a/ 	+2/3}');
+    Error('\P{Numeric_Value=/a/ 	+2/3}');
     Expect(1, 74854, '\p{Numeric_Value=:\A2/3\z:}', "");;
     Expect(0, 74855, '\p{Numeric_Value=:\A2/3\z:}', "");;
-    Expect(1, 74854, '\p{Numeric_Value=+02/000003}', "");
-    Expect(0, 74854, '\p{^Numeric_Value=+02/000003}', "");
-    Expect(0, 74854, '\P{Numeric_Value=+02/000003}', "");
-    Expect(1, 74854, '\P{^Numeric_Value=+02/000003}', "");
-    Expect(0, 74855, '\p{Numeric_Value=+02/000003}', "");
-    Expect(1, 74855, '\p{^Numeric_Value=+02/000003}', "");
-    Expect(1, 74855, '\P{Numeric_Value=+02/000003}', "");
-    Expect(0, 74855, '\P{^Numeric_Value=+02/000003}', "");
+    Expect(1, 74854, '\p{Numeric_Value=+0000000002/000003}', "");
+    Expect(0, 74854, '\p{^Numeric_Value=+0000000002/000003}', "");
+    Expect(0, 74854, '\P{Numeric_Value=+0000000002/000003}', "");
+    Expect(1, 74854, '\P{^Numeric_Value=+0000000002/000003}', "");
+    Expect(0, 74855, '\p{Numeric_Value=+0000000002/000003}', "");
+    Expect(1, 74855, '\p{^Numeric_Value=+0000000002/000003}', "");
+    Expect(1, 74855, '\P{Numeric_Value=+0000000002/000003}', "");
+    Expect(0, 74855, '\P{^Numeric_Value=+0000000002/000003}', "");
     Expect(1, 74854, '\p{Numeric_Value=120/180}', "");
     Expect(0, 74854, '\p{^Numeric_Value=120/180}', "");
     Expect(0, 74854, '\P{Numeric_Value=120/180}', "");
@@ -75341,8 +75931,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Numeric_Value=6.667e-01}', "");
     Expect(1, 74855, '\P{Numeric_Value=6.667e-01}', "");
     Expect(0, 74855, '\P{^Numeric_Value=6.667e-01}', "");
-    Error('\p{Numeric_Value:0.667}');
-    Error('\P{Numeric_Value:0.667}');
+    Error('\p{Numeric_Value=0.667}');
+    Error('\P{Numeric_Value=0.667}');
     Expect(1, 74854, '\p{Numeric_Value=6.6667e-01}', "");
     Expect(0, 74854, '\p{^Numeric_Value=6.6667e-01}', "");
     Expect(0, 74854, '\P{Numeric_Value=6.6667e-01}', "");
@@ -75375,18 +75965,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Numeric_Value=0.66667}', "");
     Expect(1, 74855, '\P{Numeric_Value=0.66667}', "");
     Expect(0, 74855, '\P{^Numeric_Value=0.66667}', "");
-    Error('\p{Nv=-/a/000000002/00003}');
-    Error('\P{Nv=-/a/000000002/00003}');
+    Error('\p{Nv=_-002/000000003/a/}');
+    Error('\P{Nv=_-002/000000003/a/}');
     Expect(1, 74854, '\p{Nv=:\A2/3\z:}', "");;
     Expect(0, 74855, '\p{Nv=:\A2/3\z:}', "");;
-    Expect(1, 74854, '\p{Nv:	000000002/003}', "");
-    Expect(0, 74854, '\p{^Nv:	000000002/003}', "");
-    Expect(0, 74854, '\P{Nv:	000000002/003}', "");
-    Expect(1, 74854, '\P{^Nv:	000000002/003}', "");
-    Expect(0, 74855, '\p{Nv:	000000002/003}', "");
-    Expect(1, 74855, '\p{^Nv:	000000002/003}', "");
-    Expect(1, 74855, '\P{Nv:	000000002/003}', "");
-    Expect(0, 74855, '\P{^Nv:	000000002/003}', "");
+    Expect(1, 74854, '\p{Nv=0000000002/0003}', "");
+    Expect(0, 74854, '\p{^Nv=0000000002/0003}', "");
+    Expect(0, 74854, '\P{Nv=0000000002/0003}', "");
+    Expect(1, 74854, '\P{^Nv=0000000002/0003}', "");
+    Expect(0, 74855, '\p{Nv=0000000002/0003}', "");
+    Expect(1, 74855, '\p{^Nv=0000000002/0003}', "");
+    Expect(1, 74855, '\P{Nv=0000000002/0003}', "");
+    Expect(0, 74855, '\P{^Nv=0000000002/0003}', "");
     Expect(1, 74854, '\p{Nv=120/180}', "");
     Expect(0, 74854, '\p{^Nv=120/180}', "");
     Expect(0, 74854, '\P{Nv=120/180}', "");
@@ -75399,18 +75989,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Error('\P{Nv=6.7e-01}');
     Error('\p{Nv=0.7}');
     Error('\P{Nv=0.7}');
-    Error('\p{Nv: 6.67e-01}');
-    Error('\P{Nv: 6.67e-01}');
-    Error('\p{Nv=0.67}');
-    Error('\P{Nv=0.67}');
-    Expect(1, 74854, '\p{Nv:	6.667e-01}', "");
-    Expect(0, 74854, '\p{^Nv:	6.667e-01}', "");
-    Expect(0, 74854, '\P{Nv:	6.667e-01}', "");
-    Expect(1, 74854, '\P{^Nv:	6.667e-01}', "");
-    Expect(0, 74855, '\p{Nv:	6.667e-01}', "");
-    Expect(1, 74855, '\p{^Nv:	6.667e-01}', "");
-    Expect(1, 74855, '\P{Nv:	6.667e-01}', "");
-    Expect(0, 74855, '\P{^Nv:	6.667e-01}', "");
+    Error('\p{Nv=6.67e-01}');
+    Error('\P{Nv=6.67e-01}');
+    Error('\p{Nv:	0.67}');
+    Error('\P{Nv:	0.67}');
+    Expect(1, 74854, '\p{Nv=6.667e-01}', "");
+    Expect(0, 74854, '\p{^Nv=6.667e-01}', "");
+    Expect(0, 74854, '\P{Nv=6.667e-01}', "");
+    Expect(1, 74854, '\P{^Nv=6.667e-01}', "");
+    Expect(0, 74855, '\p{Nv=6.667e-01}', "");
+    Expect(1, 74855, '\p{^Nv=6.667e-01}', "");
+    Expect(1, 74855, '\P{Nv=6.667e-01}', "");
+    Expect(0, 74855, '\P{^Nv=6.667e-01}', "");
     Error('\p{Nv=0.667}');
     Error('\P{Nv=0.667}');
     Expect(1, 74854, '\p{Nv=6.6667e-01}', "");
@@ -75421,14 +76011,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Nv=6.6667e-01}', "");
     Expect(1, 74855, '\P{Nv=6.6667e-01}', "");
     Expect(0, 74855, '\P{^Nv=6.6667e-01}', "");
-    Expect(1, 74854, '\p{Nv:0.6667}', "");
-    Expect(0, 74854, '\p{^Nv:0.6667}', "");
-    Expect(0, 74854, '\P{Nv:0.6667}', "");
-    Expect(1, 74854, '\P{^Nv:0.6667}', "");
-    Expect(0, 74855, '\p{Nv:0.6667}', "");
-    Expect(1, 74855, '\p{^Nv:0.6667}', "");
-    Expect(1, 74855, '\P{Nv:0.6667}', "");
-    Expect(0, 74855, '\P{^Nv:0.6667}', "");
+    Expect(1, 74854, '\p{Nv=0.6667}', "");
+    Expect(0, 74854, '\p{^Nv=0.6667}', "");
+    Expect(0, 74854, '\P{Nv=0.6667}', "");
+    Expect(1, 74854, '\P{^Nv=0.6667}', "");
+    Expect(0, 74855, '\p{Nv=0.6667}', "");
+    Expect(1, 74855, '\p{^Nv=0.6667}', "");
+    Expect(1, 74855, '\P{Nv=0.6667}', "");
+    Expect(0, 74855, '\P{^Nv=0.6667}', "");
     Expect(1, 74854, '\p{Nv=6.66667e-01}', "");
     Expect(0, 74854, '\p{^Nv=6.66667e-01}', "");
     Expect(0, 74854, '\P{Nv=6.66667e-01}', "");
@@ -75437,38 +76027,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Nv=6.66667e-01}', "");
     Expect(1, 74855, '\P{Nv=6.66667e-01}', "");
     Expect(0, 74855, '\P{^Nv=6.66667e-01}', "");
-    Expect(1, 74854, '\p{Nv:0.66667}', "");
-    Expect(0, 74854, '\p{^Nv:0.66667}', "");
-    Expect(0, 74854, '\P{Nv:0.66667}', "");
-    Expect(1, 74854, '\P{^Nv:0.66667}', "");
-    Expect(0, 74855, '\p{Nv:0.66667}', "");
-    Expect(1, 74855, '\p{^Nv:0.66667}', "");
-    Expect(1, 74855, '\P{Nv:0.66667}', "");
-    Expect(0, 74855, '\P{^Nv:0.66667}', "");
-    Error('\p{Is_Numeric_Value=_ +2/0003/a/}');
-    Error('\P{Is_Numeric_Value=_ +2/0003/a/}');
-    Expect(1, 74854, '\p{Is_Numeric_Value=+002/3}', "");
-    Expect(0, 74854, '\p{^Is_Numeric_Value=+002/3}', "");
-    Expect(0, 74854, '\P{Is_Numeric_Value=+002/3}', "");
-    Expect(1, 74854, '\P{^Is_Numeric_Value=+002/3}', "");
-    Expect(0, 74855, '\p{Is_Numeric_Value=+002/3}', "");
-    Expect(1, 74855, '\p{^Is_Numeric_Value=+002/3}', "");
-    Expect(1, 74855, '\P{Is_Numeric_Value=+002/3}', "");
-    Expect(0, 74855, '\P{^Is_Numeric_Value=+002/3}', "");
-    Expect(1, 74854, '\p{Is_Numeric_Value=120/180}', "");
-    Expect(0, 74854, '\p{^Is_Numeric_Value=120/180}', "");
-    Expect(0, 74854, '\P{Is_Numeric_Value=120/180}', "");
-    Expect(1, 74854, '\P{^Is_Numeric_Value=120/180}', "");
-    Expect(0, 74855, '\p{Is_Numeric_Value=120/180}', "");
-    Expect(1, 74855, '\p{^Is_Numeric_Value=120/180}', "");
-    Expect(1, 74855, '\P{Is_Numeric_Value=120/180}', "");
-    Expect(0, 74855, '\P{^Is_Numeric_Value=120/180}', "");
+    Expect(1, 74854, '\p{Nv=0.66667}', "");
+    Expect(0, 74854, '\p{^Nv=0.66667}', "");
+    Expect(0, 74854, '\P{Nv=0.66667}', "");
+    Expect(1, 74854, '\P{^Nv=0.66667}', "");
+    Expect(0, 74855, '\p{Nv=0.66667}', "");
+    Expect(1, 74855, '\p{^Nv=0.66667}', "");
+    Expect(1, 74855, '\P{Nv=0.66667}', "");
+    Expect(0, 74855, '\P{^Nv=0.66667}', "");
+    Error('\p{Is_Numeric_Value=:= +2/00000003}');
+    Error('\P{Is_Numeric_Value=:= +2/00000003}');
+    Expect(1, 74854, '\p{Is_Numeric_Value=+02/0000000003}', "");
+    Expect(0, 74854, '\p{^Is_Numeric_Value=+02/0000000003}', "");
+    Expect(0, 74854, '\P{Is_Numeric_Value=+02/0000000003}', "");
+    Expect(1, 74854, '\P{^Is_Numeric_Value=+02/0000000003}', "");
+    Expect(0, 74855, '\p{Is_Numeric_Value=+02/0000000003}', "");
+    Expect(1, 74855, '\p{^Is_Numeric_Value=+02/0000000003}', "");
+    Expect(1, 74855, '\P{Is_Numeric_Value=+02/0000000003}', "");
+    Expect(0, 74855, '\P{^Is_Numeric_Value=+02/0000000003}', "");
+    Expect(1, 74854, '\p{Is_Numeric_Value:	120/180}', "");
+    Expect(0, 74854, '\p{^Is_Numeric_Value:	120/180}', "");
+    Expect(0, 74854, '\P{Is_Numeric_Value:	120/180}', "");
+    Expect(1, 74854, '\P{^Is_Numeric_Value:	120/180}', "");
+    Expect(0, 74855, '\p{Is_Numeric_Value:	120/180}', "");
+    Expect(1, 74855, '\p{^Is_Numeric_Value:	120/180}', "");
+    Expect(1, 74855, '\P{Is_Numeric_Value:	120/180}', "");
+    Expect(0, 74855, '\P{^Is_Numeric_Value:	120/180}', "");
     Error('\p{Is_Numeric_Value=6.7e-01}');
     Error('\P{Is_Numeric_Value=6.7e-01}');
     Error('\p{Is_Numeric_Value=0.7}');
     Error('\P{Is_Numeric_Value=0.7}');
-    Error('\p{Is_Numeric_Value: 6.67e-01}');
-    Error('\P{Is_Numeric_Value: 6.67e-01}');
+    Error('\p{Is_Numeric_Value=6.67e-01}');
+    Error('\P{Is_Numeric_Value=6.67e-01}');
     Error('\p{Is_Numeric_Value=0.67}');
     Error('\P{Is_Numeric_Value=0.67}');
     Expect(1, 74854, '\p{Is_Numeric_Value=6.667e-01}', "");
@@ -75481,14 +76071,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74855, '\P{^Is_Numeric_Value=6.667e-01}', "");
     Error('\p{Is_Numeric_Value=0.667}');
     Error('\P{Is_Numeric_Value=0.667}');
-    Expect(1, 74854, '\p{Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(0, 74854, '\p{^Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(0, 74854, '\P{Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(1, 74854, '\P{^Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(0, 74855, '\p{Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(1, 74855, '\p{^Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(1, 74855, '\P{Is_Numeric_Value:	6.6667e-01}', "");
-    Expect(0, 74855, '\P{^Is_Numeric_Value:	6.6667e-01}', "");
+    Expect(1, 74854, '\p{Is_Numeric_Value=6.6667e-01}', "");
+    Expect(0, 74854, '\p{^Is_Numeric_Value=6.6667e-01}', "");
+    Expect(0, 74854, '\P{Is_Numeric_Value=6.6667e-01}', "");
+    Expect(1, 74854, '\P{^Is_Numeric_Value=6.6667e-01}', "");
+    Expect(0, 74855, '\p{Is_Numeric_Value=6.6667e-01}', "");
+    Expect(1, 74855, '\p{^Is_Numeric_Value=6.6667e-01}', "");
+    Expect(1, 74855, '\P{Is_Numeric_Value=6.6667e-01}', "");
+    Expect(0, 74855, '\P{^Is_Numeric_Value=6.6667e-01}', "");
     Expect(1, 74854, '\p{Is_Numeric_Value=0.6667}', "");
     Expect(0, 74854, '\p{^Is_Numeric_Value=0.6667}', "");
     Expect(0, 74854, '\P{Is_Numeric_Value=0.6667}', "");
@@ -75513,16 +76103,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Is_Numeric_Value=0.66667}', "");
     Expect(1, 74855, '\P{Is_Numeric_Value=0.66667}', "");
     Expect(0, 74855, '\P{^Is_Numeric_Value=0.66667}', "");
-    Error('\p{Is_Nv:	/a/+0002/0003}');
-    Error('\P{Is_Nv:	/a/+0002/0003}');
-    Expect(1, 74854, '\p{Is_Nv=+0000002/00000003}', "");
-    Expect(0, 74854, '\p{^Is_Nv=+0000002/00000003}', "");
-    Expect(0, 74854, '\P{Is_Nv=+0000002/00000003}', "");
-    Expect(1, 74854, '\P{^Is_Nv=+0000002/00000003}', "");
-    Expect(0, 74855, '\p{Is_Nv=+0000002/00000003}', "");
-    Expect(1, 74855, '\p{^Is_Nv=+0000002/00000003}', "");
-    Expect(1, 74855, '\P{Is_Nv=+0000002/00000003}', "");
-    Expect(0, 74855, '\P{^Is_Nv=+0000002/00000003}', "");
+    Error('\p{Is_Nv=-/a/000002/03}');
+    Error('\P{Is_Nv=-/a/000002/03}');
+    Expect(1, 74854, '\p{Is_Nv=+2/0000003}', "");
+    Expect(0, 74854, '\p{^Is_Nv=+2/0000003}', "");
+    Expect(0, 74854, '\P{Is_Nv=+2/0000003}', "");
+    Expect(1, 74854, '\P{^Is_Nv=+2/0000003}', "");
+    Expect(0, 74855, '\p{Is_Nv=+2/0000003}', "");
+    Expect(1, 74855, '\p{^Is_Nv=+2/0000003}', "");
+    Expect(1, 74855, '\P{Is_Nv=+2/0000003}', "");
+    Expect(0, 74855, '\P{^Is_Nv=+2/0000003}', "");
     Expect(1, 74854, '\p{Is_Nv=120/180}', "");
     Expect(0, 74854, '\p{^Is_Nv=120/180}', "");
     Expect(0, 74854, '\P{Is_Nv=120/180}', "");
@@ -75533,8 +76123,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 74855, '\P{^Is_Nv=120/180}', "");
     Error('\p{Is_Nv=6.7e-01}');
     Error('\P{Is_Nv=6.7e-01}');
-    Error('\p{Is_Nv=0.7}');
-    Error('\P{Is_Nv=0.7}');
+    Error('\p{Is_Nv:0.7}');
+    Error('\P{Is_Nv:0.7}');
     Error('\p{Is_Nv=6.67e-01}');
     Error('\P{Is_Nv=6.67e-01}');
     Error('\p{Is_Nv=0.67}');
@@ -75557,14 +76147,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Is_Nv=6.6667e-01}', "");
     Expect(1, 74855, '\P{Is_Nv=6.6667e-01}', "");
     Expect(0, 74855, '\P{^Is_Nv=6.6667e-01}', "");
-    Expect(1, 74854, '\p{Is_Nv:	0.6667}', "");
-    Expect(0, 74854, '\p{^Is_Nv:	0.6667}', "");
-    Expect(0, 74854, '\P{Is_Nv:	0.6667}', "");
-    Expect(1, 74854, '\P{^Is_Nv:	0.6667}', "");
-    Expect(0, 74855, '\p{Is_Nv:	0.6667}', "");
-    Expect(1, 74855, '\p{^Is_Nv:	0.6667}', "");
-    Expect(1, 74855, '\P{Is_Nv:	0.6667}', "");
-    Expect(0, 74855, '\P{^Is_Nv:	0.6667}', "");
+    Expect(1, 74854, '\p{Is_Nv=0.6667}', "");
+    Expect(0, 74854, '\p{^Is_Nv=0.6667}', "");
+    Expect(0, 74854, '\P{Is_Nv=0.6667}', "");
+    Expect(1, 74854, '\P{^Is_Nv=0.6667}', "");
+    Expect(0, 74855, '\p{Is_Nv=0.6667}', "");
+    Expect(1, 74855, '\p{^Is_Nv=0.6667}', "");
+    Expect(1, 74855, '\P{Is_Nv=0.6667}', "");
+    Expect(0, 74855, '\P{^Is_Nv=0.6667}', "");
     Expect(1, 74854, '\p{Is_Nv=6.66667e-01}', "");
     Expect(0, 74854, '\p{^Is_Nv=6.66667e-01}', "");
     Expect(0, 74854, '\P{Is_Nv=6.66667e-01}', "");
@@ -75581,18 +76171,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74855, '\p{^Is_Nv=0.66667}', "");
     Expect(1, 74855, '\P{Is_Nv=0.66667}', "");
     Expect(0, 74855, '\P{^Is_Nv=0.66667}', "");
-    Error('\p{Numeric_Value=-/a/0000002/0000005}');
-    Error('\P{Numeric_Value=-/a/0000002/0000005}');
+    Error('\p{Numeric_Value=-0002/00000005:=}');
+    Error('\P{Numeric_Value=-0002/00000005:=}');
     Expect(1, 8534, '\p{Numeric_Value=:\A2/5\z:}', "");;
     Expect(0, 8535, '\p{Numeric_Value=:\A2/5\z:}', "");;
-    Expect(1, 8534, '\p{Numeric_Value=002/000000005}', "");
-    Expect(0, 8534, '\p{^Numeric_Value=002/000000005}', "");
-    Expect(0, 8534, '\P{Numeric_Value=002/000000005}', "");
-    Expect(1, 8534, '\P{^Numeric_Value=002/000000005}', "");
-    Expect(0, 8535, '\p{Numeric_Value=002/000000005}', "");
-    Expect(1, 8535, '\p{^Numeric_Value=002/000000005}', "");
-    Expect(1, 8535, '\P{Numeric_Value=002/000000005}', "");
-    Expect(0, 8535, '\P{^Numeric_Value=002/000000005}', "");
+    Expect(1, 8534, '\p{Numeric_Value=2/000005}', "");
+    Expect(0, 8534, '\p{^Numeric_Value=2/000005}', "");
+    Expect(0, 8534, '\P{Numeric_Value=2/000005}', "");
+    Expect(1, 8534, '\P{^Numeric_Value=2/000005}', "");
+    Expect(0, 8535, '\p{Numeric_Value=2/000005}', "");
+    Expect(1, 8535, '\p{^Numeric_Value=2/000005}', "");
+    Expect(1, 8535, '\P{Numeric_Value=2/000005}', "");
+    Expect(0, 8535, '\P{^Numeric_Value=2/000005}', "");
     Expect(1, 8534, '\p{Numeric_Value=120/300}', "");
     Expect(0, 8534, '\p{^Numeric_Value=120/300}', "");
     Expect(0, 8534, '\P{Numeric_Value=120/300}', "");
@@ -75609,14 +76199,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8535, '\p{^Numeric_Value=4.0e-01}', "");
     Expect(1, 8535, '\P{Numeric_Value=4.0e-01}', "");
     Expect(0, 8535, '\P{^Numeric_Value=4.0e-01}', "");
-    Expect(1, 8534, '\p{Numeric_Value: 0.4}', "");
-    Expect(0, 8534, '\p{^Numeric_Value: 0.4}', "");
-    Expect(0, 8534, '\P{Numeric_Value: 0.4}', "");
-    Expect(1, 8534, '\P{^Numeric_Value: 0.4}', "");
-    Expect(0, 8535, '\p{Numeric_Value: 0.4}', "");
-    Expect(1, 8535, '\p{^Numeric_Value: 0.4}', "");
-    Expect(1, 8535, '\P{Numeric_Value: 0.4}', "");
-    Expect(0, 8535, '\P{^Numeric_Value: 0.4}', "");
+    Expect(1, 8534, '\p{Numeric_Value=0.4}', "");
+    Expect(0, 8534, '\p{^Numeric_Value=0.4}', "");
+    Expect(0, 8534, '\P{Numeric_Value=0.4}', "");
+    Expect(1, 8534, '\P{^Numeric_Value=0.4}', "");
+    Expect(0, 8535, '\p{Numeric_Value=0.4}', "");
+    Expect(1, 8535, '\p{^Numeric_Value=0.4}', "");
+    Expect(1, 8535, '\P{Numeric_Value=0.4}', "");
+    Expect(0, 8535, '\P{^Numeric_Value=0.4}', "");
     Expect(1, 8534, '\p{Numeric_Value=4.00e-01}', "");
     Expect(0, 8534, '\p{^Numeric_Value=4.00e-01}', "");
     Expect(0, 8534, '\P{Numeric_Value=4.00e-01}', "");
@@ -75633,26 +76223,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8535, '\p{^Numeric_Value=0.40}', "");
     Expect(1, 8535, '\P{Numeric_Value=0.40}', "");
     Expect(0, 8535, '\P{^Numeric_Value=0.40}', "");
-    Error('\p{Nv=- 000000002/0000005:=}');
-    Error('\P{Nv=- 000000002/0000005:=}');
+    Error('\p{Nv= 	+00000002/000000005:=}');
+    Error('\P{Nv= 	+00000002/000000005:=}');
     Expect(1, 8534, '\p{Nv=:\A2/5\z:}', "");;
     Expect(0, 8535, '\p{Nv=:\A2/5\z:}', "");;
-    Expect(1, 8534, '\p{Nv=+002/00005}', "");
-    Expect(0, 8534, '\p{^Nv=+002/00005}', "");
-    Expect(0, 8534, '\P{Nv=+002/00005}', "");
-    Expect(1, 8534, '\P{^Nv=+002/00005}', "");
-    Expect(0, 8535, '\p{Nv=+002/00005}', "");
-    Expect(1, 8535, '\p{^Nv=+002/00005}', "");
-    Expect(1, 8535, '\P{Nv=+002/00005}', "");
-    Expect(0, 8535, '\P{^Nv=+002/00005}', "");
-    Expect(1, 8534, '\p{Nv=120/300}', "");
-    Expect(0, 8534, '\p{^Nv=120/300}', "");
-    Expect(0, 8534, '\P{Nv=120/300}', "");
-    Expect(1, 8534, '\P{^Nv=120/300}', "");
-    Expect(0, 8535, '\p{Nv=120/300}', "");
-    Expect(1, 8535, '\p{^Nv=120/300}', "");
-    Expect(1, 8535, '\P{Nv=120/300}', "");
-    Expect(0, 8535, '\P{^Nv=120/300}', "");
+    Expect(1, 8534, '\p{Nv=+00002/0000000005}', "");
+    Expect(0, 8534, '\p{^Nv=+00002/0000000005}', "");
+    Expect(0, 8534, '\P{Nv=+00002/0000000005}', "");
+    Expect(1, 8534, '\P{^Nv=+00002/0000000005}', "");
+    Expect(0, 8535, '\p{Nv=+00002/0000000005}', "");
+    Expect(1, 8535, '\p{^Nv=+00002/0000000005}', "");
+    Expect(1, 8535, '\P{Nv=+00002/0000000005}', "");
+    Expect(0, 8535, '\P{^Nv=+00002/0000000005}', "");
+    Expect(1, 8534, '\p{Nv:   120/300}', "");
+    Expect(0, 8534, '\p{^Nv:   120/300}', "");
+    Expect(0, 8534, '\P{Nv:   120/300}', "");
+    Expect(1, 8534, '\P{^Nv:   120/300}', "");
+    Expect(0, 8535, '\p{Nv:   120/300}', "");
+    Expect(1, 8535, '\p{^Nv:   120/300}', "");
+    Expect(1, 8535, '\P{Nv:   120/300}', "");
+    Expect(0, 8535, '\P{^Nv:   120/300}', "");
     Expect(1, 8534, '\p{Nv=4.0e-01}', "");
     Expect(0, 8534, '\p{^Nv=4.0e-01}', "");
     Expect(0, 8534, '\P{Nv=4.0e-01}', "");
@@ -75685,16 +76275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8535, '\p{^Nv=0.40}', "");
     Expect(1, 8535, '\P{Nv=0.40}', "");
     Expect(0, 8535, '\P{^Nv=0.40}', "");
-    Error('\p{Is_Numeric_Value=-	0002/0000005/a/}');
-    Error('\P{Is_Numeric_Value=-	0002/0000005/a/}');
-    Expect(1, 8534, '\p{Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(0, 8534, '\p{^Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(0, 8534, '\P{Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(1, 8534, '\P{^Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(0, 8535, '\p{Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(1, 8535, '\p{^Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(1, 8535, '\P{Is_Numeric_Value=+0000000002/0000005}', "");
-    Expect(0, 8535, '\P{^Is_Numeric_Value=+0000000002/0000005}', "");
+    Error('\p{Is_Numeric_Value= +00000002/000000005/a/}');
+    Error('\P{Is_Numeric_Value= +00000002/000000005/a/}');
+    Expect(1, 8534, '\p{Is_Numeric_Value=000002/00000005}', "");
+    Expect(0, 8534, '\p{^Is_Numeric_Value=000002/00000005}', "");
+    Expect(0, 8534, '\P{Is_Numeric_Value=000002/00000005}', "");
+    Expect(1, 8534, '\P{^Is_Numeric_Value=000002/00000005}', "");
+    Expect(0, 8535, '\p{Is_Numeric_Value=000002/00000005}', "");
+    Expect(1, 8535, '\p{^Is_Numeric_Value=000002/00000005}', "");
+    Expect(1, 8535, '\P{Is_Numeric_Value=000002/00000005}', "");
+    Expect(0, 8535, '\P{^Is_Numeric_Value=000002/00000005}', "");
     Expect(1, 8534, '\p{Is_Numeric_Value=120/300}', "");
     Expect(0, 8534, '\p{^Is_Numeric_Value=120/300}', "");
     Expect(0, 8534, '\P{Is_Numeric_Value=120/300}', "");
@@ -75735,16 +76325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8535, '\p{^Is_Numeric_Value=0.40}', "");
     Expect(1, 8535, '\P{Is_Numeric_Value=0.40}', "");
     Expect(0, 8535, '\P{^Is_Numeric_Value=0.40}', "");
-    Error('\p{Is_Nv=_+02/00000005:=}');
-    Error('\P{Is_Nv=_+02/00000005:=}');
-    Expect(1, 8534, '\p{Is_Nv=0002/0000005}', "");
-    Expect(0, 8534, '\p{^Is_Nv=0002/0000005}', "");
-    Expect(0, 8534, '\P{Is_Nv=0002/0000005}', "");
-    Expect(1, 8534, '\P{^Is_Nv=0002/0000005}', "");
-    Expect(0, 8535, '\p{Is_Nv=0002/0000005}', "");
-    Expect(1, 8535, '\p{^Is_Nv=0002/0000005}', "");
-    Expect(1, 8535, '\P{Is_Nv=0002/0000005}', "");
-    Expect(0, 8535, '\P{^Is_Nv=0002/0000005}', "");
+    Error('\p{Is_Nv=-	+000002/000005:=}');
+    Error('\P{Is_Nv=-	+000002/000005:=}');
+    Expect(1, 8534, '\p{Is_Nv=0000000002/00005}', "");
+    Expect(0, 8534, '\p{^Is_Nv=0000000002/00005}', "");
+    Expect(0, 8534, '\P{Is_Nv=0000000002/00005}', "");
+    Expect(1, 8534, '\P{^Is_Nv=0000000002/00005}', "");
+    Expect(0, 8535, '\p{Is_Nv=0000000002/00005}', "");
+    Expect(1, 8535, '\p{^Is_Nv=0000000002/00005}', "");
+    Expect(1, 8535, '\P{Is_Nv=0000000002/00005}', "");
+    Expect(0, 8535, '\P{^Is_Nv=0000000002/00005}', "");
     Expect(1, 8534, '\p{Is_Nv=120/300}', "");
     Expect(0, 8534, '\p{^Is_Nv=120/300}', "");
     Expect(0, 8534, '\P{Is_Nv=120/300}', "");
@@ -75777,26 +76367,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8535, '\p{^Is_Nv=4.00e-01}', "");
     Expect(1, 8535, '\P{Is_Nv=4.00e-01}', "");
     Expect(0, 8535, '\P{^Is_Nv=4.00e-01}', "");
-    Expect(1, 8534, '\p{Is_Nv=0.40}', "");
-    Expect(0, 8534, '\p{^Is_Nv=0.40}', "");
-    Expect(0, 8534, '\P{Is_Nv=0.40}', "");
-    Expect(1, 8534, '\P{^Is_Nv=0.40}', "");
-    Expect(0, 8535, '\p{Is_Nv=0.40}', "");
-    Expect(1, 8535, '\p{^Is_Nv=0.40}', "");
-    Expect(1, 8535, '\P{Is_Nv=0.40}', "");
-    Expect(0, 8535, '\P{^Is_Nv=0.40}', "");
-    Error('\p{Numeric_Value=_/a/+0000002_0}');
-    Error('\P{Numeric_Value=_/a/+0000002_0}');
+    Expect(1, 8534, '\p{Is_Nv:0.40}', "");
+    Expect(0, 8534, '\p{^Is_Nv:0.40}', "");
+    Expect(0, 8534, '\P{Is_Nv:0.40}', "");
+    Expect(1, 8534, '\P{^Is_Nv:0.40}', "");
+    Expect(0, 8535, '\p{Is_Nv:0.40}', "");
+    Expect(1, 8535, '\p{^Is_Nv:0.40}', "");
+    Expect(1, 8535, '\P{Is_Nv:0.40}', "");
+    Expect(0, 8535, '\P{^Is_Nv:0.40}', "");
+    Error('\p{Numeric_Value= :=020}');
+    Error('\P{Numeric_Value= :=020}');
     Expect(1, 126219, '\p{Numeric_Value=:\A20\z:}', "");;
     Expect(0, 126220, '\p{Numeric_Value=:\A20\z:}', "");;
-    Expect(1, 126219, '\p{Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(0, 126219, '\p{^Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(0, 126219, '\P{Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(1, 126219, '\P{^Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(0, 126220, '\p{Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(1, 126220, '\p{^Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(1, 126220, '\P{Numeric_Value=0_0_0_0_0_0_0_20}', "");
-    Expect(0, 126220, '\P{^Numeric_Value=0_0_0_0_0_0_0_20}', "");
+    Expect(1, 126219, '\p{Numeric_Value=+00_02_0}', "");
+    Expect(0, 126219, '\p{^Numeric_Value=+00_02_0}', "");
+    Expect(0, 126219, '\P{Numeric_Value=+00_02_0}', "");
+    Expect(1, 126219, '\P{^Numeric_Value=+00_02_0}', "");
+    Expect(0, 126220, '\p{Numeric_Value=+00_02_0}', "");
+    Expect(1, 126220, '\p{^Numeric_Value=+00_02_0}', "");
+    Expect(1, 126220, '\P{Numeric_Value=+00_02_0}', "");
+    Expect(0, 126220, '\P{^Numeric_Value=+00_02_0}', "");
     Expect(1, 126219, '\p{Numeric_Value=2.000000000000000e+01}', "");
     Expect(0, 126219, '\p{^Numeric_Value=2.000000000000000e+01}', "");
     Expect(0, 126219, '\P{Numeric_Value=2.000000000000000e+01}', "");
@@ -75805,18 +76395,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126220, '\p{^Numeric_Value=2.000000000000000e+01}', "");
     Expect(1, 126220, '\P{Numeric_Value=2.000000000000000e+01}', "");
     Expect(0, 126220, '\P{^Numeric_Value=2.000000000000000e+01}', "");
-    Error('\p{Nv=/a/_+0_0_0_020}');
-    Error('\P{Nv=/a/_+0_0_0_020}');
+    Error('\p{Nv=:=-	02_0}');
+    Error('\P{Nv=:=-	02_0}');
     Expect(1, 126219, '\p{Nv=:\A20\z:}', "");;
     Expect(0, 126220, '\p{Nv=:\A20\z:}', "");;
-    Expect(1, 126219, '\p{Nv=00020}', "");
-    Expect(0, 126219, '\p{^Nv=00020}', "");
-    Expect(0, 126219, '\P{Nv=00020}', "");
-    Expect(1, 126219, '\P{^Nv=00020}', "");
-    Expect(0, 126220, '\p{Nv=00020}', "");
-    Expect(1, 126220, '\p{^Nv=00020}', "");
-    Expect(1, 126220, '\P{Nv=00020}', "");
-    Expect(0, 126220, '\P{^Nv=00020}', "");
+    Expect(1, 126219, '\p{Nv=+0_0_0_0_20}', "");
+    Expect(0, 126219, '\p{^Nv=+0_0_0_0_20}', "");
+    Expect(0, 126219, '\P{Nv=+0_0_0_0_20}', "");
+    Expect(1, 126219, '\P{^Nv=+0_0_0_0_20}', "");
+    Expect(0, 126220, '\p{Nv=+0_0_0_0_20}', "");
+    Expect(1, 126220, '\p{^Nv=+0_0_0_0_20}', "");
+    Expect(1, 126220, '\P{Nv=+0_0_0_0_20}', "");
+    Expect(0, 126220, '\P{^Nv=+0_0_0_0_20}', "");
     Expect(1, 126219, '\p{Nv=2.000000000000000e+01}', "");
     Expect(0, 126219, '\p{^Nv=2.000000000000000e+01}', "");
     Expect(0, 126219, '\P{Nv=2.000000000000000e+01}', "");
@@ -75825,16 +76415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126220, '\p{^Nv=2.000000000000000e+01}', "");
     Expect(1, 126220, '\P{Nv=2.000000000000000e+01}', "");
     Expect(0, 126220, '\P{^Nv=2.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=:=_ +00_00_00_20}');
-    Error('\P{Is_Numeric_Value=:=_ +00_00_00_20}');
-    Expect(1, 126219, '\p{Is_Numeric_Value=00_00_20}', "");
-    Expect(0, 126219, '\p{^Is_Numeric_Value=00_00_20}', "");
-    Expect(0, 126219, '\P{Is_Numeric_Value=00_00_20}', "");
-    Expect(1, 126219, '\P{^Is_Numeric_Value=00_00_20}', "");
-    Expect(0, 126220, '\p{Is_Numeric_Value=00_00_20}', "");
-    Expect(1, 126220, '\p{^Is_Numeric_Value=00_00_20}', "");
-    Expect(1, 126220, '\P{Is_Numeric_Value=00_00_20}', "");
-    Expect(0, 126220, '\P{^Is_Numeric_Value=00_00_20}', "");
+    Error('\p{Is_Numeric_Value=/a/_-+000020}');
+    Error('\P{Is_Numeric_Value=/a/_-+000020}');
+    Expect(1, 126219, '\p{Is_Numeric_Value=0020}', "");
+    Expect(0, 126219, '\p{^Is_Numeric_Value=0020}', "");
+    Expect(0, 126219, '\P{Is_Numeric_Value=0020}', "");
+    Expect(1, 126219, '\P{^Is_Numeric_Value=0020}', "");
+    Expect(0, 126220, '\p{Is_Numeric_Value=0020}', "");
+    Expect(1, 126220, '\p{^Is_Numeric_Value=0020}', "");
+    Expect(1, 126220, '\P{Is_Numeric_Value=0020}', "");
+    Expect(0, 126220, '\P{^Is_Numeric_Value=0020}', "");
     Expect(1, 126219, '\p{Is_Numeric_Value=2.000000000000000e+01}', "");
     Expect(0, 126219, '\p{^Is_Numeric_Value=2.000000000000000e+01}', "");
     Expect(0, 126219, '\P{Is_Numeric_Value=2.000000000000000e+01}', "");
@@ -75843,16 +76433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126220, '\p{^Is_Numeric_Value=2.000000000000000e+01}', "");
     Expect(1, 126220, '\P{Is_Numeric_Value=2.000000000000000e+01}', "");
     Expect(0, 126220, '\P{^Is_Numeric_Value=2.000000000000000e+01}', "");
-    Error('\p{Is_Nv=-	+0_0_0_0_0_0_0_0_020:=}');
-    Error('\P{Is_Nv=-	+0_0_0_0_0_0_0_0_020:=}');
-    Expect(1, 126219, '\p{Is_Nv=2_0}', "");
-    Expect(0, 126219, '\p{^Is_Nv=2_0}', "");
-    Expect(0, 126219, '\P{Is_Nv=2_0}', "");
-    Expect(1, 126219, '\P{^Is_Nv=2_0}', "");
-    Expect(0, 126220, '\p{Is_Nv=2_0}', "");
-    Expect(1, 126220, '\p{^Is_Nv=2_0}', "");
-    Expect(1, 126220, '\P{Is_Nv=2_0}', "");
-    Expect(0, 126220, '\P{^Is_Nv=2_0}', "");
+    Error('\p{Is_Nv=:=__00_00_00_20}');
+    Error('\P{Is_Nv=:=__00_00_00_20}');
+    Expect(1, 126219, '\p{Is_Nv:   0_0_0_0_0020}', "");
+    Expect(0, 126219, '\p{^Is_Nv:   0_0_0_0_0020}', "");
+    Expect(0, 126219, '\P{Is_Nv:   0_0_0_0_0020}', "");
+    Expect(1, 126219, '\P{^Is_Nv:   0_0_0_0_0020}', "");
+    Expect(0, 126220, '\p{Is_Nv:   0_0_0_0_0020}', "");
+    Expect(1, 126220, '\p{^Is_Nv:   0_0_0_0_0020}', "");
+    Expect(1, 126220, '\P{Is_Nv:   0_0_0_0_0020}', "");
+    Expect(0, 126220, '\P{^Is_Nv:   0_0_0_0_0020}', "");
     Expect(1, 126219, '\p{Is_Nv=2.000000000000000e+01}', "");
     Expect(0, 126219, '\p{^Is_Nv=2.000000000000000e+01}', "");
     Expect(0, 126219, '\P{Is_Nv=2.000000000000000e+01}', "");
@@ -75861,38 +76451,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126220, '\p{^Is_Nv=2.000000000000000e+01}', "");
     Expect(1, 126220, '\P{Is_Nv=2.000000000000000e+01}', "");
     Expect(0, 126220, '\P{^Is_Nv=2.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/	0000200}');
-    Error('\P{Numeric_Value=/a/	0000200}');
+    Error('\p{Numeric_Value=/a/-_0_0_2_00}');
+    Error('\P{Numeric_Value=/a/-_0_0_2_00}');
     Expect(1, 126228, '\p{Numeric_Value=:\A200\z:}', "");;
     Expect(0, 126229, '\p{Numeric_Value=:\A200\z:}', "");;
-    Expect(1, 126228, '\p{Numeric_Value=0000200}', "");
-    Expect(0, 126228, '\p{^Numeric_Value=0000200}', "");
-    Expect(0, 126228, '\P{Numeric_Value=0000200}', "");
-    Expect(1, 126228, '\P{^Numeric_Value=0000200}', "");
-    Expect(0, 126229, '\p{Numeric_Value=0000200}', "");
-    Expect(1, 126229, '\p{^Numeric_Value=0000200}', "");
-    Expect(1, 126229, '\P{Numeric_Value=0000200}', "");
-    Expect(0, 126229, '\P{^Numeric_Value=0000200}', "");
-    Expect(1, 126228, '\p{Numeric_Value=2.000000000000000e+02}', "");
-    Expect(0, 126228, '\p{^Numeric_Value=2.000000000000000e+02}', "");
-    Expect(0, 126228, '\P{Numeric_Value=2.000000000000000e+02}', "");
-    Expect(1, 126228, '\P{^Numeric_Value=2.000000000000000e+02}', "");
-    Expect(0, 126229, '\p{Numeric_Value=2.000000000000000e+02}', "");
-    Expect(1, 126229, '\p{^Numeric_Value=2.000000000000000e+02}', "");
-    Expect(1, 126229, '\P{Numeric_Value=2.000000000000000e+02}', "");
-    Expect(0, 126229, '\P{^Numeric_Value=2.000000000000000e+02}', "");
-    Error('\p{Nv=_/a/0000000200}');
-    Error('\P{Nv=_/a/0000000200}');
+    Expect(1, 126228, '\p{Numeric_Value=000200}', "");
+    Expect(0, 126228, '\p{^Numeric_Value=000200}', "");
+    Expect(0, 126228, '\P{Numeric_Value=000200}', "");
+    Expect(1, 126228, '\P{^Numeric_Value=000200}', "");
+    Expect(0, 126229, '\p{Numeric_Value=000200}', "");
+    Expect(1, 126229, '\p{^Numeric_Value=000200}', "");
+    Expect(1, 126229, '\P{Numeric_Value=000200}', "");
+    Expect(0, 126229, '\P{^Numeric_Value=000200}', "");
+    Expect(1, 126228, '\p{Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(0, 126228, '\p{^Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(0, 126228, '\P{Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(1, 126228, '\P{^Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(0, 126229, '\p{Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(1, 126229, '\p{^Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(1, 126229, '\P{Numeric_Value:   2.000000000000000e+02}', "");
+    Expect(0, 126229, '\P{^Numeric_Value:   2.000000000000000e+02}', "");
+    Error('\p{Nv=/a/	+0020_0}');
+    Error('\P{Nv=/a/	+0020_0}');
     Expect(1, 126228, '\p{Nv=:\A200\z:}', "");;
     Expect(0, 126229, '\p{Nv=:\A200\z:}', "");;
-    Expect(1, 126228, '\p{Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(0, 126228, '\p{^Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(0, 126228, '\P{Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(1, 126228, '\P{^Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(0, 126229, '\p{Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(1, 126229, '\p{^Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(1, 126229, '\P{Nv=0_0_0_0_0_0_0_0_0_200}', "");
-    Expect(0, 126229, '\P{^Nv=0_0_0_0_0_0_0_0_0_200}', "");
+    Expect(1, 126228, '\p{Nv=+200}', "");
+    Expect(0, 126228, '\p{^Nv=+200}', "");
+    Expect(0, 126228, '\P{Nv=+200}', "");
+    Expect(1, 126228, '\P{^Nv=+200}', "");
+    Expect(0, 126229, '\p{Nv=+200}', "");
+    Expect(1, 126229, '\p{^Nv=+200}', "");
+    Expect(1, 126229, '\P{Nv=+200}', "");
+    Expect(0, 126229, '\P{^Nv=+200}', "");
     Expect(1, 126228, '\p{Nv=2.000000000000000e+02}', "");
     Expect(0, 126228, '\p{^Nv=2.000000000000000e+02}', "");
     Expect(0, 126228, '\P{Nv=2.000000000000000e+02}', "");
@@ -75901,16 +76491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126229, '\p{^Nv=2.000000000000000e+02}', "");
     Expect(1, 126229, '\P{Nv=2.000000000000000e+02}', "");
     Expect(0, 126229, '\P{^Nv=2.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value=	/a/+00200}');
-    Error('\P{Is_Numeric_Value=	/a/+00200}');
-    Expect(1, 126228, '\p{Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(0, 126228, '\p{^Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(0, 126228, '\P{Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(1, 126228, '\P{^Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(0, 126229, '\p{Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(1, 126229, '\p{^Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(1, 126229, '\P{Is_Numeric_Value=00_00_00_02_00}', "");
-    Expect(0, 126229, '\P{^Is_Numeric_Value=00_00_00_02_00}', "");
+    Error('\p{Is_Numeric_Value:/a/--00_00_20_0}');
+    Error('\P{Is_Numeric_Value:/a/--00_00_20_0}');
+    Expect(1, 126228, '\p{Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(0, 126228, '\p{^Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(0, 126228, '\P{Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(1, 126228, '\P{^Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(0, 126229, '\p{Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(1, 126229, '\p{^Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(1, 126229, '\P{Is_Numeric_Value=00_00_00_00_0200}', "");
+    Expect(0, 126229, '\P{^Is_Numeric_Value=00_00_00_00_0200}', "");
     Expect(1, 126228, '\p{Is_Numeric_Value=2.000000000000000e+02}', "");
     Expect(0, 126228, '\p{^Is_Numeric_Value=2.000000000000000e+02}', "");
     Expect(0, 126228, '\P{Is_Numeric_Value=2.000000000000000e+02}', "");
@@ -75919,36 +76509,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126229, '\p{^Is_Numeric_Value=2.000000000000000e+02}', "");
     Expect(1, 126229, '\P{Is_Numeric_Value=2.000000000000000e+02}', "");
     Expect(0, 126229, '\P{^Is_Numeric_Value=2.000000000000000e+02}', "");
-    Error('\p{Is_Nv=:=-+00200}');
-    Error('\P{Is_Nv=:=-+00200}');
-    Expect(1, 126228, '\p{Is_Nv=00020_0}', "");
-    Expect(0, 126228, '\p{^Is_Nv=00020_0}', "");
-    Expect(0, 126228, '\P{Is_Nv=00020_0}', "");
-    Expect(1, 126228, '\P{^Is_Nv=00020_0}', "");
-    Expect(0, 126229, '\p{Is_Nv=00020_0}', "");
-    Expect(1, 126229, '\p{^Is_Nv=00020_0}', "");
-    Expect(1, 126229, '\P{Is_Nv=00020_0}', "");
-    Expect(0, 126229, '\P{^Is_Nv=00020_0}', "");
-    Expect(1, 126228, '\p{Is_Nv:	2.000000000000000e+02}', "");
-    Expect(0, 126228, '\p{^Is_Nv:	2.000000000000000e+02}', "");
-    Expect(0, 126228, '\P{Is_Nv:	2.000000000000000e+02}', "");
-    Expect(1, 126228, '\P{^Is_Nv:	2.000000000000000e+02}', "");
-    Expect(0, 126229, '\p{Is_Nv:	2.000000000000000e+02}', "");
-    Expect(1, 126229, '\p{^Is_Nv:	2.000000000000000e+02}', "");
-    Expect(1, 126229, '\P{Is_Nv:	2.000000000000000e+02}', "");
-    Expect(0, 126229, '\P{^Is_Nv:	2.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=:=	-0000000002000}');
-    Error('\P{Numeric_Value=:=	-0000000002000}');
+    Error('\p{Is_Nv=-/a/000020_0}');
+    Error('\P{Is_Nv=-/a/000020_0}');
+    Expect(1, 126228, '\p{Is_Nv=+0000200}', "");
+    Expect(0, 126228, '\p{^Is_Nv=+0000200}', "");
+    Expect(0, 126228, '\P{Is_Nv=+0000200}', "");
+    Expect(1, 126228, '\P{^Is_Nv=+0000200}', "");
+    Expect(0, 126229, '\p{Is_Nv=+0000200}', "");
+    Expect(1, 126229, '\p{^Is_Nv=+0000200}', "");
+    Expect(1, 126229, '\P{Is_Nv=+0000200}', "");
+    Expect(0, 126229, '\P{^Is_Nv=+0000200}', "");
+    Expect(1, 126228, '\p{Is_Nv=2.000000000000000e+02}', "");
+    Expect(0, 126228, '\p{^Is_Nv=2.000000000000000e+02}', "");
+    Expect(0, 126228, '\P{Is_Nv=2.000000000000000e+02}', "");
+    Expect(1, 126228, '\P{^Is_Nv=2.000000000000000e+02}', "");
+    Expect(0, 126229, '\p{Is_Nv=2.000000000000000e+02}', "");
+    Expect(1, 126229, '\p{^Is_Nv=2.000000000000000e+02}', "");
+    Expect(1, 126229, '\P{Is_Nv=2.000000000000000e+02}', "");
+    Expect(0, 126229, '\P{^Is_Nv=2.000000000000000e+02}', "");
+    Error('\p{Numeric_Value: /a/	2000}');
+    Error('\P{Numeric_Value: /a/	2000}');
     Expect(1, 126266, '\p{Numeric_Value=:\A2000\z:}', "");;
     Expect(0, 126267, '\p{Numeric_Value=:\A2000\z:}', "");;
-    Expect(1, 126266, '\p{Numeric_Value=0000002000}', "");
-    Expect(0, 126266, '\p{^Numeric_Value=0000002000}', "");
-    Expect(0, 126266, '\P{Numeric_Value=0000002000}', "");
-    Expect(1, 126266, '\P{^Numeric_Value=0000002000}', "");
-    Expect(0, 126267, '\p{Numeric_Value=0000002000}', "");
-    Expect(1, 126267, '\p{^Numeric_Value=0000002000}', "");
-    Expect(1, 126267, '\P{Numeric_Value=0000002000}', "");
-    Expect(0, 126267, '\P{^Numeric_Value=0000002000}', "");
+    Expect(1, 126266, '\p{Numeric_Value=200_0}', "");
+    Expect(0, 126266, '\p{^Numeric_Value=200_0}', "");
+    Expect(0, 126266, '\P{Numeric_Value=200_0}', "");
+    Expect(1, 126266, '\P{^Numeric_Value=200_0}', "");
+    Expect(0, 126267, '\p{Numeric_Value=200_0}', "");
+    Expect(1, 126267, '\p{^Numeric_Value=200_0}', "");
+    Expect(1, 126267, '\P{Numeric_Value=200_0}', "");
+    Expect(0, 126267, '\P{^Numeric_Value=200_0}', "");
     Expect(1, 126266, '\p{Numeric_Value=2.000000000000000e+03}', "");
     Expect(0, 126266, '\p{^Numeric_Value=2.000000000000000e+03}', "");
     Expect(0, 126266, '\P{Numeric_Value=2.000000000000000e+03}', "");
@@ -75957,18 +76547,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126267, '\p{^Numeric_Value=2.000000000000000e+03}', "");
     Expect(1, 126267, '\P{Numeric_Value=2.000000000000000e+03}', "");
     Expect(0, 126267, '\P{^Numeric_Value=2.000000000000000e+03}', "");
-    Error('\p{Nv=	 +200_0/a/}');
-    Error('\P{Nv=	 +200_0/a/}');
+    Error('\p{Nv=	-0_0_0_0_2_0_00:=}');
+    Error('\P{Nv=	-0_0_0_0_2_0_00:=}');
     Expect(1, 126266, '\p{Nv=:\A2000\z:}', "");;
     Expect(0, 126267, '\p{Nv=:\A2000\z:}', "");;
-    Expect(1, 126266, '\p{Nv=000002000}', "");
-    Expect(0, 126266, '\p{^Nv=000002000}', "");
-    Expect(0, 126266, '\P{Nv=000002000}', "");
-    Expect(1, 126266, '\P{^Nv=000002000}', "");
-    Expect(0, 126267, '\p{Nv=000002000}', "");
-    Expect(1, 126267, '\p{^Nv=000002000}', "");
-    Expect(1, 126267, '\P{Nv=000002000}', "");
-    Expect(0, 126267, '\P{^Nv=000002000}', "");
+    Expect(1, 126266, '\p{Nv:   002000}', "");
+    Expect(0, 126266, '\p{^Nv:   002000}', "");
+    Expect(0, 126266, '\P{Nv:   002000}', "");
+    Expect(1, 126266, '\P{^Nv:   002000}', "");
+    Expect(0, 126267, '\p{Nv:   002000}', "");
+    Expect(1, 126267, '\p{^Nv:   002000}', "");
+    Expect(1, 126267, '\P{Nv:   002000}', "");
+    Expect(0, 126267, '\P{^Nv:   002000}', "");
     Expect(1, 126266, '\p{Nv=2.000000000000000e+03}', "");
     Expect(0, 126266, '\p{^Nv=2.000000000000000e+03}', "");
     Expect(0, 126266, '\P{Nv=2.000000000000000e+03}', "");
@@ -75977,16 +76567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126267, '\p{^Nv=2.000000000000000e+03}', "");
     Expect(1, 126267, '\P{Nv=2.000000000000000e+03}', "");
     Expect(0, 126267, '\P{^Nv=2.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value= :=0_0_2_000}');
-    Error('\P{Is_Numeric_Value= :=0_0_2_000}');
-    Expect(1, 126266, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(0, 126266, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(0, 126266, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(1, 126266, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(0, 126267, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(1, 126267, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(1, 126267, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
-    Expect(0, 126267, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_2_000}', "");
+    Error('\p{Is_Numeric_Value=_/a/00002000}');
+    Error('\P{Is_Numeric_Value=_/a/00002000}');
+    Expect(1, 126266, '\p{Is_Numeric_Value=000000002000}', "");
+    Expect(0, 126266, '\p{^Is_Numeric_Value=000000002000}', "");
+    Expect(0, 126266, '\P{Is_Numeric_Value=000000002000}', "");
+    Expect(1, 126266, '\P{^Is_Numeric_Value=000000002000}', "");
+    Expect(0, 126267, '\p{Is_Numeric_Value=000000002000}', "");
+    Expect(1, 126267, '\p{^Is_Numeric_Value=000000002000}', "");
+    Expect(1, 126267, '\P{Is_Numeric_Value=000000002000}', "");
+    Expect(0, 126267, '\P{^Is_Numeric_Value=000000002000}', "");
     Expect(1, 126266, '\p{Is_Numeric_Value=2.000000000000000e+03}', "");
     Expect(0, 126266, '\p{^Is_Numeric_Value=2.000000000000000e+03}', "");
     Expect(0, 126266, '\P{Is_Numeric_Value=2.000000000000000e+03}', "");
@@ -75995,16 +76585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126267, '\p{^Is_Numeric_Value=2.000000000000000e+03}', "");
     Expect(1, 126267, '\P{Is_Numeric_Value=2.000000000000000e+03}', "");
     Expect(0, 126267, '\P{^Is_Numeric_Value=2.000000000000000e+03}', "");
-    Error('\p{Is_Nv= :=+000200_0}');
-    Error('\P{Is_Nv= :=+000200_0}');
-    Expect(1, 126266, '\p{Is_Nv=000_000_020_00}', "");
-    Expect(0, 126266, '\p{^Is_Nv=000_000_020_00}', "");
-    Expect(0, 126266, '\P{Is_Nv=000_000_020_00}', "");
-    Expect(1, 126266, '\P{^Is_Nv=000_000_020_00}', "");
-    Expect(0, 126267, '\p{Is_Nv=000_000_020_00}', "");
-    Expect(1, 126267, '\p{^Is_Nv=000_000_020_00}', "");
-    Expect(1, 126267, '\P{Is_Nv=000_000_020_00}', "");
-    Expect(0, 126267, '\P{^Is_Nv=000_000_020_00}', "");
+    Error('\p{Is_Nv=:=+00_00_00_00_20_00}');
+    Error('\P{Is_Nv=:=+00_00_00_00_20_00}');
+    Expect(1, 126266, '\p{Is_Nv=+0000000002000}', "");
+    Expect(0, 126266, '\p{^Is_Nv=+0000000002000}', "");
+    Expect(0, 126266, '\P{Is_Nv=+0000000002000}', "");
+    Expect(1, 126266, '\P{^Is_Nv=+0000000002000}', "");
+    Expect(0, 126267, '\p{Is_Nv=+0000000002000}', "");
+    Expect(1, 126267, '\p{^Is_Nv=+0000000002000}', "");
+    Expect(1, 126267, '\P{Is_Nv=+0000000002000}', "");
+    Expect(0, 126267, '\P{^Is_Nv=+0000000002000}', "");
     Expect(1, 126266, '\p{Is_Nv=2.000000000000000e+03}', "");
     Expect(0, 126266, '\p{^Is_Nv=2.000000000000000e+03}', "");
     Expect(0, 126266, '\P{Is_Nv=2.000000000000000e+03}', "");
@@ -76013,18 +76603,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126267, '\p{^Is_Nv=2.000000000000000e+03}', "");
     Expect(1, 126267, '\P{Is_Nv=2.000000000000000e+03}', "");
     Expect(0, 126267, '\P{^Is_Nv=2.000000000000000e+03}', "");
-    Error('\p{Numeric_Value=	 0_0_0_0_0_0_0_2_0_000/a/}');
-    Error('\P{Numeric_Value=	 0_0_0_0_0_0_0_2_0_000/a/}');
+    Error('\p{Numeric_Value:   :=	_+2_0_0_00}');
+    Error('\P{Numeric_Value:   :=	_+2_0_0_00}');
     Expect(1, 126246, '\p{Numeric_Value=:\A20000\z:}', "");;
     Expect(0, 126247, '\p{Numeric_Value=:\A20000\z:}', "");;
-    Expect(1, 126246, '\p{Numeric_Value=0_2_0_0_00}', "");
-    Expect(0, 126246, '\p{^Numeric_Value=0_2_0_0_00}', "");
-    Expect(0, 126246, '\P{Numeric_Value=0_2_0_0_00}', "");
-    Expect(1, 126246, '\P{^Numeric_Value=0_2_0_0_00}', "");
-    Expect(0, 126247, '\p{Numeric_Value=0_2_0_0_00}', "");
-    Expect(1, 126247, '\p{^Numeric_Value=0_2_0_0_00}', "");
-    Expect(1, 126247, '\P{Numeric_Value=0_2_0_0_00}', "");
-    Expect(0, 126247, '\P{^Numeric_Value=0_2_0_0_00}', "");
+    Expect(1, 126246, '\p{Numeric_Value=0000_0000_0200_00}', "");
+    Expect(0, 126246, '\p{^Numeric_Value=0000_0000_0200_00}', "");
+    Expect(0, 126246, '\P{Numeric_Value=0000_0000_0200_00}', "");
+    Expect(1, 126246, '\P{^Numeric_Value=0000_0000_0200_00}', "");
+    Expect(0, 126247, '\p{Numeric_Value=0000_0000_0200_00}', "");
+    Expect(1, 126247, '\p{^Numeric_Value=0000_0000_0200_00}', "");
+    Expect(1, 126247, '\P{Numeric_Value=0000_0000_0200_00}', "");
+    Expect(0, 126247, '\P{^Numeric_Value=0000_0000_0200_00}', "");
     Expect(1, 126246, '\p{Numeric_Value=2.000000000000000e+04}', "");
     Expect(0, 126246, '\p{^Numeric_Value=2.000000000000000e+04}', "");
     Expect(0, 126246, '\P{Numeric_Value=2.000000000000000e+04}', "");
@@ -76033,18 +76623,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126247, '\p{^Numeric_Value=2.000000000000000e+04}', "");
     Expect(1, 126247, '\P{Numeric_Value=2.000000000000000e+04}', "");
     Expect(0, 126247, '\P{^Numeric_Value=2.000000000000000e+04}', "");
-    Error('\p{Nv=_-000_002_000_0/a/}');
-    Error('\P{Nv=_-000_002_000_0/a/}');
+    Error('\p{Nv=:= _000020000}');
+    Error('\P{Nv=:= _000020000}');
     Expect(1, 126246, '\p{Nv=:\A20000\z:}', "");;
     Expect(0, 126247, '\p{Nv=:\A20000\z:}', "");;
-    Expect(1, 126246, '\p{Nv=000000020000}', "");
-    Expect(0, 126246, '\p{^Nv=000000020000}', "");
-    Expect(0, 126246, '\P{Nv=000000020000}', "");
-    Expect(1, 126246, '\P{^Nv=000000020000}', "");
-    Expect(0, 126247, '\p{Nv=000000020000}', "");
-    Expect(1, 126247, '\p{^Nv=000000020000}', "");
-    Expect(1, 126247, '\P{Nv=000000020000}', "");
-    Expect(0, 126247, '\P{^Nv=000000020000}', "");
+    Expect(1, 126246, '\p{Nv=00000002000_0}', "");
+    Expect(0, 126246, '\p{^Nv=00000002000_0}', "");
+    Expect(0, 126246, '\P{Nv=00000002000_0}', "");
+    Expect(1, 126246, '\P{^Nv=00000002000_0}', "");
+    Expect(0, 126247, '\p{Nv=00000002000_0}', "");
+    Expect(1, 126247, '\p{^Nv=00000002000_0}', "");
+    Expect(1, 126247, '\P{Nv=00000002000_0}', "");
+    Expect(0, 126247, '\P{^Nv=00000002000_0}', "");
     Expect(1, 126246, '\p{Nv=2.000000000000000e+04}', "");
     Expect(0, 126246, '\p{^Nv=2.000000000000000e+04}', "");
     Expect(0, 126246, '\P{Nv=2.000000000000000e+04}', "");
@@ -76053,16 +76643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126247, '\p{^Nv=2.000000000000000e+04}', "");
     Expect(1, 126247, '\P{Nv=2.000000000000000e+04}', "");
     Expect(0, 126247, '\P{^Nv=2.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value=/a/	00000_00200_00}');
-    Error('\P{Is_Numeric_Value=/a/	00000_00200_00}');
-    Expect(1, 126246, '\p{Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(0, 126246, '\p{^Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(0, 126246, '\P{Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(1, 126246, '\P{^Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(0, 126247, '\p{Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(1, 126247, '\p{^Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(1, 126247, '\P{Is_Numeric_Value=0_0_0_0_2_0000}', "");
-    Expect(0, 126247, '\P{^Is_Numeric_Value=0_0_0_0_2_0000}', "");
+    Error('\p{Is_Numeric_Value= -0_0_0_0_0_0_0_2_0_0_00/a/}');
+    Error('\P{Is_Numeric_Value= -0_0_0_0_0_0_0_2_0_0_00/a/}');
+    Expect(1, 126246, '\p{Is_Numeric_Value=+00000000020000}', "");
+    Expect(0, 126246, '\p{^Is_Numeric_Value=+00000000020000}', "");
+    Expect(0, 126246, '\P{Is_Numeric_Value=+00000000020000}', "");
+    Expect(1, 126246, '\P{^Is_Numeric_Value=+00000000020000}', "");
+    Expect(0, 126247, '\p{Is_Numeric_Value=+00000000020000}', "");
+    Expect(1, 126247, '\p{^Is_Numeric_Value=+00000000020000}', "");
+    Expect(1, 126247, '\P{Is_Numeric_Value=+00000000020000}', "");
+    Expect(0, 126247, '\P{^Is_Numeric_Value=+00000000020000}', "");
     Expect(1, 126246, '\p{Is_Numeric_Value=2.000000000000000e+04}', "");
     Expect(0, 126246, '\p{^Is_Numeric_Value=2.000000000000000e+04}', "");
     Expect(0, 126246, '\P{Is_Numeric_Value=2.000000000000000e+04}', "");
@@ -76071,16 +76661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126247, '\p{^Is_Numeric_Value=2.000000000000000e+04}', "");
     Expect(1, 126247, '\P{Is_Numeric_Value=2.000000000000000e+04}', "");
     Expect(0, 126247, '\P{^Is_Numeric_Value=2.000000000000000e+04}', "");
-    Error('\p{Is_Nv=_:=0_0_0_0_0_0_0_020000}');
-    Error('\P{Is_Nv=_:=0_0_0_0_0_0_0_020000}');
-    Expect(1, 126246, '\p{Is_Nv=0_0_2_0_0_00}', "");
-    Expect(0, 126246, '\p{^Is_Nv=0_0_2_0_0_00}', "");
-    Expect(0, 126246, '\P{Is_Nv=0_0_2_0_0_00}', "");
-    Expect(1, 126246, '\P{^Is_Nv=0_0_2_0_0_00}', "");
-    Expect(0, 126247, '\p{Is_Nv=0_0_2_0_0_00}', "");
-    Expect(1, 126247, '\p{^Is_Nv=0_0_2_0_0_00}', "");
-    Expect(1, 126247, '\P{Is_Nv=0_0_2_0_0_00}', "");
-    Expect(0, 126247, '\P{^Is_Nv=0_0_2_0_0_00}', "");
+    Error('\p{Is_Nv:  /a/020000}');
+    Error('\P{Is_Nv:  /a/020000}');
+    Expect(1, 126246, '\p{Is_Nv=0000002000_0}', "");
+    Expect(0, 126246, '\p{^Is_Nv=0000002000_0}', "");
+    Expect(0, 126246, '\P{Is_Nv=0000002000_0}', "");
+    Expect(1, 126246, '\P{^Is_Nv=0000002000_0}', "");
+    Expect(0, 126247, '\p{Is_Nv=0000002000_0}', "");
+    Expect(1, 126247, '\p{^Is_Nv=0000002000_0}', "");
+    Expect(1, 126247, '\P{Is_Nv=0000002000_0}', "");
+    Expect(0, 126247, '\P{^Is_Nv=0000002000_0}', "");
     Expect(1, 126246, '\p{Is_Nv=2.000000000000000e+04}', "");
     Expect(0, 126246, '\p{^Is_Nv=2.000000000000000e+04}', "");
     Expect(0, 126246, '\P{Is_Nv=2.000000000000000e+04}', "");
@@ -76089,38 +76679,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126247, '\p{^Is_Nv=2.000000000000000e+04}', "");
     Expect(1, 126247, '\P{Is_Nv=2.000000000000000e+04}', "");
     Expect(0, 126247, '\P{^Is_Nv=2.000000000000000e+04}', "");
-    Error('\p{Numeric_Value::=-0_0_0_0_0_0_0_2_00000}');
-    Error('\P{Numeric_Value::=-0_0_0_0_0_0_0_2_00000}');
+    Error('\p{Numeric_Value=:= 0_0_0_0_0_0_0_0_0_200000}');
+    Error('\P{Numeric_Value=:= 0_0_0_0_0_0_0_0_0_200000}');
     Expect(1, 126111, '\p{Numeric_Value=:\A200000\z:}', "");;
     Expect(0, 126112, '\p{Numeric_Value=:\A200000\z:}', "");;
-    Expect(1, 126111, '\p{Numeric_Value=+200000}', "");
-    Expect(0, 126111, '\p{^Numeric_Value=+200000}', "");
-    Expect(0, 126111, '\P{Numeric_Value=+200000}', "");
-    Expect(1, 126111, '\P{^Numeric_Value=+200000}', "");
-    Expect(0, 126112, '\p{Numeric_Value=+200000}', "");
-    Expect(1, 126112, '\p{^Numeric_Value=+200000}', "");
-    Expect(1, 126112, '\P{Numeric_Value=+200000}', "");
-    Expect(0, 126112, '\P{^Numeric_Value=+200000}', "");
-    Expect(1, 126111, '\p{Numeric_Value:2.000000000000000e+05}', "");
-    Expect(0, 126111, '\p{^Numeric_Value:2.000000000000000e+05}', "");
-    Expect(0, 126111, '\P{Numeric_Value:2.000000000000000e+05}', "");
-    Expect(1, 126111, '\P{^Numeric_Value:2.000000000000000e+05}', "");
-    Expect(0, 126112, '\p{Numeric_Value:2.000000000000000e+05}', "");
-    Expect(1, 126112, '\p{^Numeric_Value:2.000000000000000e+05}', "");
-    Expect(1, 126112, '\P{Numeric_Value:2.000000000000000e+05}', "");
-    Expect(0, 126112, '\P{^Numeric_Value:2.000000000000000e+05}', "");
-    Error('\p{Nv=/a/-+000000020000_0}');
-    Error('\P{Nv=/a/-+000000020000_0}');
+    Expect(1, 126111, '\p{Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(0, 126111, '\p{^Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(0, 126111, '\P{Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(1, 126111, '\P{^Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(0, 126112, '\p{Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(1, 126112, '\p{^Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(1, 126112, '\P{Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(0, 126112, '\P{^Numeric_Value=0_0_0_0_2_00000}', "");
+    Expect(1, 126111, '\p{Numeric_Value=2.000000000000000e+05}', "");
+    Expect(0, 126111, '\p{^Numeric_Value=2.000000000000000e+05}', "");
+    Expect(0, 126111, '\P{Numeric_Value=2.000000000000000e+05}', "");
+    Expect(1, 126111, '\P{^Numeric_Value=2.000000000000000e+05}', "");
+    Expect(0, 126112, '\p{Numeric_Value=2.000000000000000e+05}', "");
+    Expect(1, 126112, '\p{^Numeric_Value=2.000000000000000e+05}', "");
+    Expect(1, 126112, '\P{Numeric_Value=2.000000000000000e+05}', "");
+    Expect(0, 126112, '\P{^Numeric_Value=2.000000000000000e+05}', "");
+    Error('\p{Nv=/a/ 	00000200000}');
+    Error('\P{Nv=/a/ 	00000200000}');
     Expect(1, 126111, '\p{Nv=:\A200000\z:}', "");;
     Expect(0, 126112, '\p{Nv=:\A200000\z:}', "");;
-    Expect(1, 126111, '\p{Nv=0000000200000}', "");
-    Expect(0, 126111, '\p{^Nv=0000000200000}', "");
-    Expect(0, 126111, '\P{Nv=0000000200000}', "");
-    Expect(1, 126111, '\P{^Nv=0000000200000}', "");
-    Expect(0, 126112, '\p{Nv=0000000200000}', "");
-    Expect(1, 126112, '\p{^Nv=0000000200000}', "");
-    Expect(1, 126112, '\P{Nv=0000000200000}', "");
-    Expect(0, 126112, '\P{^Nv=0000000200000}', "");
+    Expect(1, 126111, '\p{Nv=000200000}', "");
+    Expect(0, 126111, '\p{^Nv=000200000}', "");
+    Expect(0, 126111, '\P{Nv=000200000}', "");
+    Expect(1, 126111, '\P{^Nv=000200000}', "");
+    Expect(0, 126112, '\p{Nv=000200000}', "");
+    Expect(1, 126112, '\p{^Nv=000200000}', "");
+    Expect(1, 126112, '\P{Nv=000200000}', "");
+    Expect(0, 126112, '\P{^Nv=000200000}', "");
     Expect(1, 126111, '\p{Nv=2.000000000000000e+05}', "");
     Expect(0, 126111, '\p{^Nv=2.000000000000000e+05}', "");
     Expect(0, 126111, '\P{Nv=2.000000000000000e+05}', "");
@@ -76129,16 +76719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126112, '\p{^Nv=2.000000000000000e+05}', "");
     Expect(1, 126112, '\P{Nv=2.000000000000000e+05}', "");
     Expect(0, 126112, '\P{^Nv=2.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=:=	-000000000200000}');
-    Error('\P{Is_Numeric_Value=:=	-000000000200000}');
-    Expect(1, 126111, '\p{Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(0, 126111, '\p{^Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(0, 126111, '\P{Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(1, 126111, '\P{^Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(0, 126112, '\p{Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(1, 126112, '\p{^Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(1, 126112, '\P{Is_Numeric_Value:+00_00_00_20_0000}', "");
-    Expect(0, 126112, '\P{^Is_Numeric_Value:+00_00_00_20_0000}', "");
+    Error('\p{Is_Numeric_Value=_/a/+0_0_0_0_0_2_0_0_0_00}');
+    Error('\P{Is_Numeric_Value=_/a/+0_0_0_0_0_2_0_0_0_00}');
+    Expect(1, 126111, '\p{Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(0, 126111, '\p{^Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(0, 126111, '\P{Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(1, 126111, '\P{^Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(0, 126112, '\p{Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(1, 126112, '\p{^Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(1, 126112, '\P{Is_Numeric_Value=+0000000020000_0}', "");
+    Expect(0, 126112, '\P{^Is_Numeric_Value=+0000000020000_0}', "");
     Expect(1, 126111, '\p{Is_Numeric_Value=2.000000000000000e+05}', "");
     Expect(0, 126111, '\p{^Is_Numeric_Value=2.000000000000000e+05}', "");
     Expect(0, 126111, '\P{Is_Numeric_Value=2.000000000000000e+05}', "");
@@ -76147,16 +76737,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126112, '\p{^Is_Numeric_Value=2.000000000000000e+05}', "");
     Expect(1, 126112, '\P{Is_Numeric_Value=2.000000000000000e+05}', "");
     Expect(0, 126112, '\P{^Is_Numeric_Value=2.000000000000000e+05}', "");
-    Error('\p{Is_Nv=:=-_000200000}');
-    Error('\P{Is_Nv=:=-_000200000}');
-    Expect(1, 126111, '\p{Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(0, 126111, '\p{^Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(0, 126111, '\P{Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(1, 126111, '\P{^Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(0, 126112, '\p{Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(1, 126112, '\p{^Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(1, 126112, '\P{Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
-    Expect(0, 126112, '\P{^Is_Nv=0_0_0_0_0_0_0_0_2_00000}', "");
+    Error('\p{Is_Nv=/a/-+0000200000}');
+    Error('\P{Is_Nv=/a/-+0000200000}');
+    Expect(1, 126111, '\p{Is_Nv:	0020000_0}', "");
+    Expect(0, 126111, '\p{^Is_Nv:	0020000_0}', "");
+    Expect(0, 126111, '\P{Is_Nv:	0020000_0}', "");
+    Expect(1, 126111, '\P{^Is_Nv:	0020000_0}', "");
+    Expect(0, 126112, '\p{Is_Nv:	0020000_0}', "");
+    Expect(1, 126112, '\p{^Is_Nv:	0020000_0}', "");
+    Expect(1, 126112, '\P{Is_Nv:	0020000_0}', "");
+    Expect(0, 126112, '\P{^Is_Nv:	0020000_0}', "");
     Expect(1, 126111, '\p{Is_Nv=2.000000000000000e+05}', "");
     Expect(0, 126111, '\p{^Is_Nv=2.000000000000000e+05}', "");
     Expect(0, 126111, '\P{Is_Nv=2.000000000000000e+05}', "");
@@ -76165,18 +76755,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126112, '\p{^Is_Nv=2.000000000000000e+05}', "");
     Expect(1, 126112, '\P{Is_Nv=2.000000000000000e+05}', "");
     Expect(0, 126112, '\P{^Is_Nv=2.000000000000000e+05}', "");
-    Error('\p{Numeric_Value:   :=--+00_20_00_00_00}');
-    Error('\P{Numeric_Value:   :=--+00_20_00_00_00}');
+    Error('\p{Numeric_Value=--+00020000000:=}');
+    Error('\P{Numeric_Value=--+00020000000:=}');
     Expect(1, 126114, '\p{Numeric_Value=:\A20000000\z:}', "");;
     Expect(0, 126115, '\p{Numeric_Value=:\A20000000\z:}', "");;
-    Expect(1, 126114, '\p{Numeric_Value=020000000}', "");
-    Expect(0, 126114, '\p{^Numeric_Value=020000000}', "");
-    Expect(0, 126114, '\P{Numeric_Value=020000000}', "");
-    Expect(1, 126114, '\P{^Numeric_Value=020000000}', "");
-    Expect(0, 126115, '\p{Numeric_Value=020000000}', "");
-    Expect(1, 126115, '\p{^Numeric_Value=020000000}', "");
-    Expect(1, 126115, '\P{Numeric_Value=020000000}', "");
-    Expect(0, 126115, '\P{^Numeric_Value=020000000}', "");
+    Expect(1, 126114, '\p{Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(0, 126114, '\p{^Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(0, 126114, '\P{Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(1, 126114, '\P{^Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(0, 126115, '\p{Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(1, 126115, '\p{^Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(1, 126115, '\P{Numeric_Value=0_0_0_0_2_0_0_00000}', "");
+    Expect(0, 126115, '\P{^Numeric_Value=0_0_0_0_2_0_0_00000}', "");
     Expect(1, 126114, '\p{Numeric_Value=2.000000000000000e+07}', "");
     Expect(0, 126114, '\p{^Numeric_Value=2.000000000000000e+07}', "");
     Expect(0, 126114, '\P{Numeric_Value=2.000000000000000e+07}', "");
@@ -76185,18 +76775,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126115, '\p{^Numeric_Value=2.000000000000000e+07}', "");
     Expect(1, 126115, '\P{Numeric_Value=2.000000000000000e+07}', "");
     Expect(0, 126115, '\P{^Numeric_Value=2.000000000000000e+07}', "");
-    Error('\p{Nv=:=	0_0_2_0_0_0_0_0_00}');
-    Error('\P{Nv=:=	0_0_2_0_0_0_0_0_00}');
+    Error('\p{Nv=:=0_0_0_0_2_0_000000}');
+    Error('\P{Nv=:=0_0_0_0_2_0_000000}');
     Expect(1, 126114, '\p{Nv=:\A20000000\z:}', "");;
     Expect(0, 126115, '\p{Nv=:\A20000000\z:}', "");;
-    Expect(1, 126114, '\p{Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(0, 126114, '\p{^Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(0, 126114, '\P{Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(1, 126114, '\P{^Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(0, 126115, '\p{Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(1, 126115, '\p{^Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(1, 126115, '\P{Nv=0_0_0_0_0_0_0_2_0000000}', "");
-    Expect(0, 126115, '\P{^Nv=0_0_0_0_0_0_0_2_0000000}', "");
+    Expect(1, 126114, '\p{Nv=+0000000020000000}', "");
+    Expect(0, 126114, '\p{^Nv=+0000000020000000}', "");
+    Expect(0, 126114, '\P{Nv=+0000000020000000}', "");
+    Expect(1, 126114, '\P{^Nv=+0000000020000000}', "");
+    Expect(0, 126115, '\p{Nv=+0000000020000000}', "");
+    Expect(1, 126115, '\p{^Nv=+0000000020000000}', "");
+    Expect(1, 126115, '\P{Nv=+0000000020000000}', "");
+    Expect(0, 126115, '\P{^Nv=+0000000020000000}', "");
     Expect(1, 126114, '\p{Nv=2.000000000000000e+07}', "");
     Expect(0, 126114, '\p{^Nv=2.000000000000000e+07}', "");
     Expect(0, 126114, '\P{Nv=2.000000000000000e+07}', "");
@@ -76205,16 +76795,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126115, '\p{^Nv=2.000000000000000e+07}', "");
     Expect(1, 126115, '\P{Nv=2.000000000000000e+07}', "");
     Expect(0, 126115, '\P{^Nv=2.000000000000000e+07}', "");
-    Error('\p{Is_Numeric_Value=/a/__000_020_000_000}');
-    Error('\P{Is_Numeric_Value=/a/__000_020_000_000}');
-    Expect(1, 126114, '\p{Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126114, '\p{^Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126114, '\P{Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126114, '\P{^Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126115, '\p{Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126115, '\p{^Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126115, '\P{Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126115, '\P{^Is_Numeric_Value=0_0_0_0_2_0_0_0_0_0_00}', "");
+    Error('\p{Is_Numeric_Value=__+020000000:=}');
+    Error('\P{Is_Numeric_Value=__+020000000:=}');
+    Expect(1, 126114, '\p{Is_Numeric_Value=+00000020000000}', "");
+    Expect(0, 126114, '\p{^Is_Numeric_Value=+00000020000000}', "");
+    Expect(0, 126114, '\P{Is_Numeric_Value=+00000020000000}', "");
+    Expect(1, 126114, '\P{^Is_Numeric_Value=+00000020000000}', "");
+    Expect(0, 126115, '\p{Is_Numeric_Value=+00000020000000}', "");
+    Expect(1, 126115, '\p{^Is_Numeric_Value=+00000020000000}', "");
+    Expect(1, 126115, '\P{Is_Numeric_Value=+00000020000000}', "");
+    Expect(0, 126115, '\P{^Is_Numeric_Value=+00000020000000}', "");
     Expect(1, 126114, '\p{Is_Numeric_Value=2.000000000000000e+07}', "");
     Expect(0, 126114, '\p{^Is_Numeric_Value=2.000000000000000e+07}', "");
     Expect(0, 126114, '\P{Is_Numeric_Value=2.000000000000000e+07}', "");
@@ -76223,36 +76813,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126115, '\p{^Is_Numeric_Value=2.000000000000000e+07}', "");
     Expect(1, 126115, '\P{Is_Numeric_Value=2.000000000000000e+07}', "");
     Expect(0, 126115, '\P{^Is_Numeric_Value=2.000000000000000e+07}', "");
-    Error('\p{Is_Nv=__20000000:=}');
-    Error('\P{Is_Nv=__20000000:=}');
-    Expect(1, 126114, '\p{Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126114, '\p{^Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126114, '\P{Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126114, '\P{^Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126115, '\p{Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126115, '\p{^Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126115, '\P{Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(0, 126115, '\P{^Is_Nv=+0_0_0_0_0_2_0_0_0_0_0_00}', "");
-    Expect(1, 126114, '\p{Is_Nv=2.000000000000000e+07}', "");
-    Expect(0, 126114, '\p{^Is_Nv=2.000000000000000e+07}', "");
-    Expect(0, 126114, '\P{Is_Nv=2.000000000000000e+07}', "");
-    Expect(1, 126114, '\P{^Is_Nv=2.000000000000000e+07}', "");
-    Expect(0, 126115, '\p{Is_Nv=2.000000000000000e+07}', "");
-    Expect(1, 126115, '\p{^Is_Nv=2.000000000000000e+07}', "");
-    Expect(1, 126115, '\P{Is_Nv=2.000000000000000e+07}', "");
-    Expect(0, 126115, '\P{^Is_Nv=2.000000000000000e+07}', "");
-    Error('\p{Numeric_Value=/a/	+2_1}');
-    Error('\P{Numeric_Value=/a/	+2_1}');
+    Error('\p{Is_Nv=-:=020000000}');
+    Error('\P{Is_Nv=-:=020000000}');
+    Expect(1, 126114, '\p{Is_Nv=000020000000}', "");
+    Expect(0, 126114, '\p{^Is_Nv=000020000000}', "");
+    Expect(0, 126114, '\P{Is_Nv=000020000000}', "");
+    Expect(1, 126114, '\P{^Is_Nv=000020000000}', "");
+    Expect(0, 126115, '\p{Is_Nv=000020000000}', "");
+    Expect(1, 126115, '\p{^Is_Nv=000020000000}', "");
+    Expect(1, 126115, '\P{Is_Nv=000020000000}', "");
+    Expect(0, 126115, '\P{^Is_Nv=000020000000}', "");
+    Expect(1, 126114, '\p{Is_Nv:	2.000000000000000e+07}', "");
+    Expect(0, 126114, '\p{^Is_Nv:	2.000000000000000e+07}', "");
+    Expect(0, 126114, '\P{Is_Nv:	2.000000000000000e+07}', "");
+    Expect(1, 126114, '\P{^Is_Nv:	2.000000000000000e+07}', "");
+    Expect(0, 126115, '\p{Is_Nv:	2.000000000000000e+07}', "");
+    Expect(1, 126115, '\p{^Is_Nv:	2.000000000000000e+07}', "");
+    Expect(1, 126115, '\P{Is_Nv:	2.000000000000000e+07}', "");
+    Expect(0, 126115, '\P{^Is_Nv:	2.000000000000000e+07}', "");
+    Error('\p{Numeric_Value=-:=000000021}');
+    Error('\P{Numeric_Value=-:=000000021}');
     Expect(1, 12881, '\p{Numeric_Value=:\A21\z:}', "");;
     Expect(0, 12882, '\p{Numeric_Value=:\A21\z:}', "");;
-    Expect(1, 12881, '\p{Numeric_Value:	000_000_21}', "");
-    Expect(0, 12881, '\p{^Numeric_Value:	000_000_21}', "");
-    Expect(0, 12881, '\P{Numeric_Value:	000_000_21}', "");
-    Expect(1, 12881, '\P{^Numeric_Value:	000_000_21}', "");
-    Expect(0, 12882, '\p{Numeric_Value:	000_000_21}', "");
-    Expect(1, 12882, '\p{^Numeric_Value:	000_000_21}', "");
-    Expect(1, 12882, '\P{Numeric_Value:	000_000_21}', "");
-    Expect(0, 12882, '\P{^Numeric_Value:	000_000_21}', "");
+    Expect(1, 12881, '\p{Numeric_Value=000021}', "");
+    Expect(0, 12881, '\p{^Numeric_Value=000021}', "");
+    Expect(0, 12881, '\P{Numeric_Value=000021}', "");
+    Expect(1, 12881, '\P{^Numeric_Value=000021}', "");
+    Expect(0, 12882, '\p{Numeric_Value=000021}', "");
+    Expect(1, 12882, '\p{^Numeric_Value=000021}', "");
+    Expect(1, 12882, '\P{Numeric_Value=000021}', "");
+    Expect(0, 12882, '\P{^Numeric_Value=000021}', "");
     Expect(1, 12881, '\p{Numeric_Value=2.100000000000000e+01}', "");
     Expect(0, 12881, '\p{^Numeric_Value=2.100000000000000e+01}', "");
     Expect(0, 12881, '\P{Numeric_Value=2.100000000000000e+01}', "");
@@ -76261,18 +76851,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12882, '\p{^Numeric_Value=2.100000000000000e+01}', "");
     Expect(1, 12882, '\P{Numeric_Value=2.100000000000000e+01}', "");
     Expect(0, 12882, '\P{^Numeric_Value=2.100000000000000e+01}', "");
-    Error('\p{Nv:    :=0000_0000_21}');
-    Error('\P{Nv:    :=0000_0000_21}');
+    Error('\p{Nv=-+00000000021/a/}');
+    Error('\P{Nv=-+00000000021/a/}');
     Expect(1, 12881, '\p{Nv=:\A21\z:}', "");;
     Expect(0, 12882, '\p{Nv=:\A21\z:}', "");;
-    Expect(1, 12881, '\p{Nv=0_0_0_0_0_0_21}', "");
-    Expect(0, 12881, '\p{^Nv=0_0_0_0_0_0_21}', "");
-    Expect(0, 12881, '\P{Nv=0_0_0_0_0_0_21}', "");
-    Expect(1, 12881, '\P{^Nv=0_0_0_0_0_0_21}', "");
-    Expect(0, 12882, '\p{Nv=0_0_0_0_0_0_21}', "");
-    Expect(1, 12882, '\p{^Nv=0_0_0_0_0_0_21}', "");
-    Expect(1, 12882, '\P{Nv=0_0_0_0_0_0_21}', "");
-    Expect(0, 12882, '\P{^Nv=0_0_0_0_0_0_21}', "");
+    Expect(1, 12881, '\p{Nv=+02_1}', "");
+    Expect(0, 12881, '\p{^Nv=+02_1}', "");
+    Expect(0, 12881, '\P{Nv=+02_1}', "");
+    Expect(1, 12881, '\P{^Nv=+02_1}', "");
+    Expect(0, 12882, '\p{Nv=+02_1}', "");
+    Expect(1, 12882, '\p{^Nv=+02_1}', "");
+    Expect(1, 12882, '\P{Nv=+02_1}', "");
+    Expect(0, 12882, '\P{^Nv=+02_1}', "");
     Expect(1, 12881, '\p{Nv=2.100000000000000e+01}', "");
     Expect(0, 12881, '\p{^Nv=2.100000000000000e+01}', "");
     Expect(0, 12881, '\P{Nv=2.100000000000000e+01}', "");
@@ -76281,16 +76871,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12882, '\p{^Nv=2.100000000000000e+01}', "");
     Expect(1, 12882, '\P{Nv=2.100000000000000e+01}', "");
     Expect(0, 12882, '\P{^Nv=2.100000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/_00000000021}');
-    Error('\P{Is_Numeric_Value=/a/_00000000021}');
-    Expect(1, 12881, '\p{Is_Numeric_Value=+02_1}', "");
-    Expect(0, 12881, '\p{^Is_Numeric_Value=+02_1}', "");
-    Expect(0, 12881, '\P{Is_Numeric_Value=+02_1}', "");
-    Expect(1, 12881, '\P{^Is_Numeric_Value=+02_1}', "");
-    Expect(0, 12882, '\p{Is_Numeric_Value=+02_1}', "");
-    Expect(1, 12882, '\p{^Is_Numeric_Value=+02_1}', "");
-    Expect(1, 12882, '\P{Is_Numeric_Value=+02_1}', "");
-    Expect(0, 12882, '\P{^Is_Numeric_Value=+02_1}', "");
+    Error('\p{Is_Numeric_Value=		21/a/}');
+    Error('\P{Is_Numeric_Value=		21/a/}');
+    Expect(1, 12881, '\p{Is_Numeric_Value=+0000000021}', "");
+    Expect(0, 12881, '\p{^Is_Numeric_Value=+0000000021}', "");
+    Expect(0, 12881, '\P{Is_Numeric_Value=+0000000021}', "");
+    Expect(1, 12881, '\P{^Is_Numeric_Value=+0000000021}', "");
+    Expect(0, 12882, '\p{Is_Numeric_Value=+0000000021}', "");
+    Expect(1, 12882, '\p{^Is_Numeric_Value=+0000000021}', "");
+    Expect(1, 12882, '\P{Is_Numeric_Value=+0000000021}', "");
+    Expect(0, 12882, '\P{^Is_Numeric_Value=+0000000021}', "");
     Expect(1, 12881, '\p{Is_Numeric_Value=2.100000000000000e+01}', "");
     Expect(0, 12881, '\p{^Is_Numeric_Value=2.100000000000000e+01}', "");
     Expect(0, 12881, '\P{Is_Numeric_Value=2.100000000000000e+01}', "");
@@ -76299,16 +76889,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12882, '\p{^Is_Numeric_Value=2.100000000000000e+01}', "");
     Expect(1, 12882, '\P{Is_Numeric_Value=2.100000000000000e+01}', "");
     Expect(0, 12882, '\P{^Is_Numeric_Value=2.100000000000000e+01}', "");
-    Error('\p{Is_Nv=-:=+00000021}');
-    Error('\P{Is_Nv=-:=+00000021}');
-    Expect(1, 12881, '\p{Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(0, 12881, '\p{^Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(0, 12881, '\P{Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(1, 12881, '\P{^Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(0, 12882, '\p{Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(1, 12882, '\p{^Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(1, 12882, '\P{Is_Nv=+0_0_0_0_0_0_21}', "");
-    Expect(0, 12882, '\P{^Is_Nv=+0_0_0_0_0_0_21}', "");
+    Error('\p{Is_Nv=/a/ 	+21}');
+    Error('\P{Is_Nv=/a/ 	+21}');
+    Expect(1, 12881, '\p{Is_Nv=00021}', "");
+    Expect(0, 12881, '\p{^Is_Nv=00021}', "");
+    Expect(0, 12881, '\P{Is_Nv=00021}', "");
+    Expect(1, 12881, '\P{^Is_Nv=00021}', "");
+    Expect(0, 12882, '\p{Is_Nv=00021}', "");
+    Expect(1, 12882, '\p{^Is_Nv=00021}', "");
+    Expect(1, 12882, '\P{Is_Nv=00021}', "");
+    Expect(0, 12882, '\P{^Is_Nv=00021}', "");
     Expect(1, 12881, '\p{Is_Nv=2.100000000000000e+01}', "");
     Expect(0, 12881, '\p{^Is_Nv=2.100000000000000e+01}', "");
     Expect(0, 12881, '\P{Is_Nv=2.100000000000000e+01}', "");
@@ -76317,56 +76907,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12882, '\p{^Is_Nv=2.100000000000000e+01}', "");
     Expect(1, 12882, '\P{Is_Nv=2.100000000000000e+01}', "");
     Expect(0, 12882, '\P{^Is_Nv=2.100000000000000e+01}', "");
-    Error('\p{Numeric_Value:_:=0_0_0_0_0_0_0_0_2_1_6000}');
-    Error('\P{Numeric_Value:_:=0_0_0_0_0_0_0_0_2_1_6000}');
+    Error('\p{Numeric_Value:		+00000_21600_0/a/}');
+    Error('\P{Numeric_Value:		+00000_21600_0/a/}');
     Expect(1, 74802, '\p{Numeric_Value=:\A216000\z:}', "");;
     Expect(0, 74803, '\p{Numeric_Value=:\A216000\z:}', "");;
-    Expect(1, 74802, '\p{Numeric_Value=00000000216000}', "");
-    Expect(0, 74802, '\p{^Numeric_Value=00000000216000}', "");
-    Expect(0, 74802, '\P{Numeric_Value=00000000216000}', "");
-    Expect(1, 74802, '\P{^Numeric_Value=00000000216000}', "");
-    Expect(0, 74803, '\p{Numeric_Value=00000000216000}', "");
-    Expect(1, 74803, '\p{^Numeric_Value=00000000216000}', "");
-    Expect(1, 74803, '\P{Numeric_Value=00000000216000}', "");
-    Expect(0, 74803, '\P{^Numeric_Value=00000000216000}', "");
-    Expect(1, 74802, '\p{Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(0, 74802, '\p{^Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(0, 74802, '\P{Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(1, 74802, '\P{^Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(0, 74803, '\p{Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(1, 74803, '\p{^Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(1, 74803, '\P{Numeric_Value: 2.160000000000000e+05}', "");
-    Expect(0, 74803, '\P{^Numeric_Value: 2.160000000000000e+05}', "");
-    Error('\p{Nv: 	:=+00000000216000}');
-    Error('\P{Nv: 	:=+00000000216000}');
+    Expect(1, 74802, '\p{Numeric_Value=0000_2160_00}', "");
+    Expect(0, 74802, '\p{^Numeric_Value=0000_2160_00}', "");
+    Expect(0, 74802, '\P{Numeric_Value=0000_2160_00}', "");
+    Expect(1, 74802, '\P{^Numeric_Value=0000_2160_00}', "");
+    Expect(0, 74803, '\p{Numeric_Value=0000_2160_00}', "");
+    Expect(1, 74803, '\p{^Numeric_Value=0000_2160_00}', "");
+    Expect(1, 74803, '\P{Numeric_Value=0000_2160_00}', "");
+    Expect(0, 74803, '\P{^Numeric_Value=0000_2160_00}', "");
+    Expect(1, 74802, '\p{Numeric_Value=2.160000000000000e+05}', "");
+    Expect(0, 74802, '\p{^Numeric_Value=2.160000000000000e+05}', "");
+    Expect(0, 74802, '\P{Numeric_Value=2.160000000000000e+05}', "");
+    Expect(1, 74802, '\P{^Numeric_Value=2.160000000000000e+05}', "");
+    Expect(0, 74803, '\p{Numeric_Value=2.160000000000000e+05}', "");
+    Expect(1, 74803, '\p{^Numeric_Value=2.160000000000000e+05}', "");
+    Expect(1, 74803, '\P{Numeric_Value=2.160000000000000e+05}', "");
+    Expect(0, 74803, '\P{^Numeric_Value=2.160000000000000e+05}', "");
+    Error('\p{Nv=/a/		0_0_0_0_0_2_1_6000}');
+    Error('\P{Nv=/a/		0_0_0_0_0_2_1_6000}');
     Expect(1, 74802, '\p{Nv=:\A216000\z:}', "");;
     Expect(0, 74803, '\p{Nv=:\A216000\z:}', "");;
-    Expect(1, 74802, '\p{Nv=0_0_0_2_1_6000}', "");
-    Expect(0, 74802, '\p{^Nv=0_0_0_2_1_6000}', "");
-    Expect(0, 74802, '\P{Nv=0_0_0_2_1_6000}', "");
-    Expect(1, 74802, '\P{^Nv=0_0_0_2_1_6000}', "");
-    Expect(0, 74803, '\p{Nv=0_0_0_2_1_6000}', "");
-    Expect(1, 74803, '\p{^Nv=0_0_0_2_1_6000}', "");
-    Expect(1, 74803, '\P{Nv=0_0_0_2_1_6000}', "");
-    Expect(0, 74803, '\P{^Nv=0_0_0_2_1_6000}', "");
-    Expect(1, 74802, '\p{Nv=2.160000000000000e+05}', "");
-    Expect(0, 74802, '\p{^Nv=2.160000000000000e+05}', "");
-    Expect(0, 74802, '\P{Nv=2.160000000000000e+05}', "");
-    Expect(1, 74802, '\P{^Nv=2.160000000000000e+05}', "");
-    Expect(0, 74803, '\p{Nv=2.160000000000000e+05}', "");
-    Expect(1, 74803, '\p{^Nv=2.160000000000000e+05}', "");
-    Expect(1, 74803, '\P{Nv=2.160000000000000e+05}', "");
-    Expect(0, 74803, '\P{^Nv=2.160000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value:	-_000000000216000/a/}');
-    Error('\P{Is_Numeric_Value:	-_000000000216000/a/}');
-    Expect(1, 74802, '\p{Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(0, 74802, '\p{^Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(0, 74802, '\P{Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(1, 74802, '\P{^Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(0, 74803, '\p{Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(1, 74803, '\p{^Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(1, 74803, '\P{Is_Numeric_Value=0000000_0021600_0}', "");
-    Expect(0, 74803, '\P{^Is_Numeric_Value=0000000_0021600_0}', "");
+    Expect(1, 74802, '\p{Nv=000000000216000}', "");
+    Expect(0, 74802, '\p{^Nv=000000000216000}', "");
+    Expect(0, 74802, '\P{Nv=000000000216000}', "");
+    Expect(1, 74802, '\P{^Nv=000000000216000}', "");
+    Expect(0, 74803, '\p{Nv=000000000216000}', "");
+    Expect(1, 74803, '\p{^Nv=000000000216000}', "");
+    Expect(1, 74803, '\P{Nv=000000000216000}', "");
+    Expect(0, 74803, '\P{^Nv=000000000216000}', "");
+    Expect(1, 74802, '\p{Nv:   2.160000000000000e+05}', "");
+    Expect(0, 74802, '\p{^Nv:   2.160000000000000e+05}', "");
+    Expect(0, 74802, '\P{Nv:   2.160000000000000e+05}', "");
+    Expect(1, 74802, '\P{^Nv:   2.160000000000000e+05}', "");
+    Expect(0, 74803, '\p{Nv:   2.160000000000000e+05}', "");
+    Expect(1, 74803, '\p{^Nv:   2.160000000000000e+05}', "");
+    Expect(1, 74803, '\P{Nv:   2.160000000000000e+05}', "");
+    Expect(0, 74803, '\P{^Nv:   2.160000000000000e+05}', "");
+    Error('\p{Is_Numeric_Value::=_ 0216000}');
+    Error('\P{Is_Numeric_Value::=_ 0216000}');
+    Expect(1, 74802, '\p{Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(0, 74802, '\p{^Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(0, 74802, '\P{Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(1, 74802, '\P{^Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(0, 74803, '\p{Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(1, 74803, '\p{^Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(1, 74803, '\P{Is_Numeric_Value=+2_1_6_000}', "");
+    Expect(0, 74803, '\P{^Is_Numeric_Value=+2_1_6_000}', "");
     Expect(1, 74802, '\p{Is_Numeric_Value=2.160000000000000e+05}', "");
     Expect(0, 74802, '\p{^Is_Numeric_Value=2.160000000000000e+05}', "");
     Expect(0, 74802, '\P{Is_Numeric_Value=2.160000000000000e+05}', "");
@@ -76375,36 +76965,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 74803, '\p{^Is_Numeric_Value=2.160000000000000e+05}', "");
     Expect(1, 74803, '\P{Is_Numeric_Value=2.160000000000000e+05}', "");
     Expect(0, 74803, '\P{^Is_Numeric_Value=2.160000000000000e+05}', "");
-    Error('\p{Is_Nv= 	+000000_021600_0:=}');
-    Error('\P{Is_Nv= 	+000000_021600_0:=}');
-    Expect(1, 74802, '\p{Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(0, 74802, '\p{^Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(0, 74802, '\P{Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(1, 74802, '\P{^Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(0, 74803, '\p{Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(1, 74803, '\p{^Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(1, 74803, '\P{Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(0, 74803, '\P{^Is_Nv=+0_0_0_0_2_1_6_000}', "");
-    Expect(1, 74802, '\p{Is_Nv:   2.160000000000000e+05}', "");
-    Expect(0, 74802, '\p{^Is_Nv:   2.160000000000000e+05}', "");
-    Expect(0, 74802, '\P{Is_Nv:   2.160000000000000e+05}', "");
-    Expect(1, 74802, '\P{^Is_Nv:   2.160000000000000e+05}', "");
-    Expect(0, 74803, '\p{Is_Nv:   2.160000000000000e+05}', "");
-    Expect(1, 74803, '\p{^Is_Nv:   2.160000000000000e+05}', "");
-    Expect(1, 74803, '\P{Is_Nv:   2.160000000000000e+05}', "");
-    Expect(0, 74803, '\P{^Is_Nv:   2.160000000000000e+05}', "");
-    Error('\p{Numeric_Value=-/a/00000000022}');
-    Error('\P{Numeric_Value=-/a/00000000022}');
+    Error('\p{Is_Nv=/a/	-2_1_6_000}');
+    Error('\P{Is_Nv=/a/	-2_1_6_000}');
+    Expect(1, 74802, '\p{Is_Nv=+00000000216000}', "");
+    Expect(0, 74802, '\p{^Is_Nv=+00000000216000}', "");
+    Expect(0, 74802, '\P{Is_Nv=+00000000216000}', "");
+    Expect(1, 74802, '\P{^Is_Nv=+00000000216000}', "");
+    Expect(0, 74803, '\p{Is_Nv=+00000000216000}', "");
+    Expect(1, 74803, '\p{^Is_Nv=+00000000216000}', "");
+    Expect(1, 74803, '\P{Is_Nv=+00000000216000}', "");
+    Expect(0, 74803, '\P{^Is_Nv=+00000000216000}', "");
+    Expect(1, 74802, '\p{Is_Nv=2.160000000000000e+05}', "");
+    Expect(0, 74802, '\p{^Is_Nv=2.160000000000000e+05}', "");
+    Expect(0, 74802, '\P{Is_Nv=2.160000000000000e+05}', "");
+    Expect(1, 74802, '\P{^Is_Nv=2.160000000000000e+05}', "");
+    Expect(0, 74803, '\p{Is_Nv=2.160000000000000e+05}', "");
+    Expect(1, 74803, '\p{^Is_Nv=2.160000000000000e+05}', "");
+    Expect(1, 74803, '\P{Is_Nv=2.160000000000000e+05}', "");
+    Expect(0, 74803, '\P{^Is_Nv=2.160000000000000e+05}', "");
+    Error('\p{Numeric_Value=/a/	_022}');
+    Error('\P{Numeric_Value=/a/	_022}');
     Expect(1, 12882, '\p{Numeric_Value=:\A22\z:}', "");;
     Expect(0, 12883, '\p{Numeric_Value=:\A22\z:}', "");;
-    Expect(1, 12882, '\p{Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(0, 12882, '\p{^Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(0, 12882, '\P{Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(1, 12882, '\P{^Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(0, 12883, '\p{Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(1, 12883, '\p{^Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(1, 12883, '\P{Numeric_Value=0_0_0_0_0_22}', "");
-    Expect(0, 12883, '\P{^Numeric_Value=0_0_0_0_0_22}', "");
+    Expect(1, 12882, '\p{Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(0, 12882, '\p{^Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(0, 12882, '\P{Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(1, 12882, '\P{^Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(0, 12883, '\p{Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(1, 12883, '\p{^Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(1, 12883, '\P{Numeric_Value=0_0_0_0_0_0_0022}', "");
+    Expect(0, 12883, '\P{^Numeric_Value=0_0_0_0_0_0_0022}', "");
     Expect(1, 12882, '\p{Numeric_Value=2.200000000000000e+01}', "");
     Expect(0, 12882, '\p{^Numeric_Value=2.200000000000000e+01}', "");
     Expect(0, 12882, '\P{Numeric_Value=2.200000000000000e+01}', "");
@@ -76413,18 +77003,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12883, '\p{^Numeric_Value=2.200000000000000e+01}', "");
     Expect(1, 12883, '\P{Numeric_Value=2.200000000000000e+01}', "");
     Expect(0, 12883, '\P{^Numeric_Value=2.200000000000000e+01}', "");
-    Error('\p{Nv: :=02_2}');
-    Error('\P{Nv: :=02_2}');
+    Error('\p{Nv=/a/ 0002_2}');
+    Error('\P{Nv=/a/ 0002_2}');
     Expect(1, 12882, '\p{Nv=:\A22\z:}', "");;
     Expect(0, 12883, '\p{Nv=:\A22\z:}', "");;
-    Expect(1, 12882, '\p{Nv:000022}', "");
-    Expect(0, 12882, '\p{^Nv:000022}', "");
-    Expect(0, 12882, '\P{Nv:000022}', "");
-    Expect(1, 12882, '\P{^Nv:000022}', "");
-    Expect(0, 12883, '\p{Nv:000022}', "");
-    Expect(1, 12883, '\p{^Nv:000022}', "");
-    Expect(1, 12883, '\P{Nv:000022}', "");
-    Expect(0, 12883, '\P{^Nv:000022}', "");
+    Expect(1, 12882, '\p{Nv=00022}', "");
+    Expect(0, 12882, '\p{^Nv=00022}', "");
+    Expect(0, 12882, '\P{Nv=00022}', "");
+    Expect(1, 12882, '\P{^Nv=00022}', "");
+    Expect(0, 12883, '\p{Nv=00022}', "");
+    Expect(1, 12883, '\p{^Nv=00022}', "");
+    Expect(1, 12883, '\P{Nv=00022}', "");
+    Expect(0, 12883, '\P{^Nv=00022}', "");
     Expect(1, 12882, '\p{Nv=2.200000000000000e+01}', "");
     Expect(0, 12882, '\p{^Nv=2.200000000000000e+01}', "");
     Expect(0, 12882, '\P{Nv=2.200000000000000e+01}', "");
@@ -76433,16 +77023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12883, '\p{^Nv=2.200000000000000e+01}', "");
     Expect(1, 12883, '\P{Nv=2.200000000000000e+01}', "");
     Expect(0, 12883, '\P{^Nv=2.200000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=  +0_0_0_0_0_0_0_0_22:=}');
-    Error('\P{Is_Numeric_Value=  +0_0_0_0_0_0_0_0_22:=}');
-    Expect(1, 12882, '\p{Is_Numeric_Value=00002_2}', "");
-    Expect(0, 12882, '\p{^Is_Numeric_Value=00002_2}', "");
-    Expect(0, 12882, '\P{Is_Numeric_Value=00002_2}', "");
-    Expect(1, 12882, '\P{^Is_Numeric_Value=00002_2}', "");
-    Expect(0, 12883, '\p{Is_Numeric_Value=00002_2}', "");
-    Expect(1, 12883, '\p{^Is_Numeric_Value=00002_2}', "");
-    Expect(1, 12883, '\P{Is_Numeric_Value=00002_2}', "");
-    Expect(0, 12883, '\P{^Is_Numeric_Value=00002_2}', "");
+    Error('\p{Is_Numeric_Value= /a/+0_0_0_0_22}');
+    Error('\P{Is_Numeric_Value= /a/+0_0_0_0_22}');
+    Expect(1, 12882, '\p{Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(0, 12882, '\p{^Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(0, 12882, '\P{Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(1, 12882, '\P{^Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(0, 12883, '\p{Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(1, 12883, '\p{^Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(1, 12883, '\P{Is_Numeric_Value=0_0_0_0_0_022}', "");
+    Expect(0, 12883, '\P{^Is_Numeric_Value=0_0_0_0_0_022}', "");
     Expect(1, 12882, '\p{Is_Numeric_Value=2.200000000000000e+01}', "");
     Expect(0, 12882, '\p{^Is_Numeric_Value=2.200000000000000e+01}', "");
     Expect(0, 12882, '\P{Is_Numeric_Value=2.200000000000000e+01}', "");
@@ -76451,36 +77041,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12883, '\p{^Is_Numeric_Value=2.200000000000000e+01}', "");
     Expect(1, 12883, '\P{Is_Numeric_Value=2.200000000000000e+01}', "");
     Expect(0, 12883, '\P{^Is_Numeric_Value=2.200000000000000e+01}', "");
-    Error('\p{Is_Nv=:=	-00000022}');
-    Error('\P{Is_Nv=:=	-00000022}');
-    Expect(1, 12882, '\p{Is_Nv=00000022}', "");
-    Expect(0, 12882, '\p{^Is_Nv=00000022}', "");
-    Expect(0, 12882, '\P{Is_Nv=00000022}', "");
-    Expect(1, 12882, '\P{^Is_Nv=00000022}', "");
-    Expect(0, 12883, '\p{Is_Nv=00000022}', "");
-    Expect(1, 12883, '\p{^Is_Nv=00000022}', "");
-    Expect(1, 12883, '\P{Is_Nv=00000022}', "");
-    Expect(0, 12883, '\P{^Is_Nv=00000022}', "");
-    Expect(1, 12882, '\p{Is_Nv:2.200000000000000e+01}', "");
-    Expect(0, 12882, '\p{^Is_Nv:2.200000000000000e+01}', "");
-    Expect(0, 12882, '\P{Is_Nv:2.200000000000000e+01}', "");
-    Expect(1, 12882, '\P{^Is_Nv:2.200000000000000e+01}', "");
-    Expect(0, 12883, '\p{Is_Nv:2.200000000000000e+01}', "");
-    Expect(1, 12883, '\p{^Is_Nv:2.200000000000000e+01}', "");
-    Expect(1, 12883, '\P{Is_Nv:2.200000000000000e+01}', "");
-    Expect(0, 12883, '\P{^Is_Nv:2.200000000000000e+01}', "");
-    Error('\p{Numeric_Value= :=023}');
-    Error('\P{Numeric_Value= :=023}');
+    Error('\p{Is_Nv=:= _0000022}');
+    Error('\P{Is_Nv=:= _0000022}');
+    Expect(1, 12882, '\p{Is_Nv:+0022}', "");
+    Expect(0, 12882, '\p{^Is_Nv:+0022}', "");
+    Expect(0, 12882, '\P{Is_Nv:+0022}', "");
+    Expect(1, 12882, '\P{^Is_Nv:+0022}', "");
+    Expect(0, 12883, '\p{Is_Nv:+0022}', "");
+    Expect(1, 12883, '\p{^Is_Nv:+0022}', "");
+    Expect(1, 12883, '\P{Is_Nv:+0022}', "");
+    Expect(0, 12883, '\P{^Is_Nv:+0022}', "");
+    Expect(1, 12882, '\p{Is_Nv:   2.200000000000000e+01}', "");
+    Expect(0, 12882, '\p{^Is_Nv:   2.200000000000000e+01}', "");
+    Expect(0, 12882, '\P{Is_Nv:   2.200000000000000e+01}', "");
+    Expect(1, 12882, '\P{^Is_Nv:   2.200000000000000e+01}', "");
+    Expect(0, 12883, '\p{Is_Nv:   2.200000000000000e+01}', "");
+    Expect(1, 12883, '\p{^Is_Nv:   2.200000000000000e+01}', "");
+    Expect(1, 12883, '\P{Is_Nv:   2.200000000000000e+01}', "");
+    Expect(0, 12883, '\P{^Is_Nv:   2.200000000000000e+01}', "");
+    Error('\p{Numeric_Value=	:=+000000002_3}');
+    Error('\P{Numeric_Value=	:=+000000002_3}');
     Expect(1, 12883, '\p{Numeric_Value=:\A23\z:}', "");;
     Expect(0, 12884, '\p{Numeric_Value=:\A23\z:}', "");;
-    Expect(1, 12883, '\p{Numeric_Value=+00_02_3}', "");
-    Expect(0, 12883, '\p{^Numeric_Value=+00_02_3}', "");
-    Expect(0, 12883, '\P{Numeric_Value=+00_02_3}', "");
-    Expect(1, 12883, '\P{^Numeric_Value=+00_02_3}', "");
-    Expect(0, 12884, '\p{Numeric_Value=+00_02_3}', "");
-    Expect(1, 12884, '\p{^Numeric_Value=+00_02_3}', "");
-    Expect(1, 12884, '\P{Numeric_Value=+00_02_3}', "");
-    Expect(0, 12884, '\P{^Numeric_Value=+00_02_3}', "");
+    Expect(1, 12883, '\p{Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(0, 12883, '\p{^Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(0, 12883, '\P{Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(1, 12883, '\P{^Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(0, 12884, '\p{Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(1, 12884, '\p{^Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(1, 12884, '\P{Numeric_Value=0_0_0_0_0_00023}', "");
+    Expect(0, 12884, '\P{^Numeric_Value=0_0_0_0_0_00023}', "");
     Expect(1, 12883, '\p{Numeric_Value=2.300000000000000e+01}', "");
     Expect(0, 12883, '\p{^Numeric_Value=2.300000000000000e+01}', "");
     Expect(0, 12883, '\P{Numeric_Value=2.300000000000000e+01}', "");
@@ -76489,18 +77079,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12884, '\p{^Numeric_Value=2.300000000000000e+01}', "");
     Expect(1, 12884, '\P{Numeric_Value=2.300000000000000e+01}', "");
     Expect(0, 12884, '\P{^Numeric_Value=2.300000000000000e+01}', "");
-    Error('\p{Nv=:=-	02_3}');
-    Error('\P{Nv=:=-	02_3}');
+    Error('\p{Nv=_/a/000_000_000_23}');
+    Error('\P{Nv=_/a/000_000_000_23}');
     Expect(1, 12883, '\p{Nv=:\A23\z:}', "");;
     Expect(0, 12884, '\p{Nv=:\A23\z:}', "");;
-    Expect(1, 12883, '\p{Nv=+0_0_0_0_23}', "");
-    Expect(0, 12883, '\p{^Nv=+0_0_0_0_23}', "");
-    Expect(0, 12883, '\P{Nv=+0_0_0_0_23}', "");
-    Expect(1, 12883, '\P{^Nv=+0_0_0_0_23}', "");
-    Expect(0, 12884, '\p{Nv=+0_0_0_0_23}', "");
-    Expect(1, 12884, '\p{^Nv=+0_0_0_0_23}', "");
-    Expect(1, 12884, '\P{Nv=+0_0_0_0_23}', "");
-    Expect(0, 12884, '\P{^Nv=+0_0_0_0_23}', "");
+    Expect(1, 12883, '\p{Nv=+0023}', "");
+    Expect(0, 12883, '\p{^Nv=+0023}', "");
+    Expect(0, 12883, '\P{Nv=+0023}', "");
+    Expect(1, 12883, '\P{^Nv=+0023}', "");
+    Expect(0, 12884, '\p{Nv=+0023}', "");
+    Expect(1, 12884, '\p{^Nv=+0023}', "");
+    Expect(1, 12884, '\P{Nv=+0023}', "");
+    Expect(0, 12884, '\P{^Nv=+0023}', "");
     Expect(1, 12883, '\p{Nv=2.300000000000000e+01}', "");
     Expect(0, 12883, '\p{^Nv=2.300000000000000e+01}', "");
     Expect(0, 12883, '\P{Nv=2.300000000000000e+01}', "");
@@ -76509,16 +77099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12884, '\p{^Nv=2.300000000000000e+01}', "");
     Expect(1, 12884, '\P{Nv=2.300000000000000e+01}', "");
     Expect(0, 12884, '\P{^Nv=2.300000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/_-+000023}');
-    Error('\P{Is_Numeric_Value=/a/_-+000023}');
-    Expect(1, 12883, '\p{Is_Numeric_Value=0023}', "");
-    Expect(0, 12883, '\p{^Is_Numeric_Value=0023}', "");
-    Expect(0, 12883, '\P{Is_Numeric_Value=0023}', "");
-    Expect(1, 12883, '\P{^Is_Numeric_Value=0023}', "");
-    Expect(0, 12884, '\p{Is_Numeric_Value=0023}', "");
-    Expect(1, 12884, '\p{^Is_Numeric_Value=0023}', "");
-    Expect(1, 12884, '\P{Is_Numeric_Value=0023}', "");
-    Expect(0, 12884, '\P{^Is_Numeric_Value=0023}', "");
+    Error('\p{Is_Numeric_Value=:=	-000023}');
+    Error('\P{Is_Numeric_Value=:=	-000023}');
+    Expect(1, 12883, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(0, 12883, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(0, 12883, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(1, 12883, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(0, 12884, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(1, 12884, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(1, 12884, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
+    Expect(0, 12884, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_0_23}', "");
     Expect(1, 12883, '\p{Is_Numeric_Value=2.300000000000000e+01}', "");
     Expect(0, 12883, '\p{^Is_Numeric_Value=2.300000000000000e+01}', "");
     Expect(0, 12883, '\P{Is_Numeric_Value=2.300000000000000e+01}', "");
@@ -76527,26 +77117,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12884, '\p{^Is_Numeric_Value=2.300000000000000e+01}', "");
     Expect(1, 12884, '\P{Is_Numeric_Value=2.300000000000000e+01}', "");
     Expect(0, 12884, '\P{^Is_Numeric_Value=2.300000000000000e+01}', "");
-    Error('\p{Is_Nv=:=__00_00_00_23}');
-    Error('\P{Is_Nv=:=__00_00_00_23}');
-    Expect(1, 12883, '\p{Is_Nv:   0_0_0_0_0023}', "");
-    Expect(0, 12883, '\p{^Is_Nv:   0_0_0_0_0023}', "");
-    Expect(0, 12883, '\P{Is_Nv:   0_0_0_0_0023}', "");
-    Expect(1, 12883, '\P{^Is_Nv:   0_0_0_0_0023}', "");
-    Expect(0, 12884, '\p{Is_Nv:   0_0_0_0_0023}', "");
-    Expect(1, 12884, '\p{^Is_Nv:   0_0_0_0_0023}', "");
-    Expect(1, 12884, '\P{Is_Nv:   0_0_0_0_0023}', "");
-    Expect(0, 12884, '\P{^Is_Nv:   0_0_0_0_0023}', "");
-    Expect(1, 12883, '\p{Is_Nv=2.300000000000000e+01}', "");
-    Expect(0, 12883, '\p{^Is_Nv=2.300000000000000e+01}', "");
-    Expect(0, 12883, '\P{Is_Nv=2.300000000000000e+01}', "");
-    Expect(1, 12883, '\P{^Is_Nv=2.300000000000000e+01}', "");
-    Expect(0, 12884, '\p{Is_Nv=2.300000000000000e+01}', "");
-    Expect(1, 12884, '\p{^Is_Nv=2.300000000000000e+01}', "");
-    Expect(1, 12884, '\P{Is_Nv=2.300000000000000e+01}', "");
-    Expect(0, 12884, '\P{^Is_Nv=2.300000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/-_0_0_24}');
-    Error('\P{Numeric_Value=/a/-_0_0_24}');
+    Error('\p{Is_Nv=:=--00000000023}');
+    Error('\P{Is_Nv=:=--00000000023}');
+    Expect(1, 12883, '\p{Is_Nv=023}', "");
+    Expect(0, 12883, '\p{^Is_Nv=023}', "");
+    Expect(0, 12883, '\P{Is_Nv=023}', "");
+    Expect(1, 12883, '\P{^Is_Nv=023}', "");
+    Expect(0, 12884, '\p{Is_Nv=023}', "");
+    Expect(1, 12884, '\p{^Is_Nv=023}', "");
+    Expect(1, 12884, '\P{Is_Nv=023}', "");
+    Expect(0, 12884, '\P{^Is_Nv=023}', "");
+    Expect(1, 12883, '\p{Is_Nv:	2.300000000000000e+01}', "");
+    Expect(0, 12883, '\p{^Is_Nv:	2.300000000000000e+01}', "");
+    Expect(0, 12883, '\P{Is_Nv:	2.300000000000000e+01}', "");
+    Expect(1, 12883, '\P{^Is_Nv:	2.300000000000000e+01}', "");
+    Expect(0, 12884, '\p{Is_Nv:	2.300000000000000e+01}', "");
+    Expect(1, 12884, '\p{^Is_Nv:	2.300000000000000e+01}', "");
+    Expect(1, 12884, '\P{Is_Nv:	2.300000000000000e+01}', "");
+    Expect(0, 12884, '\P{^Is_Nv:	2.300000000000000e+01}', "");
+    Error('\p{Numeric_Value=/a/ _+00_00_02_4}');
+    Error('\P{Numeric_Value=/a/ _+00_00_02_4}');
     Expect(1, 12884, '\p{Numeric_Value=:\A24\z:}', "");;
     Expect(0, 12885, '\p{Numeric_Value=:\A24\z:}', "");;
     Expect(1, 12884, '\p{Numeric_Value=00024}', "");
@@ -76557,26 +77147,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12885, '\p{^Numeric_Value=00024}', "");
     Expect(1, 12885, '\P{Numeric_Value=00024}', "");
     Expect(0, 12885, '\P{^Numeric_Value=00024}', "");
-    Expect(1, 12884, '\p{Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(0, 12884, '\p{^Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(0, 12884, '\P{Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(1, 12884, '\P{^Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(0, 12885, '\p{Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(1, 12885, '\p{^Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(1, 12885, '\P{Numeric_Value:   2.400000000000000e+01}', "");
-    Expect(0, 12885, '\P{^Numeric_Value:   2.400000000000000e+01}', "");
-    Error('\p{Nv=/a/	+002_4}');
-    Error('\P{Nv=/a/	+002_4}');
+    Expect(1, 12884, '\p{Numeric_Value=2.400000000000000e+01}', "");
+    Expect(0, 12884, '\p{^Numeric_Value=2.400000000000000e+01}', "");
+    Expect(0, 12884, '\P{Numeric_Value=2.400000000000000e+01}', "");
+    Expect(1, 12884, '\P{^Numeric_Value=2.400000000000000e+01}', "");
+    Expect(0, 12885, '\p{Numeric_Value=2.400000000000000e+01}', "");
+    Expect(1, 12885, '\p{^Numeric_Value=2.400000000000000e+01}', "");
+    Expect(1, 12885, '\P{Numeric_Value=2.400000000000000e+01}', "");
+    Expect(0, 12885, '\P{^Numeric_Value=2.400000000000000e+01}', "");
+    Error('\p{Nv=/a/00000_00002_4}');
+    Error('\P{Nv=/a/00000_00002_4}');
     Expect(1, 12884, '\p{Nv=:\A24\z:}', "");;
     Expect(0, 12885, '\p{Nv=:\A24\z:}', "");;
-    Expect(1, 12884, '\p{Nv=+24}', "");
-    Expect(0, 12884, '\p{^Nv=+24}', "");
-    Expect(0, 12884, '\P{Nv=+24}', "");
-    Expect(1, 12884, '\P{^Nv=+24}', "");
-    Expect(0, 12885, '\p{Nv=+24}', "");
-    Expect(1, 12885, '\p{^Nv=+24}', "");
-    Expect(1, 12885, '\P{Nv=+24}', "");
-    Expect(0, 12885, '\P{^Nv=+24}', "");
+    Expect(1, 12884, '\p{Nv:+000000024}', "");
+    Expect(0, 12884, '\p{^Nv:+000000024}', "");
+    Expect(0, 12884, '\P{Nv:+000000024}', "");
+    Expect(1, 12884, '\P{^Nv:+000000024}', "");
+    Expect(0, 12885, '\p{Nv:+000000024}', "");
+    Expect(1, 12885, '\p{^Nv:+000000024}', "");
+    Expect(1, 12885, '\P{Nv:+000000024}', "");
+    Expect(0, 12885, '\P{^Nv:+000000024}', "");
     Expect(1, 12884, '\p{Nv=2.400000000000000e+01}', "");
     Expect(0, 12884, '\p{^Nv=2.400000000000000e+01}', "");
     Expect(0, 12884, '\P{Nv=2.400000000000000e+01}', "");
@@ -76585,16 +77175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12885, '\p{^Nv=2.400000000000000e+01}', "");
     Expect(1, 12885, '\P{Nv=2.400000000000000e+01}', "");
     Expect(0, 12885, '\P{^Nv=2.400000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value:/a/--00_00_24}');
-    Error('\P{Is_Numeric_Value:/a/--00_00_24}');
-    Expect(1, 12884, '\p{Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(0, 12884, '\p{^Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(0, 12884, '\P{Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(1, 12884, '\P{^Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(0, 12885, '\p{Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(1, 12885, '\p{^Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(1, 12885, '\P{Is_Numeric_Value=00_00_00_00_024}', "");
-    Expect(0, 12885, '\P{^Is_Numeric_Value=00_00_00_00_024}', "");
+    Error('\p{Is_Numeric_Value=/a/+002_4}');
+    Error('\P{Is_Numeric_Value=/a/+002_4}');
+    Expect(1, 12884, '\p{Is_Numeric_Value=00000024}', "");
+    Expect(0, 12884, '\p{^Is_Numeric_Value=00000024}', "");
+    Expect(0, 12884, '\P{Is_Numeric_Value=00000024}', "");
+    Expect(1, 12884, '\P{^Is_Numeric_Value=00000024}', "");
+    Expect(0, 12885, '\p{Is_Numeric_Value=00000024}', "");
+    Expect(1, 12885, '\p{^Is_Numeric_Value=00000024}', "");
+    Expect(1, 12885, '\P{Is_Numeric_Value=00000024}', "");
+    Expect(0, 12885, '\P{^Is_Numeric_Value=00000024}', "");
     Expect(1, 12884, '\p{Is_Numeric_Value=2.400000000000000e+01}', "");
     Expect(0, 12884, '\p{^Is_Numeric_Value=2.400000000000000e+01}', "");
     Expect(0, 12884, '\P{Is_Numeric_Value=2.400000000000000e+01}', "");
@@ -76603,36 +77193,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12885, '\p{^Is_Numeric_Value=2.400000000000000e+01}', "");
     Expect(1, 12885, '\P{Is_Numeric_Value=2.400000000000000e+01}', "");
     Expect(0, 12885, '\P{^Is_Numeric_Value=2.400000000000000e+01}', "");
-    Error('\p{Is_Nv=-/a/00002_4}');
-    Error('\P{Is_Nv=-/a/00002_4}');
-    Expect(1, 12884, '\p{Is_Nv=+000024}', "");
-    Expect(0, 12884, '\p{^Is_Nv=+000024}', "");
-    Expect(0, 12884, '\P{Is_Nv=+000024}', "");
-    Expect(1, 12884, '\P{^Is_Nv=+000024}', "");
-    Expect(0, 12885, '\p{Is_Nv=+000024}', "");
-    Expect(1, 12885, '\p{^Is_Nv=+000024}', "");
-    Expect(1, 12885, '\P{Is_Nv=+000024}', "");
-    Expect(0, 12885, '\P{^Is_Nv=+000024}', "");
-    Expect(1, 12884, '\p{Is_Nv=2.400000000000000e+01}', "");
-    Expect(0, 12884, '\p{^Is_Nv=2.400000000000000e+01}', "");
-    Expect(0, 12884, '\P{Is_Nv=2.400000000000000e+01}', "");
-    Expect(1, 12884, '\P{^Is_Nv=2.400000000000000e+01}', "");
-    Expect(0, 12885, '\p{Is_Nv=2.400000000000000e+01}', "");
-    Expect(1, 12885, '\p{^Is_Nv=2.400000000000000e+01}', "");
-    Expect(1, 12885, '\P{Is_Nv=2.400000000000000e+01}', "");
-    Expect(0, 12885, '\P{^Is_Nv=2.400000000000000e+01}', "");
-    Error('\p{Numeric_Value: /a/	25}');
-    Error('\P{Numeric_Value: /a/	25}');
+    Error('\p{Is_Nv=-:=0000024}');
+    Error('\P{Is_Nv=-:=0000024}');
+    Expect(1, 12884, '\p{Is_Nv=00024}', "");
+    Expect(0, 12884, '\p{^Is_Nv=00024}', "");
+    Expect(0, 12884, '\P{Is_Nv=00024}', "");
+    Expect(1, 12884, '\P{^Is_Nv=00024}', "");
+    Expect(0, 12885, '\p{Is_Nv=00024}', "");
+    Expect(1, 12885, '\p{^Is_Nv=00024}', "");
+    Expect(1, 12885, '\P{Is_Nv=00024}', "");
+    Expect(0, 12885, '\P{^Is_Nv=00024}', "");
+    Expect(1, 12884, '\p{Is_Nv:2.400000000000000e+01}', "");
+    Expect(0, 12884, '\p{^Is_Nv:2.400000000000000e+01}', "");
+    Expect(0, 12884, '\P{Is_Nv:2.400000000000000e+01}', "");
+    Expect(1, 12884, '\P{^Is_Nv:2.400000000000000e+01}', "");
+    Expect(0, 12885, '\p{Is_Nv:2.400000000000000e+01}', "");
+    Expect(1, 12885, '\p{^Is_Nv:2.400000000000000e+01}', "");
+    Expect(1, 12885, '\P{Is_Nv:2.400000000000000e+01}', "");
+    Expect(0, 12885, '\P{^Is_Nv:2.400000000000000e+01}', "");
+    Error('\p{Numeric_Value=	-0_0_0_0_0025:=}');
+    Error('\P{Numeric_Value=	-0_0_0_0_0025:=}');
     Expect(1, 12885, '\p{Numeric_Value=:\A25\z:}', "");;
     Expect(0, 12886, '\p{Numeric_Value=:\A25\z:}', "");;
-    Expect(1, 12885, '\p{Numeric_Value=2_5}', "");
-    Expect(0, 12885, '\p{^Numeric_Value=2_5}', "");
-    Expect(0, 12885, '\P{Numeric_Value=2_5}', "");
-    Expect(1, 12885, '\P{^Numeric_Value=2_5}', "");
-    Expect(0, 12886, '\p{Numeric_Value=2_5}', "");
-    Expect(1, 12886, '\p{^Numeric_Value=2_5}', "");
-    Expect(1, 12886, '\P{Numeric_Value=2_5}', "");
-    Expect(0, 12886, '\P{^Numeric_Value=2_5}', "");
+    Expect(1, 12885, '\p{Numeric_Value=+00_02_5}', "");
+    Expect(0, 12885, '\p{^Numeric_Value=+00_02_5}', "");
+    Expect(0, 12885, '\P{Numeric_Value=+00_02_5}', "");
+    Expect(1, 12885, '\P{^Numeric_Value=+00_02_5}', "");
+    Expect(0, 12886, '\p{Numeric_Value=+00_02_5}', "");
+    Expect(1, 12886, '\p{^Numeric_Value=+00_02_5}', "");
+    Expect(1, 12886, '\P{Numeric_Value=+00_02_5}', "");
+    Expect(0, 12886, '\P{^Numeric_Value=+00_02_5}', "");
     Expect(1, 12885, '\p{Numeric_Value=2.500000000000000e+01}', "");
     Expect(0, 12885, '\p{^Numeric_Value=2.500000000000000e+01}', "");
     Expect(0, 12885, '\P{Numeric_Value=2.500000000000000e+01}', "");
@@ -76641,18 +77231,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12886, '\p{^Numeric_Value=2.500000000000000e+01}', "");
     Expect(1, 12886, '\P{Numeric_Value=2.500000000000000e+01}', "");
     Expect(0, 12886, '\P{^Numeric_Value=2.500000000000000e+01}', "");
-    Error('\p{Nv=	-0_0_0_0_25:=}');
-    Error('\P{Nv=	-0_0_0_0_25:=}');
+    Error('\p{Nv=-0_0_0_0_0_0_0_25:=}');
+    Error('\P{Nv=-0_0_0_0_0_0_0_25:=}');
     Expect(1, 12885, '\p{Nv=:\A25\z:}', "");;
     Expect(0, 12886, '\p{Nv=:\A25\z:}', "");;
-    Expect(1, 12885, '\p{Nv:   0025}', "");
-    Expect(0, 12885, '\p{^Nv:   0025}', "");
-    Expect(0, 12885, '\P{Nv:   0025}', "");
-    Expect(1, 12885, '\P{^Nv:   0025}', "");
-    Expect(0, 12886, '\p{Nv:   0025}', "");
-    Expect(1, 12886, '\p{^Nv:   0025}', "");
-    Expect(1, 12886, '\P{Nv:   0025}', "");
-    Expect(0, 12886, '\P{^Nv:   0025}', "");
+    Expect(1, 12885, '\p{Nv=000025}', "");
+    Expect(0, 12885, '\p{^Nv=000025}', "");
+    Expect(0, 12885, '\P{Nv=000025}', "");
+    Expect(1, 12885, '\P{^Nv=000025}', "");
+    Expect(0, 12886, '\p{Nv=000025}', "");
+    Expect(1, 12886, '\p{^Nv=000025}', "");
+    Expect(1, 12886, '\P{Nv=000025}', "");
+    Expect(0, 12886, '\P{^Nv=000025}', "");
     Expect(1, 12885, '\p{Nv=2.500000000000000e+01}', "");
     Expect(0, 12885, '\p{^Nv=2.500000000000000e+01}', "");
     Expect(0, 12885, '\P{Nv=2.500000000000000e+01}', "");
@@ -76661,34 +77251,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12886, '\p{^Nv=2.500000000000000e+01}', "");
     Expect(1, 12886, '\P{Nv=2.500000000000000e+01}', "");
     Expect(0, 12886, '\P{^Nv=2.500000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_/a/000025}');
-    Error('\P{Is_Numeric_Value=_/a/000025}');
-    Expect(1, 12885, '\p{Is_Numeric_Value=0000000025}', "");
-    Expect(0, 12885, '\p{^Is_Numeric_Value=0000000025}', "");
-    Expect(0, 12885, '\P{Is_Numeric_Value=0000000025}', "");
-    Expect(1, 12885, '\P{^Is_Numeric_Value=0000000025}', "");
-    Expect(0, 12886, '\p{Is_Numeric_Value=0000000025}', "");
-    Expect(1, 12886, '\p{^Is_Numeric_Value=0000000025}', "");
-    Expect(1, 12886, '\P{Is_Numeric_Value=0000000025}', "");
-    Expect(0, 12886, '\P{^Is_Numeric_Value=0000000025}', "");
-    Expect(1, 12885, '\p{Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(0, 12885, '\p{^Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(0, 12885, '\P{Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(1, 12885, '\P{^Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(0, 12886, '\p{Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(1, 12886, '\p{^Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(1, 12886, '\P{Is_Numeric_Value=2.500000000000000e+01}', "");
-    Expect(0, 12886, '\P{^Is_Numeric_Value=2.500000000000000e+01}', "");
-    Error('\p{Is_Nv=:=+00_00_00_00_25}');
-    Error('\P{Is_Nv=:=+00_00_00_00_25}');
-    Expect(1, 12885, '\p{Is_Nv=+00000000025}', "");
-    Expect(0, 12885, '\p{^Is_Nv=+00000000025}', "");
-    Expect(0, 12885, '\P{Is_Nv=+00000000025}', "");
-    Expect(1, 12885, '\P{^Is_Nv=+00000000025}', "");
-    Expect(0, 12886, '\p{Is_Nv=+00000000025}', "");
-    Expect(1, 12886, '\p{^Is_Nv=+00000000025}', "");
-    Expect(1, 12886, '\P{Is_Nv=+00000000025}', "");
-    Expect(0, 12886, '\P{^Is_Nv=+00000000025}', "");
+    Error('\p{Is_Numeric_Value: /a/-0_0_0_0_0_0_00025}');
+    Error('\P{Is_Numeric_Value: /a/-0_0_0_0_0_0_00025}');
+    Expect(1, 12885, '\p{Is_Numeric_Value=+000_000_25}', "");
+    Expect(0, 12885, '\p{^Is_Numeric_Value=+000_000_25}', "");
+    Expect(0, 12885, '\P{Is_Numeric_Value=+000_000_25}', "");
+    Expect(1, 12885, '\P{^Is_Numeric_Value=+000_000_25}', "");
+    Expect(0, 12886, '\p{Is_Numeric_Value=+000_000_25}', "");
+    Expect(1, 12886, '\p{^Is_Numeric_Value=+000_000_25}', "");
+    Expect(1, 12886, '\P{Is_Numeric_Value=+000_000_25}', "");
+    Expect(0, 12886, '\P{^Is_Numeric_Value=+000_000_25}', "");
+    Expect(1, 12885, '\p{Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(0, 12885, '\p{^Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(0, 12885, '\P{Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(1, 12885, '\P{^Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(0, 12886, '\p{Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(1, 12886, '\p{^Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(1, 12886, '\P{Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Expect(0, 12886, '\P{^Is_Numeric_Value: 2.500000000000000e+01}', "");
+    Error('\p{Is_Nv= _02_5/a/}');
+    Error('\P{Is_Nv= _02_5/a/}');
+    Expect(1, 12885, '\p{Is_Nv=00000002_5}', "");
+    Expect(0, 12885, '\p{^Is_Nv=00000002_5}', "");
+    Expect(0, 12885, '\P{Is_Nv=00000002_5}', "");
+    Expect(1, 12885, '\P{^Is_Nv=00000002_5}', "");
+    Expect(0, 12886, '\p{Is_Nv=00000002_5}', "");
+    Expect(1, 12886, '\p{^Is_Nv=00000002_5}', "");
+    Expect(1, 12886, '\P{Is_Nv=00000002_5}', "");
+    Expect(0, 12886, '\P{^Is_Nv=00000002_5}', "");
     Expect(1, 12885, '\p{Is_Nv=2.500000000000000e+01}', "");
     Expect(0, 12885, '\p{^Is_Nv=2.500000000000000e+01}', "");
     Expect(0, 12885, '\P{Is_Nv=2.500000000000000e+01}', "");
@@ -76697,18 +77287,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12886, '\p{^Is_Nv=2.500000000000000e+01}', "");
     Expect(1, 12886, '\P{Is_Nv=2.500000000000000e+01}', "");
     Expect(0, 12886, '\P{^Is_Nv=2.500000000000000e+01}', "");
-    Error('\p{Numeric_Value:   :=	_+2_6}');
-    Error('\P{Numeric_Value:   :=	_+2_6}');
+    Error('\p{Numeric_Value=-_0_0_0_026:=}');
+    Error('\P{Numeric_Value=-_0_0_0_026:=}');
     Expect(1, 12886, '\p{Numeric_Value=:\A26\z:}', "");;
     Expect(0, 12887, '\p{Numeric_Value=:\A26\z:}', "");;
-    Expect(1, 12886, '\p{Numeric_Value=00000_00002_6}', "");
-    Expect(0, 12886, '\p{^Numeric_Value=00000_00002_6}', "");
-    Expect(0, 12886, '\P{Numeric_Value=00000_00002_6}', "");
-    Expect(1, 12886, '\P{^Numeric_Value=00000_00002_6}', "");
-    Expect(0, 12887, '\p{Numeric_Value=00000_00002_6}', "");
-    Expect(1, 12887, '\p{^Numeric_Value=00000_00002_6}', "");
-    Expect(1, 12887, '\P{Numeric_Value=00000_00002_6}', "");
-    Expect(0, 12887, '\P{^Numeric_Value=00000_00002_6}', "");
+    Expect(1, 12886, '\p{Numeric_Value=2_6}', "");
+    Expect(0, 12886, '\p{^Numeric_Value=2_6}', "");
+    Expect(0, 12886, '\P{Numeric_Value=2_6}', "");
+    Expect(1, 12886, '\P{^Numeric_Value=2_6}', "");
+    Expect(0, 12887, '\p{Numeric_Value=2_6}', "");
+    Expect(1, 12887, '\p{^Numeric_Value=2_6}', "");
+    Expect(1, 12887, '\P{Numeric_Value=2_6}', "");
+    Expect(0, 12887, '\P{^Numeric_Value=2_6}', "");
     Expect(1, 12886, '\p{Numeric_Value=2.600000000000000e+01}', "");
     Expect(0, 12886, '\p{^Numeric_Value=2.600000000000000e+01}', "");
     Expect(0, 12886, '\P{Numeric_Value=2.600000000000000e+01}', "");
@@ -76717,36 +77307,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12887, '\p{^Numeric_Value=2.600000000000000e+01}', "");
     Expect(1, 12887, '\P{Numeric_Value=2.600000000000000e+01}', "");
     Expect(0, 12887, '\P{^Numeric_Value=2.600000000000000e+01}', "");
-    Error('\p{Nv=:= _000026}');
-    Error('\P{Nv=:= _000026}');
+    Error('\p{Nv=:=_+0_0_0_0_026}');
+    Error('\P{Nv=:=_+0_0_0_0_026}');
     Expect(1, 12886, '\p{Nv=:\A26\z:}', "");;
     Expect(0, 12887, '\p{Nv=:\A26\z:}', "");;
-    Expect(1, 12886, '\p{Nv=00000002_6}', "");
-    Expect(0, 12886, '\p{^Nv=00000002_6}', "");
-    Expect(0, 12886, '\P{Nv=00000002_6}', "");
-    Expect(1, 12886, '\P{^Nv=00000002_6}', "");
-    Expect(0, 12887, '\p{Nv=00000002_6}', "");
-    Expect(1, 12887, '\p{^Nv=00000002_6}', "");
-    Expect(1, 12887, '\P{Nv=00000002_6}', "");
-    Expect(0, 12887, '\P{^Nv=00000002_6}', "");
-    Expect(1, 12886, '\p{Nv=2.600000000000000e+01}', "");
-    Expect(0, 12886, '\p{^Nv=2.600000000000000e+01}', "");
-    Expect(0, 12886, '\P{Nv=2.600000000000000e+01}', "");
-    Expect(1, 12886, '\P{^Nv=2.600000000000000e+01}', "");
-    Expect(0, 12887, '\p{Nv=2.600000000000000e+01}', "");
-    Expect(1, 12887, '\p{^Nv=2.600000000000000e+01}', "");
-    Expect(1, 12887, '\P{Nv=2.600000000000000e+01}', "");
-    Expect(0, 12887, '\P{^Nv=2.600000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value= -0_0_0_0_0_0_0_26/a/}');
-    Error('\P{Is_Numeric_Value= -0_0_0_0_0_0_0_26/a/}');
-    Expect(1, 12886, '\p{Is_Numeric_Value=+00000000026}', "");
-    Expect(0, 12886, '\p{^Is_Numeric_Value=+00000000026}', "");
-    Expect(0, 12886, '\P{Is_Numeric_Value=+00000000026}', "");
-    Expect(1, 12886, '\P{^Is_Numeric_Value=+00000000026}', "");
-    Expect(0, 12887, '\p{Is_Numeric_Value=+00000000026}', "");
-    Expect(1, 12887, '\p{^Is_Numeric_Value=+00000000026}', "");
-    Expect(1, 12887, '\P{Is_Numeric_Value=+00000000026}', "");
-    Expect(0, 12887, '\P{^Is_Numeric_Value=+00000000026}', "");
+    Expect(1, 12886, '\p{Nv=000000026}', "");
+    Expect(0, 12886, '\p{^Nv=000000026}', "");
+    Expect(0, 12886, '\P{Nv=000000026}', "");
+    Expect(1, 12886, '\P{^Nv=000000026}', "");
+    Expect(0, 12887, '\p{Nv=000000026}', "");
+    Expect(1, 12887, '\p{^Nv=000000026}', "");
+    Expect(1, 12887, '\P{Nv=000000026}', "");
+    Expect(0, 12887, '\P{^Nv=000000026}', "");
+    Expect(1, 12886, '\p{Nv: 2.600000000000000e+01}', "");
+    Expect(0, 12886, '\p{^Nv: 2.600000000000000e+01}', "");
+    Expect(0, 12886, '\P{Nv: 2.600000000000000e+01}', "");
+    Expect(1, 12886, '\P{^Nv: 2.600000000000000e+01}', "");
+    Expect(0, 12887, '\p{Nv: 2.600000000000000e+01}', "");
+    Expect(1, 12887, '\p{^Nv: 2.600000000000000e+01}', "");
+    Expect(1, 12887, '\P{Nv: 2.600000000000000e+01}', "");
+    Expect(0, 12887, '\P{^Nv: 2.600000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value=_ +00000026:=}');
+    Error('\P{Is_Numeric_Value=_ +00000026:=}');
+    Expect(1, 12886, '\p{Is_Numeric_Value=+026}', "");
+    Expect(0, 12886, '\p{^Is_Numeric_Value=+026}', "");
+    Expect(0, 12886, '\P{Is_Numeric_Value=+026}', "");
+    Expect(1, 12886, '\P{^Is_Numeric_Value=+026}', "");
+    Expect(0, 12887, '\p{Is_Numeric_Value=+026}', "");
+    Expect(1, 12887, '\p{^Is_Numeric_Value=+026}', "");
+    Expect(1, 12887, '\P{Is_Numeric_Value=+026}', "");
+    Expect(0, 12887, '\P{^Is_Numeric_Value=+026}', "");
     Expect(1, 12886, '\p{Is_Numeric_Value=2.600000000000000e+01}', "");
     Expect(0, 12886, '\p{^Is_Numeric_Value=2.600000000000000e+01}', "");
     Expect(0, 12886, '\P{Is_Numeric_Value=2.600000000000000e+01}', "");
@@ -76755,16 +77345,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12887, '\p{^Is_Numeric_Value=2.600000000000000e+01}', "");
     Expect(1, 12887, '\P{Is_Numeric_Value=2.600000000000000e+01}', "");
     Expect(0, 12887, '\P{^Is_Numeric_Value=2.600000000000000e+01}', "");
-    Error('\p{Is_Nv:  /a/026}');
-    Error('\P{Is_Nv:  /a/026}');
-    Expect(1, 12886, '\p{Is_Nv=0000002_6}', "");
-    Expect(0, 12886, '\p{^Is_Nv=0000002_6}', "");
-    Expect(0, 12886, '\P{Is_Nv=0000002_6}', "");
-    Expect(1, 12886, '\P{^Is_Nv=0000002_6}', "");
-    Expect(0, 12887, '\p{Is_Nv=0000002_6}', "");
-    Expect(1, 12887, '\p{^Is_Nv=0000002_6}', "");
-    Expect(1, 12887, '\P{Is_Nv=0000002_6}', "");
-    Expect(0, 12887, '\P{^Is_Nv=0000002_6}', "");
+    Error('\p{Is_Nv=_/a/00000000026}');
+    Error('\P{Is_Nv=_/a/00000000026}');
+    Expect(1, 12886, '\p{Is_Nv=026}', "");
+    Expect(0, 12886, '\p{^Is_Nv=026}', "");
+    Expect(0, 12886, '\P{Is_Nv=026}', "");
+    Expect(1, 12886, '\P{^Is_Nv=026}', "");
+    Expect(0, 12887, '\p{Is_Nv=026}', "");
+    Expect(1, 12887, '\p{^Is_Nv=026}', "");
+    Expect(1, 12887, '\P{Is_Nv=026}', "");
+    Expect(0, 12887, '\P{^Is_Nv=026}', "");
     Expect(1, 12886, '\p{Is_Nv=2.600000000000000e+01}', "");
     Expect(0, 12886, '\p{^Is_Nv=2.600000000000000e+01}', "");
     Expect(0, 12886, '\P{Is_Nv=2.600000000000000e+01}', "");
@@ -76773,18 +77363,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12887, '\p{^Is_Nv=2.600000000000000e+01}', "");
     Expect(1, 12887, '\P{Is_Nv=2.600000000000000e+01}', "");
     Expect(0, 12887, '\P{^Is_Nv=2.600000000000000e+01}', "");
-    Error('\p{Numeric_Value=:= 0_0_0_0_0_0_00027}');
-    Error('\P{Numeric_Value=:= 0_0_0_0_0_0_00027}');
+    Error('\p{Numeric_Value=__27:=}');
+    Error('\P{Numeric_Value=__27:=}');
     Expect(1, 12887, '\p{Numeric_Value=:\A27\z:}', "");;
     Expect(0, 12888, '\p{Numeric_Value=:\A27\z:}', "");;
-    Expect(1, 12887, '\p{Numeric_Value=0_0_0_027}', "");
-    Expect(0, 12887, '\p{^Numeric_Value=0_0_0_027}', "");
-    Expect(0, 12887, '\P{Numeric_Value=0_0_0_027}', "");
-    Expect(1, 12887, '\P{^Numeric_Value=0_0_0_027}', "");
-    Expect(0, 12888, '\p{Numeric_Value=0_0_0_027}', "");
-    Expect(1, 12888, '\p{^Numeric_Value=0_0_0_027}', "");
-    Expect(1, 12888, '\P{Numeric_Value=0_0_0_027}', "");
-    Expect(0, 12888, '\P{^Numeric_Value=0_0_0_027}', "");
+    Expect(1, 12887, '\p{Numeric_Value:   00_00_00_00_027}', "");
+    Expect(0, 12887, '\p{^Numeric_Value:   00_00_00_00_027}', "");
+    Expect(0, 12887, '\P{Numeric_Value:   00_00_00_00_027}', "");
+    Expect(1, 12887, '\P{^Numeric_Value:   00_00_00_00_027}', "");
+    Expect(0, 12888, '\p{Numeric_Value:   00_00_00_00_027}', "");
+    Expect(1, 12888, '\p{^Numeric_Value:   00_00_00_00_027}', "");
+    Expect(1, 12888, '\P{Numeric_Value:   00_00_00_00_027}', "");
+    Expect(0, 12888, '\P{^Numeric_Value:   00_00_00_00_027}', "");
     Expect(1, 12887, '\p{Numeric_Value=2.700000000000000e+01}', "");
     Expect(0, 12887, '\p{^Numeric_Value=2.700000000000000e+01}', "");
     Expect(0, 12887, '\P{Numeric_Value=2.700000000000000e+01}', "");
@@ -76793,36 +77383,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12888, '\p{^Numeric_Value=2.700000000000000e+01}', "");
     Expect(1, 12888, '\P{Numeric_Value=2.700000000000000e+01}', "");
     Expect(0, 12888, '\P{^Numeric_Value=2.700000000000000e+01}', "");
-    Error('\p{Nv=/a/ 	0000027}');
-    Error('\P{Nv=/a/ 	0000027}');
+    Error('\p{Nv=/a/-+0_0_0_27}');
+    Error('\P{Nv=/a/-+0_0_0_27}');
     Expect(1, 12887, '\p{Nv=:\A27\z:}', "");;
     Expect(0, 12888, '\p{Nv=:\A27\z:}', "");;
-    Expect(1, 12887, '\p{Nv=00027}', "");
-    Expect(0, 12887, '\p{^Nv=00027}', "");
-    Expect(0, 12887, '\P{Nv=00027}', "");
-    Expect(1, 12887, '\P{^Nv=00027}', "");
-    Expect(0, 12888, '\p{Nv=00027}', "");
-    Expect(1, 12888, '\p{^Nv=00027}', "");
-    Expect(1, 12888, '\P{Nv=00027}', "");
-    Expect(0, 12888, '\P{^Nv=00027}', "");
-    Expect(1, 12887, '\p{Nv=2.700000000000000e+01}', "");
-    Expect(0, 12887, '\p{^Nv=2.700000000000000e+01}', "");
-    Expect(0, 12887, '\P{Nv=2.700000000000000e+01}', "");
-    Expect(1, 12887, '\P{^Nv=2.700000000000000e+01}', "");
-    Expect(0, 12888, '\p{Nv=2.700000000000000e+01}', "");
-    Expect(1, 12888, '\p{^Nv=2.700000000000000e+01}', "");
-    Expect(1, 12888, '\P{Nv=2.700000000000000e+01}', "");
-    Expect(0, 12888, '\P{^Nv=2.700000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_/a/+0_0_0_0_0_27}');
-    Error('\P{Is_Numeric_Value=_/a/+0_0_0_0_0_27}');
-    Expect(1, 12887, '\p{Is_Numeric_Value=+000000002_7}', "");
-    Expect(0, 12887, '\p{^Is_Numeric_Value=+000000002_7}', "");
-    Expect(0, 12887, '\P{Is_Numeric_Value=+000000002_7}', "");
-    Expect(1, 12887, '\P{^Is_Numeric_Value=+000000002_7}', "");
-    Expect(0, 12888, '\p{Is_Numeric_Value=+000000002_7}', "");
-    Expect(1, 12888, '\p{^Is_Numeric_Value=+000000002_7}', "");
-    Expect(1, 12888, '\P{Is_Numeric_Value=+000000002_7}', "");
-    Expect(0, 12888, '\P{^Is_Numeric_Value=+000000002_7}', "");
+    Expect(1, 12887, '\p{Nv=000000027}', "");
+    Expect(0, 12887, '\p{^Nv=000000027}', "");
+    Expect(0, 12887, '\P{Nv=000000027}', "");
+    Expect(1, 12887, '\P{^Nv=000000027}', "");
+    Expect(0, 12888, '\p{Nv=000000027}', "");
+    Expect(1, 12888, '\p{^Nv=000000027}', "");
+    Expect(1, 12888, '\P{Nv=000000027}', "");
+    Expect(0, 12888, '\P{^Nv=000000027}', "");
+    Expect(1, 12887, '\p{Nv:2.700000000000000e+01}', "");
+    Expect(0, 12887, '\p{^Nv:2.700000000000000e+01}', "");
+    Expect(0, 12887, '\P{Nv:2.700000000000000e+01}', "");
+    Expect(1, 12887, '\P{^Nv:2.700000000000000e+01}', "");
+    Expect(0, 12888, '\p{Nv:2.700000000000000e+01}', "");
+    Expect(1, 12888, '\p{^Nv:2.700000000000000e+01}', "");
+    Expect(1, 12888, '\P{Nv:2.700000000000000e+01}', "");
+    Expect(0, 12888, '\P{^Nv:2.700000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value=	 +00000027/a/}');
+    Error('\P{Is_Numeric_Value=	 +00000027/a/}');
+    Expect(1, 12887, '\p{Is_Numeric_Value=+00000027}', "");
+    Expect(0, 12887, '\p{^Is_Numeric_Value=+00000027}', "");
+    Expect(0, 12887, '\P{Is_Numeric_Value=+00000027}', "");
+    Expect(1, 12887, '\P{^Is_Numeric_Value=+00000027}', "");
+    Expect(0, 12888, '\p{Is_Numeric_Value=+00000027}', "");
+    Expect(1, 12888, '\p{^Is_Numeric_Value=+00000027}', "");
+    Expect(1, 12888, '\P{Is_Numeric_Value=+00000027}', "");
+    Expect(0, 12888, '\P{^Is_Numeric_Value=+00000027}', "");
     Expect(1, 12887, '\p{Is_Numeric_Value=2.700000000000000e+01}', "");
     Expect(0, 12887, '\p{^Is_Numeric_Value=2.700000000000000e+01}', "");
     Expect(0, 12887, '\P{Is_Numeric_Value=2.700000000000000e+01}', "");
@@ -76831,16 +77421,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12888, '\p{^Is_Numeric_Value=2.700000000000000e+01}', "");
     Expect(1, 12888, '\P{Is_Numeric_Value=2.700000000000000e+01}', "");
     Expect(0, 12888, '\P{^Is_Numeric_Value=2.700000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/-+000027}');
-    Error('\P{Is_Nv=/a/-+000027}');
-    Expect(1, 12887, '\p{Is_Nv:	002_7}', "");
-    Expect(0, 12887, '\p{^Is_Nv:	002_7}', "");
-    Expect(0, 12887, '\P{Is_Nv:	002_7}', "");
-    Expect(1, 12887, '\P{^Is_Nv:	002_7}', "");
-    Expect(0, 12888, '\p{Is_Nv:	002_7}', "");
-    Expect(1, 12888, '\p{^Is_Nv:	002_7}', "");
-    Expect(1, 12888, '\P{Is_Nv:	002_7}', "");
-    Expect(0, 12888, '\P{^Is_Nv:	002_7}', "");
+    Error('\p{Is_Nv=:=	-0_0_0_0_0_027}');
+    Error('\P{Is_Nv=:=	-0_0_0_0_0_027}');
+    Expect(1, 12887, '\p{Is_Nv=2_7}', "");
+    Expect(0, 12887, '\p{^Is_Nv=2_7}', "");
+    Expect(0, 12887, '\P{Is_Nv=2_7}', "");
+    Expect(1, 12887, '\P{^Is_Nv=2_7}', "");
+    Expect(0, 12888, '\p{Is_Nv=2_7}', "");
+    Expect(1, 12888, '\p{^Is_Nv=2_7}', "");
+    Expect(1, 12888, '\P{Is_Nv=2_7}', "");
+    Expect(0, 12888, '\P{^Is_Nv=2_7}', "");
     Expect(1, 12887, '\p{Is_Nv=2.700000000000000e+01}', "");
     Expect(0, 12887, '\p{^Is_Nv=2.700000000000000e+01}', "");
     Expect(0, 12887, '\P{Is_Nv=2.700000000000000e+01}', "");
@@ -76849,18 +77439,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12888, '\p{^Is_Nv=2.700000000000000e+01}', "");
     Expect(1, 12888, '\P{Is_Nv=2.700000000000000e+01}', "");
     Expect(0, 12888, '\P{^Is_Nv=2.700000000000000e+01}', "");
-    Error('\p{Numeric_Value=--+00028:=}');
-    Error('\P{Numeric_Value=--+00028:=}');
+    Error('\p{Numeric_Value= _000_000_002_8/a/}');
+    Error('\P{Numeric_Value= _000_000_002_8/a/}');
     Expect(1, 12888, '\p{Numeric_Value=:\A28\z:}', "");;
     Expect(0, 12889, '\p{Numeric_Value=:\A28\z:}', "");;
-    Expect(1, 12888, '\p{Numeric_Value=0_0_0_028}', "");
-    Expect(0, 12888, '\p{^Numeric_Value=0_0_0_028}', "");
-    Expect(0, 12888, '\P{Numeric_Value=0_0_0_028}', "");
-    Expect(1, 12888, '\P{^Numeric_Value=0_0_0_028}', "");
-    Expect(0, 12889, '\p{Numeric_Value=0_0_0_028}', "");
-    Expect(1, 12889, '\p{^Numeric_Value=0_0_0_028}', "");
-    Expect(1, 12889, '\P{Numeric_Value=0_0_0_028}', "");
-    Expect(0, 12889, '\P{^Numeric_Value=0_0_0_028}', "");
+    Expect(1, 12888, '\p{Numeric_Value=028}', "");
+    Expect(0, 12888, '\p{^Numeric_Value=028}', "");
+    Expect(0, 12888, '\P{Numeric_Value=028}', "");
+    Expect(1, 12888, '\P{^Numeric_Value=028}', "");
+    Expect(0, 12889, '\p{Numeric_Value=028}', "");
+    Expect(1, 12889, '\p{^Numeric_Value=028}', "");
+    Expect(1, 12889, '\P{Numeric_Value=028}', "");
+    Expect(0, 12889, '\P{^Numeric_Value=028}', "");
     Expect(1, 12888, '\p{Numeric_Value=2.800000000000000e+01}', "");
     Expect(0, 12888, '\p{^Numeric_Value=2.800000000000000e+01}', "");
     Expect(0, 12888, '\P{Numeric_Value=2.800000000000000e+01}', "");
@@ -76869,18 +77459,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12889, '\p{^Numeric_Value=2.800000000000000e+01}', "");
     Expect(1, 12889, '\P{Numeric_Value=2.800000000000000e+01}', "");
     Expect(0, 12889, '\P{^Numeric_Value=2.800000000000000e+01}', "");
-    Error('\p{Nv=:=0_0_0_028}');
-    Error('\P{Nv=:=0_0_0_028}');
+    Error('\p{Nv=:=_-002_8}');
+    Error('\P{Nv=:=_-002_8}');
     Expect(1, 12888, '\p{Nv=:\A28\z:}', "");;
     Expect(0, 12889, '\p{Nv=:\A28\z:}', "");;
-    Expect(1, 12888, '\p{Nv=+0000000028}', "");
-    Expect(0, 12888, '\p{^Nv=+0000000028}', "");
-    Expect(0, 12888, '\P{Nv=+0000000028}', "");
-    Expect(1, 12888, '\P{^Nv=+0000000028}', "");
-    Expect(0, 12889, '\p{Nv=+0000000028}', "");
-    Expect(1, 12889, '\p{^Nv=+0000000028}', "");
-    Expect(1, 12889, '\P{Nv=+0000000028}', "");
-    Expect(0, 12889, '\P{^Nv=+0000000028}', "");
+    Expect(1, 12888, '\p{Nv=0002_8}', "");
+    Expect(0, 12888, '\p{^Nv=0002_8}', "");
+    Expect(0, 12888, '\P{Nv=0002_8}', "");
+    Expect(1, 12888, '\P{^Nv=0002_8}', "");
+    Expect(0, 12889, '\p{Nv=0002_8}', "");
+    Expect(1, 12889, '\p{^Nv=0002_8}', "");
+    Expect(1, 12889, '\P{Nv=0002_8}', "");
+    Expect(0, 12889, '\P{^Nv=0002_8}', "");
     Expect(1, 12888, '\p{Nv=2.800000000000000e+01}', "");
     Expect(0, 12888, '\p{^Nv=2.800000000000000e+01}', "");
     Expect(0, 12888, '\P{Nv=2.800000000000000e+01}', "");
@@ -76889,16 +77479,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12889, '\p{^Nv=2.800000000000000e+01}', "");
     Expect(1, 12889, '\P{Nv=2.800000000000000e+01}', "");
     Expect(0, 12889, '\P{^Nv=2.800000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=__+028:=}');
-    Error('\P{Is_Numeric_Value=__+028:=}');
-    Expect(1, 12888, '\p{Is_Numeric_Value=+00000028}', "");
-    Expect(0, 12888, '\p{^Is_Numeric_Value=+00000028}', "");
-    Expect(0, 12888, '\P{Is_Numeric_Value=+00000028}', "");
-    Expect(1, 12888, '\P{^Is_Numeric_Value=+00000028}', "");
-    Expect(0, 12889, '\p{Is_Numeric_Value=+00000028}', "");
-    Expect(1, 12889, '\p{^Is_Numeric_Value=+00000028}', "");
-    Expect(1, 12889, '\P{Is_Numeric_Value=+00000028}', "");
-    Expect(0, 12889, '\P{^Is_Numeric_Value=+00000028}', "");
+    Error('\p{Is_Numeric_Value=-2_8/a/}');
+    Error('\P{Is_Numeric_Value=-2_8/a/}');
+    Expect(1, 12888, '\p{Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(0, 12888, '\p{^Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(0, 12888, '\P{Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(1, 12888, '\P{^Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(0, 12889, '\p{Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(1, 12889, '\p{^Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(1, 12889, '\P{Is_Numeric_Value=+0_0_0_028}', "");
+    Expect(0, 12889, '\P{^Is_Numeric_Value=+0_0_0_028}', "");
     Expect(1, 12888, '\p{Is_Numeric_Value=2.800000000000000e+01}', "");
     Expect(0, 12888, '\p{^Is_Numeric_Value=2.800000000000000e+01}', "");
     Expect(0, 12888, '\P{Is_Numeric_Value=2.800000000000000e+01}', "");
@@ -76907,36 +77497,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12889, '\p{^Is_Numeric_Value=2.800000000000000e+01}', "");
     Expect(1, 12889, '\P{Is_Numeric_Value=2.800000000000000e+01}', "");
     Expect(0, 12889, '\P{^Is_Numeric_Value=2.800000000000000e+01}', "");
-    Error('\p{Is_Nv=-:=028}');
-    Error('\P{Is_Nv=-:=028}');
-    Expect(1, 12888, '\p{Is_Nv=000028}', "");
-    Expect(0, 12888, '\p{^Is_Nv=000028}', "");
-    Expect(0, 12888, '\P{Is_Nv=000028}', "");
-    Expect(1, 12888, '\P{^Is_Nv=000028}', "");
-    Expect(0, 12889, '\p{Is_Nv=000028}', "");
-    Expect(1, 12889, '\p{^Is_Nv=000028}', "");
-    Expect(1, 12889, '\P{Is_Nv=000028}', "");
-    Expect(0, 12889, '\P{^Is_Nv=000028}', "");
-    Expect(1, 12888, '\p{Is_Nv:	2.800000000000000e+01}', "");
-    Expect(0, 12888, '\p{^Is_Nv:	2.800000000000000e+01}', "");
-    Expect(0, 12888, '\P{Is_Nv:	2.800000000000000e+01}', "");
-    Expect(1, 12888, '\P{^Is_Nv:	2.800000000000000e+01}', "");
-    Expect(0, 12889, '\p{Is_Nv:	2.800000000000000e+01}', "");
-    Expect(1, 12889, '\p{^Is_Nv:	2.800000000000000e+01}', "");
-    Expect(1, 12889, '\P{Is_Nv:	2.800000000000000e+01}', "");
-    Expect(0, 12889, '\P{^Is_Nv:	2.800000000000000e+01}', "");
-    Error('\p{Numeric_Value=-:=000000029}');
-    Error('\P{Numeric_Value=-:=000000029}');
+    Error('\p{Is_Nv=/a/00000028}');
+    Error('\P{Is_Nv=/a/00000028}');
+    Expect(1, 12888, '\p{Is_Nv=0_0_0_0_028}', "");
+    Expect(0, 12888, '\p{^Is_Nv=0_0_0_0_028}', "");
+    Expect(0, 12888, '\P{Is_Nv=0_0_0_0_028}', "");
+    Expect(1, 12888, '\P{^Is_Nv=0_0_0_0_028}', "");
+    Expect(0, 12889, '\p{Is_Nv=0_0_0_0_028}', "");
+    Expect(1, 12889, '\p{^Is_Nv=0_0_0_0_028}', "");
+    Expect(1, 12889, '\P{Is_Nv=0_0_0_0_028}', "");
+    Expect(0, 12889, '\P{^Is_Nv=0_0_0_0_028}', "");
+    Expect(1, 12888, '\p{Is_Nv=2.800000000000000e+01}', "");
+    Expect(0, 12888, '\p{^Is_Nv=2.800000000000000e+01}', "");
+    Expect(0, 12888, '\P{Is_Nv=2.800000000000000e+01}', "");
+    Expect(1, 12888, '\P{^Is_Nv=2.800000000000000e+01}', "");
+    Expect(0, 12889, '\p{Is_Nv=2.800000000000000e+01}', "");
+    Expect(1, 12889, '\p{^Is_Nv=2.800000000000000e+01}', "");
+    Expect(1, 12889, '\P{Is_Nv=2.800000000000000e+01}', "");
+    Expect(0, 12889, '\P{^Is_Nv=2.800000000000000e+01}', "");
+    Error('\p{Numeric_Value=:=_000_002_9}');
+    Error('\P{Numeric_Value=:=_000_002_9}');
     Expect(1, 12889, '\p{Numeric_Value=:\A29\z:}', "");;
     Expect(0, 12890, '\p{Numeric_Value=:\A29\z:}', "");;
-    Expect(1, 12889, '\p{Numeric_Value=000029}', "");
-    Expect(0, 12889, '\p{^Numeric_Value=000029}', "");
-    Expect(0, 12889, '\P{Numeric_Value=000029}', "");
-    Expect(1, 12889, '\P{^Numeric_Value=000029}', "");
-    Expect(0, 12890, '\p{Numeric_Value=000029}', "");
-    Expect(1, 12890, '\p{^Numeric_Value=000029}', "");
-    Expect(1, 12890, '\P{Numeric_Value=000029}', "");
-    Expect(0, 12890, '\P{^Numeric_Value=000029}', "");
+    Expect(1, 12889, '\p{Numeric_Value=00000000029}', "");
+    Expect(0, 12889, '\p{^Numeric_Value=00000000029}', "");
+    Expect(0, 12889, '\P{Numeric_Value=00000000029}', "");
+    Expect(1, 12889, '\P{^Numeric_Value=00000000029}', "");
+    Expect(0, 12890, '\p{Numeric_Value=00000000029}', "");
+    Expect(1, 12890, '\p{^Numeric_Value=00000000029}', "");
+    Expect(1, 12890, '\P{Numeric_Value=00000000029}', "");
+    Expect(0, 12890, '\P{^Numeric_Value=00000000029}', "");
     Expect(1, 12889, '\p{Numeric_Value=2.900000000000000e+01}', "");
     Expect(0, 12889, '\p{^Numeric_Value=2.900000000000000e+01}', "");
     Expect(0, 12889, '\P{Numeric_Value=2.900000000000000e+01}', "");
@@ -76945,18 +77535,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12890, '\p{^Numeric_Value=2.900000000000000e+01}', "");
     Expect(1, 12890, '\P{Numeric_Value=2.900000000000000e+01}', "");
     Expect(0, 12890, '\P{^Numeric_Value=2.900000000000000e+01}', "");
-    Error('\p{Nv=-+00000000029/a/}');
-    Error('\P{Nv=-+00000000029/a/}');
+    Error('\p{Nv=	:=00000_00002_9}');
+    Error('\P{Nv=	:=00000_00002_9}');
     Expect(1, 12889, '\p{Nv=:\A29\z:}', "");;
     Expect(0, 12890, '\p{Nv=:\A29\z:}', "");;
-    Expect(1, 12889, '\p{Nv=+02_9}', "");
-    Expect(0, 12889, '\p{^Nv=+02_9}', "");
-    Expect(0, 12889, '\P{Nv=+02_9}', "");
-    Expect(1, 12889, '\P{^Nv=+02_9}', "");
-    Expect(0, 12890, '\p{Nv=+02_9}', "");
-    Expect(1, 12890, '\p{^Nv=+02_9}', "");
-    Expect(1, 12890, '\P{Nv=+02_9}', "");
-    Expect(0, 12890, '\P{^Nv=+02_9}', "");
+    Expect(1, 12889, '\p{Nv:   00000029}', "");
+    Expect(0, 12889, '\p{^Nv:   00000029}', "");
+    Expect(0, 12889, '\P{Nv:   00000029}', "");
+    Expect(1, 12889, '\P{^Nv:   00000029}', "");
+    Expect(0, 12890, '\p{Nv:   00000029}', "");
+    Expect(1, 12890, '\p{^Nv:   00000029}', "");
+    Expect(1, 12890, '\P{Nv:   00000029}', "");
+    Expect(0, 12890, '\P{^Nv:   00000029}', "");
     Expect(1, 12889, '\p{Nv=2.900000000000000e+01}', "");
     Expect(0, 12889, '\p{^Nv=2.900000000000000e+01}', "");
     Expect(0, 12889, '\P{Nv=2.900000000000000e+01}', "");
@@ -76965,16 +77555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12890, '\p{^Nv=2.900000000000000e+01}', "");
     Expect(1, 12890, '\P{Nv=2.900000000000000e+01}', "");
     Expect(0, 12890, '\P{^Nv=2.900000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=		29/a/}');
-    Error('\P{Is_Numeric_Value=		29/a/}');
-    Expect(1, 12889, '\p{Is_Numeric_Value=+0000000029}', "");
-    Expect(0, 12889, '\p{^Is_Numeric_Value=+0000000029}', "");
-    Expect(0, 12889, '\P{Is_Numeric_Value=+0000000029}', "");
-    Expect(1, 12889, '\P{^Is_Numeric_Value=+0000000029}', "");
-    Expect(0, 12890, '\p{Is_Numeric_Value=+0000000029}', "");
-    Expect(1, 12890, '\p{^Is_Numeric_Value=+0000000029}', "");
-    Expect(1, 12890, '\P{Is_Numeric_Value=+0000000029}', "");
-    Expect(0, 12890, '\P{^Is_Numeric_Value=+0000000029}', "");
+    Error('\p{Is_Numeric_Value=/a/_000000029}');
+    Error('\P{Is_Numeric_Value=/a/_000000029}');
+    Expect(1, 12889, '\p{Is_Numeric_Value=+0029}', "");
+    Expect(0, 12889, '\p{^Is_Numeric_Value=+0029}', "");
+    Expect(0, 12889, '\P{Is_Numeric_Value=+0029}', "");
+    Expect(1, 12889, '\P{^Is_Numeric_Value=+0029}', "");
+    Expect(0, 12890, '\p{Is_Numeric_Value=+0029}', "");
+    Expect(1, 12890, '\p{^Is_Numeric_Value=+0029}', "");
+    Expect(1, 12890, '\P{Is_Numeric_Value=+0029}', "");
+    Expect(0, 12890, '\P{^Is_Numeric_Value=+0029}', "");
     Expect(1, 12889, '\p{Is_Numeric_Value=2.900000000000000e+01}', "");
     Expect(0, 12889, '\p{^Is_Numeric_Value=2.900000000000000e+01}', "");
     Expect(0, 12889, '\P{Is_Numeric_Value=2.900000000000000e+01}', "");
@@ -76983,16 +77573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12890, '\p{^Is_Numeric_Value=2.900000000000000e+01}', "");
     Expect(1, 12890, '\P{Is_Numeric_Value=2.900000000000000e+01}', "");
     Expect(0, 12890, '\P{^Is_Numeric_Value=2.900000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/ 	+29}');
-    Error('\P{Is_Nv=/a/ 	+29}');
-    Expect(1, 12889, '\p{Is_Nv=00029}', "");
-    Expect(0, 12889, '\p{^Is_Nv=00029}', "");
-    Expect(0, 12889, '\P{Is_Nv=00029}', "");
-    Expect(1, 12889, '\P{^Is_Nv=00029}', "");
-    Expect(0, 12890, '\p{Is_Nv=00029}', "");
-    Expect(1, 12890, '\p{^Is_Nv=00029}', "");
-    Expect(1, 12890, '\P{Is_Nv=00029}', "");
-    Expect(0, 12890, '\P{^Is_Nv=00029}', "");
+    Error('\p{Is_Nv= _+29:=}');
+    Error('\P{Is_Nv= _+29:=}');
+    Expect(1, 12889, '\p{Is_Nv:	+29}', "");
+    Expect(0, 12889, '\p{^Is_Nv:	+29}', "");
+    Expect(0, 12889, '\P{Is_Nv:	+29}', "");
+    Expect(1, 12889, '\P{^Is_Nv:	+29}', "");
+    Expect(0, 12890, '\p{Is_Nv:	+29}', "");
+    Expect(1, 12890, '\p{^Is_Nv:	+29}', "");
+    Expect(1, 12890, '\P{Is_Nv:	+29}', "");
+    Expect(0, 12890, '\P{^Is_Nv:	+29}', "");
     Expect(1, 12889, '\p{Is_Nv=2.900000000000000e+01}', "");
     Expect(0, 12889, '\p{^Is_Nv=2.900000000000000e+01}', "");
     Expect(0, 12889, '\P{Is_Nv=2.900000000000000e+01}', "");
@@ -77001,28 +77591,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 12890, '\p{^Is_Nv=2.900000000000000e+01}', "");
     Expect(1, 12890, '\P{Is_Nv=2.900000000000000e+01}', "");
     Expect(0, 12890, '\P{^Is_Nv=2.900000000000000e+01}', "");
-    Error('\p{Numeric_Value:		+00000_3/a/}');
-    Error('\P{Numeric_Value:		+00000_3/a/}');
+    Error('\p{Numeric_Value=:=--0_0_0_0_0003}');
+    Error('\P{Numeric_Value=:=--0_0_0_0_0003}');
     Expect(1, 146203, '\p{Numeric_Value=:\A3\z:}', "");;
     Expect(0, 146204, '\p{Numeric_Value=:\A3\z:}', "");;
-    Expect(1, 146203, '\p{Numeric_Value=0000_3}', "");
-    Expect(0, 146203, '\p{^Numeric_Value=0000_3}', "");
-    Expect(0, 146203, '\P{Numeric_Value=0000_3}', "");
-    Expect(1, 146203, '\P{^Numeric_Value=0000_3}', "");
-    Expect(0, 146204, '\p{Numeric_Value=0000_3}', "");
-    Expect(1, 146204, '\p{^Numeric_Value=0000_3}', "");
-    Expect(1, 146204, '\P{Numeric_Value=0000_3}', "");
-    Expect(0, 146204, '\P{^Numeric_Value=0000_3}', "");
-    Expect(1, 146203, '\p{Numeric_Value=3.000000000000000e+00}', "");
-    Expect(0, 146203, '\p{^Numeric_Value=3.000000000000000e+00}', "");
-    Expect(0, 146203, '\P{Numeric_Value=3.000000000000000e+00}', "");
-    Expect(1, 146203, '\P{^Numeric_Value=3.000000000000000e+00}', "");
-    Expect(0, 146204, '\p{Numeric_Value=3.000000000000000e+00}', "");
-    Expect(1, 146204, '\p{^Numeric_Value=3.000000000000000e+00}', "");
-    Expect(1, 146204, '\P{Numeric_Value=3.000000000000000e+00}', "");
-    Expect(0, 146204, '\P{^Numeric_Value=3.000000000000000e+00}', "");
-    Error('\p{Nv=/a/		0_0_0_003}');
-    Error('\P{Nv=/a/		0_0_0_003}');
+    Expect(1, 146203, '\p{Numeric_Value=00_00_03}', "");
+    Expect(0, 146203, '\p{^Numeric_Value=00_00_03}', "");
+    Expect(0, 146203, '\P{Numeric_Value=00_00_03}', "");
+    Expect(1, 146203, '\P{^Numeric_Value=00_00_03}', "");
+    Expect(0, 146204, '\p{Numeric_Value=00_00_03}', "");
+    Expect(1, 146204, '\p{^Numeric_Value=00_00_03}', "");
+    Expect(1, 146204, '\P{Numeric_Value=00_00_03}', "");
+    Expect(0, 146204, '\P{^Numeric_Value=00_00_03}', "");
+    Expect(1, 146203, '\p{Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(0, 146203, '\p{^Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(0, 146203, '\P{Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(1, 146203, '\P{^Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(0, 146204, '\p{Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(1, 146204, '\p{^Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(1, 146204, '\P{Numeric_Value:	3.000000000000000e+00}', "");
+    Expect(0, 146204, '\P{^Numeric_Value:	3.000000000000000e+00}', "");
+    Error('\p{Nv:   /a/3}');
+    Error('\P{Nv:   /a/3}');
     Expect(1, 146203, '\p{Nv=:\A3\z:}', "");;
     Expect(0, 146204, '\p{Nv=:\A3\z:}', "");;
     Expect(1, 146203, '\p{Nv=0000000003}', "");
@@ -77033,24 +77623,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 146204, '\p{^Nv=0000000003}', "");
     Expect(1, 146204, '\P{Nv=0000000003}', "");
     Expect(0, 146204, '\P{^Nv=0000000003}', "");
-    Expect(1, 146203, '\p{Nv:   3.000000000000000e+00}', "");
-    Expect(0, 146203, '\p{^Nv:   3.000000000000000e+00}', "");
-    Expect(0, 146203, '\P{Nv:   3.000000000000000e+00}', "");
-    Expect(1, 146203, '\P{^Nv:   3.000000000000000e+00}', "");
-    Expect(0, 146204, '\p{Nv:   3.000000000000000e+00}', "");
-    Expect(1, 146204, '\p{^Nv:   3.000000000000000e+00}', "");
-    Expect(1, 146204, '\P{Nv:   3.000000000000000e+00}', "");
-    Expect(0, 146204, '\P{^Nv:   3.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value::=_ 03}');
-    Error('\P{Is_Numeric_Value::=_ 03}');
-    Expect(1, 146203, '\p{Is_Numeric_Value=+3}', "");
-    Expect(0, 146203, '\p{^Is_Numeric_Value=+3}', "");
-    Expect(0, 146203, '\P{Is_Numeric_Value=+3}', "");
-    Expect(1, 146203, '\P{^Is_Numeric_Value=+3}', "");
-    Expect(0, 146204, '\p{Is_Numeric_Value=+3}', "");
-    Expect(1, 146204, '\p{^Is_Numeric_Value=+3}', "");
-    Expect(1, 146204, '\P{Is_Numeric_Value=+3}', "");
-    Expect(0, 146204, '\P{^Is_Numeric_Value=+3}', "");
+    Expect(1, 146203, '\p{Nv=3.000000000000000e+00}', "");
+    Expect(0, 146203, '\p{^Nv=3.000000000000000e+00}', "");
+    Expect(0, 146203, '\P{Nv=3.000000000000000e+00}', "");
+    Expect(1, 146203, '\P{^Nv=3.000000000000000e+00}', "");
+    Expect(0, 146204, '\p{Nv=3.000000000000000e+00}', "");
+    Expect(1, 146204, '\p{^Nv=3.000000000000000e+00}', "");
+    Expect(1, 146204, '\P{Nv=3.000000000000000e+00}', "");
+    Expect(0, 146204, '\P{^Nv=3.000000000000000e+00}', "");
+    Error('\p{Is_Numeric_Value=	 00000003/a/}');
+    Error('\P{Is_Numeric_Value=	 00000003/a/}');
+    Expect(1, 146203, '\p{Is_Numeric_Value=+000003}', "");
+    Expect(0, 146203, '\p{^Is_Numeric_Value=+000003}', "");
+    Expect(0, 146203, '\P{Is_Numeric_Value=+000003}', "");
+    Expect(1, 146203, '\P{^Is_Numeric_Value=+000003}', "");
+    Expect(0, 146204, '\p{Is_Numeric_Value=+000003}', "");
+    Expect(1, 146204, '\p{^Is_Numeric_Value=+000003}', "");
+    Expect(1, 146204, '\P{Is_Numeric_Value=+000003}', "");
+    Expect(0, 146204, '\P{^Is_Numeric_Value=+000003}', "");
     Expect(1, 146203, '\p{Is_Numeric_Value=3.000000000000000e+00}', "");
     Expect(0, 146203, '\p{^Is_Numeric_Value=3.000000000000000e+00}', "");
     Expect(0, 146203, '\P{Is_Numeric_Value=3.000000000000000e+00}', "");
@@ -77059,36 +77649,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 146204, '\p{^Is_Numeric_Value=3.000000000000000e+00}', "");
     Expect(1, 146204, '\P{Is_Numeric_Value=3.000000000000000e+00}', "");
     Expect(0, 146204, '\P{^Is_Numeric_Value=3.000000000000000e+00}', "");
-    Error('\p{Is_Nv=/a/	00003}');
-    Error('\P{Is_Nv=/a/	00003}');
-    Expect(1, 146203, '\p{Is_Nv: +00003}', "");
-    Expect(0, 146203, '\p{^Is_Nv: +00003}', "");
-    Expect(0, 146203, '\P{Is_Nv: +00003}', "");
-    Expect(1, 146203, '\P{^Is_Nv: +00003}', "");
-    Expect(0, 146204, '\p{Is_Nv: +00003}', "");
-    Expect(1, 146204, '\p{^Is_Nv: +00003}', "");
-    Expect(1, 146204, '\P{Is_Nv: +00003}', "");
-    Expect(0, 146204, '\P{^Is_Nv: +00003}', "");
-    Expect(1, 146203, '\p{Is_Nv=3.000000000000000e+00}', "");
-    Expect(0, 146203, '\p{^Is_Nv=3.000000000000000e+00}', "");
-    Expect(0, 146203, '\P{Is_Nv=3.000000000000000e+00}', "");
-    Expect(1, 146203, '\P{^Is_Nv=3.000000000000000e+00}', "");
-    Expect(0, 146204, '\p{Is_Nv=3.000000000000000e+00}', "");
-    Expect(1, 146204, '\p{^Is_Nv=3.000000000000000e+00}', "");
-    Expect(1, 146204, '\P{Is_Nv=3.000000000000000e+00}', "");
-    Expect(0, 146204, '\P{^Is_Nv=3.000000000000000e+00}', "");
-    Error('\p{Numeric_Value= 	003/0000000016/a/}');
-    Error('\P{Numeric_Value= 	003/0000000016/a/}');
+    Error('\p{Is_Nv= /a/0_0_03}');
+    Error('\P{Is_Nv= /a/0_0_03}');
+    Expect(1, 146203, '\p{Is_Nv=000000000_3}', "");
+    Expect(0, 146203, '\p{^Is_Nv=000000000_3}', "");
+    Expect(0, 146203, '\P{Is_Nv=000000000_3}', "");
+    Expect(1, 146203, '\P{^Is_Nv=000000000_3}', "");
+    Expect(0, 146204, '\p{Is_Nv=000000000_3}', "");
+    Expect(1, 146204, '\p{^Is_Nv=000000000_3}', "");
+    Expect(1, 146204, '\P{Is_Nv=000000000_3}', "");
+    Expect(0, 146204, '\P{^Is_Nv=000000000_3}', "");
+    Expect(1, 146203, '\p{Is_Nv:	3.000000000000000e+00}', "");
+    Expect(0, 146203, '\p{^Is_Nv:	3.000000000000000e+00}', "");
+    Expect(0, 146203, '\P{Is_Nv:	3.000000000000000e+00}', "");
+    Expect(1, 146203, '\P{^Is_Nv:	3.000000000000000e+00}', "");
+    Expect(0, 146204, '\p{Is_Nv:	3.000000000000000e+00}', "");
+    Expect(1, 146204, '\p{^Is_Nv:	3.000000000000000e+00}', "");
+    Expect(1, 146204, '\P{Is_Nv:	3.000000000000000e+00}', "");
+    Expect(0, 146204, '\P{^Is_Nv:	3.000000000000000e+00}', "");
+    Error('\p{Numeric_Value=:=		000003/00000000016}');
+    Error('\P{Numeric_Value=:=		000003/00000000016}');
     Expect(1, 73678, '\p{Numeric_Value=:\A3/16\z:}', "");;
     Expect(0, 73679, '\p{Numeric_Value=:\A3/16\z:}', "");;
-    Expect(1, 73678, '\p{Numeric_Value=00003/0000000016}', "");
-    Expect(0, 73678, '\p{^Numeric_Value=00003/0000000016}', "");
-    Expect(0, 73678, '\P{Numeric_Value=00003/0000000016}', "");
-    Expect(1, 73678, '\P{^Numeric_Value=00003/0000000016}', "");
-    Expect(0, 73679, '\p{Numeric_Value=00003/0000000016}', "");
-    Expect(1, 73679, '\p{^Numeric_Value=00003/0000000016}', "");
-    Expect(1, 73679, '\P{Numeric_Value=00003/0000000016}', "");
-    Expect(0, 73679, '\P{^Numeric_Value=00003/0000000016}', "");
+    Expect(1, 73678, '\p{Numeric_Value=3/000016}', "");
+    Expect(0, 73678, '\p{^Numeric_Value=3/000016}', "");
+    Expect(0, 73678, '\P{Numeric_Value=3/000016}', "");
+    Expect(1, 73678, '\P{^Numeric_Value=3/000016}', "");
+    Expect(0, 73679, '\p{Numeric_Value=3/000016}', "");
+    Expect(1, 73679, '\p{^Numeric_Value=3/000016}', "");
+    Expect(1, 73679, '\P{Numeric_Value=3/000016}', "");
+    Expect(0, 73679, '\P{^Numeric_Value=3/000016}', "");
     Expect(1, 73678, '\p{Numeric_Value=180/960}', "");
     Expect(0, 73678, '\p{^Numeric_Value=180/960}', "");
     Expect(0, 73678, '\P{Numeric_Value=180/960}', "");
@@ -77097,8 +77687,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Numeric_Value=180/960}', "");
     Expect(1, 73679, '\P{Numeric_Value=180/960}', "");
     Expect(0, 73679, '\P{^Numeric_Value=180/960}', "");
-    Error('\p{Numeric_Value=1.9e-01}');
-    Error('\P{Numeric_Value=1.9e-01}');
+    Error('\p{Numeric_Value:	1.9e-01}');
+    Error('\P{Numeric_Value:	1.9e-01}');
     Error('\p{Numeric_Value=1.88e-01}');
     Error('\P{Numeric_Value=1.88e-01}');
     Error('\p{Numeric_Value=0.19}');
@@ -77113,14 +77703,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73679, '\P{^Numeric_Value=1.875e-01}', "");
     Error('\p{Numeric_Value=0.188}');
     Error('\P{Numeric_Value=0.188}');
-    Expect(1, 73678, '\p{Numeric_Value: 1.8750e-01}', "");
-    Expect(0, 73678, '\p{^Numeric_Value: 1.8750e-01}', "");
-    Expect(0, 73678, '\P{Numeric_Value: 1.8750e-01}', "");
-    Expect(1, 73678, '\P{^Numeric_Value: 1.8750e-01}', "");
-    Expect(0, 73679, '\p{Numeric_Value: 1.8750e-01}', "");
-    Expect(1, 73679, '\p{^Numeric_Value: 1.8750e-01}', "");
-    Expect(1, 73679, '\P{Numeric_Value: 1.8750e-01}', "");
-    Expect(0, 73679, '\P{^Numeric_Value: 1.8750e-01}', "");
+    Expect(1, 73678, '\p{Numeric_Value=1.8750e-01}', "");
+    Expect(0, 73678, '\p{^Numeric_Value=1.8750e-01}', "");
+    Expect(0, 73678, '\P{Numeric_Value=1.8750e-01}', "");
+    Expect(1, 73678, '\P{^Numeric_Value=1.8750e-01}', "");
+    Expect(0, 73679, '\p{Numeric_Value=1.8750e-01}', "");
+    Expect(1, 73679, '\p{^Numeric_Value=1.8750e-01}', "");
+    Expect(1, 73679, '\P{Numeric_Value=1.8750e-01}', "");
+    Expect(0, 73679, '\P{^Numeric_Value=1.8750e-01}', "");
     Expect(1, 73678, '\p{Numeric_Value=0.1875}', "");
     Expect(0, 73678, '\p{^Numeric_Value=0.1875}', "");
     Expect(0, 73678, '\P{Numeric_Value=0.1875}', "");
@@ -77129,14 +77719,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Numeric_Value=0.1875}', "");
     Expect(1, 73679, '\P{Numeric_Value=0.1875}', "");
     Expect(0, 73679, '\P{^Numeric_Value=0.1875}', "");
-    Expect(1, 73678, '\p{Numeric_Value=1.87500e-01}', "");
-    Expect(0, 73678, '\p{^Numeric_Value=1.87500e-01}', "");
-    Expect(0, 73678, '\P{Numeric_Value=1.87500e-01}', "");
-    Expect(1, 73678, '\P{^Numeric_Value=1.87500e-01}', "");
-    Expect(0, 73679, '\p{Numeric_Value=1.87500e-01}', "");
-    Expect(1, 73679, '\p{^Numeric_Value=1.87500e-01}', "");
-    Expect(1, 73679, '\P{Numeric_Value=1.87500e-01}', "");
-    Expect(0, 73679, '\P{^Numeric_Value=1.87500e-01}', "");
+    Expect(1, 73678, '\p{Numeric_Value:1.87500e-01}', "");
+    Expect(0, 73678, '\p{^Numeric_Value:1.87500e-01}', "");
+    Expect(0, 73678, '\P{Numeric_Value:1.87500e-01}', "");
+    Expect(1, 73678, '\P{^Numeric_Value:1.87500e-01}', "");
+    Expect(0, 73679, '\p{Numeric_Value:1.87500e-01}', "");
+    Expect(1, 73679, '\p{^Numeric_Value:1.87500e-01}', "");
+    Expect(1, 73679, '\P{Numeric_Value:1.87500e-01}', "");
+    Expect(0, 73679, '\P{^Numeric_Value:1.87500e-01}', "");
     Expect(1, 73678, '\p{Numeric_Value=0.18750}', "");
     Expect(0, 73678, '\p{^Numeric_Value=0.18750}', "");
     Expect(0, 73678, '\P{Numeric_Value=0.18750}', "");
@@ -77145,18 +77735,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Numeric_Value=0.18750}', "");
     Expect(1, 73679, '\P{Numeric_Value=0.18750}', "");
     Expect(0, 73679, '\P{^Numeric_Value=0.18750}', "");
-    Error('\p{Nv:   -_03/16:=}');
-    Error('\P{Nv:   -_03/16:=}');
+    Error('\p{Nv=:=	-000000003/00000000016}');
+    Error('\P{Nv=:=	-000000003/00000000016}');
     Expect(1, 73678, '\p{Nv=:\A3/16\z:}', "");;
     Expect(0, 73679, '\p{Nv=:\A3/16\z:}', "");;
-    Expect(1, 73678, '\p{Nv: 0003/016}', "");
-    Expect(0, 73678, '\p{^Nv: 0003/016}', "");
-    Expect(0, 73678, '\P{Nv: 0003/016}', "");
-    Expect(1, 73678, '\P{^Nv: 0003/016}', "");
-    Expect(0, 73679, '\p{Nv: 0003/016}', "");
-    Expect(1, 73679, '\p{^Nv: 0003/016}', "");
-    Expect(1, 73679, '\P{Nv: 0003/016}', "");
-    Expect(0, 73679, '\P{^Nv: 0003/016}', "");
+    Expect(1, 73678, '\p{Nv=0003/000016}', "");
+    Expect(0, 73678, '\p{^Nv=0003/000016}', "");
+    Expect(0, 73678, '\P{Nv=0003/000016}', "");
+    Expect(1, 73678, '\P{^Nv=0003/000016}', "");
+    Expect(0, 73679, '\p{Nv=0003/000016}', "");
+    Expect(1, 73679, '\p{^Nv=0003/000016}', "");
+    Expect(1, 73679, '\P{Nv=0003/000016}', "");
+    Expect(0, 73679, '\P{^Nv=0003/000016}', "");
     Expect(1, 73678, '\p{Nv=180/960}', "");
     Expect(0, 73678, '\p{^Nv=180/960}', "");
     Expect(0, 73678, '\P{Nv=180/960}', "");
@@ -77165,8 +77755,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Nv=180/960}', "");
     Expect(1, 73679, '\P{Nv=180/960}', "");
     Expect(0, 73679, '\P{^Nv=180/960}', "");
-    Error('\p{Nv:1.9e-01}');
-    Error('\P{Nv:1.9e-01}');
+    Error('\p{Nv=1.9e-01}');
+    Error('\P{Nv=1.9e-01}');
     Error('\p{Nv=1.88e-01}');
     Error('\P{Nv=1.88e-01}');
     Error('\p{Nv=0.19}');
@@ -77189,14 +77779,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Nv=1.8750e-01}', "");
     Expect(1, 73679, '\P{Nv=1.8750e-01}', "");
     Expect(0, 73679, '\P{^Nv=1.8750e-01}', "");
-    Expect(1, 73678, '\p{Nv=0.1875}', "");
-    Expect(0, 73678, '\p{^Nv=0.1875}', "");
-    Expect(0, 73678, '\P{Nv=0.1875}', "");
-    Expect(1, 73678, '\P{^Nv=0.1875}', "");
-    Expect(0, 73679, '\p{Nv=0.1875}', "");
-    Expect(1, 73679, '\p{^Nv=0.1875}', "");
-    Expect(1, 73679, '\P{Nv=0.1875}', "");
-    Expect(0, 73679, '\P{^Nv=0.1875}', "");
+    Expect(1, 73678, '\p{Nv:	0.1875}', "");
+    Expect(0, 73678, '\p{^Nv:	0.1875}', "");
+    Expect(0, 73678, '\P{Nv:	0.1875}', "");
+    Expect(1, 73678, '\P{^Nv:	0.1875}', "");
+    Expect(0, 73679, '\p{Nv:	0.1875}', "");
+    Expect(1, 73679, '\p{^Nv:	0.1875}', "");
+    Expect(1, 73679, '\P{Nv:	0.1875}', "");
+    Expect(0, 73679, '\P{^Nv:	0.1875}', "");
     Expect(1, 73678, '\p{Nv=1.87500e-01}', "");
     Expect(0, 73678, '\p{^Nv=1.87500e-01}', "");
     Expect(0, 73678, '\P{Nv=1.87500e-01}', "");
@@ -77213,16 +77803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Nv=0.18750}', "");
     Expect(1, 73679, '\P{Nv=0.18750}', "");
     Expect(0, 73679, '\P{^Nv=0.18750}', "");
-    Error('\p{Is_Numeric_Value:	 /a/00000003/00000016}');
-    Error('\P{Is_Numeric_Value:	 /a/00000003/00000016}');
-    Expect(1, 73678, '\p{Is_Numeric_Value=+003/00000016}', "");
-    Expect(0, 73678, '\p{^Is_Numeric_Value=+003/00000016}', "");
-    Expect(0, 73678, '\P{Is_Numeric_Value=+003/00000016}', "");
-    Expect(1, 73678, '\P{^Is_Numeric_Value=+003/00000016}', "");
-    Expect(0, 73679, '\p{Is_Numeric_Value=+003/00000016}', "");
-    Expect(1, 73679, '\p{^Is_Numeric_Value=+003/00000016}', "");
-    Expect(1, 73679, '\P{Is_Numeric_Value=+003/00000016}', "");
-    Expect(0, 73679, '\P{^Is_Numeric_Value=+003/00000016}', "");
+    Error('\p{Is_Numeric_Value=_+03/000000016:=}');
+    Error('\P{Is_Numeric_Value=_+03/000000016:=}');
+    Expect(1, 73678, '\p{Is_Numeric_Value=03/00000016}', "");
+    Expect(0, 73678, '\p{^Is_Numeric_Value=03/00000016}', "");
+    Expect(0, 73678, '\P{Is_Numeric_Value=03/00000016}', "");
+    Expect(1, 73678, '\P{^Is_Numeric_Value=03/00000016}', "");
+    Expect(0, 73679, '\p{Is_Numeric_Value=03/00000016}', "");
+    Expect(1, 73679, '\p{^Is_Numeric_Value=03/00000016}', "");
+    Expect(1, 73679, '\P{Is_Numeric_Value=03/00000016}', "");
+    Expect(0, 73679, '\P{^Is_Numeric_Value=03/00000016}', "");
     Expect(1, 73678, '\p{Is_Numeric_Value=180/960}', "");
     Expect(0, 73678, '\p{^Is_Numeric_Value=180/960}', "");
     Expect(0, 73678, '\P{Is_Numeric_Value=180/960}', "");
@@ -77231,8 +77821,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Is_Numeric_Value=180/960}', "");
     Expect(1, 73679, '\P{Is_Numeric_Value=180/960}', "");
     Expect(0, 73679, '\P{^Is_Numeric_Value=180/960}', "");
-    Error('\p{Is_Numeric_Value:1.9e-01}');
-    Error('\P{Is_Numeric_Value:1.9e-01}');
+    Error('\p{Is_Numeric_Value=1.9e-01}');
+    Error('\P{Is_Numeric_Value=1.9e-01}');
     Error('\p{Is_Numeric_Value=1.88e-01}');
     Error('\P{Is_Numeric_Value=1.88e-01}');
     Error('\p{Is_Numeric_Value=0.19}');
@@ -77279,16 +77869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Is_Numeric_Value=0.18750}', "");
     Expect(1, 73679, '\P{Is_Numeric_Value=0.18750}', "");
     Expect(0, 73679, '\P{^Is_Numeric_Value=0.18750}', "");
-    Error('\p{Is_Nv: /a/ _000000003/00000000016}');
-    Error('\P{Is_Nv: /a/ _000000003/00000000016}');
-    Expect(1, 73678, '\p{Is_Nv=0003/000016}', "");
-    Expect(0, 73678, '\p{^Is_Nv=0003/000016}', "");
-    Expect(0, 73678, '\P{Is_Nv=0003/000016}', "");
-    Expect(1, 73678, '\P{^Is_Nv=0003/000016}', "");
-    Expect(0, 73679, '\p{Is_Nv=0003/000016}', "");
-    Expect(1, 73679, '\p{^Is_Nv=0003/000016}', "");
-    Expect(1, 73679, '\P{Is_Nv=0003/000016}', "");
-    Expect(0, 73679, '\P{^Is_Nv=0003/000016}', "");
+    Error('\p{Is_Nv=-:=003/00000000016}');
+    Error('\P{Is_Nv=-:=003/00000000016}');
+    Expect(1, 73678, '\p{Is_Nv=0000003/0000000016}', "");
+    Expect(0, 73678, '\p{^Is_Nv=0000003/0000000016}', "");
+    Expect(0, 73678, '\P{Is_Nv=0000003/0000000016}', "");
+    Expect(1, 73678, '\P{^Is_Nv=0000003/0000000016}', "");
+    Expect(0, 73679, '\p{Is_Nv=0000003/0000000016}', "");
+    Expect(1, 73679, '\p{^Is_Nv=0000003/0000000016}', "");
+    Expect(1, 73679, '\P{Is_Nv=0000003/0000000016}', "");
+    Expect(0, 73679, '\P{^Is_Nv=0000003/0000000016}', "");
     Expect(1, 73678, '\p{Is_Nv=180/960}', "");
     Expect(0, 73678, '\p{^Is_Nv=180/960}', "");
     Expect(0, 73678, '\P{Is_Nv=180/960}', "");
@@ -77297,12 +77887,12 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Is_Nv=180/960}', "");
     Expect(1, 73679, '\P{Is_Nv=180/960}', "");
     Expect(0, 73679, '\P{^Is_Nv=180/960}', "");
-    Error('\p{Is_Nv:	1.9e-01}');
-    Error('\P{Is_Nv:	1.9e-01}');
+    Error('\p{Is_Nv=1.9e-01}');
+    Error('\P{Is_Nv=1.9e-01}');
     Error('\p{Is_Nv=1.88e-01}');
     Error('\P{Is_Nv=1.88e-01}');
-    Error('\p{Is_Nv=0.19}');
-    Error('\P{Is_Nv=0.19}');
+    Error('\p{Is_Nv: 0.19}');
+    Error('\P{Is_Nv: 0.19}');
     Expect(1, 73678, '\p{Is_Nv=1.875e-01}', "");
     Expect(0, 73678, '\p{^Is_Nv=1.875e-01}', "");
     Expect(0, 73678, '\P{Is_Nv=1.875e-01}', "");
@@ -77311,8 +77901,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Is_Nv=1.875e-01}', "");
     Expect(1, 73679, '\P{Is_Nv=1.875e-01}', "");
     Expect(0, 73679, '\P{^Is_Nv=1.875e-01}', "");
-    Error('\p{Is_Nv: 0.188}');
-    Error('\P{Is_Nv: 0.188}');
+    Error('\p{Is_Nv=0.188}');
+    Error('\P{Is_Nv=0.188}');
     Expect(1, 73678, '\p{Is_Nv=1.8750e-01}', "");
     Expect(0, 73678, '\p{^Is_Nv=1.8750e-01}', "");
     Expect(0, 73678, '\P{Is_Nv=1.8750e-01}', "");
@@ -77345,18 +77935,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73679, '\p{^Is_Nv=0.18750}', "");
     Expect(1, 73679, '\P{Is_Nv=0.18750}', "");
     Expect(0, 73679, '\P{^Is_Nv=0.18750}', "");
-    Error('\p{Numeric_Value=  0000000003/002:=}');
-    Error('\P{Numeric_Value=  0000000003/002:=}');
+    Error('\p{Numeric_Value= /a/03/0000000002}');
+    Error('\P{Numeric_Value= /a/03/0000000002}');
     Expect(1, 3883, '\p{Numeric_Value=:\A3/2\z:}', "");;
     Expect(0, 3884, '\p{Numeric_Value=:\A3/2\z:}', "");;
-    Expect(1, 3883, '\p{Numeric_Value=03/2}', "");
-    Expect(0, 3883, '\p{^Numeric_Value=03/2}', "");
-    Expect(0, 3883, '\P{Numeric_Value=03/2}', "");
-    Expect(1, 3883, '\P{^Numeric_Value=03/2}', "");
-    Expect(0, 3884, '\p{Numeric_Value=03/2}', "");
-    Expect(1, 3884, '\p{^Numeric_Value=03/2}', "");
-    Expect(1, 3884, '\P{Numeric_Value=03/2}', "");
-    Expect(0, 3884, '\P{^Numeric_Value=03/2}', "");
+    Expect(1, 3883, '\p{Numeric_Value:	000000003/2}', "");
+    Expect(0, 3883, '\p{^Numeric_Value:	000000003/2}', "");
+    Expect(0, 3883, '\P{Numeric_Value:	000000003/2}', "");
+    Expect(1, 3883, '\P{^Numeric_Value:	000000003/2}', "");
+    Expect(0, 3884, '\p{Numeric_Value:	000000003/2}', "");
+    Expect(1, 3884, '\p{^Numeric_Value:	000000003/2}', "");
+    Expect(1, 3884, '\P{Numeric_Value:	000000003/2}', "");
+    Expect(0, 3884, '\P{^Numeric_Value:	000000003/2}', "");
     Expect(1, 3883, '\p{Numeric_Value=180/120}', "");
     Expect(0, 3883, '\p{^Numeric_Value=180/120}', "");
     Expect(0, 3883, '\P{Numeric_Value=180/120}', "");
@@ -77389,26 +77979,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3884, '\p{^Numeric_Value=1.50e+00}', "");
     Expect(1, 3884, '\P{Numeric_Value=1.50e+00}', "");
     Expect(0, 3884, '\P{^Numeric_Value=1.50e+00}', "");
-    Expect(1, 3883, '\p{Numeric_Value: 1.50}', "");
-    Expect(0, 3883, '\p{^Numeric_Value: 1.50}', "");
-    Expect(0, 3883, '\P{Numeric_Value: 1.50}', "");
-    Expect(1, 3883, '\P{^Numeric_Value: 1.50}', "");
-    Expect(0, 3884, '\p{Numeric_Value: 1.50}', "");
-    Expect(1, 3884, '\p{^Numeric_Value: 1.50}', "");
-    Expect(1, 3884, '\P{Numeric_Value: 1.50}', "");
-    Expect(0, 3884, '\P{^Numeric_Value: 1.50}', "");
-    Error('\p{Nv: _:=003/000002}');
-    Error('\P{Nv: _:=003/000002}');
+    Expect(1, 3883, '\p{Numeric_Value=1.50}', "");
+    Expect(0, 3883, '\p{^Numeric_Value=1.50}', "");
+    Expect(0, 3883, '\P{Numeric_Value=1.50}', "");
+    Expect(1, 3883, '\P{^Numeric_Value=1.50}', "");
+    Expect(0, 3884, '\p{Numeric_Value=1.50}', "");
+    Expect(1, 3884, '\p{^Numeric_Value=1.50}', "");
+    Expect(1, 3884, '\P{Numeric_Value=1.50}', "");
+    Expect(0, 3884, '\P{^Numeric_Value=1.50}', "");
+    Error('\p{Nv=/a/_3/0002}');
+    Error('\P{Nv=/a/_3/0002}');
     Expect(1, 3883, '\p{Nv=:\A3/2\z:}', "");;
     Expect(0, 3884, '\p{Nv=:\A3/2\z:}', "");;
-    Expect(1, 3883, '\p{Nv=000003/00002}', "");
-    Expect(0, 3883, '\p{^Nv=000003/00002}', "");
-    Expect(0, 3883, '\P{Nv=000003/00002}', "");
-    Expect(1, 3883, '\P{^Nv=000003/00002}', "");
-    Expect(0, 3884, '\p{Nv=000003/00002}', "");
-    Expect(1, 3884, '\p{^Nv=000003/00002}', "");
-    Expect(1, 3884, '\P{Nv=000003/00002}', "");
-    Expect(0, 3884, '\P{^Nv=000003/00002}', "");
+    Expect(1, 3883, '\p{Nv=000000003/0000002}', "");
+    Expect(0, 3883, '\p{^Nv=000000003/0000002}', "");
+    Expect(0, 3883, '\P{Nv=000000003/0000002}', "");
+    Expect(1, 3883, '\P{^Nv=000000003/0000002}', "");
+    Expect(0, 3884, '\p{Nv=000000003/0000002}', "");
+    Expect(1, 3884, '\p{^Nv=000000003/0000002}', "");
+    Expect(1, 3884, '\P{Nv=000000003/0000002}', "");
+    Expect(0, 3884, '\P{^Nv=000000003/0000002}', "");
     Expect(1, 3883, '\p{Nv=180/120}', "");
     Expect(0, 3883, '\p{^Nv=180/120}', "");
     Expect(0, 3883, '\P{Nv=180/120}', "");
@@ -77417,14 +78007,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3884, '\p{^Nv=180/120}', "");
     Expect(1, 3884, '\P{Nv=180/120}', "");
     Expect(0, 3884, '\P{^Nv=180/120}', "");
-    Expect(1, 3883, '\p{Nv=1.5e+00}', "");
-    Expect(0, 3883, '\p{^Nv=1.5e+00}', "");
-    Expect(0, 3883, '\P{Nv=1.5e+00}', "");
-    Expect(1, 3883, '\P{^Nv=1.5e+00}', "");
-    Expect(0, 3884, '\p{Nv=1.5e+00}', "");
-    Expect(1, 3884, '\p{^Nv=1.5e+00}', "");
-    Expect(1, 3884, '\P{Nv=1.5e+00}', "");
-    Expect(0, 3884, '\P{^Nv=1.5e+00}', "");
+    Expect(1, 3883, '\p{Nv: 1.5e+00}', "");
+    Expect(0, 3883, '\p{^Nv: 1.5e+00}', "");
+    Expect(0, 3883, '\P{Nv: 1.5e+00}', "");
+    Expect(1, 3883, '\P{^Nv: 1.5e+00}', "");
+    Expect(0, 3884, '\p{Nv: 1.5e+00}', "");
+    Expect(1, 3884, '\p{^Nv: 1.5e+00}', "");
+    Expect(1, 3884, '\P{Nv: 1.5e+00}', "");
+    Expect(0, 3884, '\P{^Nv: 1.5e+00}', "");
     Expect(1, 3883, '\p{Nv:	1.5}', "");
     Expect(0, 3883, '\p{^Nv:	1.5}', "");
     Expect(0, 3883, '\P{Nv:	1.5}', "");
@@ -77449,16 +78039,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3884, '\p{^Nv=1.50}', "");
     Expect(1, 3884, '\P{Nv=1.50}', "");
     Expect(0, 3884, '\P{^Nv=1.50}', "");
-    Error('\p{Is_Numeric_Value=:=0000000003/002}');
-    Error('\P{Is_Numeric_Value=:=0000000003/002}');
-    Expect(1, 3883, '\p{Is_Numeric_Value=000003/000000002}', "");
-    Expect(0, 3883, '\p{^Is_Numeric_Value=000003/000000002}', "");
-    Expect(0, 3883, '\P{Is_Numeric_Value=000003/000000002}', "");
-    Expect(1, 3883, '\P{^Is_Numeric_Value=000003/000000002}', "");
-    Expect(0, 3884, '\p{Is_Numeric_Value=000003/000000002}', "");
-    Expect(1, 3884, '\p{^Is_Numeric_Value=000003/000000002}', "");
-    Expect(1, 3884, '\P{Is_Numeric_Value=000003/000000002}', "");
-    Expect(0, 3884, '\P{^Is_Numeric_Value=000003/000000002}', "");
+    Error('\p{Is_Numeric_Value=/a/__+003/002}');
+    Error('\P{Is_Numeric_Value=/a/__+003/002}');
+    Expect(1, 3883, '\p{Is_Numeric_Value:	003/02}', "");
+    Expect(0, 3883, '\p{^Is_Numeric_Value:	003/02}', "");
+    Expect(0, 3883, '\P{Is_Numeric_Value:	003/02}', "");
+    Expect(1, 3883, '\P{^Is_Numeric_Value:	003/02}', "");
+    Expect(0, 3884, '\p{Is_Numeric_Value:	003/02}', "");
+    Expect(1, 3884, '\p{^Is_Numeric_Value:	003/02}', "");
+    Expect(1, 3884, '\P{Is_Numeric_Value:	003/02}', "");
+    Expect(0, 3884, '\P{^Is_Numeric_Value:	003/02}', "");
     Expect(1, 3883, '\p{Is_Numeric_Value=180/120}', "");
     Expect(0, 3883, '\p{^Is_Numeric_Value=180/120}', "");
     Expect(0, 3883, '\P{Is_Numeric_Value=180/120}', "");
@@ -77467,14 +78057,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3884, '\p{^Is_Numeric_Value=180/120}', "");
     Expect(1, 3884, '\P{Is_Numeric_Value=180/120}', "");
     Expect(0, 3884, '\P{^Is_Numeric_Value=180/120}', "");
-    Expect(1, 3883, '\p{Is_Numeric_Value=1.5e+00}', "");
-    Expect(0, 3883, '\p{^Is_Numeric_Value=1.5e+00}', "");
-    Expect(0, 3883, '\P{Is_Numeric_Value=1.5e+00}', "");
-    Expect(1, 3883, '\P{^Is_Numeric_Value=1.5e+00}', "");
-    Expect(0, 3884, '\p{Is_Numeric_Value=1.5e+00}', "");
-    Expect(1, 3884, '\p{^Is_Numeric_Value=1.5e+00}', "");
-    Expect(1, 3884, '\P{Is_Numeric_Value=1.5e+00}', "");
-    Expect(0, 3884, '\P{^Is_Numeric_Value=1.5e+00}', "");
+    Expect(1, 3883, '\p{Is_Numeric_Value:   1.5e+00}', "");
+    Expect(0, 3883, '\p{^Is_Numeric_Value:   1.5e+00}', "");
+    Expect(0, 3883, '\P{Is_Numeric_Value:   1.5e+00}', "");
+    Expect(1, 3883, '\P{^Is_Numeric_Value:   1.5e+00}', "");
+    Expect(0, 3884, '\p{Is_Numeric_Value:   1.5e+00}', "");
+    Expect(1, 3884, '\p{^Is_Numeric_Value:   1.5e+00}', "");
+    Expect(1, 3884, '\P{Is_Numeric_Value:   1.5e+00}', "");
+    Expect(0, 3884, '\P{^Is_Numeric_Value:   1.5e+00}', "");
     Expect(1, 3883, '\p{Is_Numeric_Value=1.5}', "");
     Expect(0, 3883, '\p{^Is_Numeric_Value=1.5}', "");
     Expect(0, 3883, '\P{Is_Numeric_Value=1.5}', "");
@@ -77499,16 +78089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3884, '\p{^Is_Numeric_Value=1.50}', "");
     Expect(1, 3884, '\P{Is_Numeric_Value=1.50}', "");
     Expect(0, 3884, '\P{^Is_Numeric_Value=1.50}', "");
-    Error('\p{Is_Nv=-_3/00000002:=}');
-    Error('\P{Is_Nv=-_3/00000002:=}');
-    Expect(1, 3883, '\p{Is_Nv=0003/00002}', "");
-    Expect(0, 3883, '\p{^Is_Nv=0003/00002}', "");
-    Expect(0, 3883, '\P{Is_Nv=0003/00002}', "");
-    Expect(1, 3883, '\P{^Is_Nv=0003/00002}', "");
-    Expect(0, 3884, '\p{Is_Nv=0003/00002}', "");
-    Expect(1, 3884, '\p{^Is_Nv=0003/00002}', "");
-    Expect(1, 3884, '\P{Is_Nv=0003/00002}', "");
-    Expect(0, 3884, '\P{^Is_Nv=0003/00002}', "");
+    Error('\p{Is_Nv=:= -003/000002}');
+    Error('\P{Is_Nv=:= -003/000002}');
+    Expect(1, 3883, '\p{Is_Nv:03/002}', "");
+    Expect(0, 3883, '\p{^Is_Nv:03/002}', "");
+    Expect(0, 3883, '\P{Is_Nv:03/002}', "");
+    Expect(1, 3883, '\P{^Is_Nv:03/002}', "");
+    Expect(0, 3884, '\p{Is_Nv:03/002}', "");
+    Expect(1, 3884, '\p{^Is_Nv:03/002}', "");
+    Expect(1, 3884, '\P{Is_Nv:03/002}', "");
+    Expect(0, 3884, '\P{^Is_Nv:03/002}', "");
     Expect(1, 3883, '\p{Is_Nv=180/120}', "");
     Expect(0, 3883, '\p{^Is_Nv=180/120}', "");
     Expect(0, 3883, '\P{Is_Nv=180/120}', "");
@@ -77541,16 +78131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 3884, '\p{^Is_Nv=1.50e+00}', "");
     Expect(1, 3884, '\P{Is_Nv=1.50e+00}', "");
     Expect(0, 3884, '\P{^Is_Nv=1.50e+00}', "");
-    Expect(1, 3883, '\p{Is_Nv=1.50}', "");
-    Expect(0, 3883, '\p{^Is_Nv=1.50}', "");
-    Expect(0, 3883, '\P{Is_Nv=1.50}', "");
-    Expect(1, 3883, '\P{^Is_Nv=1.50}', "");
-    Expect(0, 3884, '\p{Is_Nv=1.50}', "");
-    Expect(1, 3884, '\p{^Is_Nv=1.50}', "");
-    Expect(1, 3884, '\P{Is_Nv=1.50}', "");
-    Expect(0, 3884, '\P{^Is_Nv=1.50}', "");
-    Error('\p{Numeric_Value= +00000003/0000000020/a/}');
-    Error('\P{Numeric_Value= +00000003/0000000020/a/}');
+    Expect(1, 3883, '\p{Is_Nv: 1.50}', "");
+    Expect(0, 3883, '\p{^Is_Nv: 1.50}', "");
+    Expect(0, 3883, '\P{Is_Nv: 1.50}', "");
+    Expect(1, 3883, '\P{^Is_Nv: 1.50}', "");
+    Expect(0, 3884, '\p{Is_Nv: 1.50}', "");
+    Expect(1, 3884, '\p{^Is_Nv: 1.50}', "");
+    Expect(1, 3884, '\P{Is_Nv: 1.50}', "");
+    Expect(0, 3884, '\P{^Is_Nv: 1.50}', "");
+    Error('\p{Numeric_Value=	 +00003/0000000020:=}');
+    Error('\P{Numeric_Value=	 +00003/0000000020:=}');
     Expect(1, 73677, '\p{Numeric_Value=:\A3/20\z:}', "");;
     Expect(0, 73678, '\p{Numeric_Value=:\A3/20\z:}', "");;
     Expect(1, 73677, '\p{Numeric_Value=0003/00000000020}', "");
@@ -77609,18 +78199,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Numeric_Value=0.150}', "");
     Expect(1, 73678, '\P{Numeric_Value=0.150}', "");
     Expect(0, 73678, '\P{^Numeric_Value=0.150}', "");
-    Error('\p{Nv=-003/0000020:=}');
-    Error('\P{Nv=-003/0000020:=}');
+    Error('\p{Nv: 003/000020/a/}');
+    Error('\P{Nv: 003/000020/a/}');
     Expect(1, 73677, '\p{Nv=:\A3/20\z:}', "");;
     Expect(0, 73678, '\p{Nv=:\A3/20\z:}', "");;
-    Expect(1, 73677, '\p{Nv=3/0000000020}', "");
-    Expect(0, 73677, '\p{^Nv=3/0000000020}', "");
-    Expect(0, 73677, '\P{Nv=3/0000000020}', "");
-    Expect(1, 73677, '\P{^Nv=3/0000000020}', "");
-    Expect(0, 73678, '\p{Nv=3/0000000020}', "");
-    Expect(1, 73678, '\p{^Nv=3/0000000020}', "");
-    Expect(1, 73678, '\P{Nv=3/0000000020}', "");
-    Expect(0, 73678, '\P{^Nv=3/0000000020}', "");
+    Expect(1, 73677, '\p{Nv=+3/000000020}', "");
+    Expect(0, 73677, '\p{^Nv=+3/000000020}', "");
+    Expect(0, 73677, '\P{Nv=+3/000000020}', "");
+    Expect(1, 73677, '\P{^Nv=+3/000000020}', "");
+    Expect(0, 73678, '\p{Nv=+3/000000020}', "");
+    Expect(1, 73678, '\p{^Nv=+3/000000020}', "");
+    Expect(1, 73678, '\P{Nv=+3/000000020}', "");
+    Expect(0, 73678, '\P{^Nv=+3/000000020}', "");
     Expect(1, 73677, '\p{Nv=180/1200}', "");
     Expect(0, 73677, '\p{^Nv=180/1200}', "");
     Expect(0, 73677, '\P{Nv=180/1200}', "");
@@ -77645,14 +78235,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Nv=1.50e-01}', "");
     Expect(1, 73678, '\P{Nv=1.50e-01}', "");
     Expect(0, 73678, '\P{^Nv=1.50e-01}', "");
-    Expect(1, 73677, '\p{Nv=0.15}', "");
-    Expect(0, 73677, '\p{^Nv=0.15}', "");
-    Expect(0, 73677, '\P{Nv=0.15}', "");
-    Expect(1, 73677, '\P{^Nv=0.15}', "");
-    Expect(0, 73678, '\p{Nv=0.15}', "");
-    Expect(1, 73678, '\p{^Nv=0.15}', "");
-    Expect(1, 73678, '\P{Nv=0.15}', "");
-    Expect(0, 73678, '\P{^Nv=0.15}', "");
+    Expect(1, 73677, '\p{Nv: 0.15}', "");
+    Expect(0, 73677, '\p{^Nv: 0.15}', "");
+    Expect(0, 73677, '\P{Nv: 0.15}', "");
+    Expect(1, 73677, '\P{^Nv: 0.15}', "");
+    Expect(0, 73678, '\p{Nv: 0.15}', "");
+    Expect(1, 73678, '\p{^Nv: 0.15}', "");
+    Expect(1, 73678, '\P{Nv: 0.15}', "");
+    Expect(0, 73678, '\P{^Nv: 0.15}', "");
     Expect(1, 73677, '\p{Nv=1.500e-01}', "");
     Expect(0, 73677, '\p{^Nv=1.500e-01}', "");
     Expect(0, 73677, '\P{Nv=1.500e-01}', "");
@@ -77661,48 +78251,48 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Nv=1.500e-01}', "");
     Expect(1, 73678, '\P{Nv=1.500e-01}', "");
     Expect(0, 73678, '\P{^Nv=1.500e-01}', "");
-    Expect(1, 73677, '\p{Nv:   0.150}', "");
-    Expect(0, 73677, '\p{^Nv:   0.150}', "");
-    Expect(0, 73677, '\P{Nv:   0.150}', "");
-    Expect(1, 73677, '\P{^Nv:   0.150}', "");
-    Expect(0, 73678, '\p{Nv:   0.150}', "");
-    Expect(1, 73678, '\p{^Nv:   0.150}', "");
-    Expect(1, 73678, '\P{Nv:   0.150}', "");
-    Expect(0, 73678, '\P{^Nv:   0.150}', "");
-    Error('\p{Is_Numeric_Value= -+0003/00000020:=}');
-    Error('\P{Is_Numeric_Value= -+0003/00000020:=}');
-    Expect(1, 73677, '\p{Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(0, 73677, '\p{^Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(0, 73677, '\P{Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(1, 73677, '\P{^Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(0, 73678, '\p{Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(1, 73678, '\p{^Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(1, 73678, '\P{Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(0, 73678, '\P{^Is_Numeric_Value: 0000000003/000020}', "");
-    Expect(1, 73677, '\p{Is_Numeric_Value: 180/1200}', "");
-    Expect(0, 73677, '\p{^Is_Numeric_Value: 180/1200}', "");
-    Expect(0, 73677, '\P{Is_Numeric_Value: 180/1200}', "");
-    Expect(1, 73677, '\P{^Is_Numeric_Value: 180/1200}', "");
-    Expect(0, 73678, '\p{Is_Numeric_Value: 180/1200}', "");
-    Expect(1, 73678, '\p{^Is_Numeric_Value: 180/1200}', "");
-    Expect(1, 73678, '\P{Is_Numeric_Value: 180/1200}', "");
-    Expect(0, 73678, '\P{^Is_Numeric_Value: 180/1200}', "");
-    Expect(1, 73677, '\p{Is_Numeric_Value=1.5e-01}', "");
-    Expect(0, 73677, '\p{^Is_Numeric_Value=1.5e-01}', "");
-    Expect(0, 73677, '\P{Is_Numeric_Value=1.5e-01}', "");
-    Expect(1, 73677, '\P{^Is_Numeric_Value=1.5e-01}', "");
-    Expect(0, 73678, '\p{Is_Numeric_Value=1.5e-01}', "");
-    Expect(1, 73678, '\p{^Is_Numeric_Value=1.5e-01}', "");
-    Expect(1, 73678, '\P{Is_Numeric_Value=1.5e-01}', "");
-    Expect(0, 73678, '\P{^Is_Numeric_Value=1.5e-01}', "");
-    Expect(1, 73677, '\p{Is_Numeric_Value=1.50e-01}', "");
-    Expect(0, 73677, '\p{^Is_Numeric_Value=1.50e-01}', "");
-    Expect(0, 73677, '\P{Is_Numeric_Value=1.50e-01}', "");
-    Expect(1, 73677, '\P{^Is_Numeric_Value=1.50e-01}', "");
-    Expect(0, 73678, '\p{Is_Numeric_Value=1.50e-01}', "");
-    Expect(1, 73678, '\p{^Is_Numeric_Value=1.50e-01}', "");
-    Expect(1, 73678, '\P{Is_Numeric_Value=1.50e-01}', "");
-    Expect(0, 73678, '\P{^Is_Numeric_Value=1.50e-01}', "");
+    Expect(1, 73677, '\p{Nv=0.150}', "");
+    Expect(0, 73677, '\p{^Nv=0.150}', "");
+    Expect(0, 73677, '\P{Nv=0.150}', "");
+    Expect(1, 73677, '\P{^Nv=0.150}', "");
+    Expect(0, 73678, '\p{Nv=0.150}', "");
+    Expect(1, 73678, '\p{^Nv=0.150}', "");
+    Expect(1, 73678, '\P{Nv=0.150}', "");
+    Expect(0, 73678, '\P{^Nv=0.150}', "");
+    Error('\p{Is_Numeric_Value= :=03/000020}');
+    Error('\P{Is_Numeric_Value= :=03/000020}');
+    Expect(1, 73677, '\p{Is_Numeric_Value:+03/000020}', "");
+    Expect(0, 73677, '\p{^Is_Numeric_Value:+03/000020}', "");
+    Expect(0, 73677, '\P{Is_Numeric_Value:+03/000020}', "");
+    Expect(1, 73677, '\P{^Is_Numeric_Value:+03/000020}', "");
+    Expect(0, 73678, '\p{Is_Numeric_Value:+03/000020}', "");
+    Expect(1, 73678, '\p{^Is_Numeric_Value:+03/000020}', "");
+    Expect(1, 73678, '\P{Is_Numeric_Value:+03/000020}', "");
+    Expect(0, 73678, '\P{^Is_Numeric_Value:+03/000020}', "");
+    Expect(1, 73677, '\p{Is_Numeric_Value:	180/1200}', "");
+    Expect(0, 73677, '\p{^Is_Numeric_Value:	180/1200}', "");
+    Expect(0, 73677, '\P{Is_Numeric_Value:	180/1200}', "");
+    Expect(1, 73677, '\P{^Is_Numeric_Value:	180/1200}', "");
+    Expect(0, 73678, '\p{Is_Numeric_Value:	180/1200}', "");
+    Expect(1, 73678, '\p{^Is_Numeric_Value:	180/1200}', "");
+    Expect(1, 73678, '\P{Is_Numeric_Value:	180/1200}', "");
+    Expect(0, 73678, '\P{^Is_Numeric_Value:	180/1200}', "");
+    Expect(1, 73677, '\p{Is_Numeric_Value:   1.5e-01}', "");
+    Expect(0, 73677, '\p{^Is_Numeric_Value:   1.5e-01}', "");
+    Expect(0, 73677, '\P{Is_Numeric_Value:   1.5e-01}', "");
+    Expect(1, 73677, '\P{^Is_Numeric_Value:   1.5e-01}', "");
+    Expect(0, 73678, '\p{Is_Numeric_Value:   1.5e-01}', "");
+    Expect(1, 73678, '\p{^Is_Numeric_Value:   1.5e-01}', "");
+    Expect(1, 73678, '\P{Is_Numeric_Value:   1.5e-01}', "");
+    Expect(0, 73678, '\P{^Is_Numeric_Value:   1.5e-01}', "");
+    Expect(1, 73677, '\p{Is_Numeric_Value:1.50e-01}', "");
+    Expect(0, 73677, '\p{^Is_Numeric_Value:1.50e-01}', "");
+    Expect(0, 73677, '\P{Is_Numeric_Value:1.50e-01}', "");
+    Expect(1, 73677, '\P{^Is_Numeric_Value:1.50e-01}', "");
+    Expect(0, 73678, '\p{Is_Numeric_Value:1.50e-01}', "");
+    Expect(1, 73678, '\p{^Is_Numeric_Value:1.50e-01}', "");
+    Expect(1, 73678, '\P{Is_Numeric_Value:1.50e-01}', "");
+    Expect(0, 73678, '\P{^Is_Numeric_Value:1.50e-01}', "");
     Expect(1, 73677, '\p{Is_Numeric_Value=0.15}', "");
     Expect(0, 73677, '\p{^Is_Numeric_Value=0.15}', "");
     Expect(0, 73677, '\P{Is_Numeric_Value=0.15}', "");
@@ -77711,14 +78301,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Is_Numeric_Value=0.15}', "");
     Expect(1, 73678, '\P{Is_Numeric_Value=0.15}', "");
     Expect(0, 73678, '\P{^Is_Numeric_Value=0.15}', "");
-    Expect(1, 73677, '\p{Is_Numeric_Value:1.500e-01}', "");
-    Expect(0, 73677, '\p{^Is_Numeric_Value:1.500e-01}', "");
-    Expect(0, 73677, '\P{Is_Numeric_Value:1.500e-01}', "");
-    Expect(1, 73677, '\P{^Is_Numeric_Value:1.500e-01}', "");
-    Expect(0, 73678, '\p{Is_Numeric_Value:1.500e-01}', "");
-    Expect(1, 73678, '\p{^Is_Numeric_Value:1.500e-01}', "");
-    Expect(1, 73678, '\P{Is_Numeric_Value:1.500e-01}', "");
-    Expect(0, 73678, '\P{^Is_Numeric_Value:1.500e-01}', "");
+    Expect(1, 73677, '\p{Is_Numeric_Value=1.500e-01}', "");
+    Expect(0, 73677, '\p{^Is_Numeric_Value=1.500e-01}', "");
+    Expect(0, 73677, '\P{Is_Numeric_Value=1.500e-01}', "");
+    Expect(1, 73677, '\P{^Is_Numeric_Value=1.500e-01}', "");
+    Expect(0, 73678, '\p{Is_Numeric_Value=1.500e-01}', "");
+    Expect(1, 73678, '\p{^Is_Numeric_Value=1.500e-01}', "");
+    Expect(1, 73678, '\P{Is_Numeric_Value=1.500e-01}', "");
+    Expect(0, 73678, '\P{^Is_Numeric_Value=1.500e-01}', "");
     Expect(1, 73677, '\p{Is_Numeric_Value=0.150}', "");
     Expect(0, 73677, '\p{^Is_Numeric_Value=0.150}', "");
     Expect(0, 73677, '\P{Is_Numeric_Value=0.150}', "");
@@ -77727,16 +78317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Is_Numeric_Value=0.150}', "");
     Expect(1, 73678, '\P{Is_Numeric_Value=0.150}', "");
     Expect(0, 73678, '\P{^Is_Numeric_Value=0.150}', "");
-    Error('\p{Is_Nv=:=00003/020}');
-    Error('\P{Is_Nv=:=00003/020}');
-    Expect(1, 73677, '\p{Is_Nv=00000003/20}', "");
-    Expect(0, 73677, '\p{^Is_Nv=00000003/20}', "");
-    Expect(0, 73677, '\P{Is_Nv=00000003/20}', "");
-    Expect(1, 73677, '\P{^Is_Nv=00000003/20}', "");
-    Expect(0, 73678, '\p{Is_Nv=00000003/20}', "");
-    Expect(1, 73678, '\p{^Is_Nv=00000003/20}', "");
-    Expect(1, 73678, '\P{Is_Nv=00000003/20}', "");
-    Expect(0, 73678, '\P{^Is_Nv=00000003/20}', "");
+    Error('\p{Is_Nv=	 0003/00000000020:=}');
+    Error('\P{Is_Nv=	 0003/00000000020:=}');
+    Expect(1, 73677, '\p{Is_Nv=00003/000020}', "");
+    Expect(0, 73677, '\p{^Is_Nv=00003/000020}', "");
+    Expect(0, 73677, '\P{Is_Nv=00003/000020}', "");
+    Expect(1, 73677, '\P{^Is_Nv=00003/000020}', "");
+    Expect(0, 73678, '\p{Is_Nv=00003/000020}', "");
+    Expect(1, 73678, '\p{^Is_Nv=00003/000020}', "");
+    Expect(1, 73678, '\P{Is_Nv=00003/000020}', "");
+    Expect(0, 73678, '\P{^Is_Nv=00003/000020}', "");
     Expect(1, 73677, '\p{Is_Nv=180/1200}', "");
     Expect(0, 73677, '\p{^Is_Nv=180/1200}', "");
     Expect(0, 73677, '\P{Is_Nv=180/1200}', "");
@@ -77769,14 +78359,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Is_Nv=0.15}', "");
     Expect(1, 73678, '\P{Is_Nv=0.15}', "");
     Expect(0, 73678, '\P{^Is_Nv=0.15}', "");
-    Expect(1, 73677, '\p{Is_Nv:1.500e-01}', "");
-    Expect(0, 73677, '\p{^Is_Nv:1.500e-01}', "");
-    Expect(0, 73677, '\P{Is_Nv:1.500e-01}', "");
-    Expect(1, 73677, '\P{^Is_Nv:1.500e-01}', "");
-    Expect(0, 73678, '\p{Is_Nv:1.500e-01}', "");
-    Expect(1, 73678, '\p{^Is_Nv:1.500e-01}', "");
-    Expect(1, 73678, '\P{Is_Nv:1.500e-01}', "");
-    Expect(0, 73678, '\P{^Is_Nv:1.500e-01}', "");
+    Expect(1, 73677, '\p{Is_Nv=1.500e-01}', "");
+    Expect(0, 73677, '\p{^Is_Nv=1.500e-01}', "");
+    Expect(0, 73677, '\P{Is_Nv=1.500e-01}', "");
+    Expect(1, 73677, '\P{^Is_Nv=1.500e-01}', "");
+    Expect(0, 73678, '\p{Is_Nv=1.500e-01}', "");
+    Expect(1, 73678, '\p{^Is_Nv=1.500e-01}', "");
+    Expect(1, 73678, '\P{Is_Nv=1.500e-01}', "");
+    Expect(0, 73678, '\P{^Is_Nv=1.500e-01}', "");
     Expect(1, 73677, '\p{Is_Nv=0.150}', "");
     Expect(0, 73677, '\p{^Is_Nv=0.150}', "");
     Expect(0, 73677, '\P{Is_Nv=0.150}', "");
@@ -77785,18 +78375,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73678, '\p{^Is_Nv=0.150}', "");
     Expect(1, 73678, '\P{Is_Nv=0.150}', "");
     Expect(0, 73678, '\P{^Is_Nv=0.150}', "");
-    Error('\p{Numeric_Value:	:= -003/000004}');
-    Error('\P{Numeric_Value:	:= -003/000004}');
+    Error('\p{Numeric_Value=_ +0000000003/000000004:=}');
+    Error('\P{Numeric_Value=_ +0000000003/000000004:=}');
     Expect(1, 126127, '\p{Numeric_Value=:\A3/4\z:}', "");;
     Expect(0, 126128, '\p{Numeric_Value=:\A3/4\z:}', "");;
-    Expect(1, 126127, '\p{Numeric_Value=000000003/004}', "");
-    Expect(0, 126127, '\p{^Numeric_Value=000000003/004}', "");
-    Expect(0, 126127, '\P{Numeric_Value=000000003/004}', "");
-    Expect(1, 126127, '\P{^Numeric_Value=000000003/004}', "");
-    Expect(0, 126128, '\p{Numeric_Value=000000003/004}', "");
-    Expect(1, 126128, '\p{^Numeric_Value=000000003/004}', "");
-    Expect(1, 126128, '\P{Numeric_Value=000000003/004}', "");
-    Expect(0, 126128, '\P{^Numeric_Value=000000003/004}', "");
+    Expect(1, 126127, '\p{Numeric_Value=003/0004}', "");
+    Expect(0, 126127, '\p{^Numeric_Value=003/0004}', "");
+    Expect(0, 126127, '\P{Numeric_Value=003/0004}', "");
+    Expect(1, 126127, '\P{^Numeric_Value=003/0004}', "");
+    Expect(0, 126128, '\p{Numeric_Value=003/0004}', "");
+    Expect(1, 126128, '\p{^Numeric_Value=003/0004}', "");
+    Expect(1, 126128, '\P{Numeric_Value=003/0004}', "");
+    Expect(0, 126128, '\P{^Numeric_Value=003/0004}', "");
     Expect(1, 126127, '\p{Numeric_Value=180/240}', "");
     Expect(0, 126127, '\p{^Numeric_Value=180/240}', "");
     Expect(0, 126127, '\P{Numeric_Value=180/240}', "");
@@ -77829,34 +78419,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126128, '\p{^Numeric_Value=0.75}', "");
     Expect(1, 126128, '\P{Numeric_Value=0.75}', "");
     Expect(0, 126128, '\P{^Numeric_Value=0.75}', "");
-    Expect(1, 126127, '\p{Numeric_Value:   7.500e-01}', "");
-    Expect(0, 126127, '\p{^Numeric_Value:   7.500e-01}', "");
-    Expect(0, 126127, '\P{Numeric_Value:   7.500e-01}', "");
-    Expect(1, 126127, '\P{^Numeric_Value:   7.500e-01}', "");
-    Expect(0, 126128, '\p{Numeric_Value:   7.500e-01}', "");
-    Expect(1, 126128, '\p{^Numeric_Value:   7.500e-01}', "");
-    Expect(1, 126128, '\P{Numeric_Value:   7.500e-01}', "");
-    Expect(0, 126128, '\P{^Numeric_Value:   7.500e-01}', "");
-    Expect(1, 126127, '\p{Numeric_Value:   0.750}', "");
-    Expect(0, 126127, '\p{^Numeric_Value:   0.750}', "");
-    Expect(0, 126127, '\P{Numeric_Value:   0.750}', "");
-    Expect(1, 126127, '\P{^Numeric_Value:   0.750}', "");
-    Expect(0, 126128, '\p{Numeric_Value:   0.750}', "");
-    Expect(1, 126128, '\p{^Numeric_Value:   0.750}', "");
-    Expect(1, 126128, '\P{Numeric_Value:   0.750}', "");
-    Expect(0, 126128, '\P{^Numeric_Value:   0.750}', "");
-    Error('\p{Nv=	-003/00004:=}');
-    Error('\P{Nv=	-003/00004:=}');
+    Expect(1, 126127, '\p{Numeric_Value=7.500e-01}', "");
+    Expect(0, 126127, '\p{^Numeric_Value=7.500e-01}', "");
+    Expect(0, 126127, '\P{Numeric_Value=7.500e-01}', "");
+    Expect(1, 126127, '\P{^Numeric_Value=7.500e-01}', "");
+    Expect(0, 126128, '\p{Numeric_Value=7.500e-01}', "");
+    Expect(1, 126128, '\p{^Numeric_Value=7.500e-01}', "");
+    Expect(1, 126128, '\P{Numeric_Value=7.500e-01}', "");
+    Expect(0, 126128, '\P{^Numeric_Value=7.500e-01}', "");
+    Expect(1, 126127, '\p{Numeric_Value=0.750}', "");
+    Expect(0, 126127, '\p{^Numeric_Value=0.750}', "");
+    Expect(0, 126127, '\P{Numeric_Value=0.750}', "");
+    Expect(1, 126127, '\P{^Numeric_Value=0.750}', "");
+    Expect(0, 126128, '\p{Numeric_Value=0.750}', "");
+    Expect(1, 126128, '\p{^Numeric_Value=0.750}', "");
+    Expect(1, 126128, '\P{Numeric_Value=0.750}', "");
+    Expect(0, 126128, '\P{^Numeric_Value=0.750}', "");
+    Error('\p{Nv:   /a/	03/000004}');
+    Error('\P{Nv:   /a/	03/000004}');
     Expect(1, 126127, '\p{Nv=:\A3/4\z:}', "");;
     Expect(0, 126128, '\p{Nv=:\A3/4\z:}', "");;
-    Expect(1, 126127, '\p{Nv=+03/000000004}', "");
-    Expect(0, 126127, '\p{^Nv=+03/000000004}', "");
-    Expect(0, 126127, '\P{Nv=+03/000000004}', "");
-    Expect(1, 126127, '\P{^Nv=+03/000000004}', "");
-    Expect(0, 126128, '\p{Nv=+03/000000004}', "");
-    Expect(1, 126128, '\p{^Nv=+03/000000004}', "");
-    Expect(1, 126128, '\P{Nv=+03/000000004}', "");
-    Expect(0, 126128, '\P{^Nv=+03/000000004}', "");
+    Expect(1, 126127, '\p{Nv=03/0000004}', "");
+    Expect(0, 126127, '\p{^Nv=03/0000004}', "");
+    Expect(0, 126127, '\P{Nv=03/0000004}', "");
+    Expect(1, 126127, '\P{^Nv=03/0000004}', "");
+    Expect(0, 126128, '\p{Nv=03/0000004}', "");
+    Expect(1, 126128, '\p{^Nv=03/0000004}', "");
+    Expect(1, 126128, '\P{Nv=03/0000004}', "");
+    Expect(0, 126128, '\P{^Nv=03/0000004}', "");
     Expect(1, 126127, '\p{Nv=180/240}', "");
     Expect(0, 126127, '\p{^Nv=180/240}', "");
     Expect(0, 126127, '\P{Nv=180/240}', "");
@@ -77865,14 +78455,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126128, '\p{^Nv=180/240}', "");
     Expect(1, 126128, '\P{Nv=180/240}', "");
     Expect(0, 126128, '\P{^Nv=180/240}', "");
-    Expect(1, 126127, '\p{Nv=7.5e-01}', "");
-    Expect(0, 126127, '\p{^Nv=7.5e-01}', "");
-    Expect(0, 126127, '\P{Nv=7.5e-01}', "");
-    Expect(1, 126127, '\P{^Nv=7.5e-01}', "");
-    Expect(0, 126128, '\p{Nv=7.5e-01}', "");
-    Expect(1, 126128, '\p{^Nv=7.5e-01}', "");
-    Expect(1, 126128, '\P{Nv=7.5e-01}', "");
-    Expect(0, 126128, '\P{^Nv=7.5e-01}', "");
+    Expect(1, 126127, '\p{Nv:	7.5e-01}', "");
+    Expect(0, 126127, '\p{^Nv:	7.5e-01}', "");
+    Expect(0, 126127, '\P{Nv:	7.5e-01}', "");
+    Expect(1, 126127, '\P{^Nv:	7.5e-01}', "");
+    Expect(0, 126128, '\p{Nv:	7.5e-01}', "");
+    Expect(1, 126128, '\p{^Nv:	7.5e-01}', "");
+    Expect(1, 126128, '\P{Nv:	7.5e-01}', "");
+    Expect(0, 126128, '\P{^Nv:	7.5e-01}', "");
     Expect(1, 126127, '\p{Nv=7.50e-01}', "");
     Expect(0, 126127, '\p{^Nv=7.50e-01}', "");
     Expect(0, 126127, '\P{Nv=7.50e-01}', "");
@@ -77897,24 +78487,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126128, '\p{^Nv=7.500e-01}', "");
     Expect(1, 126128, '\P{Nv=7.500e-01}', "");
     Expect(0, 126128, '\P{^Nv=7.500e-01}', "");
-    Expect(1, 126127, '\p{Nv:0.750}', "");
-    Expect(0, 126127, '\p{^Nv:0.750}', "");
-    Expect(0, 126127, '\P{Nv:0.750}', "");
-    Expect(1, 126127, '\P{^Nv:0.750}', "");
-    Expect(0, 126128, '\p{Nv:0.750}', "");
-    Expect(1, 126128, '\p{^Nv:0.750}', "");
-    Expect(1, 126128, '\P{Nv:0.750}', "");
-    Expect(0, 126128, '\P{^Nv:0.750}', "");
-    Error('\p{Is_Numeric_Value= -+000000003/000004:=}');
-    Error('\P{Is_Numeric_Value= -+000000003/000004:=}');
-    Expect(1, 126127, '\p{Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(0, 126127, '\p{^Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(0, 126127, '\P{Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(1, 126127, '\P{^Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(0, 126128, '\p{Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(1, 126128, '\p{^Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(1, 126128, '\P{Is_Numeric_Value=+00000003/000000004}', "");
-    Expect(0, 126128, '\P{^Is_Numeric_Value=+00000003/000000004}', "");
+    Expect(1, 126127, '\p{Nv=0.750}', "");
+    Expect(0, 126127, '\p{^Nv=0.750}', "");
+    Expect(0, 126127, '\P{Nv=0.750}', "");
+    Expect(1, 126127, '\P{^Nv=0.750}', "");
+    Expect(0, 126128, '\p{Nv=0.750}', "");
+    Expect(1, 126128, '\p{^Nv=0.750}', "");
+    Expect(1, 126128, '\P{Nv=0.750}', "");
+    Expect(0, 126128, '\P{^Nv=0.750}', "");
+    Error('\p{Is_Numeric_Value=- +03/000004:=}');
+    Error('\P{Is_Numeric_Value=- +03/000004:=}');
+    Expect(1, 126127, '\p{Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(0, 126127, '\p{^Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(0, 126127, '\P{Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(1, 126127, '\P{^Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(0, 126128, '\p{Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(1, 126128, '\p{^Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(1, 126128, '\P{Is_Numeric_Value=+00000003/00000004}', "");
+    Expect(0, 126128, '\P{^Is_Numeric_Value=+00000003/00000004}', "");
     Expect(1, 126127, '\p{Is_Numeric_Value=180/240}', "");
     Expect(0, 126127, '\p{^Is_Numeric_Value=180/240}', "");
     Expect(0, 126127, '\P{Is_Numeric_Value=180/240}', "");
@@ -77963,16 +78553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126128, '\p{^Is_Numeric_Value=0.750}', "");
     Expect(1, 126128, '\P{Is_Numeric_Value=0.750}', "");
     Expect(0, 126128, '\P{^Is_Numeric_Value=0.750}', "");
-    Error('\p{Is_Nv=		000000003/00000004:=}');
-    Error('\P{Is_Nv=		000000003/00000004:=}');
-    Expect(1, 126127, '\p{Is_Nv=0000000003/000004}', "");
-    Expect(0, 126127, '\p{^Is_Nv=0000000003/000004}', "");
-    Expect(0, 126127, '\P{Is_Nv=0000000003/000004}', "");
-    Expect(1, 126127, '\P{^Is_Nv=0000000003/000004}', "");
-    Expect(0, 126128, '\p{Is_Nv=0000000003/000004}', "");
-    Expect(1, 126128, '\p{^Is_Nv=0000000003/000004}', "");
-    Expect(1, 126128, '\P{Is_Nv=0000000003/000004}', "");
-    Expect(0, 126128, '\P{^Is_Nv=0000000003/000004}', "");
+    Error('\p{Is_Nv=_ +0000000003/000000004:=}');
+    Error('\P{Is_Nv=_ +0000000003/000000004:=}');
+    Expect(1, 126127, '\p{Is_Nv=00000003/00000004}', "");
+    Expect(0, 126127, '\p{^Is_Nv=00000003/00000004}', "");
+    Expect(0, 126127, '\P{Is_Nv=00000003/00000004}', "");
+    Expect(1, 126127, '\P{^Is_Nv=00000003/00000004}', "");
+    Expect(0, 126128, '\p{Is_Nv=00000003/00000004}', "");
+    Expect(1, 126128, '\p{^Is_Nv=00000003/00000004}', "");
+    Expect(1, 126128, '\P{Is_Nv=00000003/00000004}', "");
+    Expect(0, 126128, '\P{^Is_Nv=00000003/00000004}', "");
     Expect(1, 126127, '\p{Is_Nv=180/240}', "");
     Expect(0, 126127, '\p{^Is_Nv=180/240}', "");
     Expect(0, 126127, '\P{Is_Nv=180/240}', "");
@@ -77981,14 +78571,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126128, '\p{^Is_Nv=180/240}', "");
     Expect(1, 126128, '\P{Is_Nv=180/240}', "");
     Expect(0, 126128, '\P{^Is_Nv=180/240}', "");
-    Expect(1, 126127, '\p{Is_Nv:	7.5e-01}', "");
-    Expect(0, 126127, '\p{^Is_Nv:	7.5e-01}', "");
-    Expect(0, 126127, '\P{Is_Nv:	7.5e-01}', "");
-    Expect(1, 126127, '\P{^Is_Nv:	7.5e-01}', "");
-    Expect(0, 126128, '\p{Is_Nv:	7.5e-01}', "");
-    Expect(1, 126128, '\p{^Is_Nv:	7.5e-01}', "");
-    Expect(1, 126128, '\P{Is_Nv:	7.5e-01}', "");
-    Expect(0, 126128, '\P{^Is_Nv:	7.5e-01}', "");
+    Expect(1, 126127, '\p{Is_Nv=7.5e-01}', "");
+    Expect(0, 126127, '\p{^Is_Nv=7.5e-01}', "");
+    Expect(0, 126127, '\P{Is_Nv=7.5e-01}', "");
+    Expect(1, 126127, '\P{^Is_Nv=7.5e-01}', "");
+    Expect(0, 126128, '\p{Is_Nv=7.5e-01}', "");
+    Expect(1, 126128, '\p{^Is_Nv=7.5e-01}', "");
+    Expect(1, 126128, '\P{Is_Nv=7.5e-01}', "");
+    Expect(0, 126128, '\P{^Is_Nv=7.5e-01}', "");
     Expect(1, 126127, '\p{Is_Nv=7.50e-01}', "");
     Expect(0, 126127, '\p{^Is_Nv=7.50e-01}', "");
     Expect(0, 126127, '\P{Is_Nv=7.50e-01}', "");
@@ -78013,26 +78603,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126128, '\p{^Is_Nv=7.500e-01}', "");
     Expect(1, 126128, '\P{Is_Nv=7.500e-01}', "");
     Expect(0, 126128, '\P{^Is_Nv=7.500e-01}', "");
-    Expect(1, 126127, '\p{Is_Nv=0.750}', "");
-    Expect(0, 126127, '\p{^Is_Nv=0.750}', "");
-    Expect(0, 126127, '\P{Is_Nv=0.750}', "");
-    Expect(1, 126127, '\P{^Is_Nv=0.750}', "");
-    Expect(0, 126128, '\p{Is_Nv=0.750}', "");
-    Expect(1, 126128, '\p{^Is_Nv=0.750}', "");
-    Expect(1, 126128, '\P{Is_Nv=0.750}', "");
-    Expect(0, 126128, '\P{^Is_Nv=0.750}', "");
-    Error('\p{Numeric_Value= 003/0000005:=}');
-    Error('\P{Numeric_Value= 003/0000005:=}');
+    Expect(1, 126127, '\p{Is_Nv:	0.750}', "");
+    Expect(0, 126127, '\p{^Is_Nv:	0.750}', "");
+    Expect(0, 126127, '\P{Is_Nv:	0.750}', "");
+    Expect(1, 126127, '\P{^Is_Nv:	0.750}', "");
+    Expect(0, 126128, '\p{Is_Nv:	0.750}', "");
+    Expect(1, 126128, '\p{^Is_Nv:	0.750}', "");
+    Expect(1, 126128, '\P{Is_Nv:	0.750}', "");
+    Expect(0, 126128, '\P{^Is_Nv:	0.750}', "");
+    Error('\p{Numeric_Value=/a/_3/0005}');
+    Error('\P{Numeric_Value=/a/_3/0005}');
     Expect(1, 8535, '\p{Numeric_Value=:\A3/5\z:}', "");;
     Expect(0, 8536, '\p{Numeric_Value=:\A3/5\z:}', "");;
-    Expect(1, 8535, '\p{Numeric_Value=0000003/00005}', "");
-    Expect(0, 8535, '\p{^Numeric_Value=0000003/00005}', "");
-    Expect(0, 8535, '\P{Numeric_Value=0000003/00005}', "");
-    Expect(1, 8535, '\P{^Numeric_Value=0000003/00005}', "");
-    Expect(0, 8536, '\p{Numeric_Value=0000003/00005}', "");
-    Expect(1, 8536, '\p{^Numeric_Value=0000003/00005}', "");
-    Expect(1, 8536, '\P{Numeric_Value=0000003/00005}', "");
-    Expect(0, 8536, '\P{^Numeric_Value=0000003/00005}', "");
+    Expect(1, 8535, '\p{Numeric_Value=003/00005}', "");
+    Expect(0, 8535, '\p{^Numeric_Value=003/00005}', "");
+    Expect(0, 8535, '\P{Numeric_Value=003/00005}', "");
+    Expect(1, 8535, '\P{^Numeric_Value=003/00005}', "");
+    Expect(0, 8536, '\p{Numeric_Value=003/00005}', "");
+    Expect(1, 8536, '\p{^Numeric_Value=003/00005}', "");
+    Expect(1, 8536, '\P{Numeric_Value=003/00005}', "");
+    Expect(0, 8536, '\P{^Numeric_Value=003/00005}', "");
     Expect(1, 8535, '\p{Numeric_Value=180/300}', "");
     Expect(0, 8535, '\p{^Numeric_Value=180/300}', "");
     Expect(0, 8535, '\P{Numeric_Value=180/300}', "");
@@ -78049,14 +78639,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8536, '\p{^Numeric_Value=6.0e-01}', "");
     Expect(1, 8536, '\P{Numeric_Value=6.0e-01}', "");
     Expect(0, 8536, '\P{^Numeric_Value=6.0e-01}', "");
-    Expect(1, 8535, '\p{Numeric_Value=0.6}', "");
-    Expect(0, 8535, '\p{^Numeric_Value=0.6}', "");
-    Expect(0, 8535, '\P{Numeric_Value=0.6}', "");
-    Expect(1, 8535, '\P{^Numeric_Value=0.6}', "");
-    Expect(0, 8536, '\p{Numeric_Value=0.6}', "");
-    Expect(1, 8536, '\p{^Numeric_Value=0.6}', "");
-    Expect(1, 8536, '\P{Numeric_Value=0.6}', "");
-    Expect(0, 8536, '\P{^Numeric_Value=0.6}', "");
+    Expect(1, 8535, '\p{Numeric_Value:0.6}', "");
+    Expect(0, 8535, '\p{^Numeric_Value:0.6}', "");
+    Expect(0, 8535, '\P{Numeric_Value:0.6}', "");
+    Expect(1, 8535, '\P{^Numeric_Value:0.6}', "");
+    Expect(0, 8536, '\p{Numeric_Value:0.6}', "");
+    Expect(1, 8536, '\p{^Numeric_Value:0.6}', "");
+    Expect(1, 8536, '\P{Numeric_Value:0.6}', "");
+    Expect(0, 8536, '\P{^Numeric_Value:0.6}', "");
     Expect(1, 8535, '\p{Numeric_Value=6.00e-01}', "");
     Expect(0, 8535, '\p{^Numeric_Value=6.00e-01}', "");
     Expect(0, 8535, '\P{Numeric_Value=6.00e-01}', "");
@@ -78073,34 +78663,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8536, '\p{^Numeric_Value=0.60}', "");
     Expect(1, 8536, '\P{Numeric_Value=0.60}', "");
     Expect(0, 8536, '\P{^Numeric_Value=0.60}', "");
-    Error('\p{Nv=/a/ 00003/0005}');
-    Error('\P{Nv=/a/ 00003/0005}');
+    Error('\p{Nv=  0000000003/000000005:=}');
+    Error('\P{Nv=  0000000003/000000005:=}');
     Expect(1, 8535, '\p{Nv=:\A3/5\z:}', "");;
     Expect(0, 8536, '\p{Nv=:\A3/5\z:}', "");;
-    Expect(1, 8535, '\p{Nv:000000003/0000005}', "");
-    Expect(0, 8535, '\p{^Nv:000000003/0000005}', "");
-    Expect(0, 8535, '\P{Nv:000000003/0000005}', "");
-    Expect(1, 8535, '\P{^Nv:000000003/0000005}', "");
-    Expect(0, 8536, '\p{Nv:000000003/0000005}', "");
-    Expect(1, 8536, '\p{^Nv:000000003/0000005}', "");
-    Expect(1, 8536, '\P{Nv:000000003/0000005}', "");
-    Expect(0, 8536, '\P{^Nv:000000003/0000005}', "");
-    Expect(1, 8535, '\p{Nv=180/300}', "");
-    Expect(0, 8535, '\p{^Nv=180/300}', "");
-    Expect(0, 8535, '\P{Nv=180/300}', "");
-    Expect(1, 8535, '\P{^Nv=180/300}', "");
-    Expect(0, 8536, '\p{Nv=180/300}', "");
-    Expect(1, 8536, '\p{^Nv=180/300}', "");
-    Expect(1, 8536, '\P{Nv=180/300}', "");
-    Expect(0, 8536, '\P{^Nv=180/300}', "");
-    Expect(1, 8535, '\p{Nv=6.0e-01}', "");
-    Expect(0, 8535, '\p{^Nv=6.0e-01}', "");
-    Expect(0, 8535, '\P{Nv=6.0e-01}', "");
-    Expect(1, 8535, '\P{^Nv=6.0e-01}', "");
-    Expect(0, 8536, '\p{Nv=6.0e-01}', "");
-    Expect(1, 8536, '\p{^Nv=6.0e-01}', "");
-    Expect(1, 8536, '\P{Nv=6.0e-01}', "");
-    Expect(0, 8536, '\P{^Nv=6.0e-01}', "");
+    Expect(1, 8535, '\p{Nv=+00003/0000000005}', "");
+    Expect(0, 8535, '\p{^Nv=+00003/0000000005}', "");
+    Expect(0, 8535, '\P{Nv=+00003/0000000005}', "");
+    Expect(1, 8535, '\P{^Nv=+00003/0000000005}', "");
+    Expect(0, 8536, '\p{Nv=+00003/0000000005}', "");
+    Expect(1, 8536, '\p{^Nv=+00003/0000000005}', "");
+    Expect(1, 8536, '\P{Nv=+00003/0000000005}', "");
+    Expect(0, 8536, '\P{^Nv=+00003/0000000005}', "");
+    Expect(1, 8535, '\p{Nv:	180/300}', "");
+    Expect(0, 8535, '\p{^Nv:	180/300}', "");
+    Expect(0, 8535, '\P{Nv:	180/300}', "");
+    Expect(1, 8535, '\P{^Nv:	180/300}', "");
+    Expect(0, 8536, '\p{Nv:	180/300}', "");
+    Expect(1, 8536, '\p{^Nv:	180/300}', "");
+    Expect(1, 8536, '\P{Nv:	180/300}', "");
+    Expect(0, 8536, '\P{^Nv:	180/300}', "");
+    Expect(1, 8535, '\p{Nv:6.0e-01}', "");
+    Expect(0, 8535, '\p{^Nv:6.0e-01}', "");
+    Expect(0, 8535, '\P{Nv:6.0e-01}', "");
+    Expect(1, 8535, '\P{^Nv:6.0e-01}', "");
+    Expect(0, 8536, '\p{Nv:6.0e-01}', "");
+    Expect(1, 8536, '\p{^Nv:6.0e-01}', "");
+    Expect(1, 8536, '\P{Nv:6.0e-01}', "");
+    Expect(0, 8536, '\P{^Nv:6.0e-01}', "");
     Expect(1, 8535, '\p{Nv=0.6}', "");
     Expect(0, 8535, '\p{^Nv=0.6}', "");
     Expect(0, 8535, '\P{Nv=0.6}', "");
@@ -78125,16 +78715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8536, '\p{^Nv=0.60}', "");
     Expect(1, 8536, '\P{Nv=0.60}', "");
     Expect(0, 8536, '\P{^Nv=0.60}', "");
-    Error('\p{Is_Numeric_Value=:=_0000000003/00000005}');
-    Error('\P{Is_Numeric_Value=:=_0000000003/00000005}');
-    Expect(1, 8535, '\p{Is_Numeric_Value=+000003/000005}', "");
-    Expect(0, 8535, '\p{^Is_Numeric_Value=+000003/000005}', "");
-    Expect(0, 8535, '\P{Is_Numeric_Value=+000003/000005}', "");
-    Expect(1, 8535, '\P{^Is_Numeric_Value=+000003/000005}', "");
-    Expect(0, 8536, '\p{Is_Numeric_Value=+000003/000005}', "");
-    Expect(1, 8536, '\p{^Is_Numeric_Value=+000003/000005}', "");
-    Expect(1, 8536, '\P{Is_Numeric_Value=+000003/000005}', "");
-    Expect(0, 8536, '\P{^Is_Numeric_Value=+000003/000005}', "");
+    Error('\p{Is_Numeric_Value=/a/--+0000003/00005}');
+    Error('\P{Is_Numeric_Value=/a/--+0000003/00005}');
+    Expect(1, 8535, '\p{Is_Numeric_Value=+03/5}', "");
+    Expect(0, 8535, '\p{^Is_Numeric_Value=+03/5}', "");
+    Expect(0, 8535, '\P{Is_Numeric_Value=+03/5}', "");
+    Expect(1, 8535, '\P{^Is_Numeric_Value=+03/5}', "");
+    Expect(0, 8536, '\p{Is_Numeric_Value=+03/5}', "");
+    Expect(1, 8536, '\p{^Is_Numeric_Value=+03/5}', "");
+    Expect(1, 8536, '\P{Is_Numeric_Value=+03/5}', "");
+    Expect(0, 8536, '\P{^Is_Numeric_Value=+03/5}', "");
     Expect(1, 8535, '\p{Is_Numeric_Value=180/300}', "");
     Expect(0, 8535, '\p{^Is_Numeric_Value=180/300}', "");
     Expect(0, 8535, '\P{Is_Numeric_Value=180/300}', "");
@@ -78175,16 +78765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8536, '\p{^Is_Numeric_Value=0.60}', "");
     Expect(1, 8536, '\P{Is_Numeric_Value=0.60}', "");
     Expect(0, 8536, '\P{^Is_Numeric_Value=0.60}', "");
-    Error('\p{Is_Nv=-:=00003/05}');
-    Error('\P{Is_Nv=-:=00003/05}');
-    Expect(1, 8535, '\p{Is_Nv=03/00005}', "");
-    Expect(0, 8535, '\p{^Is_Nv=03/00005}', "");
-    Expect(0, 8535, '\P{Is_Nv=03/00005}', "");
-    Expect(1, 8535, '\P{^Is_Nv=03/00005}', "");
-    Expect(0, 8536, '\p{Is_Nv=03/00005}', "");
-    Expect(1, 8536, '\p{^Is_Nv=03/00005}', "");
-    Expect(1, 8536, '\P{Is_Nv=03/00005}', "");
-    Expect(0, 8536, '\P{^Is_Nv=03/00005}', "");
+    Error('\p{Is_Nv: :=_-0000000003/00005}');
+    Error('\P{Is_Nv: :=_-0000000003/00005}');
+    Expect(1, 8535, '\p{Is_Nv=+003/00005}', "");
+    Expect(0, 8535, '\p{^Is_Nv=+003/00005}', "");
+    Expect(0, 8535, '\P{Is_Nv=+003/00005}', "");
+    Expect(1, 8535, '\P{^Is_Nv=+003/00005}', "");
+    Expect(0, 8536, '\p{Is_Nv=+003/00005}', "");
+    Expect(1, 8536, '\p{^Is_Nv=+003/00005}', "");
+    Expect(1, 8536, '\P{Is_Nv=+003/00005}', "");
+    Expect(0, 8536, '\P{^Is_Nv=+003/00005}', "");
     Expect(1, 8535, '\p{Is_Nv=180/300}', "");
     Expect(0, 8535, '\p{^Is_Nv=180/300}', "");
     Expect(0, 8535, '\P{Is_Nv=180/300}', "");
@@ -78209,14 +78799,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8536, '\p{^Is_Nv=0.6}', "");
     Expect(1, 8536, '\P{Is_Nv=0.6}', "");
     Expect(0, 8536, '\P{^Is_Nv=0.6}', "");
-    Expect(1, 8535, '\p{Is_Nv=6.00e-01}', "");
-    Expect(0, 8535, '\p{^Is_Nv=6.00e-01}', "");
-    Expect(0, 8535, '\P{Is_Nv=6.00e-01}', "");
-    Expect(1, 8535, '\P{^Is_Nv=6.00e-01}', "");
-    Expect(0, 8536, '\p{Is_Nv=6.00e-01}', "");
-    Expect(1, 8536, '\p{^Is_Nv=6.00e-01}', "");
-    Expect(1, 8536, '\P{Is_Nv=6.00e-01}', "");
-    Expect(0, 8536, '\P{^Is_Nv=6.00e-01}', "");
+    Expect(1, 8535, '\p{Is_Nv: 6.00e-01}', "");
+    Expect(0, 8535, '\p{^Is_Nv: 6.00e-01}', "");
+    Expect(0, 8535, '\P{Is_Nv: 6.00e-01}', "");
+    Expect(1, 8535, '\P{^Is_Nv: 6.00e-01}', "");
+    Expect(0, 8536, '\p{Is_Nv: 6.00e-01}', "");
+    Expect(1, 8536, '\p{^Is_Nv: 6.00e-01}', "");
+    Expect(1, 8536, '\P{Is_Nv: 6.00e-01}', "");
+    Expect(0, 8536, '\P{^Is_Nv: 6.00e-01}', "");
     Expect(1, 8535, '\p{Is_Nv=0.60}', "");
     Expect(0, 8535, '\p{^Is_Nv=0.60}', "");
     Expect(0, 8535, '\P{Is_Nv=0.60}', "");
@@ -78225,28 +78815,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8536, '\p{^Is_Nv=0.60}', "");
     Expect(1, 8536, '\P{Is_Nv=0.60}', "");
     Expect(0, 8536, '\P{^Is_Nv=0.60}', "");
-    Error('\p{Numeric_Value:	+03/000000064/a/}');
-    Error('\P{Numeric_Value:	+03/000000064/a/}');
+    Error('\p{Numeric_Value= /a/3/0000064}');
+    Error('\P{Numeric_Value= /a/3/0000064}');
     Expect(1, 73671, '\p{Numeric_Value=:\A3/64\z:}', "");;
     Expect(0, 73672, '\p{Numeric_Value=:\A3/64\z:}', "");;
-    Expect(1, 73671, '\p{Numeric_Value=00000003/0000064}', "");
-    Expect(0, 73671, '\p{^Numeric_Value=00000003/0000064}', "");
-    Expect(0, 73671, '\P{Numeric_Value=00000003/0000064}', "");
-    Expect(1, 73671, '\P{^Numeric_Value=00000003/0000064}', "");
-    Expect(0, 73672, '\p{Numeric_Value=00000003/0000064}', "");
-    Expect(1, 73672, '\p{^Numeric_Value=00000003/0000064}', "");
-    Expect(1, 73672, '\P{Numeric_Value=00000003/0000064}', "");
-    Expect(0, 73672, '\P{^Numeric_Value=00000003/0000064}', "");
-    Expect(1, 73671, '\p{Numeric_Value=180/3840}', "");
-    Expect(0, 73671, '\p{^Numeric_Value=180/3840}', "");
-    Expect(0, 73671, '\P{Numeric_Value=180/3840}', "");
-    Expect(1, 73671, '\P{^Numeric_Value=180/3840}', "");
-    Expect(0, 73672, '\p{Numeric_Value=180/3840}', "");
-    Expect(1, 73672, '\p{^Numeric_Value=180/3840}', "");
-    Expect(1, 73672, '\P{Numeric_Value=180/3840}', "");
-    Expect(0, 73672, '\P{^Numeric_Value=180/3840}', "");
-    Error('\p{Numeric_Value:4.7e-02}');
-    Error('\P{Numeric_Value:4.7e-02}');
+    Expect(1, 73671, '\p{Numeric_Value=03/00000064}', "");
+    Expect(0, 73671, '\p{^Numeric_Value=03/00000064}', "");
+    Expect(0, 73671, '\P{Numeric_Value=03/00000064}', "");
+    Expect(1, 73671, '\P{^Numeric_Value=03/00000064}', "");
+    Expect(0, 73672, '\p{Numeric_Value=03/00000064}', "");
+    Expect(1, 73672, '\p{^Numeric_Value=03/00000064}', "");
+    Expect(1, 73672, '\P{Numeric_Value=03/00000064}', "");
+    Expect(0, 73672, '\P{^Numeric_Value=03/00000064}', "");
+    Expect(1, 73671, '\p{Numeric_Value:	180/3840}', "");
+    Expect(0, 73671, '\p{^Numeric_Value:	180/3840}', "");
+    Expect(0, 73671, '\P{Numeric_Value:	180/3840}', "");
+    Expect(1, 73671, '\P{^Numeric_Value:	180/3840}', "");
+    Expect(0, 73672, '\p{Numeric_Value:	180/3840}', "");
+    Expect(1, 73672, '\p{^Numeric_Value:	180/3840}', "");
+    Expect(1, 73672, '\P{Numeric_Value:	180/3840}', "");
+    Expect(0, 73672, '\P{^Numeric_Value:	180/3840}', "");
+    Error('\p{Numeric_Value=4.7e-02}');
+    Error('\P{Numeric_Value=4.7e-02}');
     Error('\p{Numeric_Value=4.69e-02}');
     Error('\P{Numeric_Value=4.69e-02}');
     Expect(1, 73671, '\p{Numeric_Value=4.688e-02}', "");
@@ -78277,14 +78867,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73672, '\p{^Numeric_Value=4.68750e-02}', "");
     Expect(1, 73672, '\P{Numeric_Value=4.68750e-02}', "");
     Expect(0, 73672, '\P{^Numeric_Value=4.68750e-02}', "");
-    Expect(1, 73671, '\p{Numeric_Value=0.04688}', "");
-    Expect(0, 73671, '\p{^Numeric_Value=0.04688}', "");
-    Expect(0, 73671, '\P{Numeric_Value=0.04688}', "");
-    Expect(1, 73671, '\P{^Numeric_Value=0.04688}', "");
-    Expect(0, 73672, '\p{Numeric_Value=0.04688}', "");
-    Expect(1, 73672, '\p{^Numeric_Value=0.04688}', "");
-    Expect(1, 73672, '\P{Numeric_Value=0.04688}', "");
-    Expect(0, 73672, '\P{^Numeric_Value=0.04688}', "");
+    Expect(1, 73671, '\p{Numeric_Value:	0.04688}', "");
+    Expect(0, 73671, '\p{^Numeric_Value:	0.04688}', "");
+    Expect(0, 73671, '\P{Numeric_Value:	0.04688}', "");
+    Expect(1, 73671, '\P{^Numeric_Value:	0.04688}', "");
+    Expect(0, 73672, '\p{Numeric_Value:	0.04688}', "");
+    Expect(1, 73672, '\p{^Numeric_Value:	0.04688}', "");
+    Expect(1, 73672, '\P{Numeric_Value:	0.04688}', "");
+    Expect(0, 73672, '\P{^Numeric_Value:	0.04688}', "");
     Expect(1, 73671, '\p{Numeric_Value=4.687500e-02}', "");
     Expect(0, 73671, '\p{^Numeric_Value=4.687500e-02}', "");
     Expect(0, 73671, '\P{Numeric_Value=4.687500e-02}', "");
@@ -78293,26 +78883,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73672, '\p{^Numeric_Value=4.687500e-02}', "");
     Expect(1, 73672, '\P{Numeric_Value=4.687500e-02}', "");
     Expect(0, 73672, '\P{^Numeric_Value=4.687500e-02}', "");
-    Expect(1, 73671, '\p{Numeric_Value:   0.046875}', "");
-    Expect(0, 73671, '\p{^Numeric_Value:   0.046875}', "");
-    Expect(0, 73671, '\P{Numeric_Value:   0.046875}', "");
-    Expect(1, 73671, '\P{^Numeric_Value:   0.046875}', "");
-    Expect(0, 73672, '\p{Numeric_Value:   0.046875}', "");
-    Expect(1, 73672, '\p{^Numeric_Value:   0.046875}', "");
-    Expect(1, 73672, '\P{Numeric_Value:   0.046875}', "");
-    Expect(0, 73672, '\P{^Numeric_Value:   0.046875}', "");
-    Error('\p{Nv=_	0003/00000000064/a/}');
-    Error('\P{Nv=_	0003/00000000064/a/}');
+    Expect(1, 73671, '\p{Numeric_Value:0.046875}', "");
+    Expect(0, 73671, '\p{^Numeric_Value:0.046875}', "");
+    Expect(0, 73671, '\P{Numeric_Value:0.046875}', "");
+    Expect(1, 73671, '\P{^Numeric_Value:0.046875}', "");
+    Expect(0, 73672, '\p{Numeric_Value:0.046875}', "");
+    Expect(1, 73672, '\p{^Numeric_Value:0.046875}', "");
+    Expect(1, 73672, '\P{Numeric_Value:0.046875}', "");
+    Expect(0, 73672, '\P{^Numeric_Value:0.046875}', "");
+    Error('\p{Nv=/a/+003/0000064}');
+    Error('\P{Nv=/a/+003/0000064}');
     Expect(1, 73671, '\p{Nv=:\A3/64\z:}', "");;
     Expect(0, 73672, '\p{Nv=:\A3/64\z:}', "");;
-    Expect(1, 73671, '\p{Nv=0000003/00064}', "");
-    Expect(0, 73671, '\p{^Nv=0000003/00064}', "");
-    Expect(0, 73671, '\P{Nv=0000003/00064}', "");
-    Expect(1, 73671, '\P{^Nv=0000003/00064}', "");
-    Expect(0, 73672, '\p{Nv=0000003/00064}', "");
-    Expect(1, 73672, '\p{^Nv=0000003/00064}', "");
-    Expect(1, 73672, '\P{Nv=0000003/00064}', "");
-    Expect(0, 73672, '\P{^Nv=0000003/00064}', "");
+    Expect(1, 73671, '\p{Nv=0003/00000064}', "");
+    Expect(0, 73671, '\p{^Nv=0003/00000064}', "");
+    Expect(0, 73671, '\P{Nv=0003/00000064}', "");
+    Expect(1, 73671, '\P{^Nv=0003/00000064}', "");
+    Expect(0, 73672, '\p{Nv=0003/00000064}', "");
+    Expect(1, 73672, '\p{^Nv=0003/00000064}', "");
+    Expect(1, 73672, '\P{Nv=0003/00000064}', "");
+    Expect(0, 73672, '\P{^Nv=0003/00000064}', "");
     Expect(1, 73671, '\p{Nv=180/3840}', "");
     Expect(0, 73671, '\p{^Nv=180/3840}', "");
     Expect(0, 73671, '\P{Nv=180/3840}', "");
@@ -78377,24 +78967,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73672, '\p{^Nv=0.046875}', "");
     Expect(1, 73672, '\P{Nv=0.046875}', "");
     Expect(0, 73672, '\P{^Nv=0.046875}', "");
-    Error('\p{Is_Numeric_Value=_+00000003/00000064/a/}');
-    Error('\P{Is_Numeric_Value=_+00000003/00000064/a/}');
-    Expect(1, 73671, '\p{Is_Numeric_Value=+0000003/064}', "");
-    Expect(0, 73671, '\p{^Is_Numeric_Value=+0000003/064}', "");
-    Expect(0, 73671, '\P{Is_Numeric_Value=+0000003/064}', "");
-    Expect(1, 73671, '\P{^Is_Numeric_Value=+0000003/064}', "");
-    Expect(0, 73672, '\p{Is_Numeric_Value=+0000003/064}', "");
-    Expect(1, 73672, '\p{^Is_Numeric_Value=+0000003/064}', "");
-    Expect(1, 73672, '\P{Is_Numeric_Value=+0000003/064}', "");
-    Expect(0, 73672, '\P{^Is_Numeric_Value=+0000003/064}', "");
-    Expect(1, 73671, '\p{Is_Numeric_Value=180/3840}', "");
-    Expect(0, 73671, '\p{^Is_Numeric_Value=180/3840}', "");
-    Expect(0, 73671, '\P{Is_Numeric_Value=180/3840}', "");
-    Expect(1, 73671, '\P{^Is_Numeric_Value=180/3840}', "");
-    Expect(0, 73672, '\p{Is_Numeric_Value=180/3840}', "");
-    Expect(1, 73672, '\p{^Is_Numeric_Value=180/3840}', "");
-    Expect(1, 73672, '\P{Is_Numeric_Value=180/3840}', "");
-    Expect(0, 73672, '\P{^Is_Numeric_Value=180/3840}', "");
+    Error('\p{Is_Numeric_Value=	0000003/64/a/}');
+    Error('\P{Is_Numeric_Value=	0000003/64/a/}');
+    Expect(1, 73671, '\p{Is_Numeric_Value:	000003/00064}', "");
+    Expect(0, 73671, '\p{^Is_Numeric_Value:	000003/00064}', "");
+    Expect(0, 73671, '\P{Is_Numeric_Value:	000003/00064}', "");
+    Expect(1, 73671, '\P{^Is_Numeric_Value:	000003/00064}', "");
+    Expect(0, 73672, '\p{Is_Numeric_Value:	000003/00064}', "");
+    Expect(1, 73672, '\p{^Is_Numeric_Value:	000003/00064}', "");
+    Expect(1, 73672, '\P{Is_Numeric_Value:	000003/00064}', "");
+    Expect(0, 73672, '\P{^Is_Numeric_Value:	000003/00064}', "");
+    Expect(1, 73671, '\p{Is_Numeric_Value: 180/3840}', "");
+    Expect(0, 73671, '\p{^Is_Numeric_Value: 180/3840}', "");
+    Expect(0, 73671, '\P{Is_Numeric_Value: 180/3840}', "");
+    Expect(1, 73671, '\P{^Is_Numeric_Value: 180/3840}', "");
+    Expect(0, 73672, '\p{Is_Numeric_Value: 180/3840}', "");
+    Expect(1, 73672, '\p{^Is_Numeric_Value: 180/3840}', "");
+    Expect(1, 73672, '\P{Is_Numeric_Value: 180/3840}', "");
+    Expect(0, 73672, '\P{^Is_Numeric_Value: 180/3840}', "");
     Error('\p{Is_Numeric_Value=4.7e-02}');
     Error('\P{Is_Numeric_Value=4.7e-02}');
     Error('\p{Is_Numeric_Value=4.69e-02}');
@@ -78451,16 +79041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73672, '\p{^Is_Numeric_Value=0.046875}', "");
     Expect(1, 73672, '\P{Is_Numeric_Value=0.046875}', "");
     Expect(0, 73672, '\P{^Is_Numeric_Value=0.046875}', "");
-    Error('\p{Is_Nv=	/a/0003/00000064}');
-    Error('\P{Is_Nv=	/a/0003/00000064}');
-    Expect(1, 73671, '\p{Is_Nv=+0000000003/064}', "");
-    Expect(0, 73671, '\p{^Is_Nv=+0000000003/064}', "");
-    Expect(0, 73671, '\P{Is_Nv=+0000000003/064}', "");
-    Expect(1, 73671, '\P{^Is_Nv=+0000000003/064}', "");
-    Expect(0, 73672, '\p{Is_Nv=+0000000003/064}', "");
-    Expect(1, 73672, '\p{^Is_Nv=+0000000003/064}', "");
-    Expect(1, 73672, '\P{Is_Nv=+0000000003/064}', "");
-    Expect(0, 73672, '\P{^Is_Nv=+0000000003/064}', "");
+    Error('\p{Is_Nv=/a/__00003/0000064}');
+    Error('\P{Is_Nv=/a/__00003/0000064}');
+    Expect(1, 73671, '\p{Is_Nv=+3/00064}', "");
+    Expect(0, 73671, '\p{^Is_Nv=+3/00064}', "");
+    Expect(0, 73671, '\P{Is_Nv=+3/00064}', "");
+    Expect(1, 73671, '\P{^Is_Nv=+3/00064}', "");
+    Expect(0, 73672, '\p{Is_Nv=+3/00064}', "");
+    Expect(1, 73672, '\p{^Is_Nv=+3/00064}', "");
+    Expect(1, 73672, '\P{Is_Nv=+3/00064}', "");
+    Expect(0, 73672, '\P{^Is_Nv=+3/00064}', "");
     Expect(1, 73671, '\p{Is_Nv=180/3840}', "");
     Expect(0, 73671, '\p{^Is_Nv=180/3840}', "");
     Expect(0, 73671, '\P{Is_Nv=180/3840}', "");
@@ -78471,16 +79061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73672, '\P{^Is_Nv=180/3840}', "");
     Error('\p{Is_Nv=4.7e-02}');
     Error('\P{Is_Nv=4.7e-02}');
-    Error('\p{Is_Nv:	4.69e-02}');
-    Error('\P{Is_Nv:	4.69e-02}');
-    Expect(1, 73671, '\p{Is_Nv:   4.688e-02}', "");
-    Expect(0, 73671, '\p{^Is_Nv:   4.688e-02}', "");
-    Expect(0, 73671, '\P{Is_Nv:   4.688e-02}', "");
-    Expect(1, 73671, '\P{^Is_Nv:   4.688e-02}', "");
-    Expect(0, 73672, '\p{Is_Nv:   4.688e-02}', "");
-    Expect(1, 73672, '\p{^Is_Nv:   4.688e-02}', "");
-    Expect(1, 73672, '\P{Is_Nv:   4.688e-02}', "");
-    Expect(0, 73672, '\P{^Is_Nv:   4.688e-02}', "");
+    Error('\p{Is_Nv=4.69e-02}');
+    Error('\P{Is_Nv=4.69e-02}');
+    Expect(1, 73671, '\p{Is_Nv=4.688e-02}', "");
+    Expect(0, 73671, '\p{^Is_Nv=4.688e-02}', "");
+    Expect(0, 73671, '\P{Is_Nv=4.688e-02}', "");
+    Expect(1, 73671, '\P{^Is_Nv=4.688e-02}', "");
+    Expect(0, 73672, '\p{Is_Nv=4.688e-02}', "");
+    Expect(1, 73672, '\p{^Is_Nv=4.688e-02}', "");
+    Expect(1, 73672, '\P{Is_Nv=4.688e-02}', "");
+    Expect(0, 73672, '\P{^Is_Nv=4.688e-02}', "");
     Error('\p{Is_Nv=0.047}');
     Error('\P{Is_Nv=0.047}');
     Expect(1, 73671, '\p{Is_Nv=4.6875e-02}', "");
@@ -78501,14 +79091,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73672, '\p{^Is_Nv=4.68750e-02}', "");
     Expect(1, 73672, '\P{Is_Nv=4.68750e-02}', "");
     Expect(0, 73672, '\P{^Is_Nv=4.68750e-02}', "");
-    Expect(1, 73671, '\p{Is_Nv=0.04688}', "");
-    Expect(0, 73671, '\p{^Is_Nv=0.04688}', "");
-    Expect(0, 73671, '\P{Is_Nv=0.04688}', "");
-    Expect(1, 73671, '\P{^Is_Nv=0.04688}', "");
-    Expect(0, 73672, '\p{Is_Nv=0.04688}', "");
-    Expect(1, 73672, '\p{^Is_Nv=0.04688}', "");
-    Expect(1, 73672, '\P{Is_Nv=0.04688}', "");
-    Expect(0, 73672, '\P{^Is_Nv=0.04688}', "");
+    Expect(1, 73671, '\p{Is_Nv:0.04688}', "");
+    Expect(0, 73671, '\p{^Is_Nv:0.04688}', "");
+    Expect(0, 73671, '\P{Is_Nv:0.04688}', "");
+    Expect(1, 73671, '\P{^Is_Nv:0.04688}', "");
+    Expect(0, 73672, '\p{Is_Nv:0.04688}', "");
+    Expect(1, 73672, '\p{^Is_Nv:0.04688}', "");
+    Expect(1, 73672, '\P{Is_Nv:0.04688}', "");
+    Expect(0, 73672, '\P{^Is_Nv:0.04688}', "");
     Expect(1, 73671, '\p{Is_Nv=4.687500e-02}', "");
     Expect(0, 73671, '\p{^Is_Nv=4.687500e-02}', "");
     Expect(0, 73671, '\P{Is_Nv=4.687500e-02}', "");
@@ -78517,26 +79107,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73672, '\p{^Is_Nv=4.687500e-02}', "");
     Expect(1, 73672, '\P{Is_Nv=4.687500e-02}', "");
     Expect(0, 73672, '\P{^Is_Nv=4.687500e-02}', "");
-    Expect(1, 73671, '\p{Is_Nv: 0.046875}', "");
-    Expect(0, 73671, '\p{^Is_Nv: 0.046875}', "");
-    Expect(0, 73671, '\P{Is_Nv: 0.046875}', "");
-    Expect(1, 73671, '\P{^Is_Nv: 0.046875}', "");
-    Expect(0, 73672, '\p{Is_Nv: 0.046875}', "");
-    Expect(1, 73672, '\p{^Is_Nv: 0.046875}', "");
-    Expect(1, 73672, '\P{Is_Nv: 0.046875}', "");
-    Expect(0, 73672, '\P{^Is_Nv: 0.046875}', "");
-    Error('\p{Numeric_Value=/a/-	+000003/0000000008}');
-    Error('\P{Numeric_Value=/a/-	+000003/0000000008}');
+    Expect(1, 73671, '\p{Is_Nv=0.046875}', "");
+    Expect(0, 73671, '\p{^Is_Nv=0.046875}', "");
+    Expect(0, 73671, '\P{Is_Nv=0.046875}', "");
+    Expect(1, 73671, '\P{^Is_Nv=0.046875}', "");
+    Expect(0, 73672, '\p{Is_Nv=0.046875}', "");
+    Expect(1, 73672, '\p{^Is_Nv=0.046875}', "");
+    Expect(1, 73672, '\P{Is_Nv=0.046875}', "");
+    Expect(0, 73672, '\P{^Is_Nv=0.046875}', "");
+    Error('\p{Numeric_Value=00000003/000000008:=}');
+    Error('\P{Numeric_Value=00000003/000000008:=}');
     Expect(1, 8540, '\p{Numeric_Value=:\A3/8\z:}', "");;
     Expect(0, 8541, '\p{Numeric_Value=:\A3/8\z:}', "");;
-    Expect(1, 8540, '\p{Numeric_Value:	+03/008}', "");
-    Expect(0, 8540, '\p{^Numeric_Value:	+03/008}', "");
-    Expect(0, 8540, '\P{Numeric_Value:	+03/008}', "");
-    Expect(1, 8540, '\P{^Numeric_Value:	+03/008}', "");
-    Expect(0, 8541, '\p{Numeric_Value:	+03/008}', "");
-    Expect(1, 8541, '\p{^Numeric_Value:	+03/008}', "");
-    Expect(1, 8541, '\P{Numeric_Value:	+03/008}', "");
-    Expect(0, 8541, '\P{^Numeric_Value:	+03/008}', "");
+    Expect(1, 8540, '\p{Numeric_Value=+00000003/000000008}', "");
+    Expect(0, 8540, '\p{^Numeric_Value=+00000003/000000008}', "");
+    Expect(0, 8540, '\P{Numeric_Value=+00000003/000000008}', "");
+    Expect(1, 8540, '\P{^Numeric_Value=+00000003/000000008}', "");
+    Expect(0, 8541, '\p{Numeric_Value=+00000003/000000008}', "");
+    Expect(1, 8541, '\p{^Numeric_Value=+00000003/000000008}', "");
+    Expect(1, 8541, '\P{Numeric_Value=+00000003/000000008}', "");
+    Expect(0, 8541, '\P{^Numeric_Value=+00000003/000000008}', "");
     Expect(1, 8540, '\p{Numeric_Value=180/480}', "");
     Expect(0, 8540, '\p{^Numeric_Value=180/480}', "");
     Expect(0, 8540, '\P{Numeric_Value=180/480}', "");
@@ -78555,8 +79145,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Numeric_Value=3.75e-01}', "");
     Expect(1, 8541, '\P{Numeric_Value=3.75e-01}', "");
     Expect(0, 8541, '\P{^Numeric_Value=3.75e-01}', "");
-    Error('\p{Numeric_Value:	0.38}');
-    Error('\P{Numeric_Value:	0.38}');
+    Error('\p{Numeric_Value=0.38}');
+    Error('\P{Numeric_Value=0.38}');
     Expect(1, 8540, '\p{Numeric_Value=3.750e-01}', "");
     Expect(0, 8540, '\p{^Numeric_Value=3.750e-01}', "");
     Expect(0, 8540, '\P{Numeric_Value=3.750e-01}', "");
@@ -78589,18 +79179,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Numeric_Value=0.3750}', "");
     Expect(1, 8541, '\P{Numeric_Value=0.3750}', "");
     Expect(0, 8541, '\P{^Numeric_Value=0.3750}', "");
-    Error('\p{Nv=/a/--+3/0000008}');
-    Error('\P{Nv=/a/--+3/0000008}');
+    Error('\p{Nv=_ 0000003/0008/a/}');
+    Error('\P{Nv=_ 0000003/0008/a/}');
     Expect(1, 8540, '\p{Nv=:\A3/8\z:}', "");;
     Expect(0, 8541, '\p{Nv=:\A3/8\z:}', "");;
-    Expect(1, 8540, '\p{Nv=0000000003/0000000008}', "");
-    Expect(0, 8540, '\p{^Nv=0000000003/0000000008}', "");
-    Expect(0, 8540, '\P{Nv=0000000003/0000000008}', "");
-    Expect(1, 8540, '\P{^Nv=0000000003/0000000008}', "");
-    Expect(0, 8541, '\p{Nv=0000000003/0000000008}', "");
-    Expect(1, 8541, '\p{^Nv=0000000003/0000000008}', "");
-    Expect(1, 8541, '\P{Nv=0000000003/0000000008}', "");
-    Expect(0, 8541, '\P{^Nv=0000000003/0000000008}', "");
+    Expect(1, 8540, '\p{Nv=00000003/00008}', "");
+    Expect(0, 8540, '\p{^Nv=00000003/00008}', "");
+    Expect(0, 8540, '\P{Nv=00000003/00008}', "");
+    Expect(1, 8540, '\P{^Nv=00000003/00008}', "");
+    Expect(0, 8541, '\p{Nv=00000003/00008}', "");
+    Expect(1, 8541, '\p{^Nv=00000003/00008}', "");
+    Expect(1, 8541, '\P{Nv=00000003/00008}', "");
+    Expect(0, 8541, '\P{^Nv=00000003/00008}', "");
     Expect(1, 8540, '\p{Nv=180/480}', "");
     Expect(0, 8540, '\p{^Nv=180/480}', "");
     Expect(0, 8540, '\P{Nv=180/480}', "");
@@ -78619,8 +79209,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Nv=3.75e-01}', "");
     Expect(1, 8541, '\P{Nv=3.75e-01}', "");
     Expect(0, 8541, '\P{^Nv=3.75e-01}', "");
-    Error('\p{Nv=0.38}');
-    Error('\P{Nv=0.38}');
+    Error('\p{Nv:   0.38}');
+    Error('\P{Nv:   0.38}');
     Expect(1, 8540, '\p{Nv=3.750e-01}', "");
     Expect(0, 8540, '\p{^Nv=3.750e-01}', "");
     Expect(0, 8540, '\P{Nv=3.750e-01}', "");
@@ -78653,16 +79243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Nv=0.3750}', "");
     Expect(1, 8541, '\P{Nv=0.3750}', "");
     Expect(0, 8541, '\P{^Nv=0.3750}', "");
-    Error('\p{Is_Numeric_Value=/a/	+000003/000008}');
-    Error('\P{Is_Numeric_Value=/a/	+000003/000008}');
-    Expect(1, 8540, '\p{Is_Numeric_Value=03/008}', "");
-    Expect(0, 8540, '\p{^Is_Numeric_Value=03/008}', "");
-    Expect(0, 8540, '\P{Is_Numeric_Value=03/008}', "");
-    Expect(1, 8540, '\P{^Is_Numeric_Value=03/008}', "");
-    Expect(0, 8541, '\p{Is_Numeric_Value=03/008}', "");
-    Expect(1, 8541, '\p{^Is_Numeric_Value=03/008}', "");
-    Expect(1, 8541, '\P{Is_Numeric_Value=03/008}', "");
-    Expect(0, 8541, '\P{^Is_Numeric_Value=03/008}', "");
+    Error('\p{Is_Numeric_Value=	+0003/00000008/a/}');
+    Error('\P{Is_Numeric_Value=	+0003/00000008/a/}');
+    Expect(1, 8540, '\p{Is_Numeric_Value=000000003/08}', "");
+    Expect(0, 8540, '\p{^Is_Numeric_Value=000000003/08}', "");
+    Expect(0, 8540, '\P{Is_Numeric_Value=000000003/08}', "");
+    Expect(1, 8540, '\P{^Is_Numeric_Value=000000003/08}', "");
+    Expect(0, 8541, '\p{Is_Numeric_Value=000000003/08}', "");
+    Expect(1, 8541, '\p{^Is_Numeric_Value=000000003/08}', "");
+    Expect(1, 8541, '\P{Is_Numeric_Value=000000003/08}', "");
+    Expect(0, 8541, '\P{^Is_Numeric_Value=000000003/08}', "");
     Expect(1, 8540, '\p{Is_Numeric_Value=180/480}', "");
     Expect(0, 8540, '\p{^Is_Numeric_Value=180/480}', "");
     Expect(0, 8540, '\P{Is_Numeric_Value=180/480}', "");
@@ -78681,8 +79271,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Is_Numeric_Value=3.75e-01}', "");
     Expect(1, 8541, '\P{Is_Numeric_Value=3.75e-01}', "");
     Expect(0, 8541, '\P{^Is_Numeric_Value=3.75e-01}', "");
-    Error('\p{Is_Numeric_Value: 0.38}');
-    Error('\P{Is_Numeric_Value: 0.38}');
+    Error('\p{Is_Numeric_Value=0.38}');
+    Error('\P{Is_Numeric_Value=0.38}');
     Expect(1, 8540, '\p{Is_Numeric_Value=3.750e-01}', "");
     Expect(0, 8540, '\p{^Is_Numeric_Value=3.750e-01}', "");
     Expect(0, 8540, '\P{Is_Numeric_Value=3.750e-01}', "");
@@ -78691,14 +79281,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Is_Numeric_Value=3.750e-01}', "");
     Expect(1, 8541, '\P{Is_Numeric_Value=3.750e-01}', "");
     Expect(0, 8541, '\P{^Is_Numeric_Value=3.750e-01}', "");
-    Expect(1, 8540, '\p{Is_Numeric_Value: 0.375}', "");
-    Expect(0, 8540, '\p{^Is_Numeric_Value: 0.375}', "");
-    Expect(0, 8540, '\P{Is_Numeric_Value: 0.375}', "");
-    Expect(1, 8540, '\P{^Is_Numeric_Value: 0.375}', "");
-    Expect(0, 8541, '\p{Is_Numeric_Value: 0.375}', "");
-    Expect(1, 8541, '\p{^Is_Numeric_Value: 0.375}', "");
-    Expect(1, 8541, '\P{Is_Numeric_Value: 0.375}', "");
-    Expect(0, 8541, '\P{^Is_Numeric_Value: 0.375}', "");
+    Expect(1, 8540, '\p{Is_Numeric_Value=0.375}', "");
+    Expect(0, 8540, '\p{^Is_Numeric_Value=0.375}', "");
+    Expect(0, 8540, '\P{Is_Numeric_Value=0.375}', "");
+    Expect(1, 8540, '\P{^Is_Numeric_Value=0.375}', "");
+    Expect(0, 8541, '\p{Is_Numeric_Value=0.375}', "");
+    Expect(1, 8541, '\p{^Is_Numeric_Value=0.375}', "");
+    Expect(1, 8541, '\P{Is_Numeric_Value=0.375}', "");
+    Expect(0, 8541, '\P{^Is_Numeric_Value=0.375}', "");
     Expect(1, 8540, '\p{Is_Numeric_Value=3.7500e-01}', "");
     Expect(0, 8540, '\p{^Is_Numeric_Value=3.7500e-01}', "");
     Expect(0, 8540, '\P{Is_Numeric_Value=3.7500e-01}', "");
@@ -78715,16 +79305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Is_Numeric_Value=0.3750}', "");
     Expect(1, 8541, '\P{Is_Numeric_Value=0.3750}', "");
     Expect(0, 8541, '\P{^Is_Numeric_Value=0.3750}', "");
-    Error('\p{Is_Nv=_:=0000000003/000000008}');
-    Error('\P{Is_Nv=_:=0000000003/000000008}');
-    Expect(1, 8540, '\p{Is_Nv:+0003/0000008}', "");
-    Expect(0, 8540, '\p{^Is_Nv:+0003/0000008}', "");
-    Expect(0, 8540, '\P{Is_Nv:+0003/0000008}', "");
-    Expect(1, 8540, '\P{^Is_Nv:+0003/0000008}', "");
-    Expect(0, 8541, '\p{Is_Nv:+0003/0000008}', "");
-    Expect(1, 8541, '\p{^Is_Nv:+0003/0000008}', "");
-    Expect(1, 8541, '\P{Is_Nv:+0003/0000008}', "");
-    Expect(0, 8541, '\P{^Is_Nv:+0003/0000008}', "");
+    Error('\p{Is_Nv= -0003/0000000008:=}');
+    Error('\P{Is_Nv= -0003/0000000008:=}');
+    Expect(1, 8540, '\p{Is_Nv=00003/0000008}', "");
+    Expect(0, 8540, '\p{^Is_Nv=00003/0000008}', "");
+    Expect(0, 8540, '\P{Is_Nv=00003/0000008}', "");
+    Expect(1, 8540, '\P{^Is_Nv=00003/0000008}', "");
+    Expect(0, 8541, '\p{Is_Nv=00003/0000008}', "");
+    Expect(1, 8541, '\p{^Is_Nv=00003/0000008}', "");
+    Expect(1, 8541, '\P{Is_Nv=00003/0000008}', "");
+    Expect(0, 8541, '\P{^Is_Nv=00003/0000008}', "");
     Expect(1, 8540, '\p{Is_Nv=180/480}', "");
     Expect(0, 8540, '\p{^Is_Nv=180/480}', "");
     Expect(0, 8540, '\P{Is_Nv=180/480}', "");
@@ -78733,8 +79323,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Is_Nv=180/480}', "");
     Expect(1, 8541, '\P{Is_Nv=180/480}', "");
     Expect(0, 8541, '\P{^Is_Nv=180/480}', "");
-    Error('\p{Is_Nv:3.8e-01}');
-    Error('\P{Is_Nv:3.8e-01}');
+    Error('\p{Is_Nv=3.8e-01}');
+    Error('\P{Is_Nv=3.8e-01}');
     Expect(1, 8540, '\p{Is_Nv=3.75e-01}', "");
     Expect(0, 8540, '\p{^Is_Nv=3.75e-01}', "");
     Expect(0, 8540, '\P{Is_Nv=3.75e-01}', "");
@@ -78743,24 +79333,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Is_Nv=3.75e-01}', "");
     Expect(1, 8541, '\P{Is_Nv=3.75e-01}', "");
     Expect(0, 8541, '\P{^Is_Nv=3.75e-01}', "");
-    Error('\p{Is_Nv:   0.38}');
-    Error('\P{Is_Nv:   0.38}');
-    Expect(1, 8540, '\p{Is_Nv: 3.750e-01}', "");
-    Expect(0, 8540, '\p{^Is_Nv: 3.750e-01}', "");
-    Expect(0, 8540, '\P{Is_Nv: 3.750e-01}', "");
-    Expect(1, 8540, '\P{^Is_Nv: 3.750e-01}', "");
-    Expect(0, 8541, '\p{Is_Nv: 3.750e-01}', "");
-    Expect(1, 8541, '\p{^Is_Nv: 3.750e-01}', "");
-    Expect(1, 8541, '\P{Is_Nv: 3.750e-01}', "");
-    Expect(0, 8541, '\P{^Is_Nv: 3.750e-01}', "");
-    Expect(1, 8540, '\p{Is_Nv: 0.375}', "");
-    Expect(0, 8540, '\p{^Is_Nv: 0.375}', "");
-    Expect(0, 8540, '\P{Is_Nv: 0.375}', "");
-    Expect(1, 8540, '\P{^Is_Nv: 0.375}', "");
-    Expect(0, 8541, '\p{Is_Nv: 0.375}', "");
-    Expect(1, 8541, '\p{^Is_Nv: 0.375}', "");
-    Expect(1, 8541, '\P{Is_Nv: 0.375}', "");
-    Expect(0, 8541, '\P{^Is_Nv: 0.375}', "");
+    Error('\p{Is_Nv: 0.38}');
+    Error('\P{Is_Nv: 0.38}');
+    Expect(1, 8540, '\p{Is_Nv=3.750e-01}', "");
+    Expect(0, 8540, '\p{^Is_Nv=3.750e-01}', "");
+    Expect(0, 8540, '\P{Is_Nv=3.750e-01}', "");
+    Expect(1, 8540, '\P{^Is_Nv=3.750e-01}', "");
+    Expect(0, 8541, '\p{Is_Nv=3.750e-01}', "");
+    Expect(1, 8541, '\p{^Is_Nv=3.750e-01}', "");
+    Expect(1, 8541, '\P{Is_Nv=3.750e-01}', "");
+    Expect(0, 8541, '\P{^Is_Nv=3.750e-01}', "");
+    Expect(1, 8540, '\p{Is_Nv=0.375}', "");
+    Expect(0, 8540, '\p{^Is_Nv=0.375}', "");
+    Expect(0, 8540, '\P{Is_Nv=0.375}', "");
+    Expect(1, 8540, '\P{^Is_Nv=0.375}', "");
+    Expect(0, 8541, '\p{Is_Nv=0.375}', "");
+    Expect(1, 8541, '\p{^Is_Nv=0.375}', "");
+    Expect(1, 8541, '\P{Is_Nv=0.375}', "");
+    Expect(0, 8541, '\P{^Is_Nv=0.375}', "");
     Expect(1, 8540, '\p{Is_Nv=3.7500e-01}', "");
     Expect(0, 8540, '\p{^Is_Nv=3.7500e-01}', "");
     Expect(0, 8540, '\P{Is_Nv=3.7500e-01}', "");
@@ -78769,26 +79359,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 8541, '\p{^Is_Nv=3.7500e-01}', "");
     Expect(1, 8541, '\P{Is_Nv=3.7500e-01}', "");
     Expect(0, 8541, '\P{^Is_Nv=3.7500e-01}', "");
-    Expect(1, 8540, '\p{Is_Nv:	0.3750}', "");
-    Expect(0, 8540, '\p{^Is_Nv:	0.3750}', "");
-    Expect(0, 8540, '\P{Is_Nv:	0.3750}', "");
-    Expect(1, 8540, '\P{^Is_Nv:	0.3750}', "");
-    Expect(0, 8541, '\p{Is_Nv:	0.3750}', "");
-    Expect(1, 8541, '\p{^Is_Nv:	0.3750}', "");
-    Expect(1, 8541, '\P{Is_Nv:	0.3750}', "");
-    Expect(0, 8541, '\P{^Is_Nv:	0.3750}', "");
-    Error('\p{Numeric_Value=:=	003/00080}');
-    Error('\P{Numeric_Value=:=	003/00080}');
+    Expect(1, 8540, '\p{Is_Nv=0.3750}', "");
+    Expect(0, 8540, '\p{^Is_Nv=0.3750}', "");
+    Expect(0, 8540, '\P{Is_Nv=0.3750}', "");
+    Expect(1, 8540, '\P{^Is_Nv=0.3750}', "");
+    Expect(0, 8541, '\p{Is_Nv=0.3750}', "");
+    Expect(1, 8541, '\p{^Is_Nv=0.3750}', "");
+    Expect(1, 8541, '\P{Is_Nv=0.3750}', "");
+    Expect(0, 8541, '\P{^Is_Nv=0.3750}', "");
+    Error('\p{Numeric_Value=	_+03/080:=}');
+    Error('\P{Numeric_Value=	_+03/080:=}');
     Expect(1, 73670, '\p{Numeric_Value=:\A3/80\z:}', "");;
     Expect(0, 73671, '\p{Numeric_Value=:\A3/80\z:}', "");;
-    Expect(1, 73670, '\p{Numeric_Value=+03/0080}', "");
-    Expect(0, 73670, '\p{^Numeric_Value=+03/0080}', "");
-    Expect(0, 73670, '\P{Numeric_Value=+03/0080}', "");
-    Expect(1, 73670, '\P{^Numeric_Value=+03/0080}', "");
-    Expect(0, 73671, '\p{Numeric_Value=+03/0080}', "");
-    Expect(1, 73671, '\p{^Numeric_Value=+03/0080}', "");
-    Expect(1, 73671, '\P{Numeric_Value=+03/0080}', "");
-    Expect(0, 73671, '\P{^Numeric_Value=+03/0080}', "");
+    Expect(1, 73670, '\p{Numeric_Value=+3/0000080}', "");
+    Expect(0, 73670, '\p{^Numeric_Value=+3/0000080}', "");
+    Expect(0, 73670, '\P{Numeric_Value=+3/0000080}', "");
+    Expect(1, 73670, '\P{^Numeric_Value=+3/0000080}', "");
+    Expect(0, 73671, '\p{Numeric_Value=+3/0000080}', "");
+    Expect(1, 73671, '\p{^Numeric_Value=+3/0000080}', "");
+    Expect(1, 73671, '\P{Numeric_Value=+3/0000080}', "");
+    Expect(0, 73671, '\P{^Numeric_Value=+3/0000080}', "");
     Expect(1, 73670, '\p{Numeric_Value=180/4800}', "");
     Expect(0, 73670, '\p{^Numeric_Value=180/4800}', "");
     Expect(0, 73670, '\P{Numeric_Value=180/4800}', "");
@@ -78797,18 +79387,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73671, '\p{^Numeric_Value=180/4800}', "");
     Expect(1, 73671, '\P{Numeric_Value=180/4800}', "");
     Expect(0, 73671, '\P{^Numeric_Value=180/4800}', "");
-    Error('\p{Numeric_Value:3.7e-02}');
-    Error('\P{Numeric_Value:3.7e-02}');
-    Expect(1, 73670, '\p{Numeric_Value: 3.75e-02}', "");
-    Expect(0, 73670, '\p{^Numeric_Value: 3.75e-02}', "");
-    Expect(0, 73670, '\P{Numeric_Value: 3.75e-02}', "");
-    Expect(1, 73670, '\P{^Numeric_Value: 3.75e-02}', "");
-    Expect(0, 73671, '\p{Numeric_Value: 3.75e-02}', "");
-    Expect(1, 73671, '\p{^Numeric_Value: 3.75e-02}', "");
-    Expect(1, 73671, '\P{Numeric_Value: 3.75e-02}', "");
-    Expect(0, 73671, '\P{^Numeric_Value: 3.75e-02}', "");
-    Error('\p{Numeric_Value:0.04}');
-    Error('\P{Numeric_Value:0.04}');
+    Error('\p{Numeric_Value:   3.7e-02}');
+    Error('\P{Numeric_Value:   3.7e-02}');
+    Expect(1, 73670, '\p{Numeric_Value=3.75e-02}', "");
+    Expect(0, 73670, '\p{^Numeric_Value=3.75e-02}', "");
+    Expect(0, 73670, '\P{Numeric_Value=3.75e-02}', "");
+    Expect(1, 73670, '\P{^Numeric_Value=3.75e-02}', "");
+    Expect(0, 73671, '\p{Numeric_Value=3.75e-02}', "");
+    Expect(1, 73671, '\p{^Numeric_Value=3.75e-02}', "");
+    Expect(1, 73671, '\P{Numeric_Value=3.75e-02}', "");
+    Expect(0, 73671, '\P{^Numeric_Value=3.75e-02}', "");
+    Error('\p{Numeric_Value=0.04}');
+    Error('\P{Numeric_Value=0.04}');
     Expect(1, 73670, '\p{Numeric_Value=3.750e-02}', "");
     Expect(0, 73670, '\p{^Numeric_Value=3.750e-02}', "");
     Expect(0, 73670, '\P{Numeric_Value=3.750e-02}', "");
@@ -78819,50 +79409,50 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73671, '\P{^Numeric_Value=3.750e-02}', "");
     Error('\p{Numeric_Value=0.037}');
     Error('\P{Numeric_Value=0.037}');
-    Expect(1, 73670, '\p{Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73670, '\p{^Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73670, '\P{Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73670, '\P{^Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73671, '\p{Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73671, '\p{^Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73671, '\P{Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73671, '\P{^Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73670, '\p{Numeric_Value:	0.0375}', "");
-    Expect(0, 73670, '\p{^Numeric_Value:	0.0375}', "");
-    Expect(0, 73670, '\P{Numeric_Value:	0.0375}', "");
-    Expect(1, 73670, '\P{^Numeric_Value:	0.0375}', "");
-    Expect(0, 73671, '\p{Numeric_Value:	0.0375}', "");
-    Expect(1, 73671, '\p{^Numeric_Value:	0.0375}', "");
-    Expect(1, 73671, '\P{Numeric_Value:	0.0375}', "");
-    Expect(0, 73671, '\P{^Numeric_Value:	0.0375}', "");
-    Expect(1, 73670, '\p{Numeric_Value:   3.75000e-02}', "");
-    Expect(0, 73670, '\p{^Numeric_Value:   3.75000e-02}', "");
-    Expect(0, 73670, '\P{Numeric_Value:   3.75000e-02}', "");
-    Expect(1, 73670, '\P{^Numeric_Value:   3.75000e-02}', "");
-    Expect(0, 73671, '\p{Numeric_Value:   3.75000e-02}', "");
-    Expect(1, 73671, '\p{^Numeric_Value:   3.75000e-02}', "");
-    Expect(1, 73671, '\P{Numeric_Value:   3.75000e-02}', "");
-    Expect(0, 73671, '\P{^Numeric_Value:   3.75000e-02}', "");
-    Expect(1, 73670, '\p{Numeric_Value:0.03750}', "");
-    Expect(0, 73670, '\p{^Numeric_Value:0.03750}', "");
-    Expect(0, 73670, '\P{Numeric_Value:0.03750}', "");
-    Expect(1, 73670, '\P{^Numeric_Value:0.03750}', "");
-    Expect(0, 73671, '\p{Numeric_Value:0.03750}', "");
-    Expect(1, 73671, '\p{^Numeric_Value:0.03750}', "");
-    Expect(1, 73671, '\P{Numeric_Value:0.03750}', "");
-    Expect(0, 73671, '\P{^Numeric_Value:0.03750}', "");
-    Error('\p{Nv=	/a/03/080}');
-    Error('\P{Nv=	/a/03/080}');
+    Expect(1, 73670, '\p{Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73670, '\p{^Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73670, '\P{Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73670, '\P{^Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73671, '\p{Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73671, '\p{^Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73671, '\P{Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73671, '\P{^Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73670, '\p{Numeric_Value=0.0375}', "");
+    Expect(0, 73670, '\p{^Numeric_Value=0.0375}', "");
+    Expect(0, 73670, '\P{Numeric_Value=0.0375}', "");
+    Expect(1, 73670, '\P{^Numeric_Value=0.0375}', "");
+    Expect(0, 73671, '\p{Numeric_Value=0.0375}', "");
+    Expect(1, 73671, '\p{^Numeric_Value=0.0375}', "");
+    Expect(1, 73671, '\P{Numeric_Value=0.0375}', "");
+    Expect(0, 73671, '\P{^Numeric_Value=0.0375}', "");
+    Expect(1, 73670, '\p{Numeric_Value=3.75000e-02}', "");
+    Expect(0, 73670, '\p{^Numeric_Value=3.75000e-02}', "");
+    Expect(0, 73670, '\P{Numeric_Value=3.75000e-02}', "");
+    Expect(1, 73670, '\P{^Numeric_Value=3.75000e-02}', "");
+    Expect(0, 73671, '\p{Numeric_Value=3.75000e-02}', "");
+    Expect(1, 73671, '\p{^Numeric_Value=3.75000e-02}', "");
+    Expect(1, 73671, '\P{Numeric_Value=3.75000e-02}', "");
+    Expect(0, 73671, '\P{^Numeric_Value=3.75000e-02}', "");
+    Expect(1, 73670, '\p{Numeric_Value=0.03750}', "");
+    Expect(0, 73670, '\p{^Numeric_Value=0.03750}', "");
+    Expect(0, 73670, '\P{Numeric_Value=0.03750}', "");
+    Expect(1, 73670, '\P{^Numeric_Value=0.03750}', "");
+    Expect(0, 73671, '\p{Numeric_Value=0.03750}', "");
+    Expect(1, 73671, '\p{^Numeric_Value=0.03750}', "");
+    Expect(1, 73671, '\P{Numeric_Value=0.03750}', "");
+    Expect(0, 73671, '\P{^Numeric_Value=0.03750}', "");
+    Error('\p{Nv=/a/ 	+0000000003/000080}');
+    Error('\P{Nv=/a/ 	+0000000003/000080}');
     Expect(1, 73670, '\p{Nv=:\A3/80\z:}', "");;
     Expect(0, 73671, '\p{Nv=:\A3/80\z:}', "");;
-    Expect(1, 73670, '\p{Nv=+0003/00000080}', "");
-    Expect(0, 73670, '\p{^Nv=+0003/00000080}', "");
-    Expect(0, 73670, '\P{Nv=+0003/00000080}', "");
-    Expect(1, 73670, '\P{^Nv=+0003/00000080}', "");
-    Expect(0, 73671, '\p{Nv=+0003/00000080}', "");
-    Expect(1, 73671, '\p{^Nv=+0003/00000080}', "");
-    Expect(1, 73671, '\P{Nv=+0003/00000080}', "");
-    Expect(0, 73671, '\P{^Nv=+0003/00000080}', "");
+    Expect(1, 73670, '\p{Nv=0000000003/000080}', "");
+    Expect(0, 73670, '\p{^Nv=0000000003/000080}', "");
+    Expect(0, 73670, '\P{Nv=0000000003/000080}', "");
+    Expect(1, 73670, '\P{^Nv=0000000003/000080}', "");
+    Expect(0, 73671, '\p{Nv=0000000003/000080}', "");
+    Expect(1, 73671, '\p{^Nv=0000000003/000080}', "");
+    Expect(1, 73671, '\P{Nv=0000000003/000080}', "");
+    Expect(0, 73671, '\P{^Nv=0000000003/000080}', "");
     Expect(1, 73670, '\p{Nv=180/4800}', "");
     Expect(0, 73670, '\p{^Nv=180/4800}', "");
     Expect(0, 73670, '\P{Nv=180/4800}', "");
@@ -78909,14 +79499,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73671, '\p{^Nv=0.0375}', "");
     Expect(1, 73671, '\P{Nv=0.0375}', "");
     Expect(0, 73671, '\P{^Nv=0.0375}', "");
-    Expect(1, 73670, '\p{Nv=3.75000e-02}', "");
-    Expect(0, 73670, '\p{^Nv=3.75000e-02}', "");
-    Expect(0, 73670, '\P{Nv=3.75000e-02}', "");
-    Expect(1, 73670, '\P{^Nv=3.75000e-02}', "");
-    Expect(0, 73671, '\p{Nv=3.75000e-02}', "");
-    Expect(1, 73671, '\p{^Nv=3.75000e-02}', "");
-    Expect(1, 73671, '\P{Nv=3.75000e-02}', "");
-    Expect(0, 73671, '\P{^Nv=3.75000e-02}', "");
+    Expect(1, 73670, '\p{Nv:	3.75000e-02}', "");
+    Expect(0, 73670, '\p{^Nv:	3.75000e-02}', "");
+    Expect(0, 73670, '\P{Nv:	3.75000e-02}', "");
+    Expect(1, 73670, '\P{^Nv:	3.75000e-02}', "");
+    Expect(0, 73671, '\p{Nv:	3.75000e-02}', "");
+    Expect(1, 73671, '\p{^Nv:	3.75000e-02}', "");
+    Expect(1, 73671, '\P{Nv:	3.75000e-02}', "");
+    Expect(0, 73671, '\P{^Nv:	3.75000e-02}', "");
     Expect(1, 73670, '\p{Nv=0.03750}', "");
     Expect(0, 73670, '\p{^Nv=0.03750}', "");
     Expect(0, 73670, '\P{Nv=0.03750}', "");
@@ -78925,34 +79515,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73671, '\p{^Nv=0.03750}', "");
     Expect(1, 73671, '\P{Nv=0.03750}', "");
     Expect(0, 73671, '\P{^Nv=0.03750}', "");
-    Error('\p{Is_Numeric_Value:   _:=03/0080}');
-    Error('\P{Is_Numeric_Value:   _:=03/0080}');
-    Expect(1, 73670, '\p{Is_Numeric_Value=0003/0080}', "");
-    Expect(0, 73670, '\p{^Is_Numeric_Value=0003/0080}', "");
-    Expect(0, 73670, '\P{Is_Numeric_Value=0003/0080}', "");
-    Expect(1, 73670, '\P{^Is_Numeric_Value=0003/0080}', "");
-    Expect(0, 73671, '\p{Is_Numeric_Value=0003/0080}', "");
-    Expect(1, 73671, '\p{^Is_Numeric_Value=0003/0080}', "");
-    Expect(1, 73671, '\P{Is_Numeric_Value=0003/0080}', "");
-    Expect(0, 73671, '\P{^Is_Numeric_Value=0003/0080}', "");
-    Expect(1, 73670, '\p{Is_Numeric_Value:   180/4800}', "");
-    Expect(0, 73670, '\p{^Is_Numeric_Value:   180/4800}', "");
-    Expect(0, 73670, '\P{Is_Numeric_Value:   180/4800}', "");
-    Expect(1, 73670, '\P{^Is_Numeric_Value:   180/4800}', "");
-    Expect(0, 73671, '\p{Is_Numeric_Value:   180/4800}', "");
-    Expect(1, 73671, '\p{^Is_Numeric_Value:   180/4800}', "");
-    Expect(1, 73671, '\P{Is_Numeric_Value:   180/4800}', "");
-    Expect(0, 73671, '\P{^Is_Numeric_Value:   180/4800}', "");
+    Error('\p{Is_Numeric_Value=	3/0000080:=}');
+    Error('\P{Is_Numeric_Value=	3/0000080:=}');
+    Expect(1, 73670, '\p{Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(0, 73670, '\p{^Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(0, 73670, '\P{Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(1, 73670, '\P{^Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(0, 73671, '\p{Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(1, 73671, '\p{^Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(1, 73671, '\P{Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(0, 73671, '\P{^Is_Numeric_Value=000000003/00000000080}', "");
+    Expect(1, 73670, '\p{Is_Numeric_Value=180/4800}', "");
+    Expect(0, 73670, '\p{^Is_Numeric_Value=180/4800}', "");
+    Expect(0, 73670, '\P{Is_Numeric_Value=180/4800}', "");
+    Expect(1, 73670, '\P{^Is_Numeric_Value=180/4800}', "");
+    Expect(0, 73671, '\p{Is_Numeric_Value=180/4800}', "");
+    Expect(1, 73671, '\p{^Is_Numeric_Value=180/4800}', "");
+    Expect(1, 73671, '\P{Is_Numeric_Value=180/4800}', "");
+    Expect(0, 73671, '\P{^Is_Numeric_Value=180/4800}', "");
     Error('\p{Is_Numeric_Value=3.7e-02}');
     Error('\P{Is_Numeric_Value=3.7e-02}');
-    Expect(1, 73670, '\p{Is_Numeric_Value:	3.75e-02}', "");
-    Expect(0, 73670, '\p{^Is_Numeric_Value:	3.75e-02}', "");
-    Expect(0, 73670, '\P{Is_Numeric_Value:	3.75e-02}', "");
-    Expect(1, 73670, '\P{^Is_Numeric_Value:	3.75e-02}', "");
-    Expect(0, 73671, '\p{Is_Numeric_Value:	3.75e-02}', "");
-    Expect(1, 73671, '\p{^Is_Numeric_Value:	3.75e-02}', "");
-    Expect(1, 73671, '\P{Is_Numeric_Value:	3.75e-02}', "");
-    Expect(0, 73671, '\P{^Is_Numeric_Value:	3.75e-02}', "");
+    Expect(1, 73670, '\p{Is_Numeric_Value=3.75e-02}', "");
+    Expect(0, 73670, '\p{^Is_Numeric_Value=3.75e-02}', "");
+    Expect(0, 73670, '\P{Is_Numeric_Value=3.75e-02}', "");
+    Expect(1, 73670, '\P{^Is_Numeric_Value=3.75e-02}', "");
+    Expect(0, 73671, '\p{Is_Numeric_Value=3.75e-02}', "");
+    Expect(1, 73671, '\p{^Is_Numeric_Value=3.75e-02}', "");
+    Expect(1, 73671, '\P{Is_Numeric_Value=3.75e-02}', "");
+    Expect(0, 73671, '\P{^Is_Numeric_Value=3.75e-02}', "");
     Error('\p{Is_Numeric_Value=0.04}');
     Error('\P{Is_Numeric_Value=0.04}');
     Expect(1, 73670, '\p{Is_Numeric_Value=3.750e-02}', "");
@@ -78965,14 +79555,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73671, '\P{^Is_Numeric_Value=3.750e-02}', "");
     Error('\p{Is_Numeric_Value=0.037}');
     Error('\P{Is_Numeric_Value=0.037}');
-    Expect(1, 73670, '\p{Is_Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73670, '\p{^Is_Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73670, '\P{Is_Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73670, '\P{^Is_Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73671, '\p{Is_Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73671, '\p{^Is_Numeric_Value:3.7500e-02}', "");
-    Expect(1, 73671, '\P{Is_Numeric_Value:3.7500e-02}', "");
-    Expect(0, 73671, '\P{^Is_Numeric_Value:3.7500e-02}', "");
+    Expect(1, 73670, '\p{Is_Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73670, '\p{^Is_Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73670, '\P{Is_Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73670, '\P{^Is_Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73671, '\p{Is_Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73671, '\p{^Is_Numeric_Value=3.7500e-02}', "");
+    Expect(1, 73671, '\P{Is_Numeric_Value=3.7500e-02}', "");
+    Expect(0, 73671, '\P{^Is_Numeric_Value=3.7500e-02}', "");
     Expect(1, 73670, '\p{Is_Numeric_Value=0.0375}', "");
     Expect(0, 73670, '\p{^Is_Numeric_Value=0.0375}', "");
     Expect(0, 73670, '\P{Is_Numeric_Value=0.0375}', "");
@@ -78981,40 +79571,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73671, '\p{^Is_Numeric_Value=0.0375}', "");
     Expect(1, 73671, '\P{Is_Numeric_Value=0.0375}', "");
     Expect(0, 73671, '\P{^Is_Numeric_Value=0.0375}', "");
-    Expect(1, 73670, '\p{Is_Numeric_Value=3.75000e-02}', "");
-    Expect(0, 73670, '\p{^Is_Numeric_Value=3.75000e-02}', "");
-    Expect(0, 73670, '\P{Is_Numeric_Value=3.75000e-02}', "");
-    Expect(1, 73670, '\P{^Is_Numeric_Value=3.75000e-02}', "");
-    Expect(0, 73671, '\p{Is_Numeric_Value=3.75000e-02}', "");
-    Expect(1, 73671, '\p{^Is_Numeric_Value=3.75000e-02}', "");
-    Expect(1, 73671, '\P{Is_Numeric_Value=3.75000e-02}', "");
-    Expect(0, 73671, '\P{^Is_Numeric_Value=3.75000e-02}', "");
-    Expect(1, 73670, '\p{Is_Numeric_Value=0.03750}', "");
-    Expect(0, 73670, '\p{^Is_Numeric_Value=0.03750}', "");
-    Expect(0, 73670, '\P{Is_Numeric_Value=0.03750}', "");
-    Expect(1, 73670, '\P{^Is_Numeric_Value=0.03750}', "");
-    Expect(0, 73671, '\p{Is_Numeric_Value=0.03750}', "");
-    Expect(1, 73671, '\p{^Is_Numeric_Value=0.03750}', "");
-    Expect(1, 73671, '\P{Is_Numeric_Value=0.03750}', "");
-    Expect(0, 73671, '\P{^Is_Numeric_Value=0.03750}', "");
-    Error('\p{Is_Nv=/a/ _00003/0000080}');
-    Error('\P{Is_Nv=/a/ _00003/0000080}');
-    Expect(1, 73670, '\p{Is_Nv=0000003/00080}', "");
-    Expect(0, 73670, '\p{^Is_Nv=0000003/00080}', "");
-    Expect(0, 73670, '\P{Is_Nv=0000003/00080}', "");
-    Expect(1, 73670, '\P{^Is_Nv=0000003/00080}', "");
-    Expect(0, 73671, '\p{Is_Nv=0000003/00080}', "");
-    Expect(1, 73671, '\p{^Is_Nv=0000003/00080}', "");
-    Expect(1, 73671, '\P{Is_Nv=0000003/00080}', "");
-    Expect(0, 73671, '\P{^Is_Nv=0000003/00080}', "");
-    Expect(1, 73670, '\p{Is_Nv: 180/4800}', "");
-    Expect(0, 73670, '\p{^Is_Nv: 180/4800}', "");
-    Expect(0, 73670, '\P{Is_Nv: 180/4800}', "");
-    Expect(1, 73670, '\P{^Is_Nv: 180/4800}', "");
-    Expect(0, 73671, '\p{Is_Nv: 180/4800}', "");
-    Expect(1, 73671, '\p{^Is_Nv: 180/4800}', "");
-    Expect(1, 73671, '\P{Is_Nv: 180/4800}', "");
-    Expect(0, 73671, '\P{^Is_Nv: 180/4800}', "");
+    Expect(1, 73670, '\p{Is_Numeric_Value:3.75000e-02}', "");
+    Expect(0, 73670, '\p{^Is_Numeric_Value:3.75000e-02}', "");
+    Expect(0, 73670, '\P{Is_Numeric_Value:3.75000e-02}', "");
+    Expect(1, 73670, '\P{^Is_Numeric_Value:3.75000e-02}', "");
+    Expect(0, 73671, '\p{Is_Numeric_Value:3.75000e-02}', "");
+    Expect(1, 73671, '\p{^Is_Numeric_Value:3.75000e-02}', "");
+    Expect(1, 73671, '\P{Is_Numeric_Value:3.75000e-02}', "");
+    Expect(0, 73671, '\P{^Is_Numeric_Value:3.75000e-02}', "");
+    Expect(1, 73670, '\p{Is_Numeric_Value:	0.03750}', "");
+    Expect(0, 73670, '\p{^Is_Numeric_Value:	0.03750}', "");
+    Expect(0, 73670, '\P{Is_Numeric_Value:	0.03750}', "");
+    Expect(1, 73670, '\P{^Is_Numeric_Value:	0.03750}', "");
+    Expect(0, 73671, '\p{Is_Numeric_Value:	0.03750}', "");
+    Expect(1, 73671, '\p{^Is_Numeric_Value:	0.03750}', "");
+    Expect(1, 73671, '\P{Is_Numeric_Value:	0.03750}', "");
+    Expect(0, 73671, '\P{^Is_Numeric_Value:	0.03750}', "");
+    Error('\p{Is_Nv:	:=__000003/80}');
+    Error('\P{Is_Nv:	:=__000003/80}');
+    Expect(1, 73670, '\p{Is_Nv=3/000080}', "");
+    Expect(0, 73670, '\p{^Is_Nv=3/000080}', "");
+    Expect(0, 73670, '\P{Is_Nv=3/000080}', "");
+    Expect(1, 73670, '\P{^Is_Nv=3/000080}', "");
+    Expect(0, 73671, '\p{Is_Nv=3/000080}', "");
+    Expect(1, 73671, '\p{^Is_Nv=3/000080}', "");
+    Expect(1, 73671, '\P{Is_Nv=3/000080}', "");
+    Expect(0, 73671, '\P{^Is_Nv=3/000080}', "");
+    Expect(1, 73670, '\p{Is_Nv=180/4800}', "");
+    Expect(0, 73670, '\p{^Is_Nv=180/4800}', "");
+    Expect(0, 73670, '\P{Is_Nv=180/4800}', "");
+    Expect(1, 73670, '\P{^Is_Nv=180/4800}', "");
+    Expect(0, 73671, '\p{Is_Nv=180/4800}', "");
+    Expect(1, 73671, '\p{^Is_Nv=180/4800}', "");
+    Expect(1, 73671, '\P{Is_Nv=180/4800}', "");
+    Expect(0, 73671, '\P{^Is_Nv=180/4800}', "");
     Error('\p{Is_Nv=3.7e-02}');
     Error('\P{Is_Nv=3.7e-02}');
     Expect(1, 73670, '\p{Is_Nv=3.75e-02}', "");
@@ -79037,22 +79627,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(0, 73671, '\P{^Is_Nv=3.750e-02}', "");
     Error('\p{Is_Nv=0.037}');
     Error('\P{Is_Nv=0.037}');
-    Expect(1, 73670, '\p{Is_Nv:   3.7500e-02}', "");
-    Expect(0, 73670, '\p{^Is_Nv:   3.7500e-02}', "");
-    Expect(0, 73670, '\P{Is_Nv:   3.7500e-02}', "");
-    Expect(1, 73670, '\P{^Is_Nv:   3.7500e-02}', "");
-    Expect(0, 73671, '\p{Is_Nv:   3.7500e-02}', "");
-    Expect(1, 73671, '\p{^Is_Nv:   3.7500e-02}', "");
-    Expect(1, 73671, '\P{Is_Nv:   3.7500e-02}', "");
-    Expect(0, 73671, '\P{^Is_Nv:   3.7500e-02}', "");
-    Expect(1, 73670, '\p{Is_Nv:   0.0375}', "");
-    Expect(0, 73670, '\p{^Is_Nv:   0.0375}', "");
-    Expect(0, 73670, '\P{Is_Nv:   0.0375}', "");
-    Expect(1, 73670, '\P{^Is_Nv:   0.0375}', "");
-    Expect(0, 73671, '\p{Is_Nv:   0.0375}', "");
-    Expect(1, 73671, '\p{^Is_Nv:   0.0375}', "");
-    Expect(1, 73671, '\P{Is_Nv:   0.0375}', "");
-    Expect(0, 73671, '\P{^Is_Nv:   0.0375}', "");
+    Expect(1, 73670, '\p{Is_Nv=3.7500e-02}', "");
+    Expect(0, 73670, '\p{^Is_Nv=3.7500e-02}', "");
+    Expect(0, 73670, '\P{Is_Nv=3.7500e-02}', "");
+    Expect(1, 73670, '\P{^Is_Nv=3.7500e-02}', "");
+    Expect(0, 73671, '\p{Is_Nv=3.7500e-02}', "");
+    Expect(1, 73671, '\p{^Is_Nv=3.7500e-02}', "");
+    Expect(1, 73671, '\P{Is_Nv=3.7500e-02}', "");
+    Expect(0, 73671, '\P{^Is_Nv=3.7500e-02}', "");
+    Expect(1, 73670, '\p{Is_Nv:0.0375}', "");
+    Expect(0, 73670, '\p{^Is_Nv:0.0375}', "");
+    Expect(0, 73670, '\P{Is_Nv:0.0375}', "");
+    Expect(1, 73670, '\P{^Is_Nv:0.0375}', "");
+    Expect(0, 73671, '\p{Is_Nv:0.0375}', "");
+    Expect(1, 73671, '\p{^Is_Nv:0.0375}', "");
+    Expect(1, 73671, '\P{Is_Nv:0.0375}', "");
+    Expect(0, 73671, '\P{^Is_Nv:0.0375}', "");
     Expect(1, 73670, '\p{Is_Nv=3.75000e-02}', "");
     Expect(0, 73670, '\p{^Is_Nv=3.75000e-02}', "");
     Expect(0, 73670, '\P{Is_Nv=3.75000e-02}', "");
@@ -79069,18 +79659,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 73671, '\p{^Is_Nv=0.03750}', "");
     Expect(1, 73671, '\P{Is_Nv=0.03750}', "");
     Expect(0, 73671, '\P{^Is_Nv=0.03750}', "");
-    Error('\p{Numeric_Value=	-0_0_30:=}');
-    Error('\P{Numeric_Value=	-0_0_30:=}');
+    Error('\p{Numeric_Value=_	30/a/}');
+    Error('\P{Numeric_Value=_	30/a/}');
     Expect(1, 133507, '\p{Numeric_Value=:\A30\z:}', "");;
     Expect(0, 133508, '\p{Numeric_Value=:\A30\z:}', "");;
-    Expect(1, 133507, '\p{Numeric_Value=0000030}', "");
-    Expect(0, 133507, '\p{^Numeric_Value=0000030}', "");
-    Expect(0, 133507, '\P{Numeric_Value=0000030}', "");
-    Expect(1, 133507, '\P{^Numeric_Value=0000030}', "");
-    Expect(0, 133508, '\p{Numeric_Value=0000030}', "");
-    Expect(1, 133508, '\p{^Numeric_Value=0000030}', "");
-    Expect(1, 133508, '\P{Numeric_Value=0000030}', "");
-    Expect(0, 133508, '\P{^Numeric_Value=0000030}', "");
+    Expect(1, 133507, '\p{Numeric_Value=000030}', "");
+    Expect(0, 133507, '\p{^Numeric_Value=000030}', "");
+    Expect(0, 133507, '\P{Numeric_Value=000030}', "");
+    Expect(1, 133507, '\P{^Numeric_Value=000030}', "");
+    Expect(0, 133508, '\p{Numeric_Value=000030}', "");
+    Expect(1, 133508, '\p{^Numeric_Value=000030}', "");
+    Expect(1, 133508, '\P{Numeric_Value=000030}', "");
+    Expect(0, 133508, '\P{^Numeric_Value=000030}', "");
     Expect(1, 133507, '\p{Numeric_Value=3.000000000000000e+01}', "");
     Expect(0, 133507, '\p{^Numeric_Value=3.000000000000000e+01}', "");
     Expect(0, 133507, '\P{Numeric_Value=3.000000000000000e+01}', "");
@@ -79089,18 +79679,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 133508, '\p{^Numeric_Value=3.000000000000000e+01}', "");
     Expect(1, 133508, '\P{Numeric_Value=3.000000000000000e+01}', "");
     Expect(0, 133508, '\P{^Numeric_Value=3.000000000000000e+01}', "");
-    Error('\p{Nv:   _ 0030:=}');
-    Error('\P{Nv:   _ 0030:=}');
+    Error('\p{Nv=_-00000000030:=}');
+    Error('\P{Nv=_-00000000030:=}');
     Expect(1, 133507, '\p{Nv=:\A30\z:}', "");;
     Expect(0, 133508, '\p{Nv=:\A30\z:}', "");;
-    Expect(1, 133507, '\p{Nv=00_00_00_03_0}', "");
-    Expect(0, 133507, '\p{^Nv=00_00_00_03_0}', "");
-    Expect(0, 133507, '\P{Nv=00_00_00_03_0}', "");
-    Expect(1, 133507, '\P{^Nv=00_00_00_03_0}', "");
-    Expect(0, 133508, '\p{Nv=00_00_00_03_0}', "");
-    Expect(1, 133508, '\p{^Nv=00_00_00_03_0}', "");
-    Expect(1, 133508, '\P{Nv=00_00_00_03_0}', "");
-    Expect(0, 133508, '\P{^Nv=00_00_00_03_0}', "");
+    Expect(1, 133507, '\p{Nv=3_0}', "");
+    Expect(0, 133507, '\p{^Nv=3_0}', "");
+    Expect(0, 133507, '\P{Nv=3_0}', "");
+    Expect(1, 133507, '\P{^Nv=3_0}', "");
+    Expect(0, 133508, '\p{Nv=3_0}', "");
+    Expect(1, 133508, '\p{^Nv=3_0}', "");
+    Expect(1, 133508, '\P{Nv=3_0}', "");
+    Expect(0, 133508, '\P{^Nv=3_0}', "");
     Expect(1, 133507, '\p{Nv=3.000000000000000e+01}', "");
     Expect(0, 133507, '\p{^Nv=3.000000000000000e+01}', "");
     Expect(0, 133507, '\P{Nv=3.000000000000000e+01}', "");
@@ -79109,16 +79699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 133508, '\p{^Nv=3.000000000000000e+01}', "");
     Expect(1, 133508, '\P{Nv=3.000000000000000e+01}', "");
     Expect(0, 133508, '\P{^Nv=3.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=-	+30/a/}');
-    Error('\P{Is_Numeric_Value=-	+30/a/}');
-    Expect(1, 133507, '\p{Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(0, 133507, '\p{^Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(0, 133507, '\P{Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(1, 133507, '\P{^Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(0, 133508, '\p{Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(1, 133508, '\p{^Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(1, 133508, '\P{Is_Numeric_Value=0_0_0_0_0030}', "");
-    Expect(0, 133508, '\P{^Is_Numeric_Value=0_0_0_0_0030}', "");
+    Error('\p{Is_Numeric_Value=/a/ _0000030}');
+    Error('\P{Is_Numeric_Value=/a/ _0000030}');
+    Expect(1, 133507, '\p{Is_Numeric_Value=000030}', "");
+    Expect(0, 133507, '\p{^Is_Numeric_Value=000030}', "");
+    Expect(0, 133507, '\P{Is_Numeric_Value=000030}', "");
+    Expect(1, 133507, '\P{^Is_Numeric_Value=000030}', "");
+    Expect(0, 133508, '\p{Is_Numeric_Value=000030}', "");
+    Expect(1, 133508, '\p{^Is_Numeric_Value=000030}', "");
+    Expect(1, 133508, '\P{Is_Numeric_Value=000030}', "");
+    Expect(0, 133508, '\P{^Is_Numeric_Value=000030}', "");
     Expect(1, 133507, '\p{Is_Numeric_Value=3.000000000000000e+01}', "");
     Expect(0, 133507, '\p{^Is_Numeric_Value=3.000000000000000e+01}', "");
     Expect(0, 133507, '\P{Is_Numeric_Value=3.000000000000000e+01}', "");
@@ -79127,36 +79717,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 133508, '\p{^Is_Numeric_Value=3.000000000000000e+01}', "");
     Expect(1, 133508, '\P{Is_Numeric_Value=3.000000000000000e+01}', "");
     Expect(0, 133508, '\P{^Is_Numeric_Value=3.000000000000000e+01}', "");
-    Error('\p{Is_Nv= +00_00_00_00_03_0/a/}');
-    Error('\P{Is_Nv= +00_00_00_00_03_0/a/}');
-    Expect(1, 133507, '\p{Is_Nv=+000000030}', "");
-    Expect(0, 133507, '\p{^Is_Nv=+000000030}', "");
-    Expect(0, 133507, '\P{Is_Nv=+000000030}', "");
-    Expect(1, 133507, '\P{^Is_Nv=+000000030}', "");
-    Expect(0, 133508, '\p{Is_Nv=+000000030}', "");
-    Expect(1, 133508, '\p{^Is_Nv=+000000030}', "");
-    Expect(1, 133508, '\P{Is_Nv=+000000030}', "");
-    Expect(0, 133508, '\P{^Is_Nv=+000000030}', "");
-    Expect(1, 133507, '\p{Is_Nv=3.000000000000000e+01}', "");
-    Expect(0, 133507, '\p{^Is_Nv=3.000000000000000e+01}', "");
-    Expect(0, 133507, '\P{Is_Nv=3.000000000000000e+01}', "");
-    Expect(1, 133507, '\P{^Is_Nv=3.000000000000000e+01}', "");
-    Expect(0, 133508, '\p{Is_Nv=3.000000000000000e+01}', "");
-    Expect(1, 133508, '\p{^Is_Nv=3.000000000000000e+01}', "");
-    Expect(1, 133508, '\P{Is_Nv=3.000000000000000e+01}', "");
-    Expect(0, 133508, '\P{^Is_Nv=3.000000000000000e+01}', "");
-    Error('\p{Numeric_Value: 	:=0_0_0_0_0_0_0_0_0_300}');
-    Error('\P{Numeric_Value: 	:=0_0_0_0_0_0_0_0_0_300}');
+    Error('\p{Is_Nv=	:=+00_03_0}');
+    Error('\P{Is_Nv=	:=+00_03_0}');
+    Expect(1, 133507, '\p{Is_Nv=00000003_0}', "");
+    Expect(0, 133507, '\p{^Is_Nv=00000003_0}', "");
+    Expect(0, 133507, '\P{Is_Nv=00000003_0}', "");
+    Expect(1, 133507, '\P{^Is_Nv=00000003_0}', "");
+    Expect(0, 133508, '\p{Is_Nv=00000003_0}', "");
+    Expect(1, 133508, '\p{^Is_Nv=00000003_0}', "");
+    Expect(1, 133508, '\P{Is_Nv=00000003_0}', "");
+    Expect(0, 133508, '\P{^Is_Nv=00000003_0}', "");
+    Expect(1, 133507, '\p{Is_Nv: 3.000000000000000e+01}', "");
+    Expect(0, 133507, '\p{^Is_Nv: 3.000000000000000e+01}', "");
+    Expect(0, 133507, '\P{Is_Nv: 3.000000000000000e+01}', "");
+    Expect(1, 133507, '\P{^Is_Nv: 3.000000000000000e+01}', "");
+    Expect(0, 133508, '\p{Is_Nv: 3.000000000000000e+01}', "");
+    Expect(1, 133508, '\p{^Is_Nv: 3.000000000000000e+01}', "");
+    Expect(1, 133508, '\P{Is_Nv: 3.000000000000000e+01}', "");
+    Expect(0, 133508, '\P{^Is_Nv: 3.000000000000000e+01}', "");
+    Error('\p{Numeric_Value=-00000300:=}');
+    Error('\P{Numeric_Value=-00000300:=}');
     Expect(1, 126229, '\p{Numeric_Value=:\A300\z:}', "");;
     Expect(0, 126230, '\p{Numeric_Value=:\A300\z:}', "");;
-    Expect(1, 126229, '\p{Numeric_Value=+000000000300}', "");
-    Expect(0, 126229, '\p{^Numeric_Value=+000000000300}', "");
-    Expect(0, 126229, '\P{Numeric_Value=+000000000300}', "");
-    Expect(1, 126229, '\P{^Numeric_Value=+000000000300}', "");
-    Expect(0, 126230, '\p{Numeric_Value=+000000000300}', "");
-    Expect(1, 126230, '\p{^Numeric_Value=+000000000300}', "");
-    Expect(1, 126230, '\P{Numeric_Value=+000000000300}', "");
-    Expect(0, 126230, '\P{^Numeric_Value=+000000000300}', "");
+    Expect(1, 126229, '\p{Numeric_Value=00300}', "");
+    Expect(0, 126229, '\p{^Numeric_Value=00300}', "");
+    Expect(0, 126229, '\P{Numeric_Value=00300}', "");
+    Expect(1, 126229, '\P{^Numeric_Value=00300}', "");
+    Expect(0, 126230, '\p{Numeric_Value=00300}', "");
+    Expect(1, 126230, '\p{^Numeric_Value=00300}', "");
+    Expect(1, 126230, '\P{Numeric_Value=00300}', "");
+    Expect(0, 126230, '\P{^Numeric_Value=00300}', "");
     Expect(1, 126229, '\p{Numeric_Value=3.000000000000000e+02}', "");
     Expect(0, 126229, '\p{^Numeric_Value=3.000000000000000e+02}', "");
     Expect(0, 126229, '\P{Numeric_Value=3.000000000000000e+02}', "");
@@ -79165,18 +79755,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126230, '\p{^Numeric_Value=3.000000000000000e+02}', "");
     Expect(1, 126230, '\P{Numeric_Value=3.000000000000000e+02}', "");
     Expect(0, 126230, '\P{^Numeric_Value=3.000000000000000e+02}', "");
-    Error('\p{Nv=/a/_300}');
-    Error('\P{Nv=/a/_300}');
+    Error('\p{Nv=:=0_0_0_0_0_0_0_0300}');
+    Error('\P{Nv=:=0_0_0_0_0_0_0_0300}');
     Expect(1, 126229, '\p{Nv=:\A300\z:}', "");;
     Expect(0, 126230, '\p{Nv=:\A300\z:}', "");;
-    Expect(1, 126229, '\p{Nv=0300}', "");
-    Expect(0, 126229, '\p{^Nv=0300}', "");
-    Expect(0, 126229, '\P{Nv=0300}', "");
-    Expect(1, 126229, '\P{^Nv=0300}', "");
-    Expect(0, 126230, '\p{Nv=0300}', "");
-    Expect(1, 126230, '\p{^Nv=0300}', "");
-    Expect(1, 126230, '\P{Nv=0300}', "");
-    Expect(0, 126230, '\P{^Nv=0300}', "");
+    Expect(1, 126229, '\p{Nv=+0000300}', "");
+    Expect(0, 126229, '\p{^Nv=+0000300}', "");
+    Expect(0, 126229, '\P{Nv=+0000300}', "");
+    Expect(1, 126229, '\P{^Nv=+0000300}', "");
+    Expect(0, 126230, '\p{Nv=+0000300}', "");
+    Expect(1, 126230, '\p{^Nv=+0000300}', "");
+    Expect(1, 126230, '\P{Nv=+0000300}', "");
+    Expect(0, 126230, '\P{^Nv=+0000300}', "");
     Expect(1, 126229, '\p{Nv=3.000000000000000e+02}', "");
     Expect(0, 126229, '\p{^Nv=3.000000000000000e+02}', "");
     Expect(0, 126229, '\P{Nv=3.000000000000000e+02}', "");
@@ -79185,36 +79775,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 2) 
     Expect(1, 126230, '\p{^Nv=3.000000000000000e+02}', "");
     Expect(1, 126230, '\P{Nv=3.000000000000000e+02}', "");
     Expect(0, 126230, '\P{^Nv=3.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value=	/a/0300}');
-    Error('\P{Is_Numeric_Value=	/a/0300}');
-    Expect(1, 126229, '\p{Is_Numeric_Value=+300}', "");
-    Expect(0, 126229, '\p{^Is_Numeric_Value=+300}', "");
-    Expect(0, 126229, '\P{Is_Numeric_Value=+300}', "");
-    Expect(1, 126229, '\P{^Is_Numeric_Value=+300}', "");
-    Expect(0, 126230, '\p{Is_Numeric_Value=+300}', "");
-    Expect(1, 126230, '\p{^Is_Numeric_Value=+300}', "");
-    Expect(1, 126230, '\P{Is_Numeric_Value=+300}', "");
-    Expect(0, 126230, '\P{^Is_Numeric_Value=+300}', "");
-    Expect(1, 126229, '\p{Is_Numeric_Value:3.000000000000000e+02}', "");
-    Expect(0, 126229, '\p{^Is_Numeric_Value:3.000000000000000e+02}', "");
-    Expect(0, 126229, '\P{Is_Numeric_Value:3.000000000000000e+02}', "");
-    Expect(1, 126229, '\P{^Is_Numeric_Value:3.000000000000000e+02}', "");
-    Expect(0, 126230, '\p{Is_Numeric_Value:3.000000000000000e+02}', "");
-    Expect(1, 126230, '\p{^Is_Numeric_Value:3.000000000000000e+02}', "");
-}
-if (!$::TESTCHUNK or $::TESTCHUNK == 3) {
-    Expect(1, 126230, '\P{Is_Numeric_Value:3.000000000000000e+02}', "");
-    Expect(0, 126230, '\P{^Is_Numeric_Value:3.000000000000000e+02}', "");
-    Error('\p{Is_Nv=_00_00_30_0:=}');
-    Error('\P{Is_Nv=_00_00_30_0:=}');
-    Expect(1, 126229, '\p{Is_Nv=0000000300}', "");
-    Expect(0, 126229, '\p{^Is_Nv=0000000300}', "");
-    Expect(0, 126229, '\P{Is_Nv=0000000300}', "");
-    Expect(1, 126229, '\P{^Is_Nv=0000000300}', "");
-    Expect(0, 126230, '\p{Is_Nv=0000000300}', "");
-    Expect(1, 126230, '\p{^Is_Nv=0000000300}', "");
-    Expect(1, 126230, '\P{Is_Nv=0000000300}', "");
-    Expect(0, 126230, '\P{^Is_Nv=0000000300}', "");
+    Error('\p{Is_Numeric_Value=	+300:=}');
+    Error('\P{Is_Numeric_Value=	+300:=}');
+    Expect(1, 126229, '\p{Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(0, 126229, '\p{^Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(0, 126229, '\P{Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(1, 126229, '\P{^Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(0, 126230, '\p{Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(1, 126230, '\p{^Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(1, 126230, '\P{Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(0, 126230, '\P{^Is_Numeric_Value=+000_000_000_300}', "");
+    Expect(1, 126229, '\p{Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(0, 126229, '\p{^Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(0, 126229, '\P{Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(1, 126229, '\P{^Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(0, 126230, '\p{Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(1, 126230, '\p{^Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(1, 126230, '\P{Is_Numeric_Value=3.000000000000000e+02}', "");
+    Expect(0, 126230, '\P{^Is_Numeric_Value=3.000000000000000e+02}', "");
+    Error('\p{Is_Nv=/a/- 0_0_0_0_0_0_300}');
+    Error('\P{Is_Nv=/a/- 0_0_0_0_0_0_300}');
+    Expect(1, 126229, '\p{Is_Nv=+300}', "");
+    Expect(0, 126229, '\p{^Is_Nv=+300}', "");
+    Expect(0, 126229, '\P{Is_Nv=+300}', "");
+    Expect(1, 126229, '\P{^Is_Nv=+300}', "");
+    Expect(0, 126230, '\p{Is_Nv=+300}', "");
+    Expect(1, 126230, '\p{^Is_Nv=+300}', "");
+    Expect(1, 126230, '\P{Is_Nv=+300}', "");
+    Expect(0, 126230, '\P{^Is_Nv=+300}', "");
     Expect(1, 126229, '\p{Is_Nv=3.000000000000000e+02}', "");
     Expect(0, 126229, '\p{^Is_Nv=3.000000000000000e+02}', "");
     Expect(0, 126229, '\P{Is_Nv=3.000000000000000e+02}', "");
@@ -79223,18 +79811,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126230, '\p{^Is_Nv=3.000000000000000e+02}', "");
     Expect(1, 126230, '\P{Is_Nv=3.000000000000000e+02}', "");
     Expect(0, 126230, '\P{^Is_Nv=3.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=/a/__+00000003000}');
-    Error('\P{Numeric_Value=/a/__+00000003000}');
+    Error('\p{Numeric_Value=-	3000/a/}');
+    Error('\P{Numeric_Value=-	3000/a/}');
     Expect(1, 126238, '\p{Numeric_Value=:\A3000\z:}', "");;
     Expect(0, 126239, '\p{Numeric_Value=:\A3000\z:}', "");;
-    Expect(1, 126238, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(0, 126238, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(0, 126238, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(1, 126238, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(0, 126239, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(1, 126239, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(1, 126239, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
-    Expect(0, 126239, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_3_000}', "");
+    Expect(1, 126238, '\p{Numeric_Value=0_0_0_0_3000}', "");
+    Expect(0, 126238, '\p{^Numeric_Value=0_0_0_0_3000}', "");
+    Expect(0, 126238, '\P{Numeric_Value=0_0_0_0_3000}', "");
+    Expect(1, 126238, '\P{^Numeric_Value=0_0_0_0_3000}', "");
+    Expect(0, 126239, '\p{Numeric_Value=0_0_0_0_3000}', "");
+    Expect(1, 126239, '\p{^Numeric_Value=0_0_0_0_3000}', "");
+    Expect(1, 126239, '\P{Numeric_Value=0_0_0_0_3000}', "");
+    Expect(0, 126239, '\P{^Numeric_Value=0_0_0_0_3000}', "");
     Expect(1, 126238, '\p{Numeric_Value=3.000000000000000e+03}', "");
     Expect(0, 126238, '\p{^Numeric_Value=3.000000000000000e+03}', "");
     Expect(0, 126238, '\P{Numeric_Value=3.000000000000000e+03}', "");
@@ -79243,18 +79831,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126239, '\p{^Numeric_Value=3.000000000000000e+03}', "");
     Expect(1, 126239, '\P{Numeric_Value=3.000000000000000e+03}', "");
     Expect(0, 126239, '\P{^Numeric_Value=3.000000000000000e+03}', "");
-    Error('\p{Nv=	 0003000/a/}');
-    Error('\P{Nv=	 0003000/a/}');
+    Error('\p{Nv=_-000003000/a/}');
+    Error('\P{Nv=_-000003000/a/}');
     Expect(1, 126238, '\p{Nv=:\A3000\z:}', "");;
     Expect(0, 126239, '\p{Nv=:\A3000\z:}', "");;
-    Expect(1, 126238, '\p{Nv=+003000}', "");
-    Expect(0, 126238, '\p{^Nv=+003000}', "");
-    Expect(0, 126238, '\P{Nv=+003000}', "");
-    Expect(1, 126238, '\P{^Nv=+003000}', "");
-    Expect(0, 126239, '\p{Nv=+003000}', "");
-    Expect(1, 126239, '\p{^Nv=+003000}', "");
-    Expect(1, 126239, '\P{Nv=+003000}', "");
-    Expect(0, 126239, '\P{^Nv=+003000}', "");
+    Expect(1, 126238, '\p{Nv=+0_3_0_00}', "");
+    Expect(0, 126238, '\p{^Nv=+0_3_0_00}', "");
+    Expect(0, 126238, '\P{Nv=+0_3_0_00}', "");
+    Expect(1, 126238, '\P{^Nv=+0_3_0_00}', "");
+    Expect(0, 126239, '\p{Nv=+0_3_0_00}', "");
+    Expect(1, 126239, '\p{^Nv=+0_3_0_00}', "");
+    Expect(1, 126239, '\P{Nv=+0_3_0_00}', "");
+    Expect(0, 126239, '\P{^Nv=+0_3_0_00}', "");
     Expect(1, 126238, '\p{Nv=3.000000000000000e+03}', "");
     Expect(0, 126238, '\p{^Nv=3.000000000000000e+03}', "");
     Expect(0, 126238, '\P{Nv=3.000000000000000e+03}', "");
@@ -79263,16 +79851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126239, '\p{^Nv=3.000000000000000e+03}', "");
     Expect(1, 126239, '\P{Nv=3.000000000000000e+03}', "");
     Expect(0, 126239, '\P{^Nv=3.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value=-/a/0003000}');
-    Error('\P{Is_Numeric_Value=-/a/0003000}');
-    Expect(1, 126238, '\p{Is_Numeric_Value:	3000}', "");
-    Expect(0, 126238, '\p{^Is_Numeric_Value:	3000}', "");
-    Expect(0, 126238, '\P{Is_Numeric_Value:	3000}', "");
-    Expect(1, 126238, '\P{^Is_Numeric_Value:	3000}', "");
-    Expect(0, 126239, '\p{Is_Numeric_Value:	3000}', "");
-    Expect(1, 126239, '\p{^Is_Numeric_Value:	3000}', "");
-    Expect(1, 126239, '\P{Is_Numeric_Value:	3000}', "");
-    Expect(0, 126239, '\P{^Is_Numeric_Value:	3000}', "");
+    Error('\p{Is_Numeric_Value=__0000003000/a/}');
+    Error('\P{Is_Numeric_Value=__0000003000/a/}');
+    Expect(1, 126238, '\p{Is_Numeric_Value=00000003000}', "");
+    Expect(0, 126238, '\p{^Is_Numeric_Value=00000003000}', "");
+    Expect(0, 126238, '\P{Is_Numeric_Value=00000003000}', "");
+    Expect(1, 126238, '\P{^Is_Numeric_Value=00000003000}', "");
+    Expect(0, 126239, '\p{Is_Numeric_Value=00000003000}', "");
+    Expect(1, 126239, '\p{^Is_Numeric_Value=00000003000}', "");
+    Expect(1, 126239, '\P{Is_Numeric_Value=00000003000}', "");
+    Expect(0, 126239, '\P{^Is_Numeric_Value=00000003000}', "");
     Expect(1, 126238, '\p{Is_Numeric_Value=3.000000000000000e+03}', "");
     Expect(0, 126238, '\p{^Is_Numeric_Value=3.000000000000000e+03}', "");
     Expect(0, 126238, '\P{Is_Numeric_Value=3.000000000000000e+03}', "");
@@ -79281,16 +79869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126239, '\p{^Is_Numeric_Value=3.000000000000000e+03}', "");
     Expect(1, 126239, '\P{Is_Numeric_Value=3.000000000000000e+03}', "");
     Expect(0, 126239, '\P{^Is_Numeric_Value=3.000000000000000e+03}', "");
-    Error('\p{Is_Nv:			0000003000:=}');
-    Error('\P{Is_Nv:			0000003000:=}');
-    Expect(1, 126238, '\p{Is_Nv=+003000}', "");
-    Expect(0, 126238, '\p{^Is_Nv=+003000}', "");
-    Expect(0, 126238, '\P{Is_Nv=+003000}', "");
-    Expect(1, 126238, '\P{^Is_Nv=+003000}', "");
-    Expect(0, 126239, '\p{Is_Nv=+003000}', "");
-    Expect(1, 126239, '\p{^Is_Nv=+003000}', "");
-    Expect(1, 126239, '\P{Is_Nv=+003000}', "");
-    Expect(0, 126239, '\P{^Is_Nv=+003000}', "");
+    Error('\p{Is_Nv=	:=+00_00_03_000}');
+    Error('\P{Is_Nv=	:=+00_00_03_000}');
+    Expect(1, 126238, '\p{Is_Nv=003000}', "");
+    Expect(0, 126238, '\p{^Is_Nv=003000}', "");
+    Expect(0, 126238, '\P{Is_Nv=003000}', "");
+    Expect(1, 126238, '\P{^Is_Nv=003000}', "");
+    Expect(0, 126239, '\p{Is_Nv=003000}', "");
+    Expect(1, 126239, '\p{^Is_Nv=003000}', "");
+    Expect(1, 126239, '\P{Is_Nv=003000}', "");
+    Expect(0, 126239, '\P{^Is_Nv=003000}', "");
     Expect(1, 126238, '\p{Is_Nv=3.000000000000000e+03}', "");
     Expect(0, 126238, '\p{^Is_Nv=3.000000000000000e+03}', "");
     Expect(0, 126238, '\P{Is_Nv=3.000000000000000e+03}', "");
@@ -79299,18 +79887,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126239, '\p{^Is_Nv=3.000000000000000e+03}', "");
     Expect(1, 126239, '\P{Is_Nv=3.000000000000000e+03}', "");
     Expect(0, 126239, '\P{^Is_Nv=3.000000000000000e+03}', "");
-    Error('\p{Numeric_Value=_030000:=}');
-    Error('\P{Numeric_Value=_030000:=}');
+    Error('\p{Numeric_Value:   -_0000030000/a/}');
+    Error('\P{Numeric_Value:   -_0000030000/a/}');
     Expect(1, 126247, '\p{Numeric_Value=:\A30000\z:}', "");;
     Expect(0, 126248, '\p{Numeric_Value=:\A30000\z:}', "");;
-    Expect(1, 126247, '\p{Numeric_Value=00030000}', "");
-    Expect(0, 126247, '\p{^Numeric_Value=00030000}', "");
-    Expect(0, 126247, '\P{Numeric_Value=00030000}', "");
-    Expect(1, 126247, '\P{^Numeric_Value=00030000}', "");
-    Expect(0, 126248, '\p{Numeric_Value=00030000}', "");
-    Expect(1, 126248, '\p{^Numeric_Value=00030000}', "");
-    Expect(1, 126248, '\P{Numeric_Value=00030000}', "");
-    Expect(0, 126248, '\P{^Numeric_Value=00030000}', "");
+    Expect(1, 126247, '\p{Numeric_Value:   +00000000030000}', "");
+    Expect(0, 126247, '\p{^Numeric_Value:   +00000000030000}', "");
+    Expect(0, 126247, '\P{Numeric_Value:   +00000000030000}', "");
+    Expect(1, 126247, '\P{^Numeric_Value:   +00000000030000}', "");
+    Expect(0, 126248, '\p{Numeric_Value:   +00000000030000}', "");
+    Expect(1, 126248, '\p{^Numeric_Value:   +00000000030000}', "");
+    Expect(1, 126248, '\P{Numeric_Value:   +00000000030000}', "");
+    Expect(0, 126248, '\P{^Numeric_Value:   +00000000030000}', "");
     Expect(1, 126247, '\p{Numeric_Value=3.000000000000000e+04}', "");
     Expect(0, 126247, '\p{^Numeric_Value=3.000000000000000e+04}', "");
     Expect(0, 126247, '\P{Numeric_Value=3.000000000000000e+04}', "");
@@ -79319,18 +79907,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126248, '\p{^Numeric_Value=3.000000000000000e+04}', "");
     Expect(1, 126248, '\P{Numeric_Value=3.000000000000000e+04}', "");
     Expect(0, 126248, '\P{^Numeric_Value=3.000000000000000e+04}', "");
-    Error('\p{Nv= 003_000_0/a/}');
-    Error('\P{Nv= 003_000_0/a/}');
+    Error('\p{Nv=/a/  0_0_0_0_3_0000}');
+    Error('\P{Nv=/a/  0_0_0_0_3_0000}');
     Expect(1, 126247, '\p{Nv=:\A30000\z:}', "");;
     Expect(0, 126248, '\p{Nv=:\A30000\z:}', "");;
-    Expect(1, 126247, '\p{Nv=00030000}', "");
-    Expect(0, 126247, '\p{^Nv=00030000}', "");
-    Expect(0, 126247, '\P{Nv=00030000}', "");
-    Expect(1, 126247, '\P{^Nv=00030000}', "");
-    Expect(0, 126248, '\p{Nv=00030000}', "");
-    Expect(1, 126248, '\p{^Nv=00030000}', "");
-    Expect(1, 126248, '\P{Nv=00030000}', "");
-    Expect(0, 126248, '\P{^Nv=00030000}', "");
+    Expect(1, 126247, '\p{Nv=0000000030000}', "");
+    Expect(0, 126247, '\p{^Nv=0000000030000}', "");
+    Expect(0, 126247, '\P{Nv=0000000030000}', "");
+    Expect(1, 126247, '\P{^Nv=0000000030000}', "");
+    Expect(0, 126248, '\p{Nv=0000000030000}', "");
+    Expect(1, 126248, '\p{^Nv=0000000030000}', "");
+    Expect(1, 126248, '\P{Nv=0000000030000}', "");
+    Expect(0, 126248, '\P{^Nv=0000000030000}', "");
     Expect(1, 126247, '\p{Nv=3.000000000000000e+04}', "");
     Expect(0, 126247, '\p{^Nv=3.000000000000000e+04}', "");
     Expect(0, 126247, '\P{Nv=3.000000000000000e+04}', "");
@@ -79339,16 +79927,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126248, '\p{^Nv=3.000000000000000e+04}', "");
     Expect(1, 126248, '\P{Nv=3.000000000000000e+04}', "");
     Expect(0, 126248, '\P{^Nv=3.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value=:=-0_0_0_0_0_0_30000}');
-    Error('\P{Is_Numeric_Value=:=-0_0_0_0_0_0_30000}');
-    Expect(1, 126247, '\p{Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(0, 126247, '\p{^Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(0, 126247, '\P{Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(1, 126247, '\P{^Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(0, 126248, '\p{Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(1, 126248, '\p{^Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(1, 126248, '\P{Is_Numeric_Value=0_0_0_3_0000}', "");
-    Expect(0, 126248, '\P{^Is_Numeric_Value=0_0_0_3_0000}', "");
+    Error('\p{Is_Numeric_Value: /a/_-0_0_0_3_0_0_00}');
+    Error('\P{Is_Numeric_Value: /a/_-0_0_0_3_0_0_00}');
+}
+if (!$::TESTCHUNK or $::TESTCHUNK == 3) {
+    Expect(1, 126247, '\p{Is_Numeric_Value=00030000}', "");
+    Expect(0, 126247, '\p{^Is_Numeric_Value=00030000}', "");
+    Expect(0, 126247, '\P{Is_Numeric_Value=00030000}', "");
+    Expect(1, 126247, '\P{^Is_Numeric_Value=00030000}', "");
+    Expect(0, 126248, '\p{Is_Numeric_Value=00030000}', "");
+    Expect(1, 126248, '\p{^Is_Numeric_Value=00030000}', "");
+    Expect(1, 126248, '\P{Is_Numeric_Value=00030000}', "");
+    Expect(0, 126248, '\P{^Is_Numeric_Value=00030000}', "");
     Expect(1, 126247, '\p{Is_Numeric_Value=3.000000000000000e+04}', "");
     Expect(0, 126247, '\p{^Is_Numeric_Value=3.000000000000000e+04}', "");
     Expect(0, 126247, '\P{Is_Numeric_Value=3.000000000000000e+04}', "");
@@ -79357,16 +79947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126248, '\p{^Is_Numeric_Value=3.000000000000000e+04}', "");
     Expect(1, 126248, '\P{Is_Numeric_Value=3.000000000000000e+04}', "");
     Expect(0, 126248, '\P{^Is_Numeric_Value=3.000000000000000e+04}', "");
-    Error('\p{Is_Nv=	/a/+00000030000}');
-    Error('\P{Is_Nv=	/a/+00000030000}');
-    Expect(1, 126247, '\p{Is_Nv=0000030000}', "");
-    Expect(0, 126247, '\p{^Is_Nv=0000030000}', "");
-    Expect(0, 126247, '\P{Is_Nv=0000030000}', "");
-    Expect(1, 126247, '\P{^Is_Nv=0000030000}', "");
-    Expect(0, 126248, '\p{Is_Nv=0000030000}', "");
-    Expect(1, 126248, '\p{^Is_Nv=0000030000}', "");
-    Expect(1, 126248, '\P{Is_Nv=0000030000}', "");
-    Expect(0, 126248, '\P{^Is_Nv=0000030000}', "");
+    Error('\p{Is_Nv=_:=+30000}');
+    Error('\P{Is_Nv=_:=+30000}');
+    Expect(1, 126247, '\p{Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(0, 126247, '\p{^Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(0, 126247, '\P{Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(1, 126247, '\P{^Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(0, 126248, '\p{Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(1, 126248, '\p{^Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(1, 126248, '\P{Is_Nv=+0_0_0_0_0_0_3_0000}', "");
+    Expect(0, 126248, '\P{^Is_Nv=+0_0_0_0_0_0_3_0000}', "");
     Expect(1, 126247, '\p{Is_Nv=3.000000000000000e+04}', "");
     Expect(0, 126247, '\p{^Is_Nv=3.000000000000000e+04}', "");
     Expect(0, 126247, '\P{Is_Nv=3.000000000000000e+04}', "");
@@ -79375,18 +79965,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126248, '\p{^Is_Nv=3.000000000000000e+04}', "");
     Expect(1, 126248, '\P{Is_Nv=3.000000000000000e+04}', "");
     Expect(0, 126248, '\P{^Is_Nv=3.000000000000000e+04}', "");
-    Error('\p{Numeric_Value=  000000300000/a/}');
-    Error('\P{Numeric_Value=  000000300000/a/}');
+    Error('\p{Numeric_Value=/a/ 	000000300000}');
+    Error('\P{Numeric_Value=/a/ 	000000300000}');
     Expect(1, 68079, '\p{Numeric_Value=:\A300000\z:}', "");;
     Expect(0, 68080, '\p{Numeric_Value=:\A300000\z:}', "");;
-    Expect(1, 68079, '\p{Numeric_Value=000000000300000}', "");
-    Expect(0, 68079, '\p{^Numeric_Value=000000000300000}', "");
-    Expect(0, 68079, '\P{Numeric_Value=000000000300000}', "");
-    Expect(1, 68079, '\P{^Numeric_Value=000000000300000}', "");
-    Expect(0, 68080, '\p{Numeric_Value=000000000300000}', "");
-    Expect(1, 68080, '\p{^Numeric_Value=000000000300000}', "");
-    Expect(1, 68080, '\P{Numeric_Value=000000000300000}', "");
-    Expect(0, 68080, '\P{^Numeric_Value=000000000300000}', "");
+    Expect(1, 68079, '\p{Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(0, 68079, '\p{^Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(0, 68079, '\P{Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(1, 68079, '\P{^Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(0, 68080, '\p{Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(1, 68080, '\p{^Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(1, 68080, '\P{Numeric_Value=0_0_3_0_0_000}', "");
+    Expect(0, 68080, '\P{^Numeric_Value=0_0_3_0_0_000}', "");
     Expect(1, 68079, '\p{Numeric_Value=3.000000000000000e+05}', "");
     Expect(0, 68079, '\p{^Numeric_Value=3.000000000000000e+05}', "");
     Expect(0, 68079, '\P{Numeric_Value=3.000000000000000e+05}', "");
@@ -79395,18 +79985,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68080, '\p{^Numeric_Value=3.000000000000000e+05}', "");
     Expect(1, 68080, '\P{Numeric_Value=3.000000000000000e+05}', "");
     Expect(0, 68080, '\P{^Numeric_Value=3.000000000000000e+05}', "");
-    Error('\p{Nv= /a/000000000300000}');
-    Error('\P{Nv= /a/000000000300000}');
+    Error('\p{Nv=:=  +030000_0}');
+    Error('\P{Nv=:=  +030000_0}');
     Expect(1, 68079, '\p{Nv=:\A300000\z:}', "");;
     Expect(0, 68080, '\p{Nv=:\A300000\z:}', "");;
-    Expect(1, 68079, '\p{Nv=000300000}', "");
-    Expect(0, 68079, '\p{^Nv=000300000}', "");
-    Expect(0, 68079, '\P{Nv=000300000}', "");
-    Expect(1, 68079, '\P{^Nv=000300000}', "");
-    Expect(0, 68080, '\p{Nv=000300000}', "");
-    Expect(1, 68080, '\p{^Nv=000300000}', "");
-    Expect(1, 68080, '\P{Nv=000300000}', "");
-    Expect(0, 68080, '\P{^Nv=000300000}', "");
+    Expect(1, 68079, '\p{Nv=00000300000}', "");
+    Expect(0, 68079, '\p{^Nv=00000300000}', "");
+    Expect(0, 68079, '\P{Nv=00000300000}', "");
+    Expect(1, 68079, '\P{^Nv=00000300000}', "");
+    Expect(0, 68080, '\p{Nv=00000300000}', "");
+    Expect(1, 68080, '\p{^Nv=00000300000}', "");
+    Expect(1, 68080, '\P{Nv=00000300000}', "");
+    Expect(0, 68080, '\P{^Nv=00000300000}', "");
     Expect(1, 68079, '\p{Nv=3.000000000000000e+05}', "");
     Expect(0, 68079, '\p{^Nv=3.000000000000000e+05}', "");
     Expect(0, 68079, '\P{Nv=3.000000000000000e+05}', "");
@@ -79415,16 +80005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68080, '\p{^Nv=3.000000000000000e+05}', "");
     Expect(1, 68080, '\P{Nv=3.000000000000000e+05}', "");
     Expect(0, 68080, '\P{^Nv=3.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=:=0_0_0_0_0_0_3_0_0_000}');
-    Error('\P{Is_Numeric_Value=:=0_0_0_0_0_0_3_0_0_000}');
-    Expect(1, 68079, '\p{Is_Numeric_Value: +0300000}', "");
-    Expect(0, 68079, '\p{^Is_Numeric_Value: +0300000}', "");
-    Expect(0, 68079, '\P{Is_Numeric_Value: +0300000}', "");
-    Expect(1, 68079, '\P{^Is_Numeric_Value: +0300000}', "");
-    Expect(0, 68080, '\p{Is_Numeric_Value: +0300000}', "");
-    Expect(1, 68080, '\p{^Is_Numeric_Value: +0300000}', "");
-    Expect(1, 68080, '\P{Is_Numeric_Value: +0300000}', "");
-    Expect(0, 68080, '\P{^Is_Numeric_Value: +0300000}', "");
+    Error('\p{Is_Numeric_Value=	/a/+0300000}');
+    Error('\P{Is_Numeric_Value=	/a/+0300000}');
+    Expect(1, 68079, '\p{Is_Numeric_Value=000300000}', "");
+    Expect(0, 68079, '\p{^Is_Numeric_Value=000300000}', "");
+    Expect(0, 68079, '\P{Is_Numeric_Value=000300000}', "");
+    Expect(1, 68079, '\P{^Is_Numeric_Value=000300000}', "");
+    Expect(0, 68080, '\p{Is_Numeric_Value=000300000}', "");
+    Expect(1, 68080, '\p{^Is_Numeric_Value=000300000}', "");
+    Expect(1, 68080, '\P{Is_Numeric_Value=000300000}', "");
+    Expect(0, 68080, '\P{^Is_Numeric_Value=000300000}', "");
     Expect(1, 68079, '\p{Is_Numeric_Value=3.000000000000000e+05}', "");
     Expect(0, 68079, '\p{^Is_Numeric_Value=3.000000000000000e+05}', "");
     Expect(0, 68079, '\P{Is_Numeric_Value=3.000000000000000e+05}', "");
@@ -79433,16 +80023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68080, '\p{^Is_Numeric_Value=3.000000000000000e+05}', "");
     Expect(1, 68080, '\P{Is_Numeric_Value=3.000000000000000e+05}', "");
     Expect(0, 68080, '\P{^Is_Numeric_Value=3.000000000000000e+05}', "");
-    Error('\p{Is_Nv=	/a/00_00_00_00_03_00000}');
-    Error('\P{Is_Nv=	/a/00_00_00_00_03_00000}');
-    Expect(1, 68079, '\p{Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(0, 68079, '\p{^Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(0, 68079, '\P{Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(1, 68079, '\P{^Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(0, 68080, '\p{Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(1, 68080, '\p{^Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(1, 68080, '\P{Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
-    Expect(0, 68080, '\P{^Is_Nv=+0_0_0_0_3_0_0_0_00}', "");
+    Error('\p{Is_Nv=/a/003_000_00}');
+    Error('\P{Is_Nv=/a/003_000_00}');
+    Expect(1, 68079, '\p{Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(0, 68079, '\p{^Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(0, 68079, '\P{Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(1, 68079, '\P{^Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(0, 68080, '\p{Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(1, 68080, '\p{^Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(1, 68080, '\P{Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
+    Expect(0, 68080, '\P{^Is_Nv=0_0_0_0_0_0_0_0_300000}', "");
     Expect(1, 68079, '\p{Is_Nv=3.000000000000000e+05}', "");
     Expect(0, 68079, '\p{^Is_Nv=3.000000000000000e+05}', "");
     Expect(0, 68079, '\P{Is_Nv=3.000000000000000e+05}', "");
@@ -79451,18 +80041,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68080, '\p{^Is_Nv=3.000000000000000e+05}', "");
     Expect(1, 68080, '\P{Is_Nv=3.000000000000000e+05}', "");
     Expect(0, 68080, '\P{^Is_Nv=3.000000000000000e+05}', "");
-    Error('\p{Numeric_Value=/a/		3_1}');
-    Error('\P{Numeric_Value=/a/		3_1}');
+    Error('\p{Numeric_Value=-	0_0_0_0_0_00031:=}');
+    Error('\P{Numeric_Value=-	0_0_0_0_0_00031:=}');
     Expect(1, 12891, '\p{Numeric_Value=:\A31\z:}', "");;
     Expect(0, 12892, '\p{Numeric_Value=:\A31\z:}', "");;
-    Expect(1, 12891, '\p{Numeric_Value=3_1}', "");
-    Expect(0, 12891, '\p{^Numeric_Value=3_1}', "");
-    Expect(0, 12891, '\P{Numeric_Value=3_1}', "");
-    Expect(1, 12891, '\P{^Numeric_Value=3_1}', "");
-    Expect(0, 12892, '\p{Numeric_Value=3_1}', "");
-    Expect(1, 12892, '\p{^Numeric_Value=3_1}', "");
-    Expect(1, 12892, '\P{Numeric_Value=3_1}', "");
-    Expect(0, 12892, '\P{^Numeric_Value=3_1}', "");
+    Expect(1, 12891, '\p{Numeric_Value=000_003_1}', "");
+    Expect(0, 12891, '\p{^Numeric_Value=000_003_1}', "");
+    Expect(0, 12891, '\P{Numeric_Value=000_003_1}', "");
+    Expect(1, 12891, '\P{^Numeric_Value=000_003_1}', "");
+    Expect(0, 12892, '\p{Numeric_Value=000_003_1}', "");
+    Expect(1, 12892, '\p{^Numeric_Value=000_003_1}', "");
+    Expect(1, 12892, '\P{Numeric_Value=000_003_1}', "");
+    Expect(0, 12892, '\P{^Numeric_Value=000_003_1}', "");
     Expect(1, 12891, '\p{Numeric_Value=3.100000000000000e+01}', "");
     Expect(0, 12891, '\p{^Numeric_Value=3.100000000000000e+01}', "");
     Expect(0, 12891, '\P{Numeric_Value=3.100000000000000e+01}', "");
@@ -79471,36 +80061,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12892, '\p{^Numeric_Value=3.100000000000000e+01}', "");
     Expect(1, 12892, '\P{Numeric_Value=3.100000000000000e+01}', "");
     Expect(0, 12892, '\P{^Numeric_Value=3.100000000000000e+01}', "");
-    Error('\p{Nv=/a/	+0_0_0_0_0_031}');
-    Error('\P{Nv=/a/	+0_0_0_0_0_031}');
+    Error('\p{Nv=:=_-00_03_1}');
+    Error('\P{Nv=:=_-00_03_1}');
     Expect(1, 12891, '\p{Nv=:\A31\z:}', "");;
     Expect(0, 12892, '\p{Nv=:\A31\z:}', "");;
-    Expect(1, 12891, '\p{Nv=00000031}', "");
-    Expect(0, 12891, '\p{^Nv=00000031}', "");
-    Expect(0, 12891, '\P{Nv=00000031}', "");
-    Expect(1, 12891, '\P{^Nv=00000031}', "");
-    Expect(0, 12892, '\p{Nv=00000031}', "");
-    Expect(1, 12892, '\p{^Nv=00000031}', "");
-    Expect(1, 12892, '\P{Nv=00000031}', "");
-    Expect(0, 12892, '\P{^Nv=00000031}', "");
-    Expect(1, 12891, '\p{Nv=3.100000000000000e+01}', "");
-    Expect(0, 12891, '\p{^Nv=3.100000000000000e+01}', "");
-    Expect(0, 12891, '\P{Nv=3.100000000000000e+01}', "");
-    Expect(1, 12891, '\P{^Nv=3.100000000000000e+01}', "");
-    Expect(0, 12892, '\p{Nv=3.100000000000000e+01}', "");
-    Expect(1, 12892, '\p{^Nv=3.100000000000000e+01}', "");
-    Expect(1, 12892, '\P{Nv=3.100000000000000e+01}', "");
-    Expect(0, 12892, '\P{^Nv=3.100000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=--031/a/}');
-    Error('\P{Is_Numeric_Value=--031/a/}');
-    Expect(1, 12891, '\p{Is_Numeric_Value=031}', "");
-    Expect(0, 12891, '\p{^Is_Numeric_Value=031}', "");
-    Expect(0, 12891, '\P{Is_Numeric_Value=031}', "");
-    Expect(1, 12891, '\P{^Is_Numeric_Value=031}', "");
-    Expect(0, 12892, '\p{Is_Numeric_Value=031}', "");
-    Expect(1, 12892, '\p{^Is_Numeric_Value=031}', "");
-    Expect(1, 12892, '\P{Is_Numeric_Value=031}', "");
-    Expect(0, 12892, '\P{^Is_Numeric_Value=031}', "");
+    Expect(1, 12891, '\p{Nv=+0000000031}', "");
+    Expect(0, 12891, '\p{^Nv=+0000000031}', "");
+    Expect(0, 12891, '\P{Nv=+0000000031}', "");
+    Expect(1, 12891, '\P{^Nv=+0000000031}', "");
+    Expect(0, 12892, '\p{Nv=+0000000031}', "");
+    Expect(1, 12892, '\p{^Nv=+0000000031}', "");
+    Expect(1, 12892, '\P{Nv=+0000000031}', "");
+    Expect(0, 12892, '\P{^Nv=+0000000031}', "");
+    Expect(1, 12891, '\p{Nv: 3.100000000000000e+01}', "");
+    Expect(0, 12891, '\p{^Nv: 3.100000000000000e+01}', "");
+    Expect(0, 12891, '\P{Nv: 3.100000000000000e+01}', "");
+    Expect(1, 12891, '\P{^Nv: 3.100000000000000e+01}', "");
+    Expect(0, 12892, '\p{Nv: 3.100000000000000e+01}', "");
+    Expect(1, 12892, '\p{^Nv: 3.100000000000000e+01}', "");
+    Expect(1, 12892, '\P{Nv: 3.100000000000000e+01}', "");
+    Expect(0, 12892, '\P{^Nv: 3.100000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value=/a/  +0000031}');
+    Error('\P{Is_Numeric_Value=/a/  +0000031}');
+    Expect(1, 12891, '\p{Is_Numeric_Value=+0000031}', "");
+    Expect(0, 12891, '\p{^Is_Numeric_Value=+0000031}', "");
+    Expect(0, 12891, '\P{Is_Numeric_Value=+0000031}', "");
+    Expect(1, 12891, '\P{^Is_Numeric_Value=+0000031}', "");
+    Expect(0, 12892, '\p{Is_Numeric_Value=+0000031}', "");
+    Expect(1, 12892, '\p{^Is_Numeric_Value=+0000031}', "");
+    Expect(1, 12892, '\P{Is_Numeric_Value=+0000031}', "");
+    Expect(0, 12892, '\P{^Is_Numeric_Value=+0000031}', "");
     Expect(1, 12891, '\p{Is_Numeric_Value=3.100000000000000e+01}', "");
     Expect(0, 12891, '\p{^Is_Numeric_Value=3.100000000000000e+01}', "");
     Expect(0, 12891, '\P{Is_Numeric_Value=3.100000000000000e+01}', "");
@@ -79509,16 +80099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12892, '\p{^Is_Numeric_Value=3.100000000000000e+01}', "");
     Expect(1, 12892, '\P{Is_Numeric_Value=3.100000000000000e+01}', "");
     Expect(0, 12892, '\P{^Is_Numeric_Value=3.100000000000000e+01}', "");
-    Error('\p{Is_Nv=:=	+3_1}');
-    Error('\P{Is_Nv=:=	+3_1}');
-    Expect(1, 12891, '\p{Is_Nv=+00031}', "");
-    Expect(0, 12891, '\p{^Is_Nv=+00031}', "");
-    Expect(0, 12891, '\P{Is_Nv=+00031}', "");
-    Expect(1, 12891, '\P{^Is_Nv=+00031}', "");
-    Expect(0, 12892, '\p{Is_Nv=+00031}', "");
-    Expect(1, 12892, '\p{^Is_Nv=+00031}', "");
-    Expect(1, 12892, '\P{Is_Nv=+00031}', "");
-    Expect(0, 12892, '\P{^Is_Nv=+00031}', "");
+    Error('\p{Is_Nv=	-+31/a/}');
+    Error('\P{Is_Nv=	-+31/a/}');
+    Expect(1, 12891, '\p{Is_Nv=00_00_00_00_031}', "");
+    Expect(0, 12891, '\p{^Is_Nv=00_00_00_00_031}', "");
+    Expect(0, 12891, '\P{Is_Nv=00_00_00_00_031}', "");
+    Expect(1, 12891, '\P{^Is_Nv=00_00_00_00_031}', "");
+    Expect(0, 12892, '\p{Is_Nv=00_00_00_00_031}', "");
+    Expect(1, 12892, '\p{^Is_Nv=00_00_00_00_031}', "");
+    Expect(1, 12892, '\P{Is_Nv=00_00_00_00_031}', "");
+    Expect(0, 12892, '\P{^Is_Nv=00_00_00_00_031}', "");
     Expect(1, 12891, '\p{Is_Nv=3.100000000000000e+01}', "");
     Expect(0, 12891, '\p{^Is_Nv=3.100000000000000e+01}', "");
     Expect(0, 12891, '\P{Is_Nv=3.100000000000000e+01}', "");
@@ -79527,18 +80117,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12892, '\p{^Is_Nv=3.100000000000000e+01}', "");
     Expect(1, 12892, '\P{Is_Nv=3.100000000000000e+01}', "");
     Expect(0, 12892, '\P{^Is_Nv=3.100000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/0_0_0_0_0_0_0_0_32}');
-    Error('\P{Numeric_Value=/a/0_0_0_0_0_0_0_0_32}');
+    Error('\p{Numeric_Value= _0032:=}');
+    Error('\P{Numeric_Value= _0032:=}');
     Expect(1, 12892, '\p{Numeric_Value=:\A32\z:}', "");;
     Expect(0, 12893, '\p{Numeric_Value=:\A32\z:}', "");;
-    Expect(1, 12892, '\p{Numeric_Value=03_2}', "");
-    Expect(0, 12892, '\p{^Numeric_Value=03_2}', "");
-    Expect(0, 12892, '\P{Numeric_Value=03_2}', "");
-    Expect(1, 12892, '\P{^Numeric_Value=03_2}', "");
-    Expect(0, 12893, '\p{Numeric_Value=03_2}', "");
-    Expect(1, 12893, '\p{^Numeric_Value=03_2}', "");
-    Expect(1, 12893, '\P{Numeric_Value=03_2}', "");
-    Expect(0, 12893, '\P{^Numeric_Value=03_2}', "");
+    Expect(1, 12892, '\p{Numeric_Value=+0_0_0_032}', "");
+    Expect(0, 12892, '\p{^Numeric_Value=+0_0_0_032}', "");
+    Expect(0, 12892, '\P{Numeric_Value=+0_0_0_032}', "");
+    Expect(1, 12892, '\P{^Numeric_Value=+0_0_0_032}', "");
+    Expect(0, 12893, '\p{Numeric_Value=+0_0_0_032}', "");
+    Expect(1, 12893, '\p{^Numeric_Value=+0_0_0_032}', "");
+    Expect(1, 12893, '\P{Numeric_Value=+0_0_0_032}', "");
+    Expect(0, 12893, '\P{^Numeric_Value=+0_0_0_032}', "");
     Expect(1, 12892, '\p{Numeric_Value=3.200000000000000e+01}', "");
     Expect(0, 12892, '\p{^Numeric_Value=3.200000000000000e+01}', "");
     Expect(0, 12892, '\P{Numeric_Value=3.200000000000000e+01}', "");
@@ -79547,18 +80137,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12893, '\p{^Numeric_Value=3.200000000000000e+01}', "");
     Expect(1, 12893, '\P{Numeric_Value=3.200000000000000e+01}', "");
     Expect(0, 12893, '\P{^Numeric_Value=3.200000000000000e+01}', "");
-    Error('\p{Nv:	0000000003_2:=}');
-    Error('\P{Nv:	0000000003_2:=}');
+    Error('\p{Nv= /a/00_00_00_32}');
+    Error('\P{Nv= /a/00_00_00_32}');
     Expect(1, 12892, '\p{Nv=:\A32\z:}', "");;
     Expect(0, 12893, '\p{Nv=:\A32\z:}', "");;
-    Expect(1, 12892, '\p{Nv=+0_0_0_32}', "");
-    Expect(0, 12892, '\p{^Nv=+0_0_0_32}', "");
-    Expect(0, 12892, '\P{Nv=+0_0_0_32}', "");
-    Expect(1, 12892, '\P{^Nv=+0_0_0_32}', "");
-    Expect(0, 12893, '\p{Nv=+0_0_0_32}', "");
-    Expect(1, 12893, '\p{^Nv=+0_0_0_32}', "");
-    Expect(1, 12893, '\P{Nv=+0_0_0_32}', "");
-    Expect(0, 12893, '\P{^Nv=+0_0_0_32}', "");
+    Expect(1, 12892, '\p{Nv=000032}', "");
+    Expect(0, 12892, '\p{^Nv=000032}', "");
+    Expect(0, 12892, '\P{Nv=000032}', "");
+    Expect(1, 12892, '\P{^Nv=000032}', "");
+    Expect(0, 12893, '\p{Nv=000032}', "");
+    Expect(1, 12893, '\p{^Nv=000032}', "");
+    Expect(1, 12893, '\P{Nv=000032}', "");
+    Expect(0, 12893, '\P{^Nv=000032}', "");
     Expect(1, 12892, '\p{Nv=3.200000000000000e+01}', "");
     Expect(0, 12892, '\p{^Nv=3.200000000000000e+01}', "");
     Expect(0, 12892, '\P{Nv=3.200000000000000e+01}', "");
@@ -79567,54 +80157,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12893, '\p{^Nv=3.200000000000000e+01}', "");
     Expect(1, 12893, '\P{Nv=3.200000000000000e+01}', "");
     Expect(0, 12893, '\P{^Nv=3.200000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_/a/32}');
-    Error('\P{Is_Numeric_Value=_/a/32}');
-    Expect(1, 12892, '\p{Is_Numeric_Value=0000032}', "");
-    Expect(0, 12892, '\p{^Is_Numeric_Value=0000032}', "");
-    Expect(0, 12892, '\P{Is_Numeric_Value=0000032}', "");
-    Expect(1, 12892, '\P{^Is_Numeric_Value=0000032}', "");
-    Expect(0, 12893, '\p{Is_Numeric_Value=0000032}', "");
-    Expect(1, 12893, '\p{^Is_Numeric_Value=0000032}', "");
-    Expect(1, 12893, '\P{Is_Numeric_Value=0000032}', "");
-    Expect(0, 12893, '\P{^Is_Numeric_Value=0000032}', "");
-    Expect(1, 12892, '\p{Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(0, 12892, '\p{^Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(0, 12892, '\P{Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(1, 12892, '\P{^Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(0, 12893, '\p{Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(1, 12893, '\p{^Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(1, 12893, '\P{Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Expect(0, 12893, '\P{^Is_Numeric_Value: 3.200000000000000e+01}', "");
-    Error('\p{Is_Nv=	_0_0_0_0_0_0_32:=}');
-    Error('\P{Is_Nv=	_0_0_0_0_0_0_32:=}');
-    Expect(1, 12892, '\p{Is_Nv=0000_0000_32}', "");
-    Expect(0, 12892, '\p{^Is_Nv=0000_0000_32}', "");
-    Expect(0, 12892, '\P{Is_Nv=0000_0000_32}', "");
-    Expect(1, 12892, '\P{^Is_Nv=0000_0000_32}', "");
-    Expect(0, 12893, '\p{Is_Nv=0000_0000_32}', "");
-    Expect(1, 12893, '\p{^Is_Nv=0000_0000_32}', "");
-    Expect(1, 12893, '\P{Is_Nv=0000_0000_32}', "");
-    Expect(0, 12893, '\P{^Is_Nv=0000_0000_32}', "");
-    Expect(1, 12892, '\p{Is_Nv:	3.200000000000000e+01}', "");
-    Expect(0, 12892, '\p{^Is_Nv:	3.200000000000000e+01}', "");
-    Expect(0, 12892, '\P{Is_Nv:	3.200000000000000e+01}', "");
-    Expect(1, 12892, '\P{^Is_Nv:	3.200000000000000e+01}', "");
-    Expect(0, 12893, '\p{Is_Nv:	3.200000000000000e+01}', "");
-    Expect(1, 12893, '\p{^Is_Nv:	3.200000000000000e+01}', "");
-    Expect(1, 12893, '\P{Is_Nv:	3.200000000000000e+01}', "");
-    Expect(0, 12893, '\P{^Is_Nv:	3.200000000000000e+01}', "");
-    Error('\p{Numeric_Value=	 0033:=}');
-    Error('\P{Numeric_Value=	 0033:=}');
+    Error('\p{Is_Numeric_Value=:=	_00_03_2}');
+    Error('\P{Is_Numeric_Value=:=	_00_03_2}');
+    Expect(1, 12892, '\p{Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(0, 12892, '\p{^Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(0, 12892, '\P{Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(1, 12892, '\P{^Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(0, 12893, '\p{Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(1, 12893, '\p{^Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(1, 12893, '\P{Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(0, 12893, '\P{^Is_Numeric_Value:	000_000_003_2}', "");
+    Expect(1, 12892, '\p{Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(0, 12892, '\p{^Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(0, 12892, '\P{Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(1, 12892, '\P{^Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(0, 12893, '\p{Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(1, 12893, '\p{^Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(1, 12893, '\P{Is_Numeric_Value=3.200000000000000e+01}', "");
+    Expect(0, 12893, '\P{^Is_Numeric_Value=3.200000000000000e+01}', "");
+    Error('\p{Is_Nv= 	+3_2/a/}');
+    Error('\P{Is_Nv= 	+3_2/a/}');
+    Expect(1, 12892, '\p{Is_Nv=+000_000_003_2}', "");
+    Expect(0, 12892, '\p{^Is_Nv=+000_000_003_2}', "");
+    Expect(0, 12892, '\P{Is_Nv=+000_000_003_2}', "");
+    Expect(1, 12892, '\P{^Is_Nv=+000_000_003_2}', "");
+    Expect(0, 12893, '\p{Is_Nv=+000_000_003_2}', "");
+    Expect(1, 12893, '\p{^Is_Nv=+000_000_003_2}', "");
+    Expect(1, 12893, '\P{Is_Nv=+000_000_003_2}', "");
+    Expect(0, 12893, '\P{^Is_Nv=+000_000_003_2}', "");
+    Expect(1, 12892, '\p{Is_Nv=3.200000000000000e+01}', "");
+    Expect(0, 12892, '\p{^Is_Nv=3.200000000000000e+01}', "");
+    Expect(0, 12892, '\P{Is_Nv=3.200000000000000e+01}', "");
+    Expect(1, 12892, '\P{^Is_Nv=3.200000000000000e+01}', "");
+    Expect(0, 12893, '\p{Is_Nv=3.200000000000000e+01}', "");
+    Expect(1, 12893, '\p{^Is_Nv=3.200000000000000e+01}', "");
+    Expect(1, 12893, '\P{Is_Nv=3.200000000000000e+01}', "");
+    Expect(0, 12893, '\P{^Is_Nv=3.200000000000000e+01}', "");
+    Error('\p{Numeric_Value= 03_3:=}');
+    Error('\P{Numeric_Value= 03_3:=}');
     Expect(1, 12893, '\p{Numeric_Value=:\A33\z:}', "");;
     Expect(0, 12894, '\p{Numeric_Value=:\A33\z:}', "");;
-    Expect(1, 12893, '\p{Numeric_Value=00_00_00_00_33}', "");
-    Expect(0, 12893, '\p{^Numeric_Value=00_00_00_00_33}', "");
-    Expect(0, 12893, '\P{Numeric_Value=00_00_00_00_33}', "");
-    Expect(1, 12893, '\P{^Numeric_Value=00_00_00_00_33}', "");
-    Expect(0, 12894, '\p{Numeric_Value=00_00_00_00_33}', "");
-    Expect(1, 12894, '\p{^Numeric_Value=00_00_00_00_33}', "");
-    Expect(1, 12894, '\P{Numeric_Value=00_00_00_00_33}', "");
-    Expect(0, 12894, '\P{^Numeric_Value=00_00_00_00_33}', "");
+    Expect(1, 12893, '\p{Numeric_Value:	+003_3}', "");
+    Expect(0, 12893, '\p{^Numeric_Value:	+003_3}', "");
+    Expect(0, 12893, '\P{Numeric_Value:	+003_3}', "");
+    Expect(1, 12893, '\P{^Numeric_Value:	+003_3}', "");
+    Expect(0, 12894, '\p{Numeric_Value:	+003_3}', "");
+    Expect(1, 12894, '\p{^Numeric_Value:	+003_3}', "");
+    Expect(1, 12894, '\P{Numeric_Value:	+003_3}', "");
+    Expect(0, 12894, '\P{^Numeric_Value:	+003_3}', "");
     Expect(1, 12893, '\p{Numeric_Value=3.300000000000000e+01}', "");
     Expect(0, 12893, '\p{^Numeric_Value=3.300000000000000e+01}', "");
     Expect(0, 12893, '\P{Numeric_Value=3.300000000000000e+01}', "");
@@ -79623,18 +80213,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12894, '\p{^Numeric_Value=3.300000000000000e+01}', "");
     Expect(1, 12894, '\P{Numeric_Value=3.300000000000000e+01}', "");
     Expect(0, 12894, '\P{^Numeric_Value=3.300000000000000e+01}', "");
-    Error('\p{Nv=:=- +0_0_0_0_0_0_33}');
-    Error('\P{Nv=:=- +0_0_0_0_0_0_33}');
+    Error('\p{Nv=_:=+00_00_33}');
+    Error('\P{Nv=_:=+00_00_33}');
     Expect(1, 12893, '\p{Nv=:\A33\z:}', "");;
     Expect(0, 12894, '\p{Nv=:\A33\z:}', "");;
-    Expect(1, 12893, '\p{Nv=+00033}', "");
-    Expect(0, 12893, '\p{^Nv=+00033}', "");
-    Expect(0, 12893, '\P{Nv=+00033}', "");
-    Expect(1, 12893, '\P{^Nv=+00033}', "");
-    Expect(0, 12894, '\p{Nv=+00033}', "");
-    Expect(1, 12894, '\p{^Nv=+00033}', "");
-    Expect(1, 12894, '\P{Nv=+00033}', "");
-    Expect(0, 12894, '\P{^Nv=+00033}', "");
+    Expect(1, 12893, '\p{Nv=000033}', "");
+    Expect(0, 12893, '\p{^Nv=000033}', "");
+    Expect(0, 12893, '\P{Nv=000033}', "");
+    Expect(1, 12893, '\P{^Nv=000033}', "");
+    Expect(0, 12894, '\p{Nv=000033}', "");
+    Expect(1, 12894, '\p{^Nv=000033}', "");
+    Expect(1, 12894, '\P{Nv=000033}', "");
+    Expect(0, 12894, '\P{^Nv=000033}', "");
     Expect(1, 12893, '\p{Nv=3.300000000000000e+01}', "");
     Expect(0, 12893, '\p{^Nv=3.300000000000000e+01}', "");
     Expect(0, 12893, '\P{Nv=3.300000000000000e+01}', "");
@@ -79643,34 +80233,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12894, '\p{^Nv=3.300000000000000e+01}', "");
     Expect(1, 12894, '\P{Nv=3.300000000000000e+01}', "");
     Expect(0, 12894, '\P{^Nv=3.300000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value= :=+00_00_00_33}');
-    Error('\P{Is_Numeric_Value= :=+00_00_00_33}');
-    Expect(1, 12893, '\p{Is_Numeric_Value=000033}', "");
-    Expect(0, 12893, '\p{^Is_Numeric_Value=000033}', "");
-    Expect(0, 12893, '\P{Is_Numeric_Value=000033}', "");
-    Expect(1, 12893, '\P{^Is_Numeric_Value=000033}', "");
-    Expect(0, 12894, '\p{Is_Numeric_Value=000033}', "");
-    Expect(1, 12894, '\p{^Is_Numeric_Value=000033}', "");
-    Expect(1, 12894, '\P{Is_Numeric_Value=000033}', "");
-    Expect(0, 12894, '\P{^Is_Numeric_Value=000033}', "");
-    Expect(1, 12893, '\p{Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(0, 12893, '\p{^Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(0, 12893, '\P{Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(1, 12893, '\P{^Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(0, 12894, '\p{Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(1, 12894, '\p{^Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(1, 12894, '\P{Is_Numeric_Value=3.300000000000000e+01}', "");
-    Expect(0, 12894, '\P{^Is_Numeric_Value=3.300000000000000e+01}', "");
-    Error('\p{Is_Nv= _00_00_33:=}');
-    Error('\P{Is_Nv= _00_00_33:=}');
-    Expect(1, 12893, '\p{Is_Nv=0_0_0_0_0_33}', "");
-    Expect(0, 12893, '\p{^Is_Nv=0_0_0_0_0_33}', "");
-    Expect(0, 12893, '\P{Is_Nv=0_0_0_0_0_33}', "");
-    Expect(1, 12893, '\P{^Is_Nv=0_0_0_0_0_33}', "");
-    Expect(0, 12894, '\p{Is_Nv=0_0_0_0_0_33}', "");
-    Expect(1, 12894, '\p{^Is_Nv=0_0_0_0_0_33}', "");
-    Expect(1, 12894, '\P{Is_Nv=0_0_0_0_0_33}', "");
-    Expect(0, 12894, '\P{^Is_Nv=0_0_0_0_0_33}', "");
+    Error('\p{Is_Numeric_Value=/a/	 0_0_0_0_0_0_0_0_33}');
+    Error('\P{Is_Numeric_Value=/a/	 0_0_0_0_0_0_0_0_33}');
+    Expect(1, 12893, '\p{Is_Numeric_Value=0033}', "");
+    Expect(0, 12893, '\p{^Is_Numeric_Value=0033}', "");
+    Expect(0, 12893, '\P{Is_Numeric_Value=0033}', "");
+    Expect(1, 12893, '\P{^Is_Numeric_Value=0033}', "");
+    Expect(0, 12894, '\p{Is_Numeric_Value=0033}', "");
+    Expect(1, 12894, '\p{^Is_Numeric_Value=0033}', "");
+    Expect(1, 12894, '\P{Is_Numeric_Value=0033}', "");
+    Expect(0, 12894, '\P{^Is_Numeric_Value=0033}', "");
+    Expect(1, 12893, '\p{Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(0, 12893, '\p{^Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(0, 12893, '\P{Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(1, 12893, '\P{^Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(0, 12894, '\p{Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(1, 12894, '\p{^Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(1, 12894, '\P{Is_Numeric_Value:3.300000000000000e+01}', "");
+    Expect(0, 12894, '\P{^Is_Numeric_Value:3.300000000000000e+01}', "");
+    Error('\p{Is_Nv=/a/_00033}');
+    Error('\P{Is_Nv=/a/_00033}');
+    Expect(1, 12893, '\p{Is_Nv=+0000000033}', "");
+    Expect(0, 12893, '\p{^Is_Nv=+0000000033}', "");
+    Expect(0, 12893, '\P{Is_Nv=+0000000033}', "");
+    Expect(1, 12893, '\P{^Is_Nv=+0000000033}', "");
+    Expect(0, 12894, '\p{Is_Nv=+0000000033}', "");
+    Expect(1, 12894, '\p{^Is_Nv=+0000000033}', "");
+    Expect(1, 12894, '\P{Is_Nv=+0000000033}', "");
+    Expect(0, 12894, '\P{^Is_Nv=+0000000033}', "");
     Expect(1, 12893, '\p{Is_Nv=3.300000000000000e+01}', "");
     Expect(0, 12893, '\p{^Is_Nv=3.300000000000000e+01}', "");
     Expect(0, 12893, '\P{Is_Nv=3.300000000000000e+01}', "");
@@ -79679,18 +80269,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12894, '\p{^Is_Nv=3.300000000000000e+01}', "");
     Expect(1, 12894, '\P{Is_Nv=3.300000000000000e+01}', "");
     Expect(0, 12894, '\P{^Is_Nv=3.300000000000000e+01}', "");
-    Error('\p{Numeric_Value=	 0_0_0_0_0_0_034/a/}');
-    Error('\P{Numeric_Value=	 0_0_0_0_0_0_034/a/}');
+    Error('\p{Numeric_Value=:=	_0_0_0_0_0_0_0034}');
+    Error('\P{Numeric_Value=:=	_0_0_0_0_0_0_0034}');
     Expect(1, 12894, '\p{Numeric_Value=:\A34\z:}', "");;
     Expect(0, 12895, '\p{Numeric_Value=:\A34\z:}', "");;
-    Expect(1, 12894, '\p{Numeric_Value=0_0_0_34}', "");
-    Expect(0, 12894, '\p{^Numeric_Value=0_0_0_34}', "");
-    Expect(0, 12894, '\P{Numeric_Value=0_0_0_34}', "");
-    Expect(1, 12894, '\P{^Numeric_Value=0_0_0_34}', "");
-    Expect(0, 12895, '\p{Numeric_Value=0_0_0_34}', "");
-    Expect(1, 12895, '\p{^Numeric_Value=0_0_0_34}', "");
-    Expect(1, 12895, '\P{Numeric_Value=0_0_0_34}', "");
-    Expect(0, 12895, '\P{^Numeric_Value=0_0_0_34}', "");
+    Expect(1, 12894, '\p{Numeric_Value:   00000034}', "");
+    Expect(0, 12894, '\p{^Numeric_Value:   00000034}', "");
+    Expect(0, 12894, '\P{Numeric_Value:   00000034}', "");
+    Expect(1, 12894, '\P{^Numeric_Value:   00000034}', "");
+    Expect(0, 12895, '\p{Numeric_Value:   00000034}', "");
+    Expect(1, 12895, '\p{^Numeric_Value:   00000034}', "");
+    Expect(1, 12895, '\P{Numeric_Value:   00000034}', "");
+    Expect(0, 12895, '\P{^Numeric_Value:   00000034}', "");
     Expect(1, 12894, '\p{Numeric_Value=3.400000000000000e+01}', "");
     Expect(0, 12894, '\p{^Numeric_Value=3.400000000000000e+01}', "");
     Expect(0, 12894, '\P{Numeric_Value=3.400000000000000e+01}', "");
@@ -79699,54 +80289,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12895, '\p{^Numeric_Value=3.400000000000000e+01}', "");
     Expect(1, 12895, '\P{Numeric_Value=3.400000000000000e+01}', "");
     Expect(0, 12895, '\P{^Numeric_Value=3.400000000000000e+01}', "");
-    Error('\p{Nv=:=-_00_00_00_00_03_4}');
-    Error('\P{Nv=:=-_00_00_00_00_03_4}');
+    Error('\p{Nv=:=_-00034}');
+    Error('\P{Nv=:=_-00034}');
     Expect(1, 12894, '\p{Nv=:\A34\z:}', "");;
     Expect(0, 12895, '\p{Nv=:\A34\z:}', "");;
-    Expect(1, 12894, '\p{Nv=+0_0_0_0_0_00034}', "");
-    Expect(0, 12894, '\p{^Nv=+0_0_0_0_0_00034}', "");
-    Expect(0, 12894, '\P{Nv=+0_0_0_0_0_00034}', "");
-    Expect(1, 12894, '\P{^Nv=+0_0_0_0_0_00034}', "");
-    Expect(0, 12895, '\p{Nv=+0_0_0_0_0_00034}', "");
-    Expect(1, 12895, '\p{^Nv=+0_0_0_0_0_00034}', "");
-    Expect(1, 12895, '\P{Nv=+0_0_0_0_0_00034}', "");
-    Expect(0, 12895, '\P{^Nv=+0_0_0_0_0_00034}', "");
-    Expect(1, 12894, '\p{Nv=3.400000000000000e+01}', "");
-    Expect(0, 12894, '\p{^Nv=3.400000000000000e+01}', "");
-    Expect(0, 12894, '\P{Nv=3.400000000000000e+01}', "");
-    Expect(1, 12894, '\P{^Nv=3.400000000000000e+01}', "");
-    Expect(0, 12895, '\p{Nv=3.400000000000000e+01}', "");
-    Expect(1, 12895, '\p{^Nv=3.400000000000000e+01}', "");
-    Expect(1, 12895, '\P{Nv=3.400000000000000e+01}', "");
-    Expect(0, 12895, '\P{^Nv=3.400000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=	-+0000_0000_34/a/}');
-    Error('\P{Is_Numeric_Value=	-+0000_0000_34/a/}');
-    Expect(1, 12894, '\p{Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12894, '\p{^Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12894, '\P{Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12894, '\P{^Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12895, '\p{Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12895, '\p{^Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12895, '\P{Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12895, '\P{^Is_Numeric_Value:   0_0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12894, '\p{Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(0, 12894, '\p{^Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(0, 12894, '\P{Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(1, 12894, '\P{^Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(0, 12895, '\p{Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(1, 12895, '\p{^Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(1, 12895, '\P{Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Expect(0, 12895, '\P{^Is_Numeric_Value: 3.400000000000000e+01}', "");
-    Error('\p{Is_Nv= 00000034/a/}');
-    Error('\P{Is_Nv= 00000034/a/}');
-    Expect(1, 12894, '\p{Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12894, '\p{^Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12894, '\P{Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12894, '\P{^Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12895, '\p{Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12895, '\p{^Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(1, 12895, '\P{Is_Nv=0_0_0_0_0_0_0_0_34}', "");
-    Expect(0, 12895, '\P{^Is_Nv=0_0_0_0_0_0_0_0_34}', "");
+    Expect(1, 12894, '\p{Nv=00_00_00_00_034}', "");
+    Expect(0, 12894, '\p{^Nv=00_00_00_00_034}', "");
+    Expect(0, 12894, '\P{Nv=00_00_00_00_034}', "");
+    Expect(1, 12894, '\P{^Nv=00_00_00_00_034}', "");
+    Expect(0, 12895, '\p{Nv=00_00_00_00_034}', "");
+    Expect(1, 12895, '\p{^Nv=00_00_00_00_034}', "");
+    Expect(1, 12895, '\P{Nv=00_00_00_00_034}', "");
+    Expect(0, 12895, '\P{^Nv=00_00_00_00_034}', "");
+    Expect(1, 12894, '\p{Nv:3.400000000000000e+01}', "");
+    Expect(0, 12894, '\p{^Nv:3.400000000000000e+01}', "");
+    Expect(0, 12894, '\P{Nv:3.400000000000000e+01}', "");
+    Expect(1, 12894, '\P{^Nv:3.400000000000000e+01}', "");
+    Expect(0, 12895, '\p{Nv:3.400000000000000e+01}', "");
+    Expect(1, 12895, '\p{^Nv:3.400000000000000e+01}', "");
+    Expect(1, 12895, '\P{Nv:3.400000000000000e+01}', "");
+    Expect(0, 12895, '\P{^Nv:3.400000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value=/a/--+3_4}');
+    Error('\P{Is_Numeric_Value=/a/--+3_4}');
+    Expect(1, 12894, '\p{Is_Numeric_Value=00_03_4}', "");
+    Expect(0, 12894, '\p{^Is_Numeric_Value=00_03_4}', "");
+    Expect(0, 12894, '\P{Is_Numeric_Value=00_03_4}', "");
+    Expect(1, 12894, '\P{^Is_Numeric_Value=00_03_4}', "");
+    Expect(0, 12895, '\p{Is_Numeric_Value=00_03_4}', "");
+    Expect(1, 12895, '\p{^Is_Numeric_Value=00_03_4}', "");
+    Expect(1, 12895, '\P{Is_Numeric_Value=00_03_4}', "");
+    Expect(0, 12895, '\P{^Is_Numeric_Value=00_03_4}', "");
+    Expect(1, 12894, '\p{Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(0, 12894, '\p{^Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(0, 12894, '\P{Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(1, 12894, '\P{^Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(0, 12895, '\p{Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(1, 12895, '\p{^Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(1, 12895, '\P{Is_Numeric_Value=3.400000000000000e+01}', "");
+    Expect(0, 12895, '\P{^Is_Numeric_Value=3.400000000000000e+01}', "");
+    Error('\p{Is_Nv=/a/ 0_0_0_34}');
+    Error('\P{Is_Nv=/a/ 0_0_0_34}');
+    Expect(1, 12894, '\p{Is_Nv=00_00_00_03_4}', "");
+    Expect(0, 12894, '\p{^Is_Nv=00_00_00_03_4}', "");
+    Expect(0, 12894, '\P{Is_Nv=00_00_00_03_4}', "");
+    Expect(1, 12894, '\P{^Is_Nv=00_00_00_03_4}', "");
+    Expect(0, 12895, '\p{Is_Nv=00_00_00_03_4}', "");
+    Expect(1, 12895, '\p{^Is_Nv=00_00_00_03_4}', "");
+    Expect(1, 12895, '\P{Is_Nv=00_00_00_03_4}', "");
+    Expect(0, 12895, '\P{^Is_Nv=00_00_00_03_4}', "");
     Expect(1, 12894, '\p{Is_Nv=3.400000000000000e+01}', "");
     Expect(0, 12894, '\p{^Is_Nv=3.400000000000000e+01}', "");
     Expect(0, 12894, '\P{Is_Nv=3.400000000000000e+01}', "");
@@ -79755,18 +80345,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12895, '\p{^Is_Nv=3.400000000000000e+01}', "");
     Expect(1, 12895, '\P{Is_Nv=3.400000000000000e+01}', "");
     Expect(0, 12895, '\P{^Is_Nv=3.400000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/  +03_5}');
-    Error('\P{Numeric_Value=/a/  +03_5}');
+    Error('\p{Numeric_Value=_+000000035/a/}');
+    Error('\P{Numeric_Value=_+000000035/a/}');
     Expect(1, 12895, '\p{Numeric_Value=:\A35\z:}', "");;
     Expect(0, 12896, '\p{Numeric_Value=:\A35\z:}', "");;
-    Expect(1, 12895, '\p{Numeric_Value=000000035}', "");
-    Expect(0, 12895, '\p{^Numeric_Value=000000035}', "");
-    Expect(0, 12895, '\P{Numeric_Value=000000035}', "");
-    Expect(1, 12895, '\P{^Numeric_Value=000000035}', "");
-    Expect(0, 12896, '\p{Numeric_Value=000000035}', "");
-    Expect(1, 12896, '\p{^Numeric_Value=000000035}', "");
-    Expect(1, 12896, '\P{Numeric_Value=000000035}', "");
-    Expect(0, 12896, '\P{^Numeric_Value=000000035}', "");
+    Expect(1, 12895, '\p{Numeric_Value=+00003_5}', "");
+    Expect(0, 12895, '\p{^Numeric_Value=+00003_5}', "");
+    Expect(0, 12895, '\P{Numeric_Value=+00003_5}', "");
+    Expect(1, 12895, '\P{^Numeric_Value=+00003_5}', "");
+    Expect(0, 12896, '\p{Numeric_Value=+00003_5}', "");
+    Expect(1, 12896, '\p{^Numeric_Value=+00003_5}', "");
+    Expect(1, 12896, '\P{Numeric_Value=+00003_5}', "");
+    Expect(0, 12896, '\P{^Numeric_Value=+00003_5}', "");
     Expect(1, 12895, '\p{Numeric_Value=3.500000000000000e+01}', "");
     Expect(0, 12895, '\p{^Numeric_Value=3.500000000000000e+01}', "");
     Expect(0, 12895, '\P{Numeric_Value=3.500000000000000e+01}', "");
@@ -79775,18 +80365,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12896, '\p{^Numeric_Value=3.500000000000000e+01}', "");
     Expect(1, 12896, '\P{Numeric_Value=3.500000000000000e+01}', "");
     Expect(0, 12896, '\P{^Numeric_Value=3.500000000000000e+01}', "");
-    Error('\p{Nv=_ 000000035/a/}');
-    Error('\P{Nv=_ 000000035/a/}');
+    Error('\p{Nv=/a/ 000003_5}');
+    Error('\P{Nv=/a/ 000003_5}');
     Expect(1, 12895, '\p{Nv=:\A35\z:}', "");;
     Expect(0, 12896, '\p{Nv=:\A35\z:}', "");;
-    Expect(1, 12895, '\p{Nv=000003_5}', "");
-    Expect(0, 12895, '\p{^Nv=000003_5}', "");
-    Expect(0, 12895, '\P{Nv=000003_5}', "");
-    Expect(1, 12895, '\P{^Nv=000003_5}', "");
-    Expect(0, 12896, '\p{Nv=000003_5}', "");
-    Expect(1, 12896, '\p{^Nv=000003_5}', "");
-    Expect(1, 12896, '\P{Nv=000003_5}', "");
-    Expect(0, 12896, '\P{^Nv=000003_5}', "");
+    Expect(1, 12895, '\p{Nv=3_5}', "");
+    Expect(0, 12895, '\p{^Nv=3_5}', "");
+    Expect(0, 12895, '\P{Nv=3_5}', "");
+    Expect(1, 12895, '\P{^Nv=3_5}', "");
+    Expect(0, 12896, '\p{Nv=3_5}', "");
+    Expect(1, 12896, '\p{^Nv=3_5}', "");
+    Expect(1, 12896, '\P{Nv=3_5}', "");
+    Expect(0, 12896, '\P{^Nv=3_5}', "");
     Expect(1, 12895, '\p{Nv=3.500000000000000e+01}', "");
     Expect(0, 12895, '\p{^Nv=3.500000000000000e+01}', "");
     Expect(0, 12895, '\P{Nv=3.500000000000000e+01}', "");
@@ -79795,34 +80385,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12896, '\p{^Nv=3.500000000000000e+01}', "");
     Expect(1, 12896, '\P{Nv=3.500000000000000e+01}', "");
     Expect(0, 12896, '\P{^Nv=3.500000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value:   	:=35}');
-    Error('\P{Is_Numeric_Value:   	:=35}');
-    Expect(1, 12895, '\p{Is_Numeric_Value=000035}', "");
-    Expect(0, 12895, '\p{^Is_Numeric_Value=000035}', "");
-    Expect(0, 12895, '\P{Is_Numeric_Value=000035}', "");
-    Expect(1, 12895, '\P{^Is_Numeric_Value=000035}', "");
-    Expect(0, 12896, '\p{Is_Numeric_Value=000035}', "");
-    Expect(1, 12896, '\p{^Is_Numeric_Value=000035}', "");
-    Expect(1, 12896, '\P{Is_Numeric_Value=000035}', "");
-    Expect(0, 12896, '\P{^Is_Numeric_Value=000035}', "");
-    Expect(1, 12895, '\p{Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(0, 12895, '\p{^Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(0, 12895, '\P{Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(1, 12895, '\P{^Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(0, 12896, '\p{Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(1, 12896, '\p{^Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(1, 12896, '\P{Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Expect(0, 12896, '\P{^Is_Numeric_Value:   3.500000000000000e+01}', "");
-    Error('\p{Is_Nv: /a/ _35}');
-    Error('\P{Is_Nv: /a/ _35}');
-    Expect(1, 12895, '\p{Is_Nv=003_5}', "");
-    Expect(0, 12895, '\p{^Is_Nv=003_5}', "");
-    Expect(0, 12895, '\P{Is_Nv=003_5}', "");
-    Expect(1, 12895, '\P{^Is_Nv=003_5}', "");
-    Expect(0, 12896, '\p{Is_Nv=003_5}', "");
-    Expect(1, 12896, '\p{^Is_Nv=003_5}', "");
-    Expect(1, 12896, '\P{Is_Nv=003_5}', "");
-    Expect(0, 12896, '\P{^Is_Nv=003_5}', "");
+    Error('\p{Is_Numeric_Value= _+0_0_0_0_0_0_0_0_0_35:=}');
+    Error('\P{Is_Numeric_Value= _+0_0_0_0_0_0_0_0_0_35:=}');
+    Expect(1, 12895, '\p{Is_Numeric_Value=000000035}', "");
+    Expect(0, 12895, '\p{^Is_Numeric_Value=000000035}', "");
+    Expect(0, 12895, '\P{Is_Numeric_Value=000000035}', "");
+    Expect(1, 12895, '\P{^Is_Numeric_Value=000000035}', "");
+    Expect(0, 12896, '\p{Is_Numeric_Value=000000035}', "");
+    Expect(1, 12896, '\p{^Is_Numeric_Value=000000035}', "");
+    Expect(1, 12896, '\P{Is_Numeric_Value=000000035}', "");
+    Expect(0, 12896, '\P{^Is_Numeric_Value=000000035}', "");
+    Expect(1, 12895, '\p{Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(0, 12895, '\p{^Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(0, 12895, '\P{Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(1, 12895, '\P{^Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(0, 12896, '\p{Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(1, 12896, '\p{^Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(1, 12896, '\P{Is_Numeric_Value=3.500000000000000e+01}', "");
+    Expect(0, 12896, '\P{^Is_Numeric_Value=3.500000000000000e+01}', "");
+    Error('\p{Is_Nv= /a/000000035}');
+    Error('\P{Is_Nv= /a/000000035}');
+    Expect(1, 12895, '\p{Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(0, 12895, '\p{^Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(0, 12895, '\P{Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(1, 12895, '\P{^Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(0, 12896, '\p{Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(1, 12896, '\p{^Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(1, 12896, '\P{Is_Nv=0_0_0_0_0_0035}', "");
+    Expect(0, 12896, '\P{^Is_Nv=0_0_0_0_0_0035}', "");
     Expect(1, 12895, '\p{Is_Nv=3.500000000000000e+01}', "");
     Expect(0, 12895, '\p{^Is_Nv=3.500000000000000e+01}', "");
     Expect(0, 12895, '\P{Is_Nv=3.500000000000000e+01}', "");
@@ -79831,38 +80421,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12896, '\p{^Is_Nv=3.500000000000000e+01}', "");
     Expect(1, 12896, '\P{Is_Nv=3.500000000000000e+01}', "");
     Expect(0, 12896, '\P{^Is_Nv=3.500000000000000e+01}', "");
-    Error('\p{Numeric_Value=	:=00000036}');
-    Error('\P{Numeric_Value=	:=00000036}');
+    Error('\p{Numeric_Value=	:=+00036}');
+    Error('\P{Numeric_Value=	:=+00036}');
     Expect(1, 12977, '\p{Numeric_Value=:\A36\z:}', "");;
     Expect(0, 12978, '\p{Numeric_Value=:\A36\z:}', "");;
-    Expect(1, 12977, '\p{Numeric_Value=+00036}', "");
-    Expect(0, 12977, '\p{^Numeric_Value=+00036}', "");
-    Expect(0, 12977, '\P{Numeric_Value=+00036}', "");
-    Expect(1, 12977, '\P{^Numeric_Value=+00036}', "");
-    Expect(0, 12978, '\p{Numeric_Value=+00036}', "");
-    Expect(1, 12978, '\p{^Numeric_Value=+00036}', "");
-    Expect(1, 12978, '\P{Numeric_Value=+00036}', "");
-    Expect(0, 12978, '\P{^Numeric_Value=+00036}', "");
-    Expect(1, 12977, '\p{Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(0, 12977, '\p{^Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(0, 12977, '\P{Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(1, 12977, '\P{^Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(0, 12978, '\p{Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(1, 12978, '\p{^Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(1, 12978, '\P{Numeric_Value:   3.600000000000000e+01}', "");
-    Expect(0, 12978, '\P{^Numeric_Value:   3.600000000000000e+01}', "");
-    Error('\p{Nv=	:=0036}');
-    Error('\P{Nv=	:=0036}');
+    Expect(1, 12977, '\p{Numeric_Value:   +00036}', "");
+    Expect(0, 12977, '\p{^Numeric_Value:   +00036}', "");
+    Expect(0, 12977, '\P{Numeric_Value:   +00036}', "");
+    Expect(1, 12977, '\P{^Numeric_Value:   +00036}', "");
+    Expect(0, 12978, '\p{Numeric_Value:   +00036}', "");
+    Expect(1, 12978, '\p{^Numeric_Value:   +00036}', "");
+    Expect(1, 12978, '\P{Numeric_Value:   +00036}', "");
+    Expect(0, 12978, '\P{^Numeric_Value:   +00036}', "");
+    Expect(1, 12977, '\p{Numeric_Value=3.600000000000000e+01}', "");
+    Expect(0, 12977, '\p{^Numeric_Value=3.600000000000000e+01}', "");
+    Expect(0, 12977, '\P{Numeric_Value=3.600000000000000e+01}', "");
+    Expect(1, 12977, '\P{^Numeric_Value=3.600000000000000e+01}', "");
+    Expect(0, 12978, '\p{Numeric_Value=3.600000000000000e+01}', "");
+    Expect(1, 12978, '\p{^Numeric_Value=3.600000000000000e+01}', "");
+    Expect(1, 12978, '\P{Numeric_Value=3.600000000000000e+01}', "");
+    Expect(0, 12978, '\P{^Numeric_Value=3.600000000000000e+01}', "");
+    Error('\p{Nv=_/a/0000036}');
+    Error('\P{Nv=_/a/0000036}');
     Expect(1, 12977, '\p{Nv=:\A36\z:}', "");;
     Expect(0, 12978, '\p{Nv=:\A36\z:}', "");;
-    Expect(1, 12977, '\p{Nv=+0_0_0_0_0036}', "");
-    Expect(0, 12977, '\p{^Nv=+0_0_0_0_0036}', "");
-    Expect(0, 12977, '\P{Nv=+0_0_0_0_0036}', "");
-    Expect(1, 12977, '\P{^Nv=+0_0_0_0_0036}', "");
-    Expect(0, 12978, '\p{Nv=+0_0_0_0_0036}', "");
-    Expect(1, 12978, '\p{^Nv=+0_0_0_0_0036}', "");
-    Expect(1, 12978, '\P{Nv=+0_0_0_0_0036}', "");
-    Expect(0, 12978, '\P{^Nv=+0_0_0_0_0036}', "");
+    Expect(1, 12977, '\p{Nv=00036}', "");
+    Expect(0, 12977, '\p{^Nv=00036}', "");
+    Expect(0, 12977, '\P{Nv=00036}', "");
+    Expect(1, 12977, '\P{^Nv=00036}', "");
+    Expect(0, 12978, '\p{Nv=00036}', "");
+    Expect(1, 12978, '\p{^Nv=00036}', "");
+    Expect(1, 12978, '\P{Nv=00036}', "");
+    Expect(0, 12978, '\P{^Nv=00036}', "");
     Expect(1, 12977, '\p{Nv=3.600000000000000e+01}', "");
     Expect(0, 12977, '\p{^Nv=3.600000000000000e+01}', "");
     Expect(0, 12977, '\P{Nv=3.600000000000000e+01}', "");
@@ -79871,34 +80461,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12978, '\p{^Nv=3.600000000000000e+01}', "");
     Expect(1, 12978, '\P{Nv=3.600000000000000e+01}', "");
     Expect(0, 12978, '\P{^Nv=3.600000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=:=_-00000036}');
-    Error('\P{Is_Numeric_Value=:=_-00000036}');
-    Expect(1, 12977, '\p{Is_Numeric_Value:   +00036}', "");
-    Expect(0, 12977, '\p{^Is_Numeric_Value:   +00036}', "");
-    Expect(0, 12977, '\P{Is_Numeric_Value:   +00036}', "");
-    Expect(1, 12977, '\P{^Is_Numeric_Value:   +00036}', "");
-    Expect(0, 12978, '\p{Is_Numeric_Value:   +00036}', "");
-    Expect(1, 12978, '\p{^Is_Numeric_Value:   +00036}', "");
-    Expect(1, 12978, '\P{Is_Numeric_Value:   +00036}', "");
-    Expect(0, 12978, '\P{^Is_Numeric_Value:   +00036}', "");
-    Expect(1, 12977, '\p{Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(0, 12977, '\p{^Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(0, 12977, '\P{Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(1, 12977, '\P{^Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(0, 12978, '\p{Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(1, 12978, '\p{^Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(1, 12978, '\P{Is_Numeric_Value=3.600000000000000e+01}', "");
-    Expect(0, 12978, '\P{^Is_Numeric_Value=3.600000000000000e+01}', "");
-    Error('\p{Is_Nv=_+00000_00003_6/a/}');
-    Error('\P{Is_Nv=_+00000_00003_6/a/}');
-    Expect(1, 12977, '\p{Is_Nv=00000000036}', "");
-    Expect(0, 12977, '\p{^Is_Nv=00000000036}', "");
-    Expect(0, 12977, '\P{Is_Nv=00000000036}', "");
-    Expect(1, 12977, '\P{^Is_Nv=00000000036}', "");
-    Expect(0, 12978, '\p{Is_Nv=00000000036}', "");
-    Expect(1, 12978, '\p{^Is_Nv=00000000036}', "");
-    Expect(1, 12978, '\P{Is_Nv=00000000036}', "");
-    Expect(0, 12978, '\P{^Is_Nv=00000000036}', "");
+    Error('\p{Is_Numeric_Value=/a/+0000036}');
+    Error('\P{Is_Numeric_Value=/a/+0000036}');
+    Expect(1, 12977, '\p{Is_Numeric_Value=3_6}', "");
+    Expect(0, 12977, '\p{^Is_Numeric_Value=3_6}', "");
+    Expect(0, 12977, '\P{Is_Numeric_Value=3_6}', "");
+    Expect(1, 12977, '\P{^Is_Numeric_Value=3_6}', "");
+    Expect(0, 12978, '\p{Is_Numeric_Value=3_6}', "");
+    Expect(1, 12978, '\p{^Is_Numeric_Value=3_6}', "");
+    Expect(1, 12978, '\P{Is_Numeric_Value=3_6}', "");
+    Expect(0, 12978, '\P{^Is_Numeric_Value=3_6}', "");
+    Expect(1, 12977, '\p{Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(0, 12977, '\p{^Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(0, 12977, '\P{Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(1, 12977, '\P{^Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(0, 12978, '\p{Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(1, 12978, '\p{^Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(1, 12978, '\P{Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Expect(0, 12978, '\P{^Is_Numeric_Value:   3.600000000000000e+01}', "");
+    Error('\p{Is_Nv=:=	 000036}');
+    Error('\P{Is_Nv=:=	 000036}');
+    Expect(1, 12977, '\p{Is_Nv=00_00_36}', "");
+    Expect(0, 12977, '\p{^Is_Nv=00_00_36}', "");
+    Expect(0, 12977, '\P{Is_Nv=00_00_36}', "");
+    Expect(1, 12977, '\P{^Is_Nv=00_00_36}', "");
+    Expect(0, 12978, '\p{Is_Nv=00_00_36}', "");
+    Expect(1, 12978, '\p{^Is_Nv=00_00_36}', "");
+    Expect(1, 12978, '\P{Is_Nv=00_00_36}', "");
+    Expect(0, 12978, '\P{^Is_Nv=00_00_36}', "");
     Expect(1, 12977, '\p{Is_Nv=3.600000000000000e+01}', "");
     Expect(0, 12977, '\p{^Is_Nv=3.600000000000000e+01}', "");
     Expect(0, 12977, '\P{Is_Nv=3.600000000000000e+01}', "");
@@ -79907,18 +80497,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12978, '\p{^Is_Nv=3.600000000000000e+01}', "");
     Expect(1, 12978, '\P{Is_Nv=3.600000000000000e+01}', "");
     Expect(0, 12978, '\P{^Is_Nv=3.600000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/	-037}');
-    Error('\P{Numeric_Value=/a/	-037}');
+    Error('\p{Numeric_Value=/a/_	0000000037}');
+    Error('\P{Numeric_Value=/a/_	0000000037}');
     Expect(1, 12978, '\p{Numeric_Value=:\A37\z:}', "");;
     Expect(0, 12979, '\p{Numeric_Value=:\A37\z:}', "");;
-    Expect(1, 12978, '\p{Numeric_Value=0037}', "");
-    Expect(0, 12978, '\p{^Numeric_Value=0037}', "");
-    Expect(0, 12978, '\P{Numeric_Value=0037}', "");
-    Expect(1, 12978, '\P{^Numeric_Value=0037}', "");
-    Expect(0, 12979, '\p{Numeric_Value=0037}', "");
-    Expect(1, 12979, '\p{^Numeric_Value=0037}', "");
-    Expect(1, 12979, '\P{Numeric_Value=0037}', "");
-    Expect(0, 12979, '\P{^Numeric_Value=0037}', "");
+    Expect(1, 12978, '\p{Numeric_Value=0003_7}', "");
+    Expect(0, 12978, '\p{^Numeric_Value=0003_7}', "");
+    Expect(0, 12978, '\P{Numeric_Value=0003_7}', "");
+    Expect(1, 12978, '\P{^Numeric_Value=0003_7}', "");
+    Expect(0, 12979, '\p{Numeric_Value=0003_7}', "");
+    Expect(1, 12979, '\p{^Numeric_Value=0003_7}', "");
+    Expect(1, 12979, '\P{Numeric_Value=0003_7}', "");
+    Expect(0, 12979, '\P{^Numeric_Value=0003_7}', "");
     Expect(1, 12978, '\p{Numeric_Value=3.700000000000000e+01}', "");
     Expect(0, 12978, '\p{^Numeric_Value=3.700000000000000e+01}', "");
     Expect(0, 12978, '\P{Numeric_Value=3.700000000000000e+01}', "");
@@ -79927,18 +80517,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12979, '\p{^Numeric_Value=3.700000000000000e+01}', "");
     Expect(1, 12979, '\P{Numeric_Value=3.700000000000000e+01}', "");
     Expect(0, 12979, '\P{^Numeric_Value=3.700000000000000e+01}', "");
-    Error('\p{Nv=-000000037/a/}');
-    Error('\P{Nv=-000000037/a/}');
+    Error('\p{Nv=		00037:=}');
+    Error('\P{Nv=		00037:=}');
     Expect(1, 12978, '\p{Nv=:\A37\z:}', "");;
     Expect(0, 12979, '\p{Nv=:\A37\z:}', "");;
-    Expect(1, 12978, '\p{Nv=+3_7}', "");
-    Expect(0, 12978, '\p{^Nv=+3_7}', "");
-    Expect(0, 12978, '\P{Nv=+3_7}', "");
-    Expect(1, 12978, '\P{^Nv=+3_7}', "");
-    Expect(0, 12979, '\p{Nv=+3_7}', "");
-    Expect(1, 12979, '\p{^Nv=+3_7}', "");
-    Expect(1, 12979, '\P{Nv=+3_7}', "");
-    Expect(0, 12979, '\P{^Nv=+3_7}', "");
+    Expect(1, 12978, '\p{Nv=000000037}', "");
+    Expect(0, 12978, '\p{^Nv=000000037}', "");
+    Expect(0, 12978, '\P{Nv=000000037}', "");
+    Expect(1, 12978, '\P{^Nv=000000037}', "");
+    Expect(0, 12979, '\p{Nv=000000037}', "");
+    Expect(1, 12979, '\p{^Nv=000000037}', "");
+    Expect(1, 12979, '\P{Nv=000000037}', "");
+    Expect(0, 12979, '\P{^Nv=000000037}', "");
     Expect(1, 12978, '\p{Nv=3.700000000000000e+01}', "");
     Expect(0, 12978, '\p{^Nv=3.700000000000000e+01}', "");
     Expect(0, 12978, '\P{Nv=3.700000000000000e+01}', "");
@@ -79947,16 +80537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12979, '\p{^Nv=3.700000000000000e+01}', "");
     Expect(1, 12979, '\P{Nv=3.700000000000000e+01}', "");
     Expect(0, 12979, '\P{^Nv=3.700000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_:=0037}');
-    Error('\P{Is_Numeric_Value=_:=0037}');
-    Expect(1, 12978, '\p{Is_Numeric_Value=0000037}', "");
-    Expect(0, 12978, '\p{^Is_Numeric_Value=0000037}', "");
-    Expect(0, 12978, '\P{Is_Numeric_Value=0000037}', "");
-    Expect(1, 12978, '\P{^Is_Numeric_Value=0000037}', "");
-    Expect(0, 12979, '\p{Is_Numeric_Value=0000037}', "");
-    Expect(1, 12979, '\p{^Is_Numeric_Value=0000037}', "");
-    Expect(1, 12979, '\P{Is_Numeric_Value=0000037}', "");
-    Expect(0, 12979, '\P{^Is_Numeric_Value=0000037}', "");
+    Error('\p{Is_Numeric_Value=--000000037/a/}');
+    Error('\P{Is_Numeric_Value=--000000037/a/}');
+    Expect(1, 12978, '\p{Is_Numeric_Value=000037}', "");
+    Expect(0, 12978, '\p{^Is_Numeric_Value=000037}', "");
+    Expect(0, 12978, '\P{Is_Numeric_Value=000037}', "");
+    Expect(1, 12978, '\P{^Is_Numeric_Value=000037}', "");
+    Expect(0, 12979, '\p{Is_Numeric_Value=000037}', "");
+    Expect(1, 12979, '\p{^Is_Numeric_Value=000037}', "");
+    Expect(1, 12979, '\P{Is_Numeric_Value=000037}', "");
+    Expect(0, 12979, '\P{^Is_Numeric_Value=000037}', "");
     Expect(1, 12978, '\p{Is_Numeric_Value=3.700000000000000e+01}', "");
     Expect(0, 12978, '\p{^Is_Numeric_Value=3.700000000000000e+01}', "");
     Expect(0, 12978, '\P{Is_Numeric_Value=3.700000000000000e+01}', "");
@@ -79965,36 +80555,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12979, '\p{^Is_Numeric_Value=3.700000000000000e+01}', "");
     Expect(1, 12979, '\P{Is_Numeric_Value=3.700000000000000e+01}', "");
     Expect(0, 12979, '\P{^Is_Numeric_Value=3.700000000000000e+01}', "");
-    Error('\p{Is_Nv:   _:=0_0_0_0_0_0_0_0_0_37}');
-    Error('\P{Is_Nv:   _:=0_0_0_0_0_0_0_0_0_37}');
-    Expect(1, 12978, '\p{Is_Nv=03_7}', "");
-    Expect(0, 12978, '\p{^Is_Nv=03_7}', "");
-    Expect(0, 12978, '\P{Is_Nv=03_7}', "");
-    Expect(1, 12978, '\P{^Is_Nv=03_7}', "");
-    Expect(0, 12979, '\p{Is_Nv=03_7}', "");
-    Expect(1, 12979, '\p{^Is_Nv=03_7}', "");
-    Expect(1, 12979, '\P{Is_Nv=03_7}', "");
-    Expect(0, 12979, '\P{^Is_Nv=03_7}', "");
-    Expect(1, 12978, '\p{Is_Nv=3.700000000000000e+01}', "");
-    Expect(0, 12978, '\p{^Is_Nv=3.700000000000000e+01}', "");
-    Expect(0, 12978, '\P{Is_Nv=3.700000000000000e+01}', "");
-    Expect(1, 12978, '\P{^Is_Nv=3.700000000000000e+01}', "");
-    Expect(0, 12979, '\p{Is_Nv=3.700000000000000e+01}', "");
-    Expect(1, 12979, '\p{^Is_Nv=3.700000000000000e+01}', "");
-    Expect(1, 12979, '\P{Is_Nv=3.700000000000000e+01}', "");
-    Expect(0, 12979, '\P{^Is_Nv=3.700000000000000e+01}', "");
-    Error('\p{Numeric_Value: 	:=00_00_38}');
-    Error('\P{Numeric_Value: 	:=00_00_38}');
+    Error('\p{Is_Nv= /a/00000000037}');
+    Error('\P{Is_Nv= /a/00000000037}');
+    Expect(1, 12978, '\p{Is_Nv=0000000037}', "");
+    Expect(0, 12978, '\p{^Is_Nv=0000000037}', "");
+    Expect(0, 12978, '\P{Is_Nv=0000000037}', "");
+    Expect(1, 12978, '\P{^Is_Nv=0000000037}', "");
+    Expect(0, 12979, '\p{Is_Nv=0000000037}', "");
+    Expect(1, 12979, '\p{^Is_Nv=0000000037}', "");
+    Expect(1, 12979, '\P{Is_Nv=0000000037}', "");
+    Expect(0, 12979, '\P{^Is_Nv=0000000037}', "");
+    Expect(1, 12978, '\p{Is_Nv:	3.700000000000000e+01}', "");
+    Expect(0, 12978, '\p{^Is_Nv:	3.700000000000000e+01}', "");
+    Expect(0, 12978, '\P{Is_Nv:	3.700000000000000e+01}', "");
+    Expect(1, 12978, '\P{^Is_Nv:	3.700000000000000e+01}', "");
+    Expect(0, 12979, '\p{Is_Nv:	3.700000000000000e+01}', "");
+    Expect(1, 12979, '\p{^Is_Nv:	3.700000000000000e+01}', "");
+    Expect(1, 12979, '\P{Is_Nv:	3.700000000000000e+01}', "");
+    Expect(0, 12979, '\P{^Is_Nv:	3.700000000000000e+01}', "");
+    Error('\p{Numeric_Value=_	00_00_00_03_8:=}');
+    Error('\P{Numeric_Value=_	00_00_00_03_8:=}');
     Expect(1, 12979, '\p{Numeric_Value=:\A38\z:}', "");;
     Expect(0, 12980, '\p{Numeric_Value=:\A38\z:}', "");;
-    Expect(1, 12979, '\p{Numeric_Value=0038}', "");
-    Expect(0, 12979, '\p{^Numeric_Value=0038}', "");
-    Expect(0, 12979, '\P{Numeric_Value=0038}', "");
-    Expect(1, 12979, '\P{^Numeric_Value=0038}', "");
-    Expect(0, 12980, '\p{Numeric_Value=0038}', "");
-    Expect(1, 12980, '\p{^Numeric_Value=0038}', "");
-    Expect(1, 12980, '\P{Numeric_Value=0038}', "");
-    Expect(0, 12980, '\P{^Numeric_Value=0038}', "");
+    Expect(1, 12979, '\p{Numeric_Value=+000_003_8}', "");
+    Expect(0, 12979, '\p{^Numeric_Value=+000_003_8}', "");
+    Expect(0, 12979, '\P{Numeric_Value=+000_003_8}', "");
+    Expect(1, 12979, '\P{^Numeric_Value=+000_003_8}', "");
+    Expect(0, 12980, '\p{Numeric_Value=+000_003_8}', "");
+    Expect(1, 12980, '\p{^Numeric_Value=+000_003_8}', "");
+    Expect(1, 12980, '\P{Numeric_Value=+000_003_8}', "");
+    Expect(0, 12980, '\P{^Numeric_Value=+000_003_8}', "");
     Expect(1, 12979, '\p{Numeric_Value=3.800000000000000e+01}', "");
     Expect(0, 12979, '\p{^Numeric_Value=3.800000000000000e+01}', "");
     Expect(0, 12979, '\P{Numeric_Value=3.800000000000000e+01}', "");
@@ -80003,18 +80593,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12980, '\p{^Numeric_Value=3.800000000000000e+01}', "");
     Expect(1, 12980, '\P{Numeric_Value=3.800000000000000e+01}', "");
     Expect(0, 12980, '\P{^Numeric_Value=3.800000000000000e+01}', "");
-    Error('\p{Nv:   -_0000038/a/}');
-    Error('\P{Nv:   -_0000038/a/}');
+    Error('\p{Nv:	/a/+0000_0000_38}');
+    Error('\P{Nv:	/a/+0000_0000_38}');
     Expect(1, 12979, '\p{Nv=:\A38\z:}', "");;
     Expect(0, 12980, '\p{Nv=:\A38\z:}', "");;
-    Expect(1, 12979, '\p{Nv:   +00000000038}', "");
-    Expect(0, 12979, '\p{^Nv:   +00000000038}', "");
-    Expect(0, 12979, '\P{Nv:   +00000000038}', "");
-    Expect(1, 12979, '\P{^Nv:   +00000000038}', "");
-    Expect(0, 12980, '\p{Nv:   +00000000038}', "");
-    Expect(1, 12980, '\p{^Nv:   +00000000038}', "");
-    Expect(1, 12980, '\P{Nv:   +00000000038}', "");
-    Expect(0, 12980, '\P{^Nv:   +00000000038}', "");
+    Expect(1, 12979, '\p{Nv=0000038}', "");
+    Expect(0, 12979, '\p{^Nv=0000038}', "");
+    Expect(0, 12979, '\P{Nv=0000038}', "");
+    Expect(1, 12979, '\P{^Nv=0000038}', "");
+    Expect(0, 12980, '\p{Nv=0000038}', "");
+    Expect(1, 12980, '\p{^Nv=0000038}', "");
+    Expect(1, 12980, '\P{Nv=0000038}', "");
+    Expect(0, 12980, '\P{^Nv=0000038}', "");
     Expect(1, 12979, '\p{Nv=3.800000000000000e+01}', "");
     Expect(0, 12979, '\p{^Nv=3.800000000000000e+01}', "");
     Expect(0, 12979, '\P{Nv=3.800000000000000e+01}', "");
@@ -80023,16 +80613,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12980, '\p{^Nv=3.800000000000000e+01}', "");
     Expect(1, 12980, '\P{Nv=3.800000000000000e+01}', "");
     Expect(0, 12980, '\P{^Nv=3.800000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/  0_0_0_038}');
-    Error('\P{Is_Numeric_Value=/a/  0_0_0_038}');
-    Expect(1, 12979, '\p{Is_Numeric_Value=0000000038}', "");
-    Expect(0, 12979, '\p{^Is_Numeric_Value=0000000038}', "");
-    Expect(0, 12979, '\P{Is_Numeric_Value=0000000038}', "");
-    Expect(1, 12979, '\P{^Is_Numeric_Value=0000000038}', "");
-    Expect(0, 12980, '\p{Is_Numeric_Value=0000000038}', "");
-    Expect(1, 12980, '\p{^Is_Numeric_Value=0000000038}', "");
-    Expect(1, 12980, '\P{Is_Numeric_Value=0000000038}', "");
-    Expect(0, 12980, '\P{^Is_Numeric_Value=0000000038}', "");
+    Error('\p{Is_Numeric_Value=/a/ -0_0_0_0_38}');
+    Error('\P{Is_Numeric_Value=/a/ -0_0_0_0_38}');
+    Expect(1, 12979, '\p{Is_Numeric_Value=+03_8}', "");
+    Expect(0, 12979, '\p{^Is_Numeric_Value=+03_8}', "");
+    Expect(0, 12979, '\P{Is_Numeric_Value=+03_8}', "");
+    Expect(1, 12979, '\P{^Is_Numeric_Value=+03_8}', "");
+    Expect(0, 12980, '\p{Is_Numeric_Value=+03_8}', "");
+    Expect(1, 12980, '\p{^Is_Numeric_Value=+03_8}', "");
+    Expect(1, 12980, '\P{Is_Numeric_Value=+03_8}', "");
+    Expect(0, 12980, '\P{^Is_Numeric_Value=+03_8}', "");
     Expect(1, 12979, '\p{Is_Numeric_Value=3.800000000000000e+01}', "");
     Expect(0, 12979, '\p{^Is_Numeric_Value=3.800000000000000e+01}', "");
     Expect(0, 12979, '\P{Is_Numeric_Value=3.800000000000000e+01}', "");
@@ -80041,16 +80631,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12980, '\p{^Is_Numeric_Value=3.800000000000000e+01}', "");
     Expect(1, 12980, '\P{Is_Numeric_Value=3.800000000000000e+01}', "");
     Expect(0, 12980, '\P{^Is_Numeric_Value=3.800000000000000e+01}', "");
-    Error('\p{Is_Nv: /a/_-0_0_0_38}');
-    Error('\P{Is_Nv: /a/_-0_0_0_38}');
-    Expect(1, 12979, '\p{Is_Nv=00038}', "");
-    Expect(0, 12979, '\p{^Is_Nv=00038}', "");
-    Expect(0, 12979, '\P{Is_Nv=00038}', "");
-    Expect(1, 12979, '\P{^Is_Nv=00038}', "");
-    Expect(0, 12980, '\p{Is_Nv=00038}', "");
-    Expect(1, 12980, '\p{^Is_Nv=00038}', "");
-    Expect(1, 12980, '\P{Is_Nv=00038}', "");
-    Expect(0, 12980, '\P{^Is_Nv=00038}', "");
+    Error('\p{Is_Nv=	:=+000003_8}');
+    Error('\P{Is_Nv=	:=+000003_8}');
+    Expect(1, 12979, '\p{Is_Nv=00000038}', "");
+    Expect(0, 12979, '\p{^Is_Nv=00000038}', "");
+    Expect(0, 12979, '\P{Is_Nv=00000038}', "");
+    Expect(1, 12979, '\P{^Is_Nv=00000038}', "");
+    Expect(0, 12980, '\p{Is_Nv=00000038}', "");
+    Expect(1, 12980, '\p{^Is_Nv=00000038}', "");
+    Expect(1, 12980, '\P{Is_Nv=00000038}', "");
+    Expect(0, 12980, '\P{^Is_Nv=00000038}', "");
     Expect(1, 12979, '\p{Is_Nv=3.800000000000000e+01}', "");
     Expect(0, 12979, '\p{^Is_Nv=3.800000000000000e+01}', "");
     Expect(0, 12979, '\P{Is_Nv=3.800000000000000e+01}', "");
@@ -80059,18 +80649,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12980, '\p{^Is_Nv=3.800000000000000e+01}', "");
     Expect(1, 12980, '\P{Is_Nv=3.800000000000000e+01}', "");
     Expect(0, 12980, '\P{^Is_Nv=3.800000000000000e+01}', "");
-    Error('\p{Numeric_Value=_:=+39}');
-    Error('\P{Numeric_Value=_:=+39}');
+    Error('\p{Numeric_Value=/a/+0000000039}');
+    Error('\P{Numeric_Value=/a/+0000000039}');
     Expect(1, 12980, '\p{Numeric_Value=:\A39\z:}', "");;
     Expect(0, 12981, '\p{Numeric_Value=:\A39\z:}', "");;
-    Expect(1, 12980, '\p{Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(0, 12980, '\p{^Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(0, 12980, '\P{Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(1, 12980, '\P{^Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(0, 12981, '\p{Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(1, 12981, '\p{^Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(1, 12981, '\P{Numeric_Value=+0_0_0_0_0_039}', "");
-    Expect(0, 12981, '\P{^Numeric_Value=+0_0_0_0_0_039}', "");
+    Expect(1, 12980, '\p{Numeric_Value=00_03_9}', "");
+    Expect(0, 12980, '\p{^Numeric_Value=00_03_9}', "");
+    Expect(0, 12980, '\P{Numeric_Value=00_03_9}', "");
+    Expect(1, 12980, '\P{^Numeric_Value=00_03_9}', "");
+    Expect(0, 12981, '\p{Numeric_Value=00_03_9}', "");
+    Expect(1, 12981, '\p{^Numeric_Value=00_03_9}', "");
+    Expect(1, 12981, '\P{Numeric_Value=00_03_9}', "");
+    Expect(0, 12981, '\P{^Numeric_Value=00_03_9}', "");
     Expect(1, 12980, '\p{Numeric_Value=3.900000000000000e+01}', "");
     Expect(0, 12980, '\p{^Numeric_Value=3.900000000000000e+01}', "");
     Expect(0, 12980, '\P{Numeric_Value=3.900000000000000e+01}', "");
@@ -80079,18 +80669,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12981, '\p{^Numeric_Value=3.900000000000000e+01}', "");
     Expect(1, 12981, '\P{Numeric_Value=3.900000000000000e+01}', "");
     Expect(0, 12981, '\P{^Numeric_Value=3.900000000000000e+01}', "");
-    Error('\p{Nv=/a/ 	00000039}');
-    Error('\P{Nv=/a/ 	00000039}');
+    Error('\p{Nv=	/a/03_9}');
+    Error('\P{Nv=	/a/03_9}');
     Expect(1, 12980, '\p{Nv=:\A39\z:}', "");;
     Expect(0, 12981, '\p{Nv=:\A39\z:}', "");;
-    Expect(1, 12980, '\p{Nv=0_0_39}', "");
-    Expect(0, 12980, '\p{^Nv=0_0_39}', "");
-    Expect(0, 12980, '\P{Nv=0_0_39}', "");
-    Expect(1, 12980, '\P{^Nv=0_0_39}', "");
-    Expect(0, 12981, '\p{Nv=0_0_39}', "");
-    Expect(1, 12981, '\p{^Nv=0_0_39}', "");
-    Expect(1, 12981, '\P{Nv=0_0_39}', "");
-    Expect(0, 12981, '\P{^Nv=0_0_39}', "");
+    Expect(1, 12980, '\p{Nv:	0000039}', "");
+    Expect(0, 12980, '\p{^Nv:	0000039}', "");
+    Expect(0, 12980, '\P{Nv:	0000039}', "");
+    Expect(1, 12980, '\P{^Nv:	0000039}', "");
+    Expect(0, 12981, '\p{Nv:	0000039}', "");
+    Expect(1, 12981, '\p{^Nv:	0000039}', "");
+    Expect(1, 12981, '\P{Nv:	0000039}', "");
+    Expect(0, 12981, '\P{^Nv:	0000039}', "");
     Expect(1, 12980, '\p{Nv=3.900000000000000e+01}', "");
     Expect(0, 12980, '\p{^Nv=3.900000000000000e+01}', "");
     Expect(0, 12980, '\P{Nv=3.900000000000000e+01}', "");
@@ -80099,16 +80689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12981, '\p{^Nv=3.900000000000000e+01}', "");
     Expect(1, 12981, '\P{Nv=3.900000000000000e+01}', "");
     Expect(0, 12981, '\P{^Nv=3.900000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=:=  +03_9}');
-    Error('\P{Is_Numeric_Value=:=  +03_9}');
-    Expect(1, 12980, '\p{Is_Numeric_Value=0000039}', "");
-    Expect(0, 12980, '\p{^Is_Numeric_Value=0000039}', "");
-    Expect(0, 12980, '\P{Is_Numeric_Value=0000039}', "");
-    Expect(1, 12980, '\P{^Is_Numeric_Value=0000039}', "");
-    Expect(0, 12981, '\p{Is_Numeric_Value=0000039}', "");
-    Expect(1, 12981, '\p{^Is_Numeric_Value=0000039}', "");
-    Expect(1, 12981, '\P{Is_Numeric_Value=0000039}', "");
-    Expect(0, 12981, '\P{^Is_Numeric_Value=0000039}', "");
+    Error('\p{Is_Numeric_Value=__0000039:=}');
+    Error('\P{Is_Numeric_Value=__0000039:=}');
+    Expect(1, 12980, '\p{Is_Numeric_Value: 0000000039}', "");
+    Expect(0, 12980, '\p{^Is_Numeric_Value: 0000000039}', "");
+    Expect(0, 12980, '\P{Is_Numeric_Value: 0000000039}', "");
+    Expect(1, 12980, '\P{^Is_Numeric_Value: 0000000039}', "");
+    Expect(0, 12981, '\p{Is_Numeric_Value: 0000000039}', "");
+    Expect(1, 12981, '\p{^Is_Numeric_Value: 0000000039}', "");
+    Expect(1, 12981, '\P{Is_Numeric_Value: 0000000039}', "");
+    Expect(0, 12981, '\P{^Is_Numeric_Value: 0000000039}', "");
     Expect(1, 12980, '\p{Is_Numeric_Value=3.900000000000000e+01}', "");
     Expect(0, 12980, '\p{^Is_Numeric_Value=3.900000000000000e+01}', "");
     Expect(0, 12980, '\P{Is_Numeric_Value=3.900000000000000e+01}', "");
@@ -80117,16 +80707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12981, '\p{^Is_Numeric_Value=3.900000000000000e+01}', "");
     Expect(1, 12981, '\P{Is_Numeric_Value=3.900000000000000e+01}', "");
     Expect(0, 12981, '\P{^Is_Numeric_Value=3.900000000000000e+01}', "");
-    Error('\p{Is_Nv=	/a/+039}');
-    Error('\P{Is_Nv=	/a/+039}');
-    Expect(1, 12980, '\p{Is_Nv=00039}', "");
-    Expect(0, 12980, '\p{^Is_Nv=00039}', "");
-    Expect(0, 12980, '\P{Is_Nv=00039}', "");
-    Expect(1, 12980, '\P{^Is_Nv=00039}', "");
-    Expect(0, 12981, '\p{Is_Nv=00039}', "");
-    Expect(1, 12981, '\p{^Is_Nv=00039}', "");
-    Expect(1, 12981, '\P{Is_Nv=00039}', "");
-    Expect(0, 12981, '\P{^Is_Nv=00039}', "");
+    Error('\p{Is_Nv: :=	0_0_0_0_0_039}');
+    Error('\P{Is_Nv: :=	0_0_0_0_0_039}');
+    Expect(1, 12980, '\p{Is_Nv=+0039}', "");
+    Expect(0, 12980, '\p{^Is_Nv=+0039}', "");
+    Expect(0, 12980, '\P{Is_Nv=+0039}', "");
+    Expect(1, 12980, '\P{^Is_Nv=+0039}', "");
+    Expect(0, 12981, '\p{Is_Nv=+0039}', "");
+    Expect(1, 12981, '\p{^Is_Nv=+0039}', "");
+    Expect(1, 12981, '\P{Is_Nv=+0039}', "");
+    Expect(0, 12981, '\P{^Is_Nv=+0039}', "");
     Expect(1, 12980, '\p{Is_Nv=3.900000000000000e+01}', "");
     Expect(0, 12980, '\p{^Is_Nv=3.900000000000000e+01}', "");
     Expect(0, 12980, '\P{Is_Nv=3.900000000000000e+01}', "");
@@ -80135,38 +80725,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12981, '\p{^Is_Nv=3.900000000000000e+01}', "");
     Expect(1, 12981, '\P{Is_Nv=3.900000000000000e+01}', "");
     Expect(0, 12981, '\P{^Is_Nv=3.900000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/00_4}');
-    Error('\P{Numeric_Value=/a/00_4}');
+    Error('\p{Numeric_Value: :=	00000004}');
+    Error('\P{Numeric_Value: :=	00000004}');
     Expect(1, 156269, '\p{Numeric_Value=:\A4\z:}', "");;
     Expect(0, 156270, '\p{Numeric_Value=:\A4\z:}', "");;
-    Expect(1, 156269, '\p{Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(0, 156269, '\p{^Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(0, 156269, '\P{Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(1, 156269, '\P{^Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(0, 156270, '\p{Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(1, 156270, '\p{^Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(1, 156270, '\P{Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(0, 156270, '\P{^Numeric_Value=0_0_0_0_0_0004}', "");
-    Expect(1, 156269, '\p{Numeric_Value=4.000000000000000e+00}', "");
-    Expect(0, 156269, '\p{^Numeric_Value=4.000000000000000e+00}', "");
-    Expect(0, 156269, '\P{Numeric_Value=4.000000000000000e+00}', "");
-    Expect(1, 156269, '\P{^Numeric_Value=4.000000000000000e+00}', "");
-    Expect(0, 156270, '\p{Numeric_Value=4.000000000000000e+00}', "");
-    Expect(1, 156270, '\p{^Numeric_Value=4.000000000000000e+00}', "");
-    Expect(1, 156270, '\P{Numeric_Value=4.000000000000000e+00}', "");
-    Expect(0, 156270, '\P{^Numeric_Value=4.000000000000000e+00}', "");
-    Error('\p{Nv=-	0_0_0_0_0_0004:=}');
-    Error('\P{Nv=-	0_0_0_0_0_0004:=}');
+    Expect(1, 156269, '\p{Numeric_Value=000000004}', "");
+    Expect(0, 156269, '\p{^Numeric_Value=000000004}', "");
+    Expect(0, 156269, '\P{Numeric_Value=000000004}', "");
+    Expect(1, 156269, '\P{^Numeric_Value=000000004}', "");
+    Expect(0, 156270, '\p{Numeric_Value=000000004}', "");
+    Expect(1, 156270, '\p{^Numeric_Value=000000004}', "");
+    Expect(1, 156270, '\P{Numeric_Value=000000004}', "");
+    Expect(0, 156270, '\P{^Numeric_Value=000000004}', "");
+    Expect(1, 156269, '\p{Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(0, 156269, '\p{^Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(0, 156269, '\P{Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(1, 156269, '\P{^Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(0, 156270, '\p{Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(1, 156270, '\p{^Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(1, 156270, '\P{Numeric_Value:   4.000000000000000e+00}', "");
+    Expect(0, 156270, '\P{^Numeric_Value:   4.000000000000000e+00}', "");
+    Error('\p{Nv=_:=000004}');
+    Error('\P{Nv=_:=000004}');
     Expect(1, 156269, '\p{Nv=:\A4\z:}', "");;
     Expect(0, 156270, '\p{Nv=:\A4\z:}', "");;
-    Expect(1, 156269, '\p{Nv=00_00_04}', "");
-    Expect(0, 156269, '\p{^Nv=00_00_04}', "");
-    Expect(0, 156269, '\P{Nv=00_00_04}', "");
-    Expect(1, 156269, '\P{^Nv=00_00_04}', "");
-    Expect(0, 156270, '\p{Nv=00_00_04}', "");
-    Expect(1, 156270, '\p{^Nv=00_00_04}', "");
-    Expect(1, 156270, '\P{Nv=00_00_04}', "");
-    Expect(0, 156270, '\P{^Nv=00_00_04}', "");
+    Expect(1, 156269, '\p{Nv=00000004}', "");
+    Expect(0, 156269, '\p{^Nv=00000004}', "");
+    Expect(0, 156269, '\P{Nv=00000004}', "");
+    Expect(1, 156269, '\P{^Nv=00000004}', "");
+    Expect(0, 156270, '\p{Nv=00000004}', "");
+    Expect(1, 156270, '\p{^Nv=00000004}', "");
+    Expect(1, 156270, '\P{Nv=00000004}', "");
+    Expect(0, 156270, '\P{^Nv=00000004}', "");
     Expect(1, 156269, '\p{Nv=4.000000000000000e+00}', "");
     Expect(0, 156269, '\p{^Nv=4.000000000000000e+00}', "");
     Expect(0, 156269, '\P{Nv=4.000000000000000e+00}', "");
@@ -80175,34 +80765,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 156270, '\p{^Nv=4.000000000000000e+00}', "");
     Expect(1, 156270, '\P{Nv=4.000000000000000e+00}', "");
     Expect(0, 156270, '\P{^Nv=4.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=:=_-000_4}');
-    Error('\P{Is_Numeric_Value=:=_-000_4}');
-    Expect(1, 156269, '\p{Is_Numeric_Value=+000000004}', "");
-    Expect(0, 156269, '\p{^Is_Numeric_Value=+000000004}', "");
-    Expect(0, 156269, '\P{Is_Numeric_Value=+000000004}', "");
-    Expect(1, 156269, '\P{^Is_Numeric_Value=+000000004}', "");
-    Expect(0, 156270, '\p{Is_Numeric_Value=+000000004}', "");
-    Expect(1, 156270, '\p{^Is_Numeric_Value=+000000004}', "");
-    Expect(1, 156270, '\P{Is_Numeric_Value=+000000004}', "");
-    Expect(0, 156270, '\P{^Is_Numeric_Value=+000000004}', "");
-    Expect(1, 156269, '\p{Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(0, 156269, '\p{^Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(0, 156269, '\P{Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(1, 156269, '\P{^Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(0, 156270, '\p{Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(1, 156270, '\p{^Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(1, 156270, '\P{Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Expect(0, 156270, '\P{^Is_Numeric_Value: 4.000000000000000e+00}', "");
-    Error('\p{Is_Nv=/a/  +000004}');
-    Error('\P{Is_Nv=/a/  +000004}');
-    Expect(1, 156269, '\p{Is_Nv=+000004}', "");
-    Expect(0, 156269, '\p{^Is_Nv=+000004}', "");
-    Expect(0, 156269, '\P{Is_Nv=+000004}', "");
-    Expect(1, 156269, '\P{^Is_Nv=+000004}', "");
-    Expect(0, 156270, '\p{Is_Nv=+000004}', "");
-    Expect(1, 156270, '\p{^Is_Nv=+000004}', "");
-    Expect(1, 156270, '\P{Is_Nv=+000004}', "");
-    Expect(0, 156270, '\P{^Is_Nv=+000004}', "");
+    Error('\p{Is_Numeric_Value=--000_4:=}');
+    Error('\P{Is_Numeric_Value=--000_4:=}');
+    Expect(1, 156269, '\p{Is_Numeric_Value=0004}', "");
+    Expect(0, 156269, '\p{^Is_Numeric_Value=0004}', "");
+    Expect(0, 156269, '\P{Is_Numeric_Value=0004}', "");
+    Expect(1, 156269, '\P{^Is_Numeric_Value=0004}', "");
+    Expect(0, 156270, '\p{Is_Numeric_Value=0004}', "");
+    Expect(1, 156270, '\p{^Is_Numeric_Value=0004}', "");
+    Expect(1, 156270, '\P{Is_Numeric_Value=0004}', "");
+    Expect(0, 156270, '\P{^Is_Numeric_Value=0004}', "");
+    Expect(1, 156269, '\p{Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(0, 156269, '\p{^Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(0, 156269, '\P{Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(1, 156269, '\P{^Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(0, 156270, '\p{Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(1, 156270, '\p{^Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(1, 156270, '\P{Is_Numeric_Value=4.000000000000000e+00}', "");
+    Expect(0, 156270, '\P{^Is_Numeric_Value=4.000000000000000e+00}', "");
+    Error('\p{Is_Nv=:=--+0000000004}');
+    Error('\P{Is_Nv=:=--+0000000004}');
+    Expect(1, 156269, '\p{Is_Nv:   0000000004}', "");
+    Expect(0, 156269, '\p{^Is_Nv:   0000000004}', "");
+    Expect(0, 156269, '\P{Is_Nv:   0000000004}', "");
+    Expect(1, 156269, '\P{^Is_Nv:   0000000004}', "");
+    Expect(0, 156270, '\p{Is_Nv:   0000000004}', "");
+    Expect(1, 156270, '\p{^Is_Nv:   0000000004}', "");
+    Expect(1, 156270, '\P{Is_Nv:   0000000004}', "");
+    Expect(0, 156270, '\P{^Is_Nv:   0000000004}', "");
     Expect(1, 156269, '\p{Is_Nv=4.000000000000000e+00}', "");
     Expect(0, 156269, '\p{^Is_Nv=4.000000000000000e+00}', "");
     Expect(0, 156269, '\P{Is_Nv=4.000000000000000e+00}', "");
@@ -80211,18 +80801,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 156270, '\p{^Is_Nv=4.000000000000000e+00}', "");
     Expect(1, 156270, '\P{Is_Nv=4.000000000000000e+00}', "");
     Expect(0, 156270, '\P{^Is_Nv=4.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=	:=+4/00005}');
-    Error('\P{Numeric_Value=	:=+4/00005}');
+    Error('\p{Numeric_Value=	:=004/0005}');
+    Error('\P{Numeric_Value=	:=004/0005}');
     Expect(1, 8536, '\p{Numeric_Value=:\A4/5\z:}', "");;
     Expect(0, 8537, '\p{Numeric_Value=:\A4/5\z:}', "");;
-    Expect(1, 8536, '\p{Numeric_Value=+0000000004/0000000005}', "");
-    Expect(0, 8536, '\p{^Numeric_Value=+0000000004/0000000005}', "");
-    Expect(0, 8536, '\P{Numeric_Value=+0000000004/0000000005}', "");
-    Expect(1, 8536, '\P{^Numeric_Value=+0000000004/0000000005}', "");
-    Expect(0, 8537, '\p{Numeric_Value=+0000000004/0000000005}', "");
-    Expect(1, 8537, '\p{^Numeric_Value=+0000000004/0000000005}', "");
-    Expect(1, 8537, '\P{Numeric_Value=+0000000004/0000000005}', "");
-    Expect(0, 8537, '\P{^Numeric_Value=+0000000004/0000000005}', "");
+    Expect(1, 8536, '\p{Numeric_Value=00000004/000005}', "");
+    Expect(0, 8536, '\p{^Numeric_Value=00000004/000005}', "");
+    Expect(0, 8536, '\P{Numeric_Value=00000004/000005}', "");
+    Expect(1, 8536, '\P{^Numeric_Value=00000004/000005}', "");
+    Expect(0, 8537, '\p{Numeric_Value=00000004/000005}', "");
+    Expect(1, 8537, '\p{^Numeric_Value=00000004/000005}', "");
+    Expect(1, 8537, '\P{Numeric_Value=00000004/000005}', "");
+    Expect(0, 8537, '\P{^Numeric_Value=00000004/000005}', "");
     Expect(1, 8536, '\p{Numeric_Value=240/300}', "");
     Expect(0, 8536, '\p{^Numeric_Value=240/300}', "");
     Expect(0, 8536, '\P{Numeric_Value=240/300}', "");
@@ -80247,42 +80837,42 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8537, '\p{^Numeric_Value=0.8}', "");
     Expect(1, 8537, '\P{Numeric_Value=0.8}', "");
     Expect(0, 8537, '\P{^Numeric_Value=0.8}', "");
-    Expect(1, 8536, '\p{Numeric_Value=8.00e-01}', "");
-    Expect(0, 8536, '\p{^Numeric_Value=8.00e-01}', "");
-    Expect(0, 8536, '\P{Numeric_Value=8.00e-01}', "");
-    Expect(1, 8536, '\P{^Numeric_Value=8.00e-01}', "");
-    Expect(0, 8537, '\p{Numeric_Value=8.00e-01}', "");
-    Expect(1, 8537, '\p{^Numeric_Value=8.00e-01}', "");
-    Expect(1, 8537, '\P{Numeric_Value=8.00e-01}', "");
-    Expect(0, 8537, '\P{^Numeric_Value=8.00e-01}', "");
-    Expect(1, 8536, '\p{Numeric_Value=0.80}', "");
-    Expect(0, 8536, '\p{^Numeric_Value=0.80}', "");
-    Expect(0, 8536, '\P{Numeric_Value=0.80}', "");
-    Expect(1, 8536, '\P{^Numeric_Value=0.80}', "");
-    Expect(0, 8537, '\p{Numeric_Value=0.80}', "");
-    Expect(1, 8537, '\p{^Numeric_Value=0.80}', "");
-    Expect(1, 8537, '\P{Numeric_Value=0.80}', "");
-    Expect(0, 8537, '\P{^Numeric_Value=0.80}', "");
-    Error('\p{Nv=_:=00004/0005}');
-    Error('\P{Nv=_:=00004/0005}');
+    Expect(1, 8536, '\p{Numeric_Value:   8.00e-01}', "");
+    Expect(0, 8536, '\p{^Numeric_Value:   8.00e-01}', "");
+    Expect(0, 8536, '\P{Numeric_Value:   8.00e-01}', "");
+    Expect(1, 8536, '\P{^Numeric_Value:   8.00e-01}', "");
+    Expect(0, 8537, '\p{Numeric_Value:   8.00e-01}', "");
+    Expect(1, 8537, '\p{^Numeric_Value:   8.00e-01}', "");
+    Expect(1, 8537, '\P{Numeric_Value:   8.00e-01}', "");
+    Expect(0, 8537, '\P{^Numeric_Value:   8.00e-01}', "");
+    Expect(1, 8536, '\p{Numeric_Value: 0.80}', "");
+    Expect(0, 8536, '\p{^Numeric_Value: 0.80}', "");
+    Expect(0, 8536, '\P{Numeric_Value: 0.80}', "");
+    Expect(1, 8536, '\P{^Numeric_Value: 0.80}', "");
+    Expect(0, 8537, '\p{Numeric_Value: 0.80}', "");
+    Expect(1, 8537, '\p{^Numeric_Value: 0.80}', "");
+    Expect(1, 8537, '\P{Numeric_Value: 0.80}', "");
+    Expect(0, 8537, '\P{^Numeric_Value: 0.80}', "");
+    Error('\p{Nv:	/a/ 	+004/0000000005}');
+    Error('\P{Nv:	/a/ 	+004/0000000005}');
     Expect(1, 8536, '\p{Nv=:\A4/5\z:}', "");;
     Expect(0, 8537, '\p{Nv=:\A4/5\z:}', "");;
-    Expect(1, 8536, '\p{Nv=0000004/000005}', "");
-    Expect(0, 8536, '\p{^Nv=0000004/000005}', "");
-    Expect(0, 8536, '\P{Nv=0000004/000005}', "");
-    Expect(1, 8536, '\P{^Nv=0000004/000005}', "");
-    Expect(0, 8537, '\p{Nv=0000004/000005}', "");
-    Expect(1, 8537, '\p{^Nv=0000004/000005}', "");
-    Expect(1, 8537, '\P{Nv=0000004/000005}', "");
-    Expect(0, 8537, '\P{^Nv=0000004/000005}', "");
-    Expect(1, 8536, '\p{Nv=240/300}', "");
-    Expect(0, 8536, '\p{^Nv=240/300}', "");
-    Expect(0, 8536, '\P{Nv=240/300}', "");
-    Expect(1, 8536, '\P{^Nv=240/300}', "");
-    Expect(0, 8537, '\p{Nv=240/300}', "");
-    Expect(1, 8537, '\p{^Nv=240/300}', "");
-    Expect(1, 8537, '\P{Nv=240/300}', "");
-    Expect(0, 8537, '\P{^Nv=240/300}', "");
+    Expect(1, 8536, '\p{Nv=4/5}', "");
+    Expect(0, 8536, '\p{^Nv=4/5}', "");
+    Expect(0, 8536, '\P{Nv=4/5}', "");
+    Expect(1, 8536, '\P{^Nv=4/5}', "");
+    Expect(0, 8537, '\p{Nv=4/5}', "");
+    Expect(1, 8537, '\p{^Nv=4/5}', "");
+    Expect(1, 8537, '\P{Nv=4/5}', "");
+    Expect(0, 8537, '\P{^Nv=4/5}', "");
+    Expect(1, 8536, '\p{Nv:240/300}', "");
+    Expect(0, 8536, '\p{^Nv:240/300}', "");
+    Expect(0, 8536, '\P{Nv:240/300}', "");
+    Expect(1, 8536, '\P{^Nv:240/300}', "");
+    Expect(0, 8537, '\p{Nv:240/300}', "");
+    Expect(1, 8537, '\p{^Nv:240/300}', "");
+    Expect(1, 8537, '\P{Nv:240/300}', "");
+    Expect(0, 8537, '\P{^Nv:240/300}', "");
     Expect(1, 8536, '\p{Nv=8.0e-01}', "");
     Expect(0, 8536, '\p{^Nv=8.0e-01}', "");
     Expect(0, 8536, '\P{Nv=8.0e-01}', "");
@@ -80315,16 +80905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8537, '\p{^Nv=0.80}', "");
     Expect(1, 8537, '\P{Nv=0.80}', "");
     Expect(0, 8537, '\P{^Nv=0.80}', "");
-    Error('\p{Is_Numeric_Value=-000004/0000005:=}');
-    Error('\P{Is_Numeric_Value=-000004/0000005:=}');
-    Expect(1, 8536, '\p{Is_Numeric_Value=4/0000005}', "");
-    Expect(0, 8536, '\p{^Is_Numeric_Value=4/0000005}', "");
-    Expect(0, 8536, '\P{Is_Numeric_Value=4/0000005}', "");
-    Expect(1, 8536, '\P{^Is_Numeric_Value=4/0000005}', "");
-    Expect(0, 8537, '\p{Is_Numeric_Value=4/0000005}', "");
-    Expect(1, 8537, '\p{^Is_Numeric_Value=4/0000005}', "");
-    Expect(1, 8537, '\P{Is_Numeric_Value=4/0000005}', "");
-    Expect(0, 8537, '\P{^Is_Numeric_Value=4/0000005}', "");
+    Error('\p{Is_Numeric_Value=- +04/0005:=}');
+    Error('\P{Is_Numeric_Value=- +04/0005:=}');
+    Expect(1, 8536, '\p{Is_Numeric_Value=4/000000005}', "");
+    Expect(0, 8536, '\p{^Is_Numeric_Value=4/000000005}', "");
+    Expect(0, 8536, '\P{Is_Numeric_Value=4/000000005}', "");
+    Expect(1, 8536, '\P{^Is_Numeric_Value=4/000000005}', "");
+    Expect(0, 8537, '\p{Is_Numeric_Value=4/000000005}', "");
+    Expect(1, 8537, '\p{^Is_Numeric_Value=4/000000005}', "");
+    Expect(1, 8537, '\P{Is_Numeric_Value=4/000000005}', "");
+    Expect(0, 8537, '\P{^Is_Numeric_Value=4/000000005}', "");
     Expect(1, 8536, '\p{Is_Numeric_Value=240/300}', "");
     Expect(0, 8536, '\p{^Is_Numeric_Value=240/300}', "");
     Expect(0, 8536, '\P{Is_Numeric_Value=240/300}', "");
@@ -80333,14 +80923,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8537, '\p{^Is_Numeric_Value=240/300}', "");
     Expect(1, 8537, '\P{Is_Numeric_Value=240/300}', "");
     Expect(0, 8537, '\P{^Is_Numeric_Value=240/300}', "");
-    Expect(1, 8536, '\p{Is_Numeric_Value:8.0e-01}', "");
-    Expect(0, 8536, '\p{^Is_Numeric_Value:8.0e-01}', "");
-    Expect(0, 8536, '\P{Is_Numeric_Value:8.0e-01}', "");
-    Expect(1, 8536, '\P{^Is_Numeric_Value:8.0e-01}', "");
-    Expect(0, 8537, '\p{Is_Numeric_Value:8.0e-01}', "");
-    Expect(1, 8537, '\p{^Is_Numeric_Value:8.0e-01}', "");
-    Expect(1, 8537, '\P{Is_Numeric_Value:8.0e-01}', "");
-    Expect(0, 8537, '\P{^Is_Numeric_Value:8.0e-01}', "");
+    Expect(1, 8536, '\p{Is_Numeric_Value=8.0e-01}', "");
+    Expect(0, 8536, '\p{^Is_Numeric_Value=8.0e-01}', "");
+    Expect(0, 8536, '\P{Is_Numeric_Value=8.0e-01}', "");
+    Expect(1, 8536, '\P{^Is_Numeric_Value=8.0e-01}', "");
+    Expect(0, 8537, '\p{Is_Numeric_Value=8.0e-01}', "");
+    Expect(1, 8537, '\p{^Is_Numeric_Value=8.0e-01}', "");
+    Expect(1, 8537, '\P{Is_Numeric_Value=8.0e-01}', "");
+    Expect(0, 8537, '\P{^Is_Numeric_Value=8.0e-01}', "");
     Expect(1, 8536, '\p{Is_Numeric_Value=0.8}', "");
     Expect(0, 8536, '\p{^Is_Numeric_Value=0.8}', "");
     Expect(0, 8536, '\P{Is_Numeric_Value=0.8}', "");
@@ -80365,16 +80955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8537, '\p{^Is_Numeric_Value=0.80}', "");
     Expect(1, 8537, '\P{Is_Numeric_Value=0.80}', "");
     Expect(0, 8537, '\P{^Is_Numeric_Value=0.80}', "");
-    Error('\p{Is_Nv=_-004/000000005:=}');
-    Error('\P{Is_Nv=_-004/000000005:=}');
-    Expect(1, 8536, '\p{Is_Nv=000000004/0005}', "");
-    Expect(0, 8536, '\p{^Is_Nv=000000004/0005}', "");
-    Expect(0, 8536, '\P{Is_Nv=000000004/0005}', "");
-    Expect(1, 8536, '\P{^Is_Nv=000000004/0005}', "");
-    Expect(0, 8537, '\p{Is_Nv=000000004/0005}', "");
-    Expect(1, 8537, '\p{^Is_Nv=000000004/0005}', "");
-    Expect(1, 8537, '\P{Is_Nv=000000004/0005}', "");
-    Expect(0, 8537, '\P{^Is_Nv=000000004/0005}', "");
+    Error('\p{Is_Nv=-00000004/00000005:=}');
+    Error('\P{Is_Nv=-00000004/00000005:=}');
+    Expect(1, 8536, '\p{Is_Nv=004/000000005}', "");
+    Expect(0, 8536, '\p{^Is_Nv=004/000000005}', "");
+    Expect(0, 8536, '\P{Is_Nv=004/000000005}', "");
+    Expect(1, 8536, '\P{^Is_Nv=004/000000005}', "");
+    Expect(0, 8537, '\p{Is_Nv=004/000000005}', "");
+    Expect(1, 8537, '\p{^Is_Nv=004/000000005}', "");
+    Expect(1, 8537, '\P{Is_Nv=004/000000005}', "");
+    Expect(0, 8537, '\P{^Is_Nv=004/000000005}', "");
     Expect(1, 8536, '\p{Is_Nv=240/300}', "");
     Expect(0, 8536, '\p{^Is_Nv=240/300}', "");
     Expect(0, 8536, '\P{Is_Nv=240/300}', "");
@@ -80383,14 +80973,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8537, '\p{^Is_Nv=240/300}', "");
     Expect(1, 8537, '\P{Is_Nv=240/300}', "");
     Expect(0, 8537, '\P{^Is_Nv=240/300}', "");
-    Expect(1, 8536, '\p{Is_Nv=8.0e-01}', "");
-    Expect(0, 8536, '\p{^Is_Nv=8.0e-01}', "");
-    Expect(0, 8536, '\P{Is_Nv=8.0e-01}', "");
-    Expect(1, 8536, '\P{^Is_Nv=8.0e-01}', "");
-    Expect(0, 8537, '\p{Is_Nv=8.0e-01}', "");
-    Expect(1, 8537, '\p{^Is_Nv=8.0e-01}', "");
-    Expect(1, 8537, '\P{Is_Nv=8.0e-01}', "");
-    Expect(0, 8537, '\P{^Is_Nv=8.0e-01}', "");
+    Expect(1, 8536, '\p{Is_Nv:8.0e-01}', "");
+    Expect(0, 8536, '\p{^Is_Nv:8.0e-01}', "");
+    Expect(0, 8536, '\P{Is_Nv:8.0e-01}', "");
+    Expect(1, 8536, '\P{^Is_Nv:8.0e-01}', "");
+    Expect(0, 8537, '\p{Is_Nv:8.0e-01}', "");
+    Expect(1, 8537, '\p{^Is_Nv:8.0e-01}', "");
+    Expect(1, 8537, '\P{Is_Nv:8.0e-01}', "");
+    Expect(0, 8537, '\P{^Is_Nv:8.0e-01}', "");
     Expect(1, 8536, '\p{Is_Nv=0.8}', "");
     Expect(0, 8536, '\p{^Is_Nv=0.8}', "");
     Expect(0, 8536, '\P{Is_Nv=0.8}', "");
@@ -80399,34 +80989,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8537, '\p{^Is_Nv=0.8}', "");
     Expect(1, 8537, '\P{Is_Nv=0.8}', "");
     Expect(0, 8537, '\P{^Is_Nv=0.8}', "");
-    Expect(1, 8536, '\p{Is_Nv:8.00e-01}', "");
-    Expect(0, 8536, '\p{^Is_Nv:8.00e-01}', "");
-    Expect(0, 8536, '\P{Is_Nv:8.00e-01}', "");
-    Expect(1, 8536, '\P{^Is_Nv:8.00e-01}', "");
-    Expect(0, 8537, '\p{Is_Nv:8.00e-01}', "");
-    Expect(1, 8537, '\p{^Is_Nv:8.00e-01}', "");
-    Expect(1, 8537, '\P{Is_Nv:8.00e-01}', "");
-    Expect(0, 8537, '\P{^Is_Nv:8.00e-01}', "");
-    Expect(1, 8536, '\p{Is_Nv=0.80}', "");
-    Expect(0, 8536, '\p{^Is_Nv=0.80}', "");
-    Expect(0, 8536, '\P{Is_Nv=0.80}', "");
-    Expect(1, 8536, '\P{^Is_Nv=0.80}', "");
-    Expect(0, 8537, '\p{Is_Nv=0.80}', "");
-    Expect(1, 8537, '\p{^Is_Nv=0.80}', "");
-    Expect(1, 8537, '\P{Is_Nv=0.80}', "");
-    Expect(0, 8537, '\P{^Is_Nv=0.80}', "");
-    Error('\p{Numeric_Value=:=040}');
-    Error('\P{Numeric_Value=:=040}');
+    Expect(1, 8536, '\p{Is_Nv=8.00e-01}', "");
+    Expect(0, 8536, '\p{^Is_Nv=8.00e-01}', "");
+    Expect(0, 8536, '\P{Is_Nv=8.00e-01}', "");
+    Expect(1, 8536, '\P{^Is_Nv=8.00e-01}', "");
+    Expect(0, 8537, '\p{Is_Nv=8.00e-01}', "");
+    Expect(1, 8537, '\p{^Is_Nv=8.00e-01}', "");
+    Expect(1, 8537, '\P{Is_Nv=8.00e-01}', "");
+    Expect(0, 8537, '\P{^Is_Nv=8.00e-01}', "");
+    Expect(1, 8536, '\p{Is_Nv:0.80}', "");
+    Expect(0, 8536, '\p{^Is_Nv:0.80}', "");
+    Expect(0, 8536, '\P{Is_Nv:0.80}', "");
+    Expect(1, 8536, '\P{^Is_Nv:0.80}', "");
+    Expect(0, 8537, '\p{Is_Nv:0.80}', "");
+    Expect(1, 8537, '\p{^Is_Nv:0.80}', "");
+    Expect(1, 8537, '\P{Is_Nv:0.80}', "");
+    Expect(0, 8537, '\P{^Is_Nv:0.80}', "");
+    Error('\p{Numeric_Value=:=	0_0_0_0_40}');
+    Error('\P{Numeric_Value=:=	0_0_0_0_40}');
     Expect(1, 133532, '\p{Numeric_Value=:\A40\z:}', "");;
     Expect(0, 133533, '\p{Numeric_Value=:\A40\z:}', "");;
-    Expect(1, 133532, '\p{Numeric_Value=+0000000040}', "");
-    Expect(0, 133532, '\p{^Numeric_Value=+0000000040}', "");
-    Expect(0, 133532, '\P{Numeric_Value=+0000000040}', "");
-    Expect(1, 133532, '\P{^Numeric_Value=+0000000040}', "");
-    Expect(0, 133533, '\p{Numeric_Value=+0000000040}', "");
-    Expect(1, 133533, '\p{^Numeric_Value=+0000000040}', "");
-    Expect(1, 133533, '\P{Numeric_Value=+0000000040}', "");
-    Expect(0, 133533, '\P{^Numeric_Value=+0000000040}', "");
+    Expect(1, 133532, '\p{Numeric_Value=40}', "");
+    Expect(0, 133532, '\p{^Numeric_Value=40}', "");
+    Expect(0, 133532, '\P{Numeric_Value=40}', "");
+    Expect(1, 133532, '\P{^Numeric_Value=40}', "");
+    Expect(0, 133533, '\p{Numeric_Value=40}', "");
+    Expect(1, 133533, '\p{^Numeric_Value=40}', "");
+    Expect(1, 133533, '\P{Numeric_Value=40}', "");
+    Expect(0, 133533, '\P{^Numeric_Value=40}', "");
     Expect(1, 133532, '\p{Numeric_Value=4.000000000000000e+01}', "");
     Expect(0, 133532, '\p{^Numeric_Value=4.000000000000000e+01}', "");
     Expect(0, 133532, '\P{Numeric_Value=4.000000000000000e+01}', "");
@@ -80435,36 +81025,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 133533, '\p{^Numeric_Value=4.000000000000000e+01}', "");
     Expect(1, 133533, '\P{Numeric_Value=4.000000000000000e+01}', "");
     Expect(0, 133533, '\P{^Numeric_Value=4.000000000000000e+01}', "");
-    Error('\p{Nv=/a/	 0_0_0_0_0_0_0_0_40}');
-    Error('\P{Nv=/a/	 0_0_0_0_0_0_0_0_40}');
+    Error('\p{Nv=_:=000040}');
+    Error('\P{Nv=_:=000040}');
     Expect(1, 133532, '\p{Nv=:\A40\z:}', "");;
     Expect(0, 133533, '\p{Nv=:\A40\z:}', "");;
-    Expect(1, 133532, '\p{Nv=0040}', "");
-    Expect(0, 133532, '\p{^Nv=0040}', "");
-    Expect(0, 133532, '\P{Nv=0040}', "");
-    Expect(1, 133532, '\P{^Nv=0040}', "");
-    Expect(0, 133533, '\p{Nv=0040}', "");
-    Expect(1, 133533, '\p{^Nv=0040}', "");
-    Expect(1, 133533, '\P{Nv=0040}', "");
-    Expect(0, 133533, '\P{^Nv=0040}', "");
-    Expect(1, 133532, '\p{Nv:4.000000000000000e+01}', "");
-    Expect(0, 133532, '\p{^Nv:4.000000000000000e+01}', "");
-    Expect(0, 133532, '\P{Nv:4.000000000000000e+01}', "");
-    Expect(1, 133532, '\P{^Nv:4.000000000000000e+01}', "");
-    Expect(0, 133533, '\p{Nv:4.000000000000000e+01}', "");
-    Expect(1, 133533, '\p{^Nv:4.000000000000000e+01}', "");
-    Expect(1, 133533, '\P{Nv:4.000000000000000e+01}', "");
-    Expect(0, 133533, '\P{^Nv:4.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/_00040}');
-    Error('\P{Is_Numeric_Value=/a/_00040}');
-    Expect(1, 133532, '\p{Is_Numeric_Value=+0000000040}', "");
-    Expect(0, 133532, '\p{^Is_Numeric_Value=+0000000040}', "");
-    Expect(0, 133532, '\P{Is_Numeric_Value=+0000000040}', "");
-    Expect(1, 133532, '\P{^Is_Numeric_Value=+0000000040}', "");
-    Expect(0, 133533, '\p{Is_Numeric_Value=+0000000040}', "");
-    Expect(1, 133533, '\p{^Is_Numeric_Value=+0000000040}', "");
-    Expect(1, 133533, '\P{Is_Numeric_Value=+0000000040}', "");
-    Expect(0, 133533, '\P{^Is_Numeric_Value=+0000000040}', "");
+    Expect(1, 133532, '\p{Nv=0_0_0_0_0_0_0040}', "");
+    Expect(0, 133532, '\p{^Nv=0_0_0_0_0_0_0040}', "");
+    Expect(0, 133532, '\P{Nv=0_0_0_0_0_0_0040}', "");
+    Expect(1, 133532, '\P{^Nv=0_0_0_0_0_0_0040}', "");
+    Expect(0, 133533, '\p{Nv=0_0_0_0_0_0_0040}', "");
+    Expect(1, 133533, '\p{^Nv=0_0_0_0_0_0_0040}', "");
+    Expect(1, 133533, '\P{Nv=0_0_0_0_0_0_0040}', "");
+    Expect(0, 133533, '\P{^Nv=0_0_0_0_0_0_0040}', "");
+    Expect(1, 133532, '\p{Nv=4.000000000000000e+01}', "");
+    Expect(0, 133532, '\p{^Nv=4.000000000000000e+01}', "");
+    Expect(0, 133532, '\P{Nv=4.000000000000000e+01}', "");
+    Expect(1, 133532, '\P{^Nv=4.000000000000000e+01}', "");
+    Expect(0, 133533, '\p{Nv=4.000000000000000e+01}', "");
+    Expect(1, 133533, '\p{^Nv=4.000000000000000e+01}', "");
+    Expect(1, 133533, '\P{Nv=4.000000000000000e+01}', "");
+    Expect(0, 133533, '\P{^Nv=4.000000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value=	/a/000000040}');
+    Error('\P{Is_Numeric_Value=	/a/000000040}');
+    Expect(1, 133532, '\p{Is_Numeric_Value=00_00_40}', "");
+    Expect(0, 133532, '\p{^Is_Numeric_Value=00_00_40}', "");
+    Expect(0, 133532, '\P{Is_Numeric_Value=00_00_40}', "");
+    Expect(1, 133532, '\P{^Is_Numeric_Value=00_00_40}', "");
+    Expect(0, 133533, '\p{Is_Numeric_Value=00_00_40}', "");
+    Expect(1, 133533, '\p{^Is_Numeric_Value=00_00_40}', "");
+    Expect(1, 133533, '\P{Is_Numeric_Value=00_00_40}', "");
+    Expect(0, 133533, '\P{^Is_Numeric_Value=00_00_40}', "");
     Expect(1, 133532, '\p{Is_Numeric_Value=4.000000000000000e+01}', "");
     Expect(0, 133532, '\p{^Is_Numeric_Value=4.000000000000000e+01}', "");
     Expect(0, 133532, '\P{Is_Numeric_Value=4.000000000000000e+01}', "");
@@ -80473,16 +81063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 133533, '\p{^Is_Numeric_Value=4.000000000000000e+01}', "");
     Expect(1, 133533, '\P{Is_Numeric_Value=4.000000000000000e+01}', "");
     Expect(0, 133533, '\P{^Is_Numeric_Value=4.000000000000000e+01}', "");
-    Error('\p{Is_Nv=:=	_0_0_0_0_0_0_0040}');
-    Error('\P{Is_Nv=:=	_0_0_0_0_0_0_0040}');
-    Expect(1, 133532, '\p{Is_Nv:   00000040}', "");
-    Expect(0, 133532, '\p{^Is_Nv:   00000040}', "");
-    Expect(0, 133532, '\P{Is_Nv:   00000040}', "");
-    Expect(1, 133532, '\P{^Is_Nv:   00000040}', "");
-    Expect(0, 133533, '\p{Is_Nv:   00000040}', "");
-    Expect(1, 133533, '\p{^Is_Nv:   00000040}', "");
-    Expect(1, 133533, '\P{Is_Nv:   00000040}', "");
-    Expect(0, 133533, '\P{^Is_Nv:   00000040}', "");
+    Error('\p{Is_Nv=	 +0000040:=}');
+    Error('\P{Is_Nv=	 +0000040:=}');
+    Expect(1, 133532, '\p{Is_Nv=0040}', "");
+    Expect(0, 133532, '\p{^Is_Nv=0040}', "");
+    Expect(0, 133532, '\P{Is_Nv=0040}', "");
+    Expect(1, 133532, '\P{^Is_Nv=0040}', "");
+    Expect(0, 133533, '\p{Is_Nv=0040}', "");
+    Expect(1, 133533, '\p{^Is_Nv=0040}', "");
+    Expect(1, 133533, '\P{Is_Nv=0040}', "");
+    Expect(0, 133533, '\P{^Is_Nv=0040}', "");
     Expect(1, 133532, '\p{Is_Nv=4.000000000000000e+01}', "");
     Expect(0, 133532, '\p{^Is_Nv=4.000000000000000e+01}', "");
     Expect(0, 133532, '\P{Is_Nv=4.000000000000000e+01}', "");
@@ -80491,38 +81081,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 133533, '\p{^Is_Nv=4.000000000000000e+01}', "");
     Expect(1, 133533, '\P{Is_Nv=4.000000000000000e+01}', "");
     Expect(0, 133533, '\P{^Is_Nv=4.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=:=_-000400}');
-    Error('\P{Numeric_Value=:=_-000400}');
+    Error('\p{Numeric_Value= /a/000_040_0}');
+    Error('\P{Numeric_Value= /a/000_040_0}');
     Expect(1, 126264, '\p{Numeric_Value=:\A400\z:}', "");;
     Expect(0, 126265, '\p{Numeric_Value=:\A400\z:}', "");;
-    Expect(1, 126264, '\p{Numeric_Value=00_00_00_00_0400}', "");
-    Expect(0, 126264, '\p{^Numeric_Value=00_00_00_00_0400}', "");
-    Expect(0, 126264, '\P{Numeric_Value=00_00_00_00_0400}', "");
-    Expect(1, 126264, '\P{^Numeric_Value=00_00_00_00_0400}', "");
-    Expect(0, 126265, '\p{Numeric_Value=00_00_00_00_0400}', "");
-    Expect(1, 126265, '\p{^Numeric_Value=00_00_00_00_0400}', "");
-    Expect(1, 126265, '\P{Numeric_Value=00_00_00_00_0400}', "");
-    Expect(0, 126265, '\P{^Numeric_Value=00_00_00_00_0400}', "");
-    Expect(1, 126264, '\p{Numeric_Value:4.000000000000000e+02}', "");
-    Expect(0, 126264, '\p{^Numeric_Value:4.000000000000000e+02}', "");
-    Expect(0, 126264, '\P{Numeric_Value:4.000000000000000e+02}', "");
-    Expect(1, 126264, '\P{^Numeric_Value:4.000000000000000e+02}', "");
-    Expect(0, 126265, '\p{Numeric_Value:4.000000000000000e+02}', "");
-    Expect(1, 126265, '\p{^Numeric_Value:4.000000000000000e+02}', "");
-    Expect(1, 126265, '\P{Numeric_Value:4.000000000000000e+02}', "");
-    Expect(0, 126265, '\P{^Numeric_Value:4.000000000000000e+02}', "");
-    Error('\p{Nv=/a/--+40_0}');
-    Error('\P{Nv=/a/--+40_0}');
+    Expect(1, 126264, '\p{Numeric_Value=00_04_00}', "");
+    Expect(0, 126264, '\p{^Numeric_Value=00_04_00}', "");
+    Expect(0, 126264, '\P{Numeric_Value=00_04_00}', "");
+    Expect(1, 126264, '\P{^Numeric_Value=00_04_00}', "");
+    Expect(0, 126265, '\p{Numeric_Value=00_04_00}', "");
+    Expect(1, 126265, '\p{^Numeric_Value=00_04_00}', "");
+    Expect(1, 126265, '\P{Numeric_Value=00_04_00}', "");
+    Expect(0, 126265, '\P{^Numeric_Value=00_04_00}', "");
+    Expect(1, 126264, '\p{Numeric_Value=4.000000000000000e+02}', "");
+    Expect(0, 126264, '\p{^Numeric_Value=4.000000000000000e+02}', "");
+    Expect(0, 126264, '\P{Numeric_Value=4.000000000000000e+02}', "");
+    Expect(1, 126264, '\P{^Numeric_Value=4.000000000000000e+02}', "");
+    Expect(0, 126265, '\p{Numeric_Value=4.000000000000000e+02}', "");
+    Expect(1, 126265, '\p{^Numeric_Value=4.000000000000000e+02}', "");
+    Expect(1, 126265, '\P{Numeric_Value=4.000000000000000e+02}', "");
+    Expect(0, 126265, '\P{^Numeric_Value=4.000000000000000e+02}', "");
+    Error('\p{Nv=- +00_00_00_00_0400/a/}');
+    Error('\P{Nv=- +00_00_00_00_0400/a/}');
     Expect(1, 126264, '\p{Nv=:\A400\z:}', "");;
     Expect(0, 126265, '\p{Nv=:\A400\z:}', "");;
-    Expect(1, 126264, '\p{Nv=00_04_00}', "");
-    Expect(0, 126264, '\p{^Nv=00_04_00}', "");
-    Expect(0, 126264, '\P{Nv=00_04_00}', "");
-    Expect(1, 126264, '\P{^Nv=00_04_00}', "");
-    Expect(0, 126265, '\p{Nv=00_04_00}', "");
-    Expect(1, 126265, '\p{^Nv=00_04_00}', "");
-    Expect(1, 126265, '\P{Nv=00_04_00}', "");
-    Expect(0, 126265, '\P{^Nv=00_04_00}', "");
+    Expect(1, 126264, '\p{Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(0, 126264, '\p{^Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(0, 126264, '\P{Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(1, 126264, '\P{^Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(0, 126265, '\p{Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(1, 126265, '\p{^Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(1, 126265, '\P{Nv=0_0_0_0_0_0_0_0_400}', "");
+    Expect(0, 126265, '\P{^Nv=0_0_0_0_0_0_0_0_400}', "");
     Expect(1, 126264, '\p{Nv=4.000000000000000e+02}', "");
     Expect(0, 126264, '\p{^Nv=4.000000000000000e+02}', "");
     Expect(0, 126264, '\P{Nv=4.000000000000000e+02}', "");
@@ -80531,16 +81121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126265, '\p{^Nv=4.000000000000000e+02}', "");
     Expect(1, 126265, '\P{Nv=4.000000000000000e+02}', "");
     Expect(0, 126265, '\P{^Nv=4.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value=/a/ 0_0_0_4_00}');
-    Error('\P{Is_Numeric_Value=/a/ 0_0_0_4_00}');
-    Expect(1, 126264, '\p{Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(0, 126264, '\p{^Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(0, 126264, '\P{Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(1, 126264, '\P{^Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(0, 126265, '\p{Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(1, 126265, '\p{^Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(1, 126265, '\P{Is_Numeric_Value=00_00_00_04_00}', "");
-    Expect(0, 126265, '\P{^Is_Numeric_Value=00_00_00_04_00}', "");
+    Error('\p{Is_Numeric_Value=--00_00_00_00_400/a/}');
+    Error('\P{Is_Numeric_Value=--00_00_00_00_400/a/}');
+    Expect(1, 126264, '\p{Is_Numeric_Value=0400}', "");
+    Expect(0, 126264, '\p{^Is_Numeric_Value=0400}', "");
+    Expect(0, 126264, '\P{Is_Numeric_Value=0400}', "");
+    Expect(1, 126264, '\P{^Is_Numeric_Value=0400}', "");
+    Expect(0, 126265, '\p{Is_Numeric_Value=0400}', "");
+    Expect(1, 126265, '\p{^Is_Numeric_Value=0400}', "");
+    Expect(1, 126265, '\P{Is_Numeric_Value=0400}', "");
+    Expect(0, 126265, '\P{^Is_Numeric_Value=0400}', "");
     Expect(1, 126264, '\p{Is_Numeric_Value=4.000000000000000e+02}', "");
     Expect(0, 126264, '\p{^Is_Numeric_Value=4.000000000000000e+02}', "");
     Expect(0, 126264, '\P{Is_Numeric_Value=4.000000000000000e+02}', "");
@@ -80549,56 +81139,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126265, '\p{^Is_Numeric_Value=4.000000000000000e+02}', "");
     Expect(1, 126265, '\P{Is_Numeric_Value=4.000000000000000e+02}', "");
     Expect(0, 126265, '\P{^Is_Numeric_Value=4.000000000000000e+02}', "");
-    Error('\p{Is_Nv=_+0000000400/a/}');
-    Error('\P{Is_Nv=_+0000000400/a/}');
-    Expect(1, 126264, '\p{Is_Nv=+000040_0}', "");
-    Expect(0, 126264, '\p{^Is_Nv=+000040_0}', "");
-    Expect(0, 126264, '\P{Is_Nv=+000040_0}', "");
-    Expect(1, 126264, '\P{^Is_Nv=+000040_0}', "");
-    Expect(0, 126265, '\p{Is_Nv=+000040_0}', "");
-    Expect(1, 126265, '\p{^Is_Nv=+000040_0}', "");
-    Expect(1, 126265, '\P{Is_Nv=+000040_0}', "");
-    Expect(0, 126265, '\P{^Is_Nv=+000040_0}', "");
-    Expect(1, 126264, '\p{Is_Nv=4.000000000000000e+02}', "");
-    Expect(0, 126264, '\p{^Is_Nv=4.000000000000000e+02}', "");
-    Expect(0, 126264, '\P{Is_Nv=4.000000000000000e+02}', "");
-    Expect(1, 126264, '\P{^Is_Nv=4.000000000000000e+02}', "");
-    Expect(0, 126265, '\p{Is_Nv=4.000000000000000e+02}', "");
-    Expect(1, 126265, '\p{^Is_Nv=4.000000000000000e+02}', "");
-    Expect(1, 126265, '\P{Is_Nv=4.000000000000000e+02}', "");
-    Expect(0, 126265, '\P{^Is_Nv=4.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=/a/ 00000400_0}');
-    Error('\P{Numeric_Value=/a/ 00000400_0}');
+    Error('\p{Is_Nv=/a/	 +0400}');
+    Error('\P{Is_Nv=/a/	 +0400}');
+    Expect(1, 126264, '\p{Is_Nv=0400}', "");
+    Expect(0, 126264, '\p{^Is_Nv=0400}', "");
+    Expect(0, 126264, '\P{Is_Nv=0400}', "");
+    Expect(1, 126264, '\P{^Is_Nv=0400}', "");
+    Expect(0, 126265, '\p{Is_Nv=0400}', "");
+    Expect(1, 126265, '\p{^Is_Nv=0400}', "");
+    Expect(1, 126265, '\P{Is_Nv=0400}', "");
+    Expect(0, 126265, '\P{^Is_Nv=0400}', "");
+    Expect(1, 126264, '\p{Is_Nv: 4.000000000000000e+02}', "");
+    Expect(0, 126264, '\p{^Is_Nv: 4.000000000000000e+02}', "");
+    Expect(0, 126264, '\P{Is_Nv: 4.000000000000000e+02}', "");
+    Expect(1, 126264, '\P{^Is_Nv: 4.000000000000000e+02}', "");
+    Expect(0, 126265, '\p{Is_Nv: 4.000000000000000e+02}', "");
+    Expect(1, 126265, '\p{^Is_Nv: 4.000000000000000e+02}', "");
+    Expect(1, 126265, '\P{Is_Nv: 4.000000000000000e+02}', "");
+    Expect(0, 126265, '\P{^Is_Nv: 4.000000000000000e+02}', "");
+    Error('\p{Numeric_Value=_00004000:=}');
+    Error('\P{Numeric_Value=_00004000:=}');
     Expect(1, 126239, '\p{Numeric_Value=:\A4000\z:}', "");;
     Expect(0, 126240, '\p{Numeric_Value=:\A4000\z:}', "");;
-    Expect(1, 126239, '\p{Numeric_Value=400_0}', "");
-    Expect(0, 126239, '\p{^Numeric_Value=400_0}', "");
-    Expect(0, 126239, '\P{Numeric_Value=400_0}', "");
-    Expect(1, 126239, '\P{^Numeric_Value=400_0}', "");
-    Expect(0, 126240, '\p{Numeric_Value=400_0}', "");
-    Expect(1, 126240, '\p{^Numeric_Value=400_0}', "");
-    Expect(1, 126240, '\P{Numeric_Value=400_0}', "");
-    Expect(0, 126240, '\P{^Numeric_Value=400_0}', "");
-    Expect(1, 126239, '\p{Numeric_Value=4.000000000000000e+03}', "");
-    Expect(0, 126239, '\p{^Numeric_Value=4.000000000000000e+03}', "");
-    Expect(0, 126239, '\P{Numeric_Value=4.000000000000000e+03}', "");
-    Expect(1, 126239, '\P{^Numeric_Value=4.000000000000000e+03}', "");
-    Expect(0, 126240, '\p{Numeric_Value=4.000000000000000e+03}', "");
-    Expect(1, 126240, '\p{^Numeric_Value=4.000000000000000e+03}', "");
-    Expect(1, 126240, '\P{Numeric_Value=4.000000000000000e+03}', "");
-    Expect(0, 126240, '\P{^Numeric_Value=4.000000000000000e+03}', "");
-    Error('\p{Nv= _+0_0_0_0_0_0_0_0_0_4_000:=}');
-    Error('\P{Nv= _+0_0_0_0_0_0_0_0_0_4_000:=}');
+    Expect(1, 126239, '\p{Numeric_Value=00000004000}', "");
+    Expect(0, 126239, '\p{^Numeric_Value=00000004000}', "");
+    Expect(0, 126239, '\P{Numeric_Value=00000004000}', "");
+    Expect(1, 126239, '\P{^Numeric_Value=00000004000}', "");
+    Expect(0, 126240, '\p{Numeric_Value=00000004000}', "");
+    Expect(1, 126240, '\p{^Numeric_Value=00000004000}', "");
+    Expect(1, 126240, '\P{Numeric_Value=00000004000}', "");
+    Expect(0, 126240, '\P{^Numeric_Value=00000004000}', "");
+    Expect(1, 126239, '\p{Numeric_Value:4.000000000000000e+03}', "");
+    Expect(0, 126239, '\p{^Numeric_Value:4.000000000000000e+03}', "");
+    Expect(0, 126239, '\P{Numeric_Value:4.000000000000000e+03}', "");
+    Expect(1, 126239, '\P{^Numeric_Value:4.000000000000000e+03}', "");
+    Expect(0, 126240, '\p{Numeric_Value:4.000000000000000e+03}', "");
+    Expect(1, 126240, '\p{^Numeric_Value:4.000000000000000e+03}', "");
+    Expect(1, 126240, '\P{Numeric_Value:4.000000000000000e+03}', "");
+    Expect(0, 126240, '\P{^Numeric_Value:4.000000000000000e+03}', "");
+    Error('\p{Nv=_:=0_0_0_4_0_00}');
+    Error('\P{Nv=_:=0_0_0_4_0_00}');
     Expect(1, 126239, '\p{Nv=:\A4000\z:}', "");;
     Expect(0, 126240, '\p{Nv=:\A4000\z:}', "");;
-    Expect(1, 126239, '\p{Nv=00000004000}', "");
-    Expect(0, 126239, '\p{^Nv=00000004000}', "");
-    Expect(0, 126239, '\P{Nv=00000004000}', "");
-    Expect(1, 126239, '\P{^Nv=00000004000}', "");
-    Expect(0, 126240, '\p{Nv=00000004000}', "");
-    Expect(1, 126240, '\p{^Nv=00000004000}', "");
-    Expect(1, 126240, '\P{Nv=00000004000}', "");
-    Expect(0, 126240, '\P{^Nv=00000004000}', "");
+    Expect(1, 126239, '\p{Nv=+000004000}', "");
+    Expect(0, 126239, '\p{^Nv=+000004000}', "");
+    Expect(0, 126239, '\P{Nv=+000004000}', "");
+    Expect(1, 126239, '\P{^Nv=+000004000}', "");
+    Expect(0, 126240, '\p{Nv=+000004000}', "");
+    Expect(1, 126240, '\p{^Nv=+000004000}', "");
+    Expect(1, 126240, '\P{Nv=+000004000}', "");
+    Expect(0, 126240, '\P{^Nv=+000004000}', "");
     Expect(1, 126239, '\p{Nv=4.000000000000000e+03}', "");
     Expect(0, 126239, '\p{^Nv=4.000000000000000e+03}', "");
     Expect(0, 126239, '\P{Nv=4.000000000000000e+03}', "");
@@ -80607,16 +81197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126240, '\p{^Nv=4.000000000000000e+03}', "");
     Expect(1, 126240, '\P{Nv=4.000000000000000e+03}', "");
     Expect(0, 126240, '\P{^Nv=4.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value= /a/00000004000}');
-    Error('\P{Is_Numeric_Value= /a/00000004000}');
-    Expect(1, 126239, '\p{Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(0, 126239, '\p{^Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(0, 126239, '\P{Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(1, 126239, '\P{^Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(0, 126240, '\p{Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(1, 126240, '\p{^Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(1, 126240, '\P{Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
-    Expect(0, 126240, '\P{^Is_Numeric_Value=0_0_0_0_0_0_04000}', "");
+    Error('\p{Is_Numeric_Value=--+0_0_0_0_0_0_0_0_0_4000:=}');
+    Error('\P{Is_Numeric_Value=--+0_0_0_0_0_0_0_0_0_4000:=}');
+    Expect(1, 126239, '\p{Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(0, 126239, '\p{^Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(0, 126239, '\P{Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(1, 126239, '\P{^Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(0, 126240, '\p{Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(1, 126240, '\p{^Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(1, 126240, '\P{Is_Numeric_Value=0_0_0_0_4_0_00}', "");
+    Expect(0, 126240, '\P{^Is_Numeric_Value=0_0_0_0_4_0_00}', "");
     Expect(1, 126239, '\p{Is_Numeric_Value=4.000000000000000e+03}', "");
     Expect(0, 126239, '\p{^Is_Numeric_Value=4.000000000000000e+03}', "");
     Expect(0, 126239, '\P{Is_Numeric_Value=4.000000000000000e+03}', "");
@@ -80625,36 +81215,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126240, '\p{^Is_Numeric_Value=4.000000000000000e+03}', "");
     Expect(1, 126240, '\P{Is_Numeric_Value=4.000000000000000e+03}', "");
     Expect(0, 126240, '\P{^Is_Numeric_Value=4.000000000000000e+03}', "");
-    Error('\p{Is_Nv=	:=+0004000}');
-    Error('\P{Is_Nv=	:=+0004000}');
-    Expect(1, 126239, '\p{Is_Nv:   +0004000}', "");
-    Expect(0, 126239, '\p{^Is_Nv:   +0004000}', "");
-    Expect(0, 126239, '\P{Is_Nv:   +0004000}', "");
-    Expect(1, 126239, '\P{^Is_Nv:   +0004000}', "");
-    Expect(0, 126240, '\p{Is_Nv:   +0004000}', "");
-    Expect(1, 126240, '\p{^Is_Nv:   +0004000}', "");
-    Expect(1, 126240, '\P{Is_Nv:   +0004000}', "");
-    Expect(0, 126240, '\P{^Is_Nv:   +0004000}', "");
-    Expect(1, 126239, '\p{Is_Nv=4.000000000000000e+03}', "");
-    Expect(0, 126239, '\p{^Is_Nv=4.000000000000000e+03}', "");
-    Expect(0, 126239, '\P{Is_Nv=4.000000000000000e+03}', "");
-    Expect(1, 126239, '\P{^Is_Nv=4.000000000000000e+03}', "");
-    Expect(0, 126240, '\p{Is_Nv=4.000000000000000e+03}', "");
-    Expect(1, 126240, '\p{^Is_Nv=4.000000000000000e+03}', "");
-    Expect(1, 126240, '\P{Is_Nv=4.000000000000000e+03}', "");
-    Expect(0, 126240, '\P{^Is_Nv=4.000000000000000e+03}', "");
-    Error('\p{Numeric_Value=_/a/0000040000}');
-    Error('\P{Numeric_Value=_/a/0000040000}');
+    Error('\p{Is_Nv=/a/ -00000004000}');
+    Error('\P{Is_Nv=/a/ -00000004000}');
+    Expect(1, 126239, '\p{Is_Nv:	0000000004000}', "");
+    Expect(0, 126239, '\p{^Is_Nv:	0000000004000}', "");
+    Expect(0, 126239, '\P{Is_Nv:	0000000004000}', "");
+    Expect(1, 126239, '\P{^Is_Nv:	0000000004000}', "");
+    Expect(0, 126240, '\p{Is_Nv:	0000000004000}', "");
+    Expect(1, 126240, '\p{^Is_Nv:	0000000004000}', "");
+    Expect(1, 126240, '\P{Is_Nv:	0000000004000}', "");
+    Expect(0, 126240, '\P{^Is_Nv:	0000000004000}', "");
+    Expect(1, 126239, '\p{Is_Nv: 4.000000000000000e+03}', "");
+    Expect(0, 126239, '\p{^Is_Nv: 4.000000000000000e+03}', "");
+    Expect(0, 126239, '\P{Is_Nv: 4.000000000000000e+03}', "");
+    Expect(1, 126239, '\P{^Is_Nv: 4.000000000000000e+03}', "");
+    Expect(0, 126240, '\p{Is_Nv: 4.000000000000000e+03}', "");
+    Expect(1, 126240, '\p{^Is_Nv: 4.000000000000000e+03}', "");
+    Expect(1, 126240, '\P{Is_Nv: 4.000000000000000e+03}', "");
+    Expect(0, 126240, '\P{^Is_Nv: 4.000000000000000e+03}', "");
+    Error('\p{Numeric_Value=_	+000_000_004_000_0:=}');
+    Error('\P{Numeric_Value=_	+000_000_004_000_0:=}');
     Expect(1, 126248, '\p{Numeric_Value=:\A40000\z:}', "");;
     Expect(0, 126249, '\p{Numeric_Value=:\A40000\z:}', "");;
-    Expect(1, 126248, '\p{Numeric_Value=00040000}', "");
-    Expect(0, 126248, '\p{^Numeric_Value=00040000}', "");
-    Expect(0, 126248, '\P{Numeric_Value=00040000}', "");
-    Expect(1, 126248, '\P{^Numeric_Value=00040000}', "");
-    Expect(0, 126249, '\p{Numeric_Value=00040000}', "");
-    Expect(1, 126249, '\p{^Numeric_Value=00040000}', "");
-    Expect(1, 126249, '\P{Numeric_Value=00040000}', "");
-    Expect(0, 126249, '\P{^Numeric_Value=00040000}', "");
+    Expect(1, 126248, '\p{Numeric_Value=00000000040000}', "");
+    Expect(0, 126248, '\p{^Numeric_Value=00000000040000}', "");
+    Expect(0, 126248, '\P{Numeric_Value=00000000040000}', "");
+    Expect(1, 126248, '\P{^Numeric_Value=00000000040000}', "");
+    Expect(0, 126249, '\p{Numeric_Value=00000000040000}', "");
+    Expect(1, 126249, '\p{^Numeric_Value=00000000040000}', "");
+    Expect(1, 126249, '\P{Numeric_Value=00000000040000}', "");
+    Expect(0, 126249, '\P{^Numeric_Value=00000000040000}', "");
     Expect(1, 126248, '\p{Numeric_Value=4.000000000000000e+04}', "");
     Expect(0, 126248, '\p{^Numeric_Value=4.000000000000000e+04}', "");
     Expect(0, 126248, '\P{Numeric_Value=4.000000000000000e+04}', "");
@@ -80663,36 +81253,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126249, '\p{^Numeric_Value=4.000000000000000e+04}', "");
     Expect(1, 126249, '\P{Numeric_Value=4.000000000000000e+04}', "");
     Expect(0, 126249, '\P{^Numeric_Value=4.000000000000000e+04}', "");
-    Error('\p{Nv=/a/+0000040000}');
-    Error('\P{Nv=/a/+0000040000}');
+    Error('\p{Nv=_-0000000040000/a/}');
+    Error('\P{Nv=_-0000000040000/a/}');
     Expect(1, 126248, '\p{Nv=:\A40000\z:}', "");;
     Expect(0, 126249, '\p{Nv=:\A40000\z:}', "");;
-    Expect(1, 126248, '\p{Nv=4_0_0_00}', "");
-    Expect(0, 126248, '\p{^Nv=4_0_0_00}', "");
-    Expect(0, 126248, '\P{Nv=4_0_0_00}', "");
-    Expect(1, 126248, '\P{^Nv=4_0_0_00}', "");
-    Expect(0, 126249, '\p{Nv=4_0_0_00}', "");
-    Expect(1, 126249, '\p{^Nv=4_0_0_00}', "");
-    Expect(1, 126249, '\P{Nv=4_0_0_00}', "");
-    Expect(0, 126249, '\P{^Nv=4_0_0_00}', "");
-    Expect(1, 126248, '\p{Nv:   4.000000000000000e+04}', "");
-    Expect(0, 126248, '\p{^Nv:   4.000000000000000e+04}', "");
-    Expect(0, 126248, '\P{Nv:   4.000000000000000e+04}', "");
-    Expect(1, 126248, '\P{^Nv:   4.000000000000000e+04}', "");
-    Expect(0, 126249, '\p{Nv:   4.000000000000000e+04}', "");
-    Expect(1, 126249, '\p{^Nv:   4.000000000000000e+04}', "");
-    Expect(1, 126249, '\P{Nv:   4.000000000000000e+04}', "");
-    Expect(0, 126249, '\P{^Nv:   4.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value=:=	 000040000}');
-    Error('\P{Is_Numeric_Value=:=	 000040000}');
-    Expect(1, 126248, '\p{Is_Numeric_Value=00_00_40_000}', "");
-    Expect(0, 126248, '\p{^Is_Numeric_Value=00_00_40_000}', "");
-    Expect(0, 126248, '\P{Is_Numeric_Value=00_00_40_000}', "");
-    Expect(1, 126248, '\P{^Is_Numeric_Value=00_00_40_000}', "");
-    Expect(0, 126249, '\p{Is_Numeric_Value=00_00_40_000}', "");
-    Expect(1, 126249, '\p{^Is_Numeric_Value=00_00_40_000}', "");
-    Expect(1, 126249, '\P{Is_Numeric_Value=00_00_40_000}', "");
-    Expect(0, 126249, '\P{^Is_Numeric_Value=00_00_40_000}', "");
+    Expect(1, 126248, '\p{Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(0, 126248, '\p{^Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(0, 126248, '\P{Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(1, 126248, '\P{^Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(0, 126249, '\p{Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(1, 126249, '\p{^Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(1, 126249, '\P{Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(0, 126249, '\P{^Nv=+0_0_0_0_0_0_0_0_0_4_0_000}', "");
+    Expect(1, 126248, '\p{Nv=4.000000000000000e+04}', "");
+    Expect(0, 126248, '\p{^Nv=4.000000000000000e+04}', "");
+    Expect(0, 126248, '\P{Nv=4.000000000000000e+04}', "");
+    Expect(1, 126248, '\P{^Nv=4.000000000000000e+04}', "");
+    Expect(0, 126249, '\p{Nv=4.000000000000000e+04}', "");
+    Expect(1, 126249, '\p{^Nv=4.000000000000000e+04}', "");
+    Expect(1, 126249, '\P{Nv=4.000000000000000e+04}', "");
+    Expect(0, 126249, '\P{^Nv=4.000000000000000e+04}', "");
+    Error('\p{Is_Numeric_Value:  :=004000_0}');
+    Error('\P{Is_Numeric_Value:  :=004000_0}');
+    Expect(1, 126248, '\p{Is_Numeric_Value=40000}', "");
+    Expect(0, 126248, '\p{^Is_Numeric_Value=40000}', "");
+    Expect(0, 126248, '\P{Is_Numeric_Value=40000}', "");
+    Expect(1, 126248, '\P{^Is_Numeric_Value=40000}', "");
+    Expect(0, 126249, '\p{Is_Numeric_Value=40000}', "");
+    Expect(1, 126249, '\p{^Is_Numeric_Value=40000}', "");
+    Expect(1, 126249, '\P{Is_Numeric_Value=40000}', "");
+    Expect(0, 126249, '\P{^Is_Numeric_Value=40000}', "");
     Expect(1, 126248, '\p{Is_Numeric_Value=4.000000000000000e+04}', "");
     Expect(0, 126248, '\p{^Is_Numeric_Value=4.000000000000000e+04}', "");
     Expect(0, 126248, '\P{Is_Numeric_Value=4.000000000000000e+04}', "");
@@ -80701,16 +81291,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126249, '\p{^Is_Numeric_Value=4.000000000000000e+04}', "");
     Expect(1, 126249, '\P{Is_Numeric_Value=4.000000000000000e+04}', "");
     Expect(0, 126249, '\P{^Is_Numeric_Value=4.000000000000000e+04}', "");
-    Error('\p{Is_Nv=/a/_	0000000040000}');
-    Error('\P{Is_Nv=/a/_	0000000040000}');
-    Expect(1, 126248, '\p{Is_Nv=0004000_0}', "");
-    Expect(0, 126248, '\p{^Is_Nv=0004000_0}', "");
-    Expect(0, 126248, '\P{Is_Nv=0004000_0}', "");
-    Expect(1, 126248, '\P{^Is_Nv=0004000_0}', "");
-    Expect(0, 126249, '\p{Is_Nv=0004000_0}', "");
-    Expect(1, 126249, '\p{^Is_Nv=0004000_0}', "");
-    Expect(1, 126249, '\P{Is_Nv=0004000_0}', "");
-    Expect(0, 126249, '\P{^Is_Nv=0004000_0}', "");
+    Error('\p{Is_Nv=:=	_0_0_0_4_0000}');
+    Error('\P{Is_Nv=:=	_0_0_0_4_0000}');
+    Expect(1, 126248, '\p{Is_Nv=4000_0}', "");
+    Expect(0, 126248, '\p{^Is_Nv=4000_0}', "");
+    Expect(0, 126248, '\P{Is_Nv=4000_0}', "");
+    Expect(1, 126248, '\P{^Is_Nv=4000_0}', "");
+    Expect(0, 126249, '\p{Is_Nv=4000_0}', "");
+    Expect(1, 126249, '\p{^Is_Nv=4000_0}', "");
+    Expect(1, 126249, '\P{Is_Nv=4000_0}', "");
+    Expect(0, 126249, '\P{^Is_Nv=4000_0}', "");
     Expect(1, 126248, '\p{Is_Nv=4.000000000000000e+04}', "");
     Expect(0, 126248, '\p{^Is_Nv=4.000000000000000e+04}', "");
     Expect(0, 126248, '\P{Is_Nv=4.000000000000000e+04}', "");
@@ -80719,18 +81309,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126249, '\p{^Is_Nv=4.000000000000000e+04}', "");
     Expect(1, 126249, '\P{Is_Nv=4.000000000000000e+04}', "");
     Expect(0, 126249, '\P{^Is_Nv=4.000000000000000e+04}', "");
-    Error('\p{Numeric_Value=		000400000:=}');
-    Error('\P{Numeric_Value=		000400000:=}');
+    Error('\p{Numeric_Value=:=	_400000}');
+    Error('\P{Numeric_Value=:=	_400000}');
     Expect(1, 68080, '\p{Numeric_Value=:\A400000\z:}', "");;
     Expect(0, 68081, '\p{Numeric_Value=:\A400000\z:}', "");;
-    Expect(1, 68080, '\p{Numeric_Value=0000000400000}', "");
-    Expect(0, 68080, '\p{^Numeric_Value=0000000400000}', "");
-    Expect(0, 68080, '\P{Numeric_Value=0000000400000}', "");
-    Expect(1, 68080, '\P{^Numeric_Value=0000000400000}', "");
-    Expect(0, 68081, '\p{Numeric_Value=0000000400000}', "");
-    Expect(1, 68081, '\p{^Numeric_Value=0000000400000}', "");
-    Expect(1, 68081, '\P{Numeric_Value=0000000400000}', "");
-    Expect(0, 68081, '\P{^Numeric_Value=0000000400000}', "");
+    Expect(1, 68080, '\p{Numeric_Value=00_04_00_000}', "");
+    Expect(0, 68080, '\p{^Numeric_Value=00_04_00_000}', "");
+    Expect(0, 68080, '\P{Numeric_Value=00_04_00_000}', "");
+    Expect(1, 68080, '\P{^Numeric_Value=00_04_00_000}', "");
+    Expect(0, 68081, '\p{Numeric_Value=00_04_00_000}', "");
+    Expect(1, 68081, '\p{^Numeric_Value=00_04_00_000}', "");
+    Expect(1, 68081, '\P{Numeric_Value=00_04_00_000}', "");
+    Expect(0, 68081, '\P{^Numeric_Value=00_04_00_000}', "");
     Expect(1, 68080, '\p{Numeric_Value=4.000000000000000e+05}', "");
     Expect(0, 68080, '\p{^Numeric_Value=4.000000000000000e+05}', "");
     Expect(0, 68080, '\P{Numeric_Value=4.000000000000000e+05}', "");
@@ -80739,18 +81329,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68081, '\p{^Numeric_Value=4.000000000000000e+05}', "");
     Expect(1, 68081, '\P{Numeric_Value=4.000000000000000e+05}', "");
     Expect(0, 68081, '\P{^Numeric_Value=4.000000000000000e+05}', "");
-    Error('\p{Nv=--0000000400000/a/}');
-    Error('\P{Nv=--0000000400000/a/}');
+    Error('\p{Nv=/a/_-0_0_4_0_0_000}');
+    Error('\P{Nv=/a/_-0_0_4_0_0_000}');
     Expect(1, 68080, '\p{Nv=:\A400000\z:}', "");;
     Expect(0, 68081, '\p{Nv=:\A400000\z:}', "");;
-    Expect(1, 68080, '\p{Nv=0000400000}', "");
-    Expect(0, 68080, '\p{^Nv=0000400000}', "");
-    Expect(0, 68080, '\P{Nv=0000400000}', "");
-    Expect(1, 68080, '\P{^Nv=0000400000}', "");
-    Expect(0, 68081, '\p{Nv=0000400000}', "");
-    Expect(1, 68081, '\p{^Nv=0000400000}', "");
-    Expect(1, 68081, '\P{Nv=0000400000}', "");
-    Expect(0, 68081, '\P{^Nv=0000400000}', "");
+    Expect(1, 68080, '\p{Nv=+0000000400000}', "");
+    Expect(0, 68080, '\p{^Nv=+0000000400000}', "");
+    Expect(0, 68080, '\P{Nv=+0000000400000}', "");
+    Expect(1, 68080, '\P{^Nv=+0000000400000}', "");
+    Expect(0, 68081, '\p{Nv=+0000000400000}', "");
+    Expect(1, 68081, '\p{^Nv=+0000000400000}', "");
+    Expect(1, 68081, '\P{Nv=+0000000400000}', "");
+    Expect(0, 68081, '\P{^Nv=+0000000400000}', "");
     Expect(1, 68080, '\p{Nv=4.000000000000000e+05}', "");
     Expect(0, 68080, '\p{^Nv=4.000000000000000e+05}', "");
     Expect(0, 68080, '\P{Nv=4.000000000000000e+05}', "");
@@ -80759,34 +81349,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68081, '\p{^Nv=4.000000000000000e+05}', "");
     Expect(1, 68081, '\P{Nv=4.000000000000000e+05}', "");
     Expect(0, 68081, '\P{^Nv=4.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value= /a/000000000400000}');
-    Error('\P{Is_Numeric_Value= /a/000000000400000}');
-    Expect(1, 68080, '\p{Is_Numeric_Value=00000000400000}', "");
-    Expect(0, 68080, '\p{^Is_Numeric_Value=00000000400000}', "");
-    Expect(0, 68080, '\P{Is_Numeric_Value=00000000400000}', "");
-    Expect(1, 68080, '\P{^Is_Numeric_Value=00000000400000}', "");
-    Expect(0, 68081, '\p{Is_Numeric_Value=00000000400000}', "");
-    Expect(1, 68081, '\p{^Is_Numeric_Value=00000000400000}', "");
-    Expect(1, 68081, '\P{Is_Numeric_Value=00000000400000}', "");
-    Expect(0, 68081, '\P{^Is_Numeric_Value=00000000400000}', "");
-    Expect(1, 68080, '\p{Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(0, 68080, '\p{^Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(0, 68080, '\P{Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(1, 68080, '\P{^Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(0, 68081, '\p{Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(1, 68081, '\p{^Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(1, 68081, '\P{Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Expect(0, 68081, '\P{^Is_Numeric_Value:	4.000000000000000e+05}', "");
-    Error('\p{Is_Nv=_	00_00_00_04_00_000:=}');
-    Error('\P{Is_Nv=_	00_00_00_04_00_000:=}');
-    Expect(1, 68080, '\p{Is_Nv=+000_004_000_00}', "");
-    Expect(0, 68080, '\p{^Is_Nv=+000_004_000_00}', "");
-    Expect(0, 68080, '\P{Is_Nv=+000_004_000_00}', "");
-    Expect(1, 68080, '\P{^Is_Nv=+000_004_000_00}', "");
-    Expect(0, 68081, '\p{Is_Nv=+000_004_000_00}', "");
-    Expect(1, 68081, '\p{^Is_Nv=+000_004_000_00}', "");
-    Expect(1, 68081, '\P{Is_Nv=+000_004_000_00}', "");
-    Expect(0, 68081, '\P{^Is_Nv=+000_004_000_00}', "");
+    Error('\p{Is_Numeric_Value=-/a/00_40_00_00}');
+    Error('\P{Is_Numeric_Value=-/a/00_40_00_00}');
+    Expect(1, 68080, '\p{Is_Numeric_Value=00000400000}', "");
+    Expect(0, 68080, '\p{^Is_Numeric_Value=00000400000}', "");
+    Expect(0, 68080, '\P{Is_Numeric_Value=00000400000}', "");
+    Expect(1, 68080, '\P{^Is_Numeric_Value=00000400000}', "");
+    Expect(0, 68081, '\p{Is_Numeric_Value=00000400000}', "");
+    Expect(1, 68081, '\p{^Is_Numeric_Value=00000400000}', "");
+    Expect(1, 68081, '\P{Is_Numeric_Value=00000400000}', "");
+    Expect(0, 68081, '\P{^Is_Numeric_Value=00000400000}', "");
+    Expect(1, 68080, '\p{Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(0, 68080, '\p{^Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(0, 68080, '\P{Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(1, 68080, '\P{^Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(0, 68081, '\p{Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(1, 68081, '\p{^Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(1, 68081, '\P{Is_Numeric_Value:4.000000000000000e+05}', "");
+    Expect(0, 68081, '\P{^Is_Numeric_Value:4.000000000000000e+05}', "");
+    Error('\p{Is_Nv=:= _0000000400000}');
+    Error('\P{Is_Nv=:= _0000000400000}');
+    Expect(1, 68080, '\p{Is_Nv=+0000_4000_00}', "");
+    Expect(0, 68080, '\p{^Is_Nv=+0000_4000_00}', "");
+    Expect(0, 68080, '\P{Is_Nv=+0000_4000_00}', "");
+    Expect(1, 68080, '\P{^Is_Nv=+0000_4000_00}', "");
+    Expect(0, 68081, '\p{Is_Nv=+0000_4000_00}', "");
+    Expect(1, 68081, '\p{^Is_Nv=+0000_4000_00}', "");
+    Expect(1, 68081, '\P{Is_Nv=+0000_4000_00}', "");
+    Expect(0, 68081, '\P{^Is_Nv=+0000_4000_00}', "");
     Expect(1, 68080, '\p{Is_Nv=4.000000000000000e+05}', "");
     Expect(0, 68080, '\p{^Is_Nv=4.000000000000000e+05}', "");
     Expect(0, 68080, '\P{Is_Nv=4.000000000000000e+05}', "");
@@ -80795,18 +81385,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68081, '\p{^Is_Nv=4.000000000000000e+05}', "");
     Expect(1, 68081, '\P{Is_Nv=4.000000000000000e+05}', "");
     Expect(0, 68081, '\P{^Is_Nv=4.000000000000000e+05}', "");
-    Error('\p{Numeric_Value:	/a/+0000_0000_41}');
-    Error('\P{Numeric_Value:	/a/+0000_0000_41}');
+    Error('\p{Numeric_Value=:=-+4_1}');
+    Error('\P{Numeric_Value=:=-+4_1}');
     Expect(1, 12982, '\p{Numeric_Value=:\A41\z:}', "");;
     Expect(0, 12983, '\p{Numeric_Value=:\A41\z:}', "");;
-    Expect(1, 12982, '\p{Numeric_Value=0000041}', "");
-    Expect(0, 12982, '\p{^Numeric_Value=0000041}', "");
-    Expect(0, 12982, '\P{Numeric_Value=0000041}', "");
-    Expect(1, 12982, '\P{^Numeric_Value=0000041}', "");
-    Expect(0, 12983, '\p{Numeric_Value=0000041}', "");
-    Expect(1, 12983, '\p{^Numeric_Value=0000041}', "");
-    Expect(1, 12983, '\P{Numeric_Value=0000041}', "");
-    Expect(0, 12983, '\P{^Numeric_Value=0000041}', "");
+    Expect(1, 12982, '\p{Numeric_Value:   00000041}', "");
+    Expect(0, 12982, '\p{^Numeric_Value:   00000041}', "");
+    Expect(0, 12982, '\P{Numeric_Value:   00000041}', "");
+    Expect(1, 12982, '\P{^Numeric_Value:   00000041}', "");
+    Expect(0, 12983, '\p{Numeric_Value:   00000041}', "");
+    Expect(1, 12983, '\p{^Numeric_Value:   00000041}', "");
+    Expect(1, 12983, '\P{Numeric_Value:   00000041}', "");
+    Expect(0, 12983, '\P{^Numeric_Value:   00000041}', "");
     Expect(1, 12982, '\p{Numeric_Value=4.100000000000000e+01}', "");
     Expect(0, 12982, '\p{^Numeric_Value=4.100000000000000e+01}', "");
     Expect(0, 12982, '\P{Numeric_Value=4.100000000000000e+01}', "");
@@ -80815,18 +81405,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12983, '\p{^Numeric_Value=4.100000000000000e+01}', "");
     Expect(1, 12983, '\P{Numeric_Value=4.100000000000000e+01}', "");
     Expect(0, 12983, '\P{^Numeric_Value=4.100000000000000e+01}', "");
-    Error('\p{Nv=/a/ -0_0_0_0_41}');
-    Error('\P{Nv=/a/ -0_0_0_0_41}');
+    Error('\p{Nv=	/a/0_0_41}');
+    Error('\P{Nv=	/a/0_0_41}');
     Expect(1, 12982, '\p{Nv=:\A41\z:}', "");;
     Expect(0, 12983, '\p{Nv=:\A41\z:}', "");;
-    Expect(1, 12982, '\p{Nv=+04_1}', "");
-    Expect(0, 12982, '\p{^Nv=+04_1}', "");
-    Expect(0, 12982, '\P{Nv=+04_1}', "");
-    Expect(1, 12982, '\P{^Nv=+04_1}', "");
-    Expect(0, 12983, '\p{Nv=+04_1}', "");
-    Expect(1, 12983, '\p{^Nv=+04_1}', "");
-    Expect(1, 12983, '\P{Nv=+04_1}', "");
-    Expect(0, 12983, '\P{^Nv=+04_1}', "");
+    Expect(1, 12982, '\p{Nv=+00000000041}', "");
+    Expect(0, 12982, '\p{^Nv=+00000000041}', "");
+    Expect(0, 12982, '\P{Nv=+00000000041}', "");
+    Expect(1, 12982, '\P{^Nv=+00000000041}', "");
+    Expect(0, 12983, '\p{Nv=+00000000041}', "");
+    Expect(1, 12983, '\p{^Nv=+00000000041}', "");
+    Expect(1, 12983, '\P{Nv=+00000000041}', "");
+    Expect(0, 12983, '\P{^Nv=+00000000041}', "");
     Expect(1, 12982, '\p{Nv=4.100000000000000e+01}', "");
     Expect(0, 12982, '\p{^Nv=4.100000000000000e+01}', "");
     Expect(0, 12982, '\P{Nv=4.100000000000000e+01}', "");
@@ -80835,16 +81425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12983, '\p{^Nv=4.100000000000000e+01}', "");
     Expect(1, 12983, '\P{Nv=4.100000000000000e+01}', "");
     Expect(0, 12983, '\P{^Nv=4.100000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=	:=+000004_1}');
-    Error('\P{Is_Numeric_Value=	:=+000004_1}');
-    Expect(1, 12982, '\p{Is_Numeric_Value=00000041}', "");
-    Expect(0, 12982, '\p{^Is_Numeric_Value=00000041}', "");
-    Expect(0, 12982, '\P{Is_Numeric_Value=00000041}', "");
-    Expect(1, 12982, '\P{^Is_Numeric_Value=00000041}', "");
-    Expect(0, 12983, '\p{Is_Numeric_Value=00000041}', "");
-    Expect(1, 12983, '\p{^Is_Numeric_Value=00000041}', "");
-    Expect(1, 12983, '\P{Is_Numeric_Value=00000041}', "");
-    Expect(0, 12983, '\P{^Is_Numeric_Value=00000041}', "");
+    Error('\p{Is_Numeric_Value=/a/_	00000000041}');
+    Error('\P{Is_Numeric_Value=/a/_	00000000041}');
+    Expect(1, 12982, '\p{Is_Numeric_Value=00041}', "");
+    Expect(0, 12982, '\p{^Is_Numeric_Value=00041}', "");
+    Expect(0, 12982, '\P{Is_Numeric_Value=00041}', "");
+    Expect(1, 12982, '\P{^Is_Numeric_Value=00041}', "");
+    Expect(0, 12983, '\p{Is_Numeric_Value=00041}', "");
+    Expect(1, 12983, '\p{^Is_Numeric_Value=00041}', "");
+    Expect(1, 12983, '\P{Is_Numeric_Value=00041}', "");
+    Expect(0, 12983, '\P{^Is_Numeric_Value=00041}', "");
     Expect(1, 12982, '\p{Is_Numeric_Value=4.100000000000000e+01}', "");
     Expect(0, 12982, '\p{^Is_Numeric_Value=4.100000000000000e+01}', "");
     Expect(0, 12982, '\P{Is_Numeric_Value=4.100000000000000e+01}', "");
@@ -80853,16 +81443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12983, '\p{^Is_Numeric_Value=4.100000000000000e+01}', "");
     Expect(1, 12983, '\P{Is_Numeric_Value=4.100000000000000e+01}', "");
     Expect(0, 12983, '\P{^Is_Numeric_Value=4.100000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/+0000000041}');
-    Error('\P{Is_Nv=/a/+0000000041}');
-    Expect(1, 12982, '\p{Is_Nv=00_04_1}', "");
-    Expect(0, 12982, '\p{^Is_Nv=00_04_1}', "");
-    Expect(0, 12982, '\P{Is_Nv=00_04_1}', "");
-    Expect(1, 12982, '\P{^Is_Nv=00_04_1}', "");
-    Expect(0, 12983, '\p{Is_Nv=00_04_1}', "");
-    Expect(1, 12983, '\p{^Is_Nv=00_04_1}', "");
-    Expect(1, 12983, '\P{Is_Nv=00_04_1}', "");
-    Expect(0, 12983, '\P{^Is_Nv=00_04_1}', "");
+    Error('\p{Is_Nv=	_0_0_0_0_041:=}');
+    Error('\P{Is_Nv=	_0_0_0_0_041:=}');
+    Expect(1, 12982, '\p{Is_Nv=00041}', "");
+    Expect(0, 12982, '\p{^Is_Nv=00041}', "");
+    Expect(0, 12982, '\P{Is_Nv=00041}', "");
+    Expect(1, 12982, '\P{^Is_Nv=00041}', "");
+    Expect(0, 12983, '\p{Is_Nv=00041}', "");
+    Expect(1, 12983, '\p{^Is_Nv=00041}', "");
+    Expect(1, 12983, '\P{Is_Nv=00041}', "");
+    Expect(0, 12983, '\P{^Is_Nv=00041}', "");
     Expect(1, 12982, '\p{Is_Nv=4.100000000000000e+01}', "");
     Expect(0, 12982, '\p{^Is_Nv=4.100000000000000e+01}', "");
     Expect(0, 12982, '\P{Is_Nv=4.100000000000000e+01}', "");
@@ -80871,18 +81461,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12983, '\p{^Is_Nv=4.100000000000000e+01}', "");
     Expect(1, 12983, '\P{Is_Nv=4.100000000000000e+01}', "");
     Expect(0, 12983, '\P{^Is_Nv=4.100000000000000e+01}', "");
-    Error('\p{Numeric_Value=	/a/04_2}');
-    Error('\P{Numeric_Value=	/a/04_2}');
+    Error('\p{Numeric_Value=/a/00000042}');
+    Error('\P{Numeric_Value=/a/00000042}');
     Expect(1, 12983, '\p{Numeric_Value=:\A42\z:}', "");;
     Expect(0, 12984, '\p{Numeric_Value=:\A42\z:}', "");;
-    Expect(1, 12983, '\p{Numeric_Value:	0000042}', "");
-    Expect(0, 12983, '\p{^Numeric_Value:	0000042}', "");
-    Expect(0, 12983, '\P{Numeric_Value:	0000042}', "");
-    Expect(1, 12983, '\P{^Numeric_Value:	0000042}', "");
-    Expect(0, 12984, '\p{Numeric_Value:	0000042}', "");
-    Expect(1, 12984, '\p{^Numeric_Value:	0000042}', "");
-    Expect(1, 12984, '\P{Numeric_Value:	0000042}', "");
-    Expect(0, 12984, '\P{^Numeric_Value:	0000042}', "");
+    Expect(1, 12983, '\p{Numeric_Value=000000042}', "");
+    Expect(0, 12983, '\p{^Numeric_Value=000000042}', "");
+    Expect(0, 12983, '\P{Numeric_Value=000000042}', "");
+    Expect(1, 12983, '\P{^Numeric_Value=000000042}', "");
+    Expect(0, 12984, '\p{Numeric_Value=000000042}', "");
+    Expect(1, 12984, '\p{^Numeric_Value=000000042}', "");
+    Expect(1, 12984, '\P{Numeric_Value=000000042}', "");
+    Expect(0, 12984, '\P{^Numeric_Value=000000042}', "");
     Expect(1, 12983, '\p{Numeric_Value=4.200000000000000e+01}', "");
     Expect(0, 12983, '\p{^Numeric_Value=4.200000000000000e+01}', "");
     Expect(0, 12983, '\P{Numeric_Value=4.200000000000000e+01}', "");
@@ -80891,18 +81481,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12984, '\p{^Numeric_Value=4.200000000000000e+01}', "");
     Expect(1, 12984, '\P{Numeric_Value=4.200000000000000e+01}', "");
     Expect(0, 12984, '\P{^Numeric_Value=4.200000000000000e+01}', "");
-    Error('\p{Nv=__0000042:=}');
-    Error('\P{Nv=__0000042:=}');
+    Error('\p{Nv=/a/- 00_00_00_42}');
+    Error('\P{Nv=/a/- 00_00_00_42}');
     Expect(1, 12983, '\p{Nv=:\A42\z:}', "");;
     Expect(0, 12984, '\p{Nv=:\A42\z:}', "");;
-    Expect(1, 12983, '\p{Nv: 0000000042}', "");
-    Expect(0, 12983, '\p{^Nv: 0000000042}', "");
-    Expect(0, 12983, '\P{Nv: 0000000042}', "");
-    Expect(1, 12983, '\P{^Nv: 0000000042}', "");
-    Expect(0, 12984, '\p{Nv: 0000000042}', "");
-    Expect(1, 12984, '\p{^Nv: 0000000042}', "");
-    Expect(1, 12984, '\P{Nv: 0000000042}', "");
-    Expect(0, 12984, '\P{^Nv: 0000000042}', "");
+    Expect(1, 12983, '\p{Nv=+0000042}', "");
+    Expect(0, 12983, '\p{^Nv=+0000042}', "");
+    Expect(0, 12983, '\P{Nv=+0000042}', "");
+    Expect(1, 12983, '\P{^Nv=+0000042}', "");
+    Expect(0, 12984, '\p{Nv=+0000042}', "");
+    Expect(1, 12984, '\p{^Nv=+0000042}', "");
+    Expect(1, 12984, '\P{Nv=+0000042}', "");
+    Expect(0, 12984, '\P{^Nv=+0000042}', "");
     Expect(1, 12983, '\p{Nv=4.200000000000000e+01}', "");
     Expect(0, 12983, '\p{^Nv=4.200000000000000e+01}', "");
     Expect(0, 12983, '\P{Nv=4.200000000000000e+01}', "");
@@ -80911,16 +81501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12984, '\p{^Nv=4.200000000000000e+01}', "");
     Expect(1, 12984, '\P{Nv=4.200000000000000e+01}', "");
     Expect(0, 12984, '\P{^Nv=4.200000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value: :=	0_0_0_0_0_042}');
-    Error('\P{Is_Numeric_Value: :=	0_0_0_0_0_042}');
-    Expect(1, 12983, '\p{Is_Numeric_Value=+0042}', "");
-    Expect(0, 12983, '\p{^Is_Numeric_Value=+0042}', "");
-    Expect(0, 12983, '\P{Is_Numeric_Value=+0042}', "");
-    Expect(1, 12983, '\P{^Is_Numeric_Value=+0042}', "");
-    Expect(0, 12984, '\p{Is_Numeric_Value=+0042}', "");
-    Expect(1, 12984, '\p{^Is_Numeric_Value=+0042}', "");
-    Expect(1, 12984, '\P{Is_Numeric_Value=+0042}', "");
-    Expect(0, 12984, '\P{^Is_Numeric_Value=+0042}', "");
+    Error('\p{Is_Numeric_Value=/a/-+0000042}');
+    Error('\P{Is_Numeric_Value=/a/-+0000042}');
+    Expect(1, 12983, '\p{Is_Numeric_Value=00000000042}', "");
+    Expect(0, 12983, '\p{^Is_Numeric_Value=00000000042}', "");
+    Expect(0, 12983, '\P{Is_Numeric_Value=00000000042}', "");
+    Expect(1, 12983, '\P{^Is_Numeric_Value=00000000042}', "");
+    Expect(0, 12984, '\p{Is_Numeric_Value=00000000042}', "");
+    Expect(1, 12984, '\p{^Is_Numeric_Value=00000000042}', "");
+    Expect(1, 12984, '\P{Is_Numeric_Value=00000000042}', "");
+    Expect(0, 12984, '\P{^Is_Numeric_Value=00000000042}', "");
     Expect(1, 12983, '\p{Is_Numeric_Value=4.200000000000000e+01}', "");
     Expect(0, 12983, '\p{^Is_Numeric_Value=4.200000000000000e+01}', "");
     Expect(0, 12983, '\P{Is_Numeric_Value=4.200000000000000e+01}', "");
@@ -80929,16 +81519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12984, '\p{^Is_Numeric_Value=4.200000000000000e+01}', "");
     Expect(1, 12984, '\P{Is_Numeric_Value=4.200000000000000e+01}', "");
     Expect(0, 12984, '\P{^Is_Numeric_Value=4.200000000000000e+01}', "");
-    Error('\p{Is_Nv: :=	000000042}');
-    Error('\P{Is_Nv: :=	000000042}');
-    Expect(1, 12983, '\p{Is_Nv=0000000042}', "");
-    Expect(0, 12983, '\p{^Is_Nv=0000000042}', "");
-    Expect(0, 12983, '\P{Is_Nv=0000000042}', "");
-    Expect(1, 12983, '\P{^Is_Nv=0000000042}', "");
-    Expect(0, 12984, '\p{Is_Nv=0000000042}', "");
-    Expect(1, 12984, '\p{^Is_Nv=0000000042}', "");
-    Expect(1, 12984, '\P{Is_Nv=0000000042}', "");
-    Expect(0, 12984, '\P{^Is_Nv=0000000042}', "");
+    Error('\p{Is_Nv=-_042:=}');
+    Error('\P{Is_Nv=-_042:=}');
+    Expect(1, 12983, '\p{Is_Nv=0_0_0_0_0042}', "");
+    Expect(0, 12983, '\p{^Is_Nv=0_0_0_0_0042}', "");
+    Expect(0, 12983, '\P{Is_Nv=0_0_0_0_0042}', "");
+    Expect(1, 12983, '\P{^Is_Nv=0_0_0_0_0042}', "");
+    Expect(0, 12984, '\p{Is_Nv=0_0_0_0_0042}', "");
+    Expect(1, 12984, '\p{^Is_Nv=0_0_0_0_0042}', "");
+    Expect(1, 12984, '\P{Is_Nv=0_0_0_0_0042}', "");
+    Expect(0, 12984, '\P{^Is_Nv=0_0_0_0_0042}', "");
     Expect(1, 12983, '\p{Is_Nv:   4.200000000000000e+01}', "");
     Expect(0, 12983, '\p{^Is_Nv:   4.200000000000000e+01}', "");
     Expect(0, 12983, '\P{Is_Nv:   4.200000000000000e+01}', "");
@@ -80947,18 +81537,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12984, '\p{^Is_Nv:   4.200000000000000e+01}', "");
     Expect(1, 12984, '\P{Is_Nv:   4.200000000000000e+01}', "");
     Expect(0, 12984, '\P{^Is_Nv:   4.200000000000000e+01}', "");
-    Error('\p{Numeric_Value=_:=0000043}');
-    Error('\P{Numeric_Value=_:=0000043}');
+    Error('\p{Numeric_Value=_ +00000043/a/}');
+    Error('\P{Numeric_Value=_ +00000043/a/}');
     Expect(1, 12984, '\p{Numeric_Value=:\A43\z:}', "");;
     Expect(0, 12985, '\p{Numeric_Value=:\A43\z:}', "");;
-    Expect(1, 12984, '\p{Numeric_Value=000000043}', "");
-    Expect(0, 12984, '\p{^Numeric_Value=000000043}', "");
-    Expect(0, 12984, '\P{Numeric_Value=000000043}', "");
-    Expect(1, 12984, '\P{^Numeric_Value=000000043}', "");
-    Expect(0, 12985, '\p{Numeric_Value=000000043}', "");
-    Expect(1, 12985, '\p{^Numeric_Value=000000043}', "");
-    Expect(1, 12985, '\P{Numeric_Value=000000043}', "");
-    Expect(0, 12985, '\P{^Numeric_Value=000000043}', "");
+    Expect(1, 12984, '\p{Numeric_Value=+00000043}', "");
+    Expect(0, 12984, '\p{^Numeric_Value=+00000043}', "");
+    Expect(0, 12984, '\P{Numeric_Value=+00000043}', "");
+    Expect(1, 12984, '\P{^Numeric_Value=+00000043}', "");
+    Expect(0, 12985, '\p{Numeric_Value=+00000043}', "");
+    Expect(1, 12985, '\p{^Numeric_Value=+00000043}', "");
+    Expect(1, 12985, '\P{Numeric_Value=+00000043}', "");
+    Expect(0, 12985, '\P{^Numeric_Value=+00000043}', "");
     Expect(1, 12984, '\p{Numeric_Value=4.300000000000000e+01}', "");
     Expect(0, 12984, '\p{^Numeric_Value=4.300000000000000e+01}', "");
     Expect(0, 12984, '\P{Numeric_Value=4.300000000000000e+01}', "");
@@ -80967,18 +81557,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12985, '\p{^Numeric_Value=4.300000000000000e+01}', "");
     Expect(1, 12985, '\P{Numeric_Value=4.300000000000000e+01}', "");
     Expect(0, 12985, '\P{^Numeric_Value=4.300000000000000e+01}', "");
-    Error('\p{Nv=--00_04_3:=}');
-    Error('\P{Nv=--00_04_3:=}');
+    Error('\p{Nv=:=__000_004_3}');
+    Error('\P{Nv=:=__000_004_3}');
     Expect(1, 12984, '\p{Nv=:\A43\z:}', "");;
     Expect(0, 12985, '\p{Nv=:\A43\z:}', "");;
-    Expect(1, 12984, '\p{Nv=00043}', "");
-    Expect(0, 12984, '\p{^Nv=00043}', "");
-    Expect(0, 12984, '\P{Nv=00043}', "");
-    Expect(1, 12984, '\P{^Nv=00043}', "");
-    Expect(0, 12985, '\p{Nv=00043}', "");
-    Expect(1, 12985, '\p{^Nv=00043}', "");
-    Expect(1, 12985, '\P{Nv=00043}', "");
-    Expect(0, 12985, '\P{^Nv=00043}', "");
+    Expect(1, 12984, '\p{Nv=00000000043}', "");
+    Expect(0, 12984, '\p{^Nv=00000000043}', "");
+    Expect(0, 12984, '\P{Nv=00000000043}', "");
+    Expect(1, 12984, '\P{^Nv=00000000043}', "");
+    Expect(0, 12985, '\p{Nv=00000000043}', "");
+    Expect(1, 12985, '\p{^Nv=00000000043}', "");
+    Expect(1, 12985, '\P{Nv=00000000043}', "");
+    Expect(0, 12985, '\P{^Nv=00000000043}', "");
     Expect(1, 12984, '\p{Nv=4.300000000000000e+01}', "");
     Expect(0, 12984, '\p{^Nv=4.300000000000000e+01}', "");
     Expect(0, 12984, '\P{Nv=4.300000000000000e+01}', "");
@@ -80987,16 +81577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12985, '\p{^Nv=4.300000000000000e+01}', "");
     Expect(1, 12985, '\P{Nv=4.300000000000000e+01}', "");
     Expect(0, 12985, '\P{^Nv=4.300000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=:=--+00000000043}');
-    Error('\P{Is_Numeric_Value=:=--+00000000043}');
-    Expect(1, 12984, '\p{Is_Numeric_Value:   00000000043}', "");
-    Expect(0, 12984, '\p{^Is_Numeric_Value:   00000000043}', "");
-    Expect(0, 12984, '\P{Is_Numeric_Value:   00000000043}', "");
-    Expect(1, 12984, '\P{^Is_Numeric_Value:   00000000043}', "");
-    Expect(0, 12985, '\p{Is_Numeric_Value:   00000000043}', "");
-    Expect(1, 12985, '\p{^Is_Numeric_Value:   00000000043}', "");
-    Expect(1, 12985, '\P{Is_Numeric_Value:   00000000043}', "");
-    Expect(0, 12985, '\P{^Is_Numeric_Value:   00000000043}', "");
+    Error('\p{Is_Numeric_Value:    00000043/a/}');
+    Error('\P{Is_Numeric_Value:    00000043/a/}');
+    Expect(1, 12984, '\p{Is_Numeric_Value=004_3}', "");
+    Expect(0, 12984, '\p{^Is_Numeric_Value=004_3}', "");
+    Expect(0, 12984, '\P{Is_Numeric_Value=004_3}', "");
+    Expect(1, 12984, '\P{^Is_Numeric_Value=004_3}', "");
+    Expect(0, 12985, '\p{Is_Numeric_Value=004_3}', "");
+    Expect(1, 12985, '\p{^Is_Numeric_Value=004_3}', "");
+    Expect(1, 12985, '\P{Is_Numeric_Value=004_3}', "");
+    Expect(0, 12985, '\P{^Is_Numeric_Value=004_3}', "");
     Expect(1, 12984, '\p{Is_Numeric_Value=4.300000000000000e+01}', "");
     Expect(0, 12984, '\p{^Is_Numeric_Value=4.300000000000000e+01}', "");
     Expect(0, 12984, '\P{Is_Numeric_Value=4.300000000000000e+01}', "");
@@ -81005,16 +81595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12985, '\p{^Is_Numeric_Value=4.300000000000000e+01}', "");
     Expect(1, 12985, '\P{Is_Numeric_Value=4.300000000000000e+01}', "");
     Expect(0, 12985, '\P{^Is_Numeric_Value=4.300000000000000e+01}', "");
-    Error('\p{Is_Nv=	 0043/a/}');
-    Error('\P{Is_Nv=	 0043/a/}');
-    Expect(1, 12984, '\p{Is_Nv=0000043}', "");
-    Expect(0, 12984, '\p{^Is_Nv=0000043}', "");
-    Expect(0, 12984, '\P{Is_Nv=0000043}', "");
-    Expect(1, 12984, '\P{^Is_Nv=0000043}', "");
-    Expect(0, 12985, '\p{Is_Nv=0000043}', "");
-    Expect(1, 12985, '\p{^Is_Nv=0000043}', "");
-    Expect(1, 12985, '\P{Is_Nv=0000043}', "");
-    Expect(0, 12985, '\P{^Is_Nv=0000043}', "");
+    Error('\p{Is_Nv=	00_00_00_00_043:=}');
+    Error('\P{Is_Nv=	00_00_00_00_043:=}');
+    Expect(1, 12984, '\p{Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(0, 12984, '\p{^Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(0, 12984, '\P{Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(1, 12984, '\P{^Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(0, 12985, '\p{Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(1, 12985, '\p{^Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(1, 12985, '\P{Is_Nv=0_0_0_0_0_00043}', "");
+    Expect(0, 12985, '\P{^Is_Nv=0_0_0_0_0_00043}', "");
     Expect(1, 12984, '\p{Is_Nv=4.300000000000000e+01}', "");
     Expect(0, 12984, '\p{^Is_Nv=4.300000000000000e+01}', "");
     Expect(0, 12984, '\P{Is_Nv=4.300000000000000e+01}', "");
@@ -81023,18 +81613,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12985, '\p{^Is_Nv=4.300000000000000e+01}', "");
     Expect(1, 12985, '\P{Is_Nv=4.300000000000000e+01}', "");
     Expect(0, 12985, '\P{^Is_Nv=4.300000000000000e+01}', "");
-    Error('\p{Numeric_Value=:=_ 000000_004320_00}');
-    Error('\P{Numeric_Value=:=_ 000000_004320_00}');
+    Error('\p{Numeric_Value=	000432000:=}');
+    Error('\P{Numeric_Value=	000432000:=}');
     Expect(1, 74803, '\p{Numeric_Value=:\A432000\z:}', "");;
     Expect(0, 74804, '\p{Numeric_Value=:\A432000\z:}', "");;
-    Expect(1, 74803, '\p{Numeric_Value=+00000432000}', "");
-    Expect(0, 74803, '\p{^Numeric_Value=+00000432000}', "");
-    Expect(0, 74803, '\P{Numeric_Value=+00000432000}', "");
-    Expect(1, 74803, '\P{^Numeric_Value=+00000432000}', "");
-    Expect(0, 74804, '\p{Numeric_Value=+00000432000}', "");
-    Expect(1, 74804, '\p{^Numeric_Value=+00000432000}', "");
-    Expect(1, 74804, '\P{Numeric_Value=+00000432000}', "");
-    Expect(0, 74804, '\P{^Numeric_Value=+00000432000}', "");
+    Expect(1, 74803, '\p{Numeric_Value=+000432000}', "");
+    Expect(0, 74803, '\p{^Numeric_Value=+000432000}', "");
+    Expect(0, 74803, '\P{Numeric_Value=+000432000}', "");
+    Expect(1, 74803, '\P{^Numeric_Value=+000432000}', "");
+    Expect(0, 74804, '\p{Numeric_Value=+000432000}', "");
+    Expect(1, 74804, '\p{^Numeric_Value=+000432000}', "");
+    Expect(1, 74804, '\P{Numeric_Value=+000432000}', "");
+    Expect(0, 74804, '\P{^Numeric_Value=+000432000}', "");
     Expect(1, 74803, '\p{Numeric_Value=4.320000000000000e+05}', "");
     Expect(0, 74803, '\p{^Numeric_Value=4.320000000000000e+05}', "");
     Expect(0, 74803, '\P{Numeric_Value=4.320000000000000e+05}', "");
@@ -81043,18 +81633,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74804, '\p{^Numeric_Value=4.320000000000000e+05}', "");
     Expect(1, 74804, '\P{Numeric_Value=4.320000000000000e+05}', "");
     Expect(0, 74804, '\P{^Numeric_Value=4.320000000000000e+05}', "");
-    Error('\p{Nv=/a/ 432000}');
-    Error('\P{Nv=/a/ 432000}');
+    Error('\p{Nv= -000_043_200_0/a/}');
+    Error('\P{Nv= -000_043_200_0/a/}');
     Expect(1, 74803, '\p{Nv=:\A432000\z:}', "");;
     Expect(0, 74804, '\p{Nv=:\A432000\z:}', "");;
-    Expect(1, 74803, '\p{Nv:+000_000_004_320_00}', "");
-    Expect(0, 74803, '\p{^Nv:+000_000_004_320_00}', "");
-    Expect(0, 74803, '\P{Nv:+000_000_004_320_00}', "");
-    Expect(1, 74803, '\P{^Nv:+000_000_004_320_00}', "");
-    Expect(0, 74804, '\p{Nv:+000_000_004_320_00}', "");
-    Expect(1, 74804, '\p{^Nv:+000_000_004_320_00}', "");
-    Expect(1, 74804, '\P{Nv:+000_000_004_320_00}', "");
-    Expect(0, 74804, '\P{^Nv:+000_000_004_320_00}', "");
+    Expect(1, 74803, '\p{Nv:   000432000}', "");
+    Expect(0, 74803, '\p{^Nv:   000432000}', "");
+    Expect(0, 74803, '\P{Nv:   000432000}', "");
+    Expect(1, 74803, '\P{^Nv:   000432000}', "");
+    Expect(0, 74804, '\p{Nv:   000432000}', "");
+    Expect(1, 74804, '\p{^Nv:   000432000}', "");
+    Expect(1, 74804, '\P{Nv:   000432000}', "");
+    Expect(0, 74804, '\P{^Nv:   000432000}', "");
     Expect(1, 74803, '\p{Nv=4.320000000000000e+05}', "");
     Expect(0, 74803, '\p{^Nv=4.320000000000000e+05}', "");
     Expect(0, 74803, '\P{Nv=4.320000000000000e+05}', "");
@@ -81063,34 +81653,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74804, '\p{^Nv=4.320000000000000e+05}', "");
     Expect(1, 74804, '\P{Nv=4.320000000000000e+05}', "");
     Expect(0, 74804, '\P{^Nv=4.320000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value= -432000/a/}');
-    Error('\P{Is_Numeric_Value= -432000/a/}');
-    Expect(1, 74803, '\p{Is_Numeric_Value=0000432000}', "");
-    Expect(0, 74803, '\p{^Is_Numeric_Value=0000432000}', "");
-    Expect(0, 74803, '\P{Is_Numeric_Value=0000432000}', "");
-    Expect(1, 74803, '\P{^Is_Numeric_Value=0000432000}', "");
-    Expect(0, 74804, '\p{Is_Numeric_Value=0000432000}', "");
-    Expect(1, 74804, '\p{^Is_Numeric_Value=0000432000}', "");
-    Expect(1, 74804, '\P{Is_Numeric_Value=0000432000}', "");
-    Expect(0, 74804, '\P{^Is_Numeric_Value=0000432000}', "");
-    Expect(1, 74803, '\p{Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(0, 74803, '\p{^Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(0, 74803, '\P{Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(1, 74803, '\P{^Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(0, 74804, '\p{Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(1, 74804, '\p{^Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(1, 74804, '\P{Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Expect(0, 74804, '\P{^Is_Numeric_Value:   4.320000000000000e+05}', "");
-    Error('\p{Is_Nv=432000/a/}');
-    Error('\P{Is_Nv=432000/a/}');
-    Expect(1, 74803, '\p{Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(0, 74803, '\p{^Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(0, 74803, '\P{Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(1, 74803, '\P{^Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(0, 74804, '\p{Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(1, 74804, '\p{^Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(1, 74804, '\P{Is_Nv=+00_00_00_00_04_32_00_0}', "");
-    Expect(0, 74804, '\P{^Is_Nv=+00_00_00_00_04_32_00_0}', "");
+    Error('\p{Is_Numeric_Value= 0_0_4_3_2000/a/}');
+    Error('\P{Is_Numeric_Value= 0_0_4_3_2000/a/}');
+    Expect(1, 74803, '\p{Is_Numeric_Value=00000000432000}', "");
+    Expect(0, 74803, '\p{^Is_Numeric_Value=00000000432000}', "");
+    Expect(0, 74803, '\P{Is_Numeric_Value=00000000432000}', "");
+    Expect(1, 74803, '\P{^Is_Numeric_Value=00000000432000}', "");
+    Expect(0, 74804, '\p{Is_Numeric_Value=00000000432000}', "");
+    Expect(1, 74804, '\p{^Is_Numeric_Value=00000000432000}', "");
+    Expect(1, 74804, '\P{Is_Numeric_Value=00000000432000}', "");
+    Expect(0, 74804, '\P{^Is_Numeric_Value=00000000432000}', "");
+    Expect(1, 74803, '\p{Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(0, 74803, '\p{^Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(0, 74803, '\P{Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(1, 74803, '\P{^Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(0, 74804, '\p{Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(1, 74804, '\p{^Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(1, 74804, '\P{Is_Numeric_Value=4.320000000000000e+05}', "");
+    Expect(0, 74804, '\P{^Is_Numeric_Value=4.320000000000000e+05}', "");
+    Error('\p{Is_Nv=_/a/00432000}');
+    Error('\P{Is_Nv=_/a/00432000}');
+    Expect(1, 74803, '\p{Is_Nv=00_43_20_00}', "");
+    Expect(0, 74803, '\p{^Is_Nv=00_43_20_00}', "");
+    Expect(0, 74803, '\P{Is_Nv=00_43_20_00}', "");
+    Expect(1, 74803, '\P{^Is_Nv=00_43_20_00}', "");
+    Expect(0, 74804, '\p{Is_Nv=00_43_20_00}', "");
+    Expect(1, 74804, '\p{^Is_Nv=00_43_20_00}', "");
+    Expect(1, 74804, '\P{Is_Nv=00_43_20_00}', "");
+    Expect(0, 74804, '\P{^Is_Nv=00_43_20_00}', "");
     Expect(1, 74803, '\p{Is_Nv=4.320000000000000e+05}', "");
     Expect(0, 74803, '\p{^Is_Nv=4.320000000000000e+05}', "");
     Expect(0, 74803, '\P{Is_Nv=4.320000000000000e+05}', "");
@@ -81099,18 +81689,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74804, '\p{^Is_Nv=4.320000000000000e+05}', "");
     Expect(1, 74804, '\P{Is_Nv=4.320000000000000e+05}', "");
     Expect(0, 74804, '\P{^Is_Nv=4.320000000000000e+05}', "");
-    Error('\p{Numeric_Value=-:=0_0_44}');
-    Error('\P{Numeric_Value=-:=0_0_44}');
+    Error('\p{Numeric_Value: :=  000000044}');
+    Error('\P{Numeric_Value: :=  000000044}');
     Expect(1, 12985, '\p{Numeric_Value=:\A44\z:}', "");;
     Expect(0, 12986, '\p{Numeric_Value=:\A44\z:}', "");;
-    Expect(1, 12985, '\p{Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(0, 12985, '\p{^Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(0, 12985, '\P{Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(1, 12985, '\P{^Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(0, 12986, '\p{Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(1, 12986, '\p{^Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(1, 12986, '\P{Numeric_Value=+0_0_0_0_0_0044}', "");
-    Expect(0, 12986, '\P{^Numeric_Value=+0_0_0_0_0_0044}', "");
+    Expect(1, 12985, '\p{Numeric_Value=00000044}', "");
+    Expect(0, 12985, '\p{^Numeric_Value=00000044}', "");
+    Expect(0, 12985, '\P{Numeric_Value=00000044}', "");
+    Expect(1, 12985, '\P{^Numeric_Value=00000044}', "");
+    Expect(0, 12986, '\p{Numeric_Value=00000044}', "");
+    Expect(1, 12986, '\p{^Numeric_Value=00000044}', "");
+    Expect(1, 12986, '\P{Numeric_Value=00000044}', "");
+    Expect(0, 12986, '\P{^Numeric_Value=00000044}', "");
     Expect(1, 12985, '\p{Numeric_Value=4.400000000000000e+01}', "");
     Expect(0, 12985, '\p{^Numeric_Value=4.400000000000000e+01}', "");
     Expect(0, 12985, '\P{Numeric_Value=4.400000000000000e+01}', "");
@@ -81119,18 +81709,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12986, '\p{^Numeric_Value=4.400000000000000e+01}', "");
     Expect(1, 12986, '\P{Numeric_Value=4.400000000000000e+01}', "");
     Expect(0, 12986, '\P{^Numeric_Value=4.400000000000000e+01}', "");
-    Error('\p{Nv=	+04_4:=}');
-    Error('\P{Nv=	+04_4:=}');
+    Error('\p{Nv=_00_00_44/a/}');
+    Error('\P{Nv=_00_00_44/a/}');
     Expect(1, 12985, '\p{Nv=:\A44\z:}', "");;
     Expect(0, 12986, '\p{Nv=:\A44\z:}', "");;
-    Expect(1, 12985, '\p{Nv=0000004_4}', "");
-    Expect(0, 12985, '\p{^Nv=0000004_4}', "");
-    Expect(0, 12985, '\P{Nv=0000004_4}', "");
-    Expect(1, 12985, '\P{^Nv=0000004_4}', "");
-    Expect(0, 12986, '\p{Nv=0000004_4}', "");
-    Expect(1, 12986, '\p{^Nv=0000004_4}', "");
-    Expect(1, 12986, '\P{Nv=0000004_4}', "");
-    Expect(0, 12986, '\P{^Nv=0000004_4}', "");
+    Expect(1, 12985, '\p{Nv=0000044}', "");
+    Expect(0, 12985, '\p{^Nv=0000044}', "");
+    Expect(0, 12985, '\P{Nv=0000044}', "");
+    Expect(1, 12985, '\P{^Nv=0000044}', "");
+    Expect(0, 12986, '\p{Nv=0000044}', "");
+    Expect(1, 12986, '\p{^Nv=0000044}', "");
+    Expect(1, 12986, '\P{Nv=0000044}', "");
+    Expect(0, 12986, '\P{^Nv=0000044}', "");
     Expect(1, 12985, '\p{Nv=4.400000000000000e+01}', "");
     Expect(0, 12985, '\p{^Nv=4.400000000000000e+01}', "");
     Expect(0, 12985, '\P{Nv=4.400000000000000e+01}', "");
@@ -81139,16 +81729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12986, '\p{^Nv=4.400000000000000e+01}', "");
     Expect(1, 12986, '\P{Nv=4.400000000000000e+01}', "");
     Expect(0, 12986, '\P{^Nv=4.400000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=- 0_0_0_44/a/}');
-    Error('\P{Is_Numeric_Value=- 0_0_0_44/a/}');
-    Expect(1, 12985, '\p{Is_Numeric_Value=0_0_0_044}', "");
-    Expect(0, 12985, '\p{^Is_Numeric_Value=0_0_0_044}', "");
-    Expect(0, 12985, '\P{Is_Numeric_Value=0_0_0_044}', "");
-    Expect(1, 12985, '\P{^Is_Numeric_Value=0_0_0_044}', "");
-    Expect(0, 12986, '\p{Is_Numeric_Value=0_0_0_044}', "");
-    Expect(1, 12986, '\p{^Is_Numeric_Value=0_0_0_044}', "");
-    Expect(1, 12986, '\P{Is_Numeric_Value=0_0_0_044}', "");
-    Expect(0, 12986, '\P{^Is_Numeric_Value=0_0_0_044}', "");
+    Error('\p{Is_Numeric_Value=-	+00000000044/a/}');
+    Error('\P{Is_Numeric_Value=-	+00000000044/a/}');
+    Expect(1, 12985, '\p{Is_Numeric_Value=+4_4}', "");
+    Expect(0, 12985, '\p{^Is_Numeric_Value=+4_4}', "");
+    Expect(0, 12985, '\P{Is_Numeric_Value=+4_4}', "");
+    Expect(1, 12985, '\P{^Is_Numeric_Value=+4_4}', "");
+    Expect(0, 12986, '\p{Is_Numeric_Value=+4_4}', "");
+    Expect(1, 12986, '\p{^Is_Numeric_Value=+4_4}', "");
+    Expect(1, 12986, '\P{Is_Numeric_Value=+4_4}', "");
+    Expect(0, 12986, '\P{^Is_Numeric_Value=+4_4}', "");
     Expect(1, 12985, '\p{Is_Numeric_Value=4.400000000000000e+01}', "");
     Expect(0, 12985, '\p{^Is_Numeric_Value=4.400000000000000e+01}', "");
     Expect(0, 12985, '\P{Is_Numeric_Value=4.400000000000000e+01}', "");
@@ -81157,8 +81747,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12986, '\p{^Is_Numeric_Value=4.400000000000000e+01}', "");
     Expect(1, 12986, '\P{Is_Numeric_Value=4.400000000000000e+01}', "");
     Expect(0, 12986, '\P{^Is_Numeric_Value=4.400000000000000e+01}', "");
-    Error('\p{Is_Nv=	/a/00004_4}');
-    Error('\P{Is_Nv=	/a/00004_4}');
+    Error('\p{Is_Nv:   := 00000000044}');
+    Error('\P{Is_Nv:   := 00000000044}');
     Expect(1, 12985, '\p{Is_Nv=00_00_44}', "");
     Expect(0, 12985, '\p{^Is_Nv=00_00_44}', "");
     Expect(0, 12985, '\P{Is_Nv=00_00_44}', "");
@@ -81175,38 +81765,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12986, '\p{^Is_Nv=4.400000000000000e+01}', "");
     Expect(1, 12986, '\P{Is_Nv=4.400000000000000e+01}', "");
     Expect(0, 12986, '\P{^Is_Nv=4.400000000000000e+01}', "");
-    Error('\p{Numeric_Value=	 +0000045:=}');
-    Error('\P{Numeric_Value=	 +0000045:=}');
+    Error('\p{Numeric_Value=-:=+0_0_0_0_0_0_045}');
+    Error('\P{Numeric_Value=-:=+0_0_0_0_0_0_045}');
     Expect(1, 12986, '\p{Numeric_Value=:\A45\z:}', "");;
     Expect(0, 12987, '\p{Numeric_Value=:\A45\z:}', "");;
-    Expect(1, 12986, '\p{Numeric_Value=0045}', "");
-    Expect(0, 12986, '\p{^Numeric_Value=0045}', "");
-    Expect(0, 12986, '\P{Numeric_Value=0045}', "");
-    Expect(1, 12986, '\P{^Numeric_Value=0045}', "");
-    Expect(0, 12987, '\p{Numeric_Value=0045}', "");
-    Expect(1, 12987, '\p{^Numeric_Value=0045}', "");
-    Expect(1, 12987, '\P{Numeric_Value=0045}', "");
-    Expect(0, 12987, '\P{^Numeric_Value=0045}', "");
-    Expect(1, 12986, '\p{Numeric_Value=4.500000000000000e+01}', "");
-    Expect(0, 12986, '\p{^Numeric_Value=4.500000000000000e+01}', "");
-    Expect(0, 12986, '\P{Numeric_Value=4.500000000000000e+01}', "");
-    Expect(1, 12986, '\P{^Numeric_Value=4.500000000000000e+01}', "");
-    Expect(0, 12987, '\p{Numeric_Value=4.500000000000000e+01}', "");
-    Expect(1, 12987, '\p{^Numeric_Value=4.500000000000000e+01}', "");
-    Expect(1, 12987, '\P{Numeric_Value=4.500000000000000e+01}', "");
-    Expect(0, 12987, '\P{^Numeric_Value=4.500000000000000e+01}', "");
-    Error('\p{Nv= /a/00_00_45}');
-    Error('\P{Nv= /a/00_00_45}');
+    Expect(1, 12986, '\p{Numeric_Value=+00045}', "");
+    Expect(0, 12986, '\p{^Numeric_Value=+00045}', "");
+    Expect(0, 12986, '\P{Numeric_Value=+00045}', "");
+    Expect(1, 12986, '\P{^Numeric_Value=+00045}', "");
+    Expect(0, 12987, '\p{Numeric_Value=+00045}', "");
+    Expect(1, 12987, '\p{^Numeric_Value=+00045}', "");
+    Expect(1, 12987, '\P{Numeric_Value=+00045}', "");
+    Expect(0, 12987, '\P{^Numeric_Value=+00045}', "");
+    Expect(1, 12986, '\p{Numeric_Value:4.500000000000000e+01}', "");
+    Expect(0, 12986, '\p{^Numeric_Value:4.500000000000000e+01}', "");
+    Expect(0, 12986, '\P{Numeric_Value:4.500000000000000e+01}', "");
+    Expect(1, 12986, '\P{^Numeric_Value:4.500000000000000e+01}', "");
+    Expect(0, 12987, '\p{Numeric_Value:4.500000000000000e+01}', "");
+    Expect(1, 12987, '\p{^Numeric_Value:4.500000000000000e+01}', "");
+    Expect(1, 12987, '\P{Numeric_Value:4.500000000000000e+01}', "");
+    Expect(0, 12987, '\P{^Numeric_Value:4.500000000000000e+01}', "");
+    Error('\p{Nv=-/a/0000_0000_45}');
+    Error('\P{Nv=-/a/0000_0000_45}');
     Expect(1, 12986, '\p{Nv=:\A45\z:}', "");;
     Expect(0, 12987, '\p{Nv=:\A45\z:}', "");;
-    Expect(1, 12986, '\p{Nv=0004_5}', "");
-    Expect(0, 12986, '\p{^Nv=0004_5}', "");
-    Expect(0, 12986, '\P{Nv=0004_5}', "");
-    Expect(1, 12986, '\P{^Nv=0004_5}', "");
-    Expect(0, 12987, '\p{Nv=0004_5}', "");
-    Expect(1, 12987, '\p{^Nv=0004_5}', "");
-    Expect(1, 12987, '\P{Nv=0004_5}', "");
-    Expect(0, 12987, '\P{^Nv=0004_5}', "");
+    Expect(1, 12986, '\p{Nv=0_0_0_0_0_0_045}', "");
+    Expect(0, 12986, '\p{^Nv=0_0_0_0_0_0_045}', "");
+    Expect(0, 12986, '\P{Nv=0_0_0_0_0_0_045}', "");
+    Expect(1, 12986, '\P{^Nv=0_0_0_0_0_0_045}', "");
+    Expect(0, 12987, '\p{Nv=0_0_0_0_0_0_045}', "");
+    Expect(1, 12987, '\p{^Nv=0_0_0_0_0_0_045}', "");
+    Expect(1, 12987, '\P{Nv=0_0_0_0_0_0_045}', "");
+    Expect(0, 12987, '\P{^Nv=0_0_0_0_0_0_045}', "");
     Expect(1, 12986, '\p{Nv=4.500000000000000e+01}', "");
     Expect(0, 12986, '\p{^Nv=4.500000000000000e+01}', "");
     Expect(0, 12986, '\P{Nv=4.500000000000000e+01}', "");
@@ -81215,16 +81805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12987, '\p{^Nv=4.500000000000000e+01}', "");
     Expect(1, 12987, '\P{Nv=4.500000000000000e+01}', "");
     Expect(0, 12987, '\P{^Nv=4.500000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=- +00_00_00_00_045/a/}');
-    Error('\P{Is_Numeric_Value=- +00_00_00_00_045/a/}');
-    Expect(1, 12986, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(0, 12986, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(0, 12986, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(1, 12986, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(0, 12987, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(1, 12987, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(1, 12987, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
-    Expect(0, 12987, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_045}', "");
+    Error('\p{Is_Numeric_Value=	/a/00000000045}');
+    Error('\P{Is_Numeric_Value=	/a/00000000045}');
+    Expect(1, 12986, '\p{Is_Numeric_Value=0000000045}', "");
+    Expect(0, 12986, '\p{^Is_Numeric_Value=0000000045}', "");
+    Expect(0, 12986, '\P{Is_Numeric_Value=0000000045}', "");
+    Expect(1, 12986, '\P{^Is_Numeric_Value=0000000045}', "");
+    Expect(0, 12987, '\p{Is_Numeric_Value=0000000045}', "");
+    Expect(1, 12987, '\p{^Is_Numeric_Value=0000000045}', "");
+    Expect(1, 12987, '\P{Is_Numeric_Value=0000000045}', "");
+    Expect(0, 12987, '\P{^Is_Numeric_Value=0000000045}', "");
     Expect(1, 12986, '\p{Is_Numeric_Value=4.500000000000000e+01}', "");
     Expect(0, 12986, '\p{^Is_Numeric_Value=4.500000000000000e+01}', "");
     Expect(0, 12986, '\P{Is_Numeric_Value=4.500000000000000e+01}', "");
@@ -81233,16 +81823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12987, '\p{^Is_Numeric_Value=4.500000000000000e+01}', "");
     Expect(1, 12987, '\P{Is_Numeric_Value=4.500000000000000e+01}', "");
     Expect(0, 12987, '\P{^Is_Numeric_Value=4.500000000000000e+01}', "");
-    Error('\p{Is_Nv=--000_000_004_5/a/}');
-    Error('\P{Is_Nv=--000_000_004_5/a/}');
-    Expect(1, 12986, '\p{Is_Nv=045}', "");
-    Expect(0, 12986, '\p{^Is_Nv=045}', "");
-    Expect(0, 12986, '\P{Is_Nv=045}', "");
-    Expect(1, 12986, '\P{^Is_Nv=045}', "");
-    Expect(0, 12987, '\p{Is_Nv=045}', "");
-    Expect(1, 12987, '\p{^Is_Nv=045}', "");
-    Expect(1, 12987, '\P{Is_Nv=045}', "");
-    Expect(0, 12987, '\P{^Is_Nv=045}', "");
+    Error('\p{Is_Nv=/a/-00000000045}');
+    Error('\P{Is_Nv=/a/-00000000045}');
+    Expect(1, 12986, '\p{Is_Nv=04_5}', "");
+    Expect(0, 12986, '\p{^Is_Nv=04_5}', "");
+    Expect(0, 12986, '\P{Is_Nv=04_5}', "");
+    Expect(1, 12986, '\P{^Is_Nv=04_5}', "");
+    Expect(0, 12987, '\p{Is_Nv=04_5}', "");
+    Expect(1, 12987, '\p{^Is_Nv=04_5}', "");
+    Expect(1, 12987, '\P{Is_Nv=04_5}', "");
+    Expect(0, 12987, '\P{^Is_Nv=04_5}', "");
     Expect(1, 12986, '\p{Is_Nv=4.500000000000000e+01}', "");
     Expect(0, 12986, '\p{^Is_Nv=4.500000000000000e+01}', "");
     Expect(0, 12986, '\P{Is_Nv=4.500000000000000e+01}', "");
@@ -81251,8 +81841,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12987, '\p{^Is_Nv=4.500000000000000e+01}', "");
     Expect(1, 12987, '\P{Is_Nv=4.500000000000000e+01}', "");
     Expect(0, 12987, '\P{^Is_Nv=4.500000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/	 +046}');
-    Error('\P{Numeric_Value=/a/	 +046}');
+    Error('\p{Numeric_Value=_	00_00_00_46:=}');
+    Error('\P{Numeric_Value=_	00_00_00_46:=}');
     Expect(1, 12987, '\p{Numeric_Value=:\A46\z:}', "");;
     Expect(0, 12988, '\p{Numeric_Value=:\A46\z:}', "");;
     Expect(1, 12987, '\p{Numeric_Value=046}', "");
@@ -81271,36 +81861,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12988, '\p{^Numeric_Value: 4.600000000000000e+01}', "");
     Expect(1, 12988, '\P{Numeric_Value: 4.600000000000000e+01}', "");
     Expect(0, 12988, '\P{^Numeric_Value: 4.600000000000000e+01}', "");
-    Error('\p{Nv=_000046:=}');
-    Error('\P{Nv=_000046:=}');
+    Error('\p{Nv= 4_6/a/}');
+    Error('\P{Nv= 4_6/a/}');
     Expect(1, 12987, '\p{Nv=:\A46\z:}', "");;
     Expect(0, 12988, '\p{Nv=:\A46\z:}', "");;
-    Expect(1, 12987, '\p{Nv=000000046}', "");
-    Expect(0, 12987, '\p{^Nv=000000046}', "");
-    Expect(0, 12987, '\P{Nv=000000046}', "");
-    Expect(1, 12987, '\P{^Nv=000000046}', "");
-    Expect(0, 12988, '\p{Nv=000000046}', "");
-    Expect(1, 12988, '\p{^Nv=000000046}', "");
-    Expect(1, 12988, '\P{Nv=000000046}', "");
-    Expect(0, 12988, '\P{^Nv=000000046}', "");
-    Expect(1, 12987, '\p{Nv:4.600000000000000e+01}', "");
-    Expect(0, 12987, '\p{^Nv:4.600000000000000e+01}', "");
-    Expect(0, 12987, '\P{Nv:4.600000000000000e+01}', "");
-    Expect(1, 12987, '\P{^Nv:4.600000000000000e+01}', "");
-    Expect(0, 12988, '\p{Nv:4.600000000000000e+01}', "");
-    Expect(1, 12988, '\p{^Nv:4.600000000000000e+01}', "");
-    Expect(1, 12988, '\P{Nv:4.600000000000000e+01}', "");
-    Expect(0, 12988, '\P{^Nv:4.600000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_:=0_0_0_46}');
-    Error('\P{Is_Numeric_Value=_:=0_0_0_46}');
-    Expect(1, 12987, '\p{Is_Numeric_Value=+0000046}', "");
-    Expect(0, 12987, '\p{^Is_Numeric_Value=+0000046}', "");
-    Expect(0, 12987, '\P{Is_Numeric_Value=+0000046}', "");
-    Expect(1, 12987, '\P{^Is_Numeric_Value=+0000046}', "");
-    Expect(0, 12988, '\p{Is_Numeric_Value=+0000046}', "");
-    Expect(1, 12988, '\p{^Is_Numeric_Value=+0000046}', "");
-    Expect(1, 12988, '\P{Is_Numeric_Value=+0000046}', "");
-    Expect(0, 12988, '\P{^Is_Numeric_Value=+0000046}', "");
+    Expect(1, 12987, '\p{Nv=+46}', "");
+    Expect(0, 12987, '\p{^Nv=+46}', "");
+    Expect(0, 12987, '\P{Nv=+46}', "");
+    Expect(1, 12987, '\P{^Nv=+46}', "");
+    Expect(0, 12988, '\p{Nv=+46}', "");
+    Expect(1, 12988, '\p{^Nv=+46}', "");
+    Expect(1, 12988, '\P{Nv=+46}', "");
+    Expect(0, 12988, '\P{^Nv=+46}', "");
+    Expect(1, 12987, '\p{Nv=4.600000000000000e+01}', "");
+    Expect(0, 12987, '\p{^Nv=4.600000000000000e+01}', "");
+    Expect(0, 12987, '\P{Nv=4.600000000000000e+01}', "");
+    Expect(1, 12987, '\P{^Nv=4.600000000000000e+01}', "");
+    Expect(0, 12988, '\p{Nv=4.600000000000000e+01}', "");
+    Expect(1, 12988, '\p{^Nv=4.600000000000000e+01}', "");
+    Expect(1, 12988, '\P{Nv=4.600000000000000e+01}', "");
+    Expect(0, 12988, '\P{^Nv=4.600000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value:   	:=+0046}');
+    Error('\P{Is_Numeric_Value:   	:=+0046}');
+    Expect(1, 12987, '\p{Is_Numeric_Value=+00_04_6}', "");
+    Expect(0, 12987, '\p{^Is_Numeric_Value=+00_04_6}', "");
+    Expect(0, 12987, '\P{Is_Numeric_Value=+00_04_6}', "");
+    Expect(1, 12987, '\P{^Is_Numeric_Value=+00_04_6}', "");
+    Expect(0, 12988, '\p{Is_Numeric_Value=+00_04_6}', "");
+    Expect(1, 12988, '\p{^Is_Numeric_Value=+00_04_6}', "");
+    Expect(1, 12988, '\P{Is_Numeric_Value=+00_04_6}', "");
+    Expect(0, 12988, '\P{^Is_Numeric_Value=+00_04_6}', "");
     Expect(1, 12987, '\p{Is_Numeric_Value=4.600000000000000e+01}', "");
     Expect(0, 12987, '\p{^Is_Numeric_Value=4.600000000000000e+01}', "");
     Expect(0, 12987, '\P{Is_Numeric_Value=4.600000000000000e+01}', "");
@@ -81309,16 +81899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12988, '\p{^Is_Numeric_Value=4.600000000000000e+01}', "");
     Expect(1, 12988, '\P{Is_Numeric_Value=4.600000000000000e+01}', "");
     Expect(0, 12988, '\P{^Is_Numeric_Value=4.600000000000000e+01}', "");
-    Error('\p{Is_Nv=--+0_0_0_0_0_0_0_0_046:=}');
-    Error('\P{Is_Nv=--+0_0_0_0_0_0_0_0_046:=}');
-    Expect(1, 12987, '\p{Is_Nv=0_0_0_0_46}', "");
-    Expect(0, 12987, '\p{^Is_Nv=0_0_0_0_46}', "");
-    Expect(0, 12987, '\P{Is_Nv=0_0_0_0_46}', "");
-    Expect(1, 12987, '\P{^Is_Nv=0_0_0_0_46}', "");
-    Expect(0, 12988, '\p{Is_Nv=0_0_0_0_46}', "");
-    Expect(1, 12988, '\p{^Is_Nv=0_0_0_0_46}', "");
-    Expect(1, 12988, '\P{Is_Nv=0_0_0_0_46}', "");
-    Expect(0, 12988, '\P{^Is_Nv=0_0_0_0_46}', "");
+    Error('\p{Is_Nv=	 004_6/a/}');
+    Error('\P{Is_Nv=	 004_6/a/}');
+    Expect(1, 12987, '\p{Is_Nv=0004_6}', "");
+    Expect(0, 12987, '\p{^Is_Nv=0004_6}', "");
+    Expect(0, 12987, '\P{Is_Nv=0004_6}', "");
+    Expect(1, 12987, '\P{^Is_Nv=0004_6}', "");
+    Expect(0, 12988, '\p{Is_Nv=0004_6}', "");
+    Expect(1, 12988, '\p{^Is_Nv=0004_6}', "");
+    Expect(1, 12988, '\P{Is_Nv=0004_6}', "");
+    Expect(0, 12988, '\P{^Is_Nv=0004_6}', "");
     Expect(1, 12987, '\p{Is_Nv=4.600000000000000e+01}', "");
     Expect(0, 12987, '\p{^Is_Nv=4.600000000000000e+01}', "");
     Expect(0, 12987, '\P{Is_Nv=4.600000000000000e+01}', "");
@@ -81327,28 +81917,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12988, '\p{^Is_Nv=4.600000000000000e+01}', "");
     Expect(1, 12988, '\P{Is_Nv=4.600000000000000e+01}', "");
     Expect(0, 12988, '\P{^Is_Nv=4.600000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/ -000000047}');
-    Error('\P{Numeric_Value=/a/ -000000047}');
+    Error('\p{Numeric_Value=:=_+000047}');
+    Error('\P{Numeric_Value=:=_+000047}');
     Expect(1, 12988, '\p{Numeric_Value=:\A47\z:}', "");;
     Expect(0, 12989, '\p{Numeric_Value=:\A47\z:}', "");;
-    Expect(1, 12988, '\p{Numeric_Value:	00000000047}', "");
-    Expect(0, 12988, '\p{^Numeric_Value:	00000000047}', "");
-    Expect(0, 12988, '\P{Numeric_Value:	00000000047}', "");
-    Expect(1, 12988, '\P{^Numeric_Value:	00000000047}', "");
-    Expect(0, 12989, '\p{Numeric_Value:	00000000047}', "");
-    Expect(1, 12989, '\p{^Numeric_Value:	00000000047}', "");
-    Expect(1, 12989, '\P{Numeric_Value:	00000000047}', "");
-    Expect(0, 12989, '\P{^Numeric_Value:	00000000047}', "");
-    Expect(1, 12988, '\p{Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(0, 12988, '\p{^Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(0, 12988, '\P{Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(1, 12988, '\P{^Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(0, 12989, '\p{Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(1, 12989, '\p{^Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(1, 12989, '\P{Numeric_Value: 4.700000000000000e+01}', "");
-    Expect(0, 12989, '\P{^Numeric_Value: 4.700000000000000e+01}', "");
-    Error('\p{Nv=_	+000_000_004_7:=}');
-    Error('\P{Nv=_	+000_000_004_7:=}');
+    Expect(1, 12988, '\p{Numeric_Value=47}', "");
+    Expect(0, 12988, '\p{^Numeric_Value=47}', "");
+    Expect(0, 12988, '\P{Numeric_Value=47}', "");
+    Expect(1, 12988, '\P{^Numeric_Value=47}', "");
+    Expect(0, 12989, '\p{Numeric_Value=47}', "");
+    Expect(1, 12989, '\p{^Numeric_Value=47}', "");
+    Expect(1, 12989, '\P{Numeric_Value=47}', "");
+    Expect(0, 12989, '\P{^Numeric_Value=47}', "");
+    Expect(1, 12988, '\p{Numeric_Value=4.700000000000000e+01}', "");
+    Expect(0, 12988, '\p{^Numeric_Value=4.700000000000000e+01}', "");
+    Expect(0, 12988, '\P{Numeric_Value=4.700000000000000e+01}', "");
+    Expect(1, 12988, '\P{^Numeric_Value=4.700000000000000e+01}', "");
+    Expect(0, 12989, '\p{Numeric_Value=4.700000000000000e+01}', "");
+    Expect(1, 12989, '\p{^Numeric_Value=4.700000000000000e+01}', "");
+    Expect(1, 12989, '\P{Numeric_Value=4.700000000000000e+01}', "");
+    Expect(0, 12989, '\P{^Numeric_Value=4.700000000000000e+01}', "");
+    Error('\p{Nv=/a/  000_004_7}');
+    Error('\P{Nv=/a/  000_004_7}');
     Expect(1, 12988, '\p{Nv=:\A47\z:}', "");;
     Expect(0, 12989, '\p{Nv=:\A47\z:}', "");;
     Expect(1, 12988, '\p{Nv=00000000047}', "");
@@ -81367,16 +81957,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12989, '\p{^Nv=4.700000000000000e+01}', "");
     Expect(1, 12989, '\P{Nv=4.700000000000000e+01}', "");
     Expect(0, 12989, '\P{^Nv=4.700000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_-0000000047/a/}');
-    Error('\P{Is_Numeric_Value=_-0000000047/a/}');
-    Expect(1, 12988, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(0, 12988, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(0, 12988, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(1, 12988, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(0, 12989, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(1, 12989, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(1, 12989, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
-    Expect(0, 12989, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_0_47}', "");
+    Error('\p{Is_Numeric_Value=/a/+00000000047}');
+    Error('\P{Is_Numeric_Value=/a/+00000000047}');
+    Expect(1, 12988, '\p{Is_Numeric_Value=+000004_7}', "");
+    Expect(0, 12988, '\p{^Is_Numeric_Value=+000004_7}', "");
+    Expect(0, 12988, '\P{Is_Numeric_Value=+000004_7}', "");
+    Expect(1, 12988, '\P{^Is_Numeric_Value=+000004_7}', "");
+    Expect(0, 12989, '\p{Is_Numeric_Value=+000004_7}', "");
+    Expect(1, 12989, '\p{^Is_Numeric_Value=+000004_7}', "");
+    Expect(1, 12989, '\P{Is_Numeric_Value=+000004_7}', "");
+    Expect(0, 12989, '\P{^Is_Numeric_Value=+000004_7}', "");
     Expect(1, 12988, '\p{Is_Numeric_Value=4.700000000000000e+01}', "");
     Expect(0, 12988, '\p{^Is_Numeric_Value=4.700000000000000e+01}', "");
     Expect(0, 12988, '\P{Is_Numeric_Value=4.700000000000000e+01}', "");
@@ -81385,16 +81975,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12989, '\p{^Is_Numeric_Value=4.700000000000000e+01}', "");
     Expect(1, 12989, '\P{Is_Numeric_Value=4.700000000000000e+01}', "");
     Expect(0, 12989, '\P{^Is_Numeric_Value=4.700000000000000e+01}', "");
-    Error('\p{Is_Nv:  :=004_7}');
-    Error('\P{Is_Nv:  :=004_7}');
-    Expect(1, 12988, '\p{Is_Nv=47}', "");
-    Expect(0, 12988, '\p{^Is_Nv=47}', "");
-    Expect(0, 12988, '\P{Is_Nv=47}', "");
-    Expect(1, 12988, '\P{^Is_Nv=47}', "");
-    Expect(0, 12989, '\p{Is_Nv=47}', "");
-    Expect(1, 12989, '\p{^Is_Nv=47}', "");
-    Expect(1, 12989, '\P{Is_Nv=47}', "");
-    Expect(0, 12989, '\P{^Is_Nv=47}', "");
+    Error('\p{Is_Nv=/a/00047}');
+    Error('\P{Is_Nv=/a/00047}');
+    Expect(1, 12988, '\p{Is_Nv:	0000000047}', "");
+    Expect(0, 12988, '\p{^Is_Nv:	0000000047}', "");
+    Expect(0, 12988, '\P{Is_Nv:	0000000047}', "");
+    Expect(1, 12988, '\P{^Is_Nv:	0000000047}', "");
+    Expect(0, 12989, '\p{Is_Nv:	0000000047}', "");
+    Expect(1, 12989, '\p{^Is_Nv:	0000000047}', "");
+    Expect(1, 12989, '\P{Is_Nv:	0000000047}', "");
+    Expect(0, 12989, '\P{^Is_Nv:	0000000047}', "");
     Expect(1, 12988, '\p{Is_Nv=4.700000000000000e+01}', "");
     Expect(0, 12988, '\p{^Is_Nv=4.700000000000000e+01}', "");
     Expect(0, 12988, '\P{Is_Nv=4.700000000000000e+01}', "");
@@ -81403,18 +81993,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12989, '\p{^Is_Nv=4.700000000000000e+01}', "");
     Expect(1, 12989, '\P{Is_Nv=4.700000000000000e+01}', "");
     Expect(0, 12989, '\P{^Is_Nv=4.700000000000000e+01}', "");
-    Error('\p{Numeric_Value=:=	_00_04_8}');
-    Error('\P{Numeric_Value=:=	_00_04_8}');
+    Error('\p{Numeric_Value=_00048/a/}');
+    Error('\P{Numeric_Value=_00048/a/}');
     Expect(1, 12989, '\p{Numeric_Value=:\A48\z:}', "");;
     Expect(0, 12990, '\p{Numeric_Value=:\A48\z:}', "");;
-    Expect(1, 12989, '\p{Numeric_Value=4_8}', "");
-    Expect(0, 12989, '\p{^Numeric_Value=4_8}', "");
-    Expect(0, 12989, '\P{Numeric_Value=4_8}', "");
-    Expect(1, 12989, '\P{^Numeric_Value=4_8}', "");
-    Expect(0, 12990, '\p{Numeric_Value=4_8}', "");
-    Expect(1, 12990, '\p{^Numeric_Value=4_8}', "");
-    Expect(1, 12990, '\P{Numeric_Value=4_8}', "");
-    Expect(0, 12990, '\P{^Numeric_Value=4_8}', "");
+    Expect(1, 12989, '\p{Numeric_Value=048}', "");
+    Expect(0, 12989, '\p{^Numeric_Value=048}', "");
+    Expect(0, 12989, '\P{Numeric_Value=048}', "");
+    Expect(1, 12989, '\P{^Numeric_Value=048}', "");
+    Expect(0, 12990, '\p{Numeric_Value=048}', "");
+    Expect(1, 12990, '\p{^Numeric_Value=048}', "");
+    Expect(1, 12990, '\P{Numeric_Value=048}', "");
+    Expect(0, 12990, '\P{^Numeric_Value=048}', "");
     Expect(1, 12989, '\p{Numeric_Value=4.800000000000000e+01}', "");
     Expect(0, 12989, '\p{^Numeric_Value=4.800000000000000e+01}', "");
     Expect(0, 12989, '\P{Numeric_Value=4.800000000000000e+01}', "");
@@ -81423,18 +82013,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12990, '\p{^Numeric_Value=4.800000000000000e+01}', "");
     Expect(1, 12990, '\P{Numeric_Value=4.800000000000000e+01}', "");
     Expect(0, 12990, '\P{^Numeric_Value=4.800000000000000e+01}', "");
-    Error('\p{Nv=:=	_48}');
-    Error('\P{Nv=:=	_48}');
+    Error('\p{Nv=:=_+0000048}');
+    Error('\P{Nv=:=_+0000048}');
     Expect(1, 12989, '\p{Nv=:\A48\z:}', "");;
     Expect(0, 12990, '\p{Nv=:\A48\z:}', "");;
-    Expect(1, 12989, '\p{Nv=00_04_8}', "");
-    Expect(0, 12989, '\p{^Nv=00_04_8}', "");
-    Expect(0, 12989, '\P{Nv=00_04_8}', "");
-    Expect(1, 12989, '\P{^Nv=00_04_8}', "");
-    Expect(0, 12990, '\p{Nv=00_04_8}', "");
-    Expect(1, 12990, '\p{^Nv=00_04_8}', "");
-    Expect(1, 12990, '\P{Nv=00_04_8}', "");
-    Expect(0, 12990, '\P{^Nv=00_04_8}', "");
+    Expect(1, 12989, '\p{Nv:	0_0_0_0_0_48}', "");
+    Expect(0, 12989, '\p{^Nv:	0_0_0_0_0_48}', "");
+    Expect(0, 12989, '\P{Nv:	0_0_0_0_0_48}', "");
+    Expect(1, 12989, '\P{^Nv:	0_0_0_0_0_48}', "");
+    Expect(0, 12990, '\p{Nv:	0_0_0_0_0_48}', "");
+    Expect(1, 12990, '\p{^Nv:	0_0_0_0_0_48}', "");
+    Expect(1, 12990, '\P{Nv:	0_0_0_0_0_48}', "");
+    Expect(0, 12990, '\P{^Nv:	0_0_0_0_0_48}', "");
     Expect(1, 12989, '\p{Nv=4.800000000000000e+01}', "");
     Expect(0, 12989, '\p{^Nv=4.800000000000000e+01}', "");
     Expect(0, 12989, '\P{Nv=4.800000000000000e+01}', "");
@@ -81443,34 +82033,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12990, '\p{^Nv=4.800000000000000e+01}', "");
     Expect(1, 12990, '\P{Nv=4.800000000000000e+01}', "");
     Expect(0, 12990, '\P{^Nv=4.800000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/_-0_0_48}');
-    Error('\P{Is_Numeric_Value=/a/_-0_0_48}');
-    Expect(1, 12989, '\p{Is_Numeric_Value=+000000048}', "");
-    Expect(0, 12989, '\p{^Is_Numeric_Value=+000000048}', "");
-    Expect(0, 12989, '\P{Is_Numeric_Value=+000000048}', "");
-    Expect(1, 12989, '\P{^Is_Numeric_Value=+000000048}', "");
-    Expect(0, 12990, '\p{Is_Numeric_Value=+000000048}', "");
-    Expect(1, 12990, '\p{^Is_Numeric_Value=+000000048}', "");
-    Expect(1, 12990, '\P{Is_Numeric_Value=+000000048}', "");
-    Expect(0, 12990, '\P{^Is_Numeric_Value=+000000048}', "");
-    Expect(1, 12989, '\p{Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(0, 12989, '\p{^Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(0, 12989, '\P{Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(1, 12989, '\P{^Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(0, 12990, '\p{Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(1, 12990, '\p{^Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(1, 12990, '\P{Is_Numeric_Value=4.800000000000000e+01}', "");
-    Expect(0, 12990, '\P{^Is_Numeric_Value=4.800000000000000e+01}', "");
-    Error('\p{Is_Nv=-/a/004_8}');
-    Error('\P{Is_Nv=-/a/004_8}');
-    Expect(1, 12989, '\p{Is_Nv=0000048}', "");
-    Expect(0, 12989, '\p{^Is_Nv=0000048}', "");
-    Expect(0, 12989, '\P{Is_Nv=0000048}', "");
-    Expect(1, 12989, '\P{^Is_Nv=0000048}', "");
-    Expect(0, 12990, '\p{Is_Nv=0000048}', "");
-    Expect(1, 12990, '\p{^Is_Nv=0000048}', "");
-    Expect(1, 12990, '\P{Is_Nv=0000048}', "");
-    Expect(0, 12990, '\P{^Is_Nv=0000048}', "");
+    Error('\p{Is_Numeric_Value=-000004_8:=}');
+    Error('\P{Is_Numeric_Value=-000004_8:=}');
+    Expect(1, 12989, '\p{Is_Numeric_Value:	0000048}', "");
+    Expect(0, 12989, '\p{^Is_Numeric_Value:	0000048}', "");
+    Expect(0, 12989, '\P{Is_Numeric_Value:	0000048}', "");
+    Expect(1, 12989, '\P{^Is_Numeric_Value:	0000048}', "");
+    Expect(0, 12990, '\p{Is_Numeric_Value:	0000048}', "");
+    Expect(1, 12990, '\p{^Is_Numeric_Value:	0000048}', "");
+    Expect(1, 12990, '\P{Is_Numeric_Value:	0000048}', "");
+    Expect(0, 12990, '\P{^Is_Numeric_Value:	0000048}', "");
+    Expect(1, 12989, '\p{Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(0, 12989, '\p{^Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(0, 12989, '\P{Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(1, 12989, '\P{^Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(0, 12990, '\p{Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(1, 12990, '\p{^Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(1, 12990, '\P{Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Expect(0, 12990, '\P{^Is_Numeric_Value: 4.800000000000000e+01}', "");
+    Error('\p{Is_Nv=/a/	0_0_0_0_0_00048}');
+    Error('\P{Is_Nv=/a/	0_0_0_0_0_00048}');
+    Expect(1, 12989, '\p{Is_Nv=00000048}', "");
+    Expect(0, 12989, '\p{^Is_Nv=00000048}', "");
+    Expect(0, 12989, '\P{Is_Nv=00000048}', "");
+    Expect(1, 12989, '\P{^Is_Nv=00000048}', "");
+    Expect(0, 12990, '\p{Is_Nv=00000048}', "");
+    Expect(1, 12990, '\p{^Is_Nv=00000048}', "");
+    Expect(1, 12990, '\P{Is_Nv=00000048}', "");
+    Expect(0, 12990, '\P{^Is_Nv=00000048}', "");
     Expect(1, 12989, '\p{Is_Nv:4.800000000000000e+01}', "");
     Expect(0, 12989, '\p{^Is_Nv:4.800000000000000e+01}', "");
     Expect(0, 12989, '\P{Is_Nv:4.800000000000000e+01}', "");
@@ -81479,18 +82069,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12990, '\p{^Is_Nv:4.800000000000000e+01}', "");
     Expect(1, 12990, '\P{Is_Nv:4.800000000000000e+01}', "");
     Expect(0, 12990, '\P{^Is_Nv:4.800000000000000e+01}', "");
-    Error('\p{Numeric_Value=:= _000000049}');
-    Error('\P{Numeric_Value=:= _000000049}');
+    Error('\p{Numeric_Value=- 00049:=}');
+    Error('\P{Numeric_Value=- 00049:=}');
     Expect(1, 12990, '\p{Numeric_Value=:\A49\z:}', "");;
     Expect(0, 12991, '\p{Numeric_Value=:\A49\z:}', "");;
-    Expect(1, 12990, '\p{Numeric_Value=+00004_9}', "");
-    Expect(0, 12990, '\p{^Numeric_Value=+00004_9}', "");
-    Expect(0, 12990, '\P{Numeric_Value=+00004_9}', "");
-    Expect(1, 12990, '\P{^Numeric_Value=+00004_9}', "");
-    Expect(0, 12991, '\p{Numeric_Value=+00004_9}', "");
-    Expect(1, 12991, '\p{^Numeric_Value=+00004_9}', "");
-    Expect(1, 12991, '\P{Numeric_Value=+00004_9}', "");
-    Expect(0, 12991, '\P{^Numeric_Value=+00004_9}', "");
+    Expect(1, 12990, '\p{Numeric_Value=049}', "");
+    Expect(0, 12990, '\p{^Numeric_Value=049}', "");
+    Expect(0, 12990, '\P{Numeric_Value=049}', "");
+    Expect(1, 12990, '\P{^Numeric_Value=049}', "");
+    Expect(0, 12991, '\p{Numeric_Value=049}', "");
+    Expect(1, 12991, '\p{^Numeric_Value=049}', "");
+    Expect(1, 12991, '\P{Numeric_Value=049}', "");
+    Expect(0, 12991, '\P{^Numeric_Value=049}', "");
     Expect(1, 12990, '\p{Numeric_Value=4.900000000000000e+01}', "");
     Expect(0, 12990, '\p{^Numeric_Value=4.900000000000000e+01}', "");
     Expect(0, 12990, '\P{Numeric_Value=4.900000000000000e+01}', "");
@@ -81499,18 +82089,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12991, '\p{^Numeric_Value=4.900000000000000e+01}', "");
     Expect(1, 12991, '\P{Numeric_Value=4.900000000000000e+01}', "");
     Expect(0, 12991, '\P{^Numeric_Value=4.900000000000000e+01}', "");
-    Error('\p{Nv=:=-+4_9}');
-    Error('\P{Nv=:=-+4_9}');
+    Error('\p{Nv= 0049/a/}');
+    Error('\P{Nv= 0049/a/}');
     Expect(1, 12990, '\p{Nv=:\A49\z:}', "");;
     Expect(0, 12991, '\p{Nv=:\A49\z:}', "");;
-    Expect(1, 12990, '\p{Nv:   00000049}', "");
-    Expect(0, 12990, '\p{^Nv:   00000049}', "");
-    Expect(0, 12990, '\P{Nv:   00000049}', "");
-    Expect(1, 12990, '\P{^Nv:   00000049}', "");
-    Expect(0, 12991, '\p{Nv:   00000049}', "");
-    Expect(1, 12991, '\p{^Nv:   00000049}', "");
-    Expect(1, 12991, '\P{Nv:   00000049}', "");
-    Expect(0, 12991, '\P{^Nv:   00000049}', "");
+    Expect(1, 12990, '\p{Nv=000049}', "");
+    Expect(0, 12990, '\p{^Nv=000049}', "");
+    Expect(0, 12990, '\P{Nv=000049}', "");
+    Expect(1, 12990, '\P{^Nv=000049}', "");
+    Expect(0, 12991, '\p{Nv=000049}', "");
+    Expect(1, 12991, '\p{^Nv=000049}', "");
+    Expect(1, 12991, '\P{Nv=000049}', "");
+    Expect(0, 12991, '\P{^Nv=000049}', "");
     Expect(1, 12990, '\p{Nv=4.900000000000000e+01}', "");
     Expect(0, 12990, '\p{^Nv=4.900000000000000e+01}', "");
     Expect(0, 12990, '\P{Nv=4.900000000000000e+01}', "");
@@ -81519,16 +82109,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12991, '\p{^Nv=4.900000000000000e+01}', "");
     Expect(1, 12991, '\P{Nv=4.900000000000000e+01}', "");
     Expect(0, 12991, '\P{^Nv=4.900000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=	/a/0_0_49}');
-    Error('\P{Is_Numeric_Value=	/a/0_0_49}');
-    Expect(1, 12990, '\p{Is_Numeric_Value=+00000000049}', "");
-    Expect(0, 12990, '\p{^Is_Numeric_Value=+00000000049}', "");
-    Expect(0, 12990, '\P{Is_Numeric_Value=+00000000049}', "");
-    Expect(1, 12990, '\P{^Is_Numeric_Value=+00000000049}', "");
-    Expect(0, 12991, '\p{Is_Numeric_Value=+00000000049}', "");
-    Expect(1, 12991, '\p{^Is_Numeric_Value=+00000000049}', "");
-    Expect(1, 12991, '\P{Is_Numeric_Value=+00000000049}', "");
-    Expect(0, 12991, '\P{^Is_Numeric_Value=+00000000049}', "");
+    Error('\p{Is_Numeric_Value=-+004_9/a/}');
+    Error('\P{Is_Numeric_Value=-+004_9/a/}');
+    Expect(1, 12990, '\p{Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(0, 12990, '\p{^Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(0, 12990, '\P{Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(1, 12990, '\P{^Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(0, 12991, '\p{Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(1, 12991, '\p{^Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(1, 12991, '\P{Is_Numeric_Value=00_00_00_00_04_9}', "");
+    Expect(0, 12991, '\P{^Is_Numeric_Value=00_00_00_00_04_9}', "");
     Expect(1, 12990, '\p{Is_Numeric_Value=4.900000000000000e+01}', "");
     Expect(0, 12990, '\p{^Is_Numeric_Value=4.900000000000000e+01}', "");
     Expect(0, 12990, '\P{Is_Numeric_Value=4.900000000000000e+01}', "");
@@ -81537,16 +82127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12991, '\p{^Is_Numeric_Value=4.900000000000000e+01}', "");
     Expect(1, 12991, '\P{Is_Numeric_Value=4.900000000000000e+01}', "");
     Expect(0, 12991, '\P{^Is_Numeric_Value=4.900000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/_	00000000049}');
-    Error('\P{Is_Nv=/a/_	00000000049}');
-    Expect(1, 12990, '\p{Is_Nv=00049}', "");
-    Expect(0, 12990, '\p{^Is_Nv=00049}', "");
-    Expect(0, 12990, '\P{Is_Nv=00049}', "");
-    Expect(1, 12990, '\P{^Is_Nv=00049}', "");
-    Expect(0, 12991, '\p{Is_Nv=00049}', "");
-    Expect(1, 12991, '\p{^Is_Nv=00049}', "");
-    Expect(1, 12991, '\P{Is_Nv=00049}', "");
-    Expect(0, 12991, '\P{^Is_Nv=00049}', "");
+    Error('\p{Is_Nv=/a/ +4_9}');
+    Error('\P{Is_Nv=/a/ +4_9}');
+    Expect(1, 12990, '\p{Is_Nv:	+0000049}', "");
+    Expect(0, 12990, '\p{^Is_Nv:	+0000049}', "");
+    Expect(0, 12990, '\P{Is_Nv:	+0000049}', "");
+    Expect(1, 12990, '\P{^Is_Nv:	+0000049}', "");
+    Expect(0, 12991, '\p{Is_Nv:	+0000049}', "");
+    Expect(1, 12991, '\p{^Is_Nv:	+0000049}', "");
+    Expect(1, 12991, '\P{Is_Nv:	+0000049}', "");
+    Expect(0, 12991, '\P{^Is_Nv:	+0000049}', "");
     Expect(1, 12990, '\p{Is_Nv=4.900000000000000e+01}', "");
     Expect(0, 12990, '\p{^Is_Nv=4.900000000000000e+01}', "");
     Expect(0, 12990, '\P{Is_Nv=4.900000000000000e+01}', "");
@@ -81555,18 +82145,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12991, '\p{^Is_Nv=4.900000000000000e+01}', "");
     Expect(1, 12991, '\P{Is_Nv=4.900000000000000e+01}', "");
     Expect(0, 12991, '\P{^Is_Nv=4.900000000000000e+01}', "");
-    Error('\p{Numeric_Value=	_0_0_0_0_05:=}');
-    Error('\P{Numeric_Value=	_0_0_0_0_05:=}');
+    Error('\p{Numeric_Value=	-5/a/}');
+    Error('\P{Numeric_Value=	-5/a/}');
     Expect(1, 131361, '\p{Numeric_Value=:\A5\z:}', "");;
     Expect(0, 131362, '\p{Numeric_Value=:\A5\z:}', "");;
-    Expect(1, 131361, '\p{Numeric_Value=0005}', "");
-    Expect(0, 131361, '\p{^Numeric_Value=0005}', "");
-    Expect(0, 131361, '\P{Numeric_Value=0005}', "");
-    Expect(1, 131361, '\P{^Numeric_Value=0005}', "");
-    Expect(0, 131362, '\p{Numeric_Value=0005}', "");
-    Expect(1, 131362, '\p{^Numeric_Value=0005}', "");
-    Expect(1, 131362, '\P{Numeric_Value=0005}', "");
-    Expect(0, 131362, '\P{^Numeric_Value=0005}', "");
+    Expect(1, 131361, '\p{Numeric_Value=000000005}', "");
+    Expect(0, 131361, '\p{^Numeric_Value=000000005}', "");
+    Expect(0, 131361, '\P{Numeric_Value=000000005}', "");
+    Expect(1, 131361, '\P{^Numeric_Value=000000005}', "");
+    Expect(0, 131362, '\p{Numeric_Value=000000005}', "");
+    Expect(1, 131362, '\p{^Numeric_Value=000000005}', "");
+    Expect(1, 131362, '\P{Numeric_Value=000000005}', "");
+    Expect(0, 131362, '\P{^Numeric_Value=000000005}', "");
     Expect(1, 131361, '\p{Numeric_Value=5.000000000000000e+00}', "");
     Expect(0, 131361, '\p{^Numeric_Value=5.000000000000000e+00}', "");
     Expect(0, 131361, '\P{Numeric_Value=5.000000000000000e+00}', "");
@@ -81575,18 +82165,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131362, '\p{^Numeric_Value=5.000000000000000e+00}', "");
     Expect(1, 131362, '\P{Numeric_Value=5.000000000000000e+00}', "");
     Expect(0, 131362, '\P{^Numeric_Value=5.000000000000000e+00}', "");
-    Error('\p{Nv=/a/0000005}');
-    Error('\P{Nv=/a/0000005}');
+    Error('\p{Nv=:=0000_0000_5}');
+    Error('\P{Nv=:=0000_0000_5}');
     Expect(1, 131361, '\p{Nv=:\A5\z:}', "");;
     Expect(0, 131362, '\p{Nv=:\A5\z:}', "");;
-    Expect(1, 131361, '\p{Nv=00000005}', "");
-    Expect(0, 131361, '\p{^Nv=00000005}', "");
-    Expect(0, 131361, '\P{Nv=00000005}', "");
-    Expect(1, 131361, '\P{^Nv=00000005}', "");
-    Expect(0, 131362, '\p{Nv=00000005}', "");
-    Expect(1, 131362, '\p{^Nv=00000005}', "");
-    Expect(1, 131362, '\P{Nv=00000005}', "");
-    Expect(0, 131362, '\P{^Nv=00000005}', "");
+    Expect(1, 131361, '\p{Nv=+0005}', "");
+    Expect(0, 131361, '\p{^Nv=+0005}', "");
+    Expect(0, 131361, '\P{Nv=+0005}', "");
+    Expect(1, 131361, '\P{^Nv=+0005}', "");
+    Expect(0, 131362, '\p{Nv=+0005}', "");
+    Expect(1, 131362, '\p{^Nv=+0005}', "");
+    Expect(1, 131362, '\P{Nv=+0005}', "");
+    Expect(0, 131362, '\P{^Nv=+0005}', "");
     Expect(1, 131361, '\p{Nv=5.000000000000000e+00}', "");
     Expect(0, 131361, '\p{^Nv=5.000000000000000e+00}', "");
     Expect(0, 131361, '\P{Nv=5.000000000000000e+00}', "");
@@ -81595,16 +82185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131362, '\p{^Nv=5.000000000000000e+00}', "");
     Expect(1, 131362, '\P{Nv=5.000000000000000e+00}', "");
     Expect(0, 131362, '\P{^Nv=5.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=/a/- 000_000_5}');
-    Error('\P{Is_Numeric_Value=/a/- 000_000_5}');
-    Expect(1, 131361, '\p{Is_Numeric_Value=+000005}', "");
-    Expect(0, 131361, '\p{^Is_Numeric_Value=+000005}', "");
-    Expect(0, 131361, '\P{Is_Numeric_Value=+000005}', "");
-    Expect(1, 131361, '\P{^Is_Numeric_Value=+000005}', "");
-    Expect(0, 131362, '\p{Is_Numeric_Value=+000005}', "");
-    Expect(1, 131362, '\p{^Is_Numeric_Value=+000005}', "");
-    Expect(1, 131362, '\P{Is_Numeric_Value=+000005}', "");
-    Expect(0, 131362, '\P{^Is_Numeric_Value=+000005}', "");
+    Error('\p{Is_Numeric_Value=:= 0_5}');
+    Error('\P{Is_Numeric_Value=:= 0_5}');
+    Expect(1, 131361, '\p{Is_Numeric_Value:0_0_05}', "");
+    Expect(0, 131361, '\p{^Is_Numeric_Value:0_0_05}', "");
+    Expect(0, 131361, '\P{Is_Numeric_Value:0_0_05}', "");
+    Expect(1, 131361, '\P{^Is_Numeric_Value:0_0_05}', "");
+    Expect(0, 131362, '\p{Is_Numeric_Value:0_0_05}', "");
+    Expect(1, 131362, '\p{^Is_Numeric_Value:0_0_05}', "");
+    Expect(1, 131362, '\P{Is_Numeric_Value:0_0_05}', "");
+    Expect(0, 131362, '\P{^Is_Numeric_Value:0_0_05}', "");
     Expect(1, 131361, '\p{Is_Numeric_Value=5.000000000000000e+00}', "");
     Expect(0, 131361, '\p{^Is_Numeric_Value=5.000000000000000e+00}', "");
     Expect(0, 131361, '\P{Is_Numeric_Value=5.000000000000000e+00}', "");
@@ -81613,16 +82203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131362, '\p{^Is_Numeric_Value=5.000000000000000e+00}', "");
     Expect(1, 131362, '\P{Is_Numeric_Value=5.000000000000000e+00}', "");
     Expect(0, 131362, '\P{^Is_Numeric_Value=5.000000000000000e+00}', "");
-    Error('\p{Is_Nv=/a/-+000005}');
-    Error('\P{Is_Nv=/a/-+000005}');
-    Expect(1, 131361, '\p{Is_Nv=0000000005}', "");
-    Expect(0, 131361, '\p{^Is_Nv=0000000005}', "");
-    Expect(0, 131361, '\P{Is_Nv=0000000005}', "");
-    Expect(1, 131361, '\P{^Is_Nv=0000000005}', "");
-    Expect(0, 131362, '\p{Is_Nv=0000000005}', "");
-    Expect(1, 131362, '\p{^Is_Nv=0000000005}', "");
-    Expect(1, 131362, '\P{Is_Nv=0000000005}', "");
-    Expect(0, 131362, '\P{^Is_Nv=0000000005}', "");
+    Error('\p{Is_Nv=:= _00000005}');
+    Error('\P{Is_Nv=:= _00000005}');
+    Expect(1, 131361, '\p{Is_Nv=000005}', "");
+    Expect(0, 131361, '\p{^Is_Nv=000005}', "");
+    Expect(0, 131361, '\P{Is_Nv=000005}', "");
+    Expect(1, 131361, '\P{^Is_Nv=000005}', "");
+    Expect(0, 131362, '\p{Is_Nv=000005}', "");
+    Expect(1, 131362, '\p{^Is_Nv=000005}', "");
+    Expect(1, 131362, '\P{Is_Nv=000005}', "");
+    Expect(0, 131362, '\P{^Is_Nv=000005}', "");
     Expect(1, 131361, '\p{Is_Nv=5.000000000000000e+00}', "");
     Expect(0, 131361, '\p{^Is_Nv=5.000000000000000e+00}', "");
     Expect(0, 131361, '\P{Is_Nv=5.000000000000000e+00}', "");
@@ -81631,18 +82221,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131362, '\p{^Is_Nv=5.000000000000000e+00}', "");
     Expect(1, 131362, '\P{Is_Nv=5.000000000000000e+00}', "");
     Expect(0, 131362, '\P{^Is_Nv=5.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=-_05/00012/a/}');
-    Error('\P{Numeric_Value=-_05/00012/a/}');
+    Error('\p{Numeric_Value=-/a/0000005/00000000012}');
+    Error('\P{Numeric_Value=-/a/0000005/00000000012}');
     Expect(1, 68090, '\p{Numeric_Value=:\A5/12\z:}', "");;
     Expect(0, 68091, '\p{Numeric_Value=:\A5/12\z:}', "");;
-    Expect(1, 68090, '\p{Numeric_Value=00000005/00000012}', "");
-    Expect(0, 68090, '\p{^Numeric_Value=00000005/00000012}', "");
-    Expect(0, 68090, '\P{Numeric_Value=00000005/00000012}', "");
-    Expect(1, 68090, '\P{^Numeric_Value=00000005/00000012}', "");
-    Expect(0, 68091, '\p{Numeric_Value=00000005/00000012}', "");
-    Expect(1, 68091, '\p{^Numeric_Value=00000005/00000012}', "");
-    Expect(1, 68091, '\P{Numeric_Value=00000005/00000012}', "");
-    Expect(0, 68091, '\P{^Numeric_Value=00000005/00000012}', "");
+    Expect(1, 68090, '\p{Numeric_Value=0000005/12}', "");
+    Expect(0, 68090, '\p{^Numeric_Value=0000005/12}', "");
+    Expect(0, 68090, '\P{Numeric_Value=0000005/12}', "");
+    Expect(1, 68090, '\P{^Numeric_Value=0000005/12}', "");
+    Expect(0, 68091, '\p{Numeric_Value=0000005/12}', "");
+    Expect(1, 68091, '\p{^Numeric_Value=0000005/12}', "");
+    Expect(1, 68091, '\P{Numeric_Value=0000005/12}', "");
+    Expect(0, 68091, '\P{^Numeric_Value=0000005/12}', "");
     Expect(1, 68090, '\p{Numeric_Value=300/720}', "");
     Expect(0, 68090, '\p{^Numeric_Value=300/720}', "");
     Expect(0, 68090, '\P{Numeric_Value=300/720}', "");
@@ -81657,14 +82247,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Numeric_Value=4.17e-01}');
     Error('\p{Numeric_Value=0.42}');
     Error('\P{Numeric_Value=0.42}');
-    Expect(1, 68090, '\p{Numeric_Value=4.167e-01}', "");
-    Expect(0, 68090, '\p{^Numeric_Value=4.167e-01}', "");
-    Expect(0, 68090, '\P{Numeric_Value=4.167e-01}', "");
-    Expect(1, 68090, '\P{^Numeric_Value=4.167e-01}', "");
-    Expect(0, 68091, '\p{Numeric_Value=4.167e-01}', "");
-    Expect(1, 68091, '\p{^Numeric_Value=4.167e-01}', "");
-    Expect(1, 68091, '\P{Numeric_Value=4.167e-01}', "");
-    Expect(0, 68091, '\P{^Numeric_Value=4.167e-01}', "");
+    Expect(1, 68090, '\p{Numeric_Value:4.167e-01}', "");
+    Expect(0, 68090, '\p{^Numeric_Value:4.167e-01}', "");
+    Expect(0, 68090, '\P{Numeric_Value:4.167e-01}', "");
+    Expect(1, 68090, '\P{^Numeric_Value:4.167e-01}', "");
+    Expect(0, 68091, '\p{Numeric_Value:4.167e-01}', "");
+    Expect(1, 68091, '\p{^Numeric_Value:4.167e-01}', "");
+    Expect(1, 68091, '\P{Numeric_Value:4.167e-01}', "");
+    Expect(0, 68091, '\P{^Numeric_Value:4.167e-01}', "");
     Error('\p{Numeric_Value=0.417}');
     Error('\P{Numeric_Value=0.417}');
     Expect(1, 68090, '\p{Numeric_Value=4.1667e-01}', "");
@@ -81683,14 +82273,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68091, '\p{^Numeric_Value=0.4167}', "");
     Expect(1, 68091, '\P{Numeric_Value=0.4167}', "");
     Expect(0, 68091, '\P{^Numeric_Value=0.4167}', "");
-    Expect(1, 68090, '\p{Numeric_Value=4.16667e-01}', "");
-    Expect(0, 68090, '\p{^Numeric_Value=4.16667e-01}', "");
-    Expect(0, 68090, '\P{Numeric_Value=4.16667e-01}', "");
-    Expect(1, 68090, '\P{^Numeric_Value=4.16667e-01}', "");
-    Expect(0, 68091, '\p{Numeric_Value=4.16667e-01}', "");
-    Expect(1, 68091, '\p{^Numeric_Value=4.16667e-01}', "");
-    Expect(1, 68091, '\P{Numeric_Value=4.16667e-01}', "");
-    Expect(0, 68091, '\P{^Numeric_Value=4.16667e-01}', "");
+    Expect(1, 68090, '\p{Numeric_Value: 4.16667e-01}', "");
+    Expect(0, 68090, '\p{^Numeric_Value: 4.16667e-01}', "");
+    Expect(0, 68090, '\P{Numeric_Value: 4.16667e-01}', "");
+    Expect(1, 68090, '\P{^Numeric_Value: 4.16667e-01}', "");
+    Expect(0, 68091, '\p{Numeric_Value: 4.16667e-01}', "");
+    Expect(1, 68091, '\p{^Numeric_Value: 4.16667e-01}', "");
+    Expect(1, 68091, '\P{Numeric_Value: 4.16667e-01}', "");
+    Expect(0, 68091, '\P{^Numeric_Value: 4.16667e-01}', "");
     Expect(1, 68090, '\p{Numeric_Value=0.41667}', "");
     Expect(0, 68090, '\p{^Numeric_Value=0.41667}', "");
     Expect(0, 68090, '\P{Numeric_Value=0.41667}', "");
@@ -81699,18 +82289,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68091, '\p{^Numeric_Value=0.41667}', "");
     Expect(1, 68091, '\P{Numeric_Value=0.41667}', "");
     Expect(0, 68091, '\P{^Numeric_Value=0.41667}', "");
-    Error('\p{Nv=/a/__0005/0000000012}');
-    Error('\P{Nv=/a/__0005/0000000012}');
+    Error('\p{Nv: 5/00012:=}');
+    Error('\P{Nv: 5/00012:=}');
     Expect(1, 68090, '\p{Nv=:\A5/12\z:}', "");;
     Expect(0, 68091, '\p{Nv=:\A5/12\z:}', "");;
-    Expect(1, 68090, '\p{Nv=+0000000005/0000012}', "");
-    Expect(0, 68090, '\p{^Nv=+0000000005/0000012}', "");
-    Expect(0, 68090, '\P{Nv=+0000000005/0000012}', "");
-    Expect(1, 68090, '\P{^Nv=+0000000005/0000012}', "");
-    Expect(0, 68091, '\p{Nv=+0000000005/0000012}', "");
-    Expect(1, 68091, '\p{^Nv=+0000000005/0000012}', "");
-    Expect(1, 68091, '\P{Nv=+0000000005/0000012}', "");
-    Expect(0, 68091, '\P{^Nv=+0000000005/0000012}', "");
+    Expect(1, 68090, '\p{Nv=+000005/00000000012}', "");
+    Expect(0, 68090, '\p{^Nv=+000005/00000000012}', "");
+    Expect(0, 68090, '\P{Nv=+000005/00000000012}', "");
+    Expect(1, 68090, '\P{^Nv=+000005/00000000012}', "");
+    Expect(0, 68091, '\p{Nv=+000005/00000000012}', "");
+    Expect(1, 68091, '\p{^Nv=+000005/00000000012}', "");
+    Expect(1, 68091, '\P{Nv=+000005/00000000012}', "");
+    Expect(0, 68091, '\P{^Nv=+000005/00000000012}', "");
     Expect(1, 68090, '\p{Nv=300/720}', "");
     Expect(0, 68090, '\p{^Nv=300/720}', "");
     Expect(0, 68090, '\P{Nv=300/720}', "");
@@ -81735,14 +82325,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 68091, '\P{^Nv=4.167e-01}', "");
     Error('\p{Nv=0.417}');
     Error('\P{Nv=0.417}');
-    Expect(1, 68090, '\p{Nv: 4.1667e-01}', "");
-    Expect(0, 68090, '\p{^Nv: 4.1667e-01}', "");
-    Expect(0, 68090, '\P{Nv: 4.1667e-01}', "");
-    Expect(1, 68090, '\P{^Nv: 4.1667e-01}', "");
-    Expect(0, 68091, '\p{Nv: 4.1667e-01}', "");
-    Expect(1, 68091, '\p{^Nv: 4.1667e-01}', "");
-    Expect(1, 68091, '\P{Nv: 4.1667e-01}', "");
-    Expect(0, 68091, '\P{^Nv: 4.1667e-01}', "");
+    Expect(1, 68090, '\p{Nv=4.1667e-01}', "");
+    Expect(0, 68090, '\p{^Nv=4.1667e-01}', "");
+    Expect(0, 68090, '\P{Nv=4.1667e-01}', "");
+    Expect(1, 68090, '\P{^Nv=4.1667e-01}', "");
+    Expect(0, 68091, '\p{Nv=4.1667e-01}', "");
+    Expect(1, 68091, '\p{^Nv=4.1667e-01}', "");
+    Expect(1, 68091, '\P{Nv=4.1667e-01}', "");
+    Expect(0, 68091, '\P{^Nv=4.1667e-01}', "");
     Expect(1, 68090, '\p{Nv=0.4167}', "");
     Expect(0, 68090, '\p{^Nv=0.4167}', "");
     Expect(0, 68090, '\P{Nv=0.4167}', "");
@@ -81767,16 +82357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68091, '\p{^Nv=0.41667}', "");
     Expect(1, 68091, '\P{Nv=0.41667}', "");
     Expect(0, 68091, '\P{^Nv=0.41667}', "");
-    Error('\p{Is_Numeric_Value=/a/	_+00000005/0012}');
-    Error('\P{Is_Numeric_Value=/a/	_+00000005/0012}');
-    Expect(1, 68090, '\p{Is_Numeric_Value=00000005/00012}', "");
-    Expect(0, 68090, '\p{^Is_Numeric_Value=00000005/00012}', "");
-    Expect(0, 68090, '\P{Is_Numeric_Value=00000005/00012}', "");
-    Expect(1, 68090, '\P{^Is_Numeric_Value=00000005/00012}', "");
-    Expect(0, 68091, '\p{Is_Numeric_Value=00000005/00012}', "");
-    Expect(1, 68091, '\p{^Is_Numeric_Value=00000005/00012}', "");
-    Expect(1, 68091, '\P{Is_Numeric_Value=00000005/00012}', "");
-    Expect(0, 68091, '\P{^Is_Numeric_Value=00000005/00012}', "");
+    Error('\p{Is_Numeric_Value=		000005/0000012/a/}');
+    Error('\P{Is_Numeric_Value=		000005/0000012/a/}');
+    Expect(1, 68090, '\p{Is_Numeric_Value=+00005/000000012}', "");
+    Expect(0, 68090, '\p{^Is_Numeric_Value=+00005/000000012}', "");
+    Expect(0, 68090, '\P{Is_Numeric_Value=+00005/000000012}', "");
+    Expect(1, 68090, '\P{^Is_Numeric_Value=+00005/000000012}', "");
+    Expect(0, 68091, '\p{Is_Numeric_Value=+00005/000000012}', "");
+    Expect(1, 68091, '\p{^Is_Numeric_Value=+00005/000000012}', "");
+    Expect(1, 68091, '\P{Is_Numeric_Value=+00005/000000012}', "");
+    Expect(0, 68091, '\P{^Is_Numeric_Value=+00005/000000012}', "");
     Expect(1, 68090, '\p{Is_Numeric_Value=300/720}', "");
     Expect(0, 68090, '\p{^Is_Numeric_Value=300/720}', "");
     Expect(0, 68090, '\P{Is_Numeric_Value=300/720}', "");
@@ -81801,14 +82391,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 68091, '\P{^Is_Numeric_Value=4.167e-01}', "");
     Error('\p{Is_Numeric_Value=0.417}');
     Error('\P{Is_Numeric_Value=0.417}');
-    Expect(1, 68090, '\p{Is_Numeric_Value=4.1667e-01}', "");
-    Expect(0, 68090, '\p{^Is_Numeric_Value=4.1667e-01}', "");
-    Expect(0, 68090, '\P{Is_Numeric_Value=4.1667e-01}', "");
-    Expect(1, 68090, '\P{^Is_Numeric_Value=4.1667e-01}', "");
-    Expect(0, 68091, '\p{Is_Numeric_Value=4.1667e-01}', "");
-    Expect(1, 68091, '\p{^Is_Numeric_Value=4.1667e-01}', "");
-    Expect(1, 68091, '\P{Is_Numeric_Value=4.1667e-01}', "");
-    Expect(0, 68091, '\P{^Is_Numeric_Value=4.1667e-01}', "");
+    Expect(1, 68090, '\p{Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(0, 68090, '\p{^Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(0, 68090, '\P{Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(1, 68090, '\P{^Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(0, 68091, '\p{Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(1, 68091, '\p{^Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(1, 68091, '\P{Is_Numeric_Value: 4.1667e-01}', "");
+    Expect(0, 68091, '\P{^Is_Numeric_Value: 4.1667e-01}', "");
     Expect(1, 68090, '\p{Is_Numeric_Value=0.4167}', "");
     Expect(0, 68090, '\p{^Is_Numeric_Value=0.4167}', "");
     Expect(0, 68090, '\P{Is_Numeric_Value=0.4167}', "");
@@ -81817,14 +82407,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68091, '\p{^Is_Numeric_Value=0.4167}', "");
     Expect(1, 68091, '\P{Is_Numeric_Value=0.4167}', "");
     Expect(0, 68091, '\P{^Is_Numeric_Value=0.4167}', "");
-    Expect(1, 68090, '\p{Is_Numeric_Value:4.16667e-01}', "");
-    Expect(0, 68090, '\p{^Is_Numeric_Value:4.16667e-01}', "");
-    Expect(0, 68090, '\P{Is_Numeric_Value:4.16667e-01}', "");
-    Expect(1, 68090, '\P{^Is_Numeric_Value:4.16667e-01}', "");
-    Expect(0, 68091, '\p{Is_Numeric_Value:4.16667e-01}', "");
-    Expect(1, 68091, '\p{^Is_Numeric_Value:4.16667e-01}', "");
-    Expect(1, 68091, '\P{Is_Numeric_Value:4.16667e-01}', "");
-    Expect(0, 68091, '\P{^Is_Numeric_Value:4.16667e-01}', "");
+    Expect(1, 68090, '\p{Is_Numeric_Value=4.16667e-01}', "");
+    Expect(0, 68090, '\p{^Is_Numeric_Value=4.16667e-01}', "");
+    Expect(0, 68090, '\P{Is_Numeric_Value=4.16667e-01}', "");
+    Expect(1, 68090, '\P{^Is_Numeric_Value=4.16667e-01}', "");
+    Expect(0, 68091, '\p{Is_Numeric_Value=4.16667e-01}', "");
+    Expect(1, 68091, '\p{^Is_Numeric_Value=4.16667e-01}', "");
+    Expect(1, 68091, '\P{Is_Numeric_Value=4.16667e-01}', "");
+    Expect(0, 68091, '\P{^Is_Numeric_Value=4.16667e-01}', "");
     Expect(1, 68090, '\p{Is_Numeric_Value=0.41667}', "");
     Expect(0, 68090, '\p{^Is_Numeric_Value=0.41667}', "");
     Expect(0, 68090, '\P{Is_Numeric_Value=0.41667}', "");
@@ -81833,38 +82423,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68091, '\p{^Is_Numeric_Value=0.41667}', "");
     Expect(1, 68091, '\P{Is_Numeric_Value=0.41667}', "");
     Expect(0, 68091, '\P{^Is_Numeric_Value=0.41667}', "");
-    Error('\p{Is_Nv=:=00000005/0012}');
-    Error('\P{Is_Nv=:=00000005/0012}');
-    Expect(1, 68090, '\p{Is_Nv=000000005/0000000012}', "");
-    Expect(0, 68090, '\p{^Is_Nv=000000005/0000000012}', "");
-    Expect(0, 68090, '\P{Is_Nv=000000005/0000000012}', "");
-    Expect(1, 68090, '\P{^Is_Nv=000000005/0000000012}', "");
-    Expect(0, 68091, '\p{Is_Nv=000000005/0000000012}', "");
-    Expect(1, 68091, '\p{^Is_Nv=000000005/0000000012}', "");
-    Expect(1, 68091, '\P{Is_Nv=000000005/0000000012}', "");
-    Expect(0, 68091, '\P{^Is_Nv=000000005/0000000012}', "");
-    Expect(1, 68090, '\p{Is_Nv=300/720}', "");
-    Expect(0, 68090, '\p{^Is_Nv=300/720}', "");
-    Expect(0, 68090, '\P{Is_Nv=300/720}', "");
-    Expect(1, 68090, '\P{^Is_Nv=300/720}', "");
-    Expect(0, 68091, '\p{Is_Nv=300/720}', "");
-    Expect(1, 68091, '\p{^Is_Nv=300/720}', "");
-    Expect(1, 68091, '\P{Is_Nv=300/720}', "");
-    Expect(0, 68091, '\P{^Is_Nv=300/720}', "");
+    Error('\p{Is_Nv=	+05/00012/a/}');
+    Error('\P{Is_Nv=	+05/00012/a/}');
+    Expect(1, 68090, '\p{Is_Nv=+0000000005/00000012}', "");
+    Expect(0, 68090, '\p{^Is_Nv=+0000000005/00000012}', "");
+    Expect(0, 68090, '\P{Is_Nv=+0000000005/00000012}', "");
+    Expect(1, 68090, '\P{^Is_Nv=+0000000005/00000012}', "");
+    Expect(0, 68091, '\p{Is_Nv=+0000000005/00000012}', "");
+    Expect(1, 68091, '\p{^Is_Nv=+0000000005/00000012}', "");
+    Expect(1, 68091, '\P{Is_Nv=+0000000005/00000012}', "");
+    Expect(0, 68091, '\P{^Is_Nv=+0000000005/00000012}', "");
+    Expect(1, 68090, '\p{Is_Nv:	300/720}', "");
+    Expect(0, 68090, '\p{^Is_Nv:	300/720}', "");
+    Expect(0, 68090, '\P{Is_Nv:	300/720}', "");
+    Expect(1, 68090, '\P{^Is_Nv:	300/720}', "");
+    Expect(0, 68091, '\p{Is_Nv:	300/720}', "");
+    Expect(1, 68091, '\p{^Is_Nv:	300/720}', "");
+    Expect(1, 68091, '\P{Is_Nv:	300/720}', "");
+    Expect(0, 68091, '\P{^Is_Nv:	300/720}', "");
     Error('\p{Is_Nv=4.2e-01}');
     Error('\P{Is_Nv=4.2e-01}');
     Error('\p{Is_Nv=4.17e-01}');
     Error('\P{Is_Nv=4.17e-01}');
     Error('\p{Is_Nv=0.42}');
     Error('\P{Is_Nv=0.42}');
-    Expect(1, 68090, '\p{Is_Nv=4.167e-01}', "");
-    Expect(0, 68090, '\p{^Is_Nv=4.167e-01}', "");
-    Expect(0, 68090, '\P{Is_Nv=4.167e-01}', "");
-    Expect(1, 68090, '\P{^Is_Nv=4.167e-01}', "");
-    Expect(0, 68091, '\p{Is_Nv=4.167e-01}', "");
-    Expect(1, 68091, '\p{^Is_Nv=4.167e-01}', "");
-    Expect(1, 68091, '\P{Is_Nv=4.167e-01}', "");
-    Expect(0, 68091, '\P{^Is_Nv=4.167e-01}', "");
+    Expect(1, 68090, '\p{Is_Nv:4.167e-01}', "");
+    Expect(0, 68090, '\p{^Is_Nv:4.167e-01}', "");
+    Expect(0, 68090, '\P{Is_Nv:4.167e-01}', "");
+    Expect(1, 68090, '\P{^Is_Nv:4.167e-01}', "");
+    Expect(0, 68091, '\p{Is_Nv:4.167e-01}', "");
+    Expect(1, 68091, '\p{^Is_Nv:4.167e-01}', "");
+    Expect(1, 68091, '\P{Is_Nv:4.167e-01}', "");
+    Expect(0, 68091, '\P{^Is_Nv:4.167e-01}', "");
     Error('\p{Is_Nv=0.417}');
     Error('\P{Is_Nv=0.417}');
     Expect(1, 68090, '\p{Is_Nv:	4.1667e-01}', "");
@@ -81899,18 +82489,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68091, '\p{^Is_Nv=0.41667}', "");
     Expect(1, 68091, '\P{Is_Nv=0.41667}', "");
     Expect(0, 68091, '\P{^Is_Nv=0.41667}', "");
-    Error('\p{Numeric_Value: :=	0000005/00002}');
-    Error('\P{Numeric_Value: :=	0000005/00002}');
+    Error('\p{Numeric_Value=/a/	-05/00002}');
+    Error('\P{Numeric_Value=/a/	-05/00002}');
     Expect(1, 3884, '\p{Numeric_Value=:\A5/2\z:}', "");;
     Expect(0, 3885, '\p{Numeric_Value=:\A5/2\z:}', "");;
-    Expect(1, 3884, '\p{Numeric_Value=5/00002}', "");
-    Expect(0, 3884, '\p{^Numeric_Value=5/00002}', "");
-    Expect(0, 3884, '\P{Numeric_Value=5/00002}', "");
-    Expect(1, 3884, '\P{^Numeric_Value=5/00002}', "");
-    Expect(0, 3885, '\p{Numeric_Value=5/00002}', "");
-    Expect(1, 3885, '\p{^Numeric_Value=5/00002}', "");
-    Expect(1, 3885, '\P{Numeric_Value=5/00002}', "");
-    Expect(0, 3885, '\P{^Numeric_Value=5/00002}', "");
+    Expect(1, 3884, '\p{Numeric_Value=05/000000002}', "");
+    Expect(0, 3884, '\p{^Numeric_Value=05/000000002}', "");
+    Expect(0, 3884, '\P{Numeric_Value=05/000000002}', "");
+    Expect(1, 3884, '\P{^Numeric_Value=05/000000002}', "");
+    Expect(0, 3885, '\p{Numeric_Value=05/000000002}', "");
+    Expect(1, 3885, '\p{^Numeric_Value=05/000000002}', "");
+    Expect(1, 3885, '\P{Numeric_Value=05/000000002}', "");
+    Expect(0, 3885, '\P{^Numeric_Value=05/000000002}', "");
     Expect(1, 3884, '\p{Numeric_Value=300/120}', "");
     Expect(0, 3884, '\p{^Numeric_Value=300/120}', "");
     Expect(0, 3884, '\P{Numeric_Value=300/120}', "");
@@ -81951,18 +82541,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Numeric_Value=2.50}', "");
     Expect(1, 3885, '\P{Numeric_Value=2.50}', "");
     Expect(0, 3885, '\P{^Numeric_Value=2.50}', "");
-    Error('\p{Nv=-	00005/000000002/a/}');
-    Error('\P{Nv=-	00005/000000002/a/}');
+    Error('\p{Nv=_:=000005/002}');
+    Error('\P{Nv=_:=000005/002}');
     Expect(1, 3884, '\p{Nv=:\A5/2\z:}', "");;
     Expect(0, 3885, '\p{Nv=:\A5/2\z:}', "");;
-    Expect(1, 3884, '\p{Nv=+5/000000002}', "");
-    Expect(0, 3884, '\p{^Nv=+5/000000002}', "");
-    Expect(0, 3884, '\P{Nv=+5/000000002}', "");
-    Expect(1, 3884, '\P{^Nv=+5/000000002}', "");
-    Expect(0, 3885, '\p{Nv=+5/000000002}', "");
-    Expect(1, 3885, '\p{^Nv=+5/000000002}', "");
-    Expect(1, 3885, '\P{Nv=+5/000000002}', "");
-    Expect(0, 3885, '\P{^Nv=+5/000000002}', "");
+    Expect(1, 3884, '\p{Nv=0005/000000002}', "");
+    Expect(0, 3884, '\p{^Nv=0005/000000002}', "");
+    Expect(0, 3884, '\P{Nv=0005/000000002}', "");
+    Expect(1, 3884, '\P{^Nv=0005/000000002}', "");
+    Expect(0, 3885, '\p{Nv=0005/000000002}', "");
+    Expect(1, 3885, '\p{^Nv=0005/000000002}', "");
+    Expect(1, 3885, '\P{Nv=0005/000000002}', "");
+    Expect(0, 3885, '\P{^Nv=0005/000000002}', "");
     Expect(1, 3884, '\p{Nv=300/120}', "");
     Expect(0, 3884, '\p{^Nv=300/120}', "");
     Expect(0, 3884, '\P{Nv=300/120}', "");
@@ -81971,14 +82561,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Nv=300/120}', "");
     Expect(1, 3885, '\P{Nv=300/120}', "");
     Expect(0, 3885, '\P{^Nv=300/120}', "");
-    Expect(1, 3884, '\p{Nv:   2.5e+00}', "");
-    Expect(0, 3884, '\p{^Nv:   2.5e+00}', "");
-    Expect(0, 3884, '\P{Nv:   2.5e+00}', "");
-    Expect(1, 3884, '\P{^Nv:   2.5e+00}', "");
-    Expect(0, 3885, '\p{Nv:   2.5e+00}', "");
-    Expect(1, 3885, '\p{^Nv:   2.5e+00}', "");
-    Expect(1, 3885, '\P{Nv:   2.5e+00}', "");
-    Expect(0, 3885, '\P{^Nv:   2.5e+00}', "");
+    Expect(1, 3884, '\p{Nv:	2.5e+00}', "");
+    Expect(0, 3884, '\p{^Nv:	2.5e+00}', "");
+    Expect(0, 3884, '\P{Nv:	2.5e+00}', "");
+    Expect(1, 3884, '\P{^Nv:	2.5e+00}', "");
+    Expect(0, 3885, '\p{Nv:	2.5e+00}', "");
+    Expect(1, 3885, '\p{^Nv:	2.5e+00}', "");
+    Expect(1, 3885, '\P{Nv:	2.5e+00}', "");
+    Expect(0, 3885, '\P{^Nv:	2.5e+00}', "");
     Expect(1, 3884, '\p{Nv=2.5}', "");
     Expect(0, 3884, '\p{^Nv=2.5}', "");
     Expect(0, 3884, '\P{Nv=2.5}', "");
@@ -81995,24 +82585,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Nv=2.50e+00}', "");
     Expect(1, 3885, '\P{Nv=2.50e+00}', "");
     Expect(0, 3885, '\P{^Nv=2.50e+00}', "");
-    Expect(1, 3884, '\p{Nv:	2.50}', "");
-    Expect(0, 3884, '\p{^Nv:	2.50}', "");
-    Expect(0, 3884, '\P{Nv:	2.50}', "");
-    Expect(1, 3884, '\P{^Nv:	2.50}', "");
-    Expect(0, 3885, '\p{Nv:	2.50}', "");
-    Expect(1, 3885, '\p{^Nv:	2.50}', "");
-    Expect(1, 3885, '\P{Nv:	2.50}', "");
-    Expect(0, 3885, '\P{^Nv:	2.50}', "");
-    Error('\p{Is_Numeric_Value=_000000005/0000000002/a/}');
-    Error('\P{Is_Numeric_Value=_000000005/0000000002/a/}');
-    Expect(1, 3884, '\p{Is_Numeric_Value=+00000005/002}', "");
-    Expect(0, 3884, '\p{^Is_Numeric_Value=+00000005/002}', "");
-    Expect(0, 3884, '\P{Is_Numeric_Value=+00000005/002}', "");
-    Expect(1, 3884, '\P{^Is_Numeric_Value=+00000005/002}', "");
-    Expect(0, 3885, '\p{Is_Numeric_Value=+00000005/002}', "");
-    Expect(1, 3885, '\p{^Is_Numeric_Value=+00000005/002}', "");
-    Expect(1, 3885, '\P{Is_Numeric_Value=+00000005/002}', "");
-    Expect(0, 3885, '\P{^Is_Numeric_Value=+00000005/002}', "");
+    Expect(1, 3884, '\p{Nv=2.50}', "");
+    Expect(0, 3884, '\p{^Nv=2.50}', "");
+    Expect(0, 3884, '\P{Nv=2.50}', "");
+    Expect(1, 3884, '\P{^Nv=2.50}', "");
+    Expect(0, 3885, '\p{Nv=2.50}', "");
+    Expect(1, 3885, '\p{^Nv=2.50}', "");
+    Expect(1, 3885, '\P{Nv=2.50}', "");
+    Expect(0, 3885, '\P{^Nv=2.50}', "");
+    Error('\p{Is_Numeric_Value::=	-00000005/02}');
+    Error('\P{Is_Numeric_Value::=	-00000005/02}');
+    Expect(1, 3884, '\p{Is_Numeric_Value:+0000005/02}', "");
+    Expect(0, 3884, '\p{^Is_Numeric_Value:+0000005/02}', "");
+    Expect(0, 3884, '\P{Is_Numeric_Value:+0000005/02}', "");
+    Expect(1, 3884, '\P{^Is_Numeric_Value:+0000005/02}', "");
+    Expect(0, 3885, '\p{Is_Numeric_Value:+0000005/02}', "");
+    Expect(1, 3885, '\p{^Is_Numeric_Value:+0000005/02}', "");
+    Expect(1, 3885, '\P{Is_Numeric_Value:+0000005/02}', "");
+    Expect(0, 3885, '\P{^Is_Numeric_Value:+0000005/02}', "");
     Expect(1, 3884, '\p{Is_Numeric_Value=300/120}', "");
     Expect(0, 3884, '\p{^Is_Numeric_Value=300/120}', "");
     Expect(0, 3884, '\P{Is_Numeric_Value=300/120}', "");
@@ -82037,14 +82627,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Is_Numeric_Value=2.5}', "");
     Expect(1, 3885, '\P{Is_Numeric_Value=2.5}', "");
     Expect(0, 3885, '\P{^Is_Numeric_Value=2.5}', "");
-    Expect(1, 3884, '\p{Is_Numeric_Value:   2.50e+00}', "");
-    Expect(0, 3884, '\p{^Is_Numeric_Value:   2.50e+00}', "");
-    Expect(0, 3884, '\P{Is_Numeric_Value:   2.50e+00}', "");
-    Expect(1, 3884, '\P{^Is_Numeric_Value:   2.50e+00}', "");
-    Expect(0, 3885, '\p{Is_Numeric_Value:   2.50e+00}', "");
-    Expect(1, 3885, '\p{^Is_Numeric_Value:   2.50e+00}', "");
-    Expect(1, 3885, '\P{Is_Numeric_Value:   2.50e+00}', "");
-    Expect(0, 3885, '\P{^Is_Numeric_Value:   2.50e+00}', "");
+    Expect(1, 3884, '\p{Is_Numeric_Value=2.50e+00}', "");
+    Expect(0, 3884, '\p{^Is_Numeric_Value=2.50e+00}', "");
+    Expect(0, 3884, '\P{Is_Numeric_Value=2.50e+00}', "");
+    Expect(1, 3884, '\P{^Is_Numeric_Value=2.50e+00}', "");
+    Expect(0, 3885, '\p{Is_Numeric_Value=2.50e+00}', "");
+    Expect(1, 3885, '\p{^Is_Numeric_Value=2.50e+00}', "");
+    Expect(1, 3885, '\P{Is_Numeric_Value=2.50e+00}', "");
+    Expect(0, 3885, '\P{^Is_Numeric_Value=2.50e+00}', "");
     Expect(1, 3884, '\p{Is_Numeric_Value=2.50}', "");
     Expect(0, 3884, '\p{^Is_Numeric_Value=2.50}', "");
     Expect(0, 3884, '\P{Is_Numeric_Value=2.50}', "");
@@ -82053,16 +82643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Is_Numeric_Value=2.50}', "");
     Expect(1, 3885, '\P{Is_Numeric_Value=2.50}', "");
     Expect(0, 3885, '\P{^Is_Numeric_Value=2.50}', "");
-    Error('\p{Is_Nv=_5/2/a/}');
-    Error('\P{Is_Nv=_5/2/a/}');
-    Expect(1, 3884, '\p{Is_Nv=+05/0000002}', "");
-    Expect(0, 3884, '\p{^Is_Nv=+05/0000002}', "");
-    Expect(0, 3884, '\P{Is_Nv=+05/0000002}', "");
-    Expect(1, 3884, '\P{^Is_Nv=+05/0000002}', "");
-    Expect(0, 3885, '\p{Is_Nv=+05/0000002}', "");
-    Expect(1, 3885, '\p{^Is_Nv=+05/0000002}', "");
-    Expect(1, 3885, '\P{Is_Nv=+05/0000002}', "");
-    Expect(0, 3885, '\P{^Is_Nv=+05/0000002}', "");
+    Error('\p{Is_Nv= /a/000005/000002}');
+    Error('\P{Is_Nv= /a/000005/000002}');
+    Expect(1, 3884, '\p{Is_Nv=000000005/00000002}', "");
+    Expect(0, 3884, '\p{^Is_Nv=000000005/00000002}', "");
+    Expect(0, 3884, '\P{Is_Nv=000000005/00000002}', "");
+    Expect(1, 3884, '\P{^Is_Nv=000000005/00000002}', "");
+    Expect(0, 3885, '\p{Is_Nv=000000005/00000002}', "");
+    Expect(1, 3885, '\p{^Is_Nv=000000005/00000002}', "");
+    Expect(1, 3885, '\P{Is_Nv=000000005/00000002}', "");
+    Expect(0, 3885, '\P{^Is_Nv=000000005/00000002}', "");
     Expect(1, 3884, '\p{Is_Nv=300/120}', "");
     Expect(0, 3884, '\p{^Is_Nv=300/120}', "");
     Expect(0, 3884, '\P{Is_Nv=300/120}', "");
@@ -82071,14 +82661,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Is_Nv=300/120}', "");
     Expect(1, 3885, '\P{Is_Nv=300/120}', "");
     Expect(0, 3885, '\P{^Is_Nv=300/120}', "");
-    Expect(1, 3884, '\p{Is_Nv:	2.5e+00}', "");
-    Expect(0, 3884, '\p{^Is_Nv:	2.5e+00}', "");
-    Expect(0, 3884, '\P{Is_Nv:	2.5e+00}', "");
-    Expect(1, 3884, '\P{^Is_Nv:	2.5e+00}', "");
-    Expect(0, 3885, '\p{Is_Nv:	2.5e+00}', "");
-    Expect(1, 3885, '\p{^Is_Nv:	2.5e+00}', "");
-    Expect(1, 3885, '\P{Is_Nv:	2.5e+00}', "");
-    Expect(0, 3885, '\P{^Is_Nv:	2.5e+00}', "");
+    Expect(1, 3884, '\p{Is_Nv=2.5e+00}', "");
+    Expect(0, 3884, '\p{^Is_Nv=2.5e+00}', "");
+    Expect(0, 3884, '\P{Is_Nv=2.5e+00}', "");
+    Expect(1, 3884, '\P{^Is_Nv=2.5e+00}', "");
+    Expect(0, 3885, '\p{Is_Nv=2.5e+00}', "");
+    Expect(1, 3885, '\p{^Is_Nv=2.5e+00}', "");
+    Expect(1, 3885, '\P{Is_Nv=2.5e+00}', "");
+    Expect(0, 3885, '\P{^Is_Nv=2.5e+00}', "");
     Expect(1, 3884, '\p{Is_Nv=2.5}', "");
     Expect(0, 3884, '\p{^Is_Nv=2.5}', "");
     Expect(0, 3884, '\P{Is_Nv=2.5}', "");
@@ -82095,26 +82685,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3885, '\p{^Is_Nv=2.50e+00}', "");
     Expect(1, 3885, '\P{Is_Nv=2.50e+00}', "");
     Expect(0, 3885, '\P{^Is_Nv=2.50e+00}', "");
-    Expect(1, 3884, '\p{Is_Nv:	2.50}', "");
-    Expect(0, 3884, '\p{^Is_Nv:	2.50}', "");
-    Expect(0, 3884, '\P{Is_Nv:	2.50}', "");
-    Expect(1, 3884, '\P{^Is_Nv:	2.50}', "");
-    Expect(0, 3885, '\p{Is_Nv:	2.50}', "");
-    Expect(1, 3885, '\p{^Is_Nv:	2.50}', "");
-    Expect(1, 3885, '\P{Is_Nv:	2.50}', "");
-    Expect(0, 3885, '\P{^Is_Nv:	2.50}', "");
-    Error('\p{Numeric_Value=:=-0000005/00000006}');
-    Error('\P{Numeric_Value=:=-0000005/00000006}');
+    Expect(1, 3884, '\p{Is_Nv=2.50}', "");
+    Expect(0, 3884, '\p{^Is_Nv=2.50}', "");
+    Expect(0, 3884, '\P{Is_Nv=2.50}', "");
+    Expect(1, 3884, '\P{^Is_Nv=2.50}', "");
+    Expect(0, 3885, '\p{Is_Nv=2.50}', "");
+    Expect(1, 3885, '\p{^Is_Nv=2.50}', "");
+    Expect(1, 3885, '\P{Is_Nv=2.50}', "");
+    Expect(0, 3885, '\P{^Is_Nv=2.50}', "");
+    Error('\p{Numeric_Value=-/a/00000005/000006}');
+    Error('\P{Numeric_Value=-/a/00000005/000006}');
     Expect(1, 74844, '\p{Numeric_Value=:\A5/6\z:}', "");;
     Expect(0, 74845, '\p{Numeric_Value=:\A5/6\z:}', "");;
-    Expect(1, 74844, '\p{Numeric_Value=000000005/06}', "");
-    Expect(0, 74844, '\p{^Numeric_Value=000000005/06}', "");
-    Expect(0, 74844, '\P{Numeric_Value=000000005/06}', "");
-    Expect(1, 74844, '\P{^Numeric_Value=000000005/06}', "");
-    Expect(0, 74845, '\p{Numeric_Value=000000005/06}', "");
-    Expect(1, 74845, '\p{^Numeric_Value=000000005/06}', "");
-    Expect(1, 74845, '\P{Numeric_Value=000000005/06}', "");
-    Expect(0, 74845, '\P{^Numeric_Value=000000005/06}', "");
+    Expect(1, 74844, '\p{Numeric_Value=05/00000006}', "");
+    Expect(0, 74844, '\p{^Numeric_Value=05/00000006}', "");
+    Expect(0, 74844, '\P{Numeric_Value=05/00000006}', "");
+    Expect(1, 74844, '\P{^Numeric_Value=05/00000006}', "");
+    Expect(0, 74845, '\p{Numeric_Value=05/00000006}', "");
+    Expect(1, 74845, '\p{^Numeric_Value=05/00000006}', "");
+    Expect(1, 74845, '\P{Numeric_Value=05/00000006}', "");
+    Expect(0, 74845, '\P{^Numeric_Value=05/00000006}', "");
     Expect(1, 74844, '\p{Numeric_Value=300/360}', "");
     Expect(0, 74844, '\p{^Numeric_Value=300/360}', "");
     Expect(0, 74844, '\P{Numeric_Value=300/360}', "");
@@ -82139,14 +82729,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 74845, '\P{^Numeric_Value=8.333e-01}', "");
     Error('\p{Numeric_Value=0.833}');
     Error('\P{Numeric_Value=0.833}');
-    Expect(1, 74844, '\p{Numeric_Value: 8.3333e-01}', "");
-    Expect(0, 74844, '\p{^Numeric_Value: 8.3333e-01}', "");
-    Expect(0, 74844, '\P{Numeric_Value: 8.3333e-01}', "");
-    Expect(1, 74844, '\P{^Numeric_Value: 8.3333e-01}', "");
-    Expect(0, 74845, '\p{Numeric_Value: 8.3333e-01}', "");
-    Expect(1, 74845, '\p{^Numeric_Value: 8.3333e-01}', "");
-    Expect(1, 74845, '\P{Numeric_Value: 8.3333e-01}', "");
-    Expect(0, 74845, '\P{^Numeric_Value: 8.3333e-01}', "");
+    Expect(1, 74844, '\p{Numeric_Value=8.3333e-01}', "");
+    Expect(0, 74844, '\p{^Numeric_Value=8.3333e-01}', "");
+    Expect(0, 74844, '\P{Numeric_Value=8.3333e-01}', "");
+    Expect(1, 74844, '\P{^Numeric_Value=8.3333e-01}', "");
+    Expect(0, 74845, '\p{Numeric_Value=8.3333e-01}', "");
+    Expect(1, 74845, '\p{^Numeric_Value=8.3333e-01}', "");
+    Expect(1, 74845, '\P{Numeric_Value=8.3333e-01}', "");
+    Expect(0, 74845, '\P{^Numeric_Value=8.3333e-01}', "");
     Expect(1, 74844, '\p{Numeric_Value=0.8333}', "");
     Expect(0, 74844, '\p{^Numeric_Value=0.8333}', "");
     Expect(0, 74844, '\P{Numeric_Value=0.8333}', "");
@@ -82163,34 +82753,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74845, '\p{^Numeric_Value=8.33333e-01}', "");
     Expect(1, 74845, '\P{Numeric_Value=8.33333e-01}', "");
     Expect(0, 74845, '\P{^Numeric_Value=8.33333e-01}', "");
-    Expect(1, 74844, '\p{Numeric_Value=0.83333}', "");
-    Expect(0, 74844, '\p{^Numeric_Value=0.83333}', "");
-    Expect(0, 74844, '\P{Numeric_Value=0.83333}', "");
-    Expect(1, 74844, '\P{^Numeric_Value=0.83333}', "");
-    Expect(0, 74845, '\p{Numeric_Value=0.83333}', "");
-    Expect(1, 74845, '\p{^Numeric_Value=0.83333}', "");
-    Expect(1, 74845, '\P{Numeric_Value=0.83333}', "");
-    Expect(0, 74845, '\P{^Numeric_Value=0.83333}', "");
-    Error('\p{Nv=-_+5/000006/a/}');
-    Error('\P{Nv=-_+5/000006/a/}');
+    Expect(1, 74844, '\p{Numeric_Value:   0.83333}', "");
+    Expect(0, 74844, '\p{^Numeric_Value:   0.83333}', "");
+    Expect(0, 74844, '\P{Numeric_Value:   0.83333}', "");
+    Expect(1, 74844, '\P{^Numeric_Value:   0.83333}', "");
+    Expect(0, 74845, '\p{Numeric_Value:   0.83333}', "");
+    Expect(1, 74845, '\p{^Numeric_Value:   0.83333}', "");
+    Expect(1, 74845, '\P{Numeric_Value:   0.83333}', "");
+    Expect(0, 74845, '\P{^Numeric_Value:   0.83333}', "");
+    Error('\p{Nv:	:=- 00000005/0000006}');
+    Error('\P{Nv:	:=- 00000005/0000006}');
     Expect(1, 74844, '\p{Nv=:\A5/6\z:}', "");;
     Expect(0, 74845, '\p{Nv=:\A5/6\z:}', "");;
-    Expect(1, 74844, '\p{Nv=+00000005/00000006}', "");
-    Expect(0, 74844, '\p{^Nv=+00000005/00000006}', "");
-    Expect(0, 74844, '\P{Nv=+00000005/00000006}', "");
-    Expect(1, 74844, '\P{^Nv=+00000005/00000006}', "");
-    Expect(0, 74845, '\p{Nv=+00000005/00000006}', "");
-    Expect(1, 74845, '\p{^Nv=+00000005/00000006}', "");
-    Expect(1, 74845, '\P{Nv=+00000005/00000006}', "");
-    Expect(0, 74845, '\P{^Nv=+00000005/00000006}', "");
-    Expect(1, 74844, '\p{Nv=300/360}', "");
-    Expect(0, 74844, '\p{^Nv=300/360}', "");
-    Expect(0, 74844, '\P{Nv=300/360}', "");
-    Expect(1, 74844, '\P{^Nv=300/360}', "");
-    Expect(0, 74845, '\p{Nv=300/360}', "");
-    Expect(1, 74845, '\p{^Nv=300/360}', "");
-    Expect(1, 74845, '\P{Nv=300/360}', "");
-    Expect(0, 74845, '\P{^Nv=300/360}', "");
+    Expect(1, 74844, '\p{Nv=+00005/0006}', "");
+    Expect(0, 74844, '\p{^Nv=+00005/0006}', "");
+    Expect(0, 74844, '\P{Nv=+00005/0006}', "");
+    Expect(1, 74844, '\P{^Nv=+00005/0006}', "");
+    Expect(0, 74845, '\p{Nv=+00005/0006}', "");
+    Expect(1, 74845, '\p{^Nv=+00005/0006}', "");
+    Expect(1, 74845, '\P{Nv=+00005/0006}', "");
+    Expect(0, 74845, '\P{^Nv=+00005/0006}', "");
+    Expect(1, 74844, '\p{Nv:	300/360}', "");
+    Expect(0, 74844, '\p{^Nv:	300/360}', "");
+    Expect(0, 74844, '\P{Nv:	300/360}', "");
+    Expect(1, 74844, '\P{^Nv:	300/360}', "");
+    Expect(0, 74845, '\p{Nv:	300/360}', "");
+    Expect(1, 74845, '\p{^Nv:	300/360}', "");
+    Expect(1, 74845, '\P{Nv:	300/360}', "");
+    Expect(0, 74845, '\P{^Nv:	300/360}', "");
     Error('\p{Nv=8.3e-01}');
     Error('\P{Nv=8.3e-01}');
     Error('\p{Nv=8.33e-01}');
@@ -82205,8 +82795,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74845, '\p{^Nv=8.333e-01}', "");
     Expect(1, 74845, '\P{Nv=8.333e-01}', "");
     Expect(0, 74845, '\P{^Nv=8.333e-01}', "");
-    Error('\p{Nv=0.833}');
-    Error('\P{Nv=0.833}');
+    Error('\p{Nv:	0.833}');
+    Error('\P{Nv:	0.833}');
     Expect(1, 74844, '\p{Nv=8.3333e-01}', "");
     Expect(0, 74844, '\p{^Nv=8.3333e-01}', "");
     Expect(0, 74844, '\P{Nv=8.3333e-01}', "");
@@ -82239,28 +82829,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74845, '\p{^Nv=0.83333}', "");
     Expect(1, 74845, '\P{Nv=0.83333}', "");
     Expect(0, 74845, '\P{^Nv=0.83333}', "");
-    Error('\p{Is_Numeric_Value=:=_ 0000000005/000000006}');
-    Error('\P{Is_Numeric_Value=:=_ 0000000005/000000006}');
-    Expect(1, 74844, '\p{Is_Numeric_Value=+00005/000000006}', "");
-    Expect(0, 74844, '\p{^Is_Numeric_Value=+00005/000000006}', "");
-    Expect(0, 74844, '\P{Is_Numeric_Value=+00005/000000006}', "");
-    Expect(1, 74844, '\P{^Is_Numeric_Value=+00005/000000006}', "");
-    Expect(0, 74845, '\p{Is_Numeric_Value=+00005/000000006}', "");
-    Expect(1, 74845, '\p{^Is_Numeric_Value=+00005/000000006}', "");
-    Expect(1, 74845, '\P{Is_Numeric_Value=+00005/000000006}', "");
-    Expect(0, 74845, '\P{^Is_Numeric_Value=+00005/000000006}', "");
-    Expect(1, 74844, '\p{Is_Numeric_Value:   300/360}', "");
-    Expect(0, 74844, '\p{^Is_Numeric_Value:   300/360}', "");
-    Expect(0, 74844, '\P{Is_Numeric_Value:   300/360}', "");
-    Expect(1, 74844, '\P{^Is_Numeric_Value:   300/360}', "");
-    Expect(0, 74845, '\p{Is_Numeric_Value:   300/360}', "");
-    Expect(1, 74845, '\p{^Is_Numeric_Value:   300/360}', "");
-    Expect(1, 74845, '\P{Is_Numeric_Value:   300/360}', "");
-    Expect(0, 74845, '\P{^Is_Numeric_Value:   300/360}', "");
+    Error('\p{Is_Numeric_Value= 	005/006/a/}');
+    Error('\P{Is_Numeric_Value= 	005/006/a/}');
+    Expect(1, 74844, '\p{Is_Numeric_Value: +000005/000006}', "");
+    Expect(0, 74844, '\p{^Is_Numeric_Value: +000005/000006}', "");
+    Expect(0, 74844, '\P{Is_Numeric_Value: +000005/000006}', "");
+    Expect(1, 74844, '\P{^Is_Numeric_Value: +000005/000006}', "");
+    Expect(0, 74845, '\p{Is_Numeric_Value: +000005/000006}', "");
+    Expect(1, 74845, '\p{^Is_Numeric_Value: +000005/000006}', "");
+    Expect(1, 74845, '\P{Is_Numeric_Value: +000005/000006}', "");
+    Expect(0, 74845, '\P{^Is_Numeric_Value: +000005/000006}', "");
+    Expect(1, 74844, '\p{Is_Numeric_Value=300/360}', "");
+    Expect(0, 74844, '\p{^Is_Numeric_Value=300/360}', "");
+    Expect(0, 74844, '\P{Is_Numeric_Value=300/360}', "");
+    Expect(1, 74844, '\P{^Is_Numeric_Value=300/360}', "");
+    Expect(0, 74845, '\p{Is_Numeric_Value=300/360}', "");
+    Expect(1, 74845, '\p{^Is_Numeric_Value=300/360}', "");
+    Expect(1, 74845, '\P{Is_Numeric_Value=300/360}', "");
+    Expect(0, 74845, '\P{^Is_Numeric_Value=300/360}', "");
     Error('\p{Is_Numeric_Value=8.3e-01}');
     Error('\P{Is_Numeric_Value=8.3e-01}');
-    Error('\p{Is_Numeric_Value:   8.33e-01}');
-    Error('\P{Is_Numeric_Value:   8.33e-01}');
+    Error('\p{Is_Numeric_Value=8.33e-01}');
+    Error('\P{Is_Numeric_Value=8.33e-01}');
     Error('\p{Is_Numeric_Value=0.83}');
     Error('\P{Is_Numeric_Value=0.83}');
     Expect(1, 74844, '\p{Is_Numeric_Value=8.333e-01}', "");
@@ -82273,14 +82863,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 74845, '\P{^Is_Numeric_Value=8.333e-01}', "");
     Error('\p{Is_Numeric_Value=0.833}');
     Error('\P{Is_Numeric_Value=0.833}');
-    Expect(1, 74844, '\p{Is_Numeric_Value=8.3333e-01}', "");
-    Expect(0, 74844, '\p{^Is_Numeric_Value=8.3333e-01}', "");
-    Expect(0, 74844, '\P{Is_Numeric_Value=8.3333e-01}', "");
-    Expect(1, 74844, '\P{^Is_Numeric_Value=8.3333e-01}', "");
-    Expect(0, 74845, '\p{Is_Numeric_Value=8.3333e-01}', "");
-    Expect(1, 74845, '\p{^Is_Numeric_Value=8.3333e-01}', "");
-    Expect(1, 74845, '\P{Is_Numeric_Value=8.3333e-01}', "");
-    Expect(0, 74845, '\P{^Is_Numeric_Value=8.3333e-01}', "");
+    Expect(1, 74844, '\p{Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(0, 74844, '\p{^Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(0, 74844, '\P{Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(1, 74844, '\P{^Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(0, 74845, '\p{Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(1, 74845, '\p{^Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(1, 74845, '\P{Is_Numeric_Value: 8.3333e-01}', "");
+    Expect(0, 74845, '\P{^Is_Numeric_Value: 8.3333e-01}', "");
     Expect(1, 74844, '\p{Is_Numeric_Value=0.8333}', "");
     Expect(0, 74844, '\p{^Is_Numeric_Value=0.8333}', "");
     Expect(0, 74844, '\P{Is_Numeric_Value=0.8333}', "");
@@ -82289,32 +82879,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74845, '\p{^Is_Numeric_Value=0.8333}', "");
     Expect(1, 74845, '\P{Is_Numeric_Value=0.8333}', "");
     Expect(0, 74845, '\P{^Is_Numeric_Value=0.8333}', "");
-    Expect(1, 74844, '\p{Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(0, 74844, '\p{^Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(0, 74844, '\P{Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(1, 74844, '\P{^Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(0, 74845, '\p{Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(1, 74845, '\p{^Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(1, 74845, '\P{Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(0, 74845, '\P{^Is_Numeric_Value: 8.33333e-01}', "");
-    Expect(1, 74844, '\p{Is_Numeric_Value: 0.83333}', "");
-    Expect(0, 74844, '\p{^Is_Numeric_Value: 0.83333}', "");
-    Expect(0, 74844, '\P{Is_Numeric_Value: 0.83333}', "");
-    Expect(1, 74844, '\P{^Is_Numeric_Value: 0.83333}', "");
-    Expect(0, 74845, '\p{Is_Numeric_Value: 0.83333}', "");
-    Expect(1, 74845, '\p{^Is_Numeric_Value: 0.83333}', "");
-    Expect(1, 74845, '\P{Is_Numeric_Value: 0.83333}', "");
-    Expect(0, 74845, '\P{^Is_Numeric_Value: 0.83333}', "");
-    Error('\p{Is_Nv=/a/	 0005/0006}');
-    Error('\P{Is_Nv=/a/	 0005/0006}');
-    Expect(1, 74844, '\p{Is_Nv=000005/000006}', "");
-    Expect(0, 74844, '\p{^Is_Nv=000005/000006}', "");
-    Expect(0, 74844, '\P{Is_Nv=000005/000006}', "");
-    Expect(1, 74844, '\P{^Is_Nv=000005/000006}', "");
-    Expect(0, 74845, '\p{Is_Nv=000005/000006}', "");
-    Expect(1, 74845, '\p{^Is_Nv=000005/000006}', "");
-    Expect(1, 74845, '\P{Is_Nv=000005/000006}', "");
-    Expect(0, 74845, '\P{^Is_Nv=000005/000006}', "");
+    Expect(1, 74844, '\p{Is_Numeric_Value=8.33333e-01}', "");
+    Expect(0, 74844, '\p{^Is_Numeric_Value=8.33333e-01}', "");
+    Expect(0, 74844, '\P{Is_Numeric_Value=8.33333e-01}', "");
+    Expect(1, 74844, '\P{^Is_Numeric_Value=8.33333e-01}', "");
+    Expect(0, 74845, '\p{Is_Numeric_Value=8.33333e-01}', "");
+    Expect(1, 74845, '\p{^Is_Numeric_Value=8.33333e-01}', "");
+    Expect(1, 74845, '\P{Is_Numeric_Value=8.33333e-01}', "");
+    Expect(0, 74845, '\P{^Is_Numeric_Value=8.33333e-01}', "");
+    Expect(1, 74844, '\p{Is_Numeric_Value=0.83333}', "");
+    Expect(0, 74844, '\p{^Is_Numeric_Value=0.83333}', "");
+    Expect(0, 74844, '\P{Is_Numeric_Value=0.83333}', "");
+    Expect(1, 74844, '\P{^Is_Numeric_Value=0.83333}', "");
+    Expect(0, 74845, '\p{Is_Numeric_Value=0.83333}', "");
+    Expect(1, 74845, '\p{^Is_Numeric_Value=0.83333}', "");
+    Expect(1, 74845, '\P{Is_Numeric_Value=0.83333}', "");
+    Expect(0, 74845, '\P{^Is_Numeric_Value=0.83333}', "");
+    Error('\p{Is_Nv=/a/	05/06}');
+    Error('\P{Is_Nv=/a/	05/06}');
+    Expect(1, 74844, '\p{Is_Nv=00005/06}', "");
+    Expect(0, 74844, '\p{^Is_Nv=00005/06}', "");
+    Expect(0, 74844, '\P{Is_Nv=00005/06}', "");
+    Expect(1, 74844, '\P{^Is_Nv=00005/06}', "");
+    Expect(0, 74845, '\p{Is_Nv=00005/06}', "");
+    Expect(1, 74845, '\p{^Is_Nv=00005/06}', "");
+    Expect(1, 74845, '\P{Is_Nv=00005/06}', "");
+    Expect(0, 74845, '\P{^Is_Nv=00005/06}', "");
     Expect(1, 74844, '\p{Is_Nv=300/360}', "");
     Expect(0, 74844, '\p{^Is_Nv=300/360}', "");
     Expect(0, 74844, '\P{Is_Nv=300/360}', "");
@@ -82337,8 +82927,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74845, '\p{^Is_Nv=8.333e-01}', "");
     Expect(1, 74845, '\P{Is_Nv=8.333e-01}', "");
     Expect(0, 74845, '\P{^Is_Nv=8.333e-01}', "");
-    Error('\p{Is_Nv:0.833}');
-    Error('\P{Is_Nv:0.833}');
+    Error('\p{Is_Nv=0.833}');
+    Error('\P{Is_Nv=0.833}');
     Expect(1, 74844, '\p{Is_Nv=8.3333e-01}', "");
     Expect(0, 74844, '\p{^Is_Nv=8.3333e-01}', "");
     Expect(0, 74844, '\P{Is_Nv=8.3333e-01}', "");
@@ -82363,26 +82953,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74845, '\p{^Is_Nv=8.33333e-01}', "");
     Expect(1, 74845, '\P{Is_Nv=8.33333e-01}', "");
     Expect(0, 74845, '\P{^Is_Nv=8.33333e-01}', "");
-    Expect(1, 74844, '\p{Is_Nv:   0.83333}', "");
-    Expect(0, 74844, '\p{^Is_Nv:   0.83333}', "");
-    Expect(0, 74844, '\P{Is_Nv:   0.83333}', "");
-    Expect(1, 74844, '\P{^Is_Nv:   0.83333}', "");
-    Expect(0, 74845, '\p{Is_Nv:   0.83333}', "");
-    Expect(1, 74845, '\p{^Is_Nv:   0.83333}', "");
-    Expect(1, 74845, '\P{Is_Nv:   0.83333}', "");
-    Expect(0, 74845, '\P{^Is_Nv:   0.83333}', "");
-    Error('\p{Numeric_Value=	-05/008/a/}');
-    Error('\P{Numeric_Value=	-05/008/a/}');
+    Expect(1, 74844, '\p{Is_Nv=0.83333}', "");
+    Expect(0, 74844, '\p{^Is_Nv=0.83333}', "");
+    Expect(0, 74844, '\P{Is_Nv=0.83333}', "");
+    Expect(1, 74844, '\P{^Is_Nv=0.83333}', "");
+    Expect(0, 74845, '\p{Is_Nv=0.83333}', "");
+    Expect(1, 74845, '\p{^Is_Nv=0.83333}', "");
+    Expect(1, 74845, '\P{Is_Nv=0.83333}', "");
+    Expect(0, 74845, '\P{^Is_Nv=0.83333}', "");
+    Error('\p{Numeric_Value=__0005/000000008/a/}');
+    Error('\P{Numeric_Value=__0005/000000008/a/}');
     Expect(1, 8541, '\p{Numeric_Value=:\A5/8\z:}', "");;
     Expect(0, 8542, '\p{Numeric_Value=:\A5/8\z:}', "");;
-    Expect(1, 8541, '\p{Numeric_Value=+000005/000008}', "");
-    Expect(0, 8541, '\p{^Numeric_Value=+000005/000008}', "");
-    Expect(0, 8541, '\P{Numeric_Value=+000005/000008}', "");
-    Expect(1, 8541, '\P{^Numeric_Value=+000005/000008}', "");
-    Expect(0, 8542, '\p{Numeric_Value=+000005/000008}', "");
-    Expect(1, 8542, '\p{^Numeric_Value=+000005/000008}', "");
-    Expect(1, 8542, '\P{Numeric_Value=+000005/000008}', "");
-    Expect(0, 8542, '\P{^Numeric_Value=+000005/000008}', "");
+    Expect(1, 8541, '\p{Numeric_Value=005/0000008}', "");
+    Expect(0, 8541, '\p{^Numeric_Value=005/0000008}', "");
+    Expect(0, 8541, '\P{Numeric_Value=005/0000008}', "");
+    Expect(1, 8541, '\P{^Numeric_Value=005/0000008}', "");
+    Expect(0, 8542, '\p{Numeric_Value=005/0000008}', "");
+    Expect(1, 8542, '\p{^Numeric_Value=005/0000008}', "");
+    Expect(1, 8542, '\P{Numeric_Value=005/0000008}', "");
+    Expect(0, 8542, '\P{^Numeric_Value=005/0000008}', "");
     Expect(1, 8541, '\p{Numeric_Value=300/480}', "");
     Expect(0, 8541, '\p{^Numeric_Value=300/480}', "");
     Expect(0, 8541, '\P{Numeric_Value=300/480}', "");
@@ -82411,14 +83001,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Numeric_Value=6.250e-01}', "");
     Expect(1, 8542, '\P{Numeric_Value=6.250e-01}', "");
     Expect(0, 8542, '\P{^Numeric_Value=6.250e-01}', "");
-    Expect(1, 8541, '\p{Numeric_Value:0.625}', "");
-    Expect(0, 8541, '\p{^Numeric_Value:0.625}', "");
-    Expect(0, 8541, '\P{Numeric_Value:0.625}', "");
-    Expect(1, 8541, '\P{^Numeric_Value:0.625}', "");
-    Expect(0, 8542, '\p{Numeric_Value:0.625}', "");
-    Expect(1, 8542, '\p{^Numeric_Value:0.625}', "");
-    Expect(1, 8542, '\P{Numeric_Value:0.625}', "");
-    Expect(0, 8542, '\P{^Numeric_Value:0.625}', "");
+    Expect(1, 8541, '\p{Numeric_Value=0.625}', "");
+    Expect(0, 8541, '\p{^Numeric_Value=0.625}', "");
+    Expect(0, 8541, '\P{Numeric_Value=0.625}', "");
+    Expect(1, 8541, '\P{^Numeric_Value=0.625}', "");
+    Expect(0, 8542, '\p{Numeric_Value=0.625}', "");
+    Expect(1, 8542, '\p{^Numeric_Value=0.625}', "");
+    Expect(1, 8542, '\P{Numeric_Value=0.625}', "");
+    Expect(0, 8542, '\P{^Numeric_Value=0.625}', "");
     Expect(1, 8541, '\p{Numeric_Value=6.2500e-01}', "");
     Expect(0, 8541, '\p{^Numeric_Value=6.2500e-01}', "");
     Expect(0, 8541, '\P{Numeric_Value=6.2500e-01}', "");
@@ -82427,26 +83017,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Numeric_Value=6.2500e-01}', "");
     Expect(1, 8542, '\P{Numeric_Value=6.2500e-01}', "");
     Expect(0, 8542, '\P{^Numeric_Value=6.2500e-01}', "");
-    Expect(1, 8541, '\p{Numeric_Value=0.6250}', "");
-    Expect(0, 8541, '\p{^Numeric_Value=0.6250}', "");
-    Expect(0, 8541, '\P{Numeric_Value=0.6250}', "");
-    Expect(1, 8541, '\P{^Numeric_Value=0.6250}', "");
-    Expect(0, 8542, '\p{Numeric_Value=0.6250}', "");
-    Expect(1, 8542, '\p{^Numeric_Value=0.6250}', "");
-    Expect(1, 8542, '\P{Numeric_Value=0.6250}', "");
-    Expect(0, 8542, '\P{^Numeric_Value=0.6250}', "");
-    Error('\p{Nv=/a/05/08}');
-    Error('\P{Nv=/a/05/08}');
+    Expect(1, 8541, '\p{Numeric_Value:   0.6250}', "");
+    Expect(0, 8541, '\p{^Numeric_Value:   0.6250}', "");
+    Expect(0, 8541, '\P{Numeric_Value:   0.6250}', "");
+    Expect(1, 8541, '\P{^Numeric_Value:   0.6250}', "");
+    Expect(0, 8542, '\p{Numeric_Value:   0.6250}', "");
+    Expect(1, 8542, '\p{^Numeric_Value:   0.6250}', "");
+    Expect(1, 8542, '\P{Numeric_Value:   0.6250}', "");
+    Expect(0, 8542, '\P{^Numeric_Value:   0.6250}', "");
+    Error('\p{Nv=/a/--0000000005/000008}');
+    Error('\P{Nv=/a/--0000000005/000008}');
     Expect(1, 8541, '\p{Nv=:\A5/8\z:}', "");;
     Expect(0, 8542, '\p{Nv=:\A5/8\z:}', "");;
-    Expect(1, 8541, '\p{Nv=0000005/000000008}', "");
-    Expect(0, 8541, '\p{^Nv=0000005/000000008}', "");
-    Expect(0, 8541, '\P{Nv=0000005/000000008}', "");
-    Expect(1, 8541, '\P{^Nv=0000005/000000008}', "");
-    Expect(0, 8542, '\p{Nv=0000005/000000008}', "");
-    Expect(1, 8542, '\p{^Nv=0000005/000000008}', "");
-    Expect(1, 8542, '\P{Nv=0000005/000000008}', "");
-    Expect(0, 8542, '\P{^Nv=0000005/000000008}', "");
+    Expect(1, 8541, '\p{Nv=000005/0008}', "");
+    Expect(0, 8541, '\p{^Nv=000005/0008}', "");
+    Expect(0, 8541, '\P{Nv=000005/0008}', "");
+    Expect(1, 8541, '\P{^Nv=000005/0008}', "");
+    Expect(0, 8542, '\p{Nv=000005/0008}', "");
+    Expect(1, 8542, '\p{^Nv=000005/0008}', "");
+    Expect(1, 8542, '\P{Nv=000005/0008}', "");
+    Expect(0, 8542, '\P{^Nv=000005/0008}', "");
     Expect(1, 8541, '\p{Nv=300/480}', "");
     Expect(0, 8541, '\p{^Nv=300/480}', "");
     Expect(0, 8541, '\P{Nv=300/480}', "");
@@ -82467,14 +83057,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8542, '\P{^Nv=6.25e-01}', "");
     Error('\p{Nv=0.62}');
     Error('\P{Nv=0.62}');
-    Expect(1, 8541, '\p{Nv:6.250e-01}', "");
-    Expect(0, 8541, '\p{^Nv:6.250e-01}', "");
-    Expect(0, 8541, '\P{Nv:6.250e-01}', "");
-    Expect(1, 8541, '\P{^Nv:6.250e-01}', "");
-    Expect(0, 8542, '\p{Nv:6.250e-01}', "");
-    Expect(1, 8542, '\p{^Nv:6.250e-01}', "");
-    Expect(1, 8542, '\P{Nv:6.250e-01}', "");
-    Expect(0, 8542, '\P{^Nv:6.250e-01}', "");
+    Expect(1, 8541, '\p{Nv=6.250e-01}', "");
+    Expect(0, 8541, '\p{^Nv=6.250e-01}', "");
+    Expect(0, 8541, '\P{Nv=6.250e-01}', "");
+    Expect(1, 8541, '\P{^Nv=6.250e-01}', "");
+    Expect(0, 8542, '\p{Nv=6.250e-01}', "");
+    Expect(1, 8542, '\p{^Nv=6.250e-01}', "");
+    Expect(1, 8542, '\P{Nv=6.250e-01}', "");
+    Expect(0, 8542, '\P{^Nv=6.250e-01}', "");
     Expect(1, 8541, '\p{Nv=0.625}', "");
     Expect(0, 8541, '\p{^Nv=0.625}', "");
     Expect(0, 8541, '\P{Nv=0.625}', "");
@@ -82483,14 +83073,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Nv=0.625}', "");
     Expect(1, 8542, '\P{Nv=0.625}', "");
     Expect(0, 8542, '\P{^Nv=0.625}', "");
-    Expect(1, 8541, '\p{Nv=6.2500e-01}', "");
-    Expect(0, 8541, '\p{^Nv=6.2500e-01}', "");
-    Expect(0, 8541, '\P{Nv=6.2500e-01}', "");
-    Expect(1, 8541, '\P{^Nv=6.2500e-01}', "");
-    Expect(0, 8542, '\p{Nv=6.2500e-01}', "");
-    Expect(1, 8542, '\p{^Nv=6.2500e-01}', "");
-    Expect(1, 8542, '\P{Nv=6.2500e-01}', "");
-    Expect(0, 8542, '\P{^Nv=6.2500e-01}', "");
+    Expect(1, 8541, '\p{Nv:   6.2500e-01}', "");
+    Expect(0, 8541, '\p{^Nv:   6.2500e-01}', "");
+    Expect(0, 8541, '\P{Nv:   6.2500e-01}', "");
+    Expect(1, 8541, '\P{^Nv:   6.2500e-01}', "");
+    Expect(0, 8542, '\p{Nv:   6.2500e-01}', "");
+    Expect(1, 8542, '\p{^Nv:   6.2500e-01}', "");
+    Expect(1, 8542, '\P{Nv:   6.2500e-01}', "");
+    Expect(0, 8542, '\P{^Nv:   6.2500e-01}', "");
     Expect(1, 8541, '\p{Nv=0.6250}', "");
     Expect(0, 8541, '\p{^Nv=0.6250}', "");
     Expect(0, 8541, '\P{Nv=0.6250}', "");
@@ -82499,16 +83089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Nv=0.6250}', "");
     Expect(1, 8542, '\P{Nv=0.6250}', "");
     Expect(0, 8542, '\P{^Nv=0.6250}', "");
-    Error('\p{Is_Numeric_Value=+00005/000008:=}');
-    Error('\P{Is_Numeric_Value=+00005/000008:=}');
-    Expect(1, 8541, '\p{Is_Numeric_Value=005/0008}', "");
-    Expect(0, 8541, '\p{^Is_Numeric_Value=005/0008}', "");
-    Expect(0, 8541, '\P{Is_Numeric_Value=005/0008}', "");
-    Expect(1, 8541, '\P{^Is_Numeric_Value=005/0008}', "");
-    Expect(0, 8542, '\p{Is_Numeric_Value=005/0008}', "");
-    Expect(1, 8542, '\p{^Is_Numeric_Value=005/0008}', "");
-    Expect(1, 8542, '\P{Is_Numeric_Value=005/0008}', "");
-    Expect(0, 8542, '\P{^Is_Numeric_Value=005/0008}', "");
+    Error('\p{Is_Numeric_Value=-0000005/0000000008:=}');
+    Error('\P{Is_Numeric_Value=-0000005/0000000008:=}');
+    Expect(1, 8541, '\p{Is_Numeric_Value=0000005/0000008}', "");
+    Expect(0, 8541, '\p{^Is_Numeric_Value=0000005/0000008}', "");
+    Expect(0, 8541, '\P{Is_Numeric_Value=0000005/0000008}', "");
+    Expect(1, 8541, '\P{^Is_Numeric_Value=0000005/0000008}', "");
+    Expect(0, 8542, '\p{Is_Numeric_Value=0000005/0000008}', "");
+    Expect(1, 8542, '\p{^Is_Numeric_Value=0000005/0000008}', "");
+    Expect(1, 8542, '\P{Is_Numeric_Value=0000005/0000008}', "");
+    Expect(0, 8542, '\P{^Is_Numeric_Value=0000005/0000008}', "");
     Expect(1, 8541, '\p{Is_Numeric_Value=300/480}', "");
     Expect(0, 8541, '\p{^Is_Numeric_Value=300/480}', "");
     Expect(0, 8541, '\P{Is_Numeric_Value=300/480}', "");
@@ -82561,16 +83151,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Is_Numeric_Value=0.6250}', "");
     Expect(1, 8542, '\P{Is_Numeric_Value=0.6250}', "");
     Expect(0, 8542, '\P{^Is_Numeric_Value=0.6250}', "");
-    Error('\p{Is_Nv=_ 0000000005/00000008/a/}');
-    Error('\P{Is_Nv=_ 0000000005/00000008/a/}');
-    Expect(1, 8541, '\p{Is_Nv=+05/8}', "");
-    Expect(0, 8541, '\p{^Is_Nv=+05/8}', "");
-    Expect(0, 8541, '\P{Is_Nv=+05/8}', "");
-    Expect(1, 8541, '\P{^Is_Nv=+05/8}', "");
-    Expect(0, 8542, '\p{Is_Nv=+05/8}', "");
-    Expect(1, 8542, '\p{^Is_Nv=+05/8}', "");
-    Expect(1, 8542, '\P{Is_Nv=+05/8}', "");
-    Expect(0, 8542, '\P{^Is_Nv=+05/8}', "");
+    Error('\p{Is_Nv= :=0005/0000008}');
+    Error('\P{Is_Nv= :=0005/0000008}');
+    Expect(1, 8541, '\p{Is_Nv=000000005/0000008}', "");
+    Expect(0, 8541, '\p{^Is_Nv=000000005/0000008}', "");
+    Expect(0, 8541, '\P{Is_Nv=000000005/0000008}', "");
+    Expect(1, 8541, '\P{^Is_Nv=000000005/0000008}', "");
+    Expect(0, 8542, '\p{Is_Nv=000000005/0000008}', "");
+    Expect(1, 8542, '\p{^Is_Nv=000000005/0000008}', "");
+    Expect(1, 8542, '\P{Is_Nv=000000005/0000008}', "");
+    Expect(0, 8542, '\P{^Is_Nv=000000005/0000008}', "");
     Expect(1, 8541, '\p{Is_Nv=300/480}', "");
     Expect(0, 8541, '\p{^Is_Nv=300/480}', "");
     Expect(0, 8541, '\P{Is_Nv=300/480}', "");
@@ -82581,24 +83171,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8542, '\P{^Is_Nv=300/480}', "");
     Error('\p{Is_Nv=6.2e-01}');
     Error('\P{Is_Nv=6.2e-01}');
-    Expect(1, 8541, '\p{Is_Nv=6.25e-01}', "");
-    Expect(0, 8541, '\p{^Is_Nv=6.25e-01}', "");
-    Expect(0, 8541, '\P{Is_Nv=6.25e-01}', "");
-    Expect(1, 8541, '\P{^Is_Nv=6.25e-01}', "");
-    Expect(0, 8542, '\p{Is_Nv=6.25e-01}', "");
-    Expect(1, 8542, '\p{^Is_Nv=6.25e-01}', "");
-    Expect(1, 8542, '\P{Is_Nv=6.25e-01}', "");
-    Expect(0, 8542, '\P{^Is_Nv=6.25e-01}', "");
+    Expect(1, 8541, '\p{Is_Nv:	6.25e-01}', "");
+    Expect(0, 8541, '\p{^Is_Nv:	6.25e-01}', "");
+    Expect(0, 8541, '\P{Is_Nv:	6.25e-01}', "");
+    Expect(1, 8541, '\P{^Is_Nv:	6.25e-01}', "");
+    Expect(0, 8542, '\p{Is_Nv:	6.25e-01}', "");
+    Expect(1, 8542, '\p{^Is_Nv:	6.25e-01}', "");
+    Expect(1, 8542, '\P{Is_Nv:	6.25e-01}', "");
+    Expect(0, 8542, '\P{^Is_Nv:	6.25e-01}', "");
     Error('\p{Is_Nv=0.62}');
     Error('\P{Is_Nv=0.62}');
-    Expect(1, 8541, '\p{Is_Nv:   6.250e-01}', "");
-    Expect(0, 8541, '\p{^Is_Nv:   6.250e-01}', "");
-    Expect(0, 8541, '\P{Is_Nv:   6.250e-01}', "");
-    Expect(1, 8541, '\P{^Is_Nv:   6.250e-01}', "");
-    Expect(0, 8542, '\p{Is_Nv:   6.250e-01}', "");
-    Expect(1, 8542, '\p{^Is_Nv:   6.250e-01}', "");
-    Expect(1, 8542, '\P{Is_Nv:   6.250e-01}', "");
-    Expect(0, 8542, '\P{^Is_Nv:   6.250e-01}', "");
+    Expect(1, 8541, '\p{Is_Nv=6.250e-01}', "");
+    Expect(0, 8541, '\p{^Is_Nv=6.250e-01}', "");
+    Expect(0, 8541, '\P{Is_Nv=6.250e-01}', "");
+    Expect(1, 8541, '\P{^Is_Nv=6.250e-01}', "");
+    Expect(0, 8542, '\p{Is_Nv=6.250e-01}', "");
+    Expect(1, 8542, '\p{^Is_Nv=6.250e-01}', "");
+    Expect(1, 8542, '\P{Is_Nv=6.250e-01}', "");
+    Expect(0, 8542, '\P{^Is_Nv=6.250e-01}', "");
     Expect(1, 8541, '\p{Is_Nv=0.625}', "");
     Expect(0, 8541, '\p{^Is_Nv=0.625}', "");
     Expect(0, 8541, '\P{Is_Nv=0.625}', "");
@@ -82607,14 +83197,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Is_Nv=0.625}', "");
     Expect(1, 8542, '\P{Is_Nv=0.625}', "");
     Expect(0, 8542, '\P{^Is_Nv=0.625}', "");
-    Expect(1, 8541, '\p{Is_Nv=6.2500e-01}', "");
-    Expect(0, 8541, '\p{^Is_Nv=6.2500e-01}', "");
-    Expect(0, 8541, '\P{Is_Nv=6.2500e-01}', "");
-    Expect(1, 8541, '\P{^Is_Nv=6.2500e-01}', "");
-    Expect(0, 8542, '\p{Is_Nv=6.2500e-01}', "");
-    Expect(1, 8542, '\p{^Is_Nv=6.2500e-01}', "");
-    Expect(1, 8542, '\P{Is_Nv=6.2500e-01}', "");
-    Expect(0, 8542, '\P{^Is_Nv=6.2500e-01}', "");
+    Expect(1, 8541, '\p{Is_Nv: 6.2500e-01}', "");
+    Expect(0, 8541, '\p{^Is_Nv: 6.2500e-01}', "");
+    Expect(0, 8541, '\P{Is_Nv: 6.2500e-01}', "");
+    Expect(1, 8541, '\P{^Is_Nv: 6.2500e-01}', "");
+    Expect(0, 8542, '\p{Is_Nv: 6.2500e-01}', "");
+    Expect(1, 8542, '\p{^Is_Nv: 6.2500e-01}', "");
+    Expect(1, 8542, '\P{Is_Nv: 6.2500e-01}', "");
+    Expect(0, 8542, '\P{^Is_Nv: 6.2500e-01}', "");
     Expect(1, 8541, '\p{Is_Nv=0.6250}', "");
     Expect(0, 8541, '\p{^Is_Nv=0.6250}', "");
     Expect(0, 8541, '\P{Is_Nv=0.6250}', "");
@@ -82623,56 +83213,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8542, '\p{^Is_Nv=0.6250}', "");
     Expect(1, 8542, '\P{Is_Nv=0.6250}', "");
     Expect(0, 8542, '\P{^Is_Nv=0.6250}', "");
-    Error('\p{Numeric_Value=-	0000000050/a/}');
-    Error('\P{Numeric_Value=-	0000000050/a/}');
+    Error('\p{Numeric_Value= /a/0_0_0_0_0_0_00050}');
+    Error('\P{Numeric_Value= /a/0_0_0_0_0_0_00050}');
     Expect(1, 126222, '\p{Numeric_Value=:\A50\z:}', "");;
     Expect(0, 126223, '\p{Numeric_Value=:\A50\z:}', "");;
-    Expect(1, 126222, '\p{Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(0, 126222, '\p{^Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(0, 126222, '\P{Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(1, 126222, '\P{^Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(0, 126223, '\p{Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(1, 126223, '\p{^Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(1, 126223, '\P{Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(0, 126223, '\P{^Numeric_Value=0_0_0_0_0_0_0_0_050}', "");
-    Expect(1, 126222, '\p{Numeric_Value=5.000000000000000e+01}', "");
-    Expect(0, 126222, '\p{^Numeric_Value=5.000000000000000e+01}', "");
-    Expect(0, 126222, '\P{Numeric_Value=5.000000000000000e+01}', "");
-    Expect(1, 126222, '\P{^Numeric_Value=5.000000000000000e+01}', "");
-    Expect(0, 126223, '\p{Numeric_Value=5.000000000000000e+01}', "");
-    Expect(1, 126223, '\p{^Numeric_Value=5.000000000000000e+01}', "");
-    Expect(1, 126223, '\P{Numeric_Value=5.000000000000000e+01}', "");
-    Expect(0, 126223, '\P{^Numeric_Value=5.000000000000000e+01}', "");
-    Error('\p{Nv=-/a/+050}');
-    Error('\P{Nv=-/a/+050}');
+    Expect(1, 126222, '\p{Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(0, 126222, '\p{^Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(0, 126222, '\P{Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(1, 126222, '\P{^Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(0, 126223, '\p{Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(1, 126223, '\p{^Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(1, 126223, '\P{Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(0, 126223, '\P{^Numeric_Value=0_0_0_0_0_00050}', "");
+    Expect(1, 126222, '\p{Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(0, 126222, '\p{^Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(0, 126222, '\P{Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(1, 126222, '\P{^Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(0, 126223, '\p{Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(1, 126223, '\p{^Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(1, 126223, '\P{Numeric_Value: 5.000000000000000e+01}', "");
+    Expect(0, 126223, '\P{^Numeric_Value: 5.000000000000000e+01}', "");
+    Error('\p{Nv=_50/a/}');
+    Error('\P{Nv=_50/a/}');
     Expect(1, 126222, '\p{Nv=:\A50\z:}', "");;
     Expect(0, 126223, '\p{Nv=:\A50\z:}', "");;
-    Expect(1, 126222, '\p{Nv=+0_0_0_0_50}', "");
-    Expect(0, 126222, '\p{^Nv=+0_0_0_0_50}', "");
-    Expect(0, 126222, '\P{Nv=+0_0_0_0_50}', "");
-    Expect(1, 126222, '\P{^Nv=+0_0_0_0_50}', "");
-    Expect(0, 126223, '\p{Nv=+0_0_0_0_50}', "");
-    Expect(1, 126223, '\p{^Nv=+0_0_0_0_50}', "");
-    Expect(1, 126223, '\P{Nv=+0_0_0_0_50}', "");
-    Expect(0, 126223, '\P{^Nv=+0_0_0_0_50}', "");
-    Expect(1, 126222, '\p{Nv=5.000000000000000e+01}', "");
-    Expect(0, 126222, '\p{^Nv=5.000000000000000e+01}', "");
-    Expect(0, 126222, '\P{Nv=5.000000000000000e+01}', "");
-    Expect(1, 126222, '\P{^Nv=5.000000000000000e+01}', "");
-    Expect(0, 126223, '\p{Nv=5.000000000000000e+01}', "");
-    Expect(1, 126223, '\p{^Nv=5.000000000000000e+01}', "");
-    Expect(1, 126223, '\P{Nv=5.000000000000000e+01}', "");
-    Expect(0, 126223, '\P{^Nv=5.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=:=-+05_0}');
-    Error('\P{Is_Numeric_Value=:=-+05_0}');
-    Expect(1, 126222, '\p{Is_Numeric_Value=05_0}', "");
-    Expect(0, 126222, '\p{^Is_Numeric_Value=05_0}', "");
-    Expect(0, 126222, '\P{Is_Numeric_Value=05_0}', "");
-    Expect(1, 126222, '\P{^Is_Numeric_Value=05_0}', "");
-    Expect(0, 126223, '\p{Is_Numeric_Value=05_0}', "");
-    Expect(1, 126223, '\p{^Is_Numeric_Value=05_0}', "");
-    Expect(1, 126223, '\P{Is_Numeric_Value=05_0}', "");
-    Expect(0, 126223, '\P{^Is_Numeric_Value=05_0}', "");
+    Expect(1, 126222, '\p{Nv=000050}', "");
+    Expect(0, 126222, '\p{^Nv=000050}', "");
+    Expect(0, 126222, '\P{Nv=000050}', "");
+    Expect(1, 126222, '\P{^Nv=000050}', "");
+    Expect(0, 126223, '\p{Nv=000050}', "");
+    Expect(1, 126223, '\p{^Nv=000050}', "");
+    Expect(1, 126223, '\P{Nv=000050}', "");
+    Expect(0, 126223, '\P{^Nv=000050}', "");
+    Expect(1, 126222, '\p{Nv:5.000000000000000e+01}', "");
+    Expect(0, 126222, '\p{^Nv:5.000000000000000e+01}', "");
+    Expect(0, 126222, '\P{Nv:5.000000000000000e+01}', "");
+    Expect(1, 126222, '\P{^Nv:5.000000000000000e+01}', "");
+    Expect(0, 126223, '\p{Nv:5.000000000000000e+01}', "");
+    Expect(1, 126223, '\p{^Nv:5.000000000000000e+01}', "");
+    Expect(1, 126223, '\P{Nv:5.000000000000000e+01}', "");
+    Expect(0, 126223, '\P{^Nv:5.000000000000000e+01}', "");
+    Error('\p{Is_Numeric_Value= /a/00_00_00_050}');
+    Error('\P{Is_Numeric_Value= /a/00_00_00_050}');
+    Expect(1, 126222, '\p{Is_Numeric_Value=+0000050}', "");
+    Expect(0, 126222, '\p{^Is_Numeric_Value=+0000050}', "");
+    Expect(0, 126222, '\P{Is_Numeric_Value=+0000050}', "");
+    Expect(1, 126222, '\P{^Is_Numeric_Value=+0000050}', "");
+    Expect(0, 126223, '\p{Is_Numeric_Value=+0000050}', "");
+    Expect(1, 126223, '\p{^Is_Numeric_Value=+0000050}', "");
+    Expect(1, 126223, '\P{Is_Numeric_Value=+0000050}', "");
+    Expect(0, 126223, '\P{^Is_Numeric_Value=+0000050}', "");
     Expect(1, 126222, '\p{Is_Numeric_Value=5.000000000000000e+01}', "");
     Expect(0, 126222, '\p{^Is_Numeric_Value=5.000000000000000e+01}', "");
     Expect(0, 126222, '\P{Is_Numeric_Value=5.000000000000000e+01}', "");
@@ -82681,16 +83271,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126223, '\p{^Is_Numeric_Value=5.000000000000000e+01}', "");
     Expect(1, 126223, '\P{Is_Numeric_Value=5.000000000000000e+01}', "");
     Expect(0, 126223, '\P{^Is_Numeric_Value=5.000000000000000e+01}', "");
-    Error('\p{Is_Nv:  :=0000000050}');
-    Error('\P{Is_Nv:  :=0000000050}');
-    Expect(1, 126222, '\p{Is_Nv=00_00_00_00_050}', "");
-    Expect(0, 126222, '\p{^Is_Nv=00_00_00_00_050}', "");
-    Expect(0, 126222, '\P{Is_Nv=00_00_00_00_050}', "");
-    Expect(1, 126222, '\P{^Is_Nv=00_00_00_00_050}', "");
-    Expect(0, 126223, '\p{Is_Nv=00_00_00_00_050}', "");
-    Expect(1, 126223, '\p{^Is_Nv=00_00_00_00_050}', "");
-    Expect(1, 126223, '\P{Is_Nv=00_00_00_00_050}', "");
-    Expect(0, 126223, '\P{^Is_Nv=00_00_00_00_050}', "");
+    Error('\p{Is_Nv=0000050:=}');
+    Error('\P{Is_Nv=0000050:=}');
+    Expect(1, 126222, '\p{Is_Nv=000000005_0}', "");
+    Expect(0, 126222, '\p{^Is_Nv=000000005_0}', "");
+    Expect(0, 126222, '\P{Is_Nv=000000005_0}', "");
+    Expect(1, 126222, '\P{^Is_Nv=000000005_0}', "");
+    Expect(0, 126223, '\p{Is_Nv=000000005_0}', "");
+    Expect(1, 126223, '\p{^Is_Nv=000000005_0}', "");
+    Expect(1, 126223, '\P{Is_Nv=000000005_0}', "");
+    Expect(0, 126223, '\P{^Is_Nv=000000005_0}', "");
     Expect(1, 126222, '\p{Is_Nv=5.000000000000000e+01}', "");
     Expect(0, 126222, '\p{^Is_Nv=5.000000000000000e+01}', "");
     Expect(0, 126222, '\P{Is_Nv=5.000000000000000e+01}', "");
@@ -82699,18 +83289,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126223, '\p{^Is_Nv=5.000000000000000e+01}', "");
     Expect(1, 126223, '\P{Is_Nv=5.000000000000000e+01}', "");
     Expect(0, 126223, '\P{^Is_Nv=5.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=0000000500:=}');
-    Error('\P{Numeric_Value=0000000500:=}');
+    Error('\p{Numeric_Value:	_+00000000500:=}');
+    Error('\P{Numeric_Value:	_+00000000500:=}');
     Expect(1, 126231, '\p{Numeric_Value=:\A500\z:}', "");;
     Expect(0, 126232, '\p{Numeric_Value=:\A500\z:}', "");;
-    Expect(1, 126231, '\p{Numeric_Value=+00500}', "");
-    Expect(0, 126231, '\p{^Numeric_Value=+00500}', "");
-    Expect(0, 126231, '\P{Numeric_Value=+00500}', "");
-    Expect(1, 126231, '\P{^Numeric_Value=+00500}', "");
-    Expect(0, 126232, '\p{Numeric_Value=+00500}', "");
-    Expect(1, 126232, '\p{^Numeric_Value=+00500}', "");
-    Expect(1, 126232, '\P{Numeric_Value=+00500}', "");
-    Expect(0, 126232, '\P{^Numeric_Value=+00500}', "");
+    Expect(1, 126231, '\p{Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(0, 126231, '\p{^Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(0, 126231, '\P{Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(1, 126231, '\P{^Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(0, 126232, '\p{Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(1, 126232, '\p{^Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(1, 126232, '\P{Numeric_Value=0_0_0_0_0_0_5_00}', "");
+    Expect(0, 126232, '\P{^Numeric_Value=0_0_0_0_0_0_5_00}', "");
     Expect(1, 126231, '\p{Numeric_Value=5.000000000000000e+02}', "");
     Expect(0, 126231, '\p{^Numeric_Value=5.000000000000000e+02}', "");
     Expect(0, 126231, '\P{Numeric_Value=5.000000000000000e+02}', "");
@@ -82719,18 +83309,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126232, '\p{^Numeric_Value=5.000000000000000e+02}', "");
     Expect(1, 126232, '\P{Numeric_Value=5.000000000000000e+02}', "");
     Expect(0, 126232, '\P{^Numeric_Value=5.000000000000000e+02}', "");
-    Error('\p{Nv=	000000500:=}');
-    Error('\P{Nv=	000000500:=}');
+    Error('\p{Nv=	+500/a/}');
+    Error('\P{Nv=	+500/a/}');
     Expect(1, 126231, '\p{Nv=:\A500\z:}', "");;
     Expect(0, 126232, '\p{Nv=:\A500\z:}', "");;
-    Expect(1, 126231, '\p{Nv=+0000500}', "");
-    Expect(0, 126231, '\p{^Nv=+0000500}', "");
-    Expect(0, 126231, '\P{Nv=+0000500}', "");
-    Expect(1, 126231, '\P{^Nv=+0000500}', "");
-    Expect(0, 126232, '\p{Nv=+0000500}', "");
-    Expect(1, 126232, '\p{^Nv=+0000500}', "");
-    Expect(1, 126232, '\P{Nv=+0000500}', "");
-    Expect(0, 126232, '\P{^Nv=+0000500}', "");
+    Expect(1, 126231, '\p{Nv=+0000050_0}', "");
+    Expect(0, 126231, '\p{^Nv=+0000050_0}', "");
+    Expect(0, 126231, '\P{Nv=+0000050_0}', "");
+    Expect(1, 126231, '\P{^Nv=+0000050_0}', "");
+    Expect(0, 126232, '\p{Nv=+0000050_0}', "");
+    Expect(1, 126232, '\p{^Nv=+0000050_0}', "");
+    Expect(1, 126232, '\P{Nv=+0000050_0}', "");
+    Expect(0, 126232, '\P{^Nv=+0000050_0}', "");
     Expect(1, 126231, '\p{Nv=5.000000000000000e+02}', "");
     Expect(0, 126231, '\p{^Nv=5.000000000000000e+02}', "");
     Expect(0, 126231, '\P{Nv=5.000000000000000e+02}', "");
@@ -82739,16 +83329,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126232, '\p{^Nv=5.000000000000000e+02}', "");
     Expect(1, 126232, '\P{Nv=5.000000000000000e+02}', "");
     Expect(0, 126232, '\P{^Nv=5.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value=-000_000_050_0:=}');
-    Error('\P{Is_Numeric_Value=-000_000_050_0:=}');
-    Expect(1, 126231, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(0, 126231, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(0, 126231, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(1, 126231, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(0, 126232, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(1, 126232, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(1, 126232, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
-    Expect(0, 126232, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_500}', "");
+    Error('\p{Is_Numeric_Value=/a/ 	00_00_05_00}');
+    Error('\P{Is_Numeric_Value=/a/ 	00_00_05_00}');
+    Expect(1, 126231, '\p{Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(0, 126231, '\p{^Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(0, 126231, '\P{Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(1, 126231, '\P{^Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(0, 126232, '\p{Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(1, 126232, '\p{^Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(1, 126232, '\P{Is_Numeric_Value=00_00_00_05_00}', "");
+    Expect(0, 126232, '\P{^Is_Numeric_Value=00_00_00_05_00}', "");
     Expect(1, 126231, '\p{Is_Numeric_Value=5.000000000000000e+02}', "");
     Expect(0, 126231, '\p{^Is_Numeric_Value=5.000000000000000e+02}', "");
     Expect(0, 126231, '\P{Is_Numeric_Value=5.000000000000000e+02}', "");
@@ -82757,16 +83347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126232, '\p{^Is_Numeric_Value=5.000000000000000e+02}', "");
     Expect(1, 126232, '\P{Is_Numeric_Value=5.000000000000000e+02}', "");
     Expect(0, 126232, '\P{^Is_Numeric_Value=5.000000000000000e+02}', "");
-    Error('\p{Is_Nv=:=_	+000000500}');
-    Error('\P{Is_Nv=:=_	+000000500}');
-    Expect(1, 126231, '\p{Is_Nv=0_0_0_5_00}', "");
-    Expect(0, 126231, '\p{^Is_Nv=0_0_0_5_00}', "");
-    Expect(0, 126231, '\P{Is_Nv=0_0_0_5_00}', "");
-    Expect(1, 126231, '\P{^Is_Nv=0_0_0_5_00}', "");
-    Expect(0, 126232, '\p{Is_Nv=0_0_0_5_00}', "");
-    Expect(1, 126232, '\p{^Is_Nv=0_0_0_5_00}', "");
-    Expect(1, 126232, '\P{Is_Nv=0_0_0_5_00}', "");
-    Expect(0, 126232, '\P{^Is_Nv=0_0_0_5_00}', "");
+    Error('\p{Is_Nv= +500:=}');
+    Error('\P{Is_Nv= +500:=}');
+    Expect(1, 126231, '\p{Is_Nv: 500}', "");
+    Expect(0, 126231, '\p{^Is_Nv: 500}', "");
+    Expect(0, 126231, '\P{Is_Nv: 500}', "");
+    Expect(1, 126231, '\P{^Is_Nv: 500}', "");
+    Expect(0, 126232, '\p{Is_Nv: 500}', "");
+    Expect(1, 126232, '\p{^Is_Nv: 500}', "");
+    Expect(1, 126232, '\P{Is_Nv: 500}', "");
+    Expect(0, 126232, '\P{^Is_Nv: 500}', "");
     Expect(1, 126231, '\p{Is_Nv=5.000000000000000e+02}', "");
     Expect(0, 126231, '\p{^Is_Nv=5.000000000000000e+02}', "");
     Expect(0, 126231, '\P{Is_Nv=5.000000000000000e+02}', "");
@@ -82775,38 +83365,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126232, '\p{^Is_Nv=5.000000000000000e+02}', "");
     Expect(1, 126232, '\P{Is_Nv=5.000000000000000e+02}', "");
     Expect(0, 126232, '\P{^Is_Nv=5.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=	00005000:=}');
-    Error('\P{Numeric_Value=	00005000:=}');
+    Error('\p{Numeric_Value= :=0_0_0_0_0_0_5_0_00}');
+    Error('\P{Numeric_Value= :=0_0_0_0_0_0_5_0_00}');
     Expect(1, 126240, '\p{Numeric_Value=:\A5000\z:}', "");;
     Expect(0, 126241, '\p{Numeric_Value=:\A5000\z:}', "");;
-    Expect(1, 126240, '\p{Numeric_Value=5_0_00}', "");
-    Expect(0, 126240, '\p{^Numeric_Value=5_0_00}', "");
-    Expect(0, 126240, '\P{Numeric_Value=5_0_00}', "");
-    Expect(1, 126240, '\P{^Numeric_Value=5_0_00}', "");
-    Expect(0, 126241, '\p{Numeric_Value=5_0_00}', "");
-    Expect(1, 126241, '\p{^Numeric_Value=5_0_00}', "");
-    Expect(1, 126241, '\P{Numeric_Value=5_0_00}', "");
-    Expect(0, 126241, '\P{^Numeric_Value=5_0_00}', "");
-    Expect(1, 126240, '\p{Numeric_Value=5.000000000000000e+03}', "");
-    Expect(0, 126240, '\p{^Numeric_Value=5.000000000000000e+03}', "");
-    Expect(0, 126240, '\P{Numeric_Value=5.000000000000000e+03}', "");
-    Expect(1, 126240, '\P{^Numeric_Value=5.000000000000000e+03}', "");
-    Expect(0, 126241, '\p{Numeric_Value=5.000000000000000e+03}', "");
-    Expect(1, 126241, '\p{^Numeric_Value=5.000000000000000e+03}', "");
-    Expect(1, 126241, '\P{Numeric_Value=5.000000000000000e+03}', "");
-    Expect(0, 126241, '\P{^Numeric_Value=5.000000000000000e+03}', "");
-    Error('\p{Nv=-:=000005000}');
-    Error('\P{Nv=-:=000005000}');
+    Expect(1, 126240, '\p{Numeric_Value=000005000}', "");
+    Expect(0, 126240, '\p{^Numeric_Value=000005000}', "");
+    Expect(0, 126240, '\P{Numeric_Value=000005000}', "");
+    Expect(1, 126240, '\P{^Numeric_Value=000005000}', "");
+    Expect(0, 126241, '\p{Numeric_Value=000005000}', "");
+    Expect(1, 126241, '\p{^Numeric_Value=000005000}', "");
+    Expect(1, 126241, '\P{Numeric_Value=000005000}', "");
+    Expect(0, 126241, '\P{^Numeric_Value=000005000}', "");
+    Expect(1, 126240, '\p{Numeric_Value:5.000000000000000e+03}', "");
+    Expect(0, 126240, '\p{^Numeric_Value:5.000000000000000e+03}', "");
+    Expect(0, 126240, '\P{Numeric_Value:5.000000000000000e+03}', "");
+    Expect(1, 126240, '\P{^Numeric_Value:5.000000000000000e+03}', "");
+    Expect(0, 126241, '\p{Numeric_Value:5.000000000000000e+03}', "");
+    Expect(1, 126241, '\p{^Numeric_Value:5.000000000000000e+03}', "");
+    Expect(1, 126241, '\P{Numeric_Value:5.000000000000000e+03}', "");
+    Expect(0, 126241, '\P{^Numeric_Value:5.000000000000000e+03}', "");
+    Error('\p{Nv: _000_000_000_500_0:=}');
+    Error('\P{Nv: _000_000_000_500_0:=}');
     Expect(1, 126240, '\p{Nv=:\A5000\z:}', "");;
     Expect(0, 126241, '\p{Nv=:\A5000\z:}', "");;
-    Expect(1, 126240, '\p{Nv=00005000}', "");
-    Expect(0, 126240, '\p{^Nv=00005000}', "");
-    Expect(0, 126240, '\P{Nv=00005000}', "");
-    Expect(1, 126240, '\P{^Nv=00005000}', "");
-    Expect(0, 126241, '\p{Nv=00005000}', "");
-    Expect(1, 126241, '\p{^Nv=00005000}', "");
-    Expect(1, 126241, '\P{Nv=00005000}', "");
-    Expect(0, 126241, '\P{^Nv=00005000}', "");
+    Expect(1, 126240, '\p{Nv=0000500_0}', "");
+    Expect(0, 126240, '\p{^Nv=0000500_0}', "");
+    Expect(0, 126240, '\P{Nv=0000500_0}', "");
+    Expect(1, 126240, '\P{^Nv=0000500_0}', "");
+    Expect(0, 126241, '\p{Nv=0000500_0}', "");
+    Expect(1, 126241, '\p{^Nv=0000500_0}', "");
+    Expect(1, 126241, '\P{Nv=0000500_0}', "");
+    Expect(0, 126241, '\P{^Nv=0000500_0}', "");
     Expect(1, 126240, '\p{Nv=5.000000000000000e+03}', "");
     Expect(0, 126240, '\p{^Nv=5.000000000000000e+03}', "");
     Expect(0, 126240, '\P{Nv=5.000000000000000e+03}', "");
@@ -82815,16 +83405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126241, '\p{^Nv=5.000000000000000e+03}', "");
     Expect(1, 126241, '\P{Nv=5.000000000000000e+03}', "");
     Expect(0, 126241, '\P{^Nv=5.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value:	 /a/+005000}');
-    Error('\P{Is_Numeric_Value:	 /a/+005000}');
-    Expect(1, 126240, '\p{Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(0, 126240, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(0, 126240, '\P{Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(1, 126240, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(0, 126241, '\p{Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(1, 126241, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(1, 126241, '\P{Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
-    Expect(0, 126241, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_005000}', "");
+    Error('\p{Is_Numeric_Value: 	/a/000005000}');
+    Error('\P{Is_Numeric_Value: 	/a/000005000}');
+    Expect(1, 126240, '\p{Is_Numeric_Value=0000005000}', "");
+    Expect(0, 126240, '\p{^Is_Numeric_Value=0000005000}', "");
+    Expect(0, 126240, '\P{Is_Numeric_Value=0000005000}', "");
+    Expect(1, 126240, '\P{^Is_Numeric_Value=0000005000}', "");
+    Expect(0, 126241, '\p{Is_Numeric_Value=0000005000}', "");
+    Expect(1, 126241, '\p{^Is_Numeric_Value=0000005000}', "");
+    Expect(1, 126241, '\P{Is_Numeric_Value=0000005000}', "");
+    Expect(0, 126241, '\P{^Is_Numeric_Value=0000005000}', "");
     Expect(1, 126240, '\p{Is_Numeric_Value=5.000000000000000e+03}', "");
     Expect(0, 126240, '\p{^Is_Numeric_Value=5.000000000000000e+03}', "");
     Expect(0, 126240, '\P{Is_Numeric_Value=5.000000000000000e+03}', "");
@@ -82833,36 +83423,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126241, '\p{^Is_Numeric_Value=5.000000000000000e+03}', "");
     Expect(1, 126241, '\P{Is_Numeric_Value=5.000000000000000e+03}', "");
     Expect(0, 126241, '\P{^Is_Numeric_Value=5.000000000000000e+03}', "");
-    Error('\p{Is_Nv=/a/-0005000}');
-    Error('\P{Is_Nv=/a/-0005000}');
-    Expect(1, 126240, '\p{Is_Nv:+5_0_00}', "");
-    Expect(0, 126240, '\p{^Is_Nv:+5_0_00}', "");
-    Expect(0, 126240, '\P{Is_Nv:+5_0_00}', "");
-    Expect(1, 126240, '\P{^Is_Nv:+5_0_00}', "");
-    Expect(0, 126241, '\p{Is_Nv:+5_0_00}', "");
-    Expect(1, 126241, '\p{^Is_Nv:+5_0_00}', "");
-    Expect(1, 126241, '\P{Is_Nv:+5_0_00}', "");
-    Expect(0, 126241, '\P{^Is_Nv:+5_0_00}', "");
-    Expect(1, 126240, '\p{Is_Nv=5.000000000000000e+03}', "");
-    Expect(0, 126240, '\p{^Is_Nv=5.000000000000000e+03}', "");
-    Expect(0, 126240, '\P{Is_Nv=5.000000000000000e+03}', "");
-    Expect(1, 126240, '\P{^Is_Nv=5.000000000000000e+03}', "");
-    Expect(0, 126241, '\p{Is_Nv=5.000000000000000e+03}', "");
-    Expect(1, 126241, '\p{^Is_Nv=5.000000000000000e+03}', "");
-    Expect(1, 126241, '\P{Is_Nv=5.000000000000000e+03}', "");
-    Expect(0, 126241, '\P{^Is_Nv=5.000000000000000e+03}', "");
-    Error('\p{Numeric_Value:	:= +050000}');
-    Error('\P{Numeric_Value:	:= +050000}');
+    Error('\p{Is_Nv=/a/ 	0_0_0_0_0_0_0_05000}');
+    Error('\P{Is_Nv=/a/ 	0_0_0_0_0_0_0_05000}');
+    Expect(1, 126240, '\p{Is_Nv=0000005000}', "");
+    Expect(0, 126240, '\p{^Is_Nv=0000005000}', "");
+    Expect(0, 126240, '\P{Is_Nv=0000005000}', "");
+    Expect(1, 126240, '\P{^Is_Nv=0000005000}', "");
+    Expect(0, 126241, '\p{Is_Nv=0000005000}', "");
+    Expect(1, 126241, '\p{^Is_Nv=0000005000}', "");
+    Expect(1, 126241, '\P{Is_Nv=0000005000}', "");
+    Expect(0, 126241, '\P{^Is_Nv=0000005000}', "");
+    Expect(1, 126240, '\p{Is_Nv:	5.000000000000000e+03}', "");
+    Expect(0, 126240, '\p{^Is_Nv:	5.000000000000000e+03}', "");
+    Expect(0, 126240, '\P{Is_Nv:	5.000000000000000e+03}', "");
+    Expect(1, 126240, '\P{^Is_Nv:	5.000000000000000e+03}', "");
+    Expect(0, 126241, '\p{Is_Nv:	5.000000000000000e+03}', "");
+    Expect(1, 126241, '\p{^Is_Nv:	5.000000000000000e+03}', "");
+    Expect(1, 126241, '\P{Is_Nv:	5.000000000000000e+03}', "");
+    Expect(0, 126241, '\P{^Is_Nv:	5.000000000000000e+03}', "");
+    Error('\p{Numeric_Value:   	-0000000050000:=}');
+    Error('\P{Numeric_Value:   	-0000000050000:=}');
     Expect(1, 126249, '\p{Numeric_Value=:\A50000\z:}', "");;
     Expect(0, 126250, '\p{Numeric_Value=:\A50000\z:}', "");;
-    Expect(1, 126249, '\p{Numeric_Value=0000_0500_00}', "");
-    Expect(0, 126249, '\p{^Numeric_Value=0000_0500_00}', "");
-    Expect(0, 126249, '\P{Numeric_Value=0000_0500_00}', "");
-    Expect(1, 126249, '\P{^Numeric_Value=0000_0500_00}', "");
-    Expect(0, 126250, '\p{Numeric_Value=0000_0500_00}', "");
-    Expect(1, 126250, '\p{^Numeric_Value=0000_0500_00}', "");
-    Expect(1, 126250, '\P{Numeric_Value=0000_0500_00}', "");
-    Expect(0, 126250, '\P{^Numeric_Value=0000_0500_00}', "");
+    Expect(1, 126249, '\p{Numeric_Value=050000}', "");
+    Expect(0, 126249, '\p{^Numeric_Value=050000}', "");
+    Expect(0, 126249, '\P{Numeric_Value=050000}', "");
+    Expect(1, 126249, '\P{^Numeric_Value=050000}', "");
+    Expect(0, 126250, '\p{Numeric_Value=050000}', "");
+    Expect(1, 126250, '\p{^Numeric_Value=050000}', "");
+    Expect(1, 126250, '\P{Numeric_Value=050000}', "");
+    Expect(0, 126250, '\P{^Numeric_Value=050000}', "");
     Expect(1, 126249, '\p{Numeric_Value=5.000000000000000e+04}', "");
     Expect(0, 126249, '\p{^Numeric_Value=5.000000000000000e+04}', "");
     Expect(0, 126249, '\P{Numeric_Value=5.000000000000000e+04}', "");
@@ -82871,36 +83461,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126250, '\p{^Numeric_Value=5.000000000000000e+04}', "");
     Expect(1, 126250, '\P{Numeric_Value=5.000000000000000e+04}', "");
     Expect(0, 126250, '\P{^Numeric_Value=5.000000000000000e+04}', "");
-    Error('\p{Nv=	:=00_00_00_00_05_0000}');
-    Error('\P{Nv=	:=00_00_00_00_05_0000}');
+    Error('\p{Nv=/a/- 0050000}');
+    Error('\P{Nv=/a/- 0050000}');
     Expect(1, 126249, '\p{Nv=:\A50000\z:}', "");;
     Expect(0, 126250, '\p{Nv=:\A50000\z:}', "");;
-    Expect(1, 126249, '\p{Nv=000000050000}', "");
-    Expect(0, 126249, '\p{^Nv=000000050000}', "");
-    Expect(0, 126249, '\P{Nv=000000050000}', "");
-    Expect(1, 126249, '\P{^Nv=000000050000}', "");
-    Expect(0, 126250, '\p{Nv=000000050000}', "");
-    Expect(1, 126250, '\p{^Nv=000000050000}', "");
-    Expect(1, 126250, '\P{Nv=000000050000}', "");
-    Expect(0, 126250, '\P{^Nv=000000050000}', "");
-    Expect(1, 126249, '\p{Nv:5.000000000000000e+04}', "");
-    Expect(0, 126249, '\p{^Nv:5.000000000000000e+04}', "");
-    Expect(0, 126249, '\P{Nv:5.000000000000000e+04}', "");
-    Expect(1, 126249, '\P{^Nv:5.000000000000000e+04}', "");
-    Expect(0, 126250, '\p{Nv:5.000000000000000e+04}', "");
-    Expect(1, 126250, '\p{^Nv:5.000000000000000e+04}', "");
-    Expect(1, 126250, '\P{Nv:5.000000000000000e+04}', "");
-    Expect(0, 126250, '\P{^Nv:5.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value:   _-00_00_00_00_05_00_00:=}');
-    Error('\P{Is_Numeric_Value:   _-00_00_00_00_05_00_00:=}');
-    Expect(1, 126249, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(0, 126249, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(0, 126249, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(1, 126249, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(0, 126250, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(1, 126250, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(1, 126250, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
-    Expect(0, 126250, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_0_050000}', "");
+    Expect(1, 126249, '\p{Nv=00000_05000_0}', "");
+    Expect(0, 126249, '\p{^Nv=00000_05000_0}', "");
+    Expect(0, 126249, '\P{Nv=00000_05000_0}', "");
+    Expect(1, 126249, '\P{^Nv=00000_05000_0}', "");
+    Expect(0, 126250, '\p{Nv=00000_05000_0}', "");
+    Expect(1, 126250, '\p{^Nv=00000_05000_0}', "");
+    Expect(1, 126250, '\P{Nv=00000_05000_0}', "");
+    Expect(0, 126250, '\P{^Nv=00000_05000_0}', "");
+    Expect(1, 126249, '\p{Nv=5.000000000000000e+04}', "");
+    Expect(0, 126249, '\p{^Nv=5.000000000000000e+04}', "");
+    Expect(0, 126249, '\P{Nv=5.000000000000000e+04}', "");
+    Expect(1, 126249, '\P{^Nv=5.000000000000000e+04}', "");
+    Expect(0, 126250, '\p{Nv=5.000000000000000e+04}', "");
+    Expect(1, 126250, '\p{^Nv=5.000000000000000e+04}', "");
+    Expect(1, 126250, '\P{Nv=5.000000000000000e+04}', "");
+    Expect(0, 126250, '\P{^Nv=5.000000000000000e+04}', "");
+    Error('\p{Is_Numeric_Value=/a/-00_00_00_50_00_0}');
+    Error('\P{Is_Numeric_Value=/a/-00_00_00_50_00_0}');
+    Expect(1, 126249, '\p{Is_Numeric_Value=+005_000_0}', "");
+    Expect(0, 126249, '\p{^Is_Numeric_Value=+005_000_0}', "");
+    Expect(0, 126249, '\P{Is_Numeric_Value=+005_000_0}', "");
+    Expect(1, 126249, '\P{^Is_Numeric_Value=+005_000_0}', "");
+    Expect(0, 126250, '\p{Is_Numeric_Value=+005_000_0}', "");
+    Expect(1, 126250, '\p{^Is_Numeric_Value=+005_000_0}', "");
+    Expect(1, 126250, '\P{Is_Numeric_Value=+005_000_0}', "");
+    Expect(0, 126250, '\P{^Is_Numeric_Value=+005_000_0}', "");
     Expect(1, 126249, '\p{Is_Numeric_Value=5.000000000000000e+04}', "");
     Expect(0, 126249, '\p{^Is_Numeric_Value=5.000000000000000e+04}', "");
     Expect(0, 126249, '\P{Is_Numeric_Value=5.000000000000000e+04}', "");
@@ -82909,16 +83499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126250, '\p{^Is_Numeric_Value=5.000000000000000e+04}', "");
     Expect(1, 126250, '\P{Is_Numeric_Value=5.000000000000000e+04}', "");
     Expect(0, 126250, '\P{^Is_Numeric_Value=5.000000000000000e+04}', "");
-    Error('\p{Is_Nv:	:=__0_0_0_0_5_0_000}');
-    Error('\P{Is_Nv:	:=__0_0_0_0_5_0_000}');
-    Expect(1, 126249, '\p{Is_Nv=+5000_0}', "");
-    Expect(0, 126249, '\p{^Is_Nv=+5000_0}', "");
-    Expect(0, 126249, '\P{Is_Nv=+5000_0}', "");
-    Expect(1, 126249, '\P{^Is_Nv=+5000_0}', "");
-    Expect(0, 126250, '\p{Is_Nv=+5000_0}', "");
-    Expect(1, 126250, '\p{^Is_Nv=+5000_0}', "");
-    Expect(1, 126250, '\P{Is_Nv=+5000_0}', "");
-    Expect(0, 126250, '\P{^Is_Nv=+5000_0}', "");
+    Error('\p{Is_Nv=_:=050000}');
+    Error('\P{Is_Nv=_:=050000}');
+    Expect(1, 126249, '\p{Is_Nv=+005_000_0}', "");
+    Expect(0, 126249, '\p{^Is_Nv=+005_000_0}', "");
+    Expect(0, 126249, '\P{Is_Nv=+005_000_0}', "");
+    Expect(1, 126249, '\P{^Is_Nv=+005_000_0}', "");
+    Expect(0, 126250, '\p{Is_Nv=+005_000_0}', "");
+    Expect(1, 126250, '\p{^Is_Nv=+005_000_0}', "");
+    Expect(1, 126250, '\P{Is_Nv=+005_000_0}', "");
+    Expect(0, 126250, '\P{^Is_Nv=+005_000_0}', "");
     Expect(1, 126249, '\p{Is_Nv=5.000000000000000e+04}', "");
     Expect(0, 126249, '\p{^Is_Nv=5.000000000000000e+04}', "");
     Expect(0, 126249, '\P{Is_Nv=5.000000000000000e+04}', "");
@@ -82927,18 +83517,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126250, '\p{^Is_Nv=5.000000000000000e+04}', "");
     Expect(1, 126250, '\P{Is_Nv=5.000000000000000e+04}', "");
     Expect(0, 126250, '\P{^Is_Nv=5.000000000000000e+04}', "");
-    Error('\p{Numeric_Value= :=0500000}');
-    Error('\P{Numeric_Value= :=0500000}');
+    Error('\p{Numeric_Value=:=0_0_0_0_0_0_0_5_00000}');
+    Error('\P{Numeric_Value=:=0_0_0_0_0_0_0_5_00000}');
     Expect(1, 68081, '\p{Numeric_Value=:\A500000\z:}', "");;
     Expect(0, 68082, '\p{Numeric_Value=:\A500000\z:}', "");;
-    Expect(1, 68081, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(0, 68081, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(0, 68081, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(1, 68081, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(0, 68082, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(1, 68082, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(1, 68082, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
-    Expect(0, 68082, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_0500000}', "");
+    Expect(1, 68081, '\p{Numeric_Value=+000000500000}', "");
+    Expect(0, 68081, '\p{^Numeric_Value=+000000500000}', "");
+    Expect(0, 68081, '\P{Numeric_Value=+000000500000}', "");
+    Expect(1, 68081, '\P{^Numeric_Value=+000000500000}', "");
+    Expect(0, 68082, '\p{Numeric_Value=+000000500000}', "");
+    Expect(1, 68082, '\p{^Numeric_Value=+000000500000}', "");
+    Expect(1, 68082, '\P{Numeric_Value=+000000500000}', "");
+    Expect(0, 68082, '\P{^Numeric_Value=+000000500000}', "");
     Expect(1, 68081, '\p{Numeric_Value=5.000000000000000e+05}', "");
     Expect(0, 68081, '\p{^Numeric_Value=5.000000000000000e+05}', "");
     Expect(0, 68081, '\P{Numeric_Value=5.000000000000000e+05}', "");
@@ -82947,18 +83537,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68082, '\p{^Numeric_Value=5.000000000000000e+05}', "");
     Expect(1, 68082, '\P{Numeric_Value=5.000000000000000e+05}', "");
     Expect(0, 68082, '\P{^Numeric_Value=5.000000000000000e+05}', "");
-    Error('\p{Nv=/a/	0_0_0_0_0_0_500000}');
-    Error('\P{Nv=/a/	0_0_0_0_0_0_500000}');
+    Error('\p{Nv=/a/+00500000}');
+    Error('\P{Nv=/a/+00500000}');
     Expect(1, 68081, '\p{Nv=:\A500000\z:}', "");;
     Expect(0, 68082, '\p{Nv=:\A500000\z:}', "");;
-    Expect(1, 68081, '\p{Nv=+00_00_00_00_50_00_00}', "");
-    Expect(0, 68081, '\p{^Nv=+00_00_00_00_50_00_00}', "");
-    Expect(0, 68081, '\P{Nv=+00_00_00_00_50_00_00}', "");
-    Expect(1, 68081, '\P{^Nv=+00_00_00_00_50_00_00}', "");
-    Expect(0, 68082, '\p{Nv=+00_00_00_00_50_00_00}', "");
-    Expect(1, 68082, '\p{^Nv=+00_00_00_00_50_00_00}', "");
-    Expect(1, 68082, '\P{Nv=+00_00_00_00_50_00_00}', "");
-    Expect(0, 68082, '\P{^Nv=+00_00_00_00_50_00_00}', "");
+    Expect(1, 68081, '\p{Nv=000000500000}', "");
+    Expect(0, 68081, '\p{^Nv=000000500000}', "");
+    Expect(0, 68081, '\P{Nv=000000500000}', "");
+    Expect(1, 68081, '\P{^Nv=000000500000}', "");
+    Expect(0, 68082, '\p{Nv=000000500000}', "");
+    Expect(1, 68082, '\p{^Nv=000000500000}', "");
+    Expect(1, 68082, '\P{Nv=000000500000}', "");
+    Expect(0, 68082, '\P{^Nv=000000500000}', "");
     Expect(1, 68081, '\p{Nv=5.000000000000000e+05}', "");
     Expect(0, 68081, '\p{^Nv=5.000000000000000e+05}', "");
     Expect(0, 68081, '\P{Nv=5.000000000000000e+05}', "");
@@ -82967,16 +83557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68082, '\p{^Nv=5.000000000000000e+05}', "");
     Expect(1, 68082, '\P{Nv=5.000000000000000e+05}', "");
     Expect(0, 68082, '\P{^Nv=5.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=-	0500000:=}');
-    Error('\P{Is_Numeric_Value=-	0500000:=}');
-    Expect(1, 68081, '\p{Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(0, 68081, '\p{^Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(0, 68081, '\P{Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(1, 68081, '\P{^Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(0, 68082, '\p{Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(1, 68082, '\p{^Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(1, 68082, '\P{Is_Numeric_Value=0_0_0_0_5_00000}', "");
-    Expect(0, 68082, '\P{^Is_Numeric_Value=0_0_0_0_5_00000}', "");
+    Error('\p{Is_Numeric_Value=:=__0500000}');
+    Error('\P{Is_Numeric_Value=:=__0500000}');
+    Expect(1, 68081, '\p{Is_Numeric_Value:0050000_0}', "");
+    Expect(0, 68081, '\p{^Is_Numeric_Value:0050000_0}', "");
+    Expect(0, 68081, '\P{Is_Numeric_Value:0050000_0}', "");
+    Expect(1, 68081, '\P{^Is_Numeric_Value:0050000_0}', "");
+    Expect(0, 68082, '\p{Is_Numeric_Value:0050000_0}', "");
+    Expect(1, 68082, '\p{^Is_Numeric_Value:0050000_0}', "");
+    Expect(1, 68082, '\P{Is_Numeric_Value:0050000_0}', "");
+    Expect(0, 68082, '\P{^Is_Numeric_Value:0050000_0}', "");
     Expect(1, 68081, '\p{Is_Numeric_Value=5.000000000000000e+05}', "");
     Expect(0, 68081, '\p{^Is_Numeric_Value=5.000000000000000e+05}', "");
     Expect(0, 68081, '\P{Is_Numeric_Value=5.000000000000000e+05}', "");
@@ -82985,36 +83575,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68082, '\p{^Is_Numeric_Value=5.000000000000000e+05}', "");
     Expect(1, 68082, '\P{Is_Numeric_Value=5.000000000000000e+05}', "");
     Expect(0, 68082, '\P{^Is_Numeric_Value=5.000000000000000e+05}', "");
-    Error('\p{Is_Nv=--005_000_00/a/}');
-    Error('\P{Is_Nv=--005_000_00/a/}');
-    Expect(1, 68081, '\p{Is_Nv=000000500000}', "");
-    Expect(0, 68081, '\p{^Is_Nv=000000500000}', "");
-    Expect(0, 68081, '\P{Is_Nv=000000500000}', "");
-    Expect(1, 68081, '\P{^Is_Nv=000000500000}', "");
-    Expect(0, 68082, '\p{Is_Nv=000000500000}', "");
-    Expect(1, 68082, '\p{^Is_Nv=000000500000}', "");
-    Expect(1, 68082, '\P{Is_Nv=000000500000}', "");
-    Expect(0, 68082, '\P{^Is_Nv=000000500000}', "");
-    Expect(1, 68081, '\p{Is_Nv=5.000000000000000e+05}', "");
-    Expect(0, 68081, '\p{^Is_Nv=5.000000000000000e+05}', "");
-    Expect(0, 68081, '\P{Is_Nv=5.000000000000000e+05}', "");
-    Expect(1, 68081, '\P{^Is_Nv=5.000000000000000e+05}', "");
-    Expect(0, 68082, '\p{Is_Nv=5.000000000000000e+05}', "");
-    Expect(1, 68082, '\p{^Is_Nv=5.000000000000000e+05}', "");
-    Expect(1, 68082, '\P{Is_Nv=5.000000000000000e+05}', "");
-    Expect(0, 68082, '\P{^Is_Nv=5.000000000000000e+05}', "");
-    Error('\p{Numeric_Value=_:=00000_6}');
-    Error('\P{Numeric_Value=_:=00000_6}');
+    Error('\p{Is_Nv=-/a/+0_0_0_5_0_0_0_00}');
+    Error('\P{Is_Nv=-/a/+0_0_0_5_0_0_0_00}');
+    Expect(1, 68081, '\p{Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(0, 68081, '\p{^Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(0, 68081, '\P{Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(1, 68081, '\P{^Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(0, 68082, '\p{Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(1, 68082, '\p{^Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(1, 68082, '\P{Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(0, 68082, '\P{^Is_Nv=0_0_0_0_0_0_0_0_500000}', "");
+    Expect(1, 68081, '\p{Is_Nv:	5.000000000000000e+05}', "");
+    Expect(0, 68081, '\p{^Is_Nv:	5.000000000000000e+05}', "");
+    Expect(0, 68081, '\P{Is_Nv:	5.000000000000000e+05}', "");
+    Expect(1, 68081, '\P{^Is_Nv:	5.000000000000000e+05}', "");
+    Expect(0, 68082, '\p{Is_Nv:	5.000000000000000e+05}', "");
+    Expect(1, 68082, '\p{^Is_Nv:	5.000000000000000e+05}', "");
+    Expect(1, 68082, '\P{Is_Nv:	5.000000000000000e+05}', "");
+    Expect(0, 68082, '\P{^Is_Nv:	5.000000000000000e+05}', "");
+    Error('\p{Numeric_Value=:=-	000_000_000_6}');
+    Error('\P{Numeric_Value=:=-	000_000_000_6}');
     Expect(1, 133866, '\p{Numeric_Value=:\A6\z:}', "");;
     Expect(0, 133867, '\p{Numeric_Value=:\A6\z:}', "");;
-    Expect(1, 133866, '\p{Numeric_Value=00000000_6}', "");
-    Expect(0, 133866, '\p{^Numeric_Value=00000000_6}', "");
-    Expect(0, 133866, '\P{Numeric_Value=00000000_6}', "");
-    Expect(1, 133866, '\P{^Numeric_Value=00000000_6}', "");
-    Expect(0, 133867, '\p{Numeric_Value=00000000_6}', "");
-    Expect(1, 133867, '\p{^Numeric_Value=00000000_6}', "");
-    Expect(1, 133867, '\P{Numeric_Value=00000000_6}', "");
-    Expect(0, 133867, '\P{^Numeric_Value=00000000_6}', "");
+    Expect(1, 133866, '\p{Numeric_Value=00_00_6}', "");
+    Expect(0, 133866, '\p{^Numeric_Value=00_00_6}', "");
+    Expect(0, 133866, '\P{Numeric_Value=00_00_6}', "");
+    Expect(1, 133866, '\P{^Numeric_Value=00_00_6}', "");
+    Expect(0, 133867, '\p{Numeric_Value=00_00_6}', "");
+    Expect(1, 133867, '\p{^Numeric_Value=00_00_6}', "");
+    Expect(1, 133867, '\P{Numeric_Value=00_00_6}', "");
+    Expect(0, 133867, '\P{^Numeric_Value=00_00_6}', "");
     Expect(1, 133866, '\p{Numeric_Value=6.000000000000000e+00}', "");
     Expect(0, 133866, '\p{^Numeric_Value=6.000000000000000e+00}', "");
     Expect(0, 133866, '\P{Numeric_Value=6.000000000000000e+00}', "");
@@ -83023,36 +83613,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 133867, '\p{^Numeric_Value=6.000000000000000e+00}', "");
     Expect(1, 133867, '\P{Numeric_Value=6.000000000000000e+00}', "");
     Expect(0, 133867, '\P{^Numeric_Value=6.000000000000000e+00}', "");
-    Error('\p{Nv=/a/ -0000006}');
-    Error('\P{Nv=/a/ -0000006}');
+    Error('\p{Nv=_	+0_0_0_0_0006/a/}');
+    Error('\P{Nv=_	+0_0_0_0_0006/a/}');
     Expect(1, 133866, '\p{Nv=:\A6\z:}', "");;
     Expect(0, 133867, '\p{Nv=:\A6\z:}', "");;
-    Expect(1, 133866, '\p{Nv=00006}', "");
-    Expect(0, 133866, '\p{^Nv=00006}', "");
-    Expect(0, 133866, '\P{Nv=00006}', "");
-    Expect(1, 133866, '\P{^Nv=00006}', "");
-    Expect(0, 133867, '\p{Nv=00006}', "");
-    Expect(1, 133867, '\p{^Nv=00006}', "");
-    Expect(1, 133867, '\P{Nv=00006}', "");
-    Expect(0, 133867, '\P{^Nv=00006}', "");
-    Expect(1, 133866, '\p{Nv:	6.000000000000000e+00}', "");
-    Expect(0, 133866, '\p{^Nv:	6.000000000000000e+00}', "");
-    Expect(0, 133866, '\P{Nv:	6.000000000000000e+00}', "");
-    Expect(1, 133866, '\P{^Nv:	6.000000000000000e+00}', "");
-    Expect(0, 133867, '\p{Nv:	6.000000000000000e+00}', "");
-    Expect(1, 133867, '\p{^Nv:	6.000000000000000e+00}', "");
-    Expect(1, 133867, '\P{Nv:	6.000000000000000e+00}', "");
-    Expect(0, 133867, '\P{^Nv:	6.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=/a/ 06}');
-    Error('\P{Is_Numeric_Value=/a/ 06}');
-    Expect(1, 133866, '\p{Is_Numeric_Value=00_6}', "");
-    Expect(0, 133866, '\p{^Is_Numeric_Value=00_6}', "");
-    Expect(0, 133866, '\P{Is_Numeric_Value=00_6}', "");
-    Expect(1, 133866, '\P{^Is_Numeric_Value=00_6}', "");
-    Expect(0, 133867, '\p{Is_Numeric_Value=00_6}', "");
-    Expect(1, 133867, '\p{^Is_Numeric_Value=00_6}', "");
-    Expect(1, 133867, '\P{Is_Numeric_Value=00_6}', "");
-    Expect(0, 133867, '\P{^Is_Numeric_Value=00_6}', "");
+    Expect(1, 133866, '\p{Nv:   0_0_06}', "");
+    Expect(0, 133866, '\p{^Nv:   0_0_06}', "");
+    Expect(0, 133866, '\P{Nv:   0_0_06}', "");
+    Expect(1, 133866, '\P{^Nv:   0_0_06}', "");
+    Expect(0, 133867, '\p{Nv:   0_0_06}', "");
+    Expect(1, 133867, '\p{^Nv:   0_0_06}', "");
+    Expect(1, 133867, '\P{Nv:   0_0_06}', "");
+    Expect(0, 133867, '\P{^Nv:   0_0_06}', "");
+    Expect(1, 133866, '\p{Nv=6.000000000000000e+00}', "");
+    Expect(0, 133866, '\p{^Nv=6.000000000000000e+00}', "");
+    Expect(0, 133866, '\P{Nv=6.000000000000000e+00}', "");
+    Expect(1, 133866, '\P{^Nv=6.000000000000000e+00}', "");
+    Expect(0, 133867, '\p{Nv=6.000000000000000e+00}', "");
+    Expect(1, 133867, '\p{^Nv=6.000000000000000e+00}', "");
+    Expect(1, 133867, '\P{Nv=6.000000000000000e+00}', "");
+    Expect(0, 133867, '\P{^Nv=6.000000000000000e+00}', "");
+    Error('\p{Is_Numeric_Value:/a/__+000000006}');
+    Error('\P{Is_Numeric_Value:/a/__+000000006}');
+    Expect(1, 133866, '\p{Is_Numeric_Value=+0000006}', "");
+    Expect(0, 133866, '\p{^Is_Numeric_Value=+0000006}', "");
+    Expect(0, 133866, '\P{Is_Numeric_Value=+0000006}', "");
+    Expect(1, 133866, '\P{^Is_Numeric_Value=+0000006}', "");
+    Expect(0, 133867, '\p{Is_Numeric_Value=+0000006}', "");
+    Expect(1, 133867, '\p{^Is_Numeric_Value=+0000006}', "");
+    Expect(1, 133867, '\P{Is_Numeric_Value=+0000006}', "");
+    Expect(0, 133867, '\P{^Is_Numeric_Value=+0000006}', "");
     Expect(1, 133866, '\p{Is_Numeric_Value=6.000000000000000e+00}', "");
     Expect(0, 133866, '\p{^Is_Numeric_Value=6.000000000000000e+00}', "");
     Expect(0, 133866, '\P{Is_Numeric_Value=6.000000000000000e+00}', "");
@@ -83061,16 +83651,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 133867, '\p{^Is_Numeric_Value=6.000000000000000e+00}', "");
     Expect(1, 133867, '\P{Is_Numeric_Value=6.000000000000000e+00}', "");
     Expect(0, 133867, '\P{^Is_Numeric_Value=6.000000000000000e+00}', "");
-    Error('\p{Is_Nv=/a/__0006}');
-    Error('\P{Is_Nv=/a/__0006}');
-    Expect(1, 133866, '\p{Is_Nv=+6}', "");
-    Expect(0, 133866, '\p{^Is_Nv=+6}', "");
-    Expect(0, 133866, '\P{Is_Nv=+6}', "");
-    Expect(1, 133866, '\P{^Is_Nv=+6}', "");
-    Expect(0, 133867, '\p{Is_Nv=+6}', "");
-    Expect(1, 133867, '\p{^Is_Nv=+6}', "");
-    Expect(1, 133867, '\P{Is_Nv=+6}', "");
-    Expect(0, 133867, '\P{^Is_Nv=+6}', "");
+    Error('\p{Is_Nv= /a/+0_0_0_0_0_0_006}');
+    Error('\P{Is_Nv= /a/+0_0_0_0_0_0_006}');
+    Expect(1, 133866, '\p{Is_Nv=+00006}', "");
+    Expect(0, 133866, '\p{^Is_Nv=+00006}', "");
+    Expect(0, 133866, '\P{Is_Nv=+00006}', "");
+    Expect(1, 133866, '\P{^Is_Nv=+00006}', "");
+    Expect(0, 133867, '\p{Is_Nv=+00006}', "");
+    Expect(1, 133867, '\p{^Is_Nv=+00006}', "");
+    Expect(1, 133867, '\P{Is_Nv=+00006}', "");
+    Expect(0, 133867, '\P{^Is_Nv=+00006}', "");
     Expect(1, 133866, '\p{Is_Nv=6.000000000000000e+00}', "");
     Expect(0, 133866, '\p{^Is_Nv=6.000000000000000e+00}', "");
     Expect(0, 133866, '\P{Is_Nv=6.000000000000000e+00}', "");
@@ -83079,18 +83669,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 133867, '\p{^Is_Nv=6.000000000000000e+00}', "");
     Expect(1, 133867, '\P{Is_Nv=6.000000000000000e+00}', "");
     Expect(0, 133867, '\P{^Is_Nv=6.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=	0_0_0_0_0_0_0_0_060/a/}');
-    Error('\P{Numeric_Value=	0_0_0_0_0_0_0_0_060/a/}');
+    Error('\p{Numeric_Value=/a/0060}');
+    Error('\P{Numeric_Value=/a/0060}');
     Expect(1, 126223, '\p{Numeric_Value=:\A60\z:}', "");;
     Expect(0, 126224, '\p{Numeric_Value=:\A60\z:}', "");;
-    Expect(1, 126223, '\p{Numeric_Value=60}', "");
-    Expect(0, 126223, '\p{^Numeric_Value=60}', "");
-    Expect(0, 126223, '\P{Numeric_Value=60}', "");
-    Expect(1, 126223, '\P{^Numeric_Value=60}', "");
-    Expect(0, 126224, '\p{Numeric_Value=60}', "");
-    Expect(1, 126224, '\p{^Numeric_Value=60}', "");
-    Expect(1, 126224, '\P{Numeric_Value=60}', "");
-    Expect(0, 126224, '\P{^Numeric_Value=60}', "");
+    Expect(1, 126223, '\p{Numeric_Value=+60}', "");
+    Expect(0, 126223, '\p{^Numeric_Value=+60}', "");
+    Expect(0, 126223, '\P{Numeric_Value=+60}', "");
+    Expect(1, 126223, '\P{^Numeric_Value=+60}', "");
+    Expect(0, 126224, '\p{Numeric_Value=+60}', "");
+    Expect(1, 126224, '\p{^Numeric_Value=+60}', "");
+    Expect(1, 126224, '\P{Numeric_Value=+60}', "");
+    Expect(0, 126224, '\P{^Numeric_Value=+60}', "");
     Expect(1, 126223, '\p{Numeric_Value=6.000000000000000e+01}', "");
     Expect(0, 126223, '\p{^Numeric_Value=6.000000000000000e+01}', "");
     Expect(0, 126223, '\P{Numeric_Value=6.000000000000000e+01}', "");
@@ -83099,18 +83689,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126224, '\p{^Numeric_Value=6.000000000000000e+01}', "");
     Expect(1, 126224, '\P{Numeric_Value=6.000000000000000e+01}', "");
     Expect(0, 126224, '\P{^Numeric_Value=6.000000000000000e+01}', "");
-    Error('\p{Nv=:=00000000060}');
-    Error('\P{Nv=:=00000000060}');
+    Error('\p{Nv::=0_0_60}');
+    Error('\P{Nv::=0_0_60}');
     Expect(1, 126223, '\p{Nv=:\A60\z:}', "");;
     Expect(0, 126224, '\p{Nv=:\A60\z:}', "");;
-    Expect(1, 126223, '\p{Nv=0060}', "");
-    Expect(0, 126223, '\p{^Nv=0060}', "");
-    Expect(0, 126223, '\P{Nv=0060}', "");
-    Expect(1, 126223, '\P{^Nv=0060}', "");
-    Expect(0, 126224, '\p{Nv=0060}', "");
-    Expect(1, 126224, '\p{^Nv=0060}', "");
-    Expect(1, 126224, '\P{Nv=0060}', "");
-    Expect(0, 126224, '\P{^Nv=0060}', "");
+    Expect(1, 126223, '\p{Nv:0000060}', "");
+    Expect(0, 126223, '\p{^Nv:0000060}', "");
+    Expect(0, 126223, '\P{Nv:0000060}', "");
+    Expect(1, 126223, '\P{^Nv:0000060}', "");
+    Expect(0, 126224, '\p{Nv:0000060}', "");
+    Expect(1, 126224, '\p{^Nv:0000060}', "");
+    Expect(1, 126224, '\P{Nv:0000060}', "");
+    Expect(0, 126224, '\P{^Nv:0000060}', "");
     Expect(1, 126223, '\p{Nv=6.000000000000000e+01}', "");
     Expect(0, 126223, '\p{^Nv=6.000000000000000e+01}', "");
     Expect(0, 126223, '\P{Nv=6.000000000000000e+01}', "");
@@ -83119,16 +83709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126224, '\p{^Nv=6.000000000000000e+01}', "");
     Expect(1, 126224, '\P{Nv=6.000000000000000e+01}', "");
     Expect(0, 126224, '\P{^Nv=6.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value:/a/--00000060}');
-    Error('\P{Is_Numeric_Value:/a/--00000060}');
-    Expect(1, 126223, '\p{Is_Numeric_Value=006_0}', "");
-    Expect(0, 126223, '\p{^Is_Numeric_Value=006_0}', "");
-    Expect(0, 126223, '\P{Is_Numeric_Value=006_0}', "");
-    Expect(1, 126223, '\P{^Is_Numeric_Value=006_0}', "");
-    Expect(0, 126224, '\p{Is_Numeric_Value=006_0}', "");
-    Expect(1, 126224, '\p{^Is_Numeric_Value=006_0}', "");
-    Expect(1, 126224, '\P{Is_Numeric_Value=006_0}', "");
-    Expect(0, 126224, '\P{^Is_Numeric_Value=006_0}', "");
+    Error('\p{Is_Numeric_Value=:= 	+060}');
+    Error('\P{Is_Numeric_Value=:= 	+060}');
+    Expect(1, 126223, '\p{Is_Numeric_Value: 6_0}', "");
+    Expect(0, 126223, '\p{^Is_Numeric_Value: 6_0}', "");
+    Expect(0, 126223, '\P{Is_Numeric_Value: 6_0}', "");
+    Expect(1, 126223, '\P{^Is_Numeric_Value: 6_0}', "");
+    Expect(0, 126224, '\p{Is_Numeric_Value: 6_0}', "");
+    Expect(1, 126224, '\p{^Is_Numeric_Value: 6_0}', "");
+    Expect(1, 126224, '\P{Is_Numeric_Value: 6_0}', "");
+    Expect(0, 126224, '\P{^Is_Numeric_Value: 6_0}', "");
     Expect(1, 126223, '\p{Is_Numeric_Value=6.000000000000000e+01}', "");
     Expect(0, 126223, '\p{^Is_Numeric_Value=6.000000000000000e+01}', "");
     Expect(0, 126223, '\P{Is_Numeric_Value=6.000000000000000e+01}', "");
@@ -83137,16 +83727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126224, '\p{^Is_Numeric_Value=6.000000000000000e+01}', "");
     Expect(1, 126224, '\P{Is_Numeric_Value=6.000000000000000e+01}', "");
     Expect(0, 126224, '\P{^Is_Numeric_Value=6.000000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/_	60}');
-    Error('\P{Is_Nv=/a/_	60}');
-    Expect(1, 126223, '\p{Is_Nv=+0000000006_0}', "");
-    Expect(0, 126223, '\p{^Is_Nv=+0000000006_0}', "");
-    Expect(0, 126223, '\P{Is_Nv=+0000000006_0}', "");
-    Expect(1, 126223, '\P{^Is_Nv=+0000000006_0}', "");
-    Expect(0, 126224, '\p{Is_Nv=+0000000006_0}', "");
-    Expect(1, 126224, '\p{^Is_Nv=+0000000006_0}', "");
-    Expect(1, 126224, '\P{Is_Nv=+0000000006_0}', "");
-    Expect(0, 126224, '\P{^Is_Nv=+0000000006_0}', "");
+    Error('\p{Is_Nv=:= _00_00_00_060}');
+    Error('\P{Is_Nv=:= _00_00_00_060}');
+    Expect(1, 126223, '\p{Is_Nv=060}', "");
+    Expect(0, 126223, '\p{^Is_Nv=060}', "");
+    Expect(0, 126223, '\P{Is_Nv=060}', "");
+    Expect(1, 126223, '\P{^Is_Nv=060}', "");
+    Expect(0, 126224, '\p{Is_Nv=060}', "");
+    Expect(1, 126224, '\p{^Is_Nv=060}', "");
+    Expect(1, 126224, '\P{Is_Nv=060}', "");
+    Expect(0, 126224, '\P{^Is_Nv=060}', "");
     Expect(1, 126223, '\p{Is_Nv=6.000000000000000e+01}', "");
     Expect(0, 126223, '\p{^Is_Nv=6.000000000000000e+01}', "");
     Expect(0, 126223, '\P{Is_Nv=6.000000000000000e+01}', "");
@@ -83155,18 +83745,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126224, '\p{^Is_Nv=6.000000000000000e+01}', "");
     Expect(1, 126224, '\P{Is_Nv=6.000000000000000e+01}', "");
     Expect(0, 126224, '\P{^Is_Nv=6.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=_:=00000600}');
-    Error('\P{Numeric_Value=_:=00000600}');
+    Error('\p{Numeric_Value=/a/	000000000600}');
+    Error('\P{Numeric_Value=/a/	000000000600}');
     Expect(1, 126265, '\p{Numeric_Value=:\A600\z:}', "");;
     Expect(0, 126266, '\p{Numeric_Value=:\A600\z:}', "");;
-    Expect(1, 126265, '\p{Numeric_Value=00000_00006_00}', "");
-    Expect(0, 126265, '\p{^Numeric_Value=00000_00006_00}', "");
-    Expect(0, 126265, '\P{Numeric_Value=00000_00006_00}', "");
-    Expect(1, 126265, '\P{^Numeric_Value=00000_00006_00}', "");
-    Expect(0, 126266, '\p{Numeric_Value=00000_00006_00}', "");
-    Expect(1, 126266, '\p{^Numeric_Value=00000_00006_00}', "");
-    Expect(1, 126266, '\P{Numeric_Value=00000_00006_00}', "");
-    Expect(0, 126266, '\P{^Numeric_Value=00000_00006_00}', "");
+    Expect(1, 126265, '\p{Numeric_Value:	000000600}', "");
+    Expect(0, 126265, '\p{^Numeric_Value:	000000600}', "");
+    Expect(0, 126265, '\P{Numeric_Value:	000000600}', "");
+    Expect(1, 126265, '\P{^Numeric_Value:	000000600}', "");
+    Expect(0, 126266, '\p{Numeric_Value:	000000600}', "");
+    Expect(1, 126266, '\p{^Numeric_Value:	000000600}', "");
+    Expect(1, 126266, '\P{Numeric_Value:	000000600}', "");
+    Expect(0, 126266, '\P{^Numeric_Value:	000000600}', "");
     Expect(1, 126265, '\p{Numeric_Value=6.000000000000000e+02}', "");
     Expect(0, 126265, '\p{^Numeric_Value=6.000000000000000e+02}', "");
     Expect(0, 126265, '\P{Numeric_Value=6.000000000000000e+02}', "");
@@ -83175,18 +83765,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126266, '\p{^Numeric_Value=6.000000000000000e+02}', "");
     Expect(1, 126266, '\P{Numeric_Value=6.000000000000000e+02}', "");
     Expect(0, 126266, '\P{^Numeric_Value=6.000000000000000e+02}', "");
-    Error('\p{Nv= 	0000600/a/}');
-    Error('\P{Nv= 	0000600/a/}');
+    Error('\p{Nv=		00_06_00/a/}');
+    Error('\P{Nv=		00_06_00/a/}');
     Expect(1, 126265, '\p{Nv=:\A600\z:}', "");;
     Expect(0, 126266, '\p{Nv=:\A600\z:}', "");;
-    Expect(1, 126265, '\p{Nv=+000000600}', "");
-    Expect(0, 126265, '\p{^Nv=+000000600}', "");
-    Expect(0, 126265, '\P{Nv=+000000600}', "");
-    Expect(1, 126265, '\P{^Nv=+000000600}', "");
-    Expect(0, 126266, '\p{Nv=+000000600}', "");
-    Expect(1, 126266, '\p{^Nv=+000000600}', "");
-    Expect(1, 126266, '\P{Nv=+000000600}', "");
-    Expect(0, 126266, '\P{^Nv=+000000600}', "");
+    Expect(1, 126265, '\p{Nv=0000000600}', "");
+    Expect(0, 126265, '\p{^Nv=0000000600}', "");
+    Expect(0, 126265, '\P{Nv=0000000600}', "");
+    Expect(1, 126265, '\P{^Nv=0000000600}', "");
+    Expect(0, 126266, '\p{Nv=0000000600}', "");
+    Expect(1, 126266, '\p{^Nv=0000000600}', "");
+    Expect(1, 126266, '\P{Nv=0000000600}', "");
+    Expect(0, 126266, '\P{^Nv=0000000600}', "");
     Expect(1, 126265, '\p{Nv=6.000000000000000e+02}', "");
     Expect(0, 126265, '\p{^Nv=6.000000000000000e+02}', "");
     Expect(0, 126265, '\P{Nv=6.000000000000000e+02}', "");
@@ -83195,92 +83785,92 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126266, '\p{^Nv=6.000000000000000e+02}', "");
     Expect(1, 126266, '\P{Nv=6.000000000000000e+02}', "");
     Expect(0, 126266, '\P{^Nv=6.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value:   /a/	_+0_0_0_0_0600}');
-    Error('\P{Is_Numeric_Value:   /a/	_+0_0_0_0_0600}');
-    Expect(1, 126265, '\p{Is_Numeric_Value=000_060_0}', "");
-    Expect(0, 126265, '\p{^Is_Numeric_Value=000_060_0}', "");
-    Expect(0, 126265, '\P{Is_Numeric_Value=000_060_0}', "");
-    Expect(1, 126265, '\P{^Is_Numeric_Value=000_060_0}', "");
-    Expect(0, 126266, '\p{Is_Numeric_Value=000_060_0}', "");
-    Expect(1, 126266, '\p{^Is_Numeric_Value=000_060_0}', "");
-    Expect(1, 126266, '\P{Is_Numeric_Value=000_060_0}', "");
-    Expect(0, 126266, '\P{^Is_Numeric_Value=000_060_0}', "");
-    Expect(1, 126265, '\p{Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(0, 126265, '\p{^Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(0, 126265, '\P{Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(1, 126265, '\P{^Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(0, 126266, '\p{Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(1, 126266, '\p{^Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(1, 126266, '\P{Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Expect(0, 126266, '\P{^Is_Numeric_Value:   6.000000000000000e+02}', "");
-    Error('\p{Is_Nv=	/a/0000_0006_00}');
-    Error('\P{Is_Nv=	/a/0000_0006_00}');
-    Expect(1, 126265, '\p{Is_Nv=000000600}', "");
-    Expect(0, 126265, '\p{^Is_Nv=000000600}', "");
-    Expect(0, 126265, '\P{Is_Nv=000000600}', "");
-    Expect(1, 126265, '\P{^Is_Nv=000000600}', "");
-    Expect(0, 126266, '\p{Is_Nv=000000600}', "");
-    Expect(1, 126266, '\p{^Is_Nv=000000600}', "");
-    Expect(1, 126266, '\P{Is_Nv=000000600}', "");
-    Expect(0, 126266, '\P{^Is_Nv=000000600}', "");
-    Expect(1, 126265, '\p{Is_Nv:   6.000000000000000e+02}', "");
-    Expect(0, 126265, '\p{^Is_Nv:   6.000000000000000e+02}', "");
-    Expect(0, 126265, '\P{Is_Nv:   6.000000000000000e+02}', "");
-    Expect(1, 126265, '\P{^Is_Nv:   6.000000000000000e+02}', "");
-    Expect(0, 126266, '\p{Is_Nv:   6.000000000000000e+02}', "");
-    Expect(1, 126266, '\p{^Is_Nv:   6.000000000000000e+02}', "");
-    Expect(1, 126266, '\P{Is_Nv:   6.000000000000000e+02}', "");
-    Expect(0, 126266, '\P{^Is_Nv:   6.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=:=--+0_0_0_0_0_0_0_0_0_6_0_00}');
-    Error('\P{Numeric_Value=:=--+0_0_0_0_0_0_0_0_0_6_0_00}');
+    Error('\p{Is_Numeric_Value=:=_000_000_060_0}');
+    Error('\P{Is_Numeric_Value=:=_000_000_060_0}');
+    Expect(1, 126265, '\p{Is_Numeric_Value=000_006_00}', "");
+    Expect(0, 126265, '\p{^Is_Numeric_Value=000_006_00}', "");
+    Expect(0, 126265, '\P{Is_Numeric_Value=000_006_00}', "");
+    Expect(1, 126265, '\P{^Is_Numeric_Value=000_006_00}', "");
+    Expect(0, 126266, '\p{Is_Numeric_Value=000_006_00}', "");
+    Expect(1, 126266, '\p{^Is_Numeric_Value=000_006_00}', "");
+    Expect(1, 126266, '\P{Is_Numeric_Value=000_006_00}', "");
+    Expect(0, 126266, '\P{^Is_Numeric_Value=000_006_00}', "");
+    Expect(1, 126265, '\p{Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(0, 126265, '\p{^Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(0, 126265, '\P{Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(1, 126265, '\P{^Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(0, 126266, '\p{Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(1, 126266, '\p{^Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(1, 126266, '\P{Is_Numeric_Value=6.000000000000000e+02}', "");
+    Expect(0, 126266, '\P{^Is_Numeric_Value=6.000000000000000e+02}', "");
+    Error('\p{Is_Nv=_/a/0600}');
+    Error('\P{Is_Nv=_/a/0600}');
+    Expect(1, 126265, '\p{Is_Nv=00_00_00_00_60_0}', "");
+    Expect(0, 126265, '\p{^Is_Nv=00_00_00_00_60_0}', "");
+    Expect(0, 126265, '\P{Is_Nv=00_00_00_00_60_0}', "");
+    Expect(1, 126265, '\P{^Is_Nv=00_00_00_00_60_0}', "");
+    Expect(0, 126266, '\p{Is_Nv=00_00_00_00_60_0}', "");
+    Expect(1, 126266, '\p{^Is_Nv=00_00_00_00_60_0}', "");
+    Expect(1, 126266, '\P{Is_Nv=00_00_00_00_60_0}', "");
+    Expect(0, 126266, '\P{^Is_Nv=00_00_00_00_60_0}', "");
+    Expect(1, 126265, '\p{Is_Nv=6.000000000000000e+02}', "");
+    Expect(0, 126265, '\p{^Is_Nv=6.000000000000000e+02}', "");
+    Expect(0, 126265, '\P{Is_Nv=6.000000000000000e+02}', "");
+    Expect(1, 126265, '\P{^Is_Nv=6.000000000000000e+02}', "");
+    Expect(0, 126266, '\p{Is_Nv=6.000000000000000e+02}', "");
+    Expect(1, 126266, '\p{^Is_Nv=6.000000000000000e+02}', "");
+    Expect(1, 126266, '\P{Is_Nv=6.000000000000000e+02}', "");
+    Expect(0, 126266, '\P{^Is_Nv=6.000000000000000e+02}', "");
+    Error('\p{Numeric_Value=/a/__6000}');
+    Error('\P{Numeric_Value=/a/__6000}');
     Expect(1, 126241, '\p{Numeric_Value=:\A6000\z:}', "");;
     Expect(0, 126242, '\p{Numeric_Value=:\A6000\z:}', "");;
-    Expect(1, 126241, '\p{Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(0, 126241, '\p{^Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(0, 126241, '\P{Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(1, 126241, '\P{^Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(0, 126242, '\p{Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(1, 126242, '\p{^Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(1, 126242, '\P{Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(0, 126242, '\P{^Numeric_Value=0_0_0_0_0_0_0_06000}', "");
-    Expect(1, 126241, '\p{Numeric_Value=6.000000000000000e+03}', "");
-    Expect(0, 126241, '\p{^Numeric_Value=6.000000000000000e+03}', "");
-    Expect(0, 126241, '\P{Numeric_Value=6.000000000000000e+03}', "");
-    Expect(1, 126241, '\P{^Numeric_Value=6.000000000000000e+03}', "");
-    Expect(0, 126242, '\p{Numeric_Value=6.000000000000000e+03}', "");
-    Expect(1, 126242, '\p{^Numeric_Value=6.000000000000000e+03}', "");
-    Expect(1, 126242, '\P{Numeric_Value=6.000000000000000e+03}', "");
-    Expect(0, 126242, '\P{^Numeric_Value=6.000000000000000e+03}', "");
-    Error('\p{Nv=:=-	+000000006000}');
-    Error('\P{Nv=:=-	+000000006000}');
+    Expect(1, 126241, '\p{Numeric_Value=+0006000}', "");
+    Expect(0, 126241, '\p{^Numeric_Value=+0006000}', "");
+    Expect(0, 126241, '\P{Numeric_Value=+0006000}', "");
+    Expect(1, 126241, '\P{^Numeric_Value=+0006000}', "");
+    Expect(0, 126242, '\p{Numeric_Value=+0006000}', "");
+    Expect(1, 126242, '\p{^Numeric_Value=+0006000}', "");
+    Expect(1, 126242, '\P{Numeric_Value=+0006000}', "");
+    Expect(0, 126242, '\P{^Numeric_Value=+0006000}', "");
+    Expect(1, 126241, '\p{Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(0, 126241, '\p{^Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(0, 126241, '\P{Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(1, 126241, '\P{^Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(0, 126242, '\p{Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(1, 126242, '\p{^Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(1, 126242, '\P{Numeric_Value:	6.000000000000000e+03}', "");
+    Expect(0, 126242, '\P{^Numeric_Value:	6.000000000000000e+03}', "");
+    Error('\p{Nv=	:=00_60_00}');
+    Error('\P{Nv=	:=00_60_00}');
     Expect(1, 126241, '\p{Nv=:\A6000\z:}', "");;
     Expect(0, 126242, '\p{Nv=:\A6000\z:}', "");;
-    Expect(1, 126241, '\p{Nv=000006000}', "");
-    Expect(0, 126241, '\p{^Nv=000006000}', "");
-    Expect(0, 126241, '\P{Nv=000006000}', "");
-    Expect(1, 126241, '\P{^Nv=000006000}', "");
-    Expect(0, 126242, '\p{Nv=000006000}', "");
-    Expect(1, 126242, '\p{^Nv=000006000}', "");
-    Expect(1, 126242, '\P{Nv=000006000}', "");
-    Expect(0, 126242, '\P{^Nv=000006000}', "");
-    Expect(1, 126241, '\p{Nv=6.000000000000000e+03}', "");
-    Expect(0, 126241, '\p{^Nv=6.000000000000000e+03}', "");
-    Expect(0, 126241, '\P{Nv=6.000000000000000e+03}', "");
-    Expect(1, 126241, '\P{^Nv=6.000000000000000e+03}', "");
-    Expect(0, 126242, '\p{Nv=6.000000000000000e+03}', "");
-    Expect(1, 126242, '\p{^Nv=6.000000000000000e+03}', "");
-    Expect(1, 126242, '\P{Nv=6.000000000000000e+03}', "");
-    Expect(0, 126242, '\P{^Nv=6.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value= :=000_600_0}');
-    Error('\P{Is_Numeric_Value= :=000_600_0}');
-    Expect(1, 126241, '\p{Is_Numeric_Value=000_000_006_000}', "");
-    Expect(0, 126241, '\p{^Is_Numeric_Value=000_000_006_000}', "");
-    Expect(0, 126241, '\P{Is_Numeric_Value=000_000_006_000}', "");
-    Expect(1, 126241, '\P{^Is_Numeric_Value=000_000_006_000}', "");
-    Expect(0, 126242, '\p{Is_Numeric_Value=000_000_006_000}', "");
-    Expect(1, 126242, '\p{^Is_Numeric_Value=000_000_006_000}', "");
-    Expect(1, 126242, '\P{Is_Numeric_Value=000_000_006_000}', "");
-    Expect(0, 126242, '\P{^Is_Numeric_Value=000_000_006_000}', "");
+    Expect(1, 126241, '\p{Nv=06000}', "");
+    Expect(0, 126241, '\p{^Nv=06000}', "");
+    Expect(0, 126241, '\P{Nv=06000}', "");
+    Expect(1, 126241, '\P{^Nv=06000}', "");
+    Expect(0, 126242, '\p{Nv=06000}', "");
+    Expect(1, 126242, '\p{^Nv=06000}', "");
+    Expect(1, 126242, '\P{Nv=06000}', "");
+    Expect(0, 126242, '\P{^Nv=06000}', "");
+    Expect(1, 126241, '\p{Nv:6.000000000000000e+03}', "");
+    Expect(0, 126241, '\p{^Nv:6.000000000000000e+03}', "");
+    Expect(0, 126241, '\P{Nv:6.000000000000000e+03}', "");
+    Expect(1, 126241, '\P{^Nv:6.000000000000000e+03}', "");
+    Expect(0, 126242, '\p{Nv:6.000000000000000e+03}', "");
+    Expect(1, 126242, '\p{^Nv:6.000000000000000e+03}', "");
+    Expect(1, 126242, '\P{Nv:6.000000000000000e+03}', "");
+    Expect(0, 126242, '\P{^Nv:6.000000000000000e+03}', "");
+    Error('\p{Is_Numeric_Value=-0000600_0:=}');
+    Error('\P{Is_Numeric_Value=-0000600_0:=}');
+    Expect(1, 126241, '\p{Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(0, 126241, '\p{^Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(0, 126241, '\P{Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(1, 126241, '\P{^Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(0, 126242, '\p{Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(1, 126242, '\p{^Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(1, 126242, '\P{Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
+    Expect(0, 126242, '\P{^Is_Numeric_Value=0_0_0_0_0_6_0_00}', "");
     Expect(1, 126241, '\p{Is_Numeric_Value=6.000000000000000e+03}', "");
     Expect(0, 126241, '\p{^Is_Numeric_Value=6.000000000000000e+03}', "");
     Expect(0, 126241, '\P{Is_Numeric_Value=6.000000000000000e+03}', "");
@@ -83289,36 +83879,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126242, '\p{^Is_Numeric_Value=6.000000000000000e+03}', "");
     Expect(1, 126242, '\P{Is_Numeric_Value=6.000000000000000e+03}', "");
     Expect(0, 126242, '\P{^Is_Numeric_Value=6.000000000000000e+03}', "");
-    Error('\p{Is_Nv=/a/	_+00000006000}');
-    Error('\P{Is_Nv=/a/	_+00000006000}');
-    Expect(1, 126241, '\p{Is_Nv=0000006000}', "");
-    Expect(0, 126241, '\p{^Is_Nv=0000006000}', "");
-    Expect(0, 126241, '\P{Is_Nv=0000006000}', "");
-    Expect(1, 126241, '\P{^Is_Nv=0000006000}', "");
-    Expect(0, 126242, '\p{Is_Nv=0000006000}', "");
-    Expect(1, 126242, '\p{^Is_Nv=0000006000}', "");
-    Expect(1, 126242, '\P{Is_Nv=0000006000}', "");
-    Expect(0, 126242, '\P{^Is_Nv=0000006000}', "");
-    Expect(1, 126241, '\p{Is_Nv:	6.000000000000000e+03}', "");
-    Expect(0, 126241, '\p{^Is_Nv:	6.000000000000000e+03}', "");
-    Expect(0, 126241, '\P{Is_Nv:	6.000000000000000e+03}', "");
-    Expect(1, 126241, '\P{^Is_Nv:	6.000000000000000e+03}', "");
-    Expect(0, 126242, '\p{Is_Nv:	6.000000000000000e+03}', "");
-    Expect(1, 126242, '\p{^Is_Nv:	6.000000000000000e+03}', "");
-    Expect(1, 126242, '\P{Is_Nv:	6.000000000000000e+03}', "");
-    Expect(0, 126242, '\P{^Is_Nv:	6.000000000000000e+03}', "");
-    Error('\p{Numeric_Value= /a/000006000_0}');
-    Error('\P{Numeric_Value= /a/000006000_0}');
+    Error('\p{Is_Nv:/a/-_0000006000}');
+    Error('\P{Is_Nv:/a/-_0000006000}');
+    Expect(1, 126241, '\p{Is_Nv=06000}', "");
+    Expect(0, 126241, '\p{^Is_Nv=06000}', "");
+    Expect(0, 126241, '\P{Is_Nv=06000}', "");
+    Expect(1, 126241, '\P{^Is_Nv=06000}', "");
+    Expect(0, 126242, '\p{Is_Nv=06000}', "");
+    Expect(1, 126242, '\p{^Is_Nv=06000}', "");
+    Expect(1, 126242, '\P{Is_Nv=06000}', "");
+    Expect(0, 126242, '\P{^Is_Nv=06000}', "");
+    Expect(1, 126241, '\p{Is_Nv=6.000000000000000e+03}', "");
+    Expect(0, 126241, '\p{^Is_Nv=6.000000000000000e+03}', "");
+    Expect(0, 126241, '\P{Is_Nv=6.000000000000000e+03}', "");
+    Expect(1, 126241, '\P{^Is_Nv=6.000000000000000e+03}', "");
+    Expect(0, 126242, '\p{Is_Nv=6.000000000000000e+03}', "");
+    Expect(1, 126242, '\p{^Is_Nv=6.000000000000000e+03}', "");
+    Expect(1, 126242, '\P{Is_Nv=6.000000000000000e+03}', "");
+    Expect(0, 126242, '\P{^Is_Nv=6.000000000000000e+03}', "");
+    Error('\p{Numeric_Value::=- 0_0_0_0_0_0_060000}');
+    Error('\P{Numeric_Value::=- 0_0_0_0_0_0_060000}');
     Expect(1, 126250, '\p{Numeric_Value=:\A60000\z:}', "");;
     Expect(0, 126251, '\p{Numeric_Value=:\A60000\z:}', "");;
-    Expect(1, 126250, '\p{Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(0, 126250, '\p{^Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(0, 126250, '\P{Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(1, 126250, '\P{^Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(0, 126251, '\p{Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(1, 126251, '\p{^Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(1, 126251, '\P{Numeric_Value=0_0_0_0_0_60000}', "");
-    Expect(0, 126251, '\P{^Numeric_Value=0_0_0_0_0_60000}', "");
+    Expect(1, 126250, '\p{Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(0, 126250, '\p{^Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(0, 126250, '\P{Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(1, 126250, '\P{^Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(0, 126251, '\p{Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(1, 126251, '\p{^Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(1, 126251, '\P{Numeric_Value=+0_0_0_0_6_0000}', "");
+    Expect(0, 126251, '\P{^Numeric_Value=+0_0_0_0_6_0000}', "");
     Expect(1, 126250, '\p{Numeric_Value=6.000000000000000e+04}', "");
     Expect(0, 126250, '\p{^Numeric_Value=6.000000000000000e+04}', "");
     Expect(0, 126250, '\P{Numeric_Value=6.000000000000000e+04}', "");
@@ -83327,18 +83917,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126251, '\p{^Numeric_Value=6.000000000000000e+04}', "");
     Expect(1, 126251, '\P{Numeric_Value=6.000000000000000e+04}', "");
     Expect(0, 126251, '\P{^Numeric_Value=6.000000000000000e+04}', "");
-    Error('\p{Nv=:= 	+0_0_0_6_0000}');
-    Error('\P{Nv=:= 	+0_0_0_6_0000}');
+    Error('\p{Nv=:=-+060000}');
+    Error('\P{Nv=:=-+060000}');
     Expect(1, 126250, '\p{Nv=:\A60000\z:}', "");;
     Expect(0, 126251, '\p{Nv=:\A60000\z:}', "");;
-    Expect(1, 126250, '\p{Nv:   0060000}', "");
-    Expect(0, 126250, '\p{^Nv:   0060000}', "");
-    Expect(0, 126250, '\P{Nv:   0060000}', "");
-    Expect(1, 126250, '\P{^Nv:   0060000}', "");
-    Expect(0, 126251, '\p{Nv:   0060000}', "");
-    Expect(1, 126251, '\p{^Nv:   0060000}', "");
-    Expect(1, 126251, '\P{Nv:   0060000}', "");
-    Expect(0, 126251, '\P{^Nv:   0060000}', "");
+    Expect(1, 126250, '\p{Nv=0000000060000}', "");
+    Expect(0, 126250, '\p{^Nv=0000000060000}', "");
+    Expect(0, 126250, '\P{Nv=0000000060000}', "");
+    Expect(1, 126250, '\P{^Nv=0000000060000}', "");
+    Expect(0, 126251, '\p{Nv=0000000060000}', "");
+    Expect(1, 126251, '\p{^Nv=0000000060000}', "");
+    Expect(1, 126251, '\P{Nv=0000000060000}', "");
+    Expect(0, 126251, '\P{^Nv=0000000060000}', "");
     Expect(1, 126250, '\p{Nv=6.000000000000000e+04}', "");
     Expect(0, 126250, '\p{^Nv=6.000000000000000e+04}', "");
     Expect(0, 126250, '\P{Nv=6.000000000000000e+04}', "");
@@ -83347,16 +83937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126251, '\p{^Nv=6.000000000000000e+04}', "");
     Expect(1, 126251, '\P{Nv=6.000000000000000e+04}', "");
     Expect(0, 126251, '\P{^Nv=6.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value=-:=+60_00_0}');
-    Error('\P{Is_Numeric_Value=-:=+60_00_0}');
-    Expect(1, 126250, '\p{Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(0, 126250, '\p{^Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(0, 126250, '\P{Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(1, 126250, '\P{^Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(0, 126251, '\p{Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(1, 126251, '\p{^Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(1, 126251, '\P{Is_Numeric_Value=+0_6_0_0_00}', "");
-    Expect(0, 126251, '\P{^Is_Numeric_Value=+0_6_0_0_00}', "");
+    Error('\p{Is_Numeric_Value=/a/0_0_0_0_0_0_0_6_0_0_00}');
+    Error('\P{Is_Numeric_Value=/a/0_0_0_0_0_0_0_6_0_0_00}');
+    Expect(1, 126250, '\p{Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(0, 126250, '\p{^Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(0, 126250, '\P{Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(1, 126250, '\P{^Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(0, 126251, '\p{Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(1, 126251, '\p{^Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(1, 126251, '\P{Is_Numeric_Value=00_00_00_60_000}', "");
+    Expect(0, 126251, '\P{^Is_Numeric_Value=00_00_00_60_000}', "");
     Expect(1, 126250, '\p{Is_Numeric_Value=6.000000000000000e+04}', "");
     Expect(0, 126250, '\p{^Is_Numeric_Value=6.000000000000000e+04}', "");
     Expect(0, 126250, '\P{Is_Numeric_Value=6.000000000000000e+04}', "");
@@ -83365,16 +83955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126251, '\p{^Is_Numeric_Value=6.000000000000000e+04}', "");
     Expect(1, 126251, '\P{Is_Numeric_Value=6.000000000000000e+04}', "");
     Expect(0, 126251, '\P{^Is_Numeric_Value=6.000000000000000e+04}', "");
-    Error('\p{Is_Nv= 	0_0_0_0_0_0_060000:=}');
-    Error('\P{Is_Nv= 	0_0_0_0_0_0_060000:=}');
-    Expect(1, 126250, '\p{Is_Nv=+00000_06000_0}', "");
-    Expect(0, 126250, '\p{^Is_Nv=+00000_06000_0}', "");
-    Expect(0, 126250, '\P{Is_Nv=+00000_06000_0}', "");
-    Expect(1, 126250, '\P{^Is_Nv=+00000_06000_0}', "");
-    Expect(0, 126251, '\p{Is_Nv=+00000_06000_0}', "");
-    Expect(1, 126251, '\p{^Is_Nv=+00000_06000_0}', "");
-    Expect(1, 126251, '\P{Is_Nv=+00000_06000_0}', "");
-    Expect(0, 126251, '\P{^Is_Nv=+00000_06000_0}', "");
+    Error('\p{Is_Nv:  -+00000000060000/a/}');
+    Error('\P{Is_Nv:  -+00000000060000/a/}');
+    Expect(1, 126250, '\p{Is_Nv=+00000000060000}', "");
+    Expect(0, 126250, '\p{^Is_Nv=+00000000060000}', "");
+    Expect(0, 126250, '\P{Is_Nv=+00000000060000}', "");
+    Expect(1, 126250, '\P{^Is_Nv=+00000000060000}', "");
+    Expect(0, 126251, '\p{Is_Nv=+00000000060000}', "");
+    Expect(1, 126251, '\p{^Is_Nv=+00000000060000}', "");
+    Expect(1, 126251, '\P{Is_Nv=+00000000060000}', "");
+    Expect(0, 126251, '\P{^Is_Nv=+00000000060000}', "");
     Expect(1, 126250, '\p{Is_Nv=6.000000000000000e+04}', "");
     Expect(0, 126250, '\p{^Is_Nv=6.000000000000000e+04}', "");
     Expect(0, 126250, '\P{Is_Nv=6.000000000000000e+04}', "");
@@ -83383,38 +83973,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126251, '\p{^Is_Nv=6.000000000000000e+04}', "");
     Expect(1, 126251, '\P{Is_Nv=6.000000000000000e+04}', "");
     Expect(0, 126251, '\P{^Is_Nv=6.000000000000000e+04}', "");
-    Error('\p{Numeric_Value= /a/0_0_0_0_0_0_6_0_0_0_00}');
-    Error('\P{Numeric_Value= /a/0_0_0_0_0_0_6_0_0_0_00}');
+    Error('\p{Numeric_Value=  00_00_06_00_00_0:=}');
+    Error('\P{Numeric_Value=  00_00_06_00_00_0:=}');
     Expect(1, 68082, '\p{Numeric_Value=:\A600000\z:}', "");;
     Expect(0, 68083, '\p{Numeric_Value=:\A600000\z:}', "");;
-    Expect(1, 68082, '\p{Numeric_Value=+0060000_0}', "");
-    Expect(0, 68082, '\p{^Numeric_Value=+0060000_0}', "");
-    Expect(0, 68082, '\P{Numeric_Value=+0060000_0}', "");
-    Expect(1, 68082, '\P{^Numeric_Value=+0060000_0}', "");
-    Expect(0, 68083, '\p{Numeric_Value=+0060000_0}', "");
-    Expect(1, 68083, '\p{^Numeric_Value=+0060000_0}', "");
-    Expect(1, 68083, '\P{Numeric_Value=+0060000_0}', "");
-    Expect(0, 68083, '\P{^Numeric_Value=+0060000_0}', "");
-    Expect(1, 68082, '\p{Numeric_Value:6.000000000000000e+05}', "");
-    Expect(0, 68082, '\p{^Numeric_Value:6.000000000000000e+05}', "");
-    Expect(0, 68082, '\P{Numeric_Value:6.000000000000000e+05}', "");
-    Expect(1, 68082, '\P{^Numeric_Value:6.000000000000000e+05}', "");
-    Expect(0, 68083, '\p{Numeric_Value:6.000000000000000e+05}', "");
-    Expect(1, 68083, '\p{^Numeric_Value:6.000000000000000e+05}', "");
-    Expect(1, 68083, '\P{Numeric_Value:6.000000000000000e+05}', "");
-    Expect(0, 68083, '\P{^Numeric_Value:6.000000000000000e+05}', "");
-    Error('\p{Nv=/a/- 0_6_0_0_000}');
-    Error('\P{Nv=/a/- 0_6_0_0_000}');
+    Expect(1, 68082, '\p{Numeric_Value=000000000600000}', "");
+    Expect(0, 68082, '\p{^Numeric_Value=000000000600000}', "");
+    Expect(0, 68082, '\P{Numeric_Value=000000000600000}', "");
+    Expect(1, 68082, '\P{^Numeric_Value=000000000600000}', "");
+    Expect(0, 68083, '\p{Numeric_Value=000000000600000}', "");
+    Expect(1, 68083, '\p{^Numeric_Value=000000000600000}', "");
+    Expect(1, 68083, '\P{Numeric_Value=000000000600000}', "");
+    Expect(0, 68083, '\P{^Numeric_Value=000000000600000}', "");
+    Expect(1, 68082, '\p{Numeric_Value=6.000000000000000e+05}', "");
+    Expect(0, 68082, '\p{^Numeric_Value=6.000000000000000e+05}', "");
+    Expect(0, 68082, '\P{Numeric_Value=6.000000000000000e+05}', "");
+    Expect(1, 68082, '\P{^Numeric_Value=6.000000000000000e+05}', "");
+    Expect(0, 68083, '\p{Numeric_Value=6.000000000000000e+05}', "");
+    Expect(1, 68083, '\p{^Numeric_Value=6.000000000000000e+05}', "");
+    Expect(1, 68083, '\P{Numeric_Value=6.000000000000000e+05}', "");
+    Expect(0, 68083, '\P{^Numeric_Value=6.000000000000000e+05}', "");
+    Error('\p{Nv:  -+000000000600000:=}');
+    Error('\P{Nv:  -+000000000600000:=}');
     Expect(1, 68082, '\p{Nv=:\A600000\z:}', "");;
     Expect(0, 68083, '\p{Nv=:\A600000\z:}', "");;
-    Expect(1, 68082, '\p{Nv=0_0_6_0_0000}', "");
-    Expect(0, 68082, '\p{^Nv=0_0_6_0_0000}', "");
-    Expect(0, 68082, '\P{Nv=0_0_6_0_0000}', "");
-    Expect(1, 68082, '\P{^Nv=0_0_6_0_0000}', "");
-    Expect(0, 68083, '\p{Nv=0_0_6_0_0000}', "");
-    Expect(1, 68083, '\p{^Nv=0_0_6_0_0000}', "");
-    Expect(1, 68083, '\P{Nv=0_0_6_0_0000}', "");
-    Expect(0, 68083, '\P{^Nv=0_0_6_0_0000}', "");
+    Expect(1, 68082, '\p{Nv=00600000}', "");
+    Expect(0, 68082, '\p{^Nv=00600000}', "");
+    Expect(0, 68082, '\P{Nv=00600000}', "");
+    Expect(1, 68082, '\P{^Nv=00600000}', "");
+    Expect(0, 68083, '\p{Nv=00600000}', "");
+    Expect(1, 68083, '\p{^Nv=00600000}', "");
+    Expect(1, 68083, '\P{Nv=00600000}', "");
+    Expect(0, 68083, '\P{^Nv=00600000}', "");
     Expect(1, 68082, '\p{Nv=6.000000000000000e+05}', "");
     Expect(0, 68082, '\p{^Nv=6.000000000000000e+05}', "");
     Expect(0, 68082, '\P{Nv=6.000000000000000e+05}', "");
@@ -83423,34 +84013,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68083, '\p{^Nv=6.000000000000000e+05}', "");
     Expect(1, 68083, '\P{Nv=6.000000000000000e+05}', "");
     Expect(0, 68083, '\P{^Nv=6.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=:=	0000600000}');
-    Error('\P{Is_Numeric_Value=:=	0000600000}');
-    Expect(1, 68082, '\p{Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(0, 68082, '\p{^Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(0, 68082, '\P{Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(1, 68082, '\P{^Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(0, 68083, '\p{Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(1, 68083, '\p{^Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(1, 68083, '\P{Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(0, 68083, '\P{^Is_Numeric_Value:	0_0_0_6_0_0000}', "");
-    Expect(1, 68082, '\p{Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(0, 68082, '\p{^Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(0, 68082, '\P{Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(1, 68082, '\P{^Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(0, 68083, '\p{Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(1, 68083, '\p{^Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(1, 68083, '\P{Is_Numeric_Value=6.000000000000000e+05}', "");
-    Expect(0, 68083, '\P{^Is_Numeric_Value=6.000000000000000e+05}', "");
-    Error('\p{Is_Nv=/a/	0000000600000}');
-    Error('\P{Is_Nv=/a/	0000000600000}');
-    Expect(1, 68082, '\p{Is_Nv=+00_06_00_00_0}', "");
-    Expect(0, 68082, '\p{^Is_Nv=+00_06_00_00_0}', "");
-    Expect(0, 68082, '\P{Is_Nv=+00_06_00_00_0}', "");
-    Expect(1, 68082, '\P{^Is_Nv=+00_06_00_00_0}', "");
-    Expect(0, 68083, '\p{Is_Nv=+00_06_00_00_0}', "");
-    Expect(1, 68083, '\p{^Is_Nv=+00_06_00_00_0}', "");
-    Expect(1, 68083, '\P{Is_Nv=+00_06_00_00_0}', "");
-    Expect(0, 68083, '\P{^Is_Nv=+00_06_00_00_0}', "");
+    Error('\p{Is_Numeric_Value:	 +00_00_00_06_00_00_0:=}');
+    Error('\P{Is_Numeric_Value:	 +00_00_00_06_00_00_0:=}');
+    Expect(1, 68082, '\p{Is_Numeric_Value=00_60_00_00}', "");
+    Expect(0, 68082, '\p{^Is_Numeric_Value=00_60_00_00}', "");
+    Expect(0, 68082, '\P{Is_Numeric_Value=00_60_00_00}', "");
+    Expect(1, 68082, '\P{^Is_Numeric_Value=00_60_00_00}', "");
+    Expect(0, 68083, '\p{Is_Numeric_Value=00_60_00_00}', "");
+    Expect(1, 68083, '\p{^Is_Numeric_Value=00_60_00_00}', "");
+    Expect(1, 68083, '\P{Is_Numeric_Value=00_60_00_00}', "");
+    Expect(0, 68083, '\P{^Is_Numeric_Value=00_60_00_00}', "");
+    Expect(1, 68082, '\p{Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(0, 68082, '\p{^Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(0, 68082, '\P{Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(1, 68082, '\P{^Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(0, 68083, '\p{Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(1, 68083, '\p{^Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(1, 68083, '\P{Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Expect(0, 68083, '\P{^Is_Numeric_Value:   6.000000000000000e+05}', "");
+    Error('\p{Is_Nv=:= _6_0_0_0_00}');
+    Error('\P{Is_Nv=:= _6_0_0_0_00}');
+    Expect(1, 68082, '\p{Is_Nv=00_06_00_000}', "");
+    Expect(0, 68082, '\p{^Is_Nv=00_06_00_000}', "");
+    Expect(0, 68082, '\P{Is_Nv=00_06_00_000}', "");
+    Expect(1, 68082, '\P{^Is_Nv=00_06_00_000}', "");
+    Expect(0, 68083, '\p{Is_Nv=00_06_00_000}', "");
+    Expect(1, 68083, '\p{^Is_Nv=00_06_00_000}', "");
+    Expect(1, 68083, '\P{Is_Nv=00_06_00_000}', "");
+    Expect(0, 68083, '\P{^Is_Nv=00_06_00_000}', "");
     Expect(1, 68082, '\p{Is_Nv=6.000000000000000e+05}', "");
     Expect(0, 68082, '\p{^Is_Nv=6.000000000000000e+05}', "");
     Expect(0, 68082, '\P{Is_Nv=6.000000000000000e+05}', "");
@@ -83459,18 +84049,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68083, '\p{^Is_Nv=6.000000000000000e+05}', "");
     Expect(1, 68083, '\P{Is_Nv=6.000000000000000e+05}', "");
     Expect(0, 68083, '\P{^Is_Nv=6.000000000000000e+05}', "");
-    Error('\p{Numeric_Value=_/a/0000_7}');
-    Error('\P{Numeric_Value=_/a/0000_7}');
+    Error('\p{Numeric_Value:   _:=00000_7}');
+    Error('\P{Numeric_Value:   _:=00000_7}');
     Expect(1, 131073, '\p{Numeric_Value=:\A7\z:}', "");;
     Expect(0, 131074, '\p{Numeric_Value=:\A7\z:}', "");;
-    Expect(1, 131073, '\p{Numeric_Value=+07}', "");
-    Expect(0, 131073, '\p{^Numeric_Value=+07}', "");
-    Expect(0, 131073, '\P{Numeric_Value=+07}', "");
-    Expect(1, 131073, '\P{^Numeric_Value=+07}', "");
-    Expect(0, 131074, '\p{Numeric_Value=+07}', "");
-    Expect(1, 131074, '\p{^Numeric_Value=+07}', "");
-    Expect(1, 131074, '\P{Numeric_Value=+07}', "");
-    Expect(0, 131074, '\P{^Numeric_Value=+07}', "");
+    Expect(1, 131073, '\p{Numeric_Value=7}', "");
+    Expect(0, 131073, '\p{^Numeric_Value=7}', "");
+    Expect(0, 131073, '\P{Numeric_Value=7}', "");
+    Expect(1, 131073, '\P{^Numeric_Value=7}', "");
+    Expect(0, 131074, '\p{Numeric_Value=7}', "");
+    Expect(1, 131074, '\p{^Numeric_Value=7}', "");
+    Expect(1, 131074, '\P{Numeric_Value=7}', "");
+    Expect(0, 131074, '\P{^Numeric_Value=7}', "");
     Expect(1, 131073, '\p{Numeric_Value=7.000000000000000e+00}', "");
     Expect(0, 131073, '\p{^Numeric_Value=7.000000000000000e+00}', "");
     Expect(0, 131073, '\P{Numeric_Value=7.000000000000000e+00}', "");
@@ -83479,18 +84069,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131074, '\p{^Numeric_Value=7.000000000000000e+00}', "");
     Expect(1, 131074, '\P{Numeric_Value=7.000000000000000e+00}', "");
     Expect(0, 131074, '\P{^Numeric_Value=7.000000000000000e+00}', "");
-    Error('\p{Nv=/a/000000007}');
-    Error('\P{Nv=/a/000000007}');
+    Error('\p{Nv=-:=00007}');
+    Error('\P{Nv=-:=00007}');
     Expect(1, 131073, '\p{Nv=:\A7\z:}', "");;
     Expect(0, 131074, '\p{Nv=:\A7\z:}', "");;
-    Expect(1, 131073, '\p{Nv=00_00_7}', "");
-    Expect(0, 131073, '\p{^Nv=00_00_7}', "");
-    Expect(0, 131073, '\P{Nv=00_00_7}', "");
-    Expect(1, 131073, '\P{^Nv=00_00_7}', "");
-    Expect(0, 131074, '\p{Nv=00_00_7}', "");
-    Expect(1, 131074, '\p{^Nv=00_00_7}', "");
-    Expect(1, 131074, '\P{Nv=00_00_7}', "");
-    Expect(0, 131074, '\P{^Nv=00_00_7}', "");
+    Expect(1, 131073, '\p{Nv=+007}', "");
+    Expect(0, 131073, '\p{^Nv=+007}', "");
+    Expect(0, 131073, '\P{Nv=+007}', "");
+    Expect(1, 131073, '\P{^Nv=+007}', "");
+    Expect(0, 131074, '\p{Nv=+007}', "");
+    Expect(1, 131074, '\p{^Nv=+007}', "");
+    Expect(1, 131074, '\P{Nv=+007}', "");
+    Expect(0, 131074, '\P{^Nv=+007}', "");
     Expect(1, 131073, '\p{Nv=7.000000000000000e+00}', "");
     Expect(0, 131073, '\p{^Nv=7.000000000000000e+00}', "");
     Expect(0, 131073, '\P{Nv=7.000000000000000e+00}', "");
@@ -83499,16 +84089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131074, '\p{^Nv=7.000000000000000e+00}', "");
     Expect(1, 131074, '\P{Nv=7.000000000000000e+00}', "");
     Expect(0, 131074, '\P{^Nv=7.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=	00_00_7/a/}');
-    Error('\P{Is_Numeric_Value=	00_00_7/a/}');
-    Expect(1, 131073, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(0, 131073, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(0, 131073, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(1, 131073, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(0, 131074, '\p{Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(1, 131074, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(1, 131074, '\P{Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
-    Expect(0, 131074, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_0_007}', "");
+    Error('\p{Is_Numeric_Value=  0_0_0_0_0_0007:=}');
+    Error('\P{Is_Numeric_Value=  0_0_0_0_0_0007:=}');
+    Expect(1, 131073, '\p{Is_Numeric_Value=+0000000007}', "");
+    Expect(0, 131073, '\p{^Is_Numeric_Value=+0000000007}', "");
+    Expect(0, 131073, '\P{Is_Numeric_Value=+0000000007}', "");
+    Expect(1, 131073, '\P{^Is_Numeric_Value=+0000000007}', "");
+    Expect(0, 131074, '\p{Is_Numeric_Value=+0000000007}', "");
+    Expect(1, 131074, '\p{^Is_Numeric_Value=+0000000007}', "");
+    Expect(1, 131074, '\P{Is_Numeric_Value=+0000000007}', "");
+    Expect(0, 131074, '\P{^Is_Numeric_Value=+0000000007}', "");
     Expect(1, 131073, '\p{Is_Numeric_Value=7.000000000000000e+00}', "");
     Expect(0, 131073, '\p{^Is_Numeric_Value=7.000000000000000e+00}', "");
     Expect(0, 131073, '\P{Is_Numeric_Value=7.000000000000000e+00}', "");
@@ -83517,36 +84107,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131074, '\p{^Is_Numeric_Value=7.000000000000000e+00}', "");
     Expect(1, 131074, '\P{Is_Numeric_Value=7.000000000000000e+00}', "");
     Expect(0, 131074, '\P{^Is_Numeric_Value=7.000000000000000e+00}', "");
-    Error('\p{Is_Nv= +00000007:=}');
-    Error('\P{Is_Nv= +00000007:=}');
-    Expect(1, 131073, '\p{Is_Nv=000000007}', "");
-    Expect(0, 131073, '\p{^Is_Nv=000000007}', "");
-    Expect(0, 131073, '\P{Is_Nv=000000007}', "");
-    Expect(1, 131073, '\P{^Is_Nv=000000007}', "");
-    Expect(0, 131074, '\p{Is_Nv=000000007}', "");
-    Expect(1, 131074, '\p{^Is_Nv=000000007}', "");
-    Expect(1, 131074, '\P{Is_Nv=000000007}', "");
-    Expect(0, 131074, '\P{^Is_Nv=000000007}', "");
-    Expect(1, 131073, '\p{Is_Nv=7.000000000000000e+00}', "");
-    Expect(0, 131073, '\p{^Is_Nv=7.000000000000000e+00}', "");
-    Expect(0, 131073, '\P{Is_Nv=7.000000000000000e+00}', "");
-    Expect(1, 131073, '\P{^Is_Nv=7.000000000000000e+00}', "");
-    Expect(0, 131074, '\p{Is_Nv=7.000000000000000e+00}', "");
-    Expect(1, 131074, '\p{^Is_Nv=7.000000000000000e+00}', "");
-    Expect(1, 131074, '\P{Is_Nv=7.000000000000000e+00}', "");
-    Expect(0, 131074, '\P{^Is_Nv=7.000000000000000e+00}', "");
-    Error('\p{Numeric_Value= -00007/012:=}');
-    Error('\P{Numeric_Value= -00007/012:=}');
+    Error('\p{Is_Nv=_/a/0000000007}');
+    Error('\P{Is_Nv=_/a/0000000007}');
+    Expect(1, 131073, '\p{Is_Nv=+07}', "");
+    Expect(0, 131073, '\p{^Is_Nv=+07}', "");
+    Expect(0, 131073, '\P{Is_Nv=+07}', "");
+    Expect(1, 131073, '\P{^Is_Nv=+07}', "");
+    Expect(0, 131074, '\p{Is_Nv=+07}', "");
+    Expect(1, 131074, '\p{^Is_Nv=+07}', "");
+    Expect(1, 131074, '\P{Is_Nv=+07}', "");
+    Expect(0, 131074, '\P{^Is_Nv=+07}', "");
+    Expect(1, 131073, '\p{Is_Nv:	7.000000000000000e+00}', "");
+    Expect(0, 131073, '\p{^Is_Nv:	7.000000000000000e+00}', "");
+    Expect(0, 131073, '\P{Is_Nv:	7.000000000000000e+00}', "");
+    Expect(1, 131073, '\P{^Is_Nv:	7.000000000000000e+00}', "");
+    Expect(0, 131074, '\p{Is_Nv:	7.000000000000000e+00}', "");
+    Expect(1, 131074, '\p{^Is_Nv:	7.000000000000000e+00}', "");
+    Expect(1, 131074, '\P{Is_Nv:	7.000000000000000e+00}', "");
+    Expect(0, 131074, '\P{^Is_Nv:	7.000000000000000e+00}', "");
+    Error('\p{Numeric_Value:   _ 0000000007/00000000012:=}');
+    Error('\P{Numeric_Value:   _ 0000000007/00000000012:=}');
     Expect(1, 68092, '\p{Numeric_Value=:\A7/12\z:}', "");;
     Expect(0, 68093, '\p{Numeric_Value=:\A7/12\z:}', "");;
-    Expect(1, 68092, '\p{Numeric_Value: +0007/00012}', "");
-    Expect(0, 68092, '\p{^Numeric_Value: +0007/00012}', "");
-    Expect(0, 68092, '\P{Numeric_Value: +0007/00012}', "");
-    Expect(1, 68092, '\P{^Numeric_Value: +0007/00012}', "");
-    Expect(0, 68093, '\p{Numeric_Value: +0007/00012}', "");
-    Expect(1, 68093, '\p{^Numeric_Value: +0007/00012}', "");
-    Expect(1, 68093, '\P{Numeric_Value: +0007/00012}', "");
-    Expect(0, 68093, '\P{^Numeric_Value: +0007/00012}', "");
+    Expect(1, 68092, '\p{Numeric_Value=+0000007/00000012}', "");
+    Expect(0, 68092, '\p{^Numeric_Value=+0000007/00000012}', "");
+    Expect(0, 68092, '\P{Numeric_Value=+0000007/00000012}', "");
+    Expect(1, 68092, '\P{^Numeric_Value=+0000007/00000012}', "");
+    Expect(0, 68093, '\p{Numeric_Value=+0000007/00000012}', "");
+    Expect(1, 68093, '\p{^Numeric_Value=+0000007/00000012}', "");
+    Expect(1, 68093, '\P{Numeric_Value=+0000007/00000012}', "");
+    Expect(0, 68093, '\P{^Numeric_Value=+0000007/00000012}', "");
     Expect(1, 68092, '\p{Numeric_Value=420/720}', "");
     Expect(0, 68092, '\p{^Numeric_Value=420/720}', "");
     Expect(0, 68092, '\P{Numeric_Value=420/720}', "");
@@ -83559,16 +84149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Numeric_Value=5.8e-01}');
     Error('\p{Numeric_Value=5.83e-01}');
     Error('\P{Numeric_Value=5.83e-01}');
-    Error('\p{Numeric_Value: 0.58}');
-    Error('\P{Numeric_Value: 0.58}');
-    Expect(1, 68092, '\p{Numeric_Value=5.833e-01}', "");
-    Expect(0, 68092, '\p{^Numeric_Value=5.833e-01}', "");
-    Expect(0, 68092, '\P{Numeric_Value=5.833e-01}', "");
-    Expect(1, 68092, '\P{^Numeric_Value=5.833e-01}', "");
-    Expect(0, 68093, '\p{Numeric_Value=5.833e-01}', "");
-    Expect(1, 68093, '\p{^Numeric_Value=5.833e-01}', "");
-    Expect(1, 68093, '\P{Numeric_Value=5.833e-01}', "");
-    Expect(0, 68093, '\P{^Numeric_Value=5.833e-01}', "");
+    Error('\p{Numeric_Value=0.58}');
+    Error('\P{Numeric_Value=0.58}');
+    Expect(1, 68092, '\p{Numeric_Value:	5.833e-01}', "");
+    Expect(0, 68092, '\p{^Numeric_Value:	5.833e-01}', "");
+    Expect(0, 68092, '\P{Numeric_Value:	5.833e-01}', "");
+    Expect(1, 68092, '\P{^Numeric_Value:	5.833e-01}', "");
+    Expect(0, 68093, '\p{Numeric_Value:	5.833e-01}', "");
+    Expect(1, 68093, '\p{^Numeric_Value:	5.833e-01}', "");
+    Expect(1, 68093, '\P{Numeric_Value:	5.833e-01}', "");
+    Expect(0, 68093, '\P{^Numeric_Value:	5.833e-01}', "");
     Error('\p{Numeric_Value=0.583}');
     Error('\P{Numeric_Value=0.583}');
     Expect(1, 68092, '\p{Numeric_Value=5.8333e-01}', "");
@@ -83579,14 +84169,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68093, '\p{^Numeric_Value=5.8333e-01}', "");
     Expect(1, 68093, '\P{Numeric_Value=5.8333e-01}', "");
     Expect(0, 68093, '\P{^Numeric_Value=5.8333e-01}', "");
-    Expect(1, 68092, '\p{Numeric_Value:	0.5833}', "");
-    Expect(0, 68092, '\p{^Numeric_Value:	0.5833}', "");
-    Expect(0, 68092, '\P{Numeric_Value:	0.5833}', "");
-    Expect(1, 68092, '\P{^Numeric_Value:	0.5833}', "");
-    Expect(0, 68093, '\p{Numeric_Value:	0.5833}', "");
-    Expect(1, 68093, '\p{^Numeric_Value:	0.5833}', "");
-    Expect(1, 68093, '\P{Numeric_Value:	0.5833}', "");
-    Expect(0, 68093, '\P{^Numeric_Value:	0.5833}', "");
+    Expect(1, 68092, '\p{Numeric_Value=0.5833}', "");
+    Expect(0, 68092, '\p{^Numeric_Value=0.5833}', "");
+    Expect(0, 68092, '\P{Numeric_Value=0.5833}', "");
+    Expect(1, 68092, '\P{^Numeric_Value=0.5833}', "");
+    Expect(0, 68093, '\p{Numeric_Value=0.5833}', "");
+    Expect(1, 68093, '\p{^Numeric_Value=0.5833}', "");
+    Expect(1, 68093, '\P{Numeric_Value=0.5833}', "");
+    Expect(0, 68093, '\P{^Numeric_Value=0.5833}', "");
     Expect(1, 68092, '\p{Numeric_Value=5.83333e-01}', "");
     Expect(0, 68092, '\p{^Numeric_Value=5.83333e-01}', "");
     Expect(0, 68092, '\P{Numeric_Value=5.83333e-01}', "");
@@ -83603,18 +84193,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68093, '\p{^Numeric_Value=0.58333}', "");
     Expect(1, 68093, '\P{Numeric_Value=0.58333}', "");
     Expect(0, 68093, '\P{^Numeric_Value=0.58333}', "");
-    Error('\p{Nv=  000000007/00012/a/}');
-    Error('\P{Nv=  000000007/00012/a/}');
+    Error('\p{Nv:	 _+000000007/12:=}');
+    Error('\P{Nv:	 _+000000007/12:=}');
     Expect(1, 68092, '\p{Nv=:\A7/12\z:}', "");;
     Expect(0, 68093, '\p{Nv=:\A7/12\z:}', "");;
-    Expect(1, 68092, '\p{Nv=+0000007/012}', "");
-    Expect(0, 68092, '\p{^Nv=+0000007/012}', "");
-    Expect(0, 68092, '\P{Nv=+0000007/012}', "");
-    Expect(1, 68092, '\P{^Nv=+0000007/012}', "");
-    Expect(0, 68093, '\p{Nv=+0000007/012}', "");
-    Expect(1, 68093, '\p{^Nv=+0000007/012}', "");
-    Expect(1, 68093, '\P{Nv=+0000007/012}', "");
-    Expect(0, 68093, '\P{^Nv=+0000007/012}', "");
+    Expect(1, 68092, '\p{Nv=0000007/00000000012}', "");
+    Expect(0, 68092, '\p{^Nv=0000007/00000000012}', "");
+    Expect(0, 68092, '\P{Nv=0000007/00000000012}', "");
+    Expect(1, 68092, '\P{^Nv=0000007/00000000012}', "");
+    Expect(0, 68093, '\p{Nv=0000007/00000000012}', "");
+    Expect(1, 68093, '\p{^Nv=0000007/00000000012}', "");
+    Expect(1, 68093, '\P{Nv=0000007/00000000012}', "");
+    Expect(0, 68093, '\P{^Nv=0000007/00000000012}', "");
     Expect(1, 68092, '\p{Nv=420/720}', "");
     Expect(0, 68092, '\p{^Nv=420/720}', "");
     Expect(0, 68092, '\P{Nv=420/720}', "");
@@ -83625,36 +84215,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 68093, '\P{^Nv=420/720}', "");
     Error('\p{Nv=5.8e-01}');
     Error('\P{Nv=5.8e-01}');
-    Error('\p{Nv=5.83e-01}');
-    Error('\P{Nv=5.83e-01}');
+    Error('\p{Nv: 5.83e-01}');
+    Error('\P{Nv: 5.83e-01}');
     Error('\p{Nv=0.58}');
     Error('\P{Nv=0.58}');
-    Expect(1, 68092, '\p{Nv:	5.833e-01}', "");
-    Expect(0, 68092, '\p{^Nv:	5.833e-01}', "");
-    Expect(0, 68092, '\P{Nv:	5.833e-01}', "");
-    Expect(1, 68092, '\P{^Nv:	5.833e-01}', "");
-    Expect(0, 68093, '\p{Nv:	5.833e-01}', "");
-    Expect(1, 68093, '\p{^Nv:	5.833e-01}', "");
-    Expect(1, 68093, '\P{Nv:	5.833e-01}', "");
-    Expect(0, 68093, '\P{^Nv:	5.833e-01}', "");
+    Expect(1, 68092, '\p{Nv=5.833e-01}', "");
+    Expect(0, 68092, '\p{^Nv=5.833e-01}', "");
+    Expect(0, 68092, '\P{Nv=5.833e-01}', "");
+    Expect(1, 68092, '\P{^Nv=5.833e-01}', "");
+    Expect(0, 68093, '\p{Nv=5.833e-01}', "");
+    Expect(1, 68093, '\p{^Nv=5.833e-01}', "");
+    Expect(1, 68093, '\P{Nv=5.833e-01}', "");
+    Expect(0, 68093, '\P{^Nv=5.833e-01}', "");
     Error('\p{Nv=0.583}');
     Error('\P{Nv=0.583}');
-    Expect(1, 68092, '\p{Nv=5.8333e-01}', "");
-    Expect(0, 68092, '\p{^Nv=5.8333e-01}', "");
-    Expect(0, 68092, '\P{Nv=5.8333e-01}', "");
-    Expect(1, 68092, '\P{^Nv=5.8333e-01}', "");
-    Expect(0, 68093, '\p{Nv=5.8333e-01}', "");
-    Expect(1, 68093, '\p{^Nv=5.8333e-01}', "");
-    Expect(1, 68093, '\P{Nv=5.8333e-01}', "");
-    Expect(0, 68093, '\P{^Nv=5.8333e-01}', "");
-    Expect(1, 68092, '\p{Nv:0.5833}', "");
-    Expect(0, 68092, '\p{^Nv:0.5833}', "");
-    Expect(0, 68092, '\P{Nv:0.5833}', "");
-    Expect(1, 68092, '\P{^Nv:0.5833}', "");
-    Expect(0, 68093, '\p{Nv:0.5833}', "");
-    Expect(1, 68093, '\p{^Nv:0.5833}', "");
-    Expect(1, 68093, '\P{Nv:0.5833}', "");
-    Expect(0, 68093, '\P{^Nv:0.5833}', "");
+    Expect(1, 68092, '\p{Nv:5.8333e-01}', "");
+    Expect(0, 68092, '\p{^Nv:5.8333e-01}', "");
+    Expect(0, 68092, '\P{Nv:5.8333e-01}', "");
+    Expect(1, 68092, '\P{^Nv:5.8333e-01}', "");
+    Expect(0, 68093, '\p{Nv:5.8333e-01}', "");
+    Expect(1, 68093, '\p{^Nv:5.8333e-01}', "");
+    Expect(1, 68093, '\P{Nv:5.8333e-01}', "");
+    Expect(0, 68093, '\P{^Nv:5.8333e-01}', "");
+    Expect(1, 68092, '\p{Nv=0.5833}', "");
+    Expect(0, 68092, '\p{^Nv=0.5833}', "");
+    Expect(0, 68092, '\P{Nv=0.5833}', "");
+    Expect(1, 68092, '\P{^Nv=0.5833}', "");
+    Expect(0, 68093, '\p{Nv=0.5833}', "");
+    Expect(1, 68093, '\p{^Nv=0.5833}', "");
+    Expect(1, 68093, '\P{Nv=0.5833}', "");
+    Expect(0, 68093, '\P{^Nv=0.5833}', "");
     Expect(1, 68092, '\p{Nv=5.83333e-01}', "");
     Expect(0, 68092, '\p{^Nv=5.83333e-01}', "");
     Expect(0, 68092, '\P{Nv=5.83333e-01}', "");
@@ -83663,24 +84253,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68093, '\p{^Nv=5.83333e-01}', "");
     Expect(1, 68093, '\P{Nv=5.83333e-01}', "");
     Expect(0, 68093, '\P{^Nv=5.83333e-01}', "");
-    Expect(1, 68092, '\p{Nv:	0.58333}', "");
-    Expect(0, 68092, '\p{^Nv:	0.58333}', "");
-    Expect(0, 68092, '\P{Nv:	0.58333}', "");
-    Expect(1, 68092, '\P{^Nv:	0.58333}', "");
-    Expect(0, 68093, '\p{Nv:	0.58333}', "");
-    Expect(1, 68093, '\p{^Nv:	0.58333}', "");
-    Expect(1, 68093, '\P{Nv:	0.58333}', "");
-    Expect(0, 68093, '\P{^Nv:	0.58333}', "");
-    Error('\p{Is_Numeric_Value=	_00007/00000012:=}');
-    Error('\P{Is_Numeric_Value=	_00007/00000012:=}');
-    Expect(1, 68092, '\p{Is_Numeric_Value=0000000007/00012}', "");
-    Expect(0, 68092, '\p{^Is_Numeric_Value=0000000007/00012}', "");
-    Expect(0, 68092, '\P{Is_Numeric_Value=0000000007/00012}', "");
-    Expect(1, 68092, '\P{^Is_Numeric_Value=0000000007/00012}', "");
-    Expect(0, 68093, '\p{Is_Numeric_Value=0000000007/00012}', "");
-    Expect(1, 68093, '\p{^Is_Numeric_Value=0000000007/00012}', "");
-    Expect(1, 68093, '\P{Is_Numeric_Value=0000000007/00012}', "");
-    Expect(0, 68093, '\P{^Is_Numeric_Value=0000000007/00012}', "");
+    Expect(1, 68092, '\p{Nv: 0.58333}', "");
+    Expect(0, 68092, '\p{^Nv: 0.58333}', "");
+    Expect(0, 68092, '\P{Nv: 0.58333}', "");
+    Expect(1, 68092, '\P{^Nv: 0.58333}', "");
+    Expect(0, 68093, '\p{Nv: 0.58333}', "");
+    Expect(1, 68093, '\p{^Nv: 0.58333}', "");
+    Expect(1, 68093, '\P{Nv: 0.58333}', "");
+    Expect(0, 68093, '\P{^Nv: 0.58333}', "");
+    Error('\p{Is_Numeric_Value=	:=00007/0000000012}');
+    Error('\P{Is_Numeric_Value=	:=00007/0000000012}');
+    Expect(1, 68092, '\p{Is_Numeric_Value=007/000012}', "");
+    Expect(0, 68092, '\p{^Is_Numeric_Value=007/000012}', "");
+    Expect(0, 68092, '\P{Is_Numeric_Value=007/000012}', "");
+    Expect(1, 68092, '\P{^Is_Numeric_Value=007/000012}', "");
+    Expect(0, 68093, '\p{Is_Numeric_Value=007/000012}', "");
+    Expect(1, 68093, '\p{^Is_Numeric_Value=007/000012}', "");
+    Expect(1, 68093, '\P{Is_Numeric_Value=007/000012}', "");
+    Expect(0, 68093, '\P{^Is_Numeric_Value=007/000012}', "");
     Expect(1, 68092, '\p{Is_Numeric_Value=420/720}', "");
     Expect(0, 68092, '\p{^Is_Numeric_Value=420/720}', "");
     Expect(0, 68092, '\P{Is_Numeric_Value=420/720}', "");
@@ -83693,8 +84283,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Is_Numeric_Value=5.8e-01}');
     Error('\p{Is_Numeric_Value=5.83e-01}');
     Error('\P{Is_Numeric_Value=5.83e-01}');
-    Error('\p{Is_Numeric_Value:0.58}');
-    Error('\P{Is_Numeric_Value:0.58}');
+    Error('\p{Is_Numeric_Value=0.58}');
+    Error('\P{Is_Numeric_Value=0.58}');
     Expect(1, 68092, '\p{Is_Numeric_Value=5.833e-01}', "");
     Expect(0, 68092, '\p{^Is_Numeric_Value=5.833e-01}', "");
     Expect(0, 68092, '\P{Is_Numeric_Value=5.833e-01}', "");
@@ -83713,22 +84303,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68093, '\p{^Is_Numeric_Value=5.8333e-01}', "");
     Expect(1, 68093, '\P{Is_Numeric_Value=5.8333e-01}', "");
     Expect(0, 68093, '\P{^Is_Numeric_Value=5.8333e-01}', "");
-    Expect(1, 68092, '\p{Is_Numeric_Value=0.5833}', "");
-    Expect(0, 68092, '\p{^Is_Numeric_Value=0.5833}', "");
-    Expect(0, 68092, '\P{Is_Numeric_Value=0.5833}', "");
-    Expect(1, 68092, '\P{^Is_Numeric_Value=0.5833}', "");
-    Expect(0, 68093, '\p{Is_Numeric_Value=0.5833}', "");
-    Expect(1, 68093, '\p{^Is_Numeric_Value=0.5833}', "");
-    Expect(1, 68093, '\P{Is_Numeric_Value=0.5833}', "");
-    Expect(0, 68093, '\P{^Is_Numeric_Value=0.5833}', "");
-    Expect(1, 68092, '\p{Is_Numeric_Value=5.83333e-01}', "");
-    Expect(0, 68092, '\p{^Is_Numeric_Value=5.83333e-01}', "");
-    Expect(0, 68092, '\P{Is_Numeric_Value=5.83333e-01}', "");
-    Expect(1, 68092, '\P{^Is_Numeric_Value=5.83333e-01}', "");
-    Expect(0, 68093, '\p{Is_Numeric_Value=5.83333e-01}', "");
-    Expect(1, 68093, '\p{^Is_Numeric_Value=5.83333e-01}', "");
-    Expect(1, 68093, '\P{Is_Numeric_Value=5.83333e-01}', "");
-    Expect(0, 68093, '\P{^Is_Numeric_Value=5.83333e-01}', "");
+    Expect(1, 68092, '\p{Is_Numeric_Value:0.5833}', "");
+    Expect(0, 68092, '\p{^Is_Numeric_Value:0.5833}', "");
+    Expect(0, 68092, '\P{Is_Numeric_Value:0.5833}', "");
+    Expect(1, 68092, '\P{^Is_Numeric_Value:0.5833}', "");
+    Expect(0, 68093, '\p{Is_Numeric_Value:0.5833}', "");
+    Expect(1, 68093, '\p{^Is_Numeric_Value:0.5833}', "");
+    Expect(1, 68093, '\P{Is_Numeric_Value:0.5833}', "");
+    Expect(0, 68093, '\P{^Is_Numeric_Value:0.5833}', "");
+    Expect(1, 68092, '\p{Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(0, 68092, '\p{^Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(0, 68092, '\P{Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(1, 68092, '\P{^Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(0, 68093, '\p{Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(1, 68093, '\p{^Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(1, 68093, '\P{Is_Numeric_Value:	5.83333e-01}', "");
+    Expect(0, 68093, '\P{^Is_Numeric_Value:	5.83333e-01}', "");
     Expect(1, 68092, '\p{Is_Numeric_Value=0.58333}', "");
     Expect(0, 68092, '\p{^Is_Numeric_Value=0.58333}', "");
     Expect(0, 68092, '\P{Is_Numeric_Value=0.58333}', "");
@@ -83737,24 +84327,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68093, '\p{^Is_Numeric_Value=0.58333}', "");
     Expect(1, 68093, '\P{Is_Numeric_Value=0.58333}', "");
     Expect(0, 68093, '\P{^Is_Numeric_Value=0.58333}', "");
-    Error('\p{Is_Nv=:=07/0000012}');
-    Error('\P{Is_Nv=:=07/0000012}');
-    Expect(1, 68092, '\p{Is_Nv=0000000007/0000012}', "");
-    Expect(0, 68092, '\p{^Is_Nv=0000000007/0000012}', "");
-    Expect(0, 68092, '\P{Is_Nv=0000000007/0000012}', "");
-    Expect(1, 68092, '\P{^Is_Nv=0000000007/0000012}', "");
-    Expect(0, 68093, '\p{Is_Nv=0000000007/0000012}', "");
-    Expect(1, 68093, '\p{^Is_Nv=0000000007/0000012}', "");
-    Expect(1, 68093, '\P{Is_Nv=0000000007/0000012}', "");
-    Expect(0, 68093, '\P{^Is_Nv=0000000007/0000012}', "");
-    Expect(1, 68092, '\p{Is_Nv=420/720}', "");
-    Expect(0, 68092, '\p{^Is_Nv=420/720}', "");
-    Expect(0, 68092, '\P{Is_Nv=420/720}', "");
-    Expect(1, 68092, '\P{^Is_Nv=420/720}', "");
-    Expect(0, 68093, '\p{Is_Nv=420/720}', "");
-    Expect(1, 68093, '\p{^Is_Nv=420/720}', "");
-    Expect(1, 68093, '\P{Is_Nv=420/720}', "");
-    Expect(0, 68093, '\P{^Is_Nv=420/720}', "");
+    Error('\p{Is_Nv=_0000000007/00000012:=}');
+    Error('\P{Is_Nv=_0000000007/00000012:=}');
+    Expect(1, 68092, '\p{Is_Nv=0000000007/12}', "");
+    Expect(0, 68092, '\p{^Is_Nv=0000000007/12}', "");
+    Expect(0, 68092, '\P{Is_Nv=0000000007/12}', "");
+    Expect(1, 68092, '\P{^Is_Nv=0000000007/12}', "");
+    Expect(0, 68093, '\p{Is_Nv=0000000007/12}', "");
+    Expect(1, 68093, '\p{^Is_Nv=0000000007/12}', "");
+    Expect(1, 68093, '\P{Is_Nv=0000000007/12}', "");
+    Expect(0, 68093, '\P{^Is_Nv=0000000007/12}', "");
+    Expect(1, 68092, '\p{Is_Nv: 420/720}', "");
+    Expect(0, 68092, '\p{^Is_Nv: 420/720}', "");
+    Expect(0, 68092, '\P{Is_Nv: 420/720}', "");
+    Expect(1, 68092, '\P{^Is_Nv: 420/720}', "");
+    Expect(0, 68093, '\p{Is_Nv: 420/720}', "");
+    Expect(1, 68093, '\p{^Is_Nv: 420/720}', "");
+    Expect(1, 68093, '\P{Is_Nv: 420/720}', "");
+    Expect(0, 68093, '\P{^Is_Nv: 420/720}', "");
     Error('\p{Is_Nv=5.8e-01}');
     Error('\P{Is_Nv=5.8e-01}');
     Error('\p{Is_Nv=5.83e-01}');
@@ -83771,14 +84361,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 68093, '\P{^Is_Nv=5.833e-01}', "");
     Error('\p{Is_Nv=0.583}');
     Error('\P{Is_Nv=0.583}');
-    Expect(1, 68092, '\p{Is_Nv:   5.8333e-01}', "");
-    Expect(0, 68092, '\p{^Is_Nv:   5.8333e-01}', "");
-    Expect(0, 68092, '\P{Is_Nv:   5.8333e-01}', "");
-    Expect(1, 68092, '\P{^Is_Nv:   5.8333e-01}', "");
-    Expect(0, 68093, '\p{Is_Nv:   5.8333e-01}', "");
-    Expect(1, 68093, '\p{^Is_Nv:   5.8333e-01}', "");
-    Expect(1, 68093, '\P{Is_Nv:   5.8333e-01}', "");
-    Expect(0, 68093, '\P{^Is_Nv:   5.8333e-01}', "");
+    Expect(1, 68092, '\p{Is_Nv=5.8333e-01}', "");
+    Expect(0, 68092, '\p{^Is_Nv=5.8333e-01}', "");
+    Expect(0, 68092, '\P{Is_Nv=5.8333e-01}', "");
+    Expect(1, 68092, '\P{^Is_Nv=5.8333e-01}', "");
+    Expect(0, 68093, '\p{Is_Nv=5.8333e-01}', "");
+    Expect(1, 68093, '\p{^Is_Nv=5.8333e-01}', "");
+    Expect(1, 68093, '\P{Is_Nv=5.8333e-01}', "");
+    Expect(0, 68093, '\P{^Is_Nv=5.8333e-01}', "");
     Expect(1, 68092, '\p{Is_Nv=0.5833}', "");
     Expect(0, 68092, '\p{^Is_Nv=0.5833}', "");
     Expect(0, 68092, '\P{Is_Nv=0.5833}', "");
@@ -83795,26 +84385,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68093, '\p{^Is_Nv=5.83333e-01}', "");
     Expect(1, 68093, '\P{Is_Nv=5.83333e-01}', "");
     Expect(0, 68093, '\P{^Is_Nv=5.83333e-01}', "");
-    Expect(1, 68092, '\p{Is_Nv=0.58333}', "");
-    Expect(0, 68092, '\p{^Is_Nv=0.58333}', "");
-    Expect(0, 68092, '\P{Is_Nv=0.58333}', "");
-    Expect(1, 68092, '\P{^Is_Nv=0.58333}', "");
-    Expect(0, 68093, '\p{Is_Nv=0.58333}', "");
-    Expect(1, 68093, '\p{^Is_Nv=0.58333}', "");
-    Expect(1, 68093, '\P{Is_Nv=0.58333}', "");
-    Expect(0, 68093, '\P{^Is_Nv=0.58333}', "");
-    Error('\p{Numeric_Value:     000000007/000002/a/}');
-    Error('\P{Numeric_Value:     000000007/000002/a/}');
+    Expect(1, 68092, '\p{Is_Nv:   0.58333}', "");
+    Expect(0, 68092, '\p{^Is_Nv:   0.58333}', "");
+    Expect(0, 68092, '\P{Is_Nv:   0.58333}', "");
+    Expect(1, 68092, '\P{^Is_Nv:   0.58333}', "");
+    Expect(0, 68093, '\p{Is_Nv:   0.58333}', "");
+    Expect(1, 68093, '\p{^Is_Nv:   0.58333}', "");
+    Expect(1, 68093, '\P{Is_Nv:   0.58333}', "");
+    Expect(0, 68093, '\P{^Is_Nv:   0.58333}', "");
+    Error('\p{Numeric_Value=- 00007/00002:=}');
+    Error('\P{Numeric_Value=- 00007/00002:=}');
     Expect(1, 3885, '\p{Numeric_Value=:\A7/2\z:}', "");;
     Expect(0, 3886, '\p{Numeric_Value=:\A7/2\z:}', "");;
-    Expect(1, 3885, '\p{Numeric_Value=7/000000002}', "");
-    Expect(0, 3885, '\p{^Numeric_Value=7/000000002}', "");
-    Expect(0, 3885, '\P{Numeric_Value=7/000000002}', "");
-    Expect(1, 3885, '\P{^Numeric_Value=7/000000002}', "");
-    Expect(0, 3886, '\p{Numeric_Value=7/000000002}', "");
-    Expect(1, 3886, '\p{^Numeric_Value=7/000000002}', "");
-    Expect(1, 3886, '\P{Numeric_Value=7/000000002}', "");
-    Expect(0, 3886, '\P{^Numeric_Value=7/000000002}', "");
+    Expect(1, 3885, '\p{Numeric_Value=+000000007/000002}', "");
+    Expect(0, 3885, '\p{^Numeric_Value=+000000007/000002}', "");
+    Expect(0, 3885, '\P{Numeric_Value=+000000007/000002}', "");
+    Expect(1, 3885, '\P{^Numeric_Value=+000000007/000002}', "");
+    Expect(0, 3886, '\p{Numeric_Value=+000000007/000002}', "");
+    Expect(1, 3886, '\p{^Numeric_Value=+000000007/000002}', "");
+    Expect(1, 3886, '\P{Numeric_Value=+000000007/000002}', "");
+    Expect(0, 3886, '\P{^Numeric_Value=+000000007/000002}', "");
     Expect(1, 3885, '\p{Numeric_Value=420/120}', "");
     Expect(0, 3885, '\p{^Numeric_Value=420/120}', "");
     Expect(0, 3885, '\P{Numeric_Value=420/120}', "");
@@ -83823,14 +84413,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Numeric_Value=420/120}', "");
     Expect(1, 3886, '\P{Numeric_Value=420/120}', "");
     Expect(0, 3886, '\P{^Numeric_Value=420/120}', "");
-    Expect(1, 3885, '\p{Numeric_Value=3.5e+00}', "");
-    Expect(0, 3885, '\p{^Numeric_Value=3.5e+00}', "");
-    Expect(0, 3885, '\P{Numeric_Value=3.5e+00}', "");
-    Expect(1, 3885, '\P{^Numeric_Value=3.5e+00}', "");
-    Expect(0, 3886, '\p{Numeric_Value=3.5e+00}', "");
-    Expect(1, 3886, '\p{^Numeric_Value=3.5e+00}', "");
-    Expect(1, 3886, '\P{Numeric_Value=3.5e+00}', "");
-    Expect(0, 3886, '\P{^Numeric_Value=3.5e+00}', "");
+    Expect(1, 3885, '\p{Numeric_Value:3.5e+00}', "");
+    Expect(0, 3885, '\p{^Numeric_Value:3.5e+00}', "");
+    Expect(0, 3885, '\P{Numeric_Value:3.5e+00}', "");
+    Expect(1, 3885, '\P{^Numeric_Value:3.5e+00}', "");
+    Expect(0, 3886, '\p{Numeric_Value:3.5e+00}', "");
+    Expect(1, 3886, '\p{^Numeric_Value:3.5e+00}', "");
+    Expect(1, 3886, '\P{Numeric_Value:3.5e+00}', "");
+    Expect(0, 3886, '\P{^Numeric_Value:3.5e+00}', "");
     Expect(1, 3885, '\p{Numeric_Value=3.5}', "");
     Expect(0, 3885, '\p{^Numeric_Value=3.5}', "");
     Expect(0, 3885, '\P{Numeric_Value=3.5}', "");
@@ -83839,14 +84429,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Numeric_Value=3.5}', "");
     Expect(1, 3886, '\P{Numeric_Value=3.5}', "");
     Expect(0, 3886, '\P{^Numeric_Value=3.5}', "");
-    Expect(1, 3885, '\p{Numeric_Value:3.50e+00}', "");
-    Expect(0, 3885, '\p{^Numeric_Value:3.50e+00}', "");
-    Expect(0, 3885, '\P{Numeric_Value:3.50e+00}', "");
-    Expect(1, 3885, '\P{^Numeric_Value:3.50e+00}', "");
-    Expect(0, 3886, '\p{Numeric_Value:3.50e+00}', "");
-    Expect(1, 3886, '\p{^Numeric_Value:3.50e+00}', "");
-    Expect(1, 3886, '\P{Numeric_Value:3.50e+00}', "");
-    Expect(0, 3886, '\P{^Numeric_Value:3.50e+00}', "");
+    Expect(1, 3885, '\p{Numeric_Value:   3.50e+00}', "");
+    Expect(0, 3885, '\p{^Numeric_Value:   3.50e+00}', "");
+    Expect(0, 3885, '\P{Numeric_Value:   3.50e+00}', "");
+    Expect(1, 3885, '\P{^Numeric_Value:   3.50e+00}', "");
+    Expect(0, 3886, '\p{Numeric_Value:   3.50e+00}', "");
+    Expect(1, 3886, '\p{^Numeric_Value:   3.50e+00}', "");
+    Expect(1, 3886, '\P{Numeric_Value:   3.50e+00}', "");
+    Expect(0, 3886, '\P{^Numeric_Value:   3.50e+00}', "");
     Expect(1, 3885, '\p{Numeric_Value=3.50}', "");
     Expect(0, 3885, '\p{^Numeric_Value=3.50}', "");
     Expect(0, 3885, '\P{Numeric_Value=3.50}', "");
@@ -83855,18 +84445,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Numeric_Value=3.50}', "");
     Expect(1, 3886, '\P{Numeric_Value=3.50}', "");
     Expect(0, 3886, '\P{^Numeric_Value=3.50}', "");
-    Error('\p{Nv=-/a/000000007/02}');
-    Error('\P{Nv=-/a/000000007/02}');
+    Error('\p{Nv=/a/007/0002}');
+    Error('\P{Nv=/a/007/0002}');
     Expect(1, 3885, '\p{Nv=:\A7/2\z:}', "");;
     Expect(0, 3886, '\p{Nv=:\A7/2\z:}', "");;
-    Expect(1, 3885, '\p{Nv=0000007/2}', "");
-    Expect(0, 3885, '\p{^Nv=0000007/2}', "");
-    Expect(0, 3885, '\P{Nv=0000007/2}', "");
-    Expect(1, 3885, '\P{^Nv=0000007/2}', "");
-    Expect(0, 3886, '\p{Nv=0000007/2}', "");
-    Expect(1, 3886, '\p{^Nv=0000007/2}', "");
-    Expect(1, 3886, '\P{Nv=0000007/2}', "");
-    Expect(0, 3886, '\P{^Nv=0000007/2}', "");
+    Expect(1, 3885, '\p{Nv=0000007/00002}', "");
+    Expect(0, 3885, '\p{^Nv=0000007/00002}', "");
+    Expect(0, 3885, '\P{Nv=0000007/00002}', "");
+    Expect(1, 3885, '\P{^Nv=0000007/00002}', "");
+    Expect(0, 3886, '\p{Nv=0000007/00002}', "");
+    Expect(1, 3886, '\p{^Nv=0000007/00002}', "");
+    Expect(1, 3886, '\P{Nv=0000007/00002}', "");
+    Expect(0, 3886, '\P{^Nv=0000007/00002}', "");
     Expect(1, 3885, '\p{Nv=420/120}', "");
     Expect(0, 3885, '\p{^Nv=420/120}', "");
     Expect(0, 3885, '\P{Nv=420/120}', "");
@@ -83883,40 +84473,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Nv=3.5e+00}', "");
     Expect(1, 3886, '\P{Nv=3.5e+00}', "");
     Expect(0, 3886, '\P{^Nv=3.5e+00}', "");
-    Expect(1, 3885, '\p{Nv: 3.5}', "");
-    Expect(0, 3885, '\p{^Nv: 3.5}', "");
-    Expect(0, 3885, '\P{Nv: 3.5}', "");
-    Expect(1, 3885, '\P{^Nv: 3.5}', "");
-    Expect(0, 3886, '\p{Nv: 3.5}', "");
-    Expect(1, 3886, '\p{^Nv: 3.5}', "");
-    Expect(1, 3886, '\P{Nv: 3.5}', "");
-    Expect(0, 3886, '\P{^Nv: 3.5}', "");
-    Expect(1, 3885, '\p{Nv=3.50e+00}', "");
-    Expect(0, 3885, '\p{^Nv=3.50e+00}', "");
-    Expect(0, 3885, '\P{Nv=3.50e+00}', "");
-    Expect(1, 3885, '\P{^Nv=3.50e+00}', "");
-    Expect(0, 3886, '\p{Nv=3.50e+00}', "");
-    Expect(1, 3886, '\p{^Nv=3.50e+00}', "");
-    Expect(1, 3886, '\P{Nv=3.50e+00}', "");
-    Expect(0, 3886, '\P{^Nv=3.50e+00}', "");
-    Expect(1, 3885, '\p{Nv: 3.50}', "");
-    Expect(0, 3885, '\p{^Nv: 3.50}', "");
-    Expect(0, 3885, '\P{Nv: 3.50}', "");
-    Expect(1, 3885, '\P{^Nv: 3.50}', "");
-    Expect(0, 3886, '\p{Nv: 3.50}', "");
-    Expect(1, 3886, '\p{^Nv: 3.50}', "");
-    Expect(1, 3886, '\P{Nv: 3.50}', "");
-    Expect(0, 3886, '\P{^Nv: 3.50}', "");
-    Error('\p{Is_Numeric_Value=-:=0000000007/00002}');
-    Error('\P{Is_Numeric_Value=-:=0000000007/00002}');
-    Expect(1, 3885, '\p{Is_Numeric_Value=007/0000000002}', "");
-    Expect(0, 3885, '\p{^Is_Numeric_Value=007/0000000002}', "");
-    Expect(0, 3885, '\P{Is_Numeric_Value=007/0000000002}', "");
-    Expect(1, 3885, '\P{^Is_Numeric_Value=007/0000000002}', "");
-    Expect(0, 3886, '\p{Is_Numeric_Value=007/0000000002}', "");
-    Expect(1, 3886, '\p{^Is_Numeric_Value=007/0000000002}', "");
-    Expect(1, 3886, '\P{Is_Numeric_Value=007/0000000002}', "");
-    Expect(0, 3886, '\P{^Is_Numeric_Value=007/0000000002}', "");
+    Expect(1, 3885, '\p{Nv=3.5}', "");
+    Expect(0, 3885, '\p{^Nv=3.5}', "");
+    Expect(0, 3885, '\P{Nv=3.5}', "");
+    Expect(1, 3885, '\P{^Nv=3.5}', "");
+    Expect(0, 3886, '\p{Nv=3.5}', "");
+    Expect(1, 3886, '\p{^Nv=3.5}', "");
+    Expect(1, 3886, '\P{Nv=3.5}', "");
+    Expect(0, 3886, '\P{^Nv=3.5}', "");
+    Expect(1, 3885, '\p{Nv:	3.50e+00}', "");
+    Expect(0, 3885, '\p{^Nv:	3.50e+00}', "");
+    Expect(0, 3885, '\P{Nv:	3.50e+00}', "");
+    Expect(1, 3885, '\P{^Nv:	3.50e+00}', "");
+    Expect(0, 3886, '\p{Nv:	3.50e+00}', "");
+    Expect(1, 3886, '\p{^Nv:	3.50e+00}', "");
+    Expect(1, 3886, '\P{Nv:	3.50e+00}', "");
+    Expect(0, 3886, '\P{^Nv:	3.50e+00}', "");
+    Expect(1, 3885, '\p{Nv:	3.50}', "");
+    Expect(0, 3885, '\p{^Nv:	3.50}', "");
+    Expect(0, 3885, '\P{Nv:	3.50}', "");
+    Expect(1, 3885, '\P{^Nv:	3.50}', "");
+    Expect(0, 3886, '\p{Nv:	3.50}', "");
+    Expect(1, 3886, '\p{^Nv:	3.50}', "");
+    Expect(1, 3886, '\P{Nv:	3.50}', "");
+    Expect(0, 3886, '\P{^Nv:	3.50}', "");
+    Error('\p{Is_Numeric_Value=007/000002:=}');
+    Error('\P{Is_Numeric_Value=007/000002:=}');
+    Expect(1, 3885, '\p{Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(0, 3885, '\p{^Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(0, 3885, '\P{Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(1, 3885, '\P{^Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(0, 3886, '\p{Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(1, 3886, '\p{^Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(1, 3886, '\P{Is_Numeric_Value=0000000007/000000002}', "");
+    Expect(0, 3886, '\P{^Is_Numeric_Value=0000000007/000000002}', "");
     Expect(1, 3885, '\p{Is_Numeric_Value=420/120}', "");
     Expect(0, 3885, '\p{^Is_Numeric_Value=420/120}', "");
     Expect(0, 3885, '\P{Is_Numeric_Value=420/120}', "");
@@ -83925,14 +84515,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Is_Numeric_Value=420/120}', "");
     Expect(1, 3886, '\P{Is_Numeric_Value=420/120}', "");
     Expect(0, 3886, '\P{^Is_Numeric_Value=420/120}', "");
-    Expect(1, 3885, '\p{Is_Numeric_Value:3.5e+00}', "");
-    Expect(0, 3885, '\p{^Is_Numeric_Value:3.5e+00}', "");
-    Expect(0, 3885, '\P{Is_Numeric_Value:3.5e+00}', "");
-    Expect(1, 3885, '\P{^Is_Numeric_Value:3.5e+00}', "");
-    Expect(0, 3886, '\p{Is_Numeric_Value:3.5e+00}', "");
-    Expect(1, 3886, '\p{^Is_Numeric_Value:3.5e+00}', "");
-    Expect(1, 3886, '\P{Is_Numeric_Value:3.5e+00}', "");
-    Expect(0, 3886, '\P{^Is_Numeric_Value:3.5e+00}', "");
+    Expect(1, 3885, '\p{Is_Numeric_Value: 3.5e+00}', "");
+    Expect(0, 3885, '\p{^Is_Numeric_Value: 3.5e+00}', "");
+    Expect(0, 3885, '\P{Is_Numeric_Value: 3.5e+00}', "");
+    Expect(1, 3885, '\P{^Is_Numeric_Value: 3.5e+00}', "");
+    Expect(0, 3886, '\p{Is_Numeric_Value: 3.5e+00}', "");
+    Expect(1, 3886, '\p{^Is_Numeric_Value: 3.5e+00}', "");
+    Expect(1, 3886, '\P{Is_Numeric_Value: 3.5e+00}', "");
+    Expect(0, 3886, '\P{^Is_Numeric_Value: 3.5e+00}', "");
     Expect(1, 3885, '\p{Is_Numeric_Value=3.5}', "");
     Expect(0, 3885, '\p{^Is_Numeric_Value=3.5}', "");
     Expect(0, 3885, '\P{Is_Numeric_Value=3.5}', "");
@@ -83957,16 +84547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Is_Numeric_Value=3.50}', "");
     Expect(1, 3886, '\P{Is_Numeric_Value=3.50}', "");
     Expect(0, 3886, '\P{^Is_Numeric_Value=3.50}', "");
-    Error('\p{Is_Nv=-:=00007/00002}');
-    Error('\P{Is_Nv=-:=00007/00002}');
-    Expect(1, 3885, '\p{Is_Nv=+7/00002}', "");
-    Expect(0, 3885, '\p{^Is_Nv=+7/00002}', "");
-    Expect(0, 3885, '\P{Is_Nv=+7/00002}', "");
-    Expect(1, 3885, '\P{^Is_Nv=+7/00002}', "");
-    Expect(0, 3886, '\p{Is_Nv=+7/00002}', "");
-    Expect(1, 3886, '\p{^Is_Nv=+7/00002}', "");
-    Expect(1, 3886, '\P{Is_Nv=+7/00002}', "");
-    Expect(0, 3886, '\P{^Is_Nv=+7/00002}', "");
+    Error('\p{Is_Nv:   /a/-0000000007/2}');
+    Error('\P{Is_Nv:   /a/-0000000007/2}');
+    Expect(1, 3885, '\p{Is_Nv=00000007/000000002}', "");
+    Expect(0, 3885, '\p{^Is_Nv=00000007/000000002}', "");
+    Expect(0, 3885, '\P{Is_Nv=00000007/000000002}', "");
+    Expect(1, 3885, '\P{^Is_Nv=00000007/000000002}', "");
+    Expect(0, 3886, '\p{Is_Nv=00000007/000000002}', "");
+    Expect(1, 3886, '\p{^Is_Nv=00000007/000000002}', "");
+    Expect(1, 3886, '\P{Is_Nv=00000007/000000002}', "");
+    Expect(0, 3886, '\P{^Is_Nv=00000007/000000002}', "");
     Expect(1, 3885, '\p{Is_Nv=420/120}', "");
     Expect(0, 3885, '\p{^Is_Nv=420/120}', "");
     Expect(0, 3885, '\P{Is_Nv=420/120}', "");
@@ -84007,18 +84597,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3886, '\p{^Is_Nv=3.50}', "");
     Expect(1, 3886, '\P{Is_Nv=3.50}', "");
     Expect(0, 3886, '\P{^Is_Nv=3.50}', "");
-    Error('\p{Numeric_Value=:=	 00000007/00008}');
-    Error('\P{Numeric_Value=:=	 00000007/00008}');
+    Error('\p{Numeric_Value=:= +0000007/000008}');
+    Error('\P{Numeric_Value=:= +0000007/000008}');
     Expect(1, 8542, '\p{Numeric_Value=:\A7/8\z:}', "");;
     Expect(0, 8543, '\p{Numeric_Value=:\A7/8\z:}', "");;
-    Expect(1, 8542, '\p{Numeric_Value=7/00008}', "");
-    Expect(0, 8542, '\p{^Numeric_Value=7/00008}', "");
-    Expect(0, 8542, '\P{Numeric_Value=7/00008}', "");
-    Expect(1, 8542, '\P{^Numeric_Value=7/00008}', "");
-    Expect(0, 8543, '\p{Numeric_Value=7/00008}', "");
-    Expect(1, 8543, '\p{^Numeric_Value=7/00008}', "");
-    Expect(1, 8543, '\P{Numeric_Value=7/00008}', "");
-    Expect(0, 8543, '\P{^Numeric_Value=7/00008}', "");
+    Expect(1, 8542, '\p{Numeric_Value=000007/0000008}', "");
+    Expect(0, 8542, '\p{^Numeric_Value=000007/0000008}', "");
+    Expect(0, 8542, '\P{Numeric_Value=000007/0000008}', "");
+    Expect(1, 8542, '\P{^Numeric_Value=000007/0000008}', "");
+    Expect(0, 8543, '\p{Numeric_Value=000007/0000008}', "");
+    Expect(1, 8543, '\p{^Numeric_Value=000007/0000008}', "");
+    Expect(1, 8543, '\P{Numeric_Value=000007/0000008}', "");
+    Expect(0, 8543, '\P{^Numeric_Value=000007/0000008}', "");
     Expect(1, 8542, '\p{Numeric_Value=420/480}', "");
     Expect(0, 8542, '\p{^Numeric_Value=420/480}', "");
     Expect(0, 8542, '\P{Numeric_Value=420/480}', "");
@@ -84065,26 +84655,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8543, '\p{^Numeric_Value=8.7500e-01}', "");
     Expect(1, 8543, '\P{Numeric_Value=8.7500e-01}', "");
     Expect(0, 8543, '\P{^Numeric_Value=8.7500e-01}', "");
-    Expect(1, 8542, '\p{Numeric_Value=0.8750}', "");
-    Expect(0, 8542, '\p{^Numeric_Value=0.8750}', "");
-    Expect(0, 8542, '\P{Numeric_Value=0.8750}', "");
-    Expect(1, 8542, '\P{^Numeric_Value=0.8750}', "");
-    Expect(0, 8543, '\p{Numeric_Value=0.8750}', "");
-    Expect(1, 8543, '\p{^Numeric_Value=0.8750}', "");
-    Expect(1, 8543, '\P{Numeric_Value=0.8750}', "");
-    Expect(0, 8543, '\P{^Numeric_Value=0.8750}', "");
-    Error('\p{Nv=-0000000007/0008:=}');
-    Error('\P{Nv=-0000000007/0008:=}');
+    Expect(1, 8542, '\p{Numeric_Value:   0.8750}', "");
+    Expect(0, 8542, '\p{^Numeric_Value:   0.8750}', "");
+    Expect(0, 8542, '\P{Numeric_Value:   0.8750}', "");
+    Expect(1, 8542, '\P{^Numeric_Value:   0.8750}', "");
+    Expect(0, 8543, '\p{Numeric_Value:   0.8750}', "");
+    Expect(1, 8543, '\p{^Numeric_Value:   0.8750}', "");
+    Expect(1, 8543, '\P{Numeric_Value:   0.8750}', "");
+    Expect(0, 8543, '\P{^Numeric_Value:   0.8750}', "");
+    Error('\p{Nv=	/a/00007/8}');
+    Error('\P{Nv=	/a/00007/8}');
     Expect(1, 8542, '\p{Nv=:\A7/8\z:}', "");;
     Expect(0, 8543, '\p{Nv=:\A7/8\z:}', "");;
-    Expect(1, 8542, '\p{Nv=000000007/008}', "");
-    Expect(0, 8542, '\p{^Nv=000000007/008}', "");
-    Expect(0, 8542, '\P{Nv=000000007/008}', "");
-    Expect(1, 8542, '\P{^Nv=000000007/008}', "");
-    Expect(0, 8543, '\p{Nv=000000007/008}', "");
-    Expect(1, 8543, '\p{^Nv=000000007/008}', "");
-    Expect(1, 8543, '\P{Nv=000000007/008}', "");
-    Expect(0, 8543, '\P{^Nv=000000007/008}', "");
+    Expect(1, 8542, '\p{Nv=00007/0008}', "");
+    Expect(0, 8542, '\p{^Nv=00007/0008}', "");
+    Expect(0, 8542, '\P{Nv=00007/0008}', "");
+    Expect(1, 8542, '\P{^Nv=00007/0008}', "");
+    Expect(0, 8543, '\p{Nv=00007/0008}', "");
+    Expect(1, 8543, '\p{^Nv=00007/0008}', "");
+    Expect(1, 8543, '\P{Nv=00007/0008}', "");
+    Expect(0, 8543, '\P{^Nv=00007/0008}', "");
     Expect(1, 8542, '\p{Nv=420/480}', "");
     Expect(0, 8542, '\p{^Nv=420/480}', "");
     Expect(0, 8542, '\P{Nv=420/480}', "");
@@ -84093,18 +84683,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8543, '\p{^Nv=420/480}', "");
     Expect(1, 8543, '\P{Nv=420/480}', "");
     Expect(0, 8543, '\P{^Nv=420/480}', "");
-    Error('\p{Nv=8.8e-01}');
-    Error('\P{Nv=8.8e-01}');
-    Error('\p{Nv:0.9}');
-    Error('\P{Nv:0.9}');
-    Expect(1, 8542, '\p{Nv: 8.75e-01}', "");
-    Expect(0, 8542, '\p{^Nv: 8.75e-01}', "");
-    Expect(0, 8542, '\P{Nv: 8.75e-01}', "");
-    Expect(1, 8542, '\P{^Nv: 8.75e-01}', "");
-    Expect(0, 8543, '\p{Nv: 8.75e-01}', "");
-    Expect(1, 8543, '\p{^Nv: 8.75e-01}', "");
-    Expect(1, 8543, '\P{Nv: 8.75e-01}', "");
-    Expect(0, 8543, '\P{^Nv: 8.75e-01}', "");
+    Error('\p{Nv:   8.8e-01}');
+    Error('\P{Nv:   8.8e-01}');
+    Error('\p{Nv=0.9}');
+    Error('\P{Nv=0.9}');
+    Expect(1, 8542, '\p{Nv=8.75e-01}', "");
+    Expect(0, 8542, '\p{^Nv=8.75e-01}', "");
+    Expect(0, 8542, '\P{Nv=8.75e-01}', "");
+    Expect(1, 8542, '\P{^Nv=8.75e-01}', "");
+    Expect(0, 8543, '\p{Nv=8.75e-01}', "");
+    Expect(1, 8543, '\p{^Nv=8.75e-01}', "");
+    Expect(1, 8543, '\P{Nv=8.75e-01}', "");
+    Expect(0, 8543, '\P{^Nv=8.75e-01}', "");
     Error('\p{Nv=0.88}');
     Error('\P{Nv=0.88}');
     Expect(1, 8542, '\p{Nv=8.750e-01}', "");
@@ -84139,26 +84729,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8543, '\p{^Nv=0.8750}', "");
     Expect(1, 8543, '\P{Nv=0.8750}', "");
     Expect(0, 8543, '\P{^Nv=0.8750}', "");
-    Error('\p{Is_Numeric_Value=-:=+00007/8}');
-    Error('\P{Is_Numeric_Value=-:=+00007/8}');
-    Expect(1, 8542, '\p{Is_Numeric_Value=+7/0000008}', "");
-    Expect(0, 8542, '\p{^Is_Numeric_Value=+7/0000008}', "");
-    Expect(0, 8542, '\P{Is_Numeric_Value=+7/0000008}', "");
-    Expect(1, 8542, '\P{^Is_Numeric_Value=+7/0000008}', "");
-    Expect(0, 8543, '\p{Is_Numeric_Value=+7/0000008}', "");
-    Expect(1, 8543, '\p{^Is_Numeric_Value=+7/0000008}', "");
-    Expect(1, 8543, '\P{Is_Numeric_Value=+7/0000008}', "");
-    Expect(0, 8543, '\P{^Is_Numeric_Value=+7/0000008}', "");
-    Expect(1, 8542, '\p{Is_Numeric_Value=420/480}', "");
-    Expect(0, 8542, '\p{^Is_Numeric_Value=420/480}', "");
-    Expect(0, 8542, '\P{Is_Numeric_Value=420/480}', "");
-    Expect(1, 8542, '\P{^Is_Numeric_Value=420/480}', "");
-    Expect(0, 8543, '\p{Is_Numeric_Value=420/480}', "");
-    Expect(1, 8543, '\p{^Is_Numeric_Value=420/480}', "");
-    Expect(1, 8543, '\P{Is_Numeric_Value=420/480}', "");
-    Expect(0, 8543, '\P{^Is_Numeric_Value=420/480}', "");
-    Error('\p{Is_Numeric_Value=8.8e-01}');
-    Error('\P{Is_Numeric_Value=8.8e-01}');
+    Error('\p{Is_Numeric_Value=:=	7/0008}');
+    Error('\P{Is_Numeric_Value=:=	7/0008}');
+    Expect(1, 8542, '\p{Is_Numeric_Value=+0000007/08}', "");
+    Expect(0, 8542, '\p{^Is_Numeric_Value=+0000007/08}', "");
+    Expect(0, 8542, '\P{Is_Numeric_Value=+0000007/08}', "");
+    Expect(1, 8542, '\P{^Is_Numeric_Value=+0000007/08}', "");
+    Expect(0, 8543, '\p{Is_Numeric_Value=+0000007/08}', "");
+    Expect(1, 8543, '\p{^Is_Numeric_Value=+0000007/08}', "");
+    Expect(1, 8543, '\P{Is_Numeric_Value=+0000007/08}', "");
+    Expect(0, 8543, '\P{^Is_Numeric_Value=+0000007/08}', "");
+    Expect(1, 8542, '\p{Is_Numeric_Value:420/480}', "");
+    Expect(0, 8542, '\p{^Is_Numeric_Value:420/480}', "");
+    Expect(0, 8542, '\P{Is_Numeric_Value:420/480}', "");
+    Expect(1, 8542, '\P{^Is_Numeric_Value:420/480}', "");
+    Expect(0, 8543, '\p{Is_Numeric_Value:420/480}', "");
+    Expect(1, 8543, '\p{^Is_Numeric_Value:420/480}', "");
+    Expect(1, 8543, '\P{Is_Numeric_Value:420/480}', "");
+    Expect(0, 8543, '\P{^Is_Numeric_Value:420/480}', "");
+    Error('\p{Is_Numeric_Value: 8.8e-01}');
+    Error('\P{Is_Numeric_Value: 8.8e-01}');
     Error('\p{Is_Numeric_Value=0.9}');
     Error('\P{Is_Numeric_Value=0.9}');
     Expect(1, 8542, '\p{Is_Numeric_Value=8.75e-01}', "");
@@ -84169,8 +84759,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8543, '\p{^Is_Numeric_Value=8.75e-01}', "");
     Expect(1, 8543, '\P{Is_Numeric_Value=8.75e-01}', "");
     Expect(0, 8543, '\P{^Is_Numeric_Value=8.75e-01}', "");
-    Error('\p{Is_Numeric_Value:   0.88}');
-    Error('\P{Is_Numeric_Value:   0.88}');
+    Error('\p{Is_Numeric_Value=0.88}');
+    Error('\P{Is_Numeric_Value=0.88}');
     Expect(1, 8542, '\p{Is_Numeric_Value=8.750e-01}', "");
     Expect(0, 8542, '\p{^Is_Numeric_Value=8.750e-01}', "");
     Expect(0, 8542, '\P{Is_Numeric_Value=8.750e-01}', "");
@@ -84203,16 +84793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8543, '\p{^Is_Numeric_Value=0.8750}', "");
     Expect(1, 8543, '\P{Is_Numeric_Value=0.8750}', "");
     Expect(0, 8543, '\P{^Is_Numeric_Value=0.8750}', "");
-    Error('\p{Is_Nv= /a/07/00000008}');
-    Error('\P{Is_Nv= /a/07/00000008}');
-    Expect(1, 8542, '\p{Is_Nv=+0000000007/00008}', "");
-    Expect(0, 8542, '\p{^Is_Nv=+0000000007/00008}', "");
-    Expect(0, 8542, '\P{Is_Nv=+0000000007/00008}', "");
-    Expect(1, 8542, '\P{^Is_Nv=+0000000007/00008}', "");
-    Expect(0, 8543, '\p{Is_Nv=+0000000007/00008}', "");
-    Expect(1, 8543, '\p{^Is_Nv=+0000000007/00008}', "");
-    Expect(1, 8543, '\P{Is_Nv=+0000000007/00008}', "");
-    Expect(0, 8543, '\P{^Is_Nv=+0000000007/00008}', "");
+    Error('\p{Is_Nv=/a/-_0007/00000008}');
+    Error('\P{Is_Nv=/a/-_0007/00000008}');
+    Expect(1, 8542, '\p{Is_Nv=0000000007/0000000008}', "");
+    Expect(0, 8542, '\p{^Is_Nv=0000000007/0000000008}', "");
+    Expect(0, 8542, '\P{Is_Nv=0000000007/0000000008}', "");
+    Expect(1, 8542, '\P{^Is_Nv=0000000007/0000000008}', "");
+    Expect(0, 8543, '\p{Is_Nv=0000000007/0000000008}', "");
+    Expect(1, 8543, '\p{^Is_Nv=0000000007/0000000008}', "");
+    Expect(1, 8543, '\P{Is_Nv=0000000007/0000000008}', "");
+    Expect(0, 8543, '\P{^Is_Nv=0000000007/0000000008}', "");
     Expect(1, 8542, '\p{Is_Nv=420/480}', "");
     Expect(0, 8542, '\p{^Is_Nv=420/480}', "");
     Expect(0, 8542, '\P{Is_Nv=420/480}', "");
@@ -84235,14 +84825,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8543, '\P{^Is_Nv=8.75e-01}', "");
     Error('\p{Is_Nv=0.88}');
     Error('\P{Is_Nv=0.88}');
-    Expect(1, 8542, '\p{Is_Nv=8.750e-01}', "");
-    Expect(0, 8542, '\p{^Is_Nv=8.750e-01}', "");
-    Expect(0, 8542, '\P{Is_Nv=8.750e-01}', "");
-    Expect(1, 8542, '\P{^Is_Nv=8.750e-01}', "");
-    Expect(0, 8543, '\p{Is_Nv=8.750e-01}', "");
-    Expect(1, 8543, '\p{^Is_Nv=8.750e-01}', "");
-    Expect(1, 8543, '\P{Is_Nv=8.750e-01}', "");
-    Expect(0, 8543, '\P{^Is_Nv=8.750e-01}', "");
+    Expect(1, 8542, '\p{Is_Nv: 8.750e-01}', "");
+    Expect(0, 8542, '\p{^Is_Nv: 8.750e-01}', "");
+    Expect(0, 8542, '\P{Is_Nv: 8.750e-01}', "");
+    Expect(1, 8542, '\P{^Is_Nv: 8.750e-01}', "");
+    Expect(0, 8543, '\p{Is_Nv: 8.750e-01}', "");
+    Expect(1, 8543, '\p{^Is_Nv: 8.750e-01}', "");
+    Expect(1, 8543, '\P{Is_Nv: 8.750e-01}', "");
+    Expect(0, 8543, '\P{^Is_Nv: 8.750e-01}', "");
     Expect(1, 8542, '\p{Is_Nv=0.875}', "");
     Expect(0, 8542, '\p{^Is_Nv=0.875}', "");
     Expect(0, 8542, '\P{Is_Nv=0.875}', "");
@@ -84267,18 +84857,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8543, '\p{^Is_Nv=0.8750}', "");
     Expect(1, 8543, '\P{Is_Nv=0.8750}', "");
     Expect(0, 8543, '\P{^Is_Nv=0.8750}', "");
-    Error('\p{Numeric_Value=-/a/+0000000070}');
-    Error('\P{Numeric_Value=-/a/+0000000070}');
+    Error('\p{Numeric_Value=/a/7_0}');
+    Error('\P{Numeric_Value=/a/7_0}');
     Expect(1, 126224, '\p{Numeric_Value=:\A70\z:}', "");;
     Expect(0, 126225, '\p{Numeric_Value=:\A70\z:}', "");;
-    Expect(1, 126224, '\p{Numeric_Value=+0_0_0_0_070}', "");
-    Expect(0, 126224, '\p{^Numeric_Value=+0_0_0_0_070}', "");
-    Expect(0, 126224, '\P{Numeric_Value=+0_0_0_0_070}', "");
-    Expect(1, 126224, '\P{^Numeric_Value=+0_0_0_0_070}', "");
-    Expect(0, 126225, '\p{Numeric_Value=+0_0_0_0_070}', "");
-    Expect(1, 126225, '\p{^Numeric_Value=+0_0_0_0_070}', "");
-    Expect(1, 126225, '\P{Numeric_Value=+0_0_0_0_070}', "");
-    Expect(0, 126225, '\P{^Numeric_Value=+0_0_0_0_070}', "");
+    Expect(1, 126224, '\p{Numeric_Value:0000_0007_0}', "");
+    Expect(0, 126224, '\p{^Numeric_Value:0000_0007_0}', "");
+    Expect(0, 126224, '\P{Numeric_Value:0000_0007_0}', "");
+    Expect(1, 126224, '\P{^Numeric_Value:0000_0007_0}', "");
+    Expect(0, 126225, '\p{Numeric_Value:0000_0007_0}', "");
+    Expect(1, 126225, '\p{^Numeric_Value:0000_0007_0}', "");
+    Expect(1, 126225, '\P{Numeric_Value:0000_0007_0}', "");
+    Expect(0, 126225, '\P{^Numeric_Value:0000_0007_0}', "");
     Expect(1, 126224, '\p{Numeric_Value=7.000000000000000e+01}', "");
     Expect(0, 126224, '\p{^Numeric_Value=7.000000000000000e+01}', "");
     Expect(0, 126224, '\P{Numeric_Value=7.000000000000000e+01}', "");
@@ -84287,18 +84877,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126225, '\p{^Numeric_Value=7.000000000000000e+01}', "");
     Expect(1, 126225, '\P{Numeric_Value=7.000000000000000e+01}', "");
     Expect(0, 126225, '\P{^Numeric_Value=7.000000000000000e+01}', "");
-    Error('\p{Nv=_	+0007_0:=}');
-    Error('\P{Nv=_	+0007_0:=}');
+    Error('\p{Nv= :=000000070}');
+    Error('\P{Nv= :=000000070}');
     Expect(1, 126224, '\p{Nv=:\A70\z:}', "");;
     Expect(0, 126225, '\p{Nv=:\A70\z:}', "");;
-    Expect(1, 126224, '\p{Nv:	000000070}', "");
-    Expect(0, 126224, '\p{^Nv:	000000070}', "");
-    Expect(0, 126224, '\P{Nv:	000000070}', "");
-    Expect(1, 126224, '\P{^Nv:	000000070}', "");
-    Expect(0, 126225, '\p{Nv:	000000070}', "");
-    Expect(1, 126225, '\p{^Nv:	000000070}', "");
-    Expect(1, 126225, '\P{Nv:	000000070}', "");
-    Expect(0, 126225, '\P{^Nv:	000000070}', "");
+    Expect(1, 126224, '\p{Nv:   +0_0_70}', "");
+    Expect(0, 126224, '\p{^Nv:   +0_0_70}', "");
+    Expect(0, 126224, '\P{Nv:   +0_0_70}', "");
+    Expect(1, 126224, '\P{^Nv:   +0_0_70}', "");
+    Expect(0, 126225, '\p{Nv:   +0_0_70}', "");
+    Expect(1, 126225, '\p{^Nv:   +0_0_70}', "");
+    Expect(1, 126225, '\P{Nv:   +0_0_70}', "");
+    Expect(0, 126225, '\P{^Nv:   +0_0_70}', "");
     Expect(1, 126224, '\p{Nv=7.000000000000000e+01}', "");
     Expect(0, 126224, '\p{^Nv=7.000000000000000e+01}', "");
     Expect(0, 126224, '\P{Nv=7.000000000000000e+01}', "");
@@ -84307,54 +84897,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126225, '\p{^Nv=7.000000000000000e+01}', "");
     Expect(1, 126225, '\P{Nv=7.000000000000000e+01}', "");
     Expect(0, 126225, '\P{^Nv=7.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value:	- 0070/a/}');
-    Error('\P{Is_Numeric_Value:	- 0070/a/}');
-    Expect(1, 126224, '\p{Is_Numeric_Value=00070}', "");
-    Expect(0, 126224, '\p{^Is_Numeric_Value=00070}', "");
-    Expect(0, 126224, '\P{Is_Numeric_Value=00070}', "");
-    Expect(1, 126224, '\P{^Is_Numeric_Value=00070}', "");
-    Expect(0, 126225, '\p{Is_Numeric_Value=00070}', "");
-    Expect(1, 126225, '\p{^Is_Numeric_Value=00070}', "");
-    Expect(1, 126225, '\P{Is_Numeric_Value=00070}', "");
-    Expect(0, 126225, '\P{^Is_Numeric_Value=00070}', "");
-    Expect(1, 126224, '\p{Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(0, 126224, '\p{^Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(0, 126224, '\P{Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(1, 126224, '\P{^Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(0, 126225, '\p{Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(1, 126225, '\p{^Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(1, 126225, '\P{Is_Numeric_Value:7.000000000000000e+01}', "");
-    Expect(0, 126225, '\P{^Is_Numeric_Value:7.000000000000000e+01}', "");
-    Error('\p{Is_Nv=-+00000000070:=}');
-    Error('\P{Is_Nv=-+00000000070:=}');
-    Expect(1, 126224, '\p{Is_Nv=00000000070}', "");
-    Expect(0, 126224, '\p{^Is_Nv=00000000070}', "");
-    Expect(0, 126224, '\P{Is_Nv=00000000070}', "");
-    Expect(1, 126224, '\P{^Is_Nv=00000000070}', "");
-    Expect(0, 126225, '\p{Is_Nv=00000000070}', "");
-    Expect(1, 126225, '\p{^Is_Nv=00000000070}', "");
-    Expect(1, 126225, '\P{Is_Nv=00000000070}', "");
-    Expect(0, 126225, '\P{^Is_Nv=00000000070}', "");
-    Expect(1, 126224, '\p{Is_Nv=7.000000000000000e+01}', "");
-    Expect(0, 126224, '\p{^Is_Nv=7.000000000000000e+01}', "");
-    Expect(0, 126224, '\P{Is_Nv=7.000000000000000e+01}', "");
-    Expect(1, 126224, '\P{^Is_Nv=7.000000000000000e+01}', "");
-    Expect(0, 126225, '\p{Is_Nv=7.000000000000000e+01}', "");
-    Expect(1, 126225, '\p{^Is_Nv=7.000000000000000e+01}', "");
-    Expect(1, 126225, '\P{Is_Nv=7.000000000000000e+01}', "");
-    Expect(0, 126225, '\P{^Is_Nv=7.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=	/a/0_0_0_0_0_0700}');
-    Error('\P{Numeric_Value=	/a/0_0_0_0_0_0700}');
+    Error('\p{Is_Numeric_Value= 00000000070/a/}');
+    Error('\P{Is_Numeric_Value= 00000000070/a/}');
+    Expect(1, 126224, '\p{Is_Numeric_Value:   70}', "");
+    Expect(0, 126224, '\p{^Is_Numeric_Value:   70}', "");
+    Expect(0, 126224, '\P{Is_Numeric_Value:   70}', "");
+    Expect(1, 126224, '\P{^Is_Numeric_Value:   70}', "");
+    Expect(0, 126225, '\p{Is_Numeric_Value:   70}', "");
+    Expect(1, 126225, '\p{^Is_Numeric_Value:   70}', "");
+    Expect(1, 126225, '\P{Is_Numeric_Value:   70}', "");
+    Expect(0, 126225, '\P{^Is_Numeric_Value:   70}', "");
+    Expect(1, 126224, '\p{Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(0, 126224, '\p{^Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(0, 126224, '\P{Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(1, 126224, '\P{^Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(0, 126225, '\p{Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(1, 126225, '\p{^Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(1, 126225, '\P{Is_Numeric_Value=7.000000000000000e+01}', "");
+    Expect(0, 126225, '\P{^Is_Numeric_Value=7.000000000000000e+01}', "");
+    Error('\p{Is_Nv=  0070/a/}');
+    Error('\P{Is_Nv=  0070/a/}');
+    Expect(1, 126224, '\p{Is_Nv=0_0_0_0_0070}', "");
+    Expect(0, 126224, '\p{^Is_Nv=0_0_0_0_0070}', "");
+    Expect(0, 126224, '\P{Is_Nv=0_0_0_0_0070}', "");
+    Expect(1, 126224, '\P{^Is_Nv=0_0_0_0_0070}', "");
+    Expect(0, 126225, '\p{Is_Nv=0_0_0_0_0070}', "");
+    Expect(1, 126225, '\p{^Is_Nv=0_0_0_0_0070}', "");
+    Expect(1, 126225, '\P{Is_Nv=0_0_0_0_0070}', "");
+    Expect(0, 126225, '\P{^Is_Nv=0_0_0_0_0070}', "");
+    Expect(1, 126224, '\p{Is_Nv:7.000000000000000e+01}', "");
+    Expect(0, 126224, '\p{^Is_Nv:7.000000000000000e+01}', "");
+    Expect(0, 126224, '\P{Is_Nv:7.000000000000000e+01}', "");
+    Expect(1, 126224, '\P{^Is_Nv:7.000000000000000e+01}', "");
+    Expect(0, 126225, '\p{Is_Nv:7.000000000000000e+01}', "");
+    Expect(1, 126225, '\p{^Is_Nv:7.000000000000000e+01}', "");
+    Expect(1, 126225, '\P{Is_Nv:7.000000000000000e+01}', "");
+    Expect(0, 126225, '\P{^Is_Nv:7.000000000000000e+01}', "");
+    Error('\p{Numeric_Value=/a/  +000000000700}');
+    Error('\P{Numeric_Value=/a/  +000000000700}');
     Expect(1, 126233, '\p{Numeric_Value=:\A700\z:}', "");;
     Expect(0, 126234, '\p{Numeric_Value=:\A700\z:}', "");;
-    Expect(1, 126233, '\p{Numeric_Value=0_7_00}', "");
-    Expect(0, 126233, '\p{^Numeric_Value=0_7_00}', "");
-    Expect(0, 126233, '\P{Numeric_Value=0_7_00}', "");
-    Expect(1, 126233, '\P{^Numeric_Value=0_7_00}', "");
-    Expect(0, 126234, '\p{Numeric_Value=0_7_00}', "");
-    Expect(1, 126234, '\p{^Numeric_Value=0_7_00}', "");
-    Expect(1, 126234, '\P{Numeric_Value=0_7_00}', "");
-    Expect(0, 126234, '\P{^Numeric_Value=0_7_00}', "");
+    Expect(1, 126233, '\p{Numeric_Value:+00000000700}', "");
+    Expect(0, 126233, '\p{^Numeric_Value:+00000000700}', "");
+    Expect(0, 126233, '\P{Numeric_Value:+00000000700}', "");
+    Expect(1, 126233, '\P{^Numeric_Value:+00000000700}', "");
+    Expect(0, 126234, '\p{Numeric_Value:+00000000700}', "");
+    Expect(1, 126234, '\p{^Numeric_Value:+00000000700}', "");
+    Expect(1, 126234, '\P{Numeric_Value:+00000000700}', "");
+    Expect(0, 126234, '\P{^Numeric_Value:+00000000700}', "");
     Expect(1, 126233, '\p{Numeric_Value=7.000000000000000e+02}', "");
     Expect(0, 126233, '\p{^Numeric_Value=7.000000000000000e+02}', "");
     Expect(0, 126233, '\P{Numeric_Value=7.000000000000000e+02}', "");
@@ -84363,18 +84953,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126234, '\p{^Numeric_Value=7.000000000000000e+02}', "");
     Expect(1, 126234, '\P{Numeric_Value=7.000000000000000e+02}', "");
     Expect(0, 126234, '\P{^Numeric_Value=7.000000000000000e+02}', "");
-    Error('\p{Nv=/a/-000000700}');
-    Error('\P{Nv=/a/-000000700}');
+    Error('\p{Nv=_-0000700/a/}');
+    Error('\P{Nv=_-0000700/a/}');
     Expect(1, 126233, '\p{Nv=:\A700\z:}', "");;
     Expect(0, 126234, '\p{Nv=:\A700\z:}', "");;
-    Expect(1, 126233, '\p{Nv=+0000000700}', "");
-    Expect(0, 126233, '\p{^Nv=+0000000700}', "");
-    Expect(0, 126233, '\P{Nv=+0000000700}', "");
-    Expect(1, 126233, '\P{^Nv=+0000000700}', "");
-    Expect(0, 126234, '\p{Nv=+0000000700}', "");
-    Expect(1, 126234, '\p{^Nv=+0000000700}', "");
-    Expect(1, 126234, '\P{Nv=+0000000700}', "");
-    Expect(0, 126234, '\P{^Nv=+0000000700}', "");
+    Expect(1, 126233, '\p{Nv=+0700}', "");
+    Expect(0, 126233, '\p{^Nv=+0700}', "");
+    Expect(0, 126233, '\P{Nv=+0700}', "");
+    Expect(1, 126233, '\P{^Nv=+0700}', "");
+    Expect(0, 126234, '\p{Nv=+0700}', "");
+    Expect(1, 126234, '\p{^Nv=+0700}', "");
+    Expect(1, 126234, '\P{Nv=+0700}', "");
+    Expect(0, 126234, '\P{^Nv=+0700}', "");
     Expect(1, 126233, '\p{Nv=7.000000000000000e+02}', "");
     Expect(0, 126233, '\p{^Nv=7.000000000000000e+02}', "");
     Expect(0, 126233, '\P{Nv=7.000000000000000e+02}', "");
@@ -84383,54 +84973,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126234, '\p{^Nv=7.000000000000000e+02}', "");
     Expect(1, 126234, '\P{Nv=7.000000000000000e+02}', "");
     Expect(0, 126234, '\P{^Nv=7.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value=:=+0000000700}');
-    Error('\P{Is_Numeric_Value=:=+0000000700}');
-    Expect(1, 126233, '\p{Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(0, 126233, '\p{^Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(0, 126233, '\P{Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(1, 126233, '\P{^Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(0, 126234, '\p{Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(1, 126234, '\p{^Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(1, 126234, '\P{Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(0, 126234, '\P{^Is_Numeric_Value=0_0_0_0_0_00700}', "");
-    Expect(1, 126233, '\p{Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(0, 126233, '\p{^Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(0, 126233, '\P{Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(1, 126233, '\P{^Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(0, 126234, '\p{Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(1, 126234, '\p{^Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(1, 126234, '\P{Is_Numeric_Value=7.000000000000000e+02}', "");
-    Expect(0, 126234, '\P{^Is_Numeric_Value=7.000000000000000e+02}', "");
-    Error('\p{Is_Nv= 00_07_00/a/}');
-    Error('\P{Is_Nv= 00_07_00/a/}');
-    Expect(1, 126233, '\p{Is_Nv=70_0}', "");
-    Expect(0, 126233, '\p{^Is_Nv=70_0}', "");
-    Expect(0, 126233, '\P{Is_Nv=70_0}', "");
-    Expect(1, 126233, '\P{^Is_Nv=70_0}', "");
-    Expect(0, 126234, '\p{Is_Nv=70_0}', "");
-    Expect(1, 126234, '\p{^Is_Nv=70_0}', "");
-    Expect(1, 126234, '\P{Is_Nv=70_0}', "");
-    Expect(0, 126234, '\P{^Is_Nv=70_0}', "");
-    Expect(1, 126233, '\p{Is_Nv=7.000000000000000e+02}', "");
-    Expect(0, 126233, '\p{^Is_Nv=7.000000000000000e+02}', "");
-    Expect(0, 126233, '\P{Is_Nv=7.000000000000000e+02}', "");
-    Expect(1, 126233, '\P{^Is_Nv=7.000000000000000e+02}', "");
-    Expect(0, 126234, '\p{Is_Nv=7.000000000000000e+02}', "");
-    Expect(1, 126234, '\p{^Is_Nv=7.000000000000000e+02}', "");
-    Expect(1, 126234, '\P{Is_Nv=7.000000000000000e+02}', "");
-    Expect(0, 126234, '\P{^Is_Nv=7.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=-_00007000:=}');
-    Error('\P{Numeric_Value=-_00007000:=}');
+    Error('\p{Is_Numeric_Value=:=	+000700}');
+    Error('\P{Is_Numeric_Value=:=	+000700}');
+    Expect(1, 126233, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(0, 126233, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(0, 126233, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(1, 126233, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(0, 126234, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(1, 126234, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(1, 126234, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(0, 126234, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_0_0_7_00}', "");
+    Expect(1, 126233, '\p{Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(0, 126233, '\p{^Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(0, 126233, '\P{Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(1, 126233, '\P{^Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(0, 126234, '\p{Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(1, 126234, '\p{^Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(1, 126234, '\P{Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Expect(0, 126234, '\P{^Is_Numeric_Value:	7.000000000000000e+02}', "");
+    Error('\p{Is_Nv=:=	_00000000700}');
+    Error('\P{Is_Nv=:=	_00000000700}');
+    Expect(1, 126233, '\p{Is_Nv=000700}', "");
+    Expect(0, 126233, '\p{^Is_Nv=000700}', "");
+    Expect(0, 126233, '\P{Is_Nv=000700}', "");
+    Expect(1, 126233, '\P{^Is_Nv=000700}', "");
+    Expect(0, 126234, '\p{Is_Nv=000700}', "");
+    Expect(1, 126234, '\p{^Is_Nv=000700}', "");
+    Expect(1, 126234, '\P{Is_Nv=000700}', "");
+    Expect(0, 126234, '\P{^Is_Nv=000700}', "");
+    Expect(1, 126233, '\p{Is_Nv:	7.000000000000000e+02}', "");
+    Expect(0, 126233, '\p{^Is_Nv:	7.000000000000000e+02}', "");
+    Expect(0, 126233, '\P{Is_Nv:	7.000000000000000e+02}', "");
+    Expect(1, 126233, '\P{^Is_Nv:	7.000000000000000e+02}', "");
+    Expect(0, 126234, '\p{Is_Nv:	7.000000000000000e+02}', "");
+    Expect(1, 126234, '\p{^Is_Nv:	7.000000000000000e+02}', "");
+    Expect(1, 126234, '\P{Is_Nv:	7.000000000000000e+02}', "");
+    Expect(0, 126234, '\P{^Is_Nv:	7.000000000000000e+02}', "");
+    Error('\p{Numeric_Value= -+0_0_0_0_0_0_0_0_7000:=}');
+    Error('\P{Numeric_Value= -+0_0_0_0_0_0_0_0_7000:=}');
     Expect(1, 126242, '\p{Numeric_Value=:\A7000\z:}', "");;
     Expect(0, 126243, '\p{Numeric_Value=:\A7000\z:}', "");;
-    Expect(1, 126242, '\p{Numeric_Value=00_07_00_0}', "");
-    Expect(0, 126242, '\p{^Numeric_Value=00_07_00_0}', "");
-    Expect(0, 126242, '\P{Numeric_Value=00_07_00_0}', "");
-    Expect(1, 126242, '\P{^Numeric_Value=00_07_00_0}', "");
-    Expect(0, 126243, '\p{Numeric_Value=00_07_00_0}', "");
-    Expect(1, 126243, '\p{^Numeric_Value=00_07_00_0}', "");
-    Expect(1, 126243, '\P{Numeric_Value=00_07_00_0}', "");
-    Expect(0, 126243, '\P{^Numeric_Value=00_07_00_0}', "");
+    Expect(1, 126242, '\p{Numeric_Value=000_000_700_0}', "");
+    Expect(0, 126242, '\p{^Numeric_Value=000_000_700_0}', "");
+    Expect(0, 126242, '\P{Numeric_Value=000_000_700_0}', "");
+    Expect(1, 126242, '\P{^Numeric_Value=000_000_700_0}', "");
+    Expect(0, 126243, '\p{Numeric_Value=000_000_700_0}', "");
+    Expect(1, 126243, '\p{^Numeric_Value=000_000_700_0}', "");
+    Expect(1, 126243, '\P{Numeric_Value=000_000_700_0}', "");
+    Expect(0, 126243, '\P{^Numeric_Value=000_000_700_0}', "");
     Expect(1, 126242, '\p{Numeric_Value=7.000000000000000e+03}', "");
     Expect(0, 126242, '\p{^Numeric_Value=7.000000000000000e+03}', "");
     Expect(0, 126242, '\P{Numeric_Value=7.000000000000000e+03}', "");
@@ -84439,18 +85029,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126243, '\p{^Numeric_Value=7.000000000000000e+03}', "");
     Expect(1, 126243, '\P{Numeric_Value=7.000000000000000e+03}', "");
     Expect(0, 126243, '\P{^Numeric_Value=7.000000000000000e+03}', "");
-    Error('\p{Nv=07000:=}');
-    Error('\P{Nv=07000:=}');
+    Error('\p{Nv:	:=_-0_0_0_0_0_0_0_0_7_0_00}');
+    Error('\P{Nv:	:=_-0_0_0_0_0_0_0_0_7_0_00}');
     Expect(1, 126242, '\p{Nv=:\A7000\z:}', "");;
     Expect(0, 126243, '\p{Nv=:\A7000\z:}', "");;
-    Expect(1, 126242, '\p{Nv=+00000_00070_00}', "");
-    Expect(0, 126242, '\p{^Nv=+00000_00070_00}', "");
-    Expect(0, 126242, '\P{Nv=+00000_00070_00}', "");
-    Expect(1, 126242, '\P{^Nv=+00000_00070_00}', "");
-    Expect(0, 126243, '\p{Nv=+00000_00070_00}', "");
-    Expect(1, 126243, '\p{^Nv=+00000_00070_00}', "");
-    Expect(1, 126243, '\P{Nv=+00000_00070_00}', "");
-    Expect(0, 126243, '\P{^Nv=+00000_00070_00}', "");
+    Expect(1, 126242, '\p{Nv=000700_0}', "");
+    Expect(0, 126242, '\p{^Nv=000700_0}', "");
+    Expect(0, 126242, '\P{Nv=000700_0}', "");
+    Expect(1, 126242, '\P{^Nv=000700_0}', "");
+    Expect(0, 126243, '\p{Nv=000700_0}', "");
+    Expect(1, 126243, '\p{^Nv=000700_0}', "");
+    Expect(1, 126243, '\P{Nv=000700_0}', "");
+    Expect(0, 126243, '\P{^Nv=000700_0}', "");
     Expect(1, 126242, '\p{Nv=7.000000000000000e+03}', "");
     Expect(0, 126242, '\p{^Nv=7.000000000000000e+03}', "");
     Expect(0, 126242, '\P{Nv=7.000000000000000e+03}', "");
@@ -84459,34 +85049,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126243, '\p{^Nv=7.000000000000000e+03}', "");
     Expect(1, 126243, '\P{Nv=7.000000000000000e+03}', "");
     Expect(0, 126243, '\P{^Nv=7.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value= /a/0_0_0_0_0_0_007000}');
-    Error('\P{Is_Numeric_Value= /a/0_0_0_0_0_0_007000}');
-    Expect(1, 126242, '\p{Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(0, 126242, '\p{^Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(0, 126242, '\P{Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(1, 126242, '\P{^Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(0, 126243, '\p{Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(1, 126243, '\p{^Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(1, 126243, '\P{Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(0, 126243, '\P{^Is_Numeric_Value=0_0_0_7_0_00}', "");
-    Expect(1, 126242, '\p{Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(0, 126242, '\p{^Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(0, 126242, '\P{Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(1, 126242, '\P{^Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(0, 126243, '\p{Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(1, 126243, '\p{^Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(1, 126243, '\P{Is_Numeric_Value=7.000000000000000e+03}', "");
-    Expect(0, 126243, '\P{^Is_Numeric_Value=7.000000000000000e+03}', "");
-    Error('\p{Is_Nv=	 0700_0:=}');
-    Error('\P{Is_Nv=	 0700_0:=}');
-    Expect(1, 126242, '\p{Is_Nv=000_000_000_700_0}', "");
-    Expect(0, 126242, '\p{^Is_Nv=000_000_000_700_0}', "");
-    Expect(0, 126242, '\P{Is_Nv=000_000_000_700_0}', "");
-    Expect(1, 126242, '\P{^Is_Nv=000_000_000_700_0}', "");
-    Expect(0, 126243, '\p{Is_Nv=000_000_000_700_0}', "");
-    Expect(1, 126243, '\p{^Is_Nv=000_000_000_700_0}', "");
-    Expect(1, 126243, '\P{Is_Nv=000_000_000_700_0}', "");
-    Expect(0, 126243, '\P{^Is_Nv=000_000_000_700_0}', "");
+    Error('\p{Is_Numeric_Value= :=+000000007000}');
+    Error('\P{Is_Numeric_Value= :=+000000007000}');
+    Expect(1, 126242, '\p{Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(0, 126242, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(0, 126242, '\P{Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(1, 126242, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(0, 126243, '\p{Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(1, 126243, '\p{^Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(1, 126243, '\P{Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(0, 126243, '\P{^Is_Numeric_Value=+0_0_0_0_0_0_7000}', "");
+    Expect(1, 126242, '\p{Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(0, 126242, '\p{^Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(0, 126242, '\P{Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(1, 126242, '\P{^Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(0, 126243, '\p{Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(1, 126243, '\p{^Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(1, 126243, '\P{Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Expect(0, 126243, '\P{^Is_Numeric_Value:   7.000000000000000e+03}', "");
+    Error('\p{Is_Nv= /a/00_70_00}');
+    Error('\P{Is_Nv= /a/00_70_00}');
+    Expect(1, 126242, '\p{Is_Nv=+000000007000}', "");
+    Expect(0, 126242, '\p{^Is_Nv=+000000007000}', "");
+    Expect(0, 126242, '\P{Is_Nv=+000000007000}', "");
+    Expect(1, 126242, '\P{^Is_Nv=+000000007000}', "");
+    Expect(0, 126243, '\p{Is_Nv=+000000007000}', "");
+    Expect(1, 126243, '\p{^Is_Nv=+000000007000}', "");
+    Expect(1, 126243, '\P{Is_Nv=+000000007000}', "");
+    Expect(0, 126243, '\P{^Is_Nv=+000000007000}', "");
     Expect(1, 126242, '\p{Is_Nv=7.000000000000000e+03}', "");
     Expect(0, 126242, '\p{^Is_Nv=7.000000000000000e+03}', "");
     Expect(0, 126242, '\P{Is_Nv=7.000000000000000e+03}', "");
@@ -84495,18 +85085,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126243, '\p{^Is_Nv=7.000000000000000e+03}', "");
     Expect(1, 126243, '\P{Is_Nv=7.000000000000000e+03}', "");
     Expect(0, 126243, '\P{^Is_Nv=7.000000000000000e+03}', "");
-    Error('\p{Numeric_Value=-/a/+0000070000}');
-    Error('\P{Numeric_Value=-/a/+0000070000}');
+    Error('\p{Numeric_Value=/a/	 +000000007000_0}');
+    Error('\P{Numeric_Value=/a/	 +000000007000_0}');
     Expect(1, 126251, '\p{Numeric_Value=:\A70000\z:}', "");;
     Expect(0, 126252, '\p{Numeric_Value=:\A70000\z:}', "");;
-    Expect(1, 126251, '\p{Numeric_Value=000000070000}', "");
-    Expect(0, 126251, '\p{^Numeric_Value=000000070000}', "");
-    Expect(0, 126251, '\P{Numeric_Value=000000070000}', "");
-    Expect(1, 126251, '\P{^Numeric_Value=000000070000}', "");
-    Expect(0, 126252, '\p{Numeric_Value=000000070000}', "");
-    Expect(1, 126252, '\p{^Numeric_Value=000000070000}', "");
-    Expect(1, 126252, '\P{Numeric_Value=000000070000}', "");
-    Expect(0, 126252, '\P{^Numeric_Value=000000070000}', "");
+    Expect(1, 126251, '\p{Numeric_Value=00_00_70_00_0}', "");
+    Expect(0, 126251, '\p{^Numeric_Value=00_00_70_00_0}', "");
+    Expect(0, 126251, '\P{Numeric_Value=00_00_70_00_0}', "");
+    Expect(1, 126251, '\P{^Numeric_Value=00_00_70_00_0}', "");
+    Expect(0, 126252, '\p{Numeric_Value=00_00_70_00_0}', "");
+    Expect(1, 126252, '\p{^Numeric_Value=00_00_70_00_0}', "");
+    Expect(1, 126252, '\P{Numeric_Value=00_00_70_00_0}', "");
+    Expect(0, 126252, '\P{^Numeric_Value=00_00_70_00_0}', "");
     Expect(1, 126251, '\p{Numeric_Value=7.000000000000000e+04}', "");
     Expect(0, 126251, '\p{^Numeric_Value=7.000000000000000e+04}', "");
     Expect(0, 126251, '\P{Numeric_Value=7.000000000000000e+04}', "");
@@ -84515,18 +85105,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126252, '\p{^Numeric_Value=7.000000000000000e+04}', "");
     Expect(1, 126252, '\P{Numeric_Value=7.000000000000000e+04}', "");
     Expect(0, 126252, '\P{^Numeric_Value=7.000000000000000e+04}', "");
-    Error('\p{Nv:	-/a/070000}');
-    Error('\P{Nv:	-/a/070000}');
+    Error('\p{Nv=_	0000000070000/a/}');
+    Error('\P{Nv=_	0000000070000/a/}');
     Expect(1, 126251, '\p{Nv=:\A70000\z:}', "");;
     Expect(0, 126252, '\p{Nv=:\A70000\z:}', "");;
-    Expect(1, 126251, '\p{Nv=070000}', "");
-    Expect(0, 126251, '\p{^Nv=070000}', "");
-    Expect(0, 126251, '\P{Nv=070000}', "");
-    Expect(1, 126251, '\P{^Nv=070000}', "");
-    Expect(0, 126252, '\p{Nv=070000}', "");
-    Expect(1, 126252, '\p{^Nv=070000}', "");
-    Expect(1, 126252, '\P{Nv=070000}', "");
-    Expect(0, 126252, '\P{^Nv=070000}', "");
+    Expect(1, 126251, '\p{Nv=+0_0_0_0_7_0000}', "");
+    Expect(0, 126251, '\p{^Nv=+0_0_0_0_7_0000}', "");
+    Expect(0, 126251, '\P{Nv=+0_0_0_0_7_0000}', "");
+    Expect(1, 126251, '\P{^Nv=+0_0_0_0_7_0000}', "");
+    Expect(0, 126252, '\p{Nv=+0_0_0_0_7_0000}', "");
+    Expect(1, 126252, '\p{^Nv=+0_0_0_0_7_0000}', "");
+    Expect(1, 126252, '\P{Nv=+0_0_0_0_7_0000}', "");
+    Expect(0, 126252, '\P{^Nv=+0_0_0_0_7_0000}', "");
     Expect(1, 126251, '\p{Nv=7.000000000000000e+04}', "");
     Expect(0, 126251, '\p{^Nv=7.000000000000000e+04}', "");
     Expect(0, 126251, '\P{Nv=7.000000000000000e+04}', "");
@@ -84535,16 +85125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126252, '\p{^Nv=7.000000000000000e+04}', "");
     Expect(1, 126252, '\P{Nv=7.000000000000000e+04}', "");
     Expect(0, 126252, '\P{^Nv=7.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value:	 _+0_0_0_0_0_0_0_0_70000:=}');
-    Error('\P{Is_Numeric_Value:	 _+0_0_0_0_0_0_0_0_70000:=}');
-    Expect(1, 126251, '\p{Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(0, 126251, '\p{^Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(0, 126251, '\P{Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(1, 126251, '\P{^Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(0, 126252, '\p{Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(1, 126252, '\p{^Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(1, 126252, '\P{Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
-    Expect(0, 126252, '\P{^Is_Numeric_Value=0_0_0_0_0_0_70000}', "");
+    Error('\p{Is_Numeric_Value=	-00_70_00_0/a/}');
+    Error('\P{Is_Numeric_Value=	-00_70_00_0/a/}');
+    Expect(1, 126251, '\p{Is_Numeric_Value:   00000070000}', "");
+    Expect(0, 126251, '\p{^Is_Numeric_Value:   00000070000}', "");
+    Expect(0, 126251, '\P{Is_Numeric_Value:   00000070000}', "");
+    Expect(1, 126251, '\P{^Is_Numeric_Value:   00000070000}', "");
+    Expect(0, 126252, '\p{Is_Numeric_Value:   00000070000}', "");
+    Expect(1, 126252, '\p{^Is_Numeric_Value:   00000070000}', "");
+    Expect(1, 126252, '\P{Is_Numeric_Value:   00000070000}', "");
+    Expect(0, 126252, '\P{^Is_Numeric_Value:   00000070000}', "");
     Expect(1, 126251, '\p{Is_Numeric_Value=7.000000000000000e+04}', "");
     Expect(0, 126251, '\p{^Is_Numeric_Value=7.000000000000000e+04}', "");
     Expect(0, 126251, '\P{Is_Numeric_Value=7.000000000000000e+04}', "");
@@ -84553,36 +85143,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126252, '\p{^Is_Numeric_Value=7.000000000000000e+04}', "");
     Expect(1, 126252, '\P{Is_Numeric_Value=7.000000000000000e+04}', "");
     Expect(0, 126252, '\P{^Is_Numeric_Value=7.000000000000000e+04}', "");
-    Error('\p{Is_Nv=  +00_00_70_00_0:=}');
-    Error('\P{Is_Nv=  +00_00_70_00_0:=}');
-    Expect(1, 126251, '\p{Is_Nv=070000}', "");
-    Expect(0, 126251, '\p{^Is_Nv=070000}', "");
-    Expect(0, 126251, '\P{Is_Nv=070000}', "");
-    Expect(1, 126251, '\P{^Is_Nv=070000}', "");
-    Expect(0, 126252, '\p{Is_Nv=070000}', "");
-    Expect(1, 126252, '\p{^Is_Nv=070000}', "");
-    Expect(1, 126252, '\P{Is_Nv=070000}', "");
-    Expect(0, 126252, '\P{^Is_Nv=070000}', "");
-    Expect(1, 126251, '\p{Is_Nv=7.000000000000000e+04}', "");
-    Expect(0, 126251, '\p{^Is_Nv=7.000000000000000e+04}', "");
-    Expect(0, 126251, '\P{Is_Nv=7.000000000000000e+04}', "");
-    Expect(1, 126251, '\P{^Is_Nv=7.000000000000000e+04}', "");
-    Expect(0, 126252, '\p{Is_Nv=7.000000000000000e+04}', "");
-    Expect(1, 126252, '\p{^Is_Nv=7.000000000000000e+04}', "");
-    Expect(1, 126252, '\P{Is_Nv=7.000000000000000e+04}', "");
-    Expect(0, 126252, '\P{^Is_Nv=7.000000000000000e+04}', "");
-    Error('\p{Numeric_Value=/a/_70000_0}');
-    Error('\P{Numeric_Value=/a/_70000_0}');
+    Error('\p{Is_Nv=:=_	0_7_0_0_00}');
+    Error('\P{Is_Nv=:=_	0_7_0_0_00}');
+    Expect(1, 126251, '\p{Is_Nv=+7000_0}', "");
+    Expect(0, 126251, '\p{^Is_Nv=+7000_0}', "");
+    Expect(0, 126251, '\P{Is_Nv=+7000_0}', "");
+    Expect(1, 126251, '\P{^Is_Nv=+7000_0}', "");
+    Expect(0, 126252, '\p{Is_Nv=+7000_0}', "");
+    Expect(1, 126252, '\p{^Is_Nv=+7000_0}', "");
+    Expect(1, 126252, '\P{Is_Nv=+7000_0}', "");
+    Expect(0, 126252, '\P{^Is_Nv=+7000_0}', "");
+    Expect(1, 126251, '\p{Is_Nv:	7.000000000000000e+04}', "");
+    Expect(0, 126251, '\p{^Is_Nv:	7.000000000000000e+04}', "");
+    Expect(0, 126251, '\P{Is_Nv:	7.000000000000000e+04}', "");
+    Expect(1, 126251, '\P{^Is_Nv:	7.000000000000000e+04}', "");
+    Expect(0, 126252, '\p{Is_Nv:	7.000000000000000e+04}', "");
+    Expect(1, 126252, '\p{^Is_Nv:	7.000000000000000e+04}', "");
+    Expect(1, 126252, '\P{Is_Nv:	7.000000000000000e+04}', "");
+    Expect(0, 126252, '\P{^Is_Nv:	7.000000000000000e+04}', "");
+    Error('\p{Numeric_Value=/a/	700000}');
+    Error('\P{Numeric_Value=/a/	700000}');
     Expect(1, 68083, '\p{Numeric_Value=:\A700000\z:}', "");;
     Expect(0, 68084, '\p{Numeric_Value=:\A700000\z:}', "");;
-    Expect(1, 68083, '\p{Numeric_Value=+0000000700000}', "");
-    Expect(0, 68083, '\p{^Numeric_Value=+0000000700000}', "");
-    Expect(0, 68083, '\P{Numeric_Value=+0000000700000}', "");
-    Expect(1, 68083, '\P{^Numeric_Value=+0000000700000}', "");
-    Expect(0, 68084, '\p{Numeric_Value=+0000000700000}', "");
-    Expect(1, 68084, '\p{^Numeric_Value=+0000000700000}', "");
-    Expect(1, 68084, '\P{Numeric_Value=+0000000700000}', "");
-    Expect(0, 68084, '\P{^Numeric_Value=+0000000700000}', "");
+    Expect(1, 68083, '\p{Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(0, 68083, '\p{^Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(0, 68083, '\P{Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(1, 68083, '\P{^Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(0, 68084, '\p{Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(1, 68084, '\p{^Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(1, 68084, '\P{Numeric_Value=+0_0_0_0_0_0_700000}', "");
+    Expect(0, 68084, '\P{^Numeric_Value=+0_0_0_0_0_0_700000}', "");
     Expect(1, 68083, '\p{Numeric_Value=7.000000000000000e+05}', "");
     Expect(0, 68083, '\p{^Numeric_Value=7.000000000000000e+05}', "");
     Expect(0, 68083, '\P{Numeric_Value=7.000000000000000e+05}', "");
@@ -84591,18 +85181,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68084, '\p{^Numeric_Value=7.000000000000000e+05}', "");
     Expect(1, 68084, '\P{Numeric_Value=7.000000000000000e+05}', "");
     Expect(0, 68084, '\P{^Numeric_Value=7.000000000000000e+05}', "");
-    Error('\p{Nv:   --0700000/a/}');
-    Error('\P{Nv:   --0700000/a/}');
+    Error('\p{Nv=  700000/a/}');
+    Error('\P{Nv=  700000/a/}');
     Expect(1, 68083, '\p{Nv=:\A700000\z:}', "");;
     Expect(0, 68084, '\p{Nv=:\A700000\z:}', "");;
-    Expect(1, 68083, '\p{Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(0, 68083, '\p{^Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(0, 68083, '\P{Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(1, 68083, '\P{^Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(0, 68084, '\p{Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(1, 68084, '\p{^Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(1, 68084, '\P{Nv=+0_0_0_0_0_7_00000}', "");
-    Expect(0, 68084, '\P{^Nv=+0_0_0_0_0_7_00000}', "");
+    Expect(1, 68083, '\p{Nv=000_007_000_00}', "");
+    Expect(0, 68083, '\p{^Nv=000_007_000_00}', "");
+    Expect(0, 68083, '\P{Nv=000_007_000_00}', "");
+    Expect(1, 68083, '\P{^Nv=000_007_000_00}', "");
+    Expect(0, 68084, '\p{Nv=000_007_000_00}', "");
+    Expect(1, 68084, '\p{^Nv=000_007_000_00}', "");
+    Expect(1, 68084, '\P{Nv=000_007_000_00}', "");
+    Expect(0, 68084, '\P{^Nv=000_007_000_00}', "");
     Expect(1, 68083, '\p{Nv=7.000000000000000e+05}', "");
     Expect(0, 68083, '\p{^Nv=7.000000000000000e+05}', "");
     Expect(0, 68083, '\P{Nv=7.000000000000000e+05}', "");
@@ -84611,16 +85201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68084, '\p{^Nv=7.000000000000000e+05}', "");
     Expect(1, 68084, '\P{Nv=7.000000000000000e+05}', "");
     Expect(0, 68084, '\P{^Nv=7.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=:=_+000000700000}');
-    Error('\P{Is_Numeric_Value=:=_+000000700000}');
-    Expect(1, 68083, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(0, 68083, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(0, 68083, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(1, 68083, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(0, 68084, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(1, 68084, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(1, 68084, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
-    Expect(0, 68084, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_7_0_0000}', "");
+    Error('\p{Is_Numeric_Value=		+0700000/a/}');
+    Error('\P{Is_Numeric_Value=		+0700000/a/}');
+    Expect(1, 68083, '\p{Is_Numeric_Value=000700000}', "");
+    Expect(0, 68083, '\p{^Is_Numeric_Value=000700000}', "");
+    Expect(0, 68083, '\P{Is_Numeric_Value=000700000}', "");
+    Expect(1, 68083, '\P{^Is_Numeric_Value=000700000}', "");
+    Expect(0, 68084, '\p{Is_Numeric_Value=000700000}', "");
+    Expect(1, 68084, '\p{^Is_Numeric_Value=000700000}', "");
+    Expect(1, 68084, '\P{Is_Numeric_Value=000700000}', "");
+    Expect(0, 68084, '\P{^Is_Numeric_Value=000700000}', "");
     Expect(1, 68083, '\p{Is_Numeric_Value=7.000000000000000e+05}', "");
     Expect(0, 68083, '\p{^Is_Numeric_Value=7.000000000000000e+05}', "");
     Expect(0, 68083, '\P{Is_Numeric_Value=7.000000000000000e+05}', "");
@@ -84629,36 +85219,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68084, '\p{^Is_Numeric_Value=7.000000000000000e+05}', "");
     Expect(1, 68084, '\P{Is_Numeric_Value=7.000000000000000e+05}', "");
     Expect(0, 68084, '\P{^Is_Numeric_Value=7.000000000000000e+05}', "");
-    Error('\p{Is_Nv=:= -00_07_00_000}');
-    Error('\P{Is_Nv=:= -00_07_00_000}');
-    Expect(1, 68083, '\p{Is_Nv=000000070000_0}', "");
-    Expect(0, 68083, '\p{^Is_Nv=000000070000_0}', "");
-    Expect(0, 68083, '\P{Is_Nv=000000070000_0}', "");
-    Expect(1, 68083, '\P{^Is_Nv=000000070000_0}', "");
-    Expect(0, 68084, '\p{Is_Nv=000000070000_0}', "");
-    Expect(1, 68084, '\p{^Is_Nv=000000070000_0}', "");
-    Expect(1, 68084, '\P{Is_Nv=000000070000_0}', "");
-    Expect(0, 68084, '\P{^Is_Nv=000000070000_0}', "");
-    Expect(1, 68083, '\p{Is_Nv=7.000000000000000e+05}', "");
-    Expect(0, 68083, '\p{^Is_Nv=7.000000000000000e+05}', "");
-    Expect(0, 68083, '\P{Is_Nv=7.000000000000000e+05}', "");
-    Expect(1, 68083, '\P{^Is_Nv=7.000000000000000e+05}', "");
-    Expect(0, 68084, '\p{Is_Nv=7.000000000000000e+05}', "");
-    Expect(1, 68084, '\p{^Is_Nv=7.000000000000000e+05}', "");
-    Expect(1, 68084, '\P{Is_Nv=7.000000000000000e+05}', "");
-    Expect(0, 68084, '\P{^Is_Nv=7.000000000000000e+05}', "");
-    Error('\p{Numeric_Value=_-+0_0_0_08/a/}');
-    Error('\P{Numeric_Value=_-+0_0_0_08/a/}');
+    Error('\p{Is_Nv=	00700000:=}');
+    Error('\P{Is_Nv=	00700000:=}');
+    Expect(1, 68083, '\p{Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(0, 68083, '\p{^Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(0, 68083, '\P{Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(1, 68083, '\P{^Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(0, 68084, '\p{Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(1, 68084, '\p{^Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(1, 68084, '\P{Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(0, 68084, '\P{^Is_Nv=0_0_7_0_0_0_00}', "");
+    Expect(1, 68083, '\p{Is_Nv:   7.000000000000000e+05}', "");
+    Expect(0, 68083, '\p{^Is_Nv:   7.000000000000000e+05}', "");
+    Expect(0, 68083, '\P{Is_Nv:   7.000000000000000e+05}', "");
+    Expect(1, 68083, '\P{^Is_Nv:   7.000000000000000e+05}', "");
+    Expect(0, 68084, '\p{Is_Nv:   7.000000000000000e+05}', "");
+    Expect(1, 68084, '\p{^Is_Nv:   7.000000000000000e+05}', "");
+    Expect(1, 68084, '\P{Is_Nv:   7.000000000000000e+05}', "");
+    Expect(0, 68084, '\P{^Is_Nv:   7.000000000000000e+05}', "");
+    Error('\p{Numeric_Value=/a/00_00_00_00_08}');
+    Error('\P{Numeric_Value=/a/00_00_00_00_08}');
     Expect(1, 130040, '\p{Numeric_Value=:\A8\z:}', "");;
     Expect(0, 130041, '\p{Numeric_Value=:\A8\z:}', "");;
-    Expect(1, 130040, '\p{Numeric_Value=08}', "");
-    Expect(0, 130040, '\p{^Numeric_Value=08}', "");
-    Expect(0, 130040, '\P{Numeric_Value=08}', "");
-    Expect(1, 130040, '\P{^Numeric_Value=08}', "");
-    Expect(0, 130041, '\p{Numeric_Value=08}', "");
-    Expect(1, 130041, '\p{^Numeric_Value=08}', "");
-    Expect(1, 130041, '\P{Numeric_Value=08}', "");
-    Expect(0, 130041, '\P{^Numeric_Value=08}', "");
+    Expect(1, 130040, '\p{Numeric_Value=0008}', "");
+    Expect(0, 130040, '\p{^Numeric_Value=0008}', "");
+    Expect(0, 130040, '\P{Numeric_Value=0008}', "");
+    Expect(1, 130040, '\P{^Numeric_Value=0008}', "");
+    Expect(0, 130041, '\p{Numeric_Value=0008}', "");
+    Expect(1, 130041, '\p{^Numeric_Value=0008}', "");
+    Expect(1, 130041, '\P{Numeric_Value=0008}', "");
+    Expect(0, 130041, '\P{^Numeric_Value=0008}', "");
     Expect(1, 130040, '\p{Numeric_Value=8.000000000000000e+00}', "");
     Expect(0, 130040, '\p{^Numeric_Value=8.000000000000000e+00}', "");
     Expect(0, 130040, '\P{Numeric_Value=8.000000000000000e+00}', "");
@@ -84667,18 +85257,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130041, '\p{^Numeric_Value=8.000000000000000e+00}', "");
     Expect(1, 130041, '\P{Numeric_Value=8.000000000000000e+00}', "");
     Expect(0, 130041, '\P{^Numeric_Value=8.000000000000000e+00}', "");
-    Error('\p{Nv=/a/	-000_8}');
-    Error('\P{Nv=/a/	-000_8}');
+    Error('\p{Nv=/a/  0_0_0_008}');
+    Error('\P{Nv=/a/  0_0_0_008}');
     Expect(1, 130040, '\p{Nv=:\A8\z:}', "");;
     Expect(0, 130041, '\p{Nv=:\A8\z:}', "");;
-    Expect(1, 130040, '\p{Nv:   000000_8}', "");
-    Expect(0, 130040, '\p{^Nv:   000000_8}', "");
-    Expect(0, 130040, '\P{Nv:   000000_8}', "");
-    Expect(1, 130040, '\P{^Nv:   000000_8}', "");
-    Expect(0, 130041, '\p{Nv:   000000_8}', "");
-    Expect(1, 130041, '\p{^Nv:   000000_8}', "");
-    Expect(1, 130041, '\P{Nv:   000000_8}', "");
-    Expect(0, 130041, '\P{^Nv:   000000_8}', "");
+    Expect(1, 130040, '\p{Nv=+00000008}', "");
+    Expect(0, 130040, '\p{^Nv=+00000008}', "");
+    Expect(0, 130040, '\P{Nv=+00000008}', "");
+    Expect(1, 130040, '\P{^Nv=+00000008}', "");
+    Expect(0, 130041, '\p{Nv=+00000008}', "");
+    Expect(1, 130041, '\p{^Nv=+00000008}', "");
+    Expect(1, 130041, '\P{Nv=+00000008}', "");
+    Expect(0, 130041, '\P{^Nv=+00000008}', "");
     Expect(1, 130040, '\p{Nv=8.000000000000000e+00}', "");
     Expect(0, 130040, '\p{^Nv=8.000000000000000e+00}', "");
     Expect(0, 130040, '\P{Nv=8.000000000000000e+00}', "");
@@ -84687,16 +85277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130041, '\p{^Nv=8.000000000000000e+00}', "");
     Expect(1, 130041, '\P{Nv=8.000000000000000e+00}', "");
     Expect(0, 130041, '\P{^Nv=8.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value=/a/	 008}');
-    Error('\P{Is_Numeric_Value=/a/	 008}');
-    Expect(1, 130040, '\p{Is_Numeric_Value=00008}', "");
-    Expect(0, 130040, '\p{^Is_Numeric_Value=00008}', "");
-    Expect(0, 130040, '\P{Is_Numeric_Value=00008}', "");
-    Expect(1, 130040, '\P{^Is_Numeric_Value=00008}', "");
-    Expect(0, 130041, '\p{Is_Numeric_Value=00008}', "");
-    Expect(1, 130041, '\p{^Is_Numeric_Value=00008}', "");
-    Expect(1, 130041, '\P{Is_Numeric_Value=00008}', "");
-    Expect(0, 130041, '\P{^Is_Numeric_Value=00008}', "");
+    Error('\p{Is_Numeric_Value=/a/		+0_0_0_0_008}');
+    Error('\P{Is_Numeric_Value=/a/		+0_0_0_0_008}');
+    Expect(1, 130040, '\p{Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(0, 130040, '\p{^Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(0, 130040, '\P{Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(1, 130040, '\P{^Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(0, 130041, '\p{Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(1, 130041, '\p{^Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(1, 130041, '\P{Is_Numeric_Value: +000_000_000_8}', "");
+    Expect(0, 130041, '\P{^Is_Numeric_Value: +000_000_000_8}', "");
     Expect(1, 130040, '\p{Is_Numeric_Value=8.000000000000000e+00}', "");
     Expect(0, 130040, '\p{^Is_Numeric_Value=8.000000000000000e+00}', "");
     Expect(0, 130040, '\P{Is_Numeric_Value=8.000000000000000e+00}', "");
@@ -84705,16 +85295,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130041, '\p{^Is_Numeric_Value=8.000000000000000e+00}', "");
     Expect(1, 130041, '\P{Is_Numeric_Value=8.000000000000000e+00}', "");
     Expect(0, 130041, '\P{^Is_Numeric_Value=8.000000000000000e+00}', "");
-    Error('\p{Is_Nv=:= 00008}');
-    Error('\P{Is_Nv=:= 00008}');
-    Expect(1, 130040, '\p{Is_Nv=00000008}', "");
-    Expect(0, 130040, '\p{^Is_Nv=00000008}', "");
-    Expect(0, 130040, '\P{Is_Nv=00000008}', "");
-    Expect(1, 130040, '\P{^Is_Nv=00000008}', "");
-    Expect(0, 130041, '\p{Is_Nv=00000008}', "");
-    Expect(1, 130041, '\p{^Is_Nv=00000008}', "");
-    Expect(1, 130041, '\P{Is_Nv=00000008}', "");
-    Expect(0, 130041, '\P{^Is_Nv=00000008}', "");
+    Error('\p{Is_Nv=_-0_8:=}');
+    Error('\P{Is_Nv=_-0_8:=}');
+    Expect(1, 130040, '\p{Is_Nv=+00_00_08}', "");
+    Expect(0, 130040, '\p{^Is_Nv=+00_00_08}', "");
+    Expect(0, 130040, '\P{Is_Nv=+00_00_08}', "");
+    Expect(1, 130040, '\P{^Is_Nv=+00_00_08}', "");
+    Expect(0, 130041, '\p{Is_Nv=+00_00_08}', "");
+    Expect(1, 130041, '\p{^Is_Nv=+00_00_08}', "");
+    Expect(1, 130041, '\P{Is_Nv=+00_00_08}', "");
+    Expect(0, 130041, '\P{^Is_Nv=+00_00_08}', "");
     Expect(1, 130040, '\p{Is_Nv=8.000000000000000e+00}', "");
     Expect(0, 130040, '\p{^Is_Nv=8.000000000000000e+00}', "");
     Expect(0, 130040, '\P{Is_Nv=8.000000000000000e+00}', "");
@@ -84723,18 +85313,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130041, '\p{^Is_Nv=8.000000000000000e+00}', "");
     Expect(1, 130041, '\P{Is_Nv=8.000000000000000e+00}', "");
     Expect(0, 130041, '\P{^Is_Nv=8.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=	-0_0_0_0_0_0_0_0_080:=}');
-    Error('\P{Numeric_Value=	-0_0_0_0_0_0_0_0_080:=}');
+    Error('\p{Numeric_Value=-_+00000000080:=}');
+    Error('\P{Numeric_Value=-_+00000000080:=}');
     Expect(1, 126225, '\p{Numeric_Value=:\A80\z:}', "");;
     Expect(0, 126226, '\p{Numeric_Value=:\A80\z:}', "");;
-    Expect(1, 126225, '\p{Numeric_Value=00000000080}', "");
-    Expect(0, 126225, '\p{^Numeric_Value=00000000080}', "");
-    Expect(0, 126225, '\P{Numeric_Value=00000000080}', "");
-    Expect(1, 126225, '\P{^Numeric_Value=00000000080}', "");
-    Expect(0, 126226, '\p{Numeric_Value=00000000080}', "");
-    Expect(1, 126226, '\p{^Numeric_Value=00000000080}', "");
-    Expect(1, 126226, '\P{Numeric_Value=00000000080}', "");
-    Expect(0, 126226, '\P{^Numeric_Value=00000000080}', "");
+    Expect(1, 126225, '\p{Numeric_Value=+00080}', "");
+    Expect(0, 126225, '\p{^Numeric_Value=+00080}', "");
+    Expect(0, 126225, '\P{Numeric_Value=+00080}', "");
+    Expect(1, 126225, '\P{^Numeric_Value=+00080}', "");
+    Expect(0, 126226, '\p{Numeric_Value=+00080}', "");
+    Expect(1, 126226, '\p{^Numeric_Value=+00080}', "");
+    Expect(1, 126226, '\P{Numeric_Value=+00080}', "");
+    Expect(0, 126226, '\P{^Numeric_Value=+00080}', "");
     Expect(1, 126225, '\p{Numeric_Value=8.000000000000000e+01}', "");
     Expect(0, 126225, '\p{^Numeric_Value=8.000000000000000e+01}', "");
     Expect(0, 126225, '\P{Numeric_Value=8.000000000000000e+01}', "");
@@ -84743,18 +85333,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126226, '\p{^Numeric_Value=8.000000000000000e+01}', "");
     Expect(1, 126226, '\P{Numeric_Value=8.000000000000000e+01}', "");
     Expect(0, 126226, '\P{^Numeric_Value=8.000000000000000e+01}', "");
-    Error('\p{Nv:   __0000000080/a/}');
-    Error('\P{Nv:   __0000000080/a/}');
+    Error('\p{Nv=_-0_0_0_0_0_0_0_0080:=}');
+    Error('\P{Nv=_-0_0_0_0_0_0_0_0080:=}');
     Expect(1, 126225, '\p{Nv=:\A80\z:}', "");;
     Expect(0, 126226, '\p{Nv=:\A80\z:}', "");;
-    Expect(1, 126225, '\p{Nv=000000080}', "");
-    Expect(0, 126225, '\p{^Nv=000000080}', "");
-    Expect(0, 126225, '\P{Nv=000000080}', "");
-    Expect(1, 126225, '\P{^Nv=000000080}', "");
-    Expect(0, 126226, '\p{Nv=000000080}', "");
-    Expect(1, 126226, '\p{^Nv=000000080}', "");
-    Expect(1, 126226, '\P{Nv=000000080}', "");
-    Expect(0, 126226, '\P{^Nv=000000080}', "");
+    Expect(1, 126225, '\p{Nv=0000000080}', "");
+    Expect(0, 126225, '\p{^Nv=0000000080}', "");
+    Expect(0, 126225, '\P{Nv=0000000080}', "");
+    Expect(1, 126225, '\P{^Nv=0000000080}', "");
+    Expect(0, 126226, '\p{Nv=0000000080}', "");
+    Expect(1, 126226, '\p{^Nv=0000000080}', "");
+    Expect(1, 126226, '\P{Nv=0000000080}', "");
+    Expect(0, 126226, '\P{^Nv=0000000080}', "");
     Expect(1, 126225, '\p{Nv=8.000000000000000e+01}', "");
     Expect(0, 126225, '\p{^Nv=8.000000000000000e+01}', "");
     Expect(0, 126225, '\P{Nv=8.000000000000000e+01}', "");
@@ -84763,16 +85353,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126226, '\p{^Nv=8.000000000000000e+01}', "");
     Expect(1, 126226, '\P{Nv=8.000000000000000e+01}', "");
     Expect(0, 126226, '\P{^Nv=8.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=/a/	0000000080}');
-    Error('\P{Is_Numeric_Value=/a/	0000000080}');
-    Expect(1, 126225, '\p{Is_Numeric_Value=0080}', "");
-    Expect(0, 126225, '\p{^Is_Numeric_Value=0080}', "");
-    Expect(0, 126225, '\P{Is_Numeric_Value=0080}', "");
-    Expect(1, 126225, '\P{^Is_Numeric_Value=0080}', "");
-    Expect(0, 126226, '\p{Is_Numeric_Value=0080}', "");
-    Expect(1, 126226, '\p{^Is_Numeric_Value=0080}', "");
-    Expect(1, 126226, '\P{Is_Numeric_Value=0080}', "");
-    Expect(0, 126226, '\P{^Is_Numeric_Value=0080}', "");
+    Error('\p{Is_Numeric_Value=_	080:=}');
+    Error('\P{Is_Numeric_Value=_	080:=}');
+    Expect(1, 126225, '\p{Is_Numeric_Value=000080}', "");
+    Expect(0, 126225, '\p{^Is_Numeric_Value=000080}', "");
+    Expect(0, 126225, '\P{Is_Numeric_Value=000080}', "");
+    Expect(1, 126225, '\P{^Is_Numeric_Value=000080}', "");
+    Expect(0, 126226, '\p{Is_Numeric_Value=000080}', "");
+    Expect(1, 126226, '\p{^Is_Numeric_Value=000080}', "");
+    Expect(1, 126226, '\P{Is_Numeric_Value=000080}', "");
+    Expect(0, 126226, '\P{^Is_Numeric_Value=000080}', "");
     Expect(1, 126225, '\p{Is_Numeric_Value=8.000000000000000e+01}', "");
     Expect(0, 126225, '\p{^Is_Numeric_Value=8.000000000000000e+01}', "");
     Expect(0, 126225, '\P{Is_Numeric_Value=8.000000000000000e+01}', "");
@@ -84781,16 +85371,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126226, '\p{^Is_Numeric_Value=8.000000000000000e+01}', "");
     Expect(1, 126226, '\P{Is_Numeric_Value=8.000000000000000e+01}', "");
     Expect(0, 126226, '\P{^Is_Numeric_Value=8.000000000000000e+01}', "");
-    Error('\p{Is_Nv=/a/	0000080}');
-    Error('\P{Is_Nv=/a/	0000080}');
-    Expect(1, 126225, '\p{Is_Nv=+000008_0}', "");
-    Expect(0, 126225, '\p{^Is_Nv=+000008_0}', "");
-    Expect(0, 126225, '\P{Is_Nv=+000008_0}', "");
-    Expect(1, 126225, '\P{^Is_Nv=+000008_0}', "");
-    Expect(0, 126226, '\p{Is_Nv=+000008_0}', "");
-    Expect(1, 126226, '\p{^Is_Nv=+000008_0}', "");
-    Expect(1, 126226, '\P{Is_Nv=+000008_0}', "");
-    Expect(0, 126226, '\P{^Is_Nv=+000008_0}', "");
+    Error('\p{Is_Nv:-	00080/a/}');
+    Error('\P{Is_Nv:-	00080/a/}');
+    Expect(1, 126225, '\p{Is_Nv=+00_00_80}', "");
+    Expect(0, 126225, '\p{^Is_Nv=+00_00_80}', "");
+    Expect(0, 126225, '\P{Is_Nv=+00_00_80}', "");
+    Expect(1, 126225, '\P{^Is_Nv=+00_00_80}', "");
+    Expect(0, 126226, '\p{Is_Nv=+00_00_80}', "");
+    Expect(1, 126226, '\p{^Is_Nv=+00_00_80}', "");
+    Expect(1, 126226, '\P{Is_Nv=+00_00_80}', "");
+    Expect(0, 126226, '\P{^Is_Nv=+00_00_80}', "");
     Expect(1, 126225, '\p{Is_Nv=8.000000000000000e+01}', "");
     Expect(0, 126225, '\p{^Is_Nv=8.000000000000000e+01}', "");
     Expect(0, 126225, '\P{Is_Nv=8.000000000000000e+01}', "");
@@ -84799,18 +85389,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126226, '\p{^Is_Nv=8.000000000000000e+01}', "");
     Expect(1, 126226, '\P{Is_Nv=8.000000000000000e+01}', "");
     Expect(0, 126226, '\P{^Is_Nv=8.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=-000000800:=}');
-    Error('\P{Numeric_Value=-000000800:=}');
+    Error('\p{Numeric_Value= -0800:=}');
+    Error('\P{Numeric_Value= -0800:=}');
     Expect(1, 126234, '\p{Numeric_Value=:\A800\z:}', "");;
     Expect(0, 126235, '\p{Numeric_Value=:\A800\z:}', "");;
-    Expect(1, 126234, '\p{Numeric_Value=0000800}', "");
-    Expect(0, 126234, '\p{^Numeric_Value=0000800}', "");
-    Expect(0, 126234, '\P{Numeric_Value=0000800}', "");
-    Expect(1, 126234, '\P{^Numeric_Value=0000800}', "");
-    Expect(0, 126235, '\p{Numeric_Value=0000800}', "");
-    Expect(1, 126235, '\p{^Numeric_Value=0000800}', "");
-    Expect(1, 126235, '\P{Numeric_Value=0000800}', "");
-    Expect(0, 126235, '\P{^Numeric_Value=0000800}', "");
+    Expect(1, 126234, '\p{Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(0, 126234, '\p{^Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(0, 126234, '\P{Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(1, 126234, '\P{^Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(0, 126235, '\p{Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(1, 126235, '\p{^Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(1, 126235, '\P{Numeric_Value=00_00_00_00_80_0}', "");
+    Expect(0, 126235, '\P{^Numeric_Value=00_00_00_00_80_0}', "");
     Expect(1, 126234, '\p{Numeric_Value=8.000000000000000e+02}', "");
     Expect(0, 126234, '\p{^Numeric_Value=8.000000000000000e+02}', "");
     Expect(0, 126234, '\P{Numeric_Value=8.000000000000000e+02}', "");
@@ -84819,74 +85409,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126235, '\p{^Numeric_Value=8.000000000000000e+02}', "");
     Expect(1, 126235, '\P{Numeric_Value=8.000000000000000e+02}', "");
     Expect(0, 126235, '\P{^Numeric_Value=8.000000000000000e+02}', "");
-    Error('\p{Nv=/a/_ 0_0_0_0_8_00}');
-    Error('\P{Nv=/a/_ 0_0_0_0_8_00}');
+    Error('\p{Nv=:=- 00000000800}');
+    Error('\P{Nv=:=- 00000000800}');
     Expect(1, 126234, '\p{Nv=:\A800\z:}', "");;
     Expect(0, 126235, '\p{Nv=:\A800\z:}', "");;
-    Expect(1, 126234, '\p{Nv=+800}', "");
-    Expect(0, 126234, '\p{^Nv=+800}', "");
-    Expect(0, 126234, '\P{Nv=+800}', "");
-    Expect(1, 126234, '\P{^Nv=+800}', "");
-    Expect(0, 126235, '\p{Nv=+800}', "");
-    Expect(1, 126235, '\p{^Nv=+800}', "");
-    Expect(1, 126235, '\P{Nv=+800}', "");
-    Expect(0, 126235, '\P{^Nv=+800}', "");
-    Expect(1, 126234, '\p{Nv:   8.000000000000000e+02}', "");
-    Expect(0, 126234, '\p{^Nv:   8.000000000000000e+02}', "");
-    Expect(0, 126234, '\P{Nv:   8.000000000000000e+02}', "");
-    Expect(1, 126234, '\P{^Nv:   8.000000000000000e+02}', "");
-    Expect(0, 126235, '\p{Nv:   8.000000000000000e+02}', "");
-    Expect(1, 126235, '\p{^Nv:   8.000000000000000e+02}', "");
-    Expect(1, 126235, '\P{Nv:   8.000000000000000e+02}', "");
-    Expect(0, 126235, '\P{^Nv:   8.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value:-0000800/a/}');
-    Error('\P{Is_Numeric_Value:-0000800/a/}');
-    Expect(1, 126234, '\p{Is_Numeric_Value=00000800}', "");
-    Expect(0, 126234, '\p{^Is_Numeric_Value=00000800}', "");
-    Expect(0, 126234, '\P{Is_Numeric_Value=00000800}', "");
-    Expect(1, 126234, '\P{^Is_Numeric_Value=00000800}', "");
-    Expect(0, 126235, '\p{Is_Numeric_Value=00000800}', "");
-    Expect(1, 126235, '\p{^Is_Numeric_Value=00000800}', "");
-    Expect(1, 126235, '\P{Is_Numeric_Value=00000800}', "");
-    Expect(0, 126235, '\P{^Is_Numeric_Value=00000800}', "");
-    Expect(1, 126234, '\p{Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(0, 126234, '\p{^Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(0, 126234, '\P{Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(1, 126234, '\P{^Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(0, 126235, '\p{Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(1, 126235, '\p{^Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(1, 126235, '\P{Is_Numeric_Value=8.000000000000000e+02}', "");
-    Expect(0, 126235, '\P{^Is_Numeric_Value=8.000000000000000e+02}', "");
-    Error('\p{Is_Nv=/a/	 80_0}');
-    Error('\P{Is_Nv=/a/	 80_0}');
-    Expect(1, 126234, '\p{Is_Nv=00000_00008_00}', "");
-    Expect(0, 126234, '\p{^Is_Nv=00000_00008_00}', "");
-    Expect(0, 126234, '\P{Is_Nv=00000_00008_00}', "");
-    Expect(1, 126234, '\P{^Is_Nv=00000_00008_00}', "");
-    Expect(0, 126235, '\p{Is_Nv=00000_00008_00}', "");
-    Expect(1, 126235, '\p{^Is_Nv=00000_00008_00}', "");
-    Expect(1, 126235, '\P{Is_Nv=00000_00008_00}', "");
-    Expect(0, 126235, '\P{^Is_Nv=00000_00008_00}', "");
-    Expect(1, 126234, '\p{Is_Nv:8.000000000000000e+02}', "");
-    Expect(0, 126234, '\p{^Is_Nv:8.000000000000000e+02}', "");
-    Expect(0, 126234, '\P{Is_Nv:8.000000000000000e+02}', "");
-    Expect(1, 126234, '\P{^Is_Nv:8.000000000000000e+02}', "");
-    Expect(0, 126235, '\p{Is_Nv:8.000000000000000e+02}', "");
-    Expect(1, 126235, '\p{^Is_Nv:8.000000000000000e+02}', "");
-    Expect(1, 126235, '\P{Is_Nv:8.000000000000000e+02}', "");
-    Expect(0, 126235, '\P{^Is_Nv:8.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=/a/	+8000}');
-    Error('\P{Numeric_Value=/a/	+8000}');
+    Expect(1, 126234, '\p{Nv=+00800}', "");
+    Expect(0, 126234, '\p{^Nv=+00800}', "");
+    Expect(0, 126234, '\P{Nv=+00800}', "");
+    Expect(1, 126234, '\P{^Nv=+00800}', "");
+    Expect(0, 126235, '\p{Nv=+00800}', "");
+    Expect(1, 126235, '\p{^Nv=+00800}', "");
+    Expect(1, 126235, '\P{Nv=+00800}', "");
+    Expect(0, 126235, '\P{^Nv=+00800}', "");
+    Expect(1, 126234, '\p{Nv=8.000000000000000e+02}', "");
+    Expect(0, 126234, '\p{^Nv=8.000000000000000e+02}', "");
+    Expect(0, 126234, '\P{Nv=8.000000000000000e+02}', "");
+    Expect(1, 126234, '\P{^Nv=8.000000000000000e+02}', "");
+    Expect(0, 126235, '\p{Nv=8.000000000000000e+02}', "");
+    Expect(1, 126235, '\p{^Nv=8.000000000000000e+02}', "");
+    Expect(1, 126235, '\P{Nv=8.000000000000000e+02}', "");
+    Expect(0, 126235, '\P{^Nv=8.000000000000000e+02}', "");
+    Error('\p{Is_Numeric_Value=/a/__+000000800}');
+    Error('\P{Is_Numeric_Value=/a/__+000000800}');
+    Expect(1, 126234, '\p{Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(0, 126234, '\p{^Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(0, 126234, '\P{Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(1, 126234, '\P{^Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(0, 126235, '\p{Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(1, 126235, '\p{^Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(1, 126235, '\P{Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(0, 126235, '\P{^Is_Numeric_Value=+0_0_8_00}', "");
+    Expect(1, 126234, '\p{Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(0, 126234, '\p{^Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(0, 126234, '\P{Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(1, 126234, '\P{^Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(0, 126235, '\p{Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(1, 126235, '\p{^Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(1, 126235, '\P{Is_Numeric_Value:8.000000000000000e+02}', "");
+    Expect(0, 126235, '\P{^Is_Numeric_Value:8.000000000000000e+02}', "");
+    Error('\p{Is_Nv=_	000_080_0:=}');
+    Error('\P{Is_Nv=_	000_080_0:=}');
+    Expect(1, 126234, '\p{Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(0, 126234, '\p{^Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(0, 126234, '\P{Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(1, 126234, '\P{^Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(0, 126235, '\p{Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(1, 126235, '\p{^Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(1, 126235, '\P{Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(0, 126235, '\P{^Is_Nv=0_0_0_0_0_0_0_0_800}', "");
+    Expect(1, 126234, '\p{Is_Nv=8.000000000000000e+02}', "");
+    Expect(0, 126234, '\p{^Is_Nv=8.000000000000000e+02}', "");
+    Expect(0, 126234, '\P{Is_Nv=8.000000000000000e+02}', "");
+    Expect(1, 126234, '\P{^Is_Nv=8.000000000000000e+02}', "");
+    Expect(0, 126235, '\p{Is_Nv=8.000000000000000e+02}', "");
+    Expect(1, 126235, '\p{^Is_Nv=8.000000000000000e+02}', "");
+    Expect(1, 126235, '\P{Is_Nv=8.000000000000000e+02}', "");
+    Expect(0, 126235, '\P{^Is_Nv=8.000000000000000e+02}', "");
+    Error('\p{Numeric_Value=-0008000:=}');
+    Error('\P{Numeric_Value=-0008000:=}');
     Expect(1, 126243, '\p{Numeric_Value=:\A8000\z:}', "");;
     Expect(0, 126244, '\p{Numeric_Value=:\A8000\z:}', "");;
-    Expect(1, 126243, '\p{Numeric_Value=008000}', "");
-    Expect(0, 126243, '\p{^Numeric_Value=008000}', "");
-    Expect(0, 126243, '\P{Numeric_Value=008000}', "");
-    Expect(1, 126243, '\P{^Numeric_Value=008000}', "");
-    Expect(0, 126244, '\p{Numeric_Value=008000}', "");
-    Expect(1, 126244, '\p{^Numeric_Value=008000}', "");
-    Expect(1, 126244, '\P{Numeric_Value=008000}', "");
-    Expect(0, 126244, '\P{^Numeric_Value=008000}', "");
+    Expect(1, 126243, '\p{Numeric_Value=00000000800_0}', "");
+    Expect(0, 126243, '\p{^Numeric_Value=00000000800_0}', "");
+    Expect(0, 126243, '\P{Numeric_Value=00000000800_0}', "");
+    Expect(1, 126243, '\P{^Numeric_Value=00000000800_0}', "");
+    Expect(0, 126244, '\p{Numeric_Value=00000000800_0}', "");
+    Expect(1, 126244, '\p{^Numeric_Value=00000000800_0}', "");
+    Expect(1, 126244, '\P{Numeric_Value=00000000800_0}', "");
+    Expect(0, 126244, '\P{^Numeric_Value=00000000800_0}', "");
     Expect(1, 126243, '\p{Numeric_Value=8.000000000000000e+03}', "");
     Expect(0, 126243, '\p{^Numeric_Value=8.000000000000000e+03}', "");
     Expect(0, 126243, '\P{Numeric_Value=8.000000000000000e+03}', "");
@@ -84895,18 +85485,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126244, '\p{^Numeric_Value=8.000000000000000e+03}', "");
     Expect(1, 126244, '\P{Numeric_Value=8.000000000000000e+03}', "");
     Expect(0, 126244, '\P{^Numeric_Value=8.000000000000000e+03}', "");
-    Error('\p{Nv=0_0_0_0_0_0_0_8000:=}');
-    Error('\P{Nv=0_0_0_0_0_0_0_8000:=}');
+    Error('\p{Nv=	-+000008000/a/}');
+    Error('\P{Nv=	-+000008000/a/}');
     Expect(1, 126243, '\p{Nv=:\A8000\z:}', "");;
     Expect(0, 126244, '\p{Nv=:\A8000\z:}', "");;
-    Expect(1, 126243, '\p{Nv:   0_0_0_8_000}', "");
-    Expect(0, 126243, '\p{^Nv:   0_0_0_8_000}', "");
-    Expect(0, 126243, '\P{Nv:   0_0_0_8_000}', "");
-    Expect(1, 126243, '\P{^Nv:   0_0_0_8_000}', "");
-    Expect(0, 126244, '\p{Nv:   0_0_0_8_000}', "");
-    Expect(1, 126244, '\p{^Nv:   0_0_0_8_000}', "");
-    Expect(1, 126244, '\P{Nv:   0_0_0_8_000}', "");
-    Expect(0, 126244, '\P{^Nv:   0_0_0_8_000}', "");
+    Expect(1, 126243, '\p{Nv=00_00_00_08_000}', "");
+    Expect(0, 126243, '\p{^Nv=00_00_00_08_000}', "");
+    Expect(0, 126243, '\P{Nv=00_00_00_08_000}', "");
+    Expect(1, 126243, '\P{^Nv=00_00_00_08_000}', "");
+    Expect(0, 126244, '\p{Nv=00_00_00_08_000}', "");
+    Expect(1, 126244, '\p{^Nv=00_00_00_08_000}', "");
+    Expect(1, 126244, '\P{Nv=00_00_00_08_000}', "");
+    Expect(0, 126244, '\P{^Nv=00_00_00_08_000}', "");
     Expect(1, 126243, '\p{Nv=8.000000000000000e+03}', "");
     Expect(0, 126243, '\p{^Nv=8.000000000000000e+03}', "");
     Expect(0, 126243, '\P{Nv=8.000000000000000e+03}', "");
@@ -84915,16 +85505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126244, '\p{^Nv=8.000000000000000e+03}', "");
     Expect(1, 126244, '\P{Nv=8.000000000000000e+03}', "");
     Expect(0, 126244, '\P{^Nv=8.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value= /a/0000000008000}');
-    Error('\P{Is_Numeric_Value= /a/0000000008000}');
-    Expect(1, 126243, '\p{Is_Numeric_Value=0008000}', "");
-    Expect(0, 126243, '\p{^Is_Numeric_Value=0008000}', "");
-    Expect(0, 126243, '\P{Is_Numeric_Value=0008000}', "");
-    Expect(1, 126243, '\P{^Is_Numeric_Value=0008000}', "");
-    Expect(0, 126244, '\p{Is_Numeric_Value=0008000}', "");
-    Expect(1, 126244, '\p{^Is_Numeric_Value=0008000}', "");
-    Expect(1, 126244, '\P{Is_Numeric_Value=0008000}', "");
-    Expect(0, 126244, '\P{^Is_Numeric_Value=0008000}', "");
+    Error('\p{Is_Numeric_Value=/a/_-0_0_8_0_00}');
+    Error('\P{Is_Numeric_Value=/a/_-0_0_8_0_00}');
+    Expect(1, 126243, '\p{Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(0, 126243, '\p{^Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(0, 126243, '\P{Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(1, 126243, '\P{^Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(0, 126244, '\p{Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(1, 126244, '\p{^Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(1, 126244, '\P{Is_Numeric_Value=+00_00_00_80_00}', "");
+    Expect(0, 126244, '\P{^Is_Numeric_Value=+00_00_00_80_00}', "");
     Expect(1, 126243, '\p{Is_Numeric_Value=8.000000000000000e+03}', "");
     Expect(0, 126243, '\p{^Is_Numeric_Value=8.000000000000000e+03}', "");
     Expect(0, 126243, '\P{Is_Numeric_Value=8.000000000000000e+03}', "");
@@ -84933,8 +85523,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126244, '\p{^Is_Numeric_Value=8.000000000000000e+03}', "");
     Expect(1, 126244, '\P{Is_Numeric_Value=8.000000000000000e+03}', "");
     Expect(0, 126244, '\P{^Is_Numeric_Value=8.000000000000000e+03}', "");
-    Error('\p{Is_Nv=__+0_0_0_0_8_000/a/}');
-    Error('\P{Is_Nv=__+0_0_0_0_8_000/a/}');
+    Error('\p{Is_Nv=/a/0_0_8_000}');
+    Error('\P{Is_Nv=/a/0_0_8_000}');
     Expect(1, 126243, '\p{Is_Nv=000_080_00}', "");
     Expect(0, 126243, '\p{^Is_Nv=000_080_00}', "");
     Expect(0, 126243, '\P{Is_Nv=000_080_00}', "");
@@ -84951,38 +85541,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126244, '\p{^Is_Nv=8.000000000000000e+03}', "");
     Expect(1, 126244, '\P{Is_Nv=8.000000000000000e+03}', "");
     Expect(0, 126244, '\P{^Is_Nv=8.000000000000000e+03}', "");
-    Error('\p{Numeric_Value: /a/ _080000}');
-    Error('\P{Numeric_Value: /a/ _080000}');
+    Error('\p{Numeric_Value= 0_0_0_0_0_0_0_0080000:=}');
+    Error('\P{Numeric_Value= 0_0_0_0_0_0_0_0080000:=}');
     Expect(1, 126252, '\p{Numeric_Value=:\A80000\z:}', "");;
     Expect(0, 126253, '\p{Numeric_Value=:\A80000\z:}', "");;
-    Expect(1, 126252, '\p{Numeric_Value=000080000}', "");
-    Expect(0, 126252, '\p{^Numeric_Value=000080000}', "");
-    Expect(0, 126252, '\P{Numeric_Value=000080000}', "");
-    Expect(1, 126252, '\P{^Numeric_Value=000080000}', "");
-    Expect(0, 126253, '\p{Numeric_Value=000080000}', "");
-    Expect(1, 126253, '\p{^Numeric_Value=000080000}', "");
-    Expect(1, 126253, '\P{Numeric_Value=000080000}', "");
-    Expect(0, 126253, '\P{^Numeric_Value=000080000}', "");
-    Expect(1, 126252, '\p{Numeric_Value:8.000000000000000e+04}', "");
-    Expect(0, 126252, '\p{^Numeric_Value:8.000000000000000e+04}', "");
-    Expect(0, 126252, '\P{Numeric_Value:8.000000000000000e+04}', "");
-    Expect(1, 126252, '\P{^Numeric_Value:8.000000000000000e+04}', "");
-    Expect(0, 126253, '\p{Numeric_Value:8.000000000000000e+04}', "");
-    Expect(1, 126253, '\p{^Numeric_Value:8.000000000000000e+04}', "");
-    Expect(1, 126253, '\P{Numeric_Value:8.000000000000000e+04}', "");
-    Expect(0, 126253, '\P{^Numeric_Value:8.000000000000000e+04}', "");
-    Error('\p{Nv=:=000008000_0}');
-    Error('\P{Nv=:=000008000_0}');
+    Expect(1, 126252, '\p{Numeric_Value=0000080000}', "");
+    Expect(0, 126252, '\p{^Numeric_Value=0000080000}', "");
+    Expect(0, 126252, '\P{Numeric_Value=0000080000}', "");
+    Expect(1, 126252, '\P{^Numeric_Value=0000080000}', "");
+    Expect(0, 126253, '\p{Numeric_Value=0000080000}', "");
+    Expect(1, 126253, '\p{^Numeric_Value=0000080000}', "");
+    Expect(1, 126253, '\P{Numeric_Value=0000080000}', "");
+    Expect(0, 126253, '\P{^Numeric_Value=0000080000}', "");
+    Expect(1, 126252, '\p{Numeric_Value=8.000000000000000e+04}', "");
+    Expect(0, 126252, '\p{^Numeric_Value=8.000000000000000e+04}', "");
+    Expect(0, 126252, '\P{Numeric_Value=8.000000000000000e+04}', "");
+    Expect(1, 126252, '\P{^Numeric_Value=8.000000000000000e+04}', "");
+    Expect(0, 126253, '\p{Numeric_Value=8.000000000000000e+04}', "");
+    Expect(1, 126253, '\p{^Numeric_Value=8.000000000000000e+04}', "");
+    Expect(1, 126253, '\P{Numeric_Value=8.000000000000000e+04}', "");
+    Expect(0, 126253, '\P{^Numeric_Value=8.000000000000000e+04}', "");
+    Error('\p{Nv=_	0_0_0_8_0_000/a/}');
+    Error('\P{Nv=_	0_0_0_8_0_000/a/}');
     Expect(1, 126252, '\p{Nv=:\A80000\z:}', "");;
     Expect(0, 126253, '\p{Nv=:\A80000\z:}', "");;
-    Expect(1, 126252, '\p{Nv:	+000008000_0}', "");
-    Expect(0, 126252, '\p{^Nv:	+000008000_0}', "");
-    Expect(0, 126252, '\P{Nv:	+000008000_0}', "");
-    Expect(1, 126252, '\P{^Nv:	+000008000_0}', "");
-    Expect(0, 126253, '\p{Nv:	+000008000_0}', "");
-    Expect(1, 126253, '\p{^Nv:	+000008000_0}', "");
-    Expect(1, 126253, '\P{Nv:	+000008000_0}', "");
-    Expect(0, 126253, '\P{^Nv:	+000008000_0}', "");
+    Expect(1, 126252, '\p{Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(0, 126252, '\p{^Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(0, 126252, '\P{Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(1, 126252, '\P{^Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(0, 126253, '\p{Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(1, 126253, '\p{^Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(1, 126253, '\P{Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
+    Expect(0, 126253, '\P{^Nv=0_0_0_0_0_0_0_0_8_0_000}', "");
     Expect(1, 126252, '\p{Nv=8.000000000000000e+04}', "");
     Expect(0, 126252, '\p{^Nv=8.000000000000000e+04}', "");
     Expect(0, 126252, '\P{Nv=8.000000000000000e+04}', "");
@@ -84991,16 +85581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126253, '\p{^Nv=8.000000000000000e+04}', "");
     Expect(1, 126253, '\P{Nv=8.000000000000000e+04}', "");
     Expect(0, 126253, '\P{^Nv=8.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value= :=0_0_0_0_0_0_8_0_0_00}');
-    Error('\P{Is_Numeric_Value= :=0_0_0_0_0_0_8_0_0_00}');
-    Expect(1, 126252, '\p{Is_Numeric_Value=+00080000}', "");
-    Expect(0, 126252, '\p{^Is_Numeric_Value=+00080000}', "");
-    Expect(0, 126252, '\P{Is_Numeric_Value=+00080000}', "");
-    Expect(1, 126252, '\P{^Is_Numeric_Value=+00080000}', "");
-    Expect(0, 126253, '\p{Is_Numeric_Value=+00080000}', "");
-    Expect(1, 126253, '\p{^Is_Numeric_Value=+00080000}', "");
-    Expect(1, 126253, '\P{Is_Numeric_Value=+00080000}', "");
-    Expect(0, 126253, '\P{^Is_Numeric_Value=+00080000}', "");
+    Error('\p{Is_Numeric_Value=_:=+0_0_0_0_0_0_0_0_8_0_000}');
+    Error('\P{Is_Numeric_Value=_:=+0_0_0_0_0_0_0_0_8_0_000}');
+    Expect(1, 126252, '\p{Is_Numeric_Value=080000}', "");
+    Expect(0, 126252, '\p{^Is_Numeric_Value=080000}', "");
+    Expect(0, 126252, '\P{Is_Numeric_Value=080000}', "");
+    Expect(1, 126252, '\P{^Is_Numeric_Value=080000}', "");
+    Expect(0, 126253, '\p{Is_Numeric_Value=080000}', "");
+    Expect(1, 126253, '\p{^Is_Numeric_Value=080000}', "");
+    Expect(1, 126253, '\P{Is_Numeric_Value=080000}', "");
+    Expect(0, 126253, '\P{^Is_Numeric_Value=080000}', "");
     Expect(1, 126252, '\p{Is_Numeric_Value=8.000000000000000e+04}', "");
     Expect(0, 126252, '\p{^Is_Numeric_Value=8.000000000000000e+04}', "");
     Expect(0, 126252, '\P{Is_Numeric_Value=8.000000000000000e+04}', "");
@@ -85009,16 +85599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126253, '\p{^Is_Numeric_Value=8.000000000000000e+04}', "");
     Expect(1, 126253, '\P{Is_Numeric_Value=8.000000000000000e+04}', "");
     Expect(0, 126253, '\P{^Is_Numeric_Value=8.000000000000000e+04}', "");
-    Error('\p{Is_Nv= +00_08_00_00/a/}');
-    Error('\P{Is_Nv= +00_08_00_00/a/}');
-    Expect(1, 126252, '\p{Is_Nv=+080000}', "");
-    Expect(0, 126252, '\p{^Is_Nv=+080000}', "");
-    Expect(0, 126252, '\P{Is_Nv=+080000}', "");
-    Expect(1, 126252, '\P{^Is_Nv=+080000}', "");
-    Expect(0, 126253, '\p{Is_Nv=+080000}', "");
-    Expect(1, 126253, '\p{^Is_Nv=+080000}', "");
-    Expect(1, 126253, '\P{Is_Nv=+080000}', "");
-    Expect(0, 126253, '\P{^Is_Nv=+080000}', "");
+    Error('\p{Is_Nv: --0_0_0_0_0_0_0_0_080000/a/}');
+    Error('\P{Is_Nv: --0_0_0_0_0_0_0_0_080000/a/}');
+    Expect(1, 126252, '\p{Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(0, 126252, '\p{^Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(0, 126252, '\P{Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(1, 126252, '\P{^Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(0, 126253, '\p{Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(1, 126253, '\p{^Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(1, 126253, '\P{Is_Nv=+00_00_00_00_80_00_0}', "");
+    Expect(0, 126253, '\P{^Is_Nv=+00_00_00_00_80_00_0}', "");
     Expect(1, 126252, '\p{Is_Nv=8.000000000000000e+04}', "");
     Expect(0, 126252, '\p{^Is_Nv=8.000000000000000e+04}', "");
     Expect(0, 126252, '\P{Is_Nv=8.000000000000000e+04}', "");
@@ -85027,18 +85617,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126253, '\p{^Is_Nv=8.000000000000000e+04}', "");
     Expect(1, 126253, '\P{Is_Nv=8.000000000000000e+04}', "");
     Expect(0, 126253, '\P{^Is_Nv=8.000000000000000e+04}', "");
-    Error('\p{Numeric_Value= -0_0_0_0_8_00000/a/}');
-    Error('\P{Numeric_Value= -0_0_0_0_8_00000/a/}');
+    Error('\p{Numeric_Value=/a/0800000}');
+    Error('\P{Numeric_Value=/a/0800000}');
     Expect(1, 68084, '\p{Numeric_Value=:\A800000\z:}', "");;
     Expect(0, 68085, '\p{Numeric_Value=:\A800000\z:}', "");;
-    Expect(1, 68084, '\p{Numeric_Value:+000_000_000_800_000}', "");
-    Expect(0, 68084, '\p{^Numeric_Value:+000_000_000_800_000}', "");
-    Expect(0, 68084, '\P{Numeric_Value:+000_000_000_800_000}', "");
-    Expect(1, 68084, '\P{^Numeric_Value:+000_000_000_800_000}', "");
-    Expect(0, 68085, '\p{Numeric_Value:+000_000_000_800_000}', "");
-    Expect(1, 68085, '\p{^Numeric_Value:+000_000_000_800_000}', "");
-    Expect(1, 68085, '\P{Numeric_Value:+000_000_000_800_000}', "");
-    Expect(0, 68085, '\P{^Numeric_Value:+000_000_000_800_000}', "");
+    Expect(1, 68084, '\p{Numeric_Value=00800000}', "");
+    Expect(0, 68084, '\p{^Numeric_Value=00800000}', "");
+    Expect(0, 68084, '\P{Numeric_Value=00800000}', "");
+    Expect(1, 68084, '\P{^Numeric_Value=00800000}', "");
+    Expect(0, 68085, '\p{Numeric_Value=00800000}', "");
+    Expect(1, 68085, '\p{^Numeric_Value=00800000}', "");
+    Expect(1, 68085, '\P{Numeric_Value=00800000}', "");
+    Expect(0, 68085, '\P{^Numeric_Value=00800000}', "");
     Expect(1, 68084, '\p{Numeric_Value=8.000000000000000e+05}', "");
     Expect(0, 68084, '\p{^Numeric_Value=8.000000000000000e+05}', "");
     Expect(0, 68084, '\P{Numeric_Value=8.000000000000000e+05}', "");
@@ -85047,36 +85637,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68085, '\p{^Numeric_Value=8.000000000000000e+05}', "");
     Expect(1, 68085, '\P{Numeric_Value=8.000000000000000e+05}', "");
     Expect(0, 68085, '\P{^Numeric_Value=8.000000000000000e+05}', "");
-    Error('\p{Nv=:=-	+0000_8000_00}');
-    Error('\P{Nv=:=-	+0000_8000_00}');
+    Error('\p{Nv: :=+0800000}');
+    Error('\P{Nv: :=+0800000}');
     Expect(1, 68084, '\p{Nv=:\A800000\z:}', "");;
     Expect(0, 68085, '\p{Nv=:\A800000\z:}', "");;
-    Expect(1, 68084, '\p{Nv=00000800000}', "");
-    Expect(0, 68084, '\p{^Nv=00000800000}', "");
-    Expect(0, 68084, '\P{Nv=00000800000}', "");
-    Expect(1, 68084, '\P{^Nv=00000800000}', "");
-    Expect(0, 68085, '\p{Nv=00000800000}', "");
-    Expect(1, 68085, '\p{^Nv=00000800000}', "");
-    Expect(1, 68085, '\P{Nv=00000800000}', "");
-    Expect(0, 68085, '\P{^Nv=00000800000}', "");
-    Expect(1, 68084, '\p{Nv=8.000000000000000e+05}', "");
-    Expect(0, 68084, '\p{^Nv=8.000000000000000e+05}', "");
-    Expect(0, 68084, '\P{Nv=8.000000000000000e+05}', "");
-    Expect(1, 68084, '\P{^Nv=8.000000000000000e+05}', "");
-    Expect(0, 68085, '\p{Nv=8.000000000000000e+05}', "");
-    Expect(1, 68085, '\p{^Nv=8.000000000000000e+05}', "");
-    Expect(1, 68085, '\P{Nv=8.000000000000000e+05}', "");
-    Expect(0, 68085, '\P{^Nv=8.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=_/a/000000800000}');
-    Error('\P{Is_Numeric_Value=_/a/000000800000}');
-    Expect(1, 68084, '\p{Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(0, 68084, '\p{^Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(0, 68084, '\P{Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(1, 68084, '\P{^Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(0, 68085, '\p{Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(1, 68085, '\p{^Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(1, 68085, '\P{Is_Numeric_Value=00_00_80_00_00}', "");
-    Expect(0, 68085, '\P{^Is_Numeric_Value=00_00_80_00_00}', "");
+    Expect(1, 68084, '\p{Nv=+00800000}', "");
+    Expect(0, 68084, '\p{^Nv=+00800000}', "");
+    Expect(0, 68084, '\P{Nv=+00800000}', "");
+    Expect(1, 68084, '\P{^Nv=+00800000}', "");
+    Expect(0, 68085, '\p{Nv=+00800000}', "");
+    Expect(1, 68085, '\p{^Nv=+00800000}', "");
+    Expect(1, 68085, '\P{Nv=+00800000}', "");
+    Expect(0, 68085, '\P{^Nv=+00800000}', "");
+    Expect(1, 68084, '\p{Nv:   8.000000000000000e+05}', "");
+    Expect(0, 68084, '\p{^Nv:   8.000000000000000e+05}', "");
+    Expect(0, 68084, '\P{Nv:   8.000000000000000e+05}', "");
+    Expect(1, 68084, '\P{^Nv:   8.000000000000000e+05}', "");
+    Expect(0, 68085, '\p{Nv:   8.000000000000000e+05}', "");
+    Expect(1, 68085, '\p{^Nv:   8.000000000000000e+05}', "");
+    Expect(1, 68085, '\P{Nv:   8.000000000000000e+05}', "");
+    Expect(0, 68085, '\P{^Nv:   8.000000000000000e+05}', "");
+    Error('\p{Is_Numeric_Value=_-00_80_00_00/a/}');
+    Error('\P{Is_Numeric_Value=_-00_80_00_00/a/}');
+    Expect(1, 68084, '\p{Is_Numeric_Value=0000800000}', "");
+    Expect(0, 68084, '\p{^Is_Numeric_Value=0000800000}', "");
+    Expect(0, 68084, '\P{Is_Numeric_Value=0000800000}', "");
+    Expect(1, 68084, '\P{^Is_Numeric_Value=0000800000}', "");
+    Expect(0, 68085, '\p{Is_Numeric_Value=0000800000}', "");
+    Expect(1, 68085, '\p{^Is_Numeric_Value=0000800000}', "");
+    Expect(1, 68085, '\P{Is_Numeric_Value=0000800000}', "");
+    Expect(0, 68085, '\P{^Is_Numeric_Value=0000800000}', "");
     Expect(1, 68084, '\p{Is_Numeric_Value=8.000000000000000e+05}', "");
     Expect(0, 68084, '\p{^Is_Numeric_Value=8.000000000000000e+05}', "");
     Expect(0, 68084, '\P{Is_Numeric_Value=8.000000000000000e+05}', "");
@@ -85085,16 +85675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68085, '\p{^Is_Numeric_Value=8.000000000000000e+05}', "");
     Expect(1, 68085, '\P{Is_Numeric_Value=8.000000000000000e+05}', "");
     Expect(0, 68085, '\P{^Is_Numeric_Value=8.000000000000000e+05}', "");
-    Error('\p{Is_Nv=-_+000_008_000_00:=}');
-    Error('\P{Is_Nv=-_+000_008_000_00:=}');
-    Expect(1, 68084, '\p{Is_Nv=080_000_0}', "");
-    Expect(0, 68084, '\p{^Is_Nv=080_000_0}', "");
-    Expect(0, 68084, '\P{Is_Nv=080_000_0}', "");
-    Expect(1, 68084, '\P{^Is_Nv=080_000_0}', "");
-    Expect(0, 68085, '\p{Is_Nv=080_000_0}', "");
-    Expect(1, 68085, '\p{^Is_Nv=080_000_0}', "");
-    Expect(1, 68085, '\P{Is_Nv=080_000_0}', "");
-    Expect(0, 68085, '\P{^Is_Nv=080_000_0}', "");
+    Error('\p{Is_Nv= +0800000:=}');
+    Error('\P{Is_Nv= +0800000:=}');
+    Expect(1, 68084, '\p{Is_Nv:   +00000000800000}', "");
+    Expect(0, 68084, '\p{^Is_Nv:   +00000000800000}', "");
+    Expect(0, 68084, '\P{Is_Nv:   +00000000800000}', "");
+    Expect(1, 68084, '\P{^Is_Nv:   +00000000800000}', "");
+    Expect(0, 68085, '\p{Is_Nv:   +00000000800000}', "");
+    Expect(1, 68085, '\p{^Is_Nv:   +00000000800000}', "");
+    Expect(1, 68085, '\P{Is_Nv:   +00000000800000}', "");
+    Expect(0, 68085, '\P{^Is_Nv:   +00000000800000}', "");
     Expect(1, 68084, '\p{Is_Nv=8.000000000000000e+05}', "");
     Expect(0, 68084, '\p{^Is_Nv=8.000000000000000e+05}', "");
     Expect(0, 68084, '\P{Is_Nv=8.000000000000000e+05}', "");
@@ -85103,18 +85693,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68085, '\p{^Is_Nv=8.000000000000000e+05}', "");
     Expect(1, 68085, '\P{Is_Nv=8.000000000000000e+05}', "");
     Expect(0, 68085, '\P{^Is_Nv=8.000000000000000e+05}', "");
-    Error('\p{Numeric_Value= 00009:=}');
-    Error('\P{Numeric_Value= 00009:=}');
+    Error('\p{Numeric_Value=- +0009/a/}');
+    Error('\P{Numeric_Value=- +0009/a/}');
     Expect(1, 194704, '\p{Numeric_Value=:\A9\z:}', "");;
     Expect(0, 194705, '\p{Numeric_Value=:\A9\z:}', "");;
-    Expect(1, 194704, '\p{Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(0, 194704, '\p{^Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(0, 194704, '\P{Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(1, 194704, '\P{^Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(0, 194705, '\p{Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(1, 194705, '\p{^Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(1, 194705, '\P{Numeric_Value=0_0_0_0_0_0_0_009}', "");
-    Expect(0, 194705, '\P{^Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(1, 194704, '\p{Numeric_Value=+009}', "");
+    Expect(0, 194704, '\p{^Numeric_Value=+009}', "");
+    Expect(0, 194704, '\P{Numeric_Value=+009}', "");
+    Expect(1, 194704, '\P{^Numeric_Value=+009}', "");
+    Expect(0, 194705, '\p{Numeric_Value=+009}', "");
+    Expect(1, 194705, '\p{^Numeric_Value=+009}', "");
+    Expect(1, 194705, '\P{Numeric_Value=+009}', "");
+    Expect(0, 194705, '\P{^Numeric_Value=+009}', "");
     Expect(1, 194704, '\p{Numeric_Value=9.000000000000000e+00}', "");
     Expect(0, 194704, '\p{^Numeric_Value=9.000000000000000e+00}', "");
     Expect(0, 194704, '\P{Numeric_Value=9.000000000000000e+00}', "");
@@ -85123,36 +85713,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194705, '\p{^Numeric_Value=9.000000000000000e+00}', "");
     Expect(1, 194705, '\P{Numeric_Value=9.000000000000000e+00}', "");
     Expect(0, 194705, '\P{^Numeric_Value=9.000000000000000e+00}', "");
-    Error('\p{Nv=:=_	000_9}');
-    Error('\P{Nv=:=_	000_9}');
+    Error('\p{Nv=:= 	+9}');
+    Error('\P{Nv=:= 	+9}');
     Expect(1, 194704, '\p{Nv=:\A9\z:}', "");;
     Expect(0, 194705, '\p{Nv=:\A9\z:}', "");;
-    Expect(1, 194704, '\p{Nv:009}', "");
-    Expect(0, 194704, '\p{^Nv:009}', "");
-    Expect(0, 194704, '\P{Nv:009}', "");
-    Expect(1, 194704, '\P{^Nv:009}', "");
-    Expect(0, 194705, '\p{Nv:009}', "");
-    Expect(1, 194705, '\p{^Nv:009}', "");
-    Expect(1, 194705, '\P{Nv:009}', "");
-    Expect(0, 194705, '\P{^Nv:009}', "");
-    Expect(1, 194704, '\p{Nv:	9.000000000000000e+00}', "");
-    Expect(0, 194704, '\p{^Nv:	9.000000000000000e+00}', "");
-    Expect(0, 194704, '\P{Nv:	9.000000000000000e+00}', "");
-    Expect(1, 194704, '\P{^Nv:	9.000000000000000e+00}', "");
-    Expect(0, 194705, '\p{Nv:	9.000000000000000e+00}', "");
-    Expect(1, 194705, '\p{^Nv:	9.000000000000000e+00}', "");
-    Expect(1, 194705, '\P{Nv:	9.000000000000000e+00}', "");
-    Expect(0, 194705, '\P{^Nv:	9.000000000000000e+00}', "");
-    Error('\p{Is_Numeric_Value= _0000009:=}');
-    Error('\P{Is_Numeric_Value= _0000009:=}');
-    Expect(1, 194704, '\p{Is_Numeric_Value=0000009}', "");
-    Expect(0, 194704, '\p{^Is_Numeric_Value=0000009}', "");
-    Expect(0, 194704, '\P{Is_Numeric_Value=0000009}', "");
-    Expect(1, 194704, '\P{^Is_Numeric_Value=0000009}', "");
-    Expect(0, 194705, '\p{Is_Numeric_Value=0000009}', "");
-    Expect(1, 194705, '\p{^Is_Numeric_Value=0000009}', "");
-    Expect(1, 194705, '\P{Is_Numeric_Value=0000009}', "");
-    Expect(0, 194705, '\P{^Is_Numeric_Value=0000009}', "");
+    Expect(1, 194704, '\p{Nv=09}', "");
+    Expect(0, 194704, '\p{^Nv=09}', "");
+    Expect(0, 194704, '\P{Nv=09}', "");
+    Expect(1, 194704, '\P{^Nv=09}', "");
+    Expect(0, 194705, '\p{Nv=09}', "");
+    Expect(1, 194705, '\p{^Nv=09}', "");
+    Expect(1, 194705, '\P{Nv=09}', "");
+    Expect(0, 194705, '\P{^Nv=09}', "");
+    Expect(1, 194704, '\p{Nv=9.000000000000000e+00}', "");
+    Expect(0, 194704, '\p{^Nv=9.000000000000000e+00}', "");
+    Expect(0, 194704, '\P{Nv=9.000000000000000e+00}', "");
+    Expect(1, 194704, '\P{^Nv=9.000000000000000e+00}', "");
+    Expect(0, 194705, '\p{Nv=9.000000000000000e+00}', "");
+    Expect(1, 194705, '\p{^Nv=9.000000000000000e+00}', "");
+    Expect(1, 194705, '\P{Nv=9.000000000000000e+00}', "");
+    Expect(0, 194705, '\P{^Nv=9.000000000000000e+00}', "");
+    Error('\p{Is_Numeric_Value: :=- 00000009}');
+    Error('\P{Is_Numeric_Value: :=- 00000009}');
+    Expect(1, 194704, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(0, 194704, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(0, 194704, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(1, 194704, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(0, 194705, '\p{Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(1, 194705, '\p{^Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(1, 194705, '\P{Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
+    Expect(0, 194705, '\P{^Is_Numeric_Value=0_0_0_0_0_0_0_009}', "");
     Expect(1, 194704, '\p{Is_Numeric_Value=9.000000000000000e+00}', "");
     Expect(0, 194704, '\p{^Is_Numeric_Value=9.000000000000000e+00}', "");
     Expect(0, 194704, '\P{Is_Numeric_Value=9.000000000000000e+00}', "");
@@ -85161,16 +85751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194705, '\p{^Is_Numeric_Value=9.000000000000000e+00}', "");
     Expect(1, 194705, '\P{Is_Numeric_Value=9.000000000000000e+00}', "");
     Expect(0, 194705, '\P{^Is_Numeric_Value=9.000000000000000e+00}', "");
-    Error('\p{Is_Nv=+000009:=}');
-    Error('\P{Is_Nv=+000009:=}');
-    Expect(1, 194704, '\p{Is_Nv=+00000000_9}', "");
-    Expect(0, 194704, '\p{^Is_Nv=+00000000_9}', "");
-    Expect(0, 194704, '\P{Is_Nv=+00000000_9}', "");
-    Expect(1, 194704, '\P{^Is_Nv=+00000000_9}', "");
-    Expect(0, 194705, '\p{Is_Nv=+00000000_9}', "");
-    Expect(1, 194705, '\p{^Is_Nv=+00000000_9}', "");
-    Expect(1, 194705, '\P{Is_Nv=+00000000_9}', "");
-    Expect(0, 194705, '\P{^Is_Nv=+00000000_9}', "");
+    Error('\p{Is_Nv=00009/a/}');
+    Error('\P{Is_Nv=00009/a/}');
+    Expect(1, 194704, '\p{Is_Nv=0_9}', "");
+    Expect(0, 194704, '\p{^Is_Nv=0_9}', "");
+    Expect(0, 194704, '\P{Is_Nv=0_9}', "");
+    Expect(1, 194704, '\P{^Is_Nv=0_9}', "");
+    Expect(0, 194705, '\p{Is_Nv=0_9}', "");
+    Expect(1, 194705, '\p{^Is_Nv=0_9}', "");
+    Expect(1, 194705, '\P{Is_Nv=0_9}', "");
+    Expect(0, 194705, '\P{^Is_Nv=0_9}', "");
     Expect(1, 194704, '\p{Is_Nv=9.000000000000000e+00}', "");
     Expect(0, 194704, '\p{^Is_Nv=9.000000000000000e+00}', "");
     Expect(0, 194704, '\P{Is_Nv=9.000000000000000e+00}', "");
@@ -85179,18 +85769,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194705, '\p{^Is_Nv=9.000000000000000e+00}', "");
     Expect(1, 194705, '\P{Is_Nv=9.000000000000000e+00}', "");
     Expect(0, 194705, '\P{^Is_Nv=9.000000000000000e+00}', "");
-    Error('\p{Numeric_Value=-:=0000000009/000002}');
-    Error('\P{Numeric_Value=-:=0000000009/000002}');
+    Error('\p{Numeric_Value=/a/+9/0000002}');
+    Error('\P{Numeric_Value=/a/+9/0000002}');
     Expect(1, 3886, '\p{Numeric_Value=:\A9/2\z:}', "");;
     Expect(0, 3887, '\p{Numeric_Value=:\A9/2\z:}', "");;
-    Expect(1, 3886, '\p{Numeric_Value=000009/00000002}', "");
-    Expect(0, 3886, '\p{^Numeric_Value=000009/00000002}', "");
-    Expect(0, 3886, '\P{Numeric_Value=000009/00000002}', "");
-    Expect(1, 3886, '\P{^Numeric_Value=000009/00000002}', "");
-    Expect(0, 3887, '\p{Numeric_Value=000009/00000002}', "");
-    Expect(1, 3887, '\p{^Numeric_Value=000009/00000002}', "");
-    Expect(1, 3887, '\P{Numeric_Value=000009/00000002}', "");
-    Expect(0, 3887, '\P{^Numeric_Value=000009/00000002}', "");
+    Expect(1, 3886, '\p{Numeric_Value=+009/0000002}', "");
+    Expect(0, 3886, '\p{^Numeric_Value=+009/0000002}', "");
+    Expect(0, 3886, '\P{Numeric_Value=+009/0000002}', "");
+    Expect(1, 3886, '\P{^Numeric_Value=+009/0000002}', "");
+    Expect(0, 3887, '\p{Numeric_Value=+009/0000002}', "");
+    Expect(1, 3887, '\p{^Numeric_Value=+009/0000002}', "");
+    Expect(1, 3887, '\P{Numeric_Value=+009/0000002}', "");
+    Expect(0, 3887, '\P{^Numeric_Value=+009/0000002}', "");
     Expect(1, 3886, '\p{Numeric_Value=540/120}', "");
     Expect(0, 3886, '\p{^Numeric_Value=540/120}', "");
     Expect(0, 3886, '\P{Numeric_Value=540/120}', "");
@@ -85207,14 +85797,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3887, '\p{^Numeric_Value=4.5e+00}', "");
     Expect(1, 3887, '\P{Numeric_Value=4.5e+00}', "");
     Expect(0, 3887, '\P{^Numeric_Value=4.5e+00}', "");
-    Expect(1, 3886, '\p{Numeric_Value:   4.5}', "");
-    Expect(0, 3886, '\p{^Numeric_Value:   4.5}', "");
-    Expect(0, 3886, '\P{Numeric_Value:   4.5}', "");
-    Expect(1, 3886, '\P{^Numeric_Value:   4.5}', "");
-    Expect(0, 3887, '\p{Numeric_Value:   4.5}', "");
-    Expect(1, 3887, '\p{^Numeric_Value:   4.5}', "");
-    Expect(1, 3887, '\P{Numeric_Value:   4.5}', "");
-    Expect(0, 3887, '\P{^Numeric_Value:   4.5}', "");
+    Expect(1, 3886, '\p{Numeric_Value=4.5}', "");
+    Expect(0, 3886, '\p{^Numeric_Value=4.5}', "");
+    Expect(0, 3886, '\P{Numeric_Value=4.5}', "");
+    Expect(1, 3886, '\P{^Numeric_Value=4.5}', "");
+    Expect(0, 3887, '\p{Numeric_Value=4.5}', "");
+    Expect(1, 3887, '\p{^Numeric_Value=4.5}', "");
+    Expect(1, 3887, '\P{Numeric_Value=4.5}', "");
+    Expect(0, 3887, '\P{^Numeric_Value=4.5}', "");
     Expect(1, 3886, '\p{Numeric_Value=4.50e+00}', "");
     Expect(0, 3886, '\p{^Numeric_Value=4.50e+00}', "");
     Expect(0, 3886, '\P{Numeric_Value=4.50e+00}', "");
@@ -85231,18 +85821,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3887, '\p{^Numeric_Value=4.50}', "");
     Expect(1, 3887, '\P{Numeric_Value=4.50}', "");
     Expect(0, 3887, '\P{^Numeric_Value=4.50}', "");
-    Error('\p{Nv=	-009/00000002/a/}');
-    Error('\P{Nv=	-009/00000002/a/}');
+    Error('\p{Nv=-_+0009/002/a/}');
+    Error('\P{Nv=-_+0009/002/a/}');
     Expect(1, 3886, '\p{Nv=:\A9/2\z:}', "");;
     Expect(0, 3887, '\p{Nv=:\A9/2\z:}', "");;
-    Expect(1, 3886, '\p{Nv=0000009/00002}', "");
-    Expect(0, 3886, '\p{^Nv=0000009/00002}', "");
-    Expect(0, 3886, '\P{Nv=0000009/00002}', "");
-    Expect(1, 3886, '\P{^Nv=0000009/00002}', "");
-    Expect(0, 3887, '\p{Nv=0000009/00002}', "");
-    Expect(1, 3887, '\p{^Nv=0000009/00002}', "");
-    Expect(1, 3887, '\P{Nv=0000009/00002}', "");
-    Expect(0, 3887, '\P{^Nv=0000009/00002}', "");
+    Expect(1, 3886, '\p{Nv=+9/00002}', "");
+    Expect(0, 3886, '\p{^Nv=+9/00002}', "");
+    Expect(0, 3886, '\P{Nv=+9/00002}', "");
+    Expect(1, 3886, '\P{^Nv=+9/00002}', "");
+    Expect(0, 3887, '\p{Nv=+9/00002}', "");
+    Expect(1, 3887, '\p{^Nv=+9/00002}', "");
+    Expect(1, 3887, '\P{Nv=+9/00002}', "");
+    Expect(0, 3887, '\P{^Nv=+9/00002}', "");
     Expect(1, 3886, '\p{Nv: 540/120}', "");
     Expect(0, 3886, '\p{^Nv: 540/120}', "");
     Expect(0, 3886, '\P{Nv: 540/120}', "");
@@ -85251,22 +85841,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3887, '\p{^Nv: 540/120}', "");
     Expect(1, 3887, '\P{Nv: 540/120}', "");
     Expect(0, 3887, '\P{^Nv: 540/120}', "");
-    Expect(1, 3886, '\p{Nv=4.5e+00}', "");
-    Expect(0, 3886, '\p{^Nv=4.5e+00}', "");
-    Expect(0, 3886, '\P{Nv=4.5e+00}', "");
-    Expect(1, 3886, '\P{^Nv=4.5e+00}', "");
-    Expect(0, 3887, '\p{Nv=4.5e+00}', "");
-    Expect(1, 3887, '\p{^Nv=4.5e+00}', "");
-    Expect(1, 3887, '\P{Nv=4.5e+00}', "");
-    Expect(0, 3887, '\P{^Nv=4.5e+00}', "");
-    Expect(1, 3886, '\p{Nv:   4.5}', "");
-    Expect(0, 3886, '\p{^Nv:   4.5}', "");
-    Expect(0, 3886, '\P{Nv:   4.5}', "");
-    Expect(1, 3886, '\P{^Nv:   4.5}', "");
-    Expect(0, 3887, '\p{Nv:   4.5}', "");
-    Expect(1, 3887, '\p{^Nv:   4.5}', "");
-    Expect(1, 3887, '\P{Nv:   4.5}', "");
-    Expect(0, 3887, '\P{^Nv:   4.5}', "");
+    Expect(1, 3886, '\p{Nv: 4.5e+00}', "");
+    Expect(0, 3886, '\p{^Nv: 4.5e+00}', "");
+    Expect(0, 3886, '\P{Nv: 4.5e+00}', "");
+    Expect(1, 3886, '\P{^Nv: 4.5e+00}', "");
+    Expect(0, 3887, '\p{Nv: 4.5e+00}', "");
+    Expect(1, 3887, '\p{^Nv: 4.5e+00}', "");
+    Expect(1, 3887, '\P{Nv: 4.5e+00}', "");
+    Expect(0, 3887, '\P{^Nv: 4.5e+00}', "");
+    Expect(1, 3886, '\p{Nv:	4.5}', "");
+    Expect(0, 3886, '\p{^Nv:	4.5}', "");
+    Expect(0, 3886, '\P{Nv:	4.5}', "");
+    Expect(1, 3886, '\P{^Nv:	4.5}', "");
+    Expect(0, 3887, '\p{Nv:	4.5}', "");
+    Expect(1, 3887, '\p{^Nv:	4.5}', "");
+    Expect(1, 3887, '\P{Nv:	4.5}', "");
+    Expect(0, 3887, '\P{^Nv:	4.5}', "");
     Expect(1, 3886, '\p{Nv=4.50e+00}', "");
     Expect(0, 3886, '\p{^Nv=4.50e+00}', "");
     Expect(0, 3886, '\P{Nv=4.50e+00}', "");
@@ -85283,16 +85873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3887, '\p{^Nv=4.50}', "");
     Expect(1, 3887, '\P{Nv=4.50}', "");
     Expect(0, 3887, '\P{^Nv=4.50}', "");
-    Error('\p{Is_Numeric_Value:		:=009/00002}');
-    Error('\P{Is_Numeric_Value:		:=009/00002}');
-    Expect(1, 3886, '\p{Is_Numeric_Value=9/000000002}', "");
-    Expect(0, 3886, '\p{^Is_Numeric_Value=9/000000002}', "");
-    Expect(0, 3886, '\P{Is_Numeric_Value=9/000000002}', "");
-    Expect(1, 3886, '\P{^Is_Numeric_Value=9/000000002}', "");
-    Expect(0, 3887, '\p{Is_Numeric_Value=9/000000002}', "");
-    Expect(1, 3887, '\p{^Is_Numeric_Value=9/000000002}', "");
-    Expect(1, 3887, '\P{Is_Numeric_Value=9/000000002}', "");
-    Expect(0, 3887, '\P{^Is_Numeric_Value=9/000000002}', "");
+    Error('\p{Is_Numeric_Value=:=_	009/0002}');
+    Error('\P{Is_Numeric_Value=:=_	009/0002}');
+    Expect(1, 3886, '\p{Is_Numeric_Value=00009/002}', "");
+    Expect(0, 3886, '\p{^Is_Numeric_Value=00009/002}', "");
+    Expect(0, 3886, '\P{Is_Numeric_Value=00009/002}', "");
+    Expect(1, 3886, '\P{^Is_Numeric_Value=00009/002}', "");
+    Expect(0, 3887, '\p{Is_Numeric_Value=00009/002}', "");
+    Expect(1, 3887, '\p{^Is_Numeric_Value=00009/002}', "");
+    Expect(1, 3887, '\P{Is_Numeric_Value=00009/002}', "");
+    Expect(0, 3887, '\P{^Is_Numeric_Value=00009/002}', "");
     Expect(1, 3886, '\p{Is_Numeric_Value=540/120}', "");
     Expect(0, 3886, '\p{^Is_Numeric_Value=540/120}', "");
     Expect(0, 3886, '\P{Is_Numeric_Value=540/120}', "");
@@ -85333,24 +85923,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3887, '\p{^Is_Numeric_Value=4.50}', "");
     Expect(1, 3887, '\P{Is_Numeric_Value=4.50}', "");
     Expect(0, 3887, '\P{^Is_Numeric_Value=4.50}', "");
-    Error('\p{Is_Nv= /a/9/00000002}');
-    Error('\P{Is_Nv= /a/9/00000002}');
-    Expect(1, 3886, '\p{Is_Nv=+000009/02}', "");
-    Expect(0, 3886, '\p{^Is_Nv=+000009/02}', "");
-    Expect(0, 3886, '\P{Is_Nv=+000009/02}', "");
-    Expect(1, 3886, '\P{^Is_Nv=+000009/02}', "");
-    Expect(0, 3887, '\p{Is_Nv=+000009/02}', "");
-    Expect(1, 3887, '\p{^Is_Nv=+000009/02}', "");
-    Expect(1, 3887, '\P{Is_Nv=+000009/02}', "");
-    Expect(0, 3887, '\P{^Is_Nv=+000009/02}', "");
-    Expect(1, 3886, '\p{Is_Nv:540/120}', "");
-    Expect(0, 3886, '\p{^Is_Nv:540/120}', "");
-    Expect(0, 3886, '\P{Is_Nv:540/120}', "");
-    Expect(1, 3886, '\P{^Is_Nv:540/120}', "");
-    Expect(0, 3887, '\p{Is_Nv:540/120}', "");
-    Expect(1, 3887, '\p{^Is_Nv:540/120}', "");
-    Expect(1, 3887, '\P{Is_Nv:540/120}', "");
-    Expect(0, 3887, '\P{^Is_Nv:540/120}', "");
+    Error('\p{Is_Nv=_	+0000009/000000002:=}');
+    Error('\P{Is_Nv=_	+0000009/000000002:=}');
+    Expect(1, 3886, '\p{Is_Nv=+0009/0000002}', "");
+    Expect(0, 3886, '\p{^Is_Nv=+0009/0000002}', "");
+    Expect(0, 3886, '\P{Is_Nv=+0009/0000002}', "");
+    Expect(1, 3886, '\P{^Is_Nv=+0009/0000002}', "");
+    Expect(0, 3887, '\p{Is_Nv=+0009/0000002}', "");
+    Expect(1, 3887, '\p{^Is_Nv=+0009/0000002}', "");
+    Expect(1, 3887, '\P{Is_Nv=+0009/0000002}', "");
+    Expect(0, 3887, '\P{^Is_Nv=+0009/0000002}', "");
+    Expect(1, 3886, '\p{Is_Nv=540/120}', "");
+    Expect(0, 3886, '\p{^Is_Nv=540/120}', "");
+    Expect(0, 3886, '\P{Is_Nv=540/120}', "");
+    Expect(1, 3886, '\P{^Is_Nv=540/120}', "");
+    Expect(0, 3887, '\p{Is_Nv=540/120}', "");
+    Expect(1, 3887, '\p{^Is_Nv=540/120}', "");
+    Expect(1, 3887, '\P{Is_Nv=540/120}', "");
+    Expect(0, 3887, '\P{^Is_Nv=540/120}', "");
     Expect(1, 3886, '\p{Is_Nv=4.5e+00}', "");
     Expect(0, 3886, '\p{^Is_Nv=4.5e+00}', "");
     Expect(0, 3886, '\P{Is_Nv=4.5e+00}', "");
@@ -85383,18 +85973,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3887, '\p{^Is_Nv=4.50}', "");
     Expect(1, 3887, '\P{Is_Nv=4.50}', "");
     Expect(0, 3887, '\P{^Is_Nv=4.50}', "");
-    Error('\p{Numeric_Value=	009_0:=}');
-    Error('\P{Numeric_Value=	009_0:=}');
+    Error('\p{Numeric_Value=	:=+0000000090}');
+    Error('\P{Numeric_Value=	:=+0000000090}');
     Expect(1, 126226, '\p{Numeric_Value=:\A90\z:}', "");;
     Expect(0, 126227, '\p{Numeric_Value=:\A90\z:}', "");;
-    Expect(1, 126226, '\p{Numeric_Value=000_009_0}', "");
-    Expect(0, 126226, '\p{^Numeric_Value=000_009_0}', "");
-    Expect(0, 126226, '\P{Numeric_Value=000_009_0}', "");
-    Expect(1, 126226, '\P{^Numeric_Value=000_009_0}', "");
-    Expect(0, 126227, '\p{Numeric_Value=000_009_0}', "");
-    Expect(1, 126227, '\p{^Numeric_Value=000_009_0}', "");
-    Expect(1, 126227, '\P{Numeric_Value=000_009_0}', "");
-    Expect(0, 126227, '\P{^Numeric_Value=000_009_0}', "");
+    Expect(1, 126226, '\p{Numeric_Value=90}', "");
+    Expect(0, 126226, '\p{^Numeric_Value=90}', "");
+    Expect(0, 126226, '\P{Numeric_Value=90}', "");
+    Expect(1, 126226, '\P{^Numeric_Value=90}', "");
+    Expect(0, 126227, '\p{Numeric_Value=90}', "");
+    Expect(1, 126227, '\p{^Numeric_Value=90}', "");
+    Expect(1, 126227, '\P{Numeric_Value=90}', "");
+    Expect(0, 126227, '\P{^Numeric_Value=90}', "");
     Expect(1, 126226, '\p{Numeric_Value=9.000000000000000e+01}', "");
     Expect(0, 126226, '\p{^Numeric_Value=9.000000000000000e+01}', "");
     Expect(0, 126226, '\P{Numeric_Value=9.000000000000000e+01}', "");
@@ -85403,18 +85993,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126227, '\p{^Numeric_Value=9.000000000000000e+01}', "");
     Expect(1, 126227, '\P{Numeric_Value=9.000000000000000e+01}', "");
     Expect(0, 126227, '\P{^Numeric_Value=9.000000000000000e+01}', "");
-    Error('\p{Nv= 0_0_0_0_0_0_0_0_0_90:=}');
-    Error('\P{Nv= 0_0_0_0_0_0_0_0_0_90:=}');
+    Error('\p{Nv=:=000090}');
+    Error('\P{Nv=:=000090}');
     Expect(1, 126226, '\p{Nv=:\A90\z:}', "");;
     Expect(0, 126227, '\p{Nv=:\A90\z:}', "");;
-    Expect(1, 126226, '\p{Nv=+00090}', "");
-    Expect(0, 126226, '\p{^Nv=+00090}', "");
-    Expect(0, 126226, '\P{Nv=+00090}', "");
-    Expect(1, 126226, '\P{^Nv=+00090}', "");
-    Expect(0, 126227, '\p{Nv=+00090}', "");
-    Expect(1, 126227, '\p{^Nv=+00090}', "");
-    Expect(1, 126227, '\P{Nv=+00090}', "");
-    Expect(0, 126227, '\P{^Nv=+00090}', "");
+    Expect(1, 126226, '\p{Nv=09_0}', "");
+    Expect(0, 126226, '\p{^Nv=09_0}', "");
+    Expect(0, 126226, '\P{Nv=09_0}', "");
+    Expect(1, 126226, '\P{^Nv=09_0}', "");
+    Expect(0, 126227, '\p{Nv=09_0}', "");
+    Expect(1, 126227, '\p{^Nv=09_0}', "");
+    Expect(1, 126227, '\P{Nv=09_0}', "");
+    Expect(0, 126227, '\P{^Nv=09_0}', "");
     Expect(1, 126226, '\p{Nv=9.000000000000000e+01}', "");
     Expect(0, 126226, '\p{^Nv=9.000000000000000e+01}', "");
     Expect(0, 126226, '\P{Nv=9.000000000000000e+01}', "");
@@ -85423,16 +86013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126227, '\p{^Nv=9.000000000000000e+01}', "");
     Expect(1, 126227, '\P{Nv=9.000000000000000e+01}', "");
     Expect(0, 126227, '\P{^Nv=9.000000000000000e+01}', "");
-    Error('\p{Is_Numeric_Value=_09_0:=}');
-    Error('\P{Is_Numeric_Value=_09_0:=}');
-    Expect(1, 126226, '\p{Is_Numeric_Value=090}', "");
-    Expect(0, 126226, '\p{^Is_Numeric_Value=090}', "");
-    Expect(0, 126226, '\P{Is_Numeric_Value=090}', "");
-    Expect(1, 126226, '\P{^Is_Numeric_Value=090}', "");
-    Expect(0, 126227, '\p{Is_Numeric_Value=090}', "");
-    Expect(1, 126227, '\p{^Is_Numeric_Value=090}', "");
-    Expect(1, 126227, '\P{Is_Numeric_Value=090}', "");
-    Expect(0, 126227, '\P{^Is_Numeric_Value=090}', "");
+    Error('\p{Is_Numeric_Value=	 90:=}');
+    Error('\P{Is_Numeric_Value=	 90:=}');
+    Expect(1, 126226, '\p{Is_Numeric_Value=00090}', "");
+    Expect(0, 126226, '\p{^Is_Numeric_Value=00090}', "");
+    Expect(0, 126226, '\P{Is_Numeric_Value=00090}', "");
+    Expect(1, 126226, '\P{^Is_Numeric_Value=00090}', "");
+    Expect(0, 126227, '\p{Is_Numeric_Value=00090}', "");
+    Expect(1, 126227, '\p{^Is_Numeric_Value=00090}', "");
+    Expect(1, 126227, '\P{Is_Numeric_Value=00090}', "");
+    Expect(0, 126227, '\P{^Is_Numeric_Value=00090}', "");
     Expect(1, 126226, '\p{Is_Numeric_Value=9.000000000000000e+01}', "");
     Expect(0, 126226, '\p{^Is_Numeric_Value=9.000000000000000e+01}', "");
     Expect(0, 126226, '\P{Is_Numeric_Value=9.000000000000000e+01}', "");
@@ -85441,16 +86031,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126227, '\p{^Is_Numeric_Value=9.000000000000000e+01}', "");
     Expect(1, 126227, '\P{Is_Numeric_Value=9.000000000000000e+01}', "");
     Expect(0, 126227, '\P{^Is_Numeric_Value=9.000000000000000e+01}', "");
-    Error('\p{Is_Nv= /a/+00_00_00_09_0}');
-    Error('\P{Is_Nv= /a/+00_00_00_09_0}');
-    Expect(1, 126226, '\p{Is_Nv=00_09_0}', "");
-    Expect(0, 126226, '\p{^Is_Nv=00_09_0}', "");
-    Expect(0, 126226, '\P{Is_Nv=00_09_0}', "");
-    Expect(1, 126226, '\P{^Is_Nv=00_09_0}', "");
-    Expect(0, 126227, '\p{Is_Nv=00_09_0}', "");
-    Expect(1, 126227, '\p{^Is_Nv=00_09_0}', "");
-    Expect(1, 126227, '\P{Is_Nv=00_09_0}', "");
-    Expect(0, 126227, '\P{^Is_Nv=00_09_0}', "");
+    Error('\p{Is_Nv=		+90/a/}');
+    Error('\P{Is_Nv=		+90/a/}');
+    Expect(1, 126226, '\p{Is_Nv=0009_0}', "");
+    Expect(0, 126226, '\p{^Is_Nv=0009_0}', "");
+    Expect(0, 126226, '\P{Is_Nv=0009_0}', "");
+    Expect(1, 126226, '\P{^Is_Nv=0009_0}', "");
+    Expect(0, 126227, '\p{Is_Nv=0009_0}', "");
+    Expect(1, 126227, '\p{^Is_Nv=0009_0}', "");
+    Expect(1, 126227, '\P{Is_Nv=0009_0}', "");
+    Expect(0, 126227, '\P{^Is_Nv=0009_0}', "");
     Expect(1, 126226, '\p{Is_Nv=9.000000000000000e+01}', "");
     Expect(0, 126226, '\p{^Is_Nv=9.000000000000000e+01}', "");
     Expect(0, 126226, '\P{Is_Nv=9.000000000000000e+01}', "");
@@ -85459,8 +86049,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126227, '\p{^Is_Nv=9.000000000000000e+01}', "");
     Expect(1, 126227, '\P{Is_Nv=9.000000000000000e+01}', "");
     Expect(0, 126227, '\P{^Is_Nv=9.000000000000000e+01}', "");
-    Error('\p{Numeric_Value=/a/_	+0000000900}');
-    Error('\P{Numeric_Value=/a/_	+0000000900}');
+    Error('\p{Numeric_Value=:=00_00_00_90_0}');
+    Error('\P{Numeric_Value=:=00_00_00_90_0}');
     Expect(1, 126235, '\p{Numeric_Value=:\A900\z:}', "");;
     Expect(0, 126236, '\p{Numeric_Value=:\A900\z:}', "");;
     Expect(1, 126235, '\p{Numeric_Value=090_0}', "");
@@ -85479,18 +86069,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126236, '\p{^Numeric_Value=9.000000000000000e+02}', "");
     Expect(1, 126236, '\P{Numeric_Value=9.000000000000000e+02}', "");
     Expect(0, 126236, '\P{^Numeric_Value=9.000000000000000e+02}', "");
-    Error('\p{Nv=/a/90_0}');
-    Error('\P{Nv=/a/90_0}');
+    Error('\p{Nv=-:=0_0_0_0_0_0_0900}');
+    Error('\P{Nv=-:=0_0_0_0_0_0_0900}');
     Expect(1, 126235, '\p{Nv=:\A900\z:}', "");;
     Expect(0, 126236, '\p{Nv=:\A900\z:}', "");;
-    Expect(1, 126235, '\p{Nv=0_0_0_0_0_0_0900}', "");
-    Expect(0, 126235, '\p{^Nv=0_0_0_0_0_0_0900}', "");
-    Expect(0, 126235, '\P{Nv=0_0_0_0_0_0_0900}', "");
-    Expect(1, 126235, '\P{^Nv=0_0_0_0_0_0_0900}', "");
-    Expect(0, 126236, '\p{Nv=0_0_0_0_0_0_0900}', "");
-    Expect(1, 126236, '\p{^Nv=0_0_0_0_0_0_0900}', "");
-    Expect(1, 126236, '\P{Nv=0_0_0_0_0_0_0900}', "");
-    Expect(0, 126236, '\P{^Nv=0_0_0_0_0_0_0900}', "");
+    Expect(1, 126235, '\p{Nv=0900}', "");
+    Expect(0, 126235, '\p{^Nv=0900}', "");
+    Expect(0, 126235, '\P{Nv=0900}', "");
+    Expect(1, 126235, '\P{^Nv=0900}', "");
+    Expect(0, 126236, '\p{Nv=0900}', "");
+    Expect(1, 126236, '\p{^Nv=0900}', "");
+    Expect(1, 126236, '\P{Nv=0900}', "");
+    Expect(0, 126236, '\P{^Nv=0900}', "");
     Expect(1, 126235, '\p{Nv=9.000000000000000e+02}', "");
     Expect(0, 126235, '\p{^Nv=9.000000000000000e+02}', "");
     Expect(0, 126235, '\P{Nv=9.000000000000000e+02}', "");
@@ -85499,34 +86089,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126236, '\p{^Nv=9.000000000000000e+02}', "");
     Expect(1, 126236, '\P{Nv=9.000000000000000e+02}', "");
     Expect(0, 126236, '\P{^Nv=9.000000000000000e+02}', "");
-    Error('\p{Is_Numeric_Value=:=-	00000000090_0}');
-    Error('\P{Is_Numeric_Value=:=-	00000000090_0}');
-    Expect(1, 126235, '\p{Is_Numeric_Value=0_0_0_900}', "");
-    Expect(0, 126235, '\p{^Is_Numeric_Value=0_0_0_900}', "");
-    Expect(0, 126235, '\P{Is_Numeric_Value=0_0_0_900}', "");
-    Expect(1, 126235, '\P{^Is_Numeric_Value=0_0_0_900}', "");
-    Expect(0, 126236, '\p{Is_Numeric_Value=0_0_0_900}', "");
-    Expect(1, 126236, '\p{^Is_Numeric_Value=0_0_0_900}', "");
-    Expect(1, 126236, '\P{Is_Numeric_Value=0_0_0_900}', "");
-    Expect(0, 126236, '\P{^Is_Numeric_Value=0_0_0_900}', "");
-    Expect(1, 126235, '\p{Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(0, 126235, '\p{^Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(0, 126235, '\P{Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(1, 126235, '\P{^Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(0, 126236, '\p{Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(1, 126236, '\p{^Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(1, 126236, '\P{Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Expect(0, 126236, '\P{^Is_Numeric_Value:   9.000000000000000e+02}', "");
-    Error('\p{Is_Nv=/a/-	0_0_9_00}');
-    Error('\P{Is_Nv=/a/-	0_0_9_00}');
-    Expect(1, 126235, '\p{Is_Nv:	+000000000900}', "");
-    Expect(0, 126235, '\p{^Is_Nv:	+000000000900}', "");
-    Expect(0, 126235, '\P{Is_Nv:	+000000000900}', "");
-    Expect(1, 126235, '\P{^Is_Nv:	+000000000900}', "");
-    Expect(0, 126236, '\p{Is_Nv:	+000000000900}', "");
-    Expect(1, 126236, '\p{^Is_Nv:	+000000000900}', "");
-    Expect(1, 126236, '\P{Is_Nv:	+000000000900}', "");
-    Expect(0, 126236, '\P{^Is_Nv:	+000000000900}', "");
+    Error('\p{Is_Numeric_Value:   :=__0000000900}');
+    Error('\P{Is_Numeric_Value:   :=__0000000900}');
+    Expect(1, 126235, '\p{Is_Numeric_Value=0000900}', "");
+    Expect(0, 126235, '\p{^Is_Numeric_Value=0000900}', "");
+    Expect(0, 126235, '\P{Is_Numeric_Value=0000900}', "");
+    Expect(1, 126235, '\P{^Is_Numeric_Value=0000900}', "");
+    Expect(0, 126236, '\p{Is_Numeric_Value=0000900}', "");
+    Expect(1, 126236, '\p{^Is_Numeric_Value=0000900}', "");
+    Expect(1, 126236, '\P{Is_Numeric_Value=0000900}', "");
+    Expect(0, 126236, '\P{^Is_Numeric_Value=0000900}', "");
+    Expect(1, 126235, '\p{Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(0, 126235, '\p{^Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(0, 126235, '\P{Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(1, 126235, '\P{^Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(0, 126236, '\p{Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(1, 126236, '\p{^Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(1, 126236, '\P{Is_Numeric_Value=9.000000000000000e+02}', "");
+    Expect(0, 126236, '\P{^Is_Numeric_Value=9.000000000000000e+02}', "");
+    Error('\p{Is_Nv=-_00000000900:=}');
+    Error('\P{Is_Nv=-_00000000900:=}');
+    Expect(1, 126235, '\p{Is_Nv=+0000000090_0}', "");
+    Expect(0, 126235, '\p{^Is_Nv=+0000000090_0}', "");
+    Expect(0, 126235, '\P{Is_Nv=+0000000090_0}', "");
+    Expect(1, 126235, '\P{^Is_Nv=+0000000090_0}', "");
+    Expect(0, 126236, '\p{Is_Nv=+0000000090_0}', "");
+    Expect(1, 126236, '\p{^Is_Nv=+0000000090_0}', "");
+    Expect(1, 126236, '\P{Is_Nv=+0000000090_0}', "");
+    Expect(0, 126236, '\P{^Is_Nv=+0000000090_0}', "");
     Expect(1, 126235, '\p{Is_Nv:9.000000000000000e+02}', "");
     Expect(0, 126235, '\p{^Is_Nv:9.000000000000000e+02}', "");
     Expect(0, 126235, '\P{Is_Nv:9.000000000000000e+02}', "");
@@ -85535,18 +86125,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126236, '\p{^Is_Nv:9.000000000000000e+02}', "");
     Expect(1, 126236, '\P{Is_Nv:9.000000000000000e+02}', "");
     Expect(0, 126236, '\P{^Is_Nv:9.000000000000000e+02}', "");
-    Error('\p{Numeric_Value=/a/	_0000000009000}');
-    Error('\P{Numeric_Value=/a/	_0000000009000}');
+    Error('\p{Numeric_Value=:=+0000009000}');
+    Error('\P{Numeric_Value=:=+0000009000}');
     Expect(1, 126244, '\p{Numeric_Value=:\A9000\z:}', "");;
     Expect(0, 126245, '\p{Numeric_Value=:\A9000\z:}', "");;
-    Expect(1, 126244, '\p{Numeric_Value=9000}', "");
-    Expect(0, 126244, '\p{^Numeric_Value=9000}', "");
-    Expect(0, 126244, '\P{Numeric_Value=9000}', "");
-    Expect(1, 126244, '\P{^Numeric_Value=9000}', "");
-    Expect(0, 126245, '\p{Numeric_Value=9000}', "");
-    Expect(1, 126245, '\p{^Numeric_Value=9000}', "");
-    Expect(1, 126245, '\P{Numeric_Value=9000}', "");
-    Expect(0, 126245, '\P{^Numeric_Value=9000}', "");
+    Expect(1, 126244, '\p{Numeric_Value: 0000000009000}', "");
+    Expect(0, 126244, '\p{^Numeric_Value: 0000000009000}', "");
+    Expect(0, 126244, '\P{Numeric_Value: 0000000009000}', "");
+    Expect(1, 126244, '\P{^Numeric_Value: 0000000009000}', "");
+    Expect(0, 126245, '\p{Numeric_Value: 0000000009000}', "");
+    Expect(1, 126245, '\p{^Numeric_Value: 0000000009000}', "");
+    Expect(1, 126245, '\P{Numeric_Value: 0000000009000}', "");
+    Expect(0, 126245, '\P{^Numeric_Value: 0000000009000}', "");
     Expect(1, 126244, '\p{Numeric_Value=9.000000000000000e+03}', "");
     Expect(0, 126244, '\p{^Numeric_Value=9.000000000000000e+03}', "");
     Expect(0, 126244, '\P{Numeric_Value=9.000000000000000e+03}', "");
@@ -85555,18 +86145,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126245, '\p{^Numeric_Value=9.000000000000000e+03}', "");
     Expect(1, 126245, '\P{Numeric_Value=9.000000000000000e+03}', "");
     Expect(0, 126245, '\P{^Numeric_Value=9.000000000000000e+03}', "");
-    Error('\p{Nv=	:=09000}');
-    Error('\P{Nv=	:=09000}');
+    Error('\p{Nv=/a/__00000009000}');
+    Error('\P{Nv=/a/__00000009000}');
     Expect(1, 126244, '\p{Nv=:\A9000\z:}', "");;
     Expect(0, 126245, '\p{Nv=:\A9000\z:}', "");;
-    Expect(1, 126244, '\p{Nv=009000}', "");
-    Expect(0, 126244, '\p{^Nv=009000}', "");
-    Expect(0, 126244, '\P{Nv=009000}', "");
-    Expect(1, 126244, '\P{^Nv=009000}', "");
-    Expect(0, 126245, '\p{Nv=009000}', "");
-    Expect(1, 126245, '\p{^Nv=009000}', "");
-    Expect(1, 126245, '\P{Nv=009000}', "");
-    Expect(0, 126245, '\P{^Nv=009000}', "");
+    Expect(1, 126244, '\p{Nv=0_0_0_0_0_0_9000}', "");
+    Expect(0, 126244, '\p{^Nv=0_0_0_0_0_0_9000}', "");
+    Expect(0, 126244, '\P{Nv=0_0_0_0_0_0_9000}', "");
+    Expect(1, 126244, '\P{^Nv=0_0_0_0_0_0_9000}', "");
+    Expect(0, 126245, '\p{Nv=0_0_0_0_0_0_9000}', "");
+    Expect(1, 126245, '\p{^Nv=0_0_0_0_0_0_9000}', "");
+    Expect(1, 126245, '\P{Nv=0_0_0_0_0_0_9000}', "");
+    Expect(0, 126245, '\P{^Nv=0_0_0_0_0_0_9000}', "");
     Expect(1, 126244, '\p{Nv=9.000000000000000e+03}', "");
     Expect(0, 126244, '\p{^Nv=9.000000000000000e+03}', "");
     Expect(0, 126244, '\P{Nv=9.000000000000000e+03}', "");
@@ -85575,16 +86165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126245, '\p{^Nv=9.000000000000000e+03}', "");
     Expect(1, 126245, '\P{Nv=9.000000000000000e+03}', "");
     Expect(0, 126245, '\P{^Nv=9.000000000000000e+03}', "");
-    Error('\p{Is_Numeric_Value=/a/-	+09_00_0}');
-    Error('\P{Is_Numeric_Value=/a/-	+09_00_0}');
-    Expect(1, 126244, '\p{Is_Numeric_Value=+000000009000}', "");
-    Expect(0, 126244, '\p{^Is_Numeric_Value=+000000009000}', "");
-    Expect(0, 126244, '\P{Is_Numeric_Value=+000000009000}', "");
-    Expect(1, 126244, '\P{^Is_Numeric_Value=+000000009000}', "");
-    Expect(0, 126245, '\p{Is_Numeric_Value=+000000009000}', "");
-    Expect(1, 126245, '\p{^Is_Numeric_Value=+000000009000}', "");
-    Expect(1, 126245, '\P{Is_Numeric_Value=+000000009000}', "");
-    Expect(0, 126245, '\P{^Is_Numeric_Value=+000000009000}', "");
+    Error('\p{Is_Numeric_Value=-/a/000000_000900_0}');
+    Error('\P{Is_Numeric_Value=-/a/000000_000900_0}');
+    Expect(1, 126244, '\p{Is_Numeric_Value=000000009000}', "");
+    Expect(0, 126244, '\p{^Is_Numeric_Value=000000009000}', "");
+    Expect(0, 126244, '\P{Is_Numeric_Value=000000009000}', "");
+    Expect(1, 126244, '\P{^Is_Numeric_Value=000000009000}', "");
+    Expect(0, 126245, '\p{Is_Numeric_Value=000000009000}', "");
+    Expect(1, 126245, '\p{^Is_Numeric_Value=000000009000}', "");
+    Expect(1, 126245, '\P{Is_Numeric_Value=000000009000}', "");
+    Expect(0, 126245, '\P{^Is_Numeric_Value=000000009000}', "");
     Expect(1, 126244, '\p{Is_Numeric_Value=9.000000000000000e+03}', "");
     Expect(0, 126244, '\p{^Is_Numeric_Value=9.000000000000000e+03}', "");
     Expect(0, 126244, '\P{Is_Numeric_Value=9.000000000000000e+03}', "");
@@ -85593,16 +86183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126245, '\p{^Is_Numeric_Value=9.000000000000000e+03}', "");
     Expect(1, 126245, '\P{Is_Numeric_Value=9.000000000000000e+03}', "");
     Expect(0, 126245, '\P{^Is_Numeric_Value=9.000000000000000e+03}', "");
-    Error('\p{Is_Nv=	-+0_0_0_0_0_0_0_0_0_9_0_00:=}');
-    Error('\P{Is_Nv=	-+0_0_0_0_0_0_0_0_0_9_0_00:=}');
-    Expect(1, 126244, '\p{Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(0, 126244, '\p{^Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(0, 126244, '\P{Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(1, 126244, '\P{^Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(0, 126245, '\p{Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(1, 126245, '\p{^Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(1, 126245, '\P{Is_Nv=0_0_0_0_0_0_0_9_000}', "");
-    Expect(0, 126245, '\P{^Is_Nv=0_0_0_0_0_0_0_9_000}', "");
+    Error('\p{Is_Nv=	09_00_0:=}');
+    Error('\P{Is_Nv=	09_00_0:=}');
+    Expect(1, 126244, '\p{Is_Nv=000009000}', "");
+    Expect(0, 126244, '\p{^Is_Nv=000009000}', "");
+    Expect(0, 126244, '\P{Is_Nv=000009000}', "");
+    Expect(1, 126244, '\P{^Is_Nv=000009000}', "");
+    Expect(0, 126245, '\p{Is_Nv=000009000}', "");
+    Expect(1, 126245, '\p{^Is_Nv=000009000}', "");
+    Expect(1, 126245, '\P{Is_Nv=000009000}', "");
+    Expect(0, 126245, '\P{^Is_Nv=000009000}', "");
     Expect(1, 126244, '\p{Is_Nv=9.000000000000000e+03}', "");
     Expect(0, 126244, '\p{^Is_Nv=9.000000000000000e+03}', "");
     Expect(0, 126244, '\P{Is_Nv=9.000000000000000e+03}', "");
@@ -85611,18 +86201,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126245, '\p{^Is_Nv=9.000000000000000e+03}', "");
     Expect(1, 126245, '\P{Is_Nv=9.000000000000000e+03}', "");
     Expect(0, 126245, '\P{^Is_Nv=9.000000000000000e+03}', "");
-    Error('\p{Numeric_Value=-	0090000:=}');
-    Error('\P{Numeric_Value=-	0090000:=}');
+    Error('\p{Numeric_Value=/a/_ 00000090000}');
+    Error('\P{Numeric_Value=/a/_ 00000090000}');
     Expect(1, 126253, '\p{Numeric_Value=:\A90000\z:}', "");;
     Expect(0, 126254, '\p{Numeric_Value=:\A90000\z:}', "");;
-    Expect(1, 126253, '\p{Numeric_Value=+0000000090000}', "");
-    Expect(0, 126253, '\p{^Numeric_Value=+0000000090000}', "");
-    Expect(0, 126253, '\P{Numeric_Value=+0000000090000}', "");
-    Expect(1, 126253, '\P{^Numeric_Value=+0000000090000}', "");
-    Expect(0, 126254, '\p{Numeric_Value=+0000000090000}', "");
-    Expect(1, 126254, '\p{^Numeric_Value=+0000000090000}', "");
-    Expect(1, 126254, '\P{Numeric_Value=+0000000090000}', "");
-    Expect(0, 126254, '\P{^Numeric_Value=+0000000090000}', "");
+    Expect(1, 126253, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(0, 126253, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(0, 126253, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(1, 126253, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(0, 126254, '\p{Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(1, 126254, '\p{^Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(1, 126254, '\P{Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
+    Expect(0, 126254, '\P{^Numeric_Value=+0_0_0_0_0_0_0_0_0_9_0_000}', "");
     Expect(1, 126253, '\p{Numeric_Value=9.000000000000000e+04}', "");
     Expect(0, 126253, '\p{^Numeric_Value=9.000000000000000e+04}', "");
     Expect(0, 126253, '\P{Numeric_Value=9.000000000000000e+04}', "");
@@ -85631,18 +86221,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126254, '\p{^Numeric_Value=9.000000000000000e+04}', "");
     Expect(1, 126254, '\P{Numeric_Value=9.000000000000000e+04}', "");
     Expect(0, 126254, '\P{^Numeric_Value=9.000000000000000e+04}', "");
-    Error('\p{Nv=-0_0_0_0_0_9_0_0_00:=}');
-    Error('\P{Nv=-0_0_0_0_0_9_0_0_00:=}');
+    Error('\p{Nv=	/a/+000090000}');
+    Error('\P{Nv=	/a/+000090000}');
     Expect(1, 126253, '\p{Nv=:\A90000\z:}', "");;
     Expect(0, 126254, '\p{Nv=:\A90000\z:}', "");;
-    Expect(1, 126253, '\p{Nv=000000090000}', "");
-    Expect(0, 126253, '\p{^Nv=000000090000}', "");
-    Expect(0, 126253, '\P{Nv=000000090000}', "");
-    Expect(1, 126253, '\P{^Nv=000000090000}', "");
-    Expect(0, 126254, '\p{Nv=000000090000}', "");
-    Expect(1, 126254, '\p{^Nv=000000090000}', "");
-    Expect(1, 126254, '\P{Nv=000000090000}', "");
-    Expect(0, 126254, '\P{^Nv=000000090000}', "");
+    Expect(1, 126253, '\p{Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(0, 126253, '\p{^Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(0, 126253, '\P{Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(1, 126253, '\P{^Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(0, 126254, '\p{Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(1, 126254, '\p{^Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(1, 126254, '\P{Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
+    Expect(0, 126254, '\P{^Nv:   0_0_0_0_0_0_0_0_0_9_0000}', "");
     Expect(1, 126253, '\p{Nv=9.000000000000000e+04}', "");
     Expect(0, 126253, '\p{^Nv=9.000000000000000e+04}', "");
     Expect(0, 126253, '\P{Nv=9.000000000000000e+04}', "");
@@ -85651,16 +86241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126254, '\p{^Nv=9.000000000000000e+04}', "");
     Expect(1, 126254, '\P{Nv=9.000000000000000e+04}', "");
     Expect(0, 126254, '\P{^Nv=9.000000000000000e+04}', "");
-    Error('\p{Is_Numeric_Value=:=_0_0_9_0_000}');
-    Error('\P{Is_Numeric_Value=:=_0_0_9_0_000}');
-    Expect(1, 126253, '\p{Is_Numeric_Value=000090000}', "");
-    Expect(0, 126253, '\p{^Is_Numeric_Value=000090000}', "");
-    Expect(0, 126253, '\P{Is_Numeric_Value=000090000}', "");
-    Expect(1, 126253, '\P{^Is_Numeric_Value=000090000}', "");
-    Expect(0, 126254, '\p{Is_Numeric_Value=000090000}', "");
-    Expect(1, 126254, '\p{^Is_Numeric_Value=000090000}', "");
-    Expect(1, 126254, '\P{Is_Numeric_Value=000090000}', "");
-    Expect(0, 126254, '\P{^Is_Numeric_Value=000090000}', "");
+    Error('\p{Is_Numeric_Value=:=	00000090000}');
+    Error('\P{Is_Numeric_Value=:=	00000090000}');
+    Expect(1, 126253, '\p{Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(0, 126253, '\p{^Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(0, 126253, '\P{Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(1, 126253, '\P{^Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(0, 126254, '\p{Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(1, 126254, '\p{^Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(1, 126254, '\P{Is_Numeric_Value=0_0_0_9_0000}', "");
+    Expect(0, 126254, '\P{^Is_Numeric_Value=0_0_0_9_0000}', "");
     Expect(1, 126253, '\p{Is_Numeric_Value=9.000000000000000e+04}', "");
     Expect(0, 126253, '\p{^Is_Numeric_Value=9.000000000000000e+04}', "");
     Expect(0, 126253, '\P{Is_Numeric_Value=9.000000000000000e+04}', "");
@@ -85669,36 +86259,36 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126254, '\p{^Is_Numeric_Value=9.000000000000000e+04}', "");
     Expect(1, 126254, '\P{Is_Numeric_Value=9.000000000000000e+04}', "");
     Expect(0, 126254, '\P{^Is_Numeric_Value=9.000000000000000e+04}', "");
-    Error('\p{Is_Nv=:=+00_00_90_00_0}');
-    Error('\P{Is_Nv=:=+00_00_90_00_0}');
-    Expect(1, 126253, '\p{Is_Nv=+90_00_0}', "");
-    Expect(0, 126253, '\p{^Is_Nv=+90_00_0}', "");
-    Expect(0, 126253, '\P{Is_Nv=+90_00_0}', "");
-    Expect(1, 126253, '\P{^Is_Nv=+90_00_0}', "");
-    Expect(0, 126254, '\p{Is_Nv=+90_00_0}', "");
-    Expect(1, 126254, '\p{^Is_Nv=+90_00_0}', "");
-    Expect(1, 126254, '\P{Is_Nv=+90_00_0}', "");
-    Expect(0, 126254, '\P{^Is_Nv=+90_00_0}', "");
-    Expect(1, 126253, '\p{Is_Nv:	9.000000000000000e+04}', "");
-    Expect(0, 126253, '\p{^Is_Nv:	9.000000000000000e+04}', "");
-    Expect(0, 126253, '\P{Is_Nv:	9.000000000000000e+04}', "");
-    Expect(1, 126253, '\P{^Is_Nv:	9.000000000000000e+04}', "");
-    Expect(0, 126254, '\p{Is_Nv:	9.000000000000000e+04}', "");
-    Expect(1, 126254, '\p{^Is_Nv:	9.000000000000000e+04}', "");
-    Expect(1, 126254, '\P{Is_Nv:	9.000000000000000e+04}', "");
-    Expect(0, 126254, '\P{^Is_Nv:	9.000000000000000e+04}', "");
-    Error('\p{Numeric_Value=_900000/a/}');
-    Error('\P{Numeric_Value=_900000/a/}');
+    Error('\p{Is_Nv= _+90000/a/}');
+    Error('\P{Is_Nv= _+90000/a/}');
+    Expect(1, 126253, '\p{Is_Nv=0090000}', "");
+    Expect(0, 126253, '\p{^Is_Nv=0090000}', "");
+    Expect(0, 126253, '\P{Is_Nv=0090000}', "");
+    Expect(1, 126253, '\P{^Is_Nv=0090000}', "");
+    Expect(0, 126254, '\p{Is_Nv=0090000}', "");
+    Expect(1, 126254, '\p{^Is_Nv=0090000}', "");
+    Expect(1, 126254, '\P{Is_Nv=0090000}', "");
+    Expect(0, 126254, '\P{^Is_Nv=0090000}', "");
+    Expect(1, 126253, '\p{Is_Nv=9.000000000000000e+04}', "");
+    Expect(0, 126253, '\p{^Is_Nv=9.000000000000000e+04}', "");
+    Expect(0, 126253, '\P{Is_Nv=9.000000000000000e+04}', "");
+    Expect(1, 126253, '\P{^Is_Nv=9.000000000000000e+04}', "");
+    Expect(0, 126254, '\p{Is_Nv=9.000000000000000e+04}', "");
+    Expect(1, 126254, '\p{^Is_Nv=9.000000000000000e+04}', "");
+    Expect(1, 126254, '\P{Is_Nv=9.000000000000000e+04}', "");
+    Expect(0, 126254, '\P{^Is_Nv=9.000000000000000e+04}', "");
+    Error('\p{Numeric_Value=__+9_0_0_000/a/}');
+    Error('\P{Numeric_Value=__+9_0_0_000/a/}');
     Expect(1, 68085, '\p{Numeric_Value=:\A900000\z:}', "");;
     Expect(0, 68086, '\p{Numeric_Value=:\A900000\z:}', "");;
-    Expect(1, 68085, '\p{Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(0, 68085, '\p{^Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(0, 68085, '\P{Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(1, 68085, '\P{^Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(0, 68086, '\p{Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(1, 68086, '\p{^Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(1, 68086, '\P{Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
-    Expect(0, 68086, '\P{^Numeric_Value=+0_0_0_0_0_9_0_0000}', "");
+    Expect(1, 68085, '\p{Numeric_Value=00_09_00_00_0}', "");
+    Expect(0, 68085, '\p{^Numeric_Value=00_09_00_00_0}', "");
+    Expect(0, 68085, '\P{Numeric_Value=00_09_00_00_0}', "");
+    Expect(1, 68085, '\P{^Numeric_Value=00_09_00_00_0}', "");
+    Expect(0, 68086, '\p{Numeric_Value=00_09_00_00_0}', "");
+    Expect(1, 68086, '\p{^Numeric_Value=00_09_00_00_0}', "");
+    Expect(1, 68086, '\P{Numeric_Value=00_09_00_00_0}', "");
+    Expect(0, 68086, '\P{^Numeric_Value=00_09_00_00_0}', "");
     Expect(1, 68085, '\p{Numeric_Value=9.000000000000000e+05}', "");
     Expect(0, 68085, '\p{^Numeric_Value=9.000000000000000e+05}', "");
     Expect(0, 68085, '\P{Numeric_Value=9.000000000000000e+05}', "");
@@ -85707,18 +86297,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68086, '\p{^Numeric_Value=9.000000000000000e+05}', "");
     Expect(1, 68086, '\P{Numeric_Value=9.000000000000000e+05}', "");
     Expect(0, 68086, '\P{^Numeric_Value=9.000000000000000e+05}', "");
-    Error('\p{Nv=		000000900000/a/}');
-    Error('\P{Nv=		000000900000/a/}');
+    Error('\p{Nv=-900000/a/}');
+    Error('\P{Nv=-900000/a/}');
     Expect(1, 68085, '\p{Nv=:\A900000\z:}', "");;
     Expect(0, 68086, '\p{Nv=:\A900000\z:}', "");;
-    Expect(1, 68085, '\p{Nv=0900000}', "");
-    Expect(0, 68085, '\p{^Nv=0900000}', "");
-    Expect(0, 68085, '\P{Nv=0900000}', "");
-    Expect(1, 68085, '\P{^Nv=0900000}', "");
-    Expect(0, 68086, '\p{Nv=0900000}', "");
-    Expect(1, 68086, '\p{^Nv=0900000}', "");
-    Expect(1, 68086, '\P{Nv=0900000}', "");
-    Expect(0, 68086, '\P{^Nv=0900000}', "");
+    Expect(1, 68085, '\p{Nv=00000000900000}', "");
+    Expect(0, 68085, '\p{^Nv=00000000900000}', "");
+    Expect(0, 68085, '\P{Nv=00000000900000}', "");
+    Expect(1, 68085, '\P{^Nv=00000000900000}', "");
+    Expect(0, 68086, '\p{Nv=00000000900000}', "");
+    Expect(1, 68086, '\p{^Nv=00000000900000}', "");
+    Expect(1, 68086, '\P{Nv=00000000900000}', "");
+    Expect(0, 68086, '\P{^Nv=00000000900000}', "");
     Expect(1, 68085, '\p{Nv=9.000000000000000e+05}', "");
     Expect(0, 68085, '\p{^Nv=9.000000000000000e+05}', "");
     Expect(0, 68085, '\P{Nv=9.000000000000000e+05}', "");
@@ -85727,16 +86317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68086, '\p{^Nv=9.000000000000000e+05}', "");
     Expect(1, 68086, '\P{Nv=9.000000000000000e+05}', "");
     Expect(0, 68086, '\P{^Nv=9.000000000000000e+05}', "");
-    Error('\p{Is_Numeric_Value=/a/	-0_0_0_0_0_0_0_9_0_0_0_00}');
-    Error('\P{Is_Numeric_Value=/a/	-0_0_0_0_0_0_0_9_0_0_0_00}');
-    Expect(1, 68085, '\p{Is_Numeric_Value=+00000900000}', "");
-    Expect(0, 68085, '\p{^Is_Numeric_Value=+00000900000}', "");
-    Expect(0, 68085, '\P{Is_Numeric_Value=+00000900000}', "");
-    Expect(1, 68085, '\P{^Is_Numeric_Value=+00000900000}', "");
-    Expect(0, 68086, '\p{Is_Numeric_Value=+00000900000}', "");
-    Expect(1, 68086, '\p{^Is_Numeric_Value=+00000900000}', "");
-    Expect(1, 68086, '\P{Is_Numeric_Value=+00000900000}', "");
-    Expect(0, 68086, '\P{^Is_Numeric_Value=+00000900000}', "");
+    Error('\p{Is_Numeric_Value=/a/ 00000000900000}');
+    Error('\P{Is_Numeric_Value=/a/ 00000000900000}');
+    Expect(1, 68085, '\p{Is_Numeric_Value=00900000}', "");
+    Expect(0, 68085, '\p{^Is_Numeric_Value=00900000}', "");
+    Expect(0, 68085, '\P{Is_Numeric_Value=00900000}', "");
+    Expect(1, 68085, '\P{^Is_Numeric_Value=00900000}', "");
+    Expect(0, 68086, '\p{Is_Numeric_Value=00900000}', "");
+    Expect(1, 68086, '\p{^Is_Numeric_Value=00900000}', "");
+    Expect(1, 68086, '\P{Is_Numeric_Value=00900000}', "");
+    Expect(0, 68086, '\P{^Is_Numeric_Value=00900000}', "");
     Expect(1, 68085, '\p{Is_Numeric_Value=9.000000000000000e+05}', "");
     Expect(0, 68085, '\p{^Is_Numeric_Value=9.000000000000000e+05}', "");
     Expect(0, 68085, '\P{Is_Numeric_Value=9.000000000000000e+05}', "");
@@ -85745,16 +86335,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68086, '\p{^Is_Numeric_Value=9.000000000000000e+05}', "");
     Expect(1, 68086, '\P{Is_Numeric_Value=9.000000000000000e+05}', "");
     Expect(0, 68086, '\P{^Is_Numeric_Value=9.000000000000000e+05}', "");
-    Error('\p{Is_Nv=/a/	 +0_0_0_0_9_0_0_0_00}');
-    Error('\P{Is_Nv=/a/	 +0_0_0_0_9_0_0_0_00}');
-    Expect(1, 68085, '\p{Is_Nv:   900000}', "");
-    Expect(0, 68085, '\p{^Is_Nv:   900000}', "");
-    Expect(0, 68085, '\P{Is_Nv:   900000}', "");
-    Expect(1, 68085, '\P{^Is_Nv:   900000}', "");
-    Expect(0, 68086, '\p{Is_Nv:   900000}', "");
-    Expect(1, 68086, '\p{^Is_Nv:   900000}', "");
-    Expect(1, 68086, '\P{Is_Nv:   900000}', "");
-    Expect(0, 68086, '\P{^Is_Nv:   900000}', "");
+    Error('\p{Is_Nv=:=_	0900000}');
+    Error('\P{Is_Nv=:=_	0900000}');
+    Expect(1, 68085, '\p{Is_Nv=00000000900000}', "");
+    Expect(0, 68085, '\p{^Is_Nv=00000000900000}', "");
+    Expect(0, 68085, '\P{Is_Nv=00000000900000}', "");
+    Expect(1, 68085, '\P{^Is_Nv=00000000900000}', "");
+    Expect(0, 68086, '\p{Is_Nv=00000000900000}', "");
+    Expect(1, 68086, '\p{^Is_Nv=00000000900000}', "");
+    Expect(1, 68086, '\P{Is_Nv=00000000900000}', "");
+    Expect(0, 68086, '\P{^Is_Nv=00000000900000}', "");
     Expect(1, 68085, '\p{Is_Nv=9.000000000000000e+05}', "");
     Expect(0, 68085, '\p{^Is_Nv=9.000000000000000e+05}', "");
     Expect(0, 68085, '\P{Is_Nv=9.000000000000000e+05}', "");
@@ -85763,8 +86353,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68086, '\p{^Is_Nv=9.000000000000000e+05}', "");
     Expect(1, 68086, '\P{Is_Nv=9.000000000000000e+05}', "");
     Expect(0, 68086, '\P{^Is_Nv=9.000000000000000e+05}', "");
-    Error('\p{Numeric_Value=:= _NaN}');
-    Error('\P{Numeric_Value=:= _NaN}');
+    Error('\p{Numeric_Value=-/a/NaN}');
+    Error('\P{Numeric_Value=-/a/NaN}');
     Expect(1, 194705, '\p{Numeric_Value=:\ANaN\z:}', "");;
     Expect(0, 194704, '\p{Numeric_Value=:\ANaN\z:}', "");;
     Expect(1, 194705, '\p{Numeric_Value=nan}', "");
@@ -85777,14 +86367,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 194704, '\P{^Numeric_Value=nan}', "");
     Expect(1, 194705, '\p{Numeric_Value=:\Anan\z:}', "");;
     Expect(0, 194704, '\p{Numeric_Value=:\Anan\z:}', "");;
-    Expect(1, 194705, '\p{Numeric_Value=-	NAN}', "");
-    Expect(0, 194705, '\p{^Numeric_Value=-	NAN}', "");
-    Expect(0, 194705, '\P{Numeric_Value=-	NAN}', "");
-    Expect(1, 194705, '\P{^Numeric_Value=-	NAN}', "");
-    Expect(0, 194704, '\p{Numeric_Value=-	NAN}', "");
-    Expect(1, 194704, '\p{^Numeric_Value=-	NAN}', "");
-    Expect(1, 194704, '\P{Numeric_Value=-	NAN}', "");
-    Expect(0, 194704, '\P{^Numeric_Value=-	NAN}', "");
+    Expect(1, 194705, '\p{Numeric_Value= nan}', "");
+    Expect(0, 194705, '\p{^Numeric_Value= nan}', "");
+    Expect(0, 194705, '\P{Numeric_Value= nan}', "");
+    Expect(1, 194705, '\P{^Numeric_Value= nan}', "");
+    Expect(0, 194704, '\p{Numeric_Value= nan}', "");
+    Expect(1, 194704, '\p{^Numeric_Value= nan}', "");
+    Expect(1, 194704, '\P{Numeric_Value= nan}', "");
+    Expect(0, 194704, '\P{^Numeric_Value= nan}', "");
     Expect(1, 194705, '\p{Numeric_Value=NaN}', "");
     Expect(0, 194705, '\p{^Numeric_Value=NaN}', "");
     Expect(0, 194705, '\P{Numeric_Value=NaN}', "");
@@ -85793,8 +86383,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194704, '\p{^Numeric_Value=NaN}', "");
     Expect(1, 194704, '\P{Numeric_Value=NaN}', "");
     Expect(0, 194704, '\P{^Numeric_Value=NaN}', "");
-    Error('\p{Nv=__NAN:=}');
-    Error('\P{Nv=__NAN:=}');
+    Error('\p{Nv=/a/_nan}');
+    Error('\P{Nv=/a/_nan}');
     Expect(1, 194705, '\p{Nv=:\ANaN\z:}', "");;
     Expect(0, 194704, '\p{Nv=:\ANaN\z:}', "");;
     Expect(1, 194705, '\p{Nv=nan}', "");
@@ -85807,14 +86397,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 194704, '\P{^Nv=nan}', "");
     Expect(1, 194705, '\p{Nv=:\Anan\z:}', "");;
     Expect(0, 194704, '\p{Nv=:\Anan\z:}', "");;
-    Expect(1, 194705, '\p{Nv= 	nan}', "");
-    Expect(0, 194705, '\p{^Nv= 	nan}', "");
-    Expect(0, 194705, '\P{Nv= 	nan}', "");
-    Expect(1, 194705, '\P{^Nv= 	nan}', "");
-    Expect(0, 194704, '\p{Nv= 	nan}', "");
-    Expect(1, 194704, '\p{^Nv= 	nan}', "");
-    Expect(1, 194704, '\P{Nv= 	nan}', "");
-    Expect(0, 194704, '\P{^Nv= 	nan}', "");
+    Expect(1, 194705, '\p{Nv= -NaN}', "");
+    Expect(0, 194705, '\p{^Nv= -NaN}', "");
+    Expect(0, 194705, '\P{Nv= -NaN}', "");
+    Expect(1, 194705, '\P{^Nv= -NaN}', "");
+    Expect(0, 194704, '\p{Nv= -NaN}', "");
+    Expect(1, 194704, '\p{^Nv= -NaN}', "");
+    Expect(1, 194704, '\P{Nv= -NaN}', "");
+    Expect(0, 194704, '\P{^Nv= -NaN}', "");
     Expect(1, 194705, '\p{Nv=NaN}', "");
     Expect(0, 194705, '\p{^Nv=NaN}', "");
     Expect(0, 194705, '\P{Nv=NaN}', "");
@@ -85823,8 +86413,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194704, '\p{^Nv=NaN}', "");
     Expect(1, 194704, '\P{Nv=NaN}', "");
     Expect(0, 194704, '\P{^Nv=NaN}', "");
-    Error('\p{Is_Numeric_Value=/a/-	NaN}');
-    Error('\P{Is_Numeric_Value=/a/-	NaN}');
+    Error('\p{Is_Numeric_Value= 	NaN:=}');
+    Error('\P{Is_Numeric_Value= 	NaN:=}');
     Expect(1, 194705, '\p{Is_Numeric_Value=nan}', "");
     Expect(0, 194705, '\p{^Is_Numeric_Value=nan}', "");
     Expect(0, 194705, '\P{Is_Numeric_Value=nan}', "");
@@ -85833,14 +86423,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194704, '\p{^Is_Numeric_Value=nan}', "");
     Expect(1, 194704, '\P{Is_Numeric_Value=nan}', "");
     Expect(0, 194704, '\P{^Is_Numeric_Value=nan}', "");
-    Expect(1, 194705, '\p{Is_Numeric_Value= _NAN}', "");
-    Expect(0, 194705, '\p{^Is_Numeric_Value= _NAN}', "");
-    Expect(0, 194705, '\P{Is_Numeric_Value= _NAN}', "");
-    Expect(1, 194705, '\P{^Is_Numeric_Value= _NAN}', "");
-    Expect(0, 194704, '\p{Is_Numeric_Value= _NAN}', "");
-    Expect(1, 194704, '\p{^Is_Numeric_Value= _NAN}', "");
-    Expect(1, 194704, '\P{Is_Numeric_Value= _NAN}', "");
-    Expect(0, 194704, '\P{^Is_Numeric_Value= _NAN}', "");
+    Expect(1, 194705, '\p{Is_Numeric_Value= -NaN}', "");
+    Expect(0, 194705, '\p{^Is_Numeric_Value= -NaN}', "");
+    Expect(0, 194705, '\P{Is_Numeric_Value= -NaN}', "");
+    Expect(1, 194705, '\P{^Is_Numeric_Value= -NaN}', "");
+    Expect(0, 194704, '\p{Is_Numeric_Value= -NaN}', "");
+    Expect(1, 194704, '\p{^Is_Numeric_Value= -NaN}', "");
+    Expect(1, 194704, '\P{Is_Numeric_Value= -NaN}', "");
+    Expect(0, 194704, '\P{^Is_Numeric_Value= -NaN}', "");
     Expect(1, 194705, '\p{Is_Numeric_Value=NaN}', "");
     Expect(0, 194705, '\p{^Is_Numeric_Value=NaN}', "");
     Expect(0, 194705, '\P{Is_Numeric_Value=NaN}', "");
@@ -85849,8 +86439,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194704, '\p{^Is_Numeric_Value=NaN}', "");
     Expect(1, 194704, '\P{Is_Numeric_Value=NaN}', "");
     Expect(0, 194704, '\P{^Is_Numeric_Value=NaN}', "");
-    Error('\p{Is_Nv=_	NAN/a/}');
-    Error('\P{Is_Nv=_	NAN/a/}');
+    Error('\p{Is_Nv=	NaN/a/}');
+    Error('\P{Is_Nv=	NaN/a/}');
     Expect(1, 194705, '\p{Is_Nv=nan}', "");
     Expect(0, 194705, '\p{^Is_Nv=nan}', "");
     Expect(0, 194705, '\P{Is_Nv=nan}', "");
@@ -85859,14 +86449,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194704, '\p{^Is_Nv=nan}', "");
     Expect(1, 194704, '\P{Is_Nv=nan}', "");
     Expect(0, 194704, '\P{^Is_Nv=nan}', "");
-    Expect(1, 194705, '\p{Is_Nv=--NaN}', "");
-    Expect(0, 194705, '\p{^Is_Nv=--NaN}', "");
-    Expect(0, 194705, '\P{Is_Nv=--NaN}', "");
-    Expect(1, 194705, '\P{^Is_Nv=--NaN}', "");
-    Expect(0, 194704, '\p{Is_Nv=--NaN}', "");
-    Expect(1, 194704, '\p{^Is_Nv=--NaN}', "");
-    Expect(1, 194704, '\P{Is_Nv=--NaN}', "");
-    Expect(0, 194704, '\P{^Is_Nv=--NaN}', "");
+    Expect(1, 194705, '\p{Is_Nv= 	NaN}', "");
+    Expect(0, 194705, '\p{^Is_Nv= 	NaN}', "");
+    Expect(0, 194705, '\P{Is_Nv= 	NaN}', "");
+    Expect(1, 194705, '\P{^Is_Nv= 	NaN}', "");
+    Expect(0, 194704, '\p{Is_Nv= 	NaN}', "");
+    Expect(1, 194704, '\p{^Is_Nv= 	NaN}', "");
+    Expect(1, 194704, '\P{Is_Nv= 	NaN}', "");
+    Expect(0, 194704, '\P{^Is_Nv= 	NaN}', "");
     Expect(1, 194705, '\p{Is_Nv=NaN}', "");
     Expect(0, 194705, '\p{^Is_Nv=NaN}', "");
     Expect(0, 194705, '\P{Is_Nv=NaN}', "");
@@ -85875,32 +86465,32 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 194704, '\p{^Is_Nv=NaN}', "");
     Expect(1, 194704, '\P{Is_Nv=NaN}', "");
     Expect(0, 194704, '\P{^Is_Nv=NaN}', "");
-    Error('\p{Other_Alphabetic=No}');
-    Error('\P{Other_Alphabetic=No}');
+    Error('\p{Other_Alphabetic:No}');
+    Error('\P{Other_Alphabetic:No}');
     Error('\p{OAlpha=N}');
     Error('\P{OAlpha=N}');
     Error('\p{Is_Other_Alphabetic=F}');
     Error('\P{Is_Other_Alphabetic=F}');
-    Error('\p{Is_OAlpha=False}');
-    Error('\P{Is_OAlpha=False}');
+    Error('\p{Is_OAlpha:	False}');
+    Error('\P{Is_OAlpha:	False}');
     Error('\p{Other_Alphabetic=Yes}');
     Error('\P{Other_Alphabetic=Yes}');
     Error('\p{OAlpha=Y}');
     Error('\P{OAlpha=Y}');
     Error('\p{Is_Other_Alphabetic=T}');
     Error('\P{Is_Other_Alphabetic=T}');
-    Error('\p{Is_OAlpha: True}');
-    Error('\P{Is_OAlpha: True}');
+    Error('\p{Is_OAlpha=True}');
+    Error('\P{Is_OAlpha=True}');
     Error('\p{Other_Default_Ignorable_Code_Point=No}');
     Error('\P{Other_Default_Ignorable_Code_Point=No}');
     Error('\p{ODI=N}');
     Error('\P{ODI=N}');
-    Error('\p{Is_Other_Default_Ignorable_Code_Point=F}');
-    Error('\P{Is_Other_Default_Ignorable_Code_Point=F}');
+    Error('\p{Is_Other_Default_Ignorable_Code_Point:   F}');
+    Error('\P{Is_Other_Default_Ignorable_Code_Point:   F}');
     Error('\p{Is_ODI=False}');
     Error('\P{Is_ODI=False}');
-    Error('\p{Other_Default_Ignorable_Code_Point:   Yes}');
-    Error('\P{Other_Default_Ignorable_Code_Point:   Yes}');
+    Error('\p{Other_Default_Ignorable_Code_Point: Yes}');
+    Error('\P{Other_Default_Ignorable_Code_Point: Yes}');
     Error('\p{ODI=Y}');
     Error('\P{ODI=Y}');
     Error('\p{Is_Other_Default_Ignorable_Code_Point=T}');
@@ -85915,24 +86505,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Is_Other_Grapheme_Extend=F}');
     Error('\p{Is_OGr_Ext=False}');
     Error('\P{Is_OGr_Ext=False}');
-    Error('\p{Other_Grapheme_Extend=Yes}');
-    Error('\P{Other_Grapheme_Extend=Yes}');
+    Error('\p{Other_Grapheme_Extend:	Yes}');
+    Error('\P{Other_Grapheme_Extend:	Yes}');
     Error('\p{OGr_Ext=Y}');
     Error('\P{OGr_Ext=Y}');
     Error('\p{Is_Other_Grapheme_Extend=T}');
     Error('\P{Is_Other_Grapheme_Extend=T}');
-    Error('\p{Is_OGr_Ext:	True}');
-    Error('\P{Is_OGr_Ext:	True}');
-    Error('\p{Other_ID_Continue:   No}');
-    Error('\P{Other_ID_Continue:   No}');
-    Error('\p{OIDC: N}');
-    Error('\P{OIDC: N}');
-    Error('\p{Is_Other_ID_Continue=F}');
-    Error('\P{Is_Other_ID_Continue=F}');
+    Error('\p{Is_OGr_Ext=True}');
+    Error('\P{Is_OGr_Ext=True}');
+    Error('\p{Other_ID_Continue:	No}');
+    Error('\P{Other_ID_Continue:	No}');
+    Error('\p{OIDC=N}');
+    Error('\P{OIDC=N}');
+    Error('\p{Is_Other_ID_Continue:   F}');
+    Error('\P{Is_Other_ID_Continue:   F}');
     Error('\p{Is_OIDC=False}');
     Error('\P{Is_OIDC=False}');
-    Error('\p{Other_ID_Continue=Yes}');
-    Error('\P{Other_ID_Continue=Yes}');
+    Error('\p{Other_ID_Continue: Yes}');
+    Error('\P{Other_ID_Continue: Yes}');
     Error('\p{OIDC=Y}');
     Error('\P{OIDC=Y}');
     Error('\p{Is_Other_ID_Continue=T}');
@@ -85945,8 +86535,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{OIDS=N}');
     Error('\p{Is_Other_ID_Start=F}');
     Error('\P{Is_Other_ID_Start=F}');
-    Error('\p{Is_OIDS=False}');
-    Error('\P{Is_OIDS=False}');
+    Error('\p{Is_OIDS:   False}');
+    Error('\P{Is_OIDS:   False}');
     Error('\p{Other_ID_Start=Yes}');
     Error('\P{Other_ID_Start=Yes}');
     Error('\p{OIDS=Y}');
@@ -85957,8 +86547,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Is_OIDS=True}');
     Error('\p{Other_Lowercase=No}');
     Error('\P{Other_Lowercase=No}');
-    Error('\p{OLower:	N}');
-    Error('\P{OLower:	N}');
+    Error('\p{OLower=N}');
+    Error('\P{OLower=N}');
     Error('\p{Is_Other_Lowercase=F}');
     Error('\P{Is_Other_Lowercase=F}');
     Error('\p{Is_OLower=False}');
@@ -85967,22 +86557,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Other_Lowercase=Yes}');
     Error('\p{OLower=Y}');
     Error('\P{OLower=Y}');
-    Error('\p{Is_Other_Lowercase:	T}');
-    Error('\P{Is_Other_Lowercase:	T}');
+    Error('\p{Is_Other_Lowercase=T}');
+    Error('\P{Is_Other_Lowercase=T}');
     Error('\p{Is_OLower=True}');
     Error('\P{Is_OLower=True}');
     Error('\p{Other_Math=No}');
     Error('\P{Other_Math=No}');
-    Error('\p{OMath=N}');
-    Error('\P{OMath=N}');
+    Error('\p{OMath:   N}');
+    Error('\P{OMath:   N}');
     Error('\p{Is_Other_Math=F}');
     Error('\P{Is_Other_Math=F}');
-    Error('\p{Is_OMath: False}');
-    Error('\P{Is_OMath: False}');
+    Error('\p{Is_OMath=False}');
+    Error('\P{Is_OMath=False}');
     Error('\p{Other_Math=Yes}');
     Error('\P{Other_Math=Yes}');
-    Error('\p{OMath:   Y}');
-    Error('\P{OMath:   Y}');
+    Error('\p{OMath=Y}');
+    Error('\P{OMath=Y}');
     Error('\p{Is_Other_Math=T}');
     Error('\P{Is_Other_Math=T}');
     Error('\p{Is_OMath=True}');
@@ -85993,18 +86583,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{OUpper=N}');
     Error('\p{Is_Other_Uppercase=F}');
     Error('\P{Is_Other_Uppercase=F}');
-    Error('\p{Is_OUpper=False}');
-    Error('\P{Is_OUpper=False}');
-    Error('\p{Other_Uppercase:   Yes}');
-    Error('\P{Other_Uppercase:   Yes}');
+    Error('\p{Is_OUpper:   False}');
+    Error('\P{Is_OUpper:   False}');
+    Error('\p{Other_Uppercase=Yes}');
+    Error('\P{Other_Uppercase=Yes}');
     Error('\p{OUpper=Y}');
     Error('\P{OUpper=Y}');
     Error('\p{Is_Other_Uppercase=T}');
     Error('\P{Is_Other_Uppercase=T}');
     Error('\p{Is_OUpper=True}');
     Error('\P{Is_OUpper=True}');
-    Error('\p{Pattern_Syntax=:=_NO}');
-    Error('\P{Pattern_Syntax=:=_NO}');
+    Error('\p{Pattern_Syntax= /a/No}');
+    Error('\P{Pattern_Syntax= /a/No}');
     Expect(1, 65095, '\p{Pattern_Syntax=:\ANo\z:}', "");;
     Expect(0, 65094, '\p{Pattern_Syntax=:\ANo\z:}', "");;
     Expect(1, 65095, '\p{Pattern_Syntax=no}', "");
@@ -86017,56 +86607,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 65094, '\P{^Pattern_Syntax=no}', "");
     Expect(1, 65095, '\p{Pattern_Syntax=:\Ano\z:}', "");;
     Expect(0, 65094, '\p{Pattern_Syntax=:\Ano\z:}', "");;
-    Expect(1, 65095, '\p{Pattern_Syntax= _no}', "");
-    Expect(0, 65095, '\p{^Pattern_Syntax= _no}', "");
-    Expect(0, 65095, '\P{Pattern_Syntax= _no}', "");
-    Expect(1, 65095, '\P{^Pattern_Syntax= _no}', "");
-    Expect(0, 65094, '\p{Pattern_Syntax= _no}', "");
-    Expect(1, 65094, '\p{^Pattern_Syntax= _no}', "");
-    Expect(1, 65094, '\P{Pattern_Syntax= _no}', "");
-    Expect(0, 65094, '\P{^Pattern_Syntax= _no}', "");
-    Error('\p{Pat_Syn=:=	N}');
-    Error('\P{Pat_Syn=:=	N}');
+    Expect(1, 65095, '\p{Pattern_Syntax=	_No}', "");
+    Expect(0, 65095, '\p{^Pattern_Syntax=	_No}', "");
+    Expect(0, 65095, '\P{Pattern_Syntax=	_No}', "");
+    Expect(1, 65095, '\P{^Pattern_Syntax=	_No}', "");
+    Expect(0, 65094, '\p{Pattern_Syntax=	_No}', "");
+    Expect(1, 65094, '\p{^Pattern_Syntax=	_No}', "");
+    Expect(1, 65094, '\P{Pattern_Syntax=	_No}', "");
+    Expect(0, 65094, '\P{^Pattern_Syntax=	_No}', "");
+    Error('\p{Pat_Syn=	/a/N}');
+    Error('\P{Pat_Syn=	/a/N}');
     Expect(1, 65095, '\p{Pat_Syn=:\AN\z:}', "");;
     Expect(0, 65094, '\p{Pat_Syn=:\AN\z:}', "");;
-    Expect(1, 65095, '\p{Pat_Syn=n}', "");
-    Expect(0, 65095, '\p{^Pat_Syn=n}', "");
-    Expect(0, 65095, '\P{Pat_Syn=n}', "");
-    Expect(1, 65095, '\P{^Pat_Syn=n}', "");
-    Expect(0, 65094, '\p{Pat_Syn=n}', "");
-    Expect(1, 65094, '\p{^Pat_Syn=n}', "");
-    Expect(1, 65094, '\P{Pat_Syn=n}', "");
-    Expect(0, 65094, '\P{^Pat_Syn=n}', "");
+    Expect(1, 65095, '\p{Pat_Syn:   n}', "");
+    Expect(0, 65095, '\p{^Pat_Syn:   n}', "");
+    Expect(0, 65095, '\P{Pat_Syn:   n}', "");
+    Expect(1, 65095, '\P{^Pat_Syn:   n}', "");
+    Expect(0, 65094, '\p{Pat_Syn:   n}', "");
+    Expect(1, 65094, '\p{^Pat_Syn:   n}', "");
+    Expect(1, 65094, '\P{Pat_Syn:   n}', "");
+    Expect(0, 65094, '\P{^Pat_Syn:   n}', "");
     Expect(1, 65095, '\p{Pat_Syn=:\An\z:}', "");;
     Expect(0, 65094, '\p{Pat_Syn=:\An\z:}', "");;
-    Expect(1, 65095, '\p{Pat_Syn=_	n}', "");
-    Expect(0, 65095, '\p{^Pat_Syn=_	n}', "");
-    Expect(0, 65095, '\P{Pat_Syn=_	n}', "");
-    Expect(1, 65095, '\P{^Pat_Syn=_	n}', "");
-    Expect(0, 65094, '\p{Pat_Syn=_	n}', "");
-    Expect(1, 65094, '\p{^Pat_Syn=_	n}', "");
-    Expect(1, 65094, '\P{Pat_Syn=_	n}', "");
-    Expect(0, 65094, '\P{^Pat_Syn=_	n}', "");
-    Error('\p{Is_Pattern_Syntax=/a/	 F}');
-    Error('\P{Is_Pattern_Syntax=/a/	 F}');
-    Expect(1, 65095, '\p{Is_Pattern_Syntax=f}', "");
-    Expect(0, 65095, '\p{^Is_Pattern_Syntax=f}', "");
-    Expect(0, 65095, '\P{Is_Pattern_Syntax=f}', "");
-    Expect(1, 65095, '\P{^Is_Pattern_Syntax=f}', "");
-    Expect(0, 65094, '\p{Is_Pattern_Syntax=f}', "");
-    Expect(1, 65094, '\p{^Is_Pattern_Syntax=f}', "");
-    Expect(1, 65094, '\P{Is_Pattern_Syntax=f}', "");
-    Expect(0, 65094, '\P{^Is_Pattern_Syntax=f}', "");
-    Expect(1, 65095, '\p{Is_Pattern_Syntax=	_F}', "");
-    Expect(0, 65095, '\p{^Is_Pattern_Syntax=	_F}', "");
-    Expect(0, 65095, '\P{Is_Pattern_Syntax=	_F}', "");
-    Expect(1, 65095, '\P{^Is_Pattern_Syntax=	_F}', "");
-    Expect(0, 65094, '\p{Is_Pattern_Syntax=	_F}', "");
-    Expect(1, 65094, '\p{^Is_Pattern_Syntax=	_F}', "");
-    Expect(1, 65094, '\P{Is_Pattern_Syntax=	_F}', "");
-    Expect(0, 65094, '\P{^Is_Pattern_Syntax=	_F}', "");
-    Error('\p{Is_Pat_Syn=-:=False}');
-    Error('\P{Is_Pat_Syn=-:=False}');
+    Expect(1, 65095, '\p{Pat_Syn=--N}', "");
+    Expect(0, 65095, '\p{^Pat_Syn=--N}', "");
+    Expect(0, 65095, '\P{Pat_Syn=--N}', "");
+    Expect(1, 65095, '\P{^Pat_Syn=--N}', "");
+    Expect(0, 65094, '\p{Pat_Syn=--N}', "");
+    Expect(1, 65094, '\p{^Pat_Syn=--N}', "");
+    Expect(1, 65094, '\P{Pat_Syn=--N}', "");
+    Expect(0, 65094, '\P{^Pat_Syn=--N}', "");
+    Error('\p{Is_Pattern_Syntax=/a/__F}');
+    Error('\P{Is_Pattern_Syntax=/a/__F}');
+    Expect(1, 65095, '\p{Is_Pattern_Syntax:	f}', "");
+    Expect(0, 65095, '\p{^Is_Pattern_Syntax:	f}', "");
+    Expect(0, 65095, '\P{Is_Pattern_Syntax:	f}', "");
+    Expect(1, 65095, '\P{^Is_Pattern_Syntax:	f}', "");
+    Expect(0, 65094, '\p{Is_Pattern_Syntax:	f}', "");
+    Expect(1, 65094, '\p{^Is_Pattern_Syntax:	f}', "");
+    Expect(1, 65094, '\P{Is_Pattern_Syntax:	f}', "");
+    Expect(0, 65094, '\P{^Is_Pattern_Syntax:	f}', "");
+    Expect(1, 65095, '\p{Is_Pattern_Syntax=	F}', "");
+    Expect(0, 65095, '\p{^Is_Pattern_Syntax=	F}', "");
+    Expect(0, 65095, '\P{Is_Pattern_Syntax=	F}', "");
+    Expect(1, 65095, '\P{^Is_Pattern_Syntax=	F}', "");
+    Expect(0, 65094, '\p{Is_Pattern_Syntax=	F}', "");
+    Expect(1, 65094, '\p{^Is_Pattern_Syntax=	F}', "");
+    Expect(1, 65094, '\P{Is_Pattern_Syntax=	F}', "");
+    Expect(0, 65094, '\P{^Is_Pattern_Syntax=	F}', "");
+    Error('\p{Is_Pat_Syn= /a/FALSE}');
+    Error('\P{Is_Pat_Syn= /a/FALSE}');
     Expect(1, 65095, '\p{Is_Pat_Syn=false}', "");
     Expect(0, 65095, '\p{^Is_Pat_Syn=false}', "");
     Expect(0, 65095, '\P{Is_Pat_Syn=false}', "");
@@ -86075,8 +86665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65094, '\p{^Is_Pat_Syn=false}', "");
     Expect(1, 65094, '\P{Is_Pat_Syn=false}', "");
     Expect(0, 65094, '\P{^Is_Pat_Syn=false}', "");
-    Error('\p{Pattern_Syntax=	:=Yes}');
-    Error('\P{Pattern_Syntax=	:=Yes}');
+    Expect(1, 65095, '\p{Is_Pat_Syn= 	false}', "");
+    Expect(0, 65095, '\p{^Is_Pat_Syn= 	false}', "");
+    Expect(0, 65095, '\P{Is_Pat_Syn= 	false}', "");
+    Expect(1, 65095, '\P{^Is_Pat_Syn= 	false}', "");
+    Expect(0, 65094, '\p{Is_Pat_Syn= 	false}', "");
+    Expect(1, 65094, '\p{^Is_Pat_Syn= 	false}', "");
+    Expect(1, 65094, '\P{Is_Pat_Syn= 	false}', "");
+    Expect(0, 65094, '\P{^Is_Pat_Syn= 	false}', "");
+    Error('\p{Pattern_Syntax=-:=yes}');
+    Error('\P{Pattern_Syntax=-:=yes}');
     Expect(1, 65094, '\p{Pattern_Syntax=:\AYes\z:}', "");;
     Expect(0, 65095, '\p{Pattern_Syntax=:\AYes\z:}', "");;
     Expect(1, 65094, '\p{Pattern_Syntax=yes}', "");
@@ -86089,16 +86687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 65095, '\P{^Pattern_Syntax=yes}', "");
     Expect(1, 65094, '\p{Pattern_Syntax=:\Ayes\z:}', "");;
     Expect(0, 65095, '\p{Pattern_Syntax=:\Ayes\z:}', "");;
-    Expect(1, 65094, '\p{Pattern_Syntax=--Yes}', "");
-    Expect(0, 65094, '\p{^Pattern_Syntax=--Yes}', "");
-    Expect(0, 65094, '\P{Pattern_Syntax=--Yes}', "");
-    Expect(1, 65094, '\P{^Pattern_Syntax=--Yes}', "");
-    Expect(0, 65095, '\p{Pattern_Syntax=--Yes}', "");
-    Expect(1, 65095, '\p{^Pattern_Syntax=--Yes}', "");
-    Expect(1, 65095, '\P{Pattern_Syntax=--Yes}', "");
-    Expect(0, 65095, '\P{^Pattern_Syntax=--Yes}', "");
-    Error('\p{Pat_Syn=	:=y}');
-    Error('\P{Pat_Syn=	:=y}');
+    Expect(1, 65094, '\p{Pattern_Syntax=-YES}', "");
+    Expect(0, 65094, '\p{^Pattern_Syntax=-YES}', "");
+    Expect(0, 65094, '\P{Pattern_Syntax=-YES}', "");
+    Expect(1, 65094, '\P{^Pattern_Syntax=-YES}', "");
+    Expect(0, 65095, '\p{Pattern_Syntax=-YES}', "");
+    Expect(1, 65095, '\p{^Pattern_Syntax=-YES}', "");
+    Expect(1, 65095, '\P{Pattern_Syntax=-YES}', "");
+    Expect(0, 65095, '\P{^Pattern_Syntax=-YES}', "");
+    Error('\p{Pat_Syn=_Y/a/}');
+    Error('\P{Pat_Syn=_Y/a/}');
     Expect(1, 65094, '\p{Pat_Syn=:\AY\z:}', "");;
     Expect(0, 65095, '\p{Pat_Syn=:\AY\z:}', "");;
     Expect(1, 65094, '\p{Pat_Syn=y}', "");
@@ -86111,16 +86709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 65095, '\P{^Pat_Syn=y}', "");
     Expect(1, 65094, '\p{Pat_Syn=:\Ay\z:}', "");;
     Expect(0, 65095, '\p{Pat_Syn=:\Ay\z:}', "");;
-    Expect(1, 65094, '\p{Pat_Syn=		Y}', "");
-    Expect(0, 65094, '\p{^Pat_Syn=		Y}', "");
-    Expect(0, 65094, '\P{Pat_Syn=		Y}', "");
-    Expect(1, 65094, '\P{^Pat_Syn=		Y}', "");
-    Expect(0, 65095, '\p{Pat_Syn=		Y}', "");
-    Expect(1, 65095, '\p{^Pat_Syn=		Y}', "");
-    Expect(1, 65095, '\P{Pat_Syn=		Y}', "");
-    Expect(0, 65095, '\P{^Pat_Syn=		Y}', "");
-    Error('\p{Is_Pattern_Syntax=:=	T}');
-    Error('\P{Is_Pattern_Syntax=:=	T}');
+    Expect(1, 65094, '\p{Pat_Syn=	Y}', "");
+    Expect(0, 65094, '\p{^Pat_Syn=	Y}', "");
+    Expect(0, 65094, '\P{Pat_Syn=	Y}', "");
+    Expect(1, 65094, '\P{^Pat_Syn=	Y}', "");
+    Expect(0, 65095, '\p{Pat_Syn=	Y}', "");
+    Expect(1, 65095, '\p{^Pat_Syn=	Y}', "");
+    Expect(1, 65095, '\P{Pat_Syn=	Y}', "");
+    Expect(0, 65095, '\P{^Pat_Syn=	Y}', "");
+    Error('\p{Is_Pattern_Syntax=:=_T}');
+    Error('\P{Is_Pattern_Syntax=:=_T}');
     Expect(1, 65094, '\p{Is_Pattern_Syntax=t}', "");
     Expect(0, 65094, '\p{^Is_Pattern_Syntax=t}', "");
     Expect(0, 65094, '\P{Is_Pattern_Syntax=t}', "");
@@ -86129,16 +86727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65095, '\p{^Is_Pattern_Syntax=t}', "");
     Expect(1, 65095, '\P{Is_Pattern_Syntax=t}', "");
     Expect(0, 65095, '\P{^Is_Pattern_Syntax=t}', "");
-    Expect(1, 65094, '\p{Is_Pattern_Syntax=_	T}', "");
-    Expect(0, 65094, '\p{^Is_Pattern_Syntax=_	T}', "");
-    Expect(0, 65094, '\P{Is_Pattern_Syntax=_	T}', "");
-    Expect(1, 65094, '\P{^Is_Pattern_Syntax=_	T}', "");
-    Expect(0, 65095, '\p{Is_Pattern_Syntax=_	T}', "");
-    Expect(1, 65095, '\p{^Is_Pattern_Syntax=_	T}', "");
-    Expect(1, 65095, '\P{Is_Pattern_Syntax=_	T}', "");
-    Expect(0, 65095, '\P{^Is_Pattern_Syntax=_	T}', "");
-    Error('\p{Is_Pat_Syn=/a/TRUE}');
-    Error('\P{Is_Pat_Syn=/a/TRUE}');
+    Expect(1, 65094, '\p{Is_Pattern_Syntax=-T}', "");
+    Expect(0, 65094, '\p{^Is_Pattern_Syntax=-T}', "");
+    Expect(0, 65094, '\P{Is_Pattern_Syntax=-T}', "");
+    Expect(1, 65094, '\P{^Is_Pattern_Syntax=-T}', "");
+    Expect(0, 65095, '\p{Is_Pattern_Syntax=-T}', "");
+    Expect(1, 65095, '\p{^Is_Pattern_Syntax=-T}', "");
+    Expect(1, 65095, '\P{Is_Pattern_Syntax=-T}', "");
+    Expect(0, 65095, '\P{^Is_Pattern_Syntax=-T}', "");
+    Error('\p{Is_Pat_Syn=:=	TRUE}');
+    Error('\P{Is_Pat_Syn=:=	TRUE}');
     Expect(1, 65094, '\p{Is_Pat_Syn=true}', "");
     Expect(0, 65094, '\p{^Is_Pat_Syn=true}', "");
     Expect(0, 65094, '\P{Is_Pat_Syn=true}', "");
@@ -86147,16 +86745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65095, '\p{^Is_Pat_Syn=true}', "");
     Expect(1, 65095, '\P{Is_Pat_Syn=true}', "");
     Expect(0, 65095, '\P{^Is_Pat_Syn=true}', "");
-    Expect(1, 65094, '\p{Is_Pat_Syn=_True}', "");
-    Expect(0, 65094, '\p{^Is_Pat_Syn=_True}', "");
-    Expect(0, 65094, '\P{Is_Pat_Syn=_True}', "");
-    Expect(1, 65094, '\P{^Is_Pat_Syn=_True}', "");
-    Expect(0, 65095, '\p{Is_Pat_Syn=_True}', "");
-    Expect(1, 65095, '\p{^Is_Pat_Syn=_True}', "");
-    Expect(1, 65095, '\P{Is_Pat_Syn=_True}', "");
-    Expect(0, 65095, '\P{^Is_Pat_Syn=_True}', "");
-    Error('\p{Pattern_White_Space=_No/a/}');
-    Error('\P{Pattern_White_Space=_No/a/}');
+    Expect(1, 65094, '\p{Is_Pat_Syn=--True}', "");
+    Expect(0, 65094, '\p{^Is_Pat_Syn=--True}', "");
+    Expect(0, 65094, '\P{Is_Pat_Syn=--True}', "");
+    Expect(1, 65094, '\P{^Is_Pat_Syn=--True}', "");
+    Expect(0, 65095, '\p{Is_Pat_Syn=--True}', "");
+    Expect(1, 65095, '\p{^Is_Pat_Syn=--True}', "");
+    Expect(1, 65095, '\P{Is_Pat_Syn=--True}', "");
+    Expect(0, 65095, '\P{^Is_Pat_Syn=--True}', "");
+    Error('\p{Pattern_White_Space=_:=No}');
+    Error('\P{Pattern_White_Space=_:=No}');
     Expect(1, 8234, '\p{Pattern_White_Space=:\ANo\z:}', "");;
     Expect(0, 8233, '\p{Pattern_White_Space=:\ANo\z:}', "");;
     Expect(1, 8234, '\p{Pattern_White_Space=no}', "");
@@ -86169,16 +86767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8233, '\P{^Pattern_White_Space=no}', "");
     Expect(1, 8234, '\p{Pattern_White_Space=:\Ano\z:}', "");;
     Expect(0, 8233, '\p{Pattern_White_Space=:\Ano\z:}', "");;
-    Expect(1, 8234, '\p{Pattern_White_Space=	_NO}', "");
-    Expect(0, 8234, '\p{^Pattern_White_Space=	_NO}', "");
-    Expect(0, 8234, '\P{Pattern_White_Space=	_NO}', "");
-    Expect(1, 8234, '\P{^Pattern_White_Space=	_NO}', "");
-    Expect(0, 8233, '\p{Pattern_White_Space=	_NO}', "");
-    Expect(1, 8233, '\p{^Pattern_White_Space=	_NO}', "");
-    Expect(1, 8233, '\P{Pattern_White_Space=	_NO}', "");
-    Expect(0, 8233, '\P{^Pattern_White_Space=	_NO}', "");
-    Error('\p{Pat_WS=/a/-N}');
-    Error('\P{Pat_WS=/a/-N}');
+    Expect(1, 8234, '\p{Pattern_White_Space:_-NO}', "");
+    Expect(0, 8234, '\p{^Pattern_White_Space:_-NO}', "");
+    Expect(0, 8234, '\P{Pattern_White_Space:_-NO}', "");
+    Expect(1, 8234, '\P{^Pattern_White_Space:_-NO}', "");
+    Expect(0, 8233, '\p{Pattern_White_Space:_-NO}', "");
+    Expect(1, 8233, '\p{^Pattern_White_Space:_-NO}', "");
+    Expect(1, 8233, '\P{Pattern_White_Space:_-NO}', "");
+    Expect(0, 8233, '\P{^Pattern_White_Space:_-NO}', "");
+    Error('\p{Pat_WS=:=	 N}');
+    Error('\P{Pat_WS=:=	 N}');
     Expect(1, 8234, '\p{Pat_WS=:\AN\z:}', "");;
     Expect(0, 8233, '\p{Pat_WS=:\AN\z:}', "");;
     Expect(1, 8234, '\p{Pat_WS=n}', "");
@@ -86191,16 +86789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8233, '\P{^Pat_WS=n}', "");
     Expect(1, 8234, '\p{Pat_WS=:\An\z:}', "");;
     Expect(0, 8233, '\p{Pat_WS=:\An\z:}', "");;
-    Expect(1, 8234, '\p{Pat_WS=N}', "");
-    Expect(0, 8234, '\p{^Pat_WS=N}', "");
-    Expect(0, 8234, '\P{Pat_WS=N}', "");
-    Expect(1, 8234, '\P{^Pat_WS=N}', "");
-    Expect(0, 8233, '\p{Pat_WS=N}', "");
-    Expect(1, 8233, '\p{^Pat_WS=N}', "");
-    Expect(1, 8233, '\P{Pat_WS=N}', "");
-    Expect(0, 8233, '\P{^Pat_WS=N}', "");
-    Error('\p{Is_Pattern_White_Space:   	/a/F}');
-    Error('\P{Is_Pattern_White_Space:   	/a/F}');
+    Expect(1, 8234, '\p{Pat_WS=_	N}', "");
+    Expect(0, 8234, '\p{^Pat_WS=_	N}', "");
+    Expect(0, 8234, '\P{Pat_WS=_	N}', "");
+    Expect(1, 8234, '\P{^Pat_WS=_	N}', "");
+    Expect(0, 8233, '\p{Pat_WS=_	N}', "");
+    Expect(1, 8233, '\p{^Pat_WS=_	N}', "");
+    Expect(1, 8233, '\P{Pat_WS=_	N}', "");
+    Expect(0, 8233, '\P{^Pat_WS=_	N}', "");
+    Error('\p{Is_Pattern_White_Space= /a/F}');
+    Error('\P{Is_Pattern_White_Space= /a/F}');
     Expect(1, 8234, '\p{Is_Pattern_White_Space=f}', "");
     Expect(0, 8234, '\p{^Is_Pattern_White_Space=f}', "");
     Expect(0, 8234, '\P{Is_Pattern_White_Space=f}', "");
@@ -86209,16 +86807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8233, '\p{^Is_Pattern_White_Space=f}', "");
     Expect(1, 8233, '\P{Is_Pattern_White_Space=f}', "");
     Expect(0, 8233, '\P{^Is_Pattern_White_Space=f}', "");
-    Expect(1, 8234, '\p{Is_Pattern_White_Space: 	_F}', "");
-    Expect(0, 8234, '\p{^Is_Pattern_White_Space: 	_F}', "");
-    Expect(0, 8234, '\P{Is_Pattern_White_Space: 	_F}', "");
-    Expect(1, 8234, '\P{^Is_Pattern_White_Space: 	_F}', "");
-    Expect(0, 8233, '\p{Is_Pattern_White_Space: 	_F}', "");
-    Expect(1, 8233, '\p{^Is_Pattern_White_Space: 	_F}', "");
-    Expect(1, 8233, '\P{Is_Pattern_White_Space: 	_F}', "");
-    Expect(0, 8233, '\P{^Is_Pattern_White_Space: 	_F}', "");
-    Error('\p{Is_Pat_WS=/a/-_false}');
-    Error('\P{Is_Pat_WS=/a/-_false}');
+    Expect(1, 8234, '\p{Is_Pattern_White_Space=-F}', "");
+    Expect(0, 8234, '\p{^Is_Pattern_White_Space=-F}', "");
+    Expect(0, 8234, '\P{Is_Pattern_White_Space=-F}', "");
+    Expect(1, 8234, '\P{^Is_Pattern_White_Space=-F}', "");
+    Expect(0, 8233, '\p{Is_Pattern_White_Space=-F}', "");
+    Expect(1, 8233, '\p{^Is_Pattern_White_Space=-F}', "");
+    Expect(1, 8233, '\P{Is_Pattern_White_Space=-F}', "");
+    Expect(0, 8233, '\P{^Is_Pattern_White_Space=-F}', "");
+    Error('\p{Is_Pat_WS=:= _false}');
+    Error('\P{Is_Pat_WS=:= _false}');
     Expect(1, 8234, '\p{Is_Pat_WS=false}', "");
     Expect(0, 8234, '\p{^Is_Pat_WS=false}', "");
     Expect(0, 8234, '\P{Is_Pat_WS=false}', "");
@@ -86227,16 +86825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8233, '\p{^Is_Pat_WS=false}', "");
     Expect(1, 8233, '\P{Is_Pat_WS=false}', "");
     Expect(0, 8233, '\P{^Is_Pat_WS=false}', "");
-    Expect(1, 8234, '\p{Is_Pat_WS:   -FALSE}', "");
-    Expect(0, 8234, '\p{^Is_Pat_WS:   -FALSE}', "");
-    Expect(0, 8234, '\P{Is_Pat_WS:   -FALSE}', "");
-    Expect(1, 8234, '\P{^Is_Pat_WS:   -FALSE}', "");
-    Expect(0, 8233, '\p{Is_Pat_WS:   -FALSE}', "");
-    Expect(1, 8233, '\p{^Is_Pat_WS:   -FALSE}', "");
-    Expect(1, 8233, '\P{Is_Pat_WS:   -FALSE}', "");
-    Expect(0, 8233, '\P{^Is_Pat_WS:   -FALSE}', "");
-    Error('\p{Pattern_White_Space=-Yes:=}');
-    Error('\P{Pattern_White_Space=-Yes:=}');
+    Expect(1, 8234, '\p{Is_Pat_WS: 	false}', "");
+    Expect(0, 8234, '\p{^Is_Pat_WS: 	false}', "");
+    Expect(0, 8234, '\P{Is_Pat_WS: 	false}', "");
+    Expect(1, 8234, '\P{^Is_Pat_WS: 	false}', "");
+    Expect(0, 8233, '\p{Is_Pat_WS: 	false}', "");
+    Expect(1, 8233, '\p{^Is_Pat_WS: 	false}', "");
+    Expect(1, 8233, '\P{Is_Pat_WS: 	false}', "");
+    Expect(0, 8233, '\P{^Is_Pat_WS: 	false}', "");
+    Error('\p{Pattern_White_Space= _yes/a/}');
+    Error('\P{Pattern_White_Space= _yes/a/}');
     Expect(1, 8233, '\p{Pattern_White_Space=:\AYes\z:}', "");;
     Expect(0, 8234, '\p{Pattern_White_Space=:\AYes\z:}', "");;
     Expect(1, 8233, '\p{Pattern_White_Space=yes}', "");
@@ -86249,16 +86847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8234, '\P{^Pattern_White_Space=yes}', "");
     Expect(1, 8233, '\p{Pattern_White_Space=:\Ayes\z:}', "");;
     Expect(0, 8234, '\p{Pattern_White_Space=:\Ayes\z:}', "");;
-    Expect(1, 8233, '\p{Pattern_White_Space=  yes}', "");
-    Expect(0, 8233, '\p{^Pattern_White_Space=  yes}', "");
-    Expect(0, 8233, '\P{Pattern_White_Space=  yes}', "");
-    Expect(1, 8233, '\P{^Pattern_White_Space=  yes}', "");
-    Expect(0, 8234, '\p{Pattern_White_Space=  yes}', "");
-    Expect(1, 8234, '\p{^Pattern_White_Space=  yes}', "");
-    Expect(1, 8234, '\P{Pattern_White_Space=  yes}', "");
-    Expect(0, 8234, '\P{^Pattern_White_Space=  yes}', "");
-    Error('\p{Pat_WS= :=Y}');
-    Error('\P{Pat_WS= :=Y}');
+    Expect(1, 8233, '\p{Pattern_White_Space:		yes}', "");
+    Expect(0, 8233, '\p{^Pattern_White_Space:		yes}', "");
+    Expect(0, 8233, '\P{Pattern_White_Space:		yes}', "");
+    Expect(1, 8233, '\P{^Pattern_White_Space:		yes}', "");
+    Expect(0, 8234, '\p{Pattern_White_Space:		yes}', "");
+    Expect(1, 8234, '\p{^Pattern_White_Space:		yes}', "");
+    Expect(1, 8234, '\P{Pattern_White_Space:		yes}', "");
+    Expect(0, 8234, '\P{^Pattern_White_Space:		yes}', "");
+    Error('\p{Pat_WS:	  Y/a/}');
+    Error('\P{Pat_WS:	  Y/a/}');
     Expect(1, 8233, '\p{Pat_WS=:\AY\z:}', "");;
     Expect(0, 8234, '\p{Pat_WS=:\AY\z:}', "");;
     Expect(1, 8233, '\p{Pat_WS=y}', "");
@@ -86271,34 +86869,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 8234, '\P{^Pat_WS=y}', "");
     Expect(1, 8233, '\p{Pat_WS=:\Ay\z:}', "");;
     Expect(0, 8234, '\p{Pat_WS=:\Ay\z:}', "");;
-    Expect(1, 8233, '\p{Pat_WS=_-Y}', "");
-    Expect(0, 8233, '\p{^Pat_WS=_-Y}', "");
-    Expect(0, 8233, '\P{Pat_WS=_-Y}', "");
-    Expect(1, 8233, '\P{^Pat_WS=_-Y}', "");
-    Expect(0, 8234, '\p{Pat_WS=_-Y}', "");
-    Expect(1, 8234, '\p{^Pat_WS=_-Y}', "");
-    Expect(1, 8234, '\P{Pat_WS=_-Y}', "");
-    Expect(0, 8234, '\P{^Pat_WS=_-Y}', "");
-    Error('\p{Is_Pattern_White_Space=/a/  T}');
-    Error('\P{Is_Pattern_White_Space=/a/  T}');
-    Expect(1, 8233, '\p{Is_Pattern_White_Space:	t}', "");
-    Expect(0, 8233, '\p{^Is_Pattern_White_Space:	t}', "");
-    Expect(0, 8233, '\P{Is_Pattern_White_Space:	t}', "");
-    Expect(1, 8233, '\P{^Is_Pattern_White_Space:	t}', "");
-    Expect(0, 8234, '\p{Is_Pattern_White_Space:	t}', "");
-    Expect(1, 8234, '\p{^Is_Pattern_White_Space:	t}', "");
-    Expect(1, 8234, '\P{Is_Pattern_White_Space:	t}', "");
-    Expect(0, 8234, '\P{^Is_Pattern_White_Space:	t}', "");
-    Expect(1, 8233, '\p{Is_Pattern_White_Space:    T}', "");
-    Expect(0, 8233, '\p{^Is_Pattern_White_Space:    T}', "");
-    Expect(0, 8233, '\P{Is_Pattern_White_Space:    T}', "");
-    Expect(1, 8233, '\P{^Is_Pattern_White_Space:    T}', "");
-    Expect(0, 8234, '\p{Is_Pattern_White_Space:    T}', "");
-    Expect(1, 8234, '\p{^Is_Pattern_White_Space:    T}', "");
-    Expect(1, 8234, '\P{Is_Pattern_White_Space:    T}', "");
-    Expect(0, 8234, '\P{^Is_Pattern_White_Space:    T}', "");
-    Error('\p{Is_Pat_WS=/a/	true}');
-    Error('\P{Is_Pat_WS=/a/	true}');
+    Expect(1, 8233, '\p{Pat_WS=-_Y}', "");
+    Expect(0, 8233, '\p{^Pat_WS=-_Y}', "");
+    Expect(0, 8233, '\P{Pat_WS=-_Y}', "");
+    Expect(1, 8233, '\P{^Pat_WS=-_Y}', "");
+    Expect(0, 8234, '\p{Pat_WS=-_Y}', "");
+    Expect(1, 8234, '\p{^Pat_WS=-_Y}', "");
+    Expect(1, 8234, '\P{Pat_WS=-_Y}', "");
+    Expect(0, 8234, '\P{^Pat_WS=-_Y}', "");
+    Error('\p{Is_Pattern_White_Space=/a/_-t}');
+    Error('\P{Is_Pattern_White_Space=/a/_-t}');
+    Expect(1, 8233, '\p{Is_Pattern_White_Space=t}', "");
+    Expect(0, 8233, '\p{^Is_Pattern_White_Space=t}', "");
+    Expect(0, 8233, '\P{Is_Pattern_White_Space=t}', "");
+    Expect(1, 8233, '\P{^Is_Pattern_White_Space=t}', "");
+    Expect(0, 8234, '\p{Is_Pattern_White_Space=t}', "");
+    Expect(1, 8234, '\p{^Is_Pattern_White_Space=t}', "");
+    Expect(1, 8234, '\P{Is_Pattern_White_Space=t}', "");
+    Expect(0, 8234, '\P{^Is_Pattern_White_Space=t}', "");
+    Expect(1, 8233, '\p{Is_Pattern_White_Space:	-T}', "");
+    Expect(0, 8233, '\p{^Is_Pattern_White_Space:	-T}', "");
+    Expect(0, 8233, '\P{Is_Pattern_White_Space:	-T}', "");
+    Expect(1, 8233, '\P{^Is_Pattern_White_Space:	-T}', "");
+    Expect(0, 8234, '\p{Is_Pattern_White_Space:	-T}', "");
+    Expect(1, 8234, '\p{^Is_Pattern_White_Space:	-T}', "");
+    Expect(1, 8234, '\P{Is_Pattern_White_Space:	-T}', "");
+    Expect(0, 8234, '\P{^Is_Pattern_White_Space:	-T}', "");
+    Error('\p{Is_Pat_WS=:=_-TRUE}');
+    Error('\P{Is_Pat_WS=:=_-TRUE}');
     Expect(1, 8233, '\p{Is_Pat_WS=true}', "");
     Expect(0, 8233, '\p{^Is_Pat_WS=true}', "");
     Expect(0, 8233, '\P{Is_Pat_WS=true}', "");
@@ -86307,16 +86905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^Is_Pat_WS=true}', "");
     Expect(1, 8234, '\P{Is_Pat_WS=true}', "");
     Expect(0, 8234, '\P{^Is_Pat_WS=true}', "");
-    Expect(1, 8233, '\p{Is_Pat_WS=-_True}', "");
-    Expect(0, 8233, '\p{^Is_Pat_WS=-_True}', "");
-    Expect(0, 8233, '\P{Is_Pat_WS=-_True}', "");
-    Expect(1, 8233, '\P{^Is_Pat_WS=-_True}', "");
-    Expect(0, 8234, '\p{Is_Pat_WS=-_True}', "");
-    Expect(1, 8234, '\p{^Is_Pat_WS=-_True}', "");
-    Expect(1, 8234, '\P{Is_Pat_WS=-_True}', "");
-    Expect(0, 8234, '\P{^Is_Pat_WS=-_True}', "");
-    Error('\p{Prepended_Concatenation_Mark=:=No}');
-    Error('\P{Prepended_Concatenation_Mark=:=No}');
+    Expect(1, 8233, '\p{Is_Pat_WS=-True}', "");
+    Expect(0, 8233, '\p{^Is_Pat_WS=-True}', "");
+    Expect(0, 8233, '\P{Is_Pat_WS=-True}', "");
+    Expect(1, 8233, '\P{^Is_Pat_WS=-True}', "");
+    Expect(0, 8234, '\p{Is_Pat_WS=-True}', "");
+    Expect(1, 8234, '\p{^Is_Pat_WS=-True}', "");
+    Expect(1, 8234, '\P{Is_Pat_WS=-True}', "");
+    Expect(0, 8234, '\P{^Is_Pat_WS=-True}', "");
+    Error('\p{Prepended_Concatenation_Mark=_:=no}');
+    Error('\P{Prepended_Concatenation_Mark=_:=no}');
     Expect(1, 69838, '\p{Prepended_Concatenation_Mark=:\ANo\z:}', "");;
     Expect(0, 69837, '\p{Prepended_Concatenation_Mark=:\ANo\z:}', "");;
     Expect(1, 69838, '\p{Prepended_Concatenation_Mark=no}', "");
@@ -86329,16 +86927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 69837, '\P{^Prepended_Concatenation_Mark=no}', "");
     Expect(1, 69838, '\p{Prepended_Concatenation_Mark=:\Ano\z:}', "");;
     Expect(0, 69837, '\p{Prepended_Concatenation_Mark=:\Ano\z:}', "");;
-    Expect(1, 69838, '\p{Prepended_Concatenation_Mark=	_No}', "");
-    Expect(0, 69838, '\p{^Prepended_Concatenation_Mark=	_No}', "");
-    Expect(0, 69838, '\P{Prepended_Concatenation_Mark=	_No}', "");
-    Expect(1, 69838, '\P{^Prepended_Concatenation_Mark=	_No}', "");
-    Expect(0, 69837, '\p{Prepended_Concatenation_Mark=	_No}', "");
-    Expect(1, 69837, '\p{^Prepended_Concatenation_Mark=	_No}', "");
-    Expect(1, 69837, '\P{Prepended_Concatenation_Mark=	_No}', "");
-    Expect(0, 69837, '\P{^Prepended_Concatenation_Mark=	_No}', "");
-    Error('\p{PCM=/a/__N}');
-    Error('\P{PCM=/a/__N}');
+    Expect(1, 69838, '\p{Prepended_Concatenation_Mark=--No}', "");
+    Expect(0, 69838, '\p{^Prepended_Concatenation_Mark=--No}', "");
+    Expect(0, 69838, '\P{Prepended_Concatenation_Mark=--No}', "");
+    Expect(1, 69838, '\P{^Prepended_Concatenation_Mark=--No}', "");
+    Expect(0, 69837, '\p{Prepended_Concatenation_Mark=--No}', "");
+    Expect(1, 69837, '\p{^Prepended_Concatenation_Mark=--No}', "");
+    Expect(1, 69837, '\P{Prepended_Concatenation_Mark=--No}', "");
+    Expect(0, 69837, '\P{^Prepended_Concatenation_Mark=--No}', "");
+    Error('\p{PCM=/a/_-N}');
+    Error('\P{PCM=/a/_-N}');
     Expect(1, 69838, '\p{PCM=:\AN\z:}', "");;
     Expect(0, 69837, '\p{PCM=:\AN\z:}', "");;
     Expect(1, 69838, '\p{PCM=n}', "");
@@ -86351,16 +86949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 69837, '\P{^PCM=n}', "");
     Expect(1, 69838, '\p{PCM=:\An\z:}', "");;
     Expect(0, 69837, '\p{PCM=:\An\z:}', "");;
-    Expect(1, 69838, '\p{PCM= n}', "");
-    Expect(0, 69838, '\p{^PCM= n}', "");
-    Expect(0, 69838, '\P{PCM= n}', "");
-    Expect(1, 69838, '\P{^PCM= n}', "");
-    Expect(0, 69837, '\p{PCM= n}', "");
-    Expect(1, 69837, '\p{^PCM= n}', "");
-    Expect(1, 69837, '\P{PCM= n}', "");
-    Expect(0, 69837, '\P{^PCM= n}', "");
-    Error('\p{Is_Prepended_Concatenation_Mark=__F/a/}');
-    Error('\P{Is_Prepended_Concatenation_Mark=__F/a/}');
+    Expect(1, 69838, '\p{PCM=-	N}', "");
+    Expect(0, 69838, '\p{^PCM=-	N}', "");
+    Expect(0, 69838, '\P{PCM=-	N}', "");
+    Expect(1, 69838, '\P{^PCM=-	N}', "");
+    Expect(0, 69837, '\p{PCM=-	N}', "");
+    Expect(1, 69837, '\p{^PCM=-	N}', "");
+    Expect(1, 69837, '\P{PCM=-	N}', "");
+    Expect(0, 69837, '\P{^PCM=-	N}', "");
+    Error('\p{Is_Prepended_Concatenation_Mark=:=	F}');
+    Error('\P{Is_Prepended_Concatenation_Mark=:=	F}');
     Expect(1, 69838, '\p{Is_Prepended_Concatenation_Mark=f}', "");
     Expect(0, 69838, '\p{^Is_Prepended_Concatenation_Mark=f}', "");
     Expect(0, 69838, '\P{Is_Prepended_Concatenation_Mark=f}', "");
@@ -86369,56 +86967,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69837, '\p{^Is_Prepended_Concatenation_Mark=f}', "");
     Expect(1, 69837, '\P{Is_Prepended_Concatenation_Mark=f}', "");
     Expect(0, 69837, '\P{^Is_Prepended_Concatenation_Mark=f}', "");
-    Expect(1, 69838, '\p{Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(0, 69838, '\p{^Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(0, 69838, '\P{Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(1, 69838, '\P{^Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(0, 69837, '\p{Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(1, 69837, '\p{^Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(1, 69837, '\P{Is_Prepended_Concatenation_Mark=_-F}', "");
-    Expect(0, 69837, '\P{^Is_Prepended_Concatenation_Mark=_-F}', "");
-    Error('\p{Is_PCM=	/a/False}');
-    Error('\P{Is_PCM=	/a/False}');
-    Expect(1, 69838, '\p{Is_PCM:false}', "");
-    Expect(0, 69838, '\p{^Is_PCM:false}', "");
-    Expect(0, 69838, '\P{Is_PCM:false}', "");
-    Expect(1, 69838, '\P{^Is_PCM:false}', "");
-    Expect(0, 69837, '\p{Is_PCM:false}', "");
-    Expect(1, 69837, '\p{^Is_PCM:false}', "");
-    Expect(1, 69837, '\P{Is_PCM:false}', "");
-    Expect(0, 69837, '\P{^Is_PCM:false}', "");
-    Expect(1, 69838, '\p{Is_PCM= _FALSE}', "");
-    Expect(0, 69838, '\p{^Is_PCM= _FALSE}', "");
-    Expect(0, 69838, '\P{Is_PCM= _FALSE}', "");
-    Expect(1, 69838, '\P{^Is_PCM= _FALSE}', "");
-    Expect(0, 69837, '\p{Is_PCM= _FALSE}', "");
-    Expect(1, 69837, '\p{^Is_PCM= _FALSE}', "");
-    Expect(1, 69837, '\P{Is_PCM= _FALSE}', "");
-    Expect(0, 69837, '\P{^Is_PCM= _FALSE}', "");
-    Error('\p{Prepended_Concatenation_Mark=	:=YES}');
-    Error('\P{Prepended_Concatenation_Mark=	:=YES}');
+    Expect(1, 69838, '\p{Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(0, 69838, '\p{^Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(0, 69838, '\P{Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(1, 69838, '\P{^Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(0, 69837, '\p{Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(1, 69837, '\p{^Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(1, 69837, '\P{Is_Prepended_Concatenation_Mark=	F}', "");
+    Expect(0, 69837, '\P{^Is_Prepended_Concatenation_Mark=	F}', "");
+    Error('\p{Is_PCM=-_False:=}');
+    Error('\P{Is_PCM=-_False:=}');
+    Expect(1, 69838, '\p{Is_PCM: false}', "");
+    Expect(0, 69838, '\p{^Is_PCM: false}', "");
+    Expect(0, 69838, '\P{Is_PCM: false}', "");
+    Expect(1, 69838, '\P{^Is_PCM: false}', "");
+    Expect(0, 69837, '\p{Is_PCM: false}', "");
+    Expect(1, 69837, '\p{^Is_PCM: false}', "");
+    Expect(1, 69837, '\P{Is_PCM: false}', "");
+    Expect(0, 69837, '\P{^Is_PCM: false}', "");
+    Expect(1, 69838, '\p{Is_PCM=	False}', "");
+    Expect(0, 69838, '\p{^Is_PCM=	False}', "");
+    Expect(0, 69838, '\P{Is_PCM=	False}', "");
+    Expect(1, 69838, '\P{^Is_PCM=	False}', "");
+    Expect(0, 69837, '\p{Is_PCM=	False}', "");
+    Expect(1, 69837, '\p{^Is_PCM=	False}', "");
+    Expect(1, 69837, '\P{Is_PCM=	False}', "");
+    Expect(0, 69837, '\P{^Is_PCM=	False}', "");
+    Error('\p{Prepended_Concatenation_Mark=:=-	YES}');
+    Error('\P{Prepended_Concatenation_Mark=:=-	YES}');
     Expect(1, 69837, '\p{Prepended_Concatenation_Mark=:\AYes\z:}', "");;
     Expect(0, 69838, '\p{Prepended_Concatenation_Mark=:\AYes\z:}', "");;
-    Expect(1, 69837, '\p{Prepended_Concatenation_Mark: yes}', "");
-    Expect(0, 69837, '\p{^Prepended_Concatenation_Mark: yes}', "");
-    Expect(0, 69837, '\P{Prepended_Concatenation_Mark: yes}', "");
-    Expect(1, 69837, '\P{^Prepended_Concatenation_Mark: yes}', "");
-    Expect(0, 69838, '\p{Prepended_Concatenation_Mark: yes}', "");
-    Expect(1, 69838, '\p{^Prepended_Concatenation_Mark: yes}', "");
-    Expect(1, 69838, '\P{Prepended_Concatenation_Mark: yes}', "");
-    Expect(0, 69838, '\P{^Prepended_Concatenation_Mark: yes}', "");
+    Expect(1, 69837, '\p{Prepended_Concatenation_Mark=yes}', "");
+    Expect(0, 69837, '\p{^Prepended_Concatenation_Mark=yes}', "");
+    Expect(0, 69837, '\P{Prepended_Concatenation_Mark=yes}', "");
+    Expect(1, 69837, '\P{^Prepended_Concatenation_Mark=yes}', "");
+    Expect(0, 69838, '\p{Prepended_Concatenation_Mark=yes}', "");
+    Expect(1, 69838, '\p{^Prepended_Concatenation_Mark=yes}', "");
+    Expect(1, 69838, '\P{Prepended_Concatenation_Mark=yes}', "");
+    Expect(0, 69838, '\P{^Prepended_Concatenation_Mark=yes}', "");
     Expect(1, 69837, '\p{Prepended_Concatenation_Mark=:\Ayes\z:}', "");;
     Expect(0, 69838, '\p{Prepended_Concatenation_Mark=:\Ayes\z:}', "");;
-    Expect(1, 69837, '\p{Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(0, 69837, '\p{^Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(0, 69837, '\P{Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(1, 69837, '\P{^Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(0, 69838, '\p{Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(1, 69838, '\p{^Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(1, 69838, '\P{Prepended_Concatenation_Mark=-	yes}', "");
-    Expect(0, 69838, '\P{^Prepended_Concatenation_Mark=-	yes}', "");
-    Error('\p{PCM=_	Y:=}');
-    Error('\P{PCM=_	Y:=}');
+    Expect(1, 69837, '\p{Prepended_Concatenation_Mark= yes}', "");
+    Expect(0, 69837, '\p{^Prepended_Concatenation_Mark= yes}', "");
+    Expect(0, 69837, '\P{Prepended_Concatenation_Mark= yes}', "");
+    Expect(1, 69837, '\P{^Prepended_Concatenation_Mark= yes}', "");
+    Expect(0, 69838, '\p{Prepended_Concatenation_Mark= yes}', "");
+    Expect(1, 69838, '\p{^Prepended_Concatenation_Mark= yes}', "");
+    Expect(1, 69838, '\P{Prepended_Concatenation_Mark= yes}', "");
+    Expect(0, 69838, '\P{^Prepended_Concatenation_Mark= yes}', "");
+    Error('\p{PCM=_	y:=}');
+    Error('\P{PCM=_	y:=}');
     Expect(1, 69837, '\p{PCM=:\AY\z:}', "");;
     Expect(0, 69838, '\p{PCM=:\AY\z:}', "");;
     Expect(1, 69837, '\p{PCM=y}', "");
@@ -86431,16 +87029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(0, 69838, '\P{^PCM=y}', "");
     Expect(1, 69837, '\p{PCM=:\Ay\z:}', "");;
     Expect(0, 69838, '\p{PCM=:\Ay\z:}', "");;
-    Expect(1, 69837, '\p{PCM= Y}', "");
-    Expect(0, 69837, '\p{^PCM= Y}', "");
-    Expect(0, 69837, '\P{PCM= Y}', "");
-    Expect(1, 69837, '\P{^PCM= Y}', "");
-    Expect(0, 69838, '\p{PCM= Y}', "");
-    Expect(1, 69838, '\p{^PCM= Y}', "");
-    Expect(1, 69838, '\P{PCM= Y}', "");
-    Expect(0, 69838, '\P{^PCM= Y}', "");
-    Error('\p{Is_Prepended_Concatenation_Mark=_ t/a/}');
-    Error('\P{Is_Prepended_Concatenation_Mark=_ t/a/}');
+    Expect(1, 69837, '\p{PCM=-y}', "");
+    Expect(0, 69837, '\p{^PCM=-y}', "");
+    Expect(0, 69837, '\P{PCM=-y}', "");
+    Expect(1, 69837, '\P{^PCM=-y}', "");
+    Expect(0, 69838, '\p{PCM=-y}', "");
+    Expect(1, 69838, '\p{^PCM=-y}', "");
+    Expect(1, 69838, '\P{PCM=-y}', "");
+    Expect(0, 69838, '\P{^PCM=-y}', "");
+    Error('\p{Is_Prepended_Concatenation_Mark=_:=T}');
+    Error('\P{Is_Prepended_Concatenation_Mark=_:=T}');
     Expect(1, 69837, '\p{Is_Prepended_Concatenation_Mark=t}', "");
     Expect(0, 69837, '\p{^Is_Prepended_Concatenation_Mark=t}', "");
     Expect(0, 69837, '\P{Is_Prepended_Concatenation_Mark=t}', "");
@@ -86449,16 +87047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^Is_Prepended_Concatenation_Mark=t}', "");
     Expect(1, 69838, '\P{Is_Prepended_Concatenation_Mark=t}', "");
     Expect(0, 69838, '\P{^Is_Prepended_Concatenation_Mark=t}', "");
-    Expect(1, 69837, '\p{Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(0, 69837, '\p{^Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(0, 69837, '\P{Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(1, 69837, '\P{^Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(0, 69838, '\p{Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(1, 69838, '\p{^Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(1, 69838, '\P{Is_Prepended_Concatenation_Mark:_ t}', "");
-    Expect(0, 69838, '\P{^Is_Prepended_Concatenation_Mark:_ t}', "");
-    Error('\p{Is_PCM=_ True/a/}');
-    Error('\P{Is_PCM=_ True/a/}');
+    Expect(1, 69837, '\p{Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(0, 69837, '\p{^Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(0, 69837, '\P{Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(1, 69837, '\P{^Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(0, 69838, '\p{Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(1, 69838, '\p{^Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(1, 69838, '\P{Is_Prepended_Concatenation_Mark=	 T}', "");
+    Expect(0, 69838, '\P{^Is_Prepended_Concatenation_Mark=	 T}', "");
+    Error('\p{Is_PCM=:=TRUE}');
+    Error('\P{Is_PCM=:=TRUE}');
     Expect(1, 69837, '\p{Is_PCM=true}', "");
     Expect(0, 69837, '\p{^Is_PCM=true}', "");
     Expect(0, 69837, '\P{Is_PCM=true}', "");
@@ -86467,18 +87065,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^Is_PCM=true}', "");
     Expect(1, 69838, '\P{Is_PCM=true}', "");
     Expect(0, 69838, '\P{^Is_PCM=true}', "");
-    Expect(1, 69837, '\p{Is_PCM:	 True}', "");
-    Expect(0, 69837, '\p{^Is_PCM:	 True}', "");
-    Expect(0, 69837, '\P{Is_PCM:	 True}', "");
-    Expect(1, 69837, '\P{^Is_PCM:	 True}', "");
-    Expect(0, 69838, '\p{Is_PCM:	 True}', "");
-    Expect(1, 69838, '\p{^Is_PCM:	 True}', "");
-    Expect(1, 69838, '\P{Is_PCM:	 True}', "");
-    Expect(0, 69838, '\P{^Is_PCM:	 True}', "");
+    Expect(1, 69837, '\p{Is_PCM=-	true}', "");
+    Expect(0, 69837, '\p{^Is_PCM=-	true}', "");
+    Expect(0, 69837, '\P{Is_PCM=-	true}', "");
+    Expect(1, 69837, '\P{^Is_PCM=-	true}', "");
+    Expect(0, 69838, '\p{Is_PCM=-	true}', "");
+    Expect(1, 69838, '\p{^Is_PCM=-	true}', "");
+    Expect(1, 69838, '\P{Is_PCM=-	true}', "");
+    Expect(0, 69838, '\P{^Is_PCM=-	true}', "");
     Error('\p{perl}');
     Error('\P{perl}');
-    Error('\p{ :=ADLAM}');
-    Error('\P{ :=ADLAM}');
+    Error('\p{  Adlam/a/}');
+    Error('\P{  Adlam/a/}');
     Expect(1, 125279, '\p{adlam}', "");
     Expect(0, 125279, '\p{^adlam}', "");
     Expect(0, 125279, '\P{adlam}', "");
@@ -86487,16 +87085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^adlam}', "");
     Expect(1, 125280, '\P{adlam}', "");
     Expect(0, 125280, '\P{^adlam}', "");
-    Expect(1, 125279, '\p{_	adlam}', "");
-    Expect(0, 125279, '\p{^_	adlam}', "");
-    Expect(0, 125279, '\P{_	adlam}', "");
-    Expect(1, 125279, '\P{^_	adlam}', "");
-    Expect(0, 125280, '\p{_	adlam}', "");
-    Expect(1, 125280, '\p{^_	adlam}', "");
-    Expect(1, 125280, '\P{_	adlam}', "");
-    Expect(0, 125280, '\P{^_	adlam}', "");
-    Error('\p{:=Is_Adlam}');
-    Error('\P{:=Is_Adlam}');
+    Expect(1, 125279, '\p{	-ADLAM}', "");
+    Expect(0, 125279, '\p{^	-ADLAM}', "");
+    Expect(0, 125279, '\P{	-ADLAM}', "");
+    Expect(1, 125279, '\P{^	-ADLAM}', "");
+    Expect(0, 125280, '\p{	-ADLAM}', "");
+    Expect(1, 125280, '\p{^	-ADLAM}', "");
+    Expect(1, 125280, '\P{	-ADLAM}', "");
+    Expect(0, 125280, '\P{^	-ADLAM}', "");
+    Error('\p{_Is_ADLAM/a/}');
+    Error('\P{_Is_ADLAM/a/}');
     Expect(1, 125279, '\p{isadlam}', "");
     Expect(0, 125279, '\p{^isadlam}', "");
     Expect(0, 125279, '\P{isadlam}', "");
@@ -86513,8 +87111,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^_	is_Adlam}', "");
     Expect(1, 125280, '\P{_	is_Adlam}', "");
     Expect(0, 125280, '\P{^_	is_Adlam}', "");
-    Error('\p{_	ADLM/a/}');
-    Error('\P{_	ADLM/a/}');
+    Error('\p{_/a/Adlm}');
+    Error('\P{_/a/Adlm}');
     Expect(1, 125279, '\p{adlm}', "");
     Expect(0, 125279, '\p{^adlm}', "");
     Expect(0, 125279, '\P{adlm}', "");
@@ -86523,16 +87121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^adlm}', "");
     Expect(1, 125280, '\P{adlm}', "");
     Expect(0, 125280, '\P{^adlm}', "");
-    Expect(1, 125279, '\p{_ Adlm}', "");
-    Expect(0, 125279, '\p{^_ Adlm}', "");
-    Expect(0, 125279, '\P{_ Adlm}', "");
-    Expect(1, 125279, '\P{^_ Adlm}', "");
-    Expect(0, 125280, '\p{_ Adlm}', "");
-    Expect(1, 125280, '\p{^_ Adlm}', "");
-    Expect(1, 125280, '\P{_ Adlm}', "");
-    Expect(0, 125280, '\P{^_ Adlm}', "");
-    Error('\p{:=- IS_adlm}');
-    Error('\P{:=- IS_adlm}');
+    Expect(1, 125279, '\p{-	ADLM}', "");
+    Expect(0, 125279, '\p{^-	ADLM}', "");
+    Expect(0, 125279, '\P{-	ADLM}', "");
+    Expect(1, 125279, '\P{^-	ADLM}', "");
+    Expect(0, 125280, '\p{-	ADLM}', "");
+    Expect(1, 125280, '\p{^-	ADLM}', "");
+    Expect(1, 125280, '\P{-	ADLM}', "");
+    Expect(0, 125280, '\P{^-	ADLM}', "");
+    Error('\p{-_IS_adlm/a/}');
+    Error('\P{-_IS_adlm/a/}');
     Expect(1, 125279, '\p{isadlm}', "");
     Expect(0, 125279, '\p{^isadlm}', "");
     Expect(0, 125279, '\P{isadlm}', "");
@@ -86541,16 +87139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^isadlm}', "");
     Expect(1, 125280, '\P{isadlm}', "");
     Expect(0, 125280, '\P{^isadlm}', "");
-    Expect(1, 125279, '\p{	-IS_ADLM}', "");
-    Expect(0, 125279, '\p{^	-IS_ADLM}', "");
-    Expect(0, 125279, '\P{	-IS_ADLM}', "");
-    Expect(1, 125279, '\P{^	-IS_ADLM}', "");
-    Expect(0, 125280, '\p{	-IS_ADLM}', "");
-    Expect(1, 125280, '\p{^	-IS_ADLM}', "");
-    Expect(1, 125280, '\P{	-IS_ADLM}', "");
-    Expect(0, 125280, '\P{^	-IS_ADLM}', "");
-    Error('\p{:=aegean_NUMBERS}');
-    Error('\P{:=aegean_NUMBERS}');
+    Expect(1, 125279, '\p{	 is_adlm}', "");
+    Expect(0, 125279, '\p{^	 is_adlm}', "");
+    Expect(0, 125279, '\P{	 is_adlm}', "");
+    Expect(1, 125279, '\P{^	 is_adlm}', "");
+    Expect(0, 125280, '\p{	 is_adlm}', "");
+    Expect(1, 125280, '\p{^	 is_adlm}', "");
+    Expect(1, 125280, '\P{	 is_adlm}', "");
+    Expect(0, 125280, '\P{^	 is_adlm}', "");
+    Error('\p{	Aegean_Numbers/a/}');
+    Error('\P{	Aegean_Numbers/a/}');
     Expect(1, 65855, '\p{aegeannumbers}', "");
     Expect(0, 65855, '\p{^aegeannumbers}', "");
     Expect(0, 65855, '\P{aegeannumbers}', "");
@@ -86559,16 +87157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^aegeannumbers}', "");
     Expect(1, 65856, '\P{aegeannumbers}', "");
     Expect(0, 65856, '\P{^aegeannumbers}', "");
-    Expect(1, 65855, '\p{Aegean_NUMBERS}', "");
-    Expect(0, 65855, '\p{^Aegean_NUMBERS}', "");
-    Expect(0, 65855, '\P{Aegean_NUMBERS}', "");
-    Expect(1, 65855, '\P{^Aegean_NUMBERS}', "");
-    Expect(0, 65856, '\p{Aegean_NUMBERS}', "");
-    Expect(1, 65856, '\p{^Aegean_NUMBERS}', "");
-    Expect(1, 65856, '\P{Aegean_NUMBERS}', "");
-    Expect(0, 65856, '\P{^Aegean_NUMBERS}', "");
-    Error('\p{_is_aegean_NUMBERS:=}');
-    Error('\P{_is_aegean_NUMBERS:=}');
+    Expect(1, 65855, '\p{--Aegean_NUMBERS}', "");
+    Expect(0, 65855, '\p{^--Aegean_NUMBERS}', "");
+    Expect(0, 65855, '\P{--Aegean_NUMBERS}', "");
+    Expect(1, 65855, '\P{^--Aegean_NUMBERS}', "");
+    Expect(0, 65856, '\p{--Aegean_NUMBERS}', "");
+    Expect(1, 65856, '\p{^--Aegean_NUMBERS}', "");
+    Expect(1, 65856, '\P{--Aegean_NUMBERS}', "");
+    Expect(0, 65856, '\P{^--Aegean_NUMBERS}', "");
+    Error('\p{_IS_Aegean_Numbers:=}');
+    Error('\P{_IS_Aegean_Numbers:=}');
     Expect(1, 65855, '\p{isaegeannumbers}', "");
     Expect(0, 65855, '\p{^isaegeannumbers}', "");
     Expect(0, 65855, '\P{isaegeannumbers}', "");
@@ -86577,16 +87175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^isaegeannumbers}', "");
     Expect(1, 65856, '\P{isaegeannumbers}', "");
     Expect(0, 65856, '\P{^isaegeannumbers}', "");
-    Expect(1, 65855, '\p{ 	Is_AEGEAN_numbers}', "");
-    Expect(0, 65855, '\p{^ 	Is_AEGEAN_numbers}', "");
-    Expect(0, 65855, '\P{ 	Is_AEGEAN_numbers}', "");
-    Expect(1, 65855, '\P{^ 	Is_AEGEAN_numbers}', "");
-    Expect(0, 65856, '\p{ 	Is_AEGEAN_numbers}', "");
-    Expect(1, 65856, '\p{^ 	Is_AEGEAN_numbers}', "");
-    Expect(1, 65856, '\P{ 	Is_AEGEAN_numbers}', "");
-    Expect(0, 65856, '\P{^ 	Is_AEGEAN_numbers}', "");
-    Error('\p{- In_Aegean_Numbers/a/}');
-    Error('\P{- In_Aegean_Numbers/a/}');
+    Expect(1, 65855, '\p{--Is_Aegean_Numbers}', "");
+    Expect(0, 65855, '\p{^--Is_Aegean_Numbers}', "");
+    Expect(0, 65855, '\P{--Is_Aegean_Numbers}', "");
+    Expect(1, 65855, '\P{^--Is_Aegean_Numbers}', "");
+    Expect(0, 65856, '\p{--Is_Aegean_Numbers}', "");
+    Expect(1, 65856, '\p{^--Is_Aegean_Numbers}', "");
+    Expect(1, 65856, '\P{--Is_Aegean_Numbers}', "");
+    Expect(0, 65856, '\P{^--Is_Aegean_Numbers}', "");
+    Error('\p{/a/--In_Aegean_numbers}');
+    Error('\P{/a/--In_Aegean_numbers}');
     Expect(1, 65855, '\p{inaegeannumbers}', "");
     Expect(0, 65855, '\p{^inaegeannumbers}', "");
     Expect(0, 65855, '\P{inaegeannumbers}', "");
@@ -86595,16 +87193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^inaegeannumbers}', "");
     Expect(1, 65856, '\P{inaegeannumbers}', "");
     Expect(0, 65856, '\P{^inaegeannumbers}', "");
-    Expect(1, 65855, '\p{-_IN_Aegean_numbers}', "");
-    Expect(0, 65855, '\p{^-_IN_Aegean_numbers}', "");
-    Expect(0, 65855, '\P{-_IN_Aegean_numbers}', "");
-    Expect(1, 65855, '\P{^-_IN_Aegean_numbers}', "");
-    Expect(0, 65856, '\p{-_IN_Aegean_numbers}', "");
-    Expect(1, 65856, '\p{^-_IN_Aegean_numbers}', "");
-    Expect(1, 65856, '\P{-_IN_Aegean_numbers}', "");
-    Expect(0, 65856, '\P{^-_IN_Aegean_numbers}', "");
-    Error('\p{-/a/Ahom}');
-    Error('\P{-/a/Ahom}');
+    Expect(1, 65855, '\p{_	in_Aegean_numbers}', "");
+    Expect(0, 65855, '\p{^_	in_Aegean_numbers}', "");
+    Expect(0, 65855, '\P{_	in_Aegean_numbers}', "");
+    Expect(1, 65855, '\P{^_	in_Aegean_numbers}', "");
+    Expect(0, 65856, '\p{_	in_Aegean_numbers}', "");
+    Expect(1, 65856, '\p{^_	in_Aegean_numbers}', "");
+    Expect(1, 65856, '\P{_	in_Aegean_numbers}', "");
+    Expect(0, 65856, '\P{^_	in_Aegean_numbers}', "");
+    Error('\p{/a/_-AHOM}');
+    Error('\P{/a/_-AHOM}');
     Expect(1, 71494, '\p{ahom}', "");
     Expect(0, 71494, '\p{^ahom}', "");
     Expect(0, 71494, '\P{ahom}', "");
@@ -86613,16 +87211,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71495, '\p{^ahom}', "");
     Expect(1, 71495, '\P{ahom}', "");
     Expect(0, 71495, '\P{^ahom}', "");
-    Expect(1, 71494, '\p{_ Ahom}', "");
-    Expect(0, 71494, '\p{^_ Ahom}', "");
-    Expect(0, 71494, '\P{_ Ahom}', "");
-    Expect(1, 71494, '\P{^_ Ahom}', "");
-    Expect(0, 71495, '\p{_ Ahom}', "");
-    Expect(1, 71495, '\p{^_ Ahom}', "");
-    Expect(1, 71495, '\P{_ Ahom}', "");
-    Expect(0, 71495, '\P{^_ Ahom}', "");
-    Error('\p{:= is_AHOM}');
-    Error('\P{:= is_AHOM}');
+    Expect(1, 71494, '\p{	 Ahom}', "");
+    Expect(0, 71494, '\p{^	 Ahom}', "");
+    Expect(0, 71494, '\P{	 Ahom}', "");
+    Expect(1, 71494, '\P{^	 Ahom}', "");
+    Expect(0, 71495, '\p{	 Ahom}', "");
+    Expect(1, 71495, '\p{^	 Ahom}', "");
+    Expect(1, 71495, '\P{	 Ahom}', "");
+    Expect(0, 71495, '\P{^	 Ahom}', "");
+    Error('\p{_:=Is_AHOM}');
+    Error('\P{_:=Is_AHOM}');
     Expect(1, 71494, '\p{isahom}', "");
     Expect(0, 71494, '\p{^isahom}', "");
     Expect(0, 71494, '\P{isahom}', "");
@@ -86631,16 +87229,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71495, '\p{^isahom}', "");
     Expect(1, 71495, '\P{isahom}', "");
     Expect(0, 71495, '\P{^isahom}', "");
-    Expect(1, 71494, '\p{--IS_Ahom}', "");
-    Expect(0, 71494, '\p{^--IS_Ahom}', "");
-    Expect(0, 71494, '\P{--IS_Ahom}', "");
-    Expect(1, 71494, '\P{^--IS_Ahom}', "");
-    Expect(0, 71495, '\p{--IS_Ahom}', "");
-    Expect(1, 71495, '\p{^--IS_Ahom}', "");
-    Expect(1, 71495, '\P{--IS_Ahom}', "");
-    Expect(0, 71495, '\P{^--IS_Ahom}', "");
-    Error('\p{-:=Alchemical_Symbols}');
-    Error('\P{-:=Alchemical_Symbols}');
+    Expect(1, 71494, '\p{_ Is_ahom}', "");
+    Expect(0, 71494, '\p{^_ Is_ahom}', "");
+    Expect(0, 71494, '\P{_ Is_ahom}', "");
+    Expect(1, 71494, '\P{^_ Is_ahom}', "");
+    Expect(0, 71495, '\p{_ Is_ahom}', "");
+    Expect(1, 71495, '\p{^_ Is_ahom}', "");
+    Expect(1, 71495, '\P{_ Is_ahom}', "");
+    Expect(0, 71495, '\P{^_ Is_ahom}', "");
+    Error('\p{:= 	Alchemical_Symbols}');
+    Error('\P{:= 	Alchemical_Symbols}');
     Expect(1, 128895, '\p{alchemicalsymbols}', "");
     Expect(0, 128895, '\p{^alchemicalsymbols}', "");
     Expect(0, 128895, '\P{alchemicalsymbols}', "");
@@ -86649,16 +87247,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128896, '\p{^alchemicalsymbols}', "");
     Expect(1, 128896, '\P{alchemicalsymbols}', "");
     Expect(0, 128896, '\P{^alchemicalsymbols}', "");
-    Expect(1, 128895, '\p{ -alchemical_Symbols}', "");
-    Expect(0, 128895, '\p{^ -alchemical_Symbols}', "");
-    Expect(0, 128895, '\P{ -alchemical_Symbols}', "");
-    Expect(1, 128895, '\P{^ -alchemical_Symbols}', "");
-    Expect(0, 128896, '\p{ -alchemical_Symbols}', "");
-    Expect(1, 128896, '\p{^ -alchemical_Symbols}', "");
-    Expect(1, 128896, '\P{ -alchemical_Symbols}', "");
-    Expect(0, 128896, '\P{^ -alchemical_Symbols}', "");
-    Error('\p{:=	is_Alchemical_Symbols}');
-    Error('\P{:=	is_Alchemical_Symbols}');
+    Expect(1, 128895, '\p{__ALCHEMICAL_Symbols}', "");
+    Expect(0, 128895, '\p{^__ALCHEMICAL_Symbols}', "");
+    Expect(0, 128895, '\P{__ALCHEMICAL_Symbols}', "");
+    Expect(1, 128895, '\P{^__ALCHEMICAL_Symbols}', "");
+    Expect(0, 128896, '\p{__ALCHEMICAL_Symbols}', "");
+    Expect(1, 128896, '\p{^__ALCHEMICAL_Symbols}', "");
+    Expect(1, 128896, '\P{__ALCHEMICAL_Symbols}', "");
+    Expect(0, 128896, '\P{^__ALCHEMICAL_Symbols}', "");
+    Error('\p{ /a/IS_Alchemical_SYMBOLS}');
+    Error('\P{ /a/IS_Alchemical_SYMBOLS}');
     Expect(1, 128895, '\p{isalchemicalsymbols}', "");
     Expect(0, 128895, '\p{^isalchemicalsymbols}', "");
     Expect(0, 128895, '\P{isalchemicalsymbols}', "");
@@ -86667,16 +87265,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128896, '\p{^isalchemicalsymbols}', "");
     Expect(1, 128896, '\P{isalchemicalsymbols}', "");
     Expect(0, 128896, '\P{^isalchemicalsymbols}', "");
-    Expect(1, 128895, '\p{-	IS_alchemical_Symbols}', "");
-    Expect(0, 128895, '\p{^-	IS_alchemical_Symbols}', "");
-    Expect(0, 128895, '\P{-	IS_alchemical_Symbols}', "");
-    Expect(1, 128895, '\P{^-	IS_alchemical_Symbols}', "");
-    Expect(0, 128896, '\p{-	IS_alchemical_Symbols}', "");
-    Expect(1, 128896, '\p{^-	IS_alchemical_Symbols}', "");
-    Expect(1, 128896, '\P{-	IS_alchemical_Symbols}', "");
-    Expect(0, 128896, '\P{^-	IS_alchemical_Symbols}', "");
-    Error('\p{:= -In_ALCHEMICAL_symbols}');
-    Error('\P{:= -In_ALCHEMICAL_symbols}');
+    Expect(1, 128895, '\p{_ Is_Alchemical_Symbols}', "");
+    Expect(0, 128895, '\p{^_ Is_Alchemical_Symbols}', "");
+    Expect(0, 128895, '\P{_ Is_Alchemical_Symbols}', "");
+    Expect(1, 128895, '\P{^_ Is_Alchemical_Symbols}', "");
+    Expect(0, 128896, '\p{_ Is_Alchemical_Symbols}', "");
+    Expect(1, 128896, '\p{^_ Is_Alchemical_Symbols}', "");
+    Expect(1, 128896, '\P{_ Is_Alchemical_Symbols}', "");
+    Expect(0, 128896, '\P{^_ Is_Alchemical_Symbols}', "");
+    Error('\p{	:=IN_Alchemical_Symbols}');
+    Error('\P{	:=IN_Alchemical_Symbols}');
     Expect(1, 128895, '\p{inalchemicalsymbols}', "");
     Expect(0, 128895, '\p{^inalchemicalsymbols}', "");
     Expect(0, 128895, '\P{inalchemicalsymbols}', "");
@@ -86685,16 +87283,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128896, '\p{^inalchemicalsymbols}', "");
     Expect(1, 128896, '\P{inalchemicalsymbols}', "");
     Expect(0, 128896, '\P{^inalchemicalsymbols}', "");
-    Expect(1, 128895, '\p{	In_alchemical_Symbols}', "");
-    Expect(0, 128895, '\p{^	In_alchemical_Symbols}', "");
-    Expect(0, 128895, '\P{	In_alchemical_Symbols}', "");
-    Expect(1, 128895, '\P{^	In_alchemical_Symbols}', "");
-    Expect(0, 128896, '\p{	In_alchemical_Symbols}', "");
-    Expect(1, 128896, '\p{^	In_alchemical_Symbols}', "");
-    Expect(1, 128896, '\P{	In_alchemical_Symbols}', "");
-    Expect(0, 128896, '\P{^	In_alchemical_Symbols}', "");
-    Error('\p{-:=Alchemical}');
-    Error('\P{-:=Alchemical}');
+    Expect(1, 128895, '\p{ in_ALCHEMICAL_Symbols}', "");
+    Expect(0, 128895, '\p{^ in_ALCHEMICAL_Symbols}', "");
+    Expect(0, 128895, '\P{ in_ALCHEMICAL_Symbols}', "");
+    Expect(1, 128895, '\P{^ in_ALCHEMICAL_Symbols}', "");
+    Expect(0, 128896, '\p{ in_ALCHEMICAL_Symbols}', "");
+    Expect(1, 128896, '\p{^ in_ALCHEMICAL_Symbols}', "");
+    Expect(1, 128896, '\P{ in_ALCHEMICAL_Symbols}', "");
+    Expect(0, 128896, '\P{^ in_ALCHEMICAL_Symbols}', "");
+    Error('\p{:=alchemical}');
+    Error('\P{:=alchemical}');
     Expect(1, 128895, '\p{alchemical}', "");
     Expect(0, 128895, '\p{^alchemical}', "");
     Expect(0, 128895, '\P{alchemical}', "");
@@ -86703,16 +87301,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128896, '\p{^alchemical}', "");
     Expect(1, 128896, '\P{alchemical}', "");
     Expect(0, 128896, '\P{^alchemical}', "");
-    Expect(1, 128895, '\p{	 ALCHEMICAL}', "");
-    Expect(0, 128895, '\p{^	 ALCHEMICAL}', "");
-    Expect(0, 128895, '\P{	 ALCHEMICAL}', "");
-    Expect(1, 128895, '\P{^	 ALCHEMICAL}', "");
-    Expect(0, 128896, '\p{	 ALCHEMICAL}', "");
-    Expect(1, 128896, '\p{^	 ALCHEMICAL}', "");
-    Expect(1, 128896, '\P{	 ALCHEMICAL}', "");
-    Expect(0, 128896, '\P{^	 ALCHEMICAL}', "");
-    Error('\p{-_Is_ALCHEMICAL/a/}');
-    Error('\P{-_Is_ALCHEMICAL/a/}');
+    Expect(1, 128895, '\p{_Alchemical}', "");
+    Expect(0, 128895, '\p{^_Alchemical}', "");
+    Expect(0, 128895, '\P{_Alchemical}', "");
+    Expect(1, 128895, '\P{^_Alchemical}', "");
+    Expect(0, 128896, '\p{_Alchemical}', "");
+    Expect(1, 128896, '\p{^_Alchemical}', "");
+    Expect(1, 128896, '\P{_Alchemical}', "");
+    Expect(0, 128896, '\P{^_Alchemical}', "");
+    Error('\p{:=-IS_Alchemical}');
+    Error('\P{:=-IS_Alchemical}');
     Expect(1, 128895, '\p{isalchemical}', "");
     Expect(0, 128895, '\p{^isalchemical}', "");
     Expect(0, 128895, '\P{isalchemical}', "");
@@ -86721,16 +87319,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128896, '\p{^isalchemical}', "");
     Expect(1, 128896, '\P{isalchemical}', "");
     Expect(0, 128896, '\P{^isalchemical}', "");
-    Expect(1, 128895, '\p{_-IS_ALCHEMICAL}', "");
-    Expect(0, 128895, '\p{^_-IS_ALCHEMICAL}', "");
-    Expect(0, 128895, '\P{_-IS_ALCHEMICAL}', "");
-    Expect(1, 128895, '\P{^_-IS_ALCHEMICAL}', "");
-    Expect(0, 128896, '\p{_-IS_ALCHEMICAL}', "");
-    Expect(1, 128896, '\p{^_-IS_ALCHEMICAL}', "");
-    Expect(1, 128896, '\P{_-IS_ALCHEMICAL}', "");
-    Expect(0, 128896, '\P{^_-IS_ALCHEMICAL}', "");
-    Error('\p{ IN_alchemical:=}');
-    Error('\P{ IN_alchemical:=}');
+    Expect(1, 128895, '\p{-Is_Alchemical}', "");
+    Expect(0, 128895, '\p{^-Is_Alchemical}', "");
+    Expect(0, 128895, '\P{-Is_Alchemical}', "");
+    Expect(1, 128895, '\P{^-Is_Alchemical}', "");
+    Expect(0, 128896, '\p{-Is_Alchemical}', "");
+    Expect(1, 128896, '\p{^-Is_Alchemical}', "");
+    Expect(1, 128896, '\P{-Is_Alchemical}', "");
+    Expect(0, 128896, '\P{^-Is_Alchemical}', "");
+    Error('\p{:=		IN_alchemical}');
+    Error('\P{:=		IN_alchemical}');
     Expect(1, 128895, '\p{inalchemical}', "");
     Expect(0, 128895, '\p{^inalchemical}', "");
     Expect(0, 128895, '\P{inalchemical}', "");
@@ -86739,108 +87337,108 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128896, '\p{^inalchemical}', "");
     Expect(1, 128896, '\P{inalchemical}', "");
     Expect(0, 128896, '\P{^inalchemical}', "");
-    Expect(1, 128895, '\p{-in_ALCHEMICAL}', "");
-    Expect(0, 128895, '\p{^-in_ALCHEMICAL}', "");
-    Expect(0, 128895, '\P{-in_ALCHEMICAL}', "");
-    Expect(1, 128895, '\P{^-in_ALCHEMICAL}', "");
-    Expect(0, 128896, '\p{-in_ALCHEMICAL}', "");
-    Expect(1, 128896, '\p{^-in_ALCHEMICAL}', "");
-    Expect(1, 128896, '\P{-in_ALCHEMICAL}', "");
-    Expect(0, 128896, '\P{^-in_ALCHEMICAL}', "");
-    Error('\p{ All:=}');
-    Error('\P{ All:=}');
+    Expect(1, 128895, '\p{	_in_Alchemical}', "");
+    Expect(0, 128895, '\p{^	_in_Alchemical}', "");
+    Expect(0, 128895, '\P{	_in_Alchemical}', "");
+    Expect(1, 128895, '\P{^	_in_Alchemical}', "");
+    Expect(0, 128896, '\p{	_in_Alchemical}', "");
+    Expect(1, 128896, '\p{^	_in_Alchemical}', "");
+    Expect(1, 128896, '\P{	_in_Alchemical}', "");
+    Expect(0, 128896, '\P{^	_in_Alchemical}', "");
+    Error('\p{:=_-all}');
+    Error('\P{:=_-all}');
     Expect(1, 1, '\p{all}', "");
     Expect(0, 1, '\p{^all}', "");
     Expect(0, 1, '\P{all}', "");
     Expect(1, 1, '\P{^all}', "");
-    Expect(1, 1, '\p{-	all}', "");
-    Expect(0, 1, '\p{^-	all}', "");
-    Expect(0, 1, '\P{-	all}', "");
-    Expect(1, 1, '\P{^-	all}', "");
-    Error('\p{_	IS_ALL/a/}');
-    Error('\P{_	IS_ALL/a/}');
+    Expect(1, 1, '\p{  all}', "");
+    Expect(0, 1, '\p{^  all}', "");
+    Expect(0, 1, '\P{  all}', "");
+    Expect(1, 1, '\P{^  all}', "");
+    Error('\p{ _IS_all:=}');
+    Error('\P{ _IS_all:=}');
     Expect(1, 1, '\p{isall}', "");
     Expect(0, 1, '\p{^isall}', "");
     Expect(0, 1, '\P{isall}', "");
     Expect(1, 1, '\P{^isall}', "");
-    Expect(1, 1, '\p{_	IS_All}', "");
-    Expect(0, 1, '\p{^_	IS_All}', "");
-    Expect(0, 1, '\P{_	IS_All}', "");
-    Expect(1, 1, '\P{^_	IS_All}', "");
-    Error('\p{ /a/xposixalnum}');
-    Error('\P{ /a/xposixalnum}');
-    Expect(1, 201546, '\p{xposixalnum}', "");
-    Expect(0, 201546, '\p{^xposixalnum}', "");
-    Expect(0, 201546, '\P{xposixalnum}', "");
-    Expect(1, 201546, '\P{^xposixalnum}', "");
-    Expect(0, 201547, '\p{xposixalnum}', "");
-    Expect(1, 201547, '\p{^xposixalnum}', "");
-    Expect(1, 201547, '\P{xposixalnum}', "");
-    Expect(0, 201547, '\P{^xposixalnum}', "");
-    Expect(1, 201546, '\p{__xposixalnum}', "");
-    Expect(0, 201546, '\p{^__xposixalnum}', "");
-    Expect(0, 201546, '\P{__xposixalnum}', "");
-    Expect(1, 201546, '\P{^__xposixalnum}', "");
-    Expect(0, 201547, '\p{__xposixalnum}', "");
-    Expect(1, 201547, '\p{^__xposixalnum}', "");
-    Expect(1, 201547, '\P{__xposixalnum}', "");
-    Expect(0, 201547, '\P{^__xposixalnum}', "");
-    Error('\p{-:=ALNUM}');
-    Error('\P{-:=ALNUM}');
-    Expect(1, 201546, '\p{alnum}', "");
-    Expect(0, 201546, '\p{^alnum}', "");
-    Expect(0, 201546, '\P{alnum}', "");
-    Expect(1, 201546, '\P{^alnum}', "");
-    Expect(0, 201547, '\p{alnum}', "");
-    Expect(1, 201547, '\p{^alnum}', "");
-    Expect(1, 201547, '\P{alnum}', "");
-    Expect(0, 201547, '\P{^alnum}', "");
-    Expect(1, 201546, '\p{	-ALNUM}', "");
-    Expect(0, 201546, '\p{^	-ALNUM}', "");
-    Expect(0, 201546, '\P{	-ALNUM}', "");
-    Expect(1, 201546, '\P{^	-ALNUM}', "");
-    Expect(0, 201547, '\p{	-ALNUM}', "");
-    Expect(1, 201547, '\p{^	-ALNUM}', "");
-    Expect(1, 201547, '\P{	-ALNUM}', "");
-    Expect(0, 201547, '\P{^	-ALNUM}', "");
-    Error('\p{/a/Is_XPosixAlnum}');
-    Error('\P{/a/Is_XPosixAlnum}');
-    Expect(1, 201546, '\p{isxposixalnum}', "");
-    Expect(0, 201546, '\p{^isxposixalnum}', "");
-    Expect(0, 201546, '\P{isxposixalnum}', "");
-    Expect(1, 201546, '\P{^isxposixalnum}', "");
-    Expect(0, 201547, '\p{isxposixalnum}', "");
-    Expect(1, 201547, '\p{^isxposixalnum}', "");
-    Expect(1, 201547, '\P{isxposixalnum}', "");
-    Expect(0, 201547, '\P{^isxposixalnum}', "");
-    Expect(1, 201546, '\p{- Is_XPosixAlnum}', "");
-    Expect(0, 201546, '\p{^- Is_XPosixAlnum}', "");
-    Expect(0, 201546, '\P{- Is_XPosixAlnum}', "");
-    Expect(1, 201546, '\P{^- Is_XPosixAlnum}', "");
-    Expect(0, 201547, '\p{- Is_XPosixAlnum}', "");
-    Expect(1, 201547, '\p{^- Is_XPosixAlnum}', "");
-    Expect(1, 201547, '\P{- Is_XPosixAlnum}', "");
-    Expect(0, 201547, '\P{^- Is_XPosixAlnum}', "");
-    Error('\p{:=-is_Alnum}');
-    Error('\P{:=-is_Alnum}');
-    Expect(1, 201546, '\p{isalnum}', "");
-    Expect(0, 201546, '\p{^isalnum}', "");
-    Expect(0, 201546, '\P{isalnum}', "");
-    Expect(1, 201546, '\P{^isalnum}', "");
-    Expect(0, 201547, '\p{isalnum}', "");
-    Expect(1, 201547, '\p{^isalnum}', "");
-    Expect(1, 201547, '\P{isalnum}', "");
-    Expect(0, 201547, '\P{^isalnum}', "");
-    Expect(1, 201546, '\p{- Is_ALNUM}', "");
-    Expect(0, 201546, '\p{^- Is_ALNUM}', "");
-    Expect(0, 201546, '\P{- Is_ALNUM}', "");
-    Expect(1, 201546, '\P{^- Is_ALNUM}', "");
-    Expect(0, 201547, '\p{- Is_ALNUM}', "");
-    Expect(1, 201547, '\p{^- Is_ALNUM}', "");
-    Expect(1, 201547, '\P{- Is_ALNUM}', "");
-    Expect(0, 201547, '\P{^- Is_ALNUM}', "");
-    Error('\p{ 	Alphabetic_Presentation_Forms:=}');
-    Error('\P{ 	Alphabetic_Presentation_Forms:=}');
+    Expect(1, 1, '\p{- IS_All}', "");
+    Expect(0, 1, '\p{^- IS_All}', "");
+    Expect(0, 1, '\P{- IS_All}', "");
+    Expect(1, 1, '\P{^- IS_All}', "");
+    Error('\p{/a/-_XPOSIXALNUM}');
+    Error('\P{/a/-_XPOSIXALNUM}');
+    Expect(1, 205743, '\p{xposixalnum}', "");
+    Expect(0, 205743, '\p{^xposixalnum}', "");
+    Expect(0, 205743, '\P{xposixalnum}', "");
+    Expect(1, 205743, '\P{^xposixalnum}', "");
+    Expect(0, 205744, '\p{xposixalnum}', "");
+    Expect(1, 205744, '\p{^xposixalnum}', "");
+    Expect(1, 205744, '\P{xposixalnum}', "");
+    Expect(0, 205744, '\P{^xposixalnum}', "");
+    Expect(1, 205743, '\p{	XPosixAlnum}', "");
+    Expect(0, 205743, '\p{^	XPosixAlnum}', "");
+    Expect(0, 205743, '\P{	XPosixAlnum}', "");
+    Expect(1, 205743, '\P{^	XPosixAlnum}', "");
+    Expect(0, 205744, '\p{	XPosixAlnum}', "");
+    Expect(1, 205744, '\p{^	XPosixAlnum}', "");
+    Expect(1, 205744, '\P{	XPosixAlnum}', "");
+    Expect(0, 205744, '\P{^	XPosixAlnum}', "");
+    Error('\p{:=	alnum}');
+    Error('\P{:=	alnum}');
+    Expect(1, 205743, '\p{alnum}', "");
+    Expect(0, 205743, '\p{^alnum}', "");
+    Expect(0, 205743, '\P{alnum}', "");
+    Expect(1, 205743, '\P{^alnum}', "");
+    Expect(0, 205744, '\p{alnum}', "");
+    Expect(1, 205744, '\p{^alnum}', "");
+    Expect(1, 205744, '\P{alnum}', "");
+    Expect(0, 205744, '\P{^alnum}', "");
+    Expect(1, 205743, '\p{_	ALNUM}', "");
+    Expect(0, 205743, '\p{^_	ALNUM}', "");
+    Expect(0, 205743, '\P{_	ALNUM}', "");
+    Expect(1, 205743, '\P{^_	ALNUM}', "");
+    Expect(0, 205744, '\p{_	ALNUM}', "");
+    Expect(1, 205744, '\p{^_	ALNUM}', "");
+    Expect(1, 205744, '\P{_	ALNUM}', "");
+    Expect(0, 205744, '\P{^_	ALNUM}', "");
+    Error('\p{ 	Is_xposixalnum:=}');
+    Error('\P{ 	Is_xposixalnum:=}');
+    Expect(1, 205743, '\p{isxposixalnum}', "");
+    Expect(0, 205743, '\p{^isxposixalnum}', "");
+    Expect(0, 205743, '\P{isxposixalnum}', "");
+    Expect(1, 205743, '\P{^isxposixalnum}', "");
+    Expect(0, 205744, '\p{isxposixalnum}', "");
+    Expect(1, 205744, '\p{^isxposixalnum}', "");
+    Expect(1, 205744, '\P{isxposixalnum}', "");
+    Expect(0, 205744, '\P{^isxposixalnum}', "");
+    Expect(1, 205743, '\p{-Is_XPosixAlnum}', "");
+    Expect(0, 205743, '\p{^-Is_XPosixAlnum}', "");
+    Expect(0, 205743, '\P{-Is_XPosixAlnum}', "");
+    Expect(1, 205743, '\P{^-Is_XPosixAlnum}', "");
+    Expect(0, 205744, '\p{-Is_XPosixAlnum}', "");
+    Expect(1, 205744, '\p{^-Is_XPosixAlnum}', "");
+    Expect(1, 205744, '\P{-Is_XPosixAlnum}', "");
+    Expect(0, 205744, '\P{^-Is_XPosixAlnum}', "");
+    Error('\p{ IS_Alnum/a/}');
+    Error('\P{ IS_Alnum/a/}');
+    Expect(1, 205743, '\p{isalnum}', "");
+    Expect(0, 205743, '\p{^isalnum}', "");
+    Expect(0, 205743, '\P{isalnum}', "");
+    Expect(1, 205743, '\P{^isalnum}', "");
+    Expect(0, 205744, '\p{isalnum}', "");
+    Expect(1, 205744, '\p{^isalnum}', "");
+    Expect(1, 205744, '\P{isalnum}', "");
+    Expect(0, 205744, '\P{^isalnum}', "");
+    Expect(1, 205743, '\p{-_Is_Alnum}', "");
+    Expect(0, 205743, '\p{^-_Is_Alnum}', "");
+    Expect(0, 205743, '\P{-_Is_Alnum}', "");
+    Expect(1, 205743, '\P{^-_Is_Alnum}', "");
+    Expect(0, 205744, '\p{-_Is_Alnum}', "");
+    Expect(1, 205744, '\p{^-_Is_Alnum}', "");
+    Expect(1, 205744, '\P{-_Is_Alnum}', "");
+    Expect(0, 205744, '\P{^-_Is_Alnum}', "");
+    Error('\p{ alphabetic_Presentation_forms/a/}');
+    Error('\P{ alphabetic_Presentation_forms/a/}');
     Expect(1, 64335, '\p{alphabeticpresentationforms}', "");
     Expect(0, 64335, '\p{^alphabeticpresentationforms}', "");
     Expect(0, 64335, '\P{alphabeticpresentationforms}', "");
@@ -86849,16 +87447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^alphabeticpresentationforms}', "");
     Expect(1, 64336, '\P{alphabeticpresentationforms}', "");
     Expect(0, 64336, '\P{^alphabeticpresentationforms}', "");
-    Expect(1, 64335, '\p{-_Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64335, '\p{^-_Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64335, '\P{-_Alphabetic_Presentation_Forms}', "");
-    Expect(1, 64335, '\P{^-_Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64336, '\p{-_Alphabetic_Presentation_Forms}', "");
-    Expect(1, 64336, '\p{^-_Alphabetic_Presentation_Forms}', "");
-    Expect(1, 64336, '\P{-_Alphabetic_Presentation_Forms}', "");
-    Expect(0, 64336, '\P{^-_Alphabetic_Presentation_Forms}', "");
-    Error('\p{ Is_Alphabetic_PRESENTATION_forms:=}');
-    Error('\P{ Is_Alphabetic_PRESENTATION_forms:=}');
+    Expect(1, 64335, '\p{	Alphabetic_Presentation_forms}', "");
+    Expect(0, 64335, '\p{^	Alphabetic_Presentation_forms}', "");
+    Expect(0, 64335, '\P{	Alphabetic_Presentation_forms}', "");
+    Expect(1, 64335, '\P{^	Alphabetic_Presentation_forms}', "");
+    Expect(0, 64336, '\p{	Alphabetic_Presentation_forms}', "");
+    Expect(1, 64336, '\p{^	Alphabetic_Presentation_forms}', "");
+    Expect(1, 64336, '\P{	Alphabetic_Presentation_forms}', "");
+    Expect(0, 64336, '\P{^	Alphabetic_Presentation_forms}', "");
+    Error('\p{-_IS_Alphabetic_Presentation_Forms:=}');
+    Error('\P{-_IS_Alphabetic_Presentation_Forms:=}');
     Expect(1, 64335, '\p{isalphabeticpresentationforms}', "");
     Expect(0, 64335, '\p{^isalphabeticpresentationforms}', "");
     Expect(0, 64335, '\P{isalphabeticpresentationforms}', "");
@@ -86867,16 +87465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^isalphabeticpresentationforms}', "");
     Expect(1, 64336, '\P{isalphabeticpresentationforms}', "");
     Expect(0, 64336, '\P{^isalphabeticpresentationforms}', "");
-    Expect(1, 64335, '\p{-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(0, 64335, '\p{^-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(0, 64335, '\P{-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(1, 64335, '\P{^-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(0, 64336, '\p{-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(1, 64336, '\p{^-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(1, 64336, '\P{-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Expect(0, 64336, '\P{^-_IS_ALPHABETIC_Presentation_Forms}', "");
-    Error('\p{/a/In_ALPHABETIC_presentation_forms}');
-    Error('\P{/a/In_ALPHABETIC_presentation_forms}');
+    Expect(1, 64335, '\p{	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(0, 64335, '\p{^	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(0, 64335, '\P{	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(1, 64335, '\P{^	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(0, 64336, '\p{	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(1, 64336, '\p{^	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(1, 64336, '\P{	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Expect(0, 64336, '\P{^	Is_Alphabetic_PRESENTATION_Forms}', "");
+    Error('\p{ :=In_ALPHABETIC_PRESENTATION_forms}');
+    Error('\P{ :=In_ALPHABETIC_PRESENTATION_forms}');
     Expect(1, 64335, '\p{inalphabeticpresentationforms}', "");
     Expect(0, 64335, '\p{^inalphabeticpresentationforms}', "");
     Expect(0, 64335, '\P{inalphabeticpresentationforms}', "");
@@ -86885,16 +87483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^inalphabeticpresentationforms}', "");
     Expect(1, 64336, '\P{inalphabeticpresentationforms}', "");
     Expect(0, 64336, '\P{^inalphabeticpresentationforms}', "");
-    Expect(1, 64335, '\p{-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(0, 64335, '\p{^-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(0, 64335, '\P{-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(1, 64335, '\P{^-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(0, 64336, '\p{-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(1, 64336, '\p{^-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(1, 64336, '\P{-	IN_alphabetic_presentation_FORMS}', "");
-    Expect(0, 64336, '\P{^-	IN_alphabetic_presentation_FORMS}', "");
-    Error('\p{:=alphabetic_pf}');
-    Error('\P{:=alphabetic_pf}');
+    Expect(1, 64335, '\p{ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(0, 64335, '\p{^ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(0, 64335, '\P{ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(1, 64335, '\P{^ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(0, 64336, '\p{ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(1, 64336, '\p{^ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(1, 64336, '\P{ 	IN_alphabetic_Presentation_FORMS}', "");
+    Expect(0, 64336, '\P{^ 	IN_alphabetic_Presentation_FORMS}', "");
+    Error('\p{/a/-Alphabetic_PF}');
+    Error('\P{/a/-Alphabetic_PF}');
     Expect(1, 64335, '\p{alphabeticpf}', "");
     Expect(0, 64335, '\p{^alphabeticpf}', "");
     Expect(0, 64335, '\P{alphabeticpf}', "");
@@ -86903,16 +87501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^alphabeticpf}', "");
     Expect(1, 64336, '\P{alphabeticpf}', "");
     Expect(0, 64336, '\P{^alphabeticpf}', "");
-    Expect(1, 64335, '\p{_-alphabetic_PF}', "");
-    Expect(0, 64335, '\p{^_-alphabetic_PF}', "");
-    Expect(0, 64335, '\P{_-alphabetic_PF}', "");
-    Expect(1, 64335, '\P{^_-alphabetic_PF}', "");
-    Expect(0, 64336, '\p{_-alphabetic_PF}', "");
-    Expect(1, 64336, '\p{^_-alphabetic_PF}', "");
-    Expect(1, 64336, '\P{_-alphabetic_PF}', "");
-    Expect(0, 64336, '\P{^_-alphabetic_PF}', "");
-    Error('\p{	IS_Alphabetic_PF:=}');
-    Error('\P{	IS_Alphabetic_PF:=}');
+    Expect(1, 64335, '\p{_	Alphabetic_PF}', "");
+    Expect(0, 64335, '\p{^_	Alphabetic_PF}', "");
+    Expect(0, 64335, '\P{_	Alphabetic_PF}', "");
+    Expect(1, 64335, '\P{^_	Alphabetic_PF}', "");
+    Expect(0, 64336, '\p{_	Alphabetic_PF}', "");
+    Expect(1, 64336, '\p{^_	Alphabetic_PF}', "");
+    Expect(1, 64336, '\P{_	Alphabetic_PF}', "");
+    Expect(0, 64336, '\P{^_	Alphabetic_PF}', "");
+    Error('\p{ _is_Alphabetic_PF:=}');
+    Error('\P{ _is_Alphabetic_PF:=}');
     Expect(1, 64335, '\p{isalphabeticpf}', "");
     Expect(0, 64335, '\p{^isalphabeticpf}', "");
     Expect(0, 64335, '\P{isalphabeticpf}', "");
@@ -86921,16 +87519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^isalphabeticpf}', "");
     Expect(1, 64336, '\P{isalphabeticpf}', "");
     Expect(0, 64336, '\P{^isalphabeticpf}', "");
-    Expect(1, 64335, '\p{_	Is_Alphabetic_PF}', "");
-    Expect(0, 64335, '\p{^_	Is_Alphabetic_PF}', "");
-    Expect(0, 64335, '\P{_	Is_Alphabetic_PF}', "");
-    Expect(1, 64335, '\P{^_	Is_Alphabetic_PF}', "");
-    Expect(0, 64336, '\p{_	Is_Alphabetic_PF}', "");
-    Expect(1, 64336, '\p{^_	Is_Alphabetic_PF}', "");
-    Expect(1, 64336, '\P{_	Is_Alphabetic_PF}', "");
-    Expect(0, 64336, '\P{^_	Is_Alphabetic_PF}', "");
-    Error('\p{-IN_Alphabetic_PF/a/}');
-    Error('\P{-IN_Alphabetic_PF/a/}');
+    Expect(1, 64335, '\p{_Is_Alphabetic_PF}', "");
+    Expect(0, 64335, '\p{^_Is_Alphabetic_PF}', "");
+    Expect(0, 64335, '\P{_Is_Alphabetic_PF}', "");
+    Expect(1, 64335, '\P{^_Is_Alphabetic_PF}', "");
+    Expect(0, 64336, '\p{_Is_Alphabetic_PF}', "");
+    Expect(1, 64336, '\p{^_Is_Alphabetic_PF}', "");
+    Expect(1, 64336, '\P{_Is_Alphabetic_PF}', "");
+    Expect(0, 64336, '\P{^_Is_Alphabetic_PF}', "");
+    Error('\p{_/a/in_Alphabetic_PF}');
+    Error('\P{_/a/in_Alphabetic_PF}');
     Expect(1, 64335, '\p{inalphabeticpf}', "");
     Expect(0, 64335, '\p{^inalphabeticpf}', "");
     Expect(0, 64335, '\P{inalphabeticpf}', "");
@@ -86939,16 +87537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^inalphabeticpf}', "");
     Expect(1, 64336, '\P{inalphabeticpf}', "");
     Expect(0, 64336, '\P{^inalphabeticpf}', "");
-    Expect(1, 64335, '\p{		In_Alphabetic_PF}', "");
-    Expect(0, 64335, '\p{^		In_Alphabetic_PF}', "");
-    Expect(0, 64335, '\P{		In_Alphabetic_PF}', "");
-    Expect(1, 64335, '\P{^		In_Alphabetic_PF}', "");
-    Expect(0, 64336, '\p{		In_Alphabetic_PF}', "");
-    Expect(1, 64336, '\p{^		In_Alphabetic_PF}', "");
-    Expect(1, 64336, '\P{		In_Alphabetic_PF}', "");
-    Expect(0, 64336, '\P{^		In_Alphabetic_PF}', "");
-    Error('\p{_:=Anatolian_Hieroglyphs}');
-    Error('\P{_:=Anatolian_Hieroglyphs}');
+    Expect(1, 64335, '\p{  IN_alphabetic_PF}', "");
+    Expect(0, 64335, '\p{^  IN_alphabetic_PF}', "");
+    Expect(0, 64335, '\P{  IN_alphabetic_PF}', "");
+    Expect(1, 64335, '\P{^  IN_alphabetic_PF}', "");
+    Expect(0, 64336, '\p{  IN_alphabetic_PF}', "");
+    Expect(1, 64336, '\p{^  IN_alphabetic_PF}', "");
+    Expect(1, 64336, '\P{  IN_alphabetic_PF}', "");
+    Expect(0, 64336, '\P{^  IN_alphabetic_PF}', "");
+    Error('\p{	:=ANATOLIAN_Hieroglyphs}');
+    Error('\P{	:=ANATOLIAN_Hieroglyphs}');
     Expect(1, 83526, '\p{anatolianhieroglyphs}', "");
     Expect(0, 83526, '\p{^anatolianhieroglyphs}', "");
     Expect(0, 83526, '\P{anatolianhieroglyphs}', "");
@@ -86957,16 +87555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 83527, '\p{^anatolianhieroglyphs}', "");
     Expect(1, 83527, '\P{anatolianhieroglyphs}', "");
     Expect(0, 83527, '\P{^anatolianhieroglyphs}', "");
-    Expect(1, 83526, '\p{  anatolian_hieroglyphs}', "");
-    Expect(0, 83526, '\p{^  anatolian_hieroglyphs}', "");
-    Expect(0, 83526, '\P{  anatolian_hieroglyphs}', "");
-    Expect(1, 83526, '\P{^  anatolian_hieroglyphs}', "");
-    Expect(0, 83527, '\p{  anatolian_hieroglyphs}', "");
-    Expect(1, 83527, '\p{^  anatolian_hieroglyphs}', "");
-    Expect(1, 83527, '\P{  anatolian_hieroglyphs}', "");
-    Expect(0, 83527, '\P{^  anatolian_hieroglyphs}', "");
-    Error('\p{-:=IS_anatolian_HIEROGLYPHS}');
-    Error('\P{-:=IS_anatolian_HIEROGLYPHS}');
+    Expect(1, 83526, '\p{	Anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\p{^	Anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\P{	Anatolian_Hieroglyphs}', "");
+    Expect(1, 83526, '\P{^	Anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\p{	Anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\p{^	Anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\P{	Anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\P{^	Anatolian_Hieroglyphs}', "");
+    Error('\p{:=		IS_ANATOLIAN_Hieroglyphs}');
+    Error('\P{:=		IS_ANATOLIAN_Hieroglyphs}');
     Expect(1, 83526, '\p{isanatolianhieroglyphs}', "");
     Expect(0, 83526, '\p{^isanatolianhieroglyphs}', "");
     Expect(0, 83526, '\P{isanatolianhieroglyphs}', "");
@@ -86975,16 +87573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 83527, '\p{^isanatolianhieroglyphs}', "");
     Expect(1, 83527, '\P{isanatolianhieroglyphs}', "");
     Expect(0, 83527, '\P{^isanatolianhieroglyphs}', "");
-    Expect(1, 83526, '\p{-is_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83526, '\p{^-is_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83526, '\P{-is_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83526, '\P{^-is_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83527, '\p{-is_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83527, '\p{^-is_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83527, '\P{-is_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83527, '\P{^-is_Anatolian_Hieroglyphs}', "");
-    Error('\p{_:=Hluw}');
-    Error('\P{_:=Hluw}');
+    Expect(1, 83526, '\p{-IS_anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\p{^-IS_anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\P{-IS_anatolian_Hieroglyphs}', "");
+    Expect(1, 83526, '\P{^-IS_anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\p{-IS_anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\p{^-IS_anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\P{-IS_anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\P{^-IS_anatolian_Hieroglyphs}', "");
+    Error('\p{- hluw:=}');
+    Error('\P{- hluw:=}');
     Expect(1, 83526, '\p{hluw}', "");
     Expect(0, 83526, '\p{^hluw}', "");
     Expect(0, 83526, '\P{hluw}', "");
@@ -86993,16 +87591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 83527, '\p{^hluw}', "");
     Expect(1, 83527, '\P{hluw}', "");
     Expect(0, 83527, '\P{^hluw}', "");
-    Expect(1, 83526, '\p{	 Hluw}', "");
-    Expect(0, 83526, '\p{^	 Hluw}', "");
-    Expect(0, 83526, '\P{	 Hluw}', "");
-    Expect(1, 83526, '\P{^	 Hluw}', "");
-    Expect(0, 83527, '\p{	 Hluw}', "");
-    Expect(1, 83527, '\p{^	 Hluw}', "");
-    Expect(1, 83527, '\P{	 Hluw}', "");
-    Expect(0, 83527, '\P{^	 Hluw}', "");
-    Error('\p{:=_-IS_Hluw}');
-    Error('\P{:=_-IS_Hluw}');
+    Expect(1, 83526, '\p{	_Hluw}', "");
+    Expect(0, 83526, '\p{^	_Hluw}', "");
+    Expect(0, 83526, '\P{	_Hluw}', "");
+    Expect(1, 83526, '\P{^	_Hluw}', "");
+    Expect(0, 83527, '\p{	_Hluw}', "");
+    Expect(1, 83527, '\p{^	_Hluw}', "");
+    Expect(1, 83527, '\P{	_Hluw}', "");
+    Expect(0, 83527, '\P{^	_Hluw}', "");
+    Error('\p{_:=Is_Hluw}');
+    Error('\P{_:=Is_Hluw}');
     Expect(1, 83526, '\p{ishluw}', "");
     Expect(0, 83526, '\p{^ishluw}', "");
     Expect(0, 83526, '\P{ishluw}', "");
@@ -87011,16 +87609,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 83527, '\p{^ishluw}', "");
     Expect(1, 83527, '\P{ishluw}', "");
     Expect(0, 83527, '\P{^ishluw}', "");
-    Expect(1, 83526, '\p{--Is_hluw}', "");
-    Expect(0, 83526, '\p{^--Is_hluw}', "");
-    Expect(0, 83526, '\P{--Is_hluw}', "");
-    Expect(1, 83526, '\P{^--Is_hluw}', "");
-    Expect(0, 83527, '\p{--Is_hluw}', "");
-    Expect(1, 83527, '\p{^--Is_hluw}', "");
-    Expect(1, 83527, '\P{--Is_hluw}', "");
-    Expect(0, 83527, '\P{^--Is_hluw}', "");
-    Error('\p{		Ancient_Greek_MUSICAL_NOTATION:=}');
-    Error('\P{		Ancient_Greek_MUSICAL_NOTATION:=}');
+    Expect(1, 83526, '\p{ -IS_HLUW}', "");
+    Expect(0, 83526, '\p{^ -IS_HLUW}', "");
+    Expect(0, 83526, '\P{ -IS_HLUW}', "");
+    Expect(1, 83526, '\P{^ -IS_HLUW}', "");
+    Expect(0, 83527, '\p{ -IS_HLUW}', "");
+    Expect(1, 83527, '\p{^ -IS_HLUW}', "");
+    Expect(1, 83527, '\P{ -IS_HLUW}', "");
+    Expect(0, 83527, '\P{^ -IS_HLUW}', "");
+    Error('\p{_/a/ancient_Greek_Musical_NOTATION}');
+    Error('\P{_/a/ancient_Greek_Musical_NOTATION}');
     Expect(1, 119375, '\p{ancientgreekmusicalnotation}', "");
     Expect(0, 119375, '\p{^ancientgreekmusicalnotation}', "");
     Expect(0, 119375, '\P{ancientgreekmusicalnotation}', "");
@@ -87029,16 +87627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119376, '\p{^ancientgreekmusicalnotation}', "");
     Expect(1, 119376, '\P{ancientgreekmusicalnotation}', "");
     Expect(0, 119376, '\P{^ancientgreekmusicalnotation}', "");
-    Expect(1, 119375, '\p{ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119375, '\p{^ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119375, '\P{ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(1, 119375, '\P{^ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119376, '\p{ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(1, 119376, '\p{^ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(1, 119376, '\P{ -Ancient_Greek_Musical_NOTATION}', "");
-    Expect(0, 119376, '\P{^ -Ancient_Greek_Musical_NOTATION}', "");
-    Error('\p{--is_ANCIENT_greek_Musical_Notation/a/}');
-    Error('\P{--is_ANCIENT_greek_Musical_Notation/a/}');
+    Expect(1, 119375, '\p{	 ancient_greek_Musical_Notation}', "");
+    Expect(0, 119375, '\p{^	 ancient_greek_Musical_Notation}', "");
+    Expect(0, 119375, '\P{	 ancient_greek_Musical_Notation}', "");
+    Expect(1, 119375, '\P{^	 ancient_greek_Musical_Notation}', "");
+    Expect(0, 119376, '\p{	 ancient_greek_Musical_Notation}', "");
+    Expect(1, 119376, '\p{^	 ancient_greek_Musical_Notation}', "");
+    Expect(1, 119376, '\P{	 ancient_greek_Musical_Notation}', "");
+    Expect(0, 119376, '\P{^	 ancient_greek_Musical_Notation}', "");
+    Error('\p{-IS_Ancient_GREEK_musical_Notation:=}');
+    Error('\P{-IS_Ancient_GREEK_musical_Notation:=}');
     Expect(1, 119375, '\p{isancientgreekmusicalnotation}', "");
     Expect(0, 119375, '\p{^isancientgreekmusicalnotation}', "");
     Expect(0, 119375, '\P{isancientgreekmusicalnotation}', "");
@@ -87047,16 +87645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119376, '\p{^isancientgreekmusicalnotation}', "");
     Expect(1, 119376, '\P{isancientgreekmusicalnotation}', "");
     Expect(0, 119376, '\P{^isancientgreekmusicalnotation}', "");
-    Expect(1, 119375, '\p{-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(0, 119375, '\p{^-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(0, 119375, '\P{-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(1, 119375, '\P{^-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(0, 119376, '\p{-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(1, 119376, '\p{^-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(1, 119376, '\P{-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Expect(0, 119376, '\P{^-is_Ancient_Greek_MUSICAL_Notation}', "");
-    Error('\p{--in_Ancient_Greek_Musical_Notation:=}');
-    Error('\P{--in_Ancient_Greek_Musical_Notation:=}');
+    Expect(1, 119375, '\p{ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(0, 119375, '\p{^ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(0, 119375, '\P{ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(1, 119375, '\P{^ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(0, 119376, '\p{ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(1, 119376, '\p{^ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(1, 119376, '\P{ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Expect(0, 119376, '\P{^ 	Is_ancient_GREEK_Musical_Notation}', "");
+    Error('\p{:= 	In_ancient_Greek_Musical_Notation}');
+    Error('\P{:= 	In_ancient_Greek_Musical_Notation}');
     Expect(1, 119375, '\p{inancientgreekmusicalnotation}', "");
     Expect(0, 119375, '\p{^inancientgreekmusicalnotation}', "");
     Expect(0, 119375, '\P{inancientgreekmusicalnotation}', "");
@@ -87065,16 +87663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119376, '\p{^inancientgreekmusicalnotation}', "");
     Expect(1, 119376, '\P{inancientgreekmusicalnotation}', "");
     Expect(0, 119376, '\P{^inancientgreekmusicalnotation}', "");
-    Expect(1, 119375, '\p{_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(0, 119375, '\p{^_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(0, 119375, '\P{_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(1, 119375, '\P{^_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(0, 119376, '\p{_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(1, 119376, '\p{^_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(1, 119376, '\P{_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Expect(0, 119376, '\P{^_In_Ancient_GREEK_Musical_NOTATION}', "");
-    Error('\p{_/a/Ancient_Greek_Music}');
-    Error('\P{_/a/Ancient_Greek_Music}');
+    Expect(1, 119375, '\p{--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(0, 119375, '\p{^--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(0, 119375, '\P{--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(1, 119375, '\P{^--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(0, 119376, '\p{--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(1, 119376, '\p{^--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(1, 119376, '\P{--IN_ANCIENT_greek_musical_Notation}', "");
+    Expect(0, 119376, '\P{^--IN_ANCIENT_greek_musical_Notation}', "");
+    Error('\p{	_Ancient_Greek_Music:=}');
+    Error('\P{	_Ancient_Greek_Music:=}');
     Expect(1, 119375, '\p{ancientgreekmusic}', "");
     Expect(0, 119375, '\p{^ancientgreekmusic}', "");
     Expect(0, 119375, '\P{ancientgreekmusic}', "");
@@ -87083,16 +87681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119376, '\p{^ancientgreekmusic}', "");
     Expect(1, 119376, '\P{ancientgreekmusic}', "");
     Expect(0, 119376, '\P{^ancientgreekmusic}', "");
-    Expect(1, 119375, '\p{		Ancient_greek_Music}', "");
-    Expect(0, 119375, '\p{^		Ancient_greek_Music}', "");
-    Expect(0, 119375, '\P{		Ancient_greek_Music}', "");
-    Expect(1, 119375, '\P{^		Ancient_greek_Music}', "");
-    Expect(0, 119376, '\p{		Ancient_greek_Music}', "");
-    Expect(1, 119376, '\p{^		Ancient_greek_Music}', "");
-    Expect(1, 119376, '\P{		Ancient_greek_Music}', "");
-    Expect(0, 119376, '\P{^		Ancient_greek_Music}', "");
-    Error('\p{_:=IS_ancient_GREEK_music}');
-    Error('\P{_:=IS_ancient_GREEK_music}');
+    Expect(1, 119375, '\p{	Ancient_greek_MUSIC}', "");
+    Expect(0, 119375, '\p{^	Ancient_greek_MUSIC}', "");
+    Expect(0, 119375, '\P{	Ancient_greek_MUSIC}', "");
+    Expect(1, 119375, '\P{^	Ancient_greek_MUSIC}', "");
+    Expect(0, 119376, '\p{	Ancient_greek_MUSIC}', "");
+    Expect(1, 119376, '\p{^	Ancient_greek_MUSIC}', "");
+    Expect(1, 119376, '\P{	Ancient_greek_MUSIC}', "");
+    Expect(0, 119376, '\P{^	Ancient_greek_MUSIC}', "");
+    Error('\p{ 	is_ANCIENT_GREEK_music/a/}');
+    Error('\P{ 	is_ANCIENT_GREEK_music/a/}');
     Expect(1, 119375, '\p{isancientgreekmusic}', "");
     Expect(0, 119375, '\p{^isancientgreekmusic}', "");
     Expect(0, 119375, '\P{isancientgreekmusic}', "");
@@ -87101,16 +87699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119376, '\p{^isancientgreekmusic}', "");
     Expect(1, 119376, '\P{isancientgreekmusic}', "");
     Expect(0, 119376, '\P{^isancientgreekmusic}', "");
-    Expect(1, 119375, '\p{	is_ancient_Greek_MUSIC}', "");
-    Expect(0, 119375, '\p{^	is_ancient_Greek_MUSIC}', "");
-    Expect(0, 119375, '\P{	is_ancient_Greek_MUSIC}', "");
-    Expect(1, 119375, '\P{^	is_ancient_Greek_MUSIC}', "");
-    Expect(0, 119376, '\p{	is_ancient_Greek_MUSIC}', "");
-    Expect(1, 119376, '\p{^	is_ancient_Greek_MUSIC}', "");
-    Expect(1, 119376, '\P{	is_ancient_Greek_MUSIC}', "");
-    Expect(0, 119376, '\P{^	is_ancient_Greek_MUSIC}', "");
-    Error('\p{:=_ In_Ancient_greek_MUSIC}');
-    Error('\P{:=_ In_Ancient_greek_MUSIC}');
+    Expect(1, 119375, '\p{__Is_Ancient_Greek_Music}', "");
+    Expect(0, 119375, '\p{^__Is_Ancient_Greek_Music}', "");
+    Expect(0, 119375, '\P{__Is_Ancient_Greek_Music}', "");
+    Expect(1, 119375, '\P{^__Is_Ancient_Greek_Music}', "");
+    Expect(0, 119376, '\p{__Is_Ancient_Greek_Music}', "");
+    Expect(1, 119376, '\p{^__Is_Ancient_Greek_Music}', "");
+    Expect(1, 119376, '\P{__Is_Ancient_Greek_Music}', "");
+    Expect(0, 119376, '\P{^__Is_Ancient_Greek_Music}', "");
+    Error('\p{/a/ -In_ANCIENT_Greek_music}');
+    Error('\P{/a/ -In_ANCIENT_Greek_music}');
     Expect(1, 119375, '\p{inancientgreekmusic}', "");
     Expect(0, 119375, '\p{^inancientgreekmusic}', "");
     Expect(0, 119375, '\P{inancientgreekmusic}', "");
@@ -87119,16 +87717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119376, '\p{^inancientgreekmusic}', "");
     Expect(1, 119376, '\P{inancientgreekmusic}', "");
     Expect(0, 119376, '\P{^inancientgreekmusic}', "");
-    Expect(1, 119375, '\p{ In_Ancient_Greek_MUSIC}', "");
-    Expect(0, 119375, '\p{^ In_Ancient_Greek_MUSIC}', "");
-    Expect(0, 119375, '\P{ In_Ancient_Greek_MUSIC}', "");
-    Expect(1, 119375, '\P{^ In_Ancient_Greek_MUSIC}', "");
-    Expect(0, 119376, '\p{ In_Ancient_Greek_MUSIC}', "");
-    Expect(1, 119376, '\p{^ In_Ancient_Greek_MUSIC}', "");
-    Expect(1, 119376, '\P{ In_Ancient_Greek_MUSIC}', "");
-    Expect(0, 119376, '\P{^ In_Ancient_Greek_MUSIC}', "");
-    Error('\p{	:=ancient_GREEK_Numbers}');
-    Error('\P{	:=ancient_GREEK_Numbers}');
+    Expect(1, 119375, '\p{_ In_ancient_GREEK_Music}', "");
+    Expect(0, 119375, '\p{^_ In_ancient_GREEK_Music}', "");
+    Expect(0, 119375, '\P{_ In_ancient_GREEK_Music}', "");
+    Expect(1, 119375, '\P{^_ In_ancient_GREEK_Music}', "");
+    Expect(0, 119376, '\p{_ In_ancient_GREEK_Music}', "");
+    Expect(1, 119376, '\p{^_ In_ancient_GREEK_Music}', "");
+    Expect(1, 119376, '\P{_ In_ancient_GREEK_Music}', "");
+    Expect(0, 119376, '\P{^_ In_ancient_GREEK_Music}', "");
+    Error('\p{  ancient_greek_numbers:=}');
+    Error('\P{  ancient_greek_numbers:=}');
     Expect(1, 65935, '\p{ancientgreeknumbers}', "");
     Expect(0, 65935, '\p{^ancientgreeknumbers}', "");
     Expect(0, 65935, '\P{ancientgreeknumbers}', "");
@@ -87137,16 +87735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65936, '\p{^ancientgreeknumbers}', "");
     Expect(1, 65936, '\P{ancientgreeknumbers}', "");
     Expect(0, 65936, '\P{^ancientgreeknumbers}', "");
-    Expect(1, 65935, '\p{  ancient_greek_Numbers}', "");
-    Expect(0, 65935, '\p{^  ancient_greek_Numbers}', "");
-    Expect(0, 65935, '\P{  ancient_greek_Numbers}', "");
-    Expect(1, 65935, '\P{^  ancient_greek_Numbers}', "");
-    Expect(0, 65936, '\p{  ancient_greek_Numbers}', "");
-    Expect(1, 65936, '\p{^  ancient_greek_Numbers}', "");
-    Expect(1, 65936, '\P{  ancient_greek_Numbers}', "");
-    Expect(0, 65936, '\P{^  ancient_greek_Numbers}', "");
-    Error('\p{/a/is_ANCIENT_GREEK_Numbers}');
-    Error('\P{/a/is_ANCIENT_GREEK_Numbers}');
+    Expect(1, 65935, '\p{ 	ancient_greek_numbers}', "");
+    Expect(0, 65935, '\p{^ 	ancient_greek_numbers}', "");
+    Expect(0, 65935, '\P{ 	ancient_greek_numbers}', "");
+    Expect(1, 65935, '\P{^ 	ancient_greek_numbers}', "");
+    Expect(0, 65936, '\p{ 	ancient_greek_numbers}', "");
+    Expect(1, 65936, '\p{^ 	ancient_greek_numbers}', "");
+    Expect(1, 65936, '\P{ 	ancient_greek_numbers}', "");
+    Expect(0, 65936, '\P{^ 	ancient_greek_numbers}', "");
+    Error('\p{		Is_Ancient_GREEK_numbers/a/}');
+    Error('\P{		Is_Ancient_GREEK_numbers/a/}');
     Expect(1, 65935, '\p{isancientgreeknumbers}', "");
     Expect(0, 65935, '\p{^isancientgreeknumbers}', "");
     Expect(0, 65935, '\P{isancientgreeknumbers}', "");
@@ -87155,16 +87753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65936, '\p{^isancientgreeknumbers}', "");
     Expect(1, 65936, '\P{isancientgreeknumbers}', "");
     Expect(0, 65936, '\P{^isancientgreeknumbers}', "");
-    Expect(1, 65935, '\p{-_Is_ancient_GREEK_Numbers}', "");
-    Expect(0, 65935, '\p{^-_Is_ancient_GREEK_Numbers}', "");
-    Expect(0, 65935, '\P{-_Is_ancient_GREEK_Numbers}', "");
-    Expect(1, 65935, '\P{^-_Is_ancient_GREEK_Numbers}', "");
-    Expect(0, 65936, '\p{-_Is_ancient_GREEK_Numbers}', "");
-    Expect(1, 65936, '\p{^-_Is_ancient_GREEK_Numbers}', "");
-    Expect(1, 65936, '\P{-_Is_ancient_GREEK_Numbers}', "");
-    Expect(0, 65936, '\P{^-_Is_ancient_GREEK_Numbers}', "");
-    Error('\p{	-In_Ancient_Greek_NUMBERS:=}');
-    Error('\P{	-In_Ancient_Greek_NUMBERS:=}');
+    Expect(1, 65935, '\p{	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(0, 65935, '\p{^	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(0, 65935, '\P{	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(1, 65935, '\P{^	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(0, 65936, '\p{	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(1, 65936, '\p{^	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(1, 65936, '\P{	_IS_ANCIENT_GREEK_Numbers}', "");
+    Expect(0, 65936, '\P{^	_IS_ANCIENT_GREEK_Numbers}', "");
+    Error('\p{/a/-In_ancient_Greek_numbers}');
+    Error('\P{/a/-In_ancient_Greek_numbers}');
     Expect(1, 65935, '\p{inancientgreeknumbers}', "");
     Expect(0, 65935, '\p{^inancientgreeknumbers}', "");
     Expect(0, 65935, '\P{inancientgreeknumbers}', "");
@@ -87173,16 +87771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65936, '\p{^inancientgreeknumbers}', "");
     Expect(1, 65936, '\P{inancientgreeknumbers}', "");
     Expect(0, 65936, '\P{^inancientgreeknumbers}', "");
-    Expect(1, 65935, '\p{_in_ancient_Greek_Numbers}', "");
-    Expect(0, 65935, '\p{^_in_ancient_Greek_Numbers}', "");
-    Expect(0, 65935, '\P{_in_ancient_Greek_Numbers}', "");
-    Expect(1, 65935, '\P{^_in_ancient_Greek_Numbers}', "");
-    Expect(0, 65936, '\p{_in_ancient_Greek_Numbers}', "");
-    Expect(1, 65936, '\p{^_in_ancient_Greek_Numbers}', "");
-    Expect(1, 65936, '\P{_in_ancient_Greek_Numbers}', "");
-    Expect(0, 65936, '\P{^_in_ancient_Greek_Numbers}', "");
-    Error('\p{:= ancient_Symbols}');
-    Error('\P{:= ancient_Symbols}');
+    Expect(1, 65935, '\p{-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(0, 65935, '\p{^-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(0, 65935, '\P{-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(1, 65935, '\P{^-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(0, 65936, '\p{-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(1, 65936, '\p{^-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(1, 65936, '\P{-_IN_ANCIENT_Greek_Numbers}', "");
+    Expect(0, 65936, '\P{^-_IN_ANCIENT_Greek_Numbers}', "");
+    Error('\p{:=	-ANCIENT_Symbols}');
+    Error('\P{:=	-ANCIENT_Symbols}');
     Expect(1, 65999, '\p{ancientsymbols}', "");
     Expect(0, 65999, '\p{^ancientsymbols}', "");
     Expect(0, 65999, '\P{ancientsymbols}', "");
@@ -87191,16 +87789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66000, '\p{^ancientsymbols}', "");
     Expect(1, 66000, '\P{ancientsymbols}', "");
     Expect(0, 66000, '\P{^ancientsymbols}', "");
-    Expect(1, 65999, '\p{_ Ancient_SYMBOLS}', "");
-    Expect(0, 65999, '\p{^_ Ancient_SYMBOLS}', "");
-    Expect(0, 65999, '\P{_ Ancient_SYMBOLS}', "");
-    Expect(1, 65999, '\P{^_ Ancient_SYMBOLS}', "");
-    Expect(0, 66000, '\p{_ Ancient_SYMBOLS}', "");
-    Expect(1, 66000, '\p{^_ Ancient_SYMBOLS}', "");
-    Expect(1, 66000, '\P{_ Ancient_SYMBOLS}', "");
-    Expect(0, 66000, '\P{^_ Ancient_SYMBOLS}', "");
-    Error('\p{__Is_ANCIENT_SYMBOLS/a/}');
-    Error('\P{__Is_ANCIENT_SYMBOLS/a/}');
+    Expect(1, 65999, '\p{_ Ancient_symbols}', "");
+    Expect(0, 65999, '\p{^_ Ancient_symbols}', "");
+    Expect(0, 65999, '\P{_ Ancient_symbols}', "");
+    Expect(1, 65999, '\P{^_ Ancient_symbols}', "");
+    Expect(0, 66000, '\p{_ Ancient_symbols}', "");
+    Expect(1, 66000, '\p{^_ Ancient_symbols}', "");
+    Expect(1, 66000, '\P{_ Ancient_symbols}', "");
+    Expect(0, 66000, '\P{^_ Ancient_symbols}', "");
+    Error('\p{  Is_ancient_Symbols/a/}');
+    Error('\P{  Is_ancient_Symbols/a/}');
     Expect(1, 65999, '\p{isancientsymbols}', "");
     Expect(0, 65999, '\p{^isancientsymbols}', "");
     Expect(0, 65999, '\P{isancientsymbols}', "");
@@ -87209,16 +87807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66000, '\p{^isancientsymbols}', "");
     Expect(1, 66000, '\P{isancientsymbols}', "");
     Expect(0, 66000, '\P{^isancientsymbols}', "");
-    Expect(1, 65999, '\p{_	is_Ancient_symbols}', "");
-    Expect(0, 65999, '\p{^_	is_Ancient_symbols}', "");
-    Expect(0, 65999, '\P{_	is_Ancient_symbols}', "");
-    Expect(1, 65999, '\P{^_	is_Ancient_symbols}', "");
-    Expect(0, 66000, '\p{_	is_Ancient_symbols}', "");
-    Expect(1, 66000, '\p{^_	is_Ancient_symbols}', "");
-    Expect(1, 66000, '\P{_	is_Ancient_symbols}', "");
-    Expect(0, 66000, '\P{^_	is_Ancient_symbols}', "");
-    Error('\p{_:=in_ancient_SYMBOLS}');
-    Error('\P{_:=in_ancient_SYMBOLS}');
+    Expect(1, 65999, '\p{ 	IS_Ancient_SYMBOLS}', "");
+    Expect(0, 65999, '\p{^ 	IS_Ancient_SYMBOLS}', "");
+    Expect(0, 65999, '\P{ 	IS_Ancient_SYMBOLS}', "");
+    Expect(1, 65999, '\P{^ 	IS_Ancient_SYMBOLS}', "");
+    Expect(0, 66000, '\p{ 	IS_Ancient_SYMBOLS}', "");
+    Expect(1, 66000, '\p{^ 	IS_Ancient_SYMBOLS}', "");
+    Expect(1, 66000, '\P{ 	IS_Ancient_SYMBOLS}', "");
+    Expect(0, 66000, '\P{^ 	IS_Ancient_SYMBOLS}', "");
+    Error('\p{:=	-IN_Ancient_Symbols}');
+    Error('\P{:=	-IN_Ancient_Symbols}');
     Expect(1, 65999, '\p{inancientsymbols}', "");
     Expect(0, 65999, '\p{^inancientsymbols}', "");
     Expect(0, 65999, '\P{inancientsymbols}', "");
@@ -87227,16 +87825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66000, '\p{^inancientsymbols}', "");
     Expect(1, 66000, '\P{inancientsymbols}', "");
     Expect(0, 66000, '\P{^inancientsymbols}', "");
-    Expect(1, 65999, '\p{ -in_ANCIENT_SYMBOLS}', "");
-    Expect(0, 65999, '\p{^ -in_ANCIENT_SYMBOLS}', "");
-    Expect(0, 65999, '\P{ -in_ANCIENT_SYMBOLS}', "");
-    Expect(1, 65999, '\P{^ -in_ANCIENT_SYMBOLS}', "");
-    Expect(0, 66000, '\p{ -in_ANCIENT_SYMBOLS}', "");
-    Expect(1, 66000, '\p{^ -in_ANCIENT_SYMBOLS}', "");
-    Expect(1, 66000, '\P{ -in_ANCIENT_SYMBOLS}', "");
-    Expect(0, 66000, '\P{^ -in_ANCIENT_SYMBOLS}', "");
-    Error('\p{:=_-ANY}');
-    Error('\P{:=_-ANY}');
+    Expect(1, 65999, '\p{- in_Ancient_Symbols}', "");
+    Expect(0, 65999, '\p{^- in_Ancient_Symbols}', "");
+    Expect(0, 65999, '\P{- in_Ancient_Symbols}', "");
+    Expect(1, 65999, '\P{^- in_Ancient_Symbols}', "");
+    Expect(0, 66000, '\p{- in_Ancient_Symbols}', "");
+    Expect(1, 66000, '\p{^- in_Ancient_Symbols}', "");
+    Expect(1, 66000, '\P{- in_Ancient_Symbols}', "");
+    Expect(0, 66000, '\P{^- in_Ancient_Symbols}', "");
+    Error('\p{:=Any}');
+    Error('\P{:=Any}');
     Expect(1, 1, '\p{any}', "");
     Expect(0, 1, '\p{^any}', "");
     Expect(0, 1, '\P{any}', "");
@@ -87245,16 +87843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8912887, '\p{^any}', "");
     Expect(1, 8912887, '\P{any}', "");
     Expect(0, 8912887, '\P{^any}', "");
-    Expect(1, 1, '\p{ 	Any}', "");
-    Expect(0, 1, '\p{^ 	Any}', "");
-    Expect(0, 1, '\P{ 	Any}', "");
-    Expect(1, 1, '\P{^ 	Any}', "");
-    Expect(0, 8912887, '\p{ 	Any}', "");
-    Expect(1, 8912887, '\p{^ 	Any}', "");
-    Expect(1, 8912887, '\P{ 	Any}', "");
-    Expect(0, 8912887, '\P{^ 	Any}', "");
-    Error('\p{:=-_Unicode}');
-    Error('\P{:=-_Unicode}');
+    Expect(1, 1, '\p{--ANY}', "");
+    Expect(0, 1, '\p{^--ANY}', "");
+    Expect(0, 1, '\P{--ANY}', "");
+    Expect(1, 1, '\P{^--ANY}', "");
+    Expect(0, 8912887, '\p{--ANY}', "");
+    Expect(1, 8912887, '\p{^--ANY}', "");
+    Expect(1, 8912887, '\P{--ANY}', "");
+    Expect(0, 8912887, '\P{^--ANY}', "");
+    Error('\p{_unicode:=}');
+    Error('\P{_unicode:=}');
     Expect(1, 1, '\p{unicode}', "");
     Expect(0, 1, '\p{^unicode}', "");
     Expect(0, 1, '\P{unicode}', "");
@@ -87263,16 +87861,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8912887, '\p{^unicode}', "");
     Expect(1, 8912887, '\P{unicode}', "");
     Expect(0, 8912887, '\P{^unicode}', "");
-    Expect(1, 1, '\p{_-Unicode}', "");
-    Expect(0, 1, '\p{^_-Unicode}', "");
-    Expect(0, 1, '\P{_-Unicode}', "");
-    Expect(1, 1, '\P{^_-Unicode}', "");
-    Expect(0, 8912887, '\p{_-Unicode}', "");
-    Expect(1, 8912887, '\p{^_-Unicode}', "");
-    Expect(1, 8912887, '\P{_-Unicode}', "");
-    Expect(0, 8912887, '\P{^_-Unicode}', "");
-    Error('\p{:=_ is_ANY}');
-    Error('\P{:=_ is_ANY}');
+    Expect(1, 1, '\p{	_unicode}', "");
+    Expect(0, 1, '\p{^	_unicode}', "");
+    Expect(0, 1, '\P{	_unicode}', "");
+    Expect(1, 1, '\P{^	_unicode}', "");
+    Expect(0, 8912887, '\p{	_unicode}', "");
+    Expect(1, 8912887, '\p{^	_unicode}', "");
+    Expect(1, 8912887, '\P{	_unicode}', "");
+    Expect(0, 8912887, '\P{^	_unicode}', "");
+    Error('\p{_Is_ANY/a/}');
+    Error('\P{_Is_ANY/a/}');
     Expect(1, 1, '\p{isany}', "");
     Expect(0, 1, '\p{^isany}', "");
     Expect(0, 1, '\P{isany}', "");
@@ -87281,16 +87879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8912887, '\p{^isany}', "");
     Expect(1, 8912887, '\P{isany}', "");
     Expect(0, 8912887, '\P{^isany}', "");
-    Expect(1, 1, '\p{	is_Any}', "");
-    Expect(0, 1, '\p{^	is_Any}', "");
-    Expect(0, 1, '\P{	is_Any}', "");
-    Expect(1, 1, '\P{^	is_Any}', "");
-    Expect(0, 8912887, '\p{	is_Any}', "");
-    Expect(1, 8912887, '\p{^	is_Any}', "");
-    Expect(1, 8912887, '\P{	is_Any}', "");
-    Expect(0, 8912887, '\P{^	is_Any}', "");
-    Error('\p{/a/-is_Unicode}');
-    Error('\P{/a/-is_Unicode}');
+    Expect(1, 1, '\p{--Is_Any}', "");
+    Expect(0, 1, '\p{^--Is_Any}', "");
+    Expect(0, 1, '\P{--Is_Any}', "");
+    Expect(1, 1, '\P{^--Is_Any}', "");
+    Expect(0, 8912887, '\p{--Is_Any}', "");
+    Expect(1, 8912887, '\p{^--Is_Any}', "");
+    Expect(1, 8912887, '\P{--Is_Any}', "");
+    Expect(0, 8912887, '\P{^--Is_Any}', "");
+    Error('\p{	-Is_UNICODE:=}');
+    Error('\P{	-Is_UNICODE:=}');
     Expect(1, 1, '\p{isunicode}', "");
     Expect(0, 1, '\p{^isunicode}', "");
     Expect(0, 1, '\P{isunicode}', "");
@@ -87299,16 +87897,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8912887, '\p{^isunicode}', "");
     Expect(1, 8912887, '\P{isunicode}', "");
     Expect(0, 8912887, '\P{^isunicode}', "");
-    Expect(1, 1, '\p{-is_UNICODE}', "");
-    Expect(0, 1, '\p{^-is_UNICODE}', "");
-    Expect(0, 1, '\P{-is_UNICODE}', "");
-    Expect(1, 1, '\P{^-is_UNICODE}', "");
-    Expect(0, 8912887, '\p{-is_UNICODE}', "");
-    Expect(1, 8912887, '\p{^-is_UNICODE}', "");
-    Expect(1, 8912887, '\P{-is_UNICODE}', "");
-    Expect(0, 8912887, '\P{^-is_UNICODE}', "");
-    Error('\p{		arabic/a/}');
-    Error('\P{		arabic/a/}');
+    Expect(1, 1, '\p{--is_UNICODE}', "");
+    Expect(0, 1, '\p{^--is_UNICODE}', "");
+    Expect(0, 1, '\P{--is_UNICODE}', "");
+    Expect(1, 1, '\P{^--is_UNICODE}', "");
+    Expect(0, 8912887, '\p{--is_UNICODE}', "");
+    Expect(1, 8912887, '\p{^--is_UNICODE}', "");
+    Expect(1, 8912887, '\P{--is_UNICODE}', "");
+    Expect(0, 8912887, '\P{^--is_UNICODE}', "");
+    Error('\p{	Arabic:=}');
+    Error('\P{	Arabic:=}');
     Expect(1, 126705, '\p{arabic}', "");
     Expect(0, 126705, '\p{^arabic}', "");
     Expect(0, 126705, '\P{arabic}', "");
@@ -87317,16 +87915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^arabic}', "");
     Expect(1, 126706, '\P{arabic}', "");
     Expect(0, 126706, '\P{^arabic}', "");
-    Expect(1, 126705, '\p{_	Arabic}', "");
-    Expect(0, 126705, '\p{^_	Arabic}', "");
-    Expect(0, 126705, '\P{_	Arabic}', "");
-    Expect(1, 126705, '\P{^_	Arabic}', "");
-    Expect(0, 126706, '\p{_	Arabic}', "");
-    Expect(1, 126706, '\p{^_	Arabic}', "");
-    Expect(1, 126706, '\P{_	Arabic}', "");
-    Expect(0, 126706, '\P{^_	Arabic}', "");
-    Error('\p{  Is_Arabic/a/}');
-    Error('\P{  Is_Arabic/a/}');
+    Expect(1, 126705, '\p{ _ARABIC}', "");
+    Expect(0, 126705, '\p{^ _ARABIC}', "");
+    Expect(0, 126705, '\P{ _ARABIC}', "");
+    Expect(1, 126705, '\P{^ _ARABIC}', "");
+    Expect(0, 126706, '\p{ _ARABIC}', "");
+    Expect(1, 126706, '\p{^ _ARABIC}', "");
+    Expect(1, 126706, '\P{ _ARABIC}', "");
+    Expect(0, 126706, '\P{^ _ARABIC}', "");
+    Error('\p{:=__Is_Arabic}');
+    Error('\P{:=__Is_Arabic}');
     Expect(1, 126705, '\p{isarabic}', "");
     Expect(0, 126705, '\p{^isarabic}', "");
     Expect(0, 126705, '\P{isarabic}', "");
@@ -87335,16 +87933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^isarabic}', "");
     Expect(1, 126706, '\P{isarabic}', "");
     Expect(0, 126706, '\P{^isarabic}', "");
-    Expect(1, 126705, '\p{	-Is_Arabic}', "");
-    Expect(0, 126705, '\p{^	-Is_Arabic}', "");
-    Expect(0, 126705, '\P{	-Is_Arabic}', "");
-    Expect(1, 126705, '\P{^	-Is_Arabic}', "");
-    Expect(0, 126706, '\p{	-Is_Arabic}', "");
-    Expect(1, 126706, '\p{^	-Is_Arabic}', "");
-    Expect(1, 126706, '\P{	-Is_Arabic}', "");
-    Expect(0, 126706, '\P{^	-Is_Arabic}', "");
-    Error('\p{/a/Arab}');
-    Error('\P{/a/Arab}');
+    Expect(1, 126705, '\p{	-Is_ARABIC}', "");
+    Expect(0, 126705, '\p{^	-Is_ARABIC}', "");
+    Expect(0, 126705, '\P{	-Is_ARABIC}', "");
+    Expect(1, 126705, '\P{^	-Is_ARABIC}', "");
+    Expect(0, 126706, '\p{	-Is_ARABIC}', "");
+    Expect(1, 126706, '\p{^	-Is_ARABIC}', "");
+    Expect(1, 126706, '\P{	-Is_ARABIC}', "");
+    Expect(0, 126706, '\P{^	-Is_ARABIC}', "");
+    Error('\p{Arab:=}');
+    Error('\P{Arab:=}');
     Expect(1, 126705, '\p{arab}', "");
     Expect(0, 126705, '\p{^arab}', "");
     Expect(0, 126705, '\P{arab}', "");
@@ -87353,16 +87951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^arab}', "");
     Expect(1, 126706, '\P{arab}', "");
     Expect(0, 126706, '\P{^arab}', "");
-    Expect(1, 126705, '\p{-_Arab}', "");
-    Expect(0, 126705, '\p{^-_Arab}', "");
-    Expect(0, 126705, '\P{-_Arab}', "");
-    Expect(1, 126705, '\P{^-_Arab}', "");
-    Expect(0, 126706, '\p{-_Arab}', "");
-    Expect(1, 126706, '\p{^-_Arab}', "");
-    Expect(1, 126706, '\P{-_Arab}', "");
-    Expect(0, 126706, '\P{^-_Arab}', "");
-    Error('\p{-_Is_Arab/a/}');
-    Error('\P{-_Is_Arab/a/}');
+    Expect(1, 126705, '\p{_arab}', "");
+    Expect(0, 126705, '\p{^_arab}', "");
+    Expect(0, 126705, '\P{_arab}', "");
+    Expect(1, 126705, '\P{^_arab}', "");
+    Expect(0, 126706, '\p{_arab}', "");
+    Expect(1, 126706, '\p{^_arab}', "");
+    Expect(1, 126706, '\P{_arab}', "");
+    Expect(0, 126706, '\P{^_arab}', "");
+    Error('\p{ -IS_ARAB:=}');
+    Error('\P{ -IS_ARAB:=}');
     Expect(1, 126705, '\p{isarab}', "");
     Expect(0, 126705, '\p{^isarab}', "");
     Expect(0, 126705, '\P{isarab}', "");
@@ -87371,16 +87969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^isarab}', "");
     Expect(1, 126706, '\P{isarab}', "");
     Expect(0, 126706, '\P{^isarab}', "");
-    Expect(1, 126705, '\p{ Is_ARAB}', "");
-    Expect(0, 126705, '\p{^ Is_ARAB}', "");
-    Expect(0, 126705, '\P{ Is_ARAB}', "");
-    Expect(1, 126705, '\P{^ Is_ARAB}', "");
-    Expect(0, 126706, '\p{ Is_ARAB}', "");
-    Expect(1, 126706, '\p{^ Is_ARAB}', "");
-    Expect(1, 126706, '\P{ Is_ARAB}', "");
-    Expect(0, 126706, '\P{^ Is_ARAB}', "");
-    Error('\p{	:=Arabic_EXTENDED_A}');
-    Error('\P{	:=Arabic_EXTENDED_A}');
+    Expect(1, 126705, '\p{		IS_Arab}', "");
+    Expect(0, 126705, '\p{^		IS_Arab}', "");
+    Expect(0, 126705, '\P{		IS_Arab}', "");
+    Expect(1, 126705, '\P{^		IS_Arab}', "");
+    Expect(0, 126706, '\p{		IS_Arab}', "");
+    Expect(1, 126706, '\p{^		IS_Arab}', "");
+    Expect(1, 126706, '\P{		IS_Arab}', "");
+    Expect(0, 126706, '\P{^		IS_Arab}', "");
+    Error('\p{/a/ Arabic_Extended_A}');
+    Error('\P{/a/ Arabic_Extended_A}');
     Expect(1, 2303, '\p{arabicextendeda}', "");
     Expect(0, 2303, '\p{^arabicextendeda}', "");
     Expect(0, 2303, '\P{arabicextendeda}', "");
@@ -87389,16 +87987,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2304, '\p{^arabicextendeda}', "");
     Expect(1, 2304, '\P{arabicextendeda}', "");
     Expect(0, 2304, '\P{^arabicextendeda}', "");
-    Expect(1, 2303, '\p{	arabic_EXTENDED_A}', "");
-    Expect(0, 2303, '\p{^	arabic_EXTENDED_A}', "");
-    Expect(0, 2303, '\P{	arabic_EXTENDED_A}', "");
-    Expect(1, 2303, '\P{^	arabic_EXTENDED_A}', "");
-    Expect(0, 2304, '\p{	arabic_EXTENDED_A}', "");
-    Expect(1, 2304, '\p{^	arabic_EXTENDED_A}', "");
-    Expect(1, 2304, '\P{	arabic_EXTENDED_A}', "");
-    Expect(0, 2304, '\P{^	arabic_EXTENDED_A}', "");
-    Error('\p{-Is_arabic_EXTENDED_A:=}');
-    Error('\P{-Is_arabic_EXTENDED_A:=}');
+    Expect(1, 2303, '\p{	 Arabic_Extended_A}', "");
+    Expect(0, 2303, '\p{^	 Arabic_Extended_A}', "");
+    Expect(0, 2303, '\P{	 Arabic_Extended_A}', "");
+    Expect(1, 2303, '\P{^	 Arabic_Extended_A}', "");
+    Expect(0, 2304, '\p{	 Arabic_Extended_A}', "");
+    Expect(1, 2304, '\p{^	 Arabic_Extended_A}', "");
+    Expect(1, 2304, '\P{	 Arabic_Extended_A}', "");
+    Expect(0, 2304, '\P{^	 Arabic_Extended_A}', "");
+    Error('\p{/a/	is_Arabic_Extended_A}');
+    Error('\P{/a/	is_Arabic_Extended_A}');
     Expect(1, 2303, '\p{isarabicextendeda}', "");
     Expect(0, 2303, '\p{^isarabicextendeda}', "");
     Expect(0, 2303, '\P{isarabicextendeda}', "");
@@ -87407,16 +88005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2304, '\p{^isarabicextendeda}', "");
     Expect(1, 2304, '\P{isarabicextendeda}', "");
     Expect(0, 2304, '\P{^isarabicextendeda}', "");
-    Expect(1, 2303, '\p{ -Is_arabic_Extended_A}', "");
-    Expect(0, 2303, '\p{^ -Is_arabic_Extended_A}', "");
-    Expect(0, 2303, '\P{ -Is_arabic_Extended_A}', "");
-    Expect(1, 2303, '\P{^ -Is_arabic_Extended_A}', "");
-    Expect(0, 2304, '\p{ -Is_arabic_Extended_A}', "");
-    Expect(1, 2304, '\p{^ -Is_arabic_Extended_A}', "");
-    Expect(1, 2304, '\P{ -Is_arabic_Extended_A}', "");
-    Expect(0, 2304, '\P{^ -Is_arabic_Extended_A}', "");
-    Error('\p{	:=In_Arabic_EXTENDED_A}');
-    Error('\P{	:=In_Arabic_EXTENDED_A}');
+    Expect(1, 2303, '\p{		is_Arabic_Extended_A}', "");
+    Expect(0, 2303, '\p{^		is_Arabic_Extended_A}', "");
+    Expect(0, 2303, '\P{		is_Arabic_Extended_A}', "");
+    Expect(1, 2303, '\P{^		is_Arabic_Extended_A}', "");
+    Expect(0, 2304, '\p{		is_Arabic_Extended_A}', "");
+    Expect(1, 2304, '\p{^		is_Arabic_Extended_A}', "");
+    Expect(1, 2304, '\P{		is_Arabic_Extended_A}', "");
+    Expect(0, 2304, '\P{^		is_Arabic_Extended_A}', "");
+    Error('\p{ _In_Arabic_EXTENDED_A:=}');
+    Error('\P{ _In_Arabic_EXTENDED_A:=}');
     Expect(1, 2303, '\p{inarabicextendeda}', "");
     Expect(0, 2303, '\p{^inarabicextendeda}', "");
     Expect(0, 2303, '\P{inarabicextendeda}', "");
@@ -87425,16 +88023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2304, '\p{^inarabicextendeda}', "");
     Expect(1, 2304, '\P{inarabicextendeda}', "");
     Expect(0, 2304, '\P{^inarabicextendeda}', "");
-    Expect(1, 2303, '\p{  In_Arabic_extended_a}', "");
-    Expect(0, 2303, '\p{^  In_Arabic_extended_a}', "");
-    Expect(0, 2303, '\P{  In_Arabic_extended_a}', "");
-    Expect(1, 2303, '\P{^  In_Arabic_extended_a}', "");
-    Expect(0, 2304, '\p{  In_Arabic_extended_a}', "");
-    Expect(1, 2304, '\p{^  In_Arabic_extended_a}', "");
-    Expect(1, 2304, '\P{  In_Arabic_extended_a}', "");
-    Expect(0, 2304, '\P{^  In_Arabic_extended_a}', "");
-    Error('\p{ /a/Arabic_Ext_A}');
-    Error('\P{ /a/Arabic_Ext_A}');
+    Expect(1, 2303, '\p{		In_arabic_EXTENDED_A}', "");
+    Expect(0, 2303, '\p{^		In_arabic_EXTENDED_A}', "");
+    Expect(0, 2303, '\P{		In_arabic_EXTENDED_A}', "");
+    Expect(1, 2303, '\P{^		In_arabic_EXTENDED_A}', "");
+    Expect(0, 2304, '\p{		In_arabic_EXTENDED_A}', "");
+    Expect(1, 2304, '\p{^		In_arabic_EXTENDED_A}', "");
+    Expect(1, 2304, '\P{		In_arabic_EXTENDED_A}', "");
+    Expect(0, 2304, '\P{^		In_arabic_EXTENDED_A}', "");
+    Error('\p{ :=ARABIC_ext_A}');
+    Error('\P{ :=ARABIC_ext_A}');
     Expect(1, 2303, '\p{arabicexta}', "");
     Expect(0, 2303, '\p{^arabicexta}', "");
     Expect(0, 2303, '\P{arabicexta}', "");
@@ -87443,16 +88041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2304, '\p{^arabicexta}', "");
     Expect(1, 2304, '\P{arabicexta}', "");
     Expect(0, 2304, '\P{^arabicexta}', "");
-    Expect(1, 2303, '\p{ Arabic_Ext_A}', "");
-    Expect(0, 2303, '\p{^ Arabic_Ext_A}', "");
-    Expect(0, 2303, '\P{ Arabic_Ext_A}', "");
-    Expect(1, 2303, '\P{^ Arabic_Ext_A}', "");
-    Expect(0, 2304, '\p{ Arabic_Ext_A}', "");
-    Expect(1, 2304, '\p{^ Arabic_Ext_A}', "");
-    Expect(1, 2304, '\P{ Arabic_Ext_A}', "");
-    Expect(0, 2304, '\P{^ Arabic_Ext_A}', "");
-    Error('\p{:=IS_ARABIC_Ext_A}');
-    Error('\P{:=IS_ARABIC_Ext_A}');
+    Expect(1, 2303, '\p{_ARABIC_ext_a}', "");
+    Expect(0, 2303, '\p{^_ARABIC_ext_a}', "");
+    Expect(0, 2303, '\P{_ARABIC_ext_a}', "");
+    Expect(1, 2303, '\P{^_ARABIC_ext_a}', "");
+    Expect(0, 2304, '\p{_ARABIC_ext_a}', "");
+    Expect(1, 2304, '\p{^_ARABIC_ext_a}', "");
+    Expect(1, 2304, '\P{_ARABIC_ext_a}', "");
+    Expect(0, 2304, '\P{^_ARABIC_ext_a}', "");
+    Error('\p{/a/IS_ARABIC_Ext_a}');
+    Error('\P{/a/IS_ARABIC_Ext_a}');
     Expect(1, 2303, '\p{isarabicexta}', "");
     Expect(0, 2303, '\p{^isarabicexta}', "");
     Expect(0, 2303, '\P{isarabicexta}', "");
@@ -87461,16 +88059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2304, '\p{^isarabicexta}', "");
     Expect(1, 2304, '\P{isarabicexta}', "");
     Expect(0, 2304, '\P{^isarabicexta}', "");
-    Expect(1, 2303, '\p{_	Is_Arabic_ext_A}', "");
-    Expect(0, 2303, '\p{^_	Is_Arabic_ext_A}', "");
-    Expect(0, 2303, '\P{_	Is_Arabic_ext_A}', "");
-    Expect(1, 2303, '\P{^_	Is_Arabic_ext_A}', "");
-    Expect(0, 2304, '\p{_	Is_Arabic_ext_A}', "");
-    Expect(1, 2304, '\p{^_	Is_Arabic_ext_A}', "");
-    Expect(1, 2304, '\P{_	Is_Arabic_ext_A}', "");
-    Expect(0, 2304, '\P{^_	Is_Arabic_ext_A}', "");
-    Error('\p{:= -In_ARABIC_EXT_a}');
-    Error('\P{:= -In_ARABIC_EXT_a}');
+    Expect(1, 2303, '\p{--IS_Arabic_EXT_A}', "");
+    Expect(0, 2303, '\p{^--IS_Arabic_EXT_A}', "");
+    Expect(0, 2303, '\P{--IS_Arabic_EXT_A}', "");
+    Expect(1, 2303, '\P{^--IS_Arabic_EXT_A}', "");
+    Expect(0, 2304, '\p{--IS_Arabic_EXT_A}', "");
+    Expect(1, 2304, '\p{^--IS_Arabic_EXT_A}', "");
+    Expect(1, 2304, '\P{--IS_Arabic_EXT_A}', "");
+    Expect(0, 2304, '\P{^--IS_Arabic_EXT_A}', "");
+    Error('\p{	_IN_arabic_Ext_A:=}');
+    Error('\P{	_IN_arabic_Ext_A:=}');
     Expect(1, 2303, '\p{inarabicexta}', "");
     Expect(0, 2303, '\p{^inarabicexta}', "");
     Expect(0, 2303, '\P{inarabicexta}', "");
@@ -87479,16 +88077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2304, '\p{^inarabicexta}', "");
     Expect(1, 2304, '\P{inarabicexta}', "");
     Expect(0, 2304, '\P{^inarabicexta}', "");
-    Expect(1, 2303, '\p{ 	In_arabic_ext_A}', "");
-    Expect(0, 2303, '\p{^ 	In_arabic_ext_A}', "");
-    Expect(0, 2303, '\P{ 	In_arabic_ext_A}', "");
-    Expect(1, 2303, '\P{^ 	In_arabic_ext_A}', "");
-    Expect(0, 2304, '\p{ 	In_arabic_ext_A}', "");
-    Expect(1, 2304, '\p{^ 	In_arabic_ext_A}', "");
-    Expect(1, 2304, '\P{ 	In_arabic_ext_A}', "");
-    Expect(0, 2304, '\P{^ 	In_arabic_ext_A}', "");
-    Error('\p{:=Arabic_Extended_B}');
-    Error('\P{:=Arabic_Extended_B}');
+    Expect(1, 2303, '\p{-In_Arabic_ext_A}', "");
+    Expect(0, 2303, '\p{^-In_Arabic_ext_A}', "");
+    Expect(0, 2303, '\P{-In_Arabic_ext_A}', "");
+    Expect(1, 2303, '\P{^-In_Arabic_ext_A}', "");
+    Expect(0, 2304, '\p{-In_Arabic_ext_A}', "");
+    Expect(1, 2304, '\p{^-In_Arabic_ext_A}', "");
+    Expect(1, 2304, '\P{-In_Arabic_ext_A}', "");
+    Expect(0, 2304, '\P{^-In_Arabic_ext_A}', "");
+    Error('\p{_/a/Arabic_Extended_B}');
+    Error('\P{_/a/Arabic_Extended_B}');
     Expect(1, 2207, '\p{arabicextendedb}', "");
     Expect(0, 2207, '\p{^arabicextendedb}', "");
     Expect(0, 2207, '\P{arabicextendedb}', "");
@@ -87497,16 +88095,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2208, '\p{^arabicextendedb}', "");
     Expect(1, 2208, '\P{arabicextendedb}', "");
     Expect(0, 2208, '\P{^arabicextendedb}', "");
-    Expect(1, 2207, '\p{	ARABIC_extended_B}', "");
-    Expect(0, 2207, '\p{^	ARABIC_extended_B}', "");
-    Expect(0, 2207, '\P{	ARABIC_extended_B}', "");
-    Expect(1, 2207, '\P{^	ARABIC_extended_B}', "");
-    Expect(0, 2208, '\p{	ARABIC_extended_B}', "");
-    Expect(1, 2208, '\p{^	ARABIC_extended_B}', "");
-    Expect(1, 2208, '\P{	ARABIC_extended_B}', "");
-    Expect(0, 2208, '\P{^	ARABIC_extended_B}', "");
-    Error('\p{	Is_Arabic_Extended_B:=}');
-    Error('\P{	Is_Arabic_Extended_B:=}');
+    Expect(1, 2207, '\p{	-Arabic_Extended_B}', "");
+    Expect(0, 2207, '\p{^	-Arabic_Extended_B}', "");
+    Expect(0, 2207, '\P{	-Arabic_Extended_B}', "");
+    Expect(1, 2207, '\P{^	-Arabic_Extended_B}', "");
+    Expect(0, 2208, '\p{	-Arabic_Extended_B}', "");
+    Expect(1, 2208, '\p{^	-Arabic_Extended_B}', "");
+    Expect(1, 2208, '\P{	-Arabic_Extended_B}', "");
+    Expect(0, 2208, '\P{^	-Arabic_Extended_B}', "");
+    Error('\p{_/a/Is_Arabic_Extended_B}');
+    Error('\P{_/a/Is_Arabic_Extended_B}');
     Expect(1, 2207, '\p{isarabicextendedb}', "");
     Expect(0, 2207, '\p{^isarabicextendedb}', "");
     Expect(0, 2207, '\P{isarabicextendedb}', "");
@@ -87515,16 +88113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2208, '\p{^isarabicextendedb}', "");
     Expect(1, 2208, '\P{isarabicextendedb}', "");
     Expect(0, 2208, '\P{^isarabicextendedb}', "");
-    Expect(1, 2207, '\p{-	IS_Arabic_Extended_b}', "");
-    Expect(0, 2207, '\p{^-	IS_Arabic_Extended_b}', "");
-    Expect(0, 2207, '\P{-	IS_Arabic_Extended_b}', "");
-    Expect(1, 2207, '\P{^-	IS_Arabic_Extended_b}', "");
-    Expect(0, 2208, '\p{-	IS_Arabic_Extended_b}', "");
-    Expect(1, 2208, '\p{^-	IS_Arabic_Extended_b}', "");
-    Expect(1, 2208, '\P{-	IS_Arabic_Extended_b}', "");
-    Expect(0, 2208, '\P{^-	IS_Arabic_Extended_b}', "");
-    Error('\p{:=-	in_ARABIC_Extended_B}');
-    Error('\P{:=-	in_ARABIC_Extended_B}');
+    Expect(1, 2207, '\p{ Is_Arabic_EXTENDED_B}', "");
+    Expect(0, 2207, '\p{^ Is_Arabic_EXTENDED_B}', "");
+    Expect(0, 2207, '\P{ Is_Arabic_EXTENDED_B}', "");
+    Expect(1, 2207, '\P{^ Is_Arabic_EXTENDED_B}', "");
+    Expect(0, 2208, '\p{ Is_Arabic_EXTENDED_B}', "");
+    Expect(1, 2208, '\p{^ Is_Arabic_EXTENDED_B}', "");
+    Expect(1, 2208, '\P{ Is_Arabic_EXTENDED_B}', "");
+    Expect(0, 2208, '\P{^ Is_Arabic_EXTENDED_B}', "");
+    Error('\p{_/a/in_Arabic_Extended_b}');
+    Error('\P{_/a/in_Arabic_Extended_b}');
     Expect(1, 2207, '\p{inarabicextendedb}', "");
     Expect(0, 2207, '\p{^inarabicextendedb}', "");
     Expect(0, 2207, '\P{inarabicextendedb}', "");
@@ -87533,16 +88131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2208, '\p{^inarabicextendedb}', "");
     Expect(1, 2208, '\P{inarabicextendedb}', "");
     Expect(0, 2208, '\P{^inarabicextendedb}', "");
-    Expect(1, 2207, '\p{	 in_arabic_Extended_B}', "");
-    Expect(0, 2207, '\p{^	 in_arabic_Extended_B}', "");
-    Expect(0, 2207, '\P{	 in_arabic_Extended_B}', "");
-    Expect(1, 2207, '\P{^	 in_arabic_Extended_B}', "");
-    Expect(0, 2208, '\p{	 in_arabic_Extended_B}', "");
-    Expect(1, 2208, '\p{^	 in_arabic_Extended_B}', "");
-    Expect(1, 2208, '\P{	 in_arabic_Extended_B}', "");
-    Expect(0, 2208, '\P{^	 in_arabic_Extended_B}', "");
-    Error('\p{:=_ARABIC_EXT_B}');
-    Error('\P{:=_ARABIC_EXT_B}');
+    Expect(1, 2207, '\p{ _IN_arabic_Extended_B}', "");
+    Expect(0, 2207, '\p{^ _IN_arabic_Extended_B}', "");
+    Expect(0, 2207, '\P{ _IN_arabic_Extended_B}', "");
+    Expect(1, 2207, '\P{^ _IN_arabic_Extended_B}', "");
+    Expect(0, 2208, '\p{ _IN_arabic_Extended_B}', "");
+    Expect(1, 2208, '\p{^ _IN_arabic_Extended_B}', "");
+    Expect(1, 2208, '\P{ _IN_arabic_Extended_B}', "");
+    Expect(0, 2208, '\P{^ _IN_arabic_Extended_B}', "");
+    Error('\p{/a/	ARABIC_ext_B}');
+    Error('\P{/a/	ARABIC_ext_B}');
     Expect(1, 2207, '\p{arabicextb}', "");
     Expect(0, 2207, '\p{^arabicextb}', "");
     Expect(0, 2207, '\P{arabicextb}', "");
@@ -87551,16 +88149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2208, '\p{^arabicextb}', "");
     Expect(1, 2208, '\P{arabicextb}', "");
     Expect(0, 2208, '\P{^arabicextb}', "");
-    Expect(1, 2207, '\p{ ARABIC_EXT_b}', "");
-    Expect(0, 2207, '\p{^ ARABIC_EXT_b}', "");
-    Expect(0, 2207, '\P{ ARABIC_EXT_b}', "");
-    Expect(1, 2207, '\P{^ ARABIC_EXT_b}', "");
-    Expect(0, 2208, '\p{ ARABIC_EXT_b}', "");
-    Expect(1, 2208, '\p{^ ARABIC_EXT_b}', "");
-    Expect(1, 2208, '\P{ ARABIC_EXT_b}', "");
-    Expect(0, 2208, '\P{^ ARABIC_EXT_b}', "");
-    Error('\p{/a/	-IS_Arabic_Ext_B}');
-    Error('\P{/a/	-IS_Arabic_Ext_B}');
+    Expect(1, 2207, '\p{-_Arabic_EXT_B}', "");
+    Expect(0, 2207, '\p{^-_Arabic_EXT_B}', "");
+    Expect(0, 2207, '\P{-_Arabic_EXT_B}', "");
+    Expect(1, 2207, '\P{^-_Arabic_EXT_B}', "");
+    Expect(0, 2208, '\p{-_Arabic_EXT_B}', "");
+    Expect(1, 2208, '\p{^-_Arabic_EXT_B}', "");
+    Expect(1, 2208, '\P{-_Arabic_EXT_B}', "");
+    Expect(0, 2208, '\P{^-_Arabic_EXT_B}', "");
+    Error('\p{:=is_ARABIC_Ext_B}');
+    Error('\P{:=is_ARABIC_Ext_B}');
     Expect(1, 2207, '\p{isarabicextb}', "");
     Expect(0, 2207, '\p{^isarabicextb}', "");
     Expect(0, 2207, '\P{isarabicextb}', "");
@@ -87569,16 +88167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2208, '\p{^isarabicextb}', "");
     Expect(1, 2208, '\P{isarabicextb}', "");
     Expect(0, 2208, '\P{^isarabicextb}', "");
-    Expect(1, 2207, '\p{  IS_ARABIC_ext_B}', "");
-    Expect(0, 2207, '\p{^  IS_ARABIC_ext_B}', "");
-    Expect(0, 2207, '\P{  IS_ARABIC_ext_B}', "");
-    Expect(1, 2207, '\P{^  IS_ARABIC_ext_B}', "");
-    Expect(0, 2208, '\p{  IS_ARABIC_ext_B}', "");
-    Expect(1, 2208, '\p{^  IS_ARABIC_ext_B}', "");
-    Expect(1, 2208, '\P{  IS_ARABIC_ext_B}', "");
-    Expect(0, 2208, '\P{^  IS_ARABIC_ext_B}', "");
-    Error('\p{:=	 IN_Arabic_ext_B}');
-    Error('\P{:=	 IN_Arabic_ext_B}');
+    Expect(1, 2207, '\p{	is_Arabic_Ext_B}', "");
+    Expect(0, 2207, '\p{^	is_Arabic_Ext_B}', "");
+    Expect(0, 2207, '\P{	is_Arabic_Ext_B}', "");
+    Expect(1, 2207, '\P{^	is_Arabic_Ext_B}', "");
+    Expect(0, 2208, '\p{	is_Arabic_Ext_B}', "");
+    Expect(1, 2208, '\p{^	is_Arabic_Ext_B}', "");
+    Expect(1, 2208, '\P{	is_Arabic_Ext_B}', "");
+    Expect(0, 2208, '\P{^	is_Arabic_Ext_B}', "");
+    Error('\p{/a/-_In_ARABIC_Ext_B}');
+    Error('\P{/a/-_In_ARABIC_Ext_B}');
     Expect(1, 2207, '\p{inarabicextb}', "");
     Expect(0, 2207, '\p{^inarabicextb}', "");
     Expect(0, 2207, '\P{inarabicextb}', "");
@@ -87587,16 +88185,124 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2208, '\p{^inarabicextb}', "");
     Expect(1, 2208, '\P{inarabicextb}', "");
     Expect(0, 2208, '\P{^inarabicextb}', "");
-    Expect(1, 2207, '\p{	IN_arabic_ext_b}', "");
-    Expect(0, 2207, '\p{^	IN_arabic_ext_b}', "");
-    Expect(0, 2207, '\P{	IN_arabic_ext_b}', "");
-    Expect(1, 2207, '\P{^	IN_arabic_ext_b}', "");
-    Expect(0, 2208, '\p{	IN_arabic_ext_b}', "");
-    Expect(1, 2208, '\p{^	IN_arabic_ext_b}', "");
-    Expect(1, 2208, '\P{	IN_arabic_ext_b}', "");
-    Expect(0, 2208, '\P{^	IN_arabic_ext_b}', "");
-    Error('\p{:=Arabic_MATHEMATICAL_Alphabetic_Symbols}');
-    Error('\P{:=Arabic_MATHEMATICAL_Alphabetic_Symbols}');
+    Expect(1, 2207, '\p{_ In_Arabic_Ext_B}', "");
+    Expect(0, 2207, '\p{^_ In_Arabic_Ext_B}', "");
+    Expect(0, 2207, '\P{_ In_Arabic_Ext_B}', "");
+    Expect(1, 2207, '\P{^_ In_Arabic_Ext_B}', "");
+    Expect(0, 2208, '\p{_ In_Arabic_Ext_B}', "");
+    Expect(1, 2208, '\p{^_ In_Arabic_Ext_B}', "");
+    Expect(1, 2208, '\P{_ In_Arabic_Ext_B}', "");
+    Expect(0, 2208, '\P{^_ In_Arabic_Ext_B}', "");
+    Error('\p{/a/Arabic_EXTENDED_c}');
+    Error('\P{/a/Arabic_EXTENDED_c}');
+    Expect(1, 69375, '\p{arabicextendedc}', "");
+    Expect(0, 69375, '\p{^arabicextendedc}', "");
+    Expect(0, 69375, '\P{arabicextendedc}', "");
+    Expect(1, 69375, '\P{^arabicextendedc}', "");
+    Expect(0, 69376, '\p{arabicextendedc}', "");
+    Expect(1, 69376, '\p{^arabicextendedc}', "");
+    Expect(1, 69376, '\P{arabicextendedc}', "");
+    Expect(0, 69376, '\P{^arabicextendedc}', "");
+    Expect(1, 69375, '\p{_arabic_extended_C}', "");
+    Expect(0, 69375, '\p{^_arabic_extended_C}', "");
+    Expect(0, 69375, '\P{_arabic_extended_C}', "");
+    Expect(1, 69375, '\P{^_arabic_extended_C}', "");
+    Expect(0, 69376, '\p{_arabic_extended_C}', "");
+    Expect(1, 69376, '\p{^_arabic_extended_C}', "");
+    Expect(1, 69376, '\P{_arabic_extended_C}', "");
+    Expect(0, 69376, '\P{^_arabic_extended_C}', "");
+    Error('\p{/a/_	Is_arabic_Extended_C}');
+    Error('\P{/a/_	Is_arabic_Extended_C}');
+    Expect(1, 69375, '\p{isarabicextendedc}', "");
+    Expect(0, 69375, '\p{^isarabicextendedc}', "");
+    Expect(0, 69375, '\P{isarabicextendedc}', "");
+    Expect(1, 69375, '\P{^isarabicextendedc}', "");
+    Expect(0, 69376, '\p{isarabicextendedc}', "");
+    Expect(1, 69376, '\p{^isarabicextendedc}', "");
+    Expect(1, 69376, '\P{isarabicextendedc}', "");
+    Expect(0, 69376, '\P{^isarabicextendedc}', "");
+    Expect(1, 69375, '\p{ _Is_ARABIC_extended_C}', "");
+    Expect(0, 69375, '\p{^ _Is_ARABIC_extended_C}', "");
+    Expect(0, 69375, '\P{ _Is_ARABIC_extended_C}', "");
+    Expect(1, 69375, '\P{^ _Is_ARABIC_extended_C}', "");
+    Expect(0, 69376, '\p{ _Is_ARABIC_extended_C}', "");
+    Expect(1, 69376, '\p{^ _Is_ARABIC_extended_C}', "");
+    Expect(1, 69376, '\P{ _Is_ARABIC_extended_C}', "");
+    Expect(0, 69376, '\P{^ _Is_ARABIC_extended_C}', "");
+    Error('\p{-IN_arabic_Extended_C/a/}');
+    Error('\P{-IN_arabic_Extended_C/a/}');
+    Expect(1, 69375, '\p{inarabicextendedc}', "");
+    Expect(0, 69375, '\p{^inarabicextendedc}', "");
+    Expect(0, 69375, '\P{inarabicextendedc}', "");
+    Expect(1, 69375, '\P{^inarabicextendedc}', "");
+    Expect(0, 69376, '\p{inarabicextendedc}', "");
+    Expect(1, 69376, '\p{^inarabicextendedc}', "");
+    Expect(1, 69376, '\P{inarabicextendedc}', "");
+    Expect(0, 69376, '\P{^inarabicextendedc}', "");
+    Expect(1, 69375, '\p{ In_Arabic_Extended_c}', "");
+    Expect(0, 69375, '\p{^ In_Arabic_Extended_c}', "");
+    Expect(0, 69375, '\P{ In_Arabic_Extended_c}', "");
+    Expect(1, 69375, '\P{^ In_Arabic_Extended_c}', "");
+    Expect(0, 69376, '\p{ In_Arabic_Extended_c}', "");
+    Expect(1, 69376, '\p{^ In_Arabic_Extended_c}', "");
+    Expect(1, 69376, '\P{ In_Arabic_Extended_c}', "");
+    Expect(0, 69376, '\P{^ In_Arabic_Extended_c}', "");
+    Error('\p{	_Arabic_Ext_c/a/}');
+    Error('\P{	_Arabic_Ext_c/a/}');
+    Expect(1, 69375, '\p{arabicextc}', "");
+    Expect(0, 69375, '\p{^arabicextc}', "");
+    Expect(0, 69375, '\P{arabicextc}', "");
+    Expect(1, 69375, '\P{^arabicextc}', "");
+    Expect(0, 69376, '\p{arabicextc}', "");
+    Expect(1, 69376, '\p{^arabicextc}', "");
+    Expect(1, 69376, '\P{arabicextc}', "");
+    Expect(0, 69376, '\P{^arabicextc}', "");
+    Expect(1, 69375, '\p{ _Arabic_ext_C}', "");
+    Expect(0, 69375, '\p{^ _Arabic_ext_C}', "");
+    Expect(0, 69375, '\P{ _Arabic_ext_C}', "");
+    Expect(1, 69375, '\P{^ _Arabic_ext_C}', "");
+    Expect(0, 69376, '\p{ _Arabic_ext_C}', "");
+    Expect(1, 69376, '\p{^ _Arabic_ext_C}', "");
+    Expect(1, 69376, '\P{ _Arabic_ext_C}', "");
+    Expect(0, 69376, '\P{^ _Arabic_ext_C}', "");
+    Error('\p{_ IS_Arabic_Ext_C:=}');
+    Error('\P{_ IS_Arabic_Ext_C:=}');
+    Expect(1, 69375, '\p{isarabicextc}', "");
+    Expect(0, 69375, '\p{^isarabicextc}', "");
+    Expect(0, 69375, '\P{isarabicextc}', "");
+    Expect(1, 69375, '\P{^isarabicextc}', "");
+    Expect(0, 69376, '\p{isarabicextc}', "");
+    Expect(1, 69376, '\p{^isarabicextc}', "");
+    Expect(1, 69376, '\P{isarabicextc}', "");
+    Expect(0, 69376, '\P{^isarabicextc}', "");
+    Expect(1, 69375, '\p{- is_arabic_Ext_C}', "");
+    Expect(0, 69375, '\p{^- is_arabic_Ext_C}', "");
+    Expect(0, 69375, '\P{- is_arabic_Ext_C}', "");
+    Expect(1, 69375, '\P{^- is_arabic_Ext_C}', "");
+    Expect(0, 69376, '\p{- is_arabic_Ext_C}', "");
+    Expect(1, 69376, '\p{^- is_arabic_Ext_C}', "");
+    Expect(1, 69376, '\P{- is_arabic_Ext_C}', "");
+    Expect(0, 69376, '\P{^- is_arabic_Ext_C}', "");
+    Error('\p{-:=In_Arabic_EXT_c}');
+    Error('\P{-:=In_Arabic_EXT_c}');
+    Expect(1, 69375, '\p{inarabicextc}', "");
+    Expect(0, 69375, '\p{^inarabicextc}', "");
+    Expect(0, 69375, '\P{inarabicextc}', "");
+    Expect(1, 69375, '\P{^inarabicextc}', "");
+    Expect(0, 69376, '\p{inarabicextc}', "");
+    Expect(1, 69376, '\p{^inarabicextc}', "");
+    Expect(1, 69376, '\P{inarabicextc}', "");
+    Expect(0, 69376, '\P{^inarabicextc}', "");
+    Expect(1, 69375, '\p{_In_Arabic_Ext_C}', "");
+    Expect(0, 69375, '\p{^_In_Arabic_Ext_C}', "");
+    Expect(0, 69375, '\P{_In_Arabic_Ext_C}', "");
+    Expect(1, 69375, '\P{^_In_Arabic_Ext_C}', "");
+    Expect(0, 69376, '\p{_In_Arabic_Ext_C}', "");
+    Expect(1, 69376, '\p{^_In_Arabic_Ext_C}', "");
+    Expect(1, 69376, '\P{_In_Arabic_Ext_C}', "");
+    Expect(0, 69376, '\P{^_In_Arabic_Ext_C}', "");
+    Error('\p{:= _Arabic_Mathematical_alphabetic_symbols}');
+    Error('\P{:= _Arabic_Mathematical_alphabetic_symbols}');
     Expect(1, 126719, '\p{arabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\p{^arabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\P{arabicmathematicalalphabeticsymbols}', "");
@@ -87605,16 +88311,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126720, '\p{^arabicmathematicalalphabeticsymbols}', "");
     Expect(1, 126720, '\P{arabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126720, '\P{^arabicmathematicalalphabeticsymbols}', "");
-    Expect(1, 126719, '\p{-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(0, 126719, '\p{^-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(0, 126719, '\P{-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(1, 126719, '\P{^-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(0, 126720, '\p{-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(1, 126720, '\p{^-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(1, 126720, '\P{-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Expect(0, 126720, '\P{^-	Arabic_Mathematical_alphabetic_Symbols}', "");
-    Error('\p{/a/	-Is_arabic_mathematical_Alphabetic_Symbols}');
-    Error('\P{/a/	-Is_arabic_mathematical_Alphabetic_Symbols}');
+    Expect(1, 126719, '\p{-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126719, '\p{^-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126719, '\P{-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(1, 126719, '\P{^-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126720, '\p{-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(1, 126720, '\p{^-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(1, 126720, '\P{-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Expect(0, 126720, '\P{^-_Arabic_mathematical_alphabetic_SYMBOLS}', "");
+    Error('\p{ :=IS_ARABIC_MATHEMATICAL_alphabetic_Symbols}');
+    Error('\P{ :=IS_ARABIC_MATHEMATICAL_alphabetic_Symbols}');
     Expect(1, 126719, '\p{isarabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\p{^isarabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\P{isarabicmathematicalalphabeticsymbols}', "");
@@ -87623,16 +88329,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126720, '\p{^isarabicmathematicalalphabeticsymbols}', "");
     Expect(1, 126720, '\P{isarabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126720, '\P{^isarabicmathematicalalphabeticsymbols}', "");
-    Expect(1, 126719, '\p{__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(0, 126719, '\p{^__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(0, 126719, '\P{__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(1, 126719, '\P{^__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(0, 126720, '\p{__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(1, 126720, '\p{^__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(1, 126720, '\P{__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Expect(0, 126720, '\P{^__Is_ARABIC_MATHEMATICAL_alphabetic_Symbols}', "");
-    Error('\p{_/a/In_ARABIC_mathematical_ALPHABETIC_Symbols}');
-    Error('\P{_/a/In_ARABIC_mathematical_ALPHABETIC_Symbols}');
+    Expect(1, 126719, '\p{_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(0, 126719, '\p{^_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(0, 126719, '\P{_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(1, 126719, '\P{^_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(0, 126720, '\p{_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(1, 126720, '\p{^_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(1, 126720, '\P{_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Expect(0, 126720, '\P{^_	Is_Arabic_Mathematical_Alphabetic_symbols}', "");
+    Error('\p{	:=IN_Arabic_mathematical_Alphabetic_SYMBOLS}');
+    Error('\P{	:=IN_Arabic_mathematical_Alphabetic_SYMBOLS}');
     Expect(1, 126719, '\p{inarabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\p{^inarabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126719, '\P{inarabicmathematicalalphabeticsymbols}', "");
@@ -87641,16 +88347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126720, '\p{^inarabicmathematicalalphabeticsymbols}', "");
     Expect(1, 126720, '\P{inarabicmathematicalalphabeticsymbols}', "");
     Expect(0, 126720, '\P{^inarabicmathematicalalphabeticsymbols}', "");
-    Expect(1, 126719, '\p{ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(0, 126719, '\p{^ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(0, 126719, '\P{ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(1, 126719, '\P{^ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(0, 126720, '\p{ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(1, 126720, '\p{^ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(1, 126720, '\P{ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Expect(0, 126720, '\P{^ _In_Arabic_Mathematical_Alphabetic_Symbols}', "");
-    Error('\p{-:=Arabic_Math}');
-    Error('\P{-:=Arabic_Math}');
+    Expect(1, 126719, '\p{ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126719, '\p{^ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126719, '\P{ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(1, 126719, '\P{^ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126720, '\p{ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(1, 126720, '\p{^ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(1, 126720, '\P{ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Expect(0, 126720, '\P{^ _In_ARABIC_Mathematical_Alphabetic_Symbols}', "");
+    Error('\p{_:=Arabic_Math}');
+    Error('\P{_:=Arabic_Math}');
     Expect(1, 126719, '\p{arabicmath}', "");
     Expect(0, 126719, '\p{^arabicmath}', "");
     Expect(0, 126719, '\P{arabicmath}', "");
@@ -87659,16 +88365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126720, '\p{^arabicmath}', "");
     Expect(1, 126720, '\P{arabicmath}', "");
     Expect(0, 126720, '\P{^arabicmath}', "");
-    Expect(1, 126719, '\p{_-Arabic_Math}', "");
-    Expect(0, 126719, '\p{^_-Arabic_Math}', "");
-    Expect(0, 126719, '\P{_-Arabic_Math}', "");
-    Expect(1, 126719, '\P{^_-Arabic_Math}', "");
-    Expect(0, 126720, '\p{_-Arabic_Math}', "");
-    Expect(1, 126720, '\p{^_-Arabic_Math}', "");
-    Expect(1, 126720, '\P{_-Arabic_Math}', "");
-    Expect(0, 126720, '\P{^_-Arabic_Math}', "");
-    Error('\p{_/a/Is_Arabic_Math}');
-    Error('\P{_/a/Is_Arabic_Math}');
+    Expect(1, 126719, '\p{_Arabic_MATH}', "");
+    Expect(0, 126719, '\p{^_Arabic_MATH}', "");
+    Expect(0, 126719, '\P{_Arabic_MATH}', "");
+    Expect(1, 126719, '\P{^_Arabic_MATH}', "");
+    Expect(0, 126720, '\p{_Arabic_MATH}', "");
+    Expect(1, 126720, '\p{^_Arabic_MATH}', "");
+    Expect(1, 126720, '\P{_Arabic_MATH}', "");
+    Expect(0, 126720, '\P{^_Arabic_MATH}', "");
+    Error('\p{:= IS_Arabic_Math}');
+    Error('\P{:= IS_Arabic_Math}');
     Expect(1, 126719, '\p{isarabicmath}', "");
     Expect(0, 126719, '\p{^isarabicmath}', "");
     Expect(0, 126719, '\P{isarabicmath}', "");
@@ -87677,16 +88383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126720, '\p{^isarabicmath}', "");
     Expect(1, 126720, '\P{isarabicmath}', "");
     Expect(0, 126720, '\P{^isarabicmath}', "");
-    Expect(1, 126719, '\p{-Is_ARABIC_MATH}', "");
-    Expect(0, 126719, '\p{^-Is_ARABIC_MATH}', "");
-    Expect(0, 126719, '\P{-Is_ARABIC_MATH}', "");
-    Expect(1, 126719, '\P{^-Is_ARABIC_MATH}', "");
-    Expect(0, 126720, '\p{-Is_ARABIC_MATH}', "");
-    Expect(1, 126720, '\p{^-Is_ARABIC_MATH}', "");
-    Expect(1, 126720, '\P{-Is_ARABIC_MATH}', "");
-    Expect(0, 126720, '\P{^-Is_ARABIC_MATH}', "");
-    Error('\p{:=	_In_arabic_Math}');
-    Error('\P{:=	_In_arabic_Math}');
+    Expect(1, 126719, '\p{	is_ARABIC_Math}', "");
+    Expect(0, 126719, '\p{^	is_ARABIC_Math}', "");
+    Expect(0, 126719, '\P{	is_ARABIC_Math}', "");
+    Expect(1, 126719, '\P{^	is_ARABIC_Math}', "");
+    Expect(0, 126720, '\p{	is_ARABIC_Math}', "");
+    Expect(1, 126720, '\p{^	is_ARABIC_Math}', "");
+    Expect(1, 126720, '\P{	is_ARABIC_Math}', "");
+    Expect(0, 126720, '\P{^	is_ARABIC_Math}', "");
+    Error('\p{-in_Arabic_math/a/}');
+    Error('\P{-in_Arabic_math/a/}');
     Expect(1, 126719, '\p{inarabicmath}', "");
     Expect(0, 126719, '\p{^inarabicmath}', "");
     Expect(0, 126719, '\P{inarabicmath}', "");
@@ -87695,16 +88401,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126720, '\p{^inarabicmath}', "");
     Expect(1, 126720, '\P{inarabicmath}', "");
     Expect(0, 126720, '\P{^inarabicmath}', "");
-    Expect(1, 126719, '\p{-	IN_arabic_MATH}', "");
-    Expect(0, 126719, '\p{^-	IN_arabic_MATH}', "");
-    Expect(0, 126719, '\P{-	IN_arabic_MATH}', "");
-    Expect(1, 126719, '\P{^-	IN_arabic_MATH}', "");
-    Expect(0, 126720, '\p{-	IN_arabic_MATH}', "");
-    Expect(1, 126720, '\p{^-	IN_arabic_MATH}', "");
-    Expect(1, 126720, '\P{-	IN_arabic_MATH}', "");
-    Expect(0, 126720, '\P{^-	IN_arabic_MATH}', "");
-    Error('\p{_Arabic_PRESENTATION_Forms_A:=}');
-    Error('\P{_Arabic_PRESENTATION_Forms_A:=}');
+    Expect(1, 126719, '\p{ 	IN_Arabic_Math}', "");
+    Expect(0, 126719, '\p{^ 	IN_Arabic_Math}', "");
+    Expect(0, 126719, '\P{ 	IN_Arabic_Math}', "");
+    Expect(1, 126719, '\P{^ 	IN_Arabic_Math}', "");
+    Expect(0, 126720, '\p{ 	IN_Arabic_Math}', "");
+    Expect(1, 126720, '\p{^ 	IN_Arabic_Math}', "");
+    Expect(1, 126720, '\P{ 	IN_Arabic_Math}', "");
+    Expect(0, 126720, '\P{^ 	IN_Arabic_Math}', "");
+    Error('\p{	:=arabic_Presentation_Forms_a}');
+    Error('\P{	:=arabic_Presentation_Forms_a}');
     Expect(1, 65023, '\p{arabicpresentationformsa}', "");
     Expect(0, 65023, '\p{^arabicpresentationformsa}', "");
     Expect(0, 65023, '\P{arabicpresentationformsa}', "");
@@ -87713,16 +88419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65024, '\p{^arabicpresentationformsa}', "");
     Expect(1, 65024, '\P{arabicpresentationformsa}', "");
     Expect(0, 65024, '\P{^arabicpresentationformsa}', "");
-    Expect(1, 65023, '\p{_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65023, '\p{^_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65023, '\P{_Arabic_Presentation_Forms_A}', "");
-    Expect(1, 65023, '\P{^_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65024, '\p{_Arabic_Presentation_Forms_A}', "");
-    Expect(1, 65024, '\p{^_Arabic_Presentation_Forms_A}', "");
-    Expect(1, 65024, '\P{_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65024, '\P{^_Arabic_Presentation_Forms_A}', "");
-    Error('\p{/a/  is_ARABIC_Presentation_FORMS_A}');
-    Error('\P{/a/  is_ARABIC_Presentation_FORMS_A}');
+    Expect(1, 65023, '\p{-	Arabic_Presentation_Forms_A}', "");
+    Expect(0, 65023, '\p{^-	Arabic_Presentation_Forms_A}', "");
+    Expect(0, 65023, '\P{-	Arabic_Presentation_Forms_A}', "");
+    Expect(1, 65023, '\P{^-	Arabic_Presentation_Forms_A}', "");
+    Expect(0, 65024, '\p{-	Arabic_Presentation_Forms_A}', "");
+    Expect(1, 65024, '\p{^-	Arabic_Presentation_Forms_A}', "");
+    Expect(1, 65024, '\P{-	Arabic_Presentation_Forms_A}', "");
+    Expect(0, 65024, '\P{^-	Arabic_Presentation_Forms_A}', "");
+    Error('\p{	-Is_Arabic_Presentation_Forms_a/a/}');
+    Error('\P{	-Is_Arabic_Presentation_Forms_a/a/}');
     Expect(1, 65023, '\p{isarabicpresentationformsa}', "");
     Expect(0, 65023, '\p{^isarabicpresentationformsa}', "");
     Expect(0, 65023, '\P{isarabicpresentationformsa}', "");
@@ -87731,16 +88437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65024, '\p{^isarabicpresentationformsa}', "");
     Expect(1, 65024, '\P{isarabicpresentationformsa}', "");
     Expect(0, 65024, '\P{^isarabicpresentationformsa}', "");
-    Expect(1, 65023, '\p{-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(0, 65023, '\p{^-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(0, 65023, '\P{-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(1, 65023, '\P{^-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(0, 65024, '\p{-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(1, 65024, '\p{^-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(1, 65024, '\P{-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Expect(0, 65024, '\P{^-	IS_Arabic_PRESENTATION_Forms_A}', "");
-    Error('\p{/a/ _In_arabic_presentation_Forms_a}');
-    Error('\P{/a/ _In_arabic_presentation_Forms_a}');
+    Expect(1, 65023, '\p{ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(0, 65023, '\p{^ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(0, 65023, '\P{ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(1, 65023, '\P{^ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(0, 65024, '\p{ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(1, 65024, '\p{^ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(1, 65024, '\P{ _IS_arabic_presentation_FORMS_a}', "");
+    Expect(0, 65024, '\P{^ _IS_arabic_presentation_FORMS_a}', "");
+    Error('\p{-In_arabic_Presentation_FORMS_a/a/}');
+    Error('\P{-In_arabic_Presentation_FORMS_a/a/}');
     Expect(1, 65023, '\p{inarabicpresentationformsa}', "");
     Expect(0, 65023, '\p{^inarabicpresentationformsa}', "");
     Expect(0, 65023, '\P{inarabicpresentationformsa}', "");
@@ -87749,16 +88455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65024, '\p{^inarabicpresentationformsa}', "");
     Expect(1, 65024, '\P{inarabicpresentationformsa}', "");
     Expect(0, 65024, '\P{^inarabicpresentationformsa}', "");
-    Expect(1, 65023, '\p{_in_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65023, '\p{^_in_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65023, '\P{_in_Arabic_Presentation_Forms_A}', "");
-    Expect(1, 65023, '\P{^_in_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65024, '\p{_in_Arabic_Presentation_Forms_A}', "");
-    Expect(1, 65024, '\p{^_in_Arabic_Presentation_Forms_A}', "");
-    Expect(1, 65024, '\P{_in_Arabic_Presentation_Forms_A}', "");
-    Expect(0, 65024, '\P{^_in_Arabic_Presentation_Forms_A}', "");
-    Error('\p{_/a/arabic_PF_A}');
-    Error('\P{_/a/arabic_PF_A}');
+    Expect(1, 65023, '\p{  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(0, 65023, '\p{^  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(0, 65023, '\P{  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(1, 65023, '\P{^  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(0, 65024, '\p{  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(1, 65024, '\p{^  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(1, 65024, '\P{  in_Arabic_Presentation_FORMS_A}', "");
+    Expect(0, 65024, '\P{^  in_Arabic_Presentation_FORMS_A}', "");
+    Error('\p{	ARABIC_pf_A:=}');
+    Error('\P{	ARABIC_pf_A:=}');
     Expect(1, 65023, '\p{arabicpfa}', "");
     Expect(0, 65023, '\p{^arabicpfa}', "");
     Expect(0, 65023, '\P{arabicpfa}', "");
@@ -87767,16 +88473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65024, '\p{^arabicpfa}', "");
     Expect(1, 65024, '\P{arabicpfa}', "");
     Expect(0, 65024, '\P{^arabicpfa}', "");
-    Expect(1, 65023, '\p{  ARABIC_pf_A}', "");
-    Expect(0, 65023, '\p{^  ARABIC_pf_A}', "");
-    Expect(0, 65023, '\P{  ARABIC_pf_A}', "");
-    Expect(1, 65023, '\P{^  ARABIC_pf_A}', "");
-    Expect(0, 65024, '\p{  ARABIC_pf_A}', "");
-    Expect(1, 65024, '\p{^  ARABIC_pf_A}', "");
-    Expect(1, 65024, '\P{  ARABIC_pf_A}', "");
-    Expect(0, 65024, '\P{^  ARABIC_pf_A}', "");
-    Error('\p{/a/	IS_Arabic_PF_A}');
-    Error('\P{/a/	IS_Arabic_PF_A}');
+    Expect(1, 65023, '\p{arabic_PF_A}', "");
+    Expect(0, 65023, '\p{^arabic_PF_A}', "");
+    Expect(0, 65023, '\P{arabic_PF_A}', "");
+    Expect(1, 65023, '\P{^arabic_PF_A}', "");
+    Expect(0, 65024, '\p{arabic_PF_A}', "");
+    Expect(1, 65024, '\p{^arabic_PF_A}', "");
+    Expect(1, 65024, '\P{arabic_PF_A}', "");
+    Expect(0, 65024, '\P{^arabic_PF_A}', "");
+    Error('\p{/a/--Is_ARABIC_PF_A}');
+    Error('\P{/a/--Is_ARABIC_PF_A}');
     Expect(1, 65023, '\p{isarabicpfa}', "");
     Expect(0, 65023, '\p{^isarabicpfa}', "");
     Expect(0, 65023, '\P{isarabicpfa}', "");
@@ -87785,16 +88491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65024, '\p{^isarabicpfa}', "");
     Expect(1, 65024, '\P{isarabicpfa}', "");
     Expect(0, 65024, '\P{^isarabicpfa}', "");
-    Expect(1, 65023, '\p{	_Is_ARABIC_pf_A}', "");
-    Expect(0, 65023, '\p{^	_Is_ARABIC_pf_A}', "");
-    Expect(0, 65023, '\P{	_Is_ARABIC_pf_A}', "");
-    Expect(1, 65023, '\P{^	_Is_ARABIC_pf_A}', "");
-    Expect(0, 65024, '\p{	_Is_ARABIC_pf_A}', "");
-    Expect(1, 65024, '\p{^	_Is_ARABIC_pf_A}', "");
-    Expect(1, 65024, '\P{	_Is_ARABIC_pf_A}', "");
-    Expect(0, 65024, '\P{^	_Is_ARABIC_pf_A}', "");
-    Error('\p{-:=IN_arabic_PF_a}');
-    Error('\P{-:=IN_arabic_PF_a}');
+    Expect(1, 65023, '\p{ 	Is_ARABIC_PF_A}', "");
+    Expect(0, 65023, '\p{^ 	Is_ARABIC_PF_A}', "");
+    Expect(0, 65023, '\P{ 	Is_ARABIC_PF_A}', "");
+    Expect(1, 65023, '\P{^ 	Is_ARABIC_PF_A}', "");
+    Expect(0, 65024, '\p{ 	Is_ARABIC_PF_A}', "");
+    Expect(1, 65024, '\p{^ 	Is_ARABIC_PF_A}', "");
+    Expect(1, 65024, '\P{ 	Is_ARABIC_PF_A}', "");
+    Expect(0, 65024, '\P{^ 	Is_ARABIC_PF_A}', "");
+    Error('\p{/a/  IN_arabic_PF_A}');
+    Error('\P{/a/  IN_arabic_PF_A}');
     Expect(1, 65023, '\p{inarabicpfa}', "");
     Expect(0, 65023, '\p{^inarabicpfa}', "");
     Expect(0, 65023, '\P{inarabicpfa}', "");
@@ -87803,16 +88509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65024, '\p{^inarabicpfa}', "");
     Expect(1, 65024, '\P{inarabicpfa}', "");
     Expect(0, 65024, '\P{^inarabicpfa}', "");
-    Expect(1, 65023, '\p{__IN_Arabic_PF_A}', "");
-    Expect(0, 65023, '\p{^__IN_Arabic_PF_A}', "");
-    Expect(0, 65023, '\P{__IN_Arabic_PF_A}', "");
-    Expect(1, 65023, '\P{^__IN_Arabic_PF_A}', "");
-    Expect(0, 65024, '\p{__IN_Arabic_PF_A}', "");
-    Expect(1, 65024, '\p{^__IN_Arabic_PF_A}', "");
-    Expect(1, 65024, '\P{__IN_Arabic_PF_A}', "");
-    Expect(0, 65024, '\P{^__IN_Arabic_PF_A}', "");
-    Error('\p{--Arabic_Presentation_Forms_B:=}');
-    Error('\P{--Arabic_Presentation_Forms_B:=}');
+    Expect(1, 65023, '\p{__in_Arabic_PF_A}', "");
+    Expect(0, 65023, '\p{^__in_Arabic_PF_A}', "");
+    Expect(0, 65023, '\P{__in_Arabic_PF_A}', "");
+    Expect(1, 65023, '\P{^__in_Arabic_PF_A}', "");
+    Expect(0, 65024, '\p{__in_Arabic_PF_A}', "");
+    Expect(1, 65024, '\p{^__in_Arabic_PF_A}', "");
+    Expect(1, 65024, '\P{__in_Arabic_PF_A}', "");
+    Expect(0, 65024, '\P{^__in_Arabic_PF_A}', "");
+    Error('\p{ arabic_Presentation_Forms_B/a/}');
+    Error('\P{ arabic_Presentation_Forms_B/a/}');
     Expect(1, 65279, '\p{arabicpresentationformsb}', "");
     Expect(0, 65279, '\p{^arabicpresentationformsb}', "");
     Expect(0, 65279, '\P{arabicpresentationformsb}', "");
@@ -87821,16 +88527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65280, '\p{^arabicpresentationformsb}', "");
     Expect(1, 65280, '\P{arabicpresentationformsb}', "");
     Expect(0, 65280, '\P{^arabicpresentationformsb}', "");
-    Expect(1, 65279, '\p{-Arabic_PRESENTATION_forms_b}', "");
-    Expect(0, 65279, '\p{^-Arabic_PRESENTATION_forms_b}', "");
-    Expect(0, 65279, '\P{-Arabic_PRESENTATION_forms_b}', "");
-    Expect(1, 65279, '\P{^-Arabic_PRESENTATION_forms_b}', "");
-    Expect(0, 65280, '\p{-Arabic_PRESENTATION_forms_b}', "");
-    Expect(1, 65280, '\p{^-Arabic_PRESENTATION_forms_b}', "");
-    Expect(1, 65280, '\P{-Arabic_PRESENTATION_forms_b}', "");
-    Expect(0, 65280, '\P{^-Arabic_PRESENTATION_forms_b}', "");
-    Error('\p{_/a/Is_Arabic_Presentation_FORMS_B}');
-    Error('\P{_/a/Is_Arabic_Presentation_FORMS_B}');
+    Expect(1, 65279, '\p{_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(0, 65279, '\p{^_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(0, 65279, '\P{_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(1, 65279, '\P{^_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(0, 65280, '\p{_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(1, 65280, '\p{^_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(1, 65280, '\P{_ Arabic_PRESENTATION_forms_b}', "");
+    Expect(0, 65280, '\P{^_ Arabic_PRESENTATION_forms_b}', "");
+    Error('\p{-/a/Is_ARABIC_Presentation_Forms_B}');
+    Error('\P{-/a/Is_ARABIC_Presentation_Forms_B}');
     Expect(1, 65279, '\p{isarabicpresentationformsb}', "");
     Expect(0, 65279, '\p{^isarabicpresentationformsb}', "");
     Expect(0, 65279, '\P{isarabicpresentationformsb}', "");
@@ -87839,16 +88545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65280, '\p{^isarabicpresentationformsb}', "");
     Expect(1, 65280, '\P{isarabicpresentationformsb}', "");
     Expect(0, 65280, '\P{^isarabicpresentationformsb}', "");
-    Expect(1, 65279, '\p{-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(0, 65279, '\p{^-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(0, 65279, '\P{-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(1, 65279, '\P{^-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(0, 65280, '\p{-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(1, 65280, '\p{^-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(1, 65280, '\P{-	is_Arabic_Presentation_Forms_B}', "");
-    Expect(0, 65280, '\P{^-	is_Arabic_Presentation_Forms_B}', "");
-    Error('\p{-IN_Arabic_presentation_FORMS_B/a/}');
-    Error('\P{-IN_Arabic_presentation_FORMS_B/a/}');
+    Expect(1, 65279, '\p{_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(0, 65279, '\p{^_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(0, 65279, '\P{_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(1, 65279, '\P{^_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(0, 65280, '\p{_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(1, 65280, '\p{^_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(1, 65280, '\P{_ Is_arabic_Presentation_Forms_B}', "");
+    Expect(0, 65280, '\P{^_ Is_arabic_Presentation_Forms_B}', "");
+    Error('\p{ :=IN_arabic_presentation_Forms_B}');
+    Error('\P{ :=IN_arabic_presentation_Forms_B}');
     Expect(1, 65279, '\p{inarabicpresentationformsb}', "");
     Expect(0, 65279, '\p{^inarabicpresentationformsb}', "");
     Expect(0, 65279, '\P{inarabicpresentationformsb}', "");
@@ -87857,16 +88563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65280, '\p{^inarabicpresentationformsb}', "");
     Expect(1, 65280, '\P{inarabicpresentationformsb}', "");
     Expect(0, 65280, '\P{^inarabicpresentationformsb}', "");
-    Expect(1, 65279, '\p{_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(0, 65279, '\p{^_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(0, 65279, '\P{_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(1, 65279, '\P{^_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(0, 65280, '\p{_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(1, 65280, '\p{^_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(1, 65280, '\P{_ In_Arabic_Presentation_FORMS_B}', "");
-    Expect(0, 65280, '\P{^_ In_Arabic_Presentation_FORMS_B}', "");
-    Error('\p{_-ARABIC_PF_b/a/}');
-    Error('\P{_-ARABIC_PF_b/a/}');
+    Expect(1, 65279, '\p{	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(0, 65279, '\p{^	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(0, 65279, '\P{	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(1, 65279, '\P{^	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(0, 65280, '\p{	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(1, 65280, '\p{^	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(1, 65280, '\P{	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Expect(0, 65280, '\P{^	In_Arabic_PRESENTATION_FORMS_B}', "");
+    Error('\p{	:=Arabic_PF_B}');
+    Error('\P{	:=Arabic_PF_B}');
     Expect(1, 65279, '\p{arabicpfb}', "");
     Expect(0, 65279, '\p{^arabicpfb}', "");
     Expect(0, 65279, '\P{arabicpfb}', "");
@@ -87875,16 +88581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65280, '\p{^arabicpfb}', "");
     Expect(1, 65280, '\P{arabicpfb}', "");
     Expect(0, 65280, '\P{^arabicpfb}', "");
-    Expect(1, 65279, '\p{_Arabic_PF_B}', "");
-    Expect(0, 65279, '\p{^_Arabic_PF_B}', "");
-    Expect(0, 65279, '\P{_Arabic_PF_B}', "");
-    Expect(1, 65279, '\P{^_Arabic_PF_B}', "");
-    Expect(0, 65280, '\p{_Arabic_PF_B}', "");
-    Expect(1, 65280, '\p{^_Arabic_PF_B}', "");
-    Expect(1, 65280, '\P{_Arabic_PF_B}', "");
-    Expect(0, 65280, '\P{^_Arabic_PF_B}', "");
-    Error('\p{/a/	_Is_Arabic_pf_B}');
-    Error('\P{/a/	_Is_Arabic_pf_B}');
+    Expect(1, 65279, '\p{	ARABIC_pf_b}', "");
+    Expect(0, 65279, '\p{^	ARABIC_pf_b}', "");
+    Expect(0, 65279, '\P{	ARABIC_pf_b}', "");
+    Expect(1, 65279, '\P{^	ARABIC_pf_b}', "");
+    Expect(0, 65280, '\p{	ARABIC_pf_b}', "");
+    Expect(1, 65280, '\p{^	ARABIC_pf_b}', "");
+    Expect(1, 65280, '\P{	ARABIC_pf_b}', "");
+    Expect(0, 65280, '\P{^	ARABIC_pf_b}', "");
+    Error('\p{:=-_Is_Arabic_PF_B}');
+    Error('\P{:=-_Is_Arabic_PF_B}');
     Expect(1, 65279, '\p{isarabicpfb}', "");
     Expect(0, 65279, '\p{^isarabicpfb}', "");
     Expect(0, 65279, '\P{isarabicpfb}', "");
@@ -87893,16 +88599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65280, '\p{^isarabicpfb}', "");
     Expect(1, 65280, '\P{isarabicpfb}', "");
     Expect(0, 65280, '\P{^isarabicpfb}', "");
-    Expect(1, 65279, '\p{-	IS_arabic_PF_B}', "");
-    Expect(0, 65279, '\p{^-	IS_arabic_PF_B}', "");
-    Expect(0, 65279, '\P{-	IS_arabic_PF_B}', "");
-    Expect(1, 65279, '\P{^-	IS_arabic_PF_B}', "");
-    Expect(0, 65280, '\p{-	IS_arabic_PF_B}', "");
-    Expect(1, 65280, '\p{^-	IS_arabic_PF_B}', "");
-    Expect(1, 65280, '\P{-	IS_arabic_PF_B}', "");
-    Expect(0, 65280, '\P{^-	IS_arabic_PF_B}', "");
-    Error('\p{/a/_ IN_ARABIC_PF_B}');
-    Error('\P{/a/_ IN_ARABIC_PF_B}');
+    Expect(1, 65279, '\p{- Is_ARABIC_PF_B}', "");
+    Expect(0, 65279, '\p{^- Is_ARABIC_PF_B}', "");
+    Expect(0, 65279, '\P{- Is_ARABIC_PF_B}', "");
+    Expect(1, 65279, '\P{^- Is_ARABIC_PF_B}', "");
+    Expect(0, 65280, '\p{- Is_ARABIC_PF_B}', "");
+    Expect(1, 65280, '\p{^- Is_ARABIC_PF_B}', "");
+    Expect(1, 65280, '\P{- Is_ARABIC_PF_B}', "");
+    Expect(0, 65280, '\P{^- Is_ARABIC_PF_B}', "");
+    Error('\p{:=_ In_Arabic_PF_b}');
+    Error('\P{:=_ In_Arabic_PF_b}');
     Expect(1, 65279, '\p{inarabicpfb}', "");
     Expect(0, 65279, '\p{^inarabicpfb}', "");
     Expect(0, 65279, '\P{inarabicpfb}', "");
@@ -87911,16 +88617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65280, '\p{^inarabicpfb}', "");
     Expect(1, 65280, '\P{inarabicpfb}', "");
     Expect(0, 65280, '\P{^inarabicpfb}', "");
-    Expect(1, 65279, '\p{-In_arabic_PF_b}', "");
-    Expect(0, 65279, '\p{^-In_arabic_PF_b}', "");
-    Expect(0, 65279, '\P{-In_arabic_PF_b}', "");
-    Expect(1, 65279, '\P{^-In_arabic_PF_b}', "");
-    Expect(0, 65280, '\p{-In_arabic_PF_b}', "");
-    Expect(1, 65280, '\p{^-In_arabic_PF_b}', "");
-    Expect(1, 65280, '\P{-In_arabic_PF_b}', "");
-    Expect(0, 65280, '\P{^-In_arabic_PF_b}', "");
-    Error('\p{ :=ARABIC_supplement}');
-    Error('\P{ :=ARABIC_supplement}');
+    Expect(1, 65279, '\p{ In_Arabic_PF_b}', "");
+    Expect(0, 65279, '\p{^ In_Arabic_PF_b}', "");
+    Expect(0, 65279, '\P{ In_Arabic_PF_b}', "");
+    Expect(1, 65279, '\P{^ In_Arabic_PF_b}', "");
+    Expect(0, 65280, '\p{ In_Arabic_PF_b}', "");
+    Expect(1, 65280, '\p{^ In_Arabic_PF_b}', "");
+    Expect(1, 65280, '\P{ In_Arabic_PF_b}', "");
+    Expect(0, 65280, '\P{^ In_Arabic_PF_b}', "");
+    Error('\p{- arabic_SUPPLEMENT:=}');
+    Error('\P{- arabic_SUPPLEMENT:=}');
     Expect(1, 1919, '\p{arabicsupplement}', "");
     Expect(0, 1919, '\p{^arabicsupplement}', "");
     Expect(0, 1919, '\P{arabicsupplement}', "");
@@ -87929,16 +88635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1920, '\p{^arabicsupplement}', "");
     Expect(1, 1920, '\P{arabicsupplement}', "");
     Expect(0, 1920, '\P{^arabicsupplement}', "");
-    Expect(1, 1919, '\p{	Arabic_supplement}', "");
-    Expect(0, 1919, '\p{^	Arabic_supplement}', "");
-    Expect(0, 1919, '\P{	Arabic_supplement}', "");
-    Expect(1, 1919, '\P{^	Arabic_supplement}', "");
-    Expect(0, 1920, '\p{	Arabic_supplement}', "");
-    Expect(1, 1920, '\p{^	Arabic_supplement}', "");
-    Expect(1, 1920, '\P{	Arabic_supplement}', "");
-    Expect(0, 1920, '\P{^	Arabic_supplement}', "");
-    Error('\p{/a/-is_ARABIC_SUPPLEMENT}');
-    Error('\P{/a/-is_ARABIC_SUPPLEMENT}');
+    Expect(1, 1919, '\p{_-ARABIC_Supplement}', "");
+    Expect(0, 1919, '\p{^_-ARABIC_Supplement}', "");
+    Expect(0, 1919, '\P{_-ARABIC_Supplement}', "");
+    Expect(1, 1919, '\P{^_-ARABIC_Supplement}', "");
+    Expect(0, 1920, '\p{_-ARABIC_Supplement}', "");
+    Expect(1, 1920, '\p{^_-ARABIC_Supplement}', "");
+    Expect(1, 1920, '\P{_-ARABIC_Supplement}', "");
+    Expect(0, 1920, '\P{^_-ARABIC_Supplement}', "");
+    Error('\p{/a/- Is_Arabic_supplement}');
+    Error('\P{/a/- Is_Arabic_supplement}');
     Expect(1, 1919, '\p{isarabicsupplement}', "");
     Expect(0, 1919, '\p{^isarabicsupplement}', "");
     Expect(0, 1919, '\P{isarabicsupplement}', "");
@@ -87947,16 +88653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1920, '\p{^isarabicsupplement}', "");
     Expect(1, 1920, '\P{isarabicsupplement}', "");
     Expect(0, 1920, '\P{^isarabicsupplement}', "");
-    Expect(1, 1919, '\p{ 	Is_ARABIC_Supplement}', "");
-    Expect(0, 1919, '\p{^ 	Is_ARABIC_Supplement}', "");
-    Expect(0, 1919, '\P{ 	Is_ARABIC_Supplement}', "");
-    Expect(1, 1919, '\P{^ 	Is_ARABIC_Supplement}', "");
-    Expect(0, 1920, '\p{ 	Is_ARABIC_Supplement}', "");
-    Expect(1, 1920, '\p{^ 	Is_ARABIC_Supplement}', "");
-    Expect(1, 1920, '\P{ 	Is_ARABIC_Supplement}', "");
-    Expect(0, 1920, '\P{^ 	Is_ARABIC_Supplement}', "");
-    Error('\p{/a/-IN_Arabic_Supplement}');
-    Error('\P{/a/-IN_Arabic_Supplement}');
+    Expect(1, 1919, '\p{	-is_Arabic_Supplement}', "");
+    Expect(0, 1919, '\p{^	-is_Arabic_Supplement}', "");
+    Expect(0, 1919, '\P{	-is_Arabic_Supplement}', "");
+    Expect(1, 1919, '\P{^	-is_Arabic_Supplement}', "");
+    Expect(0, 1920, '\p{	-is_Arabic_Supplement}', "");
+    Expect(1, 1920, '\p{^	-is_Arabic_Supplement}', "");
+    Expect(1, 1920, '\P{	-is_Arabic_Supplement}', "");
+    Expect(0, 1920, '\P{^	-is_Arabic_Supplement}', "");
+    Error('\p{ :=In_Arabic_Supplement}');
+    Error('\P{ :=In_Arabic_Supplement}');
     Expect(1, 1919, '\p{inarabicsupplement}', "");
     Expect(0, 1919, '\p{^inarabicsupplement}', "");
     Expect(0, 1919, '\P{inarabicsupplement}', "");
@@ -87965,16 +88671,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1920, '\p{^inarabicsupplement}', "");
     Expect(1, 1920, '\P{inarabicsupplement}', "");
     Expect(0, 1920, '\P{^inarabicsupplement}', "");
-    Expect(1, 1919, '\p{_	in_arabic_supplement}', "");
-    Expect(0, 1919, '\p{^_	in_arabic_supplement}', "");
-    Expect(0, 1919, '\P{_	in_arabic_supplement}', "");
-    Expect(1, 1919, '\P{^_	in_arabic_supplement}', "");
-    Expect(0, 1920, '\p{_	in_arabic_supplement}', "");
-    Expect(1, 1920, '\p{^_	in_arabic_supplement}', "");
-    Expect(1, 1920, '\P{_	in_arabic_supplement}', "");
-    Expect(0, 1920, '\P{^_	in_arabic_supplement}', "");
-    Error('\p{/a/-_Arabic_sup}');
-    Error('\P{/a/-_Arabic_sup}');
+    Expect(1, 1919, '\p{ In_arabic_Supplement}', "");
+    Expect(0, 1919, '\p{^ In_arabic_Supplement}', "");
+    Expect(0, 1919, '\P{ In_arabic_Supplement}', "");
+    Expect(1, 1919, '\P{^ In_arabic_Supplement}', "");
+    Expect(0, 1920, '\p{ In_arabic_Supplement}', "");
+    Expect(1, 1920, '\p{^ In_arabic_Supplement}', "");
+    Expect(1, 1920, '\P{ In_arabic_Supplement}', "");
+    Expect(0, 1920, '\P{^ In_arabic_Supplement}', "");
+    Error('\p{_/a/Arabic_SUP}');
+    Error('\P{_/a/Arabic_SUP}');
     Expect(1, 1919, '\p{arabicsup}', "");
     Expect(0, 1919, '\p{^arabicsup}', "");
     Expect(0, 1919, '\P{arabicsup}', "");
@@ -87983,16 +88689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1920, '\p{^arabicsup}', "");
     Expect(1, 1920, '\P{arabicsup}', "");
     Expect(0, 1920, '\P{^arabicsup}', "");
-    Expect(1, 1919, '\p{-	Arabic_SUP}', "");
-    Expect(0, 1919, '\p{^-	Arabic_SUP}', "");
-    Expect(0, 1919, '\P{-	Arabic_SUP}', "");
-    Expect(1, 1919, '\P{^-	Arabic_SUP}', "");
-    Expect(0, 1920, '\p{-	Arabic_SUP}', "");
-    Expect(1, 1920, '\p{^-	Arabic_SUP}', "");
-    Expect(1, 1920, '\P{-	Arabic_SUP}', "");
-    Expect(0, 1920, '\P{^-	Arabic_SUP}', "");
-    Error('\p{	-IS_ARABIC_Sup/a/}');
-    Error('\P{	-IS_ARABIC_Sup/a/}');
+    Expect(1, 1919, '\p{_ARABIC_sup}', "");
+    Expect(0, 1919, '\p{^_ARABIC_sup}', "");
+    Expect(0, 1919, '\P{_ARABIC_sup}', "");
+    Expect(1, 1919, '\P{^_ARABIC_sup}', "");
+    Expect(0, 1920, '\p{_ARABIC_sup}', "");
+    Expect(1, 1920, '\p{^_ARABIC_sup}', "");
+    Expect(1, 1920, '\P{_ARABIC_sup}', "");
+    Expect(0, 1920, '\P{^_ARABIC_sup}', "");
+    Error('\p{/a/_	IS_Arabic_SUP}');
+    Error('\P{/a/_	IS_Arabic_SUP}');
     Expect(1, 1919, '\p{isarabicsup}', "");
     Expect(0, 1919, '\p{^isarabicsup}', "");
     Expect(0, 1919, '\P{isarabicsup}', "");
@@ -88001,16 +88707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1920, '\p{^isarabicsup}', "");
     Expect(1, 1920, '\P{isarabicsup}', "");
     Expect(0, 1920, '\P{^isarabicsup}', "");
-    Expect(1, 1919, '\p{	Is_arabic_sup}', "");
-    Expect(0, 1919, '\p{^	Is_arabic_sup}', "");
-    Expect(0, 1919, '\P{	Is_arabic_sup}', "");
-    Expect(1, 1919, '\P{^	Is_arabic_sup}', "");
-    Expect(0, 1920, '\p{	Is_arabic_sup}', "");
-    Expect(1, 1920, '\p{^	Is_arabic_sup}', "");
-    Expect(1, 1920, '\P{	Is_arabic_sup}', "");
-    Expect(0, 1920, '\P{^	Is_arabic_sup}', "");
-    Error('\p{:=_	In_arabic_SUP}');
-    Error('\P{:=_	In_arabic_SUP}');
+    Expect(1, 1919, '\p{	IS_Arabic_SUP}', "");
+    Expect(0, 1919, '\p{^	IS_Arabic_SUP}', "");
+    Expect(0, 1919, '\P{	IS_Arabic_SUP}', "");
+    Expect(1, 1919, '\P{^	IS_Arabic_SUP}', "");
+    Expect(0, 1920, '\p{	IS_Arabic_SUP}', "");
+    Expect(1, 1920, '\p{^	IS_Arabic_SUP}', "");
+    Expect(1, 1920, '\P{	IS_Arabic_SUP}', "");
+    Expect(0, 1920, '\P{^	IS_Arabic_SUP}', "");
+    Error('\p{_/a/IN_arabic_SUP}');
+    Error('\P{_/a/IN_arabic_SUP}');
     Expect(1, 1919, '\p{inarabicsup}', "");
     Expect(0, 1919, '\p{^inarabicsup}', "");
     Expect(0, 1919, '\P{inarabicsup}', "");
@@ -88019,16 +88725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1920, '\p{^inarabicsup}', "");
     Expect(1, 1920, '\P{inarabicsup}', "");
     Expect(0, 1920, '\P{^inarabicsup}', "");
-    Expect(1, 1919, '\p{- IN_ARABIC_sup}', "");
-    Expect(0, 1919, '\p{^- IN_ARABIC_sup}', "");
-    Expect(0, 1919, '\P{- IN_ARABIC_sup}', "");
-    Expect(1, 1919, '\P{^- IN_ARABIC_sup}', "");
-    Expect(0, 1920, '\p{- IN_ARABIC_sup}', "");
-    Expect(1, 1920, '\p{^- IN_ARABIC_sup}', "");
-    Expect(1, 1920, '\P{- IN_ARABIC_sup}', "");
-    Expect(0, 1920, '\P{^- IN_ARABIC_sup}', "");
-    Error('\p{_/a/Armenian}');
-    Error('\P{_/a/Armenian}');
+    Expect(1, 1919, '\p{_-In_arabic_Sup}', "");
+    Expect(0, 1919, '\p{^_-In_arabic_Sup}', "");
+    Expect(0, 1919, '\P{_-In_arabic_Sup}', "");
+    Expect(1, 1919, '\P{^_-In_arabic_Sup}', "");
+    Expect(0, 1920, '\p{_-In_arabic_Sup}', "");
+    Expect(1, 1920, '\p{^_-In_arabic_Sup}', "");
+    Expect(1, 1920, '\P{_-In_arabic_Sup}', "");
+    Expect(0, 1920, '\P{^_-In_arabic_Sup}', "");
+    Error('\p{	Armenian/a/}');
+    Error('\P{	Armenian/a/}');
     Expect(1, 64279, '\p{armenian}', "");
     Expect(0, 64279, '\p{^armenian}', "");
     Expect(0, 64279, '\P{armenian}', "");
@@ -88037,16 +88743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64280, '\p{^armenian}', "");
     Expect(1, 64280, '\P{armenian}', "");
     Expect(0, 64280, '\P{^armenian}', "");
-    Expect(1, 64279, '\p{ 	Armenian}', "");
-    Expect(0, 64279, '\p{^ 	Armenian}', "");
-    Expect(0, 64279, '\P{ 	Armenian}', "");
-    Expect(1, 64279, '\P{^ 	Armenian}', "");
-    Expect(0, 64280, '\p{ 	Armenian}', "");
-    Expect(1, 64280, '\p{^ 	Armenian}', "");
-    Expect(1, 64280, '\P{ 	Armenian}', "");
-    Expect(0, 64280, '\P{^ 	Armenian}', "");
-    Error('\p{:=	-Is_Armenian}');
-    Error('\P{:=	-Is_Armenian}');
+    Expect(1, 64279, '\p{ Armenian}', "");
+    Expect(0, 64279, '\p{^ Armenian}', "");
+    Expect(0, 64279, '\P{ Armenian}', "");
+    Expect(1, 64279, '\P{^ Armenian}', "");
+    Expect(0, 64280, '\p{ Armenian}', "");
+    Expect(1, 64280, '\p{^ Armenian}', "");
+    Expect(1, 64280, '\P{ Armenian}', "");
+    Expect(0, 64280, '\P{^ Armenian}', "");
+    Error('\p{--Is_Armenian:=}');
+    Error('\P{--Is_Armenian:=}');
     Expect(1, 64279, '\p{isarmenian}', "");
     Expect(0, 64279, '\p{^isarmenian}', "");
     Expect(0, 64279, '\P{isarmenian}', "");
@@ -88055,16 +88761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64280, '\p{^isarmenian}', "");
     Expect(1, 64280, '\P{isarmenian}', "");
     Expect(0, 64280, '\P{^isarmenian}', "");
-    Expect(1, 64279, '\p{-is_Armenian}', "");
-    Expect(0, 64279, '\p{^-is_Armenian}', "");
-    Expect(0, 64279, '\P{-is_Armenian}', "");
-    Expect(1, 64279, '\P{^-is_Armenian}', "");
-    Expect(0, 64280, '\p{-is_Armenian}', "");
-    Expect(1, 64280, '\p{^-is_Armenian}', "");
-    Expect(1, 64280, '\P{-is_Armenian}', "");
-    Expect(0, 64280, '\P{^-is_Armenian}', "");
-    Error('\p{:= armn}');
-    Error('\P{:= armn}');
+    Expect(1, 64279, '\p{-_Is_Armenian}', "");
+    Expect(0, 64279, '\p{^-_Is_Armenian}', "");
+    Expect(0, 64279, '\P{-_Is_Armenian}', "");
+    Expect(1, 64279, '\P{^-_Is_Armenian}', "");
+    Expect(0, 64280, '\p{-_Is_Armenian}', "");
+    Expect(1, 64280, '\p{^-_Is_Armenian}', "");
+    Expect(1, 64280, '\P{-_Is_Armenian}', "");
+    Expect(0, 64280, '\P{^-_Is_Armenian}', "");
+    Error('\p{-Armn/a/}');
+    Error('\P{-Armn/a/}');
     Expect(1, 64279, '\p{armn}', "");
     Expect(0, 64279, '\p{^armn}', "");
     Expect(0, 64279, '\P{armn}', "");
@@ -88073,16 +88779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64280, '\p{^armn}', "");
     Expect(1, 64280, '\P{armn}', "");
     Expect(0, 64280, '\P{^armn}', "");
-    Expect(1, 64279, '\p{--ARMN}', "");
-    Expect(0, 64279, '\p{^--ARMN}', "");
-    Expect(0, 64279, '\P{--ARMN}', "");
-    Expect(1, 64279, '\P{^--ARMN}', "");
-    Expect(0, 64280, '\p{--ARMN}', "");
-    Expect(1, 64280, '\p{^--ARMN}', "");
-    Expect(1, 64280, '\P{--ARMN}', "");
-    Expect(0, 64280, '\P{^--ARMN}', "");
-    Error('\p{:=_is_armn}');
-    Error('\P{:=_is_armn}');
+    Expect(1, 64279, '\p{ armn}', "");
+    Expect(0, 64279, '\p{^ armn}', "");
+    Expect(0, 64279, '\P{ armn}', "");
+    Expect(1, 64279, '\P{^ armn}', "");
+    Expect(0, 64280, '\p{ armn}', "");
+    Expect(1, 64280, '\p{^ armn}', "");
+    Expect(1, 64280, '\P{ armn}', "");
+    Expect(0, 64280, '\P{^ armn}', "");
+    Error('\p{-is_Armn:=}');
+    Error('\P{-is_Armn:=}');
     Expect(1, 64279, '\p{isarmn}', "");
     Expect(0, 64279, '\p{^isarmn}', "");
     Expect(0, 64279, '\P{isarmn}', "");
@@ -88091,16 +88797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64280, '\p{^isarmn}', "");
     Expect(1, 64280, '\P{isarmn}', "");
     Expect(0, 64280, '\P{^isarmn}', "");
-    Expect(1, 64279, '\p{-_Is_Armn}', "");
-    Expect(0, 64279, '\p{^-_Is_Armn}', "");
-    Expect(0, 64279, '\P{-_Is_Armn}', "");
-    Expect(1, 64279, '\P{^-_Is_Armn}', "");
-    Expect(0, 64280, '\p{-_Is_Armn}', "");
-    Expect(1, 64280, '\p{^-_Is_Armn}', "");
-    Expect(1, 64280, '\P{-_Is_Armn}', "");
-    Expect(0, 64280, '\P{^-_Is_Armn}', "");
-    Error('\p{ Arrows:=}');
-    Error('\P{ Arrows:=}');
+    Expect(1, 64279, '\p{	 is_Armn}', "");
+    Expect(0, 64279, '\p{^	 is_Armn}', "");
+    Expect(0, 64279, '\P{	 is_Armn}', "");
+    Expect(1, 64279, '\P{^	 is_Armn}', "");
+    Expect(0, 64280, '\p{	 is_Armn}', "");
+    Expect(1, 64280, '\p{^	 is_Armn}', "");
+    Expect(1, 64280, '\P{	 is_Armn}', "");
+    Expect(0, 64280, '\P{^	 is_Armn}', "");
+    Error('\p{	:=ARROWS}');
+    Error('\P{	:=ARROWS}');
     Expect(1, 8703, '\p{arrows}', "");
     Expect(0, 8703, '\p{^arrows}', "");
     Expect(0, 8703, '\P{arrows}', "");
@@ -88109,16 +88815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8704, '\p{^arrows}', "");
     Expect(1, 8704, '\P{arrows}', "");
     Expect(0, 8704, '\P{^arrows}', "");
-    Expect(1, 8703, '\p{--Arrows}', "");
-    Expect(0, 8703, '\p{^--Arrows}', "");
-    Expect(0, 8703, '\P{--Arrows}', "");
-    Expect(1, 8703, '\P{^--Arrows}', "");
-    Expect(0, 8704, '\p{--Arrows}', "");
-    Expect(1, 8704, '\p{^--Arrows}', "");
-    Expect(1, 8704, '\P{--Arrows}', "");
-    Expect(0, 8704, '\P{^--Arrows}', "");
-    Error('\p{	-Is_ARROWS:=}');
-    Error('\P{	-Is_ARROWS:=}');
+    Expect(1, 8703, '\p{	 Arrows}', "");
+    Expect(0, 8703, '\p{^	 Arrows}', "");
+    Expect(0, 8703, '\P{	 Arrows}', "");
+    Expect(1, 8703, '\P{^	 Arrows}', "");
+    Expect(0, 8704, '\p{	 Arrows}', "");
+    Expect(1, 8704, '\p{^	 Arrows}', "");
+    Expect(1, 8704, '\P{	 Arrows}', "");
+    Expect(0, 8704, '\P{^	 Arrows}', "");
+    Error('\p{--Is_ARROWS:=}');
+    Error('\P{--Is_ARROWS:=}');
     Expect(1, 8703, '\p{isarrows}', "");
     Expect(0, 8703, '\p{^isarrows}', "");
     Expect(0, 8703, '\P{isarrows}', "");
@@ -88127,16 +88833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8704, '\p{^isarrows}', "");
     Expect(1, 8704, '\P{isarrows}', "");
     Expect(0, 8704, '\P{^isarrows}', "");
-    Expect(1, 8703, '\p{--is_ARROWS}', "");
-    Expect(0, 8703, '\p{^--is_ARROWS}', "");
-    Expect(0, 8703, '\P{--is_ARROWS}', "");
-    Expect(1, 8703, '\P{^--is_ARROWS}', "");
-    Expect(0, 8704, '\p{--is_ARROWS}', "");
-    Expect(1, 8704, '\p{^--is_ARROWS}', "");
-    Expect(1, 8704, '\P{--is_ARROWS}', "");
-    Expect(0, 8704, '\P{^--is_ARROWS}', "");
-    Error('\p{/a/	In_Arrows}');
-    Error('\P{/a/	In_Arrows}');
+    Expect(1, 8703, '\p{	-Is_arrows}', "");
+    Expect(0, 8703, '\p{^	-Is_arrows}', "");
+    Expect(0, 8703, '\P{	-Is_arrows}', "");
+    Expect(1, 8703, '\P{^	-Is_arrows}', "");
+    Expect(0, 8704, '\p{	-Is_arrows}', "");
+    Expect(1, 8704, '\p{^	-Is_arrows}', "");
+    Expect(1, 8704, '\P{	-Is_arrows}', "");
+    Expect(0, 8704, '\P{^	-Is_arrows}', "");
+    Error('\p{	/a/In_ARROWS}');
+    Error('\P{	/a/In_ARROWS}');
     Expect(1, 8703, '\p{inarrows}', "");
     Expect(0, 8703, '\p{^inarrows}', "");
     Expect(0, 8703, '\P{inarrows}', "");
@@ -88145,16 +88851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8704, '\p{^inarrows}', "");
     Expect(1, 8704, '\P{inarrows}', "");
     Expect(0, 8704, '\P{^inarrows}', "");
-    Expect(1, 8703, '\p{_In_Arrows}', "");
-    Expect(0, 8703, '\p{^_In_Arrows}', "");
-    Expect(0, 8703, '\P{_In_Arrows}', "");
-    Expect(1, 8703, '\P{^_In_Arrows}', "");
-    Expect(0, 8704, '\p{_In_Arrows}', "");
-    Expect(1, 8704, '\p{^_In_Arrows}', "");
-    Expect(1, 8704, '\P{_In_Arrows}', "");
-    Expect(0, 8704, '\P{^_In_Arrows}', "");
-    Error('\p{_:=ascii}');
-    Error('\P{_:=ascii}');
+    Expect(1, 8703, '\p{- IN_arrows}', "");
+    Expect(0, 8703, '\p{^- IN_arrows}', "");
+    Expect(0, 8703, '\P{- IN_arrows}', "");
+    Expect(1, 8703, '\P{^- IN_arrows}', "");
+    Expect(0, 8704, '\p{- IN_arrows}', "");
+    Expect(1, 8704, '\p{^- IN_arrows}', "");
+    Expect(1, 8704, '\P{- IN_arrows}', "");
+    Expect(0, 8704, '\P{^- IN_arrows}', "");
+    Error('\p{-_ASCII:=}');
+    Error('\P{-_ASCII:=}');
     Expect(1, 127, '\p{ascii}', "");
     Expect(0, 127, '\p{^ascii}', "");
     Expect(0, 127, '\P{ascii}', "");
@@ -88163,16 +88869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^ascii}', "");
     Expect(1, 128, '\P{ascii}', "");
     Expect(0, 128, '\P{^ascii}', "");
-    Expect(1, 127, '\p{_ ASCII}', "");
-    Expect(0, 127, '\p{^_ ASCII}', "");
-    Expect(0, 127, '\P{_ ASCII}', "");
-    Expect(1, 127, '\P{^_ ASCII}', "");
-    Expect(0, 128, '\p{_ ASCII}', "");
-    Expect(1, 128, '\p{^_ ASCII}', "");
-    Expect(1, 128, '\P{_ ASCII}', "");
-    Expect(0, 128, '\P{^_ ASCII}', "");
-    Error('\p{Is_ASCII:=}');
-    Error('\P{Is_ASCII:=}');
+    Expect(1, 127, '\p{_ascii}', "");
+    Expect(0, 127, '\p{^_ascii}', "");
+    Expect(0, 127, '\P{_ascii}', "");
+    Expect(1, 127, '\P{^_ascii}', "");
+    Expect(0, 128, '\p{_ascii}', "");
+    Expect(1, 128, '\p{^_ascii}', "");
+    Expect(1, 128, '\P{_ascii}', "");
+    Expect(0, 128, '\P{^_ascii}', "");
+    Error('\p{:= _is_ASCII}');
+    Error('\P{:= _is_ASCII}');
     Expect(1, 127, '\p{isascii}', "");
     Expect(0, 127, '\p{^isascii}', "");
     Expect(0, 127, '\P{isascii}', "");
@@ -88181,16 +88887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^isascii}', "");
     Expect(1, 128, '\P{isascii}', "");
     Expect(0, 128, '\P{^isascii}', "");
-    Expect(1, 127, '\p{ 	is_ASCII}', "");
-    Expect(0, 127, '\p{^ 	is_ASCII}', "");
-    Expect(0, 127, '\P{ 	is_ASCII}', "");
-    Expect(1, 127, '\P{^ 	is_ASCII}', "");
-    Expect(0, 128, '\p{ 	is_ASCII}', "");
-    Expect(1, 128, '\p{^ 	is_ASCII}', "");
-    Expect(1, 128, '\P{ 	is_ASCII}', "");
-    Expect(0, 128, '\P{^ 	is_ASCII}', "");
-    Error('\p{/a/-BASIC_latin}');
-    Error('\P{/a/-BASIC_latin}');
+    Expect(1, 127, '\p{_Is_ASCII}', "");
+    Expect(0, 127, '\p{^_Is_ASCII}', "");
+    Expect(0, 127, '\P{_Is_ASCII}', "");
+    Expect(1, 127, '\P{^_Is_ASCII}', "");
+    Expect(0, 128, '\p{_Is_ASCII}', "");
+    Expect(1, 128, '\p{^_Is_ASCII}', "");
+    Expect(1, 128, '\P{_Is_ASCII}', "");
+    Expect(0, 128, '\P{^_Is_ASCII}', "");
+    Error('\p{	:=Basic_latin}');
+    Error('\P{	:=Basic_latin}');
     Expect(1, 127, '\p{basiclatin}', "");
     Expect(0, 127, '\p{^basiclatin}', "");
     Expect(0, 127, '\P{basiclatin}', "");
@@ -88199,16 +88905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^basiclatin}', "");
     Expect(1, 128, '\P{basiclatin}', "");
     Expect(0, 128, '\P{^basiclatin}', "");
-    Expect(1, 127, '\p{-Basic_latin}', "");
-    Expect(0, 127, '\p{^-Basic_latin}', "");
-    Expect(0, 127, '\P{-Basic_latin}', "");
-    Expect(1, 127, '\P{^-Basic_latin}', "");
-    Expect(0, 128, '\p{-Basic_latin}', "");
-    Expect(1, 128, '\p{^-Basic_latin}', "");
-    Expect(1, 128, '\P{-Basic_latin}', "");
-    Expect(0, 128, '\P{^-Basic_latin}', "");
-    Error('\p{ /a/Is_Basic_Latin}');
-    Error('\P{ /a/Is_Basic_Latin}');
+    Expect(1, 127, '\p{_-Basic_Latin}', "");
+    Expect(0, 127, '\p{^_-Basic_Latin}', "");
+    Expect(0, 127, '\P{_-Basic_Latin}', "");
+    Expect(1, 127, '\P{^_-Basic_Latin}', "");
+    Expect(0, 128, '\p{_-Basic_Latin}', "");
+    Expect(1, 128, '\p{^_-Basic_Latin}', "");
+    Expect(1, 128, '\P{_-Basic_Latin}', "");
+    Expect(0, 128, '\P{^_-Basic_Latin}', "");
+    Error('\p{:=	 Is_basic_Latin}');
+    Error('\P{:=	 Is_basic_Latin}');
     Expect(1, 127, '\p{isbasiclatin}', "");
     Expect(0, 127, '\p{^isbasiclatin}', "");
     Expect(0, 127, '\P{isbasiclatin}', "");
@@ -88217,16 +88923,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^isbasiclatin}', "");
     Expect(1, 128, '\P{isbasiclatin}', "");
     Expect(0, 128, '\P{^isbasiclatin}', "");
-    Expect(1, 127, '\p{	 Is_Basic_LATIN}', "");
-    Expect(0, 127, '\p{^	 Is_Basic_LATIN}', "");
-    Expect(0, 127, '\P{	 Is_Basic_LATIN}', "");
-    Expect(1, 127, '\P{^	 Is_Basic_LATIN}', "");
-    Expect(0, 128, '\p{	 Is_Basic_LATIN}', "");
-    Expect(1, 128, '\p{^	 Is_Basic_LATIN}', "");
-    Expect(1, 128, '\P{	 Is_Basic_LATIN}', "");
-    Expect(0, 128, '\P{^	 Is_Basic_LATIN}', "");
-    Error('\p{	in_Basic_Latin/a/}');
-    Error('\P{	in_Basic_Latin/a/}');
+    Expect(1, 127, '\p{ -Is_BASIC_Latin}', "");
+    Expect(0, 127, '\p{^ -Is_BASIC_Latin}', "");
+    Expect(0, 127, '\P{ -Is_BASIC_Latin}', "");
+    Expect(1, 127, '\P{^ -Is_BASIC_Latin}', "");
+    Expect(0, 128, '\p{ -Is_BASIC_Latin}', "");
+    Expect(1, 128, '\p{^ -Is_BASIC_Latin}', "");
+    Expect(1, 128, '\P{ -Is_BASIC_Latin}', "");
+    Expect(0, 128, '\P{^ -Is_BASIC_Latin}', "");
+    Error('\p{	_in_BASIC_Latin/a/}');
+    Error('\P{	_in_BASIC_Latin/a/}');
     Expect(1, 127, '\p{inbasiclatin}', "");
     Expect(0, 127, '\p{^inbasiclatin}', "");
     Expect(0, 127, '\P{inbasiclatin}', "");
@@ -88235,16 +88941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^inbasiclatin}', "");
     Expect(1, 128, '\P{inbasiclatin}', "");
     Expect(0, 128, '\P{^inbasiclatin}', "");
-    Expect(1, 127, '\p{ _in_basic_Latin}', "");
-    Expect(0, 127, '\p{^ _in_basic_Latin}', "");
-    Expect(0, 127, '\P{ _in_basic_Latin}', "");
-    Expect(1, 127, '\P{^ _in_basic_Latin}', "");
-    Expect(0, 128, '\p{ _in_basic_Latin}', "");
-    Expect(1, 128, '\p{^ _in_basic_Latin}', "");
-    Expect(1, 128, '\P{ _in_basic_Latin}', "");
-    Expect(0, 128, '\P{^ _in_basic_Latin}', "");
-    Error('\p{	 IN_ascii:=}');
-    Error('\P{	 IN_ascii:=}');
+    Expect(1, 127, '\p{ 	IN_basic_Latin}', "");
+    Expect(0, 127, '\p{^ 	IN_basic_Latin}', "");
+    Expect(0, 127, '\P{ 	IN_basic_Latin}', "");
+    Expect(1, 127, '\P{^ 	IN_basic_Latin}', "");
+    Expect(0, 128, '\p{ 	IN_basic_Latin}', "");
+    Expect(1, 128, '\p{^ 	IN_basic_Latin}', "");
+    Expect(1, 128, '\P{ 	IN_basic_Latin}', "");
+    Expect(0, 128, '\P{^ 	IN_basic_Latin}', "");
+    Error('\p{:=_	In_ASCII}');
+    Error('\P{:=_	In_ASCII}');
     Expect(1, 127, '\p{inascii}', "");
     Expect(0, 127, '\p{^inascii}', "");
     Expect(0, 127, '\P{inascii}', "");
@@ -88253,16 +88959,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^inascii}', "");
     Expect(1, 128, '\P{inascii}', "");
     Expect(0, 128, '\P{^inascii}', "");
-    Expect(1, 127, '\p{ _IN_ASCII}', "");
-    Expect(0, 127, '\p{^ _IN_ASCII}', "");
-    Expect(0, 127, '\P{ _IN_ASCII}', "");
-    Expect(1, 127, '\P{^ _IN_ASCII}', "");
-    Expect(0, 128, '\p{ _IN_ASCII}', "");
-    Expect(1, 128, '\p{^ _IN_ASCII}', "");
-    Expect(1, 128, '\P{ _IN_ASCII}', "");
-    Expect(0, 128, '\P{^ _IN_ASCII}', "");
-    Error('\p{/a/__Assigned}');
-    Error('\P{/a/__Assigned}');
+    Expect(1, 127, '\p{- IN_ASCII}', "");
+    Expect(0, 127, '\p{^- IN_ASCII}', "");
+    Expect(0, 127, '\P{- IN_ASCII}', "");
+    Expect(1, 127, '\P{^- IN_ASCII}', "");
+    Expect(0, 128, '\p{- IN_ASCII}', "");
+    Expect(1, 128, '\p{^- IN_ASCII}', "");
+    Expect(1, 128, '\P{- IN_ASCII}', "");
+    Expect(0, 128, '\P{^- IN_ASCII}', "");
+    Error('\p{	/a/assigned}');
+    Error('\P{	/a/assigned}');
     Expect(1, 1114109, '\p{assigned}', "");
     Expect(0, 1114109, '\p{^assigned}', "");
     Expect(0, 1114109, '\P{assigned}', "");
@@ -88271,16 +88977,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^assigned}', "");
     Expect(1, 918000, '\P{assigned}', "");
     Expect(0, 918000, '\P{^assigned}', "");
-    Expect(1, 1114109, '\p{ -assigned}', "");
-    Expect(0, 1114109, '\p{^ -assigned}', "");
-    Expect(0, 1114109, '\P{ -assigned}', "");
-    Expect(1, 1114109, '\P{^ -assigned}', "");
-    Expect(0, 918000, '\p{ -assigned}', "");
-    Expect(1, 918000, '\p{^ -assigned}', "");
-    Expect(1, 918000, '\P{ -assigned}', "");
-    Expect(0, 918000, '\P{^ -assigned}', "");
-    Error('\p{ /a/IS_Assigned}');
-    Error('\P{ /a/IS_Assigned}');
+    Expect(1, 1114109, '\p{	Assigned}', "");
+    Expect(0, 1114109, '\p{^	Assigned}', "");
+    Expect(0, 1114109, '\P{	Assigned}', "");
+    Expect(1, 1114109, '\P{^	Assigned}', "");
+    Expect(0, 918000, '\p{	Assigned}', "");
+    Expect(1, 918000, '\p{^	Assigned}', "");
+    Expect(1, 918000, '\P{	Assigned}', "");
+    Expect(0, 918000, '\P{^	Assigned}', "");
+    Error('\p{_:=is_assigned}');
+    Error('\P{_:=is_assigned}');
     Expect(1, 1114109, '\p{isassigned}', "");
     Expect(0, 1114109, '\p{^isassigned}', "");
     Expect(0, 1114109, '\P{isassigned}', "");
@@ -88289,16 +88995,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isassigned}', "");
     Expect(1, 918000, '\P{isassigned}', "");
     Expect(0, 918000, '\P{^isassigned}', "");
-    Expect(1, 1114109, '\p{ 	IS_ASSIGNED}', "");
-    Expect(0, 1114109, '\p{^ 	IS_ASSIGNED}', "");
-    Expect(0, 1114109, '\P{ 	IS_ASSIGNED}', "");
-    Expect(1, 1114109, '\P{^ 	IS_ASSIGNED}', "");
-    Expect(0, 918000, '\p{ 	IS_ASSIGNED}', "");
-    Expect(1, 918000, '\p{^ 	IS_ASSIGNED}', "");
-    Expect(1, 918000, '\P{ 	IS_ASSIGNED}', "");
-    Expect(0, 918000, '\P{^ 	IS_ASSIGNED}', "");
-    Error('\p{:=__AVESTAN}');
-    Error('\P{:=__AVESTAN}');
+    Expect(1, 1114109, '\p{ _IS_Assigned}', "");
+    Expect(0, 1114109, '\p{^ _IS_Assigned}', "");
+    Expect(0, 1114109, '\P{ _IS_Assigned}', "");
+    Expect(1, 1114109, '\P{^ _IS_Assigned}', "");
+    Expect(0, 918000, '\p{ _IS_Assigned}', "");
+    Expect(1, 918000, '\p{^ _IS_Assigned}', "");
+    Expect(1, 918000, '\P{ _IS_Assigned}', "");
+    Expect(0, 918000, '\P{^ _IS_Assigned}', "");
+    Error('\p{__Avestan:=}');
+    Error('\P{__Avestan:=}');
     Expect(1, 68415, '\p{avestan}', "");
     Expect(0, 68415, '\p{^avestan}', "");
     Expect(0, 68415, '\P{avestan}', "");
@@ -88307,16 +89013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68416, '\p{^avestan}', "");
     Expect(1, 68416, '\P{avestan}', "");
     Expect(0, 68416, '\P{^avestan}', "");
-    Expect(1, 68415, '\p{-	Avestan}', "");
-    Expect(0, 68415, '\p{^-	Avestan}', "");
-    Expect(0, 68415, '\P{-	Avestan}', "");
-    Expect(1, 68415, '\P{^-	Avestan}', "");
-    Expect(0, 68416, '\p{-	Avestan}', "");
-    Expect(1, 68416, '\p{^-	Avestan}', "");
-    Expect(1, 68416, '\P{-	Avestan}', "");
-    Expect(0, 68416, '\P{^-	Avestan}', "");
-    Error('\p{/a/	IS_Avestan}');
-    Error('\P{/a/	IS_Avestan}');
+    Expect(1, 68415, '\p{ Avestan}', "");
+    Expect(0, 68415, '\p{^ Avestan}', "");
+    Expect(0, 68415, '\P{ Avestan}', "");
+    Expect(1, 68415, '\P{^ Avestan}', "");
+    Expect(0, 68416, '\p{ Avestan}', "");
+    Expect(1, 68416, '\p{^ Avestan}', "");
+    Expect(1, 68416, '\P{ Avestan}', "");
+    Expect(0, 68416, '\P{^ Avestan}', "");
+    Error('\p{_/a/Is_AVESTAN}');
+    Error('\P{_/a/Is_AVESTAN}');
     Expect(1, 68415, '\p{isavestan}', "");
     Expect(0, 68415, '\p{^isavestan}', "");
     Expect(0, 68415, '\P{isavestan}', "");
@@ -88325,16 +89031,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68416, '\p{^isavestan}', "");
     Expect(1, 68416, '\P{isavestan}', "");
     Expect(0, 68416, '\P{^isavestan}', "");
-    Expect(1, 68415, '\p{	 IS_Avestan}', "");
-    Expect(0, 68415, '\p{^	 IS_Avestan}', "");
-    Expect(0, 68415, '\P{	 IS_Avestan}', "");
-    Expect(1, 68415, '\P{^	 IS_Avestan}', "");
-    Expect(0, 68416, '\p{	 IS_Avestan}', "");
-    Expect(1, 68416, '\p{^	 IS_Avestan}', "");
-    Expect(1, 68416, '\P{	 IS_Avestan}', "");
-    Expect(0, 68416, '\P{^	 IS_Avestan}', "");
-    Error('\p{/a/_-Avst}');
-    Error('\P{/a/_-Avst}');
+    Expect(1, 68415, '\p{-IS_avestan}', "");
+    Expect(0, 68415, '\p{^-IS_avestan}', "");
+    Expect(0, 68415, '\P{-IS_avestan}', "");
+    Expect(1, 68415, '\P{^-IS_avestan}', "");
+    Expect(0, 68416, '\p{-IS_avestan}', "");
+    Expect(1, 68416, '\p{^-IS_avestan}', "");
+    Expect(1, 68416, '\P{-IS_avestan}', "");
+    Expect(0, 68416, '\P{^-IS_avestan}', "");
+    Error('\p{	/a/avst}');
+    Error('\P{	/a/avst}');
     Expect(1, 68415, '\p{avst}', "");
     Expect(0, 68415, '\p{^avst}', "");
     Expect(0, 68415, '\P{avst}', "");
@@ -88343,16 +89049,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68416, '\p{^avst}', "");
     Expect(1, 68416, '\P{avst}', "");
     Expect(0, 68416, '\P{^avst}', "");
-    Expect(1, 68415, '\p{ avst}', "");
-    Expect(0, 68415, '\p{^ avst}', "");
-    Expect(0, 68415, '\P{ avst}', "");
-    Expect(1, 68415, '\P{^ avst}', "");
-    Expect(0, 68416, '\p{ avst}', "");
-    Expect(1, 68416, '\p{^ avst}', "");
-    Expect(1, 68416, '\P{ avst}', "");
-    Expect(0, 68416, '\P{^ avst}', "");
-    Error('\p{_IS_Avst:=}');
-    Error('\P{_IS_Avst:=}');
+    Expect(1, 68415, '\p{_ Avst}', "");
+    Expect(0, 68415, '\p{^_ Avst}', "");
+    Expect(0, 68415, '\P{_ Avst}', "");
+    Expect(1, 68415, '\P{^_ Avst}', "");
+    Expect(0, 68416, '\p{_ Avst}', "");
+    Expect(1, 68416, '\p{^_ Avst}', "");
+    Expect(1, 68416, '\P{_ Avst}', "");
+    Expect(0, 68416, '\P{^_ Avst}', "");
+    Error('\p{:=Is_avst}');
+    Error('\P{:=Is_avst}');
     Expect(1, 68415, '\p{isavst}', "");
     Expect(0, 68415, '\p{^isavst}', "");
     Expect(0, 68415, '\P{isavst}', "");
@@ -88361,16 +89067,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68416, '\p{^isavst}', "");
     Expect(1, 68416, '\P{isavst}', "");
     Expect(0, 68416, '\P{^isavst}', "");
-    Expect(1, 68415, '\p{-_IS_Avst}', "");
-    Expect(0, 68415, '\p{^-_IS_Avst}', "");
-    Expect(0, 68415, '\P{-_IS_Avst}', "");
-    Expect(1, 68415, '\P{^-_IS_Avst}', "");
-    Expect(0, 68416, '\p{-_IS_Avst}', "");
-    Expect(1, 68416, '\p{^-_IS_Avst}', "");
-    Expect(1, 68416, '\P{-_IS_Avst}', "");
-    Expect(0, 68416, '\P{^-_IS_Avst}', "");
-    Error('\p{-Balinese:=}');
-    Error('\P{-Balinese:=}');
+    Expect(1, 68415, '\p{-	is_AVST}', "");
+    Expect(0, 68415, '\p{^-	is_AVST}', "");
+    Expect(0, 68415, '\P{-	is_AVST}', "");
+    Expect(1, 68415, '\P{^-	is_AVST}', "");
+    Expect(0, 68416, '\p{-	is_AVST}', "");
+    Expect(1, 68416, '\p{^-	is_AVST}', "");
+    Expect(1, 68416, '\P{-	is_AVST}', "");
+    Expect(0, 68416, '\P{^-	is_AVST}', "");
+    Error('\p{:=  balinese}');
+    Error('\P{:=  balinese}');
     Expect(1, 7038, '\p{balinese}', "");
     Expect(0, 7038, '\p{^balinese}', "");
     Expect(0, 7038, '\P{balinese}', "");
@@ -88379,16 +89085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7039, '\p{^balinese}', "");
     Expect(1, 7039, '\P{balinese}', "");
     Expect(0, 7039, '\P{^balinese}', "");
-    Expect(1, 7038, '\p{_BALINESE}', "");
-    Expect(0, 7038, '\p{^_BALINESE}', "");
-    Expect(0, 7038, '\P{_BALINESE}', "");
-    Expect(1, 7038, '\P{^_BALINESE}', "");
-    Expect(0, 7039, '\p{_BALINESE}', "");
-    Expect(1, 7039, '\p{^_BALINESE}', "");
-    Expect(1, 7039, '\P{_BALINESE}', "");
-    Expect(0, 7039, '\P{^_BALINESE}', "");
-    Error('\p{	 IS_Balinese:=}');
-    Error('\P{	 IS_Balinese:=}');
+    Expect(1, 7038, '\p{	Balinese}', "");
+    Expect(0, 7038, '\p{^	Balinese}', "");
+    Expect(0, 7038, '\P{	Balinese}', "");
+    Expect(1, 7038, '\P{^	Balinese}', "");
+    Expect(0, 7039, '\p{	Balinese}', "");
+    Expect(1, 7039, '\p{^	Balinese}', "");
+    Expect(1, 7039, '\P{	Balinese}', "");
+    Expect(0, 7039, '\P{^	Balinese}', "");
+    Error('\p{ :=Is_Balinese}');
+    Error('\P{ :=Is_Balinese}');
     Expect(1, 7038, '\p{isbalinese}', "");
     Expect(0, 7038, '\p{^isbalinese}', "");
     Expect(0, 7038, '\P{isbalinese}', "");
@@ -88397,16 +89103,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7039, '\p{^isbalinese}', "");
     Expect(1, 7039, '\P{isbalinese}', "");
     Expect(0, 7039, '\P{^isbalinese}', "");
-    Expect(1, 7038, '\p{	-is_Balinese}', "");
-    Expect(0, 7038, '\p{^	-is_Balinese}', "");
-    Expect(0, 7038, '\P{	-is_Balinese}', "");
-    Expect(1, 7038, '\P{^	-is_Balinese}', "");
-    Expect(0, 7039, '\p{	-is_Balinese}', "");
-    Expect(1, 7039, '\p{^	-is_Balinese}', "");
-    Expect(1, 7039, '\P{	-is_Balinese}', "");
-    Expect(0, 7039, '\P{^	-is_Balinese}', "");
-    Error('\p{/a/-_Bali}');
-    Error('\P{/a/-_Bali}');
+    Expect(1, 7038, '\p{-_Is_balinese}', "");
+    Expect(0, 7038, '\p{^-_Is_balinese}', "");
+    Expect(0, 7038, '\P{-_Is_balinese}', "");
+    Expect(1, 7038, '\P{^-_Is_balinese}', "");
+    Expect(0, 7039, '\p{-_Is_balinese}', "");
+    Expect(1, 7039, '\p{^-_Is_balinese}', "");
+    Expect(1, 7039, '\P{-_Is_balinese}', "");
+    Expect(0, 7039, '\P{^-_Is_balinese}', "");
+    Error('\p{/a/bali}');
+    Error('\P{/a/bali}');
     Expect(1, 7038, '\p{bali}', "");
     Expect(0, 7038, '\p{^bali}', "");
     Expect(0, 7038, '\P{bali}', "");
@@ -88415,16 +89121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7039, '\p{^bali}', "");
     Expect(1, 7039, '\P{bali}', "");
     Expect(0, 7039, '\P{^bali}', "");
-    Expect(1, 7038, '\p{_Bali}', "");
-    Expect(0, 7038, '\p{^_Bali}', "");
-    Expect(0, 7038, '\P{_Bali}', "");
-    Expect(1, 7038, '\P{^_Bali}', "");
-    Expect(0, 7039, '\p{_Bali}', "");
-    Expect(1, 7039, '\p{^_Bali}', "");
-    Expect(1, 7039, '\P{_Bali}', "");
-    Expect(0, 7039, '\P{^_Bali}', "");
-    Error('\p{:=is_BALI}');
-    Error('\P{:=is_BALI}');
+    Expect(1, 7038, '\p{-BALI}', "");
+    Expect(0, 7038, '\p{^-BALI}', "");
+    Expect(0, 7038, '\P{-BALI}', "");
+    Expect(1, 7038, '\P{^-BALI}', "");
+    Expect(0, 7039, '\p{-BALI}', "");
+    Expect(1, 7039, '\p{^-BALI}', "");
+    Expect(1, 7039, '\P{-BALI}', "");
+    Expect(0, 7039, '\P{^-BALI}', "");
+    Error('\p{/a/- IS_bali}');
+    Error('\P{/a/- IS_bali}');
     Expect(1, 7038, '\p{isbali}', "");
     Expect(0, 7038, '\p{^isbali}', "");
     Expect(0, 7038, '\P{isbali}', "");
@@ -88433,16 +89139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7039, '\p{^isbali}', "");
     Expect(1, 7039, '\P{isbali}', "");
     Expect(0, 7039, '\P{^isbali}', "");
-    Expect(1, 7038, '\p{ _is_Bali}', "");
-    Expect(0, 7038, '\p{^ _is_Bali}', "");
-    Expect(0, 7038, '\P{ _is_Bali}', "");
-    Expect(1, 7038, '\P{^ _is_Bali}', "");
-    Expect(0, 7039, '\p{ _is_Bali}', "");
-    Expect(1, 7039, '\p{^ _is_Bali}', "");
-    Expect(1, 7039, '\P{ _is_Bali}', "");
-    Expect(0, 7039, '\P{^ _is_Bali}', "");
-    Error('\p{/a/--Bamum}');
-    Error('\P{/a/--Bamum}');
+    Expect(1, 7038, '\p{- is_Bali}', "");
+    Expect(0, 7038, '\p{^- is_Bali}', "");
+    Expect(0, 7038, '\P{- is_Bali}', "");
+    Expect(1, 7038, '\P{^- is_Bali}', "");
+    Expect(0, 7039, '\p{- is_Bali}', "");
+    Expect(1, 7039, '\p{^- is_Bali}', "");
+    Expect(1, 7039, '\P{- is_Bali}', "");
+    Expect(0, 7039, '\P{^- is_Bali}', "");
+    Error('\p{:= Bamum}');
+    Error('\P{:= Bamum}');
     Expect(1, 92728, '\p{bamum}', "");
     Expect(0, 92728, '\p{^bamum}', "");
     Expect(0, 92728, '\P{bamum}', "");
@@ -88459,8 +89165,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92729, '\p{^	Bamum}', "");
     Expect(1, 92729, '\P{	Bamum}', "");
     Expect(0, 92729, '\P{^	Bamum}', "");
-    Error('\p{  Is_Bamum/a/}');
-    Error('\P{  Is_Bamum/a/}');
+    Error('\p{ :=Is_bamum}');
+    Error('\P{ :=Is_bamum}');
     Expect(1, 92728, '\p{isbamum}', "");
     Expect(0, 92728, '\p{^isbamum}', "");
     Expect(0, 92728, '\P{isbamum}', "");
@@ -88469,16 +89175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92729, '\p{^isbamum}', "");
     Expect(1, 92729, '\P{isbamum}', "");
     Expect(0, 92729, '\P{^isbamum}', "");
-    Expect(1, 92728, '\p{_	Is_Bamum}', "");
-    Expect(0, 92728, '\p{^_	Is_Bamum}', "");
-    Expect(0, 92728, '\P{_	Is_Bamum}', "");
-    Expect(1, 92728, '\P{^_	Is_Bamum}', "");
-    Expect(0, 92729, '\p{_	Is_Bamum}', "");
-    Expect(1, 92729, '\p{^_	Is_Bamum}', "");
-    Expect(1, 92729, '\P{_	Is_Bamum}', "");
-    Expect(0, 92729, '\P{^_	Is_Bamum}', "");
-    Error('\p{/a/	-bamu}');
-    Error('\P{/a/	-bamu}');
+    Expect(1, 92728, '\p{Is_Bamum}', "");
+    Expect(0, 92728, '\p{^Is_Bamum}', "");
+    Expect(0, 92728, '\P{Is_Bamum}', "");
+    Expect(1, 92728, '\P{^Is_Bamum}', "");
+    Expect(0, 92729, '\p{Is_Bamum}', "");
+    Expect(1, 92729, '\p{^Is_Bamum}', "");
+    Expect(1, 92729, '\P{Is_Bamum}', "");
+    Expect(0, 92729, '\P{^Is_Bamum}', "");
+    Error('\p{_ Bamu:=}');
+    Error('\P{_ Bamu:=}');
     Expect(1, 92728, '\p{bamu}', "");
     Expect(0, 92728, '\p{^bamu}', "");
     Expect(0, 92728, '\P{bamu}', "");
@@ -88487,16 +89193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92729, '\p{^bamu}', "");
     Expect(1, 92729, '\P{bamu}', "");
     Expect(0, 92729, '\P{^bamu}', "");
-    Expect(1, 92728, '\p{-_Bamu}', "");
-    Expect(0, 92728, '\p{^-_Bamu}', "");
-    Expect(0, 92728, '\P{-_Bamu}', "");
-    Expect(1, 92728, '\P{^-_Bamu}', "");
-    Expect(0, 92729, '\p{-_Bamu}', "");
-    Expect(1, 92729, '\p{^-_Bamu}', "");
-    Expect(1, 92729, '\P{-_Bamu}', "");
-    Expect(0, 92729, '\P{^-_Bamu}', "");
-    Error('\p{ -is_BAMU:=}');
-    Error('\P{ -is_BAMU:=}');
+    Expect(1, 92728, '\p{-bamu}', "");
+    Expect(0, 92728, '\p{^-bamu}', "");
+    Expect(0, 92728, '\P{-bamu}', "");
+    Expect(1, 92728, '\P{^-bamu}', "");
+    Expect(0, 92729, '\p{-bamu}', "");
+    Expect(1, 92729, '\p{^-bamu}', "");
+    Expect(1, 92729, '\P{-bamu}', "");
+    Expect(0, 92729, '\P{^-bamu}', "");
+    Error('\p{	:=Is_Bamu}');
+    Error('\P{	:=Is_Bamu}');
     Expect(1, 92728, '\p{isbamu}', "");
     Expect(0, 92728, '\p{^isbamu}', "");
     Expect(0, 92728, '\P{isbamu}', "");
@@ -88505,16 +89211,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92729, '\p{^isbamu}', "");
     Expect(1, 92729, '\P{isbamu}', "");
     Expect(0, 92729, '\P{^isbamu}', "");
-    Expect(1, 92728, '\p{-_IS_bamu}', "");
-    Expect(0, 92728, '\p{^-_IS_bamu}', "");
-    Expect(0, 92728, '\P{-_IS_bamu}', "");
-    Expect(1, 92728, '\P{^-_IS_bamu}', "");
-    Expect(0, 92729, '\p{-_IS_bamu}', "");
-    Expect(1, 92729, '\p{^-_IS_bamu}', "");
-    Expect(1, 92729, '\P{-_IS_bamu}', "");
-    Expect(0, 92729, '\P{^-_IS_bamu}', "");
-    Error('\p{_BAMUM_SUPPLEMENT:=}');
-    Error('\P{_BAMUM_SUPPLEMENT:=}');
+    Expect(1, 92728, '\p{- is_BAMU}', "");
+    Expect(0, 92728, '\p{^- is_BAMU}', "");
+    Expect(0, 92728, '\P{- is_BAMU}', "");
+    Expect(1, 92728, '\P{^- is_BAMU}', "");
+    Expect(0, 92729, '\p{- is_BAMU}', "");
+    Expect(1, 92729, '\p{^- is_BAMU}', "");
+    Expect(1, 92729, '\P{- is_BAMU}', "");
+    Expect(0, 92729, '\P{^- is_BAMU}', "");
+    Error('\p{-:=bamum_Supplement}');
+    Error('\P{-:=bamum_Supplement}');
     Expect(1, 92735, '\p{bamumsupplement}', "");
     Expect(0, 92735, '\p{^bamumsupplement}', "");
     Expect(0, 92735, '\P{bamumsupplement}', "");
@@ -88523,16 +89229,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92736, '\p{^bamumsupplement}', "");
     Expect(1, 92736, '\P{bamumsupplement}', "");
     Expect(0, 92736, '\P{^bamumsupplement}', "");
-    Expect(1, 92735, '\p{__BAMUM_Supplement}', "");
-    Expect(0, 92735, '\p{^__BAMUM_Supplement}', "");
-    Expect(0, 92735, '\P{__BAMUM_Supplement}', "");
-    Expect(1, 92735, '\P{^__BAMUM_Supplement}', "");
-    Expect(0, 92736, '\p{__BAMUM_Supplement}', "");
-    Expect(1, 92736, '\p{^__BAMUM_Supplement}', "");
-    Expect(1, 92736, '\P{__BAMUM_Supplement}', "");
-    Expect(0, 92736, '\P{^__BAMUM_Supplement}', "");
-    Error('\p{_	is_Bamum_supplement:=}');
-    Error('\P{_	is_Bamum_supplement:=}');
+    Expect(1, 92735, '\p{	 Bamum_Supplement}', "");
+    Expect(0, 92735, '\p{^	 Bamum_Supplement}', "");
+    Expect(0, 92735, '\P{	 Bamum_Supplement}', "");
+    Expect(1, 92735, '\P{^	 Bamum_Supplement}', "");
+    Expect(0, 92736, '\p{	 Bamum_Supplement}', "");
+    Expect(1, 92736, '\p{^	 Bamum_Supplement}', "");
+    Expect(1, 92736, '\P{	 Bamum_Supplement}', "");
+    Expect(0, 92736, '\P{^	 Bamum_Supplement}', "");
+    Error('\p{/a/__IS_Bamum_SUPPLEMENT}');
+    Error('\P{/a/__IS_Bamum_SUPPLEMENT}');
     Expect(1, 92735, '\p{isbamumsupplement}', "");
     Expect(0, 92735, '\p{^isbamumsupplement}', "");
     Expect(0, 92735, '\P{isbamumsupplement}', "");
@@ -88541,16 +89247,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92736, '\p{^isbamumsupplement}', "");
     Expect(1, 92736, '\P{isbamumsupplement}', "");
     Expect(0, 92736, '\P{^isbamumsupplement}', "");
-    Expect(1, 92735, '\p{- Is_Bamum_Supplement}', "");
-    Expect(0, 92735, '\p{^- Is_Bamum_Supplement}', "");
-    Expect(0, 92735, '\P{- Is_Bamum_Supplement}', "");
-    Expect(1, 92735, '\P{^- Is_Bamum_Supplement}', "");
-    Expect(0, 92736, '\p{- Is_Bamum_Supplement}', "");
-    Expect(1, 92736, '\p{^- Is_Bamum_Supplement}', "");
-    Expect(1, 92736, '\P{- Is_Bamum_Supplement}', "");
-    Expect(0, 92736, '\P{^- Is_Bamum_Supplement}', "");
-    Error('\p{-/a/in_Bamum_supplement}');
-    Error('\P{-/a/in_Bamum_supplement}');
+    Expect(1, 92735, '\p{ Is_Bamum_supplement}', "");
+    Expect(0, 92735, '\p{^ Is_Bamum_supplement}', "");
+    Expect(0, 92735, '\P{ Is_Bamum_supplement}', "");
+    Expect(1, 92735, '\P{^ Is_Bamum_supplement}', "");
+    Expect(0, 92736, '\p{ Is_Bamum_supplement}', "");
+    Expect(1, 92736, '\p{^ Is_Bamum_supplement}', "");
+    Expect(1, 92736, '\P{ Is_Bamum_supplement}', "");
+    Expect(0, 92736, '\P{^ Is_Bamum_supplement}', "");
+    Error('\p{	:=IN_Bamum_Supplement}');
+    Error('\P{	:=IN_Bamum_Supplement}');
     Expect(1, 92735, '\p{inbamumsupplement}', "");
     Expect(0, 92735, '\p{^inbamumsupplement}', "");
     Expect(0, 92735, '\P{inbamumsupplement}', "");
@@ -88559,16 +89265,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92736, '\p{^inbamumsupplement}', "");
     Expect(1, 92736, '\P{inbamumsupplement}', "");
     Expect(0, 92736, '\P{^inbamumsupplement}', "");
-    Expect(1, 92735, '\p{ -in_Bamum_Supplement}', "");
-    Expect(0, 92735, '\p{^ -in_Bamum_Supplement}', "");
-    Expect(0, 92735, '\P{ -in_Bamum_Supplement}', "");
-    Expect(1, 92735, '\P{^ -in_Bamum_Supplement}', "");
-    Expect(0, 92736, '\p{ -in_Bamum_Supplement}', "");
-    Expect(1, 92736, '\p{^ -in_Bamum_Supplement}', "");
-    Expect(1, 92736, '\P{ -in_Bamum_Supplement}', "");
-    Expect(0, 92736, '\P{^ -in_Bamum_Supplement}', "");
-    Error('\p{_-BAMUM_SUP/a/}');
-    Error('\P{_-BAMUM_SUP/a/}');
+    Expect(1, 92735, '\p{	in_Bamum_Supplement}', "");
+    Expect(0, 92735, '\p{^	in_Bamum_Supplement}', "");
+    Expect(0, 92735, '\P{	in_Bamum_Supplement}', "");
+    Expect(1, 92735, '\P{^	in_Bamum_Supplement}', "");
+    Expect(0, 92736, '\p{	in_Bamum_Supplement}', "");
+    Expect(1, 92736, '\p{^	in_Bamum_Supplement}', "");
+    Expect(1, 92736, '\P{	in_Bamum_Supplement}', "");
+    Expect(0, 92736, '\P{^	in_Bamum_Supplement}', "");
+    Error('\p{:=bamum_sup}');
+    Error('\P{:=bamum_sup}');
     Expect(1, 92735, '\p{bamumsup}', "");
     Expect(0, 92735, '\p{^bamumsup}', "");
     Expect(0, 92735, '\P{bamumsup}', "");
@@ -88577,16 +89283,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92736, '\p{^bamumsup}', "");
     Expect(1, 92736, '\P{bamumsup}', "");
     Expect(0, 92736, '\P{^bamumsup}', "");
-    Expect(1, 92735, '\p{-bamum_Sup}', "");
-    Expect(0, 92735, '\p{^-bamum_Sup}', "");
-    Expect(0, 92735, '\P{-bamum_Sup}', "");
-    Expect(1, 92735, '\P{^-bamum_Sup}', "");
-    Expect(0, 92736, '\p{-bamum_Sup}', "");
-    Expect(1, 92736, '\p{^-bamum_Sup}', "");
-    Expect(1, 92736, '\P{-bamum_Sup}', "");
-    Expect(0, 92736, '\P{^-bamum_Sup}', "");
-    Error('\p{-	is_Bamum_Sup:=}');
-    Error('\P{-	is_Bamum_Sup:=}');
+    Expect(1, 92735, '\p{Bamum_Sup}', "");
+    Expect(0, 92735, '\p{^Bamum_Sup}', "");
+    Expect(0, 92735, '\P{Bamum_Sup}', "");
+    Expect(1, 92735, '\P{^Bamum_Sup}', "");
+    Expect(0, 92736, '\p{Bamum_Sup}', "");
+    Expect(1, 92736, '\p{^Bamum_Sup}', "");
+    Expect(1, 92736, '\P{Bamum_Sup}', "");
+    Expect(0, 92736, '\P{^Bamum_Sup}', "");
+    Error('\p{ /a/Is_Bamum_SUP}');
+    Error('\P{ /a/Is_Bamum_SUP}');
     Expect(1, 92735, '\p{isbamumsup}', "");
     Expect(0, 92735, '\p{^isbamumsup}', "");
     Expect(0, 92735, '\P{isbamumsup}', "");
@@ -88595,16 +89301,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92736, '\p{^isbamumsup}', "");
     Expect(1, 92736, '\P{isbamumsup}', "");
     Expect(0, 92736, '\P{^isbamumsup}', "");
-    Expect(1, 92735, '\p{	Is_Bamum_sup}', "");
-    Expect(0, 92735, '\p{^	Is_Bamum_sup}', "");
-    Expect(0, 92735, '\P{	Is_Bamum_sup}', "");
-    Expect(1, 92735, '\P{^	Is_Bamum_sup}', "");
-    Expect(0, 92736, '\p{	Is_Bamum_sup}', "");
-    Expect(1, 92736, '\p{^	Is_Bamum_sup}', "");
-    Expect(1, 92736, '\P{	Is_Bamum_sup}', "");
-    Expect(0, 92736, '\P{^	Is_Bamum_sup}', "");
-    Error('\p{_:=In_Bamum_Sup}');
-    Error('\P{_:=In_Bamum_Sup}');
+    Expect(1, 92735, '\p{ _Is_bamum_Sup}', "");
+    Expect(0, 92735, '\p{^ _Is_bamum_Sup}', "");
+    Expect(0, 92735, '\P{ _Is_bamum_Sup}', "");
+    Expect(1, 92735, '\P{^ _Is_bamum_Sup}', "");
+    Expect(0, 92736, '\p{ _Is_bamum_Sup}', "");
+    Expect(1, 92736, '\p{^ _Is_bamum_Sup}', "");
+    Expect(1, 92736, '\P{ _Is_bamum_Sup}', "");
+    Expect(0, 92736, '\P{^ _Is_bamum_Sup}', "");
+    Error('\p{/a/_in_BAMUM_SUP}');
+    Error('\P{/a/_in_BAMUM_SUP}');
     Expect(1, 92735, '\p{inbamumsup}', "");
     Expect(0, 92735, '\p{^inbamumsup}', "");
     Expect(0, 92735, '\P{inbamumsup}', "");
@@ -88613,16 +89319,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92736, '\p{^inbamumsup}', "");
     Expect(1, 92736, '\P{inbamumsup}', "");
     Expect(0, 92736, '\P{^inbamumsup}', "");
-    Expect(1, 92735, '\p{-	IN_BAMUM_Sup}', "");
-    Expect(0, 92735, '\p{^-	IN_BAMUM_Sup}', "");
-    Expect(0, 92735, '\P{-	IN_BAMUM_Sup}', "");
-    Expect(1, 92735, '\P{^-	IN_BAMUM_Sup}', "");
-    Expect(0, 92736, '\p{-	IN_BAMUM_Sup}', "");
-    Expect(1, 92736, '\p{^-	IN_BAMUM_Sup}', "");
-    Expect(1, 92736, '\P{-	IN_BAMUM_Sup}', "");
-    Expect(0, 92736, '\P{^-	IN_BAMUM_Sup}', "");
-    Error('\p{/a/  Bassa_Vah}');
-    Error('\P{/a/  Bassa_Vah}');
+    Expect(1, 92735, '\p{_ in_Bamum_SUP}', "");
+    Expect(0, 92735, '\p{^_ in_Bamum_SUP}', "");
+    Expect(0, 92735, '\P{_ in_Bamum_SUP}', "");
+    Expect(1, 92735, '\P{^_ in_Bamum_SUP}', "");
+    Expect(0, 92736, '\p{_ in_Bamum_SUP}', "");
+    Expect(1, 92736, '\p{^_ in_Bamum_SUP}', "");
+    Expect(1, 92736, '\P{_ in_Bamum_SUP}', "");
+    Expect(0, 92736, '\P{^_ in_Bamum_SUP}', "");
+    Error('\p{:=-Bassa_vah}');
+    Error('\P{:=-Bassa_vah}');
     Expect(1, 92917, '\p{bassavah}', "");
     Expect(0, 92917, '\p{^bassavah}', "");
     Expect(0, 92917, '\P{bassavah}', "");
@@ -88631,16 +89337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92918, '\p{^bassavah}', "");
     Expect(1, 92918, '\P{bassavah}', "");
     Expect(0, 92918, '\P{^bassavah}', "");
-    Expect(1, 92917, '\p{  Bassa_Vah}', "");
-    Expect(0, 92917, '\p{^  Bassa_Vah}', "");
-    Expect(0, 92917, '\P{  Bassa_Vah}', "");
-    Expect(1, 92917, '\P{^  Bassa_Vah}', "");
-    Expect(0, 92918, '\p{  Bassa_Vah}', "");
-    Expect(1, 92918, '\p{^  Bassa_Vah}', "");
-    Expect(1, 92918, '\P{  Bassa_Vah}', "");
-    Expect(0, 92918, '\P{^  Bassa_Vah}', "");
-    Error('\p{_ Is_Bassa_VAH:=}');
-    Error('\P{_ Is_Bassa_VAH:=}');
+    Expect(1, 92917, '\p{_-bassa_Vah}', "");
+    Expect(0, 92917, '\p{^_-bassa_Vah}', "");
+    Expect(0, 92917, '\P{_-bassa_Vah}', "");
+    Expect(1, 92917, '\P{^_-bassa_Vah}', "");
+    Expect(0, 92918, '\p{_-bassa_Vah}', "");
+    Expect(1, 92918, '\p{^_-bassa_Vah}', "");
+    Expect(1, 92918, '\P{_-bassa_Vah}', "");
+    Expect(0, 92918, '\P{^_-bassa_Vah}', "");
+    Error('\p{_:=is_Bassa_VAH}');
+    Error('\P{_:=is_Bassa_VAH}');
     Expect(1, 92917, '\p{isbassavah}', "");
     Expect(0, 92917, '\p{^isbassavah}', "");
     Expect(0, 92917, '\P{isbassavah}', "");
@@ -88649,16 +89355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92918, '\p{^isbassavah}', "");
     Expect(1, 92918, '\P{isbassavah}', "");
     Expect(0, 92918, '\P{^isbassavah}', "");
-    Expect(1, 92917, '\p{ is_bassa_Vah}', "");
-    Expect(0, 92917, '\p{^ is_bassa_Vah}', "");
-    Expect(0, 92917, '\P{ is_bassa_Vah}', "");
-    Expect(1, 92917, '\P{^ is_bassa_Vah}', "");
-    Expect(0, 92918, '\p{ is_bassa_Vah}', "");
-    Expect(1, 92918, '\p{^ is_bassa_Vah}', "");
-    Expect(1, 92918, '\P{ is_bassa_Vah}', "");
-    Expect(0, 92918, '\P{^ is_bassa_Vah}', "");
-    Error('\p{ _bass/a/}');
-    Error('\P{ _bass/a/}');
+    Expect(1, 92917, '\p{_is_Bassa_Vah}', "");
+    Expect(0, 92917, '\p{^_is_Bassa_Vah}', "");
+    Expect(0, 92917, '\P{_is_Bassa_Vah}', "");
+    Expect(1, 92917, '\P{^_is_Bassa_Vah}', "");
+    Expect(0, 92918, '\p{_is_Bassa_Vah}', "");
+    Expect(1, 92918, '\p{^_is_Bassa_Vah}', "");
+    Expect(1, 92918, '\P{_is_Bassa_Vah}', "");
+    Expect(0, 92918, '\P{^_is_Bassa_Vah}', "");
+    Error('\p{/a/-	Bass}');
+    Error('\P{/a/-	Bass}');
     Expect(1, 92917, '\p{bass}', "");
     Expect(0, 92917, '\p{^bass}', "");
     Expect(0, 92917, '\P{bass}', "");
@@ -88667,16 +89373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92918, '\p{^bass}', "");
     Expect(1, 92918, '\P{bass}', "");
     Expect(0, 92918, '\P{^bass}', "");
-    Expect(1, 92917, '\p{ 	BASS}', "");
-    Expect(0, 92917, '\p{^ 	BASS}', "");
-    Expect(0, 92917, '\P{ 	BASS}', "");
-    Expect(1, 92917, '\P{^ 	BASS}', "");
-    Expect(0, 92918, '\p{ 	BASS}', "");
-    Expect(1, 92918, '\p{^ 	BASS}', "");
-    Expect(1, 92918, '\P{ 	BASS}', "");
-    Expect(0, 92918, '\P{^ 	BASS}', "");
-    Error('\p{_:=is_Bass}');
-    Error('\P{_:=is_Bass}');
+    Expect(1, 92917, '\p{_-BASS}', "");
+    Expect(0, 92917, '\p{^_-BASS}', "");
+    Expect(0, 92917, '\P{_-BASS}', "");
+    Expect(1, 92917, '\P{^_-BASS}', "");
+    Expect(0, 92918, '\p{_-BASS}', "");
+    Expect(1, 92918, '\p{^_-BASS}', "");
+    Expect(1, 92918, '\P{_-BASS}', "");
+    Expect(0, 92918, '\P{^_-BASS}', "");
+    Error('\p{_:=Is_BASS}');
+    Error('\P{_:=Is_BASS}');
     Expect(1, 92917, '\p{isbass}', "");
     Expect(0, 92917, '\p{^isbass}', "");
     Expect(0, 92917, '\P{isbass}', "");
@@ -88685,16 +89391,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92918, '\p{^isbass}', "");
     Expect(1, 92918, '\P{isbass}', "");
     Expect(0, 92918, '\P{^isbass}', "");
-    Expect(1, 92917, '\p{ _Is_Bass}', "");
-    Expect(0, 92917, '\p{^ _Is_Bass}', "");
-    Expect(0, 92917, '\P{ _Is_Bass}', "");
-    Expect(1, 92917, '\P{^ _Is_Bass}', "");
-    Expect(0, 92918, '\p{ _Is_Bass}', "");
-    Expect(1, 92918, '\p{^ _Is_Bass}', "");
-    Expect(1, 92918, '\P{ _Is_Bass}', "");
-    Expect(0, 92918, '\P{^ _Is_Bass}', "");
-    Error('\p{/a/__Batak}');
-    Error('\P{/a/__Batak}');
+    Expect(1, 92917, '\p{_ Is_Bass}', "");
+    Expect(0, 92917, '\p{^_ Is_Bass}', "");
+    Expect(0, 92917, '\P{_ Is_Bass}', "");
+    Expect(1, 92917, '\P{^_ Is_Bass}', "");
+    Expect(0, 92918, '\p{_ Is_Bass}', "");
+    Expect(1, 92918, '\p{^_ Is_Bass}', "");
+    Expect(1, 92918, '\P{_ Is_Bass}', "");
+    Expect(0, 92918, '\P{^_ Is_Bass}', "");
+    Error('\p{/a/Batak}');
+    Error('\P{/a/Batak}');
     Expect(1, 7167, '\p{batak}', "");
     Expect(0, 7167, '\p{^batak}', "");
     Expect(0, 7167, '\P{batak}', "");
@@ -88703,16 +89409,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7168, '\p{^batak}', "");
     Expect(1, 7168, '\P{batak}', "");
     Expect(0, 7168, '\P{^batak}', "");
-    Expect(1, 7167, '\p{- batak}', "");
-    Expect(0, 7167, '\p{^- batak}', "");
-    Expect(0, 7167, '\P{- batak}', "");
-    Expect(1, 7167, '\P{^- batak}', "");
-    Expect(0, 7168, '\p{- batak}', "");
-    Expect(1, 7168, '\p{^- batak}', "");
-    Expect(1, 7168, '\P{- batak}', "");
-    Expect(0, 7168, '\P{^- batak}', "");
-    Error('\p{:=_Is_batak}');
-    Error('\P{:=_Is_batak}');
+    Expect(1, 7167, '\p{_-Batak}', "");
+    Expect(0, 7167, '\p{^_-Batak}', "");
+    Expect(0, 7167, '\P{_-Batak}', "");
+    Expect(1, 7167, '\P{^_-Batak}', "");
+    Expect(0, 7168, '\p{_-Batak}', "");
+    Expect(1, 7168, '\p{^_-Batak}', "");
+    Expect(1, 7168, '\P{_-Batak}', "");
+    Expect(0, 7168, '\P{^_-Batak}', "");
+    Error('\p{--Is_Batak/a/}');
+    Error('\P{--Is_Batak/a/}');
     Expect(1, 7167, '\p{isbatak}', "");
     Expect(0, 7167, '\p{^isbatak}', "");
     Expect(0, 7167, '\P{isbatak}', "");
@@ -88721,16 +89427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7168, '\p{^isbatak}', "");
     Expect(1, 7168, '\P{isbatak}', "");
     Expect(0, 7168, '\P{^isbatak}', "");
-    Expect(1, 7167, '\p{-_is_BATAK}', "");
-    Expect(0, 7167, '\p{^-_is_BATAK}', "");
-    Expect(0, 7167, '\P{-_is_BATAK}', "");
-    Expect(1, 7167, '\P{^-_is_BATAK}', "");
-    Expect(0, 7168, '\p{-_is_BATAK}', "");
-    Expect(1, 7168, '\p{^-_is_BATAK}', "");
-    Expect(1, 7168, '\P{-_is_BATAK}', "");
-    Expect(0, 7168, '\P{^-_is_BATAK}', "");
-    Error('\p{-:=BATK}');
-    Error('\P{-:=BATK}');
+    Expect(1, 7167, '\p{_is_Batak}', "");
+    Expect(0, 7167, '\p{^_is_Batak}', "");
+    Expect(0, 7167, '\P{_is_Batak}', "");
+    Expect(1, 7167, '\P{^_is_Batak}', "");
+    Expect(0, 7168, '\p{_is_Batak}', "");
+    Expect(1, 7168, '\p{^_is_Batak}', "");
+    Expect(1, 7168, '\P{_is_Batak}', "");
+    Expect(0, 7168, '\P{^_is_Batak}', "");
+    Error('\p{:=	 Batk}');
+    Error('\P{:=	 Batk}');
     Expect(1, 7167, '\p{batk}', "");
     Expect(0, 7167, '\p{^batk}', "");
     Expect(0, 7167, '\P{batk}', "");
@@ -88739,16 +89445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7168, '\p{^batk}', "");
     Expect(1, 7168, '\P{batk}', "");
     Expect(0, 7168, '\P{^batk}', "");
-    Expect(1, 7167, '\p{	BATK}', "");
-    Expect(0, 7167, '\p{^	BATK}', "");
-    Expect(0, 7167, '\P{	BATK}', "");
-    Expect(1, 7167, '\P{^	BATK}', "");
-    Expect(0, 7168, '\p{	BATK}', "");
-    Expect(1, 7168, '\p{^	BATK}', "");
-    Expect(1, 7168, '\P{	BATK}', "");
-    Expect(0, 7168, '\P{^	BATK}', "");
-    Error('\p{:=-	Is_BATK}');
-    Error('\P{:=-	Is_BATK}');
+    Expect(1, 7167, '\p{-Batk}', "");
+    Expect(0, 7167, '\p{^-Batk}', "");
+    Expect(0, 7167, '\P{-Batk}', "");
+    Expect(1, 7167, '\P{^-Batk}', "");
+    Expect(0, 7168, '\p{-Batk}', "");
+    Expect(1, 7168, '\p{^-Batk}', "");
+    Expect(1, 7168, '\P{-Batk}', "");
+    Expect(0, 7168, '\P{^-Batk}', "");
+    Error('\p{ -IS_batk/a/}');
+    Error('\P{ -IS_batk/a/}');
     Expect(1, 7167, '\p{isbatk}', "");
     Expect(0, 7167, '\p{^isbatk}', "");
     Expect(0, 7167, '\P{isbatk}', "");
@@ -88757,16 +89463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7168, '\p{^isbatk}', "");
     Expect(1, 7168, '\P{isbatk}', "");
     Expect(0, 7168, '\P{^isbatk}', "");
-    Expect(1, 7167, '\p{		is_Batk}', "");
-    Expect(0, 7167, '\p{^		is_Batk}', "");
-    Expect(0, 7167, '\P{		is_Batk}', "");
-    Expect(1, 7167, '\P{^		is_Batk}', "");
-    Expect(0, 7168, '\p{		is_Batk}', "");
-    Expect(1, 7168, '\p{^		is_Batk}', "");
-    Expect(1, 7168, '\P{		is_Batk}', "");
-    Expect(0, 7168, '\P{^		is_Batk}', "");
-    Error('\p{_ bengali:=}');
-    Error('\P{_ bengali:=}');
+    Expect(1, 7167, '\p{ IS_batk}', "");
+    Expect(0, 7167, '\p{^ IS_batk}', "");
+    Expect(0, 7167, '\P{ IS_batk}', "");
+    Expect(1, 7167, '\P{^ IS_batk}', "");
+    Expect(0, 7168, '\p{ IS_batk}', "");
+    Expect(1, 7168, '\p{^ IS_batk}', "");
+    Expect(1, 7168, '\P{ IS_batk}', "");
+    Expect(0, 7168, '\P{^ IS_batk}', "");
+    Error('\p{__BENGALI/a/}');
+    Error('\P{__BENGALI/a/}');
     Expect(1, 43249, '\p{bengali}', "");
     Expect(0, 43249, '\p{^bengali}', "");
     Expect(0, 43249, '\P{bengali}', "");
@@ -88775,16 +89481,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43250, '\p{^bengali}', "");
     Expect(1, 43250, '\P{bengali}', "");
     Expect(0, 43250, '\P{^bengali}', "");
-    Expect(1, 43249, '\p{-	Bengali}', "");
-    Expect(0, 43249, '\p{^-	Bengali}', "");
-    Expect(0, 43249, '\P{-	Bengali}', "");
-    Expect(1, 43249, '\P{^-	Bengali}', "");
-    Expect(0, 43250, '\p{-	Bengali}', "");
-    Expect(1, 43250, '\p{^-	Bengali}', "");
-    Expect(1, 43250, '\P{-	Bengali}', "");
-    Expect(0, 43250, '\P{^-	Bengali}', "");
-    Error('\p{	:=Is_BENGALI}');
-    Error('\P{	:=Is_BENGALI}');
+    Expect(1, 43249, '\p{	 Bengali}', "");
+    Expect(0, 43249, '\p{^	 Bengali}', "");
+    Expect(0, 43249, '\P{	 Bengali}', "");
+    Expect(1, 43249, '\P{^	 Bengali}', "");
+    Expect(0, 43250, '\p{	 Bengali}', "");
+    Expect(1, 43250, '\p{^	 Bengali}', "");
+    Expect(1, 43250, '\P{	 Bengali}', "");
+    Expect(0, 43250, '\P{^	 Bengali}', "");
+    Error('\p{	Is_BENGALI:=}');
+    Error('\P{	Is_BENGALI:=}');
     Expect(1, 43249, '\p{isbengali}', "");
     Expect(0, 43249, '\p{^isbengali}', "");
     Expect(0, 43249, '\P{isbengali}', "");
@@ -88793,16 +89499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43250, '\p{^isbengali}', "");
     Expect(1, 43250, '\P{isbengali}', "");
     Expect(0, 43250, '\P{^isbengali}', "");
-    Expect(1, 43249, '\p{_Is_BENGALI}', "");
-    Expect(0, 43249, '\p{^_Is_BENGALI}', "");
-    Expect(0, 43249, '\P{_Is_BENGALI}', "");
-    Expect(1, 43249, '\P{^_Is_BENGALI}', "");
-    Expect(0, 43250, '\p{_Is_BENGALI}', "");
-    Expect(1, 43250, '\p{^_Is_BENGALI}', "");
-    Expect(1, 43250, '\P{_Is_BENGALI}', "");
-    Expect(0, 43250, '\P{^_Is_BENGALI}', "");
-    Error('\p{:=Beng}');
-    Error('\P{:=Beng}');
+    Expect(1, 43249, '\p{	Is_Bengali}', "");
+    Expect(0, 43249, '\p{^	Is_Bengali}', "");
+    Expect(0, 43249, '\P{	Is_Bengali}', "");
+    Expect(1, 43249, '\P{^	Is_Bengali}', "");
+    Expect(0, 43250, '\p{	Is_Bengali}', "");
+    Expect(1, 43250, '\p{^	Is_Bengali}', "");
+    Expect(1, 43250, '\P{	Is_Bengali}', "");
+    Expect(0, 43250, '\P{^	Is_Bengali}', "");
+    Error('\p{ Beng/a/}');
+    Error('\P{ Beng/a/}');
     Expect(1, 43249, '\p{beng}', "");
     Expect(0, 43249, '\p{^beng}', "");
     Expect(0, 43249, '\P{beng}', "");
@@ -88811,16 +89517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43250, '\p{^beng}', "");
     Expect(1, 43250, '\P{beng}', "");
     Expect(0, 43250, '\P{^beng}', "");
-    Expect(1, 43249, '\p{_Beng}', "");
-    Expect(0, 43249, '\p{^_Beng}', "");
-    Expect(0, 43249, '\P{_Beng}', "");
-    Expect(1, 43249, '\P{^_Beng}', "");
-    Expect(0, 43250, '\p{_Beng}', "");
-    Expect(1, 43250, '\p{^_Beng}', "");
-    Expect(1, 43250, '\P{_Beng}', "");
-    Expect(0, 43250, '\P{^_Beng}', "");
-    Error('\p{_-Is_Beng:=}');
-    Error('\P{_-Is_Beng:=}');
+    Expect(1, 43249, '\p{--BENG}', "");
+    Expect(0, 43249, '\p{^--BENG}', "");
+    Expect(0, 43249, '\P{--BENG}', "");
+    Expect(1, 43249, '\P{^--BENG}', "");
+    Expect(0, 43250, '\p{--BENG}', "");
+    Expect(1, 43250, '\p{^--BENG}', "");
+    Expect(1, 43250, '\P{--BENG}', "");
+    Expect(0, 43250, '\P{^--BENG}', "");
+    Error('\p{ _is_Beng:=}');
+    Error('\P{ _is_Beng:=}');
     Expect(1, 43249, '\p{isbeng}', "");
     Expect(0, 43249, '\p{^isbeng}', "");
     Expect(0, 43249, '\P{isbeng}', "");
@@ -88829,16 +89535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43250, '\p{^isbeng}', "");
     Expect(1, 43250, '\P{isbeng}', "");
     Expect(0, 43250, '\P{^isbeng}', "");
-    Expect(1, 43249, '\p{_	IS_Beng}', "");
-    Expect(0, 43249, '\p{^_	IS_Beng}', "");
-    Expect(0, 43249, '\P{_	IS_Beng}', "");
-    Expect(1, 43249, '\P{^_	IS_Beng}', "");
-    Expect(0, 43250, '\p{_	IS_Beng}', "");
-    Expect(1, 43250, '\p{^_	IS_Beng}', "");
-    Expect(1, 43250, '\P{_	IS_Beng}', "");
-    Expect(0, 43250, '\P{^_	IS_Beng}', "");
-    Error('\p{		BHAIKSUKI/a/}');
-    Error('\P{		BHAIKSUKI/a/}');
+    Expect(1, 43249, '\p{-Is_Beng}', "");
+    Expect(0, 43249, '\p{^-Is_Beng}', "");
+    Expect(0, 43249, '\P{-Is_Beng}', "");
+    Expect(1, 43249, '\P{^-Is_Beng}', "");
+    Expect(0, 43250, '\p{-Is_Beng}', "");
+    Expect(1, 43250, '\p{^-Is_Beng}', "");
+    Expect(1, 43250, '\P{-Is_Beng}', "");
+    Expect(0, 43250, '\P{^-Is_Beng}', "");
+    Error('\p{:=_Bhaiksuki}');
+    Error('\P{:=_Bhaiksuki}');
     Expect(1, 72812, '\p{bhaiksuki}', "");
     Expect(0, 72812, '\p{^bhaiksuki}', "");
     Expect(0, 72812, '\P{bhaiksuki}', "");
@@ -88847,16 +89553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72813, '\p{^bhaiksuki}', "");
     Expect(1, 72813, '\P{bhaiksuki}', "");
     Expect(0, 72813, '\P{^bhaiksuki}', "");
-    Expect(1, 72812, '\p{  BHAIKSUKI}', "");
-    Expect(0, 72812, '\p{^  BHAIKSUKI}', "");
-    Expect(0, 72812, '\P{  BHAIKSUKI}', "");
-    Expect(1, 72812, '\P{^  BHAIKSUKI}', "");
-    Expect(0, 72813, '\p{  BHAIKSUKI}', "");
-    Expect(1, 72813, '\p{^  BHAIKSUKI}', "");
-    Expect(1, 72813, '\P{  BHAIKSUKI}', "");
-    Expect(0, 72813, '\P{^  BHAIKSUKI}', "");
-    Error('\p{/a/-	Is_bhaiksuki}');
-    Error('\P{/a/-	Is_bhaiksuki}');
+    Expect(1, 72812, '\p{_	BHAIKSUKI}', "");
+    Expect(0, 72812, '\p{^_	BHAIKSUKI}', "");
+    Expect(0, 72812, '\P{_	BHAIKSUKI}', "");
+    Expect(1, 72812, '\P{^_	BHAIKSUKI}', "");
+    Expect(0, 72813, '\p{_	BHAIKSUKI}', "");
+    Expect(1, 72813, '\p{^_	BHAIKSUKI}', "");
+    Expect(1, 72813, '\P{_	BHAIKSUKI}', "");
+    Expect(0, 72813, '\P{^_	BHAIKSUKI}', "");
+    Error('\p{:=_-IS_Bhaiksuki}');
+    Error('\P{:=_-IS_Bhaiksuki}');
     Expect(1, 72812, '\p{isbhaiksuki}', "");
     Expect(0, 72812, '\p{^isbhaiksuki}', "");
     Expect(0, 72812, '\P{isbhaiksuki}', "");
@@ -88865,16 +89571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72813, '\p{^isbhaiksuki}', "");
     Expect(1, 72813, '\P{isbhaiksuki}', "");
     Expect(0, 72813, '\P{^isbhaiksuki}', "");
-    Expect(1, 72812, '\p{	Is_bhaiksuki}', "");
-    Expect(0, 72812, '\p{^	Is_bhaiksuki}', "");
-    Expect(0, 72812, '\P{	Is_bhaiksuki}', "");
-    Expect(1, 72812, '\P{^	Is_bhaiksuki}', "");
-    Expect(0, 72813, '\p{	Is_bhaiksuki}', "");
-    Expect(1, 72813, '\p{^	Is_bhaiksuki}', "");
-    Expect(1, 72813, '\P{	Is_bhaiksuki}', "");
-    Expect(0, 72813, '\P{^	Is_bhaiksuki}', "");
-    Error('\p{ BHKS/a/}');
-    Error('\P{ BHKS/a/}');
+    Expect(1, 72812, '\p{--Is_bhaiksuki}', "");
+    Expect(0, 72812, '\p{^--Is_bhaiksuki}', "");
+    Expect(0, 72812, '\P{--Is_bhaiksuki}', "");
+    Expect(1, 72812, '\P{^--Is_bhaiksuki}', "");
+    Expect(0, 72813, '\p{--Is_bhaiksuki}', "");
+    Expect(1, 72813, '\p{^--Is_bhaiksuki}', "");
+    Expect(1, 72813, '\P{--Is_bhaiksuki}', "");
+    Expect(0, 72813, '\P{^--Is_bhaiksuki}', "");
+    Error('\p{_/a/bhks}');
+    Error('\P{_/a/bhks}');
     Expect(1, 72812, '\p{bhks}', "");
     Expect(0, 72812, '\p{^bhks}', "");
     Expect(0, 72812, '\P{bhks}', "");
@@ -88883,16 +89589,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72813, '\p{^bhks}', "");
     Expect(1, 72813, '\P{bhks}', "");
     Expect(0, 72813, '\P{^bhks}', "");
-    Expect(1, 72812, '\p{	 bhks}', "");
-    Expect(0, 72812, '\p{^	 bhks}', "");
-    Expect(0, 72812, '\P{	 bhks}', "");
-    Expect(1, 72812, '\P{^	 bhks}', "");
-    Expect(0, 72813, '\p{	 bhks}', "");
-    Expect(1, 72813, '\p{^	 bhks}', "");
-    Expect(1, 72813, '\P{	 bhks}', "");
-    Expect(0, 72813, '\P{^	 bhks}', "");
-    Error('\p{:=_	Is_Bhks}');
-    Error('\P{:=_	Is_Bhks}');
+    Expect(1, 72812, '\p{-_Bhks}', "");
+    Expect(0, 72812, '\p{^-_Bhks}', "");
+    Expect(0, 72812, '\P{-_Bhks}', "");
+    Expect(1, 72812, '\P{^-_Bhks}', "");
+    Expect(0, 72813, '\p{-_Bhks}', "");
+    Expect(1, 72813, '\p{^-_Bhks}', "");
+    Expect(1, 72813, '\P{-_Bhks}', "");
+    Expect(0, 72813, '\P{^-_Bhks}', "");
+    Error('\p{/a/	_Is_Bhks}');
+    Error('\P{/a/	_Is_Bhks}');
     Expect(1, 72812, '\p{isbhks}', "");
     Expect(0, 72812, '\p{^isbhks}', "");
     Expect(0, 72812, '\P{isbhks}', "");
@@ -88901,16 +89607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72813, '\p{^isbhks}', "");
     Expect(1, 72813, '\P{isbhks}', "");
     Expect(0, 72813, '\P{^isbhks}', "");
-    Expect(1, 72812, '\p{	_Is_Bhks}', "");
-    Expect(0, 72812, '\p{^	_Is_Bhks}', "");
-    Expect(0, 72812, '\P{	_Is_Bhks}', "");
-    Expect(1, 72812, '\P{^	_Is_Bhks}', "");
-    Expect(0, 72813, '\p{	_Is_Bhks}', "");
-    Expect(1, 72813, '\p{^	_Is_Bhks}', "");
-    Expect(1, 72813, '\P{	_Is_Bhks}', "");
-    Expect(0, 72813, '\P{^	_Is_Bhks}', "");
-    Error('\p{	 BIDI_control/a/}');
-    Error('\P{	 BIDI_control/a/}');
+    Expect(1, 72812, '\p{_ Is_Bhks}', "");
+    Expect(0, 72812, '\p{^_ Is_Bhks}', "");
+    Expect(0, 72812, '\P{_ Is_Bhks}', "");
+    Expect(1, 72812, '\P{^_ Is_Bhks}', "");
+    Expect(0, 72813, '\p{_ Is_Bhks}', "");
+    Expect(1, 72813, '\p{^_ Is_Bhks}', "");
+    Expect(1, 72813, '\P{_ Is_Bhks}', "");
+    Expect(0, 72813, '\P{^_ Is_Bhks}', "");
+    Error('\p{		BIDI_Control:=}');
+    Error('\P{		BIDI_Control:=}');
     Expect(1, 8297, '\p{bidicontrol}', "");
     Expect(0, 8297, '\p{^bidicontrol}', "");
     Expect(0, 8297, '\P{bidicontrol}', "");
@@ -88919,16 +89625,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8298, '\p{^bidicontrol}', "");
     Expect(1, 8298, '\P{bidicontrol}', "");
     Expect(0, 8298, '\P{^bidicontrol}', "");
-    Expect(1, 8297, '\p{ 	Bidi_Control}', "");
-    Expect(0, 8297, '\p{^ 	Bidi_Control}', "");
-    Expect(0, 8297, '\P{ 	Bidi_Control}', "");
-    Expect(1, 8297, '\P{^ 	Bidi_Control}', "");
-    Expect(0, 8298, '\p{ 	Bidi_Control}', "");
-    Expect(1, 8298, '\p{^ 	Bidi_Control}', "");
-    Expect(1, 8298, '\P{ 	Bidi_Control}', "");
-    Expect(0, 8298, '\P{^ 	Bidi_Control}', "");
-    Error('\p{/a/-	Is_bidi_control}');
-    Error('\P{/a/-	Is_bidi_control}');
+    Expect(1, 8297, '\p{-_BIDI_CONTROL}', "");
+    Expect(0, 8297, '\p{^-_BIDI_CONTROL}', "");
+    Expect(0, 8297, '\P{-_BIDI_CONTROL}', "");
+    Expect(1, 8297, '\P{^-_BIDI_CONTROL}', "");
+    Expect(0, 8298, '\p{-_BIDI_CONTROL}', "");
+    Expect(1, 8298, '\p{^-_BIDI_CONTROL}', "");
+    Expect(1, 8298, '\P{-_BIDI_CONTROL}', "");
+    Expect(0, 8298, '\P{^-_BIDI_CONTROL}', "");
+    Error('\p{ /a/Is_Bidi_Control}');
+    Error('\P{ /a/Is_Bidi_Control}');
     Expect(1, 8297, '\p{isbidicontrol}', "");
     Expect(0, 8297, '\p{^isbidicontrol}', "");
     Expect(0, 8297, '\P{isbidicontrol}', "");
@@ -88937,16 +89643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8298, '\p{^isbidicontrol}', "");
     Expect(1, 8298, '\P{isbidicontrol}', "");
     Expect(0, 8298, '\P{^isbidicontrol}', "");
-    Expect(1, 8297, '\p{__Is_Bidi_CONTROL}', "");
-    Expect(0, 8297, '\p{^__Is_Bidi_CONTROL}', "");
-    Expect(0, 8297, '\P{__Is_Bidi_CONTROL}', "");
-    Expect(1, 8297, '\P{^__Is_Bidi_CONTROL}', "");
-    Expect(0, 8298, '\p{__Is_Bidi_CONTROL}', "");
-    Expect(1, 8298, '\p{^__Is_Bidi_CONTROL}', "");
-    Expect(1, 8298, '\P{__Is_Bidi_CONTROL}', "");
-    Expect(0, 8298, '\P{^__Is_Bidi_CONTROL}', "");
-    Error('\p{ bidi_c/a/}');
-    Error('\P{ bidi_c/a/}');
+    Expect(1, 8297, '\p{--Is_bidi_Control}', "");
+    Expect(0, 8297, '\p{^--Is_bidi_Control}', "");
+    Expect(0, 8297, '\P{--Is_bidi_Control}', "");
+    Expect(1, 8297, '\P{^--Is_bidi_Control}', "");
+    Expect(0, 8298, '\p{--Is_bidi_Control}', "");
+    Expect(1, 8298, '\p{^--Is_bidi_Control}', "");
+    Expect(1, 8298, '\P{--Is_bidi_Control}', "");
+    Expect(0, 8298, '\P{^--Is_bidi_Control}', "");
+    Error('\p{ :=bidi_c}');
+    Error('\P{ :=bidi_c}');
     Expect(1, 8297, '\p{bidic}', "");
     Expect(0, 8297, '\p{^bidic}', "");
     Expect(0, 8297, '\P{bidic}', "");
@@ -88955,16 +89661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8298, '\p{^bidic}', "");
     Expect(1, 8298, '\P{bidic}', "");
     Expect(0, 8298, '\P{^bidic}', "");
-    Expect(1, 8297, '\p{_	Bidi_c}', "");
-    Expect(0, 8297, '\p{^_	Bidi_c}', "");
-    Expect(0, 8297, '\P{_	Bidi_c}', "");
-    Expect(1, 8297, '\P{^_	Bidi_c}', "");
-    Expect(0, 8298, '\p{_	Bidi_c}', "");
-    Expect(1, 8298, '\p{^_	Bidi_c}', "");
-    Expect(1, 8298, '\P{_	Bidi_c}', "");
-    Expect(0, 8298, '\P{^_	Bidi_c}', "");
-    Error('\p{-:=is_Bidi_C}');
-    Error('\P{-:=is_Bidi_C}');
+    Expect(1, 8297, '\p{_bidi_C}', "");
+    Expect(0, 8297, '\p{^_bidi_C}', "");
+    Expect(0, 8297, '\P{_bidi_C}', "");
+    Expect(1, 8297, '\P{^_bidi_C}', "");
+    Expect(0, 8298, '\p{_bidi_C}', "");
+    Expect(1, 8298, '\p{^_bidi_C}', "");
+    Expect(1, 8298, '\P{_bidi_C}', "");
+    Expect(0, 8298, '\P{^_bidi_C}', "");
+    Error('\p{-/a/IS_BIDI_C}');
+    Error('\P{-/a/IS_BIDI_C}');
     Expect(1, 8297, '\p{isbidic}', "");
     Expect(0, 8297, '\p{^isbidic}', "");
     Expect(0, 8297, '\P{isbidic}', "");
@@ -88973,16 +89679,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8298, '\p{^isbidic}', "");
     Expect(1, 8298, '\P{isbidic}', "");
     Expect(0, 8298, '\P{^isbidic}', "");
-    Expect(1, 8297, '\p{- Is_BIDI_C}', "");
-    Expect(0, 8297, '\p{^- Is_BIDI_C}', "");
-    Expect(0, 8297, '\P{- Is_BIDI_C}', "");
-    Expect(1, 8297, '\P{^- Is_BIDI_C}', "");
-    Expect(0, 8298, '\p{- Is_BIDI_C}', "");
-    Expect(1, 8298, '\p{^- Is_BIDI_C}', "");
-    Expect(1, 8298, '\P{- Is_BIDI_C}', "");
-    Expect(0, 8298, '\P{^- Is_BIDI_C}', "");
-    Error('\p{:=	_BIDI_Mirrored}');
-    Error('\P{:=	_BIDI_Mirrored}');
+    Expect(1, 8297, '\p{_-is_Bidi_C}', "");
+    Expect(0, 8297, '\p{^_-is_Bidi_C}', "");
+    Expect(0, 8297, '\P{_-is_Bidi_C}', "");
+    Expect(1, 8297, '\P{^_-is_Bidi_C}', "");
+    Expect(0, 8298, '\p{_-is_Bidi_C}', "");
+    Expect(1, 8298, '\p{^_-is_Bidi_C}', "");
+    Expect(1, 8298, '\P{_-is_Bidi_C}', "");
+    Expect(0, 8298, '\P{^_-is_Bidi_C}', "");
+    Error('\p{:=-bidi_MIRRORED}');
+    Error('\P{:=-bidi_MIRRORED}');
     Expect(1, 120771, '\p{bidimirrored}', "");
     Expect(0, 120771, '\p{^bidimirrored}', "");
     Expect(0, 120771, '\P{bidimirrored}', "");
@@ -88991,16 +89697,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120772, '\p{^bidimirrored}', "");
     Expect(1, 120772, '\P{bidimirrored}', "");
     Expect(0, 120772, '\P{^bidimirrored}', "");
-    Expect(1, 120771, '\p{Bidi_Mirrored}', "");
-    Expect(0, 120771, '\p{^Bidi_Mirrored}', "");
-    Expect(0, 120771, '\P{Bidi_Mirrored}', "");
-    Expect(1, 120771, '\P{^Bidi_Mirrored}', "");
-    Expect(0, 120772, '\p{Bidi_Mirrored}', "");
-    Expect(1, 120772, '\p{^Bidi_Mirrored}', "");
-    Expect(1, 120772, '\P{Bidi_Mirrored}', "");
-    Expect(0, 120772, '\P{^Bidi_Mirrored}', "");
-    Error('\p{-Is_BIDI_MIRRORED/a/}');
-    Error('\P{-Is_BIDI_MIRRORED/a/}');
+    Expect(1, 120771, '\p{ Bidi_mirrored}', "");
+    Expect(0, 120771, '\p{^ Bidi_mirrored}', "");
+    Expect(0, 120771, '\P{ Bidi_mirrored}', "");
+    Expect(1, 120771, '\P{^ Bidi_mirrored}', "");
+    Expect(0, 120772, '\p{ Bidi_mirrored}', "");
+    Expect(1, 120772, '\p{^ Bidi_mirrored}', "");
+    Expect(1, 120772, '\P{ Bidi_mirrored}', "");
+    Expect(0, 120772, '\P{^ Bidi_mirrored}', "");
+    Error('\p{ /a/is_Bidi_Mirrored}');
+    Error('\P{ /a/is_Bidi_Mirrored}');
     Expect(1, 120771, '\p{isbidimirrored}', "");
     Expect(0, 120771, '\p{^isbidimirrored}', "");
     Expect(0, 120771, '\P{isbidimirrored}', "");
@@ -89009,16 +89715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120772, '\p{^isbidimirrored}', "");
     Expect(1, 120772, '\P{isbidimirrored}', "");
     Expect(0, 120772, '\P{^isbidimirrored}', "");
-    Expect(1, 120771, '\p{__IS_Bidi_MIRRORED}', "");
-    Expect(0, 120771, '\p{^__IS_Bidi_MIRRORED}', "");
-    Expect(0, 120771, '\P{__IS_Bidi_MIRRORED}', "");
-    Expect(1, 120771, '\P{^__IS_Bidi_MIRRORED}', "");
-    Expect(0, 120772, '\p{__IS_Bidi_MIRRORED}', "");
-    Expect(1, 120772, '\p{^__IS_Bidi_MIRRORED}', "");
-    Expect(1, 120772, '\P{__IS_Bidi_MIRRORED}', "");
-    Expect(0, 120772, '\P{^__IS_Bidi_MIRRORED}', "");
-    Error('\p{	:=Bidi_M}');
-    Error('\P{	:=Bidi_M}');
+    Expect(1, 120771, '\p{-is_bidi_MIRRORED}', "");
+    Expect(0, 120771, '\p{^-is_bidi_MIRRORED}', "");
+    Expect(0, 120771, '\P{-is_bidi_MIRRORED}', "");
+    Expect(1, 120771, '\P{^-is_bidi_MIRRORED}', "");
+    Expect(0, 120772, '\p{-is_bidi_MIRRORED}', "");
+    Expect(1, 120772, '\p{^-is_bidi_MIRRORED}', "");
+    Expect(1, 120772, '\P{-is_bidi_MIRRORED}', "");
+    Expect(0, 120772, '\P{^-is_bidi_MIRRORED}', "");
+    Error('\p{:=-BIDI_M}');
+    Error('\P{:=-BIDI_M}');
     Expect(1, 120771, '\p{bidim}', "");
     Expect(0, 120771, '\p{^bidim}', "");
     Expect(0, 120771, '\P{bidim}', "");
@@ -89027,16 +89733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120772, '\p{^bidim}', "");
     Expect(1, 120772, '\P{bidim}', "");
     Expect(0, 120772, '\P{^bidim}', "");
-    Expect(1, 120771, '\p{--bidi_M}', "");
-    Expect(0, 120771, '\p{^--bidi_M}', "");
-    Expect(0, 120771, '\P{--bidi_M}', "");
-    Expect(1, 120771, '\P{^--bidi_M}', "");
-    Expect(0, 120772, '\p{--bidi_M}', "");
-    Expect(1, 120772, '\p{^--bidi_M}', "");
-    Expect(1, 120772, '\P{--bidi_M}', "");
-    Expect(0, 120772, '\P{^--bidi_M}', "");
-    Error('\p{/a/-IS_BIDI_m}');
-    Error('\P{/a/-IS_BIDI_m}');
+    Expect(1, 120771, '\p{	bidi_M}', "");
+    Expect(0, 120771, '\p{^	bidi_M}', "");
+    Expect(0, 120771, '\P{	bidi_M}', "");
+    Expect(1, 120771, '\P{^	bidi_M}', "");
+    Expect(0, 120772, '\p{	bidi_M}', "");
+    Expect(1, 120772, '\p{^	bidi_M}', "");
+    Expect(1, 120772, '\P{	bidi_M}', "");
+    Expect(0, 120772, '\P{^	bidi_M}', "");
+    Error('\p{_	IS_BIDI_M:=}');
+    Error('\P{_	IS_BIDI_M:=}');
     Expect(1, 120771, '\p{isbidim}', "");
     Expect(0, 120771, '\p{^isbidim}', "");
     Expect(0, 120771, '\P{isbidim}', "");
@@ -89045,16 +89751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120772, '\p{^isbidim}', "");
     Expect(1, 120772, '\P{isbidim}', "");
     Expect(0, 120772, '\P{^isbidim}', "");
-    Expect(1, 120771, '\p{_Is_Bidi_m}', "");
-    Expect(0, 120771, '\p{^_Is_Bidi_m}', "");
-    Expect(0, 120771, '\P{_Is_Bidi_m}', "");
-    Expect(1, 120771, '\P{^_Is_Bidi_m}', "");
-    Expect(0, 120772, '\p{_Is_Bidi_m}', "");
-    Expect(1, 120772, '\p{^_Is_Bidi_m}', "");
-    Expect(1, 120772, '\P{_Is_Bidi_m}', "");
-    Expect(0, 120772, '\P{^_Is_Bidi_m}', "");
-    Error('\p{:=	 XPOSIXBLANK}');
-    Error('\P{:=	 XPOSIXBLANK}');
+    Expect(1, 120771, '\p{-IS_Bidi_m}', "");
+    Expect(0, 120771, '\p{^-IS_Bidi_m}', "");
+    Expect(0, 120771, '\P{-IS_Bidi_m}', "");
+    Expect(1, 120771, '\P{^-IS_Bidi_m}', "");
+    Expect(0, 120772, '\p{-IS_Bidi_m}', "");
+    Expect(1, 120772, '\p{^-IS_Bidi_m}', "");
+    Expect(1, 120772, '\P{-IS_Bidi_m}', "");
+    Expect(0, 120772, '\P{^-IS_Bidi_m}', "");
+    Error('\p{ /a/XPOSIXBLANK}');
+    Error('\P{ /a/XPOSIXBLANK}');
     Expect(1, 12288, '\p{xposixblank}', "");
     Expect(0, 12288, '\p{^xposixblank}', "");
     Expect(0, 12288, '\P{xposixblank}', "");
@@ -89063,16 +89769,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12289, '\p{^xposixblank}', "");
     Expect(1, 12289, '\P{xposixblank}', "");
     Expect(0, 12289, '\P{^xposixblank}', "");
-    Expect(1, 12288, '\p{_-XPosixBlank}', "");
-    Expect(0, 12288, '\p{^_-XPosixBlank}', "");
-    Expect(0, 12288, '\P{_-XPosixBlank}', "");
-    Expect(1, 12288, '\P{^_-XPosixBlank}', "");
-    Expect(0, 12289, '\p{_-XPosixBlank}', "");
-    Expect(1, 12289, '\p{^_-XPosixBlank}', "");
-    Expect(1, 12289, '\P{_-XPosixBlank}', "");
-    Expect(0, 12289, '\P{^_-XPosixBlank}', "");
-    Error('\p{ /a/Blank}');
-    Error('\P{ /a/Blank}');
+    Expect(1, 12288, '\p{_ xposixblank}', "");
+    Expect(0, 12288, '\p{^_ xposixblank}', "");
+    Expect(0, 12288, '\P{_ xposixblank}', "");
+    Expect(1, 12288, '\P{^_ xposixblank}', "");
+    Expect(0, 12289, '\p{_ xposixblank}', "");
+    Expect(1, 12289, '\p{^_ xposixblank}', "");
+    Expect(1, 12289, '\P{_ xposixblank}', "");
+    Expect(0, 12289, '\P{^_ xposixblank}', "");
+    Error('\p{:=	blank}');
+    Error('\P{:=	blank}');
     Expect(1, 12288, '\p{blank}', "");
     Expect(0, 12288, '\p{^blank}', "");
     Expect(0, 12288, '\P{blank}', "");
@@ -89081,16 +89787,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12289, '\p{^blank}', "");
     Expect(1, 12289, '\P{blank}', "");
     Expect(0, 12289, '\P{^blank}', "");
-    Expect(1, 12288, '\p{	blank}', "");
-    Expect(0, 12288, '\p{^	blank}', "");
-    Expect(0, 12288, '\P{	blank}', "");
-    Expect(1, 12288, '\P{^	blank}', "");
-    Expect(0, 12289, '\p{	blank}', "");
-    Expect(1, 12289, '\p{^	blank}', "");
-    Expect(1, 12289, '\P{	blank}', "");
-    Expect(0, 12289, '\P{^	blank}', "");
-    Error('\p{:= 	HorizSpace}');
-    Error('\P{:= 	HorizSpace}');
+    Expect(1, 12288, '\p{ BLANK}', "");
+    Expect(0, 12288, '\p{^ BLANK}', "");
+    Expect(0, 12288, '\P{ BLANK}', "");
+    Expect(1, 12288, '\P{^ BLANK}', "");
+    Expect(0, 12289, '\p{ BLANK}', "");
+    Expect(1, 12289, '\p{^ BLANK}', "");
+    Expect(1, 12289, '\P{ BLANK}', "");
+    Expect(0, 12289, '\P{^ BLANK}', "");
+    Error('\p{:=- HORIZSPACE}');
+    Error('\P{:=- HORIZSPACE}');
     Expect(1, 12288, '\p{horizspace}', "");
     Expect(0, 12288, '\p{^horizspace}', "");
     Expect(0, 12288, '\P{horizspace}', "");
@@ -89099,16 +89805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12289, '\p{^horizspace}', "");
     Expect(1, 12289, '\P{horizspace}', "");
     Expect(0, 12289, '\P{^horizspace}', "");
-    Expect(1, 12288, '\p{-	HorizSpace}', "");
-    Expect(0, 12288, '\p{^-	HorizSpace}', "");
-    Expect(0, 12288, '\P{-	HorizSpace}', "");
-    Expect(1, 12288, '\P{^-	HorizSpace}', "");
-    Expect(0, 12289, '\p{-	HorizSpace}', "");
-    Expect(1, 12289, '\p{^-	HorizSpace}', "");
-    Expect(1, 12289, '\P{-	HorizSpace}', "");
-    Expect(0, 12289, '\P{^-	HorizSpace}', "");
-    Error('\p{ :=is_xposixblank}');
-    Error('\P{ :=is_xposixblank}');
+    Expect(1, 12288, '\p{_ HorizSpace}', "");
+    Expect(0, 12288, '\p{^_ HorizSpace}', "");
+    Expect(0, 12288, '\P{_ HorizSpace}', "");
+    Expect(1, 12288, '\P{^_ HorizSpace}', "");
+    Expect(0, 12289, '\p{_ HorizSpace}', "");
+    Expect(1, 12289, '\p{^_ HorizSpace}', "");
+    Expect(1, 12289, '\P{_ HorizSpace}', "");
+    Expect(0, 12289, '\P{^_ HorizSpace}', "");
+    Error('\p{:=_Is_XPosixBlank}');
+    Error('\P{:=_Is_XPosixBlank}');
     Expect(1, 12288, '\p{isxposixblank}', "");
     Expect(0, 12288, '\p{^isxposixblank}', "");
     Expect(0, 12288, '\P{isxposixblank}', "");
@@ -89117,16 +89823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12289, '\p{^isxposixblank}', "");
     Expect(1, 12289, '\P{isxposixblank}', "");
     Expect(0, 12289, '\P{^isxposixblank}', "");
-    Expect(1, 12288, '\p{ Is_XPosixBlank}', "");
-    Expect(0, 12288, '\p{^ Is_XPosixBlank}', "");
-    Expect(0, 12288, '\P{ Is_XPosixBlank}', "");
-    Expect(1, 12288, '\P{^ Is_XPosixBlank}', "");
-    Expect(0, 12289, '\p{ Is_XPosixBlank}', "");
-    Expect(1, 12289, '\p{^ Is_XPosixBlank}', "");
-    Expect(1, 12289, '\P{ Is_XPosixBlank}', "");
-    Expect(0, 12289, '\P{^ Is_XPosixBlank}', "");
-    Error('\p{_/a/Is_BLANK}');
-    Error('\P{_/a/Is_BLANK}');
+    Expect(1, 12288, '\p{-Is_xposixblank}', "");
+    Expect(0, 12288, '\p{^-Is_xposixblank}', "");
+    Expect(0, 12288, '\P{-Is_xposixblank}', "");
+    Expect(1, 12288, '\P{^-Is_xposixblank}', "");
+    Expect(0, 12289, '\p{-Is_xposixblank}', "");
+    Expect(1, 12289, '\p{^-Is_xposixblank}', "");
+    Expect(1, 12289, '\P{-Is_xposixblank}', "");
+    Expect(0, 12289, '\P{^-Is_xposixblank}', "");
+    Error('\p{	 IS_Blank/a/}');
+    Error('\P{	 IS_Blank/a/}');
     Expect(1, 12288, '\p{isblank}', "");
     Expect(0, 12288, '\p{^isblank}', "");
     Expect(0, 12288, '\P{isblank}', "");
@@ -89135,16 +89841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12289, '\p{^isblank}', "");
     Expect(1, 12289, '\P{isblank}', "");
     Expect(0, 12289, '\P{^isblank}', "");
-    Expect(1, 12288, '\p{-	is_Blank}', "");
-    Expect(0, 12288, '\p{^-	is_Blank}', "");
-    Expect(0, 12288, '\P{-	is_Blank}', "");
-    Expect(1, 12288, '\P{^-	is_Blank}', "");
-    Expect(0, 12289, '\p{-	is_Blank}', "");
-    Expect(1, 12289, '\p{^-	is_Blank}', "");
-    Expect(1, 12289, '\P{-	is_Blank}', "");
-    Expect(0, 12289, '\P{^-	is_Blank}', "");
-    Error('\p{ :=Is_HorizSpace}');
-    Error('\P{ :=Is_HorizSpace}');
+    Expect(1, 12288, '\p{	_is_Blank}', "");
+    Expect(0, 12288, '\p{^	_is_Blank}', "");
+    Expect(0, 12288, '\P{	_is_Blank}', "");
+    Expect(1, 12288, '\P{^	_is_Blank}', "");
+    Expect(0, 12289, '\p{	_is_Blank}', "");
+    Expect(1, 12289, '\p{^	_is_Blank}', "");
+    Expect(1, 12289, '\P{	_is_Blank}', "");
+    Expect(0, 12289, '\P{^	_is_Blank}', "");
+    Error('\p{:=--Is_HorizSpace}');
+    Error('\P{:=--Is_HorizSpace}');
     Expect(1, 12288, '\p{ishorizspace}', "");
     Expect(0, 12288, '\p{^ishorizspace}', "");
     Expect(0, 12288, '\P{ishorizspace}', "");
@@ -89153,16 +89859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12289, '\p{^ishorizspace}', "");
     Expect(1, 12289, '\P{ishorizspace}', "");
     Expect(0, 12289, '\P{^ishorizspace}', "");
-    Expect(1, 12288, '\p{  Is_HorizSpace}', "");
-    Expect(0, 12288, '\p{^  Is_HorizSpace}', "");
-    Expect(0, 12288, '\P{  Is_HorizSpace}', "");
-    Expect(1, 12288, '\P{^  Is_HorizSpace}', "");
-    Expect(0, 12289, '\p{  Is_HorizSpace}', "");
-    Expect(1, 12289, '\p{^  Is_HorizSpace}', "");
-    Expect(1, 12289, '\P{  Is_HorizSpace}', "");
-    Expect(0, 12289, '\P{^  Is_HorizSpace}', "");
-    Error('\p{_	Block_Elements/a/}');
-    Error('\P{_	Block_Elements/a/}');
+    Expect(1, 12288, '\p{	_Is_horizspace}', "");
+    Expect(0, 12288, '\p{^	_Is_horizspace}', "");
+    Expect(0, 12288, '\P{	_Is_horizspace}', "");
+    Expect(1, 12288, '\P{^	_Is_horizspace}', "");
+    Expect(0, 12289, '\p{	_Is_horizspace}', "");
+    Expect(1, 12289, '\p{^	_Is_horizspace}', "");
+    Expect(1, 12289, '\P{	_Is_horizspace}', "");
+    Expect(0, 12289, '\P{^	_Is_horizspace}', "");
+    Error('\p{/a/_BLOCK_elements}');
+    Error('\P{/a/_BLOCK_elements}');
     Expect(1, 9631, '\p{blockelements}', "");
     Expect(0, 9631, '\p{^blockelements}', "");
     Expect(0, 9631, '\P{blockelements}', "");
@@ -89171,16 +89877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9632, '\p{^blockelements}', "");
     Expect(1, 9632, '\P{blockelements}', "");
     Expect(0, 9632, '\P{^blockelements}', "");
-    Expect(1, 9631, '\p{	 Block_Elements}', "");
-    Expect(0, 9631, '\p{^	 Block_Elements}', "");
-    Expect(0, 9631, '\P{	 Block_Elements}', "");
-    Expect(1, 9631, '\P{^	 Block_Elements}', "");
-    Expect(0, 9632, '\p{	 Block_Elements}', "");
-    Expect(1, 9632, '\p{^	 Block_Elements}', "");
-    Expect(1, 9632, '\P{	 Block_Elements}', "");
-    Expect(0, 9632, '\P{^	 Block_Elements}', "");
-    Error('\p{-Is_BLOCK_ELEMENTS/a/}');
-    Error('\P{-Is_BLOCK_ELEMENTS/a/}');
+    Expect(1, 9631, '\p{- block_Elements}', "");
+    Expect(0, 9631, '\p{^- block_Elements}', "");
+    Expect(0, 9631, '\P{- block_Elements}', "");
+    Expect(1, 9631, '\P{^- block_Elements}', "");
+    Expect(0, 9632, '\p{- block_Elements}', "");
+    Expect(1, 9632, '\p{^- block_Elements}', "");
+    Expect(1, 9632, '\P{- block_Elements}', "");
+    Expect(0, 9632, '\P{^- block_Elements}', "");
+    Error('\p{:=	Is_Block_Elements}');
+    Error('\P{:=	Is_Block_Elements}');
     Expect(1, 9631, '\p{isblockelements}', "");
     Expect(0, 9631, '\p{^isblockelements}', "");
     Expect(0, 9631, '\P{isblockelements}', "");
@@ -89189,16 +89895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9632, '\p{^isblockelements}', "");
     Expect(1, 9632, '\P{isblockelements}', "");
     Expect(0, 9632, '\P{^isblockelements}', "");
-    Expect(1, 9631, '\p{-Is_Block_ELEMENTS}', "");
-    Expect(0, 9631, '\p{^-Is_Block_ELEMENTS}', "");
-    Expect(0, 9631, '\P{-Is_Block_ELEMENTS}', "");
-    Expect(1, 9631, '\P{^-Is_Block_ELEMENTS}', "");
-    Expect(0, 9632, '\p{-Is_Block_ELEMENTS}', "");
-    Expect(1, 9632, '\p{^-Is_Block_ELEMENTS}', "");
-    Expect(1, 9632, '\P{-Is_Block_ELEMENTS}', "");
-    Expect(0, 9632, '\P{^-Is_Block_ELEMENTS}', "");
-    Error('\p{ :=In_Block_elements}');
-    Error('\P{ :=In_Block_elements}');
+    Expect(1, 9631, '\p{_-IS_BLOCK_Elements}', "");
+    Expect(0, 9631, '\p{^_-IS_BLOCK_Elements}', "");
+    Expect(0, 9631, '\P{_-IS_BLOCK_Elements}', "");
+    Expect(1, 9631, '\P{^_-IS_BLOCK_Elements}', "");
+    Expect(0, 9632, '\p{_-IS_BLOCK_Elements}', "");
+    Expect(1, 9632, '\p{^_-IS_BLOCK_Elements}', "");
+    Expect(1, 9632, '\P{_-IS_BLOCK_Elements}', "");
+    Expect(0, 9632, '\P{^_-IS_BLOCK_Elements}', "");
+    Error('\p{/a/ in_block_elements}');
+    Error('\P{/a/ in_block_elements}');
     Expect(1, 9631, '\p{inblockelements}', "");
     Expect(0, 9631, '\p{^inblockelements}', "");
     Expect(0, 9631, '\P{inblockelements}', "");
@@ -89207,16 +89913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9632, '\p{^inblockelements}', "");
     Expect(1, 9632, '\P{inblockelements}', "");
     Expect(0, 9632, '\P{^inblockelements}', "");
-    Expect(1, 9631, '\p{_	in_block_Elements}', "");
-    Expect(0, 9631, '\p{^_	in_block_Elements}', "");
-    Expect(0, 9631, '\P{_	in_block_Elements}', "");
-    Expect(1, 9631, '\P{^_	in_block_Elements}', "");
-    Expect(0, 9632, '\p{_	in_block_Elements}', "");
-    Expect(1, 9632, '\p{^_	in_block_Elements}', "");
-    Expect(1, 9632, '\P{_	in_block_Elements}', "");
-    Expect(0, 9632, '\P{^_	in_block_Elements}', "");
-    Error('\p{	-Bopomofo:=}');
-    Error('\P{	-Bopomofo:=}');
+    Expect(1, 9631, '\p{  In_Block_elements}', "");
+    Expect(0, 9631, '\p{^  In_Block_elements}', "");
+    Expect(0, 9631, '\P{  In_Block_elements}', "");
+    Expect(1, 9631, '\P{^  In_Block_elements}', "");
+    Expect(0, 9632, '\p{  In_Block_elements}', "");
+    Expect(1, 9632, '\p{^  In_Block_elements}', "");
+    Expect(1, 9632, '\P{  In_Block_elements}', "");
+    Expect(0, 9632, '\P{^  In_Block_elements}', "");
+    Error('\p{-:=bopomofo}');
+    Error('\P{-:=bopomofo}');
     Expect(1, 65381, '\p{bopomofo}', "");
     Expect(0, 65381, '\p{^bopomofo}', "");
     Expect(0, 65381, '\P{bopomofo}', "");
@@ -89225,16 +89931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65382, '\p{^bopomofo}', "");
     Expect(1, 65382, '\P{bopomofo}', "");
     Expect(0, 65382, '\P{^bopomofo}', "");
-    Expect(1, 65381, '\p{	BOPOMOFO}', "");
-    Expect(0, 65381, '\p{^	BOPOMOFO}', "");
-    Expect(0, 65381, '\P{	BOPOMOFO}', "");
-    Expect(1, 65381, '\P{^	BOPOMOFO}', "");
-    Expect(0, 65382, '\p{	BOPOMOFO}', "");
-    Expect(1, 65382, '\p{^	BOPOMOFO}', "");
-    Expect(1, 65382, '\P{	BOPOMOFO}', "");
-    Expect(0, 65382, '\P{^	BOPOMOFO}', "");
-    Error('\p{/a/	 Is_Bopomofo}');
-    Error('\P{/a/	 Is_Bopomofo}');
+    Expect(1, 65381, '\p{-Bopomofo}', "");
+    Expect(0, 65381, '\p{^-Bopomofo}', "");
+    Expect(0, 65381, '\P{-Bopomofo}', "");
+    Expect(1, 65381, '\P{^-Bopomofo}', "");
+    Expect(0, 65382, '\p{-Bopomofo}', "");
+    Expect(1, 65382, '\p{^-Bopomofo}', "");
+    Expect(1, 65382, '\P{-Bopomofo}', "");
+    Expect(0, 65382, '\P{^-Bopomofo}', "");
+    Error('\p{	:=is_Bopomofo}');
+    Error('\P{	:=is_Bopomofo}');
     Expect(1, 65381, '\p{isbopomofo}', "");
     Expect(0, 65381, '\p{^isbopomofo}', "");
     Expect(0, 65381, '\P{isbopomofo}', "");
@@ -89243,16 +89949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65382, '\p{^isbopomofo}', "");
     Expect(1, 65382, '\P{isbopomofo}', "");
     Expect(0, 65382, '\P{^isbopomofo}', "");
-    Expect(1, 65381, '\p{ -Is_BOPOMOFO}', "");
-    Expect(0, 65381, '\p{^ -Is_BOPOMOFO}', "");
-    Expect(0, 65381, '\P{ -Is_BOPOMOFO}', "");
-    Expect(1, 65381, '\P{^ -Is_BOPOMOFO}', "");
-    Expect(0, 65382, '\p{ -Is_BOPOMOFO}', "");
-    Expect(1, 65382, '\p{^ -Is_BOPOMOFO}', "");
-    Expect(1, 65382, '\P{ -Is_BOPOMOFO}', "");
-    Expect(0, 65382, '\P{^ -Is_BOPOMOFO}', "");
-    Error('\p{/a/ 	bopo}');
-    Error('\P{/a/ 	bopo}');
+    Expect(1, 65381, '\p{__Is_bopomofo}', "");
+    Expect(0, 65381, '\p{^__Is_bopomofo}', "");
+    Expect(0, 65381, '\P{__Is_bopomofo}', "");
+    Expect(1, 65381, '\P{^__Is_bopomofo}', "");
+    Expect(0, 65382, '\p{__Is_bopomofo}', "");
+    Expect(1, 65382, '\p{^__Is_bopomofo}', "");
+    Expect(1, 65382, '\P{__Is_bopomofo}', "");
+    Expect(0, 65382, '\P{^__Is_bopomofo}', "");
+    Error('\p{ :=Bopo}');
+    Error('\P{ :=Bopo}');
     Expect(1, 65381, '\p{bopo}', "");
     Expect(0, 65381, '\p{^bopo}', "");
     Expect(0, 65381, '\P{bopo}', "");
@@ -89261,16 +89967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65382, '\p{^bopo}', "");
     Expect(1, 65382, '\P{bopo}', "");
     Expect(0, 65382, '\P{^bopo}', "");
-    Expect(1, 65381, '\p{_-Bopo}', "");
-    Expect(0, 65381, '\p{^_-Bopo}', "");
-    Expect(0, 65381, '\P{_-Bopo}', "");
-    Expect(1, 65381, '\P{^_-Bopo}', "");
-    Expect(0, 65382, '\p{_-Bopo}', "");
-    Expect(1, 65382, '\p{^_-Bopo}', "");
-    Expect(1, 65382, '\P{_-Bopo}', "");
-    Expect(0, 65382, '\P{^_-Bopo}', "");
-    Error('\p{ /a/Is_Bopo}');
-    Error('\P{ /a/Is_Bopo}');
+    Expect(1, 65381, '\p{	_BOPO}', "");
+    Expect(0, 65381, '\p{^	_BOPO}', "");
+    Expect(0, 65381, '\P{	_BOPO}', "");
+    Expect(1, 65381, '\P{^	_BOPO}', "");
+    Expect(0, 65382, '\p{	_BOPO}', "");
+    Expect(1, 65382, '\p{^	_BOPO}', "");
+    Expect(1, 65382, '\P{	_BOPO}', "");
+    Expect(0, 65382, '\P{^	_BOPO}', "");
+    Error('\p{IS_bopo:=}');
+    Error('\P{IS_bopo:=}');
     Expect(1, 65381, '\p{isbopo}', "");
     Expect(0, 65381, '\p{^isbopo}', "");
     Expect(0, 65381, '\P{isbopo}', "");
@@ -89279,16 +89985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65382, '\p{^isbopo}', "");
     Expect(1, 65382, '\P{isbopo}', "");
     Expect(0, 65382, '\P{^isbopo}', "");
-    Expect(1, 65381, '\p{--Is_bopo}', "");
-    Expect(0, 65381, '\p{^--Is_bopo}', "");
-    Expect(0, 65381, '\P{--Is_bopo}', "");
-    Expect(1, 65381, '\P{^--Is_bopo}', "");
-    Expect(0, 65382, '\p{--Is_bopo}', "");
-    Expect(1, 65382, '\p{^--Is_bopo}', "");
-    Expect(1, 65382, '\P{--Is_bopo}', "");
-    Expect(0, 65382, '\P{^--Is_bopo}', "");
-    Error('\p{	-BOPOMOFO_Extended:=}');
-    Error('\P{	-BOPOMOFO_Extended:=}');
+    Expect(1, 65381, '\p{	-Is_Bopo}', "");
+    Expect(0, 65381, '\p{^	-Is_Bopo}', "");
+    Expect(0, 65381, '\P{	-Is_Bopo}', "");
+    Expect(1, 65381, '\P{^	-Is_Bopo}', "");
+    Expect(0, 65382, '\p{	-Is_Bopo}', "");
+    Expect(1, 65382, '\p{^	-Is_Bopo}', "");
+    Expect(1, 65382, '\P{	-Is_Bopo}', "");
+    Expect(0, 65382, '\P{^	-Is_Bopo}', "");
+    Error('\p{-/a/Bopomofo_Extended}');
+    Error('\P{-/a/Bopomofo_Extended}');
     Expect(1, 12735, '\p{bopomofoextended}', "");
     Expect(0, 12735, '\p{^bopomofoextended}', "");
     Expect(0, 12735, '\P{bopomofoextended}', "");
@@ -89297,16 +90003,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12736, '\p{^bopomofoextended}', "");
     Expect(1, 12736, '\P{bopomofoextended}', "");
     Expect(0, 12736, '\P{^bopomofoextended}', "");
-    Expect(1, 12735, '\p{ -Bopomofo_Extended}', "");
-    Expect(0, 12735, '\p{^ -Bopomofo_Extended}', "");
-    Expect(0, 12735, '\P{ -Bopomofo_Extended}', "");
-    Expect(1, 12735, '\P{^ -Bopomofo_Extended}', "");
-    Expect(0, 12736, '\p{ -Bopomofo_Extended}', "");
-    Expect(1, 12736, '\p{^ -Bopomofo_Extended}', "");
-    Expect(1, 12736, '\P{ -Bopomofo_Extended}', "");
-    Expect(0, 12736, '\P{^ -Bopomofo_Extended}', "");
-    Error('\p{_ Is_Bopomofo_extended/a/}');
-    Error('\P{_ Is_Bopomofo_extended/a/}');
+    Expect(1, 12735, '\p{BOPOMOFO_Extended}', "");
+    Expect(0, 12735, '\p{^BOPOMOFO_Extended}', "");
+    Expect(0, 12735, '\P{BOPOMOFO_Extended}', "");
+    Expect(1, 12735, '\P{^BOPOMOFO_Extended}', "");
+    Expect(0, 12736, '\p{BOPOMOFO_Extended}', "");
+    Expect(1, 12736, '\p{^BOPOMOFO_Extended}', "");
+    Expect(1, 12736, '\P{BOPOMOFO_Extended}', "");
+    Expect(0, 12736, '\P{^BOPOMOFO_Extended}', "");
+    Error('\p{/a/-IS_Bopomofo_Extended}');
+    Error('\P{/a/-IS_Bopomofo_Extended}');
     Expect(1, 12735, '\p{isbopomofoextended}', "");
     Expect(0, 12735, '\p{^isbopomofoextended}', "");
     Expect(0, 12735, '\P{isbopomofoextended}', "");
@@ -89315,16 +90021,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12736, '\p{^isbopomofoextended}', "");
     Expect(1, 12736, '\P{isbopomofoextended}', "");
     Expect(0, 12736, '\P{^isbopomofoextended}', "");
-    Expect(1, 12735, '\p{--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12735, '\p{^--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12735, '\P{--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(1, 12735, '\P{^--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12736, '\p{--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(1, 12736, '\p{^--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(1, 12736, '\P{--IS_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12736, '\P{^--IS_BOPOMOFO_EXTENDED}', "");
-    Error('\p{:=In_BOPOMOFO_Extended}');
-    Error('\P{:=In_BOPOMOFO_Extended}');
+    Expect(1, 12735, '\p{ _is_Bopomofo_Extended}', "");
+    Expect(0, 12735, '\p{^ _is_Bopomofo_Extended}', "");
+    Expect(0, 12735, '\P{ _is_Bopomofo_Extended}', "");
+    Expect(1, 12735, '\P{^ _is_Bopomofo_Extended}', "");
+    Expect(0, 12736, '\p{ _is_Bopomofo_Extended}', "");
+    Expect(1, 12736, '\p{^ _is_Bopomofo_Extended}', "");
+    Expect(1, 12736, '\P{ _is_Bopomofo_Extended}', "");
+    Expect(0, 12736, '\P{^ _is_Bopomofo_Extended}', "");
+    Error('\p{/a/IN_BOPOMOFO_EXTENDED}');
+    Error('\P{/a/IN_BOPOMOFO_EXTENDED}');
     Expect(1, 12735, '\p{inbopomofoextended}', "");
     Expect(0, 12735, '\p{^inbopomofoextended}', "");
     Expect(0, 12735, '\P{inbopomofoextended}', "");
@@ -89333,16 +90039,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12736, '\p{^inbopomofoextended}', "");
     Expect(1, 12736, '\P{inbopomofoextended}', "");
     Expect(0, 12736, '\P{^inbopomofoextended}', "");
-    Expect(1, 12735, '\p{__In_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12735, '\p{^__In_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12735, '\P{__In_BOPOMOFO_EXTENDED}', "");
-    Expect(1, 12735, '\P{^__In_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12736, '\p{__In_BOPOMOFO_EXTENDED}', "");
-    Expect(1, 12736, '\p{^__In_BOPOMOFO_EXTENDED}', "");
-    Expect(1, 12736, '\P{__In_BOPOMOFO_EXTENDED}', "");
-    Expect(0, 12736, '\P{^__In_BOPOMOFO_EXTENDED}', "");
-    Error('\p{	/a/Bopomofo_Ext}');
-    Error('\P{	/a/Bopomofo_Ext}');
+    Expect(1, 12735, '\p{  In_Bopomofo_Extended}', "");
+    Expect(0, 12735, '\p{^  In_Bopomofo_Extended}', "");
+    Expect(0, 12735, '\P{  In_Bopomofo_Extended}', "");
+    Expect(1, 12735, '\P{^  In_Bopomofo_Extended}', "");
+    Expect(0, 12736, '\p{  In_Bopomofo_Extended}', "");
+    Expect(1, 12736, '\p{^  In_Bopomofo_Extended}', "");
+    Expect(1, 12736, '\P{  In_Bopomofo_Extended}', "");
+    Expect(0, 12736, '\P{^  In_Bopomofo_Extended}', "");
+    Error('\p{ :=Bopomofo_Ext}');
+    Error('\P{ :=Bopomofo_Ext}');
     Expect(1, 12735, '\p{bopomofoext}', "");
     Expect(0, 12735, '\p{^bopomofoext}', "");
     Expect(0, 12735, '\P{bopomofoext}', "");
@@ -89351,16 +90057,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12736, '\p{^bopomofoext}', "");
     Expect(1, 12736, '\P{bopomofoext}', "");
     Expect(0, 12736, '\P{^bopomofoext}', "");
-    Expect(1, 12735, '\p{_ bopomofo_EXT}', "");
-    Expect(0, 12735, '\p{^_ bopomofo_EXT}', "");
-    Expect(0, 12735, '\P{_ bopomofo_EXT}', "");
-    Expect(1, 12735, '\P{^_ bopomofo_EXT}', "");
-    Expect(0, 12736, '\p{_ bopomofo_EXT}', "");
-    Expect(1, 12736, '\p{^_ bopomofo_EXT}', "");
-    Expect(1, 12736, '\P{_ bopomofo_EXT}', "");
-    Expect(0, 12736, '\P{^_ bopomofo_EXT}', "");
-    Error('\p{-IS_Bopomofo_EXT/a/}');
-    Error('\P{-IS_Bopomofo_EXT/a/}');
+    Expect(1, 12735, '\p{__bopomofo_Ext}', "");
+    Expect(0, 12735, '\p{^__bopomofo_Ext}', "");
+    Expect(0, 12735, '\P{__bopomofo_Ext}', "");
+    Expect(1, 12735, '\P{^__bopomofo_Ext}', "");
+    Expect(0, 12736, '\p{__bopomofo_Ext}', "");
+    Expect(1, 12736, '\p{^__bopomofo_Ext}', "");
+    Expect(1, 12736, '\P{__bopomofo_Ext}', "");
+    Expect(0, 12736, '\P{^__bopomofo_Ext}', "");
+    Error('\p{:=-_is_BOPOMOFO_Ext}');
+    Error('\P{:=-_is_BOPOMOFO_Ext}');
     Expect(1, 12735, '\p{isbopomofoext}', "");
     Expect(0, 12735, '\p{^isbopomofoext}', "");
     Expect(0, 12735, '\P{isbopomofoext}', "");
@@ -89369,16 +90075,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12736, '\p{^isbopomofoext}', "");
     Expect(1, 12736, '\P{isbopomofoext}', "");
     Expect(0, 12736, '\P{^isbopomofoext}', "");
-    Expect(1, 12735, '\p{ Is_Bopomofo_Ext}', "");
-    Expect(0, 12735, '\p{^ Is_Bopomofo_Ext}', "");
-    Expect(0, 12735, '\P{ Is_Bopomofo_Ext}', "");
-    Expect(1, 12735, '\P{^ Is_Bopomofo_Ext}', "");
-    Expect(0, 12736, '\p{ Is_Bopomofo_Ext}', "");
-    Expect(1, 12736, '\p{^ Is_Bopomofo_Ext}', "");
-    Expect(1, 12736, '\P{ Is_Bopomofo_Ext}', "");
-    Expect(0, 12736, '\P{^ Is_Bopomofo_Ext}', "");
-    Error('\p{-	In_Bopomofo_Ext/a/}');
-    Error('\P{-	In_Bopomofo_Ext/a/}');
+    Expect(1, 12735, '\p{	-IS_BOPOMOFO_EXT}', "");
+    Expect(0, 12735, '\p{^	-IS_BOPOMOFO_EXT}', "");
+    Expect(0, 12735, '\P{	-IS_BOPOMOFO_EXT}', "");
+    Expect(1, 12735, '\P{^	-IS_BOPOMOFO_EXT}', "");
+    Expect(0, 12736, '\p{	-IS_BOPOMOFO_EXT}', "");
+    Expect(1, 12736, '\p{^	-IS_BOPOMOFO_EXT}', "");
+    Expect(1, 12736, '\P{	-IS_BOPOMOFO_EXT}', "");
+    Expect(0, 12736, '\P{^	-IS_BOPOMOFO_EXT}', "");
+    Error('\p{	:=IN_bopomofo_EXT}');
+    Error('\P{	:=IN_bopomofo_EXT}');
     Expect(1, 12735, '\p{inbopomofoext}', "");
     Expect(0, 12735, '\p{^inbopomofoext}', "");
     Expect(0, 12735, '\P{inbopomofoext}', "");
@@ -89387,16 +90093,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12736, '\p{^inbopomofoext}', "");
     Expect(1, 12736, '\P{inbopomofoext}', "");
     Expect(0, 12736, '\P{^inbopomofoext}', "");
-    Expect(1, 12735, '\p{-In_Bopomofo_Ext}', "");
-    Expect(0, 12735, '\p{^-In_Bopomofo_Ext}', "");
-    Expect(0, 12735, '\P{-In_Bopomofo_Ext}', "");
-    Expect(1, 12735, '\P{^-In_Bopomofo_Ext}', "");
-    Expect(0, 12736, '\p{-In_Bopomofo_Ext}', "");
-    Expect(1, 12736, '\p{^-In_Bopomofo_Ext}', "");
-    Expect(1, 12736, '\P{-In_Bopomofo_Ext}', "");
-    Expect(0, 12736, '\P{^-In_Bopomofo_Ext}', "");
-    Error('\p{/a/Box_drawing}');
-    Error('\P{/a/Box_drawing}');
+    Expect(1, 12735, '\p{_	In_bopomofo_ext}', "");
+    Expect(0, 12735, '\p{^_	In_bopomofo_ext}', "");
+    Expect(0, 12735, '\P{_	In_bopomofo_ext}', "");
+    Expect(1, 12735, '\P{^_	In_bopomofo_ext}', "");
+    Expect(0, 12736, '\p{_	In_bopomofo_ext}', "");
+    Expect(1, 12736, '\p{^_	In_bopomofo_ext}', "");
+    Expect(1, 12736, '\P{_	In_bopomofo_ext}', "");
+    Expect(0, 12736, '\P{^_	In_bopomofo_ext}', "");
+    Error('\p{ :=BOX_Drawing}');
+    Error('\P{ :=BOX_Drawing}');
     Expect(1, 9599, '\p{boxdrawing}', "");
     Expect(0, 9599, '\p{^boxdrawing}', "");
     Expect(0, 9599, '\P{boxdrawing}', "");
@@ -89405,16 +90111,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9600, '\p{^boxdrawing}', "");
     Expect(1, 9600, '\P{boxdrawing}', "");
     Expect(0, 9600, '\P{^boxdrawing}', "");
-    Expect(1, 9599, '\p{	-box_Drawing}', "");
-    Expect(0, 9599, '\p{^	-box_Drawing}', "");
-    Expect(0, 9599, '\P{	-box_Drawing}', "");
-    Expect(1, 9599, '\P{^	-box_Drawing}', "");
-    Expect(0, 9600, '\p{	-box_Drawing}', "");
-    Expect(1, 9600, '\p{^	-box_Drawing}', "");
-    Expect(1, 9600, '\P{	-box_Drawing}', "");
-    Expect(0, 9600, '\P{^	-box_Drawing}', "");
-    Error('\p{	/a/Is_box_Drawing}');
-    Error('\P{	/a/Is_box_Drawing}');
+    Expect(1, 9599, '\p{_BOX_DRAWING}', "");
+    Expect(0, 9599, '\p{^_BOX_DRAWING}', "");
+    Expect(0, 9599, '\P{_BOX_DRAWING}', "");
+    Expect(1, 9599, '\P{^_BOX_DRAWING}', "");
+    Expect(0, 9600, '\p{_BOX_DRAWING}', "");
+    Expect(1, 9600, '\p{^_BOX_DRAWING}', "");
+    Expect(1, 9600, '\P{_BOX_DRAWING}', "");
+    Expect(0, 9600, '\P{^_BOX_DRAWING}', "");
+    Error('\p{:= is_BOX_DRAWING}');
+    Error('\P{:= is_BOX_DRAWING}');
     Expect(1, 9599, '\p{isboxdrawing}', "");
     Expect(0, 9599, '\p{^isboxdrawing}', "");
     Expect(0, 9599, '\P{isboxdrawing}', "");
@@ -89423,16 +90129,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9600, '\p{^isboxdrawing}', "");
     Expect(1, 9600, '\P{isboxdrawing}', "");
     Expect(0, 9600, '\P{^isboxdrawing}', "");
-    Expect(1, 9599, '\p{ _is_Box_Drawing}', "");
-    Expect(0, 9599, '\p{^ _is_Box_Drawing}', "");
-    Expect(0, 9599, '\P{ _is_Box_Drawing}', "");
-    Expect(1, 9599, '\P{^ _is_Box_Drawing}', "");
-    Expect(0, 9600, '\p{ _is_Box_Drawing}', "");
-    Expect(1, 9600, '\p{^ _is_Box_Drawing}', "");
-    Expect(1, 9600, '\P{ _is_Box_Drawing}', "");
-    Expect(0, 9600, '\P{^ _is_Box_Drawing}', "");
-    Error('\p{/a/In_box_drawing}');
-    Error('\P{/a/In_box_drawing}');
+    Expect(1, 9599, '\p{-IS_Box_DRAWING}', "");
+    Expect(0, 9599, '\p{^-IS_Box_DRAWING}', "");
+    Expect(0, 9599, '\P{-IS_Box_DRAWING}', "");
+    Expect(1, 9599, '\P{^-IS_Box_DRAWING}', "");
+    Expect(0, 9600, '\p{-IS_Box_DRAWING}', "");
+    Expect(1, 9600, '\p{^-IS_Box_DRAWING}', "");
+    Expect(1, 9600, '\P{-IS_Box_DRAWING}', "");
+    Expect(0, 9600, '\P{^-IS_Box_DRAWING}', "");
+    Error('\p{-In_box_Drawing:=}');
+    Error('\P{-In_box_Drawing:=}');
     Expect(1, 9599, '\p{inboxdrawing}', "");
     Expect(0, 9599, '\p{^inboxdrawing}', "");
     Expect(0, 9599, '\P{inboxdrawing}', "");
@@ -89441,16 +90147,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9600, '\p{^inboxdrawing}', "");
     Expect(1, 9600, '\P{inboxdrawing}', "");
     Expect(0, 9600, '\P{^inboxdrawing}', "");
-    Expect(1, 9599, '\p{	 In_Box_DRAWING}', "");
-    Expect(0, 9599, '\p{^	 In_Box_DRAWING}', "");
-    Expect(0, 9599, '\P{	 In_Box_DRAWING}', "");
-    Expect(1, 9599, '\P{^	 In_Box_DRAWING}', "");
-    Expect(0, 9600, '\p{	 In_Box_DRAWING}', "");
-    Expect(1, 9600, '\p{^	 In_Box_DRAWING}', "");
-    Expect(1, 9600, '\P{	 In_Box_DRAWING}', "");
-    Expect(0, 9600, '\P{^	 In_Box_DRAWING}', "");
-    Error('\p{/a/ -BRAHMI}');
-    Error('\P{/a/ -BRAHMI}');
+    Expect(1, 9599, '\p{-_IN_BOX_DRAWING}', "");
+    Expect(0, 9599, '\p{^-_IN_BOX_DRAWING}', "");
+    Expect(0, 9599, '\P{-_IN_BOX_DRAWING}', "");
+    Expect(1, 9599, '\P{^-_IN_BOX_DRAWING}', "");
+    Expect(0, 9600, '\p{-_IN_BOX_DRAWING}', "");
+    Expect(1, 9600, '\p{^-_IN_BOX_DRAWING}', "");
+    Expect(1, 9600, '\P{-_IN_BOX_DRAWING}', "");
+    Expect(0, 9600, '\P{^-_IN_BOX_DRAWING}', "");
+    Error('\p{_/a/Brahmi}');
+    Error('\P{_/a/Brahmi}');
     Expect(1, 69759, '\p{brahmi}', "");
     Expect(0, 69759, '\p{^brahmi}', "");
     Expect(0, 69759, '\P{brahmi}', "");
@@ -89459,14 +90165,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69760, '\p{^brahmi}', "");
     Expect(1, 69760, '\P{brahmi}', "");
     Expect(0, 69760, '\P{^brahmi}', "");
-    Expect(1, 69759, '\p{-BRAHMI}', "");
-    Expect(0, 69759, '\p{^-BRAHMI}', "");
-    Expect(0, 69759, '\P{-BRAHMI}', "");
-    Expect(1, 69759, '\P{^-BRAHMI}', "");
-    Expect(0, 69760, '\p{-BRAHMI}', "");
-    Expect(1, 69760, '\p{^-BRAHMI}', "");
-    Expect(1, 69760, '\P{-BRAHMI}', "");
-    Expect(0, 69760, '\P{^-BRAHMI}', "");
+    Expect(1, 69759, '\p{-Brahmi}', "");
+    Expect(0, 69759, '\p{^-Brahmi}', "");
+    Expect(0, 69759, '\P{-Brahmi}', "");
+    Expect(1, 69759, '\P{^-Brahmi}', "");
+    Expect(0, 69760, '\p{-Brahmi}', "");
+    Expect(1, 69760, '\p{^-Brahmi}', "");
+    Expect(1, 69760, '\P{-Brahmi}', "");
+    Expect(0, 69760, '\P{^-Brahmi}', "");
     Error('\p{:=	_Is_Brahmi}');
     Error('\P{:=	_Is_Brahmi}');
     Expect(1, 69759, '\p{isbrahmi}', "");
@@ -89477,16 +90183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69760, '\p{^isbrahmi}', "");
     Expect(1, 69760, '\P{isbrahmi}', "");
     Expect(0, 69760, '\P{^isbrahmi}', "");
-    Expect(1, 69759, '\p{_	Is_Brahmi}', "");
-    Expect(0, 69759, '\p{^_	Is_Brahmi}', "");
-    Expect(0, 69759, '\P{_	Is_Brahmi}', "");
-    Expect(1, 69759, '\P{^_	Is_Brahmi}', "");
-    Expect(0, 69760, '\p{_	Is_Brahmi}', "");
-    Expect(1, 69760, '\p{^_	Is_Brahmi}', "");
-    Expect(1, 69760, '\P{_	Is_Brahmi}', "");
-    Expect(0, 69760, '\P{^_	Is_Brahmi}', "");
-    Error('\p{_Brah:=}');
-    Error('\P{_Brah:=}');
+    Expect(1, 69759, '\p{	 Is_brahmi}', "");
+    Expect(0, 69759, '\p{^	 Is_brahmi}', "");
+    Expect(0, 69759, '\P{	 Is_brahmi}', "");
+    Expect(1, 69759, '\P{^	 Is_brahmi}', "");
+    Expect(0, 69760, '\p{	 Is_brahmi}', "");
+    Expect(1, 69760, '\p{^	 Is_brahmi}', "");
+    Expect(1, 69760, '\P{	 Is_brahmi}', "");
+    Expect(0, 69760, '\P{^	 Is_brahmi}', "");
+    Error('\p{:=brah}');
+    Error('\P{:=brah}');
     Expect(1, 69759, '\p{brah}', "");
     Expect(0, 69759, '\p{^brah}', "");
     Expect(0, 69759, '\P{brah}', "");
@@ -89503,8 +90209,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69760, '\p{^--Brah}', "");
     Expect(1, 69760, '\P{--Brah}', "");
     Expect(0, 69760, '\P{^--Brah}', "");
-    Error('\p{:=is_Brah}');
-    Error('\P{:=is_Brah}');
+    Error('\p{/a/Is_BRAH}');
+    Error('\P{/a/Is_BRAH}');
     Expect(1, 69759, '\p{isbrah}', "");
     Expect(0, 69759, '\p{^isbrah}', "");
     Expect(0, 69759, '\P{isbrah}', "");
@@ -89513,16 +90219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69760, '\p{^isbrah}', "");
     Expect(1, 69760, '\P{isbrah}', "");
     Expect(0, 69760, '\P{^isbrah}', "");
-    Expect(1, 69759, '\p{ -Is_Brah}', "");
-    Expect(0, 69759, '\p{^ -Is_Brah}', "");
-    Expect(0, 69759, '\P{ -Is_Brah}', "");
-    Expect(1, 69759, '\P{^ -Is_Brah}', "");
-    Expect(0, 69760, '\p{ -Is_Brah}', "");
-    Expect(1, 69760, '\p{^ -Is_Brah}', "");
-    Expect(1, 69760, '\P{ -Is_Brah}', "");
-    Expect(0, 69760, '\P{^ -Is_Brah}', "");
-    Error('\p{/a/Braille}');
-    Error('\P{/a/Braille}');
+    Expect(1, 69759, '\p{ is_BRAH}', "");
+    Expect(0, 69759, '\p{^ is_BRAH}', "");
+    Expect(0, 69759, '\P{ is_BRAH}', "");
+    Expect(1, 69759, '\P{^ is_BRAH}', "");
+    Expect(0, 69760, '\p{ is_BRAH}', "");
+    Expect(1, 69760, '\p{^ is_BRAH}', "");
+    Expect(1, 69760, '\P{ is_BRAH}', "");
+    Expect(0, 69760, '\P{^ is_BRAH}', "");
+    Error('\p{:=Braille}');
+    Error('\P{:=Braille}');
     Expect(1, 10495, '\p{braille}', "");
     Expect(0, 10495, '\p{^braille}', "");
     Expect(0, 10495, '\P{braille}', "");
@@ -89531,16 +90237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^braille}', "");
     Expect(1, 10496, '\P{braille}', "");
     Expect(0, 10496, '\P{^braille}', "");
-    Expect(1, 10495, '\p{-Braille}', "");
-    Expect(0, 10495, '\p{^-Braille}', "");
-    Expect(0, 10495, '\P{-Braille}', "");
-    Expect(1, 10495, '\P{^-Braille}', "");
-    Expect(0, 10496, '\p{-Braille}', "");
-    Expect(1, 10496, '\p{^-Braille}', "");
-    Expect(1, 10496, '\P{-Braille}', "");
-    Expect(0, 10496, '\P{^-Braille}', "");
-    Error('\p{ -IS_Braille/a/}');
-    Error('\P{ -IS_Braille/a/}');
+    Expect(1, 10495, '\p{ -BRAILLE}', "");
+    Expect(0, 10495, '\p{^ -BRAILLE}', "");
+    Expect(0, 10495, '\P{ -BRAILLE}', "");
+    Expect(1, 10495, '\P{^ -BRAILLE}', "");
+    Expect(0, 10496, '\p{ -BRAILLE}', "");
+    Expect(1, 10496, '\p{^ -BRAILLE}', "");
+    Expect(1, 10496, '\P{ -BRAILLE}', "");
+    Expect(0, 10496, '\P{^ -BRAILLE}', "");
+    Error('\p{-is_Braille/a/}');
+    Error('\P{-is_Braille/a/}');
     Expect(1, 10495, '\p{isbraille}', "");
     Expect(0, 10495, '\p{^isbraille}', "");
     Expect(0, 10495, '\P{isbraille}', "");
@@ -89549,16 +90255,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^isbraille}', "");
     Expect(1, 10496, '\P{isbraille}', "");
     Expect(0, 10496, '\P{^isbraille}', "");
-    Expect(1, 10495, '\p{_Is_Braille}', "");
-    Expect(0, 10495, '\p{^_Is_Braille}', "");
-    Expect(0, 10495, '\P{_Is_Braille}', "");
-    Expect(1, 10495, '\P{^_Is_Braille}', "");
-    Expect(0, 10496, '\p{_Is_Braille}', "");
-    Expect(1, 10496, '\p{^_Is_Braille}', "");
-    Expect(1, 10496, '\P{_Is_Braille}', "");
-    Expect(0, 10496, '\P{^_Is_Braille}', "");
-    Error('\p{-:=Brai}');
-    Error('\P{-:=Brai}');
+    Expect(1, 10495, '\p{_-Is_braille}', "");
+    Expect(0, 10495, '\p{^_-Is_braille}', "");
+    Expect(0, 10495, '\P{_-Is_braille}', "");
+    Expect(1, 10495, '\P{^_-Is_braille}', "");
+    Expect(0, 10496, '\p{_-Is_braille}', "");
+    Expect(1, 10496, '\p{^_-Is_braille}', "");
+    Expect(1, 10496, '\P{_-Is_braille}', "");
+    Expect(0, 10496, '\P{^_-Is_braille}', "");
+    Error('\p{	:=BRAI}');
+    Error('\P{	:=BRAI}');
     Expect(1, 10495, '\p{brai}', "");
     Expect(0, 10495, '\p{^brai}', "");
     Expect(0, 10495, '\P{brai}', "");
@@ -89567,16 +90273,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^brai}', "");
     Expect(1, 10496, '\P{brai}', "");
     Expect(0, 10496, '\P{^brai}', "");
-    Expect(1, 10495, '\p{ brai}', "");
-    Expect(0, 10495, '\p{^ brai}', "");
-    Expect(0, 10495, '\P{ brai}', "");
-    Expect(1, 10495, '\P{^ brai}', "");
-    Expect(0, 10496, '\p{ brai}', "");
-    Expect(1, 10496, '\p{^ brai}', "");
-    Expect(1, 10496, '\P{ brai}', "");
-    Expect(0, 10496, '\P{^ brai}', "");
-    Error('\p{/a/__IS_Brai}');
-    Error('\P{/a/__IS_Brai}');
+    Expect(1, 10495, '\p{		Brai}', "");
+    Expect(0, 10495, '\p{^		Brai}', "");
+    Expect(0, 10495, '\P{		Brai}', "");
+    Expect(1, 10495, '\P{^		Brai}', "");
+    Expect(0, 10496, '\p{		Brai}', "");
+    Expect(1, 10496, '\p{^		Brai}', "");
+    Expect(1, 10496, '\P{		Brai}', "");
+    Expect(0, 10496, '\P{^		Brai}', "");
+    Error('\p{	:=Is_BRAI}');
+    Error('\P{	:=Is_BRAI}');
     Expect(1, 10495, '\p{isbrai}', "");
     Expect(0, 10495, '\p{^isbrai}', "");
     Expect(0, 10495, '\P{isbrai}', "");
@@ -89585,16 +90291,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^isbrai}', "");
     Expect(1, 10496, '\P{isbrai}', "");
     Expect(0, 10496, '\P{^isbrai}', "");
-    Expect(1, 10495, '\p{-is_BRAI}', "");
-    Expect(0, 10495, '\p{^-is_BRAI}', "");
-    Expect(0, 10495, '\P{-is_BRAI}', "");
-    Expect(1, 10495, '\P{^-is_BRAI}', "");
-    Expect(0, 10496, '\p{-is_BRAI}', "");
-    Expect(1, 10496, '\p{^-is_BRAI}', "");
-    Expect(1, 10496, '\P{-is_BRAI}', "");
-    Expect(0, 10496, '\P{^-is_BRAI}', "");
-    Error('\p{	/a/BRAILLE_patterns}');
-    Error('\P{	/a/BRAILLE_patterns}');
+    Expect(1, 10495, '\p{	Is_Brai}', "");
+    Expect(0, 10495, '\p{^	Is_Brai}', "");
+    Expect(0, 10495, '\P{	Is_Brai}', "");
+    Expect(1, 10495, '\P{^	Is_Brai}', "");
+    Expect(0, 10496, '\p{	Is_Brai}', "");
+    Expect(1, 10496, '\p{^	Is_Brai}', "");
+    Expect(1, 10496, '\P{	Is_Brai}', "");
+    Expect(0, 10496, '\P{^	Is_Brai}', "");
+    Error('\p{:= Braille_patterns}');
+    Error('\P{:= Braille_patterns}');
     Expect(1, 10495, '\p{braillepatterns}', "");
     Expect(0, 10495, '\p{^braillepatterns}', "");
     Expect(0, 10495, '\P{braillepatterns}', "");
@@ -89603,16 +90309,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^braillepatterns}', "");
     Expect(1, 10496, '\P{braillepatterns}', "");
     Expect(0, 10496, '\P{^braillepatterns}', "");
-    Expect(1, 10495, '\p{	 Braille_Patterns}', "");
-    Expect(0, 10495, '\p{^	 Braille_Patterns}', "");
-    Expect(0, 10495, '\P{	 Braille_Patterns}', "");
-    Expect(1, 10495, '\P{^	 Braille_Patterns}', "");
-    Expect(0, 10496, '\p{	 Braille_Patterns}', "");
-    Expect(1, 10496, '\p{^	 Braille_Patterns}', "");
-    Expect(1, 10496, '\P{	 Braille_Patterns}', "");
-    Expect(0, 10496, '\P{^	 Braille_Patterns}', "");
-    Error('\p{ is_BRAILLE_PATTERNS:=}');
-    Error('\P{ is_BRAILLE_PATTERNS:=}');
+    Expect(1, 10495, '\p{__braille_PATTERNS}', "");
+    Expect(0, 10495, '\p{^__braille_PATTERNS}', "");
+    Expect(0, 10495, '\P{__braille_PATTERNS}', "");
+    Expect(1, 10495, '\P{^__braille_PATTERNS}', "");
+    Expect(0, 10496, '\p{__braille_PATTERNS}', "");
+    Expect(1, 10496, '\p{^__braille_PATTERNS}', "");
+    Expect(1, 10496, '\P{__braille_PATTERNS}', "");
+    Expect(0, 10496, '\P{^__braille_PATTERNS}', "");
+    Error('\p{_/a/is_Braille_patterns}');
+    Error('\P{_/a/is_Braille_patterns}');
     Expect(1, 10495, '\p{isbraillepatterns}', "");
     Expect(0, 10495, '\p{^isbraillepatterns}', "");
     Expect(0, 10495, '\P{isbraillepatterns}', "");
@@ -89621,16 +90327,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^isbraillepatterns}', "");
     Expect(1, 10496, '\P{isbraillepatterns}', "");
     Expect(0, 10496, '\P{^isbraillepatterns}', "");
-    Expect(1, 10495, '\p{Is_Braille_Patterns}', "");
-    Expect(0, 10495, '\p{^Is_Braille_Patterns}', "");
-    Expect(0, 10495, '\P{Is_Braille_Patterns}', "");
-    Expect(1, 10495, '\P{^Is_Braille_Patterns}', "");
-    Expect(0, 10496, '\p{Is_Braille_Patterns}', "");
-    Expect(1, 10496, '\p{^Is_Braille_Patterns}', "");
-    Expect(1, 10496, '\P{Is_Braille_Patterns}', "");
-    Expect(0, 10496, '\P{^Is_Braille_Patterns}', "");
-    Error('\p{/a/  IN_BRAILLE_Patterns}');
-    Error('\P{/a/  IN_BRAILLE_Patterns}');
+    Expect(1, 10495, '\p{ _Is_Braille_Patterns}', "");
+    Expect(0, 10495, '\p{^ _Is_Braille_Patterns}', "");
+    Expect(0, 10495, '\P{ _Is_Braille_Patterns}', "");
+    Expect(1, 10495, '\P{^ _Is_Braille_Patterns}', "");
+    Expect(0, 10496, '\p{ _Is_Braille_Patterns}', "");
+    Expect(1, 10496, '\p{^ _Is_Braille_Patterns}', "");
+    Expect(1, 10496, '\P{ _Is_Braille_Patterns}', "");
+    Expect(0, 10496, '\P{^ _Is_Braille_Patterns}', "");
+    Error('\p{/a/ 	In_braille_patterns}');
+    Error('\P{/a/ 	In_braille_patterns}');
     Expect(1, 10495, '\p{inbraillepatterns}', "");
     Expect(0, 10495, '\p{^inbraillepatterns}', "");
     Expect(0, 10495, '\P{inbraillepatterns}', "");
@@ -89639,16 +90345,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^inbraillepatterns}', "");
     Expect(1, 10496, '\P{inbraillepatterns}', "");
     Expect(0, 10496, '\P{^inbraillepatterns}', "");
-    Expect(1, 10495, '\p{-in_braille_patterns}', "");
-    Expect(0, 10495, '\p{^-in_braille_patterns}', "");
-    Expect(0, 10495, '\P{-in_braille_patterns}', "");
-    Expect(1, 10495, '\P{^-in_braille_patterns}', "");
-    Expect(0, 10496, '\p{-in_braille_patterns}', "");
-    Expect(1, 10496, '\p{^-in_braille_patterns}', "");
-    Expect(1, 10496, '\P{-in_braille_patterns}', "");
-    Expect(0, 10496, '\P{^-in_braille_patterns}', "");
-    Error('\p{:=In_Braille}');
-    Error('\P{:=In_Braille}');
+    Expect(1, 10495, '\p{  In_Braille_PATTERNS}', "");
+    Expect(0, 10495, '\p{^  In_Braille_PATTERNS}', "");
+    Expect(0, 10495, '\P{  In_Braille_PATTERNS}', "");
+    Expect(1, 10495, '\P{^  In_Braille_PATTERNS}', "");
+    Expect(0, 10496, '\p{  In_Braille_PATTERNS}', "");
+    Expect(1, 10496, '\p{^  In_Braille_PATTERNS}', "");
+    Expect(1, 10496, '\P{  In_Braille_PATTERNS}', "");
+    Expect(0, 10496, '\P{^  In_Braille_PATTERNS}', "");
+    Error('\p{/a/In_BRAILLE}');
+    Error('\P{/a/In_BRAILLE}');
     Expect(1, 10495, '\p{inbraille}', "");
     Expect(0, 10495, '\p{^inbraille}', "");
     Expect(0, 10495, '\P{inbraille}', "");
@@ -89657,16 +90363,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10496, '\p{^inbraille}', "");
     Expect(1, 10496, '\P{inbraille}', "");
     Expect(0, 10496, '\P{^inbraille}', "");
-    Expect(1, 10495, '\p{-	in_BRAILLE}', "");
-    Expect(0, 10495, '\p{^-	in_BRAILLE}', "");
-    Expect(0, 10495, '\P{-	in_BRAILLE}', "");
-    Expect(1, 10495, '\P{^-	in_BRAILLE}', "");
-    Expect(0, 10496, '\p{-	in_BRAILLE}', "");
-    Expect(1, 10496, '\p{^-	in_BRAILLE}', "");
-    Expect(1, 10496, '\P{-	in_BRAILLE}', "");
-    Expect(0, 10496, '\P{^-	in_BRAILLE}', "");
-    Error('\p{:=  buginese}');
-    Error('\P{:=  buginese}');
+    Expect(1, 10495, '\p{		in_BRAILLE}', "");
+    Expect(0, 10495, '\p{^		in_BRAILLE}', "");
+    Expect(0, 10495, '\P{		in_BRAILLE}', "");
+    Expect(1, 10495, '\P{^		in_BRAILLE}', "");
+    Expect(0, 10496, '\p{		in_BRAILLE}', "");
+    Expect(1, 10496, '\p{^		in_BRAILLE}', "");
+    Expect(1, 10496, '\P{		in_BRAILLE}', "");
+    Expect(0, 10496, '\P{^		in_BRAILLE}', "");
+    Error('\p{/a/	Buginese}');
+    Error('\P{/a/	Buginese}');
     Expect(1, 43471, '\p{buginese}', "");
     Expect(0, 43471, '\p{^buginese}', "");
     Expect(0, 43471, '\P{buginese}', "");
@@ -89675,16 +90381,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43472, '\p{^buginese}', "");
     Expect(1, 43472, '\P{buginese}', "");
     Expect(0, 43472, '\P{^buginese}', "");
-    Expect(1, 43471, '\p{	Buginese}', "");
-    Expect(0, 43471, '\p{^	Buginese}', "");
-    Expect(0, 43471, '\P{	Buginese}', "");
-    Expect(1, 43471, '\P{^	Buginese}', "");
-    Expect(0, 43472, '\p{	Buginese}', "");
-    Expect(1, 43472, '\p{^	Buginese}', "");
-    Expect(1, 43472, '\P{	Buginese}', "");
-    Expect(0, 43472, '\P{^	Buginese}', "");
-    Error('\p{ :=Is_Buginese}');
-    Error('\P{ :=Is_Buginese}');
+    Expect(1, 43471, '\p{- Buginese}', "");
+    Expect(0, 43471, '\p{^- Buginese}', "");
+    Expect(0, 43471, '\P{- Buginese}', "");
+    Expect(1, 43471, '\P{^- Buginese}', "");
+    Expect(0, 43472, '\p{- Buginese}', "");
+    Expect(1, 43472, '\p{^- Buginese}', "");
+    Expect(1, 43472, '\P{- Buginese}', "");
+    Expect(0, 43472, '\P{^- Buginese}', "");
+    Error('\p{/a/ Is_BUGINESE}');
+    Error('\P{/a/ Is_BUGINESE}');
     Expect(1, 43471, '\p{isbuginese}', "");
     Expect(0, 43471, '\p{^isbuginese}', "");
     Expect(0, 43471, '\P{isbuginese}', "");
@@ -89693,16 +90399,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43472, '\p{^isbuginese}', "");
     Expect(1, 43472, '\P{isbuginese}', "");
     Expect(0, 43472, '\P{^isbuginese}', "");
-    Expect(1, 43471, '\p{-_Is_buginese}', "");
-    Expect(0, 43471, '\p{^-_Is_buginese}', "");
-    Expect(0, 43471, '\P{-_Is_buginese}', "");
-    Expect(1, 43471, '\P{^-_Is_buginese}', "");
-    Expect(0, 43472, '\p{-_Is_buginese}', "");
-    Expect(1, 43472, '\p{^-_Is_buginese}', "");
-    Expect(1, 43472, '\P{-_Is_buginese}', "");
-    Expect(0, 43472, '\P{^-_Is_buginese}', "");
-    Error('\p{/a/bugi}');
-    Error('\P{/a/bugi}');
+    Expect(1, 43471, '\p{_	Is_Buginese}', "");
+    Expect(0, 43471, '\p{^_	Is_Buginese}', "");
+    Expect(0, 43471, '\P{_	Is_Buginese}', "");
+    Expect(1, 43471, '\P{^_	Is_Buginese}', "");
+    Expect(0, 43472, '\p{_	Is_Buginese}', "");
+    Expect(1, 43472, '\p{^_	Is_Buginese}', "");
+    Expect(1, 43472, '\P{_	Is_Buginese}', "");
+    Expect(0, 43472, '\P{^_	Is_Buginese}', "");
+    Error('\p{/a/	_Bugi}');
+    Error('\P{/a/	_Bugi}');
     Expect(1, 43471, '\p{bugi}', "");
     Expect(0, 43471, '\p{^bugi}', "");
     Expect(0, 43471, '\P{bugi}', "");
@@ -89711,16 +90417,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43472, '\p{^bugi}', "");
     Expect(1, 43472, '\P{bugi}', "");
     Expect(0, 43472, '\P{^bugi}', "");
-    Expect(1, 43471, '\p{-BUGI}', "");
-    Expect(0, 43471, '\p{^-BUGI}', "");
-    Expect(0, 43471, '\P{-BUGI}', "");
-    Expect(1, 43471, '\P{^-BUGI}', "");
-    Expect(0, 43472, '\p{-BUGI}', "");
-    Expect(1, 43472, '\p{^-BUGI}', "");
-    Expect(1, 43472, '\P{-BUGI}', "");
-    Expect(0, 43472, '\P{^-BUGI}', "");
-    Error('\p{/a/- IS_bugi}');
-    Error('\P{/a/- IS_bugi}');
+    Expect(1, 43471, '\p{-	Bugi}', "");
+    Expect(0, 43471, '\p{^-	Bugi}', "");
+    Expect(0, 43471, '\P{-	Bugi}', "");
+    Expect(1, 43471, '\P{^-	Bugi}', "");
+    Expect(0, 43472, '\p{-	Bugi}', "");
+    Expect(1, 43472, '\p{^-	Bugi}', "");
+    Expect(1, 43472, '\P{-	Bugi}', "");
+    Expect(0, 43472, '\P{^-	Bugi}', "");
+    Error('\p{ :=Is_bugi}');
+    Error('\P{ :=Is_bugi}');
     Expect(1, 43471, '\p{isbugi}', "");
     Expect(0, 43471, '\p{^isbugi}', "");
     Expect(0, 43471, '\P{isbugi}', "");
@@ -89729,16 +90435,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43472, '\p{^isbugi}', "");
     Expect(1, 43472, '\P{isbugi}', "");
     Expect(0, 43472, '\P{^isbugi}', "");
-    Expect(1, 43471, '\p{- is_Bugi}', "");
-    Expect(0, 43471, '\p{^- is_Bugi}', "");
-    Expect(0, 43471, '\P{- is_Bugi}', "");
-    Expect(1, 43471, '\P{^- is_Bugi}', "");
-    Expect(0, 43472, '\p{- is_Bugi}', "");
-    Expect(1, 43472, '\p{^- is_Bugi}', "");
-    Expect(1, 43472, '\P{- is_Bugi}', "");
-    Expect(0, 43472, '\P{^- is_Bugi}', "");
-    Error('\p{:= Buhid}');
-    Error('\P{:= Buhid}');
+    Expect(1, 43471, '\p{_is_bugi}', "");
+    Expect(0, 43471, '\p{^_is_bugi}', "");
+    Expect(0, 43471, '\P{_is_bugi}', "");
+    Expect(1, 43471, '\P{^_is_bugi}', "");
+    Expect(0, 43472, '\p{_is_bugi}', "");
+    Expect(1, 43472, '\p{^_is_bugi}', "");
+    Expect(1, 43472, '\P{_is_bugi}', "");
+    Expect(0, 43472, '\P{^_is_bugi}', "");
+    Error('\p{	_Buhid/a/}');
+    Error('\P{	_Buhid/a/}');
     Expect(1, 5971, '\p{buhid}', "");
     Expect(0, 5971, '\p{^buhid}', "");
     Expect(0, 5971, '\P{buhid}', "");
@@ -89747,16 +90453,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5972, '\p{^buhid}', "");
     Expect(1, 5972, '\P{buhid}', "");
     Expect(0, 5972, '\P{^buhid}', "");
-    Expect(1, 5971, '\p{	Buhid}', "");
-    Expect(0, 5971, '\p{^	Buhid}', "");
-    Expect(0, 5971, '\P{	Buhid}', "");
-    Expect(1, 5971, '\P{^	Buhid}', "");
-    Expect(0, 5972, '\p{	Buhid}', "");
-    Expect(1, 5972, '\p{^	Buhid}', "");
-    Expect(1, 5972, '\P{	Buhid}', "");
-    Expect(0, 5972, '\P{^	Buhid}', "");
-    Error('\p{ :=Is_buhid}');
-    Error('\P{ :=Is_buhid}');
+    Expect(1, 5971, '\p{-Buhid}', "");
+    Expect(0, 5971, '\p{^-Buhid}', "");
+    Expect(0, 5971, '\P{-Buhid}', "");
+    Expect(1, 5971, '\P{^-Buhid}', "");
+    Expect(0, 5972, '\p{-Buhid}', "");
+    Expect(1, 5972, '\p{^-Buhid}', "");
+    Expect(1, 5972, '\P{-Buhid}', "");
+    Expect(0, 5972, '\P{^-Buhid}', "");
+    Error('\p{__IS_Buhid/a/}');
+    Error('\P{__IS_Buhid/a/}');
     Expect(1, 5971, '\p{isbuhid}', "");
     Expect(0, 5971, '\p{^isbuhid}', "");
     Expect(0, 5971, '\P{isbuhid}', "");
@@ -89765,16 +90471,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5972, '\p{^isbuhid}', "");
     Expect(1, 5972, '\P{isbuhid}', "");
     Expect(0, 5972, '\P{^isbuhid}', "");
-    Expect(1, 5971, '\p{Is_Buhid}', "");
-    Expect(0, 5971, '\p{^Is_Buhid}', "");
-    Expect(0, 5971, '\P{Is_Buhid}', "");
-    Expect(1, 5971, '\P{^Is_Buhid}', "");
-    Expect(0, 5972, '\p{Is_Buhid}', "");
-    Expect(1, 5972, '\p{^Is_Buhid}', "");
-    Expect(1, 5972, '\P{Is_Buhid}', "");
-    Expect(0, 5972, '\P{^Is_Buhid}', "");
-    Error('\p{_ Buhd:=}');
-    Error('\P{_ Buhd:=}');
+    Expect(1, 5971, '\p{_Is_BUHID}', "");
+    Expect(0, 5971, '\p{^_Is_BUHID}', "");
+    Expect(0, 5971, '\P{_Is_BUHID}', "");
+    Expect(1, 5971, '\P{^_Is_BUHID}', "");
+    Expect(0, 5972, '\p{_Is_BUHID}', "");
+    Expect(1, 5972, '\p{^_Is_BUHID}', "");
+    Expect(1, 5972, '\P{_Is_BUHID}', "");
+    Expect(0, 5972, '\P{^_Is_BUHID}', "");
+    Error('\p{_BUHD/a/}');
+    Error('\P{_BUHD/a/}');
     Expect(1, 5971, '\p{buhd}', "");
     Expect(0, 5971, '\p{^buhd}', "");
     Expect(0, 5971, '\P{buhd}', "");
@@ -89783,16 +90489,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5972, '\p{^buhd}', "");
     Expect(1, 5972, '\P{buhd}', "");
     Expect(0, 5972, '\P{^buhd}', "");
-    Expect(1, 5971, '\p{-buhd}', "");
-    Expect(0, 5971, '\p{^-buhd}', "");
-    Expect(0, 5971, '\P{-buhd}', "");
-    Expect(1, 5971, '\P{^-buhd}', "");
-    Expect(0, 5972, '\p{-buhd}', "");
-    Expect(1, 5972, '\p{^-buhd}', "");
-    Expect(1, 5972, '\P{-buhd}', "");
-    Expect(0, 5972, '\P{^-buhd}', "");
-    Error('\p{	:=Is_Buhd}');
-    Error('\P{	:=Is_Buhd}');
+    Expect(1, 5971, '\p{__Buhd}', "");
+    Expect(0, 5971, '\p{^__Buhd}', "");
+    Expect(0, 5971, '\P{__Buhd}', "");
+    Expect(1, 5971, '\P{^__Buhd}', "");
+    Expect(0, 5972, '\p{__Buhd}', "");
+    Expect(1, 5972, '\p{^__Buhd}', "");
+    Expect(1, 5972, '\P{__Buhd}', "");
+    Expect(0, 5972, '\P{^__Buhd}', "");
+    Error('\p{__IS_Buhd/a/}');
+    Error('\P{__IS_Buhd/a/}');
     Expect(1, 5971, '\p{isbuhd}', "");
     Expect(0, 5971, '\p{^isbuhd}', "");
     Expect(0, 5971, '\P{isbuhd}', "");
@@ -89801,16 +90507,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5972, '\p{^isbuhd}', "");
     Expect(1, 5972, '\P{isbuhd}', "");
     Expect(0, 5972, '\P{^isbuhd}', "");
-    Expect(1, 5971, '\p{- is_BUHD}', "");
-    Expect(0, 5971, '\p{^- is_BUHD}', "");
-    Expect(0, 5971, '\P{- is_BUHD}', "");
-    Expect(1, 5971, '\P{^- is_BUHD}', "");
-    Expect(0, 5972, '\p{- is_BUHD}', "");
-    Expect(1, 5972, '\p{^- is_BUHD}', "");
-    Expect(1, 5972, '\P{- is_BUHD}', "");
-    Expect(0, 5972, '\P{^- is_BUHD}', "");
-    Error('\p{	byzantine_Musical_symbols:=}');
-    Error('\P{	byzantine_Musical_symbols:=}');
+    Expect(1, 5971, '\p{		Is_BUHD}', "");
+    Expect(0, 5971, '\p{^		Is_BUHD}', "");
+    Expect(0, 5971, '\P{		Is_BUHD}', "");
+    Expect(1, 5971, '\P{^		Is_BUHD}', "");
+    Expect(0, 5972, '\p{		Is_BUHD}', "");
+    Expect(1, 5972, '\p{^		Is_BUHD}', "");
+    Expect(1, 5972, '\P{		Is_BUHD}', "");
+    Expect(0, 5972, '\P{^		Is_BUHD}', "");
+    Error('\p{	byzantine_Musical_Symbols:=}');
+    Error('\P{	byzantine_Musical_Symbols:=}');
     Expect(1, 119039, '\p{byzantinemusicalsymbols}', "");
     Expect(0, 119039, '\p{^byzantinemusicalsymbols}', "");
     Expect(0, 119039, '\P{byzantinemusicalsymbols}', "");
@@ -89819,16 +90525,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119040, '\p{^byzantinemusicalsymbols}', "");
     Expect(1, 119040, '\P{byzantinemusicalsymbols}', "");
     Expect(0, 119040, '\P{^byzantinemusicalsymbols}', "");
-    Expect(1, 119039, '\p{ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(0, 119039, '\p{^ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(0, 119039, '\P{ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(1, 119039, '\P{^ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(0, 119040, '\p{ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(1, 119040, '\p{^ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(1, 119040, '\P{ _BYZANTINE_Musical_SYMBOLS}', "");
-    Expect(0, 119040, '\P{^ _BYZANTINE_Musical_SYMBOLS}', "");
-    Error('\p{/a/	Is_byzantine_Musical_Symbols}');
-    Error('\P{/a/	Is_byzantine_Musical_Symbols}');
+    Expect(1, 119039, '\p{ 	Byzantine_Musical_Symbols}', "");
+    Expect(0, 119039, '\p{^ 	Byzantine_Musical_Symbols}', "");
+    Expect(0, 119039, '\P{ 	Byzantine_Musical_Symbols}', "");
+    Expect(1, 119039, '\P{^ 	Byzantine_Musical_Symbols}', "");
+    Expect(0, 119040, '\p{ 	Byzantine_Musical_Symbols}', "");
+    Expect(1, 119040, '\p{^ 	Byzantine_Musical_Symbols}', "");
+    Expect(1, 119040, '\P{ 	Byzantine_Musical_Symbols}', "");
+    Expect(0, 119040, '\P{^ 	Byzantine_Musical_Symbols}', "");
+    Error('\p{/a/	-Is_byzantine_Musical_symbols}');
+    Error('\P{/a/	-Is_byzantine_Musical_symbols}');
     Expect(1, 119039, '\p{isbyzantinemusicalsymbols}', "");
     Expect(0, 119039, '\p{^isbyzantinemusicalsymbols}', "");
     Expect(0, 119039, '\P{isbyzantinemusicalsymbols}', "");
@@ -89837,16 +90543,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119040, '\p{^isbyzantinemusicalsymbols}', "");
     Expect(1, 119040, '\P{isbyzantinemusicalsymbols}', "");
     Expect(0, 119040, '\P{^isbyzantinemusicalsymbols}', "");
-    Expect(1, 119039, '\p{		Is_byzantine_Musical_Symbols}', "");
-    Expect(0, 119039, '\p{^		Is_byzantine_Musical_Symbols}', "");
-    Expect(0, 119039, '\P{		Is_byzantine_Musical_Symbols}', "");
-    Expect(1, 119039, '\P{^		Is_byzantine_Musical_Symbols}', "");
-    Expect(0, 119040, '\p{		Is_byzantine_Musical_Symbols}', "");
-    Expect(1, 119040, '\p{^		Is_byzantine_Musical_Symbols}', "");
-    Expect(1, 119040, '\P{		Is_byzantine_Musical_Symbols}', "");
-    Expect(0, 119040, '\P{^		Is_byzantine_Musical_Symbols}', "");
-    Error('\p{- In_Byzantine_musical_symbols:=}');
-    Error('\P{- In_Byzantine_musical_symbols:=}');
+    Expect(1, 119039, '\p{	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(0, 119039, '\p{^	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(0, 119039, '\P{	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(1, 119039, '\P{^	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(0, 119040, '\p{	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(1, 119040, '\p{^	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(1, 119040, '\P{	IS_BYZANTINE_musical_Symbols}', "");
+    Expect(0, 119040, '\P{^	IS_BYZANTINE_musical_Symbols}', "");
+    Error('\p{		In_Byzantine_musical_Symbols/a/}');
+    Error('\P{		In_Byzantine_musical_Symbols/a/}');
     Expect(1, 119039, '\p{inbyzantinemusicalsymbols}', "");
     Expect(0, 119039, '\p{^inbyzantinemusicalsymbols}', "");
     Expect(0, 119039, '\P{inbyzantinemusicalsymbols}', "");
@@ -89855,16 +90561,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119040, '\p{^inbyzantinemusicalsymbols}', "");
     Expect(1, 119040, '\P{inbyzantinemusicalsymbols}', "");
     Expect(0, 119040, '\P{^inbyzantinemusicalsymbols}', "");
-    Expect(1, 119039, '\p{-in_Byzantine_Musical_Symbols}', "");
-    Expect(0, 119039, '\p{^-in_Byzantine_Musical_Symbols}', "");
-    Expect(0, 119039, '\P{-in_Byzantine_Musical_Symbols}', "");
-    Expect(1, 119039, '\P{^-in_Byzantine_Musical_Symbols}', "");
-    Expect(0, 119040, '\p{-in_Byzantine_Musical_Symbols}', "");
-    Expect(1, 119040, '\p{^-in_Byzantine_Musical_Symbols}', "");
-    Expect(1, 119040, '\P{-in_Byzantine_Musical_Symbols}', "");
-    Expect(0, 119040, '\P{^-in_Byzantine_Musical_Symbols}', "");
-    Error('\p{_-BYZANTINE_music:=}');
-    Error('\P{_-BYZANTINE_music:=}');
+    Expect(1, 119039, '\p{ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(0, 119039, '\p{^ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(0, 119039, '\P{ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(1, 119039, '\P{^ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(0, 119040, '\p{ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(1, 119040, '\p{^ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(1, 119040, '\P{ -In_Byzantine_Musical_SYMBOLS}', "");
+    Expect(0, 119040, '\P{^ -In_Byzantine_Musical_SYMBOLS}', "");
+    Error('\p{ _Byzantine_Music/a/}');
+    Error('\P{ _Byzantine_Music/a/}');
     Expect(1, 119039, '\p{byzantinemusic}', "");
     Expect(0, 119039, '\p{^byzantinemusic}', "");
     Expect(0, 119039, '\P{byzantinemusic}', "");
@@ -89873,16 +90579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119040, '\p{^byzantinemusic}', "");
     Expect(1, 119040, '\P{byzantinemusic}', "");
     Expect(0, 119040, '\P{^byzantinemusic}', "");
-    Expect(1, 119039, '\p{- BYZANTINE_music}', "");
-    Expect(0, 119039, '\p{^- BYZANTINE_music}', "");
-    Expect(0, 119039, '\P{- BYZANTINE_music}', "");
-    Expect(1, 119039, '\P{^- BYZANTINE_music}', "");
-    Expect(0, 119040, '\p{- BYZANTINE_music}', "");
-    Expect(1, 119040, '\p{^- BYZANTINE_music}', "");
-    Expect(1, 119040, '\P{- BYZANTINE_music}', "");
-    Expect(0, 119040, '\P{^- BYZANTINE_music}', "");
-    Error('\p{-/a/IS_Byzantine_Music}');
-    Error('\P{-/a/IS_Byzantine_Music}');
+    Expect(1, 119039, '\p{		Byzantine_music}', "");
+    Expect(0, 119039, '\p{^		Byzantine_music}', "");
+    Expect(0, 119039, '\P{		Byzantine_music}', "");
+    Expect(1, 119039, '\P{^		Byzantine_music}', "");
+    Expect(0, 119040, '\p{		Byzantine_music}', "");
+    Expect(1, 119040, '\p{^		Byzantine_music}', "");
+    Expect(1, 119040, '\P{		Byzantine_music}', "");
+    Expect(0, 119040, '\P{^		Byzantine_music}', "");
+    Error('\p{ Is_byzantine_MUSIC/a/}');
+    Error('\P{ Is_byzantine_MUSIC/a/}');
     Expect(1, 119039, '\p{isbyzantinemusic}', "");
     Expect(0, 119039, '\p{^isbyzantinemusic}', "");
     Expect(0, 119039, '\P{isbyzantinemusic}', "");
@@ -89891,16 +90597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119040, '\p{^isbyzantinemusic}', "");
     Expect(1, 119040, '\P{isbyzantinemusic}', "");
     Expect(0, 119040, '\P{^isbyzantinemusic}', "");
-    Expect(1, 119039, '\p{ is_Byzantine_Music}', "");
-    Expect(0, 119039, '\p{^ is_Byzantine_Music}', "");
-    Expect(0, 119039, '\P{ is_Byzantine_Music}', "");
-    Expect(1, 119039, '\P{^ is_Byzantine_Music}', "");
-    Expect(0, 119040, '\p{ is_Byzantine_Music}', "");
-    Expect(1, 119040, '\p{^ is_Byzantine_Music}', "");
-    Expect(1, 119040, '\P{ is_Byzantine_Music}', "");
-    Expect(0, 119040, '\P{^ is_Byzantine_Music}', "");
-    Error('\p{:=--In_Byzantine_music}');
-    Error('\P{:=--In_Byzantine_music}');
+    Expect(1, 119039, '\p{	-Is_BYZANTINE_MUSIC}', "");
+    Expect(0, 119039, '\p{^	-Is_BYZANTINE_MUSIC}', "");
+    Expect(0, 119039, '\P{	-Is_BYZANTINE_MUSIC}', "");
+    Expect(1, 119039, '\P{^	-Is_BYZANTINE_MUSIC}', "");
+    Expect(0, 119040, '\p{	-Is_BYZANTINE_MUSIC}', "");
+    Expect(1, 119040, '\p{^	-Is_BYZANTINE_MUSIC}', "");
+    Expect(1, 119040, '\P{	-Is_BYZANTINE_MUSIC}', "");
+    Expect(0, 119040, '\P{^	-Is_BYZANTINE_MUSIC}', "");
+    Error('\p{_-In_BYZANTINE_Music:=}');
+    Error('\P{_-In_BYZANTINE_Music:=}');
     Expect(1, 119039, '\p{inbyzantinemusic}', "");
     Expect(0, 119039, '\p{^inbyzantinemusic}', "");
     Expect(0, 119039, '\P{inbyzantinemusic}', "");
@@ -89909,16 +90615,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119040, '\p{^inbyzantinemusic}', "");
     Expect(1, 119040, '\P{inbyzantinemusic}', "");
     Expect(0, 119040, '\P{^inbyzantinemusic}', "");
-    Expect(1, 119039, '\p{	 In_byzantine_Music}', "");
-    Expect(0, 119039, '\p{^	 In_byzantine_Music}', "");
-    Expect(0, 119039, '\P{	 In_byzantine_Music}', "");
-    Expect(1, 119039, '\P{^	 In_byzantine_Music}', "");
-    Expect(0, 119040, '\p{	 In_byzantine_Music}', "");
-    Expect(1, 119040, '\p{^	 In_byzantine_Music}', "");
-    Expect(1, 119040, '\P{	 In_byzantine_Music}', "");
-    Expect(0, 119040, '\P{^	 In_byzantine_Music}', "");
-    Error('\p{:=-Canadian_Aboriginal}');
-    Error('\P{:=-Canadian_Aboriginal}');
+    Expect(1, 119039, '\p{_In_byzantine_Music}', "");
+    Expect(0, 119039, '\p{^_In_byzantine_Music}', "");
+    Expect(0, 119039, '\P{_In_byzantine_Music}', "");
+    Expect(1, 119039, '\P{^_In_byzantine_Music}', "");
+    Expect(0, 119040, '\p{_In_byzantine_Music}', "");
+    Expect(1, 119040, '\p{^_In_byzantine_Music}', "");
+    Expect(1, 119040, '\P{_In_byzantine_Music}', "");
+    Expect(0, 119040, '\P{^_In_byzantine_Music}', "");
+    Error('\p{_ CANADIAN_Aboriginal/a/}');
+    Error('\P{_ CANADIAN_Aboriginal/a/}');
     Expect(1, 72383, '\p{canadianaboriginal}', "");
     Expect(0, 72383, '\p{^canadianaboriginal}', "");
     Expect(0, 72383, '\P{canadianaboriginal}', "");
@@ -89927,16 +90633,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72384, '\p{^canadianaboriginal}', "");
     Expect(1, 72384, '\P{canadianaboriginal}', "");
     Expect(0, 72384, '\P{^canadianaboriginal}', "");
-    Expect(1, 72383, '\p{-Canadian_Aboriginal}', "");
-    Expect(0, 72383, '\p{^-Canadian_Aboriginal}', "");
-    Expect(0, 72383, '\P{-Canadian_Aboriginal}', "");
-    Expect(1, 72383, '\P{^-Canadian_Aboriginal}', "");
-    Expect(0, 72384, '\p{-Canadian_Aboriginal}', "");
-    Expect(1, 72384, '\p{^-Canadian_Aboriginal}', "");
-    Expect(1, 72384, '\P{-Canadian_Aboriginal}', "");
-    Expect(0, 72384, '\P{^-Canadian_Aboriginal}', "");
-    Error('\p{:=- is_canadian_Aboriginal}');
-    Error('\P{:=- is_canadian_Aboriginal}');
+    Expect(1, 72383, '\p{_	Canadian_Aboriginal}', "");
+    Expect(0, 72383, '\p{^_	Canadian_Aboriginal}', "");
+    Expect(0, 72383, '\P{_	Canadian_Aboriginal}', "");
+    Expect(1, 72383, '\P{^_	Canadian_Aboriginal}', "");
+    Expect(0, 72384, '\p{_	Canadian_Aboriginal}', "");
+    Expect(1, 72384, '\p{^_	Canadian_Aboriginal}', "");
+    Expect(1, 72384, '\P{_	Canadian_Aboriginal}', "");
+    Expect(0, 72384, '\P{^_	Canadian_Aboriginal}', "");
+    Error('\p{/a/Is_Canadian_Aboriginal}');
+    Error('\P{/a/Is_Canadian_Aboriginal}');
     Expect(1, 72383, '\p{iscanadianaboriginal}', "");
     Expect(0, 72383, '\p{^iscanadianaboriginal}', "");
     Expect(0, 72383, '\P{iscanadianaboriginal}', "");
@@ -89945,16 +90651,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72384, '\p{^iscanadianaboriginal}', "");
     Expect(1, 72384, '\P{iscanadianaboriginal}', "");
     Expect(0, 72384, '\P{^iscanadianaboriginal}', "");
-    Expect(1, 72383, '\p{_ IS_Canadian_Aboriginal}', "");
-    Expect(0, 72383, '\p{^_ IS_Canadian_Aboriginal}', "");
-    Expect(0, 72383, '\P{_ IS_Canadian_Aboriginal}', "");
-    Expect(1, 72383, '\P{^_ IS_Canadian_Aboriginal}', "");
-    Expect(0, 72384, '\p{_ IS_Canadian_Aboriginal}', "");
-    Expect(1, 72384, '\p{^_ IS_Canadian_Aboriginal}', "");
-    Expect(1, 72384, '\P{_ IS_Canadian_Aboriginal}', "");
-    Expect(0, 72384, '\P{^_ IS_Canadian_Aboriginal}', "");
-    Error('\p{/a/Cans}');
-    Error('\P{/a/Cans}');
+    Expect(1, 72383, '\p{- Is_canadian_ABORIGINAL}', "");
+    Expect(0, 72383, '\p{^- Is_canadian_ABORIGINAL}', "");
+    Expect(0, 72383, '\P{- Is_canadian_ABORIGINAL}', "");
+    Expect(1, 72383, '\P{^- Is_canadian_ABORIGINAL}', "");
+    Expect(0, 72384, '\p{- Is_canadian_ABORIGINAL}', "");
+    Expect(1, 72384, '\p{^- Is_canadian_ABORIGINAL}', "");
+    Expect(1, 72384, '\P{- Is_canadian_ABORIGINAL}', "");
+    Expect(0, 72384, '\P{^- Is_canadian_ABORIGINAL}', "");
+    Error('\p{_ Cans/a/}');
+    Error('\P{_ Cans/a/}');
     Expect(1, 72383, '\p{cans}', "");
     Expect(0, 72383, '\p{^cans}', "");
     Expect(0, 72383, '\P{cans}', "");
@@ -89963,16 +90669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72384, '\p{^cans}', "");
     Expect(1, 72384, '\P{cans}', "");
     Expect(0, 72384, '\P{^cans}', "");
-    Expect(1, 72383, '\p{_-Cans}', "");
-    Expect(0, 72383, '\p{^_-Cans}', "");
-    Expect(0, 72383, '\P{_-Cans}', "");
-    Expect(1, 72383, '\P{^_-Cans}', "");
-    Expect(0, 72384, '\p{_-Cans}', "");
-    Expect(1, 72384, '\p{^_-Cans}', "");
-    Expect(1, 72384, '\P{_-Cans}', "");
-    Expect(0, 72384, '\P{^_-Cans}', "");
-    Error('\p{--Is_Cans/a/}');
-    Error('\P{--Is_Cans/a/}');
+    Expect(1, 72383, '\p{ 	CANS}', "");
+    Expect(0, 72383, '\p{^ 	CANS}', "");
+    Expect(0, 72383, '\P{ 	CANS}', "");
+    Expect(1, 72383, '\P{^ 	CANS}', "");
+    Expect(0, 72384, '\p{ 	CANS}', "");
+    Expect(1, 72384, '\p{^ 	CANS}', "");
+    Expect(1, 72384, '\P{ 	CANS}', "");
+    Expect(0, 72384, '\P{^ 	CANS}', "");
+    Error('\p{_:=is_CANS}');
+    Error('\P{_:=is_CANS}');
     Expect(1, 72383, '\p{iscans}', "");
     Expect(0, 72383, '\p{^iscans}', "");
     Expect(0, 72383, '\P{iscans}', "");
@@ -89981,16 +90687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72384, '\p{^iscans}', "");
     Expect(1, 72384, '\P{iscans}', "");
     Expect(0, 72384, '\P{^iscans}', "");
-    Expect(1, 72383, '\p{_is_Cans}', "");
-    Expect(0, 72383, '\p{^_is_Cans}', "");
-    Expect(0, 72383, '\P{_is_Cans}', "");
-    Expect(1, 72383, '\P{^_is_Cans}', "");
-    Expect(0, 72384, '\p{_is_Cans}', "");
-    Expect(1, 72384, '\p{^_is_Cans}', "");
-    Expect(1, 72384, '\P{_is_Cans}', "");
-    Expect(0, 72384, '\P{^_is_Cans}', "");
-    Error('\p{:=	 Carian}');
-    Error('\P{:=	 Carian}');
+    Expect(1, 72383, '\p{	 is_CANS}', "");
+    Expect(0, 72383, '\p{^	 is_CANS}', "");
+    Expect(0, 72383, '\P{	 is_CANS}', "");
+    Expect(1, 72383, '\P{^	 is_CANS}', "");
+    Expect(0, 72384, '\p{	 is_CANS}', "");
+    Expect(1, 72384, '\p{^	 is_CANS}', "");
+    Expect(1, 72384, '\P{	 is_CANS}', "");
+    Expect(0, 72384, '\P{^	 is_CANS}', "");
+    Error('\p{_Carian/a/}');
+    Error('\P{_Carian/a/}');
     Expect(1, 66256, '\p{carian}', "");
     Expect(0, 66256, '\p{^carian}', "");
     Expect(0, 66256, '\P{carian}', "");
@@ -89999,16 +90705,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66257, '\p{^carian}', "");
     Expect(1, 66257, '\P{carian}', "");
     Expect(0, 66257, '\P{^carian}', "");
-    Expect(1, 66256, '\p{-Carian}', "");
-    Expect(0, 66256, '\p{^-Carian}', "");
-    Expect(0, 66256, '\P{-Carian}', "");
-    Expect(1, 66256, '\P{^-Carian}', "");
-    Expect(0, 66257, '\p{-Carian}', "");
-    Expect(1, 66257, '\p{^-Carian}', "");
-    Expect(1, 66257, '\P{-Carian}', "");
-    Expect(0, 66257, '\P{^-Carian}', "");
-    Error('\p{ -IS_carian/a/}');
-    Error('\P{ -IS_carian/a/}');
+    Expect(1, 66256, '\p{-_carian}', "");
+    Expect(0, 66256, '\p{^-_carian}', "");
+    Expect(0, 66256, '\P{-_carian}', "");
+    Expect(1, 66256, '\P{^-_carian}', "");
+    Expect(0, 66257, '\p{-_carian}', "");
+    Expect(1, 66257, '\p{^-_carian}', "");
+    Expect(1, 66257, '\P{-_carian}', "");
+    Expect(0, 66257, '\P{^-_carian}', "");
+    Error('\p{_ Is_Carian:=}');
+    Error('\P{_ Is_Carian:=}');
     Expect(1, 66256, '\p{iscarian}', "");
     Expect(0, 66256, '\p{^iscarian}', "");
     Expect(0, 66256, '\P{iscarian}', "");
@@ -90017,16 +90723,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66257, '\p{^iscarian}', "");
     Expect(1, 66257, '\P{iscarian}', "");
     Expect(0, 66257, '\P{^iscarian}', "");
-    Expect(1, 66256, '\p{ IS_carian}', "");
-    Expect(0, 66256, '\p{^ IS_carian}', "");
-    Expect(0, 66256, '\P{ IS_carian}', "");
-    Expect(1, 66256, '\P{^ IS_carian}', "");
-    Expect(0, 66257, '\p{ IS_carian}', "");
-    Expect(1, 66257, '\p{^ IS_carian}', "");
-    Expect(1, 66257, '\P{ IS_carian}', "");
-    Expect(0, 66257, '\P{^ IS_carian}', "");
-    Error('\p{__CARI/a/}');
-    Error('\P{__CARI/a/}');
+    Expect(1, 66256, '\p{- Is_CARIAN}', "");
+    Expect(0, 66256, '\p{^- Is_CARIAN}', "");
+    Expect(0, 66256, '\P{- Is_CARIAN}', "");
+    Expect(1, 66256, '\P{^- Is_CARIAN}', "");
+    Expect(0, 66257, '\p{- Is_CARIAN}', "");
+    Expect(1, 66257, '\p{^- Is_CARIAN}', "");
+    Expect(1, 66257, '\P{- Is_CARIAN}', "");
+    Expect(0, 66257, '\P{^- Is_CARIAN}', "");
+    Error('\p{:=Cari}');
+    Error('\P{:=Cari}');
     Expect(1, 66256, '\p{cari}', "");
     Expect(0, 66256, '\p{^cari}', "");
     Expect(0, 66256, '\P{cari}', "");
@@ -90035,16 +90741,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66257, '\p{^cari}', "");
     Expect(1, 66257, '\P{cari}', "");
     Expect(0, 66257, '\P{^cari}', "");
-    Expect(1, 66256, '\p{	 Cari}', "");
-    Expect(0, 66256, '\p{^	 Cari}', "");
-    Expect(0, 66256, '\P{	 Cari}', "");
-    Expect(1, 66256, '\P{^	 Cari}', "");
-    Expect(0, 66257, '\p{	 Cari}', "");
-    Expect(1, 66257, '\p{^	 Cari}', "");
-    Expect(1, 66257, '\P{	 Cari}', "");
-    Expect(0, 66257, '\P{^	 Cari}', "");
-    Error('\p{	Is_CARI:=}');
-    Error('\P{	Is_CARI:=}');
+    Expect(1, 66256, '\p{--cari}', "");
+    Expect(0, 66256, '\p{^--cari}', "");
+    Expect(0, 66256, '\P{--cari}', "");
+    Expect(1, 66256, '\P{^--cari}', "");
+    Expect(0, 66257, '\p{--cari}', "");
+    Expect(1, 66257, '\p{^--cari}', "");
+    Expect(1, 66257, '\P{--cari}', "");
+    Expect(0, 66257, '\P{^--cari}', "");
+    Error('\p{_Is_cari:=}');
+    Error('\P{_Is_cari:=}');
     Expect(1, 66256, '\p{iscari}', "");
     Expect(0, 66256, '\p{^iscari}', "");
     Expect(0, 66256, '\P{iscari}', "");
@@ -90053,16 +90759,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66257, '\p{^iscari}', "");
     Expect(1, 66257, '\P{iscari}', "");
     Expect(0, 66257, '\P{^iscari}', "");
-    Expect(1, 66256, '\p{	Is_Cari}', "");
-    Expect(0, 66256, '\p{^	Is_Cari}', "");
-    Expect(0, 66256, '\P{	Is_Cari}', "");
-    Expect(1, 66256, '\P{^	Is_Cari}', "");
-    Expect(0, 66257, '\p{	Is_Cari}', "");
-    Expect(1, 66257, '\p{^	Is_Cari}', "");
-    Expect(1, 66257, '\P{	Is_Cari}', "");
-    Expect(0, 66257, '\P{^	Is_Cari}', "");
-    Error('\p{/a/  Case_Ignorable}');
-    Error('\P{/a/  Case_Ignorable}');
+    Expect(1, 66256, '\p{ Is_CARI}', "");
+    Expect(0, 66256, '\p{^ Is_CARI}', "");
+    Expect(0, 66256, '\P{ Is_CARI}', "");
+    Expect(1, 66256, '\P{^ Is_CARI}', "");
+    Expect(0, 66257, '\p{ Is_CARI}', "");
+    Expect(1, 66257, '\p{^ Is_CARI}', "");
+    Expect(1, 66257, '\P{ Is_CARI}', "");
+    Expect(0, 66257, '\P{^ Is_CARI}', "");
+    Error('\p{ :=Case_Ignorable}');
+    Error('\P{ :=Case_Ignorable}');
     Expect(1, 917999, '\p{caseignorable}', "");
     Expect(0, 917999, '\p{^caseignorable}', "");
     Expect(0, 917999, '\P{caseignorable}', "");
@@ -90071,16 +90777,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^caseignorable}', "");
     Expect(1, 918000, '\P{caseignorable}', "");
     Expect(0, 918000, '\P{^caseignorable}', "");
-    Expect(1, 917999, '\p{ case_Ignorable}', "");
-    Expect(0, 917999, '\p{^ case_Ignorable}', "");
-    Expect(0, 917999, '\P{ case_Ignorable}', "");
-    Expect(1, 917999, '\P{^ case_Ignorable}', "");
-    Expect(0, 918000, '\p{ case_Ignorable}', "");
-    Expect(1, 918000, '\p{^ case_Ignorable}', "");
-    Expect(1, 918000, '\P{ case_Ignorable}', "");
-    Expect(0, 918000, '\P{^ case_Ignorable}', "");
-    Error('\p{:=-is_Case_Ignorable}');
-    Error('\P{:=-is_Case_Ignorable}');
+    Expect(1, 917999, '\p{_ CASE_ignorable}', "");
+    Expect(0, 917999, '\p{^_ CASE_ignorable}', "");
+    Expect(0, 917999, '\P{_ CASE_ignorable}', "");
+    Expect(1, 917999, '\P{^_ CASE_ignorable}', "");
+    Expect(0, 918000, '\p{_ CASE_ignorable}', "");
+    Expect(1, 918000, '\p{^_ CASE_ignorable}', "");
+    Expect(1, 918000, '\P{_ CASE_ignorable}', "");
+    Expect(0, 918000, '\P{^_ CASE_ignorable}', "");
+    Error('\p{_is_CASE_ignorable:=}');
+    Error('\P{_is_CASE_ignorable:=}');
     Expect(1, 917999, '\p{iscaseignorable}', "");
     Expect(0, 917999, '\p{^iscaseignorable}', "");
     Expect(0, 917999, '\P{iscaseignorable}', "");
@@ -90089,16 +90795,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^iscaseignorable}', "");
     Expect(1, 918000, '\P{iscaseignorable}', "");
     Expect(0, 918000, '\P{^iscaseignorable}', "");
-    Expect(1, 917999, '\p{-_Is_Case_Ignorable}', "");
-    Expect(0, 917999, '\p{^-_Is_Case_Ignorable}', "");
-    Expect(0, 917999, '\P{-_Is_Case_Ignorable}', "");
-    Expect(1, 917999, '\P{^-_Is_Case_Ignorable}', "");
-    Expect(0, 918000, '\p{-_Is_Case_Ignorable}', "");
-    Expect(1, 918000, '\p{^-_Is_Case_Ignorable}', "");
-    Expect(1, 918000, '\P{-_Is_Case_Ignorable}', "");
-    Expect(0, 918000, '\P{^-_Is_Case_Ignorable}', "");
-    Error('\p{ ci:=}');
-    Error('\P{ ci:=}');
+    Expect(1, 917999, '\p{-_Is_CASE_Ignorable}', "");
+    Expect(0, 917999, '\p{^-_Is_CASE_Ignorable}', "");
+    Expect(0, 917999, '\P{-_Is_CASE_Ignorable}', "");
+    Expect(1, 917999, '\P{^-_Is_CASE_Ignorable}', "");
+    Expect(0, 918000, '\p{-_Is_CASE_Ignorable}', "");
+    Expect(1, 918000, '\p{^-_Is_CASE_Ignorable}', "");
+    Expect(1, 918000, '\P{-_Is_CASE_Ignorable}', "");
+    Expect(0, 918000, '\P{^-_Is_CASE_Ignorable}', "");
+    Error('\p{-	CI:=}');
+    Error('\P{-	CI:=}');
     Expect(1, 917999, '\p{ci}', "");
     Expect(0, 917999, '\p{^ci}', "");
     Expect(0, 917999, '\P{ci}', "");
@@ -90107,16 +90813,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^ci}', "");
     Expect(1, 918000, '\P{ci}', "");
     Expect(0, 918000, '\P{^ci}', "");
-    Expect(1, 917999, '\p{ 	ci}', "");
-    Expect(0, 917999, '\p{^ 	ci}', "");
-    Expect(0, 917999, '\P{ 	ci}', "");
-    Expect(1, 917999, '\P{^ 	ci}', "");
-    Expect(0, 918000, '\p{ 	ci}', "");
-    Expect(1, 918000, '\p{^ 	ci}', "");
-    Expect(1, 918000, '\P{ 	ci}', "");
-    Expect(0, 918000, '\P{^ 	ci}', "");
-    Error('\p{--Is_ci/a/}');
-    Error('\P{--Is_ci/a/}');
+    Expect(1, 917999, '\p{-	ci}', "");
+    Expect(0, 917999, '\p{^-	ci}', "");
+    Expect(0, 917999, '\P{-	ci}', "");
+    Expect(1, 917999, '\P{^-	ci}', "");
+    Expect(0, 918000, '\p{-	ci}', "");
+    Expect(1, 918000, '\p{^-	ci}', "");
+    Expect(1, 918000, '\P{-	ci}', "");
+    Expect(0, 918000, '\P{^-	ci}', "");
+    Error('\p{:=_ IS_CI}');
+    Error('\P{:=_ IS_CI}');
     Expect(1, 917999, '\p{isci}', "");
     Expect(0, 917999, '\p{^isci}', "");
     Expect(0, 917999, '\P{isci}', "");
@@ -90125,16 +90831,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isci}', "");
     Expect(1, 918000, '\P{isci}', "");
     Expect(0, 918000, '\P{^isci}', "");
-    Expect(1, 917999, '\p{__IS_CI}', "");
-    Expect(0, 917999, '\p{^__IS_CI}', "");
-    Expect(0, 917999, '\P{__IS_CI}', "");
-    Expect(1, 917999, '\P{^__IS_CI}', "");
-    Expect(0, 918000, '\p{__IS_CI}', "");
-    Expect(1, 918000, '\p{^__IS_CI}', "");
-    Expect(1, 918000, '\P{__IS_CI}', "");
-    Expect(0, 918000, '\P{^__IS_CI}', "");
-    Error('\p{	_Cased/a/}');
-    Error('\P{	_Cased/a/}');
+    Expect(1, 917999, '\p{  is_CI}', "");
+    Expect(0, 917999, '\p{^  is_CI}', "");
+    Expect(0, 917999, '\P{  is_CI}', "");
+    Expect(1, 917999, '\P{^  is_CI}', "");
+    Expect(0, 918000, '\p{  is_CI}', "");
+    Expect(1, 918000, '\p{^  is_CI}', "");
+    Expect(1, 918000, '\P{  is_CI}', "");
+    Expect(0, 918000, '\P{^  is_CI}', "");
+    Error('\p{/a/ CASED}');
+    Error('\P{/a/ CASED}');
     Expect(1, 127369, '\p{cased}', "");
     Expect(0, 127369, '\p{^cased}', "");
     Expect(0, 127369, '\P{cased}', "");
@@ -90143,16 +90849,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127370, '\p{^cased}', "");
     Expect(1, 127370, '\P{cased}', "");
     Expect(0, 127370, '\P{^cased}', "");
-    Expect(1, 127369, '\p{-CASED}', "");
-    Expect(0, 127369, '\p{^-CASED}', "");
-    Expect(0, 127369, '\P{-CASED}', "");
-    Expect(1, 127369, '\P{^-CASED}', "");
-    Expect(0, 127370, '\p{-CASED}', "");
-    Expect(1, 127370, '\p{^-CASED}', "");
-    Expect(1, 127370, '\P{-CASED}', "");
-    Expect(0, 127370, '\P{^-CASED}', "");
-    Error('\p{:=-Is_CASED}');
-    Error('\P{:=-Is_CASED}');
+    Expect(1, 127369, '\p{ -CASED}', "");
+    Expect(0, 127369, '\p{^ -CASED}', "");
+    Expect(0, 127369, '\P{ -CASED}', "");
+    Expect(1, 127369, '\P{^ -CASED}', "");
+    Expect(0, 127370, '\p{ -CASED}', "");
+    Expect(1, 127370, '\p{^ -CASED}', "");
+    Expect(1, 127370, '\P{ -CASED}', "");
+    Expect(0, 127370, '\P{^ -CASED}', "");
+    Error('\p{/a/ _is_Cased}');
+    Error('\P{/a/ _is_Cased}');
     Expect(1, 127369, '\p{iscased}', "");
     Expect(0, 127369, '\p{^iscased}', "");
     Expect(0, 127369, '\P{iscased}', "");
@@ -90161,16 +90867,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127370, '\p{^iscased}', "");
     Expect(1, 127370, '\P{iscased}', "");
     Expect(0, 127370, '\P{^iscased}', "");
-    Expect(1, 127369, '\p{ -Is_Cased}', "");
-    Expect(0, 127369, '\p{^ -Is_Cased}', "");
-    Expect(0, 127369, '\P{ -Is_Cased}', "");
-    Expect(1, 127369, '\P{^ -Is_Cased}', "");
-    Expect(0, 127370, '\p{ -Is_Cased}', "");
-    Expect(1, 127370, '\p{^ -Is_Cased}', "");
-    Expect(1, 127370, '\P{ -Is_Cased}', "");
-    Expect(0, 127370, '\P{^ -Is_Cased}', "");
-    Error('\p{__CASED_Letter:=}');
-    Error('\P{__CASED_Letter:=}');
+    Expect(1, 127369, '\p{ Is_Cased}', "");
+    Expect(0, 127369, '\p{^ Is_Cased}', "");
+    Expect(0, 127369, '\P{ Is_Cased}', "");
+    Expect(1, 127369, '\P{^ Is_Cased}', "");
+    Expect(0, 127370, '\p{ Is_Cased}', "");
+    Expect(1, 127370, '\p{^ Is_Cased}', "");
+    Expect(1, 127370, '\P{ Is_Cased}', "");
+    Expect(0, 127370, '\P{^ Is_Cased}', "");
+    Error('\p{:= cased_letter}');
+    Error('\P{:= cased_letter}');
     Expect(1, 125251, '\p{casedletter}', "");
     Expect(0, 125251, '\p{^casedletter}', "");
     Expect(0, 125251, '\P{casedletter}', "");
@@ -90179,16 +90885,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^casedletter}', "");
     Expect(1, 125252, '\P{casedletter}', "");
     Expect(0, 125252, '\P{^casedletter}', "");
-    Expect(1, 125251, '\p{_CASED_letter}', "");
-    Expect(0, 125251, '\p{^_CASED_letter}', "");
-    Expect(0, 125251, '\P{_CASED_letter}', "");
-    Expect(1, 125251, '\P{^_CASED_letter}', "");
-    Expect(0, 125252, '\p{_CASED_letter}', "");
-    Expect(1, 125252, '\p{^_CASED_letter}', "");
-    Expect(1, 125252, '\P{_CASED_letter}', "");
-    Expect(0, 125252, '\P{^_CASED_letter}', "");
-    Error('\p{-/a/is_Cased_letter}');
-    Error('\P{-/a/is_Cased_letter}');
+    Expect(1, 125251, '\p{-cased_Letter}', "");
+    Expect(0, 125251, '\p{^-cased_Letter}', "");
+    Expect(0, 125251, '\P{-cased_Letter}', "");
+    Expect(1, 125251, '\P{^-cased_Letter}', "");
+    Expect(0, 125252, '\p{-cased_Letter}', "");
+    Expect(1, 125252, '\p{^-cased_Letter}', "");
+    Expect(1, 125252, '\P{-cased_Letter}', "");
+    Expect(0, 125252, '\P{^-cased_Letter}', "");
+    Error('\p{-	Is_CASED_LETTER:=}');
+    Error('\P{-	Is_CASED_LETTER:=}');
     Expect(1, 125251, '\p{iscasedletter}', "");
     Expect(0, 125251, '\p{^iscasedletter}', "");
     Expect(0, 125251, '\P{iscasedletter}', "");
@@ -90197,16 +90903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^iscasedletter}', "");
     Expect(1, 125252, '\P{iscasedletter}', "");
     Expect(0, 125252, '\P{^iscasedletter}', "");
-    Expect(1, 125251, '\p{-_IS_Cased_letter}', "");
-    Expect(0, 125251, '\p{^-_IS_Cased_letter}', "");
-    Expect(0, 125251, '\P{-_IS_Cased_letter}', "");
-    Expect(1, 125251, '\P{^-_IS_Cased_letter}', "");
-    Expect(0, 125252, '\p{-_IS_Cased_letter}', "");
-    Expect(1, 125252, '\p{^-_IS_Cased_letter}', "");
-    Expect(1, 125252, '\P{-_IS_Cased_letter}', "");
-    Expect(0, 125252, '\P{^-_IS_Cased_letter}', "");
-    Error('\p{ /a/LC}');
-    Error('\P{ /a/LC}');
+    Expect(1, 125251, '\p{ is_CASED_Letter}', "");
+    Expect(0, 125251, '\p{^ is_CASED_Letter}', "");
+    Expect(0, 125251, '\P{ is_CASED_Letter}', "");
+    Expect(1, 125251, '\P{^ is_CASED_Letter}', "");
+    Expect(0, 125252, '\p{ is_CASED_Letter}', "");
+    Expect(1, 125252, '\p{^ is_CASED_Letter}', "");
+    Expect(1, 125252, '\P{ is_CASED_Letter}', "");
+    Expect(0, 125252, '\P{^ is_CASED_Letter}', "");
+    Error('\p{	lc:=}');
+    Error('\P{	lc:=}');
     Expect(1, 125251, '\p{lc}', "");
     Expect(0, 125251, '\p{^lc}', "");
     Expect(0, 125251, '\P{lc}', "");
@@ -90215,16 +90921,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^lc}', "");
     Expect(1, 125252, '\P{lc}', "");
     Expect(0, 125252, '\P{^lc}', "");
-    Expect(1, 125251, '\p{_-LC}', "");
-    Expect(0, 125251, '\p{^_-LC}', "");
-    Expect(0, 125251, '\P{_-LC}', "");
-    Expect(1, 125251, '\P{^_-LC}', "");
-    Expect(0, 125252, '\p{_-LC}', "");
-    Expect(1, 125252, '\p{^_-LC}', "");
-    Expect(1, 125252, '\P{_-LC}', "");
-    Expect(0, 125252, '\P{^_-LC}', "");
-    Error('\p{:=_IS_lc}');
-    Error('\P{:=_IS_lc}');
+    Expect(1, 125251, '\p{_	lc}', "");
+    Expect(0, 125251, '\p{^_	lc}', "");
+    Expect(0, 125251, '\P{_	lc}', "");
+    Expect(1, 125251, '\P{^_	lc}', "");
+    Expect(0, 125252, '\p{_	lc}', "");
+    Expect(1, 125252, '\p{^_	lc}', "");
+    Expect(1, 125252, '\P{_	lc}', "");
+    Expect(0, 125252, '\P{^_	lc}', "");
+    Error('\p{/a/is_LC}');
+    Error('\P{/a/is_LC}');
     Expect(1, 125251, '\p{islc}', "");
     Expect(0, 125251, '\p{^islc}', "");
     Expect(0, 125251, '\P{islc}', "");
@@ -90233,16 +90939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^islc}', "");
     Expect(1, 125252, '\P{islc}', "");
     Expect(0, 125252, '\P{^islc}', "");
-    Expect(1, 125251, '\p{-is_lc}', "");
-    Expect(0, 125251, '\p{^-is_lc}', "");
-    Expect(0, 125251, '\P{-is_lc}', "");
-    Expect(1, 125251, '\P{^-is_lc}', "");
-    Expect(0, 125252, '\p{-is_lc}', "");
-    Expect(1, 125252, '\p{^-is_lc}', "");
-    Expect(1, 125252, '\P{-is_lc}', "");
-    Expect(0, 125252, '\P{^-is_lc}', "");
-    Error('\p{/a/-L_}');
-    Error('\P{/a/-L_}');
+    Expect(1, 125251, '\p{  Is_LC}', "");
+    Expect(0, 125251, '\p{^  Is_LC}', "");
+    Expect(0, 125251, '\P{  Is_LC}', "");
+    Expect(1, 125251, '\P{^  Is_LC}', "");
+    Expect(0, 125252, '\p{  Is_LC}', "");
+    Expect(1, 125252, '\p{^  Is_LC}', "");
+    Expect(1, 125252, '\P{  Is_LC}', "");
+    Expect(0, 125252, '\P{^  Is_LC}', "");
+    Error('\p{_ L_/a/}');
+    Error('\P{_ L_/a/}');
     Expect(1, 125251, '\p{l_}', "");
     Expect(0, 125251, '\p{^l_}', "");
     Expect(0, 125251, '\P{l_}', "");
@@ -90251,16 +90957,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^l_}', "");
     Expect(1, 125252, '\P{l_}', "");
     Expect(0, 125252, '\P{^l_}', "");
-    Expect(1, 125251, '\p{--L_}', "");
-    Expect(0, 125251, '\p{^--L_}', "");
-    Expect(0, 125251, '\P{--L_}', "");
-    Expect(1, 125251, '\P{^--L_}', "");
-    Expect(0, 125252, '\p{--L_}', "");
-    Expect(1, 125252, '\p{^--L_}', "");
-    Expect(1, 125252, '\P{--L_}', "");
-    Expect(0, 125252, '\P{^--L_}', "");
-    Error('\p{ /a/Is_L_}');
-    Error('\P{ /a/Is_L_}');
+    Expect(1, 125251, '\p{_-l_}', "");
+    Expect(0, 125251, '\p{^_-l_}', "");
+    Expect(0, 125251, '\P{_-l_}', "");
+    Expect(1, 125251, '\P{^_-l_}', "");
+    Expect(0, 125252, '\p{_-l_}', "");
+    Expect(1, 125252, '\p{^_-l_}', "");
+    Expect(1, 125252, '\P{_-l_}', "");
+    Expect(0, 125252, '\P{^_-l_}', "");
+    Error('\p{- Is_l_/a/}');
+    Error('\P{- Is_l_/a/}');
     Expect(1, 125251, '\p{isl_}', "");
     Expect(0, 125251, '\p{^isl_}', "");
     Expect(0, 125251, '\P{isl_}', "");
@@ -90269,16 +90975,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^isl_}', "");
     Expect(1, 125252, '\P{isl_}', "");
     Expect(0, 125252, '\P{^isl_}', "");
-    Expect(1, 125251, '\p{-Is_L_}', "");
-    Expect(0, 125251, '\p{^-Is_L_}', "");
-    Expect(0, 125251, '\P{-Is_L_}', "");
-    Expect(1, 125251, '\P{^-Is_L_}', "");
-    Expect(0, 125252, '\p{-Is_L_}', "");
-    Expect(1, 125252, '\p{^-Is_L_}', "");
-    Expect(1, 125252, '\P{-Is_L_}', "");
-    Expect(0, 125252, '\P{^-Is_L_}', "");
-    Error('\p{_-L&:=}');
-    Error('\P{_-L&:=}');
+    Expect(1, 125251, '\p{--IS_l_}', "");
+    Expect(0, 125251, '\p{^--IS_l_}', "");
+    Expect(0, 125251, '\P{--IS_l_}', "");
+    Expect(1, 125251, '\P{^--IS_l_}', "");
+    Expect(0, 125252, '\p{--IS_l_}', "");
+    Expect(1, 125252, '\p{^--IS_l_}', "");
+    Expect(1, 125252, '\P{--IS_l_}', "");
+    Expect(0, 125252, '\P{^--IS_l_}', "");
+    Error('\p{	 L&:=}');
+    Error('\P{	 L&:=}');
     Expect(1, 125251, '\p{l&}', "");
     Expect(0, 125251, '\p{^l&}', "");
     Expect(0, 125251, '\P{l&}', "");
@@ -90287,16 +90993,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^l&}', "");
     Expect(1, 125252, '\P{l&}', "");
     Expect(0, 125252, '\P{^l&}', "");
-    Expect(1, 125251, '\p{		l&}', "");
-    Expect(0, 125251, '\p{^		l&}', "");
-    Expect(0, 125251, '\P{		l&}', "");
-    Expect(1, 125251, '\P{^		l&}', "");
-    Expect(0, 125252, '\p{		l&}', "");
-    Expect(1, 125252, '\p{^		l&}', "");
-    Expect(1, 125252, '\P{		l&}', "");
-    Expect(0, 125252, '\P{^		l&}', "");
-    Error('\p{	:=Is_L&}');
-    Error('\P{	:=Is_L&}');
+    Expect(1, 125251, '\p{ 	L&}', "");
+    Expect(0, 125251, '\p{^ 	L&}', "");
+    Expect(0, 125251, '\P{ 	L&}', "");
+    Expect(1, 125251, '\P{^ 	L&}', "");
+    Expect(0, 125252, '\p{ 	L&}', "");
+    Expect(1, 125252, '\p{^ 	L&}', "");
+    Expect(1, 125252, '\P{ 	L&}', "");
+    Expect(0, 125252, '\P{^ 	L&}', "");
+    Error('\p{:=_-Is_L&}');
+    Error('\P{:=_-Is_L&}');
     Expect(1, 125251, '\p{isl&}', "");
     Expect(0, 125251, '\p{^isl&}', "");
     Expect(0, 125251, '\P{isl&}', "");
@@ -90305,16 +91011,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^isl&}', "");
     Expect(1, 125252, '\P{isl&}', "");
     Expect(0, 125252, '\P{^isl&}', "");
-    Expect(1, 125251, '\p{_IS_L&}', "");
-    Expect(0, 125251, '\p{^_IS_L&}', "");
-    Expect(0, 125251, '\P{_IS_L&}', "");
-    Expect(1, 125251, '\P{^_IS_L&}', "");
-    Expect(0, 125252, '\p{_IS_L&}', "");
-    Expect(1, 125252, '\p{^_IS_L&}', "");
-    Expect(1, 125252, '\P{_IS_L&}', "");
-    Expect(0, 125252, '\P{^_IS_L&}', "");
-    Error('\p{-:=Caucasian_Albanian}');
-    Error('\P{-:=Caucasian_Albanian}');
+    Expect(1, 125251, '\p{ -IS_l&}', "");
+    Expect(0, 125251, '\p{^ -IS_l&}', "");
+    Expect(0, 125251, '\P{ -IS_l&}', "");
+    Expect(1, 125251, '\P{^ -IS_l&}', "");
+    Expect(0, 125252, '\p{ -IS_l&}', "");
+    Expect(1, 125252, '\p{^ -IS_l&}', "");
+    Expect(1, 125252, '\P{ -IS_l&}', "");
+    Expect(0, 125252, '\P{^ -IS_l&}', "");
+    Error('\p{-caucasian_Albanian:=}');
+    Error('\P{-caucasian_Albanian:=}');
     Expect(1, 66927, '\p{caucasianalbanian}', "");
     Expect(0, 66927, '\p{^caucasianalbanian}', "");
     Expect(0, 66927, '\P{caucasianalbanian}', "");
@@ -90323,16 +91029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66928, '\p{^caucasianalbanian}', "");
     Expect(1, 66928, '\P{caucasianalbanian}', "");
     Expect(0, 66928, '\P{^caucasianalbanian}', "");
-    Expect(1, 66927, '\p{ Caucasian_albanian}', "");
-    Expect(0, 66927, '\p{^ Caucasian_albanian}', "");
-    Expect(0, 66927, '\P{ Caucasian_albanian}', "");
-    Expect(1, 66927, '\P{^ Caucasian_albanian}', "");
-    Expect(0, 66928, '\p{ Caucasian_albanian}', "");
-    Expect(1, 66928, '\p{^ Caucasian_albanian}', "");
-    Expect(1, 66928, '\P{ Caucasian_albanian}', "");
-    Expect(0, 66928, '\P{^ Caucasian_albanian}', "");
-    Error('\p{ 	IS_caucasian_Albanian:=}');
-    Error('\P{ 	IS_caucasian_Albanian:=}');
+    Expect(1, 66927, '\p{_ Caucasian_Albanian}', "");
+    Expect(0, 66927, '\p{^_ Caucasian_Albanian}', "");
+    Expect(0, 66927, '\P{_ Caucasian_Albanian}', "");
+    Expect(1, 66927, '\P{^_ Caucasian_Albanian}', "");
+    Expect(0, 66928, '\p{_ Caucasian_Albanian}', "");
+    Expect(1, 66928, '\p{^_ Caucasian_Albanian}', "");
+    Expect(1, 66928, '\P{_ Caucasian_Albanian}', "");
+    Expect(0, 66928, '\P{^_ Caucasian_Albanian}', "");
+    Error('\p{/a/- is_caucasian_Albanian}');
+    Error('\P{/a/- is_caucasian_Albanian}');
     Expect(1, 66927, '\p{iscaucasianalbanian}', "");
     Expect(0, 66927, '\p{^iscaucasianalbanian}', "");
     Expect(0, 66927, '\P{iscaucasianalbanian}', "");
@@ -90341,16 +91047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66928, '\p{^iscaucasianalbanian}', "");
     Expect(1, 66928, '\P{iscaucasianalbanian}', "");
     Expect(0, 66928, '\P{^iscaucasianalbanian}', "");
-    Expect(1, 66927, '\p{--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66927, '\p{^--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66927, '\P{--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(1, 66927, '\P{^--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66928, '\p{--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(1, 66928, '\p{^--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(1, 66928, '\P{--IS_CAUCASIAN_ALBANIAN}', "");
-    Expect(0, 66928, '\P{^--IS_CAUCASIAN_ALBANIAN}', "");
-    Error('\p{ :=aghb}');
-    Error('\P{ :=aghb}');
+    Expect(1, 66927, '\p{-is_CAUCASIAN_Albanian}', "");
+    Expect(0, 66927, '\p{^-is_CAUCASIAN_Albanian}', "");
+    Expect(0, 66927, '\P{-is_CAUCASIAN_Albanian}', "");
+    Expect(1, 66927, '\P{^-is_CAUCASIAN_Albanian}', "");
+    Expect(0, 66928, '\p{-is_CAUCASIAN_Albanian}', "");
+    Expect(1, 66928, '\p{^-is_CAUCASIAN_Albanian}', "");
+    Expect(1, 66928, '\P{-is_CAUCASIAN_Albanian}', "");
+    Expect(0, 66928, '\P{^-is_CAUCASIAN_Albanian}', "");
+    Error('\p{_Aghb:=}');
+    Error('\P{_Aghb:=}');
     Expect(1, 66927, '\p{aghb}', "");
     Expect(0, 66927, '\p{^aghb}', "");
     Expect(0, 66927, '\P{aghb}', "");
@@ -90359,16 +91065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66928, '\p{^aghb}', "");
     Expect(1, 66928, '\P{aghb}', "");
     Expect(0, 66928, '\P{^aghb}', "");
-    Expect(1, 66927, '\p{_ Aghb}', "");
-    Expect(0, 66927, '\p{^_ Aghb}', "");
-    Expect(0, 66927, '\P{_ Aghb}', "");
-    Expect(1, 66927, '\P{^_ Aghb}', "");
-    Expect(0, 66928, '\p{_ Aghb}', "");
-    Expect(1, 66928, '\p{^_ Aghb}', "");
-    Expect(1, 66928, '\P{_ Aghb}', "");
-    Expect(0, 66928, '\P{^_ Aghb}', "");
-    Error('\p{:=_Is_Aghb}');
-    Error('\P{:=_Is_Aghb}');
+    Expect(1, 66927, '\p{-aghb}', "");
+    Expect(0, 66927, '\p{^-aghb}', "");
+    Expect(0, 66927, '\P{-aghb}', "");
+    Expect(1, 66927, '\P{^-aghb}', "");
+    Expect(0, 66928, '\p{-aghb}', "");
+    Expect(1, 66928, '\p{^-aghb}', "");
+    Expect(1, 66928, '\P{-aghb}', "");
+    Expect(0, 66928, '\P{^-aghb}', "");
+    Error('\p{/a/--IS_AGHB}');
+    Error('\P{/a/--IS_AGHB}');
     Expect(1, 66927, '\p{isaghb}', "");
     Expect(0, 66927, '\p{^isaghb}', "");
     Expect(0, 66927, '\P{isaghb}', "");
@@ -90377,16 +91083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66928, '\p{^isaghb}', "");
     Expect(1, 66928, '\P{isaghb}', "");
     Expect(0, 66928, '\P{^isaghb}', "");
-    Expect(1, 66927, '\p{-Is_aghb}', "");
-    Expect(0, 66927, '\p{^-Is_aghb}', "");
-    Expect(0, 66927, '\P{-Is_aghb}', "");
-    Expect(1, 66927, '\P{^-Is_aghb}', "");
-    Expect(0, 66928, '\p{-Is_aghb}', "");
-    Expect(1, 66928, '\p{^-Is_aghb}', "");
-    Expect(1, 66928, '\P{-Is_aghb}', "");
-    Expect(0, 66928, '\P{^-Is_aghb}', "");
-    Error('\p{_	CHAKMA/a/}');
-    Error('\P{_	CHAKMA/a/}');
+    Expect(1, 66927, '\p{_Is_AGHB}', "");
+    Expect(0, 66927, '\p{^_Is_AGHB}', "");
+    Expect(0, 66927, '\P{_Is_AGHB}', "");
+    Expect(1, 66927, '\P{^_Is_AGHB}', "");
+    Expect(0, 66928, '\p{_Is_AGHB}', "");
+    Expect(1, 66928, '\p{^_Is_AGHB}', "");
+    Expect(1, 66928, '\P{_Is_AGHB}', "");
+    Expect(0, 66928, '\P{^_Is_AGHB}', "");
+    Error('\p{:=__chakma}');
+    Error('\P{:=__chakma}');
     Expect(1, 69959, '\p{chakma}', "");
     Expect(0, 69959, '\p{^chakma}', "");
     Expect(0, 69959, '\P{chakma}', "");
@@ -90395,16 +91101,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69960, '\p{^chakma}', "");
     Expect(1, 69960, '\P{chakma}', "");
     Expect(0, 69960, '\P{^chakma}', "");
-    Expect(1, 69959, '\p{	-Chakma}', "");
-    Expect(0, 69959, '\p{^	-Chakma}', "");
-    Expect(0, 69959, '\P{	-Chakma}', "");
-    Expect(1, 69959, '\P{^	-Chakma}', "");
-    Expect(0, 69960, '\p{	-Chakma}', "");
-    Expect(1, 69960, '\p{^	-Chakma}', "");
-    Expect(1, 69960, '\P{	-Chakma}', "");
-    Expect(0, 69960, '\P{^	-Chakma}', "");
-    Error('\p{__IS_chakma/a/}');
-    Error('\P{__IS_chakma/a/}');
+    Expect(1, 69959, '\p{ 	Chakma}', "");
+    Expect(0, 69959, '\p{^ 	Chakma}', "");
+    Expect(0, 69959, '\P{ 	Chakma}', "");
+    Expect(1, 69959, '\P{^ 	Chakma}', "");
+    Expect(0, 69960, '\p{ 	Chakma}', "");
+    Expect(1, 69960, '\p{^ 	Chakma}', "");
+    Expect(1, 69960, '\P{ 	Chakma}', "");
+    Expect(0, 69960, '\P{^ 	Chakma}', "");
+    Error('\p{- is_Chakma/a/}');
+    Error('\P{- is_Chakma/a/}');
     Expect(1, 69959, '\p{ischakma}', "");
     Expect(0, 69959, '\p{^ischakma}', "");
     Expect(0, 69959, '\P{ischakma}', "");
@@ -90413,16 +91119,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69960, '\p{^ischakma}', "");
     Expect(1, 69960, '\P{ischakma}', "");
     Expect(0, 69960, '\P{^ischakma}', "");
-    Expect(1, 69959, '\p{		Is_CHAKMA}', "");
-    Expect(0, 69959, '\p{^		Is_CHAKMA}', "");
-    Expect(0, 69959, '\P{		Is_CHAKMA}', "");
-    Expect(1, 69959, '\P{^		Is_CHAKMA}', "");
-    Expect(0, 69960, '\p{		Is_CHAKMA}', "");
-    Expect(1, 69960, '\p{^		Is_CHAKMA}', "");
-    Expect(1, 69960, '\P{		Is_CHAKMA}', "");
-    Expect(0, 69960, '\P{^		Is_CHAKMA}', "");
-    Error('\p{:=-_CAKM}');
-    Error('\P{:=-_CAKM}');
+    Expect(1, 69959, '\p{ 	Is_Chakma}', "");
+    Expect(0, 69959, '\p{^ 	Is_Chakma}', "");
+    Expect(0, 69959, '\P{ 	Is_Chakma}', "");
+    Expect(1, 69959, '\P{^ 	Is_Chakma}', "");
+    Expect(0, 69960, '\p{ 	Is_Chakma}', "");
+    Expect(1, 69960, '\p{^ 	Is_Chakma}', "");
+    Expect(1, 69960, '\P{ 	Is_Chakma}', "");
+    Expect(0, 69960, '\P{^ 	Is_Chakma}', "");
+    Error('\p{/a/--cakm}');
+    Error('\P{/a/--cakm}');
     Expect(1, 69959, '\p{cakm}', "");
     Expect(0, 69959, '\p{^cakm}', "");
     Expect(0, 69959, '\P{cakm}', "");
@@ -90431,16 +91137,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69960, '\p{^cakm}', "");
     Expect(1, 69960, '\P{cakm}', "");
     Expect(0, 69960, '\P{^cakm}', "");
-    Expect(1, 69959, '\p{_cakm}', "");
-    Expect(0, 69959, '\p{^_cakm}', "");
-    Expect(0, 69959, '\P{_cakm}', "");
-    Expect(1, 69959, '\P{^_cakm}', "");
-    Expect(0, 69960, '\p{_cakm}', "");
-    Expect(1, 69960, '\p{^_cakm}', "");
-    Expect(1, 69960, '\P{_cakm}', "");
-    Expect(0, 69960, '\P{^_cakm}', "");
-    Error('\p{	:=Is_CAKM}');
-    Error('\P{	:=Is_CAKM}');
+    Expect(1, 69959, '\p{	Cakm}', "");
+    Expect(0, 69959, '\p{^	Cakm}', "");
+    Expect(0, 69959, '\P{	Cakm}', "");
+    Expect(1, 69959, '\P{^	Cakm}', "");
+    Expect(0, 69960, '\p{	Cakm}', "");
+    Expect(1, 69960, '\p{^	Cakm}', "");
+    Expect(1, 69960, '\P{	Cakm}', "");
+    Expect(0, 69960, '\P{^	Cakm}', "");
+    Error('\p{-/a/Is_Cakm}');
+    Error('\P{-/a/Is_Cakm}');
     Expect(1, 69959, '\p{iscakm}', "");
     Expect(0, 69959, '\p{^iscakm}', "");
     Expect(0, 69959, '\P{iscakm}', "");
@@ -90449,16 +91155,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69960, '\p{^iscakm}', "");
     Expect(1, 69960, '\P{iscakm}', "");
     Expect(0, 69960, '\P{^iscakm}', "");
-    Expect(1, 69959, '\p{-_IS_Cakm}', "");
-    Expect(0, 69959, '\p{^-_IS_Cakm}', "");
-    Expect(0, 69959, '\P{-_IS_Cakm}', "");
-    Expect(1, 69959, '\P{^-_IS_Cakm}', "");
-    Expect(0, 69960, '\p{-_IS_Cakm}', "");
-    Expect(1, 69960, '\p{^-_IS_Cakm}', "");
-    Expect(1, 69960, '\P{-_IS_Cakm}', "");
-    Expect(0, 69960, '\P{^-_IS_Cakm}', "");
-    Error('\p{/a/_Cham}');
-    Error('\P{/a/_Cham}');
+    Expect(1, 69959, '\p{  Is_cakm}', "");
+    Expect(0, 69959, '\p{^  Is_cakm}', "");
+    Expect(0, 69959, '\P{  Is_cakm}', "");
+    Expect(1, 69959, '\P{^  Is_cakm}', "");
+    Expect(0, 69960, '\p{  Is_cakm}', "");
+    Expect(1, 69960, '\p{^  Is_cakm}', "");
+    Expect(1, 69960, '\P{  Is_cakm}', "");
+    Expect(0, 69960, '\P{^  Is_cakm}', "");
+    Error('\p{ Cham/a/}');
+    Error('\P{ Cham/a/}');
     Expect(1, 43615, '\p{cham}', "");
     Expect(0, 43615, '\p{^cham}', "");
     Expect(0, 43615, '\P{cham}', "");
@@ -90467,16 +91173,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43616, '\p{^cham}', "");
     Expect(1, 43616, '\P{cham}', "");
     Expect(0, 43616, '\P{^cham}', "");
-    Expect(1, 43615, '\p{-	Cham}', "");
-    Expect(0, 43615, '\p{^-	Cham}', "");
-    Expect(0, 43615, '\P{-	Cham}', "");
-    Expect(1, 43615, '\P{^-	Cham}', "");
-    Expect(0, 43616, '\p{-	Cham}', "");
-    Expect(1, 43616, '\p{^-	Cham}', "");
-    Expect(1, 43616, '\P{-	Cham}', "");
-    Expect(0, 43616, '\P{^-	Cham}', "");
-    Error('\p{_/a/IS_Cham}');
-    Error('\P{_/a/IS_Cham}');
+    Expect(1, 43615, '\p{  Cham}', "");
+    Expect(0, 43615, '\p{^  Cham}', "");
+    Expect(0, 43615, '\P{  Cham}', "");
+    Expect(1, 43615, '\P{^  Cham}', "");
+    Expect(0, 43616, '\p{  Cham}', "");
+    Expect(1, 43616, '\p{^  Cham}', "");
+    Expect(1, 43616, '\P{  Cham}', "");
+    Expect(0, 43616, '\P{^  Cham}', "");
+    Error('\p{-Is_cham:=}');
+    Error('\P{-Is_cham:=}');
     Expect(1, 43615, '\p{ischam}', "");
     Expect(0, 43615, '\p{^ischam}', "");
     Expect(0, 43615, '\P{ischam}', "");
@@ -90485,16 +91191,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43616, '\p{^ischam}', "");
     Expect(1, 43616, '\P{ischam}', "");
     Expect(0, 43616, '\P{^ischam}', "");
-    Expect(1, 43615, '\p{- is_cham}', "");
-    Expect(0, 43615, '\p{^- is_cham}', "");
-    Expect(0, 43615, '\P{- is_cham}', "");
-    Expect(1, 43615, '\P{^- is_cham}', "");
-    Expect(0, 43616, '\p{- is_cham}', "");
-    Expect(1, 43616, '\p{^- is_cham}', "");
-    Expect(1, 43616, '\P{- is_cham}', "");
-    Expect(0, 43616, '\P{^- is_cham}', "");
-    Error('\p{/a/  Changes_WHEN_Casefolded}');
-    Error('\P{/a/  Changes_WHEN_Casefolded}');
+    Expect(1, 43615, '\p{_is_CHAM}', "");
+    Expect(0, 43615, '\p{^_is_CHAM}', "");
+    Expect(0, 43615, '\P{_is_CHAM}', "");
+    Expect(1, 43615, '\P{^_is_CHAM}', "");
+    Expect(0, 43616, '\p{_is_CHAM}', "");
+    Expect(1, 43616, '\p{^_is_CHAM}', "");
+    Expect(1, 43616, '\P{_is_CHAM}', "");
+    Expect(0, 43616, '\P{^_is_CHAM}', "");
+    Error('\p{:= 	CHANGES_When_Casefolded}');
+    Error('\P{:= 	CHANGES_When_Casefolded}');
     Expect(1, 125217, '\p{changeswhencasefolded}', "");
     Expect(0, 125217, '\p{^changeswhencasefolded}', "");
     Expect(0, 125217, '\P{changeswhencasefolded}', "");
@@ -90503,16 +91209,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^changeswhencasefolded}', "");
     Expect(1, 125218, '\P{changeswhencasefolded}', "");
     Expect(0, 125218, '\P{^changeswhencasefolded}', "");
-    Expect(1, 125217, '\p{	CHANGES_WHEN_Casefolded}', "");
-    Expect(0, 125217, '\p{^	CHANGES_WHEN_Casefolded}', "");
-    Expect(0, 125217, '\P{	CHANGES_WHEN_Casefolded}', "");
-    Expect(1, 125217, '\P{^	CHANGES_WHEN_Casefolded}', "");
-    Expect(0, 125218, '\p{	CHANGES_WHEN_Casefolded}', "");
-    Expect(1, 125218, '\p{^	CHANGES_WHEN_Casefolded}', "");
-    Expect(1, 125218, '\P{	CHANGES_WHEN_Casefolded}', "");
-    Expect(0, 125218, '\P{^	CHANGES_WHEN_Casefolded}', "");
-    Error('\p{	-is_changes_When_Casefolded:=}');
-    Error('\P{	-is_changes_When_Casefolded:=}');
+    Expect(1, 125217, '\p{- CHANGES_When_casefolded}', "");
+    Expect(0, 125217, '\p{^- CHANGES_When_casefolded}', "");
+    Expect(0, 125217, '\P{- CHANGES_When_casefolded}', "");
+    Expect(1, 125217, '\P{^- CHANGES_When_casefolded}', "");
+    Expect(0, 125218, '\p{- CHANGES_When_casefolded}', "");
+    Expect(1, 125218, '\p{^- CHANGES_When_casefolded}', "");
+    Expect(1, 125218, '\P{- CHANGES_When_casefolded}', "");
+    Expect(0, 125218, '\P{^- CHANGES_When_casefolded}', "");
+    Error('\p{--Is_Changes_when_CASEFOLDED:=}');
+    Error('\P{--Is_Changes_when_CASEFOLDED:=}');
     Expect(1, 125217, '\p{ischangeswhencasefolded}', "");
     Expect(0, 125217, '\p{^ischangeswhencasefolded}', "");
     Expect(0, 125217, '\P{ischangeswhencasefolded}', "");
@@ -90521,16 +91227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^ischangeswhencasefolded}', "");
     Expect(1, 125218, '\P{ischangeswhencasefolded}', "");
     Expect(0, 125218, '\P{^ischangeswhencasefolded}', "");
-    Expect(1, 125217, '\p{ -Is_changes_WHEN_Casefolded}', "");
-    Expect(0, 125217, '\p{^ -Is_changes_WHEN_Casefolded}', "");
-    Expect(0, 125217, '\P{ -Is_changes_WHEN_Casefolded}', "");
-    Expect(1, 125217, '\P{^ -Is_changes_WHEN_Casefolded}', "");
-    Expect(0, 125218, '\p{ -Is_changes_WHEN_Casefolded}', "");
-    Expect(1, 125218, '\p{^ -Is_changes_WHEN_Casefolded}', "");
-    Expect(1, 125218, '\P{ -Is_changes_WHEN_Casefolded}', "");
-    Expect(0, 125218, '\P{^ -Is_changes_WHEN_Casefolded}', "");
-    Error('\p{cwcf:=}');
-    Error('\P{cwcf:=}');
+    Expect(1, 125217, '\p{ Is_CHANGES_when_casefolded}', "");
+    Expect(0, 125217, '\p{^ Is_CHANGES_when_casefolded}', "");
+    Expect(0, 125217, '\P{ Is_CHANGES_when_casefolded}', "");
+    Expect(1, 125217, '\P{^ Is_CHANGES_when_casefolded}', "");
+    Expect(0, 125218, '\p{ Is_CHANGES_when_casefolded}', "");
+    Expect(1, 125218, '\p{^ Is_CHANGES_when_casefolded}', "");
+    Expect(1, 125218, '\P{ Is_CHANGES_when_casefolded}', "");
+    Expect(0, 125218, '\P{^ Is_CHANGES_when_casefolded}', "");
+    Error('\p{/a/CWCF}');
+    Error('\P{/a/CWCF}');
     Expect(1, 125217, '\p{cwcf}', "");
     Expect(0, 125217, '\p{^cwcf}', "");
     Expect(0, 125217, '\P{cwcf}', "");
@@ -90539,16 +91245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^cwcf}', "");
     Expect(1, 125218, '\P{cwcf}', "");
     Expect(0, 125218, '\P{^cwcf}', "");
-    Expect(1, 125217, '\p{ _CWCF}', "");
-    Expect(0, 125217, '\p{^ _CWCF}', "");
-    Expect(0, 125217, '\P{ _CWCF}', "");
-    Expect(1, 125217, '\P{^ _CWCF}', "");
-    Expect(0, 125218, '\p{ _CWCF}', "");
-    Expect(1, 125218, '\p{^ _CWCF}', "");
-    Expect(1, 125218, '\P{ _CWCF}', "");
-    Expect(0, 125218, '\P{^ _CWCF}', "");
-    Error('\p{/a/-Is_CWCF}');
-    Error('\P{/a/-Is_CWCF}');
+    Expect(1, 125217, '\p{ CWCF}', "");
+    Expect(0, 125217, '\p{^ CWCF}', "");
+    Expect(0, 125217, '\P{ CWCF}', "");
+    Expect(1, 125217, '\P{^ CWCF}', "");
+    Expect(0, 125218, '\p{ CWCF}', "");
+    Expect(1, 125218, '\p{^ CWCF}', "");
+    Expect(1, 125218, '\P{ CWCF}', "");
+    Expect(0, 125218, '\P{^ CWCF}', "");
+    Error('\p{_	Is_CWCF/a/}');
+    Error('\P{_	Is_CWCF/a/}');
     Expect(1, 125217, '\p{iscwcf}', "");
     Expect(0, 125217, '\p{^iscwcf}', "");
     Expect(0, 125217, '\P{iscwcf}', "");
@@ -90557,16 +91263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^iscwcf}', "");
     Expect(1, 125218, '\P{iscwcf}', "");
     Expect(0, 125218, '\P{^iscwcf}', "");
-    Expect(1, 125217, '\p{IS_CWCF}', "");
-    Expect(0, 125217, '\p{^IS_CWCF}', "");
-    Expect(0, 125217, '\P{IS_CWCF}', "");
-    Expect(1, 125217, '\P{^IS_CWCF}', "");
-    Expect(0, 125218, '\p{IS_CWCF}', "");
-    Expect(1, 125218, '\p{^IS_CWCF}', "");
-    Expect(1, 125218, '\P{IS_CWCF}', "");
-    Expect(0, 125218, '\P{^IS_CWCF}', "");
-    Error('\p{/a/-CHANGES_When_Casemapped}');
-    Error('\P{/a/-CHANGES_When_Casemapped}');
+    Expect(1, 125217, '\p{__Is_CWCF}', "");
+    Expect(0, 125217, '\p{^__Is_CWCF}', "");
+    Expect(0, 125217, '\P{__Is_CWCF}', "");
+    Expect(1, 125217, '\P{^__Is_CWCF}', "");
+    Expect(0, 125218, '\p{__Is_CWCF}', "");
+    Expect(1, 125218, '\p{^__Is_CWCF}', "");
+    Expect(1, 125218, '\P{__Is_CWCF}', "");
+    Expect(0, 125218, '\P{^__Is_CWCF}', "");
+    Error('\p{	:=Changes_WHEN_Casemapped}');
+    Error('\P{	:=Changes_WHEN_Casemapped}');
     Expect(1, 125251, '\p{changeswhencasemapped}', "");
     Expect(0, 125251, '\p{^changeswhencasemapped}', "");
     Expect(0, 125251, '\P{changeswhencasemapped}', "");
@@ -90575,16 +91281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^changeswhencasemapped}', "");
     Expect(1, 125252, '\P{changeswhencasemapped}', "");
     Expect(0, 125252, '\P{^changeswhencasemapped}', "");
-    Expect(1, 125251, '\p{ _changes_When_Casemapped}', "");
-    Expect(0, 125251, '\p{^ _changes_When_Casemapped}', "");
-    Expect(0, 125251, '\P{ _changes_When_Casemapped}', "");
-    Expect(1, 125251, '\P{^ _changes_When_Casemapped}', "");
-    Expect(0, 125252, '\p{ _changes_When_Casemapped}', "");
-    Expect(1, 125252, '\p{^ _changes_When_Casemapped}', "");
-    Expect(1, 125252, '\P{ _changes_When_Casemapped}', "");
-    Expect(0, 125252, '\P{^ _changes_When_Casemapped}', "");
-    Error('\p{	-IS_CHANGES_WHEN_CASEMAPPED/a/}');
-    Error('\P{	-IS_CHANGES_WHEN_CASEMAPPED/a/}');
+    Expect(1, 125251, '\p{	Changes_when_casemapped}', "");
+    Expect(0, 125251, '\p{^	Changes_when_casemapped}', "");
+    Expect(0, 125251, '\P{	Changes_when_casemapped}', "");
+    Expect(1, 125251, '\P{^	Changes_when_casemapped}', "");
+    Expect(0, 125252, '\p{	Changes_when_casemapped}', "");
+    Expect(1, 125252, '\p{^	Changes_when_casemapped}', "");
+    Expect(1, 125252, '\P{	Changes_when_casemapped}', "");
+    Expect(0, 125252, '\P{^	Changes_when_casemapped}', "");
+    Error('\p{/a/_-Is_CHANGES_WHEN_Casemapped}');
+    Error('\P{/a/_-Is_CHANGES_WHEN_Casemapped}');
     Expect(1, 125251, '\p{ischangeswhencasemapped}', "");
     Expect(0, 125251, '\p{^ischangeswhencasemapped}', "");
     Expect(0, 125251, '\P{ischangeswhencasemapped}', "");
@@ -90593,16 +91299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^ischangeswhencasemapped}', "");
     Expect(1, 125252, '\P{ischangeswhencasemapped}', "");
     Expect(0, 125252, '\P{^ischangeswhencasemapped}', "");
-    Expect(1, 125251, '\p{-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(0, 125251, '\p{^-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(0, 125251, '\P{-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(1, 125251, '\P{^-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(0, 125252, '\p{-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(1, 125252, '\p{^-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(1, 125252, '\P{-_Is_CHANGES_When_CASEMAPPED}', "");
-    Expect(0, 125252, '\P{^-_Is_CHANGES_When_CASEMAPPED}', "");
-    Error('\p{_cwcm/a/}');
-    Error('\P{_cwcm/a/}');
+    Expect(1, 125251, '\p{  Is_Changes_WHEN_casemapped}', "");
+    Expect(0, 125251, '\p{^  Is_Changes_WHEN_casemapped}', "");
+    Expect(0, 125251, '\P{  Is_Changes_WHEN_casemapped}', "");
+    Expect(1, 125251, '\P{^  Is_Changes_WHEN_casemapped}', "");
+    Expect(0, 125252, '\p{  Is_Changes_WHEN_casemapped}', "");
+    Expect(1, 125252, '\p{^  Is_Changes_WHEN_casemapped}', "");
+    Expect(1, 125252, '\P{  Is_Changes_WHEN_casemapped}', "");
+    Expect(0, 125252, '\P{^  Is_Changes_WHEN_casemapped}', "");
+    Error('\p{-/a/CWCM}');
+    Error('\P{-/a/CWCM}');
     Expect(1, 125251, '\p{cwcm}', "");
     Expect(0, 125251, '\p{^cwcm}', "");
     Expect(0, 125251, '\P{cwcm}', "");
@@ -90611,16 +91317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^cwcm}', "");
     Expect(1, 125252, '\P{cwcm}', "");
     Expect(0, 125252, '\P{^cwcm}', "");
-    Expect(1, 125251, '\p{- CWCM}', "");
-    Expect(0, 125251, '\p{^- CWCM}', "");
-    Expect(0, 125251, '\P{- CWCM}', "");
-    Expect(1, 125251, '\P{^- CWCM}', "");
-    Expect(0, 125252, '\p{- CWCM}', "");
-    Expect(1, 125252, '\p{^- CWCM}', "");
-    Expect(1, 125252, '\P{- CWCM}', "");
-    Expect(0, 125252, '\P{^- CWCM}', "");
-    Error('\p{_:=Is_CWCM}');
-    Error('\P{_:=Is_CWCM}');
+    Expect(1, 125251, '\p{CWCM}', "");
+    Expect(0, 125251, '\p{^CWCM}', "");
+    Expect(0, 125251, '\P{CWCM}', "");
+    Expect(1, 125251, '\P{^CWCM}', "");
+    Expect(0, 125252, '\p{CWCM}', "");
+    Expect(1, 125252, '\p{^CWCM}', "");
+    Expect(1, 125252, '\P{CWCM}', "");
+    Expect(0, 125252, '\P{^CWCM}', "");
+    Error('\p{-	IS_CWCM/a/}');
+    Error('\P{-	IS_CWCM/a/}');
     Expect(1, 125251, '\p{iscwcm}', "");
     Expect(0, 125251, '\p{^iscwcm}', "");
     Expect(0, 125251, '\P{iscwcm}', "");
@@ -90629,16 +91335,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^iscwcm}', "");
     Expect(1, 125252, '\P{iscwcm}', "");
     Expect(0, 125252, '\P{^iscwcm}', "");
-    Expect(1, 125251, '\p{  IS_CWCM}', "");
-    Expect(0, 125251, '\p{^  IS_CWCM}', "");
-    Expect(0, 125251, '\P{  IS_CWCM}', "");
-    Expect(1, 125251, '\P{^  IS_CWCM}', "");
-    Expect(0, 125252, '\p{  IS_CWCM}', "");
-    Expect(1, 125252, '\p{^  IS_CWCM}', "");
-    Expect(1, 125252, '\P{  IS_CWCM}', "");
-    Expect(0, 125252, '\P{^  IS_CWCM}', "");
-    Error('\p{ /a/changes_WHEN_lowercased}');
-    Error('\P{ /a/changes_WHEN_lowercased}');
+    Expect(1, 125251, '\p{	_Is_CWCM}', "");
+    Expect(0, 125251, '\p{^	_Is_CWCM}', "");
+    Expect(0, 125251, '\P{	_Is_CWCM}', "");
+    Expect(1, 125251, '\P{^	_Is_CWCM}', "");
+    Expect(0, 125252, '\p{	_Is_CWCM}', "");
+    Expect(1, 125252, '\p{^	_Is_CWCM}', "");
+    Expect(1, 125252, '\P{	_Is_CWCM}', "");
+    Expect(0, 125252, '\P{^	_Is_CWCM}', "");
+    Error('\p{/a/-CHANGES_When_Lowercased}');
+    Error('\P{/a/-CHANGES_When_Lowercased}');
     Expect(1, 125217, '\p{changeswhenlowercased}', "");
     Expect(0, 125217, '\p{^changeswhenlowercased}', "");
     Expect(0, 125217, '\P{changeswhenlowercased}', "");
@@ -90647,16 +91353,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^changeswhenlowercased}', "");
     Expect(1, 125218, '\P{changeswhenlowercased}', "");
     Expect(0, 125218, '\P{^changeswhenlowercased}', "");
-    Expect(1, 125217, '\p{ 	CHANGES_When_lowercased}', "");
-    Expect(0, 125217, '\p{^ 	CHANGES_When_lowercased}', "");
-    Expect(0, 125217, '\P{ 	CHANGES_When_lowercased}', "");
-    Expect(1, 125217, '\P{^ 	CHANGES_When_lowercased}', "");
-    Expect(0, 125218, '\p{ 	CHANGES_When_lowercased}', "");
-    Expect(1, 125218, '\p{^ 	CHANGES_When_lowercased}', "");
-    Expect(1, 125218, '\P{ 	CHANGES_When_lowercased}', "");
-    Expect(0, 125218, '\P{^ 	CHANGES_When_lowercased}', "");
-    Error('\p{	:=Is_CHANGES_When_LOWERCASED}');
-    Error('\P{	:=Is_CHANGES_When_LOWERCASED}');
+    Expect(1, 125217, '\p{__Changes_WHEN_lowercased}', "");
+    Expect(0, 125217, '\p{^__Changes_WHEN_lowercased}', "");
+    Expect(0, 125217, '\P{__Changes_WHEN_lowercased}', "");
+    Expect(1, 125217, '\P{^__Changes_WHEN_lowercased}', "");
+    Expect(0, 125218, '\p{__Changes_WHEN_lowercased}', "");
+    Expect(1, 125218, '\p{^__Changes_WHEN_lowercased}', "");
+    Expect(1, 125218, '\P{__Changes_WHEN_lowercased}', "");
+    Expect(0, 125218, '\P{^__Changes_WHEN_lowercased}', "");
+    Error('\p{/a/-_Is_Changes_When_lowercased}');
+    Error('\P{/a/-_Is_Changes_When_lowercased}');
     Expect(1, 125217, '\p{ischangeswhenlowercased}', "");
     Expect(0, 125217, '\p{^ischangeswhenlowercased}', "");
     Expect(0, 125217, '\P{ischangeswhenlowercased}', "");
@@ -90665,16 +91371,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^ischangeswhenlowercased}', "");
     Expect(1, 125218, '\P{ischangeswhenlowercased}', "");
     Expect(0, 125218, '\P{^ischangeswhenlowercased}', "");
-    Expect(1, 125217, '\p{ IS_Changes_WHEN_lowercased}', "");
-    Expect(0, 125217, '\p{^ IS_Changes_WHEN_lowercased}', "");
-    Expect(0, 125217, '\P{ IS_Changes_WHEN_lowercased}', "");
-    Expect(1, 125217, '\P{^ IS_Changes_WHEN_lowercased}', "");
-    Expect(0, 125218, '\p{ IS_Changes_WHEN_lowercased}', "");
-    Expect(1, 125218, '\p{^ IS_Changes_WHEN_lowercased}', "");
-    Expect(1, 125218, '\P{ IS_Changes_WHEN_lowercased}', "");
-    Expect(0, 125218, '\P{^ IS_Changes_WHEN_lowercased}', "");
-    Error('\p{:= CWL}');
-    Error('\P{:= CWL}');
+    Expect(1, 125217, '\p{- IS_Changes_when_Lowercased}', "");
+    Expect(0, 125217, '\p{^- IS_Changes_when_Lowercased}', "");
+    Expect(0, 125217, '\P{- IS_Changes_when_Lowercased}', "");
+    Expect(1, 125217, '\P{^- IS_Changes_when_Lowercased}', "");
+    Expect(0, 125218, '\p{- IS_Changes_when_Lowercased}', "");
+    Expect(1, 125218, '\p{^- IS_Changes_when_Lowercased}', "");
+    Expect(1, 125218, '\P{- IS_Changes_when_Lowercased}', "");
+    Expect(0, 125218, '\P{^- IS_Changes_when_Lowercased}', "");
+    Error('\p{/a/__cwl}');
+    Error('\P{/a/__cwl}');
     Expect(1, 125217, '\p{cwl}', "");
     Expect(0, 125217, '\p{^cwl}', "");
     Expect(0, 125217, '\P{cwl}', "");
@@ -90683,16 +91389,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^cwl}', "");
     Expect(1, 125218, '\P{cwl}', "");
     Expect(0, 125218, '\P{^cwl}', "");
-    Expect(1, 125217, '\p{- CWL}', "");
-    Expect(0, 125217, '\p{^- CWL}', "");
-    Expect(0, 125217, '\P{- CWL}', "");
-    Expect(1, 125217, '\P{^- CWL}', "");
-    Expect(0, 125218, '\p{- CWL}', "");
-    Expect(1, 125218, '\p{^- CWL}', "");
-    Expect(1, 125218, '\P{- CWL}', "");
-    Expect(0, 125218, '\P{^- CWL}', "");
-    Error('\p{__IS_CWL/a/}');
-    Error('\P{__IS_CWL/a/}');
+    Expect(1, 125217, '\p{-_CWL}', "");
+    Expect(0, 125217, '\p{^-_CWL}', "");
+    Expect(0, 125217, '\P{-_CWL}', "");
+    Expect(1, 125217, '\P{^-_CWL}', "");
+    Expect(0, 125218, '\p{-_CWL}', "");
+    Expect(1, 125218, '\p{^-_CWL}', "");
+    Expect(1, 125218, '\P{-_CWL}', "");
+    Expect(0, 125218, '\P{^-_CWL}', "");
+    Error('\p{/a/ _is_cwl}');
+    Error('\P{/a/ _is_cwl}');
     Expect(1, 125217, '\p{iscwl}', "");
     Expect(0, 125217, '\p{^iscwl}', "");
     Expect(0, 125217, '\P{iscwl}', "");
@@ -90701,16 +91407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125218, '\p{^iscwl}', "");
     Expect(1, 125218, '\P{iscwl}', "");
     Expect(0, 125218, '\P{^iscwl}', "");
-    Expect(1, 125217, '\p{ is_CWL}', "");
-    Expect(0, 125217, '\p{^ is_CWL}', "");
-    Expect(0, 125217, '\P{ is_CWL}', "");
-    Expect(1, 125217, '\P{^ is_CWL}', "");
-    Expect(0, 125218, '\p{ is_CWL}', "");
-    Expect(1, 125218, '\p{^ is_CWL}', "");
-    Expect(1, 125218, '\P{ is_CWL}', "");
-    Expect(0, 125218, '\P{^ is_CWL}', "");
-    Error('\p{_/a/Changes_When_NFKC_Casefolded}');
-    Error('\P{_/a/Changes_When_NFKC_Casefolded}');
+    Expect(1, 125217, '\p{-is_CWL}', "");
+    Expect(0, 125217, '\p{^-is_CWL}', "");
+    Expect(0, 125217, '\P{-is_CWL}', "");
+    Expect(1, 125217, '\P{^-is_CWL}', "");
+    Expect(0, 125218, '\p{-is_CWL}', "");
+    Expect(1, 125218, '\p{^-is_CWL}', "");
+    Expect(1, 125218, '\P{-is_CWL}', "");
+    Expect(0, 125218, '\P{^-is_CWL}', "");
+    Error('\p{/a/ -Changes_When_nfkc_Casefolded}');
+    Error('\P{/a/ -Changes_When_nfkc_Casefolded}');
     Expect(1, 921599, '\p{changeswhennfkccasefolded}', "");
     Expect(0, 921599, '\p{^changeswhennfkccasefolded}', "");
     Expect(0, 921599, '\P{changeswhennfkccasefolded}', "");
@@ -90719,16 +91425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^changeswhennfkccasefolded}', "");
     Expect(1, 921600, '\P{changeswhennfkccasefolded}', "");
     Expect(0, 921600, '\P{^changeswhennfkccasefolded}', "");
-    Expect(1, 921599, '\p{	_Changes_when_NFKC_Casefolded}', "");
-    Expect(0, 921599, '\p{^	_Changes_when_NFKC_Casefolded}', "");
-    Expect(0, 921599, '\P{	_Changes_when_NFKC_Casefolded}', "");
-    Expect(1, 921599, '\P{^	_Changes_when_NFKC_Casefolded}', "");
-    Expect(0, 921600, '\p{	_Changes_when_NFKC_Casefolded}', "");
-    Expect(1, 921600, '\p{^	_Changes_when_NFKC_Casefolded}', "");
-    Expect(1, 921600, '\P{	_Changes_when_NFKC_Casefolded}', "");
-    Expect(0, 921600, '\P{^	_Changes_when_NFKC_Casefolded}', "");
-    Error('\p{/a/-_IS_Changes_when_NFKC_Casefolded}');
-    Error('\P{/a/-_IS_Changes_when_NFKC_Casefolded}');
+    Expect(1, 921599, '\p{-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(0, 921599, '\p{^-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(0, 921599, '\P{-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(1, 921599, '\P{^-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(0, 921600, '\p{-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(1, 921600, '\p{^-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(1, 921600, '\P{-changes_WHEN_nfkc_Casefolded}', "");
+    Expect(0, 921600, '\P{^-changes_WHEN_nfkc_Casefolded}', "");
+    Error('\p{_/a/Is_Changes_when_NFKC_Casefolded}');
+    Error('\P{_/a/Is_Changes_when_NFKC_Casefolded}');
     Expect(1, 921599, '\p{ischangeswhennfkccasefolded}', "");
     Expect(0, 921599, '\p{^ischangeswhennfkccasefolded}', "");
     Expect(0, 921599, '\P{ischangeswhennfkccasefolded}', "");
@@ -90737,16 +91443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^ischangeswhennfkccasefolded}', "");
     Expect(1, 921600, '\P{ischangeswhennfkccasefolded}', "");
     Expect(0, 921600, '\P{^ischangeswhennfkccasefolded}', "");
-    Expect(1, 921599, '\p{ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(0, 921599, '\p{^ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(0, 921599, '\P{ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(1, 921599, '\P{^ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(0, 921600, '\p{ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(1, 921600, '\p{^ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(1, 921600, '\P{ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Expect(0, 921600, '\P{^ Is_CHANGES_WHEN_nfkc_CASEFOLDED}', "");
-    Error('\p{:=CWKCF}');
-    Error('\P{:=CWKCF}');
+    Expect(1, 921599, '\p{ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(0, 921599, '\p{^ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(0, 921599, '\P{ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(1, 921599, '\P{^ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(0, 921600, '\p{ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(1, 921600, '\p{^ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(1, 921600, '\P{ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Expect(0, 921600, '\P{^ 	IS_Changes_When_NFKC_Casefolded}', "");
+    Error('\p{	 CWKCF/a/}');
+    Error('\P{	 CWKCF/a/}');
     Expect(1, 921599, '\p{cwkcf}', "");
     Expect(0, 921599, '\p{^cwkcf}', "");
     Expect(0, 921599, '\P{cwkcf}', "");
@@ -90763,8 +91469,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^ -CWKCF}', "");
     Expect(1, 921600, '\P{ -CWKCF}', "");
     Expect(0, 921600, '\P{^ -CWKCF}', "");
-    Error('\p{-is_CWKCF/a/}');
-    Error('\P{-is_CWKCF/a/}');
+    Error('\p{/a/ IS_cwkcf}');
+    Error('\P{/a/ IS_cwkcf}');
     Expect(1, 921599, '\p{iscwkcf}', "");
     Expect(0, 921599, '\p{^iscwkcf}', "");
     Expect(0, 921599, '\P{iscwkcf}', "");
@@ -90773,16 +91479,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^iscwkcf}', "");
     Expect(1, 921600, '\P{iscwkcf}', "");
     Expect(0, 921600, '\P{^iscwkcf}', "");
-    Expect(1, 921599, '\p{_-Is_cwkcf}', "");
-    Expect(0, 921599, '\p{^_-Is_cwkcf}', "");
-    Expect(0, 921599, '\P{_-Is_cwkcf}', "");
-    Expect(1, 921599, '\P{^_-Is_cwkcf}', "");
-    Expect(0, 921600, '\p{_-Is_cwkcf}', "");
-    Expect(1, 921600, '\p{^_-Is_cwkcf}', "");
-    Expect(1, 921600, '\P{_-Is_cwkcf}', "");
-    Expect(0, 921600, '\P{^_-Is_cwkcf}', "");
-    Error('\p{/a/	CHANGES_when_Titlecased}');
-    Error('\P{/a/	CHANGES_when_Titlecased}');
+    Expect(1, 921599, '\p{  Is_CWKCF}', "");
+    Expect(0, 921599, '\p{^  Is_CWKCF}', "");
+    Expect(0, 921599, '\P{  Is_CWKCF}', "");
+    Expect(1, 921599, '\P{^  Is_CWKCF}', "");
+    Expect(0, 921600, '\p{  Is_CWKCF}', "");
+    Expect(1, 921600, '\p{^  Is_CWKCF}', "");
+    Expect(1, 921600, '\P{  Is_CWKCF}', "");
+    Expect(0, 921600, '\P{^  Is_CWKCF}', "");
+    Error('\p{/a/_CHANGES_When_titlecased}');
+    Error('\P{/a/_CHANGES_When_titlecased}');
     Expect(1, 125251, '\p{changeswhentitlecased}', "");
     Expect(0, 125251, '\p{^changeswhentitlecased}', "");
     Expect(0, 125251, '\P{changeswhentitlecased}', "");
@@ -90791,16 +91497,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^changeswhentitlecased}', "");
     Expect(1, 125252, '\P{changeswhentitlecased}', "");
     Expect(0, 125252, '\P{^changeswhentitlecased}', "");
-    Expect(1, 125251, '\p{Changes_When_Titlecased}', "");
-    Expect(0, 125251, '\p{^Changes_When_Titlecased}', "");
-    Expect(0, 125251, '\P{Changes_When_Titlecased}', "");
-    Expect(1, 125251, '\P{^Changes_When_Titlecased}', "");
-    Expect(0, 125252, '\p{Changes_When_Titlecased}', "");
-    Expect(1, 125252, '\p{^Changes_When_Titlecased}', "");
-    Expect(1, 125252, '\P{Changes_When_Titlecased}', "");
-    Expect(0, 125252, '\P{^Changes_When_Titlecased}', "");
-    Error('\p{/a/ 	is_Changes_WHEN_Titlecased}');
-    Error('\P{/a/ 	is_Changes_WHEN_Titlecased}');
+    Expect(1, 125251, '\p{_	changes_WHEN_titlecased}', "");
+    Expect(0, 125251, '\p{^_	changes_WHEN_titlecased}', "");
+    Expect(0, 125251, '\P{_	changes_WHEN_titlecased}', "");
+    Expect(1, 125251, '\P{^_	changes_WHEN_titlecased}', "");
+    Expect(0, 125252, '\p{_	changes_WHEN_titlecased}', "");
+    Expect(1, 125252, '\p{^_	changes_WHEN_titlecased}', "");
+    Expect(1, 125252, '\P{_	changes_WHEN_titlecased}', "");
+    Expect(0, 125252, '\P{^_	changes_WHEN_titlecased}', "");
+    Error('\p{:= 	Is_CHANGES_When_TITLECASED}');
+    Error('\P{:= 	Is_CHANGES_When_TITLECASED}');
     Expect(1, 125251, '\p{ischangeswhentitlecased}', "");
     Expect(0, 125251, '\p{^ischangeswhentitlecased}', "");
     Expect(0, 125251, '\P{ischangeswhentitlecased}', "");
@@ -90809,16 +91515,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^ischangeswhentitlecased}', "");
     Expect(1, 125252, '\P{ischangeswhentitlecased}', "");
     Expect(0, 125252, '\P{^ischangeswhentitlecased}', "");
-    Expect(1, 125251, '\p{_-Is_changes_When_titlecased}', "");
-    Expect(0, 125251, '\p{^_-Is_changes_When_titlecased}', "");
-    Expect(0, 125251, '\P{_-Is_changes_When_titlecased}', "");
-    Expect(1, 125251, '\P{^_-Is_changes_When_titlecased}', "");
-    Expect(0, 125252, '\p{_-Is_changes_When_titlecased}', "");
-    Expect(1, 125252, '\p{^_-Is_changes_When_titlecased}', "");
-    Expect(1, 125252, '\P{_-Is_changes_When_titlecased}', "");
-    Expect(0, 125252, '\P{^_-Is_changes_When_titlecased}', "");
-    Error('\p{:=	CWT}');
-    Error('\P{:=	CWT}');
+    Expect(1, 125251, '\p{-is_Changes_When_titlecased}', "");
+    Expect(0, 125251, '\p{^-is_Changes_When_titlecased}', "");
+    Expect(0, 125251, '\P{-is_Changes_When_titlecased}', "");
+    Expect(1, 125251, '\P{^-is_Changes_When_titlecased}', "");
+    Expect(0, 125252, '\p{-is_Changes_When_titlecased}', "");
+    Expect(1, 125252, '\p{^-is_Changes_When_titlecased}', "");
+    Expect(1, 125252, '\P{-is_Changes_When_titlecased}', "");
+    Expect(0, 125252, '\P{^-is_Changes_When_titlecased}', "");
+    Error('\p{--cwt:=}');
+    Error('\P{--cwt:=}');
     Expect(1, 125251, '\p{cwt}', "");
     Expect(0, 125251, '\p{^cwt}', "");
     Expect(0, 125251, '\P{cwt}', "");
@@ -90827,16 +91533,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^cwt}', "");
     Expect(1, 125252, '\P{cwt}', "");
     Expect(0, 125252, '\P{^cwt}', "");
-    Expect(1, 125251, '\p{_	CWT}', "");
-    Expect(0, 125251, '\p{^_	CWT}', "");
-    Expect(0, 125251, '\P{_	CWT}', "");
-    Expect(1, 125251, '\P{^_	CWT}', "");
-    Expect(0, 125252, '\p{_	CWT}', "");
-    Expect(1, 125252, '\p{^_	CWT}', "");
-    Expect(1, 125252, '\P{_	CWT}', "");
-    Expect(0, 125252, '\P{^_	CWT}', "");
-    Error('\p{	:=Is_cwt}');
-    Error('\P{	:=Is_cwt}');
+    Expect(1, 125251, '\p{_CWT}', "");
+    Expect(0, 125251, '\p{^_CWT}', "");
+    Expect(0, 125251, '\P{_CWT}', "");
+    Expect(1, 125251, '\P{^_CWT}', "");
+    Expect(0, 125252, '\p{_CWT}', "");
+    Expect(1, 125252, '\p{^_CWT}', "");
+    Expect(1, 125252, '\P{_CWT}', "");
+    Expect(0, 125252, '\P{^_CWT}', "");
+    Error('\p{/a/ _Is_cwt}');
+    Error('\P{/a/ _Is_cwt}');
     Expect(1, 125251, '\p{iscwt}', "");
     Expect(0, 125251, '\p{^iscwt}', "");
     Expect(0, 125251, '\P{iscwt}', "");
@@ -90845,16 +91551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^iscwt}', "");
     Expect(1, 125252, '\P{iscwt}', "");
     Expect(0, 125252, '\P{^iscwt}', "");
-    Expect(1, 125251, '\p{ is_CWT}', "");
-    Expect(0, 125251, '\p{^ is_CWT}', "");
-    Expect(0, 125251, '\P{ is_CWT}', "");
-    Expect(1, 125251, '\P{^ is_CWT}', "");
-    Expect(0, 125252, '\p{ is_CWT}', "");
-    Expect(1, 125252, '\p{^ is_CWT}', "");
-    Expect(1, 125252, '\P{ is_CWT}', "");
-    Expect(0, 125252, '\P{^ is_CWT}', "");
-    Error('\p{ Changes_WHEN_UPPERCASED/a/}');
-    Error('\P{ Changes_WHEN_UPPERCASED/a/}');
+    Expect(1, 125251, '\p{		Is_cwt}', "");
+    Expect(0, 125251, '\p{^		Is_cwt}', "");
+    Expect(0, 125251, '\P{		Is_cwt}', "");
+    Expect(1, 125251, '\P{^		Is_cwt}', "");
+    Expect(0, 125252, '\p{		Is_cwt}', "");
+    Expect(1, 125252, '\p{^		Is_cwt}', "");
+    Expect(1, 125252, '\P{		Is_cwt}', "");
+    Expect(0, 125252, '\P{^		Is_cwt}', "");
+    Error('\p{:=-	Changes_When_Uppercased}');
+    Error('\P{:=-	Changes_When_Uppercased}');
     Expect(1, 125251, '\p{changeswhenuppercased}', "");
     Expect(0, 125251, '\p{^changeswhenuppercased}', "");
     Expect(0, 125251, '\P{changeswhenuppercased}', "");
@@ -90863,16 +91569,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^changeswhenuppercased}', "");
     Expect(1, 125252, '\P{changeswhenuppercased}', "");
     Expect(0, 125252, '\P{^changeswhenuppercased}', "");
-    Expect(1, 125251, '\p{	CHANGES_When_uppercased}', "");
-    Expect(0, 125251, '\p{^	CHANGES_When_uppercased}', "");
-    Expect(0, 125251, '\P{	CHANGES_When_uppercased}', "");
-    Expect(1, 125251, '\P{^	CHANGES_When_uppercased}', "");
-    Expect(0, 125252, '\p{	CHANGES_When_uppercased}', "");
-    Expect(1, 125252, '\p{^	CHANGES_When_uppercased}', "");
-    Expect(1, 125252, '\P{	CHANGES_When_uppercased}', "");
-    Expect(0, 125252, '\P{^	CHANGES_When_uppercased}', "");
-    Error('\p{:= -Is_changes_when_uppercased}');
-    Error('\P{:= -Is_changes_when_uppercased}');
+    Expect(1, 125251, '\p{-	Changes_When_Uppercased}', "");
+    Expect(0, 125251, '\p{^-	Changes_When_Uppercased}', "");
+    Expect(0, 125251, '\P{-	Changes_When_Uppercased}', "");
+    Expect(1, 125251, '\P{^-	Changes_When_Uppercased}', "");
+    Expect(0, 125252, '\p{-	Changes_When_Uppercased}', "");
+    Expect(1, 125252, '\p{^-	Changes_When_Uppercased}', "");
+    Expect(1, 125252, '\P{-	Changes_When_Uppercased}', "");
+    Expect(0, 125252, '\P{^-	Changes_When_Uppercased}', "");
+    Error('\p{/a/IS_changes_when_uppercased}');
+    Error('\P{/a/IS_changes_when_uppercased}');
     Expect(1, 125251, '\p{ischangeswhenuppercased}', "");
     Expect(0, 125251, '\p{^ischangeswhenuppercased}', "");
     Expect(0, 125251, '\P{ischangeswhenuppercased}', "");
@@ -90881,16 +91587,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^ischangeswhenuppercased}', "");
     Expect(1, 125252, '\P{ischangeswhenuppercased}', "");
     Expect(0, 125252, '\P{^ischangeswhenuppercased}', "");
-    Expect(1, 125251, '\p{_	is_CHANGES_When_Uppercased}', "");
-    Expect(0, 125251, '\p{^_	is_CHANGES_When_Uppercased}', "");
-    Expect(0, 125251, '\P{_	is_CHANGES_When_Uppercased}', "");
-    Expect(1, 125251, '\P{^_	is_CHANGES_When_Uppercased}', "");
-    Expect(0, 125252, '\p{_	is_CHANGES_When_Uppercased}', "");
-    Expect(1, 125252, '\p{^_	is_CHANGES_When_Uppercased}', "");
-    Expect(1, 125252, '\P{_	is_CHANGES_When_Uppercased}', "");
-    Expect(0, 125252, '\P{^_	is_CHANGES_When_Uppercased}', "");
-    Error('\p{/a/	_CWU}');
-    Error('\P{/a/	_CWU}');
+    Expect(1, 125251, '\p{	 is_Changes_When_UPPERCASED}', "");
+    Expect(0, 125251, '\p{^	 is_Changes_When_UPPERCASED}', "");
+    Expect(0, 125251, '\P{	 is_Changes_When_UPPERCASED}', "");
+    Expect(1, 125251, '\P{^	 is_Changes_When_UPPERCASED}', "");
+    Expect(0, 125252, '\p{	 is_Changes_When_UPPERCASED}', "");
+    Expect(1, 125252, '\p{^	 is_Changes_When_UPPERCASED}', "");
+    Expect(1, 125252, '\P{	 is_Changes_When_UPPERCASED}', "");
+    Expect(0, 125252, '\P{^	 is_Changes_When_UPPERCASED}', "");
+    Error('\p{/a/cwu}');
+    Error('\P{/a/cwu}');
     Expect(1, 125251, '\p{cwu}', "");
     Expect(0, 125251, '\p{^cwu}', "");
     Expect(0, 125251, '\P{cwu}', "");
@@ -90899,16 +91605,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^cwu}', "");
     Expect(1, 125252, '\P{cwu}', "");
     Expect(0, 125252, '\P{^cwu}', "");
-    Expect(1, 125251, '\p{-	CWU}', "");
-    Expect(0, 125251, '\p{^-	CWU}', "");
-    Expect(0, 125251, '\P{-	CWU}', "");
-    Expect(1, 125251, '\P{^-	CWU}', "");
-    Expect(0, 125252, '\p{-	CWU}', "");
-    Expect(1, 125252, '\p{^-	CWU}', "");
-    Expect(1, 125252, '\P{-	CWU}', "");
-    Expect(0, 125252, '\P{^-	CWU}', "");
-    Error('\p{ :=Is_cwu}');
-    Error('\P{ :=Is_cwu}');
+    Expect(1, 125251, '\p{	-CWU}', "");
+    Expect(0, 125251, '\p{^	-CWU}', "");
+    Expect(0, 125251, '\P{	-CWU}', "");
+    Expect(1, 125251, '\P{^	-CWU}', "");
+    Expect(0, 125252, '\p{	-CWU}', "");
+    Expect(1, 125252, '\p{^	-CWU}', "");
+    Expect(1, 125252, '\P{	-CWU}', "");
+    Expect(0, 125252, '\P{^	-CWU}', "");
+    Error('\p{:=is_CWU}');
+    Error('\P{:=is_CWU}');
     Expect(1, 125251, '\p{iscwu}', "");
     Expect(0, 125251, '\p{^iscwu}', "");
     Expect(0, 125251, '\P{iscwu}', "");
@@ -90917,16 +91623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^iscwu}', "");
     Expect(1, 125252, '\P{iscwu}', "");
     Expect(0, 125252, '\P{^iscwu}', "");
-    Expect(1, 125251, '\p{_is_cwu}', "");
-    Expect(0, 125251, '\p{^_is_cwu}', "");
-    Expect(0, 125251, '\P{_is_cwu}', "");
-    Expect(1, 125251, '\P{^_is_cwu}', "");
-    Expect(0, 125252, '\p{_is_cwu}', "");
-    Expect(1, 125252, '\p{^_is_cwu}', "");
-    Expect(1, 125252, '\P{_is_cwu}', "");
-    Expect(0, 125252, '\P{^_is_cwu}', "");
-    Error('\p{	_Cherokee/a/}');
-    Error('\P{	_Cherokee/a/}');
+    Expect(1, 125251, '\p{_ is_CWU}', "");
+    Expect(0, 125251, '\p{^_ is_CWU}', "");
+    Expect(0, 125251, '\P{_ is_CWU}', "");
+    Expect(1, 125251, '\P{^_ is_CWU}', "");
+    Expect(0, 125252, '\p{_ is_CWU}', "");
+    Expect(1, 125252, '\p{^_ is_CWU}', "");
+    Expect(1, 125252, '\P{_ is_CWU}', "");
+    Expect(0, 125252, '\P{^_ is_CWU}', "");
+    Error('\p{	 CHEROKEE/a/}');
+    Error('\P{	 CHEROKEE/a/}');
     Expect(1, 43967, '\p{cherokee}', "");
     Expect(0, 43967, '\p{^cherokee}', "");
     Expect(0, 43967, '\P{cherokee}', "");
@@ -90935,16 +91641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^cherokee}', "");
     Expect(1, 43968, '\P{cherokee}', "");
     Expect(0, 43968, '\P{^cherokee}', "");
-    Expect(1, 43967, '\p{-Cherokee}', "");
-    Expect(0, 43967, '\p{^-Cherokee}', "");
-    Expect(0, 43967, '\P{-Cherokee}', "");
-    Expect(1, 43967, '\P{^-Cherokee}', "");
-    Expect(0, 43968, '\p{-Cherokee}', "");
-    Expect(1, 43968, '\p{^-Cherokee}', "");
-    Expect(1, 43968, '\P{-Cherokee}', "");
-    Expect(0, 43968, '\P{^-Cherokee}', "");
-    Error('\p{__IS_Cherokee/a/}');
-    Error('\P{__IS_Cherokee/a/}');
+    Expect(1, 43967, '\p{_ Cherokee}', "");
+    Expect(0, 43967, '\p{^_ Cherokee}', "");
+    Expect(0, 43967, '\P{_ Cherokee}', "");
+    Expect(1, 43967, '\P{^_ Cherokee}', "");
+    Expect(0, 43968, '\p{_ Cherokee}', "");
+    Expect(1, 43968, '\p{^_ Cherokee}', "");
+    Expect(1, 43968, '\P{_ Cherokee}', "");
+    Expect(0, 43968, '\P{^_ Cherokee}', "");
+    Error('\p{/a/- Is_Cherokee}');
+    Error('\P{/a/- Is_Cherokee}');
     Expect(1, 43967, '\p{ischerokee}', "");
     Expect(0, 43967, '\p{^ischerokee}', "");
     Expect(0, 43967, '\P{ischerokee}', "");
@@ -90953,16 +91659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^ischerokee}', "");
     Expect(1, 43968, '\P{ischerokee}', "");
     Expect(0, 43968, '\P{^ischerokee}', "");
-    Expect(1, 43967, '\p{_Is_CHEROKEE}', "");
-    Expect(0, 43967, '\p{^_Is_CHEROKEE}', "");
-    Expect(0, 43967, '\P{_Is_CHEROKEE}', "");
-    Expect(1, 43967, '\P{^_Is_CHEROKEE}', "");
-    Expect(0, 43968, '\p{_Is_CHEROKEE}', "");
-    Expect(1, 43968, '\p{^_Is_CHEROKEE}', "");
-    Expect(1, 43968, '\P{_Is_CHEROKEE}', "");
-    Expect(0, 43968, '\P{^_Is_CHEROKEE}', "");
-    Error('\p{_CHER/a/}');
-    Error('\P{_CHER/a/}');
+    Expect(1, 43967, '\p{_Is_cherokee}', "");
+    Expect(0, 43967, '\p{^_Is_cherokee}', "");
+    Expect(0, 43967, '\P{_Is_cherokee}', "");
+    Expect(1, 43967, '\P{^_Is_cherokee}', "");
+    Expect(0, 43968, '\p{_Is_cherokee}', "");
+    Expect(1, 43968, '\p{^_Is_cherokee}', "");
+    Expect(1, 43968, '\P{_Is_cherokee}', "");
+    Expect(0, 43968, '\P{^_Is_cherokee}', "");
+    Error('\p{/a/CHER}');
+    Error('\P{/a/CHER}');
     Expect(1, 43967, '\p{cher}', "");
     Expect(0, 43967, '\p{^cher}', "");
     Expect(0, 43967, '\P{cher}', "");
@@ -90971,16 +91677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^cher}', "");
     Expect(1, 43968, '\P{cher}', "");
     Expect(0, 43968, '\P{^cher}', "");
-    Expect(1, 43967, '\p{__Cher}', "");
-    Expect(0, 43967, '\p{^__Cher}', "");
-    Expect(0, 43967, '\P{__Cher}', "");
-    Expect(1, 43967, '\P{^__Cher}', "");
-    Expect(0, 43968, '\p{__Cher}', "");
-    Expect(1, 43968, '\p{^__Cher}', "");
-    Expect(1, 43968, '\P{__Cher}', "");
-    Expect(0, 43968, '\P{^__Cher}', "");
-    Error('\p{__IS_Cher/a/}');
-    Error('\P{__IS_Cher/a/}');
+    Expect(1, 43967, '\p{_cher}', "");
+    Expect(0, 43967, '\p{^_cher}', "");
+    Expect(0, 43967, '\P{_cher}', "");
+    Expect(1, 43967, '\P{^_cher}', "");
+    Expect(0, 43968, '\p{_cher}', "");
+    Expect(1, 43968, '\p{^_cher}', "");
+    Expect(1, 43968, '\P{_cher}', "");
+    Expect(0, 43968, '\P{^_cher}', "");
+    Error('\p{/a/_ Is_CHER}');
+    Error('\P{/a/_ Is_CHER}');
     Expect(1, 43967, '\p{ischer}', "");
     Expect(0, 43967, '\p{^ischer}', "");
     Expect(0, 43967, '\P{ischer}', "");
@@ -90989,16 +91695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^ischer}', "");
     Expect(1, 43968, '\P{ischer}', "");
     Expect(0, 43968, '\P{^ischer}', "");
-    Expect(1, 43967, '\p{		Is_CHER}', "");
-    Expect(0, 43967, '\p{^		Is_CHER}', "");
-    Expect(0, 43967, '\P{		Is_CHER}', "");
-    Expect(1, 43967, '\P{^		Is_CHER}', "");
-    Expect(0, 43968, '\p{		Is_CHER}', "");
-    Expect(1, 43968, '\p{^		Is_CHER}', "");
-    Expect(1, 43968, '\P{		Is_CHER}', "");
-    Expect(0, 43968, '\P{^		Is_CHER}', "");
-    Error('\p{-cherokee_Supplement:=}');
-    Error('\P{-cherokee_Supplement:=}');
+    Expect(1, 43967, '\p{Is_CHER}', "");
+    Expect(0, 43967, '\p{^Is_CHER}', "");
+    Expect(0, 43967, '\P{Is_CHER}', "");
+    Expect(1, 43967, '\P{^Is_CHER}', "");
+    Expect(0, 43968, '\p{Is_CHER}', "");
+    Expect(1, 43968, '\p{^Is_CHER}', "");
+    Expect(1, 43968, '\P{Is_CHER}', "");
+    Expect(0, 43968, '\P{^Is_CHER}', "");
+    Error('\p{-/a/Cherokee_Supplement}');
+    Error('\P{-/a/Cherokee_Supplement}');
     Expect(1, 43967, '\p{cherokeesupplement}', "");
     Expect(0, 43967, '\p{^cherokeesupplement}', "");
     Expect(0, 43967, '\P{cherokeesupplement}', "");
@@ -91007,16 +91713,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^cherokeesupplement}', "");
     Expect(1, 43968, '\P{cherokeesupplement}', "");
     Expect(0, 43968, '\P{^cherokeesupplement}', "");
-    Expect(1, 43967, '\p{		Cherokee_Supplement}', "");
-    Expect(0, 43967, '\p{^		Cherokee_Supplement}', "");
-    Expect(0, 43967, '\P{		Cherokee_Supplement}', "");
-    Expect(1, 43967, '\P{^		Cherokee_Supplement}', "");
-    Expect(0, 43968, '\p{		Cherokee_Supplement}', "");
-    Expect(1, 43968, '\p{^		Cherokee_Supplement}', "");
-    Expect(1, 43968, '\P{		Cherokee_Supplement}', "");
-    Expect(0, 43968, '\P{^		Cherokee_Supplement}', "");
-    Error('\p{-/a/IS_CHEROKEE_Supplement}');
-    Error('\P{-/a/IS_CHEROKEE_Supplement}');
+    Expect(1, 43967, '\p{	-cherokee_supplement}', "");
+    Expect(0, 43967, '\p{^	-cherokee_supplement}', "");
+    Expect(0, 43967, '\P{	-cherokee_supplement}', "");
+    Expect(1, 43967, '\P{^	-cherokee_supplement}', "");
+    Expect(0, 43968, '\p{	-cherokee_supplement}', "");
+    Expect(1, 43968, '\p{^	-cherokee_supplement}', "");
+    Expect(1, 43968, '\P{	-cherokee_supplement}', "");
+    Expect(0, 43968, '\P{^	-cherokee_supplement}', "");
+    Error('\p{:=IS_Cherokee_Supplement}');
+    Error('\P{:=IS_Cherokee_Supplement}');
     Expect(1, 43967, '\p{ischerokeesupplement}', "");
     Expect(0, 43967, '\p{^ischerokeesupplement}', "");
     Expect(0, 43967, '\P{ischerokeesupplement}', "");
@@ -91025,16 +91731,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^ischerokeesupplement}', "");
     Expect(1, 43968, '\P{ischerokeesupplement}', "");
     Expect(0, 43968, '\P{^ischerokeesupplement}', "");
-    Expect(1, 43967, '\p{- Is_cherokee_supplement}', "");
-    Expect(0, 43967, '\p{^- Is_cherokee_supplement}', "");
-    Expect(0, 43967, '\P{- Is_cherokee_supplement}', "");
-    Expect(1, 43967, '\P{^- Is_cherokee_supplement}', "");
-    Expect(0, 43968, '\p{- Is_cherokee_supplement}', "");
-    Expect(1, 43968, '\p{^- Is_cherokee_supplement}', "");
-    Expect(1, 43968, '\P{- Is_cherokee_supplement}', "");
-    Expect(0, 43968, '\P{^- Is_cherokee_supplement}', "");
-    Error('\p{-in_cherokee_supplement/a/}');
-    Error('\P{-in_cherokee_supplement/a/}');
+    Expect(1, 43967, '\p{ _Is_Cherokee_Supplement}', "");
+    Expect(0, 43967, '\p{^ _Is_Cherokee_Supplement}', "");
+    Expect(0, 43967, '\P{ _Is_Cherokee_Supplement}', "");
+    Expect(1, 43967, '\P{^ _Is_Cherokee_Supplement}', "");
+    Expect(0, 43968, '\p{ _Is_Cherokee_Supplement}', "");
+    Expect(1, 43968, '\p{^ _Is_Cherokee_Supplement}', "");
+    Expect(1, 43968, '\P{ _Is_Cherokee_Supplement}', "");
+    Expect(0, 43968, '\P{^ _Is_Cherokee_Supplement}', "");
+    Error('\p{_In_CHEROKEE_Supplement:=}');
+    Error('\P{_In_CHEROKEE_Supplement:=}');
     Expect(1, 43967, '\p{incherokeesupplement}', "");
     Expect(0, 43967, '\p{^incherokeesupplement}', "");
     Expect(0, 43967, '\P{incherokeesupplement}', "");
@@ -91043,16 +91749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^incherokeesupplement}', "");
     Expect(1, 43968, '\P{incherokeesupplement}', "");
     Expect(0, 43968, '\P{^incherokeesupplement}', "");
-    Expect(1, 43967, '\p{	_In_Cherokee_supplement}', "");
-    Expect(0, 43967, '\p{^	_In_Cherokee_supplement}', "");
-    Expect(0, 43967, '\P{	_In_Cherokee_supplement}', "");
-    Expect(1, 43967, '\P{^	_In_Cherokee_supplement}', "");
-    Expect(0, 43968, '\p{	_In_Cherokee_supplement}', "");
-    Expect(1, 43968, '\p{^	_In_Cherokee_supplement}', "");
-    Expect(1, 43968, '\P{	_In_Cherokee_supplement}', "");
-    Expect(0, 43968, '\P{^	_In_Cherokee_supplement}', "");
-    Error('\p{	:=Cherokee_sup}');
-    Error('\P{	:=Cherokee_sup}');
+    Expect(1, 43967, '\p{	In_Cherokee_Supplement}', "");
+    Expect(0, 43967, '\p{^	In_Cherokee_Supplement}', "");
+    Expect(0, 43967, '\P{	In_Cherokee_Supplement}', "");
+    Expect(1, 43967, '\P{^	In_Cherokee_Supplement}', "");
+    Expect(0, 43968, '\p{	In_Cherokee_Supplement}', "");
+    Expect(1, 43968, '\p{^	In_Cherokee_Supplement}', "");
+    Expect(1, 43968, '\P{	In_Cherokee_Supplement}', "");
+    Expect(0, 43968, '\P{^	In_Cherokee_Supplement}', "");
+    Error('\p{:=cherokee_sup}');
+    Error('\P{:=cherokee_sup}');
     Expect(1, 43967, '\p{cherokeesup}', "");
     Expect(0, 43967, '\p{^cherokeesup}', "");
     Expect(0, 43967, '\P{cherokeesup}', "");
@@ -91061,16 +91767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^cherokeesup}', "");
     Expect(1, 43968, '\P{cherokeesup}', "");
     Expect(0, 43968, '\P{^cherokeesup}', "");
-    Expect(1, 43967, '\p{Cherokee_Sup}', "");
-    Expect(0, 43967, '\p{^Cherokee_Sup}', "");
-    Expect(0, 43967, '\P{Cherokee_Sup}', "");
-    Expect(1, 43967, '\P{^Cherokee_Sup}', "");
-    Expect(0, 43968, '\p{Cherokee_Sup}', "");
-    Expect(1, 43968, '\p{^Cherokee_Sup}', "");
-    Expect(1, 43968, '\P{Cherokee_Sup}', "");
-    Expect(0, 43968, '\P{^Cherokee_Sup}', "");
-    Error('\p{	:=IS_CHEROKEE_Sup}');
-    Error('\P{	:=IS_CHEROKEE_Sup}');
+    Expect(1, 43967, '\p{ -cherokee_Sup}', "");
+    Expect(0, 43967, '\p{^ -cherokee_Sup}', "");
+    Expect(0, 43967, '\P{ -cherokee_Sup}', "");
+    Expect(1, 43967, '\P{^ -cherokee_Sup}', "");
+    Expect(0, 43968, '\p{ -cherokee_Sup}', "");
+    Expect(1, 43968, '\p{^ -cherokee_Sup}', "");
+    Expect(1, 43968, '\P{ -cherokee_Sup}', "");
+    Expect(0, 43968, '\P{^ -cherokee_Sup}', "");
+    Error('\p{/a/--is_CHEROKEE_SUP}');
+    Error('\P{/a/--is_CHEROKEE_SUP}');
     Expect(1, 43967, '\p{ischerokeesup}', "");
     Expect(0, 43967, '\p{^ischerokeesup}', "");
     Expect(0, 43967, '\P{ischerokeesup}', "");
@@ -91079,16 +91785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^ischerokeesup}', "");
     Expect(1, 43968, '\P{ischerokeesup}', "");
     Expect(0, 43968, '\P{^ischerokeesup}', "");
-    Expect(1, 43967, '\p{-	Is_cherokee_Sup}', "");
-    Expect(0, 43967, '\p{^-	Is_cherokee_Sup}', "");
-    Expect(0, 43967, '\P{-	Is_cherokee_Sup}', "");
-    Expect(1, 43967, '\P{^-	Is_cherokee_Sup}', "");
-    Expect(0, 43968, '\p{-	Is_cherokee_Sup}', "");
-    Expect(1, 43968, '\p{^-	Is_cherokee_Sup}', "");
-    Expect(1, 43968, '\P{-	Is_cherokee_Sup}', "");
-    Expect(0, 43968, '\P{^-	Is_cherokee_Sup}', "");
-    Error('\p{-/a/in_Cherokee_Sup}');
-    Error('\P{-/a/in_Cherokee_Sup}');
+    Expect(1, 43967, '\p{_Is_cherokee_Sup}', "");
+    Expect(0, 43967, '\p{^_Is_cherokee_Sup}', "");
+    Expect(0, 43967, '\P{_Is_cherokee_Sup}', "");
+    Expect(1, 43967, '\P{^_Is_cherokee_Sup}', "");
+    Expect(0, 43968, '\p{_Is_cherokee_Sup}', "");
+    Expect(1, 43968, '\p{^_Is_cherokee_Sup}', "");
+    Expect(1, 43968, '\P{_Is_cherokee_Sup}', "");
+    Expect(0, 43968, '\P{^_Is_cherokee_Sup}', "");
+    Error('\p{In_Cherokee_Sup:=}');
+    Error('\P{In_Cherokee_Sup:=}');
     Expect(1, 43967, '\p{incherokeesup}', "");
     Expect(0, 43967, '\p{^incherokeesup}', "");
     Expect(0, 43967, '\P{incherokeesup}', "");
@@ -91097,16 +91803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43968, '\p{^incherokeesup}', "");
     Expect(1, 43968, '\P{incherokeesup}', "");
     Expect(0, 43968, '\P{^incherokeesup}', "");
-    Expect(1, 43967, '\p{- In_CHEROKEE_sup}', "");
-    Expect(0, 43967, '\p{^- In_CHEROKEE_sup}', "");
-    Expect(0, 43967, '\P{- In_CHEROKEE_sup}', "");
-    Expect(1, 43967, '\P{^- In_CHEROKEE_sup}', "");
-    Expect(0, 43968, '\p{- In_CHEROKEE_sup}', "");
-    Expect(1, 43968, '\p{^- In_CHEROKEE_sup}', "");
-    Expect(1, 43968, '\P{- In_CHEROKEE_sup}', "");
-    Expect(0, 43968, '\P{^- In_CHEROKEE_sup}', "");
-    Error('\p{	/a/CHESS_SYMBOLS}');
-    Error('\P{	/a/CHESS_SYMBOLS}');
+    Expect(1, 43967, '\p{	_in_CHEROKEE_Sup}', "");
+    Expect(0, 43967, '\p{^	_in_CHEROKEE_Sup}', "");
+    Expect(0, 43967, '\P{	_in_CHEROKEE_Sup}', "");
+    Expect(1, 43967, '\P{^	_in_CHEROKEE_Sup}', "");
+    Expect(0, 43968, '\p{	_in_CHEROKEE_Sup}', "");
+    Expect(1, 43968, '\p{^	_in_CHEROKEE_Sup}', "");
+    Expect(1, 43968, '\P{	_in_CHEROKEE_Sup}', "");
+    Expect(0, 43968, '\P{^	_in_CHEROKEE_Sup}', "");
+    Error('\p{:=  Chess_Symbols}');
+    Error('\P{:=  Chess_Symbols}');
     Expect(1, 129647, '\p{chesssymbols}', "");
     Expect(0, 129647, '\p{^chesssymbols}', "");
     Expect(0, 129647, '\P{chesssymbols}', "");
@@ -91115,16 +91821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129648, '\p{^chesssymbols}', "");
     Expect(1, 129648, '\P{chesssymbols}', "");
     Expect(0, 129648, '\P{^chesssymbols}', "");
-    Expect(1, 129647, '\p{	-Chess_Symbols}', "");
-    Expect(0, 129647, '\p{^	-Chess_Symbols}', "");
-    Expect(0, 129647, '\P{	-Chess_Symbols}', "");
-    Expect(1, 129647, '\P{^	-Chess_Symbols}', "");
-    Expect(0, 129648, '\p{	-Chess_Symbols}', "");
-    Expect(1, 129648, '\p{^	-Chess_Symbols}', "");
-    Expect(1, 129648, '\P{	-Chess_Symbols}', "");
-    Expect(0, 129648, '\P{^	-Chess_Symbols}', "");
-    Error('\p{-_Is_Chess_symbols/a/}');
-    Error('\P{-_Is_Chess_symbols/a/}');
+    Expect(1, 129647, '\p{	_CHESS_Symbols}', "");
+    Expect(0, 129647, '\p{^	_CHESS_Symbols}', "");
+    Expect(0, 129647, '\P{	_CHESS_Symbols}', "");
+    Expect(1, 129647, '\P{^	_CHESS_Symbols}', "");
+    Expect(0, 129648, '\p{	_CHESS_Symbols}', "");
+    Expect(1, 129648, '\p{^	_CHESS_Symbols}', "");
+    Expect(1, 129648, '\P{	_CHESS_Symbols}', "");
+    Expect(0, 129648, '\P{^	_CHESS_Symbols}', "");
+    Error('\p{:=_IS_Chess_symbols}');
+    Error('\P{:=_IS_Chess_symbols}');
     Expect(1, 129647, '\p{ischesssymbols}', "");
     Expect(0, 129647, '\p{^ischesssymbols}', "");
     Expect(0, 129647, '\P{ischesssymbols}', "");
@@ -91133,16 +91839,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129648, '\p{^ischesssymbols}', "");
     Expect(1, 129648, '\P{ischesssymbols}', "");
     Expect(0, 129648, '\P{^ischesssymbols}', "");
-    Expect(1, 129647, '\p{	Is_Chess_SYMBOLS}', "");
-    Expect(0, 129647, '\p{^	Is_Chess_SYMBOLS}', "");
-    Expect(0, 129647, '\P{	Is_Chess_SYMBOLS}', "");
-    Expect(1, 129647, '\P{^	Is_Chess_SYMBOLS}', "");
-    Expect(0, 129648, '\p{	Is_Chess_SYMBOLS}', "");
-    Expect(1, 129648, '\p{^	Is_Chess_SYMBOLS}', "");
-    Expect(1, 129648, '\P{	Is_Chess_SYMBOLS}', "");
-    Expect(0, 129648, '\P{^	Is_Chess_SYMBOLS}', "");
-    Error('\p{	:=In_Chess_symbols}');
-    Error('\P{	:=In_Chess_symbols}');
+    Expect(1, 129647, '\p{_Is_Chess_Symbols}', "");
+    Expect(0, 129647, '\p{^_Is_Chess_Symbols}', "");
+    Expect(0, 129647, '\P{_Is_Chess_Symbols}', "");
+    Expect(1, 129647, '\P{^_Is_Chess_Symbols}', "");
+    Expect(0, 129648, '\p{_Is_Chess_Symbols}', "");
+    Expect(1, 129648, '\p{^_Is_Chess_Symbols}', "");
+    Expect(1, 129648, '\P{_Is_Chess_Symbols}', "");
+    Expect(0, 129648, '\P{^_Is_Chess_Symbols}', "");
+    Error('\p{	_In_Chess_Symbols:=}');
+    Error('\P{	_In_Chess_Symbols:=}');
     Expect(1, 129647, '\p{inchesssymbols}', "");
     Expect(0, 129647, '\p{^inchesssymbols}', "");
     Expect(0, 129647, '\P{inchesssymbols}', "");
@@ -91151,16 +91857,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129648, '\p{^inchesssymbols}', "");
     Expect(1, 129648, '\P{inchesssymbols}', "");
     Expect(0, 129648, '\P{^inchesssymbols}', "");
-    Expect(1, 129647, '\p{_-In_Chess_SYMBOLS}', "");
-    Expect(0, 129647, '\p{^_-In_Chess_SYMBOLS}', "");
-    Expect(0, 129647, '\P{_-In_Chess_SYMBOLS}', "");
-    Expect(1, 129647, '\P{^_-In_Chess_SYMBOLS}', "");
-    Expect(0, 129648, '\p{_-In_Chess_SYMBOLS}', "");
-    Expect(1, 129648, '\p{^_-In_Chess_SYMBOLS}', "");
-    Expect(1, 129648, '\P{_-In_Chess_SYMBOLS}', "");
-    Expect(0, 129648, '\P{^_-In_Chess_SYMBOLS}', "");
-    Error('\p{-/a/chorasmian}');
-    Error('\P{-/a/chorasmian}');
+    Expect(1, 129647, '\p{	-In_Chess_Symbols}', "");
+    Expect(0, 129647, '\p{^	-In_Chess_Symbols}', "");
+    Expect(0, 129647, '\P{	-In_Chess_Symbols}', "");
+    Expect(1, 129647, '\P{^	-In_Chess_Symbols}', "");
+    Expect(0, 129648, '\p{	-In_Chess_Symbols}', "");
+    Expect(1, 129648, '\p{^	-In_Chess_Symbols}', "");
+    Expect(1, 129648, '\P{	-In_Chess_Symbols}', "");
+    Expect(0, 129648, '\P{^	-In_Chess_Symbols}', "");
+    Error('\p{-_chorasmian/a/}');
+    Error('\P{-_chorasmian/a/}');
     Expect(1, 69579, '\p{chorasmian}', "");
     Expect(0, 69579, '\p{^chorasmian}', "");
     Expect(0, 69579, '\P{chorasmian}', "");
@@ -91169,16 +91875,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69580, '\p{^chorasmian}', "");
     Expect(1, 69580, '\P{chorasmian}', "");
     Expect(0, 69580, '\P{^chorasmian}', "");
-    Expect(1, 69579, '\p{__CHORASMIAN}', "");
-    Expect(0, 69579, '\p{^__CHORASMIAN}', "");
-    Expect(0, 69579, '\P{__CHORASMIAN}', "");
-    Expect(1, 69579, '\P{^__CHORASMIAN}', "");
-    Expect(0, 69580, '\p{__CHORASMIAN}', "");
-    Expect(1, 69580, '\p{^__CHORASMIAN}', "");
-    Expect(1, 69580, '\P{__CHORASMIAN}', "");
-    Expect(0, 69580, '\P{^__CHORASMIAN}', "");
-    Error('\p{ /a/Is_Chorasmian}');
-    Error('\P{ /a/Is_Chorasmian}');
+    Expect(1, 69579, '\p{	 CHORASMIAN}', "");
+    Expect(0, 69579, '\p{^	 CHORASMIAN}', "");
+    Expect(0, 69579, '\P{	 CHORASMIAN}', "");
+    Expect(1, 69579, '\P{^	 CHORASMIAN}', "");
+    Expect(0, 69580, '\p{	 CHORASMIAN}', "");
+    Expect(1, 69580, '\p{^	 CHORASMIAN}', "");
+    Expect(1, 69580, '\P{	 CHORASMIAN}', "");
+    Expect(0, 69580, '\P{^	 CHORASMIAN}', "");
+    Error('\p{	Is_Chorasmian:=}');
+    Error('\P{	Is_Chorasmian:=}');
     Expect(1, 69579, '\p{ischorasmian}', "");
     Expect(0, 69579, '\p{^ischorasmian}', "");
     Expect(0, 69579, '\P{ischorasmian}', "");
@@ -91187,16 +91893,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69580, '\p{^ischorasmian}', "");
     Expect(1, 69580, '\P{ischorasmian}', "");
     Expect(0, 69580, '\P{^ischorasmian}', "");
-    Expect(1, 69579, '\p{ _Is_CHORASMIAN}', "");
-    Expect(0, 69579, '\p{^ _Is_CHORASMIAN}', "");
-    Expect(0, 69579, '\P{ _Is_CHORASMIAN}', "");
-    Expect(1, 69579, '\P{^ _Is_CHORASMIAN}', "");
-    Expect(0, 69580, '\p{ _Is_CHORASMIAN}', "");
-    Expect(1, 69580, '\p{^ _Is_CHORASMIAN}', "");
-    Expect(1, 69580, '\P{ _Is_CHORASMIAN}', "");
-    Expect(0, 69580, '\P{^ _Is_CHORASMIAN}', "");
-    Error('\p{:=	CHRS}');
-    Error('\P{:=	CHRS}');
+    Expect(1, 69579, '\p{  IS_Chorasmian}', "");
+    Expect(0, 69579, '\p{^  IS_Chorasmian}', "");
+    Expect(0, 69579, '\P{  IS_Chorasmian}', "");
+    Expect(1, 69579, '\P{^  IS_Chorasmian}', "");
+    Expect(0, 69580, '\p{  IS_Chorasmian}', "");
+    Expect(1, 69580, '\p{^  IS_Chorasmian}', "");
+    Expect(1, 69580, '\P{  IS_Chorasmian}', "");
+    Expect(0, 69580, '\P{^  IS_Chorasmian}', "");
+    Error('\p{:=Chrs}');
+    Error('\P{:=Chrs}');
     Expect(1, 69579, '\p{chrs}', "");
     Expect(0, 69579, '\p{^chrs}', "");
     Expect(0, 69579, '\P{chrs}', "");
@@ -91205,16 +91911,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69580, '\p{^chrs}', "");
     Expect(1, 69580, '\P{chrs}', "");
     Expect(0, 69580, '\P{^chrs}', "");
-    Expect(1, 69579, '\p{_CHRS}', "");
-    Expect(0, 69579, '\p{^_CHRS}', "");
-    Expect(0, 69579, '\P{_CHRS}', "");
-    Expect(1, 69579, '\P{^_CHRS}', "");
-    Expect(0, 69580, '\p{_CHRS}', "");
-    Expect(1, 69580, '\p{^_CHRS}', "");
-    Expect(1, 69580, '\P{_CHRS}', "");
-    Expect(0, 69580, '\P{^_CHRS}', "");
-    Error('\p{ -Is_Chrs:=}');
-    Error('\P{ -Is_Chrs:=}');
+    Expect(1, 69579, '\p{	CHRS}', "");
+    Expect(0, 69579, '\p{^	CHRS}', "");
+    Expect(0, 69579, '\P{	CHRS}', "");
+    Expect(1, 69579, '\P{^	CHRS}', "");
+    Expect(0, 69580, '\p{	CHRS}', "");
+    Expect(1, 69580, '\p{^	CHRS}', "");
+    Expect(1, 69580, '\P{	CHRS}', "");
+    Expect(0, 69580, '\P{^	CHRS}', "");
+    Error('\p{/a/--is_CHRS}');
+    Error('\P{/a/--is_CHRS}');
     Expect(1, 69579, '\p{ischrs}', "");
     Expect(0, 69579, '\p{^ischrs}', "");
     Expect(0, 69579, '\P{ischrs}', "");
@@ -91223,16 +91929,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69580, '\p{^ischrs}', "");
     Expect(1, 69580, '\P{ischrs}', "");
     Expect(0, 69580, '\P{^ischrs}', "");
-    Expect(1, 69579, '\p{	 IS_Chrs}', "");
-    Expect(0, 69579, '\p{^	 IS_Chrs}', "");
-    Expect(0, 69579, '\P{	 IS_Chrs}', "");
-    Expect(1, 69579, '\P{^	 IS_Chrs}', "");
-    Expect(0, 69580, '\p{	 IS_Chrs}', "");
-    Expect(1, 69580, '\p{^	 IS_Chrs}', "");
-    Expect(1, 69580, '\P{	 IS_Chrs}', "");
-    Expect(0, 69580, '\P{^	 IS_Chrs}', "");
-    Error('\p{	/a/CJK_Compatibility}');
-    Error('\P{	/a/CJK_Compatibility}');
+    Expect(1, 69579, '\p{  Is_CHRS}', "");
+    Expect(0, 69579, '\p{^  Is_CHRS}', "");
+    Expect(0, 69579, '\P{  Is_CHRS}', "");
+    Expect(1, 69579, '\P{^  Is_CHRS}', "");
+    Expect(0, 69580, '\p{  Is_CHRS}', "");
+    Expect(1, 69580, '\p{^  Is_CHRS}', "");
+    Expect(1, 69580, '\P{  Is_CHRS}', "");
+    Expect(0, 69580, '\P{^  Is_CHRS}', "");
+    Error('\p{:=-	CJK_compatibility}');
+    Error('\P{:=-	CJK_compatibility}');
     Expect(1, 13311, '\p{cjkcompatibility}', "");
     Expect(0, 13311, '\p{^cjkcompatibility}', "");
     Expect(0, 13311, '\P{cjkcompatibility}', "");
@@ -91241,16 +91947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13312, '\p{^cjkcompatibility}', "");
     Expect(1, 13312, '\P{cjkcompatibility}', "");
     Expect(0, 13312, '\P{^cjkcompatibility}', "");
-    Expect(1, 13311, '\p{-CJK_Compatibility}', "");
-    Expect(0, 13311, '\p{^-CJK_Compatibility}', "");
-    Expect(0, 13311, '\P{-CJK_Compatibility}', "");
-    Expect(1, 13311, '\P{^-CJK_Compatibility}', "");
-    Expect(0, 13312, '\p{-CJK_Compatibility}', "");
-    Expect(1, 13312, '\p{^-CJK_Compatibility}', "");
-    Expect(1, 13312, '\P{-CJK_Compatibility}', "");
-    Expect(0, 13312, '\P{^-CJK_Compatibility}', "");
-    Error('\p{-	is_cjk_Compatibility:=}');
-    Error('\P{-	is_cjk_Compatibility:=}');
+    Expect(1, 13311, '\p{-_CJK_compatibility}', "");
+    Expect(0, 13311, '\p{^-_CJK_compatibility}', "");
+    Expect(0, 13311, '\P{-_CJK_compatibility}', "");
+    Expect(1, 13311, '\P{^-_CJK_compatibility}', "");
+    Expect(0, 13312, '\p{-_CJK_compatibility}', "");
+    Expect(1, 13312, '\p{^-_CJK_compatibility}', "");
+    Expect(1, 13312, '\P{-_CJK_compatibility}', "");
+    Expect(0, 13312, '\P{^-_CJK_compatibility}', "");
+    Error('\p{:=	_Is_cjk_Compatibility}');
+    Error('\P{:=	_Is_cjk_Compatibility}');
     Expect(1, 13311, '\p{iscjkcompatibility}', "");
     Expect(0, 13311, '\p{^iscjkcompatibility}', "");
     Expect(0, 13311, '\P{iscjkcompatibility}', "");
@@ -91259,16 +91965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13312, '\p{^iscjkcompatibility}', "");
     Expect(1, 13312, '\P{iscjkcompatibility}', "");
     Expect(0, 13312, '\P{^iscjkcompatibility}', "");
-    Expect(1, 13311, '\p{	Is_CJK_COMPATIBILITY}', "");
-    Expect(0, 13311, '\p{^	Is_CJK_COMPATIBILITY}', "");
-    Expect(0, 13311, '\P{	Is_CJK_COMPATIBILITY}', "");
-    Expect(1, 13311, '\P{^	Is_CJK_COMPATIBILITY}', "");
-    Expect(0, 13312, '\p{	Is_CJK_COMPATIBILITY}', "");
-    Expect(1, 13312, '\p{^	Is_CJK_COMPATIBILITY}', "");
-    Expect(1, 13312, '\P{	Is_CJK_COMPATIBILITY}', "");
-    Expect(0, 13312, '\P{^	Is_CJK_COMPATIBILITY}', "");
-    Error('\p{-/a/IN_CJK_Compatibility}');
-    Error('\P{-/a/IN_CJK_Compatibility}');
+    Expect(1, 13311, '\p{ is_CJK_Compatibility}', "");
+    Expect(0, 13311, '\p{^ is_CJK_Compatibility}', "");
+    Expect(0, 13311, '\P{ is_CJK_Compatibility}', "");
+    Expect(1, 13311, '\P{^ is_CJK_Compatibility}', "");
+    Expect(0, 13312, '\p{ is_CJK_Compatibility}', "");
+    Expect(1, 13312, '\p{^ is_CJK_Compatibility}', "");
+    Expect(1, 13312, '\P{ is_CJK_Compatibility}', "");
+    Expect(0, 13312, '\P{^ is_CJK_Compatibility}', "");
+    Error('\p{- In_CJK_compatibility:=}');
+    Error('\P{- In_CJK_compatibility:=}');
     Expect(1, 13311, '\p{incjkcompatibility}', "");
     Expect(0, 13311, '\p{^incjkcompatibility}', "");
     Expect(0, 13311, '\P{incjkcompatibility}', "");
@@ -91277,16 +91983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13312, '\p{^incjkcompatibility}', "");
     Expect(1, 13312, '\P{incjkcompatibility}', "");
     Expect(0, 13312, '\P{^incjkcompatibility}', "");
-    Expect(1, 13311, '\p{-In_cjk_COMPATIBILITY}', "");
-    Expect(0, 13311, '\p{^-In_cjk_COMPATIBILITY}', "");
-    Expect(0, 13311, '\P{-In_cjk_COMPATIBILITY}', "");
-    Expect(1, 13311, '\P{^-In_cjk_COMPATIBILITY}', "");
-    Expect(0, 13312, '\p{-In_cjk_COMPATIBILITY}', "");
-    Expect(1, 13312, '\p{^-In_cjk_COMPATIBILITY}', "");
-    Expect(1, 13312, '\P{-In_cjk_COMPATIBILITY}', "");
-    Expect(0, 13312, '\P{^-In_cjk_COMPATIBILITY}', "");
-    Error('\p{/a/_	CJK_Compat}');
-    Error('\P{/a/_	CJK_Compat}');
+    Expect(1, 13311, '\p{ _In_cjk_Compatibility}', "");
+    Expect(0, 13311, '\p{^ _In_cjk_Compatibility}', "");
+    Expect(0, 13311, '\P{ _In_cjk_Compatibility}', "");
+    Expect(1, 13311, '\P{^ _In_cjk_Compatibility}', "");
+    Expect(0, 13312, '\p{ _In_cjk_Compatibility}', "");
+    Expect(1, 13312, '\p{^ _In_cjk_Compatibility}', "");
+    Expect(1, 13312, '\P{ _In_cjk_Compatibility}', "");
+    Expect(0, 13312, '\P{^ _In_cjk_Compatibility}', "");
+    Error('\p{ -CJK_Compat/a/}');
+    Error('\P{ -CJK_Compat/a/}');
     Expect(1, 13311, '\p{cjkcompat}', "");
     Expect(0, 13311, '\p{^cjkcompat}', "");
     Expect(0, 13311, '\P{cjkcompat}', "");
@@ -91295,16 +92001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13312, '\p{^cjkcompat}', "");
     Expect(1, 13312, '\P{cjkcompat}', "");
     Expect(0, 13312, '\P{^cjkcompat}', "");
-    Expect(1, 13311, '\p{_CJK_compat}', "");
-    Expect(0, 13311, '\p{^_CJK_compat}', "");
-    Expect(0, 13311, '\P{_CJK_compat}', "");
-    Expect(1, 13311, '\P{^_CJK_compat}', "");
-    Expect(0, 13312, '\p{_CJK_compat}', "");
-    Expect(1, 13312, '\p{^_CJK_compat}', "");
-    Expect(1, 13312, '\P{_CJK_compat}', "");
-    Expect(0, 13312, '\P{^_CJK_compat}', "");
-    Error('\p{/a/-	is_CJK_Compat}');
-    Error('\P{/a/-	is_CJK_Compat}');
+    Expect(1, 13311, '\p{_CJK_Compat}', "");
+    Expect(0, 13311, '\p{^_CJK_Compat}', "");
+    Expect(0, 13311, '\P{_CJK_Compat}', "");
+    Expect(1, 13311, '\P{^_CJK_Compat}', "");
+    Expect(0, 13312, '\p{_CJK_Compat}', "");
+    Expect(1, 13312, '\p{^_CJK_Compat}', "");
+    Expect(1, 13312, '\P{_CJK_Compat}', "");
+    Expect(0, 13312, '\P{^_CJK_Compat}', "");
+    Error('\p{:=_Is_CJK_Compat}');
+    Error('\P{:=_Is_CJK_Compat}');
     Expect(1, 13311, '\p{iscjkcompat}', "");
     Expect(0, 13311, '\p{^iscjkcompat}', "");
     Expect(0, 13311, '\P{iscjkcompat}', "");
@@ -91313,16 +92019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13312, '\p{^iscjkcompat}', "");
     Expect(1, 13312, '\P{iscjkcompat}', "");
     Expect(0, 13312, '\P{^iscjkcompat}', "");
-    Expect(1, 13311, '\p{	IS_CJK_COMPAT}', "");
-    Expect(0, 13311, '\p{^	IS_CJK_COMPAT}', "");
-    Expect(0, 13311, '\P{	IS_CJK_COMPAT}', "");
-    Expect(1, 13311, '\P{^	IS_CJK_COMPAT}', "");
-    Expect(0, 13312, '\p{	IS_CJK_COMPAT}', "");
-    Expect(1, 13312, '\p{^	IS_CJK_COMPAT}', "");
-    Expect(1, 13312, '\P{	IS_CJK_COMPAT}', "");
-    Expect(0, 13312, '\P{^	IS_CJK_COMPAT}', "");
-    Error('\p{/a/ IN_CJK_COMPAT}');
-    Error('\P{/a/ IN_CJK_COMPAT}');
+    Expect(1, 13311, '\p{__IS_CJK_Compat}', "");
+    Expect(0, 13311, '\p{^__IS_CJK_Compat}', "");
+    Expect(0, 13311, '\P{__IS_CJK_Compat}', "");
+    Expect(1, 13311, '\P{^__IS_CJK_Compat}', "");
+    Expect(0, 13312, '\p{__IS_CJK_Compat}', "");
+    Expect(1, 13312, '\p{^__IS_CJK_Compat}', "");
+    Expect(1, 13312, '\P{__IS_CJK_Compat}', "");
+    Expect(0, 13312, '\P{^__IS_CJK_Compat}', "");
+    Error('\p{/a/	in_CJK_Compat}');
+    Error('\P{/a/	in_CJK_Compat}');
     Expect(1, 13311, '\p{incjkcompat}', "");
     Expect(0, 13311, '\p{^incjkcompat}', "");
     Expect(0, 13311, '\P{incjkcompat}', "");
@@ -91331,16 +92037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13312, '\p{^incjkcompat}', "");
     Expect(1, 13312, '\P{incjkcompat}', "");
     Expect(0, 13312, '\P{^incjkcompat}', "");
-    Expect(1, 13311, '\p{	 IN_CJK_Compat}', "");
-    Expect(0, 13311, '\p{^	 IN_CJK_Compat}', "");
-    Expect(0, 13311, '\P{	 IN_CJK_Compat}', "");
-    Expect(1, 13311, '\P{^	 IN_CJK_Compat}', "");
-    Expect(0, 13312, '\p{	 IN_CJK_Compat}', "");
-    Expect(1, 13312, '\p{^	 IN_CJK_Compat}', "");
-    Expect(1, 13312, '\P{	 IN_CJK_Compat}', "");
-    Expect(0, 13312, '\P{^	 IN_CJK_Compat}', "");
-    Error('\p{/a/	cjk_compatibility_Forms}');
-    Error('\P{/a/	cjk_compatibility_Forms}');
+    Expect(1, 13311, '\p{-_In_CJK_COMPAT}', "");
+    Expect(0, 13311, '\p{^-_In_CJK_COMPAT}', "");
+    Expect(0, 13311, '\P{-_In_CJK_COMPAT}', "");
+    Expect(1, 13311, '\P{^-_In_CJK_COMPAT}', "");
+    Expect(0, 13312, '\p{-_In_CJK_COMPAT}', "");
+    Expect(1, 13312, '\p{^-_In_CJK_COMPAT}', "");
+    Expect(1, 13312, '\P{-_In_CJK_COMPAT}', "");
+    Expect(0, 13312, '\P{^-_In_CJK_COMPAT}', "");
+    Error('\p{-cjk_COMPATIBILITY_FORMS/a/}');
+    Error('\P{-cjk_COMPATIBILITY_FORMS/a/}');
     Expect(1, 65103, '\p{cjkcompatibilityforms}', "");
     Expect(0, 65103, '\p{^cjkcompatibilityforms}', "");
     Expect(0, 65103, '\P{cjkcompatibilityforms}', "");
@@ -91349,16 +92055,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65104, '\p{^cjkcompatibilityforms}', "");
     Expect(1, 65104, '\P{cjkcompatibilityforms}', "");
     Expect(0, 65104, '\P{^cjkcompatibilityforms}', "");
-    Expect(1, 65103, '\p{		CJK_COMPATIBILITY_Forms}', "");
-    Expect(0, 65103, '\p{^		CJK_COMPATIBILITY_Forms}', "");
-    Expect(0, 65103, '\P{		CJK_COMPATIBILITY_Forms}', "");
-    Expect(1, 65103, '\P{^		CJK_COMPATIBILITY_Forms}', "");
-    Expect(0, 65104, '\p{		CJK_COMPATIBILITY_Forms}', "");
-    Expect(1, 65104, '\p{^		CJK_COMPATIBILITY_Forms}', "");
-    Expect(1, 65104, '\P{		CJK_COMPATIBILITY_Forms}', "");
-    Expect(0, 65104, '\P{^		CJK_COMPATIBILITY_Forms}', "");
-    Error('\p{:= -is_CJK_Compatibility_Forms}');
-    Error('\P{:= -is_CJK_Compatibility_Forms}');
+    Expect(1, 65103, '\p{_-CJK_Compatibility_forms}', "");
+    Expect(0, 65103, '\p{^_-CJK_Compatibility_forms}', "");
+    Expect(0, 65103, '\P{_-CJK_Compatibility_forms}', "");
+    Expect(1, 65103, '\P{^_-CJK_Compatibility_forms}', "");
+    Expect(0, 65104, '\p{_-CJK_Compatibility_forms}', "");
+    Expect(1, 65104, '\p{^_-CJK_Compatibility_forms}', "");
+    Expect(1, 65104, '\P{_-CJK_Compatibility_forms}', "");
+    Expect(0, 65104, '\P{^_-CJK_Compatibility_forms}', "");
+    Error('\p{	_is_CJK_Compatibility_FORMS/a/}');
+    Error('\P{	_is_CJK_Compatibility_FORMS/a/}');
     Expect(1, 65103, '\p{iscjkcompatibilityforms}', "");
     Expect(0, 65103, '\p{^iscjkcompatibilityforms}', "");
     Expect(0, 65103, '\P{iscjkcompatibilityforms}', "");
@@ -91367,16 +92073,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65104, '\p{^iscjkcompatibilityforms}', "");
     Expect(1, 65104, '\P{iscjkcompatibilityforms}', "");
     Expect(0, 65104, '\P{^iscjkcompatibilityforms}', "");
-    Expect(1, 65103, '\p{ is_CJK_compatibility_FORMS}', "");
-    Expect(0, 65103, '\p{^ is_CJK_compatibility_FORMS}', "");
-    Expect(0, 65103, '\P{ is_CJK_compatibility_FORMS}', "");
-    Expect(1, 65103, '\P{^ is_CJK_compatibility_FORMS}', "");
-    Expect(0, 65104, '\p{ is_CJK_compatibility_FORMS}', "");
-    Expect(1, 65104, '\p{^ is_CJK_compatibility_FORMS}', "");
-    Expect(1, 65104, '\P{ is_CJK_compatibility_FORMS}', "");
-    Expect(0, 65104, '\P{^ is_CJK_compatibility_FORMS}', "");
-    Error('\p{/a/-	In_cjk_Compatibility_Forms}');
-    Error('\P{/a/-	In_cjk_Compatibility_Forms}');
+    Expect(1, 65103, '\p{-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(0, 65103, '\p{^-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(0, 65103, '\P{-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(1, 65103, '\P{^-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(0, 65104, '\p{-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(1, 65104, '\p{^-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(1, 65104, '\P{-_Is_CJK_COMPATIBILITY_forms}', "");
+    Expect(0, 65104, '\P{^-_Is_CJK_COMPATIBILITY_forms}', "");
+    Error('\p{:=_	In_cjk_Compatibility_Forms}');
+    Error('\P{:=_	In_cjk_Compatibility_Forms}');
     Expect(1, 65103, '\p{incjkcompatibilityforms}', "");
     Expect(0, 65103, '\p{^incjkcompatibilityforms}', "");
     Expect(0, 65103, '\P{incjkcompatibilityforms}', "");
@@ -91385,16 +92091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65104, '\p{^incjkcompatibilityforms}', "");
     Expect(1, 65104, '\P{incjkcompatibilityforms}', "");
     Expect(0, 65104, '\P{^incjkcompatibilityforms}', "");
-    Expect(1, 65103, '\p{ In_CJK_compatibility_Forms}', "");
-    Expect(0, 65103, '\p{^ In_CJK_compatibility_Forms}', "");
-    Expect(0, 65103, '\P{ In_CJK_compatibility_Forms}', "");
-    Expect(1, 65103, '\P{^ In_CJK_compatibility_Forms}', "");
-    Expect(0, 65104, '\p{ In_CJK_compatibility_Forms}', "");
-    Expect(1, 65104, '\p{^ In_CJK_compatibility_Forms}', "");
-    Expect(1, 65104, '\P{ In_CJK_compatibility_Forms}', "");
-    Expect(0, 65104, '\P{^ In_CJK_compatibility_Forms}', "");
-    Error('\p{_:=CJK_COMPAT_Forms}');
-    Error('\P{_:=CJK_COMPAT_Forms}');
+    Expect(1, 65103, '\p{ 	In_CJK_compatibility_Forms}', "");
+    Expect(0, 65103, '\p{^ 	In_CJK_compatibility_Forms}', "");
+    Expect(0, 65103, '\P{ 	In_CJK_compatibility_Forms}', "");
+    Expect(1, 65103, '\P{^ 	In_CJK_compatibility_Forms}', "");
+    Expect(0, 65104, '\p{ 	In_CJK_compatibility_Forms}', "");
+    Expect(1, 65104, '\p{^ 	In_CJK_compatibility_Forms}', "");
+    Expect(1, 65104, '\P{ 	In_CJK_compatibility_Forms}', "");
+    Expect(0, 65104, '\P{^ 	In_CJK_compatibility_Forms}', "");
+    Error('\p{	cjk_compat_FORMS/a/}');
+    Error('\P{	cjk_compat_FORMS/a/}');
     Expect(1, 65103, '\p{cjkcompatforms}', "");
     Expect(0, 65103, '\p{^cjkcompatforms}', "");
     Expect(0, 65103, '\P{cjkcompatforms}', "");
@@ -91403,16 +92109,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65104, '\p{^cjkcompatforms}', "");
     Expect(1, 65104, '\P{cjkcompatforms}', "");
     Expect(0, 65104, '\P{^cjkcompatforms}', "");
-    Expect(1, 65103, '\p{_-cjk_COMPAT_forms}', "");
-    Expect(0, 65103, '\p{^_-cjk_COMPAT_forms}', "");
-    Expect(0, 65103, '\P{_-cjk_COMPAT_forms}', "");
-    Expect(1, 65103, '\P{^_-cjk_COMPAT_forms}', "");
-    Expect(0, 65104, '\p{_-cjk_COMPAT_forms}', "");
-    Expect(1, 65104, '\p{^_-cjk_COMPAT_forms}', "");
-    Expect(1, 65104, '\P{_-cjk_COMPAT_forms}', "");
-    Expect(0, 65104, '\P{^_-cjk_COMPAT_forms}', "");
-    Error('\p{ -is_cjk_COMPAT_forms/a/}');
-    Error('\P{ -is_cjk_COMPAT_forms/a/}');
+    Expect(1, 65103, '\p{-CJK_Compat_Forms}', "");
+    Expect(0, 65103, '\p{^-CJK_Compat_Forms}', "");
+    Expect(0, 65103, '\P{-CJK_Compat_Forms}', "");
+    Expect(1, 65103, '\P{^-CJK_Compat_Forms}', "");
+    Expect(0, 65104, '\p{-CJK_Compat_Forms}', "");
+    Expect(1, 65104, '\p{^-CJK_Compat_Forms}', "");
+    Expect(1, 65104, '\P{-CJK_Compat_Forms}', "");
+    Expect(0, 65104, '\P{^-CJK_Compat_Forms}', "");
+    Error('\p{ /a/is_CJK_compat_Forms}');
+    Error('\P{ /a/is_CJK_compat_Forms}');
     Expect(1, 65103, '\p{iscjkcompatforms}', "");
     Expect(0, 65103, '\p{^iscjkcompatforms}', "");
     Expect(0, 65103, '\P{iscjkcompatforms}', "");
@@ -91421,16 +92127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65104, '\p{^iscjkcompatforms}', "");
     Expect(1, 65104, '\P{iscjkcompatforms}', "");
     Expect(0, 65104, '\P{^iscjkcompatforms}', "");
-    Expect(1, 65103, '\p{	 IS_CJK_COMPAT_Forms}', "");
-    Expect(0, 65103, '\p{^	 IS_CJK_COMPAT_Forms}', "");
-    Expect(0, 65103, '\P{	 IS_CJK_COMPAT_Forms}', "");
-    Expect(1, 65103, '\P{^	 IS_CJK_COMPAT_Forms}', "");
-    Expect(0, 65104, '\p{	 IS_CJK_COMPAT_Forms}', "");
-    Expect(1, 65104, '\p{^	 IS_CJK_COMPAT_Forms}', "");
-    Expect(1, 65104, '\P{	 IS_CJK_COMPAT_Forms}', "");
-    Expect(0, 65104, '\P{^	 IS_CJK_COMPAT_Forms}', "");
-    Error('\p{- in_cjk_Compat_FORMS/a/}');
-    Error('\P{- in_cjk_Compat_FORMS/a/}');
+    Expect(1, 65103, '\p{-Is_cjk_Compat_forms}', "");
+    Expect(0, 65103, '\p{^-Is_cjk_Compat_forms}', "");
+    Expect(0, 65103, '\P{-Is_cjk_Compat_forms}', "");
+    Expect(1, 65103, '\P{^-Is_cjk_Compat_forms}', "");
+    Expect(0, 65104, '\p{-Is_cjk_Compat_forms}', "");
+    Expect(1, 65104, '\p{^-Is_cjk_Compat_forms}', "");
+    Expect(1, 65104, '\P{-Is_cjk_Compat_forms}', "");
+    Expect(0, 65104, '\P{^-Is_cjk_Compat_forms}', "");
+    Error('\p{	/a/in_CJK_Compat_forms}');
+    Error('\P{	/a/in_CJK_Compat_forms}');
     Expect(1, 65103, '\p{incjkcompatforms}', "");
     Expect(0, 65103, '\p{^incjkcompatforms}', "");
     Expect(0, 65103, '\P{incjkcompatforms}', "");
@@ -91439,16 +92145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65104, '\p{^incjkcompatforms}', "");
     Expect(1, 65104, '\P{incjkcompatforms}', "");
     Expect(0, 65104, '\P{^incjkcompatforms}', "");
-    Expect(1, 65103, '\p{_IN_cjk_Compat_forms}', "");
-    Expect(0, 65103, '\p{^_IN_cjk_Compat_forms}', "");
-    Expect(0, 65103, '\P{_IN_cjk_Compat_forms}', "");
-    Expect(1, 65103, '\P{^_IN_cjk_Compat_forms}', "");
-    Expect(0, 65104, '\p{_IN_cjk_Compat_forms}', "");
-    Expect(1, 65104, '\p{^_IN_cjk_Compat_forms}', "");
-    Expect(1, 65104, '\P{_IN_cjk_Compat_forms}', "");
-    Expect(0, 65104, '\P{^_IN_cjk_Compat_forms}', "");
-    Error('\p{/a/  CJK_COMPATIBILITY_Ideographs}');
-    Error('\P{/a/  CJK_COMPATIBILITY_Ideographs}');
+    Expect(1, 65103, '\p{_	IN_cjk_compat_Forms}', "");
+    Expect(0, 65103, '\p{^_	IN_cjk_compat_Forms}', "");
+    Expect(0, 65103, '\P{_	IN_cjk_compat_Forms}', "");
+    Expect(1, 65103, '\P{^_	IN_cjk_compat_Forms}', "");
+    Expect(0, 65104, '\p{_	IN_cjk_compat_Forms}', "");
+    Expect(1, 65104, '\p{^_	IN_cjk_compat_Forms}', "");
+    Expect(1, 65104, '\P{_	IN_cjk_compat_Forms}', "");
+    Expect(0, 65104, '\P{^_	IN_cjk_compat_Forms}', "");
+    Error('\p{	-CJK_COMPATIBILITY_IDEOGRAPHS:=}');
+    Error('\P{	-CJK_COMPATIBILITY_IDEOGRAPHS:=}');
     Expect(1, 64255, '\p{cjkcompatibilityideographs}', "");
     Expect(0, 64255, '\p{^cjkcompatibilityideographs}', "");
     Expect(0, 64255, '\P{cjkcompatibilityideographs}', "");
@@ -91457,16 +92163,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64256, '\p{^cjkcompatibilityideographs}', "");
     Expect(1, 64256, '\P{cjkcompatibilityideographs}', "");
     Expect(0, 64256, '\P{^cjkcompatibilityideographs}', "");
-    Expect(1, 64255, '\p{ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\p{^ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\P{ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(1, 64255, '\P{^ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\p{ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\p{^ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\P{ -CJK_compatibility_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\P{^ -CJK_compatibility_IDEOGRAPHS}', "");
-    Error('\p{_Is_CJK_Compatibility_Ideographs:=}');
-    Error('\P{_Is_CJK_Compatibility_Ideographs:=}');
+    Expect(1, 64255, '\p{_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\p{^_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\P{_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64255, '\P{^_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\p{_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\p{^_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\P{_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\P{^_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Error('\p{/a/ -Is_CJK_compatibility_IDEOGRAPHS}');
+    Error('\P{/a/ -Is_CJK_compatibility_IDEOGRAPHS}');
     Expect(1, 64255, '\p{iscjkcompatibilityideographs}', "");
     Expect(0, 64255, '\p{^iscjkcompatibilityideographs}', "");
     Expect(0, 64255, '\P{iscjkcompatibilityideographs}', "");
@@ -91475,16 +92181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64256, '\p{^iscjkcompatibilityideographs}', "");
     Expect(1, 64256, '\P{iscjkcompatibilityideographs}', "");
     Expect(0, 64256, '\P{^iscjkcompatibilityideographs}', "");
-    Expect(1, 64255, '\p{_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\p{^_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\P{_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(1, 64255, '\P{^_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\p{_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\p{^_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\P{_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\P{^_-is_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
-    Error('\p{--IN_CJK_COMPATIBILITY_Ideographs/a/}');
-    Error('\P{--IN_CJK_COMPATIBILITY_Ideographs/a/}');
+    Expect(1, 64255, '\p{-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(0, 64255, '\p{^-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(0, 64255, '\P{-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(1, 64255, '\P{^-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(0, 64256, '\p{-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(1, 64256, '\p{^-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(1, 64256, '\P{-Is_CJK_Compatibility_Ideographs}', "");
+    Expect(0, 64256, '\P{^-Is_CJK_Compatibility_Ideographs}', "");
+    Error('\p{_:=in_cjk_Compatibility_IDEOGRAPHS}');
+    Error('\P{_:=in_cjk_Compatibility_IDEOGRAPHS}');
     Expect(1, 64255, '\p{incjkcompatibilityideographs}', "");
     Expect(0, 64255, '\p{^incjkcompatibilityideographs}', "");
     Expect(0, 64255, '\P{incjkcompatibilityideographs}', "");
@@ -91493,16 +92199,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64256, '\p{^incjkcompatibilityideographs}', "");
     Expect(1, 64256, '\P{incjkcompatibilityideographs}', "");
     Expect(0, 64256, '\P{^incjkcompatibilityideographs}', "");
-    Expect(1, 64255, '\p{-_In_CJK_compatibility_Ideographs}', "");
-    Expect(0, 64255, '\p{^-_In_CJK_compatibility_Ideographs}', "");
-    Expect(0, 64255, '\P{-_In_CJK_compatibility_Ideographs}', "");
-    Expect(1, 64255, '\P{^-_In_CJK_compatibility_Ideographs}', "");
-    Expect(0, 64256, '\p{-_In_CJK_compatibility_Ideographs}', "");
-    Expect(1, 64256, '\p{^-_In_CJK_compatibility_Ideographs}', "");
-    Expect(1, 64256, '\P{-_In_CJK_compatibility_Ideographs}', "");
-    Expect(0, 64256, '\P{^-_In_CJK_compatibility_Ideographs}', "");
-    Error('\p{_:=CJK_compat_IDEOGRAPHS}');
-    Error('\P{_:=CJK_compat_IDEOGRAPHS}');
+    Expect(1, 64255, '\p{	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\p{^	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64255, '\P{	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64255, '\P{^	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\p{	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\p{^	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(1, 64256, '\P{	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Expect(0, 64256, '\P{^	 In_CJK_COMPATIBILITY_IDEOGRAPHS}', "");
+    Error('\p{_/a/cjk_Compat_ideographs}');
+    Error('\P{_/a/cjk_Compat_ideographs}');
     Expect(1, 64255, '\p{cjkcompatideographs}', "");
     Expect(0, 64255, '\p{^cjkcompatideographs}', "");
     Expect(0, 64255, '\P{cjkcompatideographs}', "");
@@ -91511,16 +92217,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64256, '\p{^cjkcompatideographs}', "");
     Expect(1, 64256, '\P{cjkcompatideographs}', "");
     Expect(0, 64256, '\P{^cjkcompatideographs}', "");
-    Expect(1, 64255, '\p{-cjk_Compat_ideographs}', "");
-    Expect(0, 64255, '\p{^-cjk_Compat_ideographs}', "");
-    Expect(0, 64255, '\P{-cjk_Compat_ideographs}', "");
-    Expect(1, 64255, '\P{^-cjk_Compat_ideographs}', "");
-    Expect(0, 64256, '\p{-cjk_Compat_ideographs}', "");
-    Expect(1, 64256, '\p{^-cjk_Compat_ideographs}', "");
-    Expect(1, 64256, '\P{-cjk_Compat_ideographs}', "");
-    Expect(0, 64256, '\P{^-cjk_Compat_ideographs}', "");
-    Error('\p{/a/-	Is_CJK_Compat_IDEOGRAPHS}');
-    Error('\P{/a/-	Is_CJK_Compat_IDEOGRAPHS}');
+    Expect(1, 64255, '\p{ _CJK_Compat_ideographs}', "");
+    Expect(0, 64255, '\p{^ _CJK_Compat_ideographs}', "");
+    Expect(0, 64255, '\P{ _CJK_Compat_ideographs}', "");
+    Expect(1, 64255, '\P{^ _CJK_Compat_ideographs}', "");
+    Expect(0, 64256, '\p{ _CJK_Compat_ideographs}', "");
+    Expect(1, 64256, '\p{^ _CJK_Compat_ideographs}', "");
+    Expect(1, 64256, '\P{ _CJK_Compat_ideographs}', "");
+    Expect(0, 64256, '\P{^ _CJK_Compat_ideographs}', "");
+    Error('\p{-Is_CJK_Compat_Ideographs:=}');
+    Error('\P{-Is_CJK_Compat_Ideographs:=}');
     Expect(1, 64255, '\p{iscjkcompatideographs}', "");
     Expect(0, 64255, '\p{^iscjkcompatideographs}', "");
     Expect(0, 64255, '\P{iscjkcompatideographs}', "");
@@ -91529,16 +92235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64256, '\p{^iscjkcompatideographs}', "");
     Expect(1, 64256, '\P{iscjkcompatideographs}', "");
     Expect(0, 64256, '\P{^iscjkcompatideographs}', "");
-    Expect(1, 64255, '\p{_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\p{^_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(0, 64255, '\P{_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(1, 64255, '\P{^_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\p{_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\p{^_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(1, 64256, '\P{_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Expect(0, 64256, '\P{^_ IS_CJK_Compat_IDEOGRAPHS}', "");
-    Error('\p{/a/_-IN_CJK_COMPAT_Ideographs}');
-    Error('\P{/a/_-IN_CJK_COMPAT_Ideographs}');
+    Expect(1, 64255, '\p{	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64255, '\p{^	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64255, '\P{	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(1, 64255, '\P{^	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64256, '\p{	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(1, 64256, '\p{^	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(1, 64256, '\P{	Is_cjk_COMPAT_Ideographs}', "");
+    Expect(0, 64256, '\P{^	Is_cjk_COMPAT_Ideographs}', "");
+    Error('\p{	:=In_cjk_Compat_Ideographs}');
+    Error('\P{	:=In_cjk_Compat_Ideographs}');
     Expect(1, 64255, '\p{incjkcompatideographs}', "");
     Expect(0, 64255, '\p{^incjkcompatideographs}', "");
     Expect(0, 64255, '\P{incjkcompatideographs}', "");
@@ -91547,16 +92253,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64256, '\p{^incjkcompatideographs}', "");
     Expect(1, 64256, '\P{incjkcompatideographs}', "");
     Expect(0, 64256, '\P{^incjkcompatideographs}', "");
-    Expect(1, 64255, '\p{ _In_CJK_Compat_Ideographs}', "");
-    Expect(0, 64255, '\p{^ _In_CJK_Compat_Ideographs}', "");
-    Expect(0, 64255, '\P{ _In_CJK_Compat_Ideographs}', "");
-    Expect(1, 64255, '\P{^ _In_CJK_Compat_Ideographs}', "");
-    Expect(0, 64256, '\p{ _In_CJK_Compat_Ideographs}', "");
-    Expect(1, 64256, '\p{^ _In_CJK_Compat_Ideographs}', "");
-    Expect(1, 64256, '\P{ _In_CJK_Compat_Ideographs}', "");
-    Expect(0, 64256, '\P{^ _In_CJK_Compat_Ideographs}', "");
-    Error('\p{-/a/cjk_Compatibility_IDEOGRAPHS_Supplement}');
-    Error('\P{-/a/cjk_Compatibility_IDEOGRAPHS_Supplement}');
+    Expect(1, 64255, '\p{ 	In_CJK_Compat_Ideographs}', "");
+    Expect(0, 64255, '\p{^ 	In_CJK_Compat_Ideographs}', "");
+    Expect(0, 64255, '\P{ 	In_CJK_Compat_Ideographs}', "");
+    Expect(1, 64255, '\P{^ 	In_CJK_Compat_Ideographs}', "");
+    Expect(0, 64256, '\p{ 	In_CJK_Compat_Ideographs}', "");
+    Expect(1, 64256, '\p{^ 	In_CJK_Compat_Ideographs}', "");
+    Expect(1, 64256, '\P{ 	In_CJK_Compat_Ideographs}', "");
+    Expect(0, 64256, '\P{^ 	In_CJK_Compat_Ideographs}', "");
+    Error('\p{:= _cjk_Compatibility_IDEOGRAPHS_Supplement}');
+    Error('\P{:= _cjk_Compatibility_IDEOGRAPHS_Supplement}');
     Expect(1, 195103, '\p{cjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\p{^cjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\P{cjkcompatibilityideographssupplement}', "");
@@ -91565,16 +92271,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195104, '\p{^cjkcompatibilityideographssupplement}', "");
     Expect(1, 195104, '\P{cjkcompatibilityideographssupplement}', "");
     Expect(0, 195104, '\P{^cjkcompatibilityideographssupplement}', "");
-    Expect(1, 195103, '\p{-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(0, 195103, '\p{^-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(0, 195103, '\P{-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(1, 195103, '\P{^-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(0, 195104, '\p{-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(1, 195104, '\p{^-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(1, 195104, '\P{-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Expect(0, 195104, '\P{^-CJK_Compatibility_ideographs_SUPPLEMENT}', "");
-    Error('\p{-:=is_CJK_Compatibility_Ideographs_SUPPLEMENT}');
-    Error('\P{-:=is_CJK_Compatibility_Ideographs_SUPPLEMENT}');
+    Expect(1, 195103, '\p{__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(0, 195103, '\p{^__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(0, 195103, '\P{__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(1, 195103, '\P{^__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(0, 195104, '\p{__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(1, 195104, '\p{^__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(1, 195104, '\P{__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Expect(0, 195104, '\P{^__CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
+    Error('\p{_ Is_CJK_Compatibility_ideographs_supplement:=}');
+    Error('\P{_ Is_CJK_Compatibility_ideographs_supplement:=}');
     Expect(1, 195103, '\p{iscjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\p{^iscjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\P{iscjkcompatibilityideographssupplement}', "");
@@ -91583,16 +92289,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195104, '\p{^iscjkcompatibilityideographssupplement}', "");
     Expect(1, 195104, '\P{iscjkcompatibilityideographssupplement}', "");
     Expect(0, 195104, '\P{^iscjkcompatibilityideographssupplement}', "");
-    Expect(1, 195103, '\p{-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(0, 195103, '\p{^-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(0, 195103, '\P{-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(1, 195103, '\P{^-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(0, 195104, '\p{-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(1, 195104, '\p{^-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(1, 195104, '\P{-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Expect(0, 195104, '\P{^-_Is_CJK_Compatibility_IDEOGRAPHS_Supplement}', "");
-    Error('\p{	 In_CJK_Compatibility_IDEOGRAPHS_Supplement:=}');
-    Error('\P{	 In_CJK_Compatibility_IDEOGRAPHS_Supplement:=}');
+    Expect(1, 195103, '\p{-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195103, '\p{^-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195103, '\P{-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(1, 195103, '\P{^-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195104, '\p{-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(1, 195104, '\p{^-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(1, 195104, '\P{-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195104, '\P{^-is_CJK_compatibility_IDEOGRAPHS_supplement}', "");
+    Error('\p{ /a/In_CJK_compatibility_Ideographs_Supplement}');
+    Error('\P{ /a/In_CJK_compatibility_Ideographs_Supplement}');
     Expect(1, 195103, '\p{incjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\p{^incjkcompatibilityideographssupplement}', "");
     Expect(0, 195103, '\P{incjkcompatibilityideographssupplement}', "");
@@ -91601,16 +92307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195104, '\p{^incjkcompatibilityideographssupplement}', "");
     Expect(1, 195104, '\P{incjkcompatibilityideographssupplement}', "");
     Expect(0, 195104, '\P{^incjkcompatibilityideographssupplement}', "");
-    Expect(1, 195103, '\p{_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195103, '\p{^_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195103, '\P{_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(1, 195103, '\P{^_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195104, '\p{_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(1, 195104, '\p{^_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(1, 195104, '\P{_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Expect(0, 195104, '\P{^_in_CJK_compatibility_IDEOGRAPHS_supplement}', "");
-    Error('\p{_/a/CJK_Compat_Ideographs_Sup}');
-    Error('\P{_/a/CJK_Compat_Ideographs_Sup}');
+    Expect(1, 195103, '\p{-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195103, '\p{^-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195103, '\P{-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(1, 195103, '\P{^-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195104, '\p{-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(1, 195104, '\p{^-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(1, 195104, '\P{-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Expect(0, 195104, '\P{^-	IN_CJK_COMPATIBILITY_IDEOGRAPHS_supplement}', "");
+    Error('\p{	-cjk_Compat_ideographs_sup:=}');
+    Error('\P{	-cjk_Compat_ideographs_sup:=}');
     Expect(1, 195103, '\p{cjkcompatideographssup}', "");
     Expect(0, 195103, '\p{^cjkcompatideographssup}', "");
     Expect(0, 195103, '\P{cjkcompatideographssup}', "");
@@ -91619,16 +92325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195104, '\p{^cjkcompatideographssup}', "");
     Expect(1, 195104, '\P{cjkcompatideographssup}', "");
     Expect(0, 195104, '\P{^cjkcompatideographssup}', "");
-    Expect(1, 195103, '\p{- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(0, 195103, '\p{^- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(0, 195103, '\P{- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(1, 195103, '\P{^- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(0, 195104, '\p{- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(1, 195104, '\p{^- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(1, 195104, '\P{- cjk_COMPAT_Ideographs_sup}', "");
-    Expect(0, 195104, '\P{^- cjk_COMPAT_Ideographs_sup}', "");
-    Error('\p{-/a/IS_cjk_compat_Ideographs_SUP}');
-    Error('\P{-/a/IS_cjk_compat_Ideographs_SUP}');
+    Expect(1, 195103, '\p{_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195103, '\p{^_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195103, '\P{_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(1, 195103, '\P{^_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195104, '\p{_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(1, 195104, '\p{^_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(1, 195104, '\P{_-CJK_COMPAT_Ideographs_Sup}', "");
+    Expect(0, 195104, '\P{^_-CJK_COMPAT_Ideographs_Sup}', "");
+    Error('\p{-:=Is_CJK_COMPAT_Ideographs_Sup}');
+    Error('\P{-:=Is_CJK_COMPAT_Ideographs_Sup}');
     Expect(1, 195103, '\p{iscjkcompatideographssup}', "");
     Expect(0, 195103, '\p{^iscjkcompatideographssup}', "");
     Expect(0, 195103, '\P{iscjkcompatideographssup}', "");
@@ -91637,16 +92343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195104, '\p{^iscjkcompatideographssup}', "");
     Expect(1, 195104, '\P{iscjkcompatideographssup}', "");
     Expect(0, 195104, '\P{^iscjkcompatideographssup}', "");
-    Expect(1, 195103, '\p{ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195103, '\p{^ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195103, '\P{ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(1, 195103, '\P{^ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195104, '\p{ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(1, 195104, '\p{^ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(1, 195104, '\P{ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195104, '\P{^ 	is_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Error('\p{ :=In_CJK_Compat_ideographs_Sup}');
-    Error('\P{ :=In_CJK_Compat_ideographs_Sup}');
+    Expect(1, 195103, '\p{- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(0, 195103, '\p{^- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(0, 195103, '\P{- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(1, 195103, '\P{^- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(0, 195104, '\p{- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(1, 195104, '\p{^- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(1, 195104, '\P{- Is_CJK_Compat_Ideographs_sup}', "");
+    Expect(0, 195104, '\P{^- Is_CJK_Compat_Ideographs_sup}', "");
+    Error('\p{ :=In_cjk_Compat_ideographs_SUP}');
+    Error('\P{ :=In_cjk_Compat_ideographs_SUP}');
     Expect(1, 195103, '\p{incjkcompatideographssup}', "");
     Expect(0, 195103, '\p{^incjkcompatideographssup}', "");
     Expect(0, 195103, '\P{incjkcompatideographssup}', "");
@@ -91655,16 +92361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195104, '\p{^incjkcompatideographssup}', "");
     Expect(1, 195104, '\P{incjkcompatideographssup}', "");
     Expect(0, 195104, '\P{^incjkcompatideographssup}', "");
-    Expect(1, 195103, '\p{	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195103, '\p{^	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195103, '\P{	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(1, 195103, '\P{^	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195104, '\p{	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(1, 195104, '\p{^	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(1, 195104, '\P{	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Expect(0, 195104, '\P{^	-in_CJK_Compat_IDEOGRAPHS_Sup}', "");
-    Error('\p{:=cjk_radicals_SUPPLEMENT}');
-    Error('\P{:=cjk_radicals_SUPPLEMENT}');
+    Expect(1, 195103, '\p{__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(0, 195103, '\p{^__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(0, 195103, '\P{__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(1, 195103, '\P{^__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(0, 195104, '\p{__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(1, 195104, '\p{^__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(1, 195104, '\P{__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Expect(0, 195104, '\P{^__IN_CJK_COMPAT_IDEOGRAPHS_SUP}', "");
+    Error('\p{:=	 CJK_Radicals_SUPPLEMENT}');
+    Error('\P{:=	 CJK_Radicals_SUPPLEMENT}');
     Expect(1, 12031, '\p{cjkradicalssupplement}', "");
     Expect(0, 12031, '\p{^cjkradicalssupplement}', "");
     Expect(0, 12031, '\P{cjkradicalssupplement}', "");
@@ -91673,16 +92379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12032, '\p{^cjkradicalssupplement}', "");
     Expect(1, 12032, '\P{cjkradicalssupplement}', "");
     Expect(0, 12032, '\P{^cjkradicalssupplement}', "");
-    Expect(1, 12031, '\p{	_CJK_RADICALS_Supplement}', "");
-    Expect(0, 12031, '\p{^	_CJK_RADICALS_Supplement}', "");
-    Expect(0, 12031, '\P{	_CJK_RADICALS_Supplement}', "");
-    Expect(1, 12031, '\P{^	_CJK_RADICALS_Supplement}', "");
-    Expect(0, 12032, '\p{	_CJK_RADICALS_Supplement}', "");
-    Expect(1, 12032, '\p{^	_CJK_RADICALS_Supplement}', "");
-    Expect(1, 12032, '\P{	_CJK_RADICALS_Supplement}', "");
-    Expect(0, 12032, '\P{^	_CJK_RADICALS_Supplement}', "");
-    Error('\p{	:=is_CJK_Radicals_Supplement}');
-    Error('\P{	:=is_CJK_Radicals_Supplement}');
+    Expect(1, 12031, '\p{ 	CJK_Radicals_Supplement}', "");
+    Expect(0, 12031, '\p{^ 	CJK_Radicals_Supplement}', "");
+    Expect(0, 12031, '\P{ 	CJK_Radicals_Supplement}', "");
+    Expect(1, 12031, '\P{^ 	CJK_Radicals_Supplement}', "");
+    Expect(0, 12032, '\p{ 	CJK_Radicals_Supplement}', "");
+    Expect(1, 12032, '\p{^ 	CJK_Radicals_Supplement}', "");
+    Expect(1, 12032, '\P{ 	CJK_Radicals_Supplement}', "");
+    Expect(0, 12032, '\P{^ 	CJK_Radicals_Supplement}', "");
+    Error('\p{/a/Is_CJK_Radicals_Supplement}');
+    Error('\P{/a/Is_CJK_Radicals_Supplement}');
     Expect(1, 12031, '\p{iscjkradicalssupplement}', "");
     Expect(0, 12031, '\p{^iscjkradicalssupplement}', "");
     Expect(0, 12031, '\P{iscjkradicalssupplement}', "");
@@ -91691,16 +92397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12032, '\p{^iscjkradicalssupplement}', "");
     Expect(1, 12032, '\P{iscjkradicalssupplement}', "");
     Expect(0, 12032, '\P{^iscjkradicalssupplement}', "");
-    Expect(1, 12031, '\p{-_Is_CJK_Radicals_Supplement}', "");
-    Expect(0, 12031, '\p{^-_Is_CJK_Radicals_Supplement}', "");
-    Expect(0, 12031, '\P{-_Is_CJK_Radicals_Supplement}', "");
-    Expect(1, 12031, '\P{^-_Is_CJK_Radicals_Supplement}', "");
-    Expect(0, 12032, '\p{-_Is_CJK_Radicals_Supplement}', "");
-    Expect(1, 12032, '\p{^-_Is_CJK_Radicals_Supplement}', "");
-    Expect(1, 12032, '\P{-_Is_CJK_Radicals_Supplement}', "");
-    Expect(0, 12032, '\P{^-_Is_CJK_Radicals_Supplement}', "");
-    Error('\p{/a/IN_cjk_RADICALS_SUPPLEMENT}');
-    Error('\P{/a/IN_cjk_RADICALS_SUPPLEMENT}');
+    Expect(1, 12031, '\p{ IS_CJK_RADICALS_Supplement}', "");
+    Expect(0, 12031, '\p{^ IS_CJK_RADICALS_Supplement}', "");
+    Expect(0, 12031, '\P{ IS_CJK_RADICALS_Supplement}', "");
+    Expect(1, 12031, '\P{^ IS_CJK_RADICALS_Supplement}', "");
+    Expect(0, 12032, '\p{ IS_CJK_RADICALS_Supplement}', "");
+    Expect(1, 12032, '\p{^ IS_CJK_RADICALS_Supplement}', "");
+    Expect(1, 12032, '\P{ IS_CJK_RADICALS_Supplement}', "");
+    Expect(0, 12032, '\P{^ IS_CJK_RADICALS_Supplement}', "");
+    Error('\p{_IN_cjk_radicals_Supplement:=}');
+    Error('\P{_IN_cjk_radicals_Supplement:=}');
     Expect(1, 12031, '\p{incjkradicalssupplement}', "");
     Expect(0, 12031, '\p{^incjkradicalssupplement}', "");
     Expect(0, 12031, '\P{incjkradicalssupplement}', "");
@@ -91709,16 +92415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12032, '\p{^incjkradicalssupplement}', "");
     Expect(1, 12032, '\P{incjkradicalssupplement}', "");
     Expect(0, 12032, '\P{^incjkradicalssupplement}', "");
-    Expect(1, 12031, '\p{_-in_CJK_Radicals_Supplement}', "");
-    Expect(0, 12031, '\p{^_-in_CJK_Radicals_Supplement}', "");
-    Expect(0, 12031, '\P{_-in_CJK_Radicals_Supplement}', "");
-    Expect(1, 12031, '\P{^_-in_CJK_Radicals_Supplement}', "");
-    Expect(0, 12032, '\p{_-in_CJK_Radicals_Supplement}', "");
-    Expect(1, 12032, '\p{^_-in_CJK_Radicals_Supplement}', "");
-    Expect(1, 12032, '\P{_-in_CJK_Radicals_Supplement}', "");
-    Expect(0, 12032, '\P{^_-in_CJK_Radicals_Supplement}', "");
-    Error('\p{-CJK_RADICALS_sup:=}');
-    Error('\P{-CJK_RADICALS_sup:=}');
+    Expect(1, 12031, '\p{ _In_CJK_Radicals_Supplement}', "");
+    Expect(0, 12031, '\p{^ _In_CJK_Radicals_Supplement}', "");
+    Expect(0, 12031, '\P{ _In_CJK_Radicals_Supplement}', "");
+    Expect(1, 12031, '\P{^ _In_CJK_Radicals_Supplement}', "");
+    Expect(0, 12032, '\p{ _In_CJK_Radicals_Supplement}', "");
+    Expect(1, 12032, '\p{^ _In_CJK_Radicals_Supplement}', "");
+    Expect(1, 12032, '\P{ _In_CJK_Radicals_Supplement}', "");
+    Expect(0, 12032, '\P{^ _In_CJK_Radicals_Supplement}', "");
+    Error('\p{/a/-cjk_RADICALS_SUP}');
+    Error('\P{/a/-cjk_RADICALS_SUP}');
     Expect(1, 12031, '\p{cjkradicalssup}', "");
     Expect(0, 12031, '\p{^cjkradicalssup}', "");
     Expect(0, 12031, '\P{cjkradicalssup}', "");
@@ -91727,16 +92433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12032, '\p{^cjkradicalssup}', "");
     Expect(1, 12032, '\P{cjkradicalssup}', "");
     Expect(0, 12032, '\P{^cjkradicalssup}', "");
-    Expect(1, 12031, '\p{_	CJK_radicals_SUP}', "");
-    Expect(0, 12031, '\p{^_	CJK_radicals_SUP}', "");
-    Expect(0, 12031, '\P{_	CJK_radicals_SUP}', "");
-    Expect(1, 12031, '\P{^_	CJK_radicals_SUP}', "");
-    Expect(0, 12032, '\p{_	CJK_radicals_SUP}', "");
-    Expect(1, 12032, '\p{^_	CJK_radicals_SUP}', "");
-    Expect(1, 12032, '\P{_	CJK_radicals_SUP}', "");
-    Expect(0, 12032, '\P{^_	CJK_radicals_SUP}', "");
-    Error('\p{:= Is_CJK_Radicals_Sup}');
-    Error('\P{:= Is_CJK_Radicals_Sup}');
+    Expect(1, 12031, '\p{- CJK_RADICALS_SUP}', "");
+    Expect(0, 12031, '\p{^- CJK_RADICALS_SUP}', "");
+    Expect(0, 12031, '\P{- CJK_RADICALS_SUP}', "");
+    Expect(1, 12031, '\P{^- CJK_RADICALS_SUP}', "");
+    Expect(0, 12032, '\p{- CJK_RADICALS_SUP}', "");
+    Expect(1, 12032, '\p{^- CJK_RADICALS_SUP}', "");
+    Expect(1, 12032, '\P{- CJK_RADICALS_SUP}', "");
+    Expect(0, 12032, '\P{^- CJK_RADICALS_SUP}', "");
+    Error('\p{:=-	IS_CJK_Radicals_Sup}');
+    Error('\P{:=-	IS_CJK_Radicals_Sup}');
     Expect(1, 12031, '\p{iscjkradicalssup}', "");
     Expect(0, 12031, '\p{^iscjkradicalssup}', "");
     Expect(0, 12031, '\P{iscjkradicalssup}', "");
@@ -91745,16 +92451,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12032, '\p{^iscjkradicalssup}', "");
     Expect(1, 12032, '\P{iscjkradicalssup}', "");
     Expect(0, 12032, '\P{^iscjkradicalssup}', "");
-    Expect(1, 12031, '\p{	is_CJK_RADICALS_sup}', "");
-    Expect(0, 12031, '\p{^	is_CJK_RADICALS_sup}', "");
-    Expect(0, 12031, '\P{	is_CJK_RADICALS_sup}', "");
-    Expect(1, 12031, '\P{^	is_CJK_RADICALS_sup}', "");
-    Expect(0, 12032, '\p{	is_CJK_RADICALS_sup}', "");
-    Expect(1, 12032, '\p{^	is_CJK_RADICALS_sup}', "");
-    Expect(1, 12032, '\P{	is_CJK_RADICALS_sup}', "");
-    Expect(0, 12032, '\P{^	is_CJK_RADICALS_sup}', "");
-    Error('\p{ :=IN_cjk_RADICALS_SUP}');
-    Error('\P{ :=IN_cjk_RADICALS_SUP}');
+    Expect(1, 12031, '\p{	Is_CJK_RADICALS_Sup}', "");
+    Expect(0, 12031, '\p{^	Is_CJK_RADICALS_Sup}', "");
+    Expect(0, 12031, '\P{	Is_CJK_RADICALS_Sup}', "");
+    Expect(1, 12031, '\P{^	Is_CJK_RADICALS_Sup}', "");
+    Expect(0, 12032, '\p{	Is_CJK_RADICALS_Sup}', "");
+    Expect(1, 12032, '\p{^	Is_CJK_RADICALS_Sup}', "");
+    Expect(1, 12032, '\P{	Is_CJK_RADICALS_Sup}', "");
+    Expect(0, 12032, '\P{^	Is_CJK_RADICALS_Sup}', "");
+    Error('\p{_ in_CJK_RADICALS_SUP/a/}');
+    Error('\P{_ in_CJK_RADICALS_SUP/a/}');
     Expect(1, 12031, '\p{incjkradicalssup}', "");
     Expect(0, 12031, '\p{^incjkradicalssup}', "");
     Expect(0, 12031, '\P{incjkradicalssup}', "");
@@ -91763,16 +92469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12032, '\p{^incjkradicalssup}', "");
     Expect(1, 12032, '\P{incjkradicalssup}', "");
     Expect(0, 12032, '\P{^incjkradicalssup}', "");
-    Expect(1, 12031, '\p{ -In_cjk_Radicals_sup}', "");
-    Expect(0, 12031, '\p{^ -In_cjk_Radicals_sup}', "");
-    Expect(0, 12031, '\P{ -In_cjk_Radicals_sup}', "");
-    Expect(1, 12031, '\P{^ -In_cjk_Radicals_sup}', "");
-    Expect(0, 12032, '\p{ -In_cjk_Radicals_sup}', "");
-    Expect(1, 12032, '\p{^ -In_cjk_Radicals_sup}', "");
-    Expect(1, 12032, '\P{ -In_cjk_Radicals_sup}', "");
-    Expect(0, 12032, '\P{^ -In_cjk_Radicals_sup}', "");
-    Error('\p{-	cjk_strokes:=}');
-    Error('\P{-	cjk_strokes:=}');
+    Expect(1, 12031, '\p{_ IN_cjk_radicals_SUP}', "");
+    Expect(0, 12031, '\p{^_ IN_cjk_radicals_SUP}', "");
+    Expect(0, 12031, '\P{_ IN_cjk_radicals_SUP}', "");
+    Expect(1, 12031, '\P{^_ IN_cjk_radicals_SUP}', "");
+    Expect(0, 12032, '\p{_ IN_cjk_radicals_SUP}', "");
+    Expect(1, 12032, '\p{^_ IN_cjk_radicals_SUP}', "");
+    Expect(1, 12032, '\P{_ IN_cjk_radicals_SUP}', "");
+    Expect(0, 12032, '\P{^_ IN_cjk_radicals_SUP}', "");
+    Error('\p{/a/	cjk_STROKES}');
+    Error('\P{/a/	cjk_STROKES}');
     Expect(1, 12783, '\p{cjkstrokes}', "");
     Expect(0, 12783, '\p{^cjkstrokes}', "");
     Expect(0, 12783, '\P{cjkstrokes}', "");
@@ -91781,16 +92487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12784, '\p{^cjkstrokes}', "");
     Expect(1, 12784, '\P{cjkstrokes}', "");
     Expect(0, 12784, '\P{^cjkstrokes}', "");
-    Expect(1, 12783, '\p{  CJK_Strokes}', "");
-    Expect(0, 12783, '\p{^  CJK_Strokes}', "");
-    Expect(0, 12783, '\P{  CJK_Strokes}', "");
-    Expect(1, 12783, '\P{^  CJK_Strokes}', "");
-    Expect(0, 12784, '\p{  CJK_Strokes}', "");
-    Expect(1, 12784, '\p{^  CJK_Strokes}', "");
-    Expect(1, 12784, '\P{  CJK_Strokes}', "");
-    Expect(0, 12784, '\P{^  CJK_Strokes}', "");
-    Error('\p{-:=IS_cjk_Strokes}');
-    Error('\P{-:=IS_cjk_Strokes}');
+    Expect(1, 12783, '\p{_-CJK_strokes}', "");
+    Expect(0, 12783, '\p{^_-CJK_strokes}', "");
+    Expect(0, 12783, '\P{_-CJK_strokes}', "");
+    Expect(1, 12783, '\P{^_-CJK_strokes}', "");
+    Expect(0, 12784, '\p{_-CJK_strokes}', "");
+    Expect(1, 12784, '\p{^_-CJK_strokes}', "");
+    Expect(1, 12784, '\P{_-CJK_strokes}', "");
+    Expect(0, 12784, '\P{^_-CJK_strokes}', "");
+    Error('\p{ :=Is_CJK_Strokes}');
+    Error('\P{ :=Is_CJK_Strokes}');
     Expect(1, 12783, '\p{iscjkstrokes}', "");
     Expect(0, 12783, '\p{^iscjkstrokes}', "");
     Expect(0, 12783, '\P{iscjkstrokes}', "");
@@ -91799,16 +92505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12784, '\p{^iscjkstrokes}', "");
     Expect(1, 12784, '\P{iscjkstrokes}', "");
     Expect(0, 12784, '\P{^iscjkstrokes}', "");
-    Expect(1, 12783, '\p{-	Is_cjk_Strokes}', "");
-    Expect(0, 12783, '\p{^-	Is_cjk_Strokes}', "");
-    Expect(0, 12783, '\P{-	Is_cjk_Strokes}', "");
-    Expect(1, 12783, '\P{^-	Is_cjk_Strokes}', "");
-    Expect(0, 12784, '\p{-	Is_cjk_Strokes}', "");
-    Expect(1, 12784, '\p{^-	Is_cjk_Strokes}', "");
-    Expect(1, 12784, '\P{-	Is_cjk_Strokes}', "");
-    Expect(0, 12784, '\P{^-	Is_cjk_Strokes}', "");
-    Error('\p{ _in_CJK_Strokes/a/}');
-    Error('\P{ _in_CJK_Strokes/a/}');
+    Expect(1, 12783, '\p{__Is_cjk_Strokes}', "");
+    Expect(0, 12783, '\p{^__Is_cjk_Strokes}', "");
+    Expect(0, 12783, '\P{__Is_cjk_Strokes}', "");
+    Expect(1, 12783, '\P{^__Is_cjk_Strokes}', "");
+    Expect(0, 12784, '\p{__Is_cjk_Strokes}', "");
+    Expect(1, 12784, '\p{^__Is_cjk_Strokes}', "");
+    Expect(1, 12784, '\P{__Is_cjk_Strokes}', "");
+    Expect(0, 12784, '\P{^__Is_cjk_Strokes}', "");
+    Error('\p{_/a/IN_CJK_Strokes}');
+    Error('\P{_/a/IN_CJK_Strokes}');
     Expect(1, 12783, '\p{incjkstrokes}', "");
     Expect(0, 12783, '\p{^incjkstrokes}', "");
     Expect(0, 12783, '\P{incjkstrokes}', "");
@@ -91817,16 +92523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12784, '\p{^incjkstrokes}', "");
     Expect(1, 12784, '\P{incjkstrokes}', "");
     Expect(0, 12784, '\P{^incjkstrokes}', "");
-    Expect(1, 12783, '\p{-_in_CJK_strokes}', "");
-    Expect(0, 12783, '\p{^-_in_CJK_strokes}', "");
-    Expect(0, 12783, '\P{-_in_CJK_strokes}', "");
-    Expect(1, 12783, '\P{^-_in_CJK_strokes}', "");
-    Expect(0, 12784, '\p{-_in_CJK_strokes}', "");
-    Expect(1, 12784, '\p{^-_in_CJK_strokes}', "");
-    Expect(1, 12784, '\P{-_in_CJK_strokes}', "");
-    Expect(0, 12784, '\P{^-_in_CJK_strokes}', "");
-    Error('\p{	-CJK_Symbols_And_Punctuation:=}');
-    Error('\P{	-CJK_Symbols_And_Punctuation:=}');
+    Expect(1, 12783, '\p{--In_CJK_Strokes}', "");
+    Expect(0, 12783, '\p{^--In_CJK_Strokes}', "");
+    Expect(0, 12783, '\P{--In_CJK_Strokes}', "");
+    Expect(1, 12783, '\P{^--In_CJK_Strokes}', "");
+    Expect(0, 12784, '\p{--In_CJK_Strokes}', "");
+    Expect(1, 12784, '\p{^--In_CJK_Strokes}', "");
+    Expect(1, 12784, '\P{--In_CJK_Strokes}', "");
+    Expect(0, 12784, '\P{^--In_CJK_Strokes}', "");
+    Error('\p{-:=cjk_symbols_And_Punctuation}');
+    Error('\P{-:=cjk_symbols_And_Punctuation}');
     Expect(1, 12351, '\p{cjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\p{^cjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\P{cjksymbolsandpunctuation}', "");
@@ -91835,16 +92541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12352, '\p{^cjksymbolsandpunctuation}', "");
     Expect(1, 12352, '\P{cjksymbolsandpunctuation}', "");
     Expect(0, 12352, '\P{^cjksymbolsandpunctuation}', "");
-    Expect(1, 12351, '\p{-	CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12351, '\p{^-	CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12351, '\P{-	CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12351, '\P{^-	CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12352, '\p{-	CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12352, '\p{^-	CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12352, '\P{-	CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12352, '\P{^-	CJK_Symbols_And_Punctuation}', "");
-    Error('\p{ :=IS_cjk_symbols_and_punctuation}');
-    Error('\P{ :=IS_cjk_symbols_and_punctuation}');
+    Expect(1, 12351, '\p{-	CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12351, '\p{^-	CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12351, '\P{-	CJK_Symbols_and_Punctuation}', "");
+    Expect(1, 12351, '\P{^-	CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12352, '\p{-	CJK_Symbols_and_Punctuation}', "");
+    Expect(1, 12352, '\p{^-	CJK_Symbols_and_Punctuation}', "");
+    Expect(1, 12352, '\P{-	CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12352, '\P{^-	CJK_Symbols_and_Punctuation}', "");
+    Error('\p{:=_IS_cjk_Symbols_AND_punctuation}');
+    Error('\P{:=_IS_cjk_Symbols_AND_punctuation}');
     Expect(1, 12351, '\p{iscjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\p{^iscjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\P{iscjksymbolsandpunctuation}', "");
@@ -91853,16 +92559,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12352, '\p{^iscjksymbolsandpunctuation}', "");
     Expect(1, 12352, '\P{iscjksymbolsandpunctuation}', "");
     Expect(0, 12352, '\P{^iscjksymbolsandpunctuation}', "");
-    Expect(1, 12351, '\p{_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(0, 12351, '\p{^_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(0, 12351, '\P{_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(1, 12351, '\P{^_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(0, 12352, '\p{_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(1, 12352, '\p{^_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(1, 12352, '\P{_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Expect(0, 12352, '\P{^_Is_CJK_SYMBOLS_AND_Punctuation}', "");
-    Error('\p{ -in_CJK_symbols_AND_Punctuation:=}');
-    Error('\P{ -in_CJK_symbols_AND_Punctuation:=}');
+    Expect(1, 12351, '\p{- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12351, '\p{^- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12351, '\P{- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(1, 12351, '\P{^- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12352, '\p{- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(1, 12352, '\p{^- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(1, 12352, '\P{- Is_CJK_Symbols_and_Punctuation}', "");
+    Expect(0, 12352, '\P{^- Is_CJK_Symbols_and_Punctuation}', "");
+    Error('\p{:=_In_CJK_symbols_And_PUNCTUATION}');
+    Error('\P{:=_In_CJK_symbols_And_PUNCTUATION}');
     Expect(1, 12351, '\p{incjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\p{^incjksymbolsandpunctuation}', "");
     Expect(0, 12351, '\P{incjksymbolsandpunctuation}', "");
@@ -91871,16 +92577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12352, '\p{^incjksymbolsandpunctuation}', "");
     Expect(1, 12352, '\P{incjksymbolsandpunctuation}', "");
     Expect(0, 12352, '\P{^incjksymbolsandpunctuation}', "");
-    Expect(1, 12351, '\p{_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12351, '\p{^_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12351, '\P{_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12351, '\P{^_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12352, '\p{_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12352, '\p{^_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(1, 12352, '\P{_ In_CJK_Symbols_And_Punctuation}', "");
-    Expect(0, 12352, '\P{^_ In_CJK_Symbols_And_Punctuation}', "");
-    Error('\p{/a/- CJK_Symbols}');
-    Error('\P{/a/- CJK_Symbols}');
+    Expect(1, 12351, '\p{ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(0, 12351, '\p{^ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(0, 12351, '\P{ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(1, 12351, '\P{^ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(0, 12352, '\p{ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(1, 12352, '\p{^ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(1, 12352, '\P{ 	In_cjk_symbols_and_Punctuation}', "");
+    Expect(0, 12352, '\P{^ 	In_cjk_symbols_and_Punctuation}', "");
+    Error('\p{/a/ _CJK_symbols}');
+    Error('\P{/a/ _CJK_symbols}');
     Expect(1, 12351, '\p{cjksymbols}', "");
     Expect(0, 12351, '\p{^cjksymbols}', "");
     Expect(0, 12351, '\P{cjksymbols}', "");
@@ -91889,16 +92595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12352, '\p{^cjksymbols}', "");
     Expect(1, 12352, '\P{cjksymbols}', "");
     Expect(0, 12352, '\P{^cjksymbols}', "");
-    Expect(1, 12351, '\p{_CJK_symbols}', "");
-    Expect(0, 12351, '\p{^_CJK_symbols}', "");
-    Expect(0, 12351, '\P{_CJK_symbols}', "");
-    Expect(1, 12351, '\P{^_CJK_symbols}', "");
-    Expect(0, 12352, '\p{_CJK_symbols}', "");
-    Expect(1, 12352, '\p{^_CJK_symbols}', "");
-    Expect(1, 12352, '\P{_CJK_symbols}', "");
-    Expect(0, 12352, '\P{^_CJK_symbols}', "");
-    Error('\p{/a/_IS_CJK_symbols}');
-    Error('\P{/a/_IS_CJK_symbols}');
+    Expect(1, 12351, '\p{ -cjk_symbols}', "");
+    Expect(0, 12351, '\p{^ -cjk_symbols}', "");
+    Expect(0, 12351, '\P{ -cjk_symbols}', "");
+    Expect(1, 12351, '\P{^ -cjk_symbols}', "");
+    Expect(0, 12352, '\p{ -cjk_symbols}', "");
+    Expect(1, 12352, '\p{^ -cjk_symbols}', "");
+    Expect(1, 12352, '\P{ -cjk_symbols}', "");
+    Expect(0, 12352, '\P{^ -cjk_symbols}', "");
+    Error('\p{	-IS_CJK_Symbols:=}');
+    Error('\P{	-IS_CJK_Symbols:=}');
     Expect(1, 12351, '\p{iscjksymbols}', "");
     Expect(0, 12351, '\p{^iscjksymbols}', "");
     Expect(0, 12351, '\P{iscjksymbols}', "");
@@ -91907,16 +92613,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12352, '\p{^iscjksymbols}', "");
     Expect(1, 12352, '\P{iscjksymbols}', "");
     Expect(0, 12352, '\P{^iscjksymbols}', "");
-    Expect(1, 12351, '\p{_Is_CJK_symbols}', "");
-    Expect(0, 12351, '\p{^_Is_CJK_symbols}', "");
-    Expect(0, 12351, '\P{_Is_CJK_symbols}', "");
-    Expect(1, 12351, '\P{^_Is_CJK_symbols}', "");
-    Expect(0, 12352, '\p{_Is_CJK_symbols}', "");
-    Expect(1, 12352, '\p{^_Is_CJK_symbols}', "");
-    Expect(1, 12352, '\P{_Is_CJK_symbols}', "");
-    Expect(0, 12352, '\P{^_Is_CJK_symbols}', "");
-    Error('\p{/a/	 IN_CJK_Symbols}');
-    Error('\P{/a/	 IN_CJK_Symbols}');
+    Expect(1, 12351, '\p{ 	Is_CJK_Symbols}', "");
+    Expect(0, 12351, '\p{^ 	Is_CJK_Symbols}', "");
+    Expect(0, 12351, '\P{ 	Is_CJK_Symbols}', "");
+    Expect(1, 12351, '\P{^ 	Is_CJK_Symbols}', "");
+    Expect(0, 12352, '\p{ 	Is_CJK_Symbols}', "");
+    Expect(1, 12352, '\p{^ 	Is_CJK_Symbols}', "");
+    Expect(1, 12352, '\P{ 	Is_CJK_Symbols}', "");
+    Expect(0, 12352, '\P{^ 	Is_CJK_Symbols}', "");
+    Error('\p{	:=in_CJK_symbols}');
+    Error('\P{	:=in_CJK_symbols}');
     Expect(1, 12351, '\p{incjksymbols}', "");
     Expect(0, 12351, '\p{^incjksymbols}', "");
     Expect(0, 12351, '\P{incjksymbols}', "");
@@ -91925,16 +92631,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12352, '\p{^incjksymbols}', "");
     Expect(1, 12352, '\P{incjksymbols}', "");
     Expect(0, 12352, '\P{^incjksymbols}', "");
-    Expect(1, 12351, '\p{ 	IN_CJK_SYMBOLS}', "");
-    Expect(0, 12351, '\p{^ 	IN_CJK_SYMBOLS}', "");
-    Expect(0, 12351, '\P{ 	IN_CJK_SYMBOLS}', "");
-    Expect(1, 12351, '\P{^ 	IN_CJK_SYMBOLS}', "");
-    Expect(0, 12352, '\p{ 	IN_CJK_SYMBOLS}', "");
-    Expect(1, 12352, '\p{^ 	IN_CJK_SYMBOLS}', "");
-    Expect(1, 12352, '\P{ 	IN_CJK_SYMBOLS}', "");
-    Expect(0, 12352, '\P{^ 	IN_CJK_SYMBOLS}', "");
-    Error('\p{:=	CJK_Unified_Ideographs}');
-    Error('\P{:=	CJK_Unified_Ideographs}');
+    Expect(1, 12351, '\p{-In_cjk_Symbols}', "");
+    Expect(0, 12351, '\p{^-In_cjk_Symbols}', "");
+    Expect(0, 12351, '\P{-In_cjk_Symbols}', "");
+    Expect(1, 12351, '\P{^-In_cjk_Symbols}', "");
+    Expect(0, 12352, '\p{-In_cjk_Symbols}', "");
+    Expect(1, 12352, '\p{^-In_cjk_Symbols}', "");
+    Expect(1, 12352, '\P{-In_cjk_Symbols}', "");
+    Expect(0, 12352, '\P{^-In_cjk_Symbols}', "");
+    Error('\p{/a/		cjk_unified_IDEOGRAPHS}');
+    Error('\P{/a/		cjk_unified_IDEOGRAPHS}');
     Expect(1, 40959, '\p{cjkunifiedideographs}', "");
     Expect(0, 40959, '\p{^cjkunifiedideographs}', "");
     Expect(0, 40959, '\P{cjkunifiedideographs}', "");
@@ -91943,16 +92649,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 40960, '\p{^cjkunifiedideographs}', "");
     Expect(1, 40960, '\P{cjkunifiedideographs}', "");
     Expect(0, 40960, '\P{^cjkunifiedideographs}', "");
-    Expect(1, 40959, '\p{		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(0, 40959, '\p{^		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(0, 40959, '\P{		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(1, 40959, '\P{^		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(0, 40960, '\p{		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(1, 40960, '\p{^		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(1, 40960, '\P{		CJK_Unified_IDEOGRAPHS}', "");
-    Expect(0, 40960, '\P{^		CJK_Unified_IDEOGRAPHS}', "");
-    Error('\p{_Is_CJK_Unified_IDEOGRAPHS/a/}');
-    Error('\P{_Is_CJK_Unified_IDEOGRAPHS/a/}');
+    Expect(1, 40959, '\p{- CJK_Unified_ideographs}', "");
+    Expect(0, 40959, '\p{^- CJK_Unified_ideographs}', "");
+    Expect(0, 40959, '\P{- CJK_Unified_ideographs}', "");
+    Expect(1, 40959, '\P{^- CJK_Unified_ideographs}', "");
+    Expect(0, 40960, '\p{- CJK_Unified_ideographs}', "");
+    Expect(1, 40960, '\p{^- CJK_Unified_ideographs}', "");
+    Expect(1, 40960, '\P{- CJK_Unified_ideographs}', "");
+    Expect(0, 40960, '\P{^- CJK_Unified_ideographs}', "");
+    Error('\p{-	Is_CJK_Unified_Ideographs:=}');
+    Error('\P{-	Is_CJK_Unified_Ideographs:=}');
     Expect(1, 40959, '\p{iscjkunifiedideographs}', "");
     Expect(0, 40959, '\p{^iscjkunifiedideographs}', "");
     Expect(0, 40959, '\P{iscjkunifiedideographs}', "");
@@ -91961,16 +92667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 40960, '\p{^iscjkunifiedideographs}', "");
     Expect(1, 40960, '\P{iscjkunifiedideographs}', "");
     Expect(0, 40960, '\P{^iscjkunifiedideographs}', "");
-    Expect(1, 40959, '\p{-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(0, 40959, '\p{^-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(0, 40959, '\P{-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(1, 40959, '\P{^-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(0, 40960, '\p{-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(1, 40960, '\p{^-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(1, 40960, '\P{-_is_cjk_UNIFIED_ideographs}', "");
-    Expect(0, 40960, '\P{^-_is_cjk_UNIFIED_ideographs}', "");
-    Error('\p{/a/--IN_cjk_UNIFIED_IDEOGRAPHS}');
-    Error('\P{/a/--IN_cjk_UNIFIED_IDEOGRAPHS}');
+    Expect(1, 40959, '\p{ is_CJK_Unified_Ideographs}', "");
+    Expect(0, 40959, '\p{^ is_CJK_Unified_Ideographs}', "");
+    Expect(0, 40959, '\P{ is_CJK_Unified_Ideographs}', "");
+    Expect(1, 40959, '\P{^ is_CJK_Unified_Ideographs}', "");
+    Expect(0, 40960, '\p{ is_CJK_Unified_Ideographs}', "");
+    Expect(1, 40960, '\p{^ is_CJK_Unified_Ideographs}', "");
+    Expect(1, 40960, '\P{ is_CJK_Unified_Ideographs}', "");
+    Expect(0, 40960, '\P{^ is_CJK_Unified_Ideographs}', "");
+    Error('\p{_-IN_CJK_unified_ideographs/a/}');
+    Error('\P{_-IN_CJK_unified_ideographs/a/}');
     Expect(1, 40959, '\p{incjkunifiedideographs}', "");
     Expect(0, 40959, '\p{^incjkunifiedideographs}', "");
     Expect(0, 40959, '\P{incjkunifiedideographs}', "");
@@ -91979,16 +92685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 40960, '\p{^incjkunifiedideographs}', "");
     Expect(1, 40960, '\P{incjkunifiedideographs}', "");
     Expect(0, 40960, '\P{^incjkunifiedideographs}', "");
-    Expect(1, 40959, '\p{__In_cjk_Unified_Ideographs}', "");
-    Expect(0, 40959, '\p{^__In_cjk_Unified_Ideographs}', "");
-    Expect(0, 40959, '\P{__In_cjk_Unified_Ideographs}', "");
-    Expect(1, 40959, '\P{^__In_cjk_Unified_Ideographs}', "");
-    Expect(0, 40960, '\p{__In_cjk_Unified_Ideographs}', "");
-    Expect(1, 40960, '\p{^__In_cjk_Unified_Ideographs}', "");
-    Expect(1, 40960, '\P{__In_cjk_Unified_Ideographs}', "");
-    Expect(0, 40960, '\P{^__In_cjk_Unified_Ideographs}', "");
-    Error('\p{ CJK:=}');
-    Error('\P{ CJK:=}');
+    Expect(1, 40959, '\p{- In_CJK_Unified_ideographs}', "");
+    Expect(0, 40959, '\p{^- In_CJK_Unified_ideographs}', "");
+    Expect(0, 40959, '\P{- In_CJK_Unified_ideographs}', "");
+    Expect(1, 40959, '\P{^- In_CJK_Unified_ideographs}', "");
+    Expect(0, 40960, '\p{- In_CJK_Unified_ideographs}', "");
+    Expect(1, 40960, '\p{^- In_CJK_Unified_ideographs}', "");
+    Expect(1, 40960, '\P{- In_CJK_Unified_ideographs}', "");
+    Expect(0, 40960, '\P{^- In_CJK_Unified_ideographs}', "");
+    Error('\p{:=		CJK}');
+    Error('\P{:=		CJK}');
     Expect(1, 40959, '\p{cjk}', "");
     Expect(0, 40959, '\p{^cjk}', "");
     Expect(0, 40959, '\P{cjk}', "");
@@ -91997,16 +92703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 40960, '\p{^cjk}', "");
     Expect(1, 40960, '\P{cjk}', "");
     Expect(0, 40960, '\P{^cjk}', "");
-    Expect(1, 40959, '\p{_-CJK}', "");
-    Expect(0, 40959, '\p{^_-CJK}', "");
-    Expect(0, 40959, '\P{_-CJK}', "");
-    Expect(1, 40959, '\P{^_-CJK}', "");
-    Expect(0, 40960, '\p{_-CJK}', "");
-    Expect(1, 40960, '\p{^_-CJK}', "");
-    Expect(1, 40960, '\P{_-CJK}', "");
-    Expect(0, 40960, '\P{^_-CJK}', "");
-    Error('\p{_IS_CJK:=}');
-    Error('\P{_IS_CJK:=}');
+    Expect(1, 40959, '\p{-CJK}', "");
+    Expect(0, 40959, '\p{^-CJK}', "");
+    Expect(0, 40959, '\P{-CJK}', "");
+    Expect(1, 40959, '\P{^-CJK}', "");
+    Expect(0, 40960, '\p{-CJK}', "");
+    Expect(1, 40960, '\p{^-CJK}', "");
+    Expect(1, 40960, '\P{-CJK}', "");
+    Expect(0, 40960, '\P{^-CJK}', "");
+    Error('\p{-Is_cjk:=}');
+    Error('\P{-Is_cjk:=}');
     Expect(1, 40959, '\p{iscjk}', "");
     Expect(0, 40959, '\p{^iscjk}', "");
     Expect(0, 40959, '\P{iscjk}', "");
@@ -92015,16 +92721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 40960, '\p{^iscjk}', "");
     Expect(1, 40960, '\P{iscjk}', "");
     Expect(0, 40960, '\P{^iscjk}', "");
-    Expect(1, 40959, '\p{  Is_cjk}', "");
-    Expect(0, 40959, '\p{^  Is_cjk}', "");
-    Expect(0, 40959, '\P{  Is_cjk}', "");
-    Expect(1, 40959, '\P{^  Is_cjk}', "");
-    Expect(0, 40960, '\p{  Is_cjk}', "");
-    Expect(1, 40960, '\p{^  Is_cjk}', "");
-    Expect(1, 40960, '\P{  Is_cjk}', "");
-    Expect(0, 40960, '\P{^  Is_cjk}', "");
-    Error('\p{:=_In_CJK}');
-    Error('\P{:=_In_CJK}');
+    Expect(1, 40959, '\p{IS_cjk}', "");
+    Expect(0, 40959, '\p{^IS_cjk}', "");
+    Expect(0, 40959, '\P{IS_cjk}', "");
+    Expect(1, 40959, '\P{^IS_cjk}', "");
+    Expect(0, 40960, '\p{IS_cjk}', "");
+    Expect(1, 40960, '\p{^IS_cjk}', "");
+    Expect(1, 40960, '\P{IS_cjk}', "");
+    Expect(0, 40960, '\P{^IS_cjk}', "");
+    Error('\p{	:=In_cjk}');
+    Error('\P{	:=In_cjk}');
     Expect(1, 40959, '\p{incjk}', "");
     Expect(0, 40959, '\p{^incjk}', "");
     Expect(0, 40959, '\P{incjk}', "");
@@ -92033,16 +92739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 40960, '\p{^incjk}', "");
     Expect(1, 40960, '\P{incjk}', "");
     Expect(0, 40960, '\P{^incjk}', "");
-    Expect(1, 40959, '\p{	In_cjk}', "");
-    Expect(0, 40959, '\p{^	In_cjk}', "");
-    Expect(0, 40959, '\P{	In_cjk}', "");
-    Expect(1, 40959, '\P{^	In_cjk}', "");
-    Expect(0, 40960, '\p{	In_cjk}', "");
-    Expect(1, 40960, '\p{^	In_cjk}', "");
-    Expect(1, 40960, '\P{	In_cjk}', "");
-    Expect(0, 40960, '\P{^	In_cjk}', "");
-    Error('\p{_	CJK_Unified_Ideographs_EXTENSION_A/a/}');
-    Error('\P{_	CJK_Unified_Ideographs_EXTENSION_A/a/}');
+    Expect(1, 40959, '\p{-In_CJK}', "");
+    Expect(0, 40959, '\p{^-In_CJK}', "");
+    Expect(0, 40959, '\P{-In_CJK}', "");
+    Expect(1, 40959, '\P{^-In_CJK}', "");
+    Expect(0, 40960, '\p{-In_CJK}', "");
+    Expect(1, 40960, '\p{^-In_CJK}', "");
+    Expect(1, 40960, '\P{-In_CJK}', "");
+    Expect(0, 40960, '\P{^-In_CJK}', "");
+    Error('\p{_/a/CJK_unified_Ideographs_extension_a}');
+    Error('\P{_/a/CJK_unified_Ideographs_extension_a}');
     Expect(1, 19903, '\p{cjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\p{^cjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\P{cjkunifiedideographsextensiona}', "");
@@ -92051,16 +92757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 19904, '\p{^cjkunifiedideographsextensiona}', "");
     Expect(1, 19904, '\P{cjkunifiedideographsextensiona}', "");
     Expect(0, 19904, '\P{^cjkunifiedideographsextensiona}', "");
-    Expect(1, 19903, '\p{	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(0, 19903, '\p{^	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(0, 19903, '\P{	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(1, 19903, '\P{^	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(0, 19904, '\p{	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(1, 19904, '\p{^	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(1, 19904, '\P{	_CJK_unified_Ideographs_Extension_A}', "");
-    Expect(0, 19904, '\P{^	_CJK_unified_Ideographs_Extension_A}', "");
-    Error('\p{:=__Is_cjk_Unified_Ideographs_EXTENSION_A}');
-    Error('\P{:=__Is_cjk_Unified_Ideographs_EXTENSION_A}');
+    Expect(1, 19903, '\p{_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(0, 19903, '\p{^_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(0, 19903, '\P{_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(1, 19903, '\P{^_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(0, 19904, '\p{_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(1, 19904, '\p{^_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(1, 19904, '\P{_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Expect(0, 19904, '\P{^_-CJK_Unified_Ideographs_EXTENSION_A}', "");
+    Error('\p{_	IS_CJK_unified_ideographs_extension_A/a/}');
+    Error('\P{_	IS_CJK_unified_ideographs_extension_A/a/}');
     Expect(1, 19903, '\p{iscjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\p{^iscjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\P{iscjkunifiedideographsextensiona}', "");
@@ -92069,16 +92775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 19904, '\p{^iscjkunifiedideographsextensiona}', "");
     Expect(1, 19904, '\P{iscjkunifiedideographsextensiona}', "");
     Expect(0, 19904, '\P{^iscjkunifiedideographsextensiona}', "");
-    Expect(1, 19903, '\p{_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(0, 19903, '\p{^_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(0, 19903, '\P{_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(1, 19903, '\P{^_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(0, 19904, '\p{_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(1, 19904, '\p{^_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(1, 19904, '\P{_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Expect(0, 19904, '\P{^_ Is_CJK_Unified_IDEOGRAPHS_Extension_A}', "");
-    Error('\p{-/a/In_cjk_UNIFIED_Ideographs_extension_A}');
-    Error('\P{-/a/In_cjk_UNIFIED_Ideographs_extension_A}');
+    Expect(1, 19903, '\p{_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(0, 19903, '\p{^_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(0, 19903, '\P{_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(1, 19903, '\P{^_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(0, 19904, '\p{_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(1, 19904, '\p{^_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(1, 19904, '\P{_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Expect(0, 19904, '\P{^_Is_cjk_UNIFIED_Ideographs_extension_A}', "");
+    Error('\p{_/a/In_CJK_unified_ideographs_Extension_A}');
+    Error('\P{_/a/In_CJK_unified_ideographs_Extension_A}');
     Expect(1, 19903, '\p{incjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\p{^incjkunifiedideographsextensiona}', "");
     Expect(0, 19903, '\P{incjkunifiedideographsextensiona}', "");
@@ -92087,16 +92793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 19904, '\p{^incjkunifiedideographsextensiona}', "");
     Expect(1, 19904, '\P{incjkunifiedideographsextensiona}', "");
     Expect(0, 19904, '\P{^incjkunifiedideographsextensiona}', "");
-    Expect(1, 19903, '\p{	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(0, 19903, '\p{^	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(0, 19903, '\P{	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(1, 19903, '\P{^	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(0, 19904, '\p{	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(1, 19904, '\p{^	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(1, 19904, '\P{	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Expect(0, 19904, '\P{^	-IN_CJK_UNIFIED_ideographs_Extension_A}', "");
-    Error('\p{_CJK_ext_A/a/}');
-    Error('\P{_CJK_ext_A/a/}');
+    Expect(1, 19903, '\p{		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19903, '\p{^		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19903, '\P{		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(1, 19903, '\P{^		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19904, '\p{		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(1, 19904, '\p{^		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(1, 19904, '\P{		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Expect(0, 19904, '\P{^		in_cjk_Unified_IDEOGRAPHS_extension_A}', "");
+    Error('\p{	:=CJK_EXT_a}');
+    Error('\P{	:=CJK_EXT_a}');
     Expect(1, 19903, '\p{cjkexta}', "");
     Expect(0, 19903, '\p{^cjkexta}', "");
     Expect(0, 19903, '\P{cjkexta}', "");
@@ -92105,16 +92811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 19904, '\p{^cjkexta}', "");
     Expect(1, 19904, '\P{cjkexta}', "");
     Expect(0, 19904, '\P{^cjkexta}', "");
-    Expect(1, 19903, '\p{	CJK_Ext_A}', "");
-    Expect(0, 19903, '\p{^	CJK_Ext_A}', "");
-    Expect(0, 19903, '\P{	CJK_Ext_A}', "");
-    Expect(1, 19903, '\P{^	CJK_Ext_A}', "");
-    Expect(0, 19904, '\p{	CJK_Ext_A}', "");
-    Expect(1, 19904, '\p{^	CJK_Ext_A}', "");
-    Expect(1, 19904, '\P{	CJK_Ext_A}', "");
-    Expect(0, 19904, '\P{^	CJK_Ext_A}', "");
-    Error('\p{_:=IS_CJK_Ext_A}');
-    Error('\P{_:=IS_CJK_Ext_A}');
+    Expect(1, 19903, '\p{	_CJK_EXT_A}', "");
+    Expect(0, 19903, '\p{^	_CJK_EXT_A}', "");
+    Expect(0, 19903, '\P{	_CJK_EXT_A}', "");
+    Expect(1, 19903, '\P{^	_CJK_EXT_A}', "");
+    Expect(0, 19904, '\p{	_CJK_EXT_A}', "");
+    Expect(1, 19904, '\p{^	_CJK_EXT_A}', "");
+    Expect(1, 19904, '\P{	_CJK_EXT_A}', "");
+    Expect(0, 19904, '\P{^	_CJK_EXT_A}', "");
+    Error('\p{_ Is_CJK_Ext_A/a/}');
+    Error('\P{_ Is_CJK_Ext_A/a/}');
     Expect(1, 19903, '\p{iscjkexta}', "");
     Expect(0, 19903, '\p{^iscjkexta}', "");
     Expect(0, 19903, '\P{iscjkexta}', "");
@@ -92123,16 +92829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 19904, '\p{^iscjkexta}', "");
     Expect(1, 19904, '\P{iscjkexta}', "");
     Expect(0, 19904, '\P{^iscjkexta}', "");
-    Expect(1, 19903, '\p{__Is_CJK_ext_A}', "");
-    Expect(0, 19903, '\p{^__Is_CJK_ext_A}', "");
-    Expect(0, 19903, '\P{__Is_CJK_ext_A}', "");
-    Expect(1, 19903, '\P{^__Is_CJK_ext_A}', "");
-    Expect(0, 19904, '\p{__Is_CJK_ext_A}', "");
-    Expect(1, 19904, '\p{^__Is_CJK_ext_A}', "");
-    Expect(1, 19904, '\P{__Is_CJK_ext_A}', "");
-    Expect(0, 19904, '\P{^__Is_CJK_ext_A}', "");
-    Error('\p{_:=In_CJK_EXT_A}');
-    Error('\P{_:=In_CJK_EXT_A}');
+    Expect(1, 19903, '\p{	Is_CJK_Ext_a}', "");
+    Expect(0, 19903, '\p{^	Is_CJK_Ext_a}', "");
+    Expect(0, 19903, '\P{	Is_CJK_Ext_a}', "");
+    Expect(1, 19903, '\P{^	Is_CJK_Ext_a}', "");
+    Expect(0, 19904, '\p{	Is_CJK_Ext_a}', "");
+    Expect(1, 19904, '\p{^	Is_CJK_Ext_a}', "");
+    Expect(1, 19904, '\P{	Is_CJK_Ext_a}', "");
+    Expect(0, 19904, '\P{^	Is_CJK_Ext_a}', "");
+    Error('\p{	 In_cjk_EXT_a/a/}');
+    Error('\P{	 In_cjk_EXT_a/a/}');
     Expect(1, 19903, '\p{incjkexta}', "");
     Expect(0, 19903, '\p{^incjkexta}', "");
     Expect(0, 19903, '\P{incjkexta}', "");
@@ -92141,16 +92847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 19904, '\p{^incjkexta}', "");
     Expect(1, 19904, '\P{incjkexta}', "");
     Expect(0, 19904, '\P{^incjkexta}', "");
-    Expect(1, 19903, '\p{_	In_CJK_Ext_A}', "");
-    Expect(0, 19903, '\p{^_	In_CJK_Ext_A}', "");
-    Expect(0, 19903, '\P{_	In_CJK_Ext_A}', "");
-    Expect(1, 19903, '\P{^_	In_CJK_Ext_A}', "");
-    Expect(0, 19904, '\p{_	In_CJK_Ext_A}', "");
-    Expect(1, 19904, '\p{^_	In_CJK_Ext_A}', "");
-    Expect(1, 19904, '\P{_	In_CJK_Ext_A}', "");
-    Expect(0, 19904, '\P{^_	In_CJK_Ext_A}', "");
-    Error('\p{_:=CJK_Unified_IDEOGRAPHS_Extension_B}');
-    Error('\P{_:=CJK_Unified_IDEOGRAPHS_Extension_B}');
+    Expect(1, 19903, '\p{	in_cjk_EXT_A}', "");
+    Expect(0, 19903, '\p{^	in_cjk_EXT_A}', "");
+    Expect(0, 19903, '\P{	in_cjk_EXT_A}', "");
+    Expect(1, 19903, '\P{^	in_cjk_EXT_A}', "");
+    Expect(0, 19904, '\p{	in_cjk_EXT_A}', "");
+    Expect(1, 19904, '\p{^	in_cjk_EXT_A}', "");
+    Expect(1, 19904, '\P{	in_cjk_EXT_A}', "");
+    Expect(0, 19904, '\P{^	in_cjk_EXT_A}', "");
+    Error('\p{:=	-CJK_unified_ideographs_extension_B}');
+    Error('\P{:=	-CJK_unified_ideographs_extension_B}');
     Expect(1, 173791, '\p{cjkunifiedideographsextensionb}', "");
     Expect(0, 173791, '\p{^cjkunifiedideographsextensionb}', "");
     Expect(0, 173791, '\P{cjkunifiedideographsextensionb}', "");
@@ -92159,16 +92865,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 173792, '\p{^cjkunifiedideographsextensionb}', "");
     Expect(1, 173792, '\P{cjkunifiedideographsextensionb}', "");
     Expect(0, 173792, '\P{^cjkunifiedideographsextensionb}', "");
-    Expect(1, 173791, '\p{- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(0, 173791, '\p{^- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(0, 173791, '\P{- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(1, 173791, '\P{^- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(0, 173792, '\p{- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(1, 173792, '\p{^- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(1, 173792, '\P{- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Expect(0, 173792, '\P{^- CJK_Unified_Ideographs_EXTENSION_B}', "");
-    Error('\p{:=-	is_cjk_unified_IDEOGRAPHS_EXTENSION_B}');
-    Error('\P{:=-	is_cjk_unified_IDEOGRAPHS_EXTENSION_B}');
+    Expect(1, 173791, '\p{_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(0, 173791, '\p{^_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(0, 173791, '\P{_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(1, 173791, '\P{^_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(0, 173792, '\p{_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(1, 173792, '\p{^_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(1, 173792, '\P{_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Expect(0, 173792, '\P{^_CJK_UNIFIED_ideographs_Extension_b}', "");
+    Error('\p{:=_Is_CJK_Unified_ideographs_Extension_B}');
+    Error('\P{:=_Is_CJK_Unified_ideographs_Extension_B}');
     Expect(1, 173791, '\p{iscjkunifiedideographsextensionb}', "");
     Expect(0, 173791, '\p{^iscjkunifiedideographsextensionb}', "");
     Expect(0, 173791, '\P{iscjkunifiedideographsextensionb}', "");
@@ -92177,16 +92883,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 173792, '\p{^iscjkunifiedideographsextensionb}', "");
     Expect(1, 173792, '\P{iscjkunifiedideographsextensionb}', "");
     Expect(0, 173792, '\P{^iscjkunifiedideographsextensionb}', "");
-    Expect(1, 173791, '\p{ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(0, 173791, '\p{^ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(0, 173791, '\P{ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(1, 173791, '\P{^ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(0, 173792, '\p{ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(1, 173792, '\p{^ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(1, 173792, '\P{ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Expect(0, 173792, '\P{^ 	Is_cjk_unified_Ideographs_Extension_B}', "");
-    Error('\p{/a/-In_CJK_Unified_Ideographs_EXTENSION_b}');
-    Error('\P{/a/-In_CJK_Unified_Ideographs_EXTENSION_b}');
+    Expect(1, 173791, '\p{Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173791, '\p{^Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173791, '\P{Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(1, 173791, '\P{^Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173792, '\p{Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(1, 173792, '\p{^Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(1, 173792, '\P{Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173792, '\P{^Is_CJK_Unified_Ideographs_Extension_B}', "");
+    Error('\p{ :=In_CJK_Unified_IDEOGRAPHS_Extension_B}');
+    Error('\P{ :=In_CJK_Unified_IDEOGRAPHS_Extension_B}');
     Expect(1, 173791, '\p{incjkunifiedideographsextensionb}', "");
     Expect(0, 173791, '\p{^incjkunifiedideographsextensionb}', "");
     Expect(0, 173791, '\P{incjkunifiedideographsextensionb}', "");
@@ -92195,16 +92901,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 173792, '\p{^incjkunifiedideographsextensionb}', "");
     Expect(1, 173792, '\P{incjkunifiedideographsextensionb}', "");
     Expect(0, 173792, '\P{^incjkunifiedideographsextensionb}', "");
-    Expect(1, 173791, '\p{ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(0, 173791, '\p{^ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(0, 173791, '\P{ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(1, 173791, '\P{^ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(0, 173792, '\p{ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(1, 173792, '\p{^ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(1, 173792, '\P{ In_CJK_Unified_ideographs_Extension_B}', "");
-    Expect(0, 173792, '\P{^ In_CJK_Unified_ideographs_Extension_B}', "");
-    Error('\p{		cjk_Ext_b/a/}');
-    Error('\P{		cjk_Ext_b/a/}');
+    Expect(1, 173791, '\p{  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173791, '\p{^  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173791, '\P{  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(1, 173791, '\P{^  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173792, '\p{  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(1, 173792, '\p{^  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(1, 173792, '\P{  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Expect(0, 173792, '\P{^  In_CJK_Unified_Ideographs_Extension_B}', "");
+    Error('\p{/a/CJK_Ext_B}');
+    Error('\P{/a/CJK_Ext_B}');
     Expect(1, 173791, '\p{cjkextb}', "");
     Expect(0, 173791, '\p{^cjkextb}', "");
     Expect(0, 173791, '\P{cjkextb}', "");
@@ -92213,16 +92919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 173792, '\p{^cjkextb}', "");
     Expect(1, 173792, '\P{cjkextb}', "");
     Expect(0, 173792, '\P{^cjkextb}', "");
-    Expect(1, 173791, '\p{_ CJK_Ext_B}', "");
-    Expect(0, 173791, '\p{^_ CJK_Ext_B}', "");
-    Expect(0, 173791, '\P{_ CJK_Ext_B}', "");
-    Expect(1, 173791, '\P{^_ CJK_Ext_B}', "");
-    Expect(0, 173792, '\p{_ CJK_Ext_B}', "");
-    Expect(1, 173792, '\p{^_ CJK_Ext_B}', "");
-    Expect(1, 173792, '\P{_ CJK_Ext_B}', "");
-    Expect(0, 173792, '\P{^_ CJK_Ext_B}', "");
-    Error('\p{/a/Is_CJK_ext_b}');
-    Error('\P{/a/Is_CJK_ext_b}');
+    Expect(1, 173791, '\p{	CJK_EXT_B}', "");
+    Expect(0, 173791, '\p{^	CJK_EXT_B}', "");
+    Expect(0, 173791, '\P{	CJK_EXT_B}', "");
+    Expect(1, 173791, '\P{^	CJK_EXT_B}', "");
+    Expect(0, 173792, '\p{	CJK_EXT_B}', "");
+    Expect(1, 173792, '\p{^	CJK_EXT_B}', "");
+    Expect(1, 173792, '\P{	CJK_EXT_B}', "");
+    Expect(0, 173792, '\P{^	CJK_EXT_B}', "");
+    Error('\p{	:=is_CJK_EXT_B}');
+    Error('\P{	:=is_CJK_EXT_B}');
     Expect(1, 173791, '\p{iscjkextb}', "");
     Expect(0, 173791, '\p{^iscjkextb}', "");
     Expect(0, 173791, '\P{iscjkextb}', "");
@@ -92231,16 +92937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 173792, '\p{^iscjkextb}', "");
     Expect(1, 173792, '\P{iscjkextb}', "");
     Expect(0, 173792, '\P{^iscjkextb}', "");
-    Expect(1, 173791, '\p{		is_CJK_ext_b}', "");
-    Expect(0, 173791, '\p{^		is_CJK_ext_b}', "");
-    Expect(0, 173791, '\P{		is_CJK_ext_b}', "");
-    Expect(1, 173791, '\P{^		is_CJK_ext_b}', "");
-    Expect(0, 173792, '\p{		is_CJK_ext_b}', "");
-    Expect(1, 173792, '\p{^		is_CJK_ext_b}', "");
-    Expect(1, 173792, '\P{		is_CJK_ext_b}', "");
-    Expect(0, 173792, '\P{^		is_CJK_ext_b}', "");
-    Error('\p{_In_cjk_EXT_B/a/}');
-    Error('\P{_In_cjk_EXT_B/a/}');
+    Expect(1, 173791, '\p{Is_CJK_Ext_B}', "");
+    Expect(0, 173791, '\p{^Is_CJK_Ext_B}', "");
+    Expect(0, 173791, '\P{Is_CJK_Ext_B}', "");
+    Expect(1, 173791, '\P{^Is_CJK_Ext_B}', "");
+    Expect(0, 173792, '\p{Is_CJK_Ext_B}', "");
+    Expect(1, 173792, '\p{^Is_CJK_Ext_B}', "");
+    Expect(1, 173792, '\P{Is_CJK_Ext_B}', "");
+    Expect(0, 173792, '\P{^Is_CJK_Ext_B}', "");
+    Error('\p{-	IN_CJK_Ext_B:=}');
+    Error('\P{-	IN_CJK_Ext_B:=}');
     Expect(1, 173791, '\p{incjkextb}', "");
     Expect(0, 173791, '\p{^incjkextb}', "");
     Expect(0, 173791, '\P{incjkextb}', "");
@@ -92249,16 +92955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 173792, '\p{^incjkextb}', "");
     Expect(1, 173792, '\P{incjkextb}', "");
     Expect(0, 173792, '\P{^incjkextb}', "");
-    Expect(1, 173791, '\p{- in_cjk_ext_b}', "");
-    Expect(0, 173791, '\p{^- in_cjk_ext_b}', "");
-    Expect(0, 173791, '\P{- in_cjk_ext_b}', "");
-    Expect(1, 173791, '\P{^- in_cjk_ext_b}', "");
-    Expect(0, 173792, '\p{- in_cjk_ext_b}', "");
-    Expect(1, 173792, '\p{^- in_cjk_ext_b}', "");
-    Expect(1, 173792, '\P{- in_cjk_ext_b}', "");
-    Expect(0, 173792, '\P{^- in_cjk_ext_b}', "");
-    Error('\p{-:=CJK_Unified_IDEOGRAPHS_extension_C}');
-    Error('\P{-:=CJK_Unified_IDEOGRAPHS_extension_C}');
+    Expect(1, 173791, '\p{-_in_cjk_Ext_B}', "");
+    Expect(0, 173791, '\p{^-_in_cjk_Ext_B}', "");
+    Expect(0, 173791, '\P{-_in_cjk_Ext_B}', "");
+    Expect(1, 173791, '\P{^-_in_cjk_Ext_B}', "");
+    Expect(0, 173792, '\p{-_in_cjk_Ext_B}', "");
+    Expect(1, 173792, '\p{^-_in_cjk_Ext_B}', "");
+    Expect(1, 173792, '\P{-_in_cjk_Ext_B}', "");
+    Expect(0, 173792, '\P{^-_in_cjk_Ext_B}', "");
+    Error('\p{/a/-	CJK_Unified_ideographs_extension_C}');
+    Error('\P{/a/-	CJK_Unified_ideographs_extension_C}');
     Expect(1, 177983, '\p{cjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\p{^cjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\P{cjkunifiedideographsextensionc}', "");
@@ -92267,16 +92973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 177984, '\p{^cjkunifiedideographsextensionc}', "");
     Expect(1, 177984, '\P{cjkunifiedideographsextensionc}', "");
     Expect(0, 177984, '\P{^cjkunifiedideographsextensionc}', "");
-    Expect(1, 177983, '\p{_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177983, '\p{^_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177983, '\P{_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(1, 177983, '\P{^_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177984, '\p{_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(1, 177984, '\p{^_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(1, 177984, '\P{_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Expect(0, 177984, '\P{^_CJK_Unified_IDEOGRAPHS_Extension_C}', "");
-    Error('\p{:=__Is_CJK_UNIFIED_ideographs_extension_C}');
-    Error('\P{:=__Is_CJK_UNIFIED_ideographs_extension_C}');
+    Expect(1, 177983, '\p{-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(0, 177983, '\p{^-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(0, 177983, '\P{-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(1, 177983, '\P{^-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(0, 177984, '\p{-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(1, 177984, '\p{^-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(1, 177984, '\P{-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Expect(0, 177984, '\P{^-CJK_UNIFIED_Ideographs_Extension_C}', "");
+    Error('\p{_/a/is_CJK_unified_IDEOGRAPHS_extension_C}');
+    Error('\P{_/a/is_CJK_unified_IDEOGRAPHS_extension_C}');
     Expect(1, 177983, '\p{iscjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\p{^iscjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\P{iscjkunifiedideographsextensionc}', "");
@@ -92285,16 +92991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 177984, '\p{^iscjkunifiedideographsextensionc}', "");
     Expect(1, 177984, '\P{iscjkunifiedideographsextensionc}', "");
     Expect(0, 177984, '\P{^iscjkunifiedideographsextensionc}', "");
-    Expect(1, 177983, '\p{	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(0, 177983, '\p{^	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(0, 177983, '\P{	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(1, 177983, '\P{^	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(0, 177984, '\p{	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(1, 177984, '\p{^	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(1, 177984, '\P{	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Expect(0, 177984, '\P{^	_Is_cjk_unified_Ideographs_EXTENSION_c}', "");
-    Error('\p{ :=In_cjk_Unified_ideographs_extension_C}');
-    Error('\P{ :=In_cjk_Unified_ideographs_extension_C}');
+    Expect(1, 177983, '\p{--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(0, 177983, '\p{^--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(0, 177983, '\P{--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(1, 177983, '\P{^--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(0, 177984, '\p{--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(1, 177984, '\p{^--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(1, 177984, '\P{--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Expect(0, 177984, '\P{^--Is_CJK_Unified_IDEOGRAPHS_EXTENSION_C}', "");
+    Error('\p{-_in_CJK_UNIFIED_IDEOGRAPHS_Extension_C/a/}');
+    Error('\P{-_in_CJK_UNIFIED_IDEOGRAPHS_Extension_C/a/}');
     Expect(1, 177983, '\p{incjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\p{^incjkunifiedideographsextensionc}', "");
     Expect(0, 177983, '\P{incjkunifiedideographsextensionc}', "");
@@ -92303,16 +93009,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 177984, '\p{^incjkunifiedideographsextensionc}', "");
     Expect(1, 177984, '\P{incjkunifiedideographsextensionc}', "");
     Expect(0, 177984, '\P{^incjkunifiedideographsextensionc}', "");
-    Expect(1, 177983, '\p{_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(0, 177983, '\p{^_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(0, 177983, '\P{_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(1, 177983, '\P{^_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(0, 177984, '\p{_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(1, 177984, '\p{^_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(1, 177984, '\P{_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Expect(0, 177984, '\P{^_IN_CJK_Unified_ideographs_Extension_C}', "");
-    Error('\p{-_CJK_Ext_C:=}');
-    Error('\P{-_CJK_Ext_C:=}');
+    Expect(1, 177983, '\p{	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(0, 177983, '\p{^	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(0, 177983, '\P{	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(1, 177983, '\P{^	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(0, 177984, '\p{	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(1, 177984, '\p{^	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(1, 177984, '\P{	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Expect(0, 177984, '\P{^	-in_cjk_Unified_Ideographs_EXTENSION_C}', "");
+    Error('\p{ /a/cjk_ext_C}');
+    Error('\P{ /a/cjk_ext_C}');
     Expect(1, 177983, '\p{cjkextc}', "");
     Expect(0, 177983, '\p{^cjkextc}', "");
     Expect(0, 177983, '\P{cjkextc}', "");
@@ -92321,16 +93027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 177984, '\p{^cjkextc}', "");
     Expect(1, 177984, '\P{cjkextc}', "");
     Expect(0, 177984, '\P{^cjkextc}', "");
-    Expect(1, 177983, '\p{	cjk_EXT_C}', "");
-    Expect(0, 177983, '\p{^	cjk_EXT_C}', "");
-    Expect(0, 177983, '\P{	cjk_EXT_C}', "");
-    Expect(1, 177983, '\P{^	cjk_EXT_C}', "");
-    Expect(0, 177984, '\p{	cjk_EXT_C}', "");
-    Expect(1, 177984, '\p{^	cjk_EXT_C}', "");
-    Expect(1, 177984, '\P{	cjk_EXT_C}', "");
-    Expect(0, 177984, '\P{^	cjk_EXT_C}', "");
-    Error('\p{	:=Is_cjk_Ext_C}');
-    Error('\P{	:=Is_cjk_Ext_C}');
+    Expect(1, 177983, '\p{ 	cjk_Ext_c}', "");
+    Expect(0, 177983, '\p{^ 	cjk_Ext_c}', "");
+    Expect(0, 177983, '\P{ 	cjk_Ext_c}', "");
+    Expect(1, 177983, '\P{^ 	cjk_Ext_c}', "");
+    Expect(0, 177984, '\p{ 	cjk_Ext_c}', "");
+    Expect(1, 177984, '\p{^ 	cjk_Ext_c}', "");
+    Expect(1, 177984, '\P{ 	cjk_Ext_c}', "");
+    Expect(0, 177984, '\P{^ 	cjk_Ext_c}', "");
+    Error('\p{	is_CJK_EXT_C/a/}');
+    Error('\P{	is_CJK_EXT_C/a/}');
     Expect(1, 177983, '\p{iscjkextc}', "");
     Expect(0, 177983, '\p{^iscjkextc}', "");
     Expect(0, 177983, '\P{iscjkextc}', "");
@@ -92339,16 +93045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 177984, '\p{^iscjkextc}', "");
     Expect(1, 177984, '\P{iscjkextc}', "");
     Expect(0, 177984, '\P{^iscjkextc}', "");
-    Expect(1, 177983, '\p{ 	Is_CJK_Ext_C}', "");
-    Expect(0, 177983, '\p{^ 	Is_CJK_Ext_C}', "");
-    Expect(0, 177983, '\P{ 	Is_CJK_Ext_C}', "");
-    Expect(1, 177983, '\P{^ 	Is_CJK_Ext_C}', "");
-    Expect(0, 177984, '\p{ 	Is_CJK_Ext_C}', "");
-    Expect(1, 177984, '\p{^ 	Is_CJK_Ext_C}', "");
-    Expect(1, 177984, '\P{ 	Is_CJK_Ext_C}', "");
-    Expect(0, 177984, '\P{^ 	Is_CJK_Ext_C}', "");
-    Error('\p{:= _in_CJK_EXT_C}');
-    Error('\P{:= _in_CJK_EXT_C}');
+    Expect(1, 177983, '\p{	Is_CJK_Ext_C}', "");
+    Expect(0, 177983, '\p{^	Is_CJK_Ext_C}', "");
+    Expect(0, 177983, '\P{	Is_CJK_Ext_C}', "");
+    Expect(1, 177983, '\P{^	Is_CJK_Ext_C}', "");
+    Expect(0, 177984, '\p{	Is_CJK_Ext_C}', "");
+    Expect(1, 177984, '\p{^	Is_CJK_Ext_C}', "");
+    Expect(1, 177984, '\P{	Is_CJK_Ext_C}', "");
+    Expect(0, 177984, '\P{^	Is_CJK_Ext_C}', "");
+    Error('\p{ 	in_cjk_ext_C/a/}');
+    Error('\P{ 	in_cjk_ext_C/a/}');
     Expect(1, 177983, '\p{incjkextc}', "");
     Expect(0, 177983, '\p{^incjkextc}', "");
     Expect(0, 177983, '\P{incjkextc}', "");
@@ -92357,16 +93063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 177984, '\p{^incjkextc}', "");
     Expect(1, 177984, '\P{incjkextc}', "");
     Expect(0, 177984, '\P{^incjkextc}', "");
-    Expect(1, 177983, '\p{__In_CJK_EXT_C}', "");
-    Expect(0, 177983, '\p{^__In_CJK_EXT_C}', "");
-    Expect(0, 177983, '\P{__In_CJK_EXT_C}', "");
-    Expect(1, 177983, '\P{^__In_CJK_EXT_C}', "");
-    Expect(0, 177984, '\p{__In_CJK_EXT_C}', "");
-    Expect(1, 177984, '\p{^__In_CJK_EXT_C}', "");
-    Expect(1, 177984, '\P{__In_CJK_EXT_C}', "");
-    Expect(0, 177984, '\P{^__In_CJK_EXT_C}', "");
-    Error('\p{_ CJK_UNIFIED_Ideographs_extension_d:=}');
-    Error('\P{_ CJK_UNIFIED_Ideographs_extension_d:=}');
+    Expect(1, 177983, '\p{-in_CJK_Ext_c}', "");
+    Expect(0, 177983, '\p{^-in_CJK_Ext_c}', "");
+    Expect(0, 177983, '\P{-in_CJK_Ext_c}', "");
+    Expect(1, 177983, '\P{^-in_CJK_Ext_c}', "");
+    Expect(0, 177984, '\p{-in_CJK_Ext_c}', "");
+    Expect(1, 177984, '\p{^-in_CJK_Ext_c}', "");
+    Expect(1, 177984, '\P{-in_CJK_Ext_c}', "");
+    Expect(0, 177984, '\P{^-in_CJK_Ext_c}', "");
+    Error('\p{/a/	 CJK_unified_ideographs_Extension_D}');
+    Error('\P{/a/	 CJK_unified_ideographs_Extension_D}');
     Expect(1, 178207, '\p{cjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\p{^cjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\P{cjkunifiedideographsextensiond}', "");
@@ -92375,16 +93081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 178208, '\p{^cjkunifiedideographsextensiond}', "");
     Expect(1, 178208, '\P{cjkunifiedideographsextensiond}', "");
     Expect(0, 178208, '\P{^cjkunifiedideographsextensiond}', "");
-    Expect(1, 178207, '\p{-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(0, 178207, '\p{^-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(0, 178207, '\P{-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(1, 178207, '\P{^-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(0, 178208, '\p{-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(1, 178208, '\p{^-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(1, 178208, '\P{-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Expect(0, 178208, '\P{^-cjk_UNIFIED_ideographs_EXTENSION_d}', "");
-    Error('\p{ :=Is_CJK_unified_Ideographs_Extension_D}');
-    Error('\P{ :=Is_CJK_unified_Ideographs_Extension_D}');
+    Expect(1, 178207, '\p{_CJK_Unified_ideographs_extension_D}', "");
+    Expect(0, 178207, '\p{^_CJK_Unified_ideographs_extension_D}', "");
+    Expect(0, 178207, '\P{_CJK_Unified_ideographs_extension_D}', "");
+    Expect(1, 178207, '\P{^_CJK_Unified_ideographs_extension_D}', "");
+    Expect(0, 178208, '\p{_CJK_Unified_ideographs_extension_D}', "");
+    Expect(1, 178208, '\p{^_CJK_Unified_ideographs_extension_D}', "");
+    Expect(1, 178208, '\P{_CJK_Unified_ideographs_extension_D}', "");
+    Expect(0, 178208, '\P{^_CJK_Unified_ideographs_extension_D}', "");
+    Error('\p{:= 	Is_cjk_Unified_Ideographs_Extension_D}');
+    Error('\P{:= 	Is_cjk_Unified_Ideographs_Extension_D}');
     Expect(1, 178207, '\p{iscjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\p{^iscjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\P{iscjkunifiedideographsextensiond}', "");
@@ -92393,16 +93099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 178208, '\p{^iscjkunifiedideographsextensiond}', "");
     Expect(1, 178208, '\P{iscjkunifiedideographsextensiond}', "");
     Expect(0, 178208, '\P{^iscjkunifiedideographsextensiond}', "");
-    Expect(1, 178207, '\p{__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178207, '\p{^__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178207, '\P{__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(1, 178207, '\P{^__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178208, '\p{__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(1, 178208, '\p{^__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(1, 178208, '\P{__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Expect(0, 178208, '\P{^__Is_CJK_UNIFIED_ideographs_extension_D}', "");
-    Error('\p{	-in_cjk_Unified_Ideographs_Extension_D:=}');
-    Error('\P{	-in_cjk_Unified_Ideographs_Extension_D:=}');
+    Expect(1, 178207, '\p{_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(0, 178207, '\p{^_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(0, 178207, '\P{_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(1, 178207, '\P{^_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(0, 178208, '\p{_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(1, 178208, '\p{^_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(1, 178208, '\P{_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Expect(0, 178208, '\P{^_is_CJK_Unified_IDEOGRAPHS_EXTENSION_D}', "");
+    Error('\p{ _in_CJK_Unified_ideographs_extension_d/a/}');
+    Error('\P{ _in_CJK_Unified_ideographs_extension_d/a/}');
     Expect(1, 178207, '\p{incjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\p{^incjkunifiedideographsextensiond}', "");
     Expect(0, 178207, '\P{incjkunifiedideographsextensiond}', "");
@@ -92411,16 +93117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 178208, '\p{^incjkunifiedideographsextensiond}', "");
     Expect(1, 178208, '\P{incjkunifiedideographsextensiond}', "");
     Expect(0, 178208, '\P{^incjkunifiedideographsextensiond}', "");
-    Expect(1, 178207, '\p{ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(0, 178207, '\p{^ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(0, 178207, '\P{ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(1, 178207, '\P{^ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(0, 178208, '\p{ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(1, 178208, '\p{^ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(1, 178208, '\P{ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Expect(0, 178208, '\P{^ 	in_CJK_Unified_ideographs_extension_d}', "");
-    Error('\p{/a/	 CJK_EXT_D}');
-    Error('\P{/a/	 CJK_EXT_D}');
+    Expect(1, 178207, '\p{_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(0, 178207, '\p{^_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(0, 178207, '\P{_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(1, 178207, '\P{^_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(0, 178208, '\p{_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(1, 178208, '\p{^_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(1, 178208, '\P{_In_CJK_unified_ideographs_Extension_D}', "");
+    Expect(0, 178208, '\P{^_In_CJK_unified_ideographs_Extension_D}', "");
+    Error('\p{/a/	CJK_Ext_D}');
+    Error('\P{/a/	CJK_Ext_D}');
     Expect(1, 178207, '\p{cjkextd}', "");
     Expect(0, 178207, '\p{^cjkextd}', "");
     Expect(0, 178207, '\P{cjkextd}', "");
@@ -92429,16 +93135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 178208, '\p{^cjkextd}', "");
     Expect(1, 178208, '\P{cjkextd}', "");
     Expect(0, 178208, '\P{^cjkextd}', "");
-    Expect(1, 178207, '\p{_ CJK_Ext_D}', "");
-    Expect(0, 178207, '\p{^_ CJK_Ext_D}', "");
-    Expect(0, 178207, '\P{_ CJK_Ext_D}', "");
-    Expect(1, 178207, '\P{^_ CJK_Ext_D}', "");
-    Expect(0, 178208, '\p{_ CJK_Ext_D}', "");
-    Expect(1, 178208, '\p{^_ CJK_Ext_D}', "");
-    Expect(1, 178208, '\P{_ CJK_Ext_D}', "");
-    Expect(0, 178208, '\P{^_ CJK_Ext_D}', "");
-    Error('\p{/a/ 	is_CJK_ext_D}');
-    Error('\P{/a/ 	is_CJK_ext_D}');
+    Expect(1, 178207, '\p{--cjk_EXT_D}', "");
+    Expect(0, 178207, '\p{^--cjk_EXT_D}', "");
+    Expect(0, 178207, '\P{--cjk_EXT_D}', "");
+    Expect(1, 178207, '\P{^--cjk_EXT_D}', "");
+    Expect(0, 178208, '\p{--cjk_EXT_D}', "");
+    Expect(1, 178208, '\p{^--cjk_EXT_D}', "");
+    Expect(1, 178208, '\P{--cjk_EXT_D}', "");
+    Expect(0, 178208, '\P{^--cjk_EXT_D}', "");
+    Error('\p{/a/ 	Is_CJK_ext_D}');
+    Error('\P{/a/ 	Is_CJK_ext_D}');
     Expect(1, 178207, '\p{iscjkextd}', "");
     Expect(0, 178207, '\p{^iscjkextd}', "");
     Expect(0, 178207, '\P{iscjkextd}', "");
@@ -92447,16 +93153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 178208, '\p{^iscjkextd}', "");
     Expect(1, 178208, '\P{iscjkextd}', "");
     Expect(0, 178208, '\P{^iscjkextd}', "");
-    Expect(1, 178207, '\p{-IS_CJK_Ext_D}', "");
-    Expect(0, 178207, '\p{^-IS_CJK_Ext_D}', "");
-    Expect(0, 178207, '\P{-IS_CJK_Ext_D}', "");
-    Expect(1, 178207, '\P{^-IS_CJK_Ext_D}', "");
-    Expect(0, 178208, '\p{-IS_CJK_Ext_D}', "");
-    Expect(1, 178208, '\p{^-IS_CJK_Ext_D}', "");
-    Expect(1, 178208, '\P{-IS_CJK_Ext_D}', "");
-    Expect(0, 178208, '\P{^-IS_CJK_Ext_D}', "");
-    Error('\p{_-IN_CJK_EXT_D/a/}');
-    Error('\P{_-IN_CJK_EXT_D/a/}');
+    Expect(1, 178207, '\p{- is_CJK_ext_d}', "");
+    Expect(0, 178207, '\p{^- is_CJK_ext_d}', "");
+    Expect(0, 178207, '\P{- is_CJK_ext_d}', "");
+    Expect(1, 178207, '\P{^- is_CJK_ext_d}', "");
+    Expect(0, 178208, '\p{- is_CJK_ext_d}', "");
+    Expect(1, 178208, '\p{^- is_CJK_ext_d}', "");
+    Expect(1, 178208, '\P{- is_CJK_ext_d}', "");
+    Expect(0, 178208, '\P{^- is_CJK_ext_d}', "");
+    Error('\p{	:=In_CJK_EXT_D}');
+    Error('\P{	:=In_CJK_EXT_D}');
     Expect(1, 178207, '\p{incjkextd}', "");
     Expect(0, 178207, '\p{^incjkextd}', "");
     Expect(0, 178207, '\P{incjkextd}', "");
@@ -92465,16 +93171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 178208, '\p{^incjkextd}', "");
     Expect(1, 178208, '\P{incjkextd}', "");
     Expect(0, 178208, '\P{^incjkextd}', "");
-    Expect(1, 178207, '\p{_In_CJK_ext_D}', "");
-    Expect(0, 178207, '\p{^_In_CJK_ext_D}', "");
-    Expect(0, 178207, '\P{_In_CJK_ext_D}', "");
-    Expect(1, 178207, '\P{^_In_CJK_ext_D}', "");
-    Expect(0, 178208, '\p{_In_CJK_ext_D}', "");
-    Expect(1, 178208, '\p{^_In_CJK_ext_D}', "");
-    Expect(1, 178208, '\P{_In_CJK_ext_D}', "");
-    Expect(0, 178208, '\P{^_In_CJK_ext_D}', "");
-    Error('\p{/a/ cjk_unified_IDEOGRAPHS_Extension_E}');
-    Error('\P{/a/ cjk_unified_IDEOGRAPHS_Extension_E}');
+    Expect(1, 178207, '\p{_In_CJK_Ext_D}', "");
+    Expect(0, 178207, '\p{^_In_CJK_Ext_D}', "");
+    Expect(0, 178207, '\P{_In_CJK_Ext_D}', "");
+    Expect(1, 178207, '\P{^_In_CJK_Ext_D}', "");
+    Expect(0, 178208, '\p{_In_CJK_Ext_D}', "");
+    Expect(1, 178208, '\p{^_In_CJK_Ext_D}', "");
+    Expect(1, 178208, '\P{_In_CJK_Ext_D}', "");
+    Expect(0, 178208, '\P{^_In_CJK_Ext_D}', "");
+    Error('\p{-_cjk_Unified_Ideographs_extension_E/a/}');
+    Error('\P{-_cjk_Unified_Ideographs_extension_E/a/}');
     Expect(1, 183983, '\p{cjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\p{^cjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\P{cjkunifiedideographsextensione}', "");
@@ -92483,16 +93189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 183984, '\p{^cjkunifiedideographsextensione}', "");
     Expect(1, 183984, '\P{cjkunifiedideographsextensione}', "");
     Expect(0, 183984, '\P{^cjkunifiedideographsextensione}', "");
-    Expect(1, 183983, '\p{	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(0, 183983, '\p{^	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(0, 183983, '\P{	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(1, 183983, '\P{^	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(0, 183984, '\p{	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(1, 183984, '\p{^	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(1, 183984, '\P{	CJK_Unified_Ideographs_Extension_E}', "");
-    Expect(0, 183984, '\P{^	CJK_Unified_Ideographs_Extension_E}', "");
-    Error('\p{/a/  Is_CJK_Unified_Ideographs_Extension_E}');
-    Error('\P{/a/  Is_CJK_Unified_Ideographs_Extension_E}');
+    Expect(1, 183983, '\p{_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(0, 183983, '\p{^_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(0, 183983, '\P{_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(1, 183983, '\P{^_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(0, 183984, '\p{_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(1, 183984, '\p{^_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(1, 183984, '\P{_ CJK_Unified_ideographs_extension_E}', "");
+    Expect(0, 183984, '\P{^_ CJK_Unified_ideographs_extension_E}', "");
+    Error('\p{/a/_is_CJK_Unified_IDEOGRAPHS_EXTENSION_e}');
+    Error('\P{/a/_is_CJK_Unified_IDEOGRAPHS_EXTENSION_e}');
     Expect(1, 183983, '\p{iscjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\p{^iscjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\P{iscjkunifiedideographsextensione}', "");
@@ -92501,16 +93207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 183984, '\p{^iscjkunifiedideographsextensione}', "");
     Expect(1, 183984, '\P{iscjkunifiedideographsextensione}', "");
     Expect(0, 183984, '\P{^iscjkunifiedideographsextensione}', "");
-    Expect(1, 183983, '\p{-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183983, '\p{^-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183983, '\P{-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(1, 183983, '\P{^-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183984, '\p{-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(1, 183984, '\p{^-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(1, 183984, '\P{-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Expect(0, 183984, '\P{^-	Is_CJK_Unified_Ideographs_EXTENSION_E}', "");
-    Error('\p{- In_CJK_UNIFIED_Ideographs_Extension_E:=}');
-    Error('\P{- In_CJK_UNIFIED_Ideographs_Extension_E:=}');
+    Expect(1, 183983, '\p{__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(0, 183983, '\p{^__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(0, 183983, '\P{__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(1, 183983, '\P{^__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(0, 183984, '\p{__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(1, 183984, '\p{^__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(1, 183984, '\P{__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Expect(0, 183984, '\P{^__IS_CJK_Unified_Ideographs_extension_E}', "");
+    Error('\p{/a/-In_CJK_UNIFIED_IDEOGRAPHS_Extension_E}');
+    Error('\P{/a/-In_CJK_UNIFIED_IDEOGRAPHS_Extension_E}');
     Expect(1, 183983, '\p{incjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\p{^incjkunifiedideographsextensione}', "");
     Expect(0, 183983, '\P{incjkunifiedideographsextensione}', "");
@@ -92519,16 +93225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 183984, '\p{^incjkunifiedideographsextensione}', "");
     Expect(1, 183984, '\P{incjkunifiedideographsextensione}', "");
     Expect(0, 183984, '\P{^incjkunifiedideographsextensione}', "");
-    Expect(1, 183983, '\p{ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(0, 183983, '\p{^ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(0, 183983, '\P{ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(1, 183983, '\P{^ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(0, 183984, '\p{ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(1, 183984, '\p{^ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(1, 183984, '\P{ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Expect(0, 183984, '\P{^ In_cjk_Unified_IDEOGRAPHS_EXTENSION_E}', "");
-    Error('\p{	-CJK_ext_E/a/}');
-    Error('\P{	-CJK_ext_E/a/}');
+    Expect(1, 183983, '\p{ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(0, 183983, '\p{^ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(0, 183983, '\P{ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(1, 183983, '\P{^ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(0, 183984, '\p{ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(1, 183984, '\p{^ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(1, 183984, '\P{ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Expect(0, 183984, '\P{^ IN_cjk_UNIFIED_ideographs_extension_E}', "");
+    Error('\p{ CJK_ext_E:=}');
+    Error('\P{ CJK_ext_E:=}');
     Expect(1, 183983, '\p{cjkexte}', "");
     Expect(0, 183983, '\p{^cjkexte}', "");
     Expect(0, 183983, '\P{cjkexte}', "");
@@ -92537,16 +93243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 183984, '\p{^cjkexte}', "");
     Expect(1, 183984, '\P{cjkexte}', "");
     Expect(0, 183984, '\P{^cjkexte}', "");
-    Expect(1, 183983, '\p{-cjk_EXT_E}', "");
-    Expect(0, 183983, '\p{^-cjk_EXT_E}', "");
-    Expect(0, 183983, '\P{-cjk_EXT_E}', "");
-    Expect(1, 183983, '\P{^-cjk_EXT_E}', "");
-    Expect(0, 183984, '\p{-cjk_EXT_E}', "");
-    Expect(1, 183984, '\p{^-cjk_EXT_E}', "");
-    Expect(1, 183984, '\P{-cjk_EXT_E}', "");
-    Expect(0, 183984, '\P{^-cjk_EXT_E}', "");
-    Error('\p{is_CJK_Ext_E/a/}');
-    Error('\P{is_CJK_Ext_E/a/}');
+    Expect(1, 183983, '\p{ -cjk_Ext_E}', "");
+    Expect(0, 183983, '\p{^ -cjk_Ext_E}', "");
+    Expect(0, 183983, '\P{ -cjk_Ext_E}', "");
+    Expect(1, 183983, '\P{^ -cjk_Ext_E}', "");
+    Expect(0, 183984, '\p{ -cjk_Ext_E}', "");
+    Expect(1, 183984, '\p{^ -cjk_Ext_E}', "");
+    Expect(1, 183984, '\P{ -cjk_Ext_E}', "");
+    Expect(0, 183984, '\P{^ -cjk_Ext_E}', "");
+    Error('\p{ :=Is_CJK_ext_E}');
+    Error('\P{ :=Is_CJK_ext_E}');
     Expect(1, 183983, '\p{iscjkexte}', "");
     Expect(0, 183983, '\p{^iscjkexte}', "");
     Expect(0, 183983, '\P{iscjkexte}', "");
@@ -92555,16 +93261,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 183984, '\p{^iscjkexte}', "");
     Expect(1, 183984, '\P{iscjkexte}', "");
     Expect(0, 183984, '\P{^iscjkexte}', "");
-    Expect(1, 183983, '\p{__is_CJK_ext_E}', "");
-    Expect(0, 183983, '\p{^__is_CJK_ext_E}', "");
-    Expect(0, 183983, '\P{__is_CJK_ext_E}', "");
-    Expect(1, 183983, '\P{^__is_CJK_ext_E}', "");
-    Expect(0, 183984, '\p{__is_CJK_ext_E}', "");
-    Expect(1, 183984, '\p{^__is_CJK_ext_E}', "");
-    Expect(1, 183984, '\P{__is_CJK_ext_E}', "");
-    Expect(0, 183984, '\P{^__is_CJK_ext_E}', "");
-    Error('\p{ 	IN_CJK_Ext_e/a/}');
-    Error('\P{ 	IN_CJK_Ext_e/a/}');
+    Expect(1, 183983, '\p{__IS_CJK_ext_E}', "");
+    Expect(0, 183983, '\p{^__IS_CJK_ext_E}', "");
+    Expect(0, 183983, '\P{__IS_CJK_ext_E}', "");
+    Expect(1, 183983, '\P{^__IS_CJK_ext_E}', "");
+    Expect(0, 183984, '\p{__IS_CJK_ext_E}', "");
+    Expect(1, 183984, '\p{^__IS_CJK_ext_E}', "");
+    Expect(1, 183984, '\P{__IS_CJK_ext_E}', "");
+    Expect(0, 183984, '\P{^__IS_CJK_ext_E}', "");
+    Error('\p{:=_-In_CJK_ext_E}');
+    Error('\P{:=_-In_CJK_ext_E}');
     Expect(1, 183983, '\p{incjkexte}', "");
     Expect(0, 183983, '\p{^incjkexte}', "");
     Expect(0, 183983, '\P{incjkexte}', "");
@@ -92573,16 +93279,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 183984, '\p{^incjkexte}', "");
     Expect(1, 183984, '\P{incjkexte}', "");
     Expect(0, 183984, '\P{^incjkexte}', "");
-    Expect(1, 183983, '\p{		In_cjk_Ext_E}', "");
-    Expect(0, 183983, '\p{^		In_cjk_Ext_E}', "");
-    Expect(0, 183983, '\P{		In_cjk_Ext_E}', "");
-    Expect(1, 183983, '\P{^		In_cjk_Ext_E}', "");
-    Expect(0, 183984, '\p{		In_cjk_Ext_E}', "");
-    Expect(1, 183984, '\p{^		In_cjk_Ext_E}', "");
-    Expect(1, 183984, '\P{		In_cjk_Ext_E}', "");
-    Expect(0, 183984, '\P{^		In_cjk_Ext_E}', "");
-    Error('\p{/a/ -CJK_UNIFIED_IDEOGRAPHS_Extension_f}');
-    Error('\P{/a/ -CJK_UNIFIED_IDEOGRAPHS_Extension_f}');
+    Expect(1, 183983, '\p{ -IN_CJK_ext_e}', "");
+    Expect(0, 183983, '\p{^ -IN_CJK_ext_e}', "");
+    Expect(0, 183983, '\P{ -IN_CJK_ext_e}', "");
+    Expect(1, 183983, '\P{^ -IN_CJK_ext_e}', "");
+    Expect(0, 183984, '\p{ -IN_CJK_ext_e}', "");
+    Expect(1, 183984, '\p{^ -IN_CJK_ext_e}', "");
+    Expect(1, 183984, '\P{ -IN_CJK_ext_e}', "");
+    Expect(0, 183984, '\P{^ -IN_CJK_ext_e}', "");
+    Error('\p{:= CJK_Unified_Ideographs_Extension_F}');
+    Error('\P{:= CJK_Unified_Ideographs_Extension_F}');
     Expect(1, 191471, '\p{cjkunifiedideographsextensionf}', "");
     Expect(0, 191471, '\p{^cjkunifiedideographsextensionf}', "");
     Expect(0, 191471, '\P{cjkunifiedideographsextensionf}', "");
@@ -92591,16 +93297,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 191472, '\p{^cjkunifiedideographsextensionf}', "");
     Expect(1, 191472, '\P{cjkunifiedideographsextensionf}', "");
     Expect(0, 191472, '\P{^cjkunifiedideographsextensionf}', "");
-    Expect(1, 191471, '\p{CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191471, '\p{^CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191471, '\P{CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(1, 191471, '\P{^CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191472, '\p{CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(1, 191472, '\p{^CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(1, 191472, '\P{CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191472, '\P{^CJK_unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Error('\p{-:=is_CJK_Unified_Ideographs_extension_F}');
-    Error('\P{-:=is_CJK_Unified_Ideographs_extension_F}');
+    Expect(1, 191471, '\p{  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(0, 191471, '\p{^  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(0, 191471, '\P{  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(1, 191471, '\P{^  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(0, 191472, '\p{  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(1, 191472, '\p{^  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(1, 191472, '\P{  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Expect(0, 191472, '\P{^  CJK_UNIFIED_ideographs_Extension_f}', "");
+    Error('\p{/a/	Is_CJK_Unified_Ideographs_EXTENSION_f}');
+    Error('\P{/a/	Is_CJK_Unified_Ideographs_EXTENSION_f}');
     Expect(1, 191471, '\p{iscjkunifiedideographsextensionf}', "");
     Expect(0, 191471, '\p{^iscjkunifiedideographsextensionf}', "");
     Expect(0, 191471, '\P{iscjkunifiedideographsextensionf}', "");
@@ -92609,16 +93315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 191472, '\p{^iscjkunifiedideographsextensionf}', "");
     Expect(1, 191472, '\P{iscjkunifiedideographsextensionf}', "");
     Expect(0, 191472, '\P{^iscjkunifiedideographsextensionf}', "");
-    Expect(1, 191471, '\p{ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(0, 191471, '\p{^ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(0, 191471, '\P{ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(1, 191471, '\P{^ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(0, 191472, '\p{ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(1, 191472, '\p{^ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(1, 191472, '\P{ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Expect(0, 191472, '\P{^ Is_CJK_UNIFIED_IDEOGRAPHS_Extension_F}', "");
-    Error('\p{/a/_-In_cjk_unified_ideographs_Extension_F}');
-    Error('\P{/a/_-In_cjk_unified_ideographs_Extension_F}');
+    Expect(1, 191471, '\p{ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191471, '\p{^ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191471, '\P{ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(1, 191471, '\P{^ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191472, '\p{ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(1, 191472, '\p{^ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(1, 191472, '\P{ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Expect(0, 191472, '\P{^ -IS_cjk_Unified_Ideographs_extension_F}', "");
+    Error('\p{In_CJK_Unified_Ideographs_Extension_F:=}');
+    Error('\P{In_CJK_Unified_Ideographs_Extension_F:=}');
     Expect(1, 191471, '\p{incjkunifiedideographsextensionf}', "");
     Expect(0, 191471, '\p{^incjkunifiedideographsextensionf}', "");
     Expect(0, 191471, '\P{incjkunifiedideographsextensionf}', "");
@@ -92627,16 +93333,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 191472, '\p{^incjkunifiedideographsextensionf}', "");
     Expect(1, 191472, '\P{incjkunifiedideographsextensionf}', "");
     Expect(0, 191472, '\P{^incjkunifiedideographsextensionf}', "");
-    Expect(1, 191471, '\p{_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191471, '\p{^_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191471, '\P{_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(1, 191471, '\P{^_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191472, '\p{_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(1, 191472, '\p{^_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(1, 191472, '\P{_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Expect(0, 191472, '\P{^_In_CJK_Unified_IDEOGRAPHS_EXTENSION_F}', "");
-    Error('\p{	cjk_EXT_F:=}');
-    Error('\P{	cjk_EXT_F:=}');
+    Expect(1, 191471, '\p{--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(0, 191471, '\p{^--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(0, 191471, '\P{--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(1, 191471, '\P{^--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(0, 191472, '\p{--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(1, 191472, '\p{^--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(1, 191472, '\P{--In_CJK_Unified_Ideographs_extension_f}', "");
+    Expect(0, 191472, '\P{^--In_CJK_Unified_Ideographs_extension_f}', "");
+    Error('\p{_:=cjk_Ext_f}');
+    Error('\P{_:=cjk_Ext_f}');
     Expect(1, 191471, '\p{cjkextf}', "");
     Expect(0, 191471, '\p{^cjkextf}', "");
     Expect(0, 191471, '\P{cjkextf}', "");
@@ -92645,16 +93351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 191472, '\p{^cjkextf}', "");
     Expect(1, 191472, '\P{cjkextf}', "");
     Expect(0, 191472, '\P{^cjkextf}', "");
-    Expect(1, 191471, '\p{_	CJK_ext_F}', "");
-    Expect(0, 191471, '\p{^_	CJK_ext_F}', "");
-    Expect(0, 191471, '\P{_	CJK_ext_F}', "");
-    Expect(1, 191471, '\P{^_	CJK_ext_F}', "");
-    Expect(0, 191472, '\p{_	CJK_ext_F}', "");
-    Expect(1, 191472, '\p{^_	CJK_ext_F}', "");
-    Expect(1, 191472, '\P{_	CJK_ext_F}', "");
-    Expect(0, 191472, '\P{^_	CJK_ext_F}', "");
-    Error('\p{:=-Is_CJK_EXT_F}');
-    Error('\P{:=-Is_CJK_EXT_F}');
+    Expect(1, 191471, '\p{__CJK_ext_F}', "");
+    Expect(0, 191471, '\p{^__CJK_ext_F}', "");
+    Expect(0, 191471, '\P{__CJK_ext_F}', "");
+    Expect(1, 191471, '\P{^__CJK_ext_F}', "");
+    Expect(0, 191472, '\p{__CJK_ext_F}', "");
+    Expect(1, 191472, '\p{^__CJK_ext_F}', "");
+    Expect(1, 191472, '\P{__CJK_ext_F}', "");
+    Expect(0, 191472, '\P{^__CJK_ext_F}', "");
+    Error('\p{/a/	IS_cjk_Ext_F}');
+    Error('\P{/a/	IS_cjk_Ext_F}');
     Expect(1, 191471, '\p{iscjkextf}', "");
     Expect(0, 191471, '\p{^iscjkextf}', "");
     Expect(0, 191471, '\P{iscjkextf}', "");
@@ -92663,16 +93369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 191472, '\p{^iscjkextf}', "");
     Expect(1, 191472, '\P{iscjkextf}', "");
     Expect(0, 191472, '\P{^iscjkextf}', "");
-    Expect(1, 191471, '\p{ 	is_CJK_Ext_F}', "");
-    Expect(0, 191471, '\p{^ 	is_CJK_Ext_F}', "");
-    Expect(0, 191471, '\P{ 	is_CJK_Ext_F}', "");
-    Expect(1, 191471, '\P{^ 	is_CJK_Ext_F}', "");
-    Expect(0, 191472, '\p{ 	is_CJK_Ext_F}', "");
-    Expect(1, 191472, '\p{^ 	is_CJK_Ext_F}', "");
-    Expect(1, 191472, '\P{ 	is_CJK_Ext_F}', "");
-    Expect(0, 191472, '\P{^ 	is_CJK_Ext_F}', "");
-    Error('\p{	/a/IN_CJK_ext_F}');
-    Error('\P{	/a/IN_CJK_ext_F}');
+    Expect(1, 191471, '\p{ Is_CJK_ext_F}', "");
+    Expect(0, 191471, '\p{^ Is_CJK_ext_F}', "");
+    Expect(0, 191471, '\P{ Is_CJK_ext_F}', "");
+    Expect(1, 191471, '\P{^ Is_CJK_ext_F}', "");
+    Expect(0, 191472, '\p{ Is_CJK_ext_F}', "");
+    Expect(1, 191472, '\p{^ Is_CJK_ext_F}', "");
+    Expect(1, 191472, '\P{ Is_CJK_ext_F}', "");
+    Expect(0, 191472, '\P{^ Is_CJK_ext_F}', "");
+    Error('\p{		In_cjk_Ext_F:=}');
+    Error('\P{		In_cjk_Ext_F:=}');
     Expect(1, 191471, '\p{incjkextf}', "");
     Expect(0, 191471, '\p{^incjkextf}', "");
     Expect(0, 191471, '\P{incjkextf}', "");
@@ -92681,16 +93387,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 191472, '\p{^incjkextf}', "");
     Expect(1, 191472, '\P{incjkextf}', "");
     Expect(0, 191472, '\P{^incjkextf}', "");
-    Expect(1, 191471, '\p{_-In_CJK_ext_F}', "");
-    Expect(0, 191471, '\p{^_-In_CJK_ext_F}', "");
-    Expect(0, 191471, '\P{_-In_CJK_ext_F}', "");
-    Expect(1, 191471, '\P{^_-In_CJK_ext_F}', "");
-    Expect(0, 191472, '\p{_-In_CJK_ext_F}', "");
-    Expect(1, 191472, '\p{^_-In_CJK_ext_F}', "");
-    Expect(1, 191472, '\P{_-In_CJK_ext_F}', "");
-    Expect(0, 191472, '\P{^_-In_CJK_ext_F}', "");
-    Error('\p{/a/CJK_Unified_IDEOGRAPHS_EXTENSION_G}');
-    Error('\P{/a/CJK_Unified_IDEOGRAPHS_EXTENSION_G}');
+    Expect(1, 191471, '\p{	in_CJK_Ext_F}', "");
+    Expect(0, 191471, '\p{^	in_CJK_Ext_F}', "");
+    Expect(0, 191471, '\P{	in_CJK_Ext_F}', "");
+    Expect(1, 191471, '\P{^	in_CJK_Ext_F}', "");
+    Expect(0, 191472, '\p{	in_CJK_Ext_F}', "");
+    Expect(1, 191472, '\p{^	in_CJK_Ext_F}', "");
+    Expect(1, 191472, '\P{	in_CJK_Ext_F}', "");
+    Expect(0, 191472, '\P{^	in_CJK_Ext_F}', "");
+    Error('\p{	/a/CJK_unified_Ideographs_Extension_g}');
+    Error('\P{	/a/CJK_unified_Ideographs_Extension_g}');
     Expect(1, 201551, '\p{cjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\p{^cjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\P{cjkunifiedideographsextensiong}', "");
@@ -92699,16 +93405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 201552, '\p{^cjkunifiedideographsextensiong}', "");
     Expect(1, 201552, '\P{cjkunifiedideographsextensiong}', "");
     Expect(0, 201552, '\P{^cjkunifiedideographsextensiong}', "");
-    Expect(1, 201551, '\p{cjk_unified_ideographs_Extension_G}', "");
-    Expect(0, 201551, '\p{^cjk_unified_ideographs_Extension_G}', "");
-    Expect(0, 201551, '\P{cjk_unified_ideographs_Extension_G}', "");
-    Expect(1, 201551, '\P{^cjk_unified_ideographs_Extension_G}', "");
-    Expect(0, 201552, '\p{cjk_unified_ideographs_Extension_G}', "");
-    Expect(1, 201552, '\p{^cjk_unified_ideographs_Extension_G}', "");
-    Expect(1, 201552, '\P{cjk_unified_ideographs_Extension_G}', "");
-    Expect(0, 201552, '\P{^cjk_unified_ideographs_Extension_G}', "");
-    Error('\p{/a/Is_CJK_UNIFIED_Ideographs_Extension_g}');
-    Error('\P{/a/Is_CJK_UNIFIED_Ideographs_Extension_g}');
+    Expect(1, 201551, '\p{ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(0, 201551, '\p{^ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(0, 201551, '\P{ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(1, 201551, '\P{^ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(0, 201552, '\p{ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(1, 201552, '\p{^ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(1, 201552, '\P{ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Expect(0, 201552, '\P{^ CJK_Unified_IDEOGRAPHS_extension_G}', "");
+    Error('\p{/a/-	Is_CJK_Unified_ideographs_Extension_G}');
+    Error('\P{/a/-	Is_CJK_Unified_ideographs_Extension_G}');
     Expect(1, 201551, '\p{iscjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\p{^iscjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\P{iscjkunifiedideographsextensiong}', "");
@@ -92717,16 +93423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 201552, '\p{^iscjkunifiedideographsextensiong}', "");
     Expect(1, 201552, '\P{iscjkunifiedideographsextensiong}', "");
     Expect(0, 201552, '\P{^iscjkunifiedideographsextensiong}', "");
-    Expect(1, 201551, '\p{	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(0, 201551, '\p{^	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(0, 201551, '\P{	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(1, 201551, '\P{^	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(0, 201552, '\p{	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(1, 201552, '\p{^	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(1, 201552, '\P{	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Expect(0, 201552, '\P{^	Is_cjk_unified_Ideographs_Extension_G}', "");
-    Error('\p{/a/--In_CJK_unified_Ideographs_Extension_G}');
-    Error('\P{/a/--In_CJK_unified_Ideographs_Extension_G}');
+    Expect(1, 201551, '\p{-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(0, 201551, '\p{^-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(0, 201551, '\P{-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(1, 201551, '\P{^-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(0, 201552, '\p{-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(1, 201552, '\p{^-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(1, 201552, '\P{-_is_CJK_unified_Ideographs_extension_G}', "");
+    Expect(0, 201552, '\P{^-_is_CJK_unified_Ideographs_extension_G}', "");
+    Error('\p{ -in_CJK_Unified_IDEOGRAPHS_extension_g:=}');
+    Error('\P{ -in_CJK_Unified_IDEOGRAPHS_extension_g:=}');
     Expect(1, 201551, '\p{incjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\p{^incjkunifiedideographsextensiong}', "");
     Expect(0, 201551, '\P{incjkunifiedideographsextensiong}', "");
@@ -92735,16 +93441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 201552, '\p{^incjkunifiedideographsextensiong}', "");
     Expect(1, 201552, '\P{incjkunifiedideographsextensiong}', "");
     Expect(0, 201552, '\P{^incjkunifiedideographsextensiong}', "");
-    Expect(1, 201551, '\p{__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(0, 201551, '\p{^__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(0, 201551, '\P{__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(1, 201551, '\P{^__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(0, 201552, '\p{__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(1, 201552, '\p{^__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(1, 201552, '\P{__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Expect(0, 201552, '\P{^__In_cjk_unified_IDEOGRAPHS_EXTENSION_G}', "");
-    Error('\p{-/a/CJK_ext_G}');
-    Error('\P{-/a/CJK_ext_G}');
+    Expect(1, 201551, '\p{_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201551, '\p{^_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201551, '\P{_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(1, 201551, '\P{^_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201552, '\p{_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(1, 201552, '\p{^_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(1, 201552, '\P{_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Expect(0, 201552, '\P{^_-IN_cjk_unified_Ideographs_Extension_G}', "");
+    Error('\p{/a/	 cjk_Ext_G}');
+    Error('\P{/a/	 cjk_Ext_G}');
     Expect(1, 201551, '\p{cjkextg}', "");
     Expect(0, 201551, '\p{^cjkextg}', "");
     Expect(0, 201551, '\P{cjkextg}', "");
@@ -92753,16 +93459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 201552, '\p{^cjkextg}', "");
     Expect(1, 201552, '\P{cjkextg}', "");
     Expect(0, 201552, '\P{^cjkextg}', "");
-    Expect(1, 201551, '\p{	CJK_ext_g}', "");
-    Expect(0, 201551, '\p{^	CJK_ext_g}', "");
-    Expect(0, 201551, '\P{	CJK_ext_g}', "");
-    Expect(1, 201551, '\P{^	CJK_ext_g}', "");
-    Expect(0, 201552, '\p{	CJK_ext_g}', "");
-    Expect(1, 201552, '\p{^	CJK_ext_g}', "");
-    Expect(1, 201552, '\P{	CJK_ext_g}', "");
-    Expect(0, 201552, '\P{^	CJK_ext_g}', "");
-    Error('\p{_	Is_CJK_Ext_G/a/}');
-    Error('\P{_	Is_CJK_Ext_G/a/}');
+    Expect(1, 201551, '\p{	 CJK_EXT_G}', "");
+    Expect(0, 201551, '\p{^	 CJK_EXT_G}', "");
+    Expect(0, 201551, '\P{	 CJK_EXT_G}', "");
+    Expect(1, 201551, '\P{^	 CJK_EXT_G}', "");
+    Expect(0, 201552, '\p{	 CJK_EXT_G}', "");
+    Expect(1, 201552, '\p{^	 CJK_EXT_G}', "");
+    Expect(1, 201552, '\P{	 CJK_EXT_G}', "");
+    Expect(0, 201552, '\P{^	 CJK_EXT_G}', "");
+    Error('\p{ _is_CJK_EXT_g:=}');
+    Error('\P{ _is_CJK_EXT_g:=}');
     Expect(1, 201551, '\p{iscjkextg}', "");
     Expect(0, 201551, '\p{^iscjkextg}', "");
     Expect(0, 201551, '\P{iscjkextg}', "");
@@ -92771,16 +93477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 201552, '\p{^iscjkextg}', "");
     Expect(1, 201552, '\P{iscjkextg}', "");
     Expect(0, 201552, '\P{^iscjkextg}', "");
-    Expect(1, 201551, '\p{_is_cjk_Ext_G}', "");
-    Expect(0, 201551, '\p{^_is_cjk_Ext_G}', "");
-    Expect(0, 201551, '\P{_is_cjk_Ext_G}', "");
-    Expect(1, 201551, '\P{^_is_cjk_Ext_G}', "");
-    Expect(0, 201552, '\p{_is_cjk_Ext_G}', "");
-    Expect(1, 201552, '\p{^_is_cjk_Ext_G}', "");
-    Expect(1, 201552, '\P{_is_cjk_Ext_G}', "");
-    Expect(0, 201552, '\P{^_is_cjk_Ext_G}', "");
-    Error('\p{_:=IN_cjk_Ext_G}');
-    Error('\P{_:=IN_cjk_Ext_G}');
+    Expect(1, 201551, '\p{_Is_CJK_Ext_g}', "");
+    Expect(0, 201551, '\p{^_Is_CJK_Ext_g}', "");
+    Expect(0, 201551, '\P{_Is_CJK_Ext_g}', "");
+    Expect(1, 201551, '\P{^_Is_CJK_Ext_g}', "");
+    Expect(0, 201552, '\p{_Is_CJK_Ext_g}', "");
+    Expect(1, 201552, '\p{^_Is_CJK_Ext_g}', "");
+    Expect(1, 201552, '\P{_Is_CJK_Ext_g}', "");
+    Expect(0, 201552, '\P{^_Is_CJK_Ext_g}', "");
+    Error('\p{_in_CJK_Ext_G/a/}');
+    Error('\P{_in_CJK_Ext_G/a/}');
     Expect(1, 201551, '\p{incjkextg}', "");
     Expect(0, 201551, '\p{^incjkextg}', "");
     Expect(0, 201551, '\P{incjkextg}', "");
@@ -92789,16 +93495,124 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 201552, '\p{^incjkextg}', "");
     Expect(1, 201552, '\P{incjkextg}', "");
     Expect(0, 201552, '\P{^incjkextg}', "");
-    Expect(1, 201551, '\p{_ In_CJK_EXT_G}', "");
-    Expect(0, 201551, '\p{^_ In_CJK_EXT_G}', "");
-    Expect(0, 201551, '\P{_ In_CJK_EXT_G}', "");
-    Expect(1, 201551, '\P{^_ In_CJK_EXT_G}', "");
-    Expect(0, 201552, '\p{_ In_CJK_EXT_G}', "");
-    Expect(1, 201552, '\p{^_ In_CJK_EXT_G}', "");
-    Expect(1, 201552, '\P{_ In_CJK_EXT_G}', "");
-    Expect(0, 201552, '\P{^_ In_CJK_EXT_G}', "");
-    Error('\p{ 	CLOSE_punctuation:=}');
-    Error('\P{ 	CLOSE_punctuation:=}');
+    Expect(1, 201551, '\p{-	In_CJK_Ext_G}', "");
+    Expect(0, 201551, '\p{^-	In_CJK_Ext_G}', "");
+    Expect(0, 201551, '\P{-	In_CJK_Ext_G}', "");
+    Expect(1, 201551, '\P{^-	In_CJK_Ext_G}', "");
+    Expect(0, 201552, '\p{-	In_CJK_Ext_G}', "");
+    Expect(1, 201552, '\p{^-	In_CJK_Ext_G}', "");
+    Expect(1, 201552, '\P{-	In_CJK_Ext_G}', "");
+    Expect(0, 201552, '\P{^-	In_CJK_Ext_G}', "");
+    Error('\p{ 	CJK_UNIFIED_Ideographs_extension_H/a/}');
+    Error('\P{ 	CJK_UNIFIED_Ideographs_extension_H/a/}');
+    Expect(1, 205743, '\p{cjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\p{^cjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\P{cjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\P{^cjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\p{cjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\p{^cjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\P{cjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\P{^cjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\p{	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205743, '\p{^	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205743, '\P{	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(1, 205743, '\P{^	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205744, '\p{	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(1, 205744, '\p{^	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(1, 205744, '\P{	 CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205744, '\P{^	 CJK_Unified_Ideographs_extension_H}', "");
+    Error('\p{ 	is_CJK_Unified_ideographs_Extension_H:=}');
+    Error('\P{ 	is_CJK_Unified_ideographs_Extension_H:=}');
+    Expect(1, 205743, '\p{iscjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\p{^iscjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\P{iscjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\P{^iscjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\p{iscjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\p{^iscjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\P{iscjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\P{^iscjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\p{- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(0, 205743, '\p{^- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(0, 205743, '\P{- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(1, 205743, '\P{^- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(0, 205744, '\p{- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(1, 205744, '\p{^- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(1, 205744, '\P{- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Expect(0, 205744, '\P{^- Is_cjk_Unified_Ideographs_EXTENSION_H}', "");
+    Error('\p{:=	In_CJK_UNIFIED_ideographs_Extension_h}');
+    Error('\P{:=	In_CJK_UNIFIED_ideographs_Extension_h}');
+    Expect(1, 205743, '\p{incjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\p{^incjkunifiedideographsextensionh}', "");
+    Expect(0, 205743, '\P{incjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\P{^incjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\p{incjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\p{^incjkunifiedideographsextensionh}', "");
+    Expect(1, 205744, '\P{incjkunifiedideographsextensionh}', "");
+    Expect(0, 205744, '\P{^incjkunifiedideographsextensionh}', "");
+    Expect(1, 205743, '\p{ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205743, '\p{^ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205743, '\P{ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(1, 205743, '\P{^ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205744, '\p{ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(1, 205744, '\p{^ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(1, 205744, '\P{ In_CJK_Unified_Ideographs_extension_H}', "");
+    Expect(0, 205744, '\P{^ In_CJK_Unified_Ideographs_extension_H}', "");
+    Error('\p{-/a/cjk_Ext_H}');
+    Error('\P{-/a/cjk_Ext_H}');
+    Expect(1, 205743, '\p{cjkexth}', "");
+    Expect(0, 205743, '\p{^cjkexth}', "");
+    Expect(0, 205743, '\P{cjkexth}', "");
+    Expect(1, 205743, '\P{^cjkexth}', "");
+    Expect(0, 205744, '\p{cjkexth}', "");
+    Expect(1, 205744, '\p{^cjkexth}', "");
+    Expect(1, 205744, '\P{cjkexth}', "");
+    Expect(0, 205744, '\P{^cjkexth}', "");
+    Expect(1, 205743, '\p{ 	CJK_Ext_H}', "");
+    Expect(0, 205743, '\p{^ 	CJK_Ext_H}', "");
+    Expect(0, 205743, '\P{ 	CJK_Ext_H}', "");
+    Expect(1, 205743, '\P{^ 	CJK_Ext_H}', "");
+    Expect(0, 205744, '\p{ 	CJK_Ext_H}', "");
+    Expect(1, 205744, '\p{^ 	CJK_Ext_H}', "");
+    Expect(1, 205744, '\P{ 	CJK_Ext_H}', "");
+    Expect(0, 205744, '\P{^ 	CJK_Ext_H}', "");
+    Error('\p{/a/-is_CJK_EXT_H}');
+    Error('\P{/a/-is_CJK_EXT_H}');
+    Expect(1, 205743, '\p{iscjkexth}', "");
+    Expect(0, 205743, '\p{^iscjkexth}', "");
+    Expect(0, 205743, '\P{iscjkexth}', "");
+    Expect(1, 205743, '\P{^iscjkexth}', "");
+    Expect(0, 205744, '\p{iscjkexth}', "");
+    Expect(1, 205744, '\p{^iscjkexth}', "");
+    Expect(1, 205744, '\P{iscjkexth}', "");
+    Expect(0, 205744, '\P{^iscjkexth}', "");
+    Expect(1, 205743, '\p{ 	is_CJK_ext_H}', "");
+    Expect(0, 205743, '\p{^ 	is_CJK_ext_H}', "");
+    Expect(0, 205743, '\P{ 	is_CJK_ext_H}', "");
+    Expect(1, 205743, '\P{^ 	is_CJK_ext_H}', "");
+    Expect(0, 205744, '\p{ 	is_CJK_ext_H}', "");
+    Expect(1, 205744, '\p{^ 	is_CJK_ext_H}', "");
+    Expect(1, 205744, '\P{ 	is_CJK_ext_H}', "");
+    Expect(0, 205744, '\P{^ 	is_CJK_ext_H}', "");
+    Error('\p{	/a/In_CJK_EXT_H}');
+    Error('\P{	/a/In_CJK_EXT_H}');
+    Expect(1, 205743, '\p{incjkexth}', "");
+    Expect(0, 205743, '\p{^incjkexth}', "");
+    Expect(0, 205743, '\P{incjkexth}', "");
+    Expect(1, 205743, '\P{^incjkexth}', "");
+    Expect(0, 205744, '\p{incjkexth}', "");
+    Expect(1, 205744, '\p{^incjkexth}', "");
+    Expect(1, 205744, '\P{incjkexth}', "");
+    Expect(0, 205744, '\P{^incjkexth}', "");
+    Expect(1, 205743, '\p{	In_CJK_Ext_H}', "");
+    Expect(0, 205743, '\p{^	In_CJK_Ext_H}', "");
+    Expect(0, 205743, '\P{	In_CJK_Ext_H}', "");
+    Expect(1, 205743, '\P{^	In_CJK_Ext_H}', "");
+    Expect(0, 205744, '\p{	In_CJK_Ext_H}', "");
+    Expect(1, 205744, '\p{^	In_CJK_Ext_H}', "");
+    Expect(1, 205744, '\P{	In_CJK_Ext_H}', "");
+    Expect(0, 205744, '\P{^	In_CJK_Ext_H}', "");
+    Error('\p{:= -Close_PUNCTUATION}');
+    Error('\P{:= -Close_PUNCTUATION}');
     Expect(1, 65379, '\p{closepunctuation}', "");
     Expect(0, 65379, '\p{^closepunctuation}', "");
     Expect(0, 65379, '\P{closepunctuation}', "");
@@ -92807,16 +93621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^closepunctuation}', "");
     Expect(1, 65380, '\P{closepunctuation}', "");
     Expect(0, 65380, '\P{^closepunctuation}', "");
-    Expect(1, 65379, '\p{-	Close_punctuation}', "");
-    Expect(0, 65379, '\p{^-	Close_punctuation}', "");
-    Expect(0, 65379, '\P{-	Close_punctuation}', "");
-    Expect(1, 65379, '\P{^-	Close_punctuation}', "");
-    Expect(0, 65380, '\p{-	Close_punctuation}', "");
-    Expect(1, 65380, '\p{^-	Close_punctuation}', "");
-    Expect(1, 65380, '\P{-	Close_punctuation}', "");
-    Expect(0, 65380, '\P{^-	Close_punctuation}', "");
-    Error('\p{_:=IS_Close_PUNCTUATION}');
-    Error('\P{_:=IS_Close_PUNCTUATION}');
+    Expect(1, 65379, '\p{-_Close_punctuation}', "");
+    Expect(0, 65379, '\p{^-_Close_punctuation}', "");
+    Expect(0, 65379, '\P{-_Close_punctuation}', "");
+    Expect(1, 65379, '\P{^-_Close_punctuation}', "");
+    Expect(0, 65380, '\p{-_Close_punctuation}', "");
+    Expect(1, 65380, '\p{^-_Close_punctuation}', "");
+    Expect(1, 65380, '\P{-_Close_punctuation}', "");
+    Expect(0, 65380, '\P{^-_Close_punctuation}', "");
+    Error('\p{:=  IS_Close_PUNCTUATION}');
+    Error('\P{:=  IS_Close_PUNCTUATION}');
     Expect(1, 65379, '\p{isclosepunctuation}', "");
     Expect(0, 65379, '\p{^isclosepunctuation}', "");
     Expect(0, 65379, '\P{isclosepunctuation}', "");
@@ -92825,16 +93639,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^isclosepunctuation}', "");
     Expect(1, 65380, '\P{isclosepunctuation}', "");
     Expect(0, 65380, '\P{^isclosepunctuation}', "");
-    Expect(1, 65379, '\p{_	Is_Close_PUNCTUATION}', "");
-    Expect(0, 65379, '\p{^_	Is_Close_PUNCTUATION}', "");
-    Expect(0, 65379, '\P{_	Is_Close_PUNCTUATION}', "");
-    Expect(1, 65379, '\P{^_	Is_Close_PUNCTUATION}', "");
-    Expect(0, 65380, '\p{_	Is_Close_PUNCTUATION}', "");
-    Expect(1, 65380, '\p{^_	Is_Close_PUNCTUATION}', "");
-    Expect(1, 65380, '\P{_	Is_Close_PUNCTUATION}', "");
-    Expect(0, 65380, '\P{^_	Is_Close_PUNCTUATION}', "");
-    Error('\p{_ PE/a/}');
-    Error('\P{_ PE/a/}');
+    Expect(1, 65379, '\p{  Is_Close_PUNCTUATION}', "");
+    Expect(0, 65379, '\p{^  Is_Close_PUNCTUATION}', "");
+    Expect(0, 65379, '\P{  Is_Close_PUNCTUATION}', "");
+    Expect(1, 65379, '\P{^  Is_Close_PUNCTUATION}', "");
+    Expect(0, 65380, '\p{  Is_Close_PUNCTUATION}', "");
+    Expect(1, 65380, '\p{^  Is_Close_PUNCTUATION}', "");
+    Expect(1, 65380, '\P{  Is_Close_PUNCTUATION}', "");
+    Expect(0, 65380, '\P{^  Is_Close_PUNCTUATION}', "");
+    Error('\p{:=	_Pe}');
+    Error('\P{:=	_Pe}');
     Expect(1, 65379, '\p{pe}', "");
     Expect(0, 65379, '\p{^pe}', "");
     Expect(0, 65379, '\P{pe}', "");
@@ -92843,16 +93657,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^pe}', "");
     Expect(1, 65380, '\P{pe}', "");
     Expect(0, 65380, '\P{^pe}', "");
-    Expect(1, 65379, '\p{_ Pe}', "");
-    Expect(0, 65379, '\p{^_ Pe}', "");
-    Expect(0, 65379, '\P{_ Pe}', "");
-    Expect(1, 65379, '\P{^_ Pe}', "");
-    Expect(0, 65380, '\p{_ Pe}', "");
-    Expect(1, 65380, '\p{^_ Pe}', "");
-    Expect(1, 65380, '\P{_ Pe}', "");
-    Expect(0, 65380, '\P{^_ Pe}', "");
-    Error('\p{		IS_Pe:=}');
-    Error('\P{		IS_Pe:=}');
+    Expect(1, 65379, '\p{	-Pe}', "");
+    Expect(0, 65379, '\p{^	-Pe}', "");
+    Expect(0, 65379, '\P{	-Pe}', "");
+    Expect(1, 65379, '\P{^	-Pe}', "");
+    Expect(0, 65380, '\p{	-Pe}', "");
+    Expect(1, 65380, '\p{^	-Pe}', "");
+    Expect(1, 65380, '\P{	-Pe}', "");
+    Expect(0, 65380, '\P{^	-Pe}', "");
+    Error('\p{ is_pe:=}');
+    Error('\P{ is_pe:=}');
     Expect(1, 65379, '\p{ispe}', "");
     Expect(0, 65379, '\p{^ispe}', "");
     Expect(0, 65379, '\P{ispe}', "");
@@ -92861,16 +93675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^ispe}', "");
     Expect(1, 65380, '\P{ispe}', "");
     Expect(0, 65380, '\P{^ispe}', "");
-    Expect(1, 65379, '\p{	is_PE}', "");
-    Expect(0, 65379, '\p{^	is_PE}', "");
-    Expect(0, 65379, '\P{	is_PE}', "");
-    Expect(1, 65379, '\P{^	is_PE}', "");
-    Expect(0, 65380, '\p{	is_PE}', "");
-    Expect(1, 65380, '\p{^	is_PE}', "");
-    Expect(1, 65380, '\P{	is_PE}', "");
-    Expect(0, 65380, '\P{^	is_PE}', "");
-    Error('\p{-:=xposixcntrl}');
-    Error('\P{-:=xposixcntrl}');
+    Expect(1, 65379, '\p{IS_pe}', "");
+    Expect(0, 65379, '\p{^IS_pe}', "");
+    Expect(0, 65379, '\P{IS_pe}', "");
+    Expect(1, 65379, '\P{^IS_pe}', "");
+    Expect(0, 65380, '\p{IS_pe}', "");
+    Expect(1, 65380, '\p{^IS_pe}', "");
+    Expect(1, 65380, '\P{IS_pe}', "");
+    Expect(0, 65380, '\P{^IS_pe}', "");
+    Error('\p{/a/_ XPosixCntrl}');
+    Error('\P{/a/_ XPosixCntrl}');
     Expect(1, 159, '\p{xposixcntrl}', "");
     Expect(0, 159, '\p{^xposixcntrl}', "");
     Expect(0, 159, '\P{xposixcntrl}', "");
@@ -92879,16 +93693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^xposixcntrl}', "");
     Expect(1, 160, '\P{xposixcntrl}', "");
     Expect(0, 160, '\P{^xposixcntrl}', "");
-    Expect(1, 159, '\p{--XPOSIXCNTRL}', "");
-    Expect(0, 159, '\p{^--XPOSIXCNTRL}', "");
-    Expect(0, 159, '\P{--XPOSIXCNTRL}', "");
-    Expect(1, 159, '\P{^--XPOSIXCNTRL}', "");
-    Expect(0, 160, '\p{--XPOSIXCNTRL}', "");
-    Expect(1, 160, '\p{^--XPOSIXCNTRL}', "");
-    Expect(1, 160, '\P{--XPOSIXCNTRL}', "");
-    Expect(0, 160, '\P{^--XPOSIXCNTRL}', "");
-    Error('\p{-:=cntrl}');
-    Error('\P{-:=cntrl}');
+    Expect(1, 159, '\p{__XPOSIXCNTRL}', "");
+    Expect(0, 159, '\p{^__XPOSIXCNTRL}', "");
+    Expect(0, 159, '\P{__XPOSIXCNTRL}', "");
+    Expect(1, 159, '\P{^__XPOSIXCNTRL}', "");
+    Expect(0, 160, '\p{__XPOSIXCNTRL}', "");
+    Expect(1, 160, '\p{^__XPOSIXCNTRL}', "");
+    Expect(1, 160, '\P{__XPOSIXCNTRL}', "");
+    Expect(0, 160, '\P{^__XPOSIXCNTRL}', "");
+    Error('\p{ :=CNTRL}');
+    Error('\P{ :=CNTRL}');
     Expect(1, 159, '\p{cntrl}', "");
     Expect(0, 159, '\p{^cntrl}', "");
     Expect(0, 159, '\P{cntrl}', "");
@@ -92897,16 +93711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^cntrl}', "");
     Expect(1, 160, '\P{cntrl}', "");
     Expect(0, 160, '\P{^cntrl}', "");
-    Expect(1, 159, '\p{	Cntrl}', "");
-    Expect(0, 159, '\p{^	Cntrl}', "");
-    Expect(0, 159, '\P{	Cntrl}', "");
-    Expect(1, 159, '\P{^	Cntrl}', "");
-    Expect(0, 160, '\p{	Cntrl}', "");
-    Expect(1, 160, '\p{^	Cntrl}', "");
-    Expect(1, 160, '\P{	Cntrl}', "");
-    Expect(0, 160, '\P{^	Cntrl}', "");
-    Error('\p{/a/-	Is_xposixcntrl}');
-    Error('\P{/a/-	Is_xposixcntrl}');
+    Expect(1, 159, '\p{	cntrl}', "");
+    Expect(0, 159, '\p{^	cntrl}', "");
+    Expect(0, 159, '\P{	cntrl}', "");
+    Expect(1, 159, '\P{^	cntrl}', "");
+    Expect(0, 160, '\p{	cntrl}', "");
+    Expect(1, 160, '\p{^	cntrl}', "");
+    Expect(1, 160, '\P{	cntrl}', "");
+    Expect(0, 160, '\P{^	cntrl}', "");
+    Error('\p{/a/-_Is_XPOSIXCNTRL}');
+    Error('\P{/a/-_Is_XPOSIXCNTRL}');
     Expect(1, 159, '\p{isxposixcntrl}', "");
     Expect(0, 159, '\p{^isxposixcntrl}', "");
     Expect(0, 159, '\P{isxposixcntrl}', "");
@@ -92915,16 +93729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^isxposixcntrl}', "");
     Expect(1, 160, '\P{isxposixcntrl}', "");
     Expect(0, 160, '\P{^isxposixcntrl}', "");
-    Expect(1, 159, '\p{- Is_xposixcntrl}', "");
-    Expect(0, 159, '\p{^- Is_xposixcntrl}', "");
-    Expect(0, 159, '\P{- Is_xposixcntrl}', "");
-    Expect(1, 159, '\P{^- Is_xposixcntrl}', "");
-    Expect(0, 160, '\p{- Is_xposixcntrl}', "");
-    Expect(1, 160, '\p{^- Is_xposixcntrl}', "");
-    Expect(1, 160, '\P{- Is_xposixcntrl}', "");
-    Expect(0, 160, '\P{^- Is_xposixcntrl}', "");
-    Error('\p{ -Is_CNTRL:=}');
-    Error('\P{ -Is_CNTRL:=}');
+    Expect(1, 159, '\p{	 Is_XPosixCntrl}', "");
+    Expect(0, 159, '\p{^	 Is_XPosixCntrl}', "");
+    Expect(0, 159, '\P{	 Is_XPosixCntrl}', "");
+    Expect(1, 159, '\P{^	 Is_XPosixCntrl}', "");
+    Expect(0, 160, '\p{	 Is_XPosixCntrl}', "");
+    Expect(1, 160, '\p{^	 Is_XPosixCntrl}', "");
+    Expect(1, 160, '\P{	 Is_XPosixCntrl}', "");
+    Expect(0, 160, '\P{^	 Is_XPosixCntrl}', "");
+    Error('\p{_ Is_Cntrl/a/}');
+    Error('\P{_ Is_Cntrl/a/}');
     Expect(1, 159, '\p{iscntrl}', "");
     Expect(0, 159, '\p{^iscntrl}', "");
     Expect(0, 159, '\P{iscntrl}', "");
@@ -92933,16 +93747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^iscntrl}', "");
     Expect(1, 160, '\P{iscntrl}', "");
     Expect(0, 160, '\P{^iscntrl}', "");
-    Expect(1, 159, '\p{_IS_Cntrl}', "");
-    Expect(0, 159, '\p{^_IS_Cntrl}', "");
-    Expect(0, 159, '\P{_IS_Cntrl}', "");
-    Expect(1, 159, '\P{^_IS_Cntrl}', "");
-    Expect(0, 160, '\p{_IS_Cntrl}', "");
-    Expect(1, 160, '\p{^_IS_Cntrl}', "");
-    Expect(1, 160, '\P{_IS_Cntrl}', "");
-    Expect(0, 160, '\P{^_IS_Cntrl}', "");
-    Error('\p{/a/ 	Control}');
-    Error('\P{/a/ 	Control}');
+    Expect(1, 159, '\p{ 	IS_cntrl}', "");
+    Expect(0, 159, '\p{^ 	IS_cntrl}', "");
+    Expect(0, 159, '\P{ 	IS_cntrl}', "");
+    Expect(1, 159, '\P{^ 	IS_cntrl}', "");
+    Expect(0, 160, '\p{ 	IS_cntrl}', "");
+    Expect(1, 160, '\p{^ 	IS_cntrl}', "");
+    Expect(1, 160, '\P{ 	IS_cntrl}', "");
+    Expect(0, 160, '\P{^ 	IS_cntrl}', "");
+    Error('\p{	:=CONTROL}');
+    Error('\P{	:=CONTROL}');
     Expect(1, 159, '\p{control}', "");
     Expect(0, 159, '\p{^control}', "");
     Expect(0, 159, '\P{control}', "");
@@ -92951,16 +93765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^control}', "");
     Expect(1, 160, '\P{control}', "");
     Expect(0, 160, '\P{^control}', "");
-    Expect(1, 159, '\p{ CONTROL}', "");
-    Expect(0, 159, '\p{^ CONTROL}', "");
-    Expect(0, 159, '\P{ CONTROL}', "");
-    Expect(1, 159, '\P{^ CONTROL}', "");
-    Expect(0, 160, '\p{ CONTROL}', "");
-    Expect(1, 160, '\p{^ CONTROL}', "");
-    Expect(1, 160, '\P{ CONTROL}', "");
-    Expect(0, 160, '\P{^ CONTROL}', "");
-    Error('\p{_:=Is_Control}');
-    Error('\P{_:=Is_Control}');
+    Expect(1, 159, '\p{_-CONTROL}', "");
+    Expect(0, 159, '\p{^_-CONTROL}', "");
+    Expect(0, 159, '\P{_-CONTROL}', "");
+    Expect(1, 159, '\P{^_-CONTROL}', "");
+    Expect(0, 160, '\p{_-CONTROL}', "");
+    Expect(1, 160, '\p{^_-CONTROL}', "");
+    Expect(1, 160, '\P{_-CONTROL}', "");
+    Expect(0, 160, '\P{^_-CONTROL}', "");
+    Error('\p{	Is_Control/a/}');
+    Error('\P{	Is_Control/a/}');
     Expect(1, 159, '\p{iscontrol}', "");
     Expect(0, 159, '\p{^iscontrol}', "");
     Expect(0, 159, '\P{iscontrol}', "");
@@ -92969,16 +93783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^iscontrol}', "");
     Expect(1, 160, '\P{iscontrol}', "");
     Expect(0, 160, '\P{^iscontrol}', "");
-    Expect(1, 159, '\p{	Is_CONTROL}', "");
-    Expect(0, 159, '\p{^	Is_CONTROL}', "");
-    Expect(0, 159, '\P{	Is_CONTROL}', "");
-    Expect(1, 159, '\P{^	Is_CONTROL}', "");
-    Expect(0, 160, '\p{	Is_CONTROL}', "");
-    Expect(1, 160, '\p{^	Is_CONTROL}', "");
-    Expect(1, 160, '\P{	Is_CONTROL}', "");
-    Expect(0, 160, '\P{^	Is_CONTROL}', "");
-    Error('\p{:=__Cc}');
-    Error('\P{:=__Cc}');
+    Expect(1, 159, '\p{- is_control}', "");
+    Expect(0, 159, '\p{^- is_control}', "");
+    Expect(0, 159, '\P{- is_control}', "");
+    Expect(1, 159, '\P{^- is_control}', "");
+    Expect(0, 160, '\p{- is_control}', "");
+    Expect(1, 160, '\p{^- is_control}', "");
+    Expect(1, 160, '\P{- is_control}', "");
+    Expect(0, 160, '\P{^- is_control}', "");
+    Error('\p{-_Cc/a/}');
+    Error('\P{-_Cc/a/}');
     Expect(1, 159, '\p{cc}', "");
     Expect(0, 159, '\p{^cc}', "");
     Expect(0, 159, '\P{cc}', "");
@@ -92987,16 +93801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^cc}', "");
     Expect(1, 160, '\P{cc}', "");
     Expect(0, 160, '\P{^cc}', "");
-    Expect(1, 159, '\p{_Cc}', "");
-    Expect(0, 159, '\p{^_Cc}', "");
-    Expect(0, 159, '\P{_Cc}', "");
-    Expect(1, 159, '\P{^_Cc}', "");
-    Expect(0, 160, '\p{_Cc}', "");
-    Expect(1, 160, '\p{^_Cc}', "");
-    Expect(1, 160, '\P{_Cc}', "");
-    Expect(0, 160, '\P{^_Cc}', "");
-    Error('\p{	 is_cc:=}');
-    Error('\P{	 is_cc:=}');
+    Expect(1, 159, '\p{- CC}', "");
+    Expect(0, 159, '\p{^- CC}', "");
+    Expect(0, 159, '\P{- CC}', "");
+    Expect(1, 159, '\P{^- CC}', "");
+    Expect(0, 160, '\p{- CC}', "");
+    Expect(1, 160, '\p{^- CC}', "");
+    Expect(1, 160, '\P{- CC}', "");
+    Expect(0, 160, '\P{^- CC}', "");
+    Error('\p{_:=Is_Cc}');
+    Error('\P{_:=Is_Cc}');
     Expect(1, 159, '\p{iscc}', "");
     Expect(0, 159, '\p{^iscc}', "");
     Expect(0, 159, '\P{iscc}', "");
@@ -93005,16 +93819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 160, '\p{^iscc}', "");
     Expect(1, 160, '\P{iscc}', "");
     Expect(0, 160, '\P{^iscc}', "");
-    Expect(1, 159, '\p{-IS_CC}', "");
-    Expect(0, 159, '\p{^-IS_CC}', "");
-    Expect(0, 159, '\P{-IS_CC}', "");
-    Expect(1, 159, '\P{^-IS_CC}', "");
-    Expect(0, 160, '\p{-IS_CC}', "");
-    Expect(1, 160, '\p{^-IS_CC}', "");
-    Expect(1, 160, '\P{-IS_CC}', "");
-    Expect(0, 160, '\P{^-IS_CC}', "");
-    Error('\p{-_Combining_Diacritical_Marks:=}');
-    Error('\P{-_Combining_Diacritical_Marks:=}');
+    Expect(1, 159, '\p{_Is_CC}', "");
+    Expect(0, 159, '\p{^_Is_CC}', "");
+    Expect(0, 159, '\P{_Is_CC}', "");
+    Expect(1, 159, '\P{^_Is_CC}', "");
+    Expect(0, 160, '\p{_Is_CC}', "");
+    Expect(1, 160, '\p{^_Is_CC}', "");
+    Expect(1, 160, '\P{_Is_CC}', "");
+    Expect(0, 160, '\P{^_Is_CC}', "");
+    Error('\p{--COMBINING_Diacritical_MARKS:=}');
+    Error('\P{--COMBINING_Diacritical_MARKS:=}');
     Expect(1, 879, '\p{combiningdiacriticalmarks}', "");
     Expect(0, 879, '\p{^combiningdiacriticalmarks}', "");
     Expect(0, 879, '\P{combiningdiacriticalmarks}', "");
@@ -93023,16 +93837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 880, '\p{^combiningdiacriticalmarks}', "");
     Expect(1, 880, '\P{combiningdiacriticalmarks}', "");
     Expect(0, 880, '\P{^combiningdiacriticalmarks}', "");
-    Expect(1, 879, '\p{ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(0, 879, '\p{^ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(0, 879, '\P{ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(1, 879, '\P{^ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(0, 880, '\p{ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(1, 880, '\p{^ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(1, 880, '\P{ COMBINING_DIACRITICAL_Marks}', "");
-    Expect(0, 880, '\P{^ COMBINING_DIACRITICAL_Marks}', "");
-    Error('\p{	:=Is_combining_diacritical_Marks}');
-    Error('\P{	:=Is_combining_diacritical_Marks}');
+    Expect(1, 879, '\p{-	Combining_Diacritical_marks}', "");
+    Expect(0, 879, '\p{^-	Combining_Diacritical_marks}', "");
+    Expect(0, 879, '\P{-	Combining_Diacritical_marks}', "");
+    Expect(1, 879, '\P{^-	Combining_Diacritical_marks}', "");
+    Expect(0, 880, '\p{-	Combining_Diacritical_marks}', "");
+    Expect(1, 880, '\p{^-	Combining_Diacritical_marks}', "");
+    Expect(1, 880, '\P{-	Combining_Diacritical_marks}', "");
+    Expect(0, 880, '\P{^-	Combining_Diacritical_marks}', "");
+    Error('\p{-IS_Combining_DIACRITICAL_Marks/a/}');
+    Error('\P{-IS_Combining_DIACRITICAL_Marks/a/}');
     Expect(1, 879, '\p{iscombiningdiacriticalmarks}', "");
     Expect(0, 879, '\p{^iscombiningdiacriticalmarks}', "");
     Expect(0, 879, '\P{iscombiningdiacriticalmarks}', "");
@@ -93041,16 +93855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 880, '\p{^iscombiningdiacriticalmarks}', "");
     Expect(1, 880, '\P{iscombiningdiacriticalmarks}', "");
     Expect(0, 880, '\P{^iscombiningdiacriticalmarks}', "");
-    Expect(1, 879, '\p{ _IS_Combining_Diacritical_Marks}', "");
-    Expect(0, 879, '\p{^ _IS_Combining_Diacritical_Marks}', "");
-    Expect(0, 879, '\P{ _IS_Combining_Diacritical_Marks}', "");
-    Expect(1, 879, '\P{^ _IS_Combining_Diacritical_Marks}', "");
-    Expect(0, 880, '\p{ _IS_Combining_Diacritical_Marks}', "");
-    Expect(1, 880, '\p{^ _IS_Combining_Diacritical_Marks}', "");
-    Expect(1, 880, '\P{ _IS_Combining_Diacritical_Marks}', "");
-    Expect(0, 880, '\P{^ _IS_Combining_Diacritical_Marks}', "");
-    Error('\p{	_In_COMBINING_Diacritical_Marks:=}');
-    Error('\P{	_In_COMBINING_Diacritical_Marks:=}');
+    Expect(1, 879, '\p{ is_Combining_Diacritical_marks}', "");
+    Expect(0, 879, '\p{^ is_Combining_Diacritical_marks}', "");
+    Expect(0, 879, '\P{ is_Combining_Diacritical_marks}', "");
+    Expect(1, 879, '\P{^ is_Combining_Diacritical_marks}', "");
+    Expect(0, 880, '\p{ is_Combining_Diacritical_marks}', "");
+    Expect(1, 880, '\p{^ is_Combining_Diacritical_marks}', "");
+    Expect(1, 880, '\P{ is_Combining_Diacritical_marks}', "");
+    Expect(0, 880, '\P{^ is_Combining_Diacritical_marks}', "");
+    Error('\p{	:=In_COMBINING_Diacritical_Marks}');
+    Error('\P{	:=In_COMBINING_Diacritical_Marks}');
     Expect(1, 879, '\p{incombiningdiacriticalmarks}', "");
     Expect(0, 879, '\p{^incombiningdiacriticalmarks}', "");
     Expect(0, 879, '\P{incombiningdiacriticalmarks}', "");
@@ -93059,16 +93873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 880, '\p{^incombiningdiacriticalmarks}', "");
     Expect(1, 880, '\P{incombiningdiacriticalmarks}', "");
     Expect(0, 880, '\P{^incombiningdiacriticalmarks}', "");
-    Expect(1, 879, '\p{ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(0, 879, '\p{^ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(0, 879, '\P{ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(1, 879, '\P{^ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(0, 880, '\p{ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(1, 880, '\p{^ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(1, 880, '\P{ -In_Combining_DIACRITICAL_marks}', "");
-    Expect(0, 880, '\P{^ -In_Combining_DIACRITICAL_marks}', "");
-    Error('\p{/a/		diacriticals}');
-    Error('\P{/a/		diacriticals}');
+    Expect(1, 879, '\p{	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(0, 879, '\p{^	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(0, 879, '\P{	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(1, 879, '\P{^	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(0, 880, '\p{	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(1, 880, '\p{^	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(1, 880, '\P{	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Expect(0, 880, '\P{^	-In_COMBINING_DIACRITICAL_Marks}', "");
+    Error('\p{ 	Diacriticals/a/}');
+    Error('\P{ 	Diacriticals/a/}');
     Expect(1, 879, '\p{diacriticals}', "");
     Expect(0, 879, '\p{^diacriticals}', "");
     Expect(0, 879, '\P{diacriticals}', "");
@@ -93077,16 +93891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 880, '\p{^diacriticals}', "");
     Expect(1, 880, '\P{diacriticals}', "");
     Expect(0, 880, '\P{^diacriticals}', "");
-    Expect(1, 879, '\p{-diacriticals}', "");
-    Expect(0, 879, '\p{^-diacriticals}', "");
-    Expect(0, 879, '\P{-diacriticals}', "");
-    Expect(1, 879, '\P{^-diacriticals}', "");
-    Expect(0, 880, '\p{-diacriticals}', "");
-    Expect(1, 880, '\p{^-diacriticals}', "");
-    Expect(1, 880, '\P{-diacriticals}', "");
-    Expect(0, 880, '\P{^-diacriticals}', "");
-    Error('\p{_Is_diacriticals:=}');
-    Error('\P{_Is_diacriticals:=}');
+    Expect(1, 879, '\p{	diacriticals}', "");
+    Expect(0, 879, '\p{^	diacriticals}', "");
+    Expect(0, 879, '\P{	diacriticals}', "");
+    Expect(1, 879, '\P{^	diacriticals}', "");
+    Expect(0, 880, '\p{	diacriticals}', "");
+    Expect(1, 880, '\p{^	diacriticals}', "");
+    Expect(1, 880, '\P{	diacriticals}', "");
+    Expect(0, 880, '\P{^	diacriticals}', "");
+    Error('\p{/a/IS_diacriticals}');
+    Error('\P{/a/IS_diacriticals}');
     Expect(1, 879, '\p{isdiacriticals}', "");
     Expect(0, 879, '\p{^isdiacriticals}', "");
     Expect(0, 879, '\P{isdiacriticals}', "");
@@ -93095,16 +93909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 880, '\p{^isdiacriticals}', "");
     Expect(1, 880, '\P{isdiacriticals}', "");
     Expect(0, 880, '\P{^isdiacriticals}', "");
-    Expect(1, 879, '\p{- is_diacriticals}', "");
-    Expect(0, 879, '\p{^- is_diacriticals}', "");
-    Expect(0, 879, '\P{- is_diacriticals}', "");
-    Expect(1, 879, '\P{^- is_diacriticals}', "");
-    Expect(0, 880, '\p{- is_diacriticals}', "");
-    Expect(1, 880, '\p{^- is_diacriticals}', "");
-    Expect(1, 880, '\P{- is_diacriticals}', "");
-    Expect(0, 880, '\P{^- is_diacriticals}', "");
-    Error('\p{- in_Diacriticals/a/}');
-    Error('\P{- in_Diacriticals/a/}');
+    Expect(1, 879, '\p{ 	Is_diacriticals}', "");
+    Expect(0, 879, '\p{^ 	Is_diacriticals}', "");
+    Expect(0, 879, '\P{ 	Is_diacriticals}', "");
+    Expect(1, 879, '\P{^ 	Is_diacriticals}', "");
+    Expect(0, 880, '\p{ 	Is_diacriticals}', "");
+    Expect(1, 880, '\p{^ 	Is_diacriticals}', "");
+    Expect(1, 880, '\P{ 	Is_diacriticals}', "");
+    Expect(0, 880, '\P{^ 	Is_diacriticals}', "");
+    Error('\p{:= IN_Diacriticals}');
+    Error('\P{:= IN_Diacriticals}');
     Expect(1, 879, '\p{indiacriticals}', "");
     Expect(0, 879, '\p{^indiacriticals}', "");
     Expect(0, 879, '\P{indiacriticals}', "");
@@ -93113,16 +93927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 880, '\p{^indiacriticals}', "");
     Expect(1, 880, '\P{indiacriticals}', "");
     Expect(0, 880, '\P{^indiacriticals}', "");
-    Expect(1, 879, '\p{	in_diacriticals}', "");
-    Expect(0, 879, '\p{^	in_diacriticals}', "");
-    Expect(0, 879, '\P{	in_diacriticals}', "");
-    Expect(1, 879, '\P{^	in_diacriticals}', "");
-    Expect(0, 880, '\p{	in_diacriticals}', "");
-    Expect(1, 880, '\p{^	in_diacriticals}', "");
-    Expect(1, 880, '\P{	in_diacriticals}', "");
-    Expect(0, 880, '\P{^	in_diacriticals}', "");
-    Error('\p{-/a/COMBINING_Diacritical_marks_EXTENDED}');
-    Error('\P{-/a/COMBINING_Diacritical_marks_EXTENDED}');
+    Expect(1, 879, '\p{ In_DIACRITICALS}', "");
+    Expect(0, 879, '\p{^ In_DIACRITICALS}', "");
+    Expect(0, 879, '\P{ In_DIACRITICALS}', "");
+    Expect(1, 879, '\P{^ In_DIACRITICALS}', "");
+    Expect(0, 880, '\p{ In_DIACRITICALS}', "");
+    Expect(1, 880, '\p{^ In_DIACRITICALS}', "");
+    Expect(1, 880, '\P{ In_DIACRITICALS}', "");
+    Expect(0, 880, '\P{^ In_DIACRITICALS}', "");
+    Error('\p{/a/ _combining_Diacritical_Marks_extended}');
+    Error('\P{/a/ _combining_Diacritical_Marks_extended}');
     Expect(1, 6911, '\p{combiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\p{^combiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\P{combiningdiacriticalmarksextended}', "");
@@ -93131,16 +93945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6912, '\p{^combiningdiacriticalmarksextended}', "");
     Expect(1, 6912, '\P{combiningdiacriticalmarksextended}', "");
     Expect(0, 6912, '\P{^combiningdiacriticalmarksextended}', "");
-    Expect(1, 6911, '\p{ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(0, 6911, '\p{^ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(0, 6911, '\P{ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(1, 6911, '\P{^ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(0, 6912, '\p{ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(1, 6912, '\p{^ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(1, 6912, '\P{ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Expect(0, 6912, '\P{^ COMBINING_diacritical_Marks_EXTENDED}', "");
-    Error('\p{/a/-	IS_Combining_DIACRITICAL_MARKS_Extended}');
-    Error('\P{/a/-	IS_Combining_DIACRITICAL_MARKS_Extended}');
+    Expect(1, 6911, '\p{--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(0, 6911, '\p{^--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(0, 6911, '\P{--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(1, 6911, '\P{^--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(0, 6912, '\p{--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(1, 6912, '\p{^--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(1, 6912, '\P{--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Expect(0, 6912, '\P{^--COMBINING_DIACRITICAL_Marks_extended}', "");
+    Error('\p{	/a/Is_COMBINING_DIACRITICAL_Marks_Extended}');
+    Error('\P{	/a/Is_COMBINING_DIACRITICAL_Marks_Extended}');
     Expect(1, 6911, '\p{iscombiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\p{^iscombiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\P{iscombiningdiacriticalmarksextended}', "");
@@ -93149,16 +93963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6912, '\p{^iscombiningdiacriticalmarksextended}', "");
     Expect(1, 6912, '\P{iscombiningdiacriticalmarksextended}', "");
     Expect(0, 6912, '\P{^iscombiningdiacriticalmarksextended}', "");
-    Expect(1, 6911, '\p{_Is_Combining_diacritical_marks_extended}', "");
-    Expect(0, 6911, '\p{^_Is_Combining_diacritical_marks_extended}', "");
-    Expect(0, 6911, '\P{_Is_Combining_diacritical_marks_extended}', "");
-    Expect(1, 6911, '\P{^_Is_Combining_diacritical_marks_extended}', "");
-    Expect(0, 6912, '\p{_Is_Combining_diacritical_marks_extended}', "");
-    Expect(1, 6912, '\p{^_Is_Combining_diacritical_marks_extended}', "");
-    Expect(1, 6912, '\P{_Is_Combining_diacritical_marks_extended}', "");
-    Expect(0, 6912, '\P{^_Is_Combining_diacritical_marks_extended}', "");
-    Error('\p{ /a/In_combining_diacritical_Marks_Extended}');
-    Error('\P{ /a/In_combining_diacritical_Marks_Extended}');
+    Expect(1, 6911, '\p{-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(0, 6911, '\p{^-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(0, 6911, '\P{-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(1, 6911, '\P{^-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(0, 6912, '\p{-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(1, 6912, '\p{^-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(1, 6912, '\P{-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Expect(0, 6912, '\P{^-_Is_Combining_Diacritical_MARKS_Extended}', "");
+    Error('\p{	IN_combining_Diacritical_Marks_extended/a/}');
+    Error('\P{	IN_combining_Diacritical_Marks_extended/a/}');
     Expect(1, 6911, '\p{incombiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\p{^incombiningdiacriticalmarksextended}', "");
     Expect(0, 6911, '\P{incombiningdiacriticalmarksextended}', "");
@@ -93167,16 +93981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6912, '\p{^incombiningdiacriticalmarksextended}', "");
     Expect(1, 6912, '\P{incombiningdiacriticalmarksextended}', "");
     Expect(0, 6912, '\P{^incombiningdiacriticalmarksextended}', "");
-    Expect(1, 6911, '\p{  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(0, 6911, '\p{^  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(0, 6911, '\P{  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(1, 6911, '\P{^  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(0, 6912, '\p{  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(1, 6912, '\p{^  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(1, 6912, '\P{  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Expect(0, 6912, '\P{^  IN_combining_Diacritical_MARKS_EXTENDED}', "");
-    Error('\p{ /a/diacriticals_Ext}');
-    Error('\P{ /a/diacriticals_Ext}');
+    Expect(1, 6911, '\p{_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(0, 6911, '\p{^_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(0, 6911, '\P{_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(1, 6911, '\P{^_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(0, 6912, '\p{_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(1, 6912, '\p{^_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(1, 6912, '\P{_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Expect(0, 6912, '\P{^_IN_Combining_DIACRITICAL_MARKS_EXTENDED}', "");
+    Error('\p{	 Diacriticals_Ext/a/}');
+    Error('\P{	 Diacriticals_Ext/a/}');
     Expect(1, 6911, '\p{diacriticalsext}', "");
     Expect(0, 6911, '\p{^diacriticalsext}', "");
     Expect(0, 6911, '\P{diacriticalsext}', "");
@@ -93185,16 +93999,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6912, '\p{^diacriticalsext}', "");
     Expect(1, 6912, '\P{diacriticalsext}', "");
     Expect(0, 6912, '\P{^diacriticalsext}', "");
-    Expect(1, 6911, '\p{ 	Diacriticals_EXT}', "");
-    Expect(0, 6911, '\p{^ 	Diacriticals_EXT}', "");
-    Expect(0, 6911, '\P{ 	Diacriticals_EXT}', "");
-    Expect(1, 6911, '\P{^ 	Diacriticals_EXT}', "");
-    Expect(0, 6912, '\p{ 	Diacriticals_EXT}', "");
-    Expect(1, 6912, '\p{^ 	Diacriticals_EXT}', "");
-    Expect(1, 6912, '\P{ 	Diacriticals_EXT}', "");
-    Expect(0, 6912, '\P{^ 	Diacriticals_EXT}', "");
-    Error('\p{ IS_DIACRITICALS_Ext/a/}');
-    Error('\P{ IS_DIACRITICALS_Ext/a/}');
+    Expect(1, 6911, '\p{ 	diacriticals_EXT}', "");
+    Expect(0, 6911, '\p{^ 	diacriticals_EXT}', "");
+    Expect(0, 6911, '\P{ 	diacriticals_EXT}', "");
+    Expect(1, 6911, '\P{^ 	diacriticals_EXT}', "");
+    Expect(0, 6912, '\p{ 	diacriticals_EXT}', "");
+    Expect(1, 6912, '\p{^ 	diacriticals_EXT}', "");
+    Expect(1, 6912, '\P{ 	diacriticals_EXT}', "");
+    Expect(0, 6912, '\P{^ 	diacriticals_EXT}', "");
+    Error('\p{	:=Is_DIACRITICALS_ext}');
+    Error('\P{	:=Is_DIACRITICALS_ext}');
     Expect(1, 6911, '\p{isdiacriticalsext}', "");
     Expect(0, 6911, '\p{^isdiacriticalsext}', "");
     Expect(0, 6911, '\P{isdiacriticalsext}', "");
@@ -93203,16 +94017,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6912, '\p{^isdiacriticalsext}', "");
     Expect(1, 6912, '\P{isdiacriticalsext}', "");
     Expect(0, 6912, '\P{^isdiacriticalsext}', "");
-    Expect(1, 6911, '\p{	Is_Diacriticals_Ext}', "");
-    Expect(0, 6911, '\p{^	Is_Diacriticals_Ext}', "");
-    Expect(0, 6911, '\P{	Is_Diacriticals_Ext}', "");
-    Expect(1, 6911, '\P{^	Is_Diacriticals_Ext}', "");
-    Expect(0, 6912, '\p{	Is_Diacriticals_Ext}', "");
-    Expect(1, 6912, '\p{^	Is_Diacriticals_Ext}', "");
-    Expect(1, 6912, '\P{	Is_Diacriticals_Ext}', "");
-    Expect(0, 6912, '\P{^	Is_Diacriticals_Ext}', "");
-    Error('\p{_ in_diacriticals_ext/a/}');
-    Error('\P{_ in_diacriticals_ext/a/}');
+    Expect(1, 6911, '\p{_	IS_Diacriticals_ext}', "");
+    Expect(0, 6911, '\p{^_	IS_Diacriticals_ext}', "");
+    Expect(0, 6911, '\P{_	IS_Diacriticals_ext}', "");
+    Expect(1, 6911, '\P{^_	IS_Diacriticals_ext}', "");
+    Expect(0, 6912, '\p{_	IS_Diacriticals_ext}', "");
+    Expect(1, 6912, '\p{^_	IS_Diacriticals_ext}', "");
+    Expect(1, 6912, '\P{_	IS_Diacriticals_ext}', "");
+    Expect(0, 6912, '\P{^_	IS_Diacriticals_ext}', "");
+    Error('\p{:=	 In_Diacriticals_Ext}');
+    Error('\P{:=	 In_Diacriticals_Ext}');
     Expect(1, 6911, '\p{indiacriticalsext}', "");
     Expect(0, 6911, '\p{^indiacriticalsext}', "");
     Expect(0, 6911, '\P{indiacriticalsext}', "");
@@ -93221,16 +94035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6912, '\p{^indiacriticalsext}', "");
     Expect(1, 6912, '\P{indiacriticalsext}', "");
     Expect(0, 6912, '\P{^indiacriticalsext}', "");
-    Expect(1, 6911, '\p{ In_diacriticals_Ext}', "");
-    Expect(0, 6911, '\p{^ In_diacriticals_Ext}', "");
-    Expect(0, 6911, '\P{ In_diacriticals_Ext}', "");
-    Expect(1, 6911, '\P{^ In_diacriticals_Ext}', "");
-    Expect(0, 6912, '\p{ In_diacriticals_Ext}', "");
-    Expect(1, 6912, '\p{^ In_diacriticals_Ext}', "");
-    Expect(1, 6912, '\P{ In_diacriticals_Ext}', "");
-    Expect(0, 6912, '\P{^ In_diacriticals_Ext}', "");
-    Error('\p{:=-COMBINING_DIACRITICAL_MARKS_for_symbols}');
-    Error('\P{:=-COMBINING_DIACRITICAL_MARKS_for_symbols}');
+    Expect(1, 6911, '\p{__In_DIACRITICALS_Ext}', "");
+    Expect(0, 6911, '\p{^__In_DIACRITICALS_Ext}', "");
+    Expect(0, 6911, '\P{__In_DIACRITICALS_Ext}', "");
+    Expect(1, 6911, '\P{^__In_DIACRITICALS_Ext}', "");
+    Expect(0, 6912, '\p{__In_DIACRITICALS_Ext}', "");
+    Expect(1, 6912, '\p{^__In_DIACRITICALS_Ext}', "");
+    Expect(1, 6912, '\P{__In_DIACRITICALS_Ext}', "");
+    Expect(0, 6912, '\P{^__In_DIACRITICALS_Ext}', "");
+    Error('\p{/a/Combining_Diacritical_marks_FOR_SYMBOLS}');
+    Error('\P{/a/Combining_Diacritical_marks_FOR_SYMBOLS}');
     Expect(1, 8447, '\p{combiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\p{^combiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\P{combiningdiacriticalmarksforsymbols}', "");
@@ -93239,16 +94053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^combiningdiacriticalmarksforsymbols}', "");
     Expect(1, 8448, '\P{combiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8448, '\P{^combiningdiacriticalmarksforsymbols}', "");
-    Expect(1, 8447, '\p{ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(0, 8447, '\p{^ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(0, 8447, '\P{ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(1, 8447, '\P{^ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(0, 8448, '\p{ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(1, 8448, '\p{^ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(1, 8448, '\P{ -Combining_diacritical_Marks_For_symbols}', "");
-    Expect(0, 8448, '\P{^ -Combining_diacritical_Marks_For_symbols}', "");
-    Error('\p{ is_Combining_Diacritical_marks_For_Symbols/a/}');
-    Error('\P{ is_Combining_Diacritical_marks_For_Symbols/a/}');
+    Expect(1, 8447, '\p{_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(0, 8447, '\p{^_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(0, 8447, '\P{_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(1, 8447, '\P{^_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(0, 8448, '\p{_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(1, 8448, '\p{^_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(1, 8448, '\P{_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Expect(0, 8448, '\P{^_ Combining_DIACRITICAL_MARKS_FOR_symbols}', "");
+    Error('\p{:=Is_COMBINING_Diacritical_Marks_For_Symbols}');
+    Error('\P{:=Is_COMBINING_Diacritical_Marks_For_Symbols}');
     Expect(1, 8447, '\p{iscombiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\p{^iscombiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\P{iscombiningdiacriticalmarksforsymbols}', "");
@@ -93257,16 +94071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^iscombiningdiacriticalmarksforsymbols}', "");
     Expect(1, 8448, '\P{iscombiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8448, '\P{^iscombiningdiacriticalmarksforsymbols}', "");
-    Expect(1, 8447, '\p{  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(0, 8447, '\p{^  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(0, 8447, '\P{  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(1, 8447, '\P{^  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(0, 8448, '\p{  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(1, 8448, '\p{^  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(1, 8448, '\P{  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Expect(0, 8448, '\P{^  Is_COMBINING_diacritical_MARKS_For_SYMBOLS}', "");
-    Error('\p{/a/_ In_Combining_diacritical_MARKS_For_symbols}');
-    Error('\P{/a/_ In_Combining_diacritical_MARKS_For_symbols}');
+    Expect(1, 8447, '\p{_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(0, 8447, '\p{^_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(0, 8447, '\P{_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(1, 8447, '\P{^_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(0, 8448, '\p{_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(1, 8448, '\p{^_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(1, 8448, '\P{_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Expect(0, 8448, '\P{^_Is_Combining_DIACRITICAL_Marks_FOR_symbols}', "");
+    Error('\p{/a/	 in_Combining_Diacritical_MARKS_For_Symbols}');
+    Error('\P{/a/	 in_Combining_Diacritical_MARKS_For_Symbols}');
     Expect(1, 8447, '\p{incombiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\p{^incombiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8447, '\P{incombiningdiacriticalmarksforsymbols}', "");
@@ -93275,16 +94089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^incombiningdiacriticalmarksforsymbols}', "");
     Expect(1, 8448, '\P{incombiningdiacriticalmarksforsymbols}', "");
     Expect(0, 8448, '\P{^incombiningdiacriticalmarksforsymbols}', "");
-    Expect(1, 8447, '\p{ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(0, 8447, '\p{^ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(0, 8447, '\P{ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(1, 8447, '\P{^ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(0, 8448, '\p{ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(1, 8448, '\p{^ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(1, 8448, '\P{ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Expect(0, 8448, '\P{^ in_Combining_Diacritical_MARKS_for_symbols}', "");
-    Error('\p{ _DIACRITICALS_For_Symbols:=}');
-    Error('\P{ _DIACRITICALS_For_Symbols:=}');
+    Expect(1, 8447, '\p{	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8447, '\p{^	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8447, '\P{	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(1, 8447, '\P{^	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8448, '\p{	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(1, 8448, '\p{^	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(1, 8448, '\P{	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Expect(0, 8448, '\P{^	-IN_Combining_DIACRITICAL_marks_For_Symbols}', "");
+    Error('\p{:=_ Diacriticals_for_symbols}');
+    Error('\P{:=_ Diacriticals_for_symbols}');
     Expect(1, 8447, '\p{diacriticalsforsymbols}', "");
     Expect(0, 8447, '\p{^diacriticalsforsymbols}', "");
     Expect(0, 8447, '\P{diacriticalsforsymbols}', "");
@@ -93293,16 +94107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^diacriticalsforsymbols}', "");
     Expect(1, 8448, '\P{diacriticalsforsymbols}', "");
     Expect(0, 8448, '\P{^diacriticalsforsymbols}', "");
-    Expect(1, 8447, '\p{ -diacriticals_FOR_symbols}', "");
-    Expect(0, 8447, '\p{^ -diacriticals_FOR_symbols}', "");
-    Expect(0, 8447, '\P{ -diacriticals_FOR_symbols}', "");
-    Expect(1, 8447, '\P{^ -diacriticals_FOR_symbols}', "");
-    Expect(0, 8448, '\p{ -diacriticals_FOR_symbols}', "");
-    Expect(1, 8448, '\p{^ -diacriticals_FOR_symbols}', "");
-    Expect(1, 8448, '\P{ -diacriticals_FOR_symbols}', "");
-    Expect(0, 8448, '\P{^ -diacriticals_FOR_symbols}', "");
-    Error('\p{__Is_diacriticals_For_SYMBOLS/a/}');
-    Error('\P{__Is_diacriticals_For_SYMBOLS/a/}');
+    Expect(1, 8447, '\p{ diacriticals_FOR_Symbols}', "");
+    Expect(0, 8447, '\p{^ diacriticals_FOR_Symbols}', "");
+    Expect(0, 8447, '\P{ diacriticals_FOR_Symbols}', "");
+    Expect(1, 8447, '\P{^ diacriticals_FOR_Symbols}', "");
+    Expect(0, 8448, '\p{ diacriticals_FOR_Symbols}', "");
+    Expect(1, 8448, '\p{^ diacriticals_FOR_Symbols}', "");
+    Expect(1, 8448, '\P{ diacriticals_FOR_Symbols}', "");
+    Expect(0, 8448, '\P{^ diacriticals_FOR_Symbols}', "");
+    Error('\p{IS_DIACRITICALS_for_Symbols:=}');
+    Error('\P{IS_DIACRITICALS_for_Symbols:=}');
     Expect(1, 8447, '\p{isdiacriticalsforsymbols}', "");
     Expect(0, 8447, '\p{^isdiacriticalsforsymbols}', "");
     Expect(0, 8447, '\P{isdiacriticalsforsymbols}', "");
@@ -93311,16 +94125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^isdiacriticalsforsymbols}', "");
     Expect(1, 8448, '\P{isdiacriticalsforsymbols}', "");
     Expect(0, 8448, '\P{^isdiacriticalsforsymbols}', "");
-    Expect(1, 8447, '\p{ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(0, 8447, '\p{^ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(0, 8447, '\P{ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(1, 8447, '\P{^ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(0, 8448, '\p{ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(1, 8448, '\p{^ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(1, 8448, '\P{ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Expect(0, 8448, '\P{^ -Is_DIACRITICALS_for_SYMBOLS}', "");
-    Error('\p{_:=In_DIACRITICALS_For_Symbols}');
-    Error('\P{_:=In_DIACRITICALS_For_Symbols}');
+    Expect(1, 8447, '\p{	is_diacriticals_for_Symbols}', "");
+    Expect(0, 8447, '\p{^	is_diacriticals_for_Symbols}', "");
+    Expect(0, 8447, '\P{	is_diacriticals_for_Symbols}', "");
+    Expect(1, 8447, '\P{^	is_diacriticals_for_Symbols}', "");
+    Expect(0, 8448, '\p{	is_diacriticals_for_Symbols}', "");
+    Expect(1, 8448, '\p{^	is_diacriticals_for_Symbols}', "");
+    Expect(1, 8448, '\P{	is_diacriticals_for_Symbols}', "");
+    Expect(0, 8448, '\P{^	is_diacriticals_for_Symbols}', "");
+    Error('\p{	-In_diacriticals_for_Symbols:=}');
+    Error('\P{	-In_diacriticals_for_Symbols:=}');
     Expect(1, 8447, '\p{indiacriticalsforsymbols}', "");
     Expect(0, 8447, '\p{^indiacriticalsforsymbols}', "");
     Expect(0, 8447, '\P{indiacriticalsforsymbols}', "");
@@ -93329,16 +94143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^indiacriticalsforsymbols}', "");
     Expect(1, 8448, '\P{indiacriticalsforsymbols}', "");
     Expect(0, 8448, '\P{^indiacriticalsforsymbols}', "");
-    Expect(1, 8447, '\p{	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(0, 8447, '\p{^	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(0, 8447, '\P{	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(1, 8447, '\P{^	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(0, 8448, '\p{	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(1, 8448, '\p{^	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(1, 8448, '\P{	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Expect(0, 8448, '\P{^	_In_DIACRITICALS_For_SYMBOLS}', "");
-    Error('\p{:=	Combining_Marks_for_Symbols}');
-    Error('\P{:=	Combining_Marks_for_Symbols}');
+    Expect(1, 8447, '\p{__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(0, 8447, '\p{^__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(0, 8447, '\P{__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(1, 8447, '\P{^__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(0, 8448, '\p{__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(1, 8448, '\p{^__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(1, 8448, '\P{__In_diacriticals_FOR_SYMBOLS}', "");
+    Expect(0, 8448, '\P{^__In_diacriticals_FOR_SYMBOLS}', "");
+    Error('\p{__Combining_Marks_For_SYMBOLS/a/}');
+    Error('\P{__Combining_Marks_For_SYMBOLS/a/}');
     Expect(1, 8447, '\p{combiningmarksforsymbols}', "");
     Expect(0, 8447, '\p{^combiningmarksforsymbols}', "");
     Expect(0, 8447, '\P{combiningmarksforsymbols}', "");
@@ -93347,16 +94161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^combiningmarksforsymbols}', "");
     Expect(1, 8448, '\P{combiningmarksforsymbols}', "");
     Expect(0, 8448, '\P{^combiningmarksforsymbols}', "");
-    Expect(1, 8447, '\p{-_COMBINING_Marks_For_Symbols}', "");
-    Expect(0, 8447, '\p{^-_COMBINING_Marks_For_Symbols}', "");
-    Expect(0, 8447, '\P{-_COMBINING_Marks_For_Symbols}', "");
-    Expect(1, 8447, '\P{^-_COMBINING_Marks_For_Symbols}', "");
-    Expect(0, 8448, '\p{-_COMBINING_Marks_For_Symbols}', "");
-    Expect(1, 8448, '\p{^-_COMBINING_Marks_For_Symbols}', "");
-    Expect(1, 8448, '\P{-_COMBINING_Marks_For_Symbols}', "");
-    Expect(0, 8448, '\P{^-_COMBINING_Marks_For_Symbols}', "");
-    Error('\p{-:=Is_COMBINING_Marks_For_symbols}');
-    Error('\P{-:=Is_COMBINING_Marks_For_symbols}');
+    Expect(1, 8447, '\p{	_Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8447, '\p{^	_Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8447, '\P{	_Combining_marks_FOR_Symbols}', "");
+    Expect(1, 8447, '\P{^	_Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8448, '\p{	_Combining_marks_FOR_Symbols}', "");
+    Expect(1, 8448, '\p{^	_Combining_marks_FOR_Symbols}', "");
+    Expect(1, 8448, '\P{	_Combining_marks_FOR_Symbols}', "");
+    Expect(0, 8448, '\P{^	_Combining_marks_FOR_Symbols}', "");
+    Error('\p{ /a/IS_COMBINING_Marks_for_Symbols}');
+    Error('\P{ /a/IS_COMBINING_Marks_for_Symbols}');
     Expect(1, 8447, '\p{iscombiningmarksforsymbols}', "");
     Expect(0, 8447, '\p{^iscombiningmarksforsymbols}', "");
     Expect(0, 8447, '\P{iscombiningmarksforsymbols}', "");
@@ -93365,16 +94179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^iscombiningmarksforsymbols}', "");
     Expect(1, 8448, '\P{iscombiningmarksforsymbols}', "");
     Expect(0, 8448, '\P{^iscombiningmarksforsymbols}', "");
-    Expect(1, 8447, '\p{_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(0, 8447, '\p{^_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(0, 8447, '\P{_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(1, 8447, '\P{^_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(0, 8448, '\p{_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(1, 8448, '\p{^_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(1, 8448, '\P{_-Is_COMBINING_MARKS_for_symbols}', "");
-    Expect(0, 8448, '\P{^_-Is_COMBINING_MARKS_for_symbols}', "");
-    Error('\p{	:=in_COMBINING_Marks_For_SYMBOLS}');
-    Error('\P{	:=in_COMBINING_Marks_For_SYMBOLS}');
+    Expect(1, 8447, '\p{	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(0, 8447, '\p{^	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(0, 8447, '\P{	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(1, 8447, '\P{^	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(0, 8448, '\p{	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(1, 8448, '\p{^	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(1, 8448, '\P{	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Expect(0, 8448, '\P{^	 is_combining_Marks_FOR_SYMBOLS}', "");
+    Error('\p{ :=IN_Combining_marks_for_symbols}');
+    Error('\P{ :=IN_Combining_marks_for_symbols}');
     Expect(1, 8447, '\p{incombiningmarksforsymbols}', "");
     Expect(0, 8447, '\p{^incombiningmarksforsymbols}', "");
     Expect(0, 8447, '\P{incombiningmarksforsymbols}', "");
@@ -93383,16 +94197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8448, '\p{^incombiningmarksforsymbols}', "");
     Expect(1, 8448, '\P{incombiningmarksforsymbols}', "");
     Expect(0, 8448, '\P{^incombiningmarksforsymbols}', "");
-    Expect(1, 8447, '\p{_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(0, 8447, '\p{^_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(0, 8447, '\P{_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(1, 8447, '\P{^_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(0, 8448, '\p{_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(1, 8448, '\p{^_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(1, 8448, '\P{_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Expect(0, 8448, '\P{^_In_Combining_Marks_FOR_SYMBOLS}', "");
-    Error('\p{ 	COMBINING_Diacritical_marks_supplement/a/}');
-    Error('\P{ 	COMBINING_Diacritical_marks_supplement/a/}');
+    Expect(1, 8447, '\p{-In_Combining_Marks_For_Symbols}', "");
+    Expect(0, 8447, '\p{^-In_Combining_Marks_For_Symbols}', "");
+    Expect(0, 8447, '\P{-In_Combining_Marks_For_Symbols}', "");
+    Expect(1, 8447, '\P{^-In_Combining_Marks_For_Symbols}', "");
+    Expect(0, 8448, '\p{-In_Combining_Marks_For_Symbols}', "");
+    Expect(1, 8448, '\p{^-In_Combining_Marks_For_Symbols}', "");
+    Expect(1, 8448, '\P{-In_Combining_Marks_For_Symbols}', "");
+    Expect(0, 8448, '\P{^-In_Combining_Marks_For_Symbols}', "");
+    Error('\p{-:=Combining_Diacritical_MARKS_Supplement}');
+    Error('\P{-:=Combining_Diacritical_MARKS_Supplement}');
     Expect(1, 7679, '\p{combiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\p{^combiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\P{combiningdiacriticalmarkssupplement}', "");
@@ -93401,16 +94215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7680, '\p{^combiningdiacriticalmarkssupplement}', "");
     Expect(1, 7680, '\P{combiningdiacriticalmarkssupplement}', "");
     Expect(0, 7680, '\P{^combiningdiacriticalmarkssupplement}', "");
-    Expect(1, 7679, '\p{-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(0, 7679, '\p{^-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(0, 7679, '\P{-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(1, 7679, '\P{^-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(0, 7680, '\p{-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(1, 7680, '\p{^-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(1, 7680, '\P{-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Expect(0, 7680, '\P{^-Combining_Diacritical_MARKS_SUPPLEMENT}', "");
-    Error('\p{:=-IS_combining_Diacritical_MARKS_Supplement}');
-    Error('\P{:=-IS_combining_Diacritical_MARKS_Supplement}');
+    Expect(1, 7679, '\p{-_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7679, '\p{^-_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7679, '\P{-_Combining_Diacritical_marks_supplement}', "");
+    Expect(1, 7679, '\P{^-_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7680, '\p{-_Combining_Diacritical_marks_supplement}', "");
+    Expect(1, 7680, '\p{^-_Combining_Diacritical_marks_supplement}', "");
+    Expect(1, 7680, '\P{-_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7680, '\P{^-_Combining_Diacritical_marks_supplement}', "");
+    Error('\p{_-IS_Combining_DIACRITICAL_Marks_supplement:=}');
+    Error('\P{_-IS_Combining_DIACRITICAL_Marks_supplement:=}');
     Expect(1, 7679, '\p{iscombiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\p{^iscombiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\P{iscombiningdiacriticalmarkssupplement}', "");
@@ -93419,16 +94233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7680, '\p{^iscombiningdiacriticalmarkssupplement}', "");
     Expect(1, 7680, '\P{iscombiningdiacriticalmarkssupplement}', "");
     Expect(0, 7680, '\P{^iscombiningdiacriticalmarkssupplement}', "");
-    Expect(1, 7679, '\p{  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(0, 7679, '\p{^  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(0, 7679, '\P{  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(1, 7679, '\P{^  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(0, 7680, '\p{  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(1, 7680, '\p{^  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(1, 7680, '\P{  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Expect(0, 7680, '\P{^  IS_Combining_DIACRITICAL_marks_SUPPLEMENT}', "");
-    Error('\p{/a/__In_combining_diacritical_MARKS_Supplement}');
-    Error('\P{/a/__In_combining_diacritical_MARKS_Supplement}');
+    Expect(1, 7679, '\p{ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7679, '\p{^ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7679, '\P{ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(1, 7679, '\P{^ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7680, '\p{ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(1, 7680, '\p{^ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(1, 7680, '\P{ 	is_Combining_Diacritical_marks_supplement}', "");
+    Expect(0, 7680, '\P{^ 	is_Combining_Diacritical_marks_supplement}', "");
+    Error('\p{:= _IN_combining_Diacritical_Marks_supplement}');
+    Error('\P{:= _IN_combining_Diacritical_Marks_supplement}');
     Expect(1, 7679, '\p{incombiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\p{^incombiningdiacriticalmarkssupplement}', "");
     Expect(0, 7679, '\P{incombiningdiacriticalmarkssupplement}', "");
@@ -93437,16 +94251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7680, '\p{^incombiningdiacriticalmarkssupplement}', "");
     Expect(1, 7680, '\P{incombiningdiacriticalmarkssupplement}', "");
     Expect(0, 7680, '\P{^incombiningdiacriticalmarkssupplement}', "");
-    Expect(1, 7679, '\p{_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(0, 7679, '\p{^_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(0, 7679, '\P{_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(1, 7679, '\P{^_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(0, 7680, '\p{_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(1, 7680, '\p{^_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(1, 7680, '\P{_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Expect(0, 7680, '\P{^_in_Combining_diacritical_marks_SUPPLEMENT}', "");
-    Error('\p{-/a/diacriticals_SUP}');
-    Error('\P{-/a/diacriticals_SUP}');
+    Expect(1, 7679, '\p{- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7679, '\p{^- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7679, '\P{- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(1, 7679, '\P{^- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7680, '\p{- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(1, 7680, '\p{^- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(1, 7680, '\P{- in_Combining_Diacritical_Marks_Supplement}', "");
+    Expect(0, 7680, '\P{^- in_Combining_Diacritical_Marks_Supplement}', "");
+    Error('\p{ Diacriticals_Sup/a/}');
+    Error('\P{ Diacriticals_Sup/a/}');
     Expect(1, 7679, '\p{diacriticalssup}', "");
     Expect(0, 7679, '\p{^diacriticalssup}', "");
     Expect(0, 7679, '\P{diacriticalssup}', "");
@@ -93455,16 +94269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7680, '\p{^diacriticalssup}', "");
     Expect(1, 7680, '\P{diacriticalssup}', "");
     Expect(0, 7680, '\P{^diacriticalssup}', "");
-    Expect(1, 7679, '\p{Diacriticals_Sup}', "");
-    Expect(0, 7679, '\p{^Diacriticals_Sup}', "");
-    Expect(0, 7679, '\P{Diacriticals_Sup}', "");
-    Expect(1, 7679, '\P{^Diacriticals_Sup}', "");
-    Expect(0, 7680, '\p{Diacriticals_Sup}', "");
-    Expect(1, 7680, '\p{^Diacriticals_Sup}', "");
-    Expect(1, 7680, '\P{Diacriticals_Sup}', "");
-    Expect(0, 7680, '\P{^Diacriticals_Sup}', "");
-    Error('\p{/a/Is_Diacriticals_Sup}');
-    Error('\P{/a/Is_Diacriticals_Sup}');
+    Expect(1, 7679, '\p{DIACRITICALS_Sup}', "");
+    Expect(0, 7679, '\p{^DIACRITICALS_Sup}', "");
+    Expect(0, 7679, '\P{DIACRITICALS_Sup}', "");
+    Expect(1, 7679, '\P{^DIACRITICALS_Sup}', "");
+    Expect(0, 7680, '\p{DIACRITICALS_Sup}', "");
+    Expect(1, 7680, '\p{^DIACRITICALS_Sup}', "");
+    Expect(1, 7680, '\P{DIACRITICALS_Sup}', "");
+    Expect(0, 7680, '\P{^DIACRITICALS_Sup}', "");
+    Error('\p{_/a/IS_diacriticals_Sup}');
+    Error('\P{_/a/IS_diacriticals_Sup}');
     Expect(1, 7679, '\p{isdiacriticalssup}', "");
     Expect(0, 7679, '\p{^isdiacriticalssup}', "");
     Expect(0, 7679, '\P{isdiacriticalssup}', "");
@@ -93473,16 +94287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7680, '\p{^isdiacriticalssup}', "");
     Expect(1, 7680, '\P{isdiacriticalssup}', "");
     Expect(0, 7680, '\P{^isdiacriticalssup}', "");
-    Expect(1, 7679, '\p{- Is_Diacriticals_Sup}', "");
-    Expect(0, 7679, '\p{^- Is_Diacriticals_Sup}', "");
-    Expect(0, 7679, '\P{- Is_Diacriticals_Sup}', "");
-    Expect(1, 7679, '\P{^- Is_Diacriticals_Sup}', "");
-    Expect(0, 7680, '\p{- Is_Diacriticals_Sup}', "");
-    Expect(1, 7680, '\p{^- Is_Diacriticals_Sup}', "");
-    Expect(1, 7680, '\P{- Is_Diacriticals_Sup}', "");
-    Expect(0, 7680, '\P{^- Is_Diacriticals_Sup}', "");
-    Error('\p{:=_	In_diacriticals_SUP}');
-    Error('\P{:=_	In_diacriticals_SUP}');
+    Expect(1, 7679, '\p{_	IS_Diacriticals_sup}', "");
+    Expect(0, 7679, '\p{^_	IS_Diacriticals_sup}', "");
+    Expect(0, 7679, '\P{_	IS_Diacriticals_sup}', "");
+    Expect(1, 7679, '\P{^_	IS_Diacriticals_sup}', "");
+    Expect(0, 7680, '\p{_	IS_Diacriticals_sup}', "");
+    Expect(1, 7680, '\p{^_	IS_Diacriticals_sup}', "");
+    Expect(1, 7680, '\P{_	IS_Diacriticals_sup}', "");
+    Expect(0, 7680, '\P{^_	IS_Diacriticals_sup}', "");
+    Error('\p{/a/	_In_diacriticals_Sup}');
+    Error('\P{/a/	_In_diacriticals_Sup}');
     Expect(1, 7679, '\p{indiacriticalssup}', "");
     Expect(0, 7679, '\p{^indiacriticalssup}', "");
     Expect(0, 7679, '\P{indiacriticalssup}', "");
@@ -93491,16 +94305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7680, '\p{^indiacriticalssup}', "");
     Expect(1, 7680, '\P{indiacriticalssup}', "");
     Expect(0, 7680, '\P{^indiacriticalssup}', "");
-    Expect(1, 7679, '\p{	in_diacriticals_Sup}', "");
-    Expect(0, 7679, '\p{^	in_diacriticals_Sup}', "");
-    Expect(0, 7679, '\P{	in_diacriticals_Sup}', "");
-    Expect(1, 7679, '\P{^	in_diacriticals_Sup}', "");
-    Expect(0, 7680, '\p{	in_diacriticals_Sup}', "");
-    Expect(1, 7680, '\p{^	in_diacriticals_Sup}', "");
-    Expect(1, 7680, '\P{	in_diacriticals_Sup}', "");
-    Expect(0, 7680, '\P{^	in_diacriticals_Sup}', "");
-    Error('\p{-combining_HALF_MARKS:=}');
-    Error('\P{-combining_HALF_MARKS:=}');
+    Expect(1, 7679, '\p{_-IN_diacriticals_SUP}', "");
+    Expect(0, 7679, '\p{^_-IN_diacriticals_SUP}', "");
+    Expect(0, 7679, '\P{_-IN_diacriticals_SUP}', "");
+    Expect(1, 7679, '\P{^_-IN_diacriticals_SUP}', "");
+    Expect(0, 7680, '\p{_-IN_diacriticals_SUP}', "");
+    Expect(1, 7680, '\p{^_-IN_diacriticals_SUP}', "");
+    Expect(1, 7680, '\P{_-IN_diacriticals_SUP}', "");
+    Expect(0, 7680, '\P{^_-IN_diacriticals_SUP}', "");
+    Error('\p{/a/_ combining_HALF_Marks}');
+    Error('\P{/a/_ combining_HALF_Marks}');
     Expect(1, 65071, '\p{combininghalfmarks}', "");
     Expect(0, 65071, '\p{^combininghalfmarks}', "");
     Expect(0, 65071, '\P{combininghalfmarks}', "");
@@ -93509,16 +94323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65072, '\p{^combininghalfmarks}', "");
     Expect(1, 65072, '\P{combininghalfmarks}', "");
     Expect(0, 65072, '\P{^combininghalfmarks}', "");
-    Expect(1, 65071, '\p{ -Combining_half_Marks}', "");
-    Expect(0, 65071, '\p{^ -Combining_half_Marks}', "");
-    Expect(0, 65071, '\P{ -Combining_half_Marks}', "");
-    Expect(1, 65071, '\P{^ -Combining_half_Marks}', "");
-    Expect(0, 65072, '\p{ -Combining_half_Marks}', "");
-    Expect(1, 65072, '\p{^ -Combining_half_Marks}', "");
-    Expect(1, 65072, '\P{ -Combining_half_Marks}', "");
-    Expect(0, 65072, '\P{^ -Combining_half_Marks}', "");
-    Error('\p{ 	Is_Combining_Half_Marks:=}');
-    Error('\P{ 	Is_Combining_Half_Marks:=}');
+    Expect(1, 65071, '\p{- Combining_Half_marks}', "");
+    Expect(0, 65071, '\p{^- Combining_Half_marks}', "");
+    Expect(0, 65071, '\P{- Combining_Half_marks}', "");
+    Expect(1, 65071, '\P{^- Combining_Half_marks}', "");
+    Expect(0, 65072, '\p{- Combining_Half_marks}', "");
+    Expect(1, 65072, '\p{^- Combining_Half_marks}', "");
+    Expect(1, 65072, '\P{- Combining_Half_marks}', "");
+    Expect(0, 65072, '\P{^- Combining_Half_marks}', "");
+    Error('\p{ /a/Is_combining_HALF_Marks}');
+    Error('\P{ /a/Is_combining_HALF_Marks}');
     Expect(1, 65071, '\p{iscombininghalfmarks}', "");
     Expect(0, 65071, '\p{^iscombininghalfmarks}', "");
     Expect(0, 65071, '\P{iscombininghalfmarks}', "");
@@ -93527,16 +94341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65072, '\p{^iscombininghalfmarks}', "");
     Expect(1, 65072, '\P{iscombininghalfmarks}', "");
     Expect(0, 65072, '\P{^iscombininghalfmarks}', "");
-    Expect(1, 65071, '\p{__Is_Combining_Half_MARKS}', "");
-    Expect(0, 65071, '\p{^__Is_Combining_Half_MARKS}', "");
-    Expect(0, 65071, '\P{__Is_Combining_Half_MARKS}', "");
-    Expect(1, 65071, '\P{^__Is_Combining_Half_MARKS}', "");
-    Expect(0, 65072, '\p{__Is_Combining_Half_MARKS}', "");
-    Expect(1, 65072, '\p{^__Is_Combining_Half_MARKS}', "");
-    Expect(1, 65072, '\P{__Is_Combining_Half_MARKS}', "");
-    Expect(0, 65072, '\P{^__Is_Combining_Half_MARKS}', "");
-    Error('\p{-	In_combining_HALF_MARKS:=}');
-    Error('\P{-	In_combining_HALF_MARKS:=}');
+    Expect(1, 65071, '\p{_	is_combining_Half_Marks}', "");
+    Expect(0, 65071, '\p{^_	is_combining_Half_Marks}', "");
+    Expect(0, 65071, '\P{_	is_combining_Half_Marks}', "");
+    Expect(1, 65071, '\P{^_	is_combining_Half_Marks}', "");
+    Expect(0, 65072, '\p{_	is_combining_Half_Marks}', "");
+    Expect(1, 65072, '\p{^_	is_combining_Half_Marks}', "");
+    Expect(1, 65072, '\P{_	is_combining_Half_Marks}', "");
+    Expect(0, 65072, '\P{^_	is_combining_Half_Marks}', "");
+    Error('\p{_In_COMBINING_half_Marks:=}');
+    Error('\P{_In_COMBINING_half_Marks:=}');
     Expect(1, 65071, '\p{incombininghalfmarks}', "");
     Expect(0, 65071, '\p{^incombininghalfmarks}', "");
     Expect(0, 65071, '\P{incombininghalfmarks}', "");
@@ -93545,16 +94359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65072, '\p{^incombininghalfmarks}', "");
     Expect(1, 65072, '\P{incombininghalfmarks}', "");
     Expect(0, 65072, '\P{^incombininghalfmarks}', "");
-    Expect(1, 65071, '\p{-in_COMBINING_HALF_marks}', "");
-    Expect(0, 65071, '\p{^-in_COMBINING_HALF_marks}', "");
-    Expect(0, 65071, '\P{-in_COMBINING_HALF_marks}', "");
-    Expect(1, 65071, '\P{^-in_COMBINING_HALF_marks}', "");
-    Expect(0, 65072, '\p{-in_COMBINING_HALF_marks}', "");
-    Expect(1, 65072, '\p{^-in_COMBINING_HALF_marks}', "");
-    Expect(1, 65072, '\P{-in_COMBINING_HALF_marks}', "");
-    Expect(0, 65072, '\P{^-in_COMBINING_HALF_marks}', "");
-    Error('\p{ _Half_MARKS/a/}');
-    Error('\P{ _Half_MARKS/a/}');
+    Expect(1, 65071, '\p{--in_combining_Half_marks}', "");
+    Expect(0, 65071, '\p{^--in_combining_Half_marks}', "");
+    Expect(0, 65071, '\P{--in_combining_Half_marks}', "");
+    Expect(1, 65071, '\P{^--in_combining_Half_marks}', "");
+    Expect(0, 65072, '\p{--in_combining_Half_marks}', "");
+    Expect(1, 65072, '\p{^--in_combining_Half_marks}', "");
+    Expect(1, 65072, '\P{--in_combining_Half_marks}', "");
+    Expect(0, 65072, '\P{^--in_combining_Half_marks}', "");
+    Error('\p{ Half_Marks/a/}');
+    Error('\P{ Half_Marks/a/}');
     Expect(1, 65071, '\p{halfmarks}', "");
     Expect(0, 65071, '\p{^halfmarks}', "");
     Expect(0, 65071, '\P{halfmarks}', "");
@@ -93563,16 +94377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65072, '\p{^halfmarks}', "");
     Expect(1, 65072, '\P{halfmarks}', "");
     Expect(0, 65072, '\P{^halfmarks}', "");
-    Expect(1, 65071, '\p{ HALF_Marks}', "");
-    Expect(0, 65071, '\p{^ HALF_Marks}', "");
-    Expect(0, 65071, '\P{ HALF_Marks}', "");
-    Expect(1, 65071, '\P{^ HALF_Marks}', "");
-    Expect(0, 65072, '\p{ HALF_Marks}', "");
-    Expect(1, 65072, '\p{^ HALF_Marks}', "");
-    Expect(1, 65072, '\P{ HALF_Marks}', "");
-    Expect(0, 65072, '\P{^ HALF_Marks}', "");
-    Error('\p{:=-_IS_HALF_marks}');
-    Error('\P{:=-_IS_HALF_marks}');
+    Expect(1, 65071, '\p{ -Half_marks}', "");
+    Expect(0, 65071, '\p{^ -Half_marks}', "");
+    Expect(0, 65071, '\P{ -Half_marks}', "");
+    Expect(1, 65071, '\P{^ -Half_marks}', "");
+    Expect(0, 65072, '\p{ -Half_marks}', "");
+    Expect(1, 65072, '\p{^ -Half_marks}', "");
+    Expect(1, 65072, '\P{ -Half_marks}', "");
+    Expect(0, 65072, '\P{^ -Half_marks}', "");
+    Error('\p{:=	Is_Half_marks}');
+    Error('\P{:=	Is_Half_marks}');
     Expect(1, 65071, '\p{ishalfmarks}', "");
     Expect(0, 65071, '\p{^ishalfmarks}', "");
     Expect(0, 65071, '\P{ishalfmarks}', "");
@@ -93581,16 +94395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65072, '\p{^ishalfmarks}', "");
     Expect(1, 65072, '\P{ishalfmarks}', "");
     Expect(0, 65072, '\P{^ishalfmarks}', "");
-    Expect(1, 65071, '\p{  Is_half_Marks}', "");
-    Expect(0, 65071, '\p{^  Is_half_Marks}', "");
-    Expect(0, 65071, '\P{  Is_half_Marks}', "");
-    Expect(1, 65071, '\P{^  Is_half_Marks}', "");
-    Expect(0, 65072, '\p{  Is_half_Marks}', "");
-    Expect(1, 65072, '\p{^  Is_half_Marks}', "");
-    Expect(1, 65072, '\P{  Is_half_Marks}', "");
-    Expect(0, 65072, '\P{^  Is_half_Marks}', "");
-    Error('\p{:=-in_Half_Marks}');
-    Error('\P{:=-in_Half_Marks}');
+    Expect(1, 65071, '\p{_ Is_half_marks}', "");
+    Expect(0, 65071, '\p{^_ Is_half_marks}', "");
+    Expect(0, 65071, '\P{_ Is_half_marks}', "");
+    Expect(1, 65071, '\P{^_ Is_half_marks}', "");
+    Expect(0, 65072, '\p{_ Is_half_marks}', "");
+    Expect(1, 65072, '\p{^_ Is_half_marks}', "");
+    Expect(1, 65072, '\P{_ Is_half_marks}', "");
+    Expect(0, 65072, '\P{^_ Is_half_marks}', "");
+    Error('\p{ /a/In_Half_marks}');
+    Error('\P{ /a/In_Half_marks}');
     Expect(1, 65071, '\p{inhalfmarks}', "");
     Expect(0, 65071, '\p{^inhalfmarks}', "");
     Expect(0, 65071, '\P{inhalfmarks}', "");
@@ -93599,16 +94413,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65072, '\p{^inhalfmarks}', "");
     Expect(1, 65072, '\P{inhalfmarks}', "");
     Expect(0, 65072, '\P{^inhalfmarks}', "");
-    Expect(1, 65071, '\p{--In_Half_MARKS}', "");
-    Expect(0, 65071, '\p{^--In_Half_MARKS}', "");
-    Expect(0, 65071, '\P{--In_Half_MARKS}', "");
-    Expect(1, 65071, '\P{^--In_Half_MARKS}', "");
-    Expect(0, 65072, '\p{--In_Half_MARKS}', "");
-    Expect(1, 65072, '\p{^--In_Half_MARKS}', "");
-    Expect(1, 65072, '\P{--In_Half_MARKS}', "");
-    Expect(0, 65072, '\P{^--In_Half_MARKS}', "");
-    Error('\p{_:=COMMON}');
-    Error('\P{_:=COMMON}');
+    Expect(1, 65071, '\p{In_HALF_marks}', "");
+    Expect(0, 65071, '\p{^In_HALF_marks}', "");
+    Expect(0, 65071, '\P{In_HALF_marks}', "");
+    Expect(1, 65071, '\P{^In_HALF_marks}', "");
+    Expect(0, 65072, '\p{In_HALF_marks}', "");
+    Expect(1, 65072, '\p{^In_HALF_marks}', "");
+    Expect(1, 65072, '\P{In_HALF_marks}', "");
+    Expect(0, 65072, '\P{^In_HALF_marks}', "");
+    Error('\p{_ Common/a/}');
+    Error('\P{_ Common/a/}');
     Expect(1, 917631, '\p{common}', "");
     Expect(0, 917631, '\p{^common}', "");
     Expect(0, 917631, '\P{common}', "");
@@ -93617,16 +94431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^common}', "");
     Expect(1, 917632, '\P{common}', "");
     Expect(0, 917632, '\P{^common}', "");
-    Expect(1, 917631, '\p{		Common}', "");
-    Expect(0, 917631, '\p{^		Common}', "");
-    Expect(0, 917631, '\P{		Common}', "");
-    Expect(1, 917631, '\P{^		Common}', "");
-    Expect(0, 917632, '\p{		Common}', "");
-    Expect(1, 917632, '\p{^		Common}', "");
-    Expect(1, 917632, '\P{		Common}', "");
-    Expect(0, 917632, '\P{^		Common}', "");
-    Error('\p{/a/_ IS_Common}');
-    Error('\P{/a/_ IS_Common}');
+    Expect(1, 917631, '\p{_-Common}', "");
+    Expect(0, 917631, '\p{^_-Common}', "");
+    Expect(0, 917631, '\P{_-Common}', "");
+    Expect(1, 917631, '\P{^_-Common}', "");
+    Expect(0, 917632, '\p{_-Common}', "");
+    Expect(1, 917632, '\p{^_-Common}', "");
+    Expect(1, 917632, '\P{_-Common}', "");
+    Expect(0, 917632, '\P{^_-Common}', "");
+    Error('\p{_ Is_Common:=}');
+    Error('\P{_ Is_Common:=}');
     Expect(1, 917631, '\p{iscommon}', "");
     Expect(0, 917631, '\p{^iscommon}', "");
     Expect(0, 917631, '\P{iscommon}', "");
@@ -93635,16 +94449,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^iscommon}', "");
     Expect(1, 917632, '\P{iscommon}', "");
     Expect(0, 917632, '\P{^iscommon}', "");
-    Expect(1, 917631, '\p{ is_COMMON}', "");
-    Expect(0, 917631, '\p{^ is_COMMON}', "");
-    Expect(0, 917631, '\P{ is_COMMON}', "");
-    Expect(1, 917631, '\P{^ is_COMMON}', "");
-    Expect(0, 917632, '\p{ is_COMMON}', "");
-    Expect(1, 917632, '\p{^ is_COMMON}', "");
-    Expect(1, 917632, '\P{ is_COMMON}', "");
-    Expect(0, 917632, '\P{^ is_COMMON}', "");
-    Error('\p{  Zyyy:=}');
-    Error('\P{  Zyyy:=}');
+    Expect(1, 917631, '\p{_	Is_Common}', "");
+    Expect(0, 917631, '\p{^_	Is_Common}', "");
+    Expect(0, 917631, '\P{_	Is_Common}', "");
+    Expect(1, 917631, '\P{^_	Is_Common}', "");
+    Expect(0, 917632, '\p{_	Is_Common}', "");
+    Expect(1, 917632, '\p{^_	Is_Common}', "");
+    Expect(1, 917632, '\P{_	Is_Common}', "");
+    Expect(0, 917632, '\P{^_	Is_Common}', "");
+    Error('\p{ /a/ZYYY}');
+    Error('\P{ /a/ZYYY}');
     Expect(1, 917631, '\p{zyyy}', "");
     Expect(0, 917631, '\p{^zyyy}', "");
     Expect(0, 917631, '\P{zyyy}', "");
@@ -93653,16 +94467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^zyyy}', "");
     Expect(1, 917632, '\P{zyyy}', "");
     Expect(0, 917632, '\P{^zyyy}', "");
-    Expect(1, 917631, '\p{-_zyyy}', "");
-    Expect(0, 917631, '\p{^-_zyyy}', "");
-    Expect(0, 917631, '\P{-_zyyy}', "");
-    Expect(1, 917631, '\P{^-_zyyy}', "");
-    Expect(0, 917632, '\p{-_zyyy}', "");
-    Expect(1, 917632, '\p{^-_zyyy}', "");
-    Expect(1, 917632, '\P{-_zyyy}', "");
-    Expect(0, 917632, '\P{^-_zyyy}', "");
-    Error('\p{/a/	 Is_zyyy}');
-    Error('\P{/a/	 Is_zyyy}');
+    Expect(1, 917631, '\p{_	Zyyy}', "");
+    Expect(0, 917631, '\p{^_	Zyyy}', "");
+    Expect(0, 917631, '\P{_	Zyyy}', "");
+    Expect(1, 917631, '\P{^_	Zyyy}', "");
+    Expect(0, 917632, '\p{_	Zyyy}', "");
+    Expect(1, 917632, '\p{^_	Zyyy}', "");
+    Expect(1, 917632, '\P{_	Zyyy}', "");
+    Expect(0, 917632, '\P{^_	Zyyy}', "");
+    Error('\p{	:=Is_Zyyy}');
+    Error('\P{	:=Is_Zyyy}');
     Expect(1, 917631, '\p{iszyyy}', "");
     Expect(0, 917631, '\p{^iszyyy}', "");
     Expect(0, 917631, '\P{iszyyy}', "");
@@ -93671,16 +94485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^iszyyy}', "");
     Expect(1, 917632, '\P{iszyyy}', "");
     Expect(0, 917632, '\P{^iszyyy}', "");
-    Expect(1, 917631, '\p{-	is_Zyyy}', "");
-    Expect(0, 917631, '\p{^-	is_Zyyy}', "");
-    Expect(0, 917631, '\P{-	is_Zyyy}', "");
-    Expect(1, 917631, '\P{^-	is_Zyyy}', "");
-    Expect(0, 917632, '\p{-	is_Zyyy}', "");
-    Expect(1, 917632, '\p{^-	is_Zyyy}', "");
-    Expect(1, 917632, '\P{-	is_Zyyy}', "");
-    Expect(0, 917632, '\P{^-	is_Zyyy}', "");
-    Error('\p{-_Common_indic_Number_Forms:=}');
-    Error('\P{-_Common_indic_Number_Forms:=}');
+    Expect(1, 917631, '\p{__Is_zyyy}', "");
+    Expect(0, 917631, '\p{^__Is_zyyy}', "");
+    Expect(0, 917631, '\P{__Is_zyyy}', "");
+    Expect(1, 917631, '\P{^__Is_zyyy}', "");
+    Expect(0, 917632, '\p{__Is_zyyy}', "");
+    Expect(1, 917632, '\p{^__Is_zyyy}', "");
+    Expect(1, 917632, '\P{__Is_zyyy}', "");
+    Expect(0, 917632, '\P{^__Is_zyyy}', "");
+    Error('\p{_Common_INDIC_NUMBER_Forms/a/}');
+    Error('\P{_Common_INDIC_NUMBER_Forms/a/}');
     Expect(1, 43071, '\p{commonindicnumberforms}', "");
     Expect(0, 43071, '\p{^commonindicnumberforms}', "");
     Expect(0, 43071, '\P{commonindicnumberforms}', "");
@@ -93689,16 +94503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43072, '\p{^commonindicnumberforms}', "");
     Expect(1, 43072, '\P{commonindicnumberforms}', "");
     Expect(0, 43072, '\P{^commonindicnumberforms}', "");
-    Expect(1, 43071, '\p{	-COMMON_Indic_Number_FORMS}', "");
-    Expect(0, 43071, '\p{^	-COMMON_Indic_Number_FORMS}', "");
-    Expect(0, 43071, '\P{	-COMMON_Indic_Number_FORMS}', "");
-    Expect(1, 43071, '\P{^	-COMMON_Indic_Number_FORMS}', "");
-    Expect(0, 43072, '\p{	-COMMON_Indic_Number_FORMS}', "");
-    Expect(1, 43072, '\p{^	-COMMON_Indic_Number_FORMS}', "");
-    Expect(1, 43072, '\P{	-COMMON_Indic_Number_FORMS}', "");
-    Expect(0, 43072, '\P{^	-COMMON_Indic_Number_FORMS}', "");
-    Error('\p{__Is_COMMON_indic_number_Forms:=}');
-    Error('\P{__Is_COMMON_indic_number_Forms:=}');
+    Expect(1, 43071, '\p{__common_indic_Number_Forms}', "");
+    Expect(0, 43071, '\p{^__common_indic_Number_Forms}', "");
+    Expect(0, 43071, '\P{__common_indic_Number_Forms}', "");
+    Expect(1, 43071, '\P{^__common_indic_Number_Forms}', "");
+    Expect(0, 43072, '\p{__common_indic_Number_Forms}', "");
+    Expect(1, 43072, '\p{^__common_indic_Number_Forms}', "");
+    Expect(1, 43072, '\P{__common_indic_Number_Forms}', "");
+    Expect(0, 43072, '\P{^__common_indic_Number_Forms}', "");
+    Error('\p{	:=IS_common_Indic_number_forms}');
+    Error('\P{	:=IS_common_Indic_number_forms}');
     Expect(1, 43071, '\p{iscommonindicnumberforms}', "");
     Expect(0, 43071, '\p{^iscommonindicnumberforms}', "");
     Expect(0, 43071, '\P{iscommonindicnumberforms}', "");
@@ -93707,16 +94521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43072, '\p{^iscommonindicnumberforms}', "");
     Expect(1, 43072, '\P{iscommonindicnumberforms}', "");
     Expect(0, 43072, '\P{^iscommonindicnumberforms}', "");
-    Expect(1, 43071, '\p{	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(0, 43071, '\p{^	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(0, 43071, '\P{	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(1, 43071, '\P{^	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(0, 43072, '\p{	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(1, 43072, '\p{^	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(1, 43072, '\P{	 IS_Common_INDIC_Number_FORMS}', "");
-    Expect(0, 43072, '\P{^	 IS_Common_INDIC_Number_FORMS}', "");
-    Error('\p{/a/-IN_COMMON_INDIC_NUMBER_Forms}');
-    Error('\P{/a/-IN_COMMON_INDIC_NUMBER_Forms}');
+    Expect(1, 43071, '\p{		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(0, 43071, '\p{^		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(0, 43071, '\P{		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(1, 43071, '\P{^		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(0, 43072, '\p{		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(1, 43072, '\p{^		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(1, 43072, '\P{		IS_COMMON_Indic_Number_FORMS}', "");
+    Expect(0, 43072, '\P{^		IS_COMMON_Indic_Number_FORMS}', "");
+    Error('\p{ In_COMMON_Indic_Number_forms/a/}');
+    Error('\P{ In_COMMON_Indic_Number_forms/a/}');
     Expect(1, 43071, '\p{incommonindicnumberforms}', "");
     Expect(0, 43071, '\p{^incommonindicnumberforms}', "");
     Expect(0, 43071, '\P{incommonindicnumberforms}', "");
@@ -93725,16 +94539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43072, '\p{^incommonindicnumberforms}', "");
     Expect(1, 43072, '\P{incommonindicnumberforms}', "");
     Expect(0, 43072, '\P{^incommonindicnumberforms}', "");
-    Expect(1, 43071, '\p{ IN_Common_Indic_Number_forms}', "");
-    Expect(0, 43071, '\p{^ IN_Common_Indic_Number_forms}', "");
-    Expect(0, 43071, '\P{ IN_Common_Indic_Number_forms}', "");
-    Expect(1, 43071, '\P{^ IN_Common_Indic_Number_forms}', "");
-    Expect(0, 43072, '\p{ IN_Common_Indic_Number_forms}', "");
-    Expect(1, 43072, '\p{^ IN_Common_Indic_Number_forms}', "");
-    Expect(1, 43072, '\P{ IN_Common_Indic_Number_forms}', "");
-    Expect(0, 43072, '\P{^ IN_Common_Indic_Number_forms}', "");
-    Error('\p{indic_Number_Forms/a/}');
-    Error('\P{indic_Number_Forms/a/}');
+    Expect(1, 43071, '\p{		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(0, 43071, '\p{^		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(0, 43071, '\P{		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(1, 43071, '\P{^		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(0, 43072, '\p{		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(1, 43072, '\p{^		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(1, 43072, '\P{		In_Common_Indic_NUMBER_Forms}', "");
+    Expect(0, 43072, '\P{^		In_Common_Indic_NUMBER_Forms}', "");
+    Error('\p{/a/__INDIC_Number_Forms}');
+    Error('\P{/a/__INDIC_Number_Forms}');
     Expect(1, 43071, '\p{indicnumberforms}', "");
     Expect(0, 43071, '\p{^indicnumberforms}', "");
     Expect(0, 43071, '\P{indicnumberforms}', "");
@@ -93743,16 +94557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43072, '\p{^indicnumberforms}', "");
     Expect(1, 43072, '\P{indicnumberforms}', "");
     Expect(0, 43072, '\P{^indicnumberforms}', "");
-    Expect(1, 43071, '\p{	Indic_Number_FORMS}', "");
-    Expect(0, 43071, '\p{^	Indic_Number_FORMS}', "");
-    Expect(0, 43071, '\P{	Indic_Number_FORMS}', "");
-    Expect(1, 43071, '\P{^	Indic_Number_FORMS}', "");
-    Expect(0, 43072, '\p{	Indic_Number_FORMS}', "");
-    Expect(1, 43072, '\p{^	Indic_Number_FORMS}', "");
-    Expect(1, 43072, '\P{	Indic_Number_FORMS}', "");
-    Expect(0, 43072, '\P{^	Indic_Number_FORMS}', "");
-    Error('\p{_/a/Is_Indic_Number_forms}');
-    Error('\P{_/a/Is_Indic_Number_forms}');
+    Expect(1, 43071, '\p{ _Indic_number_Forms}', "");
+    Expect(0, 43071, '\p{^ _Indic_number_Forms}', "");
+    Expect(0, 43071, '\P{ _Indic_number_Forms}', "");
+    Expect(1, 43071, '\P{^ _Indic_number_Forms}', "");
+    Expect(0, 43072, '\p{ _Indic_number_Forms}', "");
+    Expect(1, 43072, '\p{^ _Indic_number_Forms}', "");
+    Expect(1, 43072, '\P{ _Indic_number_Forms}', "");
+    Expect(0, 43072, '\P{^ _Indic_number_Forms}', "");
+    Error('\p{-:=IS_Indic_Number_Forms}');
+    Error('\P{-:=IS_Indic_Number_Forms}');
     Expect(1, 43071, '\p{isindicnumberforms}', "");
     Expect(0, 43071, '\p{^isindicnumberforms}', "");
     Expect(0, 43071, '\P{isindicnumberforms}', "");
@@ -93761,16 +94575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43072, '\p{^isindicnumberforms}', "");
     Expect(1, 43072, '\P{isindicnumberforms}', "");
     Expect(0, 43072, '\P{^isindicnumberforms}', "");
-    Expect(1, 43071, '\p{_	Is_INDIC_Number_FORMS}', "");
-    Expect(0, 43071, '\p{^_	Is_INDIC_Number_FORMS}', "");
-    Expect(0, 43071, '\P{_	Is_INDIC_Number_FORMS}', "");
-    Expect(1, 43071, '\P{^_	Is_INDIC_Number_FORMS}', "");
-    Expect(0, 43072, '\p{_	Is_INDIC_Number_FORMS}', "");
-    Expect(1, 43072, '\p{^_	Is_INDIC_Number_FORMS}', "");
-    Expect(1, 43072, '\P{_	Is_INDIC_Number_FORMS}', "");
-    Expect(0, 43072, '\P{^_	Is_INDIC_Number_FORMS}', "");
-    Error('\p{:=		In_Indic_Number_Forms}');
-    Error('\P{:=		In_Indic_Number_Forms}');
+    Expect(1, 43071, '\p{		Is_INDIC_number_FORMS}', "");
+    Expect(0, 43071, '\p{^		Is_INDIC_number_FORMS}', "");
+    Expect(0, 43071, '\P{		Is_INDIC_number_FORMS}', "");
+    Expect(1, 43071, '\P{^		Is_INDIC_number_FORMS}', "");
+    Expect(0, 43072, '\p{		Is_INDIC_number_FORMS}', "");
+    Expect(1, 43072, '\p{^		Is_INDIC_number_FORMS}', "");
+    Expect(1, 43072, '\P{		Is_INDIC_number_FORMS}', "");
+    Expect(0, 43072, '\P{^		Is_INDIC_number_FORMS}', "");
+    Error('\p{:= In_indic_Number_FORMS}');
+    Error('\P{:= In_indic_Number_FORMS}');
     Expect(1, 43071, '\p{inindicnumberforms}', "");
     Expect(0, 43071, '\p{^inindicnumberforms}', "");
     Expect(0, 43071, '\P{inindicnumberforms}', "");
@@ -93779,16 +94593,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43072, '\p{^inindicnumberforms}', "");
     Expect(1, 43072, '\P{inindicnumberforms}', "");
     Expect(0, 43072, '\P{^inindicnumberforms}', "");
-    Expect(1, 43071, '\p{-_IN_indic_Number_FORMS}', "");
-    Expect(0, 43071, '\p{^-_IN_indic_Number_FORMS}', "");
-    Expect(0, 43071, '\P{-_IN_indic_Number_FORMS}', "");
-    Expect(1, 43071, '\P{^-_IN_indic_Number_FORMS}', "");
-    Expect(0, 43072, '\p{-_IN_indic_Number_FORMS}', "");
-    Expect(1, 43072, '\p{^-_IN_indic_Number_FORMS}', "");
-    Expect(1, 43072, '\P{-_IN_indic_Number_FORMS}', "");
-    Expect(0, 43072, '\P{^-_IN_indic_Number_FORMS}', "");
-    Error('\p{ 	Composition_Exclusion:=}');
-    Error('\P{ 	Composition_Exclusion:=}');
+    Expect(1, 43071, '\p{	_in_Indic_Number_FORMS}', "");
+    Expect(0, 43071, '\p{^	_in_Indic_Number_FORMS}', "");
+    Expect(0, 43071, '\P{	_in_Indic_Number_FORMS}', "");
+    Expect(1, 43071, '\P{^	_in_Indic_Number_FORMS}', "");
+    Expect(0, 43072, '\p{	_in_Indic_Number_FORMS}', "");
+    Expect(1, 43072, '\p{^	_in_Indic_Number_FORMS}', "");
+    Expect(1, 43072, '\P{	_in_Indic_Number_FORMS}', "");
+    Expect(0, 43072, '\P{^	_in_Indic_Number_FORMS}', "");
+    Error('\p{:=composition_Exclusion}');
+    Error('\P{:=composition_Exclusion}');
     Expect(1, 119232, '\p{compositionexclusion}', "");
     Expect(0, 119232, '\p{^compositionexclusion}', "");
     Expect(0, 119232, '\P{compositionexclusion}', "");
@@ -93797,16 +94611,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119233, '\p{^compositionexclusion}', "");
     Expect(1, 119233, '\P{compositionexclusion}', "");
     Expect(0, 119233, '\P{^compositionexclusion}', "");
-    Expect(1, 119232, '\p{_	Composition_exclusion}', "");
-    Expect(0, 119232, '\p{^_	Composition_exclusion}', "");
-    Expect(0, 119232, '\P{_	Composition_exclusion}', "");
-    Expect(1, 119232, '\P{^_	Composition_exclusion}', "");
-    Expect(0, 119233, '\p{_	Composition_exclusion}', "");
-    Expect(1, 119233, '\p{^_	Composition_exclusion}', "");
-    Expect(1, 119233, '\P{_	Composition_exclusion}', "");
-    Expect(0, 119233, '\P{^_	Composition_exclusion}', "");
-    Error('\p{_/a/is_composition_exclusion}');
-    Error('\P{_/a/is_composition_exclusion}');
+    Expect(1, 119232, '\p{  composition_Exclusion}', "");
+    Expect(0, 119232, '\p{^  composition_Exclusion}', "");
+    Expect(0, 119232, '\P{  composition_Exclusion}', "");
+    Expect(1, 119232, '\P{^  composition_Exclusion}', "");
+    Expect(0, 119233, '\p{  composition_Exclusion}', "");
+    Expect(1, 119233, '\p{^  composition_Exclusion}', "");
+    Expect(1, 119233, '\P{  composition_Exclusion}', "");
+    Expect(0, 119233, '\P{^  composition_Exclusion}', "");
+    Error('\p{/a/		IS_composition_Exclusion}');
+    Error('\P{/a/		IS_composition_Exclusion}');
     Expect(1, 119232, '\p{iscompositionexclusion}', "");
     Expect(0, 119232, '\p{^iscompositionexclusion}', "");
     Expect(0, 119232, '\P{iscompositionexclusion}', "");
@@ -93815,16 +94629,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119233, '\p{^iscompositionexclusion}', "");
     Expect(1, 119233, '\P{iscompositionexclusion}', "");
     Expect(0, 119233, '\P{^iscompositionexclusion}', "");
-    Expect(1, 119232, '\p{-	Is_Composition_EXCLUSION}', "");
-    Expect(0, 119232, '\p{^-	Is_Composition_EXCLUSION}', "");
-    Expect(0, 119232, '\P{-	Is_Composition_EXCLUSION}', "");
-    Expect(1, 119232, '\P{^-	Is_Composition_EXCLUSION}', "");
-    Expect(0, 119233, '\p{-	Is_Composition_EXCLUSION}', "");
-    Expect(1, 119233, '\p{^-	Is_Composition_EXCLUSION}', "");
-    Expect(1, 119233, '\P{-	Is_Composition_EXCLUSION}', "");
-    Expect(0, 119233, '\P{^-	Is_Composition_EXCLUSION}', "");
-    Error('\p{:=-ce}');
-    Error('\P{:=-ce}');
+    Expect(1, 119232, '\p{	IS_composition_EXCLUSION}', "");
+    Expect(0, 119232, '\p{^	IS_composition_EXCLUSION}', "");
+    Expect(0, 119232, '\P{	IS_composition_EXCLUSION}', "");
+    Expect(1, 119232, '\P{^	IS_composition_EXCLUSION}', "");
+    Expect(0, 119233, '\p{	IS_composition_EXCLUSION}', "");
+    Expect(1, 119233, '\p{^	IS_composition_EXCLUSION}', "");
+    Expect(1, 119233, '\P{	IS_composition_EXCLUSION}', "");
+    Expect(0, 119233, '\P{^	IS_composition_EXCLUSION}', "");
+    Error('\p{ :=CE}');
+    Error('\P{ :=CE}');
     Expect(1, 119232, '\p{ce}', "");
     Expect(0, 119232, '\p{^ce}', "");
     Expect(0, 119232, '\P{ce}', "");
@@ -93833,16 +94647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119233, '\p{^ce}', "");
     Expect(1, 119233, '\P{ce}', "");
     Expect(0, 119233, '\P{^ce}', "");
-    Expect(1, 119232, '\p{ 	CE}', "");
-    Expect(0, 119232, '\p{^ 	CE}', "");
-    Expect(0, 119232, '\P{ 	CE}', "");
-    Expect(1, 119232, '\P{^ 	CE}', "");
-    Expect(0, 119233, '\p{ 	CE}', "");
-    Expect(1, 119233, '\p{^ 	CE}', "");
-    Expect(1, 119233, '\P{ 	CE}', "");
-    Expect(0, 119233, '\P{^ 	CE}', "");
-    Error('\p{ Is_CE:=}');
-    Error('\P{ Is_CE:=}');
+    Expect(1, 119232, '\p{	_CE}', "");
+    Expect(0, 119232, '\p{^	_CE}', "");
+    Expect(0, 119232, '\P{	_CE}', "");
+    Expect(1, 119232, '\P{^	_CE}', "");
+    Expect(0, 119233, '\p{	_CE}', "");
+    Expect(1, 119233, '\p{^	_CE}', "");
+    Expect(1, 119233, '\P{	_CE}', "");
+    Expect(0, 119233, '\P{^	_CE}', "");
+    Error('\p{:=	Is_CE}');
+    Error('\P{:=	Is_CE}');
     Expect(1, 119232, '\p{isce}', "");
     Expect(0, 119232, '\p{^isce}', "");
     Expect(0, 119232, '\P{isce}', "");
@@ -93851,16 +94665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119233, '\p{^isce}', "");
     Expect(1, 119233, '\P{isce}', "");
     Expect(0, 119233, '\P{^isce}', "");
-    Expect(1, 119232, '\p{ is_CE}', "");
-    Expect(0, 119232, '\p{^ is_CE}', "");
-    Expect(0, 119232, '\P{ is_CE}', "");
-    Expect(1, 119232, '\P{^ is_CE}', "");
-    Expect(0, 119233, '\p{ is_CE}', "");
-    Expect(1, 119233, '\p{^ is_CE}', "");
-    Expect(1, 119233, '\P{ is_CE}', "");
-    Expect(0, 119233, '\P{^ is_CE}', "");
-    Error('\p{ /a/connector_Punctuation}');
-    Error('\P{ /a/connector_Punctuation}');
+    Expect(1, 119232, '\p{Is_CE}', "");
+    Expect(0, 119232, '\p{^Is_CE}', "");
+    Expect(0, 119232, '\P{Is_CE}', "");
+    Expect(1, 119232, '\P{^Is_CE}', "");
+    Expect(0, 119233, '\p{Is_CE}', "");
+    Expect(1, 119233, '\p{^Is_CE}', "");
+    Expect(1, 119233, '\P{Is_CE}', "");
+    Expect(0, 119233, '\P{^Is_CE}', "");
+    Error('\p{- connector_PUNCTUATION:=}');
+    Error('\P{- connector_PUNCTUATION:=}');
     Expect(1, 65343, '\p{connectorpunctuation}', "");
     Expect(0, 65343, '\p{^connectorpunctuation}', "");
     Expect(0, 65343, '\P{connectorpunctuation}', "");
@@ -93869,16 +94683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65344, '\p{^connectorpunctuation}', "");
     Expect(1, 65344, '\P{connectorpunctuation}', "");
     Expect(0, 65344, '\P{^connectorpunctuation}', "");
-    Expect(1, 65343, '\p{_CONNECTOR_Punctuation}', "");
-    Expect(0, 65343, '\p{^_CONNECTOR_Punctuation}', "");
-    Expect(0, 65343, '\P{_CONNECTOR_Punctuation}', "");
-    Expect(1, 65343, '\P{^_CONNECTOR_Punctuation}', "");
-    Expect(0, 65344, '\p{_CONNECTOR_Punctuation}', "");
-    Expect(1, 65344, '\p{^_CONNECTOR_Punctuation}', "");
-    Expect(1, 65344, '\P{_CONNECTOR_Punctuation}', "");
-    Expect(0, 65344, '\P{^_CONNECTOR_Punctuation}', "");
-    Error('\p{:= -Is_CONNECTOR_punctuation}');
-    Error('\P{:= -Is_CONNECTOR_punctuation}');
+    Expect(1, 65343, '\p{_CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65343, '\p{^_CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65343, '\P{_CONNECTOR_PUNCTUATION}', "");
+    Expect(1, 65343, '\P{^_CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65344, '\p{_CONNECTOR_PUNCTUATION}', "");
+    Expect(1, 65344, '\p{^_CONNECTOR_PUNCTUATION}', "");
+    Expect(1, 65344, '\P{_CONNECTOR_PUNCTUATION}', "");
+    Expect(0, 65344, '\P{^_CONNECTOR_PUNCTUATION}', "");
+    Error('\p{:=-	is_Connector_punctuation}');
+    Error('\P{:=-	is_Connector_punctuation}');
     Expect(1, 65343, '\p{isconnectorpunctuation}', "");
     Expect(0, 65343, '\p{^isconnectorpunctuation}', "");
     Expect(0, 65343, '\P{isconnectorpunctuation}', "");
@@ -93887,16 +94701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65344, '\p{^isconnectorpunctuation}', "");
     Expect(1, 65344, '\P{isconnectorpunctuation}', "");
     Expect(0, 65344, '\P{^isconnectorpunctuation}', "");
-    Expect(1, 65343, '\p{--IS_Connector_punctuation}', "");
-    Expect(0, 65343, '\p{^--IS_Connector_punctuation}', "");
-    Expect(0, 65343, '\P{--IS_Connector_punctuation}', "");
-    Expect(1, 65343, '\P{^--IS_Connector_punctuation}', "");
-    Expect(0, 65344, '\p{--IS_Connector_punctuation}', "");
-    Expect(1, 65344, '\p{^--IS_Connector_punctuation}', "");
-    Expect(1, 65344, '\P{--IS_Connector_punctuation}', "");
-    Expect(0, 65344, '\P{^--IS_Connector_punctuation}', "");
-    Error('\p{ /a/Pc}');
-    Error('\P{ /a/Pc}');
+    Expect(1, 65343, '\p{ Is_Connector_punctuation}', "");
+    Expect(0, 65343, '\p{^ Is_Connector_punctuation}', "");
+    Expect(0, 65343, '\P{ Is_Connector_punctuation}', "");
+    Expect(1, 65343, '\P{^ Is_Connector_punctuation}', "");
+    Expect(0, 65344, '\p{ Is_Connector_punctuation}', "");
+    Expect(1, 65344, '\p{^ Is_Connector_punctuation}', "");
+    Expect(1, 65344, '\P{ Is_Connector_punctuation}', "");
+    Expect(0, 65344, '\P{^ Is_Connector_punctuation}', "");
+    Error('\p{	:=pc}');
+    Error('\P{	:=pc}');
     Expect(1, 65343, '\p{pc}', "");
     Expect(0, 65343, '\p{^pc}', "");
     Expect(0, 65343, '\P{pc}', "");
@@ -93905,16 +94719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65344, '\p{^pc}', "");
     Expect(1, 65344, '\P{pc}', "");
     Expect(0, 65344, '\P{^pc}', "");
-    Expect(1, 65343, '\p{_ PC}', "");
-    Expect(0, 65343, '\p{^_ PC}', "");
-    Expect(0, 65343, '\P{_ PC}', "");
-    Expect(1, 65343, '\P{^_ PC}', "");
-    Expect(0, 65344, '\p{_ PC}', "");
-    Expect(1, 65344, '\p{^_ PC}', "");
-    Expect(1, 65344, '\P{_ PC}', "");
-    Expect(0, 65344, '\P{^_ PC}', "");
-    Error('\p{:=  is_Pc}');
-    Error('\P{:=  is_Pc}');
+    Expect(1, 65343, '\p{	pc}', "");
+    Expect(0, 65343, '\p{^	pc}', "");
+    Expect(0, 65343, '\P{	pc}', "");
+    Expect(1, 65343, '\P{^	pc}', "");
+    Expect(0, 65344, '\p{	pc}', "");
+    Expect(1, 65344, '\p{^	pc}', "");
+    Expect(1, 65344, '\P{	pc}', "");
+    Expect(0, 65344, '\P{^	pc}', "");
+    Error('\p{	Is_PC/a/}');
+    Error('\P{	Is_PC/a/}');
     Expect(1, 65343, '\p{ispc}', "");
     Expect(0, 65343, '\p{^ispc}', "");
     Expect(0, 65343, '\P{ispc}', "");
@@ -93923,16 +94737,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65344, '\p{^ispc}', "");
     Expect(1, 65344, '\P{ispc}', "");
     Expect(0, 65344, '\P{^ispc}', "");
-    Expect(1, 65343, '\p{		is_pc}', "");
-    Expect(0, 65343, '\p{^		is_pc}', "");
-    Expect(0, 65343, '\P{		is_pc}', "");
-    Expect(1, 65343, '\P{^		is_pc}', "");
-    Expect(0, 65344, '\p{		is_pc}', "");
-    Expect(1, 65344, '\p{^		is_pc}', "");
-    Expect(1, 65344, '\P{		is_pc}', "");
-    Expect(0, 65344, '\P{^		is_pc}', "");
-    Error('\p{-	Control_Pictures:=}');
-    Error('\P{-	Control_Pictures:=}');
+    Expect(1, 65343, '\p{ -Is_Pc}', "");
+    Expect(0, 65343, '\p{^ -Is_Pc}', "");
+    Expect(0, 65343, '\P{ -Is_Pc}', "");
+    Expect(1, 65343, '\P{^ -Is_Pc}', "");
+    Expect(0, 65344, '\p{ -Is_Pc}', "");
+    Expect(1, 65344, '\p{^ -Is_Pc}', "");
+    Expect(1, 65344, '\P{ -Is_Pc}', "");
+    Expect(0, 65344, '\P{^ -Is_Pc}', "");
+    Error('\p{	control_PICTURES:=}');
+    Error('\P{	control_PICTURES:=}');
     Expect(1, 9279, '\p{controlpictures}', "");
     Expect(0, 9279, '\p{^controlpictures}', "");
     Expect(0, 9279, '\P{controlpictures}', "");
@@ -93941,16 +94755,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9280, '\p{^controlpictures}', "");
     Expect(1, 9280, '\P{controlpictures}', "");
     Expect(0, 9280, '\P{^controlpictures}', "");
-    Expect(1, 9279, '\p{_-CONTROL_PICTURES}', "");
-    Expect(0, 9279, '\p{^_-CONTROL_PICTURES}', "");
-    Expect(0, 9279, '\P{_-CONTROL_PICTURES}', "");
-    Expect(1, 9279, '\P{^_-CONTROL_PICTURES}', "");
-    Expect(0, 9280, '\p{_-CONTROL_PICTURES}', "");
-    Expect(1, 9280, '\p{^_-CONTROL_PICTURES}', "");
-    Expect(1, 9280, '\P{_-CONTROL_PICTURES}', "");
-    Expect(0, 9280, '\P{^_-CONTROL_PICTURES}', "");
-    Error('\p{:=- is_Control_pictures}');
-    Error('\P{:=- is_Control_pictures}');
+    Expect(1, 9279, '\p{  Control_Pictures}', "");
+    Expect(0, 9279, '\p{^  Control_Pictures}', "");
+    Expect(0, 9279, '\P{  Control_Pictures}', "");
+    Expect(1, 9279, '\P{^  Control_Pictures}', "");
+    Expect(0, 9280, '\p{  Control_Pictures}', "");
+    Expect(1, 9280, '\p{^  Control_Pictures}', "");
+    Expect(1, 9280, '\P{  Control_Pictures}', "");
+    Expect(0, 9280, '\P{^  Control_Pictures}', "");
+    Error('\p{:=	 is_control_PICTURES}');
+    Error('\P{:=	 is_control_PICTURES}');
     Expect(1, 9279, '\p{iscontrolpictures}', "");
     Expect(0, 9279, '\p{^iscontrolpictures}', "");
     Expect(0, 9279, '\P{iscontrolpictures}', "");
@@ -93959,16 +94773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9280, '\p{^iscontrolpictures}', "");
     Expect(1, 9280, '\P{iscontrolpictures}', "");
     Expect(0, 9280, '\P{^iscontrolpictures}', "");
-    Expect(1, 9279, '\p{-	Is_CONTROL_PICTURES}', "");
-    Expect(0, 9279, '\p{^-	Is_CONTROL_PICTURES}', "");
-    Expect(0, 9279, '\P{-	Is_CONTROL_PICTURES}', "");
-    Expect(1, 9279, '\P{^-	Is_CONTROL_PICTURES}', "");
-    Expect(0, 9280, '\p{-	Is_CONTROL_PICTURES}', "");
-    Expect(1, 9280, '\p{^-	Is_CONTROL_PICTURES}', "");
-    Expect(1, 9280, '\P{-	Is_CONTROL_PICTURES}', "");
-    Expect(0, 9280, '\P{^-	Is_CONTROL_PICTURES}', "");
-    Error('\p{ :=In_Control_PICTURES}');
-    Error('\P{ :=In_Control_PICTURES}');
+    Expect(1, 9279, '\p{-_Is_control_Pictures}', "");
+    Expect(0, 9279, '\p{^-_Is_control_Pictures}', "");
+    Expect(0, 9279, '\P{-_Is_control_Pictures}', "");
+    Expect(1, 9279, '\P{^-_Is_control_Pictures}', "");
+    Expect(0, 9280, '\p{-_Is_control_Pictures}', "");
+    Expect(1, 9280, '\p{^-_Is_control_Pictures}', "");
+    Expect(1, 9280, '\P{-_Is_control_Pictures}', "");
+    Expect(0, 9280, '\P{^-_Is_control_Pictures}', "");
+    Error('\p{	/a/In_control_PICTURES}');
+    Error('\P{	/a/In_control_PICTURES}');
     Expect(1, 9279, '\p{incontrolpictures}', "");
     Expect(0, 9279, '\p{^incontrolpictures}', "");
     Expect(0, 9279, '\P{incontrolpictures}', "");
@@ -93977,16 +94791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9280, '\p{^incontrolpictures}', "");
     Expect(1, 9280, '\P{incontrolpictures}', "");
     Expect(0, 9280, '\P{^incontrolpictures}', "");
-    Expect(1, 9279, '\p{	in_Control_Pictures}', "");
-    Expect(0, 9279, '\p{^	in_Control_Pictures}', "");
-    Expect(0, 9279, '\P{	in_Control_Pictures}', "");
-    Expect(1, 9279, '\P{^	in_Control_Pictures}', "");
-    Expect(0, 9280, '\p{	in_Control_Pictures}', "");
-    Expect(1, 9280, '\p{^	in_Control_Pictures}', "");
-    Expect(1, 9280, '\P{	in_Control_Pictures}', "");
-    Expect(0, 9280, '\P{^	in_Control_Pictures}', "");
-    Error('\p{	-COPTIC/a/}');
-    Error('\P{	-COPTIC/a/}');
+    Expect(1, 9279, '\p{ in_Control_pictures}', "");
+    Expect(0, 9279, '\p{^ in_Control_pictures}', "");
+    Expect(0, 9279, '\P{ in_Control_pictures}', "");
+    Expect(1, 9279, '\P{^ in_Control_pictures}', "");
+    Expect(0, 9280, '\p{ in_Control_pictures}', "");
+    Expect(1, 9280, '\p{^ in_Control_pictures}', "");
+    Expect(1, 9280, '\P{ in_Control_pictures}', "");
+    Expect(0, 9280, '\P{^ in_Control_pictures}', "");
+    Error('\p{:= _COPTIC}');
+    Error('\P{:= _COPTIC}');
     Expect(1, 66299, '\p{coptic}', "");
     Expect(0, 66299, '\p{^coptic}', "");
     Expect(0, 66299, '\P{coptic}', "");
@@ -93995,16 +94809,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66300, '\p{^coptic}', "");
     Expect(1, 66300, '\P{coptic}', "");
     Expect(0, 66300, '\P{^coptic}', "");
-    Expect(1, 66299, '\p{	_COPTIC}', "");
-    Expect(0, 66299, '\p{^	_COPTIC}', "");
-    Expect(0, 66299, '\P{	_COPTIC}', "");
-    Expect(1, 66299, '\P{^	_COPTIC}', "");
-    Expect(0, 66300, '\p{	_COPTIC}', "");
-    Expect(1, 66300, '\p{^	_COPTIC}', "");
-    Expect(1, 66300, '\P{	_COPTIC}', "");
-    Expect(0, 66300, '\P{^	_COPTIC}', "");
-    Error('\p{IS_coptic/a/}');
-    Error('\P{IS_coptic/a/}');
+    Expect(1, 66299, '\p{	Coptic}', "");
+    Expect(0, 66299, '\p{^	Coptic}', "");
+    Expect(0, 66299, '\P{	Coptic}', "");
+    Expect(1, 66299, '\P{^	Coptic}', "");
+    Expect(0, 66300, '\p{	Coptic}', "");
+    Expect(1, 66300, '\p{^	Coptic}', "");
+    Expect(1, 66300, '\P{	Coptic}', "");
+    Expect(0, 66300, '\P{^	Coptic}', "");
+    Error('\p{/a/ Is_COPTIC}');
+    Error('\P{/a/ Is_COPTIC}');
     Expect(1, 66299, '\p{iscoptic}', "");
     Expect(0, 66299, '\p{^iscoptic}', "");
     Expect(0, 66299, '\P{iscoptic}', "");
@@ -94013,16 +94827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66300, '\p{^iscoptic}', "");
     Expect(1, 66300, '\P{iscoptic}', "");
     Expect(0, 66300, '\P{^iscoptic}', "");
-    Expect(1, 66299, '\p{-_IS_coptic}', "");
-    Expect(0, 66299, '\p{^-_IS_coptic}', "");
-    Expect(0, 66299, '\P{-_IS_coptic}', "");
-    Expect(1, 66299, '\P{^-_IS_coptic}', "");
-    Expect(0, 66300, '\p{-_IS_coptic}', "");
-    Expect(1, 66300, '\p{^-_IS_coptic}', "");
-    Expect(1, 66300, '\P{-_IS_coptic}', "");
-    Expect(0, 66300, '\P{^-_IS_coptic}', "");
-    Error('\p{-/a/Copt}');
-    Error('\P{-/a/Copt}');
+    Expect(1, 66299, '\p{-	IS_coptic}', "");
+    Expect(0, 66299, '\p{^-	IS_coptic}', "");
+    Expect(0, 66299, '\P{-	IS_coptic}', "");
+    Expect(1, 66299, '\P{^-	IS_coptic}', "");
+    Expect(0, 66300, '\p{-	IS_coptic}', "");
+    Expect(1, 66300, '\p{^-	IS_coptic}', "");
+    Expect(1, 66300, '\P{-	IS_coptic}', "");
+    Expect(0, 66300, '\P{^-	IS_coptic}', "");
+    Error('\p{/a/ 	Copt}');
+    Error('\P{/a/ 	Copt}');
     Expect(1, 66299, '\p{copt}', "");
     Expect(0, 66299, '\p{^copt}', "");
     Expect(0, 66299, '\P{copt}', "");
@@ -94031,16 +94845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66300, '\p{^copt}', "");
     Expect(1, 66300, '\P{copt}', "");
     Expect(0, 66300, '\P{^copt}', "");
-    Expect(1, 66299, '\p{	Copt}', "");
-    Expect(0, 66299, '\p{^	Copt}', "");
-    Expect(0, 66299, '\P{	Copt}', "");
-    Expect(1, 66299, '\P{^	Copt}', "");
-    Expect(0, 66300, '\p{	Copt}', "");
-    Expect(1, 66300, '\p{^	Copt}', "");
-    Expect(1, 66300, '\P{	Copt}', "");
-    Expect(0, 66300, '\P{^	Copt}', "");
-    Error('\p{ 	is_COPT/a/}');
-    Error('\P{ 	is_COPT/a/}');
+    Expect(1, 66299, '\p{  Copt}', "");
+    Expect(0, 66299, '\p{^  Copt}', "");
+    Expect(0, 66299, '\P{  Copt}', "");
+    Expect(1, 66299, '\P{^  Copt}', "");
+    Expect(0, 66300, '\p{  Copt}', "");
+    Expect(1, 66300, '\p{^  Copt}', "");
+    Expect(1, 66300, '\P{  Copt}', "");
+    Expect(0, 66300, '\P{^  Copt}', "");
+    Error('\p{	 IS_COPT:=}');
+    Error('\P{	 IS_COPT:=}');
     Expect(1, 66299, '\p{iscopt}', "");
     Expect(0, 66299, '\p{^iscopt}', "");
     Expect(0, 66299, '\P{iscopt}', "");
@@ -94049,16 +94863,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66300, '\p{^iscopt}', "");
     Expect(1, 66300, '\P{iscopt}', "");
     Expect(0, 66300, '\P{^iscopt}', "");
-    Expect(1, 66299, '\p{_	is_Copt}', "");
-    Expect(0, 66299, '\p{^_	is_Copt}', "");
-    Expect(0, 66299, '\P{_	is_Copt}', "");
-    Expect(1, 66299, '\P{^_	is_Copt}', "");
-    Expect(0, 66300, '\p{_	is_Copt}', "");
-    Expect(1, 66300, '\p{^_	is_Copt}', "");
-    Expect(1, 66300, '\P{_	is_Copt}', "");
-    Expect(0, 66300, '\P{^_	is_Copt}', "");
-    Error('\p{:=QAAC}');
-    Error('\P{:=QAAC}');
+    Expect(1, 66299, '\p{_IS_COPT}', "");
+    Expect(0, 66299, '\p{^_IS_COPT}', "");
+    Expect(0, 66299, '\P{_IS_COPT}', "");
+    Expect(1, 66299, '\P{^_IS_COPT}', "");
+    Expect(0, 66300, '\p{_IS_COPT}', "");
+    Expect(1, 66300, '\p{^_IS_COPT}', "");
+    Expect(1, 66300, '\P{_IS_COPT}', "");
+    Expect(0, 66300, '\P{^_IS_COPT}', "");
+    Error('\p{  qaac:=}');
+    Error('\P{  qaac:=}');
     Expect(1, 66299, '\p{qaac}', "");
     Expect(0, 66299, '\p{^qaac}', "");
     Expect(0, 66299, '\P{qaac}', "");
@@ -94067,16 +94881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66300, '\p{^qaac}', "");
     Expect(1, 66300, '\P{qaac}', "");
     Expect(0, 66300, '\P{^qaac}', "");
-    Expect(1, 66299, '\p{_ Qaac}', "");
-    Expect(0, 66299, '\p{^_ Qaac}', "");
-    Expect(0, 66299, '\P{_ Qaac}', "");
-    Expect(1, 66299, '\P{^_ Qaac}', "");
-    Expect(0, 66300, '\p{_ Qaac}', "");
-    Expect(1, 66300, '\p{^_ Qaac}', "");
-    Expect(1, 66300, '\P{_ Qaac}', "");
-    Expect(0, 66300, '\P{^_ Qaac}', "");
-    Error('\p{ /a/Is_QAAC}');
-    Error('\P{ /a/Is_QAAC}');
+    Expect(1, 66299, '\p{	_Qaac}', "");
+    Expect(0, 66299, '\p{^	_Qaac}', "");
+    Expect(0, 66299, '\P{	_Qaac}', "");
+    Expect(1, 66299, '\P{^	_Qaac}', "");
+    Expect(0, 66300, '\p{	_Qaac}', "");
+    Expect(1, 66300, '\p{^	_Qaac}', "");
+    Expect(1, 66300, '\P{	_Qaac}', "");
+    Expect(0, 66300, '\P{^	_Qaac}', "");
+    Error('\p{	-Is_QAAC/a/}');
+    Error('\P{	-Is_QAAC/a/}');
     Expect(1, 66299, '\p{isqaac}', "");
     Expect(0, 66299, '\p{^isqaac}', "");
     Expect(0, 66299, '\P{isqaac}', "");
@@ -94085,16 +94899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66300, '\p{^isqaac}', "");
     Expect(1, 66300, '\P{isqaac}', "");
     Expect(0, 66300, '\P{^isqaac}', "");
-    Expect(1, 66299, '\p{-is_Qaac}', "");
-    Expect(0, 66299, '\p{^-is_Qaac}', "");
-    Expect(0, 66299, '\P{-is_Qaac}', "");
-    Expect(1, 66299, '\P{^-is_Qaac}', "");
-    Expect(0, 66300, '\p{-is_Qaac}', "");
-    Expect(1, 66300, '\p{^-is_Qaac}', "");
-    Expect(1, 66300, '\P{-is_Qaac}', "");
-    Expect(0, 66300, '\P{^-is_Qaac}', "");
-    Error('\p{:=		COPTIC_epact_numbers}');
-    Error('\P{:=		COPTIC_epact_numbers}');
+    Expect(1, 66299, '\p{_-Is_Qaac}', "");
+    Expect(0, 66299, '\p{^_-Is_Qaac}', "");
+    Expect(0, 66299, '\P{_-Is_Qaac}', "");
+    Expect(1, 66299, '\P{^_-Is_Qaac}', "");
+    Expect(0, 66300, '\p{_-Is_Qaac}', "");
+    Expect(1, 66300, '\p{^_-Is_Qaac}', "");
+    Expect(1, 66300, '\P{_-Is_Qaac}', "");
+    Expect(0, 66300, '\P{^_-Is_Qaac}', "");
+    Error('\p{_ Coptic_epact_NUMBERS/a/}');
+    Error('\P{_ Coptic_epact_NUMBERS/a/}');
     Expect(1, 66303, '\p{copticepactnumbers}', "");
     Expect(0, 66303, '\p{^copticepactnumbers}', "");
     Expect(0, 66303, '\P{copticepactnumbers}', "");
@@ -94103,16 +94917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66304, '\p{^copticepactnumbers}', "");
     Expect(1, 66304, '\P{copticepactnumbers}', "");
     Expect(0, 66304, '\P{^copticepactnumbers}', "");
-    Expect(1, 66303, '\p{ COPTIC_Epact_numbers}', "");
-    Expect(0, 66303, '\p{^ COPTIC_Epact_numbers}', "");
-    Expect(0, 66303, '\P{ COPTIC_Epact_numbers}', "");
-    Expect(1, 66303, '\P{^ COPTIC_Epact_numbers}', "");
-    Expect(0, 66304, '\p{ COPTIC_Epact_numbers}', "");
-    Expect(1, 66304, '\p{^ COPTIC_Epact_numbers}', "");
-    Expect(1, 66304, '\P{ COPTIC_Epact_numbers}', "");
-    Expect(0, 66304, '\P{^ COPTIC_Epact_numbers}', "");
-    Error('\p{ -IS_Coptic_EPACT_numbers:=}');
-    Error('\P{ -IS_Coptic_EPACT_numbers:=}');
+    Expect(1, 66303, '\p{		COPTIC_epact_numbers}', "");
+    Expect(0, 66303, '\p{^		COPTIC_epact_numbers}', "");
+    Expect(0, 66303, '\P{		COPTIC_epact_numbers}', "");
+    Expect(1, 66303, '\P{^		COPTIC_epact_numbers}', "");
+    Expect(0, 66304, '\p{		COPTIC_epact_numbers}', "");
+    Expect(1, 66304, '\p{^		COPTIC_epact_numbers}', "");
+    Expect(1, 66304, '\P{		COPTIC_epact_numbers}', "");
+    Expect(0, 66304, '\P{^		COPTIC_epact_numbers}', "");
+    Error('\p{	IS_coptic_EPACT_NUMBERS:=}');
+    Error('\P{	IS_coptic_EPACT_NUMBERS:=}');
     Expect(1, 66303, '\p{iscopticepactnumbers}', "");
     Expect(0, 66303, '\p{^iscopticepactnumbers}', "");
     Expect(0, 66303, '\P{iscopticepactnumbers}', "");
@@ -94121,16 +94935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66304, '\p{^iscopticepactnumbers}', "");
     Expect(1, 66304, '\P{iscopticepactnumbers}', "");
     Expect(0, 66304, '\P{^iscopticepactnumbers}', "");
-    Expect(1, 66303, '\p{ IS_Coptic_EPACT_Numbers}', "");
-    Expect(0, 66303, '\p{^ IS_Coptic_EPACT_Numbers}', "");
-    Expect(0, 66303, '\P{ IS_Coptic_EPACT_Numbers}', "");
-    Expect(1, 66303, '\P{^ IS_Coptic_EPACT_Numbers}', "");
-    Expect(0, 66304, '\p{ IS_Coptic_EPACT_Numbers}', "");
-    Expect(1, 66304, '\p{^ IS_Coptic_EPACT_Numbers}', "");
-    Expect(1, 66304, '\P{ IS_Coptic_EPACT_Numbers}', "");
-    Expect(0, 66304, '\P{^ IS_Coptic_EPACT_Numbers}', "");
-    Error('\p{_-In_COPTIC_epact_Numbers/a/}');
-    Error('\P{_-In_COPTIC_epact_Numbers/a/}');
+    Expect(1, 66303, '\p{  is_coptic_EPACT_Numbers}', "");
+    Expect(0, 66303, '\p{^  is_coptic_EPACT_Numbers}', "");
+    Expect(0, 66303, '\P{  is_coptic_EPACT_Numbers}', "");
+    Expect(1, 66303, '\P{^  is_coptic_EPACT_Numbers}', "");
+    Expect(0, 66304, '\p{  is_coptic_EPACT_Numbers}', "");
+    Expect(1, 66304, '\p{^  is_coptic_EPACT_Numbers}', "");
+    Expect(1, 66304, '\P{  is_coptic_EPACT_Numbers}', "");
+    Expect(0, 66304, '\P{^  is_coptic_EPACT_Numbers}', "");
+    Error('\p{:= 	In_COPTIC_epact_Numbers}');
+    Error('\P{:= 	In_COPTIC_epact_Numbers}');
     Expect(1, 66303, '\p{incopticepactnumbers}', "");
     Expect(0, 66303, '\p{^incopticepactnumbers}', "");
     Expect(0, 66303, '\P{incopticepactnumbers}', "");
@@ -94139,16 +94953,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66304, '\p{^incopticepactnumbers}', "");
     Expect(1, 66304, '\P{incopticepactnumbers}', "");
     Expect(0, 66304, '\P{^incopticepactnumbers}', "");
-    Expect(1, 66303, '\p{ in_coptic_Epact_numbers}', "");
-    Expect(0, 66303, '\p{^ in_coptic_Epact_numbers}', "");
-    Expect(0, 66303, '\P{ in_coptic_Epact_numbers}', "");
-    Expect(1, 66303, '\P{^ in_coptic_Epact_numbers}', "");
-    Expect(0, 66304, '\p{ in_coptic_Epact_numbers}', "");
-    Expect(1, 66304, '\p{^ in_coptic_Epact_numbers}', "");
-    Expect(1, 66304, '\P{ in_coptic_Epact_numbers}', "");
-    Expect(0, 66304, '\P{^ in_coptic_Epact_numbers}', "");
-    Error('\p{-Counting_Rod_Numerals/a/}');
-    Error('\P{-Counting_Rod_Numerals/a/}');
+    Expect(1, 66303, '\p{	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(0, 66303, '\p{^	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(0, 66303, '\P{	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(1, 66303, '\P{^	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(0, 66304, '\p{	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(1, 66304, '\p{^	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(1, 66304, '\P{	 In_Coptic_Epact_NUMBERS}', "");
+    Expect(0, 66304, '\P{^	 In_Coptic_Epact_NUMBERS}', "");
+    Error('\p{:=_counting_rod_NUMERALS}');
+    Error('\P{:=_counting_rod_NUMERALS}');
     Expect(1, 119679, '\p{countingrodnumerals}', "");
     Expect(0, 119679, '\p{^countingrodnumerals}', "");
     Expect(0, 119679, '\P{countingrodnumerals}', "");
@@ -94157,16 +94971,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119680, '\p{^countingrodnumerals}', "");
     Expect(1, 119680, '\P{countingrodnumerals}', "");
     Expect(0, 119680, '\P{^countingrodnumerals}', "");
-    Expect(1, 119679, '\p{_Counting_rod_NUMERALS}', "");
-    Expect(0, 119679, '\p{^_Counting_rod_NUMERALS}', "");
-    Expect(0, 119679, '\P{_Counting_rod_NUMERALS}', "");
-    Expect(1, 119679, '\P{^_Counting_rod_NUMERALS}', "");
-    Expect(0, 119680, '\p{_Counting_rod_NUMERALS}', "");
-    Expect(1, 119680, '\p{^_Counting_rod_NUMERALS}', "");
-    Expect(1, 119680, '\P{_Counting_rod_NUMERALS}', "");
-    Expect(0, 119680, '\P{^_Counting_rod_NUMERALS}', "");
-    Error('\p{/a/	IS_Counting_Rod_NUMERALS}');
-    Error('\P{/a/	IS_Counting_Rod_NUMERALS}');
+    Expect(1, 119679, '\p{- COUNTING_rod_numerals}', "");
+    Expect(0, 119679, '\p{^- COUNTING_rod_numerals}', "");
+    Expect(0, 119679, '\P{- COUNTING_rod_numerals}', "");
+    Expect(1, 119679, '\P{^- COUNTING_rod_numerals}', "");
+    Expect(0, 119680, '\p{- COUNTING_rod_numerals}', "");
+    Expect(1, 119680, '\p{^- COUNTING_rod_numerals}', "");
+    Expect(1, 119680, '\P{- COUNTING_rod_numerals}', "");
+    Expect(0, 119680, '\P{^- COUNTING_rod_numerals}', "");
+    Error('\p{  is_counting_rod_Numerals:=}');
+    Error('\P{  is_counting_rod_Numerals:=}');
     Expect(1, 119679, '\p{iscountingrodnumerals}', "");
     Expect(0, 119679, '\p{^iscountingrodnumerals}', "");
     Expect(0, 119679, '\P{iscountingrodnumerals}', "");
@@ -94175,16 +94989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119680, '\p{^iscountingrodnumerals}', "");
     Expect(1, 119680, '\P{iscountingrodnumerals}', "");
     Expect(0, 119680, '\P{^iscountingrodnumerals}', "");
-    Expect(1, 119679, '\p{_	IS_Counting_rod_NUMERALS}', "");
-    Expect(0, 119679, '\p{^_	IS_Counting_rod_NUMERALS}', "");
-    Expect(0, 119679, '\P{_	IS_Counting_rod_NUMERALS}', "");
-    Expect(1, 119679, '\P{^_	IS_Counting_rod_NUMERALS}', "");
-    Expect(0, 119680, '\p{_	IS_Counting_rod_NUMERALS}', "");
-    Expect(1, 119680, '\p{^_	IS_Counting_rod_NUMERALS}', "");
-    Expect(1, 119680, '\P{_	IS_Counting_rod_NUMERALS}', "");
-    Expect(0, 119680, '\P{^_	IS_Counting_rod_NUMERALS}', "");
-    Error('\p{:=--In_counting_Rod_NUMERALS}');
-    Error('\P{:=--In_counting_Rod_NUMERALS}');
+    Expect(1, 119679, '\p{_is_Counting_rod_Numerals}', "");
+    Expect(0, 119679, '\p{^_is_Counting_rod_Numerals}', "");
+    Expect(0, 119679, '\P{_is_Counting_rod_Numerals}', "");
+    Expect(1, 119679, '\P{^_is_Counting_rod_Numerals}', "");
+    Expect(0, 119680, '\p{_is_Counting_rod_Numerals}', "");
+    Expect(1, 119680, '\p{^_is_Counting_rod_Numerals}', "");
+    Expect(1, 119680, '\P{_is_Counting_rod_Numerals}', "");
+    Expect(0, 119680, '\P{^_is_Counting_rod_Numerals}', "");
+    Error('\p{/a/-In_COUNTING_ROD_Numerals}');
+    Error('\P{/a/-In_COUNTING_ROD_Numerals}');
     Expect(1, 119679, '\p{incountingrodnumerals}', "");
     Expect(0, 119679, '\p{^incountingrodnumerals}', "");
     Expect(0, 119679, '\P{incountingrodnumerals}', "");
@@ -94193,16 +95007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119680, '\p{^incountingrodnumerals}', "");
     Expect(1, 119680, '\P{incountingrodnumerals}', "");
     Expect(0, 119680, '\P{^incountingrodnumerals}', "");
-    Expect(1, 119679, '\p{ IN_COUNTING_ROD_Numerals}', "");
-    Expect(0, 119679, '\p{^ IN_COUNTING_ROD_Numerals}', "");
-    Expect(0, 119679, '\P{ IN_COUNTING_ROD_Numerals}', "");
-    Expect(1, 119679, '\P{^ IN_COUNTING_ROD_Numerals}', "");
-    Expect(0, 119680, '\p{ IN_COUNTING_ROD_Numerals}', "");
-    Expect(1, 119680, '\p{^ IN_COUNTING_ROD_Numerals}', "");
-    Expect(1, 119680, '\P{ IN_COUNTING_ROD_Numerals}', "");
-    Expect(0, 119680, '\P{^ IN_COUNTING_ROD_Numerals}', "");
-    Error('\p{ Counting_Rod/a/}');
-    Error('\P{ Counting_Rod/a/}');
+    Expect(1, 119679, '\p{-	In_Counting_ROD_NUMERALS}', "");
+    Expect(0, 119679, '\p{^-	In_Counting_ROD_NUMERALS}', "");
+    Expect(0, 119679, '\P{-	In_Counting_ROD_NUMERALS}', "");
+    Expect(1, 119679, '\P{^-	In_Counting_ROD_NUMERALS}', "");
+    Expect(0, 119680, '\p{-	In_Counting_ROD_NUMERALS}', "");
+    Expect(1, 119680, '\p{^-	In_Counting_ROD_NUMERALS}', "");
+    Expect(1, 119680, '\P{-	In_Counting_ROD_NUMERALS}', "");
+    Expect(0, 119680, '\P{^-	In_Counting_ROD_NUMERALS}', "");
+    Error('\p{-	counting_Rod/a/}');
+    Error('\P{-	counting_Rod/a/}');
     Expect(1, 119679, '\p{countingrod}', "");
     Expect(0, 119679, '\p{^countingrod}', "");
     Expect(0, 119679, '\P{countingrod}', "");
@@ -94211,16 +95025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119680, '\p{^countingrod}', "");
     Expect(1, 119680, '\P{countingrod}', "");
     Expect(0, 119680, '\P{^countingrod}', "");
-    Expect(1, 119679, '\p{counting_Rod}', "");
-    Expect(0, 119679, '\p{^counting_Rod}', "");
-    Expect(0, 119679, '\P{counting_Rod}', "");
-    Expect(1, 119679, '\P{^counting_Rod}', "");
-    Expect(0, 119680, '\p{counting_Rod}', "");
-    Expect(1, 119680, '\p{^counting_Rod}', "");
-    Expect(1, 119680, '\P{counting_Rod}', "");
-    Expect(0, 119680, '\P{^counting_Rod}', "");
-    Error('\p{-/a/Is_COUNTING_Rod}');
-    Error('\P{-/a/Is_COUNTING_Rod}');
+    Expect(1, 119679, '\p{_-Counting_Rod}', "");
+    Expect(0, 119679, '\p{^_-Counting_Rod}', "");
+    Expect(0, 119679, '\P{_-Counting_Rod}', "");
+    Expect(1, 119679, '\P{^_-Counting_Rod}', "");
+    Expect(0, 119680, '\p{_-Counting_Rod}', "");
+    Expect(1, 119680, '\p{^_-Counting_Rod}', "");
+    Expect(1, 119680, '\P{_-Counting_Rod}', "");
+    Expect(0, 119680, '\P{^_-Counting_Rod}', "");
+    Error('\p{/a/	_IS_Counting_rod}');
+    Error('\P{/a/	_IS_Counting_rod}');
     Expect(1, 119679, '\p{iscountingrod}', "");
     Expect(0, 119679, '\p{^iscountingrod}', "");
     Expect(0, 119679, '\P{iscountingrod}', "");
@@ -94229,16 +95043,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119680, '\p{^iscountingrod}', "");
     Expect(1, 119680, '\P{iscountingrod}', "");
     Expect(0, 119680, '\P{^iscountingrod}', "");
-    Expect(1, 119679, '\p{	-Is_COUNTING_ROD}', "");
-    Expect(0, 119679, '\p{^	-Is_COUNTING_ROD}', "");
-    Expect(0, 119679, '\P{	-Is_COUNTING_ROD}', "");
-    Expect(1, 119679, '\P{^	-Is_COUNTING_ROD}', "");
-    Expect(0, 119680, '\p{	-Is_COUNTING_ROD}', "");
-    Expect(1, 119680, '\p{^	-Is_COUNTING_ROD}', "");
-    Expect(1, 119680, '\P{	-Is_COUNTING_ROD}', "");
-    Expect(0, 119680, '\P{^	-Is_COUNTING_ROD}', "");
-    Error('\p{ _in_COUNTING_rod:=}');
-    Error('\P{ _in_COUNTING_rod:=}');
+    Expect(1, 119679, '\p{		IS_Counting_rod}', "");
+    Expect(0, 119679, '\p{^		IS_Counting_rod}', "");
+    Expect(0, 119679, '\P{		IS_Counting_rod}', "");
+    Expect(1, 119679, '\P{^		IS_Counting_rod}', "");
+    Expect(0, 119680, '\p{		IS_Counting_rod}', "");
+    Expect(1, 119680, '\p{^		IS_Counting_rod}', "");
+    Expect(1, 119680, '\P{		IS_Counting_rod}', "");
+    Expect(0, 119680, '\P{^		IS_Counting_rod}', "");
+    Error('\p{	in_counting_rod:=}');
+    Error('\P{	in_counting_rod:=}');
     Expect(1, 119679, '\p{incountingrod}', "");
     Expect(0, 119679, '\p{^incountingrod}', "");
     Expect(0, 119679, '\P{incountingrod}', "");
@@ -94247,16 +95061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119680, '\p{^incountingrod}', "");
     Expect(1, 119680, '\P{incountingrod}', "");
     Expect(0, 119680, '\P{^incountingrod}', "");
-    Expect(1, 119679, '\p{__In_counting_Rod}', "");
-    Expect(0, 119679, '\p{^__In_counting_Rod}', "");
-    Expect(0, 119679, '\P{__In_counting_Rod}', "");
-    Expect(1, 119679, '\P{^__In_counting_Rod}', "");
-    Expect(0, 119680, '\p{__In_counting_Rod}', "");
-    Expect(1, 119680, '\p{^__In_counting_Rod}', "");
-    Expect(1, 119680, '\P{__In_counting_Rod}', "");
-    Expect(0, 119680, '\P{^__In_counting_Rod}', "");
-    Error('\p{:=Cuneiform}');
-    Error('\P{:=Cuneiform}');
+    Expect(1, 119679, '\p{	 In_Counting_ROD}', "");
+    Expect(0, 119679, '\p{^	 In_Counting_ROD}', "");
+    Expect(0, 119679, '\P{	 In_Counting_ROD}', "");
+    Expect(1, 119679, '\P{^	 In_Counting_ROD}', "");
+    Expect(0, 119680, '\p{	 In_Counting_ROD}', "");
+    Expect(1, 119680, '\p{^	 In_Counting_ROD}', "");
+    Expect(1, 119680, '\P{	 In_Counting_ROD}', "");
+    Expect(0, 119680, '\P{^	 In_Counting_ROD}', "");
+    Error('\p{/a/__CUNEIFORM}');
+    Error('\P{/a/__CUNEIFORM}');
     Expect(1, 75075, '\p{cuneiform}', "");
     Expect(0, 75075, '\p{^cuneiform}', "");
     Expect(0, 75075, '\P{cuneiform}', "");
@@ -94265,16 +95079,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75076, '\p{^cuneiform}', "");
     Expect(1, 75076, '\P{cuneiform}', "");
     Expect(0, 75076, '\P{^cuneiform}', "");
-    Expect(1, 75075, '\p{-_Cuneiform}', "");
-    Expect(0, 75075, '\p{^-_Cuneiform}', "");
-    Expect(0, 75075, '\P{-_Cuneiform}', "");
-    Expect(1, 75075, '\P{^-_Cuneiform}', "");
-    Expect(0, 75076, '\p{-_Cuneiform}', "");
-    Expect(1, 75076, '\p{^-_Cuneiform}', "");
-    Expect(1, 75076, '\P{-_Cuneiform}', "");
-    Expect(0, 75076, '\P{^-_Cuneiform}', "");
-    Error('\p{-_IS_cuneiform:=}');
-    Error('\P{-_IS_cuneiform:=}');
+    Expect(1, 75075, '\p{	cuneiform}', "");
+    Expect(0, 75075, '\p{^	cuneiform}', "");
+    Expect(0, 75075, '\P{	cuneiform}', "");
+    Expect(1, 75075, '\P{^	cuneiform}', "");
+    Expect(0, 75076, '\p{	cuneiform}', "");
+    Expect(1, 75076, '\p{^	cuneiform}', "");
+    Expect(1, 75076, '\P{	cuneiform}', "");
+    Expect(0, 75076, '\P{^	cuneiform}', "");
+    Error('\p{ _Is_cuneiform/a/}');
+    Error('\P{ _Is_cuneiform/a/}');
     Expect(1, 75075, '\p{iscuneiform}', "");
     Expect(0, 75075, '\p{^iscuneiform}', "");
     Expect(0, 75075, '\P{iscuneiform}', "");
@@ -94283,16 +95097,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75076, '\p{^iscuneiform}', "");
     Expect(1, 75076, '\P{iscuneiform}', "");
     Expect(0, 75076, '\P{^iscuneiform}', "");
-    Expect(1, 75075, '\p{	is_cuneiform}', "");
-    Expect(0, 75075, '\p{^	is_cuneiform}', "");
-    Expect(0, 75075, '\P{	is_cuneiform}', "");
-    Expect(1, 75075, '\P{^	is_cuneiform}', "");
-    Expect(0, 75076, '\p{	is_cuneiform}', "");
-    Expect(1, 75076, '\p{^	is_cuneiform}', "");
-    Expect(1, 75076, '\P{	is_cuneiform}', "");
-    Expect(0, 75076, '\P{^	is_cuneiform}', "");
-    Error('\p{ XSUX/a/}');
-    Error('\P{ XSUX/a/}');
+    Expect(1, 75075, '\p{ _IS_cuneiform}', "");
+    Expect(0, 75075, '\p{^ _IS_cuneiform}', "");
+    Expect(0, 75075, '\P{ _IS_cuneiform}', "");
+    Expect(1, 75075, '\P{^ _IS_cuneiform}', "");
+    Expect(0, 75076, '\p{ _IS_cuneiform}', "");
+    Expect(1, 75076, '\p{^ _IS_cuneiform}', "");
+    Expect(1, 75076, '\P{ _IS_cuneiform}', "");
+    Expect(0, 75076, '\P{^ _IS_cuneiform}', "");
+    Error('\p{:=- Xsux}');
+    Error('\P{:=- Xsux}');
     Expect(1, 75075, '\p{xsux}', "");
     Expect(0, 75075, '\p{^xsux}', "");
     Expect(0, 75075, '\P{xsux}', "");
@@ -94301,16 +95115,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75076, '\p{^xsux}', "");
     Expect(1, 75076, '\P{xsux}', "");
     Expect(0, 75076, '\P{^xsux}', "");
-    Expect(1, 75075, '\p{ XSUX}', "");
-    Expect(0, 75075, '\p{^ XSUX}', "");
-    Expect(0, 75075, '\P{ XSUX}', "");
-    Expect(1, 75075, '\P{^ XSUX}', "");
-    Expect(0, 75076, '\p{ XSUX}', "");
-    Expect(1, 75076, '\p{^ XSUX}', "");
-    Expect(1, 75076, '\P{ XSUX}', "");
-    Expect(0, 75076, '\P{^ XSUX}', "");
-    Error('\p{:=IS_Xsux}');
-    Error('\P{:=IS_Xsux}');
+    Expect(1, 75075, '\p{ xsux}', "");
+    Expect(0, 75075, '\p{^ xsux}', "");
+    Expect(0, 75075, '\P{ xsux}', "");
+    Expect(1, 75075, '\P{^ xsux}', "");
+    Expect(0, 75076, '\p{ xsux}', "");
+    Expect(1, 75076, '\p{^ xsux}', "");
+    Expect(1, 75076, '\P{ xsux}', "");
+    Expect(0, 75076, '\P{^ xsux}', "");
+    Error('\p{/a/-Is_XSUX}');
+    Error('\P{/a/-Is_XSUX}');
     Expect(1, 75075, '\p{isxsux}', "");
     Expect(0, 75075, '\p{^isxsux}', "");
     Expect(0, 75075, '\P{isxsux}', "");
@@ -94319,16 +95133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75076, '\p{^isxsux}', "");
     Expect(1, 75076, '\P{isxsux}', "");
     Expect(0, 75076, '\P{^isxsux}', "");
-    Expect(1, 75075, '\p{-IS_XSUX}', "");
-    Expect(0, 75075, '\p{^-IS_XSUX}', "");
-    Expect(0, 75075, '\P{-IS_XSUX}', "");
-    Expect(1, 75075, '\P{^-IS_XSUX}', "");
-    Expect(0, 75076, '\p{-IS_XSUX}', "");
-    Expect(1, 75076, '\p{^-IS_XSUX}', "");
-    Expect(1, 75076, '\P{-IS_XSUX}', "");
-    Expect(0, 75076, '\P{^-IS_XSUX}', "");
-    Error('\p{	-CUNEIFORM_numbers_AND_punctuation/a/}');
-    Error('\P{	-CUNEIFORM_numbers_AND_punctuation/a/}');
+    Expect(1, 75075, '\p{_ Is_Xsux}', "");
+    Expect(0, 75075, '\p{^_ Is_Xsux}', "");
+    Expect(0, 75075, '\P{_ Is_Xsux}', "");
+    Expect(1, 75075, '\P{^_ Is_Xsux}', "");
+    Expect(0, 75076, '\p{_ Is_Xsux}', "");
+    Expect(1, 75076, '\p{^_ Is_Xsux}', "");
+    Expect(1, 75076, '\P{_ Is_Xsux}', "");
+    Expect(0, 75076, '\P{^_ Is_Xsux}', "");
+    Error('\p{_ CUNEIFORM_numbers_AND_Punctuation/a/}');
+    Error('\P{_ CUNEIFORM_numbers_AND_Punctuation/a/}');
     Expect(1, 74879, '\p{cuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\p{^cuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\P{cuneiformnumbersandpunctuation}', "");
@@ -94337,16 +95151,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74880, '\p{^cuneiformnumbersandpunctuation}', "");
     Expect(1, 74880, '\P{cuneiformnumbersandpunctuation}', "");
     Expect(0, 74880, '\P{^cuneiformnumbersandpunctuation}', "");
-    Expect(1, 74879, '\p{Cuneiform_numbers_And_Punctuation}', "");
-    Expect(0, 74879, '\p{^Cuneiform_numbers_And_Punctuation}', "");
-    Expect(0, 74879, '\P{Cuneiform_numbers_And_Punctuation}', "");
-    Expect(1, 74879, '\P{^Cuneiform_numbers_And_Punctuation}', "");
-    Expect(0, 74880, '\p{Cuneiform_numbers_And_Punctuation}', "");
-    Expect(1, 74880, '\p{^Cuneiform_numbers_And_Punctuation}', "");
-    Expect(1, 74880, '\P{Cuneiform_numbers_And_Punctuation}', "");
-    Expect(0, 74880, '\P{^Cuneiform_numbers_And_Punctuation}', "");
-    Error('\p{ Is_Cuneiform_NUMBERS_And_Punctuation:=}');
-    Error('\P{ Is_Cuneiform_NUMBERS_And_Punctuation:=}');
+    Expect(1, 74879, '\p{	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74879, '\p{^	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74879, '\P{	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(1, 74879, '\P{^	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74880, '\p{	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(1, 74880, '\p{^	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(1, 74880, '\P{	CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74880, '\P{^	CUNEIFORM_numbers_And_Punctuation}', "");
+    Error('\p{_/a/Is_Cuneiform_Numbers_AND_PUNCTUATION}');
+    Error('\P{_/a/Is_Cuneiform_Numbers_AND_PUNCTUATION}');
     Expect(1, 74879, '\p{iscuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\p{^iscuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\P{iscuneiformnumbersandpunctuation}', "");
@@ -94355,16 +95169,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74880, '\p{^iscuneiformnumbersandpunctuation}', "");
     Expect(1, 74880, '\P{iscuneiformnumbersandpunctuation}', "");
     Expect(0, 74880, '\P{^iscuneiformnumbersandpunctuation}', "");
-    Expect(1, 74879, '\p{_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(0, 74879, '\p{^_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(0, 74879, '\P{_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(1, 74879, '\P{^_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(0, 74880, '\p{_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(1, 74880, '\p{^_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(1, 74880, '\P{_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Expect(0, 74880, '\P{^_Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
-    Error('\p{ /a/In_cuneiform_NUMBERS_And_punctuation}');
-    Error('\P{ /a/In_cuneiform_NUMBERS_And_punctuation}');
+    Expect(1, 74879, '\p{ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(0, 74879, '\p{^ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(0, 74879, '\P{ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(1, 74879, '\P{^ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(0, 74880, '\p{ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(1, 74880, '\p{^ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(1, 74880, '\P{ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Expect(0, 74880, '\P{^ Is_Cuneiform_numbers_AND_PUNCTUATION}', "");
+    Error('\p{_/a/in_Cuneiform_numbers_And_Punctuation}');
+    Error('\P{_/a/in_Cuneiform_numbers_And_Punctuation}');
     Expect(1, 74879, '\p{incuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\p{^incuneiformnumbersandpunctuation}', "");
     Expect(0, 74879, '\P{incuneiformnumbersandpunctuation}', "");
@@ -94373,16 +95187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74880, '\p{^incuneiformnumbersandpunctuation}', "");
     Expect(1, 74880, '\P{incuneiformnumbersandpunctuation}', "");
     Expect(0, 74880, '\P{^incuneiformnumbersandpunctuation}', "");
-    Expect(1, 74879, '\p{ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74879, '\p{^ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74879, '\P{ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(1, 74879, '\P{^ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74880, '\p{ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(1, 74880, '\p{^ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(1, 74880, '\P{ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Expect(0, 74880, '\P{^ _In_Cuneiform_NUMBERS_And_Punctuation}', "");
-    Error('\p{-_CUNEIFORM_Numbers:=}');
-    Error('\P{-_CUNEIFORM_Numbers:=}');
+    Expect(1, 74879, '\p{ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74879, '\p{^ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74879, '\P{ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(1, 74879, '\P{^ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74880, '\p{ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(1, 74880, '\p{^ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(1, 74880, '\P{ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Expect(0, 74880, '\P{^ 	IN_CUNEIFORM_numbers_And_Punctuation}', "");
+    Error('\p{ Cuneiform_NUMBERS/a/}');
+    Error('\P{ Cuneiform_NUMBERS/a/}');
     Expect(1, 74879, '\p{cuneiformnumbers}', "");
     Expect(0, 74879, '\p{^cuneiformnumbers}', "");
     Expect(0, 74879, '\P{cuneiformnumbers}', "");
@@ -94391,16 +95205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74880, '\p{^cuneiformnumbers}', "");
     Expect(1, 74880, '\P{cuneiformnumbers}', "");
     Expect(0, 74880, '\P{^cuneiformnumbers}', "");
-    Expect(1, 74879, '\p{	-Cuneiform_Numbers}', "");
-    Expect(0, 74879, '\p{^	-Cuneiform_Numbers}', "");
-    Expect(0, 74879, '\P{	-Cuneiform_Numbers}', "");
-    Expect(1, 74879, '\P{^	-Cuneiform_Numbers}', "");
-    Expect(0, 74880, '\p{	-Cuneiform_Numbers}', "");
-    Expect(1, 74880, '\p{^	-Cuneiform_Numbers}', "");
-    Expect(1, 74880, '\P{	-Cuneiform_Numbers}', "");
-    Expect(0, 74880, '\P{^	-Cuneiform_Numbers}', "");
-    Error('\p{		IS_cuneiform_Numbers:=}');
-    Error('\P{		IS_cuneiform_Numbers:=}');
+    Expect(1, 74879, '\p{-cuneiform_NUMBERS}', "");
+    Expect(0, 74879, '\p{^-cuneiform_NUMBERS}', "");
+    Expect(0, 74879, '\P{-cuneiform_NUMBERS}', "");
+    Expect(1, 74879, '\P{^-cuneiform_NUMBERS}', "");
+    Expect(0, 74880, '\p{-cuneiform_NUMBERS}', "");
+    Expect(1, 74880, '\p{^-cuneiform_NUMBERS}', "");
+    Expect(1, 74880, '\P{-cuneiform_NUMBERS}', "");
+    Expect(0, 74880, '\P{^-cuneiform_NUMBERS}', "");
+    Error('\p{:=-_Is_Cuneiform_Numbers}');
+    Error('\P{:=-_Is_Cuneiform_Numbers}');
     Expect(1, 74879, '\p{iscuneiformnumbers}', "");
     Expect(0, 74879, '\p{^iscuneiformnumbers}', "");
     Expect(0, 74879, '\P{iscuneiformnumbers}', "");
@@ -94409,16 +95223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74880, '\p{^iscuneiformnumbers}', "");
     Expect(1, 74880, '\P{iscuneiformnumbers}', "");
     Expect(0, 74880, '\P{^iscuneiformnumbers}', "");
-    Expect(1, 74879, '\p{_	IS_cuneiform_numbers}', "");
-    Expect(0, 74879, '\p{^_	IS_cuneiform_numbers}', "");
-    Expect(0, 74879, '\P{_	IS_cuneiform_numbers}', "");
-    Expect(1, 74879, '\P{^_	IS_cuneiform_numbers}', "");
-    Expect(0, 74880, '\p{_	IS_cuneiform_numbers}', "");
-    Expect(1, 74880, '\p{^_	IS_cuneiform_numbers}', "");
-    Expect(1, 74880, '\P{_	IS_cuneiform_numbers}', "");
-    Expect(0, 74880, '\P{^_	IS_cuneiform_numbers}', "");
-    Error('\p{:=- In_CUNEIFORM_NUMBERS}');
-    Error('\P{:=- In_CUNEIFORM_NUMBERS}');
+    Expect(1, 74879, '\p{is_Cuneiform_numbers}', "");
+    Expect(0, 74879, '\p{^is_Cuneiform_numbers}', "");
+    Expect(0, 74879, '\P{is_Cuneiform_numbers}', "");
+    Expect(1, 74879, '\P{^is_Cuneiform_numbers}', "");
+    Expect(0, 74880, '\p{is_Cuneiform_numbers}', "");
+    Expect(1, 74880, '\p{^is_Cuneiform_numbers}', "");
+    Expect(1, 74880, '\P{is_Cuneiform_numbers}', "");
+    Expect(0, 74880, '\P{^is_Cuneiform_numbers}', "");
+    Error('\p{:=_-In_Cuneiform_numbers}');
+    Error('\P{:=_-In_Cuneiform_numbers}');
     Expect(1, 74879, '\p{incuneiformnumbers}', "");
     Expect(0, 74879, '\p{^incuneiformnumbers}', "");
     Expect(0, 74879, '\P{incuneiformnumbers}', "");
@@ -94427,16 +95241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74880, '\p{^incuneiformnumbers}', "");
     Expect(1, 74880, '\P{incuneiformnumbers}', "");
     Expect(0, 74880, '\P{^incuneiformnumbers}', "");
-    Expect(1, 74879, '\p{	-in_Cuneiform_Numbers}', "");
-    Expect(0, 74879, '\p{^	-in_Cuneiform_Numbers}', "");
-    Expect(0, 74879, '\P{	-in_Cuneiform_Numbers}', "");
-    Expect(1, 74879, '\P{^	-in_Cuneiform_Numbers}', "");
-    Expect(0, 74880, '\p{	-in_Cuneiform_Numbers}', "");
-    Expect(1, 74880, '\p{^	-in_Cuneiform_Numbers}', "");
-    Expect(1, 74880, '\P{	-in_Cuneiform_Numbers}', "");
-    Expect(0, 74880, '\P{^	-in_Cuneiform_Numbers}', "");
-    Error('\p{ :=Currency_symbol}');
-    Error('\P{ :=Currency_symbol}');
+    Expect(1, 74879, '\p{ _IN_cuneiform_numbers}', "");
+    Expect(0, 74879, '\p{^ _IN_cuneiform_numbers}', "");
+    Expect(0, 74879, '\P{ _IN_cuneiform_numbers}', "");
+    Expect(1, 74879, '\P{^ _IN_cuneiform_numbers}', "");
+    Expect(0, 74880, '\p{ _IN_cuneiform_numbers}', "");
+    Expect(1, 74880, '\p{^ _IN_cuneiform_numbers}', "");
+    Expect(1, 74880, '\P{ _IN_cuneiform_numbers}', "");
+    Expect(0, 74880, '\P{^ _IN_cuneiform_numbers}', "");
+    Error('\p{/a/	 Currency_symbol}');
+    Error('\P{/a/	 Currency_symbol}');
     Expect(1, 126128, '\p{currencysymbol}', "");
     Expect(0, 126128, '\p{^currencysymbol}', "");
     Expect(0, 126128, '\P{currencysymbol}', "");
@@ -94445,16 +95259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126129, '\p{^currencysymbol}', "");
     Expect(1, 126129, '\P{currencysymbol}', "");
     Expect(0, 126129, '\P{^currencysymbol}', "");
-    Expect(1, 126128, '\p{_	currency_symbol}', "");
-    Expect(0, 126128, '\p{^_	currency_symbol}', "");
-    Expect(0, 126128, '\P{_	currency_symbol}', "");
-    Expect(1, 126128, '\P{^_	currency_symbol}', "");
-    Expect(0, 126129, '\p{_	currency_symbol}', "");
-    Expect(1, 126129, '\p{^_	currency_symbol}', "");
-    Expect(1, 126129, '\P{_	currency_symbol}', "");
-    Expect(0, 126129, '\P{^_	currency_symbol}', "");
-    Error('\p{:=Is_Currency_SYMBOL}');
-    Error('\P{:=Is_Currency_SYMBOL}');
+    Expect(1, 126128, '\p{CURRENCY_Symbol}', "");
+    Expect(0, 126128, '\p{^CURRENCY_Symbol}', "");
+    Expect(0, 126128, '\P{CURRENCY_Symbol}', "");
+    Expect(1, 126128, '\P{^CURRENCY_Symbol}', "");
+    Expect(0, 126129, '\p{CURRENCY_Symbol}', "");
+    Expect(1, 126129, '\p{^CURRENCY_Symbol}', "");
+    Expect(1, 126129, '\P{CURRENCY_Symbol}', "");
+    Expect(0, 126129, '\P{^CURRENCY_Symbol}', "");
+    Error('\p{Is_CURRENCY_symbol/a/}');
+    Error('\P{Is_CURRENCY_symbol/a/}');
     Expect(1, 126128, '\p{iscurrencysymbol}', "");
     Expect(0, 126128, '\p{^iscurrencysymbol}', "");
     Expect(0, 126128, '\P{iscurrencysymbol}', "");
@@ -94463,16 +95277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126129, '\p{^iscurrencysymbol}', "");
     Expect(1, 126129, '\P{iscurrencysymbol}', "");
     Expect(0, 126129, '\P{^iscurrencysymbol}', "");
-    Expect(1, 126128, '\p{	IS_currency_Symbol}', "");
-    Expect(0, 126128, '\p{^	IS_currency_Symbol}', "");
-    Expect(0, 126128, '\P{	IS_currency_Symbol}', "");
-    Expect(1, 126128, '\P{^	IS_currency_Symbol}', "");
-    Expect(0, 126129, '\p{	IS_currency_Symbol}', "");
-    Expect(1, 126129, '\p{^	IS_currency_Symbol}', "");
-    Expect(1, 126129, '\P{	IS_currency_Symbol}', "");
-    Expect(0, 126129, '\P{^	IS_currency_Symbol}', "");
-    Error('\p{/a/	Sc}');
-    Error('\P{/a/	Sc}');
+    Expect(1, 126128, '\p{__Is_currency_SYMBOL}', "");
+    Expect(0, 126128, '\p{^__Is_currency_SYMBOL}', "");
+    Expect(0, 126128, '\P{__Is_currency_SYMBOL}', "");
+    Expect(1, 126128, '\P{^__Is_currency_SYMBOL}', "");
+    Expect(0, 126129, '\p{__Is_currency_SYMBOL}', "");
+    Expect(1, 126129, '\p{^__Is_currency_SYMBOL}', "");
+    Expect(1, 126129, '\P{__Is_currency_SYMBOL}', "");
+    Expect(0, 126129, '\P{^__Is_currency_SYMBOL}', "");
+    Error('\p{:=-Sc}');
+    Error('\P{:=-Sc}');
     Expect(1, 126128, '\p{sc}', "");
     Expect(0, 126128, '\p{^sc}', "");
     Expect(0, 126128, '\P{sc}', "");
@@ -94481,16 +95295,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126129, '\p{^sc}', "");
     Expect(1, 126129, '\P{sc}', "");
     Expect(0, 126129, '\P{^sc}', "");
-    Expect(1, 126128, '\p{	-SC}', "");
-    Expect(0, 126128, '\p{^	-SC}', "");
-    Expect(0, 126128, '\P{	-SC}', "");
-    Expect(1, 126128, '\P{^	-SC}', "");
-    Expect(0, 126129, '\p{	-SC}', "");
-    Expect(1, 126129, '\p{^	-SC}', "");
-    Expect(1, 126129, '\P{	-SC}', "");
-    Expect(0, 126129, '\P{^	-SC}', "");
-    Error('\p{-Is_Sc/a/}');
-    Error('\P{-Is_Sc/a/}');
+    Expect(1, 126128, '\p{	 Sc}', "");
+    Expect(0, 126128, '\p{^	 Sc}', "");
+    Expect(0, 126128, '\P{	 Sc}', "");
+    Expect(1, 126128, '\P{^	 Sc}', "");
+    Expect(0, 126129, '\p{	 Sc}', "");
+    Expect(1, 126129, '\p{^	 Sc}', "");
+    Expect(1, 126129, '\P{	 Sc}', "");
+    Expect(0, 126129, '\P{^	 Sc}', "");
+    Error('\p{ _IS_Sc:=}');
+    Error('\P{ _IS_Sc:=}');
     Expect(1, 126128, '\p{issc}', "");
     Expect(0, 126128, '\p{^issc}', "");
     Expect(0, 126128, '\P{issc}', "");
@@ -94499,16 +95313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126129, '\p{^issc}', "");
     Expect(1, 126129, '\P{issc}', "");
     Expect(0, 126129, '\P{^issc}', "");
-    Expect(1, 126128, '\p{--Is_sc}', "");
-    Expect(0, 126128, '\p{^--Is_sc}', "");
-    Expect(0, 126128, '\P{--Is_sc}', "");
-    Expect(1, 126128, '\P{^--Is_sc}', "");
-    Expect(0, 126129, '\p{--Is_sc}', "");
-    Expect(1, 126129, '\p{^--Is_sc}', "");
-    Expect(1, 126129, '\P{--Is_sc}', "");
-    Expect(0, 126129, '\P{^--Is_sc}', "");
-    Error('\p{/a/-Currency_Symbols}');
-    Error('\P{/a/-Currency_Symbols}');
+    Expect(1, 126128, '\p{_	IS_SC}', "");
+    Expect(0, 126128, '\p{^_	IS_SC}', "");
+    Expect(0, 126128, '\P{_	IS_SC}', "");
+    Expect(1, 126128, '\P{^_	IS_SC}', "");
+    Expect(0, 126129, '\p{_	IS_SC}', "");
+    Expect(1, 126129, '\p{^_	IS_SC}', "");
+    Expect(1, 126129, '\P{_	IS_SC}', "");
+    Expect(0, 126129, '\P{^_	IS_SC}', "");
+    Error('\p{	Currency_SYMBOLS/a/}');
+    Error('\P{	Currency_SYMBOLS/a/}');
     Expect(1, 8399, '\p{currencysymbols}', "");
     Expect(0, 8399, '\p{^currencysymbols}', "");
     Expect(0, 8399, '\P{currencysymbols}', "");
@@ -94517,16 +95331,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8400, '\p{^currencysymbols}', "");
     Expect(1, 8400, '\P{currencysymbols}', "");
     Expect(0, 8400, '\P{^currencysymbols}', "");
-    Expect(1, 8399, '\p{_CURRENCY_Symbols}', "");
-    Expect(0, 8399, '\p{^_CURRENCY_Symbols}', "");
-    Expect(0, 8399, '\P{_CURRENCY_Symbols}', "");
-    Expect(1, 8399, '\P{^_CURRENCY_Symbols}', "");
-    Expect(0, 8400, '\p{_CURRENCY_Symbols}', "");
-    Expect(1, 8400, '\p{^_CURRENCY_Symbols}', "");
-    Expect(1, 8400, '\P{_CURRENCY_Symbols}', "");
-    Expect(0, 8400, '\P{^_CURRENCY_Symbols}', "");
-    Error('\p{__Is_Currency_SYMBOLS/a/}');
-    Error('\P{__Is_Currency_SYMBOLS/a/}');
+    Expect(1, 8399, '\p{ _Currency_Symbols}', "");
+    Expect(0, 8399, '\p{^ _Currency_Symbols}', "");
+    Expect(0, 8399, '\P{ _Currency_Symbols}', "");
+    Expect(1, 8399, '\P{^ _Currency_Symbols}', "");
+    Expect(0, 8400, '\p{ _Currency_Symbols}', "");
+    Expect(1, 8400, '\p{^ _Currency_Symbols}', "");
+    Expect(1, 8400, '\P{ _Currency_Symbols}', "");
+    Expect(0, 8400, '\P{^ _Currency_Symbols}', "");
+    Error('\p{:=- Is_Currency_symbols}');
+    Error('\P{:=- Is_Currency_symbols}');
     Expect(1, 8399, '\p{iscurrencysymbols}', "");
     Expect(0, 8399, '\p{^iscurrencysymbols}', "");
     Expect(0, 8399, '\P{iscurrencysymbols}', "");
@@ -94535,16 +95349,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8400, '\p{^iscurrencysymbols}', "");
     Expect(1, 8400, '\P{iscurrencysymbols}', "");
     Expect(0, 8400, '\P{^iscurrencysymbols}', "");
-    Expect(1, 8399, '\p{	Is_currency_SYMBOLS}', "");
-    Expect(0, 8399, '\p{^	Is_currency_SYMBOLS}', "");
-    Expect(0, 8399, '\P{	Is_currency_SYMBOLS}', "");
-    Expect(1, 8399, '\P{^	Is_currency_SYMBOLS}', "");
-    Expect(0, 8400, '\p{	Is_currency_SYMBOLS}', "");
-    Expect(1, 8400, '\p{^	Is_currency_SYMBOLS}', "");
-    Expect(1, 8400, '\P{	Is_currency_SYMBOLS}', "");
-    Expect(0, 8400, '\P{^	Is_currency_SYMBOLS}', "");
-    Error('\p{/a/	In_CURRENCY_SYMBOLS}');
-    Error('\P{/a/	In_CURRENCY_SYMBOLS}');
+    Expect(1, 8399, '\p{_ Is_currency_Symbols}', "");
+    Expect(0, 8399, '\p{^_ Is_currency_Symbols}', "");
+    Expect(0, 8399, '\P{_ Is_currency_Symbols}', "");
+    Expect(1, 8399, '\P{^_ Is_currency_Symbols}', "");
+    Expect(0, 8400, '\p{_ Is_currency_Symbols}', "");
+    Expect(1, 8400, '\p{^_ Is_currency_Symbols}', "");
+    Expect(1, 8400, '\P{_ Is_currency_Symbols}', "");
+    Expect(0, 8400, '\P{^_ Is_currency_Symbols}', "");
+    Error('\p{:=_IN_CURRENCY_SYMBOLS}');
+    Error('\P{:=_IN_CURRENCY_SYMBOLS}');
     Expect(1, 8399, '\p{incurrencysymbols}', "");
     Expect(0, 8399, '\p{^incurrencysymbols}', "");
     Expect(0, 8399, '\P{incurrencysymbols}', "");
@@ -94553,16 +95367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8400, '\p{^incurrencysymbols}', "");
     Expect(1, 8400, '\P{incurrencysymbols}', "");
     Expect(0, 8400, '\P{^incurrencysymbols}', "");
-    Expect(1, 8399, '\p{	-In_CURRENCY_symbols}', "");
-    Expect(0, 8399, '\p{^	-In_CURRENCY_symbols}', "");
-    Expect(0, 8399, '\P{	-In_CURRENCY_symbols}', "");
-    Expect(1, 8399, '\P{^	-In_CURRENCY_symbols}', "");
-    Expect(0, 8400, '\p{	-In_CURRENCY_symbols}', "");
-    Expect(1, 8400, '\p{^	-In_CURRENCY_symbols}', "");
-    Expect(1, 8400, '\P{	-In_CURRENCY_symbols}', "");
-    Expect(0, 8400, '\P{^	-In_CURRENCY_symbols}', "");
-    Error('\p{-CYPRIOT/a/}');
-    Error('\P{-CYPRIOT/a/}');
+    Expect(1, 8399, '\p{		IN_currency_symbols}', "");
+    Expect(0, 8399, '\p{^		IN_currency_symbols}', "");
+    Expect(0, 8399, '\P{		IN_currency_symbols}', "");
+    Expect(1, 8399, '\P{^		IN_currency_symbols}', "");
+    Expect(0, 8400, '\p{		IN_currency_symbols}', "");
+    Expect(1, 8400, '\p{^		IN_currency_symbols}', "");
+    Expect(1, 8400, '\P{		IN_currency_symbols}', "");
+    Expect(0, 8400, '\P{^		IN_currency_symbols}', "");
+    Error('\p{_:=cypriot}');
+    Error('\P{_:=cypriot}');
     Expect(1, 67647, '\p{cypriot}', "");
     Expect(0, 67647, '\p{^cypriot}', "");
     Expect(0, 67647, '\P{cypriot}', "");
@@ -94571,16 +95385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^cypriot}', "");
     Expect(1, 67648, '\P{cypriot}', "");
     Expect(0, 67648, '\P{^cypriot}', "");
-    Expect(1, 67647, '\p{  Cypriot}', "");
-    Expect(0, 67647, '\p{^  Cypriot}', "");
-    Expect(0, 67647, '\P{  Cypriot}', "");
-    Expect(1, 67647, '\P{^  Cypriot}', "");
-    Expect(0, 67648, '\p{  Cypriot}', "");
-    Expect(1, 67648, '\p{^  Cypriot}', "");
-    Expect(1, 67648, '\P{  Cypriot}', "");
-    Expect(0, 67648, '\P{^  Cypriot}', "");
-    Error('\p{	/a/Is_Cypriot}');
-    Error('\P{	/a/Is_Cypriot}');
+    Expect(1, 67647, '\p{CYPRIOT}', "");
+    Expect(0, 67647, '\p{^CYPRIOT}', "");
+    Expect(0, 67647, '\P{CYPRIOT}', "");
+    Expect(1, 67647, '\P{^CYPRIOT}', "");
+    Expect(0, 67648, '\p{CYPRIOT}', "");
+    Expect(1, 67648, '\p{^CYPRIOT}', "");
+    Expect(1, 67648, '\P{CYPRIOT}', "");
+    Expect(0, 67648, '\P{^CYPRIOT}', "");
+    Error('\p{ :=Is_cypriot}');
+    Error('\P{ :=Is_cypriot}');
     Expect(1, 67647, '\p{iscypriot}', "");
     Expect(0, 67647, '\p{^iscypriot}', "");
     Expect(0, 67647, '\P{iscypriot}', "");
@@ -94589,16 +95403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^iscypriot}', "");
     Expect(1, 67648, '\P{iscypriot}', "");
     Expect(0, 67648, '\P{^iscypriot}', "");
-    Expect(1, 67647, '\p{ Is_CYPRIOT}', "");
-    Expect(0, 67647, '\p{^ Is_CYPRIOT}', "");
-    Expect(0, 67647, '\P{ Is_CYPRIOT}', "");
-    Expect(1, 67647, '\P{^ Is_CYPRIOT}', "");
-    Expect(0, 67648, '\p{ Is_CYPRIOT}', "");
-    Expect(1, 67648, '\p{^ Is_CYPRIOT}', "");
-    Expect(1, 67648, '\P{ Is_CYPRIOT}', "");
-    Expect(0, 67648, '\P{^ Is_CYPRIOT}', "");
-    Error('\p{ _Cprt:=}');
-    Error('\P{ _Cprt:=}');
+    Expect(1, 67647, '\p{	IS_CYPRIOT}', "");
+    Expect(0, 67647, '\p{^	IS_CYPRIOT}', "");
+    Expect(0, 67647, '\P{	IS_CYPRIOT}', "");
+    Expect(1, 67647, '\P{^	IS_CYPRIOT}', "");
+    Expect(0, 67648, '\p{	IS_CYPRIOT}', "");
+    Expect(1, 67648, '\p{^	IS_CYPRIOT}', "");
+    Expect(1, 67648, '\P{	IS_CYPRIOT}', "");
+    Expect(0, 67648, '\P{^	IS_CYPRIOT}', "");
+    Error('\p{_Cprt:=}');
+    Error('\P{_Cprt:=}');
     Expect(1, 67647, '\p{cprt}', "");
     Expect(0, 67647, '\p{^cprt}', "");
     Expect(0, 67647, '\P{cprt}', "");
@@ -94607,16 +95421,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^cprt}', "");
     Expect(1, 67648, '\P{cprt}', "");
     Expect(0, 67648, '\P{^cprt}', "");
-    Expect(1, 67647, '\p{-Cprt}', "");
-    Expect(0, 67647, '\p{^-Cprt}', "");
-    Expect(0, 67647, '\P{-Cprt}', "");
-    Expect(1, 67647, '\P{^-Cprt}', "");
-    Expect(0, 67648, '\p{-Cprt}', "");
-    Expect(1, 67648, '\p{^-Cprt}', "");
-    Expect(1, 67648, '\P{-Cprt}', "");
-    Expect(0, 67648, '\P{^-Cprt}', "");
-    Error('\p{:=_	is_Cprt}');
-    Error('\P{:=_	is_Cprt}');
+    Expect(1, 67647, '\p{__CPRT}', "");
+    Expect(0, 67647, '\p{^__CPRT}', "");
+    Expect(0, 67647, '\P{__CPRT}', "");
+    Expect(1, 67647, '\P{^__CPRT}', "");
+    Expect(0, 67648, '\p{__CPRT}', "");
+    Expect(1, 67648, '\p{^__CPRT}', "");
+    Expect(1, 67648, '\P{__CPRT}', "");
+    Expect(0, 67648, '\P{^__CPRT}', "");
+    Error('\p{:=-	is_CPRT}');
+    Error('\P{:=-	is_CPRT}');
     Expect(1, 67647, '\p{iscprt}', "");
     Expect(0, 67647, '\p{^iscprt}', "");
     Expect(0, 67647, '\P{iscprt}', "");
@@ -94625,16 +95439,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^iscprt}', "");
     Expect(1, 67648, '\P{iscprt}', "");
     Expect(0, 67648, '\P{^iscprt}', "");
-    Expect(1, 67647, '\p{_Is_CPRT}', "");
-    Expect(0, 67647, '\p{^_Is_CPRT}', "");
-    Expect(0, 67647, '\P{_Is_CPRT}', "");
-    Expect(1, 67647, '\P{^_Is_CPRT}', "");
-    Expect(0, 67648, '\p{_Is_CPRT}', "");
-    Expect(1, 67648, '\p{^_Is_CPRT}', "");
-    Expect(1, 67648, '\P{_Is_CPRT}', "");
-    Expect(0, 67648, '\P{^_Is_CPRT}', "");
-    Error('\p{:=--CYPRIOT_syllabary}');
-    Error('\P{:=--CYPRIOT_syllabary}');
+    Expect(1, 67647, '\p{_ IS_Cprt}', "");
+    Expect(0, 67647, '\p{^_ IS_Cprt}', "");
+    Expect(0, 67647, '\P{_ IS_Cprt}', "");
+    Expect(1, 67647, '\P{^_ IS_Cprt}', "");
+    Expect(0, 67648, '\p{_ IS_Cprt}', "");
+    Expect(1, 67648, '\p{^_ IS_Cprt}', "");
+    Expect(1, 67648, '\P{_ IS_Cprt}', "");
+    Expect(0, 67648, '\P{^_ IS_Cprt}', "");
+    Error('\p{ /a/cypriot_Syllabary}');
+    Error('\P{ /a/cypriot_Syllabary}');
     Expect(1, 67647, '\p{cypriotsyllabary}', "");
     Expect(0, 67647, '\p{^cypriotsyllabary}', "");
     Expect(0, 67647, '\P{cypriotsyllabary}', "");
@@ -94643,16 +95457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^cypriotsyllabary}', "");
     Expect(1, 67648, '\P{cypriotsyllabary}', "");
     Expect(0, 67648, '\P{^cypriotsyllabary}', "");
-    Expect(1, 67647, '\p{_ CYPRIOT_Syllabary}', "");
-    Expect(0, 67647, '\p{^_ CYPRIOT_Syllabary}', "");
-    Expect(0, 67647, '\P{_ CYPRIOT_Syllabary}', "");
-    Expect(1, 67647, '\P{^_ CYPRIOT_Syllabary}', "");
-    Expect(0, 67648, '\p{_ CYPRIOT_Syllabary}', "");
-    Expect(1, 67648, '\p{^_ CYPRIOT_Syllabary}', "");
-    Expect(1, 67648, '\P{_ CYPRIOT_Syllabary}', "");
-    Expect(0, 67648, '\P{^_ CYPRIOT_Syllabary}', "");
-    Error('\p{	:=is_Cypriot_Syllabary}');
-    Error('\P{	:=is_Cypriot_Syllabary}');
+    Expect(1, 67647, '\p{-	Cypriot_Syllabary}', "");
+    Expect(0, 67647, '\p{^-	Cypriot_Syllabary}', "");
+    Expect(0, 67647, '\P{-	Cypriot_Syllabary}', "");
+    Expect(1, 67647, '\P{^-	Cypriot_Syllabary}', "");
+    Expect(0, 67648, '\p{-	Cypriot_Syllabary}', "");
+    Expect(1, 67648, '\p{^-	Cypriot_Syllabary}', "");
+    Expect(1, 67648, '\P{-	Cypriot_Syllabary}', "");
+    Expect(0, 67648, '\P{^-	Cypriot_Syllabary}', "");
+    Error('\p{ :=IS_Cypriot_Syllabary}');
+    Error('\P{ :=IS_Cypriot_Syllabary}');
     Expect(1, 67647, '\p{iscypriotsyllabary}', "");
     Expect(0, 67647, '\p{^iscypriotsyllabary}', "");
     Expect(0, 67647, '\P{iscypriotsyllabary}', "");
@@ -94661,16 +95475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^iscypriotsyllabary}', "");
     Expect(1, 67648, '\P{iscypriotsyllabary}', "");
     Expect(0, 67648, '\P{^iscypriotsyllabary}', "");
-    Expect(1, 67647, '\p{_-Is_cypriot_Syllabary}', "");
-    Expect(0, 67647, '\p{^_-Is_cypriot_Syllabary}', "");
-    Expect(0, 67647, '\P{_-Is_cypriot_Syllabary}', "");
-    Expect(1, 67647, '\P{^_-Is_cypriot_Syllabary}', "");
-    Expect(0, 67648, '\p{_-Is_cypriot_Syllabary}', "");
-    Expect(1, 67648, '\p{^_-Is_cypriot_Syllabary}', "");
-    Expect(1, 67648, '\P{_-Is_cypriot_Syllabary}', "");
-    Expect(0, 67648, '\P{^_-Is_cypriot_Syllabary}', "");
-    Error('\p{:=--in_cypriot_Syllabary}');
-    Error('\P{:=--in_cypriot_Syllabary}');
+    Expect(1, 67647, '\p{-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(0, 67647, '\p{^-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(0, 67647, '\P{-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(1, 67647, '\P{^-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(0, 67648, '\p{-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(1, 67648, '\p{^-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(1, 67648, '\P{-_Is_CYPRIOT_SYLLABARY}', "");
+    Expect(0, 67648, '\P{^-_Is_CYPRIOT_SYLLABARY}', "");
+    Error('\p{-In_CYPRIOT_Syllabary:=}');
+    Error('\P{-In_CYPRIOT_Syllabary:=}');
     Expect(1, 67647, '\p{incypriotsyllabary}', "");
     Expect(0, 67647, '\p{^incypriotsyllabary}', "");
     Expect(0, 67647, '\P{incypriotsyllabary}', "");
@@ -94679,16 +95493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67648, '\p{^incypriotsyllabary}', "");
     Expect(1, 67648, '\P{incypriotsyllabary}', "");
     Expect(0, 67648, '\P{^incypriotsyllabary}', "");
-    Expect(1, 67647, '\p{__In_cypriot_SYLLABARY}', "");
-    Expect(0, 67647, '\p{^__In_cypriot_SYLLABARY}', "");
-    Expect(0, 67647, '\P{__In_cypriot_SYLLABARY}', "");
-    Expect(1, 67647, '\P{^__In_cypriot_SYLLABARY}', "");
-    Expect(0, 67648, '\p{__In_cypriot_SYLLABARY}', "");
-    Expect(1, 67648, '\p{^__In_cypriot_SYLLABARY}', "");
-    Expect(1, 67648, '\P{__In_cypriot_SYLLABARY}', "");
-    Expect(0, 67648, '\P{^__In_cypriot_SYLLABARY}', "");
-    Error('\p{- cypro_minoan/a/}');
-    Error('\P{- cypro_minoan/a/}');
+    Expect(1, 67647, '\p{-in_CYPRIOT_Syllabary}', "");
+    Expect(0, 67647, '\p{^-in_CYPRIOT_Syllabary}', "");
+    Expect(0, 67647, '\P{-in_CYPRIOT_Syllabary}', "");
+    Expect(1, 67647, '\P{^-in_CYPRIOT_Syllabary}', "");
+    Expect(0, 67648, '\p{-in_CYPRIOT_Syllabary}', "");
+    Expect(1, 67648, '\p{^-in_CYPRIOT_Syllabary}', "");
+    Expect(1, 67648, '\P{-in_CYPRIOT_Syllabary}', "");
+    Expect(0, 67648, '\P{^-in_CYPRIOT_Syllabary}', "");
+    Error('\p{/a/--Cypro_Minoan}');
+    Error('\P{/a/--Cypro_Minoan}');
     Expect(1, 77810, '\p{cyprominoan}', "");
     Expect(0, 77810, '\p{^cyprominoan}', "");
     Expect(0, 77810, '\P{cyprominoan}', "");
@@ -94697,16 +95511,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 77811, '\p{^cyprominoan}', "");
     Expect(1, 77811, '\P{cyprominoan}', "");
     Expect(0, 77811, '\P{^cyprominoan}', "");
-    Expect(1, 77810, '\p{- Cypro_Minoan}', "");
-    Expect(0, 77810, '\p{^- Cypro_Minoan}', "");
-    Expect(0, 77810, '\P{- Cypro_Minoan}', "");
-    Expect(1, 77810, '\P{^- Cypro_Minoan}', "");
-    Expect(0, 77811, '\p{- Cypro_Minoan}', "");
-    Expect(1, 77811, '\p{^- Cypro_Minoan}', "");
-    Expect(1, 77811, '\P{- Cypro_Minoan}', "");
-    Expect(0, 77811, '\P{^- Cypro_Minoan}', "");
-    Error('\p{:=-Is_Cypro_Minoan}');
-    Error('\P{:=-Is_Cypro_Minoan}');
+    Expect(1, 77810, '\p{ _CYPRO_Minoan}', "");
+    Expect(0, 77810, '\p{^ _CYPRO_Minoan}', "");
+    Expect(0, 77810, '\P{ _CYPRO_Minoan}', "");
+    Expect(1, 77810, '\P{^ _CYPRO_Minoan}', "");
+    Expect(0, 77811, '\p{ _CYPRO_Minoan}', "");
+    Expect(1, 77811, '\p{^ _CYPRO_Minoan}', "");
+    Expect(1, 77811, '\P{ _CYPRO_Minoan}', "");
+    Expect(0, 77811, '\P{^ _CYPRO_Minoan}', "");
+    Error('\p{-	Is_Cypro_minoan:=}');
+    Error('\P{-	Is_Cypro_minoan:=}');
     Expect(1, 77810, '\p{iscyprominoan}', "");
     Expect(0, 77810, '\p{^iscyprominoan}', "");
     Expect(0, 77810, '\P{iscyprominoan}', "");
@@ -94715,16 +95529,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 77811, '\p{^iscyprominoan}', "");
     Expect(1, 77811, '\P{iscyprominoan}', "");
     Expect(0, 77811, '\P{^iscyprominoan}', "");
-    Expect(1, 77810, '\p{		Is_Cypro_MINOAN}', "");
-    Expect(0, 77810, '\p{^		Is_Cypro_MINOAN}', "");
-    Expect(0, 77810, '\P{		Is_Cypro_MINOAN}', "");
-    Expect(1, 77810, '\P{^		Is_Cypro_MINOAN}', "");
-    Expect(0, 77811, '\p{		Is_Cypro_MINOAN}', "");
-    Expect(1, 77811, '\p{^		Is_Cypro_MINOAN}', "");
-    Expect(1, 77811, '\P{		Is_Cypro_MINOAN}', "");
-    Expect(0, 77811, '\P{^		Is_Cypro_MINOAN}', "");
-    Error('\p{_/a/Cpmn}');
-    Error('\P{_/a/Cpmn}');
+    Expect(1, 77810, '\p{ Is_CYPRO_Minoan}', "");
+    Expect(0, 77810, '\p{^ Is_CYPRO_Minoan}', "");
+    Expect(0, 77810, '\P{ Is_CYPRO_Minoan}', "");
+    Expect(1, 77810, '\P{^ Is_CYPRO_Minoan}', "");
+    Expect(0, 77811, '\p{ Is_CYPRO_Minoan}', "");
+    Expect(1, 77811, '\p{^ Is_CYPRO_Minoan}', "");
+    Expect(1, 77811, '\P{ Is_CYPRO_Minoan}', "");
+    Expect(0, 77811, '\P{^ Is_CYPRO_Minoan}', "");
+    Error('\p{/a/ cpmn}');
+    Error('\P{/a/ cpmn}');
     Expect(1, 77810, '\p{cpmn}', "");
     Expect(0, 77810, '\p{^cpmn}', "");
     Expect(0, 77810, '\P{cpmn}', "");
@@ -94733,16 +95547,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 77811, '\p{^cpmn}', "");
     Expect(1, 77811, '\P{cpmn}', "");
     Expect(0, 77811, '\P{^cpmn}', "");
-    Expect(1, 77810, '\p{-CPMN}', "");
-    Expect(0, 77810, '\p{^-CPMN}', "");
-    Expect(0, 77810, '\P{-CPMN}', "");
-    Expect(1, 77810, '\P{^-CPMN}', "");
-    Expect(0, 77811, '\p{-CPMN}', "");
-    Expect(1, 77811, '\p{^-CPMN}', "");
-    Expect(1, 77811, '\P{-CPMN}', "");
-    Expect(0, 77811, '\P{^-CPMN}', "");
-    Error('\p{:=	_Is_Cpmn}');
-    Error('\P{:=	_Is_Cpmn}');
+    Error('\p{-/a/is_CPMN}');
+    Error('\P{-/a/is_CPMN}');
     Expect(1, 77810, '\p{iscpmn}', "");
     Expect(0, 77810, '\p{^iscpmn}', "");
     Expect(0, 77810, '\P{iscpmn}', "");
@@ -94751,88 +95557,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 77811, '\p{^iscpmn}', "");
     Expect(1, 77811, '\P{iscpmn}', "");
     Expect(0, 77811, '\P{^iscpmn}', "");
-    Expect(1, 77810, '\p{_-Is_Cpmn}', "");
-    Expect(0, 77810, '\p{^_-Is_Cpmn}', "");
-    Expect(0, 77810, '\P{_-Is_Cpmn}', "");
-    Expect(1, 77810, '\P{^_-Is_Cpmn}', "");
-    Expect(0, 77811, '\p{_-Is_Cpmn}', "");
-    Expect(1, 77811, '\p{^_-Is_Cpmn}', "");
-    Expect(1, 77811, '\P{_-Is_Cpmn}', "");
-    Expect(0, 77811, '\P{^_-Is_Cpmn}', "");
-    Error('\p{ 	CYRILLIC/a/}');
-    Error('\P{ 	CYRILLIC/a/}');
-    Expect(1, 65071, '\p{cyrillic}', "");
-    Expect(0, 65071, '\p{^cyrillic}', "");
-    Expect(0, 65071, '\P{cyrillic}', "");
-    Expect(1, 65071, '\P{^cyrillic}', "");
-    Expect(0, 65072, '\p{cyrillic}', "");
-    Expect(1, 65072, '\p{^cyrillic}', "");
-    Expect(1, 65072, '\P{cyrillic}', "");
-    Expect(0, 65072, '\P{^cyrillic}', "");
-    Expect(1, 65071, '\p{--Cyrillic}', "");
-    Expect(0, 65071, '\p{^--Cyrillic}', "");
-    Expect(0, 65071, '\P{--Cyrillic}', "");
-    Expect(1, 65071, '\P{^--Cyrillic}', "");
-    Expect(0, 65072, '\p{--Cyrillic}', "");
-    Expect(1, 65072, '\p{^--Cyrillic}', "");
-    Expect(1, 65072, '\P{--Cyrillic}', "");
-    Expect(0, 65072, '\P{^--Cyrillic}', "");
-    Error('\p{/a/	IS_CYRILLIC}');
-    Error('\P{/a/	IS_CYRILLIC}');
-    Expect(1, 65071, '\p{iscyrillic}', "");
-    Expect(0, 65071, '\p{^iscyrillic}', "");
-    Expect(0, 65071, '\P{iscyrillic}', "");
-    Expect(1, 65071, '\P{^iscyrillic}', "");
-    Expect(0, 65072, '\p{iscyrillic}', "");
-    Expect(1, 65072, '\p{^iscyrillic}', "");
-    Expect(1, 65072, '\P{iscyrillic}', "");
-    Expect(0, 65072, '\P{^iscyrillic}', "");
-    Expect(1, 65071, '\p{ is_CYRILLIC}', "");
-    Expect(0, 65071, '\p{^ is_CYRILLIC}', "");
-    Expect(0, 65071, '\P{ is_CYRILLIC}', "");
-    Expect(1, 65071, '\P{^ is_CYRILLIC}', "");
-    Expect(0, 65072, '\p{ is_CYRILLIC}', "");
-    Expect(1, 65072, '\p{^ is_CYRILLIC}', "");
-    Expect(1, 65072, '\P{ is_CYRILLIC}', "");
-    Expect(0, 65072, '\P{^ is_CYRILLIC}', "");
-    Error('\p{-:=cyrl}');
-    Error('\P{-:=cyrl}');
-    Expect(1, 65071, '\p{cyrl}', "");
-    Expect(0, 65071, '\p{^cyrl}', "");
-    Expect(0, 65071, '\P{cyrl}', "");
-    Expect(1, 65071, '\P{^cyrl}', "");
-    Expect(0, 65072, '\p{cyrl}', "");
-    Expect(1, 65072, '\p{^cyrl}', "");
-    Expect(1, 65072, '\P{cyrl}', "");
-    Expect(0, 65072, '\P{^cyrl}', "");
-    Expect(1, 65071, '\p{--cyrl}', "");
-    Expect(0, 65071, '\p{^--cyrl}', "");
-    Expect(0, 65071, '\P{--cyrl}', "");
-    Expect(1, 65071, '\P{^--cyrl}', "");
-    Expect(0, 65072, '\p{--cyrl}', "");
-    Expect(1, 65072, '\p{^--cyrl}', "");
-    Expect(1, 65072, '\P{--cyrl}', "");
-    Expect(0, 65072, '\P{^--cyrl}', "");
-    Error('\p{ /a/IS_Cyrl}');
-    Error('\P{ /a/IS_Cyrl}');
-    Expect(1, 65071, '\p{iscyrl}', "");
-    Expect(0, 65071, '\p{^iscyrl}', "");
-    Expect(0, 65071, '\P{iscyrl}', "");
-    Expect(1, 65071, '\P{^iscyrl}', "");
-    Expect(0, 65072, '\p{iscyrl}', "");
-    Expect(1, 65072, '\p{^iscyrl}', "");
-    Expect(1, 65072, '\P{iscyrl}', "");
-    Expect(0, 65072, '\P{^iscyrl}', "");
-    Expect(1, 65071, '\p{ is_cyrl}', "");
-    Expect(0, 65071, '\p{^ is_cyrl}', "");
-    Expect(0, 65071, '\P{ is_cyrl}', "");
-    Expect(1, 65071, '\P{^ is_cyrl}', "");
-    Expect(0, 65072, '\p{ is_cyrl}', "");
-    Expect(1, 65072, '\p{^ is_cyrl}', "");
-    Expect(1, 65072, '\P{ is_cyrl}', "");
-    Expect(0, 65072, '\P{^ is_cyrl}', "");
-    Error('\p{:=cyrillic_Extended_A}');
-    Error('\P{:=cyrillic_Extended_A}');
+    Expect(1, 77810, '\p{	IS_cpmn}', "");
+    Expect(0, 77810, '\p{^	IS_cpmn}', "");
+    Expect(0, 77810, '\P{	IS_cpmn}', "");
+    Expect(1, 77810, '\P{^	IS_cpmn}', "");
+    Expect(0, 77811, '\p{	IS_cpmn}', "");
+    Expect(1, 77811, '\p{^	IS_cpmn}', "");
+    Expect(1, 77811, '\P{	IS_cpmn}', "");
+    Expect(0, 77811, '\P{^	IS_cpmn}', "");
+    Error('\p{/a/	Cyrillic}');
+    Error('\P{/a/	Cyrillic}');
+    Expect(1, 123023, '\p{cyrillic}', "");
+    Expect(0, 123023, '\p{^cyrillic}', "");
+    Expect(0, 123023, '\P{cyrillic}', "");
+    Expect(1, 123023, '\P{^cyrillic}', "");
+    Expect(0, 123024, '\p{cyrillic}', "");
+    Expect(1, 123024, '\p{^cyrillic}', "");
+    Expect(1, 123024, '\P{cyrillic}', "");
+    Expect(0, 123024, '\P{^cyrillic}', "");
+    Expect(1, 123023, '\p{_-Cyrillic}', "");
+    Expect(0, 123023, '\p{^_-Cyrillic}', "");
+    Expect(0, 123023, '\P{_-Cyrillic}', "");
+    Expect(1, 123023, '\P{^_-Cyrillic}', "");
+    Expect(0, 123024, '\p{_-Cyrillic}', "");
+    Expect(1, 123024, '\p{^_-Cyrillic}', "");
+    Expect(1, 123024, '\P{_-Cyrillic}', "");
+    Expect(0, 123024, '\P{^_-Cyrillic}', "");
+    Error('\p{	_IS_Cyrillic/a/}');
+    Error('\P{	_IS_Cyrillic/a/}');
+    Expect(1, 123023, '\p{iscyrillic}', "");
+    Expect(0, 123023, '\p{^iscyrillic}', "");
+    Expect(0, 123023, '\P{iscyrillic}', "");
+    Expect(1, 123023, '\P{^iscyrillic}', "");
+    Expect(0, 123024, '\p{iscyrillic}', "");
+    Expect(1, 123024, '\p{^iscyrillic}', "");
+    Expect(1, 123024, '\P{iscyrillic}', "");
+    Expect(0, 123024, '\P{^iscyrillic}', "");
+    Expect(1, 123023, '\p{_ IS_cyrillic}', "");
+    Expect(0, 123023, '\p{^_ IS_cyrillic}', "");
+    Expect(0, 123023, '\P{_ IS_cyrillic}', "");
+    Expect(1, 123023, '\P{^_ IS_cyrillic}', "");
+    Expect(0, 123024, '\p{_ IS_cyrillic}', "");
+    Expect(1, 123024, '\p{^_ IS_cyrillic}', "");
+    Expect(1, 123024, '\P{_ IS_cyrillic}', "");
+    Expect(0, 123024, '\P{^_ IS_cyrillic}', "");
+    Error('\p{Cyrl:=}');
+    Error('\P{Cyrl:=}');
+    Expect(1, 123023, '\p{cyrl}', "");
+    Expect(0, 123023, '\p{^cyrl}', "");
+    Expect(0, 123023, '\P{cyrl}', "");
+    Expect(1, 123023, '\P{^cyrl}', "");
+    Expect(0, 123024, '\p{cyrl}', "");
+    Expect(1, 123024, '\p{^cyrl}', "");
+    Expect(1, 123024, '\P{cyrl}', "");
+    Expect(0, 123024, '\P{^cyrl}', "");
+    Expect(1, 123023, '\p{	Cyrl}', "");
+    Expect(0, 123023, '\p{^	Cyrl}', "");
+    Expect(0, 123023, '\P{	Cyrl}', "");
+    Expect(1, 123023, '\P{^	Cyrl}', "");
+    Expect(0, 123024, '\p{	Cyrl}', "");
+    Expect(1, 123024, '\p{^	Cyrl}', "");
+    Expect(1, 123024, '\P{	Cyrl}', "");
+    Expect(0, 123024, '\P{^	Cyrl}', "");
+    Error('\p{:=Is_Cyrl}');
+    Error('\P{:=Is_Cyrl}');
+    Expect(1, 123023, '\p{iscyrl}', "");
+    Expect(0, 123023, '\p{^iscyrl}', "");
+    Expect(0, 123023, '\P{iscyrl}', "");
+    Expect(1, 123023, '\P{^iscyrl}', "");
+    Expect(0, 123024, '\p{iscyrl}', "");
+    Expect(1, 123024, '\p{^iscyrl}', "");
+    Expect(1, 123024, '\P{iscyrl}', "");
+    Expect(0, 123024, '\P{^iscyrl}', "");
+    Expect(1, 123023, '\p{--Is_Cyrl}', "");
+    Expect(0, 123023, '\p{^--Is_Cyrl}', "");
+    Expect(0, 123023, '\P{--Is_Cyrl}', "");
+    Expect(1, 123023, '\P{^--Is_Cyrl}', "");
+    Expect(0, 123024, '\p{--Is_Cyrl}', "");
+    Expect(1, 123024, '\p{^--Is_Cyrl}', "");
+    Expect(1, 123024, '\P{--Is_Cyrl}', "");
+    Expect(0, 123024, '\P{^--Is_Cyrl}', "");
+    Error('\p{:=	cyrillic_EXTENDED_a}');
+    Error('\P{:=	cyrillic_EXTENDED_a}');
     Expect(1, 11775, '\p{cyrillicextendeda}', "");
     Expect(0, 11775, '\p{^cyrillicextendeda}', "");
     Expect(0, 11775, '\P{cyrillicextendeda}', "");
@@ -94841,16 +95647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11776, '\p{^cyrillicextendeda}', "");
     Expect(1, 11776, '\P{cyrillicextendeda}', "");
     Expect(0, 11776, '\P{^cyrillicextendeda}', "");
-    Expect(1, 11775, '\p{cyrillic_Extended_A}', "");
-    Expect(0, 11775, '\p{^cyrillic_Extended_A}', "");
-    Expect(0, 11775, '\P{cyrillic_Extended_A}', "");
-    Expect(1, 11775, '\P{^cyrillic_Extended_A}', "");
-    Expect(0, 11776, '\p{cyrillic_Extended_A}', "");
-    Expect(1, 11776, '\p{^cyrillic_Extended_A}', "");
-    Expect(1, 11776, '\P{cyrillic_Extended_A}', "");
-    Expect(0, 11776, '\P{^cyrillic_Extended_A}', "");
-    Error('\p{--Is_Cyrillic_EXTENDED_a:=}');
-    Error('\P{--Is_Cyrillic_EXTENDED_a:=}');
+    Expect(1, 11775, '\p{	_Cyrillic_EXTENDED_a}', "");
+    Expect(0, 11775, '\p{^	_Cyrillic_EXTENDED_a}', "");
+    Expect(0, 11775, '\P{	_Cyrillic_EXTENDED_a}', "");
+    Expect(1, 11775, '\P{^	_Cyrillic_EXTENDED_a}', "");
+    Expect(0, 11776, '\p{	_Cyrillic_EXTENDED_a}', "");
+    Expect(1, 11776, '\p{^	_Cyrillic_EXTENDED_a}', "");
+    Expect(1, 11776, '\P{	_Cyrillic_EXTENDED_a}', "");
+    Expect(0, 11776, '\P{^	_Cyrillic_EXTENDED_a}', "");
+    Error('\p{ /a/IS_cyrillic_EXTENDED_A}');
+    Error('\P{ /a/IS_cyrillic_EXTENDED_A}');
     Expect(1, 11775, '\p{iscyrillicextendeda}', "");
     Expect(0, 11775, '\p{^iscyrillicextendeda}', "");
     Expect(0, 11775, '\P{iscyrillicextendeda}', "");
@@ -94859,16 +95665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11776, '\p{^iscyrillicextendeda}', "");
     Expect(1, 11776, '\P{iscyrillicextendeda}', "");
     Expect(0, 11776, '\P{^iscyrillicextendeda}', "");
-    Expect(1, 11775, '\p{_-Is_cyrillic_Extended_A}', "");
-    Expect(0, 11775, '\p{^_-Is_cyrillic_Extended_A}', "");
-    Expect(0, 11775, '\P{_-Is_cyrillic_Extended_A}', "");
-    Expect(1, 11775, '\P{^_-Is_cyrillic_Extended_A}', "");
-    Expect(0, 11776, '\p{_-Is_cyrillic_Extended_A}', "");
-    Expect(1, 11776, '\p{^_-Is_cyrillic_Extended_A}', "");
-    Expect(1, 11776, '\P{_-Is_cyrillic_Extended_A}', "");
-    Expect(0, 11776, '\P{^_-Is_cyrillic_Extended_A}', "");
-    Error('\p{:=	IN_Cyrillic_Extended_a}');
-    Error('\P{:=	IN_Cyrillic_Extended_a}');
+    Expect(1, 11775, '\p{	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(0, 11775, '\p{^	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(0, 11775, '\P{	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(1, 11775, '\P{^	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(0, 11776, '\p{	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(1, 11776, '\p{^	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(1, 11776, '\P{	-Is_CYRILLIC_EXTENDED_A}', "");
+    Expect(0, 11776, '\P{^	-Is_CYRILLIC_EXTENDED_A}', "");
+    Error('\p{	 IN_CYRILLIC_extended_A/a/}');
+    Error('\P{	 IN_CYRILLIC_extended_A/a/}');
     Expect(1, 11775, '\p{incyrillicextendeda}', "");
     Expect(0, 11775, '\p{^incyrillicextendeda}', "");
     Expect(0, 11775, '\P{incyrillicextendeda}', "");
@@ -94877,16 +95683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11776, '\p{^incyrillicextendeda}', "");
     Expect(1, 11776, '\P{incyrillicextendeda}', "");
     Expect(0, 11776, '\P{^incyrillicextendeda}', "");
-    Expect(1, 11775, '\p{ In_cyrillic_extended_A}', "");
-    Expect(0, 11775, '\p{^ In_cyrillic_extended_A}', "");
-    Expect(0, 11775, '\P{ In_cyrillic_extended_A}', "");
-    Expect(1, 11775, '\P{^ In_cyrillic_extended_A}', "");
-    Expect(0, 11776, '\p{ In_cyrillic_extended_A}', "");
-    Expect(1, 11776, '\p{^ In_cyrillic_extended_A}', "");
-    Expect(1, 11776, '\P{ In_cyrillic_extended_A}', "");
-    Expect(0, 11776, '\P{^ In_cyrillic_extended_A}', "");
-    Error('\p{/a/-Cyrillic_ext_A}');
-    Error('\P{/a/-Cyrillic_ext_A}');
+    Expect(1, 11775, '\p{	in_Cyrillic_EXTENDED_A}', "");
+    Expect(0, 11775, '\p{^	in_Cyrillic_EXTENDED_A}', "");
+    Expect(0, 11775, '\P{	in_Cyrillic_EXTENDED_A}', "");
+    Expect(1, 11775, '\P{^	in_Cyrillic_EXTENDED_A}', "");
+    Expect(0, 11776, '\p{	in_Cyrillic_EXTENDED_A}', "");
+    Expect(1, 11776, '\p{^	in_Cyrillic_EXTENDED_A}', "");
+    Expect(1, 11776, '\P{	in_Cyrillic_EXTENDED_A}', "");
+    Expect(0, 11776, '\P{^	in_Cyrillic_EXTENDED_A}', "");
+    Error('\p{_/a/Cyrillic_EXT_a}');
+    Error('\P{_/a/Cyrillic_EXT_a}');
     Expect(1, 11775, '\p{cyrillicexta}', "");
     Expect(0, 11775, '\p{^cyrillicexta}', "");
     Expect(0, 11775, '\P{cyrillicexta}', "");
@@ -94895,16 +95701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11776, '\p{^cyrillicexta}', "");
     Expect(1, 11776, '\P{cyrillicexta}', "");
     Expect(0, 11776, '\P{^cyrillicexta}', "");
-    Expect(1, 11775, '\p{ cyrillic_Ext_A}', "");
-    Expect(0, 11775, '\p{^ cyrillic_Ext_A}', "");
-    Expect(0, 11775, '\P{ cyrillic_Ext_A}', "");
-    Expect(1, 11775, '\P{^ cyrillic_Ext_A}', "");
-    Expect(0, 11776, '\p{ cyrillic_Ext_A}', "");
-    Expect(1, 11776, '\p{^ cyrillic_Ext_A}', "");
-    Expect(1, 11776, '\P{ cyrillic_Ext_A}', "");
-    Expect(0, 11776, '\P{^ cyrillic_Ext_A}', "");
-    Error('\p{:=_Is_Cyrillic_ext_A}');
-    Error('\P{:=_Is_Cyrillic_ext_A}');
+    Expect(1, 11775, '\p{  Cyrillic_EXT_A}', "");
+    Expect(0, 11775, '\p{^  Cyrillic_EXT_A}', "");
+    Expect(0, 11775, '\P{  Cyrillic_EXT_A}', "");
+    Expect(1, 11775, '\P{^  Cyrillic_EXT_A}', "");
+    Expect(0, 11776, '\p{  Cyrillic_EXT_A}', "");
+    Expect(1, 11776, '\p{^  Cyrillic_EXT_A}', "");
+    Expect(1, 11776, '\P{  Cyrillic_EXT_A}', "");
+    Expect(0, 11776, '\P{^  Cyrillic_EXT_A}', "");
+    Error('\p{-:=IS_CYRILLIC_Ext_a}');
+    Error('\P{-:=IS_CYRILLIC_Ext_a}');
     Expect(1, 11775, '\p{iscyrillicexta}', "");
     Expect(0, 11775, '\p{^iscyrillicexta}', "");
     Expect(0, 11775, '\P{iscyrillicexta}', "");
@@ -94913,16 +95719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11776, '\p{^iscyrillicexta}', "");
     Expect(1, 11776, '\P{iscyrillicexta}', "");
     Expect(0, 11776, '\P{^iscyrillicexta}', "");
-    Expect(1, 11775, '\p{  Is_Cyrillic_Ext_A}', "");
-    Expect(0, 11775, '\p{^  Is_Cyrillic_Ext_A}', "");
-    Expect(0, 11775, '\P{  Is_Cyrillic_Ext_A}', "");
-    Expect(1, 11775, '\P{^  Is_Cyrillic_Ext_A}', "");
-    Expect(0, 11776, '\p{  Is_Cyrillic_Ext_A}', "");
-    Expect(1, 11776, '\p{^  Is_Cyrillic_Ext_A}', "");
-    Expect(1, 11776, '\P{  Is_Cyrillic_Ext_A}', "");
-    Expect(0, 11776, '\P{^  Is_Cyrillic_Ext_A}', "");
-    Error('\p{	:=IN_Cyrillic_Ext_A}');
-    Error('\P{	:=IN_Cyrillic_Ext_A}');
+    Expect(1, 11775, '\p{-Is_Cyrillic_ext_A}', "");
+    Expect(0, 11775, '\p{^-Is_Cyrillic_ext_A}', "");
+    Expect(0, 11775, '\P{-Is_Cyrillic_ext_A}', "");
+    Expect(1, 11775, '\P{^-Is_Cyrillic_ext_A}', "");
+    Expect(0, 11776, '\p{-Is_Cyrillic_ext_A}', "");
+    Expect(1, 11776, '\p{^-Is_Cyrillic_ext_A}', "");
+    Expect(1, 11776, '\P{-Is_Cyrillic_ext_A}', "");
+    Expect(0, 11776, '\P{^-Is_Cyrillic_ext_A}', "");
+    Error('\p{/a/_ In_CYRILLIC_Ext_A}');
+    Error('\P{/a/_ In_CYRILLIC_Ext_A}');
     Expect(1, 11775, '\p{incyrillicexta}', "");
     Expect(0, 11775, '\p{^incyrillicexta}', "");
     Expect(0, 11775, '\P{incyrillicexta}', "");
@@ -94931,16 +95737,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11776, '\p{^incyrillicexta}', "");
     Expect(1, 11776, '\P{incyrillicexta}', "");
     Expect(0, 11776, '\P{^incyrillicexta}', "");
-    Expect(1, 11775, '\p{ -In_cyrillic_Ext_a}', "");
-    Expect(0, 11775, '\p{^ -In_cyrillic_Ext_a}', "");
-    Expect(0, 11775, '\P{ -In_cyrillic_Ext_a}', "");
-    Expect(1, 11775, '\P{^ -In_cyrillic_Ext_a}', "");
-    Expect(0, 11776, '\p{ -In_cyrillic_Ext_a}', "");
-    Expect(1, 11776, '\p{^ -In_cyrillic_Ext_a}', "");
-    Expect(1, 11776, '\P{ -In_cyrillic_Ext_a}', "");
-    Expect(0, 11776, '\P{^ -In_cyrillic_Ext_a}', "");
-    Error('\p{:=_ CYRILLIC_Extended_B}');
-    Error('\P{:=_ CYRILLIC_Extended_B}');
+    Expect(1, 11775, '\p{_	In_Cyrillic_Ext_A}', "");
+    Expect(0, 11775, '\p{^_	In_Cyrillic_Ext_A}', "");
+    Expect(0, 11775, '\P{_	In_Cyrillic_Ext_A}', "");
+    Expect(1, 11775, '\P{^_	In_Cyrillic_Ext_A}', "");
+    Expect(0, 11776, '\p{_	In_Cyrillic_Ext_A}', "");
+    Expect(1, 11776, '\p{^_	In_Cyrillic_Ext_A}', "");
+    Expect(1, 11776, '\P{_	In_Cyrillic_Ext_A}', "");
+    Expect(0, 11776, '\P{^_	In_Cyrillic_Ext_A}', "");
+    Error('\p{/a/_Cyrillic_EXTENDED_B}');
+    Error('\P{/a/_Cyrillic_EXTENDED_B}');
     Expect(1, 42655, '\p{cyrillicextendedb}', "");
     Expect(0, 42655, '\p{^cyrillicextendedb}', "");
     Expect(0, 42655, '\P{cyrillicextendedb}', "");
@@ -94949,16 +95755,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42656, '\p{^cyrillicextendedb}', "");
     Expect(1, 42656, '\P{cyrillicextendedb}', "");
     Expect(0, 42656, '\P{^cyrillicextendedb}', "");
-    Expect(1, 42655, '\p{__cyrillic_Extended_B}', "");
-    Expect(0, 42655, '\p{^__cyrillic_Extended_B}', "");
-    Expect(0, 42655, '\P{__cyrillic_Extended_B}', "");
-    Expect(1, 42655, '\P{^__cyrillic_Extended_B}', "");
-    Expect(0, 42656, '\p{__cyrillic_Extended_B}', "");
-    Expect(1, 42656, '\p{^__cyrillic_Extended_B}', "");
-    Expect(1, 42656, '\P{__cyrillic_Extended_B}', "");
-    Expect(0, 42656, '\P{^__cyrillic_Extended_B}', "");
-    Error('\p{:= 	IS_cyrillic_Extended_b}');
-    Error('\P{:= 	IS_cyrillic_Extended_b}');
+    Expect(1, 42655, '\p{	Cyrillic_Extended_B}', "");
+    Expect(0, 42655, '\p{^	Cyrillic_Extended_B}', "");
+    Expect(0, 42655, '\P{	Cyrillic_Extended_B}', "");
+    Expect(1, 42655, '\P{^	Cyrillic_Extended_B}', "");
+    Expect(0, 42656, '\p{	Cyrillic_Extended_B}', "");
+    Expect(1, 42656, '\p{^	Cyrillic_Extended_B}', "");
+    Expect(1, 42656, '\P{	Cyrillic_Extended_B}', "");
+    Expect(0, 42656, '\P{^	Cyrillic_Extended_B}', "");
+    Error('\p{_:=IS_cyrillic_Extended_B}');
+    Error('\P{_:=IS_cyrillic_Extended_B}');
     Expect(1, 42655, '\p{iscyrillicextendedb}', "");
     Expect(0, 42655, '\p{^iscyrillicextendedb}', "");
     Expect(0, 42655, '\P{iscyrillicextendedb}', "");
@@ -94967,16 +95773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42656, '\p{^iscyrillicextendedb}', "");
     Expect(1, 42656, '\P{iscyrillicextendedb}', "");
     Expect(0, 42656, '\P{^iscyrillicextendedb}', "");
-    Expect(1, 42655, '\p{- IS_CYRILLIC_Extended_B}', "");
-    Expect(0, 42655, '\p{^- IS_CYRILLIC_Extended_B}', "");
-    Expect(0, 42655, '\P{- IS_CYRILLIC_Extended_B}', "");
-    Expect(1, 42655, '\P{^- IS_CYRILLIC_Extended_B}', "");
-    Expect(0, 42656, '\p{- IS_CYRILLIC_Extended_B}', "");
-    Expect(1, 42656, '\p{^- IS_CYRILLIC_Extended_B}', "");
-    Expect(1, 42656, '\P{- IS_CYRILLIC_Extended_B}', "");
-    Expect(0, 42656, '\P{^- IS_CYRILLIC_Extended_B}', "");
-    Error('\p{:=_in_Cyrillic_EXTENDED_B}');
-    Error('\P{:=_in_Cyrillic_EXTENDED_B}');
+    Expect(1, 42655, '\p{- Is_Cyrillic_Extended_b}', "");
+    Expect(0, 42655, '\p{^- Is_Cyrillic_Extended_b}', "");
+    Expect(0, 42655, '\P{- Is_Cyrillic_Extended_b}', "");
+    Expect(1, 42655, '\P{^- Is_Cyrillic_Extended_b}', "");
+    Expect(0, 42656, '\p{- Is_Cyrillic_Extended_b}', "");
+    Expect(1, 42656, '\p{^- Is_Cyrillic_Extended_b}', "");
+    Expect(1, 42656, '\P{- Is_Cyrillic_Extended_b}', "");
+    Expect(0, 42656, '\P{^- Is_Cyrillic_Extended_b}', "");
+    Error('\p{_-IN_cyrillic_EXTENDED_B:=}');
+    Error('\P{_-IN_cyrillic_EXTENDED_B:=}');
     Expect(1, 42655, '\p{incyrillicextendedb}', "");
     Expect(0, 42655, '\p{^incyrillicextendedb}', "");
     Expect(0, 42655, '\P{incyrillicextendedb}', "");
@@ -94985,16 +95791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42656, '\p{^incyrillicextendedb}', "");
     Expect(1, 42656, '\P{incyrillicextendedb}', "");
     Expect(0, 42656, '\P{^incyrillicextendedb}', "");
-    Expect(1, 42655, '\p{-_In_Cyrillic_Extended_B}', "");
-    Expect(0, 42655, '\p{^-_In_Cyrillic_Extended_B}', "");
-    Expect(0, 42655, '\P{-_In_Cyrillic_Extended_B}', "");
-    Expect(1, 42655, '\P{^-_In_Cyrillic_Extended_B}', "");
-    Expect(0, 42656, '\p{-_In_Cyrillic_Extended_B}', "");
-    Expect(1, 42656, '\p{^-_In_Cyrillic_Extended_B}', "");
-    Expect(1, 42656, '\P{-_In_Cyrillic_Extended_B}', "");
-    Expect(0, 42656, '\P{^-_In_Cyrillic_Extended_B}', "");
-    Error('\p{	:=Cyrillic_Ext_b}');
-    Error('\P{	:=Cyrillic_Ext_b}');
+    Expect(1, 42655, '\p{_	In_CYRILLIC_Extended_B}', "");
+    Expect(0, 42655, '\p{^_	In_CYRILLIC_Extended_B}', "");
+    Expect(0, 42655, '\P{_	In_CYRILLIC_Extended_B}', "");
+    Expect(1, 42655, '\P{^_	In_CYRILLIC_Extended_B}', "");
+    Expect(0, 42656, '\p{_	In_CYRILLIC_Extended_B}', "");
+    Expect(1, 42656, '\p{^_	In_CYRILLIC_Extended_B}', "");
+    Expect(1, 42656, '\P{_	In_CYRILLIC_Extended_B}', "");
+    Expect(0, 42656, '\P{^_	In_CYRILLIC_Extended_B}', "");
+    Error('\p{:=Cyrillic_Ext_B}');
+    Error('\P{:=Cyrillic_Ext_B}');
     Expect(1, 42655, '\p{cyrillicextb}', "");
     Expect(0, 42655, '\p{^cyrillicextb}', "");
     Expect(0, 42655, '\P{cyrillicextb}', "");
@@ -95003,16 +95809,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42656, '\p{^cyrillicextb}', "");
     Expect(1, 42656, '\P{cyrillicextb}', "");
     Expect(0, 42656, '\P{^cyrillicextb}', "");
-    Expect(1, 42655, '\p{_-Cyrillic_Ext_B}', "");
-    Expect(0, 42655, '\p{^_-Cyrillic_Ext_B}', "");
-    Expect(0, 42655, '\P{_-Cyrillic_Ext_B}', "");
-    Expect(1, 42655, '\P{^_-Cyrillic_Ext_B}', "");
-    Expect(0, 42656, '\p{_-Cyrillic_Ext_B}', "");
-    Expect(1, 42656, '\p{^_-Cyrillic_Ext_B}', "");
-    Expect(1, 42656, '\P{_-Cyrillic_Ext_B}', "");
-    Expect(0, 42656, '\P{^_-Cyrillic_Ext_B}', "");
-    Error('\p{_:=is_Cyrillic_Ext_B}');
-    Error('\P{_:=is_Cyrillic_Ext_B}');
+    Expect(1, 42655, '\p{-	CYRILLIC_Ext_b}', "");
+    Expect(0, 42655, '\p{^-	CYRILLIC_Ext_b}', "");
+    Expect(0, 42655, '\P{-	CYRILLIC_Ext_b}', "");
+    Expect(1, 42655, '\P{^-	CYRILLIC_Ext_b}', "");
+    Expect(0, 42656, '\p{-	CYRILLIC_Ext_b}', "");
+    Expect(1, 42656, '\p{^-	CYRILLIC_Ext_b}', "");
+    Expect(1, 42656, '\P{-	CYRILLIC_Ext_b}', "");
+    Expect(0, 42656, '\P{^-	CYRILLIC_Ext_b}', "");
+    Error('\p{- Is_CYRILLIC_Ext_B/a/}');
+    Error('\P{- Is_CYRILLIC_Ext_B/a/}');
     Expect(1, 42655, '\p{iscyrillicextb}', "");
     Expect(0, 42655, '\p{^iscyrillicextb}', "");
     Expect(0, 42655, '\P{iscyrillicextb}', "");
@@ -95021,16 +95827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42656, '\p{^iscyrillicextb}', "");
     Expect(1, 42656, '\P{iscyrillicextb}', "");
     Expect(0, 42656, '\P{^iscyrillicextb}', "");
-    Expect(1, 42655, '\p{_Is_Cyrillic_Ext_B}', "");
-    Expect(0, 42655, '\p{^_Is_Cyrillic_Ext_B}', "");
-    Expect(0, 42655, '\P{_Is_Cyrillic_Ext_B}', "");
-    Expect(1, 42655, '\P{^_Is_Cyrillic_Ext_B}', "");
-    Expect(0, 42656, '\p{_Is_Cyrillic_Ext_B}', "");
-    Expect(1, 42656, '\p{^_Is_Cyrillic_Ext_B}', "");
-    Expect(1, 42656, '\P{_Is_Cyrillic_Ext_B}', "");
-    Expect(0, 42656, '\P{^_Is_Cyrillic_Ext_B}', "");
-    Error('\p{/a/	IN_cyrillic_ext_B}');
-    Error('\P{/a/	IN_cyrillic_ext_B}');
+    Expect(1, 42655, '\p{-Is_Cyrillic_EXT_B}', "");
+    Expect(0, 42655, '\p{^-Is_Cyrillic_EXT_B}', "");
+    Expect(0, 42655, '\P{-Is_Cyrillic_EXT_B}', "");
+    Expect(1, 42655, '\P{^-Is_Cyrillic_EXT_B}', "");
+    Expect(0, 42656, '\p{-Is_Cyrillic_EXT_B}', "");
+    Expect(1, 42656, '\p{^-Is_Cyrillic_EXT_B}', "");
+    Expect(1, 42656, '\P{-Is_Cyrillic_EXT_B}', "");
+    Expect(0, 42656, '\P{^-Is_Cyrillic_EXT_B}', "");
+    Error('\p{_:=In_CYRILLIC_ext_B}');
+    Error('\P{_:=In_CYRILLIC_ext_B}');
     Expect(1, 42655, '\p{incyrillicextb}', "");
     Expect(0, 42655, '\p{^incyrillicextb}', "");
     Expect(0, 42655, '\P{incyrillicextb}', "");
@@ -95039,16 +95845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42656, '\p{^incyrillicextb}', "");
     Expect(1, 42656, '\P{incyrillicextb}', "");
     Expect(0, 42656, '\P{^incyrillicextb}', "");
-    Expect(1, 42655, '\p{_-In_CYRILLIC_Ext_B}', "");
-    Expect(0, 42655, '\p{^_-In_CYRILLIC_Ext_B}', "");
-    Expect(0, 42655, '\P{_-In_CYRILLIC_Ext_B}', "");
-    Expect(1, 42655, '\P{^_-In_CYRILLIC_Ext_B}', "");
-    Expect(0, 42656, '\p{_-In_CYRILLIC_Ext_B}', "");
-    Expect(1, 42656, '\p{^_-In_CYRILLIC_Ext_B}', "");
-    Expect(1, 42656, '\P{_-In_CYRILLIC_Ext_B}', "");
-    Expect(0, 42656, '\P{^_-In_CYRILLIC_Ext_B}', "");
-    Error('\p{/a/-_Cyrillic_Extended_c}');
-    Error('\P{/a/-_Cyrillic_Extended_c}');
+    Expect(1, 42655, '\p{ _IN_Cyrillic_Ext_B}', "");
+    Expect(0, 42655, '\p{^ _IN_Cyrillic_Ext_B}', "");
+    Expect(0, 42655, '\P{ _IN_Cyrillic_Ext_B}', "");
+    Expect(1, 42655, '\P{^ _IN_Cyrillic_Ext_B}', "");
+    Expect(0, 42656, '\p{ _IN_Cyrillic_Ext_B}', "");
+    Expect(1, 42656, '\p{^ _IN_Cyrillic_Ext_B}', "");
+    Expect(1, 42656, '\P{ _IN_Cyrillic_Ext_B}', "");
+    Expect(0, 42656, '\P{^ _IN_Cyrillic_Ext_B}', "");
+    Error('\p{_ cyrillic_Extended_c:=}');
+    Error('\P{_ cyrillic_Extended_c:=}');
     Expect(1, 7311, '\p{cyrillicextendedc}', "");
     Expect(0, 7311, '\p{^cyrillicextendedc}', "");
     Expect(0, 7311, '\P{cyrillicextendedc}', "");
@@ -95057,16 +95863,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7312, '\p{^cyrillicextendedc}', "");
     Expect(1, 7312, '\P{cyrillicextendedc}', "");
     Expect(0, 7312, '\P{^cyrillicextendedc}', "");
-    Expect(1, 7311, '\p{__Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7311, '\p{^__Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7311, '\P{__Cyrillic_EXTENDED_c}', "");
-    Expect(1, 7311, '\P{^__Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7312, '\p{__Cyrillic_EXTENDED_c}', "");
-    Expect(1, 7312, '\p{^__Cyrillic_EXTENDED_c}', "");
-    Expect(1, 7312, '\P{__Cyrillic_EXTENDED_c}', "");
-    Expect(0, 7312, '\P{^__Cyrillic_EXTENDED_c}', "");
-    Error('\p{/a/		IS_CYRILLIC_extended_C}');
-    Error('\P{/a/		IS_CYRILLIC_extended_C}');
+    Expect(1, 7311, '\p{	CYRILLIC_extended_C}', "");
+    Expect(0, 7311, '\p{^	CYRILLIC_extended_C}', "");
+    Expect(0, 7311, '\P{	CYRILLIC_extended_C}', "");
+    Expect(1, 7311, '\P{^	CYRILLIC_extended_C}', "");
+    Expect(0, 7312, '\p{	CYRILLIC_extended_C}', "");
+    Expect(1, 7312, '\p{^	CYRILLIC_extended_C}', "");
+    Expect(1, 7312, '\P{	CYRILLIC_extended_C}', "");
+    Expect(0, 7312, '\P{^	CYRILLIC_extended_C}', "");
+    Error('\p{-Is_cyrillic_EXTENDED_C/a/}');
+    Error('\P{-Is_cyrillic_EXTENDED_C/a/}');
     Expect(1, 7311, '\p{iscyrillicextendedc}', "");
     Expect(0, 7311, '\p{^iscyrillicextendedc}', "");
     Expect(0, 7311, '\P{iscyrillicextendedc}', "");
@@ -95075,16 +95881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7312, '\p{^iscyrillicextendedc}', "");
     Expect(1, 7312, '\P{iscyrillicextendedc}', "");
     Expect(0, 7312, '\P{^iscyrillicextendedc}', "");
-    Expect(1, 7311, '\p{ IS_cyrillic_EXTENDED_C}', "");
-    Expect(0, 7311, '\p{^ IS_cyrillic_EXTENDED_C}', "");
-    Expect(0, 7311, '\P{ IS_cyrillic_EXTENDED_C}', "");
-    Expect(1, 7311, '\P{^ IS_cyrillic_EXTENDED_C}', "");
-    Expect(0, 7312, '\p{ IS_cyrillic_EXTENDED_C}', "");
-    Expect(1, 7312, '\p{^ IS_cyrillic_EXTENDED_C}', "");
-    Expect(1, 7312, '\P{ IS_cyrillic_EXTENDED_C}', "");
-    Expect(0, 7312, '\P{^ IS_cyrillic_EXTENDED_C}', "");
-    Error('\p{ IN_Cyrillic_Extended_C/a/}');
-    Error('\P{ IN_Cyrillic_Extended_C/a/}');
+    Expect(1, 7311, '\p{	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(0, 7311, '\p{^	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(0, 7311, '\P{	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(1, 7311, '\P{^	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(0, 7312, '\p{	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(1, 7312, '\p{^	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(1, 7312, '\P{	Is_CYRILLIC_EXTENDED_c}', "");
+    Expect(0, 7312, '\P{^	Is_CYRILLIC_EXTENDED_c}', "");
+    Error('\p{/a/_ IN_cyrillic_Extended_c}');
+    Error('\P{/a/_ IN_cyrillic_Extended_c}');
     Expect(1, 7311, '\p{incyrillicextendedc}', "");
     Expect(0, 7311, '\p{^incyrillicextendedc}', "");
     Expect(0, 7311, '\P{incyrillicextendedc}', "");
@@ -95093,16 +95899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7312, '\p{^incyrillicextendedc}', "");
     Expect(1, 7312, '\P{incyrillicextendedc}', "");
     Expect(0, 7312, '\P{^incyrillicextendedc}', "");
-    Expect(1, 7311, '\p{	 In_CYRILLIC_Extended_c}', "");
-    Expect(0, 7311, '\p{^	 In_CYRILLIC_Extended_c}', "");
-    Expect(0, 7311, '\P{	 In_CYRILLIC_Extended_c}', "");
-    Expect(1, 7311, '\P{^	 In_CYRILLIC_Extended_c}', "");
-    Expect(0, 7312, '\p{	 In_CYRILLIC_Extended_c}', "");
-    Expect(1, 7312, '\p{^	 In_CYRILLIC_Extended_c}', "");
-    Expect(1, 7312, '\P{	 In_CYRILLIC_Extended_c}', "");
-    Expect(0, 7312, '\P{^	 In_CYRILLIC_Extended_c}', "");
-    Error('\p{  cyrillic_EXT_C:=}');
-    Error('\P{  cyrillic_EXT_C:=}');
+    Expect(1, 7311, '\p{	-In_Cyrillic_extended_c}', "");
+    Expect(0, 7311, '\p{^	-In_Cyrillic_extended_c}', "");
+    Expect(0, 7311, '\P{	-In_Cyrillic_extended_c}', "");
+    Expect(1, 7311, '\P{^	-In_Cyrillic_extended_c}', "");
+    Expect(0, 7312, '\p{	-In_Cyrillic_extended_c}', "");
+    Expect(1, 7312, '\p{^	-In_Cyrillic_extended_c}', "");
+    Expect(1, 7312, '\P{	-In_Cyrillic_extended_c}', "");
+    Expect(0, 7312, '\P{^	-In_Cyrillic_extended_c}', "");
+    Error('\p{Cyrillic_ext_C:=}');
+    Error('\P{Cyrillic_ext_C:=}');
     Expect(1, 7311, '\p{cyrillicextc}', "");
     Expect(0, 7311, '\p{^cyrillicextc}', "");
     Expect(0, 7311, '\P{cyrillicextc}', "");
@@ -95111,16 +95917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7312, '\p{^cyrillicextc}', "");
     Expect(1, 7312, '\P{cyrillicextc}', "");
     Expect(0, 7312, '\P{^cyrillicextc}', "");
-    Expect(1, 7311, '\p{-_cyrillic_Ext_c}', "");
-    Expect(0, 7311, '\p{^-_cyrillic_Ext_c}', "");
-    Expect(0, 7311, '\P{-_cyrillic_Ext_c}', "");
-    Expect(1, 7311, '\P{^-_cyrillic_Ext_c}', "");
-    Expect(0, 7312, '\p{-_cyrillic_Ext_c}', "");
-    Expect(1, 7312, '\p{^-_cyrillic_Ext_c}', "");
-    Expect(1, 7312, '\P{-_cyrillic_Ext_c}', "");
-    Expect(0, 7312, '\P{^-_cyrillic_Ext_c}', "");
-    Error('\p{-:=is_Cyrillic_EXT_C}');
-    Error('\P{-:=is_Cyrillic_EXT_C}');
+    Expect(1, 7311, '\p{	Cyrillic_EXT_C}', "");
+    Expect(0, 7311, '\p{^	Cyrillic_EXT_C}', "");
+    Expect(0, 7311, '\P{	Cyrillic_EXT_C}', "");
+    Expect(1, 7311, '\P{^	Cyrillic_EXT_C}', "");
+    Expect(0, 7312, '\p{	Cyrillic_EXT_C}', "");
+    Expect(1, 7312, '\p{^	Cyrillic_EXT_C}', "");
+    Expect(1, 7312, '\P{	Cyrillic_EXT_C}', "");
+    Expect(0, 7312, '\P{^	Cyrillic_EXT_C}', "");
+    Error('\p{ /a/Is_Cyrillic_ext_C}');
+    Error('\P{ /a/Is_Cyrillic_ext_C}');
     Expect(1, 7311, '\p{iscyrillicextc}', "");
     Expect(0, 7311, '\p{^iscyrillicextc}', "");
     Expect(0, 7311, '\P{iscyrillicextc}', "");
@@ -95129,16 +95935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7312, '\p{^iscyrillicextc}', "");
     Expect(1, 7312, '\P{iscyrillicextc}', "");
     Expect(0, 7312, '\P{^iscyrillicextc}', "");
-    Expect(1, 7311, '\p{_	is_CYRILLIC_ext_C}', "");
-    Expect(0, 7311, '\p{^_	is_CYRILLIC_ext_C}', "");
-    Expect(0, 7311, '\P{_	is_CYRILLIC_ext_C}', "");
-    Expect(1, 7311, '\P{^_	is_CYRILLIC_ext_C}', "");
-    Expect(0, 7312, '\p{_	is_CYRILLIC_ext_C}', "");
-    Expect(1, 7312, '\p{^_	is_CYRILLIC_ext_C}', "");
-    Expect(1, 7312, '\P{_	is_CYRILLIC_ext_C}', "");
-    Expect(0, 7312, '\P{^_	is_CYRILLIC_ext_C}', "");
-    Error('\p{/a/  IN_Cyrillic_Ext_C}');
-    Error('\P{/a/  IN_Cyrillic_Ext_C}');
+    Expect(1, 7311, '\p{_-IS_CYRILLIC_Ext_C}', "");
+    Expect(0, 7311, '\p{^_-IS_CYRILLIC_Ext_C}', "");
+    Expect(0, 7311, '\P{_-IS_CYRILLIC_Ext_C}', "");
+    Expect(1, 7311, '\P{^_-IS_CYRILLIC_Ext_C}', "");
+    Expect(0, 7312, '\p{_-IS_CYRILLIC_Ext_C}', "");
+    Expect(1, 7312, '\p{^_-IS_CYRILLIC_Ext_C}', "");
+    Expect(1, 7312, '\P{_-IS_CYRILLIC_Ext_C}', "");
+    Expect(0, 7312, '\P{^_-IS_CYRILLIC_Ext_C}', "");
+    Error('\p{-/a/In_Cyrillic_Ext_C}');
+    Error('\P{-/a/In_Cyrillic_Ext_C}');
     Expect(1, 7311, '\p{incyrillicextc}', "");
     Expect(0, 7311, '\p{^incyrillicextc}', "");
     Expect(0, 7311, '\P{incyrillicextc}', "");
@@ -95147,16 +95953,124 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7312, '\p{^incyrillicextc}', "");
     Expect(1, 7312, '\P{incyrillicextc}', "");
     Expect(0, 7312, '\P{^incyrillicextc}', "");
-    Expect(1, 7311, '\p{_ In_Cyrillic_ext_C}', "");
-    Expect(0, 7311, '\p{^_ In_Cyrillic_ext_C}', "");
-    Expect(0, 7311, '\P{_ In_Cyrillic_ext_C}', "");
-    Expect(1, 7311, '\P{^_ In_Cyrillic_ext_C}', "");
-    Expect(0, 7312, '\p{_ In_Cyrillic_ext_C}', "");
-    Expect(1, 7312, '\p{^_ In_Cyrillic_ext_C}', "");
-    Expect(1, 7312, '\P{_ In_Cyrillic_ext_C}', "");
-    Expect(0, 7312, '\P{^_ In_Cyrillic_ext_C}', "");
-    Error('\p{-/a/Cyrillic_SUPPLEMENT}');
-    Error('\P{-/a/Cyrillic_SUPPLEMENT}');
+    Expect(1, 7311, '\p{_In_cyrillic_Ext_C}', "");
+    Expect(0, 7311, '\p{^_In_cyrillic_Ext_C}', "");
+    Expect(0, 7311, '\P{_In_cyrillic_Ext_C}', "");
+    Expect(1, 7311, '\P{^_In_cyrillic_Ext_C}', "");
+    Expect(0, 7312, '\p{_In_cyrillic_Ext_C}', "");
+    Expect(1, 7312, '\p{^_In_cyrillic_Ext_C}', "");
+    Expect(1, 7312, '\P{_In_cyrillic_Ext_C}', "");
+    Expect(0, 7312, '\P{^_In_cyrillic_Ext_C}', "");
+    Error('\p{_Cyrillic_Extended_D/a/}');
+    Error('\P{_Cyrillic_Extended_D/a/}');
+    Expect(1, 123023, '\p{cyrillicextendedd}', "");
+    Expect(0, 123023, '\p{^cyrillicextendedd}', "");
+    Expect(0, 123023, '\P{cyrillicextendedd}', "");
+    Expect(1, 123023, '\P{^cyrillicextendedd}', "");
+    Expect(0, 123024, '\p{cyrillicextendedd}', "");
+    Expect(1, 123024, '\p{^cyrillicextendedd}', "");
+    Expect(1, 123024, '\P{cyrillicextendedd}', "");
+    Expect(0, 123024, '\P{^cyrillicextendedd}', "");
+    Expect(1, 123023, '\p{ -CYRILLIC_extended_D}', "");
+    Expect(0, 123023, '\p{^ -CYRILLIC_extended_D}', "");
+    Expect(0, 123023, '\P{ -CYRILLIC_extended_D}', "");
+    Expect(1, 123023, '\P{^ -CYRILLIC_extended_D}', "");
+    Expect(0, 123024, '\p{ -CYRILLIC_extended_D}', "");
+    Expect(1, 123024, '\p{^ -CYRILLIC_extended_D}', "");
+    Expect(1, 123024, '\P{ -CYRILLIC_extended_D}', "");
+    Expect(0, 123024, '\P{^ -CYRILLIC_extended_D}', "");
+    Error('\p{/a/Is_Cyrillic_Extended_D}');
+    Error('\P{/a/Is_Cyrillic_Extended_D}');
+    Expect(1, 123023, '\p{iscyrillicextendedd}', "");
+    Expect(0, 123023, '\p{^iscyrillicextendedd}', "");
+    Expect(0, 123023, '\P{iscyrillicextendedd}', "");
+    Expect(1, 123023, '\P{^iscyrillicextendedd}', "");
+    Expect(0, 123024, '\p{iscyrillicextendedd}', "");
+    Expect(1, 123024, '\p{^iscyrillicextendedd}', "");
+    Expect(1, 123024, '\P{iscyrillicextendedd}', "");
+    Expect(0, 123024, '\P{^iscyrillicextendedd}', "");
+    Expect(1, 123023, '\p{--Is_cyrillic_extended_D}', "");
+    Expect(0, 123023, '\p{^--Is_cyrillic_extended_D}', "");
+    Expect(0, 123023, '\P{--Is_cyrillic_extended_D}', "");
+    Expect(1, 123023, '\P{^--Is_cyrillic_extended_D}', "");
+    Expect(0, 123024, '\p{--Is_cyrillic_extended_D}', "");
+    Expect(1, 123024, '\p{^--Is_cyrillic_extended_D}', "");
+    Expect(1, 123024, '\P{--Is_cyrillic_extended_D}', "");
+    Expect(0, 123024, '\P{^--Is_cyrillic_extended_D}', "");
+    Error('\p{/a/	 IN_Cyrillic_extended_D}');
+    Error('\P{/a/	 IN_Cyrillic_extended_D}');
+    Expect(1, 123023, '\p{incyrillicextendedd}', "");
+    Expect(0, 123023, '\p{^incyrillicextendedd}', "");
+    Expect(0, 123023, '\P{incyrillicextendedd}', "");
+    Expect(1, 123023, '\P{^incyrillicextendedd}', "");
+    Expect(0, 123024, '\p{incyrillicextendedd}', "");
+    Expect(1, 123024, '\p{^incyrillicextendedd}', "");
+    Expect(1, 123024, '\P{incyrillicextendedd}', "");
+    Expect(0, 123024, '\P{^incyrillicextendedd}', "");
+    Expect(1, 123023, '\p{_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(0, 123023, '\p{^_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(0, 123023, '\P{_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(1, 123023, '\P{^_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(0, 123024, '\p{_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(1, 123024, '\p{^_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(1, 123024, '\P{_	IN_CYRILLIC_EXTENDED_d}', "");
+    Expect(0, 123024, '\P{^_	IN_CYRILLIC_EXTENDED_d}', "");
+    Error('\p{--Cyrillic_ext_d:=}');
+    Error('\P{--Cyrillic_ext_d:=}');
+    Expect(1, 123023, '\p{cyrillicextd}', "");
+    Expect(0, 123023, '\p{^cyrillicextd}', "");
+    Expect(0, 123023, '\P{cyrillicextd}', "");
+    Expect(1, 123023, '\P{^cyrillicextd}', "");
+    Expect(0, 123024, '\p{cyrillicextd}', "");
+    Expect(1, 123024, '\p{^cyrillicextd}', "");
+    Expect(1, 123024, '\P{cyrillicextd}', "");
+    Expect(0, 123024, '\P{^cyrillicextd}', "");
+    Expect(1, 123023, '\p{ Cyrillic_Ext_D}', "");
+    Expect(0, 123023, '\p{^ Cyrillic_Ext_D}', "");
+    Expect(0, 123023, '\P{ Cyrillic_Ext_D}', "");
+    Expect(1, 123023, '\P{^ Cyrillic_Ext_D}', "");
+    Expect(0, 123024, '\p{ Cyrillic_Ext_D}', "");
+    Expect(1, 123024, '\p{^ Cyrillic_Ext_D}', "");
+    Expect(1, 123024, '\P{ Cyrillic_Ext_D}', "");
+    Expect(0, 123024, '\P{^ Cyrillic_Ext_D}', "");
+    Error('\p{- Is_Cyrillic_EXT_D/a/}');
+    Error('\P{- Is_Cyrillic_EXT_D/a/}');
+    Expect(1, 123023, '\p{iscyrillicextd}', "");
+    Expect(0, 123023, '\p{^iscyrillicextd}', "");
+    Expect(0, 123023, '\P{iscyrillicextd}', "");
+    Expect(1, 123023, '\P{^iscyrillicextd}', "");
+    Expect(0, 123024, '\p{iscyrillicextd}', "");
+    Expect(1, 123024, '\p{^iscyrillicextd}', "");
+    Expect(1, 123024, '\P{iscyrillicextd}', "");
+    Expect(0, 123024, '\P{^iscyrillicextd}', "");
+    Expect(1, 123023, '\p{	_is_Cyrillic_EXT_D}', "");
+    Expect(0, 123023, '\p{^	_is_Cyrillic_EXT_D}', "");
+    Expect(0, 123023, '\P{	_is_Cyrillic_EXT_D}', "");
+    Expect(1, 123023, '\P{^	_is_Cyrillic_EXT_D}', "");
+    Expect(0, 123024, '\p{	_is_Cyrillic_EXT_D}', "");
+    Expect(1, 123024, '\p{^	_is_Cyrillic_EXT_D}', "");
+    Expect(1, 123024, '\P{	_is_Cyrillic_EXT_D}', "");
+    Expect(0, 123024, '\P{^	_is_Cyrillic_EXT_D}', "");
+    Error('\p{/a/__in_CYRILLIC_ext_D}');
+    Error('\P{/a/__in_CYRILLIC_ext_D}');
+    Expect(1, 123023, '\p{incyrillicextd}', "");
+    Expect(0, 123023, '\p{^incyrillicextd}', "");
+    Expect(0, 123023, '\P{incyrillicextd}', "");
+    Expect(1, 123023, '\P{^incyrillicextd}', "");
+    Expect(0, 123024, '\p{incyrillicextd}', "");
+    Expect(1, 123024, '\p{^incyrillicextd}', "");
+    Expect(1, 123024, '\P{incyrillicextd}', "");
+    Expect(0, 123024, '\P{^incyrillicextd}', "");
+    Expect(1, 123023, '\p{-_In_Cyrillic_ext_D}', "");
+    Expect(0, 123023, '\p{^-_In_Cyrillic_ext_D}', "");
+    Expect(0, 123023, '\P{-_In_Cyrillic_ext_D}', "");
+    Expect(1, 123023, '\P{^-_In_Cyrillic_ext_D}', "");
+    Expect(0, 123024, '\p{-_In_Cyrillic_ext_D}', "");
+    Expect(1, 123024, '\p{^-_In_Cyrillic_ext_D}', "");
+    Expect(1, 123024, '\P{-_In_Cyrillic_ext_D}', "");
+    Expect(0, 123024, '\P{^-_In_Cyrillic_ext_D}', "");
+    Error('\p{ CYRILLIC_SUPPLEMENT/a/}');
+    Error('\P{ CYRILLIC_SUPPLEMENT/a/}');
     Expect(1, 1327, '\p{cyrillicsupplement}', "");
     Expect(0, 1327, '\p{^cyrillicsupplement}', "");
     Expect(0, 1327, '\P{cyrillicsupplement}', "");
@@ -95165,16 +96079,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^cyrillicsupplement}', "");
     Expect(1, 1328, '\P{cyrillicsupplement}', "");
     Expect(0, 1328, '\P{^cyrillicsupplement}', "");
-    Expect(1, 1327, '\p{	 Cyrillic_Supplement}', "");
-    Expect(0, 1327, '\p{^	 Cyrillic_Supplement}', "");
-    Expect(0, 1327, '\P{	 Cyrillic_Supplement}', "");
-    Expect(1, 1327, '\P{^	 Cyrillic_Supplement}', "");
-    Expect(0, 1328, '\p{	 Cyrillic_Supplement}', "");
-    Expect(1, 1328, '\p{^	 Cyrillic_Supplement}', "");
-    Expect(1, 1328, '\P{	 Cyrillic_Supplement}', "");
-    Expect(0, 1328, '\P{^	 Cyrillic_Supplement}', "");
-    Error('\p{--IS_Cyrillic_supplement:=}');
-    Error('\P{--IS_Cyrillic_supplement:=}');
+    Expect(1, 1327, '\p{ -Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1327, '\p{^ -Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1327, '\P{ -Cyrillic_SUPPLEMENT}', "");
+    Expect(1, 1327, '\P{^ -Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1328, '\p{ -Cyrillic_SUPPLEMENT}', "");
+    Expect(1, 1328, '\p{^ -Cyrillic_SUPPLEMENT}', "");
+    Expect(1, 1328, '\P{ -Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1328, '\P{^ -Cyrillic_SUPPLEMENT}', "");
+    Error('\p{	-Is_Cyrillic_Supplement/a/}');
+    Error('\P{	-Is_Cyrillic_Supplement/a/}');
     Expect(1, 1327, '\p{iscyrillicsupplement}', "");
     Expect(0, 1327, '\p{^iscyrillicsupplement}', "");
     Expect(0, 1327, '\P{iscyrillicsupplement}', "");
@@ -95183,16 +96097,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^iscyrillicsupplement}', "");
     Expect(1, 1328, '\P{iscyrillicsupplement}', "");
     Expect(0, 1328, '\P{^iscyrillicsupplement}', "");
-    Expect(1, 1327, '\p{-	IS_CYRILLIC_Supplement}', "");
-    Expect(0, 1327, '\p{^-	IS_CYRILLIC_Supplement}', "");
-    Expect(0, 1327, '\P{-	IS_CYRILLIC_Supplement}', "");
-    Expect(1, 1327, '\P{^-	IS_CYRILLIC_Supplement}', "");
-    Expect(0, 1328, '\p{-	IS_CYRILLIC_Supplement}', "");
-    Expect(1, 1328, '\p{^-	IS_CYRILLIC_Supplement}', "");
-    Expect(1, 1328, '\P{-	IS_CYRILLIC_Supplement}', "");
-    Expect(0, 1328, '\P{^-	IS_CYRILLIC_Supplement}', "");
-    Error('\p{:=  in_Cyrillic_supplement}');
-    Error('\P{:=  in_Cyrillic_supplement}');
+    Expect(1, 1327, '\p{	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1327, '\p{^	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1327, '\P{	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(1, 1327, '\P{^	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1328, '\p{	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(1, 1328, '\p{^	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(1, 1328, '\P{	is_Cyrillic_SUPPLEMENT}', "");
+    Expect(0, 1328, '\P{^	is_Cyrillic_SUPPLEMENT}', "");
+    Error('\p{:=__IN_CYRILLIC_SUPPLEMENT}');
+    Error('\P{:=__IN_CYRILLIC_SUPPLEMENT}');
     Expect(1, 1327, '\p{incyrillicsupplement}', "");
     Expect(0, 1327, '\p{^incyrillicsupplement}', "");
     Expect(0, 1327, '\P{incyrillicsupplement}', "");
@@ -95201,16 +96115,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^incyrillicsupplement}', "");
     Expect(1, 1328, '\P{incyrillicsupplement}', "");
     Expect(0, 1328, '\P{^incyrillicsupplement}', "");
-    Expect(1, 1327, '\p{_In_Cyrillic_Supplement}', "");
-    Expect(0, 1327, '\p{^_In_Cyrillic_Supplement}', "");
-    Expect(0, 1327, '\P{_In_Cyrillic_Supplement}', "");
-    Expect(1, 1327, '\P{^_In_Cyrillic_Supplement}', "");
-    Expect(0, 1328, '\p{_In_Cyrillic_Supplement}', "");
-    Expect(1, 1328, '\p{^_In_Cyrillic_Supplement}', "");
-    Expect(1, 1328, '\P{_In_Cyrillic_Supplement}', "");
-    Expect(0, 1328, '\P{^_In_Cyrillic_Supplement}', "");
-    Error('\p{/a/-Cyrillic_SUP}');
-    Error('\P{/a/-Cyrillic_SUP}');
+    Expect(1, 1327, '\p{		in_cyrillic_Supplement}', "");
+    Expect(0, 1327, '\p{^		in_cyrillic_Supplement}', "");
+    Expect(0, 1327, '\P{		in_cyrillic_Supplement}', "");
+    Expect(1, 1327, '\P{^		in_cyrillic_Supplement}', "");
+    Expect(0, 1328, '\p{		in_cyrillic_Supplement}', "");
+    Expect(1, 1328, '\p{^		in_cyrillic_Supplement}', "");
+    Expect(1, 1328, '\P{		in_cyrillic_Supplement}', "");
+    Expect(0, 1328, '\P{^		in_cyrillic_Supplement}', "");
+    Error('\p{ -CYRILLIC_Sup/a/}');
+    Error('\P{ -CYRILLIC_Sup/a/}');
     Expect(1, 1327, '\p{cyrillicsup}', "");
     Expect(0, 1327, '\p{^cyrillicsup}', "");
     Expect(0, 1327, '\P{cyrillicsup}', "");
@@ -95219,16 +96133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^cyrillicsup}', "");
     Expect(1, 1328, '\P{cyrillicsup}', "");
     Expect(0, 1328, '\P{^cyrillicsup}', "");
-    Expect(1, 1327, '\p{	_CYRILLIC_SUP}', "");
-    Expect(0, 1327, '\p{^	_CYRILLIC_SUP}', "");
-    Expect(0, 1327, '\P{	_CYRILLIC_SUP}', "");
-    Expect(1, 1327, '\P{^	_CYRILLIC_SUP}', "");
-    Expect(0, 1328, '\p{	_CYRILLIC_SUP}', "");
-    Expect(1, 1328, '\p{^	_CYRILLIC_SUP}', "");
-    Expect(1, 1328, '\P{	_CYRILLIC_SUP}', "");
-    Expect(0, 1328, '\P{^	_CYRILLIC_SUP}', "");
-    Error('\p{_/a/IS_cyrillic_sup}');
-    Error('\P{_/a/IS_cyrillic_sup}');
+    Expect(1, 1327, '\p{-	Cyrillic_Sup}', "");
+    Expect(0, 1327, '\p{^-	Cyrillic_Sup}', "");
+    Expect(0, 1327, '\P{-	Cyrillic_Sup}', "");
+    Expect(1, 1327, '\P{^-	Cyrillic_Sup}', "");
+    Expect(0, 1328, '\p{-	Cyrillic_Sup}', "");
+    Expect(1, 1328, '\p{^-	Cyrillic_Sup}', "");
+    Expect(1, 1328, '\P{-	Cyrillic_Sup}', "");
+    Expect(0, 1328, '\P{^-	Cyrillic_Sup}', "");
+    Error('\p{	Is_cyrillic_Sup/a/}');
+    Error('\P{	Is_cyrillic_Sup/a/}');
     Expect(1, 1327, '\p{iscyrillicsup}', "");
     Expect(0, 1327, '\p{^iscyrillicsup}', "");
     Expect(0, 1327, '\P{iscyrillicsup}', "");
@@ -95237,16 +96151,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^iscyrillicsup}', "");
     Expect(1, 1328, '\P{iscyrillicsup}', "");
     Expect(0, 1328, '\P{^iscyrillicsup}', "");
-    Expect(1, 1327, '\p{ _IS_CYRILLIC_sup}', "");
-    Expect(0, 1327, '\p{^ _IS_CYRILLIC_sup}', "");
-    Expect(0, 1327, '\P{ _IS_CYRILLIC_sup}', "");
-    Expect(1, 1327, '\P{^ _IS_CYRILLIC_sup}', "");
-    Expect(0, 1328, '\p{ _IS_CYRILLIC_sup}', "");
-    Expect(1, 1328, '\p{^ _IS_CYRILLIC_sup}', "");
-    Expect(1, 1328, '\P{ _IS_CYRILLIC_sup}', "");
-    Expect(0, 1328, '\P{^ _IS_CYRILLIC_sup}', "");
-    Error('\p{_ In_Cyrillic_Sup/a/}');
-    Error('\P{_ In_Cyrillic_Sup/a/}');
+    Expect(1, 1327, '\p{-Is_Cyrillic_SUP}', "");
+    Expect(0, 1327, '\p{^-Is_Cyrillic_SUP}', "");
+    Expect(0, 1327, '\P{-Is_Cyrillic_SUP}', "");
+    Expect(1, 1327, '\P{^-Is_Cyrillic_SUP}', "");
+    Expect(0, 1328, '\p{-Is_Cyrillic_SUP}', "");
+    Expect(1, 1328, '\p{^-Is_Cyrillic_SUP}', "");
+    Expect(1, 1328, '\P{-Is_Cyrillic_SUP}', "");
+    Expect(0, 1328, '\P{^-Is_Cyrillic_SUP}', "");
+    Error('\p{	/a/In_cyrillic_Sup}');
+    Error('\P{	/a/In_cyrillic_Sup}');
     Expect(1, 1327, '\p{incyrillicsup}', "");
     Expect(0, 1327, '\p{^incyrillicsup}', "");
     Expect(0, 1327, '\P{incyrillicsup}', "");
@@ -95255,16 +96169,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^incyrillicsup}', "");
     Expect(1, 1328, '\P{incyrillicsup}', "");
     Expect(0, 1328, '\P{^incyrillicsup}', "");
-    Expect(1, 1327, '\p{In_Cyrillic_Sup}', "");
-    Expect(0, 1327, '\p{^In_Cyrillic_Sup}', "");
-    Expect(0, 1327, '\P{In_Cyrillic_Sup}', "");
-    Expect(1, 1327, '\P{^In_Cyrillic_Sup}', "");
-    Expect(0, 1328, '\p{In_Cyrillic_Sup}', "");
-    Expect(1, 1328, '\p{^In_Cyrillic_Sup}', "");
-    Expect(1, 1328, '\P{In_Cyrillic_Sup}', "");
-    Expect(0, 1328, '\P{^In_Cyrillic_Sup}', "");
-    Error('\p{- CYRILLIC_supplementary/a/}');
-    Error('\P{- CYRILLIC_supplementary/a/}');
+    Expect(1, 1327, '\p{	_In_CYRILLIC_Sup}', "");
+    Expect(0, 1327, '\p{^	_In_CYRILLIC_Sup}', "");
+    Expect(0, 1327, '\P{	_In_CYRILLIC_Sup}', "");
+    Expect(1, 1327, '\P{^	_In_CYRILLIC_Sup}', "");
+    Expect(0, 1328, '\p{	_In_CYRILLIC_Sup}', "");
+    Expect(1, 1328, '\p{^	_In_CYRILLIC_Sup}', "");
+    Expect(1, 1328, '\P{	_In_CYRILLIC_Sup}', "");
+    Expect(0, 1328, '\P{^	_In_CYRILLIC_Sup}', "");
+    Error('\p{/a/- cyrillic_Supplementary}');
+    Error('\P{/a/- cyrillic_Supplementary}');
     Expect(1, 1327, '\p{cyrillicsupplementary}', "");
     Expect(0, 1327, '\p{^cyrillicsupplementary}', "");
     Expect(0, 1327, '\P{cyrillicsupplementary}', "");
@@ -95273,16 +96187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^cyrillicsupplementary}', "");
     Expect(1, 1328, '\P{cyrillicsupplementary}', "");
     Expect(0, 1328, '\P{^cyrillicsupplementary}', "");
-    Expect(1, 1327, '\p{-Cyrillic_supplementary}', "");
-    Expect(0, 1327, '\p{^-Cyrillic_supplementary}', "");
-    Expect(0, 1327, '\P{-Cyrillic_supplementary}', "");
-    Expect(1, 1327, '\P{^-Cyrillic_supplementary}', "");
-    Expect(0, 1328, '\p{-Cyrillic_supplementary}', "");
-    Expect(1, 1328, '\p{^-Cyrillic_supplementary}', "");
-    Expect(1, 1328, '\P{-Cyrillic_supplementary}', "");
-    Expect(0, 1328, '\P{^-Cyrillic_supplementary}', "");
-    Error('\p{/a/  is_CYRILLIC_Supplementary}');
-    Error('\P{/a/  is_CYRILLIC_Supplementary}');
+    Expect(1, 1327, '\p{__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1327, '\p{^__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1327, '\P{__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(1, 1327, '\P{^__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1328, '\p{__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(1, 1328, '\p{^__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(1, 1328, '\P{__Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1328, '\P{^__Cyrillic_SUPPLEMENTARY}', "");
+    Error('\p{:=-IS_Cyrillic_Supplementary}');
+    Error('\P{:=-IS_Cyrillic_Supplementary}');
     Expect(1, 1327, '\p{iscyrillicsupplementary}', "");
     Expect(0, 1327, '\p{^iscyrillicsupplementary}', "");
     Expect(0, 1327, '\P{iscyrillicsupplementary}', "");
@@ -95291,16 +96205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^iscyrillicsupplementary}', "");
     Expect(1, 1328, '\P{iscyrillicsupplementary}', "");
     Expect(0, 1328, '\P{^iscyrillicsupplementary}', "");
-    Expect(1, 1327, '\p{ _is_cyrillic_Supplementary}', "");
-    Expect(0, 1327, '\p{^ _is_cyrillic_Supplementary}', "");
-    Expect(0, 1327, '\P{ _is_cyrillic_Supplementary}', "");
-    Expect(1, 1327, '\P{^ _is_cyrillic_Supplementary}', "");
-    Expect(0, 1328, '\p{ _is_cyrillic_Supplementary}', "");
-    Expect(1, 1328, '\p{^ _is_cyrillic_Supplementary}', "");
-    Expect(1, 1328, '\P{ _is_cyrillic_Supplementary}', "");
-    Expect(0, 1328, '\P{^ _is_cyrillic_Supplementary}', "");
-    Error('\p{	in_CYRILLIC_SUPPLEMENTARY:=}');
-    Error('\P{	in_CYRILLIC_SUPPLEMENTARY:=}');
+    Expect(1, 1327, '\p{ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1327, '\p{^ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1327, '\P{ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(1, 1327, '\P{^ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1328, '\p{ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(1, 1328, '\p{^ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(1, 1328, '\P{ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Expect(0, 1328, '\P{^ _is_Cyrillic_SUPPLEMENTARY}', "");
+    Error('\p{	In_CYRILLIC_supplementary:=}');
+    Error('\P{	In_CYRILLIC_supplementary:=}');
     Expect(1, 1327, '\p{incyrillicsupplementary}', "");
     Expect(0, 1327, '\p{^incyrillicsupplementary}', "");
     Expect(0, 1327, '\P{incyrillicsupplementary}', "");
@@ -95309,16 +96223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1328, '\p{^incyrillicsupplementary}', "");
     Expect(1, 1328, '\P{incyrillicsupplementary}', "");
     Expect(0, 1328, '\P{^incyrillicsupplementary}', "");
-    Expect(1, 1327, '\p{_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(0, 1327, '\p{^_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(0, 1327, '\P{_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(1, 1327, '\P{^_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(0, 1328, '\p{_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(1, 1328, '\p{^_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(1, 1328, '\P{_in_cyrillic_SUPPLEMENTARY}', "");
-    Expect(0, 1328, '\P{^_in_cyrillic_SUPPLEMENTARY}', "");
-    Error('\p{/a/ 	DASH}');
-    Error('\P{/a/ 	DASH}');
+    Expect(1, 1327, '\p{-In_Cyrillic_Supplementary}', "");
+    Expect(0, 1327, '\p{^-In_Cyrillic_Supplementary}', "");
+    Expect(0, 1327, '\P{-In_Cyrillic_Supplementary}', "");
+    Expect(1, 1327, '\P{^-In_Cyrillic_Supplementary}', "");
+    Expect(0, 1328, '\p{-In_Cyrillic_Supplementary}', "");
+    Expect(1, 1328, '\p{^-In_Cyrillic_Supplementary}', "");
+    Expect(1, 1328, '\P{-In_Cyrillic_Supplementary}', "");
+    Expect(0, 1328, '\P{^-In_Cyrillic_Supplementary}', "");
+    Error('\p{	:=Dash}');
+    Error('\P{	:=Dash}');
     Expect(1, 69293, '\p{dash}', "");
     Expect(0, 69293, '\p{^dash}', "");
     Expect(0, 69293, '\P{dash}', "");
@@ -95327,16 +96241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69294, '\p{^dash}', "");
     Expect(1, 69294, '\P{dash}', "");
     Expect(0, 69294, '\P{^dash}', "");
-    Expect(1, 69293, '\p{	dash}', "");
-    Expect(0, 69293, '\p{^	dash}', "");
-    Expect(0, 69293, '\P{	dash}', "");
-    Expect(1, 69293, '\P{^	dash}', "");
-    Expect(0, 69294, '\p{	dash}', "");
-    Expect(1, 69294, '\p{^	dash}', "");
-    Expect(1, 69294, '\P{	dash}', "");
-    Expect(0, 69294, '\P{^	dash}', "");
-    Error('\p{-IS_dash:=}');
-    Error('\P{-IS_dash:=}');
+    Expect(1, 69293, '\p{	 DASH}', "");
+    Expect(0, 69293, '\p{^	 DASH}', "");
+    Expect(0, 69293, '\P{	 DASH}', "");
+    Expect(1, 69293, '\P{^	 DASH}', "");
+    Expect(0, 69294, '\p{	 DASH}', "");
+    Expect(1, 69294, '\p{^	 DASH}', "");
+    Expect(1, 69294, '\P{	 DASH}', "");
+    Expect(0, 69294, '\P{^	 DASH}', "");
+    Error('\p{  is_Dash/a/}');
+    Error('\P{  is_Dash/a/}');
     Expect(1, 69293, '\p{isdash}', "");
     Expect(0, 69293, '\p{^isdash}', "");
     Expect(0, 69293, '\P{isdash}', "");
@@ -95345,16 +96259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69294, '\p{^isdash}', "");
     Expect(1, 69294, '\P{isdash}', "");
     Expect(0, 69294, '\P{^isdash}', "");
-    Expect(1, 69293, '\p{ 	Is_DASH}', "");
-    Expect(0, 69293, '\p{^ 	Is_DASH}', "");
-    Expect(0, 69293, '\P{ 	Is_DASH}', "");
-    Expect(1, 69293, '\P{^ 	Is_DASH}', "");
-    Expect(0, 69294, '\p{ 	Is_DASH}', "");
-    Expect(1, 69294, '\p{^ 	Is_DASH}', "");
-    Expect(1, 69294, '\P{ 	Is_DASH}', "");
-    Expect(0, 69294, '\P{^ 	Is_DASH}', "");
-    Error('\p{	/a/DASH_Punctuation}');
-    Error('\P{	/a/DASH_Punctuation}');
+    Expect(1, 69293, '\p{ -Is_dash}', "");
+    Expect(0, 69293, '\p{^ -Is_dash}', "");
+    Expect(0, 69293, '\P{ -Is_dash}', "");
+    Expect(1, 69293, '\P{^ -Is_dash}', "");
+    Expect(0, 69294, '\p{ -Is_dash}', "");
+    Expect(1, 69294, '\p{^ -Is_dash}', "");
+    Expect(1, 69294, '\P{ -Is_dash}', "");
+    Expect(0, 69294, '\P{^ -Is_dash}', "");
+    Error('\p{_/a/dash_Punctuation}');
+    Error('\P{_/a/dash_Punctuation}');
     Expect(1, 69293, '\p{dashpunctuation}', "");
     Expect(0, 69293, '\p{^dashpunctuation}', "");
     Expect(0, 69293, '\P{dashpunctuation}', "");
@@ -95363,16 +96277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69294, '\p{^dashpunctuation}', "");
     Expect(1, 69294, '\P{dashpunctuation}', "");
     Expect(0, 69294, '\P{^dashpunctuation}', "");
-    Expect(1, 69293, '\p{-_Dash_Punctuation}', "");
-    Expect(0, 69293, '\p{^-_Dash_Punctuation}', "");
-    Expect(0, 69293, '\P{-_Dash_Punctuation}', "");
-    Expect(1, 69293, '\P{^-_Dash_Punctuation}', "");
-    Expect(0, 69294, '\p{-_Dash_Punctuation}', "");
-    Expect(1, 69294, '\p{^-_Dash_Punctuation}', "");
-    Expect(1, 69294, '\P{-_Dash_Punctuation}', "");
-    Expect(0, 69294, '\P{^-_Dash_Punctuation}', "");
-    Error('\p{-/a/IS_dash_punctuation}');
-    Error('\P{-/a/IS_dash_punctuation}');
+    Expect(1, 69293, '\p{- dash_PUNCTUATION}', "");
+    Expect(0, 69293, '\p{^- dash_PUNCTUATION}', "");
+    Expect(0, 69293, '\P{- dash_PUNCTUATION}', "");
+    Expect(1, 69293, '\P{^- dash_PUNCTUATION}', "");
+    Expect(0, 69294, '\p{- dash_PUNCTUATION}', "");
+    Expect(1, 69294, '\p{^- dash_PUNCTUATION}', "");
+    Expect(1, 69294, '\P{- dash_PUNCTUATION}', "");
+    Expect(0, 69294, '\P{^- dash_PUNCTUATION}', "");
+    Error('\p{		is_Dash_Punctuation/a/}');
+    Error('\P{		is_Dash_Punctuation/a/}');
     Expect(1, 69293, '\p{isdashpunctuation}', "");
     Expect(0, 69293, '\p{^isdashpunctuation}', "");
     Expect(0, 69293, '\P{isdashpunctuation}', "");
@@ -95381,16 +96295,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69294, '\p{^isdashpunctuation}', "");
     Expect(1, 69294, '\P{isdashpunctuation}', "");
     Expect(0, 69294, '\P{^isdashpunctuation}', "");
-    Expect(1, 69293, '\p{	 Is_Dash_PUNCTUATION}', "");
-    Expect(0, 69293, '\p{^	 Is_Dash_PUNCTUATION}', "");
-    Expect(0, 69293, '\P{	 Is_Dash_PUNCTUATION}', "");
-    Expect(1, 69293, '\P{^	 Is_Dash_PUNCTUATION}', "");
-    Expect(0, 69294, '\p{	 Is_Dash_PUNCTUATION}', "");
-    Expect(1, 69294, '\p{^	 Is_Dash_PUNCTUATION}', "");
-    Expect(1, 69294, '\P{	 Is_Dash_PUNCTUATION}', "");
-    Expect(0, 69294, '\P{^	 Is_Dash_PUNCTUATION}', "");
-    Error('\p{/a/ Pd}');
-    Error('\P{/a/ Pd}');
+    Expect(1, 69293, '\p{		is_Dash_punctuation}', "");
+    Expect(0, 69293, '\p{^		is_Dash_punctuation}', "");
+    Expect(0, 69293, '\P{		is_Dash_punctuation}', "");
+    Expect(1, 69293, '\P{^		is_Dash_punctuation}', "");
+    Expect(0, 69294, '\p{		is_Dash_punctuation}', "");
+    Expect(1, 69294, '\p{^		is_Dash_punctuation}', "");
+    Expect(1, 69294, '\P{		is_Dash_punctuation}', "");
+    Expect(0, 69294, '\P{^		is_Dash_punctuation}', "");
+    Error('\p{/a/-PD}');
+    Error('\P{/a/-PD}');
     Expect(1, 69293, '\p{pd}', "");
     Expect(0, 69293, '\p{^pd}', "");
     Expect(0, 69293, '\P{pd}', "");
@@ -95399,16 +96313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69294, '\p{^pd}', "");
     Expect(1, 69294, '\P{pd}', "");
     Expect(0, 69294, '\P{^pd}', "");
-    Expect(1, 69293, '\p{ 	Pd}', "");
-    Expect(0, 69293, '\p{^ 	Pd}', "");
-    Expect(0, 69293, '\P{ 	Pd}', "");
-    Expect(1, 69293, '\P{^ 	Pd}', "");
-    Expect(0, 69294, '\p{ 	Pd}', "");
-    Expect(1, 69294, '\p{^ 	Pd}', "");
-    Expect(1, 69294, '\P{ 	Pd}', "");
-    Expect(0, 69294, '\P{^ 	Pd}', "");
-    Error('\p{:=IS_Pd}');
-    Error('\P{:=IS_Pd}');
+    Expect(1, 69293, '\p{_ PD}', "");
+    Expect(0, 69293, '\p{^_ PD}', "");
+    Expect(0, 69293, '\P{_ PD}', "");
+    Expect(1, 69293, '\P{^_ PD}', "");
+    Expect(0, 69294, '\p{_ PD}', "");
+    Expect(1, 69294, '\p{^_ PD}', "");
+    Expect(1, 69294, '\P{_ PD}', "");
+    Expect(0, 69294, '\P{^_ PD}', "");
+    Error('\p{:=_is_Pd}');
+    Error('\P{:=_is_Pd}');
     Expect(1, 69293, '\p{ispd}', "");
     Expect(0, 69293, '\p{^ispd}', "");
     Expect(0, 69293, '\P{ispd}', "");
@@ -95417,16 +96331,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69294, '\p{^ispd}', "");
     Expect(1, 69294, '\P{ispd}', "");
     Expect(0, 69294, '\P{^ispd}', "");
-    Expect(1, 69293, '\p{--IS_Pd}', "");
-    Expect(0, 69293, '\p{^--IS_Pd}', "");
-    Expect(0, 69293, '\P{--IS_Pd}', "");
-    Expect(1, 69293, '\P{^--IS_Pd}', "");
-    Expect(0, 69294, '\p{--IS_Pd}', "");
-    Expect(1, 69294, '\p{^--IS_Pd}', "");
-    Expect(1, 69294, '\P{--IS_Pd}', "");
-    Expect(0, 69294, '\P{^--IS_Pd}', "");
-    Error('\p{/a/  Default_IGNORABLE_Code_POINT}');
-    Error('\P{/a/  Default_IGNORABLE_Code_POINT}');
+    Expect(1, 69293, '\p{-	Is_pd}', "");
+    Expect(0, 69293, '\p{^-	Is_pd}', "");
+    Expect(0, 69293, '\P{-	Is_pd}', "");
+    Expect(1, 69293, '\P{^-	Is_pd}', "");
+    Expect(0, 69294, '\p{-	Is_pd}', "");
+    Expect(1, 69294, '\p{^-	Is_pd}', "");
+    Expect(1, 69294, '\P{-	Is_pd}', "");
+    Expect(0, 69294, '\P{^-	Is_pd}', "");
+    Error('\p{:=-DEFAULT_IGNORABLE_Code_Point}');
+    Error('\P{:=-DEFAULT_IGNORABLE_Code_Point}');
     Expect(1, 921599, '\p{defaultignorablecodepoint}', "");
     Expect(0, 921599, '\p{^defaultignorablecodepoint}', "");
     Expect(0, 921599, '\P{defaultignorablecodepoint}', "");
@@ -95435,16 +96349,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^defaultignorablecodepoint}', "");
     Expect(1, 921600, '\P{defaultignorablecodepoint}', "");
     Expect(0, 921600, '\P{^defaultignorablecodepoint}', "");
-    Expect(1, 921599, '\p{ _default_Ignorable_Code_Point}', "");
-    Expect(0, 921599, '\p{^ _default_Ignorable_Code_Point}', "");
-    Expect(0, 921599, '\P{ _default_Ignorable_Code_Point}', "");
-    Expect(1, 921599, '\P{^ _default_Ignorable_Code_Point}', "");
-    Expect(0, 921600, '\p{ _default_Ignorable_Code_Point}', "");
-    Expect(1, 921600, '\p{^ _default_Ignorable_Code_Point}', "");
-    Expect(1, 921600, '\P{ _default_Ignorable_Code_Point}', "");
-    Expect(0, 921600, '\P{^ _default_Ignorable_Code_Point}', "");
-    Error('\p{/a/	_IS_Default_IGNORABLE_Code_point}');
-    Error('\P{/a/	_IS_Default_IGNORABLE_Code_point}');
+    Expect(1, 921599, '\p{  Default_Ignorable_Code_POINT}', "");
+    Expect(0, 921599, '\p{^  Default_Ignorable_Code_POINT}', "");
+    Expect(0, 921599, '\P{  Default_Ignorable_Code_POINT}', "");
+    Expect(1, 921599, '\P{^  Default_Ignorable_Code_POINT}', "");
+    Expect(0, 921600, '\p{  Default_Ignorable_Code_POINT}', "");
+    Expect(1, 921600, '\p{^  Default_Ignorable_Code_POINT}', "");
+    Expect(1, 921600, '\P{  Default_Ignorable_Code_POINT}', "");
+    Expect(0, 921600, '\P{^  Default_Ignorable_Code_POINT}', "");
+    Error('\p{ Is_Default_Ignorable_code_point:=}');
+    Error('\P{ Is_Default_Ignorable_code_point:=}');
     Expect(1, 921599, '\p{isdefaultignorablecodepoint}', "");
     Expect(0, 921599, '\p{^isdefaultignorablecodepoint}', "");
     Expect(0, 921599, '\P{isdefaultignorablecodepoint}', "");
@@ -95453,16 +96367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^isdefaultignorablecodepoint}', "");
     Expect(1, 921600, '\P{isdefaultignorablecodepoint}', "");
     Expect(0, 921600, '\P{^isdefaultignorablecodepoint}', "");
-    Expect(1, 921599, '\p{		IS_Default_ignorable_code_Point}', "");
-    Expect(0, 921599, '\p{^		IS_Default_ignorable_code_Point}', "");
-    Expect(0, 921599, '\P{		IS_Default_ignorable_code_Point}', "");
-    Expect(1, 921599, '\P{^		IS_Default_ignorable_code_Point}', "");
-    Expect(0, 921600, '\p{		IS_Default_ignorable_code_Point}', "");
-    Expect(1, 921600, '\p{^		IS_Default_ignorable_code_Point}', "");
-    Expect(1, 921600, '\P{		IS_Default_ignorable_code_Point}', "");
-    Expect(0, 921600, '\P{^		IS_Default_ignorable_code_Point}', "");
-    Error('\p{	di:=}');
-    Error('\P{	di:=}');
+    Expect(1, 921599, '\p{		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(0, 921599, '\p{^		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(0, 921599, '\P{		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(1, 921599, '\P{^		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(0, 921600, '\p{		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(1, 921600, '\p{^		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(1, 921600, '\P{		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Expect(0, 921600, '\P{^		Is_DEFAULT_Ignorable_CODE_Point}', "");
+    Error('\p{:= -DI}');
+    Error('\P{:= -DI}');
     Expect(1, 921599, '\p{di}', "");
     Expect(0, 921599, '\p{^di}', "");
     Expect(0, 921599, '\P{di}', "");
@@ -95471,16 +96385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^di}', "");
     Expect(1, 921600, '\P{di}', "");
     Expect(0, 921600, '\P{^di}', "");
-    Expect(1, 921599, '\p{__DI}', "");
-    Expect(0, 921599, '\p{^__DI}', "");
-    Expect(0, 921599, '\P{__DI}', "");
-    Expect(1, 921599, '\P{^__DI}', "");
-    Expect(0, 921600, '\p{__DI}', "");
-    Expect(1, 921600, '\p{^__DI}', "");
-    Expect(1, 921600, '\P{__DI}', "");
-    Expect(0, 921600, '\P{^__DI}', "");
-    Error('\p{ :=is_DI}');
-    Error('\P{ :=is_DI}');
+    Expect(1, 921599, '\p{-	DI}', "");
+    Expect(0, 921599, '\p{^-	DI}', "");
+    Expect(0, 921599, '\P{-	DI}', "");
+    Expect(1, 921599, '\P{^-	DI}', "");
+    Expect(0, 921600, '\p{-	DI}', "");
+    Expect(1, 921600, '\p{^-	DI}', "");
+    Expect(1, 921600, '\P{-	DI}', "");
+    Expect(0, 921600, '\P{^-	DI}', "");
+    Error('\p{ :=IS_DI}');
+    Error('\P{ :=IS_DI}');
     Expect(1, 921599, '\p{isdi}', "");
     Expect(0, 921599, '\p{^isdi}', "");
     Expect(0, 921599, '\P{isdi}', "");
@@ -95489,16 +96403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 921600, '\p{^isdi}', "");
     Expect(1, 921600, '\P{isdi}', "");
     Expect(0, 921600, '\P{^isdi}', "");
-    Expect(1, 921599, '\p{-	Is_DI}', "");
-    Expect(0, 921599, '\p{^-	Is_DI}', "");
-    Expect(0, 921599, '\P{-	Is_DI}', "");
-    Expect(1, 921599, '\P{^-	Is_DI}', "");
-    Expect(0, 921600, '\p{-	Is_DI}', "");
-    Expect(1, 921600, '\p{^-	Is_DI}', "");
-    Expect(1, 921600, '\P{-	Is_DI}', "");
-    Expect(0, 921600, '\P{^-	Is_DI}', "");
-    Error('\p{/a/	 Deprecated}');
-    Error('\P{/a/	 Deprecated}');
+    Expect(1, 921599, '\p{  IS_di}', "");
+    Expect(0, 921599, '\p{^  IS_di}', "");
+    Expect(0, 921599, '\P{  IS_di}', "");
+    Expect(1, 921599, '\P{^  IS_di}', "");
+    Expect(0, 921600, '\p{  IS_di}', "");
+    Expect(1, 921600, '\p{^  IS_di}', "");
+    Expect(1, 921600, '\P{  IS_di}', "");
+    Expect(0, 921600, '\P{^  IS_di}', "");
+    Error('\p{_/a/Deprecated}');
+    Error('\P{_/a/Deprecated}');
     Expect(1, 917505, '\p{deprecated}', "");
     Expect(0, 917505, '\p{^deprecated}', "");
     Expect(0, 917505, '\P{deprecated}', "");
@@ -95507,16 +96421,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917506, '\p{^deprecated}', "");
     Expect(1, 917506, '\P{deprecated}', "");
     Expect(0, 917506, '\P{^deprecated}', "");
-    Expect(1, 917505, '\p{_deprecated}', "");
-    Expect(0, 917505, '\p{^_deprecated}', "");
-    Expect(0, 917505, '\P{_deprecated}', "");
-    Expect(1, 917505, '\P{^_deprecated}', "");
-    Expect(0, 917506, '\p{_deprecated}', "");
-    Expect(1, 917506, '\p{^_deprecated}', "");
-    Expect(1, 917506, '\P{_deprecated}', "");
-    Expect(0, 917506, '\P{^_deprecated}', "");
-    Error('\p{-:=is_Deprecated}');
-    Error('\P{-:=is_Deprecated}');
+    Expect(1, 917505, '\p{ DEPRECATED}', "");
+    Expect(0, 917505, '\p{^ DEPRECATED}', "");
+    Expect(0, 917505, '\P{ DEPRECATED}', "");
+    Expect(1, 917505, '\P{^ DEPRECATED}', "");
+    Expect(0, 917506, '\p{ DEPRECATED}', "");
+    Expect(1, 917506, '\p{^ DEPRECATED}', "");
+    Expect(1, 917506, '\P{ DEPRECATED}', "");
+    Expect(0, 917506, '\P{^ DEPRECATED}', "");
+    Error('\p{:=_-Is_deprecated}');
+    Error('\P{:=_-Is_deprecated}');
     Expect(1, 917505, '\p{isdeprecated}', "");
     Expect(0, 917505, '\p{^isdeprecated}', "");
     Expect(0, 917505, '\P{isdeprecated}', "");
@@ -95525,16 +96439,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917506, '\p{^isdeprecated}', "");
     Expect(1, 917506, '\P{isdeprecated}', "");
     Expect(0, 917506, '\P{^isdeprecated}', "");
-    Expect(1, 917505, '\p{ -Is_Deprecated}', "");
-    Expect(0, 917505, '\p{^ -Is_Deprecated}', "");
-    Expect(0, 917505, '\P{ -Is_Deprecated}', "");
-    Expect(1, 917505, '\P{^ -Is_Deprecated}', "");
-    Expect(0, 917506, '\p{ -Is_Deprecated}', "");
-    Expect(1, 917506, '\p{^ -Is_Deprecated}', "");
-    Expect(1, 917506, '\P{ -Is_Deprecated}', "");
-    Expect(0, 917506, '\P{^ -Is_Deprecated}', "");
-    Error('\p{- Dep:=}');
-    Error('\P{- Dep:=}');
+    Expect(1, 917505, '\p{-	is_deprecated}', "");
+    Expect(0, 917505, '\p{^-	is_deprecated}', "");
+    Expect(0, 917505, '\P{-	is_deprecated}', "");
+    Expect(1, 917505, '\P{^-	is_deprecated}', "");
+    Expect(0, 917506, '\p{-	is_deprecated}', "");
+    Expect(1, 917506, '\p{^-	is_deprecated}', "");
+    Expect(1, 917506, '\P{-	is_deprecated}', "");
+    Expect(0, 917506, '\P{^-	is_deprecated}', "");
+    Error('\p{/a/ Dep}');
+    Error('\P{/a/ Dep}');
     Expect(1, 917505, '\p{dep}', "");
     Expect(0, 917505, '\p{^dep}', "");
     Expect(0, 917505, '\P{dep}', "");
@@ -95543,16 +96457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917506, '\p{^dep}', "");
     Expect(1, 917506, '\P{dep}', "");
     Expect(0, 917506, '\P{^dep}', "");
-    Expect(1, 917505, '\p{DEP}', "");
-    Expect(0, 917505, '\p{^DEP}', "");
-    Expect(0, 917505, '\P{DEP}', "");
-    Expect(1, 917505, '\P{^DEP}', "");
-    Expect(0, 917506, '\p{DEP}', "");
-    Expect(1, 917506, '\p{^DEP}', "");
-    Expect(1, 917506, '\P{DEP}', "");
-    Expect(0, 917506, '\P{^DEP}', "");
-    Error('\p{_is_DEP/a/}');
-    Error('\P{_is_DEP/a/}');
+    Expect(1, 917505, '\p{	_DEP}', "");
+    Expect(0, 917505, '\p{^	_DEP}', "");
+    Expect(0, 917505, '\P{	_DEP}', "");
+    Expect(1, 917505, '\P{^	_DEP}', "");
+    Expect(0, 917506, '\p{	_DEP}', "");
+    Expect(1, 917506, '\p{^	_DEP}', "");
+    Expect(1, 917506, '\P{	_DEP}', "");
+    Expect(0, 917506, '\P{^	_DEP}', "");
+    Error('\p{_is_Dep/a/}');
+    Error('\P{_is_Dep/a/}');
     Expect(1, 917505, '\p{isdep}', "");
     Expect(0, 917505, '\p{^isdep}', "");
     Expect(0, 917505, '\P{isdep}', "");
@@ -95561,16 +96475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917506, '\p{^isdep}', "");
     Expect(1, 917506, '\P{isdep}', "");
     Expect(0, 917506, '\P{^isdep}', "");
-    Expect(1, 917505, '\p{- IS_dep}', "");
-    Expect(0, 917505, '\p{^- IS_dep}', "");
-    Expect(0, 917505, '\P{- IS_dep}', "");
-    Expect(1, 917505, '\P{^- IS_dep}', "");
-    Expect(0, 917506, '\p{- IS_dep}', "");
-    Expect(1, 917506, '\p{^- IS_dep}', "");
-    Expect(1, 917506, '\P{- IS_dep}', "");
-    Expect(0, 917506, '\P{^- IS_dep}', "");
-    Error('\p{:=deseret}');
-    Error('\P{:=deseret}');
+    Expect(1, 917505, '\p{		is_dep}', "");
+    Expect(0, 917505, '\p{^		is_dep}', "");
+    Expect(0, 917505, '\P{		is_dep}', "");
+    Expect(1, 917505, '\P{^		is_dep}', "");
+    Expect(0, 917506, '\p{		is_dep}', "");
+    Expect(1, 917506, '\p{^		is_dep}', "");
+    Expect(1, 917506, '\P{		is_dep}', "");
+    Expect(0, 917506, '\P{^		is_dep}', "");
+    Error('\p{	DESERET:=}');
+    Error('\P{	DESERET:=}');
     Expect(1, 66639, '\p{deseret}', "");
     Expect(0, 66639, '\p{^deseret}', "");
     Expect(0, 66639, '\P{deseret}', "");
@@ -95579,16 +96493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66640, '\p{^deseret}', "");
     Expect(1, 66640, '\P{deseret}', "");
     Expect(0, 66640, '\P{^deseret}', "");
-    Expect(1, 66639, '\p{ 	deseret}', "");
-    Expect(0, 66639, '\p{^ 	deseret}', "");
-    Expect(0, 66639, '\P{ 	deseret}', "");
-    Expect(1, 66639, '\P{^ 	deseret}', "");
-    Expect(0, 66640, '\p{ 	deseret}', "");
-    Expect(1, 66640, '\p{^ 	deseret}', "");
-    Expect(1, 66640, '\P{ 	deseret}', "");
-    Expect(0, 66640, '\P{^ 	deseret}', "");
-    Error('\p{	is_Deseret:=}');
-    Error('\P{	is_Deseret:=}');
+    Expect(1, 66639, '\p{_	deseret}', "");
+    Expect(0, 66639, '\p{^_	deseret}', "");
+    Expect(0, 66639, '\P{_	deseret}', "");
+    Expect(1, 66639, '\P{^_	deseret}', "");
+    Expect(0, 66640, '\p{_	deseret}', "");
+    Expect(1, 66640, '\p{^_	deseret}', "");
+    Expect(1, 66640, '\P{_	deseret}', "");
+    Expect(0, 66640, '\P{^_	deseret}', "");
+    Error('\p{-_Is_DESERET/a/}');
+    Error('\P{-_Is_DESERET/a/}');
     Expect(1, 66639, '\p{isdeseret}', "");
     Expect(0, 66639, '\p{^isdeseret}', "");
     Expect(0, 66639, '\P{isdeseret}', "");
@@ -95597,16 +96511,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66640, '\p{^isdeseret}', "");
     Expect(1, 66640, '\P{isdeseret}', "");
     Expect(0, 66640, '\P{^isdeseret}', "");
-    Expect(1, 66639, '\p{_Is_Deseret}', "");
-    Expect(0, 66639, '\p{^_Is_Deseret}', "");
-    Expect(0, 66639, '\P{_Is_Deseret}', "");
-    Expect(1, 66639, '\P{^_Is_Deseret}', "");
-    Expect(0, 66640, '\p{_Is_Deseret}', "");
-    Expect(1, 66640, '\p{^_Is_Deseret}', "");
-    Expect(1, 66640, '\P{_Is_Deseret}', "");
-    Expect(0, 66640, '\P{^_Is_Deseret}', "");
-    Error('\p{	:=DSRT}');
-    Error('\P{	:=DSRT}');
+    Expect(1, 66639, '\p{ 	Is_Deseret}', "");
+    Expect(0, 66639, '\p{^ 	Is_Deseret}', "");
+    Expect(0, 66639, '\P{ 	Is_Deseret}', "");
+    Expect(1, 66639, '\P{^ 	Is_Deseret}', "");
+    Expect(0, 66640, '\p{ 	Is_Deseret}', "");
+    Expect(1, 66640, '\p{^ 	Is_Deseret}', "");
+    Expect(1, 66640, '\P{ 	Is_Deseret}', "");
+    Expect(0, 66640, '\P{^ 	Is_Deseret}', "");
+    Error('\p{:=_	DSRT}');
+    Error('\P{:=_	DSRT}');
     Expect(1, 66639, '\p{dsrt}', "");
     Expect(0, 66639, '\p{^dsrt}', "");
     Expect(0, 66639, '\P{dsrt}', "");
@@ -95615,16 +96529,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66640, '\p{^dsrt}', "");
     Expect(1, 66640, '\P{dsrt}', "");
     Expect(0, 66640, '\P{^dsrt}', "");
-    Expect(1, 66639, '\p{	DSRT}', "");
-    Expect(0, 66639, '\p{^	DSRT}', "");
-    Expect(0, 66639, '\P{	DSRT}', "");
-    Expect(1, 66639, '\P{^	DSRT}', "");
-    Expect(0, 66640, '\p{	DSRT}', "");
-    Expect(1, 66640, '\p{^	DSRT}', "");
-    Expect(1, 66640, '\P{	DSRT}', "");
-    Expect(0, 66640, '\P{^	DSRT}', "");
-    Error('\p{- IS_dsrt/a/}');
-    Error('\P{- IS_dsrt/a/}');
+    Expect(1, 66639, '\p{	_Dsrt}', "");
+    Expect(0, 66639, '\p{^	_Dsrt}', "");
+    Expect(0, 66639, '\P{	_Dsrt}', "");
+    Expect(1, 66639, '\P{^	_Dsrt}', "");
+    Expect(0, 66640, '\p{	_Dsrt}', "");
+    Expect(1, 66640, '\p{^	_Dsrt}', "");
+    Expect(1, 66640, '\P{	_Dsrt}', "");
+    Expect(0, 66640, '\P{^	_Dsrt}', "");
+    Error('\p{:=is_DSRT}');
+    Error('\P{:=is_DSRT}');
     Expect(1, 66639, '\p{isdsrt}', "");
     Expect(0, 66639, '\p{^isdsrt}', "");
     Expect(0, 66639, '\P{isdsrt}', "");
@@ -95633,88 +96547,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66640, '\p{^isdsrt}', "");
     Expect(1, 66640, '\P{isdsrt}', "");
     Expect(0, 66640, '\P{^isdsrt}', "");
-    Expect(1, 66639, '\p{ IS_dsrt}', "");
-    Expect(0, 66639, '\p{^ IS_dsrt}', "");
-    Expect(0, 66639, '\P{ IS_dsrt}', "");
-    Expect(1, 66639, '\P{^ IS_dsrt}', "");
-    Expect(0, 66640, '\p{ IS_dsrt}', "");
-    Expect(1, 66640, '\p{^ IS_dsrt}', "");
-    Expect(1, 66640, '\P{ IS_dsrt}', "");
-    Expect(0, 66640, '\P{^ IS_dsrt}', "");
-    Error('\p{	_Devanagari:=}');
-    Error('\P{	_Devanagari:=}');
-    Expect(1, 43263, '\p{devanagari}', "");
-    Expect(0, 43263, '\p{^devanagari}', "");
-    Expect(0, 43263, '\P{devanagari}', "");
-    Expect(1, 43263, '\P{^devanagari}', "");
-    Expect(0, 43264, '\p{devanagari}', "");
-    Expect(1, 43264, '\p{^devanagari}', "");
-    Expect(1, 43264, '\P{devanagari}', "");
-    Expect(0, 43264, '\P{^devanagari}', "");
-    Expect(1, 43263, '\p{ -Devanagari}', "");
-    Expect(0, 43263, '\p{^ -Devanagari}', "");
-    Expect(0, 43263, '\P{ -Devanagari}', "");
-    Expect(1, 43263, '\P{^ -Devanagari}', "");
-    Expect(0, 43264, '\p{ -Devanagari}', "");
-    Expect(1, 43264, '\p{^ -Devanagari}', "");
-    Expect(1, 43264, '\P{ -Devanagari}', "");
-    Expect(0, 43264, '\P{^ -Devanagari}', "");
-    Error('\p{	 IS_DEVANAGARI/a/}');
-    Error('\P{	 IS_DEVANAGARI/a/}');
-    Expect(1, 43263, '\p{isdevanagari}', "");
-    Expect(0, 43263, '\p{^isdevanagari}', "");
-    Expect(0, 43263, '\P{isdevanagari}', "");
-    Expect(1, 43263, '\P{^isdevanagari}', "");
-    Expect(0, 43264, '\p{isdevanagari}', "");
-    Expect(1, 43264, '\p{^isdevanagari}', "");
-    Expect(1, 43264, '\P{isdevanagari}', "");
-    Expect(0, 43264, '\P{^isdevanagari}', "");
-    Expect(1, 43263, '\p{	Is_devanagari}', "");
-    Expect(0, 43263, '\p{^	Is_devanagari}', "");
-    Expect(0, 43263, '\P{	Is_devanagari}', "");
-    Expect(1, 43263, '\P{^	Is_devanagari}', "");
-    Expect(0, 43264, '\p{	Is_devanagari}', "");
-    Expect(1, 43264, '\p{^	Is_devanagari}', "");
-    Expect(1, 43264, '\P{	Is_devanagari}', "");
-    Expect(0, 43264, '\P{^	Is_devanagari}', "");
-    Error('\p{ DEVA/a/}');
-    Error('\P{ DEVA/a/}');
-    Expect(1, 43263, '\p{deva}', "");
-    Expect(0, 43263, '\p{^deva}', "");
-    Expect(0, 43263, '\P{deva}', "");
-    Expect(1, 43263, '\P{^deva}', "");
-    Expect(0, 43264, '\p{deva}', "");
-    Expect(1, 43264, '\p{^deva}', "");
-    Expect(1, 43264, '\P{deva}', "");
-    Expect(0, 43264, '\P{^deva}', "");
-    Expect(1, 43263, '\p{	 deva}', "");
-    Expect(0, 43263, '\p{^	 deva}', "");
-    Expect(0, 43263, '\P{	 deva}', "");
-    Expect(1, 43263, '\P{^	 deva}', "");
-    Expect(0, 43264, '\p{	 deva}', "");
-    Expect(1, 43264, '\p{^	 deva}', "");
-    Expect(1, 43264, '\P{	 deva}', "");
-    Expect(0, 43264, '\P{^	 deva}', "");
-    Error('\p{	-Is_Deva/a/}');
-    Error('\P{	-Is_Deva/a/}');
-    Expect(1, 43263, '\p{isdeva}', "");
-    Expect(0, 43263, '\p{^isdeva}', "");
-    Expect(0, 43263, '\P{isdeva}', "");
-    Expect(1, 43263, '\P{^isdeva}', "");
-    Expect(0, 43264, '\p{isdeva}', "");
-    Expect(1, 43264, '\p{^isdeva}', "");
-    Expect(1, 43264, '\P{isdeva}', "");
-    Expect(0, 43264, '\P{^isdeva}', "");
-    Expect(1, 43263, '\p{	Is_DEVA}', "");
-    Expect(0, 43263, '\p{^	Is_DEVA}', "");
-    Expect(0, 43263, '\P{	Is_DEVA}', "");
-    Expect(1, 43263, '\P{^	Is_DEVA}', "");
-    Expect(0, 43264, '\p{	Is_DEVA}', "");
-    Expect(1, 43264, '\p{^	Is_DEVA}', "");
-    Expect(1, 43264, '\P{	Is_DEVA}', "");
-    Expect(0, 43264, '\P{^	Is_DEVA}', "");
-    Error('\p{-devanagari_extended:=}');
-    Error('\P{-devanagari_extended:=}');
+    Expect(1, 66639, '\p{	_Is_Dsrt}', "");
+    Expect(0, 66639, '\p{^	_Is_Dsrt}', "");
+    Expect(0, 66639, '\P{	_Is_Dsrt}', "");
+    Expect(1, 66639, '\P{^	_Is_Dsrt}', "");
+    Expect(0, 66640, '\p{	_Is_Dsrt}', "");
+    Expect(1, 66640, '\p{^	_Is_Dsrt}', "");
+    Expect(1, 66640, '\P{	_Is_Dsrt}', "");
+    Expect(0, 66640, '\P{^	_Is_Dsrt}', "");
+    Error('\p{:=_ devanagari}');
+    Error('\P{:=_ devanagari}');
+    Expect(1, 72457, '\p{devanagari}', "");
+    Expect(0, 72457, '\p{^devanagari}', "");
+    Expect(0, 72457, '\P{devanagari}', "");
+    Expect(1, 72457, '\P{^devanagari}', "");
+    Expect(0, 72458, '\p{devanagari}', "");
+    Expect(1, 72458, '\p{^devanagari}', "");
+    Expect(1, 72458, '\P{devanagari}', "");
+    Expect(0, 72458, '\P{^devanagari}', "");
+    Expect(1, 72457, '\p{_ Devanagari}', "");
+    Expect(0, 72457, '\p{^_ Devanagari}', "");
+    Expect(0, 72457, '\P{_ Devanagari}', "");
+    Expect(1, 72457, '\P{^_ Devanagari}', "");
+    Expect(0, 72458, '\p{_ Devanagari}', "");
+    Expect(1, 72458, '\p{^_ Devanagari}', "");
+    Expect(1, 72458, '\P{_ Devanagari}', "");
+    Expect(0, 72458, '\P{^_ Devanagari}', "");
+    Error('\p{:= Is_DEVANAGARI}');
+    Error('\P{:= Is_DEVANAGARI}');
+    Expect(1, 72457, '\p{isdevanagari}', "");
+    Expect(0, 72457, '\p{^isdevanagari}', "");
+    Expect(0, 72457, '\P{isdevanagari}', "");
+    Expect(1, 72457, '\P{^isdevanagari}', "");
+    Expect(0, 72458, '\p{isdevanagari}', "");
+    Expect(1, 72458, '\p{^isdevanagari}', "");
+    Expect(1, 72458, '\P{isdevanagari}', "");
+    Expect(0, 72458, '\P{^isdevanagari}', "");
+    Expect(1, 72457, '\p{	Is_Devanagari}', "");
+    Expect(0, 72457, '\p{^	Is_Devanagari}', "");
+    Expect(0, 72457, '\P{	Is_Devanagari}', "");
+    Expect(1, 72457, '\P{^	Is_Devanagari}', "");
+    Expect(0, 72458, '\p{	Is_Devanagari}', "");
+    Expect(1, 72458, '\p{^	Is_Devanagari}', "");
+    Expect(1, 72458, '\P{	Is_Devanagari}', "");
+    Expect(0, 72458, '\P{^	Is_Devanagari}', "");
+    Error('\p{:=-deva}');
+    Error('\P{:=-deva}');
+    Expect(1, 72457, '\p{deva}', "");
+    Expect(0, 72457, '\p{^deva}', "");
+    Expect(0, 72457, '\P{deva}', "");
+    Expect(1, 72457, '\P{^deva}', "");
+    Expect(0, 72458, '\p{deva}', "");
+    Expect(1, 72458, '\p{^deva}', "");
+    Expect(1, 72458, '\P{deva}', "");
+    Expect(0, 72458, '\P{^deva}', "");
+    Expect(1, 72457, '\p{__DEVA}', "");
+    Expect(0, 72457, '\p{^__DEVA}', "");
+    Expect(0, 72457, '\P{__DEVA}', "");
+    Expect(1, 72457, '\P{^__DEVA}', "");
+    Expect(0, 72458, '\p{__DEVA}', "");
+    Expect(1, 72458, '\p{^__DEVA}', "");
+    Expect(1, 72458, '\P{__DEVA}', "");
+    Expect(0, 72458, '\P{^__DEVA}', "");
+    Error('\p{_	Is_Deva:=}');
+    Error('\P{_	Is_Deva:=}');
+    Expect(1, 72457, '\p{isdeva}', "");
+    Expect(0, 72457, '\p{^isdeva}', "");
+    Expect(0, 72457, '\P{isdeva}', "");
+    Expect(1, 72457, '\P{^isdeva}', "");
+    Expect(0, 72458, '\p{isdeva}', "");
+    Expect(1, 72458, '\p{^isdeva}', "");
+    Expect(1, 72458, '\P{isdeva}', "");
+    Expect(0, 72458, '\P{^isdeva}', "");
+    Expect(1, 72457, '\p{	IS_deva}', "");
+    Expect(0, 72457, '\p{^	IS_deva}', "");
+    Expect(0, 72457, '\P{	IS_deva}', "");
+    Expect(1, 72457, '\P{^	IS_deva}', "");
+    Expect(0, 72458, '\p{	IS_deva}', "");
+    Expect(1, 72458, '\p{^	IS_deva}', "");
+    Expect(1, 72458, '\P{	IS_deva}', "");
+    Expect(0, 72458, '\P{^	IS_deva}', "");
+    Error('\p{:=Devanagari_extended}');
+    Error('\P{:=Devanagari_extended}');
     Expect(1, 43263, '\p{devanagariextended}', "");
     Expect(0, 43263, '\p{^devanagariextended}', "");
     Expect(0, 43263, '\P{devanagariextended}', "");
@@ -95723,16 +96637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43264, '\p{^devanagariextended}', "");
     Expect(1, 43264, '\P{devanagariextended}', "");
     Expect(0, 43264, '\P{^devanagariextended}', "");
-    Expect(1, 43263, '\p{__Devanagari_extended}', "");
-    Expect(0, 43263, '\p{^__Devanagari_extended}', "");
-    Expect(0, 43263, '\P{__Devanagari_extended}', "");
-    Expect(1, 43263, '\P{^__Devanagari_extended}', "");
-    Expect(0, 43264, '\p{__Devanagari_extended}', "");
-    Expect(1, 43264, '\p{^__Devanagari_extended}', "");
-    Expect(1, 43264, '\P{__Devanagari_extended}', "");
-    Expect(0, 43264, '\P{^__Devanagari_extended}', "");
-    Error('\p{:=--IS_Devanagari_Extended}');
-    Error('\P{:=--IS_Devanagari_Extended}');
+    Expect(1, 43263, '\p{_ Devanagari_extended}', "");
+    Expect(0, 43263, '\p{^_ Devanagari_extended}', "");
+    Expect(0, 43263, '\P{_ Devanagari_extended}', "");
+    Expect(1, 43263, '\P{^_ Devanagari_extended}', "");
+    Expect(0, 43264, '\p{_ Devanagari_extended}', "");
+    Expect(1, 43264, '\p{^_ Devanagari_extended}', "");
+    Expect(1, 43264, '\P{_ Devanagari_extended}', "");
+    Expect(0, 43264, '\P{^_ Devanagari_extended}', "");
+    Error('\p{/a/--Is_devanagari_EXTENDED}');
+    Error('\P{/a/--Is_devanagari_EXTENDED}');
     Expect(1, 43263, '\p{isdevanagariextended}', "");
     Expect(0, 43263, '\p{^isdevanagariextended}', "");
     Expect(0, 43263, '\P{isdevanagariextended}', "");
@@ -95741,16 +96655,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43264, '\p{^isdevanagariextended}', "");
     Expect(1, 43264, '\P{isdevanagariextended}', "");
     Expect(0, 43264, '\P{^isdevanagariextended}', "");
-    Expect(1, 43263, '\p{  Is_devanagari_Extended}', "");
-    Expect(0, 43263, '\p{^  Is_devanagari_Extended}', "");
-    Expect(0, 43263, '\P{  Is_devanagari_Extended}', "");
-    Expect(1, 43263, '\P{^  Is_devanagari_Extended}', "");
-    Expect(0, 43264, '\p{  Is_devanagari_Extended}', "");
-    Expect(1, 43264, '\p{^  Is_devanagari_Extended}', "");
-    Expect(1, 43264, '\P{  Is_devanagari_Extended}', "");
-    Expect(0, 43264, '\P{^  Is_devanagari_Extended}', "");
-    Error('\p{:=_IN_DEVANAGARI_Extended}');
-    Error('\P{:=_IN_DEVANAGARI_Extended}');
+    Expect(1, 43263, '\p{-Is_DEVANAGARI_Extended}', "");
+    Expect(0, 43263, '\p{^-Is_DEVANAGARI_Extended}', "");
+    Expect(0, 43263, '\P{-Is_DEVANAGARI_Extended}', "");
+    Expect(1, 43263, '\P{^-Is_DEVANAGARI_Extended}', "");
+    Expect(0, 43264, '\p{-Is_DEVANAGARI_Extended}', "");
+    Expect(1, 43264, '\p{^-Is_DEVANAGARI_Extended}', "");
+    Expect(1, 43264, '\P{-Is_DEVANAGARI_Extended}', "");
+    Expect(0, 43264, '\P{^-Is_DEVANAGARI_Extended}', "");
+    Error('\p{/a/-in_Devanagari_extended}');
+    Error('\P{/a/-in_Devanagari_extended}');
     Expect(1, 43263, '\p{indevanagariextended}', "");
     Expect(0, 43263, '\p{^indevanagariextended}', "");
     Expect(0, 43263, '\P{indevanagariextended}', "");
@@ -95759,16 +96673,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43264, '\p{^indevanagariextended}', "");
     Expect(1, 43264, '\P{indevanagariextended}', "");
     Expect(0, 43264, '\P{^indevanagariextended}', "");
-    Expect(1, 43263, '\p{ in_Devanagari_Extended}', "");
-    Expect(0, 43263, '\p{^ in_Devanagari_Extended}', "");
-    Expect(0, 43263, '\P{ in_Devanagari_Extended}', "");
-    Expect(1, 43263, '\P{^ in_Devanagari_Extended}', "");
-    Expect(0, 43264, '\p{ in_Devanagari_Extended}', "");
-    Expect(1, 43264, '\p{^ in_Devanagari_Extended}', "");
-    Expect(1, 43264, '\P{ in_Devanagari_Extended}', "");
-    Expect(0, 43264, '\P{^ in_Devanagari_Extended}', "");
-    Error('\p{ _Devanagari_ext:=}');
-    Error('\P{ _Devanagari_ext:=}');
+    Expect(1, 43263, '\p{ -IN_DEVANAGARI_extended}', "");
+    Expect(0, 43263, '\p{^ -IN_DEVANAGARI_extended}', "");
+    Expect(0, 43263, '\P{ -IN_DEVANAGARI_extended}', "");
+    Expect(1, 43263, '\P{^ -IN_DEVANAGARI_extended}', "");
+    Expect(0, 43264, '\p{ -IN_DEVANAGARI_extended}', "");
+    Expect(1, 43264, '\p{^ -IN_DEVANAGARI_extended}', "");
+    Expect(1, 43264, '\P{ -IN_DEVANAGARI_extended}', "");
+    Expect(0, 43264, '\P{^ -IN_DEVANAGARI_extended}', "");
+    Error('\p{_:=Devanagari_Ext}');
+    Error('\P{_:=Devanagari_Ext}');
     Expect(1, 43263, '\p{devanagariext}', "");
     Expect(0, 43263, '\p{^devanagariext}', "");
     Expect(0, 43263, '\P{devanagariext}', "");
@@ -95777,16 +96691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43264, '\p{^devanagariext}', "");
     Expect(1, 43264, '\P{devanagariext}', "");
     Expect(0, 43264, '\P{^devanagariext}', "");
-    Expect(1, 43263, '\p{_Devanagari_EXT}', "");
-    Expect(0, 43263, '\p{^_Devanagari_EXT}', "");
-    Expect(0, 43263, '\P{_Devanagari_EXT}', "");
-    Expect(1, 43263, '\P{^_Devanagari_EXT}', "");
-    Expect(0, 43264, '\p{_Devanagari_EXT}', "");
-    Expect(1, 43264, '\p{^_Devanagari_EXT}', "");
-    Expect(1, 43264, '\P{_Devanagari_EXT}', "");
-    Expect(0, 43264, '\P{^_Devanagari_EXT}', "");
-    Error('\p{ _is_DEVANAGARI_Ext:=}');
-    Error('\P{ _is_DEVANAGARI_Ext:=}');
+    Expect(1, 43263, '\p{-DEVANAGARI_Ext}', "");
+    Expect(0, 43263, '\p{^-DEVANAGARI_Ext}', "");
+    Expect(0, 43263, '\P{-DEVANAGARI_Ext}', "");
+    Expect(1, 43263, '\P{^-DEVANAGARI_Ext}', "");
+    Expect(0, 43264, '\p{-DEVANAGARI_Ext}', "");
+    Expect(1, 43264, '\p{^-DEVANAGARI_Ext}', "");
+    Expect(1, 43264, '\P{-DEVANAGARI_Ext}', "");
+    Expect(0, 43264, '\P{^-DEVANAGARI_Ext}', "");
+    Error('\p{/a/ 	Is_Devanagari_ext}');
+    Error('\P{/a/ 	Is_Devanagari_ext}');
     Expect(1, 43263, '\p{isdevanagariext}', "");
     Expect(0, 43263, '\p{^isdevanagariext}', "");
     Expect(0, 43263, '\P{isdevanagariext}', "");
@@ -95795,16 +96709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43264, '\p{^isdevanagariext}', "");
     Expect(1, 43264, '\P{isdevanagariext}', "");
     Expect(0, 43264, '\P{^isdevanagariext}', "");
-    Expect(1, 43263, '\p{_ IS_DEVANAGARI_ext}', "");
-    Expect(0, 43263, '\p{^_ IS_DEVANAGARI_ext}', "");
-    Expect(0, 43263, '\P{_ IS_DEVANAGARI_ext}', "");
-    Expect(1, 43263, '\P{^_ IS_DEVANAGARI_ext}', "");
-    Expect(0, 43264, '\p{_ IS_DEVANAGARI_ext}', "");
-    Expect(1, 43264, '\p{^_ IS_DEVANAGARI_ext}', "");
-    Expect(1, 43264, '\P{_ IS_DEVANAGARI_ext}', "");
-    Expect(0, 43264, '\P{^_ IS_DEVANAGARI_ext}', "");
-    Error('\p{		IN_devanagari_Ext/a/}');
-    Error('\P{		IN_devanagari_Ext/a/}');
+    Expect(1, 43263, '\p{- Is_Devanagari_Ext}', "");
+    Expect(0, 43263, '\p{^- Is_Devanagari_Ext}', "");
+    Expect(0, 43263, '\P{- Is_Devanagari_Ext}', "");
+    Expect(1, 43263, '\P{^- Is_Devanagari_Ext}', "");
+    Expect(0, 43264, '\p{- Is_Devanagari_Ext}', "");
+    Expect(1, 43264, '\p{^- Is_Devanagari_Ext}', "");
+    Expect(1, 43264, '\P{- Is_Devanagari_Ext}', "");
+    Expect(0, 43264, '\P{^- Is_Devanagari_Ext}', "");
+    Error('\p{	/a/In_DEVANAGARI_EXT}');
+    Error('\P{	/a/In_DEVANAGARI_EXT}');
     Expect(1, 43263, '\p{indevanagariext}', "");
     Expect(0, 43263, '\p{^indevanagariext}', "");
     Expect(0, 43263, '\P{indevanagariext}', "");
@@ -95813,16 +96727,124 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43264, '\p{^indevanagariext}', "");
     Expect(1, 43264, '\P{indevanagariext}', "");
     Expect(0, 43264, '\P{^indevanagariext}', "");
-    Expect(1, 43263, '\p{--In_devanagari_ext}', "");
-    Expect(0, 43263, '\p{^--In_devanagari_ext}', "");
-    Expect(0, 43263, '\P{--In_devanagari_ext}', "");
-    Expect(1, 43263, '\P{^--In_devanagari_ext}', "");
-    Expect(0, 43264, '\p{--In_devanagari_ext}', "");
-    Expect(1, 43264, '\p{^--In_devanagari_ext}', "");
-    Expect(1, 43264, '\P{--In_devanagari_ext}', "");
-    Expect(0, 43264, '\P{^--In_devanagari_ext}', "");
-    Error('\p{ :=diacritic}');
-    Error('\P{ :=diacritic}');
+    Expect(1, 43263, '\p{		in_Devanagari_EXT}', "");
+    Expect(0, 43263, '\p{^		in_Devanagari_EXT}', "");
+    Expect(0, 43263, '\P{		in_Devanagari_EXT}', "");
+    Expect(1, 43263, '\P{^		in_Devanagari_EXT}', "");
+    Expect(0, 43264, '\p{		in_Devanagari_EXT}', "");
+    Expect(1, 43264, '\p{^		in_Devanagari_EXT}', "");
+    Expect(1, 43264, '\P{		in_Devanagari_EXT}', "");
+    Expect(0, 43264, '\P{^		in_Devanagari_EXT}', "");
+    Error('\p{		DEVANAGARI_EXTENDED_A:=}');
+    Error('\P{		DEVANAGARI_EXTENDED_A:=}');
+    Expect(1, 72543, '\p{devanagariextendeda}', "");
+    Expect(0, 72543, '\p{^devanagariextendeda}', "");
+    Expect(0, 72543, '\P{devanagariextendeda}', "");
+    Expect(1, 72543, '\P{^devanagariextendeda}', "");
+    Expect(0, 72544, '\p{devanagariextendeda}', "");
+    Expect(1, 72544, '\p{^devanagariextendeda}', "");
+    Expect(1, 72544, '\P{devanagariextendeda}', "");
+    Expect(0, 72544, '\P{^devanagariextendeda}', "");
+    Expect(1, 72543, '\p{ 	Devanagari_Extended_A}', "");
+    Expect(0, 72543, '\p{^ 	Devanagari_Extended_A}', "");
+    Expect(0, 72543, '\P{ 	Devanagari_Extended_A}', "");
+    Expect(1, 72543, '\P{^ 	Devanagari_Extended_A}', "");
+    Expect(0, 72544, '\p{ 	Devanagari_Extended_A}', "");
+    Expect(1, 72544, '\p{^ 	Devanagari_Extended_A}', "");
+    Expect(1, 72544, '\P{ 	Devanagari_Extended_A}', "");
+    Expect(0, 72544, '\P{^ 	Devanagari_Extended_A}', "");
+    Error('\p{:=is_devanagari_Extended_A}');
+    Error('\P{:=is_devanagari_Extended_A}');
+    Expect(1, 72543, '\p{isdevanagariextendeda}', "");
+    Expect(0, 72543, '\p{^isdevanagariextendeda}', "");
+    Expect(0, 72543, '\P{isdevanagariextendeda}', "");
+    Expect(1, 72543, '\P{^isdevanagariextendeda}', "");
+    Expect(0, 72544, '\p{isdevanagariextendeda}', "");
+    Expect(1, 72544, '\p{^isdevanagariextendeda}', "");
+    Expect(1, 72544, '\P{isdevanagariextendeda}', "");
+    Expect(0, 72544, '\P{^isdevanagariextendeda}', "");
+    Expect(1, 72543, '\p{	_IS_Devanagari_Extended_A}', "");
+    Expect(0, 72543, '\p{^	_IS_Devanagari_Extended_A}', "");
+    Expect(0, 72543, '\P{	_IS_Devanagari_Extended_A}', "");
+    Expect(1, 72543, '\P{^	_IS_Devanagari_Extended_A}', "");
+    Expect(0, 72544, '\p{	_IS_Devanagari_Extended_A}', "");
+    Expect(1, 72544, '\p{^	_IS_Devanagari_Extended_A}', "");
+    Expect(1, 72544, '\P{	_IS_Devanagari_Extended_A}', "");
+    Expect(0, 72544, '\P{^	_IS_Devanagari_Extended_A}', "");
+    Error('\p{/a/  In_Devanagari_extended_A}');
+    Error('\P{/a/  In_Devanagari_extended_A}');
+    Expect(1, 72543, '\p{indevanagariextendeda}', "");
+    Expect(0, 72543, '\p{^indevanagariextendeda}', "");
+    Expect(0, 72543, '\P{indevanagariextendeda}', "");
+    Expect(1, 72543, '\P{^indevanagariextendeda}', "");
+    Expect(0, 72544, '\p{indevanagariextendeda}', "");
+    Expect(1, 72544, '\p{^indevanagariextendeda}', "");
+    Expect(1, 72544, '\P{indevanagariextendeda}', "");
+    Expect(0, 72544, '\P{^indevanagariextendeda}', "");
+    Expect(1, 72543, '\p{in_devanagari_extended_A}', "");
+    Expect(0, 72543, '\p{^in_devanagari_extended_A}', "");
+    Expect(0, 72543, '\P{in_devanagari_extended_A}', "");
+    Expect(1, 72543, '\P{^in_devanagari_extended_A}', "");
+    Expect(0, 72544, '\p{in_devanagari_extended_A}', "");
+    Expect(1, 72544, '\p{^in_devanagari_extended_A}', "");
+    Expect(1, 72544, '\P{in_devanagari_extended_A}', "");
+    Expect(0, 72544, '\P{^in_devanagari_extended_A}', "");
+    Error('\p{/a/		devanagari_Ext_A}');
+    Error('\P{/a/		devanagari_Ext_A}');
+    Expect(1, 72543, '\p{devanagariexta}', "");
+    Expect(0, 72543, '\p{^devanagariexta}', "");
+    Expect(0, 72543, '\P{devanagariexta}', "");
+    Expect(1, 72543, '\P{^devanagariexta}', "");
+    Expect(0, 72544, '\p{devanagariexta}', "");
+    Expect(1, 72544, '\p{^devanagariexta}', "");
+    Expect(1, 72544, '\P{devanagariexta}', "");
+    Expect(0, 72544, '\P{^devanagariexta}', "");
+    Expect(1, 72543, '\p{_devanagari_ext_A}', "");
+    Expect(0, 72543, '\p{^_devanagari_ext_A}', "");
+    Expect(0, 72543, '\P{_devanagari_ext_A}', "");
+    Expect(1, 72543, '\P{^_devanagari_ext_A}', "");
+    Expect(0, 72544, '\p{_devanagari_ext_A}', "");
+    Expect(1, 72544, '\p{^_devanagari_ext_A}', "");
+    Expect(1, 72544, '\P{_devanagari_ext_A}', "");
+    Expect(0, 72544, '\P{^_devanagari_ext_A}', "");
+    Error('\p{/a/	is_DEVANAGARI_Ext_A}');
+    Error('\P{/a/	is_DEVANAGARI_Ext_A}');
+    Expect(1, 72543, '\p{isdevanagariexta}', "");
+    Expect(0, 72543, '\p{^isdevanagariexta}', "");
+    Expect(0, 72543, '\P{isdevanagariexta}', "");
+    Expect(1, 72543, '\P{^isdevanagariexta}', "");
+    Expect(0, 72544, '\p{isdevanagariexta}', "");
+    Expect(1, 72544, '\p{^isdevanagariexta}', "");
+    Expect(1, 72544, '\P{isdevanagariexta}', "");
+    Expect(0, 72544, '\P{^isdevanagariexta}', "");
+    Expect(1, 72543, '\p{	is_Devanagari_EXT_A}', "");
+    Expect(0, 72543, '\p{^	is_Devanagari_EXT_A}', "");
+    Expect(0, 72543, '\P{	is_Devanagari_EXT_A}', "");
+    Expect(1, 72543, '\P{^	is_Devanagari_EXT_A}', "");
+    Expect(0, 72544, '\p{	is_Devanagari_EXT_A}', "");
+    Expect(1, 72544, '\p{^	is_Devanagari_EXT_A}', "");
+    Expect(1, 72544, '\P{	is_Devanagari_EXT_A}', "");
+    Expect(0, 72544, '\P{^	is_Devanagari_EXT_A}', "");
+    Error('\p{	-in_Devanagari_Ext_A/a/}');
+    Error('\P{	-in_Devanagari_Ext_A/a/}');
+    Expect(1, 72543, '\p{indevanagariexta}', "");
+    Expect(0, 72543, '\p{^indevanagariexta}', "");
+    Expect(0, 72543, '\P{indevanagariexta}', "");
+    Expect(1, 72543, '\P{^indevanagariexta}', "");
+    Expect(0, 72544, '\p{indevanagariexta}', "");
+    Expect(1, 72544, '\p{^indevanagariexta}', "");
+    Expect(1, 72544, '\P{indevanagariexta}', "");
+    Expect(0, 72544, '\P{^indevanagariexta}', "");
+    Expect(1, 72543, '\p{in_DEVANAGARI_Ext_a}', "");
+    Expect(0, 72543, '\p{^in_DEVANAGARI_Ext_a}', "");
+    Expect(0, 72543, '\P{in_DEVANAGARI_Ext_a}', "");
+    Expect(1, 72543, '\P{^in_DEVANAGARI_Ext_a}', "");
+    Expect(0, 72544, '\p{in_DEVANAGARI_Ext_a}', "");
+    Expect(1, 72544, '\p{^in_DEVANAGARI_Ext_a}', "");
+    Expect(1, 72544, '\P{in_DEVANAGARI_Ext_a}', "");
+    Expect(0, 72544, '\P{^in_DEVANAGARI_Ext_a}', "");
+    Error('\p{:=_	diacritic}');
+    Error('\P{:=_	diacritic}');
     Expect(1, 125258, '\p{diacritic}', "");
     Expect(0, 125258, '\p{^diacritic}', "");
     Expect(0, 125258, '\P{diacritic}', "");
@@ -95831,16 +96853,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125259, '\p{^diacritic}', "");
     Expect(1, 125259, '\P{diacritic}', "");
     Expect(0, 125259, '\P{^diacritic}', "");
-    Expect(1, 125258, '\p{-	Diacritic}', "");
-    Expect(0, 125258, '\p{^-	Diacritic}', "");
-    Expect(0, 125258, '\P{-	Diacritic}', "");
-    Expect(1, 125258, '\P{^-	Diacritic}', "");
-    Expect(0, 125259, '\p{-	Diacritic}', "");
-    Expect(1, 125259, '\p{^-	Diacritic}', "");
-    Expect(1, 125259, '\P{-	Diacritic}', "");
-    Expect(0, 125259, '\P{^-	Diacritic}', "");
-    Error('\p{ :=Is_Diacritic}');
-    Error('\P{ :=Is_Diacritic}');
+    Expect(1, 125258, '\p{- DIACRITIC}', "");
+    Expect(0, 125258, '\p{^- DIACRITIC}', "");
+    Expect(0, 125258, '\P{- DIACRITIC}', "");
+    Expect(1, 125258, '\P{^- DIACRITIC}', "");
+    Expect(0, 125259, '\p{- DIACRITIC}', "");
+    Expect(1, 125259, '\p{^- DIACRITIC}', "");
+    Expect(1, 125259, '\P{- DIACRITIC}', "");
+    Expect(0, 125259, '\P{^- DIACRITIC}', "");
+    Error('\p{ /a/Is_diacritic}');
+    Error('\P{ /a/Is_diacritic}');
     Expect(1, 125258, '\p{isdiacritic}', "");
     Expect(0, 125258, '\p{^isdiacritic}', "");
     Expect(0, 125258, '\P{isdiacritic}', "");
@@ -95849,16 +96871,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125259, '\p{^isdiacritic}', "");
     Expect(1, 125259, '\P{isdiacritic}', "");
     Expect(0, 125259, '\P{^isdiacritic}', "");
-    Expect(1, 125258, '\p{__IS_DIACRITIC}', "");
-    Expect(0, 125258, '\p{^__IS_DIACRITIC}', "");
-    Expect(0, 125258, '\P{__IS_DIACRITIC}', "");
-    Expect(1, 125258, '\P{^__IS_DIACRITIC}', "");
-    Expect(0, 125259, '\p{__IS_DIACRITIC}', "");
-    Expect(1, 125259, '\p{^__IS_DIACRITIC}', "");
-    Expect(1, 125259, '\P{__IS_DIACRITIC}', "");
-    Expect(0, 125259, '\P{^__IS_DIACRITIC}', "");
-    Error('\p{/a/ -Dia}');
-    Error('\P{/a/ -Dia}');
+    Expect(1, 125258, '\p{IS_DIACRITIC}', "");
+    Expect(0, 125258, '\p{^IS_DIACRITIC}', "");
+    Expect(0, 125258, '\P{IS_DIACRITIC}', "");
+    Expect(1, 125258, '\P{^IS_DIACRITIC}', "");
+    Expect(0, 125259, '\p{IS_DIACRITIC}', "");
+    Expect(1, 125259, '\p{^IS_DIACRITIC}', "");
+    Expect(1, 125259, '\P{IS_DIACRITIC}', "");
+    Expect(0, 125259, '\P{^IS_DIACRITIC}', "");
+    Error('\p{ -DIA:=}');
+    Error('\P{ -DIA:=}');
     Expect(1, 125258, '\p{dia}', "");
     Expect(0, 125258, '\p{^dia}', "");
     Expect(0, 125258, '\P{dia}', "");
@@ -95867,16 +96889,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125259, '\p{^dia}', "");
     Expect(1, 125259, '\P{dia}', "");
     Expect(0, 125259, '\P{^dia}', "");
-    Expect(1, 125258, '\p{		dia}', "");
-    Expect(0, 125258, '\p{^		dia}', "");
-    Expect(0, 125258, '\P{		dia}', "");
-    Expect(1, 125258, '\P{^		dia}', "");
-    Expect(0, 125259, '\p{		dia}', "");
-    Expect(1, 125259, '\p{^		dia}', "");
-    Expect(1, 125259, '\P{		dia}', "");
-    Expect(0, 125259, '\P{^		dia}', "");
-    Error('\p{  is_Dia:=}');
-    Error('\P{  is_Dia:=}');
+    Expect(1, 125258, '\p{- dia}', "");
+    Expect(0, 125258, '\p{^- dia}', "");
+    Expect(0, 125258, '\P{- dia}', "");
+    Expect(1, 125258, '\P{^- dia}', "");
+    Expect(0, 125259, '\p{- dia}', "");
+    Expect(1, 125259, '\p{^- dia}', "");
+    Expect(1, 125259, '\P{- dia}', "");
+    Expect(0, 125259, '\P{^- dia}', "");
+    Error('\p{_/a/Is_dia}');
+    Error('\P{_/a/Is_dia}');
     Expect(1, 125258, '\p{isdia}', "");
     Expect(0, 125258, '\p{^isdia}', "");
     Expect(0, 125258, '\P{isdia}', "");
@@ -95885,16 +96907,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125259, '\p{^isdia}', "");
     Expect(1, 125259, '\P{isdia}', "");
     Expect(0, 125259, '\P{^isdia}', "");
-    Expect(1, 125258, '\p{ -Is_dia}', "");
-    Expect(0, 125258, '\p{^ -Is_dia}', "");
-    Expect(0, 125258, '\P{ -Is_dia}', "");
-    Expect(1, 125258, '\P{^ -Is_dia}', "");
-    Expect(0, 125259, '\p{ -Is_dia}', "");
-    Expect(1, 125259, '\p{^ -Is_dia}', "");
-    Expect(1, 125259, '\P{ -Is_dia}', "");
-    Expect(0, 125259, '\P{^ -Is_dia}', "");
-    Error('\p{  XPosixDigit:=}');
-    Error('\P{  XPosixDigit:=}');
+    Expect(1, 125258, '\p{  Is_DIA}', "");
+    Expect(0, 125258, '\p{^  Is_DIA}', "");
+    Expect(0, 125258, '\P{  Is_DIA}', "");
+    Expect(1, 125258, '\P{^  Is_DIA}', "");
+    Expect(0, 125259, '\p{  Is_DIA}', "");
+    Expect(1, 125259, '\p{^  Is_DIA}', "");
+    Expect(1, 125259, '\P{  Is_DIA}', "");
+    Expect(0, 125259, '\P{^  Is_DIA}', "");
+    Error('\p{-/a/XPosixDigit}');
+    Error('\P{-/a/XPosixDigit}');
     Expect(1, 130041, '\p{xposixdigit}', "");
     Expect(0, 130041, '\p{^xposixdigit}', "");
     Expect(0, 130041, '\P{xposixdigit}', "");
@@ -95903,16 +96925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^xposixdigit}', "");
     Expect(1, 130042, '\P{xposixdigit}', "");
     Expect(0, 130042, '\P{^xposixdigit}', "");
-    Expect(1, 130041, '\p{XPosixDigit}', "");
-    Expect(0, 130041, '\p{^XPosixDigit}', "");
-    Expect(0, 130041, '\P{XPosixDigit}', "");
-    Expect(1, 130041, '\P{^XPosixDigit}', "");
-    Expect(0, 130042, '\p{XPosixDigit}', "");
-    Expect(1, 130042, '\p{^XPosixDigit}', "");
-    Expect(1, 130042, '\P{XPosixDigit}', "");
-    Expect(0, 130042, '\P{^XPosixDigit}', "");
-    Error('\p{_-Digit:=}');
-    Error('\P{_-Digit:=}');
+    Expect(1, 130041, '\p{__XPosixDigit}', "");
+    Expect(0, 130041, '\p{^__XPosixDigit}', "");
+    Expect(0, 130041, '\P{__XPosixDigit}', "");
+    Expect(1, 130041, '\P{^__XPosixDigit}', "");
+    Expect(0, 130042, '\p{__XPosixDigit}', "");
+    Expect(1, 130042, '\p{^__XPosixDigit}', "");
+    Expect(1, 130042, '\P{__XPosixDigit}', "");
+    Expect(0, 130042, '\P{^__XPosixDigit}', "");
+    Error('\p{  digit:=}');
+    Error('\P{  digit:=}');
     Expect(1, 130041, '\p{digit}', "");
     Expect(0, 130041, '\p{^digit}', "");
     Expect(0, 130041, '\P{digit}', "");
@@ -95921,16 +96943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^digit}', "");
     Expect(1, 130042, '\P{digit}', "");
     Expect(0, 130042, '\P{^digit}', "");
-    Expect(1, 130041, '\p{- digit}', "");
-    Expect(0, 130041, '\p{^- digit}', "");
-    Expect(0, 130041, '\P{- digit}', "");
-    Expect(1, 130041, '\P{^- digit}', "");
-    Expect(0, 130042, '\p{- digit}', "");
-    Expect(1, 130042, '\p{^- digit}', "");
-    Expect(1, 130042, '\P{- digit}', "");
-    Expect(0, 130042, '\P{^- digit}', "");
-    Error('\p{- IS_XPosixDigit:=}');
-    Error('\P{- IS_XPosixDigit:=}');
+    Expect(1, 130041, '\p{--Digit}', "");
+    Expect(0, 130041, '\p{^--Digit}', "");
+    Expect(0, 130041, '\P{--Digit}', "");
+    Expect(1, 130041, '\P{^--Digit}', "");
+    Expect(0, 130042, '\p{--Digit}', "");
+    Expect(1, 130042, '\p{^--Digit}', "");
+    Expect(1, 130042, '\P{--Digit}', "");
+    Expect(0, 130042, '\P{^--Digit}', "");
+    Error('\p{ Is_XPosixDigit/a/}');
+    Error('\P{ Is_XPosixDigit/a/}');
     Expect(1, 130041, '\p{isxposixdigit}', "");
     Expect(0, 130041, '\p{^isxposixdigit}', "");
     Expect(0, 130041, '\P{isxposixdigit}', "");
@@ -95939,16 +96961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^isxposixdigit}', "");
     Expect(1, 130042, '\P{isxposixdigit}', "");
     Expect(0, 130042, '\P{^isxposixdigit}', "");
-    Expect(1, 130041, '\p{ _Is_xposixdigit}', "");
-    Expect(0, 130041, '\p{^ _Is_xposixdigit}', "");
-    Expect(0, 130041, '\P{ _Is_xposixdigit}', "");
-    Expect(1, 130041, '\P{^ _Is_xposixdigit}', "");
-    Expect(0, 130042, '\p{ _Is_xposixdigit}', "");
-    Expect(1, 130042, '\p{^ _Is_xposixdigit}', "");
-    Expect(1, 130042, '\P{ _Is_xposixdigit}', "");
-    Expect(0, 130042, '\P{^ _Is_xposixdigit}', "");
-    Error('\p{:=_IS_digit}');
-    Error('\P{:=_IS_digit}');
+    Expect(1, 130041, '\p{__is_XPOSIXDIGIT}', "");
+    Expect(0, 130041, '\p{^__is_XPOSIXDIGIT}', "");
+    Expect(0, 130041, '\P{__is_XPOSIXDIGIT}', "");
+    Expect(1, 130041, '\P{^__is_XPOSIXDIGIT}', "");
+    Expect(0, 130042, '\p{__is_XPOSIXDIGIT}', "");
+    Expect(1, 130042, '\p{^__is_XPOSIXDIGIT}', "");
+    Expect(1, 130042, '\P{__is_XPOSIXDIGIT}', "");
+    Expect(0, 130042, '\P{^__is_XPOSIXDIGIT}', "");
+    Error('\p{/a/IS_DIGIT}');
+    Error('\P{/a/IS_DIGIT}');
     Expect(1, 130041, '\p{isdigit}', "");
     Expect(0, 130041, '\p{^isdigit}', "");
     Expect(0, 130041, '\P{isdigit}', "");
@@ -95957,16 +96979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^isdigit}', "");
     Expect(1, 130042, '\P{isdigit}', "");
     Expect(0, 130042, '\P{^isdigit}', "");
-    Expect(1, 130041, '\p{ 	IS_Digit}', "");
-    Expect(0, 130041, '\p{^ 	IS_Digit}', "");
-    Expect(0, 130041, '\P{ 	IS_Digit}', "");
-    Expect(1, 130041, '\P{^ 	IS_Digit}', "");
-    Expect(0, 130042, '\p{ 	IS_Digit}', "");
-    Expect(1, 130042, '\p{^ 	IS_Digit}', "");
-    Expect(1, 130042, '\P{ 	IS_Digit}', "");
-    Expect(0, 130042, '\P{^ 	IS_Digit}', "");
-    Error('\p{/a/	 DECIMAL_Number}');
-    Error('\P{/a/	 DECIMAL_Number}');
+    Expect(1, 130041, '\p{_-is_Digit}', "");
+    Expect(0, 130041, '\p{^_-is_Digit}', "");
+    Expect(0, 130041, '\P{_-is_Digit}', "");
+    Expect(1, 130041, '\P{^_-is_Digit}', "");
+    Expect(0, 130042, '\p{_-is_Digit}', "");
+    Expect(1, 130042, '\p{^_-is_Digit}', "");
+    Expect(1, 130042, '\P{_-is_Digit}', "");
+    Expect(0, 130042, '\P{^_-is_Digit}', "");
+    Error('\p{ -decimal_NUMBER:=}');
+    Error('\P{ -decimal_NUMBER:=}');
     Expect(1, 130041, '\p{decimalnumber}', "");
     Expect(0, 130041, '\p{^decimalnumber}', "");
     Expect(0, 130041, '\P{decimalnumber}', "");
@@ -95975,16 +96997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^decimalnumber}', "");
     Expect(1, 130042, '\P{decimalnumber}', "");
     Expect(0, 130042, '\P{^decimalnumber}', "");
-    Expect(1, 130041, '\p{	 DECIMAL_Number}', "");
-    Expect(0, 130041, '\p{^	 DECIMAL_Number}', "");
-    Expect(0, 130041, '\P{	 DECIMAL_Number}', "");
-    Expect(1, 130041, '\P{^	 DECIMAL_Number}', "");
-    Expect(0, 130042, '\p{	 DECIMAL_Number}', "");
-    Expect(1, 130042, '\p{^	 DECIMAL_Number}', "");
-    Expect(1, 130042, '\P{	 DECIMAL_Number}', "");
-    Expect(0, 130042, '\P{^	 DECIMAL_Number}', "");
-    Error('\p{	-IS_Decimal_number/a/}');
-    Error('\P{	-IS_Decimal_number/a/}');
+    Expect(1, 130041, '\p{-	DECIMAL_Number}', "");
+    Expect(0, 130041, '\p{^-	DECIMAL_Number}', "");
+    Expect(0, 130041, '\P{-	DECIMAL_Number}', "");
+    Expect(1, 130041, '\P{^-	DECIMAL_Number}', "");
+    Expect(0, 130042, '\p{-	DECIMAL_Number}', "");
+    Expect(1, 130042, '\p{^-	DECIMAL_Number}', "");
+    Expect(1, 130042, '\P{-	DECIMAL_Number}', "");
+    Expect(0, 130042, '\P{^-	DECIMAL_Number}', "");
+    Error('\p{--IS_decimal_NUMBER:=}');
+    Error('\P{--IS_decimal_NUMBER:=}');
     Expect(1, 130041, '\p{isdecimalnumber}', "");
     Expect(0, 130041, '\p{^isdecimalnumber}', "");
     Expect(0, 130041, '\P{isdecimalnumber}', "");
@@ -95993,16 +97015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^isdecimalnumber}', "");
     Expect(1, 130042, '\P{isdecimalnumber}', "");
     Expect(0, 130042, '\P{^isdecimalnumber}', "");
-    Expect(1, 130041, '\p{	_Is_Decimal_Number}', "");
-    Expect(0, 130041, '\p{^	_Is_Decimal_Number}', "");
-    Expect(0, 130041, '\P{	_Is_Decimal_Number}', "");
-    Expect(1, 130041, '\P{^	_Is_Decimal_Number}', "");
-    Expect(0, 130042, '\p{	_Is_Decimal_Number}', "");
-    Expect(1, 130042, '\p{^	_Is_Decimal_Number}', "");
-    Expect(1, 130042, '\P{	_Is_Decimal_Number}', "");
-    Expect(0, 130042, '\P{^	_Is_Decimal_Number}', "");
-    Error('\p{/a/	-nd}');
-    Error('\P{/a/	-nd}');
+    Expect(1, 130041, '\p{_-Is_Decimal_NUMBER}', "");
+    Expect(0, 130041, '\p{^_-Is_Decimal_NUMBER}', "");
+    Expect(0, 130041, '\P{_-Is_Decimal_NUMBER}', "");
+    Expect(1, 130041, '\P{^_-Is_Decimal_NUMBER}', "");
+    Expect(0, 130042, '\p{_-Is_Decimal_NUMBER}', "");
+    Expect(1, 130042, '\p{^_-Is_Decimal_NUMBER}', "");
+    Expect(1, 130042, '\P{_-Is_Decimal_NUMBER}', "");
+    Expect(0, 130042, '\P{^_-Is_Decimal_NUMBER}', "");
+    Error('\p{ _Nd:=}');
+    Error('\P{ _Nd:=}');
     Expect(1, 130041, '\p{nd}', "");
     Expect(0, 130041, '\p{^nd}', "");
     Expect(0, 130041, '\P{nd}', "");
@@ -96011,16 +97033,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^nd}', "");
     Expect(1, 130042, '\P{nd}', "");
     Expect(0, 130042, '\P{^nd}', "");
-    Expect(1, 130041, '\p{_ nd}', "");
-    Expect(0, 130041, '\p{^_ nd}', "");
-    Expect(0, 130041, '\P{_ nd}', "");
-    Expect(1, 130041, '\P{^_ nd}', "");
-    Expect(0, 130042, '\p{_ nd}', "");
-    Expect(1, 130042, '\p{^_ nd}', "");
-    Expect(1, 130042, '\P{_ nd}', "");
-    Expect(0, 130042, '\P{^_ nd}', "");
-    Error('\p{:=_-Is_Nd}');
-    Error('\P{:=_-Is_Nd}');
+    Expect(1, 130041, '\p{	 ND}', "");
+    Expect(0, 130041, '\p{^	 ND}', "");
+    Expect(0, 130041, '\P{	 ND}', "");
+    Expect(1, 130041, '\P{^	 ND}', "");
+    Expect(0, 130042, '\p{	 ND}', "");
+    Expect(1, 130042, '\p{^	 ND}', "");
+    Expect(1, 130042, '\P{	 ND}', "");
+    Expect(0, 130042, '\P{^	 ND}', "");
+    Error('\p{__is_Nd:=}');
+    Error('\P{__is_Nd:=}');
     Expect(1, 130041, '\p{isnd}', "");
     Expect(0, 130041, '\p{^isnd}', "");
     Expect(0, 130041, '\P{isnd}', "");
@@ -96029,16 +97051,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^isnd}', "");
     Expect(1, 130042, '\P{isnd}', "");
     Expect(0, 130042, '\P{^isnd}', "");
-    Expect(1, 130041, '\p{-is_Nd}', "");
-    Expect(0, 130041, '\p{^-is_Nd}', "");
-    Expect(0, 130041, '\P{-is_Nd}', "");
-    Expect(1, 130041, '\P{^-is_Nd}', "");
-    Expect(0, 130042, '\p{-is_Nd}', "");
-    Expect(1, 130042, '\p{^-is_Nd}', "");
-    Expect(1, 130042, '\P{-is_Nd}', "");
-    Expect(0, 130042, '\P{^-is_Nd}', "");
-    Error('\p{	 DINGBATS/a/}');
-    Error('\P{	 DINGBATS/a/}');
+    Expect(1, 130041, '\p{--Is_Nd}', "");
+    Expect(0, 130041, '\p{^--Is_Nd}', "");
+    Expect(0, 130041, '\P{--Is_Nd}', "");
+    Expect(1, 130041, '\P{^--Is_Nd}', "");
+    Expect(0, 130042, '\p{--Is_Nd}', "");
+    Expect(1, 130042, '\p{^--Is_Nd}', "");
+    Expect(1, 130042, '\P{--Is_Nd}', "");
+    Expect(0, 130042, '\P{^--Is_Nd}', "");
+    Error('\p{-	dingbats/a/}');
+    Error('\P{-	dingbats/a/}');
     Expect(1, 10175, '\p{dingbats}', "");
     Expect(0, 10175, '\p{^dingbats}', "");
     Expect(0, 10175, '\P{dingbats}', "");
@@ -96047,16 +97069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10176, '\p{^dingbats}', "");
     Expect(1, 10176, '\P{dingbats}', "");
     Expect(0, 10176, '\P{^dingbats}', "");
-    Expect(1, 10175, '\p{_DINGBATS}', "");
-    Expect(0, 10175, '\p{^_DINGBATS}', "");
-    Expect(0, 10175, '\P{_DINGBATS}', "");
-    Expect(1, 10175, '\P{^_DINGBATS}', "");
-    Expect(0, 10176, '\p{_DINGBATS}', "");
-    Expect(1, 10176, '\p{^_DINGBATS}', "");
-    Expect(1, 10176, '\P{_DINGBATS}', "");
-    Expect(0, 10176, '\P{^_DINGBATS}', "");
-    Error('\p{/a/-IS_dingbats}');
-    Error('\P{/a/-IS_dingbats}');
+    Expect(1, 10175, '\p{ -Dingbats}', "");
+    Expect(0, 10175, '\p{^ -Dingbats}', "");
+    Expect(0, 10175, '\P{ -Dingbats}', "");
+    Expect(1, 10175, '\P{^ -Dingbats}', "");
+    Expect(0, 10176, '\p{ -Dingbats}', "");
+    Expect(1, 10176, '\p{^ -Dingbats}', "");
+    Expect(1, 10176, '\P{ -Dingbats}', "");
+    Expect(0, 10176, '\P{^ -Dingbats}', "");
+    Error('\p{:= Is_DINGBATS}');
+    Error('\P{:= Is_DINGBATS}');
     Expect(1, 10175, '\p{isdingbats}', "");
     Expect(0, 10175, '\p{^isdingbats}', "");
     Expect(0, 10175, '\P{isdingbats}', "");
@@ -96065,16 +97087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10176, '\p{^isdingbats}', "");
     Expect(1, 10176, '\P{isdingbats}', "");
     Expect(0, 10176, '\P{^isdingbats}', "");
-    Expect(1, 10175, '\p{-_is_DINGBATS}', "");
-    Expect(0, 10175, '\p{^-_is_DINGBATS}', "");
-    Expect(0, 10175, '\P{-_is_DINGBATS}', "");
-    Expect(1, 10175, '\P{^-_is_DINGBATS}', "");
-    Expect(0, 10176, '\p{-_is_DINGBATS}', "");
-    Expect(1, 10176, '\p{^-_is_DINGBATS}', "");
-    Expect(1, 10176, '\P{-_is_DINGBATS}', "");
-    Expect(0, 10176, '\P{^-_is_DINGBATS}', "");
-    Error('\p{_	in_Dingbats/a/}');
-    Error('\P{_	in_Dingbats/a/}');
+    Expect(1, 10175, '\p{-_Is_Dingbats}', "");
+    Expect(0, 10175, '\p{^-_Is_Dingbats}', "");
+    Expect(0, 10175, '\P{-_Is_Dingbats}', "");
+    Expect(1, 10175, '\P{^-_Is_Dingbats}', "");
+    Expect(0, 10176, '\p{-_Is_Dingbats}', "");
+    Expect(1, 10176, '\p{^-_Is_Dingbats}', "");
+    Expect(1, 10176, '\P{-_Is_Dingbats}', "");
+    Expect(0, 10176, '\P{^-_Is_Dingbats}', "");
+    Error('\p{		In_DINGBATS:=}');
+    Error('\P{		In_DINGBATS:=}');
     Expect(1, 10175, '\p{indingbats}', "");
     Expect(0, 10175, '\p{^indingbats}', "");
     Expect(0, 10175, '\P{indingbats}', "");
@@ -96083,16 +97105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10176, '\p{^indingbats}', "");
     Expect(1, 10176, '\P{indingbats}', "");
     Expect(0, 10176, '\P{^indingbats}', "");
-    Expect(1, 10175, '\p{- in_Dingbats}', "");
-    Expect(0, 10175, '\p{^- in_Dingbats}', "");
-    Expect(0, 10175, '\P{- in_Dingbats}', "");
-    Expect(1, 10175, '\P{^- in_Dingbats}', "");
-    Expect(0, 10176, '\p{- in_Dingbats}', "");
-    Expect(1, 10176, '\p{^- in_Dingbats}', "");
-    Expect(1, 10176, '\P{- in_Dingbats}', "");
-    Expect(0, 10176, '\P{^- in_Dingbats}', "");
-    Error('\p{/a/_Dives_Akuru}');
-    Error('\P{/a/_Dives_Akuru}');
+    Expect(1, 10175, '\p{ In_Dingbats}', "");
+    Expect(0, 10175, '\p{^ In_Dingbats}', "");
+    Expect(0, 10175, '\P{ In_Dingbats}', "");
+    Expect(1, 10175, '\P{^ In_Dingbats}', "");
+    Expect(0, 10176, '\p{ In_Dingbats}', "");
+    Expect(1, 10176, '\p{^ In_Dingbats}', "");
+    Expect(1, 10176, '\P{ In_Dingbats}', "");
+    Expect(0, 10176, '\P{^ In_Dingbats}', "");
+    Error('\p{-	dives_akuru/a/}');
+    Error('\P{-	dives_akuru/a/}');
     Expect(1, 72025, '\p{divesakuru}', "");
     Expect(0, 72025, '\p{^divesakuru}', "");
     Expect(0, 72025, '\P{divesakuru}', "");
@@ -96101,16 +97123,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72026, '\p{^divesakuru}', "");
     Expect(1, 72026, '\P{divesakuru}', "");
     Expect(0, 72026, '\P{^divesakuru}', "");
-    Expect(1, 72025, '\p{ _Dives_Akuru}', "");
-    Expect(0, 72025, '\p{^ _Dives_Akuru}', "");
-    Expect(0, 72025, '\P{ _Dives_Akuru}', "");
-    Expect(1, 72025, '\P{^ _Dives_Akuru}', "");
-    Expect(0, 72026, '\p{ _Dives_Akuru}', "");
-    Expect(1, 72026, '\p{^ _Dives_Akuru}', "");
-    Expect(1, 72026, '\P{ _Dives_Akuru}', "");
-    Expect(0, 72026, '\P{^ _Dives_Akuru}', "");
-    Error('\p{	Is_Dives_Akuru/a/}');
-    Error('\P{	Is_Dives_Akuru/a/}');
+    Expect(1, 72025, '\p{	DIVES_Akuru}', "");
+    Expect(0, 72025, '\p{^	DIVES_Akuru}', "");
+    Expect(0, 72025, '\P{	DIVES_Akuru}', "");
+    Expect(1, 72025, '\P{^	DIVES_Akuru}', "");
+    Expect(0, 72026, '\p{	DIVES_Akuru}', "");
+    Expect(1, 72026, '\p{^	DIVES_Akuru}', "");
+    Expect(1, 72026, '\P{	DIVES_Akuru}', "");
+    Expect(0, 72026, '\P{^	DIVES_Akuru}', "");
+    Error('\p{-IS_dives_akuru/a/}');
+    Error('\P{-IS_dives_akuru/a/}');
     Expect(1, 72025, '\p{isdivesakuru}', "");
     Expect(0, 72025, '\p{^isdivesakuru}', "");
     Expect(0, 72025, '\P{isdivesakuru}', "");
@@ -96119,16 +97141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72026, '\p{^isdivesakuru}', "");
     Expect(1, 72026, '\P{isdivesakuru}', "");
     Expect(0, 72026, '\P{^isdivesakuru}', "");
-    Expect(1, 72025, '\p{-_Is_DIVES_Akuru}', "");
-    Expect(0, 72025, '\p{^-_Is_DIVES_Akuru}', "");
-    Expect(0, 72025, '\P{-_Is_DIVES_Akuru}', "");
-    Expect(1, 72025, '\P{^-_Is_DIVES_Akuru}', "");
-    Expect(0, 72026, '\p{-_Is_DIVES_Akuru}', "");
-    Expect(1, 72026, '\p{^-_Is_DIVES_Akuru}', "");
-    Expect(1, 72026, '\P{-_Is_DIVES_Akuru}', "");
-    Expect(0, 72026, '\P{^-_Is_DIVES_Akuru}', "");
-    Error('\p{-/a/DIAK}');
-    Error('\P{-/a/DIAK}');
+    Expect(1, 72025, '\p{__IS_Dives_Akuru}', "");
+    Expect(0, 72025, '\p{^__IS_Dives_Akuru}', "");
+    Expect(0, 72025, '\P{__IS_Dives_Akuru}', "");
+    Expect(1, 72025, '\P{^__IS_Dives_Akuru}', "");
+    Expect(0, 72026, '\p{__IS_Dives_Akuru}', "");
+    Expect(1, 72026, '\p{^__IS_Dives_Akuru}', "");
+    Expect(1, 72026, '\P{__IS_Dives_Akuru}', "");
+    Expect(0, 72026, '\P{^__IS_Dives_Akuru}', "");
+    Error('\p{:=DIAK}');
+    Error('\P{:=DIAK}');
     Expect(1, 72025, '\p{diak}', "");
     Expect(0, 72025, '\p{^diak}', "");
     Expect(0, 72025, '\P{diak}', "");
@@ -96137,16 +97159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72026, '\p{^diak}', "");
     Expect(1, 72026, '\P{diak}', "");
     Expect(0, 72026, '\P{^diak}', "");
-    Expect(1, 72025, '\p{-	DIAK}', "");
-    Expect(0, 72025, '\p{^-	DIAK}', "");
-    Expect(0, 72025, '\P{-	DIAK}', "");
-    Expect(1, 72025, '\P{^-	DIAK}', "");
-    Expect(0, 72026, '\p{-	DIAK}', "");
-    Expect(1, 72026, '\p{^-	DIAK}', "");
-    Expect(1, 72026, '\P{-	DIAK}', "");
-    Expect(0, 72026, '\P{^-	DIAK}', "");
-    Error('\p{/a/-_Is_Diak}');
-    Error('\P{/a/-_Is_Diak}');
+    Expect(1, 72025, '\p{-	Diak}', "");
+    Expect(0, 72025, '\p{^-	Diak}', "");
+    Expect(0, 72025, '\P{-	Diak}', "");
+    Expect(1, 72025, '\P{^-	Diak}', "");
+    Expect(0, 72026, '\p{-	Diak}', "");
+    Expect(1, 72026, '\p{^-	Diak}', "");
+    Expect(1, 72026, '\P{-	Diak}', "");
+    Expect(0, 72026, '\P{^-	Diak}', "");
+    Error('\p{	:=IS_Diak}');
+    Error('\P{	:=IS_Diak}');
     Expect(1, 72025, '\p{isdiak}', "");
     Expect(0, 72025, '\p{^isdiak}', "");
     Expect(0, 72025, '\P{isdiak}', "");
@@ -96155,16 +97177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72026, '\p{^isdiak}', "");
     Expect(1, 72026, '\P{isdiak}', "");
     Expect(0, 72026, '\P{^isdiak}', "");
-    Expect(1, 72025, '\p{_ Is_Diak}', "");
-    Expect(0, 72025, '\p{^_ Is_Diak}', "");
-    Expect(0, 72025, '\P{_ Is_Diak}', "");
-    Expect(1, 72025, '\P{^_ Is_Diak}', "");
-    Expect(0, 72026, '\p{_ Is_Diak}', "");
-    Expect(1, 72026, '\p{^_ Is_Diak}', "");
-    Expect(1, 72026, '\P{_ Is_Diak}', "");
-    Expect(0, 72026, '\P{^_ Is_Diak}', "");
-    Error('\p{	/a/dogra}');
-    Error('\P{	/a/dogra}');
+    Expect(1, 72025, '\p{_ Is_diak}', "");
+    Expect(0, 72025, '\p{^_ Is_diak}', "");
+    Expect(0, 72025, '\P{_ Is_diak}', "");
+    Expect(1, 72025, '\P{^_ Is_diak}', "");
+    Expect(0, 72026, '\p{_ Is_diak}', "");
+    Expect(1, 72026, '\p{^_ Is_diak}', "");
+    Expect(1, 72026, '\P{_ Is_diak}', "");
+    Expect(0, 72026, '\P{^_ Is_diak}', "");
+    Error('\p{/a/Dogra}');
+    Error('\P{/a/Dogra}');
     Expect(1, 71739, '\p{dogra}', "");
     Expect(0, 71739, '\p{^dogra}', "");
     Expect(0, 71739, '\P{dogra}', "");
@@ -96173,16 +97195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71740, '\p{^dogra}', "");
     Expect(1, 71740, '\P{dogra}', "");
     Expect(0, 71740, '\P{^dogra}', "");
-    Expect(1, 71739, '\p{ DOGRA}', "");
-    Expect(0, 71739, '\p{^ DOGRA}', "");
-    Expect(0, 71739, '\P{ DOGRA}', "");
-    Expect(1, 71739, '\P{^ DOGRA}', "");
-    Expect(0, 71740, '\p{ DOGRA}', "");
-    Expect(1, 71740, '\p{^ DOGRA}', "");
-    Expect(1, 71740, '\P{ DOGRA}', "");
-    Expect(0, 71740, '\P{^ DOGRA}', "");
-    Error('\p{:=IS_Dogra}');
-    Error('\P{:=IS_Dogra}');
+    Expect(1, 71739, '\p{	 Dogra}', "");
+    Expect(0, 71739, '\p{^	 Dogra}', "");
+    Expect(0, 71739, '\P{	 Dogra}', "");
+    Expect(1, 71739, '\P{^	 Dogra}', "");
+    Expect(0, 71740, '\p{	 Dogra}', "");
+    Expect(1, 71740, '\p{^	 Dogra}', "");
+    Expect(1, 71740, '\P{	 Dogra}', "");
+    Expect(0, 71740, '\P{^	 Dogra}', "");
+    Error('\p{:=		IS_Dogra}');
+    Error('\P{:=		IS_Dogra}');
     Expect(1, 71739, '\p{isdogra}', "");
     Expect(0, 71739, '\p{^isdogra}', "");
     Expect(0, 71739, '\P{isdogra}', "");
@@ -96191,16 +97213,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71740, '\p{^isdogra}', "");
     Expect(1, 71740, '\P{isdogra}', "");
     Expect(0, 71740, '\P{^isdogra}', "");
-    Expect(1, 71739, '\p{	-IS_DOGRA}', "");
-    Expect(0, 71739, '\p{^	-IS_DOGRA}', "");
-    Expect(0, 71739, '\P{	-IS_DOGRA}', "");
-    Expect(1, 71739, '\P{^	-IS_DOGRA}', "");
-    Expect(0, 71740, '\p{	-IS_DOGRA}', "");
-    Expect(1, 71740, '\p{^	-IS_DOGRA}', "");
-    Expect(1, 71740, '\P{	-IS_DOGRA}', "");
-    Expect(0, 71740, '\P{^	-IS_DOGRA}', "");
-    Error('\p{ :=DOGR}');
-    Error('\P{ :=DOGR}');
+    Expect(1, 71739, '\p{ 	Is_DOGRA}', "");
+    Expect(0, 71739, '\p{^ 	Is_DOGRA}', "");
+    Expect(0, 71739, '\P{ 	Is_DOGRA}', "");
+    Expect(1, 71739, '\P{^ 	Is_DOGRA}', "");
+    Expect(0, 71740, '\p{ 	Is_DOGRA}', "");
+    Expect(1, 71740, '\p{^ 	Is_DOGRA}', "");
+    Expect(1, 71740, '\P{ 	Is_DOGRA}', "");
+    Expect(0, 71740, '\P{^ 	Is_DOGRA}', "");
+    Error('\p{-DOGR/a/}');
+    Error('\P{-DOGR/a/}');
     Expect(1, 71739, '\p{dogr}', "");
     Expect(0, 71739, '\p{^dogr}', "");
     Expect(0, 71739, '\P{dogr}', "");
@@ -96209,16 +97231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71740, '\p{^dogr}', "");
     Expect(1, 71740, '\P{dogr}', "");
     Expect(0, 71740, '\P{^dogr}', "");
-    Expect(1, 71739, '\p{- dogr}', "");
-    Expect(0, 71739, '\p{^- dogr}', "");
-    Expect(0, 71739, '\P{- dogr}', "");
-    Expect(1, 71739, '\P{^- dogr}', "");
-    Expect(0, 71740, '\p{- dogr}', "");
-    Expect(1, 71740, '\p{^- dogr}', "");
-    Expect(1, 71740, '\P{- dogr}', "");
-    Expect(0, 71740, '\P{^- dogr}', "");
-    Error('\p{_/a/Is_DOGR}');
-    Error('\P{_/a/Is_DOGR}');
+    Expect(1, 71739, '\p{ _Dogr}', "");
+    Expect(0, 71739, '\p{^ _Dogr}', "");
+    Expect(0, 71739, '\P{ _Dogr}', "");
+    Expect(1, 71739, '\P{^ _Dogr}', "");
+    Expect(0, 71740, '\p{ _Dogr}', "");
+    Expect(1, 71740, '\p{^ _Dogr}', "");
+    Expect(1, 71740, '\P{ _Dogr}', "");
+    Expect(0, 71740, '\P{^ _Dogr}', "");
+    Error('\p{--Is_dogr:=}');
+    Error('\P{--Is_dogr:=}');
     Expect(1, 71739, '\p{isdogr}', "");
     Expect(0, 71739, '\p{^isdogr}', "");
     Expect(0, 71739, '\P{isdogr}', "");
@@ -96227,16 +97249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71740, '\p{^isdogr}', "");
     Expect(1, 71740, '\P{isdogr}', "");
     Expect(0, 71740, '\P{^isdogr}', "");
-    Expect(1, 71739, '\p{ IS_dogr}', "");
-    Expect(0, 71739, '\p{^ IS_dogr}', "");
-    Expect(0, 71739, '\P{ IS_dogr}', "");
-    Expect(1, 71739, '\P{^ IS_dogr}', "");
-    Expect(0, 71740, '\p{ IS_dogr}', "");
-    Expect(1, 71740, '\p{^ IS_dogr}', "");
-    Expect(1, 71740, '\P{ IS_dogr}', "");
-    Expect(0, 71740, '\P{^ IS_dogr}', "");
-    Error('\p{	 DOMINO_Tiles/a/}');
-    Error('\P{	 DOMINO_Tiles/a/}');
+    Expect(1, 71739, '\p{	-Is_DOGR}', "");
+    Expect(0, 71739, '\p{^	-Is_DOGR}', "");
+    Expect(0, 71739, '\P{	-Is_DOGR}', "");
+    Expect(1, 71739, '\P{^	-Is_DOGR}', "");
+    Expect(0, 71740, '\p{	-Is_DOGR}', "");
+    Expect(1, 71740, '\p{^	-Is_DOGR}', "");
+    Expect(1, 71740, '\P{	-Is_DOGR}', "");
+    Expect(0, 71740, '\P{^	-Is_DOGR}', "");
+    Error('\p{/a/	 domino_tiles}');
+    Error('\P{/a/	 domino_tiles}');
     Expect(1, 127135, '\p{dominotiles}', "");
     Expect(0, 127135, '\p{^dominotiles}', "");
     Expect(0, 127135, '\P{dominotiles}', "");
@@ -96245,16 +97267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127136, '\p{^dominotiles}', "");
     Expect(1, 127136, '\P{dominotiles}', "");
     Expect(0, 127136, '\P{^dominotiles}', "");
-    Expect(1, 127135, '\p{_Domino_tiles}', "");
-    Expect(0, 127135, '\p{^_Domino_tiles}', "");
-    Expect(0, 127135, '\P{_Domino_tiles}', "");
-    Expect(1, 127135, '\P{^_Domino_tiles}', "");
-    Expect(0, 127136, '\p{_Domino_tiles}', "");
-    Expect(1, 127136, '\p{^_Domino_tiles}', "");
-    Expect(1, 127136, '\P{_Domino_tiles}', "");
-    Expect(0, 127136, '\P{^_Domino_tiles}', "");
-    Error('\p{:=  IS_Domino_TILES}');
-    Error('\P{:=  IS_Domino_TILES}');
+    Expect(1, 127135, '\p{	-DOMINO_tiles}', "");
+    Expect(0, 127135, '\p{^	-DOMINO_tiles}', "");
+    Expect(0, 127135, '\P{	-DOMINO_tiles}', "");
+    Expect(1, 127135, '\P{^	-DOMINO_tiles}', "");
+    Expect(0, 127136, '\p{	-DOMINO_tiles}', "");
+    Expect(1, 127136, '\p{^	-DOMINO_tiles}', "");
+    Expect(1, 127136, '\P{	-DOMINO_tiles}', "");
+    Expect(0, 127136, '\P{^	-DOMINO_tiles}', "");
+    Error('\p{:=_is_domino_Tiles}');
+    Error('\P{:=_is_domino_Tiles}');
     Expect(1, 127135, '\p{isdominotiles}', "");
     Expect(0, 127135, '\p{^isdominotiles}', "");
     Expect(0, 127135, '\P{isdominotiles}', "");
@@ -96263,16 +97285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127136, '\p{^isdominotiles}', "");
     Expect(1, 127136, '\P{isdominotiles}', "");
     Expect(0, 127136, '\P{^isdominotiles}', "");
-    Expect(1, 127135, '\p{		is_domino_Tiles}', "");
-    Expect(0, 127135, '\p{^		is_domino_Tiles}', "");
-    Expect(0, 127135, '\P{		is_domino_Tiles}', "");
-    Expect(1, 127135, '\P{^		is_domino_Tiles}', "");
-    Expect(0, 127136, '\p{		is_domino_Tiles}', "");
-    Expect(1, 127136, '\p{^		is_domino_Tiles}', "");
-    Expect(1, 127136, '\P{		is_domino_Tiles}', "");
-    Expect(0, 127136, '\P{^		is_domino_Tiles}', "");
-    Error('\p{/a/-_In_domino_Tiles}');
-    Error('\P{/a/-_In_domino_Tiles}');
+    Expect(1, 127135, '\p{	_is_domino_tiles}', "");
+    Expect(0, 127135, '\p{^	_is_domino_tiles}', "");
+    Expect(0, 127135, '\P{	_is_domino_tiles}', "");
+    Expect(1, 127135, '\P{^	_is_domino_tiles}', "");
+    Expect(0, 127136, '\p{	_is_domino_tiles}', "");
+    Expect(1, 127136, '\p{^	_is_domino_tiles}', "");
+    Expect(1, 127136, '\P{	_is_domino_tiles}', "");
+    Expect(0, 127136, '\P{^	_is_domino_tiles}', "");
+    Error('\p{	_In_Domino_Tiles:=}');
+    Error('\P{	_In_Domino_Tiles:=}');
     Expect(1, 127135, '\p{indominotiles}', "");
     Expect(0, 127135, '\p{^indominotiles}', "");
     Expect(0, 127135, '\P{indominotiles}', "");
@@ -96281,16 +97303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127136, '\p{^indominotiles}', "");
     Expect(1, 127136, '\P{indominotiles}', "");
     Expect(0, 127136, '\P{^indominotiles}', "");
-    Expect(1, 127135, '\p{	 IN_Domino_Tiles}', "");
-    Expect(0, 127135, '\p{^	 IN_Domino_Tiles}', "");
-    Expect(0, 127135, '\P{	 IN_Domino_Tiles}', "");
-    Expect(1, 127135, '\P{^	 IN_Domino_Tiles}', "");
-    Expect(0, 127136, '\p{	 IN_Domino_Tiles}', "");
-    Expect(1, 127136, '\p{^	 IN_Domino_Tiles}', "");
-    Expect(1, 127136, '\P{	 IN_Domino_Tiles}', "");
-    Expect(0, 127136, '\P{^	 IN_Domino_Tiles}', "");
-    Error('\p{ 	domino/a/}');
-    Error('\P{ 	domino/a/}');
+    Expect(1, 127135, '\p{	 In_Domino_TILES}', "");
+    Expect(0, 127135, '\p{^	 In_Domino_TILES}', "");
+    Expect(0, 127135, '\P{	 In_Domino_TILES}', "");
+    Expect(1, 127135, '\P{^	 In_Domino_TILES}', "");
+    Expect(0, 127136, '\p{	 In_Domino_TILES}', "");
+    Expect(1, 127136, '\p{^	 In_Domino_TILES}', "");
+    Expect(1, 127136, '\P{	 In_Domino_TILES}', "");
+    Expect(0, 127136, '\P{^	 In_Domino_TILES}', "");
+    Error('\p{	_Domino:=}');
+    Error('\P{	_Domino:=}');
     Expect(1, 127135, '\p{domino}', "");
     Expect(0, 127135, '\p{^domino}', "");
     Expect(0, 127135, '\P{domino}', "");
@@ -96299,16 +97321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127136, '\p{^domino}', "");
     Expect(1, 127136, '\P{domino}', "");
     Expect(0, 127136, '\P{^domino}', "");
-    Expect(1, 127135, '\p{ _Domino}', "");
-    Expect(0, 127135, '\p{^ _Domino}', "");
-    Expect(0, 127135, '\P{ _Domino}', "");
-    Expect(1, 127135, '\P{^ _Domino}', "");
-    Expect(0, 127136, '\p{ _Domino}', "");
-    Expect(1, 127136, '\p{^ _Domino}', "");
-    Expect(1, 127136, '\P{ _Domino}', "");
-    Expect(0, 127136, '\P{^ _Domino}', "");
-    Error('\p{_/a/Is_Domino}');
-    Error('\P{_/a/Is_Domino}');
+    Expect(1, 127135, '\p{-	Domino}', "");
+    Expect(0, 127135, '\p{^-	Domino}', "");
+    Expect(0, 127135, '\P{-	Domino}', "");
+    Expect(1, 127135, '\P{^-	Domino}', "");
+    Expect(0, 127136, '\p{-	Domino}', "");
+    Expect(1, 127136, '\p{^-	Domino}', "");
+    Expect(1, 127136, '\P{-	Domino}', "");
+    Expect(0, 127136, '\P{^-	Domino}', "");
+    Error('\p{:=-IS_DOMINO}');
+    Error('\P{:=-IS_DOMINO}');
     Expect(1, 127135, '\p{isdomino}', "");
     Expect(0, 127135, '\p{^isdomino}', "");
     Expect(0, 127135, '\P{isdomino}', "");
@@ -96317,16 +97339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127136, '\p{^isdomino}', "");
     Expect(1, 127136, '\P{isdomino}', "");
     Expect(0, 127136, '\P{^isdomino}', "");
-    Expect(1, 127135, '\p{-Is_Domino}', "");
-    Expect(0, 127135, '\p{^-Is_Domino}', "");
-    Expect(0, 127135, '\P{-Is_Domino}', "");
-    Expect(1, 127135, '\P{^-Is_Domino}', "");
-    Expect(0, 127136, '\p{-Is_Domino}', "");
-    Expect(1, 127136, '\p{^-Is_Domino}', "");
-    Expect(1, 127136, '\P{-Is_Domino}', "");
-    Expect(0, 127136, '\P{^-Is_Domino}', "");
-    Error('\p{:=__IN_domino}');
-    Error('\P{:=__IN_domino}');
+    Expect(1, 127135, '\p{- Is_domino}', "");
+    Expect(0, 127135, '\p{^- Is_domino}', "");
+    Expect(0, 127135, '\P{- Is_domino}', "");
+    Expect(1, 127135, '\P{^- Is_domino}', "");
+    Expect(0, 127136, '\p{- Is_domino}', "");
+    Expect(1, 127136, '\p{^- Is_domino}', "");
+    Expect(1, 127136, '\P{- Is_domino}', "");
+    Expect(0, 127136, '\P{^- Is_domino}', "");
+    Error('\p{:=--In_Domino}');
+    Error('\P{:=--In_Domino}');
     Expect(1, 127135, '\p{indomino}', "");
     Expect(0, 127135, '\p{^indomino}', "");
     Expect(0, 127135, '\P{indomino}', "");
@@ -96335,16 +97357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127136, '\p{^indomino}', "");
     Expect(1, 127136, '\P{indomino}', "");
     Expect(0, 127136, '\P{^indomino}', "");
-    Expect(1, 127135, '\p{__IN_domino}', "");
-    Expect(0, 127135, '\p{^__IN_domino}', "");
-    Expect(0, 127135, '\P{__IN_domino}', "");
-    Expect(1, 127135, '\P{^__IN_domino}', "");
-    Expect(0, 127136, '\p{__IN_domino}', "");
-    Expect(1, 127136, '\p{^__IN_domino}', "");
-    Expect(1, 127136, '\P{__IN_domino}', "");
-    Expect(0, 127136, '\P{^__IN_domino}', "");
-    Error('\p{- Duployan:=}');
-    Error('\P{- Duployan:=}');
+    Expect(1, 127135, '\p{-in_Domino}', "");
+    Expect(0, 127135, '\p{^-in_Domino}', "");
+    Expect(0, 127135, '\P{-in_Domino}', "");
+    Expect(1, 127135, '\P{^-in_Domino}', "");
+    Expect(0, 127136, '\p{-in_Domino}', "");
+    Expect(1, 127136, '\p{^-in_Domino}', "");
+    Expect(1, 127136, '\P{-in_Domino}', "");
+    Expect(0, 127136, '\P{^-in_Domino}', "");
+    Error('\p{ 	Duployan:=}');
+    Error('\P{ 	Duployan:=}');
     Expect(1, 113827, '\p{duployan}', "");
     Expect(0, 113827, '\p{^duployan}', "");
     Expect(0, 113827, '\P{duployan}', "");
@@ -96353,16 +97375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 113828, '\p{^duployan}', "");
     Expect(1, 113828, '\P{duployan}', "");
     Expect(0, 113828, '\P{^duployan}', "");
-    Expect(1, 113827, '\p{__Duployan}', "");
-    Expect(0, 113827, '\p{^__Duployan}', "");
-    Expect(0, 113827, '\P{__Duployan}', "");
-    Expect(1, 113827, '\P{^__Duployan}', "");
-    Expect(0, 113828, '\p{__Duployan}', "");
-    Expect(1, 113828, '\p{^__Duployan}', "");
-    Expect(1, 113828, '\P{__Duployan}', "");
-    Expect(0, 113828, '\P{^__Duployan}', "");
-    Error('\p{-/a/Is_duployan}');
-    Error('\P{-/a/Is_duployan}');
+    Expect(1, 113827, '\p{  Duployan}', "");
+    Expect(0, 113827, '\p{^  Duployan}', "");
+    Expect(0, 113827, '\P{  Duployan}', "");
+    Expect(1, 113827, '\P{^  Duployan}', "");
+    Expect(0, 113828, '\p{  Duployan}', "");
+    Expect(1, 113828, '\p{^  Duployan}', "");
+    Expect(1, 113828, '\P{  Duployan}', "");
+    Expect(0, 113828, '\P{^  Duployan}', "");
+    Error('\p{/a/is_duployan}');
+    Error('\P{/a/is_duployan}');
     Expect(1, 113827, '\p{isduployan}', "");
     Expect(0, 113827, '\p{^isduployan}', "");
     Expect(0, 113827, '\P{isduployan}', "");
@@ -96371,16 +97393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 113828, '\p{^isduployan}', "");
     Expect(1, 113828, '\P{isduployan}', "");
     Expect(0, 113828, '\P{^isduployan}', "");
-    Expect(1, 113827, '\p{ Is_DUPLOYAN}', "");
-    Expect(0, 113827, '\p{^ Is_DUPLOYAN}', "");
-    Expect(0, 113827, '\P{ Is_DUPLOYAN}', "");
-    Expect(1, 113827, '\P{^ Is_DUPLOYAN}', "");
-    Expect(0, 113828, '\p{ Is_DUPLOYAN}', "");
-    Expect(1, 113828, '\p{^ Is_DUPLOYAN}', "");
-    Expect(1, 113828, '\P{ Is_DUPLOYAN}', "");
-    Expect(0, 113828, '\P{^ Is_DUPLOYAN}', "");
-    Error('\p{_-DUPL:=}');
-    Error('\P{_-DUPL:=}');
+    Expect(1, 113827, '\p{_-Is_Duployan}', "");
+    Expect(0, 113827, '\p{^_-Is_Duployan}', "");
+    Expect(0, 113827, '\P{_-Is_Duployan}', "");
+    Expect(1, 113827, '\P{^_-Is_Duployan}', "");
+    Expect(0, 113828, '\p{_-Is_Duployan}', "");
+    Expect(1, 113828, '\p{^_-Is_Duployan}', "");
+    Expect(1, 113828, '\P{_-Is_Duployan}', "");
+    Expect(0, 113828, '\P{^_-Is_Duployan}', "");
+    Error('\p{:=--dupl}');
+    Error('\P{:=--dupl}');
     Expect(1, 113827, '\p{dupl}', "");
     Expect(0, 113827, '\p{^dupl}', "");
     Expect(0, 113827, '\P{dupl}', "");
@@ -96389,16 +97411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 113828, '\p{^dupl}', "");
     Expect(1, 113828, '\P{dupl}', "");
     Expect(0, 113828, '\P{^dupl}', "");
-    Expect(1, 113827, '\p{	-Dupl}', "");
-    Expect(0, 113827, '\p{^	-Dupl}', "");
-    Expect(0, 113827, '\P{	-Dupl}', "");
-    Expect(1, 113827, '\P{^	-Dupl}', "");
-    Expect(0, 113828, '\p{	-Dupl}', "");
-    Expect(1, 113828, '\p{^	-Dupl}', "");
-    Expect(1, 113828, '\P{	-Dupl}', "");
-    Expect(0, 113828, '\P{^	-Dupl}', "");
-    Error('\p{-	IS_Dupl:=}');
-    Error('\P{-	IS_Dupl:=}');
+    Expect(1, 113827, '\p{_	DUPL}', "");
+    Expect(0, 113827, '\p{^_	DUPL}', "");
+    Expect(0, 113827, '\P{_	DUPL}', "");
+    Expect(1, 113827, '\P{^_	DUPL}', "");
+    Expect(0, 113828, '\p{_	DUPL}', "");
+    Expect(1, 113828, '\p{^_	DUPL}', "");
+    Expect(1, 113828, '\P{_	DUPL}', "");
+    Expect(0, 113828, '\P{^_	DUPL}', "");
+    Error('\p{__Is_Dupl/a/}');
+    Error('\P{__Is_Dupl/a/}');
     Expect(1, 113827, '\p{isdupl}', "");
     Expect(0, 113827, '\p{^isdupl}', "");
     Expect(0, 113827, '\P{isdupl}', "");
@@ -96407,16 +97429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 113828, '\p{^isdupl}', "");
     Expect(1, 113828, '\P{isdupl}', "");
     Expect(0, 113828, '\P{^isdupl}', "");
-    Expect(1, 113827, '\p{ Is_Dupl}', "");
-    Expect(0, 113827, '\p{^ Is_Dupl}', "");
-    Expect(0, 113827, '\P{ Is_Dupl}', "");
-    Expect(1, 113827, '\P{^ Is_Dupl}', "");
-    Expect(0, 113828, '\p{ Is_Dupl}', "");
-    Expect(1, 113828, '\p{^ Is_Dupl}', "");
-    Expect(1, 113828, '\P{ Is_Dupl}', "");
-    Expect(0, 113828, '\P{^ Is_Dupl}', "");
-    Error('\p{-	Early_Dynastic_CUNEIFORM/a/}');
-    Error('\P{-	Early_Dynastic_CUNEIFORM/a/}');
+    Expect(1, 113827, '\p{ _Is_Dupl}', "");
+    Expect(0, 113827, '\p{^ _Is_Dupl}', "");
+    Expect(0, 113827, '\P{ _Is_Dupl}', "");
+    Expect(1, 113827, '\P{^ _Is_Dupl}', "");
+    Expect(0, 113828, '\p{ _Is_Dupl}', "");
+    Expect(1, 113828, '\p{^ _Is_Dupl}', "");
+    Expect(1, 113828, '\P{ _Is_Dupl}', "");
+    Expect(0, 113828, '\P{^ _Is_Dupl}', "");
+    Error('\p{-/a/Early_Dynastic_Cuneiform}');
+    Error('\P{-/a/Early_Dynastic_Cuneiform}');
     Expect(1, 75087, '\p{earlydynasticcuneiform}', "");
     Expect(0, 75087, '\p{^earlydynasticcuneiform}', "");
     Expect(0, 75087, '\P{earlydynasticcuneiform}', "");
@@ -96425,16 +97447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75088, '\p{^earlydynasticcuneiform}', "");
     Expect(1, 75088, '\P{earlydynasticcuneiform}', "");
     Expect(0, 75088, '\P{^earlydynasticcuneiform}', "");
-    Expect(1, 75087, '\p{-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\p{^-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\P{-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75087, '\P{^-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\p{-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\p{^-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\P{-_EARLY_Dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\P{^-_EARLY_Dynastic_Cuneiform}', "");
-    Error('\p{ IS_EARLY_Dynastic_Cuneiform/a/}');
-    Error('\P{ IS_EARLY_Dynastic_Cuneiform/a/}');
+    Expect(1, 75087, '\p{	early_Dynastic_Cuneiform}', "");
+    Expect(0, 75087, '\p{^	early_Dynastic_Cuneiform}', "");
+    Expect(0, 75087, '\P{	early_Dynastic_Cuneiform}', "");
+    Expect(1, 75087, '\P{^	early_Dynastic_Cuneiform}', "");
+    Expect(0, 75088, '\p{	early_Dynastic_Cuneiform}', "");
+    Expect(1, 75088, '\p{^	early_Dynastic_Cuneiform}', "");
+    Expect(1, 75088, '\P{	early_Dynastic_Cuneiform}', "");
+    Expect(0, 75088, '\P{^	early_Dynastic_Cuneiform}', "");
+    Error('\p{/a/Is_early_DYNASTIC_Cuneiform}');
+    Error('\P{/a/Is_early_DYNASTIC_Cuneiform}');
     Expect(1, 75087, '\p{isearlydynasticcuneiform}', "");
     Expect(0, 75087, '\p{^isearlydynasticcuneiform}', "");
     Expect(0, 75087, '\P{isearlydynasticcuneiform}', "");
@@ -96443,16 +97465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75088, '\p{^isearlydynasticcuneiform}', "");
     Expect(1, 75088, '\P{isearlydynasticcuneiform}', "");
     Expect(0, 75088, '\P{^isearlydynasticcuneiform}', "");
-    Expect(1, 75087, '\p{_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\p{^_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\P{_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(1, 75087, '\P{^_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\p{_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\p{^_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\P{_-Is_EARLY_dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\P{^_-Is_EARLY_dynastic_Cuneiform}', "");
-    Error('\p{ :=In_EARLY_dynastic_Cuneiform}');
-    Error('\P{ :=In_EARLY_dynastic_Cuneiform}');
+    Expect(1, 75087, '\p{	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(0, 75087, '\p{^	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(0, 75087, '\P{	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(1, 75087, '\P{^	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(0, 75088, '\p{	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(1, 75088, '\p{^	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(1, 75088, '\P{	-Is_EARLY_Dynastic_cuneiform}', "");
+    Expect(0, 75088, '\P{^	-Is_EARLY_Dynastic_cuneiform}', "");
+    Error('\p{-_in_early_Dynastic_Cuneiform:=}');
+    Error('\P{-_in_early_Dynastic_Cuneiform:=}');
     Expect(1, 75087, '\p{inearlydynasticcuneiform}', "");
     Expect(0, 75087, '\p{^inearlydynasticcuneiform}', "");
     Expect(0, 75087, '\P{inearlydynasticcuneiform}', "");
@@ -96461,142 +97483,142 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 75088, '\p{^inearlydynasticcuneiform}', "");
     Expect(1, 75088, '\P{inearlydynasticcuneiform}', "");
     Expect(0, 75088, '\P{^inearlydynasticcuneiform}', "");
-    Expect(1, 75087, '\p{ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\p{^ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(0, 75087, '\P{ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(1, 75087, '\P{^ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\p{ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\p{^ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(1, 75088, '\P{ 	in_Early_dynastic_Cuneiform}', "");
-    Expect(0, 75088, '\P{^ 	in_Early_dynastic_Cuneiform}', "");
-    Error('\p{/a/Egyptian_Hieroglyph_FORMAT_controls}');
-    Error('\P{/a/Egyptian_Hieroglyph_FORMAT_controls}');
-    Expect(1, 78911, '\p{egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{egyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^egyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78911, '\p{^	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78911, '\P{	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(1, 78911, '\P{^	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78912, '\p{	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(1, 78912, '\p{^	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(1, 78912, '\P{	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Expect(0, 78912, '\P{^	EGYPTIAN_Hieroglyph_Format_Controls}', "");
-    Error('\p{ 	is_egyptian_hieroglyph_Format_CONTROLS/a/}');
-    Error('\P{ 	is_egyptian_hieroglyph_Format_CONTROLS/a/}');
-    Expect(1, 78911, '\p{isegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^isegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{isegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^isegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{isegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^isegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{isegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^isegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(0, 78911, '\p{^_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(0, 78911, '\P{_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(1, 78911, '\P{^_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(0, 78912, '\p{_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(1, 78912, '\p{^_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(1, 78912, '\P{_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Expect(0, 78912, '\P{^_-is_Egyptian_HIEROGLYPH_Format_Controls}', "");
-    Error('\p{In_egyptian_Hieroglyph_format_Controls:=}');
-    Error('\P{In_egyptian_Hieroglyph_format_Controls:=}');
-    Expect(1, 78911, '\p{inegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\p{^inegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78911, '\P{inegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\P{^inegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\p{inegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\p{^inegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78912, '\P{inegyptianhieroglyphformatcontrols}', "");
-    Expect(0, 78912, '\P{^inegyptianhieroglyphformatcontrols}', "");
-    Expect(1, 78911, '\p{_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(0, 78911, '\p{^_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(0, 78911, '\P{_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(1, 78911, '\P{^_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(0, 78912, '\p{_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(1, 78912, '\p{^_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(1, 78912, '\P{_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Expect(0, 78912, '\P{^_ In_EGYPTIAN_HIEROGLYPH_format_CONTROLS}', "");
-    Error('\p{ /a/egyptian_Hieroglyphs}');
-    Error('\P{ /a/egyptian_Hieroglyphs}');
-    Expect(1, 78904, '\p{egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\p{^egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\P{egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\P{^egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\p{egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\p{^egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\P{egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\P{^egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\p{EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(0, 78904, '\p{^EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(0, 78904, '\P{EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(1, 78904, '\P{^EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(0, 78905, '\p{EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(1, 78905, '\p{^EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(1, 78905, '\P{EGYPTIAN_HIEROGLYPHS}', "");
-    Expect(0, 78905, '\P{^EGYPTIAN_HIEROGLYPHS}', "");
-    Error('\p{ -Is_Egyptian_Hieroglyphs/a/}');
-    Error('\P{ -Is_Egyptian_Hieroglyphs/a/}');
-    Expect(1, 78904, '\p{isegyptianhieroglyphs}', "");
-    Expect(0, 78904, '\p{^isegyptianhieroglyphs}', "");
-    Expect(0, 78904, '\P{isegyptianhieroglyphs}', "");
-    Expect(1, 78904, '\P{^isegyptianhieroglyphs}', "");
-    Expect(0, 78905, '\p{isegyptianhieroglyphs}', "");
-    Expect(1, 78905, '\p{^isegyptianhieroglyphs}', "");
-    Expect(1, 78905, '\P{isegyptianhieroglyphs}', "");
-    Expect(0, 78905, '\P{^isegyptianhieroglyphs}', "");
-    Expect(1, 78904, '\p{ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78904, '\p{^ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78904, '\P{ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78904, '\P{^ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78905, '\p{ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78905, '\p{^ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78905, '\P{ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78905, '\P{^ 	Is_EGYPTIAN_Hieroglyphs}', "");
-    Error('\p{/a/Egyp}');
-    Error('\P{/a/Egyp}');
-    Expect(1, 78904, '\p{egyp}', "");
-    Expect(0, 78904, '\p{^egyp}', "");
-    Expect(0, 78904, '\P{egyp}', "");
-    Expect(1, 78904, '\P{^egyp}', "");
-    Expect(0, 78905, '\p{egyp}', "");
-    Expect(1, 78905, '\p{^egyp}', "");
-    Expect(1, 78905, '\P{egyp}', "");
-    Expect(0, 78905, '\P{^egyp}', "");
-    Expect(1, 78904, '\p{Egyp}', "");
-    Expect(0, 78904, '\p{^Egyp}', "");
-    Expect(0, 78904, '\P{Egyp}', "");
-    Expect(1, 78904, '\P{^Egyp}', "");
-    Expect(0, 78905, '\p{Egyp}', "");
-    Expect(1, 78905, '\p{^Egyp}', "");
-    Expect(1, 78905, '\P{Egyp}', "");
-    Expect(0, 78905, '\P{^Egyp}', "");
-    Error('\p{Is_EGYP:=}');
-    Error('\P{Is_EGYP:=}');
-    Expect(1, 78904, '\p{isegyp}', "");
-    Expect(0, 78904, '\p{^isegyp}', "");
-    Expect(0, 78904, '\P{isegyp}', "");
-    Expect(1, 78904, '\P{^isegyp}', "");
-    Expect(0, 78905, '\p{isegyp}', "");
-    Expect(1, 78905, '\p{^isegyp}', "");
-    Expect(1, 78905, '\P{isegyp}', "");
-    Expect(0, 78905, '\P{^isegyp}', "");
-    Expect(1, 78904, '\p{	_is_egyp}', "");
-    Expect(0, 78904, '\p{^	_is_egyp}', "");
-    Expect(0, 78904, '\P{	_is_egyp}', "");
-    Expect(1, 78904, '\P{^	_is_egyp}', "");
-    Expect(0, 78905, '\p{	_is_egyp}', "");
-    Expect(1, 78905, '\p{^	_is_egyp}', "");
-    Expect(1, 78905, '\P{	_is_egyp}', "");
-    Expect(0, 78905, '\P{^	_is_egyp}', "");
-    Error('\p{ :=Elbasan}');
-    Error('\P{ :=Elbasan}');
+    Expect(1, 75087, '\p{  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(0, 75087, '\p{^  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(0, 75087, '\P{  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(1, 75087, '\P{^  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(0, 75088, '\p{  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(1, 75088, '\p{^  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(1, 75088, '\P{  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Expect(0, 75088, '\P{^  In_EARLY_Dynastic_CUNEIFORM}', "");
+    Error('\p{:=EGYPTIAN_HIEROGLYPH_FORMAT_controls}');
+    Error('\P{:=EGYPTIAN_HIEROGLYPH_FORMAT_controls}');
+    Expect(1, 78943, '\p{egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{egyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^egyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(0, 78943, '\p{^	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(0, 78943, '\P{	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(1, 78943, '\P{^	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(0, 78944, '\p{	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(1, 78944, '\p{^	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(1, 78944, '\P{	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Expect(0, 78944, '\P{^	-Egyptian_hieroglyph_FORMAT_Controls}', "");
+    Error('\p{:=	Is_EGYPTIAN_Hieroglyph_format_controls}');
+    Error('\P{:=	Is_EGYPTIAN_Hieroglyph_format_controls}');
+    Expect(1, 78943, '\p{isegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^isegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{isegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^isegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{isegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^isegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{isegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^isegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(0, 78943, '\p{^	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(0, 78943, '\P{	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(1, 78943, '\P{^	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(0, 78944, '\p{	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(1, 78944, '\p{^	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(1, 78944, '\P{	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Expect(0, 78944, '\P{^	_IS_egyptian_Hieroglyph_format_controls}', "");
+    Error('\p{/a/- In_EGYPTIAN_hieroglyph_Format_CONTROLS}');
+    Error('\P{/a/- In_EGYPTIAN_hieroglyph_Format_CONTROLS}');
+    Expect(1, 78943, '\p{inegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\p{^inegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78943, '\P{inegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\P{^inegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\p{inegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\p{^inegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78944, '\P{inegyptianhieroglyphformatcontrols}', "");
+    Expect(0, 78944, '\P{^inegyptianhieroglyphformatcontrols}', "");
+    Expect(1, 78943, '\p{_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(0, 78943, '\p{^_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(0, 78943, '\P{_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(1, 78943, '\P{^_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(0, 78944, '\p{_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(1, 78944, '\p{^_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(1, 78944, '\P{_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Expect(0, 78944, '\P{^_In_Egyptian_Hieroglyph_Format_Controls}', "");
+    Error('\p{/a/Egyptian_hieroglyphs}');
+    Error('\P{/a/Egyptian_hieroglyphs}');
+    Expect(1, 78933, '\p{egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\p{^egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\P{egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\P{^egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\p{egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\p{^egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\P{egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\P{^egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\p{ Egyptian_hieroglyphs}', "");
+    Expect(0, 78933, '\p{^ Egyptian_hieroglyphs}', "");
+    Expect(0, 78933, '\P{ Egyptian_hieroglyphs}', "");
+    Expect(1, 78933, '\P{^ Egyptian_hieroglyphs}', "");
+    Expect(0, 78934, '\p{ Egyptian_hieroglyphs}', "");
+    Expect(1, 78934, '\p{^ Egyptian_hieroglyphs}', "");
+    Expect(1, 78934, '\P{ Egyptian_hieroglyphs}', "");
+    Expect(0, 78934, '\P{^ Egyptian_hieroglyphs}', "");
+    Error('\p{:= -Is_EGYPTIAN_hieroglyphs}');
+    Error('\P{:= -Is_EGYPTIAN_hieroglyphs}');
+    Expect(1, 78933, '\p{isegyptianhieroglyphs}', "");
+    Expect(0, 78933, '\p{^isegyptianhieroglyphs}', "");
+    Expect(0, 78933, '\P{isegyptianhieroglyphs}', "");
+    Expect(1, 78933, '\P{^isegyptianhieroglyphs}', "");
+    Expect(0, 78934, '\p{isegyptianhieroglyphs}', "");
+    Expect(1, 78934, '\p{^isegyptianhieroglyphs}', "");
+    Expect(1, 78934, '\P{isegyptianhieroglyphs}', "");
+    Expect(0, 78934, '\P{^isegyptianhieroglyphs}', "");
+    Expect(1, 78933, '\p{__Is_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78933, '\p{^__Is_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78933, '\P{__Is_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78933, '\P{^__Is_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78934, '\p{__Is_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78934, '\p{^__Is_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78934, '\P{__Is_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78934, '\P{^__Is_Egyptian_Hieroglyphs}', "");
+    Error('\p{		Egyp:=}');
+    Error('\P{		Egyp:=}');
+    Expect(1, 78933, '\p{egyp}', "");
+    Expect(0, 78933, '\p{^egyp}', "");
+    Expect(0, 78933, '\P{egyp}', "");
+    Expect(1, 78933, '\P{^egyp}', "");
+    Expect(0, 78934, '\p{egyp}', "");
+    Expect(1, 78934, '\p{^egyp}', "");
+    Expect(1, 78934, '\P{egyp}', "");
+    Expect(0, 78934, '\P{^egyp}', "");
+    Expect(1, 78933, '\p{	-egyp}', "");
+    Expect(0, 78933, '\p{^	-egyp}', "");
+    Expect(0, 78933, '\P{	-egyp}', "");
+    Expect(1, 78933, '\P{^	-egyp}', "");
+    Expect(0, 78934, '\p{	-egyp}', "");
+    Expect(1, 78934, '\p{^	-egyp}', "");
+    Expect(1, 78934, '\P{	-egyp}', "");
+    Expect(0, 78934, '\P{^	-egyp}', "");
+    Error('\p{/a/	 Is_Egyp}');
+    Error('\P{/a/	 Is_Egyp}');
+    Expect(1, 78933, '\p{isegyp}', "");
+    Expect(0, 78933, '\p{^isegyp}', "");
+    Expect(0, 78933, '\P{isegyp}', "");
+    Expect(1, 78933, '\P{^isegyp}', "");
+    Expect(0, 78934, '\p{isegyp}', "");
+    Expect(1, 78934, '\p{^isegyp}', "");
+    Expect(1, 78934, '\P{isegyp}', "");
+    Expect(0, 78934, '\P{^isegyp}', "");
+    Expect(1, 78933, '\p{-	IS_egyp}', "");
+    Expect(0, 78933, '\p{^-	IS_egyp}', "");
+    Expect(0, 78933, '\P{-	IS_egyp}', "");
+    Expect(1, 78933, '\P{^-	IS_egyp}', "");
+    Expect(0, 78934, '\p{-	IS_egyp}', "");
+    Expect(1, 78934, '\p{^-	IS_egyp}', "");
+    Expect(1, 78934, '\P{-	IS_egyp}', "");
+    Expect(0, 78934, '\P{^-	IS_egyp}', "");
+    Error('\p{-:=ELBASAN}');
+    Error('\P{-:=ELBASAN}');
     Expect(1, 66855, '\p{elbasan}', "");
     Expect(0, 66855, '\p{^elbasan}', "");
     Expect(0, 66855, '\P{elbasan}', "");
@@ -96605,16 +97627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66856, '\p{^elbasan}', "");
     Expect(1, 66856, '\P{elbasan}', "");
     Expect(0, 66856, '\P{^elbasan}', "");
-    Expect(1, 66855, '\p{-Elbasan}', "");
-    Expect(0, 66855, '\p{^-Elbasan}', "");
-    Expect(0, 66855, '\P{-Elbasan}', "");
-    Expect(1, 66855, '\P{^-Elbasan}', "");
-    Expect(0, 66856, '\p{-Elbasan}', "");
-    Expect(1, 66856, '\p{^-Elbasan}', "");
-    Expect(1, 66856, '\P{-Elbasan}', "");
-    Expect(0, 66856, '\P{^-Elbasan}', "");
-    Error('\p{/a/Is_ELBASAN}');
-    Error('\P{/a/Is_ELBASAN}');
+    Expect(1, 66855, '\p{_elbasan}', "");
+    Expect(0, 66855, '\p{^_elbasan}', "");
+    Expect(0, 66855, '\P{_elbasan}', "");
+    Expect(1, 66855, '\P{^_elbasan}', "");
+    Expect(0, 66856, '\p{_elbasan}', "");
+    Expect(1, 66856, '\p{^_elbasan}', "");
+    Expect(1, 66856, '\P{_elbasan}', "");
+    Expect(0, 66856, '\P{^_elbasan}', "");
+    Error('\p{_IS_ELBASAN/a/}');
+    Error('\P{_IS_ELBASAN/a/}');
     Expect(1, 66855, '\p{iselbasan}', "");
     Expect(0, 66855, '\p{^iselbasan}', "");
     Expect(0, 66855, '\P{iselbasan}', "");
@@ -96623,16 +97645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66856, '\p{^iselbasan}', "");
     Expect(1, 66856, '\P{iselbasan}', "");
     Expect(0, 66856, '\P{^iselbasan}', "");
-    Expect(1, 66855, '\p{_	Is_elbasan}', "");
-    Expect(0, 66855, '\p{^_	Is_elbasan}', "");
-    Expect(0, 66855, '\P{_	Is_elbasan}', "");
-    Expect(1, 66855, '\P{^_	Is_elbasan}', "");
-    Expect(0, 66856, '\p{_	Is_elbasan}', "");
-    Expect(1, 66856, '\p{^_	Is_elbasan}', "");
-    Expect(1, 66856, '\P{_	Is_elbasan}', "");
-    Expect(0, 66856, '\P{^_	Is_elbasan}', "");
-    Error('\p{ /a/ELBA}');
-    Error('\P{ /a/ELBA}');
+    Expect(1, 66855, '\p{-Is_Elbasan}', "");
+    Expect(0, 66855, '\p{^-Is_Elbasan}', "");
+    Expect(0, 66855, '\P{-Is_Elbasan}', "");
+    Expect(1, 66855, '\P{^-Is_Elbasan}', "");
+    Expect(0, 66856, '\p{-Is_Elbasan}', "");
+    Expect(1, 66856, '\p{^-Is_Elbasan}', "");
+    Expect(1, 66856, '\P{-Is_Elbasan}', "");
+    Expect(0, 66856, '\P{^-Is_Elbasan}', "");
+    Error('\p{/a/-_ELBA}');
+    Error('\P{/a/-_ELBA}');
     Expect(1, 66855, '\p{elba}', "");
     Expect(0, 66855, '\p{^elba}', "");
     Expect(0, 66855, '\P{elba}', "");
@@ -96641,16 +97663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66856, '\p{^elba}', "");
     Expect(1, 66856, '\P{elba}', "");
     Expect(0, 66856, '\P{^elba}', "");
-    Expect(1, 66855, '\p{__ELBA}', "");
-    Expect(0, 66855, '\p{^__ELBA}', "");
-    Expect(0, 66855, '\P{__ELBA}', "");
-    Expect(1, 66855, '\P{^__ELBA}', "");
-    Expect(0, 66856, '\p{__ELBA}', "");
-    Expect(1, 66856, '\p{^__ELBA}', "");
-    Expect(1, 66856, '\P{__ELBA}', "");
-    Expect(0, 66856, '\P{^__ELBA}', "");
-    Error('\p{/a/__IS_elba}');
-    Error('\P{/a/__IS_elba}');
+    Expect(1, 66855, '\p{_elba}', "");
+    Expect(0, 66855, '\p{^_elba}', "");
+    Expect(0, 66855, '\P{_elba}', "");
+    Expect(1, 66855, '\P{^_elba}', "");
+    Expect(0, 66856, '\p{_elba}', "");
+    Expect(1, 66856, '\p{^_elba}', "");
+    Expect(1, 66856, '\P{_elba}', "");
+    Expect(0, 66856, '\P{^_elba}', "");
+    Error('\p{:=IS_ELBA}');
+    Error('\P{:=IS_ELBA}');
     Expect(1, 66855, '\p{iselba}', "");
     Expect(0, 66855, '\p{^iselba}', "");
     Expect(0, 66855, '\P{iselba}', "");
@@ -96659,16 +97681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66856, '\p{^iselba}', "");
     Expect(1, 66856, '\P{iselba}', "");
     Expect(0, 66856, '\P{^iselba}', "");
-    Expect(1, 66855, '\p{ 	IS_elba}', "");
-    Expect(0, 66855, '\p{^ 	IS_elba}', "");
-    Expect(0, 66855, '\P{ 	IS_elba}', "");
-    Expect(1, 66855, '\P{^ 	IS_elba}', "");
-    Expect(0, 66856, '\p{ 	IS_elba}', "");
-    Expect(1, 66856, '\p{^ 	IS_elba}', "");
-    Expect(1, 66856, '\P{ 	IS_elba}', "");
-    Expect(0, 66856, '\P{^ 	IS_elba}', "");
-    Error('\p{ :=ELYMAIC}');
-    Error('\P{ :=ELYMAIC}');
+    Expect(1, 66855, '\p{ Is_ELBA}', "");
+    Expect(0, 66855, '\p{^ Is_ELBA}', "");
+    Expect(0, 66855, '\P{ Is_ELBA}', "");
+    Expect(1, 66855, '\P{^ Is_ELBA}', "");
+    Expect(0, 66856, '\p{ Is_ELBA}', "");
+    Expect(1, 66856, '\p{^ Is_ELBA}', "");
+    Expect(1, 66856, '\P{ Is_ELBA}', "");
+    Expect(0, 66856, '\P{^ Is_ELBA}', "");
+    Error('\p{-	Elymaic:=}');
+    Error('\P{-	Elymaic:=}');
     Expect(1, 69622, '\p{elymaic}', "");
     Expect(0, 69622, '\p{^elymaic}', "");
     Expect(0, 69622, '\P{elymaic}', "");
@@ -96677,16 +97699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69623, '\p{^elymaic}', "");
     Expect(1, 69623, '\P{elymaic}', "");
     Expect(0, 69623, '\P{^elymaic}', "");
-    Expect(1, 69622, '\p{ elymaic}', "");
-    Expect(0, 69622, '\p{^ elymaic}', "");
-    Expect(0, 69622, '\P{ elymaic}', "");
-    Expect(1, 69622, '\P{^ elymaic}', "");
-    Expect(0, 69623, '\p{ elymaic}', "");
-    Expect(1, 69623, '\p{^ elymaic}', "");
-    Expect(1, 69623, '\P{ elymaic}', "");
-    Expect(0, 69623, '\P{^ elymaic}', "");
-    Error('\p{--is_elymaic:=}');
-    Error('\P{--is_elymaic:=}');
+    Expect(1, 69622, '\p{		elymaic}', "");
+    Expect(0, 69622, '\p{^		elymaic}', "");
+    Expect(0, 69622, '\P{		elymaic}', "");
+    Expect(1, 69622, '\P{^		elymaic}', "");
+    Expect(0, 69623, '\p{		elymaic}', "");
+    Expect(1, 69623, '\p{^		elymaic}', "");
+    Expect(1, 69623, '\P{		elymaic}', "");
+    Expect(0, 69623, '\P{^		elymaic}', "");
+    Error('\p{ :=is_Elymaic}');
+    Error('\P{ :=is_Elymaic}');
     Expect(1, 69622, '\p{iselymaic}', "");
     Expect(0, 69622, '\p{^iselymaic}', "");
     Expect(0, 69622, '\P{iselymaic}', "");
@@ -96695,16 +97717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69623, '\p{^iselymaic}', "");
     Expect(1, 69623, '\P{iselymaic}', "");
     Expect(0, 69623, '\P{^iselymaic}', "");
-    Expect(1, 69622, '\p{-Is_Elymaic}', "");
-    Expect(0, 69622, '\p{^-Is_Elymaic}', "");
-    Expect(0, 69622, '\P{-Is_Elymaic}', "");
-    Expect(1, 69622, '\P{^-Is_Elymaic}', "");
-    Expect(0, 69623, '\p{-Is_Elymaic}', "");
-    Expect(1, 69623, '\p{^-Is_Elymaic}', "");
-    Expect(1, 69623, '\P{-Is_Elymaic}', "");
-    Expect(0, 69623, '\P{^-Is_Elymaic}', "");
-    Error('\p{ -Elym:=}');
-    Error('\P{ -Elym:=}');
+    Expect(1, 69622, '\p{	_is_elymaic}', "");
+    Expect(0, 69622, '\p{^	_is_elymaic}', "");
+    Expect(0, 69622, '\P{	_is_elymaic}', "");
+    Expect(1, 69622, '\P{^	_is_elymaic}', "");
+    Expect(0, 69623, '\p{	_is_elymaic}', "");
+    Expect(1, 69623, '\p{^	_is_elymaic}', "");
+    Expect(1, 69623, '\P{	_is_elymaic}', "");
+    Expect(0, 69623, '\P{^	_is_elymaic}', "");
+    Error('\p{_-ELYM/a/}');
+    Error('\P{_-ELYM/a/}');
     Expect(1, 69622, '\p{elym}', "");
     Expect(0, 69622, '\p{^elym}', "");
     Expect(0, 69622, '\P{elym}', "");
@@ -96713,16 +97735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69623, '\p{^elym}', "");
     Expect(1, 69623, '\P{elym}', "");
     Expect(0, 69623, '\P{^elym}', "");
-    Expect(1, 69622, '\p{_ELYM}', "");
-    Expect(0, 69622, '\p{^_ELYM}', "");
-    Expect(0, 69622, '\P{_ELYM}', "");
-    Expect(1, 69622, '\P{^_ELYM}', "");
-    Expect(0, 69623, '\p{_ELYM}', "");
-    Expect(1, 69623, '\p{^_ELYM}', "");
-    Expect(1, 69623, '\P{_ELYM}', "");
-    Expect(0, 69623, '\P{^_ELYM}', "");
-    Error('\p{:=-IS_ELYM}');
-    Error('\P{:=-IS_ELYM}');
+    Expect(1, 69622, '\p{--ELYM}', "");
+    Expect(0, 69622, '\p{^--ELYM}', "");
+    Expect(0, 69622, '\P{--ELYM}', "");
+    Expect(1, 69622, '\P{^--ELYM}', "");
+    Expect(0, 69623, '\p{--ELYM}', "");
+    Expect(1, 69623, '\p{^--ELYM}', "");
+    Expect(1, 69623, '\P{--ELYM}', "");
+    Expect(0, 69623, '\P{^--ELYM}', "");
+    Error('\p{:=is_ELYM}');
+    Error('\P{:=is_ELYM}');
     Expect(1, 69622, '\p{iselym}', "");
     Expect(0, 69622, '\p{^iselym}', "");
     Expect(0, 69622, '\P{iselym}', "");
@@ -96731,52 +97753,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69623, '\p{^iselym}', "");
     Expect(1, 69623, '\P{iselym}', "");
     Expect(0, 69623, '\P{^iselym}', "");
-    Expect(1, 69622, '\p{ 	IS_Elym}', "");
-    Expect(0, 69622, '\p{^ 	IS_Elym}', "");
-    Expect(0, 69622, '\P{ 	IS_Elym}', "");
-    Expect(1, 69622, '\P{^ 	IS_Elym}', "");
-    Expect(0, 69623, '\p{ 	IS_Elym}', "");
-    Expect(1, 69623, '\p{^ 	IS_Elym}', "");
-    Expect(1, 69623, '\P{ 	IS_Elym}', "");
-    Expect(0, 69623, '\P{^ 	IS_Elym}', "");
+    Expect(1, 69622, '\p{	 Is_elym}', "");
+    Expect(0, 69622, '\p{^	 Is_elym}', "");
+    Expect(0, 69622, '\P{	 Is_elym}', "");
+    Expect(1, 69622, '\P{^	 Is_elym}', "");
+    Expect(0, 69623, '\p{	 Is_elym}', "");
+    Expect(1, 69623, '\p{^	 Is_elym}', "");
+    Expect(1, 69623, '\P{	 Is_elym}', "");
+    Expect(0, 69623, '\P{^	 Is_elym}', "");
     Error('\p{	/a/Emoji}');
     Error('\P{	/a/Emoji}');
-    Expect(1, 129782, '\p{emoji}', "");
-    Expect(0, 129782, '\p{^emoji}', "");
-    Expect(0, 129782, '\P{emoji}', "");
-    Expect(1, 129782, '\P{^emoji}', "");
-    Expect(0, 129783, '\p{emoji}', "");
-    Expect(1, 129783, '\p{^emoji}', "");
-    Expect(1, 129783, '\P{emoji}', "");
-    Expect(0, 129783, '\P{^emoji}', "");
-    Expect(1, 129782, '\p{--Emoji}', "");
-    Expect(0, 129782, '\p{^--Emoji}', "");
-    Expect(0, 129782, '\P{--Emoji}', "");
-    Expect(1, 129782, '\P{^--Emoji}', "");
-    Expect(0, 129783, '\p{--Emoji}', "");
-    Expect(1, 129783, '\p{^--Emoji}', "");
-    Expect(1, 129783, '\P{--Emoji}', "");
-    Expect(0, 129783, '\P{^--Emoji}', "");
-    Error('\p{_/a/Is_Emoji}');
-    Error('\P{_/a/Is_Emoji}');
-    Expect(1, 129782, '\p{isemoji}', "");
-    Expect(0, 129782, '\p{^isemoji}', "");
-    Expect(0, 129782, '\P{isemoji}', "");
-    Expect(1, 129782, '\P{^isemoji}', "");
-    Expect(0, 129783, '\p{isemoji}', "");
-    Expect(1, 129783, '\p{^isemoji}', "");
-    Expect(1, 129783, '\P{isemoji}', "");
-    Expect(0, 129783, '\P{^isemoji}', "");
-    Expect(1, 129782, '\p{ -Is_Emoji}', "");
-    Expect(0, 129782, '\p{^ -Is_Emoji}', "");
-    Expect(0, 129782, '\P{ -Is_Emoji}', "");
-    Expect(1, 129782, '\P{^ -Is_Emoji}', "");
-    Expect(0, 129783, '\p{ -Is_Emoji}', "");
-    Expect(1, 129783, '\p{^ -Is_Emoji}', "");
-    Expect(1, 129783, '\P{ -Is_Emoji}', "");
-    Expect(0, 129783, '\P{^ -Is_Emoji}', "");
-    Error('\p{_/a/emoji_COMPONENT}');
-    Error('\P{_/a/emoji_COMPONENT}');
+    Expect(1, 129784, '\p{emoji}', "");
+    Expect(0, 129784, '\p{^emoji}', "");
+    Expect(0, 129784, '\P{emoji}', "");
+    Expect(1, 129784, '\P{^emoji}', "");
+    Expect(0, 129785, '\p{emoji}', "");
+    Expect(1, 129785, '\p{^emoji}', "");
+    Expect(1, 129785, '\P{emoji}', "");
+    Expect(0, 129785, '\P{^emoji}', "");
+    Expect(1, 129784, '\p{ EMOJI}', "");
+    Expect(0, 129784, '\p{^ EMOJI}', "");
+    Expect(0, 129784, '\P{ EMOJI}', "");
+    Expect(1, 129784, '\P{^ EMOJI}', "");
+    Expect(0, 129785, '\p{ EMOJI}', "");
+    Expect(1, 129785, '\p{^ EMOJI}', "");
+    Expect(1, 129785, '\P{ EMOJI}', "");
+    Expect(0, 129785, '\P{^ EMOJI}', "");
+    Error('\p{ _is_emoji/a/}');
+    Error('\P{ _is_emoji/a/}');
+    Expect(1, 129784, '\p{isemoji}', "");
+    Expect(0, 129784, '\p{^isemoji}', "");
+    Expect(0, 129784, '\P{isemoji}', "");
+    Expect(1, 129784, '\P{^isemoji}', "");
+    Expect(0, 129785, '\p{isemoji}', "");
+    Expect(1, 129785, '\p{^isemoji}', "");
+    Expect(1, 129785, '\P{isemoji}', "");
+    Expect(0, 129785, '\P{^isemoji}', "");
+    Expect(1, 129784, '\p{	 IS_Emoji}', "");
+    Expect(0, 129784, '\p{^	 IS_Emoji}', "");
+    Expect(0, 129784, '\P{	 IS_Emoji}', "");
+    Expect(1, 129784, '\P{^	 IS_Emoji}', "");
+    Expect(0, 129785, '\p{	 IS_Emoji}', "");
+    Expect(1, 129785, '\p{^	 IS_Emoji}', "");
+    Expect(1, 129785, '\P{	 IS_Emoji}', "");
+    Expect(0, 129785, '\P{^	 IS_Emoji}', "");
+    Error('\p{_emoji_Component:=}');
+    Error('\P{_emoji_Component:=}');
     Expect(1, 917631, '\p{emojicomponent}', "");
     Expect(0, 917631, '\p{^emojicomponent}', "");
     Expect(0, 917631, '\P{emojicomponent}', "");
@@ -96785,16 +97807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^emojicomponent}', "");
     Expect(1, 917632, '\P{emojicomponent}', "");
     Expect(0, 917632, '\P{^emojicomponent}', "");
-    Expect(1, 917631, '\p{_EMOJI_Component}', "");
-    Expect(0, 917631, '\p{^_EMOJI_Component}', "");
-    Expect(0, 917631, '\P{_EMOJI_Component}', "");
-    Expect(1, 917631, '\P{^_EMOJI_Component}', "");
-    Expect(0, 917632, '\p{_EMOJI_Component}', "");
-    Expect(1, 917632, '\p{^_EMOJI_Component}', "");
-    Expect(1, 917632, '\P{_EMOJI_Component}', "");
-    Expect(0, 917632, '\P{^_EMOJI_Component}', "");
-    Error('\p{-is_Emoji_COMPONENT:=}');
-    Error('\P{-is_Emoji_COMPONENT:=}');
+    Expect(1, 917631, '\p{_Emoji_Component}', "");
+    Expect(0, 917631, '\p{^_Emoji_Component}', "");
+    Expect(0, 917631, '\P{_Emoji_Component}', "");
+    Expect(1, 917631, '\P{^_Emoji_Component}', "");
+    Expect(0, 917632, '\p{_Emoji_Component}', "");
+    Expect(1, 917632, '\p{^_Emoji_Component}', "");
+    Expect(1, 917632, '\P{_Emoji_Component}', "");
+    Expect(0, 917632, '\P{^_Emoji_Component}', "");
+    Error('\p{ /a/Is_emoji_component}');
+    Error('\P{ /a/Is_emoji_component}');
     Expect(1, 917631, '\p{isemojicomponent}', "");
     Expect(0, 917631, '\p{^isemojicomponent}', "");
     Expect(0, 917631, '\P{isemojicomponent}', "");
@@ -96803,16 +97825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^isemojicomponent}', "");
     Expect(1, 917632, '\P{isemojicomponent}', "");
     Expect(0, 917632, '\P{^isemojicomponent}', "");
-    Expect(1, 917631, '\p{ -Is_emoji_Component}', "");
-    Expect(0, 917631, '\p{^ -Is_emoji_Component}', "");
-    Expect(0, 917631, '\P{ -Is_emoji_Component}', "");
-    Expect(1, 917631, '\P{^ -Is_emoji_Component}', "");
-    Expect(0, 917632, '\p{ -Is_emoji_Component}', "");
-    Expect(1, 917632, '\p{^ -Is_emoji_Component}', "");
-    Expect(1, 917632, '\P{ -Is_emoji_Component}', "");
-    Expect(0, 917632, '\P{^ -Is_emoji_Component}', "");
-    Error('\p{ EComp/a/}');
-    Error('\P{ EComp/a/}');
+    Expect(1, 917631, '\p{ 	Is_Emoji_Component}', "");
+    Expect(0, 917631, '\p{^ 	Is_Emoji_Component}', "");
+    Expect(0, 917631, '\P{ 	Is_Emoji_Component}', "");
+    Expect(1, 917631, '\P{^ 	Is_Emoji_Component}', "");
+    Expect(0, 917632, '\p{ 	Is_Emoji_Component}', "");
+    Expect(1, 917632, '\p{^ 	Is_Emoji_Component}', "");
+    Expect(1, 917632, '\P{ 	Is_Emoji_Component}', "");
+    Expect(0, 917632, '\P{^ 	Is_Emoji_Component}', "");
+    Error('\p{/a/ECOMP}');
+    Error('\P{/a/ECOMP}');
     Expect(1, 917631, '\p{ecomp}', "");
     Expect(0, 917631, '\p{^ecomp}', "");
     Expect(0, 917631, '\P{ecomp}', "");
@@ -96821,16 +97843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^ecomp}', "");
     Expect(1, 917632, '\P{ecomp}', "");
     Expect(0, 917632, '\P{^ecomp}', "");
-    Expect(1, 917631, '\p{  ECOMP}', "");
-    Expect(0, 917631, '\p{^  ECOMP}', "");
-    Expect(0, 917631, '\P{  ECOMP}', "");
-    Expect(1, 917631, '\P{^  ECOMP}', "");
-    Expect(0, 917632, '\p{  ECOMP}', "");
-    Expect(1, 917632, '\p{^  ECOMP}', "");
-    Expect(1, 917632, '\P{  ECOMP}', "");
-    Expect(0, 917632, '\P{^  ECOMP}', "");
-    Error('\p{_-Is_EComp/a/}');
-    Error('\P{_-Is_EComp/a/}');
+    Expect(1, 917631, '\p{_EComp}', "");
+    Expect(0, 917631, '\p{^_EComp}', "");
+    Expect(0, 917631, '\P{_EComp}', "");
+    Expect(1, 917631, '\P{^_EComp}', "");
+    Expect(0, 917632, '\p{_EComp}', "");
+    Expect(1, 917632, '\p{^_EComp}', "");
+    Expect(1, 917632, '\P{_EComp}', "");
+    Expect(0, 917632, '\P{^_EComp}', "");
+    Error('\p{/a/-Is_EComp}');
+    Error('\P{/a/-Is_EComp}');
     Expect(1, 917631, '\p{isecomp}', "");
     Expect(0, 917631, '\p{^isecomp}', "");
     Expect(0, 917631, '\P{isecomp}', "");
@@ -96839,16 +97861,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^isecomp}', "");
     Expect(1, 917632, '\P{isecomp}', "");
     Expect(0, 917632, '\P{^isecomp}', "");
-    Expect(1, 917631, '\p{		IS_ecomp}', "");
-    Expect(0, 917631, '\p{^		IS_ecomp}', "");
-    Expect(0, 917631, '\P{		IS_ecomp}', "");
-    Expect(1, 917631, '\P{^		IS_ecomp}', "");
-    Expect(0, 917632, '\p{		IS_ecomp}', "");
-    Expect(1, 917632, '\p{^		IS_ecomp}', "");
-    Expect(1, 917632, '\P{		IS_ecomp}', "");
-    Expect(0, 917632, '\P{^		IS_ecomp}', "");
-    Error('\p{:=Emoji_Modifier}');
-    Error('\P{:=Emoji_Modifier}');
+    Expect(1, 917631, '\p{-	Is_ECOMP}', "");
+    Expect(0, 917631, '\p{^-	Is_ECOMP}', "");
+    Expect(0, 917631, '\P{-	Is_ECOMP}', "");
+    Expect(1, 917631, '\P{^-	Is_ECOMP}', "");
+    Expect(0, 917632, '\p{-	Is_ECOMP}', "");
+    Expect(1, 917632, '\p{^-	Is_ECOMP}', "");
+    Expect(1, 917632, '\P{-	Is_ECOMP}', "");
+    Expect(0, 917632, '\P{^-	Is_ECOMP}', "");
+    Error('\p{-Emoji_modifier/a/}');
+    Error('\P{-Emoji_modifier/a/}');
     Expect(1, 127999, '\p{emojimodifier}', "");
     Expect(0, 127999, '\p{^emojimodifier}', "");
     Expect(0, 127999, '\P{emojimodifier}', "");
@@ -96857,16 +97879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^emojimodifier}', "");
     Expect(1, 128000, '\P{emojimodifier}', "");
     Expect(0, 128000, '\P{^emojimodifier}', "");
-    Expect(1, 127999, '\p{_emoji_modifier}', "");
-    Expect(0, 127999, '\p{^_emoji_modifier}', "");
-    Expect(0, 127999, '\P{_emoji_modifier}', "");
-    Expect(1, 127999, '\P{^_emoji_modifier}', "");
-    Expect(0, 128000, '\p{_emoji_modifier}', "");
-    Expect(1, 128000, '\p{^_emoji_modifier}', "");
-    Expect(1, 128000, '\P{_emoji_modifier}', "");
-    Expect(0, 128000, '\P{^_emoji_modifier}', "");
-    Error('\p{	Is_Emoji_Modifier:=}');
-    Error('\P{	Is_Emoji_Modifier:=}');
+    Expect(1, 127999, '\p{_Emoji_Modifier}', "");
+    Expect(0, 127999, '\p{^_Emoji_Modifier}', "");
+    Expect(0, 127999, '\P{_Emoji_Modifier}', "");
+    Expect(1, 127999, '\P{^_Emoji_Modifier}', "");
+    Expect(0, 128000, '\p{_Emoji_Modifier}', "");
+    Expect(1, 128000, '\p{^_Emoji_Modifier}', "");
+    Expect(1, 128000, '\P{_Emoji_Modifier}', "");
+    Expect(0, 128000, '\P{^_Emoji_Modifier}', "");
+    Error('\p{	Is_EMOJI_MODIFIER:=}');
+    Error('\P{	Is_EMOJI_MODIFIER:=}');
     Expect(1, 127999, '\p{isemojimodifier}', "");
     Expect(0, 127999, '\p{^isemojimodifier}', "");
     Expect(0, 127999, '\P{isemojimodifier}', "");
@@ -96875,16 +97897,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^isemojimodifier}', "");
     Expect(1, 128000, '\P{isemojimodifier}', "");
     Expect(0, 128000, '\P{^isemojimodifier}', "");
-    Expect(1, 127999, '\p{_Is_EMOJI_Modifier}', "");
-    Expect(0, 127999, '\p{^_Is_EMOJI_Modifier}', "");
-    Expect(0, 127999, '\P{_Is_EMOJI_Modifier}', "");
-    Expect(1, 127999, '\P{^_Is_EMOJI_Modifier}', "");
-    Expect(0, 128000, '\p{_Is_EMOJI_Modifier}', "");
-    Expect(1, 128000, '\p{^_Is_EMOJI_Modifier}', "");
-    Expect(1, 128000, '\P{_Is_EMOJI_Modifier}', "");
-    Expect(0, 128000, '\P{^_Is_EMOJI_Modifier}', "");
-    Error('\p{:=EMOD}');
-    Error('\P{:=EMOD}');
+    Expect(1, 127999, '\p{_IS_emoji_modifier}', "");
+    Expect(0, 127999, '\p{^_IS_emoji_modifier}', "");
+    Expect(0, 127999, '\P{_IS_emoji_modifier}', "");
+    Expect(1, 127999, '\P{^_IS_emoji_modifier}', "");
+    Expect(0, 128000, '\p{_IS_emoji_modifier}', "");
+    Expect(1, 128000, '\p{^_IS_emoji_modifier}', "");
+    Expect(1, 128000, '\P{_IS_emoji_modifier}', "");
+    Expect(0, 128000, '\P{^_IS_emoji_modifier}', "");
+    Error('\p{ /a/EMod}');
+    Error('\P{ /a/EMod}');
     Expect(1, 127999, '\p{emod}', "");
     Expect(0, 127999, '\p{^emod}', "");
     Expect(0, 127999, '\P{emod}', "");
@@ -96893,16 +97915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^emod}', "");
     Expect(1, 128000, '\P{emod}', "");
     Expect(0, 128000, '\P{^emod}', "");
-    Expect(1, 127999, '\p{- emod}', "");
-    Expect(0, 127999, '\p{^- emod}', "");
-    Expect(0, 127999, '\P{- emod}', "");
-    Expect(1, 127999, '\P{^- emod}', "");
-    Expect(0, 128000, '\p{- emod}', "");
-    Expect(1, 128000, '\p{^- emod}', "");
-    Expect(1, 128000, '\P{- emod}', "");
-    Expect(0, 128000, '\P{^- emod}', "");
-    Error('\p{:=	 Is_EMOD}');
-    Error('\P{:=	 Is_EMOD}');
+    Expect(1, 127999, '\p{ 	EMOD}', "");
+    Expect(0, 127999, '\p{^ 	EMOD}', "");
+    Expect(0, 127999, '\P{ 	EMOD}', "");
+    Expect(1, 127999, '\P{^ 	EMOD}', "");
+    Expect(0, 128000, '\p{ 	EMOD}', "");
+    Expect(1, 128000, '\p{^ 	EMOD}', "");
+    Expect(1, 128000, '\P{ 	EMOD}', "");
+    Expect(0, 128000, '\P{^ 	EMOD}', "");
+    Error('\p{:=- IS_EMOD}');
+    Error('\P{:=- IS_EMOD}');
     Expect(1, 127999, '\p{isemod}', "");
     Expect(0, 127999, '\p{^isemod}', "");
     Expect(0, 127999, '\P{isemod}', "");
@@ -96911,160 +97933,160 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^isemod}', "");
     Expect(1, 128000, '\P{isemod}', "");
     Expect(0, 128000, '\P{^isemod}', "");
-    Expect(1, 127999, '\p{--Is_EMod}', "");
-    Expect(0, 127999, '\p{^--Is_EMod}', "");
-    Expect(0, 127999, '\P{--Is_EMod}', "");
-    Expect(1, 127999, '\P{^--Is_EMod}', "");
-    Expect(0, 128000, '\p{--Is_EMod}', "");
-    Expect(1, 128000, '\p{^--Is_EMod}', "");
-    Expect(1, 128000, '\P{--Is_EMod}', "");
-    Expect(0, 128000, '\P{^--Is_EMod}', "");
-    Error('\p{:=	Emoji_Modifier_BASE}');
-    Error('\P{:=	Emoji_Modifier_BASE}');
-    Expect(1, 129782, '\p{emojimodifierbase}', "");
-    Expect(0, 129782, '\p{^emojimodifierbase}', "");
-    Expect(0, 129782, '\P{emojimodifierbase}', "");
-    Expect(1, 129782, '\P{^emojimodifierbase}', "");
-    Expect(0, 129783, '\p{emojimodifierbase}', "");
-    Expect(1, 129783, '\p{^emojimodifierbase}', "");
-    Expect(1, 129783, '\P{emojimodifierbase}', "");
-    Expect(0, 129783, '\P{^emojimodifierbase}', "");
-    Expect(1, 129782, '\p{Emoji_Modifier_BASE}', "");
-    Expect(0, 129782, '\p{^Emoji_Modifier_BASE}', "");
-    Expect(0, 129782, '\P{Emoji_Modifier_BASE}', "");
-    Expect(1, 129782, '\P{^Emoji_Modifier_BASE}', "");
-    Expect(0, 129783, '\p{Emoji_Modifier_BASE}', "");
-    Expect(1, 129783, '\p{^Emoji_Modifier_BASE}', "");
-    Expect(1, 129783, '\P{Emoji_Modifier_BASE}', "");
-    Expect(0, 129783, '\P{^Emoji_Modifier_BASE}', "");
-    Error('\p{-/a/Is_EMOJI_modifier_Base}');
-    Error('\P{-/a/Is_EMOJI_modifier_Base}');
-    Expect(1, 129782, '\p{isemojimodifierbase}', "");
-    Expect(0, 129782, '\p{^isemojimodifierbase}', "");
-    Expect(0, 129782, '\P{isemojimodifierbase}', "");
-    Expect(1, 129782, '\P{^isemojimodifierbase}', "");
-    Expect(0, 129783, '\p{isemojimodifierbase}', "");
-    Expect(1, 129783, '\p{^isemojimodifierbase}', "");
-    Expect(1, 129783, '\P{isemojimodifierbase}', "");
-    Expect(0, 129783, '\P{^isemojimodifierbase}', "");
-    Expect(1, 129782, '\p{_Is_Emoji_Modifier_Base}', "");
-    Expect(0, 129782, '\p{^_Is_Emoji_Modifier_Base}', "");
-    Expect(0, 129782, '\P{_Is_Emoji_Modifier_Base}', "");
-    Expect(1, 129782, '\P{^_Is_Emoji_Modifier_Base}', "");
-    Expect(0, 129783, '\p{_Is_Emoji_Modifier_Base}', "");
-    Expect(1, 129783, '\p{^_Is_Emoji_Modifier_Base}', "");
-    Expect(1, 129783, '\P{_Is_Emoji_Modifier_Base}', "");
-    Expect(0, 129783, '\P{^_Is_Emoji_Modifier_Base}', "");
-    Error('\p{_EBase:=}');
-    Error('\P{_EBase:=}');
-    Expect(1, 129782, '\p{ebase}', "");
-    Expect(0, 129782, '\p{^ebase}', "");
-    Expect(0, 129782, '\P{ebase}', "");
-    Expect(1, 129782, '\P{^ebase}', "");
-    Expect(0, 129783, '\p{ebase}', "");
-    Expect(1, 129783, '\p{^ebase}', "");
-    Expect(1, 129783, '\P{ebase}', "");
-    Expect(0, 129783, '\P{^ebase}', "");
-    Expect(1, 129782, '\p{-EBase}', "");
-    Expect(0, 129782, '\p{^-EBase}', "");
-    Expect(0, 129782, '\P{-EBase}', "");
-    Expect(1, 129782, '\P{^-EBase}', "");
-    Expect(0, 129783, '\p{-EBase}', "");
-    Expect(1, 129783, '\p{^-EBase}', "");
-    Expect(1, 129783, '\P{-EBase}', "");
-    Expect(0, 129783, '\P{^-EBase}', "");
-    Error('\p{	/a/Is_EBASE}');
-    Error('\P{	/a/Is_EBASE}');
-    Expect(1, 129782, '\p{isebase}', "");
-    Expect(0, 129782, '\p{^isebase}', "");
-    Expect(0, 129782, '\P{isebase}', "");
-    Expect(1, 129782, '\P{^isebase}', "");
-    Expect(0, 129783, '\p{isebase}', "");
-    Expect(1, 129783, '\p{^isebase}', "");
-    Expect(1, 129783, '\P{isebase}', "");
-    Expect(0, 129783, '\P{^isebase}', "");
-    Expect(1, 129782, '\p{ IS_EBASE}', "");
-    Expect(0, 129782, '\p{^ IS_EBASE}', "");
-    Expect(0, 129782, '\P{ IS_EBASE}', "");
-    Expect(1, 129782, '\P{^ IS_EBASE}', "");
-    Expect(0, 129783, '\p{ IS_EBASE}', "");
-    Expect(1, 129783, '\p{^ IS_EBASE}', "");
-    Expect(1, 129783, '\P{ IS_EBASE}', "");
-    Expect(0, 129783, '\P{^ IS_EBASE}', "");
-    Error('\p{/a/	 Emoji_Presentation}');
-    Error('\P{/a/	 Emoji_Presentation}');
-    Expect(1, 129782, '\p{emojipresentation}', "");
-    Expect(0, 129782, '\p{^emojipresentation}', "");
-    Expect(0, 129782, '\P{emojipresentation}', "");
-    Expect(1, 129782, '\P{^emojipresentation}', "");
-    Expect(0, 129783, '\p{emojipresentation}', "");
-    Expect(1, 129783, '\p{^emojipresentation}', "");
-    Expect(1, 129783, '\P{emojipresentation}', "");
-    Expect(0, 129783, '\P{^emojipresentation}', "");
-    Expect(1, 129782, '\p{__emoji_presentation}', "");
-    Expect(0, 129782, '\p{^__emoji_presentation}', "");
-    Expect(0, 129782, '\P{__emoji_presentation}', "");
-    Expect(1, 129782, '\P{^__emoji_presentation}', "");
-    Expect(0, 129783, '\p{__emoji_presentation}', "");
-    Expect(1, 129783, '\p{^__emoji_presentation}', "");
-    Expect(1, 129783, '\P{__emoji_presentation}', "");
-    Expect(0, 129783, '\P{^__emoji_presentation}', "");
-    Error('\p{-/a/IS_emoji_PRESENTATION}');
-    Error('\P{-/a/IS_emoji_PRESENTATION}');
-    Expect(1, 129782, '\p{isemojipresentation}', "");
-    Expect(0, 129782, '\p{^isemojipresentation}', "");
-    Expect(0, 129782, '\P{isemojipresentation}', "");
-    Expect(1, 129782, '\P{^isemojipresentation}', "");
-    Expect(0, 129783, '\p{isemojipresentation}', "");
-    Expect(1, 129783, '\p{^isemojipresentation}', "");
-    Expect(1, 129783, '\P{isemojipresentation}', "");
-    Expect(0, 129783, '\P{^isemojipresentation}', "");
-    Expect(1, 129782, '\p{-	is_Emoji_Presentation}', "");
-    Expect(0, 129782, '\p{^-	is_Emoji_Presentation}', "");
-    Expect(0, 129782, '\P{-	is_Emoji_Presentation}', "");
-    Expect(1, 129782, '\P{^-	is_Emoji_Presentation}', "");
-    Expect(0, 129783, '\p{-	is_Emoji_Presentation}', "");
-    Expect(1, 129783, '\p{^-	is_Emoji_Presentation}', "");
-    Expect(1, 129783, '\P{-	is_Emoji_Presentation}', "");
-    Expect(0, 129783, '\P{^-	is_Emoji_Presentation}', "");
-    Error('\p{-:=EPres}');
-    Error('\P{-:=EPres}');
-    Expect(1, 129782, '\p{epres}', "");
-    Expect(0, 129782, '\p{^epres}', "");
-    Expect(0, 129782, '\P{epres}', "");
-    Expect(1, 129782, '\P{^epres}', "");
-    Expect(0, 129783, '\p{epres}', "");
-    Expect(1, 129783, '\p{^epres}', "");
-    Expect(1, 129783, '\P{epres}', "");
-    Expect(0, 129783, '\P{^epres}', "");
-    Expect(1, 129782, '\p{ -EPres}', "");
-    Expect(0, 129782, '\p{^ -EPres}', "");
-    Expect(0, 129782, '\P{ -EPres}', "");
-    Expect(1, 129782, '\P{^ -EPres}', "");
-    Expect(0, 129783, '\p{ -EPres}', "");
-    Expect(1, 129783, '\p{^ -EPres}', "");
-    Expect(1, 129783, '\P{ -EPres}', "");
-    Expect(0, 129783, '\P{^ -EPres}', "");
-    Error('\p{/a/-is_EPRES}');
-    Error('\P{/a/-is_EPRES}');
-    Expect(1, 129782, '\p{isepres}', "");
-    Expect(0, 129782, '\p{^isepres}', "");
-    Expect(0, 129782, '\P{isepres}', "");
-    Expect(1, 129782, '\P{^isepres}', "");
-    Expect(0, 129783, '\p{isepres}', "");
-    Expect(1, 129783, '\p{^isepres}', "");
-    Expect(1, 129783, '\P{isepres}', "");
-    Expect(0, 129783, '\P{^isepres}', "");
-    Expect(1, 129782, '\p{--IS_EPRES}', "");
-    Expect(0, 129782, '\p{^--IS_EPRES}', "");
-    Expect(0, 129782, '\P{--IS_EPRES}', "");
-    Expect(1, 129782, '\P{^--IS_EPRES}', "");
-    Expect(0, 129783, '\p{--IS_EPRES}', "");
-    Expect(1, 129783, '\p{^--IS_EPRES}', "");
-    Expect(1, 129783, '\P{--IS_EPRES}', "");
-    Expect(0, 129783, '\P{^--IS_EPRES}', "");
-    Error('\p{:=_Emoticons}');
-    Error('\P{:=_Emoticons}');
+    Expect(1, 127999, '\p{-	is_EMod}', "");
+    Expect(0, 127999, '\p{^-	is_EMod}', "");
+    Expect(0, 127999, '\P{-	is_EMod}', "");
+    Expect(1, 127999, '\P{^-	is_EMod}', "");
+    Expect(0, 128000, '\p{-	is_EMod}', "");
+    Expect(1, 128000, '\p{^-	is_EMod}', "");
+    Expect(1, 128000, '\P{-	is_EMod}', "");
+    Expect(0, 128000, '\P{^-	is_EMod}', "");
+    Error('\p{ :=Emoji_MODIFIER_Base}');
+    Error('\P{ :=Emoji_MODIFIER_Base}');
+    Expect(1, 129784, '\p{emojimodifierbase}', "");
+    Expect(0, 129784, '\p{^emojimodifierbase}', "");
+    Expect(0, 129784, '\P{emojimodifierbase}', "");
+    Expect(1, 129784, '\P{^emojimodifierbase}', "");
+    Expect(0, 129785, '\p{emojimodifierbase}', "");
+    Expect(1, 129785, '\p{^emojimodifierbase}', "");
+    Expect(1, 129785, '\P{emojimodifierbase}', "");
+    Expect(0, 129785, '\P{^emojimodifierbase}', "");
+    Expect(1, 129784, '\p{ _Emoji_MODIFIER_BASE}', "");
+    Expect(0, 129784, '\p{^ _Emoji_MODIFIER_BASE}', "");
+    Expect(0, 129784, '\P{ _Emoji_MODIFIER_BASE}', "");
+    Expect(1, 129784, '\P{^ _Emoji_MODIFIER_BASE}', "");
+    Expect(0, 129785, '\p{ _Emoji_MODIFIER_BASE}', "");
+    Expect(1, 129785, '\p{^ _Emoji_MODIFIER_BASE}', "");
+    Expect(1, 129785, '\P{ _Emoji_MODIFIER_BASE}', "");
+    Expect(0, 129785, '\P{^ _Emoji_MODIFIER_BASE}', "");
+    Error('\p{ is_Emoji_Modifier_BASE/a/}');
+    Error('\P{ is_Emoji_Modifier_BASE/a/}');
+    Expect(1, 129784, '\p{isemojimodifierbase}', "");
+    Expect(0, 129784, '\p{^isemojimodifierbase}', "");
+    Expect(0, 129784, '\P{isemojimodifierbase}', "");
+    Expect(1, 129784, '\P{^isemojimodifierbase}', "");
+    Expect(0, 129785, '\p{isemojimodifierbase}', "");
+    Expect(1, 129785, '\p{^isemojimodifierbase}', "");
+    Expect(1, 129785, '\P{isemojimodifierbase}', "");
+    Expect(0, 129785, '\P{^isemojimodifierbase}', "");
+    Expect(1, 129784, '\p{	-is_EMOJI_modifier_BASE}', "");
+    Expect(0, 129784, '\p{^	-is_EMOJI_modifier_BASE}', "");
+    Expect(0, 129784, '\P{	-is_EMOJI_modifier_BASE}', "");
+    Expect(1, 129784, '\P{^	-is_EMOJI_modifier_BASE}', "");
+    Expect(0, 129785, '\p{	-is_EMOJI_modifier_BASE}', "");
+    Expect(1, 129785, '\p{^	-is_EMOJI_modifier_BASE}', "");
+    Expect(1, 129785, '\P{	-is_EMOJI_modifier_BASE}', "");
+    Expect(0, 129785, '\P{^	-is_EMOJI_modifier_BASE}', "");
+    Error('\p{ /a/ebase}');
+    Error('\P{ /a/ebase}');
+    Expect(1, 129784, '\p{ebase}', "");
+    Expect(0, 129784, '\p{^ebase}', "");
+    Expect(0, 129784, '\P{ebase}', "");
+    Expect(1, 129784, '\P{^ebase}', "");
+    Expect(0, 129785, '\p{ebase}', "");
+    Expect(1, 129785, '\p{^ebase}', "");
+    Expect(1, 129785, '\P{ebase}', "");
+    Expect(0, 129785, '\P{^ebase}', "");
+    Expect(1, 129784, '\p{_	ebase}', "");
+    Expect(0, 129784, '\p{^_	ebase}', "");
+    Expect(0, 129784, '\P{_	ebase}', "");
+    Expect(1, 129784, '\P{^_	ebase}', "");
+    Expect(0, 129785, '\p{_	ebase}', "");
+    Expect(1, 129785, '\p{^_	ebase}', "");
+    Expect(1, 129785, '\P{_	ebase}', "");
+    Expect(0, 129785, '\P{^_	ebase}', "");
+    Error('\p{ :=Is_EBase}');
+    Error('\P{ :=Is_EBase}');
+    Expect(1, 129784, '\p{isebase}', "");
+    Expect(0, 129784, '\p{^isebase}', "");
+    Expect(0, 129784, '\P{isebase}', "");
+    Expect(1, 129784, '\P{^isebase}', "");
+    Expect(0, 129785, '\p{isebase}', "");
+    Expect(1, 129785, '\p{^isebase}', "");
+    Expect(1, 129785, '\P{isebase}', "");
+    Expect(0, 129785, '\P{^isebase}', "");
+    Expect(1, 129784, '\p{  IS_EBASE}', "");
+    Expect(0, 129784, '\p{^  IS_EBASE}', "");
+    Expect(0, 129784, '\P{  IS_EBASE}', "");
+    Expect(1, 129784, '\P{^  IS_EBASE}', "");
+    Expect(0, 129785, '\p{  IS_EBASE}', "");
+    Expect(1, 129785, '\p{^  IS_EBASE}', "");
+    Expect(1, 129785, '\P{  IS_EBASE}', "");
+    Expect(0, 129785, '\P{^  IS_EBASE}', "");
+    Error('\p{/a/-emoji_PRESENTATION}');
+    Error('\P{/a/-emoji_PRESENTATION}');
+    Expect(1, 129784, '\p{emojipresentation}', "");
+    Expect(0, 129784, '\p{^emojipresentation}', "");
+    Expect(0, 129784, '\P{emojipresentation}', "");
+    Expect(1, 129784, '\P{^emojipresentation}', "");
+    Expect(0, 129785, '\p{emojipresentation}', "");
+    Expect(1, 129785, '\p{^emojipresentation}', "");
+    Expect(1, 129785, '\P{emojipresentation}', "");
+    Expect(0, 129785, '\P{^emojipresentation}', "");
+    Expect(1, 129784, '\p{-Emoji_Presentation}', "");
+    Expect(0, 129784, '\p{^-Emoji_Presentation}', "");
+    Expect(0, 129784, '\P{-Emoji_Presentation}', "");
+    Expect(1, 129784, '\P{^-Emoji_Presentation}', "");
+    Expect(0, 129785, '\p{-Emoji_Presentation}', "");
+    Expect(1, 129785, '\p{^-Emoji_Presentation}', "");
+    Expect(1, 129785, '\P{-Emoji_Presentation}', "");
+    Expect(0, 129785, '\P{^-Emoji_Presentation}', "");
+    Error('\p{:=_	Is_emoji_Presentation}');
+    Error('\P{:=_	Is_emoji_Presentation}');
+    Expect(1, 129784, '\p{isemojipresentation}', "");
+    Expect(0, 129784, '\p{^isemojipresentation}', "");
+    Expect(0, 129784, '\P{isemojipresentation}', "");
+    Expect(1, 129784, '\P{^isemojipresentation}', "");
+    Expect(0, 129785, '\p{isemojipresentation}', "");
+    Expect(1, 129785, '\p{^isemojipresentation}', "");
+    Expect(1, 129785, '\P{isemojipresentation}', "");
+    Expect(0, 129785, '\P{^isemojipresentation}', "");
+    Expect(1, 129784, '\p{--IS_emoji_presentation}', "");
+    Expect(0, 129784, '\p{^--IS_emoji_presentation}', "");
+    Expect(0, 129784, '\P{--IS_emoji_presentation}', "");
+    Expect(1, 129784, '\P{^--IS_emoji_presentation}', "");
+    Expect(0, 129785, '\p{--IS_emoji_presentation}', "");
+    Expect(1, 129785, '\p{^--IS_emoji_presentation}', "");
+    Expect(1, 129785, '\P{--IS_emoji_presentation}', "");
+    Expect(0, 129785, '\P{^--IS_emoji_presentation}', "");
+    Error('\p{--epres/a/}');
+    Error('\P{--epres/a/}');
+    Expect(1, 129784, '\p{epres}', "");
+    Expect(0, 129784, '\p{^epres}', "");
+    Expect(0, 129784, '\P{epres}', "");
+    Expect(1, 129784, '\P{^epres}', "");
+    Expect(0, 129785, '\p{epres}', "");
+    Expect(1, 129785, '\p{^epres}', "");
+    Expect(1, 129785, '\P{epres}', "");
+    Expect(0, 129785, '\P{^epres}', "");
+    Expect(1, 129784, '\p{	EPres}', "");
+    Expect(0, 129784, '\p{^	EPres}', "");
+    Expect(0, 129784, '\P{	EPres}', "");
+    Expect(1, 129784, '\P{^	EPres}', "");
+    Expect(0, 129785, '\p{	EPres}', "");
+    Expect(1, 129785, '\p{^	EPres}', "");
+    Expect(1, 129785, '\P{	EPres}', "");
+    Expect(0, 129785, '\P{^	EPres}', "");
+    Error('\p{/a/-_is_epres}');
+    Error('\P{/a/-_is_epres}');
+    Expect(1, 129784, '\p{isepres}', "");
+    Expect(0, 129784, '\p{^isepres}', "");
+    Expect(0, 129784, '\P{isepres}', "");
+    Expect(1, 129784, '\P{^isepres}', "");
+    Expect(0, 129785, '\p{isepres}', "");
+    Expect(1, 129785, '\p{^isepres}', "");
+    Expect(1, 129785, '\P{isepres}', "");
+    Expect(0, 129785, '\P{^isepres}', "");
+    Expect(1, 129784, '\p{Is_EPres}', "");
+    Expect(0, 129784, '\p{^Is_EPres}', "");
+    Expect(0, 129784, '\P{Is_EPres}', "");
+    Expect(1, 129784, '\P{^Is_EPres}', "");
+    Expect(0, 129785, '\p{Is_EPres}', "");
+    Expect(1, 129785, '\p{^Is_EPres}', "");
+    Expect(1, 129785, '\P{Is_EPres}', "");
+    Expect(0, 129785, '\P{^Is_EPres}', "");
+    Error('\p{/a/--Emoticons}');
+    Error('\P{/a/--Emoticons}');
     Expect(1, 128591, '\p{emoticons}', "");
     Expect(0, 128591, '\p{^emoticons}', "");
     Expect(0, 128591, '\P{emoticons}', "");
@@ -97073,16 +98095,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128592, '\p{^emoticons}', "");
     Expect(1, 128592, '\P{emoticons}', "");
     Expect(0, 128592, '\P{^emoticons}', "");
-    Expect(1, 128591, '\p{ 	Emoticons}', "");
-    Expect(0, 128591, '\p{^ 	Emoticons}', "");
-    Expect(0, 128591, '\P{ 	Emoticons}', "");
-    Expect(1, 128591, '\P{^ 	Emoticons}', "");
-    Expect(0, 128592, '\p{ 	Emoticons}', "");
-    Expect(1, 128592, '\p{^ 	Emoticons}', "");
-    Expect(1, 128592, '\P{ 	Emoticons}', "");
-    Expect(0, 128592, '\P{^ 	Emoticons}', "");
-    Error('\p{	:=is_EMOTICONS}');
-    Error('\P{	:=is_EMOTICONS}');
+    Expect(1, 128591, '\p{-emoticons}', "");
+    Expect(0, 128591, '\p{^-emoticons}', "");
+    Expect(0, 128591, '\P{-emoticons}', "");
+    Expect(1, 128591, '\P{^-emoticons}', "");
+    Expect(0, 128592, '\p{-emoticons}', "");
+    Expect(1, 128592, '\p{^-emoticons}', "");
+    Expect(1, 128592, '\P{-emoticons}', "");
+    Expect(0, 128592, '\P{^-emoticons}', "");
+    Error('\p{- Is_EMOTICONS/a/}');
+    Error('\P{- Is_EMOTICONS/a/}');
     Expect(1, 128591, '\p{isemoticons}', "");
     Expect(0, 128591, '\p{^isemoticons}', "");
     Expect(0, 128591, '\P{isemoticons}', "");
@@ -97091,16 +98113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128592, '\p{^isemoticons}', "");
     Expect(1, 128592, '\P{isemoticons}', "");
     Expect(0, 128592, '\P{^isemoticons}', "");
-    Expect(1, 128591, '\p{-	Is_Emoticons}', "");
-    Expect(0, 128591, '\p{^-	Is_Emoticons}', "");
-    Expect(0, 128591, '\P{-	Is_Emoticons}', "");
-    Expect(1, 128591, '\P{^-	Is_Emoticons}', "");
-    Expect(0, 128592, '\p{-	Is_Emoticons}', "");
-    Expect(1, 128592, '\p{^-	Is_Emoticons}', "");
-    Expect(1, 128592, '\P{-	Is_Emoticons}', "");
-    Expect(0, 128592, '\P{^-	Is_Emoticons}', "");
-    Error('\p{_:=In_Emoticons}');
-    Error('\P{_:=In_Emoticons}');
+    Expect(1, 128591, '\p{--is_Emoticons}', "");
+    Expect(0, 128591, '\p{^--is_Emoticons}', "");
+    Expect(0, 128591, '\P{--is_Emoticons}', "");
+    Expect(1, 128591, '\P{^--is_Emoticons}', "");
+    Expect(0, 128592, '\p{--is_Emoticons}', "");
+    Expect(1, 128592, '\p{^--is_Emoticons}', "");
+    Expect(1, 128592, '\P{--is_Emoticons}', "");
+    Expect(0, 128592, '\P{^--is_Emoticons}', "");
+    Error('\p{:=_	In_EMOTICONS}');
+    Error('\P{:=_	In_EMOTICONS}');
     Expect(1, 128591, '\p{inemoticons}', "");
     Expect(0, 128591, '\p{^inemoticons}', "");
     Expect(0, 128591, '\P{inemoticons}', "");
@@ -97109,16 +98131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128592, '\p{^inemoticons}', "");
     Expect(1, 128592, '\P{inemoticons}', "");
     Expect(0, 128592, '\P{^inemoticons}', "");
-    Expect(1, 128591, '\p{  In_emoticons}', "");
-    Expect(0, 128591, '\p{^  In_emoticons}', "");
-    Expect(0, 128591, '\P{  In_emoticons}', "");
-    Expect(1, 128591, '\P{^  In_emoticons}', "");
-    Expect(0, 128592, '\p{  In_emoticons}', "");
-    Expect(1, 128592, '\p{^  In_emoticons}', "");
-    Expect(1, 128592, '\P{  In_emoticons}', "");
-    Expect(0, 128592, '\P{^  In_emoticons}', "");
-    Error('\p{/a/	ENCLOSED_Alphanumeric_Supplement}');
-    Error('\P{/a/	ENCLOSED_Alphanumeric_Supplement}');
+    Expect(1, 128591, '\p{	in_EMOTICONS}', "");
+    Expect(0, 128591, '\p{^	in_EMOTICONS}', "");
+    Expect(0, 128591, '\P{	in_EMOTICONS}', "");
+    Expect(1, 128591, '\P{^	in_EMOTICONS}', "");
+    Expect(0, 128592, '\p{	in_EMOTICONS}', "");
+    Expect(1, 128592, '\p{^	in_EMOTICONS}', "");
+    Expect(1, 128592, '\P{	in_EMOTICONS}', "");
+    Expect(0, 128592, '\P{^	in_EMOTICONS}', "");
+    Error('\p{_	Enclosed_Alphanumeric_Supplement:=}');
+    Error('\P{_	Enclosed_Alphanumeric_Supplement:=}');
     Expect(1, 127487, '\p{enclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\p{^enclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\P{enclosedalphanumericsupplement}', "");
@@ -97127,16 +98149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^enclosedalphanumericsupplement}', "");
     Expect(1, 127488, '\P{enclosedalphanumericsupplement}', "");
     Expect(0, 127488, '\P{^enclosedalphanumericsupplement}', "");
-    Expect(1, 127487, '\p{__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(0, 127487, '\p{^__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(0, 127487, '\P{__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(1, 127487, '\P{^__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(0, 127488, '\p{__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(1, 127488, '\p{^__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(1, 127488, '\P{__ENCLOSED_Alphanumeric_Supplement}', "");
-    Expect(0, 127488, '\P{^__ENCLOSED_Alphanumeric_Supplement}', "");
-    Error('\p{:=	IS_Enclosed_ALPHANUMERIC_Supplement}');
-    Error('\P{:=	IS_Enclosed_ALPHANUMERIC_Supplement}');
+    Expect(1, 127487, '\p{-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\p{^-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\P{-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(1, 127487, '\P{^-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\p{-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\p{^-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\P{-_Enclosed_Alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\P{^-_Enclosed_Alphanumeric_Supplement}', "");
+    Error('\p{:=_is_enclosed_Alphanumeric_SUPPLEMENT}');
+    Error('\P{:=_is_enclosed_Alphanumeric_SUPPLEMENT}');
     Expect(1, 127487, '\p{isenclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\p{^isenclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\P{isenclosedalphanumericsupplement}', "");
@@ -97145,16 +98167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^isenclosedalphanumericsupplement}', "");
     Expect(1, 127488, '\P{isenclosedalphanumericsupplement}', "");
     Expect(0, 127488, '\P{^isenclosedalphanumericsupplement}', "");
-    Expect(1, 127487, '\p{ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(0, 127487, '\p{^ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(0, 127487, '\P{ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(1, 127487, '\P{^ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(0, 127488, '\p{ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(1, 127488, '\p{^ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(1, 127488, '\P{ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Expect(0, 127488, '\P{^ _is_Enclosed_alphanumeric_SUPPLEMENT}', "");
-    Error('\p{/a/ _IN_Enclosed_ALPHANUMERIC_SUPPLEMENT}');
-    Error('\P{/a/ _IN_Enclosed_ALPHANUMERIC_SUPPLEMENT}');
+    Expect(1, 127487, '\p{ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(0, 127487, '\p{^ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(0, 127487, '\P{ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(1, 127487, '\P{^ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(0, 127488, '\p{ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(1, 127488, '\p{^ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(1, 127488, '\P{ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Expect(0, 127488, '\P{^ 	IS_Enclosed_Alphanumeric_SUPPLEMENT}', "");
+    Error('\p{:= 	IN_Enclosed_alphanumeric_Supplement}');
+    Error('\P{:= 	IN_Enclosed_alphanumeric_Supplement}');
     Expect(1, 127487, '\p{inenclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\p{^inenclosedalphanumericsupplement}', "");
     Expect(0, 127487, '\P{inenclosedalphanumericsupplement}', "");
@@ -97163,16 +98185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^inenclosedalphanumericsupplement}', "");
     Expect(1, 127488, '\P{inenclosedalphanumericsupplement}', "");
     Expect(0, 127488, '\P{^inenclosedalphanumericsupplement}', "");
-    Expect(1, 127487, '\p{_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(0, 127487, '\p{^_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(0, 127487, '\P{_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(1, 127487, '\P{^_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(0, 127488, '\p{_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(1, 127488, '\p{^_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(1, 127488, '\P{_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Expect(0, 127488, '\P{^_-IN_Enclosed_ALPHANUMERIC_Supplement}', "");
-    Error('\p{-	ENCLOSED_alphanum_sup:=}');
-    Error('\P{-	ENCLOSED_alphanum_sup:=}');
+    Expect(1, 127487, '\p{_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\p{^_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(0, 127487, '\P{_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(1, 127487, '\P{^_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\p{_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\p{^_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(1, 127488, '\P{_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Expect(0, 127488, '\P{^_in_ENCLOSED_Alphanumeric_Supplement}', "");
+    Error('\p{-/a/Enclosed_ALPHANUM_SUP}');
+    Error('\P{-/a/Enclosed_ALPHANUM_SUP}');
     Expect(1, 127487, '\p{enclosedalphanumsup}', "");
     Expect(0, 127487, '\p{^enclosedalphanumsup}', "");
     Expect(0, 127487, '\P{enclosedalphanumsup}', "");
@@ -97181,16 +98203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^enclosedalphanumsup}', "");
     Expect(1, 127488, '\P{enclosedalphanumsup}', "");
     Expect(0, 127488, '\P{^enclosedalphanumsup}', "");
-    Expect(1, 127487, '\p{_-ENCLOSED_alphanum_Sup}', "");
-    Expect(0, 127487, '\p{^_-ENCLOSED_alphanum_Sup}', "");
-    Expect(0, 127487, '\P{_-ENCLOSED_alphanum_Sup}', "");
-    Expect(1, 127487, '\P{^_-ENCLOSED_alphanum_Sup}', "");
-    Expect(0, 127488, '\p{_-ENCLOSED_alphanum_Sup}', "");
-    Expect(1, 127488, '\p{^_-ENCLOSED_alphanum_Sup}', "");
-    Expect(1, 127488, '\P{_-ENCLOSED_alphanum_Sup}', "");
-    Expect(0, 127488, '\P{^_-ENCLOSED_alphanum_Sup}', "");
-    Error('\p{--Is_Enclosed_Alphanum_sup:=}');
-    Error('\P{--Is_Enclosed_Alphanum_sup:=}');
+    Expect(1, 127487, '\p{ -enclosed_Alphanum_sup}', "");
+    Expect(0, 127487, '\p{^ -enclosed_Alphanum_sup}', "");
+    Expect(0, 127487, '\P{ -enclosed_Alphanum_sup}', "");
+    Expect(1, 127487, '\P{^ -enclosed_Alphanum_sup}', "");
+    Expect(0, 127488, '\p{ -enclosed_Alphanum_sup}', "");
+    Expect(1, 127488, '\p{^ -enclosed_Alphanum_sup}', "");
+    Expect(1, 127488, '\P{ -enclosed_Alphanum_sup}', "");
+    Expect(0, 127488, '\P{^ -enclosed_Alphanum_sup}', "");
+    Error('\p{ :=IS_Enclosed_Alphanum_SUP}');
+    Error('\P{ :=IS_Enclosed_Alphanum_SUP}');
     Expect(1, 127487, '\p{isenclosedalphanumsup}', "");
     Expect(0, 127487, '\p{^isenclosedalphanumsup}', "");
     Expect(0, 127487, '\P{isenclosedalphanumsup}', "");
@@ -97199,16 +98221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^isenclosedalphanumsup}', "");
     Expect(1, 127488, '\P{isenclosedalphanumsup}', "");
     Expect(0, 127488, '\P{^isenclosedalphanumsup}', "");
-    Expect(1, 127487, '\p{_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(0, 127487, '\p{^_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(0, 127487, '\P{_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(1, 127487, '\P{^_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(0, 127488, '\p{_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(1, 127488, '\p{^_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(1, 127488, '\P{_	IS_Enclosed_Alphanum_sup}', "");
-    Expect(0, 127488, '\P{^_	IS_Enclosed_Alphanum_sup}', "");
-    Error('\p{-In_ENCLOSED_Alphanum_Sup/a/}');
-    Error('\P{-In_ENCLOSED_Alphanum_Sup/a/}');
+    Expect(1, 127487, '\p{Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(0, 127487, '\p{^Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(0, 127487, '\P{Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(1, 127487, '\P{^Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(0, 127488, '\p{Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(1, 127488, '\p{^Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(1, 127488, '\P{Is_enclosed_ALPHANUM_Sup}', "");
+    Expect(0, 127488, '\P{^Is_enclosed_ALPHANUM_Sup}', "");
+    Error('\p{:=In_ENCLOSED_Alphanum_sup}');
+    Error('\P{:=In_ENCLOSED_Alphanum_sup}');
     Expect(1, 127487, '\p{inenclosedalphanumsup}', "");
     Expect(0, 127487, '\p{^inenclosedalphanumsup}', "");
     Expect(0, 127487, '\P{inenclosedalphanumsup}', "");
@@ -97217,16 +98239,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^inenclosedalphanumsup}', "");
     Expect(1, 127488, '\P{inenclosedalphanumsup}', "");
     Expect(0, 127488, '\P{^inenclosedalphanumsup}', "");
-    Expect(1, 127487, '\p{_	In_Enclosed_alphanum_Sup}', "");
-    Expect(0, 127487, '\p{^_	In_Enclosed_alphanum_Sup}', "");
-    Expect(0, 127487, '\P{_	In_Enclosed_alphanum_Sup}', "");
-    Expect(1, 127487, '\P{^_	In_Enclosed_alphanum_Sup}', "");
-    Expect(0, 127488, '\p{_	In_Enclosed_alphanum_Sup}', "");
-    Expect(1, 127488, '\p{^_	In_Enclosed_alphanum_Sup}', "");
-    Expect(1, 127488, '\P{_	In_Enclosed_alphanum_Sup}', "");
-    Expect(0, 127488, '\P{^_	In_Enclosed_alphanum_Sup}', "");
-    Error('\p{  Enclosed_alphanumerics:=}');
-    Error('\P{  Enclosed_alphanumerics:=}');
+    Expect(1, 127487, '\p{-In_Enclosed_Alphanum_Sup}', "");
+    Expect(0, 127487, '\p{^-In_Enclosed_Alphanum_Sup}', "");
+    Expect(0, 127487, '\P{-In_Enclosed_Alphanum_Sup}', "");
+    Expect(1, 127487, '\P{^-In_Enclosed_Alphanum_Sup}', "");
+    Expect(0, 127488, '\p{-In_Enclosed_Alphanum_Sup}', "");
+    Expect(1, 127488, '\p{^-In_Enclosed_Alphanum_Sup}', "");
+    Expect(1, 127488, '\P{-In_Enclosed_Alphanum_Sup}', "");
+    Expect(0, 127488, '\P{^-In_Enclosed_Alphanum_Sup}', "");
+    Error('\p{	/a/enclosed_Alphanumerics}');
+    Error('\P{	/a/enclosed_Alphanumerics}');
     Expect(1, 9471, '\p{enclosedalphanumerics}', "");
     Expect(0, 9471, '\p{^enclosedalphanumerics}', "");
     Expect(0, 9471, '\P{enclosedalphanumerics}', "");
@@ -97235,16 +98257,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9472, '\p{^enclosedalphanumerics}', "");
     Expect(1, 9472, '\P{enclosedalphanumerics}', "");
     Expect(0, 9472, '\P{^enclosedalphanumerics}', "");
-    Expect(1, 9471, '\p{_-Enclosed_Alphanumerics}', "");
-    Expect(0, 9471, '\p{^_-Enclosed_Alphanumerics}', "");
-    Expect(0, 9471, '\P{_-Enclosed_Alphanumerics}', "");
-    Expect(1, 9471, '\P{^_-Enclosed_Alphanumerics}', "");
-    Expect(0, 9472, '\p{_-Enclosed_Alphanumerics}', "");
-    Expect(1, 9472, '\p{^_-Enclosed_Alphanumerics}', "");
-    Expect(1, 9472, '\P{_-Enclosed_Alphanumerics}', "");
-    Expect(0, 9472, '\P{^_-Enclosed_Alphanumerics}', "");
-    Error('\p{ Is_ENCLOSED_Alphanumerics/a/}');
-    Error('\P{ Is_ENCLOSED_Alphanumerics/a/}');
+    Expect(1, 9471, '\p{-_ENCLOSED_alphanumerics}', "");
+    Expect(0, 9471, '\p{^-_ENCLOSED_alphanumerics}', "");
+    Expect(0, 9471, '\P{-_ENCLOSED_alphanumerics}', "");
+    Expect(1, 9471, '\P{^-_ENCLOSED_alphanumerics}', "");
+    Expect(0, 9472, '\p{-_ENCLOSED_alphanumerics}', "");
+    Expect(1, 9472, '\p{^-_ENCLOSED_alphanumerics}', "");
+    Expect(1, 9472, '\P{-_ENCLOSED_alphanumerics}', "");
+    Expect(0, 9472, '\P{^-_ENCLOSED_alphanumerics}', "");
+    Error('\p{_Is_Enclosed_Alphanumerics:=}');
+    Error('\P{_Is_Enclosed_Alphanumerics:=}');
     Expect(1, 9471, '\p{isenclosedalphanumerics}', "");
     Expect(0, 9471, '\p{^isenclosedalphanumerics}', "");
     Expect(0, 9471, '\P{isenclosedalphanumerics}', "");
@@ -97253,16 +98275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9472, '\p{^isenclosedalphanumerics}', "");
     Expect(1, 9472, '\P{isenclosedalphanumerics}', "");
     Expect(0, 9472, '\P{^isenclosedalphanumerics}', "");
-    Expect(1, 9471, '\p{_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9471, '\p{^_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9471, '\P{_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(1, 9471, '\P{^_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9472, '\p{_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(1, 9472, '\p{^_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(1, 9472, '\P{_IS_Enclosed_ALPHANUMERICS}', "");
-    Expect(0, 9472, '\P{^_IS_Enclosed_ALPHANUMERICS}', "");
-    Error('\p{:=-IN_enclosed_alphanumerics}');
-    Error('\P{:=-IN_enclosed_alphanumerics}');
+    Expect(1, 9471, '\p{-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9471, '\p{^-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9471, '\P{-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(1, 9471, '\P{^-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9472, '\p{-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(1, 9472, '\p{^-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(1, 9472, '\P{-_Is_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9472, '\P{^-_Is_Enclosed_ALPHANUMERICS}', "");
+    Error('\p{/a/_In_ENCLOSED_Alphanumerics}');
+    Error('\P{/a/_In_ENCLOSED_Alphanumerics}');
     Expect(1, 9471, '\p{inenclosedalphanumerics}', "");
     Expect(0, 9471, '\p{^inenclosedalphanumerics}', "");
     Expect(0, 9471, '\P{inenclosedalphanumerics}', "");
@@ -97271,16 +98293,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9472, '\p{^inenclosedalphanumerics}', "");
     Expect(1, 9472, '\P{inenclosedalphanumerics}', "");
     Expect(0, 9472, '\P{^inenclosedalphanumerics}', "");
-    Expect(1, 9471, '\p{__IN_Enclosed_alphanumerics}', "");
-    Expect(0, 9471, '\p{^__IN_Enclosed_alphanumerics}', "");
-    Expect(0, 9471, '\P{__IN_Enclosed_alphanumerics}', "");
-    Expect(1, 9471, '\P{^__IN_Enclosed_alphanumerics}', "");
-    Expect(0, 9472, '\p{__IN_Enclosed_alphanumerics}', "");
-    Expect(1, 9472, '\p{^__IN_Enclosed_alphanumerics}', "");
-    Expect(1, 9472, '\P{__IN_Enclosed_alphanumerics}', "");
-    Expect(0, 9472, '\P{^__IN_Enclosed_alphanumerics}', "");
-    Error('\p{/a/Enclosed_Alphanum}');
-    Error('\P{/a/Enclosed_Alphanum}');
+    Expect(1, 9471, '\p{ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9471, '\p{^ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9471, '\P{ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(1, 9471, '\P{^ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9472, '\p{ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(1, 9472, '\p{^ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(1, 9472, '\P{ 	In_Enclosed_ALPHANUMERICS}', "");
+    Expect(0, 9472, '\P{^ 	In_Enclosed_ALPHANUMERICS}', "");
+    Error('\p{_-enclosed_ALPHANUM:=}');
+    Error('\P{_-enclosed_ALPHANUM:=}');
     Expect(1, 9471, '\p{enclosedalphanum}', "");
     Expect(0, 9471, '\p{^enclosedalphanum}', "");
     Expect(0, 9471, '\P{enclosedalphanum}', "");
@@ -97289,16 +98311,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9472, '\p{^enclosedalphanum}', "");
     Expect(1, 9472, '\P{enclosedalphanum}', "");
     Expect(0, 9472, '\P{^enclosedalphanum}', "");
-    Expect(1, 9471, '\p{_-enclosed_Alphanum}', "");
-    Expect(0, 9471, '\p{^_-enclosed_Alphanum}', "");
-    Expect(0, 9471, '\P{_-enclosed_Alphanum}', "");
-    Expect(1, 9471, '\P{^_-enclosed_Alphanum}', "");
-    Expect(0, 9472, '\p{_-enclosed_Alphanum}', "");
-    Expect(1, 9472, '\p{^_-enclosed_Alphanum}', "");
-    Expect(1, 9472, '\P{_-enclosed_Alphanum}', "");
-    Expect(0, 9472, '\P{^_-enclosed_Alphanum}', "");
-    Error('\p{_:=is_ENCLOSED_Alphanum}');
-    Error('\P{_:=is_ENCLOSED_Alphanum}');
+    Expect(1, 9471, '\p{_-enclosed_alphanum}', "");
+    Expect(0, 9471, '\p{^_-enclosed_alphanum}', "");
+    Expect(0, 9471, '\P{_-enclosed_alphanum}', "");
+    Expect(1, 9471, '\P{^_-enclosed_alphanum}', "");
+    Expect(0, 9472, '\p{_-enclosed_alphanum}', "");
+    Expect(1, 9472, '\p{^_-enclosed_alphanum}', "");
+    Expect(1, 9472, '\P{_-enclosed_alphanum}', "");
+    Expect(0, 9472, '\P{^_-enclosed_alphanum}', "");
+    Error('\p{:=	Is_enclosed_Alphanum}');
+    Error('\P{:=	Is_enclosed_Alphanum}');
     Expect(1, 9471, '\p{isenclosedalphanum}', "");
     Expect(0, 9471, '\p{^isenclosedalphanum}', "");
     Expect(0, 9471, '\P{isenclosedalphanum}', "");
@@ -97307,16 +98329,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9472, '\p{^isenclosedalphanum}', "");
     Expect(1, 9472, '\P{isenclosedalphanum}', "");
     Expect(0, 9472, '\P{^isenclosedalphanum}', "");
-    Expect(1, 9471, '\p{--IS_ENCLOSED_Alphanum}', "");
-    Expect(0, 9471, '\p{^--IS_ENCLOSED_Alphanum}', "");
-    Expect(0, 9471, '\P{--IS_ENCLOSED_Alphanum}', "");
-    Expect(1, 9471, '\P{^--IS_ENCLOSED_Alphanum}', "");
-    Expect(0, 9472, '\p{--IS_ENCLOSED_Alphanum}', "");
-    Expect(1, 9472, '\p{^--IS_ENCLOSED_Alphanum}', "");
-    Expect(1, 9472, '\P{--IS_ENCLOSED_Alphanum}', "");
-    Expect(0, 9472, '\P{^--IS_ENCLOSED_Alphanum}', "");
-    Error('\p{ /a/in_enclosed_Alphanum}');
-    Error('\P{ /a/in_enclosed_Alphanum}');
+    Expect(1, 9471, '\p{Is_ENCLOSED_Alphanum}', "");
+    Expect(0, 9471, '\p{^Is_ENCLOSED_Alphanum}', "");
+    Expect(0, 9471, '\P{Is_ENCLOSED_Alphanum}', "");
+    Expect(1, 9471, '\P{^Is_ENCLOSED_Alphanum}', "");
+    Expect(0, 9472, '\p{Is_ENCLOSED_Alphanum}', "");
+    Expect(1, 9472, '\p{^Is_ENCLOSED_Alphanum}', "");
+    Expect(1, 9472, '\P{Is_ENCLOSED_Alphanum}', "");
+    Expect(0, 9472, '\P{^Is_ENCLOSED_Alphanum}', "");
+    Error('\p{-:=IN_Enclosed_alphanum}');
+    Error('\P{-:=IN_Enclosed_alphanum}');
     Expect(1, 9471, '\p{inenclosedalphanum}', "");
     Expect(0, 9471, '\p{^inenclosedalphanum}', "");
     Expect(0, 9471, '\P{inenclosedalphanum}', "");
@@ -97325,16 +98347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9472, '\p{^inenclosedalphanum}', "");
     Expect(1, 9472, '\P{inenclosedalphanum}', "");
     Expect(0, 9472, '\P{^inenclosedalphanum}', "");
-    Expect(1, 9471, '\p{		In_enclosed_Alphanum}', "");
-    Expect(0, 9471, '\p{^		In_enclosed_Alphanum}', "");
-    Expect(0, 9471, '\P{		In_enclosed_Alphanum}', "");
-    Expect(1, 9471, '\P{^		In_enclosed_Alphanum}', "");
-    Expect(0, 9472, '\p{		In_enclosed_Alphanum}', "");
-    Expect(1, 9472, '\p{^		In_enclosed_Alphanum}', "");
-    Expect(1, 9472, '\P{		In_enclosed_Alphanum}', "");
-    Expect(0, 9472, '\P{^		In_enclosed_Alphanum}', "");
-    Error('\p{:=_ enclosed_CJK_letters_AND_MONTHS}');
-    Error('\P{:=_ enclosed_CJK_letters_AND_MONTHS}');
+    Expect(1, 9471, '\p{	In_enclosed_ALPHANUM}', "");
+    Expect(0, 9471, '\p{^	In_enclosed_ALPHANUM}', "");
+    Expect(0, 9471, '\P{	In_enclosed_ALPHANUM}', "");
+    Expect(1, 9471, '\P{^	In_enclosed_ALPHANUM}', "");
+    Expect(0, 9472, '\p{	In_enclosed_ALPHANUM}', "");
+    Expect(1, 9472, '\p{^	In_enclosed_ALPHANUM}', "");
+    Expect(1, 9472, '\P{	In_enclosed_ALPHANUM}', "");
+    Expect(0, 9472, '\P{^	In_enclosed_ALPHANUM}', "");
+    Error('\p{/a/Enclosed_CJK_Letters_and_months}');
+    Error('\P{/a/Enclosed_CJK_Letters_and_months}');
     Expect(1, 13055, '\p{enclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\p{^enclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\P{enclosedcjklettersandmonths}', "");
@@ -97343,16 +98365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13056, '\p{^enclosedcjklettersandmonths}', "");
     Expect(1, 13056, '\P{enclosedcjklettersandmonths}', "");
     Expect(0, 13056, '\P{^enclosedcjklettersandmonths}', "");
-    Expect(1, 13055, '\p{_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(0, 13055, '\p{^_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(0, 13055, '\P{_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(1, 13055, '\P{^_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(0, 13056, '\p{_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(1, 13056, '\p{^_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(1, 13056, '\P{_ENCLOSED_CJK_Letters_and_months}', "");
-    Expect(0, 13056, '\P{^_ENCLOSED_CJK_Letters_and_months}', "");
-    Error('\p{/a/__is_ENCLOSED_CJK_Letters_AND_months}');
-    Error('\P{/a/__is_ENCLOSED_CJK_Letters_AND_months}');
+    Expect(1, 13055, '\p{__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(0, 13055, '\p{^__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(0, 13055, '\P{__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(1, 13055, '\P{^__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(0, 13056, '\p{__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(1, 13056, '\p{^__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(1, 13056, '\P{__Enclosed_CJK_Letters_And_Months}', "");
+    Expect(0, 13056, '\P{^__Enclosed_CJK_Letters_And_Months}', "");
+    Error('\p{	Is_Enclosed_cjk_Letters_AND_Months/a/}');
+    Error('\P{	Is_Enclosed_cjk_Letters_AND_Months/a/}');
     Expect(1, 13055, '\p{isenclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\p{^isenclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\P{isenclosedcjklettersandmonths}', "");
@@ -97361,16 +98383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13056, '\p{^isenclosedcjklettersandmonths}', "");
     Expect(1, 13056, '\P{isenclosedcjklettersandmonths}', "");
     Expect(0, 13056, '\P{^isenclosedcjklettersandmonths}', "");
-    Expect(1, 13055, '\p{	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(0, 13055, '\p{^	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(0, 13055, '\P{	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(1, 13055, '\P{^	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(0, 13056, '\p{	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(1, 13056, '\p{^	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(1, 13056, '\P{	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Expect(0, 13056, '\P{^	 Is_ENCLOSED_CJK_LETTERS_and_Months}', "");
-    Error('\p{_ In_ENCLOSED_CJK_LETTERS_And_Months:=}');
-    Error('\P{_ In_ENCLOSED_CJK_LETTERS_And_Months:=}');
+    Expect(1, 13055, '\p{__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(0, 13055, '\p{^__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(0, 13055, '\P{__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(1, 13055, '\P{^__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(0, 13056, '\p{__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(1, 13056, '\p{^__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(1, 13056, '\P{__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Expect(0, 13056, '\P{^__IS_enclosed_CJK_Letters_and_MONTHS}', "");
+    Error('\p{	:=In_ENCLOSED_CJK_Letters_And_MONTHS}');
+    Error('\P{	:=In_ENCLOSED_CJK_Letters_And_MONTHS}');
     Expect(1, 13055, '\p{inenclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\p{^inenclosedcjklettersandmonths}', "");
     Expect(0, 13055, '\P{inenclosedcjklettersandmonths}', "");
@@ -97379,16 +98401,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13056, '\p{^inenclosedcjklettersandmonths}', "");
     Expect(1, 13056, '\P{inenclosedcjklettersandmonths}', "");
     Expect(0, 13056, '\P{^inenclosedcjklettersandmonths}', "");
-    Expect(1, 13055, '\p{-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(0, 13055, '\p{^-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(0, 13055, '\P{-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(1, 13055, '\P{^-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(0, 13056, '\p{-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(1, 13056, '\p{^-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(1, 13056, '\P{-_In_enclosed_CJK_Letters_and_Months}', "");
-    Expect(0, 13056, '\P{^-_In_enclosed_CJK_Letters_and_Months}', "");
-    Error('\p{-_ENCLOSED_CJK:=}');
-    Error('\P{-_ENCLOSED_CJK:=}');
+    Expect(1, 13055, '\p{_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(0, 13055, '\p{^_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(0, 13055, '\P{_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(1, 13055, '\P{^_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(0, 13056, '\p{_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(1, 13056, '\p{^_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(1, 13056, '\P{_In_enclosed_cjk_Letters_AND_Months}', "");
+    Expect(0, 13056, '\P{^_In_enclosed_cjk_Letters_AND_Months}', "");
+    Error('\p{:=Enclosed_CJK}');
+    Error('\P{:=Enclosed_CJK}');
     Expect(1, 13055, '\p{enclosedcjk}', "");
     Expect(0, 13055, '\p{^enclosedcjk}', "");
     Expect(0, 13055, '\P{enclosedcjk}', "");
@@ -97397,16 +98419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13056, '\p{^enclosedcjk}', "");
     Expect(1, 13056, '\P{enclosedcjk}', "");
     Expect(0, 13056, '\P{^enclosedcjk}', "");
-    Expect(1, 13055, '\p{	Enclosed_cjk}', "");
-    Expect(0, 13055, '\p{^	Enclosed_cjk}', "");
-    Expect(0, 13055, '\P{	Enclosed_cjk}', "");
-    Expect(1, 13055, '\P{^	Enclosed_cjk}', "");
-    Expect(0, 13056, '\p{	Enclosed_cjk}', "");
-    Expect(1, 13056, '\p{^	Enclosed_cjk}', "");
-    Expect(1, 13056, '\P{	Enclosed_cjk}', "");
-    Expect(0, 13056, '\P{^	Enclosed_cjk}', "");
-    Error('\p{ /a/is_ENCLOSED_CJK}');
-    Error('\P{ /a/is_ENCLOSED_CJK}');
+    Expect(1, 13055, '\p{ Enclosed_cjk}', "");
+    Expect(0, 13055, '\p{^ Enclosed_cjk}', "");
+    Expect(0, 13055, '\P{ Enclosed_cjk}', "");
+    Expect(1, 13055, '\P{^ Enclosed_cjk}', "");
+    Expect(0, 13056, '\p{ Enclosed_cjk}', "");
+    Expect(1, 13056, '\p{^ Enclosed_cjk}', "");
+    Expect(1, 13056, '\P{ Enclosed_cjk}', "");
+    Expect(0, 13056, '\P{^ Enclosed_cjk}', "");
+    Error('\p{/a/Is_Enclosed_CJK}');
+    Error('\P{/a/Is_Enclosed_CJK}');
     Expect(1, 13055, '\p{isenclosedcjk}', "");
     Expect(0, 13055, '\p{^isenclosedcjk}', "");
     Expect(0, 13055, '\P{isenclosedcjk}', "");
@@ -97415,16 +98437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13056, '\p{^isenclosedcjk}', "");
     Expect(1, 13056, '\P{isenclosedcjk}', "");
     Expect(0, 13056, '\P{^isenclosedcjk}', "");
-    Expect(1, 13055, '\p{ 	is_enclosed_cjk}', "");
-    Expect(0, 13055, '\p{^ 	is_enclosed_cjk}', "");
-    Expect(0, 13055, '\P{ 	is_enclosed_cjk}', "");
-    Expect(1, 13055, '\P{^ 	is_enclosed_cjk}', "");
-    Expect(0, 13056, '\p{ 	is_enclosed_cjk}', "");
-    Expect(1, 13056, '\p{^ 	is_enclosed_cjk}', "");
-    Expect(1, 13056, '\P{ 	is_enclosed_cjk}', "");
-    Expect(0, 13056, '\P{^ 	is_enclosed_cjk}', "");
-    Error('\p{		In_enclosed_CJK/a/}');
-    Error('\P{		In_enclosed_CJK/a/}');
+    Expect(1, 13055, '\p{	 IS_ENCLOSED_CJK}', "");
+    Expect(0, 13055, '\p{^	 IS_ENCLOSED_CJK}', "");
+    Expect(0, 13055, '\P{	 IS_ENCLOSED_CJK}', "");
+    Expect(1, 13055, '\P{^	 IS_ENCLOSED_CJK}', "");
+    Expect(0, 13056, '\p{	 IS_ENCLOSED_CJK}', "");
+    Expect(1, 13056, '\p{^	 IS_ENCLOSED_CJK}', "");
+    Expect(1, 13056, '\P{	 IS_ENCLOSED_CJK}', "");
+    Expect(0, 13056, '\P{^	 IS_ENCLOSED_CJK}', "");
+    Error('\p{	:=In_Enclosed_CJK}');
+    Error('\P{	:=In_Enclosed_CJK}');
     Expect(1, 13055, '\p{inenclosedcjk}', "");
     Expect(0, 13055, '\p{^inenclosedcjk}', "");
     Expect(0, 13055, '\P{inenclosedcjk}', "");
@@ -97433,16 +98455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 13056, '\p{^inenclosedcjk}', "");
     Expect(1, 13056, '\P{inenclosedcjk}', "");
     Expect(0, 13056, '\P{^inenclosedcjk}', "");
-    Expect(1, 13055, '\p{-in_enclosed_cjk}', "");
-    Expect(0, 13055, '\p{^-in_enclosed_cjk}', "");
-    Expect(0, 13055, '\P{-in_enclosed_cjk}', "");
-    Expect(1, 13055, '\P{^-in_enclosed_cjk}', "");
-    Expect(0, 13056, '\p{-in_enclosed_cjk}', "");
-    Expect(1, 13056, '\p{^-in_enclosed_cjk}', "");
-    Expect(1, 13056, '\P{-in_enclosed_cjk}', "");
-    Expect(0, 13056, '\P{^-in_enclosed_cjk}', "");
-    Error('\p{:=Enclosed_ideographic_SUPPLEMENT}');
-    Error('\P{:=Enclosed_ideographic_SUPPLEMENT}');
+    Expect(1, 13055, '\p{-In_Enclosed_CJK}', "");
+    Expect(0, 13055, '\p{^-In_Enclosed_CJK}', "");
+    Expect(0, 13055, '\P{-In_Enclosed_CJK}', "");
+    Expect(1, 13055, '\P{^-In_Enclosed_CJK}', "");
+    Expect(0, 13056, '\p{-In_Enclosed_CJK}', "");
+    Expect(1, 13056, '\p{^-In_Enclosed_CJK}', "");
+    Expect(1, 13056, '\P{-In_Enclosed_CJK}', "");
+    Expect(0, 13056, '\P{^-In_Enclosed_CJK}', "");
+    Error('\p{:=_ Enclosed_IDEOGRAPHIC_supplement}');
+    Error('\P{:=_ Enclosed_IDEOGRAPHIC_supplement}');
     Expect(1, 127743, '\p{enclosedideographicsupplement}', "");
     Expect(0, 127743, '\p{^enclosedideographicsupplement}', "");
     Expect(0, 127743, '\P{enclosedideographicsupplement}', "");
@@ -97451,16 +98473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127744, '\p{^enclosedideographicsupplement}', "");
     Expect(1, 127744, '\P{enclosedideographicsupplement}', "");
     Expect(0, 127744, '\P{^enclosedideographicsupplement}', "");
-    Expect(1, 127743, '\p{-	enclosed_ideographic_supplement}', "");
-    Expect(0, 127743, '\p{^-	enclosed_ideographic_supplement}', "");
-    Expect(0, 127743, '\P{-	enclosed_ideographic_supplement}', "");
-    Expect(1, 127743, '\P{^-	enclosed_ideographic_supplement}', "");
-    Expect(0, 127744, '\p{-	enclosed_ideographic_supplement}', "");
-    Expect(1, 127744, '\p{^-	enclosed_ideographic_supplement}', "");
-    Expect(1, 127744, '\P{-	enclosed_ideographic_supplement}', "");
-    Expect(0, 127744, '\P{^-	enclosed_ideographic_supplement}', "");
-    Error('\p{-IS_Enclosed_ideographic_supplement:=}');
-    Error('\P{-IS_Enclosed_ideographic_supplement:=}');
+    Expect(1, 127743, '\p{ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127743, '\p{^ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127743, '\P{ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(1, 127743, '\P{^ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127744, '\p{ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(1, 127744, '\p{^ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(1, 127744, '\P{ 	Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127744, '\P{^ 	Enclosed_Ideographic_Supplement}', "");
+    Error('\p{-/a/Is_enclosed_ideographic_supplement}');
+    Error('\P{-/a/Is_enclosed_ideographic_supplement}');
     Expect(1, 127743, '\p{isenclosedideographicsupplement}', "");
     Expect(0, 127743, '\p{^isenclosedideographicsupplement}', "");
     Expect(0, 127743, '\P{isenclosedideographicsupplement}', "");
@@ -97469,16 +98491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127744, '\p{^isenclosedideographicsupplement}', "");
     Expect(1, 127744, '\P{isenclosedideographicsupplement}', "");
     Expect(0, 127744, '\P{^isenclosedideographicsupplement}', "");
-    Expect(1, 127743, '\p{--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(0, 127743, '\p{^--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(0, 127743, '\P{--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(1, 127743, '\P{^--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(0, 127744, '\p{--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(1, 127744, '\p{^--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(1, 127744, '\P{--Is_Enclosed_Ideographic_supplement}', "");
-    Expect(0, 127744, '\P{^--Is_Enclosed_Ideographic_supplement}', "");
-    Error('\p{:=_	In_ENCLOSED_Ideographic_supplement}');
-    Error('\P{:=_	In_ENCLOSED_Ideographic_supplement}');
+    Expect(1, 127743, '\p{__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(0, 127743, '\p{^__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(0, 127743, '\P{__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(1, 127743, '\P{^__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(0, 127744, '\p{__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(1, 127744, '\p{^__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(1, 127744, '\P{__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Expect(0, 127744, '\P{^__IS_Enclosed_Ideographic_SUPPLEMENT}', "");
+    Error('\p{	-In_enclosed_ideographic_Supplement/a/}');
+    Error('\P{	-In_enclosed_ideographic_Supplement/a/}');
     Expect(1, 127743, '\p{inenclosedideographicsupplement}', "");
     Expect(0, 127743, '\p{^inenclosedideographicsupplement}', "");
     Expect(0, 127743, '\P{inenclosedideographicsupplement}', "");
@@ -97487,16 +98509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127744, '\p{^inenclosedideographicsupplement}', "");
     Expect(1, 127744, '\P{inenclosedideographicsupplement}', "");
     Expect(0, 127744, '\P{^inenclosedideographicsupplement}', "");
-    Expect(1, 127743, '\p{ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(0, 127743, '\p{^ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(0, 127743, '\P{ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(1, 127743, '\P{^ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(0, 127744, '\p{ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(1, 127744, '\p{^ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(1, 127744, '\P{ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Expect(0, 127744, '\P{^ 	IN_ENCLOSED_ideographic_SUPPLEMENT}', "");
-    Error('\p{ :=ENCLOSED_IDEOGRAPHIC_Sup}');
-    Error('\P{ :=ENCLOSED_IDEOGRAPHIC_Sup}');
+    Expect(1, 127743, '\p{	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127743, '\p{^	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127743, '\P{	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(1, 127743, '\P{^	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127744, '\p{	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(1, 127744, '\p{^	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(1, 127744, '\P{	in_Enclosed_Ideographic_Supplement}', "");
+    Expect(0, 127744, '\P{^	in_Enclosed_Ideographic_Supplement}', "");
+    Error('\p{/a/_-Enclosed_Ideographic_Sup}');
+    Error('\P{/a/_-Enclosed_Ideographic_Sup}');
     Expect(1, 127743, '\p{enclosedideographicsup}', "");
     Expect(0, 127743, '\p{^enclosedideographicsup}', "");
     Expect(0, 127743, '\P{enclosedideographicsup}', "");
@@ -97505,16 +98527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127744, '\p{^enclosedideographicsup}', "");
     Expect(1, 127744, '\P{enclosedideographicsup}', "");
     Expect(0, 127744, '\P{^enclosedideographicsup}', "");
-    Expect(1, 127743, '\p{ enclosed_Ideographic_SUP}', "");
-    Expect(0, 127743, '\p{^ enclosed_Ideographic_SUP}', "");
-    Expect(0, 127743, '\P{ enclosed_Ideographic_SUP}', "");
-    Expect(1, 127743, '\P{^ enclosed_Ideographic_SUP}', "");
-    Expect(0, 127744, '\p{ enclosed_Ideographic_SUP}', "");
-    Expect(1, 127744, '\p{^ enclosed_Ideographic_SUP}', "");
-    Expect(1, 127744, '\P{ enclosed_Ideographic_SUP}', "");
-    Expect(0, 127744, '\P{^ enclosed_Ideographic_SUP}', "");
-    Error('\p{ /a/Is_Enclosed_ideographic_Sup}');
-    Error('\P{ /a/Is_Enclosed_ideographic_Sup}');
+    Expect(1, 127743, '\p{- enclosed_Ideographic_Sup}', "");
+    Expect(0, 127743, '\p{^- enclosed_Ideographic_Sup}', "");
+    Expect(0, 127743, '\P{- enclosed_Ideographic_Sup}', "");
+    Expect(1, 127743, '\P{^- enclosed_Ideographic_Sup}', "");
+    Expect(0, 127744, '\p{- enclosed_Ideographic_Sup}', "");
+    Expect(1, 127744, '\p{^- enclosed_Ideographic_Sup}', "");
+    Expect(1, 127744, '\P{- enclosed_Ideographic_Sup}', "");
+    Expect(0, 127744, '\P{^- enclosed_Ideographic_Sup}', "");
+    Error('\p{:=	_Is_Enclosed_Ideographic_sup}');
+    Error('\P{:=	_Is_Enclosed_Ideographic_sup}');
     Expect(1, 127743, '\p{isenclosedideographicsup}', "");
     Expect(0, 127743, '\p{^isenclosedideographicsup}', "");
     Expect(0, 127743, '\P{isenclosedideographicsup}', "");
@@ -97523,16 +98545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127744, '\p{^isenclosedideographicsup}', "");
     Expect(1, 127744, '\P{isenclosedideographicsup}', "");
     Expect(0, 127744, '\P{^isenclosedideographicsup}', "");
-    Expect(1, 127743, '\p{	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127743, '\p{^	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127743, '\P{	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(1, 127743, '\P{^	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127744, '\p{	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(1, 127744, '\p{^	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(1, 127744, '\P{	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Expect(0, 127744, '\P{^	 Is_ENCLOSED_Ideographic_Sup}', "");
-    Error('\p{:=_in_Enclosed_Ideographic_sup}');
-    Error('\P{:=_in_Enclosed_Ideographic_sup}');
+    Expect(1, 127743, '\p{		Is_Enclosed_ideographic_SUP}', "");
+    Expect(0, 127743, '\p{^		Is_Enclosed_ideographic_SUP}', "");
+    Expect(0, 127743, '\P{		Is_Enclosed_ideographic_SUP}', "");
+    Expect(1, 127743, '\P{^		Is_Enclosed_ideographic_SUP}', "");
+    Expect(0, 127744, '\p{		Is_Enclosed_ideographic_SUP}', "");
+    Expect(1, 127744, '\p{^		Is_Enclosed_ideographic_SUP}', "");
+    Expect(1, 127744, '\P{		Is_Enclosed_ideographic_SUP}', "");
+    Expect(0, 127744, '\P{^		Is_Enclosed_ideographic_SUP}', "");
+    Error('\p{:=  In_ENCLOSED_IDEOGRAPHIC_Sup}');
+    Error('\P{:=  In_ENCLOSED_IDEOGRAPHIC_Sup}');
     Expect(1, 127743, '\p{inenclosedideographicsup}', "");
     Expect(0, 127743, '\p{^inenclosedideographicsup}', "");
     Expect(0, 127743, '\P{inenclosedideographicsup}', "");
@@ -97541,16 +98563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127744, '\p{^inenclosedideographicsup}', "");
     Expect(1, 127744, '\P{inenclosedideographicsup}', "");
     Expect(0, 127744, '\P{^inenclosedideographicsup}', "");
-    Expect(1, 127743, '\p{_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(0, 127743, '\p{^_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(0, 127743, '\P{_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(1, 127743, '\P{^_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(0, 127744, '\p{_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(1, 127744, '\p{^_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(1, 127744, '\P{_ In_ENCLOSED_ideographic_Sup}', "");
-    Expect(0, 127744, '\P{^_ In_ENCLOSED_ideographic_Sup}', "");
-    Error('\p{ /a/ENCLOSING_Mark}');
-    Error('\P{ /a/ENCLOSING_Mark}');
+    Expect(1, 127743, '\p{ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(0, 127743, '\p{^ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(0, 127743, '\P{ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(1, 127743, '\P{^ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(0, 127744, '\p{ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(1, 127744, '\p{^ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(1, 127744, '\P{ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Expect(0, 127744, '\P{^ in_enclosed_IDEOGRAPHIC_SUP}', "");
+    Error('\p{ Enclosing_MARK/a/}');
+    Error('\P{ Enclosing_MARK/a/}');
     Expect(1, 42610, '\p{enclosingmark}', "");
     Expect(0, 42610, '\p{^enclosingmark}', "");
     Expect(0, 42610, '\P{enclosingmark}', "");
@@ -97559,16 +98581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42611, '\p{^enclosingmark}', "");
     Expect(1, 42611, '\P{enclosingmark}', "");
     Expect(0, 42611, '\P{^enclosingmark}', "");
-    Expect(1, 42610, '\p{-	Enclosing_Mark}', "");
-    Expect(0, 42610, '\p{^-	Enclosing_Mark}', "");
-    Expect(0, 42610, '\P{-	Enclosing_Mark}', "");
-    Expect(1, 42610, '\P{^-	Enclosing_Mark}', "");
-    Expect(0, 42611, '\p{-	Enclosing_Mark}', "");
-    Expect(1, 42611, '\p{^-	Enclosing_Mark}', "");
-    Expect(1, 42611, '\P{-	Enclosing_Mark}', "");
-    Expect(0, 42611, '\P{^-	Enclosing_Mark}', "");
-    Error('\p{:=_ is_ENCLOSING_mark}');
-    Error('\P{:=_ is_ENCLOSING_mark}');
+    Expect(1, 42610, '\p{	_Enclosing_MARK}', "");
+    Expect(0, 42610, '\p{^	_Enclosing_MARK}', "");
+    Expect(0, 42610, '\P{	_Enclosing_MARK}', "");
+    Expect(1, 42610, '\P{^	_Enclosing_MARK}', "");
+    Expect(0, 42611, '\p{	_Enclosing_MARK}', "");
+    Expect(1, 42611, '\p{^	_Enclosing_MARK}', "");
+    Expect(1, 42611, '\P{	_Enclosing_MARK}', "");
+    Expect(0, 42611, '\P{^	_Enclosing_MARK}', "");
+    Error('\p{-	Is_Enclosing_MARK/a/}');
+    Error('\P{-	Is_Enclosing_MARK/a/}');
     Expect(1, 42610, '\p{isenclosingmark}', "");
     Expect(0, 42610, '\p{^isenclosingmark}', "");
     Expect(0, 42610, '\P{isenclosingmark}', "");
@@ -97577,16 +98599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42611, '\p{^isenclosingmark}', "");
     Expect(1, 42611, '\P{isenclosingmark}', "");
     Expect(0, 42611, '\P{^isenclosingmark}', "");
-    Expect(1, 42610, '\p{	 is_ENCLOSING_mark}', "");
-    Expect(0, 42610, '\p{^	 is_ENCLOSING_mark}', "");
-    Expect(0, 42610, '\P{	 is_ENCLOSING_mark}', "");
-    Expect(1, 42610, '\P{^	 is_ENCLOSING_mark}', "");
-    Expect(0, 42611, '\p{	 is_ENCLOSING_mark}', "");
-    Expect(1, 42611, '\p{^	 is_ENCLOSING_mark}', "");
-    Expect(1, 42611, '\P{	 is_ENCLOSING_mark}', "");
-    Expect(0, 42611, '\P{^	 is_ENCLOSING_mark}', "");
-    Error('\p{__me:=}');
-    Error('\P{__me:=}');
+    Expect(1, 42610, '\p{_Is_Enclosing_Mark}', "");
+    Expect(0, 42610, '\p{^_Is_Enclosing_Mark}', "");
+    Expect(0, 42610, '\P{_Is_Enclosing_Mark}', "");
+    Expect(1, 42610, '\P{^_Is_Enclosing_Mark}', "");
+    Expect(0, 42611, '\p{_Is_Enclosing_Mark}', "");
+    Expect(1, 42611, '\p{^_Is_Enclosing_Mark}', "");
+    Expect(1, 42611, '\P{_Is_Enclosing_Mark}', "");
+    Expect(0, 42611, '\P{^_Is_Enclosing_Mark}', "");
+    Error('\p{:=__Me}');
+    Error('\P{:=__Me}');
     Expect(1, 42610, '\p{me}', "");
     Expect(0, 42610, '\p{^me}', "");
     Expect(0, 42610, '\P{me}', "");
@@ -97595,16 +98617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42611, '\p{^me}', "");
     Expect(1, 42611, '\P{me}', "");
     Expect(0, 42611, '\P{^me}', "");
-    Expect(1, 42610, '\p{_ME}', "");
-    Expect(0, 42610, '\p{^_ME}', "");
-    Expect(0, 42610, '\P{_ME}', "");
-    Expect(1, 42610, '\P{^_ME}', "");
-    Expect(0, 42611, '\p{_ME}', "");
-    Expect(1, 42611, '\p{^_ME}', "");
-    Expect(1, 42611, '\P{_ME}', "");
-    Expect(0, 42611, '\P{^_ME}', "");
-    Error('\p{_:=IS_ME}');
-    Error('\P{_:=IS_ME}');
+    Expect(1, 42610, '\p{_-Me}', "");
+    Expect(0, 42610, '\p{^_-Me}', "");
+    Expect(0, 42610, '\P{_-Me}', "");
+    Expect(1, 42610, '\P{^_-Me}', "");
+    Expect(0, 42611, '\p{_-Me}', "");
+    Expect(1, 42611, '\p{^_-Me}', "");
+    Expect(1, 42611, '\P{_-Me}', "");
+    Expect(0, 42611, '\P{^_-Me}', "");
+    Error('\p{/a/_ Is_ME}');
+    Error('\P{/a/_ Is_ME}');
     Expect(1, 42610, '\p{isme}', "");
     Expect(0, 42610, '\p{^isme}', "");
     Expect(0, 42610, '\P{isme}', "");
@@ -97613,16 +98635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42611, '\p{^isme}', "");
     Expect(1, 42611, '\P{isme}', "");
     Expect(0, 42611, '\P{^isme}', "");
-    Expect(1, 42610, '\p{-	Is_Me}', "");
-    Expect(0, 42610, '\p{^-	Is_Me}', "");
-    Expect(0, 42610, '\P{-	Is_Me}', "");
-    Expect(1, 42610, '\P{^-	Is_Me}', "");
-    Expect(0, 42611, '\p{-	Is_Me}', "");
-    Expect(1, 42611, '\p{^-	Is_Me}', "");
-    Expect(1, 42611, '\P{-	Is_Me}', "");
-    Expect(0, 42611, '\P{^-	Is_Me}', "");
-    Error('\p{	:=ETHIOPIC}');
-    Error('\P{	:=ETHIOPIC}');
+    Expect(1, 42610, '\p{_-IS_me}', "");
+    Expect(0, 42610, '\p{^_-IS_me}', "");
+    Expect(0, 42610, '\P{_-IS_me}', "");
+    Expect(1, 42610, '\P{^_-IS_me}', "");
+    Expect(0, 42611, '\p{_-IS_me}', "");
+    Expect(1, 42611, '\p{^_-IS_me}', "");
+    Expect(1, 42611, '\P{_-IS_me}', "");
+    Expect(0, 42611, '\P{^_-IS_me}', "");
+    Error('\p{ /a/ETHIOPIC}');
+    Error('\P{ /a/ETHIOPIC}');
     Expect(1, 124926, '\p{ethiopic}', "");
     Expect(0, 124926, '\p{^ethiopic}', "");
     Expect(0, 124926, '\P{ethiopic}', "");
@@ -97631,16 +98653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124927, '\p{^ethiopic}', "");
     Expect(1, 124927, '\P{ethiopic}', "");
     Expect(0, 124927, '\P{^ethiopic}', "");
-    Expect(1, 124926, '\p{-_Ethiopic}', "");
-    Expect(0, 124926, '\p{^-_Ethiopic}', "");
-    Expect(0, 124926, '\P{-_Ethiopic}', "");
-    Expect(1, 124926, '\P{^-_Ethiopic}', "");
-    Expect(0, 124927, '\p{-_Ethiopic}', "");
-    Expect(1, 124927, '\p{^-_Ethiopic}', "");
-    Expect(1, 124927, '\P{-_Ethiopic}', "");
-    Expect(0, 124927, '\P{^-_Ethiopic}', "");
-    Error('\p{/a/-Is_Ethiopic}');
-    Error('\P{/a/-Is_Ethiopic}');
+    Expect(1, 124926, '\p{- ethiopic}', "");
+    Expect(0, 124926, '\p{^- ethiopic}', "");
+    Expect(0, 124926, '\P{- ethiopic}', "");
+    Expect(1, 124926, '\P{^- ethiopic}', "");
+    Expect(0, 124927, '\p{- ethiopic}', "");
+    Expect(1, 124927, '\p{^- ethiopic}', "");
+    Expect(1, 124927, '\P{- ethiopic}', "");
+    Expect(0, 124927, '\P{^- ethiopic}', "");
+    Error('\p{ is_Ethiopic/a/}');
+    Error('\P{ is_Ethiopic/a/}');
     Expect(1, 124926, '\p{isethiopic}', "");
     Expect(0, 124926, '\p{^isethiopic}', "");
     Expect(0, 124926, '\P{isethiopic}', "");
@@ -97649,16 +98671,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124927, '\p{^isethiopic}', "");
     Expect(1, 124927, '\P{isethiopic}', "");
     Expect(0, 124927, '\P{^isethiopic}', "");
-    Expect(1, 124926, '\p{_-is_Ethiopic}', "");
-    Expect(0, 124926, '\p{^_-is_Ethiopic}', "");
-    Expect(0, 124926, '\P{_-is_Ethiopic}', "");
-    Expect(1, 124926, '\P{^_-is_Ethiopic}', "");
-    Expect(0, 124927, '\p{_-is_Ethiopic}', "");
-    Expect(1, 124927, '\p{^_-is_Ethiopic}', "");
-    Expect(1, 124927, '\P{_-is_Ethiopic}', "");
-    Expect(0, 124927, '\P{^_-is_Ethiopic}', "");
-    Error('\p{ :=Ethi}');
-    Error('\P{ :=Ethi}');
+    Expect(1, 124926, '\p{	Is_Ethiopic}', "");
+    Expect(0, 124926, '\p{^	Is_Ethiopic}', "");
+    Expect(0, 124926, '\P{	Is_Ethiopic}', "");
+    Expect(1, 124926, '\P{^	Is_Ethiopic}', "");
+    Expect(0, 124927, '\p{	Is_Ethiopic}', "");
+    Expect(1, 124927, '\p{^	Is_Ethiopic}', "");
+    Expect(1, 124927, '\P{	Is_Ethiopic}', "");
+    Expect(0, 124927, '\P{^	Is_Ethiopic}', "");
+    Error('\p{ ETHI/a/}');
+    Error('\P{ ETHI/a/}');
     Expect(1, 124926, '\p{ethi}', "");
     Expect(0, 124926, '\p{^ethi}', "");
     Expect(0, 124926, '\P{ethi}', "");
@@ -97667,16 +98689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124927, '\p{^ethi}', "");
     Expect(1, 124927, '\P{ethi}', "");
     Expect(0, 124927, '\P{^ethi}', "");
-    Expect(1, 124926, '\p{ ETHI}', "");
-    Expect(0, 124926, '\p{^ ETHI}', "");
-    Expect(0, 124926, '\P{ ETHI}', "");
-    Expect(1, 124926, '\P{^ ETHI}', "");
-    Expect(0, 124927, '\p{ ETHI}', "");
-    Expect(1, 124927, '\p{^ ETHI}', "");
-    Expect(1, 124927, '\P{ ETHI}', "");
-    Expect(0, 124927, '\P{^ ETHI}', "");
-    Error('\p{	is_ETHI/a/}');
-    Error('\P{	is_ETHI/a/}');
+    Expect(1, 124926, '\p{ 	ethi}', "");
+    Expect(0, 124926, '\p{^ 	ethi}', "");
+    Expect(0, 124926, '\P{ 	ethi}', "");
+    Expect(1, 124926, '\P{^ 	ethi}', "");
+    Expect(0, 124927, '\p{ 	ethi}', "");
+    Expect(1, 124927, '\p{^ 	ethi}', "");
+    Expect(1, 124927, '\P{ 	ethi}', "");
+    Expect(0, 124927, '\P{^ 	ethi}', "");
+    Error('\p{/a/	Is_Ethi}');
+    Error('\P{/a/	Is_Ethi}');
     Expect(1, 124926, '\p{isethi}', "");
     Expect(0, 124926, '\p{^isethi}', "");
     Expect(0, 124926, '\P{isethi}', "");
@@ -97685,16 +98707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124927, '\p{^isethi}', "");
     Expect(1, 124927, '\P{isethi}', "");
     Expect(0, 124927, '\P{^isethi}', "");
-    Expect(1, 124926, '\p{ 	Is_ethi}', "");
-    Expect(0, 124926, '\p{^ 	Is_ethi}', "");
-    Expect(0, 124926, '\P{ 	Is_ethi}', "");
-    Expect(1, 124926, '\P{^ 	Is_ethi}', "");
-    Expect(0, 124927, '\p{ 	Is_ethi}', "");
-    Expect(1, 124927, '\p{^ 	Is_ethi}', "");
-    Expect(1, 124927, '\P{ 	Is_ethi}', "");
-    Expect(0, 124927, '\P{^ 	Is_ethi}', "");
-    Error('\p{	ethiopic_Extended:=}');
-    Error('\P{	ethiopic_Extended:=}');
+    Expect(1, 124926, '\p{	IS_Ethi}', "");
+    Expect(0, 124926, '\p{^	IS_Ethi}', "");
+    Expect(0, 124926, '\P{	IS_Ethi}', "");
+    Expect(1, 124926, '\P{^	IS_Ethi}', "");
+    Expect(0, 124927, '\p{	IS_Ethi}', "");
+    Expect(1, 124927, '\p{^	IS_Ethi}', "");
+    Expect(1, 124927, '\P{	IS_Ethi}', "");
+    Expect(0, 124927, '\P{^	IS_Ethi}', "");
+    Error('\p{_ ETHIOPIC_extended:=}');
+    Error('\P{_ ETHIOPIC_extended:=}');
     Expect(1, 11743, '\p{ethiopicextended}', "");
     Expect(0, 11743, '\p{^ethiopicextended}', "");
     Expect(0, 11743, '\P{ethiopicextended}', "");
@@ -97703,16 +98725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11744, '\p{^ethiopicextended}', "");
     Expect(1, 11744, '\P{ethiopicextended}', "");
     Expect(0, 11744, '\P{^ethiopicextended}', "");
-    Expect(1, 11743, '\p{--ETHIOPIC_EXTENDED}', "");
-    Expect(0, 11743, '\p{^--ETHIOPIC_EXTENDED}', "");
-    Expect(0, 11743, '\P{--ETHIOPIC_EXTENDED}', "");
-    Expect(1, 11743, '\P{^--ETHIOPIC_EXTENDED}', "");
-    Expect(0, 11744, '\p{--ETHIOPIC_EXTENDED}', "");
-    Expect(1, 11744, '\p{^--ETHIOPIC_EXTENDED}', "");
-    Expect(1, 11744, '\P{--ETHIOPIC_EXTENDED}', "");
-    Expect(0, 11744, '\P{^--ETHIOPIC_EXTENDED}', "");
-    Error('\p{_Is_Ethiopic_EXTENDED/a/}');
-    Error('\P{_Is_Ethiopic_EXTENDED/a/}');
+    Expect(1, 11743, '\p{ -ETHIOPIC_EXTENDED}', "");
+    Expect(0, 11743, '\p{^ -ETHIOPIC_EXTENDED}', "");
+    Expect(0, 11743, '\P{ -ETHIOPIC_EXTENDED}', "");
+    Expect(1, 11743, '\P{^ -ETHIOPIC_EXTENDED}', "");
+    Expect(0, 11744, '\p{ -ETHIOPIC_EXTENDED}', "");
+    Expect(1, 11744, '\p{^ -ETHIOPIC_EXTENDED}', "");
+    Expect(1, 11744, '\P{ -ETHIOPIC_EXTENDED}', "");
+    Expect(0, 11744, '\P{^ -ETHIOPIC_EXTENDED}', "");
+    Error('\p{_ Is_Ethiopic_EXTENDED:=}');
+    Error('\P{_ Is_Ethiopic_EXTENDED:=}');
     Expect(1, 11743, '\p{isethiopicextended}', "");
     Expect(0, 11743, '\p{^isethiopicextended}', "");
     Expect(0, 11743, '\P{isethiopicextended}', "");
@@ -97721,16 +98743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11744, '\p{^isethiopicextended}', "");
     Expect(1, 11744, '\P{isethiopicextended}', "");
     Expect(0, 11744, '\P{^isethiopicextended}', "");
-    Expect(1, 11743, '\p{	-Is_ethiopic_Extended}', "");
-    Expect(0, 11743, '\p{^	-Is_ethiopic_Extended}', "");
-    Expect(0, 11743, '\P{	-Is_ethiopic_Extended}', "");
-    Expect(1, 11743, '\P{^	-Is_ethiopic_Extended}', "");
-    Expect(0, 11744, '\p{	-Is_ethiopic_Extended}', "");
-    Expect(1, 11744, '\p{^	-Is_ethiopic_Extended}', "");
-    Expect(1, 11744, '\P{	-Is_ethiopic_Extended}', "");
-    Expect(0, 11744, '\P{^	-Is_ethiopic_Extended}', "");
-    Error('\p{__In_ETHIOPIC_Extended/a/}');
-    Error('\P{__In_ETHIOPIC_Extended/a/}');
+    Expect(1, 11743, '\p{ _IS_Ethiopic_extended}', "");
+    Expect(0, 11743, '\p{^ _IS_Ethiopic_extended}', "");
+    Expect(0, 11743, '\P{ _IS_Ethiopic_extended}', "");
+    Expect(1, 11743, '\P{^ _IS_Ethiopic_extended}', "");
+    Expect(0, 11744, '\p{ _IS_Ethiopic_extended}', "");
+    Expect(1, 11744, '\p{^ _IS_Ethiopic_extended}', "");
+    Expect(1, 11744, '\P{ _IS_Ethiopic_extended}', "");
+    Expect(0, 11744, '\P{^ _IS_Ethiopic_extended}', "");
+    Error('\p{--In_Ethiopic_extended:=}');
+    Error('\P{--In_Ethiopic_extended:=}');
     Expect(1, 11743, '\p{inethiopicextended}', "");
     Expect(0, 11743, '\p{^inethiopicextended}', "");
     Expect(0, 11743, '\P{inethiopicextended}', "");
@@ -97739,16 +98761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11744, '\p{^inethiopicextended}', "");
     Expect(1, 11744, '\P{inethiopicextended}', "");
     Expect(0, 11744, '\P{^inethiopicextended}', "");
-    Expect(1, 11743, '\p{-In_Ethiopic_Extended}', "");
-    Expect(0, 11743, '\p{^-In_Ethiopic_Extended}', "");
-    Expect(0, 11743, '\P{-In_Ethiopic_Extended}', "");
-    Expect(1, 11743, '\P{^-In_Ethiopic_Extended}', "");
-    Expect(0, 11744, '\p{-In_Ethiopic_Extended}', "");
-    Expect(1, 11744, '\p{^-In_Ethiopic_Extended}', "");
-    Expect(1, 11744, '\P{-In_Ethiopic_Extended}', "");
-    Expect(0, 11744, '\P{^-In_Ethiopic_Extended}', "");
-    Error('\p{ Ethiopic_Ext:=}');
-    Error('\P{ Ethiopic_Ext:=}');
+    Expect(1, 11743, '\p{In_Ethiopic_Extended}', "");
+    Expect(0, 11743, '\p{^In_Ethiopic_Extended}', "");
+    Expect(0, 11743, '\P{In_Ethiopic_Extended}', "");
+    Expect(1, 11743, '\P{^In_Ethiopic_Extended}', "");
+    Expect(0, 11744, '\p{In_Ethiopic_Extended}', "");
+    Expect(1, 11744, '\p{^In_Ethiopic_Extended}', "");
+    Expect(1, 11744, '\P{In_Ethiopic_Extended}', "");
+    Expect(0, 11744, '\P{^In_Ethiopic_Extended}', "");
+    Error('\p{ 	Ethiopic_Ext:=}');
+    Error('\P{ 	Ethiopic_Ext:=}');
     Expect(1, 11743, '\p{ethiopicext}', "");
     Expect(0, 11743, '\p{^ethiopicext}', "");
     Expect(0, 11743, '\P{ethiopicext}', "");
@@ -97757,16 +98779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11744, '\p{^ethiopicext}', "");
     Expect(1, 11744, '\P{ethiopicext}', "");
     Expect(0, 11744, '\P{^ethiopicext}', "");
-    Expect(1, 11743, '\p{ ethiopic_Ext}', "");
-    Expect(0, 11743, '\p{^ ethiopic_Ext}', "");
-    Expect(0, 11743, '\P{ ethiopic_Ext}', "");
-    Expect(1, 11743, '\P{^ ethiopic_Ext}', "");
-    Expect(0, 11744, '\p{ ethiopic_Ext}', "");
-    Expect(1, 11744, '\p{^ ethiopic_Ext}', "");
-    Expect(1, 11744, '\P{ ethiopic_Ext}', "");
-    Expect(0, 11744, '\P{^ ethiopic_Ext}', "");
-    Error('\p{ :=Is_ethiopic_Ext}');
-    Error('\P{ :=Is_ethiopic_Ext}');
+    Expect(1, 11743, '\p{Ethiopic_EXT}', "");
+    Expect(0, 11743, '\p{^Ethiopic_EXT}', "");
+    Expect(0, 11743, '\P{Ethiopic_EXT}', "");
+    Expect(1, 11743, '\P{^Ethiopic_EXT}', "");
+    Expect(0, 11744, '\p{Ethiopic_EXT}', "");
+    Expect(1, 11744, '\p{^Ethiopic_EXT}', "");
+    Expect(1, 11744, '\P{Ethiopic_EXT}', "");
+    Expect(0, 11744, '\P{^Ethiopic_EXT}', "");
+    Error('\p{/a/_-Is_ethiopic_ext}');
+    Error('\P{/a/_-Is_ethiopic_ext}');
     Expect(1, 11743, '\p{isethiopicext}', "");
     Expect(0, 11743, '\p{^isethiopicext}', "");
     Expect(0, 11743, '\P{isethiopicext}', "");
@@ -97775,16 +98797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11744, '\p{^isethiopicext}', "");
     Expect(1, 11744, '\P{isethiopicext}', "");
     Expect(0, 11744, '\P{^isethiopicext}', "");
-    Expect(1, 11743, '\p{Is_Ethiopic_ext}', "");
-    Expect(0, 11743, '\p{^Is_Ethiopic_ext}', "");
-    Expect(0, 11743, '\P{Is_Ethiopic_ext}', "");
-    Expect(1, 11743, '\P{^Is_Ethiopic_ext}', "");
-    Expect(0, 11744, '\p{Is_Ethiopic_ext}', "");
-    Expect(1, 11744, '\p{^Is_Ethiopic_ext}', "");
-    Expect(1, 11744, '\P{Is_Ethiopic_ext}', "");
-    Expect(0, 11744, '\P{^Is_Ethiopic_ext}', "");
-    Error('\p{-in_ETHIOPIC_EXT/a/}');
-    Error('\P{-in_ETHIOPIC_EXT/a/}');
+    Expect(1, 11743, '\p{  Is_Ethiopic_ext}', "");
+    Expect(0, 11743, '\p{^  Is_Ethiopic_ext}', "");
+    Expect(0, 11743, '\P{  Is_Ethiopic_ext}', "");
+    Expect(1, 11743, '\P{^  Is_Ethiopic_ext}', "");
+    Expect(0, 11744, '\p{  Is_Ethiopic_ext}', "");
+    Expect(1, 11744, '\p{^  Is_Ethiopic_ext}', "");
+    Expect(1, 11744, '\P{  Is_Ethiopic_ext}', "");
+    Expect(0, 11744, '\P{^  Is_Ethiopic_ext}', "");
+    Error('\p{/a/ -In_Ethiopic_Ext}');
+    Error('\P{/a/ -In_Ethiopic_Ext}');
     Expect(1, 11743, '\p{inethiopicext}', "");
     Expect(0, 11743, '\p{^inethiopicext}', "");
     Expect(0, 11743, '\P{inethiopicext}', "");
@@ -97793,16 +98815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11744, '\p{^inethiopicext}', "");
     Expect(1, 11744, '\P{inethiopicext}', "");
     Expect(0, 11744, '\P{^inethiopicext}', "");
-    Expect(1, 11743, '\p{	-In_Ethiopic_ext}', "");
-    Expect(0, 11743, '\p{^	-In_Ethiopic_ext}', "");
-    Expect(0, 11743, '\P{	-In_Ethiopic_ext}', "");
-    Expect(1, 11743, '\P{^	-In_Ethiopic_ext}', "");
-    Expect(0, 11744, '\p{	-In_Ethiopic_ext}', "");
-    Expect(1, 11744, '\p{^	-In_Ethiopic_ext}', "");
-    Expect(1, 11744, '\P{	-In_Ethiopic_ext}', "");
-    Expect(0, 11744, '\P{^	-In_Ethiopic_ext}', "");
-    Error('\p{ :=Ethiopic_Extended_A}');
-    Error('\P{ :=Ethiopic_Extended_A}');
+    Expect(1, 11743, '\p{__In_Ethiopic_ext}', "");
+    Expect(0, 11743, '\p{^__In_Ethiopic_ext}', "");
+    Expect(0, 11743, '\P{__In_Ethiopic_ext}', "");
+    Expect(1, 11743, '\P{^__In_Ethiopic_ext}', "");
+    Expect(0, 11744, '\p{__In_Ethiopic_ext}', "");
+    Expect(1, 11744, '\p{^__In_Ethiopic_ext}', "");
+    Expect(1, 11744, '\P{__In_Ethiopic_ext}', "");
+    Expect(0, 11744, '\P{^__In_Ethiopic_ext}', "");
+    Error('\p{__ETHIOPIC_Extended_A:=}');
+    Error('\P{__ETHIOPIC_Extended_A:=}');
     Expect(1, 43823, '\p{ethiopicextendeda}', "");
     Expect(0, 43823, '\p{^ethiopicextendeda}', "");
     Expect(0, 43823, '\P{ethiopicextendeda}', "");
@@ -97811,16 +98833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43824, '\p{^ethiopicextendeda}', "");
     Expect(1, 43824, '\P{ethiopicextendeda}', "");
     Expect(0, 43824, '\P{^ethiopicextendeda}', "");
-    Expect(1, 43823, '\p{_ ETHIOPIC_Extended_A}', "");
-    Expect(0, 43823, '\p{^_ ETHIOPIC_Extended_A}', "");
-    Expect(0, 43823, '\P{_ ETHIOPIC_Extended_A}', "");
-    Expect(1, 43823, '\P{^_ ETHIOPIC_Extended_A}', "");
-    Expect(0, 43824, '\p{_ ETHIOPIC_Extended_A}', "");
-    Expect(1, 43824, '\p{^_ ETHIOPIC_Extended_A}', "");
-    Expect(1, 43824, '\P{_ ETHIOPIC_Extended_A}', "");
-    Expect(0, 43824, '\P{^_ ETHIOPIC_Extended_A}', "");
-    Error('\p{	-IS_ETHIOPIC_extended_a:=}');
-    Error('\P{	-IS_ETHIOPIC_extended_a:=}');
+    Expect(1, 43823, '\p{ ETHIOPIC_extended_A}', "");
+    Expect(0, 43823, '\p{^ ETHIOPIC_extended_A}', "");
+    Expect(0, 43823, '\P{ ETHIOPIC_extended_A}', "");
+    Expect(1, 43823, '\P{^ ETHIOPIC_extended_A}', "");
+    Expect(0, 43824, '\p{ ETHIOPIC_extended_A}', "");
+    Expect(1, 43824, '\p{^ ETHIOPIC_extended_A}', "");
+    Expect(1, 43824, '\P{ ETHIOPIC_extended_A}', "");
+    Expect(0, 43824, '\P{^ ETHIOPIC_extended_A}', "");
+    Error('\p{:=-Is_Ethiopic_Extended_A}');
+    Error('\P{:=-Is_Ethiopic_Extended_A}');
     Expect(1, 43823, '\p{isethiopicextendeda}', "");
     Expect(0, 43823, '\p{^isethiopicextendeda}', "");
     Expect(0, 43823, '\P{isethiopicextendeda}', "");
@@ -97829,16 +98851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43824, '\p{^isethiopicextendeda}', "");
     Expect(1, 43824, '\P{isethiopicextendeda}', "");
     Expect(0, 43824, '\P{^isethiopicextendeda}', "");
-    Expect(1, 43823, '\p{	_Is_Ethiopic_Extended_A}', "");
-    Expect(0, 43823, '\p{^	_Is_Ethiopic_Extended_A}', "");
-    Expect(0, 43823, '\P{	_Is_Ethiopic_Extended_A}', "");
-    Expect(1, 43823, '\P{^	_Is_Ethiopic_Extended_A}', "");
-    Expect(0, 43824, '\p{	_Is_Ethiopic_Extended_A}', "");
-    Expect(1, 43824, '\p{^	_Is_Ethiopic_Extended_A}', "");
-    Expect(1, 43824, '\P{	_Is_Ethiopic_Extended_A}', "");
-    Expect(0, 43824, '\P{^	_Is_Ethiopic_Extended_A}', "");
-    Error('\p{_	in_Ethiopic_Extended_A:=}');
-    Error('\P{_	in_Ethiopic_Extended_A:=}');
+    Expect(1, 43823, '\p{ _IS_ethiopic_Extended_A}', "");
+    Expect(0, 43823, '\p{^ _IS_ethiopic_Extended_A}', "");
+    Expect(0, 43823, '\P{ _IS_ethiopic_Extended_A}', "");
+    Expect(1, 43823, '\P{^ _IS_ethiopic_Extended_A}', "");
+    Expect(0, 43824, '\p{ _IS_ethiopic_Extended_A}', "");
+    Expect(1, 43824, '\p{^ _IS_ethiopic_Extended_A}', "");
+    Expect(1, 43824, '\P{ _IS_ethiopic_Extended_A}', "");
+    Expect(0, 43824, '\P{^ _IS_ethiopic_Extended_A}', "");
+    Error('\p{_	In_Ethiopic_extended_A:=}');
+    Error('\P{_	In_Ethiopic_extended_A:=}');
     Expect(1, 43823, '\p{inethiopicextendeda}', "");
     Expect(0, 43823, '\p{^inethiopicextendeda}', "");
     Expect(0, 43823, '\P{inethiopicextendeda}', "");
@@ -97847,16 +98869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43824, '\p{^inethiopicextendeda}', "");
     Expect(1, 43824, '\P{inethiopicextendeda}', "");
     Expect(0, 43824, '\P{^inethiopicextendeda}', "");
-    Expect(1, 43823, '\p{ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(0, 43823, '\p{^ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(0, 43823, '\P{ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(1, 43823, '\P{^ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(0, 43824, '\p{ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(1, 43824, '\p{^ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(1, 43824, '\P{ _In_Ethiopic_EXTENDED_A}', "");
-    Expect(0, 43824, '\P{^ _In_Ethiopic_EXTENDED_A}', "");
-    Error('\p{	/a/ethiopic_Ext_A}');
-    Error('\P{	/a/ethiopic_Ext_A}');
+    Expect(1, 43823, '\p{-_IN_ethiopic_Extended_A}', "");
+    Expect(0, 43823, '\p{^-_IN_ethiopic_Extended_A}', "");
+    Expect(0, 43823, '\P{-_IN_ethiopic_Extended_A}', "");
+    Expect(1, 43823, '\P{^-_IN_ethiopic_Extended_A}', "");
+    Expect(0, 43824, '\p{-_IN_ethiopic_Extended_A}', "");
+    Expect(1, 43824, '\p{^-_IN_ethiopic_Extended_A}', "");
+    Expect(1, 43824, '\P{-_IN_ethiopic_Extended_A}', "");
+    Expect(0, 43824, '\P{^-_IN_ethiopic_Extended_A}', "");
+    Error('\p{/a/	 ethiopic_Ext_a}');
+    Error('\P{/a/	 ethiopic_Ext_a}');
     Expect(1, 43823, '\p{ethiopicexta}', "");
     Expect(0, 43823, '\p{^ethiopicexta}', "");
     Expect(0, 43823, '\P{ethiopicexta}', "");
@@ -97865,16 +98887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43824, '\p{^ethiopicexta}', "");
     Expect(1, 43824, '\P{ethiopicexta}', "");
     Expect(0, 43824, '\P{^ethiopicexta}', "");
-    Expect(1, 43823, '\p{ ETHIOPIC_EXT_a}', "");
-    Expect(0, 43823, '\p{^ ETHIOPIC_EXT_a}', "");
-    Expect(0, 43823, '\P{ ETHIOPIC_EXT_a}', "");
-    Expect(1, 43823, '\P{^ ETHIOPIC_EXT_a}', "");
-    Expect(0, 43824, '\p{ ETHIOPIC_EXT_a}', "");
-    Expect(1, 43824, '\p{^ ETHIOPIC_EXT_a}', "");
-    Expect(1, 43824, '\P{ ETHIOPIC_EXT_a}', "");
-    Expect(0, 43824, '\P{^ ETHIOPIC_EXT_a}', "");
-    Error('\p{/a/-Is_ethiopic_ext_A}');
-    Error('\P{/a/-Is_ethiopic_ext_A}');
+    Expect(1, 43823, '\p{-Ethiopic_Ext_a}', "");
+    Expect(0, 43823, '\p{^-Ethiopic_Ext_a}', "");
+    Expect(0, 43823, '\P{-Ethiopic_Ext_a}', "");
+    Expect(1, 43823, '\P{^-Ethiopic_Ext_a}', "");
+    Expect(0, 43824, '\p{-Ethiopic_Ext_a}', "");
+    Expect(1, 43824, '\p{^-Ethiopic_Ext_a}', "");
+    Expect(1, 43824, '\P{-Ethiopic_Ext_a}', "");
+    Expect(0, 43824, '\P{^-Ethiopic_Ext_a}', "");
+    Error('\p{	/a/IS_ethiopic_ext_a}');
+    Error('\P{	/a/IS_ethiopic_ext_a}');
     Expect(1, 43823, '\p{isethiopicexta}', "");
     Expect(0, 43823, '\p{^isethiopicexta}', "");
     Expect(0, 43823, '\P{isethiopicexta}', "");
@@ -97883,16 +98905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43824, '\p{^isethiopicexta}', "");
     Expect(1, 43824, '\P{isethiopicexta}', "");
     Expect(0, 43824, '\P{^isethiopicexta}', "");
-    Expect(1, 43823, '\p{	 is_ethiopic_Ext_a}', "");
-    Expect(0, 43823, '\p{^	 is_ethiopic_Ext_a}', "");
-    Expect(0, 43823, '\P{	 is_ethiopic_Ext_a}', "");
-    Expect(1, 43823, '\P{^	 is_ethiopic_Ext_a}', "");
-    Expect(0, 43824, '\p{	 is_ethiopic_Ext_a}', "");
-    Expect(1, 43824, '\p{^	 is_ethiopic_Ext_a}', "");
-    Expect(1, 43824, '\P{	 is_ethiopic_Ext_a}', "");
-    Expect(0, 43824, '\P{^	 is_ethiopic_Ext_a}', "");
-    Error('\p{-	In_Ethiopic_Ext_A/a/}');
-    Error('\P{-	In_Ethiopic_Ext_A/a/}');
+    Expect(1, 43823, '\p{- Is_Ethiopic_EXT_A}', "");
+    Expect(0, 43823, '\p{^- Is_Ethiopic_EXT_A}', "");
+    Expect(0, 43823, '\P{- Is_Ethiopic_EXT_A}', "");
+    Expect(1, 43823, '\P{^- Is_Ethiopic_EXT_A}', "");
+    Expect(0, 43824, '\p{- Is_Ethiopic_EXT_A}', "");
+    Expect(1, 43824, '\p{^- Is_Ethiopic_EXT_A}', "");
+    Expect(1, 43824, '\P{- Is_Ethiopic_EXT_A}', "");
+    Expect(0, 43824, '\P{^- Is_Ethiopic_EXT_A}', "");
+    Error('\p{-/a/in_ETHIOPIC_Ext_A}');
+    Error('\P{-/a/in_ETHIOPIC_Ext_A}');
     Expect(1, 43823, '\p{inethiopicexta}', "");
     Expect(0, 43823, '\p{^inethiopicexta}', "");
     Expect(0, 43823, '\P{inethiopicexta}', "");
@@ -97901,16 +98923,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43824, '\p{^inethiopicexta}', "");
     Expect(1, 43824, '\P{inethiopicexta}', "");
     Expect(0, 43824, '\P{^inethiopicexta}', "");
-    Expect(1, 43823, '\p{-	In_ETHIOPIC_ext_A}', "");
-    Expect(0, 43823, '\p{^-	In_ETHIOPIC_ext_A}', "");
-    Expect(0, 43823, '\P{-	In_ETHIOPIC_ext_A}', "");
-    Expect(1, 43823, '\P{^-	In_ETHIOPIC_ext_A}', "");
-    Expect(0, 43824, '\p{-	In_ETHIOPIC_ext_A}', "");
-    Expect(1, 43824, '\p{^-	In_ETHIOPIC_ext_A}', "");
-    Expect(1, 43824, '\P{-	In_ETHIOPIC_ext_A}', "");
-    Expect(0, 43824, '\P{^-	In_ETHIOPIC_ext_A}', "");
-    Error('\p{ 	ETHIOPIC_EXTENDED_B/a/}');
-    Error('\P{ 	ETHIOPIC_EXTENDED_B/a/}');
+    Expect(1, 43823, '\p{-_In_ETHIOPIC_Ext_A}', "");
+    Expect(0, 43823, '\p{^-_In_ETHIOPIC_Ext_A}', "");
+    Expect(0, 43823, '\P{-_In_ETHIOPIC_Ext_A}', "");
+    Expect(1, 43823, '\P{^-_In_ETHIOPIC_Ext_A}', "");
+    Expect(0, 43824, '\p{-_In_ETHIOPIC_Ext_A}', "");
+    Expect(1, 43824, '\p{^-_In_ETHIOPIC_Ext_A}', "");
+    Expect(1, 43824, '\P{-_In_ETHIOPIC_Ext_A}', "");
+    Expect(0, 43824, '\P{^-_In_ETHIOPIC_Ext_A}', "");
+    Error('\p{_	ethiopic_Extended_B:=}');
+    Error('\P{_	ethiopic_Extended_B:=}');
     Expect(1, 124927, '\p{ethiopicextendedb}', "");
     Expect(0, 124927, '\p{^ethiopicextendedb}', "");
     Expect(0, 124927, '\P{ethiopicextendedb}', "");
@@ -97919,16 +98941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124928, '\p{^ethiopicextendedb}', "");
     Expect(1, 124928, '\P{ethiopicextendedb}', "");
     Expect(0, 124928, '\P{^ethiopicextendedb}', "");
-    Expect(1, 124927, '\p{ _Ethiopic_Extended_B}', "");
-    Expect(0, 124927, '\p{^ _Ethiopic_Extended_B}', "");
-    Expect(0, 124927, '\P{ _Ethiopic_Extended_B}', "");
-    Expect(1, 124927, '\P{^ _Ethiopic_Extended_B}', "");
-    Expect(0, 124928, '\p{ _Ethiopic_Extended_B}', "");
-    Expect(1, 124928, '\p{^ _Ethiopic_Extended_B}', "");
-    Expect(1, 124928, '\P{ _Ethiopic_Extended_B}', "");
-    Expect(0, 124928, '\P{^ _Ethiopic_Extended_B}', "");
-    Error('\p{/a/	-Is_ETHIOPIC_Extended_B}');
-    Error('\P{/a/	-Is_ETHIOPIC_Extended_B}');
+    Expect(1, 124927, '\p{_-Ethiopic_Extended_B}', "");
+    Expect(0, 124927, '\p{^_-Ethiopic_Extended_B}', "");
+    Expect(0, 124927, '\P{_-Ethiopic_Extended_B}', "");
+    Expect(1, 124927, '\P{^_-Ethiopic_Extended_B}', "");
+    Expect(0, 124928, '\p{_-Ethiopic_Extended_B}', "");
+    Expect(1, 124928, '\p{^_-Ethiopic_Extended_B}', "");
+    Expect(1, 124928, '\P{_-Ethiopic_Extended_B}', "");
+    Expect(0, 124928, '\P{^_-Ethiopic_Extended_B}', "");
+    Error('\p{:= _IS_ETHIOPIC_Extended_B}');
+    Error('\P{:= _IS_ETHIOPIC_Extended_B}');
     Expect(1, 124927, '\p{isethiopicextendedb}', "");
     Expect(0, 124927, '\p{^isethiopicextendedb}', "");
     Expect(0, 124927, '\P{isethiopicextendedb}', "");
@@ -97937,16 +98959,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124928, '\p{^isethiopicextendedb}', "");
     Expect(1, 124928, '\P{isethiopicextendedb}', "");
     Expect(0, 124928, '\P{^isethiopicextendedb}', "");
-    Expect(1, 124927, '\p{_ is_Ethiopic_Extended_b}', "");
-    Expect(0, 124927, '\p{^_ is_Ethiopic_Extended_b}', "");
-    Expect(0, 124927, '\P{_ is_Ethiopic_Extended_b}', "");
-    Expect(1, 124927, '\P{^_ is_Ethiopic_Extended_b}', "");
-    Expect(0, 124928, '\p{_ is_Ethiopic_Extended_b}', "");
-    Expect(1, 124928, '\p{^_ is_Ethiopic_Extended_b}', "");
-    Expect(1, 124928, '\P{_ is_Ethiopic_Extended_b}', "");
-    Expect(0, 124928, '\P{^_ is_Ethiopic_Extended_b}', "");
-    Error('\p{/a/ _in_ETHIOPIC_Extended_B}');
-    Error('\P{/a/ _in_ETHIOPIC_Extended_B}');
+    Expect(1, 124927, '\p{		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124927, '\p{^		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124927, '\P{		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(1, 124927, '\P{^		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124928, '\p{		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(1, 124928, '\p{^		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(1, 124928, '\P{		IS_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124928, '\P{^		IS_Ethiopic_EXTENDED_B}', "");
+    Error('\p{  in_ETHIOPIC_EXTENDED_b:=}');
+    Error('\P{  in_ETHIOPIC_EXTENDED_b:=}');
     Expect(1, 124927, '\p{inethiopicextendedb}', "");
     Expect(0, 124927, '\p{^inethiopicextendedb}', "");
     Expect(0, 124927, '\P{inethiopicextendedb}', "");
@@ -97955,16 +98977,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124928, '\p{^inethiopicextendedb}', "");
     Expect(1, 124928, '\P{inethiopicextendedb}', "");
     Expect(0, 124928, '\P{^inethiopicextendedb}', "");
-    Expect(1, 124927, '\p{	-In_ethiopic_extended_B}', "");
-    Expect(0, 124927, '\p{^	-In_ethiopic_extended_B}', "");
-    Expect(0, 124927, '\P{	-In_ethiopic_extended_B}', "");
-    Expect(1, 124927, '\P{^	-In_ethiopic_extended_B}', "");
-    Expect(0, 124928, '\p{	-In_ethiopic_extended_B}', "");
-    Expect(1, 124928, '\p{^	-In_ethiopic_extended_B}', "");
-    Expect(1, 124928, '\P{	-In_ethiopic_extended_B}', "");
-    Expect(0, 124928, '\P{^	-In_ethiopic_extended_B}', "");
-    Error('\p{__Ethiopic_Ext_B/a/}');
-    Error('\P{__Ethiopic_Ext_B/a/}');
+    Expect(1, 124927, '\p{_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124927, '\p{^_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124927, '\P{_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(1, 124927, '\P{^_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124928, '\p{_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(1, 124928, '\p{^_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(1, 124928, '\P{_	In_Ethiopic_EXTENDED_B}', "");
+    Expect(0, 124928, '\P{^_	In_Ethiopic_EXTENDED_B}', "");
+    Error('\p{:=		ethiopic_EXT_b}');
+    Error('\P{:=		ethiopic_EXT_b}');
     Expect(1, 124927, '\p{ethiopicextb}', "");
     Expect(0, 124927, '\p{^ethiopicextb}', "");
     Expect(0, 124927, '\P{ethiopicextb}', "");
@@ -97973,16 +98995,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124928, '\p{^ethiopicextb}', "");
     Expect(1, 124928, '\P{ethiopicextb}', "");
     Expect(0, 124928, '\P{^ethiopicextb}', "");
-    Expect(1, 124927, '\p{  ETHIOPIC_Ext_B}', "");
-    Expect(0, 124927, '\p{^  ETHIOPIC_Ext_B}', "");
-    Expect(0, 124927, '\P{  ETHIOPIC_Ext_B}', "");
-    Expect(1, 124927, '\P{^  ETHIOPIC_Ext_B}', "");
-    Expect(0, 124928, '\p{  ETHIOPIC_Ext_B}', "");
-    Expect(1, 124928, '\p{^  ETHIOPIC_Ext_B}', "");
-    Expect(1, 124928, '\P{  ETHIOPIC_Ext_B}', "");
-    Expect(0, 124928, '\P{^  ETHIOPIC_Ext_B}', "");
-    Error('\p{:=IS_ETHIOPIC_EXT_b}');
-    Error('\P{:=IS_ETHIOPIC_EXT_b}');
+    Expect(1, 124927, '\p{-_Ethiopic_ext_B}', "");
+    Expect(0, 124927, '\p{^-_Ethiopic_ext_B}', "");
+    Expect(0, 124927, '\P{-_Ethiopic_ext_B}', "");
+    Expect(1, 124927, '\P{^-_Ethiopic_ext_B}', "");
+    Expect(0, 124928, '\p{-_Ethiopic_ext_B}', "");
+    Expect(1, 124928, '\p{^-_Ethiopic_ext_B}', "");
+    Expect(1, 124928, '\P{-_Ethiopic_ext_B}', "");
+    Expect(0, 124928, '\P{^-_Ethiopic_ext_B}', "");
+    Error('\p{:=- Is_Ethiopic_Ext_B}');
+    Error('\P{:=- Is_Ethiopic_Ext_B}');
     Expect(1, 124927, '\p{isethiopicextb}', "");
     Expect(0, 124927, '\p{^isethiopicextb}', "");
     Expect(0, 124927, '\P{isethiopicextb}', "");
@@ -97991,16 +99013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124928, '\p{^isethiopicextb}', "");
     Expect(1, 124928, '\P{isethiopicextb}', "");
     Expect(0, 124928, '\P{^isethiopicextb}', "");
-    Expect(1, 124927, '\p{	-Is_ethiopic_EXT_B}', "");
-    Expect(0, 124927, '\p{^	-Is_ethiopic_EXT_B}', "");
-    Expect(0, 124927, '\P{	-Is_ethiopic_EXT_B}', "");
-    Expect(1, 124927, '\P{^	-Is_ethiopic_EXT_B}', "");
-    Expect(0, 124928, '\p{	-Is_ethiopic_EXT_B}', "");
-    Expect(1, 124928, '\p{^	-Is_ethiopic_EXT_B}', "");
-    Expect(1, 124928, '\P{	-Is_ethiopic_EXT_B}', "");
-    Expect(0, 124928, '\P{^	-Is_ethiopic_EXT_B}', "");
-    Error('\p{-	In_ETHIOPIC_Ext_b:=}');
-    Error('\P{-	In_ETHIOPIC_Ext_b:=}');
+    Expect(1, 124927, '\p{	-Is_Ethiopic_Ext_B}', "");
+    Expect(0, 124927, '\p{^	-Is_Ethiopic_Ext_B}', "");
+    Expect(0, 124927, '\P{	-Is_Ethiopic_Ext_B}', "");
+    Expect(1, 124927, '\P{^	-Is_Ethiopic_Ext_B}', "");
+    Expect(0, 124928, '\p{	-Is_Ethiopic_Ext_B}', "");
+    Expect(1, 124928, '\p{^	-Is_Ethiopic_Ext_B}', "");
+    Expect(1, 124928, '\P{	-Is_Ethiopic_Ext_B}', "");
+    Expect(0, 124928, '\P{^	-Is_Ethiopic_Ext_B}', "");
+    Error('\p{/a/__IN_Ethiopic_Ext_B}');
+    Error('\P{/a/__IN_Ethiopic_Ext_B}');
     Expect(1, 124927, '\p{inethiopicextb}', "");
     Expect(0, 124927, '\p{^inethiopicextb}', "");
     Expect(0, 124927, '\P{inethiopicextb}', "");
@@ -98009,16 +99031,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 124928, '\p{^inethiopicextb}', "");
     Expect(1, 124928, '\P{inethiopicextb}', "");
     Expect(0, 124928, '\P{^inethiopicextb}', "");
-    Expect(1, 124927, '\p{	-in_ETHIOPIC_ext_B}', "");
-    Expect(0, 124927, '\p{^	-in_ETHIOPIC_ext_B}', "");
-    Expect(0, 124927, '\P{	-in_ETHIOPIC_ext_B}', "");
-    Expect(1, 124927, '\P{^	-in_ETHIOPIC_ext_B}', "");
-    Expect(0, 124928, '\p{	-in_ETHIOPIC_ext_B}', "");
-    Expect(1, 124928, '\p{^	-in_ETHIOPIC_ext_B}', "");
-    Expect(1, 124928, '\P{	-in_ETHIOPIC_ext_B}', "");
-    Expect(0, 124928, '\P{^	-in_ETHIOPIC_ext_B}', "");
-    Error('\p{:=_ETHIOPIC_supplement}');
-    Error('\P{:=_ETHIOPIC_supplement}');
+    Expect(1, 124927, '\p{  In_Ethiopic_EXT_B}', "");
+    Expect(0, 124927, '\p{^  In_Ethiopic_EXT_B}', "");
+    Expect(0, 124927, '\P{  In_Ethiopic_EXT_B}', "");
+    Expect(1, 124927, '\P{^  In_Ethiopic_EXT_B}', "");
+    Expect(0, 124928, '\p{  In_Ethiopic_EXT_B}', "");
+    Expect(1, 124928, '\p{^  In_Ethiopic_EXT_B}', "");
+    Expect(1, 124928, '\P{  In_Ethiopic_EXT_B}', "");
+    Expect(0, 124928, '\P{^  In_Ethiopic_EXT_B}', "");
+    Error('\p{_ ETHIOPIC_supplement/a/}');
+    Error('\P{_ ETHIOPIC_supplement/a/}');
     Expect(1, 5023, '\p{ethiopicsupplement}', "");
     Expect(0, 5023, '\p{^ethiopicsupplement}', "");
     Expect(0, 5023, '\P{ethiopicsupplement}', "");
@@ -98027,16 +99049,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5024, '\p{^ethiopicsupplement}', "");
     Expect(1, 5024, '\P{ethiopicsupplement}', "");
     Expect(0, 5024, '\P{^ethiopicsupplement}', "");
-    Expect(1, 5023, '\p{  ethiopic_Supplement}', "");
-    Expect(0, 5023, '\p{^  ethiopic_Supplement}', "");
-    Expect(0, 5023, '\P{  ethiopic_Supplement}', "");
-    Expect(1, 5023, '\P{^  ethiopic_Supplement}', "");
-    Expect(0, 5024, '\p{  ethiopic_Supplement}', "");
-    Expect(1, 5024, '\p{^  ethiopic_Supplement}', "");
-    Expect(1, 5024, '\P{  ethiopic_Supplement}', "");
-    Expect(0, 5024, '\P{^  ethiopic_Supplement}', "");
-    Error('\p{:=IS_ETHIOPIC_SUPPLEMENT}');
-    Error('\P{:=IS_ETHIOPIC_SUPPLEMENT}');
+    Expect(1, 5023, '\p{Ethiopic_Supplement}', "");
+    Expect(0, 5023, '\p{^Ethiopic_Supplement}', "");
+    Expect(0, 5023, '\P{Ethiopic_Supplement}', "");
+    Expect(1, 5023, '\P{^Ethiopic_Supplement}', "");
+    Expect(0, 5024, '\p{Ethiopic_Supplement}', "");
+    Expect(1, 5024, '\p{^Ethiopic_Supplement}', "");
+    Expect(1, 5024, '\P{Ethiopic_Supplement}', "");
+    Expect(0, 5024, '\P{^Ethiopic_Supplement}', "");
+    Error('\p{-/a/is_Ethiopic_supplement}');
+    Error('\P{-/a/is_Ethiopic_supplement}');
     Expect(1, 5023, '\p{isethiopicsupplement}', "");
     Expect(0, 5023, '\p{^isethiopicsupplement}', "");
     Expect(0, 5023, '\P{isethiopicsupplement}', "");
@@ -98045,16 +99067,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5024, '\p{^isethiopicsupplement}', "");
     Expect(1, 5024, '\P{isethiopicsupplement}', "");
     Expect(0, 5024, '\P{^isethiopicsupplement}', "");
-    Expect(1, 5023, '\p{_is_ethiopic_supplement}', "");
-    Expect(0, 5023, '\p{^_is_ethiopic_supplement}', "");
-    Expect(0, 5023, '\P{_is_ethiopic_supplement}', "");
-    Expect(1, 5023, '\P{^_is_ethiopic_supplement}', "");
-    Expect(0, 5024, '\p{_is_ethiopic_supplement}', "");
-    Expect(1, 5024, '\p{^_is_ethiopic_supplement}', "");
-    Expect(1, 5024, '\P{_is_ethiopic_supplement}', "");
-    Expect(0, 5024, '\P{^_is_ethiopic_supplement}', "");
-    Error('\p{/a/-	In_ethiopic_Supplement}');
-    Error('\P{/a/-	In_ethiopic_Supplement}');
+    Expect(1, 5023, '\p{- is_ethiopic_supplement}', "");
+    Expect(0, 5023, '\p{^- is_ethiopic_supplement}', "");
+    Expect(0, 5023, '\P{- is_ethiopic_supplement}', "");
+    Expect(1, 5023, '\P{^- is_ethiopic_supplement}', "");
+    Expect(0, 5024, '\p{- is_ethiopic_supplement}', "");
+    Expect(1, 5024, '\p{^- is_ethiopic_supplement}', "");
+    Expect(1, 5024, '\P{- is_ethiopic_supplement}', "");
+    Expect(0, 5024, '\P{^- is_ethiopic_supplement}', "");
+    Error('\p{	In_Ethiopic_supplement:=}');
+    Error('\P{	In_Ethiopic_supplement:=}');
     Expect(1, 5023, '\p{inethiopicsupplement}', "");
     Expect(0, 5023, '\p{^inethiopicsupplement}', "");
     Expect(0, 5023, '\P{inethiopicsupplement}', "");
@@ -98063,16 +99085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5024, '\p{^inethiopicsupplement}', "");
     Expect(1, 5024, '\P{inethiopicsupplement}', "");
     Expect(0, 5024, '\P{^inethiopicsupplement}', "");
-    Expect(1, 5023, '\p{_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(0, 5023, '\p{^_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(0, 5023, '\P{_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(1, 5023, '\P{^_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(0, 5024, '\p{_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(1, 5024, '\p{^_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(1, 5024, '\P{_-In_Ethiopic_SUPPLEMENT}', "");
-    Expect(0, 5024, '\P{^_-In_Ethiopic_SUPPLEMENT}', "");
-    Error('\p{:= ETHIOPIC_sup}');
-    Error('\P{:= ETHIOPIC_sup}');
+    Expect(1, 5023, '\p{IN_Ethiopic_Supplement}', "");
+    Expect(0, 5023, '\p{^IN_Ethiopic_Supplement}', "");
+    Expect(0, 5023, '\P{IN_Ethiopic_Supplement}', "");
+    Expect(1, 5023, '\P{^IN_Ethiopic_Supplement}', "");
+    Expect(0, 5024, '\p{IN_Ethiopic_Supplement}', "");
+    Expect(1, 5024, '\p{^IN_Ethiopic_Supplement}', "");
+    Expect(1, 5024, '\P{IN_Ethiopic_Supplement}', "");
+    Expect(0, 5024, '\P{^IN_Ethiopic_Supplement}', "");
+    Error('\p{/a/ETHIOPIC_Sup}');
+    Error('\P{/a/ETHIOPIC_Sup}');
     Expect(1, 5023, '\p{ethiopicsup}', "");
     Expect(0, 5023, '\p{^ethiopicsup}', "");
     Expect(0, 5023, '\P{ethiopicsup}', "");
@@ -98081,16 +99103,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5024, '\p{^ethiopicsup}', "");
     Expect(1, 5024, '\P{ethiopicsup}', "");
     Expect(0, 5024, '\P{^ethiopicsup}', "");
-    Expect(1, 5023, '\p{_ethiopic_Sup}', "");
-    Expect(0, 5023, '\p{^_ethiopic_Sup}', "");
-    Expect(0, 5023, '\P{_ethiopic_Sup}', "");
-    Expect(1, 5023, '\P{^_ethiopic_Sup}', "");
-    Expect(0, 5024, '\p{_ethiopic_Sup}', "");
-    Expect(1, 5024, '\p{^_ethiopic_Sup}', "");
-    Expect(1, 5024, '\P{_ethiopic_Sup}', "");
-    Expect(0, 5024, '\P{^_ethiopic_Sup}', "");
-    Error('\p{--Is_Ethiopic_Sup:=}');
-    Error('\P{--Is_Ethiopic_Sup:=}');
+    Expect(1, 5023, '\p{	_Ethiopic_SUP}', "");
+    Expect(0, 5023, '\p{^	_Ethiopic_SUP}', "");
+    Expect(0, 5023, '\P{	_Ethiopic_SUP}', "");
+    Expect(1, 5023, '\P{^	_Ethiopic_SUP}', "");
+    Expect(0, 5024, '\p{	_Ethiopic_SUP}', "");
+    Expect(1, 5024, '\p{^	_Ethiopic_SUP}', "");
+    Expect(1, 5024, '\P{	_Ethiopic_SUP}', "");
+    Expect(0, 5024, '\P{^	_Ethiopic_SUP}', "");
+    Error('\p{	Is_Ethiopic_Sup/a/}');
+    Error('\P{	Is_Ethiopic_Sup/a/}');
     Expect(1, 5023, '\p{isethiopicsup}', "");
     Expect(0, 5023, '\p{^isethiopicsup}', "");
     Expect(0, 5023, '\P{isethiopicsup}', "");
@@ -98099,16 +99121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5024, '\p{^isethiopicsup}', "");
     Expect(1, 5024, '\P{isethiopicsup}', "");
     Expect(0, 5024, '\P{^isethiopicsup}', "");
-    Expect(1, 5023, '\p{- Is_Ethiopic_SUP}', "");
-    Expect(0, 5023, '\p{^- Is_Ethiopic_SUP}', "");
-    Expect(0, 5023, '\P{- Is_Ethiopic_SUP}', "");
-    Expect(1, 5023, '\P{^- Is_Ethiopic_SUP}', "");
-    Expect(0, 5024, '\p{- Is_Ethiopic_SUP}', "");
-    Expect(1, 5024, '\p{^- Is_Ethiopic_SUP}', "");
-    Expect(1, 5024, '\P{- Is_Ethiopic_SUP}', "");
-    Expect(0, 5024, '\P{^- Is_Ethiopic_SUP}', "");
-    Error('\p{-:=In_ethiopic_SUP}');
-    Error('\P{-:=In_ethiopic_SUP}');
+    Expect(1, 5023, '\p{ -IS_Ethiopic_SUP}', "");
+    Expect(0, 5023, '\p{^ -IS_Ethiopic_SUP}', "");
+    Expect(0, 5023, '\P{ -IS_Ethiopic_SUP}', "");
+    Expect(1, 5023, '\P{^ -IS_Ethiopic_SUP}', "");
+    Expect(0, 5024, '\p{ -IS_Ethiopic_SUP}', "");
+    Expect(1, 5024, '\p{^ -IS_Ethiopic_SUP}', "");
+    Expect(1, 5024, '\P{ -IS_Ethiopic_SUP}', "");
+    Expect(0, 5024, '\P{^ -IS_Ethiopic_SUP}', "");
+    Error('\p{:=-In_Ethiopic_SUP}');
+    Error('\P{:=-In_Ethiopic_SUP}');
     Expect(1, 5023, '\p{inethiopicsup}', "");
     Expect(0, 5023, '\p{^inethiopicsup}', "");
     Expect(0, 5023, '\P{inethiopicsup}', "");
@@ -98117,14 +99139,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5024, '\p{^inethiopicsup}', "");
     Expect(1, 5024, '\P{inethiopicsup}', "");
     Expect(0, 5024, '\P{^inethiopicsup}', "");
-    Expect(1, 5023, '\p{ _in_Ethiopic_sup}', "");
-    Expect(0, 5023, '\p{^ _in_Ethiopic_sup}', "");
-    Expect(0, 5023, '\P{ _in_Ethiopic_sup}', "");
-    Expect(1, 5023, '\P{^ _in_Ethiopic_sup}', "");
-    Expect(0, 5024, '\p{ _in_Ethiopic_sup}', "");
-    Expect(1, 5024, '\p{^ _in_Ethiopic_sup}', "");
-    Expect(1, 5024, '\P{ _in_Ethiopic_sup}', "");
-    Expect(0, 5024, '\P{^ _in_Ethiopic_sup}', "");
+    Expect(1, 5023, '\p{_-in_ETHIOPIC_sup}', "");
+    Expect(0, 5023, '\p{^_-in_ETHIOPIC_sup}', "");
+    Expect(0, 5023, '\P{_-in_ETHIOPIC_sup}', "");
+    Expect(1, 5023, '\P{^_-in_ETHIOPIC_sup}', "");
+    Expect(0, 5024, '\p{_-in_ETHIOPIC_sup}', "");
+    Expect(1, 5024, '\p{^_-in_ETHIOPIC_sup}', "");
+    Expect(1, 5024, '\P{_-in_ETHIOPIC_sup}', "");
+    Expect(0, 5024, '\P{^_-in_ETHIOPIC_sup}', "");
     Error('\p{Expands_On_NFC}');
     Error('\P{Expands_On_NFC}');
     Error('\p{XO_NFC}');
@@ -98141,8 +99163,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Expands_On_NFKD}');
     Error('\p{XO_NFKD}');
     Error('\P{XO_NFKD}');
-    Error('\p{ extended_Pictographic:=}');
-    Error('\P{ extended_Pictographic:=}');
+    Error('\p{	:=Extended_Pictographic}');
+    Error('\P{	:=Extended_Pictographic}');
     Expect(1, 131069, '\p{extendedpictographic}', "");
     Expect(0, 131069, '\p{^extendedpictographic}', "");
     Expect(0, 131069, '\P{extendedpictographic}', "");
@@ -98151,16 +99173,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131072, '\p{^extendedpictographic}', "");
     Expect(1, 131072, '\P{extendedpictographic}', "");
     Expect(0, 131072, '\P{^extendedpictographic}', "");
-    Expect(1, 131069, '\p{__EXTENDED_pictographic}', "");
-    Expect(0, 131069, '\p{^__EXTENDED_pictographic}', "");
-    Expect(0, 131069, '\P{__EXTENDED_pictographic}', "");
-    Expect(1, 131069, '\P{^__EXTENDED_pictographic}', "");
-    Expect(0, 131072, '\p{__EXTENDED_pictographic}', "");
-    Expect(1, 131072, '\p{^__EXTENDED_pictographic}', "");
-    Expect(1, 131072, '\P{__EXTENDED_pictographic}', "");
-    Expect(0, 131072, '\P{^__EXTENDED_pictographic}', "");
-    Error('\p{ /a/is_extended_Pictographic}');
-    Error('\P{ /a/is_extended_Pictographic}');
+    Expect(1, 131069, '\p{		EXTENDED_Pictographic}', "");
+    Expect(0, 131069, '\p{^		EXTENDED_Pictographic}', "");
+    Expect(0, 131069, '\P{		EXTENDED_Pictographic}', "");
+    Expect(1, 131069, '\P{^		EXTENDED_Pictographic}', "");
+    Expect(0, 131072, '\p{		EXTENDED_Pictographic}', "");
+    Expect(1, 131072, '\p{^		EXTENDED_Pictographic}', "");
+    Expect(1, 131072, '\P{		EXTENDED_Pictographic}', "");
+    Expect(0, 131072, '\P{^		EXTENDED_Pictographic}', "");
+    Error('\p{/a/_ Is_Extended_PICTOGRAPHIC}');
+    Error('\P{/a/_ Is_Extended_PICTOGRAPHIC}');
     Expect(1, 131069, '\p{isextendedpictographic}', "");
     Expect(0, 131069, '\p{^isextendedpictographic}', "");
     Expect(0, 131069, '\P{isextendedpictographic}', "");
@@ -98169,16 +99191,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131072, '\p{^isextendedpictographic}', "");
     Expect(1, 131072, '\P{isextendedpictographic}', "");
     Expect(0, 131072, '\P{^isextendedpictographic}', "");
-    Expect(1, 131069, '\p{  Is_Extended_Pictographic}', "");
-    Expect(0, 131069, '\p{^  Is_Extended_Pictographic}', "");
-    Expect(0, 131069, '\P{  Is_Extended_Pictographic}', "");
-    Expect(1, 131069, '\P{^  Is_Extended_Pictographic}', "");
-    Expect(0, 131072, '\p{  Is_Extended_Pictographic}', "");
-    Expect(1, 131072, '\p{^  Is_Extended_Pictographic}', "");
-    Expect(1, 131072, '\P{  Is_Extended_Pictographic}', "");
-    Expect(0, 131072, '\P{^  Is_Extended_Pictographic}', "");
-    Error('\p{:=_ExtPict}');
-    Error('\P{:=_ExtPict}');
+    Expect(1, 131069, '\p{_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(0, 131069, '\p{^_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(0, 131069, '\P{_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(1, 131069, '\P{^_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(0, 131072, '\p{_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(1, 131072, '\p{^_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(1, 131072, '\P{_Is_Extended_PICTOGRAPHIC}', "");
+    Expect(0, 131072, '\P{^_Is_Extended_PICTOGRAPHIC}', "");
+    Error('\p{-:=ExtPict}');
+    Error('\P{-:=ExtPict}');
     Expect(1, 131069, '\p{extpict}', "");
     Expect(0, 131069, '\p{^extpict}', "");
     Expect(0, 131069, '\P{extpict}', "");
@@ -98187,16 +99209,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131072, '\p{^extpict}', "");
     Expect(1, 131072, '\P{extpict}', "");
     Expect(0, 131072, '\P{^extpict}', "");
-    Expect(1, 131069, '\p{-	ExtPict}', "");
-    Expect(0, 131069, '\p{^-	ExtPict}', "");
-    Expect(0, 131069, '\P{-	ExtPict}', "");
-    Expect(1, 131069, '\P{^-	ExtPict}', "");
-    Expect(0, 131072, '\p{-	ExtPict}', "");
-    Expect(1, 131072, '\p{^-	ExtPict}', "");
-    Expect(1, 131072, '\P{-	ExtPict}', "");
-    Expect(0, 131072, '\P{^-	ExtPict}', "");
-    Error('\p{	/a/is_extpict}');
-    Error('\P{	/a/is_extpict}');
+    Expect(1, 131069, '\p{  extpict}', "");
+    Expect(0, 131069, '\p{^  extpict}', "");
+    Expect(0, 131069, '\P{  extpict}', "");
+    Expect(1, 131069, '\P{^  extpict}', "");
+    Expect(0, 131072, '\p{  extpict}', "");
+    Expect(1, 131072, '\p{^  extpict}', "");
+    Expect(1, 131072, '\P{  extpict}', "");
+    Expect(0, 131072, '\P{^  extpict}', "");
+    Error('\p{--Is_EXTPICT/a/}');
+    Error('\P{--Is_EXTPICT/a/}');
     Expect(1, 131069, '\p{isextpict}', "");
     Expect(0, 131069, '\p{^isextpict}', "");
     Expect(0, 131069, '\P{isextpict}', "");
@@ -98205,16 +99227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 131072, '\p{^isextpict}', "");
     Expect(1, 131072, '\P{isextpict}', "");
     Expect(0, 131072, '\P{^isextpict}', "");
-    Expect(1, 131069, '\p{-	Is_EXTPICT}', "");
-    Expect(0, 131069, '\p{^-	Is_EXTPICT}', "");
-    Expect(0, 131069, '\P{-	Is_EXTPICT}', "");
-    Expect(1, 131069, '\P{^-	Is_EXTPICT}', "");
-    Expect(0, 131072, '\p{-	Is_EXTPICT}', "");
-    Expect(1, 131072, '\p{^-	Is_EXTPICT}', "");
-    Expect(1, 131072, '\P{-	Is_EXTPICT}', "");
-    Expect(0, 131072, '\P{^-	Is_EXTPICT}', "");
-    Error('\p{:=-Extender}');
-    Error('\P{:=-Extender}');
+    Expect(1, 131069, '\p{ _Is_extpict}', "");
+    Expect(0, 131069, '\p{^ _Is_extpict}', "");
+    Expect(0, 131069, '\P{ _Is_extpict}', "");
+    Expect(1, 131069, '\P{^ _Is_extpict}', "");
+    Expect(0, 131072, '\p{ _Is_extpict}', "");
+    Expect(1, 131072, '\p{^ _Is_extpict}', "");
+    Expect(1, 131072, '\P{ _Is_extpict}', "");
+    Expect(0, 131072, '\P{^ _Is_extpict}', "");
+    Error('\p{:= extender}');
+    Error('\P{:= extender}');
     Expect(1, 125254, '\p{extender}', "");
     Expect(0, 125254, '\p{^extender}', "");
     Expect(0, 125254, '\P{extender}', "");
@@ -98223,16 +99245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125255, '\p{^extender}', "");
     Expect(1, 125255, '\P{extender}', "");
     Expect(0, 125255, '\P{^extender}', "");
-    Expect(1, 125254, '\p{--EXTENDER}', "");
-    Expect(0, 125254, '\p{^--EXTENDER}', "");
-    Expect(0, 125254, '\P{--EXTENDER}', "");
-    Expect(1, 125254, '\P{^--EXTENDER}', "");
-    Expect(0, 125255, '\p{--EXTENDER}', "");
-    Expect(1, 125255, '\p{^--EXTENDER}', "");
-    Expect(1, 125255, '\P{--EXTENDER}', "");
-    Expect(0, 125255, '\P{^--EXTENDER}', "");
-    Error('\p{  is_Extender:=}');
-    Error('\P{  is_Extender:=}');
+    Expect(1, 125254, '\p{ _Extender}', "");
+    Expect(0, 125254, '\p{^ _Extender}', "");
+    Expect(0, 125254, '\P{ _Extender}', "");
+    Expect(1, 125254, '\P{^ _Extender}', "");
+    Expect(0, 125255, '\p{ _Extender}', "");
+    Expect(1, 125255, '\p{^ _Extender}', "");
+    Expect(1, 125255, '\P{ _Extender}', "");
+    Expect(0, 125255, '\P{^ _Extender}', "");
+    Error('\p{_ IS_Extender/a/}');
+    Error('\P{_ IS_Extender/a/}');
     Expect(1, 125254, '\p{isextender}', "");
     Expect(0, 125254, '\p{^isextender}', "");
     Expect(0, 125254, '\P{isextender}', "");
@@ -98241,16 +99263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125255, '\p{^isextender}', "");
     Expect(1, 125255, '\P{isextender}', "");
     Expect(0, 125255, '\P{^isextender}', "");
-    Expect(1, 125254, '\p{ _Is_Extender}', "");
-    Expect(0, 125254, '\p{^ _Is_Extender}', "");
-    Expect(0, 125254, '\P{ _Is_Extender}', "");
-    Expect(1, 125254, '\P{^ _Is_Extender}', "");
-    Expect(0, 125255, '\p{ _Is_Extender}', "");
-    Expect(1, 125255, '\p{^ _Is_Extender}', "");
-    Expect(1, 125255, '\P{ _Is_Extender}', "");
-    Expect(0, 125255, '\P{^ _Is_Extender}', "");
-    Error('\p{:=--Ext}');
-    Error('\P{:=--Ext}');
+    Expect(1, 125254, '\p{ is_EXTENDER}', "");
+    Expect(0, 125254, '\p{^ is_EXTENDER}', "");
+    Expect(0, 125254, '\P{ is_EXTENDER}', "");
+    Expect(1, 125254, '\P{^ is_EXTENDER}', "");
+    Expect(0, 125255, '\p{ is_EXTENDER}', "");
+    Expect(1, 125255, '\p{^ is_EXTENDER}', "");
+    Expect(1, 125255, '\P{ is_EXTENDER}', "");
+    Expect(0, 125255, '\P{^ is_EXTENDER}', "");
+    Error('\p{__Ext/a/}');
+    Error('\P{__Ext/a/}');
     Expect(1, 125254, '\p{ext}', "");
     Expect(0, 125254, '\p{^ext}', "");
     Expect(0, 125254, '\P{ext}', "");
@@ -98259,16 +99281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125255, '\p{^ext}', "");
     Expect(1, 125255, '\P{ext}', "");
     Expect(0, 125255, '\P{^ext}', "");
-    Expect(1, 125254, '\p{-ext}', "");
-    Expect(0, 125254, '\p{^-ext}', "");
-    Expect(0, 125254, '\P{-ext}', "");
-    Expect(1, 125254, '\P{^-ext}', "");
-    Expect(0, 125255, '\p{-ext}', "");
-    Expect(1, 125255, '\p{^-ext}', "");
-    Expect(1, 125255, '\P{-ext}', "");
-    Expect(0, 125255, '\P{^-ext}', "");
-    Error('\p{:=_ IS_Ext}');
-    Error('\P{:=_ IS_Ext}');
+    Expect(1, 125254, '\p{ 	Ext}', "");
+    Expect(0, 125254, '\p{^ 	Ext}', "");
+    Expect(0, 125254, '\P{ 	Ext}', "");
+    Expect(1, 125254, '\P{^ 	Ext}', "");
+    Expect(0, 125255, '\p{ 	Ext}', "");
+    Expect(1, 125255, '\p{^ 	Ext}', "");
+    Expect(1, 125255, '\P{ 	Ext}', "");
+    Expect(0, 125255, '\P{^ 	Ext}', "");
+    Error('\p{/a/_IS_EXT}');
+    Error('\P{/a/_IS_EXT}');
     Expect(1, 125254, '\p{isext}', "");
     Expect(0, 125254, '\p{^isext}', "");
     Expect(0, 125254, '\P{isext}', "");
@@ -98277,16 +99299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125255, '\p{^isext}', "");
     Expect(1, 125255, '\P{isext}', "");
     Expect(0, 125255, '\P{^isext}', "");
-    Expect(1, 125254, '\p{_Is_ext}', "");
-    Expect(0, 125254, '\p{^_Is_ext}', "");
-    Expect(0, 125254, '\P{_Is_ext}', "");
-    Expect(1, 125254, '\P{^_Is_ext}', "");
-    Expect(0, 125255, '\p{_Is_ext}', "");
-    Expect(1, 125255, '\p{^_Is_ext}', "");
-    Expect(1, 125255, '\P{_Is_ext}', "");
-    Expect(0, 125255, '\P{^_Is_ext}', "");
-    Error('\p{:=Final_Punctuation}');
-    Error('\P{:=Final_Punctuation}');
+    Expect(1, 125254, '\p{_	IS_Ext}', "");
+    Expect(0, 125254, '\p{^_	IS_Ext}', "");
+    Expect(0, 125254, '\P{_	IS_Ext}', "");
+    Expect(1, 125254, '\P{^_	IS_Ext}', "");
+    Expect(0, 125255, '\p{_	IS_Ext}', "");
+    Expect(1, 125255, '\p{^_	IS_Ext}', "");
+    Expect(1, 125255, '\P{_	IS_Ext}', "");
+    Expect(0, 125255, '\P{^_	IS_Ext}', "");
+    Error('\p{:=  Final_Punctuation}');
+    Error('\P{:=  Final_Punctuation}');
     Expect(1, 11809, '\p{finalpunctuation}', "");
     Expect(0, 11809, '\p{^finalpunctuation}', "");
     Expect(0, 11809, '\P{finalpunctuation}', "");
@@ -98295,16 +99317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11810, '\p{^finalpunctuation}', "");
     Expect(1, 11810, '\P{finalpunctuation}', "");
     Expect(0, 11810, '\P{^finalpunctuation}', "");
-    Expect(1, 11809, '\p{_-Final_Punctuation}', "");
-    Expect(0, 11809, '\p{^_-Final_Punctuation}', "");
-    Expect(0, 11809, '\P{_-Final_Punctuation}', "");
-    Expect(1, 11809, '\P{^_-Final_Punctuation}', "");
-    Expect(0, 11810, '\p{_-Final_Punctuation}', "");
-    Expect(1, 11810, '\p{^_-Final_Punctuation}', "");
-    Expect(1, 11810, '\P{_-Final_Punctuation}', "");
-    Expect(0, 11810, '\P{^_-Final_Punctuation}', "");
-    Error('\p{	:=Is_FINAL_PUNCTUATION}');
-    Error('\P{	:=Is_FINAL_PUNCTUATION}');
+    Expect(1, 11809, '\p{-_Final_punctuation}', "");
+    Expect(0, 11809, '\p{^-_Final_punctuation}', "");
+    Expect(0, 11809, '\P{-_Final_punctuation}', "");
+    Expect(1, 11809, '\P{^-_Final_punctuation}', "");
+    Expect(0, 11810, '\p{-_Final_punctuation}', "");
+    Expect(1, 11810, '\p{^-_Final_punctuation}', "");
+    Expect(1, 11810, '\P{-_Final_punctuation}', "");
+    Expect(0, 11810, '\P{^-_Final_punctuation}', "");
+    Error('\p{_is_final_Punctuation/a/}');
+    Error('\P{_is_final_Punctuation/a/}');
     Expect(1, 11809, '\p{isfinalpunctuation}', "");
     Expect(0, 11809, '\p{^isfinalpunctuation}', "");
     Expect(0, 11809, '\P{isfinalpunctuation}', "");
@@ -98313,16 +99335,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11810, '\p{^isfinalpunctuation}', "");
     Expect(1, 11810, '\P{isfinalpunctuation}', "");
     Expect(0, 11810, '\P{^isfinalpunctuation}', "");
-    Expect(1, 11809, '\p{ Is_FINAL_PUNCTUATION}', "");
-    Expect(0, 11809, '\p{^ Is_FINAL_PUNCTUATION}', "");
-    Expect(0, 11809, '\P{ Is_FINAL_PUNCTUATION}', "");
-    Expect(1, 11809, '\P{^ Is_FINAL_PUNCTUATION}', "");
-    Expect(0, 11810, '\p{ Is_FINAL_PUNCTUATION}', "");
-    Expect(1, 11810, '\p{^ Is_FINAL_PUNCTUATION}', "");
-    Expect(1, 11810, '\P{ Is_FINAL_PUNCTUATION}', "");
-    Expect(0, 11810, '\P{^ Is_FINAL_PUNCTUATION}', "");
-    Error('\p{_pf/a/}');
-    Error('\P{_pf/a/}');
+    Expect(1, 11809, '\p{ 	Is_FINAL_Punctuation}', "");
+    Expect(0, 11809, '\p{^ 	Is_FINAL_Punctuation}', "");
+    Expect(0, 11809, '\P{ 	Is_FINAL_Punctuation}', "");
+    Expect(1, 11809, '\P{^ 	Is_FINAL_Punctuation}', "");
+    Expect(0, 11810, '\p{ 	Is_FINAL_Punctuation}', "");
+    Expect(1, 11810, '\p{^ 	Is_FINAL_Punctuation}', "");
+    Expect(1, 11810, '\P{ 	Is_FINAL_Punctuation}', "");
+    Expect(0, 11810, '\P{^ 	Is_FINAL_Punctuation}', "");
+    Error('\p{:= 	Pf}');
+    Error('\P{:= 	Pf}');
     Expect(1, 11809, '\p{pf}', "");
     Expect(0, 11809, '\p{^pf}', "");
     Expect(0, 11809, '\P{pf}', "");
@@ -98331,16 +99353,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11810, '\p{^pf}', "");
     Expect(1, 11810, '\P{pf}', "");
     Expect(0, 11810, '\P{^pf}', "");
-    Expect(1, 11809, '\p{	Pf}', "");
-    Expect(0, 11809, '\p{^	Pf}', "");
-    Expect(0, 11809, '\P{	Pf}', "");
-    Expect(1, 11809, '\P{^	Pf}', "");
-    Expect(0, 11810, '\p{	Pf}', "");
-    Expect(1, 11810, '\p{^	Pf}', "");
-    Expect(1, 11810, '\P{	Pf}', "");
-    Expect(0, 11810, '\P{^	Pf}', "");
-    Error('\p{/a/is_PF}');
-    Error('\P{/a/is_PF}');
+    Expect(1, 11809, '\p{-_Pf}', "");
+    Expect(0, 11809, '\p{^-_Pf}', "");
+    Expect(0, 11809, '\P{-_Pf}', "");
+    Expect(1, 11809, '\P{^-_Pf}', "");
+    Expect(0, 11810, '\p{-_Pf}', "");
+    Expect(1, 11810, '\p{^-_Pf}', "");
+    Expect(1, 11810, '\P{-_Pf}', "");
+    Expect(0, 11810, '\P{^-_Pf}', "");
+    Error('\p{ is_PF:=}');
+    Error('\P{ is_PF:=}');
     Expect(1, 11809, '\p{ispf}', "");
     Expect(0, 11809, '\p{^ispf}', "");
     Expect(0, 11809, '\P{ispf}', "");
@@ -98349,16 +99371,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11810, '\p{^ispf}', "");
     Expect(1, 11810, '\P{ispf}', "");
     Expect(0, 11810, '\P{^ispf}', "");
-    Expect(1, 11809, '\p{_	is_Pf}', "");
-    Expect(0, 11809, '\p{^_	is_Pf}', "");
-    Expect(0, 11809, '\P{_	is_Pf}', "");
-    Expect(1, 11809, '\P{^_	is_Pf}', "");
-    Expect(0, 11810, '\p{_	is_Pf}', "");
-    Expect(1, 11810, '\p{^_	is_Pf}', "");
-    Expect(1, 11810, '\P{_	is_Pf}', "");
-    Expect(0, 11810, '\P{^_	is_Pf}', "");
-    Error('\p{:=_format}');
-    Error('\P{:=_format}');
+    Expect(1, 11809, '\p{-is_Pf}', "");
+    Expect(0, 11809, '\p{^-is_Pf}', "");
+    Expect(0, 11809, '\P{-is_Pf}', "");
+    Expect(1, 11809, '\P{^-is_Pf}', "");
+    Expect(0, 11810, '\p{-is_Pf}', "");
+    Expect(1, 11810, '\p{^-is_Pf}', "");
+    Expect(1, 11810, '\P{-is_Pf}', "");
+    Expect(0, 11810, '\P{^-is_Pf}', "");
+    Error('\p{	:=FORMAT}');
+    Error('\P{	:=FORMAT}');
     Expect(1, 917631, '\p{format}', "");
     Expect(0, 917631, '\p{^format}', "");
     Expect(0, 917631, '\P{format}', "");
@@ -98367,16 +99389,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^format}', "");
     Expect(1, 917632, '\P{format}', "");
     Expect(0, 917632, '\P{^format}', "");
-    Expect(1, 917631, '\p{	_Format}', "");
-    Expect(0, 917631, '\p{^	_Format}', "");
-    Expect(0, 917631, '\P{	_Format}', "");
-    Expect(1, 917631, '\P{^	_Format}', "");
-    Expect(0, 917632, '\p{	_Format}', "");
-    Expect(1, 917632, '\p{^	_Format}', "");
-    Expect(1, 917632, '\P{	_Format}', "");
-    Expect(0, 917632, '\P{^	_Format}', "");
-    Error('\p{ -Is_Format:=}');
-    Error('\P{ -Is_Format:=}');
+    Expect(1, 917631, '\p{  FORMAT}', "");
+    Expect(0, 917631, '\p{^  FORMAT}', "");
+    Expect(0, 917631, '\P{  FORMAT}', "");
+    Expect(1, 917631, '\P{^  FORMAT}', "");
+    Expect(0, 917632, '\p{  FORMAT}', "");
+    Expect(1, 917632, '\p{^  FORMAT}', "");
+    Expect(1, 917632, '\P{  FORMAT}', "");
+    Expect(0, 917632, '\P{^  FORMAT}', "");
+    Error('\p{	-Is_FORMAT/a/}');
+    Error('\P{	-Is_FORMAT/a/}');
     Expect(1, 917631, '\p{isformat}', "");
     Expect(0, 917631, '\p{^isformat}', "");
     Expect(0, 917631, '\P{isformat}', "");
@@ -98385,16 +99407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^isformat}', "");
     Expect(1, 917632, '\P{isformat}', "");
     Expect(0, 917632, '\P{^isformat}', "");
-    Expect(1, 917631, '\p{-	is_Format}', "");
-    Expect(0, 917631, '\p{^-	is_Format}', "");
-    Expect(0, 917631, '\P{-	is_Format}', "");
-    Expect(1, 917631, '\P{^-	is_Format}', "");
-    Expect(0, 917632, '\p{-	is_Format}', "");
-    Expect(1, 917632, '\p{^-	is_Format}', "");
-    Expect(1, 917632, '\P{-	is_Format}', "");
-    Expect(0, 917632, '\P{^-	is_Format}', "");
-    Error('\p{	_cf:=}');
-    Error('\P{	_cf:=}');
+    Expect(1, 917631, '\p{		Is_format}', "");
+    Expect(0, 917631, '\p{^		Is_format}', "");
+    Expect(0, 917631, '\P{		Is_format}', "");
+    Expect(1, 917631, '\P{^		Is_format}', "");
+    Expect(0, 917632, '\p{		Is_format}', "");
+    Expect(1, 917632, '\p{^		Is_format}', "");
+    Expect(1, 917632, '\P{		Is_format}', "");
+    Expect(0, 917632, '\P{^		Is_format}', "");
+    Error('\p{/a/Cf}');
+    Error('\P{/a/Cf}');
     Expect(1, 917631, '\p{cf}', "");
     Expect(0, 917631, '\p{^cf}', "");
     Expect(0, 917631, '\P{cf}', "");
@@ -98403,16 +99425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^cf}', "");
     Expect(1, 917632, '\P{cf}', "");
     Expect(0, 917632, '\P{^cf}', "");
-    Expect(1, 917631, '\p{- CF}', "");
-    Expect(0, 917631, '\p{^- CF}', "");
-    Expect(0, 917631, '\P{- CF}', "");
-    Expect(1, 917631, '\P{^- CF}', "");
-    Expect(0, 917632, '\p{- CF}', "");
-    Expect(1, 917632, '\p{^- CF}', "");
-    Expect(1, 917632, '\P{- CF}', "");
-    Expect(0, 917632, '\P{^- CF}', "");
-    Error('\p{/a/ -IS_Cf}');
-    Error('\P{/a/ -IS_Cf}');
+    Expect(1, 917631, '\p{-_CF}', "");
+    Expect(0, 917631, '\p{^-_CF}', "");
+    Expect(0, 917631, '\P{-_CF}', "");
+    Expect(1, 917631, '\P{^-_CF}', "");
+    Expect(0, 917632, '\p{-_CF}', "");
+    Expect(1, 917632, '\p{^-_CF}', "");
+    Expect(1, 917632, '\P{-_CF}', "");
+    Expect(0, 917632, '\P{^-_CF}', "");
+    Error('\p{:=Is_CF}');
+    Error('\P{:=Is_CF}');
     Expect(1, 917631, '\p{iscf}', "");
     Expect(0, 917631, '\p{^iscf}', "");
     Expect(0, 917631, '\P{iscf}', "");
@@ -98421,16 +99443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917632, '\p{^iscf}', "");
     Expect(1, 917632, '\P{iscf}', "");
     Expect(0, 917632, '\P{^iscf}', "");
-    Expect(1, 917631, '\p{-	IS_Cf}', "");
-    Expect(0, 917631, '\p{^-	IS_Cf}', "");
-    Expect(0, 917631, '\P{-	IS_Cf}', "");
-    Expect(1, 917631, '\P{^-	IS_Cf}', "");
-    Expect(0, 917632, '\p{-	IS_Cf}', "");
-    Expect(1, 917632, '\p{^-	IS_Cf}', "");
-    Expect(1, 917632, '\P{-	IS_Cf}', "");
-    Expect(0, 917632, '\P{^-	IS_Cf}', "");
-    Error('\p{/a/-Full_Composition_Exclusion}');
-    Error('\P{/a/-Full_Composition_Exclusion}');
+    Expect(1, 917631, '\p{		IS_cf}', "");
+    Expect(0, 917631, '\p{^		IS_cf}', "");
+    Expect(0, 917631, '\P{		IS_cf}', "");
+    Expect(1, 917631, '\P{^		IS_cf}', "");
+    Expect(0, 917632, '\p{		IS_cf}', "");
+    Expect(1, 917632, '\p{^		IS_cf}', "");
+    Expect(1, 917632, '\P{		IS_cf}', "");
+    Expect(0, 917632, '\P{^		IS_cf}', "");
+    Error('\p{-_Full_Composition_Exclusion:=}');
+    Error('\P{-_Full_Composition_Exclusion:=}');
     Expect(1, 195101, '\p{fullcompositionexclusion}', "");
     Expect(0, 195101, '\p{^fullcompositionexclusion}', "");
     Expect(0, 195101, '\P{fullcompositionexclusion}', "");
@@ -98439,16 +99461,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195102, '\p{^fullcompositionexclusion}', "");
     Expect(1, 195102, '\P{fullcompositionexclusion}', "");
     Expect(0, 195102, '\P{^fullcompositionexclusion}', "");
-    Expect(1, 195101, '\p{  Full_Composition_exclusion}', "");
-    Expect(0, 195101, '\p{^  Full_Composition_exclusion}', "");
-    Expect(0, 195101, '\P{  Full_Composition_exclusion}', "");
-    Expect(1, 195101, '\P{^  Full_Composition_exclusion}', "");
-    Expect(0, 195102, '\p{  Full_Composition_exclusion}', "");
-    Expect(1, 195102, '\p{^  Full_Composition_exclusion}', "");
-    Expect(1, 195102, '\P{  Full_Composition_exclusion}', "");
-    Expect(0, 195102, '\P{^  Full_Composition_exclusion}', "");
-    Error('\p{:= Is_Full_Composition_exclusion}');
-    Error('\P{:= Is_Full_Composition_exclusion}');
+    Expect(1, 195101, '\p{ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(0, 195101, '\p{^ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(0, 195101, '\P{ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(1, 195101, '\P{^ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(0, 195102, '\p{ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(1, 195102, '\p{^ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(1, 195102, '\P{ Full_COMPOSITION_EXCLUSION}', "");
+    Expect(0, 195102, '\P{^ Full_COMPOSITION_EXCLUSION}', "");
+    Error('\p{	:=Is_full_composition_Exclusion}');
+    Error('\P{	:=Is_full_composition_Exclusion}');
     Expect(1, 195101, '\p{isfullcompositionexclusion}', "");
     Expect(0, 195101, '\p{^isfullcompositionexclusion}', "");
     Expect(0, 195101, '\P{isfullcompositionexclusion}', "");
@@ -98457,16 +99479,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195102, '\p{^isfullcompositionexclusion}', "");
     Expect(1, 195102, '\P{isfullcompositionexclusion}', "");
     Expect(0, 195102, '\P{^isfullcompositionexclusion}', "");
-    Expect(1, 195101, '\p{ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(0, 195101, '\p{^ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(0, 195101, '\P{ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(1, 195101, '\P{^ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(0, 195102, '\p{ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(1, 195102, '\p{^ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(1, 195102, '\P{ 	is_Full_Composition_EXCLUSION}', "");
-    Expect(0, 195102, '\P{^ 	is_Full_Composition_EXCLUSION}', "");
-    Error('\p{ /a/comp_EX}');
-    Error('\P{ /a/comp_EX}');
+    Expect(1, 195101, '\p{ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(0, 195101, '\p{^ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(0, 195101, '\P{ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(1, 195101, '\P{^ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(0, 195102, '\p{ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(1, 195102, '\p{^ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(1, 195102, '\P{ -Is_full_COMPOSITION_exclusion}', "");
+    Expect(0, 195102, '\P{^ -Is_full_COMPOSITION_exclusion}', "");
+    Error('\p{__comp_EX/a/}');
+    Error('\P{__comp_EX/a/}');
     Expect(1, 195101, '\p{compex}', "");
     Expect(0, 195101, '\p{^compex}', "");
     Expect(0, 195101, '\P{compex}', "");
@@ -98475,16 +99497,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195102, '\p{^compex}', "");
     Expect(1, 195102, '\P{compex}', "");
     Expect(0, 195102, '\P{^compex}', "");
-    Expect(1, 195101, '\p{Comp_Ex}', "");
-    Expect(0, 195101, '\p{^Comp_Ex}', "");
-    Expect(0, 195101, '\P{Comp_Ex}', "");
-    Expect(1, 195101, '\P{^Comp_Ex}', "");
-    Expect(0, 195102, '\p{Comp_Ex}', "");
-    Expect(1, 195102, '\p{^Comp_Ex}', "");
-    Expect(1, 195102, '\P{Comp_Ex}', "");
-    Expect(0, 195102, '\P{^Comp_Ex}', "");
-    Error('\p{ /a/IS_Comp_Ex}');
-    Error('\P{ /a/IS_Comp_Ex}');
+    Expect(1, 195101, '\p{--Comp_ex}', "");
+    Expect(0, 195101, '\p{^--Comp_ex}', "");
+    Expect(0, 195101, '\P{--Comp_ex}', "");
+    Expect(1, 195101, '\P{^--Comp_ex}', "");
+    Expect(0, 195102, '\p{--Comp_ex}', "");
+    Expect(1, 195102, '\p{^--Comp_ex}', "");
+    Expect(1, 195102, '\P{--Comp_ex}', "");
+    Expect(0, 195102, '\P{^--Comp_ex}', "");
+    Error('\p{/a/ _is_Comp_Ex}');
+    Error('\P{/a/ _is_Comp_Ex}');
     Expect(1, 195101, '\p{iscompex}', "");
     Expect(0, 195101, '\p{^iscompex}', "");
     Expect(0, 195101, '\P{iscompex}', "");
@@ -98493,16 +99515,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 195102, '\p{^iscompex}', "");
     Expect(1, 195102, '\P{iscompex}', "");
     Expect(0, 195102, '\P{^iscompex}', "");
-    Expect(1, 195101, '\p{- is_COMP_ex}', "");
-    Expect(0, 195101, '\p{^- is_COMP_ex}', "");
-    Expect(0, 195101, '\P{- is_COMP_ex}', "");
-    Expect(1, 195101, '\P{^- is_COMP_ex}', "");
-    Expect(0, 195102, '\p{- is_COMP_ex}', "");
-    Expect(1, 195102, '\p{^- is_COMP_ex}', "");
-    Expect(1, 195102, '\P{- is_COMP_ex}', "");
-    Expect(0, 195102, '\P{^- is_COMP_ex}', "");
-    Error('\p{	general_Punctuation/a/}');
-    Error('\P{	general_Punctuation/a/}');
+    Expect(1, 195101, '\p{_IS_comp_Ex}', "");
+    Expect(0, 195101, '\p{^_IS_comp_Ex}', "");
+    Expect(0, 195101, '\P{_IS_comp_Ex}', "");
+    Expect(1, 195101, '\P{^_IS_comp_Ex}', "");
+    Expect(0, 195102, '\p{_IS_comp_Ex}', "");
+    Expect(1, 195102, '\p{^_IS_comp_Ex}', "");
+    Expect(1, 195102, '\P{_IS_comp_Ex}', "");
+    Expect(0, 195102, '\P{^_IS_comp_Ex}', "");
+    Error('\p{_	general_Punctuation:=}');
+    Error('\P{_	general_Punctuation:=}');
     Expect(1, 8303, '\p{generalpunctuation}', "");
     Expect(0, 8303, '\p{^generalpunctuation}', "");
     Expect(0, 8303, '\P{generalpunctuation}', "");
@@ -98511,16 +99533,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8304, '\p{^generalpunctuation}', "");
     Expect(1, 8304, '\P{generalpunctuation}', "");
     Expect(0, 8304, '\P{^generalpunctuation}', "");
-    Expect(1, 8303, '\p{__general_Punctuation}', "");
-    Expect(0, 8303, '\p{^__general_Punctuation}', "");
-    Expect(0, 8303, '\P{__general_Punctuation}', "");
-    Expect(1, 8303, '\P{^__general_Punctuation}', "");
-    Expect(0, 8304, '\p{__general_Punctuation}', "");
-    Expect(1, 8304, '\p{^__general_Punctuation}', "");
-    Expect(1, 8304, '\P{__general_Punctuation}', "");
-    Expect(0, 8304, '\P{^__general_Punctuation}', "");
-    Error('\p{	/a/Is_General_Punctuation}');
-    Error('\P{	/a/Is_General_Punctuation}');
+    Expect(1, 8303, '\p{_-General_Punctuation}', "");
+    Expect(0, 8303, '\p{^_-General_Punctuation}', "");
+    Expect(0, 8303, '\P{_-General_Punctuation}', "");
+    Expect(1, 8303, '\P{^_-General_Punctuation}', "");
+    Expect(0, 8304, '\p{_-General_Punctuation}', "");
+    Expect(1, 8304, '\p{^_-General_Punctuation}', "");
+    Expect(1, 8304, '\P{_-General_Punctuation}', "");
+    Expect(0, 8304, '\P{^_-General_Punctuation}', "");
+    Error('\p{:=- IS_GENERAL_punctuation}');
+    Error('\P{:=- IS_GENERAL_punctuation}');
     Expect(1, 8303, '\p{isgeneralpunctuation}', "");
     Expect(0, 8303, '\p{^isgeneralpunctuation}', "");
     Expect(0, 8303, '\P{isgeneralpunctuation}', "");
@@ -98529,16 +99551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8304, '\p{^isgeneralpunctuation}', "");
     Expect(1, 8304, '\P{isgeneralpunctuation}', "");
     Expect(0, 8304, '\P{^isgeneralpunctuation}', "");
-    Expect(1, 8303, '\p{-IS_general_punctuation}', "");
-    Expect(0, 8303, '\p{^-IS_general_punctuation}', "");
-    Expect(0, 8303, '\P{-IS_general_punctuation}', "");
-    Expect(1, 8303, '\P{^-IS_general_punctuation}', "");
-    Expect(0, 8304, '\p{-IS_general_punctuation}', "");
-    Expect(1, 8304, '\p{^-IS_general_punctuation}', "");
-    Expect(1, 8304, '\P{-IS_general_punctuation}', "");
-    Expect(0, 8304, '\P{^-IS_general_punctuation}', "");
-    Error('\p{-in_General_punctuation:=}');
-    Error('\P{-in_General_punctuation:=}');
+    Expect(1, 8303, '\p{ -Is_GENERAL_Punctuation}', "");
+    Expect(0, 8303, '\p{^ -Is_GENERAL_Punctuation}', "");
+    Expect(0, 8303, '\P{ -Is_GENERAL_Punctuation}', "");
+    Expect(1, 8303, '\P{^ -Is_GENERAL_Punctuation}', "");
+    Expect(0, 8304, '\p{ -Is_GENERAL_Punctuation}', "");
+    Expect(1, 8304, '\p{^ -Is_GENERAL_Punctuation}', "");
+    Expect(1, 8304, '\P{ -Is_GENERAL_Punctuation}', "");
+    Expect(0, 8304, '\P{^ -Is_GENERAL_Punctuation}', "");
+    Error('\p{:=__In_GENERAL_Punctuation}');
+    Error('\P{:=__In_GENERAL_Punctuation}');
     Expect(1, 8303, '\p{ingeneralpunctuation}', "");
     Expect(0, 8303, '\p{^ingeneralpunctuation}', "");
     Expect(0, 8303, '\P{ingeneralpunctuation}', "");
@@ -98547,16 +99569,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8304, '\p{^ingeneralpunctuation}', "");
     Expect(1, 8304, '\P{ingeneralpunctuation}', "");
     Expect(0, 8304, '\P{^ingeneralpunctuation}', "");
-    Expect(1, 8303, '\p{IN_General_Punctuation}', "");
-    Expect(0, 8303, '\p{^IN_General_Punctuation}', "");
-    Expect(0, 8303, '\P{IN_General_Punctuation}', "");
-    Expect(1, 8303, '\P{^IN_General_Punctuation}', "");
-    Expect(0, 8304, '\p{IN_General_Punctuation}', "");
-    Expect(1, 8304, '\p{^IN_General_Punctuation}', "");
-    Expect(1, 8304, '\P{IN_General_Punctuation}', "");
-    Expect(0, 8304, '\P{^IN_General_Punctuation}', "");
-    Error('\p{-/a/In_punctuation}');
-    Error('\P{-/a/In_punctuation}');
+    Expect(1, 8303, '\p{-In_GENERAL_Punctuation}', "");
+    Expect(0, 8303, '\p{^-In_GENERAL_Punctuation}', "");
+    Expect(0, 8303, '\P{-In_GENERAL_Punctuation}', "");
+    Expect(1, 8303, '\P{^-In_GENERAL_Punctuation}', "");
+    Expect(0, 8304, '\p{-In_GENERAL_Punctuation}', "");
+    Expect(1, 8304, '\p{^-In_GENERAL_Punctuation}', "");
+    Expect(1, 8304, '\P{-In_GENERAL_Punctuation}', "");
+    Expect(0, 8304, '\P{^-In_GENERAL_Punctuation}', "");
+    Error('\p{-	IN_PUNCTUATION/a/}');
+    Error('\P{-	IN_PUNCTUATION/a/}');
     Expect(1, 8303, '\p{inpunctuation}', "");
     Expect(0, 8303, '\p{^inpunctuation}', "");
     Expect(0, 8303, '\P{inpunctuation}', "");
@@ -98565,16 +99587,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8304, '\p{^inpunctuation}', "");
     Expect(1, 8304, '\P{inpunctuation}', "");
     Expect(0, 8304, '\P{^inpunctuation}', "");
-    Expect(1, 8303, '\p{		in_Punctuation}', "");
-    Expect(0, 8303, '\p{^		in_Punctuation}', "");
-    Expect(0, 8303, '\P{		in_Punctuation}', "");
-    Expect(1, 8303, '\P{^		in_Punctuation}', "");
-    Expect(0, 8304, '\p{		in_Punctuation}', "");
-    Expect(1, 8304, '\p{^		in_Punctuation}', "");
-    Expect(1, 8304, '\P{		in_Punctuation}', "");
-    Expect(0, 8304, '\P{^		in_Punctuation}', "");
-    Error('\p{:=  GEOMETRIC_Shapes}');
-    Error('\P{:=  GEOMETRIC_Shapes}');
+    Expect(1, 8303, '\p{	-in_PUNCTUATION}', "");
+    Expect(0, 8303, '\p{^	-in_PUNCTUATION}', "");
+    Expect(0, 8303, '\P{	-in_PUNCTUATION}', "");
+    Expect(1, 8303, '\P{^	-in_PUNCTUATION}', "");
+    Expect(0, 8304, '\p{	-in_PUNCTUATION}', "");
+    Expect(1, 8304, '\p{^	-in_PUNCTUATION}', "");
+    Expect(1, 8304, '\P{	-in_PUNCTUATION}', "");
+    Expect(0, 8304, '\P{^	-in_PUNCTUATION}', "");
+    Error('\p{/a/		Geometric_SHAPES}');
+    Error('\P{/a/		Geometric_SHAPES}');
     Expect(1, 9727, '\p{geometricshapes}', "");
     Expect(0, 9727, '\p{^geometricshapes}', "");
     Expect(0, 9727, '\P{geometricshapes}', "");
@@ -98583,16 +99605,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9728, '\p{^geometricshapes}', "");
     Expect(1, 9728, '\P{geometricshapes}', "");
     Expect(0, 9728, '\P{^geometricshapes}', "");
-    Expect(1, 9727, '\p{_ Geometric_shapes}', "");
-    Expect(0, 9727, '\p{^_ Geometric_shapes}', "");
-    Expect(0, 9727, '\P{_ Geometric_shapes}', "");
-    Expect(1, 9727, '\P{^_ Geometric_shapes}', "");
-    Expect(0, 9728, '\p{_ Geometric_shapes}', "");
-    Expect(1, 9728, '\p{^_ Geometric_shapes}', "");
-    Expect(1, 9728, '\P{_ Geometric_shapes}', "");
-    Expect(0, 9728, '\P{^_ Geometric_shapes}', "");
-    Error('\p{_/a/IS_Geometric_SHAPES}');
-    Error('\P{_/a/IS_Geometric_SHAPES}');
+    Expect(1, 9727, '\p{_	Geometric_Shapes}', "");
+    Expect(0, 9727, '\p{^_	Geometric_Shapes}', "");
+    Expect(0, 9727, '\P{_	Geometric_Shapes}', "");
+    Expect(1, 9727, '\P{^_	Geometric_Shapes}', "");
+    Expect(0, 9728, '\p{_	Geometric_Shapes}', "");
+    Expect(1, 9728, '\p{^_	Geometric_Shapes}', "");
+    Expect(1, 9728, '\P{_	Geometric_Shapes}', "");
+    Expect(0, 9728, '\P{^_	Geometric_Shapes}', "");
+    Error('\p{ -Is_GEOMETRIC_Shapes/a/}');
+    Error('\P{ -Is_GEOMETRIC_Shapes/a/}');
     Expect(1, 9727, '\p{isgeometricshapes}', "");
     Expect(0, 9727, '\p{^isgeometricshapes}', "");
     Expect(0, 9727, '\P{isgeometricshapes}', "");
@@ -98601,16 +99623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9728, '\p{^isgeometricshapes}', "");
     Expect(1, 9728, '\P{isgeometricshapes}', "");
     Expect(0, 9728, '\P{^isgeometricshapes}', "");
-    Expect(1, 9727, '\p{	IS_geometric_SHAPES}', "");
-    Expect(0, 9727, '\p{^	IS_geometric_SHAPES}', "");
-    Expect(0, 9727, '\P{	IS_geometric_SHAPES}', "");
-    Expect(1, 9727, '\P{^	IS_geometric_SHAPES}', "");
-    Expect(0, 9728, '\p{	IS_geometric_SHAPES}', "");
-    Expect(1, 9728, '\p{^	IS_geometric_SHAPES}', "");
-    Expect(1, 9728, '\P{	IS_geometric_SHAPES}', "");
-    Expect(0, 9728, '\P{^	IS_geometric_SHAPES}', "");
-    Error('\p{_In_Geometric_Shapes:=}');
-    Error('\P{_In_Geometric_Shapes:=}');
+    Expect(1, 9727, '\p{	-Is_geometric_Shapes}', "");
+    Expect(0, 9727, '\p{^	-Is_geometric_Shapes}', "");
+    Expect(0, 9727, '\P{	-Is_geometric_Shapes}', "");
+    Expect(1, 9727, '\P{^	-Is_geometric_Shapes}', "");
+    Expect(0, 9728, '\p{	-Is_geometric_Shapes}', "");
+    Expect(1, 9728, '\p{^	-Is_geometric_Shapes}', "");
+    Expect(1, 9728, '\P{	-Is_geometric_Shapes}', "");
+    Expect(0, 9728, '\P{^	-Is_geometric_Shapes}', "");
+    Error('\p{-In_Geometric_shapes/a/}');
+    Error('\P{-In_Geometric_shapes/a/}');
     Expect(1, 9727, '\p{ingeometricshapes}', "");
     Expect(0, 9727, '\p{^ingeometricshapes}', "");
     Expect(0, 9727, '\P{ingeometricshapes}', "");
@@ -98619,16 +99641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9728, '\p{^ingeometricshapes}', "");
     Expect(1, 9728, '\P{ingeometricshapes}', "");
     Expect(0, 9728, '\P{^ingeometricshapes}', "");
-    Expect(1, 9727, '\p{--In_Geometric_SHAPES}', "");
-    Expect(0, 9727, '\p{^--In_Geometric_SHAPES}', "");
-    Expect(0, 9727, '\P{--In_Geometric_SHAPES}', "");
-    Expect(1, 9727, '\P{^--In_Geometric_SHAPES}', "");
-    Expect(0, 9728, '\p{--In_Geometric_SHAPES}', "");
-    Expect(1, 9728, '\p{^--In_Geometric_SHAPES}', "");
-    Expect(1, 9728, '\P{--In_Geometric_SHAPES}', "");
-    Expect(0, 9728, '\P{^--In_Geometric_SHAPES}', "");
-    Error('\p{_:=Geometric_SHAPES_Extended}');
-    Error('\P{_:=Geometric_SHAPES_Extended}');
+    Expect(1, 9727, '\p{_-In_Geometric_shapes}', "");
+    Expect(0, 9727, '\p{^_-In_Geometric_shapes}', "");
+    Expect(0, 9727, '\P{_-In_Geometric_shapes}', "");
+    Expect(1, 9727, '\P{^_-In_Geometric_shapes}', "");
+    Expect(0, 9728, '\p{_-In_Geometric_shapes}', "");
+    Expect(1, 9728, '\p{^_-In_Geometric_shapes}', "");
+    Expect(1, 9728, '\P{_-In_Geometric_shapes}', "");
+    Expect(0, 9728, '\P{^_-In_Geometric_shapes}', "");
+    Error('\p{_	Geometric_Shapes_Extended/a/}');
+    Error('\P{_	Geometric_Shapes_Extended/a/}');
     Expect(1, 129023, '\p{geometricshapesextended}', "");
     Expect(0, 129023, '\p{^geometricshapesextended}', "");
     Expect(0, 129023, '\P{geometricshapesextended}', "");
@@ -98637,16 +99659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129024, '\p{^geometricshapesextended}', "");
     Expect(1, 129024, '\P{geometricshapesextended}', "");
     Expect(0, 129024, '\P{^geometricshapesextended}', "");
-    Expect(1, 129023, '\p{	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129023, '\p{^	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129023, '\P{	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(1, 129023, '\P{^	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129024, '\p{	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(1, 129024, '\p{^	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(1, 129024, '\P{	 GEOMETRIC_Shapes_Extended}', "");
-    Expect(0, 129024, '\P{^	 GEOMETRIC_Shapes_Extended}', "");
-    Error('\p{	 IS_GEOMETRIC_Shapes_extended/a/}');
-    Error('\P{	 IS_GEOMETRIC_Shapes_extended/a/}');
+    Expect(1, 129023, '\p{-_Geometric_Shapes_Extended}', "");
+    Expect(0, 129023, '\p{^-_Geometric_Shapes_Extended}', "");
+    Expect(0, 129023, '\P{-_Geometric_Shapes_Extended}', "");
+    Expect(1, 129023, '\P{^-_Geometric_Shapes_Extended}', "");
+    Expect(0, 129024, '\p{-_Geometric_Shapes_Extended}', "");
+    Expect(1, 129024, '\p{^-_Geometric_Shapes_Extended}', "");
+    Expect(1, 129024, '\P{-_Geometric_Shapes_Extended}', "");
+    Expect(0, 129024, '\P{^-_Geometric_Shapes_Extended}', "");
+    Error('\p{_	is_Geometric_SHAPES_extended/a/}');
+    Error('\P{_	is_Geometric_SHAPES_extended/a/}');
     Expect(1, 129023, '\p{isgeometricshapesextended}', "");
     Expect(0, 129023, '\p{^isgeometricshapesextended}', "");
     Expect(0, 129023, '\P{isgeometricshapesextended}', "");
@@ -98655,16 +99677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129024, '\p{^isgeometricshapesextended}', "");
     Expect(1, 129024, '\P{isgeometricshapesextended}', "");
     Expect(0, 129024, '\P{^isgeometricshapesextended}', "");
-    Expect(1, 129023, '\p{ is_geometric_SHAPES_Extended}', "");
-    Expect(0, 129023, '\p{^ is_geometric_SHAPES_Extended}', "");
-    Expect(0, 129023, '\P{ is_geometric_SHAPES_Extended}', "");
-    Expect(1, 129023, '\P{^ is_geometric_SHAPES_Extended}', "");
-    Expect(0, 129024, '\p{ is_geometric_SHAPES_Extended}', "");
-    Expect(1, 129024, '\p{^ is_geometric_SHAPES_Extended}', "");
-    Expect(1, 129024, '\P{ is_geometric_SHAPES_Extended}', "");
-    Expect(0, 129024, '\P{^ is_geometric_SHAPES_Extended}', "");
-    Error('\p{-/a/In_Geometric_SHAPES_EXTENDED}');
-    Error('\P{-/a/In_Geometric_SHAPES_EXTENDED}');
+    Expect(1, 129023, '\p{	is_GEOMETRIC_shapes_extended}', "");
+    Expect(0, 129023, '\p{^	is_GEOMETRIC_shapes_extended}', "");
+    Expect(0, 129023, '\P{	is_GEOMETRIC_shapes_extended}', "");
+    Expect(1, 129023, '\P{^	is_GEOMETRIC_shapes_extended}', "");
+    Expect(0, 129024, '\p{	is_GEOMETRIC_shapes_extended}', "");
+    Expect(1, 129024, '\p{^	is_GEOMETRIC_shapes_extended}', "");
+    Expect(1, 129024, '\P{	is_GEOMETRIC_shapes_extended}', "");
+    Expect(0, 129024, '\P{^	is_GEOMETRIC_shapes_extended}', "");
+    Error('\p{/a/ _In_Geometric_shapes_extended}');
+    Error('\P{/a/ _In_Geometric_shapes_extended}');
     Expect(1, 129023, '\p{ingeometricshapesextended}', "");
     Expect(0, 129023, '\p{^ingeometricshapesextended}', "");
     Expect(0, 129023, '\P{ingeometricshapesextended}', "");
@@ -98673,16 +99695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129024, '\p{^ingeometricshapesextended}', "");
     Expect(1, 129024, '\P{ingeometricshapesextended}', "");
     Expect(0, 129024, '\P{^ingeometricshapesextended}', "");
-    Expect(1, 129023, '\p{ in_Geometric_shapes_extended}', "");
-    Expect(0, 129023, '\p{^ in_Geometric_shapes_extended}', "");
-    Expect(0, 129023, '\P{ in_Geometric_shapes_extended}', "");
-    Expect(1, 129023, '\P{^ in_Geometric_shapes_extended}', "");
-    Expect(0, 129024, '\p{ in_Geometric_shapes_extended}', "");
-    Expect(1, 129024, '\p{^ in_Geometric_shapes_extended}', "");
-    Expect(1, 129024, '\P{ in_Geometric_shapes_extended}', "");
-    Expect(0, 129024, '\P{^ in_Geometric_shapes_extended}', "");
-    Error('\p{ :=Geometric_Shapes_EXT}');
-    Error('\P{ :=Geometric_Shapes_EXT}');
+    Expect(1, 129023, '\p{	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129023, '\p{^	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129023, '\P{	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(1, 129023, '\P{^	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129024, '\p{	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(1, 129024, '\p{^	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(1, 129024, '\P{	_In_geometric_Shapes_EXTENDED}', "");
+    Expect(0, 129024, '\P{^	_In_geometric_Shapes_EXTENDED}', "");
+    Error('\p{_:=geometric_Shapes_Ext}');
+    Error('\P{_:=geometric_Shapes_Ext}');
     Expect(1, 129023, '\p{geometricshapesext}', "");
     Expect(0, 129023, '\p{^geometricshapesext}', "");
     Expect(0, 129023, '\P{geometricshapesext}', "");
@@ -98691,16 +99713,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129024, '\p{^geometricshapesext}', "");
     Expect(1, 129024, '\P{geometricshapesext}', "");
     Expect(0, 129024, '\P{^geometricshapesext}', "");
-    Expect(1, 129023, '\p{-_Geometric_shapes_EXT}', "");
-    Expect(0, 129023, '\p{^-_Geometric_shapes_EXT}', "");
-    Expect(0, 129023, '\P{-_Geometric_shapes_EXT}', "");
-    Expect(1, 129023, '\P{^-_Geometric_shapes_EXT}', "");
-    Expect(0, 129024, '\p{-_Geometric_shapes_EXT}', "");
-    Expect(1, 129024, '\p{^-_Geometric_shapes_EXT}', "");
-    Expect(1, 129024, '\P{-_Geometric_shapes_EXT}', "");
-    Expect(0, 129024, '\P{^-_Geometric_shapes_EXT}', "");
-    Error('\p{:= Is_Geometric_SHAPES_Ext}');
-    Error('\P{:= Is_Geometric_SHAPES_Ext}');
+    Expect(1, 129023, '\p{-Geometric_Shapes_EXT}', "");
+    Expect(0, 129023, '\p{^-Geometric_Shapes_EXT}', "");
+    Expect(0, 129023, '\P{-Geometric_Shapes_EXT}', "");
+    Expect(1, 129023, '\P{^-Geometric_Shapes_EXT}', "");
+    Expect(0, 129024, '\p{-Geometric_Shapes_EXT}', "");
+    Expect(1, 129024, '\p{^-Geometric_Shapes_EXT}', "");
+    Expect(1, 129024, '\P{-Geometric_Shapes_EXT}', "");
+    Expect(0, 129024, '\P{^-Geometric_Shapes_EXT}', "");
+    Error('\p{ IS_GEOMETRIC_Shapes_EXT/a/}');
+    Error('\P{ IS_GEOMETRIC_Shapes_EXT/a/}');
     Expect(1, 129023, '\p{isgeometricshapesext}', "");
     Expect(0, 129023, '\p{^isgeometricshapesext}', "");
     Expect(0, 129023, '\P{isgeometricshapesext}', "");
@@ -98709,16 +99731,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129024, '\p{^isgeometricshapesext}', "");
     Expect(1, 129024, '\P{isgeometricshapesext}', "");
     Expect(0, 129024, '\P{^isgeometricshapesext}', "");
-    Expect(1, 129023, '\p{-Is_Geometric_Shapes_Ext}', "");
-    Expect(0, 129023, '\p{^-Is_Geometric_Shapes_Ext}', "");
-    Expect(0, 129023, '\P{-Is_Geometric_Shapes_Ext}', "");
-    Expect(1, 129023, '\P{^-Is_Geometric_Shapes_Ext}', "");
-    Expect(0, 129024, '\p{-Is_Geometric_Shapes_Ext}', "");
-    Expect(1, 129024, '\p{^-Is_Geometric_Shapes_Ext}', "");
-    Expect(1, 129024, '\P{-Is_Geometric_Shapes_Ext}', "");
-    Expect(0, 129024, '\P{^-Is_Geometric_Shapes_Ext}', "");
-    Error('\p{_-in_Geometric_shapes_EXT:=}');
-    Error('\P{_-in_Geometric_shapes_EXT:=}');
+    Expect(1, 129023, '\p{_-IS_Geometric_Shapes_Ext}', "");
+    Expect(0, 129023, '\p{^_-IS_Geometric_Shapes_Ext}', "");
+    Expect(0, 129023, '\P{_-IS_Geometric_Shapes_Ext}', "");
+    Expect(1, 129023, '\P{^_-IS_Geometric_Shapes_Ext}', "");
+    Expect(0, 129024, '\p{_-IS_Geometric_Shapes_Ext}', "");
+    Expect(1, 129024, '\p{^_-IS_Geometric_Shapes_Ext}', "");
+    Expect(1, 129024, '\P{_-IS_Geometric_Shapes_Ext}', "");
+    Expect(0, 129024, '\P{^_-IS_Geometric_Shapes_Ext}', "");
+    Error('\p{/a/_-In_Geometric_SHAPES_EXT}');
+    Error('\P{/a/_-In_Geometric_SHAPES_EXT}');
     Expect(1, 129023, '\p{ingeometricshapesext}', "");
     Expect(0, 129023, '\p{^ingeometricshapesext}', "");
     Expect(0, 129023, '\P{ingeometricshapesext}', "");
@@ -98727,16 +99749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129024, '\p{^ingeometricshapesext}', "");
     Expect(1, 129024, '\P{ingeometricshapesext}', "");
     Expect(0, 129024, '\P{^ingeometricshapesext}', "");
-    Expect(1, 129023, '\p{_	IN_Geometric_Shapes_Ext}', "");
-    Expect(0, 129023, '\p{^_	IN_Geometric_Shapes_Ext}', "");
-    Expect(0, 129023, '\P{_	IN_Geometric_Shapes_Ext}', "");
-    Expect(1, 129023, '\P{^_	IN_Geometric_Shapes_Ext}', "");
-    Expect(0, 129024, '\p{_	IN_Geometric_Shapes_Ext}', "");
-    Expect(1, 129024, '\p{^_	IN_Geometric_Shapes_Ext}', "");
-    Expect(1, 129024, '\P{_	IN_Geometric_Shapes_Ext}', "");
-    Expect(0, 129024, '\P{^_	IN_Geometric_Shapes_Ext}', "");
-    Error('\p{/a/_ Georgian}');
-    Error('\P{/a/_ Georgian}');
+    Expect(1, 129023, '\p{-_IN_geometric_Shapes_EXT}', "");
+    Expect(0, 129023, '\p{^-_IN_geometric_Shapes_EXT}', "");
+    Expect(0, 129023, '\P{-_IN_geometric_Shapes_EXT}', "");
+    Expect(1, 129023, '\P{^-_IN_geometric_Shapes_EXT}', "");
+    Expect(0, 129024, '\p{-_IN_geometric_Shapes_EXT}', "");
+    Expect(1, 129024, '\p{^-_IN_geometric_Shapes_EXT}', "");
+    Expect(1, 129024, '\P{-_IN_geometric_Shapes_EXT}', "");
+    Expect(0, 129024, '\P{^-_IN_geometric_Shapes_EXT}', "");
+    Error('\p{ _georgian:=}');
+    Error('\P{ _georgian:=}');
     Expect(1, 11565, '\p{georgian}', "");
     Expect(0, 11565, '\p{^georgian}', "");
     Expect(0, 11565, '\P{georgian}', "");
@@ -98745,16 +99767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11566, '\p{^georgian}', "");
     Expect(1, 11566, '\P{georgian}', "");
     Expect(0, 11566, '\P{^georgian}', "");
-    Expect(1, 11565, '\p{_Georgian}', "");
-    Expect(0, 11565, '\p{^_Georgian}', "");
-    Expect(0, 11565, '\P{_Georgian}', "");
-    Expect(1, 11565, '\P{^_Georgian}', "");
-    Expect(0, 11566, '\p{_Georgian}', "");
-    Expect(1, 11566, '\p{^_Georgian}', "");
-    Expect(1, 11566, '\P{_Georgian}', "");
-    Expect(0, 11566, '\P{^_Georgian}', "");
-    Error('\p{/a/_IS_Georgian}');
-    Error('\P{/a/_IS_Georgian}');
+    Expect(1, 11565, '\p{-	georgian}', "");
+    Expect(0, 11565, '\p{^-	georgian}', "");
+    Expect(0, 11565, '\P{-	georgian}', "");
+    Expect(1, 11565, '\P{^-	georgian}', "");
+    Expect(0, 11566, '\p{-	georgian}', "");
+    Expect(1, 11566, '\p{^-	georgian}', "");
+    Expect(1, 11566, '\P{-	georgian}', "");
+    Expect(0, 11566, '\P{^-	georgian}', "");
+    Error('\p{	Is_Georgian:=}');
+    Error('\P{	Is_Georgian:=}');
     Expect(1, 11565, '\p{isgeorgian}', "");
     Expect(0, 11565, '\p{^isgeorgian}', "");
     Expect(0, 11565, '\P{isgeorgian}', "");
@@ -98763,16 +99785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11566, '\p{^isgeorgian}', "");
     Expect(1, 11566, '\P{isgeorgian}', "");
     Expect(0, 11566, '\P{^isgeorgian}', "");
-    Expect(1, 11565, '\p{	 Is_Georgian}', "");
-    Expect(0, 11565, '\p{^	 Is_Georgian}', "");
-    Expect(0, 11565, '\P{	 Is_Georgian}', "");
-    Expect(1, 11565, '\P{^	 Is_Georgian}', "");
-    Expect(0, 11566, '\p{	 Is_Georgian}', "");
-    Expect(1, 11566, '\p{^	 Is_Georgian}', "");
-    Expect(1, 11566, '\P{	 Is_Georgian}', "");
-    Expect(0, 11566, '\P{^	 Is_Georgian}', "");
-    Error('\p{:=		GEOR}');
-    Error('\P{:=		GEOR}');
+    Expect(1, 11565, '\p{-Is_GEORGIAN}', "");
+    Expect(0, 11565, '\p{^-Is_GEORGIAN}', "");
+    Expect(0, 11565, '\P{-Is_GEORGIAN}', "");
+    Expect(1, 11565, '\P{^-Is_GEORGIAN}', "");
+    Expect(0, 11566, '\p{-Is_GEORGIAN}', "");
+    Expect(1, 11566, '\p{^-Is_GEORGIAN}', "");
+    Expect(1, 11566, '\P{-Is_GEORGIAN}', "");
+    Expect(0, 11566, '\P{^-Is_GEORGIAN}', "");
+    Error('\p{/a/	Geor}');
+    Error('\P{/a/	Geor}');
     Expect(1, 11565, '\p{geor}', "");
     Expect(0, 11565, '\p{^geor}', "");
     Expect(0, 11565, '\P{geor}', "");
@@ -98781,16 +99803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11566, '\p{^geor}', "");
     Expect(1, 11566, '\P{geor}', "");
     Expect(0, 11566, '\P{^geor}', "");
-    Expect(1, 11565, '\p{-Geor}', "");
-    Expect(0, 11565, '\p{^-Geor}', "");
-    Expect(0, 11565, '\P{-Geor}', "");
-    Expect(1, 11565, '\P{^-Geor}', "");
-    Expect(0, 11566, '\p{-Geor}', "");
-    Expect(1, 11566, '\p{^-Geor}', "");
-    Expect(1, 11566, '\P{-Geor}', "");
-    Expect(0, 11566, '\P{^-Geor}', "");
-    Error('\p{--Is_Geor/a/}');
-    Error('\P{--Is_Geor/a/}');
+    Expect(1, 11565, '\p{-	geor}', "");
+    Expect(0, 11565, '\p{^-	geor}', "");
+    Expect(0, 11565, '\P{-	geor}', "");
+    Expect(1, 11565, '\P{^-	geor}', "");
+    Expect(0, 11566, '\p{-	geor}', "");
+    Expect(1, 11566, '\p{^-	geor}', "");
+    Expect(1, 11566, '\P{-	geor}', "");
+    Expect(0, 11566, '\P{^-	geor}', "");
+    Error('\p{	/a/IS_Geor}');
+    Error('\P{	/a/IS_Geor}');
     Expect(1, 11565, '\p{isgeor}', "");
     Expect(0, 11565, '\p{^isgeor}', "");
     Expect(0, 11565, '\P{isgeor}', "");
@@ -98799,16 +99821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11566, '\p{^isgeor}', "");
     Expect(1, 11566, '\P{isgeor}', "");
     Expect(0, 11566, '\P{^isgeor}', "");
-    Expect(1, 11565, '\p{		is_Geor}', "");
-    Expect(0, 11565, '\p{^		is_Geor}', "");
-    Expect(0, 11565, '\P{		is_Geor}', "");
-    Expect(1, 11565, '\P{^		is_Geor}', "");
-    Expect(0, 11566, '\p{		is_Geor}', "");
-    Expect(1, 11566, '\p{^		is_Geor}', "");
-    Expect(1, 11566, '\P{		is_Geor}', "");
-    Expect(0, 11566, '\P{^		is_Geor}', "");
-    Error('\p{	 Georgian_Extended:=}');
-    Error('\P{	 Georgian_Extended:=}');
+    Expect(1, 11565, '\p{	IS_Geor}', "");
+    Expect(0, 11565, '\p{^	IS_Geor}', "");
+    Expect(0, 11565, '\P{	IS_Geor}', "");
+    Expect(1, 11565, '\P{^	IS_Geor}', "");
+    Expect(0, 11566, '\p{	IS_Geor}', "");
+    Expect(1, 11566, '\p{^	IS_Geor}', "");
+    Expect(1, 11566, '\P{	IS_Geor}', "");
+    Expect(0, 11566, '\P{^	IS_Geor}', "");
+    Error('\p{/a/	-georgian_Extended}');
+    Error('\P{/a/	-georgian_Extended}');
     Expect(1, 7359, '\p{georgianextended}', "");
     Expect(0, 7359, '\p{^georgianextended}', "");
     Expect(0, 7359, '\P{georgianextended}', "");
@@ -98817,16 +99839,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7360, '\p{^georgianextended}', "");
     Expect(1, 7360, '\P{georgianextended}', "");
     Expect(0, 7360, '\P{^georgianextended}', "");
-    Expect(1, 7359, '\p{	_Georgian_EXTENDED}', "");
-    Expect(0, 7359, '\p{^	_Georgian_EXTENDED}', "");
-    Expect(0, 7359, '\P{	_Georgian_EXTENDED}', "");
-    Expect(1, 7359, '\P{^	_Georgian_EXTENDED}', "");
-    Expect(0, 7360, '\p{	_Georgian_EXTENDED}', "");
-    Expect(1, 7360, '\p{^	_Georgian_EXTENDED}', "");
-    Expect(1, 7360, '\P{	_Georgian_EXTENDED}', "");
-    Expect(0, 7360, '\P{^	_Georgian_EXTENDED}', "");
-    Error('\p{-IS_georgian_Extended/a/}');
-    Error('\P{-IS_georgian_Extended/a/}');
+    Expect(1, 7359, '\p{_-Georgian_EXTENDED}', "");
+    Expect(0, 7359, '\p{^_-Georgian_EXTENDED}', "");
+    Expect(0, 7359, '\P{_-Georgian_EXTENDED}', "");
+    Expect(1, 7359, '\P{^_-Georgian_EXTENDED}', "");
+    Expect(0, 7360, '\p{_-Georgian_EXTENDED}', "");
+    Expect(1, 7360, '\p{^_-Georgian_EXTENDED}', "");
+    Expect(1, 7360, '\P{_-Georgian_EXTENDED}', "");
+    Expect(0, 7360, '\P{^_-Georgian_EXTENDED}', "");
+    Error('\p{/a/ -is_Georgian_Extended}');
+    Error('\P{/a/ -is_Georgian_Extended}');
     Expect(1, 7359, '\p{isgeorgianextended}', "");
     Expect(0, 7359, '\p{^isgeorgianextended}', "");
     Expect(0, 7359, '\P{isgeorgianextended}', "");
@@ -98835,16 +99857,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7360, '\p{^isgeorgianextended}', "");
     Expect(1, 7360, '\P{isgeorgianextended}', "");
     Expect(0, 7360, '\P{^isgeorgianextended}', "");
-    Expect(1, 7359, '\p{-Is_Georgian_Extended}', "");
-    Expect(0, 7359, '\p{^-Is_Georgian_Extended}', "");
-    Expect(0, 7359, '\P{-Is_Georgian_Extended}', "");
-    Expect(1, 7359, '\P{^-Is_Georgian_Extended}', "");
-    Expect(0, 7360, '\p{-Is_Georgian_Extended}', "");
-    Expect(1, 7360, '\p{^-Is_Georgian_Extended}', "");
-    Expect(1, 7360, '\P{-Is_Georgian_Extended}', "");
-    Expect(0, 7360, '\P{^-Is_Georgian_Extended}', "");
-    Error('\p{:=_ In_georgian_Extended}');
-    Error('\P{:=_ In_georgian_Extended}');
+    Expect(1, 7359, '\p{ _Is_georgian_extended}', "");
+    Expect(0, 7359, '\p{^ _Is_georgian_extended}', "");
+    Expect(0, 7359, '\P{ _Is_georgian_extended}', "");
+    Expect(1, 7359, '\P{^ _Is_georgian_extended}', "");
+    Expect(0, 7360, '\p{ _Is_georgian_extended}', "");
+    Expect(1, 7360, '\p{^ _Is_georgian_extended}', "");
+    Expect(1, 7360, '\P{ _Is_georgian_extended}', "");
+    Expect(0, 7360, '\P{^ _Is_georgian_extended}', "");
+    Error('\p{-:=in_Georgian_extended}');
+    Error('\P{-:=in_Georgian_extended}');
     Expect(1, 7359, '\p{ingeorgianextended}', "");
     Expect(0, 7359, '\p{^ingeorgianextended}', "");
     Expect(0, 7359, '\P{ingeorgianextended}', "");
@@ -98853,16 +99875,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7360, '\p{^ingeorgianextended}', "");
     Expect(1, 7360, '\P{ingeorgianextended}', "");
     Expect(0, 7360, '\P{^ingeorgianextended}', "");
-    Expect(1, 7359, '\p{ In_GEORGIAN_EXTENDED}', "");
-    Expect(0, 7359, '\p{^ In_GEORGIAN_EXTENDED}', "");
-    Expect(0, 7359, '\P{ In_GEORGIAN_EXTENDED}', "");
-    Expect(1, 7359, '\P{^ In_GEORGIAN_EXTENDED}', "");
-    Expect(0, 7360, '\p{ In_GEORGIAN_EXTENDED}', "");
-    Expect(1, 7360, '\p{^ In_GEORGIAN_EXTENDED}', "");
-    Expect(1, 7360, '\P{ In_GEORGIAN_EXTENDED}', "");
-    Expect(0, 7360, '\P{^ In_GEORGIAN_EXTENDED}', "");
-    Error('\p{__Georgian_Ext/a/}');
-    Error('\P{__Georgian_Ext/a/}');
+    Expect(1, 7359, '\p{	 In_Georgian_Extended}', "");
+    Expect(0, 7359, '\p{^	 In_Georgian_Extended}', "");
+    Expect(0, 7359, '\P{	 In_Georgian_Extended}', "");
+    Expect(1, 7359, '\P{^	 In_Georgian_Extended}', "");
+    Expect(0, 7360, '\p{	 In_Georgian_Extended}', "");
+    Expect(1, 7360, '\p{^	 In_Georgian_Extended}', "");
+    Expect(1, 7360, '\P{	 In_Georgian_Extended}', "");
+    Expect(0, 7360, '\P{^	 In_Georgian_Extended}', "");
+    Error('\p{:=Georgian_EXT}');
+    Error('\P{:=Georgian_EXT}');
     Expect(1, 7359, '\p{georgianext}', "");
     Expect(0, 7359, '\p{^georgianext}', "");
     Expect(0, 7359, '\P{georgianext}', "");
@@ -98871,16 +99893,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7360, '\p{^georgianext}', "");
     Expect(1, 7360, '\P{georgianext}', "");
     Expect(0, 7360, '\P{^georgianext}', "");
-    Expect(1, 7359, '\p{ -GEORGIAN_EXT}', "");
-    Expect(0, 7359, '\p{^ -GEORGIAN_EXT}', "");
-    Expect(0, 7359, '\P{ -GEORGIAN_EXT}', "");
-    Expect(1, 7359, '\P{^ -GEORGIAN_EXT}', "");
-    Expect(0, 7360, '\p{ -GEORGIAN_EXT}', "");
-    Expect(1, 7360, '\p{^ -GEORGIAN_EXT}', "");
-    Expect(1, 7360, '\P{ -GEORGIAN_EXT}', "");
-    Expect(0, 7360, '\P{^ -GEORGIAN_EXT}', "");
-    Error('\p{-:=Is_Georgian_Ext}');
-    Error('\P{-:=Is_Georgian_Ext}');
+    Expect(1, 7359, '\p{		Georgian_ext}', "");
+    Expect(0, 7359, '\p{^		Georgian_ext}', "");
+    Expect(0, 7359, '\P{		Georgian_ext}', "");
+    Expect(1, 7359, '\P{^		Georgian_ext}', "");
+    Expect(0, 7360, '\p{		Georgian_ext}', "");
+    Expect(1, 7360, '\p{^		Georgian_ext}', "");
+    Expect(1, 7360, '\P{		Georgian_ext}', "");
+    Expect(0, 7360, '\P{^		Georgian_ext}', "");
+    Error('\p{/a/ Is_Georgian_EXT}');
+    Error('\P{/a/ Is_Georgian_EXT}');
     Expect(1, 7359, '\p{isgeorgianext}', "");
     Expect(0, 7359, '\p{^isgeorgianext}', "");
     Expect(0, 7359, '\P{isgeorgianext}', "");
@@ -98889,16 +99911,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7360, '\p{^isgeorgianext}', "");
     Expect(1, 7360, '\P{isgeorgianext}', "");
     Expect(0, 7360, '\P{^isgeorgianext}', "");
-    Expect(1, 7359, '\p{_-is_GEORGIAN_Ext}', "");
-    Expect(0, 7359, '\p{^_-is_GEORGIAN_Ext}', "");
-    Expect(0, 7359, '\P{_-is_GEORGIAN_Ext}', "");
-    Expect(1, 7359, '\P{^_-is_GEORGIAN_Ext}', "");
-    Expect(0, 7360, '\p{_-is_GEORGIAN_Ext}', "");
-    Expect(1, 7360, '\p{^_-is_GEORGIAN_Ext}', "");
-    Expect(1, 7360, '\P{_-is_GEORGIAN_Ext}', "");
-    Expect(0, 7360, '\P{^_-is_GEORGIAN_Ext}', "");
-    Error('\p{ :=In_Georgian_Ext}');
-    Error('\P{ :=In_Georgian_Ext}');
+    Expect(1, 7359, '\p{-Is_Georgian_EXT}', "");
+    Expect(0, 7359, '\p{^-Is_Georgian_EXT}', "");
+    Expect(0, 7359, '\P{-Is_Georgian_EXT}', "");
+    Expect(1, 7359, '\P{^-Is_Georgian_EXT}', "");
+    Expect(0, 7360, '\p{-Is_Georgian_EXT}', "");
+    Expect(1, 7360, '\p{^-Is_Georgian_EXT}', "");
+    Expect(1, 7360, '\P{-Is_Georgian_EXT}', "");
+    Expect(0, 7360, '\P{^-Is_Georgian_EXT}', "");
+    Error('\p{-IN_Georgian_Ext/a/}');
+    Error('\P{-IN_Georgian_Ext/a/}');
     Expect(1, 7359, '\p{ingeorgianext}', "");
     Expect(0, 7359, '\p{^ingeorgianext}', "");
     Expect(0, 7359, '\P{ingeorgianext}', "");
@@ -98907,16 +99929,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7360, '\p{^ingeorgianext}', "");
     Expect(1, 7360, '\P{ingeorgianext}', "");
     Expect(0, 7360, '\P{^ingeorgianext}', "");
-    Expect(1, 7359, '\p{	 In_Georgian_Ext}', "");
-    Expect(0, 7359, '\p{^	 In_Georgian_Ext}', "");
-    Expect(0, 7359, '\P{	 In_Georgian_Ext}', "");
-    Expect(1, 7359, '\P{^	 In_Georgian_Ext}', "");
-    Expect(0, 7360, '\p{	 In_Georgian_Ext}', "");
-    Expect(1, 7360, '\p{^	 In_Georgian_Ext}', "");
-    Expect(1, 7360, '\P{	 In_Georgian_Ext}', "");
-    Expect(0, 7360, '\P{^	 In_Georgian_Ext}', "");
-    Error('\p{/a/georgian_Supplement}');
-    Error('\P{/a/georgian_Supplement}');
+    Expect(1, 7359, '\p{_ in_Georgian_EXT}', "");
+    Expect(0, 7359, '\p{^_ in_Georgian_EXT}', "");
+    Expect(0, 7359, '\P{_ in_Georgian_EXT}', "");
+    Expect(1, 7359, '\P{^_ in_Georgian_EXT}', "");
+    Expect(0, 7360, '\p{_ in_Georgian_EXT}', "");
+    Expect(1, 7360, '\p{^_ in_Georgian_EXT}', "");
+    Expect(1, 7360, '\P{_ in_Georgian_EXT}', "");
+    Expect(0, 7360, '\P{^_ in_Georgian_EXT}', "");
+    Error('\p{_/a/Georgian_supplement}');
+    Error('\P{_/a/Georgian_supplement}');
     Expect(1, 11567, '\p{georgiansupplement}', "");
     Expect(0, 11567, '\p{^georgiansupplement}', "");
     Expect(0, 11567, '\P{georgiansupplement}', "");
@@ -98925,16 +99947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11568, '\p{^georgiansupplement}', "");
     Expect(1, 11568, '\P{georgiansupplement}', "");
     Expect(0, 11568, '\P{^georgiansupplement}', "");
-    Expect(1, 11567, '\p{_	GEORGIAN_Supplement}', "");
-    Expect(0, 11567, '\p{^_	GEORGIAN_Supplement}', "");
-    Expect(0, 11567, '\P{_	GEORGIAN_Supplement}', "");
-    Expect(1, 11567, '\P{^_	GEORGIAN_Supplement}', "");
-    Expect(0, 11568, '\p{_	GEORGIAN_Supplement}', "");
-    Expect(1, 11568, '\p{^_	GEORGIAN_Supplement}', "");
-    Expect(1, 11568, '\P{_	GEORGIAN_Supplement}', "");
-    Expect(0, 11568, '\P{^_	GEORGIAN_Supplement}', "");
-    Error('\p{__IS_Georgian_Supplement/a/}');
-    Error('\P{__IS_Georgian_Supplement/a/}');
+    Expect(1, 11567, '\p{ 	GEORGIAN_Supplement}', "");
+    Expect(0, 11567, '\p{^ 	GEORGIAN_Supplement}', "");
+    Expect(0, 11567, '\P{ 	GEORGIAN_Supplement}', "");
+    Expect(1, 11567, '\P{^ 	GEORGIAN_Supplement}', "");
+    Expect(0, 11568, '\p{ 	GEORGIAN_Supplement}', "");
+    Expect(1, 11568, '\p{^ 	GEORGIAN_Supplement}', "");
+    Expect(1, 11568, '\P{ 	GEORGIAN_Supplement}', "");
+    Expect(0, 11568, '\P{^ 	GEORGIAN_Supplement}', "");
+    Error('\p{/a/ -is_Georgian_supplement}');
+    Error('\P{/a/ -is_Georgian_supplement}');
     Expect(1, 11567, '\p{isgeorgiansupplement}', "");
     Expect(0, 11567, '\p{^isgeorgiansupplement}', "");
     Expect(0, 11567, '\P{isgeorgiansupplement}', "");
@@ -98943,16 +99965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11568, '\p{^isgeorgiansupplement}', "");
     Expect(1, 11568, '\P{isgeorgiansupplement}', "");
     Expect(0, 11568, '\P{^isgeorgiansupplement}', "");
-    Expect(1, 11567, '\p{Is_georgian_SUPPLEMENT}', "");
-    Expect(0, 11567, '\p{^Is_georgian_SUPPLEMENT}', "");
-    Expect(0, 11567, '\P{Is_georgian_SUPPLEMENT}', "");
-    Expect(1, 11567, '\P{^Is_georgian_SUPPLEMENT}', "");
-    Expect(0, 11568, '\p{Is_georgian_SUPPLEMENT}', "");
-    Expect(1, 11568, '\p{^Is_georgian_SUPPLEMENT}', "");
-    Expect(1, 11568, '\P{Is_georgian_SUPPLEMENT}', "");
-    Expect(0, 11568, '\P{^Is_georgian_SUPPLEMENT}', "");
-    Error('\p{ /a/IN_GEORGIAN_Supplement}');
-    Error('\P{ /a/IN_GEORGIAN_Supplement}');
+    Expect(1, 11567, '\p{-_is_Georgian_Supplement}', "");
+    Expect(0, 11567, '\p{^-_is_Georgian_Supplement}', "");
+    Expect(0, 11567, '\P{-_is_Georgian_Supplement}', "");
+    Expect(1, 11567, '\P{^-_is_Georgian_Supplement}', "");
+    Expect(0, 11568, '\p{-_is_Georgian_Supplement}', "");
+    Expect(1, 11568, '\p{^-_is_Georgian_Supplement}', "");
+    Expect(1, 11568, '\P{-_is_Georgian_Supplement}', "");
+    Expect(0, 11568, '\P{^-_is_Georgian_Supplement}', "");
+    Error('\p{ In_GEORGIAN_supplement/a/}');
+    Error('\P{ In_GEORGIAN_supplement/a/}');
     Expect(1, 11567, '\p{ingeorgiansupplement}', "");
     Expect(0, 11567, '\p{^ingeorgiansupplement}', "");
     Expect(0, 11567, '\P{ingeorgiansupplement}', "");
@@ -98961,16 +99983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11568, '\p{^ingeorgiansupplement}', "");
     Expect(1, 11568, '\P{ingeorgiansupplement}', "");
     Expect(0, 11568, '\P{^ingeorgiansupplement}', "");
-    Expect(1, 11567, '\p{ IN_Georgian_supplement}', "");
-    Expect(0, 11567, '\p{^ IN_Georgian_supplement}', "");
-    Expect(0, 11567, '\P{ IN_Georgian_supplement}', "");
-    Expect(1, 11567, '\P{^ IN_Georgian_supplement}', "");
-    Expect(0, 11568, '\p{ IN_Georgian_supplement}', "");
-    Expect(1, 11568, '\p{^ IN_Georgian_supplement}', "");
-    Expect(1, 11568, '\P{ IN_Georgian_supplement}', "");
-    Expect(0, 11568, '\P{^ IN_Georgian_supplement}', "");
-    Error('\p{	 Georgian_SUP:=}');
-    Error('\P{	 Georgian_SUP:=}');
+    Expect(1, 11567, '\p{ In_Georgian_SUPPLEMENT}', "");
+    Expect(0, 11567, '\p{^ In_Georgian_SUPPLEMENT}', "");
+    Expect(0, 11567, '\P{ In_Georgian_SUPPLEMENT}', "");
+    Expect(1, 11567, '\P{^ In_Georgian_SUPPLEMENT}', "");
+    Expect(0, 11568, '\p{ In_Georgian_SUPPLEMENT}', "");
+    Expect(1, 11568, '\p{^ In_Georgian_SUPPLEMENT}', "");
+    Expect(1, 11568, '\P{ In_Georgian_SUPPLEMENT}', "");
+    Expect(0, 11568, '\P{^ In_Georgian_SUPPLEMENT}', "");
+    Error('\p{/a/	Georgian_sup}');
+    Error('\P{/a/	Georgian_sup}');
     Expect(1, 11567, '\p{georgiansup}', "");
     Expect(0, 11567, '\p{^georgiansup}', "");
     Expect(0, 11567, '\P{georgiansup}', "");
@@ -98979,16 +100001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11568, '\p{^georgiansup}', "");
     Expect(1, 11568, '\P{georgiansup}', "");
     Expect(0, 11568, '\P{^georgiansup}', "");
-    Expect(1, 11567, '\p{--Georgian_SUP}', "");
-    Expect(0, 11567, '\p{^--Georgian_SUP}', "");
-    Expect(0, 11567, '\P{--Georgian_SUP}', "");
-    Expect(1, 11567, '\P{^--Georgian_SUP}', "");
-    Expect(0, 11568, '\p{--Georgian_SUP}', "");
-    Expect(1, 11568, '\p{^--Georgian_SUP}', "");
-    Expect(1, 11568, '\P{--Georgian_SUP}', "");
-    Expect(0, 11568, '\P{^--Georgian_SUP}', "");
-    Error('\p{/a/-	Is_georgian_Sup}');
-    Error('\P{/a/-	Is_georgian_Sup}');
+    Expect(1, 11567, '\p{	GEORGIAN_Sup}', "");
+    Expect(0, 11567, '\p{^	GEORGIAN_Sup}', "");
+    Expect(0, 11567, '\P{	GEORGIAN_Sup}', "");
+    Expect(1, 11567, '\P{^	GEORGIAN_Sup}', "");
+    Expect(0, 11568, '\p{	GEORGIAN_Sup}', "");
+    Expect(1, 11568, '\p{^	GEORGIAN_Sup}', "");
+    Expect(1, 11568, '\P{	GEORGIAN_Sup}', "");
+    Expect(0, 11568, '\P{^	GEORGIAN_Sup}', "");
+    Error('\p{/a/_-Is_georgian_Sup}');
+    Error('\P{/a/_-Is_georgian_Sup}');
     Expect(1, 11567, '\p{isgeorgiansup}', "");
     Expect(0, 11567, '\p{^isgeorgiansup}', "");
     Expect(0, 11567, '\P{isgeorgiansup}', "");
@@ -98997,16 +100019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11568, '\p{^isgeorgiansup}', "");
     Expect(1, 11568, '\P{isgeorgiansup}', "");
     Expect(0, 11568, '\P{^isgeorgiansup}', "");
-    Expect(1, 11567, '\p{ Is_Georgian_SUP}', "");
-    Expect(0, 11567, '\p{^ Is_Georgian_SUP}', "");
-    Expect(0, 11567, '\P{ Is_Georgian_SUP}', "");
-    Expect(1, 11567, '\P{^ Is_Georgian_SUP}', "");
-    Expect(0, 11568, '\p{ Is_Georgian_SUP}', "");
-    Expect(1, 11568, '\p{^ Is_Georgian_SUP}', "");
-    Expect(1, 11568, '\P{ Is_Georgian_SUP}', "");
-    Expect(0, 11568, '\P{^ Is_Georgian_SUP}', "");
-    Error('\p{/a/		In_Georgian_SUP}');
-    Error('\P{/a/		In_Georgian_SUP}');
+    Expect(1, 11567, '\p{_-Is_Georgian_Sup}', "");
+    Expect(0, 11567, '\p{^_-Is_Georgian_Sup}', "");
+    Expect(0, 11567, '\P{_-Is_Georgian_Sup}', "");
+    Expect(1, 11567, '\P{^_-Is_Georgian_Sup}', "");
+    Expect(0, 11568, '\p{_-Is_Georgian_Sup}', "");
+    Expect(1, 11568, '\p{^_-Is_Georgian_Sup}', "");
+    Expect(1, 11568, '\P{_-Is_Georgian_Sup}', "");
+    Expect(0, 11568, '\P{^_-Is_Georgian_Sup}', "");
+    Error('\p{ /a/In_GEORGIAN_sup}');
+    Error('\P{ /a/In_GEORGIAN_sup}');
     Expect(1, 11567, '\p{ingeorgiansup}', "");
     Expect(0, 11567, '\p{^ingeorgiansup}', "");
     Expect(0, 11567, '\P{ingeorgiansup}', "");
@@ -99015,16 +100037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11568, '\p{^ingeorgiansup}', "");
     Expect(1, 11568, '\P{ingeorgiansup}', "");
     Expect(0, 11568, '\P{^ingeorgiansup}', "");
-    Expect(1, 11567, '\p{_ IN_Georgian_Sup}', "");
-    Expect(0, 11567, '\p{^_ IN_Georgian_Sup}', "");
-    Expect(0, 11567, '\P{_ IN_Georgian_Sup}', "");
-    Expect(1, 11567, '\P{^_ IN_Georgian_Sup}', "");
-    Expect(0, 11568, '\p{_ IN_Georgian_Sup}', "");
-    Expect(1, 11568, '\p{^_ IN_Georgian_Sup}', "");
-    Expect(1, 11568, '\P{_ IN_Georgian_Sup}', "");
-    Expect(0, 11568, '\P{^_ IN_Georgian_Sup}', "");
-    Error('\p{_GLAGOLITIC/a/}');
-    Error('\P{_GLAGOLITIC/a/}');
+    Expect(1, 11567, '\p{ _in_Georgian_Sup}', "");
+    Expect(0, 11567, '\p{^ _in_Georgian_Sup}', "");
+    Expect(0, 11567, '\P{ _in_Georgian_Sup}', "");
+    Expect(1, 11567, '\P{^ _in_Georgian_Sup}', "");
+    Expect(0, 11568, '\p{ _in_Georgian_Sup}', "");
+    Expect(1, 11568, '\p{^ _in_Georgian_Sup}', "");
+    Expect(1, 11568, '\P{ _in_Georgian_Sup}', "");
+    Expect(0, 11568, '\P{^ _in_Georgian_Sup}', "");
+    Error('\p{:=_Glagolitic}');
+    Error('\P{:=_Glagolitic}');
     Expect(1, 122922, '\p{glagolitic}', "");
     Expect(0, 122922, '\p{^glagolitic}', "");
     Expect(0, 122922, '\P{glagolitic}', "");
@@ -99041,8 +100063,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122923, '\p{^-glagolitic}', "");
     Expect(1, 122923, '\P{-glagolitic}', "");
     Expect(0, 122923, '\P{^-glagolitic}', "");
-    Error('\p{:=--Is_Glagolitic}');
-    Error('\P{:=--Is_Glagolitic}');
+    Error('\p{/a/  is_Glagolitic}');
+    Error('\P{/a/  is_Glagolitic}');
     Expect(1, 122922, '\p{isglagolitic}', "");
     Expect(0, 122922, '\p{^isglagolitic}', "");
     Expect(0, 122922, '\P{isglagolitic}', "");
@@ -99051,16 +100073,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122923, '\p{^isglagolitic}', "");
     Expect(1, 122923, '\P{isglagolitic}', "");
     Expect(0, 122923, '\P{^isglagolitic}', "");
-    Expect(1, 122922, '\p{_Is_Glagolitic}', "");
-    Expect(0, 122922, '\p{^_Is_Glagolitic}', "");
-    Expect(0, 122922, '\P{_Is_Glagolitic}', "");
-    Expect(1, 122922, '\P{^_Is_Glagolitic}', "");
-    Expect(0, 122923, '\p{_Is_Glagolitic}', "");
-    Expect(1, 122923, '\p{^_Is_Glagolitic}', "");
-    Expect(1, 122923, '\P{_Is_Glagolitic}', "");
-    Expect(0, 122923, '\P{^_Is_Glagolitic}', "");
-    Error('\p{	glag:=}');
-    Error('\P{	glag:=}');
+    Expect(1, 122922, '\p{ 	Is_glagolitic}', "");
+    Expect(0, 122922, '\p{^ 	Is_glagolitic}', "");
+    Expect(0, 122922, '\P{ 	Is_glagolitic}', "");
+    Expect(1, 122922, '\P{^ 	Is_glagolitic}', "");
+    Expect(0, 122923, '\p{ 	Is_glagolitic}', "");
+    Expect(1, 122923, '\p{^ 	Is_glagolitic}', "");
+    Expect(1, 122923, '\P{ 	Is_glagolitic}', "");
+    Expect(0, 122923, '\P{^ 	Is_glagolitic}', "");
+    Error('\p{-GLAG:=}');
+    Error('\P{-GLAG:=}');
     Expect(1, 122922, '\p{glag}', "");
     Expect(0, 122922, '\p{^glag}', "");
     Expect(0, 122922, '\P{glag}', "");
@@ -99069,16 +100091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122923, '\p{^glag}', "");
     Expect(1, 122923, '\P{glag}', "");
     Expect(0, 122923, '\P{^glag}', "");
-    Expect(1, 122922, '\p{__Glag}', "");
-    Expect(0, 122922, '\p{^__Glag}', "");
-    Expect(0, 122922, '\P{__Glag}', "");
-    Expect(1, 122922, '\P{^__Glag}', "");
-    Expect(0, 122923, '\p{__Glag}', "");
-    Expect(1, 122923, '\p{^__Glag}', "");
-    Expect(1, 122923, '\P{__Glag}', "");
-    Expect(0, 122923, '\P{^__Glag}', "");
-    Error('\p{-is_GLAG:=}');
-    Error('\P{-is_GLAG:=}');
+    Expect(1, 122922, '\p{ glag}', "");
+    Expect(0, 122922, '\p{^ glag}', "");
+    Expect(0, 122922, '\P{ glag}', "");
+    Expect(1, 122922, '\P{^ glag}', "");
+    Expect(0, 122923, '\p{ glag}', "");
+    Expect(1, 122923, '\p{^ glag}', "");
+    Expect(1, 122923, '\P{ glag}', "");
+    Expect(0, 122923, '\P{^ glag}', "");
+    Error('\p{_	is_Glag:=}');
+    Error('\P{_	is_Glag:=}');
     Expect(1, 122922, '\p{isglag}', "");
     Expect(0, 122922, '\p{^isglag}', "");
     Expect(0, 122922, '\P{isglag}', "");
@@ -99087,16 +100109,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122923, '\p{^isglag}', "");
     Expect(1, 122923, '\P{isglag}', "");
     Expect(0, 122923, '\P{^isglag}', "");
-    Expect(1, 122922, '\p{_IS_Glag}', "");
-    Expect(0, 122922, '\p{^_IS_Glag}', "");
-    Expect(0, 122922, '\P{_IS_Glag}', "");
-    Expect(1, 122922, '\P{^_IS_Glag}', "");
-    Expect(0, 122923, '\p{_IS_Glag}', "");
-    Expect(1, 122923, '\p{^_IS_Glag}', "");
-    Expect(1, 122923, '\P{_IS_Glag}', "");
-    Expect(0, 122923, '\P{^_IS_Glag}', "");
-    Error('\p{--GLAGOLITIC_supplement/a/}');
-    Error('\P{--GLAGOLITIC_supplement/a/}');
+    Expect(1, 122922, '\p{-Is_glag}', "");
+    Expect(0, 122922, '\p{^-Is_glag}', "");
+    Expect(0, 122922, '\P{-Is_glag}', "");
+    Expect(1, 122922, '\P{^-Is_glag}', "");
+    Expect(0, 122923, '\p{-Is_glag}', "");
+    Expect(1, 122923, '\p{^-Is_glag}', "");
+    Expect(1, 122923, '\P{-Is_glag}', "");
+    Expect(0, 122923, '\P{^-Is_glag}', "");
+    Error('\p{/a/ _Glagolitic_supplement}');
+    Error('\P{/a/ _Glagolitic_supplement}');
     Expect(1, 122927, '\p{glagoliticsupplement}', "");
     Expect(0, 122927, '\p{^glagoliticsupplement}', "");
     Expect(0, 122927, '\P{glagoliticsupplement}', "");
@@ -99105,16 +100127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122928, '\p{^glagoliticsupplement}', "");
     Expect(1, 122928, '\P{glagoliticsupplement}', "");
     Expect(0, 122928, '\P{^glagoliticsupplement}', "");
-    Expect(1, 122927, '\p{__Glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122927, '\p{^__Glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122927, '\P{__Glagolitic_SUPPLEMENT}', "");
-    Expect(1, 122927, '\P{^__Glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122928, '\p{__Glagolitic_SUPPLEMENT}', "");
-    Expect(1, 122928, '\p{^__Glagolitic_SUPPLEMENT}', "");
-    Expect(1, 122928, '\P{__Glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122928, '\P{^__Glagolitic_SUPPLEMENT}', "");
-    Error('\p{_/a/is_GLAGOLITIC_supplement}');
-    Error('\P{_/a/is_GLAGOLITIC_supplement}');
+    Expect(1, 122927, '\p{ glagolitic_Supplement}', "");
+    Expect(0, 122927, '\p{^ glagolitic_Supplement}', "");
+    Expect(0, 122927, '\P{ glagolitic_Supplement}', "");
+    Expect(1, 122927, '\P{^ glagolitic_Supplement}', "");
+    Expect(0, 122928, '\p{ glagolitic_Supplement}', "");
+    Expect(1, 122928, '\p{^ glagolitic_Supplement}', "");
+    Expect(1, 122928, '\P{ glagolitic_Supplement}', "");
+    Expect(0, 122928, '\P{^ glagolitic_Supplement}', "");
+    Error('\p{:=_	is_Glagolitic_Supplement}');
+    Error('\P{:=_	is_Glagolitic_Supplement}');
     Expect(1, 122927, '\p{isglagoliticsupplement}', "");
     Expect(0, 122927, '\p{^isglagoliticsupplement}', "");
     Expect(0, 122927, '\P{isglagoliticsupplement}', "");
@@ -99123,16 +100145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122928, '\p{^isglagoliticsupplement}', "");
     Expect(1, 122928, '\P{isglagoliticsupplement}', "");
     Expect(0, 122928, '\P{^isglagoliticsupplement}', "");
-    Expect(1, 122927, '\p{ is_glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122927, '\p{^ is_glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122927, '\P{ is_glagolitic_SUPPLEMENT}', "");
-    Expect(1, 122927, '\P{^ is_glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122928, '\p{ is_glagolitic_SUPPLEMENT}', "");
-    Expect(1, 122928, '\p{^ is_glagolitic_SUPPLEMENT}', "");
-    Expect(1, 122928, '\P{ is_glagolitic_SUPPLEMENT}', "");
-    Expect(0, 122928, '\P{^ is_glagolitic_SUPPLEMENT}', "");
-    Error('\p{	/a/in_glagolitic_supplement}');
-    Error('\P{	/a/in_glagolitic_supplement}');
+    Expect(1, 122927, '\p{	 Is_GLAGOLITIC_supplement}', "");
+    Expect(0, 122927, '\p{^	 Is_GLAGOLITIC_supplement}', "");
+    Expect(0, 122927, '\P{	 Is_GLAGOLITIC_supplement}', "");
+    Expect(1, 122927, '\P{^	 Is_GLAGOLITIC_supplement}', "");
+    Expect(0, 122928, '\p{	 Is_GLAGOLITIC_supplement}', "");
+    Expect(1, 122928, '\p{^	 Is_GLAGOLITIC_supplement}', "");
+    Expect(1, 122928, '\P{	 Is_GLAGOLITIC_supplement}', "");
+    Expect(0, 122928, '\P{^	 Is_GLAGOLITIC_supplement}', "");
+    Error('\p{  In_GLAGOLITIC_Supplement:=}');
+    Error('\P{  In_GLAGOLITIC_Supplement:=}');
     Expect(1, 122927, '\p{inglagoliticsupplement}', "");
     Expect(0, 122927, '\p{^inglagoliticsupplement}', "");
     Expect(0, 122927, '\P{inglagoliticsupplement}', "");
@@ -99141,16 +100163,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122928, '\p{^inglagoliticsupplement}', "");
     Expect(1, 122928, '\P{inglagoliticsupplement}', "");
     Expect(0, 122928, '\P{^inglagoliticsupplement}', "");
-    Expect(1, 122927, '\p{  IN_GLAGOLITIC_Supplement}', "");
-    Expect(0, 122927, '\p{^  IN_GLAGOLITIC_Supplement}', "");
-    Expect(0, 122927, '\P{  IN_GLAGOLITIC_Supplement}', "");
-    Expect(1, 122927, '\P{^  IN_GLAGOLITIC_Supplement}', "");
-    Expect(0, 122928, '\p{  IN_GLAGOLITIC_Supplement}', "");
-    Expect(1, 122928, '\p{^  IN_GLAGOLITIC_Supplement}', "");
-    Expect(1, 122928, '\P{  IN_GLAGOLITIC_Supplement}', "");
-    Expect(0, 122928, '\P{^  IN_GLAGOLITIC_Supplement}', "");
-    Error('\p{:=-Glagolitic_Sup}');
-    Error('\P{:=-Glagolitic_Sup}');
+    Expect(1, 122927, '\p{- In_Glagolitic_supplement}', "");
+    Expect(0, 122927, '\p{^- In_Glagolitic_supplement}', "");
+    Expect(0, 122927, '\P{- In_Glagolitic_supplement}', "");
+    Expect(1, 122927, '\P{^- In_Glagolitic_supplement}', "");
+    Expect(0, 122928, '\p{- In_Glagolitic_supplement}', "");
+    Expect(1, 122928, '\p{^- In_Glagolitic_supplement}', "");
+    Expect(1, 122928, '\P{- In_Glagolitic_supplement}', "");
+    Expect(0, 122928, '\P{^- In_Glagolitic_supplement}', "");
+    Error('\p{ :=Glagolitic_Sup}');
+    Error('\P{ :=Glagolitic_Sup}');
     Expect(1, 122927, '\p{glagoliticsup}', "");
     Expect(0, 122927, '\p{^glagoliticsup}', "");
     Expect(0, 122927, '\P{glagoliticsup}', "");
@@ -99159,16 +100181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122928, '\p{^glagoliticsup}', "");
     Expect(1, 122928, '\P{glagoliticsup}', "");
     Expect(0, 122928, '\P{^glagoliticsup}', "");
-    Expect(1, 122927, '\p{__Glagolitic_sup}', "");
-    Expect(0, 122927, '\p{^__Glagolitic_sup}', "");
-    Expect(0, 122927, '\P{__Glagolitic_sup}', "");
-    Expect(1, 122927, '\P{^__Glagolitic_sup}', "");
-    Expect(0, 122928, '\p{__Glagolitic_sup}', "");
-    Expect(1, 122928, '\p{^__Glagolitic_sup}', "");
-    Expect(1, 122928, '\P{__Glagolitic_sup}', "");
-    Expect(0, 122928, '\P{^__Glagolitic_sup}', "");
-    Error('\p{	IS_Glagolitic_Sup/a/}');
-    Error('\P{	IS_Glagolitic_Sup/a/}');
+    Expect(1, 122927, '\p{-_Glagolitic_sup}', "");
+    Expect(0, 122927, '\p{^-_Glagolitic_sup}', "");
+    Expect(0, 122927, '\P{-_Glagolitic_sup}', "");
+    Expect(1, 122927, '\P{^-_Glagolitic_sup}', "");
+    Expect(0, 122928, '\p{-_Glagolitic_sup}', "");
+    Expect(1, 122928, '\p{^-_Glagolitic_sup}', "");
+    Expect(1, 122928, '\P{-_Glagolitic_sup}', "");
+    Expect(0, 122928, '\P{^-_Glagolitic_sup}', "");
+    Error('\p{:=	Is_glagolitic_SUP}');
+    Error('\P{:=	Is_glagolitic_SUP}');
     Expect(1, 122927, '\p{isglagoliticsup}', "");
     Expect(0, 122927, '\p{^isglagoliticsup}', "");
     Expect(0, 122927, '\P{isglagoliticsup}', "");
@@ -99177,16 +100199,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122928, '\p{^isglagoliticsup}', "");
     Expect(1, 122928, '\P{isglagoliticsup}', "");
     Expect(0, 122928, '\P{^isglagoliticsup}', "");
-    Expect(1, 122927, '\p{	_Is_Glagolitic_Sup}', "");
-    Expect(0, 122927, '\p{^	_Is_Glagolitic_Sup}', "");
-    Expect(0, 122927, '\P{	_Is_Glagolitic_Sup}', "");
-    Expect(1, 122927, '\P{^	_Is_Glagolitic_Sup}', "");
-    Expect(0, 122928, '\p{	_Is_Glagolitic_Sup}', "");
-    Expect(1, 122928, '\p{^	_Is_Glagolitic_Sup}', "");
-    Expect(1, 122928, '\P{	_Is_Glagolitic_Sup}', "");
-    Expect(0, 122928, '\P{^	_Is_Glagolitic_Sup}', "");
-    Error('\p{_/a/IN_Glagolitic_sup}');
-    Error('\P{_/a/IN_Glagolitic_sup}');
+    Expect(1, 122927, '\p{-IS_glagolitic_Sup}', "");
+    Expect(0, 122927, '\p{^-IS_glagolitic_Sup}', "");
+    Expect(0, 122927, '\P{-IS_glagolitic_Sup}', "");
+    Expect(1, 122927, '\P{^-IS_glagolitic_Sup}', "");
+    Expect(0, 122928, '\p{-IS_glagolitic_Sup}', "");
+    Expect(1, 122928, '\p{^-IS_glagolitic_Sup}', "");
+    Expect(1, 122928, '\P{-IS_glagolitic_Sup}', "");
+    Expect(0, 122928, '\P{^-IS_glagolitic_Sup}', "");
+    Error('\p{:=IN_GLAGOLITIC_SUP}');
+    Error('\P{:=IN_GLAGOLITIC_SUP}');
     Expect(1, 122927, '\p{inglagoliticsup}', "");
     Expect(0, 122927, '\p{^inglagoliticsup}', "");
     Expect(0, 122927, '\P{inglagoliticsup}', "");
@@ -99195,16 +100217,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122928, '\p{^inglagoliticsup}', "");
     Expect(1, 122928, '\P{inglagoliticsup}', "");
     Expect(0, 122928, '\P{^inglagoliticsup}', "");
-    Expect(1, 122927, '\p{ -In_GLAGOLITIC_sup}', "");
-    Expect(0, 122927, '\p{^ -In_GLAGOLITIC_sup}', "");
-    Expect(0, 122927, '\P{ -In_GLAGOLITIC_sup}', "");
-    Expect(1, 122927, '\P{^ -In_GLAGOLITIC_sup}', "");
-    Expect(0, 122928, '\p{ -In_GLAGOLITIC_sup}', "");
-    Expect(1, 122928, '\p{^ -In_GLAGOLITIC_sup}', "");
-    Expect(1, 122928, '\P{ -In_GLAGOLITIC_sup}', "");
-    Expect(0, 122928, '\P{^ -In_GLAGOLITIC_sup}', "");
-    Error('\p{_/a/gothic}');
-    Error('\P{_/a/gothic}');
+    Expect(1, 122927, '\p{	 In_glagolitic_Sup}', "");
+    Expect(0, 122927, '\p{^	 In_glagolitic_Sup}', "");
+    Expect(0, 122927, '\P{	 In_glagolitic_Sup}', "");
+    Expect(1, 122927, '\P{^	 In_glagolitic_Sup}', "");
+    Expect(0, 122928, '\p{	 In_glagolitic_Sup}', "");
+    Expect(1, 122928, '\p{^	 In_glagolitic_Sup}', "");
+    Expect(1, 122928, '\P{	 In_glagolitic_Sup}', "");
+    Expect(0, 122928, '\P{^	 In_glagolitic_Sup}', "");
+    Error('\p{ 	Gothic:=}');
+    Error('\P{ 	Gothic:=}');
     Expect(1, 66378, '\p{gothic}', "");
     Expect(0, 66378, '\p{^gothic}', "");
     Expect(0, 66378, '\P{gothic}', "");
@@ -99213,16 +100235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66379, '\p{^gothic}', "");
     Expect(1, 66379, '\P{gothic}', "");
     Expect(0, 66379, '\P{^gothic}', "");
-    Expect(1, 66378, '\p{- GOTHIC}', "");
-    Expect(0, 66378, '\p{^- GOTHIC}', "");
-    Expect(0, 66378, '\P{- GOTHIC}', "");
-    Expect(1, 66378, '\P{^- GOTHIC}', "");
-    Expect(0, 66379, '\p{- GOTHIC}', "");
-    Expect(1, 66379, '\p{^- GOTHIC}', "");
-    Expect(1, 66379, '\P{- GOTHIC}', "");
-    Expect(0, 66379, '\P{^- GOTHIC}', "");
-    Error('\p{:=	_is_GOTHIC}');
-    Error('\P{:=	_is_GOTHIC}');
+    Expect(1, 66378, '\p{Gothic}', "");
+    Expect(0, 66378, '\p{^Gothic}', "");
+    Expect(0, 66378, '\P{Gothic}', "");
+    Expect(1, 66378, '\P{^Gothic}', "");
+    Expect(0, 66379, '\p{Gothic}', "");
+    Expect(1, 66379, '\p{^Gothic}', "");
+    Expect(1, 66379, '\P{Gothic}', "");
+    Expect(0, 66379, '\P{^Gothic}', "");
+    Error('\p{/a/	-is_Gothic}');
+    Error('\P{/a/	-is_Gothic}');
     Expect(1, 66378, '\p{isgothic}', "");
     Expect(0, 66378, '\p{^isgothic}', "");
     Expect(0, 66378, '\P{isgothic}', "");
@@ -99231,16 +100253,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66379, '\p{^isgothic}', "");
     Expect(1, 66379, '\P{isgothic}', "");
     Expect(0, 66379, '\P{^isgothic}', "");
-    Expect(1, 66378, '\p{	-Is_GOTHIC}', "");
-    Expect(0, 66378, '\p{^	-Is_GOTHIC}', "");
-    Expect(0, 66378, '\P{	-Is_GOTHIC}', "");
-    Expect(1, 66378, '\P{^	-Is_GOTHIC}', "");
-    Expect(0, 66379, '\p{	-Is_GOTHIC}', "");
-    Expect(1, 66379, '\p{^	-Is_GOTHIC}', "");
-    Expect(1, 66379, '\P{	-Is_GOTHIC}', "");
-    Expect(0, 66379, '\P{^	-Is_GOTHIC}', "");
-    Error('\p{:=	-Goth}');
-    Error('\P{:=	-Goth}');
+    Expect(1, 66378, '\p{	IS_Gothic}', "");
+    Expect(0, 66378, '\p{^	IS_Gothic}', "");
+    Expect(0, 66378, '\P{	IS_Gothic}', "");
+    Expect(1, 66378, '\P{^	IS_Gothic}', "");
+    Expect(0, 66379, '\p{	IS_Gothic}', "");
+    Expect(1, 66379, '\p{^	IS_Gothic}', "");
+    Expect(1, 66379, '\P{	IS_Gothic}', "");
+    Expect(0, 66379, '\P{^	IS_Gothic}', "");
+    Error('\p{-:=Goth}');
+    Error('\P{-:=Goth}');
     Expect(1, 66378, '\p{goth}', "");
     Expect(0, 66378, '\p{^goth}', "");
     Expect(0, 66378, '\P{goth}', "");
@@ -99249,16 +100271,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66379, '\p{^goth}', "");
     Expect(1, 66379, '\P{goth}', "");
     Expect(0, 66379, '\P{^goth}', "");
-    Expect(1, 66378, '\p{	-Goth}', "");
-    Expect(0, 66378, '\p{^	-Goth}', "");
-    Expect(0, 66378, '\P{	-Goth}', "");
-    Expect(1, 66378, '\P{^	-Goth}', "");
-    Expect(0, 66379, '\p{	-Goth}', "");
-    Expect(1, 66379, '\p{^	-Goth}', "");
-    Expect(1, 66379, '\P{	-Goth}', "");
-    Expect(0, 66379, '\P{^	-Goth}', "");
-    Error('\p{:=	is_Goth}');
-    Error('\P{:=	is_Goth}');
+    Expect(1, 66378, '\p{_GOTH}', "");
+    Expect(0, 66378, '\p{^_GOTH}', "");
+    Expect(0, 66378, '\P{_GOTH}', "");
+    Expect(1, 66378, '\P{^_GOTH}', "");
+    Expect(0, 66379, '\p{_GOTH}', "");
+    Expect(1, 66379, '\p{^_GOTH}', "");
+    Expect(1, 66379, '\P{_GOTH}', "");
+    Expect(0, 66379, '\P{^_GOTH}', "");
+    Error('\p{:=_Is_Goth}');
+    Error('\P{:=_Is_Goth}');
     Expect(1, 66378, '\p{isgoth}', "");
     Expect(0, 66378, '\p{^isgoth}', "");
     Expect(0, 66378, '\P{isgoth}', "");
@@ -99267,16 +100289,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66379, '\p{^isgoth}', "");
     Expect(1, 66379, '\P{isgoth}', "");
     Expect(0, 66379, '\P{^isgoth}', "");
-    Expect(1, 66378, '\p{ Is_GOTH}', "");
-    Expect(0, 66378, '\p{^ Is_GOTH}', "");
-    Expect(0, 66378, '\P{ Is_GOTH}', "");
-    Expect(1, 66378, '\P{^ Is_GOTH}', "");
-    Expect(0, 66379, '\p{ Is_GOTH}', "");
-    Expect(1, 66379, '\p{^ Is_GOTH}', "");
-    Expect(1, 66379, '\P{ Is_GOTH}', "");
-    Expect(0, 66379, '\P{^ Is_GOTH}', "");
-    Error('\p{-Grantha/a/}');
-    Error('\P{-Grantha/a/}');
+    Expect(1, 66378, '\p{_Is_goth}', "");
+    Expect(0, 66378, '\p{^_Is_goth}', "");
+    Expect(0, 66378, '\P{_Is_goth}', "");
+    Expect(1, 66378, '\P{^_Is_goth}', "");
+    Expect(0, 66379, '\p{_Is_goth}', "");
+    Expect(1, 66379, '\p{^_Is_goth}', "");
+    Expect(1, 66379, '\P{_Is_goth}', "");
+    Expect(0, 66379, '\P{^_Is_goth}', "");
+    Error('\p{/a/grantha}');
+    Error('\P{/a/grantha}');
     Expect(1, 73683, '\p{grantha}', "");
     Expect(0, 73683, '\p{^grantha}', "");
     Expect(0, 73683, '\P{grantha}', "");
@@ -99285,16 +100307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73684, '\p{^grantha}', "");
     Expect(1, 73684, '\P{grantha}', "");
     Expect(0, 73684, '\P{^grantha}', "");
-    Expect(1, 73683, '\p{_ Grantha}', "");
-    Expect(0, 73683, '\p{^_ Grantha}', "");
-    Expect(0, 73683, '\P{_ Grantha}', "");
-    Expect(1, 73683, '\P{^_ Grantha}', "");
-    Expect(0, 73684, '\p{_ Grantha}', "");
-    Expect(1, 73684, '\p{^_ Grantha}', "");
-    Expect(1, 73684, '\P{_ Grantha}', "");
-    Expect(0, 73684, '\P{^_ Grantha}', "");
-    Error('\p{/a/Is_GRANTHA}');
-    Error('\P{/a/Is_GRANTHA}');
+    Expect(1, 73683, '\p{  Grantha}', "");
+    Expect(0, 73683, '\p{^  Grantha}', "");
+    Expect(0, 73683, '\P{  Grantha}', "");
+    Expect(1, 73683, '\P{^  Grantha}', "");
+    Expect(0, 73684, '\p{  Grantha}', "");
+    Expect(1, 73684, '\p{^  Grantha}', "");
+    Expect(1, 73684, '\P{  Grantha}', "");
+    Expect(0, 73684, '\P{^  Grantha}', "");
+    Error('\p{-_is_Grantha:=}');
+    Error('\P{-_is_Grantha:=}');
     Expect(1, 73683, '\p{isgrantha}', "");
     Expect(0, 73683, '\p{^isgrantha}', "");
     Expect(0, 73683, '\P{isgrantha}', "");
@@ -99303,16 +100325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73684, '\p{^isgrantha}', "");
     Expect(1, 73684, '\P{isgrantha}', "");
     Expect(0, 73684, '\P{^isgrantha}', "");
-    Expect(1, 73683, '\p{	IS_Grantha}', "");
-    Expect(0, 73683, '\p{^	IS_Grantha}', "");
-    Expect(0, 73683, '\P{	IS_Grantha}', "");
-    Expect(1, 73683, '\P{^	IS_Grantha}', "");
-    Expect(0, 73684, '\p{	IS_Grantha}', "");
-    Expect(1, 73684, '\p{^	IS_Grantha}', "");
-    Expect(1, 73684, '\P{	IS_Grantha}', "");
-    Expect(0, 73684, '\P{^	IS_Grantha}', "");
-    Error('\p{_ GRAN:=}');
-    Error('\P{_ GRAN:=}');
+    Expect(1, 73683, '\p{-is_Grantha}', "");
+    Expect(0, 73683, '\p{^-is_Grantha}', "");
+    Expect(0, 73683, '\P{-is_Grantha}', "");
+    Expect(1, 73683, '\P{^-is_Grantha}', "");
+    Expect(0, 73684, '\p{-is_Grantha}', "");
+    Expect(1, 73684, '\p{^-is_Grantha}', "");
+    Expect(1, 73684, '\P{-is_Grantha}', "");
+    Expect(0, 73684, '\P{^-is_Grantha}', "");
+    Error('\p{	/a/GRAN}');
+    Error('\P{	/a/GRAN}');
     Expect(1, 73683, '\p{gran}', "");
     Expect(0, 73683, '\p{^gran}', "");
     Expect(0, 73683, '\P{gran}', "");
@@ -99321,16 +100343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73684, '\p{^gran}', "");
     Expect(1, 73684, '\P{gran}', "");
     Expect(0, 73684, '\P{^gran}', "");
-    Expect(1, 73683, '\p{__GRAN}', "");
-    Expect(0, 73683, '\p{^__GRAN}', "");
-    Expect(0, 73683, '\P{__GRAN}', "");
-    Expect(1, 73683, '\P{^__GRAN}', "");
-    Expect(0, 73684, '\p{__GRAN}', "");
-    Expect(1, 73684, '\p{^__GRAN}', "");
-    Expect(1, 73684, '\P{__GRAN}', "");
-    Expect(0, 73684, '\P{^__GRAN}', "");
-    Error('\p{_ IS_GRAN:=}');
-    Error('\P{_ IS_GRAN:=}');
+    Expect(1, 73683, '\p{ gran}', "");
+    Expect(0, 73683, '\p{^ gran}', "");
+    Expect(0, 73683, '\P{ gran}', "");
+    Expect(1, 73683, '\P{^ gran}', "");
+    Expect(0, 73684, '\p{ gran}', "");
+    Expect(1, 73684, '\p{^ gran}', "");
+    Expect(1, 73684, '\P{ gran}', "");
+    Expect(0, 73684, '\P{^ gran}', "");
+    Error('\p{/a/IS_gran}');
+    Error('\P{/a/IS_gran}');
     Expect(1, 73683, '\p{isgran}', "");
     Expect(0, 73683, '\p{^isgran}', "");
     Expect(0, 73683, '\P{isgran}', "");
@@ -99339,16 +100361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73684, '\p{^isgran}', "");
     Expect(1, 73684, '\P{isgran}', "");
     Expect(0, 73684, '\P{^isgran}', "");
-    Expect(1, 73683, '\p{-_is_gran}', "");
-    Expect(0, 73683, '\p{^-_is_gran}', "");
-    Expect(0, 73683, '\P{-_is_gran}', "");
-    Expect(1, 73683, '\P{^-_is_gran}', "");
-    Expect(0, 73684, '\p{-_is_gran}', "");
-    Expect(1, 73684, '\p{^-_is_gran}', "");
-    Expect(1, 73684, '\P{-_is_gran}', "");
-    Expect(0, 73684, '\P{^-_is_gran}', "");
-    Error('\p{:=	XPosixGraph}');
-    Error('\P{:=	XPosixGraph}');
+    Expect(1, 73683, '\p{_IS_GRAN}', "");
+    Expect(0, 73683, '\p{^_IS_GRAN}', "");
+    Expect(0, 73683, '\P{_IS_GRAN}', "");
+    Expect(1, 73683, '\P{^_IS_GRAN}', "");
+    Expect(0, 73684, '\p{_IS_GRAN}', "");
+    Expect(1, 73684, '\p{^_IS_GRAN}', "");
+    Expect(1, 73684, '\P{_IS_GRAN}', "");
+    Expect(0, 73684, '\P{^_IS_GRAN}', "");
+    Error('\p{:=_ XPosixGraph}');
+    Error('\P{:=_ XPosixGraph}');
     Expect(1, 1114109, '\p{xposixgraph}', "");
     Expect(0, 1114109, '\p{^xposixgraph}', "");
     Expect(0, 1114109, '\P{xposixgraph}', "");
@@ -99357,16 +100379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^xposixgraph}', "");
     Expect(1, 918000, '\P{xposixgraph}', "");
     Expect(0, 918000, '\P{^xposixgraph}', "");
-    Expect(1, 1114109, '\p{	XPosixGraph}', "");
-    Expect(0, 1114109, '\p{^	XPosixGraph}', "");
-    Expect(0, 1114109, '\P{	XPosixGraph}', "");
-    Expect(1, 1114109, '\P{^	XPosixGraph}', "");
-    Expect(0, 918000, '\p{	XPosixGraph}', "");
-    Expect(1, 918000, '\p{^	XPosixGraph}', "");
-    Expect(1, 918000, '\P{	XPosixGraph}', "");
-    Expect(0, 918000, '\P{^	XPosixGraph}', "");
-    Error('\p{:=graph}');
-    Error('\P{:=graph}');
+    Expect(1, 1114109, '\p{-	XPosixGraph}', "");
+    Expect(0, 1114109, '\p{^-	XPosixGraph}', "");
+    Expect(0, 1114109, '\P{-	XPosixGraph}', "");
+    Expect(1, 1114109, '\P{^-	XPosixGraph}', "");
+    Expect(0, 918000, '\p{-	XPosixGraph}', "");
+    Expect(1, 918000, '\p{^-	XPosixGraph}', "");
+    Expect(1, 918000, '\P{-	XPosixGraph}', "");
+    Expect(0, 918000, '\P{^-	XPosixGraph}', "");
+    Error('\p{:=_graph}');
+    Error('\P{:=_graph}');
     Expect(1, 1114109, '\p{graph}', "");
     Expect(0, 1114109, '\p{^graph}', "");
     Expect(0, 1114109, '\P{graph}', "");
@@ -99375,16 +100397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^graph}', "");
     Expect(1, 918000, '\P{graph}', "");
     Expect(0, 918000, '\P{^graph}', "");
-    Expect(1, 1114109, '\p{_Graph}', "");
-    Expect(0, 1114109, '\p{^_Graph}', "");
-    Expect(0, 1114109, '\P{_Graph}', "");
-    Expect(1, 1114109, '\P{^_Graph}', "");
-    Expect(0, 918000, '\p{_Graph}', "");
-    Expect(1, 918000, '\p{^_Graph}', "");
-    Expect(1, 918000, '\P{_Graph}', "");
-    Expect(0, 918000, '\P{^_Graph}', "");
-    Error('\p{Is_XPOSIXGRAPH/a/}');
-    Error('\P{Is_XPOSIXGRAPH/a/}');
+    Expect(1, 1114109, '\p{--graph}', "");
+    Expect(0, 1114109, '\p{^--graph}', "");
+    Expect(0, 1114109, '\P{--graph}', "");
+    Expect(1, 1114109, '\P{^--graph}', "");
+    Expect(0, 918000, '\p{--graph}', "");
+    Expect(1, 918000, '\p{^--graph}', "");
+    Expect(1, 918000, '\P{--graph}', "");
+    Expect(0, 918000, '\P{^--graph}', "");
+    Error('\p{-/a/Is_XPOSIXGRAPH}');
+    Error('\P{-/a/Is_XPOSIXGRAPH}');
     Expect(1, 1114109, '\p{isxposixgraph}', "");
     Expect(0, 1114109, '\p{^isxposixgraph}', "");
     Expect(0, 1114109, '\P{isxposixgraph}', "");
@@ -99393,16 +100415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isxposixgraph}', "");
     Expect(1, 918000, '\P{isxposixgraph}', "");
     Expect(0, 918000, '\P{^isxposixgraph}', "");
-    Expect(1, 1114109, '\p{_-is_XPosixGraph}', "");
-    Expect(0, 1114109, '\p{^_-is_XPosixGraph}', "");
-    Expect(0, 1114109, '\P{_-is_XPosixGraph}', "");
-    Expect(1, 1114109, '\P{^_-is_XPosixGraph}', "");
-    Expect(0, 918000, '\p{_-is_XPosixGraph}', "");
-    Expect(1, 918000, '\p{^_-is_XPosixGraph}', "");
-    Expect(1, 918000, '\P{_-is_XPosixGraph}', "");
-    Expect(0, 918000, '\P{^_-is_XPosixGraph}', "");
-    Error('\p{/a/ is_Graph}');
-    Error('\P{/a/ is_Graph}');
+    Expect(1, 1114109, '\p{-_Is_XPosixGraph}', "");
+    Expect(0, 1114109, '\p{^-_Is_XPosixGraph}', "");
+    Expect(0, 1114109, '\P{-_Is_XPosixGraph}', "");
+    Expect(1, 1114109, '\P{^-_Is_XPosixGraph}', "");
+    Expect(0, 918000, '\p{-_Is_XPosixGraph}', "");
+    Expect(1, 918000, '\p{^-_Is_XPosixGraph}', "");
+    Expect(1, 918000, '\P{-_Is_XPosixGraph}', "");
+    Expect(0, 918000, '\P{^-_Is_XPosixGraph}', "");
+    Error('\p{--Is_graph:=}');
+    Error('\P{--Is_graph:=}');
     Expect(1, 1114109, '\p{isgraph}', "");
     Expect(0, 1114109, '\p{^isgraph}', "");
     Expect(0, 1114109, '\P{isgraph}', "");
@@ -99411,88 +100433,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isgraph}', "");
     Expect(1, 918000, '\P{isgraph}', "");
     Expect(0, 918000, '\P{^isgraph}', "");
-    Expect(1, 1114109, '\p{	 IS_GRAPH}', "");
-    Expect(0, 1114109, '\p{^	 IS_GRAPH}', "");
-    Expect(0, 1114109, '\P{	 IS_GRAPH}', "");
-    Expect(1, 1114109, '\P{^	 IS_GRAPH}', "");
-    Expect(0, 918000, '\p{	 IS_GRAPH}', "");
-    Expect(1, 918000, '\p{^	 IS_GRAPH}', "");
-    Expect(1, 918000, '\P{	 IS_GRAPH}', "");
-    Expect(0, 918000, '\P{^	 IS_GRAPH}', "");
-    Error('\p{-/a/Grapheme_Base}');
-    Error('\P{-/a/Grapheme_Base}');
-    Expect(1, 201546, '\p{graphemebase}', "");
-    Expect(0, 201546, '\p{^graphemebase}', "");
-    Expect(0, 201546, '\P{graphemebase}', "");
-    Expect(1, 201546, '\P{^graphemebase}', "");
-    Expect(0, 201547, '\p{graphemebase}', "");
-    Expect(1, 201547, '\p{^graphemebase}', "");
-    Expect(1, 201547, '\P{graphemebase}', "");
-    Expect(0, 201547, '\P{^graphemebase}', "");
-    Expect(1, 201546, '\p{_-Grapheme_Base}', "");
-    Expect(0, 201546, '\p{^_-Grapheme_Base}', "");
-    Expect(0, 201546, '\P{_-Grapheme_Base}', "");
-    Expect(1, 201546, '\P{^_-Grapheme_Base}', "");
-    Expect(0, 201547, '\p{_-Grapheme_Base}', "");
-    Expect(1, 201547, '\p{^_-Grapheme_Base}', "");
-    Expect(1, 201547, '\P{_-Grapheme_Base}', "");
-    Expect(0, 201547, '\P{^_-Grapheme_Base}', "");
-    Error('\p{:=_Is_GRAPHEME_Base}');
-    Error('\P{:=_Is_GRAPHEME_Base}');
-    Expect(1, 201546, '\p{isgraphemebase}', "");
-    Expect(0, 201546, '\p{^isgraphemebase}', "");
-    Expect(0, 201546, '\P{isgraphemebase}', "");
-    Expect(1, 201546, '\P{^isgraphemebase}', "");
-    Expect(0, 201547, '\p{isgraphemebase}', "");
-    Expect(1, 201547, '\p{^isgraphemebase}', "");
-    Expect(1, 201547, '\P{isgraphemebase}', "");
-    Expect(0, 201547, '\P{^isgraphemebase}', "");
-    Expect(1, 201546, '\p{	Is_GRAPHEME_base}', "");
-    Expect(0, 201546, '\p{^	Is_GRAPHEME_base}', "");
-    Expect(0, 201546, '\P{	Is_GRAPHEME_base}', "");
-    Expect(1, 201546, '\P{^	Is_GRAPHEME_base}', "");
-    Expect(0, 201547, '\p{	Is_GRAPHEME_base}', "");
-    Expect(1, 201547, '\p{^	Is_GRAPHEME_base}', "");
-    Expect(1, 201547, '\P{	Is_GRAPHEME_base}', "");
-    Expect(0, 201547, '\P{^	Is_GRAPHEME_base}', "");
-    Error('\p{- Gr_Base/a/}');
-    Error('\P{- Gr_Base/a/}');
-    Expect(1, 201546, '\p{grbase}', "");
-    Expect(0, 201546, '\p{^grbase}', "");
-    Expect(0, 201546, '\P{grbase}', "");
-    Expect(1, 201546, '\P{^grbase}', "");
-    Expect(0, 201547, '\p{grbase}', "");
-    Expect(1, 201547, '\p{^grbase}', "");
-    Expect(1, 201547, '\P{grbase}', "");
-    Expect(0, 201547, '\P{^grbase}', "");
-    Expect(1, 201546, '\p{-GR_base}', "");
-    Expect(0, 201546, '\p{^-GR_base}', "");
-    Expect(0, 201546, '\P{-GR_base}', "");
-    Expect(1, 201546, '\P{^-GR_base}', "");
-    Expect(0, 201547, '\p{-GR_base}', "");
-    Expect(1, 201547, '\p{^-GR_base}', "");
-    Expect(1, 201547, '\P{-GR_base}', "");
-    Expect(0, 201547, '\P{^-GR_base}', "");
-    Error('\p{:=Is_gr_Base}');
-    Error('\P{:=Is_gr_Base}');
-    Expect(1, 201546, '\p{isgrbase}', "");
-    Expect(0, 201546, '\p{^isgrbase}', "");
-    Expect(0, 201546, '\P{isgrbase}', "");
-    Expect(1, 201546, '\P{^isgrbase}', "");
-    Expect(0, 201547, '\p{isgrbase}', "");
-    Expect(1, 201547, '\p{^isgrbase}', "");
-    Expect(1, 201547, '\P{isgrbase}', "");
-    Expect(0, 201547, '\P{^isgrbase}', "");
-    Expect(1, 201546, '\p{	IS_Gr_Base}', "");
-    Expect(0, 201546, '\p{^	IS_Gr_Base}', "");
-    Expect(0, 201546, '\P{	IS_Gr_Base}', "");
-    Expect(1, 201546, '\P{^	IS_Gr_Base}', "");
-    Expect(0, 201547, '\p{	IS_Gr_Base}', "");
-    Expect(1, 201547, '\p{^	IS_Gr_Base}', "");
-    Expect(1, 201547, '\P{	IS_Gr_Base}', "");
-    Expect(0, 201547, '\P{^	IS_Gr_Base}', "");
-    Error('\p{-Grapheme_Extend/a/}');
-    Error('\P{-Grapheme_Extend/a/}');
+    Expect(1, 1114109, '\p{_-is_Graph}', "");
+    Expect(0, 1114109, '\p{^_-is_Graph}', "");
+    Expect(0, 1114109, '\P{_-is_Graph}', "");
+    Expect(1, 1114109, '\P{^_-is_Graph}', "");
+    Expect(0, 918000, '\p{_-is_Graph}', "");
+    Expect(1, 918000, '\p{^_-is_Graph}', "");
+    Expect(1, 918000, '\P{_-is_Graph}', "");
+    Expect(0, 918000, '\P{^_-is_Graph}', "");
+    Error('\p{ /a/Grapheme_base}');
+    Error('\P{ /a/Grapheme_base}');
+    Expect(1, 205743, '\p{graphemebase}', "");
+    Expect(0, 205743, '\p{^graphemebase}', "");
+    Expect(0, 205743, '\P{graphemebase}', "");
+    Expect(1, 205743, '\P{^graphemebase}', "");
+    Expect(0, 205744, '\p{graphemebase}', "");
+    Expect(1, 205744, '\p{^graphemebase}', "");
+    Expect(1, 205744, '\P{graphemebase}', "");
+    Expect(0, 205744, '\P{^graphemebase}', "");
+    Expect(1, 205743, '\p{	-Grapheme_Base}', "");
+    Expect(0, 205743, '\p{^	-Grapheme_Base}', "");
+    Expect(0, 205743, '\P{	-Grapheme_Base}', "");
+    Expect(1, 205743, '\P{^	-Grapheme_Base}', "");
+    Expect(0, 205744, '\p{	-Grapheme_Base}', "");
+    Expect(1, 205744, '\p{^	-Grapheme_Base}', "");
+    Expect(1, 205744, '\P{	-Grapheme_Base}', "");
+    Expect(0, 205744, '\P{^	-Grapheme_Base}', "");
+    Error('\p{/a/	Is_Grapheme_Base}');
+    Error('\P{/a/	Is_Grapheme_Base}');
+    Expect(1, 205743, '\p{isgraphemebase}', "");
+    Expect(0, 205743, '\p{^isgraphemebase}', "");
+    Expect(0, 205743, '\P{isgraphemebase}', "");
+    Expect(1, 205743, '\P{^isgraphemebase}', "");
+    Expect(0, 205744, '\p{isgraphemebase}', "");
+    Expect(1, 205744, '\p{^isgraphemebase}', "");
+    Expect(1, 205744, '\P{isgraphemebase}', "");
+    Expect(0, 205744, '\P{^isgraphemebase}', "");
+    Expect(1, 205743, '\p{ -Is_GRAPHEME_Base}', "");
+    Expect(0, 205743, '\p{^ -Is_GRAPHEME_Base}', "");
+    Expect(0, 205743, '\P{ -Is_GRAPHEME_Base}', "");
+    Expect(1, 205743, '\P{^ -Is_GRAPHEME_Base}', "");
+    Expect(0, 205744, '\p{ -Is_GRAPHEME_Base}', "");
+    Expect(1, 205744, '\p{^ -Is_GRAPHEME_Base}', "");
+    Expect(1, 205744, '\P{ -Is_GRAPHEME_Base}', "");
+    Expect(0, 205744, '\P{^ -Is_GRAPHEME_Base}', "");
+    Error('\p{	 Gr_base/a/}');
+    Error('\P{	 Gr_base/a/}');
+    Expect(1, 205743, '\p{grbase}', "");
+    Expect(0, 205743, '\p{^grbase}', "");
+    Expect(0, 205743, '\P{grbase}', "");
+    Expect(1, 205743, '\P{^grbase}', "");
+    Expect(0, 205744, '\p{grbase}', "");
+    Expect(1, 205744, '\p{^grbase}', "");
+    Expect(1, 205744, '\P{grbase}', "");
+    Expect(0, 205744, '\P{^grbase}', "");
+    Expect(1, 205743, '\p{	_Gr_Base}', "");
+    Expect(0, 205743, '\p{^	_Gr_Base}', "");
+    Expect(0, 205743, '\P{	_Gr_Base}', "");
+    Expect(1, 205743, '\P{^	_Gr_Base}', "");
+    Expect(0, 205744, '\p{	_Gr_Base}', "");
+    Expect(1, 205744, '\p{^	_Gr_Base}', "");
+    Expect(1, 205744, '\P{	_Gr_Base}', "");
+    Expect(0, 205744, '\P{^	_Gr_Base}', "");
+    Error('\p{	:=Is_gr_BASE}');
+    Error('\P{	:=Is_gr_BASE}');
+    Expect(1, 205743, '\p{isgrbase}', "");
+    Expect(0, 205743, '\p{^isgrbase}', "");
+    Expect(0, 205743, '\P{isgrbase}', "");
+    Expect(1, 205743, '\P{^isgrbase}', "");
+    Expect(0, 205744, '\p{isgrbase}', "");
+    Expect(1, 205744, '\p{^isgrbase}', "");
+    Expect(1, 205744, '\P{isgrbase}', "");
+    Expect(0, 205744, '\P{^isgrbase}', "");
+    Expect(1, 205743, '\p{  Is_GR_base}', "");
+    Expect(0, 205743, '\p{^  Is_GR_base}', "");
+    Expect(0, 205743, '\P{  Is_GR_base}', "");
+    Expect(1, 205743, '\P{^  Is_GR_base}', "");
+    Expect(0, 205744, '\p{  Is_GR_base}', "");
+    Expect(1, 205744, '\p{^  Is_GR_base}', "");
+    Expect(1, 205744, '\P{  Is_GR_base}', "");
+    Expect(0, 205744, '\P{^  Is_GR_base}', "");
+    Error('\p{:= 	Grapheme_EXTEND}');
+    Error('\P{:= 	Grapheme_EXTEND}');
     Expect(1, 917999, '\p{graphemeextend}', "");
     Expect(0, 917999, '\p{^graphemeextend}', "");
     Expect(0, 917999, '\P{graphemeextend}', "");
@@ -99501,16 +100523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^graphemeextend}', "");
     Expect(1, 918000, '\P{graphemeextend}', "");
     Expect(0, 918000, '\P{^graphemeextend}', "");
-    Expect(1, 917999, '\p{		Grapheme_Extend}', "");
-    Expect(0, 917999, '\p{^		Grapheme_Extend}', "");
-    Expect(0, 917999, '\P{		Grapheme_Extend}', "");
-    Expect(1, 917999, '\P{^		Grapheme_Extend}', "");
-    Expect(0, 918000, '\p{		Grapheme_Extend}', "");
-    Expect(1, 918000, '\p{^		Grapheme_Extend}', "");
-    Expect(1, 918000, '\P{		Grapheme_Extend}', "");
-    Expect(0, 918000, '\P{^		Grapheme_Extend}', "");
-    Error('\p{-IS_Grapheme_Extend:=}');
-    Error('\P{-IS_Grapheme_Extend:=}');
+    Expect(1, 917999, '\p{ 	GRAPHEME_Extend}', "");
+    Expect(0, 917999, '\p{^ 	GRAPHEME_Extend}', "");
+    Expect(0, 917999, '\P{ 	GRAPHEME_Extend}', "");
+    Expect(1, 917999, '\P{^ 	GRAPHEME_Extend}', "");
+    Expect(0, 918000, '\p{ 	GRAPHEME_Extend}', "");
+    Expect(1, 918000, '\p{^ 	GRAPHEME_Extend}', "");
+    Expect(1, 918000, '\P{ 	GRAPHEME_Extend}', "");
+    Expect(0, 918000, '\P{^ 	GRAPHEME_Extend}', "");
+    Error('\p{/a/_	Is_GRAPHEME_Extend}');
+    Error('\P{/a/_	Is_GRAPHEME_Extend}');
     Expect(1, 917999, '\p{isgraphemeextend}', "");
     Expect(0, 917999, '\p{^isgraphemeextend}', "");
     Expect(0, 917999, '\P{isgraphemeextend}', "");
@@ -99519,16 +100541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isgraphemeextend}', "");
     Expect(1, 918000, '\P{isgraphemeextend}', "");
     Expect(0, 918000, '\P{^isgraphemeextend}', "");
-    Expect(1, 917999, '\p{_IS_GRAPHEME_extend}', "");
-    Expect(0, 917999, '\p{^_IS_GRAPHEME_extend}', "");
-    Expect(0, 917999, '\P{_IS_GRAPHEME_extend}', "");
-    Expect(1, 917999, '\P{^_IS_GRAPHEME_extend}', "");
-    Expect(0, 918000, '\p{_IS_GRAPHEME_extend}', "");
-    Expect(1, 918000, '\p{^_IS_GRAPHEME_extend}', "");
-    Expect(1, 918000, '\P{_IS_GRAPHEME_extend}', "");
-    Expect(0, 918000, '\P{^_IS_GRAPHEME_extend}', "");
-    Error('\p{/a/-	gr_EXT}');
-    Error('\P{/a/-	gr_EXT}');
+    Expect(1, 917999, '\p{	is_GRAPHEME_Extend}', "");
+    Expect(0, 917999, '\p{^	is_GRAPHEME_Extend}', "");
+    Expect(0, 917999, '\P{	is_GRAPHEME_Extend}', "");
+    Expect(1, 917999, '\P{^	is_GRAPHEME_Extend}', "");
+    Expect(0, 918000, '\p{	is_GRAPHEME_Extend}', "");
+    Expect(1, 918000, '\p{^	is_GRAPHEME_Extend}', "");
+    Expect(1, 918000, '\P{	is_GRAPHEME_Extend}', "");
+    Expect(0, 918000, '\P{^	is_GRAPHEME_Extend}', "");
+    Error('\p{gr_Ext:=}');
+    Error('\P{gr_Ext:=}');
     Expect(1, 917999, '\p{grext}', "");
     Expect(0, 917999, '\p{^grext}', "");
     Expect(0, 917999, '\P{grext}', "");
@@ -99537,16 +100559,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^grext}', "");
     Expect(1, 918000, '\P{grext}', "");
     Expect(0, 918000, '\P{^grext}', "");
-    Expect(1, 917999, '\p{ 	gr_ext}', "");
-    Expect(0, 917999, '\p{^ 	gr_ext}', "");
-    Expect(0, 917999, '\P{ 	gr_ext}', "");
-    Expect(1, 917999, '\P{^ 	gr_ext}', "");
-    Expect(0, 918000, '\p{ 	gr_ext}', "");
-    Expect(1, 918000, '\p{^ 	gr_ext}', "");
-    Expect(1, 918000, '\P{ 	gr_ext}', "");
-    Expect(0, 918000, '\P{^ 	gr_ext}', "");
-    Error('\p{/a/Is_Gr_EXT}');
-    Error('\P{/a/Is_Gr_EXT}');
+    Expect(1, 917999, '\p{-GR_Ext}', "");
+    Expect(0, 917999, '\p{^-GR_Ext}', "");
+    Expect(0, 917999, '\P{-GR_Ext}', "");
+    Expect(1, 917999, '\P{^-GR_Ext}', "");
+    Expect(0, 918000, '\p{-GR_Ext}', "");
+    Expect(1, 918000, '\p{^-GR_Ext}', "");
+    Expect(1, 918000, '\P{-GR_Ext}', "");
+    Expect(0, 918000, '\P{^-GR_Ext}', "");
+    Error('\p{:= Is_Gr_EXT}');
+    Error('\P{:= Is_Gr_EXT}');
     Expect(1, 917999, '\p{isgrext}', "");
     Expect(0, 917999, '\p{^isgrext}', "");
     Expect(0, 917999, '\P{isgrext}', "");
@@ -99555,20 +100577,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isgrext}', "");
     Expect(1, 918000, '\P{isgrext}', "");
     Expect(0, 918000, '\P{^isgrext}', "");
-    Expect(1, 917999, '\p{IS_Gr_Ext}', "");
-    Expect(0, 917999, '\p{^IS_Gr_Ext}', "");
-    Expect(0, 917999, '\P{IS_Gr_Ext}', "");
-    Expect(1, 917999, '\P{^IS_Gr_Ext}', "");
-    Expect(0, 918000, '\p{IS_Gr_Ext}', "");
-    Expect(1, 918000, '\p{^IS_Gr_Ext}', "");
-    Expect(1, 918000, '\P{IS_Gr_Ext}', "");
-    Expect(0, 918000, '\P{^IS_Gr_Ext}', "");
+    Expect(1, 917999, '\p{-Is_Gr_Ext}', "");
+    Expect(0, 917999, '\p{^-Is_Gr_Ext}', "");
+    Expect(0, 917999, '\P{-Is_Gr_Ext}', "");
+    Expect(1, 917999, '\P{^-Is_Gr_Ext}', "");
+    Expect(0, 918000, '\p{-Is_Gr_Ext}', "");
+    Expect(1, 918000, '\p{^-Is_Gr_Ext}', "");
+    Expect(1, 918000, '\P{-Is_Gr_Ext}', "");
+    Expect(0, 918000, '\P{^-Is_Gr_Ext}', "");
     Error('\p{Grapheme_Link}');
     Error('\P{Grapheme_Link}');
     Error('\p{Gr_Link}');
     Error('\P{Gr_Link}');
-    Error('\p{-/a/Greek}');
-    Error('\P{-/a/Greek}');
+    Error('\p{-GREEK/a/}');
+    Error('\P{-GREEK/a/}');
     Expect(1, 119365, '\p{greek}', "");
     Expect(0, 119365, '\p{^greek}', "");
     Expect(0, 119365, '\P{greek}', "");
@@ -99577,16 +100599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119366, '\p{^greek}', "");
     Expect(1, 119366, '\P{greek}', "");
     Expect(0, 119366, '\P{^greek}', "");
-    Expect(1, 119365, '\p{_ Greek}', "");
-    Expect(0, 119365, '\p{^_ Greek}', "");
-    Expect(0, 119365, '\P{_ Greek}', "");
-    Expect(1, 119365, '\P{^_ Greek}', "");
-    Expect(0, 119366, '\p{_ Greek}', "");
-    Expect(1, 119366, '\p{^_ Greek}', "");
-    Expect(1, 119366, '\P{_ Greek}', "");
-    Expect(0, 119366, '\P{^_ Greek}', "");
-    Error('\p{/a/-_IS_Greek}');
-    Error('\P{/a/-_IS_Greek}');
+    Expect(1, 119365, '\p{-Greek}', "");
+    Expect(0, 119365, '\p{^-Greek}', "");
+    Expect(0, 119365, '\P{-Greek}', "");
+    Expect(1, 119365, '\P{^-Greek}', "");
+    Expect(0, 119366, '\p{-Greek}', "");
+    Expect(1, 119366, '\p{^-Greek}', "");
+    Expect(1, 119366, '\P{-Greek}', "");
+    Expect(0, 119366, '\P{^-Greek}', "");
+    Error('\p{	_Is_greek:=}');
+    Error('\P{	_Is_greek:=}');
     Expect(1, 119365, '\p{isgreek}', "");
     Expect(0, 119365, '\p{^isgreek}', "");
     Expect(0, 119365, '\P{isgreek}', "");
@@ -99595,16 +100617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119366, '\p{^isgreek}', "");
     Expect(1, 119366, '\P{isgreek}', "");
     Expect(0, 119366, '\P{^isgreek}', "");
-    Expect(1, 119365, '\p{_	Is_Greek}', "");
-    Expect(0, 119365, '\p{^_	Is_Greek}', "");
-    Expect(0, 119365, '\P{_	Is_Greek}', "");
-    Expect(1, 119365, '\P{^_	Is_Greek}', "");
-    Expect(0, 119366, '\p{_	Is_Greek}', "");
-    Expect(1, 119366, '\p{^_	Is_Greek}', "");
-    Expect(1, 119366, '\P{_	Is_Greek}', "");
-    Expect(0, 119366, '\P{^_	Is_Greek}', "");
-    Error('\p{_grek:=}');
-    Error('\P{_grek:=}');
+    Expect(1, 119365, '\p{	IS_Greek}', "");
+    Expect(0, 119365, '\p{^	IS_Greek}', "");
+    Expect(0, 119365, '\P{	IS_Greek}', "");
+    Expect(1, 119365, '\P{^	IS_Greek}', "");
+    Expect(0, 119366, '\p{	IS_Greek}', "");
+    Expect(1, 119366, '\p{^	IS_Greek}', "");
+    Expect(1, 119366, '\P{	IS_Greek}', "");
+    Expect(0, 119366, '\P{^	IS_Greek}', "");
+    Error('\p{_/a/Grek}');
+    Error('\P{_/a/Grek}');
     Expect(1, 119365, '\p{grek}', "");
     Expect(0, 119365, '\p{^grek}', "");
     Expect(0, 119365, '\P{grek}', "");
@@ -99613,16 +100635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119366, '\p{^grek}', "");
     Expect(1, 119366, '\P{grek}', "");
     Expect(0, 119366, '\P{^grek}', "");
-    Expect(1, 119365, '\p{_Grek}', "");
-    Expect(0, 119365, '\p{^_Grek}', "");
-    Expect(0, 119365, '\P{_Grek}', "");
-    Expect(1, 119365, '\P{^_Grek}', "");
-    Expect(0, 119366, '\p{_Grek}', "");
-    Expect(1, 119366, '\p{^_Grek}', "");
-    Expect(1, 119366, '\P{_Grek}', "");
-    Expect(0, 119366, '\P{^_Grek}', "");
-    Error('\p{:=-	is_Grek}');
-    Error('\P{:=-	is_Grek}');
+    Expect(1, 119365, '\p{_	Grek}', "");
+    Expect(0, 119365, '\p{^_	Grek}', "");
+    Expect(0, 119365, '\P{_	Grek}', "");
+    Expect(1, 119365, '\P{^_	Grek}', "");
+    Expect(0, 119366, '\p{_	Grek}', "");
+    Expect(1, 119366, '\p{^_	Grek}', "");
+    Expect(1, 119366, '\P{_	Grek}', "");
+    Expect(0, 119366, '\P{^_	Grek}', "");
+    Error('\p{ 	Is_grek:=}');
+    Error('\P{ 	Is_grek:=}');
     Expect(1, 119365, '\p{isgrek}', "");
     Expect(0, 119365, '\p{^isgrek}', "");
     Expect(0, 119365, '\P{isgrek}', "");
@@ -99631,16 +100653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119366, '\p{^isgrek}', "");
     Expect(1, 119366, '\P{isgrek}', "");
     Expect(0, 119366, '\P{^isgrek}', "");
-    Expect(1, 119365, '\p{-	IS_Grek}', "");
-    Expect(0, 119365, '\p{^-	IS_Grek}', "");
-    Expect(0, 119365, '\P{-	IS_Grek}', "");
-    Expect(1, 119365, '\P{^-	IS_Grek}', "");
-    Expect(0, 119366, '\p{-	IS_Grek}', "");
-    Expect(1, 119366, '\p{^-	IS_Grek}', "");
-    Expect(1, 119366, '\P{-	IS_Grek}', "");
-    Expect(0, 119366, '\P{^-	IS_Grek}', "");
-    Error('\p{/a/ 	GREEK_And_COPTIC}');
-    Error('\P{/a/ 	GREEK_And_COPTIC}');
+    Expect(1, 119365, '\p{	_IS_grek}', "");
+    Expect(0, 119365, '\p{^	_IS_grek}', "");
+    Expect(0, 119365, '\P{	_IS_grek}', "");
+    Expect(1, 119365, '\P{^	_IS_grek}', "");
+    Expect(0, 119366, '\p{	_IS_grek}', "");
+    Expect(1, 119366, '\p{^	_IS_grek}', "");
+    Expect(1, 119366, '\P{	_IS_grek}', "");
+    Expect(0, 119366, '\P{^	_IS_grek}', "");
+    Error('\p{/a/Greek_And_Coptic}');
+    Error('\P{/a/Greek_And_Coptic}');
     Expect(1, 1023, '\p{greekandcoptic}', "");
     Expect(0, 1023, '\p{^greekandcoptic}', "");
     Expect(0, 1023, '\P{greekandcoptic}', "");
@@ -99649,16 +100671,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1024, '\p{^greekandcoptic}', "");
     Expect(1, 1024, '\P{greekandcoptic}', "");
     Expect(0, 1024, '\P{^greekandcoptic}', "");
-    Expect(1, 1023, '\p{	 GREEK_AND_coptic}', "");
-    Expect(0, 1023, '\p{^	 GREEK_AND_coptic}', "");
-    Expect(0, 1023, '\P{	 GREEK_AND_coptic}', "");
-    Expect(1, 1023, '\P{^	 GREEK_AND_coptic}', "");
-    Expect(0, 1024, '\p{	 GREEK_AND_coptic}', "");
-    Expect(1, 1024, '\p{^	 GREEK_AND_coptic}', "");
-    Expect(1, 1024, '\P{	 GREEK_AND_coptic}', "");
-    Expect(0, 1024, '\P{^	 GREEK_AND_coptic}', "");
-    Error('\p{ :=Is_Greek_And_Coptic}');
-    Error('\P{ :=Is_Greek_And_Coptic}');
+    Expect(1, 1023, '\p{-Greek_and_COPTIC}', "");
+    Expect(0, 1023, '\p{^-Greek_and_COPTIC}', "");
+    Expect(0, 1023, '\P{-Greek_and_COPTIC}', "");
+    Expect(1, 1023, '\P{^-Greek_and_COPTIC}', "");
+    Expect(0, 1024, '\p{-Greek_and_COPTIC}', "");
+    Expect(1, 1024, '\p{^-Greek_and_COPTIC}', "");
+    Expect(1, 1024, '\P{-Greek_and_COPTIC}', "");
+    Expect(0, 1024, '\P{^-Greek_and_COPTIC}', "");
+    Error('\p{ /a/IS_GREEK_and_coptic}');
+    Error('\P{ /a/IS_GREEK_and_coptic}');
     Expect(1, 1023, '\p{isgreekandcoptic}', "");
     Expect(0, 1023, '\p{^isgreekandcoptic}', "");
     Expect(0, 1023, '\P{isgreekandcoptic}', "");
@@ -99667,16 +100689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1024, '\p{^isgreekandcoptic}', "");
     Expect(1, 1024, '\P{isgreekandcoptic}', "");
     Expect(0, 1024, '\P{^isgreekandcoptic}', "");
-    Expect(1, 1023, '\p{		Is_greek_And_Coptic}', "");
-    Expect(0, 1023, '\p{^		Is_greek_And_Coptic}', "");
-    Expect(0, 1023, '\P{		Is_greek_And_Coptic}', "");
-    Expect(1, 1023, '\P{^		Is_greek_And_Coptic}', "");
-    Expect(0, 1024, '\p{		Is_greek_And_Coptic}', "");
-    Expect(1, 1024, '\p{^		Is_greek_And_Coptic}', "");
-    Expect(1, 1024, '\P{		Is_greek_And_Coptic}', "");
-    Expect(0, 1024, '\P{^		Is_greek_And_Coptic}', "");
-    Error('\p{--in_GREEK_And_coptic:=}');
-    Error('\P{--in_GREEK_And_coptic:=}');
+    Expect(1, 1023, '\p{is_greek_AND_Coptic}', "");
+    Expect(0, 1023, '\p{^is_greek_AND_Coptic}', "");
+    Expect(0, 1023, '\P{is_greek_AND_Coptic}', "");
+    Expect(1, 1023, '\P{^is_greek_AND_Coptic}', "");
+    Expect(0, 1024, '\p{is_greek_AND_Coptic}', "");
+    Expect(1, 1024, '\p{^is_greek_AND_Coptic}', "");
+    Expect(1, 1024, '\P{is_greek_AND_Coptic}', "");
+    Expect(0, 1024, '\P{^is_greek_AND_Coptic}', "");
+    Error('\p{  In_greek_And_Coptic:=}');
+    Error('\P{  In_greek_And_Coptic:=}');
     Expect(1, 1023, '\p{ingreekandcoptic}', "");
     Expect(0, 1023, '\p{^ingreekandcoptic}', "");
     Expect(0, 1023, '\P{ingreekandcoptic}', "");
@@ -99685,16 +100707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1024, '\p{^ingreekandcoptic}', "");
     Expect(1, 1024, '\P{ingreekandcoptic}', "");
     Expect(0, 1024, '\P{^ingreekandcoptic}', "");
-    Expect(1, 1023, '\p{ in_Greek_And_coptic}', "");
-    Expect(0, 1023, '\p{^ in_Greek_And_coptic}', "");
-    Expect(0, 1023, '\P{ in_Greek_And_coptic}', "");
-    Expect(1, 1023, '\P{^ in_Greek_And_coptic}', "");
-    Expect(0, 1024, '\p{ in_Greek_And_coptic}', "");
-    Expect(1, 1024, '\p{^ in_Greek_And_coptic}', "");
-    Expect(1, 1024, '\P{ in_Greek_And_coptic}', "");
-    Expect(0, 1024, '\P{^ in_Greek_And_coptic}', "");
-    Error('\p{ -IN_Greek/a/}');
-    Error('\P{ -IN_Greek/a/}');
+    Expect(1, 1023, '\p{-In_Greek_And_coptic}', "");
+    Expect(0, 1023, '\p{^-In_Greek_And_coptic}', "");
+    Expect(0, 1023, '\P{-In_Greek_And_coptic}', "");
+    Expect(1, 1023, '\P{^-In_Greek_And_coptic}', "");
+    Expect(0, 1024, '\p{-In_Greek_And_coptic}', "");
+    Expect(1, 1024, '\p{^-In_Greek_And_coptic}', "");
+    Expect(1, 1024, '\P{-In_Greek_And_coptic}', "");
+    Expect(0, 1024, '\P{^-In_Greek_And_coptic}', "");
+    Error('\p{IN_GREEK:=}');
+    Error('\P{IN_GREEK:=}');
     Expect(1, 1023, '\p{ingreek}', "");
     Expect(0, 1023, '\p{^ingreek}', "");
     Expect(0, 1023, '\P{ingreek}', "");
@@ -99703,16 +100725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1024, '\p{^ingreek}', "");
     Expect(1, 1024, '\P{ingreek}', "");
     Expect(0, 1024, '\P{^ingreek}', "");
-    Expect(1, 1023, '\p{ -In_greek}', "");
-    Expect(0, 1023, '\p{^ -In_greek}', "");
-    Expect(0, 1023, '\P{ -In_greek}', "");
-    Expect(1, 1023, '\P{^ -In_greek}', "");
-    Expect(0, 1024, '\p{ -In_greek}', "");
-    Expect(1, 1024, '\p{^ -In_greek}', "");
-    Expect(1, 1024, '\P{ -In_greek}', "");
-    Expect(0, 1024, '\P{^ -In_greek}', "");
-    Error('\p{	_Greek_Extended:=}');
-    Error('\P{	_Greek_Extended:=}');
+    Expect(1, 1023, '\p{  IN_greek}', "");
+    Expect(0, 1023, '\p{^  IN_greek}', "");
+    Expect(0, 1023, '\P{  IN_greek}', "");
+    Expect(1, 1023, '\P{^  IN_greek}', "");
+    Expect(0, 1024, '\p{  IN_greek}', "");
+    Expect(1, 1024, '\p{^  IN_greek}', "");
+    Expect(1, 1024, '\P{  IN_greek}', "");
+    Expect(0, 1024, '\P{^  IN_greek}', "");
+    Error('\p{/a/_ greek_extended}');
+    Error('\P{/a/_ greek_extended}');
     Expect(1, 8191, '\p{greekextended}', "");
     Expect(0, 8191, '\p{^greekextended}', "");
     Expect(0, 8191, '\P{greekextended}', "");
@@ -99721,16 +100743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8192, '\p{^greekextended}', "");
     Expect(1, 8192, '\P{greekextended}', "");
     Expect(0, 8192, '\P{^greekextended}', "");
-    Expect(1, 8191, '\p{_GREEK_Extended}', "");
-    Expect(0, 8191, '\p{^_GREEK_Extended}', "");
-    Expect(0, 8191, '\P{_GREEK_Extended}', "");
-    Expect(1, 8191, '\P{^_GREEK_Extended}', "");
-    Expect(0, 8192, '\p{_GREEK_Extended}', "");
-    Expect(1, 8192, '\p{^_GREEK_Extended}', "");
-    Expect(1, 8192, '\P{_GREEK_Extended}', "");
-    Expect(0, 8192, '\P{^_GREEK_Extended}', "");
-    Error('\p{ /a/Is_Greek_EXTENDED}');
-    Error('\P{ /a/Is_Greek_EXTENDED}');
+    Expect(1, 8191, '\p{Greek_EXTENDED}', "");
+    Expect(0, 8191, '\p{^Greek_EXTENDED}', "");
+    Expect(0, 8191, '\P{Greek_EXTENDED}', "");
+    Expect(1, 8191, '\P{^Greek_EXTENDED}', "");
+    Expect(0, 8192, '\p{Greek_EXTENDED}', "");
+    Expect(1, 8192, '\p{^Greek_EXTENDED}', "");
+    Expect(1, 8192, '\P{Greek_EXTENDED}', "");
+    Expect(0, 8192, '\P{^Greek_EXTENDED}', "");
+    Error('\p{  is_Greek_EXTENDED:=}');
+    Error('\P{  is_Greek_EXTENDED:=}');
     Expect(1, 8191, '\p{isgreekextended}', "");
     Expect(0, 8191, '\p{^isgreekextended}', "");
     Expect(0, 8191, '\P{isgreekextended}', "");
@@ -99739,16 +100761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8192, '\p{^isgreekextended}', "");
     Expect(1, 8192, '\P{isgreekextended}', "");
     Expect(0, 8192, '\P{^isgreekextended}', "");
-    Expect(1, 8191, '\p{-	is_Greek_Extended}', "");
-    Expect(0, 8191, '\p{^-	is_Greek_Extended}', "");
-    Expect(0, 8191, '\P{-	is_Greek_Extended}', "");
-    Expect(1, 8191, '\P{^-	is_Greek_Extended}', "");
-    Expect(0, 8192, '\p{-	is_Greek_Extended}', "");
-    Expect(1, 8192, '\p{^-	is_Greek_Extended}', "");
-    Expect(1, 8192, '\P{-	is_Greek_Extended}', "");
-    Expect(0, 8192, '\P{^-	is_Greek_Extended}', "");
-    Error('\p{/a/	in_Greek_extended}');
-    Error('\P{/a/	in_Greek_extended}');
+    Expect(1, 8191, '\p{ -is_greek_extended}', "");
+    Expect(0, 8191, '\p{^ -is_greek_extended}', "");
+    Expect(0, 8191, '\P{ -is_greek_extended}', "");
+    Expect(1, 8191, '\P{^ -is_greek_extended}', "");
+    Expect(0, 8192, '\p{ -is_greek_extended}', "");
+    Expect(1, 8192, '\p{^ -is_greek_extended}', "");
+    Expect(1, 8192, '\P{ -is_greek_extended}', "");
+    Expect(0, 8192, '\P{^ -is_greek_extended}', "");
+    Error('\p{	IN_Greek_Extended/a/}');
+    Error('\P{	IN_Greek_Extended/a/}');
     Expect(1, 8191, '\p{ingreekextended}', "");
     Expect(0, 8191, '\p{^ingreekextended}', "");
     Expect(0, 8191, '\P{ingreekextended}', "");
@@ -99757,16 +100779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8192, '\p{^ingreekextended}', "");
     Expect(1, 8192, '\P{ingreekextended}', "");
     Expect(0, 8192, '\P{^ingreekextended}', "");
-    Expect(1, 8191, '\p{	-IN_greek_extended}', "");
-    Expect(0, 8191, '\p{^	-IN_greek_extended}', "");
-    Expect(0, 8191, '\P{	-IN_greek_extended}', "");
-    Expect(1, 8191, '\P{^	-IN_greek_extended}', "");
-    Expect(0, 8192, '\p{	-IN_greek_extended}', "");
-    Expect(1, 8192, '\p{^	-IN_greek_extended}', "");
-    Expect(1, 8192, '\P{	-IN_greek_extended}', "");
-    Expect(0, 8192, '\P{^	-IN_greek_extended}', "");
-    Error('\p{:=	 greek_Ext}');
-    Error('\P{:=	 greek_Ext}');
+    Expect(1, 8191, '\p{ _In_greek_Extended}', "");
+    Expect(0, 8191, '\p{^ _In_greek_Extended}', "");
+    Expect(0, 8191, '\P{ _In_greek_Extended}', "");
+    Expect(1, 8191, '\P{^ _In_greek_Extended}', "");
+    Expect(0, 8192, '\p{ _In_greek_Extended}', "");
+    Expect(1, 8192, '\p{^ _In_greek_Extended}', "");
+    Expect(1, 8192, '\P{ _In_greek_Extended}', "");
+    Expect(0, 8192, '\P{^ _In_greek_Extended}', "");
+    Error('\p{:=_Greek_Ext}');
+    Error('\P{:=_Greek_Ext}');
     Expect(1, 8191, '\p{greekext}', "");
     Expect(0, 8191, '\p{^greekext}', "");
     Expect(0, 8191, '\P{greekext}', "");
@@ -99775,16 +100797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8192, '\p{^greekext}', "");
     Expect(1, 8192, '\P{greekext}', "");
     Expect(0, 8192, '\P{^greekext}', "");
-    Expect(1, 8191, '\p{	 Greek_Ext}', "");
-    Expect(0, 8191, '\p{^	 Greek_Ext}', "");
-    Expect(0, 8191, '\P{	 Greek_Ext}', "");
-    Expect(1, 8191, '\P{^	 Greek_Ext}', "");
-    Expect(0, 8192, '\p{	 Greek_Ext}', "");
-    Expect(1, 8192, '\p{^	 Greek_Ext}', "");
-    Expect(1, 8192, '\P{	 Greek_Ext}', "");
-    Expect(0, 8192, '\P{^	 Greek_Ext}', "");
-    Error('\p{:=is_GREEK_Ext}');
-    Error('\P{:=is_GREEK_Ext}');
+    Expect(1, 8191, '\p{ GREEK_Ext}', "");
+    Expect(0, 8191, '\p{^ GREEK_Ext}', "");
+    Expect(0, 8191, '\P{ GREEK_Ext}', "");
+    Expect(1, 8191, '\P{^ GREEK_Ext}', "");
+    Expect(0, 8192, '\p{ GREEK_Ext}', "");
+    Expect(1, 8192, '\p{^ GREEK_Ext}', "");
+    Expect(1, 8192, '\P{ GREEK_Ext}', "");
+    Expect(0, 8192, '\P{^ GREEK_Ext}', "");
+    Error('\p{-is_greek_Ext/a/}');
+    Error('\P{-is_greek_Ext/a/}');
     Expect(1, 8191, '\p{isgreekext}', "");
     Expect(0, 8191, '\p{^isgreekext}', "");
     Expect(0, 8191, '\P{isgreekext}', "");
@@ -99793,16 +100815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8192, '\p{^isgreekext}', "");
     Expect(1, 8192, '\P{isgreekext}', "");
     Expect(0, 8192, '\P{^isgreekext}', "");
-    Expect(1, 8191, '\p{_ Is_greek_Ext}', "");
-    Expect(0, 8191, '\p{^_ Is_greek_Ext}', "");
-    Expect(0, 8191, '\P{_ Is_greek_Ext}', "");
-    Expect(1, 8191, '\P{^_ Is_greek_Ext}', "");
-    Expect(0, 8192, '\p{_ Is_greek_Ext}', "");
-    Expect(1, 8192, '\p{^_ Is_greek_Ext}', "");
-    Expect(1, 8192, '\P{_ Is_greek_Ext}', "");
-    Expect(0, 8192, '\P{^_ Is_greek_Ext}', "");
-    Error('\p{-In_Greek_Ext/a/}');
-    Error('\P{-In_Greek_Ext/a/}');
+    Expect(1, 8191, '\p{_is_Greek_ext}', "");
+    Expect(0, 8191, '\p{^_is_Greek_ext}', "");
+    Expect(0, 8191, '\P{_is_Greek_ext}', "");
+    Expect(1, 8191, '\P{^_is_Greek_ext}', "");
+    Expect(0, 8192, '\p{_is_Greek_ext}', "");
+    Expect(1, 8192, '\p{^_is_Greek_ext}', "");
+    Expect(1, 8192, '\P{_is_Greek_ext}', "");
+    Expect(0, 8192, '\P{^_is_Greek_ext}', "");
+    Error('\p{/a/- In_GREEK_ext}');
+    Error('\P{/a/- In_GREEK_ext}');
     Expect(1, 8191, '\p{ingreekext}', "");
     Expect(0, 8191, '\p{^ingreekext}', "");
     Expect(0, 8191, '\P{ingreekext}', "");
@@ -99811,16 +100833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8192, '\p{^ingreekext}', "");
     Expect(1, 8192, '\P{ingreekext}', "");
     Expect(0, 8192, '\P{^ingreekext}', "");
-    Expect(1, 8191, '\p{- In_GREEK_Ext}', "");
-    Expect(0, 8191, '\p{^- In_GREEK_Ext}', "");
-    Expect(0, 8191, '\P{- In_GREEK_Ext}', "");
-    Expect(1, 8191, '\P{^- In_GREEK_Ext}', "");
-    Expect(0, 8192, '\p{- In_GREEK_Ext}', "");
-    Expect(1, 8192, '\p{^- In_GREEK_Ext}', "");
-    Expect(1, 8192, '\P{- In_GREEK_Ext}', "");
-    Expect(0, 8192, '\P{^- In_GREEK_Ext}', "");
-    Error('\p{-	GUJARATI:=}');
-    Error('\P{-	GUJARATI:=}');
+    Expect(1, 8191, '\p{  In_greek_EXT}', "");
+    Expect(0, 8191, '\p{^  In_greek_EXT}', "");
+    Expect(0, 8191, '\P{  In_greek_EXT}', "");
+    Expect(1, 8191, '\P{^  In_greek_EXT}', "");
+    Expect(0, 8192, '\p{  In_greek_EXT}', "");
+    Expect(1, 8192, '\p{^  In_greek_EXT}', "");
+    Expect(1, 8192, '\P{  In_greek_EXT}', "");
+    Expect(0, 8192, '\P{^  In_greek_EXT}', "");
+    Error('\p{/a/Gujarati}');
+    Error('\P{/a/Gujarati}');
     Expect(1, 43065, '\p{gujarati}', "");
     Expect(0, 43065, '\p{^gujarati}', "");
     Expect(0, 43065, '\P{gujarati}', "");
@@ -99829,16 +100851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^gujarati}', "");
     Expect(1, 43066, '\P{gujarati}', "");
     Expect(0, 43066, '\P{^gujarati}', "");
-    Expect(1, 43065, '\p{-_GUJARATI}', "");
-    Expect(0, 43065, '\p{^-_GUJARATI}', "");
-    Expect(0, 43065, '\P{-_GUJARATI}', "");
-    Expect(1, 43065, '\P{^-_GUJARATI}', "");
-    Expect(0, 43066, '\p{-_GUJARATI}', "");
-    Expect(1, 43066, '\p{^-_GUJARATI}', "");
-    Expect(1, 43066, '\P{-_GUJARATI}', "");
-    Expect(0, 43066, '\P{^-_GUJARATI}', "");
-    Error('\p{	/a/Is_Gujarati}');
-    Error('\P{	/a/Is_Gujarati}');
+    Expect(1, 43065, '\p{	-Gujarati}', "");
+    Expect(0, 43065, '\p{^	-Gujarati}', "");
+    Expect(0, 43065, '\P{	-Gujarati}', "");
+    Expect(1, 43065, '\P{^	-Gujarati}', "");
+    Expect(0, 43066, '\p{	-Gujarati}', "");
+    Expect(1, 43066, '\p{^	-Gujarati}', "");
+    Expect(1, 43066, '\P{	-Gujarati}', "");
+    Expect(0, 43066, '\P{^	-Gujarati}', "");
+    Error('\p{/a/_-Is_GUJARATI}');
+    Error('\P{/a/_-Is_GUJARATI}');
     Expect(1, 43065, '\p{isgujarati}', "");
     Expect(0, 43065, '\p{^isgujarati}', "");
     Expect(0, 43065, '\P{isgujarati}', "");
@@ -99847,16 +100869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^isgujarati}', "");
     Expect(1, 43066, '\P{isgujarati}', "");
     Expect(0, 43066, '\P{^isgujarati}', "");
-    Expect(1, 43065, '\p{-_Is_Gujarati}', "");
-    Expect(0, 43065, '\p{^-_Is_Gujarati}', "");
-    Expect(0, 43065, '\P{-_Is_Gujarati}', "");
-    Expect(1, 43065, '\P{^-_Is_Gujarati}', "");
-    Expect(0, 43066, '\p{-_Is_Gujarati}', "");
-    Expect(1, 43066, '\p{^-_Is_Gujarati}', "");
-    Expect(1, 43066, '\P{-_Is_Gujarati}', "");
-    Expect(0, 43066, '\P{^-_Is_Gujarati}', "");
-    Error('\p{ gujr/a/}');
-    Error('\P{ gujr/a/}');
+    Expect(1, 43065, '\p{	 Is_Gujarati}', "");
+    Expect(0, 43065, '\p{^	 Is_Gujarati}', "");
+    Expect(0, 43065, '\P{	 Is_Gujarati}', "");
+    Expect(1, 43065, '\P{^	 Is_Gujarati}', "");
+    Expect(0, 43066, '\p{	 Is_Gujarati}', "");
+    Expect(1, 43066, '\p{^	 Is_Gujarati}', "");
+    Expect(1, 43066, '\P{	 Is_Gujarati}', "");
+    Expect(0, 43066, '\P{^	 Is_Gujarati}', "");
+    Error('\p{:= GUJR}');
+    Error('\P{:= GUJR}');
     Expect(1, 43065, '\p{gujr}', "");
     Expect(0, 43065, '\p{^gujr}', "");
     Expect(0, 43065, '\P{gujr}', "");
@@ -99865,16 +100887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^gujr}', "");
     Expect(1, 43066, '\P{gujr}', "");
     Expect(0, 43066, '\P{^gujr}', "");
-    Expect(1, 43065, '\p{		Gujr}', "");
-    Expect(0, 43065, '\p{^		Gujr}', "");
-    Expect(0, 43065, '\P{		Gujr}', "");
-    Expect(1, 43065, '\P{^		Gujr}', "");
-    Expect(0, 43066, '\p{		Gujr}', "");
-    Expect(1, 43066, '\p{^		Gujr}', "");
-    Expect(1, 43066, '\P{		Gujr}', "");
-    Expect(0, 43066, '\P{^		Gujr}', "");
-    Error('\p{_/a/is_Gujr}');
-    Error('\P{_/a/is_Gujr}');
+    Expect(1, 43065, '\p{Gujr}', "");
+    Expect(0, 43065, '\p{^Gujr}', "");
+    Expect(0, 43065, '\P{Gujr}', "");
+    Expect(1, 43065, '\P{^Gujr}', "");
+    Expect(0, 43066, '\p{Gujr}', "");
+    Expect(1, 43066, '\p{^Gujr}', "");
+    Expect(1, 43066, '\P{Gujr}', "");
+    Expect(0, 43066, '\P{^Gujr}', "");
+    Error('\p{_-Is_Gujr/a/}');
+    Error('\P{_-Is_Gujr/a/}');
     Expect(1, 43065, '\p{isgujr}', "");
     Expect(0, 43065, '\p{^isgujr}', "");
     Expect(0, 43065, '\P{isgujr}', "");
@@ -99883,16 +100905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^isgujr}', "");
     Expect(1, 43066, '\P{isgujr}', "");
     Expect(0, 43066, '\P{^isgujr}', "");
-    Expect(1, 43065, '\p{ -Is_GUJR}', "");
-    Expect(0, 43065, '\p{^ -Is_GUJR}', "");
-    Expect(0, 43065, '\P{ -Is_GUJR}', "");
-    Expect(1, 43065, '\P{^ -Is_GUJR}', "");
-    Expect(0, 43066, '\p{ -Is_GUJR}', "");
-    Expect(1, 43066, '\p{^ -Is_GUJR}', "");
-    Expect(1, 43066, '\P{ -Is_GUJR}', "");
-    Expect(0, 43066, '\P{^ -Is_GUJR}', "");
-    Error('\p{ :=Gunjala_Gondi}');
-    Error('\P{ :=Gunjala_Gondi}');
+    Expect(1, 43065, '\p{_is_GUJR}', "");
+    Expect(0, 43065, '\p{^_is_GUJR}', "");
+    Expect(0, 43065, '\P{_is_GUJR}', "");
+    Expect(1, 43065, '\P{^_is_GUJR}', "");
+    Expect(0, 43066, '\p{_is_GUJR}', "");
+    Expect(1, 43066, '\p{^_is_GUJR}', "");
+    Expect(1, 43066, '\P{_is_GUJR}', "");
+    Expect(0, 43066, '\P{^_is_GUJR}', "");
+    Error('\p{/a/ Gunjala_Gondi}');
+    Error('\P{/a/ Gunjala_Gondi}');
     Expect(1, 73129, '\p{gunjalagondi}', "");
     Expect(0, 73129, '\p{^gunjalagondi}', "");
     Expect(0, 73129, '\P{gunjalagondi}', "");
@@ -99901,16 +100923,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73130, '\p{^gunjalagondi}', "");
     Expect(1, 73130, '\P{gunjalagondi}', "");
     Expect(0, 73130, '\P{^gunjalagondi}', "");
-    Expect(1, 73129, '\p{ _Gunjala_gondi}', "");
-    Expect(0, 73129, '\p{^ _Gunjala_gondi}', "");
-    Expect(0, 73129, '\P{ _Gunjala_gondi}', "");
-    Expect(1, 73129, '\P{^ _Gunjala_gondi}', "");
-    Expect(0, 73130, '\p{ _Gunjala_gondi}', "");
-    Expect(1, 73130, '\p{^ _Gunjala_gondi}', "");
-    Expect(1, 73130, '\P{ _Gunjala_gondi}', "");
-    Expect(0, 73130, '\P{^ _Gunjala_gondi}', "");
-    Error('\p{:=-_is_GUNJALA_GONDI}');
-    Error('\P{:=-_is_GUNJALA_GONDI}');
+    Expect(1, 73129, '\p{ gunjala_GONDI}', "");
+    Expect(0, 73129, '\p{^ gunjala_GONDI}', "");
+    Expect(0, 73129, '\P{ gunjala_GONDI}', "");
+    Expect(1, 73129, '\P{^ gunjala_GONDI}', "");
+    Expect(0, 73130, '\p{ gunjala_GONDI}', "");
+    Expect(1, 73130, '\p{^ gunjala_GONDI}', "");
+    Expect(1, 73130, '\P{ gunjala_GONDI}', "");
+    Expect(0, 73130, '\P{^ gunjala_GONDI}', "");
+    Error('\p{/a/__IS_gunjala_gondi}');
+    Error('\P{/a/__IS_gunjala_gondi}');
     Expect(1, 73129, '\p{isgunjalagondi}', "");
     Expect(0, 73129, '\p{^isgunjalagondi}', "");
     Expect(0, 73129, '\P{isgunjalagondi}', "");
@@ -99919,16 +100941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73130, '\p{^isgunjalagondi}', "");
     Expect(1, 73130, '\P{isgunjalagondi}', "");
     Expect(0, 73130, '\P{^isgunjalagondi}', "");
-    Expect(1, 73129, '\p{_-is_GUNJALA_GONDI}', "");
-    Expect(0, 73129, '\p{^_-is_GUNJALA_GONDI}', "");
-    Expect(0, 73129, '\P{_-is_GUNJALA_GONDI}', "");
-    Expect(1, 73129, '\P{^_-is_GUNJALA_GONDI}', "");
-    Expect(0, 73130, '\p{_-is_GUNJALA_GONDI}', "");
-    Expect(1, 73130, '\p{^_-is_GUNJALA_GONDI}', "");
-    Expect(1, 73130, '\P{_-is_GUNJALA_GONDI}', "");
-    Expect(0, 73130, '\P{^_-is_GUNJALA_GONDI}', "");
-    Error('\p{_-GONG:=}');
-    Error('\P{_-GONG:=}');
+    Expect(1, 73129, '\p{	-Is_GUNJALA_GONDI}', "");
+    Expect(0, 73129, '\p{^	-Is_GUNJALA_GONDI}', "");
+    Expect(0, 73129, '\P{	-Is_GUNJALA_GONDI}', "");
+    Expect(1, 73129, '\P{^	-Is_GUNJALA_GONDI}', "");
+    Expect(0, 73130, '\p{	-Is_GUNJALA_GONDI}', "");
+    Expect(1, 73130, '\p{^	-Is_GUNJALA_GONDI}', "");
+    Expect(1, 73130, '\P{	-Is_GUNJALA_GONDI}', "");
+    Expect(0, 73130, '\P{^	-Is_GUNJALA_GONDI}', "");
+    Error('\p{-/a/Gong}');
+    Error('\P{-/a/Gong}');
     Expect(1, 73129, '\p{gong}', "");
     Expect(0, 73129, '\p{^gong}', "");
     Expect(0, 73129, '\P{gong}', "");
@@ -99937,16 +100959,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73130, '\p{^gong}', "");
     Expect(1, 73130, '\P{gong}', "");
     Expect(0, 73130, '\P{^gong}', "");
-    Expect(1, 73129, '\p{_ GONG}', "");
-    Expect(0, 73129, '\p{^_ GONG}', "");
-    Expect(0, 73129, '\P{_ GONG}', "");
-    Expect(1, 73129, '\P{^_ GONG}', "");
-    Expect(0, 73130, '\p{_ GONG}', "");
-    Expect(1, 73130, '\p{^_ GONG}', "");
-    Expect(1, 73130, '\P{_ GONG}', "");
-    Expect(0, 73130, '\P{^_ GONG}', "");
-    Error('\p{_:=is_Gong}');
-    Error('\P{_:=is_Gong}');
+    Error('\p{:=  is_GONG}');
+    Error('\P{:=  is_GONG}');
     Expect(1, 73129, '\p{isgong}', "");
     Expect(0, 73129, '\p{^isgong}', "");
     Expect(0, 73129, '\P{isgong}', "");
@@ -99955,16 +100969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73130, '\p{^isgong}', "");
     Expect(1, 73130, '\P{isgong}', "");
     Expect(0, 73130, '\P{^isgong}', "");
-    Expect(1, 73129, '\p{ IS_Gong}', "");
-    Expect(0, 73129, '\p{^ IS_Gong}', "");
-    Expect(0, 73129, '\P{ IS_Gong}', "");
-    Expect(1, 73129, '\P{^ IS_Gong}', "");
-    Expect(0, 73130, '\p{ IS_Gong}', "");
-    Expect(1, 73130, '\p{^ IS_Gong}', "");
-    Expect(1, 73130, '\P{ IS_Gong}', "");
-    Expect(0, 73130, '\P{^ IS_Gong}', "");
-    Error('\p{GURMUKHI:=}');
-    Error('\P{GURMUKHI:=}');
+    Expect(1, 73129, '\p{--IS_Gong}', "");
+    Expect(0, 73129, '\p{^--IS_Gong}', "");
+    Expect(0, 73129, '\P{--IS_Gong}', "");
+    Expect(1, 73129, '\P{^--IS_Gong}', "");
+    Expect(0, 73130, '\p{--IS_Gong}', "");
+    Expect(1, 73130, '\p{^--IS_Gong}', "");
+    Expect(1, 73130, '\P{--IS_Gong}', "");
+    Expect(0, 73130, '\P{^--IS_Gong}', "");
+    Error('\p{		gurmukhi:=}');
+    Error('\P{		gurmukhi:=}');
     Expect(1, 43065, '\p{gurmukhi}', "");
     Expect(0, 43065, '\p{^gurmukhi}', "");
     Expect(0, 43065, '\P{gurmukhi}', "");
@@ -99973,16 +100987,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^gurmukhi}', "");
     Expect(1, 43066, '\P{gurmukhi}', "");
     Expect(0, 43066, '\P{^gurmukhi}', "");
-    Expect(1, 43065, '\p{_ GURMUKHI}', "");
-    Expect(0, 43065, '\p{^_ GURMUKHI}', "");
-    Expect(0, 43065, '\P{_ GURMUKHI}', "");
-    Expect(1, 43065, '\P{^_ GURMUKHI}', "");
-    Expect(0, 43066, '\p{_ GURMUKHI}', "");
-    Expect(1, 43066, '\p{^_ GURMUKHI}', "");
-    Expect(1, 43066, '\P{_ GURMUKHI}', "");
-    Expect(0, 43066, '\P{^_ GURMUKHI}', "");
-    Error('\p{-Is_Gurmukhi/a/}');
-    Error('\P{-Is_Gurmukhi/a/}');
+    Expect(1, 43065, '\p{_GURMUKHI}', "");
+    Expect(0, 43065, '\p{^_GURMUKHI}', "");
+    Expect(0, 43065, '\P{_GURMUKHI}', "");
+    Expect(1, 43065, '\P{^_GURMUKHI}', "");
+    Expect(0, 43066, '\p{_GURMUKHI}', "");
+    Expect(1, 43066, '\p{^_GURMUKHI}', "");
+    Expect(1, 43066, '\P{_GURMUKHI}', "");
+    Expect(0, 43066, '\P{^_GURMUKHI}', "");
+    Error('\p{/a/Is_Gurmukhi}');
+    Error('\P{/a/Is_Gurmukhi}');
     Expect(1, 43065, '\p{isgurmukhi}', "");
     Expect(0, 43065, '\p{^isgurmukhi}', "");
     Expect(0, 43065, '\P{isgurmukhi}', "");
@@ -99991,16 +101005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^isgurmukhi}', "");
     Expect(1, 43066, '\P{isgurmukhi}', "");
     Expect(0, 43066, '\P{^isgurmukhi}', "");
-    Expect(1, 43065, '\p{__IS_gurmukhi}', "");
-    Expect(0, 43065, '\p{^__IS_gurmukhi}', "");
-    Expect(0, 43065, '\P{__IS_gurmukhi}', "");
-    Expect(1, 43065, '\P{^__IS_gurmukhi}', "");
-    Expect(0, 43066, '\p{__IS_gurmukhi}', "");
-    Expect(1, 43066, '\p{^__IS_gurmukhi}', "");
-    Expect(1, 43066, '\P{__IS_gurmukhi}', "");
-    Expect(0, 43066, '\P{^__IS_gurmukhi}', "");
-    Error('\p{:=guru}');
-    Error('\P{:=guru}');
+    Expect(1, 43065, '\p{_Is_gurmukhi}', "");
+    Expect(0, 43065, '\p{^_Is_gurmukhi}', "");
+    Expect(0, 43065, '\P{_Is_gurmukhi}', "");
+    Expect(1, 43065, '\P{^_Is_gurmukhi}', "");
+    Expect(0, 43066, '\p{_Is_gurmukhi}', "");
+    Expect(1, 43066, '\p{^_Is_gurmukhi}', "");
+    Expect(1, 43066, '\P{_Is_gurmukhi}', "");
+    Expect(0, 43066, '\P{^_Is_gurmukhi}', "");
+    Error('\p{_ Guru:=}');
+    Error('\P{_ Guru:=}');
     Expect(1, 43065, '\p{guru}', "");
     Expect(0, 43065, '\p{^guru}', "");
     Expect(0, 43065, '\P{guru}', "");
@@ -100009,16 +101023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^guru}', "");
     Expect(1, 43066, '\P{guru}', "");
     Expect(0, 43066, '\P{^guru}', "");
-    Expect(1, 43065, '\p{- GURU}', "");
-    Expect(0, 43065, '\p{^- GURU}', "");
-    Expect(0, 43065, '\P{- GURU}', "");
-    Expect(1, 43065, '\P{^- GURU}', "");
-    Expect(0, 43066, '\p{- GURU}', "");
-    Expect(1, 43066, '\p{^- GURU}', "");
-    Expect(1, 43066, '\P{- GURU}', "");
-    Expect(0, 43066, '\P{^- GURU}', "");
-    Error('\p{_-IS_Guru/a/}');
-    Error('\P{_-IS_Guru/a/}');
+    Expect(1, 43065, '\p{_Guru}', "");
+    Expect(0, 43065, '\p{^_Guru}', "");
+    Expect(0, 43065, '\P{_Guru}', "");
+    Expect(1, 43065, '\P{^_Guru}', "");
+    Expect(0, 43066, '\p{_Guru}', "");
+    Expect(1, 43066, '\p{^_Guru}', "");
+    Expect(1, 43066, '\P{_Guru}', "");
+    Expect(0, 43066, '\P{^_Guru}', "");
+    Error('\p{/a/ is_guru}');
+    Error('\P{/a/ is_guru}');
     Expect(1, 43065, '\p{isguru}', "");
     Expect(0, 43065, '\p{^isguru}', "");
     Expect(0, 43065, '\P{isguru}', "");
@@ -100027,16 +101041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43066, '\p{^isguru}', "");
     Expect(1, 43066, '\P{isguru}', "");
     Expect(0, 43066, '\P{^isguru}', "");
-    Expect(1, 43065, '\p{	_Is_GURU}', "");
-    Expect(0, 43065, '\p{^	_Is_GURU}', "");
-    Expect(0, 43065, '\P{	_Is_GURU}', "");
-    Expect(1, 43065, '\P{^	_Is_GURU}', "");
-    Expect(0, 43066, '\p{	_Is_GURU}', "");
-    Expect(1, 43066, '\p{^	_Is_GURU}', "");
-    Expect(1, 43066, '\P{	_Is_GURU}', "");
-    Expect(0, 43066, '\P{^	_Is_GURU}', "");
-    Error('\p{:=_ Halfwidth_And_Fullwidth_FORMS}');
-    Error('\P{:=_ Halfwidth_And_Fullwidth_FORMS}');
+    Expect(1, 43065, '\p{- is_guru}', "");
+    Expect(0, 43065, '\p{^- is_guru}', "");
+    Expect(0, 43065, '\P{- is_guru}', "");
+    Expect(1, 43065, '\P{^- is_guru}', "");
+    Expect(0, 43066, '\p{- is_guru}', "");
+    Expect(1, 43066, '\p{^- is_guru}', "");
+    Expect(1, 43066, '\P{- is_guru}', "");
+    Expect(0, 43066, '\P{^- is_guru}', "");
+    Error('\p{:=-_HALFWIDTH_And_fullwidth_FORMS}');
+    Error('\P{:=-_HALFWIDTH_And_fullwidth_FORMS}');
     Expect(1, 65519, '\p{halfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\p{^halfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\P{halfwidthandfullwidthforms}', "");
@@ -100045,16 +101059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65520, '\p{^halfwidthandfullwidthforms}', "");
     Expect(1, 65520, '\P{halfwidthandfullwidthforms}', "");
     Expect(0, 65520, '\P{^halfwidthandfullwidthforms}', "");
-    Expect(1, 65519, '\p{_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(0, 65519, '\p{^_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(0, 65519, '\P{_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(1, 65519, '\P{^_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(0, 65520, '\p{_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(1, 65520, '\p{^_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(1, 65520, '\P{_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Expect(0, 65520, '\P{^_-HALFWIDTH_and_Fullwidth_forms}', "");
-    Error('\p{_:=Is_Halfwidth_AND_Fullwidth_FORMS}');
-    Error('\P{_:=Is_Halfwidth_AND_Fullwidth_FORMS}');
+    Expect(1, 65519, '\p{ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(0, 65519, '\p{^ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(0, 65519, '\P{ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(1, 65519, '\P{^ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(0, 65520, '\p{ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(1, 65520, '\p{^ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(1, 65520, '\P{ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Expect(0, 65520, '\P{^ -Halfwidth_and_Fullwidth_FORMS}', "");
+    Error('\p{ is_HALFWIDTH_and_Fullwidth_forms/a/}');
+    Error('\P{ is_HALFWIDTH_and_Fullwidth_forms/a/}');
     Expect(1, 65519, '\p{ishalfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\p{^ishalfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\P{ishalfwidthandfullwidthforms}', "");
@@ -100063,16 +101077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65520, '\p{^ishalfwidthandfullwidthforms}', "");
     Expect(1, 65520, '\P{ishalfwidthandfullwidthforms}', "");
     Expect(0, 65520, '\P{^ishalfwidthandfullwidthforms}', "");
-    Expect(1, 65519, '\p{ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65519, '\p{^ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65519, '\P{ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(1, 65519, '\P{^ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65520, '\p{ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(1, 65520, '\p{^ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(1, 65520, '\P{ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65520, '\P{^ 	IS_HALFWIDTH_AND_FULLWIDTH_FORMS}', "");
-    Error('\p{/a/ In_Halfwidth_And_fullwidth_Forms}');
-    Error('\P{/a/ In_Halfwidth_And_fullwidth_Forms}');
+    Expect(1, 65519, '\p{_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(0, 65519, '\p{^_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(0, 65519, '\P{_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(1, 65519, '\P{^_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(0, 65520, '\p{_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(1, 65520, '\p{^_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(1, 65520, '\P{_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Expect(0, 65520, '\P{^_Is_Halfwidth_AND_FULLWIDTH_Forms}', "");
+    Error('\p{:=_In_Halfwidth_AND_fullwidth_Forms}');
+    Error('\P{:=_In_Halfwidth_AND_fullwidth_Forms}');
     Expect(1, 65519, '\p{inhalfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\p{^inhalfwidthandfullwidthforms}', "");
     Expect(0, 65519, '\P{inhalfwidthandfullwidthforms}', "");
@@ -100081,16 +101095,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65520, '\p{^inhalfwidthandfullwidthforms}', "");
     Expect(1, 65520, '\P{inhalfwidthandfullwidthforms}', "");
     Expect(0, 65520, '\P{^inhalfwidthandfullwidthforms}', "");
-    Expect(1, 65519, '\p{		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65519, '\p{^		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65519, '\P{		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(1, 65519, '\P{^		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65520, '\p{		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(1, 65520, '\p{^		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(1, 65520, '\P{		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Expect(0, 65520, '\P{^		IN_Halfwidth_AND_FULLWIDTH_FORMS}', "");
-    Error('\p{-_half_And_Full_Forms:=}');
-    Error('\P{-_half_And_Full_Forms:=}');
+    Expect(1, 65519, '\p{		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(0, 65519, '\p{^		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(0, 65519, '\P{		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(1, 65519, '\P{^		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(0, 65520, '\p{		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(1, 65520, '\p{^		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(1, 65520, '\P{		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Expect(0, 65520, '\P{^		In_halfwidth_AND_Fullwidth_FORMS}', "");
+    Error('\p{/a/-	half_AND_FULL_FORMS}');
+    Error('\P{/a/-	half_AND_FULL_FORMS}');
     Expect(1, 65519, '\p{halfandfullforms}', "");
     Expect(0, 65519, '\p{^halfandfullforms}', "");
     Expect(0, 65519, '\P{halfandfullforms}', "");
@@ -100099,16 +101113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65520, '\p{^halfandfullforms}', "");
     Expect(1, 65520, '\P{halfandfullforms}', "");
     Expect(0, 65520, '\P{^halfandfullforms}', "");
-    Expect(1, 65519, '\p{_Half_AND_FULL_Forms}', "");
-    Expect(0, 65519, '\p{^_Half_AND_FULL_Forms}', "");
-    Expect(0, 65519, '\P{_Half_AND_FULL_Forms}', "");
-    Expect(1, 65519, '\P{^_Half_AND_FULL_Forms}', "");
-    Expect(0, 65520, '\p{_Half_AND_FULL_Forms}', "");
-    Expect(1, 65520, '\p{^_Half_AND_FULL_Forms}', "");
-    Expect(1, 65520, '\P{_Half_AND_FULL_Forms}', "");
-    Expect(0, 65520, '\P{^_Half_AND_FULL_Forms}', "");
-    Error('\p{:= -is_half_And_FULL_Forms}');
-    Error('\P{:= -is_half_And_FULL_Forms}');
+    Expect(1, 65519, '\p{_ HALF_AND_Full_Forms}', "");
+    Expect(0, 65519, '\p{^_ HALF_AND_Full_Forms}', "");
+    Expect(0, 65519, '\P{_ HALF_AND_Full_Forms}', "");
+    Expect(1, 65519, '\P{^_ HALF_AND_Full_Forms}', "");
+    Expect(0, 65520, '\p{_ HALF_AND_Full_Forms}', "");
+    Expect(1, 65520, '\p{^_ HALF_AND_Full_Forms}', "");
+    Expect(1, 65520, '\P{_ HALF_AND_Full_Forms}', "");
+    Expect(0, 65520, '\P{^_ HALF_AND_Full_Forms}', "");
+    Error('\p{__Is_HALF_And_FULL_forms:=}');
+    Error('\P{__Is_HALF_And_FULL_forms:=}');
     Expect(1, 65519, '\p{ishalfandfullforms}', "");
     Expect(0, 65519, '\p{^ishalfandfullforms}', "");
     Expect(0, 65519, '\P{ishalfandfullforms}', "");
@@ -100117,16 +101131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65520, '\p{^ishalfandfullforms}', "");
     Expect(1, 65520, '\P{ishalfandfullforms}', "");
     Expect(0, 65520, '\P{^ishalfandfullforms}', "");
-    Expect(1, 65519, '\p{		is_HALF_and_Full_Forms}', "");
-    Expect(0, 65519, '\p{^		is_HALF_and_Full_Forms}', "");
-    Expect(0, 65519, '\P{		is_HALF_and_Full_Forms}', "");
-    Expect(1, 65519, '\P{^		is_HALF_and_Full_Forms}', "");
-    Expect(0, 65520, '\p{		is_HALF_and_Full_Forms}', "");
-    Expect(1, 65520, '\p{^		is_HALF_and_Full_Forms}', "");
-    Expect(1, 65520, '\P{		is_HALF_and_Full_Forms}', "");
-    Expect(0, 65520, '\P{^		is_HALF_and_Full_Forms}', "");
-    Error('\p{/a/In_half_and_Full_FORMS}');
-    Error('\P{/a/In_half_and_Full_FORMS}');
+    Expect(1, 65519, '\p{- IS_Half_And_Full_Forms}', "");
+    Expect(0, 65519, '\p{^- IS_Half_And_Full_Forms}', "");
+    Expect(0, 65519, '\P{- IS_Half_And_Full_Forms}', "");
+    Expect(1, 65519, '\P{^- IS_Half_And_Full_Forms}', "");
+    Expect(0, 65520, '\p{- IS_Half_And_Full_Forms}', "");
+    Expect(1, 65520, '\p{^- IS_Half_And_Full_Forms}', "");
+    Expect(1, 65520, '\P{- IS_Half_And_Full_Forms}', "");
+    Expect(0, 65520, '\P{^- IS_Half_And_Full_Forms}', "");
+    Error('\p{-in_half_and_Full_Forms/a/}');
+    Error('\P{-in_half_and_Full_Forms/a/}');
     Expect(1, 65519, '\p{inhalfandfullforms}', "");
     Expect(0, 65519, '\p{^inhalfandfullforms}', "");
     Expect(0, 65519, '\P{inhalfandfullforms}', "");
@@ -100135,88 +101149,80 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65520, '\p{^inhalfandfullforms}', "");
     Expect(1, 65520, '\P{inhalfandfullforms}', "");
     Expect(0, 65520, '\P{^inhalfandfullforms}', "");
-    Expect(1, 65519, '\p{	In_half_AND_full_Forms}', "");
-    Expect(0, 65519, '\p{^	In_half_AND_full_Forms}', "");
-    Expect(0, 65519, '\P{	In_half_AND_full_Forms}', "");
-    Expect(1, 65519, '\P{^	In_half_AND_full_Forms}', "");
-    Expect(0, 65520, '\p{	In_half_AND_full_Forms}', "");
-    Expect(1, 65520, '\p{^	In_half_AND_full_Forms}', "");
-    Expect(1, 65520, '\P{	In_half_AND_full_Forms}', "");
-    Expect(0, 65520, '\P{^	In_half_AND_full_Forms}', "");
-    Error('\p{_-Han:=}');
-    Error('\P{_-Han:=}');
-    Expect(1, 201546, '\p{han}', "");
-    Expect(0, 201546, '\p{^han}', "");
-    Expect(0, 201546, '\P{han}', "");
-    Expect(1, 201546, '\P{^han}', "");
-    Expect(0, 201547, '\p{han}', "");
-    Expect(1, 201547, '\p{^han}', "");
-    Expect(1, 201547, '\P{han}', "");
-    Expect(0, 201547, '\P{^han}', "");
-    Expect(1, 201546, '\p{ Han}', "");
-    Expect(0, 201546, '\p{^ Han}', "");
-    Expect(0, 201546, '\P{ Han}', "");
-    Expect(1, 201546, '\P{^ Han}', "");
-    Expect(0, 201547, '\p{ Han}', "");
-    Expect(1, 201547, '\p{^ Han}', "");
-    Expect(1, 201547, '\P{ Han}', "");
-    Expect(0, 201547, '\P{^ Han}', "");
-    Error('\p{  Is_han/a/}');
-    Error('\P{  Is_han/a/}');
-    Expect(1, 201546, '\p{ishan}', "");
-    Expect(0, 201546, '\p{^ishan}', "");
-    Expect(0, 201546, '\P{ishan}', "");
-    Expect(1, 201546, '\P{^ishan}', "");
-    Expect(0, 201547, '\p{ishan}', "");
-    Expect(1, 201547, '\p{^ishan}', "");
-    Expect(1, 201547, '\P{ishan}', "");
-    Expect(0, 201547, '\P{^ishan}', "");
-    Expect(1, 201546, '\p{ IS_HAN}', "");
-    Expect(0, 201546, '\p{^ IS_HAN}', "");
-    Expect(0, 201546, '\P{ IS_HAN}', "");
-    Expect(1, 201546, '\P{^ IS_HAN}', "");
-    Expect(0, 201547, '\p{ IS_HAN}', "");
-    Expect(1, 201547, '\p{^ IS_HAN}', "");
-    Expect(1, 201547, '\P{ IS_HAN}', "");
-    Expect(0, 201547, '\P{^ IS_HAN}', "");
-    Error('\p{ :=Hani}');
-    Error('\P{ :=Hani}');
-    Expect(1, 201546, '\p{hani}', "");
-    Expect(0, 201546, '\p{^hani}', "");
-    Expect(0, 201546, '\P{hani}', "");
-    Expect(1, 201546, '\P{^hani}', "");
-    Expect(0, 201547, '\p{hani}', "");
-    Expect(1, 201547, '\p{^hani}', "");
-    Expect(1, 201547, '\P{hani}', "");
-    Expect(0, 201547, '\P{^hani}', "");
-    Expect(1, 201546, '\p{ -Hani}', "");
-    Expect(0, 201546, '\p{^ -Hani}', "");
-    Expect(0, 201546, '\P{ -Hani}', "");
-    Expect(1, 201546, '\P{^ -Hani}', "");
-    Expect(0, 201547, '\p{ -Hani}', "");
-    Expect(1, 201547, '\p{^ -Hani}', "");
-    Expect(1, 201547, '\P{ -Hani}', "");
-    Expect(0, 201547, '\P{^ -Hani}', "");
-    Error('\p{:=__Is_HANI}');
-    Error('\P{:=__Is_HANI}');
-    Expect(1, 201546, '\p{ishani}', "");
-    Expect(0, 201546, '\p{^ishani}', "");
-    Expect(0, 201546, '\P{ishani}', "");
-    Expect(1, 201546, '\P{^ishani}', "");
-    Expect(0, 201547, '\p{ishani}', "");
-    Expect(1, 201547, '\p{^ishani}', "");
-    Expect(1, 201547, '\P{ishani}', "");
-    Expect(0, 201547, '\P{^ishani}', "");
-    Expect(1, 201546, '\p{	 IS_Hani}', "");
-    Expect(0, 201546, '\p{^	 IS_Hani}', "");
-    Expect(0, 201546, '\P{	 IS_Hani}', "");
-    Expect(1, 201546, '\P{^	 IS_Hani}', "");
-    Expect(0, 201547, '\p{	 IS_Hani}', "");
-    Expect(1, 201547, '\p{^	 IS_Hani}', "");
-    Expect(1, 201547, '\P{	 IS_Hani}', "");
-    Expect(0, 201547, '\P{^	 IS_Hani}', "");
-    Error('\p{/a/_-HANGUL}');
-    Error('\P{/a/_-HANGUL}');
+    Expect(1, 65519, '\p{	-In_HALF_And_Full_forms}', "");
+    Expect(0, 65519, '\p{^	-In_HALF_And_Full_forms}', "");
+    Expect(0, 65519, '\P{	-In_HALF_And_Full_forms}', "");
+    Expect(1, 65519, '\P{^	-In_HALF_And_Full_forms}', "");
+    Expect(0, 65520, '\p{	-In_HALF_And_Full_forms}', "");
+    Expect(1, 65520, '\p{^	-In_HALF_And_Full_forms}', "");
+    Expect(1, 65520, '\P{	-In_HALF_And_Full_forms}', "");
+    Expect(0, 65520, '\P{^	-In_HALF_And_Full_forms}', "");
+    Error('\p{-:=HAN}');
+    Error('\P{-:=HAN}');
+    Expect(1, 205743, '\p{han}', "");
+    Expect(0, 205743, '\p{^han}', "");
+    Expect(0, 205743, '\P{han}', "");
+    Expect(1, 205743, '\P{^han}', "");
+    Expect(0, 205744, '\p{han}', "");
+    Expect(1, 205744, '\p{^han}', "");
+    Expect(1, 205744, '\P{han}', "");
+    Expect(0, 205744, '\P{^han}', "");
+    Expect(1, 205743, '\p{ han}', "");
+    Expect(0, 205743, '\p{^ han}', "");
+    Expect(0, 205743, '\P{ han}', "");
+    Expect(1, 205743, '\P{^ han}', "");
+    Expect(0, 205744, '\p{ han}', "");
+    Expect(1, 205744, '\p{^ han}', "");
+    Expect(1, 205744, '\P{ han}', "");
+    Expect(0, 205744, '\P{^ han}', "");
+    Error('\p{-_Is_han/a/}');
+    Error('\P{-_Is_han/a/}');
+    Expect(1, 205743, '\p{ishan}', "");
+    Expect(0, 205743, '\p{^ishan}', "");
+    Expect(0, 205743, '\P{ishan}', "");
+    Expect(1, 205743, '\P{^ishan}', "");
+    Expect(0, 205744, '\p{ishan}', "");
+    Expect(1, 205744, '\p{^ishan}', "");
+    Expect(1, 205744, '\P{ishan}', "");
+    Expect(0, 205744, '\P{^ishan}', "");
+    Expect(1, 205743, '\p{ _Is_han}', "");
+    Expect(0, 205743, '\p{^ _Is_han}', "");
+    Expect(0, 205743, '\P{ _Is_han}', "");
+    Expect(1, 205743, '\P{^ _Is_han}', "");
+    Expect(0, 205744, '\p{ _Is_han}', "");
+    Expect(1, 205744, '\p{^ _Is_han}', "");
+    Expect(1, 205744, '\P{ _Is_han}', "");
+    Expect(0, 205744, '\P{^ _Is_han}', "");
+    Error('\p{	:=hani}');
+    Error('\P{	:=hani}');
+    Expect(1, 205743, '\p{hani}', "");
+    Expect(0, 205743, '\p{^hani}', "");
+    Expect(0, 205743, '\P{hani}', "");
+    Expect(1, 205743, '\P{^hani}', "");
+    Expect(0, 205744, '\p{hani}', "");
+    Expect(1, 205744, '\p{^hani}', "");
+    Expect(1, 205744, '\P{hani}', "");
+    Expect(0, 205744, '\P{^hani}', "");
+    Error('\p{		is_Hani/a/}');
+    Error('\P{		is_Hani/a/}');
+    Expect(1, 205743, '\p{ishani}', "");
+    Expect(0, 205743, '\p{^ishani}', "");
+    Expect(0, 205743, '\P{ishani}', "");
+    Expect(1, 205743, '\P{^ishani}', "");
+    Expect(0, 205744, '\p{ishani}', "");
+    Expect(1, 205744, '\p{^ishani}', "");
+    Expect(1, 205744, '\P{ishani}', "");
+    Expect(0, 205744, '\P{^ishani}', "");
+    Expect(1, 205743, '\p{--is_hani}', "");
+    Expect(0, 205743, '\p{^--is_hani}', "");
+    Expect(0, 205743, '\P{--is_hani}', "");
+    Expect(1, 205743, '\P{^--is_hani}', "");
+    Expect(0, 205744, '\p{--is_hani}', "");
+    Expect(1, 205744, '\p{^--is_hani}', "");
+    Expect(1, 205744, '\P{--is_hani}', "");
+    Expect(0, 205744, '\P{^--is_hani}', "");
+    Error('\p{	-Hangul:=}');
+    Error('\P{	-Hangul:=}');
     Expect(1, 65500, '\p{hangul}', "");
     Expect(0, 65500, '\p{^hangul}', "");
     Expect(0, 65500, '\P{hangul}', "");
@@ -100225,16 +101231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65501, '\p{^hangul}', "");
     Expect(1, 65501, '\P{hangul}', "");
     Expect(0, 65501, '\P{^hangul}', "");
-    Expect(1, 65500, '\p{-HANGUL}', "");
-    Expect(0, 65500, '\p{^-HANGUL}', "");
-    Expect(0, 65500, '\P{-HANGUL}', "");
-    Expect(1, 65500, '\P{^-HANGUL}', "");
-    Expect(0, 65501, '\p{-HANGUL}', "");
-    Expect(1, 65501, '\p{^-HANGUL}', "");
-    Expect(1, 65501, '\P{-HANGUL}', "");
-    Expect(0, 65501, '\P{^-HANGUL}', "");
-    Error('\p{-/a/Is_HANGUL}');
-    Error('\P{-/a/Is_HANGUL}');
+    Expect(1, 65500, '\p{		Hangul}', "");
+    Expect(0, 65500, '\p{^		Hangul}', "");
+    Expect(0, 65500, '\P{		Hangul}', "");
+    Expect(1, 65500, '\P{^		Hangul}', "");
+    Expect(0, 65501, '\p{		Hangul}', "");
+    Expect(1, 65501, '\p{^		Hangul}', "");
+    Expect(1, 65501, '\P{		Hangul}', "");
+    Expect(0, 65501, '\P{^		Hangul}', "");
+    Error('\p{	:=Is_HANGUL}');
+    Error('\P{	:=Is_HANGUL}');
     Expect(1, 65500, '\p{ishangul}', "");
     Expect(0, 65500, '\p{^ishangul}', "");
     Expect(0, 65500, '\P{ishangul}', "");
@@ -100243,16 +101249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65501, '\p{^ishangul}', "");
     Expect(1, 65501, '\P{ishangul}', "");
     Expect(0, 65501, '\P{^ishangul}', "");
-    Expect(1, 65500, '\p{- Is_Hangul}', "");
-    Expect(0, 65500, '\p{^- Is_Hangul}', "");
-    Expect(0, 65500, '\P{- Is_Hangul}', "");
-    Expect(1, 65500, '\P{^- Is_Hangul}', "");
-    Expect(0, 65501, '\p{- Is_Hangul}', "");
-    Expect(1, 65501, '\p{^- Is_Hangul}', "");
-    Expect(1, 65501, '\P{- Is_Hangul}', "");
-    Expect(0, 65501, '\P{^- Is_Hangul}', "");
-    Error('\p{:=_-hang}');
-    Error('\P{:=_-hang}');
+    Expect(1, 65500, '\p{ -Is_Hangul}', "");
+    Expect(0, 65500, '\p{^ -Is_Hangul}', "");
+    Expect(0, 65500, '\P{ -Is_Hangul}', "");
+    Expect(1, 65500, '\P{^ -Is_Hangul}', "");
+    Expect(0, 65501, '\p{ -Is_Hangul}', "");
+    Expect(1, 65501, '\p{^ -Is_Hangul}', "");
+    Expect(1, 65501, '\P{ -Is_Hangul}', "");
+    Expect(0, 65501, '\P{^ -Is_Hangul}', "");
+    Error('\p{_-hang:=}');
+    Error('\P{_-hang:=}');
     Expect(1, 65500, '\p{hang}', "");
     Expect(0, 65500, '\p{^hang}', "");
     Expect(0, 65500, '\P{hang}', "");
@@ -100261,16 +101267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65501, '\p{^hang}', "");
     Expect(1, 65501, '\P{hang}', "");
     Expect(0, 65501, '\P{^hang}', "");
-    Expect(1, 65500, '\p{_hang}', "");
-    Expect(0, 65500, '\p{^_hang}', "");
-    Expect(0, 65500, '\P{_hang}', "");
-    Expect(1, 65500, '\P{^_hang}', "");
-    Expect(0, 65501, '\p{_hang}', "");
-    Expect(1, 65501, '\p{^_hang}', "");
-    Expect(1, 65501, '\P{_hang}', "");
-    Expect(0, 65501, '\P{^_hang}', "");
-    Error('\p{:= _Is_Hang}');
-    Error('\P{:= _Is_Hang}');
+    Expect(1, 65500, '\p{_Hang}', "");
+    Expect(0, 65500, '\p{^_Hang}', "");
+    Expect(0, 65500, '\P{_Hang}', "");
+    Expect(1, 65500, '\P{^_Hang}', "");
+    Expect(0, 65501, '\p{_Hang}', "");
+    Expect(1, 65501, '\p{^_Hang}', "");
+    Expect(1, 65501, '\P{_Hang}', "");
+    Expect(0, 65501, '\P{^_Hang}', "");
+    Error('\p{/a/ -IS_hang}');
+    Error('\P{/a/ -IS_hang}');
     Expect(1, 65500, '\p{ishang}', "");
     Expect(0, 65500, '\p{^ishang}', "");
     Expect(0, 65500, '\P{ishang}', "");
@@ -100279,16 +101285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65501, '\p{^ishang}', "");
     Expect(1, 65501, '\P{ishang}', "");
     Expect(0, 65501, '\P{^ishang}', "");
-    Expect(1, 65500, '\p{	is_hang}', "");
-    Expect(0, 65500, '\p{^	is_hang}', "");
-    Expect(0, 65500, '\P{	is_hang}', "");
-    Expect(1, 65500, '\P{^	is_hang}', "");
-    Expect(0, 65501, '\p{	is_hang}', "");
-    Expect(1, 65501, '\p{^	is_hang}', "");
-    Expect(1, 65501, '\P{	is_hang}', "");
-    Expect(0, 65501, '\P{^	is_hang}', "");
-    Error('\p{:=hangul_Compatibility_jamo}');
-    Error('\P{:=hangul_Compatibility_jamo}');
+    Expect(1, 65500, '\p{	is_Hang}', "");
+    Expect(0, 65500, '\p{^	is_Hang}', "");
+    Expect(0, 65500, '\P{	is_Hang}', "");
+    Expect(1, 65500, '\P{^	is_Hang}', "");
+    Expect(0, 65501, '\p{	is_Hang}', "");
+    Expect(1, 65501, '\p{^	is_Hang}', "");
+    Expect(1, 65501, '\P{	is_Hang}', "");
+    Expect(0, 65501, '\P{^	is_Hang}', "");
+    Error('\p{	:=hangul_Compatibility_jamo}');
+    Error('\P{	:=hangul_Compatibility_jamo}');
     Expect(1, 12687, '\p{hangulcompatibilityjamo}', "");
     Expect(0, 12687, '\p{^hangulcompatibilityjamo}', "");
     Expect(0, 12687, '\P{hangulcompatibilityjamo}', "");
@@ -100297,16 +101303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12688, '\p{^hangulcompatibilityjamo}', "");
     Expect(1, 12688, '\P{hangulcompatibilityjamo}', "");
     Expect(0, 12688, '\P{^hangulcompatibilityjamo}', "");
-    Expect(1, 12687, '\p{-Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12687, '\p{^-Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12687, '\P{-Hangul_Compatibility_JAMO}', "");
-    Expect(1, 12687, '\P{^-Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12688, '\p{-Hangul_Compatibility_JAMO}', "");
-    Expect(1, 12688, '\p{^-Hangul_Compatibility_JAMO}', "");
-    Expect(1, 12688, '\P{-Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12688, '\P{^-Hangul_Compatibility_JAMO}', "");
-    Error('\p{	:=Is_Hangul_compatibility_jamo}');
-    Error('\P{	:=Is_Hangul_compatibility_jamo}');
+    Expect(1, 12687, '\p{ -Hangul_Compatibility_Jamo}', "");
+    Expect(0, 12687, '\p{^ -Hangul_Compatibility_Jamo}', "");
+    Expect(0, 12687, '\P{ -Hangul_Compatibility_Jamo}', "");
+    Expect(1, 12687, '\P{^ -Hangul_Compatibility_Jamo}', "");
+    Expect(0, 12688, '\p{ -Hangul_Compatibility_Jamo}', "");
+    Expect(1, 12688, '\p{^ -Hangul_Compatibility_Jamo}', "");
+    Expect(1, 12688, '\P{ -Hangul_Compatibility_Jamo}', "");
+    Expect(0, 12688, '\P{^ -Hangul_Compatibility_Jamo}', "");
+    Error('\p{/a/--IS_Hangul_Compatibility_Jamo}');
+    Error('\P{/a/--IS_Hangul_Compatibility_Jamo}');
     Expect(1, 12687, '\p{ishangulcompatibilityjamo}', "");
     Expect(0, 12687, '\p{^ishangulcompatibilityjamo}', "");
     Expect(0, 12687, '\P{ishangulcompatibilityjamo}', "");
@@ -100315,16 +101321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12688, '\p{^ishangulcompatibilityjamo}', "");
     Expect(1, 12688, '\P{ishangulcompatibilityjamo}', "");
     Expect(0, 12688, '\P{^ishangulcompatibilityjamo}', "");
-    Expect(1, 12687, '\p{	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12687, '\p{^	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12687, '\P{	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(1, 12687, '\P{^	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12688, '\p{	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(1, 12688, '\p{^	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(1, 12688, '\P{	 Is_Hangul_Compatibility_JAMO}', "");
-    Expect(0, 12688, '\P{^	 Is_Hangul_Compatibility_JAMO}', "");
-    Error('\p{/a/_ In_Hangul_Compatibility_Jamo}');
-    Error('\P{/a/_ In_Hangul_Compatibility_Jamo}');
+    Expect(1, 12687, '\p{	_IS_hangul_compatibility_Jamo}', "");
+    Expect(0, 12687, '\p{^	_IS_hangul_compatibility_Jamo}', "");
+    Expect(0, 12687, '\P{	_IS_hangul_compatibility_Jamo}', "");
+    Expect(1, 12687, '\P{^	_IS_hangul_compatibility_Jamo}', "");
+    Expect(0, 12688, '\p{	_IS_hangul_compatibility_Jamo}', "");
+    Expect(1, 12688, '\p{^	_IS_hangul_compatibility_Jamo}', "");
+    Expect(1, 12688, '\P{	_IS_hangul_compatibility_Jamo}', "");
+    Expect(0, 12688, '\P{^	_IS_hangul_compatibility_Jamo}', "");
+    Error('\p{:=- in_Hangul_Compatibility_Jamo}');
+    Error('\P{:=- in_Hangul_Compatibility_Jamo}');
     Expect(1, 12687, '\p{inhangulcompatibilityjamo}', "");
     Expect(0, 12687, '\p{^inhangulcompatibilityjamo}', "");
     Expect(0, 12687, '\P{inhangulcompatibilityjamo}', "");
@@ -100333,16 +101339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12688, '\p{^inhangulcompatibilityjamo}', "");
     Expect(1, 12688, '\P{inhangulcompatibilityjamo}', "");
     Expect(0, 12688, '\P{^inhangulcompatibilityjamo}', "");
-    Expect(1, 12687, '\p{ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(0, 12687, '\p{^ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(0, 12687, '\P{ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(1, 12687, '\P{^ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(0, 12688, '\p{ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(1, 12688, '\p{^ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(1, 12688, '\P{ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Expect(0, 12688, '\P{^ _In_hangul_COMPATIBILITY_JAMO}', "");
-    Error('\p{:=compat_jamo}');
-    Error('\P{:=compat_jamo}');
+    Expect(1, 12687, '\p{-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(0, 12687, '\p{^-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(0, 12687, '\P{-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(1, 12687, '\P{^-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(0, 12688, '\p{-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(1, 12688, '\p{^-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(1, 12688, '\P{-	IN_hangul_Compatibility_Jamo}', "");
+    Expect(0, 12688, '\P{^-	IN_hangul_Compatibility_Jamo}', "");
+    Error('\p{ /a/Compat_Jamo}');
+    Error('\P{ /a/Compat_Jamo}');
     Expect(1, 12687, '\p{compatjamo}', "");
     Expect(0, 12687, '\p{^compatjamo}', "");
     Expect(0, 12687, '\P{compatjamo}', "");
@@ -100351,16 +101357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12688, '\p{^compatjamo}', "");
     Expect(1, 12688, '\P{compatjamo}', "");
     Expect(0, 12688, '\P{^compatjamo}', "");
-    Expect(1, 12687, '\p{- COMPAT_Jamo}', "");
-    Expect(0, 12687, '\p{^- COMPAT_Jamo}', "");
-    Expect(0, 12687, '\P{- COMPAT_Jamo}', "");
-    Expect(1, 12687, '\P{^- COMPAT_Jamo}', "");
-    Expect(0, 12688, '\p{- COMPAT_Jamo}', "");
-    Expect(1, 12688, '\p{^- COMPAT_Jamo}', "");
-    Expect(1, 12688, '\P{- COMPAT_Jamo}', "");
-    Expect(0, 12688, '\P{^- COMPAT_Jamo}', "");
-    Error('\p{  is_COMPAT_Jamo/a/}');
-    Error('\P{  is_COMPAT_Jamo/a/}');
+    Expect(1, 12687, '\p{	compat_Jamo}', "");
+    Expect(0, 12687, '\p{^	compat_Jamo}', "");
+    Expect(0, 12687, '\P{	compat_Jamo}', "");
+    Expect(1, 12687, '\P{^	compat_Jamo}', "");
+    Expect(0, 12688, '\p{	compat_Jamo}', "");
+    Expect(1, 12688, '\p{^	compat_Jamo}', "");
+    Expect(1, 12688, '\P{	compat_Jamo}', "");
+    Expect(0, 12688, '\P{^	compat_Jamo}', "");
+    Error('\p{	_IS_Compat_jamo:=}');
+    Error('\P{	_IS_Compat_jamo:=}');
     Expect(1, 12687, '\p{iscompatjamo}', "");
     Expect(0, 12687, '\p{^iscompatjamo}', "");
     Expect(0, 12687, '\P{iscompatjamo}', "");
@@ -100369,16 +101375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12688, '\p{^iscompatjamo}', "");
     Expect(1, 12688, '\P{iscompatjamo}', "");
     Expect(0, 12688, '\P{^iscompatjamo}', "");
-    Expect(1, 12687, '\p{ IS_Compat_jamo}', "");
-    Expect(0, 12687, '\p{^ IS_Compat_jamo}', "");
-    Expect(0, 12687, '\P{ IS_Compat_jamo}', "");
-    Expect(1, 12687, '\P{^ IS_Compat_jamo}', "");
-    Expect(0, 12688, '\p{ IS_Compat_jamo}', "");
-    Expect(1, 12688, '\p{^ IS_Compat_jamo}', "");
-    Expect(1, 12688, '\P{ IS_Compat_jamo}', "");
-    Expect(0, 12688, '\P{^ IS_Compat_jamo}', "");
-    Error('\p{:=_-In_COMPAT_Jamo}');
-    Error('\P{:=_-In_COMPAT_Jamo}');
+    Expect(1, 12687, '\p{_ IS_Compat_Jamo}', "");
+    Expect(0, 12687, '\p{^_ IS_Compat_Jamo}', "");
+    Expect(0, 12687, '\P{_ IS_Compat_Jamo}', "");
+    Expect(1, 12687, '\P{^_ IS_Compat_Jamo}', "");
+    Expect(0, 12688, '\p{_ IS_Compat_Jamo}', "");
+    Expect(1, 12688, '\p{^_ IS_Compat_Jamo}', "");
+    Expect(1, 12688, '\P{_ IS_Compat_Jamo}', "");
+    Expect(0, 12688, '\P{^_ IS_Compat_Jamo}', "");
+    Error('\p{_in_Compat_jamo/a/}');
+    Error('\P{_in_Compat_jamo/a/}');
     Expect(1, 12687, '\p{incompatjamo}', "");
     Expect(0, 12687, '\p{^incompatjamo}', "");
     Expect(0, 12687, '\P{incompatjamo}', "");
@@ -100387,16 +101393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12688, '\p{^incompatjamo}', "");
     Expect(1, 12688, '\P{incompatjamo}', "");
     Expect(0, 12688, '\P{^incompatjamo}', "");
-    Expect(1, 12687, '\p{		IN_Compat_jamo}', "");
-    Expect(0, 12687, '\p{^		IN_Compat_jamo}', "");
-    Expect(0, 12687, '\P{		IN_Compat_jamo}', "");
-    Expect(1, 12687, '\P{^		IN_Compat_jamo}', "");
-    Expect(0, 12688, '\p{		IN_Compat_jamo}', "");
-    Expect(1, 12688, '\p{^		IN_Compat_jamo}', "");
-    Expect(1, 12688, '\P{		IN_Compat_jamo}', "");
-    Expect(0, 12688, '\P{^		IN_Compat_jamo}', "");
-    Error('\p{:= -HANGUL_jamo}');
-    Error('\P{:= -HANGUL_jamo}');
+    Expect(1, 12687, '\p{	In_COMPAT_jamo}', "");
+    Expect(0, 12687, '\p{^	In_COMPAT_jamo}', "");
+    Expect(0, 12687, '\P{	In_COMPAT_jamo}', "");
+    Expect(1, 12687, '\P{^	In_COMPAT_jamo}', "");
+    Expect(0, 12688, '\p{	In_COMPAT_jamo}', "");
+    Expect(1, 12688, '\p{^	In_COMPAT_jamo}', "");
+    Expect(1, 12688, '\P{	In_COMPAT_jamo}', "");
+    Expect(0, 12688, '\P{^	In_COMPAT_jamo}', "");
+    Error('\p{/a/ -hangul_JAMO}');
+    Error('\P{/a/ -hangul_JAMO}');
     Expect(1, 4607, '\p{hanguljamo}', "");
     Expect(0, 4607, '\p{^hanguljamo}', "");
     Expect(0, 4607, '\P{hanguljamo}', "");
@@ -100405,16 +101411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4608, '\p{^hanguljamo}', "");
     Expect(1, 4608, '\P{hanguljamo}', "");
     Expect(0, 4608, '\P{^hanguljamo}', "");
-    Expect(1, 4607, '\p{_Hangul_Jamo}', "");
-    Expect(0, 4607, '\p{^_Hangul_Jamo}', "");
-    Expect(0, 4607, '\P{_Hangul_Jamo}', "");
-    Expect(1, 4607, '\P{^_Hangul_Jamo}', "");
-    Expect(0, 4608, '\p{_Hangul_Jamo}', "");
-    Expect(1, 4608, '\p{^_Hangul_Jamo}', "");
-    Expect(1, 4608, '\P{_Hangul_Jamo}', "");
-    Expect(0, 4608, '\P{^_Hangul_Jamo}', "");
-    Error('\p{_/a/Is_Hangul_Jamo}');
-    Error('\P{_/a/Is_Hangul_Jamo}');
+    Expect(1, 4607, '\p{  Hangul_JAMO}', "");
+    Expect(0, 4607, '\p{^  Hangul_JAMO}', "");
+    Expect(0, 4607, '\P{  Hangul_JAMO}', "");
+    Expect(1, 4607, '\P{^  Hangul_JAMO}', "");
+    Expect(0, 4608, '\p{  Hangul_JAMO}', "");
+    Expect(1, 4608, '\p{^  Hangul_JAMO}', "");
+    Expect(1, 4608, '\P{  Hangul_JAMO}', "");
+    Expect(0, 4608, '\P{^  Hangul_JAMO}', "");
+    Error('\p{:=Is_HANGUL_Jamo}');
+    Error('\P{:=Is_HANGUL_Jamo}');
     Expect(1, 4607, '\p{ishanguljamo}', "");
     Expect(0, 4607, '\p{^ishanguljamo}', "");
     Expect(0, 4607, '\P{ishanguljamo}', "");
@@ -100423,16 +101429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4608, '\p{^ishanguljamo}', "");
     Expect(1, 4608, '\P{ishanguljamo}', "");
     Expect(0, 4608, '\P{^ishanguljamo}', "");
-    Expect(1, 4607, '\p{	 IS_hangul_JAMO}', "");
-    Expect(0, 4607, '\p{^	 IS_hangul_JAMO}', "");
-    Expect(0, 4607, '\P{	 IS_hangul_JAMO}', "");
-    Expect(1, 4607, '\P{^	 IS_hangul_JAMO}', "");
-    Expect(0, 4608, '\p{	 IS_hangul_JAMO}', "");
-    Expect(1, 4608, '\p{^	 IS_hangul_JAMO}', "");
-    Expect(1, 4608, '\P{	 IS_hangul_JAMO}', "");
-    Expect(0, 4608, '\P{^	 IS_hangul_JAMO}', "");
-    Error('\p{/a/ _In_Hangul_jamo}');
-    Error('\P{/a/ _In_Hangul_jamo}');
+    Expect(1, 4607, '\p{_ Is_hangul_Jamo}', "");
+    Expect(0, 4607, '\p{^_ Is_hangul_Jamo}', "");
+    Expect(0, 4607, '\P{_ Is_hangul_Jamo}', "");
+    Expect(1, 4607, '\P{^_ Is_hangul_Jamo}', "");
+    Expect(0, 4608, '\p{_ Is_hangul_Jamo}', "");
+    Expect(1, 4608, '\p{^_ Is_hangul_Jamo}', "");
+    Expect(1, 4608, '\P{_ Is_hangul_Jamo}', "");
+    Expect(0, 4608, '\P{^_ Is_hangul_Jamo}', "");
+    Error('\p{/a/IN_HANGUL_Jamo}');
+    Error('\P{/a/IN_HANGUL_Jamo}');
     Expect(1, 4607, '\p{inhanguljamo}', "");
     Expect(0, 4607, '\p{^inhanguljamo}', "");
     Expect(0, 4607, '\P{inhanguljamo}', "");
@@ -100441,16 +101447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4608, '\p{^inhanguljamo}', "");
     Expect(1, 4608, '\P{inhanguljamo}', "");
     Expect(0, 4608, '\P{^inhanguljamo}', "");
-    Expect(1, 4607, '\p{-	in_Hangul_jamo}', "");
-    Expect(0, 4607, '\p{^-	in_Hangul_jamo}', "");
-    Expect(0, 4607, '\P{-	in_Hangul_jamo}', "");
-    Expect(1, 4607, '\P{^-	in_Hangul_jamo}', "");
-    Expect(0, 4608, '\p{-	in_Hangul_jamo}', "");
-    Expect(1, 4608, '\p{^-	in_Hangul_jamo}', "");
-    Expect(1, 4608, '\P{-	in_Hangul_jamo}', "");
-    Expect(0, 4608, '\P{^-	in_Hangul_jamo}', "");
-    Error('\p{	Jamo:=}');
-    Error('\P{	Jamo:=}');
+    Expect(1, 4607, '\p{__IN_hangul_JAMO}', "");
+    Expect(0, 4607, '\p{^__IN_hangul_JAMO}', "");
+    Expect(0, 4607, '\P{__IN_hangul_JAMO}', "");
+    Expect(1, 4607, '\P{^__IN_hangul_JAMO}', "");
+    Expect(0, 4608, '\p{__IN_hangul_JAMO}', "");
+    Expect(1, 4608, '\p{^__IN_hangul_JAMO}', "");
+    Expect(1, 4608, '\P{__IN_hangul_JAMO}', "");
+    Expect(0, 4608, '\P{^__IN_hangul_JAMO}', "");
+    Error('\p{/a/_ Jamo}');
+    Error('\P{/a/_ Jamo}');
     Expect(1, 4607, '\p{jamo}', "");
     Expect(0, 4607, '\p{^jamo}', "");
     Expect(0, 4607, '\P{jamo}', "");
@@ -100459,16 +101465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4608, '\p{^jamo}', "");
     Expect(1, 4608, '\P{jamo}', "");
     Expect(0, 4608, '\P{^jamo}', "");
-    Expect(1, 4607, '\p{	Jamo}', "");
-    Expect(0, 4607, '\p{^	Jamo}', "");
-    Expect(0, 4607, '\P{	Jamo}', "");
-    Expect(1, 4607, '\P{^	Jamo}', "");
-    Expect(0, 4608, '\p{	Jamo}', "");
-    Expect(1, 4608, '\p{^	Jamo}', "");
-    Expect(1, 4608, '\P{	Jamo}', "");
-    Expect(0, 4608, '\P{^	Jamo}', "");
-    Error('\p{/a/Is_jamo}');
-    Error('\P{/a/Is_jamo}');
+    Expect(1, 4607, '\p{- Jamo}', "");
+    Expect(0, 4607, '\p{^- Jamo}', "");
+    Expect(0, 4607, '\P{- Jamo}', "");
+    Expect(1, 4607, '\P{^- Jamo}', "");
+    Expect(0, 4608, '\p{- Jamo}', "");
+    Expect(1, 4608, '\p{^- Jamo}', "");
+    Expect(1, 4608, '\P{- Jamo}', "");
+    Expect(0, 4608, '\P{^- Jamo}', "");
+    Error('\p{-/a/is_jamo}');
+    Error('\P{-/a/is_jamo}');
     Expect(1, 4607, '\p{isjamo}', "");
     Expect(0, 4607, '\p{^isjamo}', "");
     Expect(0, 4607, '\P{isjamo}', "");
@@ -100477,16 +101483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4608, '\p{^isjamo}', "");
     Expect(1, 4608, '\P{isjamo}', "");
     Expect(0, 4608, '\P{^isjamo}', "");
-    Expect(1, 4607, '\p{-	IS_jamo}', "");
-    Expect(0, 4607, '\p{^-	IS_jamo}', "");
-    Expect(0, 4607, '\P{-	IS_jamo}', "");
-    Expect(1, 4607, '\P{^-	IS_jamo}', "");
-    Expect(0, 4608, '\p{-	IS_jamo}', "");
-    Expect(1, 4608, '\p{^-	IS_jamo}', "");
-    Expect(1, 4608, '\P{-	IS_jamo}', "");
-    Expect(0, 4608, '\P{^-	IS_jamo}', "");
-    Error('\p{	/a/IN_Jamo}');
-    Error('\P{	/a/IN_Jamo}');
+    Expect(1, 4607, '\p{_Is_Jamo}', "");
+    Expect(0, 4607, '\p{^_Is_Jamo}', "");
+    Expect(0, 4607, '\P{_Is_Jamo}', "");
+    Expect(1, 4607, '\P{^_Is_Jamo}', "");
+    Expect(0, 4608, '\p{_Is_Jamo}', "");
+    Expect(1, 4608, '\p{^_Is_Jamo}', "");
+    Expect(1, 4608, '\P{_Is_Jamo}', "");
+    Expect(0, 4608, '\P{^_Is_Jamo}', "");
+    Error('\p{:=  IN_JAMO}');
+    Error('\P{:=  IN_JAMO}');
     Expect(1, 4607, '\p{injamo}', "");
     Expect(0, 4607, '\p{^injamo}', "");
     Expect(0, 4607, '\P{injamo}', "");
@@ -100495,16 +101501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4608, '\p{^injamo}', "");
     Expect(1, 4608, '\P{injamo}', "");
     Expect(0, 4608, '\P{^injamo}', "");
-    Expect(1, 4607, '\p{	IN_Jamo}', "");
-    Expect(0, 4607, '\p{^	IN_Jamo}', "");
-    Expect(0, 4607, '\P{	IN_Jamo}', "");
-    Expect(1, 4607, '\P{^	IN_Jamo}', "");
-    Expect(0, 4608, '\p{	IN_Jamo}', "");
-    Expect(1, 4608, '\p{^	IN_Jamo}', "");
-    Expect(1, 4608, '\P{	IN_Jamo}', "");
-    Expect(0, 4608, '\P{^	IN_Jamo}', "");
-    Error('\p{:=  hangul_Jamo_Extended_a}');
-    Error('\P{:=  hangul_Jamo_Extended_a}');
+    Expect(1, 4607, '\p{_	In_Jamo}', "");
+    Expect(0, 4607, '\p{^_	In_Jamo}', "");
+    Expect(0, 4607, '\P{_	In_Jamo}', "");
+    Expect(1, 4607, '\P{^_	In_Jamo}', "");
+    Expect(0, 4608, '\p{_	In_Jamo}', "");
+    Expect(1, 4608, '\p{^_	In_Jamo}', "");
+    Expect(1, 4608, '\P{_	In_Jamo}', "");
+    Expect(0, 4608, '\P{^_	In_Jamo}', "");
+    Error('\p{ /a/HANGUL_Jamo_Extended_A}');
+    Error('\P{ /a/HANGUL_Jamo_Extended_A}');
     Expect(1, 43391, '\p{hanguljamoextendeda}', "");
     Expect(0, 43391, '\p{^hanguljamoextendeda}', "");
     Expect(0, 43391, '\P{hanguljamoextendeda}', "");
@@ -100513,16 +101519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43392, '\p{^hanguljamoextendeda}', "");
     Expect(1, 43392, '\P{hanguljamoextendeda}', "");
     Expect(0, 43392, '\P{^hanguljamoextendeda}', "");
-    Expect(1, 43391, '\p{_-HANGUL_JAMO_Extended_A}', "");
-    Expect(0, 43391, '\p{^_-HANGUL_JAMO_Extended_A}', "");
-    Expect(0, 43391, '\P{_-HANGUL_JAMO_Extended_A}', "");
-    Expect(1, 43391, '\P{^_-HANGUL_JAMO_Extended_A}', "");
-    Expect(0, 43392, '\p{_-HANGUL_JAMO_Extended_A}', "");
-    Expect(1, 43392, '\p{^_-HANGUL_JAMO_Extended_A}', "");
-    Expect(1, 43392, '\P{_-HANGUL_JAMO_Extended_A}', "");
-    Expect(0, 43392, '\P{^_-HANGUL_JAMO_Extended_A}', "");
-    Error('\p{-:=is_Hangul_jamo_extended_A}');
-    Error('\P{-:=is_Hangul_jamo_extended_A}');
+    Expect(1, 43391, '\p{		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(0, 43391, '\p{^		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(0, 43391, '\P{		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(1, 43391, '\P{^		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(0, 43392, '\p{		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(1, 43392, '\p{^		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(1, 43392, '\P{		Hangul_JAMO_EXTENDED_A}', "");
+    Expect(0, 43392, '\P{^		Hangul_JAMO_EXTENDED_A}', "");
+    Error('\p{ :=Is_HANGUL_Jamo_Extended_A}');
+    Error('\P{ :=Is_HANGUL_Jamo_Extended_A}');
     Expect(1, 43391, '\p{ishanguljamoextendeda}', "");
     Expect(0, 43391, '\p{^ishanguljamoextendeda}', "");
     Expect(0, 43391, '\P{ishanguljamoextendeda}', "");
@@ -100531,16 +101537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43392, '\p{^ishanguljamoextendeda}', "");
     Expect(1, 43392, '\P{ishanguljamoextendeda}', "");
     Expect(0, 43392, '\P{^ishanguljamoextendeda}', "");
-    Expect(1, 43391, '\p{_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(0, 43391, '\p{^_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(0, 43391, '\P{_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(1, 43391, '\P{^_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(0, 43392, '\p{_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(1, 43392, '\p{^_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(1, 43392, '\P{_	Is_hangul_Jamo_Extended_A}', "");
-    Expect(0, 43392, '\P{^_	Is_hangul_Jamo_Extended_A}', "");
-    Error('\p{		IN_Hangul_Jamo_Extended_A/a/}');
-    Error('\P{		IN_Hangul_Jamo_Extended_A/a/}');
+    Expect(1, 43391, '\p{IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43391, '\p{^IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43391, '\P{IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(1, 43391, '\P{^IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43392, '\p{IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(1, 43392, '\p{^IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(1, 43392, '\P{IS_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43392, '\P{^IS_HANGUL_Jamo_Extended_a}', "");
+    Error('\p{_/a/In_Hangul_Jamo_extended_A}');
+    Error('\P{_/a/In_Hangul_Jamo_extended_A}');
     Expect(1, 43391, '\p{inhanguljamoextendeda}', "");
     Expect(0, 43391, '\p{^inhanguljamoextendeda}', "");
     Expect(0, 43391, '\P{inhanguljamoextendeda}', "");
@@ -100549,16 +101555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43392, '\p{^inhanguljamoextendeda}', "");
     Expect(1, 43392, '\P{inhanguljamoextendeda}', "");
     Expect(0, 43392, '\P{^inhanguljamoextendeda}', "");
-    Expect(1, 43391, '\p{ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(0, 43391, '\p{^ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(0, 43391, '\P{ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(1, 43391, '\P{^ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(0, 43392, '\p{ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(1, 43392, '\p{^ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(1, 43392, '\P{ _In_HANGUL_Jamo_extended_A}', "");
-    Expect(0, 43392, '\P{^ _In_HANGUL_Jamo_extended_A}', "");
-    Error('\p{ _jamo_Ext_A:=}');
-    Error('\P{ _jamo_Ext_A:=}');
+    Expect(1, 43391, '\p{ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43391, '\p{^ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43391, '\P{ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(1, 43391, '\P{^ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43392, '\p{ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(1, 43392, '\p{^ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(1, 43392, '\P{ -In_HANGUL_Jamo_Extended_a}', "");
+    Expect(0, 43392, '\P{^ -In_HANGUL_Jamo_Extended_a}', "");
+    Error('\p{/a/	-Jamo_ext_A}');
+    Error('\P{/a/	-Jamo_ext_A}');
     Expect(1, 43391, '\p{jamoexta}', "");
     Expect(0, 43391, '\p{^jamoexta}', "");
     Expect(0, 43391, '\P{jamoexta}', "");
@@ -100567,16 +101573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43392, '\p{^jamoexta}', "");
     Expect(1, 43392, '\P{jamoexta}', "");
     Expect(0, 43392, '\P{^jamoexta}', "");
-    Expect(1, 43391, '\p{	jamo_Ext_a}', "");
-    Expect(0, 43391, '\p{^	jamo_Ext_a}', "");
-    Expect(0, 43391, '\P{	jamo_Ext_a}', "");
-    Expect(1, 43391, '\P{^	jamo_Ext_a}', "");
-    Expect(0, 43392, '\p{	jamo_Ext_a}', "");
-    Expect(1, 43392, '\p{^	jamo_Ext_a}', "");
-    Expect(1, 43392, '\P{	jamo_Ext_a}', "");
-    Expect(0, 43392, '\P{^	jamo_Ext_a}', "");
-    Error('\p{_/a/Is_Jamo_Ext_a}');
-    Error('\P{_/a/Is_Jamo_Ext_a}');
+    Expect(1, 43391, '\p{  Jamo_EXT_A}', "");
+    Expect(0, 43391, '\p{^  Jamo_EXT_A}', "");
+    Expect(0, 43391, '\P{  Jamo_EXT_A}', "");
+    Expect(1, 43391, '\P{^  Jamo_EXT_A}', "");
+    Expect(0, 43392, '\p{  Jamo_EXT_A}', "");
+    Expect(1, 43392, '\p{^  Jamo_EXT_A}', "");
+    Expect(1, 43392, '\P{  Jamo_EXT_A}', "");
+    Expect(0, 43392, '\P{^  Jamo_EXT_A}', "");
+    Error('\p{:= IS_Jamo_Ext_A}');
+    Error('\P{:= IS_Jamo_Ext_A}');
     Expect(1, 43391, '\p{isjamoexta}', "");
     Expect(0, 43391, '\p{^isjamoexta}', "");
     Expect(0, 43391, '\P{isjamoexta}', "");
@@ -100585,16 +101591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43392, '\p{^isjamoexta}', "");
     Expect(1, 43392, '\P{isjamoexta}', "");
     Expect(0, 43392, '\P{^isjamoexta}', "");
-    Expect(1, 43391, '\p{	IS_Jamo_ext_A}', "");
-    Expect(0, 43391, '\p{^	IS_Jamo_ext_A}', "");
-    Expect(0, 43391, '\P{	IS_Jamo_ext_A}', "");
-    Expect(1, 43391, '\P{^	IS_Jamo_ext_A}', "");
-    Expect(0, 43392, '\p{	IS_Jamo_ext_A}', "");
-    Expect(1, 43392, '\p{^	IS_Jamo_ext_A}', "");
-    Expect(1, 43392, '\P{	IS_Jamo_ext_A}', "");
-    Expect(0, 43392, '\P{^	IS_Jamo_ext_A}', "");
-    Error('\p{_in_jamo_EXT_a/a/}');
-    Error('\P{_in_jamo_EXT_a/a/}');
+    Expect(1, 43391, '\p{_is_JAMO_ext_a}', "");
+    Expect(0, 43391, '\p{^_is_JAMO_ext_a}', "");
+    Expect(0, 43391, '\P{_is_JAMO_ext_a}', "");
+    Expect(1, 43391, '\P{^_is_JAMO_ext_a}', "");
+    Expect(0, 43392, '\p{_is_JAMO_ext_a}', "");
+    Expect(1, 43392, '\p{^_is_JAMO_ext_a}', "");
+    Expect(1, 43392, '\P{_is_JAMO_ext_a}', "");
+    Expect(0, 43392, '\P{^_is_JAMO_ext_a}', "");
+    Error('\p{	In_Jamo_EXT_A/a/}');
+    Error('\P{	In_Jamo_EXT_A/a/}');
     Expect(1, 43391, '\p{injamoexta}', "");
     Expect(0, 43391, '\p{^injamoexta}', "");
     Expect(0, 43391, '\P{injamoexta}', "");
@@ -100603,16 +101609,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43392, '\p{^injamoexta}', "");
     Expect(1, 43392, '\P{injamoexta}', "");
     Expect(0, 43392, '\P{^injamoexta}', "");
-    Expect(1, 43391, '\p{_In_jamo_Ext_A}', "");
-    Expect(0, 43391, '\p{^_In_jamo_Ext_A}', "");
-    Expect(0, 43391, '\P{_In_jamo_Ext_A}', "");
-    Expect(1, 43391, '\P{^_In_jamo_Ext_A}', "");
-    Expect(0, 43392, '\p{_In_jamo_Ext_A}', "");
-    Expect(1, 43392, '\p{^_In_jamo_Ext_A}', "");
-    Expect(1, 43392, '\P{_In_jamo_Ext_A}', "");
-    Expect(0, 43392, '\P{^_In_jamo_Ext_A}', "");
-    Error('\p{:=Hangul_Jamo_Extended_B}');
-    Error('\P{:=Hangul_Jamo_Extended_B}');
+    Expect(1, 43391, '\p{--IN_JAMO_Ext_A}', "");
+    Expect(0, 43391, '\p{^--IN_JAMO_Ext_A}', "");
+    Expect(0, 43391, '\P{--IN_JAMO_Ext_A}', "");
+    Expect(1, 43391, '\P{^--IN_JAMO_Ext_A}', "");
+    Expect(0, 43392, '\p{--IN_JAMO_Ext_A}', "");
+    Expect(1, 43392, '\p{^--IN_JAMO_Ext_A}', "");
+    Expect(1, 43392, '\P{--IN_JAMO_Ext_A}', "");
+    Expect(0, 43392, '\P{^--IN_JAMO_Ext_A}', "");
+    Error('\p{:= _Hangul_JAMO_extended_B}');
+    Error('\P{:= _Hangul_JAMO_extended_B}');
     Expect(1, 55295, '\p{hanguljamoextendedb}', "");
     Expect(0, 55295, '\p{^hanguljamoextendedb}', "");
     Expect(0, 55295, '\P{hanguljamoextendedb}', "");
@@ -100621,16 +101627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^hanguljamoextendedb}', "");
     Expect(1, 57344, '\P{hanguljamoextendedb}', "");
     Expect(0, 57344, '\P{^hanguljamoextendedb}', "");
-    Expect(1, 55295, '\p{--Hangul_Jamo_Extended_b}', "");
-    Expect(0, 55295, '\p{^--Hangul_Jamo_Extended_b}', "");
-    Expect(0, 55295, '\P{--Hangul_Jamo_Extended_b}', "");
-    Expect(1, 55295, '\P{^--Hangul_Jamo_Extended_b}', "");
-    Expect(0, 57344, '\p{--Hangul_Jamo_Extended_b}', "");
-    Expect(1, 57344, '\p{^--Hangul_Jamo_Extended_b}', "");
-    Expect(1, 57344, '\P{--Hangul_Jamo_Extended_b}', "");
-    Expect(0, 57344, '\P{^--Hangul_Jamo_Extended_b}', "");
-    Error('\p{:=	 Is_Hangul_jamo_Extended_B}');
-    Error('\P{:=	 Is_Hangul_jamo_Extended_B}');
+    Expect(1, 55295, '\p{	_Hangul_JAMO_extended_B}', "");
+    Expect(0, 55295, '\p{^	_Hangul_JAMO_extended_B}', "");
+    Expect(0, 55295, '\P{	_Hangul_JAMO_extended_B}', "");
+    Expect(1, 55295, '\P{^	_Hangul_JAMO_extended_B}', "");
+    Expect(0, 57344, '\p{	_Hangul_JAMO_extended_B}', "");
+    Expect(1, 57344, '\p{^	_Hangul_JAMO_extended_B}', "");
+    Expect(1, 57344, '\P{	_Hangul_JAMO_extended_B}', "");
+    Expect(0, 57344, '\P{^	_Hangul_JAMO_extended_B}', "");
+    Error('\p{	:=Is_Hangul_Jamo_EXTENDED_B}');
+    Error('\P{	:=Is_Hangul_Jamo_EXTENDED_B}');
     Expect(1, 55295, '\p{ishanguljamoextendedb}', "");
     Expect(0, 55295, '\p{^ishanguljamoextendedb}', "");
     Expect(0, 55295, '\P{ishanguljamoextendedb}', "");
@@ -100639,16 +101645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^ishanguljamoextendedb}', "");
     Expect(1, 57344, '\P{ishanguljamoextendedb}', "");
     Expect(0, 57344, '\P{^ishanguljamoextendedb}', "");
-    Expect(1, 55295, '\p{		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(0, 55295, '\p{^		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(0, 55295, '\P{		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(1, 55295, '\P{^		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(0, 57344, '\p{		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(1, 57344, '\p{^		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(1, 57344, '\P{		IS_Hangul_Jamo_Extended_B}', "");
-    Expect(0, 57344, '\P{^		IS_Hangul_Jamo_Extended_B}', "");
-    Error('\p{_IN_hangul_Jamo_Extended_B:=}');
-    Error('\P{_IN_hangul_Jamo_Extended_B:=}');
+    Expect(1, 55295, '\p{_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(0, 55295, '\p{^_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(0, 55295, '\P{_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(1, 55295, '\P{^_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(0, 57344, '\p{_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(1, 57344, '\p{^_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(1, 57344, '\P{_	IS_Hangul_JAMO_Extended_B}', "");
+    Expect(0, 57344, '\P{^_	IS_Hangul_JAMO_Extended_B}', "");
+    Error('\p{-	IN_Hangul_Jamo_Extended_B/a/}');
+    Error('\P{-	IN_Hangul_Jamo_Extended_B/a/}');
     Expect(1, 55295, '\p{inhanguljamoextendedb}', "");
     Expect(0, 55295, '\p{^inhanguljamoextendedb}', "");
     Expect(0, 55295, '\P{inhanguljamoextendedb}', "");
@@ -100657,16 +101663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^inhanguljamoextendedb}', "");
     Expect(1, 57344, '\P{inhanguljamoextendedb}', "");
     Expect(0, 57344, '\P{^inhanguljamoextendedb}', "");
-    Expect(1, 55295, '\p{ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(0, 55295, '\p{^ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(0, 55295, '\P{ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(1, 55295, '\P{^ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(0, 57344, '\p{ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(1, 57344, '\p{^ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(1, 57344, '\P{ in_hangul_jamo_EXTENDED_B}', "");
-    Expect(0, 57344, '\P{^ in_hangul_jamo_EXTENDED_B}', "");
-    Error('\p{  JAMO_Ext_b:=}');
-    Error('\P{  JAMO_Ext_b:=}');
+    Expect(1, 55295, '\p{_In_Hangul_Jamo_Extended_B}', "");
+    Expect(0, 55295, '\p{^_In_Hangul_Jamo_Extended_B}', "");
+    Expect(0, 55295, '\P{_In_Hangul_Jamo_Extended_B}', "");
+    Expect(1, 55295, '\P{^_In_Hangul_Jamo_Extended_B}', "");
+    Expect(0, 57344, '\p{_In_Hangul_Jamo_Extended_B}', "");
+    Expect(1, 57344, '\p{^_In_Hangul_Jamo_Extended_B}', "");
+    Expect(1, 57344, '\P{_In_Hangul_Jamo_Extended_B}', "");
+    Expect(0, 57344, '\P{^_In_Hangul_Jamo_Extended_B}', "");
+    Error('\p{/a/	_Jamo_Ext_B}');
+    Error('\P{/a/	_Jamo_Ext_B}');
     Expect(1, 55295, '\p{jamoextb}', "");
     Expect(0, 55295, '\p{^jamoextb}', "");
     Expect(0, 55295, '\P{jamoextb}', "");
@@ -100675,16 +101681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^jamoextb}', "");
     Expect(1, 57344, '\P{jamoextb}', "");
     Expect(0, 57344, '\P{^jamoextb}', "");
-    Expect(1, 55295, '\p{-jamo_Ext_B}', "");
-    Expect(0, 55295, '\p{^-jamo_Ext_B}', "");
-    Expect(0, 55295, '\P{-jamo_Ext_B}', "");
-    Expect(1, 55295, '\P{^-jamo_Ext_B}', "");
-    Expect(0, 57344, '\p{-jamo_Ext_B}', "");
-    Expect(1, 57344, '\p{^-jamo_Ext_B}', "");
-    Expect(1, 57344, '\P{-jamo_Ext_B}', "");
-    Expect(0, 57344, '\P{^-jamo_Ext_B}', "");
-    Error('\p{_/a/is_Jamo_ext_B}');
-    Error('\P{_/a/is_Jamo_ext_B}');
+    Expect(1, 55295, '\p{ JAMO_Ext_B}', "");
+    Expect(0, 55295, '\p{^ JAMO_Ext_B}', "");
+    Expect(0, 55295, '\P{ JAMO_Ext_B}', "");
+    Expect(1, 55295, '\P{^ JAMO_Ext_B}', "");
+    Expect(0, 57344, '\p{ JAMO_Ext_B}', "");
+    Expect(1, 57344, '\p{^ JAMO_Ext_B}', "");
+    Expect(1, 57344, '\P{ JAMO_Ext_B}', "");
+    Expect(0, 57344, '\P{^ JAMO_Ext_B}', "");
+    Error('\p{:=	 Is_Jamo_EXT_B}');
+    Error('\P{:=	 Is_Jamo_EXT_B}');
     Expect(1, 55295, '\p{isjamoextb}', "");
     Expect(0, 55295, '\p{^isjamoextb}', "");
     Expect(0, 55295, '\P{isjamoextb}', "");
@@ -100693,16 +101699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^isjamoextb}', "");
     Expect(1, 57344, '\P{isjamoextb}', "");
     Expect(0, 57344, '\P{^isjamoextb}', "");
-    Expect(1, 55295, '\p{_ Is_Jamo_ext_b}', "");
-    Expect(0, 55295, '\p{^_ Is_Jamo_ext_b}', "");
-    Expect(0, 55295, '\P{_ Is_Jamo_ext_b}', "");
-    Expect(1, 55295, '\P{^_ Is_Jamo_ext_b}', "");
-    Expect(0, 57344, '\p{_ Is_Jamo_ext_b}', "");
-    Expect(1, 57344, '\p{^_ Is_Jamo_ext_b}', "");
-    Expect(1, 57344, '\P{_ Is_Jamo_ext_b}', "");
-    Expect(0, 57344, '\P{^_ Is_Jamo_ext_b}', "");
-    Error('\p{-_IN_JAMO_EXT_b:=}');
-    Error('\P{-_IN_JAMO_EXT_b:=}');
+    Expect(1, 55295, '\p{-_is_JAMO_ext_B}', "");
+    Expect(0, 55295, '\p{^-_is_JAMO_ext_B}', "");
+    Expect(0, 55295, '\P{-_is_JAMO_ext_B}', "");
+    Expect(1, 55295, '\P{^-_is_JAMO_ext_B}', "");
+    Expect(0, 57344, '\p{-_is_JAMO_ext_B}', "");
+    Expect(1, 57344, '\p{^-_is_JAMO_ext_B}', "");
+    Expect(1, 57344, '\P{-_is_JAMO_ext_B}', "");
+    Expect(0, 57344, '\P{^-_is_JAMO_ext_B}', "");
+    Error('\p{ /a/In_Jamo_EXT_B}');
+    Error('\P{ /a/In_Jamo_EXT_B}');
     Expect(1, 55295, '\p{injamoextb}', "");
     Expect(0, 55295, '\p{^injamoextb}', "");
     Expect(0, 55295, '\P{injamoextb}', "");
@@ -100711,16 +101717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^injamoextb}', "");
     Expect(1, 57344, '\P{injamoextb}', "");
     Expect(0, 57344, '\P{^injamoextb}', "");
-    Expect(1, 55295, '\p{	In_jamo_Ext_B}', "");
-    Expect(0, 55295, '\p{^	In_jamo_Ext_B}', "");
-    Expect(0, 55295, '\P{	In_jamo_Ext_B}', "");
-    Expect(1, 55295, '\P{^	In_jamo_Ext_B}', "");
-    Expect(0, 57344, '\p{	In_jamo_Ext_B}', "");
-    Expect(1, 57344, '\p{^	In_jamo_Ext_B}', "");
-    Expect(1, 57344, '\P{	In_jamo_Ext_B}', "");
-    Expect(0, 57344, '\P{^	In_jamo_Ext_B}', "");
-    Error('\p{_/a/Hangul_Syllables}');
-    Error('\P{_/a/Hangul_Syllables}');
+    Expect(1, 55295, '\p{in_Jamo_ext_B}', "");
+    Expect(0, 55295, '\p{^in_Jamo_ext_B}', "");
+    Expect(0, 55295, '\P{in_Jamo_ext_B}', "");
+    Expect(1, 55295, '\P{^in_Jamo_ext_B}', "");
+    Expect(0, 57344, '\p{in_Jamo_ext_B}', "");
+    Expect(1, 57344, '\p{^in_Jamo_ext_B}', "");
+    Expect(1, 57344, '\P{in_Jamo_ext_B}', "");
+    Expect(0, 57344, '\P{^in_Jamo_ext_B}', "");
+    Error('\p{:= Hangul_syllables}');
+    Error('\P{:= Hangul_syllables}');
     Expect(1, 55215, '\p{hangulsyllables}', "");
     Expect(0, 55215, '\p{^hangulsyllables}', "");
     Expect(0, 55215, '\P{hangulsyllables}', "");
@@ -100729,16 +101735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 55216, '\p{^hangulsyllables}', "");
     Expect(1, 55216, '\P{hangulsyllables}', "");
     Expect(0, 55216, '\P{^hangulsyllables}', "");
-    Expect(1, 55215, '\p{ Hangul_syllables}', "");
-    Expect(0, 55215, '\p{^ Hangul_syllables}', "");
-    Expect(0, 55215, '\P{ Hangul_syllables}', "");
-    Expect(1, 55215, '\P{^ Hangul_syllables}', "");
-    Expect(0, 55216, '\p{ Hangul_syllables}', "");
-    Expect(1, 55216, '\p{^ Hangul_syllables}', "");
-    Expect(1, 55216, '\P{ Hangul_syllables}', "");
-    Expect(0, 55216, '\P{^ Hangul_syllables}', "");
-    Error('\p{-/a/Is_hangul_syllables}');
-    Error('\P{-/a/Is_hangul_syllables}');
+    Expect(1, 55215, '\p{ Hangul_Syllables}', "");
+    Expect(0, 55215, '\p{^ Hangul_Syllables}', "");
+    Expect(0, 55215, '\P{ Hangul_Syllables}', "");
+    Expect(1, 55215, '\P{^ Hangul_Syllables}', "");
+    Expect(0, 55216, '\p{ Hangul_Syllables}', "");
+    Expect(1, 55216, '\p{^ Hangul_Syllables}', "");
+    Expect(1, 55216, '\P{ Hangul_Syllables}', "");
+    Expect(0, 55216, '\P{^ Hangul_Syllables}', "");
+    Error('\p{:=-	Is_Hangul_syllables}');
+    Error('\P{:=-	Is_Hangul_syllables}');
     Expect(1, 55215, '\p{ishangulsyllables}', "");
     Expect(0, 55215, '\p{^ishangulsyllables}', "");
     Expect(0, 55215, '\P{ishangulsyllables}', "");
@@ -100747,16 +101753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 55216, '\p{^ishangulsyllables}', "");
     Expect(1, 55216, '\P{ishangulsyllables}', "");
     Expect(0, 55216, '\P{^ishangulsyllables}', "");
-    Expect(1, 55215, '\p{		Is_Hangul_SYLLABLES}', "");
-    Expect(0, 55215, '\p{^		Is_Hangul_SYLLABLES}', "");
-    Expect(0, 55215, '\P{		Is_Hangul_SYLLABLES}', "");
-    Expect(1, 55215, '\P{^		Is_Hangul_SYLLABLES}', "");
-    Expect(0, 55216, '\p{		Is_Hangul_SYLLABLES}', "");
-    Expect(1, 55216, '\p{^		Is_Hangul_SYLLABLES}', "");
-    Expect(1, 55216, '\P{		Is_Hangul_SYLLABLES}', "");
-    Expect(0, 55216, '\P{^		Is_Hangul_SYLLABLES}', "");
-    Error('\p{:=_In_HANGUL_Syllables}');
-    Error('\P{:=_In_HANGUL_Syllables}');
+    Expect(1, 55215, '\p{_-Is_Hangul_Syllables}', "");
+    Expect(0, 55215, '\p{^_-Is_Hangul_Syllables}', "");
+    Expect(0, 55215, '\P{_-Is_Hangul_Syllables}', "");
+    Expect(1, 55215, '\P{^_-Is_Hangul_Syllables}', "");
+    Expect(0, 55216, '\p{_-Is_Hangul_Syllables}', "");
+    Expect(1, 55216, '\p{^_-Is_Hangul_Syllables}', "");
+    Expect(1, 55216, '\P{_-Is_Hangul_Syllables}', "");
+    Expect(0, 55216, '\P{^_-Is_Hangul_Syllables}', "");
+    Error('\p{:=in_Hangul_syllables}');
+    Error('\P{:=in_Hangul_syllables}');
     Expect(1, 55215, '\p{inhangulsyllables}', "");
     Expect(0, 55215, '\p{^inhangulsyllables}', "");
     Expect(0, 55215, '\P{inhangulsyllables}', "");
@@ -100765,16 +101771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 55216, '\p{^inhangulsyllables}', "");
     Expect(1, 55216, '\P{inhangulsyllables}', "");
     Expect(0, 55216, '\P{^inhangulsyllables}', "");
-    Expect(1, 55215, '\p{--in_HANGUL_SYLLABLES}', "");
-    Expect(0, 55215, '\p{^--in_HANGUL_SYLLABLES}', "");
-    Expect(0, 55215, '\P{--in_HANGUL_SYLLABLES}', "");
-    Expect(1, 55215, '\P{^--in_HANGUL_SYLLABLES}', "");
-    Expect(0, 55216, '\p{--in_HANGUL_SYLLABLES}', "");
-    Expect(1, 55216, '\p{^--in_HANGUL_SYLLABLES}', "");
-    Expect(1, 55216, '\P{--in_HANGUL_SYLLABLES}', "");
-    Expect(0, 55216, '\P{^--in_HANGUL_SYLLABLES}', "");
-    Error('\p{-/a/in_Hangul}');
-    Error('\P{-/a/in_Hangul}');
+    Expect(1, 55215, '\p{ IN_Hangul_syllables}', "");
+    Expect(0, 55215, '\p{^ IN_Hangul_syllables}', "");
+    Expect(0, 55215, '\P{ IN_Hangul_syllables}', "");
+    Expect(1, 55215, '\P{^ IN_Hangul_syllables}', "");
+    Expect(0, 55216, '\p{ IN_Hangul_syllables}', "");
+    Expect(1, 55216, '\p{^ IN_Hangul_syllables}', "");
+    Expect(1, 55216, '\P{ IN_Hangul_syllables}', "");
+    Expect(0, 55216, '\P{^ IN_Hangul_syllables}', "");
+    Error('\p{	/a/In_Hangul}');
+    Error('\P{	/a/In_Hangul}');
     Expect(1, 55215, '\p{inhangul}', "");
     Expect(0, 55215, '\p{^inhangul}', "");
     Expect(0, 55215, '\P{inhangul}', "");
@@ -100783,16 +101789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 55216, '\p{^inhangul}', "");
     Expect(1, 55216, '\P{inhangul}', "");
     Expect(0, 55216, '\P{^inhangul}', "");
-    Expect(1, 55215, '\p{ IN_HANGUL}', "");
-    Expect(0, 55215, '\p{^ IN_HANGUL}', "");
-    Expect(0, 55215, '\P{ IN_HANGUL}', "");
-    Expect(1, 55215, '\P{^ IN_HANGUL}', "");
-    Expect(0, 55216, '\p{ IN_HANGUL}', "");
-    Expect(1, 55216, '\p{^ IN_HANGUL}', "");
-    Expect(1, 55216, '\P{ IN_HANGUL}', "");
-    Expect(0, 55216, '\P{^ IN_HANGUL}', "");
-    Error('\p{/a/		Hanifi_rohingya}');
-    Error('\P{/a/		Hanifi_rohingya}');
+    Expect(1, 55215, '\p{_In_Hangul}', "");
+    Expect(0, 55215, '\p{^_In_Hangul}', "");
+    Expect(0, 55215, '\P{_In_Hangul}', "");
+    Expect(1, 55215, '\P{^_In_Hangul}', "");
+    Expect(0, 55216, '\p{_In_Hangul}', "");
+    Expect(1, 55216, '\p{^_In_Hangul}', "");
+    Expect(1, 55216, '\P{_In_Hangul}', "");
+    Expect(0, 55216, '\P{^_In_Hangul}', "");
+    Error('\p{-/a/Hanifi_Rohingya}');
+    Error('\P{-/a/Hanifi_Rohingya}');
     Expect(1, 68921, '\p{hanifirohingya}', "");
     Expect(0, 68921, '\p{^hanifirohingya}', "");
     Expect(0, 68921, '\P{hanifirohingya}', "");
@@ -100801,16 +101807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68922, '\p{^hanifirohingya}', "");
     Expect(1, 68922, '\P{hanifirohingya}', "");
     Expect(0, 68922, '\P{^hanifirohingya}', "");
-    Expect(1, 68921, '\p{	_Hanifi_Rohingya}', "");
-    Expect(0, 68921, '\p{^	_Hanifi_Rohingya}', "");
-    Expect(0, 68921, '\P{	_Hanifi_Rohingya}', "");
-    Expect(1, 68921, '\P{^	_Hanifi_Rohingya}', "");
-    Expect(0, 68922, '\p{	_Hanifi_Rohingya}', "");
-    Expect(1, 68922, '\p{^	_Hanifi_Rohingya}', "");
-    Expect(1, 68922, '\P{	_Hanifi_Rohingya}', "");
-    Expect(0, 68922, '\P{^	_Hanifi_Rohingya}', "");
-    Error('\p{-	Is_Hanifi_rohingya/a/}');
-    Error('\P{-	Is_Hanifi_rohingya/a/}');
+    Expect(1, 68921, '\p{ hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\p{^ hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\P{ hanifi_ROHINGYA}', "");
+    Expect(1, 68921, '\P{^ hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\p{ hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\p{^ hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\P{ hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\P{^ hanifi_ROHINGYA}', "");
+    Error('\p{:=_-Is_HANIFI_Rohingya}');
+    Error('\P{:=_-Is_HANIFI_Rohingya}');
     Expect(1, 68921, '\p{ishanifirohingya}', "");
     Expect(0, 68921, '\p{^ishanifirohingya}', "");
     Expect(0, 68921, '\P{ishanifirohingya}', "");
@@ -100819,16 +101825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68922, '\p{^ishanifirohingya}', "");
     Expect(1, 68922, '\P{ishanifirohingya}', "");
     Expect(0, 68922, '\P{^ishanifirohingya}', "");
-    Expect(1, 68921, '\p{	IS_HANIFI_Rohingya}', "");
-    Expect(0, 68921, '\p{^	IS_HANIFI_Rohingya}', "");
-    Expect(0, 68921, '\P{	IS_HANIFI_Rohingya}', "");
-    Expect(1, 68921, '\P{^	IS_HANIFI_Rohingya}', "");
-    Expect(0, 68922, '\p{	IS_HANIFI_Rohingya}', "");
-    Expect(1, 68922, '\p{^	IS_HANIFI_Rohingya}', "");
-    Expect(1, 68922, '\P{	IS_HANIFI_Rohingya}', "");
-    Expect(0, 68922, '\P{^	IS_HANIFI_Rohingya}', "");
-    Error('\p{-:=Rohg}');
-    Error('\P{-:=Rohg}');
+    Expect(1, 68921, '\p{Is_Hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\p{^Is_Hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\P{Is_Hanifi_ROHINGYA}', "");
+    Expect(1, 68921, '\P{^Is_Hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\p{Is_Hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\p{^Is_Hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\P{Is_Hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\P{^Is_Hanifi_ROHINGYA}', "");
+    Error('\p{:=	 rohg}');
+    Error('\P{:=	 rohg}');
     Expect(1, 68921, '\p{rohg}', "");
     Expect(0, 68921, '\p{^rohg}', "");
     Expect(0, 68921, '\P{rohg}', "");
@@ -100837,16 +101843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68922, '\p{^rohg}', "");
     Expect(1, 68922, '\P{rohg}', "");
     Expect(0, 68922, '\P{^rohg}', "");
-    Expect(1, 68921, '\p{_ROHG}', "");
-    Expect(0, 68921, '\p{^_ROHG}', "");
-    Expect(0, 68921, '\P{_ROHG}', "");
-    Expect(1, 68921, '\P{^_ROHG}', "");
-    Expect(0, 68922, '\p{_ROHG}', "");
-    Expect(1, 68922, '\p{^_ROHG}', "");
-    Expect(1, 68922, '\P{_ROHG}', "");
-    Expect(0, 68922, '\P{^_ROHG}', "");
-    Error('\p{:=_Is_Rohg}');
-    Error('\P{:=_Is_Rohg}');
+    Expect(1, 68921, '\p{		rohg}', "");
+    Expect(0, 68921, '\p{^		rohg}', "");
+    Expect(0, 68921, '\P{		rohg}', "");
+    Expect(1, 68921, '\P{^		rohg}', "");
+    Expect(0, 68922, '\p{		rohg}', "");
+    Expect(1, 68922, '\p{^		rohg}', "");
+    Expect(1, 68922, '\P{		rohg}', "");
+    Expect(0, 68922, '\P{^		rohg}', "");
+    Error('\p{Is_Rohg:=}');
+    Error('\P{Is_Rohg:=}');
     Expect(1, 68921, '\p{isrohg}', "");
     Expect(0, 68921, '\p{^isrohg}', "");
     Expect(0, 68921, '\P{isrohg}', "");
@@ -100855,16 +101861,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68922, '\p{^isrohg}', "");
     Expect(1, 68922, '\P{isrohg}', "");
     Expect(0, 68922, '\P{^isrohg}', "");
-    Expect(1, 68921, '\p{_Is_rohg}', "");
-    Expect(0, 68921, '\p{^_Is_rohg}', "");
-    Expect(0, 68921, '\P{_Is_rohg}', "");
-    Expect(1, 68921, '\P{^_Is_rohg}', "");
-    Expect(0, 68922, '\p{_Is_rohg}', "");
-    Expect(1, 68922, '\p{^_Is_rohg}', "");
-    Expect(1, 68922, '\P{_Is_rohg}', "");
-    Expect(0, 68922, '\P{^_Is_rohg}', "");
-    Error('\p{/a/hanunoo}');
-    Error('\P{/a/hanunoo}');
+    Expect(1, 68921, '\p{	 Is_rohg}', "");
+    Expect(0, 68921, '\p{^	 Is_rohg}', "");
+    Expect(0, 68921, '\P{	 Is_rohg}', "");
+    Expect(1, 68921, '\P{^	 Is_rohg}', "");
+    Expect(0, 68922, '\p{	 Is_rohg}', "");
+    Expect(1, 68922, '\p{^	 Is_rohg}', "");
+    Expect(1, 68922, '\P{	 Is_rohg}', "");
+    Expect(0, 68922, '\P{^	 Is_rohg}', "");
+    Error('\p{/a/Hanunoo}');
+    Error('\P{/a/Hanunoo}');
     Expect(1, 5942, '\p{hanunoo}', "");
     Expect(0, 5942, '\p{^hanunoo}', "");
     Expect(0, 5942, '\P{hanunoo}', "");
@@ -100873,16 +101879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5943, '\p{^hanunoo}', "");
     Expect(1, 5943, '\P{hanunoo}', "");
     Expect(0, 5943, '\P{^hanunoo}', "");
-    Expect(1, 5942, '\p{  Hanunoo}', "");
-    Expect(0, 5942, '\p{^  Hanunoo}', "");
-    Expect(0, 5942, '\P{  Hanunoo}', "");
-    Expect(1, 5942, '\P{^  Hanunoo}', "");
-    Expect(0, 5943, '\p{  Hanunoo}', "");
-    Expect(1, 5943, '\p{^  Hanunoo}', "");
-    Expect(1, 5943, '\P{  Hanunoo}', "");
-    Expect(0, 5943, '\P{^  Hanunoo}', "");
-    Error('\p{-_is_Hanunoo:=}');
-    Error('\P{-_is_Hanunoo:=}');
+    Expect(1, 5942, '\p{-_Hanunoo}', "");
+    Expect(0, 5942, '\p{^-_Hanunoo}', "");
+    Expect(0, 5942, '\P{-_Hanunoo}', "");
+    Expect(1, 5942, '\P{^-_Hanunoo}', "");
+    Expect(0, 5943, '\p{-_Hanunoo}', "");
+    Expect(1, 5943, '\p{^-_Hanunoo}', "");
+    Expect(1, 5943, '\P{-_Hanunoo}', "");
+    Expect(0, 5943, '\P{^-_Hanunoo}', "");
+    Error('\p{	IS_Hanunoo:=}');
+    Error('\P{	IS_Hanunoo:=}');
     Expect(1, 5942, '\p{ishanunoo}', "");
     Expect(0, 5942, '\p{^ishanunoo}', "");
     Expect(0, 5942, '\P{ishanunoo}', "");
@@ -100891,16 +101897,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5943, '\p{^ishanunoo}', "");
     Expect(1, 5943, '\P{ishanunoo}', "");
     Expect(0, 5943, '\P{^ishanunoo}', "");
-    Expect(1, 5942, '\p{-is_Hanunoo}', "");
-    Expect(0, 5942, '\p{^-is_Hanunoo}', "");
-    Expect(0, 5942, '\P{-is_Hanunoo}', "");
-    Expect(1, 5942, '\P{^-is_Hanunoo}', "");
-    Expect(0, 5943, '\p{-is_Hanunoo}', "");
-    Expect(1, 5943, '\p{^-is_Hanunoo}', "");
-    Expect(1, 5943, '\P{-is_Hanunoo}', "");
-    Expect(0, 5943, '\P{^-is_Hanunoo}', "");
-    Error('\p{	/a/HANO}');
-    Error('\P{	/a/HANO}');
+    Expect(1, 5942, '\p{-_Is_Hanunoo}', "");
+    Expect(0, 5942, '\p{^-_Is_Hanunoo}', "");
+    Expect(0, 5942, '\P{-_Is_Hanunoo}', "");
+    Expect(1, 5942, '\P{^-_Is_Hanunoo}', "");
+    Expect(0, 5943, '\p{-_Is_Hanunoo}', "");
+    Expect(1, 5943, '\p{^-_Is_Hanunoo}', "");
+    Expect(1, 5943, '\P{-_Is_Hanunoo}', "");
+    Expect(0, 5943, '\P{^-_Is_Hanunoo}', "");
+    Error('\p{:=	 HANO}');
+    Error('\P{:=	 HANO}');
     Expect(1, 5942, '\p{hano}', "");
     Expect(0, 5942, '\p{^hano}', "");
     Expect(0, 5942, '\P{hano}', "");
@@ -100909,16 +101915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5943, '\p{^hano}', "");
     Expect(1, 5943, '\P{hano}', "");
     Expect(0, 5943, '\P{^hano}', "");
-    Expect(1, 5942, '\p{ hano}', "");
-    Expect(0, 5942, '\p{^ hano}', "");
-    Expect(0, 5942, '\P{ hano}', "");
-    Expect(1, 5942, '\P{^ hano}', "");
-    Expect(0, 5943, '\p{ hano}', "");
-    Expect(1, 5943, '\p{^ hano}', "");
-    Expect(1, 5943, '\P{ hano}', "");
-    Expect(0, 5943, '\P{^ hano}', "");
-    Error('\p{/a/IS_hano}');
-    Error('\P{/a/IS_hano}');
+    Expect(1, 5942, '\p{--HANO}', "");
+    Expect(0, 5942, '\p{^--HANO}', "");
+    Expect(0, 5942, '\P{--HANO}', "");
+    Expect(1, 5942, '\P{^--HANO}', "");
+    Expect(0, 5943, '\p{--HANO}', "");
+    Expect(1, 5943, '\p{^--HANO}', "");
+    Expect(1, 5943, '\P{--HANO}', "");
+    Expect(0, 5943, '\P{^--HANO}', "");
+    Error('\p{ -Is_Hano/a/}');
+    Error('\P{ -Is_Hano/a/}');
     Expect(1, 5942, '\p{ishano}', "");
     Expect(0, 5942, '\p{^ishano}', "");
     Expect(0, 5942, '\P{ishano}', "");
@@ -100927,16 +101933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5943, '\p{^ishano}', "");
     Expect(1, 5943, '\P{ishano}', "");
     Expect(0, 5943, '\P{^ishano}', "");
-    Expect(1, 5942, '\p{_IS_HANO}', "");
-    Expect(0, 5942, '\p{^_IS_HANO}', "");
-    Expect(0, 5942, '\P{_IS_HANO}', "");
-    Expect(1, 5942, '\P{^_IS_HANO}', "");
-    Expect(0, 5943, '\p{_IS_HANO}', "");
-    Expect(1, 5943, '\p{^_IS_HANO}', "");
-    Expect(1, 5943, '\P{_IS_HANO}', "");
-    Expect(0, 5943, '\P{^_IS_HANO}', "");
-    Error('\p{:=_ Hatran}');
-    Error('\P{:=_ Hatran}');
+    Expect(1, 5942, '\p{_is_HANO}', "");
+    Expect(0, 5942, '\p{^_is_HANO}', "");
+    Expect(0, 5942, '\P{_is_HANO}', "");
+    Expect(1, 5942, '\P{^_is_HANO}', "");
+    Expect(0, 5943, '\p{_is_HANO}', "");
+    Expect(1, 5943, '\p{^_is_HANO}', "");
+    Expect(1, 5943, '\P{_is_HANO}', "");
+    Expect(0, 5943, '\P{^_is_HANO}', "");
+    Error('\p{/a/hatran}');
+    Error('\P{/a/hatran}');
     Expect(1, 67839, '\p{hatran}', "");
     Expect(0, 67839, '\p{^hatran}', "");
     Expect(0, 67839, '\P{hatran}', "");
@@ -100945,16 +101951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67840, '\p{^hatran}', "");
     Expect(1, 67840, '\P{hatran}', "");
     Expect(0, 67840, '\P{^hatran}', "");
-    Expect(1, 67839, '\p{-	Hatran}', "");
-    Expect(0, 67839, '\p{^-	Hatran}', "");
-    Expect(0, 67839, '\P{-	Hatran}', "");
-    Expect(1, 67839, '\P{^-	Hatran}', "");
-    Expect(0, 67840, '\p{-	Hatran}', "");
-    Expect(1, 67840, '\p{^-	Hatran}', "");
-    Expect(1, 67840, '\P{-	Hatran}', "");
-    Expect(0, 67840, '\P{^-	Hatran}', "");
-    Error('\p{:=is_Hatran}');
-    Error('\P{:=is_Hatran}');
+    Expect(1, 67839, '\p{	Hatran}', "");
+    Expect(0, 67839, '\p{^	Hatran}', "");
+    Expect(0, 67839, '\P{	Hatran}', "");
+    Expect(1, 67839, '\P{^	Hatran}', "");
+    Expect(0, 67840, '\p{	Hatran}', "");
+    Expect(1, 67840, '\p{^	Hatran}', "");
+    Expect(1, 67840, '\P{	Hatran}', "");
+    Expect(0, 67840, '\P{^	Hatran}', "");
+    Error('\p{:=_is_hatran}');
+    Error('\P{:=_is_hatran}');
     Expect(1, 67839, '\p{ishatran}', "");
     Expect(0, 67839, '\p{^ishatran}', "");
     Expect(0, 67839, '\P{ishatran}', "");
@@ -100963,16 +101969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67840, '\p{^ishatran}', "");
     Expect(1, 67840, '\P{ishatran}', "");
     Expect(0, 67840, '\P{^ishatran}', "");
-    Expect(1, 67839, '\p{_	is_hatran}', "");
-    Expect(0, 67839, '\p{^_	is_hatran}', "");
-    Expect(0, 67839, '\P{_	is_hatran}', "");
-    Expect(1, 67839, '\P{^_	is_hatran}', "");
-    Expect(0, 67840, '\p{_	is_hatran}', "");
-    Expect(1, 67840, '\p{^_	is_hatran}', "");
-    Expect(1, 67840, '\P{_	is_hatran}', "");
-    Expect(0, 67840, '\P{^_	is_hatran}', "");
-    Error('\p{-/a/HATR}');
-    Error('\P{-/a/HATR}');
+    Expect(1, 67839, '\p{_Is_hatran}', "");
+    Expect(0, 67839, '\p{^_Is_hatran}', "");
+    Expect(0, 67839, '\P{_Is_hatran}', "");
+    Expect(1, 67839, '\P{^_Is_hatran}', "");
+    Expect(0, 67840, '\p{_Is_hatran}', "");
+    Expect(1, 67840, '\p{^_Is_hatran}', "");
+    Expect(1, 67840, '\P{_Is_hatran}', "");
+    Expect(0, 67840, '\P{^_Is_hatran}', "");
+    Error('\p{-	hatr:=}');
+    Error('\P{-	hatr:=}');
     Expect(1, 67839, '\p{hatr}', "");
     Expect(0, 67839, '\p{^hatr}', "");
     Expect(0, 67839, '\P{hatr}', "");
@@ -100981,16 +101987,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67840, '\p{^hatr}', "");
     Expect(1, 67840, '\P{hatr}', "");
     Expect(0, 67840, '\P{^hatr}', "");
-    Expect(1, 67839, '\p{_	Hatr}', "");
-    Expect(0, 67839, '\p{^_	Hatr}', "");
-    Expect(0, 67839, '\P{_	Hatr}', "");
-    Expect(1, 67839, '\P{^_	Hatr}', "");
-    Expect(0, 67840, '\p{_	Hatr}', "");
-    Expect(1, 67840, '\p{^_	Hatr}', "");
-    Expect(1, 67840, '\P{_	Hatr}', "");
-    Expect(0, 67840, '\P{^_	Hatr}', "");
-    Error('\p{/a/--is_Hatr}');
-    Error('\P{/a/--is_Hatr}');
+    Expect(1, 67839, '\p{ Hatr}', "");
+    Expect(0, 67839, '\p{^ Hatr}', "");
+    Expect(0, 67839, '\P{ Hatr}', "");
+    Expect(1, 67839, '\P{^ Hatr}', "");
+    Expect(0, 67840, '\p{ Hatr}', "");
+    Expect(1, 67840, '\p{^ Hatr}', "");
+    Expect(1, 67840, '\P{ Hatr}', "");
+    Expect(0, 67840, '\P{^ Hatr}', "");
+    Error('\p{ /a/Is_hatr}');
+    Error('\P{ /a/Is_hatr}');
     Expect(1, 67839, '\p{ishatr}', "");
     Expect(0, 67839, '\p{^ishatr}', "");
     Expect(0, 67839, '\P{ishatr}', "");
@@ -100999,16 +102005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67840, '\p{^ishatr}', "");
     Expect(1, 67840, '\P{ishatr}', "");
     Expect(0, 67840, '\P{^ishatr}', "");
-    Expect(1, 67839, '\p{_Is_hatr}', "");
-    Expect(0, 67839, '\p{^_Is_hatr}', "");
-    Expect(0, 67839, '\P{_Is_hatr}', "");
-    Expect(1, 67839, '\P{^_Is_hatr}', "");
-    Expect(0, 67840, '\p{_Is_hatr}', "");
-    Expect(1, 67840, '\p{^_Is_hatr}', "");
-    Expect(1, 67840, '\P{_Is_hatr}', "");
-    Expect(0, 67840, '\P{^_Is_hatr}', "");
-    Error('\p{/a/-	Hebrew}');
-    Error('\P{/a/-	Hebrew}');
+    Expect(1, 67839, '\p{-IS_Hatr}', "");
+    Expect(0, 67839, '\p{^-IS_Hatr}', "");
+    Expect(0, 67839, '\P{-IS_Hatr}', "");
+    Expect(1, 67839, '\P{^-IS_Hatr}', "");
+    Expect(0, 67840, '\p{-IS_Hatr}', "");
+    Expect(1, 67840, '\p{^-IS_Hatr}', "");
+    Expect(1, 67840, '\P{-IS_Hatr}', "");
+    Expect(0, 67840, '\P{^-IS_Hatr}', "");
+    Error('\p{ /a/Hebrew}');
+    Error('\P{ /a/Hebrew}');
     Expect(1, 64335, '\p{hebrew}', "");
     Expect(0, 64335, '\p{^hebrew}', "");
     Expect(0, 64335, '\P{hebrew}', "");
@@ -101017,16 +102023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^hebrew}', "");
     Expect(1, 64336, '\P{hebrew}', "");
     Expect(0, 64336, '\P{^hebrew}', "");
-    Expect(1, 64335, '\p{-_hebrew}', "");
-    Expect(0, 64335, '\p{^-_hebrew}', "");
-    Expect(0, 64335, '\P{-_hebrew}', "");
-    Expect(1, 64335, '\P{^-_hebrew}', "");
-    Expect(0, 64336, '\p{-_hebrew}', "");
-    Expect(1, 64336, '\p{^-_hebrew}', "");
-    Expect(1, 64336, '\P{-_hebrew}', "");
-    Expect(0, 64336, '\P{^-_hebrew}', "");
-    Error('\p{-	Is_hebrew:=}');
-    Error('\P{-	Is_hebrew:=}');
+    Expect(1, 64335, '\p{	_HEBREW}', "");
+    Expect(0, 64335, '\p{^	_HEBREW}', "");
+    Expect(0, 64335, '\P{	_HEBREW}', "");
+    Expect(1, 64335, '\P{^	_HEBREW}', "");
+    Expect(0, 64336, '\p{	_HEBREW}', "");
+    Expect(1, 64336, '\p{^	_HEBREW}', "");
+    Expect(1, 64336, '\P{	_HEBREW}', "");
+    Expect(0, 64336, '\P{^	_HEBREW}', "");
+    Error('\p{:=	-Is_HEBREW}');
+    Error('\P{:=	-Is_HEBREW}');
     Expect(1, 64335, '\p{ishebrew}', "");
     Expect(0, 64335, '\p{^ishebrew}', "");
     Expect(0, 64335, '\P{ishebrew}', "");
@@ -101035,16 +102041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^ishebrew}', "");
     Expect(1, 64336, '\P{ishebrew}', "");
     Expect(0, 64336, '\P{^ishebrew}', "");
-    Expect(1, 64335, '\p{	-Is_hebrew}', "");
-    Expect(0, 64335, '\p{^	-Is_hebrew}', "");
-    Expect(0, 64335, '\P{	-Is_hebrew}', "");
-    Expect(1, 64335, '\P{^	-Is_hebrew}', "");
-    Expect(0, 64336, '\p{	-Is_hebrew}', "");
-    Expect(1, 64336, '\p{^	-Is_hebrew}', "");
-    Expect(1, 64336, '\P{	-Is_hebrew}', "");
-    Expect(0, 64336, '\P{^	-Is_hebrew}', "");
-    Error('\p{ hebr:=}');
-    Error('\P{ hebr:=}');
+    Expect(1, 64335, '\p{	_Is_HEBREW}', "");
+    Expect(0, 64335, '\p{^	_Is_HEBREW}', "");
+    Expect(0, 64335, '\P{	_Is_HEBREW}', "");
+    Expect(1, 64335, '\P{^	_Is_HEBREW}', "");
+    Expect(0, 64336, '\p{	_Is_HEBREW}', "");
+    Expect(1, 64336, '\p{^	_Is_HEBREW}', "");
+    Expect(1, 64336, '\P{	_Is_HEBREW}', "");
+    Expect(0, 64336, '\P{^	_Is_HEBREW}', "");
+    Error('\p{- Hebr/a/}');
+    Error('\P{- Hebr/a/}');
     Expect(1, 64335, '\p{hebr}', "");
     Expect(0, 64335, '\p{^hebr}', "");
     Expect(0, 64335, '\P{hebr}', "");
@@ -101053,16 +102059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^hebr}', "");
     Expect(1, 64336, '\P{hebr}', "");
     Expect(0, 64336, '\P{^hebr}', "");
-    Expect(1, 64335, '\p{-_HEBR}', "");
-    Expect(0, 64335, '\p{^-_HEBR}', "");
-    Expect(0, 64335, '\P{-_HEBR}', "");
-    Expect(1, 64335, '\P{^-_HEBR}', "");
-    Expect(0, 64336, '\p{-_HEBR}', "");
-    Expect(1, 64336, '\p{^-_HEBR}', "");
-    Expect(1, 64336, '\P{-_HEBR}', "");
-    Expect(0, 64336, '\P{^-_HEBR}', "");
-    Error('\p{_:=is_Hebr}');
-    Error('\P{_:=is_Hebr}');
+    Expect(1, 64335, '\p{Hebr}', "");
+    Expect(0, 64335, '\p{^Hebr}', "");
+    Expect(0, 64335, '\P{Hebr}', "");
+    Expect(1, 64335, '\P{^Hebr}', "");
+    Expect(0, 64336, '\p{Hebr}', "");
+    Expect(1, 64336, '\p{^Hebr}', "");
+    Expect(1, 64336, '\P{Hebr}', "");
+    Expect(0, 64336, '\P{^Hebr}', "");
+    Error('\p{	:=Is_hebr}');
+    Error('\P{	:=Is_hebr}');
     Expect(1, 64335, '\p{ishebr}', "");
     Expect(0, 64335, '\p{^ishebr}', "");
     Expect(0, 64335, '\P{ishebr}', "");
@@ -101071,16 +102077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64336, '\p{^ishebr}', "");
     Expect(1, 64336, '\P{ishebr}', "");
     Expect(0, 64336, '\P{^ishebr}', "");
-    Expect(1, 64335, '\p{_	IS_Hebr}', "");
-    Expect(0, 64335, '\p{^_	IS_Hebr}', "");
-    Expect(0, 64335, '\P{_	IS_Hebr}', "");
-    Expect(1, 64335, '\P{^_	IS_Hebr}', "");
-    Expect(0, 64336, '\p{_	IS_Hebr}', "");
-    Expect(1, 64336, '\p{^_	IS_Hebr}', "");
-    Expect(1, 64336, '\P{_	IS_Hebr}', "");
-    Expect(0, 64336, '\P{^_	IS_Hebr}', "");
-    Error('\p{/a/-_High_private_use_surrogates}');
-    Error('\P{/a/-_High_private_use_surrogates}');
+    Expect(1, 64335, '\p{_-Is_HEBR}', "");
+    Expect(0, 64335, '\p{^_-Is_HEBR}', "");
+    Expect(0, 64335, '\P{_-Is_HEBR}', "");
+    Expect(1, 64335, '\P{^_-Is_HEBR}', "");
+    Expect(0, 64336, '\p{_-Is_HEBR}', "");
+    Expect(1, 64336, '\p{^_-Is_HEBR}', "");
+    Expect(1, 64336, '\P{_-Is_HEBR}', "");
+    Expect(0, 64336, '\P{^_-Is_HEBR}', "");
+    Error('\p{/a/_high_PRIVATE_Use_SURROGATES}');
+    Error('\P{/a/_high_PRIVATE_Use_SURROGATES}');
     Expect(1, 56319, '\p{highprivateusesurrogates}', "");
     Expect(0, 56319, '\p{^highprivateusesurrogates}', "");
     Expect(0, 56319, '\P{highprivateusesurrogates}', "");
@@ -101089,16 +102095,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^highprivateusesurrogates}', "");
     Expect(1, 57344, '\P{highprivateusesurrogates}', "");
     Expect(0, 57344, '\P{^highprivateusesurrogates}', "");
-    Expect(1, 56319, '\p{ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(0, 56319, '\p{^ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(0, 56319, '\P{ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(1, 56319, '\P{^ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(0, 57344, '\p{ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(1, 57344, '\p{^ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(1, 57344, '\P{ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Expect(0, 57344, '\P{^ 	HIGH_PRIVATE_Use_SURROGATES}', "");
-    Error('\p{	:=Is_High_Private_USE_Surrogates}');
-    Error('\P{	:=Is_High_Private_USE_Surrogates}');
+    Expect(1, 56319, '\p{ -High_Private_Use_Surrogates}', "");
+    Expect(0, 56319, '\p{^ -High_Private_Use_Surrogates}', "");
+    Expect(0, 56319, '\P{ -High_Private_Use_Surrogates}', "");
+    Expect(1, 56319, '\P{^ -High_Private_Use_Surrogates}', "");
+    Expect(0, 57344, '\p{ -High_Private_Use_Surrogates}', "");
+    Expect(1, 57344, '\p{^ -High_Private_Use_Surrogates}', "");
+    Expect(1, 57344, '\P{ -High_Private_Use_Surrogates}', "");
+    Expect(0, 57344, '\P{^ -High_Private_Use_Surrogates}', "");
+    Error('\p{ :=IS_HIGH_private_USE_Surrogates}');
+    Error('\P{ :=IS_HIGH_private_USE_Surrogates}');
     Expect(1, 56319, '\p{ishighprivateusesurrogates}', "");
     Expect(0, 56319, '\p{^ishighprivateusesurrogates}', "");
     Expect(0, 56319, '\P{ishighprivateusesurrogates}', "");
@@ -101107,16 +102113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^ishighprivateusesurrogates}', "");
     Expect(1, 57344, '\P{ishighprivateusesurrogates}', "");
     Expect(0, 57344, '\P{^ishighprivateusesurrogates}', "");
-    Expect(1, 56319, '\p{Is_High_private_use_SURROGATES}', "");
-    Expect(0, 56319, '\p{^Is_High_private_use_SURROGATES}', "");
-    Expect(0, 56319, '\P{Is_High_private_use_SURROGATES}', "");
-    Expect(1, 56319, '\P{^Is_High_private_use_SURROGATES}', "");
-    Expect(0, 57344, '\p{Is_High_private_use_SURROGATES}', "");
-    Expect(1, 57344, '\p{^Is_High_private_use_SURROGATES}', "");
-    Expect(1, 57344, '\P{Is_High_private_use_SURROGATES}', "");
-    Expect(0, 57344, '\P{^Is_High_private_use_SURROGATES}', "");
-    Error('\p{	/a/in_high_Private_use_Surrogates}');
-    Error('\P{	/a/in_high_Private_use_Surrogates}');
+    Expect(1, 56319, '\p{_-Is_High_Private_USE_surrogates}', "");
+    Expect(0, 56319, '\p{^_-Is_High_Private_USE_surrogates}', "");
+    Expect(0, 56319, '\P{_-Is_High_Private_USE_surrogates}', "");
+    Expect(1, 56319, '\P{^_-Is_High_Private_USE_surrogates}', "");
+    Expect(0, 57344, '\p{_-Is_High_Private_USE_surrogates}', "");
+    Expect(1, 57344, '\p{^_-Is_High_Private_USE_surrogates}', "");
+    Expect(1, 57344, '\P{_-Is_High_Private_USE_surrogates}', "");
+    Expect(0, 57344, '\P{^_-Is_High_Private_USE_surrogates}', "");
+    Error('\p{/a/	in_HIGH_Private_USE_Surrogates}');
+    Error('\P{/a/	in_HIGH_Private_USE_Surrogates}');
     Expect(1, 56319, '\p{inhighprivateusesurrogates}', "");
     Expect(0, 56319, '\p{^inhighprivateusesurrogates}', "");
     Expect(0, 56319, '\P{inhighprivateusesurrogates}', "");
@@ -101125,16 +102131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^inhighprivateusesurrogates}', "");
     Expect(1, 57344, '\P{inhighprivateusesurrogates}', "");
     Expect(0, 57344, '\P{^inhighprivateusesurrogates}', "");
-    Expect(1, 56319, '\p{In_High_Private_Use_SURROGATES}', "");
-    Expect(0, 56319, '\p{^In_High_Private_Use_SURROGATES}', "");
-    Expect(0, 56319, '\P{In_High_Private_Use_SURROGATES}', "");
-    Expect(1, 56319, '\P{^In_High_Private_Use_SURROGATES}', "");
-    Expect(0, 57344, '\p{In_High_Private_Use_SURROGATES}', "");
-    Expect(1, 57344, '\p{^In_High_Private_Use_SURROGATES}', "");
-    Expect(1, 57344, '\P{In_High_Private_Use_SURROGATES}', "");
-    Expect(0, 57344, '\P{^In_High_Private_Use_SURROGATES}', "");
-    Error('\p{/a/_HIGH_PU_Surrogates}');
-    Error('\P{/a/_HIGH_PU_Surrogates}');
+    Expect(1, 56319, '\p{_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(0, 56319, '\p{^_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(0, 56319, '\P{_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(1, 56319, '\P{^_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(0, 57344, '\p{_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(1, 57344, '\p{^_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(1, 57344, '\P{_-IN_HIGH_private_use_Surrogates}', "");
+    Expect(0, 57344, '\P{^_-IN_HIGH_private_use_Surrogates}', "");
+    Error('\p{:=_ HIGH_PU_surrogates}');
+    Error('\P{:=_ HIGH_PU_surrogates}');
     Expect(1, 56319, '\p{highpusurrogates}', "");
     Expect(0, 56319, '\p{^highpusurrogates}', "");
     Expect(0, 56319, '\P{highpusurrogates}', "");
@@ -101143,16 +102149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^highpusurrogates}', "");
     Expect(1, 57344, '\P{highpusurrogates}', "");
     Expect(0, 57344, '\P{^highpusurrogates}', "");
-    Expect(1, 56319, '\p{-high_PU_SURROGATES}', "");
-    Expect(0, 56319, '\p{^-high_PU_SURROGATES}', "");
-    Expect(0, 56319, '\P{-high_PU_SURROGATES}', "");
-    Expect(1, 56319, '\P{^-high_PU_SURROGATES}', "");
-    Expect(0, 57344, '\p{-high_PU_SURROGATES}', "");
-    Expect(1, 57344, '\p{^-high_PU_SURROGATES}', "");
-    Expect(1, 57344, '\P{-high_PU_SURROGATES}', "");
-    Expect(0, 57344, '\P{^-high_PU_SURROGATES}', "");
-    Error('\p{	-Is_High_PU_Surrogates:=}');
-    Error('\P{	-Is_High_PU_Surrogates:=}');
+    Expect(1, 56319, '\p{ High_PU_Surrogates}', "");
+    Expect(0, 56319, '\p{^ High_PU_Surrogates}', "");
+    Expect(0, 56319, '\P{ High_PU_Surrogates}', "");
+    Expect(1, 56319, '\P{^ High_PU_Surrogates}', "");
+    Expect(0, 57344, '\p{ High_PU_Surrogates}', "");
+    Expect(1, 57344, '\p{^ High_PU_Surrogates}', "");
+    Expect(1, 57344, '\P{ High_PU_Surrogates}', "");
+    Expect(0, 57344, '\P{^ High_PU_Surrogates}', "");
+    Error('\p{_:=Is_High_PU_surrogates}');
+    Error('\P{_:=Is_High_PU_surrogates}');
     Expect(1, 56319, '\p{ishighpusurrogates}', "");
     Expect(0, 56319, '\p{^ishighpusurrogates}', "");
     Expect(0, 56319, '\P{ishighpusurrogates}', "");
@@ -101161,16 +102167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^ishighpusurrogates}', "");
     Expect(1, 57344, '\P{ishighpusurrogates}', "");
     Expect(0, 57344, '\P{^ishighpusurrogates}', "");
-    Expect(1, 56319, '\p{_	is_High_PU_Surrogates}', "");
-    Expect(0, 56319, '\p{^_	is_High_PU_Surrogates}', "");
-    Expect(0, 56319, '\P{_	is_High_PU_Surrogates}', "");
-    Expect(1, 56319, '\P{^_	is_High_PU_Surrogates}', "");
-    Expect(0, 57344, '\p{_	is_High_PU_Surrogates}', "");
-    Expect(1, 57344, '\p{^_	is_High_PU_Surrogates}', "");
-    Expect(1, 57344, '\P{_	is_High_PU_Surrogates}', "");
-    Expect(0, 57344, '\P{^_	is_High_PU_Surrogates}', "");
-    Error('\p{_:=In_high_PU_Surrogates}');
-    Error('\P{_:=In_high_PU_Surrogates}');
+    Expect(1, 56319, '\p{		Is_high_pu_surrogates}', "");
+    Expect(0, 56319, '\p{^		Is_high_pu_surrogates}', "");
+    Expect(0, 56319, '\P{		Is_high_pu_surrogates}', "");
+    Expect(1, 56319, '\P{^		Is_high_pu_surrogates}', "");
+    Expect(0, 57344, '\p{		Is_high_pu_surrogates}', "");
+    Expect(1, 57344, '\p{^		Is_high_pu_surrogates}', "");
+    Expect(1, 57344, '\P{		Is_high_pu_surrogates}', "");
+    Expect(0, 57344, '\P{^		Is_high_pu_surrogates}', "");
+    Error('\p{:= In_High_PU_Surrogates}');
+    Error('\P{:= In_High_PU_Surrogates}');
     Expect(1, 56319, '\p{inhighpusurrogates}', "");
     Expect(0, 56319, '\p{^inhighpusurrogates}', "");
     Expect(0, 56319, '\P{inhighpusurrogates}', "");
@@ -101179,16 +102185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^inhighpusurrogates}', "");
     Expect(1, 57344, '\P{inhighpusurrogates}', "");
     Expect(0, 57344, '\P{^inhighpusurrogates}', "");
-    Expect(1, 56319, '\p{_in_High_PU_Surrogates}', "");
-    Expect(0, 56319, '\p{^_in_High_PU_Surrogates}', "");
-    Expect(0, 56319, '\P{_in_High_PU_Surrogates}', "");
-    Expect(1, 56319, '\P{^_in_High_PU_Surrogates}', "");
-    Expect(0, 57344, '\p{_in_High_PU_Surrogates}', "");
-    Expect(1, 57344, '\p{^_in_High_PU_Surrogates}', "");
-    Expect(1, 57344, '\P{_in_High_PU_Surrogates}', "");
-    Expect(0, 57344, '\P{^_in_High_PU_Surrogates}', "");
-    Error('\p{	:=high_Surrogates}');
-    Error('\P{	:=high_Surrogates}');
+    Expect(1, 56319, '\p{	In_high_PU_Surrogates}', "");
+    Expect(0, 56319, '\p{^	In_high_PU_Surrogates}', "");
+    Expect(0, 56319, '\P{	In_high_PU_Surrogates}', "");
+    Expect(1, 56319, '\P{^	In_high_PU_Surrogates}', "");
+    Expect(0, 57344, '\p{	In_high_PU_Surrogates}', "");
+    Expect(1, 57344, '\p{^	In_high_PU_Surrogates}', "");
+    Expect(1, 57344, '\P{	In_high_PU_Surrogates}', "");
+    Expect(0, 57344, '\P{^	In_high_PU_Surrogates}', "");
+    Error('\p{	:=high_surrogates}');
+    Error('\P{	:=high_surrogates}');
     Expect(1, 56191, '\p{highsurrogates}', "");
     Expect(0, 56191, '\p{^highsurrogates}', "");
     Expect(0, 56191, '\P{highsurrogates}', "");
@@ -101197,16 +102203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^highsurrogates}', "");
     Expect(1, 57344, '\P{highsurrogates}', "");
     Expect(0, 57344, '\P{^highsurrogates}', "");
-    Expect(1, 56191, '\p{ _HIGH_SURROGATES}', "");
-    Expect(0, 56191, '\p{^ _HIGH_SURROGATES}', "");
-    Expect(0, 56191, '\P{ _HIGH_SURROGATES}', "");
-    Expect(1, 56191, '\P{^ _HIGH_SURROGATES}', "");
-    Expect(0, 57344, '\p{ _HIGH_SURROGATES}', "");
-    Expect(1, 57344, '\p{^ _HIGH_SURROGATES}', "");
-    Expect(1, 57344, '\P{ _HIGH_SURROGATES}', "");
-    Expect(0, 57344, '\P{^ _HIGH_SURROGATES}', "");
-    Error('\p{ /a/IS_high_surrogates}');
-    Error('\P{ /a/IS_high_surrogates}');
+    Expect(1, 56191, '\p{-	high_SURROGATES}', "");
+    Expect(0, 56191, '\p{^-	high_SURROGATES}', "");
+    Expect(0, 56191, '\P{-	high_SURROGATES}', "");
+    Expect(1, 56191, '\P{^-	high_SURROGATES}', "");
+    Expect(0, 57344, '\p{-	high_SURROGATES}', "");
+    Expect(1, 57344, '\p{^-	high_SURROGATES}', "");
+    Expect(1, 57344, '\P{-	high_SURROGATES}', "");
+    Expect(0, 57344, '\P{^-	high_SURROGATES}', "");
+    Error('\p{-_IS_HIGH_Surrogates:=}');
+    Error('\P{-_IS_HIGH_Surrogates:=}');
     Expect(1, 56191, '\p{ishighsurrogates}', "");
     Expect(0, 56191, '\p{^ishighsurrogates}', "");
     Expect(0, 56191, '\P{ishighsurrogates}', "");
@@ -101215,16 +102221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^ishighsurrogates}', "");
     Expect(1, 57344, '\P{ishighsurrogates}', "");
     Expect(0, 57344, '\P{^ishighsurrogates}', "");
-    Expect(1, 56191, '\p{	_is_high_SURROGATES}', "");
-    Expect(0, 56191, '\p{^	_is_high_SURROGATES}', "");
-    Expect(0, 56191, '\P{	_is_high_SURROGATES}', "");
-    Expect(1, 56191, '\P{^	_is_high_SURROGATES}', "");
-    Expect(0, 57344, '\p{	_is_high_SURROGATES}', "");
-    Expect(1, 57344, '\p{^	_is_high_SURROGATES}', "");
-    Expect(1, 57344, '\P{	_is_high_SURROGATES}', "");
-    Expect(0, 57344, '\P{^	_is_high_SURROGATES}', "");
-    Error('\p{	In_High_surrogates/a/}');
-    Error('\P{	In_High_surrogates/a/}');
+    Expect(1, 56191, '\p{--is_High_Surrogates}', "");
+    Expect(0, 56191, '\p{^--is_High_Surrogates}', "");
+    Expect(0, 56191, '\P{--is_High_Surrogates}', "");
+    Expect(1, 56191, '\P{^--is_High_Surrogates}', "");
+    Expect(0, 57344, '\p{--is_High_Surrogates}', "");
+    Expect(1, 57344, '\p{^--is_High_Surrogates}', "");
+    Expect(1, 57344, '\P{--is_High_Surrogates}', "");
+    Expect(0, 57344, '\P{^--is_High_Surrogates}', "");
+    Error('\p{/a/In_HIGH_Surrogates}');
+    Error('\P{/a/In_HIGH_Surrogates}');
     Expect(1, 56191, '\p{inhighsurrogates}', "");
     Expect(0, 56191, '\p{^inhighsurrogates}', "");
     Expect(0, 56191, '\P{inhighsurrogates}', "");
@@ -101233,16 +102239,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^inhighsurrogates}', "");
     Expect(1, 57344, '\P{inhighsurrogates}', "");
     Expect(0, 57344, '\P{^inhighsurrogates}', "");
-    Expect(1, 56191, '\p{-_In_High_Surrogates}', "");
-    Expect(0, 56191, '\p{^-_In_High_Surrogates}', "");
-    Expect(0, 56191, '\P{-_In_High_Surrogates}', "");
-    Expect(1, 56191, '\P{^-_In_High_Surrogates}', "");
-    Expect(0, 57344, '\p{-_In_High_Surrogates}', "");
-    Expect(1, 57344, '\p{^-_In_High_Surrogates}', "");
-    Expect(1, 57344, '\P{-_In_High_Surrogates}', "");
-    Expect(0, 57344, '\P{^-_In_High_Surrogates}', "");
-    Error('\p{:=	-Hiragana}');
-    Error('\P{:=	-Hiragana}');
+    Expect(1, 56191, '\p{-_in_high_Surrogates}', "");
+    Expect(0, 56191, '\p{^-_in_high_Surrogates}', "");
+    Expect(0, 56191, '\P{-_in_high_Surrogates}', "");
+    Expect(1, 56191, '\P{^-_in_high_Surrogates}', "");
+    Expect(0, 57344, '\p{-_in_high_Surrogates}', "");
+    Expect(1, 57344, '\p{^-_in_high_Surrogates}', "");
+    Expect(1, 57344, '\P{-_in_high_Surrogates}', "");
+    Expect(0, 57344, '\P{^-_in_high_Surrogates}', "");
+    Error('\p{	 Hiragana:=}');
+    Error('\P{	 Hiragana:=}');
     Expect(1, 127488, '\p{hiragana}', "");
     Expect(0, 127488, '\p{^hiragana}', "");
     Expect(0, 127488, '\P{hiragana}', "");
@@ -101251,16 +102257,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127489, '\p{^hiragana}', "");
     Expect(1, 127489, '\P{hiragana}', "");
     Expect(0, 127489, '\P{^hiragana}', "");
-    Expect(1, 127488, '\p{- HIRAGANA}', "");
-    Expect(0, 127488, '\p{^- HIRAGANA}', "");
-    Expect(0, 127488, '\P{- HIRAGANA}', "");
-    Expect(1, 127488, '\P{^- HIRAGANA}', "");
-    Expect(0, 127489, '\p{- HIRAGANA}', "");
-    Expect(1, 127489, '\p{^- HIRAGANA}', "");
-    Expect(1, 127489, '\P{- HIRAGANA}', "");
-    Expect(0, 127489, '\P{^- HIRAGANA}', "");
-    Error('\p{/a/ Is_Hiragana}');
-    Error('\P{/a/ Is_Hiragana}');
+    Expect(1, 127488, '\p{ 	HIRAGANA}', "");
+    Expect(0, 127488, '\p{^ 	HIRAGANA}', "");
+    Expect(0, 127488, '\P{ 	HIRAGANA}', "");
+    Expect(1, 127488, '\P{^ 	HIRAGANA}', "");
+    Expect(0, 127489, '\p{ 	HIRAGANA}', "");
+    Expect(1, 127489, '\p{^ 	HIRAGANA}', "");
+    Expect(1, 127489, '\P{ 	HIRAGANA}', "");
+    Expect(0, 127489, '\P{^ 	HIRAGANA}', "");
+    Error('\p{ :=is_HIRAGANA}');
+    Error('\P{ :=is_HIRAGANA}');
     Expect(1, 127488, '\p{ishiragana}', "");
     Expect(0, 127488, '\p{^ishiragana}', "");
     Expect(0, 127488, '\P{ishiragana}', "");
@@ -101269,16 +102275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127489, '\p{^ishiragana}', "");
     Expect(1, 127489, '\P{ishiragana}', "");
     Expect(0, 127489, '\P{^ishiragana}', "");
-    Expect(1, 127488, '\p{		IS_hiragana}', "");
-    Expect(0, 127488, '\p{^		IS_hiragana}', "");
-    Expect(0, 127488, '\P{		IS_hiragana}', "");
-    Expect(1, 127488, '\P{^		IS_hiragana}', "");
-    Expect(0, 127489, '\p{		IS_hiragana}', "");
-    Expect(1, 127489, '\p{^		IS_hiragana}', "");
-    Expect(1, 127489, '\P{		IS_hiragana}', "");
-    Expect(0, 127489, '\P{^		IS_hiragana}', "");
-    Error('\p{/a/Hira}');
-    Error('\P{/a/Hira}');
+    Expect(1, 127488, '\p{Is_Hiragana}', "");
+    Expect(0, 127488, '\p{^Is_Hiragana}', "");
+    Expect(0, 127488, '\P{Is_Hiragana}', "");
+    Expect(1, 127488, '\P{^Is_Hiragana}', "");
+    Expect(0, 127489, '\p{Is_Hiragana}', "");
+    Expect(1, 127489, '\p{^Is_Hiragana}', "");
+    Expect(1, 127489, '\P{Is_Hiragana}', "");
+    Expect(0, 127489, '\P{^Is_Hiragana}', "");
+    Error('\p{:=_	hira}');
+    Error('\P{:=_	hira}');
     Expect(1, 127488, '\p{hira}', "");
     Expect(0, 127488, '\p{^hira}', "");
     Expect(0, 127488, '\P{hira}', "");
@@ -101287,16 +102293,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127489, '\p{^hira}', "");
     Expect(1, 127489, '\P{hira}', "");
     Expect(0, 127489, '\P{^hira}', "");
-    Expect(1, 127488, '\p{ HIRA}', "");
-    Expect(0, 127488, '\p{^ HIRA}', "");
-    Expect(0, 127488, '\P{ HIRA}', "");
-    Expect(1, 127488, '\P{^ HIRA}', "");
-    Expect(0, 127489, '\p{ HIRA}', "");
-    Expect(1, 127489, '\p{^ HIRA}', "");
-    Expect(1, 127489, '\P{ HIRA}', "");
-    Expect(0, 127489, '\P{^ HIRA}', "");
-    Error('\p{-:=IS_Hira}');
-    Error('\P{-:=IS_Hira}');
+    Expect(1, 127488, '\p{	Hira}', "");
+    Expect(0, 127488, '\p{^	Hira}', "");
+    Expect(0, 127488, '\P{	Hira}', "");
+    Expect(1, 127488, '\P{^	Hira}', "");
+    Expect(0, 127489, '\p{	Hira}', "");
+    Expect(1, 127489, '\p{^	Hira}', "");
+    Expect(1, 127489, '\P{	Hira}', "");
+    Expect(0, 127489, '\P{^	Hira}', "");
+    Error('\p{- is_Hira:=}');
+    Error('\P{- is_Hira:=}');
     Expect(1, 127488, '\p{ishira}', "");
     Expect(0, 127488, '\p{^ishira}', "");
     Expect(0, 127488, '\P{ishira}', "");
@@ -101305,16 +102311,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127489, '\p{^ishira}', "");
     Expect(1, 127489, '\P{ishira}', "");
     Expect(0, 127489, '\P{^ishira}', "");
-    Expect(1, 127488, '\p{	 is_HIRA}', "");
-    Expect(0, 127488, '\p{^	 is_HIRA}', "");
-    Expect(0, 127488, '\P{	 is_HIRA}', "");
-    Expect(1, 127488, '\P{^	 is_HIRA}', "");
-    Expect(0, 127489, '\p{	 is_HIRA}', "");
-    Expect(1, 127489, '\p{^	 is_HIRA}', "");
-    Expect(1, 127489, '\P{	 is_HIRA}', "");
-    Expect(0, 127489, '\P{^	 is_HIRA}', "");
-    Error('\p{:=_-Hyphen}');
-    Error('\P{:=_-Hyphen}');
+    Expect(1, 127488, '\p{_Is_Hira}', "");
+    Expect(0, 127488, '\p{^_Is_Hira}', "");
+    Expect(0, 127488, '\P{_Is_Hira}', "");
+    Expect(1, 127488, '\P{^_Is_Hira}', "");
+    Expect(0, 127489, '\p{_Is_Hira}', "");
+    Expect(1, 127489, '\p{^_Is_Hira}', "");
+    Expect(1, 127489, '\P{_Is_Hira}', "");
+    Expect(0, 127489, '\P{^_Is_Hira}', "");
+    Error('\p{	/a/HYPHEN}');
+    Error('\P{	/a/HYPHEN}');
     Expect(1, 65381, '\p{hyphen}', 'deprecated');
     Expect(0, 65381, '\p{^hyphen}', 'deprecated');
     Expect(0, 65381, '\P{hyphen}', 'deprecated');
@@ -101323,16 +102329,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65382, '\p{^hyphen}', 'deprecated');
     Expect(1, 65382, '\P{hyphen}', 'deprecated');
     Expect(0, 65382, '\P{^hyphen}', 'deprecated');
-    Expect(1, 65381, '\p{ -hyphen}', 'deprecated');
-    Expect(0, 65381, '\p{^ -hyphen}', 'deprecated');
-    Expect(0, 65381, '\P{ -hyphen}', 'deprecated');
-    Expect(1, 65381, '\P{^ -hyphen}', 'deprecated');
-    Expect(0, 65382, '\p{ -hyphen}', 'deprecated');
-    Expect(1, 65382, '\p{^ -hyphen}', 'deprecated');
-    Expect(1, 65382, '\P{ -hyphen}', 'deprecated');
-    Expect(0, 65382, '\P{^ -hyphen}', 'deprecated');
-    Error('\p{_IS_Hyphen/a/}');
-    Error('\P{_IS_Hyphen/a/}');
+    Expect(1, 65381, '\p{_ Hyphen}', 'deprecated');
+    Expect(0, 65381, '\p{^_ Hyphen}', 'deprecated');
+    Expect(0, 65381, '\P{_ Hyphen}', 'deprecated');
+    Expect(1, 65381, '\P{^_ Hyphen}', 'deprecated');
+    Expect(0, 65382, '\p{_ Hyphen}', 'deprecated');
+    Expect(1, 65382, '\p{^_ Hyphen}', 'deprecated');
+    Expect(1, 65382, '\P{_ Hyphen}', 'deprecated');
+    Expect(0, 65382, '\P{^_ Hyphen}', 'deprecated');
+    Error('\p{:=IS_hyphen}');
+    Error('\P{:=IS_hyphen}');
     Expect(1, 65381, '\p{ishyphen}', 'deprecated');
     Expect(0, 65381, '\p{^ishyphen}', 'deprecated');
     Expect(0, 65381, '\P{ishyphen}', 'deprecated');
@@ -101341,16 +102347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65382, '\p{^ishyphen}', 'deprecated');
     Expect(1, 65382, '\P{ishyphen}', 'deprecated');
     Expect(0, 65382, '\P{^ishyphen}', 'deprecated');
-    Expect(1, 65381, '\p{	Is_Hyphen}', 'deprecated');
-    Expect(0, 65381, '\p{^	Is_Hyphen}', 'deprecated');
-    Expect(0, 65381, '\P{	Is_Hyphen}', 'deprecated');
-    Expect(1, 65381, '\P{^	Is_Hyphen}', 'deprecated');
-    Expect(0, 65382, '\p{	Is_Hyphen}', 'deprecated');
-    Expect(1, 65382, '\p{^	Is_Hyphen}', 'deprecated');
-    Expect(1, 65382, '\P{	Is_Hyphen}', 'deprecated');
-    Expect(0, 65382, '\P{^	Is_Hyphen}', 'deprecated');
-    Error('\p{__ID_CONTINUE:=}');
-    Error('\P{__ID_CONTINUE:=}');
+    Expect(1, 65381, '\p{	_IS_Hyphen}', 'deprecated');
+    Expect(0, 65381, '\p{^	_IS_Hyphen}', 'deprecated');
+    Expect(0, 65381, '\P{	_IS_Hyphen}', 'deprecated');
+    Expect(1, 65381, '\P{^	_IS_Hyphen}', 'deprecated');
+    Expect(0, 65382, '\p{	_IS_Hyphen}', 'deprecated');
+    Expect(1, 65382, '\p{^	_IS_Hyphen}', 'deprecated');
+    Expect(1, 65382, '\P{	_IS_Hyphen}', 'deprecated');
+    Expect(0, 65382, '\P{^	_IS_Hyphen}', 'deprecated');
+    Error('\p{	:=ID_Continue}');
+    Error('\P{	:=ID_Continue}');
     Expect(1, 917999, '\p{idcontinue}', "");
     Expect(0, 917999, '\p{^idcontinue}', "");
     Expect(0, 917999, '\P{idcontinue}', "");
@@ -101359,16 +102365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^idcontinue}', "");
     Expect(1, 918000, '\P{idcontinue}', "");
     Expect(0, 918000, '\P{^idcontinue}', "");
-    Expect(1, 917999, '\p{ ID_continue}', "");
-    Expect(0, 917999, '\p{^ ID_continue}', "");
-    Expect(0, 917999, '\P{ ID_continue}', "");
-    Expect(1, 917999, '\P{^ ID_continue}', "");
-    Expect(0, 918000, '\p{ ID_continue}', "");
-    Expect(1, 918000, '\p{^ ID_continue}', "");
-    Expect(1, 918000, '\P{ ID_continue}', "");
-    Expect(0, 918000, '\P{^ ID_continue}', "");
-    Error('\p{	:=Is_ID_continue}');
-    Error('\P{	:=Is_ID_continue}');
+    Expect(1, 917999, '\p{	-ID_CONTINUE}', "");
+    Expect(0, 917999, '\p{^	-ID_CONTINUE}', "");
+    Expect(0, 917999, '\P{	-ID_CONTINUE}', "");
+    Expect(1, 917999, '\P{^	-ID_CONTINUE}', "");
+    Expect(0, 918000, '\p{	-ID_CONTINUE}', "");
+    Expect(1, 918000, '\p{^	-ID_CONTINUE}', "");
+    Expect(1, 918000, '\P{	-ID_CONTINUE}', "");
+    Expect(0, 918000, '\P{^	-ID_CONTINUE}', "");
+    Error('\p{ /a/Is_ID_Continue}');
+    Error('\P{ /a/Is_ID_Continue}');
     Expect(1, 917999, '\p{isidcontinue}', "");
     Expect(0, 917999, '\p{^isidcontinue}', "");
     Expect(0, 917999, '\P{isidcontinue}', "");
@@ -101377,16 +102383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isidcontinue}', "");
     Expect(1, 918000, '\P{isidcontinue}', "");
     Expect(0, 918000, '\P{^isidcontinue}', "");
-    Expect(1, 917999, '\p{ 	Is_ID_Continue}', "");
-    Expect(0, 917999, '\p{^ 	Is_ID_Continue}', "");
-    Expect(0, 917999, '\P{ 	Is_ID_Continue}', "");
-    Expect(1, 917999, '\P{^ 	Is_ID_Continue}', "");
-    Expect(0, 918000, '\p{ 	Is_ID_Continue}', "");
-    Expect(1, 918000, '\p{^ 	Is_ID_Continue}', "");
-    Expect(1, 918000, '\P{ 	Is_ID_Continue}', "");
-    Expect(0, 918000, '\P{^ 	Is_ID_Continue}', "");
-    Error('\p{_/a/IDC}');
-    Error('\P{_/a/IDC}');
+    Expect(1, 917999, '\p{	 Is_ID_Continue}', "");
+    Expect(0, 917999, '\p{^	 Is_ID_Continue}', "");
+    Expect(0, 917999, '\P{	 Is_ID_Continue}', "");
+    Expect(1, 917999, '\P{^	 Is_ID_Continue}', "");
+    Expect(0, 918000, '\p{	 Is_ID_Continue}', "");
+    Expect(1, 918000, '\p{^	 Is_ID_Continue}', "");
+    Expect(1, 918000, '\P{	 Is_ID_Continue}', "");
+    Expect(0, 918000, '\P{^	 Is_ID_Continue}', "");
+    Error('\p{/a/ _idc}');
+    Error('\P{/a/ _idc}');
     Expect(1, 917999, '\p{idc}', "");
     Expect(0, 917999, '\p{^idc}', "");
     Expect(0, 917999, '\P{idc}', "");
@@ -101395,16 +102401,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^idc}', "");
     Expect(1, 918000, '\P{idc}', "");
     Expect(0, 918000, '\P{^idc}', "");
-    Expect(1, 917999, '\p{_IDC}', "");
-    Expect(0, 917999, '\p{^_IDC}', "");
-    Expect(0, 917999, '\P{_IDC}', "");
-    Expect(1, 917999, '\P{^_IDC}', "");
-    Expect(0, 918000, '\p{_IDC}', "");
-    Expect(1, 918000, '\p{^_IDC}', "");
-    Expect(1, 918000, '\P{_IDC}', "");
-    Expect(0, 918000, '\P{^_IDC}', "");
-    Error('\p{-/a/IS_IDC}');
-    Error('\P{-/a/IS_IDC}');
+    Expect(1, 917999, '\p{ IDC}', "");
+    Expect(0, 917999, '\p{^ IDC}', "");
+    Expect(0, 917999, '\P{ IDC}', "");
+    Expect(1, 917999, '\P{^ IDC}', "");
+    Expect(0, 918000, '\p{ IDC}', "");
+    Expect(1, 918000, '\p{^ IDC}', "");
+    Expect(1, 918000, '\P{ IDC}', "");
+    Expect(0, 918000, '\P{^ IDC}', "");
+    Error('\p{:=- is_IDC}');
+    Error('\P{:=- is_IDC}');
     Expect(1, 917999, '\p{isidc}', "");
     Expect(0, 917999, '\p{^isidc}', "");
     Expect(0, 917999, '\P{isidc}', "");
@@ -101413,160 +102419,160 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isidc}', "");
     Expect(1, 918000, '\P{isidc}', "");
     Expect(0, 918000, '\P{^isidc}', "");
-    Expect(1, 917999, '\p{ IS_IDC}', "");
-    Expect(0, 917999, '\p{^ IS_IDC}', "");
-    Expect(0, 917999, '\P{ IS_IDC}', "");
-    Expect(1, 917999, '\P{^ IS_IDC}', "");
-    Expect(0, 918000, '\p{ IS_IDC}', "");
-    Expect(1, 918000, '\p{^ IS_IDC}', "");
-    Expect(1, 918000, '\P{ IS_IDC}', "");
-    Expect(0, 918000, '\P{^ IS_IDC}', "");
-    Error('\p{ :=id_START}');
-    Error('\P{ :=id_START}');
-    Expect(1, 201546, '\p{idstart}', "");
-    Expect(0, 201546, '\p{^idstart}', "");
-    Expect(0, 201546, '\P{idstart}', "");
-    Expect(1, 201546, '\P{^idstart}', "");
-    Expect(0, 201547, '\p{idstart}', "");
-    Expect(1, 201547, '\p{^idstart}', "");
-    Expect(1, 201547, '\P{idstart}', "");
-    Expect(0, 201547, '\P{^idstart}', "");
-    Expect(1, 201546, '\p{	ID_start}', "");
-    Expect(0, 201546, '\p{^	ID_start}', "");
-    Expect(0, 201546, '\P{	ID_start}', "");
-    Expect(1, 201546, '\P{^	ID_start}', "");
-    Expect(0, 201547, '\p{	ID_start}', "");
-    Expect(1, 201547, '\p{^	ID_start}', "");
-    Expect(1, 201547, '\P{	ID_start}', "");
-    Expect(0, 201547, '\P{^	ID_start}', "");
-    Error('\p{:=-is_id_Start}');
-    Error('\P{:=-is_id_Start}');
-    Expect(1, 201546, '\p{isidstart}', "");
-    Expect(0, 201546, '\p{^isidstart}', "");
-    Expect(0, 201546, '\P{isidstart}', "");
-    Expect(1, 201546, '\P{^isidstart}', "");
-    Expect(0, 201547, '\p{isidstart}', "");
-    Expect(1, 201547, '\p{^isidstart}', "");
-    Expect(1, 201547, '\P{isidstart}', "");
-    Expect(0, 201547, '\P{^isidstart}', "");
-    Expect(1, 201546, '\p{	Is_ID_START}', "");
-    Expect(0, 201546, '\p{^	Is_ID_START}', "");
-    Expect(0, 201546, '\P{	Is_ID_START}', "");
-    Expect(1, 201546, '\P{^	Is_ID_START}', "");
-    Expect(0, 201547, '\p{	Is_ID_START}', "");
-    Expect(1, 201547, '\p{^	Is_ID_START}', "");
-    Expect(1, 201547, '\P{	Is_ID_START}', "");
-    Expect(0, 201547, '\P{^	Is_ID_START}', "");
-    Error('\p{ _IDS:=}');
-    Error('\P{ _IDS:=}');
-    Expect(1, 201546, '\p{ids}', "");
-    Expect(0, 201546, '\p{^ids}', "");
-    Expect(0, 201546, '\P{ids}', "");
-    Expect(1, 201546, '\P{^ids}', "");
-    Expect(0, 201547, '\p{ids}', "");
-    Expect(1, 201547, '\p{^ids}', "");
-    Expect(1, 201547, '\P{ids}', "");
-    Expect(0, 201547, '\P{^ids}', "");
-    Expect(1, 201546, '\p{IDS}', "");
-    Expect(0, 201546, '\p{^IDS}', "");
-    Expect(0, 201546, '\P{IDS}', "");
-    Expect(1, 201546, '\P{^IDS}', "");
-    Expect(0, 201547, '\p{IDS}', "");
-    Expect(1, 201547, '\p{^IDS}', "");
-    Expect(1, 201547, '\P{IDS}', "");
-    Expect(0, 201547, '\P{^IDS}', "");
-    Error('\p{/a/Is_IDS}');
-    Error('\P{/a/Is_IDS}');
-    Expect(1, 201546, '\p{isids}', "");
-    Expect(0, 201546, '\p{^isids}', "");
-    Expect(0, 201546, '\P{isids}', "");
-    Expect(1, 201546, '\P{^isids}', "");
-    Expect(0, 201547, '\p{isids}', "");
-    Expect(1, 201547, '\p{^isids}', "");
-    Expect(1, 201547, '\P{isids}', "");
-    Expect(0, 201547, '\P{^isids}', "");
-    Expect(1, 201546, '\p{_is_IDS}', "");
-    Expect(0, 201546, '\p{^_is_IDS}', "");
-    Expect(0, 201546, '\P{_is_IDS}', "");
-    Expect(1, 201546, '\P{^_is_IDS}', "");
-    Expect(0, 201547, '\p{_is_IDS}', "");
-    Expect(1, 201547, '\p{^_is_IDS}', "");
-    Expect(1, 201547, '\P{_is_IDS}', "");
-    Expect(0, 201547, '\P{^_is_IDS}', "");
-    Error('\p{	:=IDEOGRAPHIC}');
-    Error('\P{	:=IDEOGRAPHIC}');
-    Expect(1, 201546, '\p{ideographic}', "");
-    Expect(0, 201546, '\p{^ideographic}', "");
-    Expect(0, 201546, '\P{ideographic}', "");
-    Expect(1, 201546, '\P{^ideographic}', "");
-    Expect(0, 201547, '\p{ideographic}', "");
-    Expect(1, 201547, '\p{^ideographic}', "");
-    Expect(1, 201547, '\P{ideographic}', "");
-    Expect(0, 201547, '\P{^ideographic}', "");
-    Expect(1, 201546, '\p{ 	Ideographic}', "");
-    Expect(0, 201546, '\p{^ 	Ideographic}', "");
-    Expect(0, 201546, '\P{ 	Ideographic}', "");
-    Expect(1, 201546, '\P{^ 	Ideographic}', "");
-    Expect(0, 201547, '\p{ 	Ideographic}', "");
-    Expect(1, 201547, '\p{^ 	Ideographic}', "");
-    Expect(1, 201547, '\P{ 	Ideographic}', "");
-    Expect(0, 201547, '\P{^ 	Ideographic}', "");
-    Error('\p{/a/is_IDEOGRAPHIC}');
-    Error('\P{/a/is_IDEOGRAPHIC}');
-    Expect(1, 201546, '\p{isideographic}', "");
-    Expect(0, 201546, '\p{^isideographic}', "");
-    Expect(0, 201546, '\P{isideographic}', "");
-    Expect(1, 201546, '\P{^isideographic}', "");
-    Expect(0, 201547, '\p{isideographic}', "");
-    Expect(1, 201547, '\p{^isideographic}', "");
-    Expect(1, 201547, '\P{isideographic}', "");
-    Expect(0, 201547, '\P{^isideographic}', "");
-    Expect(1, 201546, '\p{-_Is_Ideographic}', "");
-    Expect(0, 201546, '\p{^-_Is_Ideographic}', "");
-    Expect(0, 201546, '\P{-_Is_Ideographic}', "");
-    Expect(1, 201546, '\P{^-_Is_Ideographic}', "");
-    Expect(0, 201547, '\p{-_Is_Ideographic}', "");
-    Expect(1, 201547, '\p{^-_Is_Ideographic}', "");
-    Expect(1, 201547, '\P{-_Is_Ideographic}', "");
-    Expect(0, 201547, '\P{^-_Is_Ideographic}', "");
-    Error('\p{_/a/ideo}');
-    Error('\P{_/a/ideo}');
-    Expect(1, 201546, '\p{ideo}', "");
-    Expect(0, 201546, '\p{^ideo}', "");
-    Expect(0, 201546, '\P{ideo}', "");
-    Expect(1, 201546, '\P{^ideo}', "");
-    Expect(0, 201547, '\p{ideo}', "");
-    Expect(1, 201547, '\p{^ideo}', "");
-    Expect(1, 201547, '\P{ideo}', "");
-    Expect(0, 201547, '\P{^ideo}', "");
-    Expect(1, 201546, '\p{  Ideo}', "");
-    Expect(0, 201546, '\p{^  Ideo}', "");
-    Expect(0, 201546, '\P{  Ideo}', "");
-    Expect(1, 201546, '\P{^  Ideo}', "");
-    Expect(0, 201547, '\p{  Ideo}', "");
-    Expect(1, 201547, '\p{^  Ideo}', "");
-    Expect(1, 201547, '\P{  Ideo}', "");
-    Expect(0, 201547, '\P{^  Ideo}', "");
-    Error('\p{/a/--Is_ideo}');
-    Error('\P{/a/--Is_ideo}');
-    Expect(1, 201546, '\p{isideo}', "");
-    Expect(0, 201546, '\p{^isideo}', "");
-    Expect(0, 201546, '\P{isideo}', "");
-    Expect(1, 201546, '\P{^isideo}', "");
-    Expect(0, 201547, '\p{isideo}', "");
-    Expect(1, 201547, '\p{^isideo}', "");
-    Expect(1, 201547, '\P{isideo}', "");
-    Expect(0, 201547, '\P{^isideo}', "");
-    Expect(1, 201546, '\p{-_is_Ideo}', "");
-    Expect(0, 201546, '\p{^-_is_Ideo}', "");
-    Expect(0, 201546, '\P{-_is_Ideo}', "");
-    Expect(1, 201546, '\P{^-_is_Ideo}', "");
-    Expect(0, 201547, '\p{-_is_Ideo}', "");
-    Expect(1, 201547, '\p{^-_is_Ideo}', "");
-    Expect(1, 201547, '\P{-_is_Ideo}', "");
-    Expect(0, 201547, '\P{^-_is_Ideo}', "");
-    Error('\p{/a/IDEOGRAPHIC_Description_characters}');
-    Error('\P{/a/IDEOGRAPHIC_Description_characters}');
+    Expect(1, 917999, '\p{		Is_IDC}', "");
+    Expect(0, 917999, '\p{^		Is_IDC}', "");
+    Expect(0, 917999, '\P{		Is_IDC}', "");
+    Expect(1, 917999, '\P{^		Is_IDC}', "");
+    Expect(0, 918000, '\p{		Is_IDC}', "");
+    Expect(1, 918000, '\p{^		Is_IDC}', "");
+    Expect(1, 918000, '\P{		Is_IDC}', "");
+    Expect(0, 918000, '\P{^		Is_IDC}', "");
+    Error('\p{	_ID_START:=}');
+    Error('\P{	_ID_START:=}');
+    Expect(1, 205743, '\p{idstart}', "");
+    Expect(0, 205743, '\p{^idstart}', "");
+    Expect(0, 205743, '\P{idstart}', "");
+    Expect(1, 205743, '\P{^idstart}', "");
+    Expect(0, 205744, '\p{idstart}', "");
+    Expect(1, 205744, '\p{^idstart}', "");
+    Expect(1, 205744, '\P{idstart}', "");
+    Expect(0, 205744, '\P{^idstart}', "");
+    Expect(1, 205743, '\p{ID_Start}', "");
+    Expect(0, 205743, '\p{^ID_Start}', "");
+    Expect(0, 205743, '\P{ID_Start}', "");
+    Expect(1, 205743, '\P{^ID_Start}', "");
+    Expect(0, 205744, '\p{ID_Start}', "");
+    Expect(1, 205744, '\p{^ID_Start}', "");
+    Expect(1, 205744, '\P{ID_Start}', "");
+    Expect(0, 205744, '\P{^ID_Start}', "");
+    Error('\p{	-is_ID_Start/a/}');
+    Error('\P{	-is_ID_Start/a/}');
+    Expect(1, 205743, '\p{isidstart}', "");
+    Expect(0, 205743, '\p{^isidstart}', "");
+    Expect(0, 205743, '\P{isidstart}', "");
+    Expect(1, 205743, '\P{^isidstart}', "");
+    Expect(0, 205744, '\p{isidstart}', "");
+    Expect(1, 205744, '\p{^isidstart}', "");
+    Expect(1, 205744, '\P{isidstart}', "");
+    Expect(0, 205744, '\P{^isidstart}', "");
+    Expect(1, 205743, '\p{_	IS_ID_start}', "");
+    Expect(0, 205743, '\p{^_	IS_ID_start}', "");
+    Expect(0, 205743, '\P{_	IS_ID_start}', "");
+    Expect(1, 205743, '\P{^_	IS_ID_start}', "");
+    Expect(0, 205744, '\p{_	IS_ID_start}', "");
+    Expect(1, 205744, '\p{^_	IS_ID_start}', "");
+    Expect(1, 205744, '\P{_	IS_ID_start}', "");
+    Expect(0, 205744, '\P{^_	IS_ID_start}', "");
+    Error('\p{/a/ 	IDS}');
+    Error('\P{/a/ 	IDS}');
+    Expect(1, 205743, '\p{ids}', "");
+    Expect(0, 205743, '\p{^ids}', "");
+    Expect(0, 205743, '\P{ids}', "");
+    Expect(1, 205743, '\P{^ids}', "");
+    Expect(0, 205744, '\p{ids}', "");
+    Expect(1, 205744, '\p{^ids}', "");
+    Expect(1, 205744, '\P{ids}', "");
+    Expect(0, 205744, '\P{^ids}', "");
+    Expect(1, 205743, '\p{- IDS}', "");
+    Expect(0, 205743, '\p{^- IDS}', "");
+    Expect(0, 205743, '\P{- IDS}', "");
+    Expect(1, 205743, '\P{^- IDS}', "");
+    Expect(0, 205744, '\p{- IDS}', "");
+    Expect(1, 205744, '\p{^- IDS}', "");
+    Expect(1, 205744, '\P{- IDS}', "");
+    Expect(0, 205744, '\P{^- IDS}', "");
+    Error('\p{ -is_ids:=}');
+    Error('\P{ -is_ids:=}');
+    Expect(1, 205743, '\p{isids}', "");
+    Expect(0, 205743, '\p{^isids}', "");
+    Expect(0, 205743, '\P{isids}', "");
+    Expect(1, 205743, '\P{^isids}', "");
+    Expect(0, 205744, '\p{isids}', "");
+    Expect(1, 205744, '\p{^isids}', "");
+    Expect(1, 205744, '\P{isids}', "");
+    Expect(0, 205744, '\P{^isids}', "");
+    Expect(1, 205743, '\p{ _is_IDS}', "");
+    Expect(0, 205743, '\p{^ _is_IDS}', "");
+    Expect(0, 205743, '\P{ _is_IDS}', "");
+    Expect(1, 205743, '\P{^ _is_IDS}', "");
+    Expect(0, 205744, '\p{ _is_IDS}', "");
+    Expect(1, 205744, '\p{^ _is_IDS}', "");
+    Expect(1, 205744, '\P{ _is_IDS}', "");
+    Expect(0, 205744, '\P{^ _is_IDS}', "");
+    Error('\p{_	Ideographic:=}');
+    Error('\P{_	Ideographic:=}');
+    Expect(1, 205743, '\p{ideographic}', "");
+    Expect(0, 205743, '\p{^ideographic}', "");
+    Expect(0, 205743, '\P{ideographic}', "");
+    Expect(1, 205743, '\P{^ideographic}', "");
+    Expect(0, 205744, '\p{ideographic}', "");
+    Expect(1, 205744, '\p{^ideographic}', "");
+    Expect(1, 205744, '\P{ideographic}', "");
+    Expect(0, 205744, '\P{^ideographic}', "");
+    Expect(1, 205743, '\p{IDEOGRAPHIC}', "");
+    Expect(0, 205743, '\p{^IDEOGRAPHIC}', "");
+    Expect(0, 205743, '\P{IDEOGRAPHIC}', "");
+    Expect(1, 205743, '\P{^IDEOGRAPHIC}', "");
+    Expect(0, 205744, '\p{IDEOGRAPHIC}', "");
+    Expect(1, 205744, '\p{^IDEOGRAPHIC}', "");
+    Expect(1, 205744, '\P{IDEOGRAPHIC}', "");
+    Expect(0, 205744, '\P{^IDEOGRAPHIC}', "");
+    Error('\p{_	Is_Ideographic/a/}');
+    Error('\P{_	Is_Ideographic/a/}');
+    Expect(1, 205743, '\p{isideographic}', "");
+    Expect(0, 205743, '\p{^isideographic}', "");
+    Expect(0, 205743, '\P{isideographic}', "");
+    Expect(1, 205743, '\P{^isideographic}', "");
+    Expect(0, 205744, '\p{isideographic}', "");
+    Expect(1, 205744, '\p{^isideographic}', "");
+    Expect(1, 205744, '\P{isideographic}', "");
+    Expect(0, 205744, '\P{^isideographic}', "");
+    Expect(1, 205743, '\p{	IS_IDEOGRAPHIC}', "");
+    Expect(0, 205743, '\p{^	IS_IDEOGRAPHIC}', "");
+    Expect(0, 205743, '\P{	IS_IDEOGRAPHIC}', "");
+    Expect(1, 205743, '\P{^	IS_IDEOGRAPHIC}', "");
+    Expect(0, 205744, '\p{	IS_IDEOGRAPHIC}', "");
+    Expect(1, 205744, '\p{^	IS_IDEOGRAPHIC}', "");
+    Expect(1, 205744, '\P{	IS_IDEOGRAPHIC}', "");
+    Expect(0, 205744, '\P{^	IS_IDEOGRAPHIC}', "");
+    Error('\p{/a/IDEO}');
+    Error('\P{/a/IDEO}');
+    Expect(1, 205743, '\p{ideo}', "");
+    Expect(0, 205743, '\p{^ideo}', "");
+    Expect(0, 205743, '\P{ideo}', "");
+    Expect(1, 205743, '\P{^ideo}', "");
+    Expect(0, 205744, '\p{ideo}', "");
+    Expect(1, 205744, '\p{^ideo}', "");
+    Expect(1, 205744, '\P{ideo}', "");
+    Expect(0, 205744, '\P{^ideo}', "");
+    Expect(1, 205743, '\p{		Ideo}', "");
+    Expect(0, 205743, '\p{^		Ideo}', "");
+    Expect(0, 205743, '\P{		Ideo}', "");
+    Expect(1, 205743, '\P{^		Ideo}', "");
+    Expect(0, 205744, '\p{		Ideo}', "");
+    Expect(1, 205744, '\p{^		Ideo}', "");
+    Expect(1, 205744, '\P{		Ideo}', "");
+    Expect(0, 205744, '\P{^		Ideo}', "");
+    Error('\p{-/a/Is_IDEO}');
+    Error('\P{-/a/Is_IDEO}');
+    Expect(1, 205743, '\p{isideo}', "");
+    Expect(0, 205743, '\p{^isideo}', "");
+    Expect(0, 205743, '\P{isideo}', "");
+    Expect(1, 205743, '\P{^isideo}', "");
+    Expect(0, 205744, '\p{isideo}', "");
+    Expect(1, 205744, '\p{^isideo}', "");
+    Expect(1, 205744, '\P{isideo}', "");
+    Expect(0, 205744, '\P{^isideo}', "");
+    Expect(1, 205743, '\p{ 	IS_Ideo}', "");
+    Expect(0, 205743, '\p{^ 	IS_Ideo}', "");
+    Expect(0, 205743, '\P{ 	IS_Ideo}', "");
+    Expect(1, 205743, '\P{^ 	IS_Ideo}', "");
+    Expect(0, 205744, '\p{ 	IS_Ideo}', "");
+    Expect(1, 205744, '\p{^ 	IS_Ideo}', "");
+    Expect(1, 205744, '\P{ 	IS_Ideo}', "");
+    Expect(0, 205744, '\P{^ 	IS_Ideo}', "");
+    Error('\p{ _Ideographic_Description_characters:=}');
+    Error('\P{ _Ideographic_Description_characters:=}');
     Expect(1, 12287, '\p{ideographicdescriptioncharacters}', "");
     Expect(0, 12287, '\p{^ideographicdescriptioncharacters}', "");
     Expect(0, 12287, '\P{ideographicdescriptioncharacters}', "");
@@ -101575,16 +102581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12288, '\p{^ideographicdescriptioncharacters}', "");
     Expect(1, 12288, '\P{ideographicdescriptioncharacters}', "");
     Expect(0, 12288, '\P{^ideographicdescriptioncharacters}', "");
-    Expect(1, 12287, '\p{_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12287, '\p{^_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12287, '\P{_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12287, '\P{^_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12288, '\p{_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12288, '\p{^_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12288, '\P{_	Ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12288, '\P{^_	Ideographic_DESCRIPTION_characters}', "");
-    Error('\p{:=	 Is_IDEOGRAPHIC_Description_CHARACTERS}');
-    Error('\P{:=	 Is_IDEOGRAPHIC_Description_CHARACTERS}');
+    Expect(1, 12287, '\p{	Ideographic_Description_Characters}', "");
+    Expect(0, 12287, '\p{^	Ideographic_Description_Characters}', "");
+    Expect(0, 12287, '\P{	Ideographic_Description_Characters}', "");
+    Expect(1, 12287, '\P{^	Ideographic_Description_Characters}', "");
+    Expect(0, 12288, '\p{	Ideographic_Description_Characters}', "");
+    Expect(1, 12288, '\p{^	Ideographic_Description_Characters}', "");
+    Expect(1, 12288, '\P{	Ideographic_Description_Characters}', "");
+    Expect(0, 12288, '\P{^	Ideographic_Description_Characters}', "");
+    Error('\p{-:=IS_Ideographic_Description_characters}');
+    Error('\P{-:=IS_Ideographic_Description_characters}');
     Expect(1, 12287, '\p{isideographicdescriptioncharacters}', "");
     Expect(0, 12287, '\p{^isideographicdescriptioncharacters}', "");
     Expect(0, 12287, '\P{isideographicdescriptioncharacters}', "");
@@ -101593,16 +102599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12288, '\p{^isideographicdescriptioncharacters}', "");
     Expect(1, 12288, '\P{isideographicdescriptioncharacters}', "");
     Expect(0, 12288, '\P{^isideographicdescriptioncharacters}', "");
-    Expect(1, 12287, '\p{ _IS_Ideographic_Description_characters}', "");
-    Expect(0, 12287, '\p{^ _IS_Ideographic_Description_characters}', "");
-    Expect(0, 12287, '\P{ _IS_Ideographic_Description_characters}', "");
-    Expect(1, 12287, '\P{^ _IS_Ideographic_Description_characters}', "");
-    Expect(0, 12288, '\p{ _IS_Ideographic_Description_characters}', "");
-    Expect(1, 12288, '\p{^ _IS_Ideographic_Description_characters}', "");
-    Expect(1, 12288, '\P{ _IS_Ideographic_Description_characters}', "");
-    Expect(0, 12288, '\P{^ _IS_Ideographic_Description_characters}', "");
-    Error('\p{/a/ In_Ideographic_description_characters}');
-    Error('\P{/a/ In_Ideographic_description_characters}');
+    Expect(1, 12287, '\p{	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(0, 12287, '\p{^	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(0, 12287, '\P{	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(1, 12287, '\P{^	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(0, 12288, '\p{	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(1, 12288, '\p{^	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(1, 12288, '\P{	 IS_Ideographic_description_CHARACTERS}', "");
+    Expect(0, 12288, '\P{^	 IS_Ideographic_description_CHARACTERS}', "");
+    Error('\p{	:=IN_Ideographic_Description_characters}');
+    Error('\P{	:=IN_Ideographic_Description_characters}');
     Expect(1, 12287, '\p{inideographicdescriptioncharacters}', "");
     Expect(0, 12287, '\p{^inideographicdescriptioncharacters}', "");
     Expect(0, 12287, '\P{inideographicdescriptioncharacters}', "");
@@ -101611,16 +102617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12288, '\p{^inideographicdescriptioncharacters}', "");
     Expect(1, 12288, '\P{inideographicdescriptioncharacters}', "");
     Expect(0, 12288, '\P{^inideographicdescriptioncharacters}', "");
-    Expect(1, 12287, '\p{	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12287, '\p{^	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12287, '\P{	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12287, '\P{^	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12288, '\p{	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12288, '\p{^	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(1, 12288, '\P{	in_ideographic_DESCRIPTION_characters}', "");
-    Expect(0, 12288, '\P{^	in_ideographic_DESCRIPTION_characters}', "");
-    Error('\p{:=-_in_IDC}');
-    Error('\P{:=-_in_IDC}');
+    Expect(1, 12287, '\p{_-In_ideographic_Description_characters}', "");
+    Expect(0, 12287, '\p{^_-In_ideographic_Description_characters}', "");
+    Expect(0, 12287, '\P{_-In_ideographic_Description_characters}', "");
+    Expect(1, 12287, '\P{^_-In_ideographic_Description_characters}', "");
+    Expect(0, 12288, '\p{_-In_ideographic_Description_characters}', "");
+    Expect(1, 12288, '\p{^_-In_ideographic_Description_characters}', "");
+    Expect(1, 12288, '\P{_-In_ideographic_Description_characters}', "");
+    Expect(0, 12288, '\P{^_-In_ideographic_Description_characters}', "");
+    Error('\p{_-in_idc:=}');
+    Error('\P{_-in_idc:=}');
     Expect(1, 12287, '\p{inidc}', "");
     Expect(0, 12287, '\p{^inidc}', "");
     Expect(0, 12287, '\P{inidc}', "");
@@ -101629,16 +102635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12288, '\p{^inidc}', "");
     Expect(1, 12288, '\P{inidc}', "");
     Expect(0, 12288, '\P{^inidc}', "");
-    Expect(1, 12287, '\p{__In_idc}', "");
-    Expect(0, 12287, '\p{^__In_idc}', "");
-    Expect(0, 12287, '\P{__In_idc}', "");
-    Expect(1, 12287, '\P{^__In_idc}', "");
-    Expect(0, 12288, '\p{__In_idc}', "");
-    Expect(1, 12288, '\p{^__In_idc}', "");
-    Expect(1, 12288, '\P{__In_idc}', "");
-    Expect(0, 12288, '\P{^__In_idc}', "");
-    Error('\p{	/a/IDEOGRAPHIC_SYMBOLS_and_PUNCTUATION}');
-    Error('\P{	/a/IDEOGRAPHIC_SYMBOLS_and_PUNCTUATION}');
+    Expect(1, 12287, '\p{_ In_idc}', "");
+    Expect(0, 12287, '\p{^_ In_idc}', "");
+    Expect(0, 12287, '\P{_ In_idc}', "");
+    Expect(1, 12287, '\P{^_ In_idc}', "");
+    Expect(0, 12288, '\p{_ In_idc}', "");
+    Expect(1, 12288, '\p{^_ In_idc}', "");
+    Expect(1, 12288, '\P{_ In_idc}', "");
+    Expect(0, 12288, '\P{^_ In_idc}', "");
+    Error('\p{:=IDEOGRAPHIC_SYMBOLS_and_Punctuation}');
+    Error('\P{:=IDEOGRAPHIC_SYMBOLS_and_Punctuation}');
     Expect(1, 94207, '\p{ideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\p{^ideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\P{ideographicsymbolsandpunctuation}', "");
@@ -101647,16 +102653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94208, '\p{^ideographicsymbolsandpunctuation}', "");
     Expect(1, 94208, '\P{ideographicsymbolsandpunctuation}', "");
     Expect(0, 94208, '\P{^ideographicsymbolsandpunctuation}', "");
-    Expect(1, 94207, '\p{	Ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94207, '\p{^	Ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94207, '\P{	Ideographic_symbols_And_Punctuation}', "");
-    Expect(1, 94207, '\P{^	Ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94208, '\p{	Ideographic_symbols_And_Punctuation}', "");
-    Expect(1, 94208, '\p{^	Ideographic_symbols_And_Punctuation}', "");
-    Expect(1, 94208, '\P{	Ideographic_symbols_And_Punctuation}', "");
-    Expect(0, 94208, '\P{^	Ideographic_symbols_And_Punctuation}', "");
-    Error('\p{_is_IDEOGRAPHIC_Symbols_And_Punctuation:=}');
-    Error('\P{_is_IDEOGRAPHIC_Symbols_And_Punctuation:=}');
+    Expect(1, 94207, '\p{ ideographic_Symbols_And_Punctuation}', "");
+    Expect(0, 94207, '\p{^ ideographic_Symbols_And_Punctuation}', "");
+    Expect(0, 94207, '\P{ ideographic_Symbols_And_Punctuation}', "");
+    Expect(1, 94207, '\P{^ ideographic_Symbols_And_Punctuation}', "");
+    Expect(0, 94208, '\p{ ideographic_Symbols_And_Punctuation}', "");
+    Expect(1, 94208, '\p{^ ideographic_Symbols_And_Punctuation}', "");
+    Expect(1, 94208, '\P{ ideographic_Symbols_And_Punctuation}', "");
+    Expect(0, 94208, '\P{^ ideographic_Symbols_And_Punctuation}', "");
+    Error('\p{_IS_ideographic_Symbols_And_Punctuation:=}');
+    Error('\P{_IS_ideographic_Symbols_And_Punctuation:=}');
     Expect(1, 94207, '\p{isideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\p{^isideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\P{isideographicsymbolsandpunctuation}', "");
@@ -101665,16 +102671,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94208, '\p{^isideographicsymbolsandpunctuation}', "");
     Expect(1, 94208, '\P{isideographicsymbolsandpunctuation}', "");
     Expect(0, 94208, '\P{^isideographicsymbolsandpunctuation}', "");
-    Expect(1, 94207, '\p{__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(0, 94207, '\p{^__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(0, 94207, '\P{__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(1, 94207, '\P{^__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(0, 94208, '\p{__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(1, 94208, '\p{^__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(1, 94208, '\P{__IS_ideographic_Symbols_And_punctuation}', "");
-    Expect(0, 94208, '\P{^__IS_ideographic_Symbols_And_punctuation}', "");
-    Error('\p{/a/	-In_IDEOGRAPHIC_Symbols_And_Punctuation}');
-    Error('\P{/a/	-In_IDEOGRAPHIC_Symbols_And_Punctuation}');
+    Expect(1, 94207, '\p{ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(0, 94207, '\p{^ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(0, 94207, '\P{ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(1, 94207, '\P{^ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(0, 94208, '\p{ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(1, 94208, '\p{^ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(1, 94208, '\P{ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Expect(0, 94208, '\P{^ is_Ideographic_SYMBOLS_And_punctuation}', "");
+    Error('\p{:= IN_Ideographic_SYMBOLS_AND_PUNCTUATION}');
+    Error('\P{:= IN_Ideographic_SYMBOLS_AND_PUNCTUATION}');
     Expect(1, 94207, '\p{inideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\p{^inideographicsymbolsandpunctuation}', "");
     Expect(0, 94207, '\P{inideographicsymbolsandpunctuation}', "");
@@ -101683,16 +102689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94208, '\p{^inideographicsymbolsandpunctuation}', "");
     Expect(1, 94208, '\P{inideographicsymbolsandpunctuation}', "");
     Expect(0, 94208, '\P{^inideographicsymbolsandpunctuation}', "");
-    Expect(1, 94207, '\p{--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(0, 94207, '\p{^--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(0, 94207, '\P{--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(1, 94207, '\P{^--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(0, 94208, '\p{--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(1, 94208, '\p{^--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(1, 94208, '\P{--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Expect(0, 94208, '\P{^--IN_IDEOGRAPHIC_Symbols_and_PUNCTUATION}', "");
-    Error('\p{	 Ideographic_SYMBOLS/a/}');
-    Error('\P{	 Ideographic_SYMBOLS/a/}');
+    Expect(1, 94207, '\p{-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(0, 94207, '\p{^-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(0, 94207, '\P{-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(1, 94207, '\P{^-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(0, 94208, '\p{-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(1, 94208, '\p{^-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(1, 94208, '\P{-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Expect(0, 94208, '\P{^-	In_ideographic_Symbols_And_PUNCTUATION}', "");
+    Error('\p{__Ideographic_Symbols:=}');
+    Error('\P{__Ideographic_Symbols:=}');
     Expect(1, 94207, '\p{ideographicsymbols}', "");
     Expect(0, 94207, '\p{^ideographicsymbols}', "");
     Expect(0, 94207, '\P{ideographicsymbols}', "");
@@ -101701,16 +102707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94208, '\p{^ideographicsymbols}', "");
     Expect(1, 94208, '\P{ideographicsymbols}', "");
     Expect(0, 94208, '\P{^ideographicsymbols}', "");
-    Expect(1, 94207, '\p{_ IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94207, '\p{^_ IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94207, '\P{_ IDEOGRAPHIC_Symbols}', "");
-    Expect(1, 94207, '\P{^_ IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94208, '\p{_ IDEOGRAPHIC_Symbols}', "");
-    Expect(1, 94208, '\p{^_ IDEOGRAPHIC_Symbols}', "");
-    Expect(1, 94208, '\P{_ IDEOGRAPHIC_Symbols}', "");
-    Expect(0, 94208, '\P{^_ IDEOGRAPHIC_Symbols}', "");
-    Error('\p{:=	 Is_Ideographic_Symbols}');
-    Error('\P{:=	 Is_Ideographic_Symbols}');
+    Expect(1, 94207, '\p{ 	Ideographic_SYMBOLS}', "");
+    Expect(0, 94207, '\p{^ 	Ideographic_SYMBOLS}', "");
+    Expect(0, 94207, '\P{ 	Ideographic_SYMBOLS}', "");
+    Expect(1, 94207, '\P{^ 	Ideographic_SYMBOLS}', "");
+    Expect(0, 94208, '\p{ 	Ideographic_SYMBOLS}', "");
+    Expect(1, 94208, '\p{^ 	Ideographic_SYMBOLS}', "");
+    Expect(1, 94208, '\P{ 	Ideographic_SYMBOLS}', "");
+    Expect(0, 94208, '\P{^ 	Ideographic_SYMBOLS}', "");
+    Error('\p{ _Is_ideographic_symbols:=}');
+    Error('\P{ _Is_ideographic_symbols:=}');
     Expect(1, 94207, '\p{isideographicsymbols}', "");
     Expect(0, 94207, '\p{^isideographicsymbols}', "");
     Expect(0, 94207, '\P{isideographicsymbols}', "");
@@ -101719,16 +102725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94208, '\p{^isideographicsymbols}', "");
     Expect(1, 94208, '\P{isideographicsymbols}', "");
     Expect(0, 94208, '\P{^isideographicsymbols}', "");
-    Expect(1, 94207, '\p{_-is_Ideographic_Symbols}', "");
-    Expect(0, 94207, '\p{^_-is_Ideographic_Symbols}', "");
-    Expect(0, 94207, '\P{_-is_Ideographic_Symbols}', "");
-    Expect(1, 94207, '\P{^_-is_Ideographic_Symbols}', "");
-    Expect(0, 94208, '\p{_-is_Ideographic_Symbols}', "");
-    Expect(1, 94208, '\p{^_-is_Ideographic_Symbols}', "");
-    Expect(1, 94208, '\P{_-is_Ideographic_Symbols}', "");
-    Expect(0, 94208, '\P{^_-is_Ideographic_Symbols}', "");
-    Error('\p{:=-_IN_Ideographic_symbols}');
-    Error('\P{:=-_IN_Ideographic_symbols}');
+    Expect(1, 94207, '\p{_	Is_Ideographic_Symbols}', "");
+    Expect(0, 94207, '\p{^_	Is_Ideographic_Symbols}', "");
+    Expect(0, 94207, '\P{_	Is_Ideographic_Symbols}', "");
+    Expect(1, 94207, '\P{^_	Is_Ideographic_Symbols}', "");
+    Expect(0, 94208, '\p{_	Is_Ideographic_Symbols}', "");
+    Expect(1, 94208, '\p{^_	Is_Ideographic_Symbols}', "");
+    Expect(1, 94208, '\P{_	Is_Ideographic_Symbols}', "");
+    Expect(0, 94208, '\P{^_	Is_Ideographic_Symbols}', "");
+    Error('\p{:=_ IN_Ideographic_Symbols}');
+    Error('\P{:=_ IN_Ideographic_Symbols}');
     Expect(1, 94207, '\p{inideographicsymbols}', "");
     Expect(0, 94207, '\p{^inideographicsymbols}', "");
     Expect(0, 94207, '\P{inideographicsymbols}', "");
@@ -101737,16 +102743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94208, '\p{^inideographicsymbols}', "");
     Expect(1, 94208, '\P{inideographicsymbols}', "");
     Expect(0, 94208, '\P{^inideographicsymbols}', "");
-    Expect(1, 94207, '\p{_-in_Ideographic_SYMBOLS}', "");
-    Expect(0, 94207, '\p{^_-in_Ideographic_SYMBOLS}', "");
-    Expect(0, 94207, '\P{_-in_Ideographic_SYMBOLS}', "");
-    Expect(1, 94207, '\P{^_-in_Ideographic_SYMBOLS}', "");
-    Expect(0, 94208, '\p{_-in_Ideographic_SYMBOLS}', "");
-    Expect(1, 94208, '\p{^_-in_Ideographic_SYMBOLS}', "");
-    Expect(1, 94208, '\P{_-in_Ideographic_SYMBOLS}', "");
-    Expect(0, 94208, '\P{^_-in_Ideographic_SYMBOLS}', "");
-    Error('\p{/a/ 	IDS_Binary_Operator}');
-    Error('\P{/a/ 	IDS_Binary_Operator}');
+    Expect(1, 94207, '\p{	in_ideographic_SYMBOLS}', "");
+    Expect(0, 94207, '\p{^	in_ideographic_SYMBOLS}', "");
+    Expect(0, 94207, '\P{	in_ideographic_SYMBOLS}', "");
+    Expect(1, 94207, '\P{^	in_ideographic_SYMBOLS}', "");
+    Expect(0, 94208, '\p{	in_ideographic_SYMBOLS}', "");
+    Expect(1, 94208, '\p{^	in_ideographic_SYMBOLS}', "");
+    Expect(1, 94208, '\P{	in_ideographic_SYMBOLS}', "");
+    Expect(0, 94208, '\P{^	in_ideographic_SYMBOLS}', "");
+    Error('\p{		IDS_Binary_Operator:=}');
+    Error('\P{		IDS_Binary_Operator:=}');
     Expect(1, 12283, '\p{idsbinaryoperator}', "");
     Expect(0, 12283, '\p{^idsbinaryoperator}', "");
     Expect(0, 12283, '\P{idsbinaryoperator}', "");
@@ -101755,16 +102761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12284, '\p{^idsbinaryoperator}', "");
     Expect(1, 12284, '\P{idsbinaryoperator}', "");
     Expect(0, 12284, '\P{^idsbinaryoperator}', "");
-    Expect(1, 12283, '\p{ 	ids_Binary_Operator}', "");
-    Expect(0, 12283, '\p{^ 	ids_Binary_Operator}', "");
-    Expect(0, 12283, '\P{ 	ids_Binary_Operator}', "");
-    Expect(1, 12283, '\P{^ 	ids_Binary_Operator}', "");
-    Expect(0, 12284, '\p{ 	ids_Binary_Operator}', "");
-    Expect(1, 12284, '\p{^ 	ids_Binary_Operator}', "");
-    Expect(1, 12284, '\P{ 	ids_Binary_Operator}', "");
-    Expect(0, 12284, '\P{^ 	ids_Binary_Operator}', "");
-    Error('\p{:=-IS_ids_Binary_operator}');
-    Error('\P{:=-IS_ids_Binary_operator}');
+    Expect(1, 12283, '\p{_IDS_Binary_OPERATOR}', "");
+    Expect(0, 12283, '\p{^_IDS_Binary_OPERATOR}', "");
+    Expect(0, 12283, '\P{_IDS_Binary_OPERATOR}', "");
+    Expect(1, 12283, '\P{^_IDS_Binary_OPERATOR}', "");
+    Expect(0, 12284, '\p{_IDS_Binary_OPERATOR}', "");
+    Expect(1, 12284, '\p{^_IDS_Binary_OPERATOR}', "");
+    Expect(1, 12284, '\P{_IDS_Binary_OPERATOR}', "");
+    Expect(0, 12284, '\P{^_IDS_Binary_OPERATOR}', "");
+    Error('\p{ -Is_IDS_Binary_operator/a/}');
+    Error('\P{ -Is_IDS_Binary_operator/a/}');
     Expect(1, 12283, '\p{isidsbinaryoperator}', "");
     Expect(0, 12283, '\p{^isidsbinaryoperator}', "");
     Expect(0, 12283, '\P{isidsbinaryoperator}', "");
@@ -101773,16 +102779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12284, '\p{^isidsbinaryoperator}', "");
     Expect(1, 12284, '\P{isidsbinaryoperator}', "");
     Expect(0, 12284, '\P{^isidsbinaryoperator}', "");
-    Expect(1, 12283, '\p{	_is_IDS_binary_Operator}', "");
-    Expect(0, 12283, '\p{^	_is_IDS_binary_Operator}', "");
-    Expect(0, 12283, '\P{	_is_IDS_binary_Operator}', "");
-    Expect(1, 12283, '\P{^	_is_IDS_binary_Operator}', "");
-    Expect(0, 12284, '\p{	_is_IDS_binary_Operator}', "");
-    Expect(1, 12284, '\p{^	_is_IDS_binary_Operator}', "");
-    Expect(1, 12284, '\P{	_is_IDS_binary_Operator}', "");
-    Expect(0, 12284, '\P{^	_is_IDS_binary_Operator}', "");
-    Error('\p{		IDSB/a/}');
-    Error('\P{		IDSB/a/}');
+    Expect(1, 12283, '\p{_ Is_IDS_Binary_Operator}', "");
+    Expect(0, 12283, '\p{^_ Is_IDS_Binary_Operator}', "");
+    Expect(0, 12283, '\P{_ Is_IDS_Binary_Operator}', "");
+    Expect(1, 12283, '\P{^_ Is_IDS_Binary_Operator}', "");
+    Expect(0, 12284, '\p{_ Is_IDS_Binary_Operator}', "");
+    Expect(1, 12284, '\p{^_ Is_IDS_Binary_Operator}', "");
+    Expect(1, 12284, '\P{_ Is_IDS_Binary_Operator}', "");
+    Expect(0, 12284, '\P{^_ Is_IDS_Binary_Operator}', "");
+    Error('\p{ /a/IDSB}');
+    Error('\P{ /a/IDSB}');
     Expect(1, 12283, '\p{idsb}', "");
     Expect(0, 12283, '\p{^idsb}', "");
     Expect(0, 12283, '\P{idsb}', "");
@@ -101791,16 +102797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12284, '\p{^idsb}', "");
     Expect(1, 12284, '\P{idsb}', "");
     Expect(0, 12284, '\P{^idsb}', "");
-    Expect(1, 12283, '\p{-idsb}', "");
-    Expect(0, 12283, '\p{^-idsb}', "");
-    Expect(0, 12283, '\P{-idsb}', "");
-    Expect(1, 12283, '\P{^-idsb}', "");
-    Expect(0, 12284, '\p{-idsb}', "");
-    Expect(1, 12284, '\p{^-idsb}', "");
-    Expect(1, 12284, '\P{-idsb}', "");
-    Expect(0, 12284, '\P{^-idsb}', "");
-    Error('\p{	-is_IDSB:=}');
-    Error('\P{	-is_IDSB:=}');
+    Expect(1, 12283, '\p{_IDSB}', "");
+    Expect(0, 12283, '\p{^_IDSB}', "");
+    Expect(0, 12283, '\P{_IDSB}', "");
+    Expect(1, 12283, '\P{^_IDSB}', "");
+    Expect(0, 12284, '\p{_IDSB}', "");
+    Expect(1, 12284, '\p{^_IDSB}', "");
+    Expect(1, 12284, '\P{_IDSB}', "");
+    Expect(0, 12284, '\P{^_IDSB}', "");
+    Error('\p{:=_	IS_idsb}');
+    Error('\P{:=_	IS_idsb}');
     Expect(1, 12283, '\p{isidsb}', "");
     Expect(0, 12283, '\p{^isidsb}', "");
     Expect(0, 12283, '\P{isidsb}', "");
@@ -101809,16 +102815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12284, '\p{^isidsb}', "");
     Expect(1, 12284, '\P{isidsb}', "");
     Expect(0, 12284, '\P{^isidsb}', "");
-    Expect(1, 12283, '\p{ Is_IDSB}', "");
-    Expect(0, 12283, '\p{^ Is_IDSB}', "");
-    Expect(0, 12283, '\P{ Is_IDSB}', "");
-    Expect(1, 12283, '\P{^ Is_IDSB}', "");
-    Expect(0, 12284, '\p{ Is_IDSB}', "");
-    Expect(1, 12284, '\p{^ Is_IDSB}', "");
-    Expect(1, 12284, '\P{ Is_IDSB}', "");
-    Expect(0, 12284, '\P{^ Is_IDSB}', "");
-    Error('\p{/a/	 IDS_TRINARY_Operator}');
-    Error('\P{/a/	 IDS_TRINARY_Operator}');
+    Expect(1, 12283, '\p{ _Is_IDSB}', "");
+    Expect(0, 12283, '\p{^ _Is_IDSB}', "");
+    Expect(0, 12283, '\P{ _Is_IDSB}', "");
+    Expect(1, 12283, '\P{^ _Is_IDSB}', "");
+    Expect(0, 12284, '\p{ _Is_IDSB}', "");
+    Expect(1, 12284, '\p{^ _Is_IDSB}', "");
+    Expect(1, 12284, '\P{ _Is_IDSB}', "");
+    Expect(0, 12284, '\P{^ _Is_IDSB}', "");
+    Error('\p{:=	_IDS_TRINARY_Operator}');
+    Error('\P{:=	_IDS_TRINARY_Operator}');
     Expect(1, 12275, '\p{idstrinaryoperator}', "");
     Expect(0, 12275, '\p{^idstrinaryoperator}', "");
     Expect(0, 12275, '\P{idstrinaryoperator}', "");
@@ -101827,16 +102833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12276, '\p{^idstrinaryoperator}', "");
     Expect(1, 12276, '\P{idstrinaryoperator}', "");
     Expect(0, 12276, '\P{^idstrinaryoperator}', "");
-    Expect(1, 12275, '\p{__IDS_trinary_Operator}', "");
-    Expect(0, 12275, '\p{^__IDS_trinary_Operator}', "");
-    Expect(0, 12275, '\P{__IDS_trinary_Operator}', "");
-    Expect(1, 12275, '\P{^__IDS_trinary_Operator}', "");
-    Expect(0, 12276, '\p{__IDS_trinary_Operator}', "");
-    Expect(1, 12276, '\p{^__IDS_trinary_Operator}', "");
-    Expect(1, 12276, '\P{__IDS_trinary_Operator}', "");
-    Expect(0, 12276, '\P{^__IDS_trinary_Operator}', "");
-    Error('\p{:=	-Is_IDS_TRINARY_operator}');
-    Error('\P{:=	-Is_IDS_TRINARY_operator}');
+    Expect(1, 12275, '\p{ 	IDS_trinary_OPERATOR}', "");
+    Expect(0, 12275, '\p{^ 	IDS_trinary_OPERATOR}', "");
+    Expect(0, 12275, '\P{ 	IDS_trinary_OPERATOR}', "");
+    Expect(1, 12275, '\P{^ 	IDS_trinary_OPERATOR}', "");
+    Expect(0, 12276, '\p{ 	IDS_trinary_OPERATOR}', "");
+    Expect(1, 12276, '\p{^ 	IDS_trinary_OPERATOR}', "");
+    Expect(1, 12276, '\P{ 	IDS_trinary_OPERATOR}', "");
+    Expect(0, 12276, '\P{^ 	IDS_trinary_OPERATOR}', "");
+    Error('\p{-/a/Is_ids_TRINARY_Operator}');
+    Error('\P{-/a/Is_ids_TRINARY_Operator}');
     Expect(1, 12275, '\p{isidstrinaryoperator}', "");
     Expect(0, 12275, '\p{^isidstrinaryoperator}', "");
     Expect(0, 12275, '\P{isidstrinaryoperator}', "");
@@ -101845,16 +102851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12276, '\p{^isidstrinaryoperator}', "");
     Expect(1, 12276, '\P{isidstrinaryoperator}', "");
     Expect(0, 12276, '\P{^isidstrinaryoperator}', "");
-    Expect(1, 12275, '\p{	 is_ids_Trinary_operator}', "");
-    Expect(0, 12275, '\p{^	 is_ids_Trinary_operator}', "");
-    Expect(0, 12275, '\P{	 is_ids_Trinary_operator}', "");
-    Expect(1, 12275, '\P{^	 is_ids_Trinary_operator}', "");
-    Expect(0, 12276, '\p{	 is_ids_Trinary_operator}', "");
-    Expect(1, 12276, '\p{^	 is_ids_Trinary_operator}', "");
-    Expect(1, 12276, '\P{	 is_ids_Trinary_operator}', "");
-    Expect(0, 12276, '\P{^	 is_ids_Trinary_operator}', "");
-    Error('\p{:=	IDST}');
-    Error('\P{:=	IDST}');
+    Expect(1, 12275, '\p{Is_IDS_Trinary_Operator}', "");
+    Expect(0, 12275, '\p{^Is_IDS_Trinary_Operator}', "");
+    Expect(0, 12275, '\P{Is_IDS_Trinary_Operator}', "");
+    Expect(1, 12275, '\P{^Is_IDS_Trinary_Operator}', "");
+    Expect(0, 12276, '\p{Is_IDS_Trinary_Operator}', "");
+    Expect(1, 12276, '\p{^Is_IDS_Trinary_Operator}', "");
+    Expect(1, 12276, '\P{Is_IDS_Trinary_Operator}', "");
+    Expect(0, 12276, '\P{^Is_IDS_Trinary_Operator}', "");
+    Error('\p{-_IDST:=}');
+    Error('\P{-_IDST:=}');
     Expect(1, 12275, '\p{idst}', "");
     Expect(0, 12275, '\p{^idst}', "");
     Expect(0, 12275, '\P{idst}', "");
@@ -101863,16 +102869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12276, '\p{^idst}', "");
     Expect(1, 12276, '\P{idst}', "");
     Expect(0, 12276, '\P{^idst}', "");
-    Expect(1, 12275, '\p{- IDST}', "");
-    Expect(0, 12275, '\p{^- IDST}', "");
-    Expect(0, 12275, '\P{- IDST}', "");
-    Expect(1, 12275, '\P{^- IDST}', "");
-    Expect(0, 12276, '\p{- IDST}', "");
-    Expect(1, 12276, '\p{^- IDST}', "");
-    Expect(1, 12276, '\P{- IDST}', "");
-    Expect(0, 12276, '\P{^- IDST}', "");
-    Error('\p{/a/IS_idst}');
-    Error('\P{/a/IS_idst}');
+    Expect(1, 12275, '\p{	IDST}', "");
+    Expect(0, 12275, '\p{^	IDST}', "");
+    Expect(0, 12275, '\P{	IDST}', "");
+    Expect(1, 12275, '\P{^	IDST}', "");
+    Expect(0, 12276, '\p{	IDST}', "");
+    Expect(1, 12276, '\p{^	IDST}', "");
+    Expect(1, 12276, '\P{	IDST}', "");
+    Expect(0, 12276, '\P{^	IDST}', "");
+    Error('\p{/a/-IS_IDST}');
+    Error('\P{/a/-IS_IDST}');
     Expect(1, 12275, '\p{isidst}', "");
     Expect(0, 12275, '\p{^isidst}', "");
     Expect(0, 12275, '\P{isidst}', "");
@@ -101881,16 +102887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12276, '\p{^isidst}', "");
     Expect(1, 12276, '\P{isidst}', "");
     Expect(0, 12276, '\P{^isidst}', "");
-    Expect(1, 12275, '\p{ -is_idst}', "");
-    Expect(0, 12275, '\p{^ -is_idst}', "");
-    Expect(0, 12275, '\P{ -is_idst}', "");
-    Expect(1, 12275, '\P{^ -is_idst}', "");
-    Expect(0, 12276, '\p{ -is_idst}', "");
-    Expect(1, 12276, '\p{^ -is_idst}', "");
-    Expect(1, 12276, '\P{ -is_idst}', "");
-    Expect(0, 12276, '\P{^ -is_idst}', "");
-    Error('\p{-	imperial_aramaic/a/}');
-    Error('\P{-	imperial_aramaic/a/}');
+    Expect(1, 12275, '\p{_ Is_IDST}', "");
+    Expect(0, 12275, '\p{^_ Is_IDST}', "");
+    Expect(0, 12275, '\P{_ Is_IDST}', "");
+    Expect(1, 12275, '\P{^_ Is_IDST}', "");
+    Expect(0, 12276, '\p{_ Is_IDST}', "");
+    Expect(1, 12276, '\p{^_ Is_IDST}', "");
+    Expect(1, 12276, '\P{_ Is_IDST}', "");
+    Expect(0, 12276, '\P{^_ Is_IDST}', "");
+    Error('\p{ -IMPERIAL_Aramaic/a/}');
+    Error('\P{ -IMPERIAL_Aramaic/a/}');
     Expect(1, 67679, '\p{imperialaramaic}', "");
     Expect(0, 67679, '\p{^imperialaramaic}', "");
     Expect(0, 67679, '\P{imperialaramaic}', "");
@@ -101899,16 +102905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67680, '\p{^imperialaramaic}', "");
     Expect(1, 67680, '\P{imperialaramaic}', "");
     Expect(0, 67680, '\P{^imperialaramaic}', "");
-    Expect(1, 67679, '\p{IMPERIAL_Aramaic}', "");
-    Expect(0, 67679, '\p{^IMPERIAL_Aramaic}', "");
-    Expect(0, 67679, '\P{IMPERIAL_Aramaic}', "");
-    Expect(1, 67679, '\P{^IMPERIAL_Aramaic}', "");
-    Expect(0, 67680, '\p{IMPERIAL_Aramaic}', "");
-    Expect(1, 67680, '\p{^IMPERIAL_Aramaic}', "");
-    Expect(1, 67680, '\P{IMPERIAL_Aramaic}', "");
-    Expect(0, 67680, '\P{^IMPERIAL_Aramaic}', "");
-    Error('\p{_:=Is_Imperial_aramaic}');
-    Error('\P{_:=Is_Imperial_aramaic}');
+    Expect(1, 67679, '\p{_IMPERIAL_Aramaic}', "");
+    Expect(0, 67679, '\p{^_IMPERIAL_Aramaic}', "");
+    Expect(0, 67679, '\P{_IMPERIAL_Aramaic}', "");
+    Expect(1, 67679, '\P{^_IMPERIAL_Aramaic}', "");
+    Expect(0, 67680, '\p{_IMPERIAL_Aramaic}', "");
+    Expect(1, 67680, '\p{^_IMPERIAL_Aramaic}', "");
+    Expect(1, 67680, '\P{_IMPERIAL_Aramaic}', "");
+    Expect(0, 67680, '\P{^_IMPERIAL_Aramaic}', "");
+    Error('\p{:=_Is_Imperial_aramaic}');
+    Error('\P{:=_Is_Imperial_aramaic}');
     Expect(1, 67679, '\p{isimperialaramaic}', "");
     Expect(0, 67679, '\p{^isimperialaramaic}', "");
     Expect(0, 67679, '\P{isimperialaramaic}', "");
@@ -101917,16 +102923,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67680, '\p{^isimperialaramaic}', "");
     Expect(1, 67680, '\P{isimperialaramaic}', "");
     Expect(0, 67680, '\P{^isimperialaramaic}', "");
-    Expect(1, 67679, '\p{-	is_Imperial_Aramaic}', "");
-    Expect(0, 67679, '\p{^-	is_Imperial_Aramaic}', "");
-    Expect(0, 67679, '\P{-	is_Imperial_Aramaic}', "");
-    Expect(1, 67679, '\P{^-	is_Imperial_Aramaic}', "");
-    Expect(0, 67680, '\p{-	is_Imperial_Aramaic}', "");
-    Expect(1, 67680, '\p{^-	is_Imperial_Aramaic}', "");
-    Expect(1, 67680, '\P{-	is_Imperial_Aramaic}', "");
-    Expect(0, 67680, '\P{^-	is_Imperial_Aramaic}', "");
-    Error('\p{/a/- Armi}');
-    Error('\P{/a/- Armi}');
+    Expect(1, 67679, '\p{-Is_Imperial_ARAMAIC}', "");
+    Expect(0, 67679, '\p{^-Is_Imperial_ARAMAIC}', "");
+    Expect(0, 67679, '\P{-Is_Imperial_ARAMAIC}', "");
+    Expect(1, 67679, '\P{^-Is_Imperial_ARAMAIC}', "");
+    Expect(0, 67680, '\p{-Is_Imperial_ARAMAIC}', "");
+    Expect(1, 67680, '\p{^-Is_Imperial_ARAMAIC}', "");
+    Expect(1, 67680, '\P{-Is_Imperial_ARAMAIC}', "");
+    Expect(0, 67680, '\P{^-Is_Imperial_ARAMAIC}', "");
+    Error('\p{	-Armi/a/}');
+    Error('\P{	-Armi/a/}');
     Expect(1, 67679, '\p{armi}', "");
     Expect(0, 67679, '\p{^armi}', "");
     Expect(0, 67679, '\P{armi}', "");
@@ -101935,16 +102941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67680, '\p{^armi}', "");
     Expect(1, 67680, '\P{armi}', "");
     Expect(0, 67680, '\P{^armi}', "");
-    Expect(1, 67679, '\p{	armi}', "");
-    Expect(0, 67679, '\p{^	armi}', "");
-    Expect(0, 67679, '\P{	armi}', "");
-    Expect(1, 67679, '\P{^	armi}', "");
-    Expect(0, 67680, '\p{	armi}', "");
-    Expect(1, 67680, '\p{^	armi}', "");
-    Expect(1, 67680, '\P{	armi}', "");
-    Expect(0, 67680, '\P{^	armi}', "");
-    Error('\p{/a/	-Is_ARMI}');
-    Error('\P{/a/	-Is_ARMI}');
+    Expect(1, 67679, '\p{_Armi}', "");
+    Expect(0, 67679, '\p{^_Armi}', "");
+    Expect(0, 67679, '\P{_Armi}', "");
+    Expect(1, 67679, '\P{^_Armi}', "");
+    Expect(0, 67680, '\p{_Armi}', "");
+    Expect(1, 67680, '\p{^_Armi}', "");
+    Expect(1, 67680, '\P{_Armi}', "");
+    Expect(0, 67680, '\P{^_Armi}', "");
+    Error('\p{	:=IS_ARMI}');
+    Error('\P{	:=IS_ARMI}');
     Expect(1, 67679, '\p{isarmi}', "");
     Expect(0, 67679, '\p{^isarmi}', "");
     Expect(0, 67679, '\P{isarmi}', "");
@@ -101953,16 +102959,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67680, '\p{^isarmi}', "");
     Expect(1, 67680, '\P{isarmi}', "");
     Expect(0, 67680, '\P{^isarmi}', "");
-    Expect(1, 67679, '\p{ Is_Armi}', "");
-    Expect(0, 67679, '\p{^ Is_Armi}', "");
-    Expect(0, 67679, '\P{ Is_Armi}', "");
-    Expect(1, 67679, '\P{^ Is_Armi}', "");
-    Expect(0, 67680, '\p{ Is_Armi}', "");
-    Expect(1, 67680, '\p{^ Is_Armi}', "");
-    Expect(1, 67680, '\P{ Is_Armi}', "");
-    Expect(0, 67680, '\P{^ Is_Armi}', "");
-    Error('\p{/a/ In_Adlam}');
-    Error('\P{/a/ In_Adlam}');
+    Expect(1, 67679, '\p{-_Is_ARMI}', "");
+    Expect(0, 67679, '\p{^-_Is_ARMI}', "");
+    Expect(0, 67679, '\P{-_Is_ARMI}', "");
+    Expect(1, 67679, '\P{^-_Is_ARMI}', "");
+    Expect(0, 67680, '\p{-_Is_ARMI}', "");
+    Expect(1, 67680, '\p{^-_Is_ARMI}', "");
+    Expect(1, 67680, '\P{-_Is_ARMI}', "");
+    Expect(0, 67680, '\P{^-_Is_ARMI}', "");
+    Error('\p{__In_Adlam:=}');
+    Error('\P{__In_Adlam:=}');
     Expect(1, 125279, '\p{inadlam}', "");
     Expect(0, 125279, '\p{^inadlam}', "");
     Expect(0, 125279, '\P{inadlam}', "");
@@ -101971,26 +102977,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^inadlam}', "");
     Expect(1, 125280, '\P{inadlam}', "");
     Expect(0, 125280, '\P{^inadlam}', "");
-    Expect(1, 125279, '\p{_-In_adlam}', "");
-    Expect(0, 125279, '\p{^_-In_adlam}', "");
-    Expect(0, 125279, '\P{_-In_adlam}', "");
-    Expect(1, 125279, '\P{^_-In_adlam}', "");
-    Expect(0, 125280, '\p{_-In_adlam}', "");
-    Expect(1, 125280, '\p{^_-In_adlam}', "");
-    Expect(1, 125280, '\P{_-In_adlam}', "");
-    Expect(0, 125280, '\P{^_-In_adlam}', "");
-    Error('\p{/a/_ In_ADLAM}');
-    Error('\P{/a/_ In_ADLAM}');
-    Expect(1, 125279, '\p{  in_adlam}', "");
-    Expect(0, 125279, '\p{^  in_adlam}', "");
-    Expect(0, 125279, '\P{  in_adlam}', "");
-    Expect(1, 125279, '\P{^  in_adlam}', "");
-    Expect(0, 125280, '\p{  in_adlam}', "");
-    Expect(1, 125280, '\p{^  in_adlam}', "");
-    Expect(1, 125280, '\P{  in_adlam}', "");
-    Expect(0, 125280, '\P{^  in_adlam}', "");
-    Error('\p{-IN_ahom/a/}');
-    Error('\P{-IN_ahom/a/}');
+    Expect(1, 125279, '\p{_	in_ADLAM}', "");
+    Expect(0, 125279, '\p{^_	in_ADLAM}', "");
+    Expect(0, 125279, '\P{_	in_ADLAM}', "");
+    Expect(1, 125279, '\P{^_	in_ADLAM}', "");
+    Expect(0, 125280, '\p{_	in_ADLAM}', "");
+    Expect(1, 125280, '\p{^_	in_ADLAM}', "");
+    Expect(1, 125280, '\P{_	in_ADLAM}', "");
+    Expect(0, 125280, '\P{^_	in_ADLAM}', "");
+    Error('\p{ 	In_adlam:=}');
+    Error('\P{ 	In_adlam:=}');
+    Expect(1, 125279, '\p{ _in_Adlam}', "");
+    Expect(0, 125279, '\p{^ _in_Adlam}', "");
+    Expect(0, 125279, '\P{ _in_Adlam}', "");
+    Expect(1, 125279, '\P{^ _in_Adlam}', "");
+    Expect(0, 125280, '\p{ _in_Adlam}', "");
+    Expect(1, 125280, '\p{^ _in_Adlam}', "");
+    Expect(1, 125280, '\P{ _in_Adlam}', "");
+    Expect(0, 125280, '\P{^ _in_Adlam}', "");
+    Error('\p{	In_AHOM:=}');
+    Error('\P{	In_AHOM:=}');
     Expect(1, 71503, '\p{inahom}', "");
     Expect(0, 71503, '\p{^inahom}', "");
     Expect(0, 71503, '\P{inahom}', "");
@@ -101999,26 +103005,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71504, '\p{^inahom}', "");
     Expect(1, 71504, '\P{inahom}', "");
     Expect(0, 71504, '\P{^inahom}', "");
-    Expect(1, 71503, '\p{- IN_Ahom}', "");
-    Expect(0, 71503, '\p{^- IN_Ahom}', "");
-    Expect(0, 71503, '\P{- IN_Ahom}', "");
-    Expect(1, 71503, '\P{^- IN_Ahom}', "");
-    Expect(0, 71504, '\p{- IN_Ahom}', "");
-    Expect(1, 71504, '\p{^- IN_Ahom}', "");
-    Expect(1, 71504, '\P{- IN_Ahom}', "");
-    Expect(0, 71504, '\P{^- IN_Ahom}', "");
-    Error('\p{/a/-In_Ahom}');
-    Error('\P{/a/-In_Ahom}');
-    Expect(1, 71503, '\p{  IN_Ahom}', "");
-    Expect(0, 71503, '\p{^  IN_Ahom}', "");
-    Expect(0, 71503, '\P{  IN_Ahom}', "");
-    Expect(1, 71503, '\P{^  IN_Ahom}', "");
-    Expect(0, 71504, '\p{  IN_Ahom}', "");
-    Expect(1, 71504, '\p{^  IN_Ahom}', "");
-    Expect(1, 71504, '\P{  IN_Ahom}', "");
-    Expect(0, 71504, '\P{^  IN_Ahom}', "");
-    Error('\p{/a/ -in_Anatolian_Hieroglyphs}');
-    Error('\P{/a/ -in_Anatolian_Hieroglyphs}');
+    Expect(1, 71503, '\p{_ IN_Ahom}', "");
+    Expect(0, 71503, '\p{^_ IN_Ahom}', "");
+    Expect(0, 71503, '\P{_ IN_Ahom}', "");
+    Expect(1, 71503, '\P{^_ IN_Ahom}', "");
+    Expect(0, 71504, '\p{_ IN_Ahom}', "");
+    Expect(1, 71504, '\p{^_ IN_Ahom}', "");
+    Expect(1, 71504, '\P{_ IN_Ahom}', "");
+    Expect(0, 71504, '\P{^_ IN_Ahom}', "");
+    Error('\p{_:=IN_Ahom}');
+    Error('\P{_:=IN_Ahom}');
+    Expect(1, 71503, '\p{	in_AHOM}', "");
+    Expect(0, 71503, '\p{^	in_AHOM}', "");
+    Expect(0, 71503, '\P{	in_AHOM}', "");
+    Expect(1, 71503, '\P{^	in_AHOM}', "");
+    Expect(0, 71504, '\p{	in_AHOM}', "");
+    Expect(1, 71504, '\p{^	in_AHOM}', "");
+    Expect(1, 71504, '\P{	in_AHOM}', "");
+    Expect(0, 71504, '\P{^	in_AHOM}', "");
+    Error('\p{:=-_in_ANATOLIAN_Hieroglyphs}');
+    Error('\P{:=-_in_ANATOLIAN_Hieroglyphs}');
     Expect(1, 83583, '\p{inanatolianhieroglyphs}', "");
     Expect(0, 83583, '\p{^inanatolianhieroglyphs}', "");
     Expect(0, 83583, '\P{inanatolianhieroglyphs}', "");
@@ -102027,26 +103033,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 83584, '\p{^inanatolianhieroglyphs}', "");
     Expect(1, 83584, '\P{inanatolianhieroglyphs}', "");
     Expect(0, 83584, '\P{^inanatolianhieroglyphs}', "");
-    Expect(1, 83583, '\p{__IN_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83583, '\p{^__IN_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83583, '\P{__IN_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83583, '\P{^__IN_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83584, '\p{__IN_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83584, '\p{^__IN_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83584, '\P{__IN_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83584, '\P{^__IN_Anatolian_Hieroglyphs}', "");
-    Error('\p{ :=IN_anatolian_hieroglyphs}');
-    Error('\P{ :=IN_anatolian_hieroglyphs}');
-    Expect(1, 83583, '\p{_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83583, '\p{^_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83583, '\P{_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83583, '\P{^_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83584, '\p{_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83584, '\p{^_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83584, '\P{_in_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83584, '\P{^_in_ANATOLIAN_Hieroglyphs}', "");
-    Error('\p{-/a/In_ARABIC}');
-    Error('\P{-/a/In_ARABIC}');
+    Expect(1, 83583, '\p{In_anatolian_hieroglyphs}', "");
+    Expect(0, 83583, '\p{^In_anatolian_hieroglyphs}', "");
+    Expect(0, 83583, '\P{In_anatolian_hieroglyphs}', "");
+    Expect(1, 83583, '\P{^In_anatolian_hieroglyphs}', "");
+    Expect(0, 83584, '\p{In_anatolian_hieroglyphs}', "");
+    Expect(1, 83584, '\p{^In_anatolian_hieroglyphs}', "");
+    Expect(1, 83584, '\P{In_anatolian_hieroglyphs}', "");
+    Expect(0, 83584, '\P{^In_anatolian_hieroglyphs}', "");
+    Error('\p{:= _In_Anatolian_Hieroglyphs}');
+    Error('\P{:= _In_Anatolian_Hieroglyphs}');
+    Expect(1, 83583, '\p{		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83583, '\p{^		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83583, '\P{		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(1, 83583, '\P{^		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83584, '\p{		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(1, 83584, '\p{^		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(1, 83584, '\P{		In_Anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83584, '\P{^		In_Anatolian_HIEROGLYPHS}', "");
+    Error('\p{-:=In_Arabic}');
+    Error('\P{-:=In_Arabic}');
     Expect(1, 1791, '\p{inarabic}', "");
     Expect(0, 1791, '\p{^inarabic}', "");
     Expect(0, 1791, '\P{inarabic}', "");
@@ -102055,26 +103061,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1792, '\p{^inarabic}', "");
     Expect(1, 1792, '\P{inarabic}', "");
     Expect(0, 1792, '\P{^inarabic}', "");
-    Expect(1, 1791, '\p{_In_ARABIC}', "");
-    Expect(0, 1791, '\p{^_In_ARABIC}', "");
-    Expect(0, 1791, '\P{_In_ARABIC}', "");
-    Expect(1, 1791, '\P{^_In_ARABIC}', "");
-    Expect(0, 1792, '\p{_In_ARABIC}', "");
-    Expect(1, 1792, '\p{^_In_ARABIC}', "");
-    Expect(1, 1792, '\P{_In_ARABIC}', "");
-    Expect(0, 1792, '\P{^_In_ARABIC}', "");
-    Error('\p{	/a/in_Arabic}');
-    Error('\P{	/a/in_Arabic}');
-    Expect(1, 1791, '\p{	In_Arabic}', "");
-    Expect(0, 1791, '\p{^	In_Arabic}', "");
-    Expect(0, 1791, '\P{	In_Arabic}', "");
-    Expect(1, 1791, '\P{^	In_Arabic}', "");
-    Expect(0, 1792, '\p{	In_Arabic}', "");
-    Expect(1, 1792, '\p{^	In_Arabic}', "");
-    Expect(1, 1792, '\P{	In_Arabic}', "");
-    Expect(0, 1792, '\P{^	In_Arabic}', "");
-    Error('\p{	/a/IN_armenian}');
-    Error('\P{	/a/IN_armenian}');
+    Expect(1, 1791, '\p{	IN_Arabic}', "");
+    Expect(0, 1791, '\p{^	IN_Arabic}', "");
+    Expect(0, 1791, '\P{	IN_Arabic}', "");
+    Expect(1, 1791, '\P{^	IN_Arabic}', "");
+    Expect(0, 1792, '\p{	IN_Arabic}', "");
+    Expect(1, 1792, '\p{^	IN_Arabic}', "");
+    Expect(1, 1792, '\P{	IN_Arabic}', "");
+    Expect(0, 1792, '\P{^	IN_Arabic}', "");
+    Error('\p{:=In_Arabic}');
+    Error('\P{:=In_Arabic}');
+    Expect(1, 1791, '\p{- In_Arabic}', "");
+    Expect(0, 1791, '\p{^- In_Arabic}', "");
+    Expect(0, 1791, '\P{- In_Arabic}', "");
+    Expect(1, 1791, '\P{^- In_Arabic}', "");
+    Expect(0, 1792, '\p{- In_Arabic}', "");
+    Expect(1, 1792, '\p{^- In_Arabic}', "");
+    Expect(1, 1792, '\P{- In_Arabic}', "");
+    Expect(0, 1792, '\P{^- In_Arabic}', "");
+    Error('\p{_in_ARMENIAN:=}');
+    Error('\P{_in_ARMENIAN:=}');
     Expect(1, 1423, '\p{inarmenian}', "");
     Expect(0, 1423, '\p{^inarmenian}', "");
     Expect(0, 1423, '\P{inarmenian}', "");
@@ -102083,26 +103089,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1424, '\p{^inarmenian}', "");
     Expect(1, 1424, '\P{inarmenian}', "");
     Expect(0, 1424, '\P{^inarmenian}', "");
-    Expect(1, 1423, '\p{_	IN_armenian}', "");
-    Expect(0, 1423, '\p{^_	IN_armenian}', "");
-    Expect(0, 1423, '\P{_	IN_armenian}', "");
-    Expect(1, 1423, '\P{^_	IN_armenian}', "");
-    Expect(0, 1424, '\p{_	IN_armenian}', "");
-    Expect(1, 1424, '\p{^_	IN_armenian}', "");
-    Expect(1, 1424, '\P{_	IN_armenian}', "");
-    Expect(0, 1424, '\P{^_	IN_armenian}', "");
-    Error('\p{-in_armenian:=}');
-    Error('\P{-in_armenian:=}');
-    Expect(1, 1423, '\p{ _In_ARMENIAN}', "");
-    Expect(0, 1423, '\p{^ _In_ARMENIAN}', "");
-    Expect(0, 1423, '\P{ _In_ARMENIAN}', "");
-    Expect(1, 1423, '\P{^ _In_ARMENIAN}', "");
-    Expect(0, 1424, '\p{ _In_ARMENIAN}', "");
-    Expect(1, 1424, '\p{^ _In_ARMENIAN}', "");
-    Expect(1, 1424, '\P{ _In_ARMENIAN}', "");
-    Expect(0, 1424, '\P{^ _In_ARMENIAN}', "");
-    Error('\p{- IN_AVESTAN/a/}');
-    Error('\P{- IN_AVESTAN/a/}');
+    Expect(1, 1423, '\p{_-IN_Armenian}', "");
+    Expect(0, 1423, '\p{^_-IN_Armenian}', "");
+    Expect(0, 1423, '\P{_-IN_Armenian}', "");
+    Expect(1, 1423, '\P{^_-IN_Armenian}', "");
+    Expect(0, 1424, '\p{_-IN_Armenian}', "");
+    Expect(1, 1424, '\p{^_-IN_Armenian}', "");
+    Expect(1, 1424, '\P{_-IN_Armenian}', "");
+    Expect(0, 1424, '\P{^_-IN_Armenian}', "");
+    Error('\p{/a/_ In_Armenian}');
+    Error('\P{/a/_ In_Armenian}');
+    Expect(1, 1423, '\p{_In_Armenian}', "");
+    Expect(0, 1423, '\p{^_In_Armenian}', "");
+    Expect(0, 1423, '\P{_In_Armenian}', "");
+    Expect(1, 1423, '\P{^_In_Armenian}', "");
+    Expect(0, 1424, '\p{_In_Armenian}', "");
+    Expect(1, 1424, '\p{^_In_Armenian}', "");
+    Expect(1, 1424, '\P{_In_Armenian}', "");
+    Expect(0, 1424, '\P{^_In_Armenian}', "");
+    Error('\p{-In_AVESTAN:=}');
+    Error('\P{-In_AVESTAN:=}');
     Expect(1, 68415, '\p{inavestan}', "");
     Expect(0, 68415, '\p{^inavestan}', "");
     Expect(0, 68415, '\P{inavestan}', "");
@@ -102111,26 +103117,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68416, '\p{^inavestan}', "");
     Expect(1, 68416, '\P{inavestan}', "");
     Expect(0, 68416, '\P{^inavestan}', "");
-    Expect(1, 68415, '\p{__in_Avestan}', "");
-    Expect(0, 68415, '\p{^__in_Avestan}', "");
-    Expect(0, 68415, '\P{__in_Avestan}', "");
-    Expect(1, 68415, '\P{^__in_Avestan}', "");
-    Expect(0, 68416, '\p{__in_Avestan}', "");
-    Expect(1, 68416, '\p{^__in_Avestan}', "");
-    Expect(1, 68416, '\P{__in_Avestan}', "");
-    Expect(0, 68416, '\P{^__in_Avestan}', "");
-    Error('\p{:=In_Avestan}');
-    Error('\P{:=In_Avestan}');
-    Expect(1, 68415, '\p{	In_AVESTAN}', "");
-    Expect(0, 68415, '\p{^	In_AVESTAN}', "");
-    Expect(0, 68415, '\P{	In_AVESTAN}', "");
-    Expect(1, 68415, '\P{^	In_AVESTAN}', "");
-    Expect(0, 68416, '\p{	In_AVESTAN}', "");
-    Expect(1, 68416, '\p{^	In_AVESTAN}', "");
-    Expect(1, 68416, '\P{	In_AVESTAN}', "");
-    Expect(0, 68416, '\P{^	In_AVESTAN}', "");
-    Error('\p{:=IN_Balinese}');
-    Error('\P{:=IN_Balinese}');
+    Expect(1, 68415, '\p{_-in_Avestan}', "");
+    Expect(0, 68415, '\p{^_-in_Avestan}', "");
+    Expect(0, 68415, '\P{_-in_Avestan}', "");
+    Expect(1, 68415, '\P{^_-in_Avestan}', "");
+    Expect(0, 68416, '\p{_-in_Avestan}', "");
+    Expect(1, 68416, '\p{^_-in_Avestan}', "");
+    Expect(1, 68416, '\P{_-in_Avestan}', "");
+    Expect(0, 68416, '\P{^_-in_Avestan}', "");
+    Error('\p{-	In_Avestan:=}');
+    Error('\P{-	In_Avestan:=}');
+    Expect(1, 68415, '\p{	In_avestan}', "");
+    Expect(0, 68415, '\p{^	In_avestan}', "");
+    Expect(0, 68415, '\P{	In_avestan}', "");
+    Expect(1, 68415, '\P{^	In_avestan}', "");
+    Expect(0, 68416, '\p{	In_avestan}', "");
+    Expect(1, 68416, '\p{^	In_avestan}', "");
+    Expect(1, 68416, '\P{	In_avestan}', "");
+    Expect(0, 68416, '\P{^	In_avestan}', "");
+    Error('\p{ /a/In_Balinese}');
+    Error('\P{ /a/In_Balinese}');
     Expect(1, 7039, '\p{inbalinese}', "");
     Expect(0, 7039, '\p{^inbalinese}', "");
     Expect(0, 7039, '\P{inbalinese}', "");
@@ -102139,26 +103145,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7040, '\p{^inbalinese}', "");
     Expect(1, 7040, '\P{inbalinese}', "");
     Expect(0, 7040, '\P{^inbalinese}', "");
-    Expect(1, 7039, '\p{-in_BALINESE}', "");
-    Expect(0, 7039, '\p{^-in_BALINESE}', "");
-    Expect(0, 7039, '\P{-in_BALINESE}', "");
-    Expect(1, 7039, '\P{^-in_BALINESE}', "");
-    Expect(0, 7040, '\p{-in_BALINESE}', "");
-    Expect(1, 7040, '\p{^-in_BALINESE}', "");
-    Expect(1, 7040, '\P{-in_BALINESE}', "");
-    Expect(0, 7040, '\P{^-in_BALINESE}', "");
-    Error('\p{/a/ 	in_balinese}');
-    Error('\P{/a/ 	in_balinese}');
-    Expect(1, 7039, '\p{  IN_Balinese}', "");
-    Expect(0, 7039, '\p{^  IN_Balinese}', "");
-    Expect(0, 7039, '\P{  IN_Balinese}', "");
-    Expect(1, 7039, '\P{^  IN_Balinese}', "");
-    Expect(0, 7040, '\p{  IN_Balinese}', "");
-    Expect(1, 7040, '\p{^  IN_Balinese}', "");
-    Expect(1, 7040, '\P{  IN_Balinese}', "");
-    Expect(0, 7040, '\P{^  IN_Balinese}', "");
-    Error('\p{-:=IN_BAMUM}');
-    Error('\P{-:=IN_BAMUM}');
+    Expect(1, 7039, '\p{ -IN_BALINESE}', "");
+    Expect(0, 7039, '\p{^ -IN_BALINESE}', "");
+    Expect(0, 7039, '\P{ -IN_BALINESE}', "");
+    Expect(1, 7039, '\P{^ -IN_BALINESE}', "");
+    Expect(0, 7040, '\p{ -IN_BALINESE}', "");
+    Expect(1, 7040, '\p{^ -IN_BALINESE}', "");
+    Expect(1, 7040, '\P{ -IN_BALINESE}', "");
+    Expect(0, 7040, '\P{^ -IN_BALINESE}', "");
+    Error('\p{_:=in_BALINESE}');
+    Error('\P{_:=in_BALINESE}');
+    Expect(1, 7039, '\p{ in_balinese}', "");
+    Expect(0, 7039, '\p{^ in_balinese}', "");
+    Expect(0, 7039, '\P{ in_balinese}', "");
+    Expect(1, 7039, '\P{^ in_balinese}', "");
+    Expect(0, 7040, '\p{ in_balinese}', "");
+    Expect(1, 7040, '\p{^ in_balinese}', "");
+    Expect(1, 7040, '\P{ in_balinese}', "");
+    Expect(0, 7040, '\P{^ in_balinese}', "");
+    Error('\p{	In_BAMUM/a/}');
+    Error('\P{	In_BAMUM/a/}');
     Expect(1, 42751, '\p{inbamum}', "");
     Expect(0, 42751, '\p{^inbamum}', "");
     Expect(0, 42751, '\P{inbamum}', "");
@@ -102167,26 +103173,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42752, '\p{^inbamum}', "");
     Expect(1, 42752, '\P{inbamum}', "");
     Expect(0, 42752, '\P{^inbamum}', "");
-    Expect(1, 42751, '\p{_ In_BAMUM}', "");
-    Expect(0, 42751, '\p{^_ In_BAMUM}', "");
-    Expect(0, 42751, '\P{_ In_BAMUM}', "");
-    Expect(1, 42751, '\P{^_ In_BAMUM}', "");
-    Expect(0, 42752, '\p{_ In_BAMUM}', "");
-    Expect(1, 42752, '\p{^_ In_BAMUM}', "");
-    Expect(1, 42752, '\P{_ In_BAMUM}', "");
-    Expect(0, 42752, '\P{^_ In_BAMUM}', "");
-    Error('\p{:=	-in_BAMUM}');
-    Error('\P{:=	-in_BAMUM}');
-    Expect(1, 42751, '\p{_in_bamum}', "");
-    Expect(0, 42751, '\p{^_in_bamum}', "");
-    Expect(0, 42751, '\P{_in_bamum}', "");
-    Expect(1, 42751, '\P{^_in_bamum}', "");
-    Expect(0, 42752, '\p{_in_bamum}', "");
-    Expect(1, 42752, '\p{^_in_bamum}', "");
-    Expect(1, 42752, '\P{_in_bamum}', "");
-    Expect(0, 42752, '\P{^_in_bamum}', "");
-    Error('\p{ 	In_Bassa_VAH:=}');
-    Error('\P{ 	In_Bassa_VAH:=}');
+    Expect(1, 42751, '\p{- in_BAMUM}', "");
+    Expect(0, 42751, '\p{^- in_BAMUM}', "");
+    Expect(0, 42751, '\P{- in_BAMUM}', "");
+    Expect(1, 42751, '\P{^- in_BAMUM}', "");
+    Expect(0, 42752, '\p{- in_BAMUM}', "");
+    Expect(1, 42752, '\p{^- in_BAMUM}', "");
+    Expect(1, 42752, '\P{- in_BAMUM}', "");
+    Expect(0, 42752, '\P{^- in_BAMUM}', "");
+    Error('\p{ In_bamum/a/}');
+    Error('\P{ In_bamum/a/}');
+    Expect(1, 42751, '\p{_IN_bamum}', "");
+    Expect(0, 42751, '\p{^_IN_bamum}', "");
+    Expect(0, 42751, '\P{_IN_bamum}', "");
+    Expect(1, 42751, '\P{^_IN_bamum}', "");
+    Expect(0, 42752, '\p{_IN_bamum}', "");
+    Expect(1, 42752, '\p{^_IN_bamum}', "");
+    Expect(1, 42752, '\P{_IN_bamum}', "");
+    Expect(0, 42752, '\P{^_IN_bamum}', "");
+    Error('\p{	IN_Bassa_Vah/a/}');
+    Error('\P{	IN_Bassa_Vah/a/}');
     Expect(1, 92927, '\p{inbassavah}', "");
     Expect(0, 92927, '\p{^inbassavah}', "");
     Expect(0, 92927, '\P{inbassavah}', "");
@@ -102195,26 +103201,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92928, '\p{^inbassavah}', "");
     Expect(1, 92928, '\P{inbassavah}', "");
     Expect(0, 92928, '\P{^inbassavah}', "");
-    Expect(1, 92927, '\p{_In_BASSA_VAH}', "");
-    Expect(0, 92927, '\p{^_In_BASSA_VAH}', "");
-    Expect(0, 92927, '\P{_In_BASSA_VAH}', "");
-    Expect(1, 92927, '\P{^_In_BASSA_VAH}', "");
-    Expect(0, 92928, '\p{_In_BASSA_VAH}', "");
-    Expect(1, 92928, '\p{^_In_BASSA_VAH}', "");
-    Expect(1, 92928, '\P{_In_BASSA_VAH}', "");
-    Expect(0, 92928, '\P{^_In_BASSA_VAH}', "");
-    Error('\p{	:=IN_bassa_Vah}');
-    Error('\P{	:=IN_bassa_Vah}');
-    Expect(1, 92927, '\p{_-in_Bassa_Vah}', "");
-    Expect(0, 92927, '\p{^_-in_Bassa_Vah}', "");
-    Expect(0, 92927, '\P{_-in_Bassa_Vah}', "");
-    Expect(1, 92927, '\P{^_-in_Bassa_Vah}', "");
-    Expect(0, 92928, '\p{_-in_Bassa_Vah}', "");
-    Expect(1, 92928, '\p{^_-in_Bassa_Vah}', "");
-    Expect(1, 92928, '\P{_-in_Bassa_Vah}', "");
-    Expect(0, 92928, '\P{^_-in_Bassa_Vah}', "");
-    Error('\p{:= 	In_Batak}');
-    Error('\P{:= 	In_Batak}');
+    Expect(1, 92927, '\p{ _In_bassa_Vah}', "");
+    Expect(0, 92927, '\p{^ _In_bassa_Vah}', "");
+    Expect(0, 92927, '\P{ _In_bassa_Vah}', "");
+    Expect(1, 92927, '\P{^ _In_bassa_Vah}', "");
+    Expect(0, 92928, '\p{ _In_bassa_Vah}', "");
+    Expect(1, 92928, '\p{^ _In_bassa_Vah}', "");
+    Expect(1, 92928, '\P{ _In_bassa_Vah}', "");
+    Expect(0, 92928, '\P{^ _In_bassa_Vah}', "");
+    Error('\p{:=IN_bassa_vah}');
+    Error('\P{:=IN_bassa_vah}');
+    Expect(1, 92927, '\p{_	IN_Bassa_Vah}', "");
+    Expect(0, 92927, '\p{^_	IN_Bassa_Vah}', "");
+    Expect(0, 92927, '\P{_	IN_Bassa_Vah}', "");
+    Expect(1, 92927, '\P{^_	IN_Bassa_Vah}', "");
+    Expect(0, 92928, '\p{_	IN_Bassa_Vah}', "");
+    Expect(1, 92928, '\p{^_	IN_Bassa_Vah}', "");
+    Expect(1, 92928, '\P{_	IN_Bassa_Vah}', "");
+    Expect(0, 92928, '\P{^_	IN_Bassa_Vah}', "");
+    Error('\p{/a/_-in_batak}');
+    Error('\P{/a/_-in_batak}');
     Expect(1, 7167, '\p{inbatak}', "");
     Expect(0, 7167, '\p{^inbatak}', "");
     Expect(0, 7167, '\P{inbatak}', "");
@@ -102223,26 +103229,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7168, '\p{^inbatak}', "");
     Expect(1, 7168, '\P{inbatak}', "");
     Expect(0, 7168, '\P{^inbatak}', "");
-    Expect(1, 7167, '\p{		In_Batak}', "");
-    Expect(0, 7167, '\p{^		In_Batak}', "");
-    Expect(0, 7167, '\P{		In_Batak}', "");
-    Expect(1, 7167, '\P{^		In_Batak}', "");
-    Expect(0, 7168, '\p{		In_Batak}', "");
-    Expect(1, 7168, '\p{^		In_Batak}', "");
-    Expect(1, 7168, '\P{		In_Batak}', "");
-    Expect(0, 7168, '\P{^		In_Batak}', "");
-    Error('\p{ _In_Batak/a/}');
-    Error('\P{ _In_Batak/a/}');
-    Expect(1, 7167, '\p{__In_Batak}', "");
-    Expect(0, 7167, '\p{^__In_Batak}', "");
-    Expect(0, 7167, '\P{__In_Batak}', "");
-    Expect(1, 7167, '\P{^__In_Batak}', "");
-    Expect(0, 7168, '\p{__In_Batak}', "");
-    Expect(1, 7168, '\p{^__In_Batak}', "");
-    Expect(1, 7168, '\P{__In_Batak}', "");
-    Expect(0, 7168, '\P{^__In_Batak}', "");
-    Error('\p{-:=IN_Bengali}');
-    Error('\P{-:=IN_Bengali}');
+    Expect(1, 7167, '\p{_	in_BATAK}', "");
+    Expect(0, 7167, '\p{^_	in_BATAK}', "");
+    Expect(0, 7167, '\P{_	in_BATAK}', "");
+    Expect(1, 7167, '\P{^_	in_BATAK}', "");
+    Expect(0, 7168, '\p{_	in_BATAK}', "");
+    Expect(1, 7168, '\p{^_	in_BATAK}', "");
+    Expect(1, 7168, '\P{_	in_BATAK}', "");
+    Expect(0, 7168, '\P{^_	in_BATAK}', "");
+    Error('\p{	In_BATAK:=}');
+    Error('\P{	In_BATAK:=}');
+    Expect(1, 7167, '\p{-_IN_Batak}', "");
+    Expect(0, 7167, '\p{^-_IN_Batak}', "");
+    Expect(0, 7167, '\P{-_IN_Batak}', "");
+    Expect(1, 7167, '\P{^-_IN_Batak}', "");
+    Expect(0, 7168, '\p{-_IN_Batak}', "");
+    Expect(1, 7168, '\p{^-_IN_Batak}', "");
+    Expect(1, 7168, '\P{-_IN_Batak}', "");
+    Expect(0, 7168, '\P{^-_IN_Batak}', "");
+    Error('\p{-:=in_Bengali}');
+    Error('\P{-:=in_Bengali}');
     Expect(1, 2559, '\p{inbengali}', "");
     Expect(0, 2559, '\p{^inbengali}', "");
     Expect(0, 2559, '\P{inbengali}', "");
@@ -102251,16 +103257,6 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2560, '\p{^inbengali}', "");
     Expect(1, 2560, '\P{inbengali}', "");
     Expect(0, 2560, '\P{^inbengali}', "");
-    Expect(1, 2559, '\p{	in_Bengali}', "");
-    Expect(0, 2559, '\p{^	in_Bengali}', "");
-    Expect(0, 2559, '\P{	in_Bengali}', "");
-    Expect(1, 2559, '\P{^	in_Bengali}', "");
-    Expect(0, 2560, '\p{	in_Bengali}', "");
-    Expect(1, 2560, '\p{^	in_Bengali}', "");
-    Expect(1, 2560, '\P{	in_Bengali}', "");
-    Expect(0, 2560, '\P{^	in_Bengali}', "");
-    Error('\p{-/a/In_Bengali}');
-    Error('\P{-/a/In_Bengali}');
     Expect(1, 2559, '\p{	_In_Bengali}', "");
     Expect(0, 2559, '\p{^	_In_Bengali}', "");
     Expect(0, 2559, '\P{	_In_Bengali}', "");
@@ -102269,8 +103265,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2560, '\p{^	_In_Bengali}', "");
     Expect(1, 2560, '\P{	_In_Bengali}', "");
     Expect(0, 2560, '\P{^	_In_Bengali}', "");
-    Error('\p{/a/__IN_BHAIKSUKI}');
-    Error('\P{/a/__IN_BHAIKSUKI}');
+    Error('\p{-	In_Bengali/a/}');
+    Error('\P{-	In_Bengali/a/}');
+    Expect(1, 2559, '\p{--In_BENGALI}', "");
+    Expect(0, 2559, '\p{^--In_BENGALI}', "");
+    Expect(0, 2559, '\P{--In_BENGALI}', "");
+    Expect(1, 2559, '\P{^--In_BENGALI}', "");
+    Expect(0, 2560, '\p{--In_BENGALI}', "");
+    Expect(1, 2560, '\p{^--In_BENGALI}', "");
+    Expect(1, 2560, '\P{--In_BENGALI}', "");
+    Expect(0, 2560, '\P{^--In_BENGALI}', "");
+    Error('\p{:=	-in_Bhaiksuki}');
+    Error('\P{:=	-in_Bhaiksuki}');
     Expect(1, 72815, '\p{inbhaiksuki}', "");
     Expect(0, 72815, '\p{^inbhaiksuki}', "");
     Expect(0, 72815, '\P{inbhaiksuki}', "");
@@ -102279,26 +103285,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72816, '\p{^inbhaiksuki}', "");
     Expect(1, 72816, '\P{inbhaiksuki}', "");
     Expect(0, 72816, '\P{^inbhaiksuki}', "");
-    Expect(1, 72815, '\p{-	In_Bhaiksuki}', "");
-    Expect(0, 72815, '\p{^-	In_Bhaiksuki}', "");
-    Expect(0, 72815, '\P{-	In_Bhaiksuki}', "");
-    Expect(1, 72815, '\P{^-	In_Bhaiksuki}', "");
-    Expect(0, 72816, '\p{-	In_Bhaiksuki}', "");
-    Expect(1, 72816, '\p{^-	In_Bhaiksuki}', "");
-    Expect(1, 72816, '\P{-	In_Bhaiksuki}', "");
-    Expect(0, 72816, '\P{^-	In_Bhaiksuki}', "");
-    Error('\p{/a/	-IN_bhaiksuki}');
-    Error('\P{/a/	-IN_bhaiksuki}');
-    Expect(1, 72815, '\p{ In_Bhaiksuki}', "");
-    Expect(0, 72815, '\p{^ In_Bhaiksuki}', "");
-    Expect(0, 72815, '\P{ In_Bhaiksuki}', "");
-    Expect(1, 72815, '\P{^ In_Bhaiksuki}', "");
-    Expect(0, 72816, '\p{ In_Bhaiksuki}', "");
-    Expect(1, 72816, '\p{^ In_Bhaiksuki}', "");
-    Expect(1, 72816, '\P{ In_Bhaiksuki}', "");
-    Expect(0, 72816, '\P{^ In_Bhaiksuki}', "");
-    Error('\p{_/a/In_bopomofo}');
-    Error('\P{_/a/In_bopomofo}');
+    Expect(1, 72815, '\p{_-in_Bhaiksuki}', "");
+    Expect(0, 72815, '\p{^_-in_Bhaiksuki}', "");
+    Expect(0, 72815, '\P{_-in_Bhaiksuki}', "");
+    Expect(1, 72815, '\P{^_-in_Bhaiksuki}', "");
+    Expect(0, 72816, '\p{_-in_Bhaiksuki}', "");
+    Expect(1, 72816, '\p{^_-in_Bhaiksuki}', "");
+    Expect(1, 72816, '\P{_-in_Bhaiksuki}', "");
+    Expect(0, 72816, '\P{^_-in_Bhaiksuki}', "");
+    Error('\p{/a/	_In_Bhaiksuki}');
+    Error('\P{/a/	_In_Bhaiksuki}');
+    Expect(1, 72815, '\p{		IN_BHAIKSUKI}', "");
+    Expect(0, 72815, '\p{^		IN_BHAIKSUKI}', "");
+    Expect(0, 72815, '\P{		IN_BHAIKSUKI}', "");
+    Expect(1, 72815, '\P{^		IN_BHAIKSUKI}', "");
+    Expect(0, 72816, '\p{		IN_BHAIKSUKI}', "");
+    Expect(1, 72816, '\p{^		IN_BHAIKSUKI}', "");
+    Expect(1, 72816, '\P{		IN_BHAIKSUKI}', "");
+    Expect(0, 72816, '\P{^		IN_BHAIKSUKI}', "");
+    Error('\p{/a/_-In_bopomofo}');
+    Error('\P{/a/_-In_bopomofo}');
     Expect(1, 12591, '\p{inbopomofo}', "");
     Expect(0, 12591, '\p{^inbopomofo}', "");
     Expect(0, 12591, '\P{inbopomofo}', "");
@@ -102307,26 +103313,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12592, '\p{^inbopomofo}', "");
     Expect(1, 12592, '\P{inbopomofo}', "");
     Expect(0, 12592, '\P{^inbopomofo}', "");
-    Expect(1, 12591, '\p{	 In_Bopomofo}', "");
-    Expect(0, 12591, '\p{^	 In_Bopomofo}', "");
-    Expect(0, 12591, '\P{	 In_Bopomofo}', "");
-    Expect(1, 12591, '\P{^	 In_Bopomofo}', "");
-    Expect(0, 12592, '\p{	 In_Bopomofo}', "");
-    Expect(1, 12592, '\p{^	 In_Bopomofo}', "");
-    Expect(1, 12592, '\P{	 In_Bopomofo}', "");
-    Expect(0, 12592, '\P{^	 In_Bopomofo}', "");
-    Error('\p{-/a/in_bopomofo}');
-    Error('\P{-/a/in_bopomofo}');
-    Expect(1, 12591, '\p{-_in_BOPOMOFO}', "");
-    Expect(0, 12591, '\p{^-_in_BOPOMOFO}', "");
-    Expect(0, 12591, '\P{-_in_BOPOMOFO}', "");
-    Expect(1, 12591, '\P{^-_in_BOPOMOFO}', "");
-    Expect(0, 12592, '\p{-_in_BOPOMOFO}', "");
-    Expect(1, 12592, '\p{^-_in_BOPOMOFO}', "");
-    Expect(1, 12592, '\P{-_in_BOPOMOFO}', "");
-    Expect(0, 12592, '\P{^-_in_BOPOMOFO}', "");
-    Error('\p{-:=In_Brahmi}');
-    Error('\P{-:=In_Brahmi}');
+    Expect(1, 12591, '\p{ IN_Bopomofo}', "");
+    Expect(0, 12591, '\p{^ IN_Bopomofo}', "");
+    Expect(0, 12591, '\P{ IN_Bopomofo}', "");
+    Expect(1, 12591, '\P{^ IN_Bopomofo}', "");
+    Expect(0, 12592, '\p{ IN_Bopomofo}', "");
+    Expect(1, 12592, '\p{^ IN_Bopomofo}', "");
+    Expect(1, 12592, '\P{ IN_Bopomofo}', "");
+    Expect(0, 12592, '\P{^ IN_Bopomofo}', "");
+    Error('\p{:=  In_bopomofo}');
+    Error('\P{:=  In_bopomofo}');
+    Expect(1, 12591, '\p{	in_BOPOMOFO}', "");
+    Expect(0, 12591, '\p{^	in_BOPOMOFO}', "");
+    Expect(0, 12591, '\P{	in_BOPOMOFO}', "");
+    Expect(1, 12591, '\P{^	in_BOPOMOFO}', "");
+    Expect(0, 12592, '\p{	in_BOPOMOFO}', "");
+    Expect(1, 12592, '\p{^	in_BOPOMOFO}', "");
+    Expect(1, 12592, '\P{	in_BOPOMOFO}', "");
+    Expect(0, 12592, '\P{^	in_BOPOMOFO}', "");
+    Error('\p{ /a/IN_brahmi}');
+    Error('\P{ /a/IN_brahmi}');
     Expect(1, 69759, '\p{inbrahmi}', "");
     Expect(0, 69759, '\p{^inbrahmi}', "");
     Expect(0, 69759, '\P{inbrahmi}', "");
@@ -102335,26 +103341,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69760, '\p{^inbrahmi}', "");
     Expect(1, 69760, '\P{inbrahmi}', "");
     Expect(0, 69760, '\P{^inbrahmi}', "");
-    Expect(1, 69759, '\p{	-IN_brahmi}', "");
-    Expect(0, 69759, '\p{^	-IN_brahmi}', "");
-    Expect(0, 69759, '\P{	-IN_brahmi}', "");
-    Expect(1, 69759, '\P{^	-IN_brahmi}', "");
-    Expect(0, 69760, '\p{	-IN_brahmi}', "");
-    Expect(1, 69760, '\p{^	-IN_brahmi}', "");
-    Expect(1, 69760, '\P{	-IN_brahmi}', "");
-    Expect(0, 69760, '\P{^	-IN_brahmi}', "");
-    Error('\p{	:=In_Brahmi}');
-    Error('\P{	:=In_Brahmi}');
-    Expect(1, 69759, '\p{-	In_Brahmi}', "");
-    Expect(0, 69759, '\p{^-	In_Brahmi}', "");
-    Expect(0, 69759, '\P{-	In_Brahmi}', "");
-    Expect(1, 69759, '\P{^-	In_Brahmi}', "");
-    Expect(0, 69760, '\p{-	In_Brahmi}', "");
-    Expect(1, 69760, '\p{^-	In_Brahmi}', "");
-    Expect(1, 69760, '\P{-	In_Brahmi}', "");
-    Expect(0, 69760, '\P{^-	In_Brahmi}', "");
-    Error('\p{-In_BUGINESE:=}');
-    Error('\P{-In_BUGINESE:=}');
+    Expect(1, 69759, '\p{	In_BRAHMI}', "");
+    Expect(0, 69759, '\p{^	In_BRAHMI}', "");
+    Expect(0, 69759, '\P{	In_BRAHMI}', "");
+    Expect(1, 69759, '\P{^	In_BRAHMI}', "");
+    Expect(0, 69760, '\p{	In_BRAHMI}', "");
+    Expect(1, 69760, '\p{^	In_BRAHMI}', "");
+    Expect(1, 69760, '\P{	In_BRAHMI}', "");
+    Expect(0, 69760, '\P{^	In_BRAHMI}', "");
+    Error('\p{- In_Brahmi:=}');
+    Error('\P{- In_Brahmi:=}');
+    Expect(1, 69759, '\p{ In_Brahmi}', "");
+    Expect(0, 69759, '\p{^ In_Brahmi}', "");
+    Expect(0, 69759, '\P{ In_Brahmi}', "");
+    Expect(1, 69759, '\P{^ In_Brahmi}', "");
+    Expect(0, 69760, '\p{ In_Brahmi}', "");
+    Expect(1, 69760, '\p{^ In_Brahmi}', "");
+    Expect(1, 69760, '\P{ In_Brahmi}', "");
+    Expect(0, 69760, '\P{^ In_Brahmi}', "");
+    Error('\p{:=	-In_Buginese}');
+    Error('\P{:=	-In_Buginese}');
     Expect(1, 6687, '\p{inbuginese}', "");
     Expect(0, 6687, '\p{^inbuginese}', "");
     Expect(0, 6687, '\P{inbuginese}', "");
@@ -102363,26 +103369,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6688, '\p{^inbuginese}', "");
     Expect(1, 6688, '\P{inbuginese}', "");
     Expect(0, 6688, '\P{^inbuginese}', "");
-    Expect(1, 6687, '\p{-_IN_Buginese}', "");
-    Expect(0, 6687, '\p{^-_IN_Buginese}', "");
-    Expect(0, 6687, '\P{-_IN_Buginese}', "");
-    Expect(1, 6687, '\P{^-_IN_Buginese}', "");
-    Expect(0, 6688, '\p{-_IN_Buginese}', "");
-    Expect(1, 6688, '\p{^-_IN_Buginese}', "");
-    Expect(1, 6688, '\P{-_IN_Buginese}', "");
-    Expect(0, 6688, '\P{^-_IN_Buginese}', "");
-    Error('\p{_ In_buginese:=}');
-    Error('\P{_ In_buginese:=}');
-    Expect(1, 6687, '\p{_IN_buginese}', "");
-    Expect(0, 6687, '\p{^_IN_buginese}', "");
-    Expect(0, 6687, '\P{_IN_buginese}', "");
-    Expect(1, 6687, '\P{^_IN_buginese}', "");
-    Expect(0, 6688, '\p{_IN_buginese}', "");
-    Expect(1, 6688, '\p{^_IN_buginese}', "");
-    Expect(1, 6688, '\P{_IN_buginese}', "");
-    Expect(0, 6688, '\P{^_IN_buginese}', "");
-    Error('\p{-in_Buhid/a/}');
-    Error('\P{-in_Buhid/a/}');
+    Expect(1, 6687, '\p{  IN_BUGINESE}', "");
+    Expect(0, 6687, '\p{^  IN_BUGINESE}', "");
+    Expect(0, 6687, '\P{  IN_BUGINESE}', "");
+    Expect(1, 6687, '\P{^  IN_BUGINESE}', "");
+    Expect(0, 6688, '\p{  IN_BUGINESE}', "");
+    Expect(1, 6688, '\p{^  IN_BUGINESE}', "");
+    Expect(1, 6688, '\P{  IN_BUGINESE}', "");
+    Expect(0, 6688, '\P{^  IN_BUGINESE}', "");
+    Error('\p{-In_Buginese/a/}');
+    Error('\P{-In_Buginese/a/}');
+    Expect(1, 6687, '\p{	 In_BUGINESE}', "");
+    Expect(0, 6687, '\p{^	 In_BUGINESE}', "");
+    Expect(0, 6687, '\P{	 In_BUGINESE}', "");
+    Expect(1, 6687, '\P{^	 In_BUGINESE}', "");
+    Expect(0, 6688, '\p{	 In_BUGINESE}', "");
+    Expect(1, 6688, '\p{^	 In_BUGINESE}', "");
+    Expect(1, 6688, '\P{	 In_BUGINESE}', "");
+    Expect(0, 6688, '\P{^	 In_BUGINESE}', "");
+    Error('\p{ 	In_Buhid:=}');
+    Error('\P{ 	In_Buhid:=}');
     Expect(1, 5983, '\p{inbuhid}', "");
     Expect(0, 5983, '\p{^inbuhid}', "");
     Expect(0, 5983, '\P{inbuhid}', "");
@@ -102391,26 +103397,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5984, '\p{^inbuhid}', "");
     Expect(1, 5984, '\P{inbuhid}', "");
     Expect(0, 5984, '\P{^inbuhid}', "");
-    Expect(1, 5983, '\p{_In_buhid}', "");
-    Expect(0, 5983, '\p{^_In_buhid}', "");
-    Expect(0, 5983, '\P{_In_buhid}', "");
-    Expect(1, 5983, '\P{^_In_buhid}', "");
-    Expect(0, 5984, '\p{_In_buhid}', "");
-    Expect(1, 5984, '\p{^_In_buhid}', "");
-    Expect(1, 5984, '\P{_In_buhid}', "");
-    Expect(0, 5984, '\P{^_In_buhid}', "");
-    Error('\p{_:=in_Buhid}');
-    Error('\P{_:=in_Buhid}');
-    Expect(1, 5983, '\p{in_BUHID}', "");
-    Expect(0, 5983, '\p{^in_BUHID}', "");
-    Expect(0, 5983, '\P{in_BUHID}', "");
-    Expect(1, 5983, '\P{^in_BUHID}', "");
-    Expect(0, 5984, '\p{in_BUHID}', "");
-    Expect(1, 5984, '\p{^in_BUHID}', "");
-    Expect(1, 5984, '\P{in_BUHID}', "");
-    Expect(0, 5984, '\P{^in_BUHID}', "");
-    Error('\p{/a/__In_Carian}');
-    Error('\P{/a/__In_Carian}');
+    Expect(1, 5983, '\p{_in_Buhid}', "");
+    Expect(0, 5983, '\p{^_in_Buhid}', "");
+    Expect(0, 5983, '\P{_in_Buhid}', "");
+    Expect(1, 5983, '\P{^_in_Buhid}', "");
+    Expect(0, 5984, '\p{_in_Buhid}', "");
+    Expect(1, 5984, '\p{^_in_Buhid}', "");
+    Expect(1, 5984, '\P{_in_Buhid}', "");
+    Expect(0, 5984, '\P{^_in_Buhid}', "");
+    Error('\p{ 	In_buhid:=}');
+    Error('\P{ 	In_buhid:=}');
+    Expect(1, 5983, '\p{- IN_BUHID}', "");
+    Expect(0, 5983, '\p{^- IN_BUHID}', "");
+    Expect(0, 5983, '\P{- IN_BUHID}', "");
+    Expect(1, 5983, '\P{^- IN_BUHID}', "");
+    Expect(0, 5984, '\p{- IN_BUHID}', "");
+    Expect(1, 5984, '\p{^- IN_BUHID}', "");
+    Expect(1, 5984, '\P{- IN_BUHID}', "");
+    Expect(0, 5984, '\P{^- IN_BUHID}', "");
+    Error('\p{/a/	-In_CARIAN}');
+    Error('\P{/a/	-In_CARIAN}');
     Expect(1, 66271, '\p{incarian}', "");
     Expect(0, 66271, '\p{^incarian}', "");
     Expect(0, 66271, '\P{incarian}', "");
@@ -102419,26 +103425,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66272, '\p{^incarian}', "");
     Expect(1, 66272, '\P{incarian}', "");
     Expect(0, 66272, '\P{^incarian}', "");
-    Expect(1, 66271, '\p{  in_Carian}', "");
-    Expect(0, 66271, '\p{^  in_Carian}', "");
-    Expect(0, 66271, '\P{  in_Carian}', "");
-    Expect(1, 66271, '\P{^  in_Carian}', "");
-    Expect(0, 66272, '\p{  in_Carian}', "");
-    Expect(1, 66272, '\p{^  in_Carian}', "");
-    Expect(1, 66272, '\P{  in_Carian}', "");
-    Expect(0, 66272, '\P{^  in_Carian}', "");
-    Error('\p{ _In_CARIAN:=}');
-    Error('\P{ _In_CARIAN:=}');
-    Expect(1, 66271, '\p{_-in_Carian}', "");
-    Expect(0, 66271, '\p{^_-in_Carian}', "");
-    Expect(0, 66271, '\P{_-in_Carian}', "");
-    Expect(1, 66271, '\P{^_-in_Carian}', "");
-    Expect(0, 66272, '\p{_-in_Carian}', "");
-    Expect(1, 66272, '\p{^_-in_Carian}', "");
-    Expect(1, 66272, '\P{_-in_Carian}', "");
-    Expect(0, 66272, '\P{^_-in_Carian}', "");
-    Error('\p{/a/-	In_CAUCASIAN_Albanian}');
-    Error('\P{/a/-	In_CAUCASIAN_Albanian}');
+    Expect(1, 66271, '\p{		in_carian}', "");
+    Expect(0, 66271, '\p{^		in_carian}', "");
+    Expect(0, 66271, '\P{		in_carian}', "");
+    Expect(1, 66271, '\P{^		in_carian}', "");
+    Expect(0, 66272, '\p{		in_carian}', "");
+    Expect(1, 66272, '\p{^		in_carian}', "");
+    Expect(1, 66272, '\P{		in_carian}', "");
+    Expect(0, 66272, '\P{^		in_carian}', "");
+    Error('\p{	 In_carian:=}');
+    Error('\P{	 In_carian:=}');
+    Expect(1, 66271, '\p{	_IN_Carian}', "");
+    Expect(0, 66271, '\p{^	_IN_Carian}', "");
+    Expect(0, 66271, '\P{	_IN_Carian}', "");
+    Expect(1, 66271, '\P{^	_IN_Carian}', "");
+    Expect(0, 66272, '\p{	_IN_Carian}', "");
+    Expect(1, 66272, '\p{^	_IN_Carian}', "");
+    Expect(1, 66272, '\P{	_IN_Carian}', "");
+    Expect(0, 66272, '\P{^	_IN_Carian}', "");
+    Error('\p{- IN_caucasian_Albanian:=}');
+    Error('\P{- IN_caucasian_Albanian:=}');
     Expect(1, 66927, '\p{incaucasianalbanian}', "");
     Expect(0, 66927, '\p{^incaucasianalbanian}', "");
     Expect(0, 66927, '\P{incaucasianalbanian}', "");
@@ -102447,26 +103453,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66928, '\p{^incaucasianalbanian}', "");
     Expect(1, 66928, '\P{incaucasianalbanian}', "");
     Expect(0, 66928, '\P{^incaucasianalbanian}', "");
-    Expect(1, 66927, '\p{_In_Caucasian_Albanian}', "");
-    Expect(0, 66927, '\p{^_In_Caucasian_Albanian}', "");
-    Expect(0, 66927, '\P{_In_Caucasian_Albanian}', "");
-    Expect(1, 66927, '\P{^_In_Caucasian_Albanian}', "");
-    Expect(0, 66928, '\p{_In_Caucasian_Albanian}', "");
-    Expect(1, 66928, '\p{^_In_Caucasian_Albanian}', "");
-    Expect(1, 66928, '\P{_In_Caucasian_Albanian}', "");
-    Expect(0, 66928, '\P{^_In_Caucasian_Albanian}', "");
-    Error('\p{_-In_Caucasian_Albanian/a/}');
-    Error('\P{_-In_Caucasian_Albanian/a/}');
-    Expect(1, 66927, '\p{-_In_CAUCASIAN_Albanian}', "");
-    Expect(0, 66927, '\p{^-_In_CAUCASIAN_Albanian}', "");
-    Expect(0, 66927, '\P{-_In_CAUCASIAN_Albanian}', "");
-    Expect(1, 66927, '\P{^-_In_CAUCASIAN_Albanian}', "");
-    Expect(0, 66928, '\p{-_In_CAUCASIAN_Albanian}', "");
-    Expect(1, 66928, '\p{^-_In_CAUCASIAN_Albanian}', "");
-    Expect(1, 66928, '\P{-_In_CAUCASIAN_Albanian}', "");
-    Expect(0, 66928, '\P{^-_In_CAUCASIAN_Albanian}', "");
-    Error('\p{	IN_Chakma:=}');
-    Error('\P{	IN_Chakma:=}');
+    Expect(1, 66927, '\p{-In_Caucasian_Albanian}', "");
+    Expect(0, 66927, '\p{^-In_Caucasian_Albanian}', "");
+    Expect(0, 66927, '\P{-In_Caucasian_Albanian}', "");
+    Expect(1, 66927, '\P{^-In_Caucasian_Albanian}', "");
+    Expect(0, 66928, '\p{-In_Caucasian_Albanian}', "");
+    Expect(1, 66928, '\p{^-In_Caucasian_Albanian}', "");
+    Expect(1, 66928, '\P{-In_Caucasian_Albanian}', "");
+    Expect(0, 66928, '\P{^-In_Caucasian_Albanian}', "");
+    Error('\p{/a/_	in_Caucasian_Albanian}');
+    Error('\P{/a/_	in_Caucasian_Albanian}');
+    Expect(1, 66927, '\p{-_In_caucasian_albanian}', "");
+    Expect(0, 66927, '\p{^-_In_caucasian_albanian}', "");
+    Expect(0, 66927, '\P{-_In_caucasian_albanian}', "");
+    Expect(1, 66927, '\P{^-_In_caucasian_albanian}', "");
+    Expect(0, 66928, '\p{-_In_caucasian_albanian}', "");
+    Expect(1, 66928, '\p{^-_In_caucasian_albanian}', "");
+    Expect(1, 66928, '\P{-_In_caucasian_albanian}', "");
+    Expect(0, 66928, '\P{^-_In_caucasian_albanian}', "");
+    Error('\p{:= -IN_chakma}');
+    Error('\P{:= -IN_chakma}');
     Expect(1, 69967, '\p{inchakma}', "");
     Expect(0, 69967, '\p{^inchakma}', "");
     Expect(0, 69967, '\P{inchakma}', "");
@@ -102475,26 +103481,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69968, '\p{^inchakma}', "");
     Expect(1, 69968, '\P{inchakma}', "");
     Expect(0, 69968, '\P{^inchakma}', "");
-    Expect(1, 69967, '\p{-_In_Chakma}', "");
-    Expect(0, 69967, '\p{^-_In_Chakma}', "");
-    Expect(0, 69967, '\P{-_In_Chakma}', "");
-    Expect(1, 69967, '\P{^-_In_Chakma}', "");
-    Expect(0, 69968, '\p{-_In_Chakma}', "");
-    Expect(1, 69968, '\p{^-_In_Chakma}', "");
-    Expect(1, 69968, '\P{-_In_Chakma}', "");
-    Expect(0, 69968, '\P{^-_In_Chakma}', "");
-    Error('\p{ :=IN_Chakma}');
-    Error('\P{ :=IN_Chakma}');
-    Expect(1, 69967, '\p{_-IN_CHAKMA}', "");
-    Expect(0, 69967, '\p{^_-IN_CHAKMA}', "");
-    Expect(0, 69967, '\P{_-IN_CHAKMA}', "");
-    Expect(1, 69967, '\P{^_-IN_CHAKMA}', "");
-    Expect(0, 69968, '\p{_-IN_CHAKMA}', "");
-    Expect(1, 69968, '\p{^_-IN_CHAKMA}', "");
-    Expect(1, 69968, '\P{_-IN_CHAKMA}', "");
-    Expect(0, 69968, '\P{^_-IN_CHAKMA}', "");
-    Error('\p{/a/- In_Cham}');
-    Error('\P{/a/- In_Cham}');
+    Expect(1, 69967, '\p{_ IN_CHAKMA}', "");
+    Expect(0, 69967, '\p{^_ IN_CHAKMA}', "");
+    Expect(0, 69967, '\P{_ IN_CHAKMA}', "");
+    Expect(1, 69967, '\P{^_ IN_CHAKMA}', "");
+    Expect(0, 69968, '\p{_ IN_CHAKMA}', "");
+    Expect(1, 69968, '\p{^_ IN_CHAKMA}', "");
+    Expect(1, 69968, '\P{_ IN_CHAKMA}', "");
+    Expect(0, 69968, '\P{^_ IN_CHAKMA}', "");
+    Error('\p{/a/in_CHAKMA}');
+    Error('\P{/a/in_CHAKMA}');
+    Expect(1, 69967, '\p{ In_CHAKMA}', "");
+    Expect(0, 69967, '\p{^ In_CHAKMA}', "");
+    Expect(0, 69967, '\P{ In_CHAKMA}', "");
+    Expect(1, 69967, '\P{^ In_CHAKMA}', "");
+    Expect(0, 69968, '\p{ In_CHAKMA}', "");
+    Expect(1, 69968, '\p{^ In_CHAKMA}', "");
+    Expect(1, 69968, '\P{ In_CHAKMA}', "");
+    Expect(0, 69968, '\P{^ In_CHAKMA}', "");
+    Error('\p{_	In_cham/a/}');
+    Error('\P{_	In_cham/a/}');
     Expect(1, 43615, '\p{incham}', "");
     Expect(0, 43615, '\p{^incham}', "");
     Expect(0, 43615, '\P{incham}', "");
@@ -102503,26 +103509,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43616, '\p{^incham}', "");
     Expect(1, 43616, '\P{incham}', "");
     Expect(0, 43616, '\P{^incham}', "");
-    Expect(1, 43615, '\p{	IN_Cham}', "");
-    Expect(0, 43615, '\p{^	IN_Cham}', "");
-    Expect(0, 43615, '\P{	IN_Cham}', "");
-    Expect(1, 43615, '\P{^	IN_Cham}', "");
-    Expect(0, 43616, '\p{	IN_Cham}', "");
-    Expect(1, 43616, '\p{^	IN_Cham}', "");
-    Expect(1, 43616, '\P{	IN_Cham}', "");
-    Expect(0, 43616, '\P{^	IN_Cham}', "");
-    Error('\p{	-IN_Cham/a/}');
-    Error('\P{	-IN_Cham/a/}');
-    Expect(1, 43615, '\p{-	In_Cham}', "");
-    Expect(0, 43615, '\p{^-	In_Cham}', "");
-    Expect(0, 43615, '\P{-	In_Cham}', "");
-    Expect(1, 43615, '\P{^-	In_Cham}', "");
-    Expect(0, 43616, '\p{-	In_Cham}', "");
-    Expect(1, 43616, '\p{^-	In_Cham}', "");
-    Expect(1, 43616, '\P{-	In_Cham}', "");
-    Expect(0, 43616, '\P{^-	In_Cham}', "");
-    Error('\p{:=-In_cherokee}');
-    Error('\P{:=-In_cherokee}');
+    Expect(1, 43615, '\p{-in_Cham}', "");
+    Expect(0, 43615, '\p{^-in_Cham}', "");
+    Expect(0, 43615, '\P{-in_Cham}', "");
+    Expect(1, 43615, '\P{^-in_Cham}', "");
+    Expect(0, 43616, '\p{-in_Cham}', "");
+    Expect(1, 43616, '\p{^-in_Cham}', "");
+    Expect(1, 43616, '\P{-in_Cham}', "");
+    Expect(0, 43616, '\P{^-in_Cham}', "");
+    Error('\p{-in_cham:=}');
+    Error('\P{-in_cham:=}');
+    Expect(1, 43615, '\p{-In_cham}', "");
+    Expect(0, 43615, '\p{^-In_cham}', "");
+    Expect(0, 43615, '\P{-In_cham}', "");
+    Expect(1, 43615, '\P{^-In_cham}', "");
+    Expect(0, 43616, '\p{-In_cham}', "");
+    Expect(1, 43616, '\p{^-In_cham}', "");
+    Expect(1, 43616, '\P{-In_cham}', "");
+    Expect(0, 43616, '\P{^-In_cham}', "");
+    Error('\p{	:=In_Cherokee}');
+    Error('\P{	:=In_Cherokee}');
     Expect(1, 5119, '\p{incherokee}', "");
     Expect(0, 5119, '\p{^incherokee}', "");
     Expect(0, 5119, '\P{incherokee}', "");
@@ -102531,26 +103537,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5120, '\p{^incherokee}', "");
     Expect(1, 5120, '\P{incherokee}', "");
     Expect(0, 5120, '\P{^incherokee}', "");
-    Expect(1, 5119, '\p{_in_Cherokee}', "");
-    Expect(0, 5119, '\p{^_in_Cherokee}', "");
-    Expect(0, 5119, '\P{_in_Cherokee}', "");
-    Expect(1, 5119, '\P{^_in_Cherokee}', "");
-    Expect(0, 5120, '\p{_in_Cherokee}', "");
-    Expect(1, 5120, '\p{^_in_Cherokee}', "");
-    Expect(1, 5120, '\P{_in_Cherokee}', "");
-    Expect(0, 5120, '\P{^_in_Cherokee}', "");
-    Error('\p{-/a/IN_cherokee}');
-    Error('\P{-/a/IN_cherokee}');
-    Expect(1, 5119, '\p{in_cherokee}', "");
-    Expect(0, 5119, '\p{^in_cherokee}', "");
-    Expect(0, 5119, '\P{in_cherokee}', "");
-    Expect(1, 5119, '\P{^in_cherokee}', "");
-    Expect(0, 5120, '\p{in_cherokee}', "");
-    Expect(1, 5120, '\p{^in_cherokee}', "");
-    Expect(1, 5120, '\P{in_cherokee}', "");
-    Expect(0, 5120, '\P{^in_cherokee}', "");
-    Error('\p{  IN_CHORASMIAN:=}');
-    Error('\P{  IN_CHORASMIAN:=}');
+    Expect(1, 5119, '\p{	in_cherokee}', "");
+    Expect(0, 5119, '\p{^	in_cherokee}', "");
+    Expect(0, 5119, '\P{	in_cherokee}', "");
+    Expect(1, 5119, '\P{^	in_cherokee}', "");
+    Expect(0, 5120, '\p{	in_cherokee}', "");
+    Expect(1, 5120, '\p{^	in_cherokee}', "");
+    Expect(1, 5120, '\P{	in_cherokee}', "");
+    Expect(0, 5120, '\P{^	in_cherokee}', "");
+    Error('\p{ -In_Cherokee/a/}');
+    Error('\P{ -In_Cherokee/a/}');
+    Expect(1, 5119, '\p{ _In_Cherokee}', "");
+    Expect(0, 5119, '\p{^ _In_Cherokee}', "");
+    Expect(0, 5119, '\P{ _In_Cherokee}', "");
+    Expect(1, 5119, '\P{^ _In_Cherokee}', "");
+    Expect(0, 5120, '\p{ _In_Cherokee}', "");
+    Expect(1, 5120, '\p{^ _In_Cherokee}', "");
+    Expect(1, 5120, '\P{ _In_Cherokee}', "");
+    Expect(0, 5120, '\P{^ _In_Cherokee}', "");
+    Error('\p{		In_CHORASMIAN:=}');
+    Error('\P{		In_CHORASMIAN:=}');
     Expect(1, 69599, '\p{inchorasmian}', "");
     Expect(0, 69599, '\p{^inchorasmian}', "");
     Expect(0, 69599, '\P{inchorasmian}', "");
@@ -102559,26 +103565,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69600, '\p{^inchorasmian}', "");
     Expect(1, 69600, '\P{inchorasmian}', "");
     Expect(0, 69600, '\P{^inchorasmian}', "");
-    Expect(1, 69599, '\p{	In_CHORASMIAN}', "");
-    Expect(0, 69599, '\p{^	In_CHORASMIAN}', "");
-    Expect(0, 69599, '\P{	In_CHORASMIAN}', "");
-    Expect(1, 69599, '\P{^	In_CHORASMIAN}', "");
-    Expect(0, 69600, '\p{	In_CHORASMIAN}', "");
-    Expect(1, 69600, '\p{^	In_CHORASMIAN}', "");
-    Expect(1, 69600, '\P{	In_CHORASMIAN}', "");
-    Expect(0, 69600, '\P{^	In_CHORASMIAN}', "");
-    Error('\p{ in_Chorasmian:=}');
-    Error('\P{ in_Chorasmian:=}');
-    Expect(1, 69599, '\p{ _In_Chorasmian}', "");
-    Expect(0, 69599, '\p{^ _In_Chorasmian}', "");
-    Expect(0, 69599, '\P{ _In_Chorasmian}', "");
-    Expect(1, 69599, '\P{^ _In_Chorasmian}', "");
-    Expect(0, 69600, '\p{ _In_Chorasmian}', "");
-    Expect(1, 69600, '\p{^ _In_Chorasmian}', "");
-    Expect(1, 69600, '\P{ _In_Chorasmian}', "");
-    Expect(0, 69600, '\P{^ _In_Chorasmian}', "");
-    Error('\p{/a/_IN_Coptic}');
-    Error('\P{/a/_IN_Coptic}');
+    Expect(1, 69599, '\p{-IN_Chorasmian}', "");
+    Expect(0, 69599, '\p{^-IN_Chorasmian}', "");
+    Expect(0, 69599, '\P{-IN_Chorasmian}', "");
+    Expect(1, 69599, '\P{^-IN_Chorasmian}', "");
+    Expect(0, 69600, '\p{-IN_Chorasmian}', "");
+    Expect(1, 69600, '\p{^-IN_Chorasmian}', "");
+    Expect(1, 69600, '\P{-IN_Chorasmian}', "");
+    Expect(0, 69600, '\P{^-IN_Chorasmian}', "");
+    Error('\p{	_In_Chorasmian:=}');
+    Error('\P{	_In_Chorasmian:=}');
+    Expect(1, 69599, '\p{ In_Chorasmian}', "");
+    Expect(0, 69599, '\p{^ In_Chorasmian}', "");
+    Expect(0, 69599, '\P{ In_Chorasmian}', "");
+    Expect(1, 69599, '\P{^ In_Chorasmian}', "");
+    Expect(0, 69600, '\p{ In_Chorasmian}', "");
+    Expect(1, 69600, '\p{^ In_Chorasmian}', "");
+    Expect(1, 69600, '\P{ In_Chorasmian}', "");
+    Expect(0, 69600, '\P{^ In_Chorasmian}', "");
+    Error('\p{_In_coptic/a/}');
+    Error('\P{_In_coptic/a/}');
     Expect(1, 11519, '\p{incoptic}', "");
     Expect(0, 11519, '\p{^incoptic}', "");
     Expect(0, 11519, '\P{incoptic}', "");
@@ -102587,26 +103593,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11520, '\p{^incoptic}', "");
     Expect(1, 11520, '\P{incoptic}', "");
     Expect(0, 11520, '\P{^incoptic}', "");
-    Expect(1, 11519, '\p{_ in_Coptic}', "");
-    Expect(0, 11519, '\p{^_ in_Coptic}', "");
-    Expect(0, 11519, '\P{_ in_Coptic}', "");
-    Expect(1, 11519, '\P{^_ in_Coptic}', "");
-    Expect(0, 11520, '\p{_ in_Coptic}', "");
-    Expect(1, 11520, '\p{^_ in_Coptic}', "");
-    Expect(1, 11520, '\P{_ in_Coptic}', "");
-    Expect(0, 11520, '\P{^_ in_Coptic}', "");
-    Error('\p{:=In_coptic}');
-    Error('\P{:=In_coptic}');
-    Expect(1, 11519, '\p{_In_COPTIC}', "");
-    Expect(0, 11519, '\p{^_In_COPTIC}', "");
-    Expect(0, 11519, '\P{_In_COPTIC}', "");
-    Expect(1, 11519, '\P{^_In_COPTIC}', "");
-    Expect(0, 11520, '\p{_In_COPTIC}', "");
-    Expect(1, 11520, '\p{^_In_COPTIC}', "");
-    Expect(1, 11520, '\P{_In_COPTIC}', "");
-    Expect(0, 11520, '\P{^_In_COPTIC}', "");
-    Error('\p{	_In_cuneiform:=}');
-    Error('\P{	_In_cuneiform:=}');
+    Expect(1, 11519, '\p{ _IN_COPTIC}', "");
+    Expect(0, 11519, '\p{^ _IN_COPTIC}', "");
+    Expect(0, 11519, '\P{ _IN_COPTIC}', "");
+    Expect(1, 11519, '\P{^ _IN_COPTIC}', "");
+    Expect(0, 11520, '\p{ _IN_COPTIC}', "");
+    Expect(1, 11520, '\p{^ _IN_COPTIC}', "");
+    Expect(1, 11520, '\P{ _IN_COPTIC}', "");
+    Expect(0, 11520, '\P{^ _IN_COPTIC}', "");
+    Error('\p{-:=in_Coptic}');
+    Error('\P{-:=in_Coptic}');
+    Expect(1, 11519, '\p{-_IN_Coptic}', "");
+    Expect(0, 11519, '\p{^-_IN_Coptic}', "");
+    Expect(0, 11519, '\P{-_IN_Coptic}', "");
+    Expect(1, 11519, '\P{^-_IN_Coptic}', "");
+    Expect(0, 11520, '\p{-_IN_Coptic}', "");
+    Expect(1, 11520, '\p{^-_IN_Coptic}', "");
+    Expect(1, 11520, '\P{-_IN_Coptic}', "");
+    Expect(0, 11520, '\P{^-_IN_Coptic}', "");
+    Error('\p{:=_In_Cuneiform}');
+    Error('\P{:=_In_Cuneiform}');
     Expect(1, 74751, '\p{incuneiform}', "");
     Expect(0, 74751, '\p{^incuneiform}', "");
     Expect(0, 74751, '\P{incuneiform}', "");
@@ -102615,26 +103621,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74752, '\p{^incuneiform}', "");
     Expect(1, 74752, '\P{incuneiform}', "");
     Expect(0, 74752, '\P{^incuneiform}', "");
-    Expect(1, 74751, '\p{--IN_CUNEIFORM}', "");
-    Expect(0, 74751, '\p{^--IN_CUNEIFORM}', "");
-    Expect(0, 74751, '\P{--IN_CUNEIFORM}', "");
-    Expect(1, 74751, '\P{^--IN_CUNEIFORM}', "");
-    Expect(0, 74752, '\p{--IN_CUNEIFORM}', "");
-    Expect(1, 74752, '\p{^--IN_CUNEIFORM}', "");
-    Expect(1, 74752, '\P{--IN_CUNEIFORM}', "");
-    Expect(0, 74752, '\P{^--IN_CUNEIFORM}', "");
-    Error('\p{	/a/In_CUNEIFORM}');
-    Error('\P{	/a/In_CUNEIFORM}');
-    Expect(1, 74751, '\p{ in_CUNEIFORM}', "");
-    Expect(0, 74751, '\p{^ in_CUNEIFORM}', "");
-    Expect(0, 74751, '\P{ in_CUNEIFORM}', "");
-    Expect(1, 74751, '\P{^ in_CUNEIFORM}', "");
-    Expect(0, 74752, '\p{ in_CUNEIFORM}', "");
-    Expect(1, 74752, '\p{^ in_CUNEIFORM}', "");
-    Expect(1, 74752, '\P{ in_CUNEIFORM}', "");
-    Expect(0, 74752, '\P{^ in_CUNEIFORM}', "");
-    Error('\p{-/a/In_Cypro_Minoan}');
-    Error('\P{-/a/In_Cypro_Minoan}');
+    Expect(1, 74751, '\p{_-In_Cuneiform}', "");
+    Expect(0, 74751, '\p{^_-In_Cuneiform}', "");
+    Expect(0, 74751, '\P{_-In_Cuneiform}', "");
+    Expect(1, 74751, '\P{^_-In_Cuneiform}', "");
+    Expect(0, 74752, '\p{_-In_Cuneiform}', "");
+    Expect(1, 74752, '\p{^_-In_Cuneiform}', "");
+    Expect(1, 74752, '\P{_-In_Cuneiform}', "");
+    Expect(0, 74752, '\P{^_-In_Cuneiform}', "");
+    Error('\p{:=__In_Cuneiform}');
+    Error('\P{:=__In_Cuneiform}');
+    Expect(1, 74751, '\p{	In_cuneiform}', "");
+    Expect(0, 74751, '\p{^	In_cuneiform}', "");
+    Expect(0, 74751, '\P{	In_cuneiform}', "");
+    Expect(1, 74751, '\P{^	In_cuneiform}', "");
+    Expect(0, 74752, '\p{	In_cuneiform}', "");
+    Expect(1, 74752, '\p{^	In_cuneiform}', "");
+    Expect(1, 74752, '\P{	In_cuneiform}', "");
+    Expect(0, 74752, '\P{^	In_cuneiform}', "");
+    Error('\p{--In_Cypro_Minoan/a/}');
+    Error('\P{--In_Cypro_Minoan/a/}');
     Expect(1, 77823, '\p{incyprominoan}', "");
     Expect(0, 77823, '\p{^incyprominoan}', "");
     Expect(0, 77823, '\P{incyprominoan}', "");
@@ -102643,26 +103649,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 77824, '\p{^incyprominoan}', "");
     Expect(1, 77824, '\P{incyprominoan}', "");
     Expect(0, 77824, '\P{^incyprominoan}', "");
-    Expect(1, 77823, '\p{ _in_cypro_Minoan}', "");
-    Expect(0, 77823, '\p{^ _in_cypro_Minoan}', "");
-    Expect(0, 77823, '\P{ _in_cypro_Minoan}', "");
-    Expect(1, 77823, '\P{^ _in_cypro_Minoan}', "");
-    Expect(0, 77824, '\p{ _in_cypro_Minoan}', "");
-    Expect(1, 77824, '\p{^ _in_cypro_Minoan}', "");
-    Expect(1, 77824, '\P{ _in_cypro_Minoan}', "");
-    Expect(0, 77824, '\P{^ _in_cypro_Minoan}', "");
-    Error('\p{/a/	In_CYPRO_Minoan}');
-    Error('\P{/a/	In_CYPRO_Minoan}');
-    Expect(1, 77823, '\p{_-IN_CYPRO_minoan}', "");
-    Expect(0, 77823, '\p{^_-IN_CYPRO_minoan}', "");
-    Expect(0, 77823, '\P{_-IN_CYPRO_minoan}', "");
-    Expect(1, 77823, '\P{^_-IN_CYPRO_minoan}', "");
-    Expect(0, 77824, '\p{_-IN_CYPRO_minoan}', "");
-    Expect(1, 77824, '\p{^_-IN_CYPRO_minoan}', "");
-    Expect(1, 77824, '\P{_-IN_CYPRO_minoan}', "");
-    Expect(0, 77824, '\P{^_-IN_CYPRO_minoan}', "");
-    Error('\p{-:=IN_Cyrillic}');
-    Error('\P{-:=IN_Cyrillic}');
+    Expect(1, 77823, '\p{ 	IN_CYPRO_Minoan}', "");
+    Expect(0, 77823, '\p{^ 	IN_CYPRO_Minoan}', "");
+    Expect(0, 77823, '\P{ 	IN_CYPRO_Minoan}', "");
+    Expect(1, 77823, '\P{^ 	IN_CYPRO_Minoan}', "");
+    Expect(0, 77824, '\p{ 	IN_CYPRO_Minoan}', "");
+    Expect(1, 77824, '\p{^ 	IN_CYPRO_Minoan}', "");
+    Expect(1, 77824, '\P{ 	IN_CYPRO_Minoan}', "");
+    Expect(0, 77824, '\P{^ 	IN_CYPRO_Minoan}', "");
+    Error('\p{/a/--IN_cypro_MINOAN}');
+    Error('\P{/a/--IN_cypro_MINOAN}');
+    Expect(1, 77823, '\p{_	In_CYPRO_MINOAN}', "");
+    Expect(0, 77823, '\p{^_	In_CYPRO_MINOAN}', "");
+    Expect(0, 77823, '\P{_	In_CYPRO_MINOAN}', "");
+    Expect(1, 77823, '\P{^_	In_CYPRO_MINOAN}', "");
+    Expect(0, 77824, '\p{_	In_CYPRO_MINOAN}', "");
+    Expect(1, 77824, '\p{^_	In_CYPRO_MINOAN}', "");
+    Expect(1, 77824, '\P{_	In_CYPRO_MINOAN}', "");
+    Expect(0, 77824, '\P{^_	In_CYPRO_MINOAN}', "");
+    Error('\p{/a/In_cyrillic}');
+    Error('\P{/a/In_cyrillic}');
     Expect(1, 1279, '\p{incyrillic}', "");
     Expect(0, 1279, '\p{^incyrillic}', "");
     Expect(0, 1279, '\P{incyrillic}', "");
@@ -102671,26 +103677,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1280, '\p{^incyrillic}', "");
     Expect(1, 1280, '\P{incyrillic}', "");
     Expect(0, 1280, '\P{^incyrillic}', "");
-    Expect(1, 1279, '\p{__IN_cyrillic}', "");
-    Expect(0, 1279, '\p{^__IN_cyrillic}', "");
-    Expect(0, 1279, '\P{__IN_cyrillic}', "");
-    Expect(1, 1279, '\P{^__IN_cyrillic}', "");
-    Expect(0, 1280, '\p{__IN_cyrillic}', "");
-    Expect(1, 1280, '\p{^__IN_cyrillic}', "");
-    Expect(1, 1280, '\P{__IN_cyrillic}', "");
-    Expect(0, 1280, '\P{^__IN_cyrillic}', "");
-    Error('\p{:=IN_Cyrillic}');
-    Error('\P{:=IN_Cyrillic}');
-    Expect(1, 1279, '\p{ in_Cyrillic}', "");
-    Expect(0, 1279, '\p{^ in_Cyrillic}', "");
-    Expect(0, 1279, '\P{ in_Cyrillic}', "");
-    Expect(1, 1279, '\P{^ in_Cyrillic}', "");
-    Expect(0, 1280, '\p{ in_Cyrillic}', "");
-    Expect(1, 1280, '\p{^ in_Cyrillic}', "");
-    Expect(1, 1280, '\P{ in_Cyrillic}', "");
-    Expect(0, 1280, '\P{^ in_Cyrillic}', "");
-    Error('\p{_	in_Deseret/a/}');
-    Error('\P{_	in_Deseret/a/}');
+    Expect(1, 1279, '\p{-	in_CYRILLIC}', "");
+    Expect(0, 1279, '\p{^-	in_CYRILLIC}', "");
+    Expect(0, 1279, '\P{-	in_CYRILLIC}', "");
+    Expect(1, 1279, '\P{^-	in_CYRILLIC}', "");
+    Expect(0, 1280, '\p{-	in_CYRILLIC}', "");
+    Expect(1, 1280, '\p{^-	in_CYRILLIC}', "");
+    Expect(1, 1280, '\P{-	in_CYRILLIC}', "");
+    Expect(0, 1280, '\P{^-	in_CYRILLIC}', "");
+    Error('\p{:=IN_CYRILLIC}');
+    Error('\P{:=IN_CYRILLIC}');
+    Expect(1, 1279, '\p{_-In_cyrillic}', "");
+    Expect(0, 1279, '\p{^_-In_cyrillic}', "");
+    Expect(0, 1279, '\P{_-In_cyrillic}', "");
+    Expect(1, 1279, '\P{^_-In_cyrillic}', "");
+    Expect(0, 1280, '\p{_-In_cyrillic}', "");
+    Expect(1, 1280, '\p{^_-In_cyrillic}', "");
+    Expect(1, 1280, '\P{_-In_cyrillic}', "");
+    Expect(0, 1280, '\P{^_-In_cyrillic}', "");
+    Error('\p{/a/	IN_Deseret}');
+    Error('\P{/a/	IN_Deseret}');
     Expect(1, 66639, '\p{indeseret}', "");
     Expect(0, 66639, '\p{^indeseret}', "");
     Expect(0, 66639, '\P{indeseret}', "");
@@ -102699,26 +103705,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66640, '\p{^indeseret}', "");
     Expect(1, 66640, '\P{indeseret}', "");
     Expect(0, 66640, '\P{^indeseret}', "");
-    Expect(1, 66639, '\p{-In_Deseret}', "");
-    Expect(0, 66639, '\p{^-In_Deseret}', "");
-    Expect(0, 66639, '\P{-In_Deseret}', "");
-    Expect(1, 66639, '\P{^-In_Deseret}', "");
-    Expect(0, 66640, '\p{-In_Deseret}', "");
-    Expect(1, 66640, '\p{^-In_Deseret}', "");
-    Expect(1, 66640, '\P{-In_Deseret}', "");
-    Expect(0, 66640, '\P{^-In_Deseret}', "");
-    Error('\p{	in_deseret:=}');
-    Error('\P{	in_deseret:=}');
-    Expect(1, 66639, '\p{_ In_Deseret}', "");
-    Expect(0, 66639, '\p{^_ In_Deseret}', "");
-    Expect(0, 66639, '\P{_ In_Deseret}', "");
-    Expect(1, 66639, '\P{^_ In_Deseret}', "");
-    Expect(0, 66640, '\p{_ In_Deseret}', "");
-    Expect(1, 66640, '\p{^_ In_Deseret}', "");
-    Expect(1, 66640, '\P{_ In_Deseret}', "");
-    Expect(0, 66640, '\P{^_ In_Deseret}', "");
-    Error('\p{/a/	In_devanagari}');
-    Error('\P{/a/	In_devanagari}');
+    Expect(1, 66639, '\p{ 	IN_Deseret}', "");
+    Expect(0, 66639, '\p{^ 	IN_Deseret}', "");
+    Expect(0, 66639, '\P{ 	IN_Deseret}', "");
+    Expect(1, 66639, '\P{^ 	IN_Deseret}', "");
+    Expect(0, 66640, '\p{ 	IN_Deseret}', "");
+    Expect(1, 66640, '\p{^ 	IN_Deseret}', "");
+    Expect(1, 66640, '\P{ 	IN_Deseret}', "");
+    Expect(0, 66640, '\P{^ 	IN_Deseret}', "");
+    Error('\p{	 In_Deseret/a/}');
+    Error('\P{	 In_Deseret/a/}');
+    Expect(1, 66639, '\p{--IN_DESERET}', "");
+    Expect(0, 66639, '\p{^--IN_DESERET}', "");
+    Expect(0, 66639, '\P{--IN_DESERET}', "");
+    Expect(1, 66639, '\P{^--IN_DESERET}', "");
+    Expect(0, 66640, '\p{--IN_DESERET}', "");
+    Expect(1, 66640, '\p{^--IN_DESERET}', "");
+    Expect(1, 66640, '\P{--IN_DESERET}', "");
+    Expect(0, 66640, '\P{^--IN_DESERET}', "");
+    Error('\p{-/a/IN_Devanagari}');
+    Error('\P{-/a/IN_Devanagari}');
     Expect(1, 2431, '\p{indevanagari}', "");
     Expect(0, 2431, '\p{^indevanagari}', "");
     Expect(0, 2431, '\P{indevanagari}', "");
@@ -102727,26 +103733,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2432, '\p{^indevanagari}', "");
     Expect(1, 2432, '\P{indevanagari}', "");
     Expect(0, 2432, '\P{^indevanagari}', "");
-    Expect(1, 2431, '\p{	In_Devanagari}', "");
-    Expect(0, 2431, '\p{^	In_Devanagari}', "");
-    Expect(0, 2431, '\P{	In_Devanagari}', "");
-    Expect(1, 2431, '\P{^	In_Devanagari}', "");
-    Expect(0, 2432, '\p{	In_Devanagari}', "");
-    Expect(1, 2432, '\p{^	In_Devanagari}', "");
-    Expect(1, 2432, '\P{	In_Devanagari}', "");
-    Expect(0, 2432, '\P{^	In_Devanagari}', "");
-    Error('\p{	:=in_devanagari}');
-    Error('\P{	:=in_devanagari}');
-    Expect(1, 2431, '\p{-	in_DEVANAGARI}', "");
-    Expect(0, 2431, '\p{^-	in_DEVANAGARI}', "");
-    Expect(0, 2431, '\P{-	in_DEVANAGARI}', "");
-    Expect(1, 2431, '\P{^-	in_DEVANAGARI}', "");
-    Expect(0, 2432, '\p{-	in_DEVANAGARI}', "");
-    Expect(1, 2432, '\p{^-	in_DEVANAGARI}', "");
-    Expect(1, 2432, '\P{-	in_DEVANAGARI}', "");
-    Expect(0, 2432, '\P{^-	in_DEVANAGARI}', "");
-    Error('\p{-_IN_DIVES_Akuru:=}');
-    Error('\P{-_IN_DIVES_Akuru:=}');
+    Expect(1, 2431, '\p{_In_DEVANAGARI}', "");
+    Expect(0, 2431, '\p{^_In_DEVANAGARI}', "");
+    Expect(0, 2431, '\P{_In_DEVANAGARI}', "");
+    Expect(1, 2431, '\P{^_In_DEVANAGARI}', "");
+    Expect(0, 2432, '\p{_In_DEVANAGARI}', "");
+    Expect(1, 2432, '\p{^_In_DEVANAGARI}', "");
+    Expect(1, 2432, '\P{_In_DEVANAGARI}', "");
+    Expect(0, 2432, '\P{^_In_DEVANAGARI}', "");
+    Error('\p{/a/ In_Devanagari}');
+    Error('\P{/a/ In_Devanagari}');
+    Expect(1, 2431, '\p{	-in_devanagari}', "");
+    Expect(0, 2431, '\p{^	-in_devanagari}', "");
+    Expect(0, 2431, '\P{	-in_devanagari}', "");
+    Expect(1, 2431, '\P{^	-in_devanagari}', "");
+    Expect(0, 2432, '\p{	-in_devanagari}', "");
+    Expect(1, 2432, '\p{^	-in_devanagari}', "");
+    Expect(1, 2432, '\P{	-in_devanagari}', "");
+    Expect(0, 2432, '\P{^	-in_devanagari}', "");
+    Error('\p{- In_DIVES_Akuru/a/}');
+    Error('\P{- In_DIVES_Akuru/a/}');
     Expect(1, 72031, '\p{indivesakuru}', "");
     Expect(0, 72031, '\p{^indivesakuru}', "");
     Expect(0, 72031, '\P{indivesakuru}', "");
@@ -102755,26 +103761,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72032, '\p{^indivesakuru}', "");
     Expect(1, 72032, '\P{indivesakuru}', "");
     Expect(0, 72032, '\P{^indivesakuru}', "");
-    Expect(1, 72031, '\p{--in_Dives_Akuru}', "");
-    Expect(0, 72031, '\p{^--in_Dives_Akuru}', "");
-    Expect(0, 72031, '\P{--in_Dives_Akuru}', "");
-    Expect(1, 72031, '\P{^--in_Dives_Akuru}', "");
-    Expect(0, 72032, '\p{--in_Dives_Akuru}', "");
-    Expect(1, 72032, '\p{^--in_Dives_Akuru}', "");
-    Expect(1, 72032, '\P{--in_Dives_Akuru}', "");
-    Expect(0, 72032, '\P{^--in_Dives_Akuru}', "");
-    Error('\p{/a/In_DIVES_Akuru}');
-    Error('\P{/a/In_DIVES_Akuru}');
-    Expect(1, 72031, '\p{-_in_dives_Akuru}', "");
-    Expect(0, 72031, '\p{^-_in_dives_Akuru}', "");
-    Expect(0, 72031, '\P{-_in_dives_Akuru}', "");
-    Expect(1, 72031, '\P{^-_in_dives_Akuru}', "");
-    Expect(0, 72032, '\p{-_in_dives_Akuru}', "");
-    Expect(1, 72032, '\p{^-_in_dives_Akuru}', "");
-    Expect(1, 72032, '\P{-_in_dives_Akuru}', "");
-    Expect(0, 72032, '\P{^-_in_dives_Akuru}', "");
-    Error('\p{/a/ 	In_Dogra}');
-    Error('\P{/a/ 	In_Dogra}');
+    Expect(1, 72031, '\p{ -In_Dives_akuru}', "");
+    Expect(0, 72031, '\p{^ -In_Dives_akuru}', "");
+    Expect(0, 72031, '\P{ -In_Dives_akuru}', "");
+    Expect(1, 72031, '\P{^ -In_Dives_akuru}', "");
+    Expect(0, 72032, '\p{ -In_Dives_akuru}', "");
+    Expect(1, 72032, '\p{^ -In_Dives_akuru}', "");
+    Expect(1, 72032, '\P{ -In_Dives_akuru}', "");
+    Expect(0, 72032, '\P{^ -In_Dives_akuru}', "");
+    Error('\p{ _IN_dives_Akuru/a/}');
+    Error('\P{ _IN_dives_Akuru/a/}');
+    Expect(1, 72031, '\p{- In_Dives_Akuru}', "");
+    Expect(0, 72031, '\p{^- In_Dives_Akuru}', "");
+    Expect(0, 72031, '\P{- In_Dives_Akuru}', "");
+    Expect(1, 72031, '\P{^- In_Dives_Akuru}', "");
+    Expect(0, 72032, '\p{- In_Dives_Akuru}', "");
+    Expect(1, 72032, '\p{^- In_Dives_Akuru}', "");
+    Expect(1, 72032, '\P{- In_Dives_Akuru}', "");
+    Expect(0, 72032, '\P{^- In_Dives_Akuru}', "");
+    Error('\p{:=_in_dogra}');
+    Error('\P{:=_in_dogra}');
     Expect(1, 71759, '\p{indogra}', "");
     Expect(0, 71759, '\p{^indogra}', "");
     Expect(0, 71759, '\P{indogra}', "");
@@ -102783,26 +103789,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71760, '\p{^indogra}', "");
     Expect(1, 71760, '\P{indogra}', "");
     Expect(0, 71760, '\P{^indogra}', "");
-    Expect(1, 71759, '\p{  in_Dogra}', "");
-    Expect(0, 71759, '\p{^  in_Dogra}', "");
-    Expect(0, 71759, '\P{  in_Dogra}', "");
-    Expect(1, 71759, '\P{^  in_Dogra}', "");
-    Expect(0, 71760, '\p{  in_Dogra}', "");
-    Expect(1, 71760, '\p{^  in_Dogra}', "");
-    Expect(1, 71760, '\P{  in_Dogra}', "");
-    Expect(0, 71760, '\P{^  in_Dogra}', "");
-    Error('\p{IN_Dogra/a/}');
-    Error('\P{IN_Dogra/a/}');
-    Expect(1, 71759, '\p{ In_dogra}', "");
-    Expect(0, 71759, '\p{^ In_dogra}', "");
-    Expect(0, 71759, '\P{ In_dogra}', "");
-    Expect(1, 71759, '\P{^ In_dogra}', "");
-    Expect(0, 71760, '\p{ In_dogra}', "");
-    Expect(1, 71760, '\p{^ In_dogra}', "");
-    Expect(1, 71760, '\P{ In_dogra}', "");
-    Expect(0, 71760, '\P{^ In_dogra}', "");
-    Error('\p{:=	_In_duployan}');
-    Error('\P{:=	_In_duployan}');
+    Expect(1, 71759, '\p{In_dogra}', "");
+    Expect(0, 71759, '\p{^In_dogra}', "");
+    Expect(0, 71759, '\P{In_dogra}', "");
+    Expect(1, 71759, '\P{^In_dogra}', "");
+    Expect(0, 71760, '\p{In_dogra}', "");
+    Expect(1, 71760, '\p{^In_dogra}', "");
+    Expect(1, 71760, '\P{In_dogra}', "");
+    Expect(0, 71760, '\P{^In_dogra}', "");
+    Error('\p{ 	In_DOGRA:=}');
+    Error('\P{ 	In_DOGRA:=}');
+    Expect(1, 71759, '\p{-in_DOGRA}', "");
+    Expect(0, 71759, '\p{^-in_DOGRA}', "");
+    Expect(0, 71759, '\P{-in_DOGRA}', "");
+    Expect(1, 71759, '\P{^-in_DOGRA}', "");
+    Expect(0, 71760, '\p{-in_DOGRA}', "");
+    Expect(1, 71760, '\p{^-in_DOGRA}', "");
+    Expect(1, 71760, '\P{-in_DOGRA}', "");
+    Expect(0, 71760, '\P{^-in_DOGRA}', "");
+    Error('\p{/a/In_duployan}');
+    Error('\P{/a/In_duployan}');
     Expect(1, 113823, '\p{induployan}', "");
     Expect(0, 113823, '\p{^induployan}', "");
     Expect(0, 113823, '\P{induployan}', "");
@@ -102811,26 +103817,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 113824, '\p{^induployan}', "");
     Expect(1, 113824, '\P{induployan}', "");
     Expect(0, 113824, '\P{^induployan}', "");
-    Expect(1, 113823, '\p{-IN_Duployan}', "");
-    Expect(0, 113823, '\p{^-IN_Duployan}', "");
-    Expect(0, 113823, '\P{-IN_Duployan}', "");
-    Expect(1, 113823, '\P{^-IN_Duployan}', "");
-    Expect(0, 113824, '\p{-IN_Duployan}', "");
-    Expect(1, 113824, '\p{^-IN_Duployan}', "");
-    Expect(1, 113824, '\P{-IN_Duployan}', "");
-    Expect(0, 113824, '\P{^-IN_Duployan}', "");
-    Error('\p{:= -In_Duployan}');
-    Error('\P{:= -In_Duployan}');
-    Expect(1, 113823, '\p{	-In_DUPLOYAN}', "");
-    Expect(0, 113823, '\p{^	-In_DUPLOYAN}', "");
-    Expect(0, 113823, '\P{	-In_DUPLOYAN}', "");
-    Expect(1, 113823, '\P{^	-In_DUPLOYAN}', "");
-    Expect(0, 113824, '\p{	-In_DUPLOYAN}', "");
-    Expect(1, 113824, '\p{^	-In_DUPLOYAN}', "");
-    Expect(1, 113824, '\P{	-In_DUPLOYAN}', "");
-    Expect(0, 113824, '\P{^	-In_DUPLOYAN}', "");
-    Error('\p{ :=In_Egyptian_Hieroglyphs}');
-    Error('\P{ :=In_Egyptian_Hieroglyphs}');
+    Expect(1, 113823, '\p{_ In_Duployan}', "");
+    Expect(0, 113823, '\p{^_ In_Duployan}', "");
+    Expect(0, 113823, '\P{_ In_Duployan}', "");
+    Expect(1, 113823, '\P{^_ In_Duployan}', "");
+    Expect(0, 113824, '\p{_ In_Duployan}', "");
+    Expect(1, 113824, '\p{^_ In_Duployan}', "");
+    Expect(1, 113824, '\P{_ In_Duployan}', "");
+    Expect(0, 113824, '\P{^_ In_Duployan}', "");
+    Error('\p{:=	In_Duployan}');
+    Error('\P{:=	In_Duployan}');
+    Expect(1, 113823, '\p{_-In_DUPLOYAN}', "");
+    Expect(0, 113823, '\p{^_-In_DUPLOYAN}', "");
+    Expect(0, 113823, '\P{_-In_DUPLOYAN}', "");
+    Expect(1, 113823, '\P{^_-In_DUPLOYAN}', "");
+    Expect(0, 113824, '\p{_-In_DUPLOYAN}', "");
+    Expect(1, 113824, '\p{^_-In_DUPLOYAN}', "");
+    Expect(1, 113824, '\P{_-In_DUPLOYAN}', "");
+    Expect(0, 113824, '\P{^_-In_DUPLOYAN}', "");
+    Error('\p{/a/		IN_egyptian_Hieroglyphs}');
+    Error('\P{/a/		IN_egyptian_Hieroglyphs}');
     Expect(1, 78895, '\p{inegyptianhieroglyphs}', "");
     Expect(0, 78895, '\p{^inegyptianhieroglyphs}', "");
     Expect(0, 78895, '\P{inegyptianhieroglyphs}', "");
@@ -102839,26 +103845,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 78896, '\p{^inegyptianhieroglyphs}', "");
     Expect(1, 78896, '\P{inegyptianhieroglyphs}', "");
     Expect(0, 78896, '\P{^inegyptianhieroglyphs}', "");
-    Expect(1, 78895, '\p{	-In_Egyptian_Hieroglyphs}', "");
-    Expect(0, 78895, '\p{^	-In_Egyptian_Hieroglyphs}', "");
-    Expect(0, 78895, '\P{	-In_Egyptian_Hieroglyphs}', "");
-    Expect(1, 78895, '\P{^	-In_Egyptian_Hieroglyphs}', "");
-    Expect(0, 78896, '\p{	-In_Egyptian_Hieroglyphs}', "");
-    Expect(1, 78896, '\p{^	-In_Egyptian_Hieroglyphs}', "");
-    Expect(1, 78896, '\P{	-In_Egyptian_Hieroglyphs}', "");
-    Expect(0, 78896, '\P{^	-In_Egyptian_Hieroglyphs}', "");
-    Error('\p{-_In_Egyptian_Hieroglyphs/a/}');
-    Error('\P{-_In_Egyptian_Hieroglyphs/a/}');
-    Expect(1, 78895, '\p{__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78895, '\p{^__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78895, '\P{__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78895, '\P{^__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78896, '\p{__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78896, '\p{^__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(1, 78896, '\P{__In_EGYPTIAN_Hieroglyphs}', "");
-    Expect(0, 78896, '\P{^__In_EGYPTIAN_Hieroglyphs}', "");
-    Error('\p{  In_Elbasan:=}');
-    Error('\P{  In_Elbasan:=}');
+    Expect(1, 78895, '\p{ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78895, '\p{^ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78895, '\P{ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78895, '\P{^ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78896, '\p{ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78896, '\p{^ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78896, '\P{ 	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78896, '\P{^ 	In_Egyptian_Hieroglyphs}', "");
+    Error('\p{/a/-_In_egyptian_Hieroglyphs}');
+    Error('\P{/a/-_In_egyptian_Hieroglyphs}');
+    Expect(1, 78895, '\p{	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78895, '\p{^	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78895, '\P{	In_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78895, '\P{^	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78896, '\p{	In_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78896, '\p{^	In_Egyptian_Hieroglyphs}', "");
+    Expect(1, 78896, '\P{	In_Egyptian_Hieroglyphs}', "");
+    Expect(0, 78896, '\P{^	In_Egyptian_Hieroglyphs}', "");
+    Error('\p{:=_-in_Elbasan}');
+    Error('\P{:=_-in_Elbasan}');
     Expect(1, 66863, '\p{inelbasan}', "");
     Expect(0, 66863, '\p{^inelbasan}', "");
     Expect(0, 66863, '\P{inelbasan}', "");
@@ -102867,26 +103873,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66864, '\p{^inelbasan}', "");
     Expect(1, 66864, '\P{inelbasan}', "");
     Expect(0, 66864, '\P{^inelbasan}', "");
-    Expect(1, 66863, '\p{ in_ELBASAN}', "");
-    Expect(0, 66863, '\p{^ in_ELBASAN}', "");
-    Expect(0, 66863, '\P{ in_ELBASAN}', "");
-    Expect(1, 66863, '\P{^ in_ELBASAN}', "");
-    Expect(0, 66864, '\p{ in_ELBASAN}', "");
-    Expect(1, 66864, '\p{^ in_ELBASAN}', "");
-    Expect(1, 66864, '\P{ in_ELBASAN}', "");
-    Expect(0, 66864, '\P{^ in_ELBASAN}', "");
-    Error('\p{:=- in_ELBASAN}');
-    Error('\P{:=- in_ELBASAN}');
-    Expect(1, 66863, '\p{		In_Elbasan}', "");
-    Expect(0, 66863, '\p{^		In_Elbasan}', "");
-    Expect(0, 66863, '\P{		In_Elbasan}', "");
-    Expect(1, 66863, '\P{^		In_Elbasan}', "");
-    Expect(0, 66864, '\p{		In_Elbasan}', "");
-    Expect(1, 66864, '\p{^		In_Elbasan}', "");
-    Expect(1, 66864, '\P{		In_Elbasan}', "");
-    Expect(0, 66864, '\P{^		In_Elbasan}', "");
-    Error('\p{	_In_ELYMAIC:=}');
-    Error('\P{	_In_ELYMAIC:=}');
+    Expect(1, 66863, '\p{	 In_elbasan}', "");
+    Expect(0, 66863, '\p{^	 In_elbasan}', "");
+    Expect(0, 66863, '\P{	 In_elbasan}', "");
+    Expect(1, 66863, '\P{^	 In_elbasan}', "");
+    Expect(0, 66864, '\p{	 In_elbasan}', "");
+    Expect(1, 66864, '\p{^	 In_elbasan}', "");
+    Expect(1, 66864, '\P{	 In_elbasan}', "");
+    Expect(0, 66864, '\P{^	 In_elbasan}', "");
+    Error('\p{/a/_	IN_Elbasan}');
+    Error('\P{/a/_	IN_Elbasan}');
+    Expect(1, 66863, '\p{	In_Elbasan}', "");
+    Expect(0, 66863, '\p{^	In_Elbasan}', "");
+    Expect(0, 66863, '\P{	In_Elbasan}', "");
+    Expect(1, 66863, '\P{^	In_Elbasan}', "");
+    Expect(0, 66864, '\p{	In_Elbasan}', "");
+    Expect(1, 66864, '\p{^	In_Elbasan}', "");
+    Expect(1, 66864, '\P{	In_Elbasan}', "");
+    Expect(0, 66864, '\P{^	In_Elbasan}', "");
+    Error('\p{- In_elymaic/a/}');
+    Error('\P{- In_elymaic/a/}');
     Expect(1, 69631, '\p{inelymaic}', "");
     Expect(0, 69631, '\p{^inelymaic}', "");
     Expect(0, 69631, '\P{inelymaic}', "");
@@ -102895,26 +103901,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69632, '\p{^inelymaic}', "");
     Expect(1, 69632, '\P{inelymaic}', "");
     Expect(0, 69632, '\P{^inelymaic}', "");
-    Expect(1, 69631, '\p{In_Elymaic}', "");
-    Expect(0, 69631, '\p{^In_Elymaic}', "");
-    Expect(0, 69631, '\P{In_Elymaic}', "");
-    Expect(1, 69631, '\P{^In_Elymaic}', "");
-    Expect(0, 69632, '\p{In_Elymaic}', "");
-    Expect(1, 69632, '\p{^In_Elymaic}', "");
-    Expect(1, 69632, '\P{In_Elymaic}', "");
-    Expect(0, 69632, '\P{^In_Elymaic}', "");
-    Error('\p{	in_Elymaic/a/}');
-    Error('\P{	in_Elymaic/a/}');
-    Expect(1, 69631, '\p{-_In_ELYMAIC}', "");
-    Expect(0, 69631, '\p{^-_In_ELYMAIC}', "");
-    Expect(0, 69631, '\P{-_In_ELYMAIC}', "");
-    Expect(1, 69631, '\P{^-_In_ELYMAIC}', "");
-    Expect(0, 69632, '\p{-_In_ELYMAIC}', "");
-    Expect(1, 69632, '\p{^-_In_ELYMAIC}', "");
-    Expect(1, 69632, '\P{-_In_ELYMAIC}', "");
-    Expect(0, 69632, '\P{^-_In_ELYMAIC}', "");
-    Error('\p{	 in_Ethiopic:=}');
-    Error('\P{	 in_Ethiopic:=}');
+    Expect(1, 69631, '\p{	-IN_Elymaic}', "");
+    Expect(0, 69631, '\p{^	-IN_Elymaic}', "");
+    Expect(0, 69631, '\P{	-IN_Elymaic}', "");
+    Expect(1, 69631, '\P{^	-IN_Elymaic}', "");
+    Expect(0, 69632, '\p{	-IN_Elymaic}', "");
+    Expect(1, 69632, '\p{^	-IN_Elymaic}', "");
+    Expect(1, 69632, '\P{	-IN_Elymaic}', "");
+    Expect(0, 69632, '\P{^	-IN_Elymaic}', "");
+    Error('\p{	 In_elymaic:=}');
+    Error('\P{	 In_elymaic:=}');
+    Expect(1, 69631, '\p{-In_elymaic}', "");
+    Expect(0, 69631, '\p{^-In_elymaic}', "");
+    Expect(0, 69631, '\P{-In_elymaic}', "");
+    Expect(1, 69631, '\P{^-In_elymaic}', "");
+    Expect(0, 69632, '\p{-In_elymaic}', "");
+    Expect(1, 69632, '\p{^-In_elymaic}', "");
+    Expect(1, 69632, '\P{-In_elymaic}', "");
+    Expect(0, 69632, '\P{^-In_elymaic}', "");
+    Error('\p{:=-_In_ethiopic}');
+    Error('\P{:=-_In_ethiopic}');
     Expect(1, 4991, '\p{inethiopic}', "");
     Expect(0, 4991, '\p{^inethiopic}', "");
     Expect(0, 4991, '\P{inethiopic}', "");
@@ -102923,26 +103929,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4992, '\p{^inethiopic}', "");
     Expect(1, 4992, '\P{inethiopic}', "");
     Expect(0, 4992, '\P{^inethiopic}', "");
-    Expect(1, 4991, '\p{- IN_ETHIOPIC}', "");
-    Expect(0, 4991, '\p{^- IN_ETHIOPIC}', "");
-    Expect(0, 4991, '\P{- IN_ETHIOPIC}', "");
-    Expect(1, 4991, '\P{^- IN_ETHIOPIC}', "");
-    Expect(0, 4992, '\p{- IN_ETHIOPIC}', "");
-    Expect(1, 4992, '\p{^- IN_ETHIOPIC}', "");
-    Expect(1, 4992, '\P{- IN_ETHIOPIC}', "");
-    Expect(0, 4992, '\P{^- IN_ETHIOPIC}', "");
-    Error('\p{ -in_ethiopic:=}');
-    Error('\P{ -in_ethiopic:=}');
-    Expect(1, 4991, '\p{ _in_ETHIOPIC}', "");
-    Expect(0, 4991, '\p{^ _in_ETHIOPIC}', "");
-    Expect(0, 4991, '\P{ _in_ETHIOPIC}', "");
-    Expect(1, 4991, '\P{^ _in_ETHIOPIC}', "");
-    Expect(0, 4992, '\p{ _in_ETHIOPIC}', "");
-    Expect(1, 4992, '\p{^ _in_ETHIOPIC}', "");
-    Expect(1, 4992, '\P{ _in_ETHIOPIC}', "");
-    Expect(0, 4992, '\P{^ _in_ETHIOPIC}', "");
-    Error('\p{:=	_In_Georgian}');
-    Error('\P{:=	_In_Georgian}');
+    Expect(1, 4991, '\p{  IN_Ethiopic}', "");
+    Expect(0, 4991, '\p{^  IN_Ethiopic}', "");
+    Expect(0, 4991, '\P{  IN_Ethiopic}', "");
+    Expect(1, 4991, '\P{^  IN_Ethiopic}', "");
+    Expect(0, 4992, '\p{  IN_Ethiopic}', "");
+    Expect(1, 4992, '\p{^  IN_Ethiopic}', "");
+    Expect(1, 4992, '\P{  IN_Ethiopic}', "");
+    Expect(0, 4992, '\P{^  IN_Ethiopic}', "");
+    Error('\p{-/a/In_Ethiopic}');
+    Error('\P{-/a/In_Ethiopic}');
+    Expect(1, 4991, '\p{ _IN_Ethiopic}', "");
+    Expect(0, 4991, '\p{^ _IN_Ethiopic}', "");
+    Expect(0, 4991, '\P{ _IN_Ethiopic}', "");
+    Expect(1, 4991, '\P{^ _IN_Ethiopic}', "");
+    Expect(0, 4992, '\p{ _IN_Ethiopic}', "");
+    Expect(1, 4992, '\p{^ _IN_Ethiopic}', "");
+    Expect(1, 4992, '\P{ _IN_Ethiopic}', "");
+    Expect(0, 4992, '\P{^ _IN_Ethiopic}', "");
+    Error('\p{ :=in_Georgian}');
+    Error('\P{ :=in_Georgian}');
     Expect(1, 4351, '\p{ingeorgian}', "");
     Expect(0, 4351, '\p{^ingeorgian}', "");
     Expect(0, 4351, '\P{ingeorgian}', "");
@@ -102951,26 +103957,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4352, '\p{^ingeorgian}', "");
     Expect(1, 4352, '\P{ingeorgian}', "");
     Expect(0, 4352, '\P{^ingeorgian}', "");
-    Expect(1, 4351, '\p{_In_georgian}', "");
-    Expect(0, 4351, '\p{^_In_georgian}', "");
-    Expect(0, 4351, '\P{_In_georgian}', "");
-    Expect(1, 4351, '\P{^_In_georgian}', "");
-    Expect(0, 4352, '\p{_In_georgian}', "");
-    Expect(1, 4352, '\p{^_In_georgian}', "");
-    Expect(1, 4352, '\P{_In_georgian}', "");
-    Expect(0, 4352, '\P{^_In_georgian}', "");
-    Error('\p{ /a/in_Georgian}');
-    Error('\P{ /a/in_Georgian}');
-    Expect(1, 4351, '\p{ IN_Georgian}', "");
-    Expect(0, 4351, '\p{^ IN_Georgian}', "");
-    Expect(0, 4351, '\P{ IN_Georgian}', "");
-    Expect(1, 4351, '\P{^ IN_Georgian}', "");
-    Expect(0, 4352, '\p{ IN_Georgian}', "");
-    Expect(1, 4352, '\p{^ IN_Georgian}', "");
-    Expect(1, 4352, '\P{ IN_Georgian}', "");
-    Expect(0, 4352, '\P{^ IN_Georgian}', "");
-    Error('\p{		in_Glagolitic/a/}');
-    Error('\P{		in_Glagolitic/a/}');
+    Expect(1, 4351, '\p{_in_Georgian}', "");
+    Expect(0, 4351, '\p{^_in_Georgian}', "");
+    Expect(0, 4351, '\P{_in_Georgian}', "");
+    Expect(1, 4351, '\P{^_in_Georgian}', "");
+    Expect(0, 4352, '\p{_in_Georgian}', "");
+    Expect(1, 4352, '\p{^_in_Georgian}', "");
+    Expect(1, 4352, '\P{_in_Georgian}', "");
+    Expect(0, 4352, '\P{^_in_Georgian}', "");
+    Error('\p{:=_IN_GEORGIAN}');
+    Error('\P{:=_IN_GEORGIAN}');
+    Expect(1, 4351, '\p{_In_Georgian}', "");
+    Expect(0, 4351, '\p{^_In_Georgian}', "");
+    Expect(0, 4351, '\P{_In_Georgian}', "");
+    Expect(1, 4351, '\P{^_In_Georgian}', "");
+    Expect(0, 4352, '\p{_In_Georgian}', "");
+    Expect(1, 4352, '\p{^_In_Georgian}', "");
+    Expect(1, 4352, '\P{_In_Georgian}', "");
+    Expect(0, 4352, '\P{^_In_Georgian}', "");
+    Error('\p{- in_Glagolitic:=}');
+    Error('\P{- in_Glagolitic:=}');
     Expect(1, 11359, '\p{inglagolitic}', "");
     Expect(0, 11359, '\p{^inglagolitic}', "");
     Expect(0, 11359, '\P{inglagolitic}', "");
@@ -102979,26 +103985,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11360, '\p{^inglagolitic}', "");
     Expect(1, 11360, '\P{inglagolitic}', "");
     Expect(0, 11360, '\P{^inglagolitic}', "");
-    Expect(1, 11359, '\p{ 	IN_glagolitic}', "");
-    Expect(0, 11359, '\p{^ 	IN_glagolitic}', "");
-    Expect(0, 11359, '\P{ 	IN_glagolitic}', "");
-    Expect(1, 11359, '\P{^ 	IN_glagolitic}', "");
-    Expect(0, 11360, '\p{ 	IN_glagolitic}', "");
-    Expect(1, 11360, '\p{^ 	IN_glagolitic}', "");
-    Expect(1, 11360, '\P{ 	IN_glagolitic}', "");
-    Expect(0, 11360, '\P{^ 	IN_glagolitic}', "");
-    Error('\p{	:=In_glagolitic}');
-    Error('\P{	:=In_glagolitic}');
-    Expect(1, 11359, '\p{-_in_GLAGOLITIC}', "");
-    Expect(0, 11359, '\p{^-_in_GLAGOLITIC}', "");
-    Expect(0, 11359, '\P{-_in_GLAGOLITIC}', "");
-    Expect(1, 11359, '\P{^-_in_GLAGOLITIC}', "");
-    Expect(0, 11360, '\p{-_in_GLAGOLITIC}', "");
-    Expect(1, 11360, '\p{^-_in_GLAGOLITIC}', "");
-    Expect(1, 11360, '\P{-_in_GLAGOLITIC}', "");
-    Expect(0, 11360, '\P{^-_in_GLAGOLITIC}', "");
-    Error('\p{_In_Gothic:=}');
-    Error('\P{_In_Gothic:=}');
+    Expect(1, 11359, '\p{	In_Glagolitic}', "");
+    Expect(0, 11359, '\p{^	In_Glagolitic}', "");
+    Expect(0, 11359, '\P{	In_Glagolitic}', "");
+    Expect(1, 11359, '\P{^	In_Glagolitic}', "");
+    Expect(0, 11360, '\p{	In_Glagolitic}', "");
+    Expect(1, 11360, '\p{^	In_Glagolitic}', "");
+    Expect(1, 11360, '\P{	In_Glagolitic}', "");
+    Expect(0, 11360, '\P{^	In_Glagolitic}', "");
+    Error('\p{:=_in_Glagolitic}');
+    Error('\P{:=_in_Glagolitic}');
+    Expect(1, 11359, '\p{ In_Glagolitic}', "");
+    Expect(0, 11359, '\p{^ In_Glagolitic}', "");
+    Expect(0, 11359, '\P{ In_Glagolitic}', "");
+    Expect(1, 11359, '\P{^ In_Glagolitic}', "");
+    Expect(0, 11360, '\p{ In_Glagolitic}', "");
+    Expect(1, 11360, '\p{^ In_Glagolitic}', "");
+    Expect(1, 11360, '\P{ In_Glagolitic}', "");
+    Expect(0, 11360, '\P{^ In_Glagolitic}', "");
+    Error('\p{_/a/In_gothic}');
+    Error('\P{_/a/In_gothic}');
     Expect(1, 66383, '\p{ingothic}', "");
     Expect(0, 66383, '\p{^ingothic}', "");
     Expect(0, 66383, '\P{ingothic}', "");
@@ -103007,26 +104013,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66384, '\p{^ingothic}', "");
     Expect(1, 66384, '\P{ingothic}', "");
     Expect(0, 66384, '\P{^ingothic}', "");
-    Expect(1, 66383, '\p{_ In_GOTHIC}', "");
-    Expect(0, 66383, '\p{^_ In_GOTHIC}', "");
-    Expect(0, 66383, '\P{_ In_GOTHIC}', "");
-    Expect(1, 66383, '\P{^_ In_GOTHIC}', "");
-    Expect(0, 66384, '\p{_ In_GOTHIC}', "");
-    Expect(1, 66384, '\p{^_ In_GOTHIC}', "");
-    Expect(1, 66384, '\P{_ In_GOTHIC}', "");
-    Expect(0, 66384, '\P{^_ In_GOTHIC}', "");
-    Error('\p{-:=In_gothic}');
-    Error('\P{-:=In_gothic}');
-    Expect(1, 66383, '\p{_	IN_Gothic}', "");
-    Expect(0, 66383, '\p{^_	IN_Gothic}', "");
-    Expect(0, 66383, '\P{_	IN_Gothic}', "");
-    Expect(1, 66383, '\P{^_	IN_Gothic}', "");
-    Expect(0, 66384, '\p{_	IN_Gothic}', "");
-    Expect(1, 66384, '\p{^_	IN_Gothic}', "");
-    Expect(1, 66384, '\P{_	IN_Gothic}', "");
-    Expect(0, 66384, '\P{^_	IN_Gothic}', "");
-    Error('\p{ /a/In_Grantha}');
-    Error('\P{ /a/In_Grantha}');
+    Expect(1, 66383, '\p{	IN_Gothic}', "");
+    Expect(0, 66383, '\p{^	IN_Gothic}', "");
+    Expect(0, 66383, '\P{	IN_Gothic}', "");
+    Expect(1, 66383, '\P{^	IN_Gothic}', "");
+    Expect(0, 66384, '\p{	IN_Gothic}', "");
+    Expect(1, 66384, '\p{^	IN_Gothic}', "");
+    Expect(1, 66384, '\P{	IN_Gothic}', "");
+    Expect(0, 66384, '\P{^	IN_Gothic}', "");
+    Error('\p{	-in_Gothic/a/}');
+    Error('\P{	-in_Gothic/a/}');
+    Expect(1, 66383, '\p{ _IN_Gothic}', "");
+    Expect(0, 66383, '\p{^ _IN_Gothic}', "");
+    Expect(0, 66383, '\P{ _IN_Gothic}', "");
+    Expect(1, 66383, '\P{^ _IN_Gothic}', "");
+    Expect(0, 66384, '\p{ _IN_Gothic}', "");
+    Expect(1, 66384, '\p{^ _IN_Gothic}', "");
+    Expect(1, 66384, '\P{ _IN_Gothic}', "");
+    Expect(0, 66384, '\P{^ _IN_Gothic}', "");
+    Error('\p{/a/_	In_grantha}');
+    Error('\P{/a/_	In_grantha}');
     Expect(1, 70527, '\p{ingrantha}', "");
     Expect(0, 70527, '\p{^ingrantha}', "");
     Expect(0, 70527, '\P{ingrantha}', "");
@@ -103035,26 +104041,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70528, '\p{^ingrantha}', "");
     Expect(1, 70528, '\P{ingrantha}', "");
     Expect(0, 70528, '\P{^ingrantha}', "");
-    Expect(1, 70527, '\p{ 	In_Grantha}', "");
-    Expect(0, 70527, '\p{^ 	In_Grantha}', "");
-    Expect(0, 70527, '\P{ 	In_Grantha}', "");
-    Expect(1, 70527, '\P{^ 	In_Grantha}', "");
-    Expect(0, 70528, '\p{ 	In_Grantha}', "");
-    Expect(1, 70528, '\p{^ 	In_Grantha}', "");
-    Expect(1, 70528, '\P{ 	In_Grantha}', "");
-    Expect(0, 70528, '\P{^ 	In_Grantha}', "");
-    Error('\p{/a/in_Grantha}');
-    Error('\P{/a/in_Grantha}');
-    Expect(1, 70527, '\p{-_IN_GRANTHA}', "");
-    Expect(0, 70527, '\p{^-_IN_GRANTHA}', "");
-    Expect(0, 70527, '\P{-_IN_GRANTHA}', "");
-    Expect(1, 70527, '\P{^-_IN_GRANTHA}', "");
-    Expect(0, 70528, '\p{-_IN_GRANTHA}', "");
-    Expect(1, 70528, '\p{^-_IN_GRANTHA}', "");
-    Expect(1, 70528, '\P{-_IN_GRANTHA}', "");
-    Expect(0, 70528, '\P{^-_IN_GRANTHA}', "");
-    Error('\p{:=-_IN_Gujarati}');
-    Error('\P{:=-_IN_Gujarati}');
+    Expect(1, 70527, '\p{-_IN_grantha}', "");
+    Expect(0, 70527, '\p{^-_IN_grantha}', "");
+    Expect(0, 70527, '\P{-_IN_grantha}', "");
+    Expect(1, 70527, '\P{^-_IN_grantha}', "");
+    Expect(0, 70528, '\p{-_IN_grantha}', "");
+    Expect(1, 70528, '\p{^-_IN_grantha}', "");
+    Expect(1, 70528, '\P{-_IN_grantha}', "");
+    Expect(0, 70528, '\P{^-_IN_grantha}', "");
+    Error('\p{_	IN_Grantha:=}');
+    Error('\P{_	IN_Grantha:=}');
+    Expect(1, 70527, '\p{	-In_grantha}', "");
+    Expect(0, 70527, '\p{^	-In_grantha}', "");
+    Expect(0, 70527, '\P{	-In_grantha}', "");
+    Expect(1, 70527, '\P{^	-In_grantha}', "");
+    Expect(0, 70528, '\p{	-In_grantha}', "");
+    Expect(1, 70528, '\p{^	-In_grantha}', "");
+    Expect(1, 70528, '\P{	-In_grantha}', "");
+    Expect(0, 70528, '\P{^	-In_grantha}', "");
+    Error('\p{-	IN_GUJARATI:=}');
+    Error('\P{-	IN_GUJARATI:=}');
     Expect(1, 2815, '\p{ingujarati}', "");
     Expect(0, 2815, '\p{^ingujarati}', "");
     Expect(0, 2815, '\P{ingujarati}', "");
@@ -103063,26 +104069,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2816, '\p{^ingujarati}', "");
     Expect(1, 2816, '\P{ingujarati}', "");
     Expect(0, 2816, '\P{^ingujarati}', "");
-    Expect(1, 2815, '\p{-_In_Gujarati}', "");
-    Expect(0, 2815, '\p{^-_In_Gujarati}', "");
-    Expect(0, 2815, '\P{-_In_Gujarati}', "");
-    Expect(1, 2815, '\P{^-_In_Gujarati}', "");
-    Expect(0, 2816, '\p{-_In_Gujarati}', "");
-    Expect(1, 2816, '\p{^-_In_Gujarati}', "");
-    Expect(1, 2816, '\P{-_In_Gujarati}', "");
-    Expect(0, 2816, '\P{^-_In_Gujarati}', "");
-    Error('\p{-/a/IN_gujarati}');
-    Error('\P{-/a/IN_gujarati}');
-    Expect(1, 2815, '\p{-In_Gujarati}', "");
-    Expect(0, 2815, '\p{^-In_Gujarati}', "");
-    Expect(0, 2815, '\P{-In_Gujarati}', "");
-    Expect(1, 2815, '\P{^-In_Gujarati}', "");
-    Expect(0, 2816, '\p{-In_Gujarati}', "");
-    Expect(1, 2816, '\p{^-In_Gujarati}', "");
-    Expect(1, 2816, '\P{-In_Gujarati}', "");
-    Expect(0, 2816, '\P{^-In_Gujarati}', "");
-    Error('\p{  in_gunjala_Gondi:=}');
-    Error('\P{  in_gunjala_Gondi:=}');
+    Expect(1, 2815, '\p{	_In_Gujarati}', "");
+    Expect(0, 2815, '\p{^	_In_Gujarati}', "");
+    Expect(0, 2815, '\P{	_In_Gujarati}', "");
+    Expect(1, 2815, '\P{^	_In_Gujarati}', "");
+    Expect(0, 2816, '\p{	_In_Gujarati}', "");
+    Expect(1, 2816, '\p{^	_In_Gujarati}', "");
+    Expect(1, 2816, '\P{	_In_Gujarati}', "");
+    Expect(0, 2816, '\P{^	_In_Gujarati}', "");
+    Error('\p{_in_GUJARATI/a/}');
+    Error('\P{_in_GUJARATI/a/}');
+    Expect(1, 2815, '\p{In_Gujarati}', "");
+    Expect(0, 2815, '\p{^In_Gujarati}', "");
+    Expect(0, 2815, '\P{In_Gujarati}', "");
+    Expect(1, 2815, '\P{^In_Gujarati}', "");
+    Expect(0, 2816, '\p{In_Gujarati}', "");
+    Expect(1, 2816, '\p{^In_Gujarati}', "");
+    Expect(1, 2816, '\P{In_Gujarati}', "");
+    Expect(0, 2816, '\P{^In_Gujarati}', "");
+    Error('\p{	/a/In_GUNJALA_GONDI}');
+    Error('\P{	/a/In_GUNJALA_GONDI}');
     Expect(1, 73135, '\p{ingunjalagondi}', "");
     Expect(0, 73135, '\p{^ingunjalagondi}', "");
     Expect(0, 73135, '\P{ingunjalagondi}', "");
@@ -103091,26 +104097,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73136, '\p{^ingunjalagondi}', "");
     Expect(1, 73136, '\P{ingunjalagondi}', "");
     Expect(0, 73136, '\P{^ingunjalagondi}', "");
-    Expect(1, 73135, '\p{_	IN_Gunjala_Gondi}', "");
-    Expect(0, 73135, '\p{^_	IN_Gunjala_Gondi}', "");
-    Expect(0, 73135, '\P{_	IN_Gunjala_Gondi}', "");
-    Expect(1, 73135, '\P{^_	IN_Gunjala_Gondi}', "");
-    Expect(0, 73136, '\p{_	IN_Gunjala_Gondi}', "");
-    Expect(1, 73136, '\p{^_	IN_Gunjala_Gondi}', "");
-    Expect(1, 73136, '\P{_	IN_Gunjala_Gondi}', "");
-    Expect(0, 73136, '\P{^_	IN_Gunjala_Gondi}', "");
-    Error('\p{/a/__In_Gunjala_gondi}');
-    Error('\P{/a/__In_Gunjala_gondi}');
-    Expect(1, 73135, '\p{-In_GUNJALA_Gondi}', "");
-    Expect(0, 73135, '\p{^-In_GUNJALA_Gondi}', "");
-    Expect(0, 73135, '\P{-In_GUNJALA_Gondi}', "");
-    Expect(1, 73135, '\P{^-In_GUNJALA_Gondi}', "");
-    Expect(0, 73136, '\p{-In_GUNJALA_Gondi}', "");
-    Expect(1, 73136, '\p{^-In_GUNJALA_Gondi}', "");
-    Expect(1, 73136, '\P{-In_GUNJALA_Gondi}', "");
-    Expect(0, 73136, '\P{^-In_GUNJALA_Gondi}', "");
-    Error('\p{:=-In_GURMUKHI}');
-    Error('\P{:=-In_GURMUKHI}');
+    Expect(1, 73135, '\p{ _In_GUNJALA_gondi}', "");
+    Expect(0, 73135, '\p{^ _In_GUNJALA_gondi}', "");
+    Expect(0, 73135, '\P{ _In_GUNJALA_gondi}', "");
+    Expect(1, 73135, '\P{^ _In_GUNJALA_gondi}', "");
+    Expect(0, 73136, '\p{ _In_GUNJALA_gondi}', "");
+    Expect(1, 73136, '\p{^ _In_GUNJALA_gondi}', "");
+    Expect(1, 73136, '\P{ _In_GUNJALA_gondi}', "");
+    Expect(0, 73136, '\P{^ _In_GUNJALA_gondi}', "");
+    Error('\p{:=_-IN_Gunjala_GONDI}');
+    Error('\P{:=_-IN_Gunjala_GONDI}');
+    Expect(1, 73135, '\p{	 in_Gunjala_Gondi}', "");
+    Expect(0, 73135, '\p{^	 in_Gunjala_Gondi}', "");
+    Expect(0, 73135, '\P{	 in_Gunjala_Gondi}', "");
+    Expect(1, 73135, '\P{^	 in_Gunjala_Gondi}', "");
+    Expect(0, 73136, '\p{	 in_Gunjala_Gondi}', "");
+    Expect(1, 73136, '\p{^	 in_Gunjala_Gondi}', "");
+    Expect(1, 73136, '\P{	 in_Gunjala_Gondi}', "");
+    Expect(0, 73136, '\P{^	 in_Gunjala_Gondi}', "");
+    Error('\p{  in_GURMUKHI/a/}');
+    Error('\P{  in_GURMUKHI/a/}');
     Expect(1, 2687, '\p{ingurmukhi}', "");
     Expect(0, 2687, '\p{^ingurmukhi}', "");
     Expect(0, 2687, '\P{ingurmukhi}', "");
@@ -103119,26 +104125,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2688, '\p{^ingurmukhi}', "");
     Expect(1, 2688, '\P{ingurmukhi}', "");
     Expect(0, 2688, '\P{^ingurmukhi}', "");
-    Expect(1, 2687, '\p{ 	IN_GURMUKHI}', "");
-    Expect(0, 2687, '\p{^ 	IN_GURMUKHI}', "");
-    Expect(0, 2687, '\P{ 	IN_GURMUKHI}', "");
-    Expect(1, 2687, '\P{^ 	IN_GURMUKHI}', "");
-    Expect(0, 2688, '\p{ 	IN_GURMUKHI}', "");
-    Expect(1, 2688, '\p{^ 	IN_GURMUKHI}', "");
-    Expect(1, 2688, '\P{ 	IN_GURMUKHI}', "");
-    Expect(0, 2688, '\P{^ 	IN_GURMUKHI}', "");
-    Error('\p{:=		In_Gurmukhi}');
-    Error('\P{:=		In_Gurmukhi}');
-    Expect(1, 2687, '\p{ -In_GURMUKHI}', "");
-    Expect(0, 2687, '\p{^ -In_GURMUKHI}', "");
-    Expect(0, 2687, '\P{ -In_GURMUKHI}', "");
-    Expect(1, 2687, '\P{^ -In_GURMUKHI}', "");
-    Expect(0, 2688, '\p{ -In_GURMUKHI}', "");
-    Expect(1, 2688, '\p{^ -In_GURMUKHI}', "");
-    Expect(1, 2688, '\P{ -In_GURMUKHI}', "");
-    Expect(0, 2688, '\P{^ -In_GURMUKHI}', "");
-    Error('\p{		In_Hanifi_Rohingya:=}');
-    Error('\P{		In_Hanifi_Rohingya:=}');
+    Expect(1, 2687, '\p{-	in_Gurmukhi}', "");
+    Expect(0, 2687, '\p{^-	in_Gurmukhi}', "");
+    Expect(0, 2687, '\P{-	in_Gurmukhi}', "");
+    Expect(1, 2687, '\P{^-	in_Gurmukhi}', "");
+    Expect(0, 2688, '\p{-	in_Gurmukhi}', "");
+    Expect(1, 2688, '\p{^-	in_Gurmukhi}', "");
+    Expect(1, 2688, '\P{-	in_Gurmukhi}', "");
+    Expect(0, 2688, '\P{^-	in_Gurmukhi}', "");
+    Error('\p{:=	 IN_gurmukhi}');
+    Error('\P{:=	 IN_gurmukhi}');
+    Expect(1, 2687, '\p{In_Gurmukhi}', "");
+    Expect(0, 2687, '\p{^In_Gurmukhi}', "");
+    Expect(0, 2687, '\P{In_Gurmukhi}', "");
+    Expect(1, 2687, '\P{^In_Gurmukhi}', "");
+    Expect(0, 2688, '\p{In_Gurmukhi}', "");
+    Expect(1, 2688, '\p{^In_Gurmukhi}', "");
+    Expect(1, 2688, '\P{In_Gurmukhi}', "");
+    Expect(0, 2688, '\P{^In_Gurmukhi}', "");
+    Error('\p{/a/_ IN_Hanifi_ROHINGYA}');
+    Error('\P{/a/_ IN_Hanifi_ROHINGYA}');
     Expect(1, 68927, '\p{inhanifirohingya}', "");
     Expect(0, 68927, '\p{^inhanifirohingya}', "");
     Expect(0, 68927, '\P{inhanifirohingya}', "");
@@ -103147,26 +104153,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68928, '\p{^inhanifirohingya}', "");
     Expect(1, 68928, '\P{inhanifirohingya}', "");
     Expect(0, 68928, '\P{^inhanifirohingya}', "");
-    Expect(1, 68927, '\p{ -In_HANIFI_Rohingya}', "");
-    Expect(0, 68927, '\p{^ -In_HANIFI_Rohingya}', "");
-    Expect(0, 68927, '\P{ -In_HANIFI_Rohingya}', "");
-    Expect(1, 68927, '\P{^ -In_HANIFI_Rohingya}', "");
-    Expect(0, 68928, '\p{ -In_HANIFI_Rohingya}', "");
-    Expect(1, 68928, '\p{^ -In_HANIFI_Rohingya}', "");
-    Expect(1, 68928, '\P{ -In_HANIFI_Rohingya}', "");
-    Expect(0, 68928, '\P{^ -In_HANIFI_Rohingya}', "");
-    Error('\p{_	IN_HANIFI_Rohingya:=}');
-    Error('\P{_	IN_HANIFI_Rohingya:=}');
-    Expect(1, 68927, '\p{ IN_Hanifi_ROHINGYA}', "");
-    Expect(0, 68927, '\p{^ IN_Hanifi_ROHINGYA}', "");
-    Expect(0, 68927, '\P{ IN_Hanifi_ROHINGYA}', "");
-    Expect(1, 68927, '\P{^ IN_Hanifi_ROHINGYA}', "");
-    Expect(0, 68928, '\p{ IN_Hanifi_ROHINGYA}', "");
-    Expect(1, 68928, '\p{^ IN_Hanifi_ROHINGYA}', "");
-    Expect(1, 68928, '\P{ IN_Hanifi_ROHINGYA}', "");
-    Expect(0, 68928, '\P{^ IN_Hanifi_ROHINGYA}', "");
-    Error('\p{_/a/in_Hanunoo}');
-    Error('\P{_/a/in_Hanunoo}');
+    Expect(1, 68927, '\p{__in_hanifi_rohingya}', "");
+    Expect(0, 68927, '\p{^__in_hanifi_rohingya}', "");
+    Expect(0, 68927, '\P{__in_hanifi_rohingya}', "");
+    Expect(1, 68927, '\P{^__in_hanifi_rohingya}', "");
+    Expect(0, 68928, '\p{__in_hanifi_rohingya}', "");
+    Expect(1, 68928, '\p{^__in_hanifi_rohingya}', "");
+    Expect(1, 68928, '\P{__in_hanifi_rohingya}', "");
+    Expect(0, 68928, '\P{^__in_hanifi_rohingya}', "");
+    Error('\p{/a/- IN_Hanifi_ROHINGYA}');
+    Error('\P{/a/- IN_Hanifi_ROHINGYA}');
+    Expect(1, 68927, '\p{ 	IN_Hanifi_rohingya}', "");
+    Expect(0, 68927, '\p{^ 	IN_Hanifi_rohingya}', "");
+    Expect(0, 68927, '\P{ 	IN_Hanifi_rohingya}', "");
+    Expect(1, 68927, '\P{^ 	IN_Hanifi_rohingya}', "");
+    Expect(0, 68928, '\p{ 	IN_Hanifi_rohingya}', "");
+    Expect(1, 68928, '\p{^ 	IN_Hanifi_rohingya}', "");
+    Expect(1, 68928, '\P{ 	IN_Hanifi_rohingya}', "");
+    Expect(0, 68928, '\P{^ 	IN_Hanifi_rohingya}', "");
+    Error('\p{:=		in_hanunoo}');
+    Error('\P{:=		in_hanunoo}');
     Expect(1, 5951, '\p{inhanunoo}', "");
     Expect(0, 5951, '\p{^inhanunoo}', "");
     Expect(0, 5951, '\P{inhanunoo}', "");
@@ -103175,26 +104181,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5952, '\p{^inhanunoo}', "");
     Expect(1, 5952, '\P{inhanunoo}', "");
     Expect(0, 5952, '\P{^inhanunoo}', "");
-    Expect(1, 5951, '\p{	In_Hanunoo}', "");
-    Expect(0, 5951, '\p{^	In_Hanunoo}', "");
-    Expect(0, 5951, '\P{	In_Hanunoo}', "");
-    Expect(1, 5951, '\P{^	In_Hanunoo}', "");
-    Expect(0, 5952, '\p{	In_Hanunoo}', "");
-    Expect(1, 5952, '\p{^	In_Hanunoo}', "");
-    Expect(1, 5952, '\P{	In_Hanunoo}', "");
-    Expect(0, 5952, '\P{^	In_Hanunoo}', "");
-    Error('\p{	_IN_Hanunoo:=}');
-    Error('\P{	_IN_Hanunoo:=}');
-    Expect(1, 5951, '\p{_In_hanunoo}', "");
-    Expect(0, 5951, '\p{^_In_hanunoo}', "");
-    Expect(0, 5951, '\P{_In_hanunoo}', "");
-    Expect(1, 5951, '\P{^_In_hanunoo}', "");
-    Expect(0, 5952, '\p{_In_hanunoo}', "");
-    Expect(1, 5952, '\p{^_In_hanunoo}', "");
-    Expect(1, 5952, '\P{_In_hanunoo}', "");
-    Expect(0, 5952, '\P{^_In_hanunoo}', "");
-    Error('\p{_:=IN_Hatran}');
-    Error('\P{_:=IN_Hatran}');
+    Expect(1, 5951, '\p{_IN_hanunoo}', "");
+    Expect(0, 5951, '\p{^_IN_hanunoo}', "");
+    Expect(0, 5951, '\P{_IN_hanunoo}', "");
+    Expect(1, 5951, '\P{^_IN_hanunoo}', "");
+    Expect(0, 5952, '\p{_IN_hanunoo}', "");
+    Expect(1, 5952, '\p{^_IN_hanunoo}', "");
+    Expect(1, 5952, '\P{_IN_hanunoo}', "");
+    Expect(0, 5952, '\P{^_IN_hanunoo}', "");
+    Error('\p{/a/ in_HANUNOO}');
+    Error('\P{/a/ in_HANUNOO}');
+    Expect(1, 5951, '\p{ -In_Hanunoo}', "");
+    Expect(0, 5951, '\p{^ -In_Hanunoo}', "");
+    Expect(0, 5951, '\P{ -In_Hanunoo}', "");
+    Expect(1, 5951, '\P{^ -In_Hanunoo}', "");
+    Expect(0, 5952, '\p{ -In_Hanunoo}', "");
+    Expect(1, 5952, '\p{^ -In_Hanunoo}', "");
+    Expect(1, 5952, '\P{ -In_Hanunoo}', "");
+    Expect(0, 5952, '\P{^ -In_Hanunoo}', "");
+    Error('\p{:= In_Hatran}');
+    Error('\P{:= In_Hatran}');
     Expect(1, 67839, '\p{inhatran}', "");
     Expect(0, 67839, '\p{^inhatran}', "");
     Expect(0, 67839, '\P{inhatran}', "");
@@ -103203,26 +104209,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67840, '\p{^inhatran}', "");
     Expect(1, 67840, '\P{inhatran}', "");
     Expect(0, 67840, '\P{^inhatran}', "");
-    Expect(1, 67839, '\p{--In_Hatran}', "");
-    Expect(0, 67839, '\p{^--In_Hatran}', "");
-    Expect(0, 67839, '\P{--In_Hatran}', "");
-    Expect(1, 67839, '\P{^--In_Hatran}', "");
-    Expect(0, 67840, '\p{--In_Hatran}', "");
-    Expect(1, 67840, '\p{^--In_Hatran}', "");
-    Expect(1, 67840, '\P{--In_Hatran}', "");
-    Expect(0, 67840, '\P{^--In_Hatran}', "");
-    Error('\p{ -In_hatran/a/}');
-    Error('\P{ -In_hatran/a/}');
-    Expect(1, 67839, '\p{_In_Hatran}', "");
-    Expect(0, 67839, '\p{^_In_Hatran}', "");
-    Expect(0, 67839, '\P{_In_Hatran}', "");
-    Expect(1, 67839, '\P{^_In_Hatran}', "");
-    Expect(0, 67840, '\p{_In_Hatran}', "");
-    Expect(1, 67840, '\p{^_In_Hatran}', "");
-    Expect(1, 67840, '\P{_In_Hatran}', "");
-    Expect(0, 67840, '\P{^_In_Hatran}', "");
-    Error('\p{/a/  In_Hebrew}');
-    Error('\P{/a/  In_Hebrew}');
+    Expect(1, 67839, '\p{--In_hatran}', "");
+    Expect(0, 67839, '\p{^--In_hatran}', "");
+    Expect(0, 67839, '\P{--In_hatran}', "");
+    Expect(1, 67839, '\P{^--In_hatran}', "");
+    Expect(0, 67840, '\p{--In_hatran}', "");
+    Expect(1, 67840, '\p{^--In_hatran}', "");
+    Expect(1, 67840, '\P{--In_hatran}', "");
+    Expect(0, 67840, '\P{^--In_hatran}', "");
+    Error('\p{ 	in_Hatran:=}');
+    Error('\P{ 	in_Hatran:=}');
+    Expect(1, 67839, '\p{ -In_Hatran}', "");
+    Expect(0, 67839, '\p{^ -In_Hatran}', "");
+    Expect(0, 67839, '\P{ -In_Hatran}', "");
+    Expect(1, 67839, '\P{^ -In_Hatran}', "");
+    Expect(0, 67840, '\p{ -In_Hatran}', "");
+    Expect(1, 67840, '\p{^ -In_Hatran}', "");
+    Expect(1, 67840, '\P{ -In_Hatran}', "");
+    Expect(0, 67840, '\P{^ -In_Hatran}', "");
+    Error('\p{	/a/In_hebrew}');
+    Error('\P{	/a/In_hebrew}');
     Expect(1, 1535, '\p{inhebrew}', "");
     Expect(0, 1535, '\p{^inhebrew}', "");
     Expect(0, 1535, '\P{inhebrew}', "");
@@ -103231,26 +104237,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1536, '\p{^inhebrew}', "");
     Expect(1, 1536, '\P{inhebrew}', "");
     Expect(0, 1536, '\P{^inhebrew}', "");
-    Expect(1, 1535, '\p{  In_Hebrew}', "");
-    Expect(0, 1535, '\p{^  In_Hebrew}', "");
-    Expect(0, 1535, '\P{  In_Hebrew}', "");
-    Expect(1, 1535, '\P{^  In_Hebrew}', "");
-    Expect(0, 1536, '\p{  In_Hebrew}', "");
-    Expect(1, 1536, '\p{^  In_Hebrew}', "");
-    Expect(1, 1536, '\P{  In_Hebrew}', "");
-    Expect(0, 1536, '\P{^  In_Hebrew}', "");
-    Error('\p{	:=in_hebrew}');
-    Error('\P{	:=in_hebrew}');
-    Expect(1, 1535, '\p{ _In_HEBREW}', "");
-    Expect(0, 1535, '\p{^ _In_HEBREW}', "");
-    Expect(0, 1535, '\P{ _In_HEBREW}', "");
-    Expect(1, 1535, '\P{^ _In_HEBREW}', "");
-    Expect(0, 1536, '\p{ _In_HEBREW}', "");
-    Expect(1, 1536, '\p{^ _In_HEBREW}', "");
-    Expect(1, 1536, '\P{ _In_HEBREW}', "");
-    Expect(0, 1536, '\P{^ _In_HEBREW}', "");
-    Error('\p{ 	In_HIRAGANA:=}');
-    Error('\P{ 	In_HIRAGANA:=}');
+    Expect(1, 1535, '\p{  IN_Hebrew}', "");
+    Expect(0, 1535, '\p{^  IN_Hebrew}', "");
+    Expect(0, 1535, '\P{  IN_Hebrew}', "");
+    Expect(1, 1535, '\P{^  IN_Hebrew}', "");
+    Expect(0, 1536, '\p{  IN_Hebrew}', "");
+    Expect(1, 1536, '\p{^  IN_Hebrew}', "");
+    Expect(1, 1536, '\P{  IN_Hebrew}', "");
+    Expect(0, 1536, '\P{^  IN_Hebrew}', "");
+    Error('\p{	_in_Hebrew/a/}');
+    Error('\P{	_in_Hebrew/a/}');
+    Expect(1, 1535, '\p{	in_HEBREW}', "");
+    Expect(0, 1535, '\p{^	in_HEBREW}', "");
+    Expect(0, 1535, '\P{	in_HEBREW}', "");
+    Expect(1, 1535, '\P{^	in_HEBREW}', "");
+    Expect(0, 1536, '\p{	in_HEBREW}', "");
+    Expect(1, 1536, '\p{^	in_HEBREW}', "");
+    Expect(1, 1536, '\P{	in_HEBREW}', "");
+    Expect(0, 1536, '\P{^	in_HEBREW}', "");
+    Error('\p{-IN_HIRAGANA/a/}');
+    Error('\P{-IN_HIRAGANA/a/}');
     Expect(1, 12447, '\p{inhiragana}', "");
     Expect(0, 12447, '\p{^inhiragana}', "");
     Expect(0, 12447, '\P{inhiragana}', "");
@@ -103259,26 +104265,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12448, '\p{^inhiragana}', "");
     Expect(1, 12448, '\P{inhiragana}', "");
     Expect(0, 12448, '\P{^inhiragana}', "");
-    Expect(1, 12447, '\p{	IN_HIRAGANA}', "");
-    Expect(0, 12447, '\p{^	IN_HIRAGANA}', "");
-    Expect(0, 12447, '\P{	IN_HIRAGANA}', "");
-    Expect(1, 12447, '\P{^	IN_HIRAGANA}', "");
-    Expect(0, 12448, '\p{	IN_HIRAGANA}', "");
-    Expect(1, 12448, '\p{^	IN_HIRAGANA}', "");
-    Expect(1, 12448, '\P{	IN_HIRAGANA}', "");
-    Expect(0, 12448, '\P{^	IN_HIRAGANA}', "");
-    Error('\p{:=		In_HIRAGANA}');
-    Error('\P{:=		In_HIRAGANA}');
-    Expect(1, 12447, '\p{- IN_Hiragana}', "");
-    Expect(0, 12447, '\p{^- IN_Hiragana}', "");
-    Expect(0, 12447, '\P{- IN_Hiragana}', "");
-    Expect(1, 12447, '\P{^- IN_Hiragana}', "");
-    Expect(0, 12448, '\p{- IN_Hiragana}', "");
-    Expect(1, 12448, '\p{^- IN_Hiragana}', "");
-    Expect(1, 12448, '\P{- IN_Hiragana}', "");
-    Expect(0, 12448, '\P{^- IN_Hiragana}', "");
-    Error('\p{_:=IN_Imperial_Aramaic}');
-    Error('\P{_:=IN_Imperial_Aramaic}');
+    Expect(1, 12447, '\p{-In_HIRAGANA}', "");
+    Expect(0, 12447, '\p{^-In_HIRAGANA}', "");
+    Expect(0, 12447, '\P{-In_HIRAGANA}', "");
+    Expect(1, 12447, '\P{^-In_HIRAGANA}', "");
+    Expect(0, 12448, '\p{-In_HIRAGANA}', "");
+    Expect(1, 12448, '\p{^-In_HIRAGANA}', "");
+    Expect(1, 12448, '\P{-In_HIRAGANA}', "");
+    Expect(0, 12448, '\P{^-In_HIRAGANA}', "");
+    Error('\p{/a/_ in_Hiragana}');
+    Error('\P{/a/_ in_Hiragana}');
+    Expect(1, 12447, '\p{_ IN_Hiragana}', "");
+    Expect(0, 12447, '\p{^_ IN_Hiragana}', "");
+    Expect(0, 12447, '\P{_ IN_Hiragana}', "");
+    Expect(1, 12447, '\P{^_ IN_Hiragana}', "");
+    Expect(0, 12448, '\p{_ IN_Hiragana}', "");
+    Expect(1, 12448, '\p{^_ IN_Hiragana}', "");
+    Expect(1, 12448, '\P{_ IN_Hiragana}', "");
+    Expect(0, 12448, '\P{^_ IN_Hiragana}', "");
+    Error('\p{:=		in_IMPERIAL_Aramaic}');
+    Error('\P{:=		in_IMPERIAL_Aramaic}');
     Expect(1, 67679, '\p{inimperialaramaic}', "");
     Expect(0, 67679, '\p{^inimperialaramaic}', "");
     Expect(0, 67679, '\P{inimperialaramaic}', "");
@@ -103287,26 +104293,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67680, '\p{^inimperialaramaic}', "");
     Expect(1, 67680, '\P{inimperialaramaic}', "");
     Expect(0, 67680, '\P{^inimperialaramaic}', "");
-    Expect(1, 67679, '\p{_	In_Imperial_aramaic}', "");
-    Expect(0, 67679, '\p{^_	In_Imperial_aramaic}', "");
-    Expect(0, 67679, '\P{_	In_Imperial_aramaic}', "");
-    Expect(1, 67679, '\P{^_	In_Imperial_aramaic}', "");
-    Expect(0, 67680, '\p{_	In_Imperial_aramaic}', "");
-    Expect(1, 67680, '\p{^_	In_Imperial_aramaic}', "");
-    Expect(1, 67680, '\P{_	In_Imperial_aramaic}', "");
-    Expect(0, 67680, '\P{^_	In_Imperial_aramaic}', "");
-    Error('\p{/a/-In_Imperial_ARAMAIC}');
-    Error('\P{/a/-In_Imperial_ARAMAIC}');
-    Expect(1, 67679, '\p{_ IN_Imperial_Aramaic}', "");
-    Expect(0, 67679, '\p{^_ IN_Imperial_Aramaic}', "");
-    Expect(0, 67679, '\P{_ IN_Imperial_Aramaic}', "");
-    Expect(1, 67679, '\P{^_ IN_Imperial_Aramaic}', "");
-    Expect(0, 67680, '\p{_ IN_Imperial_Aramaic}', "");
-    Expect(1, 67680, '\p{^_ IN_Imperial_Aramaic}', "");
-    Expect(1, 67680, '\P{_ IN_Imperial_Aramaic}', "");
-    Expect(0, 67680, '\P{^_ IN_Imperial_Aramaic}', "");
-    Error('\p{:=--IN_Inscriptional_Pahlavi}');
-    Error('\P{:=--IN_Inscriptional_Pahlavi}');
+    Expect(1, 67679, '\p{_In_imperial_Aramaic}', "");
+    Expect(0, 67679, '\p{^_In_imperial_Aramaic}', "");
+    Expect(0, 67679, '\P{_In_imperial_Aramaic}', "");
+    Expect(1, 67679, '\P{^_In_imperial_Aramaic}', "");
+    Expect(0, 67680, '\p{_In_imperial_Aramaic}', "");
+    Expect(1, 67680, '\p{^_In_imperial_Aramaic}', "");
+    Expect(1, 67680, '\P{_In_imperial_Aramaic}', "");
+    Expect(0, 67680, '\P{^_In_imperial_Aramaic}', "");
+    Error('\p{	_In_imperial_ARAMAIC:=}');
+    Error('\P{	_In_imperial_ARAMAIC:=}');
+    Expect(1, 67679, '\p{	in_Imperial_aramaic}', "");
+    Expect(0, 67679, '\p{^	in_Imperial_aramaic}', "");
+    Expect(0, 67679, '\P{	in_Imperial_aramaic}', "");
+    Expect(1, 67679, '\P{^	in_Imperial_aramaic}', "");
+    Expect(0, 67680, '\p{	in_Imperial_aramaic}', "");
+    Expect(1, 67680, '\p{^	in_Imperial_aramaic}', "");
+    Expect(1, 67680, '\P{	in_Imperial_aramaic}', "");
+    Expect(0, 67680, '\P{^	in_Imperial_aramaic}', "");
+    Error('\p{/a/	-in_Inscriptional_Pahlavi}');
+    Error('\P{/a/	-in_Inscriptional_Pahlavi}');
     Expect(1, 68479, '\p{ininscriptionalpahlavi}', "");
     Expect(0, 68479, '\p{^ininscriptionalpahlavi}', "");
     Expect(0, 68479, '\P{ininscriptionalpahlavi}', "");
@@ -103315,26 +104321,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68480, '\p{^ininscriptionalpahlavi}', "");
     Expect(1, 68480, '\P{ininscriptionalpahlavi}', "");
     Expect(0, 68480, '\P{^ininscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{_In_Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\p{^_In_Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\P{_In_Inscriptional_pahlavi}', "");
-    Expect(1, 68479, '\P{^_In_Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\p{_In_Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\p{^_In_Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\P{_In_Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\P{^_In_Inscriptional_pahlavi}', "");
-    Error('\p{	in_Inscriptional_pahlavi:=}');
-    Error('\P{	in_Inscriptional_pahlavi:=}');
-    Expect(1, 68479, '\p{-IN_Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\p{^-IN_Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\P{-IN_Inscriptional_pahlavi}', "");
-    Expect(1, 68479, '\P{^-IN_Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\p{-IN_Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\p{^-IN_Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\P{-IN_Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\P{^-IN_Inscriptional_pahlavi}', "");
-    Error('\p{ /a/In_Inscriptional_Parthian}');
-    Error('\P{ /a/In_Inscriptional_Parthian}');
+    Expect(1, 68479, '\p{ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(0, 68479, '\p{^ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(0, 68479, '\P{ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(1, 68479, '\P{^ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(0, 68480, '\p{ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(1, 68480, '\p{^ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(1, 68480, '\P{ _In_INSCRIPTIONAL_pahlavi}', "");
+    Expect(0, 68480, '\P{^ _In_INSCRIPTIONAL_pahlavi}', "");
+    Error('\p{/a/__In_inscriptional_Pahlavi}');
+    Error('\P{/a/__In_inscriptional_Pahlavi}');
+    Expect(1, 68479, '\p{	In_Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\p{^	In_Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\P{	In_Inscriptional_Pahlavi}', "");
+    Expect(1, 68479, '\P{^	In_Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\p{	In_Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\p{^	In_Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\P{	In_Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\P{^	In_Inscriptional_Pahlavi}', "");
+    Error('\p{/a/ IN_inscriptional_Parthian}');
+    Error('\P{/a/ IN_inscriptional_Parthian}');
     Expect(1, 68447, '\p{ininscriptionalparthian}', "");
     Expect(0, 68447, '\p{^ininscriptionalparthian}', "");
     Expect(0, 68447, '\P{ininscriptionalparthian}', "");
@@ -103343,26 +104349,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68448, '\p{^ininscriptionalparthian}', "");
     Expect(1, 68448, '\P{ininscriptionalparthian}', "");
     Expect(0, 68448, '\P{^ininscriptionalparthian}', "");
-    Expect(1, 68447, '\p{--in_Inscriptional_Parthian}', "");
-    Expect(0, 68447, '\p{^--in_Inscriptional_Parthian}', "");
-    Expect(0, 68447, '\P{--in_Inscriptional_Parthian}', "");
-    Expect(1, 68447, '\P{^--in_Inscriptional_Parthian}', "");
-    Expect(0, 68448, '\p{--in_Inscriptional_Parthian}', "");
-    Expect(1, 68448, '\p{^--in_Inscriptional_Parthian}', "");
-    Expect(1, 68448, '\P{--in_Inscriptional_Parthian}', "");
-    Expect(0, 68448, '\P{^--in_Inscriptional_Parthian}', "");
-    Error('\p{	_In_inscriptional_Parthian/a/}');
-    Error('\P{	_In_inscriptional_Parthian/a/}');
-    Expect(1, 68447, '\p{	In_Inscriptional_Parthian}', "");
-    Expect(0, 68447, '\p{^	In_Inscriptional_Parthian}', "");
-    Expect(0, 68447, '\P{	In_Inscriptional_Parthian}', "");
-    Expect(1, 68447, '\P{^	In_Inscriptional_Parthian}', "");
-    Expect(0, 68448, '\p{	In_Inscriptional_Parthian}', "");
-    Expect(1, 68448, '\p{^	In_Inscriptional_Parthian}', "");
-    Expect(1, 68448, '\P{	In_Inscriptional_Parthian}', "");
-    Expect(0, 68448, '\P{^	In_Inscriptional_Parthian}', "");
-    Error('\p{-IN_javanese:=}');
-    Error('\P{-IN_javanese:=}');
+    Expect(1, 68447, '\p{ _In_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\p{^ _In_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\P{ _In_Inscriptional_PARTHIAN}', "");
+    Expect(1, 68447, '\P{^ _In_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\p{ _In_Inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\p{^ _In_Inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\P{ _In_Inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\P{^ _In_Inscriptional_PARTHIAN}', "");
+    Error('\p{ /a/In_INSCRIPTIONAL_Parthian}');
+    Error('\P{ /a/In_INSCRIPTIONAL_Parthian}');
+    Expect(1, 68447, '\p{_in_inscriptional_parthian}', "");
+    Expect(0, 68447, '\p{^_in_inscriptional_parthian}', "");
+    Expect(0, 68447, '\P{_in_inscriptional_parthian}', "");
+    Expect(1, 68447, '\P{^_in_inscriptional_parthian}', "");
+    Expect(0, 68448, '\p{_in_inscriptional_parthian}', "");
+    Expect(1, 68448, '\p{^_in_inscriptional_parthian}', "");
+    Expect(1, 68448, '\P{_in_inscriptional_parthian}', "");
+    Expect(0, 68448, '\P{^_in_inscriptional_parthian}', "");
+    Error('\p{_/a/IN_JAVANESE}');
+    Error('\P{_/a/IN_JAVANESE}');
     Expect(1, 43487, '\p{injavanese}', "");
     Expect(0, 43487, '\p{^injavanese}', "");
     Expect(0, 43487, '\P{injavanese}', "");
@@ -103371,26 +104377,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43488, '\p{^injavanese}', "");
     Expect(1, 43488, '\P{injavanese}', "");
     Expect(0, 43488, '\P{^injavanese}', "");
-    Expect(1, 43487, '\p{_-IN_Javanese}', "");
-    Expect(0, 43487, '\p{^_-IN_Javanese}', "");
-    Expect(0, 43487, '\P{_-IN_Javanese}', "");
-    Expect(1, 43487, '\P{^_-IN_Javanese}', "");
-    Expect(0, 43488, '\p{_-IN_Javanese}', "");
-    Expect(1, 43488, '\p{^_-IN_Javanese}', "");
-    Expect(1, 43488, '\P{_-IN_Javanese}', "");
-    Expect(0, 43488, '\P{^_-IN_Javanese}', "");
-    Error('\p{_-in_Javanese:=}');
-    Error('\P{_-in_Javanese:=}');
-    Expect(1, 43487, '\p{ In_JAVANESE}', "");
-    Expect(0, 43487, '\p{^ In_JAVANESE}', "");
-    Expect(0, 43487, '\P{ In_JAVANESE}', "");
-    Expect(1, 43487, '\P{^ In_JAVANESE}', "");
-    Expect(0, 43488, '\p{ In_JAVANESE}', "");
-    Expect(1, 43488, '\p{^ In_JAVANESE}', "");
-    Expect(1, 43488, '\P{ In_JAVANESE}', "");
-    Expect(0, 43488, '\P{^ In_JAVANESE}', "");
-    Error('\p{- In_Kaithi:=}');
-    Error('\P{- In_Kaithi:=}');
+    Expect(1, 43487, '\p{		In_javanese}', "");
+    Expect(0, 43487, '\p{^		In_javanese}', "");
+    Expect(0, 43487, '\P{		In_javanese}', "");
+    Expect(1, 43487, '\P{^		In_javanese}', "");
+    Expect(0, 43488, '\p{		In_javanese}', "");
+    Expect(1, 43488, '\p{^		In_javanese}', "");
+    Expect(1, 43488, '\P{		In_javanese}', "");
+    Expect(0, 43488, '\P{^		In_javanese}', "");
+    Error('\p{	:=In_Javanese}');
+    Error('\P{	:=In_Javanese}');
+    Expect(1, 43487, '\p{_in_javanese}', "");
+    Expect(0, 43487, '\p{^_in_javanese}', "");
+    Expect(0, 43487, '\P{_in_javanese}', "");
+    Expect(1, 43487, '\P{^_in_javanese}', "");
+    Expect(0, 43488, '\p{_in_javanese}', "");
+    Expect(1, 43488, '\p{^_in_javanese}', "");
+    Expect(1, 43488, '\P{_in_javanese}', "");
+    Expect(0, 43488, '\P{^_in_javanese}', "");
+    Error('\p{		IN_KAITHI:=}');
+    Error('\P{		IN_KAITHI:=}');
     Expect(1, 69839, '\p{inkaithi}', "");
     Expect(0, 69839, '\p{^inkaithi}', "");
     Expect(0, 69839, '\P{inkaithi}', "");
@@ -103399,26 +104405,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69840, '\p{^inkaithi}', "");
     Expect(1, 69840, '\P{inkaithi}', "");
     Expect(0, 69840, '\P{^inkaithi}', "");
-    Expect(1, 69839, '\p{in_KAITHI}', "");
-    Expect(0, 69839, '\p{^in_KAITHI}', "");
-    Expect(0, 69839, '\P{in_KAITHI}', "");
-    Expect(1, 69839, '\P{^in_KAITHI}', "");
-    Expect(0, 69840, '\p{in_KAITHI}', "");
-    Expect(1, 69840, '\p{^in_KAITHI}', "");
-    Expect(1, 69840, '\P{in_KAITHI}', "");
-    Expect(0, 69840, '\P{^in_KAITHI}', "");
-    Error('\p{/a/ in_Kaithi}');
-    Error('\P{/a/ in_Kaithi}');
-    Expect(1, 69839, '\p{	IN_Kaithi}', "");
-    Expect(0, 69839, '\p{^	IN_Kaithi}', "");
-    Expect(0, 69839, '\P{	IN_Kaithi}', "");
-    Expect(1, 69839, '\P{^	IN_Kaithi}', "");
-    Expect(0, 69840, '\p{	IN_Kaithi}', "");
-    Expect(1, 69840, '\p{^	IN_Kaithi}', "");
-    Expect(1, 69840, '\P{	IN_Kaithi}', "");
-    Expect(0, 69840, '\P{^	IN_Kaithi}', "");
-    Error('\p{_:=In_Kannada}');
-    Error('\P{_:=In_Kannada}');
+    Expect(1, 69839, '\p{	 in_kaithi}', "");
+    Expect(0, 69839, '\p{^	 in_kaithi}', "");
+    Expect(0, 69839, '\P{	 in_kaithi}', "");
+    Expect(1, 69839, '\P{^	 in_kaithi}', "");
+    Expect(0, 69840, '\p{	 in_kaithi}', "");
+    Expect(1, 69840, '\p{^	 in_kaithi}', "");
+    Expect(1, 69840, '\P{	 in_kaithi}', "");
+    Expect(0, 69840, '\P{^	 in_kaithi}', "");
+    Error('\p{ In_Kaithi:=}');
+    Error('\P{ In_Kaithi:=}');
+    Expect(1, 69839, '\p{ 	IN_Kaithi}', "");
+    Expect(0, 69839, '\p{^ 	IN_Kaithi}', "");
+    Expect(0, 69839, '\P{ 	IN_Kaithi}', "");
+    Expect(1, 69839, '\P{^ 	IN_Kaithi}', "");
+    Expect(0, 69840, '\p{ 	IN_Kaithi}', "");
+    Expect(1, 69840, '\p{^ 	IN_Kaithi}', "");
+    Expect(1, 69840, '\P{ 	IN_Kaithi}', "");
+    Expect(0, 69840, '\P{^ 	IN_Kaithi}', "");
+    Error('\p{_ In_Kannada:=}');
+    Error('\P{_ In_Kannada:=}');
     Expect(1, 3327, '\p{inkannada}', "");
     Expect(0, 3327, '\p{^inkannada}', "");
     Expect(0, 3327, '\P{inkannada}', "");
@@ -103427,26 +104433,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3328, '\p{^inkannada}', "");
     Expect(1, 3328, '\P{inkannada}', "");
     Expect(0, 3328, '\P{^inkannada}', "");
-    Expect(1, 3327, '\p{-In_Kannada}', "");
-    Expect(0, 3327, '\p{^-In_Kannada}', "");
-    Expect(0, 3327, '\P{-In_Kannada}', "");
-    Expect(1, 3327, '\P{^-In_Kannada}', "");
-    Expect(0, 3328, '\p{-In_Kannada}', "");
-    Expect(1, 3328, '\p{^-In_Kannada}', "");
-    Expect(1, 3328, '\P{-In_Kannada}', "");
-    Expect(0, 3328, '\P{^-In_Kannada}', "");
-    Error('\p{	In_KANNADA:=}');
-    Error('\P{	In_KANNADA:=}');
-    Expect(1, 3327, '\p{ -in_Kannada}', "");
-    Expect(0, 3327, '\p{^ -in_Kannada}', "");
-    Expect(0, 3327, '\P{ -in_Kannada}', "");
-    Expect(1, 3327, '\P{^ -in_Kannada}', "");
-    Expect(0, 3328, '\p{ -in_Kannada}', "");
-    Expect(1, 3328, '\p{^ -in_Kannada}', "");
-    Expect(1, 3328, '\P{ -in_Kannada}', "");
-    Expect(0, 3328, '\P{^ -in_Kannada}', "");
-    Error('\p{_	In_Katakana/a/}');
-    Error('\P{_	In_Katakana/a/}');
+    Expect(1, 3327, '\p{ 	In_Kannada}', "");
+    Expect(0, 3327, '\p{^ 	In_Kannada}', "");
+    Expect(0, 3327, '\P{ 	In_Kannada}', "");
+    Expect(1, 3327, '\P{^ 	In_Kannada}', "");
+    Expect(0, 3328, '\p{ 	In_Kannada}', "");
+    Expect(1, 3328, '\p{^ 	In_Kannada}', "");
+    Expect(1, 3328, '\P{ 	In_Kannada}', "");
+    Expect(0, 3328, '\P{^ 	In_Kannada}', "");
+    Error('\p{_in_Kannada:=}');
+    Error('\P{_in_Kannada:=}');
+    Expect(1, 3327, '\p{ _In_Kannada}', "");
+    Expect(0, 3327, '\p{^ _In_Kannada}', "");
+    Expect(0, 3327, '\P{ _In_Kannada}', "");
+    Expect(1, 3327, '\P{^ _In_Kannada}', "");
+    Expect(0, 3328, '\p{ _In_Kannada}', "");
+    Expect(1, 3328, '\p{^ _In_Kannada}', "");
+    Expect(1, 3328, '\P{ _In_Kannada}', "");
+    Expect(0, 3328, '\P{^ _In_Kannada}', "");
+    Error('\p{/a/  In_Katakana}');
+    Error('\P{/a/  In_Katakana}');
     Expect(1, 12543, '\p{inkatakana}', "");
     Expect(0, 12543, '\p{^inkatakana}', "");
     Expect(0, 12543, '\P{inkatakana}', "");
@@ -103455,26 +104461,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12544, '\p{^inkatakana}', "");
     Expect(1, 12544, '\P{inkatakana}', "");
     Expect(0, 12544, '\P{^inkatakana}', "");
-    Expect(1, 12543, '\p{-In_katakana}', "");
-    Expect(0, 12543, '\p{^-In_katakana}', "");
-    Expect(0, 12543, '\P{-In_katakana}', "");
-    Expect(1, 12543, '\P{^-In_katakana}', "");
-    Expect(0, 12544, '\p{-In_katakana}', "");
-    Expect(1, 12544, '\p{^-In_katakana}', "");
-    Expect(1, 12544, '\P{-In_katakana}', "");
-    Expect(0, 12544, '\P{^-In_katakana}', "");
-    Error('\p{ 	IN_Katakana:=}');
-    Error('\P{ 	IN_Katakana:=}');
-    Expect(1, 12543, '\p{__In_Katakana}', "");
-    Expect(0, 12543, '\p{^__In_Katakana}', "");
-    Expect(0, 12543, '\P{__In_Katakana}', "");
-    Expect(1, 12543, '\P{^__In_Katakana}', "");
-    Expect(0, 12544, '\p{__In_Katakana}', "");
-    Expect(1, 12544, '\p{^__In_Katakana}', "");
-    Expect(1, 12544, '\P{__In_Katakana}', "");
-    Expect(0, 12544, '\P{^__In_Katakana}', "");
-    Error('\p{_/a/in_Kayah_Li}');
-    Error('\P{_/a/in_Kayah_Li}');
+    Expect(1, 12543, '\p{	_in_Katakana}', "");
+    Expect(0, 12543, '\p{^	_in_Katakana}', "");
+    Expect(0, 12543, '\P{	_in_Katakana}', "");
+    Expect(1, 12543, '\P{^	_in_Katakana}', "");
+    Expect(0, 12544, '\p{	_in_Katakana}', "");
+    Expect(1, 12544, '\p{^	_in_Katakana}', "");
+    Expect(1, 12544, '\P{	_in_Katakana}', "");
+    Expect(0, 12544, '\P{^	_in_Katakana}', "");
+    Error('\p{_	IN_Katakana:=}');
+    Error('\P{_	IN_Katakana:=}');
+    Expect(1, 12543, '\p{in_katakana}', "");
+    Expect(0, 12543, '\p{^in_katakana}', "");
+    Expect(0, 12543, '\P{in_katakana}', "");
+    Expect(1, 12543, '\P{^in_katakana}', "");
+    Expect(0, 12544, '\p{in_katakana}', "");
+    Expect(1, 12544, '\p{^in_katakana}', "");
+    Expect(1, 12544, '\P{in_katakana}', "");
+    Expect(0, 12544, '\P{^in_katakana}', "");
+    Error('\p{:=_ In_KAWI}');
+    Error('\P{:=_ In_KAWI}');
+    Expect(1, 73567, '\p{inkawi}', "");
+    Expect(0, 73567, '\p{^inkawi}', "");
+    Expect(0, 73567, '\P{inkawi}', "");
+    Expect(1, 73567, '\P{^inkawi}', "");
+    Expect(0, 73568, '\p{inkawi}', "");
+    Expect(1, 73568, '\p{^inkawi}', "");
+    Expect(1, 73568, '\P{inkawi}', "");
+    Expect(0, 73568, '\P{^inkawi}', "");
+    Expect(1, 73567, '\p{-IN_KAWI}', "");
+    Expect(0, 73567, '\p{^-IN_KAWI}', "");
+    Expect(0, 73567, '\P{-IN_KAWI}', "");
+    Expect(1, 73567, '\P{^-IN_KAWI}', "");
+    Expect(0, 73568, '\p{-IN_KAWI}', "");
+    Expect(1, 73568, '\p{^-IN_KAWI}', "");
+    Expect(1, 73568, '\P{-IN_KAWI}', "");
+    Expect(0, 73568, '\P{^-IN_KAWI}', "");
+    Error('\p{:=-_In_KAWI}');
+    Error('\P{:=-_In_KAWI}');
+    Expect(1, 73567, '\p{- in_KAWI}', "");
+    Expect(0, 73567, '\p{^- in_KAWI}', "");
+    Expect(0, 73567, '\P{- in_KAWI}', "");
+    Expect(1, 73567, '\P{^- in_KAWI}', "");
+    Expect(0, 73568, '\p{- in_KAWI}', "");
+    Expect(1, 73568, '\p{^- in_KAWI}', "");
+    Expect(1, 73568, '\P{- in_KAWI}', "");
+    Expect(0, 73568, '\P{^- in_KAWI}', "");
+    Error('\p{--In_Kayah_li:=}');
+    Error('\P{--In_Kayah_li:=}');
     Expect(1, 43311, '\p{inkayahli}', "");
     Expect(0, 43311, '\p{^inkayahli}', "");
     Expect(0, 43311, '\P{inkayahli}', "");
@@ -103483,26 +104517,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43312, '\p{^inkayahli}', "");
     Expect(1, 43312, '\P{inkayahli}', "");
     Expect(0, 43312, '\P{^inkayahli}', "");
-    Expect(1, 43311, '\p{_IN_Kayah_Li}', "");
-    Expect(0, 43311, '\p{^_IN_Kayah_Li}', "");
-    Expect(0, 43311, '\P{_IN_Kayah_Li}', "");
-    Expect(1, 43311, '\P{^_IN_Kayah_Li}', "");
-    Expect(0, 43312, '\p{_IN_Kayah_Li}', "");
-    Expect(1, 43312, '\p{^_IN_Kayah_Li}', "");
-    Expect(1, 43312, '\P{_IN_Kayah_Li}', "");
-    Expect(0, 43312, '\P{^_IN_Kayah_Li}', "");
-    Error('\p{:=-In_KAYAH_Li}');
-    Error('\P{:=-In_KAYAH_Li}');
-    Expect(1, 43311, '\p{-	In_Kayah_Li}', "");
-    Expect(0, 43311, '\p{^-	In_Kayah_Li}', "");
-    Expect(0, 43311, '\P{-	In_Kayah_Li}', "");
-    Expect(1, 43311, '\P{^-	In_Kayah_Li}', "");
-    Expect(0, 43312, '\p{-	In_Kayah_Li}', "");
-    Expect(1, 43312, '\p{^-	In_Kayah_Li}', "");
-    Expect(1, 43312, '\P{-	In_Kayah_Li}', "");
-    Expect(0, 43312, '\P{^-	In_Kayah_Li}', "");
-    Error('\p{-in_Kharoshthi:=}');
-    Error('\P{-in_Kharoshthi:=}');
+    Expect(1, 43311, '\p{-In_KAYAH_Li}', "");
+    Expect(0, 43311, '\p{^-In_KAYAH_Li}', "");
+    Expect(0, 43311, '\P{-In_KAYAH_Li}', "");
+    Expect(1, 43311, '\P{^-In_KAYAH_Li}', "");
+    Expect(0, 43312, '\p{-In_KAYAH_Li}', "");
+    Expect(1, 43312, '\p{^-In_KAYAH_Li}', "");
+    Expect(1, 43312, '\P{-In_KAYAH_Li}', "");
+    Expect(0, 43312, '\P{^-In_KAYAH_Li}', "");
+    Error('\p{ :=in_KAYAH_Li}');
+    Error('\P{ :=in_KAYAH_Li}');
+    Expect(1, 43311, '\p{-_In_kayah_Li}', "");
+    Expect(0, 43311, '\p{^-_In_kayah_Li}', "");
+    Expect(0, 43311, '\P{-_In_kayah_Li}', "");
+    Expect(1, 43311, '\P{^-_In_kayah_Li}', "");
+    Expect(0, 43312, '\p{-_In_kayah_Li}', "");
+    Expect(1, 43312, '\p{^-_In_kayah_Li}', "");
+    Expect(1, 43312, '\P{-_In_kayah_Li}', "");
+    Expect(0, 43312, '\P{^-_In_kayah_Li}', "");
+    Error('\p{	in_Kharoshthi/a/}');
+    Error('\P{	in_Kharoshthi/a/}');
     Expect(1, 68191, '\p{inkharoshthi}', "");
     Expect(0, 68191, '\p{^inkharoshthi}', "");
     Expect(0, 68191, '\P{inkharoshthi}', "");
@@ -103511,26 +104545,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68192, '\p{^inkharoshthi}', "");
     Expect(1, 68192, '\P{inkharoshthi}', "");
     Expect(0, 68192, '\P{^inkharoshthi}', "");
-    Expect(1, 68191, '\p{  In_Kharoshthi}', "");
-    Expect(0, 68191, '\p{^  In_Kharoshthi}', "");
-    Expect(0, 68191, '\P{  In_Kharoshthi}', "");
-    Expect(1, 68191, '\P{^  In_Kharoshthi}', "");
-    Expect(0, 68192, '\p{  In_Kharoshthi}', "");
-    Expect(1, 68192, '\p{^  In_Kharoshthi}', "");
-    Expect(1, 68192, '\P{  In_Kharoshthi}', "");
-    Expect(0, 68192, '\P{^  In_Kharoshthi}', "");
-    Error('\p{-/a/IN_Kharoshthi}');
-    Error('\P{-/a/IN_Kharoshthi}');
-    Expect(1, 68191, '\p{_ in_KHAROSHTHI}', "");
-    Expect(0, 68191, '\p{^_ in_KHAROSHTHI}', "");
-    Expect(0, 68191, '\P{_ in_KHAROSHTHI}', "");
-    Expect(1, 68191, '\P{^_ in_KHAROSHTHI}', "");
-    Expect(0, 68192, '\p{_ in_KHAROSHTHI}', "");
-    Expect(1, 68192, '\p{^_ in_KHAROSHTHI}', "");
-    Expect(1, 68192, '\P{_ in_KHAROSHTHI}', "");
-    Expect(0, 68192, '\P{^_ in_KHAROSHTHI}', "");
-    Error('\p{ :=In_Khitan_Small_Script}');
-    Error('\P{ :=In_Khitan_Small_Script}');
+    Expect(1, 68191, '\p{_ in_Kharoshthi}', "");
+    Expect(0, 68191, '\p{^_ in_Kharoshthi}', "");
+    Expect(0, 68191, '\P{_ in_Kharoshthi}', "");
+    Expect(1, 68191, '\P{^_ in_Kharoshthi}', "");
+    Expect(0, 68192, '\p{_ in_Kharoshthi}', "");
+    Expect(1, 68192, '\p{^_ in_Kharoshthi}', "");
+    Expect(1, 68192, '\P{_ in_Kharoshthi}', "");
+    Expect(0, 68192, '\P{^_ in_Kharoshthi}', "");
+    Error('\p{:=_	In_KHAROSHTHI}');
+    Error('\P{:=_	In_KHAROSHTHI}');
+    Expect(1, 68191, '\p{ 	IN_Kharoshthi}', "");
+    Expect(0, 68191, '\p{^ 	IN_Kharoshthi}', "");
+    Expect(0, 68191, '\P{ 	IN_Kharoshthi}', "");
+    Expect(1, 68191, '\P{^ 	IN_Kharoshthi}', "");
+    Expect(0, 68192, '\p{ 	IN_Kharoshthi}', "");
+    Expect(1, 68192, '\p{^ 	IN_Kharoshthi}', "");
+    Expect(1, 68192, '\P{ 	IN_Kharoshthi}', "");
+    Expect(0, 68192, '\P{^ 	IN_Kharoshthi}', "");
+    Error('\p{:=	-In_Khitan_small_Script}');
+    Error('\P{:=	-In_Khitan_small_Script}');
     Expect(1, 101631, '\p{inkhitansmallscript}', "");
     Expect(0, 101631, '\p{^inkhitansmallscript}', "");
     Expect(0, 101631, '\P{inkhitansmallscript}', "");
@@ -103539,26 +104573,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 101632, '\p{^inkhitansmallscript}', "");
     Expect(1, 101632, '\P{inkhitansmallscript}', "");
     Expect(0, 101632, '\P{^inkhitansmallscript}', "");
-    Expect(1, 101631, '\p{- In_Khitan_small_SCRIPT}', "");
-    Expect(0, 101631, '\p{^- In_Khitan_small_SCRIPT}', "");
-    Expect(0, 101631, '\P{- In_Khitan_small_SCRIPT}', "");
-    Expect(1, 101631, '\P{^- In_Khitan_small_SCRIPT}', "");
-    Expect(0, 101632, '\p{- In_Khitan_small_SCRIPT}', "");
-    Expect(1, 101632, '\p{^- In_Khitan_small_SCRIPT}', "");
-    Expect(1, 101632, '\P{- In_Khitan_small_SCRIPT}', "");
-    Expect(0, 101632, '\P{^- In_Khitan_small_SCRIPT}', "");
-    Error('\p{	:=In_khitan_small_Script}');
-    Error('\P{	:=In_khitan_small_Script}');
-    Expect(1, 101631, '\p{in_Khitan_Small_Script}', "");
-    Expect(0, 101631, '\p{^in_Khitan_Small_Script}', "");
-    Expect(0, 101631, '\P{in_Khitan_Small_Script}', "");
-    Expect(1, 101631, '\P{^in_Khitan_Small_Script}', "");
-    Expect(0, 101632, '\p{in_Khitan_Small_Script}', "");
-    Expect(1, 101632, '\p{^in_Khitan_Small_Script}', "");
-    Expect(1, 101632, '\P{in_Khitan_Small_Script}', "");
-    Expect(0, 101632, '\P{^in_Khitan_Small_Script}', "");
-    Error('\p{/a/ In_Khmer}');
-    Error('\P{/a/ In_Khmer}');
+    Expect(1, 101631, '\p{_In_khitan_small_script}', "");
+    Expect(0, 101631, '\p{^_In_khitan_small_script}', "");
+    Expect(0, 101631, '\P{_In_khitan_small_script}', "");
+    Expect(1, 101631, '\P{^_In_khitan_small_script}', "");
+    Expect(0, 101632, '\p{_In_khitan_small_script}', "");
+    Expect(1, 101632, '\p{^_In_khitan_small_script}', "");
+    Expect(1, 101632, '\P{_In_khitan_small_script}', "");
+    Expect(0, 101632, '\P{^_In_khitan_small_script}', "");
+    Error('\p{_/a/IN_Khitan_Small_Script}');
+    Error('\P{_/a/IN_Khitan_Small_Script}');
+    Expect(1, 101631, '\p{_IN_Khitan_Small_Script}', "");
+    Expect(0, 101631, '\p{^_IN_Khitan_Small_Script}', "");
+    Expect(0, 101631, '\P{_IN_Khitan_Small_Script}', "");
+    Expect(1, 101631, '\P{^_IN_Khitan_Small_Script}', "");
+    Expect(0, 101632, '\p{_IN_Khitan_Small_Script}', "");
+    Expect(1, 101632, '\p{^_IN_Khitan_Small_Script}', "");
+    Expect(1, 101632, '\P{_IN_Khitan_Small_Script}', "");
+    Expect(0, 101632, '\P{^_IN_Khitan_Small_Script}', "");
+    Error('\p{ /a/in_KHMER}');
+    Error('\P{ /a/in_KHMER}');
     Expect(1, 6143, '\p{inkhmer}', "");
     Expect(0, 6143, '\p{^inkhmer}', "");
     Expect(0, 6143, '\P{inkhmer}', "");
@@ -103567,26 +104601,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6144, '\p{^inkhmer}', "");
     Expect(1, 6144, '\P{inkhmer}', "");
     Expect(0, 6144, '\P{^inkhmer}', "");
-    Expect(1, 6143, '\p{ _In_Khmer}', "");
-    Expect(0, 6143, '\p{^ _In_Khmer}', "");
-    Expect(0, 6143, '\P{ _In_Khmer}', "");
-    Expect(1, 6143, '\P{^ _In_Khmer}', "");
-    Expect(0, 6144, '\p{ _In_Khmer}', "");
-    Expect(1, 6144, '\p{^ _In_Khmer}', "");
-    Expect(1, 6144, '\P{ _In_Khmer}', "");
-    Expect(0, 6144, '\P{^ _In_Khmer}', "");
-    Error('\p{:=in_khmer}');
-    Error('\P{:=in_khmer}');
-    Expect(1, 6143, '\p{-	IN_Khmer}', "");
-    Expect(0, 6143, '\p{^-	IN_Khmer}', "");
-    Expect(0, 6143, '\P{-	IN_Khmer}', "");
-    Expect(1, 6143, '\P{^-	IN_Khmer}', "");
-    Expect(0, 6144, '\p{-	IN_Khmer}', "");
-    Expect(1, 6144, '\p{^-	IN_Khmer}', "");
-    Expect(1, 6144, '\P{-	IN_Khmer}', "");
-    Expect(0, 6144, '\P{^-	IN_Khmer}', "");
-    Error('\p{_:=In_khojki}');
-    Error('\P{_:=In_khojki}');
+    Expect(1, 6143, '\p{		In_KHMER}', "");
+    Expect(0, 6143, '\p{^		In_KHMER}', "");
+    Expect(0, 6143, '\P{		In_KHMER}', "");
+    Expect(1, 6143, '\P{^		In_KHMER}', "");
+    Expect(0, 6144, '\p{		In_KHMER}', "");
+    Expect(1, 6144, '\p{^		In_KHMER}', "");
+    Expect(1, 6144, '\P{		In_KHMER}', "");
+    Expect(0, 6144, '\P{^		In_KHMER}', "");
+    Error('\p{ _In_Khmer/a/}');
+    Error('\P{ _In_Khmer/a/}');
+    Expect(1, 6143, '\p{	-In_Khmer}', "");
+    Expect(0, 6143, '\p{^	-In_Khmer}', "");
+    Expect(0, 6143, '\P{	-In_Khmer}', "");
+    Expect(1, 6143, '\P{^	-In_Khmer}', "");
+    Expect(0, 6144, '\p{	-In_Khmer}', "");
+    Expect(1, 6144, '\p{^	-In_Khmer}', "");
+    Expect(1, 6144, '\P{	-In_Khmer}', "");
+    Expect(0, 6144, '\P{^	-In_Khmer}', "");
+    Error('\p{_	In_KHOJKI:=}');
+    Error('\P{_	In_KHOJKI:=}');
     Expect(1, 70223, '\p{inkhojki}', "");
     Expect(0, 70223, '\p{^inkhojki}', "");
     Expect(0, 70223, '\P{inkhojki}', "");
@@ -103595,26 +104629,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70224, '\p{^inkhojki}', "");
     Expect(1, 70224, '\P{inkhojki}', "");
     Expect(0, 70224, '\P{^inkhojki}', "");
-    Expect(1, 70223, '\p{ -In_khojki}', "");
-    Expect(0, 70223, '\p{^ -In_khojki}', "");
-    Expect(0, 70223, '\P{ -In_khojki}', "");
-    Expect(1, 70223, '\P{^ -In_khojki}', "");
-    Expect(0, 70224, '\p{ -In_khojki}', "");
-    Expect(1, 70224, '\p{^ -In_khojki}', "");
-    Expect(1, 70224, '\P{ -In_khojki}', "");
-    Expect(0, 70224, '\P{^ -In_khojki}', "");
-    Error('\p{:=	 In_Khojki}');
-    Error('\P{:=	 In_Khojki}');
-    Expect(1, 70223, '\p{	-in_Khojki}', "");
-    Expect(0, 70223, '\p{^	-in_Khojki}', "");
-    Expect(0, 70223, '\P{	-in_Khojki}', "");
-    Expect(1, 70223, '\P{^	-in_Khojki}', "");
-    Expect(0, 70224, '\p{	-in_Khojki}', "");
-    Expect(1, 70224, '\p{^	-in_Khojki}', "");
-    Expect(1, 70224, '\P{	-in_Khojki}', "");
-    Expect(0, 70224, '\P{^	-in_Khojki}', "");
-    Error('\p{_-IN_khudawadi/a/}');
-    Error('\P{_-IN_khudawadi/a/}');
+    Expect(1, 70223, '\p{_	In_KHOJKI}', "");
+    Expect(0, 70223, '\p{^_	In_KHOJKI}', "");
+    Expect(0, 70223, '\P{_	In_KHOJKI}', "");
+    Expect(1, 70223, '\P{^_	In_KHOJKI}', "");
+    Expect(0, 70224, '\p{_	In_KHOJKI}', "");
+    Expect(1, 70224, '\p{^_	In_KHOJKI}', "");
+    Expect(1, 70224, '\P{_	In_KHOJKI}', "");
+    Expect(0, 70224, '\P{^_	In_KHOJKI}', "");
+    Error('\p{:=In_Khojki}');
+    Error('\P{:=In_Khojki}');
+    Expect(1, 70223, '\p{- IN_Khojki}', "");
+    Expect(0, 70223, '\p{^- IN_Khojki}', "");
+    Expect(0, 70223, '\P{- IN_Khojki}', "");
+    Expect(1, 70223, '\P{^- IN_Khojki}', "");
+    Expect(0, 70224, '\p{- IN_Khojki}', "");
+    Expect(1, 70224, '\p{^- IN_Khojki}', "");
+    Expect(1, 70224, '\P{- IN_Khojki}', "");
+    Expect(0, 70224, '\P{^- IN_Khojki}', "");
+    Error('\p{/a/_In_KHUDAWADI}');
+    Error('\P{/a/_In_KHUDAWADI}');
     Expect(1, 70399, '\p{inkhudawadi}', "");
     Expect(0, 70399, '\p{^inkhudawadi}', "");
     Expect(0, 70399, '\P{inkhudawadi}', "");
@@ -103623,26 +104657,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70400, '\p{^inkhudawadi}', "");
     Expect(1, 70400, '\P{inkhudawadi}', "");
     Expect(0, 70400, '\P{^inkhudawadi}', "");
-    Expect(1, 70399, '\p{	IN_Khudawadi}', "");
-    Expect(0, 70399, '\p{^	IN_Khudawadi}', "");
-    Expect(0, 70399, '\P{	IN_Khudawadi}', "");
-    Expect(1, 70399, '\P{^	IN_Khudawadi}', "");
-    Expect(0, 70400, '\p{	IN_Khudawadi}', "");
-    Expect(1, 70400, '\p{^	IN_Khudawadi}', "");
-    Expect(1, 70400, '\P{	IN_Khudawadi}', "");
-    Expect(0, 70400, '\P{^	IN_Khudawadi}', "");
-    Error('\p{/a/ -In_Khudawadi}');
-    Error('\P{/a/ -In_Khudawadi}');
-    Expect(1, 70399, '\p{- In_Khudawadi}', "");
-    Expect(0, 70399, '\p{^- In_Khudawadi}', "");
-    Expect(0, 70399, '\P{- In_Khudawadi}', "");
-    Expect(1, 70399, '\P{^- In_Khudawadi}', "");
-    Expect(0, 70400, '\p{- In_Khudawadi}', "");
-    Expect(1, 70400, '\p{^- In_Khudawadi}', "");
-    Expect(1, 70400, '\P{- In_Khudawadi}', "");
-    Expect(0, 70400, '\P{^- In_Khudawadi}', "");
-    Error('\p{/a/-	IN_lao}');
-    Error('\P{/a/-	IN_lao}');
+    Expect(1, 70399, '\p{	_In_Khudawadi}', "");
+    Expect(0, 70399, '\p{^	_In_Khudawadi}', "");
+    Expect(0, 70399, '\P{	_In_Khudawadi}', "");
+    Expect(1, 70399, '\P{^	_In_Khudawadi}', "");
+    Expect(0, 70400, '\p{	_In_Khudawadi}', "");
+    Expect(1, 70400, '\p{^	_In_Khudawadi}', "");
+    Expect(1, 70400, '\P{	_In_Khudawadi}', "");
+    Expect(0, 70400, '\P{^	_In_Khudawadi}', "");
+    Error('\p{_-in_Khudawadi:=}');
+    Error('\P{_-in_Khudawadi:=}');
+    Expect(1, 70399, '\p{__in_Khudawadi}', "");
+    Expect(0, 70399, '\p{^__in_Khudawadi}', "");
+    Expect(0, 70399, '\P{__in_Khudawadi}', "");
+    Expect(1, 70399, '\P{^__in_Khudawadi}', "");
+    Expect(0, 70400, '\p{__in_Khudawadi}', "");
+    Expect(1, 70400, '\p{^__in_Khudawadi}', "");
+    Expect(1, 70400, '\P{__in_Khudawadi}', "");
+    Expect(0, 70400, '\P{^__in_Khudawadi}', "");
+    Error('\p{/a/ _In_lao}');
+    Error('\P{/a/ _In_lao}');
     Expect(1, 3839, '\p{inlao}', "");
     Expect(0, 3839, '\p{^inlao}', "");
     Expect(0, 3839, '\P{inlao}', "");
@@ -103651,26 +104685,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3840, '\p{^inlao}', "");
     Expect(1, 3840, '\P{inlao}', "");
     Expect(0, 3840, '\P{^inlao}', "");
-    Expect(1, 3839, '\p{in_lao}', "");
-    Expect(0, 3839, '\p{^in_lao}', "");
-    Expect(0, 3839, '\P{in_lao}', "");
-    Expect(1, 3839, '\P{^in_lao}', "");
-    Expect(0, 3840, '\p{in_lao}', "");
-    Expect(1, 3840, '\p{^in_lao}', "");
-    Expect(1, 3840, '\P{in_lao}', "");
-    Expect(0, 3840, '\P{^in_lao}', "");
-    Error('\p{ 	In_Lao:=}');
-    Error('\P{ 	In_Lao:=}');
-    Expect(1, 3839, '\p{- IN_LAO}', "");
-    Expect(0, 3839, '\p{^- IN_LAO}', "");
-    Expect(0, 3839, '\P{- IN_LAO}', "");
-    Expect(1, 3839, '\P{^- IN_LAO}', "");
-    Expect(0, 3840, '\p{- IN_LAO}', "");
-    Expect(1, 3840, '\p{^- IN_LAO}', "");
-    Expect(1, 3840, '\P{- IN_LAO}', "");
-    Expect(0, 3840, '\P{^- IN_LAO}', "");
-    Error('\p{__In_Lepcha/a/}');
-    Error('\P{__In_Lepcha/a/}');
+    Expect(1, 3839, '\p{ in_lao}', "");
+    Expect(0, 3839, '\p{^ in_lao}', "");
+    Expect(0, 3839, '\P{ in_lao}', "");
+    Expect(1, 3839, '\P{^ in_lao}', "");
+    Expect(0, 3840, '\p{ in_lao}', "");
+    Expect(1, 3840, '\p{^ in_lao}', "");
+    Expect(1, 3840, '\P{ in_lao}', "");
+    Expect(0, 3840, '\P{^ in_lao}', "");
+    Error('\p{/a/	in_Lao}');
+    Error('\P{/a/	in_Lao}');
+    Expect(1, 3839, '\p{- in_Lao}', "");
+    Expect(0, 3839, '\p{^- in_Lao}', "");
+    Expect(0, 3839, '\P{- in_Lao}', "");
+    Expect(1, 3839, '\P{^- in_Lao}', "");
+    Expect(0, 3840, '\p{- in_Lao}', "");
+    Expect(1, 3840, '\p{^- in_Lao}', "");
+    Expect(1, 3840, '\P{- in_Lao}', "");
+    Expect(0, 3840, '\P{^- in_Lao}', "");
+    Error('\p{		in_Lepcha/a/}');
+    Error('\P{		in_Lepcha/a/}');
     Expect(1, 7247, '\p{inlepcha}', "");
     Expect(0, 7247, '\p{^inlepcha}', "");
     Expect(0, 7247, '\P{inlepcha}', "");
@@ -103679,26 +104713,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7248, '\p{^inlepcha}', "");
     Expect(1, 7248, '\P{inlepcha}', "");
     Expect(0, 7248, '\P{^inlepcha}', "");
-    Expect(1, 7247, '\p{IN_LEPCHA}', "");
-    Expect(0, 7247, '\p{^IN_LEPCHA}', "");
-    Expect(0, 7247, '\P{IN_LEPCHA}', "");
-    Expect(1, 7247, '\P{^IN_LEPCHA}', "");
-    Expect(0, 7248, '\p{IN_LEPCHA}', "");
-    Expect(1, 7248, '\p{^IN_LEPCHA}', "");
-    Expect(1, 7248, '\P{IN_LEPCHA}', "");
-    Expect(0, 7248, '\P{^IN_LEPCHA}', "");
-    Error('\p{/a/  IN_Lepcha}');
-    Error('\P{/a/  IN_Lepcha}');
-    Expect(1, 7247, '\p{ in_lepcha}', "");
-    Expect(0, 7247, '\p{^ in_lepcha}', "");
-    Expect(0, 7247, '\P{ in_lepcha}', "");
-    Expect(1, 7247, '\P{^ in_lepcha}', "");
-    Expect(0, 7248, '\p{ in_lepcha}', "");
-    Expect(1, 7248, '\p{^ in_lepcha}', "");
-    Expect(1, 7248, '\P{ in_lepcha}', "");
-    Expect(0, 7248, '\P{^ in_lepcha}', "");
-    Error('\p{/a/ In_LIMBU}');
-    Error('\P{/a/ In_LIMBU}');
+    Expect(1, 7247, '\p{__in_Lepcha}', "");
+    Expect(0, 7247, '\p{^__in_Lepcha}', "");
+    Expect(0, 7247, '\P{__in_Lepcha}', "");
+    Expect(1, 7247, '\P{^__in_Lepcha}', "");
+    Expect(0, 7248, '\p{__in_Lepcha}', "");
+    Expect(1, 7248, '\p{^__in_Lepcha}', "");
+    Expect(1, 7248, '\P{__in_Lepcha}', "");
+    Expect(0, 7248, '\P{^__in_Lepcha}', "");
+    Error('\p{	:=In_LEPCHA}');
+    Error('\P{	:=In_LEPCHA}');
+    Expect(1, 7247, '\p{-IN_Lepcha}', "");
+    Expect(0, 7247, '\p{^-IN_Lepcha}', "");
+    Expect(0, 7247, '\P{-IN_Lepcha}', "");
+    Expect(1, 7247, '\P{^-IN_Lepcha}', "");
+    Expect(0, 7248, '\p{-IN_Lepcha}', "");
+    Expect(1, 7248, '\p{^-IN_Lepcha}', "");
+    Expect(1, 7248, '\P{-IN_Lepcha}', "");
+    Expect(0, 7248, '\P{^-IN_Lepcha}', "");
+    Error('\p{:= 	In_limbu}');
+    Error('\P{:= 	In_limbu}');
     Expect(1, 6479, '\p{inlimbu}', "");
     Expect(0, 6479, '\p{^inlimbu}', "");
     Expect(0, 6479, '\P{inlimbu}', "");
@@ -103707,26 +104741,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6480, '\p{^inlimbu}', "");
     Expect(1, 6480, '\P{inlimbu}', "");
     Expect(0, 6480, '\P{^inlimbu}', "");
-    Expect(1, 6479, '\p{	In_LIMBU}', "");
-    Expect(0, 6479, '\p{^	In_LIMBU}', "");
-    Expect(0, 6479, '\P{	In_LIMBU}', "");
-    Expect(1, 6479, '\P{^	In_LIMBU}', "");
-    Expect(0, 6480, '\p{	In_LIMBU}', "");
-    Expect(1, 6480, '\p{^	In_LIMBU}', "");
-    Expect(1, 6480, '\P{	In_LIMBU}', "");
-    Expect(0, 6480, '\P{^	In_LIMBU}', "");
-    Error('\p{- In_Limbu:=}');
-    Error('\P{- In_Limbu:=}');
-    Expect(1, 6479, '\p{ In_Limbu}', "");
-    Expect(0, 6479, '\p{^ In_Limbu}', "");
-    Expect(0, 6479, '\P{ In_Limbu}', "");
-    Expect(1, 6479, '\P{^ In_Limbu}', "");
-    Expect(0, 6480, '\p{ In_Limbu}', "");
-    Expect(1, 6480, '\p{^ In_Limbu}', "");
-    Expect(1, 6480, '\P{ In_Limbu}', "");
-    Expect(0, 6480, '\P{^ In_Limbu}', "");
-    Error('\p{-:=In_Linear_a}');
-    Error('\P{-:=In_Linear_a}');
+    Expect(1, 6479, '\p{-IN_Limbu}', "");
+    Expect(0, 6479, '\p{^-IN_Limbu}', "");
+    Expect(0, 6479, '\P{-IN_Limbu}', "");
+    Expect(1, 6479, '\P{^-IN_Limbu}', "");
+    Expect(0, 6480, '\p{-IN_Limbu}', "");
+    Expect(1, 6480, '\p{^-IN_Limbu}', "");
+    Expect(1, 6480, '\P{-IN_Limbu}', "");
+    Expect(0, 6480, '\P{^-IN_Limbu}', "");
+    Error('\p{-In_Limbu/a/}');
+    Error('\P{-In_Limbu/a/}');
+    Expect(1, 6479, '\p{_In_Limbu}', "");
+    Expect(0, 6479, '\p{^_In_Limbu}', "");
+    Expect(0, 6479, '\P{_In_Limbu}', "");
+    Expect(1, 6479, '\P{^_In_Limbu}', "");
+    Expect(0, 6480, '\p{_In_Limbu}', "");
+    Expect(1, 6480, '\p{^_In_Limbu}', "");
+    Expect(1, 6480, '\P{_In_Limbu}', "");
+    Expect(0, 6480, '\P{^_In_Limbu}', "");
+    Error('\p{-/a/in_Linear_a}');
+    Error('\P{-/a/in_Linear_a}');
     Expect(1, 67455, '\p{inlineara}', "");
     Expect(0, 67455, '\p{^inlineara}', "");
     Expect(0, 67455, '\P{inlineara}', "");
@@ -103735,26 +104769,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67456, '\p{^inlineara}', "");
     Expect(1, 67456, '\P{inlineara}', "");
     Expect(0, 67456, '\P{^inlineara}', "");
-    Expect(1, 67455, '\p{_IN_LINEAR_A}', "");
-    Expect(0, 67455, '\p{^_IN_LINEAR_A}', "");
-    Expect(0, 67455, '\P{_IN_LINEAR_A}', "");
-    Expect(1, 67455, '\P{^_IN_LINEAR_A}', "");
-    Expect(0, 67456, '\p{_IN_LINEAR_A}', "");
-    Expect(1, 67456, '\p{^_IN_LINEAR_A}', "");
-    Expect(1, 67456, '\P{_IN_LINEAR_A}', "");
-    Expect(0, 67456, '\P{^_IN_LINEAR_A}', "");
-    Error('\p{:=	_In_Linear_A}');
-    Error('\P{:=	_In_Linear_A}');
-    Expect(1, 67455, '\p{-	IN_linear_A}', "");
-    Expect(0, 67455, '\p{^-	IN_linear_A}', "");
-    Expect(0, 67455, '\P{-	IN_linear_A}', "");
-    Expect(1, 67455, '\P{^-	IN_linear_A}', "");
-    Expect(0, 67456, '\p{-	IN_linear_A}', "");
-    Expect(1, 67456, '\p{^-	IN_linear_A}', "");
-    Expect(1, 67456, '\P{-	IN_linear_A}', "");
-    Expect(0, 67456, '\P{^-	IN_linear_A}', "");
-    Error('\p{	In_lisu:=}');
-    Error('\P{	In_lisu:=}');
+    Expect(1, 67455, '\p{_In_linear_A}', "");
+    Expect(0, 67455, '\p{^_In_linear_A}', "");
+    Expect(0, 67455, '\P{_In_linear_A}', "");
+    Expect(1, 67455, '\P{^_In_linear_A}', "");
+    Expect(0, 67456, '\p{_In_linear_A}', "");
+    Expect(1, 67456, '\p{^_In_linear_A}', "");
+    Expect(1, 67456, '\P{_In_linear_A}', "");
+    Expect(0, 67456, '\P{^_In_linear_A}', "");
+    Error('\p{- In_Linear_a/a/}');
+    Error('\P{- In_Linear_a/a/}');
+    Expect(1, 67455, '\p{--In_linear_A}', "");
+    Expect(0, 67455, '\p{^--In_linear_A}', "");
+    Expect(0, 67455, '\P{--In_linear_A}', "");
+    Expect(1, 67455, '\P{^--In_linear_A}', "");
+    Expect(0, 67456, '\p{--In_linear_A}', "");
+    Expect(1, 67456, '\p{^--In_linear_A}', "");
+    Expect(1, 67456, '\P{--In_linear_A}', "");
+    Expect(0, 67456, '\P{^--In_linear_A}', "");
+    Error('\p{-:=In_lisu}');
+    Error('\P{-:=In_lisu}');
     Expect(1, 42239, '\p{inlisu}', "");
     Expect(0, 42239, '\p{^inlisu}', "");
     Expect(0, 42239, '\P{inlisu}', "");
@@ -103763,26 +104797,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42240, '\p{^inlisu}', "");
     Expect(1, 42240, '\P{inlisu}', "");
     Expect(0, 42240, '\P{^inlisu}', "");
-    Expect(1, 42239, '\p{		in_LISU}', "");
-    Expect(0, 42239, '\p{^		in_LISU}', "");
-    Expect(0, 42239, '\P{		in_LISU}', "");
-    Expect(1, 42239, '\P{^		in_LISU}', "");
-    Expect(0, 42240, '\p{		in_LISU}', "");
-    Expect(1, 42240, '\p{^		in_LISU}', "");
-    Expect(1, 42240, '\P{		in_LISU}', "");
-    Expect(0, 42240, '\P{^		in_LISU}', "");
-    Error('\p{	/a/In_LISU}');
-    Error('\P{	/a/In_LISU}');
-    Expect(1, 42239, '\p{ 	IN_LISU}', "");
-    Expect(0, 42239, '\p{^ 	IN_LISU}', "");
-    Expect(0, 42239, '\P{ 	IN_LISU}', "");
-    Expect(1, 42239, '\P{^ 	IN_LISU}', "");
-    Expect(0, 42240, '\p{ 	IN_LISU}', "");
-    Expect(1, 42240, '\p{^ 	IN_LISU}', "");
-    Expect(1, 42240, '\P{ 	IN_LISU}', "");
-    Expect(0, 42240, '\P{^ 	IN_LISU}', "");
-    Error('\p{ /a/In_LYCIAN}');
-    Error('\P{ /a/In_LYCIAN}');
+    Expect(1, 42239, '\p{-	In_lisu}', "");
+    Expect(0, 42239, '\p{^-	In_lisu}', "");
+    Expect(0, 42239, '\P{-	In_lisu}', "");
+    Expect(1, 42239, '\P{^-	In_lisu}', "");
+    Expect(0, 42240, '\p{-	In_lisu}', "");
+    Expect(1, 42240, '\p{^-	In_lisu}', "");
+    Expect(1, 42240, '\P{-	In_lisu}', "");
+    Expect(0, 42240, '\P{^-	In_lisu}', "");
+    Error('\p{-/a/in_LISU}');
+    Error('\P{-/a/in_LISU}');
+    Expect(1, 42239, '\p{- IN_Lisu}', "");
+    Expect(0, 42239, '\p{^- IN_Lisu}', "");
+    Expect(0, 42239, '\P{- IN_Lisu}', "");
+    Expect(1, 42239, '\P{^- IN_Lisu}', "");
+    Expect(0, 42240, '\p{- IN_Lisu}', "");
+    Expect(1, 42240, '\p{^- IN_Lisu}', "");
+    Expect(1, 42240, '\P{- IN_Lisu}', "");
+    Expect(0, 42240, '\P{^- IN_Lisu}', "");
+    Error('\p{/a/--In_lycian}');
+    Error('\P{/a/--In_lycian}');
     Expect(1, 66207, '\p{inlycian}', "");
     Expect(0, 66207, '\p{^inlycian}', "");
     Expect(0, 66207, '\P{inlycian}', "");
@@ -103791,26 +104825,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66208, '\p{^inlycian}', "");
     Expect(1, 66208, '\P{inlycian}', "");
     Expect(0, 66208, '\P{^inlycian}', "");
-    Expect(1, 66207, '\p{_in_lycian}', "");
-    Expect(0, 66207, '\p{^_in_lycian}', "");
-    Expect(0, 66207, '\P{_in_lycian}', "");
-    Expect(1, 66207, '\P{^_in_lycian}', "");
-    Expect(0, 66208, '\p{_in_lycian}', "");
-    Expect(1, 66208, '\p{^_in_lycian}', "");
-    Expect(1, 66208, '\P{_in_lycian}', "");
-    Expect(0, 66208, '\P{^_in_lycian}', "");
-    Error('\p{/a/ in_lycian}');
-    Error('\P{/a/ in_lycian}');
-    Expect(1, 66207, '\p{  In_Lycian}', "");
-    Expect(0, 66207, '\p{^  In_Lycian}', "");
-    Expect(0, 66207, '\P{  In_Lycian}', "");
-    Expect(1, 66207, '\P{^  In_Lycian}', "");
-    Expect(0, 66208, '\p{  In_Lycian}', "");
-    Expect(1, 66208, '\p{^  In_Lycian}', "");
-    Expect(1, 66208, '\P{  In_Lycian}', "");
-    Expect(0, 66208, '\P{^  In_Lycian}', "");
-    Error('\p{- in_Lydian:=}');
-    Error('\P{- in_Lydian:=}');
+    Expect(1, 66207, '\p{	In_lycian}', "");
+    Expect(0, 66207, '\p{^	In_lycian}', "");
+    Expect(0, 66207, '\P{	In_lycian}', "");
+    Expect(1, 66207, '\P{^	In_lycian}', "");
+    Expect(0, 66208, '\p{	In_lycian}', "");
+    Expect(1, 66208, '\p{^	In_lycian}', "");
+    Expect(1, 66208, '\P{	In_lycian}', "");
+    Expect(0, 66208, '\P{^	In_lycian}', "");
+    Error('\p{-/a/in_Lycian}');
+    Error('\P{-/a/in_Lycian}');
+    Expect(1, 66207, '\p{	_In_Lycian}', "");
+    Expect(0, 66207, '\p{^	_In_Lycian}', "");
+    Expect(0, 66207, '\P{	_In_Lycian}', "");
+    Expect(1, 66207, '\P{^	_In_Lycian}', "");
+    Expect(0, 66208, '\p{	_In_Lycian}', "");
+    Expect(1, 66208, '\p{^	_In_Lycian}', "");
+    Expect(1, 66208, '\P{	_In_Lycian}', "");
+    Expect(0, 66208, '\P{^	_In_Lycian}', "");
+    Error('\p{/a/In_lydian}');
+    Error('\P{/a/In_lydian}');
     Expect(1, 67903, '\p{inlydian}', "");
     Expect(0, 67903, '\p{^inlydian}', "");
     Expect(0, 67903, '\P{inlydian}', "");
@@ -103819,26 +104853,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67904, '\p{^inlydian}', "");
     Expect(1, 67904, '\P{inlydian}', "");
     Expect(0, 67904, '\P{^inlydian}', "");
-    Expect(1, 67903, '\p{_In_Lydian}', "");
-    Expect(0, 67903, '\p{^_In_Lydian}', "");
-    Expect(0, 67903, '\P{_In_Lydian}', "");
-    Expect(1, 67903, '\P{^_In_Lydian}', "");
-    Expect(0, 67904, '\p{_In_Lydian}', "");
-    Expect(1, 67904, '\p{^_In_Lydian}', "");
-    Expect(1, 67904, '\P{_In_Lydian}', "");
-    Expect(0, 67904, '\P{^_In_Lydian}', "");
-    Error('\p{_in_lydian:=}');
-    Error('\P{_in_lydian:=}');
-    Expect(1, 67903, '\p{-_In_lydian}', "");
-    Expect(0, 67903, '\p{^-_In_lydian}', "");
-    Expect(0, 67903, '\P{-_In_lydian}', "");
-    Expect(1, 67903, '\P{^-_In_lydian}', "");
-    Expect(0, 67904, '\p{-_In_lydian}', "");
-    Expect(1, 67904, '\p{^-_In_lydian}', "");
-    Expect(1, 67904, '\P{-_In_lydian}', "");
-    Expect(0, 67904, '\P{^-_In_lydian}', "");
-    Error('\p{:=	_In_Mahajani}');
-    Error('\P{:=	_In_Mahajani}');
+    Expect(1, 67903, '\p{_IN_lydian}', "");
+    Expect(0, 67903, '\p{^_IN_lydian}', "");
+    Expect(0, 67903, '\P{_IN_lydian}', "");
+    Expect(1, 67903, '\P{^_IN_lydian}', "");
+    Expect(0, 67904, '\p{_IN_lydian}', "");
+    Expect(1, 67904, '\p{^_IN_lydian}', "");
+    Expect(1, 67904, '\P{_IN_lydian}', "");
+    Expect(0, 67904, '\P{^_IN_lydian}', "");
+    Error('\p{/a/_	in_LYDIAN}');
+    Error('\P{/a/_	in_LYDIAN}');
+    Expect(1, 67903, '\p{_ In_Lydian}', "");
+    Expect(0, 67903, '\p{^_ In_Lydian}', "");
+    Expect(0, 67903, '\P{_ In_Lydian}', "");
+    Expect(1, 67903, '\P{^_ In_Lydian}', "");
+    Expect(0, 67904, '\p{_ In_Lydian}', "");
+    Expect(1, 67904, '\p{^_ In_Lydian}', "");
+    Expect(1, 67904, '\P{_ In_Lydian}', "");
+    Expect(0, 67904, '\P{^_ In_Lydian}', "");
+    Error('\p{/a/	_In_Mahajani}');
+    Error('\P{/a/	_In_Mahajani}');
     Expect(1, 70015, '\p{inmahajani}', "");
     Expect(0, 70015, '\p{^inmahajani}', "");
     Expect(0, 70015, '\P{inmahajani}', "");
@@ -103847,26 +104881,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70016, '\p{^inmahajani}', "");
     Expect(1, 70016, '\P{inmahajani}', "");
     Expect(0, 70016, '\P{^inmahajani}', "");
-    Expect(1, 70015, '\p{-	in_Mahajani}', "");
-    Expect(0, 70015, '\p{^-	in_Mahajani}', "");
-    Expect(0, 70015, '\P{-	in_Mahajani}', "");
-    Expect(1, 70015, '\P{^-	in_Mahajani}', "");
-    Expect(0, 70016, '\p{-	in_Mahajani}', "");
-    Expect(1, 70016, '\p{^-	in_Mahajani}', "");
-    Expect(1, 70016, '\P{-	in_Mahajani}', "");
-    Expect(0, 70016, '\P{^-	in_Mahajani}', "");
-    Error('\p{:=  In_MAHAJANI}');
-    Error('\P{:=  In_MAHAJANI}');
-    Expect(1, 70015, '\p{ 	IN_MAHAJANI}', "");
-    Expect(0, 70015, '\p{^ 	IN_MAHAJANI}', "");
-    Expect(0, 70015, '\P{ 	IN_MAHAJANI}', "");
-    Expect(1, 70015, '\P{^ 	IN_MAHAJANI}', "");
-    Expect(0, 70016, '\p{ 	IN_MAHAJANI}', "");
-    Expect(1, 70016, '\p{^ 	IN_MAHAJANI}', "");
-    Expect(1, 70016, '\P{ 	IN_MAHAJANI}', "");
-    Expect(0, 70016, '\P{^ 	IN_MAHAJANI}', "");
-    Error('\p{:=-In_MAKASAR}');
-    Error('\P{:=-In_MAKASAR}');
+    Expect(1, 70015, '\p{-	in_MAHAJANI}', "");
+    Expect(0, 70015, '\p{^-	in_MAHAJANI}', "");
+    Expect(0, 70015, '\P{-	in_MAHAJANI}', "");
+    Expect(1, 70015, '\P{^-	in_MAHAJANI}', "");
+    Expect(0, 70016, '\p{-	in_MAHAJANI}', "");
+    Expect(1, 70016, '\p{^-	in_MAHAJANI}', "");
+    Expect(1, 70016, '\P{-	in_MAHAJANI}', "");
+    Expect(0, 70016, '\P{^-	in_MAHAJANI}', "");
+    Error('\p{/a/IN_MAHAJANI}');
+    Error('\P{/a/IN_MAHAJANI}');
+    Expect(1, 70015, '\p{_In_MAHAJANI}', "");
+    Expect(0, 70015, '\p{^_In_MAHAJANI}', "");
+    Expect(0, 70015, '\P{_In_MAHAJANI}', "");
+    Expect(1, 70015, '\P{^_In_MAHAJANI}', "");
+    Expect(0, 70016, '\p{_In_MAHAJANI}', "");
+    Expect(1, 70016, '\p{^_In_MAHAJANI}', "");
+    Expect(1, 70016, '\P{_In_MAHAJANI}', "");
+    Expect(0, 70016, '\P{^_In_MAHAJANI}', "");
+    Error('\p{/a/_In_MAKASAR}');
+    Error('\P{/a/_In_MAKASAR}');
     Expect(1, 73471, '\p{inmakasar}', "");
     Expect(0, 73471, '\p{^inmakasar}', "");
     Expect(0, 73471, '\P{inmakasar}', "");
@@ -103875,26 +104909,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73472, '\p{^inmakasar}', "");
     Expect(1, 73472, '\P{inmakasar}', "");
     Expect(0, 73472, '\P{^inmakasar}', "");
-    Expect(1, 73471, '\p{ 	In_Makasar}', "");
-    Expect(0, 73471, '\p{^ 	In_Makasar}', "");
-    Expect(0, 73471, '\P{ 	In_Makasar}', "");
-    Expect(1, 73471, '\P{^ 	In_Makasar}', "");
-    Expect(0, 73472, '\p{ 	In_Makasar}', "");
-    Expect(1, 73472, '\p{^ 	In_Makasar}', "");
-    Expect(1, 73472, '\P{ 	In_Makasar}', "");
-    Expect(0, 73472, '\P{^ 	In_Makasar}', "");
-    Error('\p{/a/in_MAKASAR}');
-    Error('\P{/a/in_MAKASAR}');
-    Expect(1, 73471, '\p{in_makasar}', "");
-    Expect(0, 73471, '\p{^in_makasar}', "");
-    Expect(0, 73471, '\P{in_makasar}', "");
-    Expect(1, 73471, '\P{^in_makasar}', "");
-    Expect(0, 73472, '\p{in_makasar}', "");
-    Expect(1, 73472, '\p{^in_makasar}', "");
-    Expect(1, 73472, '\P{in_makasar}', "");
-    Expect(0, 73472, '\P{^in_makasar}', "");
-    Error('\p{	In_malayalam/a/}');
-    Error('\P{	In_malayalam/a/}');
+    Expect(1, 73471, '\p{ _In_MAKASAR}', "");
+    Expect(0, 73471, '\p{^ _In_MAKASAR}', "");
+    Expect(0, 73471, '\P{ _In_MAKASAR}', "");
+    Expect(1, 73471, '\P{^ _In_MAKASAR}', "");
+    Expect(0, 73472, '\p{ _In_MAKASAR}', "");
+    Expect(1, 73472, '\p{^ _In_MAKASAR}', "");
+    Expect(1, 73472, '\P{ _In_MAKASAR}', "");
+    Expect(0, 73472, '\P{^ _In_MAKASAR}', "");
+    Error('\p{:= IN_Makasar}');
+    Error('\P{:= IN_Makasar}');
+    Expect(1, 73471, '\p{In_MAKASAR}', "");
+    Expect(0, 73471, '\p{^In_MAKASAR}', "");
+    Expect(0, 73471, '\P{In_MAKASAR}', "");
+    Expect(1, 73471, '\P{^In_MAKASAR}', "");
+    Expect(0, 73472, '\p{In_MAKASAR}', "");
+    Expect(1, 73472, '\p{^In_MAKASAR}', "");
+    Expect(1, 73472, '\P{In_MAKASAR}', "");
+    Expect(0, 73472, '\P{^In_MAKASAR}', "");
+    Error('\p{_ in_malayalam:=}');
+    Error('\P{_ in_malayalam:=}');
     Expect(1, 3455, '\p{inmalayalam}', "");
     Expect(0, 3455, '\p{^inmalayalam}', "");
     Expect(0, 3455, '\P{inmalayalam}', "");
@@ -103903,26 +104937,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3456, '\p{^inmalayalam}', "");
     Expect(1, 3456, '\P{inmalayalam}', "");
     Expect(0, 3456, '\P{^inmalayalam}', "");
-    Expect(1, 3455, '\p{	In_MALAYALAM}', "");
-    Expect(0, 3455, '\p{^	In_MALAYALAM}', "");
-    Expect(0, 3455, '\P{	In_MALAYALAM}', "");
-    Expect(1, 3455, '\P{^	In_MALAYALAM}', "");
-    Expect(0, 3456, '\p{	In_MALAYALAM}', "");
-    Expect(1, 3456, '\p{^	In_MALAYALAM}', "");
-    Expect(1, 3456, '\P{	In_MALAYALAM}', "");
-    Expect(0, 3456, '\P{^	In_MALAYALAM}', "");
-    Error('\p{-IN_Malayalam/a/}');
-    Error('\P{-IN_Malayalam/a/}');
-    Expect(1, 3455, '\p{ _In_Malayalam}', "");
-    Expect(0, 3455, '\p{^ _In_Malayalam}', "");
-    Expect(0, 3455, '\P{ _In_Malayalam}', "");
-    Expect(1, 3455, '\P{^ _In_Malayalam}', "");
-    Expect(0, 3456, '\p{ _In_Malayalam}', "");
-    Expect(1, 3456, '\p{^ _In_Malayalam}', "");
-    Expect(1, 3456, '\P{ _In_Malayalam}', "");
-    Expect(0, 3456, '\P{^ _In_Malayalam}', "");
-    Error('\p{/a/_in_MANDAIC}');
-    Error('\P{/a/_in_MANDAIC}');
+    Expect(1, 3455, '\p{-In_MALAYALAM}', "");
+    Expect(0, 3455, '\p{^-In_MALAYALAM}', "");
+    Expect(0, 3455, '\P{-In_MALAYALAM}', "");
+    Expect(1, 3455, '\P{^-In_MALAYALAM}', "");
+    Expect(0, 3456, '\p{-In_MALAYALAM}', "");
+    Expect(1, 3456, '\p{^-In_MALAYALAM}', "");
+    Expect(1, 3456, '\P{-In_MALAYALAM}', "");
+    Expect(0, 3456, '\P{^-In_MALAYALAM}', "");
+    Error('\p{/a/- in_Malayalam}');
+    Error('\P{/a/- in_Malayalam}');
+    Expect(1, 3455, '\p{--in_Malayalam}', "");
+    Expect(0, 3455, '\p{^--in_Malayalam}', "");
+    Expect(0, 3455, '\P{--in_Malayalam}', "");
+    Expect(1, 3455, '\P{^--in_Malayalam}', "");
+    Expect(0, 3456, '\p{--in_Malayalam}', "");
+    Expect(1, 3456, '\p{^--in_Malayalam}', "");
+    Expect(1, 3456, '\P{--in_Malayalam}', "");
+    Expect(0, 3456, '\P{^--in_Malayalam}', "");
+    Error('\p{:=- In_Mandaic}');
+    Error('\P{:=- In_Mandaic}');
     Expect(1, 2143, '\p{inmandaic}', "");
     Expect(0, 2143, '\p{^inmandaic}', "");
     Expect(0, 2143, '\P{inmandaic}', "");
@@ -103931,26 +104965,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2144, '\p{^inmandaic}', "");
     Expect(1, 2144, '\P{inmandaic}', "");
     Expect(0, 2144, '\P{^inmandaic}', "");
-    Expect(1, 2143, '\p{_ In_Mandaic}', "");
-    Expect(0, 2143, '\p{^_ In_Mandaic}', "");
-    Expect(0, 2143, '\P{_ In_Mandaic}', "");
-    Expect(1, 2143, '\P{^_ In_Mandaic}', "");
-    Expect(0, 2144, '\p{_ In_Mandaic}', "");
-    Expect(1, 2144, '\p{^_ In_Mandaic}', "");
-    Expect(1, 2144, '\P{_ In_Mandaic}', "");
-    Expect(0, 2144, '\P{^_ In_Mandaic}', "");
-    Error('\p{IN_mandaic:=}');
-    Error('\P{IN_mandaic:=}');
-    Expect(1, 2143, '\p{__In_Mandaic}', "");
-    Expect(0, 2143, '\p{^__In_Mandaic}', "");
-    Expect(0, 2143, '\P{__In_Mandaic}', "");
-    Expect(1, 2143, '\P{^__In_Mandaic}', "");
-    Expect(0, 2144, '\p{__In_Mandaic}', "");
-    Expect(1, 2144, '\p{^__In_Mandaic}', "");
-    Expect(1, 2144, '\P{__In_Mandaic}', "");
-    Expect(0, 2144, '\P{^__In_Mandaic}', "");
-    Error('\p{:=_IN_MANICHAEAN}');
-    Error('\P{:=_IN_MANICHAEAN}');
+    Expect(1, 2143, '\p{-	IN_Mandaic}', "");
+    Expect(0, 2143, '\p{^-	IN_Mandaic}', "");
+    Expect(0, 2143, '\P{-	IN_Mandaic}', "");
+    Expect(1, 2143, '\P{^-	IN_Mandaic}', "");
+    Expect(0, 2144, '\p{-	IN_Mandaic}', "");
+    Expect(1, 2144, '\p{^-	IN_Mandaic}', "");
+    Expect(1, 2144, '\P{-	IN_Mandaic}', "");
+    Expect(0, 2144, '\P{^-	IN_Mandaic}', "");
+    Error('\p{ In_Mandaic:=}');
+    Error('\P{ In_Mandaic:=}');
+    Expect(1, 2143, '\p{ _in_MANDAIC}', "");
+    Expect(0, 2143, '\p{^ _in_MANDAIC}', "");
+    Expect(0, 2143, '\P{ _in_MANDAIC}', "");
+    Expect(1, 2143, '\P{^ _in_MANDAIC}', "");
+    Expect(0, 2144, '\p{ _in_MANDAIC}', "");
+    Expect(1, 2144, '\p{^ _in_MANDAIC}', "");
+    Expect(1, 2144, '\P{ _in_MANDAIC}', "");
+    Expect(0, 2144, '\P{^ _in_MANDAIC}', "");
+    Error('\p{:=In_MANICHAEAN}');
+    Error('\P{:=In_MANICHAEAN}');
     Expect(1, 68351, '\p{inmanichaean}', "");
     Expect(0, 68351, '\p{^inmanichaean}', "");
     Expect(0, 68351, '\P{inmanichaean}', "");
@@ -103959,26 +104993,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68352, '\p{^inmanichaean}', "");
     Expect(1, 68352, '\P{inmanichaean}', "");
     Expect(0, 68352, '\P{^inmanichaean}', "");
-    Expect(1, 68351, '\p{	 In_Manichaean}', "");
-    Expect(0, 68351, '\p{^	 In_Manichaean}', "");
-    Expect(0, 68351, '\P{	 In_Manichaean}', "");
-    Expect(1, 68351, '\P{^	 In_Manichaean}', "");
-    Expect(0, 68352, '\p{	 In_Manichaean}', "");
-    Expect(1, 68352, '\p{^	 In_Manichaean}', "");
-    Expect(1, 68352, '\P{	 In_Manichaean}', "");
-    Expect(0, 68352, '\P{^	 In_Manichaean}', "");
-    Error('\p{_:=In_MANICHAEAN}');
-    Error('\P{_:=In_MANICHAEAN}');
-    Expect(1, 68351, '\p{_ In_MANICHAEAN}', "");
-    Expect(0, 68351, '\p{^_ In_MANICHAEAN}', "");
-    Expect(0, 68351, '\P{_ In_MANICHAEAN}', "");
-    Expect(1, 68351, '\P{^_ In_MANICHAEAN}', "");
-    Expect(0, 68352, '\p{_ In_MANICHAEAN}', "");
-    Expect(1, 68352, '\p{^_ In_MANICHAEAN}', "");
-    Expect(1, 68352, '\P{_ In_MANICHAEAN}', "");
-    Expect(0, 68352, '\P{^_ In_MANICHAEAN}', "");
-    Error('\p{_ In_marchen:=}');
-    Error('\P{_ In_marchen:=}');
+    Expect(1, 68351, '\p{ IN_Manichaean}', "");
+    Expect(0, 68351, '\p{^ IN_Manichaean}', "");
+    Expect(0, 68351, '\P{ IN_Manichaean}', "");
+    Expect(1, 68351, '\P{^ IN_Manichaean}', "");
+    Expect(0, 68352, '\p{ IN_Manichaean}', "");
+    Expect(1, 68352, '\p{^ IN_Manichaean}', "");
+    Expect(1, 68352, '\P{ IN_Manichaean}', "");
+    Expect(0, 68352, '\P{^ IN_Manichaean}', "");
+    Error('\p{ :=in_Manichaean}');
+    Error('\P{ :=in_Manichaean}');
+    Expect(1, 68351, '\p{ 	IN_Manichaean}', "");
+    Expect(0, 68351, '\p{^ 	IN_Manichaean}', "");
+    Expect(0, 68351, '\P{ 	IN_Manichaean}', "");
+    Expect(1, 68351, '\P{^ 	IN_Manichaean}', "");
+    Expect(0, 68352, '\p{ 	IN_Manichaean}', "");
+    Expect(1, 68352, '\p{^ 	IN_Manichaean}', "");
+    Expect(1, 68352, '\P{ 	IN_Manichaean}', "");
+    Expect(0, 68352, '\P{^ 	IN_Manichaean}', "");
+    Error('\p{	/a/in_MARCHEN}');
+    Error('\P{	/a/in_MARCHEN}');
     Expect(1, 72895, '\p{inmarchen}', "");
     Expect(0, 72895, '\p{^inmarchen}', "");
     Expect(0, 72895, '\P{inmarchen}', "");
@@ -103987,26 +105021,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72896, '\p{^inmarchen}', "");
     Expect(1, 72896, '\P{inmarchen}', "");
     Expect(0, 72896, '\P{^inmarchen}', "");
-    Expect(1, 72895, '\p{_in_marchen}', "");
-    Expect(0, 72895, '\p{^_in_marchen}', "");
-    Expect(0, 72895, '\P{_in_marchen}', "");
-    Expect(1, 72895, '\P{^_in_marchen}', "");
-    Expect(0, 72896, '\p{_in_marchen}', "");
-    Expect(1, 72896, '\p{^_in_marchen}', "");
-    Expect(1, 72896, '\P{_in_marchen}', "");
-    Expect(0, 72896, '\P{^_in_marchen}', "");
-    Error('\p{-	IN_Marchen:=}');
-    Error('\P{-	IN_Marchen:=}');
-    Expect(1, 72895, '\p{In_marchen}', "");
-    Expect(0, 72895, '\p{^In_marchen}', "");
-    Expect(0, 72895, '\P{In_marchen}', "");
-    Expect(1, 72895, '\P{^In_marchen}', "");
-    Expect(0, 72896, '\p{In_marchen}', "");
-    Expect(1, 72896, '\p{^In_marchen}', "");
-    Expect(1, 72896, '\P{In_marchen}', "");
-    Expect(0, 72896, '\P{^In_marchen}', "");
-    Error('\p{ _IN_masaram_Gondi/a/}');
-    Error('\P{ _IN_masaram_Gondi/a/}');
+    Expect(1, 72895, '\p{ IN_Marchen}', "");
+    Expect(0, 72895, '\p{^ IN_Marchen}', "");
+    Expect(0, 72895, '\P{ IN_Marchen}', "");
+    Expect(1, 72895, '\P{^ IN_Marchen}', "");
+    Expect(0, 72896, '\p{ IN_Marchen}', "");
+    Expect(1, 72896, '\p{^ IN_Marchen}', "");
+    Expect(1, 72896, '\P{ IN_Marchen}', "");
+    Expect(0, 72896, '\P{^ IN_Marchen}', "");
+    Error('\p{/a/in_marchen}');
+    Error('\P{/a/in_marchen}');
+    Expect(1, 72895, '\p{_ in_Marchen}', "");
+    Expect(0, 72895, '\p{^_ in_Marchen}', "");
+    Expect(0, 72895, '\P{_ in_Marchen}', "");
+    Expect(1, 72895, '\P{^_ in_Marchen}', "");
+    Expect(0, 72896, '\p{_ in_Marchen}', "");
+    Expect(1, 72896, '\p{^_ in_Marchen}', "");
+    Expect(1, 72896, '\P{_ in_Marchen}', "");
+    Expect(0, 72896, '\P{^_ in_Marchen}', "");
+    Error('\p{:=	-IN_masaram_Gondi}');
+    Error('\P{:=	-IN_masaram_Gondi}');
     Expect(1, 73055, '\p{inmasaramgondi}', "");
     Expect(0, 73055, '\p{^inmasaramgondi}', "");
     Expect(0, 73055, '\P{inmasaramgondi}', "");
@@ -104015,26 +105049,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73056, '\p{^inmasaramgondi}', "");
     Expect(1, 73056, '\P{inmasaramgondi}', "");
     Expect(0, 73056, '\P{^inmasaramgondi}', "");
-    Expect(1, 73055, '\p{_ In_Masaram_GONDI}', "");
-    Expect(0, 73055, '\p{^_ In_Masaram_GONDI}', "");
-    Expect(0, 73055, '\P{_ In_Masaram_GONDI}', "");
-    Expect(1, 73055, '\P{^_ In_Masaram_GONDI}', "");
-    Expect(0, 73056, '\p{_ In_Masaram_GONDI}', "");
-    Expect(1, 73056, '\p{^_ In_Masaram_GONDI}', "");
-    Expect(1, 73056, '\P{_ In_Masaram_GONDI}', "");
-    Expect(0, 73056, '\P{^_ In_Masaram_GONDI}', "");
-    Error('\p{/a/  In_MASARAM_GONDI}');
-    Error('\P{/a/  In_MASARAM_GONDI}');
-    Expect(1, 73055, '\p{ -In_MASARAM_Gondi}', "");
-    Expect(0, 73055, '\p{^ -In_MASARAM_Gondi}', "");
-    Expect(0, 73055, '\P{ -In_MASARAM_Gondi}', "");
-    Expect(1, 73055, '\P{^ -In_MASARAM_Gondi}', "");
-    Expect(0, 73056, '\p{ -In_MASARAM_Gondi}', "");
-    Expect(1, 73056, '\p{^ -In_MASARAM_Gondi}', "");
-    Expect(1, 73056, '\P{ -In_MASARAM_Gondi}', "");
-    Expect(0, 73056, '\P{^ -In_MASARAM_Gondi}', "");
-    Error('\p{:=	-in_Medefaidrin}');
-    Error('\P{:=	-in_Medefaidrin}');
+    Expect(1, 73055, '\p{IN_MASARAM_GONDI}', "");
+    Expect(0, 73055, '\p{^IN_MASARAM_GONDI}', "");
+    Expect(0, 73055, '\P{IN_MASARAM_GONDI}', "");
+    Expect(1, 73055, '\P{^IN_MASARAM_GONDI}', "");
+    Expect(0, 73056, '\p{IN_MASARAM_GONDI}', "");
+    Expect(1, 73056, '\p{^IN_MASARAM_GONDI}', "");
+    Expect(1, 73056, '\P{IN_MASARAM_GONDI}', "");
+    Expect(0, 73056, '\P{^IN_MASARAM_GONDI}', "");
+    Error('\p{_	In_MASARAM_Gondi:=}');
+    Error('\P{_	In_MASARAM_Gondi:=}');
+    Expect(1, 73055, '\p{_ in_Masaram_GONDI}', "");
+    Expect(0, 73055, '\p{^_ in_Masaram_GONDI}', "");
+    Expect(0, 73055, '\P{_ in_Masaram_GONDI}', "");
+    Expect(1, 73055, '\P{^_ in_Masaram_GONDI}', "");
+    Expect(0, 73056, '\p{_ in_Masaram_GONDI}', "");
+    Expect(1, 73056, '\p{^_ in_Masaram_GONDI}', "");
+    Expect(1, 73056, '\P{_ in_Masaram_GONDI}', "");
+    Expect(0, 73056, '\P{^_ in_Masaram_GONDI}', "");
+    Error('\p{_	In_Medefaidrin:=}');
+    Error('\P{_	In_Medefaidrin:=}');
     Expect(1, 93855, '\p{inmedefaidrin}', "");
     Expect(0, 93855, '\p{^inmedefaidrin}', "");
     Expect(0, 93855, '\P{inmedefaidrin}', "");
@@ -104043,26 +105077,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93856, '\p{^inmedefaidrin}', "");
     Expect(1, 93856, '\P{inmedefaidrin}', "");
     Expect(0, 93856, '\P{^inmedefaidrin}', "");
-    Expect(1, 93855, '\p{ -IN_medefaidrin}', "");
-    Expect(0, 93855, '\p{^ -IN_medefaidrin}', "");
-    Expect(0, 93855, '\P{ -IN_medefaidrin}', "");
-    Expect(1, 93855, '\P{^ -IN_medefaidrin}', "");
-    Expect(0, 93856, '\p{ -IN_medefaidrin}', "");
-    Expect(1, 93856, '\p{^ -IN_medefaidrin}', "");
-    Expect(1, 93856, '\P{ -IN_medefaidrin}', "");
-    Expect(0, 93856, '\P{^ -IN_medefaidrin}', "");
-    Error('\p{ :=in_MEDEFAIDRIN}');
-    Error('\P{ :=in_MEDEFAIDRIN}');
-    Expect(1, 93855, '\p{--IN_Medefaidrin}', "");
-    Expect(0, 93855, '\p{^--IN_Medefaidrin}', "");
-    Expect(0, 93855, '\P{--IN_Medefaidrin}', "");
-    Expect(1, 93855, '\P{^--IN_Medefaidrin}', "");
-    Expect(0, 93856, '\p{--IN_Medefaidrin}', "");
-    Expect(1, 93856, '\p{^--IN_Medefaidrin}', "");
-    Expect(1, 93856, '\P{--IN_Medefaidrin}', "");
-    Expect(0, 93856, '\P{^--IN_Medefaidrin}', "");
-    Error('\p{/a/	In_MEETEI_Mayek}');
-    Error('\P{/a/	In_MEETEI_Mayek}');
+    Expect(1, 93855, '\p{-in_Medefaidrin}', "");
+    Expect(0, 93855, '\p{^-in_Medefaidrin}', "");
+    Expect(0, 93855, '\P{-in_Medefaidrin}', "");
+    Expect(1, 93855, '\P{^-in_Medefaidrin}', "");
+    Expect(0, 93856, '\p{-in_Medefaidrin}', "");
+    Expect(1, 93856, '\p{^-in_Medefaidrin}', "");
+    Expect(1, 93856, '\P{-in_Medefaidrin}', "");
+    Expect(0, 93856, '\P{^-in_Medefaidrin}', "");
+    Error('\p{ In_medefaidrin/a/}');
+    Error('\P{ In_medefaidrin/a/}');
+    Expect(1, 93855, '\p{__IN_medefaidrin}', "");
+    Expect(0, 93855, '\p{^__IN_medefaidrin}', "");
+    Expect(0, 93855, '\P{__IN_medefaidrin}', "");
+    Expect(1, 93855, '\P{^__IN_medefaidrin}', "");
+    Expect(0, 93856, '\p{__IN_medefaidrin}', "");
+    Expect(1, 93856, '\p{^__IN_medefaidrin}', "");
+    Expect(1, 93856, '\P{__IN_medefaidrin}', "");
+    Expect(0, 93856, '\P{^__IN_medefaidrin}', "");
+    Error('\p{/a/_In_MEETEI_Mayek}');
+    Error('\P{/a/_In_MEETEI_Mayek}');
     Expect(1, 44031, '\p{inmeeteimayek}', "");
     Expect(0, 44031, '\p{^inmeeteimayek}', "");
     Expect(0, 44031, '\P{inmeeteimayek}', "");
@@ -104071,26 +105105,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 44032, '\p{^inmeeteimayek}', "");
     Expect(1, 44032, '\P{inmeeteimayek}', "");
     Expect(0, 44032, '\P{^inmeeteimayek}', "");
-    Expect(1, 44031, '\p{	-IN_Meetei_mayek}', "");
-    Expect(0, 44031, '\p{^	-IN_Meetei_mayek}', "");
-    Expect(0, 44031, '\P{	-IN_Meetei_mayek}', "");
-    Expect(1, 44031, '\P{^	-IN_Meetei_mayek}', "");
-    Expect(0, 44032, '\p{	-IN_Meetei_mayek}', "");
-    Expect(1, 44032, '\p{^	-IN_Meetei_mayek}', "");
-    Expect(1, 44032, '\P{	-IN_Meetei_mayek}', "");
-    Expect(0, 44032, '\P{^	-IN_Meetei_mayek}', "");
-    Error('\p{ :=In_meetei_Mayek}');
-    Error('\P{ :=In_meetei_Mayek}');
-    Expect(1, 44031, '\p{-IN_meetei_Mayek}', "");
-    Expect(0, 44031, '\p{^-IN_meetei_Mayek}', "");
-    Expect(0, 44031, '\P{-IN_meetei_Mayek}', "");
-    Expect(1, 44031, '\P{^-IN_meetei_Mayek}', "");
-    Expect(0, 44032, '\p{-IN_meetei_Mayek}', "");
-    Expect(1, 44032, '\p{^-IN_meetei_Mayek}', "");
-    Expect(1, 44032, '\P{-IN_meetei_Mayek}', "");
-    Expect(0, 44032, '\P{^-IN_meetei_Mayek}', "");
-    Error('\p{in_Mende_KIKAKUI:=}');
-    Error('\P{in_Mende_KIKAKUI:=}');
+    Expect(1, 44031, '\p{	_In_Meetei_MAYEK}', "");
+    Expect(0, 44031, '\p{^	_In_Meetei_MAYEK}', "");
+    Expect(0, 44031, '\P{	_In_Meetei_MAYEK}', "");
+    Expect(1, 44031, '\P{^	_In_Meetei_MAYEK}', "");
+    Expect(0, 44032, '\p{	_In_Meetei_MAYEK}', "");
+    Expect(1, 44032, '\p{^	_In_Meetei_MAYEK}', "");
+    Expect(1, 44032, '\P{	_In_Meetei_MAYEK}', "");
+    Expect(0, 44032, '\P{^	_In_Meetei_MAYEK}', "");
+    Error('\p{_:=In_Meetei_Mayek}');
+    Error('\P{_:=In_Meetei_Mayek}');
+    Expect(1, 44031, '\p{_ In_meetei_Mayek}', "");
+    Expect(0, 44031, '\p{^_ In_meetei_Mayek}', "");
+    Expect(0, 44031, '\P{_ In_meetei_Mayek}', "");
+    Expect(1, 44031, '\P{^_ In_meetei_Mayek}', "");
+    Expect(0, 44032, '\p{_ In_meetei_Mayek}', "");
+    Expect(1, 44032, '\p{^_ In_meetei_Mayek}', "");
+    Expect(1, 44032, '\P{_ In_meetei_Mayek}', "");
+    Expect(0, 44032, '\P{^_ In_meetei_Mayek}', "");
+    Error('\p{-_IN_Mende_kikakui:=}');
+    Error('\P{-_IN_Mende_kikakui:=}');
     Expect(1, 125151, '\p{inmendekikakui}', "");
     Expect(0, 125151, '\p{^inmendekikakui}', "");
     Expect(0, 125151, '\P{inmendekikakui}', "");
@@ -104099,26 +105133,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125152, '\p{^inmendekikakui}', "");
     Expect(1, 125152, '\P{inmendekikakui}', "");
     Expect(0, 125152, '\P{^inmendekikakui}', "");
-    Expect(1, 125151, '\p{	In_MENDE_KIKAKUI}', "");
-    Expect(0, 125151, '\p{^	In_MENDE_KIKAKUI}', "");
-    Expect(0, 125151, '\P{	In_MENDE_KIKAKUI}', "");
-    Expect(1, 125151, '\P{^	In_MENDE_KIKAKUI}', "");
-    Expect(0, 125152, '\p{	In_MENDE_KIKAKUI}', "");
-    Expect(1, 125152, '\p{^	In_MENDE_KIKAKUI}', "");
-    Expect(1, 125152, '\P{	In_MENDE_KIKAKUI}', "");
-    Expect(0, 125152, '\P{^	In_MENDE_KIKAKUI}', "");
-    Error('\p{:= _in_mende_kikakui}');
-    Error('\P{:= _in_mende_kikakui}');
-    Expect(1, 125151, '\p{_	IN_mende_Kikakui}', "");
-    Expect(0, 125151, '\p{^_	IN_mende_Kikakui}', "");
-    Expect(0, 125151, '\P{_	IN_mende_Kikakui}', "");
-    Expect(1, 125151, '\P{^_	IN_mende_Kikakui}', "");
-    Expect(0, 125152, '\p{_	IN_mende_Kikakui}', "");
-    Expect(1, 125152, '\p{^_	IN_mende_Kikakui}', "");
-    Expect(1, 125152, '\P{_	IN_mende_Kikakui}', "");
-    Expect(0, 125152, '\P{^_	IN_mende_Kikakui}', "");
-    Error('\p{:=	_in_meroitic_cursive}');
-    Error('\P{:=	_in_meroitic_cursive}');
+    Expect(1, 125151, '\p{ -In_mende_KIKAKUI}', "");
+    Expect(0, 125151, '\p{^ -In_mende_KIKAKUI}', "");
+    Expect(0, 125151, '\P{ -In_mende_KIKAKUI}', "");
+    Expect(1, 125151, '\P{^ -In_mende_KIKAKUI}', "");
+    Expect(0, 125152, '\p{ -In_mende_KIKAKUI}', "");
+    Expect(1, 125152, '\p{^ -In_mende_KIKAKUI}', "");
+    Expect(1, 125152, '\P{ -In_mende_KIKAKUI}', "");
+    Expect(0, 125152, '\P{^ -In_mende_KIKAKUI}', "");
+    Error('\p{	/a/in_Mende_Kikakui}');
+    Error('\P{	/a/in_Mende_Kikakui}');
+    Expect(1, 125151, '\p{-In_Mende_Kikakui}', "");
+    Expect(0, 125151, '\p{^-In_Mende_Kikakui}', "");
+    Expect(0, 125151, '\P{-In_Mende_Kikakui}', "");
+    Expect(1, 125151, '\P{^-In_Mende_Kikakui}', "");
+    Expect(0, 125152, '\p{-In_Mende_Kikakui}', "");
+    Expect(1, 125152, '\p{^-In_Mende_Kikakui}', "");
+    Expect(1, 125152, '\P{-In_Mende_Kikakui}', "");
+    Expect(0, 125152, '\P{^-In_Mende_Kikakui}', "");
+    Error('\p{:= -in_Meroitic_CURSIVE}');
+    Error('\P{:= -in_Meroitic_CURSIVE}');
     Expect(1, 68095, '\p{inmeroiticcursive}', "");
     Expect(0, 68095, '\p{^inmeroiticcursive}', "");
     Expect(0, 68095, '\P{inmeroiticcursive}', "");
@@ -104127,26 +105161,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68096, '\p{^inmeroiticcursive}', "");
     Expect(1, 68096, '\P{inmeroiticcursive}', "");
     Expect(0, 68096, '\P{^inmeroiticcursive}', "");
-    Expect(1, 68095, '\p{-In_MEROITIC_Cursive}', "");
-    Expect(0, 68095, '\p{^-In_MEROITIC_Cursive}', "");
-    Expect(0, 68095, '\P{-In_MEROITIC_Cursive}', "");
-    Expect(1, 68095, '\P{^-In_MEROITIC_Cursive}', "");
-    Expect(0, 68096, '\p{-In_MEROITIC_Cursive}', "");
-    Expect(1, 68096, '\p{^-In_MEROITIC_Cursive}', "");
-    Expect(1, 68096, '\P{-In_MEROITIC_Cursive}', "");
-    Expect(0, 68096, '\P{^-In_MEROITIC_Cursive}', "");
-    Error('\p{--In_MEROITIC_CURSIVE/a/}');
-    Error('\P{--In_MEROITIC_CURSIVE/a/}');
-    Expect(1, 68095, '\p{_In_Meroitic_Cursive}', "");
-    Expect(0, 68095, '\p{^_In_Meroitic_Cursive}', "");
-    Expect(0, 68095, '\P{_In_Meroitic_Cursive}', "");
-    Expect(1, 68095, '\P{^_In_Meroitic_Cursive}', "");
-    Expect(0, 68096, '\p{_In_Meroitic_Cursive}', "");
-    Expect(1, 68096, '\p{^_In_Meroitic_Cursive}', "");
-    Expect(1, 68096, '\P{_In_Meroitic_Cursive}', "");
-    Expect(0, 68096, '\P{^_In_Meroitic_Cursive}', "");
-    Error('\p{/a/	in_MEROITIC_hieroglyphs}');
-    Error('\P{/a/	in_MEROITIC_hieroglyphs}');
+    Expect(1, 68095, '\p{ _In_Meroitic_Cursive}', "");
+    Expect(0, 68095, '\p{^ _In_Meroitic_Cursive}', "");
+    Expect(0, 68095, '\P{ _In_Meroitic_Cursive}', "");
+    Expect(1, 68095, '\P{^ _In_Meroitic_Cursive}', "");
+    Expect(0, 68096, '\p{ _In_Meroitic_Cursive}', "");
+    Expect(1, 68096, '\p{^ _In_Meroitic_Cursive}', "");
+    Expect(1, 68096, '\P{ _In_Meroitic_Cursive}', "");
+    Expect(0, 68096, '\P{^ _In_Meroitic_Cursive}', "");
+    Error('\p{:= In_Meroitic_Cursive}');
+    Error('\P{:= In_Meroitic_Cursive}');
+    Expect(1, 68095, '\p{	 In_Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\p{^	 In_Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\P{	 In_Meroitic_CURSIVE}', "");
+    Expect(1, 68095, '\P{^	 In_Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\p{	 In_Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\p{^	 In_Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\P{	 In_Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\P{^	 In_Meroitic_CURSIVE}', "");
+    Error('\p{--in_Meroitic_HIEROGLYPHS:=}');
+    Error('\P{--in_Meroitic_HIEROGLYPHS:=}');
     Expect(1, 67999, '\p{inmeroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^inmeroitichieroglyphs}', "");
     Expect(0, 67999, '\P{inmeroitichieroglyphs}', "");
@@ -104155,26 +105189,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68000, '\p{^inmeroitichieroglyphs}', "");
     Expect(1, 68000, '\P{inmeroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^inmeroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{ In_Meroitic_hieroglyphs}', "");
-    Expect(0, 67999, '\p{^ In_Meroitic_hieroglyphs}', "");
-    Expect(0, 67999, '\P{ In_Meroitic_hieroglyphs}', "");
-    Expect(1, 67999, '\P{^ In_Meroitic_hieroglyphs}', "");
-    Expect(0, 68000, '\p{ In_Meroitic_hieroglyphs}', "");
-    Expect(1, 68000, '\p{^ In_Meroitic_hieroglyphs}', "");
-    Expect(1, 68000, '\P{ In_Meroitic_hieroglyphs}', "");
-    Expect(0, 68000, '\P{^ In_Meroitic_hieroglyphs}', "");
-    Error('\p{ 	IN_MEROITIC_Hieroglyphs:=}');
-    Error('\P{ 	IN_MEROITIC_Hieroglyphs:=}');
-    Expect(1, 67999, '\p{  in_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^  in_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{  in_MEROITIC_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^  in_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{  in_MEROITIC_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^  in_MEROITIC_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{  in_MEROITIC_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^  in_MEROITIC_Hieroglyphs}', "");
-    Error('\p{-In_MIAO:=}');
-    Error('\P{-In_MIAO:=}');
+    Expect(1, 67999, '\p{ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(0, 67999, '\p{^ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(0, 67999, '\P{ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(1, 67999, '\P{^ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(0, 68000, '\p{ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(1, 68000, '\p{^ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(1, 68000, '\P{ 	In_Meroitic_Hieroglyphs}', "");
+    Expect(0, 68000, '\P{^ 	In_Meroitic_Hieroglyphs}', "");
+    Error('\p{:=--IN_meroitic_Hieroglyphs}');
+    Error('\P{:=--IN_meroitic_Hieroglyphs}');
+    Expect(1, 67999, '\p{_-in_meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\p{^_-in_meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\P{_-in_meroitic_hieroglyphs}', "");
+    Expect(1, 67999, '\P{^_-in_meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\p{_-in_meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\p{^_-in_meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\P{_-in_meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\P{^_-in_meroitic_hieroglyphs}', "");
+    Error('\p{/a/IN_miao}');
+    Error('\P{/a/IN_miao}');
     Expect(1, 94111, '\p{inmiao}', "");
     Expect(0, 94111, '\p{^inmiao}', "");
     Expect(0, 94111, '\P{inmiao}', "");
@@ -104183,18 +105217,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94112, '\p{^inmiao}', "");
     Expect(1, 94112, '\P{inmiao}', "");
     Expect(0, 94112, '\P{^inmiao}', "");
-    Expect(1, 94111, '\p{ _In_miao}', "");
-    Expect(0, 94111, '\p{^ _In_miao}', "");
-    Expect(0, 94111, '\P{ _In_miao}', "");
-    Expect(1, 94111, '\P{^ _In_miao}', "");
-    Expect(0, 94112, '\p{ _In_miao}', "");
-    Expect(1, 94112, '\p{^ _In_miao}', "");
-    Expect(1, 94112, '\P{ _In_miao}', "");
-    Expect(0, 94112, '\P{^ _In_miao}', "");
-    Error('\p{	/a/In_Miao}');
-    Error('\P{	/a/In_Miao}');
-    Error('\p{		in_Modi:=}');
-    Error('\P{		in_Modi:=}');
+    Expect(1, 94111, '\p{	 in_MIAO}', "");
+    Expect(0, 94111, '\p{^	 in_MIAO}', "");
+    Expect(0, 94111, '\P{	 in_MIAO}', "");
+    Expect(1, 94111, '\P{^	 in_MIAO}', "");
+    Expect(0, 94112, '\p{	 in_MIAO}', "");
+    Expect(1, 94112, '\p{^	 in_MIAO}', "");
+    Expect(1, 94112, '\P{	 in_MIAO}', "");
+    Expect(0, 94112, '\P{^	 in_MIAO}', "");
+    Error('\p{-IN_Miao:=}');
+    Error('\P{-IN_Miao:=}');
+    Expect(1, 94111, '\p{-in_miao}', "");
+    Expect(0, 94111, '\p{^-in_miao}', "");
+    Expect(0, 94111, '\P{-in_miao}', "");
+    Expect(1, 94111, '\P{^-in_miao}', "");
+    Expect(0, 94112, '\p{-in_miao}', "");
+    Expect(1, 94112, '\p{^-in_miao}', "");
+    Expect(1, 94112, '\P{-in_miao}', "");
+    Expect(0, 94112, '\P{^-in_miao}', "");
+    Error('\p{In_Modi/a/}');
+    Error('\P{In_Modi/a/}');
     Expect(1, 71263, '\p{inmodi}', "");
     Expect(0, 71263, '\p{^inmodi}', "");
     Expect(0, 71263, '\P{inmodi}', "");
@@ -104203,26 +105245,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71264, '\p{^inmodi}', "");
     Expect(1, 71264, '\P{inmodi}', "");
     Expect(0, 71264, '\P{^inmodi}', "");
-    Expect(1, 71263, '\p{-IN_modi}', "");
-    Expect(0, 71263, '\p{^-IN_modi}', "");
-    Expect(0, 71263, '\P{-IN_modi}', "");
-    Expect(1, 71263, '\P{^-IN_modi}', "");
-    Expect(0, 71264, '\p{-IN_modi}', "");
-    Expect(1, 71264, '\p{^-IN_modi}', "");
-    Expect(1, 71264, '\P{-IN_modi}', "");
-    Expect(0, 71264, '\P{^-IN_modi}', "");
-    Error('\p{- In_Modi:=}');
-    Error('\P{- In_Modi:=}');
-    Expect(1, 71263, '\p{  IN_Modi}', "");
-    Expect(0, 71263, '\p{^  IN_Modi}', "");
-    Expect(0, 71263, '\P{  IN_Modi}', "");
-    Expect(1, 71263, '\P{^  IN_Modi}', "");
-    Expect(0, 71264, '\p{  IN_Modi}', "");
-    Expect(1, 71264, '\p{^  IN_Modi}', "");
-    Expect(1, 71264, '\P{  IN_Modi}', "");
-    Expect(0, 71264, '\P{^  IN_Modi}', "");
-    Error('\p{:=_ in_Mongolian}');
-    Error('\P{:=_ in_Mongolian}');
+    Expect(1, 71263, '\p{	_In_Modi}', "");
+    Expect(0, 71263, '\p{^	_In_Modi}', "");
+    Expect(0, 71263, '\P{	_In_Modi}', "");
+    Expect(1, 71263, '\P{^	_In_Modi}', "");
+    Expect(0, 71264, '\p{	_In_Modi}', "");
+    Expect(1, 71264, '\p{^	_In_Modi}', "");
+    Expect(1, 71264, '\P{	_In_Modi}', "");
+    Expect(0, 71264, '\P{^	_In_Modi}', "");
+    Error('\p{-/a/In_Modi}');
+    Error('\P{-/a/In_Modi}');
+    Expect(1, 71263, '\p{	In_MODI}', "");
+    Expect(0, 71263, '\p{^	In_MODI}', "");
+    Expect(0, 71263, '\P{	In_MODI}', "");
+    Expect(1, 71263, '\P{^	In_MODI}', "");
+    Expect(0, 71264, '\p{	In_MODI}', "");
+    Expect(1, 71264, '\p{^	In_MODI}', "");
+    Expect(1, 71264, '\P{	In_MODI}', "");
+    Expect(0, 71264, '\P{^	In_MODI}', "");
+    Error('\p{- In_Mongolian:=}');
+    Error('\P{- In_Mongolian:=}');
     Expect(1, 6319, '\p{inmongolian}', "");
     Expect(0, 6319, '\p{^inmongolian}', "");
     Expect(0, 6319, '\P{inmongolian}', "");
@@ -104231,26 +105273,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6320, '\p{^inmongolian}', "");
     Expect(1, 6320, '\P{inmongolian}', "");
     Expect(0, 6320, '\P{^inmongolian}', "");
-    Expect(1, 6319, '\p{_IN_mongolian}', "");
-    Expect(0, 6319, '\p{^_IN_mongolian}', "");
-    Expect(0, 6319, '\P{_IN_mongolian}', "");
-    Expect(1, 6319, '\P{^_IN_mongolian}', "");
-    Expect(0, 6320, '\p{_IN_mongolian}', "");
-    Expect(1, 6320, '\p{^_IN_mongolian}', "");
-    Expect(1, 6320, '\P{_IN_mongolian}', "");
-    Expect(0, 6320, '\P{^_IN_mongolian}', "");
-    Error('\p{	:=in_mongolian}');
-    Error('\P{	:=in_mongolian}');
-    Expect(1, 6319, '\p{_	in_MONGOLIAN}', "");
-    Expect(0, 6319, '\p{^_	in_MONGOLIAN}', "");
-    Expect(0, 6319, '\P{_	in_MONGOLIAN}', "");
-    Expect(1, 6319, '\P{^_	in_MONGOLIAN}', "");
-    Expect(0, 6320, '\p{_	in_MONGOLIAN}', "");
-    Expect(1, 6320, '\p{^_	in_MONGOLIAN}', "");
-    Expect(1, 6320, '\P{_	in_MONGOLIAN}', "");
-    Expect(0, 6320, '\P{^_	in_MONGOLIAN}', "");
-    Error('\p{:=-	in_Mro}');
-    Error('\P{:=-	in_Mro}');
+    Expect(1, 6319, '\p{ _in_Mongolian}', "");
+    Expect(0, 6319, '\p{^ _in_Mongolian}', "");
+    Expect(0, 6319, '\P{ _in_Mongolian}', "");
+    Expect(1, 6319, '\P{^ _in_Mongolian}', "");
+    Expect(0, 6320, '\p{ _in_Mongolian}', "");
+    Expect(1, 6320, '\p{^ _in_Mongolian}', "");
+    Expect(1, 6320, '\P{ _in_Mongolian}', "");
+    Expect(0, 6320, '\P{^ _in_Mongolian}', "");
+    Error('\p{/a/_-IN_MONGOLIAN}');
+    Error('\P{/a/_-IN_MONGOLIAN}');
+    Expect(1, 6319, '\p{_	IN_mongolian}', "");
+    Expect(0, 6319, '\p{^_	IN_mongolian}', "");
+    Expect(0, 6319, '\P{_	IN_mongolian}', "");
+    Expect(1, 6319, '\P{^_	IN_mongolian}', "");
+    Expect(0, 6320, '\p{_	IN_mongolian}', "");
+    Expect(1, 6320, '\p{^_	IN_mongolian}', "");
+    Expect(1, 6320, '\P{_	IN_mongolian}', "");
+    Expect(0, 6320, '\P{^_	IN_mongolian}', "");
+    Error('\p{/a/IN_Mro}');
+    Error('\P{/a/IN_Mro}');
     Expect(1, 92783, '\p{inmro}', "");
     Expect(0, 92783, '\p{^inmro}', "");
     Expect(0, 92783, '\P{inmro}', "");
@@ -104259,26 +105301,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92784, '\p{^inmro}', "");
     Expect(1, 92784, '\P{inmro}', "");
     Expect(0, 92784, '\P{^inmro}', "");
-    Expect(1, 92783, '\p{-In_mro}', "");
-    Expect(0, 92783, '\p{^-In_mro}', "");
-    Expect(0, 92783, '\P{-In_mro}', "");
-    Expect(1, 92783, '\P{^-In_mro}', "");
-    Expect(0, 92784, '\p{-In_mro}', "");
-    Expect(1, 92784, '\p{^-In_mro}', "");
-    Expect(1, 92784, '\P{-In_mro}', "");
-    Expect(0, 92784, '\P{^-In_mro}', "");
-    Error('\p{	-in_MRO/a/}');
-    Error('\P{	-in_MRO/a/}');
-    Expect(1, 92783, '\p{ In_MRO}', "");
-    Expect(0, 92783, '\p{^ In_MRO}', "");
-    Expect(0, 92783, '\P{ In_MRO}', "");
-    Expect(1, 92783, '\P{^ In_MRO}', "");
-    Expect(0, 92784, '\p{ In_MRO}', "");
-    Expect(1, 92784, '\p{^ In_MRO}', "");
-    Expect(1, 92784, '\P{ In_MRO}', "");
-    Expect(0, 92784, '\P{^ In_MRO}', "");
-    Error('\p{/a/ IN_Multani}');
-    Error('\P{/a/ IN_Multani}');
+    Expect(1, 92783, '\p{ in_Mro}', "");
+    Expect(0, 92783, '\p{^ in_Mro}', "");
+    Expect(0, 92783, '\P{ in_Mro}', "");
+    Expect(1, 92783, '\P{^ in_Mro}', "");
+    Expect(0, 92784, '\p{ in_Mro}', "");
+    Expect(1, 92784, '\p{^ in_Mro}', "");
+    Expect(1, 92784, '\P{ in_Mro}', "");
+    Expect(0, 92784, '\P{^ in_Mro}', "");
+    Error('\p{ 	In_MRO/a/}');
+    Error('\P{ 	In_MRO/a/}');
+    Expect(1, 92783, '\p{_ In_Mro}', "");
+    Expect(0, 92783, '\p{^_ In_Mro}', "");
+    Expect(0, 92783, '\P{_ In_Mro}', "");
+    Expect(1, 92783, '\P{^_ In_Mro}', "");
+    Expect(0, 92784, '\p{_ In_Mro}', "");
+    Expect(1, 92784, '\p{^_ In_Mro}', "");
+    Expect(1, 92784, '\P{_ In_Mro}', "");
+    Expect(0, 92784, '\P{^_ In_Mro}', "");
+    Error('\p{--in_multani:=}');
+    Error('\P{--in_multani:=}');
     Expect(1, 70319, '\p{inmultani}', "");
     Expect(0, 70319, '\p{^inmultani}', "");
     Expect(0, 70319, '\P{inmultani}', "");
@@ -104287,26 +105329,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70320, '\p{^inmultani}', "");
     Expect(1, 70320, '\P{inmultani}', "");
     Expect(0, 70320, '\P{^inmultani}', "");
-    Expect(1, 70319, '\p{_-In_MULTANI}', "");
-    Expect(0, 70319, '\p{^_-In_MULTANI}', "");
-    Expect(0, 70319, '\P{_-In_MULTANI}', "");
-    Expect(1, 70319, '\P{^_-In_MULTANI}', "");
-    Expect(0, 70320, '\p{_-In_MULTANI}', "");
-    Expect(1, 70320, '\p{^_-In_MULTANI}', "");
-    Expect(1, 70320, '\P{_-In_MULTANI}', "");
-    Expect(0, 70320, '\P{^_-In_MULTANI}', "");
-    Error('\p{-	IN_MULTANI:=}');
-    Error('\P{-	IN_MULTANI:=}');
-    Expect(1, 70319, '\p{--In_MULTANI}', "");
-    Expect(0, 70319, '\p{^--In_MULTANI}', "");
-    Expect(0, 70319, '\P{--In_MULTANI}', "");
-    Expect(1, 70319, '\P{^--In_MULTANI}', "");
-    Expect(0, 70320, '\p{--In_MULTANI}', "");
-    Expect(1, 70320, '\p{^--In_MULTANI}', "");
-    Expect(1, 70320, '\P{--In_MULTANI}', "");
-    Expect(0, 70320, '\P{^--In_MULTANI}', "");
-    Error('\p{:=-In_Myanmar}');
-    Error('\P{:=-In_Myanmar}');
+    Expect(1, 70319, '\p{--IN_multani}', "");
+    Expect(0, 70319, '\p{^--IN_multani}', "");
+    Expect(0, 70319, '\P{--IN_multani}', "");
+    Expect(1, 70319, '\P{^--IN_multani}', "");
+    Expect(0, 70320, '\p{--IN_multani}', "");
+    Expect(1, 70320, '\p{^--IN_multani}', "");
+    Expect(1, 70320, '\P{--IN_multani}', "");
+    Expect(0, 70320, '\P{^--IN_multani}', "");
+    Error('\p{:=-In_Multani}');
+    Error('\P{:=-In_Multani}');
+    Expect(1, 70319, '\p{ -In_Multani}', "");
+    Expect(0, 70319, '\p{^ -In_Multani}', "");
+    Expect(0, 70319, '\P{ -In_Multani}', "");
+    Expect(1, 70319, '\P{^ -In_Multani}', "");
+    Expect(0, 70320, '\p{ -In_Multani}', "");
+    Expect(1, 70320, '\p{^ -In_Multani}', "");
+    Expect(1, 70320, '\P{ -In_Multani}', "");
+    Expect(0, 70320, '\P{^ -In_Multani}', "");
+    Error('\p{ 	In_Myanmar:=}');
+    Error('\P{ 	In_Myanmar:=}');
     Expect(1, 4255, '\p{inmyanmar}', "");
     Expect(0, 4255, '\p{^inmyanmar}', "");
     Expect(0, 4255, '\P{inmyanmar}', "");
@@ -104315,26 +105357,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4256, '\p{^inmyanmar}', "");
     Expect(1, 4256, '\P{inmyanmar}', "");
     Expect(0, 4256, '\P{^inmyanmar}', "");
-    Expect(1, 4255, '\p{In_myanmar}', "");
-    Expect(0, 4255, '\p{^In_myanmar}', "");
-    Expect(0, 4255, '\P{In_myanmar}', "");
-    Expect(1, 4255, '\P{^In_myanmar}', "");
-    Expect(0, 4256, '\p{In_myanmar}', "");
-    Expect(1, 4256, '\p{^In_myanmar}', "");
-    Expect(1, 4256, '\P{In_myanmar}', "");
-    Expect(0, 4256, '\P{^In_myanmar}', "");
-    Error('\p{:=_in_MYANMAR}');
-    Error('\P{:=_in_MYANMAR}');
-    Expect(1, 4255, '\p{ _In_myanmar}', "");
-    Expect(0, 4255, '\p{^ _In_myanmar}', "");
-    Expect(0, 4255, '\P{ _In_myanmar}', "");
-    Expect(1, 4255, '\P{^ _In_myanmar}', "");
-    Expect(0, 4256, '\p{ _In_myanmar}', "");
-    Expect(1, 4256, '\p{^ _In_myanmar}', "");
-    Expect(1, 4256, '\P{ _In_myanmar}', "");
-    Expect(0, 4256, '\P{^ _In_myanmar}', "");
-    Error('\p{:= _In_Nabataean}');
-    Error('\P{:= _In_Nabataean}');
+    Expect(1, 4255, '\p{_-IN_myanmar}', "");
+    Expect(0, 4255, '\p{^_-IN_myanmar}', "");
+    Expect(0, 4255, '\P{_-IN_myanmar}', "");
+    Expect(1, 4255, '\P{^_-IN_myanmar}', "");
+    Expect(0, 4256, '\p{_-IN_myanmar}', "");
+    Expect(1, 4256, '\p{^_-IN_myanmar}', "");
+    Expect(1, 4256, '\P{_-IN_myanmar}', "");
+    Expect(0, 4256, '\P{^_-IN_myanmar}', "");
+    Error('\p{:=	In_Myanmar}');
+    Error('\P{:=	In_Myanmar}');
+    Expect(1, 4255, '\p{ In_Myanmar}', "");
+    Expect(0, 4255, '\p{^ In_Myanmar}', "");
+    Expect(0, 4255, '\P{ In_Myanmar}', "");
+    Expect(1, 4255, '\P{^ In_Myanmar}', "");
+    Expect(0, 4256, '\p{ In_Myanmar}', "");
+    Expect(1, 4256, '\p{^ In_Myanmar}', "");
+    Expect(1, 4256, '\P{ In_Myanmar}', "");
+    Expect(0, 4256, '\P{^ In_Myanmar}', "");
+    Error('\p{	/a/in_nabataean}');
+    Error('\P{	/a/in_nabataean}');
     Expect(1, 67759, '\p{innabataean}', "");
     Expect(0, 67759, '\p{^innabataean}', "");
     Expect(0, 67759, '\P{innabataean}', "");
@@ -104343,26 +105385,54 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67760, '\p{^innabataean}', "");
     Expect(1, 67760, '\P{innabataean}', "");
     Expect(0, 67760, '\P{^innabataean}', "");
-    Expect(1, 67759, '\p{ 	IN_Nabataean}', "");
-    Expect(0, 67759, '\p{^ 	IN_Nabataean}', "");
-    Expect(0, 67759, '\P{ 	IN_Nabataean}', "");
-    Expect(1, 67759, '\P{^ 	IN_Nabataean}', "");
-    Expect(0, 67760, '\p{ 	IN_Nabataean}', "");
-    Expect(1, 67760, '\p{^ 	IN_Nabataean}', "");
-    Expect(1, 67760, '\P{ 	IN_Nabataean}', "");
-    Expect(0, 67760, '\P{^ 	IN_Nabataean}', "");
-    Error('\p{ 	In_NABATAEAN/a/}');
-    Error('\P{ 	In_NABATAEAN/a/}');
-    Expect(1, 67759, '\p{	_in_Nabataean}', "");
-    Expect(0, 67759, '\p{^	_in_Nabataean}', "");
-    Expect(0, 67759, '\P{	_in_Nabataean}', "");
-    Expect(1, 67759, '\P{^	_in_Nabataean}', "");
-    Expect(0, 67760, '\p{	_in_Nabataean}', "");
-    Expect(1, 67760, '\p{^	_in_Nabataean}', "");
-    Expect(1, 67760, '\P{	_in_Nabataean}', "");
-    Expect(0, 67760, '\P{^	_in_Nabataean}', "");
-    Error('\p{ :=in_nandinagari}');
-    Error('\P{ :=in_nandinagari}');
+    Expect(1, 67759, '\p{	_In_nabataean}', "");
+    Expect(0, 67759, '\p{^	_In_nabataean}', "");
+    Expect(0, 67759, '\P{	_In_nabataean}', "");
+    Expect(1, 67759, '\P{^	_In_nabataean}', "");
+    Expect(0, 67760, '\p{	_In_nabataean}', "");
+    Expect(1, 67760, '\p{^	_In_nabataean}', "");
+    Expect(1, 67760, '\P{	_In_nabataean}', "");
+    Expect(0, 67760, '\P{^	_In_nabataean}', "");
+    Error('\p{:=In_NABATAEAN}');
+    Error('\P{:=In_NABATAEAN}');
+    Expect(1, 67759, '\p{__In_Nabataean}', "");
+    Expect(0, 67759, '\p{^__In_Nabataean}', "");
+    Expect(0, 67759, '\P{__In_Nabataean}', "");
+    Expect(1, 67759, '\P{^__In_Nabataean}', "");
+    Expect(0, 67760, '\p{__In_Nabataean}', "");
+    Expect(1, 67760, '\p{^__In_Nabataean}', "");
+    Expect(1, 67760, '\P{__In_Nabataean}', "");
+    Expect(0, 67760, '\P{^__In_Nabataean}', "");
+    Error('\p{_In_nag_Mundari:=}');
+    Error('\P{_In_nag_Mundari:=}');
+    Expect(1, 124159, '\p{innagmundari}', "");
+    Expect(0, 124159, '\p{^innagmundari}', "");
+    Expect(0, 124159, '\P{innagmundari}', "");
+    Expect(1, 124159, '\P{^innagmundari}', "");
+    Expect(0, 124160, '\p{innagmundari}', "");
+    Expect(1, 124160, '\p{^innagmundari}', "");
+    Expect(1, 124160, '\P{innagmundari}', "");
+    Expect(0, 124160, '\P{^innagmundari}', "");
+    Expect(1, 124159, '\p{_	IN_Nag_MUNDARI}', "");
+    Expect(0, 124159, '\p{^_	IN_Nag_MUNDARI}', "");
+    Expect(0, 124159, '\P{_	IN_Nag_MUNDARI}', "");
+    Expect(1, 124159, '\P{^_	IN_Nag_MUNDARI}', "");
+    Expect(0, 124160, '\p{_	IN_Nag_MUNDARI}', "");
+    Expect(1, 124160, '\p{^_	IN_Nag_MUNDARI}', "");
+    Expect(1, 124160, '\P{_	IN_Nag_MUNDARI}', "");
+    Expect(0, 124160, '\P{^_	IN_Nag_MUNDARI}', "");
+    Error('\p{/a/In_nag_Mundari}');
+    Error('\P{/a/In_nag_Mundari}');
+    Expect(1, 124159, '\p{		in_nag_Mundari}', "");
+    Expect(0, 124159, '\p{^		in_nag_Mundari}', "");
+    Expect(0, 124159, '\P{		in_nag_Mundari}', "");
+    Expect(1, 124159, '\P{^		in_nag_Mundari}', "");
+    Expect(0, 124160, '\p{		in_nag_Mundari}', "");
+    Expect(1, 124160, '\p{^		in_nag_Mundari}', "");
+    Expect(1, 124160, '\P{		in_nag_Mundari}', "");
+    Expect(0, 124160, '\P{^		in_nag_Mundari}', "");
+    Error('\p{	IN_nandinagari/a/}');
+    Error('\P{	IN_nandinagari/a/}');
     Expect(1, 72191, '\p{innandinagari}', "");
     Expect(0, 72191, '\p{^innandinagari}', "");
     Expect(0, 72191, '\P{innandinagari}', "");
@@ -104371,6 +105441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72192, '\p{^innandinagari}', "");
     Expect(1, 72192, '\P{innandinagari}', "");
     Expect(0, 72192, '\P{^innandinagari}', "");
+    Expect(1, 72191, '\p{ IN_NANDINAGARI}', "");
+    Expect(0, 72191, '\p{^ IN_NANDINAGARI}', "");
+    Expect(0, 72191, '\P{ IN_NANDINAGARI}', "");
+    Expect(1, 72191, '\P{^ IN_NANDINAGARI}', "");
+    Expect(0, 72192, '\p{ IN_NANDINAGARI}', "");
+    Expect(1, 72192, '\p{^ IN_NANDINAGARI}', "");
+    Expect(1, 72192, '\P{ IN_NANDINAGARI}', "");
+    Expect(0, 72192, '\P{^ IN_NANDINAGARI}', "");
+    Error('\p{		In_Nandinagari:=}');
+    Error('\P{		In_Nandinagari:=}');
     Expect(1, 72191, '\p{_	IN_Nandinagari}', "");
     Expect(0, 72191, '\p{^_	IN_Nandinagari}', "");
     Expect(0, 72191, '\P{_	IN_Nandinagari}', "");
@@ -104379,18 +105459,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72192, '\p{^_	IN_Nandinagari}', "");
     Expect(1, 72192, '\P{_	IN_Nandinagari}', "");
     Expect(0, 72192, '\P{^_	IN_Nandinagari}', "");
-    Error('\p{- In_Nandinagari/a/}');
-    Error('\P{- In_Nandinagari/a/}');
-    Expect(1, 72191, '\p{	_IN_NANDINAGARI}', "");
-    Expect(0, 72191, '\p{^	_IN_NANDINAGARI}', "");
-    Expect(0, 72191, '\P{	_IN_NANDINAGARI}', "");
-    Expect(1, 72191, '\P{^	_IN_NANDINAGARI}', "");
-    Expect(0, 72192, '\p{	_IN_NANDINAGARI}', "");
-    Expect(1, 72192, '\p{^	_IN_NANDINAGARI}', "");
-    Expect(1, 72192, '\P{	_IN_NANDINAGARI}', "");
-    Expect(0, 72192, '\P{^	_IN_NANDINAGARI}', "");
-    Error('\p{/a/	-In_New_Tai_lue}');
-    Error('\P{/a/	-In_New_Tai_lue}');
+    Error('\p{:=-_IN_NEW_TAI_LUE}');
+    Error('\P{:=-_IN_NEW_TAI_LUE}');
     Expect(1, 6623, '\p{innewtailue}', "");
     Expect(0, 6623, '\p{^innewtailue}', "");
     Expect(0, 6623, '\P{innewtailue}', "");
@@ -104399,26 +105469,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6624, '\p{^innewtailue}', "");
     Expect(1, 6624, '\P{innewtailue}', "");
     Expect(0, 6624, '\P{^innewtailue}', "");
-    Expect(1, 6623, '\p{-IN_New_Tai_Lue}', "");
-    Expect(0, 6623, '\p{^-IN_New_Tai_Lue}', "");
-    Expect(0, 6623, '\P{-IN_New_Tai_Lue}', "");
-    Expect(1, 6623, '\P{^-IN_New_Tai_Lue}', "");
-    Expect(0, 6624, '\p{-IN_New_Tai_Lue}', "");
-    Expect(1, 6624, '\p{^-IN_New_Tai_Lue}', "");
-    Expect(1, 6624, '\P{-IN_New_Tai_Lue}', "");
-    Expect(0, 6624, '\P{^-IN_New_Tai_Lue}', "");
-    Error('\p{_ in_new_TAI_Lue:=}');
-    Error('\P{_ in_new_TAI_Lue:=}');
-    Expect(1, 6623, '\p{ 	In_New_Tai_lue}', "");
-    Expect(0, 6623, '\p{^ 	In_New_Tai_lue}', "");
-    Expect(0, 6623, '\P{ 	In_New_Tai_lue}', "");
-    Expect(1, 6623, '\P{^ 	In_New_Tai_lue}', "");
-    Expect(0, 6624, '\p{ 	In_New_Tai_lue}', "");
-    Expect(1, 6624, '\p{^ 	In_New_Tai_lue}', "");
-    Expect(1, 6624, '\P{ 	In_New_Tai_lue}', "");
-    Expect(0, 6624, '\P{^ 	In_New_Tai_lue}', "");
-    Error('\p{-/a/IN_Newa}');
-    Error('\P{-/a/IN_Newa}');
+    Expect(1, 6623, '\p{ _IN_New_TAI_LUE}', "");
+    Expect(0, 6623, '\p{^ _IN_New_TAI_LUE}', "");
+    Expect(0, 6623, '\P{ _IN_New_TAI_LUE}', "");
+    Expect(1, 6623, '\P{^ _IN_New_TAI_LUE}', "");
+    Expect(0, 6624, '\p{ _IN_New_TAI_LUE}', "");
+    Expect(1, 6624, '\p{^ _IN_New_TAI_LUE}', "");
+    Expect(1, 6624, '\P{ _IN_New_TAI_LUE}', "");
+    Expect(0, 6624, '\P{^ _IN_New_TAI_LUE}', "");
+    Error('\p{:=_IN_new_TAI_Lue}');
+    Error('\P{:=_IN_new_TAI_Lue}');
+    Expect(1, 6623, '\p{__In_New_Tai_lue}', "");
+    Expect(0, 6623, '\p{^__In_New_Tai_lue}', "");
+    Expect(0, 6623, '\P{__In_New_Tai_lue}', "");
+    Expect(1, 6623, '\P{^__In_New_Tai_lue}', "");
+    Expect(0, 6624, '\p{__In_New_Tai_lue}', "");
+    Expect(1, 6624, '\p{^__In_New_Tai_lue}', "");
+    Expect(1, 6624, '\P{__In_New_Tai_lue}', "");
+    Expect(0, 6624, '\P{^__In_New_Tai_lue}', "");
+    Error('\p{		IN_newa/a/}');
+    Error('\P{		IN_newa/a/}');
     Expect(1, 70783, '\p{innewa}', "");
     Expect(0, 70783, '\p{^innewa}', "");
     Expect(0, 70783, '\P{innewa}', "");
@@ -104427,26 +105497,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70784, '\p{^innewa}', "");
     Expect(1, 70784, '\P{innewa}', "");
     Expect(0, 70784, '\P{^innewa}', "");
-    Expect(1, 70783, '\p{- in_Newa}', "");
-    Expect(0, 70783, '\p{^- in_Newa}', "");
-    Expect(0, 70783, '\P{- in_Newa}', "");
-    Expect(1, 70783, '\P{^- in_Newa}', "");
-    Expect(0, 70784, '\p{- in_Newa}', "");
-    Expect(1, 70784, '\p{^- in_Newa}', "");
-    Expect(1, 70784, '\P{- in_Newa}', "");
-    Expect(0, 70784, '\P{^- in_Newa}', "");
-    Error('\p{:=_-In_NEWA}');
-    Error('\P{:=_-In_NEWA}');
-    Expect(1, 70783, '\p{-	in_Newa}', "");
-    Expect(0, 70783, '\p{^-	in_Newa}', "");
-    Expect(0, 70783, '\P{-	in_Newa}', "");
-    Expect(1, 70783, '\P{^-	in_Newa}', "");
-    Expect(0, 70784, '\p{-	in_Newa}', "");
-    Expect(1, 70784, '\p{^-	in_Newa}', "");
-    Expect(1, 70784, '\P{-	in_Newa}', "");
-    Expect(0, 70784, '\P{^-	in_Newa}', "");
-    Error('\p{_/a/In_nko}');
-    Error('\P{_/a/In_nko}');
+    Expect(1, 70783, '\p{_IN_NEWA}', "");
+    Expect(0, 70783, '\p{^_IN_NEWA}', "");
+    Expect(0, 70783, '\P{_IN_NEWA}', "");
+    Expect(1, 70783, '\P{^_IN_NEWA}', "");
+    Expect(0, 70784, '\p{_IN_NEWA}', "");
+    Expect(1, 70784, '\p{^_IN_NEWA}', "");
+    Expect(1, 70784, '\P{_IN_NEWA}', "");
+    Expect(0, 70784, '\P{^_IN_NEWA}', "");
+    Error('\p{/a/_	In_NEWA}');
+    Error('\P{/a/_	In_NEWA}');
+    Expect(1, 70783, '\p{ IN_Newa}', "");
+    Expect(0, 70783, '\p{^ IN_Newa}', "");
+    Expect(0, 70783, '\P{ IN_Newa}', "");
+    Expect(1, 70783, '\P{^ IN_Newa}', "");
+    Expect(0, 70784, '\p{ IN_Newa}', "");
+    Expect(1, 70784, '\p{^ IN_Newa}', "");
+    Expect(1, 70784, '\P{ IN_Newa}', "");
+    Expect(0, 70784, '\P{^ IN_Newa}', "");
+    Error('\p{/a/IN_NKO}');
+    Error('\P{/a/IN_NKO}');
     Expect(1, 2047, '\p{innko}', "");
     Expect(0, 2047, '\p{^innko}', "");
     Expect(0, 2047, '\P{innko}', "");
@@ -104455,26 +105525,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2048, '\p{^innko}', "");
     Expect(1, 2048, '\P{innko}', "");
     Expect(0, 2048, '\P{^innko}', "");
-    Expect(1, 2047, '\p{		In_NKo}', "");
-    Expect(0, 2047, '\p{^		In_NKo}', "");
-    Expect(0, 2047, '\P{		In_NKo}', "");
-    Expect(1, 2047, '\P{^		In_NKo}', "");
-    Expect(0, 2048, '\p{		In_NKo}', "");
-    Expect(1, 2048, '\p{^		In_NKo}', "");
-    Expect(1, 2048, '\P{		In_NKo}', "");
-    Expect(0, 2048, '\P{^		In_NKo}', "");
-    Error('\p{	:=In_nko}');
-    Error('\P{	:=In_nko}');
-    Expect(1, 2047, '\p{ -in_NKo}', "");
-    Expect(0, 2047, '\p{^ -in_NKo}', "");
-    Expect(0, 2047, '\P{ -in_NKo}', "");
-    Expect(1, 2047, '\P{^ -in_NKo}', "");
-    Expect(0, 2048, '\p{ -in_NKo}', "");
-    Expect(1, 2048, '\p{^ -in_NKo}', "");
-    Expect(1, 2048, '\P{ -in_NKo}', "");
-    Expect(0, 2048, '\P{^ -in_NKo}', "");
-    Error('\p{/a/	In_nushu}');
-    Error('\P{/a/	In_nushu}');
+    Expect(1, 2047, '\p{ IN_nko}', "");
+    Expect(0, 2047, '\p{^ IN_nko}', "");
+    Expect(0, 2047, '\P{ IN_nko}', "");
+    Expect(1, 2047, '\P{^ IN_nko}', "");
+    Expect(0, 2048, '\p{ IN_nko}', "");
+    Expect(1, 2048, '\p{^ IN_nko}', "");
+    Expect(1, 2048, '\P{ IN_nko}', "");
+    Expect(0, 2048, '\P{^ IN_nko}', "");
+    Error('\p{:= In_NKo}');
+    Error('\P{:= In_NKo}');
+    Expect(1, 2047, '\p{ 	In_nko}', "");
+    Expect(0, 2047, '\p{^ 	In_nko}', "");
+    Expect(0, 2047, '\P{ 	In_nko}', "");
+    Expect(1, 2047, '\P{^ 	In_nko}', "");
+    Expect(0, 2048, '\p{ 	In_nko}', "");
+    Expect(1, 2048, '\p{^ 	In_nko}', "");
+    Expect(1, 2048, '\P{ 	In_nko}', "");
+    Expect(0, 2048, '\P{^ 	In_nko}', "");
+    Error('\p{/a/	IN_nushu}');
+    Error('\P{/a/	IN_nushu}');
     Expect(1, 111359, '\p{innushu}', "");
     Expect(0, 111359, '\p{^innushu}', "");
     Expect(0, 111359, '\P{innushu}', "");
@@ -104483,26 +105553,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 111360, '\p{^innushu}', "");
     Expect(1, 111360, '\P{innushu}', "");
     Expect(0, 111360, '\P{^innushu}', "");
-    Expect(1, 111359, '\p{_	In_NUSHU}', "");
-    Expect(0, 111359, '\p{^_	In_NUSHU}', "");
-    Expect(0, 111359, '\P{_	In_NUSHU}', "");
-    Expect(1, 111359, '\P{^_	In_NUSHU}', "");
-    Expect(0, 111360, '\p{_	In_NUSHU}', "");
-    Expect(1, 111360, '\p{^_	In_NUSHU}', "");
-    Expect(1, 111360, '\P{_	In_NUSHU}', "");
-    Expect(0, 111360, '\P{^_	In_NUSHU}', "");
-    Error('\p{--IN_nushu/a/}');
-    Error('\P{--IN_nushu/a/}');
-    Expect(1, 111359, '\p{In_NUSHU}', "");
-    Expect(0, 111359, '\p{^In_NUSHU}', "");
-    Expect(0, 111359, '\P{In_NUSHU}', "");
-    Expect(1, 111359, '\P{^In_NUSHU}', "");
-    Expect(0, 111360, '\p{In_NUSHU}', "");
-    Expect(1, 111360, '\p{^In_NUSHU}', "");
-    Expect(1, 111360, '\P{In_NUSHU}', "");
-    Expect(0, 111360, '\P{^In_NUSHU}', "");
-    Error('\p{ _in_nyiakeng_PUACHUE_HMONG/a/}');
-    Error('\P{ _in_nyiakeng_PUACHUE_HMONG/a/}');
+    Expect(1, 111359, '\p{ In_Nushu}', "");
+    Expect(0, 111359, '\p{^ In_Nushu}', "");
+    Expect(0, 111359, '\P{ In_Nushu}', "");
+    Expect(1, 111359, '\P{^ In_Nushu}', "");
+    Expect(0, 111360, '\p{ In_Nushu}', "");
+    Expect(1, 111360, '\p{^ In_Nushu}', "");
+    Expect(1, 111360, '\P{ In_Nushu}', "");
+    Expect(0, 111360, '\P{^ In_Nushu}', "");
+    Error('\p{/a/_In_NUSHU}');
+    Error('\P{/a/_In_NUSHU}');
+    Expect(1, 111359, '\p{ _IN_NUSHU}', "");
+    Expect(0, 111359, '\p{^ _IN_NUSHU}', "");
+    Expect(0, 111359, '\P{ _IN_NUSHU}', "");
+    Expect(1, 111359, '\P{^ _IN_NUSHU}', "");
+    Expect(0, 111360, '\p{ _IN_NUSHU}', "");
+    Expect(1, 111360, '\p{^ _IN_NUSHU}', "");
+    Expect(1, 111360, '\P{ _IN_NUSHU}', "");
+    Expect(0, 111360, '\P{^ _IN_NUSHU}', "");
+    Error('\p{/a/-	in_Nyiakeng_Puachue_HMONG}');
+    Error('\P{/a/-	in_Nyiakeng_Puachue_HMONG}');
     Expect(1, 123215, '\p{innyiakengpuachuehmong}', "");
     Expect(0, 123215, '\p{^innyiakengpuachuehmong}', "");
     Expect(0, 123215, '\P{innyiakengpuachuehmong}', "");
@@ -104511,26 +105581,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123216, '\p{^innyiakengpuachuehmong}', "");
     Expect(1, 123216, '\P{innyiakengpuachuehmong}', "");
     Expect(0, 123216, '\P{^innyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\p{	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123215, '\p{^	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123215, '\P{	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(1, 123215, '\P{^	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123216, '\p{	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(1, 123216, '\p{^	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(1, 123216, '\P{	 IN_nyiakeng_puachue_Hmong}', "");
-    Expect(0, 123216, '\P{^	 IN_nyiakeng_puachue_Hmong}', "");
-    Error('\p{:=In_nyiakeng_Puachue_hmong}');
-    Error('\P{:=In_nyiakeng_Puachue_hmong}');
-    Expect(1, 123215, '\p{ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\p{^ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\P{ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123215, '\P{^ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\p{ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\p{^ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\P{ -in_nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\P{^ -in_nyiakeng_Puachue_Hmong}', "");
-    Error('\p{:= In_Ogham}');
-    Error('\P{:= In_Ogham}');
+    Expect(1, 123215, '\p{_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123215, '\p{^_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123215, '\P{_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123215, '\P{^_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123216, '\p{_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123216, '\p{^_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123216, '\P{_	In_nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123216, '\P{^_	In_nyiakeng_Puachue_HMONG}', "");
+    Error('\p{	-In_NYIAKENG_Puachue_hmong/a/}');
+    Error('\P{	-In_NYIAKENG_Puachue_hmong/a/}');
+    Expect(1, 123215, '\p{__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123215, '\p{^__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123215, '\P{__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(1, 123215, '\P{^__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123216, '\p{__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(1, 123216, '\p{^__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(1, 123216, '\P{__in_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123216, '\P{^__in_NYIAKENG_Puachue_hmong}', "");
+    Error('\p{--in_Ogham:=}');
+    Error('\P{--in_Ogham:=}');
     Expect(1, 5791, '\p{inogham}', "");
     Expect(0, 5791, '\p{^inogham}', "");
     Expect(0, 5791, '\P{inogham}', "");
@@ -104539,26 +105609,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5792, '\p{^inogham}', "");
     Expect(1, 5792, '\P{inogham}', "");
     Expect(0, 5792, '\P{^inogham}', "");
-    Expect(1, 5791, '\p{--In_ogham}', "");
-    Expect(0, 5791, '\p{^--In_ogham}', "");
-    Expect(0, 5791, '\P{--In_ogham}', "");
-    Expect(1, 5791, '\P{^--In_ogham}', "");
-    Expect(0, 5792, '\p{--In_ogham}', "");
-    Expect(1, 5792, '\p{^--In_ogham}', "");
-    Expect(1, 5792, '\P{--In_ogham}', "");
-    Expect(0, 5792, '\P{^--In_ogham}', "");
-    Error('\p{ 	in_Ogham:=}');
-    Error('\P{ 	in_Ogham:=}');
-    Expect(1, 5791, '\p{ -In_Ogham}', "");
-    Expect(0, 5791, '\p{^ -In_Ogham}', "");
-    Expect(0, 5791, '\P{ -In_Ogham}', "");
-    Expect(1, 5791, '\P{^ -In_Ogham}', "");
-    Expect(0, 5792, '\p{ -In_Ogham}', "");
-    Expect(1, 5792, '\p{^ -In_Ogham}', "");
-    Expect(1, 5792, '\P{ -In_Ogham}', "");
-    Expect(0, 5792, '\P{^ -In_Ogham}', "");
-    Error('\p{-:=In_ol_CHIKI}');
-    Error('\P{-:=In_ol_CHIKI}');
+    Expect(1, 5791, '\p{	in_Ogham}', "");
+    Expect(0, 5791, '\p{^	in_Ogham}', "");
+    Expect(0, 5791, '\P{	in_Ogham}', "");
+    Expect(1, 5791, '\P{^	in_Ogham}', "");
+    Expect(0, 5792, '\p{	in_Ogham}', "");
+    Expect(1, 5792, '\p{^	in_Ogham}', "");
+    Expect(1, 5792, '\P{	in_Ogham}', "");
+    Expect(0, 5792, '\P{^	in_Ogham}', "");
+    Error('\p{/a/	-IN_Ogham}');
+    Error('\P{/a/	-IN_Ogham}');
+    Expect(1, 5791, '\p{_In_Ogham}', "");
+    Expect(0, 5791, '\p{^_In_Ogham}', "");
+    Expect(0, 5791, '\P{_In_Ogham}', "");
+    Expect(1, 5791, '\P{^_In_Ogham}', "");
+    Expect(0, 5792, '\p{_In_Ogham}', "");
+    Expect(1, 5792, '\p{^_In_Ogham}', "");
+    Expect(1, 5792, '\P{_In_Ogham}', "");
+    Expect(0, 5792, '\P{^_In_Ogham}', "");
+    Error('\p{ -IN_Ol_chiki:=}');
+    Error('\P{ -IN_Ol_chiki:=}');
     Expect(1, 7295, '\p{inolchiki}', "");
     Expect(0, 7295, '\p{^inolchiki}', "");
     Expect(0, 7295, '\P{inolchiki}', "");
@@ -104567,26 +105637,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7296, '\p{^inolchiki}', "");
     Expect(1, 7296, '\P{inolchiki}', "");
     Expect(0, 7296, '\P{^inolchiki}', "");
-    Expect(1, 7295, '\p{	In_OL_Chiki}', "");
-    Expect(0, 7295, '\p{^	In_OL_Chiki}', "");
-    Expect(0, 7295, '\P{	In_OL_Chiki}', "");
-    Expect(1, 7295, '\P{^	In_OL_Chiki}', "");
-    Expect(0, 7296, '\p{	In_OL_Chiki}', "");
-    Expect(1, 7296, '\p{^	In_OL_Chiki}', "");
-    Expect(1, 7296, '\P{	In_OL_Chiki}', "");
-    Expect(0, 7296, '\P{^	In_OL_Chiki}', "");
-    Error('\p{ :=In_Ol_chiki}');
-    Error('\P{ :=In_Ol_chiki}');
-    Expect(1, 7295, '\p{_-In_OL_Chiki}', "");
-    Expect(0, 7295, '\p{^_-In_OL_Chiki}', "");
-    Expect(0, 7295, '\P{_-In_OL_Chiki}', "");
-    Expect(1, 7295, '\P{^_-In_OL_Chiki}', "");
-    Expect(0, 7296, '\p{_-In_OL_Chiki}', "");
-    Expect(1, 7296, '\p{^_-In_OL_Chiki}', "");
-    Expect(1, 7296, '\P{_-In_OL_Chiki}', "");
-    Expect(0, 7296, '\P{^_-In_OL_Chiki}', "");
-    Error('\p{-In_Old_HUNGARIAN:=}');
-    Error('\P{-In_Old_HUNGARIAN:=}');
+    Expect(1, 7295, '\p{ In_Ol_Chiki}', "");
+    Expect(0, 7295, '\p{^ In_Ol_Chiki}', "");
+    Expect(0, 7295, '\P{ In_Ol_Chiki}', "");
+    Expect(1, 7295, '\P{^ In_Ol_Chiki}', "");
+    Expect(0, 7296, '\p{ In_Ol_Chiki}', "");
+    Expect(1, 7296, '\p{^ In_Ol_Chiki}', "");
+    Expect(1, 7296, '\P{ In_Ol_Chiki}', "");
+    Expect(0, 7296, '\P{^ In_Ol_Chiki}', "");
+    Error('\p{	IN_Ol_CHIKI:=}');
+    Error('\P{	IN_Ol_CHIKI:=}');
+    Expect(1, 7295, '\p{	In_ol_Chiki}', "");
+    Expect(0, 7295, '\p{^	In_ol_Chiki}', "");
+    Expect(0, 7295, '\P{	In_ol_Chiki}', "");
+    Expect(1, 7295, '\P{^	In_ol_Chiki}', "");
+    Expect(0, 7296, '\p{	In_ol_Chiki}', "");
+    Expect(1, 7296, '\p{^	In_ol_Chiki}', "");
+    Expect(1, 7296, '\P{	In_ol_Chiki}', "");
+    Expect(0, 7296, '\P{^	In_ol_Chiki}', "");
+    Error('\p{:=-_IN_Old_Hungarian}');
+    Error('\P{:=-_IN_Old_Hungarian}');
     Expect(1, 68863, '\p{inoldhungarian}', "");
     Expect(0, 68863, '\p{^inoldhungarian}', "");
     Expect(0, 68863, '\P{inoldhungarian}', "");
@@ -104595,16 +105665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68864, '\p{^inoldhungarian}', "");
     Expect(1, 68864, '\P{inoldhungarian}', "");
     Expect(0, 68864, '\P{^inoldhungarian}', "");
-    Expect(1, 68863, '\p{  In_OLD_hungarian}', "");
-    Expect(0, 68863, '\p{^  In_OLD_hungarian}', "");
-    Expect(0, 68863, '\P{  In_OLD_hungarian}', "");
-    Expect(1, 68863, '\P{^  In_OLD_hungarian}', "");
-    Expect(0, 68864, '\p{  In_OLD_hungarian}', "");
-    Expect(1, 68864, '\p{^  In_OLD_hungarian}', "");
-    Expect(1, 68864, '\P{  In_OLD_hungarian}', "");
-    Expect(0, 68864, '\P{^  In_OLD_hungarian}', "");
-    Error('\p{ _In_OLD_HUNGARIAN:=}');
-    Error('\P{ _In_OLD_HUNGARIAN:=}');
+    Expect(1, 68863, '\p{-In_OLD_Hungarian}', "");
+    Expect(0, 68863, '\p{^-In_OLD_Hungarian}', "");
+    Expect(0, 68863, '\P{-In_OLD_Hungarian}', "");
+    Expect(1, 68863, '\P{^-In_OLD_Hungarian}', "");
+    Expect(0, 68864, '\p{-In_OLD_Hungarian}', "");
+    Expect(1, 68864, '\p{^-In_OLD_Hungarian}', "");
+    Expect(1, 68864, '\P{-In_OLD_Hungarian}', "");
+    Expect(0, 68864, '\P{^-In_OLD_Hungarian}', "");
+    Error('\p{	/a/IN_Old_hungarian}');
+    Error('\P{	/a/IN_Old_hungarian}');
     Expect(1, 68863, '\p{	_In_Old_Hungarian}', "");
     Expect(0, 68863, '\p{^	_In_Old_Hungarian}', "");
     Expect(0, 68863, '\P{	_In_Old_Hungarian}', "");
@@ -104613,8 +105683,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68864, '\p{^	_In_Old_Hungarian}', "");
     Expect(1, 68864, '\P{	_In_Old_Hungarian}', "");
     Expect(0, 68864, '\P{^	_In_Old_Hungarian}', "");
-    Error('\p{	 In_Old_italic/a/}');
-    Error('\P{	 In_Old_italic/a/}');
+    Error('\p{ IN_Old_italic/a/}');
+    Error('\P{ IN_Old_italic/a/}');
     Expect(1, 66351, '\p{inolditalic}', "");
     Expect(0, 66351, '\p{^inolditalic}', "");
     Expect(0, 66351, '\P{inolditalic}', "");
@@ -104623,26 +105693,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66352, '\p{^inolditalic}', "");
     Expect(1, 66352, '\P{inolditalic}', "");
     Expect(0, 66352, '\P{^inolditalic}', "");
-    Expect(1, 66351, '\p{_ In_Old_italic}', "");
-    Expect(0, 66351, '\p{^_ In_Old_italic}', "");
-    Expect(0, 66351, '\P{_ In_Old_italic}', "");
-    Expect(1, 66351, '\P{^_ In_Old_italic}', "");
-    Expect(0, 66352, '\p{_ In_Old_italic}', "");
-    Expect(1, 66352, '\p{^_ In_Old_italic}', "");
-    Expect(1, 66352, '\P{_ In_Old_italic}', "");
-    Expect(0, 66352, '\P{^_ In_Old_italic}', "");
-    Error('\p{	_in_old_italic:=}');
-    Error('\P{	_in_old_italic:=}');
-    Expect(1, 66351, '\p{ 	in_OLD_italic}', "");
-    Expect(0, 66351, '\p{^ 	in_OLD_italic}', "");
-    Expect(0, 66351, '\P{ 	in_OLD_italic}', "");
-    Expect(1, 66351, '\P{^ 	in_OLD_italic}', "");
-    Expect(0, 66352, '\p{ 	in_OLD_italic}', "");
-    Expect(1, 66352, '\p{^ 	in_OLD_italic}', "");
-    Expect(1, 66352, '\P{ 	in_OLD_italic}', "");
-    Expect(0, 66352, '\P{^ 	in_OLD_italic}', "");
-    Error('\p{_in_Old_NORTH_Arabian/a/}');
-    Error('\P{_in_Old_NORTH_Arabian/a/}');
+    Expect(1, 66351, '\p{		in_OLD_italic}', "");
+    Expect(0, 66351, '\p{^		in_OLD_italic}', "");
+    Expect(0, 66351, '\P{		in_OLD_italic}', "");
+    Expect(1, 66351, '\P{^		in_OLD_italic}', "");
+    Expect(0, 66352, '\p{		in_OLD_italic}', "");
+    Expect(1, 66352, '\p{^		in_OLD_italic}', "");
+    Expect(1, 66352, '\P{		in_OLD_italic}', "");
+    Expect(0, 66352, '\P{^		in_OLD_italic}', "");
+    Error('\p{/a/- IN_old_italic}');
+    Error('\P{/a/- IN_old_italic}');
+    Expect(1, 66351, '\p{-_in_OLD_Italic}', "");
+    Expect(0, 66351, '\p{^-_in_OLD_Italic}', "");
+    Expect(0, 66351, '\P{-_in_OLD_Italic}', "");
+    Expect(1, 66351, '\P{^-_in_OLD_Italic}', "");
+    Expect(0, 66352, '\p{-_in_OLD_Italic}', "");
+    Expect(1, 66352, '\p{^-_in_OLD_Italic}', "");
+    Expect(1, 66352, '\P{-_in_OLD_Italic}', "");
+    Expect(0, 66352, '\P{^-_in_OLD_Italic}', "");
+    Error('\p{-/a/In_Old_North_Arabian}');
+    Error('\P{-/a/In_Old_North_Arabian}');
     Expect(1, 68255, '\p{inoldnortharabian}', "");
     Expect(0, 68255, '\p{^inoldnortharabian}', "");
     Expect(0, 68255, '\P{inoldnortharabian}', "");
@@ -104651,26 +105721,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68256, '\p{^inoldnortharabian}', "");
     Expect(1, 68256, '\P{inoldnortharabian}', "");
     Expect(0, 68256, '\P{^inoldnortharabian}', "");
-    Expect(1, 68255, '\p{	 IN_Old_north_Arabian}', "");
-    Expect(0, 68255, '\p{^	 IN_Old_north_Arabian}', "");
-    Expect(0, 68255, '\P{	 IN_Old_north_Arabian}', "");
-    Expect(1, 68255, '\P{^	 IN_Old_north_Arabian}', "");
-    Expect(0, 68256, '\p{	 IN_Old_north_Arabian}', "");
-    Expect(1, 68256, '\p{^	 IN_Old_north_Arabian}', "");
-    Expect(1, 68256, '\P{	 IN_Old_north_Arabian}', "");
-    Expect(0, 68256, '\P{^	 IN_Old_north_Arabian}', "");
-    Error('\p{ :=In_old_North_ARABIAN}');
-    Error('\P{ :=In_old_North_ARABIAN}');
-    Expect(1, 68255, '\p{ In_Old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\p{^ In_Old_NORTH_Arabian}', "");
-    Expect(0, 68255, '\P{ In_Old_NORTH_Arabian}', "");
-    Expect(1, 68255, '\P{^ In_Old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\p{ In_Old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\p{^ In_Old_NORTH_Arabian}', "");
-    Expect(1, 68256, '\P{ In_Old_NORTH_Arabian}', "");
-    Expect(0, 68256, '\P{^ In_Old_NORTH_Arabian}', "");
-    Error('\p{-/a/In_OLD_PERMIC}');
-    Error('\P{-/a/In_OLD_PERMIC}');
+    Expect(1, 68255, '\p{ In_Old_North_Arabian}', "");
+    Expect(0, 68255, '\p{^ In_Old_North_Arabian}', "");
+    Expect(0, 68255, '\P{ In_Old_North_Arabian}', "");
+    Expect(1, 68255, '\P{^ In_Old_North_Arabian}', "");
+    Expect(0, 68256, '\p{ In_Old_North_Arabian}', "");
+    Expect(1, 68256, '\p{^ In_Old_North_Arabian}', "");
+    Expect(1, 68256, '\P{ In_Old_North_Arabian}', "");
+    Expect(0, 68256, '\P{^ In_Old_North_Arabian}', "");
+    Error('\p{_In_OLD_North_Arabian:=}');
+    Error('\P{_In_OLD_North_Arabian:=}');
+    Expect(1, 68255, '\p{	-In_old_North_Arabian}', "");
+    Expect(0, 68255, '\p{^	-In_old_North_Arabian}', "");
+    Expect(0, 68255, '\P{	-In_old_North_Arabian}', "");
+    Expect(1, 68255, '\P{^	-In_old_North_Arabian}', "");
+    Expect(0, 68256, '\p{	-In_old_North_Arabian}', "");
+    Expect(1, 68256, '\p{^	-In_old_North_Arabian}', "");
+    Expect(1, 68256, '\P{	-In_old_North_Arabian}', "");
+    Expect(0, 68256, '\P{^	-In_old_North_Arabian}', "");
+    Error('\p{-	in_Old_Permic:=}');
+    Error('\P{-	in_Old_Permic:=}');
     Expect(1, 66431, '\p{inoldpermic}', "");
     Expect(0, 66431, '\p{^inoldpermic}', "");
     Expect(0, 66431, '\P{inoldpermic}', "");
@@ -104679,26 +105749,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66432, '\p{^inoldpermic}', "");
     Expect(1, 66432, '\P{inoldpermic}', "");
     Expect(0, 66432, '\P{^inoldpermic}', "");
-    Expect(1, 66431, '\p{ -IN_Old_PERMIC}', "");
-    Expect(0, 66431, '\p{^ -IN_Old_PERMIC}', "");
-    Expect(0, 66431, '\P{ -IN_Old_PERMIC}', "");
-    Expect(1, 66431, '\P{^ -IN_Old_PERMIC}', "");
-    Expect(0, 66432, '\p{ -IN_Old_PERMIC}', "");
-    Expect(1, 66432, '\p{^ -IN_Old_PERMIC}', "");
-    Expect(1, 66432, '\P{ -IN_Old_PERMIC}', "");
-    Expect(0, 66432, '\P{^ -IN_Old_PERMIC}', "");
-    Error('\p{-	In_OLD_Permic:=}');
-    Error('\P{-	In_OLD_Permic:=}');
-    Expect(1, 66431, '\p{--In_OLD_permic}', "");
-    Expect(0, 66431, '\p{^--In_OLD_permic}', "");
-    Expect(0, 66431, '\P{--In_OLD_permic}', "");
-    Expect(1, 66431, '\P{^--In_OLD_permic}', "");
-    Expect(0, 66432, '\p{--In_OLD_permic}', "");
-    Expect(1, 66432, '\p{^--In_OLD_permic}', "");
-    Expect(1, 66432, '\P{--In_OLD_permic}', "");
-    Expect(0, 66432, '\P{^--In_OLD_permic}', "");
-    Error('\p{		In_OLD_PERSIAN:=}');
-    Error('\P{		In_OLD_PERSIAN:=}');
+    Expect(1, 66431, '\p{__In_OLD_Permic}', "");
+    Expect(0, 66431, '\p{^__In_OLD_Permic}', "");
+    Expect(0, 66431, '\P{__In_OLD_Permic}', "");
+    Expect(1, 66431, '\P{^__In_OLD_Permic}', "");
+    Expect(0, 66432, '\p{__In_OLD_Permic}', "");
+    Expect(1, 66432, '\p{^__In_OLD_Permic}', "");
+    Expect(1, 66432, '\P{__In_OLD_Permic}', "");
+    Expect(0, 66432, '\P{^__In_OLD_Permic}', "");
+    Error('\p{-	in_Old_PERMIC/a/}');
+    Error('\P{-	in_Old_PERMIC/a/}');
+    Expect(1, 66431, '\p{In_OLD_PERMIC}', "");
+    Expect(0, 66431, '\p{^In_OLD_PERMIC}', "");
+    Expect(0, 66431, '\P{In_OLD_PERMIC}', "");
+    Expect(1, 66431, '\P{^In_OLD_PERMIC}', "");
+    Expect(0, 66432, '\p{In_OLD_PERMIC}', "");
+    Expect(1, 66432, '\p{^In_OLD_PERMIC}', "");
+    Expect(1, 66432, '\P{In_OLD_PERMIC}', "");
+    Expect(0, 66432, '\P{^In_OLD_PERMIC}', "");
+    Error('\p{_/a/in_Old_PERSIAN}');
+    Error('\P{_/a/in_Old_PERSIAN}');
     Expect(1, 66527, '\p{inoldpersian}', "");
     Expect(0, 66527, '\p{^inoldpersian}', "");
     Expect(0, 66527, '\P{inoldpersian}', "");
@@ -104707,26 +105777,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66528, '\p{^inoldpersian}', "");
     Expect(1, 66528, '\P{inoldpersian}', "");
     Expect(0, 66528, '\P{^inoldpersian}', "");
-    Expect(1, 66527, '\p{ in_old_PERSIAN}', "");
-    Expect(0, 66527, '\p{^ in_old_PERSIAN}', "");
-    Expect(0, 66527, '\P{ in_old_PERSIAN}', "");
-    Expect(1, 66527, '\P{^ in_old_PERSIAN}', "");
-    Expect(0, 66528, '\p{ in_old_PERSIAN}', "");
-    Expect(1, 66528, '\p{^ in_old_PERSIAN}', "");
-    Expect(1, 66528, '\P{ in_old_PERSIAN}', "");
-    Expect(0, 66528, '\P{^ in_old_PERSIAN}', "");
-    Error('\p{_/a/In_old_Persian}');
-    Error('\P{_/a/In_old_Persian}');
-    Expect(1, 66527, '\p{_In_old_Persian}', "");
-    Expect(0, 66527, '\p{^_In_old_Persian}', "");
-    Expect(0, 66527, '\P{_In_old_Persian}', "");
-    Expect(1, 66527, '\P{^_In_old_Persian}', "");
-    Expect(0, 66528, '\p{_In_old_Persian}', "");
-    Expect(1, 66528, '\p{^_In_old_Persian}', "");
-    Expect(1, 66528, '\P{_In_old_Persian}', "");
-    Expect(0, 66528, '\P{^_In_old_Persian}', "");
-    Error('\p{/a/	 In_Old_Sogdian}');
-    Error('\P{/a/	 In_Old_Sogdian}');
+    Expect(1, 66527, '\p{	IN_OLD_persian}', "");
+    Expect(0, 66527, '\p{^	IN_OLD_persian}', "");
+    Expect(0, 66527, '\P{	IN_OLD_persian}', "");
+    Expect(1, 66527, '\P{^	IN_OLD_persian}', "");
+    Expect(0, 66528, '\p{	IN_OLD_persian}', "");
+    Expect(1, 66528, '\p{^	IN_OLD_persian}', "");
+    Expect(1, 66528, '\P{	IN_OLD_persian}', "");
+    Expect(0, 66528, '\P{^	IN_OLD_persian}', "");
+    Error('\p{:=-In_old_PERSIAN}');
+    Error('\P{:=-In_old_PERSIAN}');
+    Expect(1, 66527, '\p{-	In_OLD_Persian}', "");
+    Expect(0, 66527, '\p{^-	In_OLD_Persian}', "");
+    Expect(0, 66527, '\P{-	In_OLD_Persian}', "");
+    Expect(1, 66527, '\P{^-	In_OLD_Persian}', "");
+    Expect(0, 66528, '\p{-	In_OLD_Persian}', "");
+    Expect(1, 66528, '\p{^-	In_OLD_Persian}', "");
+    Expect(1, 66528, '\P{-	In_OLD_Persian}', "");
+    Expect(0, 66528, '\P{^-	In_OLD_Persian}', "");
+    Error('\p{:= _IN_old_Sogdian}');
+    Error('\P{:= _IN_old_Sogdian}');
     Expect(1, 69423, '\p{inoldsogdian}', "");
     Expect(0, 69423, '\p{^inoldsogdian}', "");
     Expect(0, 69423, '\P{inoldsogdian}', "");
@@ -104735,26 +105805,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69424, '\p{^inoldsogdian}', "");
     Expect(1, 69424, '\P{inoldsogdian}', "");
     Expect(0, 69424, '\P{^inoldsogdian}', "");
-    Expect(1, 69423, '\p{	_In_Old_Sogdian}', "");
-    Expect(0, 69423, '\p{^	_In_Old_Sogdian}', "");
-    Expect(0, 69423, '\P{	_In_Old_Sogdian}', "");
-    Expect(1, 69423, '\P{^	_In_Old_Sogdian}', "");
-    Expect(0, 69424, '\p{	_In_Old_Sogdian}', "");
-    Expect(1, 69424, '\p{^	_In_Old_Sogdian}', "");
-    Expect(1, 69424, '\P{	_In_Old_Sogdian}', "");
-    Expect(0, 69424, '\P{^	_In_Old_Sogdian}', "");
-    Error('\p{:=		In_Old_Sogdian}');
-    Error('\P{:=		In_Old_Sogdian}');
-    Expect(1, 69423, '\p{_	IN_OLD_sogdian}', "");
-    Expect(0, 69423, '\p{^_	IN_OLD_sogdian}', "");
-    Expect(0, 69423, '\P{_	IN_OLD_sogdian}', "");
-    Expect(1, 69423, '\P{^_	IN_OLD_sogdian}', "");
-    Expect(0, 69424, '\p{_	IN_OLD_sogdian}', "");
-    Expect(1, 69424, '\p{^_	IN_OLD_sogdian}', "");
-    Expect(1, 69424, '\P{_	IN_OLD_sogdian}', "");
-    Expect(0, 69424, '\P{^_	IN_OLD_sogdian}', "");
-    Error('\p{/a/-In_OLD_South_arabian}');
-    Error('\P{/a/-In_OLD_South_arabian}');
+    Expect(1, 69423, '\p{_-In_Old_sogdian}', "");
+    Expect(0, 69423, '\p{^_-In_Old_sogdian}', "");
+    Expect(0, 69423, '\P{_-In_Old_sogdian}', "");
+    Expect(1, 69423, '\P{^_-In_Old_sogdian}', "");
+    Expect(0, 69424, '\p{_-In_Old_sogdian}', "");
+    Expect(1, 69424, '\p{^_-In_Old_sogdian}', "");
+    Expect(1, 69424, '\P{_-In_Old_sogdian}', "");
+    Expect(0, 69424, '\P{^_-In_Old_sogdian}', "");
+    Error('\p{:=in_Old_sogdian}');
+    Error('\P{:=in_Old_sogdian}');
+    Expect(1, 69423, '\p{__In_old_sogdian}', "");
+    Expect(0, 69423, '\p{^__In_old_sogdian}', "");
+    Expect(0, 69423, '\P{__In_old_sogdian}', "");
+    Expect(1, 69423, '\P{^__In_old_sogdian}', "");
+    Expect(0, 69424, '\p{__In_old_sogdian}', "");
+    Expect(1, 69424, '\p{^__In_old_sogdian}', "");
+    Expect(1, 69424, '\P{__In_old_sogdian}', "");
+    Expect(0, 69424, '\P{^__In_old_sogdian}', "");
+    Error('\p{-In_Old_south_Arabian:=}');
+    Error('\P{-In_Old_south_Arabian:=}');
     Expect(1, 68223, '\p{inoldsoutharabian}', "");
     Expect(0, 68223, '\p{^inoldsoutharabian}', "");
     Expect(0, 68223, '\P{inoldsoutharabian}', "");
@@ -104763,26 +105833,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68224, '\p{^inoldsoutharabian}', "");
     Expect(1, 68224, '\P{inoldsoutharabian}', "");
     Expect(0, 68224, '\P{^inoldsoutharabian}', "");
-    Expect(1, 68223, '\p{ -In_Old_SOUTH_Arabian}', "");
-    Expect(0, 68223, '\p{^ -In_Old_SOUTH_Arabian}', "");
-    Expect(0, 68223, '\P{ -In_Old_SOUTH_Arabian}', "");
-    Expect(1, 68223, '\P{^ -In_Old_SOUTH_Arabian}', "");
-    Expect(0, 68224, '\p{ -In_Old_SOUTH_Arabian}', "");
-    Expect(1, 68224, '\p{^ -In_Old_SOUTH_Arabian}', "");
-    Expect(1, 68224, '\P{ -In_Old_SOUTH_Arabian}', "");
-    Expect(0, 68224, '\P{^ -In_Old_SOUTH_Arabian}', "");
-    Error('\p{_/a/In_Old_South_Arabian}');
-    Error('\P{_/a/In_Old_South_Arabian}');
-    Expect(1, 68223, '\p{- In_old_south_ARABIAN}', "");
-    Expect(0, 68223, '\p{^- In_old_south_ARABIAN}', "");
-    Expect(0, 68223, '\P{- In_old_south_ARABIAN}', "");
-    Expect(1, 68223, '\P{^- In_old_south_ARABIAN}', "");
-    Expect(0, 68224, '\p{- In_old_south_ARABIAN}', "");
-    Expect(1, 68224, '\p{^- In_old_south_ARABIAN}', "");
-    Expect(1, 68224, '\P{- In_old_south_ARABIAN}', "");
-    Expect(0, 68224, '\P{^- In_old_south_ARABIAN}', "");
-    Error('\p{--In_Old_turkic:=}');
-    Error('\P{--In_Old_turkic:=}');
+    Expect(1, 68223, '\p{_-in_Old_South_Arabian}', "");
+    Expect(0, 68223, '\p{^_-in_Old_South_Arabian}', "");
+    Expect(0, 68223, '\P{_-in_Old_South_Arabian}', "");
+    Expect(1, 68223, '\P{^_-in_Old_South_Arabian}', "");
+    Expect(0, 68224, '\p{_-in_Old_South_Arabian}', "");
+    Expect(1, 68224, '\p{^_-in_Old_South_Arabian}', "");
+    Expect(1, 68224, '\P{_-in_Old_South_Arabian}', "");
+    Expect(0, 68224, '\P{^_-in_Old_South_Arabian}', "");
+    Error('\p{/a/	 In_old_South_Arabian}');
+    Error('\P{/a/	 In_old_South_Arabian}');
+    Expect(1, 68223, '\p{-In_Old_South_arabian}', "");
+    Expect(0, 68223, '\p{^-In_Old_South_arabian}', "");
+    Expect(0, 68223, '\P{-In_Old_South_arabian}', "");
+    Expect(1, 68223, '\P{^-In_Old_South_arabian}', "");
+    Expect(0, 68224, '\p{-In_Old_South_arabian}', "");
+    Expect(1, 68224, '\p{^-In_Old_South_arabian}', "");
+    Expect(1, 68224, '\P{-In_Old_South_arabian}', "");
+    Expect(0, 68224, '\P{^-In_Old_South_arabian}', "");
+    Error('\p{ 	in_old_turkic/a/}');
+    Error('\P{ 	in_old_turkic/a/}');
     Expect(1, 68687, '\p{inoldturkic}', "");
     Expect(0, 68687, '\p{^inoldturkic}', "");
     Expect(0, 68687, '\P{inoldturkic}', "");
@@ -104791,26 +105861,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68688, '\p{^inoldturkic}', "");
     Expect(1, 68688, '\P{inoldturkic}', "");
     Expect(0, 68688, '\P{^inoldturkic}', "");
-    Expect(1, 68687, '\p{-In_OLD_Turkic}', "");
-    Expect(0, 68687, '\p{^-In_OLD_Turkic}', "");
-    Expect(0, 68687, '\P{-In_OLD_Turkic}', "");
-    Expect(1, 68687, '\P{^-In_OLD_Turkic}', "");
-    Expect(0, 68688, '\p{-In_OLD_Turkic}', "");
-    Expect(1, 68688, '\p{^-In_OLD_Turkic}', "");
-    Expect(1, 68688, '\P{-In_OLD_Turkic}', "");
-    Expect(0, 68688, '\P{^-In_OLD_Turkic}', "");
-    Error('\p{ :=in_OLD_Turkic}');
-    Error('\P{ :=in_OLD_Turkic}');
-    Expect(1, 68687, '\p{-_In_old_Turkic}', "");
-    Expect(0, 68687, '\p{^-_In_old_Turkic}', "");
-    Expect(0, 68687, '\P{-_In_old_Turkic}', "");
-    Expect(1, 68687, '\P{^-_In_old_Turkic}', "");
-    Expect(0, 68688, '\p{-_In_old_Turkic}', "");
-    Expect(1, 68688, '\p{^-_In_old_Turkic}', "");
-    Expect(1, 68688, '\P{-_In_old_Turkic}', "");
-    Expect(0, 68688, '\P{^-_In_old_Turkic}', "");
-    Error('\p{:=	-in_Old_uyghur}');
-    Error('\P{:=	-in_Old_uyghur}');
+    Expect(1, 68687, '\p{-	IN_Old_Turkic}', "");
+    Expect(0, 68687, '\p{^-	IN_Old_Turkic}', "");
+    Expect(0, 68687, '\P{-	IN_Old_Turkic}', "");
+    Expect(1, 68687, '\P{^-	IN_Old_Turkic}', "");
+    Expect(0, 68688, '\p{-	IN_Old_Turkic}', "");
+    Expect(1, 68688, '\p{^-	IN_Old_Turkic}', "");
+    Expect(1, 68688, '\P{-	IN_Old_Turkic}', "");
+    Expect(0, 68688, '\P{^-	IN_Old_Turkic}', "");
+    Error('\p{ in_OLD_Turkic:=}');
+    Error('\P{ in_OLD_Turkic:=}');
+    Expect(1, 68687, '\p{-in_old_TURKIC}', "");
+    Expect(0, 68687, '\p{^-in_old_TURKIC}', "");
+    Expect(0, 68687, '\P{-in_old_TURKIC}', "");
+    Expect(1, 68687, '\P{^-in_old_TURKIC}', "");
+    Expect(0, 68688, '\p{-in_old_TURKIC}', "");
+    Expect(1, 68688, '\p{^-in_old_TURKIC}', "");
+    Expect(1, 68688, '\P{-in_old_TURKIC}', "");
+    Expect(0, 68688, '\P{^-in_old_TURKIC}', "");
+    Error('\p{-:=IN_Old_uyghur}');
+    Error('\P{-:=IN_Old_uyghur}');
     Expect(1, 69551, '\p{inolduyghur}', "");
     Expect(0, 69551, '\p{^inolduyghur}', "");
     Expect(0, 69551, '\P{inolduyghur}', "");
@@ -104819,26 +105889,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69552, '\p{^inolduyghur}', "");
     Expect(1, 69552, '\P{inolduyghur}', "");
     Expect(0, 69552, '\P{^inolduyghur}', "");
-    Expect(1, 69551, '\p{ _In_OLD_UYGHUR}', "");
-    Expect(0, 69551, '\p{^ _In_OLD_UYGHUR}', "");
-    Expect(0, 69551, '\P{ _In_OLD_UYGHUR}', "");
-    Expect(1, 69551, '\P{^ _In_OLD_UYGHUR}', "");
-    Expect(0, 69552, '\p{ _In_OLD_UYGHUR}', "");
-    Expect(1, 69552, '\p{^ _In_OLD_UYGHUR}', "");
-    Expect(1, 69552, '\P{ _In_OLD_UYGHUR}', "");
-    Expect(0, 69552, '\P{^ _In_OLD_UYGHUR}', "");
-    Error('\p{:=- In_old_UYGHUR}');
-    Error('\P{:=- In_old_UYGHUR}');
-    Expect(1, 69551, '\p{	In_OLD_UYGHUR}', "");
-    Expect(0, 69551, '\p{^	In_OLD_UYGHUR}', "");
-    Expect(0, 69551, '\P{	In_OLD_UYGHUR}', "");
-    Expect(1, 69551, '\P{^	In_OLD_UYGHUR}', "");
-    Expect(0, 69552, '\p{	In_OLD_UYGHUR}', "");
-    Expect(1, 69552, '\p{^	In_OLD_UYGHUR}', "");
-    Expect(1, 69552, '\P{	In_OLD_UYGHUR}', "");
-    Expect(0, 69552, '\P{^	In_OLD_UYGHUR}', "");
-    Error('\p{:=_in_oriya}');
-    Error('\P{:=_in_oriya}');
+    Expect(1, 69551, '\p{ _In_Old_uyghur}', "");
+    Expect(0, 69551, '\p{^ _In_Old_uyghur}', "");
+    Expect(0, 69551, '\P{ _In_Old_uyghur}', "");
+    Expect(1, 69551, '\P{^ _In_Old_uyghur}', "");
+    Expect(0, 69552, '\p{ _In_Old_uyghur}', "");
+    Expect(1, 69552, '\p{^ _In_Old_uyghur}', "");
+    Expect(1, 69552, '\P{ _In_Old_uyghur}', "");
+    Expect(0, 69552, '\P{^ _In_Old_uyghur}', "");
+    Error('\p{	 in_old_uyghur:=}');
+    Error('\P{	 in_old_uyghur:=}');
+    Expect(1, 69551, '\p{-_In_Old_uyghur}', "");
+    Expect(0, 69551, '\p{^-_In_Old_uyghur}', "");
+    Expect(0, 69551, '\P{-_In_Old_uyghur}', "");
+    Expect(1, 69551, '\P{^-_In_Old_uyghur}', "");
+    Expect(0, 69552, '\p{-_In_Old_uyghur}', "");
+    Expect(1, 69552, '\p{^-_In_Old_uyghur}', "");
+    Expect(1, 69552, '\P{-_In_Old_uyghur}', "");
+    Expect(0, 69552, '\P{^-_In_Old_uyghur}', "");
+    Error('\p{:=	_In_Oriya}');
+    Error('\P{:=	_In_Oriya}');
     Expect(1, 2943, '\p{inoriya}', "");
     Expect(0, 2943, '\p{^inoriya}', "");
     Expect(0, 2943, '\P{inoriya}', "");
@@ -104847,26 +105917,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2944, '\p{^inoriya}', "");
     Expect(1, 2944, '\P{inoriya}', "");
     Expect(0, 2944, '\P{^inoriya}', "");
-    Expect(1, 2943, '\p{_in_oriya}', "");
-    Expect(0, 2943, '\p{^_in_oriya}', "");
-    Expect(0, 2943, '\P{_in_oriya}', "");
-    Expect(1, 2943, '\P{^_in_oriya}', "");
-    Expect(0, 2944, '\p{_in_oriya}', "");
-    Expect(1, 2944, '\p{^_in_oriya}', "");
-    Expect(1, 2944, '\P{_in_oriya}', "");
-    Expect(0, 2944, '\P{^_in_oriya}', "");
-    Error('\p{- IN_Oriya:=}');
-    Error('\P{- IN_Oriya:=}');
-    Expect(1, 2943, '\p{_IN_ORIYA}', "");
-    Expect(0, 2943, '\p{^_IN_ORIYA}', "");
-    Expect(0, 2943, '\P{_IN_ORIYA}', "");
-    Expect(1, 2943, '\P{^_IN_ORIYA}', "");
-    Expect(0, 2944, '\p{_IN_ORIYA}', "");
-    Expect(1, 2944, '\p{^_IN_ORIYA}', "");
-    Expect(1, 2944, '\P{_IN_ORIYA}', "");
-    Expect(0, 2944, '\P{^_IN_ORIYA}', "");
-    Error('\p{:=__In_osage}');
-    Error('\P{:=__In_osage}');
+    Expect(1, 2943, '\p{ in_Oriya}', "");
+    Expect(0, 2943, '\p{^ in_Oriya}', "");
+    Expect(0, 2943, '\P{ in_Oriya}', "");
+    Expect(1, 2943, '\P{^ in_Oriya}', "");
+    Expect(0, 2944, '\p{ in_Oriya}', "");
+    Expect(1, 2944, '\p{^ in_Oriya}', "");
+    Expect(1, 2944, '\P{ in_Oriya}', "");
+    Expect(0, 2944, '\P{^ in_Oriya}', "");
+    Error('\p{/a/ IN_oriya}');
+    Error('\P{/a/ IN_oriya}');
+    Error('\p{_ In_OSAGE/a/}');
+    Error('\P{_ In_OSAGE/a/}');
     Expect(1, 66815, '\p{inosage}', "");
     Expect(0, 66815, '\p{^inosage}', "");
     Expect(0, 66815, '\P{inosage}', "");
@@ -104875,26 +105937,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66816, '\p{^inosage}', "");
     Expect(1, 66816, '\P{inosage}', "");
     Expect(0, 66816, '\P{^inosage}', "");
-    Expect(1, 66815, '\p{-_IN_OSAGE}', "");
-    Expect(0, 66815, '\p{^-_IN_OSAGE}', "");
-    Expect(0, 66815, '\P{-_IN_OSAGE}', "");
-    Expect(1, 66815, '\P{^-_IN_OSAGE}', "");
-    Expect(0, 66816, '\p{-_IN_OSAGE}', "");
-    Expect(1, 66816, '\p{^-_IN_OSAGE}', "");
-    Expect(1, 66816, '\P{-_IN_OSAGE}', "");
-    Expect(0, 66816, '\P{^-_IN_OSAGE}', "");
-    Error('\p{	 In_osage/a/}');
-    Error('\P{	 In_osage/a/}');
-    Expect(1, 66815, '\p{	In_Osage}', "");
-    Expect(0, 66815, '\p{^	In_Osage}', "");
-    Expect(0, 66815, '\P{	In_Osage}', "");
-    Expect(1, 66815, '\P{^	In_Osage}', "");
-    Expect(0, 66816, '\p{	In_Osage}', "");
-    Expect(1, 66816, '\p{^	In_Osage}', "");
-    Expect(1, 66816, '\P{	In_Osage}', "");
-    Expect(0, 66816, '\P{^	In_Osage}', "");
-    Error('\p{:=-_In_Osmanya}');
-    Error('\P{:=-_In_Osmanya}');
+    Expect(1, 66815, '\p{_ in_OSAGE}', "");
+    Expect(0, 66815, '\p{^_ in_OSAGE}', "");
+    Expect(0, 66815, '\P{_ in_OSAGE}', "");
+    Expect(1, 66815, '\P{^_ in_OSAGE}', "");
+    Expect(0, 66816, '\p{_ in_OSAGE}', "");
+    Expect(1, 66816, '\p{^_ in_OSAGE}', "");
+    Expect(1, 66816, '\P{_ in_OSAGE}', "");
+    Expect(0, 66816, '\P{^_ in_OSAGE}', "");
+    Error('\p{:=	-IN_osage}');
+    Error('\P{:=	-IN_osage}');
+    Expect(1, 66815, '\p{--IN_osage}', "");
+    Expect(0, 66815, '\p{^--IN_osage}', "");
+    Expect(0, 66815, '\P{--IN_osage}', "");
+    Expect(1, 66815, '\P{^--IN_osage}', "");
+    Expect(0, 66816, '\p{--IN_osage}', "");
+    Expect(1, 66816, '\p{^--IN_osage}', "");
+    Expect(1, 66816, '\P{--IN_osage}', "");
+    Expect(0, 66816, '\P{^--IN_osage}', "");
+    Error('\p{-:=In_OSMANYA}');
+    Error('\P{-:=In_OSMANYA}');
     Expect(1, 66735, '\p{inosmanya}', "");
     Expect(0, 66735, '\p{^inosmanya}', "");
     Expect(0, 66735, '\P{inosmanya}', "");
@@ -104903,26 +105965,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66736, '\p{^inosmanya}', "");
     Expect(1, 66736, '\P{inosmanya}', "");
     Expect(0, 66736, '\P{^inosmanya}', "");
-    Expect(1, 66735, '\p{In_Osmanya}', "");
-    Expect(0, 66735, '\p{^In_Osmanya}', "");
-    Expect(0, 66735, '\P{In_Osmanya}', "");
-    Expect(1, 66735, '\P{^In_Osmanya}', "");
-    Expect(0, 66736, '\p{In_Osmanya}', "");
-    Expect(1, 66736, '\p{^In_Osmanya}', "");
-    Expect(1, 66736, '\P{In_Osmanya}', "");
-    Expect(0, 66736, '\P{^In_Osmanya}', "");
-    Error('\p{		in_Osmanya:=}');
-    Error('\P{		in_Osmanya:=}');
-    Expect(1, 66735, '\p{IN_OSMANYA}', "");
-    Expect(0, 66735, '\p{^IN_OSMANYA}', "");
-    Expect(0, 66735, '\P{IN_OSMANYA}', "");
-    Expect(1, 66735, '\P{^IN_OSMANYA}', "");
-    Expect(0, 66736, '\p{IN_OSMANYA}', "");
-    Expect(1, 66736, '\p{^IN_OSMANYA}', "");
-    Expect(1, 66736, '\P{IN_OSMANYA}', "");
-    Expect(0, 66736, '\P{^IN_OSMANYA}', "");
-    Error('\p{/a/_in_Pahawh_HMONG}');
-    Error('\P{/a/_in_Pahawh_HMONG}');
+    Expect(1, 66735, '\p{-In_Osmanya}', "");
+    Expect(0, 66735, '\p{^-In_Osmanya}', "");
+    Expect(0, 66735, '\P{-In_Osmanya}', "");
+    Expect(1, 66735, '\P{^-In_Osmanya}', "");
+    Expect(0, 66736, '\p{-In_Osmanya}', "");
+    Expect(1, 66736, '\p{^-In_Osmanya}', "");
+    Expect(1, 66736, '\P{-In_Osmanya}', "");
+    Expect(0, 66736, '\P{^-In_Osmanya}', "");
+    Error('\p{	:=In_Osmanya}');
+    Error('\P{	:=In_Osmanya}');
+    Expect(1, 66735, '\p{ in_osmanya}', "");
+    Expect(0, 66735, '\p{^ in_osmanya}', "");
+    Expect(0, 66735, '\P{ in_osmanya}', "");
+    Expect(1, 66735, '\P{^ in_osmanya}', "");
+    Expect(0, 66736, '\p{ in_osmanya}', "");
+    Expect(1, 66736, '\p{^ in_osmanya}', "");
+    Expect(1, 66736, '\P{ in_osmanya}', "");
+    Expect(0, 66736, '\P{^ in_osmanya}', "");
+    Error('\p{ _IN_PAHAWH_hmong/a/}');
+    Error('\P{ _IN_PAHAWH_hmong/a/}');
     Expect(1, 93071, '\p{inpahawhhmong}', "");
     Expect(0, 93071, '\p{^inpahawhhmong}', "");
     Expect(0, 93071, '\P{inpahawhhmong}', "");
@@ -104931,26 +105993,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93072, '\p{^inpahawhhmong}', "");
     Expect(1, 93072, '\P{inpahawhhmong}', "");
     Expect(0, 93072, '\P{^inpahawhhmong}', "");
-    Expect(1, 93071, '\p{	In_Pahawh_Hmong}', "");
-    Expect(0, 93071, '\p{^	In_Pahawh_Hmong}', "");
-    Expect(0, 93071, '\P{	In_Pahawh_Hmong}', "");
-    Expect(1, 93071, '\P{^	In_Pahawh_Hmong}', "");
-    Expect(0, 93072, '\p{	In_Pahawh_Hmong}', "");
-    Expect(1, 93072, '\p{^	In_Pahawh_Hmong}', "");
-    Expect(1, 93072, '\P{	In_Pahawh_Hmong}', "");
-    Expect(0, 93072, '\P{^	In_Pahawh_Hmong}', "");
-    Error('\p{In_pahawh_Hmong:=}');
-    Error('\P{In_pahawh_Hmong:=}');
-    Expect(1, 93071, '\p{__In_Pahawh_HMONG}', "");
-    Expect(0, 93071, '\p{^__In_Pahawh_HMONG}', "");
-    Expect(0, 93071, '\P{__In_Pahawh_HMONG}', "");
-    Expect(1, 93071, '\P{^__In_Pahawh_HMONG}', "");
-    Expect(0, 93072, '\p{__In_Pahawh_HMONG}', "");
-    Expect(1, 93072, '\p{^__In_Pahawh_HMONG}', "");
-    Expect(1, 93072, '\P{__In_Pahawh_HMONG}', "");
-    Expect(0, 93072, '\P{^__In_Pahawh_HMONG}', "");
-    Error('\p{_ in_palmyrene/a/}');
-    Error('\P{_ in_palmyrene/a/}');
+    Expect(1, 93071, '\p{ In_Pahawh_hmong}', "");
+    Expect(0, 93071, '\p{^ In_Pahawh_hmong}', "");
+    Expect(0, 93071, '\P{ In_Pahawh_hmong}', "");
+    Expect(1, 93071, '\P{^ In_Pahawh_hmong}', "");
+    Expect(0, 93072, '\p{ In_Pahawh_hmong}', "");
+    Expect(1, 93072, '\p{^ In_Pahawh_hmong}', "");
+    Expect(1, 93072, '\P{ In_Pahawh_hmong}', "");
+    Expect(0, 93072, '\P{^ In_Pahawh_hmong}', "");
+    Error('\p{_:=IN_Pahawh_Hmong}');
+    Error('\P{_:=IN_Pahawh_Hmong}');
+    Expect(1, 93071, '\p{	 in_pahawh_HMONG}', "");
+    Expect(0, 93071, '\p{^	 in_pahawh_HMONG}', "");
+    Expect(0, 93071, '\P{	 in_pahawh_HMONG}', "");
+    Expect(1, 93071, '\P{^	 in_pahawh_HMONG}', "");
+    Expect(0, 93072, '\p{	 in_pahawh_HMONG}', "");
+    Expect(1, 93072, '\p{^	 in_pahawh_HMONG}', "");
+    Expect(1, 93072, '\P{	 in_pahawh_HMONG}', "");
+    Expect(0, 93072, '\P{^	 in_pahawh_HMONG}', "");
+    Error('\p{ :=In_Palmyrene}');
+    Error('\P{ :=In_Palmyrene}');
     Expect(1, 67711, '\p{inpalmyrene}', "");
     Expect(0, 67711, '\p{^inpalmyrene}', "");
     Expect(0, 67711, '\P{inpalmyrene}', "");
@@ -104959,26 +106021,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67712, '\p{^inpalmyrene}', "");
     Expect(1, 67712, '\P{inpalmyrene}', "");
     Expect(0, 67712, '\P{^inpalmyrene}', "");
-    Expect(1, 67711, '\p{IN_palmyrene}', "");
-    Expect(0, 67711, '\p{^IN_palmyrene}', "");
-    Expect(0, 67711, '\P{IN_palmyrene}', "");
-    Expect(1, 67711, '\P{^IN_palmyrene}', "");
-    Expect(0, 67712, '\p{IN_palmyrene}', "");
-    Expect(1, 67712, '\p{^IN_palmyrene}', "");
-    Expect(1, 67712, '\P{IN_palmyrene}', "");
-    Expect(0, 67712, '\P{^IN_palmyrene}', "");
-    Error('\p{/a/-in_palmyrene}');
-    Error('\P{/a/-in_palmyrene}');
-    Expect(1, 67711, '\p{-	In_palmyrene}', "");
-    Expect(0, 67711, '\p{^-	In_palmyrene}', "");
-    Expect(0, 67711, '\P{-	In_palmyrene}', "");
-    Expect(1, 67711, '\P{^-	In_palmyrene}', "");
-    Expect(0, 67712, '\p{-	In_palmyrene}', "");
-    Expect(1, 67712, '\p{^-	In_palmyrene}', "");
-    Expect(1, 67712, '\P{-	In_palmyrene}', "");
-    Expect(0, 67712, '\P{^-	In_palmyrene}', "");
-    Error('\p{_ In_pau_Cin_Hau/a/}');
-    Error('\P{_ In_pau_Cin_Hau/a/}');
+    Expect(1, 67711, '\p{_in_PALMYRENE}', "");
+    Expect(0, 67711, '\p{^_in_PALMYRENE}', "");
+    Expect(0, 67711, '\P{_in_PALMYRENE}', "");
+    Expect(1, 67711, '\P{^_in_PALMYRENE}', "");
+    Expect(0, 67712, '\p{_in_PALMYRENE}', "");
+    Expect(1, 67712, '\p{^_in_PALMYRENE}', "");
+    Expect(1, 67712, '\P{_in_PALMYRENE}', "");
+    Expect(0, 67712, '\P{^_in_PALMYRENE}', "");
+    Error('\p{	_In_Palmyrene/a/}');
+    Error('\P{	_In_Palmyrene/a/}');
+    Expect(1, 67711, '\p{  IN_PALMYRENE}', "");
+    Expect(0, 67711, '\p{^  IN_PALMYRENE}', "");
+    Expect(0, 67711, '\P{  IN_PALMYRENE}', "");
+    Expect(1, 67711, '\P{^  IN_PALMYRENE}', "");
+    Expect(0, 67712, '\p{  IN_PALMYRENE}', "");
+    Expect(1, 67712, '\p{^  IN_PALMYRENE}', "");
+    Expect(1, 67712, '\P{  IN_PALMYRENE}', "");
+    Expect(0, 67712, '\P{^  IN_PALMYRENE}', "");
+    Error('\p{/a/	-IN_pau_Cin_Hau}');
+    Error('\P{/a/	-IN_pau_Cin_Hau}');
     Expect(1, 72447, '\p{inpaucinhau}', "");
     Expect(0, 72447, '\p{^inpaucinhau}', "");
     Expect(0, 72447, '\P{inpaucinhau}', "");
@@ -104987,26 +106049,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72448, '\p{^inpaucinhau}', "");
     Expect(1, 72448, '\P{inpaucinhau}', "");
     Expect(0, 72448, '\P{^inpaucinhau}', "");
-    Expect(1, 72447, '\p{-	In_Pau_cin_Hau}', "");
-    Expect(0, 72447, '\p{^-	In_Pau_cin_Hau}', "");
-    Expect(0, 72447, '\P{-	In_Pau_cin_Hau}', "");
-    Expect(1, 72447, '\P{^-	In_Pau_cin_Hau}', "");
-    Expect(0, 72448, '\p{-	In_Pau_cin_Hau}', "");
-    Expect(1, 72448, '\p{^-	In_Pau_cin_Hau}', "");
-    Expect(1, 72448, '\P{-	In_Pau_cin_Hau}', "");
-    Expect(0, 72448, '\P{^-	In_Pau_cin_Hau}', "");
-    Error('\p{	:=IN_Pau_Cin_Hau}');
-    Error('\P{	:=IN_Pau_Cin_Hau}');
-    Expect(1, 72447, '\p{	In_Pau_Cin_Hau}', "");
-    Expect(0, 72447, '\p{^	In_Pau_Cin_Hau}', "");
-    Expect(0, 72447, '\P{	In_Pau_Cin_Hau}', "");
-    Expect(1, 72447, '\P{^	In_Pau_Cin_Hau}', "");
-    Expect(0, 72448, '\p{	In_Pau_Cin_Hau}', "");
-    Expect(1, 72448, '\p{^	In_Pau_Cin_Hau}', "");
-    Expect(1, 72448, '\P{	In_Pau_Cin_Hau}', "");
-    Expect(0, 72448, '\P{^	In_Pau_Cin_Hau}', "");
-    Error('\p{/a/ 	IN_Phags_pa}');
-    Error('\P{/a/ 	IN_Phags_pa}');
+    Expect(1, 72447, '\p{ in_PAU_Cin_hau}', "");
+    Expect(0, 72447, '\p{^ in_PAU_Cin_hau}', "");
+    Expect(0, 72447, '\P{ in_PAU_Cin_hau}', "");
+    Expect(1, 72447, '\P{^ in_PAU_Cin_hau}', "");
+    Expect(0, 72448, '\p{ in_PAU_Cin_hau}', "");
+    Expect(1, 72448, '\p{^ in_PAU_Cin_hau}', "");
+    Expect(1, 72448, '\P{ in_PAU_Cin_hau}', "");
+    Expect(0, 72448, '\P{^ in_PAU_Cin_hau}', "");
+    Error('\p{:=-	In_Pau_Cin_Hau}');
+    Error('\P{:=-	In_Pau_Cin_Hau}');
+    Expect(1, 72447, '\p{	IN_PAU_cin_HAU}', "");
+    Expect(0, 72447, '\p{^	IN_PAU_cin_HAU}', "");
+    Expect(0, 72447, '\P{	IN_PAU_cin_HAU}', "");
+    Expect(1, 72447, '\P{^	IN_PAU_cin_HAU}', "");
+    Expect(0, 72448, '\p{	IN_PAU_cin_HAU}', "");
+    Expect(1, 72448, '\p{^	IN_PAU_cin_HAU}', "");
+    Expect(1, 72448, '\P{	IN_PAU_cin_HAU}', "");
+    Expect(0, 72448, '\P{^	IN_PAU_cin_HAU}', "");
+    Error('\p{:=_ IN_PHAGS_pa}');
+    Error('\P{:=_ IN_PHAGS_pa}');
     Expect(1, 43135, '\p{inphagspa}', "");
     Expect(0, 43135, '\p{^inphagspa}', "");
     Expect(0, 43135, '\P{inphagspa}', "");
@@ -105015,26 +106077,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43136, '\p{^inphagspa}', "");
     Expect(1, 43136, '\P{inphagspa}', "");
     Expect(0, 43136, '\P{^inphagspa}', "");
-    Expect(1, 43135, '\p{ IN_Phags_pa}', "");
-    Expect(0, 43135, '\p{^ IN_Phags_pa}', "");
-    Expect(0, 43135, '\P{ IN_Phags_pa}', "");
-    Expect(1, 43135, '\P{^ IN_Phags_pa}', "");
-    Expect(0, 43136, '\p{ IN_Phags_pa}', "");
-    Expect(1, 43136, '\p{^ IN_Phags_pa}', "");
-    Expect(1, 43136, '\P{ IN_Phags_pa}', "");
-    Expect(0, 43136, '\P{^ IN_Phags_pa}', "");
-    Error('\p{-In_Phags_Pa/a/}');
-    Error('\P{-In_Phags_Pa/a/}');
-    Expect(1, 43135, '\p{In_Phags_pa}', "");
-    Expect(0, 43135, '\p{^In_Phags_pa}', "");
-    Expect(0, 43135, '\P{In_Phags_pa}', "");
-    Expect(1, 43135, '\P{^In_Phags_pa}', "");
-    Expect(0, 43136, '\p{In_Phags_pa}', "");
-    Expect(1, 43136, '\p{^In_Phags_pa}', "");
-    Expect(1, 43136, '\P{In_Phags_pa}', "");
-    Expect(0, 43136, '\P{^In_Phags_pa}', "");
-    Error('\p{:= -in_Phoenician}');
-    Error('\P{:= -in_Phoenician}');
+    Expect(1, 43135, '\p{ In_PHAGS_Pa}', "");
+    Expect(0, 43135, '\p{^ In_PHAGS_Pa}', "");
+    Expect(0, 43135, '\P{ In_PHAGS_Pa}', "");
+    Expect(1, 43135, '\P{^ In_PHAGS_Pa}', "");
+    Expect(0, 43136, '\p{ In_PHAGS_Pa}', "");
+    Expect(1, 43136, '\p{^ In_PHAGS_Pa}', "");
+    Expect(1, 43136, '\P{ In_PHAGS_Pa}', "");
+    Expect(0, 43136, '\P{^ In_PHAGS_Pa}', "");
+    Error('\p{/a/_-in_phags_Pa}');
+    Error('\P{/a/_-in_phags_Pa}');
+    Expect(1, 43135, '\p{-In_Phags_Pa}', "");
+    Expect(0, 43135, '\p{^-In_Phags_Pa}', "");
+    Expect(0, 43135, '\P{-In_Phags_Pa}', "");
+    Expect(1, 43135, '\P{^-In_Phags_Pa}', "");
+    Expect(0, 43136, '\p{-In_Phags_Pa}', "");
+    Expect(1, 43136, '\p{^-In_Phags_Pa}', "");
+    Expect(1, 43136, '\P{-In_Phags_Pa}', "");
+    Expect(0, 43136, '\P{^-In_Phags_Pa}', "");
+    Error('\p{	_in_Phoenician:=}');
+    Error('\P{	_in_Phoenician:=}');
     Expect(1, 67871, '\p{inphoenician}', "");
     Expect(0, 67871, '\p{^inphoenician}', "");
     Expect(0, 67871, '\P{inphoenician}', "");
@@ -105043,26 +106105,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67872, '\p{^inphoenician}', "");
     Expect(1, 67872, '\P{inphoenician}', "");
     Expect(0, 67872, '\P{^inphoenician}', "");
-    Expect(1, 67871, '\p{-	In_phoenician}', "");
-    Expect(0, 67871, '\p{^-	In_phoenician}', "");
-    Expect(0, 67871, '\P{-	In_phoenician}', "");
-    Expect(1, 67871, '\P{^-	In_phoenician}', "");
-    Expect(0, 67872, '\p{-	In_phoenician}', "");
-    Expect(1, 67872, '\p{^-	In_phoenician}', "");
-    Expect(1, 67872, '\P{-	In_phoenician}', "");
-    Expect(0, 67872, '\P{^-	In_phoenician}', "");
-    Error('\p{-/a/in_PHOENICIAN}');
-    Error('\P{-/a/in_PHOENICIAN}');
-    Expect(1, 67871, '\p{- IN_Phoenician}', "");
-    Expect(0, 67871, '\p{^- IN_Phoenician}', "");
-    Expect(0, 67871, '\P{- IN_Phoenician}', "");
-    Expect(1, 67871, '\P{^- IN_Phoenician}', "");
-    Expect(0, 67872, '\p{- IN_Phoenician}', "");
-    Expect(1, 67872, '\p{^- IN_Phoenician}', "");
-    Expect(1, 67872, '\P{- IN_Phoenician}', "");
-    Expect(0, 67872, '\P{^- IN_Phoenician}', "");
-    Error('\p{- In_psalter_pahlavi:=}');
-    Error('\P{- In_psalter_pahlavi:=}');
+    Expect(1, 67871, '\p{	 in_Phoenician}', "");
+    Expect(0, 67871, '\p{^	 in_Phoenician}', "");
+    Expect(0, 67871, '\P{	 in_Phoenician}', "");
+    Expect(1, 67871, '\P{^	 in_Phoenician}', "");
+    Expect(0, 67872, '\p{	 in_Phoenician}', "");
+    Expect(1, 67872, '\p{^	 in_Phoenician}', "");
+    Expect(1, 67872, '\P{	 in_Phoenician}', "");
+    Expect(0, 67872, '\P{^	 in_Phoenician}', "");
+    Error('\p{:=__In_phoenician}');
+    Error('\P{:=__In_phoenician}');
+    Expect(1, 67871, '\p{ 	In_PHOENICIAN}', "");
+    Expect(0, 67871, '\p{^ 	In_PHOENICIAN}', "");
+    Expect(0, 67871, '\P{ 	In_PHOENICIAN}', "");
+    Expect(1, 67871, '\P{^ 	In_PHOENICIAN}', "");
+    Expect(0, 67872, '\p{ 	In_PHOENICIAN}', "");
+    Expect(1, 67872, '\p{^ 	In_PHOENICIAN}', "");
+    Expect(1, 67872, '\P{ 	In_PHOENICIAN}', "");
+    Expect(0, 67872, '\P{^ 	In_PHOENICIAN}', "");
+    Error('\p{	/a/in_Psalter_Pahlavi}');
+    Error('\P{	/a/in_Psalter_Pahlavi}');
     Expect(1, 68527, '\p{inpsalterpahlavi}', "");
     Expect(0, 68527, '\p{^inpsalterpahlavi}', "");
     Expect(0, 68527, '\P{inpsalterpahlavi}', "");
@@ -105071,26 +106133,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68528, '\p{^inpsalterpahlavi}', "");
     Expect(1, 68528, '\P{inpsalterpahlavi}', "");
     Expect(0, 68528, '\P{^inpsalterpahlavi}', "");
-    Expect(1, 68527, '\p{	-in_psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^	-in_psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{	-in_psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^	-in_psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{	-in_psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^	-in_psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{	-in_psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^	-in_psalter_pahlavi}', "");
-    Error('\p{/a/	in_Psalter_Pahlavi}');
-    Error('\P{/a/	in_Psalter_Pahlavi}');
-    Expect(1, 68527, '\p{	In_PSALTER_Pahlavi}', "");
-    Expect(0, 68527, '\p{^	In_PSALTER_Pahlavi}', "");
-    Expect(0, 68527, '\P{	In_PSALTER_Pahlavi}', "");
-    Expect(1, 68527, '\P{^	In_PSALTER_Pahlavi}', "");
-    Expect(0, 68528, '\p{	In_PSALTER_Pahlavi}', "");
-    Expect(1, 68528, '\p{^	In_PSALTER_Pahlavi}', "");
-    Expect(1, 68528, '\P{	In_PSALTER_Pahlavi}', "");
-    Expect(0, 68528, '\P{^	In_PSALTER_Pahlavi}', "");
-    Error('\p{ In_Rejang/a/}');
-    Error('\P{ In_Rejang/a/}');
+    Expect(1, 68527, '\p{ in_Psalter_pahlavi}', "");
+    Expect(0, 68527, '\p{^ in_Psalter_pahlavi}', "");
+    Expect(0, 68527, '\P{ in_Psalter_pahlavi}', "");
+    Expect(1, 68527, '\P{^ in_Psalter_pahlavi}', "");
+    Expect(0, 68528, '\p{ in_Psalter_pahlavi}', "");
+    Expect(1, 68528, '\p{^ in_Psalter_pahlavi}', "");
+    Expect(1, 68528, '\P{ in_Psalter_pahlavi}', "");
+    Expect(0, 68528, '\P{^ in_Psalter_pahlavi}', "");
+    Error('\p{/a/ In_Psalter_Pahlavi}');
+    Error('\P{/a/ In_Psalter_Pahlavi}');
+    Expect(1, 68527, '\p{_ In_Psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\p{^_ In_Psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\P{_ In_Psalter_PAHLAVI}', "");
+    Expect(1, 68527, '\P{^_ In_Psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\p{_ In_Psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\p{^_ In_Psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\P{_ In_Psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\P{^_ In_Psalter_PAHLAVI}', "");
+    Error('\p{/a/	In_rejang}');
+    Error('\P{/a/	In_rejang}');
     Expect(1, 43359, '\p{inrejang}', "");
     Expect(0, 43359, '\p{^inrejang}', "");
     Expect(0, 43359, '\P{inrejang}', "");
@@ -105099,26 +106161,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43360, '\p{^inrejang}', "");
     Expect(1, 43360, '\P{inrejang}', "");
     Expect(0, 43360, '\P{^inrejang}', "");
-    Expect(1, 43359, '\p{__IN_Rejang}', "");
-    Expect(0, 43359, '\p{^__IN_Rejang}', "");
-    Expect(0, 43359, '\P{__IN_Rejang}', "");
-    Expect(1, 43359, '\P{^__IN_Rejang}', "");
-    Expect(0, 43360, '\p{__IN_Rejang}', "");
-    Expect(1, 43360, '\p{^__IN_Rejang}', "");
-    Expect(1, 43360, '\P{__IN_Rejang}', "");
-    Expect(0, 43360, '\P{^__IN_Rejang}', "");
-    Error('\p{	IN_Rejang/a/}');
-    Error('\P{	IN_Rejang/a/}');
-    Expect(1, 43359, '\p{ -IN_rejang}', "");
-    Expect(0, 43359, '\p{^ -IN_rejang}', "");
-    Expect(0, 43359, '\P{ -IN_rejang}', "");
-    Expect(1, 43359, '\P{^ -IN_rejang}', "");
-    Expect(0, 43360, '\p{ -IN_rejang}', "");
-    Expect(1, 43360, '\p{^ -IN_rejang}', "");
-    Expect(1, 43360, '\P{ -IN_rejang}', "");
-    Expect(0, 43360, '\P{^ -IN_rejang}', "");
-    Error('\p{:= -In_runic}');
-    Error('\P{:= -In_runic}');
+    Expect(1, 43359, '\p{-	in_Rejang}', "");
+    Expect(0, 43359, '\p{^-	in_Rejang}', "");
+    Expect(0, 43359, '\P{-	in_Rejang}', "");
+    Expect(1, 43359, '\P{^-	in_Rejang}', "");
+    Expect(0, 43360, '\p{-	in_Rejang}', "");
+    Expect(1, 43360, '\p{^-	in_Rejang}', "");
+    Expect(1, 43360, '\P{-	in_Rejang}', "");
+    Expect(0, 43360, '\P{^-	in_Rejang}', "");
+    Error('\p{:=--In_Rejang}');
+    Error('\P{:=--In_Rejang}');
+    Expect(1, 43359, '\p{  In_Rejang}', "");
+    Expect(0, 43359, '\p{^  In_Rejang}', "");
+    Expect(0, 43359, '\P{  In_Rejang}', "");
+    Expect(1, 43359, '\P{^  In_Rejang}', "");
+    Expect(0, 43360, '\p{  In_Rejang}', "");
+    Expect(1, 43360, '\p{^  In_Rejang}', "");
+    Expect(1, 43360, '\P{  In_Rejang}', "");
+    Expect(0, 43360, '\P{^  In_Rejang}', "");
+    Error('\p{	IN_Runic:=}');
+    Error('\P{	IN_Runic:=}');
     Expect(1, 5887, '\p{inrunic}', "");
     Expect(0, 5887, '\p{^inrunic}', "");
     Expect(0, 5887, '\P{inrunic}', "");
@@ -105127,26 +106189,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5888, '\p{^inrunic}', "");
     Expect(1, 5888, '\P{inrunic}', "");
     Expect(0, 5888, '\P{^inrunic}', "");
-    Expect(1, 5887, '\p{_In_Runic}', "");
-    Expect(0, 5887, '\p{^_In_Runic}', "");
-    Expect(0, 5887, '\P{_In_Runic}', "");
-    Expect(1, 5887, '\P{^_In_Runic}', "");
-    Expect(0, 5888, '\p{_In_Runic}', "");
-    Expect(1, 5888, '\p{^_In_Runic}', "");
-    Expect(1, 5888, '\P{_In_Runic}', "");
-    Expect(0, 5888, '\P{^_In_Runic}', "");
-    Error('\p{:=-	IN_Runic}');
-    Error('\P{:=-	IN_Runic}');
-    Expect(1, 5887, '\p{_ IN_RUNIC}', "");
-    Expect(0, 5887, '\p{^_ IN_RUNIC}', "");
-    Expect(0, 5887, '\P{_ IN_RUNIC}', "");
-    Expect(1, 5887, '\P{^_ IN_RUNIC}', "");
-    Expect(0, 5888, '\p{_ IN_RUNIC}', "");
-    Expect(1, 5888, '\p{^_ IN_RUNIC}', "");
-    Expect(1, 5888, '\P{_ IN_RUNIC}', "");
-    Expect(0, 5888, '\P{^_ IN_RUNIC}', "");
-    Error('\p{_ in_SAMARITAN:=}');
-    Error('\P{_ in_SAMARITAN:=}');
+    Expect(1, 5887, '\p{	_In_Runic}', "");
+    Expect(0, 5887, '\p{^	_In_Runic}', "");
+    Expect(0, 5887, '\P{	_In_Runic}', "");
+    Expect(1, 5887, '\P{^	_In_Runic}', "");
+    Expect(0, 5888, '\p{	_In_Runic}', "");
+    Expect(1, 5888, '\p{^	_In_Runic}', "");
+    Expect(1, 5888, '\P{	_In_Runic}', "");
+    Expect(0, 5888, '\P{^	_In_Runic}', "");
+    Error('\p{-:=In_RUNIC}');
+    Error('\P{-:=In_RUNIC}');
+    Expect(1, 5887, '\p{_	In_Runic}', "");
+    Expect(0, 5887, '\p{^_	In_Runic}', "");
+    Expect(0, 5887, '\P{_	In_Runic}', "");
+    Expect(1, 5887, '\P{^_	In_Runic}', "");
+    Expect(0, 5888, '\p{_	In_Runic}', "");
+    Expect(1, 5888, '\p{^_	In_Runic}', "");
+    Expect(1, 5888, '\P{_	In_Runic}', "");
+    Expect(0, 5888, '\P{^_	In_Runic}', "");
+    Error('\p{	IN_Samaritan:=}');
+    Error('\P{	IN_Samaritan:=}');
     Expect(1, 2111, '\p{insamaritan}', "");
     Expect(0, 2111, '\p{^insamaritan}', "");
     Expect(0, 2111, '\P{insamaritan}', "");
@@ -105155,26 +106217,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2112, '\p{^insamaritan}', "");
     Expect(1, 2112, '\P{insamaritan}', "");
     Expect(0, 2112, '\P{^insamaritan}', "");
-    Expect(1, 2111, '\p{	in_Samaritan}', "");
-    Expect(0, 2111, '\p{^	in_Samaritan}', "");
-    Expect(0, 2111, '\P{	in_Samaritan}', "");
-    Expect(1, 2111, '\P{^	in_Samaritan}', "");
-    Expect(0, 2112, '\p{	in_Samaritan}', "");
-    Expect(1, 2112, '\p{^	in_Samaritan}', "");
-    Expect(1, 2112, '\P{	in_Samaritan}', "");
-    Expect(0, 2112, '\P{^	in_Samaritan}', "");
-    Error('\p{	:=In_Samaritan}');
-    Error('\P{	:=In_Samaritan}');
-    Expect(1, 2111, '\p{ In_samaritan}', "");
-    Expect(0, 2111, '\p{^ In_samaritan}', "");
-    Expect(0, 2111, '\P{ In_samaritan}', "");
-    Expect(1, 2111, '\P{^ In_samaritan}', "");
-    Expect(0, 2112, '\p{ In_samaritan}', "");
-    Expect(1, 2112, '\p{^ In_samaritan}', "");
-    Expect(1, 2112, '\P{ In_samaritan}', "");
-    Expect(0, 2112, '\P{^ In_samaritan}', "");
-    Error('\p{/a/	_in_Saurashtra}');
-    Error('\P{/a/	_in_Saurashtra}');
+    Expect(1, 2111, '\p{-IN_Samaritan}', "");
+    Expect(0, 2111, '\p{^-IN_Samaritan}', "");
+    Expect(0, 2111, '\P{-IN_Samaritan}', "");
+    Expect(1, 2111, '\P{^-IN_Samaritan}', "");
+    Expect(0, 2112, '\p{-IN_Samaritan}', "");
+    Expect(1, 2112, '\p{^-IN_Samaritan}', "");
+    Expect(1, 2112, '\P{-IN_Samaritan}', "");
+    Expect(0, 2112, '\P{^-IN_Samaritan}', "");
+    Error('\p{/a/-IN_Samaritan}');
+    Error('\P{/a/-IN_Samaritan}');
+    Expect(1, 2111, '\p{-_In_SAMARITAN}', "");
+    Expect(0, 2111, '\p{^-_In_SAMARITAN}', "");
+    Expect(0, 2111, '\P{-_In_SAMARITAN}', "");
+    Expect(1, 2111, '\P{^-_In_SAMARITAN}', "");
+    Expect(0, 2112, '\p{-_In_SAMARITAN}', "");
+    Expect(1, 2112, '\p{^-_In_SAMARITAN}', "");
+    Expect(1, 2112, '\P{-_In_SAMARITAN}', "");
+    Expect(0, 2112, '\P{^-_In_SAMARITAN}', "");
+    Error('\p{_:=In_Saurashtra}');
+    Error('\P{_:=In_Saurashtra}');
     Expect(1, 43231, '\p{insaurashtra}', "");
     Expect(0, 43231, '\p{^insaurashtra}', "");
     Expect(0, 43231, '\P{insaurashtra}', "");
@@ -105183,26 +106245,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43232, '\p{^insaurashtra}', "");
     Expect(1, 43232, '\P{insaurashtra}', "");
     Expect(0, 43232, '\P{^insaurashtra}', "");
-    Expect(1, 43231, '\p{-IN_Saurashtra}', "");
-    Expect(0, 43231, '\p{^-IN_Saurashtra}', "");
-    Expect(0, 43231, '\P{-IN_Saurashtra}', "");
-    Expect(1, 43231, '\P{^-IN_Saurashtra}', "");
-    Expect(0, 43232, '\p{-IN_Saurashtra}', "");
-    Expect(1, 43232, '\p{^-IN_Saurashtra}', "");
-    Expect(1, 43232, '\P{-IN_Saurashtra}', "");
-    Expect(0, 43232, '\P{^-IN_Saurashtra}', "");
-    Error('\p{/a/		in_Saurashtra}');
-    Error('\P{/a/		in_Saurashtra}');
-    Expect(1, 43231, '\p{-In_SAURASHTRA}', "");
-    Expect(0, 43231, '\p{^-In_SAURASHTRA}', "");
-    Expect(0, 43231, '\P{-In_SAURASHTRA}', "");
-    Expect(1, 43231, '\P{^-In_SAURASHTRA}', "");
-    Expect(0, 43232, '\p{-In_SAURASHTRA}', "");
-    Expect(1, 43232, '\p{^-In_SAURASHTRA}', "");
-    Expect(1, 43232, '\P{-In_SAURASHTRA}', "");
-    Expect(0, 43232, '\P{^-In_SAURASHTRA}', "");
-    Error('\p{:=__In_Sharada}');
-    Error('\P{:=__In_Sharada}');
+    Expect(1, 43231, '\p{-In_saurashtra}', "");
+    Expect(0, 43231, '\p{^-In_saurashtra}', "");
+    Expect(0, 43231, '\P{-In_saurashtra}', "");
+    Expect(1, 43231, '\P{^-In_saurashtra}', "");
+    Expect(0, 43232, '\p{-In_saurashtra}', "");
+    Expect(1, 43232, '\p{^-In_saurashtra}', "");
+    Expect(1, 43232, '\P{-In_saurashtra}', "");
+    Expect(0, 43232, '\P{^-In_saurashtra}', "");
+    Error('\p{/a/-_In_SAURASHTRA}');
+    Error('\P{/a/-_In_SAURASHTRA}');
+    Error('\p{:=-	in_sharada}');
+    Error('\P{:=-	in_sharada}');
     Expect(1, 70111, '\p{insharada}', "");
     Expect(0, 70111, '\p{^insharada}', "");
     Expect(0, 70111, '\P{insharada}', "");
@@ -105211,26 +106265,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70112, '\p{^insharada}', "");
     Expect(1, 70112, '\P{insharada}', "");
     Expect(0, 70112, '\P{^insharada}', "");
-    Expect(1, 70111, '\p{  In_SHARADA}', "");
-    Expect(0, 70111, '\p{^  In_SHARADA}', "");
-    Expect(0, 70111, '\P{  In_SHARADA}', "");
-    Expect(1, 70111, '\P{^  In_SHARADA}', "");
-    Expect(0, 70112, '\p{  In_SHARADA}', "");
-    Expect(1, 70112, '\p{^  In_SHARADA}', "");
-    Expect(1, 70112, '\P{  In_SHARADA}', "");
-    Expect(0, 70112, '\P{^  In_SHARADA}', "");
-    Error('\p{- In_Sharada/a/}');
-    Error('\P{- In_Sharada/a/}');
-    Expect(1, 70111, '\p{	IN_SHARADA}', "");
-    Expect(0, 70111, '\p{^	IN_SHARADA}', "");
-    Expect(0, 70111, '\P{	IN_SHARADA}', "");
-    Expect(1, 70111, '\P{^	IN_SHARADA}', "");
-    Expect(0, 70112, '\p{	IN_SHARADA}', "");
-    Expect(1, 70112, '\p{^	IN_SHARADA}', "");
-    Expect(1, 70112, '\P{	IN_SHARADA}', "");
-    Expect(0, 70112, '\P{^	IN_SHARADA}', "");
-    Error('\p{- IN_SHAVIAN:=}');
-    Error('\P{- IN_SHAVIAN:=}');
+    Expect(1, 70111, '\p{__In_SHARADA}', "");
+    Expect(0, 70111, '\p{^__In_SHARADA}', "");
+    Expect(0, 70111, '\P{__In_SHARADA}', "");
+    Expect(1, 70111, '\P{^__In_SHARADA}', "");
+    Expect(0, 70112, '\p{__In_SHARADA}', "");
+    Expect(1, 70112, '\p{^__In_SHARADA}', "");
+    Expect(1, 70112, '\P{__In_SHARADA}', "");
+    Expect(0, 70112, '\P{^__In_SHARADA}', "");
+    Error('\p{:=-	In_sharada}');
+    Error('\P{:=-	In_sharada}');
+    Expect(1, 70111, '\p{-In_SHARADA}', "");
+    Expect(0, 70111, '\p{^-In_SHARADA}', "");
+    Expect(0, 70111, '\P{-In_SHARADA}', "");
+    Expect(1, 70111, '\P{^-In_SHARADA}', "");
+    Expect(0, 70112, '\p{-In_SHARADA}', "");
+    Expect(1, 70112, '\p{^-In_SHARADA}', "");
+    Expect(1, 70112, '\P{-In_SHARADA}', "");
+    Expect(0, 70112, '\P{^-In_SHARADA}', "");
+    Error('\p{_In_Shavian:=}');
+    Error('\P{_In_Shavian:=}');
     Expect(1, 66687, '\p{inshavian}', "");
     Expect(0, 66687, '\p{^inshavian}', "");
     Expect(0, 66687, '\P{inshavian}', "");
@@ -105239,26 +106293,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66688, '\p{^inshavian}', "");
     Expect(1, 66688, '\P{inshavian}', "");
     Expect(0, 66688, '\P{^inshavian}', "");
-    Expect(1, 66687, '\p{ IN_shavian}', "");
-    Expect(0, 66687, '\p{^ IN_shavian}', "");
-    Expect(0, 66687, '\P{ IN_shavian}', "");
-    Expect(1, 66687, '\P{^ IN_shavian}', "");
-    Expect(0, 66688, '\p{ IN_shavian}', "");
-    Expect(1, 66688, '\p{^ IN_shavian}', "");
-    Expect(1, 66688, '\P{ IN_shavian}', "");
-    Expect(0, 66688, '\P{^ IN_shavian}', "");
-    Error('\p{ :=In_SHAVIAN}');
-    Error('\P{ :=In_SHAVIAN}');
-    Expect(1, 66687, '\p{	-IN_shavian}', "");
-    Expect(0, 66687, '\p{^	-IN_shavian}', "");
-    Expect(0, 66687, '\P{	-IN_shavian}', "");
-    Expect(1, 66687, '\P{^	-IN_shavian}', "");
-    Expect(0, 66688, '\p{	-IN_shavian}', "");
-    Expect(1, 66688, '\p{^	-IN_shavian}', "");
-    Expect(1, 66688, '\P{	-IN_shavian}', "");
-    Expect(0, 66688, '\P{^	-IN_shavian}', "");
-    Error('\p{-In_SIDDHAM/a/}');
-    Error('\P{-In_SIDDHAM/a/}');
+    Expect(1, 66687, '\p{	in_shavian}', "");
+    Expect(0, 66687, '\p{^	in_shavian}', "");
+    Expect(0, 66687, '\P{	in_shavian}', "");
+    Expect(1, 66687, '\P{^	in_shavian}', "");
+    Expect(0, 66688, '\p{	in_shavian}', "");
+    Expect(1, 66688, '\p{^	in_shavian}', "");
+    Expect(1, 66688, '\P{	in_shavian}', "");
+    Expect(0, 66688, '\P{^	in_shavian}', "");
+    Error('\p{:=	In_Shavian}');
+    Error('\P{:=	In_Shavian}');
+    Expect(1, 66687, '\p{-in_Shavian}', "");
+    Expect(0, 66687, '\p{^-in_Shavian}', "");
+    Expect(0, 66687, '\P{-in_Shavian}', "");
+    Expect(1, 66687, '\P{^-in_Shavian}', "");
+    Expect(0, 66688, '\p{-in_Shavian}', "");
+    Expect(1, 66688, '\p{^-in_Shavian}', "");
+    Expect(1, 66688, '\P{-in_Shavian}', "");
+    Expect(0, 66688, '\P{^-in_Shavian}', "");
+    Error('\p{ /a/IN_siddham}');
+    Error('\P{ /a/IN_siddham}');
     Expect(1, 71167, '\p{insiddham}', "");
     Expect(0, 71167, '\p{^insiddham}', "");
     Expect(0, 71167, '\P{insiddham}', "");
@@ -105267,26 +106321,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71168, '\p{^insiddham}', "");
     Expect(1, 71168, '\P{insiddham}', "");
     Expect(0, 71168, '\P{^insiddham}', "");
-    Expect(1, 71167, '\p{	_IN_siddham}', "");
-    Expect(0, 71167, '\p{^	_IN_siddham}', "");
-    Expect(0, 71167, '\P{	_IN_siddham}', "");
-    Expect(1, 71167, '\P{^	_IN_siddham}', "");
-    Expect(0, 71168, '\p{	_IN_siddham}', "");
-    Expect(1, 71168, '\p{^	_IN_siddham}', "");
-    Expect(1, 71168, '\P{	_IN_siddham}', "");
-    Expect(0, 71168, '\P{^	_IN_siddham}', "");
-    Error('\p{/a/- In_siddham}');
-    Error('\P{/a/- In_siddham}');
-    Expect(1, 71167, '\p{_In_Siddham}', "");
-    Expect(0, 71167, '\p{^_In_Siddham}', "");
-    Expect(0, 71167, '\P{_In_Siddham}', "");
-    Expect(1, 71167, '\P{^_In_Siddham}', "");
-    Expect(0, 71168, '\p{_In_Siddham}', "");
-    Expect(1, 71168, '\p{^_In_Siddham}', "");
-    Expect(1, 71168, '\P{_In_Siddham}', "");
-    Expect(0, 71168, '\P{^_In_Siddham}', "");
-    Error('\p{:=__IN_Sinhala}');
-    Error('\P{:=__IN_Sinhala}');
+    Expect(1, 71167, '\p{	 in_siddham}', "");
+    Expect(0, 71167, '\p{^	 in_siddham}', "");
+    Expect(0, 71167, '\P{	 in_siddham}', "");
+    Expect(1, 71167, '\P{^	 in_siddham}', "");
+    Expect(0, 71168, '\p{	 in_siddham}', "");
+    Expect(1, 71168, '\p{^	 in_siddham}', "");
+    Expect(1, 71168, '\P{	 in_siddham}', "");
+    Expect(0, 71168, '\P{^	 in_siddham}', "");
+    Error('\p{-:=In_Siddham}');
+    Error('\P{-:=In_Siddham}');
+    Expect(1, 71167, '\p{	 in_SIDDHAM}', "");
+    Expect(0, 71167, '\p{^	 in_SIDDHAM}', "");
+    Expect(0, 71167, '\P{	 in_SIDDHAM}', "");
+    Expect(1, 71167, '\P{^	 in_SIDDHAM}', "");
+    Expect(0, 71168, '\p{	 in_SIDDHAM}', "");
+    Expect(1, 71168, '\p{^	 in_SIDDHAM}', "");
+    Expect(1, 71168, '\P{	 in_SIDDHAM}', "");
+    Expect(0, 71168, '\P{^	 in_SIDDHAM}', "");
+    Error('\p{:=		In_SINHALA}');
+    Error('\P{:=		In_SINHALA}');
     Expect(1, 3583, '\p{insinhala}', "");
     Expect(0, 3583, '\p{^insinhala}', "");
     Expect(0, 3583, '\P{insinhala}', "");
@@ -105295,26 +106349,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3584, '\p{^insinhala}', "");
     Expect(1, 3584, '\P{insinhala}', "");
     Expect(0, 3584, '\P{^insinhala}', "");
-    Expect(1, 3583, '\p{	-In_sinhala}', "");
-    Expect(0, 3583, '\p{^	-In_sinhala}', "");
-    Expect(0, 3583, '\P{	-In_sinhala}', "");
-    Expect(1, 3583, '\P{^	-In_sinhala}', "");
-    Expect(0, 3584, '\p{	-In_sinhala}', "");
-    Expect(1, 3584, '\p{^	-In_sinhala}', "");
-    Expect(1, 3584, '\P{	-In_sinhala}', "");
-    Expect(0, 3584, '\P{^	-In_sinhala}', "");
-    Error('\p{IN_SINHALA/a/}');
-    Error('\P{IN_SINHALA/a/}');
-    Expect(1, 3583, '\p{- In_Sinhala}', "");
-    Expect(0, 3583, '\p{^- In_Sinhala}', "");
-    Expect(0, 3583, '\P{- In_Sinhala}', "");
-    Expect(1, 3583, '\P{^- In_Sinhala}', "");
-    Expect(0, 3584, '\p{- In_Sinhala}', "");
-    Expect(1, 3584, '\p{^- In_Sinhala}', "");
-    Expect(1, 3584, '\P{- In_Sinhala}', "");
-    Expect(0, 3584, '\P{^- In_Sinhala}', "");
-    Error('\p{	In_Sogdian:=}');
-    Error('\P{	In_Sogdian:=}');
+    Expect(1, 3583, '\p{_-In_Sinhala}', "");
+    Expect(0, 3583, '\p{^_-In_Sinhala}', "");
+    Expect(0, 3583, '\P{_-In_Sinhala}', "");
+    Expect(1, 3583, '\P{^_-In_Sinhala}', "");
+    Expect(0, 3584, '\p{_-In_Sinhala}', "");
+    Expect(1, 3584, '\p{^_-In_Sinhala}', "");
+    Expect(1, 3584, '\P{_-In_Sinhala}', "");
+    Expect(0, 3584, '\P{^_-In_Sinhala}', "");
+    Error('\p{	:=In_sinhala}');
+    Error('\P{	:=In_sinhala}');
+    Expect(1, 3583, '\p{ -in_sinhala}', "");
+    Expect(0, 3583, '\p{^ -in_sinhala}', "");
+    Expect(0, 3583, '\P{ -in_sinhala}', "");
+    Expect(1, 3583, '\P{^ -in_sinhala}', "");
+    Expect(0, 3584, '\p{ -in_sinhala}', "");
+    Expect(1, 3584, '\p{^ -in_sinhala}', "");
+    Expect(1, 3584, '\P{ -in_sinhala}', "");
+    Expect(0, 3584, '\P{^ -in_sinhala}', "");
+    Error('\p{/a/__IN_Sogdian}');
+    Error('\P{/a/__IN_Sogdian}');
     Expect(1, 69487, '\p{insogdian}', "");
     Expect(0, 69487, '\p{^insogdian}', "");
     Expect(0, 69487, '\P{insogdian}', "");
@@ -105323,26 +106377,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69488, '\p{^insogdian}', "");
     Expect(1, 69488, '\P{insogdian}', "");
     Expect(0, 69488, '\P{^insogdian}', "");
-    Expect(1, 69487, '\p{ -IN_sogdian}', "");
-    Expect(0, 69487, '\p{^ -IN_sogdian}', "");
-    Expect(0, 69487, '\P{ -IN_sogdian}', "");
-    Expect(1, 69487, '\P{^ -IN_sogdian}', "");
-    Expect(0, 69488, '\p{ -IN_sogdian}', "");
-    Expect(1, 69488, '\p{^ -IN_sogdian}', "");
-    Expect(1, 69488, '\P{ -IN_sogdian}', "");
-    Expect(0, 69488, '\P{^ -IN_sogdian}', "");
-    Error('\p{:= in_Sogdian}');
-    Error('\P{:= in_Sogdian}');
-    Expect(1, 69487, '\p{--In_Sogdian}', "");
-    Expect(0, 69487, '\p{^--In_Sogdian}', "");
-    Expect(0, 69487, '\P{--In_Sogdian}', "");
-    Expect(1, 69487, '\P{^--In_Sogdian}', "");
-    Expect(0, 69488, '\p{--In_Sogdian}', "");
-    Expect(1, 69488, '\p{^--In_Sogdian}', "");
-    Expect(1, 69488, '\P{--In_Sogdian}', "");
-    Expect(0, 69488, '\P{^--In_Sogdian}', "");
-    Error('\p{:=	_In_Sora_SOMPENG}');
-    Error('\P{:=	_In_Sora_SOMPENG}');
+    Expect(1, 69487, '\p{-_in_Sogdian}', "");
+    Expect(0, 69487, '\p{^-_in_Sogdian}', "");
+    Expect(0, 69487, '\P{-_in_Sogdian}', "");
+    Expect(1, 69487, '\P{^-_in_Sogdian}', "");
+    Expect(0, 69488, '\p{-_in_Sogdian}', "");
+    Expect(1, 69488, '\p{^-_in_Sogdian}', "");
+    Expect(1, 69488, '\P{-_in_Sogdian}', "");
+    Expect(0, 69488, '\P{^-_in_Sogdian}', "");
+    Error('\p{_/a/In_Sogdian}');
+    Error('\P{_/a/In_Sogdian}');
+    Expect(1, 69487, '\p{_IN_SOGDIAN}', "");
+    Expect(0, 69487, '\p{^_IN_SOGDIAN}', "");
+    Expect(0, 69487, '\P{_IN_SOGDIAN}', "");
+    Expect(1, 69487, '\P{^_IN_SOGDIAN}', "");
+    Expect(0, 69488, '\p{_IN_SOGDIAN}', "");
+    Expect(1, 69488, '\p{^_IN_SOGDIAN}', "");
+    Expect(1, 69488, '\P{_IN_SOGDIAN}', "");
+    Expect(0, 69488, '\P{^_IN_SOGDIAN}', "");
+    Error('\p{/a/	-in_SORA_SOMPENG}');
+    Error('\P{/a/	-in_SORA_SOMPENG}');
     Expect(1, 69887, '\p{insorasompeng}', "");
     Expect(0, 69887, '\p{^insorasompeng}', "");
     Expect(0, 69887, '\P{insorasompeng}', "");
@@ -105351,26 +106405,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69888, '\p{^insorasompeng}', "");
     Expect(1, 69888, '\P{insorasompeng}', "");
     Expect(0, 69888, '\P{^insorasompeng}', "");
-    Expect(1, 69887, '\p{	_In_Sora_Sompeng}', "");
-    Expect(0, 69887, '\p{^	_In_Sora_Sompeng}', "");
-    Expect(0, 69887, '\P{	_In_Sora_Sompeng}', "");
-    Expect(1, 69887, '\P{^	_In_Sora_Sompeng}', "");
-    Expect(0, 69888, '\p{	_In_Sora_Sompeng}', "");
-    Expect(1, 69888, '\p{^	_In_Sora_Sompeng}', "");
-    Expect(1, 69888, '\P{	_In_Sora_Sompeng}', "");
-    Expect(0, 69888, '\P{^	_In_Sora_Sompeng}', "");
-    Error('\p{ 	in_Sora_SOMPENG/a/}');
-    Error('\P{ 	in_Sora_SOMPENG/a/}');
-    Expect(1, 69887, '\p{		in_Sora_Sompeng}', "");
-    Expect(0, 69887, '\p{^		in_Sora_Sompeng}', "");
-    Expect(0, 69887, '\P{		in_Sora_Sompeng}', "");
-    Expect(1, 69887, '\P{^		in_Sora_Sompeng}', "");
-    Expect(0, 69888, '\p{		in_Sora_Sompeng}', "");
-    Expect(1, 69888, '\p{^		in_Sora_Sompeng}', "");
-    Expect(1, 69888, '\P{		in_Sora_Sompeng}', "");
-    Expect(0, 69888, '\P{^		in_Sora_Sompeng}', "");
-    Error('\p{ /a/in_SOYOMBO}');
-    Error('\P{ /a/in_SOYOMBO}');
+    Expect(1, 69887, '\p{_IN_SORA_SOMPENG}', "");
+    Expect(0, 69887, '\p{^_IN_SORA_SOMPENG}', "");
+    Expect(0, 69887, '\P{_IN_SORA_SOMPENG}', "");
+    Expect(1, 69887, '\P{^_IN_SORA_SOMPENG}', "");
+    Expect(0, 69888, '\p{_IN_SORA_SOMPENG}', "");
+    Expect(1, 69888, '\p{^_IN_SORA_SOMPENG}', "");
+    Expect(1, 69888, '\P{_IN_SORA_SOMPENG}', "");
+    Expect(0, 69888, '\P{^_IN_SORA_SOMPENG}', "");
+    Error('\p{:=  In_Sora_Sompeng}');
+    Error('\P{:=  In_Sora_Sompeng}');
+    Expect(1, 69887, '\p{ -IN_SORA_Sompeng}', "");
+    Expect(0, 69887, '\p{^ -IN_SORA_Sompeng}', "");
+    Expect(0, 69887, '\P{ -IN_SORA_Sompeng}', "");
+    Expect(1, 69887, '\P{^ -IN_SORA_Sompeng}', "");
+    Expect(0, 69888, '\p{ -IN_SORA_Sompeng}', "");
+    Expect(1, 69888, '\p{^ -IN_SORA_Sompeng}', "");
+    Expect(1, 69888, '\P{ -IN_SORA_Sompeng}', "");
+    Expect(0, 69888, '\P{^ -IN_SORA_Sompeng}', "");
+    Error('\p{/a/ -IN_Soyombo}');
+    Error('\P{/a/ -IN_Soyombo}');
     Expect(1, 72367, '\p{insoyombo}', "");
     Expect(0, 72367, '\p{^insoyombo}', "");
     Expect(0, 72367, '\P{insoyombo}', "");
@@ -105379,26 +106433,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72368, '\p{^insoyombo}', "");
     Expect(1, 72368, '\P{insoyombo}', "");
     Expect(0, 72368, '\P{^insoyombo}', "");
-    Expect(1, 72367, '\p{_	IN_soyombo}', "");
-    Expect(0, 72367, '\p{^_	IN_soyombo}', "");
-    Expect(0, 72367, '\P{_	IN_soyombo}', "");
-    Expect(1, 72367, '\P{^_	IN_soyombo}', "");
-    Expect(0, 72368, '\p{_	IN_soyombo}', "");
-    Expect(1, 72368, '\p{^_	IN_soyombo}', "");
-    Expect(1, 72368, '\P{_	IN_soyombo}', "");
-    Expect(0, 72368, '\P{^_	IN_soyombo}', "");
-    Error('\p{	 IN_Soyombo/a/}');
-    Error('\P{	 IN_Soyombo/a/}');
-    Expect(1, 72367, '\p{ In_Soyombo}', "");
-    Expect(0, 72367, '\p{^ In_Soyombo}', "");
-    Expect(0, 72367, '\P{ In_Soyombo}', "");
-    Expect(1, 72367, '\P{^ In_Soyombo}', "");
-    Expect(0, 72368, '\p{ In_Soyombo}', "");
-    Expect(1, 72368, '\p{^ In_Soyombo}', "");
-    Expect(1, 72368, '\P{ In_Soyombo}', "");
-    Expect(0, 72368, '\P{^ In_Soyombo}', "");
-    Error('\p{-IN_Sundanese:=}');
-    Error('\P{-IN_Sundanese:=}');
+    Expect(1, 72367, '\p{_ in_Soyombo}', "");
+    Expect(0, 72367, '\p{^_ in_Soyombo}', "");
+    Expect(0, 72367, '\P{_ in_Soyombo}', "");
+    Expect(1, 72367, '\P{^_ in_Soyombo}', "");
+    Expect(0, 72368, '\p{_ in_Soyombo}', "");
+    Expect(1, 72368, '\p{^_ in_Soyombo}', "");
+    Expect(1, 72368, '\P{_ in_Soyombo}', "");
+    Expect(0, 72368, '\P{^_ in_Soyombo}', "");
+    Error('\p{/a/in_soyombo}');
+    Error('\P{/a/in_soyombo}');
+    Expect(1, 72367, '\p{	 In_soyombo}', "");
+    Expect(0, 72367, '\p{^	 In_soyombo}', "");
+    Expect(0, 72367, '\P{	 In_soyombo}', "");
+    Expect(1, 72367, '\P{^	 In_soyombo}', "");
+    Expect(0, 72368, '\p{	 In_soyombo}', "");
+    Expect(1, 72368, '\p{^	 In_soyombo}', "");
+    Expect(1, 72368, '\P{	 In_soyombo}', "");
+    Expect(0, 72368, '\P{^	 In_soyombo}', "");
+    Error('\p{:=_	IN_Sundanese}');
+    Error('\P{:=_	IN_Sundanese}');
     Expect(1, 7103, '\p{insundanese}', "");
     Expect(0, 7103, '\p{^insundanese}', "");
     Expect(0, 7103, '\P{insundanese}', "");
@@ -105407,26 +106461,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7104, '\p{^insundanese}', "");
     Expect(1, 7104, '\P{insundanese}', "");
     Expect(0, 7104, '\P{^insundanese}', "");
-    Expect(1, 7103, '\p{ _In_Sundanese}', "");
-    Expect(0, 7103, '\p{^ _In_Sundanese}', "");
-    Expect(0, 7103, '\P{ _In_Sundanese}', "");
-    Expect(1, 7103, '\P{^ _In_Sundanese}', "");
-    Expect(0, 7104, '\p{ _In_Sundanese}', "");
-    Expect(1, 7104, '\p{^ _In_Sundanese}', "");
-    Expect(1, 7104, '\P{ _In_Sundanese}', "");
-    Expect(0, 7104, '\P{^ _In_Sundanese}', "");
-    Error('\p{In_Sundanese/a/}');
-    Error('\P{In_Sundanese/a/}');
-    Expect(1, 7103, '\p{_IN_Sundanese}', "");
-    Expect(0, 7103, '\p{^_IN_Sundanese}', "");
-    Expect(0, 7103, '\P{_IN_Sundanese}', "");
-    Expect(1, 7103, '\P{^_IN_Sundanese}', "");
-    Expect(0, 7104, '\p{_IN_Sundanese}', "");
-    Expect(1, 7104, '\p{^_IN_Sundanese}', "");
-    Expect(1, 7104, '\P{_IN_Sundanese}', "");
-    Expect(0, 7104, '\P{^_IN_Sundanese}', "");
-    Error('\p{/a/--In_syloti_nagri}');
-    Error('\P{/a/--In_syloti_nagri}');
+    Expect(1, 7103, '\p{--in_sundanese}', "");
+    Expect(0, 7103, '\p{^--in_sundanese}', "");
+    Expect(0, 7103, '\P{--in_sundanese}', "");
+    Expect(1, 7103, '\P{^--in_sundanese}', "");
+    Expect(0, 7104, '\p{--in_sundanese}', "");
+    Expect(1, 7104, '\p{^--in_sundanese}', "");
+    Expect(1, 7104, '\P{--in_sundanese}', "");
+    Expect(0, 7104, '\P{^--in_sundanese}', "");
+    Error('\p{ 	In_Sundanese:=}');
+    Error('\P{ 	In_Sundanese:=}');
+    Expect(1, 7103, '\p{_-in_SUNDANESE}', "");
+    Expect(0, 7103, '\p{^_-in_SUNDANESE}', "");
+    Expect(0, 7103, '\P{_-in_SUNDANESE}', "");
+    Expect(1, 7103, '\P{^_-in_SUNDANESE}', "");
+    Expect(0, 7104, '\p{_-in_SUNDANESE}', "");
+    Expect(1, 7104, '\p{^_-in_SUNDANESE}', "");
+    Expect(1, 7104, '\P{_-in_SUNDANESE}', "");
+    Expect(0, 7104, '\P{^_-in_SUNDANESE}', "");
+    Error('\p{:=	IN_Syloti_nagri}');
+    Error('\P{:=	IN_Syloti_nagri}');
     Expect(1, 43055, '\p{insylotinagri}', "");
     Expect(0, 43055, '\p{^insylotinagri}', "");
     Expect(0, 43055, '\P{insylotinagri}', "");
@@ -105435,26 +106489,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43056, '\p{^insylotinagri}', "");
     Expect(1, 43056, '\P{insylotinagri}', "");
     Expect(0, 43056, '\P{^insylotinagri}', "");
-    Expect(1, 43055, '\p{_In_Syloti_Nagri}', "");
-    Expect(0, 43055, '\p{^_In_Syloti_Nagri}', "");
-    Expect(0, 43055, '\P{_In_Syloti_Nagri}', "");
-    Expect(1, 43055, '\P{^_In_Syloti_Nagri}', "");
-    Expect(0, 43056, '\p{_In_Syloti_Nagri}', "");
-    Expect(1, 43056, '\p{^_In_Syloti_Nagri}', "");
-    Expect(1, 43056, '\P{_In_Syloti_Nagri}', "");
-    Expect(0, 43056, '\P{^_In_Syloti_Nagri}', "");
-    Error('\p{-_In_SYLOTI_NAGRI/a/}');
-    Error('\P{-_In_SYLOTI_NAGRI/a/}');
-    Expect(1, 43055, '\p{-In_syloti_nagri}', "");
-    Expect(0, 43055, '\p{^-In_syloti_nagri}', "");
-    Expect(0, 43055, '\P{-In_syloti_nagri}', "");
-    Expect(1, 43055, '\P{^-In_syloti_nagri}', "");
-    Expect(0, 43056, '\p{-In_syloti_nagri}', "");
-    Expect(1, 43056, '\p{^-In_syloti_nagri}', "");
-    Expect(1, 43056, '\P{-In_syloti_nagri}', "");
-    Expect(0, 43056, '\P{^-In_syloti_nagri}', "");
-    Error('\p{-/a/In_Syriac}');
-    Error('\P{-/a/In_Syriac}');
+    Expect(1, 43055, '\p{	In_syloti_NAGRI}', "");
+    Expect(0, 43055, '\p{^	In_syloti_NAGRI}', "");
+    Expect(0, 43055, '\P{	In_syloti_NAGRI}', "");
+    Expect(1, 43055, '\P{^	In_syloti_NAGRI}', "");
+    Expect(0, 43056, '\p{	In_syloti_NAGRI}', "");
+    Expect(1, 43056, '\p{^	In_syloti_NAGRI}', "");
+    Expect(1, 43056, '\P{	In_syloti_NAGRI}', "");
+    Expect(0, 43056, '\P{^	In_syloti_NAGRI}', "");
+    Error('\p{/a/	In_syloti_Nagri}');
+    Error('\P{/a/	In_syloti_Nagri}');
+    Expect(1, 43055, '\p{	_in_SYLOTI_nagri}', "");
+    Expect(0, 43055, '\p{^	_in_SYLOTI_nagri}', "");
+    Expect(0, 43055, '\P{	_in_SYLOTI_nagri}', "");
+    Expect(1, 43055, '\P{^	_in_SYLOTI_nagri}', "");
+    Expect(0, 43056, '\p{	_in_SYLOTI_nagri}', "");
+    Expect(1, 43056, '\p{^	_in_SYLOTI_nagri}', "");
+    Expect(1, 43056, '\P{	_in_SYLOTI_nagri}', "");
+    Expect(0, 43056, '\P{^	_in_SYLOTI_nagri}', "");
+    Error('\p{- IN_Syriac:=}');
+    Error('\P{- IN_Syriac:=}');
     Expect(1, 1871, '\p{insyriac}', "");
     Expect(0, 1871, '\p{^insyriac}', "");
     Expect(0, 1871, '\P{insyriac}', "");
@@ -105463,26 +106517,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1872, '\p{^insyriac}', "");
     Expect(1, 1872, '\P{insyriac}', "");
     Expect(0, 1872, '\P{^insyriac}', "");
-    Expect(1, 1871, '\p{ -in_SYRIAC}', "");
-    Expect(0, 1871, '\p{^ -in_SYRIAC}', "");
-    Expect(0, 1871, '\P{ -in_SYRIAC}', "");
-    Expect(1, 1871, '\P{^ -in_SYRIAC}', "");
-    Expect(0, 1872, '\p{ -in_SYRIAC}', "");
-    Expect(1, 1872, '\p{^ -in_SYRIAC}', "");
-    Expect(1, 1872, '\P{ -in_SYRIAC}', "");
-    Expect(0, 1872, '\P{^ -in_SYRIAC}', "");
-    Error('\p{ :=in_syriac}');
-    Error('\P{ :=in_syriac}');
-    Expect(1, 1871, '\p{-_In_Syriac}', "");
-    Expect(0, 1871, '\p{^-_In_Syriac}', "");
-    Expect(0, 1871, '\P{-_In_Syriac}', "");
-    Expect(1, 1871, '\P{^-_In_Syriac}', "");
-    Expect(0, 1872, '\p{-_In_Syriac}', "");
-    Expect(1, 1872, '\p{^-_In_Syriac}', "");
-    Expect(1, 1872, '\P{-_In_Syriac}', "");
-    Expect(0, 1872, '\P{^-_In_Syriac}', "");
-    Error('\p{-:=In_Tagalog}');
-    Error('\P{-:=In_Tagalog}');
+    Expect(1, 1871, '\p{	_in_syriac}', "");
+    Expect(0, 1871, '\p{^	_in_syriac}', "");
+    Expect(0, 1871, '\P{	_in_syriac}', "");
+    Expect(1, 1871, '\P{^	_in_syriac}', "");
+    Expect(0, 1872, '\p{	_in_syriac}', "");
+    Expect(1, 1872, '\p{^	_in_syriac}', "");
+    Expect(1, 1872, '\P{	_in_syriac}', "");
+    Expect(0, 1872, '\P{^	_in_syriac}', "");
+    Error('\p{ :=in_Syriac}');
+    Error('\P{ :=in_Syriac}');
+    Expect(1, 1871, '\p{ IN_syriac}', "");
+    Expect(0, 1871, '\p{^ IN_syriac}', "");
+    Expect(0, 1871, '\P{ IN_syriac}', "");
+    Expect(1, 1871, '\P{^ IN_syriac}', "");
+    Expect(0, 1872, '\p{ IN_syriac}', "");
+    Expect(1, 1872, '\p{^ IN_syriac}', "");
+    Expect(1, 1872, '\P{ IN_syriac}', "");
+    Expect(0, 1872, '\P{^ IN_syriac}', "");
+    Error('\p{-_In_TAGALOG:=}');
+    Error('\P{-_In_TAGALOG:=}');
     Expect(1, 5919, '\p{intagalog}', "");
     Expect(0, 5919, '\p{^intagalog}', "");
     Expect(0, 5919, '\P{intagalog}', "");
@@ -105491,26 +106545,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5920, '\p{^intagalog}', "");
     Expect(1, 5920, '\P{intagalog}', "");
     Expect(0, 5920, '\P{^intagalog}', "");
-    Expect(1, 5919, '\p{_In_Tagalog}', "");
-    Expect(0, 5919, '\p{^_In_Tagalog}', "");
-    Expect(0, 5919, '\P{_In_Tagalog}', "");
-    Expect(1, 5919, '\P{^_In_Tagalog}', "");
-    Expect(0, 5920, '\p{_In_Tagalog}', "");
-    Expect(1, 5920, '\p{^_In_Tagalog}', "");
-    Expect(1, 5920, '\P{_In_Tagalog}', "");
-    Expect(0, 5920, '\P{^_In_Tagalog}', "");
-    Error('\p{_:=In_TAGALOG}');
-    Error('\P{_:=In_TAGALOG}');
-    Expect(1, 5919, '\p{	In_Tagalog}', "");
-    Expect(0, 5919, '\p{^	In_Tagalog}', "");
-    Expect(0, 5919, '\P{	In_Tagalog}', "");
-    Expect(1, 5919, '\P{^	In_Tagalog}', "");
-    Expect(0, 5920, '\p{	In_Tagalog}', "");
-    Expect(1, 5920, '\p{^	In_Tagalog}', "");
-    Expect(1, 5920, '\P{	In_Tagalog}', "");
-    Expect(0, 5920, '\P{^	In_Tagalog}', "");
-    Error('\p{:= IN_tagbanwa}');
-    Error('\P{:= IN_tagbanwa}');
+    Expect(1, 5919, '\p{		In_Tagalog}', "");
+    Expect(0, 5919, '\p{^		In_Tagalog}', "");
+    Expect(0, 5919, '\P{		In_Tagalog}', "");
+    Expect(1, 5919, '\P{^		In_Tagalog}', "");
+    Expect(0, 5920, '\p{		In_Tagalog}', "");
+    Expect(1, 5920, '\p{^		In_Tagalog}', "");
+    Expect(1, 5920, '\P{		In_Tagalog}', "");
+    Expect(0, 5920, '\P{^		In_Tagalog}', "");
+    Error('\p{/a/	-IN_Tagalog}');
+    Error('\P{/a/	-IN_Tagalog}');
+    Expect(1, 5919, '\p{-	IN_Tagalog}', "");
+    Expect(0, 5919, '\p{^-	IN_Tagalog}', "");
+    Expect(0, 5919, '\P{-	IN_Tagalog}', "");
+    Expect(1, 5919, '\P{^-	IN_Tagalog}', "");
+    Expect(0, 5920, '\p{-	IN_Tagalog}', "");
+    Expect(1, 5920, '\p{^-	IN_Tagalog}', "");
+    Expect(1, 5920, '\P{-	IN_Tagalog}', "");
+    Expect(0, 5920, '\P{^-	IN_Tagalog}', "");
+    Error('\p{-/a/In_TAGBANWA}');
+    Error('\P{-/a/In_TAGBANWA}');
     Expect(1, 6015, '\p{intagbanwa}', "");
     Expect(0, 6015, '\p{^intagbanwa}', "");
     Expect(0, 6015, '\P{intagbanwa}', "");
@@ -105519,26 +106573,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6016, '\p{^intagbanwa}', "");
     Expect(1, 6016, '\P{intagbanwa}', "");
     Expect(0, 6016, '\P{^intagbanwa}', "");
-    Expect(1, 6015, '\p{-	In_Tagbanwa}', "");
-    Expect(0, 6015, '\p{^-	In_Tagbanwa}', "");
-    Expect(0, 6015, '\P{-	In_Tagbanwa}', "");
-    Expect(1, 6015, '\P{^-	In_Tagbanwa}', "");
-    Expect(0, 6016, '\p{-	In_Tagbanwa}', "");
-    Expect(1, 6016, '\p{^-	In_Tagbanwa}', "");
-    Expect(1, 6016, '\P{-	In_Tagbanwa}', "");
-    Expect(0, 6016, '\P{^-	In_Tagbanwa}', "");
-    Error('\p{	:=IN_Tagbanwa}');
-    Error('\P{	:=IN_Tagbanwa}');
-    Expect(1, 6015, '\p{- IN_TAGBANWA}', "");
-    Expect(0, 6015, '\p{^- IN_TAGBANWA}', "");
-    Expect(0, 6015, '\P{- IN_TAGBANWA}', "");
-    Expect(1, 6015, '\P{^- IN_TAGBANWA}', "");
-    Expect(0, 6016, '\p{- IN_TAGBANWA}', "");
-    Expect(1, 6016, '\p{^- IN_TAGBANWA}', "");
-    Expect(1, 6016, '\P{- IN_TAGBANWA}', "");
-    Expect(0, 6016, '\P{^- IN_TAGBANWA}', "");
-    Error('\p{-	In_tai_LE/a/}');
-    Error('\P{-	In_tai_LE/a/}');
+    Expect(1, 6015, '\p{- In_Tagbanwa}', "");
+    Expect(0, 6015, '\p{^- In_Tagbanwa}', "");
+    Expect(0, 6015, '\P{- In_Tagbanwa}', "");
+    Expect(1, 6015, '\P{^- In_Tagbanwa}', "");
+    Expect(0, 6016, '\p{- In_Tagbanwa}', "");
+    Expect(1, 6016, '\p{^- In_Tagbanwa}', "");
+    Expect(1, 6016, '\P{- In_Tagbanwa}', "");
+    Expect(0, 6016, '\P{^- In_Tagbanwa}', "");
+    Error('\p{_	IN_TAGBANWA/a/}');
+    Error('\P{_	IN_TAGBANWA/a/}');
+    Expect(1, 6015, '\p{_	IN_Tagbanwa}', "");
+    Expect(0, 6015, '\p{^_	IN_Tagbanwa}', "");
+    Expect(0, 6015, '\P{_	IN_Tagbanwa}', "");
+    Expect(1, 6015, '\P{^_	IN_Tagbanwa}', "");
+    Expect(0, 6016, '\p{_	IN_Tagbanwa}', "");
+    Expect(1, 6016, '\p{^_	IN_Tagbanwa}', "");
+    Expect(1, 6016, '\P{_	IN_Tagbanwa}', "");
+    Expect(0, 6016, '\P{^_	IN_Tagbanwa}', "");
+    Error('\p{_ IN_tai_Le:=}');
+    Error('\P{_ IN_tai_Le:=}');
     Expect(1, 6527, '\p{intaile}', "");
     Expect(0, 6527, '\p{^intaile}', "");
     Expect(0, 6527, '\P{intaile}', "");
@@ -105547,26 +106601,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6528, '\p{^intaile}', "");
     Expect(1, 6528, '\P{intaile}', "");
     Expect(0, 6528, '\P{^intaile}', "");
-    Expect(1, 6527, '\p{-	IN_Tai_LE}', "");
-    Expect(0, 6527, '\p{^-	IN_Tai_LE}', "");
-    Expect(0, 6527, '\P{-	IN_Tai_LE}', "");
-    Expect(1, 6527, '\P{^-	IN_Tai_LE}', "");
-    Expect(0, 6528, '\p{-	IN_Tai_LE}', "");
-    Expect(1, 6528, '\p{^-	IN_Tai_LE}', "");
-    Expect(1, 6528, '\P{-	IN_Tai_LE}', "");
-    Expect(0, 6528, '\P{^-	IN_Tai_LE}', "");
-    Error('\p{-/a/IN_TAI_Le}');
-    Error('\P{-/a/IN_TAI_Le}');
-    Expect(1, 6527, '\p{	in_Tai_Le}', "");
-    Expect(0, 6527, '\p{^	in_Tai_Le}', "");
-    Expect(0, 6527, '\P{	in_Tai_Le}', "");
-    Expect(1, 6527, '\P{^	in_Tai_Le}', "");
-    Expect(0, 6528, '\p{	in_Tai_Le}', "");
-    Expect(1, 6528, '\p{^	in_Tai_Le}', "");
-    Expect(1, 6528, '\P{	in_Tai_Le}', "");
-    Expect(0, 6528, '\P{^	in_Tai_Le}', "");
-    Error('\p{--In_tai_tham:=}');
-    Error('\P{--In_tai_tham:=}');
+    Expect(1, 6527, '\p{ -IN_TAI_Le}', "");
+    Expect(0, 6527, '\p{^ -IN_TAI_Le}', "");
+    Expect(0, 6527, '\P{ -IN_TAI_Le}', "");
+    Expect(1, 6527, '\P{^ -IN_TAI_Le}', "");
+    Expect(0, 6528, '\p{ -IN_TAI_Le}', "");
+    Expect(1, 6528, '\p{^ -IN_TAI_Le}', "");
+    Expect(1, 6528, '\P{ -IN_TAI_Le}', "");
+    Expect(0, 6528, '\P{^ -IN_TAI_Le}', "");
+    Error('\p{:= -IN_Tai_LE}');
+    Error('\P{:= -IN_Tai_LE}');
+    Expect(1, 6527, '\p{	 IN_tai_Le}', "");
+    Expect(0, 6527, '\p{^	 IN_tai_Le}', "");
+    Expect(0, 6527, '\P{	 IN_tai_Le}', "");
+    Expect(1, 6527, '\P{^	 IN_tai_Le}', "");
+    Expect(0, 6528, '\p{	 IN_tai_Le}', "");
+    Expect(1, 6528, '\p{^	 IN_tai_Le}', "");
+    Expect(1, 6528, '\P{	 IN_tai_Le}', "");
+    Expect(0, 6528, '\P{^	 IN_tai_Le}', "");
+    Error('\p{/a/_In_TAI_THAM}');
+    Error('\P{/a/_In_TAI_THAM}');
     Expect(1, 6831, '\p{intaitham}', "");
     Expect(0, 6831, '\p{^intaitham}', "");
     Expect(0, 6831, '\P{intaitham}', "");
@@ -105575,26 +106629,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6832, '\p{^intaitham}', "");
     Expect(1, 6832, '\P{intaitham}', "");
     Expect(0, 6832, '\P{^intaitham}', "");
-    Expect(1, 6831, '\p{__IN_tai_THAM}', "");
-    Expect(0, 6831, '\p{^__IN_tai_THAM}', "");
-    Expect(0, 6831, '\P{__IN_tai_THAM}', "");
-    Expect(1, 6831, '\P{^__IN_tai_THAM}', "");
-    Expect(0, 6832, '\p{__IN_tai_THAM}', "");
-    Expect(1, 6832, '\p{^__IN_tai_THAM}', "");
-    Expect(1, 6832, '\P{__IN_tai_THAM}', "");
-    Expect(0, 6832, '\P{^__IN_tai_THAM}', "");
-    Error('\p{_	In_Tai_tham/a/}');
-    Error('\P{_	In_Tai_tham/a/}');
-    Expect(1, 6831, '\p{_	in_Tai_THAM}', "");
-    Expect(0, 6831, '\p{^_	in_Tai_THAM}', "");
-    Expect(0, 6831, '\P{_	in_Tai_THAM}', "");
-    Expect(1, 6831, '\P{^_	in_Tai_THAM}', "");
-    Expect(0, 6832, '\p{_	in_Tai_THAM}', "");
-    Expect(1, 6832, '\p{^_	in_Tai_THAM}', "");
-    Expect(1, 6832, '\P{_	in_Tai_THAM}', "");
-    Expect(0, 6832, '\P{^_	in_Tai_THAM}', "");
-    Error('\p{:=__In_TAI_viet}');
-    Error('\P{:=__In_TAI_viet}');
+    Expect(1, 6831, '\p{_	In_Tai_tham}', "");
+    Expect(0, 6831, '\p{^_	In_Tai_tham}', "");
+    Expect(0, 6831, '\P{_	In_Tai_tham}', "");
+    Expect(1, 6831, '\P{^_	In_Tai_tham}', "");
+    Expect(0, 6832, '\p{_	In_Tai_tham}', "");
+    Expect(1, 6832, '\p{^_	In_Tai_tham}', "");
+    Expect(1, 6832, '\P{_	In_Tai_tham}', "");
+    Expect(0, 6832, '\P{^_	In_Tai_tham}', "");
+    Error('\p{ :=in_tai_Tham}');
+    Error('\P{ :=in_tai_Tham}');
+    Expect(1, 6831, '\p{-in_Tai_THAM}', "");
+    Expect(0, 6831, '\p{^-in_Tai_THAM}', "");
+    Expect(0, 6831, '\P{-in_Tai_THAM}', "");
+    Expect(1, 6831, '\P{^-in_Tai_THAM}', "");
+    Expect(0, 6832, '\p{-in_Tai_THAM}', "");
+    Expect(1, 6832, '\p{^-in_Tai_THAM}', "");
+    Expect(1, 6832, '\P{-in_Tai_THAM}', "");
+    Expect(0, 6832, '\P{^-in_Tai_THAM}', "");
+    Error('\p{/a/IN_tai_viet}');
+    Error('\P{/a/IN_tai_viet}');
     Expect(1, 43743, '\p{intaiviet}', "");
     Expect(0, 43743, '\p{^intaiviet}', "");
     Expect(0, 43743, '\P{intaiviet}', "");
@@ -105603,26 +106657,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43744, '\p{^intaiviet}', "");
     Expect(1, 43744, '\P{intaiviet}', "");
     Expect(0, 43744, '\P{^intaiviet}', "");
-    Expect(1, 43743, '\p{-In_Tai_Viet}', "");
-    Expect(0, 43743, '\p{^-In_Tai_Viet}', "");
-    Expect(0, 43743, '\P{-In_Tai_Viet}', "");
-    Expect(1, 43743, '\P{^-In_Tai_Viet}', "");
-    Expect(0, 43744, '\p{-In_Tai_Viet}', "");
-    Expect(1, 43744, '\p{^-In_Tai_Viet}', "");
-    Expect(1, 43744, '\P{-In_Tai_Viet}', "");
-    Expect(0, 43744, '\P{^-In_Tai_Viet}', "");
-    Error('\p{:=- In_TAI_VIET}');
-    Error('\P{:=- In_TAI_VIET}');
-    Expect(1, 43743, '\p{- in_Tai_Viet}', "");
-    Expect(0, 43743, '\p{^- in_Tai_Viet}', "");
-    Expect(0, 43743, '\P{- in_Tai_Viet}', "");
-    Expect(1, 43743, '\P{^- in_Tai_Viet}', "");
-    Expect(0, 43744, '\p{- in_Tai_Viet}', "");
-    Expect(1, 43744, '\p{^- in_Tai_Viet}', "");
-    Expect(1, 43744, '\P{- in_Tai_Viet}', "");
-    Expect(0, 43744, '\P{^- in_Tai_Viet}', "");
-    Error('\p{__In_Takri:=}');
-    Error('\P{__In_Takri:=}');
+    Expect(1, 43743, '\p{__In_Tai_viet}', "");
+    Expect(0, 43743, '\p{^__In_Tai_viet}', "");
+    Expect(0, 43743, '\P{__In_Tai_viet}', "");
+    Expect(1, 43743, '\P{^__In_Tai_viet}', "");
+    Expect(0, 43744, '\p{__In_Tai_viet}', "");
+    Expect(1, 43744, '\p{^__In_Tai_viet}', "");
+    Expect(1, 43744, '\P{__In_Tai_viet}', "");
+    Expect(0, 43744, '\P{^__In_Tai_viet}', "");
+    Error('\p{:=_-In_Tai_VIET}');
+    Error('\P{:=_-In_Tai_VIET}');
+    Expect(1, 43743, '\p{- IN_TAI_Viet}', "");
+    Expect(0, 43743, '\p{^- IN_TAI_Viet}', "");
+    Expect(0, 43743, '\P{- IN_TAI_Viet}', "");
+    Expect(1, 43743, '\P{^- IN_TAI_Viet}', "");
+    Expect(0, 43744, '\p{- IN_TAI_Viet}', "");
+    Expect(1, 43744, '\p{^- IN_TAI_Viet}', "");
+    Expect(1, 43744, '\P{- IN_TAI_Viet}', "");
+    Expect(0, 43744, '\P{^- IN_TAI_Viet}', "");
+    Error('\p{/a/_In_Takri}');
+    Error('\P{/a/_In_Takri}');
     Expect(1, 71375, '\p{intakri}', "");
     Expect(0, 71375, '\p{^intakri}', "");
     Expect(0, 71375, '\P{intakri}', "");
@@ -105631,26 +106685,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71376, '\p{^intakri}', "");
     Expect(1, 71376, '\P{intakri}', "");
     Expect(0, 71376, '\P{^intakri}', "");
-    Expect(1, 71375, '\p{	_In_takri}', "");
-    Expect(0, 71375, '\p{^	_In_takri}', "");
-    Expect(0, 71375, '\P{	_In_takri}', "");
-    Expect(1, 71375, '\P{^	_In_takri}', "");
-    Expect(0, 71376, '\p{	_In_takri}', "");
-    Expect(1, 71376, '\p{^	_In_takri}', "");
-    Expect(1, 71376, '\P{	_In_takri}', "");
-    Expect(0, 71376, '\P{^	_In_takri}', "");
-    Error('\p{:=	-In_Takri}');
-    Error('\P{:=	-In_Takri}');
-    Expect(1, 71375, '\p{	in_Takri}', "");
-    Expect(0, 71375, '\p{^	in_Takri}', "");
-    Expect(0, 71375, '\P{	in_Takri}', "");
-    Expect(1, 71375, '\P{^	in_Takri}', "");
-    Expect(0, 71376, '\p{	in_Takri}', "");
-    Expect(1, 71376, '\p{^	in_Takri}', "");
-    Expect(1, 71376, '\P{	in_Takri}', "");
-    Expect(0, 71376, '\P{^	in_Takri}', "");
-    Error('\p{/a/ In_TAMIL}');
-    Error('\P{/a/ In_TAMIL}');
+    Expect(1, 71375, '\p{ 	in_takri}', "");
+    Expect(0, 71375, '\p{^ 	in_takri}', "");
+    Expect(0, 71375, '\P{ 	in_takri}', "");
+    Expect(1, 71375, '\P{^ 	in_takri}', "");
+    Expect(0, 71376, '\p{ 	in_takri}', "");
+    Expect(1, 71376, '\p{^ 	in_takri}', "");
+    Expect(1, 71376, '\P{ 	in_takri}', "");
+    Expect(0, 71376, '\P{^ 	in_takri}', "");
+    Error('\p{/a/		IN_Takri}');
+    Error('\P{/a/		IN_Takri}');
+    Expect(1, 71375, '\p{	In_Takri}', "");
+    Expect(0, 71375, '\p{^	In_Takri}', "");
+    Expect(0, 71375, '\P{	In_Takri}', "");
+    Expect(1, 71375, '\P{^	In_Takri}', "");
+    Expect(0, 71376, '\p{	In_Takri}', "");
+    Expect(1, 71376, '\p{^	In_Takri}', "");
+    Expect(1, 71376, '\P{	In_Takri}', "");
+    Expect(0, 71376, '\P{^	In_Takri}', "");
+    Error('\p{_	in_tamil:=}');
+    Error('\P{_	in_tamil:=}');
     Expect(1, 3071, '\p{intamil}', "");
     Expect(0, 3071, '\p{^intamil}', "");
     Expect(0, 3071, '\P{intamil}', "");
@@ -105659,26 +106713,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3072, '\p{^intamil}', "");
     Expect(1, 3072, '\P{intamil}', "");
     Expect(0, 3072, '\P{^intamil}', "");
-    Expect(1, 3071, '\p{	In_Tamil}', "");
-    Expect(0, 3071, '\p{^	In_Tamil}', "");
-    Expect(0, 3071, '\P{	In_Tamil}', "");
-    Expect(1, 3071, '\P{^	In_Tamil}', "");
-    Expect(0, 3072, '\p{	In_Tamil}', "");
-    Expect(1, 3072, '\p{^	In_Tamil}', "");
-    Expect(1, 3072, '\P{	In_Tamil}', "");
-    Expect(0, 3072, '\P{^	In_Tamil}', "");
-    Error('\p{:=-	in_Tamil}');
-    Error('\P{:=-	in_Tamil}');
-    Expect(1, 3071, '\p{  in_tamil}', "");
-    Expect(0, 3071, '\p{^  in_tamil}', "");
-    Expect(0, 3071, '\P{  in_tamil}', "");
-    Expect(1, 3071, '\P{^  in_tamil}', "");
-    Expect(0, 3072, '\p{  in_tamil}', "");
-    Expect(1, 3072, '\p{^  in_tamil}', "");
-    Expect(1, 3072, '\P{  in_tamil}', "");
-    Expect(0, 3072, '\P{^  in_tamil}', "");
-    Error('\p{_In_Tangsa:=}');
-    Error('\P{_In_Tangsa:=}');
+    Expect(1, 3071, '\p{__IN_tamil}', "");
+    Expect(0, 3071, '\p{^__IN_tamil}', "");
+    Expect(0, 3071, '\P{__IN_tamil}', "");
+    Expect(1, 3071, '\P{^__IN_tamil}', "");
+    Expect(0, 3072, '\p{__IN_tamil}', "");
+    Expect(1, 3072, '\p{^__IN_tamil}', "");
+    Expect(1, 3072, '\P{__IN_tamil}', "");
+    Expect(0, 3072, '\P{^__IN_tamil}', "");
+    Error('\p{/a/-	in_TAMIL}');
+    Error('\P{/a/-	in_TAMIL}');
+    Expect(1, 3071, '\p{	in_tamil}', "");
+    Expect(0, 3071, '\p{^	in_tamil}', "");
+    Expect(0, 3071, '\P{	in_tamil}', "");
+    Expect(1, 3071, '\P{^	in_tamil}', "");
+    Expect(0, 3072, '\p{	in_tamil}', "");
+    Expect(1, 3072, '\p{^	in_tamil}', "");
+    Expect(1, 3072, '\P{	in_tamil}', "");
+    Expect(0, 3072, '\P{^	in_tamil}', "");
+    Error('\p{:=	In_TANGSA}');
+    Error('\P{:=	In_TANGSA}');
     Expect(1, 92879, '\p{intangsa}', "");
     Expect(0, 92879, '\p{^intangsa}', "");
     Expect(0, 92879, '\P{intangsa}', "");
@@ -105687,26 +106741,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92880, '\p{^intangsa}', "");
     Expect(1, 92880, '\P{intangsa}', "");
     Expect(0, 92880, '\P{^intangsa}', "");
-    Expect(1, 92879, '\p{__In_Tangsa}', "");
-    Expect(0, 92879, '\p{^__In_Tangsa}', "");
-    Expect(0, 92879, '\P{__In_Tangsa}', "");
-    Expect(1, 92879, '\P{^__In_Tangsa}', "");
-    Expect(0, 92880, '\p{__In_Tangsa}', "");
-    Expect(1, 92880, '\p{^__In_Tangsa}', "");
-    Expect(1, 92880, '\P{__In_Tangsa}', "");
-    Expect(0, 92880, '\P{^__In_Tangsa}', "");
-    Error('\p{  In_Tangsa/a/}');
-    Error('\P{  In_Tangsa/a/}');
-    Expect(1, 92879, '\p{ in_Tangsa}', "");
-    Expect(0, 92879, '\p{^ in_Tangsa}', "");
-    Expect(0, 92879, '\P{ in_Tangsa}', "");
-    Expect(1, 92879, '\P{^ in_Tangsa}', "");
-    Expect(0, 92880, '\p{ in_Tangsa}', "");
-    Expect(1, 92880, '\p{^ in_Tangsa}', "");
-    Expect(1, 92880, '\P{ in_Tangsa}', "");
-    Expect(0, 92880, '\P{^ in_Tangsa}', "");
-    Error('\p{ /a/IN_Tangut}');
-    Error('\P{ /a/IN_Tangut}');
+    Expect(1, 92879, '\p{	_in_Tangsa}', "");
+    Expect(0, 92879, '\p{^	_in_Tangsa}', "");
+    Expect(0, 92879, '\P{	_in_Tangsa}', "");
+    Expect(1, 92879, '\P{^	_in_Tangsa}', "");
+    Expect(0, 92880, '\p{	_in_Tangsa}', "");
+    Expect(1, 92880, '\p{^	_in_Tangsa}', "");
+    Expect(1, 92880, '\P{	_in_Tangsa}', "");
+    Expect(0, 92880, '\P{^	_in_Tangsa}', "");
+    Error('\p{ /a/IN_tangsa}');
+    Error('\P{ /a/IN_tangsa}');
+    Expect(1, 92879, '\p{_IN_tangsa}', "");
+    Expect(0, 92879, '\p{^_IN_tangsa}', "");
+    Expect(0, 92879, '\P{_IN_tangsa}', "");
+    Expect(1, 92879, '\P{^_IN_tangsa}', "");
+    Expect(0, 92880, '\p{_IN_tangsa}', "");
+    Expect(1, 92880, '\p{^_IN_tangsa}', "");
+    Expect(1, 92880, '\P{_IN_tangsa}', "");
+    Expect(0, 92880, '\P{^_IN_tangsa}', "");
+    Error('\p{_/a/IN_TANGUT}');
+    Error('\P{_/a/IN_TANGUT}');
     Expect(1, 100351, '\p{intangut}', "");
     Expect(0, 100351, '\p{^intangut}', "");
     Expect(0, 100351, '\P{intangut}', "");
@@ -105715,26 +106769,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 100352, '\p{^intangut}', "");
     Expect(1, 100352, '\P{intangut}', "");
     Expect(0, 100352, '\P{^intangut}', "");
-    Expect(1, 100351, '\p{ 	IN_Tangut}', "");
-    Expect(0, 100351, '\p{^ 	IN_Tangut}', "");
-    Expect(0, 100351, '\P{ 	IN_Tangut}', "");
-    Expect(1, 100351, '\P{^ 	IN_Tangut}', "");
-    Expect(0, 100352, '\p{ 	IN_Tangut}', "");
-    Expect(1, 100352, '\p{^ 	IN_Tangut}', "");
-    Expect(1, 100352, '\P{ 	IN_Tangut}', "");
-    Expect(0, 100352, '\P{^ 	IN_Tangut}', "");
-    Error('\p{_in_TANGUT:=}');
-    Error('\P{_in_TANGUT:=}');
-    Expect(1, 100351, '\p{_	in_Tangut}', "");
-    Expect(0, 100351, '\p{^_	in_Tangut}', "");
-    Expect(0, 100351, '\P{_	in_Tangut}', "");
-    Expect(1, 100351, '\P{^_	in_Tangut}', "");
-    Expect(0, 100352, '\p{_	in_Tangut}', "");
-    Expect(1, 100352, '\p{^_	in_Tangut}', "");
-    Expect(1, 100352, '\P{_	in_Tangut}', "");
-    Expect(0, 100352, '\P{^_	in_Tangut}', "");
-    Error('\p{:=	_In_TELUGU}');
-    Error('\P{:=	_In_TELUGU}');
+    Expect(1, 100351, '\p{	-In_tangut}', "");
+    Expect(0, 100351, '\p{^	-In_tangut}', "");
+    Expect(0, 100351, '\P{	-In_tangut}', "");
+    Expect(1, 100351, '\P{^	-In_tangut}', "");
+    Expect(0, 100352, '\p{	-In_tangut}', "");
+    Expect(1, 100352, '\p{^	-In_tangut}', "");
+    Expect(1, 100352, '\P{	-In_tangut}', "");
+    Expect(0, 100352, '\P{^	-In_tangut}', "");
+    Error('\p{/a/-	In_tangut}');
+    Error('\P{/a/-	In_tangut}');
+    Expect(1, 100351, '\p{	In_Tangut}', "");
+    Expect(0, 100351, '\p{^	In_Tangut}', "");
+    Expect(0, 100351, '\P{	In_Tangut}', "");
+    Expect(1, 100351, '\P{^	In_Tangut}', "");
+    Expect(0, 100352, '\p{	In_Tangut}', "");
+    Expect(1, 100352, '\p{^	In_Tangut}', "");
+    Expect(1, 100352, '\P{	In_Tangut}', "");
+    Expect(0, 100352, '\P{^	In_Tangut}', "");
+    Error('\p{:= -In_TELUGU}');
+    Error('\P{:= -In_TELUGU}');
     Expect(1, 3199, '\p{intelugu}', "");
     Expect(0, 3199, '\p{^intelugu}', "");
     Expect(0, 3199, '\P{intelugu}', "");
@@ -105743,26 +106797,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3200, '\p{^intelugu}', "");
     Expect(1, 3200, '\P{intelugu}', "");
     Expect(0, 3200, '\P{^intelugu}', "");
-    Expect(1, 3199, '\p{		in_telugu}', "");
-    Expect(0, 3199, '\p{^		in_telugu}', "");
-    Expect(0, 3199, '\P{		in_telugu}', "");
-    Expect(1, 3199, '\P{^		in_telugu}', "");
-    Expect(0, 3200, '\p{		in_telugu}', "");
-    Expect(1, 3200, '\p{^		in_telugu}', "");
-    Expect(1, 3200, '\P{		in_telugu}', "");
-    Expect(0, 3200, '\P{^		in_telugu}', "");
-    Error('\p{ in_telugu/a/}');
-    Error('\P{ in_telugu/a/}');
-    Expect(1, 3199, '\p{	 IN_telugu}', "");
-    Expect(0, 3199, '\p{^	 IN_telugu}', "");
-    Expect(0, 3199, '\P{	 IN_telugu}', "");
-    Expect(1, 3199, '\P{^	 IN_telugu}', "");
-    Expect(0, 3200, '\p{	 IN_telugu}', "");
-    Expect(1, 3200, '\p{^	 IN_telugu}', "");
-    Expect(1, 3200, '\P{	 IN_telugu}', "");
-    Expect(0, 3200, '\P{^	 IN_telugu}', "");
-    Error('\p{/a/_ in_Thaana}');
-    Error('\P{/a/_ in_Thaana}');
+    Expect(1, 3199, '\p{_ In_TELUGU}', "");
+    Expect(0, 3199, '\p{^_ In_TELUGU}', "");
+    Expect(0, 3199, '\P{_ In_TELUGU}', "");
+    Expect(1, 3199, '\P{^_ In_TELUGU}', "");
+    Expect(0, 3200, '\p{_ In_TELUGU}', "");
+    Expect(1, 3200, '\p{^_ In_TELUGU}', "");
+    Expect(1, 3200, '\P{_ In_TELUGU}', "");
+    Expect(0, 3200, '\P{^_ In_TELUGU}', "");
+    Error('\p{/a/-IN_telugu}');
+    Error('\P{/a/-IN_telugu}');
+    Expect(1, 3199, '\p{	IN_Telugu}', "");
+    Expect(0, 3199, '\p{^	IN_Telugu}', "");
+    Expect(0, 3199, '\P{	IN_Telugu}', "");
+    Expect(1, 3199, '\P{^	IN_Telugu}', "");
+    Expect(0, 3200, '\p{	IN_Telugu}', "");
+    Expect(1, 3200, '\p{^	IN_Telugu}', "");
+    Expect(1, 3200, '\P{	IN_Telugu}', "");
+    Expect(0, 3200, '\P{^	IN_Telugu}', "");
+    Error('\p{/a/ -In_Thaana}');
+    Error('\P{/a/ -In_Thaana}');
     Expect(1, 1983, '\p{inthaana}', "");
     Expect(0, 1983, '\p{^inthaana}', "");
     Expect(0, 1983, '\P{inthaana}', "");
@@ -105771,26 +106825,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1984, '\p{^inthaana}', "");
     Expect(1, 1984, '\P{inthaana}', "");
     Expect(0, 1984, '\P{^inthaana}', "");
-    Expect(1, 1983, '\p{- IN_THAANA}', "");
-    Expect(0, 1983, '\p{^- IN_THAANA}', "");
-    Expect(0, 1983, '\P{- IN_THAANA}', "");
-    Expect(1, 1983, '\P{^- IN_THAANA}', "");
-    Expect(0, 1984, '\p{- IN_THAANA}', "");
-    Expect(1, 1984, '\p{^- IN_THAANA}', "");
-    Expect(1, 1984, '\P{- IN_THAANA}', "");
-    Expect(0, 1984, '\P{^- IN_THAANA}', "");
-    Error('\p{_in_THAANA:=}');
-    Error('\P{_in_THAANA:=}');
-    Expect(1, 1983, '\p{_	In_thaana}', "");
-    Expect(0, 1983, '\p{^_	In_thaana}', "");
-    Expect(0, 1983, '\P{_	In_thaana}', "");
-    Expect(1, 1983, '\P{^_	In_thaana}', "");
-    Expect(0, 1984, '\p{_	In_thaana}', "");
-    Expect(1, 1984, '\p{^_	In_thaana}', "");
-    Expect(1, 1984, '\P{_	In_thaana}', "");
-    Expect(0, 1984, '\P{^_	In_thaana}', "");
-    Error('\p{	/a/IN_THAI}');
-    Error('\P{	/a/IN_THAI}');
+    Expect(1, 1983, '\p{__In_Thaana}', "");
+    Expect(0, 1983, '\p{^__In_Thaana}', "");
+    Expect(0, 1983, '\P{__In_Thaana}', "");
+    Expect(1, 1983, '\P{^__In_Thaana}', "");
+    Expect(0, 1984, '\p{__In_Thaana}', "");
+    Expect(1, 1984, '\p{^__In_Thaana}', "");
+    Expect(1, 1984, '\P{__In_Thaana}', "");
+    Expect(0, 1984, '\P{^__In_Thaana}', "");
+    Error('\p{ IN_Thaana/a/}');
+    Error('\P{ IN_Thaana/a/}');
+    Expect(1, 1983, '\p{		In_thaana}', "");
+    Expect(0, 1983, '\p{^		In_thaana}', "");
+    Expect(0, 1983, '\P{		In_thaana}', "");
+    Expect(1, 1983, '\P{^		In_thaana}', "");
+    Expect(0, 1984, '\p{		In_thaana}', "");
+    Expect(1, 1984, '\p{^		In_thaana}', "");
+    Expect(1, 1984, '\P{		In_thaana}', "");
+    Expect(0, 1984, '\P{^		In_thaana}', "");
+    Error('\p{_In_THAI/a/}');
+    Error('\P{_In_THAI/a/}');
     Expect(1, 3711, '\p{inthai}', "");
     Expect(0, 3711, '\p{^inthai}', "");
     Expect(0, 3711, '\P{inthai}', "");
@@ -105799,26 +106853,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3712, '\p{^inthai}', "");
     Expect(1, 3712, '\P{inthai}', "");
     Expect(0, 3712, '\P{^inthai}', "");
-    Expect(1, 3711, '\p{-in_Thai}', "");
-    Expect(0, 3711, '\p{^-in_Thai}', "");
-    Expect(0, 3711, '\P{-in_Thai}', "");
-    Expect(1, 3711, '\P{^-in_Thai}', "");
-    Expect(0, 3712, '\p{-in_Thai}', "");
-    Expect(1, 3712, '\p{^-in_Thai}', "");
-    Expect(1, 3712, '\P{-in_Thai}', "");
-    Expect(0, 3712, '\P{^-in_Thai}', "");
-    Error('\p{ IN_Thai/a/}');
-    Error('\P{ IN_Thai/a/}');
-    Expect(1, 3711, '\p{_ IN_thai}', "");
-    Expect(0, 3711, '\p{^_ IN_thai}', "");
-    Expect(0, 3711, '\P{_ IN_thai}', "");
-    Expect(1, 3711, '\P{^_ IN_thai}', "");
-    Expect(0, 3712, '\p{_ IN_thai}', "");
-    Expect(1, 3712, '\p{^_ IN_thai}', "");
-    Expect(1, 3712, '\P{_ IN_thai}', "");
-    Expect(0, 3712, '\P{^_ IN_thai}', "");
-    Error('\p{ :=IN_Tibetan}');
-    Error('\P{ :=IN_Tibetan}');
+    Expect(1, 3711, '\p{ In_Thai}', "");
+    Expect(0, 3711, '\p{^ In_Thai}', "");
+    Expect(0, 3711, '\P{ In_Thai}', "");
+    Expect(1, 3711, '\P{^ In_Thai}', "");
+    Expect(0, 3712, '\p{ In_Thai}', "");
+    Expect(1, 3712, '\p{^ In_Thai}', "");
+    Expect(1, 3712, '\P{ In_Thai}', "");
+    Expect(0, 3712, '\P{^ In_Thai}', "");
+    Error('\p{	in_THAI/a/}');
+    Error('\P{	in_THAI/a/}');
+    Expect(1, 3711, '\p{_In_THAI}', "");
+    Expect(0, 3711, '\p{^_In_THAI}', "");
+    Expect(0, 3711, '\P{_In_THAI}', "");
+    Expect(1, 3711, '\P{^_In_THAI}', "");
+    Expect(0, 3712, '\p{_In_THAI}', "");
+    Expect(1, 3712, '\p{^_In_THAI}', "");
+    Expect(1, 3712, '\P{_In_THAI}', "");
+    Expect(0, 3712, '\P{^_In_THAI}', "");
+    Error('\p{		in_TIBETAN/a/}');
+    Error('\P{		in_TIBETAN/a/}');
     Expect(1, 4095, '\p{intibetan}', "");
     Expect(0, 4095, '\p{^intibetan}', "");
     Expect(0, 4095, '\P{intibetan}', "");
@@ -105827,26 +106881,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 4096, '\p{^intibetan}', "");
     Expect(1, 4096, '\P{intibetan}', "");
     Expect(0, 4096, '\P{^intibetan}', "");
-    Expect(1, 4095, '\p{-_in_Tibetan}', "");
-    Expect(0, 4095, '\p{^-_in_Tibetan}', "");
-    Expect(0, 4095, '\P{-_in_Tibetan}', "");
-    Expect(1, 4095, '\P{^-_in_Tibetan}', "");
-    Expect(0, 4096, '\p{-_in_Tibetan}', "");
-    Expect(1, 4096, '\p{^-_in_Tibetan}', "");
-    Expect(1, 4096, '\P{-_in_Tibetan}', "");
-    Expect(0, 4096, '\P{^-_in_Tibetan}', "");
-    Error('\p{:=	 In_tibetan}');
-    Error('\P{:=	 In_tibetan}');
-    Expect(1, 4095, '\p{_ IN_tibetan}', "");
-    Expect(0, 4095, '\p{^_ IN_tibetan}', "");
-    Expect(0, 4095, '\P{_ IN_tibetan}', "");
-    Expect(1, 4095, '\P{^_ IN_tibetan}', "");
-    Expect(0, 4096, '\p{_ IN_tibetan}', "");
-    Expect(1, 4096, '\p{^_ IN_tibetan}', "");
-    Expect(1, 4096, '\P{_ IN_tibetan}', "");
-    Expect(0, 4096, '\P{^_ IN_tibetan}', "");
-    Error('\p{/a/IN_tifinagh}');
-    Error('\P{/a/IN_tifinagh}');
+    Expect(1, 4095, '\p{--In_tibetan}', "");
+    Expect(0, 4095, '\p{^--In_tibetan}', "");
+    Expect(0, 4095, '\P{--In_tibetan}', "");
+    Expect(1, 4095, '\P{^--In_tibetan}', "");
+    Expect(0, 4096, '\p{--In_tibetan}', "");
+    Expect(1, 4096, '\p{^--In_tibetan}', "");
+    Expect(1, 4096, '\P{--In_tibetan}', "");
+    Expect(0, 4096, '\P{^--In_tibetan}', "");
+    Error('\p{-/a/IN_TIBETAN}');
+    Error('\P{-/a/IN_TIBETAN}');
+    Expect(1, 4095, '\p{-IN_Tibetan}', "");
+    Expect(0, 4095, '\p{^-IN_Tibetan}', "");
+    Expect(0, 4095, '\P{-IN_Tibetan}', "");
+    Expect(1, 4095, '\P{^-IN_Tibetan}', "");
+    Expect(0, 4096, '\p{-IN_Tibetan}', "");
+    Expect(1, 4096, '\p{^-IN_Tibetan}', "");
+    Expect(1, 4096, '\P{-IN_Tibetan}', "");
+    Expect(0, 4096, '\P{^-IN_Tibetan}', "");
+    Error('\p{_In_Tifinagh/a/}');
+    Error('\P{_In_Tifinagh/a/}');
     Expect(1, 11647, '\p{intifinagh}', "");
     Expect(0, 11647, '\p{^intifinagh}', "");
     Expect(0, 11647, '\P{intifinagh}', "");
@@ -105855,26 +106909,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11648, '\p{^intifinagh}', "");
     Expect(1, 11648, '\P{intifinagh}', "");
     Expect(0, 11648, '\P{^intifinagh}', "");
-    Expect(1, 11647, '\p{-	In_Tifinagh}', "");
-    Expect(0, 11647, '\p{^-	In_Tifinagh}', "");
-    Expect(0, 11647, '\P{-	In_Tifinagh}', "");
-    Expect(1, 11647, '\P{^-	In_Tifinagh}', "");
-    Expect(0, 11648, '\p{-	In_Tifinagh}', "");
-    Expect(1, 11648, '\p{^-	In_Tifinagh}', "");
-    Expect(1, 11648, '\P{-	In_Tifinagh}', "");
-    Expect(0, 11648, '\P{^-	In_Tifinagh}', "");
-    Error('\p{/a/ -In_Tifinagh}');
-    Error('\P{/a/ -In_Tifinagh}');
-    Expect(1, 11647, '\p{__In_tifinagh}', "");
-    Expect(0, 11647, '\p{^__In_tifinagh}', "");
-    Expect(0, 11647, '\P{__In_tifinagh}', "");
-    Expect(1, 11647, '\P{^__In_tifinagh}', "");
-    Expect(0, 11648, '\p{__In_tifinagh}', "");
-    Expect(1, 11648, '\p{^__In_tifinagh}', "");
-    Expect(1, 11648, '\P{__In_tifinagh}', "");
-    Expect(0, 11648, '\P{^__In_tifinagh}', "");
-    Error('\p{--in_Tirhuta:=}');
-    Error('\P{--in_Tirhuta:=}');
+    Expect(1, 11647, '\p{_-In_tifinagh}', "");
+    Expect(0, 11647, '\p{^_-In_tifinagh}', "");
+    Expect(0, 11647, '\P{_-In_tifinagh}', "");
+    Expect(1, 11647, '\P{^_-In_tifinagh}', "");
+    Expect(0, 11648, '\p{_-In_tifinagh}', "");
+    Expect(1, 11648, '\p{^_-In_tifinagh}', "");
+    Expect(1, 11648, '\P{_-In_tifinagh}', "");
+    Expect(0, 11648, '\P{^_-In_tifinagh}', "");
+    Error('\p{_/a/In_TIFINAGH}');
+    Error('\P{_/a/In_TIFINAGH}');
+    Expect(1, 11647, '\p{	In_Tifinagh}', "");
+    Expect(0, 11647, '\p{^	In_Tifinagh}', "");
+    Expect(0, 11647, '\P{	In_Tifinagh}', "");
+    Expect(1, 11647, '\P{^	In_Tifinagh}', "");
+    Expect(0, 11648, '\p{	In_Tifinagh}', "");
+    Expect(1, 11648, '\p{^	In_Tifinagh}', "");
+    Expect(1, 11648, '\P{	In_Tifinagh}', "");
+    Expect(0, 11648, '\P{^	In_Tifinagh}', "");
+    Error('\p{_IN_Tirhuta/a/}');
+    Error('\P{_IN_Tirhuta/a/}');
     Expect(1, 70879, '\p{intirhuta}', "");
     Expect(0, 70879, '\p{^intirhuta}', "");
     Expect(0, 70879, '\P{intirhuta}', "");
@@ -105883,26 +106937,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70880, '\p{^intirhuta}', "");
     Expect(1, 70880, '\P{intirhuta}', "");
     Expect(0, 70880, '\P{^intirhuta}', "");
-    Expect(1, 70879, '\p{	in_Tirhuta}', "");
-    Expect(0, 70879, '\p{^	in_Tirhuta}', "");
-    Expect(0, 70879, '\P{	in_Tirhuta}', "");
-    Expect(1, 70879, '\P{^	in_Tirhuta}', "");
-    Expect(0, 70880, '\p{	in_Tirhuta}', "");
-    Expect(1, 70880, '\p{^	in_Tirhuta}', "");
-    Expect(1, 70880, '\P{	in_Tirhuta}', "");
-    Expect(0, 70880, '\P{^	in_Tirhuta}', "");
-    Error('\p{/a/	-IN_Tirhuta}');
-    Error('\P{/a/	-IN_Tirhuta}');
-    Expect(1, 70879, '\p{_In_Tirhuta}', "");
-    Expect(0, 70879, '\p{^_In_Tirhuta}', "");
-    Expect(0, 70879, '\P{_In_Tirhuta}', "");
-    Expect(1, 70879, '\P{^_In_Tirhuta}', "");
-    Expect(0, 70880, '\p{_In_Tirhuta}', "");
-    Expect(1, 70880, '\p{^_In_Tirhuta}', "");
-    Expect(1, 70880, '\P{_In_Tirhuta}', "");
-    Expect(0, 70880, '\P{^_In_Tirhuta}', "");
-    Error('\p{- IN_Toto/a/}');
-    Error('\P{- IN_Toto/a/}');
+    Expect(1, 70879, '\p{ _IN_Tirhuta}', "");
+    Expect(0, 70879, '\p{^ _IN_Tirhuta}', "");
+    Expect(0, 70879, '\P{ _IN_Tirhuta}', "");
+    Expect(1, 70879, '\P{^ _IN_Tirhuta}', "");
+    Expect(0, 70880, '\p{ _IN_Tirhuta}', "");
+    Expect(1, 70880, '\p{^ _IN_Tirhuta}', "");
+    Expect(1, 70880, '\P{ _IN_Tirhuta}', "");
+    Expect(0, 70880, '\P{^ _IN_Tirhuta}', "");
+    Error('\p{/a/_In_Tirhuta}');
+    Error('\P{/a/_In_Tirhuta}');
+    Expect(1, 70879, '\p{ 	IN_Tirhuta}', "");
+    Expect(0, 70879, '\p{^ 	IN_Tirhuta}', "");
+    Expect(0, 70879, '\P{ 	IN_Tirhuta}', "");
+    Expect(1, 70879, '\P{^ 	IN_Tirhuta}', "");
+    Expect(0, 70880, '\p{ 	IN_Tirhuta}', "");
+    Expect(1, 70880, '\p{^ 	IN_Tirhuta}', "");
+    Expect(1, 70880, '\P{ 	IN_Tirhuta}', "");
+    Expect(0, 70880, '\P{^ 	IN_Tirhuta}', "");
+    Error('\p{/a/		In_TOTO}');
+    Error('\P{/a/		In_TOTO}');
     Expect(1, 123583, '\p{intoto}', "");
     Expect(0, 123583, '\p{^intoto}', "");
     Expect(0, 123583, '\P{intoto}', "");
@@ -105911,26 +106965,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123584, '\p{^intoto}', "");
     Expect(1, 123584, '\P{intoto}', "");
     Expect(0, 123584, '\P{^intoto}', "");
-    Expect(1, 123583, '\p{ In_Toto}', "");
-    Expect(0, 123583, '\p{^ In_Toto}', "");
-    Expect(0, 123583, '\P{ In_Toto}', "");
-    Expect(1, 123583, '\P{^ In_Toto}', "");
-    Expect(0, 123584, '\p{ In_Toto}', "");
-    Expect(1, 123584, '\p{^ In_Toto}', "");
-    Expect(1, 123584, '\P{ In_Toto}', "");
-    Expect(0, 123584, '\P{^ In_Toto}', "");
-    Error('\p{ :=In_Toto}');
-    Error('\P{ :=In_Toto}');
-    Expect(1, 123583, '\p{	In_TOTO}', "");
-    Expect(0, 123583, '\p{^	In_TOTO}', "");
-    Expect(0, 123583, '\P{	In_TOTO}', "");
-    Expect(1, 123583, '\P{^	In_TOTO}', "");
-    Expect(0, 123584, '\p{	In_TOTO}', "");
-    Expect(1, 123584, '\p{^	In_TOTO}', "");
-    Expect(1, 123584, '\P{	In_TOTO}', "");
-    Expect(0, 123584, '\P{^	In_TOTO}', "");
-    Error('\p{:=-In_Ugaritic}');
-    Error('\P{:=-In_Ugaritic}');
+    Expect(1, 123583, '\p{_-In_TOTO}', "");
+    Expect(0, 123583, '\p{^_-In_TOTO}', "");
+    Expect(0, 123583, '\P{_-In_TOTO}', "");
+    Expect(1, 123583, '\P{^_-In_TOTO}', "");
+    Expect(0, 123584, '\p{_-In_TOTO}', "");
+    Expect(1, 123584, '\p{^_-In_TOTO}', "");
+    Expect(1, 123584, '\P{_-In_TOTO}', "");
+    Expect(0, 123584, '\P{^_-In_TOTO}', "");
+    Error('\p{/a/- in_toto}');
+    Error('\P{/a/- in_toto}');
+    Expect(1, 123583, '\p{-IN_toto}', "");
+    Expect(0, 123583, '\p{^-IN_toto}', "");
+    Expect(0, 123583, '\P{-IN_toto}', "");
+    Expect(1, 123583, '\P{^-IN_toto}', "");
+    Expect(0, 123584, '\p{-IN_toto}', "");
+    Expect(1, 123584, '\p{^-IN_toto}', "");
+    Expect(1, 123584, '\P{-IN_toto}', "");
+    Expect(0, 123584, '\P{^-IN_toto}', "");
+    Error('\p{:=_	In_Ugaritic}');
+    Error('\P{:=_	In_Ugaritic}');
     Expect(1, 66463, '\p{inugaritic}', "");
     Expect(0, 66463, '\p{^inugaritic}', "");
     Expect(0, 66463, '\P{inugaritic}', "");
@@ -105939,16 +106993,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66464, '\p{^inugaritic}', "");
     Expect(1, 66464, '\P{inugaritic}', "");
     Expect(0, 66464, '\P{^inugaritic}', "");
-    Expect(1, 66463, '\p{ _In_UGARITIC}', "");
-    Expect(0, 66463, '\p{^ _In_UGARITIC}', "");
-    Expect(0, 66463, '\P{ _In_UGARITIC}', "");
-    Expect(1, 66463, '\P{^ _In_UGARITIC}', "");
-    Expect(0, 66464, '\p{ _In_UGARITIC}', "");
-    Expect(1, 66464, '\p{^ _In_UGARITIC}', "");
-    Expect(1, 66464, '\P{ _In_UGARITIC}', "");
-    Expect(0, 66464, '\P{^ _In_UGARITIC}', "");
-    Error('\p{ In_ugaritic:=}');
-    Error('\P{ In_ugaritic:=}');
+    Expect(1, 66463, '\p{- In_Ugaritic}', "");
+    Expect(0, 66463, '\p{^- In_Ugaritic}', "");
+    Expect(0, 66463, '\P{- In_Ugaritic}', "");
+    Expect(1, 66463, '\P{^- In_Ugaritic}', "");
+    Expect(0, 66464, '\p{- In_Ugaritic}', "");
+    Expect(1, 66464, '\p{^- In_Ugaritic}', "");
+    Expect(1, 66464, '\P{- In_Ugaritic}', "");
+    Expect(0, 66464, '\P{^- In_Ugaritic}', "");
+    Error('\p{_	IN_Ugaritic:=}');
+    Error('\P{_	IN_Ugaritic:=}');
     Expect(1, 66463, '\p{	In_Ugaritic}', "");
     Expect(0, 66463, '\p{^	In_Ugaritic}', "");
     Expect(0, 66463, '\P{	In_Ugaritic}', "");
@@ -105957,8 +107011,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66464, '\p{^	In_Ugaritic}', "");
     Expect(1, 66464, '\P{	In_Ugaritic}', "");
     Expect(0, 66464, '\P{^	In_Ugaritic}', "");
-    Error('\p{-in_Vai/a/}');
-    Error('\P{-in_Vai/a/}');
+    Error('\p{/a/		IN_vai}');
+    Error('\P{/a/		IN_vai}');
     Expect(1, 42559, '\p{invai}', "");
     Expect(0, 42559, '\p{^invai}', "");
     Expect(0, 42559, '\P{invai}', "");
@@ -105967,26 +107021,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42560, '\p{^invai}', "");
     Expect(1, 42560, '\P{invai}', "");
     Expect(0, 42560, '\P{^invai}', "");
-    Expect(1, 42559, '\p{-IN_vai}', "");
-    Expect(0, 42559, '\p{^-IN_vai}', "");
-    Expect(0, 42559, '\P{-IN_vai}', "");
-    Expect(1, 42559, '\P{^-IN_vai}', "");
-    Expect(0, 42560, '\p{-IN_vai}', "");
-    Expect(1, 42560, '\p{^-IN_vai}', "");
-    Expect(1, 42560, '\P{-IN_vai}', "");
-    Expect(0, 42560, '\P{^-IN_vai}', "");
-    Error('\p{/a/ In_Vai}');
-    Error('\P{/a/ In_Vai}');
-    Expect(1, 42559, '\p{ In_VAI}', "");
-    Expect(0, 42559, '\p{^ In_VAI}', "");
-    Expect(0, 42559, '\P{ In_VAI}', "");
-    Expect(1, 42559, '\P{^ In_VAI}', "");
-    Expect(0, 42560, '\p{ In_VAI}', "");
-    Expect(1, 42560, '\p{^ In_VAI}', "");
-    Expect(1, 42560, '\P{ In_VAI}', "");
-    Expect(0, 42560, '\P{^ In_VAI}', "");
-    Error('\p{		in_VITHKUQI/a/}');
-    Error('\P{		in_VITHKUQI/a/}');
+    Expect(1, 42559, '\p{		in_vai}', "");
+    Expect(0, 42559, '\p{^		in_vai}', "");
+    Expect(0, 42559, '\P{		in_vai}', "");
+    Expect(1, 42559, '\P{^		in_vai}', "");
+    Expect(0, 42560, '\p{		in_vai}', "");
+    Expect(1, 42560, '\p{^		in_vai}', "");
+    Expect(1, 42560, '\P{		in_vai}', "");
+    Expect(0, 42560, '\P{^		in_vai}', "");
+    Error('\p{in_VAI:=}');
+    Error('\P{in_VAI:=}');
+    Expect(1, 42559, '\p{In_Vai}', "");
+    Expect(0, 42559, '\p{^In_Vai}', "");
+    Expect(0, 42559, '\P{In_Vai}', "");
+    Expect(1, 42559, '\P{^In_Vai}', "");
+    Expect(0, 42560, '\p{In_Vai}', "");
+    Expect(1, 42560, '\p{^In_Vai}', "");
+    Expect(1, 42560, '\P{In_Vai}', "");
+    Expect(0, 42560, '\P{^In_Vai}', "");
+    Error('\p{	In_Vithkuqi/a/}');
+    Error('\P{	In_Vithkuqi/a/}');
     Expect(1, 67007, '\p{invithkuqi}', "");
     Expect(0, 67007, '\p{^invithkuqi}', "");
     Expect(0, 67007, '\P{invithkuqi}', "");
@@ -105995,26 +107049,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67008, '\p{^invithkuqi}', "");
     Expect(1, 67008, '\P{invithkuqi}', "");
     Expect(0, 67008, '\P{^invithkuqi}', "");
-    Expect(1, 67007, '\p{	-In_vithkuqi}', "");
-    Expect(0, 67007, '\p{^	-In_vithkuqi}', "");
-    Expect(0, 67007, '\P{	-In_vithkuqi}', "");
-    Expect(1, 67007, '\P{^	-In_vithkuqi}', "");
-    Expect(0, 67008, '\p{	-In_vithkuqi}', "");
-    Expect(1, 67008, '\p{^	-In_vithkuqi}', "");
-    Expect(1, 67008, '\P{	-In_vithkuqi}', "");
-    Expect(0, 67008, '\P{^	-In_vithkuqi}', "");
-    Error('\p{/a/- In_vithkuqi}');
-    Error('\P{/a/- In_vithkuqi}');
-    Expect(1, 67007, '\p{-In_Vithkuqi}', "");
-    Expect(0, 67007, '\p{^-In_Vithkuqi}', "");
-    Expect(0, 67007, '\P{-In_Vithkuqi}', "");
-    Expect(1, 67007, '\P{^-In_Vithkuqi}', "");
-    Expect(0, 67008, '\p{-In_Vithkuqi}', "");
-    Expect(1, 67008, '\p{^-In_Vithkuqi}', "");
-    Expect(1, 67008, '\P{-In_Vithkuqi}', "");
-    Expect(0, 67008, '\P{^-In_Vithkuqi}', "");
-    Error('\p{/a/_-In_Wancho}');
-    Error('\P{/a/_-In_Wancho}');
+    Expect(1, 67007, '\p{_-in_vithkuqi}', "");
+    Expect(0, 67007, '\p{^_-in_vithkuqi}', "");
+    Expect(0, 67007, '\P{_-in_vithkuqi}', "");
+    Expect(1, 67007, '\P{^_-in_vithkuqi}', "");
+    Expect(0, 67008, '\p{_-in_vithkuqi}', "");
+    Expect(1, 67008, '\p{^_-in_vithkuqi}', "");
+    Expect(1, 67008, '\P{_-in_vithkuqi}', "");
+    Expect(0, 67008, '\P{^_-in_vithkuqi}', "");
+    Error('\p{_In_VITHKUQI/a/}');
+    Error('\P{_In_VITHKUQI/a/}');
+    Expect(1, 67007, '\p{ 	In_Vithkuqi}', "");
+    Expect(0, 67007, '\p{^ 	In_Vithkuqi}', "");
+    Expect(0, 67007, '\P{ 	In_Vithkuqi}', "");
+    Expect(1, 67007, '\P{^ 	In_Vithkuqi}', "");
+    Expect(0, 67008, '\p{ 	In_Vithkuqi}', "");
+    Expect(1, 67008, '\p{^ 	In_Vithkuqi}', "");
+    Expect(1, 67008, '\P{ 	In_Vithkuqi}', "");
+    Expect(0, 67008, '\P{^ 	In_Vithkuqi}', "");
+    Error('\p{:=IN_WANCHO}');
+    Error('\P{:=IN_WANCHO}');
     Expect(1, 123647, '\p{inwancho}', "");
     Expect(0, 123647, '\p{^inwancho}', "");
     Expect(0, 123647, '\P{inwancho}', "");
@@ -106023,26 +107077,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123648, '\p{^inwancho}', "");
     Expect(1, 123648, '\P{inwancho}', "");
     Expect(0, 123648, '\P{^inwancho}', "");
-    Expect(1, 123647, '\p{ In_Wancho}', "");
-    Expect(0, 123647, '\p{^ In_Wancho}', "");
-    Expect(0, 123647, '\P{ In_Wancho}', "");
-    Expect(1, 123647, '\P{^ In_Wancho}', "");
-    Expect(0, 123648, '\p{ In_Wancho}', "");
-    Expect(1, 123648, '\p{^ In_Wancho}', "");
-    Expect(1, 123648, '\P{ In_Wancho}', "");
-    Expect(0, 123648, '\P{^ In_Wancho}', "");
-    Error('\p{/a/ In_WANCHO}');
-    Error('\P{/a/ In_WANCHO}');
-    Expect(1, 123647, '\p{_	In_Wancho}', "");
-    Expect(0, 123647, '\p{^_	In_Wancho}', "");
-    Expect(0, 123647, '\P{_	In_Wancho}', "");
-    Expect(1, 123647, '\P{^_	In_Wancho}', "");
-    Expect(0, 123648, '\p{_	In_Wancho}', "");
-    Expect(1, 123648, '\p{^_	In_Wancho}', "");
-    Expect(1, 123648, '\P{_	In_Wancho}', "");
-    Expect(0, 123648, '\P{^_	In_Wancho}', "");
-    Error('\p{-:=In_Warang_citi}');
-    Error('\P{-:=In_Warang_citi}');
+    Expect(1, 123647, '\p{-In_Wancho}', "");
+    Expect(0, 123647, '\p{^-In_Wancho}', "");
+    Expect(0, 123647, '\P{-In_Wancho}', "");
+    Expect(1, 123647, '\P{^-In_Wancho}', "");
+    Expect(0, 123648, '\p{-In_Wancho}', "");
+    Expect(1, 123648, '\p{^-In_Wancho}', "");
+    Expect(1, 123648, '\P{-In_Wancho}', "");
+    Expect(0, 123648, '\P{^-In_Wancho}', "");
+    Error('\p{ In_wancho/a/}');
+    Error('\P{ In_wancho/a/}');
+    Expect(1, 123647, '\p{-	In_Wancho}', "");
+    Expect(0, 123647, '\p{^-	In_Wancho}', "");
+    Expect(0, 123647, '\P{-	In_Wancho}', "");
+    Expect(1, 123647, '\P{^-	In_Wancho}', "");
+    Expect(0, 123648, '\p{-	In_Wancho}', "");
+    Expect(1, 123648, '\p{^-	In_Wancho}', "");
+    Expect(1, 123648, '\P{-	In_Wancho}', "");
+    Expect(0, 123648, '\P{^-	In_Wancho}', "");
+    Error('\p{:=In_Warang_citi}');
+    Error('\P{:=In_Warang_citi}');
     Expect(1, 71935, '\p{inwarangciti}', "");
     Expect(0, 71935, '\p{^inwarangciti}', "");
     Expect(0, 71935, '\P{inwarangciti}', "");
@@ -106051,26 +107105,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71936, '\p{^inwarangciti}', "");
     Expect(1, 71936, '\P{inwarangciti}', "");
     Expect(0, 71936, '\P{^inwarangciti}', "");
-    Expect(1, 71935, '\p{-_in_warang_citi}', "");
-    Expect(0, 71935, '\p{^-_in_warang_citi}', "");
-    Expect(0, 71935, '\P{-_in_warang_citi}', "");
-    Expect(1, 71935, '\P{^-_in_warang_citi}', "");
-    Expect(0, 71936, '\p{-_in_warang_citi}', "");
-    Expect(1, 71936, '\p{^-_in_warang_citi}', "");
-    Expect(1, 71936, '\P{-_in_warang_citi}', "");
-    Expect(0, 71936, '\P{^-_in_warang_citi}', "");
-    Error('\p{_In_warang_Citi/a/}');
-    Error('\P{_In_warang_Citi/a/}');
-    Expect(1, 71935, '\p{_IN_Warang_citi}', "");
-    Expect(0, 71935, '\p{^_IN_Warang_citi}', "");
-    Expect(0, 71935, '\P{_IN_Warang_citi}', "");
-    Expect(1, 71935, '\P{^_IN_Warang_citi}', "");
-    Expect(0, 71936, '\p{_IN_Warang_citi}', "");
-    Expect(1, 71936, '\p{^_IN_Warang_citi}', "");
-    Expect(1, 71936, '\P{_IN_Warang_citi}', "");
-    Expect(0, 71936, '\P{^_IN_Warang_citi}', "");
-    Error('\p{:=	IN_YEZIDI}');
-    Error('\P{:=	IN_YEZIDI}');
+    Expect(1, 71935, '\p{_ in_Warang_citi}', "");
+    Expect(0, 71935, '\p{^_ in_Warang_citi}', "");
+    Expect(0, 71935, '\P{_ in_Warang_citi}', "");
+    Expect(1, 71935, '\P{^_ in_Warang_citi}', "");
+    Expect(0, 71936, '\p{_ in_Warang_citi}', "");
+    Expect(1, 71936, '\p{^_ in_Warang_citi}', "");
+    Expect(1, 71936, '\P{_ in_Warang_citi}', "");
+    Expect(0, 71936, '\P{^_ in_Warang_citi}', "");
+    Error('\p{ :=IN_WARANG_Citi}');
+    Error('\P{ :=IN_WARANG_Citi}');
+    Expect(1, 71935, '\p{	 in_warang_CITI}', "");
+    Expect(0, 71935, '\p{^	 in_warang_CITI}', "");
+    Expect(0, 71935, '\P{	 in_warang_CITI}', "");
+    Expect(1, 71935, '\P{^	 in_warang_CITI}', "");
+    Expect(0, 71936, '\p{	 in_warang_CITI}', "");
+    Expect(1, 71936, '\p{^	 in_warang_CITI}', "");
+    Expect(1, 71936, '\P{	 in_warang_CITI}', "");
+    Expect(0, 71936, '\P{^	 in_warang_CITI}', "");
+    Error('\p{__In_yezidi:=}');
+    Error('\P{__In_yezidi:=}');
     Expect(1, 69311, '\p{inyezidi}', "");
     Expect(0, 69311, '\p{^inyezidi}', "");
     Expect(0, 69311, '\P{inyezidi}', "");
@@ -106079,26 +107133,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69312, '\p{^inyezidi}', "");
     Expect(1, 69312, '\P{inyezidi}', "");
     Expect(0, 69312, '\P{^inyezidi}', "");
-    Expect(1, 69311, '\p{-IN_YEZIDI}', "");
-    Expect(0, 69311, '\p{^-IN_YEZIDI}', "");
-    Expect(0, 69311, '\P{-IN_YEZIDI}', "");
-    Expect(1, 69311, '\P{^-IN_YEZIDI}', "");
-    Expect(0, 69312, '\p{-IN_YEZIDI}', "");
-    Expect(1, 69312, '\p{^-IN_YEZIDI}', "");
-    Expect(1, 69312, '\P{-IN_YEZIDI}', "");
-    Expect(0, 69312, '\P{^-IN_YEZIDI}', "");
-    Error('\p{_ In_yezidi/a/}');
-    Error('\P{_ In_yezidi/a/}');
-    Expect(1, 69311, '\p{  IN_YEZIDI}', "");
-    Expect(0, 69311, '\p{^  IN_YEZIDI}', "");
-    Expect(0, 69311, '\P{  IN_YEZIDI}', "");
-    Expect(1, 69311, '\P{^  IN_YEZIDI}', "");
-    Expect(0, 69312, '\p{  IN_YEZIDI}', "");
-    Expect(1, 69312, '\p{^  IN_YEZIDI}', "");
-    Expect(1, 69312, '\P{  IN_YEZIDI}', "");
-    Expect(0, 69312, '\P{^  IN_YEZIDI}', "");
-    Error('\p{	 in_Zanabazar_SQUARE:=}');
-    Error('\P{	 in_Zanabazar_SQUARE:=}');
+    Expect(1, 69311, '\p{ IN_YEZIDI}', "");
+    Expect(0, 69311, '\p{^ IN_YEZIDI}', "");
+    Expect(0, 69311, '\P{ IN_YEZIDI}', "");
+    Expect(1, 69311, '\P{^ IN_YEZIDI}', "");
+    Expect(0, 69312, '\p{ IN_YEZIDI}', "");
+    Expect(1, 69312, '\p{^ IN_YEZIDI}', "");
+    Expect(1, 69312, '\P{ IN_YEZIDI}', "");
+    Expect(0, 69312, '\P{^ IN_YEZIDI}', "");
+    Error('\p{- In_YEZIDI:=}');
+    Error('\P{- In_YEZIDI:=}');
+    Expect(1, 69311, '\p{	in_YEZIDI}', "");
+    Expect(0, 69311, '\p{^	in_YEZIDI}', "");
+    Expect(0, 69311, '\P{	in_YEZIDI}', "");
+    Expect(1, 69311, '\P{^	in_YEZIDI}', "");
+    Expect(0, 69312, '\p{	in_YEZIDI}', "");
+    Expect(1, 69312, '\p{^	in_YEZIDI}', "");
+    Expect(1, 69312, '\P{	in_YEZIDI}', "");
+    Expect(0, 69312, '\P{^	in_YEZIDI}', "");
+    Error('\p{:=_In_Zanabazar_SQUARE}');
+    Error('\P{:=_In_Zanabazar_SQUARE}');
     Expect(1, 72271, '\p{inzanabazarsquare}', "");
     Expect(0, 72271, '\p{^inzanabazarsquare}', "");
     Expect(0, 72271, '\P{inzanabazarsquare}', "");
@@ -106107,26 +107161,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72272, '\p{^inzanabazarsquare}', "");
     Expect(1, 72272, '\P{inzanabazarsquare}', "");
     Expect(0, 72272, '\P{^inzanabazarsquare}', "");
-    Expect(1, 72271, '\p{-IN_Zanabazar_Square}', "");
-    Expect(0, 72271, '\p{^-IN_Zanabazar_Square}', "");
-    Expect(0, 72271, '\P{-IN_Zanabazar_Square}', "");
-    Expect(1, 72271, '\P{^-IN_Zanabazar_Square}', "");
-    Expect(0, 72272, '\p{-IN_Zanabazar_Square}', "");
-    Expect(1, 72272, '\p{^-IN_Zanabazar_Square}', "");
-    Expect(1, 72272, '\P{-IN_Zanabazar_Square}', "");
-    Expect(0, 72272, '\P{^-IN_Zanabazar_Square}', "");
-    Error('\p{	:=In_Zanabazar_SQUARE}');
-    Error('\P{	:=In_Zanabazar_SQUARE}');
-    Expect(1, 72271, '\p{_IN_Zanabazar_Square}', "");
-    Expect(0, 72271, '\p{^_IN_Zanabazar_Square}', "");
-    Expect(0, 72271, '\P{_IN_Zanabazar_Square}', "");
-    Expect(1, 72271, '\P{^_IN_Zanabazar_Square}', "");
-    Expect(0, 72272, '\p{_IN_Zanabazar_Square}', "");
-    Expect(1, 72272, '\p{^_IN_Zanabazar_Square}', "");
-    Expect(1, 72272, '\P{_IN_Zanabazar_Square}', "");
-    Expect(0, 72272, '\P{^_IN_Zanabazar_Square}', "");
-    Error('\p{	Indic_siyaq_NUMBERS/a/}');
-    Error('\P{	Indic_siyaq_NUMBERS/a/}');
+    Expect(1, 72271, '\p{	 in_Zanabazar_square}', "");
+    Expect(0, 72271, '\p{^	 in_Zanabazar_square}', "");
+    Expect(0, 72271, '\P{	 in_Zanabazar_square}', "");
+    Expect(1, 72271, '\P{^	 in_Zanabazar_square}', "");
+    Expect(0, 72272, '\p{	 in_Zanabazar_square}', "");
+    Expect(1, 72272, '\p{^	 in_Zanabazar_square}', "");
+    Expect(1, 72272, '\P{	 in_Zanabazar_square}', "");
+    Expect(0, 72272, '\P{^	 in_Zanabazar_square}', "");
+    Error('\p{ IN_zanabazar_Square/a/}');
+    Error('\P{ IN_zanabazar_Square/a/}');
+    Expect(1, 72271, '\p{	_in_Zanabazar_square}', "");
+    Expect(0, 72271, '\p{^	_in_Zanabazar_square}', "");
+    Expect(0, 72271, '\P{	_in_Zanabazar_square}', "");
+    Expect(1, 72271, '\P{^	_in_Zanabazar_square}', "");
+    Expect(0, 72272, '\p{	_in_Zanabazar_square}', "");
+    Expect(1, 72272, '\p{^	_in_Zanabazar_square}', "");
+    Expect(1, 72272, '\P{	_in_Zanabazar_square}', "");
+    Expect(0, 72272, '\P{^	_in_Zanabazar_square}', "");
+    Error('\p{__Indic_Siyaq_Numbers/a/}');
+    Error('\P{__Indic_Siyaq_Numbers/a/}');
     Expect(1, 126143, '\p{indicsiyaqnumbers}', "");
     Expect(0, 126143, '\p{^indicsiyaqnumbers}', "");
     Expect(0, 126143, '\P{indicsiyaqnumbers}', "");
@@ -106135,16 +107189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126144, '\p{^indicsiyaqnumbers}', "");
     Expect(1, 126144, '\P{indicsiyaqnumbers}', "");
     Expect(0, 126144, '\P{^indicsiyaqnumbers}', "");
-    Expect(1, 126143, '\p{		Indic_Siyaq_numbers}', "");
-    Expect(0, 126143, '\p{^		Indic_Siyaq_numbers}', "");
-    Expect(0, 126143, '\P{		Indic_Siyaq_numbers}', "");
-    Expect(1, 126143, '\P{^		Indic_Siyaq_numbers}', "");
-    Expect(0, 126144, '\p{		Indic_Siyaq_numbers}', "");
-    Expect(1, 126144, '\p{^		Indic_Siyaq_numbers}', "");
-    Expect(1, 126144, '\P{		Indic_Siyaq_numbers}', "");
-    Expect(0, 126144, '\P{^		Indic_Siyaq_numbers}', "");
-    Error('\p{/a/-is_Indic_SIYAQ_numbers}');
-    Error('\P{/a/-is_Indic_SIYAQ_numbers}');
+    Expect(1, 126143, '\p{--INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126143, '\p{^--INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126143, '\P{--INDIC_Siyaq_NUMBERS}', "");
+    Expect(1, 126143, '\P{^--INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126144, '\p{--INDIC_Siyaq_NUMBERS}', "");
+    Expect(1, 126144, '\p{^--INDIC_Siyaq_NUMBERS}', "");
+    Expect(1, 126144, '\P{--INDIC_Siyaq_NUMBERS}', "");
+    Expect(0, 126144, '\P{^--INDIC_Siyaq_NUMBERS}', "");
+    Error('\p{_Is_Indic_SIYAQ_numbers/a/}');
+    Error('\P{_Is_Indic_SIYAQ_numbers/a/}');
     Expect(1, 126143, '\p{isindicsiyaqnumbers}', "");
     Expect(0, 126143, '\p{^isindicsiyaqnumbers}', "");
     Expect(0, 126143, '\P{isindicsiyaqnumbers}', "");
@@ -106153,16 +107207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126144, '\p{^isindicsiyaqnumbers}', "");
     Expect(1, 126144, '\P{isindicsiyaqnumbers}', "");
     Expect(0, 126144, '\P{^isindicsiyaqnumbers}', "");
-    Expect(1, 126143, '\p{Is_Indic_SIYAQ_Numbers}', "");
-    Expect(0, 126143, '\p{^Is_Indic_SIYAQ_Numbers}', "");
-    Expect(0, 126143, '\P{Is_Indic_SIYAQ_Numbers}', "");
-    Expect(1, 126143, '\P{^Is_Indic_SIYAQ_Numbers}', "");
-    Expect(0, 126144, '\p{Is_Indic_SIYAQ_Numbers}', "");
-    Expect(1, 126144, '\p{^Is_Indic_SIYAQ_Numbers}', "");
-    Expect(1, 126144, '\P{Is_Indic_SIYAQ_Numbers}', "");
-    Expect(0, 126144, '\P{^Is_Indic_SIYAQ_Numbers}', "");
-    Error('\p{_In_indic_Siyaq_numbers:=}');
-    Error('\P{_In_indic_Siyaq_numbers:=}');
+    Expect(1, 126143, '\p{-	IS_indic_Siyaq_Numbers}', "");
+    Expect(0, 126143, '\p{^-	IS_indic_Siyaq_Numbers}', "");
+    Expect(0, 126143, '\P{-	IS_indic_Siyaq_Numbers}', "");
+    Expect(1, 126143, '\P{^-	IS_indic_Siyaq_Numbers}', "");
+    Expect(0, 126144, '\p{-	IS_indic_Siyaq_Numbers}', "");
+    Expect(1, 126144, '\p{^-	IS_indic_Siyaq_Numbers}', "");
+    Expect(1, 126144, '\P{-	IS_indic_Siyaq_Numbers}', "");
+    Expect(0, 126144, '\P{^-	IS_indic_Siyaq_Numbers}', "");
+    Error('\p{In_Indic_siyaq_numbers/a/}');
+    Error('\P{In_Indic_siyaq_numbers/a/}');
     Expect(1, 126143, '\p{inindicsiyaqnumbers}', "");
     Expect(0, 126143, '\p{^inindicsiyaqnumbers}', "");
     Expect(0, 126143, '\P{inindicsiyaqnumbers}', "");
@@ -106171,16 +107225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126144, '\p{^inindicsiyaqnumbers}', "");
     Expect(1, 126144, '\P{inindicsiyaqnumbers}', "");
     Expect(0, 126144, '\P{^inindicsiyaqnumbers}', "");
-    Expect(1, 126143, '\p{	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(0, 126143, '\p{^	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(0, 126143, '\P{	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(1, 126143, '\P{^	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(0, 126144, '\p{	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(1, 126144, '\p{^	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(1, 126144, '\P{	 IN_INDIC_Siyaq_Numbers}', "");
-    Expect(0, 126144, '\P{^	 IN_INDIC_Siyaq_Numbers}', "");
-    Error('\p{--inherited/a/}');
-    Error('\P{--inherited/a/}');
+    Expect(1, 126143, '\p{_In_Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\p{^_In_Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126143, '\P{_In_Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126143, '\P{^_In_Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\p{_In_Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\p{^_In_Indic_SIYAQ_Numbers}', "");
+    Expect(1, 126144, '\P{_In_Indic_SIYAQ_Numbers}', "");
+    Expect(0, 126144, '\P{^_In_Indic_SIYAQ_Numbers}', "");
+    Error('\p{:=-	Inherited}');
+    Error('\P{:=-	Inherited}');
     Expect(1, 917999, '\p{inherited}', "");
     Expect(0, 917999, '\p{^inherited}', "");
     Expect(0, 917999, '\P{inherited}', "");
@@ -106189,16 +107243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^inherited}', "");
     Expect(1, 918000, '\P{inherited}', "");
     Expect(0, 918000, '\P{^inherited}', "");
-    Expect(1, 917999, '\p{- INHERITED}', "");
-    Expect(0, 917999, '\p{^- INHERITED}', "");
-    Expect(0, 917999, '\P{- INHERITED}', "");
-    Expect(1, 917999, '\P{^- INHERITED}', "");
-    Expect(0, 918000, '\p{- INHERITED}', "");
-    Expect(1, 918000, '\p{^- INHERITED}', "");
-    Expect(1, 918000, '\P{- INHERITED}', "");
-    Expect(0, 918000, '\P{^- INHERITED}', "");
-    Error('\p{-:=Is_Inherited}');
-    Error('\P{-:=Is_Inherited}');
+    Expect(1, 917999, '\p{_ inherited}', "");
+    Expect(0, 917999, '\p{^_ inherited}', "");
+    Expect(0, 917999, '\P{_ inherited}', "");
+    Expect(1, 917999, '\P{^_ inherited}', "");
+    Expect(0, 918000, '\p{_ inherited}', "");
+    Expect(1, 918000, '\p{^_ inherited}', "");
+    Expect(1, 918000, '\P{_ inherited}', "");
+    Expect(0, 918000, '\P{^_ inherited}', "");
+    Error('\p{:=-_is_INHERITED}');
+    Error('\P{:=-_is_INHERITED}');
     Expect(1, 917999, '\p{isinherited}', "");
     Expect(0, 917999, '\p{^isinherited}', "");
     Expect(0, 917999, '\P{isinherited}', "");
@@ -106207,16 +107261,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isinherited}', "");
     Expect(1, 918000, '\P{isinherited}', "");
     Expect(0, 918000, '\P{^isinherited}', "");
-    Expect(1, 917999, '\p{-	Is_Inherited}', "");
-    Expect(0, 917999, '\p{^-	Is_Inherited}', "");
-    Expect(0, 917999, '\P{-	Is_Inherited}', "");
-    Expect(1, 917999, '\P{^-	Is_Inherited}', "");
-    Expect(0, 918000, '\p{-	Is_Inherited}', "");
-    Expect(1, 918000, '\p{^-	Is_Inherited}', "");
-    Expect(1, 918000, '\P{-	Is_Inherited}', "");
-    Expect(0, 918000, '\P{^-	Is_Inherited}', "");
-    Error('\p{ /a/zinh}');
-    Error('\P{ /a/zinh}');
+    Expect(1, 917999, '\p{ 	Is_INHERITED}', "");
+    Expect(0, 917999, '\p{^ 	Is_INHERITED}', "");
+    Expect(0, 917999, '\P{ 	Is_INHERITED}', "");
+    Expect(1, 917999, '\P{^ 	Is_INHERITED}', "");
+    Expect(0, 918000, '\p{ 	Is_INHERITED}', "");
+    Expect(1, 918000, '\p{^ 	Is_INHERITED}', "");
+    Expect(1, 918000, '\P{ 	Is_INHERITED}', "");
+    Expect(0, 918000, '\P{^ 	Is_INHERITED}', "");
+    Error('\p{-Zinh/a/}');
+    Error('\P{-Zinh/a/}');
     Expect(1, 917999, '\p{zinh}', "");
     Expect(0, 917999, '\p{^zinh}', "");
     Expect(0, 917999, '\P{zinh}', "");
@@ -106225,16 +107279,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^zinh}', "");
     Expect(1, 918000, '\P{zinh}', "");
     Expect(0, 918000, '\P{^zinh}', "");
-    Expect(1, 917999, '\p{_Zinh}', "");
-    Expect(0, 917999, '\p{^_Zinh}', "");
-    Expect(0, 917999, '\P{_Zinh}', "");
-    Expect(1, 917999, '\P{^_Zinh}', "");
-    Expect(0, 918000, '\p{_Zinh}', "");
-    Expect(1, 918000, '\p{^_Zinh}', "");
-    Expect(1, 918000, '\P{_Zinh}', "");
-    Expect(0, 918000, '\P{^_Zinh}', "");
-    Error('\p{/a/--IS_Zinh}');
-    Error('\P{/a/--IS_Zinh}');
+    Expect(1, 917999, '\p{_-ZINH}', "");
+    Expect(0, 917999, '\p{^_-ZINH}', "");
+    Expect(0, 917999, '\P{_-ZINH}', "");
+    Expect(1, 917999, '\P{^_-ZINH}', "");
+    Expect(0, 918000, '\p{_-ZINH}', "");
+    Expect(1, 918000, '\p{^_-ZINH}', "");
+    Expect(1, 918000, '\P{_-ZINH}', "");
+    Expect(0, 918000, '\P{^_-ZINH}', "");
+    Error('\p{:=		IS_Zinh}');
+    Error('\P{:=		IS_Zinh}');
     Expect(1, 917999, '\p{iszinh}', "");
     Expect(0, 917999, '\p{^iszinh}', "");
     Expect(0, 917999, '\P{iszinh}', "");
@@ -106243,16 +107297,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^iszinh}', "");
     Expect(1, 918000, '\P{iszinh}', "");
     Expect(0, 918000, '\P{^iszinh}', "");
-    Expect(1, 917999, '\p{_Is_ZINH}', "");
-    Expect(0, 917999, '\p{^_Is_ZINH}', "");
-    Expect(0, 917999, '\P{_Is_ZINH}', "");
-    Expect(1, 917999, '\P{^_Is_ZINH}', "");
-    Expect(0, 918000, '\p{_Is_ZINH}', "");
-    Expect(1, 918000, '\p{^_Is_ZINH}', "");
-    Expect(1, 918000, '\P{_Is_ZINH}', "");
-    Expect(0, 918000, '\P{^_Is_ZINH}', "");
-    Error('\p{	-qaai:=}');
-    Error('\P{	-qaai:=}');
+    Expect(1, 917999, '\p{_Is_Zinh}', "");
+    Expect(0, 917999, '\p{^_Is_Zinh}', "");
+    Expect(0, 917999, '\P{_Is_Zinh}', "");
+    Expect(1, 917999, '\P{^_Is_Zinh}', "");
+    Expect(0, 918000, '\p{_Is_Zinh}', "");
+    Expect(1, 918000, '\p{^_Is_Zinh}', "");
+    Expect(1, 918000, '\P{_Is_Zinh}', "");
+    Expect(0, 918000, '\P{^_Is_Zinh}', "");
+    Error('\p{		qaai/a/}');
+    Error('\P{		qaai/a/}');
     Expect(1, 917999, '\p{qaai}', "");
     Expect(0, 917999, '\p{^qaai}', "");
     Expect(0, 917999, '\P{qaai}', "");
@@ -106261,16 +107315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^qaai}', "");
     Expect(1, 918000, '\P{qaai}', "");
     Expect(0, 918000, '\P{^qaai}', "");
-    Expect(1, 917999, '\p{ qaai}', "");
-    Expect(0, 917999, '\p{^ qaai}', "");
-    Expect(0, 917999, '\P{ qaai}', "");
-    Expect(1, 917999, '\P{^ qaai}', "");
-    Expect(0, 918000, '\p{ qaai}', "");
-    Expect(1, 918000, '\p{^ qaai}', "");
-    Expect(1, 918000, '\P{ qaai}', "");
-    Expect(0, 918000, '\P{^ qaai}', "");
-    Error('\p{/a/-	is_Qaai}');
-    Error('\P{/a/-	is_Qaai}');
+    Expect(1, 917999, '\p{  QAAI}', "");
+    Expect(0, 917999, '\p{^  QAAI}', "");
+    Expect(0, 917999, '\P{  QAAI}', "");
+    Expect(1, 917999, '\P{^  QAAI}', "");
+    Expect(0, 918000, '\p{  QAAI}', "");
+    Expect(1, 918000, '\p{^  QAAI}', "");
+    Expect(1, 918000, '\P{  QAAI}', "");
+    Expect(0, 918000, '\P{^  QAAI}', "");
+    Error('\p{__IS_Qaai:=}');
+    Error('\P{__IS_Qaai:=}');
     Expect(1, 917999, '\p{isqaai}', "");
     Expect(0, 917999, '\p{^isqaai}', "");
     Expect(0, 917999, '\P{isqaai}', "");
@@ -106279,16 +107333,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isqaai}', "");
     Expect(1, 918000, '\P{isqaai}', "");
     Expect(0, 918000, '\P{^isqaai}', "");
-    Expect(1, 917999, '\p{_	Is_QAAI}', "");
-    Expect(0, 917999, '\p{^_	Is_QAAI}', "");
-    Expect(0, 917999, '\P{_	Is_QAAI}', "");
-    Expect(1, 917999, '\P{^_	Is_QAAI}', "");
-    Expect(0, 918000, '\p{_	Is_QAAI}', "");
-    Expect(1, 918000, '\p{^_	Is_QAAI}', "");
-    Expect(1, 918000, '\P{_	Is_QAAI}', "");
-    Expect(0, 918000, '\P{^_	Is_QAAI}', "");
-    Error('\p{	-Initial_Punctuation:=}');
-    Error('\P{	-Initial_Punctuation:=}');
+    Expect(1, 917999, '\p{Is_Qaai}', "");
+    Expect(0, 917999, '\p{^Is_Qaai}', "");
+    Expect(0, 917999, '\P{Is_Qaai}', "");
+    Expect(1, 917999, '\P{^Is_Qaai}', "");
+    Expect(0, 918000, '\p{Is_Qaai}', "");
+    Expect(1, 918000, '\p{^Is_Qaai}', "");
+    Expect(1, 918000, '\P{Is_Qaai}', "");
+    Expect(0, 918000, '\P{^Is_Qaai}', "");
+    Error('\p{/a/	Initial_punctuation}');
+    Error('\P{/a/	Initial_punctuation}');
     Expect(1, 11808, '\p{initialpunctuation}', "");
     Expect(0, 11808, '\p{^initialpunctuation}', "");
     Expect(0, 11808, '\P{initialpunctuation}', "");
@@ -106297,16 +107351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11809, '\p{^initialpunctuation}', "");
     Expect(1, 11809, '\P{initialpunctuation}', "");
     Expect(0, 11809, '\P{^initialpunctuation}', "");
-    Expect(1, 11808, '\p{	_Initial_punctuation}', "");
-    Expect(0, 11808, '\p{^	_Initial_punctuation}', "");
-    Expect(0, 11808, '\P{	_Initial_punctuation}', "");
-    Expect(1, 11808, '\P{^	_Initial_punctuation}', "");
-    Expect(0, 11809, '\p{	_Initial_punctuation}', "");
-    Expect(1, 11809, '\p{^	_Initial_punctuation}', "");
-    Expect(1, 11809, '\P{	_Initial_punctuation}', "");
-    Expect(0, 11809, '\P{^	_Initial_punctuation}', "");
-    Error('\p{/a/IS_initial_Punctuation}');
-    Error('\P{/a/IS_initial_Punctuation}');
+    Expect(1, 11808, '\p{	 initial_punctuation}', "");
+    Expect(0, 11808, '\p{^	 initial_punctuation}', "");
+    Expect(0, 11808, '\P{	 initial_punctuation}', "");
+    Expect(1, 11808, '\P{^	 initial_punctuation}', "");
+    Expect(0, 11809, '\p{	 initial_punctuation}', "");
+    Expect(1, 11809, '\p{^	 initial_punctuation}', "");
+    Expect(1, 11809, '\P{	 initial_punctuation}', "");
+    Expect(0, 11809, '\P{^	 initial_punctuation}', "");
+    Error('\p{:=-Is_Initial_punctuation}');
+    Error('\P{:=-Is_Initial_punctuation}');
     Expect(1, 11808, '\p{isinitialpunctuation}', "");
     Expect(0, 11808, '\p{^isinitialpunctuation}', "");
     Expect(0, 11808, '\P{isinitialpunctuation}', "");
@@ -106315,16 +107369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11809, '\p{^isinitialpunctuation}', "");
     Expect(1, 11809, '\P{isinitialpunctuation}', "");
     Expect(0, 11809, '\P{^isinitialpunctuation}', "");
-    Expect(1, 11808, '\p{-	is_INITIAL_Punctuation}', "");
-    Expect(0, 11808, '\p{^-	is_INITIAL_Punctuation}', "");
-    Expect(0, 11808, '\P{-	is_INITIAL_Punctuation}', "");
-    Expect(1, 11808, '\P{^-	is_INITIAL_Punctuation}', "");
-    Expect(0, 11809, '\p{-	is_INITIAL_Punctuation}', "");
-    Expect(1, 11809, '\p{^-	is_INITIAL_Punctuation}', "");
-    Expect(1, 11809, '\P{-	is_INITIAL_Punctuation}', "");
-    Expect(0, 11809, '\P{^-	is_INITIAL_Punctuation}', "");
-    Error('\p{- pi:=}');
-    Error('\P{- pi:=}');
+    Expect(1, 11808, '\p{ IS_Initial_Punctuation}', "");
+    Expect(0, 11808, '\p{^ IS_Initial_Punctuation}', "");
+    Expect(0, 11808, '\P{ IS_Initial_Punctuation}', "");
+    Expect(1, 11808, '\P{^ IS_Initial_Punctuation}', "");
+    Expect(0, 11809, '\p{ IS_Initial_Punctuation}', "");
+    Expect(1, 11809, '\p{^ IS_Initial_Punctuation}', "");
+    Expect(1, 11809, '\P{ IS_Initial_Punctuation}', "");
+    Expect(0, 11809, '\P{^ IS_Initial_Punctuation}', "");
+    Error('\p{:=__PI}');
+    Error('\P{:=__PI}');
     Expect(1, 11808, '\p{pi}', "");
     Expect(0, 11808, '\p{^pi}', "");
     Expect(0, 11808, '\P{pi}', "");
@@ -106333,16 +107387,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11809, '\p{^pi}', "");
     Expect(1, 11809, '\P{pi}', "");
     Expect(0, 11809, '\P{^pi}', "");
-    Expect(1, 11808, '\p{ _PI}', "");
-    Expect(0, 11808, '\p{^ _PI}', "");
-    Expect(0, 11808, '\P{ _PI}', "");
-    Expect(1, 11808, '\P{^ _PI}', "");
-    Expect(0, 11809, '\p{ _PI}', "");
-    Expect(1, 11809, '\p{^ _PI}', "");
-    Expect(1, 11809, '\P{ _PI}', "");
-    Expect(0, 11809, '\P{^ _PI}', "");
-    Error('\p{:=- Is_Pi}');
-    Error('\P{:=- Is_Pi}');
+    Expect(1, 11808, '\p{  Pi}', "");
+    Expect(0, 11808, '\p{^  Pi}', "");
+    Expect(0, 11808, '\P{  Pi}', "");
+    Expect(1, 11808, '\P{^  Pi}', "");
+    Expect(0, 11809, '\p{  Pi}', "");
+    Expect(1, 11809, '\p{^  Pi}', "");
+    Expect(1, 11809, '\P{  Pi}', "");
+    Expect(0, 11809, '\P{^  Pi}', "");
+    Error('\p{/a/__Is_PI}');
+    Error('\P{/a/__Is_PI}');
     Expect(1, 11808, '\p{ispi}', "");
     Expect(0, 11808, '\p{^ispi}', "");
     Expect(0, 11808, '\P{ispi}', "");
@@ -106351,16 +107405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11809, '\p{^ispi}', "");
     Expect(1, 11809, '\P{ispi}', "");
     Expect(0, 11809, '\P{^ispi}', "");
-    Expect(1, 11808, '\p{		IS_Pi}', "");
-    Expect(0, 11808, '\p{^		IS_Pi}', "");
-    Expect(0, 11808, '\P{		IS_Pi}', "");
-    Expect(1, 11808, '\P{^		IS_Pi}', "");
-    Expect(0, 11809, '\p{		IS_Pi}', "");
-    Expect(1, 11809, '\p{^		IS_Pi}', "");
-    Expect(1, 11809, '\P{		IS_Pi}', "");
-    Expect(0, 11809, '\P{^		IS_Pi}', "");
-    Error('\p{/a/Inscriptional_PAHLAVI}');
-    Error('\P{/a/Inscriptional_PAHLAVI}');
+    Expect(1, 11808, '\p{	Is_pi}', "");
+    Expect(0, 11808, '\p{^	Is_pi}', "");
+    Expect(0, 11808, '\P{	Is_pi}', "");
+    Expect(1, 11808, '\P{^	Is_pi}', "");
+    Expect(0, 11809, '\p{	Is_pi}', "");
+    Expect(1, 11809, '\p{^	Is_pi}', "");
+    Expect(1, 11809, '\P{	Is_pi}', "");
+    Expect(0, 11809, '\P{^	Is_pi}', "");
+    Error('\p{:= inscriptional_PAHLAVI}');
+    Error('\P{:= inscriptional_PAHLAVI}');
     Expect(1, 68479, '\p{inscriptionalpahlavi}', "");
     Expect(0, 68479, '\p{^inscriptionalpahlavi}', "");
     Expect(0, 68479, '\P{inscriptionalpahlavi}', "");
@@ -106369,16 +107423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68480, '\p{^inscriptionalpahlavi}', "");
     Expect(1, 68480, '\P{inscriptionalpahlavi}', "");
     Expect(0, 68480, '\P{^inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{_ inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\p{^_ inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\P{_ inscriptional_pahlavi}', "");
-    Expect(1, 68479, '\P{^_ inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\p{_ inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\p{^_ inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\P{_ inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\P{^_ inscriptional_pahlavi}', "");
-    Error('\p{:=-IS_INSCRIPTIONAL_Pahlavi}');
-    Error('\P{:=-IS_INSCRIPTIONAL_Pahlavi}');
+    Expect(1, 68479, '\p{_Inscriptional_pahlavi}', "");
+    Expect(0, 68479, '\p{^_Inscriptional_pahlavi}', "");
+    Expect(0, 68479, '\P{_Inscriptional_pahlavi}', "");
+    Expect(1, 68479, '\P{^_Inscriptional_pahlavi}', "");
+    Expect(0, 68480, '\p{_Inscriptional_pahlavi}', "");
+    Expect(1, 68480, '\p{^_Inscriptional_pahlavi}', "");
+    Expect(1, 68480, '\P{_Inscriptional_pahlavi}', "");
+    Expect(0, 68480, '\P{^_Inscriptional_pahlavi}', "");
+    Error('\p{:=	-Is_inscriptional_PAHLAVI}');
+    Error('\P{:=	-Is_inscriptional_PAHLAVI}');
     Expect(1, 68479, '\p{isinscriptionalpahlavi}', "");
     Expect(0, 68479, '\p{^isinscriptionalpahlavi}', "");
     Expect(0, 68479, '\P{isinscriptionalpahlavi}', "");
@@ -106387,16 +107441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68480, '\p{^isinscriptionalpahlavi}', "");
     Expect(1, 68480, '\P{isinscriptionalpahlavi}', "");
     Expect(0, 68480, '\P{^isinscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{		is_inscriptional_Pahlavi}', "");
-    Expect(0, 68479, '\p{^		is_inscriptional_Pahlavi}', "");
-    Expect(0, 68479, '\P{		is_inscriptional_Pahlavi}', "");
-    Expect(1, 68479, '\P{^		is_inscriptional_Pahlavi}', "");
-    Expect(0, 68480, '\p{		is_inscriptional_Pahlavi}', "");
-    Expect(1, 68480, '\p{^		is_inscriptional_Pahlavi}', "");
-    Expect(1, 68480, '\P{		is_inscriptional_Pahlavi}', "");
-    Expect(0, 68480, '\P{^		is_inscriptional_Pahlavi}', "");
-    Error('\p{/a/phli}');
-    Error('\P{/a/phli}');
+    Expect(1, 68479, '\p{_ is_Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\p{^_ is_Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\P{_ is_Inscriptional_Pahlavi}', "");
+    Expect(1, 68479, '\P{^_ is_Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\p{_ is_Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\p{^_ is_Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\P{_ is_Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\P{^_ is_Inscriptional_Pahlavi}', "");
+    Error('\p{:= _PHLI}');
+    Error('\P{:= _PHLI}');
     Expect(1, 68479, '\p{phli}', "");
     Expect(0, 68479, '\p{^phli}', "");
     Expect(0, 68479, '\P{phli}', "");
@@ -106405,16 +107459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68480, '\p{^phli}', "");
     Expect(1, 68480, '\P{phli}', "");
     Expect(0, 68480, '\P{^phli}', "");
-    Expect(1, 68479, '\p{ 	phli}', "");
-    Expect(0, 68479, '\p{^ 	phli}', "");
-    Expect(0, 68479, '\P{ 	phli}', "");
-    Expect(1, 68479, '\P{^ 	phli}', "");
-    Expect(0, 68480, '\p{ 	phli}', "");
-    Expect(1, 68480, '\p{^ 	phli}', "");
-    Expect(1, 68480, '\P{ 	phli}', "");
-    Expect(0, 68480, '\P{^ 	phli}', "");
-    Error('\p{_	is_Phli:=}');
-    Error('\P{_	is_Phli:=}');
+    Expect(1, 68479, '\p{	Phli}', "");
+    Expect(0, 68479, '\p{^	Phli}', "");
+    Expect(0, 68479, '\P{	Phli}', "");
+    Expect(1, 68479, '\P{^	Phli}', "");
+    Expect(0, 68480, '\p{	Phli}', "");
+    Expect(1, 68480, '\p{^	Phli}', "");
+    Expect(1, 68480, '\P{	Phli}', "");
+    Expect(0, 68480, '\P{^	Phli}', "");
+    Error('\p{_:=Is_PHLI}');
+    Error('\P{_:=Is_PHLI}');
     Expect(1, 68479, '\p{isphli}', "");
     Expect(0, 68479, '\p{^isphli}', "");
     Expect(0, 68479, '\P{isphli}', "");
@@ -106423,16 +107477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68480, '\p{^isphli}', "");
     Expect(1, 68480, '\P{isphli}', "");
     Expect(0, 68480, '\P{^isphli}', "");
-    Expect(1, 68479, '\p{ Is_phli}', "");
-    Expect(0, 68479, '\p{^ Is_phli}', "");
-    Expect(0, 68479, '\P{ Is_phli}', "");
-    Expect(1, 68479, '\P{^ Is_phli}', "");
-    Expect(0, 68480, '\p{ Is_phli}', "");
-    Expect(1, 68480, '\p{^ Is_phli}', "");
-    Expect(1, 68480, '\P{ Is_phli}', "");
-    Expect(0, 68480, '\P{^ Is_phli}', "");
-    Error('\p{:= _INSCRIPTIONAL_Parthian}');
-    Error('\P{:= _INSCRIPTIONAL_Parthian}');
+    Expect(1, 68479, '\p{	is_PHLI}', "");
+    Expect(0, 68479, '\p{^	is_PHLI}', "");
+    Expect(0, 68479, '\P{	is_PHLI}', "");
+    Expect(1, 68479, '\P{^	is_PHLI}', "");
+    Expect(0, 68480, '\p{	is_PHLI}', "");
+    Expect(1, 68480, '\p{^	is_PHLI}', "");
+    Expect(1, 68480, '\P{	is_PHLI}', "");
+    Expect(0, 68480, '\P{^	is_PHLI}', "");
+    Error('\p{-Inscriptional_Parthian/a/}');
+    Error('\P{-Inscriptional_Parthian/a/}');
     Expect(1, 68447, '\p{inscriptionalparthian}', "");
     Expect(0, 68447, '\p{^inscriptionalparthian}', "");
     Expect(0, 68447, '\P{inscriptionalparthian}', "");
@@ -106441,16 +107495,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68448, '\p{^inscriptionalparthian}', "");
     Expect(1, 68448, '\P{inscriptionalparthian}', "");
     Expect(0, 68448, '\P{^inscriptionalparthian}', "");
-    Expect(1, 68447, '\p{	 inscriptional_parthian}', "");
-    Expect(0, 68447, '\p{^	 inscriptional_parthian}', "");
-    Expect(0, 68447, '\P{	 inscriptional_parthian}', "");
-    Expect(1, 68447, '\P{^	 inscriptional_parthian}', "");
-    Expect(0, 68448, '\p{	 inscriptional_parthian}', "");
-    Expect(1, 68448, '\p{^	 inscriptional_parthian}', "");
-    Expect(1, 68448, '\P{	 inscriptional_parthian}', "");
-    Expect(0, 68448, '\P{^	 inscriptional_parthian}', "");
-    Error('\p{ :=Is_Inscriptional_Parthian}');
-    Error('\P{ :=Is_Inscriptional_Parthian}');
+    Expect(1, 68447, '\p{ inscriptional_Parthian}', "");
+    Expect(0, 68447, '\p{^ inscriptional_Parthian}', "");
+    Expect(0, 68447, '\P{ inscriptional_Parthian}', "");
+    Expect(1, 68447, '\P{^ inscriptional_Parthian}', "");
+    Expect(0, 68448, '\p{ inscriptional_Parthian}', "");
+    Expect(1, 68448, '\p{^ inscriptional_Parthian}', "");
+    Expect(1, 68448, '\P{ inscriptional_Parthian}', "");
+    Expect(0, 68448, '\P{^ inscriptional_Parthian}', "");
+    Error('\p{	/a/IS_Inscriptional_Parthian}');
+    Error('\P{	/a/IS_Inscriptional_Parthian}');
     Expect(1, 68447, '\p{isinscriptionalparthian}', "");
     Expect(0, 68447, '\p{^isinscriptionalparthian}', "");
     Expect(0, 68447, '\P{isinscriptionalparthian}', "");
@@ -106459,16 +107513,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68448, '\p{^isinscriptionalparthian}', "");
     Expect(1, 68448, '\P{isinscriptionalparthian}', "");
     Expect(0, 68448, '\P{^isinscriptionalparthian}', "");
-    Expect(1, 68447, '\p{		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68447, '\p{^		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68447, '\P{		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(1, 68447, '\P{^		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68448, '\p{		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(1, 68448, '\p{^		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(1, 68448, '\P{		is_INSCRIPTIONAL_Parthian}', "");
-    Expect(0, 68448, '\P{^		is_INSCRIPTIONAL_Parthian}', "");
-    Error('\p{	_Prti/a/}');
-    Error('\P{	_Prti/a/}');
+    Expect(1, 68447, '\p{ IS_Inscriptional_Parthian}', "");
+    Expect(0, 68447, '\p{^ IS_Inscriptional_Parthian}', "");
+    Expect(0, 68447, '\P{ IS_Inscriptional_Parthian}', "");
+    Expect(1, 68447, '\P{^ IS_Inscriptional_Parthian}', "");
+    Expect(0, 68448, '\p{ IS_Inscriptional_Parthian}', "");
+    Expect(1, 68448, '\p{^ IS_Inscriptional_Parthian}', "");
+    Expect(1, 68448, '\P{ IS_Inscriptional_Parthian}', "");
+    Expect(0, 68448, '\P{^ IS_Inscriptional_Parthian}', "");
+    Error('\p{ _PRTI:=}');
+    Error('\P{ _PRTI:=}');
     Expect(1, 68447, '\p{prti}', "");
     Expect(0, 68447, '\p{^prti}', "");
     Expect(0, 68447, '\P{prti}', "");
@@ -106477,16 +107531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68448, '\p{^prti}', "");
     Expect(1, 68448, '\P{prti}', "");
     Expect(0, 68448, '\P{^prti}', "");
-    Expect(1, 68447, '\p{ PRTI}', "");
-    Expect(0, 68447, '\p{^ PRTI}', "");
-    Expect(0, 68447, '\P{ PRTI}', "");
-    Expect(1, 68447, '\P{^ PRTI}', "");
-    Expect(0, 68448, '\p{ PRTI}', "");
-    Expect(1, 68448, '\p{^ PRTI}', "");
-    Expect(1, 68448, '\P{ PRTI}', "");
-    Expect(0, 68448, '\P{^ PRTI}', "");
-    Error('\p{:=IS_PRTI}');
-    Error('\P{:=IS_PRTI}');
+    Expect(1, 68447, '\p{-_Prti}', "");
+    Expect(0, 68447, '\p{^-_Prti}', "");
+    Expect(0, 68447, '\P{-_Prti}', "");
+    Expect(1, 68447, '\P{^-_Prti}', "");
+    Expect(0, 68448, '\p{-_Prti}', "");
+    Expect(1, 68448, '\p{^-_Prti}', "");
+    Expect(1, 68448, '\P{-_Prti}', "");
+    Expect(0, 68448, '\P{^-_Prti}', "");
+    Error('\p{/a/__is_Prti}');
+    Error('\P{/a/__is_Prti}');
     Expect(1, 68447, '\p{isprti}', "");
     Expect(0, 68447, '\p{^isprti}', "");
     Expect(0, 68447, '\P{isprti}', "");
@@ -106495,16 +107549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68448, '\p{^isprti}', "");
     Expect(1, 68448, '\P{isprti}', "");
     Expect(0, 68448, '\P{^isprti}', "");
-    Expect(1, 68447, '\p{	-Is_Prti}', "");
-    Expect(0, 68447, '\p{^	-Is_Prti}', "");
-    Expect(0, 68447, '\P{	-Is_Prti}', "");
-    Expect(1, 68447, '\P{^	-Is_Prti}', "");
-    Expect(0, 68448, '\p{	-Is_Prti}', "");
-    Expect(1, 68448, '\p{^	-Is_Prti}', "");
-    Expect(1, 68448, '\P{	-Is_Prti}', "");
-    Expect(0, 68448, '\P{^	-Is_Prti}', "");
-    Error('\p{	/a/IPA_extensions}');
-    Error('\P{	/a/IPA_extensions}');
+    Expect(1, 68447, '\p{_IS_Prti}', "");
+    Expect(0, 68447, '\p{^_IS_Prti}', "");
+    Expect(0, 68447, '\P{_IS_Prti}', "");
+    Expect(1, 68447, '\P{^_IS_Prti}', "");
+    Expect(0, 68448, '\p{_IS_Prti}', "");
+    Expect(1, 68448, '\p{^_IS_Prti}', "");
+    Expect(1, 68448, '\P{_IS_Prti}', "");
+    Expect(0, 68448, '\P{^_IS_Prti}', "");
+    Error('\p{ -IPA_Extensions:=}');
+    Error('\P{ -IPA_Extensions:=}');
     Expect(1, 687, '\p{ipaextensions}', "");
     Expect(0, 687, '\p{^ipaextensions}', "");
     Expect(0, 687, '\P{ipaextensions}', "");
@@ -106513,16 +107567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 688, '\p{^ipaextensions}', "");
     Expect(1, 688, '\P{ipaextensions}', "");
     Expect(0, 688, '\P{^ipaextensions}', "");
-    Expect(1, 687, '\p{- IPA_extensions}', "");
-    Expect(0, 687, '\p{^- IPA_extensions}', "");
-    Expect(0, 687, '\P{- IPA_extensions}', "");
-    Expect(1, 687, '\P{^- IPA_extensions}', "");
-    Expect(0, 688, '\p{- IPA_extensions}', "");
-    Expect(1, 688, '\p{^- IPA_extensions}', "");
-    Expect(1, 688, '\P{- IPA_extensions}', "");
-    Expect(0, 688, '\P{^- IPA_extensions}', "");
-    Error('\p{:=_Is_ipa_extensions}');
-    Error('\P{:=_Is_ipa_extensions}');
+    Expect(1, 687, '\p{	IPA_extensions}', "");
+    Expect(0, 687, '\p{^	IPA_extensions}', "");
+    Expect(0, 687, '\P{	IPA_extensions}', "");
+    Expect(1, 687, '\P{^	IPA_extensions}', "");
+    Expect(0, 688, '\p{	IPA_extensions}', "");
+    Expect(1, 688, '\p{^	IPA_extensions}', "");
+    Expect(1, 688, '\P{	IPA_extensions}', "");
+    Expect(0, 688, '\P{^	IPA_extensions}', "");
+    Error('\p{ -is_IPA_EXTENSIONS:=}');
+    Error('\P{ -is_IPA_EXTENSIONS:=}');
     Expect(1, 687, '\p{isipaextensions}', "");
     Expect(0, 687, '\p{^isipaextensions}', "");
     Expect(0, 687, '\P{isipaextensions}', "");
@@ -106531,16 +107585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 688, '\p{^isipaextensions}', "");
     Expect(1, 688, '\P{isipaextensions}', "");
     Expect(0, 688, '\P{^isipaextensions}', "");
-    Expect(1, 687, '\p{ -Is_IPA_extensions}', "");
-    Expect(0, 687, '\p{^ -Is_IPA_extensions}', "");
-    Expect(0, 687, '\P{ -Is_IPA_extensions}', "");
-    Expect(1, 687, '\P{^ -Is_IPA_extensions}', "");
-    Expect(0, 688, '\p{ -Is_IPA_extensions}', "");
-    Expect(1, 688, '\p{^ -Is_IPA_extensions}', "");
-    Expect(1, 688, '\P{ -Is_IPA_extensions}', "");
-    Expect(0, 688, '\P{^ -Is_IPA_extensions}', "");
-    Error('\p{ /a/in_IPA_Extensions}');
-    Error('\P{ /a/in_IPA_Extensions}');
+    Expect(1, 687, '\p{-_is_IPA_Extensions}', "");
+    Expect(0, 687, '\p{^-_is_IPA_Extensions}', "");
+    Expect(0, 687, '\P{-_is_IPA_Extensions}', "");
+    Expect(1, 687, '\P{^-_is_IPA_Extensions}', "");
+    Expect(0, 688, '\p{-_is_IPA_Extensions}', "");
+    Expect(1, 688, '\p{^-_is_IPA_Extensions}', "");
+    Expect(1, 688, '\P{-_is_IPA_Extensions}', "");
+    Expect(0, 688, '\P{^-_is_IPA_Extensions}', "");
+    Error('\p{/a/ _In_IPA_Extensions}');
+    Error('\P{/a/ _In_IPA_Extensions}');
     Expect(1, 687, '\p{inipaextensions}', "");
     Expect(0, 687, '\p{^inipaextensions}', "");
     Expect(0, 687, '\P{inipaextensions}', "");
@@ -106549,16 +107603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 688, '\p{^inipaextensions}', "");
     Expect(1, 688, '\P{inipaextensions}', "");
     Expect(0, 688, '\P{^inipaextensions}', "");
-    Expect(1, 687, '\p{ in_IPA_EXTENSIONS}', "");
-    Expect(0, 687, '\p{^ in_IPA_EXTENSIONS}', "");
-    Expect(0, 687, '\P{ in_IPA_EXTENSIONS}', "");
-    Expect(1, 687, '\P{^ in_IPA_EXTENSIONS}', "");
-    Expect(0, 688, '\p{ in_IPA_EXTENSIONS}', "");
-    Expect(1, 688, '\p{^ in_IPA_EXTENSIONS}', "");
-    Expect(1, 688, '\P{ in_IPA_EXTENSIONS}', "");
-    Expect(0, 688, '\P{^ in_IPA_EXTENSIONS}', "");
-    Error('\p{  IPA_EXT/a/}');
-    Error('\P{  IPA_EXT/a/}');
+    Expect(1, 687, '\p{-in_IPA_EXTENSIONS}', "");
+    Expect(0, 687, '\p{^-in_IPA_EXTENSIONS}', "");
+    Expect(0, 687, '\P{-in_IPA_EXTENSIONS}', "");
+    Expect(1, 687, '\P{^-in_IPA_EXTENSIONS}', "");
+    Expect(0, 688, '\p{-in_IPA_EXTENSIONS}', "");
+    Expect(1, 688, '\p{^-in_IPA_EXTENSIONS}', "");
+    Expect(1, 688, '\P{-in_IPA_EXTENSIONS}', "");
+    Expect(0, 688, '\P{^-in_IPA_EXTENSIONS}', "");
+    Error('\p{/a/__IPA_Ext}');
+    Error('\P{/a/__IPA_Ext}');
     Expect(1, 687, '\p{ipaext}', "");
     Expect(0, 687, '\p{^ipaext}', "");
     Expect(0, 687, '\P{ipaext}', "");
@@ -106567,16 +107621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 688, '\p{^ipaext}', "");
     Expect(1, 688, '\P{ipaext}', "");
     Expect(0, 688, '\P{^ipaext}', "");
-    Expect(1, 687, '\p{__IPA_Ext}', "");
-    Expect(0, 687, '\p{^__IPA_Ext}', "");
-    Expect(0, 687, '\P{__IPA_Ext}', "");
-    Expect(1, 687, '\P{^__IPA_Ext}', "");
-    Expect(0, 688, '\p{__IPA_Ext}', "");
-    Expect(1, 688, '\p{^__IPA_Ext}', "");
-    Expect(1, 688, '\P{__IPA_Ext}', "");
-    Expect(0, 688, '\P{^__IPA_Ext}', "");
-    Error('\p{  Is_ipa_Ext:=}');
-    Error('\P{  Is_ipa_Ext:=}');
+    Expect(1, 687, '\p{-ipa_ext}', "");
+    Expect(0, 687, '\p{^-ipa_ext}', "");
+    Expect(0, 687, '\P{-ipa_ext}', "");
+    Expect(1, 687, '\P{^-ipa_ext}', "");
+    Expect(0, 688, '\p{-ipa_ext}', "");
+    Expect(1, 688, '\p{^-ipa_ext}', "");
+    Expect(1, 688, '\P{-ipa_ext}', "");
+    Expect(0, 688, '\P{^-ipa_ext}', "");
+    Error('\p{	-Is_ipa_Ext/a/}');
+    Error('\P{	-Is_ipa_Ext/a/}');
     Expect(1, 687, '\p{isipaext}', "");
     Expect(0, 687, '\p{^isipaext}', "");
     Expect(0, 687, '\P{isipaext}', "");
@@ -106585,16 +107639,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 688, '\p{^isipaext}', "");
     Expect(1, 688, '\P{isipaext}', "");
     Expect(0, 688, '\P{^isipaext}', "");
-    Expect(1, 687, '\p{	_IS_IPA_Ext}', "");
-    Expect(0, 687, '\p{^	_IS_IPA_Ext}', "");
-    Expect(0, 687, '\P{	_IS_IPA_Ext}', "");
-    Expect(1, 687, '\P{^	_IS_IPA_Ext}', "");
-    Expect(0, 688, '\p{	_IS_IPA_Ext}', "");
-    Expect(1, 688, '\p{^	_IS_IPA_Ext}', "");
-    Expect(1, 688, '\P{	_IS_IPA_Ext}', "");
-    Expect(0, 688, '\P{^	_IS_IPA_Ext}', "");
-    Error('\p{	:=In_ipa_Ext}');
-    Error('\P{	:=In_ipa_Ext}');
+    Expect(1, 687, '\p{ Is_IPA_ext}', "");
+    Expect(0, 687, '\p{^ Is_IPA_ext}', "");
+    Expect(0, 687, '\P{ Is_IPA_ext}', "");
+    Expect(1, 687, '\P{^ Is_IPA_ext}', "");
+    Expect(0, 688, '\p{ Is_IPA_ext}', "");
+    Expect(1, 688, '\p{^ Is_IPA_ext}', "");
+    Expect(1, 688, '\P{ Is_IPA_ext}', "");
+    Expect(0, 688, '\P{^ Is_IPA_ext}', "");
+    Error('\p{/a/	 In_IPA_ext}');
+    Error('\P{/a/	 In_IPA_ext}');
     Expect(1, 687, '\p{inipaext}', "");
     Expect(0, 687, '\p{^inipaext}', "");
     Expect(0, 687, '\P{inipaext}', "");
@@ -106603,16 +107657,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 688, '\p{^inipaext}', "");
     Expect(1, 688, '\P{inipaext}', "");
     Expect(0, 688, '\P{^inipaext}', "");
-    Expect(1, 687, '\p{ _In_IPA_Ext}', "");
-    Expect(0, 687, '\p{^ _In_IPA_Ext}', "");
-    Expect(0, 687, '\P{ _In_IPA_Ext}', "");
-    Expect(1, 687, '\P{^ _In_IPA_Ext}', "");
-    Expect(0, 688, '\p{ _In_IPA_Ext}', "");
-    Expect(1, 688, '\p{^ _In_IPA_Ext}', "");
-    Expect(1, 688, '\P{ _In_IPA_Ext}', "");
-    Expect(0, 688, '\P{^ _In_IPA_Ext}', "");
-    Error('\p{	/a/Javanese}');
-    Error('\P{	/a/Javanese}');
+    Expect(1, 687, '\p{	_In_IPA_ext}', "");
+    Expect(0, 687, '\p{^	_In_IPA_ext}', "");
+    Expect(0, 687, '\P{	_In_IPA_ext}', "");
+    Expect(1, 687, '\P{^	_In_IPA_ext}', "");
+    Expect(0, 688, '\p{	_In_IPA_ext}', "");
+    Expect(1, 688, '\p{^	_In_IPA_ext}', "");
+    Expect(1, 688, '\P{	_In_IPA_ext}', "");
+    Expect(0, 688, '\P{^	_In_IPA_ext}', "");
+    Error('\p{	javanese/a/}');
+    Error('\P{	javanese/a/}');
     Expect(1, 43487, '\p{javanese}', "");
     Expect(0, 43487, '\p{^javanese}', "");
     Expect(0, 43487, '\P{javanese}', "");
@@ -106621,16 +107675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43488, '\p{^javanese}', "");
     Expect(1, 43488, '\P{javanese}', "");
     Expect(0, 43488, '\P{^javanese}', "");
-    Expect(1, 43487, '\p{	-javanese}', "");
-    Expect(0, 43487, '\p{^	-javanese}', "");
-    Expect(0, 43487, '\P{	-javanese}', "");
-    Expect(1, 43487, '\P{^	-javanese}', "");
-    Expect(0, 43488, '\p{	-javanese}', "");
-    Expect(1, 43488, '\p{^	-javanese}', "");
-    Expect(1, 43488, '\P{	-javanese}', "");
-    Expect(0, 43488, '\P{^	-javanese}', "");
-    Error('\p{	/a/Is_Javanese}');
-    Error('\P{	/a/Is_Javanese}');
+    Expect(1, 43487, '\p{	JAVANESE}', "");
+    Expect(0, 43487, '\p{^	JAVANESE}', "");
+    Expect(0, 43487, '\P{	JAVANESE}', "");
+    Expect(1, 43487, '\P{^	JAVANESE}', "");
+    Expect(0, 43488, '\p{	JAVANESE}', "");
+    Expect(1, 43488, '\p{^	JAVANESE}', "");
+    Expect(1, 43488, '\P{	JAVANESE}', "");
+    Expect(0, 43488, '\P{^	JAVANESE}', "");
+    Error('\p{	IS_javanese:=}');
+    Error('\P{	IS_javanese:=}');
     Expect(1, 43487, '\p{isjavanese}', "");
     Expect(0, 43487, '\p{^isjavanese}', "");
     Expect(0, 43487, '\P{isjavanese}', "");
@@ -106639,16 +107693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43488, '\p{^isjavanese}', "");
     Expect(1, 43488, '\P{isjavanese}', "");
     Expect(0, 43488, '\P{^isjavanese}', "");
-    Expect(1, 43487, '\p{		is_Javanese}', "");
-    Expect(0, 43487, '\p{^		is_Javanese}', "");
-    Expect(0, 43487, '\P{		is_Javanese}', "");
-    Expect(1, 43487, '\P{^		is_Javanese}', "");
-    Expect(0, 43488, '\p{		is_Javanese}', "");
-    Expect(1, 43488, '\p{^		is_Javanese}', "");
-    Expect(1, 43488, '\P{		is_Javanese}', "");
-    Expect(0, 43488, '\P{^		is_Javanese}', "");
-    Error('\p{-JAVA/a/}');
-    Error('\P{-JAVA/a/}');
+    Expect(1, 43487, '\p{	is_Javanese}', "");
+    Expect(0, 43487, '\p{^	is_Javanese}', "");
+    Expect(0, 43487, '\P{	is_Javanese}', "");
+    Expect(1, 43487, '\P{^	is_Javanese}', "");
+    Expect(0, 43488, '\p{	is_Javanese}', "");
+    Expect(1, 43488, '\p{^	is_Javanese}', "");
+    Expect(1, 43488, '\P{	is_Javanese}', "");
+    Expect(0, 43488, '\P{^	is_Javanese}', "");
+    Error('\p{/a/ _Java}');
+    Error('\P{/a/ _Java}');
     Expect(1, 43487, '\p{java}', "");
     Expect(0, 43487, '\p{^java}', "");
     Expect(0, 43487, '\P{java}', "");
@@ -106657,16 +107711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43488, '\p{^java}', "");
     Expect(1, 43488, '\P{java}', "");
     Expect(0, 43488, '\P{^java}', "");
-    Expect(1, 43487, '\p{ 	Java}', "");
-    Expect(0, 43487, '\p{^ 	Java}', "");
-    Expect(0, 43487, '\P{ 	Java}', "");
-    Expect(1, 43487, '\P{^ 	Java}', "");
-    Expect(0, 43488, '\p{ 	Java}', "");
-    Expect(1, 43488, '\p{^ 	Java}', "");
-    Expect(1, 43488, '\P{ 	Java}', "");
-    Expect(0, 43488, '\P{^ 	Java}', "");
-    Error('\p{_:=Is_JAVA}');
-    Error('\P{_:=Is_JAVA}');
+    Expect(1, 43487, '\p{	-java}', "");
+    Expect(0, 43487, '\p{^	-java}', "");
+    Expect(0, 43487, '\P{	-java}', "");
+    Expect(1, 43487, '\P{^	-java}', "");
+    Expect(0, 43488, '\p{	-java}', "");
+    Expect(1, 43488, '\p{^	-java}', "");
+    Expect(1, 43488, '\P{	-java}', "");
+    Expect(0, 43488, '\P{^	-java}', "");
+    Error('\p{		Is_java/a/}');
+    Error('\P{		Is_java/a/}');
     Expect(1, 43487, '\p{isjava}', "");
     Expect(0, 43487, '\p{^isjava}', "");
     Expect(0, 43487, '\P{isjava}', "");
@@ -106675,16 +107729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43488, '\p{^isjava}', "");
     Expect(1, 43488, '\P{isjava}', "");
     Expect(0, 43488, '\P{^isjava}', "");
-    Expect(1, 43487, '\p{ _Is_Java}', "");
-    Expect(0, 43487, '\p{^ _Is_Java}', "");
-    Expect(0, 43487, '\P{ _Is_Java}', "");
-    Expect(1, 43487, '\P{^ _Is_Java}', "");
-    Expect(0, 43488, '\p{ _Is_Java}', "");
-    Expect(1, 43488, '\p{^ _Is_Java}', "");
-    Expect(1, 43488, '\P{ _Is_Java}', "");
-    Expect(0, 43488, '\P{^ _Is_Java}', "");
-    Error('\p{/a/	-join_Control}');
-    Error('\P{/a/	-join_Control}');
+    Expect(1, 43487, '\p{		Is_Java}', "");
+    Expect(0, 43487, '\p{^		Is_Java}', "");
+    Expect(0, 43487, '\P{		Is_Java}', "");
+    Expect(1, 43487, '\P{^		Is_Java}', "");
+    Expect(0, 43488, '\p{		Is_Java}', "");
+    Expect(1, 43488, '\p{^		Is_Java}', "");
+    Expect(1, 43488, '\P{		Is_Java}', "");
+    Expect(0, 43488, '\P{^		Is_Java}', "");
+    Error('\p{_join_CONTROL:=}');
+    Error('\P{_join_CONTROL:=}');
     Expect(1, 8205, '\p{joincontrol}', "");
     Expect(0, 8205, '\p{^joincontrol}', "");
     Expect(0, 8205, '\P{joincontrol}', "");
@@ -106693,16 +107747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8206, '\p{^joincontrol}', "");
     Expect(1, 8206, '\P{joincontrol}', "");
     Expect(0, 8206, '\P{^joincontrol}', "");
-    Expect(1, 8205, '\p{	join_control}', "");
-    Expect(0, 8205, '\p{^	join_control}', "");
-    Expect(0, 8205, '\P{	join_control}', "");
-    Expect(1, 8205, '\P{^	join_control}', "");
-    Expect(0, 8206, '\p{	join_control}', "");
-    Expect(1, 8206, '\p{^	join_control}', "");
-    Expect(1, 8206, '\P{	join_control}', "");
-    Expect(0, 8206, '\P{^	join_control}', "");
-    Error('\p{	IS_join_control:=}');
-    Error('\P{	IS_join_control:=}');
+    Expect(1, 8205, '\p{-join_control}', "");
+    Expect(0, 8205, '\p{^-join_control}', "");
+    Expect(0, 8205, '\P{-join_control}', "");
+    Expect(1, 8205, '\P{^-join_control}', "");
+    Expect(0, 8206, '\p{-join_control}', "");
+    Expect(1, 8206, '\p{^-join_control}', "");
+    Expect(1, 8206, '\P{-join_control}', "");
+    Expect(0, 8206, '\P{^-join_control}', "");
+    Error('\p{	IS_JOIN_CONTROL/a/}');
+    Error('\P{	IS_JOIN_CONTROL/a/}');
     Expect(1, 8205, '\p{isjoincontrol}', "");
     Expect(0, 8205, '\p{^isjoincontrol}', "");
     Expect(0, 8205, '\P{isjoincontrol}', "");
@@ -106711,16 +107765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8206, '\p{^isjoincontrol}', "");
     Expect(1, 8206, '\P{isjoincontrol}', "");
     Expect(0, 8206, '\P{^isjoincontrol}', "");
-    Expect(1, 8205, '\p{	IS_JOIN_Control}', "");
-    Expect(0, 8205, '\p{^	IS_JOIN_Control}', "");
-    Expect(0, 8205, '\P{	IS_JOIN_Control}', "");
-    Expect(1, 8205, '\P{^	IS_JOIN_Control}', "");
-    Expect(0, 8206, '\p{	IS_JOIN_Control}', "");
-    Expect(1, 8206, '\p{^	IS_JOIN_Control}', "");
-    Expect(1, 8206, '\P{	IS_JOIN_Control}', "");
-    Expect(0, 8206, '\P{^	IS_JOIN_Control}', "");
-    Error('\p{:=join_C}');
-    Error('\P{:=join_C}');
+    Expect(1, 8205, '\p{_is_join_CONTROL}', "");
+    Expect(0, 8205, '\p{^_is_join_CONTROL}', "");
+    Expect(0, 8205, '\P{_is_join_CONTROL}', "");
+    Expect(1, 8205, '\P{^_is_join_CONTROL}', "");
+    Expect(0, 8206, '\p{_is_join_CONTROL}', "");
+    Expect(1, 8206, '\p{^_is_join_CONTROL}', "");
+    Expect(1, 8206, '\P{_is_join_CONTROL}', "");
+    Expect(0, 8206, '\P{^_is_join_CONTROL}', "");
+    Error('\p{ :=Join_c}');
+    Error('\P{ :=Join_c}');
     Expect(1, 8205, '\p{joinc}', "");
     Expect(0, 8205, '\p{^joinc}', "");
     Expect(0, 8205, '\P{joinc}', "");
@@ -106729,16 +107783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8206, '\p{^joinc}', "");
     Expect(1, 8206, '\P{joinc}', "");
     Expect(0, 8206, '\P{^joinc}', "");
-    Expect(1, 8205, '\p{- Join_C}', "");
-    Expect(0, 8205, '\p{^- Join_C}', "");
-    Expect(0, 8205, '\P{- Join_C}', "");
-    Expect(1, 8205, '\P{^- Join_C}', "");
-    Expect(0, 8206, '\p{- Join_C}', "");
-    Expect(1, 8206, '\p{^- Join_C}', "");
-    Expect(1, 8206, '\P{- Join_C}', "");
-    Expect(0, 8206, '\P{^- Join_C}', "");
-    Error('\p{	/a/Is_Join_C}');
-    Error('\P{	/a/Is_Join_C}');
+    Expect(1, 8205, '\p{ Join_C}', "");
+    Expect(0, 8205, '\p{^ Join_C}', "");
+    Expect(0, 8205, '\P{ Join_C}', "");
+    Expect(1, 8205, '\P{^ Join_C}', "");
+    Expect(0, 8206, '\p{ Join_C}', "");
+    Expect(1, 8206, '\p{^ Join_C}', "");
+    Expect(1, 8206, '\P{ Join_C}', "");
+    Expect(0, 8206, '\P{^ Join_C}', "");
+    Error('\p{/a/	_IS_join_C}');
+    Error('\P{/a/	_IS_join_C}');
     Expect(1, 8205, '\p{isjoinc}', "");
     Expect(0, 8205, '\p{^isjoinc}', "");
     Expect(0, 8205, '\P{isjoinc}', "");
@@ -106747,16 +107801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8206, '\p{^isjoinc}', "");
     Expect(1, 8206, '\P{isjoinc}', "");
     Expect(0, 8206, '\P{^isjoinc}', "");
-    Expect(1, 8205, '\p{	 Is_Join_C}', "");
-    Expect(0, 8205, '\p{^	 Is_Join_C}', "");
-    Expect(0, 8205, '\P{	 Is_Join_C}', "");
-    Expect(1, 8205, '\P{^	 Is_Join_C}', "");
-    Expect(0, 8206, '\p{	 Is_Join_C}', "");
-    Expect(1, 8206, '\p{^	 Is_Join_C}', "");
-    Expect(1, 8206, '\P{	 Is_Join_C}', "");
-    Expect(0, 8206, '\P{^	 Is_Join_C}', "");
-    Error('\p{:=_Kaithi}');
-    Error('\P{:=_Kaithi}');
+    Expect(1, 8205, '\p{		is_Join_C}', "");
+    Expect(0, 8205, '\p{^		is_Join_C}', "");
+    Expect(0, 8205, '\P{		is_Join_C}', "");
+    Expect(1, 8205, '\P{^		is_Join_C}', "");
+    Expect(0, 8206, '\p{		is_Join_C}', "");
+    Expect(1, 8206, '\p{^		is_Join_C}', "");
+    Expect(1, 8206, '\P{		is_Join_C}', "");
+    Expect(0, 8206, '\P{^		is_Join_C}', "");
+    Error('\p{/a/ KAITHI}');
+    Error('\P{/a/ KAITHI}');
     Expect(1, 69837, '\p{kaithi}', "");
     Expect(0, 69837, '\p{^kaithi}', "");
     Expect(0, 69837, '\P{kaithi}', "");
@@ -106765,16 +107819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^kaithi}', "");
     Expect(1, 69838, '\P{kaithi}', "");
     Expect(0, 69838, '\P{^kaithi}', "");
-    Expect(1, 69837, '\p{-	Kaithi}', "");
-    Expect(0, 69837, '\p{^-	Kaithi}', "");
-    Expect(0, 69837, '\P{-	Kaithi}', "");
-    Expect(1, 69837, '\P{^-	Kaithi}', "");
-    Expect(0, 69838, '\p{-	Kaithi}', "");
-    Expect(1, 69838, '\p{^-	Kaithi}', "");
-    Expect(1, 69838, '\P{-	Kaithi}', "");
-    Expect(0, 69838, '\P{^-	Kaithi}', "");
-    Error('\p{:=_-Is_KAITHI}');
-    Error('\P{:=_-Is_KAITHI}');
+    Expect(1, 69837, '\p{__Kaithi}', "");
+    Expect(0, 69837, '\p{^__Kaithi}', "");
+    Expect(0, 69837, '\P{__Kaithi}', "");
+    Expect(1, 69837, '\P{^__Kaithi}', "");
+    Expect(0, 69838, '\p{__Kaithi}', "");
+    Expect(1, 69838, '\p{^__Kaithi}', "");
+    Expect(1, 69838, '\P{__Kaithi}', "");
+    Expect(0, 69838, '\P{^__Kaithi}', "");
+    Error('\p{ 	is_KAITHI/a/}');
+    Error('\P{ 	is_KAITHI/a/}');
     Expect(1, 69837, '\p{iskaithi}', "");
     Expect(0, 69837, '\p{^iskaithi}', "");
     Expect(0, 69837, '\P{iskaithi}', "");
@@ -106783,16 +107837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^iskaithi}', "");
     Expect(1, 69838, '\P{iskaithi}', "");
     Expect(0, 69838, '\P{^iskaithi}', "");
-    Expect(1, 69837, '\p{_-Is_Kaithi}', "");
-    Expect(0, 69837, '\p{^_-Is_Kaithi}', "");
-    Expect(0, 69837, '\P{_-Is_Kaithi}', "");
-    Expect(1, 69837, '\P{^_-Is_Kaithi}', "");
-    Expect(0, 69838, '\p{_-Is_Kaithi}', "");
-    Expect(1, 69838, '\p{^_-Is_Kaithi}', "");
-    Expect(1, 69838, '\P{_-Is_Kaithi}', "");
-    Expect(0, 69838, '\P{^_-Is_Kaithi}', "");
-    Error('\p{_/a/Kthi}');
-    Error('\P{_/a/Kthi}');
+    Expect(1, 69837, '\p{ -is_Kaithi}', "");
+    Expect(0, 69837, '\p{^ -is_Kaithi}', "");
+    Expect(0, 69837, '\P{ -is_Kaithi}', "");
+    Expect(1, 69837, '\P{^ -is_Kaithi}', "");
+    Expect(0, 69838, '\p{ -is_Kaithi}', "");
+    Expect(1, 69838, '\p{^ -is_Kaithi}', "");
+    Expect(1, 69838, '\P{ -is_Kaithi}', "");
+    Expect(0, 69838, '\P{^ -is_Kaithi}', "");
+    Error('\p{:=-KTHI}');
+    Error('\P{:=-KTHI}');
     Expect(1, 69837, '\p{kthi}', "");
     Expect(0, 69837, '\p{^kthi}', "");
     Expect(0, 69837, '\P{kthi}', "");
@@ -106801,8 +107855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^kthi}', "");
     Expect(1, 69838, '\P{kthi}', "");
     Expect(0, 69838, '\P{^kthi}', "");
-    Error('\p{:=-	Is_kthi}');
-    Error('\P{:=-	Is_kthi}');
+    Expect(1, 69837, '\p{__Kthi}', "");
+    Expect(0, 69837, '\p{^__Kthi}', "");
+    Expect(0, 69837, '\P{__Kthi}', "");
+    Expect(1, 69837, '\P{^__Kthi}', "");
+    Expect(0, 69838, '\p{__Kthi}', "");
+    Expect(1, 69838, '\p{^__Kthi}', "");
+    Expect(1, 69838, '\P{__Kthi}', "");
+    Expect(0, 69838, '\P{^__Kthi}', "");
+    Error('\p{  Is_KTHI/a/}');
+    Error('\P{  Is_KTHI/a/}');
     Expect(1, 69837, '\p{iskthi}', "");
     Expect(0, 69837, '\p{^iskthi}', "");
     Expect(0, 69837, '\P{iskthi}', "");
@@ -106811,16 +107873,70 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^iskthi}', "");
     Expect(1, 69838, '\P{iskthi}', "");
     Expect(0, 69838, '\P{^iskthi}', "");
-    Expect(1, 69837, '\p{	Is_kthi}', "");
-    Expect(0, 69837, '\p{^	Is_kthi}', "");
-    Expect(0, 69837, '\P{	Is_kthi}', "");
-    Expect(1, 69837, '\P{^	Is_kthi}', "");
-    Expect(0, 69838, '\p{	Is_kthi}', "");
-    Expect(1, 69838, '\p{^	Is_kthi}', "");
-    Expect(1, 69838, '\P{	Is_kthi}', "");
-    Expect(0, 69838, '\P{^	Is_kthi}', "");
-    Error('\p{/a/ kana_extended_a}');
-    Error('\P{/a/ kana_extended_a}');
+    Expect(1, 69837, '\p{	_is_Kthi}', "");
+    Expect(0, 69837, '\p{^	_is_Kthi}', "");
+    Expect(0, 69837, '\P{	_is_Kthi}', "");
+    Expect(1, 69837, '\P{^	_is_Kthi}', "");
+    Expect(0, 69838, '\p{	_is_Kthi}', "");
+    Expect(1, 69838, '\p{^	_is_Kthi}', "");
+    Expect(1, 69838, '\P{	_is_Kthi}', "");
+    Expect(0, 69838, '\P{^	_is_Kthi}', "");
+    Error('\p{_/a/kaktovik_Numerals}');
+    Error('\P{_/a/kaktovik_Numerals}');
+    Expect(1, 119519, '\p{kaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^kaktoviknumerals}', "");
+    Expect(0, 119519, '\P{kaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^kaktoviknumerals}', "");
+    Expect(0, 119520, '\p{kaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^kaktoviknumerals}', "");
+    Expect(1, 119520, '\P{kaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^kaktoviknumerals}', "");
+    Expect(1, 119519, '\p{_Kaktovik_Numerals}', "");
+    Expect(0, 119519, '\p{^_Kaktovik_Numerals}', "");
+    Expect(0, 119519, '\P{_Kaktovik_Numerals}', "");
+    Expect(1, 119519, '\P{^_Kaktovik_Numerals}', "");
+    Expect(0, 119520, '\p{_Kaktovik_Numerals}', "");
+    Expect(1, 119520, '\p{^_Kaktovik_Numerals}', "");
+    Expect(1, 119520, '\P{_Kaktovik_Numerals}', "");
+    Expect(0, 119520, '\P{^_Kaktovik_Numerals}', "");
+    Error('\p{	 IS_kaktovik_Numerals/a/}');
+    Error('\P{	 IS_kaktovik_Numerals/a/}');
+    Expect(1, 119519, '\p{iskaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^iskaktoviknumerals}', "");
+    Expect(0, 119519, '\P{iskaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^iskaktoviknumerals}', "");
+    Expect(0, 119520, '\p{iskaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^iskaktoviknumerals}', "");
+    Expect(1, 119520, '\P{iskaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^iskaktoviknumerals}', "");
+    Expect(1, 119519, '\p{_Is_KAKTOVIK_Numerals}', "");
+    Expect(0, 119519, '\p{^_Is_KAKTOVIK_Numerals}', "");
+    Expect(0, 119519, '\P{_Is_KAKTOVIK_Numerals}', "");
+    Expect(1, 119519, '\P{^_Is_KAKTOVIK_Numerals}', "");
+    Expect(0, 119520, '\p{_Is_KAKTOVIK_Numerals}', "");
+    Expect(1, 119520, '\p{^_Is_KAKTOVIK_Numerals}', "");
+    Expect(1, 119520, '\P{_Is_KAKTOVIK_Numerals}', "");
+    Expect(0, 119520, '\P{^_Is_KAKTOVIK_Numerals}', "");
+    Error('\p{/a/in_Kaktovik_Numerals}');
+    Error('\P{/a/in_Kaktovik_Numerals}');
+    Expect(1, 119519, '\p{inkaktoviknumerals}', "");
+    Expect(0, 119519, '\p{^inkaktoviknumerals}', "");
+    Expect(0, 119519, '\P{inkaktoviknumerals}', "");
+    Expect(1, 119519, '\P{^inkaktoviknumerals}', "");
+    Expect(0, 119520, '\p{inkaktoviknumerals}', "");
+    Expect(1, 119520, '\p{^inkaktoviknumerals}', "");
+    Expect(1, 119520, '\P{inkaktoviknumerals}', "");
+    Expect(0, 119520, '\P{^inkaktoviknumerals}', "");
+    Expect(1, 119519, '\p{  In_kaktovik_Numerals}', "");
+    Expect(0, 119519, '\p{^  In_kaktovik_Numerals}', "");
+    Expect(0, 119519, '\P{  In_kaktovik_Numerals}', "");
+    Expect(1, 119519, '\P{^  In_kaktovik_Numerals}', "");
+    Expect(0, 119520, '\p{  In_kaktovik_Numerals}', "");
+    Expect(1, 119520, '\p{^  In_kaktovik_Numerals}', "");
+    Expect(1, 119520, '\P{  In_kaktovik_Numerals}', "");
+    Expect(0, 119520, '\P{^  In_kaktovik_Numerals}', "");
+    Error('\p{_-kana_extended_a:=}');
+    Error('\P{_-kana_extended_a:=}');
     Expect(1, 110895, '\p{kanaextendeda}', "");
     Expect(0, 110895, '\p{^kanaextendeda}', "");
     Expect(0, 110895, '\P{kanaextendeda}', "");
@@ -106837,8 +107953,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110896, '\p{^-Kana_Extended_a}', "");
     Expect(1, 110896, '\P{-Kana_Extended_a}', "");
     Expect(0, 110896, '\P{^-Kana_Extended_a}', "");
-    Error('\p{-	is_Kana_Extended_A:=}');
-    Error('\P{-	is_Kana_Extended_A:=}');
+    Error('\p{_:=IS_Kana_Extended_A}');
+    Error('\P{_:=IS_Kana_Extended_A}');
     Expect(1, 110895, '\p{iskanaextendeda}', "");
     Expect(0, 110895, '\p{^iskanaextendeda}', "");
     Expect(0, 110895, '\P{iskanaextendeda}', "");
@@ -106847,16 +107963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110896, '\p{^iskanaextendeda}', "");
     Expect(1, 110896, '\P{iskanaextendeda}', "");
     Expect(0, 110896, '\P{^iskanaextendeda}', "");
-    Expect(1, 110895, '\p{	is_Kana_extended_a}', "");
-    Expect(0, 110895, '\p{^	is_Kana_extended_a}', "");
-    Expect(0, 110895, '\P{	is_Kana_extended_a}', "");
-    Expect(1, 110895, '\P{^	is_Kana_extended_a}', "");
-    Expect(0, 110896, '\p{	is_Kana_extended_a}', "");
-    Expect(1, 110896, '\p{^	is_Kana_extended_a}', "");
-    Expect(1, 110896, '\P{	is_Kana_extended_a}', "");
-    Expect(0, 110896, '\P{^	is_Kana_extended_a}', "");
-    Error('\p{	In_Kana_extended_a/a/}');
-    Error('\P{	In_Kana_extended_a/a/}');
+    Expect(1, 110895, '\p{ is_kana_EXTENDED_A}', "");
+    Expect(0, 110895, '\p{^ is_kana_EXTENDED_A}', "");
+    Expect(0, 110895, '\P{ is_kana_EXTENDED_A}', "");
+    Expect(1, 110895, '\P{^ is_kana_EXTENDED_A}', "");
+    Expect(0, 110896, '\p{ is_kana_EXTENDED_A}', "");
+    Expect(1, 110896, '\p{^ is_kana_EXTENDED_A}', "");
+    Expect(1, 110896, '\P{ is_kana_EXTENDED_A}', "");
+    Expect(0, 110896, '\P{^ is_kana_EXTENDED_A}', "");
+    Error('\p{/a/- In_Kana_EXTENDED_A}');
+    Error('\P{/a/- In_Kana_EXTENDED_A}');
     Expect(1, 110895, '\p{inkanaextendeda}', "");
     Expect(0, 110895, '\p{^inkanaextendeda}', "");
     Expect(0, 110895, '\P{inkanaextendeda}', "");
@@ -106865,16 +107981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110896, '\p{^inkanaextendeda}', "");
     Expect(1, 110896, '\P{inkanaextendeda}', "");
     Expect(0, 110896, '\P{^inkanaextendeda}', "");
-    Expect(1, 110895, '\p{--In_Kana_EXTENDED_a}', "");
-    Expect(0, 110895, '\p{^--In_Kana_EXTENDED_a}', "");
-    Expect(0, 110895, '\P{--In_Kana_EXTENDED_a}', "");
-    Expect(1, 110895, '\P{^--In_Kana_EXTENDED_a}', "");
-    Expect(0, 110896, '\p{--In_Kana_EXTENDED_a}', "");
-    Expect(1, 110896, '\p{^--In_Kana_EXTENDED_a}', "");
-    Expect(1, 110896, '\P{--In_Kana_EXTENDED_a}', "");
-    Expect(0, 110896, '\P{^--In_Kana_EXTENDED_a}', "");
-    Error('\p{_/a/kana_EXT_A}');
-    Error('\P{_/a/kana_EXT_A}');
+    Expect(1, 110895, '\p{_ IN_Kana_Extended_A}', "");
+    Expect(0, 110895, '\p{^_ IN_Kana_Extended_A}', "");
+    Expect(0, 110895, '\P{_ IN_Kana_Extended_A}', "");
+    Expect(1, 110895, '\P{^_ IN_Kana_Extended_A}', "");
+    Expect(0, 110896, '\p{_ IN_Kana_Extended_A}', "");
+    Expect(1, 110896, '\p{^_ IN_Kana_Extended_A}', "");
+    Expect(1, 110896, '\P{_ IN_Kana_Extended_A}', "");
+    Expect(0, 110896, '\P{^_ IN_Kana_Extended_A}', "");
+    Error('\p{:= 	kana_Ext_A}');
+    Error('\P{:= 	kana_Ext_A}');
     Expect(1, 110895, '\p{kanaexta}', "");
     Expect(0, 110895, '\p{^kanaexta}', "");
     Expect(0, 110895, '\P{kanaexta}', "");
@@ -106883,16 +107999,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110896, '\p{^kanaexta}', "");
     Expect(1, 110896, '\P{kanaexta}', "");
     Expect(0, 110896, '\P{^kanaexta}', "");
-    Expect(1, 110895, '\p{ 	Kana_Ext_a}', "");
-    Expect(0, 110895, '\p{^ 	Kana_Ext_a}', "");
-    Expect(0, 110895, '\P{ 	Kana_Ext_a}', "");
-    Expect(1, 110895, '\P{^ 	Kana_Ext_a}', "");
-    Expect(0, 110896, '\p{ 	Kana_Ext_a}', "");
-    Expect(1, 110896, '\p{^ 	Kana_Ext_a}', "");
-    Expect(1, 110896, '\P{ 	Kana_Ext_a}', "");
-    Expect(0, 110896, '\P{^ 	Kana_Ext_a}', "");
-    Error('\p{_is_kana_ext_A/a/}');
-    Error('\P{_is_kana_ext_A/a/}');
+    Expect(1, 110895, '\p{		kana_EXT_a}', "");
+    Expect(0, 110895, '\p{^		kana_EXT_a}', "");
+    Expect(0, 110895, '\P{		kana_EXT_a}', "");
+    Expect(1, 110895, '\P{^		kana_EXT_a}', "");
+    Expect(0, 110896, '\p{		kana_EXT_a}', "");
+    Expect(1, 110896, '\p{^		kana_EXT_a}', "");
+    Expect(1, 110896, '\P{		kana_EXT_a}', "");
+    Expect(0, 110896, '\P{^		kana_EXT_a}', "");
+    Error('\p{-:=Is_kana_ext_A}');
+    Error('\P{-:=Is_kana_ext_A}');
     Expect(1, 110895, '\p{iskanaexta}', "");
     Expect(0, 110895, '\p{^iskanaexta}', "");
     Expect(0, 110895, '\P{iskanaexta}', "");
@@ -106901,16 +108017,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110896, '\p{^iskanaexta}', "");
     Expect(1, 110896, '\P{iskanaexta}', "");
     Expect(0, 110896, '\P{^iskanaexta}', "");
-    Expect(1, 110895, '\p{-	Is_kana_EXT_a}', "");
-    Expect(0, 110895, '\p{^-	Is_kana_EXT_a}', "");
-    Expect(0, 110895, '\P{-	Is_kana_EXT_a}', "");
-    Expect(1, 110895, '\P{^-	Is_kana_EXT_a}', "");
-    Expect(0, 110896, '\p{-	Is_kana_EXT_a}', "");
-    Expect(1, 110896, '\p{^-	Is_kana_EXT_a}', "");
-    Expect(1, 110896, '\P{-	Is_kana_EXT_a}', "");
-    Expect(0, 110896, '\P{^-	Is_kana_EXT_a}', "");
-    Error('\p{_/a/IN_KANA_Ext_a}');
-    Error('\P{_/a/IN_KANA_Ext_a}');
+    Expect(1, 110895, '\p{Is_KANA_EXT_A}', "");
+    Expect(0, 110895, '\p{^Is_KANA_EXT_A}', "");
+    Expect(0, 110895, '\P{Is_KANA_EXT_A}', "");
+    Expect(1, 110895, '\P{^Is_KANA_EXT_A}', "");
+    Expect(0, 110896, '\p{Is_KANA_EXT_A}', "");
+    Expect(1, 110896, '\p{^Is_KANA_EXT_A}', "");
+    Expect(1, 110896, '\P{Is_KANA_EXT_A}', "");
+    Expect(0, 110896, '\P{^Is_KANA_EXT_A}', "");
+    Error('\p{  In_KANA_EXT_a/a/}');
+    Error('\P{  In_KANA_EXT_a/a/}');
     Expect(1, 110895, '\p{inkanaexta}', "");
     Expect(0, 110895, '\p{^inkanaexta}', "");
     Expect(0, 110895, '\P{inkanaexta}', "");
@@ -106919,16 +108035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110896, '\p{^inkanaexta}', "");
     Expect(1, 110896, '\P{inkanaexta}', "");
     Expect(0, 110896, '\P{^inkanaexta}', "");
-    Expect(1, 110895, '\p{__in_Kana_Ext_A}', "");
-    Expect(0, 110895, '\p{^__in_Kana_Ext_A}', "");
-    Expect(0, 110895, '\P{__in_Kana_Ext_A}', "");
-    Expect(1, 110895, '\P{^__in_Kana_Ext_A}', "");
-    Expect(0, 110896, '\p{__in_Kana_Ext_A}', "");
-    Expect(1, 110896, '\p{^__in_Kana_Ext_A}', "");
-    Expect(1, 110896, '\P{__in_Kana_Ext_A}', "");
-    Expect(0, 110896, '\P{^__in_Kana_Ext_A}', "");
-    Error('\p{/a/	kana_EXTENDED_B}');
-    Error('\P{/a/	kana_EXTENDED_B}');
+    Expect(1, 110895, '\p{	-in_Kana_ext_A}', "");
+    Expect(0, 110895, '\p{^	-in_Kana_ext_A}', "");
+    Expect(0, 110895, '\P{	-in_Kana_ext_A}', "");
+    Expect(1, 110895, '\P{^	-in_Kana_ext_A}', "");
+    Expect(0, 110896, '\p{	-in_Kana_ext_A}', "");
+    Expect(1, 110896, '\p{^	-in_Kana_ext_A}', "");
+    Expect(1, 110896, '\P{	-in_Kana_ext_A}', "");
+    Expect(0, 110896, '\P{^	-in_Kana_ext_A}', "");
+    Error('\p{:= Kana_Extended_B}');
+    Error('\P{:= Kana_Extended_B}');
     Expect(1, 110591, '\p{kanaextendedb}', "");
     Expect(0, 110591, '\p{^kanaextendedb}', "");
     Expect(0, 110591, '\P{kanaextendedb}', "");
@@ -106937,16 +108053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110592, '\p{^kanaextendedb}', "");
     Expect(1, 110592, '\P{kanaextendedb}', "");
     Expect(0, 110592, '\P{^kanaextendedb}', "");
-    Expect(1, 110591, '\p{--Kana_Extended_b}', "");
-    Expect(0, 110591, '\p{^--Kana_Extended_b}', "");
-    Expect(0, 110591, '\P{--Kana_Extended_b}', "");
-    Expect(1, 110591, '\P{^--Kana_Extended_b}', "");
-    Expect(0, 110592, '\p{--Kana_Extended_b}', "");
-    Expect(1, 110592, '\p{^--Kana_Extended_b}', "");
-    Expect(1, 110592, '\P{--Kana_Extended_b}', "");
-    Expect(0, 110592, '\P{^--Kana_Extended_b}', "");
-    Error('\p{:=IS_KANA_EXTENDED_B}');
-    Error('\P{:=IS_KANA_EXTENDED_B}');
+    Expect(1, 110591, '\p{- Kana_extended_b}', "");
+    Expect(0, 110591, '\p{^- Kana_extended_b}', "");
+    Expect(0, 110591, '\P{- Kana_extended_b}', "");
+    Expect(1, 110591, '\P{^- Kana_extended_b}', "");
+    Expect(0, 110592, '\p{- Kana_extended_b}', "");
+    Expect(1, 110592, '\p{^- Kana_extended_b}', "");
+    Expect(1, 110592, '\P{- Kana_extended_b}', "");
+    Expect(0, 110592, '\P{^- Kana_extended_b}', "");
+    Error('\p{		Is_kana_Extended_B:=}');
+    Error('\P{		Is_kana_Extended_B:=}');
     Expect(1, 110591, '\p{iskanaextendedb}', "");
     Expect(0, 110591, '\p{^iskanaextendedb}', "");
     Expect(0, 110591, '\P{iskanaextendedb}', "");
@@ -106955,16 +108071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110592, '\p{^iskanaextendedb}', "");
     Expect(1, 110592, '\P{iskanaextendedb}', "");
     Expect(0, 110592, '\P{^iskanaextendedb}', "");
-    Expect(1, 110591, '\p{-_Is_KANA_EXTENDED_B}', "");
-    Expect(0, 110591, '\p{^-_Is_KANA_EXTENDED_B}', "");
-    Expect(0, 110591, '\P{-_Is_KANA_EXTENDED_B}', "");
-    Expect(1, 110591, '\P{^-_Is_KANA_EXTENDED_B}', "");
-    Expect(0, 110592, '\p{-_Is_KANA_EXTENDED_B}', "");
-    Expect(1, 110592, '\p{^-_Is_KANA_EXTENDED_B}', "");
-    Expect(1, 110592, '\P{-_Is_KANA_EXTENDED_B}', "");
-    Expect(0, 110592, '\P{^-_Is_KANA_EXTENDED_B}', "");
-    Error('\p{_/a/IN_Kana_extended_B}');
-    Error('\P{_/a/IN_Kana_extended_B}');
+    Expect(1, 110591, '\p{_ Is_kana_Extended_b}', "");
+    Expect(0, 110591, '\p{^_ Is_kana_Extended_b}', "");
+    Expect(0, 110591, '\P{_ Is_kana_Extended_b}', "");
+    Expect(1, 110591, '\P{^_ Is_kana_Extended_b}', "");
+    Expect(0, 110592, '\p{_ Is_kana_Extended_b}', "");
+    Expect(1, 110592, '\p{^_ Is_kana_Extended_b}', "");
+    Expect(1, 110592, '\P{_ Is_kana_Extended_b}', "");
+    Expect(0, 110592, '\P{^_ Is_kana_Extended_b}', "");
+    Error('\p{_/a/IN_KANA_Extended_B}');
+    Error('\P{_/a/IN_KANA_Extended_B}');
     Expect(1, 110591, '\p{inkanaextendedb}', "");
     Expect(0, 110591, '\p{^inkanaextendedb}', "");
     Expect(0, 110591, '\P{inkanaextendedb}', "");
@@ -106973,16 +108089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110592, '\p{^inkanaextendedb}', "");
     Expect(1, 110592, '\P{inkanaextendedb}', "");
     Expect(0, 110592, '\P{^inkanaextendedb}', "");
-    Expect(1, 110591, '\p{ -IN_KANA_Extended_B}', "");
-    Expect(0, 110591, '\p{^ -IN_KANA_Extended_B}', "");
-    Expect(0, 110591, '\P{ -IN_KANA_Extended_B}', "");
-    Expect(1, 110591, '\P{^ -IN_KANA_Extended_B}', "");
-    Expect(0, 110592, '\p{ -IN_KANA_Extended_B}', "");
-    Expect(1, 110592, '\p{^ -IN_KANA_Extended_B}', "");
-    Expect(1, 110592, '\P{ -IN_KANA_Extended_B}', "");
-    Expect(0, 110592, '\P{^ -IN_KANA_Extended_B}', "");
-    Error('\p{_-KANA_Ext_B/a/}');
-    Error('\P{_-KANA_Ext_B/a/}');
+    Expect(1, 110591, '\p{_	In_Kana_EXTENDED_b}', "");
+    Expect(0, 110591, '\p{^_	In_Kana_EXTENDED_b}', "");
+    Expect(0, 110591, '\P{_	In_Kana_EXTENDED_b}', "");
+    Expect(1, 110591, '\P{^_	In_Kana_EXTENDED_b}', "");
+    Expect(0, 110592, '\p{_	In_Kana_EXTENDED_b}', "");
+    Expect(1, 110592, '\p{^_	In_Kana_EXTENDED_b}', "");
+    Expect(1, 110592, '\P{_	In_Kana_EXTENDED_b}', "");
+    Expect(0, 110592, '\P{^_	In_Kana_EXTENDED_b}', "");
+    Error('\p{:=	_KANA_Ext_b}');
+    Error('\P{:=	_KANA_Ext_b}');
     Expect(1, 110591, '\p{kanaextb}', "");
     Expect(0, 110591, '\p{^kanaextb}', "");
     Expect(0, 110591, '\P{kanaextb}', "");
@@ -106991,16 +108107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110592, '\p{^kanaextb}', "");
     Expect(1, 110592, '\P{kanaextb}', "");
     Expect(0, 110592, '\P{^kanaextb}', "");
-    Expect(1, 110591, '\p{		KANA_Ext_B}', "");
-    Expect(0, 110591, '\p{^		KANA_Ext_B}', "");
-    Expect(0, 110591, '\P{		KANA_Ext_B}', "");
-    Expect(1, 110591, '\P{^		KANA_Ext_B}', "");
-    Expect(0, 110592, '\p{		KANA_Ext_B}', "");
-    Expect(1, 110592, '\p{^		KANA_Ext_B}', "");
-    Expect(1, 110592, '\P{		KANA_Ext_B}', "");
-    Expect(0, 110592, '\P{^		KANA_Ext_B}', "");
-    Error('\p{- Is_Kana_EXT_B:=}');
-    Error('\P{- Is_Kana_EXT_B:=}');
+    Expect(1, 110591, '\p{_-kana_ext_b}', "");
+    Expect(0, 110591, '\p{^_-kana_ext_b}', "");
+    Expect(0, 110591, '\P{_-kana_ext_b}', "");
+    Expect(1, 110591, '\P{^_-kana_ext_b}', "");
+    Expect(0, 110592, '\p{_-kana_ext_b}', "");
+    Expect(1, 110592, '\p{^_-kana_ext_b}', "");
+    Expect(1, 110592, '\P{_-kana_ext_b}', "");
+    Expect(0, 110592, '\P{^_-kana_ext_b}', "");
+    Error('\p{-:=Is_Kana_EXT_B}');
+    Error('\P{-:=Is_Kana_EXT_B}');
     Expect(1, 110591, '\p{iskanaextb}', "");
     Expect(0, 110591, '\p{^iskanaextb}', "");
     Expect(0, 110591, '\P{iskanaextb}', "");
@@ -107009,16 +108125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110592, '\p{^iskanaextb}', "");
     Expect(1, 110592, '\P{iskanaextb}', "");
     Expect(0, 110592, '\P{^iskanaextb}', "");
-    Expect(1, 110591, '\p{ -Is_kana_EXT_b}', "");
-    Expect(0, 110591, '\p{^ -Is_kana_EXT_b}', "");
-    Expect(0, 110591, '\P{ -Is_kana_EXT_b}', "");
-    Expect(1, 110591, '\P{^ -Is_kana_EXT_b}', "");
-    Expect(0, 110592, '\p{ -Is_kana_EXT_b}', "");
-    Expect(1, 110592, '\p{^ -Is_kana_EXT_b}', "");
-    Expect(1, 110592, '\P{ -Is_kana_EXT_b}', "");
-    Expect(0, 110592, '\P{^ -Is_kana_EXT_b}', "");
-    Error('\p{/a/	-In_kana_Ext_b}');
-    Error('\P{/a/	-In_kana_Ext_b}');
+    Expect(1, 110591, '\p{	_IS_kana_ext_b}', "");
+    Expect(0, 110591, '\p{^	_IS_kana_ext_b}', "");
+    Expect(0, 110591, '\P{	_IS_kana_ext_b}', "");
+    Expect(1, 110591, '\P{^	_IS_kana_ext_b}', "");
+    Expect(0, 110592, '\p{	_IS_kana_ext_b}', "");
+    Expect(1, 110592, '\p{^	_IS_kana_ext_b}', "");
+    Expect(1, 110592, '\P{	_IS_kana_ext_b}', "");
+    Expect(0, 110592, '\P{^	_IS_kana_ext_b}', "");
+    Error('\p{:= -In_KANA_ext_B}');
+    Error('\P{:= -In_KANA_ext_B}');
     Expect(1, 110591, '\p{inkanaextb}', "");
     Expect(0, 110591, '\p{^inkanaextb}', "");
     Expect(0, 110591, '\P{inkanaextb}', "");
@@ -107027,16 +108143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110592, '\p{^inkanaextb}', "");
     Expect(1, 110592, '\P{inkanaextb}', "");
     Expect(0, 110592, '\P{^inkanaextb}', "");
-    Expect(1, 110591, '\p{_IN_Kana_Ext_B}', "");
-    Expect(0, 110591, '\p{^_IN_Kana_Ext_B}', "");
-    Expect(0, 110591, '\P{_IN_Kana_Ext_B}', "");
-    Expect(1, 110591, '\P{^_IN_Kana_Ext_B}', "");
-    Expect(0, 110592, '\p{_IN_Kana_Ext_B}', "");
-    Expect(1, 110592, '\p{^_IN_Kana_Ext_B}', "");
-    Expect(1, 110592, '\P{_IN_Kana_Ext_B}', "");
-    Expect(0, 110592, '\P{^_IN_Kana_Ext_B}', "");
-    Error('\p{:= 	Kana_SUPPLEMENT}');
-    Error('\P{:= 	Kana_SUPPLEMENT}');
+    Expect(1, 110591, '\p{IN_Kana_ext_B}', "");
+    Expect(0, 110591, '\p{^IN_Kana_ext_B}', "");
+    Expect(0, 110591, '\P{IN_Kana_ext_B}', "");
+    Expect(1, 110591, '\P{^IN_Kana_ext_B}', "");
+    Expect(0, 110592, '\p{IN_Kana_ext_B}', "");
+    Expect(1, 110592, '\p{^IN_Kana_ext_B}', "");
+    Expect(1, 110592, '\P{IN_Kana_ext_B}', "");
+    Expect(0, 110592, '\P{^IN_Kana_ext_B}', "");
+    Error('\p{:=kana_SUPPLEMENT}');
+    Error('\P{:=kana_SUPPLEMENT}');
     Expect(1, 110847, '\p{kanasupplement}', "");
     Expect(0, 110847, '\p{^kanasupplement}', "");
     Expect(0, 110847, '\P{kanasupplement}', "");
@@ -107045,16 +108161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110848, '\p{^kanasupplement}', "");
     Expect(1, 110848, '\P{kanasupplement}', "");
     Expect(0, 110848, '\P{^kanasupplement}', "");
-    Expect(1, 110847, '\p{ kana_Supplement}', "");
-    Expect(0, 110847, '\p{^ kana_Supplement}', "");
-    Expect(0, 110847, '\P{ kana_Supplement}', "");
-    Expect(1, 110847, '\P{^ kana_Supplement}', "");
-    Expect(0, 110848, '\p{ kana_Supplement}', "");
-    Expect(1, 110848, '\p{^ kana_Supplement}', "");
-    Expect(1, 110848, '\P{ kana_Supplement}', "");
-    Expect(0, 110848, '\P{^ kana_Supplement}', "");
-    Error('\p{:=Is_Kana_Supplement}');
-    Error('\P{:=Is_Kana_Supplement}');
+    Expect(1, 110847, '\p{  kana_supplement}', "");
+    Expect(0, 110847, '\p{^  kana_supplement}', "");
+    Expect(0, 110847, '\P{  kana_supplement}', "");
+    Expect(1, 110847, '\P{^  kana_supplement}', "");
+    Expect(0, 110848, '\p{  kana_supplement}', "");
+    Expect(1, 110848, '\p{^  kana_supplement}', "");
+    Expect(1, 110848, '\P{  kana_supplement}', "");
+    Expect(0, 110848, '\P{^  kana_supplement}', "");
+    Error('\p{:= 	IS_kana_SUPPLEMENT}');
+    Error('\P{:= 	IS_kana_SUPPLEMENT}');
     Expect(1, 110847, '\p{iskanasupplement}', "");
     Expect(0, 110847, '\p{^iskanasupplement}', "");
     Expect(0, 110847, '\P{iskanasupplement}', "");
@@ -107063,16 +108179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110848, '\p{^iskanasupplement}', "");
     Expect(1, 110848, '\P{iskanasupplement}', "");
     Expect(0, 110848, '\P{^iskanasupplement}', "");
-    Expect(1, 110847, '\p{_ is_Kana_Supplement}', "");
-    Expect(0, 110847, '\p{^_ is_Kana_Supplement}', "");
-    Expect(0, 110847, '\P{_ is_Kana_Supplement}', "");
-    Expect(1, 110847, '\P{^_ is_Kana_Supplement}', "");
-    Expect(0, 110848, '\p{_ is_Kana_Supplement}', "");
-    Expect(1, 110848, '\p{^_ is_Kana_Supplement}', "");
-    Expect(1, 110848, '\P{_ is_Kana_Supplement}', "");
-    Expect(0, 110848, '\P{^_ is_Kana_Supplement}', "");
-    Error('\p{:=IN_KANA_supplement}');
-    Error('\P{:=IN_KANA_supplement}');
+    Expect(1, 110847, '\p{	Is_Kana_SUPPLEMENT}', "");
+    Expect(0, 110847, '\p{^	Is_Kana_SUPPLEMENT}', "");
+    Expect(0, 110847, '\P{	Is_Kana_SUPPLEMENT}', "");
+    Expect(1, 110847, '\P{^	Is_Kana_SUPPLEMENT}', "");
+    Expect(0, 110848, '\p{	Is_Kana_SUPPLEMENT}', "");
+    Expect(1, 110848, '\p{^	Is_Kana_SUPPLEMENT}', "");
+    Expect(1, 110848, '\P{	Is_Kana_SUPPLEMENT}', "");
+    Expect(0, 110848, '\P{^	Is_Kana_SUPPLEMENT}', "");
+    Error('\p{		in_Kana_Supplement/a/}');
+    Error('\P{		in_Kana_Supplement/a/}');
     Expect(1, 110847, '\p{inkanasupplement}', "");
     Expect(0, 110847, '\p{^inkanasupplement}', "");
     Expect(0, 110847, '\P{inkanasupplement}', "");
@@ -107081,16 +108197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110848, '\p{^inkanasupplement}', "");
     Expect(1, 110848, '\P{inkanasupplement}', "");
     Expect(0, 110848, '\P{^inkanasupplement}', "");
-    Expect(1, 110847, '\p{_IN_kana_Supplement}', "");
-    Expect(0, 110847, '\p{^_IN_kana_Supplement}', "");
-    Expect(0, 110847, '\P{_IN_kana_Supplement}', "");
-    Expect(1, 110847, '\P{^_IN_kana_Supplement}', "");
-    Expect(0, 110848, '\p{_IN_kana_Supplement}', "");
-    Expect(1, 110848, '\p{^_IN_kana_Supplement}', "");
-    Expect(1, 110848, '\P{_IN_kana_Supplement}', "");
-    Expect(0, 110848, '\P{^_IN_kana_Supplement}', "");
-    Error('\p{	 Kana_Sup:=}');
-    Error('\P{	 Kana_Sup:=}');
+    Expect(1, 110847, '\p{-	IN_Kana_supplement}', "");
+    Expect(0, 110847, '\p{^-	IN_Kana_supplement}', "");
+    Expect(0, 110847, '\P{-	IN_Kana_supplement}', "");
+    Expect(1, 110847, '\P{^-	IN_Kana_supplement}', "");
+    Expect(0, 110848, '\p{-	IN_Kana_supplement}', "");
+    Expect(1, 110848, '\p{^-	IN_Kana_supplement}', "");
+    Expect(1, 110848, '\P{-	IN_Kana_supplement}', "");
+    Expect(0, 110848, '\P{^-	IN_Kana_supplement}', "");
+    Error('\p{_/a/Kana_sup}');
+    Error('\P{_/a/Kana_sup}');
     Expect(1, 110847, '\p{kanasup}', "");
     Expect(0, 110847, '\p{^kanasup}', "");
     Expect(0, 110847, '\P{kanasup}', "");
@@ -107099,16 +108215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110848, '\p{^kanasup}', "");
     Expect(1, 110848, '\P{kanasup}', "");
     Expect(0, 110848, '\P{^kanasup}', "");
-    Expect(1, 110847, '\p{- Kana_sup}', "");
-    Expect(0, 110847, '\p{^- Kana_sup}', "");
-    Expect(0, 110847, '\P{- Kana_sup}', "");
-    Expect(1, 110847, '\P{^- Kana_sup}', "");
-    Expect(0, 110848, '\p{- Kana_sup}', "");
-    Expect(1, 110848, '\p{^- Kana_sup}', "");
-    Expect(1, 110848, '\P{- Kana_sup}', "");
-    Expect(0, 110848, '\P{^- Kana_sup}', "");
-    Error('\p{/a/-IS_Kana_sup}');
-    Error('\P{/a/-IS_Kana_sup}');
+    Expect(1, 110847, '\p{ -Kana_Sup}', "");
+    Expect(0, 110847, '\p{^ -Kana_Sup}', "");
+    Expect(0, 110847, '\P{ -Kana_Sup}', "");
+    Expect(1, 110847, '\P{^ -Kana_Sup}', "");
+    Expect(0, 110848, '\p{ -Kana_Sup}', "");
+    Expect(1, 110848, '\p{^ -Kana_Sup}', "");
+    Expect(1, 110848, '\P{ -Kana_Sup}', "");
+    Expect(0, 110848, '\P{^ -Kana_Sup}', "");
+    Error('\p{:= 	IS_kana_Sup}');
+    Error('\P{:= 	IS_kana_Sup}');
     Expect(1, 110847, '\p{iskanasup}', "");
     Expect(0, 110847, '\p{^iskanasup}', "");
     Expect(0, 110847, '\P{iskanasup}', "");
@@ -107117,16 +108233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110848, '\p{^iskanasup}', "");
     Expect(1, 110848, '\P{iskanasup}', "");
     Expect(0, 110848, '\P{^iskanasup}', "");
-    Expect(1, 110847, '\p{  IS_Kana_sup}', "");
-    Expect(0, 110847, '\p{^  IS_Kana_sup}', "");
-    Expect(0, 110847, '\P{  IS_Kana_sup}', "");
-    Expect(1, 110847, '\P{^  IS_Kana_sup}', "");
-    Expect(0, 110848, '\p{  IS_Kana_sup}', "");
-    Expect(1, 110848, '\p{^  IS_Kana_sup}', "");
-    Expect(1, 110848, '\P{  IS_Kana_sup}', "");
-    Expect(0, 110848, '\P{^  IS_Kana_sup}', "");
-    Error('\p{/a/In_Kana_sup}');
-    Error('\P{/a/In_Kana_sup}');
+    Expect(1, 110847, '\p{Is_Kana_Sup}', "");
+    Expect(0, 110847, '\p{^Is_Kana_Sup}', "");
+    Expect(0, 110847, '\P{Is_Kana_Sup}', "");
+    Expect(1, 110847, '\P{^Is_Kana_Sup}', "");
+    Expect(0, 110848, '\p{Is_Kana_Sup}', "");
+    Expect(1, 110848, '\p{^Is_Kana_Sup}', "");
+    Expect(1, 110848, '\P{Is_Kana_Sup}', "");
+    Expect(0, 110848, '\P{^Is_Kana_Sup}', "");
+    Error('\p{:=	In_kana_sup}');
+    Error('\P{:=	In_kana_sup}');
     Expect(1, 110847, '\p{inkanasup}', "");
     Expect(0, 110847, '\p{^inkanasup}', "");
     Expect(0, 110847, '\P{inkanasup}', "");
@@ -107135,16 +108251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110848, '\p{^inkanasup}', "");
     Expect(1, 110848, '\P{inkanasup}', "");
     Expect(0, 110848, '\P{^inkanasup}', "");
-    Expect(1, 110847, '\p{ -In_Kana_SUP}', "");
-    Expect(0, 110847, '\p{^ -In_Kana_SUP}', "");
-    Expect(0, 110847, '\P{ -In_Kana_SUP}', "");
-    Expect(1, 110847, '\P{^ -In_Kana_SUP}', "");
-    Expect(0, 110848, '\p{ -In_Kana_SUP}', "");
-    Expect(1, 110848, '\p{^ -In_Kana_SUP}', "");
-    Expect(1, 110848, '\P{ -In_Kana_SUP}', "");
-    Expect(0, 110848, '\P{^ -In_Kana_SUP}', "");
-    Error('\p{:=	_Kanbun}');
-    Error('\P{:=	_Kanbun}');
+    Expect(1, 110847, '\p{ In_KANA_Sup}', "");
+    Expect(0, 110847, '\p{^ In_KANA_Sup}', "");
+    Expect(0, 110847, '\P{ In_KANA_Sup}', "");
+    Expect(1, 110847, '\P{^ In_KANA_Sup}', "");
+    Expect(0, 110848, '\p{ In_KANA_Sup}', "");
+    Expect(1, 110848, '\p{^ In_KANA_Sup}', "");
+    Expect(1, 110848, '\P{ In_KANA_Sup}', "");
+    Expect(0, 110848, '\P{^ In_KANA_Sup}', "");
+    Error('\p{/a/ Kanbun}');
+    Error('\P{/a/ Kanbun}');
     Expect(1, 12703, '\p{kanbun}', "");
     Expect(0, 12703, '\p{^kanbun}', "");
     Expect(0, 12703, '\P{kanbun}', "");
@@ -107153,16 +108269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12704, '\p{^kanbun}', "");
     Expect(1, 12704, '\P{kanbun}', "");
     Expect(0, 12704, '\P{^kanbun}', "");
-    Expect(1, 12703, '\p{ _Kanbun}', "");
-    Expect(0, 12703, '\p{^ _Kanbun}', "");
-    Expect(0, 12703, '\P{ _Kanbun}', "");
-    Expect(1, 12703, '\P{^ _Kanbun}', "");
-    Expect(0, 12704, '\p{ _Kanbun}', "");
-    Expect(1, 12704, '\p{^ _Kanbun}', "");
-    Expect(1, 12704, '\P{ _Kanbun}', "");
-    Expect(0, 12704, '\P{^ _Kanbun}', "");
-    Error('\p{  IS_Kanbun:=}');
-    Error('\P{  IS_Kanbun:=}');
+    Expect(1, 12703, '\p{	kanbun}', "");
+    Expect(0, 12703, '\p{^	kanbun}', "");
+    Expect(0, 12703, '\P{	kanbun}', "");
+    Expect(1, 12703, '\P{^	kanbun}', "");
+    Expect(0, 12704, '\p{	kanbun}', "");
+    Expect(1, 12704, '\p{^	kanbun}', "");
+    Expect(1, 12704, '\P{	kanbun}', "");
+    Expect(0, 12704, '\P{^	kanbun}', "");
+    Error('\p{:=_Is_kanbun}');
+    Error('\P{:=_Is_kanbun}');
     Expect(1, 12703, '\p{iskanbun}', "");
     Expect(0, 12703, '\p{^iskanbun}', "");
     Expect(0, 12703, '\P{iskanbun}', "");
@@ -107171,16 +108287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12704, '\p{^iskanbun}', "");
     Expect(1, 12704, '\P{iskanbun}', "");
     Expect(0, 12704, '\P{^iskanbun}', "");
-    Expect(1, 12703, '\p{-Is_KANBUN}', "");
-    Expect(0, 12703, '\p{^-Is_KANBUN}', "");
-    Expect(0, 12703, '\P{-Is_KANBUN}', "");
-    Expect(1, 12703, '\P{^-Is_KANBUN}', "");
-    Expect(0, 12704, '\p{-Is_KANBUN}', "");
-    Expect(1, 12704, '\p{^-Is_KANBUN}', "");
-    Expect(1, 12704, '\P{-Is_KANBUN}', "");
-    Expect(0, 12704, '\P{^-Is_KANBUN}', "");
-    Error('\p{_/a/in_KANBUN}');
-    Error('\P{_/a/in_KANBUN}');
+    Expect(1, 12703, '\p{__Is_Kanbun}', "");
+    Expect(0, 12703, '\p{^__Is_Kanbun}', "");
+    Expect(0, 12703, '\P{__Is_Kanbun}', "");
+    Expect(1, 12703, '\P{^__Is_Kanbun}', "");
+    Expect(0, 12704, '\p{__Is_Kanbun}', "");
+    Expect(1, 12704, '\p{^__Is_Kanbun}', "");
+    Expect(1, 12704, '\P{__Is_Kanbun}', "");
+    Expect(0, 12704, '\P{^__Is_Kanbun}', "");
+    Error('\p{-/a/In_KANBUN}');
+    Error('\P{-/a/In_KANBUN}');
     Expect(1, 12703, '\p{inkanbun}', "");
     Expect(0, 12703, '\p{^inkanbun}', "");
     Expect(0, 12703, '\P{inkanbun}', "");
@@ -107189,16 +108305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12704, '\p{^inkanbun}', "");
     Expect(1, 12704, '\P{inkanbun}', "");
     Expect(0, 12704, '\P{^inkanbun}', "");
-    Expect(1, 12703, '\p{	In_KANBUN}', "");
-    Expect(0, 12703, '\p{^	In_KANBUN}', "");
-    Expect(0, 12703, '\P{	In_KANBUN}', "");
-    Expect(1, 12703, '\P{^	In_KANBUN}', "");
-    Expect(0, 12704, '\p{	In_KANBUN}', "");
-    Expect(1, 12704, '\p{^	In_KANBUN}', "");
-    Expect(1, 12704, '\P{	In_KANBUN}', "");
-    Expect(0, 12704, '\P{^	In_KANBUN}', "");
-    Error('\p{/a/_KANGXI_RADICALS}');
-    Error('\P{/a/_KANGXI_RADICALS}');
+    Expect(1, 12703, '\p{	IN_kanbun}', "");
+    Expect(0, 12703, '\p{^	IN_kanbun}', "");
+    Expect(0, 12703, '\P{	IN_kanbun}', "");
+    Expect(1, 12703, '\P{^	IN_kanbun}', "");
+    Expect(0, 12704, '\p{	IN_kanbun}', "");
+    Expect(1, 12704, '\p{^	IN_kanbun}', "");
+    Expect(1, 12704, '\P{	IN_kanbun}', "");
+    Expect(0, 12704, '\P{^	IN_kanbun}', "");
+    Error('\p{:=_kangxi_RADICALS}');
+    Error('\P{:=_kangxi_RADICALS}');
     Expect(1, 12255, '\p{kangxiradicals}', "");
     Expect(0, 12255, '\p{^kangxiradicals}', "");
     Expect(0, 12255, '\P{kangxiradicals}', "");
@@ -107207,16 +108323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12256, '\p{^kangxiradicals}', "");
     Expect(1, 12256, '\P{kangxiradicals}', "");
     Expect(0, 12256, '\P{^kangxiradicals}', "");
-    Expect(1, 12255, '\p{-	Kangxi_Radicals}', "");
-    Expect(0, 12255, '\p{^-	Kangxi_Radicals}', "");
-    Expect(0, 12255, '\P{-	Kangxi_Radicals}', "");
-    Expect(1, 12255, '\P{^-	Kangxi_Radicals}', "");
-    Expect(0, 12256, '\p{-	Kangxi_Radicals}', "");
-    Expect(1, 12256, '\p{^-	Kangxi_Radicals}', "");
-    Expect(1, 12256, '\P{-	Kangxi_Radicals}', "");
-    Expect(0, 12256, '\P{^-	Kangxi_Radicals}', "");
-    Error('\p{:= Is_kangxi_radicals}');
-    Error('\P{:= Is_kangxi_radicals}');
+    Expect(1, 12255, '\p{Kangxi_radicals}', "");
+    Expect(0, 12255, '\p{^Kangxi_radicals}', "");
+    Expect(0, 12255, '\P{Kangxi_radicals}', "");
+    Expect(1, 12255, '\P{^Kangxi_radicals}', "");
+    Expect(0, 12256, '\p{Kangxi_radicals}', "");
+    Expect(1, 12256, '\p{^Kangxi_radicals}', "");
+    Expect(1, 12256, '\P{Kangxi_radicals}', "");
+    Expect(0, 12256, '\P{^Kangxi_radicals}', "");
+    Error('\p{/a/Is_Kangxi_Radicals}');
+    Error('\P{/a/Is_Kangxi_Radicals}');
     Expect(1, 12255, '\p{iskangxiradicals}', "");
     Expect(0, 12255, '\p{^iskangxiradicals}', "");
     Expect(0, 12255, '\P{iskangxiradicals}', "");
@@ -107225,16 +108341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12256, '\p{^iskangxiradicals}', "");
     Expect(1, 12256, '\P{iskangxiradicals}', "");
     Expect(0, 12256, '\P{^iskangxiradicals}', "");
-    Expect(1, 12255, '\p{-is_Kangxi_RADICALS}', "");
-    Expect(0, 12255, '\p{^-is_Kangxi_RADICALS}', "");
-    Expect(0, 12255, '\P{-is_Kangxi_RADICALS}', "");
-    Expect(1, 12255, '\P{^-is_Kangxi_RADICALS}', "");
-    Expect(0, 12256, '\p{-is_Kangxi_RADICALS}', "");
-    Expect(1, 12256, '\p{^-is_Kangxi_RADICALS}', "");
-    Expect(1, 12256, '\P{-is_Kangxi_RADICALS}', "");
-    Expect(0, 12256, '\P{^-is_Kangxi_RADICALS}', "");
-    Error('\p{/a/IN_kangxi_radicals}');
-    Error('\P{/a/IN_kangxi_radicals}');
+    Expect(1, 12255, '\p{_is_Kangxi_Radicals}', "");
+    Expect(0, 12255, '\p{^_is_Kangxi_Radicals}', "");
+    Expect(0, 12255, '\P{_is_Kangxi_Radicals}', "");
+    Expect(1, 12255, '\P{^_is_Kangxi_Radicals}', "");
+    Expect(0, 12256, '\p{_is_Kangxi_Radicals}', "");
+    Expect(1, 12256, '\p{^_is_Kangxi_Radicals}', "");
+    Expect(1, 12256, '\P{_is_Kangxi_Radicals}', "");
+    Expect(0, 12256, '\P{^_is_Kangxi_Radicals}', "");
+    Error('\p{:=-_In_Kangxi_Radicals}');
+    Error('\P{:=-_In_Kangxi_Radicals}');
     Expect(1, 12255, '\p{inkangxiradicals}', "");
     Expect(0, 12255, '\p{^inkangxiradicals}', "");
     Expect(0, 12255, '\P{inkangxiradicals}', "");
@@ -107243,16 +108359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12256, '\p{^inkangxiradicals}', "");
     Expect(1, 12256, '\P{inkangxiradicals}', "");
     Expect(0, 12256, '\P{^inkangxiradicals}', "");
-    Expect(1, 12255, '\p{__In_Kangxi_radicals}', "");
-    Expect(0, 12255, '\p{^__In_Kangxi_radicals}', "");
-    Expect(0, 12255, '\P{__In_Kangxi_radicals}', "");
-    Expect(1, 12255, '\P{^__In_Kangxi_radicals}', "");
-    Expect(0, 12256, '\p{__In_Kangxi_radicals}', "");
-    Expect(1, 12256, '\p{^__In_Kangxi_radicals}', "");
-    Expect(1, 12256, '\P{__In_Kangxi_radicals}', "");
-    Expect(0, 12256, '\P{^__In_Kangxi_radicals}', "");
-    Error('\p{:=_Kangxi}');
-    Error('\P{:=_Kangxi}');
+    Expect(1, 12255, '\p{_ In_KANGXI_Radicals}', "");
+    Expect(0, 12255, '\p{^_ In_KANGXI_Radicals}', "");
+    Expect(0, 12255, '\P{_ In_KANGXI_Radicals}', "");
+    Expect(1, 12255, '\P{^_ In_KANGXI_Radicals}', "");
+    Expect(0, 12256, '\p{_ In_KANGXI_Radicals}', "");
+    Expect(1, 12256, '\p{^_ In_KANGXI_Radicals}', "");
+    Expect(1, 12256, '\P{_ In_KANGXI_Radicals}', "");
+    Expect(0, 12256, '\P{^_ In_KANGXI_Radicals}', "");
+    Error('\p{:=_-Kangxi}');
+    Error('\P{:=_-Kangxi}');
     Expect(1, 12255, '\p{kangxi}', "");
     Expect(0, 12255, '\p{^kangxi}', "");
     Expect(0, 12255, '\P{kangxi}', "");
@@ -107261,16 +108377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12256, '\p{^kangxi}', "");
     Expect(1, 12256, '\P{kangxi}', "");
     Expect(0, 12256, '\P{^kangxi}', "");
-    Expect(1, 12255, '\p{-	Kangxi}', "");
-    Expect(0, 12255, '\p{^-	Kangxi}', "");
-    Expect(0, 12255, '\P{-	Kangxi}', "");
-    Expect(1, 12255, '\P{^-	Kangxi}', "");
-    Expect(0, 12256, '\p{-	Kangxi}', "");
-    Expect(1, 12256, '\p{^-	Kangxi}', "");
-    Expect(1, 12256, '\P{-	Kangxi}', "");
-    Expect(0, 12256, '\P{^-	Kangxi}', "");
-    Error('\p{/a/ 	Is_kangxi}');
-    Error('\P{/a/ 	Is_kangxi}');
+    Expect(1, 12255, '\p{-Kangxi}', "");
+    Expect(0, 12255, '\p{^-Kangxi}', "");
+    Expect(0, 12255, '\P{-Kangxi}', "");
+    Expect(1, 12255, '\P{^-Kangxi}', "");
+    Expect(0, 12256, '\p{-Kangxi}', "");
+    Expect(1, 12256, '\p{^-Kangxi}', "");
+    Expect(1, 12256, '\P{-Kangxi}', "");
+    Expect(0, 12256, '\P{^-Kangxi}', "");
+    Error('\p{:=-_Is_KANGXI}');
+    Error('\P{:=-_Is_KANGXI}');
     Expect(1, 12255, '\p{iskangxi}', "");
     Expect(0, 12255, '\p{^iskangxi}', "");
     Expect(0, 12255, '\P{iskangxi}', "");
@@ -107287,8 +108403,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12256, '\p{^_Is_Kangxi}', "");
     Expect(1, 12256, '\P{_Is_Kangxi}', "");
     Expect(0, 12256, '\P{^_Is_Kangxi}', "");
-    Error('\p{/a/	-In_KANGXI}');
-    Error('\P{/a/	-In_KANGXI}');
+    Error('\p{-/a/In_kangxi}');
+    Error('\P{-/a/In_kangxi}');
     Expect(1, 12255, '\p{inkangxi}', "");
     Expect(0, 12255, '\p{^inkangxi}', "");
     Expect(0, 12255, '\P{inkangxi}', "");
@@ -107297,16 +108413,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12256, '\p{^inkangxi}', "");
     Expect(1, 12256, '\P{inkangxi}', "");
     Expect(0, 12256, '\P{^inkangxi}', "");
-    Expect(1, 12255, '\p{		IN_Kangxi}', "");
-    Expect(0, 12255, '\p{^		IN_Kangxi}', "");
-    Expect(0, 12255, '\P{		IN_Kangxi}', "");
-    Expect(1, 12255, '\P{^		IN_Kangxi}', "");
-    Expect(0, 12256, '\p{		IN_Kangxi}', "");
-    Expect(1, 12256, '\p{^		IN_Kangxi}', "");
-    Expect(1, 12256, '\P{		IN_Kangxi}', "");
-    Expect(0, 12256, '\P{^		IN_Kangxi}', "");
-    Error('\p{	:=kannada}');
-    Error('\P{	:=kannada}');
+    Expect(1, 12255, '\p{- IN_Kangxi}', "");
+    Expect(0, 12255, '\p{^- IN_Kangxi}', "");
+    Expect(0, 12255, '\P{- IN_Kangxi}', "");
+    Expect(1, 12255, '\P{^- IN_Kangxi}', "");
+    Expect(0, 12256, '\p{- IN_Kangxi}', "");
+    Expect(1, 12256, '\p{^- IN_Kangxi}', "");
+    Expect(1, 12256, '\P{- IN_Kangxi}', "");
+    Expect(0, 12256, '\P{^- IN_Kangxi}', "");
+    Error('\p{/a/Kannada}');
+    Error('\P{/a/Kannada}');
     Expect(1, 43061, '\p{kannada}', "");
     Expect(0, 43061, '\p{^kannada}', "");
     Expect(0, 43061, '\P{kannada}', "");
@@ -107315,16 +108431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43062, '\p{^kannada}', "");
     Expect(1, 43062, '\P{kannada}', "");
     Expect(0, 43062, '\P{^kannada}', "");
-    Expect(1, 43061, '\p{	Kannada}', "");
-    Expect(0, 43061, '\p{^	Kannada}', "");
-    Expect(0, 43061, '\P{	Kannada}', "");
-    Expect(1, 43061, '\P{^	Kannada}', "");
-    Expect(0, 43062, '\p{	Kannada}', "");
-    Expect(1, 43062, '\p{^	Kannada}', "");
-    Expect(1, 43062, '\P{	Kannada}', "");
-    Expect(0, 43062, '\P{^	Kannada}', "");
-    Error('\p{:=	_Is_Kannada}');
-    Error('\P{:=	_Is_Kannada}');
+    Expect(1, 43061, '\p{  Kannada}', "");
+    Expect(0, 43061, '\p{^  Kannada}', "");
+    Expect(0, 43061, '\P{  Kannada}', "");
+    Expect(1, 43061, '\P{^  Kannada}', "");
+    Expect(0, 43062, '\p{  Kannada}', "");
+    Expect(1, 43062, '\p{^  Kannada}', "");
+    Expect(1, 43062, '\P{  Kannada}', "");
+    Expect(0, 43062, '\P{^  Kannada}', "");
+    Error('\p{ -Is_Kannada/a/}');
+    Error('\P{ -Is_Kannada/a/}');
     Expect(1, 43061, '\p{iskannada}', "");
     Expect(0, 43061, '\p{^iskannada}', "");
     Expect(0, 43061, '\P{iskannada}', "");
@@ -107333,16 +108449,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43062, '\p{^iskannada}', "");
     Expect(1, 43062, '\P{iskannada}', "");
     Expect(0, 43062, '\P{^iskannada}', "");
-    Expect(1, 43061, '\p{-_Is_kannada}', "");
-    Expect(0, 43061, '\p{^-_Is_kannada}', "");
-    Expect(0, 43061, '\P{-_Is_kannada}', "");
-    Expect(1, 43061, '\P{^-_Is_kannada}', "");
-    Expect(0, 43062, '\p{-_Is_kannada}', "");
-    Expect(1, 43062, '\p{^-_Is_kannada}', "");
-    Expect(1, 43062, '\P{-_Is_kannada}', "");
-    Expect(0, 43062, '\P{^-_Is_kannada}', "");
-    Error('\p{:=--Knda}');
-    Error('\P{:=--Knda}');
+    Expect(1, 43061, '\p{- Is_Kannada}', "");
+    Expect(0, 43061, '\p{^- Is_Kannada}', "");
+    Expect(0, 43061, '\P{- Is_Kannada}', "");
+    Expect(1, 43061, '\P{^- Is_Kannada}', "");
+    Expect(0, 43062, '\p{- Is_Kannada}', "");
+    Expect(1, 43062, '\p{^- Is_Kannada}', "");
+    Expect(1, 43062, '\P{- Is_Kannada}', "");
+    Expect(0, 43062, '\P{^- Is_Kannada}', "");
+    Error('\p{/a/__Knda}');
+    Error('\P{/a/__Knda}');
     Expect(1, 43061, '\p{knda}', "");
     Expect(0, 43061, '\p{^knda}', "");
     Expect(0, 43061, '\P{knda}', "");
@@ -107351,16 +108467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43062, '\p{^knda}', "");
     Expect(1, 43062, '\P{knda}', "");
     Expect(0, 43062, '\P{^knda}', "");
-    Expect(1, 43061, '\p{  knda}', "");
-    Expect(0, 43061, '\p{^  knda}', "");
-    Expect(0, 43061, '\P{  knda}', "");
-    Expect(1, 43061, '\P{^  knda}', "");
-    Expect(0, 43062, '\p{  knda}', "");
-    Expect(1, 43062, '\p{^  knda}', "");
-    Expect(1, 43062, '\P{  knda}', "");
-    Expect(0, 43062, '\P{^  knda}', "");
-    Error('\p{/a/	_is_knda}');
-    Error('\P{/a/	_is_knda}');
+    Expect(1, 43061, '\p{	KNDA}', "");
+    Expect(0, 43061, '\p{^	KNDA}', "");
+    Expect(0, 43061, '\P{	KNDA}', "");
+    Expect(1, 43061, '\P{^	KNDA}', "");
+    Expect(0, 43062, '\p{	KNDA}', "");
+    Expect(1, 43062, '\p{^	KNDA}', "");
+    Expect(1, 43062, '\P{	KNDA}', "");
+    Expect(0, 43062, '\P{^	KNDA}', "");
+    Error('\p{ Is_knda/a/}');
+    Error('\P{ Is_knda/a/}');
     Expect(1, 43061, '\p{isknda}', "");
     Expect(0, 43061, '\p{^isknda}', "");
     Expect(0, 43061, '\P{isknda}', "");
@@ -107369,16 +108485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43062, '\p{^isknda}', "");
     Expect(1, 43062, '\P{isknda}', "");
     Expect(0, 43062, '\P{^isknda}', "");
-    Expect(1, 43061, '\p{ Is_knda}', "");
-    Expect(0, 43061, '\p{^ Is_knda}', "");
-    Expect(0, 43061, '\P{ Is_knda}', "");
-    Expect(1, 43061, '\P{^ Is_knda}', "");
-    Expect(0, 43062, '\p{ Is_knda}', "");
-    Expect(1, 43062, '\p{^ Is_knda}', "");
-    Expect(1, 43062, '\P{ Is_knda}', "");
-    Expect(0, 43062, '\P{^ Is_knda}', "");
-    Error('\p{ 	katakana/a/}');
-    Error('\P{ 	katakana/a/}');
+    Expect(1, 43061, '\p{_ Is_Knda}', "");
+    Expect(0, 43061, '\p{^_ Is_Knda}', "");
+    Expect(0, 43061, '\P{_ Is_Knda}', "");
+    Expect(1, 43061, '\P{^_ Is_Knda}', "");
+    Expect(0, 43062, '\p{_ Is_Knda}', "");
+    Expect(1, 43062, '\p{^_ Is_Knda}', "");
+    Expect(1, 43062, '\P{_ Is_Knda}', "");
+    Expect(0, 43062, '\P{^_ Is_Knda}', "");
+    Error('\p{/a/	 katakana}');
+    Error('\P{/a/	 katakana}');
     Expect(1, 110951, '\p{katakana}', "");
     Expect(0, 110951, '\p{^katakana}', "");
     Expect(0, 110951, '\P{katakana}', "");
@@ -107387,16 +108503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110952, '\p{^katakana}', "");
     Expect(1, 110952, '\P{katakana}', "");
     Expect(0, 110952, '\P{^katakana}', "");
-    Expect(1, 110951, '\p{- Katakana}', "");
-    Expect(0, 110951, '\p{^- Katakana}', "");
-    Expect(0, 110951, '\P{- Katakana}', "");
-    Expect(1, 110951, '\P{^- Katakana}', "");
-    Expect(0, 110952, '\p{- Katakana}', "");
-    Expect(1, 110952, '\p{^- Katakana}', "");
-    Expect(1, 110952, '\P{- Katakana}', "");
-    Expect(0, 110952, '\P{^- Katakana}', "");
-    Error('\p{:=is_KATAKANA}');
-    Error('\P{:=is_KATAKANA}');
+    Expect(1, 110951, '\p{-katakana}', "");
+    Expect(0, 110951, '\p{^-katakana}', "");
+    Expect(0, 110951, '\P{-katakana}', "");
+    Expect(1, 110951, '\P{^-katakana}', "");
+    Expect(0, 110952, '\p{-katakana}', "");
+    Expect(1, 110952, '\p{^-katakana}', "");
+    Expect(1, 110952, '\P{-katakana}', "");
+    Expect(0, 110952, '\P{^-katakana}', "");
+    Error('\p{ :=IS_Katakana}');
+    Error('\P{ :=IS_Katakana}');
     Expect(1, 110951, '\p{iskatakana}', "");
     Expect(0, 110951, '\p{^iskatakana}', "");
     Expect(0, 110951, '\P{iskatakana}', "");
@@ -107405,16 +108521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110952, '\p{^iskatakana}', "");
     Expect(1, 110952, '\P{iskatakana}', "");
     Expect(0, 110952, '\P{^iskatakana}', "");
-    Expect(1, 110951, '\p{ _Is_KATAKANA}', "");
-    Expect(0, 110951, '\p{^ _Is_KATAKANA}', "");
-    Expect(0, 110951, '\P{ _Is_KATAKANA}', "");
-    Expect(1, 110951, '\P{^ _Is_KATAKANA}', "");
-    Expect(0, 110952, '\p{ _Is_KATAKANA}', "");
-    Expect(1, 110952, '\p{^ _Is_KATAKANA}', "");
-    Expect(1, 110952, '\P{ _Is_KATAKANA}', "");
-    Expect(0, 110952, '\P{^ _Is_KATAKANA}', "");
-    Error('\p{:= _KANA}');
-    Error('\P{:= _KANA}');
+    Expect(1, 110951, '\p{ 	Is_Katakana}', "");
+    Expect(0, 110951, '\p{^ 	Is_Katakana}', "");
+    Expect(0, 110951, '\P{ 	Is_Katakana}', "");
+    Expect(1, 110951, '\P{^ 	Is_Katakana}', "");
+    Expect(0, 110952, '\p{ 	Is_Katakana}', "");
+    Expect(1, 110952, '\p{^ 	Is_Katakana}', "");
+    Expect(1, 110952, '\P{ 	Is_Katakana}', "");
+    Expect(0, 110952, '\P{^ 	Is_Katakana}', "");
+    Error('\p{:=- Kana}');
+    Error('\P{:=- Kana}');
     Expect(1, 110951, '\p{kana}', "");
     Expect(0, 110951, '\p{^kana}', "");
     Expect(0, 110951, '\P{kana}', "");
@@ -107423,16 +108539,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110952, '\p{^kana}', "");
     Expect(1, 110952, '\P{kana}', "");
     Expect(0, 110952, '\P{^kana}', "");
-    Expect(1, 110951, '\p{_-kana}', "");
-    Expect(0, 110951, '\p{^_-kana}', "");
-    Expect(0, 110951, '\P{_-kana}', "");
-    Expect(1, 110951, '\P{^_-kana}', "");
-    Expect(0, 110952, '\p{_-kana}', "");
-    Expect(1, 110952, '\p{^_-kana}', "");
-    Expect(1, 110952, '\P{_-kana}', "");
-    Expect(0, 110952, '\P{^_-kana}', "");
-    Error('\p{	 is_Kana/a/}');
-    Error('\P{	 is_Kana/a/}');
+    Error('\p{:=--is_Kana}');
+    Error('\P{:=--is_Kana}');
     Expect(1, 110951, '\p{iskana}', "");
     Expect(0, 110951, '\p{^iskana}', "");
     Expect(0, 110951, '\P{iskana}', "");
@@ -107441,20 +108549,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 110952, '\p{^iskana}', "");
     Expect(1, 110952, '\P{iskana}', "");
     Expect(0, 110952, '\P{^iskana}', "");
-    Expect(1, 110951, '\p{	Is_kana}', "");
-    Expect(0, 110951, '\p{^	Is_kana}', "");
-    Expect(0, 110951, '\P{	Is_kana}', "");
-    Expect(1, 110951, '\P{^	Is_kana}', "");
-    Expect(0, 110952, '\p{	Is_kana}', "");
-    Expect(1, 110952, '\p{^	Is_kana}', "");
-    Expect(1, 110952, '\P{	Is_kana}', "");
-    Expect(0, 110952, '\P{^	Is_kana}', "");
+    Expect(1, 110951, '\p{  Is_kana}', "");
+    Expect(0, 110951, '\p{^  Is_kana}', "");
+    Expect(0, 110951, '\P{  Is_kana}', "");
+    Expect(1, 110951, '\P{^  Is_kana}', "");
+    Expect(0, 110952, '\p{  Is_kana}', "");
+    Expect(1, 110952, '\p{^  Is_kana}', "");
+    Expect(1, 110952, '\P{  Is_kana}', "");
+    Expect(0, 110952, '\P{^  Is_kana}', "");
     Error('\p{Katakana_Or_Hiragana}');
     Error('\P{Katakana_Or_Hiragana}');
     Error('\p{Hrkt}');
     Error('\P{Hrkt}');
-    Error('\p{:=	_KATAKANA_Phonetic_extensions}');
-    Error('\P{:=	_KATAKANA_Phonetic_extensions}');
+    Error('\p{	/a/Katakana_Phonetic_Extensions}');
+    Error('\P{	/a/Katakana_Phonetic_Extensions}');
     Expect(1, 12799, '\p{katakanaphoneticextensions}', "");
     Expect(0, 12799, '\p{^katakanaphoneticextensions}', "");
     Expect(0, 12799, '\P{katakanaphoneticextensions}', "");
@@ -107463,16 +108571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12800, '\p{^katakanaphoneticextensions}', "");
     Expect(1, 12800, '\P{katakanaphoneticextensions}', "");
     Expect(0, 12800, '\P{^katakanaphoneticextensions}', "");
-    Expect(1, 12799, '\p{-KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12799, '\p{^-KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12799, '\P{-KATAKANA_Phonetic_Extensions}', "");
-    Expect(1, 12799, '\P{^-KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12800, '\p{-KATAKANA_Phonetic_Extensions}', "");
-    Expect(1, 12800, '\p{^-KATAKANA_Phonetic_Extensions}', "");
-    Expect(1, 12800, '\P{-KATAKANA_Phonetic_Extensions}', "");
-    Expect(0, 12800, '\P{^-KATAKANA_Phonetic_Extensions}', "");
-    Error('\p{:=_is_KATAKANA_Phonetic_extensions}');
-    Error('\P{:=_is_KATAKANA_Phonetic_extensions}');
+    Expect(1, 12799, '\p{__KATAKANA_PHONETIC_extensions}', "");
+    Expect(0, 12799, '\p{^__KATAKANA_PHONETIC_extensions}', "");
+    Expect(0, 12799, '\P{__KATAKANA_PHONETIC_extensions}', "");
+    Expect(1, 12799, '\P{^__KATAKANA_PHONETIC_extensions}', "");
+    Expect(0, 12800, '\p{__KATAKANA_PHONETIC_extensions}', "");
+    Expect(1, 12800, '\p{^__KATAKANA_PHONETIC_extensions}', "");
+    Expect(1, 12800, '\P{__KATAKANA_PHONETIC_extensions}', "");
+    Expect(0, 12800, '\P{^__KATAKANA_PHONETIC_extensions}', "");
+    Error('\p{_:=is_Katakana_PHONETIC_EXTENSIONS}');
+    Error('\P{_:=is_Katakana_PHONETIC_EXTENSIONS}');
     Expect(1, 12799, '\p{iskatakanaphoneticextensions}', "");
     Expect(0, 12799, '\p{^iskatakanaphoneticextensions}', "");
     Expect(0, 12799, '\P{iskatakanaphoneticextensions}', "");
@@ -107481,16 +108589,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12800, '\p{^iskatakanaphoneticextensions}', "");
     Expect(1, 12800, '\P{iskatakanaphoneticextensions}', "");
     Expect(0, 12800, '\P{^iskatakanaphoneticextensions}', "");
-    Expect(1, 12799, '\p{_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12799, '\p{^_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12799, '\P{_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(1, 12799, '\P{^_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12800, '\p{_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(1, 12800, '\p{^_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(1, 12800, '\P{_ is_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12800, '\P{^_ is_KATAKANA_phonetic_Extensions}', "");
-    Error('\p{_-in_KATAKANA_Phonetic_extensions/a/}');
-    Error('\P{_-in_KATAKANA_Phonetic_extensions/a/}');
+    Expect(1, 12799, '\p{  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12799, '\p{^  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12799, '\P{  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(1, 12799, '\P{^  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12800, '\p{  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(1, 12800, '\p{^  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(1, 12800, '\P{  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12800, '\P{^  IS_katakana_Phonetic_EXTENSIONS}', "");
+    Error('\p{-/a/IN_Katakana_Phonetic_Extensions}');
+    Error('\P{-/a/IN_Katakana_Phonetic_Extensions}');
     Expect(1, 12799, '\p{inkatakanaphoneticextensions}', "");
     Expect(0, 12799, '\p{^inkatakanaphoneticextensions}', "");
     Expect(0, 12799, '\P{inkatakanaphoneticextensions}', "");
@@ -107499,16 +108607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12800, '\p{^inkatakanaphoneticextensions}', "");
     Expect(1, 12800, '\P{inkatakanaphoneticextensions}', "");
     Expect(0, 12800, '\P{^inkatakanaphoneticextensions}', "");
-    Expect(1, 12799, '\p{-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12799, '\p{^-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12799, '\P{-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(1, 12799, '\P{^-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12800, '\p{-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(1, 12800, '\p{^-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(1, 12800, '\P{-_In_KATAKANA_phonetic_Extensions}', "");
-    Expect(0, 12800, '\P{^-_In_KATAKANA_phonetic_Extensions}', "");
-    Error('\p{:=Katakana_EXT}');
-    Error('\P{:=Katakana_EXT}');
+    Expect(1, 12799, '\p{ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12799, '\p{^ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12799, '\P{ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(1, 12799, '\P{^ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12800, '\p{ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(1, 12800, '\p{^ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(1, 12800, '\P{ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Expect(0, 12800, '\P{^ in_KATAKANA_Phonetic_EXTENSIONS}', "");
+    Error('\p{_/a/Katakana_Ext}');
+    Error('\P{_/a/Katakana_Ext}');
     Expect(1, 12799, '\p{katakanaext}', "");
     Expect(0, 12799, '\p{^katakanaext}', "");
     Expect(0, 12799, '\P{katakanaext}', "");
@@ -107517,16 +108625,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12800, '\p{^katakanaext}', "");
     Expect(1, 12800, '\P{katakanaext}', "");
     Expect(0, 12800, '\P{^katakanaext}', "");
-    Expect(1, 12799, '\p{-	katakana_Ext}', "");
-    Expect(0, 12799, '\p{^-	katakana_Ext}', "");
-    Expect(0, 12799, '\P{-	katakana_Ext}', "");
-    Expect(1, 12799, '\P{^-	katakana_Ext}', "");
-    Expect(0, 12800, '\p{-	katakana_Ext}', "");
-    Expect(1, 12800, '\p{^-	katakana_Ext}', "");
-    Expect(1, 12800, '\P{-	katakana_Ext}', "");
-    Expect(0, 12800, '\P{^-	katakana_Ext}', "");
-    Error('\p{-:=is_Katakana_ext}');
-    Error('\P{-:=is_Katakana_ext}');
+    Expect(1, 12799, '\p{_	KATAKANA_Ext}', "");
+    Expect(0, 12799, '\p{^_	KATAKANA_Ext}', "");
+    Expect(0, 12799, '\P{_	KATAKANA_Ext}', "");
+    Expect(1, 12799, '\P{^_	KATAKANA_Ext}', "");
+    Expect(0, 12800, '\p{_	KATAKANA_Ext}', "");
+    Expect(1, 12800, '\p{^_	KATAKANA_Ext}', "");
+    Expect(1, 12800, '\P{_	KATAKANA_Ext}', "");
+    Expect(0, 12800, '\P{^_	KATAKANA_Ext}', "");
+    Error('\p{	Is_KATAKANA_ext/a/}');
+    Error('\P{	Is_KATAKANA_ext/a/}');
     Expect(1, 12799, '\p{iskatakanaext}', "");
     Expect(0, 12799, '\p{^iskatakanaext}', "");
     Expect(0, 12799, '\P{iskatakanaext}', "");
@@ -107535,16 +108643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12800, '\p{^iskatakanaext}', "");
     Expect(1, 12800, '\P{iskatakanaext}', "");
     Expect(0, 12800, '\P{^iskatakanaext}', "");
-    Expect(1, 12799, '\p{_-Is_Katakana_Ext}', "");
-    Expect(0, 12799, '\p{^_-Is_Katakana_Ext}', "");
-    Expect(0, 12799, '\P{_-Is_Katakana_Ext}', "");
-    Expect(1, 12799, '\P{^_-Is_Katakana_Ext}', "");
-    Expect(0, 12800, '\p{_-Is_Katakana_Ext}', "");
-    Expect(1, 12800, '\p{^_-Is_Katakana_Ext}', "");
-    Expect(1, 12800, '\P{_-Is_Katakana_Ext}', "");
-    Expect(0, 12800, '\P{^_-Is_Katakana_Ext}', "");
-    Error('\p{-/a/IN_KATAKANA_EXT}');
-    Error('\P{-/a/IN_KATAKANA_EXT}');
+    Expect(1, 12799, '\p{	is_katakana_EXT}', "");
+    Expect(0, 12799, '\p{^	is_katakana_EXT}', "");
+    Expect(0, 12799, '\P{	is_katakana_EXT}', "");
+    Expect(1, 12799, '\P{^	is_katakana_EXT}', "");
+    Expect(0, 12800, '\p{	is_katakana_EXT}', "");
+    Expect(1, 12800, '\p{^	is_katakana_EXT}', "");
+    Expect(1, 12800, '\P{	is_katakana_EXT}', "");
+    Expect(0, 12800, '\P{^	is_katakana_EXT}', "");
+    Error('\p{:=--IN_katakana_Ext}');
+    Error('\P{:=--IN_katakana_Ext}');
     Expect(1, 12799, '\p{inkatakanaext}', "");
     Expect(0, 12799, '\p{^inkatakanaext}', "");
     Expect(0, 12799, '\P{inkatakanaext}', "");
@@ -107553,16 +108661,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12800, '\p{^inkatakanaext}', "");
     Expect(1, 12800, '\P{inkatakanaext}', "");
     Expect(0, 12800, '\P{^inkatakanaext}', "");
-    Expect(1, 12799, '\p{ IN_Katakana_Ext}', "");
-    Expect(0, 12799, '\p{^ IN_Katakana_Ext}', "");
-    Expect(0, 12799, '\P{ IN_Katakana_Ext}', "");
-    Expect(1, 12799, '\P{^ IN_Katakana_Ext}', "");
-    Expect(0, 12800, '\p{ IN_Katakana_Ext}', "");
-    Expect(1, 12800, '\p{^ IN_Katakana_Ext}', "");
-    Expect(1, 12800, '\P{ IN_Katakana_Ext}', "");
-    Expect(0, 12800, '\P{^ IN_Katakana_Ext}', "");
-    Error('\p{_ Kayah_Li/a/}');
-    Error('\P{_ Kayah_Li/a/}');
+    Expect(1, 12799, '\p{--In_Katakana_EXT}', "");
+    Expect(0, 12799, '\p{^--In_Katakana_EXT}', "");
+    Expect(0, 12799, '\P{--In_Katakana_EXT}', "");
+    Expect(1, 12799, '\P{^--In_Katakana_EXT}', "");
+    Expect(0, 12800, '\p{--In_Katakana_EXT}', "");
+    Expect(1, 12800, '\p{^--In_Katakana_EXT}', "");
+    Expect(1, 12800, '\P{--In_Katakana_EXT}', "");
+    Expect(0, 12800, '\P{^--In_Katakana_EXT}', "");
+    Error('\p{/a/-kawi}');
+    Error('\P{/a/-kawi}');
+    Expect(1, 73561, '\p{kawi}', "");
+    Expect(0, 73561, '\p{^kawi}', "");
+    Expect(0, 73561, '\P{kawi}', "");
+    Expect(1, 73561, '\P{^kawi}', "");
+    Expect(0, 73562, '\p{kawi}', "");
+    Expect(1, 73562, '\p{^kawi}', "");
+    Expect(1, 73562, '\P{kawi}', "");
+    Expect(0, 73562, '\P{^kawi}', "");
+    Expect(1, 73561, '\p{	-KAWI}', "");
+    Expect(0, 73561, '\p{^	-KAWI}', "");
+    Expect(0, 73561, '\P{	-KAWI}', "");
+    Expect(1, 73561, '\P{^	-KAWI}', "");
+    Expect(0, 73562, '\p{	-KAWI}', "");
+    Expect(1, 73562, '\p{^	-KAWI}', "");
+    Expect(1, 73562, '\P{	-KAWI}', "");
+    Expect(0, 73562, '\P{^	-KAWI}', "");
+    Error('\p{_Is_Kawi/a/}');
+    Error('\P{_Is_Kawi/a/}');
+    Expect(1, 73561, '\p{iskawi}', "");
+    Expect(0, 73561, '\p{^iskawi}', "");
+    Expect(0, 73561, '\P{iskawi}', "");
+    Expect(1, 73561, '\P{^iskawi}', "");
+    Expect(0, 73562, '\p{iskawi}', "");
+    Expect(1, 73562, '\p{^iskawi}', "");
+    Expect(1, 73562, '\P{iskawi}', "");
+    Expect(0, 73562, '\P{^iskawi}', "");
+    Expect(1, 73561, '\p{- is_KAWI}', "");
+    Expect(0, 73561, '\p{^- is_KAWI}', "");
+    Expect(0, 73561, '\P{- is_KAWI}', "");
+    Expect(1, 73561, '\P{^- is_KAWI}', "");
+    Expect(0, 73562, '\p{- is_KAWI}', "");
+    Expect(1, 73562, '\p{^- is_KAWI}', "");
+    Expect(1, 73562, '\P{- is_KAWI}', "");
+    Expect(0, 73562, '\P{^- is_KAWI}', "");
+    Error('\p{/a/	-Kayah_Li}');
+    Error('\P{/a/	-Kayah_Li}');
     Expect(1, 43311, '\p{kayahli}', "");
     Expect(0, 43311, '\p{^kayahli}', "");
     Expect(0, 43311, '\P{kayahli}', "");
@@ -107571,16 +108715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43312, '\p{^kayahli}', "");
     Expect(1, 43312, '\P{kayahli}', "");
     Expect(0, 43312, '\P{^kayahli}', "");
-    Expect(1, 43311, '\p{_kayah_li}', "");
-    Expect(0, 43311, '\p{^_kayah_li}', "");
-    Expect(0, 43311, '\P{_kayah_li}', "");
-    Expect(1, 43311, '\P{^_kayah_li}', "");
-    Expect(0, 43312, '\p{_kayah_li}', "");
-    Expect(1, 43312, '\p{^_kayah_li}', "");
-    Expect(1, 43312, '\P{_kayah_li}', "");
-    Expect(0, 43312, '\P{^_kayah_li}', "");
-    Error('\p{-	IS_KAYAH_Li/a/}');
-    Error('\P{-	IS_KAYAH_Li/a/}');
+    Expect(1, 43311, '\p{_Kayah_li}', "");
+    Expect(0, 43311, '\p{^_Kayah_li}', "");
+    Expect(0, 43311, '\P{_Kayah_li}', "");
+    Expect(1, 43311, '\P{^_Kayah_li}', "");
+    Expect(0, 43312, '\p{_Kayah_li}', "");
+    Expect(1, 43312, '\p{^_Kayah_li}', "");
+    Expect(1, 43312, '\P{_Kayah_li}', "");
+    Expect(0, 43312, '\P{^_Kayah_li}', "");
+    Error('\p{:=Is_Kayah_Li}');
+    Error('\P{:=Is_Kayah_Li}');
     Expect(1, 43311, '\p{iskayahli}', "");
     Expect(0, 43311, '\p{^iskayahli}', "");
     Expect(0, 43311, '\P{iskayahli}', "");
@@ -107589,16 +108733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43312, '\p{^iskayahli}', "");
     Expect(1, 43312, '\P{iskayahli}', "");
     Expect(0, 43312, '\P{^iskayahli}', "");
-    Expect(1, 43311, '\p{-IS_Kayah_Li}', "");
-    Expect(0, 43311, '\p{^-IS_Kayah_Li}', "");
-    Expect(0, 43311, '\P{-IS_Kayah_Li}', "");
-    Expect(1, 43311, '\P{^-IS_Kayah_Li}', "");
-    Expect(0, 43312, '\p{-IS_Kayah_Li}', "");
-    Expect(1, 43312, '\p{^-IS_Kayah_Li}', "");
-    Expect(1, 43312, '\P{-IS_Kayah_Li}', "");
-    Expect(0, 43312, '\P{^-IS_Kayah_Li}', "");
-    Error('\p{	 KALI:=}');
-    Error('\P{	 KALI:=}');
+    Expect(1, 43311, '\p{-	is_Kayah_Li}', "");
+    Expect(0, 43311, '\p{^-	is_Kayah_Li}', "");
+    Expect(0, 43311, '\P{-	is_Kayah_Li}', "");
+    Expect(1, 43311, '\P{^-	is_Kayah_Li}', "");
+    Expect(0, 43312, '\p{-	is_Kayah_Li}', "");
+    Expect(1, 43312, '\p{^-	is_Kayah_Li}', "");
+    Expect(1, 43312, '\P{-	is_Kayah_Li}', "");
+    Expect(0, 43312, '\P{^-	is_Kayah_Li}', "");
+    Error('\p{/a/	-KALI}');
+    Error('\P{/a/	-KALI}');
     Expect(1, 43311, '\p{kali}', "");
     Expect(0, 43311, '\p{^kali}', "");
     Expect(0, 43311, '\P{kali}', "");
@@ -107607,16 +108751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43312, '\p{^kali}', "");
     Expect(1, 43312, '\P{kali}', "");
     Expect(0, 43312, '\P{^kali}', "");
-    Expect(1, 43311, '\p{_Kali}', "");
-    Expect(0, 43311, '\p{^_Kali}', "");
-    Expect(0, 43311, '\P{_Kali}', "");
-    Expect(1, 43311, '\P{^_Kali}', "");
-    Expect(0, 43312, '\p{_Kali}', "");
-    Expect(1, 43312, '\p{^_Kali}', "");
-    Expect(1, 43312, '\P{_Kali}', "");
-    Expect(0, 43312, '\P{^_Kali}', "");
-    Error('\p{ /a/Is_kali}');
-    Error('\P{ /a/Is_kali}');
+    Expect(1, 43311, '\p{_	kali}', "");
+    Expect(0, 43311, '\p{^_	kali}', "");
+    Expect(0, 43311, '\P{_	kali}', "");
+    Expect(1, 43311, '\P{^_	kali}', "");
+    Expect(0, 43312, '\p{_	kali}', "");
+    Expect(1, 43312, '\p{^_	kali}', "");
+    Expect(1, 43312, '\P{_	kali}', "");
+    Expect(0, 43312, '\P{^_	kali}', "");
+    Error('\p{/a/_is_kali}');
+    Error('\P{/a/_is_kali}');
     Expect(1, 43311, '\p{iskali}', "");
     Expect(0, 43311, '\p{^iskali}', "");
     Expect(0, 43311, '\P{iskali}', "");
@@ -107625,16 +108769,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43312, '\p{^iskali}', "");
     Expect(1, 43312, '\P{iskali}', "");
     Expect(0, 43312, '\P{^iskali}', "");
-    Expect(1, 43311, '\p{_Is_kali}', "");
-    Expect(0, 43311, '\p{^_Is_kali}', "");
-    Expect(0, 43311, '\P{_Is_kali}', "");
-    Expect(1, 43311, '\P{^_Is_kali}', "");
-    Expect(0, 43312, '\p{_Is_kali}', "");
-    Expect(1, 43312, '\p{^_Is_kali}', "");
-    Expect(1, 43312, '\P{_Is_kali}', "");
-    Expect(0, 43312, '\P{^_Is_kali}', "");
-    Error('\p{/a/		KHAROSHTHI}');
-    Error('\P{/a/		KHAROSHTHI}');
+    Expect(1, 43311, '\p{is_Kali}', "");
+    Expect(0, 43311, '\p{^is_Kali}', "");
+    Expect(0, 43311, '\P{is_Kali}', "");
+    Expect(1, 43311, '\P{^is_Kali}', "");
+    Expect(0, 43312, '\p{is_Kali}', "");
+    Expect(1, 43312, '\p{^is_Kali}', "");
+    Expect(1, 43312, '\P{is_Kali}', "");
+    Expect(0, 43312, '\P{^is_Kali}', "");
+    Error('\p{-	KHAROSHTHI:=}');
+    Error('\P{-	KHAROSHTHI:=}');
     Expect(1, 68184, '\p{kharoshthi}', "");
     Expect(0, 68184, '\p{^kharoshthi}', "");
     Expect(0, 68184, '\P{kharoshthi}', "");
@@ -107643,16 +108787,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68185, '\p{^kharoshthi}', "");
     Expect(1, 68185, '\P{kharoshthi}', "");
     Expect(0, 68185, '\P{^kharoshthi}', "");
-    Expect(1, 68184, '\p{  Kharoshthi}', "");
-    Expect(0, 68184, '\p{^  Kharoshthi}', "");
-    Expect(0, 68184, '\P{  Kharoshthi}', "");
-    Expect(1, 68184, '\P{^  Kharoshthi}', "");
-    Expect(0, 68185, '\p{  Kharoshthi}', "");
-    Expect(1, 68185, '\p{^  Kharoshthi}', "");
-    Expect(1, 68185, '\P{  Kharoshthi}', "");
-    Expect(0, 68185, '\P{^  Kharoshthi}', "");
-    Error('\p{/a/Is_kharoshthi}');
-    Error('\P{/a/Is_kharoshthi}');
+    Expect(1, 68184, '\p{--kharoshthi}', "");
+    Expect(0, 68184, '\p{^--kharoshthi}', "");
+    Expect(0, 68184, '\P{--kharoshthi}', "");
+    Expect(1, 68184, '\P{^--kharoshthi}', "");
+    Expect(0, 68185, '\p{--kharoshthi}', "");
+    Expect(1, 68185, '\p{^--kharoshthi}', "");
+    Expect(1, 68185, '\P{--kharoshthi}', "");
+    Expect(0, 68185, '\P{^--kharoshthi}', "");
+    Error('\p{ /a/Is_KHAROSHTHI}');
+    Error('\P{ /a/Is_KHAROSHTHI}');
     Expect(1, 68184, '\p{iskharoshthi}', "");
     Expect(0, 68184, '\p{^iskharoshthi}', "");
     Expect(0, 68184, '\P{iskharoshthi}', "");
@@ -107661,16 +108805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68185, '\p{^iskharoshthi}', "");
     Expect(1, 68185, '\P{iskharoshthi}', "");
     Expect(0, 68185, '\P{^iskharoshthi}', "");
-    Expect(1, 68184, '\p{  is_KHAROSHTHI}', "");
-    Expect(0, 68184, '\p{^  is_KHAROSHTHI}', "");
-    Expect(0, 68184, '\P{  is_KHAROSHTHI}', "");
-    Expect(1, 68184, '\P{^  is_KHAROSHTHI}', "");
-    Expect(0, 68185, '\p{  is_KHAROSHTHI}', "");
-    Expect(1, 68185, '\p{^  is_KHAROSHTHI}', "");
-    Expect(1, 68185, '\P{  is_KHAROSHTHI}', "");
-    Expect(0, 68185, '\P{^  is_KHAROSHTHI}', "");
-    Error('\p{-KHAR/a/}');
-    Error('\P{-KHAR/a/}');
+    Expect(1, 68184, '\p{	 Is_kharoshthi}', "");
+    Expect(0, 68184, '\p{^	 Is_kharoshthi}', "");
+    Expect(0, 68184, '\P{	 Is_kharoshthi}', "");
+    Expect(1, 68184, '\P{^	 Is_kharoshthi}', "");
+    Expect(0, 68185, '\p{	 Is_kharoshthi}', "");
+    Expect(1, 68185, '\p{^	 Is_kharoshthi}', "");
+    Expect(1, 68185, '\P{	 Is_kharoshthi}', "");
+    Expect(0, 68185, '\P{^	 Is_kharoshthi}', "");
+    Error('\p{:=	khar}');
+    Error('\P{:=	khar}');
     Expect(1, 68184, '\p{khar}', "");
     Expect(0, 68184, '\p{^khar}', "");
     Expect(0, 68184, '\P{khar}', "");
@@ -107679,16 +108823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68185, '\p{^khar}', "");
     Expect(1, 68185, '\P{khar}', "");
     Expect(0, 68185, '\P{^khar}', "");
-    Expect(1, 68184, '\p{__Khar}', "");
-    Expect(0, 68184, '\p{^__Khar}', "");
-    Expect(0, 68184, '\P{__Khar}', "");
-    Expect(1, 68184, '\P{^__Khar}', "");
-    Expect(0, 68185, '\p{__Khar}', "");
-    Expect(1, 68185, '\p{^__Khar}', "");
-    Expect(1, 68185, '\P{__Khar}', "");
-    Expect(0, 68185, '\P{^__Khar}', "");
-    Error('\p{:=Is_Khar}');
-    Error('\P{:=Is_Khar}');
+    Expect(1, 68184, '\p{- khar}', "");
+    Expect(0, 68184, '\p{^- khar}', "");
+    Expect(0, 68184, '\P{- khar}', "");
+    Expect(1, 68184, '\P{^- khar}', "");
+    Expect(0, 68185, '\p{- khar}', "");
+    Expect(1, 68185, '\p{^- khar}', "");
+    Expect(1, 68185, '\P{- khar}', "");
+    Expect(0, 68185, '\P{^- khar}', "");
+    Error('\p{:=IS_khar}');
+    Error('\P{:=IS_khar}');
     Expect(1, 68184, '\p{iskhar}', "");
     Expect(0, 68184, '\p{^iskhar}', "");
     Expect(0, 68184, '\P{iskhar}', "");
@@ -107697,16 +108841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68185, '\p{^iskhar}', "");
     Expect(1, 68185, '\P{iskhar}', "");
     Expect(0, 68185, '\P{^iskhar}', "");
-    Expect(1, 68184, '\p{ _IS_KHAR}', "");
-    Expect(0, 68184, '\p{^ _IS_KHAR}', "");
-    Expect(0, 68184, '\P{ _IS_KHAR}', "");
-    Expect(1, 68184, '\P{^ _IS_KHAR}', "");
-    Expect(0, 68185, '\p{ _IS_KHAR}', "");
-    Expect(1, 68185, '\p{^ _IS_KHAR}', "");
-    Expect(1, 68185, '\P{ _IS_KHAR}', "");
-    Expect(0, 68185, '\P{^ _IS_KHAR}', "");
-    Error('\p{	:=Khitan_small_Script}');
-    Error('\P{	:=Khitan_small_Script}');
+    Expect(1, 68184, '\p{ 	Is_Khar}', "");
+    Expect(0, 68184, '\p{^ 	Is_Khar}', "");
+    Expect(0, 68184, '\P{ 	Is_Khar}', "");
+    Expect(1, 68184, '\P{^ 	Is_Khar}', "");
+    Expect(0, 68185, '\p{ 	Is_Khar}', "");
+    Expect(1, 68185, '\p{^ 	Is_Khar}', "");
+    Expect(1, 68185, '\P{ 	Is_Khar}', "");
+    Expect(0, 68185, '\P{^ 	Is_Khar}', "");
+    Error('\p{:= Khitan_Small_Script}');
+    Error('\P{:= Khitan_Small_Script}');
     Expect(1, 101589, '\p{khitansmallscript}', "");
     Expect(0, 101589, '\p{^khitansmallscript}', "");
     Expect(0, 101589, '\P{khitansmallscript}', "");
@@ -107715,16 +108859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 101590, '\p{^khitansmallscript}', "");
     Expect(1, 101590, '\P{khitansmallscript}', "");
     Expect(0, 101590, '\P{^khitansmallscript}', "");
-    Expect(1, 101589, '\p{	-khitan_SMALL_script}', "");
-    Expect(0, 101589, '\p{^	-khitan_SMALL_script}', "");
-    Expect(0, 101589, '\P{	-khitan_SMALL_script}', "");
-    Expect(1, 101589, '\P{^	-khitan_SMALL_script}', "");
-    Expect(0, 101590, '\p{	-khitan_SMALL_script}', "");
-    Expect(1, 101590, '\p{^	-khitan_SMALL_script}', "");
-    Expect(1, 101590, '\P{	-khitan_SMALL_script}', "");
-    Expect(0, 101590, '\P{^	-khitan_SMALL_script}', "");
-    Error('\p{:=	 is_khitan_Small_script}');
-    Error('\P{:=	 is_khitan_Small_script}');
+    Expect(1, 101589, '\p{-Khitan_small_Script}', "");
+    Expect(0, 101589, '\p{^-Khitan_small_Script}', "");
+    Expect(0, 101589, '\P{-Khitan_small_Script}', "");
+    Expect(1, 101589, '\P{^-Khitan_small_Script}', "");
+    Expect(0, 101590, '\p{-Khitan_small_Script}', "");
+    Expect(1, 101590, '\p{^-Khitan_small_Script}', "");
+    Expect(1, 101590, '\P{-Khitan_small_Script}', "");
+    Expect(0, 101590, '\P{^-Khitan_small_Script}', "");
+    Error('\p{:= is_Khitan_small_Script}');
+    Error('\P{:= is_Khitan_small_Script}');
     Expect(1, 101589, '\p{iskhitansmallscript}', "");
     Expect(0, 101589, '\p{^iskhitansmallscript}', "");
     Expect(0, 101589, '\P{iskhitansmallscript}', "");
@@ -107733,16 +108877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 101590, '\p{^iskhitansmallscript}', "");
     Expect(1, 101590, '\P{iskhitansmallscript}', "");
     Expect(0, 101590, '\P{^iskhitansmallscript}', "");
-    Expect(1, 101589, '\p{Is_Khitan_Small_Script}', "");
-    Expect(0, 101589, '\p{^Is_Khitan_Small_Script}', "");
-    Expect(0, 101589, '\P{Is_Khitan_Small_Script}', "");
-    Expect(1, 101589, '\P{^Is_Khitan_Small_Script}', "");
-    Expect(0, 101590, '\p{Is_Khitan_Small_Script}', "");
-    Expect(1, 101590, '\p{^Is_Khitan_Small_Script}', "");
-    Expect(1, 101590, '\P{Is_Khitan_Small_Script}', "");
-    Expect(0, 101590, '\P{^Is_Khitan_Small_Script}', "");
-    Error('\p{		Kits:=}');
-    Error('\P{		Kits:=}');
+    Expect(1, 101589, '\p{__is_khitan_Small_Script}', "");
+    Expect(0, 101589, '\p{^__is_khitan_Small_Script}', "");
+    Expect(0, 101589, '\P{__is_khitan_Small_Script}', "");
+    Expect(1, 101589, '\P{^__is_khitan_Small_Script}', "");
+    Expect(0, 101590, '\p{__is_khitan_Small_Script}', "");
+    Expect(1, 101590, '\p{^__is_khitan_Small_Script}', "");
+    Expect(1, 101590, '\P{__is_khitan_Small_Script}', "");
+    Expect(0, 101590, '\P{^__is_khitan_Small_Script}', "");
+    Error('\p{/a/-kits}');
+    Error('\P{/a/-kits}');
     Expect(1, 101589, '\p{kits}', "");
     Expect(0, 101589, '\p{^kits}', "");
     Expect(0, 101589, '\P{kits}', "");
@@ -107751,16 +108895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 101590, '\p{^kits}', "");
     Expect(1, 101590, '\P{kits}', "");
     Expect(0, 101590, '\P{^kits}', "");
-    Expect(1, 101589, '\p{ -Kits}', "");
-    Expect(0, 101589, '\p{^ -Kits}', "");
-    Expect(0, 101589, '\P{ -Kits}', "");
-    Expect(1, 101589, '\P{^ -Kits}', "");
-    Expect(0, 101590, '\p{ -Kits}', "");
-    Expect(1, 101590, '\p{^ -Kits}', "");
-    Expect(1, 101590, '\P{ -Kits}', "");
-    Expect(0, 101590, '\P{^ -Kits}', "");
-    Error('\p{:=-IS_Kits}');
-    Error('\P{:=-IS_Kits}');
+    Expect(1, 101589, '\p{_-KITS}', "");
+    Expect(0, 101589, '\p{^_-KITS}', "");
+    Expect(0, 101589, '\P{_-KITS}', "");
+    Expect(1, 101589, '\P{^_-KITS}', "");
+    Expect(0, 101590, '\p{_-KITS}', "");
+    Expect(1, 101590, '\p{^_-KITS}', "");
+    Expect(1, 101590, '\P{_-KITS}', "");
+    Expect(0, 101590, '\P{^_-KITS}', "");
+    Error('\p{-:=Is_Kits}');
+    Error('\P{-:=Is_Kits}');
     Expect(1, 101589, '\p{iskits}', "");
     Expect(0, 101589, '\p{^iskits}', "");
     Expect(0, 101589, '\P{iskits}', "");
@@ -107769,16 +108913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 101590, '\p{^iskits}', "");
     Expect(1, 101590, '\P{iskits}', "");
     Expect(0, 101590, '\P{^iskits}', "");
-    Expect(1, 101589, '\p{ Is_Kits}', "");
-    Expect(0, 101589, '\p{^ Is_Kits}', "");
-    Expect(0, 101589, '\P{ Is_Kits}', "");
-    Expect(1, 101589, '\P{^ Is_Kits}', "");
-    Expect(0, 101590, '\p{ Is_Kits}', "");
-    Expect(1, 101590, '\p{^ Is_Kits}', "");
-    Expect(1, 101590, '\P{ Is_Kits}', "");
-    Expect(0, 101590, '\P{^ Is_Kits}', "");
-    Error('\p{	:=Khmer}');
-    Error('\P{	:=Khmer}');
+    Expect(1, 101589, '\p{-_IS_Kits}', "");
+    Expect(0, 101589, '\p{^-_IS_Kits}', "");
+    Expect(0, 101589, '\P{-_IS_Kits}', "");
+    Expect(1, 101589, '\P{^-_IS_Kits}', "");
+    Expect(0, 101590, '\p{-_IS_Kits}', "");
+    Expect(1, 101590, '\p{^-_IS_Kits}', "");
+    Expect(1, 101590, '\P{-_IS_Kits}', "");
+    Expect(0, 101590, '\P{^-_IS_Kits}', "");
+    Error('\p{/a/  Khmer}');
+    Error('\P{/a/  Khmer}');
     Expect(1, 6655, '\p{khmer}', "");
     Expect(0, 6655, '\p{^khmer}', "");
     Expect(0, 6655, '\P{khmer}', "");
@@ -107787,16 +108931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^khmer}', "");
     Expect(1, 6656, '\P{khmer}', "");
     Expect(0, 6656, '\P{^khmer}', "");
-    Expect(1, 6655, '\p{	 KHMER}', "");
-    Expect(0, 6655, '\p{^	 KHMER}', "");
-    Expect(0, 6655, '\P{	 KHMER}', "");
-    Expect(1, 6655, '\P{^	 KHMER}', "");
-    Expect(0, 6656, '\p{	 KHMER}', "");
-    Expect(1, 6656, '\p{^	 KHMER}', "");
-    Expect(1, 6656, '\P{	 KHMER}', "");
-    Expect(0, 6656, '\P{^	 KHMER}', "");
-    Error('\p{__Is_Khmer/a/}');
-    Error('\P{__Is_Khmer/a/}');
+    Expect(1, 6655, '\p{-	KHMER}', "");
+    Expect(0, 6655, '\p{^-	KHMER}', "");
+    Expect(0, 6655, '\P{-	KHMER}', "");
+    Expect(1, 6655, '\P{^-	KHMER}', "");
+    Expect(0, 6656, '\p{-	KHMER}', "");
+    Expect(1, 6656, '\p{^-	KHMER}', "");
+    Expect(1, 6656, '\P{-	KHMER}', "");
+    Expect(0, 6656, '\P{^-	KHMER}', "");
+    Error('\p{_ IS_Khmer:=}');
+    Error('\P{_ IS_Khmer:=}');
     Expect(1, 6655, '\p{iskhmer}', "");
     Expect(0, 6655, '\p{^iskhmer}', "");
     Expect(0, 6655, '\P{iskhmer}', "");
@@ -107805,16 +108949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^iskhmer}', "");
     Expect(1, 6656, '\P{iskhmer}', "");
     Expect(0, 6656, '\P{^iskhmer}', "");
-    Expect(1, 6655, '\p{ 	Is_khmer}', "");
-    Expect(0, 6655, '\p{^ 	Is_khmer}', "");
-    Expect(0, 6655, '\P{ 	Is_khmer}', "");
-    Expect(1, 6655, '\P{^ 	Is_khmer}', "");
-    Expect(0, 6656, '\p{ 	Is_khmer}', "");
-    Expect(1, 6656, '\p{^ 	Is_khmer}', "");
-    Expect(1, 6656, '\P{ 	Is_khmer}', "");
-    Expect(0, 6656, '\P{^ 	Is_khmer}', "");
-    Error('\p{	:=Khmr}');
-    Error('\P{	:=Khmr}');
+    Expect(1, 6655, '\p{	_Is_khmer}', "");
+    Expect(0, 6655, '\p{^	_Is_khmer}', "");
+    Expect(0, 6655, '\P{	_Is_khmer}', "");
+    Expect(1, 6655, '\P{^	_Is_khmer}', "");
+    Expect(0, 6656, '\p{	_Is_khmer}', "");
+    Expect(1, 6656, '\p{^	_Is_khmer}', "");
+    Expect(1, 6656, '\P{	_Is_khmer}', "");
+    Expect(0, 6656, '\P{^	_Is_khmer}', "");
+    Error('\p{	KHMR/a/}');
+    Error('\P{	KHMR/a/}');
     Expect(1, 6655, '\p{khmr}', "");
     Expect(0, 6655, '\p{^khmr}', "");
     Expect(0, 6655, '\P{khmr}', "");
@@ -107823,16 +108967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^khmr}', "");
     Expect(1, 6656, '\P{khmr}', "");
     Expect(0, 6656, '\P{^khmr}', "");
-    Expect(1, 6655, '\p{-khmr}', "");
-    Expect(0, 6655, '\p{^-khmr}', "");
-    Expect(0, 6655, '\P{-khmr}', "");
-    Expect(1, 6655, '\P{^-khmr}', "");
-    Expect(0, 6656, '\p{-khmr}', "");
-    Expect(1, 6656, '\p{^-khmr}', "");
-    Expect(1, 6656, '\P{-khmr}', "");
-    Expect(0, 6656, '\P{^-khmr}', "");
-    Error('\p{_-Is_Khmr/a/}');
-    Error('\P{_-Is_Khmr/a/}');
+    Expect(1, 6655, '\p{ KHMR}', "");
+    Expect(0, 6655, '\p{^ KHMR}', "");
+    Expect(0, 6655, '\P{ KHMR}', "");
+    Expect(1, 6655, '\P{^ KHMR}', "");
+    Expect(0, 6656, '\p{ KHMR}', "");
+    Expect(1, 6656, '\p{^ KHMR}', "");
+    Expect(1, 6656, '\P{ KHMR}', "");
+    Expect(0, 6656, '\P{^ KHMR}', "");
+    Error('\p{-:=is_Khmr}');
+    Error('\P{-:=is_Khmr}');
     Expect(1, 6655, '\p{iskhmr}', "");
     Expect(0, 6655, '\p{^iskhmr}', "");
     Expect(0, 6655, '\P{iskhmr}', "");
@@ -107841,16 +108985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^iskhmr}', "");
     Expect(1, 6656, '\P{iskhmr}', "");
     Expect(0, 6656, '\P{^iskhmr}', "");
-    Expect(1, 6655, '\p{_Is_Khmr}', "");
-    Expect(0, 6655, '\p{^_Is_Khmr}', "");
-    Expect(0, 6655, '\P{_Is_Khmr}', "");
-    Expect(1, 6655, '\P{^_Is_Khmr}', "");
-    Expect(0, 6656, '\p{_Is_Khmr}', "");
-    Expect(1, 6656, '\p{^_Is_Khmr}', "");
-    Expect(1, 6656, '\P{_Is_Khmr}', "");
-    Expect(0, 6656, '\P{^_Is_Khmr}', "");
-    Error('\p{ /a/khmer_SYMBOLS}');
-    Error('\P{ /a/khmer_SYMBOLS}');
+    Expect(1, 6655, '\p{_IS_khmr}', "");
+    Expect(0, 6655, '\p{^_IS_khmr}', "");
+    Expect(0, 6655, '\P{_IS_khmr}', "");
+    Expect(1, 6655, '\P{^_IS_khmr}', "");
+    Expect(0, 6656, '\p{_IS_khmr}', "");
+    Expect(1, 6656, '\p{^_IS_khmr}', "");
+    Expect(1, 6656, '\P{_IS_khmr}', "");
+    Expect(0, 6656, '\P{^_IS_khmr}', "");
+    Error('\p{/a/_Khmer_Symbols}');
+    Error('\P{/a/_Khmer_Symbols}');
     Expect(1, 6655, '\p{khmersymbols}', "");
     Expect(0, 6655, '\p{^khmersymbols}', "");
     Expect(0, 6655, '\P{khmersymbols}', "");
@@ -107859,16 +109003,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^khmersymbols}', "");
     Expect(1, 6656, '\P{khmersymbols}', "");
     Expect(0, 6656, '\P{^khmersymbols}', "");
-    Expect(1, 6655, '\p{-_KHMER_SYMBOLS}', "");
-    Expect(0, 6655, '\p{^-_KHMER_SYMBOLS}', "");
-    Expect(0, 6655, '\P{-_KHMER_SYMBOLS}', "");
-    Expect(1, 6655, '\P{^-_KHMER_SYMBOLS}', "");
-    Expect(0, 6656, '\p{-_KHMER_SYMBOLS}', "");
-    Expect(1, 6656, '\p{^-_KHMER_SYMBOLS}', "");
-    Expect(1, 6656, '\P{-_KHMER_SYMBOLS}', "");
-    Expect(0, 6656, '\P{^-_KHMER_SYMBOLS}', "");
-    Error('\p{	:=is_khmer_SYMBOLS}');
-    Error('\P{	:=is_khmer_SYMBOLS}');
+    Expect(1, 6655, '\p{	khmer_symbols}', "");
+    Expect(0, 6655, '\p{^	khmer_symbols}', "");
+    Expect(0, 6655, '\P{	khmer_symbols}', "");
+    Expect(1, 6655, '\P{^	khmer_symbols}', "");
+    Expect(0, 6656, '\p{	khmer_symbols}', "");
+    Expect(1, 6656, '\p{^	khmer_symbols}', "");
+    Expect(1, 6656, '\P{	khmer_symbols}', "");
+    Expect(0, 6656, '\P{^	khmer_symbols}', "");
+    Error('\p{ _is_Khmer_Symbols:=}');
+    Error('\P{ _is_Khmer_Symbols:=}');
     Expect(1, 6655, '\p{iskhmersymbols}', "");
     Expect(0, 6655, '\p{^iskhmersymbols}', "");
     Expect(0, 6655, '\P{iskhmersymbols}', "");
@@ -107877,16 +109021,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^iskhmersymbols}', "");
     Expect(1, 6656, '\P{iskhmersymbols}', "");
     Expect(0, 6656, '\P{^iskhmersymbols}', "");
-    Expect(1, 6655, '\p{_	IS_Khmer_Symbols}', "");
-    Expect(0, 6655, '\p{^_	IS_Khmer_Symbols}', "");
-    Expect(0, 6655, '\P{_	IS_Khmer_Symbols}', "");
-    Expect(1, 6655, '\P{^_	IS_Khmer_Symbols}', "");
-    Expect(0, 6656, '\p{_	IS_Khmer_Symbols}', "");
-    Expect(1, 6656, '\p{^_	IS_Khmer_Symbols}', "");
-    Expect(1, 6656, '\P{_	IS_Khmer_Symbols}', "");
-    Expect(0, 6656, '\P{^_	IS_Khmer_Symbols}', "");
-    Error('\p{/a/IN_KHMER_SYMBOLS}');
-    Error('\P{/a/IN_KHMER_SYMBOLS}');
+    Expect(1, 6655, '\p{_-is_Khmer_SYMBOLS}', "");
+    Expect(0, 6655, '\p{^_-is_Khmer_SYMBOLS}', "");
+    Expect(0, 6655, '\P{_-is_Khmer_SYMBOLS}', "");
+    Expect(1, 6655, '\P{^_-is_Khmer_SYMBOLS}', "");
+    Expect(0, 6656, '\p{_-is_Khmer_SYMBOLS}', "");
+    Expect(1, 6656, '\p{^_-is_Khmer_SYMBOLS}', "");
+    Expect(1, 6656, '\P{_-is_Khmer_SYMBOLS}', "");
+    Expect(0, 6656, '\P{^_-is_Khmer_SYMBOLS}', "");
+    Error('\p{_In_KHMER_SYMBOLS/a/}');
+    Error('\P{_In_KHMER_SYMBOLS/a/}');
     Expect(1, 6655, '\p{inkhmersymbols}', "");
     Expect(0, 6655, '\p{^inkhmersymbols}', "");
     Expect(0, 6655, '\P{inkhmersymbols}', "");
@@ -107895,88 +109039,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6656, '\p{^inkhmersymbols}', "");
     Expect(1, 6656, '\P{inkhmersymbols}', "");
     Expect(0, 6656, '\P{^inkhmersymbols}', "");
-    Expect(1, 6655, '\p{-	IN_KHMER_Symbols}', "");
-    Expect(0, 6655, '\p{^-	IN_KHMER_Symbols}', "");
-    Expect(0, 6655, '\P{-	IN_KHMER_Symbols}', "");
-    Expect(1, 6655, '\P{^-	IN_KHMER_Symbols}', "");
-    Expect(0, 6656, '\p{-	IN_KHMER_Symbols}', "");
-    Expect(1, 6656, '\p{^-	IN_KHMER_Symbols}', "");
-    Expect(1, 6656, '\P{-	IN_KHMER_Symbols}', "");
-    Expect(0, 6656, '\P{^-	IN_KHMER_Symbols}', "");
-    Error('\p{:=	KHOJKI}');
-    Error('\P{:=	KHOJKI}');
-    Expect(1, 70206, '\p{khojki}', "");
-    Expect(0, 70206, '\p{^khojki}', "");
-    Expect(0, 70206, '\P{khojki}', "");
-    Expect(1, 70206, '\P{^khojki}', "");
-    Expect(0, 70207, '\p{khojki}', "");
-    Expect(1, 70207, '\p{^khojki}', "");
-    Expect(1, 70207, '\P{khojki}', "");
-    Expect(0, 70207, '\P{^khojki}', "");
-    Expect(1, 70206, '\p{ khojki}', "");
-    Expect(0, 70206, '\p{^ khojki}', "");
-    Expect(0, 70206, '\P{ khojki}', "");
-    Expect(1, 70206, '\P{^ khojki}', "");
-    Expect(0, 70207, '\p{ khojki}', "");
-    Expect(1, 70207, '\p{^ khojki}', "");
-    Expect(1, 70207, '\P{ khojki}', "");
-    Expect(0, 70207, '\P{^ khojki}', "");
-    Error('\p{_-is_KHOJKI:=}');
-    Error('\P{_-is_KHOJKI:=}');
-    Expect(1, 70206, '\p{iskhojki}', "");
-    Expect(0, 70206, '\p{^iskhojki}', "");
-    Expect(0, 70206, '\P{iskhojki}', "");
-    Expect(1, 70206, '\P{^iskhojki}', "");
-    Expect(0, 70207, '\p{iskhojki}', "");
-    Expect(1, 70207, '\p{^iskhojki}', "");
-    Expect(1, 70207, '\P{iskhojki}', "");
-    Expect(0, 70207, '\P{^iskhojki}', "");
-    Expect(1, 70206, '\p{- is_KHOJKI}', "");
-    Expect(0, 70206, '\p{^- is_KHOJKI}', "");
-    Expect(0, 70206, '\P{- is_KHOJKI}', "");
-    Expect(1, 70206, '\P{^- is_KHOJKI}', "");
-    Expect(0, 70207, '\p{- is_KHOJKI}', "");
-    Expect(1, 70207, '\p{^- is_KHOJKI}', "");
-    Expect(1, 70207, '\P{- is_KHOJKI}', "");
-    Expect(0, 70207, '\P{^- is_KHOJKI}', "");
-    Error('\p{:=  khoj}');
-    Error('\P{:=  khoj}');
-    Expect(1, 70206, '\p{khoj}', "");
-    Expect(0, 70206, '\p{^khoj}', "");
-    Expect(0, 70206, '\P{khoj}', "");
-    Expect(1, 70206, '\P{^khoj}', "");
-    Expect(0, 70207, '\p{khoj}', "");
-    Expect(1, 70207, '\p{^khoj}', "");
-    Expect(1, 70207, '\P{khoj}', "");
-    Expect(0, 70207, '\P{^khoj}', "");
-    Expect(1, 70206, '\p{ -Khoj}', "");
-    Expect(0, 70206, '\p{^ -Khoj}', "");
-    Expect(0, 70206, '\P{ -Khoj}', "");
-    Expect(1, 70206, '\P{^ -Khoj}', "");
-    Expect(0, 70207, '\p{ -Khoj}', "");
-    Expect(1, 70207, '\p{^ -Khoj}', "");
-    Expect(1, 70207, '\P{ -Khoj}', "");
-    Expect(0, 70207, '\P{^ -Khoj}', "");
-    Error('\p{	_IS_KHOJ/a/}');
-    Error('\P{	_IS_KHOJ/a/}');
-    Expect(1, 70206, '\p{iskhoj}', "");
-    Expect(0, 70206, '\p{^iskhoj}', "");
-    Expect(0, 70206, '\P{iskhoj}', "");
-    Expect(1, 70206, '\P{^iskhoj}', "");
-    Expect(0, 70207, '\p{iskhoj}', "");
-    Expect(1, 70207, '\p{^iskhoj}', "");
-    Expect(1, 70207, '\P{iskhoj}', "");
-    Expect(0, 70207, '\P{^iskhoj}', "");
-    Expect(1, 70206, '\p{__Is_Khoj}', "");
-    Expect(0, 70206, '\p{^__Is_Khoj}', "");
-    Expect(0, 70206, '\P{__Is_Khoj}', "");
-    Expect(1, 70206, '\P{^__Is_Khoj}', "");
-    Expect(0, 70207, '\p{__Is_Khoj}', "");
-    Expect(1, 70207, '\p{^__Is_Khoj}', "");
-    Expect(1, 70207, '\P{__Is_Khoj}', "");
-    Expect(0, 70207, '\P{^__Is_Khoj}', "");
-    Error('\p{_/a/Khudawadi}');
-    Error('\P{_/a/Khudawadi}');
+    Expect(1, 6655, '\p{	In_khmer_Symbols}', "");
+    Expect(0, 6655, '\p{^	In_khmer_Symbols}', "");
+    Expect(0, 6655, '\P{	In_khmer_Symbols}', "");
+    Expect(1, 6655, '\P{^	In_khmer_Symbols}', "");
+    Expect(0, 6656, '\p{	In_khmer_Symbols}', "");
+    Expect(1, 6656, '\p{^	In_khmer_Symbols}', "");
+    Expect(1, 6656, '\P{	In_khmer_Symbols}', "");
+    Expect(0, 6656, '\P{^	In_khmer_Symbols}', "");
+    Error('\p{_:=KHOJKI}');
+    Error('\P{_:=KHOJKI}');
+    Expect(1, 70209, '\p{khojki}', "");
+    Expect(0, 70209, '\p{^khojki}', "");
+    Expect(0, 70209, '\P{khojki}', "");
+    Expect(1, 70209, '\P{^khojki}', "");
+    Expect(0, 70210, '\p{khojki}', "");
+    Expect(1, 70210, '\p{^khojki}', "");
+    Expect(1, 70210, '\P{khojki}', "");
+    Expect(0, 70210, '\P{^khojki}', "");
+    Expect(1, 70209, '\p{ KHOJKI}', "");
+    Expect(0, 70209, '\p{^ KHOJKI}', "");
+    Expect(0, 70209, '\P{ KHOJKI}', "");
+    Expect(1, 70209, '\P{^ KHOJKI}', "");
+    Expect(0, 70210, '\p{ KHOJKI}', "");
+    Expect(1, 70210, '\p{^ KHOJKI}', "");
+    Expect(1, 70210, '\P{ KHOJKI}', "");
+    Expect(0, 70210, '\P{^ KHOJKI}', "");
+    Error('\p{ Is_KHOJKI:=}');
+    Error('\P{ Is_KHOJKI:=}');
+    Expect(1, 70209, '\p{iskhojki}', "");
+    Expect(0, 70209, '\p{^iskhojki}', "");
+    Expect(0, 70209, '\P{iskhojki}', "");
+    Expect(1, 70209, '\P{^iskhojki}', "");
+    Expect(0, 70210, '\p{iskhojki}', "");
+    Expect(1, 70210, '\p{^iskhojki}', "");
+    Expect(1, 70210, '\P{iskhojki}', "");
+    Expect(0, 70210, '\P{^iskhojki}', "");
+    Expect(1, 70209, '\p{-	IS_Khojki}', "");
+    Expect(0, 70209, '\p{^-	IS_Khojki}', "");
+    Expect(0, 70209, '\P{-	IS_Khojki}', "");
+    Expect(1, 70209, '\P{^-	IS_Khojki}', "");
+    Expect(0, 70210, '\p{-	IS_Khojki}', "");
+    Expect(1, 70210, '\p{^-	IS_Khojki}', "");
+    Expect(1, 70210, '\P{-	IS_Khojki}', "");
+    Expect(0, 70210, '\P{^-	IS_Khojki}', "");
+    Error('\p{- Khoj/a/}');
+    Error('\P{- Khoj/a/}');
+    Expect(1, 70209, '\p{khoj}', "");
+    Expect(0, 70209, '\p{^khoj}', "");
+    Expect(0, 70209, '\P{khoj}', "");
+    Expect(1, 70209, '\P{^khoj}', "");
+    Expect(0, 70210, '\p{khoj}', "");
+    Expect(1, 70210, '\p{^khoj}', "");
+    Expect(1, 70210, '\P{khoj}', "");
+    Expect(0, 70210, '\P{^khoj}', "");
+    Expect(1, 70209, '\p{  khoj}', "");
+    Expect(0, 70209, '\p{^  khoj}', "");
+    Expect(0, 70209, '\P{  khoj}', "");
+    Expect(1, 70209, '\P{^  khoj}', "");
+    Expect(0, 70210, '\p{  khoj}', "");
+    Expect(1, 70210, '\p{^  khoj}', "");
+    Expect(1, 70210, '\P{  khoj}', "");
+    Expect(0, 70210, '\P{^  khoj}', "");
+    Error('\p{	Is_Khoj/a/}');
+    Error('\P{	Is_Khoj/a/}');
+    Expect(1, 70209, '\p{iskhoj}', "");
+    Expect(0, 70209, '\p{^iskhoj}', "");
+    Expect(0, 70209, '\P{iskhoj}', "");
+    Expect(1, 70209, '\P{^iskhoj}', "");
+    Expect(0, 70210, '\p{iskhoj}', "");
+    Expect(1, 70210, '\p{^iskhoj}', "");
+    Expect(1, 70210, '\P{iskhoj}', "");
+    Expect(0, 70210, '\P{^iskhoj}', "");
+    Expect(1, 70209, '\p{-_IS_Khoj}', "");
+    Expect(0, 70209, '\p{^-_IS_Khoj}', "");
+    Expect(0, 70209, '\P{-_IS_Khoj}', "");
+    Expect(1, 70209, '\P{^-_IS_Khoj}', "");
+    Expect(0, 70210, '\p{-_IS_Khoj}', "");
+    Expect(1, 70210, '\p{^-_IS_Khoj}', "");
+    Expect(1, 70210, '\P{-_IS_Khoj}', "");
+    Expect(0, 70210, '\P{^-_IS_Khoj}', "");
+    Error('\p{ :=Khudawadi}');
+    Error('\P{ :=Khudawadi}');
     Expect(1, 70393, '\p{khudawadi}', "");
     Expect(0, 70393, '\p{^khudawadi}', "");
     Expect(0, 70393, '\P{khudawadi}', "");
@@ -107985,16 +109129,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70394, '\p{^khudawadi}', "");
     Expect(1, 70394, '\P{khudawadi}', "");
     Expect(0, 70394, '\P{^khudawadi}', "");
-    Expect(1, 70393, '\p{_ Khudawadi}', "");
-    Expect(0, 70393, '\p{^_ Khudawadi}', "");
-    Expect(0, 70393, '\P{_ Khudawadi}', "");
-    Expect(1, 70393, '\P{^_ Khudawadi}', "");
-    Expect(0, 70394, '\p{_ Khudawadi}', "");
-    Expect(1, 70394, '\p{^_ Khudawadi}', "");
-    Expect(1, 70394, '\P{_ Khudawadi}', "");
-    Expect(0, 70394, '\P{^_ Khudawadi}', "");
-    Error('\p{:=IS_KHUDAWADI}');
-    Error('\P{:=IS_KHUDAWADI}');
+    Expect(1, 70393, '\p{  Khudawadi}', "");
+    Expect(0, 70393, '\p{^  Khudawadi}', "");
+    Expect(0, 70393, '\P{  Khudawadi}', "");
+    Expect(1, 70393, '\P{^  Khudawadi}', "");
+    Expect(0, 70394, '\p{  Khudawadi}', "");
+    Expect(1, 70394, '\p{^  Khudawadi}', "");
+    Expect(1, 70394, '\P{  Khudawadi}', "");
+    Expect(0, 70394, '\P{^  Khudawadi}', "");
+    Error('\p{-Is_khudawadi/a/}');
+    Error('\P{-Is_khudawadi/a/}');
     Expect(1, 70393, '\p{iskhudawadi}', "");
     Expect(0, 70393, '\p{^iskhudawadi}', "");
     Expect(0, 70393, '\P{iskhudawadi}', "");
@@ -108003,16 +109147,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70394, '\p{^iskhudawadi}', "");
     Expect(1, 70394, '\P{iskhudawadi}', "");
     Expect(0, 70394, '\P{^iskhudawadi}', "");
-    Expect(1, 70393, '\p{-Is_Khudawadi}', "");
-    Expect(0, 70393, '\p{^-Is_Khudawadi}', "");
-    Expect(0, 70393, '\P{-Is_Khudawadi}', "");
-    Expect(1, 70393, '\P{^-Is_Khudawadi}', "");
-    Expect(0, 70394, '\p{-Is_Khudawadi}', "");
-    Expect(1, 70394, '\p{^-Is_Khudawadi}', "");
-    Expect(1, 70394, '\P{-Is_Khudawadi}', "");
-    Expect(0, 70394, '\P{^-Is_Khudawadi}', "");
-    Error('\p{/a/_-Sind}');
-    Error('\P{/a/_-Sind}');
+    Expect(1, 70393, '\p{	 is_khudawadi}', "");
+    Expect(0, 70393, '\p{^	 is_khudawadi}', "");
+    Expect(0, 70393, '\P{	 is_khudawadi}', "");
+    Expect(1, 70393, '\P{^	 is_khudawadi}', "");
+    Expect(0, 70394, '\p{	 is_khudawadi}', "");
+    Expect(1, 70394, '\p{^	 is_khudawadi}', "");
+    Expect(1, 70394, '\P{	 is_khudawadi}', "");
+    Expect(0, 70394, '\P{^	 is_khudawadi}', "");
+    Error('\p{:= sind}');
+    Error('\P{:= sind}');
     Expect(1, 70393, '\p{sind}', "");
     Expect(0, 70393, '\p{^sind}', "");
     Expect(0, 70393, '\P{sind}', "");
@@ -108021,16 +109165,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70394, '\p{^sind}', "");
     Expect(1, 70394, '\P{sind}', "");
     Expect(0, 70394, '\P{^sind}', "");
-    Expect(1, 70393, '\p{ 	sind}', "");
-    Expect(0, 70393, '\p{^ 	sind}', "");
-    Expect(0, 70393, '\P{ 	sind}', "");
-    Expect(1, 70393, '\P{^ 	sind}', "");
-    Expect(0, 70394, '\p{ 	sind}', "");
-    Expect(1, 70394, '\p{^ 	sind}', "");
-    Expect(1, 70394, '\P{ 	sind}', "");
-    Expect(0, 70394, '\P{^ 	sind}', "");
-    Error('\p{	 Is_sind/a/}');
-    Error('\P{	 Is_sind/a/}');
+    Error('\p{		IS_Sind:=}');
+    Error('\P{		IS_Sind:=}');
     Expect(1, 70393, '\p{issind}', "");
     Expect(0, 70393, '\p{^issind}', "");
     Expect(0, 70393, '\P{issind}', "");
@@ -108039,16 +109175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70394, '\p{^issind}', "");
     Expect(1, 70394, '\P{issind}', "");
     Expect(0, 70394, '\P{^issind}', "");
-    Expect(1, 70393, '\p{-is_sind}', "");
-    Expect(0, 70393, '\p{^-is_sind}', "");
-    Expect(0, 70393, '\P{-is_sind}', "");
-    Expect(1, 70393, '\P{^-is_sind}', "");
-    Expect(0, 70394, '\p{-is_sind}', "");
-    Expect(1, 70394, '\p{^-is_sind}', "");
-    Expect(1, 70394, '\P{-is_sind}', "");
-    Expect(0, 70394, '\P{^-is_sind}', "");
-    Error('\p{:=__Lao}');
-    Error('\P{:=__Lao}');
+    Expect(1, 70393, '\p{-Is_Sind}', "");
+    Expect(0, 70393, '\p{^-Is_Sind}', "");
+    Expect(0, 70393, '\P{-Is_Sind}', "");
+    Expect(1, 70393, '\P{^-Is_Sind}', "");
+    Expect(0, 70394, '\p{-Is_Sind}', "");
+    Expect(1, 70394, '\p{^-Is_Sind}', "");
+    Expect(1, 70394, '\P{-Is_Sind}', "");
+    Expect(0, 70394, '\P{^-Is_Sind}', "");
+    Error('\p{:= -Lao}');
+    Error('\P{:= -Lao}');
     Expect(1, 3807, '\p{lao}', "");
     Expect(0, 3807, '\p{^lao}', "");
     Expect(0, 3807, '\P{lao}', "");
@@ -108057,16 +109193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3808, '\p{^lao}', "");
     Expect(1, 3808, '\P{lao}', "");
     Expect(0, 3808, '\P{^lao}', "");
-    Expect(1, 3807, '\p{ _LAO}', "");
-    Expect(0, 3807, '\p{^ _LAO}', "");
-    Expect(0, 3807, '\P{ _LAO}', "");
-    Expect(1, 3807, '\P{^ _LAO}', "");
-    Expect(0, 3808, '\p{ _LAO}', "");
-    Expect(1, 3808, '\p{^ _LAO}', "");
-    Expect(1, 3808, '\P{ _LAO}', "");
-    Expect(0, 3808, '\P{^ _LAO}', "");
-    Error('\p{/a/	Is_Lao}');
-    Error('\P{/a/	Is_Lao}');
+    Expect(1, 3807, '\p{Lao}', "");
+    Expect(0, 3807, '\p{^Lao}', "");
+    Expect(0, 3807, '\P{Lao}', "");
+    Expect(1, 3807, '\P{^Lao}', "");
+    Expect(0, 3808, '\p{Lao}', "");
+    Expect(1, 3808, '\p{^Lao}', "");
+    Expect(1, 3808, '\P{Lao}', "");
+    Expect(0, 3808, '\P{^Lao}', "");
+    Error('\p{ :=IS_Lao}');
+    Error('\P{ :=IS_Lao}');
     Expect(1, 3807, '\p{islao}', "");
     Expect(0, 3807, '\p{^islao}', "");
     Expect(0, 3807, '\P{islao}', "");
@@ -108075,16 +109211,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3808, '\p{^islao}', "");
     Expect(1, 3808, '\P{islao}', "");
     Expect(0, 3808, '\P{^islao}', "");
-    Expect(1, 3807, '\p{ -Is_Lao}', "");
-    Expect(0, 3807, '\p{^ -Is_Lao}', "");
-    Expect(0, 3807, '\P{ -Is_Lao}', "");
-    Expect(1, 3807, '\P{^ -Is_Lao}', "");
-    Expect(0, 3808, '\p{ -Is_Lao}', "");
-    Expect(1, 3808, '\p{^ -Is_Lao}', "");
-    Expect(1, 3808, '\P{ -Is_Lao}', "");
-    Expect(0, 3808, '\P{^ -Is_Lao}', "");
-    Error('\p{ :=Laoo}');
-    Error('\P{ :=Laoo}');
+    Expect(1, 3807, '\p{	IS_LAO}', "");
+    Expect(0, 3807, '\p{^	IS_LAO}', "");
+    Expect(0, 3807, '\P{	IS_LAO}', "");
+    Expect(1, 3807, '\P{^	IS_LAO}', "");
+    Expect(0, 3808, '\p{	IS_LAO}', "");
+    Expect(1, 3808, '\p{^	IS_LAO}', "");
+    Expect(1, 3808, '\P{	IS_LAO}', "");
+    Expect(0, 3808, '\P{^	IS_LAO}', "");
+    Error('\p{-LAOO/a/}');
+    Error('\P{-LAOO/a/}');
     Expect(1, 3807, '\p{laoo}', "");
     Expect(0, 3807, '\p{^laoo}', "");
     Expect(0, 3807, '\P{laoo}', "");
@@ -108093,16 +109229,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3808, '\p{^laoo}', "");
     Expect(1, 3808, '\P{laoo}', "");
     Expect(0, 3808, '\P{^laoo}', "");
-    Expect(1, 3807, '\p{-_Laoo}', "");
-    Expect(0, 3807, '\p{^-_Laoo}', "");
-    Expect(0, 3807, '\P{-_Laoo}', "");
-    Expect(1, 3807, '\P{^-_Laoo}', "");
-    Expect(0, 3808, '\p{-_Laoo}', "");
-    Expect(1, 3808, '\p{^-_Laoo}', "");
-    Expect(1, 3808, '\P{-_Laoo}', "");
-    Expect(0, 3808, '\P{^-_Laoo}', "");
-    Error('\p{ _Is_LAOO/a/}');
-    Error('\P{ _Is_LAOO/a/}');
+    Expect(1, 3807, '\p{ -LAOO}', "");
+    Expect(0, 3807, '\p{^ -LAOO}', "");
+    Expect(0, 3807, '\P{ -LAOO}', "");
+    Expect(1, 3807, '\P{^ -LAOO}', "");
+    Expect(0, 3808, '\p{ -LAOO}', "");
+    Expect(1, 3808, '\p{^ -LAOO}', "");
+    Expect(1, 3808, '\P{ -LAOO}', "");
+    Expect(0, 3808, '\P{^ -LAOO}', "");
+    Error('\p{/a/--IS_LAOO}');
+    Error('\P{/a/--IS_LAOO}');
     Expect(1, 3807, '\p{islaoo}', "");
     Expect(0, 3807, '\p{^islaoo}', "");
     Expect(0, 3807, '\P{islaoo}', "");
@@ -108111,88 +109247,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 3808, '\p{^islaoo}', "");
     Expect(1, 3808, '\P{islaoo}', "");
     Expect(0, 3808, '\P{^islaoo}', "");
-    Expect(1, 3807, '\p{ _IS_laoo}', "");
-    Expect(0, 3807, '\p{^ _IS_laoo}', "");
-    Expect(0, 3807, '\P{ _IS_laoo}', "");
-    Expect(1, 3807, '\P{^ _IS_laoo}', "");
-    Expect(0, 3808, '\p{ _IS_laoo}', "");
-    Expect(1, 3808, '\p{^ _IS_laoo}', "");
-    Expect(1, 3808, '\P{ _IS_laoo}', "");
-    Expect(0, 3808, '\P{^ _IS_laoo}', "");
-    Error('\p{:= latin}');
-    Error('\P{:= latin}');
-    Expect(1, 122654, '\p{latin}', "");
-    Expect(0, 122654, '\p{^latin}', "");
-    Expect(0, 122654, '\P{latin}', "");
-    Expect(1, 122654, '\P{^latin}', "");
-    Expect(0, 122655, '\p{latin}', "");
-    Expect(1, 122655, '\p{^latin}', "");
-    Expect(1, 122655, '\P{latin}', "");
-    Expect(0, 122655, '\P{^latin}', "");
-    Expect(1, 122654, '\p{-	Latin}', "");
-    Expect(0, 122654, '\p{^-	Latin}', "");
-    Expect(0, 122654, '\P{-	Latin}', "");
-    Expect(1, 122654, '\P{^-	Latin}', "");
-    Expect(0, 122655, '\p{-	Latin}', "");
-    Expect(1, 122655, '\p{^-	Latin}', "");
-    Expect(1, 122655, '\P{-	Latin}', "");
-    Expect(0, 122655, '\P{^-	Latin}', "");
-    Error('\p{-Is_Latin:=}');
-    Error('\P{-Is_Latin:=}');
-    Expect(1, 122654, '\p{islatin}', "");
-    Expect(0, 122654, '\p{^islatin}', "");
-    Expect(0, 122654, '\P{islatin}', "");
-    Expect(1, 122654, '\P{^islatin}', "");
-    Expect(0, 122655, '\p{islatin}', "");
-    Expect(1, 122655, '\p{^islatin}', "");
-    Expect(1, 122655, '\P{islatin}', "");
-    Expect(0, 122655, '\P{^islatin}', "");
-    Expect(1, 122654, '\p{  Is_latin}', "");
-    Expect(0, 122654, '\p{^  Is_latin}', "");
-    Expect(0, 122654, '\P{  Is_latin}', "");
-    Expect(1, 122654, '\P{^  Is_latin}', "");
-    Expect(0, 122655, '\p{  Is_latin}', "");
-    Expect(1, 122655, '\p{^  Is_latin}', "");
-    Expect(1, 122655, '\P{  Is_latin}', "");
-    Expect(0, 122655, '\P{^  Is_latin}', "");
-    Error('\p{ _LATN:=}');
-    Error('\P{ _LATN:=}');
-    Expect(1, 122654, '\p{latn}', "");
-    Expect(0, 122654, '\p{^latn}', "");
-    Expect(0, 122654, '\P{latn}', "");
-    Expect(1, 122654, '\P{^latn}', "");
-    Expect(0, 122655, '\p{latn}', "");
-    Expect(1, 122655, '\p{^latn}', "");
-    Expect(1, 122655, '\P{latn}', "");
-    Expect(0, 122655, '\P{^latn}', "");
-    Expect(1, 122654, '\p{	Latn}', "");
-    Expect(0, 122654, '\p{^	Latn}', "");
-    Expect(0, 122654, '\P{	Latn}', "");
-    Expect(1, 122654, '\P{^	Latn}', "");
-    Expect(0, 122655, '\p{	Latn}', "");
-    Expect(1, 122655, '\p{^	Latn}', "");
-    Expect(1, 122655, '\P{	Latn}', "");
-    Expect(0, 122655, '\P{^	Latn}', "");
-    Error('\p{/a/_Is_Latn}');
-    Error('\P{/a/_Is_Latn}');
-    Expect(1, 122654, '\p{islatn}', "");
-    Expect(0, 122654, '\p{^islatn}', "");
-    Expect(0, 122654, '\P{islatn}', "");
-    Expect(1, 122654, '\P{^islatn}', "");
-    Expect(0, 122655, '\p{islatn}', "");
-    Expect(1, 122655, '\p{^islatn}', "");
-    Expect(1, 122655, '\P{islatn}', "");
-    Expect(0, 122655, '\P{^islatn}', "");
-    Expect(1, 122654, '\p{--Is_Latn}', "");
-    Expect(0, 122654, '\p{^--Is_Latn}', "");
-    Expect(0, 122654, '\P{--Is_Latn}', "");
-    Expect(1, 122654, '\P{^--Is_Latn}', "");
-    Expect(0, 122655, '\p{--Is_Latn}', "");
-    Expect(1, 122655, '\p{^--Is_Latn}', "");
-    Expect(1, 122655, '\P{--Is_Latn}', "");
-    Expect(0, 122655, '\P{^--Is_Latn}', "");
-    Error('\p{/a/__latin_1_SUPPLEMENT}');
-    Error('\P{/a/__latin_1_SUPPLEMENT}');
+    Expect(1, 3807, '\p{	_IS_laoo}', "");
+    Expect(0, 3807, '\p{^	_IS_laoo}', "");
+    Expect(0, 3807, '\P{	_IS_laoo}', "");
+    Expect(1, 3807, '\P{^	_IS_laoo}', "");
+    Expect(0, 3808, '\p{	_IS_laoo}', "");
+    Expect(1, 3808, '\p{^	_IS_laoo}', "");
+    Expect(1, 3808, '\P{	_IS_laoo}', "");
+    Expect(0, 3808, '\P{^	_IS_laoo}', "");
+    Error('\p{_	Latin:=}');
+    Error('\P{_	Latin:=}');
+    Expect(1, 122666, '\p{latin}', "");
+    Expect(0, 122666, '\p{^latin}', "");
+    Expect(0, 122666, '\P{latin}', "");
+    Expect(1, 122666, '\P{^latin}', "");
+    Expect(0, 122667, '\p{latin}', "");
+    Expect(1, 122667, '\p{^latin}', "");
+    Expect(1, 122667, '\P{latin}', "");
+    Expect(0, 122667, '\P{^latin}', "");
+    Expect(1, 122666, '\p{ Latin}', "");
+    Expect(0, 122666, '\p{^ Latin}', "");
+    Expect(0, 122666, '\P{ Latin}', "");
+    Expect(1, 122666, '\P{^ Latin}', "");
+    Expect(0, 122667, '\p{ Latin}', "");
+    Expect(1, 122667, '\p{^ Latin}', "");
+    Expect(1, 122667, '\P{ Latin}', "");
+    Expect(0, 122667, '\P{^ Latin}', "");
+    Error('\p{ IS_Latin/a/}');
+    Error('\P{ IS_Latin/a/}');
+    Expect(1, 122666, '\p{islatin}', "");
+    Expect(0, 122666, '\p{^islatin}', "");
+    Expect(0, 122666, '\P{islatin}', "");
+    Expect(1, 122666, '\P{^islatin}', "");
+    Expect(0, 122667, '\p{islatin}', "");
+    Expect(1, 122667, '\p{^islatin}', "");
+    Expect(1, 122667, '\P{islatin}', "");
+    Expect(0, 122667, '\P{^islatin}', "");
+    Expect(1, 122666, '\p{--IS_latin}', "");
+    Expect(0, 122666, '\p{^--IS_latin}', "");
+    Expect(0, 122666, '\P{--IS_latin}', "");
+    Expect(1, 122666, '\P{^--IS_latin}', "");
+    Expect(0, 122667, '\p{--IS_latin}', "");
+    Expect(1, 122667, '\p{^--IS_latin}', "");
+    Expect(1, 122667, '\P{--IS_latin}', "");
+    Expect(0, 122667, '\P{^--IS_latin}', "");
+    Error('\p{	_Latn/a/}');
+    Error('\P{	_Latn/a/}');
+    Expect(1, 122666, '\p{latn}', "");
+    Expect(0, 122666, '\p{^latn}', "");
+    Expect(0, 122666, '\P{latn}', "");
+    Expect(1, 122666, '\P{^latn}', "");
+    Expect(0, 122667, '\p{latn}', "");
+    Expect(1, 122667, '\p{^latn}', "");
+    Expect(1, 122667, '\P{latn}', "");
+    Expect(0, 122667, '\P{^latn}', "");
+    Expect(1, 122666, '\p{-_LATN}', "");
+    Expect(0, 122666, '\p{^-_LATN}', "");
+    Expect(0, 122666, '\P{-_LATN}', "");
+    Expect(1, 122666, '\P{^-_LATN}', "");
+    Expect(0, 122667, '\p{-_LATN}', "");
+    Expect(1, 122667, '\p{^-_LATN}', "");
+    Expect(1, 122667, '\P{-_LATN}', "");
+    Expect(0, 122667, '\P{^-_LATN}', "");
+    Error('\p{_ Is_Latn/a/}');
+    Error('\P{_ Is_Latn/a/}');
+    Expect(1, 122666, '\p{islatn}', "");
+    Expect(0, 122666, '\p{^islatn}', "");
+    Expect(0, 122666, '\P{islatn}', "");
+    Expect(1, 122666, '\P{^islatn}', "");
+    Expect(0, 122667, '\p{islatn}', "");
+    Expect(1, 122667, '\p{^islatn}', "");
+    Expect(1, 122667, '\P{islatn}', "");
+    Expect(0, 122667, '\P{^islatn}', "");
+    Expect(1, 122666, '\p{ _Is_Latn}', "");
+    Expect(0, 122666, '\p{^ _Is_Latn}', "");
+    Expect(0, 122666, '\P{ _Is_Latn}', "");
+    Expect(1, 122666, '\P{^ _Is_Latn}', "");
+    Expect(0, 122667, '\p{ _Is_Latn}', "");
+    Expect(1, 122667, '\p{^ _Is_Latn}', "");
+    Expect(1, 122667, '\P{ _Is_Latn}', "");
+    Expect(0, 122667, '\P{^ _Is_Latn}', "");
+    Error('\p{ 	Latin_1_Supplement/a/}');
+    Error('\P{ 	Latin_1_Supplement/a/}');
     Expect(1, 255, '\p{latin1supplement}', "");
     Expect(0, 255, '\p{^latin1supplement}', "");
     Expect(0, 255, '\P{latin1supplement}', "");
@@ -108201,16 +109337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^latin1supplement}', "");
     Expect(1, 256, '\P{latin1supplement}', "");
     Expect(0, 256, '\P{^latin1supplement}', "");
-    Expect(1, 255, '\p{ _Latin_1_Supplement}', "");
-    Expect(0, 255, '\p{^ _Latin_1_Supplement}', "");
-    Expect(0, 255, '\P{ _Latin_1_Supplement}', "");
-    Expect(1, 255, '\P{^ _Latin_1_Supplement}', "");
-    Expect(0, 256, '\p{ _Latin_1_Supplement}', "");
-    Expect(1, 256, '\p{^ _Latin_1_Supplement}', "");
-    Expect(1, 256, '\P{ _Latin_1_Supplement}', "");
-    Expect(0, 256, '\P{^ _Latin_1_Supplement}', "");
-    Error('\p{-Is_Latin_1_Supplement:=}');
-    Error('\P{-Is_Latin_1_Supplement:=}');
+    Expect(1, 255, '\p{_-LATIN_1_Supplement}', "");
+    Expect(0, 255, '\p{^_-LATIN_1_Supplement}', "");
+    Expect(0, 255, '\P{_-LATIN_1_Supplement}', "");
+    Expect(1, 255, '\P{^_-LATIN_1_Supplement}', "");
+    Expect(0, 256, '\p{_-LATIN_1_Supplement}', "");
+    Expect(1, 256, '\p{^_-LATIN_1_Supplement}', "");
+    Expect(1, 256, '\P{_-LATIN_1_Supplement}', "");
+    Expect(0, 256, '\P{^_-LATIN_1_Supplement}', "");
+    Error('\p{-	is_Latin_1_supplement/a/}');
+    Error('\P{-	is_Latin_1_supplement/a/}');
     Expect(1, 255, '\p{islatin1supplement}', "");
     Expect(0, 255, '\p{^islatin1supplement}', "");
     Expect(0, 255, '\P{islatin1supplement}', "");
@@ -108219,16 +109355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^islatin1supplement}', "");
     Expect(1, 256, '\P{islatin1supplement}', "");
     Expect(0, 256, '\P{^islatin1supplement}', "");
-    Expect(1, 255, '\p{_-IS_Latin_1_Supplement}', "");
-    Expect(0, 255, '\p{^_-IS_Latin_1_Supplement}', "");
-    Expect(0, 255, '\P{_-IS_Latin_1_Supplement}', "");
-    Expect(1, 255, '\P{^_-IS_Latin_1_Supplement}', "");
-    Expect(0, 256, '\p{_-IS_Latin_1_Supplement}', "");
-    Expect(1, 256, '\p{^_-IS_Latin_1_Supplement}', "");
-    Expect(1, 256, '\P{_-IS_Latin_1_Supplement}', "");
-    Expect(0, 256, '\P{^_-IS_Latin_1_Supplement}', "");
-    Error('\p{ /a/in_latin_1_supplement}');
-    Error('\P{ /a/in_latin_1_supplement}');
+    Expect(1, 255, '\p{ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(0, 255, '\p{^ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(0, 255, '\P{ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(1, 255, '\P{^ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(0, 256, '\p{ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(1, 256, '\p{^ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(1, 256, '\P{ _IS_Latin_1_SUPPLEMENT}', "");
+    Expect(0, 256, '\P{^ _IS_Latin_1_SUPPLEMENT}', "");
+    Error('\p{:=	 In_LATIN_1_SUPPLEMENT}');
+    Error('\P{:=	 In_LATIN_1_SUPPLEMENT}');
     Expect(1, 255, '\p{inlatin1supplement}', "");
     Expect(0, 255, '\p{^inlatin1supplement}', "");
     Expect(0, 255, '\P{inlatin1supplement}', "");
@@ -108237,16 +109373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^inlatin1supplement}', "");
     Expect(1, 256, '\P{inlatin1supplement}', "");
     Expect(0, 256, '\P{^inlatin1supplement}', "");
-    Expect(1, 255, '\p{_In_latin_1_supplement}', "");
-    Expect(0, 255, '\p{^_In_latin_1_supplement}', "");
-    Expect(0, 255, '\P{_In_latin_1_supplement}', "");
-    Expect(1, 255, '\P{^_In_latin_1_supplement}', "");
-    Expect(0, 256, '\p{_In_latin_1_supplement}', "");
-    Expect(1, 256, '\p{^_In_latin_1_supplement}', "");
-    Expect(1, 256, '\P{_In_latin_1_supplement}', "");
-    Expect(0, 256, '\P{^_In_latin_1_supplement}', "");
-    Error('\p{:=	-Latin_1_SUP}');
-    Error('\P{:=	-Latin_1_SUP}');
+    Expect(1, 255, '\p{-	in_Latin_1_supplement}', "");
+    Expect(0, 255, '\p{^-	in_Latin_1_supplement}', "");
+    Expect(0, 255, '\P{-	in_Latin_1_supplement}', "");
+    Expect(1, 255, '\P{^-	in_Latin_1_supplement}', "");
+    Expect(0, 256, '\p{-	in_Latin_1_supplement}', "");
+    Expect(1, 256, '\p{^-	in_Latin_1_supplement}', "");
+    Expect(1, 256, '\P{-	in_Latin_1_supplement}', "");
+    Expect(0, 256, '\P{^-	in_Latin_1_supplement}', "");
+    Error('\p{ Latin_1_Sup:=}');
+    Error('\P{ Latin_1_Sup:=}');
     Expect(1, 255, '\p{latin1sup}', "");
     Expect(0, 255, '\p{^latin1sup}', "");
     Expect(0, 255, '\P{latin1sup}', "");
@@ -108255,16 +109391,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^latin1sup}', "");
     Expect(1, 256, '\P{latin1sup}', "");
     Expect(0, 256, '\P{^latin1sup}', "");
-    Expect(1, 255, '\p{_ latin_1_Sup}', "");
-    Expect(0, 255, '\p{^_ latin_1_Sup}', "");
-    Expect(0, 255, '\P{_ latin_1_Sup}', "");
-    Expect(1, 255, '\P{^_ latin_1_Sup}', "");
-    Expect(0, 256, '\p{_ latin_1_Sup}', "");
-    Expect(1, 256, '\p{^_ latin_1_Sup}', "");
-    Expect(1, 256, '\P{_ latin_1_Sup}', "");
-    Expect(0, 256, '\P{^_ latin_1_Sup}', "");
-    Error('\p{	_IS_latin_1_Sup/a/}');
-    Error('\P{	_IS_latin_1_Sup/a/}');
+    Expect(1, 255, '\p{_ LATIN_1_SUP}', "");
+    Expect(0, 255, '\p{^_ LATIN_1_SUP}', "");
+    Expect(0, 255, '\P{_ LATIN_1_SUP}', "");
+    Expect(1, 255, '\P{^_ LATIN_1_SUP}', "");
+    Expect(0, 256, '\p{_ LATIN_1_SUP}', "");
+    Expect(1, 256, '\p{^_ LATIN_1_SUP}', "");
+    Expect(1, 256, '\P{_ LATIN_1_SUP}', "");
+    Expect(0, 256, '\P{^_ LATIN_1_SUP}', "");
+    Error('\p{/a/	 is_Latin_1_sup}');
+    Error('\P{/a/	 is_Latin_1_sup}');
     Expect(1, 255, '\p{islatin1sup}', "");
     Expect(0, 255, '\p{^islatin1sup}', "");
     Expect(0, 255, '\P{islatin1sup}', "");
@@ -108273,16 +109409,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^islatin1sup}', "");
     Expect(1, 256, '\P{islatin1sup}', "");
     Expect(0, 256, '\P{^islatin1sup}', "");
-    Expect(1, 255, '\p{	Is_Latin_1_Sup}', "");
-    Expect(0, 255, '\p{^	Is_Latin_1_Sup}', "");
-    Expect(0, 255, '\P{	Is_Latin_1_Sup}', "");
-    Expect(1, 255, '\P{^	Is_Latin_1_Sup}', "");
-    Expect(0, 256, '\p{	Is_Latin_1_Sup}', "");
-    Expect(1, 256, '\p{^	Is_Latin_1_Sup}', "");
-    Expect(1, 256, '\P{	Is_Latin_1_Sup}', "");
-    Expect(0, 256, '\P{^	Is_Latin_1_Sup}', "");
-    Error('\p{		IN_Latin_1_SUP/a/}');
-    Error('\P{		IN_Latin_1_SUP/a/}');
+    Expect(1, 255, '\p{Is_Latin_1_Sup}', "");
+    Expect(0, 255, '\p{^Is_Latin_1_Sup}', "");
+    Expect(0, 255, '\P{Is_Latin_1_Sup}', "");
+    Expect(1, 255, '\P{^Is_Latin_1_Sup}', "");
+    Expect(0, 256, '\p{Is_Latin_1_Sup}', "");
+    Expect(1, 256, '\p{^Is_Latin_1_Sup}', "");
+    Expect(1, 256, '\P{Is_Latin_1_Sup}', "");
+    Expect(0, 256, '\P{^Is_Latin_1_Sup}', "");
+    Error('\p{/a/	IN_latin_1_SUP}');
+    Error('\P{/a/	IN_latin_1_SUP}');
     Expect(1, 255, '\p{inlatin1sup}', "");
     Expect(0, 255, '\p{^inlatin1sup}', "");
     Expect(0, 255, '\P{inlatin1sup}', "");
@@ -108291,16 +109427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^inlatin1sup}', "");
     Expect(1, 256, '\P{inlatin1sup}', "");
     Expect(0, 256, '\P{^inlatin1sup}', "");
-    Expect(1, 255, '\p{- IN_Latin_1_sup}', "");
-    Expect(0, 255, '\p{^- IN_Latin_1_sup}', "");
-    Expect(0, 255, '\P{- IN_Latin_1_sup}', "");
-    Expect(1, 255, '\P{^- IN_Latin_1_sup}', "");
-    Expect(0, 256, '\p{- IN_Latin_1_sup}', "");
-    Expect(1, 256, '\p{^- IN_Latin_1_sup}', "");
-    Expect(1, 256, '\P{- IN_Latin_1_sup}', "");
-    Expect(0, 256, '\P{^- IN_Latin_1_sup}', "");
-    Error('\p{/a/ Latin_1}');
-    Error('\P{/a/ Latin_1}');
+    Expect(1, 255, '\p{In_Latin_1_SUP}', "");
+    Expect(0, 255, '\p{^In_Latin_1_SUP}', "");
+    Expect(0, 255, '\P{In_Latin_1_SUP}', "");
+    Expect(1, 255, '\P{^In_Latin_1_SUP}', "");
+    Expect(0, 256, '\p{In_Latin_1_SUP}', "");
+    Expect(1, 256, '\p{^In_Latin_1_SUP}', "");
+    Expect(1, 256, '\P{In_Latin_1_SUP}', "");
+    Expect(0, 256, '\P{^In_Latin_1_SUP}', "");
+    Error('\p{:=Latin_1}');
+    Error('\P{:=Latin_1}');
     Expect(1, 255, '\p{latin1}', "");
     Expect(0, 255, '\p{^latin1}', "");
     Expect(0, 255, '\P{latin1}', "");
@@ -108309,16 +109445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^latin1}', "");
     Expect(1, 256, '\P{latin1}', "");
     Expect(0, 256, '\P{^latin1}', "");
-    Expect(1, 255, '\p{	Latin_1}', "");
-    Expect(0, 255, '\p{^	Latin_1}', "");
-    Expect(0, 255, '\P{	Latin_1}', "");
-    Expect(1, 255, '\P{^	Latin_1}', "");
-    Expect(0, 256, '\p{	Latin_1}', "");
-    Expect(1, 256, '\p{^	Latin_1}', "");
-    Expect(1, 256, '\P{	Latin_1}', "");
-    Expect(0, 256, '\P{^	Latin_1}', "");
-    Error('\p{/a/__is_latin_1}');
-    Error('\P{/a/__is_latin_1}');
+    Expect(1, 255, '\p{_ Latin_1}', "");
+    Expect(0, 255, '\p{^_ Latin_1}', "");
+    Expect(0, 255, '\P{_ Latin_1}', "");
+    Expect(1, 255, '\P{^_ Latin_1}', "");
+    Expect(0, 256, '\p{_ Latin_1}', "");
+    Expect(1, 256, '\p{^_ Latin_1}', "");
+    Expect(1, 256, '\P{_ Latin_1}', "");
+    Expect(0, 256, '\P{^_ Latin_1}', "");
+    Error('\p{ 	is_LATIN_1/a/}');
+    Error('\P{ 	is_LATIN_1/a/}');
     Expect(1, 255, '\p{islatin1}', "");
     Expect(0, 255, '\p{^islatin1}', "");
     Expect(0, 255, '\P{islatin1}', "");
@@ -108327,16 +109463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^islatin1}', "");
     Expect(1, 256, '\P{islatin1}', "");
     Expect(0, 256, '\P{^islatin1}', "");
-    Expect(1, 255, '\p{ 	IS_Latin_1}', "");
-    Expect(0, 255, '\p{^ 	IS_Latin_1}', "");
-    Expect(0, 255, '\P{ 	IS_Latin_1}', "");
-    Expect(1, 255, '\P{^ 	IS_Latin_1}', "");
-    Expect(0, 256, '\p{ 	IS_Latin_1}', "");
-    Expect(1, 256, '\p{^ 	IS_Latin_1}', "");
-    Expect(1, 256, '\P{ 	IS_Latin_1}', "");
-    Expect(0, 256, '\P{^ 	IS_Latin_1}', "");
-    Error('\p{/a/	In_Latin_1}');
-    Error('\P{/a/	In_Latin_1}');
+    Expect(1, 255, '\p{_	Is_latin_1}', "");
+    Expect(0, 255, '\p{^_	Is_latin_1}', "");
+    Expect(0, 255, '\P{_	Is_latin_1}', "");
+    Expect(1, 255, '\P{^_	Is_latin_1}', "");
+    Expect(0, 256, '\p{_	Is_latin_1}', "");
+    Expect(1, 256, '\p{^_	Is_latin_1}', "");
+    Expect(1, 256, '\P{_	Is_latin_1}', "");
+    Expect(0, 256, '\P{^_	Is_latin_1}', "");
+    Error('\p{:=In_Latin_1}');
+    Error('\P{:=In_Latin_1}');
     Expect(1, 255, '\p{inlatin1}', "");
     Expect(0, 255, '\p{^inlatin1}', "");
     Expect(0, 255, '\P{inlatin1}', "");
@@ -108345,16 +109481,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 256, '\p{^inlatin1}', "");
     Expect(1, 256, '\P{inlatin1}', "");
     Expect(0, 256, '\P{^inlatin1}', "");
-    Expect(1, 255, '\p{  In_latin_1}', "");
-    Expect(0, 255, '\p{^  In_latin_1}', "");
-    Expect(0, 255, '\P{  In_latin_1}', "");
-    Expect(1, 255, '\P{^  In_latin_1}', "");
-    Expect(0, 256, '\p{  In_latin_1}', "");
-    Expect(1, 256, '\p{^  In_latin_1}', "");
-    Expect(1, 256, '\P{  In_latin_1}', "");
-    Expect(0, 256, '\P{^  In_latin_1}', "");
-    Error('\p{	Latin_Extended_a/a/}');
-    Error('\P{	Latin_Extended_a/a/}');
+    Expect(1, 255, '\p{	In_latin_1}', "");
+    Expect(0, 255, '\p{^	In_latin_1}', "");
+    Expect(0, 255, '\P{	In_latin_1}', "");
+    Expect(1, 255, '\P{^	In_latin_1}', "");
+    Expect(0, 256, '\p{	In_latin_1}', "");
+    Expect(1, 256, '\p{^	In_latin_1}', "");
+    Expect(1, 256, '\P{	In_latin_1}', "");
+    Expect(0, 256, '\P{^	In_latin_1}', "");
+    Error('\p{__Latin_Extended_A:=}');
+    Error('\P{__Latin_Extended_A:=}');
     Expect(1, 383, '\p{latinextendeda}', "");
     Expect(0, 383, '\p{^latinextendeda}', "");
     Expect(0, 383, '\P{latinextendeda}', "");
@@ -108363,16 +109499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 384, '\p{^latinextendeda}', "");
     Expect(1, 384, '\P{latinextendeda}', "");
     Expect(0, 384, '\P{^latinextendeda}', "");
-    Expect(1, 383, '\p{_ Latin_Extended_A}', "");
-    Expect(0, 383, '\p{^_ Latin_Extended_A}', "");
-    Expect(0, 383, '\P{_ Latin_Extended_A}', "");
-    Expect(1, 383, '\P{^_ Latin_Extended_A}', "");
-    Expect(0, 384, '\p{_ Latin_Extended_A}', "");
-    Expect(1, 384, '\p{^_ Latin_Extended_A}', "");
-    Expect(1, 384, '\P{_ Latin_Extended_A}', "");
-    Expect(0, 384, '\P{^_ Latin_Extended_A}', "");
-    Error('\p{:=Is_latin_extended_A}');
-    Error('\P{:=Is_latin_extended_A}');
+    Expect(1, 383, '\p{-	Latin_extended_A}', "");
+    Expect(0, 383, '\p{^-	Latin_extended_A}', "");
+    Expect(0, 383, '\P{-	Latin_extended_A}', "");
+    Expect(1, 383, '\P{^-	Latin_extended_A}', "");
+    Expect(0, 384, '\p{-	Latin_extended_A}', "");
+    Expect(1, 384, '\p{^-	Latin_extended_A}', "");
+    Expect(1, 384, '\P{-	Latin_extended_A}', "");
+    Expect(0, 384, '\P{^-	Latin_extended_A}', "");
+    Error('\p{- Is_Latin_extended_A/a/}');
+    Error('\P{- Is_Latin_extended_A/a/}');
     Expect(1, 383, '\p{islatinextendeda}', "");
     Expect(0, 383, '\p{^islatinextendeda}', "");
     Expect(0, 383, '\P{islatinextendeda}', "");
@@ -108389,8 +109525,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 384, '\p{^ -is_LATIN_Extended_A}', "");
     Expect(1, 384, '\P{ -is_LATIN_Extended_A}', "");
     Expect(0, 384, '\P{^ -is_LATIN_Extended_A}', "");
-    Error('\p{	in_latin_Extended_A:=}');
-    Error('\P{	in_latin_Extended_A:=}');
+    Error('\p{ in_Latin_Extended_A/a/}');
+    Error('\P{ in_Latin_Extended_A/a/}');
     Expect(1, 383, '\p{inlatinextendeda}', "");
     Expect(0, 383, '\p{^inlatinextendeda}', "");
     Expect(0, 383, '\P{inlatinextendeda}', "");
@@ -108399,16 +109535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 384, '\p{^inlatinextendeda}', "");
     Expect(1, 384, '\P{inlatinextendeda}', "");
     Expect(0, 384, '\P{^inlatinextendeda}', "");
-    Expect(1, 383, '\p{- in_LATIN_EXTENDED_A}', "");
-    Expect(0, 383, '\p{^- in_LATIN_EXTENDED_A}', "");
-    Expect(0, 383, '\P{- in_LATIN_EXTENDED_A}', "");
-    Expect(1, 383, '\P{^- in_LATIN_EXTENDED_A}', "");
-    Expect(0, 384, '\p{- in_LATIN_EXTENDED_A}', "");
-    Expect(1, 384, '\p{^- in_LATIN_EXTENDED_A}', "");
-    Expect(1, 384, '\P{- in_LATIN_EXTENDED_A}', "");
-    Expect(0, 384, '\P{^- in_LATIN_EXTENDED_A}', "");
-    Error('\p{/a/-	Latin_EXT_A}');
-    Error('\P{/a/-	Latin_EXT_A}');
+    Expect(1, 383, '\p{ 	In_latin_Extended_A}', "");
+    Expect(0, 383, '\p{^ 	In_latin_Extended_A}', "");
+    Expect(0, 383, '\P{ 	In_latin_Extended_A}', "");
+    Expect(1, 383, '\P{^ 	In_latin_Extended_A}', "");
+    Expect(0, 384, '\p{ 	In_latin_Extended_A}', "");
+    Expect(1, 384, '\p{^ 	In_latin_Extended_A}', "");
+    Expect(1, 384, '\P{ 	In_latin_Extended_A}', "");
+    Expect(0, 384, '\P{^ 	In_latin_Extended_A}', "");
+    Error('\p{/a/ 	latin_Ext_a}');
+    Error('\P{/a/ 	latin_Ext_a}');
     Expect(1, 383, '\p{latinexta}', "");
     Expect(0, 383, '\p{^latinexta}', "");
     Expect(0, 383, '\P{latinexta}', "");
@@ -108417,16 +109553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 384, '\p{^latinexta}', "");
     Expect(1, 384, '\P{latinexta}', "");
     Expect(0, 384, '\P{^latinexta}', "");
-    Expect(1, 383, '\p{-	LATIN_Ext_A}', "");
-    Expect(0, 383, '\p{^-	LATIN_Ext_A}', "");
-    Expect(0, 383, '\P{-	LATIN_Ext_A}', "");
-    Expect(1, 383, '\P{^-	LATIN_Ext_A}', "");
-    Expect(0, 384, '\p{-	LATIN_Ext_A}', "");
-    Expect(1, 384, '\p{^-	LATIN_Ext_A}', "");
-    Expect(1, 384, '\P{-	LATIN_Ext_A}', "");
-    Expect(0, 384, '\P{^-	LATIN_Ext_A}', "");
-    Error('\p{:=-	Is_Latin_Ext_A}');
-    Error('\P{:=-	Is_Latin_Ext_A}');
+    Expect(1, 383, '\p{--Latin_Ext_a}', "");
+    Expect(0, 383, '\p{^--Latin_Ext_a}', "");
+    Expect(0, 383, '\P{--Latin_Ext_a}', "");
+    Expect(1, 383, '\P{^--Latin_Ext_a}', "");
+    Expect(0, 384, '\p{--Latin_Ext_a}', "");
+    Expect(1, 384, '\p{^--Latin_Ext_a}', "");
+    Expect(1, 384, '\P{--Latin_Ext_a}', "");
+    Expect(0, 384, '\P{^--Latin_Ext_a}', "");
+    Error('\p{/a/__Is_latin_Ext_A}');
+    Error('\P{/a/__Is_latin_Ext_A}');
     Expect(1, 383, '\p{islatinexta}', "");
     Expect(0, 383, '\p{^islatinexta}', "");
     Expect(0, 383, '\P{islatinexta}', "");
@@ -108435,16 +109571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 384, '\p{^islatinexta}', "");
     Expect(1, 384, '\P{islatinexta}', "");
     Expect(0, 384, '\P{^islatinexta}', "");
-    Expect(1, 383, '\p{ _is_Latin_Ext_a}', "");
-    Expect(0, 383, '\p{^ _is_Latin_Ext_a}', "");
-    Expect(0, 383, '\P{ _is_Latin_Ext_a}', "");
-    Expect(1, 383, '\P{^ _is_Latin_Ext_a}', "");
-    Expect(0, 384, '\p{ _is_Latin_Ext_a}', "");
-    Expect(1, 384, '\p{^ _is_Latin_Ext_a}', "");
-    Expect(1, 384, '\P{ _is_Latin_Ext_a}', "");
-    Expect(0, 384, '\P{^ _is_Latin_Ext_a}', "");
-    Error('\p{:=-	in_Latin_Ext_A}');
-    Error('\P{:=-	in_Latin_Ext_A}');
+    Expect(1, 383, '\p{_ IS_latin_EXT_A}', "");
+    Expect(0, 383, '\p{^_ IS_latin_EXT_A}', "");
+    Expect(0, 383, '\P{_ IS_latin_EXT_A}', "");
+    Expect(1, 383, '\P{^_ IS_latin_EXT_A}', "");
+    Expect(0, 384, '\p{_ IS_latin_EXT_A}', "");
+    Expect(1, 384, '\p{^_ IS_latin_EXT_A}', "");
+    Expect(1, 384, '\P{_ IS_latin_EXT_A}', "");
+    Expect(0, 384, '\P{^_ IS_latin_EXT_A}', "");
+    Error('\p{:= IN_Latin_Ext_A}');
+    Error('\P{:= IN_Latin_Ext_A}');
     Expect(1, 383, '\p{inlatinexta}', "");
     Expect(0, 383, '\p{^inlatinexta}', "");
     Expect(0, 383, '\P{inlatinexta}', "");
@@ -108453,16 +109589,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 384, '\p{^inlatinexta}', "");
     Expect(1, 384, '\P{inlatinexta}', "");
     Expect(0, 384, '\P{^inlatinexta}', "");
-    Expect(1, 383, '\p{ IN_latin_ext_A}', "");
-    Expect(0, 383, '\p{^ IN_latin_ext_A}', "");
-    Expect(0, 383, '\P{ IN_latin_ext_A}', "");
-    Expect(1, 383, '\P{^ IN_latin_ext_A}', "");
-    Expect(0, 384, '\p{ IN_latin_ext_A}', "");
-    Expect(1, 384, '\p{^ IN_latin_ext_A}', "");
-    Expect(1, 384, '\P{ IN_latin_ext_A}', "");
-    Expect(0, 384, '\P{^ IN_latin_ext_A}', "");
-    Error('\p{ 	Latin_Extended_Additional:=}');
-    Error('\P{ 	Latin_Extended_Additional:=}');
+    Expect(1, 383, '\p{		in_Latin_Ext_A}', "");
+    Expect(0, 383, '\p{^		in_Latin_Ext_A}', "");
+    Expect(0, 383, '\P{		in_Latin_Ext_A}', "");
+    Expect(1, 383, '\P{^		in_Latin_Ext_A}', "");
+    Expect(0, 384, '\p{		in_Latin_Ext_A}', "");
+    Expect(1, 384, '\p{^		in_Latin_Ext_A}', "");
+    Expect(1, 384, '\P{		in_Latin_Ext_A}', "");
+    Expect(0, 384, '\P{^		in_Latin_Ext_A}', "");
+    Error('\p{	/a/Latin_Extended_ADDITIONAL}');
+    Error('\P{	/a/Latin_Extended_ADDITIONAL}');
     Expect(1, 7935, '\p{latinextendedadditional}', "");
     Expect(0, 7935, '\p{^latinextendedadditional}', "");
     Expect(0, 7935, '\P{latinextendedadditional}', "");
@@ -108471,16 +109607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7936, '\p{^latinextendedadditional}', "");
     Expect(1, 7936, '\P{latinextendedadditional}', "");
     Expect(0, 7936, '\P{^latinextendedadditional}', "");
-    Expect(1, 7935, '\p{ Latin_EXTENDED_additional}', "");
-    Expect(0, 7935, '\p{^ Latin_EXTENDED_additional}', "");
-    Expect(0, 7935, '\P{ Latin_EXTENDED_additional}', "");
-    Expect(1, 7935, '\P{^ Latin_EXTENDED_additional}', "");
-    Expect(0, 7936, '\p{ Latin_EXTENDED_additional}', "");
-    Expect(1, 7936, '\p{^ Latin_EXTENDED_additional}', "");
-    Expect(1, 7936, '\P{ Latin_EXTENDED_additional}', "");
-    Expect(0, 7936, '\P{^ Latin_EXTENDED_additional}', "");
-    Error('\p{/a/		is_LATIN_Extended_additional}');
-    Error('\P{/a/		is_LATIN_Extended_additional}');
+    Expect(1, 7935, '\p{ Latin_Extended_additional}', "");
+    Expect(0, 7935, '\p{^ Latin_Extended_additional}', "");
+    Expect(0, 7935, '\P{ Latin_Extended_additional}', "");
+    Expect(1, 7935, '\P{^ Latin_Extended_additional}', "");
+    Expect(0, 7936, '\p{ Latin_Extended_additional}', "");
+    Expect(1, 7936, '\p{^ Latin_Extended_additional}', "");
+    Expect(1, 7936, '\P{ Latin_Extended_additional}', "");
+    Expect(0, 7936, '\P{^ Latin_Extended_additional}', "");
+    Error('\p{-	is_Latin_Extended_Additional:=}');
+    Error('\P{-	is_Latin_Extended_Additional:=}');
     Expect(1, 7935, '\p{islatinextendedadditional}', "");
     Expect(0, 7935, '\p{^islatinextendedadditional}', "");
     Expect(0, 7935, '\P{islatinextendedadditional}', "");
@@ -108489,16 +109625,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7936, '\p{^islatinextendedadditional}', "");
     Expect(1, 7936, '\P{islatinextendedadditional}', "");
     Expect(0, 7936, '\P{^islatinextendedadditional}', "");
-    Expect(1, 7935, '\p{  IS_Latin_Extended_additional}', "");
-    Expect(0, 7935, '\p{^  IS_Latin_Extended_additional}', "");
-    Expect(0, 7935, '\P{  IS_Latin_Extended_additional}', "");
-    Expect(1, 7935, '\P{^  IS_Latin_Extended_additional}', "");
-    Expect(0, 7936, '\p{  IS_Latin_Extended_additional}', "");
-    Expect(1, 7936, '\p{^  IS_Latin_Extended_additional}', "");
-    Expect(1, 7936, '\P{  IS_Latin_Extended_additional}', "");
-    Expect(0, 7936, '\P{^  IS_Latin_Extended_additional}', "");
-    Error('\p{_ In_latin_Extended_ADDITIONAL/a/}');
-    Error('\P{_ In_latin_Extended_ADDITIONAL/a/}');
+    Expect(1, 7935, '\p{-Is_LATIN_extended_Additional}', "");
+    Expect(0, 7935, '\p{^-Is_LATIN_extended_Additional}', "");
+    Expect(0, 7935, '\P{-Is_LATIN_extended_Additional}', "");
+    Expect(1, 7935, '\P{^-Is_LATIN_extended_Additional}', "");
+    Expect(0, 7936, '\p{-Is_LATIN_extended_Additional}', "");
+    Expect(1, 7936, '\p{^-Is_LATIN_extended_Additional}', "");
+    Expect(1, 7936, '\P{-Is_LATIN_extended_Additional}', "");
+    Expect(0, 7936, '\P{^-Is_LATIN_extended_Additional}', "");
+    Error('\p{/a/--In_Latin_Extended_additional}');
+    Error('\P{/a/--In_Latin_Extended_additional}');
     Expect(1, 7935, '\p{inlatinextendedadditional}', "");
     Expect(0, 7935, '\p{^inlatinextendedadditional}', "");
     Expect(0, 7935, '\P{inlatinextendedadditional}', "");
@@ -108507,16 +109643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7936, '\p{^inlatinextendedadditional}', "");
     Expect(1, 7936, '\P{inlatinextendedadditional}', "");
     Expect(0, 7936, '\P{^inlatinextendedadditional}', "");
-    Expect(1, 7935, '\p{ _In_latin_extended_Additional}', "");
-    Expect(0, 7935, '\p{^ _In_latin_extended_Additional}', "");
-    Expect(0, 7935, '\P{ _In_latin_extended_Additional}', "");
-    Expect(1, 7935, '\P{^ _In_latin_extended_Additional}', "");
-    Expect(0, 7936, '\p{ _In_latin_extended_Additional}', "");
-    Expect(1, 7936, '\p{^ _In_latin_extended_Additional}', "");
-    Expect(1, 7936, '\P{ _In_latin_extended_Additional}', "");
-    Expect(0, 7936, '\P{^ _In_latin_extended_Additional}', "");
-    Error('\p{ latin_EXT_additional:=}');
-    Error('\P{ latin_EXT_additional:=}');
+    Expect(1, 7935, '\p{__IN_Latin_Extended_Additional}', "");
+    Expect(0, 7935, '\p{^__IN_Latin_Extended_Additional}', "");
+    Expect(0, 7935, '\P{__IN_Latin_Extended_Additional}', "");
+    Expect(1, 7935, '\P{^__IN_Latin_Extended_Additional}', "");
+    Expect(0, 7936, '\p{__IN_Latin_Extended_Additional}', "");
+    Expect(1, 7936, '\p{^__IN_Latin_Extended_Additional}', "");
+    Expect(1, 7936, '\P{__IN_Latin_Extended_Additional}', "");
+    Expect(0, 7936, '\P{^__IN_Latin_Extended_Additional}', "");
+    Error('\p{		LATIN_Ext_Additional/a/}');
+    Error('\P{		LATIN_Ext_Additional/a/}');
     Expect(1, 7935, '\p{latinextadditional}', "");
     Expect(0, 7935, '\p{^latinextadditional}', "");
     Expect(0, 7935, '\P{latinextadditional}', "");
@@ -108525,16 +109661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7936, '\p{^latinextadditional}', "");
     Expect(1, 7936, '\P{latinextadditional}', "");
     Expect(0, 7936, '\P{^latinextadditional}', "");
-    Expect(1, 7935, '\p{		Latin_ext_ADDITIONAL}', "");
-    Expect(0, 7935, '\p{^		Latin_ext_ADDITIONAL}', "");
-    Expect(0, 7935, '\P{		Latin_ext_ADDITIONAL}', "");
-    Expect(1, 7935, '\P{^		Latin_ext_ADDITIONAL}', "");
-    Expect(0, 7936, '\p{		Latin_ext_ADDITIONAL}', "");
-    Expect(1, 7936, '\p{^		Latin_ext_ADDITIONAL}', "");
-    Expect(1, 7936, '\P{		Latin_ext_ADDITIONAL}', "");
-    Expect(0, 7936, '\P{^		Latin_ext_ADDITIONAL}', "");
-    Error('\p{ 	Is_latin_Ext_additional/a/}');
-    Error('\P{ 	Is_latin_Ext_additional/a/}');
+    Expect(1, 7935, '\p{	LATIN_ext_additional}', "");
+    Expect(0, 7935, '\p{^	LATIN_ext_additional}', "");
+    Expect(0, 7935, '\P{	LATIN_ext_additional}', "");
+    Expect(1, 7935, '\P{^	LATIN_ext_additional}', "");
+    Expect(0, 7936, '\p{	LATIN_ext_additional}', "");
+    Expect(1, 7936, '\p{^	LATIN_ext_additional}', "");
+    Expect(1, 7936, '\P{	LATIN_ext_additional}', "");
+    Expect(0, 7936, '\P{^	LATIN_ext_additional}', "");
+    Error('\p{/a/		Is_LATIN_EXT_Additional}');
+    Error('\P{/a/		Is_LATIN_EXT_Additional}');
     Expect(1, 7935, '\p{islatinextadditional}', "");
     Expect(0, 7935, '\p{^islatinextadditional}', "");
     Expect(0, 7935, '\P{islatinextadditional}', "");
@@ -108543,16 +109679,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7936, '\p{^islatinextadditional}', "");
     Expect(1, 7936, '\P{islatinextadditional}', "");
     Expect(0, 7936, '\P{^islatinextadditional}', "");
-    Expect(1, 7935, '\p{ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(0, 7935, '\p{^ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(0, 7935, '\P{ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(1, 7935, '\P{^ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(0, 7936, '\p{ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(1, 7936, '\p{^ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(1, 7936, '\P{ Is_Latin_Ext_ADDITIONAL}', "");
-    Expect(0, 7936, '\P{^ Is_Latin_Ext_ADDITIONAL}', "");
-    Error('\p{_-IN_latin_ext_Additional:=}');
-    Error('\P{_-IN_latin_ext_Additional:=}');
+    Expect(1, 7935, '\p{  Is_Latin_EXT_Additional}', "");
+    Expect(0, 7935, '\p{^  Is_Latin_EXT_Additional}', "");
+    Expect(0, 7935, '\P{  Is_Latin_EXT_Additional}', "");
+    Expect(1, 7935, '\P{^  Is_Latin_EXT_Additional}', "");
+    Expect(0, 7936, '\p{  Is_Latin_EXT_Additional}', "");
+    Expect(1, 7936, '\p{^  Is_Latin_EXT_Additional}', "");
+    Expect(1, 7936, '\P{  Is_Latin_EXT_Additional}', "");
+    Expect(0, 7936, '\P{^  Is_Latin_EXT_Additional}', "");
+    Error('\p{  in_LATIN_Ext_additional:=}');
+    Error('\P{  in_LATIN_Ext_additional:=}');
     Expect(1, 7935, '\p{inlatinextadditional}', "");
     Expect(0, 7935, '\p{^inlatinextadditional}', "");
     Expect(0, 7935, '\P{inlatinextadditional}', "");
@@ -108561,16 +109697,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7936, '\p{^inlatinextadditional}', "");
     Expect(1, 7936, '\P{inlatinextadditional}', "");
     Expect(0, 7936, '\P{^inlatinextadditional}', "");
-    Expect(1, 7935, '\p{ -IN_Latin_Ext_Additional}', "");
-    Expect(0, 7935, '\p{^ -IN_Latin_Ext_Additional}', "");
-    Expect(0, 7935, '\P{ -IN_Latin_Ext_Additional}', "");
-    Expect(1, 7935, '\P{^ -IN_Latin_Ext_Additional}', "");
-    Expect(0, 7936, '\p{ -IN_Latin_Ext_Additional}', "");
-    Expect(1, 7936, '\p{^ -IN_Latin_Ext_Additional}', "");
-    Expect(1, 7936, '\P{ -IN_Latin_Ext_Additional}', "");
-    Expect(0, 7936, '\P{^ -IN_Latin_Ext_Additional}', "");
-    Error('\p{ -latin_Extended_B/a/}');
-    Error('\P{ -latin_Extended_B/a/}');
+    Expect(1, 7935, '\p{_In_latin_Ext_Additional}', "");
+    Expect(0, 7935, '\p{^_In_latin_Ext_Additional}', "");
+    Expect(0, 7935, '\P{_In_latin_Ext_Additional}', "");
+    Expect(1, 7935, '\P{^_In_latin_Ext_Additional}', "");
+    Expect(0, 7936, '\p{_In_latin_Ext_Additional}', "");
+    Expect(1, 7936, '\p{^_In_latin_Ext_Additional}', "");
+    Expect(1, 7936, '\P{_In_latin_Ext_Additional}', "");
+    Expect(0, 7936, '\P{^_In_latin_Ext_Additional}', "");
+    Error('\p{ 	latin_Extended_B:=}');
+    Error('\P{ 	latin_Extended_B:=}');
     Expect(1, 591, '\p{latinextendedb}', "");
     Expect(0, 591, '\p{^latinextendedb}', "");
     Expect(0, 591, '\P{latinextendedb}', "");
@@ -108579,16 +109715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 592, '\p{^latinextendedb}', "");
     Expect(1, 592, '\P{latinextendedb}', "");
     Expect(0, 592, '\P{^latinextendedb}', "");
-    Expect(1, 591, '\p{-	LATIN_Extended_B}', "");
-    Expect(0, 591, '\p{^-	LATIN_Extended_B}', "");
-    Expect(0, 591, '\P{-	LATIN_Extended_B}', "");
-    Expect(1, 591, '\P{^-	LATIN_Extended_B}', "");
-    Expect(0, 592, '\p{-	LATIN_Extended_B}', "");
-    Expect(1, 592, '\p{^-	LATIN_Extended_B}', "");
-    Expect(1, 592, '\P{-	LATIN_Extended_B}', "");
-    Expect(0, 592, '\P{^-	LATIN_Extended_B}', "");
-    Error('\p{Is_Latin_EXTENDED_B/a/}');
-    Error('\P{Is_Latin_EXTENDED_B/a/}');
+    Expect(1, 591, '\p{	_Latin_Extended_b}', "");
+    Expect(0, 591, '\p{^	_Latin_Extended_b}', "");
+    Expect(0, 591, '\P{	_Latin_Extended_b}', "");
+    Expect(1, 591, '\P{^	_Latin_Extended_b}', "");
+    Expect(0, 592, '\p{	_Latin_Extended_b}', "");
+    Expect(1, 592, '\p{^	_Latin_Extended_b}', "");
+    Expect(1, 592, '\P{	_Latin_Extended_b}', "");
+    Expect(0, 592, '\P{^	_Latin_Extended_b}', "");
+    Error('\p{:=		is_Latin_extended_b}');
+    Error('\P{:=		is_Latin_extended_b}');
     Expect(1, 591, '\p{islatinextendedb}', "");
     Expect(0, 591, '\p{^islatinextendedb}', "");
     Expect(0, 591, '\P{islatinextendedb}', "");
@@ -108597,16 +109733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 592, '\p{^islatinextendedb}', "");
     Expect(1, 592, '\P{islatinextendedb}', "");
     Expect(0, 592, '\P{^islatinextendedb}', "");
-    Expect(1, 591, '\p{_-IS_latin_Extended_B}', "");
-    Expect(0, 591, '\p{^_-IS_latin_Extended_B}', "");
-    Expect(0, 591, '\P{_-IS_latin_Extended_B}', "");
-    Expect(1, 591, '\P{^_-IS_latin_Extended_B}', "");
-    Expect(0, 592, '\p{_-IS_latin_Extended_B}', "");
-    Expect(1, 592, '\p{^_-IS_latin_Extended_B}', "");
-    Expect(1, 592, '\P{_-IS_latin_Extended_B}', "");
-    Expect(0, 592, '\P{^_-IS_latin_Extended_B}', "");
-    Error('\p{/a/In_Latin_Extended_b}');
-    Error('\P{/a/In_Latin_Extended_b}');
+    Expect(1, 591, '\p{	Is_Latin_EXTENDED_B}', "");
+    Expect(0, 591, '\p{^	Is_Latin_EXTENDED_B}', "");
+    Expect(0, 591, '\P{	Is_Latin_EXTENDED_B}', "");
+    Expect(1, 591, '\P{^	Is_Latin_EXTENDED_B}', "");
+    Expect(0, 592, '\p{	Is_Latin_EXTENDED_B}', "");
+    Expect(1, 592, '\p{^	Is_Latin_EXTENDED_B}', "");
+    Expect(1, 592, '\P{	Is_Latin_EXTENDED_B}', "");
+    Expect(0, 592, '\P{^	Is_Latin_EXTENDED_B}', "");
+    Error('\p{-/a/in_Latin_EXTENDED_B}');
+    Error('\P{-/a/in_Latin_EXTENDED_B}');
     Expect(1, 591, '\p{inlatinextendedb}', "");
     Expect(0, 591, '\p{^inlatinextendedb}', "");
     Expect(0, 591, '\P{inlatinextendedb}', "");
@@ -108615,16 +109751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 592, '\p{^inlatinextendedb}', "");
     Expect(1, 592, '\P{inlatinextendedb}', "");
     Expect(0, 592, '\P{^inlatinextendedb}', "");
-    Expect(1, 591, '\p{-In_Latin_Extended_B}', "");
-    Expect(0, 591, '\p{^-In_Latin_Extended_B}', "");
-    Expect(0, 591, '\P{-In_Latin_Extended_B}', "");
-    Expect(1, 591, '\P{^-In_Latin_Extended_B}', "");
-    Expect(0, 592, '\p{-In_Latin_Extended_B}', "");
-    Expect(1, 592, '\p{^-In_Latin_Extended_B}', "");
-    Expect(1, 592, '\P{-In_Latin_Extended_B}', "");
-    Expect(0, 592, '\P{^-In_Latin_Extended_B}', "");
-    Error('\p{:=	latin_ext_B}');
-    Error('\P{:=	latin_ext_B}');
+    Expect(1, 591, '\p{-_In_LATIN_EXTENDED_B}', "");
+    Expect(0, 591, '\p{^-_In_LATIN_EXTENDED_B}', "");
+    Expect(0, 591, '\P{-_In_LATIN_EXTENDED_B}', "");
+    Expect(1, 591, '\P{^-_In_LATIN_EXTENDED_B}', "");
+    Expect(0, 592, '\p{-_In_LATIN_EXTENDED_B}', "");
+    Expect(1, 592, '\p{^-_In_LATIN_EXTENDED_B}', "");
+    Expect(1, 592, '\P{-_In_LATIN_EXTENDED_B}', "");
+    Expect(0, 592, '\P{^-_In_LATIN_EXTENDED_B}', "");
+    Error('\p{/a/	_LATIN_EXT_b}');
+    Error('\P{/a/	_LATIN_EXT_b}');
     Expect(1, 591, '\p{latinextb}', "");
     Expect(0, 591, '\p{^latinextb}', "");
     Expect(0, 591, '\P{latinextb}', "");
@@ -108633,16 +109769,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 592, '\p{^latinextb}', "");
     Expect(1, 592, '\P{latinextb}', "");
     Expect(0, 592, '\P{^latinextb}', "");
-    Expect(1, 591, '\p{ -latin_EXT_b}', "");
-    Expect(0, 591, '\p{^ -latin_EXT_b}', "");
-    Expect(0, 591, '\P{ -latin_EXT_b}', "");
-    Expect(1, 591, '\P{^ -latin_EXT_b}', "");
-    Expect(0, 592, '\p{ -latin_EXT_b}', "");
-    Expect(1, 592, '\p{^ -latin_EXT_b}', "");
-    Expect(1, 592, '\P{ -latin_EXT_b}', "");
-    Expect(0, 592, '\P{^ -latin_EXT_b}', "");
-    Error('\p{_Is_latin_EXT_B:=}');
-    Error('\P{_Is_latin_EXT_B:=}');
+    Expect(1, 591, '\p{ 	Latin_ext_B}', "");
+    Expect(0, 591, '\p{^ 	Latin_ext_B}', "");
+    Expect(0, 591, '\P{ 	Latin_ext_B}', "");
+    Expect(1, 591, '\P{^ 	Latin_ext_B}', "");
+    Expect(0, 592, '\p{ 	Latin_ext_B}', "");
+    Expect(1, 592, '\p{^ 	Latin_ext_B}', "");
+    Expect(1, 592, '\P{ 	Latin_ext_B}', "");
+    Expect(0, 592, '\P{^ 	Latin_ext_B}', "");
+    Error('\p{-	IS_latin_Ext_B:=}');
+    Error('\P{-	IS_latin_Ext_B:=}');
     Expect(1, 591, '\p{islatinextb}', "");
     Expect(0, 591, '\p{^islatinextb}', "");
     Expect(0, 591, '\P{islatinextb}', "");
@@ -108651,16 +109787,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 592, '\p{^islatinextb}', "");
     Expect(1, 592, '\P{islatinextb}', "");
     Expect(0, 592, '\P{^islatinextb}', "");
-    Expect(1, 591, '\p{	IS_latin_ext_B}', "");
-    Expect(0, 591, '\p{^	IS_latin_ext_B}', "");
-    Expect(0, 591, '\P{	IS_latin_ext_B}', "");
-    Expect(1, 591, '\P{^	IS_latin_ext_B}', "");
-    Expect(0, 592, '\p{	IS_latin_ext_B}', "");
-    Expect(1, 592, '\p{^	IS_latin_ext_B}', "");
-    Expect(1, 592, '\P{	IS_latin_ext_B}', "");
-    Expect(0, 592, '\P{^	IS_latin_ext_B}', "");
-    Error('\p{/a/	_in_latin_EXT_b}');
-    Error('\P{/a/	_in_latin_EXT_b}');
+    Expect(1, 591, '\p{	-Is_Latin_Ext_b}', "");
+    Expect(0, 591, '\p{^	-Is_Latin_Ext_b}', "");
+    Expect(0, 591, '\P{	-Is_Latin_Ext_b}', "");
+    Expect(1, 591, '\P{^	-Is_Latin_Ext_b}', "");
+    Expect(0, 592, '\p{	-Is_Latin_Ext_b}', "");
+    Expect(1, 592, '\p{^	-Is_Latin_Ext_b}', "");
+    Expect(1, 592, '\P{	-Is_Latin_Ext_b}', "");
+    Expect(0, 592, '\P{^	-Is_Latin_Ext_b}', "");
+    Error('\p{/a/  In_latin_ext_B}');
+    Error('\P{/a/  In_latin_ext_B}');
     Expect(1, 591, '\p{inlatinextb}', "");
     Expect(0, 591, '\p{^inlatinextb}', "");
     Expect(0, 591, '\P{inlatinextb}', "");
@@ -108669,16 +109805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 592, '\p{^inlatinextb}', "");
     Expect(1, 592, '\P{inlatinextb}', "");
     Expect(0, 592, '\P{^inlatinextb}', "");
-    Expect(1, 591, '\p{	IN_LATIN_EXT_B}', "");
-    Expect(0, 591, '\p{^	IN_LATIN_EXT_B}', "");
-    Expect(0, 591, '\P{	IN_LATIN_EXT_B}', "");
-    Expect(1, 591, '\P{^	IN_LATIN_EXT_B}', "");
-    Expect(0, 592, '\p{	IN_LATIN_EXT_B}', "");
-    Expect(1, 592, '\p{^	IN_LATIN_EXT_B}', "");
-    Expect(1, 592, '\P{	IN_LATIN_EXT_B}', "");
-    Expect(0, 592, '\P{^	IN_LATIN_EXT_B}', "");
-    Error('\p{LATIN_EXTENDED_C/a/}');
-    Error('\P{LATIN_EXTENDED_C/a/}');
+    Expect(1, 591, '\p{-in_LATIN_Ext_B}', "");
+    Expect(0, 591, '\p{^-in_LATIN_Ext_B}', "");
+    Expect(0, 591, '\P{-in_LATIN_Ext_B}', "");
+    Expect(1, 591, '\P{^-in_LATIN_Ext_B}', "");
+    Expect(0, 592, '\p{-in_LATIN_Ext_B}', "");
+    Expect(1, 592, '\p{^-in_LATIN_Ext_B}', "");
+    Expect(1, 592, '\P{-in_LATIN_Ext_B}', "");
+    Expect(0, 592, '\P{^-in_LATIN_Ext_B}', "");
+    Error('\p{-:=Latin_Extended_c}');
+    Error('\P{-:=Latin_Extended_c}');
     Expect(1, 11391, '\p{latinextendedc}', "");
     Expect(0, 11391, '\p{^latinextendedc}', "");
     Expect(0, 11391, '\P{latinextendedc}', "");
@@ -108687,16 +109823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11392, '\p{^latinextendedc}', "");
     Expect(1, 11392, '\P{latinextendedc}', "");
     Expect(0, 11392, '\P{^latinextendedc}', "");
-    Expect(1, 11391, '\p{ Latin_extended_C}', "");
-    Expect(0, 11391, '\p{^ Latin_extended_C}', "");
-    Expect(0, 11391, '\P{ Latin_extended_C}', "");
-    Expect(1, 11391, '\P{^ Latin_extended_C}', "");
-    Expect(0, 11392, '\p{ Latin_extended_C}', "");
-    Expect(1, 11392, '\p{^ Latin_extended_C}', "");
-    Expect(1, 11392, '\P{ Latin_extended_C}', "");
-    Expect(0, 11392, '\P{^ Latin_extended_C}', "");
-    Error('\p{/a/Is_latin_Extended_c}');
-    Error('\P{/a/Is_latin_Extended_c}');
+    Expect(1, 11391, '\p{-latin_Extended_C}', "");
+    Expect(0, 11391, '\p{^-latin_Extended_C}', "");
+    Expect(0, 11391, '\P{-latin_Extended_C}', "");
+    Expect(1, 11391, '\P{^-latin_Extended_C}', "");
+    Expect(0, 11392, '\p{-latin_Extended_C}', "");
+    Expect(1, 11392, '\p{^-latin_Extended_C}', "");
+    Expect(1, 11392, '\P{-latin_Extended_C}', "");
+    Expect(0, 11392, '\P{^-latin_Extended_C}', "");
+    Error('\p{/a/  is_latin_Extended_C}');
+    Error('\P{/a/  is_latin_Extended_C}');
     Expect(1, 11391, '\p{islatinextendedc}', "");
     Expect(0, 11391, '\p{^islatinextendedc}', "");
     Expect(0, 11391, '\P{islatinextendedc}', "");
@@ -108705,16 +109841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11392, '\p{^islatinextendedc}', "");
     Expect(1, 11392, '\P{islatinextendedc}', "");
     Expect(0, 11392, '\P{^islatinextendedc}', "");
-    Expect(1, 11391, '\p{	is_Latin_EXTENDED_C}', "");
-    Expect(0, 11391, '\p{^	is_Latin_EXTENDED_C}', "");
-    Expect(0, 11391, '\P{	is_Latin_EXTENDED_C}', "");
-    Expect(1, 11391, '\P{^	is_Latin_EXTENDED_C}', "");
-    Expect(0, 11392, '\p{	is_Latin_EXTENDED_C}', "");
-    Expect(1, 11392, '\p{^	is_Latin_EXTENDED_C}', "");
-    Expect(1, 11392, '\P{	is_Latin_EXTENDED_C}', "");
-    Expect(0, 11392, '\P{^	is_Latin_EXTENDED_C}', "");
-    Error('\p{-:=IN_Latin_extended_c}');
-    Error('\P{-:=IN_Latin_extended_c}');
+    Expect(1, 11391, '\p{ -IS_Latin_extended_C}', "");
+    Expect(0, 11391, '\p{^ -IS_Latin_extended_C}', "");
+    Expect(0, 11391, '\P{ -IS_Latin_extended_C}', "");
+    Expect(1, 11391, '\P{^ -IS_Latin_extended_C}', "");
+    Expect(0, 11392, '\p{ -IS_Latin_extended_C}', "");
+    Expect(1, 11392, '\p{^ -IS_Latin_extended_C}', "");
+    Expect(1, 11392, '\P{ -IS_Latin_extended_C}', "");
+    Expect(0, 11392, '\P{^ -IS_Latin_extended_C}', "");
+    Error('\p{/a/	_IN_LATIN_EXTENDED_C}');
+    Error('\P{/a/	_IN_LATIN_EXTENDED_C}');
     Expect(1, 11391, '\p{inlatinextendedc}', "");
     Expect(0, 11391, '\p{^inlatinextendedc}', "");
     Expect(0, 11391, '\P{inlatinextendedc}', "");
@@ -108723,16 +109859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11392, '\p{^inlatinextendedc}', "");
     Expect(1, 11392, '\P{inlatinextendedc}', "");
     Expect(0, 11392, '\P{^inlatinextendedc}', "");
-    Expect(1, 11391, '\p{_	IN_Latin_Extended_C}', "");
-    Expect(0, 11391, '\p{^_	IN_Latin_Extended_C}', "");
-    Expect(0, 11391, '\P{_	IN_Latin_Extended_C}', "");
-    Expect(1, 11391, '\P{^_	IN_Latin_Extended_C}', "");
-    Expect(0, 11392, '\p{_	IN_Latin_Extended_C}', "");
-    Expect(1, 11392, '\p{^_	IN_Latin_Extended_C}', "");
-    Expect(1, 11392, '\P{_	IN_Latin_Extended_C}', "");
-    Expect(0, 11392, '\P{^_	IN_Latin_Extended_C}', "");
-    Error('\p{:=-_Latin_Ext_c}');
-    Error('\P{:=-_Latin_Ext_c}');
+    Expect(1, 11391, '\p{-In_latin_extended_c}', "");
+    Expect(0, 11391, '\p{^-In_latin_extended_c}', "");
+    Expect(0, 11391, '\P{-In_latin_extended_c}', "");
+    Expect(1, 11391, '\P{^-In_latin_extended_c}', "");
+    Expect(0, 11392, '\p{-In_latin_extended_c}', "");
+    Expect(1, 11392, '\p{^-In_latin_extended_c}', "");
+    Expect(1, 11392, '\P{-In_latin_extended_c}', "");
+    Expect(0, 11392, '\P{^-In_latin_extended_c}', "");
+    Error('\p{ -Latin_Ext_c/a/}');
+    Error('\P{ -Latin_Ext_c/a/}');
     Expect(1, 11391, '\p{latinextc}', "");
     Expect(0, 11391, '\p{^latinextc}', "");
     Expect(0, 11391, '\P{latinextc}', "");
@@ -108741,16 +109877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11392, '\p{^latinextc}', "");
     Expect(1, 11392, '\P{latinextc}', "");
     Expect(0, 11392, '\P{^latinextc}', "");
-    Expect(1, 11391, '\p{_	LATIN_Ext_C}', "");
-    Expect(0, 11391, '\p{^_	LATIN_Ext_C}', "");
-    Expect(0, 11391, '\P{_	LATIN_Ext_C}', "");
-    Expect(1, 11391, '\P{^_	LATIN_Ext_C}', "");
-    Expect(0, 11392, '\p{_	LATIN_Ext_C}', "");
-    Expect(1, 11392, '\p{^_	LATIN_Ext_C}', "");
-    Expect(1, 11392, '\P{_	LATIN_Ext_C}', "");
-    Expect(0, 11392, '\P{^_	LATIN_Ext_C}', "");
-    Error('\p{:=Is_LATIN_Ext_C}');
-    Error('\P{:=Is_LATIN_Ext_C}');
+    Expect(1, 11391, '\p{ _LATIN_EXT_c}', "");
+    Expect(0, 11391, '\p{^ _LATIN_EXT_c}', "");
+    Expect(0, 11391, '\P{ _LATIN_EXT_c}', "");
+    Expect(1, 11391, '\P{^ _LATIN_EXT_c}', "");
+    Expect(0, 11392, '\p{ _LATIN_EXT_c}', "");
+    Expect(1, 11392, '\p{^ _LATIN_EXT_c}', "");
+    Expect(1, 11392, '\P{ _LATIN_EXT_c}', "");
+    Expect(0, 11392, '\P{^ _LATIN_EXT_c}', "");
+    Error('\p{:= Is_Latin_ext_C}');
+    Error('\P{:= Is_Latin_ext_C}');
     Expect(1, 11391, '\p{islatinextc}', "");
     Expect(0, 11391, '\p{^islatinextc}', "");
     Expect(0, 11391, '\P{islatinextc}', "");
@@ -108759,16 +109895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11392, '\p{^islatinextc}', "");
     Expect(1, 11392, '\P{islatinextc}', "");
     Expect(0, 11392, '\P{^islatinextc}', "");
-    Expect(1, 11391, '\p{-	is_latin_ext_C}', "");
-    Expect(0, 11391, '\p{^-	is_latin_ext_C}', "");
-    Expect(0, 11391, '\P{-	is_latin_ext_C}', "");
-    Expect(1, 11391, '\P{^-	is_latin_ext_C}', "");
-    Expect(0, 11392, '\p{-	is_latin_ext_C}', "");
-    Expect(1, 11392, '\p{^-	is_latin_ext_C}', "");
-    Expect(1, 11392, '\P{-	is_latin_ext_C}', "");
-    Expect(0, 11392, '\P{^-	is_latin_ext_C}', "");
-    Error('\p{ :=In_latin_ext_c}');
-    Error('\P{ :=In_latin_ext_c}');
+    Expect(1, 11391, '\p{_	Is_latin_EXT_C}', "");
+    Expect(0, 11391, '\p{^_	Is_latin_EXT_C}', "");
+    Expect(0, 11391, '\P{_	Is_latin_EXT_C}', "");
+    Expect(1, 11391, '\P{^_	Is_latin_EXT_C}', "");
+    Expect(0, 11392, '\p{_	Is_latin_EXT_C}', "");
+    Expect(1, 11392, '\p{^_	Is_latin_EXT_C}', "");
+    Expect(1, 11392, '\P{_	Is_latin_EXT_C}', "");
+    Expect(0, 11392, '\P{^_	Is_latin_EXT_C}', "");
+    Error('\p{__In_Latin_Ext_C/a/}');
+    Error('\P{__In_Latin_Ext_C/a/}');
     Expect(1, 11391, '\p{inlatinextc}', "");
     Expect(0, 11391, '\p{^inlatinextc}', "");
     Expect(0, 11391, '\P{inlatinextc}', "");
@@ -108777,16 +109913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11392, '\p{^inlatinextc}', "");
     Expect(1, 11392, '\P{inlatinextc}', "");
     Expect(0, 11392, '\P{^inlatinextc}', "");
-    Expect(1, 11391, '\p{_-in_Latin_ext_C}', "");
-    Expect(0, 11391, '\p{^_-in_Latin_ext_C}', "");
-    Expect(0, 11391, '\P{_-in_Latin_ext_C}', "");
-    Expect(1, 11391, '\P{^_-in_Latin_ext_C}', "");
-    Expect(0, 11392, '\p{_-in_Latin_ext_C}', "");
-    Expect(1, 11392, '\p{^_-in_Latin_ext_C}', "");
-    Expect(1, 11392, '\P{_-in_Latin_ext_C}', "");
-    Expect(0, 11392, '\P{^_-in_Latin_ext_C}', "");
-    Error('\p{_:=LATIN_EXTENDED_d}');
-    Error('\P{_:=LATIN_EXTENDED_d}');
+    Expect(1, 11391, '\p{ In_LATIN_ext_C}', "");
+    Expect(0, 11391, '\p{^ In_LATIN_ext_C}', "");
+    Expect(0, 11391, '\P{ In_LATIN_ext_C}', "");
+    Expect(1, 11391, '\P{^ In_LATIN_ext_C}', "");
+    Expect(0, 11392, '\p{ In_LATIN_ext_C}', "");
+    Expect(1, 11392, '\p{^ In_LATIN_ext_C}', "");
+    Expect(1, 11392, '\P{ In_LATIN_ext_C}', "");
+    Expect(0, 11392, '\P{^ In_LATIN_ext_C}', "");
+    Error('\p{	/a/latin_EXTENDED_D}');
+    Error('\P{	/a/latin_EXTENDED_D}');
     Expect(1, 43007, '\p{latinextendedd}', "");
     Expect(0, 43007, '\p{^latinextendedd}', "");
     Expect(0, 43007, '\P{latinextendedd}', "");
@@ -108795,16 +109931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43008, '\p{^latinextendedd}', "");
     Expect(1, 43008, '\P{latinextendedd}', "");
     Expect(0, 43008, '\P{^latinextendedd}', "");
-    Expect(1, 43007, '\p{-	latin_Extended_D}', "");
-    Expect(0, 43007, '\p{^-	latin_Extended_D}', "");
-    Expect(0, 43007, '\P{-	latin_Extended_D}', "");
-    Expect(1, 43007, '\P{^-	latin_Extended_D}', "");
-    Expect(0, 43008, '\p{-	latin_Extended_D}', "");
-    Expect(1, 43008, '\p{^-	latin_Extended_D}', "");
-    Expect(1, 43008, '\P{-	latin_Extended_D}', "");
-    Expect(0, 43008, '\P{^-	latin_Extended_D}', "");
-    Error('\p{/a/is_Latin_Extended_D}');
-    Error('\P{/a/is_Latin_Extended_D}');
+    Expect(1, 43007, '\p{ -latin_Extended_d}', "");
+    Expect(0, 43007, '\p{^ -latin_Extended_d}', "");
+    Expect(0, 43007, '\P{ -latin_Extended_d}', "");
+    Expect(1, 43007, '\P{^ -latin_Extended_d}', "");
+    Expect(0, 43008, '\p{ -latin_Extended_d}', "");
+    Expect(1, 43008, '\p{^ -latin_Extended_d}', "");
+    Expect(1, 43008, '\P{ -latin_Extended_d}', "");
+    Expect(0, 43008, '\P{^ -latin_Extended_d}', "");
+    Error('\p{/a/-_Is_Latin_EXTENDED_d}');
+    Error('\P{/a/-_Is_Latin_EXTENDED_d}');
     Expect(1, 43007, '\p{islatinextendedd}', "");
     Expect(0, 43007, '\p{^islatinextendedd}', "");
     Expect(0, 43007, '\P{islatinextendedd}', "");
@@ -108813,16 +109949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43008, '\p{^islatinextendedd}', "");
     Expect(1, 43008, '\P{islatinextendedd}', "");
     Expect(0, 43008, '\P{^islatinextendedd}', "");
-    Expect(1, 43007, '\p{-_Is_latin_Extended_D}', "");
-    Expect(0, 43007, '\p{^-_Is_latin_Extended_D}', "");
-    Expect(0, 43007, '\P{-_Is_latin_Extended_D}', "");
-    Expect(1, 43007, '\P{^-_Is_latin_Extended_D}', "");
-    Expect(0, 43008, '\p{-_Is_latin_Extended_D}', "");
-    Expect(1, 43008, '\p{^-_Is_latin_Extended_D}', "");
-    Expect(1, 43008, '\P{-_Is_latin_Extended_D}', "");
-    Expect(0, 43008, '\P{^-_Is_latin_Extended_D}', "");
-    Error('\p{/a/_ IN_latin_EXTENDED_d}');
-    Error('\P{/a/_ IN_latin_EXTENDED_d}');
+    Expect(1, 43007, '\p{	_Is_latin_EXTENDED_D}', "");
+    Expect(0, 43007, '\p{^	_Is_latin_EXTENDED_D}', "");
+    Expect(0, 43007, '\P{	_Is_latin_EXTENDED_D}', "");
+    Expect(1, 43007, '\P{^	_Is_latin_EXTENDED_D}', "");
+    Expect(0, 43008, '\p{	_Is_latin_EXTENDED_D}', "");
+    Expect(1, 43008, '\p{^	_Is_latin_EXTENDED_D}', "");
+    Expect(1, 43008, '\P{	_Is_latin_EXTENDED_D}', "");
+    Expect(0, 43008, '\P{^	_Is_latin_EXTENDED_D}', "");
+    Error('\p{		In_LATIN_extended_D/a/}');
+    Error('\P{		In_LATIN_extended_D/a/}');
     Expect(1, 43007, '\p{inlatinextendedd}', "");
     Expect(0, 43007, '\p{^inlatinextendedd}', "");
     Expect(0, 43007, '\P{inlatinextendedd}', "");
@@ -108831,16 +109967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43008, '\p{^inlatinextendedd}', "");
     Expect(1, 43008, '\P{inlatinextendedd}', "");
     Expect(0, 43008, '\P{^inlatinextendedd}', "");
-    Expect(1, 43007, '\p{-In_Latin_EXTENDED_d}', "");
-    Expect(0, 43007, '\p{^-In_Latin_EXTENDED_d}', "");
-    Expect(0, 43007, '\P{-In_Latin_EXTENDED_d}', "");
-    Expect(1, 43007, '\P{^-In_Latin_EXTENDED_d}', "");
-    Expect(0, 43008, '\p{-In_Latin_EXTENDED_d}', "");
-    Expect(1, 43008, '\p{^-In_Latin_EXTENDED_d}', "");
-    Expect(1, 43008, '\P{-In_Latin_EXTENDED_d}', "");
-    Expect(0, 43008, '\P{^-In_Latin_EXTENDED_d}', "");
-    Error('\p{-Latin_Ext_D:=}');
-    Error('\P{-Latin_Ext_D:=}');
+    Expect(1, 43007, '\p{_-In_Latin_Extended_D}', "");
+    Expect(0, 43007, '\p{^_-In_Latin_Extended_D}', "");
+    Expect(0, 43007, '\P{_-In_Latin_Extended_D}', "");
+    Expect(1, 43007, '\P{^_-In_Latin_Extended_D}', "");
+    Expect(0, 43008, '\p{_-In_Latin_Extended_D}', "");
+    Expect(1, 43008, '\p{^_-In_Latin_Extended_D}', "");
+    Expect(1, 43008, '\P{_-In_Latin_Extended_D}', "");
+    Expect(0, 43008, '\P{^_-In_Latin_Extended_D}', "");
+    Error('\p{:=- Latin_ext_D}');
+    Error('\P{:=- Latin_ext_D}');
     Expect(1, 43007, '\p{latinextd}', "");
     Expect(0, 43007, '\p{^latinextd}', "");
     Expect(0, 43007, '\P{latinextd}', "");
@@ -108849,16 +109985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43008, '\p{^latinextd}', "");
     Expect(1, 43008, '\P{latinextd}', "");
     Expect(0, 43008, '\P{^latinextd}', "");
-    Expect(1, 43007, '\p{	-latin_ext_D}', "");
-    Expect(0, 43007, '\p{^	-latin_ext_D}', "");
-    Expect(0, 43007, '\P{	-latin_ext_D}', "");
-    Expect(1, 43007, '\P{^	-latin_ext_D}', "");
-    Expect(0, 43008, '\p{	-latin_ext_D}', "");
-    Expect(1, 43008, '\p{^	-latin_ext_D}', "");
-    Expect(1, 43008, '\P{	-latin_ext_D}', "");
-    Expect(0, 43008, '\P{^	-latin_ext_D}', "");
-    Error('\p{_	IS_Latin_ext_d/a/}');
-    Error('\P{_	IS_Latin_ext_d/a/}');
+    Expect(1, 43007, '\p{-LATIN_EXT_D}', "");
+    Expect(0, 43007, '\p{^-LATIN_EXT_D}', "");
+    Expect(0, 43007, '\P{-LATIN_EXT_D}', "");
+    Expect(1, 43007, '\P{^-LATIN_EXT_D}', "");
+    Expect(0, 43008, '\p{-LATIN_EXT_D}', "");
+    Expect(1, 43008, '\p{^-LATIN_EXT_D}', "");
+    Expect(1, 43008, '\P{-LATIN_EXT_D}', "");
+    Expect(0, 43008, '\P{^-LATIN_EXT_D}', "");
+    Error('\p{-/a/Is_Latin_Ext_D}');
+    Error('\P{-/a/Is_Latin_Ext_D}');
     Expect(1, 43007, '\p{islatinextd}', "");
     Expect(0, 43007, '\p{^islatinextd}', "");
     Expect(0, 43007, '\P{islatinextd}', "");
@@ -108867,16 +110003,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43008, '\p{^islatinextd}', "");
     Expect(1, 43008, '\P{islatinextd}', "");
     Expect(0, 43008, '\P{^islatinextd}', "");
-    Expect(1, 43007, '\p{_-IS_Latin_EXT_D}', "");
-    Expect(0, 43007, '\p{^_-IS_Latin_EXT_D}', "");
-    Expect(0, 43007, '\P{_-IS_Latin_EXT_D}', "");
-    Expect(1, 43007, '\P{^_-IS_Latin_EXT_D}', "");
-    Expect(0, 43008, '\p{_-IS_Latin_EXT_D}', "");
-    Expect(1, 43008, '\p{^_-IS_Latin_EXT_D}', "");
-    Expect(1, 43008, '\P{_-IS_Latin_EXT_D}', "");
-    Expect(0, 43008, '\P{^_-IS_Latin_EXT_D}', "");
-    Error('\p{:=__In_LATIN_ext_D}');
-    Error('\P{:=__In_LATIN_ext_D}');
+    Expect(1, 43007, '\p{_	Is_Latin_Ext_D}', "");
+    Expect(0, 43007, '\p{^_	Is_Latin_Ext_D}', "");
+    Expect(0, 43007, '\P{_	Is_Latin_Ext_D}', "");
+    Expect(1, 43007, '\P{^_	Is_Latin_Ext_D}', "");
+    Expect(0, 43008, '\p{_	Is_Latin_Ext_D}', "");
+    Expect(1, 43008, '\p{^_	Is_Latin_Ext_D}', "");
+    Expect(1, 43008, '\P{_	Is_Latin_Ext_D}', "");
+    Expect(0, 43008, '\P{^_	Is_Latin_Ext_D}', "");
+    Error('\p{ :=In_latin_ext_D}');
+    Error('\P{ :=In_latin_ext_D}');
     Expect(1, 43007, '\p{inlatinextd}', "");
     Expect(0, 43007, '\p{^inlatinextd}', "");
     Expect(0, 43007, '\P{inlatinextd}', "");
@@ -108885,16 +110021,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43008, '\p{^inlatinextd}', "");
     Expect(1, 43008, '\P{inlatinextd}', "");
     Expect(0, 43008, '\P{^inlatinextd}', "");
-    Expect(1, 43007, '\p{	_In_Latin_ext_d}', "");
-    Expect(0, 43007, '\p{^	_In_Latin_ext_d}', "");
-    Expect(0, 43007, '\P{	_In_Latin_ext_d}', "");
-    Expect(1, 43007, '\P{^	_In_Latin_ext_d}', "");
-    Expect(0, 43008, '\p{	_In_Latin_ext_d}', "");
-    Expect(1, 43008, '\p{^	_In_Latin_ext_d}', "");
-    Expect(1, 43008, '\P{	_In_Latin_ext_d}', "");
-    Expect(0, 43008, '\P{^	_In_Latin_ext_d}', "");
-    Error('\p{ 	Latin_Extended_E/a/}');
-    Error('\P{ 	Latin_Extended_E/a/}');
+    Expect(1, 43007, '\p{__In_Latin_ext_d}', "");
+    Expect(0, 43007, '\p{^__In_Latin_ext_d}', "");
+    Expect(0, 43007, '\P{__In_Latin_ext_d}', "");
+    Expect(1, 43007, '\P{^__In_Latin_ext_d}', "");
+    Expect(0, 43008, '\p{__In_Latin_ext_d}', "");
+    Expect(1, 43008, '\p{^__In_Latin_ext_d}', "");
+    Expect(1, 43008, '\P{__In_Latin_ext_d}', "");
+    Expect(0, 43008, '\P{^__In_Latin_ext_d}', "");
+    Error('\p{:=_	LATIN_extended_E}');
+    Error('\P{:=_	LATIN_extended_E}');
     Expect(1, 43887, '\p{latinextendede}', "");
     Expect(0, 43887, '\p{^latinextendede}', "");
     Expect(0, 43887, '\P{latinextendede}', "");
@@ -108903,16 +110039,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43888, '\p{^latinextendede}', "");
     Expect(1, 43888, '\P{latinextendede}', "");
     Expect(0, 43888, '\P{^latinextendede}', "");
-    Expect(1, 43887, '\p{ -Latin_extended_e}', "");
-    Expect(0, 43887, '\p{^ -Latin_extended_e}', "");
-    Expect(0, 43887, '\P{ -Latin_extended_e}', "");
-    Expect(1, 43887, '\P{^ -Latin_extended_e}', "");
-    Expect(0, 43888, '\p{ -Latin_extended_e}', "");
-    Expect(1, 43888, '\p{^ -Latin_extended_e}', "");
-    Expect(1, 43888, '\P{ -Latin_extended_e}', "");
-    Expect(0, 43888, '\P{^ -Latin_extended_e}', "");
-    Error('\p{:=Is_Latin_extended_E}');
-    Error('\P{:=Is_Latin_extended_E}');
+    Expect(1, 43887, '\p{_ Latin_EXTENDED_E}', "");
+    Expect(0, 43887, '\p{^_ Latin_EXTENDED_E}', "");
+    Expect(0, 43887, '\P{_ Latin_EXTENDED_E}', "");
+    Expect(1, 43887, '\P{^_ Latin_EXTENDED_E}', "");
+    Expect(0, 43888, '\p{_ Latin_EXTENDED_E}', "");
+    Expect(1, 43888, '\p{^_ Latin_EXTENDED_E}', "");
+    Expect(1, 43888, '\P{_ Latin_EXTENDED_E}', "");
+    Expect(0, 43888, '\P{^_ Latin_EXTENDED_E}', "");
+    Error('\p{ IS_LATIN_EXTENDED_e:=}');
+    Error('\P{ IS_LATIN_EXTENDED_e:=}');
     Expect(1, 43887, '\p{islatinextendede}', "");
     Expect(0, 43887, '\p{^islatinextendede}', "");
     Expect(0, 43887, '\P{islatinextendede}', "");
@@ -108921,16 +110057,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43888, '\p{^islatinextendede}', "");
     Expect(1, 43888, '\P{islatinextendede}', "");
     Expect(0, 43888, '\P{^islatinextendede}', "");
-    Expect(1, 43887, '\p{ -Is_Latin_Extended_E}', "");
-    Expect(0, 43887, '\p{^ -Is_Latin_Extended_E}', "");
-    Expect(0, 43887, '\P{ -Is_Latin_Extended_E}', "");
-    Expect(1, 43887, '\P{^ -Is_Latin_Extended_E}', "");
-    Expect(0, 43888, '\p{ -Is_Latin_Extended_E}', "");
-    Expect(1, 43888, '\p{^ -Is_Latin_Extended_E}', "");
-    Expect(1, 43888, '\P{ -Is_Latin_Extended_E}', "");
-    Expect(0, 43888, '\P{^ -Is_Latin_Extended_E}', "");
-    Error('\p{- IN_LATIN_extended_e/a/}');
-    Error('\P{- IN_LATIN_extended_e/a/}');
+    Expect(1, 43887, '\p{  is_Latin_Extended_E}', "");
+    Expect(0, 43887, '\p{^  is_Latin_Extended_E}', "");
+    Expect(0, 43887, '\P{  is_Latin_Extended_E}', "");
+    Expect(1, 43887, '\P{^  is_Latin_Extended_E}', "");
+    Expect(0, 43888, '\p{  is_Latin_Extended_E}', "");
+    Expect(1, 43888, '\p{^  is_Latin_Extended_E}', "");
+    Expect(1, 43888, '\P{  is_Latin_Extended_E}', "");
+    Expect(0, 43888, '\P{^  is_Latin_Extended_E}', "");
+    Error('\p{		In_LATIN_Extended_e/a/}');
+    Error('\P{		In_LATIN_Extended_e/a/}');
     Expect(1, 43887, '\p{inlatinextendede}', "");
     Expect(0, 43887, '\p{^inlatinextendede}', "");
     Expect(0, 43887, '\P{inlatinextendede}', "");
@@ -108939,16 +110075,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43888, '\p{^inlatinextendede}', "");
     Expect(1, 43888, '\P{inlatinextendede}', "");
     Expect(0, 43888, '\P{^inlatinextendede}', "");
-    Expect(1, 43887, '\p{_In_Latin_extended_E}', "");
-    Expect(0, 43887, '\p{^_In_Latin_extended_E}', "");
-    Expect(0, 43887, '\P{_In_Latin_extended_E}', "");
-    Expect(1, 43887, '\P{^_In_Latin_extended_E}', "");
-    Expect(0, 43888, '\p{_In_Latin_extended_E}', "");
-    Expect(1, 43888, '\p{^_In_Latin_extended_E}', "");
-    Expect(1, 43888, '\P{_In_Latin_extended_E}', "");
-    Expect(0, 43888, '\P{^_In_Latin_extended_E}', "");
-    Error('\p{-/a/Latin_Ext_E}');
-    Error('\P{-/a/Latin_Ext_E}');
+    Expect(1, 43887, '\p{_-in_Latin_extended_E}', "");
+    Expect(0, 43887, '\p{^_-in_Latin_extended_E}', "");
+    Expect(0, 43887, '\P{_-in_Latin_extended_E}', "");
+    Expect(1, 43887, '\P{^_-in_Latin_extended_E}', "");
+    Expect(0, 43888, '\p{_-in_Latin_extended_E}', "");
+    Expect(1, 43888, '\p{^_-in_Latin_extended_E}', "");
+    Expect(1, 43888, '\P{_-in_Latin_extended_E}', "");
+    Expect(0, 43888, '\P{^_-in_Latin_extended_E}', "");
+    Error('\p{:=-_Latin_Ext_E}');
+    Error('\P{:=-_Latin_Ext_E}');
     Expect(1, 43887, '\p{latinexte}', "");
     Expect(0, 43887, '\p{^latinexte}', "");
     Expect(0, 43887, '\P{latinexte}', "");
@@ -108957,16 +110093,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43888, '\p{^latinexte}', "");
     Expect(1, 43888, '\P{latinexte}', "");
     Expect(0, 43888, '\P{^latinexte}', "");
-    Expect(1, 43887, '\p{__Latin_ext_E}', "");
-    Expect(0, 43887, '\p{^__Latin_ext_E}', "");
-    Expect(0, 43887, '\P{__Latin_ext_E}', "");
-    Expect(1, 43887, '\P{^__Latin_ext_E}', "");
-    Expect(0, 43888, '\p{__Latin_ext_E}', "");
-    Expect(1, 43888, '\p{^__Latin_ext_E}', "");
-    Expect(1, 43888, '\P{__Latin_ext_E}', "");
-    Expect(0, 43888, '\P{^__Latin_ext_E}', "");
-    Error('\p{	IS_latin_EXT_E/a/}');
-    Error('\P{	IS_latin_EXT_E/a/}');
+    Expect(1, 43887, '\p{-latin_ext_E}', "");
+    Expect(0, 43887, '\p{^-latin_ext_E}', "");
+    Expect(0, 43887, '\P{-latin_ext_E}', "");
+    Expect(1, 43887, '\P{^-latin_ext_E}', "");
+    Expect(0, 43888, '\p{-latin_ext_E}', "");
+    Expect(1, 43888, '\p{^-latin_ext_E}', "");
+    Expect(1, 43888, '\P{-latin_ext_E}', "");
+    Expect(0, 43888, '\P{^-latin_ext_E}', "");
+    Error('\p{	_Is_LATIN_EXT_E:=}');
+    Error('\P{	_Is_LATIN_EXT_E:=}');
     Expect(1, 43887, '\p{islatinexte}', "");
     Expect(0, 43887, '\p{^islatinexte}', "");
     Expect(0, 43887, '\P{islatinexte}', "");
@@ -108975,16 +110111,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43888, '\p{^islatinexte}', "");
     Expect(1, 43888, '\P{islatinexte}', "");
     Expect(0, 43888, '\P{^islatinexte}', "");
-    Expect(1, 43887, '\p{--Is_Latin_Ext_E}', "");
-    Expect(0, 43887, '\p{^--Is_Latin_Ext_E}', "");
-    Expect(0, 43887, '\P{--Is_Latin_Ext_E}', "");
-    Expect(1, 43887, '\P{^--Is_Latin_Ext_E}', "");
-    Expect(0, 43888, '\p{--Is_Latin_Ext_E}', "");
-    Expect(1, 43888, '\p{^--Is_Latin_Ext_E}', "");
-    Expect(1, 43888, '\P{--Is_Latin_Ext_E}', "");
-    Expect(0, 43888, '\P{^--Is_Latin_Ext_E}', "");
-    Error('\p{:=-_In_Latin_Ext_E}');
-    Error('\P{:=-_In_Latin_Ext_E}');
+    Expect(1, 43887, '\p{ 	IS_Latin_EXT_E}', "");
+    Expect(0, 43887, '\p{^ 	IS_Latin_EXT_E}', "");
+    Expect(0, 43887, '\P{ 	IS_Latin_EXT_E}', "");
+    Expect(1, 43887, '\P{^ 	IS_Latin_EXT_E}', "");
+    Expect(0, 43888, '\p{ 	IS_Latin_EXT_E}', "");
+    Expect(1, 43888, '\p{^ 	IS_Latin_EXT_E}', "");
+    Expect(1, 43888, '\P{ 	IS_Latin_EXT_E}', "");
+    Expect(0, 43888, '\P{^ 	IS_Latin_EXT_E}', "");
+    Error('\p{ -in_Latin_Ext_e:=}');
+    Error('\P{ -in_Latin_Ext_e:=}');
     Expect(1, 43887, '\p{inlatinexte}', "");
     Expect(0, 43887, '\p{^inlatinexte}', "");
     Expect(0, 43887, '\P{inlatinexte}', "");
@@ -108993,16 +110129,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43888, '\p{^inlatinexte}', "");
     Expect(1, 43888, '\P{inlatinexte}', "");
     Expect(0, 43888, '\P{^inlatinexte}', "");
-    Expect(1, 43887, '\p{--In_Latin_Ext_e}', "");
-    Expect(0, 43887, '\p{^--In_Latin_Ext_e}', "");
-    Expect(0, 43887, '\P{--In_Latin_Ext_e}', "");
-    Expect(1, 43887, '\P{^--In_Latin_Ext_e}', "");
-    Expect(0, 43888, '\p{--In_Latin_Ext_e}', "");
-    Expect(1, 43888, '\p{^--In_Latin_Ext_e}', "");
-    Expect(1, 43888, '\P{--In_Latin_Ext_e}', "");
-    Expect(0, 43888, '\P{^--In_Latin_Ext_e}', "");
-    Error('\p{-:=LATIN_EXTENDED_F}');
-    Error('\P{-:=LATIN_EXTENDED_F}');
+    Expect(1, 43887, '\p{-in_Latin_EXT_E}', "");
+    Expect(0, 43887, '\p{^-in_Latin_EXT_E}', "");
+    Expect(0, 43887, '\P{-in_Latin_EXT_E}', "");
+    Expect(1, 43887, '\P{^-in_Latin_EXT_E}', "");
+    Expect(0, 43888, '\p{-in_Latin_EXT_E}', "");
+    Expect(1, 43888, '\p{^-in_Latin_EXT_E}', "");
+    Expect(1, 43888, '\P{-in_Latin_EXT_E}', "");
+    Expect(0, 43888, '\P{^-in_Latin_EXT_E}', "");
+    Error('\p{:=-_LATIN_Extended_f}');
+    Error('\P{:=-_LATIN_Extended_f}');
     Expect(1, 67519, '\p{latinextendedf}', "");
     Expect(0, 67519, '\p{^latinextendedf}', "");
     Expect(0, 67519, '\P{latinextendedf}', "");
@@ -109011,16 +110147,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67520, '\p{^latinextendedf}', "");
     Expect(1, 67520, '\P{latinextendedf}', "");
     Expect(0, 67520, '\P{^latinextendedf}', "");
-    Expect(1, 67519, '\p{ Latin_extended_F}', "");
-    Expect(0, 67519, '\p{^ Latin_extended_F}', "");
-    Expect(0, 67519, '\P{ Latin_extended_F}', "");
-    Expect(1, 67519, '\P{^ Latin_extended_F}', "");
-    Expect(0, 67520, '\p{ Latin_extended_F}', "");
-    Expect(1, 67520, '\p{^ Latin_extended_F}', "");
-    Expect(1, 67520, '\P{ Latin_extended_F}', "");
-    Expect(0, 67520, '\P{^ Latin_extended_F}', "");
-    Error('\p{/a/	_Is_LATIN_EXTENDED_F}');
-    Error('\P{/a/	_Is_LATIN_EXTENDED_F}');
+    Expect(1, 67519, '\p{--LATIN_Extended_F}', "");
+    Expect(0, 67519, '\p{^--LATIN_Extended_F}', "");
+    Expect(0, 67519, '\P{--LATIN_Extended_F}', "");
+    Expect(1, 67519, '\P{^--LATIN_Extended_F}', "");
+    Expect(0, 67520, '\p{--LATIN_Extended_F}', "");
+    Expect(1, 67520, '\p{^--LATIN_Extended_F}', "");
+    Expect(1, 67520, '\P{--LATIN_Extended_F}', "");
+    Expect(0, 67520, '\P{^--LATIN_Extended_F}', "");
+    Error('\p{/a/	 Is_LATIN_Extended_F}');
+    Error('\P{/a/	 Is_LATIN_Extended_F}');
     Expect(1, 67519, '\p{islatinextendedf}', "");
     Expect(0, 67519, '\p{^islatinextendedf}', "");
     Expect(0, 67519, '\P{islatinextendedf}', "");
@@ -109029,16 +110165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67520, '\p{^islatinextendedf}', "");
     Expect(1, 67520, '\P{islatinextendedf}', "");
     Expect(0, 67520, '\P{^islatinextendedf}', "");
-    Expect(1, 67519, '\p{	Is_Latin_extended_F}', "");
-    Expect(0, 67519, '\p{^	Is_Latin_extended_F}', "");
-    Expect(0, 67519, '\P{	Is_Latin_extended_F}', "");
-    Expect(1, 67519, '\P{^	Is_Latin_extended_F}', "");
-    Expect(0, 67520, '\p{	Is_Latin_extended_F}', "");
-    Expect(1, 67520, '\p{^	Is_Latin_extended_F}', "");
-    Expect(1, 67520, '\P{	Is_Latin_extended_F}', "");
-    Expect(0, 67520, '\P{^	Is_Latin_extended_F}', "");
-    Error('\p{		In_latin_Extended_F:=}');
-    Error('\P{		In_latin_Extended_F:=}');
+    Expect(1, 67519, '\p{	-is_latin_Extended_F}', "");
+    Expect(0, 67519, '\p{^	-is_latin_Extended_F}', "");
+    Expect(0, 67519, '\P{	-is_latin_Extended_F}', "");
+    Expect(1, 67519, '\P{^	-is_latin_Extended_F}', "");
+    Expect(0, 67520, '\p{	-is_latin_Extended_F}', "");
+    Expect(1, 67520, '\p{^	-is_latin_Extended_F}', "");
+    Expect(1, 67520, '\P{	-is_latin_Extended_F}', "");
+    Expect(0, 67520, '\P{^	-is_latin_Extended_F}', "");
+    Error('\p{	_in_latin_extended_F:=}');
+    Error('\P{	_in_latin_extended_F:=}');
     Expect(1, 67519, '\p{inlatinextendedf}', "");
     Expect(0, 67519, '\p{^inlatinextendedf}', "");
     Expect(0, 67519, '\P{inlatinextendedf}', "");
@@ -109047,16 +110183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67520, '\p{^inlatinextendedf}', "");
     Expect(1, 67520, '\P{inlatinextendedf}', "");
     Expect(0, 67520, '\P{^inlatinextendedf}', "");
-    Expect(1, 67519, '\p{-IN_latin_EXTENDED_f}', "");
-    Expect(0, 67519, '\p{^-IN_latin_EXTENDED_f}', "");
-    Expect(0, 67519, '\P{-IN_latin_EXTENDED_f}', "");
-    Expect(1, 67519, '\P{^-IN_latin_EXTENDED_f}', "");
-    Expect(0, 67520, '\p{-IN_latin_EXTENDED_f}', "");
-    Expect(1, 67520, '\p{^-IN_latin_EXTENDED_f}', "");
-    Expect(1, 67520, '\P{-IN_latin_EXTENDED_f}', "");
-    Expect(0, 67520, '\P{^-IN_latin_EXTENDED_f}', "");
-    Error('\p{:= _LATIN_EXT_F}');
-    Error('\P{:= _LATIN_EXT_F}');
+    Expect(1, 67519, '\p{ In_latin_Extended_F}', "");
+    Expect(0, 67519, '\p{^ In_latin_Extended_F}', "");
+    Expect(0, 67519, '\P{ In_latin_Extended_F}', "");
+    Expect(1, 67519, '\P{^ In_latin_Extended_F}', "");
+    Expect(0, 67520, '\p{ In_latin_Extended_F}', "");
+    Expect(1, 67520, '\p{^ In_latin_Extended_F}', "");
+    Expect(1, 67520, '\P{ In_latin_Extended_F}', "");
+    Expect(0, 67520, '\P{^ In_latin_Extended_F}', "");
+    Error('\p{	LATIN_Ext_F:=}');
+    Error('\P{	LATIN_Ext_F:=}');
     Expect(1, 67519, '\p{latinextf}', "");
     Expect(0, 67519, '\p{^latinextf}', "");
     Expect(0, 67519, '\P{latinextf}', "");
@@ -109065,16 +110201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67520, '\p{^latinextf}', "");
     Expect(1, 67520, '\P{latinextf}', "");
     Expect(0, 67520, '\P{^latinextf}', "");
-    Expect(1, 67519, '\p{ -LATIN_Ext_F}', "");
-    Expect(0, 67519, '\p{^ -LATIN_Ext_F}', "");
-    Expect(0, 67519, '\P{ -LATIN_Ext_F}', "");
-    Expect(1, 67519, '\P{^ -LATIN_Ext_F}', "");
-    Expect(0, 67520, '\p{ -LATIN_Ext_F}', "");
-    Expect(1, 67520, '\p{^ -LATIN_Ext_F}', "");
-    Expect(1, 67520, '\P{ -LATIN_Ext_F}', "");
-    Expect(0, 67520, '\P{^ -LATIN_Ext_F}', "");
-    Error('\p{:=--Is_Latin_ext_F}');
-    Error('\P{:=--Is_Latin_ext_F}');
+    Expect(1, 67519, '\p{_ LATIN_ext_F}', "");
+    Expect(0, 67519, '\p{^_ LATIN_ext_F}', "");
+    Expect(0, 67519, '\P{_ LATIN_ext_F}', "");
+    Expect(1, 67519, '\P{^_ LATIN_ext_F}', "");
+    Expect(0, 67520, '\p{_ LATIN_ext_F}', "");
+    Expect(1, 67520, '\p{^_ LATIN_ext_F}', "");
+    Expect(1, 67520, '\P{_ LATIN_ext_F}', "");
+    Expect(0, 67520, '\P{^_ LATIN_ext_F}', "");
+    Error('\p{/a/Is_LATIN_ext_F}');
+    Error('\P{/a/Is_LATIN_ext_F}');
     Expect(1, 67519, '\p{islatinextf}', "");
     Expect(0, 67519, '\p{^islatinextf}', "");
     Expect(0, 67519, '\P{islatinextf}', "");
@@ -109083,16 +110219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67520, '\p{^islatinextf}', "");
     Expect(1, 67520, '\P{islatinextf}', "");
     Expect(0, 67520, '\P{^islatinextf}', "");
-    Expect(1, 67519, '\p{	Is_latin_EXT_F}', "");
-    Expect(0, 67519, '\p{^	Is_latin_EXT_F}', "");
-    Expect(0, 67519, '\P{	Is_latin_EXT_F}', "");
-    Expect(1, 67519, '\P{^	Is_latin_EXT_F}', "");
-    Expect(0, 67520, '\p{	Is_latin_EXT_F}', "");
-    Expect(1, 67520, '\p{^	Is_latin_EXT_F}', "");
-    Expect(1, 67520, '\P{	Is_latin_EXT_F}', "");
-    Expect(0, 67520, '\P{^	Is_latin_EXT_F}', "");
-    Error('\p{	_In_LATIN_EXT_F/a/}');
-    Error('\P{	_In_LATIN_EXT_F/a/}');
+    Expect(1, 67519, '\p{-_is_Latin_EXT_F}', "");
+    Expect(0, 67519, '\p{^-_is_Latin_EXT_F}', "");
+    Expect(0, 67519, '\P{-_is_Latin_EXT_F}', "");
+    Expect(1, 67519, '\P{^-_is_Latin_EXT_F}', "");
+    Expect(0, 67520, '\p{-_is_Latin_EXT_F}', "");
+    Expect(1, 67520, '\p{^-_is_Latin_EXT_F}', "");
+    Expect(1, 67520, '\P{-_is_Latin_EXT_F}', "");
+    Expect(0, 67520, '\P{^-_is_Latin_EXT_F}', "");
+    Error('\p{/a/	-In_LATIN_Ext_F}');
+    Error('\P{/a/	-In_LATIN_Ext_F}');
     Expect(1, 67519, '\p{inlatinextf}', "");
     Expect(0, 67519, '\p{^inlatinextf}', "");
     Expect(0, 67519, '\P{inlatinextf}', "");
@@ -109101,16 +110237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67520, '\p{^inlatinextf}', "");
     Expect(1, 67520, '\P{inlatinextf}', "");
     Expect(0, 67520, '\P{^inlatinextf}', "");
-    Expect(1, 67519, '\p{ _In_LATIN_EXT_F}', "");
-    Expect(0, 67519, '\p{^ _In_LATIN_EXT_F}', "");
-    Expect(0, 67519, '\P{ _In_LATIN_EXT_F}', "");
-    Expect(1, 67519, '\P{^ _In_LATIN_EXT_F}', "");
-    Expect(0, 67520, '\p{ _In_LATIN_EXT_F}', "");
-    Expect(1, 67520, '\p{^ _In_LATIN_EXT_F}', "");
-    Expect(1, 67520, '\P{ _In_LATIN_EXT_F}', "");
-    Expect(0, 67520, '\P{^ _In_LATIN_EXT_F}', "");
-    Error('\p{-/a/LATIN_extended_G}');
-    Error('\P{-/a/LATIN_extended_G}');
+    Expect(1, 67519, '\p{ -in_latin_Ext_F}', "");
+    Expect(0, 67519, '\p{^ -in_latin_Ext_F}', "");
+    Expect(0, 67519, '\P{ -in_latin_Ext_F}', "");
+    Expect(1, 67519, '\P{^ -in_latin_Ext_F}', "");
+    Expect(0, 67520, '\p{ -in_latin_Ext_F}', "");
+    Expect(1, 67520, '\p{^ -in_latin_Ext_F}', "");
+    Expect(1, 67520, '\P{ -in_latin_Ext_F}', "");
+    Expect(0, 67520, '\P{^ -in_latin_Ext_F}', "");
+    Error('\p{_latin_Extended_G:=}');
+    Error('\P{_latin_Extended_G:=}');
     Expect(1, 122879, '\p{latinextendedg}', "");
     Expect(0, 122879, '\p{^latinextendedg}', "");
     Expect(0, 122879, '\P{latinextendedg}', "");
@@ -109119,16 +110255,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122880, '\p{^latinextendedg}', "");
     Expect(1, 122880, '\P{latinextendedg}', "");
     Expect(0, 122880, '\P{^latinextendedg}', "");
-    Expect(1, 122879, '\p{_LATIN_Extended_G}', "");
-    Expect(0, 122879, '\p{^_LATIN_Extended_G}', "");
-    Expect(0, 122879, '\P{_LATIN_Extended_G}', "");
-    Expect(1, 122879, '\P{^_LATIN_Extended_G}', "");
-    Expect(0, 122880, '\p{_LATIN_Extended_G}', "");
-    Expect(1, 122880, '\p{^_LATIN_Extended_G}', "");
-    Expect(1, 122880, '\P{_LATIN_Extended_G}', "");
-    Expect(0, 122880, '\P{^_LATIN_Extended_G}', "");
-    Error('\p{/a/-Is_LATIN_extended_G}');
-    Error('\P{/a/-Is_LATIN_extended_G}');
+    Expect(1, 122879, '\p{		LATIN_EXTENDED_g}', "");
+    Expect(0, 122879, '\p{^		LATIN_EXTENDED_g}', "");
+    Expect(0, 122879, '\P{		LATIN_EXTENDED_g}', "");
+    Expect(1, 122879, '\P{^		LATIN_EXTENDED_g}', "");
+    Expect(0, 122880, '\p{		LATIN_EXTENDED_g}', "");
+    Expect(1, 122880, '\p{^		LATIN_EXTENDED_g}', "");
+    Expect(1, 122880, '\P{		LATIN_EXTENDED_g}', "");
+    Expect(0, 122880, '\P{^		LATIN_EXTENDED_g}', "");
+    Error('\p{-Is_latin_EXTENDED_G/a/}');
+    Error('\P{-Is_latin_EXTENDED_G/a/}');
     Expect(1, 122879, '\p{islatinextendedg}', "");
     Expect(0, 122879, '\p{^islatinextendedg}', "");
     Expect(0, 122879, '\P{islatinextendedg}', "");
@@ -109137,16 +110273,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122880, '\p{^islatinextendedg}', "");
     Expect(1, 122880, '\P{islatinextendedg}', "");
     Expect(0, 122880, '\P{^islatinextendedg}', "");
-    Expect(1, 122879, '\p{ -Is_latin_Extended_g}', "");
-    Expect(0, 122879, '\p{^ -Is_latin_Extended_g}', "");
-    Expect(0, 122879, '\P{ -Is_latin_Extended_g}', "");
-    Expect(1, 122879, '\P{^ -Is_latin_Extended_g}', "");
-    Expect(0, 122880, '\p{ -Is_latin_Extended_g}', "");
-    Expect(1, 122880, '\p{^ -Is_latin_Extended_g}', "");
-    Expect(1, 122880, '\P{ -Is_latin_Extended_g}', "");
-    Expect(0, 122880, '\P{^ -Is_latin_Extended_g}', "");
-    Error('\p{:=	In_Latin_Extended_G}');
-    Error('\P{:=	In_Latin_Extended_G}');
+    Expect(1, 122879, '\p{ Is_LATIN_extended_G}', "");
+    Expect(0, 122879, '\p{^ Is_LATIN_extended_G}', "");
+    Expect(0, 122879, '\P{ Is_LATIN_extended_G}', "");
+    Expect(1, 122879, '\P{^ Is_LATIN_extended_G}', "");
+    Expect(0, 122880, '\p{ Is_LATIN_extended_G}', "");
+    Expect(1, 122880, '\p{^ Is_LATIN_extended_G}', "");
+    Expect(1, 122880, '\P{ Is_LATIN_extended_G}', "");
+    Expect(0, 122880, '\P{^ Is_LATIN_extended_G}', "");
+    Error('\p{:=In_LATIN_extended_g}');
+    Error('\P{:=In_LATIN_extended_g}');
     Expect(1, 122879, '\p{inlatinextendedg}', "");
     Expect(0, 122879, '\p{^inlatinextendedg}', "");
     Expect(0, 122879, '\P{inlatinextendedg}', "");
@@ -109155,16 +110291,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122880, '\p{^inlatinextendedg}', "");
     Expect(1, 122880, '\P{inlatinextendedg}', "");
     Expect(0, 122880, '\P{^inlatinextendedg}', "");
-    Expect(1, 122879, '\p{	 IN_LATIN_Extended_G}', "");
-    Expect(0, 122879, '\p{^	 IN_LATIN_Extended_G}', "");
-    Expect(0, 122879, '\P{	 IN_LATIN_Extended_G}', "");
-    Expect(1, 122879, '\P{^	 IN_LATIN_Extended_G}', "");
-    Expect(0, 122880, '\p{	 IN_LATIN_Extended_G}', "");
-    Expect(1, 122880, '\p{^	 IN_LATIN_Extended_G}', "");
-    Expect(1, 122880, '\P{	 IN_LATIN_Extended_G}', "");
-    Expect(0, 122880, '\P{^	 IN_LATIN_Extended_G}', "");
-    Error('\p{_ LATIN_Ext_g:=}');
-    Error('\P{_ LATIN_Ext_g:=}');
+    Expect(1, 122879, '\p{-	In_Latin_extended_g}', "");
+    Expect(0, 122879, '\p{^-	In_Latin_extended_g}', "");
+    Expect(0, 122879, '\P{-	In_Latin_extended_g}', "");
+    Expect(1, 122879, '\P{^-	In_Latin_extended_g}', "");
+    Expect(0, 122880, '\p{-	In_Latin_extended_g}', "");
+    Expect(1, 122880, '\p{^-	In_Latin_extended_g}', "");
+    Expect(1, 122880, '\P{-	In_Latin_extended_g}', "");
+    Expect(0, 122880, '\P{^-	In_Latin_extended_g}', "");
+    Error('\p{	Latin_Ext_G:=}');
+    Error('\P{	Latin_Ext_G:=}');
     Expect(1, 122879, '\p{latinextg}', "");
     Expect(0, 122879, '\p{^latinextg}', "");
     Expect(0, 122879, '\P{latinextg}', "");
@@ -109173,16 +110309,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122880, '\p{^latinextg}', "");
     Expect(1, 122880, '\P{latinextg}', "");
     Expect(0, 122880, '\P{^latinextg}', "");
-    Expect(1, 122879, '\p{--Latin_ext_g}', "");
-    Expect(0, 122879, '\p{^--Latin_ext_g}', "");
-    Expect(0, 122879, '\P{--Latin_ext_g}', "");
-    Expect(1, 122879, '\P{^--Latin_ext_g}', "");
-    Expect(0, 122880, '\p{--Latin_ext_g}', "");
-    Expect(1, 122880, '\p{^--Latin_ext_g}', "");
-    Expect(1, 122880, '\P{--Latin_ext_g}', "");
-    Expect(0, 122880, '\P{^--Latin_ext_g}', "");
-    Error('\p{--is_Latin_EXT_g:=}');
-    Error('\P{--is_Latin_EXT_g:=}');
+    Expect(1, 122879, '\p{	-Latin_Ext_g}', "");
+    Expect(0, 122879, '\p{^	-Latin_Ext_g}', "");
+    Expect(0, 122879, '\P{	-Latin_Ext_g}', "");
+    Expect(1, 122879, '\P{^	-Latin_Ext_g}', "");
+    Expect(0, 122880, '\p{	-Latin_Ext_g}', "");
+    Expect(1, 122880, '\p{^	-Latin_Ext_g}', "");
+    Expect(1, 122880, '\P{	-Latin_Ext_g}', "");
+    Expect(0, 122880, '\P{^	-Latin_Ext_g}', "");
+    Error('\p{-	is_LATIN_Ext_G:=}');
+    Error('\P{-	is_LATIN_Ext_G:=}');
     Expect(1, 122879, '\p{islatinextg}', "");
     Expect(0, 122879, '\p{^islatinextg}', "");
     Expect(0, 122879, '\P{islatinextg}', "");
@@ -109191,16 +110327,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122880, '\p{^islatinextg}', "");
     Expect(1, 122880, '\P{islatinextg}', "");
     Expect(0, 122880, '\P{^islatinextg}', "");
-    Expect(1, 122879, '\p{- Is_Latin_ext_G}', "");
-    Expect(0, 122879, '\p{^- Is_Latin_ext_G}', "");
-    Expect(0, 122879, '\P{- Is_Latin_ext_G}', "");
-    Expect(1, 122879, '\P{^- Is_Latin_ext_G}', "");
-    Expect(0, 122880, '\p{- Is_Latin_ext_G}', "");
-    Expect(1, 122880, '\p{^- Is_Latin_ext_G}', "");
-    Expect(1, 122880, '\P{- Is_Latin_ext_G}', "");
-    Expect(0, 122880, '\P{^- Is_Latin_ext_G}', "");
-    Error('\p{:= In_Latin_Ext_g}');
-    Error('\P{:= In_Latin_Ext_g}');
+    Expect(1, 122879, '\p{ _Is_Latin_ext_g}', "");
+    Expect(0, 122879, '\p{^ _Is_Latin_ext_g}', "");
+    Expect(0, 122879, '\P{ _Is_Latin_ext_g}', "");
+    Expect(1, 122879, '\P{^ _Is_Latin_ext_g}', "");
+    Expect(0, 122880, '\p{ _Is_Latin_ext_g}', "");
+    Expect(1, 122880, '\p{^ _Is_Latin_ext_g}', "");
+    Expect(1, 122880, '\P{ _Is_Latin_ext_g}', "");
+    Expect(0, 122880, '\P{^ _Is_Latin_ext_g}', "");
+    Error('\p{/a/ -in_Latin_ext_g}');
+    Error('\P{/a/ -in_Latin_ext_g}');
     Expect(1, 122879, '\p{inlatinextg}', "");
     Expect(0, 122879, '\p{^inlatinextg}', "");
     Expect(0, 122879, '\P{inlatinextg}', "");
@@ -109209,16 +110345,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 122880, '\p{^inlatinextg}', "");
     Expect(1, 122880, '\P{inlatinextg}', "");
     Expect(0, 122880, '\P{^inlatinextg}', "");
-    Expect(1, 122879, '\p{ 	In_Latin_EXT_G}', "");
-    Expect(0, 122879, '\p{^ 	In_Latin_EXT_G}', "");
-    Expect(0, 122879, '\P{ 	In_Latin_EXT_G}', "");
-    Expect(1, 122879, '\P{^ 	In_Latin_EXT_G}', "");
-    Expect(0, 122880, '\p{ 	In_Latin_EXT_G}', "");
-    Expect(1, 122880, '\p{^ 	In_Latin_EXT_G}', "");
-    Expect(1, 122880, '\P{ 	In_Latin_EXT_G}', "");
-    Expect(0, 122880, '\P{^ 	In_Latin_EXT_G}', "");
-    Error('\p{ 	lepcha/a/}');
-    Error('\P{ 	lepcha/a/}');
+    Expect(1, 122879, '\p{_IN_Latin_ext_G}', "");
+    Expect(0, 122879, '\p{^_IN_Latin_ext_G}', "");
+    Expect(0, 122879, '\P{_IN_Latin_ext_G}', "");
+    Expect(1, 122879, '\P{^_IN_Latin_ext_G}', "");
+    Expect(0, 122880, '\p{_IN_Latin_ext_G}', "");
+    Expect(1, 122880, '\p{^_IN_Latin_ext_G}', "");
+    Expect(1, 122880, '\P{_IN_Latin_ext_G}', "");
+    Expect(0, 122880, '\P{^_IN_Latin_ext_G}', "");
+    Error('\p{	Lepcha:=}');
+    Error('\P{	Lepcha:=}');
     Expect(1, 7247, '\p{lepcha}', "");
     Expect(0, 7247, '\p{^lepcha}', "");
     Expect(0, 7247, '\P{lepcha}', "");
@@ -109227,16 +110363,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7248, '\p{^lepcha}', "");
     Expect(1, 7248, '\P{lepcha}', "");
     Expect(0, 7248, '\P{^lepcha}', "");
-    Expect(1, 7247, '\p{ 	lepcha}', "");
-    Expect(0, 7247, '\p{^ 	lepcha}', "");
-    Expect(0, 7247, '\P{ 	lepcha}', "");
-    Expect(1, 7247, '\P{^ 	lepcha}', "");
-    Expect(0, 7248, '\p{ 	lepcha}', "");
-    Expect(1, 7248, '\p{^ 	lepcha}', "");
-    Expect(1, 7248, '\P{ 	lepcha}', "");
-    Expect(0, 7248, '\P{^ 	lepcha}', "");
-    Error('\p{-:=Is_LEPCHA}');
-    Error('\P{-:=Is_LEPCHA}');
+    Expect(1, 7247, '\p{-LEPCHA}', "");
+    Expect(0, 7247, '\p{^-LEPCHA}', "");
+    Expect(0, 7247, '\P{-LEPCHA}', "");
+    Expect(1, 7247, '\P{^-LEPCHA}', "");
+    Expect(0, 7248, '\p{-LEPCHA}', "");
+    Expect(1, 7248, '\p{^-LEPCHA}', "");
+    Expect(1, 7248, '\P{-LEPCHA}', "");
+    Expect(0, 7248, '\P{^-LEPCHA}', "");
+    Error('\p{:=--is_Lepcha}');
+    Error('\P{:=--is_Lepcha}');
     Expect(1, 7247, '\p{islepcha}', "");
     Expect(0, 7247, '\p{^islepcha}', "");
     Expect(0, 7247, '\P{islepcha}', "");
@@ -109245,16 +110381,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7248, '\p{^islepcha}', "");
     Expect(1, 7248, '\P{islepcha}', "");
     Expect(0, 7248, '\P{^islepcha}', "");
-    Expect(1, 7247, '\p{	_Is_LEPCHA}', "");
-    Expect(0, 7247, '\p{^	_Is_LEPCHA}', "");
-    Expect(0, 7247, '\P{	_Is_LEPCHA}', "");
-    Expect(1, 7247, '\P{^	_Is_LEPCHA}', "");
-    Expect(0, 7248, '\p{	_Is_LEPCHA}', "");
-    Expect(1, 7248, '\p{^	_Is_LEPCHA}', "");
-    Expect(1, 7248, '\P{	_Is_LEPCHA}', "");
-    Expect(0, 7248, '\P{^	_Is_LEPCHA}', "");
-    Error('\p{/a/Lepc}');
-    Error('\P{/a/Lepc}');
+    Expect(1, 7247, '\p{		IS_Lepcha}', "");
+    Expect(0, 7247, '\p{^		IS_Lepcha}', "");
+    Expect(0, 7247, '\P{		IS_Lepcha}', "");
+    Expect(1, 7247, '\P{^		IS_Lepcha}', "");
+    Expect(0, 7248, '\p{		IS_Lepcha}', "");
+    Expect(1, 7248, '\p{^		IS_Lepcha}', "");
+    Expect(1, 7248, '\P{		IS_Lepcha}', "");
+    Expect(0, 7248, '\P{^		IS_Lepcha}', "");
+    Error('\p{/a/__Lepc}');
+    Error('\P{/a/__Lepc}');
     Expect(1, 7247, '\p{lepc}', "");
     Expect(0, 7247, '\p{^lepc}', "");
     Expect(0, 7247, '\P{lepc}', "");
@@ -109263,16 +110399,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7248, '\p{^lepc}', "");
     Expect(1, 7248, '\P{lepc}', "");
     Expect(0, 7248, '\P{^lepc}', "");
-    Expect(1, 7247, '\p{ lepc}', "");
-    Expect(0, 7247, '\p{^ lepc}', "");
-    Expect(0, 7247, '\P{ lepc}', "");
-    Expect(1, 7247, '\P{^ lepc}', "");
-    Expect(0, 7248, '\p{ lepc}', "");
-    Expect(1, 7248, '\p{^ lepc}', "");
-    Expect(1, 7248, '\P{ lepc}', "");
-    Expect(0, 7248, '\P{^ lepc}', "");
-    Error('\p{-	Is_LEPC:=}');
-    Error('\P{-	Is_LEPC:=}');
+    Expect(1, 7247, '\p{  lepc}', "");
+    Expect(0, 7247, '\p{^  lepc}', "");
+    Expect(0, 7247, '\P{  lepc}', "");
+    Expect(1, 7247, '\P{^  lepc}', "");
+    Expect(0, 7248, '\p{  lepc}', "");
+    Expect(1, 7248, '\p{^  lepc}', "");
+    Expect(1, 7248, '\P{  lepc}', "");
+    Expect(0, 7248, '\P{^  lepc}', "");
+    Error('\p{/a/-	Is_lepc}');
+    Error('\P{/a/-	Is_lepc}');
     Expect(1, 7247, '\p{islepc}', "");
     Expect(0, 7247, '\p{^islepc}', "");
     Expect(0, 7247, '\P{islepc}', "");
@@ -109281,88 +110417,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7248, '\p{^islepc}', "");
     Expect(1, 7248, '\P{islepc}', "");
     Expect(0, 7248, '\P{^islepc}', "");
-    Expect(1, 7247, '\p{ is_lepc}', "");
-    Expect(0, 7247, '\p{^ is_lepc}', "");
-    Expect(0, 7247, '\P{ is_lepc}', "");
-    Expect(1, 7247, '\P{^ is_lepc}', "");
-    Expect(0, 7248, '\p{ is_lepc}', "");
-    Expect(1, 7248, '\p{^ is_lepc}', "");
-    Expect(1, 7248, '\P{ is_lepc}', "");
-    Expect(0, 7248, '\P{^ is_lepc}', "");
-    Error('\p{ /a/LETTER}');
-    Error('\P{ /a/LETTER}');
-    Expect(1, 201546, '\p{letter}', "");
-    Expect(0, 201546, '\p{^letter}', "");
-    Expect(0, 201546, '\P{letter}', "");
-    Expect(1, 201546, '\P{^letter}', "");
-    Expect(0, 201547, '\p{letter}', "");
-    Expect(1, 201547, '\p{^letter}', "");
-    Expect(1, 201547, '\P{letter}', "");
-    Expect(0, 201547, '\P{^letter}', "");
-    Expect(1, 201546, '\p{_	Letter}', "");
-    Expect(0, 201546, '\p{^_	Letter}', "");
-    Expect(0, 201546, '\P{_	Letter}', "");
-    Expect(1, 201546, '\P{^_	Letter}', "");
-    Expect(0, 201547, '\p{_	Letter}', "");
-    Expect(1, 201547, '\p{^_	Letter}', "");
-    Expect(1, 201547, '\P{_	Letter}', "");
-    Expect(0, 201547, '\P{^_	Letter}', "");
-    Error('\p{:=	is_letter}');
-    Error('\P{:=	is_letter}');
-    Expect(1, 201546, '\p{isletter}', "");
-    Expect(0, 201546, '\p{^isletter}', "");
-    Expect(0, 201546, '\P{isletter}', "");
-    Expect(1, 201546, '\P{^isletter}', "");
-    Expect(0, 201547, '\p{isletter}', "");
-    Expect(1, 201547, '\p{^isletter}', "");
-    Expect(1, 201547, '\P{isletter}', "");
-    Expect(0, 201547, '\P{^isletter}', "");
-    Expect(1, 201546, '\p{-_is_LETTER}', "");
-    Expect(0, 201546, '\p{^-_is_LETTER}', "");
-    Expect(0, 201546, '\P{-_is_LETTER}', "");
-    Expect(1, 201546, '\P{^-_is_LETTER}', "");
-    Expect(0, 201547, '\p{-_is_LETTER}', "");
-    Expect(1, 201547, '\p{^-_is_LETTER}', "");
-    Expect(1, 201547, '\P{-_is_LETTER}', "");
-    Expect(0, 201547, '\P{^-_is_LETTER}', "");
-    Error('\p{:=l}');
-    Error('\P{:=l}');
-    Expect(1, 201546, '\p{l}', "");
-    Expect(0, 201546, '\p{^l}', "");
-    Expect(0, 201546, '\P{l}', "");
-    Expect(1, 201546, '\P{^l}', "");
-    Expect(0, 201547, '\p{l}', "");
-    Expect(1, 201547, '\p{^l}', "");
-    Expect(1, 201547, '\P{l}', "");
-    Expect(0, 201547, '\P{^l}', "");
-    Expect(1, 201546, '\p{ 	L}', "");
-    Expect(0, 201546, '\p{^ 	L}', "");
-    Expect(0, 201546, '\P{ 	L}', "");
-    Expect(1, 201546, '\P{^ 	L}', "");
-    Expect(0, 201547, '\p{ 	L}', "");
-    Expect(1, 201547, '\p{^ 	L}', "");
-    Expect(1, 201547, '\P{ 	L}', "");
-    Expect(0, 201547, '\P{^ 	L}', "");
-    Error('\p{		IS_L:=}');
-    Error('\P{		IS_L:=}');
-    Expect(1, 201546, '\p{isl}', "");
-    Expect(0, 201546, '\p{^isl}', "");
-    Expect(0, 201546, '\P{isl}', "");
-    Expect(1, 201546, '\P{^isl}', "");
-    Expect(0, 201547, '\p{isl}', "");
-    Expect(1, 201547, '\p{^isl}', "");
-    Expect(1, 201547, '\P{isl}', "");
-    Expect(0, 201547, '\P{^isl}', "");
-    Expect(1, 201546, '\p{is_l}', "");
-    Expect(0, 201546, '\p{^is_l}', "");
-    Expect(0, 201546, '\P{is_l}', "");
-    Expect(1, 201546, '\P{^is_l}', "");
-    Expect(0, 201547, '\p{is_l}', "");
-    Expect(1, 201547, '\p{^is_l}', "");
-    Expect(1, 201547, '\P{is_l}', "");
-    Expect(0, 201547, '\P{^is_l}', "");
-    Error('\p{:=_-Letter_Number}');
-    Error('\P{:=_-Letter_Number}');
+    Expect(1, 7247, '\p{	-is_Lepc}', "");
+    Expect(0, 7247, '\p{^	-is_Lepc}', "");
+    Expect(0, 7247, '\P{	-is_Lepc}', "");
+    Expect(1, 7247, '\P{^	-is_Lepc}', "");
+    Expect(0, 7248, '\p{	-is_Lepc}', "");
+    Expect(1, 7248, '\p{^	-is_Lepc}', "");
+    Expect(1, 7248, '\P{	-is_Lepc}', "");
+    Expect(0, 7248, '\P{^	-is_Lepc}', "");
+    Error('\p{-/a/letter}');
+    Error('\P{-/a/letter}');
+    Expect(1, 205743, '\p{letter}', "");
+    Expect(0, 205743, '\p{^letter}', "");
+    Expect(0, 205743, '\P{letter}', "");
+    Expect(1, 205743, '\P{^letter}', "");
+    Expect(0, 205744, '\p{letter}', "");
+    Expect(1, 205744, '\p{^letter}', "");
+    Expect(1, 205744, '\P{letter}', "");
+    Expect(0, 205744, '\P{^letter}', "");
+    Expect(1, 205743, '\p{ -Letter}', "");
+    Expect(0, 205743, '\p{^ -Letter}', "");
+    Expect(0, 205743, '\P{ -Letter}', "");
+    Expect(1, 205743, '\P{^ -Letter}', "");
+    Expect(0, 205744, '\p{ -Letter}', "");
+    Expect(1, 205744, '\p{^ -Letter}', "");
+    Expect(1, 205744, '\P{ -Letter}', "");
+    Expect(0, 205744, '\P{^ -Letter}', "");
+    Error('\p{/a/	is_letter}');
+    Error('\P{/a/	is_letter}');
+    Expect(1, 205743, '\p{isletter}', "");
+    Expect(0, 205743, '\p{^isletter}', "");
+    Expect(0, 205743, '\P{isletter}', "");
+    Expect(1, 205743, '\P{^isletter}', "");
+    Expect(0, 205744, '\p{isletter}', "");
+    Expect(1, 205744, '\p{^isletter}', "");
+    Expect(1, 205744, '\P{isletter}', "");
+    Expect(0, 205744, '\P{^isletter}', "");
+    Expect(1, 205743, '\p{ IS_LETTER}', "");
+    Expect(0, 205743, '\p{^ IS_LETTER}', "");
+    Expect(0, 205743, '\P{ IS_LETTER}', "");
+    Expect(1, 205743, '\P{^ IS_LETTER}', "");
+    Expect(0, 205744, '\p{ IS_LETTER}', "");
+    Expect(1, 205744, '\p{^ IS_LETTER}', "");
+    Expect(1, 205744, '\P{ IS_LETTER}', "");
+    Expect(0, 205744, '\P{^ IS_LETTER}', "");
+    Error('\p{_/a/L}');
+    Error('\P{_/a/L}');
+    Expect(1, 205743, '\p{l}', "");
+    Expect(0, 205743, '\p{^l}', "");
+    Expect(0, 205743, '\P{l}', "");
+    Expect(1, 205743, '\P{^l}', "");
+    Expect(0, 205744, '\p{l}', "");
+    Expect(1, 205744, '\p{^l}', "");
+    Expect(1, 205744, '\P{l}', "");
+    Expect(0, 205744, '\P{^l}', "");
+    Expect(1, 205743, '\p{_ L}', "");
+    Expect(0, 205743, '\p{^_ L}', "");
+    Expect(0, 205743, '\P{_ L}', "");
+    Expect(1, 205743, '\P{^_ L}', "");
+    Expect(0, 205744, '\p{_ L}', "");
+    Expect(1, 205744, '\p{^_ L}', "");
+    Expect(1, 205744, '\P{_ L}', "");
+    Expect(0, 205744, '\P{^_ L}', "");
+    Error('\p{-Is_L/a/}');
+    Error('\P{-Is_L/a/}');
+    Expect(1, 205743, '\p{isl}', "");
+    Expect(0, 205743, '\p{^isl}', "");
+    Expect(0, 205743, '\P{isl}', "");
+    Expect(1, 205743, '\P{^isl}', "");
+    Expect(0, 205744, '\p{isl}', "");
+    Expect(1, 205744, '\p{^isl}', "");
+    Expect(1, 205744, '\P{isl}', "");
+    Expect(0, 205744, '\P{^isl}', "");
+    Expect(1, 205743, '\p{	Is_L}', "");
+    Expect(0, 205743, '\p{^	Is_L}', "");
+    Expect(0, 205743, '\P{	Is_L}', "");
+    Expect(1, 205743, '\P{^	Is_L}', "");
+    Expect(0, 205744, '\p{	Is_L}', "");
+    Expect(1, 205744, '\p{^	Is_L}', "");
+    Expect(1, 205744, '\P{	Is_L}', "");
+    Expect(0, 205744, '\P{^	Is_L}', "");
+    Error('\p{:= -LETTER_number}');
+    Error('\P{:= -LETTER_number}');
     Expect(1, 74862, '\p{letternumber}', "");
     Expect(0, 74862, '\p{^letternumber}', "");
     Expect(0, 74862, '\P{letternumber}', "");
@@ -109371,16 +110507,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74863, '\p{^letternumber}', "");
     Expect(1, 74863, '\P{letternumber}', "");
     Expect(0, 74863, '\P{^letternumber}', "");
-    Expect(1, 74862, '\p{ _Letter_number}', "");
-    Expect(0, 74862, '\p{^ _Letter_number}', "");
-    Expect(0, 74862, '\P{ _Letter_number}', "");
-    Expect(1, 74862, '\P{^ _Letter_number}', "");
-    Expect(0, 74863, '\p{ _Letter_number}', "");
-    Expect(1, 74863, '\p{^ _Letter_number}', "");
-    Expect(1, 74863, '\P{ _Letter_number}', "");
-    Expect(0, 74863, '\P{^ _Letter_number}', "");
-    Error('\p{	-Is_LETTER_Number:=}');
-    Error('\P{	-Is_LETTER_Number:=}');
+    Expect(1, 74862, '\p{  letter_Number}', "");
+    Expect(0, 74862, '\p{^  letter_Number}', "");
+    Expect(0, 74862, '\P{  letter_Number}', "");
+    Expect(1, 74862, '\P{^  letter_Number}', "");
+    Expect(0, 74863, '\p{  letter_Number}', "");
+    Expect(1, 74863, '\p{^  letter_Number}', "");
+    Expect(1, 74863, '\P{  letter_Number}', "");
+    Expect(0, 74863, '\P{^  letter_Number}', "");
+    Error('\p{_	Is_letter_Number/a/}');
+    Error('\P{_	Is_letter_Number/a/}');
     Expect(1, 74862, '\p{isletternumber}', "");
     Expect(0, 74862, '\p{^isletternumber}', "");
     Expect(0, 74862, '\P{isletternumber}', "");
@@ -109389,16 +110525,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74863, '\p{^isletternumber}', "");
     Expect(1, 74863, '\P{isletternumber}', "");
     Expect(0, 74863, '\P{^isletternumber}', "");
-    Expect(1, 74862, '\p{-Is_Letter_number}', "");
-    Expect(0, 74862, '\p{^-Is_Letter_number}', "");
-    Expect(0, 74862, '\P{-Is_Letter_number}', "");
-    Expect(1, 74862, '\P{^-Is_Letter_number}', "");
-    Expect(0, 74863, '\p{-Is_Letter_number}', "");
-    Expect(1, 74863, '\p{^-Is_Letter_number}', "");
-    Expect(1, 74863, '\P{-Is_Letter_number}', "");
-    Expect(0, 74863, '\P{^-Is_Letter_number}', "");
-    Error('\p{	/a/nl}');
-    Error('\P{	/a/nl}');
+    Expect(1, 74862, '\p{ IS_LETTER_number}', "");
+    Expect(0, 74862, '\p{^ IS_LETTER_number}', "");
+    Expect(0, 74862, '\P{ IS_LETTER_number}', "");
+    Expect(1, 74862, '\P{^ IS_LETTER_number}', "");
+    Expect(0, 74863, '\p{ IS_LETTER_number}', "");
+    Expect(1, 74863, '\p{^ IS_LETTER_number}', "");
+    Expect(1, 74863, '\P{ IS_LETTER_number}', "");
+    Expect(0, 74863, '\P{^ IS_LETTER_number}', "");
+    Error('\p{-	NL/a/}');
+    Error('\P{-	NL/a/}');
     Expect(1, 74862, '\p{nl}', "");
     Expect(0, 74862, '\p{^nl}', "");
     Expect(0, 74862, '\P{nl}', "");
@@ -109407,16 +110543,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74863, '\p{^nl}', "");
     Expect(1, 74863, '\P{nl}', "");
     Expect(0, 74863, '\P{^nl}', "");
-    Expect(1, 74862, '\p{-_Nl}', "");
-    Expect(0, 74862, '\p{^-_Nl}', "");
-    Expect(0, 74862, '\P{-_Nl}', "");
-    Expect(1, 74862, '\P{^-_Nl}', "");
-    Expect(0, 74863, '\p{-_Nl}', "");
-    Expect(1, 74863, '\p{^-_Nl}', "");
-    Expect(1, 74863, '\P{-_Nl}', "");
-    Expect(0, 74863, '\P{^-_Nl}', "");
-    Error('\p{:=  IS_NL}');
-    Error('\P{:=  IS_NL}');
+    Expect(1, 74862, '\p{_	Nl}', "");
+    Expect(0, 74862, '\p{^_	Nl}', "");
+    Expect(0, 74862, '\P{_	Nl}', "");
+    Expect(1, 74862, '\P{^_	Nl}', "");
+    Expect(0, 74863, '\p{_	Nl}', "");
+    Expect(1, 74863, '\p{^_	Nl}', "");
+    Expect(1, 74863, '\P{_	Nl}', "");
+    Expect(0, 74863, '\P{^_	Nl}', "");
+    Error('\p{-IS_nl:=}');
+    Error('\P{-IS_nl:=}');
     Expect(1, 74862, '\p{isnl}', "");
     Expect(0, 74862, '\p{^isnl}', "");
     Expect(0, 74862, '\P{isnl}', "");
@@ -109425,16 +110561,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 74863, '\p{^isnl}', "");
     Expect(1, 74863, '\P{isnl}', "");
     Expect(0, 74863, '\P{^isnl}', "");
-    Expect(1, 74862, '\p{ _is_Nl}', "");
-    Expect(0, 74862, '\p{^ _is_Nl}', "");
-    Expect(0, 74862, '\P{ _is_Nl}', "");
-    Expect(1, 74862, '\P{^ _is_Nl}', "");
-    Expect(0, 74863, '\p{ _is_Nl}', "");
-    Expect(1, 74863, '\p{^ _is_Nl}', "");
-    Expect(1, 74863, '\P{ _is_Nl}', "");
-    Expect(0, 74863, '\P{^ _is_Nl}', "");
-    Error('\p{/a/-	LETTERLIKE_symbols}');
-    Error('\P{/a/-	LETTERLIKE_symbols}');
+    Expect(1, 74862, '\p{	is_Nl}', "");
+    Expect(0, 74862, '\p{^	is_Nl}', "");
+    Expect(0, 74862, '\P{	is_Nl}', "");
+    Expect(1, 74862, '\P{^	is_Nl}', "");
+    Expect(0, 74863, '\p{	is_Nl}', "");
+    Expect(1, 74863, '\p{^	is_Nl}', "");
+    Expect(1, 74863, '\P{	is_Nl}', "");
+    Expect(0, 74863, '\P{^	is_Nl}', "");
+    Error('\p{_ LETTERLIKE_SYMBOLS:=}');
+    Error('\P{_ LETTERLIKE_SYMBOLS:=}');
     Expect(1, 8527, '\p{letterlikesymbols}', "");
     Expect(0, 8527, '\p{^letterlikesymbols}', "");
     Expect(0, 8527, '\P{letterlikesymbols}', "");
@@ -109443,16 +110579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8528, '\p{^letterlikesymbols}', "");
     Expect(1, 8528, '\P{letterlikesymbols}', "");
     Expect(0, 8528, '\P{^letterlikesymbols}', "");
-    Expect(1, 8527, '\p{ 	Letterlike_Symbols}', "");
-    Expect(0, 8527, '\p{^ 	Letterlike_Symbols}', "");
-    Expect(0, 8527, '\P{ 	Letterlike_Symbols}', "");
-    Expect(1, 8527, '\P{^ 	Letterlike_Symbols}', "");
-    Expect(0, 8528, '\p{ 	Letterlike_Symbols}', "");
-    Expect(1, 8528, '\p{^ 	Letterlike_Symbols}', "");
-    Expect(1, 8528, '\P{ 	Letterlike_Symbols}', "");
-    Expect(0, 8528, '\P{^ 	Letterlike_Symbols}', "");
-    Error('\p{_:=Is_LETTERLIKE_Symbols}');
-    Error('\P{_:=Is_LETTERLIKE_Symbols}');
+    Expect(1, 8527, '\p{- letterlike_Symbols}', "");
+    Expect(0, 8527, '\p{^- letterlike_Symbols}', "");
+    Expect(0, 8527, '\P{- letterlike_Symbols}', "");
+    Expect(1, 8527, '\P{^- letterlike_Symbols}', "");
+    Expect(0, 8528, '\p{- letterlike_Symbols}', "");
+    Expect(1, 8528, '\p{^- letterlike_Symbols}', "");
+    Expect(1, 8528, '\P{- letterlike_Symbols}', "");
+    Expect(0, 8528, '\P{^- letterlike_Symbols}', "");
+    Error('\p{_/a/IS_LETTERLIKE_SYMBOLS}');
+    Error('\P{_/a/IS_LETTERLIKE_SYMBOLS}');
     Expect(1, 8527, '\p{isletterlikesymbols}', "");
     Expect(0, 8527, '\p{^isletterlikesymbols}', "");
     Expect(0, 8527, '\P{isletterlikesymbols}', "");
@@ -109461,16 +110597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8528, '\p{^isletterlikesymbols}', "");
     Expect(1, 8528, '\P{isletterlikesymbols}', "");
     Expect(0, 8528, '\P{^isletterlikesymbols}', "");
-    Expect(1, 8527, '\p{ is_Letterlike_SYMBOLS}', "");
-    Expect(0, 8527, '\p{^ is_Letterlike_SYMBOLS}', "");
-    Expect(0, 8527, '\P{ is_Letterlike_SYMBOLS}', "");
-    Expect(1, 8527, '\P{^ is_Letterlike_SYMBOLS}', "");
-    Expect(0, 8528, '\p{ is_Letterlike_SYMBOLS}', "");
-    Expect(1, 8528, '\p{^ is_Letterlike_SYMBOLS}', "");
-    Expect(1, 8528, '\P{ is_Letterlike_SYMBOLS}', "");
-    Expect(0, 8528, '\P{^ is_Letterlike_SYMBOLS}', "");
-    Error('\p{:=in_Letterlike_SYMBOLS}');
-    Error('\P{:=in_Letterlike_SYMBOLS}');
+    Expect(1, 8527, '\p{	 Is_letterlike_SYMBOLS}', "");
+    Expect(0, 8527, '\p{^	 Is_letterlike_SYMBOLS}', "");
+    Expect(0, 8527, '\P{	 Is_letterlike_SYMBOLS}', "");
+    Expect(1, 8527, '\P{^	 Is_letterlike_SYMBOLS}', "");
+    Expect(0, 8528, '\p{	 Is_letterlike_SYMBOLS}', "");
+    Expect(1, 8528, '\p{^	 Is_letterlike_SYMBOLS}', "");
+    Expect(1, 8528, '\P{	 Is_letterlike_SYMBOLS}', "");
+    Expect(0, 8528, '\P{^	 Is_letterlike_SYMBOLS}', "");
+    Error('\p{		In_Letterlike_SYMBOLS:=}');
+    Error('\P{		In_Letterlike_SYMBOLS:=}');
     Expect(1, 8527, '\p{inletterlikesymbols}', "");
     Expect(0, 8527, '\p{^inletterlikesymbols}', "");
     Expect(0, 8527, '\P{inletterlikesymbols}', "");
@@ -109479,16 +110615,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8528, '\p{^inletterlikesymbols}', "");
     Expect(1, 8528, '\P{inletterlikesymbols}', "");
     Expect(0, 8528, '\P{^inletterlikesymbols}', "");
-    Expect(1, 8527, '\p{_in_Letterlike_Symbols}', "");
-    Expect(0, 8527, '\p{^_in_Letterlike_Symbols}', "");
-    Expect(0, 8527, '\P{_in_Letterlike_Symbols}', "");
-    Expect(1, 8527, '\P{^_in_Letterlike_Symbols}', "");
-    Expect(0, 8528, '\p{_in_Letterlike_Symbols}', "");
-    Expect(1, 8528, '\p{^_in_Letterlike_Symbols}', "");
-    Expect(1, 8528, '\P{_in_Letterlike_Symbols}', "");
-    Expect(0, 8528, '\P{^_in_Letterlike_Symbols}', "");
-    Error('\p{_/a/Limbu}');
-    Error('\P{_/a/Limbu}');
+    Expect(1, 8527, '\p{ 	In_Letterlike_Symbols}', "");
+    Expect(0, 8527, '\p{^ 	In_Letterlike_Symbols}', "");
+    Expect(0, 8527, '\P{ 	In_Letterlike_Symbols}', "");
+    Expect(1, 8527, '\P{^ 	In_Letterlike_Symbols}', "");
+    Expect(0, 8528, '\p{ 	In_Letterlike_Symbols}', "");
+    Expect(1, 8528, '\p{^ 	In_Letterlike_Symbols}', "");
+    Expect(1, 8528, '\P{ 	In_Letterlike_Symbols}', "");
+    Expect(0, 8528, '\P{^ 	In_Letterlike_Symbols}', "");
+    Error('\p{ /a/limbu}');
+    Error('\P{ /a/limbu}');
     Expect(1, 6479, '\p{limbu}', "");
     Expect(0, 6479, '\p{^limbu}', "");
     Expect(0, 6479, '\P{limbu}', "");
@@ -109497,16 +110633,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6480, '\p{^limbu}', "");
     Expect(1, 6480, '\P{limbu}', "");
     Expect(0, 6480, '\P{^limbu}', "");
-    Expect(1, 6479, '\p{		limbu}', "");
-    Expect(0, 6479, '\p{^		limbu}', "");
-    Expect(0, 6479, '\P{		limbu}', "");
-    Expect(1, 6479, '\P{^		limbu}', "");
-    Expect(0, 6480, '\p{		limbu}', "");
-    Expect(1, 6480, '\p{^		limbu}', "");
-    Expect(1, 6480, '\P{		limbu}', "");
-    Expect(0, 6480, '\P{^		limbu}', "");
-    Error('\p{ -Is_limbu/a/}');
-    Error('\P{ -Is_limbu/a/}');
+    Expect(1, 6479, '\p{-limbu}', "");
+    Expect(0, 6479, '\p{^-limbu}', "");
+    Expect(0, 6479, '\P{-limbu}', "");
+    Expect(1, 6479, '\P{^-limbu}', "");
+    Expect(0, 6480, '\p{-limbu}', "");
+    Expect(1, 6480, '\p{^-limbu}', "");
+    Expect(1, 6480, '\P{-limbu}', "");
+    Expect(0, 6480, '\P{^-limbu}', "");
+    Error('\p{_/a/IS_limbu}');
+    Error('\P{_/a/IS_limbu}');
     Expect(1, 6479, '\p{islimbu}', "");
     Expect(0, 6479, '\p{^islimbu}', "");
     Expect(0, 6479, '\P{islimbu}', "");
@@ -109515,16 +110651,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6480, '\p{^islimbu}', "");
     Expect(1, 6480, '\P{islimbu}', "");
     Expect(0, 6480, '\P{^islimbu}', "");
-    Expect(1, 6479, '\p{		is_Limbu}', "");
-    Expect(0, 6479, '\p{^		is_Limbu}', "");
-    Expect(0, 6479, '\P{		is_Limbu}', "");
-    Expect(1, 6479, '\P{^		is_Limbu}', "");
-    Expect(0, 6480, '\p{		is_Limbu}', "");
-    Expect(1, 6480, '\p{^		is_Limbu}', "");
-    Expect(1, 6480, '\P{		is_Limbu}', "");
-    Expect(0, 6480, '\P{^		is_Limbu}', "");
-    Error('\p{	 Limb/a/}');
-    Error('\P{	 Limb/a/}');
+    Expect(1, 6479, '\p{	-Is_LIMBU}', "");
+    Expect(0, 6479, '\p{^	-Is_LIMBU}', "");
+    Expect(0, 6479, '\P{	-Is_LIMBU}', "");
+    Expect(1, 6479, '\P{^	-Is_LIMBU}', "");
+    Expect(0, 6480, '\p{	-Is_LIMBU}', "");
+    Expect(1, 6480, '\p{^	-Is_LIMBU}', "");
+    Expect(1, 6480, '\P{	-Is_LIMBU}', "");
+    Expect(0, 6480, '\P{^	-Is_LIMBU}', "");
+    Error('\p{-/a/limb}');
+    Error('\P{-/a/limb}');
     Expect(1, 6479, '\p{limb}', "");
     Expect(0, 6479, '\p{^limb}', "");
     Expect(0, 6479, '\P{limb}', "");
@@ -109533,16 +110669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6480, '\p{^limb}', "");
     Expect(1, 6480, '\P{limb}', "");
     Expect(0, 6480, '\P{^limb}', "");
-    Expect(1, 6479, '\p{ Limb}', "");
-    Expect(0, 6479, '\p{^ Limb}', "");
-    Expect(0, 6479, '\P{ Limb}', "");
-    Expect(1, 6479, '\P{^ Limb}', "");
-    Expect(0, 6480, '\p{ Limb}', "");
-    Expect(1, 6480, '\p{^ Limb}', "");
-    Expect(1, 6480, '\P{ Limb}', "");
-    Expect(0, 6480, '\P{^ Limb}', "");
-    Error('\p{:=-Is_Limb}');
-    Error('\P{:=-Is_Limb}');
+    Expect(1, 6479, '\p{		Limb}', "");
+    Expect(0, 6479, '\p{^		Limb}', "");
+    Expect(0, 6479, '\P{		Limb}', "");
+    Expect(1, 6479, '\P{^		Limb}', "");
+    Expect(0, 6480, '\p{		Limb}', "");
+    Expect(1, 6480, '\p{^		Limb}', "");
+    Expect(1, 6480, '\P{		Limb}', "");
+    Expect(0, 6480, '\P{^		Limb}', "");
+    Error('\p{	Is_Limb/a/}');
+    Error('\P{	Is_Limb/a/}');
     Expect(1, 6479, '\p{islimb}', "");
     Expect(0, 6479, '\p{^islimb}', "");
     Expect(0, 6479, '\P{islimb}', "");
@@ -109551,16 +110687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6480, '\p{^islimb}', "");
     Expect(1, 6480, '\P{islimb}', "");
     Expect(0, 6480, '\P{^islimb}', "");
-    Expect(1, 6479, '\p{Is_Limb}', "");
-    Expect(0, 6479, '\p{^Is_Limb}', "");
-    Expect(0, 6479, '\P{Is_Limb}', "");
-    Expect(1, 6479, '\P{^Is_Limb}', "");
-    Expect(0, 6480, '\p{Is_Limb}', "");
-    Expect(1, 6480, '\p{^Is_Limb}', "");
-    Expect(1, 6480, '\P{Is_Limb}', "");
-    Expect(0, 6480, '\P{^Is_Limb}', "");
-    Error('\p{:=- Line_Separator}');
-    Error('\P{:=- Line_Separator}');
+    Expect(1, 6479, '\p{_	is_Limb}', "");
+    Expect(0, 6479, '\p{^_	is_Limb}', "");
+    Expect(0, 6479, '\P{_	is_Limb}', "");
+    Expect(1, 6479, '\P{^_	is_Limb}', "");
+    Expect(0, 6480, '\p{_	is_Limb}', "");
+    Expect(1, 6480, '\p{^_	is_Limb}', "");
+    Expect(1, 6480, '\P{_	is_Limb}', "");
+    Expect(0, 6480, '\P{^_	is_Limb}', "");
+    Error('\p{ :=LINE_Separator}');
+    Error('\P{ :=LINE_Separator}');
     Expect(1, 8232, '\p{lineseparator}', "");
     Expect(0, 8232, '\p{^lineseparator}', "");
     Expect(0, 8232, '\P{lineseparator}', "");
@@ -109569,16 +110705,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8233, '\p{^lineseparator}', "");
     Expect(1, 8233, '\P{lineseparator}', "");
     Expect(0, 8233, '\P{^lineseparator}', "");
-    Expect(1, 8232, '\p{_Line_SEPARATOR}', "");
-    Expect(0, 8232, '\p{^_Line_SEPARATOR}', "");
-    Expect(0, 8232, '\P{_Line_SEPARATOR}', "");
-    Expect(1, 8232, '\P{^_Line_SEPARATOR}', "");
-    Expect(0, 8233, '\p{_Line_SEPARATOR}', "");
-    Expect(1, 8233, '\p{^_Line_SEPARATOR}', "");
-    Expect(1, 8233, '\P{_Line_SEPARATOR}', "");
-    Expect(0, 8233, '\P{^_Line_SEPARATOR}', "");
-    Error('\p{_/a/IS_Line_SEPARATOR}');
-    Error('\P{_/a/IS_Line_SEPARATOR}');
+    Expect(1, 8232, '\p{_	Line_Separator}', "");
+    Expect(0, 8232, '\p{^_	Line_Separator}', "");
+    Expect(0, 8232, '\P{_	Line_Separator}', "");
+    Expect(1, 8232, '\P{^_	Line_Separator}', "");
+    Expect(0, 8233, '\p{_	Line_Separator}', "");
+    Expect(1, 8233, '\p{^_	Line_Separator}', "");
+    Expect(1, 8233, '\P{_	Line_Separator}', "");
+    Expect(0, 8233, '\P{^_	Line_Separator}', "");
+    Error('\p{/a/- Is_Line_Separator}');
+    Error('\P{/a/- Is_Line_Separator}');
     Expect(1, 8232, '\p{islineseparator}', "");
     Expect(0, 8232, '\p{^islineseparator}', "");
     Expect(0, 8232, '\P{islineseparator}', "");
@@ -109587,16 +110723,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8233, '\p{^islineseparator}', "");
     Expect(1, 8233, '\P{islineseparator}', "");
     Expect(0, 8233, '\P{^islineseparator}', "");
-    Expect(1, 8232, '\p{ -Is_line_Separator}', "");
-    Expect(0, 8232, '\p{^ -Is_line_Separator}', "");
-    Expect(0, 8232, '\P{ -Is_line_Separator}', "");
-    Expect(1, 8232, '\P{^ -Is_line_Separator}', "");
-    Expect(0, 8233, '\p{ -Is_line_Separator}', "");
-    Expect(1, 8233, '\p{^ -Is_line_Separator}', "");
-    Expect(1, 8233, '\P{ -Is_line_Separator}', "");
-    Expect(0, 8233, '\P{^ -Is_line_Separator}', "");
-    Error('\p{ ZL:=}');
-    Error('\P{ ZL:=}');
+    Expect(1, 8232, '\p{ -Is_Line_Separator}', "");
+    Expect(0, 8232, '\p{^ -Is_Line_Separator}', "");
+    Expect(0, 8232, '\P{ -Is_Line_Separator}', "");
+    Expect(1, 8232, '\P{^ -Is_Line_Separator}', "");
+    Expect(0, 8233, '\p{ -Is_Line_Separator}', "");
+    Expect(1, 8233, '\p{^ -Is_Line_Separator}', "");
+    Expect(1, 8233, '\P{ -Is_Line_Separator}', "");
+    Expect(0, 8233, '\P{^ -Is_Line_Separator}', "");
+    Error('\p{-/a/Zl}');
+    Error('\P{-/a/Zl}');
     Expect(1, 8232, '\p{zl}', "");
     Expect(0, 8232, '\p{^zl}', "");
     Expect(0, 8232, '\P{zl}', "");
@@ -109605,16 +110741,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8233, '\p{^zl}', "");
     Expect(1, 8233, '\P{zl}', "");
     Expect(0, 8233, '\P{^zl}', "");
-    Expect(1, 8232, '\p{		zl}', "");
-    Expect(0, 8232, '\p{^		zl}', "");
-    Expect(0, 8232, '\P{		zl}', "");
-    Expect(1, 8232, '\P{^		zl}', "");
-    Expect(0, 8233, '\p{		zl}', "");
-    Expect(1, 8233, '\p{^		zl}', "");
-    Expect(1, 8233, '\P{		zl}', "");
-    Expect(0, 8233, '\P{^		zl}', "");
-    Error('\p{__IS_Zl/a/}');
-    Error('\P{__IS_Zl/a/}');
+    Expect(1, 8232, '\p{ Zl}', "");
+    Expect(0, 8232, '\p{^ Zl}', "");
+    Expect(0, 8232, '\P{ Zl}', "");
+    Expect(1, 8232, '\P{^ Zl}', "");
+    Expect(0, 8233, '\p{ Zl}', "");
+    Expect(1, 8233, '\p{^ Zl}', "");
+    Expect(1, 8233, '\P{ Zl}', "");
+    Expect(0, 8233, '\P{^ Zl}', "");
+    Error('\p{/a/ is_Zl}');
+    Error('\P{/a/ is_Zl}');
     Expect(1, 8232, '\p{iszl}', "");
     Expect(0, 8232, '\p{^iszl}', "");
     Expect(0, 8232, '\P{iszl}', "");
@@ -109623,16 +110759,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8233, '\p{^iszl}', "");
     Expect(1, 8233, '\P{iszl}', "");
     Expect(0, 8233, '\P{^iszl}', "");
-    Expect(1, 8232, '\p{  IS_Zl}', "");
-    Expect(0, 8232, '\p{^  IS_Zl}', "");
-    Expect(0, 8232, '\P{  IS_Zl}', "");
-    Expect(1, 8232, '\P{^  IS_Zl}', "");
-    Expect(0, 8233, '\p{  IS_Zl}', "");
-    Expect(1, 8233, '\p{^  IS_Zl}', "");
-    Expect(1, 8233, '\P{  IS_Zl}', "");
-    Expect(0, 8233, '\P{^  IS_Zl}', "");
-    Error('\p{-Linear_a/a/}');
-    Error('\P{-Linear_a/a/}');
+    Expect(1, 8232, '\p{		Is_Zl}', "");
+    Expect(0, 8232, '\p{^		Is_Zl}', "");
+    Expect(0, 8232, '\P{		Is_Zl}', "");
+    Expect(1, 8232, '\P{^		Is_Zl}', "");
+    Expect(0, 8233, '\p{		Is_Zl}', "");
+    Expect(1, 8233, '\p{^		Is_Zl}', "");
+    Expect(1, 8233, '\P{		Is_Zl}', "");
+    Expect(0, 8233, '\P{^		Is_Zl}', "");
+    Error('\p{ /a/Linear_A}');
+    Error('\P{ /a/Linear_A}');
     Expect(1, 67431, '\p{lineara}', "");
     Expect(0, 67431, '\p{^lineara}', "");
     Expect(0, 67431, '\P{lineara}', "");
@@ -109641,16 +110777,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67432, '\p{^lineara}', "");
     Expect(1, 67432, '\P{lineara}', "");
     Expect(0, 67432, '\P{^lineara}', "");
-    Expect(1, 67431, '\p{	 linear_a}', "");
-    Expect(0, 67431, '\p{^	 linear_a}', "");
-    Expect(0, 67431, '\P{	 linear_a}', "");
-    Expect(1, 67431, '\P{^	 linear_a}', "");
-    Expect(0, 67432, '\p{	 linear_a}', "");
-    Expect(1, 67432, '\p{^	 linear_a}', "");
-    Expect(1, 67432, '\P{	 linear_a}', "");
-    Expect(0, 67432, '\P{^	 linear_a}', "");
-    Error('\p{is_linear_A/a/}');
-    Error('\P{is_linear_A/a/}');
+    Expect(1, 67431, '\p{		linear_A}', "");
+    Expect(0, 67431, '\p{^		linear_A}', "");
+    Expect(0, 67431, '\P{		linear_A}', "");
+    Expect(1, 67431, '\P{^		linear_A}', "");
+    Expect(0, 67432, '\p{		linear_A}', "");
+    Expect(1, 67432, '\p{^		linear_A}', "");
+    Expect(1, 67432, '\P{		linear_A}', "");
+    Expect(0, 67432, '\P{^		linear_A}', "");
+    Error('\p{:=--is_Linear_A}');
+    Error('\P{:=--is_Linear_A}');
     Expect(1, 67431, '\p{islineara}', "");
     Expect(0, 67431, '\p{^islineara}', "");
     Expect(0, 67431, '\P{islineara}', "");
@@ -109659,16 +110795,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67432, '\p{^islineara}', "");
     Expect(1, 67432, '\P{islineara}', "");
     Expect(0, 67432, '\P{^islineara}', "");
-    Expect(1, 67431, '\p{IS_linear_A}', "");
-    Expect(0, 67431, '\p{^IS_linear_A}', "");
-    Expect(0, 67431, '\P{IS_linear_A}', "");
-    Expect(1, 67431, '\P{^IS_linear_A}', "");
-    Expect(0, 67432, '\p{IS_linear_A}', "");
-    Expect(1, 67432, '\p{^IS_linear_A}', "");
-    Expect(1, 67432, '\P{IS_linear_A}', "");
-    Expect(0, 67432, '\P{^IS_linear_A}', "");
-    Error('\p{-Lina:=}');
-    Error('\P{-Lina:=}');
+    Expect(1, 67431, '\p{_-is_Linear_a}', "");
+    Expect(0, 67431, '\p{^_-is_Linear_a}', "");
+    Expect(0, 67431, '\P{_-is_Linear_a}', "");
+    Expect(1, 67431, '\P{^_-is_Linear_a}', "");
+    Expect(0, 67432, '\p{_-is_Linear_a}', "");
+    Expect(1, 67432, '\p{^_-is_Linear_a}', "");
+    Expect(1, 67432, '\P{_-is_Linear_a}', "");
+    Expect(0, 67432, '\P{^_-is_Linear_a}', "");
+    Error('\p{-:=Lina}');
+    Error('\P{-:=Lina}');
     Expect(1, 67431, '\p{lina}', "");
     Expect(0, 67431, '\p{^lina}', "");
     Expect(0, 67431, '\P{lina}', "");
@@ -109677,16 +110813,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67432, '\p{^lina}', "");
     Expect(1, 67432, '\P{lina}', "");
     Expect(0, 67432, '\P{^lina}', "");
-    Expect(1, 67431, '\p{-LINA}', "");
-    Expect(0, 67431, '\p{^-LINA}', "");
-    Expect(0, 67431, '\P{-LINA}', "");
-    Expect(1, 67431, '\P{^-LINA}', "");
-    Expect(0, 67432, '\p{-LINA}', "");
-    Expect(1, 67432, '\p{^-LINA}', "");
-    Expect(1, 67432, '\P{-LINA}', "");
-    Expect(0, 67432, '\P{^-LINA}', "");
-    Error('\p{-is_Lina:=}');
-    Error('\P{-is_Lina:=}');
+    Expect(1, 67431, '\p{  Lina}', "");
+    Expect(0, 67431, '\p{^  Lina}', "");
+    Expect(0, 67431, '\P{  Lina}', "");
+    Expect(1, 67431, '\P{^  Lina}', "");
+    Expect(0, 67432, '\p{  Lina}', "");
+    Expect(1, 67432, '\p{^  Lina}', "");
+    Expect(1, 67432, '\P{  Lina}', "");
+    Expect(0, 67432, '\P{^  Lina}', "");
+    Error('\p{	 Is_lina:=}');
+    Error('\P{	 Is_lina:=}');
     Expect(1, 67431, '\p{islina}', "");
     Expect(0, 67431, '\p{^islina}', "");
     Expect(0, 67431, '\P{islina}', "");
@@ -109695,16 +110831,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67432, '\p{^islina}', "");
     Expect(1, 67432, '\P{islina}', "");
     Expect(0, 67432, '\P{^islina}', "");
-    Expect(1, 67431, '\p{ -IS_Lina}', "");
-    Expect(0, 67431, '\p{^ -IS_Lina}', "");
-    Expect(0, 67431, '\P{ -IS_Lina}', "");
-    Expect(1, 67431, '\P{^ -IS_Lina}', "");
-    Expect(0, 67432, '\p{ -IS_Lina}', "");
-    Expect(1, 67432, '\p{^ -IS_Lina}', "");
-    Expect(1, 67432, '\P{ -IS_Lina}', "");
-    Expect(0, 67432, '\P{^ -IS_Lina}', "");
-    Error('\p{ LINEAR_B:=}');
-    Error('\P{ LINEAR_B:=}');
+    Expect(1, 67431, '\p{- is_LINA}', "");
+    Expect(0, 67431, '\p{^- is_LINA}', "");
+    Expect(0, 67431, '\P{- is_LINA}', "");
+    Expect(1, 67431, '\P{^- is_LINA}', "");
+    Expect(0, 67432, '\p{- is_LINA}', "");
+    Expect(1, 67432, '\p{^- is_LINA}', "");
+    Expect(1, 67432, '\P{- is_LINA}', "");
+    Expect(0, 67432, '\P{^- is_LINA}', "");
+    Error('\p{:=	 Linear_B}');
+    Error('\P{:=	 Linear_B}');
     Expect(1, 65855, '\p{linearb}', "");
     Expect(0, 65855, '\p{^linearb}', "");
     Expect(0, 65855, '\P{linearb}', "");
@@ -109713,16 +110849,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^linearb}', "");
     Expect(1, 65856, '\P{linearb}', "");
     Expect(0, 65856, '\P{^linearb}', "");
-    Expect(1, 65855, '\p{- LINEAR_B}', "");
-    Expect(0, 65855, '\p{^- LINEAR_B}', "");
-    Expect(0, 65855, '\P{- LINEAR_B}', "");
-    Expect(1, 65855, '\P{^- LINEAR_B}', "");
-    Expect(0, 65856, '\p{- LINEAR_B}', "");
-    Expect(1, 65856, '\p{^- LINEAR_B}', "");
-    Expect(1, 65856, '\P{- LINEAR_B}', "");
-    Expect(0, 65856, '\P{^- LINEAR_B}', "");
-    Error('\p{	/a/IS_LINEAR_B}');
-    Error('\P{	/a/IS_LINEAR_B}');
+    Expect(1, 65855, '\p{-_Linear_B}', "");
+    Expect(0, 65855, '\p{^-_Linear_B}', "");
+    Expect(0, 65855, '\P{-_Linear_B}', "");
+    Expect(1, 65855, '\P{^-_Linear_B}', "");
+    Expect(0, 65856, '\p{-_Linear_B}', "");
+    Expect(1, 65856, '\p{^-_Linear_B}', "");
+    Expect(1, 65856, '\P{-_Linear_B}', "");
+    Expect(0, 65856, '\P{^-_Linear_B}', "");
+    Error('\p{:=	Is_Linear_B}');
+    Error('\P{:=	Is_Linear_B}');
     Expect(1, 65855, '\p{islinearb}', "");
     Expect(0, 65855, '\p{^islinearb}', "");
     Expect(0, 65855, '\P{islinearb}', "");
@@ -109731,16 +110867,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^islinearb}', "");
     Expect(1, 65856, '\P{islinearb}', "");
     Expect(0, 65856, '\P{^islinearb}', "");
-    Expect(1, 65855, '\p{_-Is_linear_B}', "");
-    Expect(0, 65855, '\p{^_-Is_linear_B}', "");
-    Expect(0, 65855, '\P{_-Is_linear_B}', "");
-    Expect(1, 65855, '\P{^_-Is_linear_B}', "");
-    Expect(0, 65856, '\p{_-Is_linear_B}', "");
-    Expect(1, 65856, '\p{^_-Is_linear_B}', "");
-    Expect(1, 65856, '\P{_-Is_linear_B}', "");
-    Expect(0, 65856, '\P{^_-Is_linear_B}', "");
-    Error('\p{:=		Linb}');
-    Error('\P{:=		Linb}');
+    Expect(1, 65855, '\p{_IS_LINEAR_B}', "");
+    Expect(0, 65855, '\p{^_IS_LINEAR_B}', "");
+    Expect(0, 65855, '\P{_IS_LINEAR_B}', "");
+    Expect(1, 65855, '\P{^_IS_LINEAR_B}', "");
+    Expect(0, 65856, '\p{_IS_LINEAR_B}', "");
+    Expect(1, 65856, '\p{^_IS_LINEAR_B}', "");
+    Expect(1, 65856, '\P{_IS_LINEAR_B}', "");
+    Expect(0, 65856, '\P{^_IS_LINEAR_B}', "");
+    Error('\p{-LINB/a/}');
+    Error('\P{-LINB/a/}');
     Expect(1, 65855, '\p{linb}', "");
     Expect(0, 65855, '\p{^linb}', "");
     Expect(0, 65855, '\P{linb}', "");
@@ -109749,16 +110885,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^linb}', "");
     Expect(1, 65856, '\P{linb}', "");
     Expect(0, 65856, '\P{^linb}', "");
-    Expect(1, 65855, '\p{ _LINB}', "");
-    Expect(0, 65855, '\p{^ _LINB}', "");
-    Expect(0, 65855, '\P{ _LINB}', "");
-    Expect(1, 65855, '\P{^ _LINB}', "");
-    Expect(0, 65856, '\p{ _LINB}', "");
-    Expect(1, 65856, '\p{^ _LINB}', "");
-    Expect(1, 65856, '\P{ _LINB}', "");
-    Expect(0, 65856, '\P{^ _LINB}', "");
-    Error('\p{_/a/IS_Linb}');
-    Error('\P{_/a/IS_Linb}');
+    Expect(1, 65855, '\p{__linb}', "");
+    Expect(0, 65855, '\p{^__linb}', "");
+    Expect(0, 65855, '\P{__linb}', "");
+    Expect(1, 65855, '\P{^__linb}', "");
+    Expect(0, 65856, '\p{__linb}', "");
+    Expect(1, 65856, '\p{^__linb}', "");
+    Expect(1, 65856, '\P{__linb}', "");
+    Expect(0, 65856, '\P{^__linb}', "");
+    Error('\p{ :=IS_Linb}');
+    Error('\P{ :=IS_Linb}');
     Expect(1, 65855, '\p{islinb}', "");
     Expect(0, 65855, '\p{^islinb}', "");
     Expect(0, 65855, '\P{islinb}', "");
@@ -109767,16 +110903,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65856, '\p{^islinb}', "");
     Expect(1, 65856, '\P{islinb}', "");
     Expect(0, 65856, '\P{^islinb}', "");
-    Expect(1, 65855, '\p{-_is_linb}', "");
-    Expect(0, 65855, '\p{^-_is_linb}', "");
-    Expect(0, 65855, '\P{-_is_linb}', "");
-    Expect(1, 65855, '\P{^-_is_linb}', "");
-    Expect(0, 65856, '\p{-_is_linb}', "");
-    Expect(1, 65856, '\p{^-_is_linb}', "");
-    Expect(1, 65856, '\P{-_is_linb}', "");
-    Expect(0, 65856, '\P{^-_is_linb}', "");
-    Error('\p{ _Linear_B_ideograms/a/}');
-    Error('\P{ _Linear_B_ideograms/a/}');
+    Expect(1, 65855, '\p{	IS_Linb}', "");
+    Expect(0, 65855, '\p{^	IS_Linb}', "");
+    Expect(0, 65855, '\P{	IS_Linb}', "");
+    Expect(1, 65855, '\P{^	IS_Linb}', "");
+    Expect(0, 65856, '\p{	IS_Linb}', "");
+    Expect(1, 65856, '\p{^	IS_Linb}', "");
+    Expect(1, 65856, '\P{	IS_Linb}', "");
+    Expect(0, 65856, '\P{^	IS_Linb}', "");
+    Error('\p{	 linear_B_ideograms:=}');
+    Error('\P{	 linear_B_ideograms:=}');
     Expect(1, 65791, '\p{linearbideograms}', "");
     Expect(0, 65791, '\p{^linearbideograms}', "");
     Expect(0, 65791, '\P{linearbideograms}', "");
@@ -109785,16 +110921,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65792, '\p{^linearbideograms}', "");
     Expect(1, 65792, '\P{linearbideograms}', "");
     Expect(0, 65792, '\P{^linearbideograms}', "");
-    Expect(1, 65791, '\p{-Linear_b_Ideograms}', "");
-    Expect(0, 65791, '\p{^-Linear_b_Ideograms}', "");
-    Expect(0, 65791, '\P{-Linear_b_Ideograms}', "");
-    Expect(1, 65791, '\P{^-Linear_b_Ideograms}', "");
-    Expect(0, 65792, '\p{-Linear_b_Ideograms}', "");
-    Expect(1, 65792, '\p{^-Linear_b_Ideograms}', "");
-    Expect(1, 65792, '\P{-Linear_b_Ideograms}', "");
-    Expect(0, 65792, '\P{^-Linear_b_Ideograms}', "");
-    Error('\p{/a/  is_LINEAR_B_Ideograms}');
-    Error('\P{/a/  is_LINEAR_B_Ideograms}');
+    Expect(1, 65791, '\p{-_linear_B_IDEOGRAMS}', "");
+    Expect(0, 65791, '\p{^-_linear_B_IDEOGRAMS}', "");
+    Expect(0, 65791, '\P{-_linear_B_IDEOGRAMS}', "");
+    Expect(1, 65791, '\P{^-_linear_B_IDEOGRAMS}', "");
+    Expect(0, 65792, '\p{-_linear_B_IDEOGRAMS}', "");
+    Expect(1, 65792, '\p{^-_linear_B_IDEOGRAMS}', "");
+    Expect(1, 65792, '\P{-_linear_B_IDEOGRAMS}', "");
+    Expect(0, 65792, '\P{^-_linear_B_IDEOGRAMS}', "");
+    Error('\p{--is_LINEAR_B_ideograms:=}');
+    Error('\P{--is_LINEAR_B_ideograms:=}');
     Expect(1, 65791, '\p{islinearbideograms}', "");
     Expect(0, 65791, '\p{^islinearbideograms}', "");
     Expect(0, 65791, '\P{islinearbideograms}', "");
@@ -109803,16 +110939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65792, '\p{^islinearbideograms}', "");
     Expect(1, 65792, '\P{islinearbideograms}', "");
     Expect(0, 65792, '\P{^islinearbideograms}', "");
-    Expect(1, 65791, '\p{_-Is_LINEAR_B_Ideograms}', "");
-    Expect(0, 65791, '\p{^_-Is_LINEAR_B_Ideograms}', "");
-    Expect(0, 65791, '\P{_-Is_LINEAR_B_Ideograms}', "");
-    Expect(1, 65791, '\P{^_-Is_LINEAR_B_Ideograms}', "");
-    Expect(0, 65792, '\p{_-Is_LINEAR_B_Ideograms}', "");
-    Expect(1, 65792, '\p{^_-Is_LINEAR_B_Ideograms}', "");
-    Expect(1, 65792, '\P{_-Is_LINEAR_B_Ideograms}', "");
-    Expect(0, 65792, '\P{^_-Is_LINEAR_B_Ideograms}', "");
-    Error('\p{-	in_Linear_B_ideograms/a/}');
-    Error('\P{-	in_Linear_B_ideograms/a/}');
+    Expect(1, 65791, '\p{ IS_LINEAR_b_ideograms}', "");
+    Expect(0, 65791, '\p{^ IS_LINEAR_b_ideograms}', "");
+    Expect(0, 65791, '\P{ IS_LINEAR_b_ideograms}', "");
+    Expect(1, 65791, '\P{^ IS_LINEAR_b_ideograms}', "");
+    Expect(0, 65792, '\p{ IS_LINEAR_b_ideograms}', "");
+    Expect(1, 65792, '\p{^ IS_LINEAR_b_ideograms}', "");
+    Expect(1, 65792, '\P{ IS_LINEAR_b_ideograms}', "");
+    Expect(0, 65792, '\P{^ IS_LINEAR_b_ideograms}', "");
+    Error('\p{_-In_LINEAR_b_ideograms/a/}');
+    Error('\P{_-In_LINEAR_b_ideograms/a/}');
     Expect(1, 65791, '\p{inlinearbideograms}', "");
     Expect(0, 65791, '\p{^inlinearbideograms}', "");
     Expect(0, 65791, '\P{inlinearbideograms}', "");
@@ -109821,16 +110957,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65792, '\p{^inlinearbideograms}', "");
     Expect(1, 65792, '\P{inlinearbideograms}', "");
     Expect(0, 65792, '\P{^inlinearbideograms}', "");
-    Expect(1, 65791, '\p{ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\p{^ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65791, '\P{ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65791, '\P{^ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\p{ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\p{^ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(1, 65792, '\P{ _IN_Linear_B_IDEOGRAMS}', "");
-    Expect(0, 65792, '\P{^ _IN_Linear_B_IDEOGRAMS}', "");
-    Error('\p{ :=Linear_B_Syllabary}');
-    Error('\P{ :=Linear_B_Syllabary}');
+    Expect(1, 65791, '\p{	In_LINEAR_b_Ideograms}', "");
+    Expect(0, 65791, '\p{^	In_LINEAR_b_Ideograms}', "");
+    Expect(0, 65791, '\P{	In_LINEAR_b_Ideograms}', "");
+    Expect(1, 65791, '\P{^	In_LINEAR_b_Ideograms}', "");
+    Expect(0, 65792, '\p{	In_LINEAR_b_Ideograms}', "");
+    Expect(1, 65792, '\p{^	In_LINEAR_b_Ideograms}', "");
+    Expect(1, 65792, '\P{	In_LINEAR_b_Ideograms}', "");
+    Expect(0, 65792, '\P{^	In_LINEAR_b_Ideograms}', "");
+    Error('\p{:=-Linear_B_Syllabary}');
+    Error('\P{:=-Linear_B_Syllabary}');
     Expect(1, 65663, '\p{linearbsyllabary}', "");
     Expect(0, 65663, '\p{^linearbsyllabary}', "");
     Expect(0, 65663, '\P{linearbsyllabary}', "");
@@ -109839,16 +110975,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65664, '\p{^linearbsyllabary}', "");
     Expect(1, 65664, '\P{linearbsyllabary}', "");
     Expect(0, 65664, '\P{^linearbsyllabary}', "");
-    Expect(1, 65663, '\p{-_Linear_B_syllabary}', "");
-    Expect(0, 65663, '\p{^-_Linear_B_syllabary}', "");
-    Expect(0, 65663, '\P{-_Linear_B_syllabary}', "");
-    Expect(1, 65663, '\P{^-_Linear_B_syllabary}', "");
-    Expect(0, 65664, '\p{-_Linear_B_syllabary}', "");
-    Expect(1, 65664, '\p{^-_Linear_B_syllabary}', "");
-    Expect(1, 65664, '\P{-_Linear_B_syllabary}', "");
-    Expect(0, 65664, '\P{^-_Linear_B_syllabary}', "");
-    Error('\p{-Is_linear_b_Syllabary/a/}');
-    Error('\P{-Is_linear_b_Syllabary/a/}');
+    Expect(1, 65663, '\p{__Linear_b_syllabary}', "");
+    Expect(0, 65663, '\p{^__Linear_b_syllabary}', "");
+    Expect(0, 65663, '\P{__Linear_b_syllabary}', "");
+    Expect(1, 65663, '\P{^__Linear_b_syllabary}', "");
+    Expect(0, 65664, '\p{__Linear_b_syllabary}', "");
+    Expect(1, 65664, '\p{^__Linear_b_syllabary}', "");
+    Expect(1, 65664, '\P{__Linear_b_syllabary}', "");
+    Expect(0, 65664, '\P{^__Linear_b_syllabary}', "");
+    Error('\p{/a/		Is_Linear_B_Syllabary}');
+    Error('\P{/a/		Is_Linear_B_Syllabary}');
     Expect(1, 65663, '\p{islinearbsyllabary}', "");
     Expect(0, 65663, '\p{^islinearbsyllabary}', "");
     Expect(0, 65663, '\P{islinearbsyllabary}', "");
@@ -109857,16 +110993,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65664, '\p{^islinearbsyllabary}', "");
     Expect(1, 65664, '\P{islinearbsyllabary}', "");
     Expect(0, 65664, '\P{^islinearbsyllabary}', "");
-    Expect(1, 65663, '\p{ -is_Linear_B_SYLLABARY}', "");
-    Expect(0, 65663, '\p{^ -is_Linear_B_SYLLABARY}', "");
-    Expect(0, 65663, '\P{ -is_Linear_B_SYLLABARY}', "");
-    Expect(1, 65663, '\P{^ -is_Linear_B_SYLLABARY}', "");
-    Expect(0, 65664, '\p{ -is_Linear_B_SYLLABARY}', "");
-    Expect(1, 65664, '\p{^ -is_Linear_B_SYLLABARY}', "");
-    Expect(1, 65664, '\P{ -is_Linear_B_SYLLABARY}', "");
-    Expect(0, 65664, '\P{^ -is_Linear_B_SYLLABARY}', "");
-    Error('\p{ 	In_linear_B_Syllabary/a/}');
-    Error('\P{ 	In_linear_B_Syllabary/a/}');
+    Expect(1, 65663, '\p{is_Linear_B_syllabary}', "");
+    Expect(0, 65663, '\p{^is_Linear_B_syllabary}', "");
+    Expect(0, 65663, '\P{is_Linear_B_syllabary}', "");
+    Expect(1, 65663, '\P{^is_Linear_B_syllabary}', "");
+    Expect(0, 65664, '\p{is_Linear_B_syllabary}', "");
+    Expect(1, 65664, '\p{^is_Linear_B_syllabary}', "");
+    Expect(1, 65664, '\P{is_Linear_B_syllabary}', "");
+    Expect(0, 65664, '\P{^is_Linear_B_syllabary}', "");
+    Error('\p{	/a/IN_linear_B_SYLLABARY}');
+    Error('\P{	/a/IN_linear_B_SYLLABARY}');
     Expect(1, 65663, '\p{inlinearbsyllabary}', "");
     Expect(0, 65663, '\p{^inlinearbsyllabary}', "");
     Expect(0, 65663, '\P{inlinearbsyllabary}', "");
@@ -109875,16 +111011,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65664, '\p{^inlinearbsyllabary}', "");
     Expect(1, 65664, '\P{inlinearbsyllabary}', "");
     Expect(0, 65664, '\P{^inlinearbsyllabary}', "");
-    Expect(1, 65663, '\p{IN_Linear_B_SYLLABARY}', "");
-    Expect(0, 65663, '\p{^IN_Linear_B_SYLLABARY}', "");
-    Expect(0, 65663, '\P{IN_Linear_B_SYLLABARY}', "");
-    Expect(1, 65663, '\P{^IN_Linear_B_SYLLABARY}', "");
-    Expect(0, 65664, '\p{IN_Linear_B_SYLLABARY}', "");
-    Expect(1, 65664, '\p{^IN_Linear_B_SYLLABARY}', "");
-    Expect(1, 65664, '\P{IN_Linear_B_SYLLABARY}', "");
-    Expect(0, 65664, '\P{^IN_Linear_B_SYLLABARY}', "");
-    Error('\p{/a/Lisu}');
-    Error('\P{/a/Lisu}');
+    Expect(1, 65663, '\p{-	IN_Linear_b_Syllabary}', "");
+    Expect(0, 65663, '\p{^-	IN_Linear_b_Syllabary}', "");
+    Expect(0, 65663, '\P{-	IN_Linear_b_Syllabary}', "");
+    Expect(1, 65663, '\P{^-	IN_Linear_b_Syllabary}', "");
+    Expect(0, 65664, '\p{-	IN_Linear_b_Syllabary}', "");
+    Expect(1, 65664, '\p{^-	IN_Linear_b_Syllabary}', "");
+    Expect(1, 65664, '\P{-	IN_Linear_b_Syllabary}', "");
+    Expect(0, 65664, '\P{^-	IN_Linear_b_Syllabary}', "");
+    Error('\p{/a/-lisu}');
+    Error('\P{/a/-lisu}');
     Expect(1, 73648, '\p{lisu}', "");
     Expect(0, 73648, '\p{^lisu}', "");
     Expect(0, 73648, '\P{lisu}', "");
@@ -109893,16 +111029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73649, '\p{^lisu}', "");
     Expect(1, 73649, '\P{lisu}', "");
     Expect(0, 73649, '\P{^lisu}', "");
-    Expect(1, 73648, '\p{	-lisu}', "");
-    Expect(0, 73648, '\p{^	-lisu}', "");
-    Expect(0, 73648, '\P{	-lisu}', "");
-    Expect(1, 73648, '\P{^	-lisu}', "");
-    Expect(0, 73649, '\p{	-lisu}', "");
-    Expect(1, 73649, '\p{^	-lisu}', "");
-    Expect(1, 73649, '\P{	-lisu}', "");
-    Expect(0, 73649, '\P{^	-lisu}', "");
-    Error('\p{:=_ Is_Lisu}');
-    Error('\P{:=_ Is_Lisu}');
+    Expect(1, 73648, '\p{	-LISU}', "");
+    Expect(0, 73648, '\p{^	-LISU}', "");
+    Expect(0, 73648, '\P{	-LISU}', "");
+    Expect(1, 73648, '\P{^	-LISU}', "");
+    Expect(0, 73649, '\p{	-LISU}', "");
+    Expect(1, 73649, '\p{^	-LISU}', "");
+    Expect(1, 73649, '\P{	-LISU}', "");
+    Expect(0, 73649, '\P{^	-LISU}', "");
+    Error('\p{:=is_Lisu}');
+    Error('\P{:=is_Lisu}');
     Expect(1, 73648, '\p{islisu}', "");
     Expect(0, 73648, '\p{^islisu}', "");
     Expect(0, 73648, '\P{islisu}', "");
@@ -109911,16 +111047,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73649, '\p{^islisu}', "");
     Expect(1, 73649, '\P{islisu}', "");
     Expect(0, 73649, '\P{^islisu}', "");
-    Expect(1, 73648, '\p{ -IS_Lisu}', "");
-    Expect(0, 73648, '\p{^ -IS_Lisu}', "");
-    Expect(0, 73648, '\P{ -IS_Lisu}', "");
-    Expect(1, 73648, '\P{^ -IS_Lisu}', "");
-    Expect(0, 73649, '\p{ -IS_Lisu}', "");
-    Expect(1, 73649, '\p{^ -IS_Lisu}', "");
-    Expect(1, 73649, '\P{ -IS_Lisu}', "");
-    Expect(0, 73649, '\P{^ -IS_Lisu}', "");
-    Error('\p{	LISU_Supplement/a/}');
-    Error('\P{	LISU_Supplement/a/}');
+    Expect(1, 73648, '\p{__Is_Lisu}', "");
+    Expect(0, 73648, '\p{^__Is_Lisu}', "");
+    Expect(0, 73648, '\P{__Is_Lisu}', "");
+    Expect(1, 73648, '\P{^__Is_Lisu}', "");
+    Expect(0, 73649, '\p{__Is_Lisu}', "");
+    Expect(1, 73649, '\p{^__Is_Lisu}', "");
+    Expect(1, 73649, '\P{__Is_Lisu}', "");
+    Expect(0, 73649, '\P{^__Is_Lisu}', "");
+    Error('\p{:=	_Lisu_SUPPLEMENT}');
+    Error('\P{:=	_Lisu_SUPPLEMENT}');
     Expect(1, 73663, '\p{lisusupplement}', "");
     Expect(0, 73663, '\p{^lisusupplement}', "");
     Expect(0, 73663, '\P{lisusupplement}', "");
@@ -109929,16 +111065,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73664, '\p{^lisusupplement}', "");
     Expect(1, 73664, '\P{lisusupplement}', "");
     Expect(0, 73664, '\P{^lisusupplement}', "");
-    Expect(1, 73663, '\p{__Lisu_supplement}', "");
-    Expect(0, 73663, '\p{^__Lisu_supplement}', "");
-    Expect(0, 73663, '\P{__Lisu_supplement}', "");
-    Expect(1, 73663, '\P{^__Lisu_supplement}', "");
-    Expect(0, 73664, '\p{__Lisu_supplement}', "");
-    Expect(1, 73664, '\p{^__Lisu_supplement}', "");
-    Expect(1, 73664, '\P{__Lisu_supplement}', "");
-    Expect(0, 73664, '\P{^__Lisu_supplement}', "");
-    Error('\p{-:=IS_Lisu_Supplement}');
-    Error('\P{-:=IS_Lisu_Supplement}');
+    Expect(1, 73663, '\p{ 	LISU_SUPPLEMENT}', "");
+    Expect(0, 73663, '\p{^ 	LISU_SUPPLEMENT}', "");
+    Expect(0, 73663, '\P{ 	LISU_SUPPLEMENT}', "");
+    Expect(1, 73663, '\P{^ 	LISU_SUPPLEMENT}', "");
+    Expect(0, 73664, '\p{ 	LISU_SUPPLEMENT}', "");
+    Expect(1, 73664, '\p{^ 	LISU_SUPPLEMENT}', "");
+    Expect(1, 73664, '\P{ 	LISU_SUPPLEMENT}', "");
+    Expect(0, 73664, '\P{^ 	LISU_SUPPLEMENT}', "");
+    Error('\p{/a/_Is_Lisu_Supplement}');
+    Error('\P{/a/_Is_Lisu_Supplement}');
     Expect(1, 73663, '\p{islisusupplement}', "");
     Expect(0, 73663, '\p{^islisusupplement}', "");
     Expect(0, 73663, '\P{islisusupplement}', "");
@@ -109947,16 +111083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73664, '\p{^islisusupplement}', "");
     Expect(1, 73664, '\P{islisusupplement}', "");
     Expect(0, 73664, '\P{^islisusupplement}', "");
-    Expect(1, 73663, '\p{	-is_lisu_supplement}', "");
-    Expect(0, 73663, '\p{^	-is_lisu_supplement}', "");
-    Expect(0, 73663, '\P{	-is_lisu_supplement}', "");
-    Expect(1, 73663, '\P{^	-is_lisu_supplement}', "");
-    Expect(0, 73664, '\p{	-is_lisu_supplement}', "");
-    Expect(1, 73664, '\p{^	-is_lisu_supplement}', "");
-    Expect(1, 73664, '\P{	-is_lisu_supplement}', "");
-    Expect(0, 73664, '\P{^	-is_lisu_supplement}', "");
-    Error('\p{_In_Lisu_SUPPLEMENT/a/}');
-    Error('\P{_In_Lisu_SUPPLEMENT/a/}');
+    Expect(1, 73663, '\p{-	Is_lisu_Supplement}', "");
+    Expect(0, 73663, '\p{^-	Is_lisu_Supplement}', "");
+    Expect(0, 73663, '\P{-	Is_lisu_Supplement}', "");
+    Expect(1, 73663, '\P{^-	Is_lisu_Supplement}', "");
+    Expect(0, 73664, '\p{-	Is_lisu_Supplement}', "");
+    Expect(1, 73664, '\p{^-	Is_lisu_Supplement}', "");
+    Expect(1, 73664, '\P{-	Is_lisu_Supplement}', "");
+    Expect(0, 73664, '\P{^-	Is_lisu_Supplement}', "");
+    Error('\p{_In_Lisu_SUPPLEMENT:=}');
+    Error('\P{_In_Lisu_SUPPLEMENT:=}');
     Expect(1, 73663, '\p{inlisusupplement}', "");
     Expect(0, 73663, '\p{^inlisusupplement}', "");
     Expect(0, 73663, '\P{inlisusupplement}', "");
@@ -109965,16 +111101,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73664, '\p{^inlisusupplement}', "");
     Expect(1, 73664, '\P{inlisusupplement}', "");
     Expect(0, 73664, '\P{^inlisusupplement}', "");
-    Expect(1, 73663, '\p{-In_Lisu_supplement}', "");
-    Expect(0, 73663, '\p{^-In_Lisu_supplement}', "");
-    Expect(0, 73663, '\P{-In_Lisu_supplement}', "");
-    Expect(1, 73663, '\P{^-In_Lisu_supplement}', "");
-    Expect(0, 73664, '\p{-In_Lisu_supplement}', "");
-    Expect(1, 73664, '\p{^-In_Lisu_supplement}', "");
-    Expect(1, 73664, '\P{-In_Lisu_supplement}', "");
-    Expect(0, 73664, '\P{^-In_Lisu_supplement}', "");
-    Error('\p{_	Lisu_Sup:=}');
-    Error('\P{_	Lisu_Sup:=}');
+    Expect(1, 73663, '\p{_In_LISU_Supplement}', "");
+    Expect(0, 73663, '\p{^_In_LISU_Supplement}', "");
+    Expect(0, 73663, '\P{_In_LISU_Supplement}', "");
+    Expect(1, 73663, '\P{^_In_LISU_Supplement}', "");
+    Expect(0, 73664, '\p{_In_LISU_Supplement}', "");
+    Expect(1, 73664, '\p{^_In_LISU_Supplement}', "");
+    Expect(1, 73664, '\P{_In_LISU_Supplement}', "");
+    Expect(0, 73664, '\P{^_In_LISU_Supplement}', "");
+    Error('\p{:=  LISU_Sup}');
+    Error('\P{:=  LISU_Sup}');
     Expect(1, 73663, '\p{lisusup}', "");
     Expect(0, 73663, '\p{^lisusup}', "");
     Expect(0, 73663, '\P{lisusup}', "");
@@ -109983,16 +111119,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73664, '\p{^lisusup}', "");
     Expect(1, 73664, '\P{lisusup}', "");
     Expect(0, 73664, '\P{^lisusup}', "");
-    Expect(1, 73663, '\p{		Lisu_Sup}', "");
-    Expect(0, 73663, '\p{^		Lisu_Sup}', "");
-    Expect(0, 73663, '\P{		Lisu_Sup}', "");
-    Expect(1, 73663, '\P{^		Lisu_Sup}', "");
-    Expect(0, 73664, '\p{		Lisu_Sup}', "");
-    Expect(1, 73664, '\p{^		Lisu_Sup}', "");
-    Expect(1, 73664, '\P{		Lisu_Sup}', "");
-    Expect(0, 73664, '\P{^		Lisu_Sup}', "");
-    Error('\p{/a/is_LISU_sup}');
-    Error('\P{/a/is_LISU_sup}');
+    Expect(1, 73663, '\p{_ lisu_SUP}', "");
+    Expect(0, 73663, '\p{^_ lisu_SUP}', "");
+    Expect(0, 73663, '\P{_ lisu_SUP}', "");
+    Expect(1, 73663, '\P{^_ lisu_SUP}', "");
+    Expect(0, 73664, '\p{_ lisu_SUP}', "");
+    Expect(1, 73664, '\p{^_ lisu_SUP}', "");
+    Expect(1, 73664, '\P{_ lisu_SUP}', "");
+    Expect(0, 73664, '\P{^_ lisu_SUP}', "");
+    Error('\p{ Is_LISU_SUP:=}');
+    Error('\P{ Is_LISU_SUP:=}');
     Expect(1, 73663, '\p{islisusup}', "");
     Expect(0, 73663, '\p{^islisusup}', "");
     Expect(0, 73663, '\P{islisusup}', "");
@@ -110001,16 +111137,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73664, '\p{^islisusup}', "");
     Expect(1, 73664, '\P{islisusup}', "");
     Expect(0, 73664, '\P{^islisusup}', "");
-    Expect(1, 73663, '\p{_-is_LISU_SUP}', "");
-    Expect(0, 73663, '\p{^_-is_LISU_SUP}', "");
-    Expect(0, 73663, '\P{_-is_LISU_SUP}', "");
-    Expect(1, 73663, '\P{^_-is_LISU_SUP}', "");
-    Expect(0, 73664, '\p{_-is_LISU_SUP}', "");
-    Expect(1, 73664, '\p{^_-is_LISU_SUP}', "");
-    Expect(1, 73664, '\P{_-is_LISU_SUP}', "");
-    Expect(0, 73664, '\P{^_-is_LISU_SUP}', "");
-    Error('\p{/a/_ in_LISU_Sup}');
-    Error('\P{/a/_ in_LISU_Sup}');
+    Expect(1, 73663, '\p{__Is_lisu_Sup}', "");
+    Expect(0, 73663, '\p{^__Is_lisu_Sup}', "");
+    Expect(0, 73663, '\P{__Is_lisu_Sup}', "");
+    Expect(1, 73663, '\P{^__Is_lisu_Sup}', "");
+    Expect(0, 73664, '\p{__Is_lisu_Sup}', "");
+    Expect(1, 73664, '\p{^__Is_lisu_Sup}', "");
+    Expect(1, 73664, '\P{__Is_lisu_Sup}', "");
+    Expect(0, 73664, '\P{^__Is_lisu_Sup}', "");
+    Error('\p{-:=In_LISU_Sup}');
+    Error('\P{-:=In_LISU_Sup}');
     Expect(1, 73663, '\p{inlisusup}', "");
     Expect(0, 73663, '\p{^inlisusup}', "");
     Expect(0, 73663, '\P{inlisusup}', "");
@@ -110019,16 +111155,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73664, '\p{^inlisusup}', "");
     Expect(1, 73664, '\P{inlisusup}', "");
     Expect(0, 73664, '\P{^inlisusup}', "");
-    Expect(1, 73663, '\p{- in_Lisu_SUP}', "");
-    Expect(0, 73663, '\p{^- in_Lisu_SUP}', "");
-    Expect(0, 73663, '\P{- in_Lisu_SUP}', "");
-    Expect(1, 73663, '\P{^- in_Lisu_SUP}', "");
-    Expect(0, 73664, '\p{- in_Lisu_SUP}', "");
-    Expect(1, 73664, '\p{^- in_Lisu_SUP}', "");
-    Expect(1, 73664, '\P{- in_Lisu_SUP}', "");
-    Expect(0, 73664, '\P{^- in_Lisu_SUP}', "");
-    Error('\p{	_Logical_Order_Exception:=}');
-    Error('\P{	_Logical_Order_Exception:=}');
+    Expect(1, 73663, '\p{ IN_Lisu_Sup}', "");
+    Expect(0, 73663, '\p{^ IN_Lisu_Sup}', "");
+    Expect(0, 73663, '\P{ IN_Lisu_Sup}', "");
+    Expect(1, 73663, '\P{^ IN_Lisu_Sup}', "");
+    Expect(0, 73664, '\p{ IN_Lisu_Sup}', "");
+    Expect(1, 73664, '\p{^ IN_Lisu_Sup}', "");
+    Expect(1, 73664, '\P{ IN_Lisu_Sup}', "");
+    Expect(0, 73664, '\P{^ IN_Lisu_Sup}', "");
+    Error('\p{	-Logical_Order_exception:=}');
+    Error('\P{	-Logical_Order_exception:=}');
     Expect(1, 43708, '\p{logicalorderexception}', "");
     Expect(0, 43708, '\p{^logicalorderexception}', "");
     Expect(0, 43708, '\P{logicalorderexception}', "");
@@ -110037,16 +111173,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43709, '\p{^logicalorderexception}', "");
     Expect(1, 43709, '\P{logicalorderexception}', "");
     Expect(0, 43709, '\P{^logicalorderexception}', "");
-    Expect(1, 43708, '\p{	Logical_order_EXCEPTION}', "");
-    Expect(0, 43708, '\p{^	Logical_order_EXCEPTION}', "");
-    Expect(0, 43708, '\P{	Logical_order_EXCEPTION}', "");
-    Expect(1, 43708, '\P{^	Logical_order_EXCEPTION}', "");
-    Expect(0, 43709, '\p{	Logical_order_EXCEPTION}', "");
-    Expect(1, 43709, '\p{^	Logical_order_EXCEPTION}', "");
-    Expect(1, 43709, '\P{	Logical_order_EXCEPTION}', "");
-    Expect(0, 43709, '\P{^	Logical_order_EXCEPTION}', "");
-    Error('\p{/a/-is_Logical_order_Exception}');
-    Error('\P{/a/-is_Logical_order_Exception}');
+    Expect(1, 43708, '\p{Logical_Order_EXCEPTION}', "");
+    Expect(0, 43708, '\p{^Logical_Order_EXCEPTION}', "");
+    Expect(0, 43708, '\P{Logical_Order_EXCEPTION}', "");
+    Expect(1, 43708, '\P{^Logical_Order_EXCEPTION}', "");
+    Expect(0, 43709, '\p{Logical_Order_EXCEPTION}', "");
+    Expect(1, 43709, '\p{^Logical_Order_EXCEPTION}', "");
+    Expect(1, 43709, '\P{Logical_Order_EXCEPTION}', "");
+    Expect(0, 43709, '\P{^Logical_Order_EXCEPTION}', "");
+    Error('\p{		Is_LOGICAL_order_Exception/a/}');
+    Error('\P{		Is_LOGICAL_order_Exception/a/}');
     Expect(1, 43708, '\p{islogicalorderexception}', "");
     Expect(0, 43708, '\p{^islogicalorderexception}', "");
     Expect(0, 43708, '\P{islogicalorderexception}', "");
@@ -110055,16 +111191,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43709, '\p{^islogicalorderexception}', "");
     Expect(1, 43709, '\P{islogicalorderexception}', "");
     Expect(0, 43709, '\P{^islogicalorderexception}', "");
-    Expect(1, 43708, '\p{__is_LOGICAL_order_exception}', "");
-    Expect(0, 43708, '\p{^__is_LOGICAL_order_exception}', "");
-    Expect(0, 43708, '\P{__is_LOGICAL_order_exception}', "");
-    Expect(1, 43708, '\P{^__is_LOGICAL_order_exception}', "");
-    Expect(0, 43709, '\p{__is_LOGICAL_order_exception}', "");
-    Expect(1, 43709, '\p{^__is_LOGICAL_order_exception}', "");
-    Expect(1, 43709, '\P{__is_LOGICAL_order_exception}', "");
-    Expect(0, 43709, '\P{^__is_LOGICAL_order_exception}', "");
-    Error('\p{:=_	loe}');
-    Error('\P{:=_	loe}');
+    Expect(1, 43708, '\p{-IS_Logical_order_exception}', "");
+    Expect(0, 43708, '\p{^-IS_Logical_order_exception}', "");
+    Expect(0, 43708, '\P{-IS_Logical_order_exception}', "");
+    Expect(1, 43708, '\P{^-IS_Logical_order_exception}', "");
+    Expect(0, 43709, '\p{-IS_Logical_order_exception}', "");
+    Expect(1, 43709, '\p{^-IS_Logical_order_exception}', "");
+    Expect(1, 43709, '\P{-IS_Logical_order_exception}', "");
+    Expect(0, 43709, '\P{^-IS_Logical_order_exception}', "");
+    Error('\p{_:=loe}');
+    Error('\P{_:=loe}');
     Expect(1, 43708, '\p{loe}', "");
     Expect(0, 43708, '\p{^loe}', "");
     Expect(0, 43708, '\P{loe}', "");
@@ -110073,16 +111209,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43709, '\p{^loe}', "");
     Expect(1, 43709, '\P{loe}', "");
     Expect(0, 43709, '\P{^loe}', "");
-    Expect(1, 43708, '\p{	 loe}', "");
-    Expect(0, 43708, '\p{^	 loe}', "");
-    Expect(0, 43708, '\P{	 loe}', "");
-    Expect(1, 43708, '\P{^	 loe}', "");
-    Expect(0, 43709, '\p{	 loe}', "");
-    Expect(1, 43709, '\p{^	 loe}', "");
-    Expect(1, 43709, '\P{	 loe}', "");
-    Expect(0, 43709, '\P{^	 loe}', "");
-    Error('\p{ :=is_LOE}');
-    Error('\P{ :=is_LOE}');
+    Expect(1, 43708, '\p{	-LOE}', "");
+    Expect(0, 43708, '\p{^	-LOE}', "");
+    Expect(0, 43708, '\P{	-LOE}', "");
+    Expect(1, 43708, '\P{^	-LOE}', "");
+    Expect(0, 43709, '\p{	-LOE}', "");
+    Expect(1, 43709, '\p{^	-LOE}', "");
+    Expect(1, 43709, '\P{	-LOE}', "");
+    Expect(0, 43709, '\P{^	-LOE}', "");
+    Error('\p{ -Is_LOE:=}');
+    Error('\P{ -Is_LOE:=}');
     Expect(1, 43708, '\p{isloe}', "");
     Expect(0, 43708, '\p{^isloe}', "");
     Expect(0, 43708, '\P{isloe}', "");
@@ -110091,16 +111227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43709, '\p{^isloe}', "");
     Expect(1, 43709, '\P{isloe}', "");
     Expect(0, 43709, '\P{^isloe}', "");
-    Expect(1, 43708, '\p{	_Is_LOE}', "");
-    Expect(0, 43708, '\p{^	_Is_LOE}', "");
-    Expect(0, 43708, '\P{	_Is_LOE}', "");
-    Expect(1, 43708, '\P{^	_Is_LOE}', "");
-    Expect(0, 43709, '\p{	_Is_LOE}', "");
-    Expect(1, 43709, '\p{^	_Is_LOE}', "");
-    Expect(1, 43709, '\P{	_Is_LOE}', "");
-    Expect(0, 43709, '\P{^	_Is_LOE}', "");
-    Error('\p{--Low_SURROGATES:=}');
-    Error('\P{--Low_SURROGATES:=}');
+    Expect(1, 43708, '\p{	is_LOE}', "");
+    Expect(0, 43708, '\p{^	is_LOE}', "");
+    Expect(0, 43708, '\P{	is_LOE}', "");
+    Expect(1, 43708, '\P{^	is_LOE}', "");
+    Expect(0, 43709, '\p{	is_LOE}', "");
+    Expect(1, 43709, '\p{^	is_LOE}', "");
+    Expect(1, 43709, '\P{	is_LOE}', "");
+    Expect(0, 43709, '\P{^	is_LOE}', "");
+    Error('\p{- Low_Surrogates:=}');
+    Error('\P{- Low_Surrogates:=}');
     Expect(1, 57343, '\p{lowsurrogates}', "");
     Expect(0, 57343, '\p{^lowsurrogates}', "");
     Expect(0, 57343, '\P{lowsurrogates}', "");
@@ -110109,16 +111245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^lowsurrogates}', "");
     Expect(1, 57344, '\P{lowsurrogates}', "");
     Expect(0, 57344, '\P{^lowsurrogates}', "");
-    Expect(1, 57343, '\p{_	low_Surrogates}', "");
-    Expect(0, 57343, '\p{^_	low_Surrogates}', "");
-    Expect(0, 57343, '\P{_	low_Surrogates}', "");
-    Expect(1, 57343, '\P{^_	low_Surrogates}', "");
-    Expect(0, 57344, '\p{_	low_Surrogates}', "");
-    Expect(1, 57344, '\p{^_	low_Surrogates}', "");
-    Expect(1, 57344, '\P{_	low_Surrogates}', "");
-    Expect(0, 57344, '\P{^_	low_Surrogates}', "");
-    Error('\p{:=  Is_Low_SURROGATES}');
-    Error('\P{:=  Is_Low_SURROGATES}');
+    Expect(1, 57343, '\p{		Low_surrogates}', "");
+    Expect(0, 57343, '\p{^		Low_surrogates}', "");
+    Expect(0, 57343, '\P{		Low_surrogates}', "");
+    Expect(1, 57343, '\P{^		Low_surrogates}', "");
+    Expect(0, 57344, '\p{		Low_surrogates}', "");
+    Expect(1, 57344, '\p{^		Low_surrogates}', "");
+    Expect(1, 57344, '\P{		Low_surrogates}', "");
+    Expect(0, 57344, '\P{^		Low_surrogates}', "");
+    Error('\p{_:=Is_Low_Surrogates}');
+    Error('\P{_:=Is_Low_Surrogates}');
     Expect(1, 57343, '\p{islowsurrogates}', "");
     Expect(0, 57343, '\p{^islowsurrogates}', "");
     Expect(0, 57343, '\P{islowsurrogates}', "");
@@ -110127,16 +111263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^islowsurrogates}', "");
     Expect(1, 57344, '\P{islowsurrogates}', "");
     Expect(0, 57344, '\P{^islowsurrogates}', "");
-    Expect(1, 57343, '\p{-IS_LOW_SURROGATES}', "");
-    Expect(0, 57343, '\p{^-IS_LOW_SURROGATES}', "");
-    Expect(0, 57343, '\P{-IS_LOW_SURROGATES}', "");
-    Expect(1, 57343, '\P{^-IS_LOW_SURROGATES}', "");
-    Expect(0, 57344, '\p{-IS_LOW_SURROGATES}', "");
-    Expect(1, 57344, '\p{^-IS_LOW_SURROGATES}', "");
-    Expect(1, 57344, '\P{-IS_LOW_SURROGATES}', "");
-    Expect(0, 57344, '\P{^-IS_LOW_SURROGATES}', "");
-    Error('\p{_:=in_LOW_surrogates}');
-    Error('\P{_:=in_LOW_surrogates}');
+    Expect(1, 57343, '\p{		is_low_Surrogates}', "");
+    Expect(0, 57343, '\p{^		is_low_Surrogates}', "");
+    Expect(0, 57343, '\P{		is_low_Surrogates}', "");
+    Expect(1, 57343, '\P{^		is_low_Surrogates}', "");
+    Expect(0, 57344, '\p{		is_low_Surrogates}', "");
+    Expect(1, 57344, '\p{^		is_low_Surrogates}', "");
+    Expect(1, 57344, '\P{		is_low_Surrogates}', "");
+    Expect(0, 57344, '\P{^		is_low_Surrogates}', "");
+    Error('\p{/a/  In_Low_surrogates}');
+    Error('\P{/a/  In_Low_surrogates}');
     Expect(1, 57343, '\p{inlowsurrogates}', "");
     Expect(0, 57343, '\p{^inlowsurrogates}', "");
     Expect(0, 57343, '\P{inlowsurrogates}', "");
@@ -110145,16 +111281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 57344, '\p{^inlowsurrogates}', "");
     Expect(1, 57344, '\P{inlowsurrogates}', "");
     Expect(0, 57344, '\P{^inlowsurrogates}', "");
-    Expect(1, 57343, '\p{--In_Low_SURROGATES}', "");
-    Expect(0, 57343, '\p{^--In_Low_SURROGATES}', "");
-    Expect(0, 57343, '\P{--In_Low_SURROGATES}', "");
-    Expect(1, 57343, '\P{^--In_Low_SURROGATES}', "");
-    Expect(0, 57344, '\p{--In_Low_SURROGATES}', "");
-    Expect(1, 57344, '\p{^--In_Low_SURROGATES}', "");
-    Expect(1, 57344, '\P{--In_Low_SURROGATES}', "");
-    Expect(0, 57344, '\P{^--In_Low_SURROGATES}', "");
-    Error('\p{-	lowercase_Letter:=}');
-    Error('\P{-	lowercase_Letter:=}');
+    Expect(1, 57343, '\p{		In_Low_Surrogates}', "");
+    Expect(0, 57343, '\p{^		In_Low_Surrogates}', "");
+    Expect(0, 57343, '\P{		In_Low_Surrogates}', "");
+    Expect(1, 57343, '\P{^		In_Low_Surrogates}', "");
+    Expect(0, 57344, '\p{		In_Low_Surrogates}', "");
+    Expect(1, 57344, '\p{^		In_Low_Surrogates}', "");
+    Expect(1, 57344, '\P{		In_Low_Surrogates}', "");
+    Expect(0, 57344, '\P{^		In_Low_Surrogates}', "");
+    Error('\p{-:=Lowercase_Letter}');
+    Error('\P{-:=Lowercase_Letter}');
     Expect(1, 125251, '\p{lowercaseletter}', "");
     Expect(0, 125251, '\p{^lowercaseletter}', "");
     Expect(0, 125251, '\P{lowercaseletter}', "");
@@ -110163,16 +111299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^lowercaseletter}', "");
     Expect(1, 125252, '\P{lowercaseletter}', "");
     Expect(0, 125252, '\P{^lowercaseletter}', "");
-    Expect(1, 125251, '\p{	-LOWERCASE_Letter}', "");
-    Expect(0, 125251, '\p{^	-LOWERCASE_Letter}', "");
-    Expect(0, 125251, '\P{	-LOWERCASE_Letter}', "");
-    Expect(1, 125251, '\P{^	-LOWERCASE_Letter}', "");
-    Expect(0, 125252, '\p{	-LOWERCASE_Letter}', "");
-    Expect(1, 125252, '\p{^	-LOWERCASE_Letter}', "");
-    Expect(1, 125252, '\P{	-LOWERCASE_Letter}', "");
-    Expect(0, 125252, '\P{^	-LOWERCASE_Letter}', "");
-    Error('\p{  is_LOWERCASE_LETTER:=}');
-    Error('\P{  is_LOWERCASE_LETTER:=}');
+    Expect(1, 125251, '\p{ -Lowercase_Letter}', "");
+    Expect(0, 125251, '\p{^ -Lowercase_Letter}', "");
+    Expect(0, 125251, '\P{ -Lowercase_Letter}', "");
+    Expect(1, 125251, '\P{^ -Lowercase_Letter}', "");
+    Expect(0, 125252, '\p{ -Lowercase_Letter}', "");
+    Expect(1, 125252, '\p{^ -Lowercase_Letter}', "");
+    Expect(1, 125252, '\P{ -Lowercase_Letter}', "");
+    Expect(0, 125252, '\P{^ -Lowercase_Letter}', "");
+    Error('\p{/a/		Is_Lowercase_Letter}');
+    Error('\P{/a/		Is_Lowercase_Letter}');
     Expect(1, 125251, '\p{islowercaseletter}', "");
     Expect(0, 125251, '\p{^islowercaseletter}', "");
     Expect(0, 125251, '\P{islowercaseletter}', "");
@@ -110181,16 +111317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^islowercaseletter}', "");
     Expect(1, 125252, '\P{islowercaseletter}', "");
     Expect(0, 125252, '\P{^islowercaseletter}', "");
-    Expect(1, 125251, '\p{_-Is_Lowercase_LETTER}', "");
-    Expect(0, 125251, '\p{^_-Is_Lowercase_LETTER}', "");
-    Expect(0, 125251, '\P{_-Is_Lowercase_LETTER}', "");
-    Expect(1, 125251, '\P{^_-Is_Lowercase_LETTER}', "");
-    Expect(0, 125252, '\p{_-Is_Lowercase_LETTER}', "");
-    Expect(1, 125252, '\p{^_-Is_Lowercase_LETTER}', "");
-    Expect(1, 125252, '\P{_-Is_Lowercase_LETTER}', "");
-    Expect(0, 125252, '\P{^_-Is_Lowercase_LETTER}', "");
-    Error('\p{		Ll/a/}');
-    Error('\P{		Ll/a/}');
+    Expect(1, 125251, '\p{ 	Is_LOWERCASE_LETTER}', "");
+    Expect(0, 125251, '\p{^ 	Is_LOWERCASE_LETTER}', "");
+    Expect(0, 125251, '\P{ 	Is_LOWERCASE_LETTER}', "");
+    Expect(1, 125251, '\P{^ 	Is_LOWERCASE_LETTER}', "");
+    Expect(0, 125252, '\p{ 	Is_LOWERCASE_LETTER}', "");
+    Expect(1, 125252, '\p{^ 	Is_LOWERCASE_LETTER}', "");
+    Expect(1, 125252, '\P{ 	Is_LOWERCASE_LETTER}', "");
+    Expect(0, 125252, '\P{^ 	Is_LOWERCASE_LETTER}', "");
+    Error('\p{	_Ll/a/}');
+    Error('\P{	_Ll/a/}');
     Expect(1, 125251, '\p{ll}', "");
     Expect(0, 125251, '\p{^ll}', "");
     Expect(0, 125251, '\P{ll}', "");
@@ -110199,16 +111335,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^ll}', "");
     Expect(1, 125252, '\P{ll}', "");
     Expect(0, 125252, '\P{^ll}', "");
-    Expect(1, 125251, '\p{-	LL}', "");
-    Expect(0, 125251, '\p{^-	LL}', "");
-    Expect(0, 125251, '\P{-	LL}', "");
-    Expect(1, 125251, '\P{^-	LL}', "");
-    Expect(0, 125252, '\p{-	LL}', "");
-    Expect(1, 125252, '\p{^-	LL}', "");
-    Expect(1, 125252, '\P{-	LL}', "");
-    Expect(0, 125252, '\P{^-	LL}', "");
-    Error('\p{:=	_is_Ll}');
-    Error('\P{:=	_is_Ll}');
+    Expect(1, 125251, '\p{_Ll}', "");
+    Expect(0, 125251, '\p{^_Ll}', "");
+    Expect(0, 125251, '\P{_Ll}', "");
+    Expect(1, 125251, '\P{^_Ll}', "");
+    Expect(0, 125252, '\p{_Ll}', "");
+    Expect(1, 125252, '\p{^_Ll}', "");
+    Expect(1, 125252, '\P{_Ll}', "");
+    Expect(0, 125252, '\P{^_Ll}', "");
+    Error('\p{_-is_ll:=}');
+    Error('\P{_-is_ll:=}');
     Expect(1, 125251, '\p{isll}', "");
     Expect(0, 125251, '\p{^isll}', "");
     Expect(0, 125251, '\P{isll}', "");
@@ -110217,16 +111353,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125252, '\p{^isll}', "");
     Expect(1, 125252, '\P{isll}', "");
     Expect(0, 125252, '\P{^isll}', "");
-    Expect(1, 125251, '\p{	_IS_Ll}', "");
-    Expect(0, 125251, '\p{^	_IS_Ll}', "");
-    Expect(0, 125251, '\P{	_IS_Ll}', "");
-    Expect(1, 125251, '\P{^	_IS_Ll}', "");
-    Expect(0, 125252, '\p{	_IS_Ll}', "");
-    Expect(1, 125252, '\p{^	_IS_Ll}', "");
-    Expect(1, 125252, '\P{	_IS_Ll}', "");
-    Expect(0, 125252, '\P{^	_IS_Ll}', "");
-    Error('\p{ :=Lycian}');
-    Error('\P{ :=Lycian}');
+    Expect(1, 125251, '\p{_ IS_Ll}', "");
+    Expect(0, 125251, '\p{^_ IS_Ll}', "");
+    Expect(0, 125251, '\P{_ IS_Ll}', "");
+    Expect(1, 125251, '\P{^_ IS_Ll}', "");
+    Expect(0, 125252, '\p{_ IS_Ll}', "");
+    Expect(1, 125252, '\p{^_ IS_Ll}', "");
+    Expect(1, 125252, '\P{_ IS_Ll}', "");
+    Expect(0, 125252, '\P{^_ IS_Ll}', "");
+    Error('\p{ -LYCIAN:=}');
+    Error('\P{ -LYCIAN:=}');
     Expect(1, 66204, '\p{lycian}', "");
     Expect(0, 66204, '\p{^lycian}', "");
     Expect(0, 66204, '\P{lycian}', "");
@@ -110235,16 +111371,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66205, '\p{^lycian}', "");
     Expect(1, 66205, '\P{lycian}', "");
     Expect(0, 66205, '\P{^lycian}', "");
-    Expect(1, 66204, '\p{_ lycian}', "");
-    Expect(0, 66204, '\p{^_ lycian}', "");
-    Expect(0, 66204, '\P{_ lycian}', "");
-    Expect(1, 66204, '\P{^_ lycian}', "");
-    Expect(0, 66205, '\p{_ lycian}', "");
-    Expect(1, 66205, '\p{^_ lycian}', "");
-    Expect(1, 66205, '\P{_ lycian}', "");
-    Expect(0, 66205, '\P{^_ lycian}', "");
-    Error('\p{ /a/IS_Lycian}');
-    Error('\P{ /a/IS_Lycian}');
+    Expect(1, 66204, '\p{ _Lycian}', "");
+    Expect(0, 66204, '\p{^ _Lycian}', "");
+    Expect(0, 66204, '\P{ _Lycian}', "");
+    Expect(1, 66204, '\P{^ _Lycian}', "");
+    Expect(0, 66205, '\p{ _Lycian}', "");
+    Expect(1, 66205, '\p{^ _Lycian}', "");
+    Expect(1, 66205, '\P{ _Lycian}', "");
+    Expect(0, 66205, '\P{^ _Lycian}', "");
+    Error('\p{	_Is_LYCIAN/a/}');
+    Error('\P{	_Is_LYCIAN/a/}');
     Expect(1, 66204, '\p{islycian}', "");
     Expect(0, 66204, '\p{^islycian}', "");
     Expect(0, 66204, '\P{islycian}', "");
@@ -110253,16 +111389,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66205, '\p{^islycian}', "");
     Expect(1, 66205, '\P{islycian}', "");
     Expect(0, 66205, '\P{^islycian}', "");
-    Expect(1, 66204, '\p{-IS_Lycian}', "");
-    Expect(0, 66204, '\p{^-IS_Lycian}', "");
-    Expect(0, 66204, '\P{-IS_Lycian}', "");
-    Expect(1, 66204, '\P{^-IS_Lycian}', "");
-    Expect(0, 66205, '\p{-IS_Lycian}', "");
-    Expect(1, 66205, '\p{^-IS_Lycian}', "");
-    Expect(1, 66205, '\P{-IS_Lycian}', "");
-    Expect(0, 66205, '\P{^-IS_Lycian}', "");
-    Error('\p{  lyci:=}');
-    Error('\P{  lyci:=}');
+    Expect(1, 66204, '\p{ -Is_Lycian}', "");
+    Expect(0, 66204, '\p{^ -Is_Lycian}', "");
+    Expect(0, 66204, '\P{ -Is_Lycian}', "");
+    Expect(1, 66204, '\P{^ -Is_Lycian}', "");
+    Expect(0, 66205, '\p{ -Is_Lycian}', "");
+    Expect(1, 66205, '\p{^ -Is_Lycian}', "");
+    Expect(1, 66205, '\P{ -Is_Lycian}', "");
+    Expect(0, 66205, '\P{^ -Is_Lycian}', "");
+    Error('\p{:=_-Lyci}');
+    Error('\P{:=_-Lyci}');
     Expect(1, 66204, '\p{lyci}', "");
     Expect(0, 66204, '\p{^lyci}', "");
     Expect(0, 66204, '\P{lyci}', "");
@@ -110271,16 +111407,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66205, '\p{^lyci}', "");
     Expect(1, 66205, '\P{lyci}', "");
     Expect(0, 66205, '\P{^lyci}', "");
-    Expect(1, 66204, '\p{	-Lyci}', "");
-    Expect(0, 66204, '\p{^	-Lyci}', "");
-    Expect(0, 66204, '\P{	-Lyci}', "");
-    Expect(1, 66204, '\P{^	-Lyci}', "");
-    Expect(0, 66205, '\p{	-Lyci}', "");
-    Expect(1, 66205, '\p{^	-Lyci}', "");
-    Expect(1, 66205, '\P{	-Lyci}', "");
-    Expect(0, 66205, '\P{^	-Lyci}', "");
-    Error('\p{:=__Is_Lyci}');
-    Error('\P{:=__Is_Lyci}');
+    Expect(1, 66204, '\p{ -Lyci}', "");
+    Expect(0, 66204, '\p{^ -Lyci}', "");
+    Expect(0, 66204, '\P{ -Lyci}', "");
+    Expect(1, 66204, '\P{^ -Lyci}', "");
+    Expect(0, 66205, '\p{ -Lyci}', "");
+    Expect(1, 66205, '\p{^ -Lyci}', "");
+    Expect(1, 66205, '\P{ -Lyci}', "");
+    Expect(0, 66205, '\P{^ -Lyci}', "");
+    Error('\p{_	Is_Lyci:=}');
+    Error('\P{_	Is_Lyci:=}');
     Expect(1, 66204, '\p{islyci}', "");
     Expect(0, 66204, '\p{^islyci}', "");
     Expect(0, 66204, '\P{islyci}', "");
@@ -110289,16 +111425,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66205, '\p{^islyci}', "");
     Expect(1, 66205, '\P{islyci}', "");
     Expect(0, 66205, '\P{^islyci}', "");
-    Expect(1, 66204, '\p{ _Is_Lyci}', "");
-    Expect(0, 66204, '\p{^ _Is_Lyci}', "");
-    Expect(0, 66204, '\P{ _Is_Lyci}', "");
-    Expect(1, 66204, '\P{^ _Is_Lyci}', "");
-    Expect(0, 66205, '\p{ _Is_Lyci}', "");
-    Expect(1, 66205, '\p{^ _Is_Lyci}', "");
-    Expect(1, 66205, '\P{ _Is_Lyci}', "");
-    Expect(0, 66205, '\P{^ _Is_Lyci}', "");
-    Error('\p{__lydian:=}');
-    Error('\P{__lydian:=}');
+    Expect(1, 66204, '\p{-	is_lyci}', "");
+    Expect(0, 66204, '\p{^-	is_lyci}', "");
+    Expect(0, 66204, '\P{-	is_lyci}', "");
+    Expect(1, 66204, '\P{^-	is_lyci}', "");
+    Expect(0, 66205, '\p{-	is_lyci}', "");
+    Expect(1, 66205, '\p{^-	is_lyci}', "");
+    Expect(1, 66205, '\P{-	is_lyci}', "");
+    Expect(0, 66205, '\P{^-	is_lyci}', "");
+    Error('\p{:=	_LYDIAN}');
+    Error('\P{:=	_LYDIAN}');
     Expect(1, 67903, '\p{lydian}', "");
     Expect(0, 67903, '\p{^lydian}', "");
     Expect(0, 67903, '\P{lydian}', "");
@@ -110307,16 +111443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67904, '\p{^lydian}', "");
     Expect(1, 67904, '\P{lydian}', "");
     Expect(0, 67904, '\P{^lydian}', "");
-    Expect(1, 67903, '\p{		lydian}', "");
-    Expect(0, 67903, '\p{^		lydian}', "");
-    Expect(0, 67903, '\P{		lydian}', "");
-    Expect(1, 67903, '\P{^		lydian}', "");
-    Expect(0, 67904, '\p{		lydian}', "");
-    Expect(1, 67904, '\p{^		lydian}', "");
-    Expect(1, 67904, '\P{		lydian}', "");
-    Expect(0, 67904, '\P{^		lydian}', "");
-    Error('\p{/a/	-Is_Lydian}');
-    Error('\P{/a/	-Is_Lydian}');
+    Expect(1, 67903, '\p{-lydian}', "");
+    Expect(0, 67903, '\p{^-lydian}', "");
+    Expect(0, 67903, '\P{-lydian}', "");
+    Expect(1, 67903, '\P{^-lydian}', "");
+    Expect(0, 67904, '\p{-lydian}', "");
+    Expect(1, 67904, '\p{^-lydian}', "");
+    Expect(1, 67904, '\P{-lydian}', "");
+    Expect(0, 67904, '\P{^-lydian}', "");
+    Error('\p{:=  Is_Lydian}');
+    Error('\P{:=  Is_Lydian}');
     Expect(1, 67903, '\p{islydian}', "");
     Expect(0, 67903, '\p{^islydian}', "");
     Expect(0, 67903, '\P{islydian}', "");
@@ -110325,16 +111461,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67904, '\p{^islydian}', "");
     Expect(1, 67904, '\P{islydian}', "");
     Expect(0, 67904, '\P{^islydian}', "");
-    Expect(1, 67903, '\p{-	is_Lydian}', "");
-    Expect(0, 67903, '\p{^-	is_Lydian}', "");
-    Expect(0, 67903, '\P{-	is_Lydian}', "");
-    Expect(1, 67903, '\P{^-	is_Lydian}', "");
-    Expect(0, 67904, '\p{-	is_Lydian}', "");
-    Expect(1, 67904, '\p{^-	is_Lydian}', "");
-    Expect(1, 67904, '\P{-	is_Lydian}', "");
-    Expect(0, 67904, '\P{^-	is_Lydian}', "");
-    Error('\p{:=	_Lydi}');
-    Error('\P{:=	_Lydi}');
+    Expect(1, 67903, '\p{-Is_lydian}', "");
+    Expect(0, 67903, '\p{^-Is_lydian}', "");
+    Expect(0, 67903, '\P{-Is_lydian}', "");
+    Expect(1, 67903, '\P{^-Is_lydian}', "");
+    Expect(0, 67904, '\p{-Is_lydian}', "");
+    Expect(1, 67904, '\p{^-Is_lydian}', "");
+    Expect(1, 67904, '\P{-Is_lydian}', "");
+    Expect(0, 67904, '\P{^-Is_lydian}', "");
+    Error('\p{ /a/Lydi}');
+    Error('\P{ /a/Lydi}');
     Expect(1, 67903, '\p{lydi}', "");
     Expect(0, 67903, '\p{^lydi}', "");
     Expect(0, 67903, '\P{lydi}', "");
@@ -110343,16 +111479,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67904, '\p{^lydi}', "");
     Expect(1, 67904, '\P{lydi}', "");
     Expect(0, 67904, '\P{^lydi}', "");
-    Expect(1, 67903, '\p{	Lydi}', "");
-    Expect(0, 67903, '\p{^	Lydi}', "");
-    Expect(0, 67903, '\P{	Lydi}', "");
-    Expect(1, 67903, '\P{^	Lydi}', "");
-    Expect(0, 67904, '\p{	Lydi}', "");
-    Expect(1, 67904, '\p{^	Lydi}', "");
-    Expect(1, 67904, '\P{	Lydi}', "");
-    Expect(0, 67904, '\P{^	Lydi}', "");
-    Error('\p{ :=is_Lydi}');
-    Error('\P{ :=is_Lydi}');
+    Expect(1, 67903, '\p{ -Lydi}', "");
+    Expect(0, 67903, '\p{^ -Lydi}', "");
+    Expect(0, 67903, '\P{ -Lydi}', "");
+    Expect(1, 67903, '\P{^ -Lydi}', "");
+    Expect(0, 67904, '\p{ -Lydi}', "");
+    Expect(1, 67904, '\p{^ -Lydi}', "");
+    Expect(1, 67904, '\P{ -Lydi}', "");
+    Expect(0, 67904, '\P{^ -Lydi}', "");
+    Error('\p{-_Is_lydi:=}');
+    Error('\P{-_Is_lydi:=}');
     Expect(1, 67903, '\p{islydi}', "");
     Expect(0, 67903, '\p{^islydi}', "");
     Expect(0, 67903, '\P{islydi}', "");
@@ -110361,16 +111497,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67904, '\p{^islydi}', "");
     Expect(1, 67904, '\P{islydi}', "");
     Expect(0, 67904, '\P{^islydi}', "");
-    Expect(1, 67903, '\p{-Is_LYDI}', "");
-    Expect(0, 67903, '\p{^-Is_LYDI}', "");
-    Expect(0, 67903, '\P{-Is_LYDI}', "");
-    Expect(1, 67903, '\P{^-Is_LYDI}', "");
-    Expect(0, 67904, '\p{-Is_LYDI}', "");
-    Expect(1, 67904, '\p{^-Is_LYDI}', "");
-    Expect(1, 67904, '\P{-Is_LYDI}', "");
-    Expect(0, 67904, '\P{^-Is_LYDI}', "");
-    Error('\p{  Mahajani:=}');
-    Error('\P{  Mahajani:=}');
+    Expect(1, 67903, '\p{--is_Lydi}', "");
+    Expect(0, 67903, '\p{^--is_Lydi}', "");
+    Expect(0, 67903, '\P{--is_Lydi}', "");
+    Expect(1, 67903, '\P{^--is_Lydi}', "");
+    Expect(0, 67904, '\p{--is_Lydi}', "");
+    Expect(1, 67904, '\p{^--is_Lydi}', "");
+    Expect(1, 67904, '\P{--is_Lydi}', "");
+    Expect(0, 67904, '\P{^--is_Lydi}', "");
+    Error('\p{Mahajani:=}');
+    Error('\P{Mahajani:=}');
     Expect(1, 70006, '\p{mahajani}', "");
     Expect(0, 70006, '\p{^mahajani}', "");
     Expect(0, 70006, '\P{mahajani}', "");
@@ -110379,16 +111515,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70007, '\p{^mahajani}', "");
     Expect(1, 70007, '\P{mahajani}', "");
     Expect(0, 70007, '\P{^mahajani}', "");
-    Expect(1, 70006, '\p{_ MAHAJANI}', "");
-    Expect(0, 70006, '\p{^_ MAHAJANI}', "");
-    Expect(0, 70006, '\P{_ MAHAJANI}', "");
-    Expect(1, 70006, '\P{^_ MAHAJANI}', "");
-    Expect(0, 70007, '\p{_ MAHAJANI}', "");
-    Expect(1, 70007, '\p{^_ MAHAJANI}', "");
-    Expect(1, 70007, '\P{_ MAHAJANI}', "");
-    Expect(0, 70007, '\P{^_ MAHAJANI}', "");
-    Error('\p{-_Is_Mahajani/a/}');
-    Error('\P{-_Is_Mahajani/a/}');
+    Expect(1, 70006, '\p{	_Mahajani}', "");
+    Expect(0, 70006, '\p{^	_Mahajani}', "");
+    Expect(0, 70006, '\P{	_Mahajani}', "");
+    Expect(1, 70006, '\P{^	_Mahajani}', "");
+    Expect(0, 70007, '\p{	_Mahajani}', "");
+    Expect(1, 70007, '\p{^	_Mahajani}', "");
+    Expect(1, 70007, '\P{	_Mahajani}', "");
+    Expect(0, 70007, '\P{^	_Mahajani}', "");
+    Error('\p{_-is_Mahajani:=}');
+    Error('\P{_-is_Mahajani:=}');
     Expect(1, 70006, '\p{ismahajani}', "");
     Expect(0, 70006, '\p{^ismahajani}', "");
     Expect(0, 70006, '\P{ismahajani}', "");
@@ -110397,16 +111533,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70007, '\p{^ismahajani}', "");
     Expect(1, 70007, '\P{ismahajani}', "");
     Expect(0, 70007, '\P{^ismahajani}', "");
-    Expect(1, 70006, '\p{-_is_mahajani}', "");
-    Expect(0, 70006, '\p{^-_is_mahajani}', "");
-    Expect(0, 70006, '\P{-_is_mahajani}', "");
-    Expect(1, 70006, '\P{^-_is_mahajani}', "");
-    Expect(0, 70007, '\p{-_is_mahajani}', "");
-    Expect(1, 70007, '\p{^-_is_mahajani}', "");
-    Expect(1, 70007, '\P{-_is_mahajani}', "");
-    Expect(0, 70007, '\P{^-_is_mahajani}', "");
-    Error('\p{ -Mahj/a/}');
-    Error('\P{ -Mahj/a/}');
+    Expect(1, 70006, '\p{_is_Mahajani}', "");
+    Expect(0, 70006, '\p{^_is_Mahajani}', "");
+    Expect(0, 70006, '\P{_is_Mahajani}', "");
+    Expect(1, 70006, '\P{^_is_Mahajani}', "");
+    Expect(0, 70007, '\p{_is_Mahajani}', "");
+    Expect(1, 70007, '\p{^_is_Mahajani}', "");
+    Expect(1, 70007, '\P{_is_Mahajani}', "");
+    Expect(0, 70007, '\P{^_is_Mahajani}', "");
+    Error('\p{-_Mahj:=}');
+    Error('\P{-_Mahj:=}');
     Expect(1, 70006, '\p{mahj}', "");
     Expect(0, 70006, '\p{^mahj}', "");
     Expect(0, 70006, '\P{mahj}', "");
@@ -110415,16 +111551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70007, '\p{^mahj}', "");
     Expect(1, 70007, '\P{mahj}', "");
     Expect(0, 70007, '\P{^mahj}', "");
-    Expect(1, 70006, '\p{-mahj}', "");
-    Expect(0, 70006, '\p{^-mahj}', "");
-    Expect(0, 70006, '\P{-mahj}', "");
-    Expect(1, 70006, '\P{^-mahj}', "");
-    Expect(0, 70007, '\p{-mahj}', "");
-    Expect(1, 70007, '\p{^-mahj}', "");
-    Expect(1, 70007, '\P{-mahj}', "");
-    Expect(0, 70007, '\P{^-mahj}', "");
-    Error('\p{	Is_mahj/a/}');
-    Error('\P{	Is_mahj/a/}');
+    Expect(1, 70006, '\p{  MAHJ}', "");
+    Expect(0, 70006, '\p{^  MAHJ}', "");
+    Expect(0, 70006, '\P{  MAHJ}', "");
+    Expect(1, 70006, '\P{^  MAHJ}', "");
+    Expect(0, 70007, '\p{  MAHJ}', "");
+    Expect(1, 70007, '\p{^  MAHJ}', "");
+    Expect(1, 70007, '\P{  MAHJ}', "");
+    Expect(0, 70007, '\P{^  MAHJ}', "");
+    Error('\p{_/a/IS_Mahj}');
+    Error('\P{_/a/IS_Mahj}');
     Expect(1, 70006, '\p{ismahj}', "");
     Expect(0, 70006, '\p{^ismahj}', "");
     Expect(0, 70006, '\P{ismahj}', "");
@@ -110433,16 +111569,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70007, '\p{^ismahj}', "");
     Expect(1, 70007, '\P{ismahj}', "");
     Expect(0, 70007, '\P{^ismahj}', "");
-    Expect(1, 70006, '\p{		Is_Mahj}', "");
-    Expect(0, 70006, '\p{^		Is_Mahj}', "");
-    Expect(0, 70006, '\P{		Is_Mahj}', "");
-    Expect(1, 70006, '\P{^		Is_Mahj}', "");
-    Expect(0, 70007, '\p{		Is_Mahj}', "");
-    Expect(1, 70007, '\p{^		Is_Mahj}', "");
-    Expect(1, 70007, '\P{		Is_Mahj}', "");
-    Expect(0, 70007, '\P{^		Is_Mahj}', "");
-    Error('\p{/a/-	mahjong_Tiles}');
-    Error('\P{/a/-	mahjong_Tiles}');
+    Expect(1, 70006, '\p{	_Is_MAHJ}', "");
+    Expect(0, 70006, '\p{^	_Is_MAHJ}', "");
+    Expect(0, 70006, '\P{	_Is_MAHJ}', "");
+    Expect(1, 70006, '\P{^	_Is_MAHJ}', "");
+    Expect(0, 70007, '\p{	_Is_MAHJ}', "");
+    Expect(1, 70007, '\p{^	_Is_MAHJ}', "");
+    Expect(1, 70007, '\P{	_Is_MAHJ}', "");
+    Expect(0, 70007, '\P{^	_Is_MAHJ}', "");
+    Error('\p{/a/-	Mahjong_Tiles}');
+    Error('\P{/a/-	Mahjong_Tiles}');
     Expect(1, 127023, '\p{mahjongtiles}', "");
     Expect(0, 127023, '\p{^mahjongtiles}', "");
     Expect(0, 127023, '\P{mahjongtiles}', "");
@@ -110451,16 +111587,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127024, '\p{^mahjongtiles}', "");
     Expect(1, 127024, '\P{mahjongtiles}', "");
     Expect(0, 127024, '\P{^mahjongtiles}', "");
-    Expect(1, 127023, '\p{  MAHJONG_Tiles}', "");
-    Expect(0, 127023, '\p{^  MAHJONG_Tiles}', "");
-    Expect(0, 127023, '\P{  MAHJONG_Tiles}', "");
-    Expect(1, 127023, '\P{^  MAHJONG_Tiles}', "");
-    Expect(0, 127024, '\p{  MAHJONG_Tiles}', "");
-    Expect(1, 127024, '\p{^  MAHJONG_Tiles}', "");
-    Expect(1, 127024, '\P{  MAHJONG_Tiles}', "");
-    Expect(0, 127024, '\P{^  MAHJONG_Tiles}', "");
-    Error('\p{:=IS_Mahjong_Tiles}');
-    Error('\P{:=IS_Mahjong_Tiles}');
+    Expect(1, 127023, '\p{		Mahjong_TILES}', "");
+    Expect(0, 127023, '\p{^		Mahjong_TILES}', "");
+    Expect(0, 127023, '\P{		Mahjong_TILES}', "");
+    Expect(1, 127023, '\P{^		Mahjong_TILES}', "");
+    Expect(0, 127024, '\p{		Mahjong_TILES}', "");
+    Expect(1, 127024, '\p{^		Mahjong_TILES}', "");
+    Expect(1, 127024, '\P{		Mahjong_TILES}', "");
+    Expect(0, 127024, '\P{^		Mahjong_TILES}', "");
+    Error('\p{_ Is_Mahjong_Tiles/a/}');
+    Error('\P{_ Is_Mahjong_Tiles/a/}');
     Expect(1, 127023, '\p{ismahjongtiles}', "");
     Expect(0, 127023, '\p{^ismahjongtiles}', "");
     Expect(0, 127023, '\P{ismahjongtiles}', "");
@@ -110469,16 +111605,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127024, '\p{^ismahjongtiles}', "");
     Expect(1, 127024, '\P{ismahjongtiles}', "");
     Expect(0, 127024, '\P{^ismahjongtiles}', "");
-    Expect(1, 127023, '\p{_	is_Mahjong_Tiles}', "");
-    Expect(0, 127023, '\p{^_	is_Mahjong_Tiles}', "");
-    Expect(0, 127023, '\P{_	is_Mahjong_Tiles}', "");
-    Expect(1, 127023, '\P{^_	is_Mahjong_Tiles}', "");
-    Expect(0, 127024, '\p{_	is_Mahjong_Tiles}', "");
-    Expect(1, 127024, '\p{^_	is_Mahjong_Tiles}', "");
-    Expect(1, 127024, '\P{_	is_Mahjong_Tiles}', "");
-    Expect(0, 127024, '\P{^_	is_Mahjong_Tiles}', "");
-    Error('\p{_ in_Mahjong_Tiles/a/}');
-    Error('\P{_ in_Mahjong_Tiles/a/}');
+    Expect(1, 127023, '\p{_	IS_MAHJONG_Tiles}', "");
+    Expect(0, 127023, '\p{^_	IS_MAHJONG_Tiles}', "");
+    Expect(0, 127023, '\P{_	IS_MAHJONG_Tiles}', "");
+    Expect(1, 127023, '\P{^_	IS_MAHJONG_Tiles}', "");
+    Expect(0, 127024, '\p{_	IS_MAHJONG_Tiles}', "");
+    Expect(1, 127024, '\p{^_	IS_MAHJONG_Tiles}', "");
+    Expect(1, 127024, '\P{_	IS_MAHJONG_Tiles}', "");
+    Expect(0, 127024, '\P{^_	IS_MAHJONG_Tiles}', "");
+    Error('\p{/a/-_in_Mahjong_tiles}');
+    Error('\P{/a/-_in_Mahjong_tiles}');
     Expect(1, 127023, '\p{inmahjongtiles}', "");
     Expect(0, 127023, '\p{^inmahjongtiles}', "");
     Expect(0, 127023, '\P{inmahjongtiles}', "");
@@ -110487,16 +111623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127024, '\p{^inmahjongtiles}', "");
     Expect(1, 127024, '\P{inmahjongtiles}', "");
     Expect(0, 127024, '\P{^inmahjongtiles}', "");
-    Expect(1, 127023, '\p{-_in_mahjong_Tiles}', "");
-    Expect(0, 127023, '\p{^-_in_mahjong_Tiles}', "");
-    Expect(0, 127023, '\P{-_in_mahjong_Tiles}', "");
-    Expect(1, 127023, '\P{^-_in_mahjong_Tiles}', "");
-    Expect(0, 127024, '\p{-_in_mahjong_Tiles}', "");
-    Expect(1, 127024, '\p{^-_in_mahjong_Tiles}', "");
-    Expect(1, 127024, '\P{-_in_mahjong_Tiles}', "");
-    Expect(0, 127024, '\P{^-_in_mahjong_Tiles}', "");
-    Error('\p{-/a/MAHJONG}');
-    Error('\P{-/a/MAHJONG}');
+    Expect(1, 127023, '\p{_In_Mahjong_tiles}', "");
+    Expect(0, 127023, '\p{^_In_Mahjong_tiles}', "");
+    Expect(0, 127023, '\P{_In_Mahjong_tiles}', "");
+    Expect(1, 127023, '\P{^_In_Mahjong_tiles}', "");
+    Expect(0, 127024, '\p{_In_Mahjong_tiles}', "");
+    Expect(1, 127024, '\p{^_In_Mahjong_tiles}', "");
+    Expect(1, 127024, '\P{_In_Mahjong_tiles}', "");
+    Expect(0, 127024, '\P{^_In_Mahjong_tiles}', "");
+    Error('\p{/a/	MAHJONG}');
+    Error('\P{/a/	MAHJONG}');
     Expect(1, 127023, '\p{mahjong}', "");
     Expect(0, 127023, '\p{^mahjong}', "");
     Expect(0, 127023, '\P{mahjong}', "");
@@ -110505,16 +111641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127024, '\p{^mahjong}', "");
     Expect(1, 127024, '\P{mahjong}', "");
     Expect(0, 127024, '\P{^mahjong}', "");
-    Expect(1, 127023, '\p{ _mahjong}', "");
-    Expect(0, 127023, '\p{^ _mahjong}', "");
-    Expect(0, 127023, '\P{ _mahjong}', "");
-    Expect(1, 127023, '\P{^ _mahjong}', "");
-    Expect(0, 127024, '\p{ _mahjong}', "");
-    Expect(1, 127024, '\p{^ _mahjong}', "");
-    Expect(1, 127024, '\P{ _mahjong}', "");
-    Expect(0, 127024, '\P{^ _mahjong}', "");
-    Error('\p{/a/	 Is_mahjong}');
-    Error('\P{/a/	 Is_mahjong}');
+    Expect(1, 127023, '\p{--Mahjong}', "");
+    Expect(0, 127023, '\p{^--Mahjong}', "");
+    Expect(0, 127023, '\P{--Mahjong}', "");
+    Expect(1, 127023, '\P{^--Mahjong}', "");
+    Expect(0, 127024, '\p{--Mahjong}', "");
+    Expect(1, 127024, '\p{^--Mahjong}', "");
+    Expect(1, 127024, '\P{--Mahjong}', "");
+    Expect(0, 127024, '\P{^--Mahjong}', "");
+    Error('\p{_/a/Is_MAHJONG}');
+    Error('\P{_/a/Is_MAHJONG}');
     Expect(1, 127023, '\p{ismahjong}', "");
     Expect(0, 127023, '\p{^ismahjong}', "");
     Expect(0, 127023, '\P{ismahjong}', "");
@@ -110523,16 +111659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127024, '\p{^ismahjong}', "");
     Expect(1, 127024, '\P{ismahjong}', "");
     Expect(0, 127024, '\P{^ismahjong}', "");
-    Expect(1, 127023, '\p{ 	Is_mahjong}', "");
-    Expect(0, 127023, '\p{^ 	Is_mahjong}', "");
-    Expect(0, 127023, '\P{ 	Is_mahjong}', "");
-    Expect(1, 127023, '\P{^ 	Is_mahjong}', "");
-    Expect(0, 127024, '\p{ 	Is_mahjong}', "");
-    Expect(1, 127024, '\p{^ 	Is_mahjong}', "");
-    Expect(1, 127024, '\P{ 	Is_mahjong}', "");
-    Expect(0, 127024, '\P{^ 	Is_mahjong}', "");
-    Error('\p{_-In_Mahjong/a/}');
-    Error('\P{_-In_Mahjong/a/}');
+    Expect(1, 127023, '\p{	 IS_MAHJONG}', "");
+    Expect(0, 127023, '\p{^	 IS_MAHJONG}', "");
+    Expect(0, 127023, '\P{	 IS_MAHJONG}', "");
+    Expect(1, 127023, '\P{^	 IS_MAHJONG}', "");
+    Expect(0, 127024, '\p{	 IS_MAHJONG}', "");
+    Expect(1, 127024, '\p{^	 IS_MAHJONG}', "");
+    Expect(1, 127024, '\P{	 IS_MAHJONG}', "");
+    Expect(0, 127024, '\P{^	 IS_MAHJONG}', "");
+    Error('\p{:=- in_MAHJONG}');
+    Error('\P{:=- in_MAHJONG}');
     Expect(1, 127023, '\p{inmahjong}', "");
     Expect(0, 127023, '\p{^inmahjong}', "");
     Expect(0, 127023, '\P{inmahjong}', "");
@@ -110541,16 +111677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127024, '\p{^inmahjong}', "");
     Expect(1, 127024, '\P{inmahjong}', "");
     Expect(0, 127024, '\P{^inmahjong}', "");
-    Expect(1, 127023, '\p{--in_mahjong}', "");
-    Expect(0, 127023, '\p{^--in_mahjong}', "");
-    Expect(0, 127023, '\P{--in_mahjong}', "");
-    Expect(1, 127023, '\P{^--in_mahjong}', "");
-    Expect(0, 127024, '\p{--in_mahjong}', "");
-    Expect(1, 127024, '\p{^--in_mahjong}', "");
-    Expect(1, 127024, '\P{--in_mahjong}', "");
-    Expect(0, 127024, '\P{^--in_mahjong}', "");
-    Error('\p{	makasar:=}');
-    Error('\P{	makasar:=}');
+    Expect(1, 127023, '\p{-IN_mahjong}', "");
+    Expect(0, 127023, '\p{^-IN_mahjong}', "");
+    Expect(0, 127023, '\P{-IN_mahjong}', "");
+    Expect(1, 127023, '\P{^-IN_mahjong}', "");
+    Expect(0, 127024, '\p{-IN_mahjong}', "");
+    Expect(1, 127024, '\p{^-IN_mahjong}', "");
+    Expect(1, 127024, '\P{-IN_mahjong}', "");
+    Expect(0, 127024, '\P{^-IN_mahjong}', "");
+    Error('\p{-	Makasar/a/}');
+    Error('\P{-	Makasar/a/}');
     Expect(1, 73464, '\p{makasar}', "");
     Expect(0, 73464, '\p{^makasar}', "");
     Expect(0, 73464, '\P{makasar}', "");
@@ -110559,16 +111695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73465, '\p{^makasar}', "");
     Expect(1, 73465, '\P{makasar}', "");
     Expect(0, 73465, '\P{^makasar}', "");
-    Expect(1, 73464, '\p{ 	makasar}', "");
-    Expect(0, 73464, '\p{^ 	makasar}', "");
-    Expect(0, 73464, '\P{ 	makasar}', "");
-    Expect(1, 73464, '\P{^ 	makasar}', "");
-    Expect(0, 73465, '\p{ 	makasar}', "");
-    Expect(1, 73465, '\p{^ 	makasar}', "");
-    Expect(1, 73465, '\P{ 	makasar}', "");
-    Expect(0, 73465, '\P{^ 	makasar}', "");
-    Error('\p{-/a/is_makasar}');
-    Error('\P{-/a/is_makasar}');
+    Expect(1, 73464, '\p{	_MAKASAR}', "");
+    Expect(0, 73464, '\p{^	_MAKASAR}', "");
+    Expect(0, 73464, '\P{	_MAKASAR}', "");
+    Expect(1, 73464, '\P{^	_MAKASAR}', "");
+    Expect(0, 73465, '\p{	_MAKASAR}', "");
+    Expect(1, 73465, '\p{^	_MAKASAR}', "");
+    Expect(1, 73465, '\P{	_MAKASAR}', "");
+    Expect(0, 73465, '\P{^	_MAKASAR}', "");
+    Error('\p{:=is_Makasar}');
+    Error('\P{:=is_Makasar}');
     Expect(1, 73464, '\p{ismakasar}', "");
     Expect(0, 73464, '\p{^ismakasar}', "");
     Expect(0, 73464, '\P{ismakasar}', "");
@@ -110577,16 +111713,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73465, '\p{^ismakasar}', "");
     Expect(1, 73465, '\P{ismakasar}', "");
     Expect(0, 73465, '\P{^ismakasar}', "");
-    Expect(1, 73464, '\p{_Is_MAKASAR}', "");
-    Expect(0, 73464, '\p{^_Is_MAKASAR}', "");
-    Expect(0, 73464, '\P{_Is_MAKASAR}', "");
-    Expect(1, 73464, '\P{^_Is_MAKASAR}', "");
-    Expect(0, 73465, '\p{_Is_MAKASAR}', "");
-    Expect(1, 73465, '\p{^_Is_MAKASAR}', "");
-    Expect(1, 73465, '\P{_Is_MAKASAR}', "");
-    Expect(0, 73465, '\P{^_Is_MAKASAR}', "");
-    Error('\p{/a/_	maka}');
-    Error('\P{/a/_	maka}');
+    Expect(1, 73464, '\p{--Is_MAKASAR}', "");
+    Expect(0, 73464, '\p{^--Is_MAKASAR}', "");
+    Expect(0, 73464, '\P{--Is_MAKASAR}', "");
+    Expect(1, 73464, '\P{^--Is_MAKASAR}', "");
+    Expect(0, 73465, '\p{--Is_MAKASAR}', "");
+    Expect(1, 73465, '\p{^--Is_MAKASAR}', "");
+    Expect(1, 73465, '\P{--Is_MAKASAR}', "");
+    Expect(0, 73465, '\P{^--Is_MAKASAR}', "");
+    Error('\p{ :=MAKA}');
+    Error('\P{ :=MAKA}');
     Expect(1, 73464, '\p{maka}', "");
     Expect(0, 73464, '\p{^maka}', "");
     Expect(0, 73464, '\P{maka}', "");
@@ -110595,16 +111731,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73465, '\p{^maka}', "");
     Expect(1, 73465, '\P{maka}', "");
     Expect(0, 73465, '\P{^maka}', "");
-    Expect(1, 73464, '\p{_MAKA}', "");
-    Expect(0, 73464, '\p{^_MAKA}', "");
-    Expect(0, 73464, '\P{_MAKA}', "");
-    Expect(1, 73464, '\P{^_MAKA}', "");
-    Expect(0, 73465, '\p{_MAKA}', "");
-    Expect(1, 73465, '\p{^_MAKA}', "");
-    Expect(1, 73465, '\P{_MAKA}', "");
-    Expect(0, 73465, '\P{^_MAKA}', "");
-    Error('\p{:=IS_Maka}');
-    Error('\P{:=IS_Maka}');
+    Expect(1, 73464, '\p{ _MAKA}', "");
+    Expect(0, 73464, '\p{^ _MAKA}', "");
+    Expect(0, 73464, '\P{ _MAKA}', "");
+    Expect(1, 73464, '\P{^ _MAKA}', "");
+    Expect(0, 73465, '\p{ _MAKA}', "");
+    Expect(1, 73465, '\p{^ _MAKA}', "");
+    Expect(1, 73465, '\P{ _MAKA}', "");
+    Expect(0, 73465, '\P{^ _MAKA}', "");
+    Error('\p{/a/ _Is_MAKA}');
+    Error('\P{/a/ _Is_MAKA}');
     Expect(1, 73464, '\p{ismaka}', "");
     Expect(0, 73464, '\p{^ismaka}', "");
     Expect(0, 73464, '\P{ismaka}', "");
@@ -110613,16 +111749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73465, '\p{^ismaka}', "");
     Expect(1, 73465, '\P{ismaka}', "");
     Expect(0, 73465, '\P{^ismaka}', "");
-    Expect(1, 73464, '\p{	IS_maka}', "");
-    Expect(0, 73464, '\p{^	IS_maka}', "");
-    Expect(0, 73464, '\P{	IS_maka}', "");
-    Expect(1, 73464, '\P{^	IS_maka}', "");
-    Expect(0, 73465, '\p{	IS_maka}', "");
-    Expect(1, 73465, '\p{^	IS_maka}', "");
-    Expect(1, 73465, '\P{	IS_maka}', "");
-    Expect(0, 73465, '\P{^	IS_maka}', "");
-    Error('\p{		Malayalam:=}');
-    Error('\P{		Malayalam:=}');
+    Expect(1, 73464, '\p{_-Is_Maka}', "");
+    Expect(0, 73464, '\p{^_-Is_Maka}', "");
+    Expect(0, 73464, '\P{_-Is_Maka}', "");
+    Expect(1, 73464, '\P{^_-Is_Maka}', "");
+    Expect(0, 73465, '\p{_-Is_Maka}', "");
+    Expect(1, 73465, '\p{^_-Is_Maka}', "");
+    Expect(1, 73465, '\P{_-Is_Maka}', "");
+    Expect(0, 73465, '\P{^_-Is_Maka}', "");
+    Error('\p{:=- Malayalam}');
+    Error('\P{:=- Malayalam}');
     Expect(1, 43058, '\p{malayalam}', "");
     Expect(0, 43058, '\p{^malayalam}', "");
     Expect(0, 43058, '\P{malayalam}', "");
@@ -110631,16 +111767,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43059, '\p{^malayalam}', "");
     Expect(1, 43059, '\P{malayalam}', "");
     Expect(0, 43059, '\P{^malayalam}', "");
-    Expect(1, 43058, '\p{__Malayalam}', "");
-    Expect(0, 43058, '\p{^__Malayalam}', "");
-    Expect(0, 43058, '\P{__Malayalam}', "");
-    Expect(1, 43058, '\P{^__Malayalam}', "");
-    Expect(0, 43059, '\p{__Malayalam}', "");
-    Expect(1, 43059, '\p{^__Malayalam}', "");
-    Expect(1, 43059, '\P{__Malayalam}', "");
-    Expect(0, 43059, '\P{^__Malayalam}', "");
-    Error('\p{:=-	is_Malayalam}');
-    Error('\P{:=-	is_Malayalam}');
+    Expect(1, 43058, '\p{	 Malayalam}', "");
+    Expect(0, 43058, '\p{^	 Malayalam}', "");
+    Expect(0, 43058, '\P{	 Malayalam}', "");
+    Expect(1, 43058, '\P{^	 Malayalam}', "");
+    Expect(0, 43059, '\p{	 Malayalam}', "");
+    Expect(1, 43059, '\p{^	 Malayalam}', "");
+    Expect(1, 43059, '\P{	 Malayalam}', "");
+    Expect(0, 43059, '\P{^	 Malayalam}', "");
+    Error('\p{	:=IS_malayalam}');
+    Error('\P{	:=IS_malayalam}');
     Expect(1, 43058, '\p{ismalayalam}', "");
     Expect(0, 43058, '\p{^ismalayalam}', "");
     Expect(0, 43058, '\P{ismalayalam}', "");
@@ -110649,16 +111785,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43059, '\p{^ismalayalam}', "");
     Expect(1, 43059, '\P{ismalayalam}', "");
     Expect(0, 43059, '\P{^ismalayalam}', "");
-    Expect(1, 43058, '\p{  Is_malayalam}', "");
-    Expect(0, 43058, '\p{^  Is_malayalam}', "");
-    Expect(0, 43058, '\P{  Is_malayalam}', "");
-    Expect(1, 43058, '\P{^  Is_malayalam}', "");
-    Expect(0, 43059, '\p{  Is_malayalam}', "");
-    Expect(1, 43059, '\p{^  Is_malayalam}', "");
-    Expect(1, 43059, '\P{  Is_malayalam}', "");
-    Expect(0, 43059, '\P{^  Is_malayalam}', "");
-    Error('\p{/a/_-MLYM}');
-    Error('\P{/a/_-MLYM}');
+    Expect(1, 43058, '\p{  is_Malayalam}', "");
+    Expect(0, 43058, '\p{^  is_Malayalam}', "");
+    Expect(0, 43058, '\P{  is_Malayalam}', "");
+    Expect(1, 43058, '\P{^  is_Malayalam}', "");
+    Expect(0, 43059, '\p{  is_Malayalam}', "");
+    Expect(1, 43059, '\p{^  is_Malayalam}', "");
+    Expect(1, 43059, '\P{  is_Malayalam}', "");
+    Expect(0, 43059, '\P{^  is_Malayalam}', "");
+    Error('\p{--mlym/a/}');
+    Error('\P{--mlym/a/}');
     Expect(1, 43058, '\p{mlym}', "");
     Expect(0, 43058, '\p{^mlym}', "");
     Expect(0, 43058, '\P{mlym}', "");
@@ -110667,16 +111803,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43059, '\p{^mlym}', "");
     Expect(1, 43059, '\P{mlym}', "");
     Expect(0, 43059, '\P{^mlym}', "");
-    Expect(1, 43058, '\p{_Mlym}', "");
-    Expect(0, 43058, '\p{^_Mlym}', "");
-    Expect(0, 43058, '\P{_Mlym}', "");
-    Expect(1, 43058, '\P{^_Mlym}', "");
-    Expect(0, 43059, '\p{_Mlym}', "");
-    Expect(1, 43059, '\p{^_Mlym}', "");
-    Expect(1, 43059, '\P{_Mlym}', "");
-    Expect(0, 43059, '\P{^_Mlym}', "");
-    Error('\p{__is_mlym/a/}');
-    Error('\P{__is_mlym/a/}');
+    Expect(1, 43058, '\p{- mlym}', "");
+    Expect(0, 43058, '\p{^- mlym}', "");
+    Expect(0, 43058, '\P{- mlym}', "");
+    Expect(1, 43058, '\P{^- mlym}', "");
+    Expect(0, 43059, '\p{- mlym}', "");
+    Expect(1, 43059, '\p{^- mlym}', "");
+    Expect(1, 43059, '\P{- mlym}', "");
+    Expect(0, 43059, '\P{^- mlym}', "");
+    Error('\p{:=-	IS_Mlym}');
+    Error('\P{:=-	IS_Mlym}');
     Expect(1, 43058, '\p{ismlym}', "");
     Expect(0, 43058, '\p{^ismlym}', "");
     Expect(0, 43058, '\P{ismlym}', "");
@@ -110685,16 +111821,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43059, '\p{^ismlym}', "");
     Expect(1, 43059, '\P{ismlym}', "");
     Expect(0, 43059, '\P{^ismlym}', "");
-    Expect(1, 43058, '\p{-_Is_mlym}', "");
-    Expect(0, 43058, '\p{^-_Is_mlym}', "");
-    Expect(0, 43058, '\P{-_Is_mlym}', "");
-    Expect(1, 43058, '\P{^-_Is_mlym}', "");
-    Expect(0, 43059, '\p{-_Is_mlym}', "");
-    Expect(1, 43059, '\p{^-_Is_mlym}', "");
-    Expect(1, 43059, '\P{-_Is_mlym}', "");
-    Expect(0, 43059, '\P{^-_Is_mlym}', "");
-    Error('\p{/a/		MANDAIC}');
-    Error('\P{/a/		MANDAIC}');
+    Expect(1, 43058, '\p{_IS_Mlym}', "");
+    Expect(0, 43058, '\p{^_IS_Mlym}', "");
+    Expect(0, 43058, '\P{_IS_Mlym}', "");
+    Expect(1, 43058, '\P{^_IS_Mlym}', "");
+    Expect(0, 43059, '\p{_IS_Mlym}', "");
+    Expect(1, 43059, '\p{^_IS_Mlym}', "");
+    Expect(1, 43059, '\P{_IS_Mlym}', "");
+    Expect(0, 43059, '\P{^_IS_Mlym}', "");
+    Error('\p{-:=Mandaic}');
+    Error('\P{-:=Mandaic}');
     Expect(1, 2142, '\p{mandaic}', "");
     Expect(0, 2142, '\p{^mandaic}', "");
     Expect(0, 2142, '\P{mandaic}', "");
@@ -110703,16 +111839,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2143, '\p{^mandaic}', "");
     Expect(1, 2143, '\P{mandaic}', "");
     Expect(0, 2143, '\P{^mandaic}', "");
-    Expect(1, 2142, '\p{	_MANDAIC}', "");
-    Expect(0, 2142, '\p{^	_MANDAIC}', "");
-    Expect(0, 2142, '\P{	_MANDAIC}', "");
-    Expect(1, 2142, '\P{^	_MANDAIC}', "");
-    Expect(0, 2143, '\p{	_MANDAIC}', "");
-    Expect(1, 2143, '\p{^	_MANDAIC}', "");
-    Expect(1, 2143, '\P{	_MANDAIC}', "");
-    Expect(0, 2143, '\P{^	_MANDAIC}', "");
-    Error('\p{_/a/Is_Mandaic}');
-    Error('\P{_/a/Is_Mandaic}');
+    Expect(1, 2142, '\p{ Mandaic}', "");
+    Expect(0, 2142, '\p{^ Mandaic}', "");
+    Expect(0, 2142, '\P{ Mandaic}', "");
+    Expect(1, 2142, '\P{^ Mandaic}', "");
+    Expect(0, 2143, '\p{ Mandaic}', "");
+    Expect(1, 2143, '\p{^ Mandaic}', "");
+    Expect(1, 2143, '\P{ Mandaic}', "");
+    Expect(0, 2143, '\P{^ Mandaic}', "");
+    Error('\p{_:=IS_mandaic}');
+    Error('\P{_:=IS_mandaic}');
     Expect(1, 2142, '\p{ismandaic}', "");
     Expect(0, 2142, '\p{^ismandaic}', "");
     Expect(0, 2142, '\P{ismandaic}', "");
@@ -110721,16 +111857,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2143, '\p{^ismandaic}', "");
     Expect(1, 2143, '\P{ismandaic}', "");
     Expect(0, 2143, '\P{^ismandaic}', "");
-    Expect(1, 2142, '\p{	is_Mandaic}', "");
-    Expect(0, 2142, '\p{^	is_Mandaic}', "");
-    Expect(0, 2142, '\P{	is_Mandaic}', "");
-    Expect(1, 2142, '\P{^	is_Mandaic}', "");
-    Expect(0, 2143, '\p{	is_Mandaic}', "");
-    Expect(1, 2143, '\p{^	is_Mandaic}', "");
-    Expect(1, 2143, '\P{	is_Mandaic}', "");
-    Expect(0, 2143, '\P{^	is_Mandaic}', "");
-    Error('\p{__mand:=}');
-    Error('\P{__mand:=}');
+    Expect(1, 2142, '\p{-IS_mandaic}', "");
+    Expect(0, 2142, '\p{^-IS_mandaic}', "");
+    Expect(0, 2142, '\P{-IS_mandaic}', "");
+    Expect(1, 2142, '\P{^-IS_mandaic}', "");
+    Expect(0, 2143, '\p{-IS_mandaic}', "");
+    Expect(1, 2143, '\p{^-IS_mandaic}', "");
+    Expect(1, 2143, '\P{-IS_mandaic}', "");
+    Expect(0, 2143, '\P{^-IS_mandaic}', "");
+    Error('\p{/a/_ mand}');
+    Error('\P{/a/_ mand}');
     Expect(1, 2142, '\p{mand}', "");
     Expect(0, 2142, '\p{^mand}', "");
     Expect(0, 2142, '\P{mand}', "");
@@ -110739,16 +111875,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2143, '\p{^mand}', "");
     Expect(1, 2143, '\P{mand}', "");
     Expect(0, 2143, '\P{^mand}', "");
-    Expect(1, 2142, '\p{	 MAND}', "");
-    Expect(0, 2142, '\p{^	 MAND}', "");
-    Expect(0, 2142, '\P{	 MAND}', "");
-    Expect(1, 2142, '\P{^	 MAND}', "");
-    Expect(0, 2143, '\p{	 MAND}', "");
-    Expect(1, 2143, '\p{^	 MAND}', "");
-    Expect(1, 2143, '\P{	 MAND}', "");
-    Expect(0, 2143, '\P{^	 MAND}', "");
-    Error('\p{-Is_mand:=}');
-    Error('\P{-Is_mand:=}');
+    Expect(1, 2142, '\p{	_mand}', "");
+    Expect(0, 2142, '\p{^	_mand}', "");
+    Expect(0, 2142, '\P{	_mand}', "");
+    Expect(1, 2142, '\P{^	_mand}', "");
+    Expect(0, 2143, '\p{	_mand}', "");
+    Expect(1, 2143, '\p{^	_mand}', "");
+    Expect(1, 2143, '\P{	_mand}', "");
+    Expect(0, 2143, '\P{^	_mand}', "");
+    Error('\p{_is_MAND/a/}');
+    Error('\P{_is_MAND/a/}');
     Expect(1, 2142, '\p{ismand}', "");
     Expect(0, 2142, '\p{^ismand}', "");
     Expect(0, 2142, '\P{ismand}', "");
@@ -110757,16 +111893,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 2143, '\p{^ismand}', "");
     Expect(1, 2143, '\P{ismand}', "");
     Expect(0, 2143, '\P{^ismand}', "");
-    Expect(1, 2142, '\p{-	is_MAND}', "");
-    Expect(0, 2142, '\p{^-	is_MAND}', "");
-    Expect(0, 2142, '\P{-	is_MAND}', "");
-    Expect(1, 2142, '\P{^-	is_MAND}', "");
-    Expect(0, 2143, '\p{-	is_MAND}', "");
-    Expect(1, 2143, '\p{^-	is_MAND}', "");
-    Expect(1, 2143, '\P{-	is_MAND}', "");
-    Expect(0, 2143, '\P{^-	is_MAND}', "");
-    Error('\p{_/a/MANICHAEAN}');
-    Error('\P{_/a/MANICHAEAN}');
+    Expect(1, 2142, '\p{  is_Mand}', "");
+    Expect(0, 2142, '\p{^  is_Mand}', "");
+    Expect(0, 2142, '\P{  is_Mand}', "");
+    Expect(1, 2142, '\P{^  is_Mand}', "");
+    Expect(0, 2143, '\p{  is_Mand}', "");
+    Expect(1, 2143, '\p{^  is_Mand}', "");
+    Expect(1, 2143, '\P{  is_Mand}', "");
+    Expect(0, 2143, '\P{^  is_Mand}', "");
+    Error('\p{:=_ Manichaean}');
+    Error('\P{:=_ Manichaean}');
     Expect(1, 68342, '\p{manichaean}', "");
     Expect(0, 68342, '\p{^manichaean}', "");
     Expect(0, 68342, '\P{manichaean}', "");
@@ -110775,16 +111911,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68343, '\p{^manichaean}', "");
     Expect(1, 68343, '\P{manichaean}', "");
     Expect(0, 68343, '\P{^manichaean}', "");
-    Expect(1, 68342, '\p{-Manichaean}', "");
-    Expect(0, 68342, '\p{^-Manichaean}', "");
-    Expect(0, 68342, '\P{-Manichaean}', "");
-    Expect(1, 68342, '\P{^-Manichaean}', "");
-    Expect(0, 68343, '\p{-Manichaean}', "");
-    Expect(1, 68343, '\p{^-Manichaean}', "");
-    Expect(1, 68343, '\P{-Manichaean}', "");
-    Expect(0, 68343, '\P{^-Manichaean}', "");
-    Error('\p{/a/-Is_Manichaean}');
-    Error('\P{/a/-Is_Manichaean}');
+    Expect(1, 68342, '\p{	_Manichaean}', "");
+    Expect(0, 68342, '\p{^	_Manichaean}', "");
+    Expect(0, 68342, '\P{	_Manichaean}', "");
+    Expect(1, 68342, '\P{^	_Manichaean}', "");
+    Expect(0, 68343, '\p{	_Manichaean}', "");
+    Expect(1, 68343, '\p{^	_Manichaean}', "");
+    Expect(1, 68343, '\P{	_Manichaean}', "");
+    Expect(0, 68343, '\P{^	_Manichaean}', "");
+    Error('\p{	:=Is_manichaean}');
+    Error('\P{	:=Is_manichaean}');
     Expect(1, 68342, '\p{ismanichaean}', "");
     Expect(0, 68342, '\p{^ismanichaean}', "");
     Expect(0, 68342, '\P{ismanichaean}', "");
@@ -110793,16 +111929,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68343, '\p{^ismanichaean}', "");
     Expect(1, 68343, '\P{ismanichaean}', "");
     Expect(0, 68343, '\P{^ismanichaean}', "");
-    Expect(1, 68342, '\p{-_IS_Manichaean}', "");
-    Expect(0, 68342, '\p{^-_IS_Manichaean}', "");
-    Expect(0, 68342, '\P{-_IS_Manichaean}', "");
-    Expect(1, 68342, '\P{^-_IS_Manichaean}', "");
-    Expect(0, 68343, '\p{-_IS_Manichaean}', "");
-    Expect(1, 68343, '\p{^-_IS_Manichaean}', "");
-    Expect(1, 68343, '\P{-_IS_Manichaean}', "");
-    Expect(0, 68343, '\P{^-_IS_Manichaean}', "");
-    Error('\p{mani:=}');
-    Error('\P{mani:=}');
+    Expect(1, 68342, '\p{ 	Is_manichaean}', "");
+    Expect(0, 68342, '\p{^ 	Is_manichaean}', "");
+    Expect(0, 68342, '\P{ 	Is_manichaean}', "");
+    Expect(1, 68342, '\P{^ 	Is_manichaean}', "");
+    Expect(0, 68343, '\p{ 	Is_manichaean}', "");
+    Expect(1, 68343, '\p{^ 	Is_manichaean}', "");
+    Expect(1, 68343, '\P{ 	Is_manichaean}', "");
+    Expect(0, 68343, '\P{^ 	Is_manichaean}', "");
+    Error('\p{	mani:=}');
+    Error('\P{	mani:=}');
     Expect(1, 68342, '\p{mani}', "");
     Expect(0, 68342, '\p{^mani}', "");
     Expect(0, 68342, '\P{mani}', "");
@@ -110811,16 +111947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68343, '\p{^mani}', "");
     Expect(1, 68343, '\P{mani}', "");
     Expect(0, 68343, '\P{^mani}', "");
-    Expect(1, 68342, '\p{		Mani}', "");
-    Expect(0, 68342, '\p{^		Mani}', "");
-    Expect(0, 68342, '\P{		Mani}', "");
-    Expect(1, 68342, '\P{^		Mani}', "");
-    Expect(0, 68343, '\p{		Mani}', "");
-    Expect(1, 68343, '\p{^		Mani}', "");
-    Expect(1, 68343, '\P{		Mani}', "");
-    Expect(0, 68343, '\P{^		Mani}', "");
-    Error('\p{_/a/Is_MANI}');
-    Error('\P{_/a/Is_MANI}');
+    Expect(1, 68342, '\p{_	MANI}', "");
+    Expect(0, 68342, '\p{^_	MANI}', "");
+    Expect(0, 68342, '\P{_	MANI}', "");
+    Expect(1, 68342, '\P{^_	MANI}', "");
+    Expect(0, 68343, '\p{_	MANI}', "");
+    Expect(1, 68343, '\p{^_	MANI}', "");
+    Expect(1, 68343, '\P{_	MANI}', "");
+    Expect(0, 68343, '\P{^_	MANI}', "");
+    Error('\p{-Is_Mani/a/}');
+    Error('\P{-Is_Mani/a/}');
     Expect(1, 68342, '\p{ismani}', "");
     Expect(0, 68342, '\p{^ismani}', "");
     Expect(0, 68342, '\P{ismani}', "");
@@ -110829,16 +111965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68343, '\p{^ismani}', "");
     Expect(1, 68343, '\P{ismani}', "");
     Expect(0, 68343, '\P{^ismani}', "");
-    Expect(1, 68342, '\p{_	Is_Mani}', "");
-    Expect(0, 68342, '\p{^_	Is_Mani}', "");
-    Expect(0, 68342, '\P{_	Is_Mani}', "");
-    Expect(1, 68342, '\P{^_	Is_Mani}', "");
-    Expect(0, 68343, '\p{_	Is_Mani}', "");
-    Expect(1, 68343, '\p{^_	Is_Mani}', "");
-    Expect(1, 68343, '\P{_	Is_Mani}', "");
-    Expect(0, 68343, '\P{^_	Is_Mani}', "");
-    Error('\p{	:=marchen}');
-    Error('\P{	:=marchen}');
+    Expect(1, 68342, '\p{-	is_Mani}', "");
+    Expect(0, 68342, '\p{^-	is_Mani}', "");
+    Expect(0, 68342, '\P{-	is_Mani}', "");
+    Expect(1, 68342, '\P{^-	is_Mani}', "");
+    Expect(0, 68343, '\p{-	is_Mani}', "");
+    Expect(1, 68343, '\p{^-	is_Mani}', "");
+    Expect(1, 68343, '\P{-	is_Mani}', "");
+    Expect(0, 68343, '\P{^-	is_Mani}', "");
+    Error('\p{/a/_marchen}');
+    Error('\P{/a/_marchen}');
     Expect(1, 72886, '\p{marchen}', "");
     Expect(0, 72886, '\p{^marchen}', "");
     Expect(0, 72886, '\P{marchen}', "");
@@ -110855,8 +111991,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72887, '\p{^ -Marchen}', "");
     Expect(1, 72887, '\P{ -Marchen}', "");
     Expect(0, 72887, '\P{^ -Marchen}', "");
-    Error('\p{:=_	is_Marchen}');
-    Error('\P{:=_	is_Marchen}');
+    Error('\p{--Is_Marchen:=}');
+    Error('\P{--Is_Marchen:=}');
     Expect(1, 72886, '\p{ismarchen}', "");
     Expect(0, 72886, '\p{^ismarchen}', "");
     Expect(0, 72886, '\P{ismarchen}', "");
@@ -110865,16 +112001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72887, '\p{^ismarchen}', "");
     Expect(1, 72887, '\P{ismarchen}', "");
     Expect(0, 72887, '\P{^ismarchen}', "");
-    Expect(1, 72886, '\p{  Is_MARCHEN}', "");
-    Expect(0, 72886, '\p{^  Is_MARCHEN}', "");
-    Expect(0, 72886, '\P{  Is_MARCHEN}', "");
-    Expect(1, 72886, '\P{^  Is_MARCHEN}', "");
-    Expect(0, 72887, '\p{  Is_MARCHEN}', "");
-    Expect(1, 72887, '\p{^  Is_MARCHEN}', "");
-    Expect(1, 72887, '\P{  Is_MARCHEN}', "");
-    Expect(0, 72887, '\P{^  Is_MARCHEN}', "");
-    Error('\p{ :=Marc}');
-    Error('\P{ :=Marc}');
+    Expect(1, 72886, '\p{-_is_Marchen}', "");
+    Expect(0, 72886, '\p{^-_is_Marchen}', "");
+    Expect(0, 72886, '\P{-_is_Marchen}', "");
+    Expect(1, 72886, '\P{^-_is_Marchen}', "");
+    Expect(0, 72887, '\p{-_is_Marchen}', "");
+    Expect(1, 72887, '\p{^-_is_Marchen}', "");
+    Expect(1, 72887, '\P{-_is_Marchen}', "");
+    Expect(0, 72887, '\P{^-_is_Marchen}', "");
+    Error('\p{:=  MARC}');
+    Error('\P{:=  MARC}');
     Expect(1, 72886, '\p{marc}', "");
     Expect(0, 72886, '\p{^marc}', "");
     Expect(0, 72886, '\P{marc}', "");
@@ -110883,16 +112019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72887, '\p{^marc}', "");
     Expect(1, 72887, '\P{marc}', "");
     Expect(0, 72887, '\P{^marc}', "");
-    Expect(1, 72886, '\p{_ MARC}', "");
-    Expect(0, 72886, '\p{^_ MARC}', "");
-    Expect(0, 72886, '\P{_ MARC}', "");
-    Expect(1, 72886, '\P{^_ MARC}', "");
-    Expect(0, 72887, '\p{_ MARC}', "");
-    Expect(1, 72887, '\p{^_ MARC}', "");
-    Expect(1, 72887, '\P{_ MARC}', "");
-    Expect(0, 72887, '\P{^_ MARC}', "");
-    Error('\p{	_Is_MARC/a/}');
-    Error('\P{	_Is_MARC/a/}');
+    Expect(1, 72886, '\p{-_Marc}', "");
+    Expect(0, 72886, '\p{^-_Marc}', "");
+    Expect(0, 72886, '\P{-_Marc}', "");
+    Expect(1, 72886, '\P{^-_Marc}', "");
+    Expect(0, 72887, '\p{-_Marc}', "");
+    Expect(1, 72887, '\p{^-_Marc}', "");
+    Expect(1, 72887, '\P{-_Marc}', "");
+    Expect(0, 72887, '\P{^-_Marc}', "");
+    Error('\p{:= -is_marc}');
+    Error('\P{:= -is_marc}');
     Expect(1, 72886, '\p{ismarc}', "");
     Expect(0, 72886, '\p{^ismarc}', "");
     Expect(0, 72886, '\P{ismarc}', "");
@@ -110901,16 +112037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72887, '\p{^ismarc}', "");
     Expect(1, 72887, '\P{ismarc}', "");
     Expect(0, 72887, '\P{^ismarc}', "");
-    Expect(1, 72886, '\p{_-Is_Marc}', "");
-    Expect(0, 72886, '\p{^_-Is_Marc}', "");
-    Expect(0, 72886, '\P{_-Is_Marc}', "");
-    Expect(1, 72886, '\P{^_-Is_Marc}', "");
-    Expect(0, 72887, '\p{_-Is_Marc}', "");
-    Expect(1, 72887, '\p{^_-Is_Marc}', "");
-    Expect(1, 72887, '\P{_-Is_Marc}', "");
-    Expect(0, 72887, '\P{^_-Is_Marc}', "");
-    Error('\p{ :=Mark}');
-    Error('\P{ :=Mark}');
+    Expect(1, 72886, '\p{__Is_marc}', "");
+    Expect(0, 72886, '\p{^__Is_marc}', "");
+    Expect(0, 72886, '\P{__Is_marc}', "");
+    Expect(1, 72886, '\P{^__Is_marc}', "");
+    Expect(0, 72887, '\p{__Is_marc}', "");
+    Expect(1, 72887, '\p{^__Is_marc}', "");
+    Expect(1, 72887, '\P{__Is_marc}', "");
+    Expect(0, 72887, '\P{^__Is_marc}', "");
+    Error('\p{/a/	mark}');
+    Error('\P{/a/	mark}');
     Expect(1, 917999, '\p{mark}', "");
     Expect(0, 917999, '\p{^mark}', "");
     Expect(0, 917999, '\P{mark}', "");
@@ -110919,16 +112055,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^mark}', "");
     Expect(1, 918000, '\P{mark}', "");
     Expect(0, 918000, '\P{^mark}', "");
-    Expect(1, 917999, '\p{  MARK}', "");
-    Expect(0, 917999, '\p{^  MARK}', "");
-    Expect(0, 917999, '\P{  MARK}', "");
-    Expect(1, 917999, '\P{^  MARK}', "");
-    Expect(0, 918000, '\p{  MARK}', "");
-    Expect(1, 918000, '\p{^  MARK}', "");
-    Expect(1, 918000, '\P{  MARK}', "");
-    Expect(0, 918000, '\P{^  MARK}', "");
-    Error('\p{		Is_mark/a/}');
-    Error('\P{		Is_mark/a/}');
+    Expect(1, 917999, '\p{	Mark}', "");
+    Expect(0, 917999, '\p{^	Mark}', "");
+    Expect(0, 917999, '\P{	Mark}', "");
+    Expect(1, 917999, '\P{^	Mark}', "");
+    Expect(0, 918000, '\p{	Mark}', "");
+    Expect(1, 918000, '\p{^	Mark}', "");
+    Expect(1, 918000, '\P{	Mark}', "");
+    Expect(0, 918000, '\P{^	Mark}', "");
+    Error('\p{/a/	Is_MARK}');
+    Error('\P{/a/	Is_MARK}');
     Expect(1, 917999, '\p{ismark}', "");
     Expect(0, 917999, '\p{^ismark}', "");
     Expect(0, 917999, '\P{ismark}', "");
@@ -110937,16 +112073,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^ismark}', "");
     Expect(1, 918000, '\P{ismark}', "");
     Expect(0, 918000, '\P{^ismark}', "");
-    Expect(1, 917999, '\p{	is_Mark}', "");
-    Expect(0, 917999, '\p{^	is_Mark}', "");
-    Expect(0, 917999, '\P{	is_Mark}', "");
-    Expect(1, 917999, '\P{^	is_Mark}', "");
-    Expect(0, 918000, '\p{	is_Mark}', "");
-    Expect(1, 918000, '\p{^	is_Mark}', "");
-    Expect(1, 918000, '\P{	is_Mark}', "");
-    Expect(0, 918000, '\P{^	is_Mark}', "");
-    Error('\p{-m:=}');
-    Error('\P{-m:=}');
+    Expect(1, 917999, '\p{_Is_mark}', "");
+    Expect(0, 917999, '\p{^_Is_mark}', "");
+    Expect(0, 917999, '\P{_Is_mark}', "");
+    Expect(1, 917999, '\P{^_Is_mark}', "");
+    Expect(0, 918000, '\p{_Is_mark}', "");
+    Expect(1, 918000, '\p{^_Is_mark}', "");
+    Expect(1, 918000, '\P{_Is_mark}', "");
+    Expect(0, 918000, '\P{^_Is_mark}', "");
+    Error('\p{:=- M}');
+    Error('\P{:=- M}');
     Expect(1, 917999, '\p{m}', "");
     Expect(0, 917999, '\p{^m}', "");
     Expect(0, 917999, '\P{m}', "");
@@ -110955,16 +112091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^m}', "");
     Expect(1, 918000, '\P{m}', "");
     Expect(0, 918000, '\P{^m}', "");
-    Expect(1, 917999, '\p{_M}', "");
-    Expect(0, 917999, '\p{^_M}', "");
-    Expect(0, 917999, '\P{_M}', "");
-    Expect(1, 917999, '\P{^_M}', "");
-    Expect(0, 918000, '\p{_M}', "");
-    Expect(1, 918000, '\p{^_M}', "");
-    Expect(1, 918000, '\P{_M}', "");
-    Expect(0, 918000, '\P{^_M}', "");
-    Error('\p{/a/ 	is_M}');
-    Error('\P{/a/ 	is_M}');
+    Expect(1, 917999, '\p{	_m}', "");
+    Expect(0, 917999, '\p{^	_m}', "");
+    Expect(0, 917999, '\P{	_m}', "");
+    Expect(1, 917999, '\P{^	_m}', "");
+    Expect(0, 918000, '\p{	_m}', "");
+    Expect(1, 918000, '\p{^	_m}', "");
+    Expect(1, 918000, '\P{	_m}', "");
+    Expect(0, 918000, '\P{^	_m}', "");
+    Error('\p{-:=is_M}');
+    Error('\P{-:=is_M}');
     Expect(1, 917999, '\p{ism}', "");
     Expect(0, 917999, '\p{^ism}', "");
     Expect(0, 917999, '\P{ism}', "");
@@ -110973,16 +112109,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^ism}', "");
     Expect(1, 918000, '\P{ism}', "");
     Expect(0, 918000, '\P{^ism}', "");
-    Expect(1, 917999, '\p{-	Is_M}', "");
-    Expect(0, 917999, '\p{^-	Is_M}', "");
-    Expect(0, 917999, '\P{-	Is_M}', "");
-    Expect(1, 917999, '\P{^-	Is_M}', "");
-    Expect(0, 918000, '\p{-	Is_M}', "");
-    Expect(1, 918000, '\p{^-	Is_M}', "");
-    Expect(1, 918000, '\P{-	Is_M}', "");
-    Expect(0, 918000, '\P{^-	Is_M}', "");
-    Error('\p{:= 	Combining_Mark}');
-    Error('\P{:= 	Combining_Mark}');
+    Expect(1, 917999, '\p{-_is_M}', "");
+    Expect(0, 917999, '\p{^-_is_M}', "");
+    Expect(0, 917999, '\P{-_is_M}', "");
+    Expect(1, 917999, '\P{^-_is_M}', "");
+    Expect(0, 918000, '\p{-_is_M}', "");
+    Expect(1, 918000, '\p{^-_is_M}', "");
+    Expect(1, 918000, '\P{-_is_M}', "");
+    Expect(0, 918000, '\P{^-_is_M}', "");
+    Error('\p{:=__Combining_MARK}');
+    Error('\P{:=__Combining_MARK}');
     Expect(1, 917999, '\p{combiningmark}', "");
     Expect(0, 917999, '\p{^combiningmark}', "");
     Expect(0, 917999, '\P{combiningmark}', "");
@@ -110991,16 +112127,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^combiningmark}', "");
     Expect(1, 918000, '\P{combiningmark}', "");
     Expect(0, 918000, '\P{^combiningmark}', "");
-    Expect(1, 917999, '\p{  Combining_Mark}', "");
-    Expect(0, 917999, '\p{^  Combining_Mark}', "");
-    Expect(0, 917999, '\P{  Combining_Mark}', "");
-    Expect(1, 917999, '\P{^  Combining_Mark}', "");
-    Expect(0, 918000, '\p{  Combining_Mark}', "");
-    Expect(1, 918000, '\p{^  Combining_Mark}', "");
-    Expect(1, 918000, '\P{  Combining_Mark}', "");
-    Expect(0, 918000, '\P{^  Combining_Mark}', "");
-    Error('\p{ -Is_COMBINING_Mark:=}');
-    Error('\P{ -Is_COMBINING_Mark:=}');
+    Expect(1, 917999, '\p{	COMBINING_Mark}', "");
+    Expect(0, 917999, '\p{^	COMBINING_Mark}', "");
+    Expect(0, 917999, '\P{	COMBINING_Mark}', "");
+    Expect(1, 917999, '\P{^	COMBINING_Mark}', "");
+    Expect(0, 918000, '\p{	COMBINING_Mark}', "");
+    Expect(1, 918000, '\p{^	COMBINING_Mark}', "");
+    Expect(1, 918000, '\P{	COMBINING_Mark}', "");
+    Expect(0, 918000, '\P{^	COMBINING_Mark}', "");
+    Error('\p{ /a/IS_Combining_Mark}');
+    Error('\P{ /a/IS_Combining_Mark}');
     Expect(1, 917999, '\p{iscombiningmark}', "");
     Expect(0, 917999, '\p{^iscombiningmark}', "");
     Expect(0, 917999, '\P{iscombiningmark}', "");
@@ -111009,16 +112145,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^iscombiningmark}', "");
     Expect(1, 918000, '\P{iscombiningmark}', "");
     Expect(0, 918000, '\P{^iscombiningmark}', "");
-    Expect(1, 917999, '\p{--is_Combining_MARK}', "");
-    Expect(0, 917999, '\p{^--is_Combining_MARK}', "");
-    Expect(0, 917999, '\P{--is_Combining_MARK}', "");
-    Expect(1, 917999, '\P{^--is_Combining_MARK}', "");
-    Expect(0, 918000, '\p{--is_Combining_MARK}', "");
-    Expect(1, 918000, '\p{^--is_Combining_MARK}', "");
-    Expect(1, 918000, '\P{--is_Combining_MARK}', "");
-    Expect(0, 918000, '\P{^--is_Combining_MARK}', "");
-    Error('\p{:= _Masaram_gondi}');
-    Error('\P{:= _Masaram_gondi}');
+    Expect(1, 917999, '\p{-Is_Combining_mark}', "");
+    Expect(0, 917999, '\p{^-Is_Combining_mark}', "");
+    Expect(0, 917999, '\P{-Is_Combining_mark}', "");
+    Expect(1, 917999, '\P{^-Is_Combining_mark}', "");
+    Expect(0, 918000, '\p{-Is_Combining_mark}', "");
+    Expect(1, 918000, '\p{^-Is_Combining_mark}', "");
+    Expect(1, 918000, '\P{-Is_Combining_mark}', "");
+    Expect(0, 918000, '\P{^-Is_Combining_mark}', "");
+    Error('\p{:=	Masaram_Gondi}');
+    Error('\P{:=	Masaram_Gondi}');
     Expect(1, 73049, '\p{masaramgondi}', "");
     Expect(0, 73049, '\p{^masaramgondi}', "");
     Expect(0, 73049, '\P{masaramgondi}', "");
@@ -111027,16 +112163,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73050, '\p{^masaramgondi}', "");
     Expect(1, 73050, '\P{masaramgondi}', "");
     Expect(0, 73050, '\P{^masaramgondi}', "");
-    Expect(1, 73049, '\p{ Masaram_Gondi}', "");
-    Expect(0, 73049, '\p{^ Masaram_Gondi}', "");
-    Expect(0, 73049, '\P{ Masaram_Gondi}', "");
-    Expect(1, 73049, '\P{^ Masaram_Gondi}', "");
-    Expect(0, 73050, '\p{ Masaram_Gondi}', "");
-    Expect(1, 73050, '\p{^ Masaram_Gondi}', "");
-    Expect(1, 73050, '\P{ Masaram_Gondi}', "");
-    Expect(0, 73050, '\P{^ Masaram_Gondi}', "");
-    Error('\p{/a/__Is_masaram_gondi}');
-    Error('\P{/a/__Is_masaram_gondi}');
+    Expect(1, 73049, '\p{-Masaram_gondi}', "");
+    Expect(0, 73049, '\p{^-Masaram_gondi}', "");
+    Expect(0, 73049, '\P{-Masaram_gondi}', "");
+    Expect(1, 73049, '\P{^-Masaram_gondi}', "");
+    Expect(0, 73050, '\p{-Masaram_gondi}', "");
+    Expect(1, 73050, '\p{^-Masaram_gondi}', "");
+    Expect(1, 73050, '\P{-Masaram_gondi}', "");
+    Expect(0, 73050, '\P{^-Masaram_gondi}', "");
+    Error('\p{:=	 Is_Masaram_gondi}');
+    Error('\P{:=	 Is_Masaram_gondi}');
     Expect(1, 73049, '\p{ismasaramgondi}', "");
     Expect(0, 73049, '\p{^ismasaramgondi}', "");
     Expect(0, 73049, '\P{ismasaramgondi}', "");
@@ -111045,16 +112181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73050, '\p{^ismasaramgondi}', "");
     Expect(1, 73050, '\P{ismasaramgondi}', "");
     Expect(0, 73050, '\P{^ismasaramgondi}', "");
-    Expect(1, 73049, '\p{__Is_Masaram_GONDI}', "");
-    Expect(0, 73049, '\p{^__Is_Masaram_GONDI}', "");
-    Expect(0, 73049, '\P{__Is_Masaram_GONDI}', "");
-    Expect(1, 73049, '\P{^__Is_Masaram_GONDI}', "");
-    Expect(0, 73050, '\p{__Is_Masaram_GONDI}', "");
-    Expect(1, 73050, '\p{^__Is_Masaram_GONDI}', "");
-    Expect(1, 73050, '\P{__Is_Masaram_GONDI}', "");
-    Expect(0, 73050, '\P{^__Is_Masaram_GONDI}', "");
-    Error('\p{	_GONM:=}');
-    Error('\P{	_GONM:=}');
+    Expect(1, 73049, '\p{-	Is_Masaram_GONDI}', "");
+    Expect(0, 73049, '\p{^-	Is_Masaram_GONDI}', "");
+    Expect(0, 73049, '\P{-	Is_Masaram_GONDI}', "");
+    Expect(1, 73049, '\P{^-	Is_Masaram_GONDI}', "");
+    Expect(0, 73050, '\p{-	Is_Masaram_GONDI}', "");
+    Expect(1, 73050, '\p{^-	Is_Masaram_GONDI}', "");
+    Expect(1, 73050, '\P{-	Is_Masaram_GONDI}', "");
+    Expect(0, 73050, '\P{^-	Is_Masaram_GONDI}', "");
+    Error('\p{:=		gonm}');
+    Error('\P{:=		gonm}');
     Expect(1, 73049, '\p{gonm}', "");
     Expect(0, 73049, '\p{^gonm}', "");
     Expect(0, 73049, '\P{gonm}', "");
@@ -111063,16 +112199,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73050, '\p{^gonm}', "");
     Expect(1, 73050, '\P{gonm}', "");
     Expect(0, 73050, '\P{^gonm}', "");
-    Expect(1, 73049, '\p{  Gonm}', "");
-    Expect(0, 73049, '\p{^  Gonm}', "");
-    Expect(0, 73049, '\P{  Gonm}', "");
-    Expect(1, 73049, '\P{^  Gonm}', "");
-    Expect(0, 73050, '\p{  Gonm}', "");
-    Expect(1, 73050, '\p{^  Gonm}', "");
-    Expect(1, 73050, '\P{  Gonm}', "");
-    Expect(0, 73050, '\P{^  Gonm}', "");
-    Error('\p{	:=is_Gonm}');
-    Error('\P{	:=is_Gonm}');
+    Expect(1, 73049, '\p{		Gonm}', "");
+    Expect(0, 73049, '\p{^		Gonm}', "");
+    Expect(0, 73049, '\P{		Gonm}', "");
+    Expect(1, 73049, '\P{^		Gonm}', "");
+    Expect(0, 73050, '\p{		Gonm}', "");
+    Expect(1, 73050, '\p{^		Gonm}', "");
+    Expect(1, 73050, '\P{		Gonm}', "");
+    Expect(0, 73050, '\P{^		Gonm}', "");
+    Error('\p{  is_Gonm/a/}');
+    Error('\P{  is_Gonm/a/}');
     Expect(1, 73049, '\p{isgonm}', "");
     Expect(0, 73049, '\p{^isgonm}', "");
     Expect(0, 73049, '\P{isgonm}', "");
@@ -111081,16 +112217,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 73050, '\p{^isgonm}', "");
     Expect(1, 73050, '\P{isgonm}', "");
     Expect(0, 73050, '\P{^isgonm}', "");
-    Expect(1, 73049, '\p{-	Is_gonm}', "");
-    Expect(0, 73049, '\p{^-	Is_gonm}', "");
-    Expect(0, 73049, '\P{-	Is_gonm}', "");
-    Expect(1, 73049, '\P{^-	Is_gonm}', "");
-    Expect(0, 73050, '\p{-	Is_gonm}', "");
-    Expect(1, 73050, '\p{^-	Is_gonm}', "");
-    Expect(1, 73050, '\P{-	Is_gonm}', "");
-    Expect(0, 73050, '\P{^-	Is_gonm}', "");
-    Error('\p{-	Math/a/}');
-    Error('\P{-	Math/a/}');
+    Expect(1, 73049, '\p{-Is_Gonm}', "");
+    Expect(0, 73049, '\p{^-Is_Gonm}', "");
+    Expect(0, 73049, '\P{-Is_Gonm}', "");
+    Expect(1, 73049, '\P{^-Is_Gonm}', "");
+    Expect(0, 73050, '\p{-Is_Gonm}', "");
+    Expect(1, 73050, '\p{^-Is_Gonm}', "");
+    Expect(1, 73050, '\P{-Is_Gonm}', "");
+    Expect(0, 73050, '\P{^-Is_Gonm}', "");
+    Error('\p{ Math/a/}');
+    Error('\P{ Math/a/}');
     Expect(1, 126705, '\p{math}', "");
     Expect(0, 126705, '\p{^math}', "");
     Expect(0, 126705, '\P{math}', "");
@@ -111099,16 +112235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^math}', "");
     Expect(1, 126706, '\P{math}', "");
     Expect(0, 126706, '\P{^math}', "");
-    Expect(1, 126705, '\p{__Math}', "");
-    Expect(0, 126705, '\p{^__Math}', "");
-    Expect(0, 126705, '\P{__Math}', "");
-    Expect(1, 126705, '\P{^__Math}', "");
-    Expect(0, 126706, '\p{__Math}', "");
-    Expect(1, 126706, '\p{^__Math}', "");
-    Expect(1, 126706, '\P{__Math}', "");
-    Expect(0, 126706, '\P{^__Math}', "");
-    Error('\p{Is_Math/a/}');
-    Error('\P{Is_Math/a/}');
+    Expect(1, 126705, '\p{--math}', "");
+    Expect(0, 126705, '\p{^--math}', "");
+    Expect(0, 126705, '\P{--math}', "");
+    Expect(1, 126705, '\P{^--math}', "");
+    Expect(0, 126706, '\p{--math}', "");
+    Expect(1, 126706, '\p{^--math}', "");
+    Expect(1, 126706, '\P{--math}', "");
+    Expect(0, 126706, '\P{^--math}', "");
+    Error('\p{/a/is_Math}');
+    Error('\P{/a/is_Math}');
     Expect(1, 126705, '\p{ismath}', "");
     Expect(0, 126705, '\p{^ismath}', "");
     Expect(0, 126705, '\P{ismath}', "");
@@ -111117,16 +112253,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^ismath}', "");
     Expect(1, 126706, '\P{ismath}', "");
     Expect(0, 126706, '\P{^ismath}', "");
-    Expect(1, 126705, '\p{ IS_MATH}', "");
-    Expect(0, 126705, '\p{^ IS_MATH}', "");
-    Expect(0, 126705, '\P{ IS_MATH}', "");
-    Expect(1, 126705, '\P{^ IS_MATH}', "");
-    Expect(0, 126706, '\p{ IS_MATH}', "");
-    Expect(1, 126706, '\p{^ IS_MATH}', "");
-    Expect(1, 126706, '\P{ IS_MATH}', "");
-    Expect(0, 126706, '\P{^ IS_MATH}', "");
-    Error('\p{	Math_Symbol:=}');
-    Error('\P{	Math_Symbol:=}');
+    Expect(1, 126705, '\p{-_Is_Math}', "");
+    Expect(0, 126705, '\p{^-_Is_Math}', "");
+    Expect(0, 126705, '\P{-_Is_Math}', "");
+    Expect(1, 126705, '\P{^-_Is_Math}', "");
+    Expect(0, 126706, '\p{-_Is_Math}', "");
+    Expect(1, 126706, '\p{^-_Is_Math}', "");
+    Expect(1, 126706, '\P{-_Is_Math}', "");
+    Expect(0, 126706, '\P{^-_Is_Math}', "");
+    Error('\p{-/a/Math_symbol}');
+    Error('\P{-/a/Math_symbol}');
     Expect(1, 126705, '\p{mathsymbol}', "");
     Expect(0, 126705, '\p{^mathsymbol}', "");
     Expect(0, 126705, '\P{mathsymbol}', "");
@@ -111135,16 +112271,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^mathsymbol}', "");
     Expect(1, 126706, '\P{mathsymbol}', "");
     Expect(0, 126706, '\P{^mathsymbol}', "");
-    Expect(1, 126705, '\p{_MATH_symbol}', "");
-    Expect(0, 126705, '\p{^_MATH_symbol}', "");
-    Expect(0, 126705, '\P{_MATH_symbol}', "");
-    Expect(1, 126705, '\P{^_MATH_symbol}', "");
-    Expect(0, 126706, '\p{_MATH_symbol}', "");
-    Expect(1, 126706, '\p{^_MATH_symbol}', "");
-    Expect(1, 126706, '\P{_MATH_symbol}', "");
-    Expect(0, 126706, '\P{^_MATH_symbol}', "");
-    Error('\p{:=_Is_Math_SYMBOL}');
-    Error('\P{:=_Is_Math_SYMBOL}');
+    Expect(1, 126705, '\p{  Math_Symbol}', "");
+    Expect(0, 126705, '\p{^  Math_Symbol}', "");
+    Expect(0, 126705, '\P{  Math_Symbol}', "");
+    Expect(1, 126705, '\P{^  Math_Symbol}', "");
+    Expect(0, 126706, '\p{  Math_Symbol}', "");
+    Expect(1, 126706, '\p{^  Math_Symbol}', "");
+    Expect(1, 126706, '\P{  Math_Symbol}', "");
+    Expect(0, 126706, '\P{^  Math_Symbol}', "");
+    Error('\p{:=Is_MATH_symbol}');
+    Error('\P{:=Is_MATH_symbol}');
     Expect(1, 126705, '\p{ismathsymbol}', "");
     Expect(0, 126705, '\p{^ismathsymbol}', "");
     Expect(0, 126705, '\P{ismathsymbol}', "");
@@ -111153,16 +112289,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^ismathsymbol}', "");
     Expect(1, 126706, '\P{ismathsymbol}', "");
     Expect(0, 126706, '\P{^ismathsymbol}', "");
-    Expect(1, 126705, '\p{	is_math_symbol}', "");
-    Expect(0, 126705, '\p{^	is_math_symbol}', "");
-    Expect(0, 126705, '\P{	is_math_symbol}', "");
-    Expect(1, 126705, '\P{^	is_math_symbol}', "");
-    Expect(0, 126706, '\p{	is_math_symbol}', "");
-    Expect(1, 126706, '\p{^	is_math_symbol}', "");
-    Expect(1, 126706, '\P{	is_math_symbol}', "");
-    Expect(0, 126706, '\P{^	is_math_symbol}', "");
-    Error('\p{-:=Sm}');
-    Error('\P{-:=Sm}');
+    Expect(1, 126705, '\p{_-is_Math_Symbol}', "");
+    Expect(0, 126705, '\p{^_-is_Math_Symbol}', "");
+    Expect(0, 126705, '\P{_-is_Math_Symbol}', "");
+    Expect(1, 126705, '\P{^_-is_Math_Symbol}', "");
+    Expect(0, 126706, '\p{_-is_Math_Symbol}', "");
+    Expect(1, 126706, '\p{^_-is_Math_Symbol}', "");
+    Expect(1, 126706, '\P{_-is_Math_Symbol}', "");
+    Expect(0, 126706, '\P{^_-is_Math_Symbol}', "");
+    Error('\p{-SM:=}');
+    Error('\P{-SM:=}');
     Expect(1, 126705, '\p{sm}', "");
     Expect(0, 126705, '\p{^sm}', "");
     Expect(0, 126705, '\P{sm}', "");
@@ -111171,16 +112307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^sm}', "");
     Expect(1, 126706, '\P{sm}', "");
     Expect(0, 126706, '\P{^sm}', "");
-    Expect(1, 126705, '\p{_sm}', "");
-    Expect(0, 126705, '\p{^_sm}', "");
-    Expect(0, 126705, '\P{_sm}', "");
-    Expect(1, 126705, '\P{^_sm}', "");
-    Expect(0, 126706, '\p{_sm}', "");
-    Expect(1, 126706, '\p{^_sm}', "");
-    Expect(1, 126706, '\P{_sm}', "");
-    Expect(0, 126706, '\P{^_sm}', "");
-    Error('\p{:=is_SM}');
-    Error('\P{:=is_SM}');
+    Expect(1, 126705, '\p{_	Sm}', "");
+    Expect(0, 126705, '\p{^_	Sm}', "");
+    Expect(0, 126705, '\P{_	Sm}', "");
+    Expect(1, 126705, '\P{^_	Sm}', "");
+    Expect(0, 126706, '\p{_	Sm}', "");
+    Expect(1, 126706, '\p{^_	Sm}', "");
+    Expect(1, 126706, '\P{_	Sm}', "");
+    Expect(0, 126706, '\P{^_	Sm}', "");
+    Error('\p{:=_	is_SM}');
+    Error('\P{:=_	is_SM}');
     Expect(1, 126705, '\p{issm}', "");
     Expect(0, 126705, '\p{^issm}', "");
     Expect(0, 126705, '\P{issm}', "");
@@ -111189,16 +112325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126706, '\p{^issm}', "");
     Expect(1, 126706, '\P{issm}', "");
     Expect(0, 126706, '\P{^issm}', "");
-    Expect(1, 126705, '\p{  Is_sm}', "");
-    Expect(0, 126705, '\p{^  Is_sm}', "");
-    Expect(0, 126705, '\P{  Is_sm}', "");
-    Expect(1, 126705, '\P{^  Is_sm}', "");
-    Expect(0, 126706, '\p{  Is_sm}', "");
-    Expect(1, 126706, '\p{^  Is_sm}', "");
-    Expect(1, 126706, '\P{  Is_sm}', "");
-    Expect(0, 126706, '\P{^  Is_sm}', "");
-    Error('\p{/a/- mathematical_alphanumeric_Symbols}');
-    Error('\P{/a/- mathematical_alphanumeric_Symbols}');
+    Expect(1, 126705, '\p{ _IS_sm}', "");
+    Expect(0, 126705, '\p{^ _IS_sm}', "");
+    Expect(0, 126705, '\P{ _IS_sm}', "");
+    Expect(1, 126705, '\P{^ _IS_sm}', "");
+    Expect(0, 126706, '\p{ _IS_sm}', "");
+    Expect(1, 126706, '\p{^ _IS_sm}', "");
+    Expect(1, 126706, '\P{ _IS_sm}', "");
+    Expect(0, 126706, '\P{^ _IS_sm}', "");
+    Error('\p{:=-	Mathematical_Alphanumeric_Symbols}');
+    Error('\P{:=-	Mathematical_Alphanumeric_Symbols}');
     Expect(1, 120831, '\p{mathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\p{^mathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\P{mathematicalalphanumericsymbols}', "");
@@ -111207,16 +112343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120832, '\p{^mathematicalalphanumericsymbols}', "");
     Expect(1, 120832, '\P{mathematicalalphanumericsymbols}', "");
     Expect(0, 120832, '\P{^mathematicalalphanumericsymbols}', "");
-    Expect(1, 120831, '\p{_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(0, 120831, '\p{^_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(0, 120831, '\P{_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(1, 120831, '\P{^_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(0, 120832, '\p{_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(1, 120832, '\p{^_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(1, 120832, '\P{_mathematical_ALPHANUMERIC_Symbols}', "");
-    Expect(0, 120832, '\P{^_mathematical_ALPHANUMERIC_Symbols}', "");
-    Error('\p{/a/		Is_MATHEMATICAL_ALPHANUMERIC_symbols}');
-    Error('\P{/a/		Is_MATHEMATICAL_ALPHANUMERIC_symbols}');
+    Expect(1, 120831, '\p{Mathematical_Alphanumeric_symbols}', "");
+    Expect(0, 120831, '\p{^Mathematical_Alphanumeric_symbols}', "");
+    Expect(0, 120831, '\P{Mathematical_Alphanumeric_symbols}', "");
+    Expect(1, 120831, '\P{^Mathematical_Alphanumeric_symbols}', "");
+    Expect(0, 120832, '\p{Mathematical_Alphanumeric_symbols}', "");
+    Expect(1, 120832, '\p{^Mathematical_Alphanumeric_symbols}', "");
+    Expect(1, 120832, '\P{Mathematical_Alphanumeric_symbols}', "");
+    Expect(0, 120832, '\P{^Mathematical_Alphanumeric_symbols}', "");
+    Error('\p{ IS_mathematical_ALPHANUMERIC_Symbols/a/}');
+    Error('\P{ IS_mathematical_ALPHANUMERIC_Symbols/a/}');
     Expect(1, 120831, '\p{ismathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\p{^ismathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\P{ismathematicalalphanumericsymbols}', "");
@@ -111225,16 +112361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120832, '\p{^ismathematicalalphanumericsymbols}', "");
     Expect(1, 120832, '\P{ismathematicalalphanumericsymbols}', "");
     Expect(0, 120832, '\P{^ismathematicalalphanumericsymbols}', "");
-    Expect(1, 120831, '\p{_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(0, 120831, '\p{^_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(0, 120831, '\P{_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(1, 120831, '\P{^_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(0, 120832, '\p{_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(1, 120832, '\p{^_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(1, 120832, '\P{_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Expect(0, 120832, '\P{^_ IS_Mathematical_alphanumeric_Symbols}', "");
-    Error('\p{/a/ _In_MATHEMATICAL_alphanumeric_Symbols}');
-    Error('\P{/a/ _In_MATHEMATICAL_alphanumeric_Symbols}');
+    Expect(1, 120831, '\p{is_Mathematical_alphanumeric_symbols}', "");
+    Expect(0, 120831, '\p{^is_Mathematical_alphanumeric_symbols}', "");
+    Expect(0, 120831, '\P{is_Mathematical_alphanumeric_symbols}', "");
+    Expect(1, 120831, '\P{^is_Mathematical_alphanumeric_symbols}', "");
+    Expect(0, 120832, '\p{is_Mathematical_alphanumeric_symbols}', "");
+    Expect(1, 120832, '\p{^is_Mathematical_alphanumeric_symbols}', "");
+    Expect(1, 120832, '\P{is_Mathematical_alphanumeric_symbols}', "");
+    Expect(0, 120832, '\P{^is_Mathematical_alphanumeric_symbols}', "");
+    Error('\p{  In_Mathematical_Alphanumeric_Symbols/a/}');
+    Error('\P{  In_Mathematical_Alphanumeric_Symbols/a/}');
     Expect(1, 120831, '\p{inmathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\p{^inmathematicalalphanumericsymbols}', "");
     Expect(0, 120831, '\P{inmathematicalalphanumericsymbols}', "");
@@ -111243,16 +112379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120832, '\p{^inmathematicalalphanumericsymbols}', "");
     Expect(1, 120832, '\P{inmathematicalalphanumericsymbols}', "");
     Expect(0, 120832, '\P{^inmathematicalalphanumericsymbols}', "");
-    Expect(1, 120831, '\p{	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(0, 120831, '\p{^	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(0, 120831, '\P{	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(1, 120831, '\P{^	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(0, 120832, '\p{	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(1, 120832, '\p{^	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(1, 120832, '\P{	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Expect(0, 120832, '\P{^	_in_Mathematical_Alphanumeric_Symbols}', "");
-    Error('\p{/a/		Math_Alphanum}');
-    Error('\P{/a/		Math_Alphanum}');
+    Expect(1, 120831, '\p{	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(0, 120831, '\p{^	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(0, 120831, '\P{	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(1, 120831, '\P{^	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(0, 120832, '\p{	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(1, 120832, '\p{^	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(1, 120832, '\P{	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Expect(0, 120832, '\P{^	in_Mathematical_ALPHANUMERIC_Symbols}', "");
+    Error('\p{ -math_alphanum:=}');
+    Error('\P{ -math_alphanum:=}');
     Expect(1, 120831, '\p{mathalphanum}', "");
     Expect(0, 120831, '\p{^mathalphanum}', "");
     Expect(0, 120831, '\P{mathalphanum}', "");
@@ -111261,16 +112397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120832, '\p{^mathalphanum}', "");
     Expect(1, 120832, '\P{mathalphanum}', "");
     Expect(0, 120832, '\P{^mathalphanum}', "");
-    Expect(1, 120831, '\p{ math_Alphanum}', "");
-    Expect(0, 120831, '\p{^ math_Alphanum}', "");
-    Expect(0, 120831, '\P{ math_Alphanum}', "");
-    Expect(1, 120831, '\P{^ math_Alphanum}', "");
-    Expect(0, 120832, '\p{ math_Alphanum}', "");
-    Expect(1, 120832, '\p{^ math_Alphanum}', "");
-    Expect(1, 120832, '\P{ math_Alphanum}', "");
-    Expect(0, 120832, '\P{^ math_Alphanum}', "");
-    Error('\p{-Is_math_Alphanum/a/}');
-    Error('\P{-Is_math_Alphanum/a/}');
+    Expect(1, 120831, '\p{ Math_alphanum}', "");
+    Expect(0, 120831, '\p{^ Math_alphanum}', "");
+    Expect(0, 120831, '\P{ Math_alphanum}', "");
+    Expect(1, 120831, '\P{^ Math_alphanum}', "");
+    Expect(0, 120832, '\p{ Math_alphanum}', "");
+    Expect(1, 120832, '\p{^ Math_alphanum}', "");
+    Expect(1, 120832, '\P{ Math_alphanum}', "");
+    Expect(0, 120832, '\P{^ Math_alphanum}', "");
+    Error('\p{/a/-is_MATH_alphanum}');
+    Error('\P{/a/-is_MATH_alphanum}');
     Expect(1, 120831, '\p{ismathalphanum}', "");
     Expect(0, 120831, '\p{^ismathalphanum}', "");
     Expect(0, 120831, '\P{ismathalphanum}', "");
@@ -111279,16 +112415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120832, '\p{^ismathalphanum}', "");
     Expect(1, 120832, '\P{ismathalphanum}', "");
     Expect(0, 120832, '\P{^ismathalphanum}', "");
-    Expect(1, 120831, '\p{ is_MATH_alphanum}', "");
-    Expect(0, 120831, '\p{^ is_MATH_alphanum}', "");
-    Expect(0, 120831, '\P{ is_MATH_alphanum}', "");
-    Expect(1, 120831, '\P{^ is_MATH_alphanum}', "");
-    Expect(0, 120832, '\p{ is_MATH_alphanum}', "");
-    Expect(1, 120832, '\p{^ is_MATH_alphanum}', "");
-    Expect(1, 120832, '\P{ is_MATH_alphanum}', "");
-    Expect(0, 120832, '\P{^ is_MATH_alphanum}', "");
-    Error('\p{		In_Math_Alphanum:=}');
-    Error('\P{		In_Math_Alphanum:=}');
+    Expect(1, 120831, '\p{_Is_Math_alphanum}', "");
+    Expect(0, 120831, '\p{^_Is_Math_alphanum}', "");
+    Expect(0, 120831, '\P{_Is_Math_alphanum}', "");
+    Expect(1, 120831, '\P{^_Is_Math_alphanum}', "");
+    Expect(0, 120832, '\p{_Is_Math_alphanum}', "");
+    Expect(1, 120832, '\p{^_Is_Math_alphanum}', "");
+    Expect(1, 120832, '\P{_Is_Math_alphanum}', "");
+    Expect(0, 120832, '\P{^_Is_Math_alphanum}', "");
+    Error('\p{:=_	in_Math_ALPHANUM}');
+    Error('\P{:=_	in_Math_ALPHANUM}');
     Expect(1, 120831, '\p{inmathalphanum}', "");
     Expect(0, 120831, '\p{^inmathalphanum}', "");
     Expect(0, 120831, '\P{inmathalphanum}', "");
@@ -111297,16 +112433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 120832, '\p{^inmathalphanum}', "");
     Expect(1, 120832, '\P{inmathalphanum}', "");
     Expect(0, 120832, '\P{^inmathalphanum}', "");
-    Expect(1, 120831, '\p{ _In_math_alphanum}', "");
-    Expect(0, 120831, '\p{^ _In_math_alphanum}', "");
-    Expect(0, 120831, '\P{ _In_math_alphanum}', "");
-    Expect(1, 120831, '\P{^ _In_math_alphanum}', "");
-    Expect(0, 120832, '\p{ _In_math_alphanum}', "");
-    Expect(1, 120832, '\p{^ _In_math_alphanum}', "");
-    Expect(1, 120832, '\P{ _In_math_alphanum}', "");
-    Expect(0, 120832, '\P{^ _In_math_alphanum}', "");
-    Error('\p{	:=mathematical_Operators}');
-    Error('\P{	:=mathematical_Operators}');
+    Expect(1, 120831, '\p{ 	In_math_ALPHANUM}', "");
+    Expect(0, 120831, '\p{^ 	In_math_ALPHANUM}', "");
+    Expect(0, 120831, '\P{ 	In_math_ALPHANUM}', "");
+    Expect(1, 120831, '\P{^ 	In_math_ALPHANUM}', "");
+    Expect(0, 120832, '\p{ 	In_math_ALPHANUM}', "");
+    Expect(1, 120832, '\p{^ 	In_math_ALPHANUM}', "");
+    Expect(1, 120832, '\P{ 	In_math_ALPHANUM}', "");
+    Expect(0, 120832, '\P{^ 	In_math_ALPHANUM}', "");
+    Error('\p{:= Mathematical_Operators}');
+    Error('\P{:= Mathematical_Operators}');
     Expect(1, 8959, '\p{mathematicaloperators}', "");
     Expect(0, 8959, '\p{^mathematicaloperators}', "");
     Expect(0, 8959, '\P{mathematicaloperators}', "");
@@ -111315,16 +112451,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8960, '\p{^mathematicaloperators}', "");
     Expect(1, 8960, '\P{mathematicaloperators}', "");
     Expect(0, 8960, '\P{^mathematicaloperators}', "");
-    Expect(1, 8959, '\p{--mathematical_operators}', "");
-    Expect(0, 8959, '\p{^--mathematical_operators}', "");
-    Expect(0, 8959, '\P{--mathematical_operators}', "");
-    Expect(1, 8959, '\P{^--mathematical_operators}', "");
-    Expect(0, 8960, '\p{--mathematical_operators}', "");
-    Expect(1, 8960, '\p{^--mathematical_operators}', "");
-    Expect(1, 8960, '\P{--mathematical_operators}', "");
-    Expect(0, 8960, '\P{^--mathematical_operators}', "");
-    Error('\p{-IS_Mathematical_operators:=}');
-    Error('\P{-IS_Mathematical_operators:=}');
+    Expect(1, 8959, '\p{-	Mathematical_OPERATORS}', "");
+    Expect(0, 8959, '\p{^-	Mathematical_OPERATORS}', "");
+    Expect(0, 8959, '\P{-	Mathematical_OPERATORS}', "");
+    Expect(1, 8959, '\P{^-	Mathematical_OPERATORS}', "");
+    Expect(0, 8960, '\p{-	Mathematical_OPERATORS}', "");
+    Expect(1, 8960, '\p{^-	Mathematical_OPERATORS}', "");
+    Expect(1, 8960, '\P{-	Mathematical_OPERATORS}', "");
+    Expect(0, 8960, '\P{^-	Mathematical_OPERATORS}', "");
+    Error('\p{/a/__is_MATHEMATICAL_operators}');
+    Error('\P{/a/__is_MATHEMATICAL_operators}');
     Expect(1, 8959, '\p{ismathematicaloperators}', "");
     Expect(0, 8959, '\p{^ismathematicaloperators}', "");
     Expect(0, 8959, '\P{ismathematicaloperators}', "");
@@ -111333,16 +112469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8960, '\p{^ismathematicaloperators}', "");
     Expect(1, 8960, '\P{ismathematicaloperators}', "");
     Expect(0, 8960, '\P{^ismathematicaloperators}', "");
-    Expect(1, 8959, '\p{_ Is_Mathematical_Operators}', "");
-    Expect(0, 8959, '\p{^_ Is_Mathematical_Operators}', "");
-    Expect(0, 8959, '\P{_ Is_Mathematical_Operators}', "");
-    Expect(1, 8959, '\P{^_ Is_Mathematical_Operators}', "");
-    Expect(0, 8960, '\p{_ Is_Mathematical_Operators}', "");
-    Expect(1, 8960, '\p{^_ Is_Mathematical_Operators}', "");
-    Expect(1, 8960, '\P{_ Is_Mathematical_Operators}', "");
-    Expect(0, 8960, '\P{^_ Is_Mathematical_Operators}', "");
-    Error('\p{:=--In_mathematical_Operators}');
-    Error('\P{:=--In_mathematical_Operators}');
+    Expect(1, 8959, '\p{-Is_Mathematical_Operators}', "");
+    Expect(0, 8959, '\p{^-Is_Mathematical_Operators}', "");
+    Expect(0, 8959, '\P{-Is_Mathematical_Operators}', "");
+    Expect(1, 8959, '\P{^-Is_Mathematical_Operators}', "");
+    Expect(0, 8960, '\p{-Is_Mathematical_Operators}', "");
+    Expect(1, 8960, '\p{^-Is_Mathematical_Operators}', "");
+    Expect(1, 8960, '\P{-Is_Mathematical_Operators}', "");
+    Expect(0, 8960, '\P{^-Is_Mathematical_Operators}', "");
+    Error('\p{-_In_Mathematical_Operators:=}');
+    Error('\P{-_In_Mathematical_Operators:=}');
     Expect(1, 8959, '\p{inmathematicaloperators}', "");
     Expect(0, 8959, '\p{^inmathematicaloperators}', "");
     Expect(0, 8959, '\P{inmathematicaloperators}', "");
@@ -111351,16 +112487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8960, '\p{^inmathematicaloperators}', "");
     Expect(1, 8960, '\P{inmathematicaloperators}', "");
     Expect(0, 8960, '\P{^inmathematicaloperators}', "");
-    Expect(1, 8959, '\p{_IN_Mathematical_operators}', "");
-    Expect(0, 8959, '\p{^_IN_Mathematical_operators}', "");
-    Expect(0, 8959, '\P{_IN_Mathematical_operators}', "");
-    Expect(1, 8959, '\P{^_IN_Mathematical_operators}', "");
-    Expect(0, 8960, '\p{_IN_Mathematical_operators}', "");
-    Expect(1, 8960, '\p{^_IN_Mathematical_operators}', "");
-    Expect(1, 8960, '\P{_IN_Mathematical_operators}', "");
-    Expect(0, 8960, '\P{^_IN_Mathematical_operators}', "");
-    Error('\p{ /a/Math_operators}');
-    Error('\P{ /a/Math_operators}');
+    Expect(1, 8959, '\p{- In_MATHEMATICAL_Operators}', "");
+    Expect(0, 8959, '\p{^- In_MATHEMATICAL_Operators}', "");
+    Expect(0, 8959, '\P{- In_MATHEMATICAL_Operators}', "");
+    Expect(1, 8959, '\P{^- In_MATHEMATICAL_Operators}', "");
+    Expect(0, 8960, '\p{- In_MATHEMATICAL_Operators}', "");
+    Expect(1, 8960, '\p{^- In_MATHEMATICAL_Operators}', "");
+    Expect(1, 8960, '\P{- In_MATHEMATICAL_Operators}', "");
+    Expect(0, 8960, '\P{^- In_MATHEMATICAL_Operators}', "");
+    Error('\p{/a/ _MATH_Operators}');
+    Error('\P{/a/ _MATH_Operators}');
     Expect(1, 8959, '\p{mathoperators}', "");
     Expect(0, 8959, '\p{^mathoperators}', "");
     Expect(0, 8959, '\P{mathoperators}', "");
@@ -111369,16 +112505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8960, '\p{^mathoperators}', "");
     Expect(1, 8960, '\P{mathoperators}', "");
     Expect(0, 8960, '\P{^mathoperators}', "");
-    Expect(1, 8959, '\p{--MATH_OPERATORS}', "");
-    Expect(0, 8959, '\p{^--MATH_OPERATORS}', "");
-    Expect(0, 8959, '\P{--MATH_OPERATORS}', "");
-    Expect(1, 8959, '\P{^--MATH_OPERATORS}', "");
-    Expect(0, 8960, '\p{--MATH_OPERATORS}', "");
-    Expect(1, 8960, '\p{^--MATH_OPERATORS}', "");
-    Expect(1, 8960, '\P{--MATH_OPERATORS}', "");
-    Expect(0, 8960, '\P{^--MATH_OPERATORS}', "");
-    Error('\p{/a/		Is_math_operators}');
-    Error('\P{/a/		Is_math_operators}');
+    Expect(1, 8959, '\p{-Math_Operators}', "");
+    Expect(0, 8959, '\p{^-Math_Operators}', "");
+    Expect(0, 8959, '\P{-Math_Operators}', "");
+    Expect(1, 8959, '\P{^-Math_Operators}', "");
+    Expect(0, 8960, '\p{-Math_Operators}', "");
+    Expect(1, 8960, '\p{^-Math_Operators}', "");
+    Expect(1, 8960, '\P{-Math_Operators}', "");
+    Expect(0, 8960, '\P{^-Math_Operators}', "");
+    Error('\p{ Is_MATH_Operators/a/}');
+    Error('\P{ Is_MATH_Operators/a/}');
     Expect(1, 8959, '\p{ismathoperators}', "");
     Expect(0, 8959, '\p{^ismathoperators}', "");
     Expect(0, 8959, '\P{ismathoperators}', "");
@@ -111387,16 +112523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8960, '\p{^ismathoperators}', "");
     Expect(1, 8960, '\P{ismathoperators}', "");
     Expect(0, 8960, '\P{^ismathoperators}', "");
-    Expect(1, 8959, '\p{--is_MATH_OPERATORS}', "");
-    Expect(0, 8959, '\p{^--is_MATH_OPERATORS}', "");
-    Expect(0, 8959, '\P{--is_MATH_OPERATORS}', "");
-    Expect(1, 8959, '\P{^--is_MATH_OPERATORS}', "");
-    Expect(0, 8960, '\p{--is_MATH_OPERATORS}', "");
-    Expect(1, 8960, '\p{^--is_MATH_OPERATORS}', "");
-    Expect(1, 8960, '\P{--is_MATH_OPERATORS}', "");
-    Expect(0, 8960, '\P{^--is_MATH_OPERATORS}', "");
-    Error('\p{  In_Math_Operators/a/}');
-    Error('\P{  In_Math_Operators/a/}');
+    Expect(1, 8959, '\p{ is_Math_operators}', "");
+    Expect(0, 8959, '\p{^ is_Math_operators}', "");
+    Expect(0, 8959, '\P{ is_Math_operators}', "");
+    Expect(1, 8959, '\P{^ is_Math_operators}', "");
+    Expect(0, 8960, '\p{ is_Math_operators}', "");
+    Expect(1, 8960, '\p{^ is_Math_operators}', "");
+    Expect(1, 8960, '\P{ is_Math_operators}', "");
+    Expect(0, 8960, '\P{^ is_Math_operators}', "");
+    Error('\p{-/a/In_Math_Operators}');
+    Error('\P{-/a/In_Math_Operators}');
     Expect(1, 8959, '\p{inmathoperators}', "");
     Expect(0, 8959, '\p{^inmathoperators}', "");
     Expect(0, 8959, '\P{inmathoperators}', "");
@@ -111405,16 +112541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8960, '\p{^inmathoperators}', "");
     Expect(1, 8960, '\P{inmathoperators}', "");
     Expect(0, 8960, '\P{^inmathoperators}', "");
-    Expect(1, 8959, '\p{ -IN_Math_OPERATORS}', "");
-    Expect(0, 8959, '\p{^ -IN_Math_OPERATORS}', "");
-    Expect(0, 8959, '\P{ -IN_Math_OPERATORS}', "");
-    Expect(1, 8959, '\P{^ -IN_Math_OPERATORS}', "");
-    Expect(0, 8960, '\p{ -IN_Math_OPERATORS}', "");
-    Expect(1, 8960, '\p{^ -IN_Math_OPERATORS}', "");
-    Expect(1, 8960, '\P{ -IN_Math_OPERATORS}', "");
-    Expect(0, 8960, '\P{^ -IN_Math_OPERATORS}', "");
-    Error('\p{/a/	Mayan_Numerals}');
-    Error('\P{/a/	Mayan_Numerals}');
+    Expect(1, 8959, '\p{	-in_math_Operators}', "");
+    Expect(0, 8959, '\p{^	-in_math_Operators}', "");
+    Expect(0, 8959, '\P{	-in_math_Operators}', "");
+    Expect(1, 8959, '\P{^	-in_math_Operators}', "");
+    Expect(0, 8960, '\p{	-in_math_Operators}', "");
+    Expect(1, 8960, '\p{^	-in_math_Operators}', "");
+    Expect(1, 8960, '\P{	-in_math_Operators}', "");
+    Expect(0, 8960, '\P{^	-in_math_Operators}', "");
+    Error('\p{/a/-_Mayan_NUMERALS}');
+    Error('\P{/a/-_Mayan_NUMERALS}');
     Expect(1, 119551, '\p{mayannumerals}', "");
     Expect(0, 119551, '\p{^mayannumerals}', "");
     Expect(0, 119551, '\P{mayannumerals}', "");
@@ -111423,16 +112559,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119552, '\p{^mayannumerals}', "");
     Expect(1, 119552, '\P{mayannumerals}', "");
     Expect(0, 119552, '\P{^mayannumerals}', "");
-    Expect(1, 119551, '\p{ Mayan_Numerals}', "");
-    Expect(0, 119551, '\p{^ Mayan_Numerals}', "");
-    Expect(0, 119551, '\P{ Mayan_Numerals}', "");
-    Expect(1, 119551, '\P{^ Mayan_Numerals}', "");
-    Expect(0, 119552, '\p{ Mayan_Numerals}', "");
-    Expect(1, 119552, '\p{^ Mayan_Numerals}', "");
-    Expect(1, 119552, '\P{ Mayan_Numerals}', "");
-    Expect(0, 119552, '\P{^ Mayan_Numerals}', "");
-    Error('\p{:= -Is_MAYAN_numerals}');
-    Error('\P{:= -Is_MAYAN_numerals}');
+    Expect(1, 119551, '\p{	_Mayan_Numerals}', "");
+    Expect(0, 119551, '\p{^	_Mayan_Numerals}', "");
+    Expect(0, 119551, '\P{	_Mayan_Numerals}', "");
+    Expect(1, 119551, '\P{^	_Mayan_Numerals}', "");
+    Expect(0, 119552, '\p{	_Mayan_Numerals}', "");
+    Expect(1, 119552, '\p{^	_Mayan_Numerals}', "");
+    Expect(1, 119552, '\P{	_Mayan_Numerals}', "");
+    Expect(0, 119552, '\P{^	_Mayan_Numerals}', "");
+    Error('\p{	-is_mayan_NUMERALS:=}');
+    Error('\P{	-is_mayan_NUMERALS:=}');
     Expect(1, 119551, '\p{ismayannumerals}', "");
     Expect(0, 119551, '\p{^ismayannumerals}', "");
     Expect(0, 119551, '\P{ismayannumerals}', "");
@@ -111441,16 +112577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119552, '\p{^ismayannumerals}', "");
     Expect(1, 119552, '\P{ismayannumerals}', "");
     Expect(0, 119552, '\P{^ismayannumerals}', "");
-    Expect(1, 119551, '\p{__is_Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\p{^__is_Mayan_NUMERALS}', "");
-    Expect(0, 119551, '\P{__is_Mayan_NUMERALS}', "");
-    Expect(1, 119551, '\P{^__is_Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\p{__is_Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\p{^__is_Mayan_NUMERALS}', "");
-    Expect(1, 119552, '\P{__is_Mayan_NUMERALS}', "");
-    Expect(0, 119552, '\P{^__is_Mayan_NUMERALS}', "");
-    Error('\p{:=	 in_Mayan_Numerals}');
-    Error('\P{:=	 in_Mayan_Numerals}');
+    Expect(1, 119551, '\p{ _IS_Mayan_Numerals}', "");
+    Expect(0, 119551, '\p{^ _IS_Mayan_Numerals}', "");
+    Expect(0, 119551, '\P{ _IS_Mayan_Numerals}', "");
+    Expect(1, 119551, '\P{^ _IS_Mayan_Numerals}', "");
+    Expect(0, 119552, '\p{ _IS_Mayan_Numerals}', "");
+    Expect(1, 119552, '\p{^ _IS_Mayan_Numerals}', "");
+    Expect(1, 119552, '\P{ _IS_Mayan_Numerals}', "");
+    Expect(0, 119552, '\P{^ _IS_Mayan_Numerals}', "");
+    Error('\p{/a/ _IN_Mayan_Numerals}');
+    Error('\P{/a/ _IN_Mayan_Numerals}');
     Expect(1, 119551, '\p{inmayannumerals}', "");
     Expect(0, 119551, '\p{^inmayannumerals}', "");
     Expect(0, 119551, '\P{inmayannumerals}', "");
@@ -111459,16 +112595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119552, '\p{^inmayannumerals}', "");
     Expect(1, 119552, '\P{inmayannumerals}', "");
     Expect(0, 119552, '\P{^inmayannumerals}', "");
-    Expect(1, 119551, '\p{ -IN_mayan_Numerals}', "");
-    Expect(0, 119551, '\p{^ -IN_mayan_Numerals}', "");
-    Expect(0, 119551, '\P{ -IN_mayan_Numerals}', "");
-    Expect(1, 119551, '\P{^ -IN_mayan_Numerals}', "");
-    Expect(0, 119552, '\p{ -IN_mayan_Numerals}', "");
-    Expect(1, 119552, '\p{^ -IN_mayan_Numerals}', "");
-    Expect(1, 119552, '\P{ -IN_mayan_Numerals}', "");
-    Expect(0, 119552, '\P{^ -IN_mayan_Numerals}', "");
-    Error('\p{	 Medefaidrin:=}');
-    Error('\P{	 Medefaidrin:=}');
+    Expect(1, 119551, '\p{ IN_Mayan_NUMERALS}', "");
+    Expect(0, 119551, '\p{^ IN_Mayan_NUMERALS}', "");
+    Expect(0, 119551, '\P{ IN_Mayan_NUMERALS}', "");
+    Expect(1, 119551, '\P{^ IN_Mayan_NUMERALS}', "");
+    Expect(0, 119552, '\p{ IN_Mayan_NUMERALS}', "");
+    Expect(1, 119552, '\p{^ IN_Mayan_NUMERALS}', "");
+    Expect(1, 119552, '\P{ IN_Mayan_NUMERALS}', "");
+    Expect(0, 119552, '\P{^ IN_Mayan_NUMERALS}', "");
+    Error('\p{ :=MEDEFAIDRIN}');
+    Error('\P{ :=MEDEFAIDRIN}');
     Expect(1, 93850, '\p{medefaidrin}', "");
     Expect(0, 93850, '\p{^medefaidrin}', "");
     Expect(0, 93850, '\P{medefaidrin}', "");
@@ -111485,8 +112621,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93851, '\p{^ _medefaidrin}', "");
     Expect(1, 93851, '\P{ _medefaidrin}', "");
     Expect(0, 93851, '\P{^ _medefaidrin}', "");
-    Error('\p{:=_is_medefaidrin}');
-    Error('\P{:=_is_medefaidrin}');
+    Error('\p{Is_Medefaidrin:=}');
+    Error('\P{Is_Medefaidrin:=}');
     Expect(1, 93850, '\p{ismedefaidrin}', "");
     Expect(0, 93850, '\p{^ismedefaidrin}', "");
     Expect(0, 93850, '\P{ismedefaidrin}', "");
@@ -111495,16 +112631,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93851, '\p{^ismedefaidrin}', "");
     Expect(1, 93851, '\P{ismedefaidrin}', "");
     Expect(0, 93851, '\P{^ismedefaidrin}', "");
-    Expect(1, 93850, '\p{  Is_Medefaidrin}', "");
-    Expect(0, 93850, '\p{^  Is_Medefaidrin}', "");
-    Expect(0, 93850, '\P{  Is_Medefaidrin}', "");
-    Expect(1, 93850, '\P{^  Is_Medefaidrin}', "");
-    Expect(0, 93851, '\p{  Is_Medefaidrin}', "");
-    Expect(1, 93851, '\p{^  Is_Medefaidrin}', "");
-    Expect(1, 93851, '\P{  Is_Medefaidrin}', "");
-    Expect(0, 93851, '\P{^  Is_Medefaidrin}', "");
-    Error('\p{_ MEDF:=}');
-    Error('\P{_ MEDF:=}');
+    Expect(1, 93850, '\p{-_IS_Medefaidrin}', "");
+    Expect(0, 93850, '\p{^-_IS_Medefaidrin}', "");
+    Expect(0, 93850, '\P{-_IS_Medefaidrin}', "");
+    Expect(1, 93850, '\P{^-_IS_Medefaidrin}', "");
+    Expect(0, 93851, '\p{-_IS_Medefaidrin}', "");
+    Expect(1, 93851, '\p{^-_IS_Medefaidrin}', "");
+    Expect(1, 93851, '\P{-_IS_Medefaidrin}', "");
+    Expect(0, 93851, '\P{^-_IS_Medefaidrin}', "");
+    Error('\p{:=__medf}');
+    Error('\P{:=__medf}');
     Expect(1, 93850, '\p{medf}', "");
     Expect(0, 93850, '\p{^medf}', "");
     Expect(0, 93850, '\P{medf}', "");
@@ -111513,16 +112649,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93851, '\p{^medf}', "");
     Expect(1, 93851, '\P{medf}', "");
     Expect(0, 93851, '\P{^medf}', "");
-    Expect(1, 93850, '\p{ medf}', "");
-    Expect(0, 93850, '\p{^ medf}', "");
-    Expect(0, 93850, '\P{ medf}', "");
-    Expect(1, 93850, '\P{^ medf}', "");
-    Expect(0, 93851, '\p{ medf}', "");
-    Expect(1, 93851, '\p{^ medf}', "");
-    Expect(1, 93851, '\P{ medf}', "");
-    Expect(0, 93851, '\P{^ medf}', "");
-    Error('\p{ /a/is_MEDF}');
-    Error('\P{ /a/is_MEDF}');
+    Expect(1, 93850, '\p{ _medf}', "");
+    Expect(0, 93850, '\p{^ _medf}', "");
+    Expect(0, 93850, '\P{ _medf}', "");
+    Expect(1, 93850, '\P{^ _medf}', "");
+    Expect(0, 93851, '\p{ _medf}', "");
+    Expect(1, 93851, '\p{^ _medf}', "");
+    Expect(1, 93851, '\P{ _medf}', "");
+    Expect(0, 93851, '\P{^ _medf}', "");
+    Error('\p{:= -is_MEDF}');
+    Error('\P{:= -is_MEDF}');
     Expect(1, 93850, '\p{ismedf}', "");
     Expect(0, 93850, '\p{^ismedf}', "");
     Expect(0, 93850, '\P{ismedf}', "");
@@ -111531,16 +112667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93851, '\p{^ismedf}', "");
     Expect(1, 93851, '\P{ismedf}', "");
     Expect(0, 93851, '\P{^ismedf}', "");
-    Expect(1, 93850, '\p{ _IS_MEDF}', "");
-    Expect(0, 93850, '\p{^ _IS_MEDF}', "");
-    Expect(0, 93850, '\P{ _IS_MEDF}', "");
-    Expect(1, 93850, '\P{^ _IS_MEDF}', "");
-    Expect(0, 93851, '\p{ _IS_MEDF}', "");
-    Expect(1, 93851, '\p{^ _IS_MEDF}', "");
-    Expect(1, 93851, '\P{ _IS_MEDF}', "");
-    Expect(0, 93851, '\P{^ _IS_MEDF}', "");
-    Error('\p{  Meetei_Mayek:=}');
-    Error('\P{  Meetei_Mayek:=}');
+    Expect(1, 93850, '\p{_	Is_Medf}', "");
+    Expect(0, 93850, '\p{^_	Is_Medf}', "");
+    Expect(0, 93850, '\P{_	Is_Medf}', "");
+    Expect(1, 93850, '\P{^_	Is_Medf}', "");
+    Expect(0, 93851, '\p{_	Is_Medf}', "");
+    Expect(1, 93851, '\p{^_	Is_Medf}', "");
+    Expect(1, 93851, '\P{_	Is_Medf}', "");
+    Expect(0, 93851, '\P{^_	Is_Medf}', "");
+    Error('\p{:=MEETEI_Mayek}');
+    Error('\P{:=MEETEI_Mayek}');
     Expect(1, 44025, '\p{meeteimayek}', "");
     Expect(0, 44025, '\p{^meeteimayek}', "");
     Expect(0, 44025, '\P{meeteimayek}', "");
@@ -111549,16 +112685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 44026, '\p{^meeteimayek}', "");
     Expect(1, 44026, '\P{meeteimayek}', "");
     Expect(0, 44026, '\P{^meeteimayek}', "");
-    Expect(1, 44025, '\p{		Meetei_MAYEK}', "");
-    Expect(0, 44025, '\p{^		Meetei_MAYEK}', "");
-    Expect(0, 44025, '\P{		Meetei_MAYEK}', "");
-    Expect(1, 44025, '\P{^		Meetei_MAYEK}', "");
-    Expect(0, 44026, '\p{		Meetei_MAYEK}', "");
-    Expect(1, 44026, '\p{^		Meetei_MAYEK}', "");
-    Expect(1, 44026, '\P{		Meetei_MAYEK}', "");
-    Expect(0, 44026, '\P{^		Meetei_MAYEK}', "");
-    Error('\p{_:=is_Meetei_Mayek}');
-    Error('\P{_:=is_Meetei_Mayek}');
+    Expect(1, 44025, '\p{	_MEETEI_Mayek}', "");
+    Expect(0, 44025, '\p{^	_MEETEI_Mayek}', "");
+    Expect(0, 44025, '\P{	_MEETEI_Mayek}', "");
+    Expect(1, 44025, '\P{^	_MEETEI_Mayek}', "");
+    Expect(0, 44026, '\p{	_MEETEI_Mayek}', "");
+    Expect(1, 44026, '\p{^	_MEETEI_Mayek}', "");
+    Expect(1, 44026, '\P{	_MEETEI_Mayek}', "");
+    Expect(0, 44026, '\P{^	_MEETEI_Mayek}', "");
+    Error('\p{:= 	IS_meetei_Mayek}');
+    Error('\P{:= 	IS_meetei_Mayek}');
     Expect(1, 44025, '\p{ismeeteimayek}', "");
     Expect(0, 44025, '\p{^ismeeteimayek}', "");
     Expect(0, 44025, '\P{ismeeteimayek}', "");
@@ -111567,16 +112703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 44026, '\p{^ismeeteimayek}', "");
     Expect(1, 44026, '\P{ismeeteimayek}', "");
     Expect(0, 44026, '\P{^ismeeteimayek}', "");
-    Expect(1, 44025, '\p{--IS_meetei_mayek}', "");
-    Expect(0, 44025, '\p{^--IS_meetei_mayek}', "");
-    Expect(0, 44025, '\P{--IS_meetei_mayek}', "");
-    Expect(1, 44025, '\P{^--IS_meetei_mayek}', "");
-    Expect(0, 44026, '\p{--IS_meetei_mayek}', "");
-    Expect(1, 44026, '\p{^--IS_meetei_mayek}', "");
-    Expect(1, 44026, '\P{--IS_meetei_mayek}', "");
-    Expect(0, 44026, '\P{^--IS_meetei_mayek}', "");
-    Error('\p{:=mtei}');
-    Error('\P{:=mtei}');
+    Expect(1, 44025, '\p{_	IS_Meetei_Mayek}', "");
+    Expect(0, 44025, '\p{^_	IS_Meetei_Mayek}', "");
+    Expect(0, 44025, '\P{_	IS_Meetei_Mayek}', "");
+    Expect(1, 44025, '\P{^_	IS_Meetei_Mayek}', "");
+    Expect(0, 44026, '\p{_	IS_Meetei_Mayek}', "");
+    Expect(1, 44026, '\p{^_	IS_Meetei_Mayek}', "");
+    Expect(1, 44026, '\P{_	IS_Meetei_Mayek}', "");
+    Expect(0, 44026, '\P{^_	IS_Meetei_Mayek}', "");
+    Error('\p{	MTEI/a/}');
+    Error('\P{	MTEI/a/}');
     Expect(1, 44025, '\p{mtei}', "");
     Expect(0, 44025, '\p{^mtei}', "");
     Expect(0, 44025, '\P{mtei}', "");
@@ -111585,16 +112721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 44026, '\p{^mtei}', "");
     Expect(1, 44026, '\P{mtei}', "");
     Expect(0, 44026, '\P{^mtei}', "");
-    Expect(1, 44025, '\p{_ mtei}', "");
-    Expect(0, 44025, '\p{^_ mtei}', "");
-    Expect(0, 44025, '\P{_ mtei}', "");
-    Expect(1, 44025, '\P{^_ mtei}', "");
-    Expect(0, 44026, '\p{_ mtei}', "");
-    Expect(1, 44026, '\p{^_ mtei}', "");
-    Expect(1, 44026, '\P{_ mtei}', "");
-    Expect(0, 44026, '\P{^_ mtei}', "");
-    Error('\p{/a/--is_Mtei}');
-    Error('\P{/a/--is_Mtei}');
+    Expect(1, 44025, '\p{	MTEI}', "");
+    Expect(0, 44025, '\p{^	MTEI}', "");
+    Expect(0, 44025, '\P{	MTEI}', "");
+    Expect(1, 44025, '\P{^	MTEI}', "");
+    Expect(0, 44026, '\p{	MTEI}', "");
+    Expect(1, 44026, '\p{^	MTEI}', "");
+    Expect(1, 44026, '\P{	MTEI}', "");
+    Expect(0, 44026, '\P{^	MTEI}', "");
+    Error('\p{_:=Is_MTEI}');
+    Error('\P{_:=Is_MTEI}');
     Expect(1, 44025, '\p{ismtei}', "");
     Expect(0, 44025, '\p{^ismtei}', "");
     Expect(0, 44025, '\P{ismtei}', "");
@@ -111603,16 +112739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 44026, '\p{^ismtei}', "");
     Expect(1, 44026, '\P{ismtei}', "");
     Expect(0, 44026, '\P{^ismtei}', "");
-    Expect(1, 44025, '\p{		IS_Mtei}', "");
-    Expect(0, 44025, '\p{^		IS_Mtei}', "");
-    Expect(0, 44025, '\P{		IS_Mtei}', "");
-    Expect(1, 44025, '\P{^		IS_Mtei}', "");
-    Expect(0, 44026, '\p{		IS_Mtei}', "");
-    Expect(1, 44026, '\p{^		IS_Mtei}', "");
-    Expect(1, 44026, '\P{		IS_Mtei}', "");
-    Expect(0, 44026, '\P{^		IS_Mtei}', "");
-    Error('\p{/a/	-Meetei_Mayek_Extensions}');
-    Error('\P{/a/	-Meetei_Mayek_Extensions}');
+    Expect(1, 44025, '\p{_	Is_MTEI}', "");
+    Expect(0, 44025, '\p{^_	Is_MTEI}', "");
+    Expect(0, 44025, '\P{_	Is_MTEI}', "");
+    Expect(1, 44025, '\P{^_	Is_MTEI}', "");
+    Expect(0, 44026, '\p{_	Is_MTEI}', "");
+    Expect(1, 44026, '\p{^_	Is_MTEI}', "");
+    Expect(1, 44026, '\P{_	Is_MTEI}', "");
+    Expect(0, 44026, '\P{^_	Is_MTEI}', "");
+    Error('\p{__Meetei_Mayek_Extensions/a/}');
+    Error('\P{__Meetei_Mayek_Extensions/a/}');
     Expect(1, 43775, '\p{meeteimayekextensions}', "");
     Expect(0, 43775, '\p{^meeteimayekextensions}', "");
     Expect(0, 43775, '\P{meeteimayekextensions}', "");
@@ -111621,16 +112757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43776, '\p{^meeteimayekextensions}', "");
     Expect(1, 43776, '\P{meeteimayekextensions}', "");
     Expect(0, 43776, '\P{^meeteimayekextensions}', "");
-    Expect(1, 43775, '\p{	 Meetei_Mayek_Extensions}', "");
-    Expect(0, 43775, '\p{^	 Meetei_Mayek_Extensions}', "");
-    Expect(0, 43775, '\P{	 Meetei_Mayek_Extensions}', "");
-    Expect(1, 43775, '\P{^	 Meetei_Mayek_Extensions}', "");
-    Expect(0, 43776, '\p{	 Meetei_Mayek_Extensions}', "");
-    Expect(1, 43776, '\p{^	 Meetei_Mayek_Extensions}', "");
-    Expect(1, 43776, '\P{	 Meetei_Mayek_Extensions}', "");
-    Expect(0, 43776, '\P{^	 Meetei_Mayek_Extensions}', "");
-    Error('\p{_IS_Meetei_Mayek_Extensions:=}');
-    Error('\P{_IS_Meetei_Mayek_Extensions:=}');
+    Expect(1, 43775, '\p{	-Meetei_Mayek_Extensions}', "");
+    Expect(0, 43775, '\p{^	-Meetei_Mayek_Extensions}', "");
+    Expect(0, 43775, '\P{	-Meetei_Mayek_Extensions}', "");
+    Expect(1, 43775, '\P{^	-Meetei_Mayek_Extensions}', "");
+    Expect(0, 43776, '\p{	-Meetei_Mayek_Extensions}', "");
+    Expect(1, 43776, '\p{^	-Meetei_Mayek_Extensions}', "");
+    Expect(1, 43776, '\P{	-Meetei_Mayek_Extensions}', "");
+    Expect(0, 43776, '\P{^	-Meetei_Mayek_Extensions}', "");
+    Error('\p{	 is_Meetei_MAYEK_Extensions:=}');
+    Error('\P{	 is_Meetei_MAYEK_Extensions:=}');
     Expect(1, 43775, '\p{ismeeteimayekextensions}', "");
     Expect(0, 43775, '\p{^ismeeteimayekextensions}', "");
     Expect(0, 43775, '\P{ismeeteimayekextensions}', "");
@@ -111639,16 +112775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43776, '\p{^ismeeteimayekextensions}', "");
     Expect(1, 43776, '\P{ismeeteimayekextensions}', "");
     Expect(0, 43776, '\P{^ismeeteimayekextensions}', "");
-    Expect(1, 43775, '\p{ is_MEETEI_mayek_Extensions}', "");
-    Expect(0, 43775, '\p{^ is_MEETEI_mayek_Extensions}', "");
-    Expect(0, 43775, '\P{ is_MEETEI_mayek_Extensions}', "");
-    Expect(1, 43775, '\P{^ is_MEETEI_mayek_Extensions}', "");
-    Expect(0, 43776, '\p{ is_MEETEI_mayek_Extensions}', "");
-    Expect(1, 43776, '\p{^ is_MEETEI_mayek_Extensions}', "");
-    Expect(1, 43776, '\P{ is_MEETEI_mayek_Extensions}', "");
-    Expect(0, 43776, '\P{^ is_MEETEI_mayek_Extensions}', "");
-    Error('\p{:=_ In_MEETEI_mayek_EXTENSIONS}');
-    Error('\P{:=_ In_MEETEI_mayek_EXTENSIONS}');
+    Expect(1, 43775, '\p{ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(0, 43775, '\p{^ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(0, 43775, '\P{ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(1, 43775, '\P{^ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(0, 43776, '\p{ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(1, 43776, '\p{^ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(1, 43776, '\P{ -Is_MEETEI_Mayek_Extensions}', "");
+    Expect(0, 43776, '\P{^ -Is_MEETEI_Mayek_Extensions}', "");
+    Error('\p{ /a/IN_MEETEI_Mayek_EXTENSIONS}');
+    Error('\P{ /a/IN_MEETEI_Mayek_EXTENSIONS}');
     Expect(1, 43775, '\p{inmeeteimayekextensions}', "");
     Expect(0, 43775, '\p{^inmeeteimayekextensions}', "");
     Expect(0, 43775, '\P{inmeeteimayekextensions}', "");
@@ -111657,16 +112793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43776, '\p{^inmeeteimayekextensions}', "");
     Expect(1, 43776, '\P{inmeeteimayekextensions}', "");
     Expect(0, 43776, '\P{^inmeeteimayekextensions}', "");
-    Expect(1, 43775, '\p{In_Meetei_mayek_Extensions}', "");
-    Expect(0, 43775, '\p{^In_Meetei_mayek_Extensions}', "");
-    Expect(0, 43775, '\P{In_Meetei_mayek_Extensions}', "");
-    Expect(1, 43775, '\P{^In_Meetei_mayek_Extensions}', "");
-    Expect(0, 43776, '\p{In_Meetei_mayek_Extensions}', "");
-    Expect(1, 43776, '\p{^In_Meetei_mayek_Extensions}', "");
-    Expect(1, 43776, '\P{In_Meetei_mayek_Extensions}', "");
-    Expect(0, 43776, '\P{^In_Meetei_mayek_Extensions}', "");
-    Error('\p{ /a/Meetei_Mayek_Ext}');
-    Error('\P{ /a/Meetei_Mayek_Ext}');
+    Expect(1, 43775, '\p{ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(0, 43775, '\p{^ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(0, 43775, '\P{ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(1, 43775, '\P{^ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(0, 43776, '\p{ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(1, 43776, '\p{^ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(1, 43776, '\P{ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Expect(0, 43776, '\P{^ 	in_Meetei_Mayek_EXTENSIONS}', "");
+    Error('\p{_meetei_mayek_ext/a/}');
+    Error('\P{_meetei_mayek_ext/a/}');
     Expect(1, 43775, '\p{meeteimayekext}', "");
     Expect(0, 43775, '\p{^meeteimayekext}', "");
     Expect(0, 43775, '\P{meeteimayekext}', "");
@@ -111675,16 +112811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43776, '\p{^meeteimayekext}', "");
     Expect(1, 43776, '\P{meeteimayekext}', "");
     Expect(0, 43776, '\P{^meeteimayekext}', "");
-    Expect(1, 43775, '\p{-meetei_MAYEK_Ext}', "");
-    Expect(0, 43775, '\p{^-meetei_MAYEK_Ext}', "");
-    Expect(0, 43775, '\P{-meetei_MAYEK_Ext}', "");
-    Expect(1, 43775, '\P{^-meetei_MAYEK_Ext}', "");
-    Expect(0, 43776, '\p{-meetei_MAYEK_Ext}', "");
-    Expect(1, 43776, '\p{^-meetei_MAYEK_Ext}', "");
-    Expect(1, 43776, '\P{-meetei_MAYEK_Ext}', "");
-    Expect(0, 43776, '\P{^-meetei_MAYEK_Ext}', "");
-    Error('\p{__Is_Meetei_mayek_EXT/a/}');
-    Error('\P{__Is_Meetei_mayek_EXT/a/}');
+    Expect(1, 43775, '\p{ Meetei_Mayek_EXT}', "");
+    Expect(0, 43775, '\p{^ Meetei_Mayek_EXT}', "");
+    Expect(0, 43775, '\P{ Meetei_Mayek_EXT}', "");
+    Expect(1, 43775, '\P{^ Meetei_Mayek_EXT}', "");
+    Expect(0, 43776, '\p{ Meetei_Mayek_EXT}', "");
+    Expect(1, 43776, '\p{^ Meetei_Mayek_EXT}', "");
+    Expect(1, 43776, '\P{ Meetei_Mayek_EXT}', "");
+    Expect(0, 43776, '\P{^ Meetei_Mayek_EXT}', "");
+    Error('\p{		IS_Meetei_MAYEK_Ext/a/}');
+    Error('\P{		IS_Meetei_MAYEK_Ext/a/}');
     Expect(1, 43775, '\p{ismeeteimayekext}', "");
     Expect(0, 43775, '\p{^ismeeteimayekext}', "");
     Expect(0, 43775, '\P{ismeeteimayekext}', "");
@@ -111693,16 +112829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43776, '\p{^ismeeteimayekext}', "");
     Expect(1, 43776, '\P{ismeeteimayekext}', "");
     Expect(0, 43776, '\P{^ismeeteimayekext}', "");
-    Expect(1, 43775, '\p{_ is_meetei_mayek_Ext}', "");
-    Expect(0, 43775, '\p{^_ is_meetei_mayek_Ext}', "");
-    Expect(0, 43775, '\P{_ is_meetei_mayek_Ext}', "");
-    Expect(1, 43775, '\P{^_ is_meetei_mayek_Ext}', "");
-    Expect(0, 43776, '\p{_ is_meetei_mayek_Ext}', "");
-    Expect(1, 43776, '\p{^_ is_meetei_mayek_Ext}', "");
-    Expect(1, 43776, '\P{_ is_meetei_mayek_Ext}', "");
-    Expect(0, 43776, '\P{^_ is_meetei_mayek_Ext}', "");
-    Error('\p{/a/	IN_meetei_mayek_EXT}');
-    Error('\P{/a/	IN_meetei_mayek_EXT}');
+    Expect(1, 43775, '\p{ _Is_meetei_MAYEK_Ext}', "");
+    Expect(0, 43775, '\p{^ _Is_meetei_MAYEK_Ext}', "");
+    Expect(0, 43775, '\P{ _Is_meetei_MAYEK_Ext}', "");
+    Expect(1, 43775, '\P{^ _Is_meetei_MAYEK_Ext}', "");
+    Expect(0, 43776, '\p{ _Is_meetei_MAYEK_Ext}', "");
+    Expect(1, 43776, '\p{^ _Is_meetei_MAYEK_Ext}', "");
+    Expect(1, 43776, '\P{ _Is_meetei_MAYEK_Ext}', "");
+    Expect(0, 43776, '\P{^ _Is_meetei_MAYEK_Ext}', "");
+    Error('\p{ IN_meetei_mayek_Ext/a/}');
+    Error('\P{ IN_meetei_mayek_Ext/a/}');
     Expect(1, 43775, '\p{inmeeteimayekext}', "");
     Expect(0, 43775, '\p{^inmeeteimayekext}', "");
     Expect(0, 43775, '\P{inmeeteimayekext}', "");
@@ -111711,16 +112847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43776, '\p{^inmeeteimayekext}', "");
     Expect(1, 43776, '\P{inmeeteimayekext}', "");
     Expect(0, 43776, '\P{^inmeeteimayekext}', "");
-    Expect(1, 43775, '\p{ 	in_Meetei_MAYEK_ext}', "");
-    Expect(0, 43775, '\p{^ 	in_Meetei_MAYEK_ext}', "");
-    Expect(0, 43775, '\P{ 	in_Meetei_MAYEK_ext}', "");
-    Expect(1, 43775, '\P{^ 	in_Meetei_MAYEK_ext}', "");
-    Expect(0, 43776, '\p{ 	in_Meetei_MAYEK_ext}', "");
-    Expect(1, 43776, '\p{^ 	in_Meetei_MAYEK_ext}', "");
-    Expect(1, 43776, '\P{ 	in_Meetei_MAYEK_ext}', "");
-    Expect(0, 43776, '\P{^ 	in_Meetei_MAYEK_ext}', "");
-    Error('\p{:=Mende_KIKAKUI}');
-    Error('\P{:=Mende_KIKAKUI}');
+    Expect(1, 43775, '\p{_	in_Meetei_MAYEK_EXT}', "");
+    Expect(0, 43775, '\p{^_	in_Meetei_MAYEK_EXT}', "");
+    Expect(0, 43775, '\P{_	in_Meetei_MAYEK_EXT}', "");
+    Expect(1, 43775, '\P{^_	in_Meetei_MAYEK_EXT}', "");
+    Expect(0, 43776, '\p{_	in_Meetei_MAYEK_EXT}', "");
+    Expect(1, 43776, '\p{^_	in_Meetei_MAYEK_EXT}', "");
+    Expect(1, 43776, '\P{_	in_Meetei_MAYEK_EXT}', "");
+    Expect(0, 43776, '\P{^_	in_Meetei_MAYEK_EXT}', "");
+    Error('\p{/a/	_Mende_KIKAKUI}');
+    Error('\P{/a/	_Mende_KIKAKUI}');
     Expect(1, 125142, '\p{mendekikakui}', "");
     Expect(0, 125142, '\p{^mendekikakui}', "");
     Expect(0, 125142, '\P{mendekikakui}', "");
@@ -111729,16 +112865,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125143, '\p{^mendekikakui}', "");
     Expect(1, 125143, '\P{mendekikakui}', "");
     Expect(0, 125143, '\P{^mendekikakui}', "");
-    Expect(1, 125142, '\p{- Mende_Kikakui}', "");
-    Expect(0, 125142, '\p{^- Mende_Kikakui}', "");
-    Expect(0, 125142, '\P{- Mende_Kikakui}', "");
-    Expect(1, 125142, '\P{^- Mende_Kikakui}', "");
-    Expect(0, 125143, '\p{- Mende_Kikakui}', "");
-    Expect(1, 125143, '\p{^- Mende_Kikakui}', "");
-    Expect(1, 125143, '\P{- Mende_Kikakui}', "");
-    Expect(0, 125143, '\P{^- Mende_Kikakui}', "");
-    Error('\p{/a/ -is_Mende_Kikakui}');
-    Error('\P{/a/ -is_Mende_Kikakui}');
+    Expect(1, 125142, '\p{ Mende_KIKAKUI}', "");
+    Expect(0, 125142, '\p{^ Mende_KIKAKUI}', "");
+    Expect(0, 125142, '\P{ Mende_KIKAKUI}', "");
+    Expect(1, 125142, '\P{^ Mende_KIKAKUI}', "");
+    Expect(0, 125143, '\p{ Mende_KIKAKUI}', "");
+    Expect(1, 125143, '\p{^ Mende_KIKAKUI}', "");
+    Expect(1, 125143, '\P{ Mende_KIKAKUI}', "");
+    Expect(0, 125143, '\P{^ Mende_KIKAKUI}', "");
+    Error('\p{-_Is_MENDE_Kikakui/a/}');
+    Error('\P{-_Is_MENDE_Kikakui/a/}');
     Expect(1, 125142, '\p{ismendekikakui}', "");
     Expect(0, 125142, '\p{^ismendekikakui}', "");
     Expect(0, 125142, '\P{ismendekikakui}', "");
@@ -111747,16 +112883,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125143, '\p{^ismendekikakui}', "");
     Expect(1, 125143, '\P{ismendekikakui}', "");
     Expect(0, 125143, '\P{^ismendekikakui}', "");
-    Expect(1, 125142, '\p{	Is_MENDE_kikakui}', "");
-    Expect(0, 125142, '\p{^	Is_MENDE_kikakui}', "");
-    Expect(0, 125142, '\P{	Is_MENDE_kikakui}', "");
-    Expect(1, 125142, '\P{^	Is_MENDE_kikakui}', "");
-    Expect(0, 125143, '\p{	Is_MENDE_kikakui}', "");
-    Expect(1, 125143, '\p{^	Is_MENDE_kikakui}', "");
-    Expect(1, 125143, '\P{	Is_MENDE_kikakui}', "");
-    Expect(0, 125143, '\P{^	Is_MENDE_kikakui}', "");
-    Error('\p{/a/	_MEND}');
-    Error('\P{/a/	_MEND}');
+    Expect(1, 125142, '\p{ Is_MENDE_Kikakui}', "");
+    Expect(0, 125142, '\p{^ Is_MENDE_Kikakui}', "");
+    Expect(0, 125142, '\P{ Is_MENDE_Kikakui}', "");
+    Expect(1, 125142, '\P{^ Is_MENDE_Kikakui}', "");
+    Expect(0, 125143, '\p{ Is_MENDE_Kikakui}', "");
+    Expect(1, 125143, '\p{^ Is_MENDE_Kikakui}', "");
+    Expect(1, 125143, '\P{ Is_MENDE_Kikakui}', "");
+    Expect(0, 125143, '\P{^ Is_MENDE_Kikakui}', "");
+    Error('\p{	 Mend/a/}');
+    Error('\P{	 Mend/a/}');
     Expect(1, 125142, '\p{mend}', "");
     Expect(0, 125142, '\p{^mend}', "");
     Expect(0, 125142, '\P{mend}', "");
@@ -111765,16 +112901,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125143, '\p{^mend}', "");
     Expect(1, 125143, '\P{mend}', "");
     Expect(0, 125143, '\P{^mend}', "");
-    Expect(1, 125142, '\p{ -Mend}', "");
-    Expect(0, 125142, '\p{^ -Mend}', "");
-    Expect(0, 125142, '\P{ -Mend}', "");
-    Expect(1, 125142, '\P{^ -Mend}', "");
-    Expect(0, 125143, '\p{ -Mend}', "");
-    Expect(1, 125143, '\p{^ -Mend}', "");
-    Expect(1, 125143, '\P{ -Mend}', "");
-    Expect(0, 125143, '\P{^ -Mend}', "");
-    Error('\p{:=_	Is_Mend}');
-    Error('\P{:=_	Is_Mend}');
+    Expect(1, 125142, '\p{ mend}', "");
+    Expect(0, 125142, '\p{^ mend}', "");
+    Expect(0, 125142, '\P{ mend}', "");
+    Expect(1, 125142, '\P{^ mend}', "");
+    Expect(0, 125143, '\p{ mend}', "");
+    Expect(1, 125143, '\p{^ mend}', "");
+    Expect(1, 125143, '\P{ mend}', "");
+    Expect(0, 125143, '\P{^ mend}', "");
+    Error('\p{ :=is_Mend}');
+    Error('\P{ :=is_Mend}');
     Expect(1, 125142, '\p{ismend}', "");
     Expect(0, 125142, '\p{^ismend}', "");
     Expect(0, 125142, '\P{ismend}', "");
@@ -111783,16 +112919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125143, '\p{^ismend}', "");
     Expect(1, 125143, '\P{ismend}', "");
     Expect(0, 125143, '\P{^ismend}', "");
-    Expect(1, 125142, '\p{	_Is_mend}', "");
-    Expect(0, 125142, '\p{^	_Is_mend}', "");
-    Expect(0, 125142, '\P{	_Is_mend}', "");
-    Expect(1, 125142, '\P{^	_Is_mend}', "");
-    Expect(0, 125143, '\p{	_Is_mend}', "");
-    Expect(1, 125143, '\p{^	_Is_mend}', "");
-    Expect(1, 125143, '\P{	_Is_mend}', "");
-    Expect(0, 125143, '\P{^	_Is_mend}', "");
-    Error('\p{-_MEROITIC_Cursive/a/}');
-    Error('\P{-_MEROITIC_Cursive/a/}');
+    Expect(1, 125142, '\p{_IS_Mend}', "");
+    Expect(0, 125142, '\p{^_IS_Mend}', "");
+    Expect(0, 125142, '\P{_IS_Mend}', "");
+    Expect(1, 125142, '\P{^_IS_Mend}', "");
+    Expect(0, 125143, '\p{_IS_Mend}', "");
+    Expect(1, 125143, '\p{^_IS_Mend}', "");
+    Expect(1, 125143, '\P{_IS_Mend}', "");
+    Expect(0, 125143, '\P{^_IS_Mend}', "");
+    Error('\p{	/a/MEROITIC_cursive}');
+    Error('\P{	/a/MEROITIC_cursive}');
     Expect(1, 68095, '\p{meroiticcursive}', "");
     Expect(0, 68095, '\p{^meroiticcursive}', "");
     Expect(0, 68095, '\P{meroiticcursive}', "");
@@ -111801,16 +112937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68096, '\p{^meroiticcursive}', "");
     Expect(1, 68096, '\P{meroiticcursive}', "");
     Expect(0, 68096, '\P{^meroiticcursive}', "");
-    Expect(1, 68095, '\p{ meroitic_cursive}', "");
-    Expect(0, 68095, '\p{^ meroitic_cursive}', "");
-    Expect(0, 68095, '\P{ meroitic_cursive}', "");
-    Expect(1, 68095, '\P{^ meroitic_cursive}', "");
-    Expect(0, 68096, '\p{ meroitic_cursive}', "");
-    Expect(1, 68096, '\p{^ meroitic_cursive}', "");
-    Expect(1, 68096, '\P{ meroitic_cursive}', "");
-    Expect(0, 68096, '\P{^ meroitic_cursive}', "");
-    Error('\p{_:=Is_meroitic_CURSIVE}');
-    Error('\P{_:=Is_meroitic_CURSIVE}');
+    Expect(1, 68095, '\p{meroitic_Cursive}', "");
+    Expect(0, 68095, '\p{^meroitic_Cursive}', "");
+    Expect(0, 68095, '\P{meroitic_Cursive}', "");
+    Expect(1, 68095, '\P{^meroitic_Cursive}', "");
+    Expect(0, 68096, '\p{meroitic_Cursive}', "");
+    Expect(1, 68096, '\p{^meroitic_Cursive}', "");
+    Expect(1, 68096, '\P{meroitic_Cursive}', "");
+    Expect(0, 68096, '\P{^meroitic_Cursive}', "");
+    Error('\p{/a/	 Is_meroitic_Cursive}');
+    Error('\P{/a/	 Is_meroitic_Cursive}');
     Expect(1, 68095, '\p{ismeroiticcursive}', "");
     Expect(0, 68095, '\p{^ismeroiticcursive}', "");
     Expect(0, 68095, '\P{ismeroiticcursive}', "");
@@ -111819,16 +112955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68096, '\p{^ismeroiticcursive}', "");
     Expect(1, 68096, '\P{ismeroiticcursive}', "");
     Expect(0, 68096, '\P{^ismeroiticcursive}', "");
-    Expect(1, 68095, '\p{-_Is_Meroitic_Cursive}', "");
-    Expect(0, 68095, '\p{^-_Is_Meroitic_Cursive}', "");
-    Expect(0, 68095, '\P{-_Is_Meroitic_Cursive}', "");
-    Expect(1, 68095, '\P{^-_Is_Meroitic_Cursive}', "");
-    Expect(0, 68096, '\p{-_Is_Meroitic_Cursive}', "");
-    Expect(1, 68096, '\p{^-_Is_Meroitic_Cursive}', "");
-    Expect(1, 68096, '\P{-_Is_Meroitic_Cursive}', "");
-    Expect(0, 68096, '\P{^-_Is_Meroitic_Cursive}', "");
-    Error('\p{ _merc/a/}');
-    Error('\P{ _merc/a/}');
+    Expect(1, 68095, '\p{ is_Meroitic_Cursive}', "");
+    Expect(0, 68095, '\p{^ is_Meroitic_Cursive}', "");
+    Expect(0, 68095, '\P{ is_Meroitic_Cursive}', "");
+    Expect(1, 68095, '\P{^ is_Meroitic_Cursive}', "");
+    Expect(0, 68096, '\p{ is_Meroitic_Cursive}', "");
+    Expect(1, 68096, '\p{^ is_Meroitic_Cursive}', "");
+    Expect(1, 68096, '\P{ is_Meroitic_Cursive}', "");
+    Expect(0, 68096, '\P{^ is_Meroitic_Cursive}', "");
+    Error('\p{/a/		MERC}');
+    Error('\P{/a/		MERC}');
     Expect(1, 68095, '\p{merc}', "");
     Expect(0, 68095, '\p{^merc}', "");
     Expect(0, 68095, '\P{merc}', "");
@@ -111837,16 +112973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68096, '\p{^merc}', "");
     Expect(1, 68096, '\P{merc}', "");
     Expect(0, 68096, '\P{^merc}', "");
-    Expect(1, 68095, '\p{-Merc}', "");
-    Expect(0, 68095, '\p{^-Merc}', "");
-    Expect(0, 68095, '\P{-Merc}', "");
-    Expect(1, 68095, '\P{^-Merc}', "");
-    Expect(0, 68096, '\p{-Merc}', "");
-    Expect(1, 68096, '\p{^-Merc}', "");
-    Expect(1, 68096, '\P{-Merc}', "");
-    Expect(0, 68096, '\P{^-Merc}', "");
-    Error('\p{- is_Merc:=}');
-    Error('\P{- is_Merc:=}');
+    Expect(1, 68095, '\p{ Merc}', "");
+    Expect(0, 68095, '\p{^ Merc}', "");
+    Expect(0, 68095, '\P{ Merc}', "");
+    Expect(1, 68095, '\P{^ Merc}', "");
+    Expect(0, 68096, '\p{ Merc}', "");
+    Expect(1, 68096, '\p{^ Merc}', "");
+    Expect(1, 68096, '\P{ Merc}', "");
+    Expect(0, 68096, '\P{^ Merc}', "");
+    Error('\p{_:=Is_MERC}');
+    Error('\P{_:=Is_MERC}');
     Expect(1, 68095, '\p{ismerc}', "");
     Expect(0, 68095, '\p{^ismerc}', "");
     Expect(0, 68095, '\P{ismerc}', "");
@@ -111855,16 +112991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68096, '\p{^ismerc}', "");
     Expect(1, 68096, '\P{ismerc}', "");
     Expect(0, 68096, '\P{^ismerc}', "");
-    Expect(1, 68095, '\p{ 	IS_merc}', "");
-    Expect(0, 68095, '\p{^ 	IS_merc}', "");
-    Expect(0, 68095, '\P{ 	IS_merc}', "");
-    Expect(1, 68095, '\P{^ 	IS_merc}', "");
-    Expect(0, 68096, '\p{ 	IS_merc}', "");
-    Expect(1, 68096, '\p{^ 	IS_merc}', "");
-    Expect(1, 68096, '\P{ 	IS_merc}', "");
-    Expect(0, 68096, '\P{^ 	IS_merc}', "");
-    Error('\p{_:=meroitic_Hieroglyphs}');
-    Error('\P{_:=meroitic_Hieroglyphs}');
+    Expect(1, 68095, '\p{ _IS_merc}', "");
+    Expect(0, 68095, '\p{^ _IS_merc}', "");
+    Expect(0, 68095, '\P{ _IS_merc}', "");
+    Expect(1, 68095, '\P{^ _IS_merc}', "");
+    Expect(0, 68096, '\p{ _IS_merc}', "");
+    Expect(1, 68096, '\p{^ _IS_merc}', "");
+    Expect(1, 68096, '\P{ _IS_merc}', "");
+    Expect(0, 68096, '\P{^ _IS_merc}', "");
+    Error('\p{-/a/Meroitic_hieroglyphs}');
+    Error('\P{-/a/Meroitic_hieroglyphs}');
     Expect(1, 67999, '\p{meroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^meroitichieroglyphs}', "");
     Expect(0, 67999, '\P{meroitichieroglyphs}', "");
@@ -111873,16 +113009,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68000, '\p{^meroitichieroglyphs}', "");
     Expect(1, 68000, '\P{meroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^meroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{- Meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^- Meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{- Meroitic_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^- Meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{- Meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^- Meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{- Meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^- Meroitic_Hieroglyphs}', "");
-    Error('\p{-_Is_Meroitic_hieroglyphs/a/}');
-    Error('\P{-_Is_Meroitic_hieroglyphs/a/}');
+    Expect(1, 67999, '\p{- meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\p{^- meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\P{- meroitic_hieroglyphs}', "");
+    Expect(1, 67999, '\P{^- meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\p{- meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\p{^- meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\P{- meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\P{^- meroitic_hieroglyphs}', "");
+    Error('\p{_:=Is_Meroitic_Hieroglyphs}');
+    Error('\P{_:=Is_Meroitic_Hieroglyphs}');
     Expect(1, 67999, '\p{ismeroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^ismeroitichieroglyphs}', "");
     Expect(0, 67999, '\P{ismeroitichieroglyphs}', "");
@@ -111891,16 +113027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68000, '\p{^ismeroitichieroglyphs}', "");
     Expect(1, 68000, '\P{ismeroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^ismeroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{		Is_Meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^		Is_Meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{		Is_Meroitic_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^		Is_Meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{		Is_Meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^		Is_Meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{		Is_Meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^		Is_Meroitic_Hieroglyphs}', "");
-    Error('\p{--Mero:=}');
-    Error('\P{--Mero:=}');
+    Expect(1, 67999, '\p{__Is_Meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\p{^__Is_Meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\P{__Is_Meroitic_hieroglyphs}', "");
+    Expect(1, 67999, '\P{^__Is_Meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\p{__Is_Meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\p{^__Is_Meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\P{__Is_Meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\P{^__Is_Meroitic_hieroglyphs}', "");
+    Error('\p{:=	-mero}');
+    Error('\P{:=	-mero}');
     Expect(1, 67999, '\p{mero}', "");
     Expect(0, 67999, '\p{^mero}', "");
     Expect(0, 67999, '\P{mero}', "");
@@ -111909,16 +113045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68000, '\p{^mero}', "");
     Expect(1, 68000, '\P{mero}', "");
     Expect(0, 68000, '\P{^mero}', "");
-    Expect(1, 67999, '\p{__Mero}', "");
-    Expect(0, 67999, '\p{^__Mero}', "");
-    Expect(0, 67999, '\P{__Mero}', "");
-    Expect(1, 67999, '\P{^__Mero}', "");
-    Expect(0, 68000, '\p{__Mero}', "");
-    Expect(1, 68000, '\p{^__Mero}', "");
-    Expect(1, 68000, '\P{__Mero}', "");
-    Expect(0, 68000, '\P{^__Mero}', "");
-    Error('\p{ -is_Mero:=}');
-    Error('\P{ -is_Mero:=}');
+    Expect(1, 67999, '\p{__mero}', "");
+    Expect(0, 67999, '\p{^__mero}', "");
+    Expect(0, 67999, '\P{__mero}', "");
+    Expect(1, 67999, '\P{^__mero}', "");
+    Expect(0, 68000, '\p{__mero}', "");
+    Expect(1, 68000, '\p{^__mero}', "");
+    Expect(1, 68000, '\P{__mero}', "");
+    Expect(0, 68000, '\P{^__mero}', "");
+    Error('\p{	IS_MERO:=}');
+    Error('\P{	IS_MERO:=}');
     Expect(1, 67999, '\p{ismero}', "");
     Expect(0, 67999, '\p{^ismero}', "");
     Expect(0, 67999, '\P{ismero}', "");
@@ -111927,16 +113063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68000, '\p{^ismero}', "");
     Expect(1, 68000, '\P{ismero}', "");
     Expect(0, 68000, '\P{^ismero}', "");
-    Expect(1, 67999, '\p{- Is_mero}', "");
-    Expect(0, 67999, '\p{^- Is_mero}', "");
-    Expect(0, 67999, '\P{- Is_mero}', "");
-    Expect(1, 67999, '\P{^- Is_mero}', "");
-    Expect(0, 68000, '\p{- Is_mero}', "");
-    Expect(1, 68000, '\p{^- Is_mero}', "");
-    Expect(1, 68000, '\P{- Is_mero}', "");
-    Expect(0, 68000, '\P{^- Is_mero}', "");
-    Error('\p{/a/		MIAO}');
-    Error('\P{/a/		MIAO}');
+    Expect(1, 67999, '\p{-is_mero}', "");
+    Expect(0, 67999, '\p{^-is_mero}', "");
+    Expect(0, 67999, '\P{-is_mero}', "");
+    Expect(1, 67999, '\P{^-is_mero}', "");
+    Expect(0, 68000, '\p{-is_mero}', "");
+    Expect(1, 68000, '\p{^-is_mero}', "");
+    Expect(1, 68000, '\P{-is_mero}', "");
+    Expect(0, 68000, '\P{^-is_mero}', "");
+    Error('\p{ /a/Miao}');
+    Error('\P{ /a/Miao}');
     Expect(1, 94111, '\p{miao}', "");
     Expect(0, 94111, '\p{^miao}', "");
     Expect(0, 94111, '\P{miao}', "");
@@ -111945,16 +113081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94112, '\p{^miao}', "");
     Expect(1, 94112, '\P{miao}', "");
     Expect(0, 94112, '\P{^miao}', "");
-    Expect(1, 94111, '\p{-	Miao}', "");
-    Expect(0, 94111, '\p{^-	Miao}', "");
-    Expect(0, 94111, '\P{-	Miao}', "");
-    Expect(1, 94111, '\P{^-	Miao}', "");
-    Expect(0, 94112, '\p{-	Miao}', "");
-    Expect(1, 94112, '\p{^-	Miao}', "");
-    Expect(1, 94112, '\P{-	Miao}', "");
-    Expect(0, 94112, '\P{^-	Miao}', "");
-    Error('\p{/a/is_Miao}');
-    Error('\P{/a/is_Miao}');
+    Expect(1, 94111, '\p{ -Miao}', "");
+    Expect(0, 94111, '\p{^ -Miao}', "");
+    Expect(0, 94111, '\P{ -Miao}', "");
+    Expect(1, 94111, '\P{^ -Miao}', "");
+    Expect(0, 94112, '\p{ -Miao}', "");
+    Expect(1, 94112, '\p{^ -Miao}', "");
+    Expect(1, 94112, '\P{ -Miao}', "");
+    Expect(0, 94112, '\P{^ -Miao}', "");
+    Error('\p{ :=Is_miao}');
+    Error('\P{ :=Is_miao}');
     Expect(1, 94111, '\p{ismiao}', "");
     Expect(0, 94111, '\p{^ismiao}', "");
     Expect(0, 94111, '\P{ismiao}', "");
@@ -111963,16 +113099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94112, '\p{^ismiao}', "");
     Expect(1, 94112, '\P{ismiao}', "");
     Expect(0, 94112, '\P{^ismiao}', "");
-    Expect(1, 94111, '\p{		IS_miao}', "");
-    Expect(0, 94111, '\p{^		IS_miao}', "");
-    Expect(0, 94111, '\P{		IS_miao}', "");
-    Expect(1, 94111, '\P{^		IS_miao}', "");
-    Expect(0, 94112, '\p{		IS_miao}', "");
-    Expect(1, 94112, '\p{^		IS_miao}', "");
-    Expect(1, 94112, '\P{		IS_miao}', "");
-    Expect(0, 94112, '\P{^		IS_miao}', "");
-    Error('\p{:=Plrd}');
-    Error('\P{:=Plrd}');
+    Expect(1, 94111, '\p{_-Is_MIAO}', "");
+    Expect(0, 94111, '\p{^_-Is_MIAO}', "");
+    Expect(0, 94111, '\P{_-Is_MIAO}', "");
+    Expect(1, 94111, '\P{^_-Is_MIAO}', "");
+    Expect(0, 94112, '\p{_-Is_MIAO}', "");
+    Expect(1, 94112, '\p{^_-Is_MIAO}', "");
+    Expect(1, 94112, '\P{_-Is_MIAO}', "");
+    Expect(0, 94112, '\P{^_-Is_MIAO}', "");
+    Error('\p{	/a/Plrd}');
+    Error('\P{	/a/Plrd}');
     Expect(1, 94111, '\p{plrd}', "");
     Expect(0, 94111, '\p{^plrd}', "");
     Expect(0, 94111, '\P{plrd}', "");
@@ -111981,16 +113117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94112, '\p{^plrd}', "");
     Expect(1, 94112, '\P{plrd}', "");
     Expect(0, 94112, '\P{^plrd}', "");
-    Expect(1, 94111, '\p{ 	Plrd}', "");
-    Expect(0, 94111, '\p{^ 	Plrd}', "");
-    Expect(0, 94111, '\P{ 	Plrd}', "");
-    Expect(1, 94111, '\P{^ 	Plrd}', "");
-    Expect(0, 94112, '\p{ 	Plrd}', "");
-    Expect(1, 94112, '\p{^ 	Plrd}', "");
-    Expect(1, 94112, '\P{ 	Plrd}', "");
-    Expect(0, 94112, '\P{^ 	Plrd}', "");
-    Error('\p{-/a/Is_Plrd}');
-    Error('\P{-/a/Is_Plrd}');
+    Expect(1, 94111, '\p{ Plrd}', "");
+    Expect(0, 94111, '\p{^ Plrd}', "");
+    Expect(0, 94111, '\P{ Plrd}', "");
+    Expect(1, 94111, '\P{^ Plrd}', "");
+    Expect(0, 94112, '\p{ Plrd}', "");
+    Expect(1, 94112, '\p{^ Plrd}', "");
+    Expect(1, 94112, '\P{ Plrd}', "");
+    Expect(0, 94112, '\P{^ Plrd}', "");
+    Error('\p{/a/_-is_Plrd}');
+    Error('\P{/a/_-is_Plrd}');
     Expect(1, 94111, '\p{isplrd}', "");
     Expect(0, 94111, '\p{^isplrd}', "");
     Expect(0, 94111, '\P{isplrd}', "");
@@ -111999,16 +113135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 94112, '\p{^isplrd}', "");
     Expect(1, 94112, '\P{isplrd}', "");
     Expect(0, 94112, '\P{^isplrd}', "");
-    Expect(1, 94111, '\p{_ is_PLRD}', "");
-    Expect(0, 94111, '\p{^_ is_PLRD}', "");
-    Expect(0, 94111, '\P{_ is_PLRD}', "");
-    Expect(1, 94111, '\P{^_ is_PLRD}', "");
-    Expect(0, 94112, '\p{_ is_PLRD}', "");
-    Expect(1, 94112, '\p{^_ is_PLRD}', "");
-    Expect(1, 94112, '\P{_ is_PLRD}', "");
-    Expect(0, 94112, '\P{^_ is_PLRD}', "");
-    Error('\p{ Miscellaneous_MATHEMATICAL_Symbols_A:=}');
-    Error('\P{ Miscellaneous_MATHEMATICAL_Symbols_A:=}');
+    Expect(1, 94111, '\p{__is_Plrd}', "");
+    Expect(0, 94111, '\p{^__is_Plrd}', "");
+    Expect(0, 94111, '\P{__is_Plrd}', "");
+    Expect(1, 94111, '\P{^__is_Plrd}', "");
+    Expect(0, 94112, '\p{__is_Plrd}', "");
+    Expect(1, 94112, '\p{^__is_Plrd}', "");
+    Expect(1, 94112, '\P{__is_Plrd}', "");
+    Expect(0, 94112, '\P{^__is_Plrd}', "");
+    Error('\p{:=Miscellaneous_MATHEMATICAL_Symbols_A}');
+    Error('\P{:=Miscellaneous_MATHEMATICAL_Symbols_A}');
     Expect(1, 10223, '\p{miscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10223, '\p{^miscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10223, '\P{miscellaneousmathematicalsymbolsa}', "");
@@ -112017,16 +113153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10224, '\p{^miscellaneousmathematicalsymbolsa}', "");
     Expect(1, 10224, '\P{miscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10224, '\P{^miscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10223, '\p{-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(0, 10223, '\p{^-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(0, 10223, '\P{-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(1, 10223, '\P{^-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(0, 10224, '\p{-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(1, 10224, '\p{^-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(1, 10224, '\P{-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Expect(0, 10224, '\P{^-	MISCELLANEOUS_Mathematical_symbols_A}', "");
-    Error('\p{/a/_Is_Miscellaneous_MATHEMATICAL_symbols_A}');
-    Error('\P{/a/_Is_Miscellaneous_MATHEMATICAL_symbols_A}');
+    Expect(1, 10223, '\p{_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(0, 10223, '\p{^_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(0, 10223, '\P{_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(1, 10223, '\P{^_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(0, 10224, '\p{_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(1, 10224, '\p{^_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(1, 10224, '\P{_-Miscellaneous_Mathematical_symbols_a}', "");
+    Expect(0, 10224, '\P{^_-Miscellaneous_Mathematical_symbols_a}', "");
+    Error('\p{:=-IS_MISCELLANEOUS_Mathematical_symbols_a}');
+    Error('\P{:=-IS_MISCELLANEOUS_Mathematical_symbols_a}');
     Expect(1, 10223, '\p{ismiscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10223, '\p{^ismiscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10223, '\P{ismiscellaneousmathematicalsymbolsa}', "");
@@ -112035,16 +113171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10224, '\p{^ismiscellaneousmathematicalsymbolsa}', "");
     Expect(1, 10224, '\P{ismiscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10224, '\P{^ismiscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10223, '\p{	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10223, '\p{^	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10223, '\P{	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(1, 10223, '\P{^	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10224, '\p{	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(1, 10224, '\p{^	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(1, 10224, '\P{	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Expect(0, 10224, '\P{^	_Is_Miscellaneous_Mathematical_SYMBOLS_A}', "");
-    Error('\p{:= in_MISCELLANEOUS_MATHEMATICAL_Symbols_A}');
-    Error('\P{:= in_MISCELLANEOUS_MATHEMATICAL_Symbols_A}');
+    Expect(1, 10223, '\p{__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(0, 10223, '\p{^__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(0, 10223, '\P{__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(1, 10223, '\P{^__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(0, 10224, '\p{__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(1, 10224, '\p{^__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(1, 10224, '\P{__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Expect(0, 10224, '\P{^__is_Miscellaneous_Mathematical_Symbols_A}', "");
+    Error('\p{	/a/In_Miscellaneous_MATHEMATICAL_Symbols_A}');
+    Error('\P{	/a/In_Miscellaneous_MATHEMATICAL_Symbols_A}');
     Expect(1, 10223, '\p{inmiscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10223, '\p{^inmiscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10223, '\P{inmiscellaneousmathematicalsymbolsa}', "");
@@ -112053,16 +113189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10224, '\p{^inmiscellaneousmathematicalsymbolsa}', "");
     Expect(1, 10224, '\P{inmiscellaneousmathematicalsymbolsa}', "");
     Expect(0, 10224, '\P{^inmiscellaneousmathematicalsymbolsa}', "");
-    Expect(1, 10223, '\p{	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(0, 10223, '\p{^	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(0, 10223, '\P{	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(1, 10223, '\P{^	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(0, 10224, '\p{	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(1, 10224, '\p{^	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(1, 10224, '\P{	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Expect(0, 10224, '\P{^	 In_Miscellaneous_MATHEMATICAL_Symbols_A}', "");
-    Error('\p{:=__Misc_math_Symbols_a}');
-    Error('\P{:=__Misc_math_Symbols_a}');
+    Expect(1, 10223, '\p{--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(0, 10223, '\p{^--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(0, 10223, '\P{--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(1, 10223, '\P{^--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(0, 10224, '\p{--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(1, 10224, '\p{^--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(1, 10224, '\P{--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Expect(0, 10224, '\P{^--In_Miscellaneous_Mathematical_Symbols_a}', "");
+    Error('\p{  Misc_math_Symbols_A/a/}');
+    Error('\P{  Misc_math_Symbols_A/a/}');
     Expect(1, 10223, '\p{miscmathsymbolsa}', "");
     Expect(0, 10223, '\p{^miscmathsymbolsa}', "");
     Expect(0, 10223, '\P{miscmathsymbolsa}', "");
@@ -112071,16 +113207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10224, '\p{^miscmathsymbolsa}', "");
     Expect(1, 10224, '\P{miscmathsymbolsa}', "");
     Expect(0, 10224, '\P{^miscmathsymbolsa}', "");
-    Expect(1, 10223, '\p{-_Misc_Math_symbols_a}', "");
-    Expect(0, 10223, '\p{^-_Misc_Math_symbols_a}', "");
-    Expect(0, 10223, '\P{-_Misc_Math_symbols_a}', "");
-    Expect(1, 10223, '\P{^-_Misc_Math_symbols_a}', "");
-    Expect(0, 10224, '\p{-_Misc_Math_symbols_a}', "");
-    Expect(1, 10224, '\p{^-_Misc_Math_symbols_a}', "");
-    Expect(1, 10224, '\P{-_Misc_Math_symbols_a}', "");
-    Expect(0, 10224, '\P{^-_Misc_Math_symbols_a}', "");
-    Error('\p{/a/Is_Misc_MATH_Symbols_A}');
-    Error('\P{/a/Is_Misc_MATH_Symbols_A}');
+    Expect(1, 10223, '\p{MISC_MATH_Symbols_A}', "");
+    Expect(0, 10223, '\p{^MISC_MATH_Symbols_A}', "");
+    Expect(0, 10223, '\P{MISC_MATH_Symbols_A}', "");
+    Expect(1, 10223, '\P{^MISC_MATH_Symbols_A}', "");
+    Expect(0, 10224, '\p{MISC_MATH_Symbols_A}', "");
+    Expect(1, 10224, '\p{^MISC_MATH_Symbols_A}', "");
+    Expect(1, 10224, '\P{MISC_MATH_Symbols_A}', "");
+    Expect(0, 10224, '\P{^MISC_MATH_Symbols_A}', "");
+    Error('\p{/a/-_is_misc_Math_Symbols_A}');
+    Error('\P{/a/-_is_misc_Math_Symbols_A}');
     Expect(1, 10223, '\p{ismiscmathsymbolsa}', "");
     Expect(0, 10223, '\p{^ismiscmathsymbolsa}', "");
     Expect(0, 10223, '\P{ismiscmathsymbolsa}', "");
@@ -112089,16 +113225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10224, '\p{^ismiscmathsymbolsa}', "");
     Expect(1, 10224, '\P{ismiscmathsymbolsa}', "");
     Expect(0, 10224, '\P{^ismiscmathsymbolsa}', "");
-    Expect(1, 10223, '\p{is_Misc_math_Symbols_A}', "");
-    Expect(0, 10223, '\p{^is_Misc_math_Symbols_A}', "");
-    Expect(0, 10223, '\P{is_Misc_math_Symbols_A}', "");
-    Expect(1, 10223, '\P{^is_Misc_math_Symbols_A}', "");
-    Expect(0, 10224, '\p{is_Misc_math_Symbols_A}', "");
-    Expect(1, 10224, '\p{^is_Misc_math_Symbols_A}', "");
-    Expect(1, 10224, '\P{is_Misc_math_Symbols_A}', "");
-    Expect(0, 10224, '\P{^is_Misc_math_Symbols_A}', "");
-    Error('\p{:=		In_misc_Math_symbols_A}');
-    Error('\P{:=		In_misc_Math_symbols_A}');
+    Expect(1, 10223, '\p{ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(0, 10223, '\p{^ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(0, 10223, '\P{ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(1, 10223, '\P{^ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(0, 10224, '\p{ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(1, 10224, '\p{^ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(1, 10224, '\P{ IS_MISC_MATH_SYMBOLS_A}', "");
+    Expect(0, 10224, '\P{^ IS_MISC_MATH_SYMBOLS_A}', "");
+    Error('\p{- In_misc_math_symbols_A:=}');
+    Error('\P{- In_misc_math_symbols_A:=}');
     Expect(1, 10223, '\p{inmiscmathsymbolsa}', "");
     Expect(0, 10223, '\p{^inmiscmathsymbolsa}', "");
     Expect(0, 10223, '\P{inmiscmathsymbolsa}', "");
@@ -112107,16 +113243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10224, '\p{^inmiscmathsymbolsa}', "");
     Expect(1, 10224, '\P{inmiscmathsymbolsa}', "");
     Expect(0, 10224, '\P{^inmiscmathsymbolsa}', "");
-    Expect(1, 10223, '\p{_In_MISC_MATH_Symbols_A}', "");
-    Expect(0, 10223, '\p{^_In_MISC_MATH_Symbols_A}', "");
-    Expect(0, 10223, '\P{_In_MISC_MATH_Symbols_A}', "");
-    Expect(1, 10223, '\P{^_In_MISC_MATH_Symbols_A}', "");
-    Expect(0, 10224, '\p{_In_MISC_MATH_Symbols_A}', "");
-    Expect(1, 10224, '\p{^_In_MISC_MATH_Symbols_A}', "");
-    Expect(1, 10224, '\P{_In_MISC_MATH_Symbols_A}', "");
-    Expect(0, 10224, '\P{^_In_MISC_MATH_Symbols_A}', "");
-    Error('\p{/a/	miscellaneous_Mathematical_symbols_B}');
-    Error('\P{/a/	miscellaneous_Mathematical_symbols_B}');
+    Expect(1, 10223, '\p{ -IN_Misc_Math_symbols_A}', "");
+    Expect(0, 10223, '\p{^ -IN_Misc_Math_symbols_A}', "");
+    Expect(0, 10223, '\P{ -IN_Misc_Math_symbols_A}', "");
+    Expect(1, 10223, '\P{^ -IN_Misc_Math_symbols_A}', "");
+    Expect(0, 10224, '\p{ -IN_Misc_Math_symbols_A}', "");
+    Expect(1, 10224, '\p{^ -IN_Misc_Math_symbols_A}', "");
+    Expect(1, 10224, '\P{ -IN_Misc_Math_symbols_A}', "");
+    Expect(0, 10224, '\P{^ -IN_Misc_Math_symbols_A}', "");
+    Error('\p{/a/ -miscellaneous_MATHEMATICAL_Symbols_b}');
+    Error('\P{/a/ -miscellaneous_MATHEMATICAL_Symbols_b}');
     Expect(1, 10751, '\p{miscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\p{^miscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\P{miscellaneousmathematicalsymbolsb}', "");
@@ -112125,16 +113261,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10752, '\p{^miscellaneousmathematicalsymbolsb}', "");
     Expect(1, 10752, '\P{miscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10752, '\P{^miscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10751, '\p{_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\p{^_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\P{_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(1, 10751, '\P{^_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\p{_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\p{^_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\P{_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\P{^_-Miscellaneous_Mathematical_Symbols_B}', "");
-    Error('\p{/a/- Is_Miscellaneous_Mathematical_Symbols_B}');
-    Error('\P{/a/- Is_Miscellaneous_Mathematical_Symbols_B}');
+    Expect(1, 10751, '\p{	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(0, 10751, '\p{^	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(0, 10751, '\P{	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(1, 10751, '\P{^	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(0, 10752, '\p{	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(1, 10752, '\p{^	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(1, 10752, '\P{	-Miscellaneous_mathematical_symbols_B}', "");
+    Expect(0, 10752, '\P{^	-Miscellaneous_mathematical_symbols_B}', "");
+    Error('\p{/a/-Is_miscellaneous_MATHEMATICAL_Symbols_B}');
+    Error('\P{/a/-Is_miscellaneous_MATHEMATICAL_Symbols_B}');
     Expect(1, 10751, '\p{ismiscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\p{^ismiscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\P{ismiscellaneousmathematicalsymbolsb}', "");
@@ -112143,16 +113279,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10752, '\p{^ismiscellaneousmathematicalsymbolsb}', "");
     Expect(1, 10752, '\P{ismiscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10752, '\P{^ismiscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10751, '\p{		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\p{^		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(0, 10751, '\P{		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(1, 10751, '\P{^		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\p{		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\p{^		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(1, 10752, '\P{		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Expect(0, 10752, '\P{^		is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
-    Error('\p{:= _In_Miscellaneous_mathematical_Symbols_B}');
-    Error('\P{:= _In_Miscellaneous_mathematical_Symbols_B}');
+    Expect(1, 10751, '\p{ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(0, 10751, '\p{^ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(0, 10751, '\P{ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(1, 10751, '\P{^ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(0, 10752, '\p{ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(1, 10752, '\p{^ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(1, 10752, '\P{ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Expect(0, 10752, '\P{^ _Is_MISCELLANEOUS_Mathematical_Symbols_B}', "");
+    Error('\p{-:=IN_Miscellaneous_Mathematical_Symbols_B}');
+    Error('\P{-:=IN_Miscellaneous_Mathematical_Symbols_B}');
     Expect(1, 10751, '\p{inmiscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\p{^inmiscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10751, '\P{inmiscellaneousmathematicalsymbolsb}', "");
@@ -112161,16 +113297,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10752, '\p{^inmiscellaneousmathematicalsymbolsb}', "");
     Expect(1, 10752, '\P{inmiscellaneousmathematicalsymbolsb}', "");
     Expect(0, 10752, '\P{^inmiscellaneousmathematicalsymbolsb}', "");
-    Expect(1, 10751, '\p{- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(0, 10751, '\p{^- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(0, 10751, '\P{- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(1, 10751, '\P{^- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(0, 10752, '\p{- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(1, 10752, '\p{^- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(1, 10752, '\P{- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Expect(0, 10752, '\P{^- In_miscellaneous_Mathematical_SYMBOLS_B}', "");
-    Error('\p{MISC_math_Symbols_B:=}');
-    Error('\P{MISC_math_Symbols_B:=}');
+    Expect(1, 10751, '\p{-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(0, 10751, '\p{^-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(0, 10751, '\P{-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(1, 10751, '\P{^-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(0, 10752, '\p{-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(1, 10752, '\p{^-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(1, 10752, '\P{-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Expect(0, 10752, '\P{^-In_miscellaneous_Mathematical_SYMBOLS_b}', "");
+    Error('\p{ -Misc_math_Symbols_B/a/}');
+    Error('\P{ -Misc_math_Symbols_B/a/}');
     Expect(1, 10751, '\p{miscmathsymbolsb}', "");
     Expect(0, 10751, '\p{^miscmathsymbolsb}', "");
     Expect(0, 10751, '\P{miscmathsymbolsb}', "");
@@ -112179,16 +113315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10752, '\p{^miscmathsymbolsb}', "");
     Expect(1, 10752, '\P{miscmathsymbolsb}', "");
     Expect(0, 10752, '\P{^miscmathsymbolsb}', "");
-    Expect(1, 10751, '\p{_ misc_math_symbols_B}', "");
-    Expect(0, 10751, '\p{^_ misc_math_symbols_B}', "");
-    Expect(0, 10751, '\P{_ misc_math_symbols_B}', "");
-    Expect(1, 10751, '\P{^_ misc_math_symbols_B}', "");
-    Expect(0, 10752, '\p{_ misc_math_symbols_B}', "");
-    Expect(1, 10752, '\p{^_ misc_math_symbols_B}', "");
-    Expect(1, 10752, '\P{_ misc_math_symbols_B}', "");
-    Expect(0, 10752, '\P{^_ misc_math_symbols_B}', "");
-    Error('\p{_ Is_Misc_MATH_symbols_B:=}');
-    Error('\P{_ Is_Misc_MATH_symbols_B:=}');
+    Expect(1, 10751, '\p{- Misc_Math_Symbols_B}', "");
+    Expect(0, 10751, '\p{^- Misc_Math_Symbols_B}', "");
+    Expect(0, 10751, '\P{- Misc_Math_Symbols_B}', "");
+    Expect(1, 10751, '\P{^- Misc_Math_Symbols_B}', "");
+    Expect(0, 10752, '\p{- Misc_Math_Symbols_B}', "");
+    Expect(1, 10752, '\p{^- Misc_Math_Symbols_B}', "");
+    Expect(1, 10752, '\P{- Misc_Math_Symbols_B}', "");
+    Expect(0, 10752, '\P{^- Misc_Math_Symbols_B}', "");
+    Error('\p{:=	Is_MISC_MATH_Symbols_B}');
+    Error('\P{:=	Is_MISC_MATH_Symbols_B}');
     Expect(1, 10751, '\p{ismiscmathsymbolsb}', "");
     Expect(0, 10751, '\p{^ismiscmathsymbolsb}', "");
     Expect(0, 10751, '\P{ismiscmathsymbolsb}', "");
@@ -112197,16 +113333,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10752, '\p{^ismiscmathsymbolsb}', "");
     Expect(1, 10752, '\P{ismiscmathsymbolsb}', "");
     Expect(0, 10752, '\P{^ismiscmathsymbolsb}', "");
-    Expect(1, 10751, '\p{ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(0, 10751, '\p{^ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(0, 10751, '\P{ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(1, 10751, '\P{^ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(0, 10752, '\p{ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(1, 10752, '\p{^ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(1, 10752, '\P{ Is_Misc_Math_SYMBOLS_B}', "");
-    Expect(0, 10752, '\P{^ Is_Misc_Math_SYMBOLS_B}', "");
-    Error('\p{-_in_Misc_math_Symbols_B:=}');
-    Error('\P{-_in_Misc_math_Symbols_B:=}');
+    Expect(1, 10751, '\p{ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(0, 10751, '\p{^ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(0, 10751, '\P{ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(1, 10751, '\P{^ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(0, 10752, '\p{ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(1, 10752, '\p{^ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(1, 10752, '\P{ 	IS_misc_MATH_Symbols_B}', "");
+    Expect(0, 10752, '\P{^ 	IS_misc_MATH_Symbols_B}', "");
+    Error('\p{/a/-	In_Misc_Math_symbols_B}');
+    Error('\P{/a/-	In_Misc_Math_symbols_B}');
     Expect(1, 10751, '\p{inmiscmathsymbolsb}', "");
     Expect(0, 10751, '\p{^inmiscmathsymbolsb}', "");
     Expect(0, 10751, '\P{inmiscmathsymbolsb}', "");
@@ -112215,16 +113351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 10752, '\p{^inmiscmathsymbolsb}', "");
     Expect(1, 10752, '\P{inmiscmathsymbolsb}', "");
     Expect(0, 10752, '\P{^inmiscmathsymbolsb}', "");
-    Expect(1, 10751, '\p{-	In_Misc_math_symbols_B}', "");
-    Expect(0, 10751, '\p{^-	In_Misc_math_symbols_B}', "");
-    Expect(0, 10751, '\P{-	In_Misc_math_symbols_B}', "");
-    Expect(1, 10751, '\P{^-	In_Misc_math_symbols_B}', "");
-    Expect(0, 10752, '\p{-	In_Misc_math_symbols_B}', "");
-    Expect(1, 10752, '\p{^-	In_Misc_math_symbols_B}', "");
-    Expect(1, 10752, '\P{-	In_Misc_math_symbols_B}', "");
-    Expect(0, 10752, '\P{^-	In_Misc_math_symbols_B}', "");
-    Error('\p{-Miscellaneous_symbols:=}');
-    Error('\P{-Miscellaneous_symbols:=}');
+    Expect(1, 10751, '\p{  In_MISC_Math_Symbols_B}', "");
+    Expect(0, 10751, '\p{^  In_MISC_Math_Symbols_B}', "");
+    Expect(0, 10751, '\P{  In_MISC_Math_Symbols_B}', "");
+    Expect(1, 10751, '\P{^  In_MISC_Math_Symbols_B}', "");
+    Expect(0, 10752, '\p{  In_MISC_Math_Symbols_B}', "");
+    Expect(1, 10752, '\p{^  In_MISC_Math_Symbols_B}', "");
+    Expect(1, 10752, '\P{  In_MISC_Math_Symbols_B}', "");
+    Expect(0, 10752, '\P{^  In_MISC_Math_Symbols_B}', "");
+    Error('\p{ 	Miscellaneous_symbols/a/}');
+    Error('\P{ 	Miscellaneous_symbols/a/}');
     Expect(1, 9983, '\p{miscellaneoussymbols}', "");
     Expect(0, 9983, '\p{^miscellaneoussymbols}', "");
     Expect(0, 9983, '\P{miscellaneoussymbols}', "");
@@ -112233,16 +113369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9984, '\p{^miscellaneoussymbols}', "");
     Expect(1, 9984, '\P{miscellaneoussymbols}', "");
     Expect(0, 9984, '\P{^miscellaneoussymbols}', "");
-    Expect(1, 9983, '\p{	 Miscellaneous_SYMBOLS}', "");
-    Expect(0, 9983, '\p{^	 Miscellaneous_SYMBOLS}', "");
-    Expect(0, 9983, '\P{	 Miscellaneous_SYMBOLS}', "");
-    Expect(1, 9983, '\P{^	 Miscellaneous_SYMBOLS}', "");
-    Expect(0, 9984, '\p{	 Miscellaneous_SYMBOLS}', "");
-    Expect(1, 9984, '\p{^	 Miscellaneous_SYMBOLS}', "");
-    Expect(1, 9984, '\P{	 Miscellaneous_SYMBOLS}', "");
-    Expect(0, 9984, '\P{^	 Miscellaneous_SYMBOLS}', "");
-    Error('\p{/a/-	is_Miscellaneous_symbols}');
-    Error('\P{/a/-	is_Miscellaneous_symbols}');
+    Expect(1, 9983, '\p{_Miscellaneous_Symbols}', "");
+    Expect(0, 9983, '\p{^_Miscellaneous_Symbols}', "");
+    Expect(0, 9983, '\P{_Miscellaneous_Symbols}', "");
+    Expect(1, 9983, '\P{^_Miscellaneous_Symbols}', "");
+    Expect(0, 9984, '\p{_Miscellaneous_Symbols}', "");
+    Expect(1, 9984, '\p{^_Miscellaneous_Symbols}', "");
+    Expect(1, 9984, '\P{_Miscellaneous_Symbols}', "");
+    Expect(0, 9984, '\P{^_Miscellaneous_Symbols}', "");
+    Error('\p{/a/  IS_miscellaneous_symbols}');
+    Error('\P{/a/  IS_miscellaneous_symbols}');
     Expect(1, 9983, '\p{ismiscellaneoussymbols}', "");
     Expect(0, 9983, '\p{^ismiscellaneoussymbols}', "");
     Expect(0, 9983, '\P{ismiscellaneoussymbols}', "");
@@ -112251,16 +113387,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9984, '\p{^ismiscellaneoussymbols}', "");
     Expect(1, 9984, '\P{ismiscellaneoussymbols}', "");
     Expect(0, 9984, '\P{^ismiscellaneoussymbols}', "");
-    Expect(1, 9983, '\p{_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(0, 9983, '\p{^_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(0, 9983, '\P{_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(1, 9983, '\P{^_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(0, 9984, '\p{_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(1, 9984, '\p{^_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(1, 9984, '\P{_	is_MISCELLANEOUS_Symbols}', "");
-    Expect(0, 9984, '\P{^_	is_MISCELLANEOUS_Symbols}', "");
-    Error('\p{-:=in_Miscellaneous_Symbols}');
-    Error('\P{-:=in_Miscellaneous_Symbols}');
+    Expect(1, 9983, '\p{__IS_Miscellaneous_symbols}', "");
+    Expect(0, 9983, '\p{^__IS_Miscellaneous_symbols}', "");
+    Expect(0, 9983, '\P{__IS_Miscellaneous_symbols}', "");
+    Expect(1, 9983, '\P{^__IS_Miscellaneous_symbols}', "");
+    Expect(0, 9984, '\p{__IS_Miscellaneous_symbols}', "");
+    Expect(1, 9984, '\p{^__IS_Miscellaneous_symbols}', "");
+    Expect(1, 9984, '\P{__IS_Miscellaneous_symbols}', "");
+    Expect(0, 9984, '\P{^__IS_Miscellaneous_symbols}', "");
+    Error('\p{:=  IN_miscellaneous_Symbols}');
+    Error('\P{:=  IN_miscellaneous_Symbols}');
     Expect(1, 9983, '\p{inmiscellaneoussymbols}', "");
     Expect(0, 9983, '\p{^inmiscellaneoussymbols}', "");
     Expect(0, 9983, '\P{inmiscellaneoussymbols}', "");
@@ -112269,16 +113405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9984, '\p{^inmiscellaneoussymbols}', "");
     Expect(1, 9984, '\P{inmiscellaneoussymbols}', "");
     Expect(0, 9984, '\P{^inmiscellaneoussymbols}', "");
-    Expect(1, 9983, '\p{_in_Miscellaneous_Symbols}', "");
-    Expect(0, 9983, '\p{^_in_Miscellaneous_Symbols}', "");
-    Expect(0, 9983, '\P{_in_Miscellaneous_Symbols}', "");
-    Expect(1, 9983, '\P{^_in_Miscellaneous_Symbols}', "");
-    Expect(0, 9984, '\p{_in_Miscellaneous_Symbols}', "");
-    Expect(1, 9984, '\p{^_in_Miscellaneous_Symbols}', "");
-    Expect(1, 9984, '\P{_in_Miscellaneous_Symbols}', "");
-    Expect(0, 9984, '\P{^_in_Miscellaneous_Symbols}', "");
-    Error('\p{_ Misc_Symbols:=}');
-    Error('\P{_ Misc_Symbols:=}');
+    Expect(1, 9983, '\p{_-IN_Miscellaneous_symbols}', "");
+    Expect(0, 9983, '\p{^_-IN_Miscellaneous_symbols}', "");
+    Expect(0, 9983, '\P{_-IN_Miscellaneous_symbols}', "");
+    Expect(1, 9983, '\P{^_-IN_Miscellaneous_symbols}', "");
+    Expect(0, 9984, '\p{_-IN_Miscellaneous_symbols}', "");
+    Expect(1, 9984, '\p{^_-IN_Miscellaneous_symbols}', "");
+    Expect(1, 9984, '\P{_-IN_Miscellaneous_symbols}', "");
+    Expect(0, 9984, '\P{^_-IN_Miscellaneous_symbols}', "");
+    Error('\p{:= _MISC_Symbols}');
+    Error('\P{:= _MISC_Symbols}');
     Expect(1, 9983, '\p{miscsymbols}', "");
     Expect(0, 9983, '\p{^miscsymbols}', "");
     Expect(0, 9983, '\P{miscsymbols}', "");
@@ -112287,16 +113423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9984, '\p{^miscsymbols}', "");
     Expect(1, 9984, '\P{miscsymbols}', "");
     Expect(0, 9984, '\P{^miscsymbols}', "");
-    Expect(1, 9983, '\p{	misc_Symbols}', "");
-    Expect(0, 9983, '\p{^	misc_Symbols}', "");
-    Expect(0, 9983, '\P{	misc_Symbols}', "");
-    Expect(1, 9983, '\P{^	misc_Symbols}', "");
-    Expect(0, 9984, '\p{	misc_Symbols}', "");
-    Expect(1, 9984, '\p{^	misc_Symbols}', "");
-    Expect(1, 9984, '\P{	misc_Symbols}', "");
-    Expect(0, 9984, '\P{^	misc_Symbols}', "");
-    Error('\p{-_Is_Misc_Symbols:=}');
-    Error('\P{-_Is_Misc_Symbols:=}');
+    Expect(1, 9983, '\p{_ Misc_SYMBOLS}', "");
+    Expect(0, 9983, '\p{^_ Misc_SYMBOLS}', "");
+    Expect(0, 9983, '\P{_ Misc_SYMBOLS}', "");
+    Expect(1, 9983, '\P{^_ Misc_SYMBOLS}', "");
+    Expect(0, 9984, '\p{_ Misc_SYMBOLS}', "");
+    Expect(1, 9984, '\p{^_ Misc_SYMBOLS}', "");
+    Expect(1, 9984, '\P{_ Misc_SYMBOLS}', "");
+    Expect(0, 9984, '\P{^_ Misc_SYMBOLS}', "");
+    Error('\p{:=	IS_Misc_SYMBOLS}');
+    Error('\P{:=	IS_Misc_SYMBOLS}');
     Expect(1, 9983, '\p{ismiscsymbols}', "");
     Expect(0, 9983, '\p{^ismiscsymbols}', "");
     Expect(0, 9983, '\P{ismiscsymbols}', "");
@@ -112305,16 +113441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9984, '\p{^ismiscsymbols}', "");
     Expect(1, 9984, '\P{ismiscsymbols}', "");
     Expect(0, 9984, '\P{^ismiscsymbols}', "");
-    Expect(1, 9983, '\p{	_IS_MISC_Symbols}', "");
-    Expect(0, 9983, '\p{^	_IS_MISC_Symbols}', "");
-    Expect(0, 9983, '\P{	_IS_MISC_Symbols}', "");
-    Expect(1, 9983, '\P{^	_IS_MISC_Symbols}', "");
-    Expect(0, 9984, '\p{	_IS_MISC_Symbols}', "");
-    Expect(1, 9984, '\p{^	_IS_MISC_Symbols}', "");
-    Expect(1, 9984, '\P{	_IS_MISC_Symbols}', "");
-    Expect(0, 9984, '\P{^	_IS_MISC_Symbols}', "");
-    Error('\p{:=	_IN_Misc_SYMBOLS}');
-    Error('\P{:=	_IN_Misc_SYMBOLS}');
+    Expect(1, 9983, '\p{-_is_misc_Symbols}', "");
+    Expect(0, 9983, '\p{^-_is_misc_Symbols}', "");
+    Expect(0, 9983, '\P{-_is_misc_Symbols}', "");
+    Expect(1, 9983, '\P{^-_is_misc_Symbols}', "");
+    Expect(0, 9984, '\p{-_is_misc_Symbols}', "");
+    Expect(1, 9984, '\p{^-_is_misc_Symbols}', "");
+    Expect(1, 9984, '\P{-_is_misc_Symbols}', "");
+    Expect(0, 9984, '\P{^-_is_misc_Symbols}', "");
+    Error('\p{/a/-_In_misc_symbols}');
+    Error('\P{/a/-_In_misc_symbols}');
     Expect(1, 9983, '\p{inmiscsymbols}', "");
     Expect(0, 9983, '\p{^inmiscsymbols}', "");
     Expect(0, 9983, '\P{inmiscsymbols}', "");
@@ -112323,16 +113459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9984, '\p{^inmiscsymbols}', "");
     Expect(1, 9984, '\P{inmiscsymbols}', "");
     Expect(0, 9984, '\P{^inmiscsymbols}', "");
-    Expect(1, 9983, '\p{_	in_misc_SYMBOLS}', "");
-    Expect(0, 9983, '\p{^_	in_misc_SYMBOLS}', "");
-    Expect(0, 9983, '\P{_	in_misc_SYMBOLS}', "");
-    Expect(1, 9983, '\P{^_	in_misc_SYMBOLS}', "");
-    Expect(0, 9984, '\p{_	in_misc_SYMBOLS}', "");
-    Expect(1, 9984, '\p{^_	in_misc_SYMBOLS}', "");
-    Expect(1, 9984, '\P{_	in_misc_SYMBOLS}', "");
-    Expect(0, 9984, '\P{^_	in_misc_SYMBOLS}', "");
-    Error('\p{:=_MISCELLANEOUS_Symbols_and_Arrows}');
-    Error('\P{:=_MISCELLANEOUS_Symbols_and_Arrows}');
+    Expect(1, 9983, '\p{	 In_MISC_Symbols}', "");
+    Expect(0, 9983, '\p{^	 In_MISC_Symbols}', "");
+    Expect(0, 9983, '\P{	 In_MISC_Symbols}', "");
+    Expect(1, 9983, '\P{^	 In_MISC_Symbols}', "");
+    Expect(0, 9984, '\p{	 In_MISC_Symbols}', "");
+    Expect(1, 9984, '\p{^	 In_MISC_Symbols}', "");
+    Expect(1, 9984, '\P{	 In_MISC_Symbols}', "");
+    Expect(0, 9984, '\P{^	 In_MISC_Symbols}', "");
+    Error('\p{/a/ -Miscellaneous_Symbols_And_Arrows}');
+    Error('\P{/a/ -Miscellaneous_Symbols_And_Arrows}');
     Expect(1, 11263, '\p{miscellaneoussymbolsandarrows}', "");
     Expect(0, 11263, '\p{^miscellaneoussymbolsandarrows}', "");
     Expect(0, 11263, '\P{miscellaneoussymbolsandarrows}', "");
@@ -112341,16 +113477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11264, '\p{^miscellaneoussymbolsandarrows}', "");
     Expect(1, 11264, '\P{miscellaneoussymbolsandarrows}', "");
     Expect(0, 11264, '\P{^miscellaneoussymbolsandarrows}', "");
-    Expect(1, 11263, '\p{	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(0, 11263, '\p{^	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(0, 11263, '\P{	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(1, 11263, '\P{^	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(0, 11264, '\p{	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(1, 11264, '\p{^	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(1, 11264, '\P{	-miscellaneous_symbols_And_Arrows}', "");
-    Expect(0, 11264, '\P{^	-miscellaneous_symbols_And_Arrows}', "");
-    Error('\p{/a/	_IS_miscellaneous_symbols_And_ARROWS}');
-    Error('\P{/a/	_IS_miscellaneous_symbols_And_ARROWS}');
+    Expect(1, 11263, '\p{	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11263, '\p{^	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11263, '\P{	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(1, 11263, '\P{^	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11264, '\p{	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(1, 11264, '\p{^	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(1, 11264, '\P{	Miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11264, '\P{^	Miscellaneous_symbols_And_ARROWS}', "");
+    Error('\p{/a/-Is_Miscellaneous_symbols_And_Arrows}');
+    Error('\P{/a/-Is_Miscellaneous_symbols_And_Arrows}');
     Expect(1, 11263, '\p{ismiscellaneoussymbolsandarrows}', "");
     Expect(0, 11263, '\p{^ismiscellaneoussymbolsandarrows}', "");
     Expect(0, 11263, '\P{ismiscellaneoussymbolsandarrows}', "");
@@ -112359,16 +113495,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11264, '\p{^ismiscellaneoussymbolsandarrows}', "");
     Expect(1, 11264, '\P{ismiscellaneoussymbolsandarrows}', "");
     Expect(0, 11264, '\P{^ismiscellaneoussymbolsandarrows}', "");
-    Expect(1, 11263, '\p{--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(0, 11263, '\p{^--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(0, 11263, '\P{--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(1, 11263, '\P{^--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(0, 11264, '\p{--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(1, 11264, '\p{^--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(1, 11264, '\P{--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Expect(0, 11264, '\P{^--Is_MISCELLANEOUS_symbols_and_Arrows}', "");
-    Error('\p{	/a/In_MISCELLANEOUS_SYMBOLS_AND_ARROWS}');
-    Error('\P{	/a/In_MISCELLANEOUS_SYMBOLS_AND_ARROWS}');
+    Expect(1, 11263, '\p{	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(0, 11263, '\p{^	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(0, 11263, '\P{	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(1, 11263, '\P{^	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(0, 11264, '\p{	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(1, 11264, '\p{^	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(1, 11264, '\P{	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Expect(0, 11264, '\P{^	-Is_Miscellaneous_SYMBOLS_And_arrows}', "");
+    Error('\p{/a/in_miscellaneous_Symbols_AND_Arrows}');
+    Error('\P{/a/in_miscellaneous_Symbols_AND_Arrows}');
     Expect(1, 11263, '\p{inmiscellaneoussymbolsandarrows}', "");
     Expect(0, 11263, '\p{^inmiscellaneoussymbolsandarrows}', "");
     Expect(0, 11263, '\P{inmiscellaneoussymbolsandarrows}', "");
@@ -112377,16 +113513,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11264, '\p{^inmiscellaneoussymbolsandarrows}', "");
     Expect(1, 11264, '\P{inmiscellaneoussymbolsandarrows}', "");
     Expect(0, 11264, '\P{^inmiscellaneoussymbolsandarrows}', "");
-    Expect(1, 11263, '\p{--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11263, '\p{^--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11263, '\P{--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(1, 11263, '\P{^--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11264, '\p{--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(1, 11264, '\p{^--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(1, 11264, '\P{--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Expect(0, 11264, '\P{^--IN_MISCELLANEOUS_SYMBOLS_And_Arrows}', "");
-    Error('\p{/a/	Misc_ARROWS}');
-    Error('\P{/a/	Misc_ARROWS}');
+    Expect(1, 11263, '\p{	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11263, '\p{^	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11263, '\P{	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(1, 11263, '\P{^	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11264, '\p{	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(1, 11264, '\p{^	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(1, 11264, '\P{	In_miscellaneous_symbols_And_ARROWS}', "");
+    Expect(0, 11264, '\P{^	In_miscellaneous_symbols_And_ARROWS}', "");
+    Error('\p{	-MISC_Arrows/a/}');
+    Error('\P{	-MISC_Arrows/a/}');
     Expect(1, 11263, '\p{miscarrows}', "");
     Expect(0, 11263, '\p{^miscarrows}', "");
     Expect(0, 11263, '\P{miscarrows}', "");
@@ -112395,16 +113531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11264, '\p{^miscarrows}', "");
     Expect(1, 11264, '\P{miscarrows}', "");
     Expect(0, 11264, '\P{^miscarrows}', "");
-    Expect(1, 11263, '\p{	_misc_arrows}', "");
-    Expect(0, 11263, '\p{^	_misc_arrows}', "");
-    Expect(0, 11263, '\P{	_misc_arrows}', "");
-    Expect(1, 11263, '\P{^	_misc_arrows}', "");
-    Expect(0, 11264, '\p{	_misc_arrows}', "");
-    Expect(1, 11264, '\p{^	_misc_arrows}', "");
-    Expect(1, 11264, '\P{	_misc_arrows}', "");
-    Expect(0, 11264, '\P{^	_misc_arrows}', "");
-    Error('\p{/a/ -Is_Misc_arrows}');
-    Error('\P{/a/ -Is_Misc_arrows}');
+    Expect(1, 11263, '\p{-	Misc_Arrows}', "");
+    Expect(0, 11263, '\p{^-	Misc_Arrows}', "");
+    Expect(0, 11263, '\P{-	Misc_Arrows}', "");
+    Expect(1, 11263, '\P{^-	Misc_Arrows}', "");
+    Expect(0, 11264, '\p{-	Misc_Arrows}', "");
+    Expect(1, 11264, '\p{^-	Misc_Arrows}', "");
+    Expect(1, 11264, '\P{-	Misc_Arrows}', "");
+    Expect(0, 11264, '\P{^-	Misc_Arrows}', "");
+    Error('\p{:=IS_MISC_Arrows}');
+    Error('\P{:=IS_MISC_Arrows}');
     Expect(1, 11263, '\p{ismiscarrows}', "");
     Expect(0, 11263, '\p{^ismiscarrows}', "");
     Expect(0, 11263, '\P{ismiscarrows}', "");
@@ -112413,16 +113549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11264, '\p{^ismiscarrows}', "");
     Expect(1, 11264, '\P{ismiscarrows}', "");
     Expect(0, 11264, '\P{^ismiscarrows}', "");
-    Expect(1, 11263, '\p{ is_MISC_Arrows}', "");
-    Expect(0, 11263, '\p{^ is_MISC_Arrows}', "");
-    Expect(0, 11263, '\P{ is_MISC_Arrows}', "");
-    Expect(1, 11263, '\P{^ is_MISC_Arrows}', "");
-    Expect(0, 11264, '\p{ is_MISC_Arrows}', "");
-    Expect(1, 11264, '\p{^ is_MISC_Arrows}', "");
-    Expect(1, 11264, '\P{ is_MISC_Arrows}', "");
-    Expect(0, 11264, '\P{^ is_MISC_Arrows}', "");
-    Error('\p{  IN_Misc_ARROWS:=}');
-    Error('\P{  IN_Misc_ARROWS:=}');
+    Expect(1, 11263, '\p{	_is_misc_ARROWS}', "");
+    Expect(0, 11263, '\p{^	_is_misc_ARROWS}', "");
+    Expect(0, 11263, '\P{	_is_misc_ARROWS}', "");
+    Expect(1, 11263, '\P{^	_is_misc_ARROWS}', "");
+    Expect(0, 11264, '\p{	_is_misc_ARROWS}', "");
+    Expect(1, 11264, '\p{^	_is_misc_ARROWS}', "");
+    Expect(1, 11264, '\P{	_is_misc_ARROWS}', "");
+    Expect(0, 11264, '\P{^	_is_misc_ARROWS}', "");
+    Error('\p{	in_Misc_ARROWS:=}');
+    Error('\P{	in_Misc_ARROWS:=}');
     Expect(1, 11263, '\p{inmiscarrows}', "");
     Expect(0, 11263, '\p{^inmiscarrows}', "");
     Expect(0, 11263, '\P{inmiscarrows}', "");
@@ -112431,16 +113567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 11264, '\p{^inmiscarrows}', "");
     Expect(1, 11264, '\P{inmiscarrows}', "");
     Expect(0, 11264, '\P{^inmiscarrows}', "");
-    Expect(1, 11263, '\p{-_IN_misc_ARROWS}', "");
-    Expect(0, 11263, '\p{^-_IN_misc_ARROWS}', "");
-    Expect(0, 11263, '\P{-_IN_misc_ARROWS}', "");
-    Expect(1, 11263, '\P{^-_IN_misc_ARROWS}', "");
-    Expect(0, 11264, '\p{-_IN_misc_ARROWS}', "");
-    Expect(1, 11264, '\p{^-_IN_misc_ARROWS}', "");
-    Expect(1, 11264, '\P{-_IN_misc_ARROWS}', "");
-    Expect(0, 11264, '\P{^-_IN_misc_ARROWS}', "");
-    Error('\p{ -Miscellaneous_SYMBOLS_And_pictographs:=}');
-    Error('\P{ -Miscellaneous_SYMBOLS_And_pictographs:=}');
+    Expect(1, 11263, '\p{-In_Misc_Arrows}', "");
+    Expect(0, 11263, '\p{^-In_Misc_Arrows}', "");
+    Expect(0, 11263, '\P{-In_Misc_Arrows}', "");
+    Expect(1, 11263, '\P{^-In_Misc_Arrows}', "");
+    Expect(0, 11264, '\p{-In_Misc_Arrows}', "");
+    Expect(1, 11264, '\p{^-In_Misc_Arrows}', "");
+    Expect(1, 11264, '\P{-In_Misc_Arrows}', "");
+    Expect(0, 11264, '\P{^-In_Misc_Arrows}', "");
+    Error('\p{--Miscellaneous_SYMBOLS_and_pictographs:=}');
+    Error('\P{--Miscellaneous_SYMBOLS_and_pictographs:=}');
     Expect(1, 128511, '\p{miscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\p{^miscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\P{miscellaneoussymbolsandpictographs}', "");
@@ -112449,16 +113585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128512, '\p{^miscellaneoussymbolsandpictographs}', "");
     Expect(1, 128512, '\P{miscellaneoussymbolsandpictographs}', "");
     Expect(0, 128512, '\P{^miscellaneoussymbolsandpictographs}', "");
-    Expect(1, 128511, '\p{	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(0, 128511, '\p{^	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(0, 128511, '\P{	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(1, 128511, '\P{^	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(0, 128512, '\p{	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(1, 128512, '\p{^	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(1, 128512, '\P{	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Expect(0, 128512, '\P{^	-MISCELLANEOUS_symbols_And_Pictographs}', "");
-    Error('\p{_/a/is_MISCELLANEOUS_Symbols_And_pictographs}');
-    Error('\P{_/a/is_MISCELLANEOUS_Symbols_And_pictographs}');
+    Expect(1, 128511, '\p{_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(0, 128511, '\p{^_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(0, 128511, '\P{_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(1, 128511, '\P{^_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(0, 128512, '\p{_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(1, 128512, '\p{^_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(1, 128512, '\P{_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Expect(0, 128512, '\P{^_MISCELLANEOUS_Symbols_and_Pictographs}', "");
+    Error('\p{/a/_-IS_Miscellaneous_Symbols_AND_pictographs}');
+    Error('\P{/a/_-IS_Miscellaneous_Symbols_AND_pictographs}');
     Expect(1, 128511, '\p{ismiscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\p{^ismiscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\P{ismiscellaneoussymbolsandpictographs}', "");
@@ -112467,16 +113603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128512, '\p{^ismiscellaneoussymbolsandpictographs}', "");
     Expect(1, 128512, '\P{ismiscellaneoussymbolsandpictographs}', "");
     Expect(0, 128512, '\P{^ismiscellaneoussymbolsandpictographs}', "");
-    Expect(1, 128511, '\p{  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(0, 128511, '\p{^  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(0, 128511, '\P{  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(1, 128511, '\P{^  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(0, 128512, '\p{  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(1, 128512, '\p{^  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(1, 128512, '\P{  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Expect(0, 128512, '\P{^  Is_Miscellaneous_symbols_And_Pictographs}', "");
-    Error('\p{/a/_In_Miscellaneous_Symbols_AND_pictographs}');
-    Error('\P{/a/_In_Miscellaneous_Symbols_AND_pictographs}');
+    Expect(1, 128511, '\p{- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(0, 128511, '\p{^- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(0, 128511, '\P{- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(1, 128511, '\P{^- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(0, 128512, '\p{- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(1, 128512, '\p{^- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(1, 128512, '\P{- is_miscellaneous_Symbols_And_pictographs}', "");
+    Expect(0, 128512, '\P{^- is_miscellaneous_Symbols_And_pictographs}', "");
+    Error('\p{:= -IN_miscellaneous_Symbols_and_PICTOGRAPHS}');
+    Error('\P{:= -IN_miscellaneous_Symbols_and_PICTOGRAPHS}');
     Expect(1, 128511, '\p{inmiscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\p{^inmiscellaneoussymbolsandpictographs}', "");
     Expect(0, 128511, '\P{inmiscellaneoussymbolsandpictographs}', "");
@@ -112485,16 +113621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128512, '\p{^inmiscellaneoussymbolsandpictographs}', "");
     Expect(1, 128512, '\P{inmiscellaneoussymbolsandpictographs}', "");
     Expect(0, 128512, '\P{^inmiscellaneoussymbolsandpictographs}', "");
-    Expect(1, 128511, '\p{-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(0, 128511, '\p{^-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(0, 128511, '\P{-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(1, 128511, '\P{^-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(0, 128512, '\p{-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(1, 128512, '\p{^-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(1, 128512, '\P{-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Expect(0, 128512, '\P{^-in_miscellaneous_Symbols_AND_Pictographs}', "");
-    Error('\p{:=- Misc_pictographs}');
-    Error('\P{:=- Misc_pictographs}');
+    Expect(1, 128511, '\p{ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 128511, '\p{^ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 128511, '\P{ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(1, 128511, '\P{^ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 128512, '\p{ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(1, 128512, '\p{^ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(1, 128512, '\P{ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 128512, '\P{^ -In_miscellaneous_Symbols_And_PICTOGRAPHS}', "");
+    Error('\p{:=-Misc_Pictographs}');
+    Error('\P{:=-Misc_Pictographs}');
     Expect(1, 128511, '\p{miscpictographs}', "");
     Expect(0, 128511, '\p{^miscpictographs}', "");
     Expect(0, 128511, '\P{miscpictographs}', "");
@@ -112503,16 +113639,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128512, '\p{^miscpictographs}', "");
     Expect(1, 128512, '\P{miscpictographs}', "");
     Expect(0, 128512, '\P{^miscpictographs}', "");
-    Expect(1, 128511, '\p{-Misc_PICTOGRAPHS}', "");
-    Expect(0, 128511, '\p{^-Misc_PICTOGRAPHS}', "");
-    Expect(0, 128511, '\P{-Misc_PICTOGRAPHS}', "");
-    Expect(1, 128511, '\P{^-Misc_PICTOGRAPHS}', "");
-    Expect(0, 128512, '\p{-Misc_PICTOGRAPHS}', "");
-    Expect(1, 128512, '\p{^-Misc_PICTOGRAPHS}', "");
-    Expect(1, 128512, '\P{-Misc_PICTOGRAPHS}', "");
-    Expect(0, 128512, '\P{^-Misc_PICTOGRAPHS}', "");
-    Error('\p{	 Is_Misc_PICTOGRAPHS:=}');
-    Error('\P{	 Is_Misc_PICTOGRAPHS:=}');
+    Expect(1, 128511, '\p{Misc_pictographs}', "");
+    Expect(0, 128511, '\p{^Misc_pictographs}', "");
+    Expect(0, 128511, '\P{Misc_pictographs}', "");
+    Expect(1, 128511, '\P{^Misc_pictographs}', "");
+    Expect(0, 128512, '\p{Misc_pictographs}', "");
+    Expect(1, 128512, '\p{^Misc_pictographs}', "");
+    Expect(1, 128512, '\P{Misc_pictographs}', "");
+    Expect(0, 128512, '\P{^Misc_pictographs}', "");
+    Error('\p{_-is_Misc_Pictographs/a/}');
+    Error('\P{_-is_Misc_Pictographs/a/}');
     Expect(1, 128511, '\p{ismiscpictographs}', "");
     Expect(0, 128511, '\p{^ismiscpictographs}', "");
     Expect(0, 128511, '\P{ismiscpictographs}', "");
@@ -112521,16 +113657,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128512, '\p{^ismiscpictographs}', "");
     Expect(1, 128512, '\P{ismiscpictographs}', "");
     Expect(0, 128512, '\P{^ismiscpictographs}', "");
-    Expect(1, 128511, '\p{-Is_MISC_pictographs}', "");
-    Expect(0, 128511, '\p{^-Is_MISC_pictographs}', "");
-    Expect(0, 128511, '\P{-Is_MISC_pictographs}', "");
-    Expect(1, 128511, '\P{^-Is_MISC_pictographs}', "");
-    Expect(0, 128512, '\p{-Is_MISC_pictographs}', "");
-    Expect(1, 128512, '\p{^-Is_MISC_pictographs}', "");
-    Expect(1, 128512, '\P{-Is_MISC_pictographs}', "");
-    Expect(0, 128512, '\P{^-Is_MISC_pictographs}', "");
-    Error('\p{	In_Misc_Pictographs:=}');
-    Error('\P{	In_Misc_Pictographs:=}');
+    Expect(1, 128511, '\p{		is_Misc_PICTOGRAPHS}', "");
+    Expect(0, 128511, '\p{^		is_Misc_PICTOGRAPHS}', "");
+    Expect(0, 128511, '\P{		is_Misc_PICTOGRAPHS}', "");
+    Expect(1, 128511, '\P{^		is_Misc_PICTOGRAPHS}', "");
+    Expect(0, 128512, '\p{		is_Misc_PICTOGRAPHS}', "");
+    Expect(1, 128512, '\p{^		is_Misc_PICTOGRAPHS}', "");
+    Expect(1, 128512, '\P{		is_Misc_PICTOGRAPHS}', "");
+    Expect(0, 128512, '\P{^		is_Misc_PICTOGRAPHS}', "");
+    Error('\p{:=	IN_misc_Pictographs}');
+    Error('\P{:=	IN_misc_Pictographs}');
     Expect(1, 128511, '\p{inmiscpictographs}', "");
     Expect(0, 128511, '\p{^inmiscpictographs}', "");
     Expect(0, 128511, '\P{inmiscpictographs}', "");
@@ -112539,16 +113675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128512, '\p{^inmiscpictographs}', "");
     Expect(1, 128512, '\P{inmiscpictographs}', "");
     Expect(0, 128512, '\P{^inmiscpictographs}', "");
-    Expect(1, 128511, '\p{ _in_Misc_pictographs}', "");
-    Expect(0, 128511, '\p{^ _in_Misc_pictographs}', "");
-    Expect(0, 128511, '\P{ _in_Misc_pictographs}', "");
-    Expect(1, 128511, '\P{^ _in_Misc_pictographs}', "");
-    Expect(0, 128512, '\p{ _in_Misc_pictographs}', "");
-    Expect(1, 128512, '\p{^ _in_Misc_pictographs}', "");
-    Expect(1, 128512, '\P{ _in_Misc_pictographs}', "");
-    Expect(0, 128512, '\P{^ _in_Misc_pictographs}', "");
-    Error('\p{/a/_MISCELLANEOUS_technical}');
-    Error('\P{/a/_MISCELLANEOUS_technical}');
+    Expect(1, 128511, '\p{_ In_Misc_Pictographs}', "");
+    Expect(0, 128511, '\p{^_ In_Misc_Pictographs}', "");
+    Expect(0, 128511, '\P{_ In_Misc_Pictographs}', "");
+    Expect(1, 128511, '\P{^_ In_Misc_Pictographs}', "");
+    Expect(0, 128512, '\p{_ In_Misc_Pictographs}', "");
+    Expect(1, 128512, '\p{^_ In_Misc_Pictographs}', "");
+    Expect(1, 128512, '\P{_ In_Misc_Pictographs}', "");
+    Expect(0, 128512, '\P{^_ In_Misc_Pictographs}', "");
+    Error('\p{:=  Miscellaneous_Technical}');
+    Error('\P{:=  Miscellaneous_Technical}');
     Expect(1, 9215, '\p{miscellaneoustechnical}', "");
     Expect(0, 9215, '\p{^miscellaneoustechnical}', "");
     Expect(0, 9215, '\P{miscellaneoustechnical}', "");
@@ -112557,16 +113693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9216, '\p{^miscellaneoustechnical}', "");
     Expect(1, 9216, '\P{miscellaneoustechnical}', "");
     Expect(0, 9216, '\P{^miscellaneoustechnical}', "");
-    Expect(1, 9215, '\p{__Miscellaneous_technical}', "");
-    Expect(0, 9215, '\p{^__Miscellaneous_technical}', "");
-    Expect(0, 9215, '\P{__Miscellaneous_technical}', "");
-    Expect(1, 9215, '\P{^__Miscellaneous_technical}', "");
-    Expect(0, 9216, '\p{__Miscellaneous_technical}', "");
-    Expect(1, 9216, '\p{^__Miscellaneous_technical}', "");
-    Expect(1, 9216, '\P{__Miscellaneous_technical}', "");
-    Expect(0, 9216, '\P{^__Miscellaneous_technical}', "");
-    Error('\p{:=Is_miscellaneous_Technical}');
-    Error('\P{:=Is_miscellaneous_Technical}');
+    Expect(1, 9215, '\p{--Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^--Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\P{--Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^--Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\p{--Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^--Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\P{--Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^--Miscellaneous_TECHNICAL}', "");
+    Error('\p{/a/is_Miscellaneous_Technical}');
+    Error('\P{/a/is_Miscellaneous_Technical}');
     Expect(1, 9215, '\p{ismiscellaneoustechnical}', "");
     Expect(0, 9215, '\p{^ismiscellaneoustechnical}', "");
     Expect(0, 9215, '\P{ismiscellaneoustechnical}', "");
@@ -112575,16 +113711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9216, '\p{^ismiscellaneoustechnical}', "");
     Expect(1, 9216, '\P{ismiscellaneoustechnical}', "");
     Expect(0, 9216, '\P{^ismiscellaneoustechnical}', "");
-    Expect(1, 9215, '\p{_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(0, 9215, '\p{^_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(0, 9215, '\P{_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(1, 9215, '\P{^_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(0, 9216, '\p{_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(1, 9216, '\p{^_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(1, 9216, '\P{_ Is_Miscellaneous_TECHNICAL}', "");
-    Expect(0, 9216, '\P{^_ Is_Miscellaneous_TECHNICAL}', "");
-    Error('\p{-/a/IN_Miscellaneous_Technical}');
-    Error('\P{-/a/IN_Miscellaneous_Technical}');
+    Expect(1, 9215, '\p{ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\P{ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\p{ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\P{ Is_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^ Is_Miscellaneous_TECHNICAL}', "");
+    Error('\p{-/a/IN_Miscellaneous_TECHNICAL}');
+    Error('\P{-/a/IN_Miscellaneous_TECHNICAL}');
     Expect(1, 9215, '\p{inmiscellaneoustechnical}', "");
     Expect(0, 9215, '\p{^inmiscellaneoustechnical}', "");
     Expect(0, 9215, '\P{inmiscellaneoustechnical}', "");
@@ -112593,16 +113729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9216, '\p{^inmiscellaneoustechnical}', "");
     Expect(1, 9216, '\P{inmiscellaneoustechnical}', "");
     Expect(0, 9216, '\P{^inmiscellaneoustechnical}', "");
-    Expect(1, 9215, '\p{ IN_miscellaneous_Technical}', "");
-    Expect(0, 9215, '\p{^ IN_miscellaneous_Technical}', "");
-    Expect(0, 9215, '\P{ IN_miscellaneous_Technical}', "");
-    Expect(1, 9215, '\P{^ IN_miscellaneous_Technical}', "");
-    Expect(0, 9216, '\p{ IN_miscellaneous_Technical}', "");
-    Expect(1, 9216, '\p{^ IN_miscellaneous_Technical}', "");
-    Expect(1, 9216, '\P{ IN_miscellaneous_Technical}', "");
-    Expect(0, 9216, '\P{^ IN_miscellaneous_Technical}', "");
-    Error('\p{/a/	_misc_Technical}');
-    Error('\P{/a/	_misc_Technical}');
+    Expect(1, 9215, '\p{	In_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^	In_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9215, '\P{	In_Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^	In_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\p{	In_Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^	In_Miscellaneous_TECHNICAL}', "");
+    Expect(1, 9216, '\P{	In_Miscellaneous_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^	In_Miscellaneous_TECHNICAL}', "");
+    Error('\p{	/a/Misc_technical}');
+    Error('\P{	/a/Misc_technical}');
     Expect(1, 9215, '\p{misctechnical}', "");
     Expect(0, 9215, '\p{^misctechnical}', "");
     Expect(0, 9215, '\P{misctechnical}', "");
@@ -112611,16 +113747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9216, '\p{^misctechnical}', "");
     Expect(1, 9216, '\P{misctechnical}', "");
     Expect(0, 9216, '\P{^misctechnical}', "");
-    Expect(1, 9215, '\p{	_misc_Technical}', "");
-    Expect(0, 9215, '\p{^	_misc_Technical}', "");
-    Expect(0, 9215, '\P{	_misc_Technical}', "");
-    Expect(1, 9215, '\P{^	_misc_Technical}', "");
-    Expect(0, 9216, '\p{	_misc_Technical}', "");
-    Expect(1, 9216, '\p{^	_misc_Technical}', "");
-    Expect(1, 9216, '\P{	_misc_Technical}', "");
-    Expect(0, 9216, '\P{^	_misc_Technical}', "");
-    Error('\p{-:=Is_Misc_Technical}');
-    Error('\P{-:=Is_Misc_Technical}');
+    Expect(1, 9215, '\p{-Misc_Technical}', "");
+    Expect(0, 9215, '\p{^-Misc_Technical}', "");
+    Expect(0, 9215, '\P{-Misc_Technical}', "");
+    Expect(1, 9215, '\P{^-Misc_Technical}', "");
+    Expect(0, 9216, '\p{-Misc_Technical}', "");
+    Expect(1, 9216, '\p{^-Misc_Technical}', "");
+    Expect(1, 9216, '\P{-Misc_Technical}', "");
+    Expect(0, 9216, '\P{^-Misc_Technical}', "");
+    Error('\p{-	IS_MISC_TECHNICAL/a/}');
+    Error('\P{-	IS_MISC_TECHNICAL/a/}');
     Expect(1, 9215, '\p{ismisctechnical}', "");
     Expect(0, 9215, '\p{^ismisctechnical}', "");
     Expect(0, 9215, '\P{ismisctechnical}', "");
@@ -112629,16 +113765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9216, '\p{^ismisctechnical}', "");
     Expect(1, 9216, '\P{ismisctechnical}', "");
     Expect(0, 9216, '\P{^ismisctechnical}', "");
-    Expect(1, 9215, '\p{-is_Misc_TECHNICAL}', "");
-    Expect(0, 9215, '\p{^-is_Misc_TECHNICAL}', "");
-    Expect(0, 9215, '\P{-is_Misc_TECHNICAL}', "");
-    Expect(1, 9215, '\P{^-is_Misc_TECHNICAL}', "");
-    Expect(0, 9216, '\p{-is_Misc_TECHNICAL}', "");
-    Expect(1, 9216, '\p{^-is_Misc_TECHNICAL}', "");
-    Expect(1, 9216, '\P{-is_Misc_TECHNICAL}', "");
-    Expect(0, 9216, '\P{^-is_Misc_TECHNICAL}', "");
-    Error('\p{_/a/IN_Misc_Technical}');
-    Error('\P{_/a/IN_Misc_Technical}');
+    Expect(1, 9215, '\p{is_Misc_TECHNICAL}', "");
+    Expect(0, 9215, '\p{^is_Misc_TECHNICAL}', "");
+    Expect(0, 9215, '\P{is_Misc_TECHNICAL}', "");
+    Expect(1, 9215, '\P{^is_Misc_TECHNICAL}', "");
+    Expect(0, 9216, '\p{is_Misc_TECHNICAL}', "");
+    Expect(1, 9216, '\p{^is_Misc_TECHNICAL}', "");
+    Expect(1, 9216, '\P{is_Misc_TECHNICAL}', "");
+    Expect(0, 9216, '\P{^is_Misc_TECHNICAL}', "");
+    Error('\p{_/a/in_MISC_TECHNICAL}');
+    Error('\P{_/a/in_MISC_TECHNICAL}');
     Expect(1, 9215, '\p{inmisctechnical}', "");
     Expect(0, 9215, '\p{^inmisctechnical}', "");
     Expect(0, 9215, '\P{inmisctechnical}', "");
@@ -112647,16 +113783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9216, '\p{^inmisctechnical}', "");
     Expect(1, 9216, '\P{inmisctechnical}', "");
     Expect(0, 9216, '\P{^inmisctechnical}', "");
-    Expect(1, 9215, '\p{ -In_misc_technical}', "");
-    Expect(0, 9215, '\p{^ -In_misc_technical}', "");
-    Expect(0, 9215, '\P{ -In_misc_technical}', "");
-    Expect(1, 9215, '\P{^ -In_misc_technical}', "");
-    Expect(0, 9216, '\p{ -In_misc_technical}', "");
-    Expect(1, 9216, '\p{^ -In_misc_technical}', "");
-    Expect(1, 9216, '\P{ -In_misc_technical}', "");
-    Expect(0, 9216, '\P{^ -In_misc_technical}', "");
-    Error('\p{:=__modi}');
-    Error('\P{:=__modi}');
+    Expect(1, 9215, '\p{  in_Misc_Technical}', "");
+    Expect(0, 9215, '\p{^  in_Misc_Technical}', "");
+    Expect(0, 9215, '\P{  in_Misc_Technical}', "");
+    Expect(1, 9215, '\P{^  in_Misc_Technical}', "");
+    Expect(0, 9216, '\p{  in_Misc_Technical}', "");
+    Expect(1, 9216, '\p{^  in_Misc_Technical}', "");
+    Expect(1, 9216, '\P{  in_Misc_Technical}', "");
+    Expect(0, 9216, '\P{^  in_Misc_Technical}', "");
+    Error('\p{	/a/modi}');
+    Error('\P{	/a/modi}');
     Expect(1, 71257, '\p{modi}', "");
     Expect(0, 71257, '\p{^modi}', "");
     Expect(0, 71257, '\P{modi}', "");
@@ -112665,16 +113801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71258, '\p{^modi}', "");
     Expect(1, 71258, '\P{modi}', "");
     Expect(0, 71258, '\P{^modi}', "");
-    Expect(1, 71257, '\p{_ modi}', "");
-    Expect(0, 71257, '\p{^_ modi}', "");
-    Expect(0, 71257, '\P{_ modi}', "");
-    Expect(1, 71257, '\P{^_ modi}', "");
-    Expect(0, 71258, '\p{_ modi}', "");
-    Expect(1, 71258, '\p{^_ modi}', "");
-    Expect(1, 71258, '\P{_ modi}', "");
-    Expect(0, 71258, '\P{^_ modi}', "");
-    Error('\p{:=	Is_Modi}');
-    Error('\P{:=	Is_Modi}');
+    Expect(1, 71257, '\p{-Modi}', "");
+    Expect(0, 71257, '\p{^-Modi}', "");
+    Expect(0, 71257, '\P{-Modi}', "");
+    Expect(1, 71257, '\P{^-Modi}', "");
+    Expect(0, 71258, '\p{-Modi}', "");
+    Expect(1, 71258, '\p{^-Modi}', "");
+    Expect(1, 71258, '\P{-Modi}', "");
+    Expect(0, 71258, '\P{^-Modi}', "");
+    Error('\p{	/a/Is_modi}');
+    Error('\P{	/a/Is_modi}');
     Expect(1, 71257, '\p{ismodi}', "");
     Expect(0, 71257, '\p{^ismodi}', "");
     Expect(0, 71257, '\P{ismodi}', "");
@@ -112683,16 +113819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71258, '\p{^ismodi}', "");
     Expect(1, 71258, '\P{ismodi}', "");
     Expect(0, 71258, '\P{^ismodi}', "");
-    Expect(1, 71257, '\p{  Is_Modi}', "");
-    Expect(0, 71257, '\p{^  Is_Modi}', "");
-    Expect(0, 71257, '\P{  Is_Modi}', "");
-    Expect(1, 71257, '\P{^  Is_Modi}', "");
-    Expect(0, 71258, '\p{  Is_Modi}', "");
-    Expect(1, 71258, '\p{^  Is_Modi}', "");
-    Expect(1, 71258, '\P{  Is_Modi}', "");
-    Expect(0, 71258, '\P{^  Is_Modi}', "");
-    Error('\p{_/a/modifier_letter}');
-    Error('\P{_/a/modifier_letter}');
+    Expect(1, 71257, '\p{_-is_Modi}', "");
+    Expect(0, 71257, '\p{^_-is_Modi}', "");
+    Expect(0, 71257, '\P{_-is_Modi}', "");
+    Expect(1, 71257, '\P{^_-is_Modi}', "");
+    Expect(0, 71258, '\p{_-is_Modi}', "");
+    Expect(1, 71258, '\p{^_-is_Modi}', "");
+    Expect(1, 71258, '\P{_-is_Modi}', "");
+    Expect(0, 71258, '\P{^_-is_Modi}', "");
+    Error('\p{_modifier_Letter:=}');
+    Error('\P{_modifier_Letter:=}');
     Expect(1, 125259, '\p{modifierletter}', "");
     Expect(0, 125259, '\p{^modifierletter}', "");
     Expect(0, 125259, '\P{modifierletter}', "");
@@ -112701,16 +113837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125260, '\p{^modifierletter}', "");
     Expect(1, 125260, '\P{modifierletter}', "");
     Expect(0, 125260, '\P{^modifierletter}', "");
-    Expect(1, 125259, '\p{Modifier_Letter}', "");
-    Expect(0, 125259, '\p{^Modifier_Letter}', "");
-    Expect(0, 125259, '\P{Modifier_Letter}', "");
-    Expect(1, 125259, '\P{^Modifier_Letter}', "");
-    Expect(0, 125260, '\p{Modifier_Letter}', "");
-    Expect(1, 125260, '\p{^Modifier_Letter}', "");
-    Expect(1, 125260, '\P{Modifier_Letter}', "");
-    Expect(0, 125260, '\P{^Modifier_Letter}', "");
-    Error('\p{_/a/Is_modifier_Letter}');
-    Error('\P{_/a/Is_modifier_Letter}');
+    Expect(1, 125259, '\p{_	modifier_LETTER}', "");
+    Expect(0, 125259, '\p{^_	modifier_LETTER}', "");
+    Expect(0, 125259, '\P{_	modifier_LETTER}', "");
+    Expect(1, 125259, '\P{^_	modifier_LETTER}', "");
+    Expect(0, 125260, '\p{_	modifier_LETTER}', "");
+    Expect(1, 125260, '\p{^_	modifier_LETTER}', "");
+    Expect(1, 125260, '\P{_	modifier_LETTER}', "");
+    Expect(0, 125260, '\P{^_	modifier_LETTER}', "");
+    Error('\p{:=	_Is_modifier_Letter}');
+    Error('\P{:=	_Is_modifier_Letter}');
     Expect(1, 125259, '\p{ismodifierletter}', "");
     Expect(0, 125259, '\p{^ismodifierletter}', "");
     Expect(0, 125259, '\P{ismodifierletter}', "");
@@ -112719,16 +113855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125260, '\p{^ismodifierletter}', "");
     Expect(1, 125260, '\P{ismodifierletter}', "");
     Expect(0, 125260, '\P{^ismodifierletter}', "");
-    Expect(1, 125259, '\p{		is_Modifier_Letter}', "");
-    Expect(0, 125259, '\p{^		is_Modifier_Letter}', "");
-    Expect(0, 125259, '\P{		is_Modifier_Letter}', "");
-    Expect(1, 125259, '\P{^		is_Modifier_Letter}', "");
-    Expect(0, 125260, '\p{		is_Modifier_Letter}', "");
-    Expect(1, 125260, '\p{^		is_Modifier_Letter}', "");
-    Expect(1, 125260, '\P{		is_Modifier_Letter}', "");
-    Expect(0, 125260, '\P{^		is_Modifier_Letter}', "");
-    Error('\p{	/a/Lm}');
-    Error('\P{	/a/Lm}');
+    Expect(1, 125259, '\p{Is_Modifier_letter}', "");
+    Expect(0, 125259, '\p{^Is_Modifier_letter}', "");
+    Expect(0, 125259, '\P{Is_Modifier_letter}', "");
+    Expect(1, 125259, '\P{^Is_Modifier_letter}', "");
+    Expect(0, 125260, '\p{Is_Modifier_letter}', "");
+    Expect(1, 125260, '\p{^Is_Modifier_letter}', "");
+    Expect(1, 125260, '\P{Is_Modifier_letter}', "");
+    Expect(0, 125260, '\P{^Is_Modifier_letter}', "");
+    Error('\p{- Lm/a/}');
+    Error('\P{- Lm/a/}');
     Expect(1, 125259, '\p{lm}', "");
     Expect(0, 125259, '\p{^lm}', "");
     Expect(0, 125259, '\P{lm}', "");
@@ -112737,16 +113873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125260, '\p{^lm}', "");
     Expect(1, 125260, '\P{lm}', "");
     Expect(0, 125260, '\P{^lm}', "");
-    Expect(1, 125259, '\p{ Lm}', "");
-    Expect(0, 125259, '\p{^ Lm}', "");
-    Expect(0, 125259, '\P{ Lm}', "");
-    Expect(1, 125259, '\P{^ Lm}', "");
-    Expect(0, 125260, '\p{ Lm}', "");
-    Expect(1, 125260, '\p{^ Lm}', "");
-    Expect(1, 125260, '\P{ Lm}', "");
-    Expect(0, 125260, '\P{^ Lm}', "");
-    Error('\p{-	Is_LM:=}');
-    Error('\P{-	Is_LM:=}');
+    Expect(1, 125259, '\p{	LM}', "");
+    Expect(0, 125259, '\p{^	LM}', "");
+    Expect(0, 125259, '\P{	LM}', "");
+    Expect(1, 125259, '\P{^	LM}', "");
+    Expect(0, 125260, '\p{	LM}', "");
+    Expect(1, 125260, '\p{^	LM}', "");
+    Expect(1, 125260, '\P{	LM}', "");
+    Expect(0, 125260, '\P{^	LM}', "");
+    Error('\p{/a/__Is_LM}');
+    Error('\P{/a/__Is_LM}');
     Expect(1, 125259, '\p{islm}', "");
     Expect(0, 125259, '\p{^islm}', "");
     Expect(0, 125259, '\P{islm}', "");
@@ -112755,16 +113891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125260, '\p{^islm}', "");
     Expect(1, 125260, '\P{islm}', "");
     Expect(0, 125260, '\P{^islm}', "");
-    Expect(1, 125259, '\p{_	Is_Lm}', "");
-    Expect(0, 125259, '\p{^_	Is_Lm}', "");
-    Expect(0, 125259, '\P{_	Is_Lm}', "");
-    Expect(1, 125259, '\P{^_	Is_Lm}', "");
-    Expect(0, 125260, '\p{_	Is_Lm}', "");
-    Expect(1, 125260, '\p{^_	Is_Lm}', "");
-    Expect(1, 125260, '\P{_	Is_Lm}', "");
-    Expect(0, 125260, '\P{^_	Is_Lm}', "");
-    Error('\p{_:=Modifier_SYMBOL}');
-    Error('\P{_:=Modifier_SYMBOL}');
+    Expect(1, 125259, '\p{	-Is_Lm}', "");
+    Expect(0, 125259, '\p{^	-Is_Lm}', "");
+    Expect(0, 125259, '\P{	-Is_Lm}', "");
+    Expect(1, 125259, '\P{^	-Is_Lm}', "");
+    Expect(0, 125260, '\p{	-Is_Lm}', "");
+    Expect(1, 125260, '\p{^	-Is_Lm}', "");
+    Expect(1, 125260, '\P{	-Is_Lm}', "");
+    Expect(0, 125260, '\P{^	-Is_Lm}', "");
+    Error('\p{:=- Modifier_SYMBOL}');
+    Error('\P{:=- Modifier_SYMBOL}');
     Expect(1, 127999, '\p{modifiersymbol}', "");
     Expect(0, 127999, '\p{^modifiersymbol}', "");
     Expect(0, 127999, '\P{modifiersymbol}', "");
@@ -112773,16 +113909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^modifiersymbol}', "");
     Expect(1, 128000, '\P{modifiersymbol}', "");
     Expect(0, 128000, '\P{^modifiersymbol}', "");
-    Expect(1, 127999, '\p{_-MODIFIER_symbol}', "");
-    Expect(0, 127999, '\p{^_-MODIFIER_symbol}', "");
-    Expect(0, 127999, '\P{_-MODIFIER_symbol}', "");
-    Expect(1, 127999, '\P{^_-MODIFIER_symbol}', "");
-    Expect(0, 128000, '\p{_-MODIFIER_symbol}', "");
-    Expect(1, 128000, '\p{^_-MODIFIER_symbol}', "");
-    Expect(1, 128000, '\P{_-MODIFIER_symbol}', "");
-    Expect(0, 128000, '\P{^_-MODIFIER_symbol}', "");
-    Error('\p{:=Is_modifier_Symbol}');
-    Error('\P{:=Is_modifier_Symbol}');
+    Expect(1, 127999, '\p{-modifier_symbol}', "");
+    Expect(0, 127999, '\p{^-modifier_symbol}', "");
+    Expect(0, 127999, '\P{-modifier_symbol}', "");
+    Expect(1, 127999, '\P{^-modifier_symbol}', "");
+    Expect(0, 128000, '\p{-modifier_symbol}', "");
+    Expect(1, 128000, '\p{^-modifier_symbol}', "");
+    Expect(1, 128000, '\P{-modifier_symbol}', "");
+    Expect(0, 128000, '\P{^-modifier_symbol}', "");
+    Error('\p{		IS_modifier_Symbol/a/}');
+    Error('\P{		IS_modifier_Symbol/a/}');
     Expect(1, 127999, '\p{ismodifiersymbol}', "");
     Expect(0, 127999, '\p{^ismodifiersymbol}', "");
     Expect(0, 127999, '\P{ismodifiersymbol}', "");
@@ -112791,16 +113927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^ismodifiersymbol}', "");
     Expect(1, 128000, '\P{ismodifiersymbol}', "");
     Expect(0, 128000, '\P{^ismodifiersymbol}', "");
-    Expect(1, 127999, '\p{	_is_modifier_symbol}', "");
-    Expect(0, 127999, '\p{^	_is_modifier_symbol}', "");
-    Expect(0, 127999, '\P{	_is_modifier_symbol}', "");
-    Expect(1, 127999, '\P{^	_is_modifier_symbol}', "");
-    Expect(0, 128000, '\p{	_is_modifier_symbol}', "");
-    Expect(1, 128000, '\p{^	_is_modifier_symbol}', "");
-    Expect(1, 128000, '\P{	_is_modifier_symbol}', "");
-    Expect(0, 128000, '\P{^	_is_modifier_symbol}', "");
-    Error('\p{-:=Sk}');
-    Error('\P{-:=Sk}');
+    Expect(1, 127999, '\p{_	Is_Modifier_Symbol}', "");
+    Expect(0, 127999, '\p{^_	Is_Modifier_Symbol}', "");
+    Expect(0, 127999, '\P{_	Is_Modifier_Symbol}', "");
+    Expect(1, 127999, '\P{^_	Is_Modifier_Symbol}', "");
+    Expect(0, 128000, '\p{_	Is_Modifier_Symbol}', "");
+    Expect(1, 128000, '\p{^_	Is_Modifier_Symbol}', "");
+    Expect(1, 128000, '\P{_	Is_Modifier_Symbol}', "");
+    Expect(0, 128000, '\P{^_	Is_Modifier_Symbol}', "");
+    Error('\p{	 sk/a/}');
+    Error('\P{	 sk/a/}');
     Expect(1, 127999, '\p{sk}', "");
     Expect(0, 127999, '\p{^sk}', "");
     Expect(0, 127999, '\P{sk}', "");
@@ -112809,16 +113945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^sk}', "");
     Expect(1, 128000, '\P{sk}', "");
     Expect(0, 128000, '\P{^sk}', "");
-    Expect(1, 127999, '\p{_-SK}', "");
-    Expect(0, 127999, '\p{^_-SK}', "");
-    Expect(0, 127999, '\P{_-SK}', "");
-    Expect(1, 127999, '\P{^_-SK}', "");
-    Expect(0, 128000, '\p{_-SK}', "");
-    Expect(1, 128000, '\p{^_-SK}', "");
-    Expect(1, 128000, '\P{_-SK}', "");
-    Expect(0, 128000, '\P{^_-SK}', "");
-    Error('\p{:=	-Is_SK}');
-    Error('\P{:=	-Is_SK}');
+    Expect(1, 127999, '\p{	sk}', "");
+    Expect(0, 127999, '\p{^	sk}', "");
+    Expect(0, 127999, '\P{	sk}', "");
+    Expect(1, 127999, '\P{^	sk}', "");
+    Expect(0, 128000, '\p{	sk}', "");
+    Expect(1, 128000, '\p{^	sk}', "");
+    Expect(1, 128000, '\P{	sk}', "");
+    Expect(0, 128000, '\P{^	sk}', "");
+    Error('\p{ IS_Sk:=}');
+    Error('\P{ IS_Sk:=}');
     Expect(1, 127999, '\p{issk}', "");
     Expect(0, 127999, '\p{^issk}', "");
     Expect(0, 127999, '\P{issk}', "");
@@ -112827,16 +113963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128000, '\p{^issk}', "");
     Expect(1, 128000, '\P{issk}', "");
     Expect(0, 128000, '\P{^issk}', "");
-    Expect(1, 127999, '\p{ IS_SK}', "");
-    Expect(0, 127999, '\p{^ IS_SK}', "");
-    Expect(0, 127999, '\P{ IS_SK}', "");
-    Expect(1, 127999, '\P{^ IS_SK}', "");
-    Expect(0, 128000, '\p{ IS_SK}', "");
-    Expect(1, 128000, '\p{^ IS_SK}', "");
-    Expect(1, 128000, '\P{ IS_SK}', "");
-    Expect(0, 128000, '\P{^ IS_SK}', "");
-    Error('\p{:= 	modifier_Tone_Letters}');
-    Error('\P{:= 	modifier_Tone_Letters}');
+    Expect(1, 127999, '\p{		is_Sk}', "");
+    Expect(0, 127999, '\p{^		is_Sk}', "");
+    Expect(0, 127999, '\P{		is_Sk}', "");
+    Expect(1, 127999, '\P{^		is_Sk}', "");
+    Expect(0, 128000, '\p{		is_Sk}', "");
+    Expect(1, 128000, '\p{^		is_Sk}', "");
+    Expect(1, 128000, '\P{		is_Sk}', "");
+    Expect(0, 128000, '\P{^		is_Sk}', "");
+    Error('\p{/a/ _Modifier_TONE_LETTERS}');
+    Error('\P{/a/ _Modifier_TONE_LETTERS}');
     Expect(1, 42783, '\p{modifiertoneletters}', "");
     Expect(0, 42783, '\p{^modifiertoneletters}', "");
     Expect(0, 42783, '\P{modifiertoneletters}', "");
@@ -112845,16 +113981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42784, '\p{^modifiertoneletters}', "");
     Expect(1, 42784, '\P{modifiertoneletters}', "");
     Expect(0, 42784, '\P{^modifiertoneletters}', "");
-    Expect(1, 42783, '\p{	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42783, '\p{^	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42783, '\P{	Modifier_Tone_LETTERS}', "");
-    Expect(1, 42783, '\P{^	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42784, '\p{	Modifier_Tone_LETTERS}', "");
-    Expect(1, 42784, '\p{^	Modifier_Tone_LETTERS}', "");
-    Expect(1, 42784, '\P{	Modifier_Tone_LETTERS}', "");
-    Expect(0, 42784, '\P{^	Modifier_Tone_LETTERS}', "");
-    Error('\p{ :=is_Modifier_Tone_letters}');
-    Error('\P{ :=is_Modifier_Tone_letters}');
+    Expect(1, 42783, '\p{_-Modifier_Tone_letters}', "");
+    Expect(0, 42783, '\p{^_-Modifier_Tone_letters}', "");
+    Expect(0, 42783, '\P{_-Modifier_Tone_letters}', "");
+    Expect(1, 42783, '\P{^_-Modifier_Tone_letters}', "");
+    Expect(0, 42784, '\p{_-Modifier_Tone_letters}', "");
+    Expect(1, 42784, '\p{^_-Modifier_Tone_letters}', "");
+    Expect(1, 42784, '\P{_-Modifier_Tone_letters}', "");
+    Expect(0, 42784, '\P{^_-Modifier_Tone_letters}', "");
+    Error('\p{:=		Is_Modifier_TONE_letters}');
+    Error('\P{:=		Is_Modifier_TONE_letters}');
     Expect(1, 42783, '\p{ismodifiertoneletters}', "");
     Expect(0, 42783, '\p{^ismodifiertoneletters}', "");
     Expect(0, 42783, '\P{ismodifiertoneletters}', "");
@@ -112863,16 +113999,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42784, '\p{^ismodifiertoneletters}', "");
     Expect(1, 42784, '\P{ismodifiertoneletters}', "");
     Expect(0, 42784, '\P{^ismodifiertoneletters}', "");
-    Expect(1, 42783, '\p{ _Is_MODIFIER_TONE_letters}', "");
-    Expect(0, 42783, '\p{^ _Is_MODIFIER_TONE_letters}', "");
-    Expect(0, 42783, '\P{ _Is_MODIFIER_TONE_letters}', "");
-    Expect(1, 42783, '\P{^ _Is_MODIFIER_TONE_letters}', "");
-    Expect(0, 42784, '\p{ _Is_MODIFIER_TONE_letters}', "");
-    Expect(1, 42784, '\p{^ _Is_MODIFIER_TONE_letters}', "");
-    Expect(1, 42784, '\P{ _Is_MODIFIER_TONE_letters}', "");
-    Expect(0, 42784, '\P{^ _Is_MODIFIER_TONE_letters}', "");
-    Error('\p{	In_Modifier_Tone_Letters:=}');
-    Error('\P{	In_Modifier_Tone_Letters:=}');
+    Expect(1, 42783, '\p{-is_Modifier_Tone_Letters}', "");
+    Expect(0, 42783, '\p{^-is_Modifier_Tone_Letters}', "");
+    Expect(0, 42783, '\P{-is_Modifier_Tone_Letters}', "");
+    Expect(1, 42783, '\P{^-is_Modifier_Tone_Letters}', "");
+    Expect(0, 42784, '\p{-is_Modifier_Tone_Letters}', "");
+    Expect(1, 42784, '\p{^-is_Modifier_Tone_Letters}', "");
+    Expect(1, 42784, '\P{-is_Modifier_Tone_Letters}', "");
+    Expect(0, 42784, '\P{^-is_Modifier_Tone_Letters}', "");
+    Error('\p{:=__In_modifier_Tone_letters}');
+    Error('\P{:=__In_modifier_Tone_letters}');
     Expect(1, 42783, '\p{inmodifiertoneletters}', "");
     Expect(0, 42783, '\p{^inmodifiertoneletters}', "");
     Expect(0, 42783, '\P{inmodifiertoneletters}', "");
@@ -112881,16 +114017,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 42784, '\p{^inmodifiertoneletters}', "");
     Expect(1, 42784, '\P{inmodifiertoneletters}', "");
     Expect(0, 42784, '\P{^inmodifiertoneletters}', "");
-    Expect(1, 42783, '\p{-In_modifier_Tone_LETTERS}', "");
-    Expect(0, 42783, '\p{^-In_modifier_Tone_LETTERS}', "");
-    Expect(0, 42783, '\P{-In_modifier_Tone_LETTERS}', "");
-    Expect(1, 42783, '\P{^-In_modifier_Tone_LETTERS}', "");
-    Expect(0, 42784, '\p{-In_modifier_Tone_LETTERS}', "");
-    Expect(1, 42784, '\p{^-In_modifier_Tone_LETTERS}', "");
-    Expect(1, 42784, '\P{-In_modifier_Tone_LETTERS}', "");
-    Expect(0, 42784, '\P{^-In_modifier_Tone_LETTERS}', "");
-    Error('\p{/a/-MONGOLIAN}');
-    Error('\P{/a/-MONGOLIAN}');
+    Expect(1, 42783, '\p{  In_modifier_TONE_Letters}', "");
+    Expect(0, 42783, '\p{^  In_modifier_TONE_Letters}', "");
+    Expect(0, 42783, '\P{  In_modifier_TONE_Letters}', "");
+    Expect(1, 42783, '\P{^  In_modifier_TONE_Letters}', "");
+    Expect(0, 42784, '\p{  In_modifier_TONE_Letters}', "");
+    Expect(1, 42784, '\p{^  In_modifier_TONE_Letters}', "");
+    Expect(1, 42784, '\P{  In_modifier_TONE_Letters}', "");
+    Expect(0, 42784, '\P{^  In_modifier_TONE_Letters}', "");
+    Error('\p{	/a/Mongolian}');
+    Error('\P{	/a/Mongolian}');
     Expect(1, 71276, '\p{mongolian}', "");
     Expect(0, 71276, '\p{^mongolian}', "");
     Expect(0, 71276, '\P{mongolian}', "");
@@ -112899,16 +114035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71277, '\p{^mongolian}', "");
     Expect(1, 71277, '\P{mongolian}', "");
     Expect(0, 71277, '\P{^mongolian}', "");
-    Expect(1, 71276, '\p{-	Mongolian}', "");
-    Expect(0, 71276, '\p{^-	Mongolian}', "");
-    Expect(0, 71276, '\P{-	Mongolian}', "");
-    Expect(1, 71276, '\P{^-	Mongolian}', "");
-    Expect(0, 71277, '\p{-	Mongolian}', "");
-    Expect(1, 71277, '\p{^-	Mongolian}', "");
-    Expect(1, 71277, '\P{-	Mongolian}', "");
-    Expect(0, 71277, '\P{^-	Mongolian}', "");
-    Error('\p{-/a/is_MONGOLIAN}');
-    Error('\P{-/a/is_MONGOLIAN}');
+    Expect(1, 71276, '\p{_ mongolian}', "");
+    Expect(0, 71276, '\p{^_ mongolian}', "");
+    Expect(0, 71276, '\P{_ mongolian}', "");
+    Expect(1, 71276, '\P{^_ mongolian}', "");
+    Expect(0, 71277, '\p{_ mongolian}', "");
+    Expect(1, 71277, '\p{^_ mongolian}', "");
+    Expect(1, 71277, '\P{_ mongolian}', "");
+    Expect(0, 71277, '\P{^_ mongolian}', "");
+    Error('\p{ Is_Mongolian/a/}');
+    Error('\P{ Is_Mongolian/a/}');
     Expect(1, 71276, '\p{ismongolian}', "");
     Expect(0, 71276, '\p{^ismongolian}', "");
     Expect(0, 71276, '\P{ismongolian}', "");
@@ -112917,16 +114053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71277, '\p{^ismongolian}', "");
     Expect(1, 71277, '\P{ismongolian}', "");
     Expect(0, 71277, '\P{^ismongolian}', "");
-    Expect(1, 71276, '\p{_Is_Mongolian}', "");
-    Expect(0, 71276, '\p{^_Is_Mongolian}', "");
-    Expect(0, 71276, '\P{_Is_Mongolian}', "");
-    Expect(1, 71276, '\P{^_Is_Mongolian}', "");
-    Expect(0, 71277, '\p{_Is_Mongolian}', "");
-    Expect(1, 71277, '\p{^_Is_Mongolian}', "");
-    Expect(1, 71277, '\P{_Is_Mongolian}', "");
-    Expect(0, 71277, '\P{^_Is_Mongolian}', "");
-    Error('\p{_:=mong}');
-    Error('\P{_:=mong}');
+    Expect(1, 71276, '\p{	Is_Mongolian}', "");
+    Expect(0, 71276, '\p{^	Is_Mongolian}', "");
+    Expect(0, 71276, '\P{	Is_Mongolian}', "");
+    Expect(1, 71276, '\P{^	Is_Mongolian}', "");
+    Expect(0, 71277, '\p{	Is_Mongolian}', "");
+    Expect(1, 71277, '\p{^	Is_Mongolian}', "");
+    Expect(1, 71277, '\P{	Is_Mongolian}', "");
+    Expect(0, 71277, '\P{^	Is_Mongolian}', "");
+    Error('\p{_/a/mong}');
+    Error('\P{_/a/mong}');
     Expect(1, 71276, '\p{mong}', "");
     Expect(0, 71276, '\p{^mong}', "");
     Expect(0, 71276, '\P{mong}', "");
@@ -112935,16 +114071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71277, '\p{^mong}', "");
     Expect(1, 71277, '\P{mong}', "");
     Expect(0, 71277, '\P{^mong}', "");
-    Expect(1, 71276, '\p{ MONG}', "");
-    Expect(0, 71276, '\p{^ MONG}', "");
-    Expect(0, 71276, '\P{ MONG}', "");
-    Expect(1, 71276, '\P{^ MONG}', "");
-    Expect(0, 71277, '\p{ MONG}', "");
-    Expect(1, 71277, '\p{^ MONG}', "");
-    Expect(1, 71277, '\P{ MONG}', "");
-    Expect(0, 71277, '\P{^ MONG}', "");
-    Error('\p{:=_-Is_mong}');
-    Error('\P{:=_-Is_mong}');
+    Expect(1, 71276, '\p{ mong}', "");
+    Expect(0, 71276, '\p{^ mong}', "");
+    Expect(0, 71276, '\P{ mong}', "");
+    Expect(1, 71276, '\P{^ mong}', "");
+    Expect(0, 71277, '\p{ mong}', "");
+    Expect(1, 71277, '\p{^ mong}', "");
+    Expect(1, 71277, '\P{ mong}', "");
+    Expect(0, 71277, '\P{^ mong}', "");
+    Error('\p{-	Is_MONG:=}');
+    Error('\P{-	Is_MONG:=}');
     Expect(1, 71276, '\p{ismong}', "");
     Expect(0, 71276, '\p{^ismong}', "");
     Expect(0, 71276, '\P{ismong}', "");
@@ -112953,16 +114089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71277, '\p{^ismong}', "");
     Expect(1, 71277, '\P{ismong}', "");
     Expect(0, 71277, '\P{^ismong}', "");
-    Expect(1, 71276, '\p{		Is_Mong}', "");
-    Expect(0, 71276, '\p{^		Is_Mong}', "");
-    Expect(0, 71276, '\P{		Is_Mong}', "");
-    Expect(1, 71276, '\P{^		Is_Mong}', "");
-    Expect(0, 71277, '\p{		Is_Mong}', "");
-    Expect(1, 71277, '\p{^		Is_Mong}', "");
-    Expect(1, 71277, '\P{		Is_Mong}', "");
-    Expect(0, 71277, '\P{^		Is_Mong}', "");
-    Error('\p{-_mongolian_Supplement:=}');
-    Error('\P{-_mongolian_Supplement:=}');
+    Expect(1, 71276, '\p{ -Is_Mong}', "");
+    Expect(0, 71276, '\p{^ -Is_Mong}', "");
+    Expect(0, 71276, '\P{ -Is_Mong}', "");
+    Expect(1, 71276, '\P{^ -Is_Mong}', "");
+    Expect(0, 71277, '\p{ -Is_Mong}', "");
+    Expect(1, 71277, '\p{^ -Is_Mong}', "");
+    Expect(1, 71277, '\P{ -Is_Mong}', "");
+    Expect(0, 71277, '\P{^ -Is_Mong}', "");
+    Error('\p{:=	MONGOLIAN_Supplement}');
+    Error('\P{:=	MONGOLIAN_Supplement}');
     Expect(1, 71295, '\p{mongoliansupplement}', "");
     Expect(0, 71295, '\p{^mongoliansupplement}', "");
     Expect(0, 71295, '\P{mongoliansupplement}', "");
@@ -112971,16 +114107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71296, '\p{^mongoliansupplement}', "");
     Expect(1, 71296, '\P{mongoliansupplement}', "");
     Expect(0, 71296, '\P{^mongoliansupplement}', "");
-    Expect(1, 71295, '\p{	-mongolian_Supplement}', "");
-    Expect(0, 71295, '\p{^	-mongolian_Supplement}', "");
-    Expect(0, 71295, '\P{	-mongolian_Supplement}', "");
-    Expect(1, 71295, '\P{^	-mongolian_Supplement}', "");
-    Expect(0, 71296, '\p{	-mongolian_Supplement}', "");
-    Expect(1, 71296, '\p{^	-mongolian_Supplement}', "");
-    Expect(1, 71296, '\P{	-mongolian_Supplement}', "");
-    Expect(0, 71296, '\P{^	-mongolian_Supplement}', "");
-    Error('\p{/a/IS_mongolian_Supplement}');
-    Error('\P{/a/IS_mongolian_Supplement}');
+    Expect(1, 71295, '\p{	-Mongolian_Supplement}', "");
+    Expect(0, 71295, '\p{^	-Mongolian_Supplement}', "");
+    Expect(0, 71295, '\P{	-Mongolian_Supplement}', "");
+    Expect(1, 71295, '\P{^	-Mongolian_Supplement}', "");
+    Expect(0, 71296, '\p{	-Mongolian_Supplement}', "");
+    Expect(1, 71296, '\p{^	-Mongolian_Supplement}', "");
+    Expect(1, 71296, '\P{	-Mongolian_Supplement}', "");
+    Expect(0, 71296, '\P{^	-Mongolian_Supplement}', "");
+    Error('\p{_Is_MONGOLIAN_Supplement/a/}');
+    Error('\P{_Is_MONGOLIAN_Supplement/a/}');
     Expect(1, 71295, '\p{ismongoliansupplement}', "");
     Expect(0, 71295, '\p{^ismongoliansupplement}', "");
     Expect(0, 71295, '\P{ismongoliansupplement}', "");
@@ -112989,16 +114125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71296, '\p{^ismongoliansupplement}', "");
     Expect(1, 71296, '\P{ismongoliansupplement}', "");
     Expect(0, 71296, '\P{^ismongoliansupplement}', "");
-    Expect(1, 71295, '\p{_Is_Mongolian_supplement}', "");
-    Expect(0, 71295, '\p{^_Is_Mongolian_supplement}', "");
-    Expect(0, 71295, '\P{_Is_Mongolian_supplement}', "");
-    Expect(1, 71295, '\P{^_Is_Mongolian_supplement}', "");
-    Expect(0, 71296, '\p{_Is_Mongolian_supplement}', "");
-    Expect(1, 71296, '\p{^_Is_Mongolian_supplement}', "");
-    Expect(1, 71296, '\P{_Is_Mongolian_supplement}', "");
-    Expect(0, 71296, '\P{^_Is_Mongolian_supplement}', "");
-    Error('\p{:=_	in_Mongolian_SUPPLEMENT}');
-    Error('\P{:=_	in_Mongolian_SUPPLEMENT}');
+    Expect(1, 71295, '\p{	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(0, 71295, '\p{^	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(0, 71295, '\P{	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(1, 71295, '\P{^	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(0, 71296, '\p{	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(1, 71296, '\p{^	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(1, 71296, '\P{	_IS_Mongolian_SUPPLEMENT}', "");
+    Expect(0, 71296, '\P{^	_IS_Mongolian_SUPPLEMENT}', "");
+    Error('\p{	in_Mongolian_Supplement/a/}');
+    Error('\P{	in_Mongolian_Supplement/a/}');
     Expect(1, 71295, '\p{inmongoliansupplement}', "");
     Expect(0, 71295, '\p{^inmongoliansupplement}', "");
     Expect(0, 71295, '\P{inmongoliansupplement}', "");
@@ -113007,16 +114143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71296, '\p{^inmongoliansupplement}', "");
     Expect(1, 71296, '\P{inmongoliansupplement}', "");
     Expect(0, 71296, '\P{^inmongoliansupplement}', "");
-    Expect(1, 71295, '\p{ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(0, 71295, '\p{^ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(0, 71295, '\P{ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(1, 71295, '\P{^ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(0, 71296, '\p{ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(1, 71296, '\p{^ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(1, 71296, '\P{ 	In_mongolian_SUPPLEMENT}', "");
-    Expect(0, 71296, '\P{^ 	In_mongolian_SUPPLEMENT}', "");
-    Error('\p{:= Mongolian_Sup}');
-    Error('\P{:= Mongolian_Sup}');
+    Expect(1, 71295, '\p{	-IN_MONGOLIAN_Supplement}', "");
+    Expect(0, 71295, '\p{^	-IN_MONGOLIAN_Supplement}', "");
+    Expect(0, 71295, '\P{	-IN_MONGOLIAN_Supplement}', "");
+    Expect(1, 71295, '\P{^	-IN_MONGOLIAN_Supplement}', "");
+    Expect(0, 71296, '\p{	-IN_MONGOLIAN_Supplement}', "");
+    Expect(1, 71296, '\p{^	-IN_MONGOLIAN_Supplement}', "");
+    Expect(1, 71296, '\P{	-IN_MONGOLIAN_Supplement}', "");
+    Expect(0, 71296, '\P{^	-IN_MONGOLIAN_Supplement}', "");
+    Error('\p{_Mongolian_Sup:=}');
+    Error('\P{_Mongolian_Sup:=}');
     Expect(1, 71295, '\p{mongoliansup}', "");
     Expect(0, 71295, '\p{^mongoliansup}', "");
     Expect(0, 71295, '\P{mongoliansup}', "");
@@ -113025,16 +114161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71296, '\p{^mongoliansup}', "");
     Expect(1, 71296, '\P{mongoliansup}', "");
     Expect(0, 71296, '\P{^mongoliansup}', "");
-    Expect(1, 71295, '\p{-	Mongolian_SUP}', "");
-    Expect(0, 71295, '\p{^-	Mongolian_SUP}', "");
-    Expect(0, 71295, '\P{-	Mongolian_SUP}', "");
-    Expect(1, 71295, '\P{^-	Mongolian_SUP}', "");
-    Expect(0, 71296, '\p{-	Mongolian_SUP}', "");
-    Expect(1, 71296, '\p{^-	Mongolian_SUP}', "");
-    Expect(1, 71296, '\P{-	Mongolian_SUP}', "");
-    Expect(0, 71296, '\P{^-	Mongolian_SUP}', "");
-    Error('\p{/a/__is_MONGOLIAN_sup}');
-    Error('\P{/a/__is_MONGOLIAN_sup}');
+    Expect(1, 71295, '\p{-MONGOLIAN_SUP}', "");
+    Expect(0, 71295, '\p{^-MONGOLIAN_SUP}', "");
+    Expect(0, 71295, '\P{-MONGOLIAN_SUP}', "");
+    Expect(1, 71295, '\P{^-MONGOLIAN_SUP}', "");
+    Expect(0, 71296, '\p{-MONGOLIAN_SUP}', "");
+    Expect(1, 71296, '\p{^-MONGOLIAN_SUP}', "");
+    Expect(1, 71296, '\P{-MONGOLIAN_SUP}', "");
+    Expect(0, 71296, '\P{^-MONGOLIAN_SUP}', "");
+    Error('\p{--IS_MONGOLIAN_Sup/a/}');
+    Error('\P{--IS_MONGOLIAN_Sup/a/}');
     Expect(1, 71295, '\p{ismongoliansup}', "");
     Expect(0, 71295, '\p{^ismongoliansup}', "");
     Expect(0, 71295, '\P{ismongoliansup}', "");
@@ -113043,16 +114179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71296, '\p{^ismongoliansup}', "");
     Expect(1, 71296, '\P{ismongoliansup}', "");
     Expect(0, 71296, '\P{^ismongoliansup}', "");
-    Expect(1, 71295, '\p{-Is_Mongolian_Sup}', "");
-    Expect(0, 71295, '\p{^-Is_Mongolian_Sup}', "");
-    Expect(0, 71295, '\P{-Is_Mongolian_Sup}', "");
-    Expect(1, 71295, '\P{^-Is_Mongolian_Sup}', "");
-    Expect(0, 71296, '\p{-Is_Mongolian_Sup}', "");
-    Expect(1, 71296, '\p{^-Is_Mongolian_Sup}', "");
-    Expect(1, 71296, '\P{-Is_Mongolian_Sup}', "");
-    Expect(0, 71296, '\P{^-Is_Mongolian_Sup}', "");
-    Error('\p{-_In_Mongolian_Sup:=}');
-    Error('\P{-_In_Mongolian_Sup:=}');
+    Expect(1, 71295, '\p{	is_mongolian_SUP}', "");
+    Expect(0, 71295, '\p{^	is_mongolian_SUP}', "");
+    Expect(0, 71295, '\P{	is_mongolian_SUP}', "");
+    Expect(1, 71295, '\P{^	is_mongolian_SUP}', "");
+    Expect(0, 71296, '\p{	is_mongolian_SUP}', "");
+    Expect(1, 71296, '\p{^	is_mongolian_SUP}', "");
+    Expect(1, 71296, '\P{	is_mongolian_SUP}', "");
+    Expect(0, 71296, '\P{^	is_mongolian_SUP}', "");
+    Error('\p{--IN_MONGOLIAN_Sup/a/}');
+    Error('\P{--IN_MONGOLIAN_Sup/a/}');
     Expect(1, 71295, '\p{inmongoliansup}', "");
     Expect(0, 71295, '\p{^inmongoliansup}', "");
     Expect(0, 71295, '\P{inmongoliansup}', "");
@@ -113061,16 +114197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 71296, '\p{^inmongoliansup}', "");
     Expect(1, 71296, '\P{inmongoliansup}', "");
     Expect(0, 71296, '\P{^inmongoliansup}', "");
-    Expect(1, 71295, '\p{- In_MONGOLIAN_Sup}', "");
-    Expect(0, 71295, '\p{^- In_MONGOLIAN_Sup}', "");
-    Expect(0, 71295, '\P{- In_MONGOLIAN_Sup}', "");
-    Expect(1, 71295, '\P{^- In_MONGOLIAN_Sup}', "");
-    Expect(0, 71296, '\p{- In_MONGOLIAN_Sup}', "");
-    Expect(1, 71296, '\p{^- In_MONGOLIAN_Sup}', "");
-    Expect(1, 71296, '\P{- In_MONGOLIAN_Sup}', "");
-    Expect(0, 71296, '\P{^- In_MONGOLIAN_Sup}', "");
-    Error('\p{ MRO:=}');
-    Error('\P{ MRO:=}');
+    Expect(1, 71295, '\p{	-In_Mongolian_sup}', "");
+    Expect(0, 71295, '\p{^	-In_Mongolian_sup}', "");
+    Expect(0, 71295, '\P{	-In_Mongolian_sup}', "");
+    Expect(1, 71295, '\P{^	-In_Mongolian_sup}', "");
+    Expect(0, 71296, '\p{	-In_Mongolian_sup}', "");
+    Expect(1, 71296, '\p{^	-In_Mongolian_sup}', "");
+    Expect(1, 71296, '\P{	-In_Mongolian_sup}', "");
+    Expect(0, 71296, '\P{^	-In_Mongolian_sup}', "");
+    Error('\p{ -mro/a/}');
+    Error('\P{ -mro/a/}');
     Expect(1, 92783, '\p{mro}', "");
     Expect(0, 92783, '\p{^mro}', "");
     Expect(0, 92783, '\P{mro}', "");
@@ -113079,16 +114215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92784, '\p{^mro}', "");
     Expect(1, 92784, '\P{mro}', "");
     Expect(0, 92784, '\P{^mro}', "");
-    Expect(1, 92783, '\p{-MRO}', "");
-    Expect(0, 92783, '\p{^-MRO}', "");
-    Expect(0, 92783, '\P{-MRO}', "");
-    Expect(1, 92783, '\P{^-MRO}', "");
-    Expect(0, 92784, '\p{-MRO}', "");
-    Expect(1, 92784, '\p{^-MRO}', "");
-    Expect(1, 92784, '\P{-MRO}', "");
-    Expect(0, 92784, '\P{^-MRO}', "");
-    Error('\p{/a/ Is_MRO}');
-    Error('\P{/a/ Is_MRO}');
+    Expect(1, 92783, '\p{  MRO}', "");
+    Expect(0, 92783, '\p{^  MRO}', "");
+    Expect(0, 92783, '\P{  MRO}', "");
+    Expect(1, 92783, '\P{^  MRO}', "");
+    Expect(0, 92784, '\p{  MRO}', "");
+    Expect(1, 92784, '\p{^  MRO}', "");
+    Expect(1, 92784, '\P{  MRO}', "");
+    Expect(0, 92784, '\P{^  MRO}', "");
+    Error('\p{	_is_Mro:=}');
+    Error('\P{	_is_Mro:=}');
     Expect(1, 92783, '\p{ismro}', "");
     Expect(0, 92783, '\p{^ismro}', "");
     Expect(0, 92783, '\P{ismro}', "");
@@ -113097,16 +114233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92784, '\p{^ismro}', "");
     Expect(1, 92784, '\P{ismro}', "");
     Expect(0, 92784, '\P{^ismro}', "");
-    Expect(1, 92783, '\p{ _Is_mro}', "");
-    Expect(0, 92783, '\p{^ _Is_mro}', "");
-    Expect(0, 92783, '\P{ _Is_mro}', "");
-    Expect(1, 92783, '\P{^ _Is_mro}', "");
-    Expect(0, 92784, '\p{ _Is_mro}', "");
-    Expect(1, 92784, '\p{^ _Is_mro}', "");
-    Expect(1, 92784, '\P{ _Is_mro}', "");
-    Expect(0, 92784, '\P{^ _Is_mro}', "");
-    Error('\p{-:=MROO}');
-    Error('\P{-:=MROO}');
+    Expect(1, 92783, '\p{_Is_mro}', "");
+    Expect(0, 92783, '\p{^_Is_mro}', "");
+    Expect(0, 92783, '\P{_Is_mro}', "");
+    Expect(1, 92783, '\P{^_Is_mro}', "");
+    Expect(0, 92784, '\p{_Is_mro}', "");
+    Expect(1, 92784, '\p{^_Is_mro}', "");
+    Expect(1, 92784, '\P{_Is_mro}', "");
+    Expect(0, 92784, '\P{^_Is_mro}', "");
+    Error('\p{	/a/MROO}');
+    Error('\P{	/a/MROO}');
     Expect(1, 92783, '\p{mroo}', "");
     Expect(0, 92783, '\p{^mroo}', "");
     Expect(0, 92783, '\P{mroo}', "");
@@ -113115,16 +114251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92784, '\p{^mroo}', "");
     Expect(1, 92784, '\P{mroo}', "");
     Expect(0, 92784, '\P{^mroo}', "");
-    Expect(1, 92783, '\p{	 Mroo}', "");
-    Expect(0, 92783, '\p{^	 Mroo}', "");
-    Expect(0, 92783, '\P{	 Mroo}', "");
-    Expect(1, 92783, '\P{^	 Mroo}', "");
-    Expect(0, 92784, '\p{	 Mroo}', "");
-    Expect(1, 92784, '\p{^	 Mroo}', "");
-    Expect(1, 92784, '\P{	 Mroo}', "");
-    Expect(0, 92784, '\P{^	 Mroo}', "");
-    Error('\p{_:=Is_mroo}');
-    Error('\P{_:=Is_mroo}');
+    Expect(1, 92783, '\p{-Mroo}', "");
+    Expect(0, 92783, '\p{^-Mroo}', "");
+    Expect(0, 92783, '\P{-Mroo}', "");
+    Expect(1, 92783, '\P{^-Mroo}', "");
+    Expect(0, 92784, '\p{-Mroo}', "");
+    Expect(1, 92784, '\p{^-Mroo}', "");
+    Expect(1, 92784, '\P{-Mroo}', "");
+    Expect(0, 92784, '\P{^-Mroo}', "");
+    Error('\p{/a/-is_Mroo}');
+    Error('\P{/a/-is_Mroo}');
     Expect(1, 92783, '\p{ismroo}', "");
     Expect(0, 92783, '\p{^ismroo}', "");
     Expect(0, 92783, '\P{ismroo}', "");
@@ -113133,16 +114269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 92784, '\p{^ismroo}', "");
     Expect(1, 92784, '\P{ismroo}', "");
     Expect(0, 92784, '\P{^ismroo}', "");
-    Expect(1, 92783, '\p{-_is_MROO}', "");
-    Expect(0, 92783, '\p{^-_is_MROO}', "");
-    Expect(0, 92783, '\P{-_is_MROO}', "");
-    Expect(1, 92783, '\P{^-_is_MROO}', "");
-    Expect(0, 92784, '\p{-_is_MROO}', "");
-    Expect(1, 92784, '\p{^-_is_MROO}', "");
-    Expect(1, 92784, '\P{-_is_MROO}', "");
-    Expect(0, 92784, '\P{^-_is_MROO}', "");
-    Error('\p{:=-	multani}');
-    Error('\P{:=-	multani}');
+    Expect(1, 92783, '\p{_ Is_Mroo}', "");
+    Expect(0, 92783, '\p{^_ Is_Mroo}', "");
+    Expect(0, 92783, '\P{_ Is_Mroo}', "");
+    Expect(1, 92783, '\P{^_ Is_Mroo}', "");
+    Expect(0, 92784, '\p{_ Is_Mroo}', "");
+    Expect(1, 92784, '\p{^_ Is_Mroo}', "");
+    Expect(1, 92784, '\P{_ Is_Mroo}', "");
+    Expect(0, 92784, '\P{^_ Is_Mroo}', "");
+    Error('\p{	multani:=}');
+    Error('\P{	multani:=}');
     Expect(1, 70313, '\p{multani}', "");
     Expect(0, 70313, '\p{^multani}', "");
     Expect(0, 70313, '\P{multani}', "");
@@ -113151,16 +114287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70314, '\p{^multani}', "");
     Expect(1, 70314, '\P{multani}', "");
     Expect(0, 70314, '\P{^multani}', "");
-    Expect(1, 70313, '\p{--multani}', "");
-    Expect(0, 70313, '\p{^--multani}', "");
-    Expect(0, 70313, '\P{--multani}', "");
-    Expect(1, 70313, '\P{^--multani}', "");
-    Expect(0, 70314, '\p{--multani}', "");
-    Expect(1, 70314, '\p{^--multani}', "");
-    Expect(1, 70314, '\P{--multani}', "");
-    Expect(0, 70314, '\P{^--multani}', "");
-    Error('\p{-_Is_multani:=}');
-    Error('\P{-_Is_multani:=}');
+    Expect(1, 70313, '\p{ MULTANI}', "");
+    Expect(0, 70313, '\p{^ MULTANI}', "");
+    Expect(0, 70313, '\P{ MULTANI}', "");
+    Expect(1, 70313, '\P{^ MULTANI}', "");
+    Expect(0, 70314, '\p{ MULTANI}', "");
+    Expect(1, 70314, '\p{^ MULTANI}', "");
+    Expect(1, 70314, '\P{ MULTANI}', "");
+    Expect(0, 70314, '\P{^ MULTANI}', "");
+    Error('\p{/a/Is_Multani}');
+    Error('\P{/a/Is_Multani}');
     Expect(1, 70313, '\p{ismultani}', "");
     Expect(0, 70313, '\p{^ismultani}', "");
     Expect(0, 70313, '\P{ismultani}', "");
@@ -113169,16 +114305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70314, '\p{^ismultani}', "");
     Expect(1, 70314, '\P{ismultani}', "");
     Expect(0, 70314, '\P{^ismultani}', "");
-    Expect(1, 70313, '\p{-Is_Multani}', "");
-    Expect(0, 70313, '\p{^-Is_Multani}', "");
-    Expect(0, 70313, '\P{-Is_Multani}', "");
-    Expect(1, 70313, '\P{^-Is_Multani}', "");
-    Expect(0, 70314, '\p{-Is_Multani}', "");
-    Expect(1, 70314, '\p{^-Is_Multani}', "");
-    Expect(1, 70314, '\P{-Is_Multani}', "");
-    Expect(0, 70314, '\P{^-Is_Multani}', "");
-    Error('\p{	-MULT:=}');
-    Error('\P{	-MULT:=}');
+    Expect(1, 70313, '\p{  Is_MULTANI}', "");
+    Expect(0, 70313, '\p{^  Is_MULTANI}', "");
+    Expect(0, 70313, '\P{  Is_MULTANI}', "");
+    Expect(1, 70313, '\P{^  Is_MULTANI}', "");
+    Expect(0, 70314, '\p{  Is_MULTANI}', "");
+    Expect(1, 70314, '\p{^  Is_MULTANI}', "");
+    Expect(1, 70314, '\P{  Is_MULTANI}', "");
+    Expect(0, 70314, '\P{^  Is_MULTANI}', "");
+    Error('\p{--MULT:=}');
+    Error('\P{--MULT:=}');
     Expect(1, 70313, '\p{mult}', "");
     Expect(0, 70313, '\p{^mult}', "");
     Expect(0, 70313, '\P{mult}', "");
@@ -113187,16 +114323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70314, '\p{^mult}', "");
     Expect(1, 70314, '\P{mult}', "");
     Expect(0, 70314, '\P{^mult}', "");
-    Expect(1, 70313, '\p{	MULT}', "");
-    Expect(0, 70313, '\p{^	MULT}', "");
-    Expect(0, 70313, '\P{	MULT}', "");
-    Expect(1, 70313, '\P{^	MULT}', "");
-    Expect(0, 70314, '\p{	MULT}', "");
-    Expect(1, 70314, '\p{^	MULT}', "");
-    Expect(1, 70314, '\P{	MULT}', "");
-    Expect(0, 70314, '\P{^	MULT}', "");
-    Error('\p{_/a/Is_MULT}');
-    Error('\P{_/a/Is_MULT}');
+    Expect(1, 70313, '\p{	-Mult}', "");
+    Expect(0, 70313, '\p{^	-Mult}', "");
+    Expect(0, 70313, '\P{	-Mult}', "");
+    Expect(1, 70313, '\P{^	-Mult}', "");
+    Expect(0, 70314, '\p{	-Mult}', "");
+    Expect(1, 70314, '\p{^	-Mult}', "");
+    Expect(1, 70314, '\P{	-Mult}', "");
+    Expect(0, 70314, '\P{^	-Mult}', "");
+    Error('\p{_	Is_mult/a/}');
+    Error('\P{_	Is_mult/a/}');
     Expect(1, 70313, '\p{ismult}', "");
     Expect(0, 70313, '\p{^ismult}', "");
     Expect(0, 70313, '\P{ismult}', "");
@@ -113205,16 +114341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70314, '\p{^ismult}', "");
     Expect(1, 70314, '\P{ismult}', "");
     Expect(0, 70314, '\P{^ismult}', "");
-    Expect(1, 70313, '\p{ Is_Mult}', "");
-    Expect(0, 70313, '\p{^ Is_Mult}', "");
-    Expect(0, 70313, '\P{ Is_Mult}', "");
-    Expect(1, 70313, '\P{^ Is_Mult}', "");
-    Expect(0, 70314, '\p{ Is_Mult}', "");
-    Expect(1, 70314, '\p{^ Is_Mult}', "");
-    Expect(1, 70314, '\P{ Is_Mult}', "");
-    Expect(0, 70314, '\P{^ Is_Mult}', "");
-    Error('\p{/a/ _Musical_symbols}');
-    Error('\P{/a/ _Musical_symbols}');
+    Expect(1, 70313, '\p{_is_Mult}', "");
+    Expect(0, 70313, '\p{^_is_Mult}', "");
+    Expect(0, 70313, '\P{_is_Mult}', "");
+    Expect(1, 70313, '\P{^_is_Mult}', "");
+    Expect(0, 70314, '\p{_is_Mult}', "");
+    Expect(1, 70314, '\p{^_is_Mult}', "");
+    Expect(1, 70314, '\P{_is_Mult}', "");
+    Expect(0, 70314, '\P{^_is_Mult}', "");
+    Error('\p{/a/	-musical_symbols}');
+    Error('\P{/a/	-musical_symbols}');
     Expect(1, 119295, '\p{musicalsymbols}', "");
     Expect(0, 119295, '\p{^musicalsymbols}', "");
     Expect(0, 119295, '\P{musicalsymbols}', "");
@@ -113223,16 +114359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119296, '\p{^musicalsymbols}', "");
     Expect(1, 119296, '\P{musicalsymbols}', "");
     Expect(0, 119296, '\P{^musicalsymbols}', "");
-    Expect(1, 119295, '\p{  Musical_SYMBOLS}', "");
-    Expect(0, 119295, '\p{^  Musical_SYMBOLS}', "");
-    Expect(0, 119295, '\P{  Musical_SYMBOLS}', "");
-    Expect(1, 119295, '\P{^  Musical_SYMBOLS}', "");
-    Expect(0, 119296, '\p{  Musical_SYMBOLS}', "");
-    Expect(1, 119296, '\p{^  Musical_SYMBOLS}', "");
-    Expect(1, 119296, '\P{  Musical_SYMBOLS}', "");
-    Expect(0, 119296, '\P{^  Musical_SYMBOLS}', "");
-    Error('\p{:=	Is_MUSICAL_Symbols}');
-    Error('\P{:=	Is_MUSICAL_Symbols}');
+    Expect(1, 119295, '\p{ Musical_Symbols}', "");
+    Expect(0, 119295, '\p{^ Musical_Symbols}', "");
+    Expect(0, 119295, '\P{ Musical_Symbols}', "");
+    Expect(1, 119295, '\P{^ Musical_Symbols}', "");
+    Expect(0, 119296, '\p{ Musical_Symbols}', "");
+    Expect(1, 119296, '\p{^ Musical_Symbols}', "");
+    Expect(1, 119296, '\P{ Musical_Symbols}', "");
+    Expect(0, 119296, '\P{^ Musical_Symbols}', "");
+    Error('\p{/a/Is_Musical_Symbols}');
+    Error('\P{/a/Is_Musical_Symbols}');
     Expect(1, 119295, '\p{ismusicalsymbols}', "");
     Expect(0, 119295, '\p{^ismusicalsymbols}', "");
     Expect(0, 119295, '\P{ismusicalsymbols}', "");
@@ -113241,16 +114377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119296, '\p{^ismusicalsymbols}', "");
     Expect(1, 119296, '\P{ismusicalsymbols}', "");
     Expect(0, 119296, '\P{^ismusicalsymbols}', "");
-    Expect(1, 119295, '\p{-_Is_MUSICAL_Symbols}', "");
-    Expect(0, 119295, '\p{^-_Is_MUSICAL_Symbols}', "");
-    Expect(0, 119295, '\P{-_Is_MUSICAL_Symbols}', "");
-    Expect(1, 119295, '\P{^-_Is_MUSICAL_Symbols}', "");
-    Expect(0, 119296, '\p{-_Is_MUSICAL_Symbols}', "");
-    Expect(1, 119296, '\p{^-_Is_MUSICAL_Symbols}', "");
-    Expect(1, 119296, '\P{-_Is_MUSICAL_Symbols}', "");
-    Expect(0, 119296, '\P{^-_Is_MUSICAL_Symbols}', "");
-    Error('\p{ in_Musical_SYMBOLS/a/}');
-    Error('\P{ in_Musical_SYMBOLS/a/}');
+    Expect(1, 119295, '\p{	 Is_Musical_Symbols}', "");
+    Expect(0, 119295, '\p{^	 Is_Musical_Symbols}', "");
+    Expect(0, 119295, '\P{	 Is_Musical_Symbols}', "");
+    Expect(1, 119295, '\P{^	 Is_Musical_Symbols}', "");
+    Expect(0, 119296, '\p{	 Is_Musical_Symbols}', "");
+    Expect(1, 119296, '\p{^	 Is_Musical_Symbols}', "");
+    Expect(1, 119296, '\P{	 Is_Musical_Symbols}', "");
+    Expect(0, 119296, '\P{^	 Is_Musical_Symbols}', "");
+    Error('\p{/a/In_musical_Symbols}');
+    Error('\P{/a/In_musical_Symbols}');
     Expect(1, 119295, '\p{inmusicalsymbols}', "");
     Expect(0, 119295, '\p{^inmusicalsymbols}', "");
     Expect(0, 119295, '\P{inmusicalsymbols}', "");
@@ -113259,16 +114395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119296, '\p{^inmusicalsymbols}', "");
     Expect(1, 119296, '\P{inmusicalsymbols}', "");
     Expect(0, 119296, '\P{^inmusicalsymbols}', "");
-    Expect(1, 119295, '\p{ In_MUSICAL_symbols}', "");
-    Expect(0, 119295, '\p{^ In_MUSICAL_symbols}', "");
-    Expect(0, 119295, '\P{ In_MUSICAL_symbols}', "");
-    Expect(1, 119295, '\P{^ In_MUSICAL_symbols}', "");
-    Expect(0, 119296, '\p{ In_MUSICAL_symbols}', "");
-    Expect(1, 119296, '\p{^ In_MUSICAL_symbols}', "");
-    Expect(1, 119296, '\P{ In_MUSICAL_symbols}', "");
-    Expect(0, 119296, '\P{^ In_MUSICAL_symbols}', "");
-    Error('\p{/a/ _Music}');
-    Error('\P{/a/ _Music}');
+    Expect(1, 119295, '\p{ 	In_MUSICAL_symbols}', "");
+    Expect(0, 119295, '\p{^ 	In_MUSICAL_symbols}', "");
+    Expect(0, 119295, '\P{ 	In_MUSICAL_symbols}', "");
+    Expect(1, 119295, '\P{^ 	In_MUSICAL_symbols}', "");
+    Expect(0, 119296, '\p{ 	In_MUSICAL_symbols}', "");
+    Expect(1, 119296, '\p{^ 	In_MUSICAL_symbols}', "");
+    Expect(1, 119296, '\P{ 	In_MUSICAL_symbols}', "");
+    Expect(0, 119296, '\P{^ 	In_MUSICAL_symbols}', "");
+    Error('\p{:=_Music}');
+    Error('\P{:=_Music}');
     Expect(1, 119295, '\p{music}', "");
     Expect(0, 119295, '\p{^music}', "");
     Expect(0, 119295, '\P{music}', "");
@@ -113277,16 +114413,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119296, '\p{^music}', "");
     Expect(1, 119296, '\P{music}', "");
     Expect(0, 119296, '\P{^music}', "");
-    Expect(1, 119295, '\p{Music}', "");
-    Expect(0, 119295, '\p{^Music}', "");
-    Expect(0, 119295, '\P{Music}', "");
-    Expect(1, 119295, '\P{^Music}', "");
-    Expect(0, 119296, '\p{Music}', "");
-    Expect(1, 119296, '\p{^Music}', "");
-    Expect(1, 119296, '\P{Music}', "");
-    Expect(0, 119296, '\P{^Music}', "");
-    Error('\p{		is_MUSIC/a/}');
-    Error('\P{		is_MUSIC/a/}');
+    Expect(1, 119295, '\p{		Music}', "");
+    Expect(0, 119295, '\p{^		Music}', "");
+    Expect(0, 119295, '\P{		Music}', "");
+    Expect(1, 119295, '\P{^		Music}', "");
+    Expect(0, 119296, '\p{		Music}', "");
+    Expect(1, 119296, '\p{^		Music}', "");
+    Expect(1, 119296, '\P{		Music}', "");
+    Expect(0, 119296, '\P{^		Music}', "");
+    Error('\p{-IS_Music/a/}');
+    Error('\P{-IS_Music/a/}');
     Expect(1, 119295, '\p{ismusic}', "");
     Expect(0, 119295, '\p{^ismusic}', "");
     Expect(0, 119295, '\P{ismusic}', "");
@@ -113295,16 +114431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119296, '\p{^ismusic}', "");
     Expect(1, 119296, '\P{ismusic}', "");
     Expect(0, 119296, '\P{^ismusic}', "");
-    Expect(1, 119295, '\p{_ Is_MUSIC}', "");
-    Expect(0, 119295, '\p{^_ Is_MUSIC}', "");
-    Expect(0, 119295, '\P{_ Is_MUSIC}', "");
-    Expect(1, 119295, '\P{^_ Is_MUSIC}', "");
-    Expect(0, 119296, '\p{_ Is_MUSIC}', "");
-    Expect(1, 119296, '\p{^_ Is_MUSIC}', "");
-    Expect(1, 119296, '\P{_ Is_MUSIC}', "");
-    Expect(0, 119296, '\P{^_ Is_MUSIC}', "");
-    Error('\p{_/a/In_MUSIC}');
-    Error('\P{_/a/In_MUSIC}');
+    Expect(1, 119295, '\p{		IS_Music}', "");
+    Expect(0, 119295, '\p{^		IS_Music}', "");
+    Expect(0, 119295, '\P{		IS_Music}', "");
+    Expect(1, 119295, '\P{^		IS_Music}', "");
+    Expect(0, 119296, '\p{		IS_Music}', "");
+    Expect(1, 119296, '\p{^		IS_Music}', "");
+    Expect(1, 119296, '\P{		IS_Music}', "");
+    Expect(0, 119296, '\P{^		IS_Music}', "");
+    Error('\p{_:=IN_MUSIC}');
+    Error('\P{_:=IN_MUSIC}');
     Expect(1, 119295, '\p{inmusic}', "");
     Expect(0, 119295, '\p{^inmusic}', "");
     Expect(0, 119295, '\P{inmusic}', "");
@@ -113313,16 +114449,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 119296, '\p{^inmusic}', "");
     Expect(1, 119296, '\P{inmusic}', "");
     Expect(0, 119296, '\P{^inmusic}', "");
-    Expect(1, 119295, '\p{_	In_Music}', "");
-    Expect(0, 119295, '\p{^_	In_Music}', "");
-    Expect(0, 119295, '\P{_	In_Music}', "");
-    Expect(1, 119295, '\P{^_	In_Music}', "");
-    Expect(0, 119296, '\p{_	In_Music}', "");
-    Expect(1, 119296, '\p{^_	In_Music}', "");
-    Expect(1, 119296, '\P{_	In_Music}', "");
-    Expect(0, 119296, '\P{^_	In_Music}', "");
-    Error('\p{	MYANMAR/a/}');
-    Error('\P{	MYANMAR/a/}');
+    Expect(1, 119295, '\p{-	In_MUSIC}', "");
+    Expect(0, 119295, '\p{^-	In_MUSIC}', "");
+    Expect(0, 119295, '\P{-	In_MUSIC}', "");
+    Expect(1, 119295, '\P{^-	In_MUSIC}', "");
+    Expect(0, 119296, '\p{-	In_MUSIC}', "");
+    Expect(1, 119296, '\p{^-	In_MUSIC}', "");
+    Expect(1, 119296, '\P{-	In_MUSIC}', "");
+    Expect(0, 119296, '\P{^-	In_MUSIC}', "");
+    Error('\p{ -MYANMAR:=}');
+    Error('\P{ -MYANMAR:=}');
     Expect(1, 43647, '\p{myanmar}', "");
     Expect(0, 43647, '\p{^myanmar}', "");
     Expect(0, 43647, '\P{myanmar}', "");
@@ -113331,16 +114467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^myanmar}', "");
     Expect(1, 43648, '\P{myanmar}', "");
     Expect(0, 43648, '\P{^myanmar}', "");
-    Expect(1, 43647, '\p{	MYANMAR}', "");
-    Expect(0, 43647, '\p{^	MYANMAR}', "");
-    Expect(0, 43647, '\P{	MYANMAR}', "");
-    Expect(1, 43647, '\P{^	MYANMAR}', "");
-    Expect(0, 43648, '\p{	MYANMAR}', "");
-    Expect(1, 43648, '\p{^	MYANMAR}', "");
-    Expect(1, 43648, '\P{	MYANMAR}', "");
-    Expect(0, 43648, '\P{^	MYANMAR}', "");
-    Error('\p{_:=Is_MYANMAR}');
-    Error('\P{_:=Is_MYANMAR}');
+    Expect(1, 43647, '\p{	Myanmar}', "");
+    Expect(0, 43647, '\p{^	Myanmar}', "");
+    Expect(0, 43647, '\P{	Myanmar}', "");
+    Expect(1, 43647, '\P{^	Myanmar}', "");
+    Expect(0, 43648, '\p{	Myanmar}', "");
+    Expect(1, 43648, '\p{^	Myanmar}', "");
+    Expect(1, 43648, '\P{	Myanmar}', "");
+    Expect(0, 43648, '\P{^	Myanmar}', "");
+    Error('\p{/a/_IS_Myanmar}');
+    Error('\P{/a/_IS_Myanmar}');
     Expect(1, 43647, '\p{ismyanmar}', "");
     Expect(0, 43647, '\p{^ismyanmar}', "");
     Expect(0, 43647, '\P{ismyanmar}', "");
@@ -113349,16 +114485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^ismyanmar}', "");
     Expect(1, 43648, '\P{ismyanmar}', "");
     Expect(0, 43648, '\P{^ismyanmar}', "");
-    Expect(1, 43647, '\p{_	Is_MYANMAR}', "");
-    Expect(0, 43647, '\p{^_	Is_MYANMAR}', "");
-    Expect(0, 43647, '\P{_	Is_MYANMAR}', "");
-    Expect(1, 43647, '\P{^_	Is_MYANMAR}', "");
-    Expect(0, 43648, '\p{_	Is_MYANMAR}', "");
-    Expect(1, 43648, '\p{^_	Is_MYANMAR}', "");
-    Expect(1, 43648, '\P{_	Is_MYANMAR}', "");
-    Expect(0, 43648, '\P{^_	Is_MYANMAR}', "");
-    Error('\p{  Mymr:=}');
-    Error('\P{  Mymr:=}');
+    Expect(1, 43647, '\p{_ IS_Myanmar}', "");
+    Expect(0, 43647, '\p{^_ IS_Myanmar}', "");
+    Expect(0, 43647, '\P{_ IS_Myanmar}', "");
+    Expect(1, 43647, '\P{^_ IS_Myanmar}', "");
+    Expect(0, 43648, '\p{_ IS_Myanmar}', "");
+    Expect(1, 43648, '\p{^_ IS_Myanmar}', "");
+    Expect(1, 43648, '\P{_ IS_Myanmar}', "");
+    Expect(0, 43648, '\P{^_ IS_Myanmar}', "");
+    Error('\p{_:=MYMR}');
+    Error('\P{_:=MYMR}');
     Expect(1, 43647, '\p{mymr}', "");
     Expect(0, 43647, '\p{^mymr}', "");
     Expect(0, 43647, '\P{mymr}', "");
@@ -113367,16 +114503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^mymr}', "");
     Expect(1, 43648, '\P{mymr}', "");
     Expect(0, 43648, '\P{^mymr}', "");
-    Expect(1, 43647, '\p{_mymr}', "");
-    Expect(0, 43647, '\p{^_mymr}', "");
-    Expect(0, 43647, '\P{_mymr}', "");
-    Expect(1, 43647, '\P{^_mymr}', "");
-    Expect(0, 43648, '\p{_mymr}', "");
-    Expect(1, 43648, '\p{^_mymr}', "");
-    Expect(1, 43648, '\P{_mymr}', "");
-    Expect(0, 43648, '\P{^_mymr}', "");
-    Error('\p{/a/_IS_mymr}');
-    Error('\P{/a/_IS_mymr}');
+    Expect(1, 43647, '\p{_-MYMR}', "");
+    Expect(0, 43647, '\p{^_-MYMR}', "");
+    Expect(0, 43647, '\P{_-MYMR}', "");
+    Expect(1, 43647, '\P{^_-MYMR}', "");
+    Expect(0, 43648, '\p{_-MYMR}', "");
+    Expect(1, 43648, '\p{^_-MYMR}', "");
+    Expect(1, 43648, '\P{_-MYMR}', "");
+    Expect(0, 43648, '\P{^_-MYMR}', "");
+    Error('\p{:=-Is_Mymr}');
+    Error('\P{:=-Is_Mymr}');
     Expect(1, 43647, '\p{ismymr}', "");
     Expect(0, 43647, '\p{^ismymr}', "");
     Expect(0, 43647, '\P{ismymr}', "");
@@ -113385,16 +114521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^ismymr}', "");
     Expect(1, 43648, '\P{ismymr}', "");
     Expect(0, 43648, '\P{^ismymr}', "");
-    Expect(1, 43647, '\p{  is_Mymr}', "");
-    Expect(0, 43647, '\p{^  is_Mymr}', "");
-    Expect(0, 43647, '\P{  is_Mymr}', "");
-    Expect(1, 43647, '\P{^  is_Mymr}', "");
-    Expect(0, 43648, '\p{  is_Mymr}', "");
-    Expect(1, 43648, '\p{^  is_Mymr}', "");
-    Expect(1, 43648, '\P{  is_Mymr}', "");
-    Expect(0, 43648, '\P{^  is_Mymr}', "");
-    Error('\p{_Myanmar_extended_A/a/}');
-    Error('\P{_Myanmar_extended_A/a/}');
+    Expect(1, 43647, '\p{Is_Mymr}', "");
+    Expect(0, 43647, '\p{^Is_Mymr}', "");
+    Expect(0, 43647, '\P{Is_Mymr}', "");
+    Expect(1, 43647, '\P{^Is_Mymr}', "");
+    Expect(0, 43648, '\p{Is_Mymr}', "");
+    Expect(1, 43648, '\p{^Is_Mymr}', "");
+    Expect(1, 43648, '\P{Is_Mymr}', "");
+    Expect(0, 43648, '\P{^Is_Mymr}', "");
+    Error('\p{-:=Myanmar_Extended_A}');
+    Error('\P{-:=Myanmar_Extended_A}');
     Expect(1, 43647, '\p{myanmarextendeda}', "");
     Expect(0, 43647, '\p{^myanmarextendeda}', "");
     Expect(0, 43647, '\P{myanmarextendeda}', "");
@@ -113403,16 +114539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^myanmarextendeda}', "");
     Expect(1, 43648, '\P{myanmarextendeda}', "");
     Expect(0, 43648, '\P{^myanmarextendeda}', "");
-    Expect(1, 43647, '\p{- Myanmar_Extended_A}', "");
-    Expect(0, 43647, '\p{^- Myanmar_Extended_A}', "");
-    Expect(0, 43647, '\P{- Myanmar_Extended_A}', "");
-    Expect(1, 43647, '\P{^- Myanmar_Extended_A}', "");
-    Expect(0, 43648, '\p{- Myanmar_Extended_A}', "");
-    Expect(1, 43648, '\p{^- Myanmar_Extended_A}', "");
-    Expect(1, 43648, '\P{- Myanmar_Extended_A}', "");
-    Expect(0, 43648, '\P{^- Myanmar_Extended_A}', "");
-    Error('\p{ /a/Is_myanmar_extended_A}');
-    Error('\P{ /a/Is_myanmar_extended_A}');
+    Expect(1, 43647, '\p{_ Myanmar_extended_a}', "");
+    Expect(0, 43647, '\p{^_ Myanmar_extended_a}', "");
+    Expect(0, 43647, '\P{_ Myanmar_extended_a}', "");
+    Expect(1, 43647, '\P{^_ Myanmar_extended_a}', "");
+    Expect(0, 43648, '\p{_ Myanmar_extended_a}', "");
+    Expect(1, 43648, '\p{^_ Myanmar_extended_a}', "");
+    Expect(1, 43648, '\P{_ Myanmar_extended_a}', "");
+    Expect(0, 43648, '\P{^_ Myanmar_extended_a}', "");
+    Error('\p{:=-Is_Myanmar_EXTENDED_A}');
+    Error('\P{:=-Is_Myanmar_EXTENDED_A}');
     Expect(1, 43647, '\p{ismyanmarextendeda}', "");
     Expect(0, 43647, '\p{^ismyanmarextendeda}', "");
     Expect(0, 43647, '\P{ismyanmarextendeda}', "");
@@ -113421,16 +114557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^ismyanmarextendeda}', "");
     Expect(1, 43648, '\P{ismyanmarextendeda}', "");
     Expect(0, 43648, '\P{^ismyanmarextendeda}', "");
-    Expect(1, 43647, '\p{	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(0, 43647, '\p{^	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(0, 43647, '\P{	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(1, 43647, '\P{^	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(0, 43648, '\p{	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(1, 43648, '\p{^	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(1, 43648, '\P{	-Is_Myanmar_EXTENDED_A}', "");
-    Expect(0, 43648, '\P{^	-Is_Myanmar_EXTENDED_A}', "");
-    Error('\p{_:=In_myanmar_Extended_A}');
-    Error('\P{_:=In_myanmar_Extended_A}');
+    Expect(1, 43647, '\p{_ is_Myanmar_Extended_A}', "");
+    Expect(0, 43647, '\p{^_ is_Myanmar_Extended_A}', "");
+    Expect(0, 43647, '\P{_ is_Myanmar_Extended_A}', "");
+    Expect(1, 43647, '\P{^_ is_Myanmar_Extended_A}', "");
+    Expect(0, 43648, '\p{_ is_Myanmar_Extended_A}', "");
+    Expect(1, 43648, '\p{^_ is_Myanmar_Extended_A}', "");
+    Expect(1, 43648, '\P{_ is_Myanmar_Extended_A}', "");
+    Expect(0, 43648, '\P{^_ is_Myanmar_Extended_A}', "");
+    Error('\p{-:=IN_myanmar_extended_A}');
+    Error('\P{-:=IN_myanmar_extended_A}');
     Expect(1, 43647, '\p{inmyanmarextendeda}', "");
     Expect(0, 43647, '\p{^inmyanmarextendeda}', "");
     Expect(0, 43647, '\P{inmyanmarextendeda}', "");
@@ -113439,16 +114575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^inmyanmarextendeda}', "");
     Expect(1, 43648, '\P{inmyanmarextendeda}', "");
     Expect(0, 43648, '\P{^inmyanmarextendeda}', "");
-    Expect(1, 43647, '\p{	_IN_Myanmar_Extended_A}', "");
-    Expect(0, 43647, '\p{^	_IN_Myanmar_Extended_A}', "");
-    Expect(0, 43647, '\P{	_IN_Myanmar_Extended_A}', "");
-    Expect(1, 43647, '\P{^	_IN_Myanmar_Extended_A}', "");
-    Expect(0, 43648, '\p{	_IN_Myanmar_Extended_A}', "");
-    Expect(1, 43648, '\p{^	_IN_Myanmar_Extended_A}', "");
-    Expect(1, 43648, '\P{	_IN_Myanmar_Extended_A}', "");
-    Expect(0, 43648, '\P{^	_IN_Myanmar_Extended_A}', "");
-    Error('\p{:=_MYANMAR_Ext_A}');
-    Error('\P{:=_MYANMAR_Ext_A}');
+    Expect(1, 43647, '\p{-	in_MYANMAR_Extended_a}', "");
+    Expect(0, 43647, '\p{^-	in_MYANMAR_Extended_a}', "");
+    Expect(0, 43647, '\P{-	in_MYANMAR_Extended_a}', "");
+    Expect(1, 43647, '\P{^-	in_MYANMAR_Extended_a}', "");
+    Expect(0, 43648, '\p{-	in_MYANMAR_Extended_a}', "");
+    Expect(1, 43648, '\p{^-	in_MYANMAR_Extended_a}', "");
+    Expect(1, 43648, '\P{-	in_MYANMAR_Extended_a}', "");
+    Expect(0, 43648, '\P{^-	in_MYANMAR_Extended_a}', "");
+    Error('\p{:=__Myanmar_Ext_A}');
+    Error('\P{:=__Myanmar_Ext_A}');
     Expect(1, 43647, '\p{myanmarexta}', "");
     Expect(0, 43647, '\p{^myanmarexta}', "");
     Expect(0, 43647, '\P{myanmarexta}', "");
@@ -113457,16 +114593,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^myanmarexta}', "");
     Expect(1, 43648, '\P{myanmarexta}', "");
     Expect(0, 43648, '\P{^myanmarexta}', "");
-    Expect(1, 43647, '\p{ MYANMAR_Ext_a}', "");
-    Expect(0, 43647, '\p{^ MYANMAR_Ext_a}', "");
-    Expect(0, 43647, '\P{ MYANMAR_Ext_a}', "");
-    Expect(1, 43647, '\P{^ MYANMAR_Ext_a}', "");
-    Expect(0, 43648, '\p{ MYANMAR_Ext_a}', "");
-    Expect(1, 43648, '\p{^ MYANMAR_Ext_a}', "");
-    Expect(1, 43648, '\P{ MYANMAR_Ext_a}', "");
-    Expect(0, 43648, '\P{^ MYANMAR_Ext_a}', "");
-    Error('\p{	/a/Is_MYANMAR_ext_a}');
-    Error('\P{	/a/Is_MYANMAR_ext_a}');
+    Expect(1, 43647, '\p{- Myanmar_Ext_A}', "");
+    Expect(0, 43647, '\p{^- Myanmar_Ext_A}', "");
+    Expect(0, 43647, '\P{- Myanmar_Ext_A}', "");
+    Expect(1, 43647, '\P{^- Myanmar_Ext_A}', "");
+    Expect(0, 43648, '\p{- Myanmar_Ext_A}', "");
+    Expect(1, 43648, '\p{^- Myanmar_Ext_A}', "");
+    Expect(1, 43648, '\P{- Myanmar_Ext_A}', "");
+    Expect(0, 43648, '\P{^- Myanmar_Ext_A}', "");
+    Error('\p{-_Is_MYANMAR_ext_A:=}');
+    Error('\P{-_Is_MYANMAR_ext_A:=}');
     Expect(1, 43647, '\p{ismyanmarexta}', "");
     Expect(0, 43647, '\p{^ismyanmarexta}', "");
     Expect(0, 43647, '\P{ismyanmarexta}', "");
@@ -113475,16 +114611,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^ismyanmarexta}', "");
     Expect(1, 43648, '\P{ismyanmarexta}', "");
     Expect(0, 43648, '\P{^ismyanmarexta}', "");
-    Expect(1, 43647, '\p{ Is_MYANMAR_Ext_A}', "");
-    Expect(0, 43647, '\p{^ Is_MYANMAR_Ext_A}', "");
-    Expect(0, 43647, '\P{ Is_MYANMAR_Ext_A}', "");
-    Expect(1, 43647, '\P{^ Is_MYANMAR_Ext_A}', "");
-    Expect(0, 43648, '\p{ Is_MYANMAR_Ext_A}', "");
-    Expect(1, 43648, '\p{^ Is_MYANMAR_Ext_A}', "");
-    Expect(1, 43648, '\P{ Is_MYANMAR_Ext_A}', "");
-    Expect(0, 43648, '\P{^ Is_MYANMAR_Ext_A}', "");
-    Error('\p{:=_ IN_myanmar_Ext_A}');
-    Error('\P{:=_ IN_myanmar_Ext_A}');
+    Expect(1, 43647, '\p{ Is_Myanmar_ext_a}', "");
+    Expect(0, 43647, '\p{^ Is_Myanmar_ext_a}', "");
+    Expect(0, 43647, '\P{ Is_Myanmar_ext_a}', "");
+    Expect(1, 43647, '\P{^ Is_Myanmar_ext_a}', "");
+    Expect(0, 43648, '\p{ Is_Myanmar_ext_a}', "");
+    Expect(1, 43648, '\p{^ Is_Myanmar_ext_a}', "");
+    Expect(1, 43648, '\P{ Is_Myanmar_ext_a}', "");
+    Expect(0, 43648, '\P{^ Is_Myanmar_ext_a}', "");
+    Error('\p{:= -In_Myanmar_Ext_A}');
+    Error('\P{:= -In_Myanmar_Ext_A}');
     Expect(1, 43647, '\p{inmyanmarexta}', "");
     Expect(0, 43647, '\p{^inmyanmarexta}', "");
     Expect(0, 43647, '\P{inmyanmarexta}', "");
@@ -113493,16 +114629,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43648, '\p{^inmyanmarexta}', "");
     Expect(1, 43648, '\P{inmyanmarexta}', "");
     Expect(0, 43648, '\P{^inmyanmarexta}', "");
-    Expect(1, 43647, '\p{ 	In_Myanmar_Ext_A}', "");
-    Expect(0, 43647, '\p{^ 	In_Myanmar_Ext_A}', "");
-    Expect(0, 43647, '\P{ 	In_Myanmar_Ext_A}', "");
-    Expect(1, 43647, '\P{^ 	In_Myanmar_Ext_A}', "");
-    Expect(0, 43648, '\p{ 	In_Myanmar_Ext_A}', "");
-    Expect(1, 43648, '\p{^ 	In_Myanmar_Ext_A}', "");
-    Expect(1, 43648, '\P{ 	In_Myanmar_Ext_A}', "");
-    Expect(0, 43648, '\P{^ 	In_Myanmar_Ext_A}', "");
-    Error('\p{:=_ myanmar_Extended_B}');
-    Error('\P{:=_ myanmar_Extended_B}');
+    Expect(1, 43647, '\p{	-IN_myanmar_Ext_A}', "");
+    Expect(0, 43647, '\p{^	-IN_myanmar_Ext_A}', "");
+    Expect(0, 43647, '\P{	-IN_myanmar_Ext_A}', "");
+    Expect(1, 43647, '\P{^	-IN_myanmar_Ext_A}', "");
+    Expect(0, 43648, '\p{	-IN_myanmar_Ext_A}', "");
+    Expect(1, 43648, '\p{^	-IN_myanmar_Ext_A}', "");
+    Expect(1, 43648, '\P{	-IN_myanmar_Ext_A}', "");
+    Expect(0, 43648, '\P{^	-IN_myanmar_Ext_A}', "");
+    Error('\p{		MYANMAR_Extended_B:=}');
+    Error('\P{		MYANMAR_Extended_B:=}');
     Expect(1, 43519, '\p{myanmarextendedb}', "");
     Expect(0, 43519, '\p{^myanmarextendedb}', "");
     Expect(0, 43519, '\P{myanmarextendedb}', "");
@@ -113511,16 +114647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43520, '\p{^myanmarextendedb}', "");
     Expect(1, 43520, '\P{myanmarextendedb}', "");
     Expect(0, 43520, '\P{^myanmarextendedb}', "");
-    Expect(1, 43519, '\p{ MYANMAR_Extended_B}', "");
-    Expect(0, 43519, '\p{^ MYANMAR_Extended_B}', "");
-    Expect(0, 43519, '\P{ MYANMAR_Extended_B}', "");
-    Expect(1, 43519, '\P{^ MYANMAR_Extended_B}', "");
-    Expect(0, 43520, '\p{ MYANMAR_Extended_B}', "");
-    Expect(1, 43520, '\p{^ MYANMAR_Extended_B}', "");
-    Expect(1, 43520, '\P{ MYANMAR_Extended_B}', "");
-    Expect(0, 43520, '\P{^ MYANMAR_Extended_B}', "");
-    Error('\p{ :=IS_MYANMAR_extended_B}');
-    Error('\P{ :=IS_MYANMAR_extended_B}');
+    Expect(1, 43519, '\p{	myanmar_Extended_B}', "");
+    Expect(0, 43519, '\p{^	myanmar_Extended_B}', "");
+    Expect(0, 43519, '\P{	myanmar_Extended_B}', "");
+    Expect(1, 43519, '\P{^	myanmar_Extended_B}', "");
+    Expect(0, 43520, '\p{	myanmar_Extended_B}', "");
+    Expect(1, 43520, '\p{^	myanmar_Extended_B}', "");
+    Expect(1, 43520, '\P{	myanmar_Extended_B}', "");
+    Expect(0, 43520, '\P{^	myanmar_Extended_B}', "");
+    Error('\p{/a/-Is_Myanmar_EXTENDED_b}');
+    Error('\P{/a/-Is_Myanmar_EXTENDED_b}');
     Expect(1, 43519, '\p{ismyanmarextendedb}', "");
     Expect(0, 43519, '\p{^ismyanmarextendedb}', "");
     Expect(0, 43519, '\P{ismyanmarextendedb}', "");
@@ -113529,16 +114665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43520, '\p{^ismyanmarextendedb}', "");
     Expect(1, 43520, '\P{ismyanmarextendedb}', "");
     Expect(0, 43520, '\P{^ismyanmarextendedb}', "");
-    Expect(1, 43519, '\p{		IS_Myanmar_Extended_B}', "");
-    Expect(0, 43519, '\p{^		IS_Myanmar_Extended_B}', "");
-    Expect(0, 43519, '\P{		IS_Myanmar_Extended_B}', "");
-    Expect(1, 43519, '\P{^		IS_Myanmar_Extended_B}', "");
-    Expect(0, 43520, '\p{		IS_Myanmar_Extended_B}', "");
-    Expect(1, 43520, '\p{^		IS_Myanmar_Extended_B}', "");
-    Expect(1, 43520, '\P{		IS_Myanmar_Extended_B}', "");
-    Expect(0, 43520, '\P{^		IS_Myanmar_Extended_B}', "");
-    Error('\p{_	IN_myanmar_Extended_B:=}');
-    Error('\P{_	IN_myanmar_Extended_B:=}');
+    Expect(1, 43519, '\p{-_Is_myanmar_EXTENDED_b}', "");
+    Expect(0, 43519, '\p{^-_Is_myanmar_EXTENDED_b}', "");
+    Expect(0, 43519, '\P{-_Is_myanmar_EXTENDED_b}', "");
+    Expect(1, 43519, '\P{^-_Is_myanmar_EXTENDED_b}', "");
+    Expect(0, 43520, '\p{-_Is_myanmar_EXTENDED_b}', "");
+    Expect(1, 43520, '\p{^-_Is_myanmar_EXTENDED_b}', "");
+    Expect(1, 43520, '\P{-_Is_myanmar_EXTENDED_b}', "");
+    Expect(0, 43520, '\P{^-_Is_myanmar_EXTENDED_b}', "");
+    Error('\p{--in_myanmar_Extended_B/a/}');
+    Error('\P{--in_myanmar_Extended_B/a/}');
     Expect(1, 43519, '\p{inmyanmarextendedb}', "");
     Expect(0, 43519, '\p{^inmyanmarextendedb}', "");
     Expect(0, 43519, '\P{inmyanmarextendedb}', "");
@@ -113547,16 +114683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43520, '\p{^inmyanmarextendedb}', "");
     Expect(1, 43520, '\P{inmyanmarextendedb}', "");
     Expect(0, 43520, '\P{^inmyanmarextendedb}', "");
-    Expect(1, 43519, '\p{_In_MYANMAR_EXTENDED_B}', "");
-    Expect(0, 43519, '\p{^_In_MYANMAR_EXTENDED_B}', "");
-    Expect(0, 43519, '\P{_In_MYANMAR_EXTENDED_B}', "");
-    Expect(1, 43519, '\P{^_In_MYANMAR_EXTENDED_B}', "");
-    Expect(0, 43520, '\p{_In_MYANMAR_EXTENDED_B}', "");
-    Expect(1, 43520, '\p{^_In_MYANMAR_EXTENDED_B}', "");
-    Expect(1, 43520, '\P{_In_MYANMAR_EXTENDED_B}', "");
-    Expect(0, 43520, '\P{^_In_MYANMAR_EXTENDED_B}', "");
-    Error('\p{:=	 Myanmar_Ext_B}');
-    Error('\P{:=	 Myanmar_Ext_B}');
+    Expect(1, 43519, '\p{_ In_Myanmar_extended_b}', "");
+    Expect(0, 43519, '\p{^_ In_Myanmar_extended_b}', "");
+    Expect(0, 43519, '\P{_ In_Myanmar_extended_b}', "");
+    Expect(1, 43519, '\P{^_ In_Myanmar_extended_b}', "");
+    Expect(0, 43520, '\p{_ In_Myanmar_extended_b}', "");
+    Expect(1, 43520, '\p{^_ In_Myanmar_extended_b}', "");
+    Expect(1, 43520, '\P{_ In_Myanmar_extended_b}', "");
+    Expect(0, 43520, '\P{^_ In_Myanmar_extended_b}', "");
+    Error('\p{:=MYANMAR_Ext_B}');
+    Error('\P{:=MYANMAR_Ext_B}');
     Expect(1, 43519, '\p{myanmarextb}', "");
     Expect(0, 43519, '\p{^myanmarextb}', "");
     Expect(0, 43519, '\P{myanmarextb}', "");
@@ -113565,16 +114701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43520, '\p{^myanmarextb}', "");
     Expect(1, 43520, '\P{myanmarextb}', "");
     Expect(0, 43520, '\P{^myanmarextb}', "");
-    Expect(1, 43519, '\p{_ Myanmar_Ext_B}', "");
-    Expect(0, 43519, '\p{^_ Myanmar_Ext_B}', "");
-    Expect(0, 43519, '\P{_ Myanmar_Ext_B}', "");
-    Expect(1, 43519, '\P{^_ Myanmar_Ext_B}', "");
-    Expect(0, 43520, '\p{_ Myanmar_Ext_B}', "");
-    Expect(1, 43520, '\p{^_ Myanmar_Ext_B}', "");
-    Expect(1, 43520, '\P{_ Myanmar_Ext_B}', "");
-    Expect(0, 43520, '\P{^_ Myanmar_Ext_B}', "");
-    Error('\p{/a/ -Is_myanmar_EXT_B}');
-    Error('\P{/a/ -Is_myanmar_EXT_B}');
+    Expect(1, 43519, '\p{	 Myanmar_Ext_B}', "");
+    Expect(0, 43519, '\p{^	 Myanmar_Ext_B}', "");
+    Expect(0, 43519, '\P{	 Myanmar_Ext_B}', "");
+    Expect(1, 43519, '\P{^	 Myanmar_Ext_B}', "");
+    Expect(0, 43520, '\p{	 Myanmar_Ext_B}', "");
+    Expect(1, 43520, '\p{^	 Myanmar_Ext_B}', "");
+    Expect(1, 43520, '\P{	 Myanmar_Ext_B}', "");
+    Expect(0, 43520, '\P{^	 Myanmar_Ext_B}', "");
+    Error('\p{		Is_myanmar_EXT_B/a/}');
+    Error('\P{		Is_myanmar_EXT_B/a/}');
     Expect(1, 43519, '\p{ismyanmarextb}', "");
     Expect(0, 43519, '\p{^ismyanmarextb}', "");
     Expect(0, 43519, '\P{ismyanmarextb}', "");
@@ -113583,16 +114719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43520, '\p{^ismyanmarextb}', "");
     Expect(1, 43520, '\P{ismyanmarextb}', "");
     Expect(0, 43520, '\P{^ismyanmarextb}', "");
-    Expect(1, 43519, '\p{ is_myanmar_EXT_B}', "");
-    Expect(0, 43519, '\p{^ is_myanmar_EXT_B}', "");
-    Expect(0, 43519, '\P{ is_myanmar_EXT_B}', "");
-    Expect(1, 43519, '\P{^ is_myanmar_EXT_B}', "");
-    Expect(0, 43520, '\p{ is_myanmar_EXT_B}', "");
-    Expect(1, 43520, '\p{^ is_myanmar_EXT_B}', "");
-    Expect(1, 43520, '\P{ is_myanmar_EXT_B}', "");
-    Expect(0, 43520, '\P{^ is_myanmar_EXT_B}', "");
-    Error('\p{ _In_MYANMAR_Ext_B/a/}');
-    Error('\P{ _In_MYANMAR_Ext_B/a/}');
+    Expect(1, 43519, '\p{	Is_Myanmar_EXT_B}', "");
+    Expect(0, 43519, '\p{^	Is_Myanmar_EXT_B}', "");
+    Expect(0, 43519, '\P{	Is_Myanmar_EXT_B}', "");
+    Expect(1, 43519, '\P{^	Is_Myanmar_EXT_B}', "");
+    Expect(0, 43520, '\p{	Is_Myanmar_EXT_B}', "");
+    Expect(1, 43520, '\p{^	Is_Myanmar_EXT_B}', "");
+    Expect(1, 43520, '\P{	Is_Myanmar_EXT_B}', "");
+    Expect(0, 43520, '\P{^	Is_Myanmar_EXT_B}', "");
+    Error('\p{/a/In_Myanmar_ext_b}');
+    Error('\P{/a/In_Myanmar_ext_b}');
     Expect(1, 43519, '\p{inmyanmarextb}', "");
     Expect(0, 43519, '\p{^inmyanmarextb}', "");
     Expect(0, 43519, '\P{inmyanmarextb}', "");
@@ -113601,16 +114737,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43520, '\p{^inmyanmarextb}', "");
     Expect(1, 43520, '\P{inmyanmarextb}', "");
     Expect(0, 43520, '\P{^inmyanmarextb}', "");
-    Expect(1, 43519, '\p{_ In_myanmar_Ext_B}', "");
-    Expect(0, 43519, '\p{^_ In_myanmar_Ext_B}', "");
-    Expect(0, 43519, '\P{_ In_myanmar_Ext_B}', "");
-    Expect(1, 43519, '\P{^_ In_myanmar_Ext_B}', "");
-    Expect(0, 43520, '\p{_ In_myanmar_Ext_B}', "");
-    Expect(1, 43520, '\p{^_ In_myanmar_Ext_B}', "");
-    Expect(1, 43520, '\P{_ In_myanmar_Ext_B}', "");
-    Expect(0, 43520, '\P{^_ In_myanmar_Ext_B}', "");
-    Error('\p{:= _Nabataean}');
-    Error('\P{:= _Nabataean}');
+    Expect(1, 43519, '\p{_	in_MYANMAR_ext_B}', "");
+    Expect(0, 43519, '\p{^_	in_MYANMAR_ext_B}', "");
+    Expect(0, 43519, '\P{_	in_MYANMAR_ext_B}', "");
+    Expect(1, 43519, '\P{^_	in_MYANMAR_ext_B}', "");
+    Expect(0, 43520, '\p{_	in_MYANMAR_ext_B}', "");
+    Expect(1, 43520, '\p{^_	in_MYANMAR_ext_B}', "");
+    Expect(1, 43520, '\P{_	in_MYANMAR_ext_B}', "");
+    Expect(0, 43520, '\P{^_	in_MYANMAR_ext_B}', "");
+    Error('\p{_/a/Nabataean}');
+    Error('\P{_/a/Nabataean}');
     Expect(1, 67759, '\p{nabataean}', "");
     Expect(0, 67759, '\p{^nabataean}', "");
     Expect(0, 67759, '\P{nabataean}', "");
@@ -113619,16 +114755,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67760, '\p{^nabataean}', "");
     Expect(1, 67760, '\P{nabataean}', "");
     Expect(0, 67760, '\P{^nabataean}', "");
-    Expect(1, 67759, '\p{- Nabataean}', "");
-    Expect(0, 67759, '\p{^- Nabataean}', "");
-    Expect(0, 67759, '\P{- Nabataean}', "");
-    Expect(1, 67759, '\P{^- Nabataean}', "");
-    Expect(0, 67760, '\p{- Nabataean}', "");
-    Expect(1, 67760, '\p{^- Nabataean}', "");
-    Expect(1, 67760, '\P{- Nabataean}', "");
-    Expect(0, 67760, '\P{^- Nabataean}', "");
-    Error('\p{/a/is_Nabataean}');
-    Error('\P{/a/is_Nabataean}');
+    Expect(1, 67759, '\p{_Nabataean}', "");
+    Expect(0, 67759, '\p{^_Nabataean}', "");
+    Expect(0, 67759, '\P{_Nabataean}', "");
+    Expect(1, 67759, '\P{^_Nabataean}', "");
+    Expect(0, 67760, '\p{_Nabataean}', "");
+    Expect(1, 67760, '\p{^_Nabataean}', "");
+    Expect(1, 67760, '\P{_Nabataean}', "");
+    Expect(0, 67760, '\P{^_Nabataean}', "");
+    Error('\p{/a/	Is_NABATAEAN}');
+    Error('\P{/a/	Is_NABATAEAN}');
     Expect(1, 67759, '\p{isnabataean}', "");
     Expect(0, 67759, '\p{^isnabataean}', "");
     Expect(0, 67759, '\P{isnabataean}', "");
@@ -113637,16 +114773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67760, '\p{^isnabataean}', "");
     Expect(1, 67760, '\P{isnabataean}', "");
     Expect(0, 67760, '\P{^isnabataean}', "");
-    Expect(1, 67759, '\p{-_is_NABATAEAN}', "");
-    Expect(0, 67759, '\p{^-_is_NABATAEAN}', "");
-    Expect(0, 67759, '\P{-_is_NABATAEAN}', "");
-    Expect(1, 67759, '\P{^-_is_NABATAEAN}', "");
-    Expect(0, 67760, '\p{-_is_NABATAEAN}', "");
-    Expect(1, 67760, '\p{^-_is_NABATAEAN}', "");
-    Expect(1, 67760, '\P{-_is_NABATAEAN}', "");
-    Expect(0, 67760, '\P{^-_is_NABATAEAN}', "");
-    Error('\p{-/a/nbat}');
-    Error('\P{-/a/nbat}');
+    Expect(1, 67759, '\p{_	Is_Nabataean}', "");
+    Expect(0, 67759, '\p{^_	Is_Nabataean}', "");
+    Expect(0, 67759, '\P{_	Is_Nabataean}', "");
+    Expect(1, 67759, '\P{^_	Is_Nabataean}', "");
+    Expect(0, 67760, '\p{_	Is_Nabataean}', "");
+    Expect(1, 67760, '\p{^_	Is_Nabataean}', "");
+    Expect(1, 67760, '\P{_	Is_Nabataean}', "");
+    Expect(0, 67760, '\P{^_	Is_Nabataean}', "");
+    Error('\p{:= _NBAT}');
+    Error('\P{:= _NBAT}');
     Expect(1, 67759, '\p{nbat}', "");
     Expect(0, 67759, '\p{^nbat}', "");
     Expect(0, 67759, '\P{nbat}', "");
@@ -113655,16 +114791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67760, '\p{^nbat}', "");
     Expect(1, 67760, '\P{nbat}', "");
     Expect(0, 67760, '\P{^nbat}', "");
-    Expect(1, 67759, '\p{_Nbat}', "");
-    Expect(0, 67759, '\p{^_Nbat}', "");
-    Expect(0, 67759, '\P{_Nbat}', "");
-    Expect(1, 67759, '\P{^_Nbat}', "");
-    Expect(0, 67760, '\p{_Nbat}', "");
-    Expect(1, 67760, '\p{^_Nbat}', "");
-    Expect(1, 67760, '\P{_Nbat}', "");
-    Expect(0, 67760, '\P{^_Nbat}', "");
-    Error('\p{:=	-IS_nbat}');
-    Error('\P{:=	-IS_nbat}');
+    Expect(1, 67759, '\p{ -nbat}', "");
+    Expect(0, 67759, '\p{^ -nbat}', "");
+    Expect(0, 67759, '\P{ -nbat}', "");
+    Expect(1, 67759, '\P{^ -nbat}', "");
+    Expect(0, 67760, '\p{ -nbat}', "");
+    Expect(1, 67760, '\p{^ -nbat}', "");
+    Expect(1, 67760, '\P{ -nbat}', "");
+    Expect(0, 67760, '\P{^ -nbat}', "");
+    Error('\p{:=-	Is_nbat}');
+    Error('\P{:=-	Is_nbat}');
     Expect(1, 67759, '\p{isnbat}', "");
     Expect(0, 67759, '\p{^isnbat}', "");
     Expect(0, 67759, '\P{isnbat}', "");
@@ -113673,16 +114809,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67760, '\p{^isnbat}', "");
     Expect(1, 67760, '\P{isnbat}', "");
     Expect(0, 67760, '\P{^isnbat}', "");
-    Expect(1, 67759, '\p{ _Is_nbat}', "");
-    Expect(0, 67759, '\p{^ _Is_nbat}', "");
-    Expect(0, 67759, '\P{ _Is_nbat}', "");
-    Expect(1, 67759, '\P{^ _Is_nbat}', "");
-    Expect(0, 67760, '\p{ _Is_nbat}', "");
-    Expect(1, 67760, '\p{^ _Is_nbat}', "");
-    Expect(1, 67760, '\P{ _Is_nbat}', "");
-    Expect(0, 67760, '\P{^ _Is_nbat}', "");
-    Error('\p{_/a/Nandinagari}');
-    Error('\P{_/a/Nandinagari}');
+    Expect(1, 67759, '\p{-Is_nbat}', "");
+    Expect(0, 67759, '\p{^-Is_nbat}', "");
+    Expect(0, 67759, '\P{-Is_nbat}', "");
+    Expect(1, 67759, '\P{^-Is_nbat}', "");
+    Expect(0, 67760, '\p{-Is_nbat}', "");
+    Expect(1, 67760, '\p{^-Is_nbat}', "");
+    Expect(1, 67760, '\P{-Is_nbat}', "");
+    Expect(0, 67760, '\P{^-Is_nbat}', "");
+    Error('\p{_:=NAG_Mundari}');
+    Error('\P{_:=NAG_Mundari}');
+    Expect(1, 124153, '\p{nagmundari}', "");
+    Expect(0, 124153, '\p{^nagmundari}', "");
+    Expect(0, 124153, '\P{nagmundari}', "");
+    Expect(1, 124153, '\P{^nagmundari}', "");
+    Expect(0, 124154, '\p{nagmundari}', "");
+    Expect(1, 124154, '\p{^nagmundari}', "");
+    Expect(1, 124154, '\P{nagmundari}', "");
+    Expect(0, 124154, '\P{^nagmundari}', "");
+    Expect(1, 124153, '\p{ _Nag_mundari}', "");
+    Expect(0, 124153, '\p{^ _Nag_mundari}', "");
+    Expect(0, 124153, '\P{ _Nag_mundari}', "");
+    Expect(1, 124153, '\P{^ _Nag_mundari}', "");
+    Expect(0, 124154, '\p{ _Nag_mundari}', "");
+    Expect(1, 124154, '\p{^ _Nag_mundari}', "");
+    Expect(1, 124154, '\P{ _Nag_mundari}', "");
+    Expect(0, 124154, '\P{^ _Nag_mundari}', "");
+    Error('\p{__Is_Nag_MUNDARI:=}');
+    Error('\P{__Is_Nag_MUNDARI:=}');
+    Expect(1, 124153, '\p{isnagmundari}', "");
+    Expect(0, 124153, '\p{^isnagmundari}', "");
+    Expect(0, 124153, '\P{isnagmundari}', "");
+    Expect(1, 124153, '\P{^isnagmundari}', "");
+    Expect(0, 124154, '\p{isnagmundari}', "");
+    Expect(1, 124154, '\p{^isnagmundari}', "");
+    Expect(1, 124154, '\P{isnagmundari}', "");
+    Expect(0, 124154, '\P{^isnagmundari}', "");
+    Expect(1, 124153, '\p{  IS_Nag_MUNDARI}', "");
+    Expect(0, 124153, '\p{^  IS_Nag_MUNDARI}', "");
+    Expect(0, 124153, '\P{  IS_Nag_MUNDARI}', "");
+    Expect(1, 124153, '\P{^  IS_Nag_MUNDARI}', "");
+    Expect(0, 124154, '\p{  IS_Nag_MUNDARI}', "");
+    Expect(1, 124154, '\p{^  IS_Nag_MUNDARI}', "");
+    Expect(1, 124154, '\P{  IS_Nag_MUNDARI}', "");
+    Expect(0, 124154, '\P{^  IS_Nag_MUNDARI}', "");
+    Error('\p{:=_	Nagm}');
+    Error('\P{:=_	Nagm}');
+    Expect(1, 124153, '\p{nagm}', "");
+    Expect(0, 124153, '\p{^nagm}', "");
+    Expect(0, 124153, '\P{nagm}', "");
+    Expect(1, 124153, '\P{^nagm}', "");
+    Expect(0, 124154, '\p{nagm}', "");
+    Expect(1, 124154, '\p{^nagm}', "");
+    Expect(1, 124154, '\P{nagm}', "");
+    Expect(0, 124154, '\P{^nagm}', "");
+    Expect(1, 124153, '\p{ Nagm}', "");
+    Expect(0, 124153, '\p{^ Nagm}', "");
+    Expect(0, 124153, '\P{ Nagm}', "");
+    Expect(1, 124153, '\P{^ Nagm}', "");
+    Expect(0, 124154, '\p{ Nagm}', "");
+    Expect(1, 124154, '\p{^ Nagm}', "");
+    Expect(1, 124154, '\P{ Nagm}', "");
+    Expect(0, 124154, '\P{^ Nagm}', "");
+    Error('\p{:=_Is_NAGM}');
+    Error('\P{:=_Is_NAGM}');
+    Expect(1, 124153, '\p{isnagm}', "");
+    Expect(0, 124153, '\p{^isnagm}', "");
+    Expect(0, 124153, '\P{isnagm}', "");
+    Expect(1, 124153, '\P{^isnagm}', "");
+    Expect(0, 124154, '\p{isnagm}', "");
+    Expect(1, 124154, '\p{^isnagm}', "");
+    Expect(1, 124154, '\P{isnagm}', "");
+    Expect(0, 124154, '\P{^isnagm}', "");
+    Expect(1, 124153, '\p{- Is_Nagm}', "");
+    Expect(0, 124153, '\p{^- Is_Nagm}', "");
+    Expect(0, 124153, '\P{- Is_Nagm}', "");
+    Expect(1, 124153, '\P{^- Is_Nagm}', "");
+    Expect(0, 124154, '\p{- Is_Nagm}', "");
+    Expect(1, 124154, '\p{^- Is_Nagm}', "");
+    Expect(1, 124154, '\P{- Is_Nagm}', "");
+    Expect(0, 124154, '\P{^- Is_Nagm}', "");
+    Error('\p{	:=Nandinagari}');
+    Error('\P{	:=Nandinagari}');
     Expect(1, 72164, '\p{nandinagari}', "");
     Expect(0, 72164, '\p{^nandinagari}', "");
     Expect(0, 72164, '\P{nandinagari}', "");
@@ -113691,16 +114899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72165, '\p{^nandinagari}', "");
     Expect(1, 72165, '\P{nandinagari}', "");
     Expect(0, 72165, '\P{^nandinagari}', "");
-    Expect(1, 72164, '\p{- nandinagari}', "");
-    Expect(0, 72164, '\p{^- nandinagari}', "");
-    Expect(0, 72164, '\P{- nandinagari}', "");
-    Expect(1, 72164, '\P{^- nandinagari}', "");
-    Expect(0, 72165, '\p{- nandinagari}', "");
-    Expect(1, 72165, '\p{^- nandinagari}', "");
-    Expect(1, 72165, '\P{- nandinagari}', "");
-    Expect(0, 72165, '\P{^- nandinagari}', "");
-    Error('\p{:=	 Is_Nandinagari}');
-    Error('\P{:=	 Is_Nandinagari}');
+    Expect(1, 72164, '\p{ NANDINAGARI}', "");
+    Expect(0, 72164, '\p{^ NANDINAGARI}', "");
+    Expect(0, 72164, '\P{ NANDINAGARI}', "");
+    Expect(1, 72164, '\P{^ NANDINAGARI}', "");
+    Expect(0, 72165, '\p{ NANDINAGARI}', "");
+    Expect(1, 72165, '\p{^ NANDINAGARI}', "");
+    Expect(1, 72165, '\P{ NANDINAGARI}', "");
+    Expect(0, 72165, '\P{^ NANDINAGARI}', "");
+    Error('\p{-_is_Nandinagari/a/}');
+    Error('\P{-_is_Nandinagari/a/}');
     Expect(1, 72164, '\p{isnandinagari}', "");
     Expect(0, 72164, '\p{^isnandinagari}', "");
     Expect(0, 72164, '\P{isnandinagari}', "");
@@ -113709,16 +114917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72165, '\p{^isnandinagari}', "");
     Expect(1, 72165, '\P{isnandinagari}', "");
     Expect(0, 72165, '\P{^isnandinagari}', "");
-    Expect(1, 72164, '\p{	Is_Nandinagari}', "");
-    Expect(0, 72164, '\p{^	Is_Nandinagari}', "");
-    Expect(0, 72164, '\P{	Is_Nandinagari}', "");
-    Expect(1, 72164, '\P{^	Is_Nandinagari}', "");
-    Expect(0, 72165, '\p{	Is_Nandinagari}', "");
-    Expect(1, 72165, '\p{^	Is_Nandinagari}', "");
-    Expect(1, 72165, '\P{	Is_Nandinagari}', "");
-    Expect(0, 72165, '\P{^	Is_Nandinagari}', "");
-    Error('\p{_-NAND:=}');
-    Error('\P{_-NAND:=}');
+    Expect(1, 72164, '\p{  IS_Nandinagari}', "");
+    Expect(0, 72164, '\p{^  IS_Nandinagari}', "");
+    Expect(0, 72164, '\P{  IS_Nandinagari}', "");
+    Expect(1, 72164, '\P{^  IS_Nandinagari}', "");
+    Expect(0, 72165, '\p{  IS_Nandinagari}', "");
+    Expect(1, 72165, '\p{^  IS_Nandinagari}', "");
+    Expect(1, 72165, '\P{  IS_Nandinagari}', "");
+    Expect(0, 72165, '\P{^  IS_Nandinagari}', "");
+    Error('\p{:=NAND}');
+    Error('\P{:=NAND}');
     Expect(1, 72164, '\p{nand}', "");
     Expect(0, 72164, '\p{^nand}', "");
     Expect(0, 72164, '\P{nand}', "");
@@ -113727,16 +114935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72165, '\p{^nand}', "");
     Expect(1, 72165, '\P{nand}', "");
     Expect(0, 72165, '\P{^nand}', "");
-    Expect(1, 72164, '\p{_	nand}', "");
-    Expect(0, 72164, '\p{^_	nand}', "");
-    Expect(0, 72164, '\P{_	nand}', "");
-    Expect(1, 72164, '\P{^_	nand}', "");
-    Expect(0, 72165, '\p{_	nand}', "");
-    Expect(1, 72165, '\p{^_	nand}', "");
-    Expect(1, 72165, '\P{_	nand}', "");
-    Expect(0, 72165, '\P{^_	nand}', "");
-    Error('\p{_:=Is_NAND}');
-    Error('\P{_:=Is_NAND}');
+    Expect(1, 72164, '\p{--Nand}', "");
+    Expect(0, 72164, '\p{^--Nand}', "");
+    Expect(0, 72164, '\P{--Nand}', "");
+    Expect(1, 72164, '\P{^--Nand}', "");
+    Expect(0, 72165, '\p{--Nand}', "");
+    Expect(1, 72165, '\p{^--Nand}', "");
+    Expect(1, 72165, '\P{--Nand}', "");
+    Expect(0, 72165, '\P{^--Nand}', "");
+    Error('\p{/a/	 Is_Nand}');
+    Error('\P{/a/	 Is_Nand}');
     Expect(1, 72164, '\p{isnand}', "");
     Expect(0, 72164, '\p{^isnand}', "");
     Expect(0, 72164, '\P{isnand}', "");
@@ -113745,16 +114953,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72165, '\p{^isnand}', "");
     Expect(1, 72165, '\P{isnand}', "");
     Expect(0, 72165, '\P{^isnand}', "");
-    Expect(1, 72164, '\p{	-Is_nand}', "");
-    Expect(0, 72164, '\p{^	-Is_nand}', "");
-    Expect(0, 72164, '\P{	-Is_nand}', "");
-    Expect(1, 72164, '\P{^	-Is_nand}', "");
-    Expect(0, 72165, '\p{	-Is_nand}', "");
-    Expect(1, 72165, '\p{^	-Is_nand}', "");
-    Expect(1, 72165, '\P{	-Is_nand}', "");
-    Expect(0, 72165, '\P{^	-Is_nand}', "");
-    Error('\p{	:=NEW_Tai_Lue}');
-    Error('\P{	:=NEW_Tai_Lue}');
+    Expect(1, 72164, '\p{		Is_Nand}', "");
+    Expect(0, 72164, '\p{^		Is_Nand}', "");
+    Expect(0, 72164, '\P{		Is_Nand}', "");
+    Expect(1, 72164, '\P{^		Is_Nand}', "");
+    Expect(0, 72165, '\p{		Is_Nand}', "");
+    Expect(1, 72165, '\p{^		Is_Nand}', "");
+    Expect(1, 72165, '\P{		Is_Nand}', "");
+    Expect(0, 72165, '\P{^		Is_Nand}', "");
+    Error('\p{:=New_Tai_Lue}');
+    Error('\P{:=New_Tai_Lue}');
     Expect(1, 6623, '\p{newtailue}', "");
     Expect(0, 6623, '\p{^newtailue}', "");
     Expect(0, 6623, '\P{newtailue}', "");
@@ -113763,16 +114971,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6624, '\p{^newtailue}', "");
     Expect(1, 6624, '\P{newtailue}', "");
     Expect(0, 6624, '\P{^newtailue}', "");
-    Expect(1, 6623, '\p{ _New_Tai_Lue}', "");
-    Expect(0, 6623, '\p{^ _New_Tai_Lue}', "");
-    Expect(0, 6623, '\P{ _New_Tai_Lue}', "");
-    Expect(1, 6623, '\P{^ _New_Tai_Lue}', "");
-    Expect(0, 6624, '\p{ _New_Tai_Lue}', "");
-    Expect(1, 6624, '\p{^ _New_Tai_Lue}', "");
-    Expect(1, 6624, '\P{ _New_Tai_Lue}', "");
-    Expect(0, 6624, '\P{^ _New_Tai_Lue}', "");
-    Error('\p{:=Is_new_tai_Lue}');
-    Error('\P{:=Is_new_tai_Lue}');
+    Expect(1, 6623, '\p{_New_TAI_Lue}', "");
+    Expect(0, 6623, '\p{^_New_TAI_Lue}', "");
+    Expect(0, 6623, '\P{_New_TAI_Lue}', "");
+    Expect(1, 6623, '\P{^_New_TAI_Lue}', "");
+    Expect(0, 6624, '\p{_New_TAI_Lue}', "");
+    Expect(1, 6624, '\p{^_New_TAI_Lue}', "");
+    Expect(1, 6624, '\P{_New_TAI_Lue}', "");
+    Expect(0, 6624, '\P{^_New_TAI_Lue}', "");
+    Error('\p{/a/IS_new_Tai_Lue}');
+    Error('\P{/a/IS_new_Tai_Lue}');
     Expect(1, 6623, '\p{isnewtailue}', "");
     Expect(0, 6623, '\p{^isnewtailue}', "");
     Expect(0, 6623, '\P{isnewtailue}', "");
@@ -113781,16 +114989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6624, '\p{^isnewtailue}', "");
     Expect(1, 6624, '\P{isnewtailue}', "");
     Expect(0, 6624, '\P{^isnewtailue}', "");
-    Expect(1, 6623, '\p{_is_new_tai_Lue}', "");
-    Expect(0, 6623, '\p{^_is_new_tai_Lue}', "");
-    Expect(0, 6623, '\P{_is_new_tai_Lue}', "");
-    Expect(1, 6623, '\P{^_is_new_tai_Lue}', "");
-    Expect(0, 6624, '\p{_is_new_tai_Lue}', "");
-    Expect(1, 6624, '\p{^_is_new_tai_Lue}', "");
-    Expect(1, 6624, '\P{_is_new_tai_Lue}', "");
-    Expect(0, 6624, '\P{^_is_new_tai_Lue}', "");
-    Error('\p{:=--Talu}');
-    Error('\P{:=--Talu}');
+    Expect(1, 6623, '\p{_-Is_NEW_TAI_lue}', "");
+    Expect(0, 6623, '\p{^_-Is_NEW_TAI_lue}', "");
+    Expect(0, 6623, '\P{_-Is_NEW_TAI_lue}', "");
+    Expect(1, 6623, '\P{^_-Is_NEW_TAI_lue}', "");
+    Expect(0, 6624, '\p{_-Is_NEW_TAI_lue}', "");
+    Expect(1, 6624, '\p{^_-Is_NEW_TAI_lue}', "");
+    Expect(1, 6624, '\P{_-Is_NEW_TAI_lue}', "");
+    Expect(0, 6624, '\P{^_-Is_NEW_TAI_lue}', "");
+    Error('\p{/a/__talu}');
+    Error('\P{/a/__talu}');
     Expect(1, 6623, '\p{talu}', "");
     Expect(0, 6623, '\p{^talu}', "");
     Expect(0, 6623, '\P{talu}', "");
@@ -113799,16 +115007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6624, '\p{^talu}', "");
     Expect(1, 6624, '\P{talu}', "");
     Expect(0, 6624, '\P{^talu}', "");
-    Expect(1, 6623, '\p{	_talu}', "");
-    Expect(0, 6623, '\p{^	_talu}', "");
-    Expect(0, 6623, '\P{	_talu}', "");
-    Expect(1, 6623, '\P{^	_talu}', "");
-    Expect(0, 6624, '\p{	_talu}', "");
-    Expect(1, 6624, '\p{^	_talu}', "");
-    Expect(1, 6624, '\P{	_talu}', "");
-    Expect(0, 6624, '\P{^	_talu}', "");
-    Error('\p{  Is_Talu/a/}');
-    Error('\P{  Is_Talu/a/}');
+    Expect(1, 6623, '\p{_-Talu}', "");
+    Expect(0, 6623, '\p{^_-Talu}', "");
+    Expect(0, 6623, '\P{_-Talu}', "");
+    Expect(1, 6623, '\P{^_-Talu}', "");
+    Expect(0, 6624, '\p{_-Talu}', "");
+    Expect(1, 6624, '\p{^_-Talu}', "");
+    Expect(1, 6624, '\P{_-Talu}', "");
+    Expect(0, 6624, '\P{^_-Talu}', "");
+    Error('\p{	Is_Talu/a/}');
+    Error('\P{	Is_Talu/a/}');
     Expect(1, 6623, '\p{istalu}', "");
     Expect(0, 6623, '\p{^istalu}', "");
     Expect(0, 6623, '\P{istalu}', "");
@@ -113817,16 +115025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 6624, '\p{^istalu}', "");
     Expect(1, 6624, '\P{istalu}', "");
     Expect(0, 6624, '\P{^istalu}', "");
-    Expect(1, 6623, '\p{ 	IS_TALU}', "");
-    Expect(0, 6623, '\p{^ 	IS_TALU}', "");
-    Expect(0, 6623, '\P{ 	IS_TALU}', "");
-    Expect(1, 6623, '\P{^ 	IS_TALU}', "");
-    Expect(0, 6624, '\p{ 	IS_TALU}', "");
-    Expect(1, 6624, '\p{^ 	IS_TALU}', "");
-    Expect(1, 6624, '\P{ 	IS_TALU}', "");
-    Expect(0, 6624, '\P{^ 	IS_TALU}', "");
-    Error('\p{/a/ NEWA}');
-    Error('\P{/a/ NEWA}');
+    Expect(1, 6623, '\p{	-is_Talu}', "");
+    Expect(0, 6623, '\p{^	-is_Talu}', "");
+    Expect(0, 6623, '\P{	-is_Talu}', "");
+    Expect(1, 6623, '\P{^	-is_Talu}', "");
+    Expect(0, 6624, '\p{	-is_Talu}', "");
+    Expect(1, 6624, '\p{^	-is_Talu}', "");
+    Expect(1, 6624, '\P{	-is_Talu}', "");
+    Expect(0, 6624, '\P{^	-is_Talu}', "");
+    Error('\p{-:=newa}');
+    Error('\P{-:=newa}');
     Expect(1, 70753, '\p{newa}', "");
     Expect(0, 70753, '\p{^newa}', "");
     Expect(0, 70753, '\P{newa}', "");
@@ -113835,16 +115043,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70754, '\p{^newa}', "");
     Expect(1, 70754, '\P{newa}', "");
     Expect(0, 70754, '\P{^newa}', "");
-    Expect(1, 70753, '\p{	newa}', "");
-    Expect(0, 70753, '\p{^	newa}', "");
-    Expect(0, 70753, '\P{	newa}', "");
-    Expect(1, 70753, '\P{^	newa}', "");
-    Expect(0, 70754, '\p{	newa}', "");
-    Expect(1, 70754, '\p{^	newa}', "");
-    Expect(1, 70754, '\P{	newa}', "");
-    Expect(0, 70754, '\P{^	newa}', "");
-    Error('\p{	:=Is_Newa}');
-    Error('\P{	:=Is_Newa}');
+    Expect(1, 70753, '\p{  Newa}', "");
+    Expect(0, 70753, '\p{^  Newa}', "");
+    Expect(0, 70753, '\P{  Newa}', "");
+    Expect(1, 70753, '\P{^  Newa}', "");
+    Expect(0, 70754, '\p{  Newa}', "");
+    Expect(1, 70754, '\p{^  Newa}', "");
+    Expect(1, 70754, '\P{  Newa}', "");
+    Expect(0, 70754, '\P{^  Newa}', "");
+    Error('\p{_	Is_Newa/a/}');
+    Error('\P{_	Is_Newa/a/}');
     Expect(1, 70753, '\p{isnewa}', "");
     Expect(0, 70753, '\p{^isnewa}', "");
     Expect(0, 70753, '\P{isnewa}', "");
@@ -113853,16 +115061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 70754, '\p{^isnewa}', "");
     Expect(1, 70754, '\P{isnewa}', "");
     Expect(0, 70754, '\P{^isnewa}', "");
-    Expect(1, 70753, '\p{ Is_NEWA}', "");
-    Expect(0, 70753, '\p{^ Is_NEWA}', "");
-    Expect(0, 70753, '\P{ Is_NEWA}', "");
-    Expect(1, 70753, '\P{^ Is_NEWA}', "");
-    Expect(0, 70754, '\p{ Is_NEWA}', "");
-    Expect(1, 70754, '\p{^ Is_NEWA}', "");
-    Expect(1, 70754, '\P{ Is_NEWA}', "");
-    Expect(0, 70754, '\P{^ Is_NEWA}', "");
-    Error('\p{:=NKO}');
-    Error('\P{:=NKO}');
+    Expect(1, 70753, '\p{_ IS_NEWA}', "");
+    Expect(0, 70753, '\p{^_ IS_NEWA}', "");
+    Expect(0, 70753, '\P{_ IS_NEWA}', "");
+    Expect(1, 70753, '\P{^_ IS_NEWA}', "");
+    Expect(0, 70754, '\p{_ IS_NEWA}', "");
+    Expect(1, 70754, '\p{^_ IS_NEWA}', "");
+    Expect(1, 70754, '\P{_ IS_NEWA}', "");
+    Expect(0, 70754, '\P{^_ IS_NEWA}', "");
+    Error('\p{_:=Nko}');
+    Error('\P{_:=Nko}');
     Expect(1, 64831, '\p{nko}', "");
     Expect(0, 64831, '\p{^nko}', "");
     Expect(0, 64831, '\P{nko}', "");
@@ -113871,16 +115079,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64832, '\p{^nko}', "");
     Expect(1, 64832, '\P{nko}', "");
     Expect(0, 64832, '\P{^nko}', "");
-    Expect(1, 64831, '\p{- NKO}', "");
-    Expect(0, 64831, '\p{^- NKO}', "");
-    Expect(0, 64831, '\P{- NKO}', "");
-    Expect(1, 64831, '\P{^- NKO}', "");
-    Expect(0, 64832, '\p{- NKO}', "");
-    Expect(1, 64832, '\p{^- NKO}', "");
-    Expect(1, 64832, '\P{- NKO}', "");
-    Expect(0, 64832, '\P{^- NKO}', "");
-    Error('\p{:=--IS_Nko}');
-    Error('\P{:=--IS_Nko}');
+    Expect(1, 64831, '\p{-nko}', "");
+    Expect(0, 64831, '\p{^-nko}', "");
+    Expect(0, 64831, '\P{-nko}', "");
+    Expect(1, 64831, '\P{^-nko}', "");
+    Expect(0, 64832, '\p{-nko}', "");
+    Expect(1, 64832, '\p{^-nko}', "");
+    Expect(1, 64832, '\P{-nko}', "");
+    Expect(0, 64832, '\P{^-nko}', "");
+    Error('\p{/a/_	Is_Nko}');
+    Error('\P{/a/_	Is_Nko}');
     Expect(1, 64831, '\p{isnko}', "");
     Expect(0, 64831, '\p{^isnko}', "");
     Expect(0, 64831, '\P{isnko}', "");
@@ -113889,16 +115097,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64832, '\p{^isnko}', "");
     Expect(1, 64832, '\P{isnko}', "");
     Expect(0, 64832, '\P{^isnko}', "");
-    Expect(1, 64831, '\p{-	is_Nko}', "");
-    Expect(0, 64831, '\p{^-	is_Nko}', "");
-    Expect(0, 64831, '\P{-	is_Nko}', "");
-    Expect(1, 64831, '\P{^-	is_Nko}', "");
-    Expect(0, 64832, '\p{-	is_Nko}', "");
-    Expect(1, 64832, '\p{^-	is_Nko}', "");
-    Expect(1, 64832, '\P{-	is_Nko}', "");
-    Expect(0, 64832, '\P{^-	is_Nko}', "");
-    Error('\p{:= NKOO}');
-    Error('\P{:= NKOO}');
+    Expect(1, 64831, '\p{--is_NKO}', "");
+    Expect(0, 64831, '\p{^--is_NKO}', "");
+    Expect(0, 64831, '\P{--is_NKO}', "");
+    Expect(1, 64831, '\P{^--is_NKO}', "");
+    Expect(0, 64832, '\p{--is_NKO}', "");
+    Expect(1, 64832, '\p{^--is_NKO}', "");
+    Expect(1, 64832, '\P{--is_NKO}', "");
+    Expect(0, 64832, '\P{^--is_NKO}', "");
+    Error('\p{:= _Nkoo}');
+    Error('\P{:= _Nkoo}');
     Expect(1, 64831, '\p{nkoo}', "");
     Expect(0, 64831, '\p{^nkoo}', "");
     Expect(0, 64831, '\P{nkoo}', "");
@@ -113907,16 +115115,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64832, '\p{^nkoo}', "");
     Expect(1, 64832, '\P{nkoo}', "");
     Expect(0, 64832, '\P{^nkoo}', "");
-    Expect(1, 64831, '\p{_-Nkoo}', "");
-    Expect(0, 64831, '\p{^_-Nkoo}', "");
-    Expect(0, 64831, '\P{_-Nkoo}', "");
-    Expect(1, 64831, '\P{^_-Nkoo}', "");
-    Expect(0, 64832, '\p{_-Nkoo}', "");
-    Expect(1, 64832, '\p{^_-Nkoo}', "");
-    Expect(1, 64832, '\P{_-Nkoo}', "");
-    Expect(0, 64832, '\P{^_-Nkoo}', "");
-    Error('\p{ /a/is_NKOO}');
-    Error('\P{ /a/is_NKOO}');
+    Expect(1, 64831, '\p{-Nkoo}', "");
+    Expect(0, 64831, '\p{^-Nkoo}', "");
+    Expect(0, 64831, '\P{-Nkoo}', "");
+    Expect(1, 64831, '\P{^-Nkoo}', "");
+    Expect(0, 64832, '\p{-Nkoo}', "");
+    Expect(1, 64832, '\p{^-Nkoo}', "");
+    Expect(1, 64832, '\P{-Nkoo}', "");
+    Expect(0, 64832, '\P{^-Nkoo}', "");
+    Error('\p{- IS_Nkoo/a/}');
+    Error('\P{- IS_Nkoo/a/}');
     Expect(1, 64831, '\p{isnkoo}', "");
     Expect(0, 64831, '\p{^isnkoo}', "");
     Expect(0, 64831, '\P{isnkoo}', "");
@@ -113925,16 +115133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 64832, '\p{^isnkoo}', "");
     Expect(1, 64832, '\P{isnkoo}', "");
     Expect(0, 64832, '\P{^isnkoo}', "");
-    Expect(1, 64831, '\p{__Is_Nkoo}', "");
-    Expect(0, 64831, '\p{^__Is_Nkoo}', "");
-    Expect(0, 64831, '\P{__Is_Nkoo}', "");
-    Expect(1, 64831, '\P{^__Is_Nkoo}', "");
-    Expect(0, 64832, '\p{__Is_Nkoo}', "");
-    Expect(1, 64832, '\p{^__Is_Nkoo}', "");
-    Expect(1, 64832, '\P{__Is_Nkoo}', "");
-    Expect(0, 64832, '\P{^__Is_Nkoo}', "");
-    Error('\p{-/a/no_Block}');
-    Error('\P{-/a/no_Block}');
+    Expect(1, 64831, '\p{ -Is_Nkoo}', "");
+    Expect(0, 64831, '\p{^ -Is_Nkoo}', "");
+    Expect(0, 64831, '\P{ -Is_Nkoo}', "");
+    Expect(1, 64831, '\P{^ -Is_Nkoo}', "");
+    Expect(0, 64832, '\p{ -Is_Nkoo}', "");
+    Expect(1, 64832, '\p{^ -Is_Nkoo}', "");
+    Expect(1, 64832, '\P{ -Is_Nkoo}', "");
+    Expect(0, 64832, '\P{^ -Is_Nkoo}', "");
+    Error('\p{:=  NO_Block}');
+    Error('\P{:=  NO_Block}');
     Expect(1, 918000, '\p{noblock}', "");
     Expect(0, 918000, '\p{^noblock}', "");
     Expect(0, 918000, '\P{noblock}', "");
@@ -113943,16 +115151,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 983040, '\p{^noblock}', "");
     Expect(1, 983040, '\P{noblock}', "");
     Expect(0, 983040, '\P{^noblock}', "");
-    Expect(1, 918000, '\p{_-No_block}', "");
-    Expect(0, 918000, '\p{^_-No_block}', "");
-    Expect(0, 918000, '\P{_-No_block}', "");
-    Expect(1, 918000, '\P{^_-No_block}', "");
-    Expect(0, 983040, '\p{_-No_block}', "");
-    Expect(1, 983040, '\p{^_-No_block}', "");
-    Expect(1, 983040, '\P{_-No_block}', "");
-    Expect(0, 983040, '\P{^_-No_block}', "");
-    Error('\p{:=_	Is_No_Block}');
-    Error('\P{:=_	Is_No_Block}');
+    Expect(1, 918000, '\p{_no_Block}', "");
+    Expect(0, 918000, '\p{^_no_Block}', "");
+    Expect(0, 918000, '\P{_no_Block}', "");
+    Expect(1, 918000, '\P{^_no_Block}', "");
+    Expect(0, 983040, '\p{_no_Block}', "");
+    Expect(1, 983040, '\p{^_no_Block}', "");
+    Expect(1, 983040, '\P{_no_Block}', "");
+    Expect(0, 983040, '\P{^_no_Block}', "");
+    Error('\p{_is_NO_block/a/}');
+    Error('\P{_is_NO_block/a/}');
     Expect(1, 918000, '\p{isnoblock}', "");
     Expect(0, 918000, '\p{^isnoblock}', "");
     Expect(0, 918000, '\P{isnoblock}', "");
@@ -113961,16 +115169,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 983040, '\p{^isnoblock}', "");
     Expect(1, 983040, '\P{isnoblock}', "");
     Expect(0, 983040, '\P{^isnoblock}', "");
-    Expect(1, 918000, '\p{ Is_No_block}', "");
-    Expect(0, 918000, '\p{^ Is_No_block}', "");
-    Expect(0, 918000, '\P{ Is_No_block}', "");
-    Expect(1, 918000, '\P{^ Is_No_block}', "");
-    Expect(0, 983040, '\p{ Is_No_block}', "");
-    Expect(1, 983040, '\p{^ Is_No_block}', "");
-    Expect(1, 983040, '\P{ Is_No_block}', "");
-    Expect(0, 983040, '\P{^ Is_No_block}', "");
-    Error('\p{	:=IN_No_Block}');
-    Error('\P{	:=IN_No_Block}');
+    Expect(1, 918000, '\p{	-Is_No_BLOCK}', "");
+    Expect(0, 918000, '\p{^	-Is_No_BLOCK}', "");
+    Expect(0, 918000, '\P{	-Is_No_BLOCK}', "");
+    Expect(1, 918000, '\P{^	-Is_No_BLOCK}', "");
+    Expect(0, 983040, '\p{	-Is_No_BLOCK}', "");
+    Expect(1, 983040, '\p{^	-Is_No_BLOCK}', "");
+    Expect(1, 983040, '\P{	-Is_No_BLOCK}', "");
+    Expect(0, 983040, '\P{^	-Is_No_BLOCK}', "");
+    Error('\p{:=	in_NO_block}');
+    Error('\P{:=	in_NO_block}');
     Expect(1, 918000, '\p{innoblock}', "");
     Expect(0, 918000, '\p{^innoblock}', "");
     Expect(0, 918000, '\P{innoblock}', "");
@@ -113979,16 +115187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 983040, '\p{^innoblock}', "");
     Expect(1, 983040, '\P{innoblock}', "");
     Expect(0, 983040, '\P{^innoblock}', "");
-    Expect(1, 918000, '\p{ 	in_NO_BLOCK}', "");
-    Expect(0, 918000, '\p{^ 	in_NO_BLOCK}', "");
-    Expect(0, 918000, '\P{ 	in_NO_BLOCK}', "");
-    Expect(1, 918000, '\P{^ 	in_NO_BLOCK}', "");
-    Expect(0, 983040, '\p{ 	in_NO_BLOCK}', "");
-    Expect(1, 983040, '\p{^ 	in_NO_BLOCK}', "");
-    Expect(1, 983040, '\P{ 	in_NO_BLOCK}', "");
-    Expect(0, 983040, '\P{^ 	in_NO_BLOCK}', "");
-    Error('\p{:=	_NB}');
-    Error('\P{:=	_NB}');
+    Expect(1, 918000, '\p{ In_no_Block}', "");
+    Expect(0, 918000, '\p{^ In_no_Block}', "");
+    Expect(0, 918000, '\P{ In_no_Block}', "");
+    Expect(1, 918000, '\P{^ In_no_Block}', "");
+    Expect(0, 983040, '\p{ In_no_Block}', "");
+    Expect(1, 983040, '\p{^ In_no_Block}', "");
+    Expect(1, 983040, '\P{ In_no_Block}', "");
+    Expect(0, 983040, '\P{^ In_no_Block}', "");
+    Error('\p{:=_NB}');
+    Error('\P{:=_NB}');
     Expect(1, 918000, '\p{nb}', "");
     Expect(0, 918000, '\p{^nb}', "");
     Expect(0, 918000, '\P{nb}', "");
@@ -113997,16 +115205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 983040, '\p{^nb}', "");
     Expect(1, 983040, '\P{nb}', "");
     Expect(0, 983040, '\P{^nb}', "");
-    Expect(1, 918000, '\p{ NB}', "");
-    Expect(0, 918000, '\p{^ NB}', "");
-    Expect(0, 918000, '\P{ NB}', "");
-    Expect(1, 918000, '\P{^ NB}', "");
-    Expect(0, 983040, '\p{ NB}', "");
-    Expect(1, 983040, '\p{^ NB}', "");
-    Expect(1, 983040, '\P{ NB}', "");
-    Expect(0, 983040, '\P{^ NB}', "");
-    Error('\p{:=-	Is_nb}');
-    Error('\P{:=-	Is_nb}');
+    Expect(1, 918000, '\p{  NB}', "");
+    Expect(0, 918000, '\p{^  NB}', "");
+    Expect(0, 918000, '\P{  NB}', "");
+    Expect(1, 918000, '\P{^  NB}', "");
+    Expect(0, 983040, '\p{  NB}', "");
+    Expect(1, 983040, '\p{^  NB}', "");
+    Expect(1, 983040, '\P{  NB}', "");
+    Expect(0, 983040, '\P{^  NB}', "");
+    Error('\p{_-is_NB:=}');
+    Error('\P{_-is_NB:=}');
     Expect(1, 918000, '\p{isnb}', "");
     Expect(0, 918000, '\p{^isnb}', "");
     Expect(0, 918000, '\P{isnb}', "");
@@ -114015,16 +115223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 983040, '\p{^isnb}', "");
     Expect(1, 983040, '\P{isnb}', "");
     Expect(0, 983040, '\P{^isnb}', "");
-    Expect(1, 918000, '\p{__is_NB}', "");
-    Expect(0, 918000, '\p{^__is_NB}', "");
-    Expect(0, 918000, '\P{__is_NB}', "");
-    Expect(1, 918000, '\P{^__is_NB}', "");
-    Expect(0, 983040, '\p{__is_NB}', "");
-    Expect(1, 983040, '\p{^__is_NB}', "");
-    Expect(1, 983040, '\P{__is_NB}', "");
-    Expect(0, 983040, '\P{^__is_NB}', "");
-    Error('\p{	/a/in_NB}');
-    Error('\P{	/a/in_NB}');
+    Expect(1, 918000, '\p{-IS_nb}', "");
+    Expect(0, 918000, '\p{^-IS_nb}', "");
+    Expect(0, 918000, '\P{-IS_nb}', "");
+    Expect(1, 918000, '\P{^-IS_nb}', "");
+    Expect(0, 983040, '\p{-IS_nb}', "");
+    Expect(1, 983040, '\p{^-IS_nb}', "");
+    Expect(1, 983040, '\P{-IS_nb}', "");
+    Expect(0, 983040, '\P{^-IS_nb}', "");
+    Error('\p{-	In_NB/a/}');
+    Error('\P{-	In_NB/a/}');
     Expect(1, 918000, '\p{innb}', "");
     Expect(0, 918000, '\p{^innb}', "");
     Expect(0, 918000, '\P{innb}', "");
@@ -114033,16 +115241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 983040, '\p{^innb}', "");
     Expect(1, 983040, '\P{innb}', "");
     Expect(0, 983040, '\P{^innb}', "");
-    Expect(1, 918000, '\p{-	In_NB}', "");
-    Expect(0, 918000, '\p{^-	In_NB}', "");
-    Expect(0, 918000, '\P{-	In_NB}', "");
-    Expect(1, 918000, '\P{^-	In_NB}', "");
-    Expect(0, 983040, '\p{-	In_NB}', "");
-    Expect(1, 983040, '\p{^-	In_NB}', "");
-    Expect(1, 983040, '\P{-	In_NB}', "");
-    Expect(0, 983040, '\P{^-	In_NB}', "");
-    Error('\p{ Noncharacter_Code_Point:=}');
-    Error('\P{ Noncharacter_Code_Point:=}');
+    Expect(1, 918000, '\p{-_in_NB}', "");
+    Expect(0, 918000, '\p{^-_in_NB}', "");
+    Expect(0, 918000, '\P{-_in_NB}', "");
+    Expect(1, 918000, '\P{^-_in_NB}', "");
+    Expect(0, 983040, '\p{-_in_NB}', "");
+    Expect(1, 983040, '\p{^-_in_NB}', "");
+    Expect(1, 983040, '\P{-_in_NB}', "");
+    Expect(0, 983040, '\P{^-_in_NB}', "");
+    Error('\p{-Noncharacter_Code_Point:=}');
+    Error('\P{-Noncharacter_Code_Point:=}');
     Expect(1, 1114111, '\p{noncharactercodepoint}', "");
     Expect(0, 1114111, '\p{^noncharactercodepoint}', "");
     Expect(0, 1114111, '\P{noncharactercodepoint}', "");
@@ -114051,16 +115259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1114109, '\p{^noncharactercodepoint}', "");
     Expect(1, 1114109, '\P{noncharactercodepoint}', "");
     Expect(0, 1114109, '\P{^noncharactercodepoint}', "");
-    Expect(1, 1114111, '\p{	NONCHARACTER_CODE_Point}', "");
-    Expect(0, 1114111, '\p{^	NONCHARACTER_CODE_Point}', "");
-    Expect(0, 1114111, '\P{	NONCHARACTER_CODE_Point}', "");
-    Expect(1, 1114111, '\P{^	NONCHARACTER_CODE_Point}', "");
-    Expect(0, 1114109, '\p{	NONCHARACTER_CODE_Point}', "");
-    Expect(1, 1114109, '\p{^	NONCHARACTER_CODE_Point}', "");
-    Expect(1, 1114109, '\P{	NONCHARACTER_CODE_Point}', "");
-    Expect(0, 1114109, '\P{^	NONCHARACTER_CODE_Point}', "");
-    Error('\p{:=	-Is_Noncharacter_Code_Point}');
-    Error('\P{:=	-Is_Noncharacter_Code_Point}');
+    Expect(1, 1114111, '\p{-NONCHARACTER_Code_Point}', "");
+    Expect(0, 1114111, '\p{^-NONCHARACTER_Code_Point}', "");
+    Expect(0, 1114111, '\P{-NONCHARACTER_Code_Point}', "");
+    Expect(1, 1114111, '\P{^-NONCHARACTER_Code_Point}', "");
+    Expect(0, 1114109, '\p{-NONCHARACTER_Code_Point}', "");
+    Expect(1, 1114109, '\p{^-NONCHARACTER_Code_Point}', "");
+    Expect(1, 1114109, '\P{-NONCHARACTER_Code_Point}', "");
+    Expect(0, 1114109, '\P{^-NONCHARACTER_Code_Point}', "");
+    Error('\p{_-IS_Noncharacter_Code_POINT:=}');
+    Error('\P{_-IS_Noncharacter_Code_POINT:=}');
     Expect(1, 1114111, '\p{isnoncharactercodepoint}', "");
     Expect(0, 1114111, '\p{^isnoncharactercodepoint}', "");
     Expect(0, 1114111, '\P{isnoncharactercodepoint}', "");
@@ -114069,16 +115277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1114109, '\p{^isnoncharactercodepoint}', "");
     Expect(1, 1114109, '\P{isnoncharactercodepoint}', "");
     Expect(0, 1114109, '\P{^isnoncharactercodepoint}', "");
-    Expect(1, 1114111, '\p{_	is_NONCHARACTER_Code_Point}', "");
-    Expect(0, 1114111, '\p{^_	is_NONCHARACTER_Code_Point}', "");
-    Expect(0, 1114111, '\P{_	is_NONCHARACTER_Code_Point}', "");
-    Expect(1, 1114111, '\P{^_	is_NONCHARACTER_Code_Point}', "");
-    Expect(0, 1114109, '\p{_	is_NONCHARACTER_Code_Point}', "");
-    Expect(1, 1114109, '\p{^_	is_NONCHARACTER_Code_Point}', "");
-    Expect(1, 1114109, '\P{_	is_NONCHARACTER_Code_Point}', "");
-    Expect(0, 1114109, '\P{^_	is_NONCHARACTER_Code_Point}', "");
-    Error('\p{-/a/nchar}');
-    Error('\P{-/a/nchar}');
+    Expect(1, 1114111, '\p{-_IS_Noncharacter_Code_Point}', "");
+    Expect(0, 1114111, '\p{^-_IS_Noncharacter_Code_Point}', "");
+    Expect(0, 1114111, '\P{-_IS_Noncharacter_Code_Point}', "");
+    Expect(1, 1114111, '\P{^-_IS_Noncharacter_Code_Point}', "");
+    Expect(0, 1114109, '\p{-_IS_Noncharacter_Code_Point}', "");
+    Expect(1, 1114109, '\p{^-_IS_Noncharacter_Code_Point}', "");
+    Expect(1, 1114109, '\P{-_IS_Noncharacter_Code_Point}', "");
+    Expect(0, 1114109, '\P{^-_IS_Noncharacter_Code_Point}', "");
+    Error('\p{_NChar:=}');
+    Error('\P{_NChar:=}');
     Expect(1, 1114111, '\p{nchar}', "");
     Expect(0, 1114111, '\p{^nchar}', "");
     Expect(0, 1114111, '\P{nchar}', "");
@@ -114087,16 +115295,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1114109, '\p{^nchar}', "");
     Expect(1, 1114109, '\P{nchar}', "");
     Expect(0, 1114109, '\P{^nchar}', "");
-    Expect(1, 1114111, '\p{	NCHAR}', "");
-    Expect(0, 1114111, '\p{^	NCHAR}', "");
-    Expect(0, 1114111, '\P{	NCHAR}', "");
-    Expect(1, 1114111, '\P{^	NCHAR}', "");
-    Expect(0, 1114109, '\p{	NCHAR}', "");
-    Expect(1, 1114109, '\p{^	NCHAR}', "");
-    Expect(1, 1114109, '\P{	NCHAR}', "");
-    Expect(0, 1114109, '\P{^	NCHAR}', "");
-    Error('\p{	:=IS_NChar}');
-    Error('\P{	:=IS_NChar}');
+    Expect(1, 1114111, '\p{_nchar}', "");
+    Expect(0, 1114111, '\p{^_nchar}', "");
+    Expect(0, 1114111, '\P{_nchar}', "");
+    Expect(1, 1114111, '\P{^_nchar}', "");
+    Expect(0, 1114109, '\p{_nchar}', "");
+    Expect(1, 1114109, '\p{^_nchar}', "");
+    Expect(1, 1114109, '\P{_nchar}', "");
+    Expect(0, 1114109, '\P{^_nchar}', "");
+    Error('\p{-/a/Is_nchar}');
+    Error('\P{-/a/Is_nchar}');
     Expect(1, 1114111, '\p{isnchar}', "");
     Expect(0, 1114111, '\p{^isnchar}', "");
     Expect(0, 1114111, '\P{isnchar}', "");
@@ -114105,16 +115313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 1114109, '\p{^isnchar}', "");
     Expect(1, 1114109, '\P{isnchar}', "");
     Expect(0, 1114109, '\P{^isnchar}', "");
-    Expect(1, 1114111, '\p{-Is_NChar}', "");
-    Expect(0, 1114111, '\p{^-Is_NChar}', "");
-    Expect(0, 1114111, '\P{-Is_NChar}', "");
-    Expect(1, 1114111, '\P{^-Is_NChar}', "");
-    Expect(0, 1114109, '\p{-Is_NChar}', "");
-    Expect(1, 1114109, '\p{^-Is_NChar}', "");
-    Expect(1, 1114109, '\P{-Is_NChar}', "");
-    Expect(0, 1114109, '\P{^-Is_NChar}', "");
-    Error('\p{  NONSPACING_Mark/a/}');
-    Error('\P{  NONSPACING_Mark/a/}');
+    Expect(1, 1114111, '\p{__IS_NChar}', "");
+    Expect(0, 1114111, '\p{^__IS_NChar}', "");
+    Expect(0, 1114111, '\P{__IS_NChar}', "");
+    Expect(1, 1114111, '\P{^__IS_NChar}', "");
+    Expect(0, 1114109, '\p{__IS_NChar}', "");
+    Expect(1, 1114109, '\p{^__IS_NChar}', "");
+    Expect(1, 1114109, '\P{__IS_NChar}', "");
+    Expect(0, 1114109, '\P{^__IS_NChar}', "");
+    Error('\p{ :=nonspacing_Mark}');
+    Error('\P{ :=nonspacing_Mark}');
     Expect(1, 917999, '\p{nonspacingmark}', "");
     Expect(0, 917999, '\p{^nonspacingmark}', "");
     Expect(0, 917999, '\P{nonspacingmark}', "");
@@ -114123,16 +115331,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^nonspacingmark}', "");
     Expect(1, 918000, '\P{nonspacingmark}', "");
     Expect(0, 918000, '\P{^nonspacingmark}', "");
-    Expect(1, 917999, '\p{ _Nonspacing_Mark}', "");
-    Expect(0, 917999, '\p{^ _Nonspacing_Mark}', "");
-    Expect(0, 917999, '\P{ _Nonspacing_Mark}', "");
-    Expect(1, 917999, '\P{^ _Nonspacing_Mark}', "");
-    Expect(0, 918000, '\p{ _Nonspacing_Mark}', "");
-    Expect(1, 918000, '\p{^ _Nonspacing_Mark}', "");
-    Expect(1, 918000, '\P{ _Nonspacing_Mark}', "");
-    Expect(0, 918000, '\P{^ _Nonspacing_Mark}', "");
-    Error('\p{/a/  Is_NONSPACING_mark}');
-    Error('\P{/a/  Is_NONSPACING_mark}');
+    Expect(1, 917999, '\p{- NONSPACING_Mark}', "");
+    Expect(0, 917999, '\p{^- NONSPACING_Mark}', "");
+    Expect(0, 917999, '\P{- NONSPACING_Mark}', "");
+    Expect(1, 917999, '\P{^- NONSPACING_Mark}', "");
+    Expect(0, 918000, '\p{- NONSPACING_Mark}', "");
+    Expect(1, 918000, '\p{^- NONSPACING_Mark}', "");
+    Expect(1, 918000, '\P{- NONSPACING_Mark}', "");
+    Expect(0, 918000, '\P{^- NONSPACING_Mark}', "");
+    Error('\p{--IS_Nonspacing_MARK/a/}');
+    Error('\P{--IS_Nonspacing_MARK/a/}');
     Expect(1, 917999, '\p{isnonspacingmark}', "");
     Expect(0, 917999, '\p{^isnonspacingmark}', "");
     Expect(0, 917999, '\P{isnonspacingmark}', "");
@@ -114141,16 +115349,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isnonspacingmark}', "");
     Expect(1, 918000, '\P{isnonspacingmark}', "");
     Expect(0, 918000, '\P{^isnonspacingmark}', "");
-    Expect(1, 917999, '\p{	-is_NONSPACING_Mark}', "");
-    Expect(0, 917999, '\p{^	-is_NONSPACING_Mark}', "");
-    Expect(0, 917999, '\P{	-is_NONSPACING_Mark}', "");
-    Expect(1, 917999, '\P{^	-is_NONSPACING_Mark}', "");
-    Expect(0, 918000, '\p{	-is_NONSPACING_Mark}', "");
-    Expect(1, 918000, '\p{^	-is_NONSPACING_Mark}', "");
-    Expect(1, 918000, '\P{	-is_NONSPACING_Mark}', "");
-    Expect(0, 918000, '\P{^	-is_NONSPACING_Mark}', "");
-    Error('\p{_/a/Mn}');
-    Error('\P{_/a/Mn}');
+    Expect(1, 917999, '\p{ Is_NONSPACING_mark}', "");
+    Expect(0, 917999, '\p{^ Is_NONSPACING_mark}', "");
+    Expect(0, 917999, '\P{ Is_NONSPACING_mark}', "");
+    Expect(1, 917999, '\P{^ Is_NONSPACING_mark}', "");
+    Expect(0, 918000, '\p{ Is_NONSPACING_mark}', "");
+    Expect(1, 918000, '\p{^ Is_NONSPACING_mark}', "");
+    Expect(1, 918000, '\P{ Is_NONSPACING_mark}', "");
+    Expect(0, 918000, '\P{^ Is_NONSPACING_mark}', "");
+    Error('\p{	_Mn/a/}');
+    Error('\P{	_Mn/a/}');
     Expect(1, 917999, '\p{mn}', "");
     Expect(0, 917999, '\p{^mn}', "");
     Expect(0, 917999, '\P{mn}', "");
@@ -114159,16 +115367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^mn}', "");
     Expect(1, 918000, '\P{mn}', "");
     Expect(0, 918000, '\P{^mn}', "");
-    Expect(1, 917999, '\p{_mn}', "");
-    Expect(0, 917999, '\p{^_mn}', "");
-    Expect(0, 917999, '\P{_mn}', "");
-    Expect(1, 917999, '\P{^_mn}', "");
-    Expect(0, 918000, '\p{_mn}', "");
-    Expect(1, 918000, '\p{^_mn}', "");
-    Expect(1, 918000, '\P{_mn}', "");
-    Expect(0, 918000, '\P{^_mn}', "");
-    Error('\p{:=	-IS_MN}');
-    Error('\P{:=	-IS_MN}');
+    Expect(1, 917999, '\p{	-mn}', "");
+    Expect(0, 917999, '\p{^	-mn}', "");
+    Expect(0, 917999, '\P{	-mn}', "");
+    Expect(1, 917999, '\P{^	-mn}', "");
+    Expect(0, 918000, '\p{	-mn}', "");
+    Expect(1, 918000, '\p{^	-mn}', "");
+    Expect(1, 918000, '\P{	-mn}', "");
+    Expect(0, 918000, '\P{^	-mn}', "");
+    Error('\p{/a/IS_Mn}');
+    Error('\P{/a/IS_Mn}');
     Expect(1, 917999, '\p{ismn}', "");
     Expect(0, 917999, '\p{^ismn}', "");
     Expect(0, 917999, '\P{ismn}', "");
@@ -114177,16 +115385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^ismn}', "");
     Expect(1, 918000, '\P{ismn}', "");
     Expect(0, 918000, '\P{^ismn}', "");
-    Expect(1, 917999, '\p{- is_Mn}', "");
-    Expect(0, 917999, '\p{^- is_Mn}', "");
-    Expect(0, 917999, '\P{- is_Mn}', "");
-    Expect(1, 917999, '\P{^- is_Mn}', "");
-    Expect(0, 918000, '\p{- is_Mn}', "");
-    Expect(1, 918000, '\p{^- is_Mn}', "");
-    Expect(1, 918000, '\P{- is_Mn}', "");
-    Expect(0, 918000, '\P{^- is_Mn}', "");
-    Error('\p{:=Number}');
-    Error('\P{:=Number}');
+    Expect(1, 917999, '\p{ is_mn}', "");
+    Expect(0, 917999, '\p{^ is_mn}', "");
+    Expect(0, 917999, '\P{ is_mn}', "");
+    Expect(1, 917999, '\P{^ is_mn}', "");
+    Expect(0, 918000, '\p{ is_mn}', "");
+    Expect(1, 918000, '\p{^ is_mn}', "");
+    Expect(1, 918000, '\P{ is_mn}', "");
+    Expect(0, 918000, '\P{^ is_mn}', "");
+    Error('\p{ /a/number}');
+    Error('\P{ /a/number}');
     Expect(1, 130041, '\p{number}', "");
     Expect(0, 130041, '\p{^number}', "");
     Expect(0, 130041, '\P{number}', "");
@@ -114195,16 +115403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^number}', "");
     Expect(1, 130042, '\P{number}', "");
     Expect(0, 130042, '\P{^number}', "");
-    Expect(1, 130041, '\p{	_Number}', "");
-    Expect(0, 130041, '\p{^	_Number}', "");
-    Expect(0, 130041, '\P{	_Number}', "");
-    Expect(1, 130041, '\P{^	_Number}', "");
-    Expect(0, 130042, '\p{	_Number}', "");
-    Expect(1, 130042, '\p{^	_Number}', "");
-    Expect(1, 130042, '\P{	_Number}', "");
-    Expect(0, 130042, '\P{^	_Number}', "");
-    Error('\p{_/a/Is_NUMBER}');
-    Error('\P{_/a/Is_NUMBER}');
+    Expect(1, 130041, '\p{_Number}', "");
+    Expect(0, 130041, '\p{^_Number}', "");
+    Expect(0, 130041, '\P{_Number}', "");
+    Expect(1, 130041, '\P{^_Number}', "");
+    Expect(0, 130042, '\p{_Number}', "");
+    Expect(1, 130042, '\p{^_Number}', "");
+    Expect(1, 130042, '\P{_Number}', "");
+    Expect(0, 130042, '\P{^_Number}', "");
+    Error('\p{/a/	-is_Number}');
+    Error('\P{/a/	-is_Number}');
     Expect(1, 130041, '\p{isnumber}', "");
     Expect(0, 130041, '\p{^isnumber}', "");
     Expect(0, 130041, '\P{isnumber}', "");
@@ -114213,16 +115421,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^isnumber}', "");
     Expect(1, 130042, '\P{isnumber}', "");
     Expect(0, 130042, '\P{^isnumber}', "");
-    Expect(1, 130041, '\p{ Is_number}', "");
-    Expect(0, 130041, '\p{^ Is_number}', "");
-    Expect(0, 130041, '\P{ Is_number}', "");
-    Expect(1, 130041, '\P{^ Is_number}', "");
-    Expect(0, 130042, '\p{ Is_number}', "");
-    Expect(1, 130042, '\p{^ Is_number}', "");
-    Expect(1, 130042, '\P{ Is_number}', "");
-    Expect(0, 130042, '\P{^ Is_number}', "");
-    Error('\p{	:=N}');
-    Error('\P{	:=N}');
+    Expect(1, 130041, '\p{_	IS_NUMBER}', "");
+    Expect(0, 130041, '\p{^_	IS_NUMBER}', "");
+    Expect(0, 130041, '\P{_	IS_NUMBER}', "");
+    Expect(1, 130041, '\P{^_	IS_NUMBER}', "");
+    Expect(0, 130042, '\p{_	IS_NUMBER}', "");
+    Expect(1, 130042, '\p{^_	IS_NUMBER}', "");
+    Expect(1, 130042, '\P{_	IS_NUMBER}', "");
+    Expect(0, 130042, '\P{^_	IS_NUMBER}', "");
+    Error('\p{:=_-N}');
+    Error('\P{:=_-N}');
     Expect(1, 130041, '\p{n}', "");
     Expect(0, 130041, '\p{^n}', "");
     Expect(0, 130041, '\P{n}', "");
@@ -114231,16 +115439,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^n}', "");
     Expect(1, 130042, '\P{n}', "");
     Expect(0, 130042, '\P{^n}', "");
-    Expect(1, 130041, '\p{	-n}', "");
-    Expect(0, 130041, '\p{^	-n}', "");
-    Expect(0, 130041, '\P{	-n}', "");
-    Expect(1, 130041, '\P{^	-n}', "");
-    Expect(0, 130042, '\p{	-n}', "");
-    Expect(1, 130042, '\p{^	-n}', "");
-    Expect(1, 130042, '\P{	-n}', "");
-    Expect(0, 130042, '\P{^	-n}', "");
-    Error('\p{/a/_ IS_n}');
-    Error('\P{/a/_ IS_n}');
+    Expect(1, 130041, '\p{ 	N}', "");
+    Expect(0, 130041, '\p{^ 	N}', "");
+    Expect(0, 130041, '\P{ 	N}', "");
+    Expect(1, 130041, '\P{^ 	N}', "");
+    Expect(0, 130042, '\p{ 	N}', "");
+    Expect(1, 130042, '\p{^ 	N}', "");
+    Expect(1, 130042, '\P{ 	N}', "");
+    Expect(0, 130042, '\P{^ 	N}', "");
+    Error('\p{/a/__IS_n}');
+    Error('\P{/a/__IS_n}');
     Expect(1, 130041, '\p{isn}', "");
     Expect(0, 130041, '\p{^isn}', "");
     Expect(0, 130041, '\P{isn}', "");
@@ -114249,16 +115457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 130042, '\p{^isn}', "");
     Expect(1, 130042, '\P{isn}', "");
     Expect(0, 130042, '\P{^isn}', "");
-    Expect(1, 130041, '\p{_-is_N}', "");
-    Expect(0, 130041, '\p{^_-is_N}', "");
-    Expect(0, 130041, '\P{_-is_N}', "");
-    Expect(1, 130041, '\P{^_-is_N}', "");
-    Expect(0, 130042, '\p{_-is_N}', "");
-    Expect(1, 130042, '\p{^_-is_N}', "");
-    Expect(1, 130042, '\P{_-is_N}', "");
-    Expect(0, 130042, '\P{^_-is_N}', "");
-    Error('\p{ :=number_Forms}');
-    Error('\P{ :=number_Forms}');
+    Expect(1, 130041, '\p{Is_n}', "");
+    Expect(0, 130041, '\p{^Is_n}', "");
+    Expect(0, 130041, '\P{Is_n}', "");
+    Expect(1, 130041, '\P{^Is_n}', "");
+    Expect(0, 130042, '\p{Is_n}', "");
+    Expect(1, 130042, '\p{^Is_n}', "");
+    Expect(1, 130042, '\P{Is_n}', "");
+    Expect(0, 130042, '\P{^Is_n}', "");
+    Error('\p{-NUMBER_forms/a/}');
+    Error('\P{-NUMBER_forms/a/}');
     Expect(1, 8591, '\p{numberforms}', "");
     Expect(0, 8591, '\p{^numberforms}', "");
     Expect(0, 8591, '\P{numberforms}', "");
@@ -114267,16 +115475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8592, '\p{^numberforms}', "");
     Expect(1, 8592, '\P{numberforms}', "");
     Expect(0, 8592, '\P{^numberforms}', "");
-    Expect(1, 8591, '\p{-	Number_Forms}', "");
-    Expect(0, 8591, '\p{^-	Number_Forms}', "");
-    Expect(0, 8591, '\P{-	Number_Forms}', "");
-    Expect(1, 8591, '\P{^-	Number_Forms}', "");
-    Expect(0, 8592, '\p{-	Number_Forms}', "");
-    Expect(1, 8592, '\p{^-	Number_Forms}', "");
-    Expect(1, 8592, '\P{-	Number_Forms}', "");
-    Expect(0, 8592, '\P{^-	Number_Forms}', "");
-    Error('\p{/a/is_number_FORMS}');
-    Error('\P{/a/is_number_FORMS}');
+    Expect(1, 8591, '\p{-	number_FORMS}', "");
+    Expect(0, 8591, '\p{^-	number_FORMS}', "");
+    Expect(0, 8591, '\P{-	number_FORMS}', "");
+    Expect(1, 8591, '\P{^-	number_FORMS}', "");
+    Expect(0, 8592, '\p{-	number_FORMS}', "");
+    Expect(1, 8592, '\p{^-	number_FORMS}', "");
+    Expect(1, 8592, '\P{-	number_FORMS}', "");
+    Expect(0, 8592, '\P{^-	number_FORMS}', "");
+    Error('\p{-	Is_Number_Forms/a/}');
+    Error('\P{-	Is_Number_Forms/a/}');
     Expect(1, 8591, '\p{isnumberforms}', "");
     Expect(0, 8591, '\p{^isnumberforms}', "");
     Expect(0, 8591, '\P{isnumberforms}', "");
@@ -114285,16 +115493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8592, '\p{^isnumberforms}', "");
     Expect(1, 8592, '\P{isnumberforms}', "");
     Expect(0, 8592, '\P{^isnumberforms}', "");
-    Expect(1, 8591, '\p{_is_Number_FORMS}', "");
-    Expect(0, 8591, '\p{^_is_Number_FORMS}', "");
-    Expect(0, 8591, '\P{_is_Number_FORMS}', "");
-    Expect(1, 8591, '\P{^_is_Number_FORMS}', "");
-    Expect(0, 8592, '\p{_is_Number_FORMS}', "");
-    Expect(1, 8592, '\p{^_is_Number_FORMS}', "");
-    Expect(1, 8592, '\P{_is_Number_FORMS}', "");
-    Expect(0, 8592, '\P{^_is_Number_FORMS}', "");
-    Error('\p{:=		IN_Number_forms}');
-    Error('\P{:=		IN_Number_forms}');
+    Expect(1, 8591, '\p{-_Is_Number_FORMS}', "");
+    Expect(0, 8591, '\p{^-_Is_Number_FORMS}', "");
+    Expect(0, 8591, '\P{-_Is_Number_FORMS}', "");
+    Expect(1, 8591, '\P{^-_Is_Number_FORMS}', "");
+    Expect(0, 8592, '\p{-_Is_Number_FORMS}', "");
+    Expect(1, 8592, '\p{^-_Is_Number_FORMS}', "");
+    Expect(1, 8592, '\P{-_Is_Number_FORMS}', "");
+    Expect(0, 8592, '\P{^-_Is_Number_FORMS}', "");
+    Error('\p{_/a/IN_number_Forms}');
+    Error('\P{_/a/IN_number_Forms}');
     Expect(1, 8591, '\p{innumberforms}', "");
     Expect(0, 8591, '\p{^innumberforms}', "");
     Expect(0, 8591, '\P{innumberforms}', "");
@@ -114303,16 +115511,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8592, '\p{^innumberforms}', "");
     Expect(1, 8592, '\P{innumberforms}', "");
     Expect(0, 8592, '\P{^innumberforms}', "");
-    Expect(1, 8591, '\p{ 	In_NUMBER_Forms}', "");
-    Expect(0, 8591, '\p{^ 	In_NUMBER_Forms}', "");
-    Expect(0, 8591, '\P{ 	In_NUMBER_Forms}', "");
-    Expect(1, 8591, '\P{^ 	In_NUMBER_Forms}', "");
-    Expect(0, 8592, '\p{ 	In_NUMBER_Forms}', "");
-    Expect(1, 8592, '\p{^ 	In_NUMBER_Forms}', "");
-    Expect(1, 8592, '\P{ 	In_NUMBER_Forms}', "");
-    Expect(0, 8592, '\P{^ 	In_NUMBER_Forms}', "");
-    Error('\p{/a/	-Nushu}');
-    Error('\P{/a/	-Nushu}');
+    Expect(1, 8591, '\p{ 	In_Number_Forms}', "");
+    Expect(0, 8591, '\p{^ 	In_Number_Forms}', "");
+    Expect(0, 8591, '\P{ 	In_Number_Forms}', "");
+    Expect(1, 8591, '\P{^ 	In_Number_Forms}', "");
+    Expect(0, 8592, '\p{ 	In_Number_Forms}', "");
+    Expect(1, 8592, '\p{^ 	In_Number_Forms}', "");
+    Expect(1, 8592, '\P{ 	In_Number_Forms}', "");
+    Expect(0, 8592, '\P{^ 	In_Number_Forms}', "");
+    Error('\p{/a/ 	Nushu}');
+    Error('\P{/a/ 	Nushu}');
     Expect(1, 111355, '\p{nushu}', "");
     Expect(0, 111355, '\p{^nushu}', "");
     Expect(0, 111355, '\P{nushu}', "");
@@ -114321,16 +115529,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 111356, '\p{^nushu}', "");
     Expect(1, 111356, '\P{nushu}', "");
     Expect(0, 111356, '\P{^nushu}', "");
-    Expect(1, 111355, '\p{-	Nushu}', "");
-    Expect(0, 111355, '\p{^-	Nushu}', "");
-    Expect(0, 111355, '\P{-	Nushu}', "");
-    Expect(1, 111355, '\P{^-	Nushu}', "");
-    Expect(0, 111356, '\p{-	Nushu}', "");
-    Expect(1, 111356, '\p{^-	Nushu}', "");
-    Expect(1, 111356, '\P{-	Nushu}', "");
-    Expect(0, 111356, '\P{^-	Nushu}', "");
-    Error('\p{  is_nushu:=}');
-    Error('\P{  is_nushu:=}');
+    Expect(1, 111355, '\p{-Nushu}', "");
+    Expect(0, 111355, '\p{^-Nushu}', "");
+    Expect(0, 111355, '\P{-Nushu}', "");
+    Expect(1, 111355, '\P{^-Nushu}', "");
+    Expect(0, 111356, '\p{-Nushu}', "");
+    Expect(1, 111356, '\p{^-Nushu}', "");
+    Expect(1, 111356, '\P{-Nushu}', "");
+    Expect(0, 111356, '\P{^-Nushu}', "");
+    Error('\p{_is_nushu:=}');
+    Error('\P{_is_nushu:=}');
     Expect(1, 111355, '\p{isnushu}', "");
     Expect(0, 111355, '\p{^isnushu}', "");
     Expect(0, 111355, '\P{isnushu}', "");
@@ -114339,16 +115547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 111356, '\p{^isnushu}', "");
     Expect(1, 111356, '\P{isnushu}', "");
     Expect(0, 111356, '\P{^isnushu}', "");
-    Expect(1, 111355, '\p{ IS_Nushu}', "");
-    Expect(0, 111355, '\p{^ IS_Nushu}', "");
-    Expect(0, 111355, '\P{ IS_Nushu}', "");
-    Expect(1, 111355, '\P{^ IS_Nushu}', "");
-    Expect(0, 111356, '\p{ IS_Nushu}', "");
-    Expect(1, 111356, '\p{^ IS_Nushu}', "");
-    Expect(1, 111356, '\P{ IS_Nushu}', "");
-    Expect(0, 111356, '\P{^ IS_Nushu}', "");
-    Error('\p{/a/		NSHU}');
-    Error('\P{/a/		NSHU}');
+    Expect(1, 111355, '\p{	 is_Nushu}', "");
+    Expect(0, 111355, '\p{^	 is_Nushu}', "");
+    Expect(0, 111355, '\P{	 is_Nushu}', "");
+    Expect(1, 111355, '\P{^	 is_Nushu}', "");
+    Expect(0, 111356, '\p{	 is_Nushu}', "");
+    Expect(1, 111356, '\p{^	 is_Nushu}', "");
+    Expect(1, 111356, '\P{	 is_Nushu}', "");
+    Expect(0, 111356, '\P{^	 is_Nushu}', "");
+    Error('\p{:=Nshu}');
+    Error('\P{:=Nshu}');
     Expect(1, 111355, '\p{nshu}', "");
     Expect(0, 111355, '\p{^nshu}', "");
     Expect(0, 111355, '\P{nshu}', "");
@@ -114357,16 +115565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 111356, '\p{^nshu}', "");
     Expect(1, 111356, '\P{nshu}', "");
     Expect(0, 111356, '\P{^nshu}', "");
-    Expect(1, 111355, '\p{	Nshu}', "");
-    Expect(0, 111355, '\p{^	Nshu}', "");
-    Expect(0, 111355, '\P{	Nshu}', "");
-    Expect(1, 111355, '\P{^	Nshu}', "");
-    Expect(0, 111356, '\p{	Nshu}', "");
-    Expect(1, 111356, '\p{^	Nshu}', "");
-    Expect(1, 111356, '\P{	Nshu}', "");
-    Expect(0, 111356, '\P{^	Nshu}', "");
-    Error('\p{ IS_Nshu:=}');
-    Error('\P{ IS_Nshu:=}');
+    Expect(1, 111355, '\p{	_Nshu}', "");
+    Expect(0, 111355, '\p{^	_Nshu}', "");
+    Expect(0, 111355, '\P{	_Nshu}', "");
+    Expect(1, 111355, '\P{^	_Nshu}', "");
+    Expect(0, 111356, '\p{	_Nshu}', "");
+    Expect(1, 111356, '\p{^	_Nshu}', "");
+    Expect(1, 111356, '\P{	_Nshu}', "");
+    Expect(0, 111356, '\P{^	_Nshu}', "");
+    Error('\p{_:=IS_Nshu}');
+    Error('\P{_:=IS_Nshu}');
     Expect(1, 111355, '\p{isnshu}', "");
     Expect(0, 111355, '\p{^isnshu}', "");
     Expect(0, 111355, '\P{isnshu}', "");
@@ -114375,16 +115583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 111356, '\p{^isnshu}', "");
     Expect(1, 111356, '\P{isnshu}', "");
     Expect(0, 111356, '\P{^isnshu}', "");
-    Expect(1, 111355, '\p{ is_nshu}', "");
-    Expect(0, 111355, '\p{^ is_nshu}', "");
-    Expect(0, 111355, '\P{ is_nshu}', "");
-    Expect(1, 111355, '\P{^ is_nshu}', "");
-    Expect(0, 111356, '\p{ is_nshu}', "");
-    Expect(1, 111356, '\p{^ is_nshu}', "");
-    Expect(1, 111356, '\P{ is_nshu}', "");
-    Expect(0, 111356, '\P{^ is_nshu}', "");
-    Error('\p{ 	Nyiakeng_puachue_Hmong/a/}');
-    Error('\P{ 	Nyiakeng_puachue_Hmong/a/}');
+    Expect(1, 111355, '\p{ IS_nshu}', "");
+    Expect(0, 111355, '\p{^ IS_nshu}', "");
+    Expect(0, 111355, '\P{ IS_nshu}', "");
+    Expect(1, 111355, '\P{^ IS_nshu}', "");
+    Expect(0, 111356, '\p{ IS_nshu}', "");
+    Expect(1, 111356, '\p{^ IS_nshu}', "");
+    Expect(1, 111356, '\P{ IS_nshu}', "");
+    Expect(0, 111356, '\P{^ IS_nshu}', "");
+    Error('\p{-:=NYIAKENG_puachue_Hmong}');
+    Error('\P{-:=NYIAKENG_puachue_Hmong}');
     Expect(1, 123215, '\p{nyiakengpuachuehmong}', "");
     Expect(0, 123215, '\p{^nyiakengpuachuehmong}', "");
     Expect(0, 123215, '\P{nyiakengpuachuehmong}', "");
@@ -114393,16 +115601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123216, '\p{^nyiakengpuachuehmong}', "");
     Expect(1, 123216, '\P{nyiakengpuachuehmong}', "");
     Expect(0, 123216, '\P{^nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\p{ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\p{^ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\P{ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123215, '\P{^ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\p{ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\p{^ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\P{ 	Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\P{^ 	Nyiakeng_Puachue_Hmong}', "");
-    Error('\p{_	Is_Nyiakeng_PUACHUE_Hmong:=}');
-    Error('\P{_	Is_Nyiakeng_PUACHUE_Hmong:=}');
+    Expect(1, 123215, '\p{  nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123215, '\p{^  nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123215, '\P{  nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123215, '\P{^  nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123216, '\p{  nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123216, '\p{^  nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123216, '\P{  nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123216, '\P{^  nyiakeng_Puachue_HMONG}', "");
+    Error('\p{:= _is_nyiakeng_puachue_hmong}');
+    Error('\P{:= _is_nyiakeng_puachue_hmong}');
     Expect(1, 123215, '\p{isnyiakengpuachuehmong}', "");
     Expect(0, 123215, '\p{^isnyiakengpuachuehmong}', "");
     Expect(0, 123215, '\P{isnyiakengpuachuehmong}', "");
@@ -114411,16 +115619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123216, '\p{^isnyiakengpuachuehmong}', "");
     Expect(1, 123216, '\P{isnyiakengpuachuehmong}', "");
     Expect(0, 123216, '\P{^isnyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\p{- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\p{^- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123215, '\P{- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123215, '\P{^- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\p{- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\p{^- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(1, 123216, '\P{- Is_Nyiakeng_Puachue_Hmong}', "");
-    Expect(0, 123216, '\P{^- Is_Nyiakeng_Puachue_Hmong}', "");
-    Error('\p{/a/	-HMNP}');
-    Error('\P{/a/	-HMNP}');
+    Expect(1, 123215, '\p{	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123215, '\p{^	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123215, '\P{	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(1, 123215, '\P{^	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123216, '\p{	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(1, 123216, '\p{^	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(1, 123216, '\P{	 is_NYIAKENG_Puachue_hmong}', "");
+    Expect(0, 123216, '\P{^	 is_NYIAKENG_Puachue_hmong}', "");
+    Error('\p{ -hmnp:=}');
+    Error('\P{ -hmnp:=}');
     Expect(1, 123215, '\p{hmnp}', "");
     Expect(0, 123215, '\p{^hmnp}', "");
     Expect(0, 123215, '\P{hmnp}', "");
@@ -114429,16 +115637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123216, '\p{^hmnp}', "");
     Expect(1, 123216, '\P{hmnp}', "");
     Expect(0, 123216, '\P{^hmnp}', "");
-    Expect(1, 123215, '\p{__hmnp}', "");
-    Expect(0, 123215, '\p{^__hmnp}', "");
-    Expect(0, 123215, '\P{__hmnp}', "");
-    Expect(1, 123215, '\P{^__hmnp}', "");
-    Expect(0, 123216, '\p{__hmnp}', "");
-    Expect(1, 123216, '\p{^__hmnp}', "");
-    Expect(1, 123216, '\P{__hmnp}', "");
-    Expect(0, 123216, '\P{^__hmnp}', "");
-    Error('\p{:=IS_Hmnp}');
-    Error('\P{:=IS_Hmnp}');
+    Expect(1, 123215, '\p{ 	Hmnp}', "");
+    Expect(0, 123215, '\p{^ 	Hmnp}', "");
+    Expect(0, 123215, '\P{ 	Hmnp}', "");
+    Expect(1, 123215, '\P{^ 	Hmnp}', "");
+    Expect(0, 123216, '\p{ 	Hmnp}', "");
+    Expect(1, 123216, '\p{^ 	Hmnp}', "");
+    Expect(1, 123216, '\P{ 	Hmnp}', "");
+    Expect(0, 123216, '\P{^ 	Hmnp}', "");
+    Error('\p{  Is_HMNP/a/}');
+    Error('\P{  Is_HMNP/a/}');
     Expect(1, 123215, '\p{ishmnp}', "");
     Expect(0, 123215, '\p{^ishmnp}', "");
     Expect(0, 123215, '\P{ishmnp}', "");
@@ -114447,16 +115655,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123216, '\p{^ishmnp}', "");
     Expect(1, 123216, '\P{ishmnp}', "");
     Expect(0, 123216, '\P{^ishmnp}', "");
-    Expect(1, 123215, '\p{--Is_Hmnp}', "");
-    Expect(0, 123215, '\p{^--Is_Hmnp}', "");
-    Expect(0, 123215, '\P{--Is_Hmnp}', "");
-    Expect(1, 123215, '\P{^--Is_Hmnp}', "");
-    Expect(0, 123216, '\p{--Is_Hmnp}', "");
-    Expect(1, 123216, '\p{^--Is_Hmnp}', "");
-    Expect(1, 123216, '\P{--Is_Hmnp}', "");
-    Expect(0, 123216, '\P{^--Is_Hmnp}', "");
-    Error('\p{:=__Ogham}');
-    Error('\P{:=__Ogham}');
+    Expect(1, 123215, '\p{  Is_HMNP}', "");
+    Expect(0, 123215, '\p{^  Is_HMNP}', "");
+    Expect(0, 123215, '\P{  Is_HMNP}', "");
+    Expect(1, 123215, '\P{^  Is_HMNP}', "");
+    Expect(0, 123216, '\p{  Is_HMNP}', "");
+    Expect(1, 123216, '\p{^  Is_HMNP}', "");
+    Expect(1, 123216, '\P{  Is_HMNP}', "");
+    Expect(0, 123216, '\P{^  Is_HMNP}', "");
+    Error('\p{ :=ogham}');
+    Error('\P{ :=ogham}');
     Expect(1, 5788, '\p{ogham}', "");
     Expect(0, 5788, '\p{^ogham}', "");
     Expect(0, 5788, '\P{ogham}', "");
@@ -114465,16 +115673,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5789, '\p{^ogham}', "");
     Expect(1, 5789, '\P{ogham}', "");
     Expect(0, 5789, '\P{^ogham}', "");
-    Expect(1, 5788, '\p{_	ogham}', "");
-    Expect(0, 5788, '\p{^_	ogham}', "");
-    Expect(0, 5788, '\P{_	ogham}', "");
-    Expect(1, 5788, '\P{^_	ogham}', "");
-    Expect(0, 5789, '\p{_	ogham}', "");
-    Expect(1, 5789, '\p{^_	ogham}', "");
-    Expect(1, 5789, '\P{_	ogham}', "");
-    Expect(0, 5789, '\P{^_	ogham}', "");
-    Error('\p{-	is_ogham:=}');
-    Error('\P{-	is_ogham:=}');
+    Expect(1, 5788, '\p{ Ogham}', "");
+    Expect(0, 5788, '\p{^ Ogham}', "");
+    Expect(0, 5788, '\P{ Ogham}', "");
+    Expect(1, 5788, '\P{^ Ogham}', "");
+    Expect(0, 5789, '\p{ Ogham}', "");
+    Expect(1, 5789, '\p{^ Ogham}', "");
+    Expect(1, 5789, '\P{ Ogham}', "");
+    Expect(0, 5789, '\P{^ Ogham}', "");
+    Error('\p{_:=Is_Ogham}');
+    Error('\P{_:=Is_Ogham}');
     Expect(1, 5788, '\p{isogham}', "");
     Expect(0, 5788, '\p{^isogham}', "");
     Expect(0, 5788, '\P{isogham}', "");
@@ -114483,16 +115691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5789, '\p{^isogham}', "");
     Expect(1, 5789, '\P{isogham}', "");
     Expect(0, 5789, '\P{^isogham}', "");
-    Expect(1, 5788, '\p{--Is_OGHAM}', "");
-    Expect(0, 5788, '\p{^--Is_OGHAM}', "");
-    Expect(0, 5788, '\P{--Is_OGHAM}', "");
-    Expect(1, 5788, '\P{^--Is_OGHAM}', "");
-    Expect(0, 5789, '\p{--Is_OGHAM}', "");
-    Expect(1, 5789, '\p{^--Is_OGHAM}', "");
-    Expect(1, 5789, '\P{--Is_OGHAM}', "");
-    Expect(0, 5789, '\P{^--Is_OGHAM}', "");
-    Error('\p{ 	OGAM:=}');
-    Error('\P{ 	OGAM:=}');
+    Expect(1, 5788, '\p{ 	is_ogham}', "");
+    Expect(0, 5788, '\p{^ 	is_ogham}', "");
+    Expect(0, 5788, '\P{ 	is_ogham}', "");
+    Expect(1, 5788, '\P{^ 	is_ogham}', "");
+    Expect(0, 5789, '\p{ 	is_ogham}', "");
+    Expect(1, 5789, '\p{^ 	is_ogham}', "");
+    Expect(1, 5789, '\P{ 	is_ogham}', "");
+    Expect(0, 5789, '\P{^ 	is_ogham}', "");
+    Error('\p{ /a/Ogam}');
+    Error('\P{ /a/Ogam}');
     Expect(1, 5788, '\p{ogam}', "");
     Expect(0, 5788, '\p{^ogam}', "");
     Expect(0, 5788, '\P{ogam}', "");
@@ -114501,16 +115709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5789, '\p{^ogam}', "");
     Expect(1, 5789, '\P{ogam}', "");
     Expect(0, 5789, '\P{^ogam}', "");
-    Expect(1, 5788, '\p{-Ogam}', "");
-    Expect(0, 5788, '\p{^-Ogam}', "");
-    Expect(0, 5788, '\P{-Ogam}', "");
-    Expect(1, 5788, '\P{^-Ogam}', "");
-    Expect(0, 5789, '\p{-Ogam}', "");
-    Expect(1, 5789, '\p{^-Ogam}', "");
-    Expect(1, 5789, '\P{-Ogam}', "");
-    Expect(0, 5789, '\P{^-Ogam}', "");
-    Error('\p{-	IS_ogam:=}');
-    Error('\P{-	IS_ogam:=}');
+    Expect(1, 5788, '\p{_ogam}', "");
+    Expect(0, 5788, '\p{^_ogam}', "");
+    Expect(0, 5788, '\P{_ogam}', "");
+    Expect(1, 5788, '\P{^_ogam}', "");
+    Expect(0, 5789, '\p{_ogam}', "");
+    Expect(1, 5789, '\p{^_ogam}', "");
+    Expect(1, 5789, '\P{_ogam}', "");
+    Expect(0, 5789, '\P{^_ogam}', "");
+    Error('\p{ Is_Ogam:=}');
+    Error('\P{ Is_Ogam:=}');
     Expect(1, 5788, '\p{isogam}', "");
     Expect(0, 5788, '\p{^isogam}', "");
     Expect(0, 5788, '\P{isogam}', "");
@@ -114519,16 +115727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5789, '\p{^isogam}', "");
     Expect(1, 5789, '\P{isogam}', "");
     Expect(0, 5789, '\P{^isogam}', "");
-    Expect(1, 5788, '\p{ _is_Ogam}', "");
-    Expect(0, 5788, '\p{^ _is_Ogam}', "");
-    Expect(0, 5788, '\P{ _is_Ogam}', "");
-    Expect(1, 5788, '\P{^ _is_Ogam}', "");
-    Expect(0, 5789, '\p{ _is_Ogam}', "");
-    Expect(1, 5789, '\p{^ _is_Ogam}', "");
-    Expect(1, 5789, '\P{ _is_Ogam}', "");
-    Expect(0, 5789, '\P{^ _is_Ogam}', "");
-    Error('\p{-OL_CHIKI/a/}');
-    Error('\P{-OL_CHIKI/a/}');
+    Expect(1, 5788, '\p{Is_Ogam}', "");
+    Expect(0, 5788, '\p{^Is_Ogam}', "");
+    Expect(0, 5788, '\P{Is_Ogam}', "");
+    Expect(1, 5788, '\P{^Is_Ogam}', "");
+    Expect(0, 5789, '\p{Is_Ogam}', "");
+    Expect(1, 5789, '\p{^Is_Ogam}', "");
+    Expect(1, 5789, '\P{Is_Ogam}', "");
+    Expect(0, 5789, '\P{^Is_Ogam}', "");
+    Error('\p{/a/	 Ol_Chiki}');
+    Error('\P{/a/	 Ol_Chiki}');
     Expect(1, 7295, '\p{olchiki}', "");
     Expect(0, 7295, '\p{^olchiki}', "");
     Expect(0, 7295, '\P{olchiki}', "");
@@ -114537,16 +115745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7296, '\p{^olchiki}', "");
     Expect(1, 7296, '\P{olchiki}', "");
     Expect(0, 7296, '\P{^olchiki}', "");
-    Expect(1, 7295, '\p{_	ol_chiki}', "");
-    Expect(0, 7295, '\p{^_	ol_chiki}', "");
-    Expect(0, 7295, '\P{_	ol_chiki}', "");
-    Expect(1, 7295, '\P{^_	ol_chiki}', "");
-    Expect(0, 7296, '\p{_	ol_chiki}', "");
-    Expect(1, 7296, '\p{^_	ol_chiki}', "");
-    Expect(1, 7296, '\P{_	ol_chiki}', "");
-    Expect(0, 7296, '\P{^_	ol_chiki}', "");
-    Error('\p{_	IS_Ol_chiki:=}');
-    Error('\P{_	IS_Ol_chiki:=}');
+    Expect(1, 7295, '\p{		OL_chiki}', "");
+    Expect(0, 7295, '\p{^		OL_chiki}', "");
+    Expect(0, 7295, '\P{		OL_chiki}', "");
+    Expect(1, 7295, '\P{^		OL_chiki}', "");
+    Expect(0, 7296, '\p{		OL_chiki}', "");
+    Expect(1, 7296, '\p{^		OL_chiki}', "");
+    Expect(1, 7296, '\P{		OL_chiki}', "");
+    Expect(0, 7296, '\P{^		OL_chiki}', "");
+    Error('\p{/a/ _Is_Ol_CHIKI}');
+    Error('\P{/a/ _Is_Ol_CHIKI}');
     Expect(1, 7295, '\p{isolchiki}', "");
     Expect(0, 7295, '\p{^isolchiki}', "");
     Expect(0, 7295, '\P{isolchiki}', "");
@@ -114555,16 +115763,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7296, '\p{^isolchiki}', "");
     Expect(1, 7296, '\P{isolchiki}', "");
     Expect(0, 7296, '\P{^isolchiki}', "");
-    Expect(1, 7295, '\p{	is_Ol_chiki}', "");
-    Expect(0, 7295, '\p{^	is_Ol_chiki}', "");
-    Expect(0, 7295, '\P{	is_Ol_chiki}', "");
-    Expect(1, 7295, '\P{^	is_Ol_chiki}', "");
-    Expect(0, 7296, '\p{	is_Ol_chiki}', "");
-    Expect(1, 7296, '\p{^	is_Ol_chiki}', "");
-    Expect(1, 7296, '\P{	is_Ol_chiki}', "");
-    Expect(0, 7296, '\P{^	is_Ol_chiki}', "");
-    Error('\p{:= 	Olck}');
-    Error('\P{:= 	Olck}');
+    Expect(1, 7295, '\p{ IS_ol_Chiki}', "");
+    Expect(0, 7295, '\p{^ IS_ol_Chiki}', "");
+    Expect(0, 7295, '\P{ IS_ol_Chiki}', "");
+    Expect(1, 7295, '\P{^ IS_ol_Chiki}', "");
+    Expect(0, 7296, '\p{ IS_ol_Chiki}', "");
+    Expect(1, 7296, '\p{^ IS_ol_Chiki}', "");
+    Expect(1, 7296, '\P{ IS_ol_Chiki}', "");
+    Expect(0, 7296, '\P{^ IS_ol_Chiki}', "");
+    Error('\p{_ Olck:=}');
+    Error('\P{_ Olck:=}');
     Expect(1, 7295, '\p{olck}', "");
     Expect(0, 7295, '\p{^olck}', "");
     Expect(0, 7295, '\P{olck}', "");
@@ -114573,8 +115781,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7296, '\p{^olck}', "");
     Expect(1, 7296, '\P{olck}', "");
     Expect(0, 7296, '\P{^olck}', "");
-    Error('\p{:=-Is_olck}');
-    Error('\P{:=-Is_olck}');
+    Expect(1, 7295, '\p{	_OLCK}', "");
+    Expect(0, 7295, '\p{^	_OLCK}', "");
+    Expect(0, 7295, '\P{	_OLCK}', "");
+    Expect(1, 7295, '\P{^	_OLCK}', "");
+    Expect(0, 7296, '\p{	_OLCK}', "");
+    Expect(1, 7296, '\p{^	_OLCK}', "");
+    Expect(1, 7296, '\P{	_OLCK}', "");
+    Expect(0, 7296, '\P{^	_OLCK}', "");
+    Error('\p{/a/	Is_Olck}');
+    Error('\P{/a/	Is_Olck}');
     Expect(1, 7295, '\p{isolck}', "");
     Expect(0, 7295, '\p{^isolck}', "");
     Expect(0, 7295, '\P{isolck}', "");
@@ -114583,16 +115799,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7296, '\p{^isolck}', "");
     Expect(1, 7296, '\P{isolck}', "");
     Expect(0, 7296, '\P{^isolck}', "");
-    Expect(1, 7295, '\p{ IS_Olck}', "");
-    Expect(0, 7295, '\p{^ IS_Olck}', "");
-    Expect(0, 7295, '\P{ IS_Olck}', "");
-    Expect(1, 7295, '\P{^ IS_Olck}', "");
-    Expect(0, 7296, '\p{ IS_Olck}', "");
-    Expect(1, 7296, '\p{^ IS_Olck}', "");
-    Expect(1, 7296, '\P{ IS_Olck}', "");
-    Expect(0, 7296, '\P{^ IS_Olck}', "");
-    Error('\p{_/a/Old_HUNGARIAN}');
-    Error('\P{_/a/Old_HUNGARIAN}');
+    Expect(1, 7295, '\p{	_Is_OLCK}', "");
+    Expect(0, 7295, '\p{^	_Is_OLCK}', "");
+    Expect(0, 7295, '\P{	_Is_OLCK}', "");
+    Expect(1, 7295, '\P{^	_Is_OLCK}', "");
+    Expect(0, 7296, '\p{	_Is_OLCK}', "");
+    Expect(1, 7296, '\p{^	_Is_OLCK}', "");
+    Expect(1, 7296, '\P{	_Is_OLCK}', "");
+    Expect(0, 7296, '\P{^	_Is_OLCK}', "");
+    Error('\p{_/a/old_Hungarian}');
+    Error('\P{_/a/old_Hungarian}');
     Expect(1, 68863, '\p{oldhungarian}', "");
     Expect(0, 68863, '\p{^oldhungarian}', "");
     Expect(0, 68863, '\P{oldhungarian}', "");
@@ -114601,16 +115817,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68864, '\p{^oldhungarian}', "");
     Expect(1, 68864, '\P{oldhungarian}', "");
     Expect(0, 68864, '\P{^oldhungarian}', "");
-    Expect(1, 68863, '\p{ -Old_Hungarian}', "");
-    Expect(0, 68863, '\p{^ -Old_Hungarian}', "");
-    Expect(0, 68863, '\P{ -Old_Hungarian}', "");
-    Expect(1, 68863, '\P{^ -Old_Hungarian}', "");
-    Expect(0, 68864, '\p{ -Old_Hungarian}', "");
-    Expect(1, 68864, '\p{^ -Old_Hungarian}', "");
-    Expect(1, 68864, '\P{ -Old_Hungarian}', "");
-    Expect(0, 68864, '\P{^ -Old_Hungarian}', "");
-    Error('\p{is_old_HUNGARIAN/a/}');
-    Error('\P{is_old_HUNGARIAN/a/}');
+    Expect(1, 68863, '\p{-old_HUNGARIAN}', "");
+    Expect(0, 68863, '\p{^-old_HUNGARIAN}', "");
+    Expect(0, 68863, '\P{-old_HUNGARIAN}', "");
+    Expect(1, 68863, '\P{^-old_HUNGARIAN}', "");
+    Expect(0, 68864, '\p{-old_HUNGARIAN}', "");
+    Expect(1, 68864, '\p{^-old_HUNGARIAN}', "");
+    Expect(1, 68864, '\P{-old_HUNGARIAN}', "");
+    Expect(0, 68864, '\P{^-old_HUNGARIAN}', "");
+    Error('\p{/a/_ is_OLD_Hungarian}');
+    Error('\P{/a/_ is_OLD_Hungarian}');
     Expect(1, 68863, '\p{isoldhungarian}', "");
     Expect(0, 68863, '\p{^isoldhungarian}', "");
     Expect(0, 68863, '\P{isoldhungarian}', "");
@@ -114619,16 +115835,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68864, '\p{^isoldhungarian}', "");
     Expect(1, 68864, '\P{isoldhungarian}', "");
     Expect(0, 68864, '\P{^isoldhungarian}', "");
-    Expect(1, 68863, '\p{  IS_OLD_HUNGARIAN}', "");
-    Expect(0, 68863, '\p{^  IS_OLD_HUNGARIAN}', "");
-    Expect(0, 68863, '\P{  IS_OLD_HUNGARIAN}', "");
-    Expect(1, 68863, '\P{^  IS_OLD_HUNGARIAN}', "");
-    Expect(0, 68864, '\p{  IS_OLD_HUNGARIAN}', "");
-    Expect(1, 68864, '\p{^  IS_OLD_HUNGARIAN}', "");
-    Expect(1, 68864, '\P{  IS_OLD_HUNGARIAN}', "");
-    Expect(0, 68864, '\P{^  IS_OLD_HUNGARIAN}', "");
-    Error('\p{/a/ Hung}');
-    Error('\P{/a/ Hung}');
+    Expect(1, 68863, '\p{_is_OLD_Hungarian}', "");
+    Expect(0, 68863, '\p{^_is_OLD_Hungarian}', "");
+    Expect(0, 68863, '\P{_is_OLD_Hungarian}', "");
+    Expect(1, 68863, '\P{^_is_OLD_Hungarian}', "");
+    Expect(0, 68864, '\p{_is_OLD_Hungarian}', "");
+    Expect(1, 68864, '\p{^_is_OLD_Hungarian}', "");
+    Expect(1, 68864, '\P{_is_OLD_Hungarian}', "");
+    Expect(0, 68864, '\P{^_is_OLD_Hungarian}', "");
+    Error('\p{ -Hung:=}');
+    Error('\P{ -Hung:=}');
     Expect(1, 68863, '\p{hung}', "");
     Expect(0, 68863, '\p{^hung}', "");
     Expect(0, 68863, '\P{hung}', "");
@@ -114637,16 +115853,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68864, '\p{^hung}', "");
     Expect(1, 68864, '\P{hung}', "");
     Expect(0, 68864, '\P{^hung}', "");
-    Expect(1, 68863, '\p{-	hung}', "");
-    Expect(0, 68863, '\p{^-	hung}', "");
-    Expect(0, 68863, '\P{-	hung}', "");
-    Expect(1, 68863, '\P{^-	hung}', "");
-    Expect(0, 68864, '\p{-	hung}', "");
-    Expect(1, 68864, '\p{^-	hung}', "");
-    Expect(1, 68864, '\P{-	hung}', "");
-    Expect(0, 68864, '\P{^-	hung}', "");
-    Error('\p{-:=Is_Hung}');
-    Error('\P{-:=Is_Hung}');
+    Expect(1, 68863, '\p{	HUNG}', "");
+    Expect(0, 68863, '\p{^	HUNG}', "");
+    Expect(0, 68863, '\P{	HUNG}', "");
+    Expect(1, 68863, '\P{^	HUNG}', "");
+    Expect(0, 68864, '\p{	HUNG}', "");
+    Expect(1, 68864, '\p{^	HUNG}', "");
+    Expect(1, 68864, '\P{	HUNG}', "");
+    Expect(0, 68864, '\P{^	HUNG}', "");
+    Error('\p{/a/ IS_Hung}');
+    Error('\P{/a/ IS_Hung}');
     Expect(1, 68863, '\p{ishung}', "");
     Expect(0, 68863, '\p{^ishung}', "");
     Expect(0, 68863, '\P{ishung}', "");
@@ -114655,16 +115871,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68864, '\p{^ishung}', "");
     Expect(1, 68864, '\P{ishung}', "");
     Expect(0, 68864, '\P{^ishung}', "");
-    Expect(1, 68863, '\p{-	is_Hung}', "");
-    Expect(0, 68863, '\p{^-	is_Hung}', "");
-    Expect(0, 68863, '\P{-	is_Hung}', "");
-    Expect(1, 68863, '\P{^-	is_Hung}', "");
-    Expect(0, 68864, '\p{-	is_Hung}', "");
-    Expect(1, 68864, '\p{^-	is_Hung}', "");
-    Expect(1, 68864, '\P{-	is_Hung}', "");
-    Expect(0, 68864, '\P{^-	is_Hung}', "");
-    Error('\p{/a/	old_Italic}');
-    Error('\P{/a/	old_Italic}');
+    Expect(1, 68863, '\p{_-Is_hung}', "");
+    Expect(0, 68863, '\p{^_-Is_hung}', "");
+    Expect(0, 68863, '\P{_-Is_hung}', "");
+    Expect(1, 68863, '\P{^_-Is_hung}', "");
+    Expect(0, 68864, '\p{_-Is_hung}', "");
+    Expect(1, 68864, '\p{^_-Is_hung}', "");
+    Expect(1, 68864, '\P{_-Is_hung}', "");
+    Expect(0, 68864, '\P{^_-Is_hung}', "");
+    Error('\p{:=	old_Italic}');
+    Error('\P{:=	old_Italic}');
     Expect(1, 66351, '\p{olditalic}', "");
     Expect(0, 66351, '\p{^olditalic}', "");
     Expect(0, 66351, '\P{olditalic}', "");
@@ -114673,16 +115889,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66352, '\p{^olditalic}', "");
     Expect(1, 66352, '\P{olditalic}', "");
     Expect(0, 66352, '\P{^olditalic}', "");
-    Expect(1, 66351, '\p{--Old_italic}', "");
-    Expect(0, 66351, '\p{^--Old_italic}', "");
-    Expect(0, 66351, '\P{--Old_italic}', "");
-    Expect(1, 66351, '\P{^--Old_italic}', "");
-    Expect(0, 66352, '\p{--Old_italic}', "");
-    Expect(1, 66352, '\p{^--Old_italic}', "");
-    Expect(1, 66352, '\P{--Old_italic}', "");
-    Expect(0, 66352, '\P{^--Old_italic}', "");
-    Error('\p{:=is_Old_italic}');
-    Error('\P{:=is_Old_italic}');
+    Expect(1, 66351, '\p{		OLD_ITALIC}', "");
+    Expect(0, 66351, '\p{^		OLD_ITALIC}', "");
+    Expect(0, 66351, '\P{		OLD_ITALIC}', "");
+    Expect(1, 66351, '\P{^		OLD_ITALIC}', "");
+    Expect(0, 66352, '\p{		OLD_ITALIC}', "");
+    Expect(1, 66352, '\p{^		OLD_ITALIC}', "");
+    Expect(1, 66352, '\P{		OLD_ITALIC}', "");
+    Expect(0, 66352, '\P{^		OLD_ITALIC}', "");
+    Error('\p{ :=Is_old_Italic}');
+    Error('\P{ :=Is_old_Italic}');
     Expect(1, 66351, '\p{isolditalic}', "");
     Expect(0, 66351, '\p{^isolditalic}', "");
     Expect(0, 66351, '\P{isolditalic}', "");
@@ -114691,16 +115907,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66352, '\p{^isolditalic}', "");
     Expect(1, 66352, '\P{isolditalic}', "");
     Expect(0, 66352, '\P{^isolditalic}', "");
-    Expect(1, 66351, '\p{ _Is_Old_Italic}', "");
-    Expect(0, 66351, '\p{^ _Is_Old_Italic}', "");
-    Expect(0, 66351, '\P{ _Is_Old_Italic}', "");
-    Expect(1, 66351, '\P{^ _Is_Old_Italic}', "");
-    Expect(0, 66352, '\p{ _Is_Old_Italic}', "");
-    Expect(1, 66352, '\p{^ _Is_Old_Italic}', "");
-    Expect(1, 66352, '\P{ _Is_Old_Italic}', "");
-    Expect(0, 66352, '\P{^ _Is_Old_Italic}', "");
-    Error('\p{-	ITAL/a/}');
-    Error('\P{-	ITAL/a/}');
+    Expect(1, 66351, '\p{-is_Old_Italic}', "");
+    Expect(0, 66351, '\p{^-is_Old_Italic}', "");
+    Expect(0, 66351, '\P{-is_Old_Italic}', "");
+    Expect(1, 66351, '\P{^-is_Old_Italic}', "");
+    Expect(0, 66352, '\p{-is_Old_Italic}', "");
+    Expect(1, 66352, '\p{^-is_Old_Italic}', "");
+    Expect(1, 66352, '\P{-is_Old_Italic}', "");
+    Expect(0, 66352, '\P{^-is_Old_Italic}', "");
+    Error('\p{/a/Ital}');
+    Error('\P{/a/Ital}');
     Expect(1, 66351, '\p{ital}', "");
     Expect(0, 66351, '\p{^ital}', "");
     Expect(0, 66351, '\P{ital}', "");
@@ -114709,16 +115925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66352, '\p{^ital}', "");
     Expect(1, 66352, '\P{ital}', "");
     Expect(0, 66352, '\P{^ital}', "");
-    Expect(1, 66351, '\p{  Ital}', "");
-    Expect(0, 66351, '\p{^  Ital}', "");
-    Expect(0, 66351, '\P{  Ital}', "");
-    Expect(1, 66351, '\P{^  Ital}', "");
-    Expect(0, 66352, '\p{  Ital}', "");
-    Expect(1, 66352, '\p{^  Ital}', "");
-    Expect(1, 66352, '\P{  Ital}', "");
-    Expect(0, 66352, '\P{^  Ital}', "");
-    Error('\p{--is_ITAL:=}');
-    Error('\P{--is_ITAL:=}');
+    Expect(1, 66351, '\p{_ital}', "");
+    Expect(0, 66351, '\p{^_ital}', "");
+    Expect(0, 66351, '\P{_ital}', "");
+    Expect(1, 66351, '\P{^_ital}', "");
+    Expect(0, 66352, '\p{_ital}', "");
+    Expect(1, 66352, '\p{^_ital}', "");
+    Expect(1, 66352, '\P{_ital}', "");
+    Expect(0, 66352, '\P{^_ital}', "");
+    Error('\p{_:=Is_Ital}');
+    Error('\P{_:=Is_Ital}');
     Expect(1, 66351, '\p{isital}', "");
     Expect(0, 66351, '\p{^isital}', "");
     Expect(0, 66351, '\P{isital}', "");
@@ -114727,16 +115943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66352, '\p{^isital}', "");
     Expect(1, 66352, '\P{isital}', "");
     Expect(0, 66352, '\P{^isital}', "");
-    Expect(1, 66351, '\p{ 	Is_Ital}', "");
-    Expect(0, 66351, '\p{^ 	Is_Ital}', "");
-    Expect(0, 66351, '\P{ 	Is_Ital}', "");
-    Expect(1, 66351, '\P{^ 	Is_Ital}', "");
-    Expect(0, 66352, '\p{ 	Is_Ital}', "");
-    Expect(1, 66352, '\p{^ 	Is_Ital}', "");
-    Expect(1, 66352, '\P{ 	Is_Ital}', "");
-    Expect(0, 66352, '\P{^ 	Is_Ital}', "");
-    Error('\p{	:=old_North_arabian}');
-    Error('\P{	:=old_North_arabian}');
+    Expect(1, 66351, '\p{-_Is_ital}', "");
+    Expect(0, 66351, '\p{^-_Is_ital}', "");
+    Expect(0, 66351, '\P{-_Is_ital}', "");
+    Expect(1, 66351, '\P{^-_Is_ital}', "");
+    Expect(0, 66352, '\p{-_Is_ital}', "");
+    Expect(1, 66352, '\p{^-_Is_ital}', "");
+    Expect(1, 66352, '\P{-_Is_ital}', "");
+    Expect(0, 66352, '\P{^-_Is_ital}', "");
+    Error('\p{:=OLD_North_ARABIAN}');
+    Error('\P{:=OLD_North_ARABIAN}');
     Expect(1, 68255, '\p{oldnortharabian}', "");
     Expect(0, 68255, '\p{^oldnortharabian}', "");
     Expect(0, 68255, '\P{oldnortharabian}', "");
@@ -114745,16 +115961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68256, '\p{^oldnortharabian}', "");
     Expect(1, 68256, '\P{oldnortharabian}', "");
     Expect(0, 68256, '\P{^oldnortharabian}', "");
-    Expect(1, 68255, '\p{	 Old_North_Arabian}', "");
-    Expect(0, 68255, '\p{^	 Old_North_Arabian}', "");
-    Expect(0, 68255, '\P{	 Old_North_Arabian}', "");
-    Expect(1, 68255, '\P{^	 Old_North_Arabian}', "");
-    Expect(0, 68256, '\p{	 Old_North_Arabian}', "");
-    Expect(1, 68256, '\p{^	 Old_North_Arabian}', "");
-    Expect(1, 68256, '\P{	 Old_North_Arabian}', "");
-    Expect(0, 68256, '\P{^	 Old_North_Arabian}', "");
-    Error('\p{__IS_old_North_ARABIAN/a/}');
-    Error('\P{__IS_old_North_ARABIAN/a/}');
+    Expect(1, 68255, '\p{  Old_North_Arabian}', "");
+    Expect(0, 68255, '\p{^  Old_North_Arabian}', "");
+    Expect(0, 68255, '\P{  Old_North_Arabian}', "");
+    Expect(1, 68255, '\P{^  Old_North_Arabian}', "");
+    Expect(0, 68256, '\p{  Old_North_Arabian}', "");
+    Expect(1, 68256, '\p{^  Old_North_Arabian}', "");
+    Expect(1, 68256, '\P{  Old_North_Arabian}', "");
+    Expect(0, 68256, '\P{^  Old_North_Arabian}', "");
+    Error('\p{_	is_Old_north_Arabian/a/}');
+    Error('\P{_	is_Old_north_Arabian/a/}');
     Expect(1, 68255, '\p{isoldnortharabian}', "");
     Expect(0, 68255, '\p{^isoldnortharabian}', "");
     Expect(0, 68255, '\P{isoldnortharabian}', "");
@@ -114763,16 +115979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68256, '\p{^isoldnortharabian}', "");
     Expect(1, 68256, '\P{isoldnortharabian}', "");
     Expect(0, 68256, '\P{^isoldnortharabian}', "");
-    Expect(1, 68255, '\p{Is_OLD_NORTH_Arabian}', "");
-    Expect(0, 68255, '\p{^Is_OLD_NORTH_Arabian}', "");
-    Expect(0, 68255, '\P{Is_OLD_NORTH_Arabian}', "");
-    Expect(1, 68255, '\P{^Is_OLD_NORTH_Arabian}', "");
-    Expect(0, 68256, '\p{Is_OLD_NORTH_Arabian}', "");
-    Expect(1, 68256, '\p{^Is_OLD_NORTH_Arabian}', "");
-    Expect(1, 68256, '\P{Is_OLD_NORTH_Arabian}', "");
-    Expect(0, 68256, '\P{^Is_OLD_NORTH_Arabian}', "");
-    Error('\p{	:=NARB}');
-    Error('\P{	:=NARB}');
+    Expect(1, 68255, '\p{ -is_old_north_Arabian}', "");
+    Expect(0, 68255, '\p{^ -is_old_north_Arabian}', "");
+    Expect(0, 68255, '\P{ -is_old_north_Arabian}', "");
+    Expect(1, 68255, '\P{^ -is_old_north_Arabian}', "");
+    Expect(0, 68256, '\p{ -is_old_north_Arabian}', "");
+    Expect(1, 68256, '\p{^ -is_old_north_Arabian}', "");
+    Expect(1, 68256, '\P{ -is_old_north_Arabian}', "");
+    Expect(0, 68256, '\P{^ -is_old_north_Arabian}', "");
+    Error('\p{	 narb/a/}');
+    Error('\P{	 narb/a/}');
     Expect(1, 68255, '\p{narb}', "");
     Expect(0, 68255, '\p{^narb}', "");
     Expect(0, 68255, '\P{narb}', "");
@@ -114781,16 +115997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68256, '\p{^narb}', "");
     Expect(1, 68256, '\P{narb}', "");
     Expect(0, 68256, '\P{^narb}', "");
-    Expect(1, 68255, '\p{ narb}', "");
-    Expect(0, 68255, '\p{^ narb}', "");
-    Expect(0, 68255, '\P{ narb}', "");
-    Expect(1, 68255, '\P{^ narb}', "");
-    Expect(0, 68256, '\p{ narb}', "");
-    Expect(1, 68256, '\p{^ narb}', "");
-    Expect(1, 68256, '\P{ narb}', "");
-    Expect(0, 68256, '\P{^ narb}', "");
-    Error('\p{ 	is_Narb/a/}');
-    Error('\P{ 	is_Narb/a/}');
+    Expect(1, 68255, '\p{_-Narb}', "");
+    Expect(0, 68255, '\p{^_-Narb}', "");
+    Expect(0, 68255, '\P{_-Narb}', "");
+    Expect(1, 68255, '\P{^_-Narb}', "");
+    Expect(0, 68256, '\p{_-Narb}', "");
+    Expect(1, 68256, '\p{^_-Narb}', "");
+    Expect(1, 68256, '\P{_-Narb}', "");
+    Expect(0, 68256, '\P{^_-Narb}', "");
+    Error('\p{_	Is_Narb/a/}');
+    Error('\P{_	Is_Narb/a/}');
     Expect(1, 68255, '\p{isnarb}', "");
     Expect(0, 68255, '\p{^isnarb}', "");
     Expect(0, 68255, '\P{isnarb}', "");
@@ -114799,16 +116015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68256, '\p{^isnarb}', "");
     Expect(1, 68256, '\P{isnarb}', "");
     Expect(0, 68256, '\P{^isnarb}', "");
-    Expect(1, 68255, '\p{	is_Narb}', "");
-    Expect(0, 68255, '\p{^	is_Narb}', "");
-    Expect(0, 68255, '\P{	is_Narb}', "");
-    Expect(1, 68255, '\P{^	is_Narb}', "");
-    Expect(0, 68256, '\p{	is_Narb}', "");
-    Expect(1, 68256, '\p{^	is_Narb}', "");
-    Expect(1, 68256, '\P{	is_Narb}', "");
-    Expect(0, 68256, '\P{^	is_Narb}', "");
-    Error('\p{ :=OLD_Permic}');
-    Error('\P{ :=OLD_Permic}');
+    Expect(1, 68255, '\p{_Is_NARB}', "");
+    Expect(0, 68255, '\p{^_Is_NARB}', "");
+    Expect(0, 68255, '\P{_Is_NARB}', "");
+    Expect(1, 68255, '\P{^_Is_NARB}', "");
+    Expect(0, 68256, '\p{_Is_NARB}', "");
+    Expect(1, 68256, '\p{^_Is_NARB}', "");
+    Expect(1, 68256, '\P{_Is_NARB}', "");
+    Expect(0, 68256, '\P{^_Is_NARB}', "");
+    Error('\p{_old_Permic:=}');
+    Error('\P{_old_Permic:=}');
     Expect(1, 66426, '\p{oldpermic}', "");
     Expect(0, 66426, '\p{^oldpermic}', "");
     Expect(0, 66426, '\P{oldpermic}', "");
@@ -114817,16 +116033,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66427, '\p{^oldpermic}', "");
     Expect(1, 66427, '\P{oldpermic}', "");
     Expect(0, 66427, '\P{^oldpermic}', "");
-    Expect(1, 66426, '\p{-_OLD_Permic}', "");
-    Expect(0, 66426, '\p{^-_OLD_Permic}', "");
-    Expect(0, 66426, '\P{-_OLD_Permic}', "");
-    Expect(1, 66426, '\P{^-_OLD_Permic}', "");
-    Expect(0, 66427, '\p{-_OLD_Permic}', "");
-    Expect(1, 66427, '\p{^-_OLD_Permic}', "");
-    Expect(1, 66427, '\P{-_OLD_Permic}', "");
-    Expect(0, 66427, '\P{^-_OLD_Permic}', "");
-    Error('\p{-:=is_Old_PERMIC}');
-    Error('\P{-:=is_Old_PERMIC}');
+    Expect(1, 66426, '\p{		old_PERMIC}', "");
+    Expect(0, 66426, '\p{^		old_PERMIC}', "");
+    Expect(0, 66426, '\P{		old_PERMIC}', "");
+    Expect(1, 66426, '\P{^		old_PERMIC}', "");
+    Expect(0, 66427, '\p{		old_PERMIC}', "");
+    Expect(1, 66427, '\p{^		old_PERMIC}', "");
+    Expect(1, 66427, '\P{		old_PERMIC}', "");
+    Expect(0, 66427, '\P{^		old_PERMIC}', "");
+    Error('\p{/a/-	IS_Old_Permic}');
+    Error('\P{/a/-	IS_Old_Permic}');
     Expect(1, 66426, '\p{isoldpermic}', "");
     Expect(0, 66426, '\p{^isoldpermic}', "");
     Expect(0, 66426, '\P{isoldpermic}', "");
@@ -114835,16 +116051,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66427, '\p{^isoldpermic}', "");
     Expect(1, 66427, '\P{isoldpermic}', "");
     Expect(0, 66427, '\P{^isoldpermic}', "");
-    Expect(1, 66426, '\p{_-Is_Old_permic}', "");
-    Expect(0, 66426, '\p{^_-Is_Old_permic}', "");
-    Expect(0, 66426, '\P{_-Is_Old_permic}', "");
-    Expect(1, 66426, '\P{^_-Is_Old_permic}', "");
-    Expect(0, 66427, '\p{_-Is_Old_permic}', "");
-    Expect(1, 66427, '\p{^_-Is_Old_permic}', "");
-    Expect(1, 66427, '\P{_-Is_Old_permic}', "");
-    Expect(0, 66427, '\P{^_-Is_Old_permic}', "");
-    Error('\p{/a/-_Perm}');
-    Error('\P{/a/-_Perm}');
+    Expect(1, 66426, '\p{	_is_Old_Permic}', "");
+    Expect(0, 66426, '\p{^	_is_Old_Permic}', "");
+    Expect(0, 66426, '\P{	_is_Old_Permic}', "");
+    Expect(1, 66426, '\P{^	_is_Old_Permic}', "");
+    Expect(0, 66427, '\p{	_is_Old_Permic}', "");
+    Expect(1, 66427, '\p{^	_is_Old_Permic}', "");
+    Expect(1, 66427, '\P{	_is_Old_Permic}', "");
+    Expect(0, 66427, '\P{^	_is_Old_Permic}', "");
+    Error('\p{	:=Perm}');
+    Error('\P{	:=Perm}');
     Expect(1, 66426, '\p{perm}', "");
     Expect(0, 66426, '\p{^perm}', "");
     Expect(0, 66426, '\P{perm}', "");
@@ -114853,16 +116069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66427, '\p{^perm}', "");
     Expect(1, 66427, '\P{perm}', "");
     Expect(0, 66427, '\P{^perm}', "");
-    Expect(1, 66426, '\p{_ perm}', "");
-    Expect(0, 66426, '\p{^_ perm}', "");
-    Expect(0, 66426, '\P{_ perm}', "");
-    Expect(1, 66426, '\P{^_ perm}', "");
-    Expect(0, 66427, '\p{_ perm}', "");
-    Expect(1, 66427, '\p{^_ perm}', "");
-    Expect(1, 66427, '\P{_ perm}', "");
-    Expect(0, 66427, '\P{^_ perm}', "");
-    Error('\p{:= Is_perm}');
-    Error('\P{:= Is_perm}');
+    Expect(1, 66426, '\p{	-perm}', "");
+    Expect(0, 66426, '\p{^	-perm}', "");
+    Expect(0, 66426, '\P{	-perm}', "");
+    Expect(1, 66426, '\P{^	-perm}', "");
+    Expect(0, 66427, '\p{	-perm}', "");
+    Expect(1, 66427, '\p{^	-perm}', "");
+    Expect(1, 66427, '\P{	-perm}', "");
+    Expect(0, 66427, '\P{^	-perm}', "");
+    Error('\p{	/a/IS_PERM}');
+    Error('\P{	/a/IS_PERM}');
     Expect(1, 66426, '\p{isperm}', "");
     Expect(0, 66426, '\p{^isperm}', "");
     Expect(0, 66426, '\P{isperm}', "");
@@ -114871,16 +116087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66427, '\p{^isperm}', "");
     Expect(1, 66427, '\P{isperm}', "");
     Expect(0, 66427, '\P{^isperm}', "");
-    Expect(1, 66426, '\p{Is_PERM}', "");
-    Expect(0, 66426, '\p{^Is_PERM}', "");
-    Expect(0, 66426, '\P{Is_PERM}', "");
-    Expect(1, 66426, '\P{^Is_PERM}', "");
-    Expect(0, 66427, '\p{Is_PERM}', "");
-    Expect(1, 66427, '\p{^Is_PERM}', "");
-    Expect(1, 66427, '\P{Is_PERM}', "");
-    Expect(0, 66427, '\P{^Is_PERM}', "");
-    Error('\p{	_old_Persian/a/}');
-    Error('\P{	_old_Persian/a/}');
+    Expect(1, 66426, '\p{__is_Perm}', "");
+    Expect(0, 66426, '\p{^__is_Perm}', "");
+    Expect(0, 66426, '\P{__is_Perm}', "");
+    Expect(1, 66426, '\P{^__is_Perm}', "");
+    Expect(0, 66427, '\p{__is_Perm}', "");
+    Expect(1, 66427, '\p{^__is_Perm}', "");
+    Expect(1, 66427, '\P{__is_Perm}', "");
+    Expect(0, 66427, '\P{^__is_Perm}', "");
+    Error('\p{--Old_persian/a/}');
+    Error('\P{--Old_persian/a/}');
     Expect(1, 66517, '\p{oldpersian}', "");
     Expect(0, 66517, '\p{^oldpersian}', "");
     Expect(0, 66517, '\P{oldpersian}', "");
@@ -114889,16 +116105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66518, '\p{^oldpersian}', "");
     Expect(1, 66518, '\P{oldpersian}', "");
     Expect(0, 66518, '\P{^oldpersian}', "");
-    Expect(1, 66517, '\p{_Old_PERSIAN}', "");
-    Expect(0, 66517, '\p{^_Old_PERSIAN}', "");
-    Expect(0, 66517, '\P{_Old_PERSIAN}', "");
-    Expect(1, 66517, '\P{^_Old_PERSIAN}', "");
-    Expect(0, 66518, '\p{_Old_PERSIAN}', "");
-    Expect(1, 66518, '\p{^_Old_PERSIAN}', "");
-    Expect(1, 66518, '\P{_Old_PERSIAN}', "");
-    Expect(0, 66518, '\P{^_Old_PERSIAN}', "");
-    Error('\p{:=_is_Old_Persian}');
-    Error('\P{:=_is_Old_Persian}');
+    Expect(1, 66517, '\p{		Old_PERSIAN}', "");
+    Expect(0, 66517, '\p{^		Old_PERSIAN}', "");
+    Expect(0, 66517, '\P{		Old_PERSIAN}', "");
+    Expect(1, 66517, '\P{^		Old_PERSIAN}', "");
+    Expect(0, 66518, '\p{		Old_PERSIAN}', "");
+    Expect(1, 66518, '\p{^		Old_PERSIAN}', "");
+    Expect(1, 66518, '\P{		Old_PERSIAN}', "");
+    Expect(0, 66518, '\P{^		Old_PERSIAN}', "");
+    Error('\p{:=_IS_OLD_Persian}');
+    Error('\P{:=_IS_OLD_Persian}');
     Expect(1, 66517, '\p{isoldpersian}', "");
     Expect(0, 66517, '\p{^isoldpersian}', "");
     Expect(0, 66517, '\P{isoldpersian}', "");
@@ -114907,16 +116123,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66518, '\p{^isoldpersian}', "");
     Expect(1, 66518, '\P{isoldpersian}', "");
     Expect(0, 66518, '\P{^isoldpersian}', "");
-    Expect(1, 66517, '\p{-	is_OLD_PERSIAN}', "");
-    Expect(0, 66517, '\p{^-	is_OLD_PERSIAN}', "");
-    Expect(0, 66517, '\P{-	is_OLD_PERSIAN}', "");
-    Expect(1, 66517, '\P{^-	is_OLD_PERSIAN}', "");
-    Expect(0, 66518, '\p{-	is_OLD_PERSIAN}', "");
-    Expect(1, 66518, '\p{^-	is_OLD_PERSIAN}', "");
-    Expect(1, 66518, '\P{-	is_OLD_PERSIAN}', "");
-    Expect(0, 66518, '\P{^-	is_OLD_PERSIAN}', "");
-    Error('\p{	:=xpeo}');
-    Error('\P{	:=xpeo}');
+    Expect(1, 66517, '\p{-IS_Old_persian}', "");
+    Expect(0, 66517, '\p{^-IS_Old_persian}', "");
+    Expect(0, 66517, '\P{-IS_Old_persian}', "");
+    Expect(1, 66517, '\P{^-IS_Old_persian}', "");
+    Expect(0, 66518, '\p{-IS_Old_persian}', "");
+    Expect(1, 66518, '\p{^-IS_Old_persian}', "");
+    Expect(1, 66518, '\P{-IS_Old_persian}', "");
+    Expect(0, 66518, '\P{^-IS_Old_persian}', "");
+    Error('\p{/a/-	Xpeo}');
+    Error('\P{/a/-	Xpeo}');
     Expect(1, 66517, '\p{xpeo}', "");
     Expect(0, 66517, '\p{^xpeo}', "");
     Expect(0, 66517, '\P{xpeo}', "");
@@ -114925,16 +116141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66518, '\p{^xpeo}', "");
     Expect(1, 66518, '\P{xpeo}', "");
     Expect(0, 66518, '\P{^xpeo}', "");
-    Expect(1, 66517, '\p{		xpeo}', "");
-    Expect(0, 66517, '\p{^		xpeo}', "");
-    Expect(0, 66517, '\P{		xpeo}', "");
-    Expect(1, 66517, '\P{^		xpeo}', "");
-    Expect(0, 66518, '\p{		xpeo}', "");
-    Expect(1, 66518, '\p{^		xpeo}', "");
-    Expect(1, 66518, '\P{		xpeo}', "");
-    Expect(0, 66518, '\P{^		xpeo}', "");
-    Error('\p{_-IS_Xpeo/a/}');
-    Error('\P{_-IS_Xpeo/a/}');
+    Expect(1, 66517, '\p{ 	Xpeo}', "");
+    Expect(0, 66517, '\p{^ 	Xpeo}', "");
+    Expect(0, 66517, '\P{ 	Xpeo}', "");
+    Expect(1, 66517, '\P{^ 	Xpeo}', "");
+    Expect(0, 66518, '\p{ 	Xpeo}', "");
+    Expect(1, 66518, '\p{^ 	Xpeo}', "");
+    Expect(1, 66518, '\P{ 	Xpeo}', "");
+    Expect(0, 66518, '\P{^ 	Xpeo}', "");
+    Error('\p{_is_Xpeo:=}');
+    Error('\P{_is_Xpeo:=}');
     Expect(1, 66517, '\p{isxpeo}', "");
     Expect(0, 66517, '\p{^isxpeo}', "");
     Expect(0, 66517, '\P{isxpeo}', "");
@@ -114943,16 +116159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66518, '\p{^isxpeo}', "");
     Expect(1, 66518, '\P{isxpeo}', "");
     Expect(0, 66518, '\P{^isxpeo}', "");
-    Expect(1, 66517, '\p{		is_Xpeo}', "");
-    Expect(0, 66517, '\p{^		is_Xpeo}', "");
-    Expect(0, 66517, '\P{		is_Xpeo}', "");
-    Expect(1, 66517, '\P{^		is_Xpeo}', "");
-    Expect(0, 66518, '\p{		is_Xpeo}', "");
-    Expect(1, 66518, '\p{^		is_Xpeo}', "");
-    Expect(1, 66518, '\P{		is_Xpeo}', "");
-    Expect(0, 66518, '\P{^		is_Xpeo}', "");
-    Error('\p{/a/ _Old_Sogdian}');
-    Error('\P{/a/ _Old_Sogdian}');
+    Expect(1, 66517, '\p{	 IS_XPEO}', "");
+    Expect(0, 66517, '\p{^	 IS_XPEO}', "");
+    Expect(0, 66517, '\P{	 IS_XPEO}', "");
+    Expect(1, 66517, '\P{^	 IS_XPEO}', "");
+    Expect(0, 66518, '\p{	 IS_XPEO}', "");
+    Expect(1, 66518, '\p{^	 IS_XPEO}', "");
+    Expect(1, 66518, '\P{	 IS_XPEO}', "");
+    Expect(0, 66518, '\P{^	 IS_XPEO}', "");
+    Error('\p{--OLD_Sogdian:=}');
+    Error('\P{--OLD_Sogdian:=}');
     Expect(1, 69415, '\p{oldsogdian}', "");
     Expect(0, 69415, '\p{^oldsogdian}', "");
     Expect(0, 69415, '\P{oldsogdian}', "");
@@ -114961,16 +116177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69416, '\p{^oldsogdian}', "");
     Expect(1, 69416, '\P{oldsogdian}', "");
     Expect(0, 69416, '\P{^oldsogdian}', "");
-    Expect(1, 69415, '\p{	 OLD_Sogdian}', "");
-    Expect(0, 69415, '\p{^	 OLD_Sogdian}', "");
-    Expect(0, 69415, '\P{	 OLD_Sogdian}', "");
-    Expect(1, 69415, '\P{^	 OLD_Sogdian}', "");
-    Expect(0, 69416, '\p{	 OLD_Sogdian}', "");
-    Expect(1, 69416, '\p{^	 OLD_Sogdian}', "");
-    Expect(1, 69416, '\P{	 OLD_Sogdian}', "");
-    Expect(0, 69416, '\P{^	 OLD_Sogdian}', "");
-    Error('\p{- IS_Old_SOGDIAN:=}');
-    Error('\P{- IS_Old_SOGDIAN:=}');
+    Expect(1, 69415, '\p{-	Old_sogdian}', "");
+    Expect(0, 69415, '\p{^-	Old_sogdian}', "");
+    Expect(0, 69415, '\P{-	Old_sogdian}', "");
+    Expect(1, 69415, '\P{^-	Old_sogdian}', "");
+    Expect(0, 69416, '\p{-	Old_sogdian}', "");
+    Expect(1, 69416, '\p{^-	Old_sogdian}', "");
+    Expect(1, 69416, '\P{-	Old_sogdian}', "");
+    Expect(0, 69416, '\P{^-	Old_sogdian}', "");
+    Error('\p{:=is_Old_Sogdian}');
+    Error('\P{:=is_Old_Sogdian}');
     Expect(1, 69415, '\p{isoldsogdian}', "");
     Expect(0, 69415, '\p{^isoldsogdian}', "");
     Expect(0, 69415, '\P{isoldsogdian}', "");
@@ -114979,16 +116195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69416, '\p{^isoldsogdian}', "");
     Expect(1, 69416, '\P{isoldsogdian}', "");
     Expect(0, 69416, '\P{^isoldsogdian}', "");
-    Expect(1, 69415, '\p{ _Is_Old_Sogdian}', "");
-    Expect(0, 69415, '\p{^ _Is_Old_Sogdian}', "");
-    Expect(0, 69415, '\P{ _Is_Old_Sogdian}', "");
-    Expect(1, 69415, '\P{^ _Is_Old_Sogdian}', "");
-    Expect(0, 69416, '\p{ _Is_Old_Sogdian}', "");
-    Expect(1, 69416, '\p{^ _Is_Old_Sogdian}', "");
-    Expect(1, 69416, '\P{ _Is_Old_Sogdian}', "");
-    Expect(0, 69416, '\P{^ _Is_Old_Sogdian}', "");
-    Error('\p{:=	sogo}');
-    Error('\P{:=	sogo}');
+    Expect(1, 69415, '\p{ Is_Old_Sogdian}', "");
+    Expect(0, 69415, '\p{^ Is_Old_Sogdian}', "");
+    Expect(0, 69415, '\P{ Is_Old_Sogdian}', "");
+    Expect(1, 69415, '\P{^ Is_Old_Sogdian}', "");
+    Expect(0, 69416, '\p{ Is_Old_Sogdian}', "");
+    Expect(1, 69416, '\p{^ Is_Old_Sogdian}', "");
+    Expect(1, 69416, '\P{ Is_Old_Sogdian}', "");
+    Expect(0, 69416, '\P{^ Is_Old_Sogdian}', "");
+    Error('\p{-/a/SOGO}');
+    Error('\P{-/a/SOGO}');
     Expect(1, 69415, '\p{sogo}', "");
     Expect(0, 69415, '\p{^sogo}', "");
     Expect(0, 69415, '\P{sogo}', "");
@@ -114997,16 +116213,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69416, '\p{^sogo}', "");
     Expect(1, 69416, '\P{sogo}', "");
     Expect(0, 69416, '\P{^sogo}', "");
-    Expect(1, 69415, '\p{ 	SOGO}', "");
-    Expect(0, 69415, '\p{^ 	SOGO}', "");
-    Expect(0, 69415, '\P{ 	SOGO}', "");
-    Expect(1, 69415, '\P{^ 	SOGO}', "");
-    Expect(0, 69416, '\p{ 	SOGO}', "");
-    Expect(1, 69416, '\p{^ 	SOGO}', "");
-    Expect(1, 69416, '\P{ 	SOGO}', "");
-    Expect(0, 69416, '\P{^ 	SOGO}', "");
-    Error('\p{	/a/Is_Sogo}');
-    Error('\P{	/a/Is_Sogo}');
+    Expect(1, 69415, '\p{ SOGO}', "");
+    Expect(0, 69415, '\p{^ SOGO}', "");
+    Expect(0, 69415, '\P{ SOGO}', "");
+    Expect(1, 69415, '\P{^ SOGO}', "");
+    Expect(0, 69416, '\p{ SOGO}', "");
+    Expect(1, 69416, '\p{^ SOGO}', "");
+    Expect(1, 69416, '\P{ SOGO}', "");
+    Expect(0, 69416, '\P{^ SOGO}', "");
+    Error('\p{:= -is_Sogo}');
+    Error('\P{:= -is_Sogo}');
     Expect(1, 69415, '\p{issogo}', "");
     Expect(0, 69415, '\p{^issogo}', "");
     Expect(0, 69415, '\P{issogo}', "");
@@ -115015,16 +116231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69416, '\p{^issogo}', "");
     Expect(1, 69416, '\P{issogo}', "");
     Expect(0, 69416, '\P{^issogo}', "");
-    Expect(1, 69415, '\p{_Is_Sogo}', "");
-    Expect(0, 69415, '\p{^_Is_Sogo}', "");
-    Expect(0, 69415, '\P{_Is_Sogo}', "");
-    Expect(1, 69415, '\P{^_Is_Sogo}', "");
-    Expect(0, 69416, '\p{_Is_Sogo}', "");
-    Expect(1, 69416, '\p{^_Is_Sogo}', "");
-    Expect(1, 69416, '\P{_Is_Sogo}', "");
-    Expect(0, 69416, '\P{^_Is_Sogo}', "");
-    Error('\p{_	old_SOUTH_ARABIAN:=}');
-    Error('\P{_	old_SOUTH_ARABIAN:=}');
+    Expect(1, 69415, '\p{_is_Sogo}', "");
+    Expect(0, 69415, '\p{^_is_Sogo}', "");
+    Expect(0, 69415, '\P{_is_Sogo}', "");
+    Expect(1, 69415, '\P{^_is_Sogo}', "");
+    Expect(0, 69416, '\p{_is_Sogo}', "");
+    Expect(1, 69416, '\p{^_is_Sogo}', "");
+    Expect(1, 69416, '\P{_is_Sogo}', "");
+    Expect(0, 69416, '\P{^_is_Sogo}', "");
+    Error('\p{--old_SOUTH_arabian/a/}');
+    Error('\P{--old_SOUTH_arabian/a/}');
     Expect(1, 68223, '\p{oldsoutharabian}', "");
     Expect(0, 68223, '\p{^oldsoutharabian}', "");
     Expect(0, 68223, '\P{oldsoutharabian}', "");
@@ -115033,16 +116249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68224, '\p{^oldsoutharabian}', "");
     Expect(1, 68224, '\P{oldsoutharabian}', "");
     Expect(0, 68224, '\P{^oldsoutharabian}', "");
-    Expect(1, 68223, '\p{	-old_South_Arabian}', "");
-    Expect(0, 68223, '\p{^	-old_South_Arabian}', "");
-    Expect(0, 68223, '\P{	-old_South_Arabian}', "");
-    Expect(1, 68223, '\P{^	-old_South_Arabian}', "");
-    Expect(0, 68224, '\p{	-old_South_Arabian}', "");
-    Expect(1, 68224, '\p{^	-old_South_Arabian}', "");
-    Expect(1, 68224, '\P{	-old_South_Arabian}', "");
-    Expect(0, 68224, '\P{^	-old_South_Arabian}', "");
-    Error('\p{/a/-Is_OLD_South_Arabian}');
-    Error('\P{/a/-Is_OLD_South_Arabian}');
+    Expect(1, 68223, '\p{ Old_South_arabian}', "");
+    Expect(0, 68223, '\p{^ Old_South_arabian}', "");
+    Expect(0, 68223, '\P{ Old_South_arabian}', "");
+    Expect(1, 68223, '\P{^ Old_South_arabian}', "");
+    Expect(0, 68224, '\p{ Old_South_arabian}', "");
+    Expect(1, 68224, '\p{^ Old_South_arabian}', "");
+    Expect(1, 68224, '\P{ Old_South_arabian}', "");
+    Expect(0, 68224, '\P{^ Old_South_arabian}', "");
+    Error('\p{	Is_old_South_ARABIAN/a/}');
+    Error('\P{	Is_old_South_ARABIAN/a/}');
     Expect(1, 68223, '\p{isoldsoutharabian}', "");
     Expect(0, 68223, '\p{^isoldsoutharabian}', "");
     Expect(0, 68223, '\P{isoldsoutharabian}', "");
@@ -115051,16 +116267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68224, '\p{^isoldsoutharabian}', "");
     Expect(1, 68224, '\P{isoldsoutharabian}', "");
     Expect(0, 68224, '\P{^isoldsoutharabian}', "");
-    Expect(1, 68223, '\p{ Is_OLD_South_arabian}', "");
-    Expect(0, 68223, '\p{^ Is_OLD_South_arabian}', "");
-    Expect(0, 68223, '\P{ Is_OLD_South_arabian}', "");
-    Expect(1, 68223, '\P{^ Is_OLD_South_arabian}', "");
-    Expect(0, 68224, '\p{ Is_OLD_South_arabian}', "");
-    Expect(1, 68224, '\p{^ Is_OLD_South_arabian}', "");
-    Expect(1, 68224, '\P{ Is_OLD_South_arabian}', "");
-    Expect(0, 68224, '\P{^ Is_OLD_South_arabian}', "");
-    Error('\p{	Sarb/a/}');
-    Error('\P{	Sarb/a/}');
+    Expect(1, 68223, '\p{-Is_OLD_South_arabian}', "");
+    Expect(0, 68223, '\p{^-Is_OLD_South_arabian}', "");
+    Expect(0, 68223, '\P{-Is_OLD_South_arabian}', "");
+    Expect(1, 68223, '\P{^-Is_OLD_South_arabian}', "");
+    Expect(0, 68224, '\p{-Is_OLD_South_arabian}', "");
+    Expect(1, 68224, '\p{^-Is_OLD_South_arabian}', "");
+    Expect(1, 68224, '\P{-Is_OLD_South_arabian}', "");
+    Expect(0, 68224, '\P{^-Is_OLD_South_arabian}', "");
+    Error('\p{/a/-Sarb}');
+    Error('\P{/a/-Sarb}');
     Expect(1, 68223, '\p{sarb}', "");
     Expect(0, 68223, '\p{^sarb}', "");
     Expect(0, 68223, '\P{sarb}', "");
@@ -115069,16 +116285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68224, '\p{^sarb}', "");
     Expect(1, 68224, '\P{sarb}', "");
     Expect(0, 68224, '\P{^sarb}', "");
-    Expect(1, 68223, '\p{ SARB}', "");
-    Expect(0, 68223, '\p{^ SARB}', "");
-    Expect(0, 68223, '\P{ SARB}', "");
-    Expect(1, 68223, '\P{^ SARB}', "");
-    Expect(0, 68224, '\p{ SARB}', "");
-    Expect(1, 68224, '\p{^ SARB}', "");
-    Expect(1, 68224, '\P{ SARB}', "");
-    Expect(0, 68224, '\P{^ SARB}', "");
-    Error('\p{-Is_Sarb:=}');
-    Error('\P{-Is_Sarb:=}');
+    Expect(1, 68223, '\p{	Sarb}', "");
+    Expect(0, 68223, '\p{^	Sarb}', "");
+    Expect(0, 68223, '\P{	Sarb}', "");
+    Expect(1, 68223, '\P{^	Sarb}', "");
+    Expect(0, 68224, '\p{	Sarb}', "");
+    Expect(1, 68224, '\p{^	Sarb}', "");
+    Expect(1, 68224, '\P{	Sarb}', "");
+    Expect(0, 68224, '\P{^	Sarb}', "");
+    Error('\p{/a/ 	is_Sarb}');
+    Error('\P{/a/ 	is_Sarb}');
     Expect(1, 68223, '\p{issarb}', "");
     Expect(0, 68223, '\p{^issarb}', "");
     Expect(0, 68223, '\P{issarb}', "");
@@ -115087,16 +116303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68224, '\p{^issarb}', "");
     Expect(1, 68224, '\P{issarb}', "");
     Expect(0, 68224, '\P{^issarb}', "");
-    Expect(1, 68223, '\p{ is_Sarb}', "");
-    Expect(0, 68223, '\p{^ is_Sarb}', "");
-    Expect(0, 68223, '\P{ is_Sarb}', "");
-    Expect(1, 68223, '\P{^ is_Sarb}', "");
-    Expect(0, 68224, '\p{ is_Sarb}', "");
-    Expect(1, 68224, '\p{^ is_Sarb}', "");
-    Expect(1, 68224, '\P{ is_Sarb}', "");
-    Expect(0, 68224, '\P{^ is_Sarb}', "");
-    Error('\p{-:=old_Turkic}');
-    Error('\P{-:=old_Turkic}');
+    Expect(1, 68223, '\p{		is_Sarb}', "");
+    Expect(0, 68223, '\p{^		is_Sarb}', "");
+    Expect(0, 68223, '\P{		is_Sarb}', "");
+    Expect(1, 68223, '\P{^		is_Sarb}', "");
+    Expect(0, 68224, '\p{		is_Sarb}', "");
+    Expect(1, 68224, '\p{^		is_Sarb}', "");
+    Expect(1, 68224, '\P{		is_Sarb}', "");
+    Expect(0, 68224, '\P{^		is_Sarb}', "");
+    Error('\p{- Old_TURKIC:=}');
+    Error('\P{- Old_TURKIC:=}');
     Expect(1, 68680, '\p{oldturkic}', "");
     Expect(0, 68680, '\p{^oldturkic}', "");
     Expect(0, 68680, '\P{oldturkic}', "");
@@ -115105,16 +116321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68681, '\p{^oldturkic}', "");
     Expect(1, 68681, '\P{oldturkic}', "");
     Expect(0, 68681, '\P{^oldturkic}', "");
-    Expect(1, 68680, '\p{-OLD_Turkic}', "");
-    Expect(0, 68680, '\p{^-OLD_Turkic}', "");
-    Expect(0, 68680, '\P{-OLD_Turkic}', "");
-    Expect(1, 68680, '\P{^-OLD_Turkic}', "");
-    Expect(0, 68681, '\p{-OLD_Turkic}', "");
-    Expect(1, 68681, '\p{^-OLD_Turkic}', "");
-    Expect(1, 68681, '\P{-OLD_Turkic}', "");
-    Expect(0, 68681, '\P{^-OLD_Turkic}', "");
-    Error('\p{-/a/is_old_turkic}');
-    Error('\P{-/a/is_old_turkic}');
+    Expect(1, 68680, '\p{_	Old_Turkic}', "");
+    Expect(0, 68680, '\p{^_	Old_Turkic}', "");
+    Expect(0, 68680, '\P{_	Old_Turkic}', "");
+    Expect(1, 68680, '\P{^_	Old_Turkic}', "");
+    Expect(0, 68681, '\p{_	Old_Turkic}', "");
+    Expect(1, 68681, '\p{^_	Old_Turkic}', "");
+    Expect(1, 68681, '\P{_	Old_Turkic}', "");
+    Expect(0, 68681, '\P{^_	Old_Turkic}', "");
+    Error('\p{/a/_ Is_OLD_Turkic}');
+    Error('\P{/a/_ Is_OLD_Turkic}');
     Expect(1, 68680, '\p{isoldturkic}', "");
     Expect(0, 68680, '\p{^isoldturkic}', "");
     Expect(0, 68680, '\P{isoldturkic}', "");
@@ -115123,16 +116339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68681, '\p{^isoldturkic}', "");
     Expect(1, 68681, '\P{isoldturkic}', "");
     Expect(0, 68681, '\P{^isoldturkic}', "");
-    Expect(1, 68680, '\p{_is_OLD_TURKIC}', "");
-    Expect(0, 68680, '\p{^_is_OLD_TURKIC}', "");
-    Expect(0, 68680, '\P{_is_OLD_TURKIC}', "");
-    Expect(1, 68680, '\P{^_is_OLD_TURKIC}', "");
-    Expect(0, 68681, '\p{_is_OLD_TURKIC}', "");
-    Expect(1, 68681, '\p{^_is_OLD_TURKIC}', "");
-    Expect(1, 68681, '\P{_is_OLD_TURKIC}', "");
-    Expect(0, 68681, '\P{^_is_OLD_TURKIC}', "");
-    Error('\p{:=__orkh}');
-    Error('\P{:=__orkh}');
+    Expect(1, 68680, '\p{	 is_Old_Turkic}', "");
+    Expect(0, 68680, '\p{^	 is_Old_Turkic}', "");
+    Expect(0, 68680, '\P{	 is_Old_Turkic}', "");
+    Expect(1, 68680, '\P{^	 is_Old_Turkic}', "");
+    Expect(0, 68681, '\p{	 is_Old_Turkic}', "");
+    Expect(1, 68681, '\p{^	 is_Old_Turkic}', "");
+    Expect(1, 68681, '\P{	 is_Old_Turkic}', "");
+    Expect(0, 68681, '\P{^	 is_Old_Turkic}', "");
+    Error('\p{ _Orkh/a/}');
+    Error('\P{ _Orkh/a/}');
     Expect(1, 68680, '\p{orkh}', "");
     Expect(0, 68680, '\p{^orkh}', "");
     Expect(0, 68680, '\P{orkh}', "");
@@ -115141,16 +116357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68681, '\p{^orkh}', "");
     Expect(1, 68681, '\P{orkh}', "");
     Expect(0, 68681, '\P{^orkh}', "");
-    Expect(1, 68680, '\p{_Orkh}', "");
-    Expect(0, 68680, '\p{^_Orkh}', "");
-    Expect(0, 68680, '\P{_Orkh}', "");
-    Expect(1, 68680, '\P{^_Orkh}', "");
-    Expect(0, 68681, '\p{_Orkh}', "");
-    Expect(1, 68681, '\p{^_Orkh}', "");
-    Expect(1, 68681, '\P{_Orkh}', "");
-    Expect(0, 68681, '\P{^_Orkh}', "");
-    Error('\p{-:=is_ORKH}');
-    Error('\P{-:=is_ORKH}');
+    Expect(1, 68680, '\p{-_orkh}', "");
+    Expect(0, 68680, '\p{^-_orkh}', "");
+    Expect(0, 68680, '\P{-_orkh}', "");
+    Expect(1, 68680, '\P{^-_orkh}', "");
+    Expect(0, 68681, '\p{-_orkh}', "");
+    Expect(1, 68681, '\p{^-_orkh}', "");
+    Expect(1, 68681, '\P{-_orkh}', "");
+    Expect(0, 68681, '\P{^-_orkh}', "");
+    Error('\p{/a/__is_Orkh}');
+    Error('\P{/a/__is_Orkh}');
     Expect(1, 68680, '\p{isorkh}', "");
     Expect(0, 68680, '\p{^isorkh}', "");
     Expect(0, 68680, '\P{isorkh}', "");
@@ -115159,16 +116375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68681, '\p{^isorkh}', "");
     Expect(1, 68681, '\P{isorkh}', "");
     Expect(0, 68681, '\P{^isorkh}', "");
-    Expect(1, 68680, '\p{  IS_orkh}', "");
-    Expect(0, 68680, '\p{^  IS_orkh}', "");
-    Expect(0, 68680, '\P{  IS_orkh}', "");
-    Expect(1, 68680, '\P{^  IS_orkh}', "");
-    Expect(0, 68681, '\p{  IS_orkh}', "");
-    Expect(1, 68681, '\p{^  IS_orkh}', "");
-    Expect(1, 68681, '\P{  IS_orkh}', "");
-    Expect(0, 68681, '\P{^  IS_orkh}', "");
-    Error('\p{	OLD_UYGHUR:=}');
-    Error('\P{	OLD_UYGHUR:=}');
+    Expect(1, 68680, '\p{ -IS_Orkh}', "");
+    Expect(0, 68680, '\p{^ -IS_Orkh}', "");
+    Expect(0, 68680, '\P{ -IS_Orkh}', "");
+    Expect(1, 68680, '\P{^ -IS_Orkh}', "");
+    Expect(0, 68681, '\p{ -IS_Orkh}', "");
+    Expect(1, 68681, '\p{^ -IS_Orkh}', "");
+    Expect(1, 68681, '\P{ -IS_Orkh}', "");
+    Expect(0, 68681, '\P{^ -IS_Orkh}', "");
+    Error('\p{:=- Old_Uyghur}');
+    Error('\P{:=- Old_Uyghur}');
     Expect(1, 69513, '\p{olduyghur}', "");
     Expect(0, 69513, '\p{^olduyghur}', "");
     Expect(0, 69513, '\P{olduyghur}', "");
@@ -115177,16 +116393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69514, '\p{^olduyghur}', "");
     Expect(1, 69514, '\P{olduyghur}', "");
     Expect(0, 69514, '\P{^olduyghur}', "");
-    Expect(1, 69513, '\p{-_Old_uyghur}', "");
-    Expect(0, 69513, '\p{^-_Old_uyghur}', "");
-    Expect(0, 69513, '\P{-_Old_uyghur}', "");
-    Expect(1, 69513, '\P{^-_Old_uyghur}', "");
-    Expect(0, 69514, '\p{-_Old_uyghur}', "");
-    Expect(1, 69514, '\p{^-_Old_uyghur}', "");
-    Expect(1, 69514, '\P{-_Old_uyghur}', "");
-    Expect(0, 69514, '\P{^-_Old_uyghur}', "");
-    Error('\p{:=	Is_Old_UYGHUR}');
-    Error('\P{:=	Is_Old_UYGHUR}');
+    Expect(1, 69513, '\p{__OLD_UYGHUR}', "");
+    Expect(0, 69513, '\p{^__OLD_UYGHUR}', "");
+    Expect(0, 69513, '\P{__OLD_UYGHUR}', "");
+    Expect(1, 69513, '\P{^__OLD_UYGHUR}', "");
+    Expect(0, 69514, '\p{__OLD_UYGHUR}', "");
+    Expect(1, 69514, '\p{^__OLD_UYGHUR}', "");
+    Expect(1, 69514, '\P{__OLD_UYGHUR}', "");
+    Expect(0, 69514, '\P{^__OLD_UYGHUR}', "");
+    Error('\p{:=_	Is_Old_UYGHUR}');
+    Error('\P{:=_	Is_Old_UYGHUR}');
     Expect(1, 69513, '\p{isolduyghur}', "");
     Expect(0, 69513, '\p{^isolduyghur}', "");
     Expect(0, 69513, '\P{isolduyghur}', "");
@@ -115195,16 +116411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69514, '\p{^isolduyghur}', "");
     Expect(1, 69514, '\P{isolduyghur}', "");
     Expect(0, 69514, '\P{^isolduyghur}', "");
-    Expect(1, 69513, '\p{	_Is_Old_uyghur}', "");
-    Expect(0, 69513, '\p{^	_Is_Old_uyghur}', "");
-    Expect(0, 69513, '\P{	_Is_Old_uyghur}', "");
-    Expect(1, 69513, '\P{^	_Is_Old_uyghur}', "");
-    Expect(0, 69514, '\p{	_Is_Old_uyghur}', "");
-    Expect(1, 69514, '\p{^	_Is_Old_uyghur}', "");
-    Expect(1, 69514, '\P{	_Is_Old_uyghur}', "");
-    Expect(0, 69514, '\P{^	_Is_Old_uyghur}', "");
-    Error('\p{:=_ Ougr}');
-    Error('\P{:=_ Ougr}');
+    Expect(1, 69513, '\p{	_Is_Old_UYGHUR}', "");
+    Expect(0, 69513, '\p{^	_Is_Old_UYGHUR}', "");
+    Expect(0, 69513, '\P{	_Is_Old_UYGHUR}', "");
+    Expect(1, 69513, '\P{^	_Is_Old_UYGHUR}', "");
+    Expect(0, 69514, '\p{	_Is_Old_UYGHUR}', "");
+    Expect(1, 69514, '\p{^	_Is_Old_UYGHUR}', "");
+    Expect(1, 69514, '\P{	_Is_Old_UYGHUR}', "");
+    Expect(0, 69514, '\P{^	_Is_Old_UYGHUR}', "");
+    Error('\p{OUGR/a/}');
+    Error('\P{OUGR/a/}');
     Expect(1, 69513, '\p{ougr}', "");
     Expect(0, 69513, '\p{^ougr}', "");
     Expect(0, 69513, '\P{ougr}', "");
@@ -115213,16 +116429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69514, '\p{^ougr}', "");
     Expect(1, 69514, '\P{ougr}', "");
     Expect(0, 69514, '\P{^ougr}', "");
-    Expect(1, 69513, '\p{	Ougr}', "");
-    Expect(0, 69513, '\p{^	Ougr}', "");
-    Expect(0, 69513, '\P{	Ougr}', "");
-    Expect(1, 69513, '\P{^	Ougr}', "");
-    Expect(0, 69514, '\p{	Ougr}', "");
-    Expect(1, 69514, '\p{^	Ougr}', "");
-    Expect(1, 69514, '\P{	Ougr}', "");
-    Expect(0, 69514, '\P{^	Ougr}', "");
-    Error('\p{ Is_OUGR:=}');
-    Error('\P{ Is_OUGR:=}');
+    Expect(1, 69513, '\p{_ougr}', "");
+    Expect(0, 69513, '\p{^_ougr}', "");
+    Expect(0, 69513, '\P{_ougr}', "");
+    Expect(1, 69513, '\P{^_ougr}', "");
+    Expect(0, 69514, '\p{_ougr}', "");
+    Expect(1, 69514, '\p{^_ougr}', "");
+    Expect(1, 69514, '\P{_ougr}', "");
+    Expect(0, 69514, '\P{^_ougr}', "");
+    Error('\p{-is_OUGR/a/}');
+    Error('\P{-is_OUGR/a/}');
     Expect(1, 69513, '\p{isougr}', "");
     Expect(0, 69513, '\p{^isougr}', "");
     Expect(0, 69513, '\P{isougr}', "");
@@ -115231,16 +116447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69514, '\p{^isougr}', "");
     Expect(1, 69514, '\P{isougr}', "");
     Expect(0, 69514, '\P{^isougr}', "");
-    Expect(1, 69513, '\p{_ IS_Ougr}', "");
-    Expect(0, 69513, '\p{^_ IS_Ougr}', "");
-    Expect(0, 69513, '\P{_ IS_Ougr}', "");
-    Expect(1, 69513, '\P{^_ IS_Ougr}', "");
-    Expect(0, 69514, '\p{_ IS_Ougr}', "");
-    Expect(1, 69514, '\p{^_ IS_Ougr}', "");
-    Expect(1, 69514, '\P{_ IS_Ougr}', "");
-    Expect(0, 69514, '\P{^_ IS_Ougr}', "");
-    Error('\p{--OPEN_PUNCTUATION:=}');
-    Error('\P{--OPEN_PUNCTUATION:=}');
+    Expect(1, 69513, '\p{_ Is_ougr}', "");
+    Expect(0, 69513, '\p{^_ Is_ougr}', "");
+    Expect(0, 69513, '\P{_ Is_ougr}', "");
+    Expect(1, 69513, '\P{^_ Is_ougr}', "");
+    Expect(0, 69514, '\p{_ Is_ougr}', "");
+    Expect(1, 69514, '\p{^_ Is_ougr}', "");
+    Expect(1, 69514, '\P{_ Is_ougr}', "");
+    Expect(0, 69514, '\P{^_ Is_ougr}', "");
+    Error('\p{ /a/Open_Punctuation}');
+    Error('\P{ /a/Open_Punctuation}');
     Expect(1, 65378, '\p{openpunctuation}', "");
     Expect(0, 65378, '\p{^openpunctuation}', "");
     Expect(0, 65378, '\P{openpunctuation}', "");
@@ -115249,16 +116465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65379, '\p{^openpunctuation}', "");
     Expect(1, 65379, '\P{openpunctuation}', "");
     Expect(0, 65379, '\P{^openpunctuation}', "");
-    Expect(1, 65378, '\p{-Open_PUNCTUATION}', "");
-    Expect(0, 65378, '\p{^-Open_PUNCTUATION}', "");
-    Expect(0, 65378, '\P{-Open_PUNCTUATION}', "");
-    Expect(1, 65378, '\P{^-Open_PUNCTUATION}', "");
-    Expect(0, 65379, '\p{-Open_PUNCTUATION}', "");
-    Expect(1, 65379, '\p{^-Open_PUNCTUATION}', "");
-    Expect(1, 65379, '\P{-Open_PUNCTUATION}', "");
-    Expect(0, 65379, '\P{^-Open_PUNCTUATION}', "");
-    Error('\p{-/a/is_open_Punctuation}');
-    Error('\P{-/a/is_open_Punctuation}');
+    Expect(1, 65378, '\p{- Open_Punctuation}', "");
+    Expect(0, 65378, '\p{^- Open_Punctuation}', "");
+    Expect(0, 65378, '\P{- Open_Punctuation}', "");
+    Expect(1, 65378, '\P{^- Open_Punctuation}', "");
+    Expect(0, 65379, '\p{- Open_Punctuation}', "");
+    Expect(1, 65379, '\p{^- Open_Punctuation}', "");
+    Expect(1, 65379, '\P{- Open_Punctuation}', "");
+    Expect(0, 65379, '\P{^- Open_Punctuation}', "");
+    Error('\p{	:=Is_Open_PUNCTUATION}');
+    Error('\P{	:=Is_Open_PUNCTUATION}');
     Expect(1, 65378, '\p{isopenpunctuation}', "");
     Expect(0, 65378, '\p{^isopenpunctuation}', "");
     Expect(0, 65378, '\P{isopenpunctuation}', "");
@@ -115267,16 +116483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65379, '\p{^isopenpunctuation}', "");
     Expect(1, 65379, '\P{isopenpunctuation}', "");
     Expect(0, 65379, '\P{^isopenpunctuation}', "");
-    Expect(1, 65378, '\p{		Is_Open_punctuation}', "");
-    Expect(0, 65378, '\p{^		Is_Open_punctuation}', "");
-    Expect(0, 65378, '\P{		Is_Open_punctuation}', "");
-    Expect(1, 65378, '\P{^		Is_Open_punctuation}', "");
-    Expect(0, 65379, '\p{		Is_Open_punctuation}', "");
-    Expect(1, 65379, '\p{^		Is_Open_punctuation}', "");
-    Expect(1, 65379, '\P{		Is_Open_punctuation}', "");
-    Expect(0, 65379, '\P{^		Is_Open_punctuation}', "");
-    Error('\p{-/a/Ps}');
-    Error('\P{-/a/Ps}');
+    Expect(1, 65378, '\p{ -is_OPEN_punctuation}', "");
+    Expect(0, 65378, '\p{^ -is_OPEN_punctuation}', "");
+    Expect(0, 65378, '\P{ -is_OPEN_punctuation}', "");
+    Expect(1, 65378, '\P{^ -is_OPEN_punctuation}', "");
+    Expect(0, 65379, '\p{ -is_OPEN_punctuation}', "");
+    Expect(1, 65379, '\p{^ -is_OPEN_punctuation}', "");
+    Expect(1, 65379, '\P{ -is_OPEN_punctuation}', "");
+    Expect(0, 65379, '\P{^ -is_OPEN_punctuation}', "");
+    Error('\p{--Ps:=}');
+    Error('\P{--Ps:=}');
     Expect(1, 65378, '\p{ps}', "");
     Expect(0, 65378, '\p{^ps}', "");
     Expect(0, 65378, '\P{ps}', "");
@@ -115285,16 +116501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65379, '\p{^ps}', "");
     Expect(1, 65379, '\P{ps}', "");
     Expect(0, 65379, '\P{^ps}', "");
-    Expect(1, 65378, '\p{ _Ps}', "");
-    Expect(0, 65378, '\p{^ _Ps}', "");
-    Expect(0, 65378, '\P{ _Ps}', "");
-    Expect(1, 65378, '\P{^ _Ps}', "");
-    Expect(0, 65379, '\p{ _Ps}', "");
-    Expect(1, 65379, '\p{^ _Ps}', "");
-    Expect(1, 65379, '\P{ _Ps}', "");
-    Expect(0, 65379, '\P{^ _Ps}', "");
-    Error('\p{_	Is_Ps:=}');
-    Error('\P{_	Is_Ps:=}');
+    Expect(1, 65378, '\p{_ Ps}', "");
+    Expect(0, 65378, '\p{^_ Ps}', "");
+    Expect(0, 65378, '\P{_ Ps}', "");
+    Expect(1, 65378, '\P{^_ Ps}', "");
+    Expect(0, 65379, '\p{_ Ps}', "");
+    Expect(1, 65379, '\p{^_ Ps}', "");
+    Expect(1, 65379, '\P{_ Ps}', "");
+    Expect(0, 65379, '\P{^_ Ps}', "");
+    Error('\p{__Is_PS/a/}');
+    Error('\P{__Is_PS/a/}');
     Expect(1, 65378, '\p{isps}', "");
     Expect(0, 65378, '\p{^isps}', "");
     Expect(0, 65378, '\P{isps}', "");
@@ -115303,16 +116519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65379, '\p{^isps}', "");
     Expect(1, 65379, '\P{isps}', "");
     Expect(0, 65379, '\P{^isps}', "");
-    Expect(1, 65378, '\p{ _is_Ps}', "");
-    Expect(0, 65378, '\p{^ _is_Ps}', "");
-    Expect(0, 65378, '\P{ _is_Ps}', "");
-    Expect(1, 65378, '\P{^ _is_Ps}', "");
-    Expect(0, 65379, '\p{ _is_Ps}', "");
-    Expect(1, 65379, '\p{^ _is_Ps}', "");
-    Expect(1, 65379, '\P{ _is_Ps}', "");
-    Expect(0, 65379, '\P{^ _is_Ps}', "");
-    Error('\p{	:=OPTICAL_Character_Recognition}');
-    Error('\P{	:=OPTICAL_Character_Recognition}');
+    Expect(1, 65378, '\p{--IS_ps}', "");
+    Expect(0, 65378, '\p{^--IS_ps}', "");
+    Expect(0, 65378, '\P{--IS_ps}', "");
+    Expect(1, 65378, '\P{^--IS_ps}', "");
+    Expect(0, 65379, '\p{--IS_ps}', "");
+    Expect(1, 65379, '\p{^--IS_ps}', "");
+    Expect(1, 65379, '\P{--IS_ps}', "");
+    Expect(0, 65379, '\P{^--IS_ps}', "");
+    Error('\p{/a/-_Optical_Character_RECOGNITION}');
+    Error('\P{/a/-_Optical_Character_RECOGNITION}');
     Expect(1, 9311, '\p{opticalcharacterrecognition}', "");
     Expect(0, 9311, '\p{^opticalcharacterrecognition}', "");
     Expect(0, 9311, '\P{opticalcharacterrecognition}', "");
@@ -115321,16 +116537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9312, '\p{^opticalcharacterrecognition}', "");
     Expect(1, 9312, '\P{opticalcharacterrecognition}', "");
     Expect(0, 9312, '\P{^opticalcharacterrecognition}', "");
-    Expect(1, 9311, '\p{  Optical_CHARACTER_Recognition}', "");
-    Expect(0, 9311, '\p{^  Optical_CHARACTER_Recognition}', "");
-    Expect(0, 9311, '\P{  Optical_CHARACTER_Recognition}', "");
-    Expect(1, 9311, '\P{^  Optical_CHARACTER_Recognition}', "");
-    Expect(0, 9312, '\p{  Optical_CHARACTER_Recognition}', "");
-    Expect(1, 9312, '\p{^  Optical_CHARACTER_Recognition}', "");
-    Expect(1, 9312, '\P{  Optical_CHARACTER_Recognition}', "");
-    Expect(0, 9312, '\P{^  Optical_CHARACTER_Recognition}', "");
-    Error('\p{_:=Is_OPTICAL_Character_recognition}');
-    Error('\P{_:=Is_OPTICAL_Character_recognition}');
+    Expect(1, 9311, '\p{- Optical_Character_RECOGNITION}', "");
+    Expect(0, 9311, '\p{^- Optical_Character_RECOGNITION}', "");
+    Expect(0, 9311, '\P{- Optical_Character_RECOGNITION}', "");
+    Expect(1, 9311, '\P{^- Optical_Character_RECOGNITION}', "");
+    Expect(0, 9312, '\p{- Optical_Character_RECOGNITION}', "");
+    Expect(1, 9312, '\p{^- Optical_Character_RECOGNITION}', "");
+    Expect(1, 9312, '\P{- Optical_Character_RECOGNITION}', "");
+    Expect(0, 9312, '\P{^- Optical_Character_RECOGNITION}', "");
+    Error('\p{/a/_is_optical_Character_RECOGNITION}');
+    Error('\P{/a/_is_optical_Character_RECOGNITION}');
     Expect(1, 9311, '\p{isopticalcharacterrecognition}', "");
     Expect(0, 9311, '\p{^isopticalcharacterrecognition}', "");
     Expect(0, 9311, '\P{isopticalcharacterrecognition}', "");
@@ -115339,16 +116555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9312, '\p{^isopticalcharacterrecognition}', "");
     Expect(1, 9312, '\P{isopticalcharacterrecognition}', "");
     Expect(0, 9312, '\P{^isopticalcharacterrecognition}', "");
-    Expect(1, 9311, '\p{-Is_Optical_Character_Recognition}', "");
-    Expect(0, 9311, '\p{^-Is_Optical_Character_Recognition}', "");
-    Expect(0, 9311, '\P{-Is_Optical_Character_Recognition}', "");
-    Expect(1, 9311, '\P{^-Is_Optical_Character_Recognition}', "");
-    Expect(0, 9312, '\p{-Is_Optical_Character_Recognition}', "");
-    Expect(1, 9312, '\p{^-Is_Optical_Character_Recognition}', "");
-    Expect(1, 9312, '\P{-Is_Optical_Character_Recognition}', "");
-    Expect(0, 9312, '\P{^-Is_Optical_Character_Recognition}', "");
-    Error('\p{ /a/In_OPTICAL_Character_recognition}');
-    Error('\P{ /a/In_OPTICAL_Character_recognition}');
+    Expect(1, 9311, '\p{ 	Is_Optical_Character_recognition}', "");
+    Expect(0, 9311, '\p{^ 	Is_Optical_Character_recognition}', "");
+    Expect(0, 9311, '\P{ 	Is_Optical_Character_recognition}', "");
+    Expect(1, 9311, '\P{^ 	Is_Optical_Character_recognition}', "");
+    Expect(0, 9312, '\p{ 	Is_Optical_Character_recognition}', "");
+    Expect(1, 9312, '\p{^ 	Is_Optical_Character_recognition}', "");
+    Expect(1, 9312, '\P{ 	Is_Optical_Character_recognition}', "");
+    Expect(0, 9312, '\P{^ 	Is_Optical_Character_recognition}', "");
+    Error('\p{		in_Optical_CHARACTER_recognition/a/}');
+    Error('\P{		in_Optical_CHARACTER_recognition/a/}');
     Expect(1, 9311, '\p{inopticalcharacterrecognition}', "");
     Expect(0, 9311, '\p{^inopticalcharacterrecognition}', "");
     Expect(0, 9311, '\P{inopticalcharacterrecognition}', "");
@@ -115357,16 +116573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9312, '\p{^inopticalcharacterrecognition}', "");
     Expect(1, 9312, '\P{inopticalcharacterrecognition}', "");
     Expect(0, 9312, '\P{^inopticalcharacterrecognition}', "");
-    Expect(1, 9311, '\p{	 In_Optical_CHARACTER_recognition}', "");
-    Expect(0, 9311, '\p{^	 In_Optical_CHARACTER_recognition}', "");
-    Expect(0, 9311, '\P{	 In_Optical_CHARACTER_recognition}', "");
-    Expect(1, 9311, '\P{^	 In_Optical_CHARACTER_recognition}', "");
-    Expect(0, 9312, '\p{	 In_Optical_CHARACTER_recognition}', "");
-    Expect(1, 9312, '\p{^	 In_Optical_CHARACTER_recognition}', "");
-    Expect(1, 9312, '\P{	 In_Optical_CHARACTER_recognition}', "");
-    Expect(0, 9312, '\P{^	 In_Optical_CHARACTER_recognition}', "");
-    Error('\p{	:=OCR}');
-    Error('\P{	:=OCR}');
+    Expect(1, 9311, '\p{-	In_Optical_character_recognition}', "");
+    Expect(0, 9311, '\p{^-	In_Optical_character_recognition}', "");
+    Expect(0, 9311, '\P{-	In_Optical_character_recognition}', "");
+    Expect(1, 9311, '\P{^-	In_Optical_character_recognition}', "");
+    Expect(0, 9312, '\p{-	In_Optical_character_recognition}', "");
+    Expect(1, 9312, '\p{^-	In_Optical_character_recognition}', "");
+    Expect(1, 9312, '\P{-	In_Optical_character_recognition}', "");
+    Expect(0, 9312, '\P{^-	In_Optical_character_recognition}', "");
+    Error('\p{ :=OCR}');
+    Error('\P{ :=OCR}');
     Expect(1, 9311, '\p{ocr}', "");
     Expect(0, 9311, '\p{^ocr}', "");
     Expect(0, 9311, '\P{ocr}', "");
@@ -115375,16 +116591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9312, '\p{^ocr}', "");
     Expect(1, 9312, '\P{ocr}', "");
     Expect(0, 9312, '\P{^ocr}', "");
-    Expect(1, 9311, '\p{OCR}', "");
-    Expect(0, 9311, '\p{^OCR}', "");
-    Expect(0, 9311, '\P{OCR}', "");
-    Expect(1, 9311, '\P{^OCR}', "");
-    Expect(0, 9312, '\p{OCR}', "");
-    Expect(1, 9312, '\p{^OCR}', "");
-    Expect(1, 9312, '\P{OCR}', "");
-    Expect(0, 9312, '\P{^OCR}', "");
-    Error('\p{__is_OCR/a/}');
-    Error('\P{__is_OCR/a/}');
+    Expect(1, 9311, '\p{--OCR}', "");
+    Expect(0, 9311, '\p{^--OCR}', "");
+    Expect(0, 9311, '\P{--OCR}', "");
+    Expect(1, 9311, '\P{^--OCR}', "");
+    Expect(0, 9312, '\p{--OCR}', "");
+    Expect(1, 9312, '\p{^--OCR}', "");
+    Expect(1, 9312, '\P{--OCR}', "");
+    Expect(0, 9312, '\P{^--OCR}', "");
+    Error('\p{	IS_OCR/a/}');
+    Error('\P{	IS_OCR/a/}');
     Expect(1, 9311, '\p{isocr}', "");
     Expect(0, 9311, '\p{^isocr}', "");
     Expect(0, 9311, '\P{isocr}', "");
@@ -115393,16 +116609,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9312, '\p{^isocr}', "");
     Expect(1, 9312, '\P{isocr}', "");
     Expect(0, 9312, '\P{^isocr}', "");
-    Expect(1, 9311, '\p{_is_ocr}', "");
-    Expect(0, 9311, '\p{^_is_ocr}', "");
-    Expect(0, 9311, '\P{_is_ocr}', "");
-    Expect(1, 9311, '\P{^_is_ocr}', "");
-    Expect(0, 9312, '\p{_is_ocr}', "");
-    Expect(1, 9312, '\p{^_is_ocr}', "");
-    Expect(1, 9312, '\P{_is_ocr}', "");
-    Expect(0, 9312, '\P{^_is_ocr}', "");
-    Error('\p{  IN_OCR/a/}');
-    Error('\P{  IN_OCR/a/}');
+    Expect(1, 9311, '\p{	-Is_OCR}', "");
+    Expect(0, 9311, '\p{^	-Is_OCR}', "");
+    Expect(0, 9311, '\P{	-Is_OCR}', "");
+    Expect(1, 9311, '\P{^	-Is_OCR}', "");
+    Expect(0, 9312, '\p{	-Is_OCR}', "");
+    Expect(1, 9312, '\p{^	-Is_OCR}', "");
+    Expect(1, 9312, '\P{	-Is_OCR}', "");
+    Expect(0, 9312, '\P{^	-Is_OCR}', "");
+    Error('\p{ :=IN_ocr}');
+    Error('\P{ :=IN_ocr}');
     Expect(1, 9311, '\p{inocr}', "");
     Expect(0, 9311, '\p{^inocr}', "");
     Expect(0, 9311, '\P{inocr}', "");
@@ -115411,16 +116627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 9312, '\p{^inocr}', "");
     Expect(1, 9312, '\P{inocr}', "");
     Expect(0, 9312, '\P{^inocr}', "");
-    Expect(1, 9311, '\p{_In_OCR}', "");
-    Expect(0, 9311, '\p{^_In_OCR}', "");
-    Expect(0, 9311, '\P{_In_OCR}', "");
-    Expect(1, 9311, '\P{^_In_OCR}', "");
-    Expect(0, 9312, '\p{_In_OCR}', "");
-    Expect(1, 9312, '\p{^_In_OCR}', "");
-    Expect(1, 9312, '\P{_In_OCR}', "");
-    Expect(0, 9312, '\P{^_In_OCR}', "");
-    Error('\p{	oriya:=}');
-    Error('\P{	oriya:=}');
+    Expect(1, 9311, '\p{	 in_ocr}', "");
+    Expect(0, 9311, '\p{^	 in_ocr}', "");
+    Expect(0, 9311, '\P{	 in_ocr}', "");
+    Expect(1, 9311, '\P{^	 in_ocr}', "");
+    Expect(0, 9312, '\p{	 in_ocr}', "");
+    Expect(1, 9312, '\p{^	 in_ocr}', "");
+    Expect(1, 9312, '\P{	 in_ocr}', "");
+    Expect(0, 9312, '\P{^	 in_ocr}', "");
+    Error('\p{-:=oriya}');
+    Error('\P{-:=oriya}');
     Expect(1, 7410, '\p{oriya}', "");
     Expect(0, 7410, '\p{^oriya}', "");
     Expect(0, 7410, '\P{oriya}', "");
@@ -115429,16 +116645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7411, '\p{^oriya}', "");
     Expect(1, 7411, '\P{oriya}', "");
     Expect(0, 7411, '\P{^oriya}', "");
-    Expect(1, 7410, '\p{_Oriya}', "");
-    Expect(0, 7410, '\p{^_Oriya}', "");
-    Expect(0, 7410, '\P{_Oriya}', "");
-    Expect(1, 7410, '\P{^_Oriya}', "");
-    Expect(0, 7411, '\p{_Oriya}', "");
-    Expect(1, 7411, '\p{^_Oriya}', "");
-    Expect(1, 7411, '\P{_Oriya}', "");
-    Expect(0, 7411, '\P{^_Oriya}', "");
-    Error('\p{_/a/is_Oriya}');
-    Error('\P{_/a/is_Oriya}');
+    Expect(1, 7410, '\p{__Oriya}', "");
+    Expect(0, 7410, '\p{^__Oriya}', "");
+    Expect(0, 7410, '\P{__Oriya}', "");
+    Expect(1, 7410, '\P{^__Oriya}', "");
+    Expect(0, 7411, '\p{__Oriya}', "");
+    Expect(1, 7411, '\p{^__Oriya}', "");
+    Expect(1, 7411, '\P{__Oriya}', "");
+    Expect(0, 7411, '\P{^__Oriya}', "");
+    Error('\p{/a/	-Is_ORIYA}');
+    Error('\P{/a/	-Is_ORIYA}');
     Expect(1, 7410, '\p{isoriya}', "");
     Expect(0, 7410, '\p{^isoriya}', "");
     Expect(0, 7410, '\P{isoriya}', "");
@@ -115447,16 +116663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7411, '\p{^isoriya}', "");
     Expect(1, 7411, '\P{isoriya}', "");
     Expect(0, 7411, '\P{^isoriya}', "");
-    Expect(1, 7410, '\p{		Is_Oriya}', "");
-    Expect(0, 7410, '\p{^		Is_Oriya}', "");
-    Expect(0, 7410, '\P{		Is_Oriya}', "");
-    Expect(1, 7410, '\P{^		Is_Oriya}', "");
-    Expect(0, 7411, '\p{		Is_Oriya}', "");
-    Expect(1, 7411, '\p{^		Is_Oriya}', "");
-    Expect(1, 7411, '\P{		Is_Oriya}', "");
-    Expect(0, 7411, '\P{^		Is_Oriya}', "");
-    Error('\p{_:=orya}');
-    Error('\P{_:=orya}');
+    Expect(1, 7410, '\p{_Is_Oriya}', "");
+    Expect(0, 7410, '\p{^_Is_Oriya}', "");
+    Expect(0, 7410, '\P{_Is_Oriya}', "");
+    Expect(1, 7410, '\P{^_Is_Oriya}', "");
+    Expect(0, 7411, '\p{_Is_Oriya}', "");
+    Expect(1, 7411, '\p{^_Is_Oriya}', "");
+    Expect(1, 7411, '\P{_Is_Oriya}', "");
+    Expect(0, 7411, '\P{^_Is_Oriya}', "");
+    Error('\p{/a/	orya}');
+    Error('\P{/a/	orya}');
     Expect(1, 7410, '\p{orya}', "");
     Expect(0, 7410, '\p{^orya}', "");
     Expect(0, 7410, '\P{orya}', "");
@@ -115465,16 +116681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7411, '\p{^orya}', "");
     Expect(1, 7411, '\P{orya}', "");
     Expect(0, 7411, '\P{^orya}', "");
-    Expect(1, 7410, '\p{		orya}', "");
-    Expect(0, 7410, '\p{^		orya}', "");
-    Expect(0, 7410, '\P{		orya}', "");
-    Expect(1, 7410, '\P{^		orya}', "");
-    Expect(0, 7411, '\p{		orya}', "");
-    Expect(1, 7411, '\p{^		orya}', "");
-    Expect(1, 7411, '\P{		orya}', "");
-    Expect(0, 7411, '\P{^		orya}', "");
-    Error('\p{:=-IS_Orya}');
-    Error('\P{:=-IS_Orya}');
+    Expect(1, 7410, '\p{_ Orya}', "");
+    Expect(0, 7410, '\p{^_ Orya}', "");
+    Expect(0, 7410, '\P{_ Orya}', "");
+    Expect(1, 7410, '\P{^_ Orya}', "");
+    Expect(0, 7411, '\p{_ Orya}', "");
+    Expect(1, 7411, '\p{^_ Orya}', "");
+    Expect(1, 7411, '\P{_ Orya}', "");
+    Expect(0, 7411, '\P{^_ Orya}', "");
+    Error('\p{		is_Orya/a/}');
+    Error('\P{		is_Orya/a/}');
     Expect(1, 7410, '\p{isorya}', "");
     Expect(0, 7410, '\p{^isorya}', "");
     Expect(0, 7410, '\P{isorya}', "");
@@ -115483,16 +116699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7411, '\p{^isorya}', "");
     Expect(1, 7411, '\P{isorya}', "");
     Expect(0, 7411, '\P{^isorya}', "");
-    Expect(1, 7410, '\p{-_is_Orya}', "");
-    Expect(0, 7410, '\p{^-_is_Orya}', "");
-    Expect(0, 7410, '\P{-_is_Orya}', "");
-    Expect(1, 7410, '\P{^-_is_Orya}', "");
-    Expect(0, 7411, '\p{-_is_Orya}', "");
-    Expect(1, 7411, '\p{^-_is_Orya}', "");
-    Expect(1, 7411, '\P{-_is_Orya}', "");
-    Expect(0, 7411, '\P{^-_is_Orya}', "");
-    Error('\p{ /a/ornamental_Dingbats}');
-    Error('\P{ /a/ornamental_Dingbats}');
+    Expect(1, 7410, '\p{	-Is_Orya}', "");
+    Expect(0, 7410, '\p{^	-Is_Orya}', "");
+    Expect(0, 7410, '\P{	-Is_Orya}', "");
+    Expect(1, 7410, '\P{^	-Is_Orya}', "");
+    Expect(0, 7411, '\p{	-Is_Orya}', "");
+    Expect(1, 7411, '\p{^	-Is_Orya}', "");
+    Expect(1, 7411, '\P{	-Is_Orya}', "");
+    Expect(0, 7411, '\P{^	-Is_Orya}', "");
+    Error('\p{-_Ornamental_dingbats/a/}');
+    Error('\P{-_Ornamental_dingbats/a/}');
     Expect(1, 128639, '\p{ornamentaldingbats}', "");
     Expect(0, 128639, '\p{^ornamentaldingbats}', "");
     Expect(0, 128639, '\P{ornamentaldingbats}', "");
@@ -115501,16 +116717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128640, '\p{^ornamentaldingbats}', "");
     Expect(1, 128640, '\P{ornamentaldingbats}', "");
     Expect(0, 128640, '\P{^ornamentaldingbats}', "");
-    Expect(1, 128639, '\p{_ornamental_dingbats}', "");
-    Expect(0, 128639, '\p{^_ornamental_dingbats}', "");
-    Expect(0, 128639, '\P{_ornamental_dingbats}', "");
-    Expect(1, 128639, '\P{^_ornamental_dingbats}', "");
-    Expect(0, 128640, '\p{_ornamental_dingbats}', "");
-    Expect(1, 128640, '\p{^_ornamental_dingbats}', "");
-    Expect(1, 128640, '\P{_ornamental_dingbats}', "");
-    Expect(0, 128640, '\P{^_ornamental_dingbats}', "");
-    Error('\p{-is_Ornamental_dingbats/a/}');
-    Error('\P{-is_Ornamental_dingbats/a/}');
+    Expect(1, 128639, '\p{-ornamental_DINGBATS}', "");
+    Expect(0, 128639, '\p{^-ornamental_DINGBATS}', "");
+    Expect(0, 128639, '\P{-ornamental_DINGBATS}', "");
+    Expect(1, 128639, '\P{^-ornamental_DINGBATS}', "");
+    Expect(0, 128640, '\p{-ornamental_DINGBATS}', "");
+    Expect(1, 128640, '\p{^-ornamental_DINGBATS}', "");
+    Expect(1, 128640, '\P{-ornamental_DINGBATS}', "");
+    Expect(0, 128640, '\P{^-ornamental_DINGBATS}', "");
+    Error('\p{:= _Is_ornamental_Dingbats}');
+    Error('\P{:= _Is_ornamental_Dingbats}');
     Expect(1, 128639, '\p{isornamentaldingbats}', "");
     Expect(0, 128639, '\p{^isornamentaldingbats}', "");
     Expect(0, 128639, '\P{isornamentaldingbats}', "");
@@ -115519,16 +116735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128640, '\p{^isornamentaldingbats}', "");
     Expect(1, 128640, '\P{isornamentaldingbats}', "");
     Expect(0, 128640, '\P{^isornamentaldingbats}', "");
-    Expect(1, 128639, '\p{	 is_Ornamental_Dingbats}', "");
-    Expect(0, 128639, '\p{^	 is_Ornamental_Dingbats}', "");
-    Expect(0, 128639, '\P{	 is_Ornamental_Dingbats}', "");
-    Expect(1, 128639, '\P{^	 is_Ornamental_Dingbats}', "");
-    Expect(0, 128640, '\p{	 is_Ornamental_Dingbats}', "");
-    Expect(1, 128640, '\p{^	 is_Ornamental_Dingbats}', "");
-    Expect(1, 128640, '\P{	 is_Ornamental_Dingbats}', "");
-    Expect(0, 128640, '\P{^	 is_Ornamental_Dingbats}', "");
-    Error('\p{	_In_Ornamental_Dingbats:=}');
-    Error('\P{	_In_Ornamental_Dingbats:=}');
+    Expect(1, 128639, '\p{__Is_Ornamental_DINGBATS}', "");
+    Expect(0, 128639, '\p{^__Is_Ornamental_DINGBATS}', "");
+    Expect(0, 128639, '\P{__Is_Ornamental_DINGBATS}', "");
+    Expect(1, 128639, '\P{^__Is_Ornamental_DINGBATS}', "");
+    Expect(0, 128640, '\p{__Is_Ornamental_DINGBATS}', "");
+    Expect(1, 128640, '\p{^__Is_Ornamental_DINGBATS}', "");
+    Expect(1, 128640, '\P{__Is_Ornamental_DINGBATS}', "");
+    Expect(0, 128640, '\P{^__Is_Ornamental_DINGBATS}', "");
+    Error('\p{In_ORNAMENTAL_DINGBATS:=}');
+    Error('\P{In_ORNAMENTAL_DINGBATS:=}');
     Expect(1, 128639, '\p{inornamentaldingbats}', "");
     Expect(0, 128639, '\p{^inornamentaldingbats}', "");
     Expect(0, 128639, '\P{inornamentaldingbats}', "");
@@ -115537,16 +116753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128640, '\p{^inornamentaldingbats}', "");
     Expect(1, 128640, '\P{inornamentaldingbats}', "");
     Expect(0, 128640, '\P{^inornamentaldingbats}', "");
-    Expect(1, 128639, '\p{_-in_Ornamental_DINGBATS}', "");
-    Expect(0, 128639, '\p{^_-in_Ornamental_DINGBATS}', "");
-    Expect(0, 128639, '\P{_-in_Ornamental_DINGBATS}', "");
-    Expect(1, 128639, '\P{^_-in_Ornamental_DINGBATS}', "");
-    Expect(0, 128640, '\p{_-in_Ornamental_DINGBATS}', "");
-    Expect(1, 128640, '\p{^_-in_Ornamental_DINGBATS}', "");
-    Expect(1, 128640, '\P{_-in_Ornamental_DINGBATS}', "");
-    Expect(0, 128640, '\P{^_-in_Ornamental_DINGBATS}', "");
-    Error('\p{_osage:=}');
-    Error('\P{_osage:=}');
+    Expect(1, 128639, '\p{-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(0, 128639, '\p{^-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(0, 128639, '\P{-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(1, 128639, '\P{^-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(0, 128640, '\p{-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(1, 128640, '\p{^-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(1, 128640, '\P{-In_ORNAMENTAL_DINGBATS}', "");
+    Expect(0, 128640, '\P{^-In_ORNAMENTAL_DINGBATS}', "");
+    Error('\p{/a/ -OSAGE}');
+    Error('\P{/a/ -OSAGE}');
     Expect(1, 66811, '\p{osage}', "");
     Expect(0, 66811, '\p{^osage}', "");
     Expect(0, 66811, '\P{osage}', "");
@@ -115555,16 +116771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66812, '\p{^osage}', "");
     Expect(1, 66812, '\P{osage}', "");
     Expect(0, 66812, '\P{^osage}', "");
-    Expect(1, 66811, '\p{	-Osage}', "");
-    Expect(0, 66811, '\p{^	-Osage}', "");
-    Expect(0, 66811, '\P{	-Osage}', "");
-    Expect(1, 66811, '\P{^	-Osage}', "");
-    Expect(0, 66812, '\p{	-Osage}', "");
-    Expect(1, 66812, '\p{^	-Osage}', "");
-    Expect(1, 66812, '\P{	-Osage}', "");
-    Expect(0, 66812, '\P{^	-Osage}', "");
-    Error('\p{:=-Is_osage}');
-    Error('\P{:=-Is_osage}');
+    Expect(1, 66811, '\p{_osage}', "");
+    Expect(0, 66811, '\p{^_osage}', "");
+    Expect(0, 66811, '\P{_osage}', "");
+    Expect(1, 66811, '\P{^_osage}', "");
+    Expect(0, 66812, '\p{_osage}', "");
+    Expect(1, 66812, '\p{^_osage}', "");
+    Expect(1, 66812, '\P{_osage}', "");
+    Expect(0, 66812, '\P{^_osage}', "");
+    Error('\p{	:=Is_Osage}');
+    Error('\P{	:=Is_Osage}');
     Expect(1, 66811, '\p{isosage}', "");
     Expect(0, 66811, '\p{^isosage}', "");
     Expect(0, 66811, '\P{isosage}', "");
@@ -115573,16 +116789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66812, '\p{^isosage}', "");
     Expect(1, 66812, '\P{isosage}', "");
     Expect(0, 66812, '\P{^isosage}', "");
-    Expect(1, 66811, '\p{ Is_OSAGE}', "");
-    Expect(0, 66811, '\p{^ Is_OSAGE}', "");
-    Expect(0, 66811, '\P{ Is_OSAGE}', "");
-    Expect(1, 66811, '\P{^ Is_OSAGE}', "");
-    Expect(0, 66812, '\p{ Is_OSAGE}', "");
-    Expect(1, 66812, '\p{^ Is_OSAGE}', "");
-    Expect(1, 66812, '\P{ Is_OSAGE}', "");
-    Expect(0, 66812, '\P{^ Is_OSAGE}', "");
-    Error('\p{:= -Osge}');
-    Error('\P{:= -Osge}');
+    Expect(1, 66811, '\p{__Is_OSAGE}', "");
+    Expect(0, 66811, '\p{^__Is_OSAGE}', "");
+    Expect(0, 66811, '\P{__Is_OSAGE}', "");
+    Expect(1, 66811, '\P{^__Is_OSAGE}', "");
+    Expect(0, 66812, '\p{__Is_OSAGE}', "");
+    Expect(1, 66812, '\p{^__Is_OSAGE}', "");
+    Expect(1, 66812, '\P{__Is_OSAGE}', "");
+    Expect(0, 66812, '\P{^__Is_OSAGE}', "");
+    Error('\p{:=Osge}');
+    Error('\P{:=Osge}');
     Expect(1, 66811, '\p{osge}', "");
     Expect(0, 66811, '\p{^osge}', "");
     Expect(0, 66811, '\P{osge}', "");
@@ -115591,16 +116807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66812, '\p{^osge}', "");
     Expect(1, 66812, '\P{osge}', "");
     Expect(0, 66812, '\P{^osge}', "");
-    Expect(1, 66811, '\p{	OSGE}', "");
-    Expect(0, 66811, '\p{^	OSGE}', "");
-    Expect(0, 66811, '\P{	OSGE}', "");
-    Expect(1, 66811, '\P{^	OSGE}', "");
-    Expect(0, 66812, '\p{	OSGE}', "");
-    Expect(1, 66812, '\p{^	OSGE}', "");
-    Expect(1, 66812, '\P{	OSGE}', "");
-    Expect(0, 66812, '\P{^	OSGE}', "");
-    Error('\p{:=_-IS_OSGE}');
-    Error('\P{:=_-IS_OSGE}');
+    Expect(1, 66811, '\p{ OSGE}', "");
+    Expect(0, 66811, '\p{^ OSGE}', "");
+    Expect(0, 66811, '\P{ OSGE}', "");
+    Expect(1, 66811, '\P{^ OSGE}', "");
+    Expect(0, 66812, '\p{ OSGE}', "");
+    Expect(1, 66812, '\p{^ OSGE}', "");
+    Expect(1, 66812, '\P{ OSGE}', "");
+    Expect(0, 66812, '\P{^ OSGE}', "");
+    Error('\p{:=	is_osge}');
+    Error('\P{:=	is_osge}');
     Expect(1, 66811, '\p{isosge}', "");
     Expect(0, 66811, '\p{^isosge}', "");
     Expect(0, 66811, '\P{isosge}', "");
@@ -115609,16 +116825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66812, '\p{^isosge}', "");
     Expect(1, 66812, '\P{isosge}', "");
     Expect(0, 66812, '\P{^isosge}', "");
-    Expect(1, 66811, '\p{		Is_OSGE}', "");
-    Expect(0, 66811, '\p{^		Is_OSGE}', "");
-    Expect(0, 66811, '\P{		Is_OSGE}', "");
-    Expect(1, 66811, '\P{^		Is_OSGE}', "");
-    Expect(0, 66812, '\p{		Is_OSGE}', "");
-    Expect(1, 66812, '\p{^		Is_OSGE}', "");
-    Expect(1, 66812, '\P{		Is_OSGE}', "");
-    Expect(0, 66812, '\P{^		Is_OSGE}', "");
-    Error('\p{:=_-osmanya}');
-    Error('\P{:=_-osmanya}');
+    Expect(1, 66811, '\p{ 	Is_osge}', "");
+    Expect(0, 66811, '\p{^ 	Is_osge}', "");
+    Expect(0, 66811, '\P{ 	Is_osge}', "");
+    Expect(1, 66811, '\P{^ 	Is_osge}', "");
+    Expect(0, 66812, '\p{ 	Is_osge}', "");
+    Expect(1, 66812, '\p{^ 	Is_osge}', "");
+    Expect(1, 66812, '\P{ 	Is_osge}', "");
+    Expect(0, 66812, '\P{^ 	Is_osge}', "");
+    Error('\p{:=Osmanya}');
+    Error('\P{:=Osmanya}');
     Expect(1, 66729, '\p{osmanya}', "");
     Expect(0, 66729, '\p{^osmanya}', "");
     Expect(0, 66729, '\P{osmanya}', "");
@@ -115627,16 +116843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66730, '\p{^osmanya}', "");
     Expect(1, 66730, '\P{osmanya}', "");
     Expect(0, 66730, '\P{^osmanya}', "");
-    Expect(1, 66729, '\p{	Osmanya}', "");
-    Expect(0, 66729, '\p{^	Osmanya}', "");
-    Expect(0, 66729, '\P{	Osmanya}', "");
-    Expect(1, 66729, '\P{^	Osmanya}', "");
-    Expect(0, 66730, '\p{	Osmanya}', "");
-    Expect(1, 66730, '\p{^	Osmanya}', "");
-    Expect(1, 66730, '\P{	Osmanya}', "");
-    Expect(0, 66730, '\P{^	Osmanya}', "");
-    Error('\p{	/a/is_Osmanya}');
-    Error('\P{	/a/is_Osmanya}');
+    Expect(1, 66729, '\p{  osmanya}', "");
+    Expect(0, 66729, '\p{^  osmanya}', "");
+    Expect(0, 66729, '\P{  osmanya}', "");
+    Expect(1, 66729, '\P{^  osmanya}', "");
+    Expect(0, 66730, '\p{  osmanya}', "");
+    Expect(1, 66730, '\p{^  osmanya}', "");
+    Expect(1, 66730, '\P{  osmanya}', "");
+    Expect(0, 66730, '\P{^  osmanya}', "");
+    Error('\p{_-IS_OSMANYA/a/}');
+    Error('\P{_-IS_OSMANYA/a/}');
     Expect(1, 66729, '\p{isosmanya}', "");
     Expect(0, 66729, '\p{^isosmanya}', "");
     Expect(0, 66729, '\P{isosmanya}', "");
@@ -115653,8 +116869,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66730, '\p{^-IS_Osmanya}', "");
     Expect(1, 66730, '\P{-IS_Osmanya}', "");
     Expect(0, 66730, '\P{^-IS_Osmanya}', "");
-    Error('\p{:=--OSMA}');
-    Error('\P{:=--OSMA}');
+    Error('\p{-Osma:=}');
+    Error('\P{-Osma:=}');
     Expect(1, 66729, '\p{osma}', "");
     Expect(0, 66729, '\p{^osma}', "");
     Expect(0, 66729, '\P{osma}', "");
@@ -115663,16 +116879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66730, '\p{^osma}', "");
     Expect(1, 66730, '\P{osma}', "");
     Expect(0, 66730, '\P{^osma}', "");
-    Expect(1, 66729, '\p{--OSMA}', "");
-    Expect(0, 66729, '\p{^--OSMA}', "");
-    Expect(0, 66729, '\P{--OSMA}', "");
-    Expect(1, 66729, '\P{^--OSMA}', "");
-    Expect(0, 66730, '\p{--OSMA}', "");
-    Expect(1, 66730, '\p{^--OSMA}', "");
-    Expect(1, 66730, '\P{--OSMA}', "");
-    Expect(0, 66730, '\P{^--OSMA}', "");
-    Error('\p{ is_osma/a/}');
-    Error('\P{ is_osma/a/}');
+    Expect(1, 66729, '\p{		Osma}', "");
+    Expect(0, 66729, '\p{^		Osma}', "");
+    Expect(0, 66729, '\P{		Osma}', "");
+    Expect(1, 66729, '\P{^		Osma}', "");
+    Expect(0, 66730, '\p{		Osma}', "");
+    Expect(1, 66730, '\p{^		Osma}', "");
+    Expect(1, 66730, '\P{		Osma}', "");
+    Expect(0, 66730, '\P{^		Osma}', "");
+    Error('\p{:=	_is_OSMA}');
+    Error('\P{:=	_is_OSMA}');
     Expect(1, 66729, '\p{isosma}', "");
     Expect(0, 66729, '\p{^isosma}', "");
     Expect(0, 66729, '\P{isosma}', "");
@@ -115681,16 +116897,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66730, '\p{^isosma}', "");
     Expect(1, 66730, '\P{isosma}', "");
     Expect(0, 66730, '\P{^isosma}', "");
-    Expect(1, 66729, '\p{-_IS_Osma}', "");
-    Expect(0, 66729, '\p{^-_IS_Osma}', "");
-    Expect(0, 66729, '\P{-_IS_Osma}', "");
-    Expect(1, 66729, '\P{^-_IS_Osma}', "");
-    Expect(0, 66730, '\p{-_IS_Osma}', "");
-    Expect(1, 66730, '\p{^-_IS_Osma}', "");
-    Expect(1, 66730, '\P{-_IS_Osma}', "");
-    Expect(0, 66730, '\P{^-_IS_Osma}', "");
-    Error('\p{/a/__OTHER}');
-    Error('\P{/a/__OTHER}');
+    Expect(1, 66729, '\p{_	Is_Osma}', "");
+    Expect(0, 66729, '\p{^_	Is_Osma}', "");
+    Expect(0, 66729, '\P{_	Is_Osma}', "");
+    Expect(1, 66729, '\P{^_	Is_Osma}', "");
+    Expect(0, 66730, '\p{_	Is_Osma}', "");
+    Expect(1, 66730, '\p{^_	Is_Osma}', "");
+    Expect(1, 66730, '\P{_	Is_Osma}', "");
+    Expect(0, 66730, '\P{^_	Is_Osma}', "");
+    Error('\p{	/a/other}');
+    Error('\P{	/a/other}');
     Expect(1, 918000, '\p{other}', "");
     Expect(0, 918000, '\p{^other}', "");
     Expect(0, 918000, '\P{other}', "");
@@ -115699,16 +116915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917999, '\p{^other}', "");
     Expect(1, 917999, '\P{other}', "");
     Expect(0, 917999, '\P{^other}', "");
-    Expect(1, 918000, '\p{	_Other}', "");
-    Expect(0, 918000, '\p{^	_Other}', "");
-    Expect(0, 918000, '\P{	_Other}', "");
-    Expect(1, 918000, '\P{^	_Other}', "");
-    Expect(0, 917999, '\p{	_Other}', "");
-    Expect(1, 917999, '\p{^	_Other}', "");
-    Expect(1, 917999, '\P{	_Other}', "");
-    Expect(0, 917999, '\P{^	_Other}', "");
-    Error('\p{	IS_other/a/}');
-    Error('\P{	IS_other/a/}');
+    Expect(1, 918000, '\p{	-Other}', "");
+    Expect(0, 918000, '\p{^	-Other}', "");
+    Expect(0, 918000, '\P{	-Other}', "");
+    Expect(1, 918000, '\P{^	-Other}', "");
+    Expect(0, 917999, '\p{	-Other}', "");
+    Expect(1, 917999, '\p{^	-Other}', "");
+    Expect(1, 917999, '\P{	-Other}', "");
+    Expect(0, 917999, '\P{^	-Other}', "");
+    Error('\p{_:=Is_OTHER}');
+    Error('\P{_:=Is_OTHER}');
     Expect(1, 918000, '\p{isother}', "");
     Expect(0, 918000, '\p{^isother}', "");
     Expect(0, 918000, '\P{isother}', "");
@@ -115717,16 +116933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917999, '\p{^isother}', "");
     Expect(1, 917999, '\P{isother}', "");
     Expect(0, 917999, '\P{^isother}', "");
-    Expect(1, 918000, '\p{	 Is_OTHER}', "");
-    Expect(0, 918000, '\p{^	 Is_OTHER}', "");
-    Expect(0, 918000, '\P{	 Is_OTHER}', "");
-    Expect(1, 918000, '\P{^	 Is_OTHER}', "");
-    Expect(0, 917999, '\p{	 Is_OTHER}', "");
-    Expect(1, 917999, '\p{^	 Is_OTHER}', "");
-    Expect(1, 917999, '\P{	 Is_OTHER}', "");
-    Expect(0, 917999, '\P{^	 Is_OTHER}', "");
-    Error('\p{	:=C}');
-    Error('\P{	:=C}');
+    Expect(1, 918000, '\p{ 	Is_Other}', "");
+    Expect(0, 918000, '\p{^ 	Is_Other}', "");
+    Expect(0, 918000, '\P{ 	Is_Other}', "");
+    Expect(1, 918000, '\P{^ 	Is_Other}', "");
+    Expect(0, 917999, '\p{ 	Is_Other}', "");
+    Expect(1, 917999, '\p{^ 	Is_Other}', "");
+    Expect(1, 917999, '\P{ 	Is_Other}', "");
+    Expect(0, 917999, '\P{^ 	Is_Other}', "");
+    Error('\p{:=--C}');
+    Error('\P{:=--C}');
     Expect(1, 918000, '\p{c}', "");
     Expect(0, 918000, '\p{^c}', "");
     Expect(0, 918000, '\P{c}', "");
@@ -115735,16 +116951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917999, '\p{^c}', "");
     Expect(1, 917999, '\P{c}', "");
     Expect(0, 917999, '\P{^c}', "");
-    Expect(1, 918000, '\p{--C}', "");
-    Expect(0, 918000, '\p{^--C}', "");
-    Expect(0, 918000, '\P{--C}', "");
-    Expect(1, 918000, '\P{^--C}', "");
-    Expect(0, 917999, '\p{--C}', "");
-    Expect(1, 917999, '\p{^--C}', "");
-    Expect(1, 917999, '\P{--C}', "");
-    Expect(0, 917999, '\P{^--C}', "");
-    Error('\p{		IS_C/a/}');
-    Error('\P{		IS_C/a/}');
+    Expect(1, 918000, '\p{		c}', "");
+    Expect(0, 918000, '\p{^		c}', "");
+    Expect(0, 918000, '\P{		c}', "");
+    Expect(1, 918000, '\P{^		c}', "");
+    Expect(0, 917999, '\p{		c}', "");
+    Expect(1, 917999, '\p{^		c}', "");
+    Expect(1, 917999, '\P{		c}', "");
+    Expect(0, 917999, '\P{^		c}', "");
+    Error('\p{--is_C:=}');
+    Error('\P{--is_C:=}');
     Expect(1, 918000, '\p{isc}', "");
     Expect(0, 918000, '\p{^isc}', "");
     Expect(0, 918000, '\P{isc}', "");
@@ -115753,14 +116969,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 917999, '\p{^isc}', "");
     Expect(1, 917999, '\P{isc}', "");
     Expect(0, 917999, '\P{^isc}', "");
-    Expect(1, 918000, '\p{ Is_C}', "");
-    Expect(0, 918000, '\p{^ Is_C}', "");
-    Expect(0, 918000, '\P{ Is_C}', "");
-    Expect(1, 918000, '\P{^ Is_C}', "");
-    Expect(0, 917999, '\p{ Is_C}', "");
-    Expect(1, 917999, '\p{^ Is_C}', "");
-    Expect(1, 917999, '\P{ Is_C}', "");
-    Expect(0, 917999, '\P{^ Is_C}', "");
+    Expect(1, 918000, '\p{- Is_C}', "");
+    Expect(0, 918000, '\p{^- Is_C}', "");
+    Expect(0, 918000, '\P{- Is_C}', "");
+    Expect(1, 918000, '\P{^- Is_C}', "");
+    Expect(0, 917999, '\p{- Is_C}', "");
+    Expect(1, 917999, '\p{^- Is_C}', "");
+    Expect(1, 917999, '\P{- Is_C}', "");
+    Expect(0, 917999, '\P{^- Is_C}', "");
     Error('\p{Other_Alphabetic}');
     Error('\P{Other_Alphabetic}');
     Error('\p{OAlpha}');
@@ -115781,78 +116997,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Other_ID_Start}');
     Error('\p{OIDS}');
     Error('\P{OIDS}');
-    Error('\p{	OTHER_Letter/a/}');
-    Error('\P{	OTHER_Letter/a/}');
-    Expect(1, 201546, '\p{otherletter}', "");
-    Expect(0, 201546, '\p{^otherletter}', "");
-    Expect(0, 201546, '\P{otherletter}', "");
-    Expect(1, 201546, '\P{^otherletter}', "");
-    Expect(0, 201547, '\p{otherletter}', "");
-    Expect(1, 201547, '\p{^otherletter}', "");
-    Expect(1, 201547, '\P{otherletter}', "");
-    Expect(0, 201547, '\P{^otherletter}', "");
-    Expect(1, 201546, '\p{-other_letter}', "");
-    Expect(0, 201546, '\p{^-other_letter}', "");
-    Expect(0, 201546, '\P{-other_letter}', "");
-    Expect(1, 201546, '\P{^-other_letter}', "");
-    Expect(0, 201547, '\p{-other_letter}', "");
-    Expect(1, 201547, '\p{^-other_letter}', "");
-    Expect(1, 201547, '\P{-other_letter}', "");
-    Expect(0, 201547, '\P{^-other_letter}', "");
-    Error('\p{	is_other_Letter:=}');
-    Error('\P{	is_other_Letter:=}');
-    Expect(1, 201546, '\p{isotherletter}', "");
-    Expect(0, 201546, '\p{^isotherletter}', "");
-    Expect(0, 201546, '\P{isotherletter}', "");
-    Expect(1, 201546, '\P{^isotherletter}', "");
-    Expect(0, 201547, '\p{isotherletter}', "");
-    Expect(1, 201547, '\p{^isotherletter}', "");
-    Expect(1, 201547, '\P{isotherletter}', "");
-    Expect(0, 201547, '\P{^isotherletter}', "");
-    Expect(1, 201546, '\p{_Is_OTHER_Letter}', "");
-    Expect(0, 201546, '\p{^_Is_OTHER_Letter}', "");
-    Expect(0, 201546, '\P{_Is_OTHER_Letter}', "");
-    Expect(1, 201546, '\P{^_Is_OTHER_Letter}', "");
-    Expect(0, 201547, '\p{_Is_OTHER_Letter}', "");
-    Expect(1, 201547, '\p{^_Is_OTHER_Letter}', "");
-    Expect(1, 201547, '\P{_Is_OTHER_Letter}', "");
-    Expect(0, 201547, '\P{^_Is_OTHER_Letter}', "");
-    Error('\p{	:=Lo}');
-    Error('\P{	:=Lo}');
-    Expect(1, 201546, '\p{lo}', "");
-    Expect(0, 201546, '\p{^lo}', "");
-    Expect(0, 201546, '\P{lo}', "");
-    Expect(1, 201546, '\P{^lo}', "");
-    Expect(0, 201547, '\p{lo}', "");
-    Expect(1, 201547, '\p{^lo}', "");
-    Expect(1, 201547, '\P{lo}', "");
-    Expect(0, 201547, '\P{^lo}', "");
-    Expect(1, 201546, '\p{ Lo}', "");
-    Expect(0, 201546, '\p{^ Lo}', "");
-    Expect(0, 201546, '\P{ Lo}', "");
-    Expect(1, 201546, '\P{^ Lo}', "");
-    Expect(0, 201547, '\p{ Lo}', "");
-    Expect(1, 201547, '\p{^ Lo}', "");
-    Expect(1, 201547, '\P{ Lo}', "");
-    Expect(0, 201547, '\P{^ Lo}', "");
-    Error('\p{/a/_	IS_Lo}');
-    Error('\P{/a/_	IS_Lo}');
-    Expect(1, 201546, '\p{islo}', "");
-    Expect(0, 201546, '\p{^islo}', "");
-    Expect(0, 201546, '\P{islo}', "");
-    Expect(1, 201546, '\P{^islo}', "");
-    Expect(0, 201547, '\p{islo}', "");
-    Expect(1, 201547, '\p{^islo}', "");
-    Expect(1, 201547, '\P{islo}', "");
-    Expect(0, 201547, '\P{^islo}', "");
-    Expect(1, 201546, '\p{_-Is_LO}', "");
-    Expect(0, 201546, '\p{^_-Is_LO}', "");
-    Expect(0, 201546, '\P{_-Is_LO}', "");
-    Expect(1, 201546, '\P{^_-Is_LO}', "");
-    Expect(0, 201547, '\p{_-Is_LO}', "");
-    Expect(1, 201547, '\p{^_-Is_LO}', "");
-    Expect(1, 201547, '\P{_-Is_LO}', "");
-    Expect(0, 201547, '\P{^_-Is_LO}', "");
+    Error('\p{	/a/OTHER_LETTER}');
+    Error('\P{	/a/OTHER_LETTER}');
+    Expect(1, 205743, '\p{otherletter}', "");
+    Expect(0, 205743, '\p{^otherletter}', "");
+    Expect(0, 205743, '\P{otherletter}', "");
+    Expect(1, 205743, '\P{^otherletter}', "");
+    Expect(0, 205744, '\p{otherletter}', "");
+    Expect(1, 205744, '\p{^otherletter}', "");
+    Expect(1, 205744, '\P{otherletter}', "");
+    Expect(0, 205744, '\P{^otherletter}', "");
+    Expect(1, 205743, '\p{ -OTHER_LETTER}', "");
+    Expect(0, 205743, '\p{^ -OTHER_LETTER}', "");
+    Expect(0, 205743, '\P{ -OTHER_LETTER}', "");
+    Expect(1, 205743, '\P{^ -OTHER_LETTER}', "");
+    Expect(0, 205744, '\p{ -OTHER_LETTER}', "");
+    Expect(1, 205744, '\p{^ -OTHER_LETTER}', "");
+    Expect(1, 205744, '\P{ -OTHER_LETTER}', "");
+    Expect(0, 205744, '\P{^ -OTHER_LETTER}', "");
+    Error('\p{/a/is_OTHER_Letter}');
+    Error('\P{/a/is_OTHER_Letter}');
+    Expect(1, 205743, '\p{isotherletter}', "");
+    Expect(0, 205743, '\p{^isotherletter}', "");
+    Expect(0, 205743, '\P{isotherletter}', "");
+    Expect(1, 205743, '\P{^isotherletter}', "");
+    Expect(0, 205744, '\p{isotherletter}', "");
+    Expect(1, 205744, '\p{^isotherletter}', "");
+    Expect(1, 205744, '\P{isotherletter}', "");
+    Expect(0, 205744, '\P{^isotherletter}', "");
+    Expect(1, 205743, '\p{ _Is_Other_Letter}', "");
+    Expect(0, 205743, '\p{^ _Is_Other_Letter}', "");
+    Expect(0, 205743, '\P{ _Is_Other_Letter}', "");
+    Expect(1, 205743, '\P{^ _Is_Other_Letter}', "");
+    Expect(0, 205744, '\p{ _Is_Other_Letter}', "");
+    Expect(1, 205744, '\p{^ _Is_Other_Letter}', "");
+    Expect(1, 205744, '\P{ _Is_Other_Letter}', "");
+    Expect(0, 205744, '\P{^ _Is_Other_Letter}', "");
+    Error('\p{:=	-lo}');
+    Error('\P{:=	-lo}');
+    Expect(1, 205743, '\p{lo}', "");
+    Expect(0, 205743, '\p{^lo}', "");
+    Expect(0, 205743, '\P{lo}', "");
+    Expect(1, 205743, '\P{^lo}', "");
+    Expect(0, 205744, '\p{lo}', "");
+    Expect(1, 205744, '\p{^lo}', "");
+    Expect(1, 205744, '\P{lo}', "");
+    Expect(0, 205744, '\P{^lo}', "");
+    Expect(1, 205743, '\p{ lo}', "");
+    Expect(0, 205743, '\p{^ lo}', "");
+    Expect(0, 205743, '\P{ lo}', "");
+    Expect(1, 205743, '\P{^ lo}', "");
+    Expect(0, 205744, '\p{ lo}', "");
+    Expect(1, 205744, '\p{^ lo}', "");
+    Expect(1, 205744, '\P{ lo}', "");
+    Expect(0, 205744, '\P{^ lo}', "");
+    Error('\p{ _IS_LO:=}');
+    Error('\P{ _IS_LO:=}');
+    Expect(1, 205743, '\p{islo}', "");
+    Expect(0, 205743, '\p{^islo}', "");
+    Expect(0, 205743, '\P{islo}', "");
+    Expect(1, 205743, '\P{^islo}', "");
+    Expect(0, 205744, '\p{islo}', "");
+    Expect(1, 205744, '\p{^islo}', "");
+    Expect(1, 205744, '\P{islo}', "");
+    Expect(0, 205744, '\P{^islo}', "");
+    Expect(1, 205743, '\p{	-IS_lo}', "");
+    Expect(0, 205743, '\p{^	-IS_lo}', "");
+    Expect(0, 205743, '\P{	-IS_lo}', "");
+    Expect(1, 205743, '\P{^	-IS_lo}', "");
+    Expect(0, 205744, '\p{	-IS_lo}', "");
+    Expect(1, 205744, '\p{^	-IS_lo}', "");
+    Expect(1, 205744, '\P{	-IS_lo}', "");
+    Expect(0, 205744, '\P{^	-IS_lo}', "");
     Error('\p{Other_Lowercase}');
     Error('\P{Other_Lowercase}');
     Error('\p{OLower}');
@@ -115861,8 +117077,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Error('\P{Other_Math}');
     Error('\p{OMath}');
     Error('\P{OMath}');
-    Error('\p{/a/ -OTHER_Number}');
-    Error('\P{/a/ -OTHER_Number}');
+    Error('\p{_Other_number:=}');
+    Error('\P{_Other_number:=}');
     Expect(1, 127244, '\p{othernumber}', "");
     Expect(0, 127244, '\p{^othernumber}', "");
     Expect(0, 127244, '\P{othernumber}', "");
@@ -115871,16 +117087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127245, '\p{^othernumber}', "");
     Expect(1, 127245, '\P{othernumber}', "");
     Expect(0, 127245, '\P{^othernumber}', "");
-    Expect(1, 127244, '\p{	-OTHER_Number}', "");
-    Expect(0, 127244, '\p{^	-OTHER_Number}', "");
-    Expect(0, 127244, '\P{	-OTHER_Number}', "");
-    Expect(1, 127244, '\P{^	-OTHER_Number}', "");
-    Expect(0, 127245, '\p{	-OTHER_Number}', "");
-    Expect(1, 127245, '\p{^	-OTHER_Number}', "");
-    Expect(1, 127245, '\P{	-OTHER_Number}', "");
-    Expect(0, 127245, '\P{^	-OTHER_Number}', "");
-    Error('\p{_:=is_OTHER_Number}');
-    Error('\P{_:=is_OTHER_Number}');
+    Expect(1, 127244, '\p{	-Other_Number}', "");
+    Expect(0, 127244, '\p{^	-Other_Number}', "");
+    Expect(0, 127244, '\P{	-Other_Number}', "");
+    Expect(1, 127244, '\P{^	-Other_Number}', "");
+    Expect(0, 127245, '\p{	-Other_Number}', "");
+    Expect(1, 127245, '\p{^	-Other_Number}', "");
+    Expect(1, 127245, '\P{	-Other_Number}', "");
+    Expect(0, 127245, '\P{^	-Other_Number}', "");
+    Error('\p{_Is_other_Number:=}');
+    Error('\P{_Is_other_Number:=}');
     Expect(1, 127244, '\p{isothernumber}', "");
     Expect(0, 127244, '\p{^isothernumber}', "");
     Expect(0, 127244, '\P{isothernumber}', "");
@@ -115889,16 +117105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127245, '\p{^isothernumber}', "");
     Expect(1, 127245, '\P{isothernumber}', "");
     Expect(0, 127245, '\P{^isothernumber}', "");
-    Expect(1, 127244, '\p{__Is_other_Number}', "");
-    Expect(0, 127244, '\p{^__Is_other_Number}', "");
-    Expect(0, 127244, '\P{__Is_other_Number}', "");
-    Expect(1, 127244, '\P{^__Is_other_Number}', "");
-    Expect(0, 127245, '\p{__Is_other_Number}', "");
-    Expect(1, 127245, '\p{^__Is_other_Number}', "");
-    Expect(1, 127245, '\P{__Is_other_Number}', "");
-    Expect(0, 127245, '\P{^__Is_other_Number}', "");
-    Error('\p{ :=No}');
-    Error('\P{ :=No}');
+    Expect(1, 127244, '\p{	 is_Other_NUMBER}', "");
+    Expect(0, 127244, '\p{^	 is_Other_NUMBER}', "");
+    Expect(0, 127244, '\P{	 is_Other_NUMBER}', "");
+    Expect(1, 127244, '\P{^	 is_Other_NUMBER}', "");
+    Expect(0, 127245, '\p{	 is_Other_NUMBER}', "");
+    Expect(1, 127245, '\p{^	 is_Other_NUMBER}', "");
+    Expect(1, 127245, '\P{	 is_Other_NUMBER}', "");
+    Expect(0, 127245, '\P{^	 is_Other_NUMBER}', "");
+    Error('\p{ _NO/a/}');
+    Error('\P{ _NO/a/}');
     Expect(1, 127244, '\p{no}', "");
     Expect(0, 127244, '\p{^no}', "");
     Expect(0, 127244, '\P{no}', "");
@@ -115907,16 +117123,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127245, '\p{^no}', "");
     Expect(1, 127245, '\P{no}', "");
     Expect(0, 127245, '\P{^no}', "");
-    Expect(1, 127244, '\p{_no}', "");
-    Expect(0, 127244, '\p{^_no}', "");
-    Expect(0, 127244, '\P{_no}', "");
-    Expect(1, 127244, '\P{^_no}', "");
-    Expect(0, 127245, '\p{_no}', "");
-    Expect(1, 127245, '\p{^_no}', "");
-    Expect(1, 127245, '\P{_no}', "");
-    Expect(0, 127245, '\P{^_no}', "");
-    Error('\p{/a/_ Is_NO}');
-    Error('\P{/a/_ Is_NO}');
+    Expect(1, 127244, '\p{-No}', "");
+    Expect(0, 127244, '\p{^-No}', "");
+    Expect(0, 127244, '\P{-No}', "");
+    Expect(1, 127244, '\P{^-No}', "");
+    Expect(0, 127245, '\p{-No}', "");
+    Expect(1, 127245, '\p{^-No}', "");
+    Expect(1, 127245, '\P{-No}', "");
+    Expect(0, 127245, '\P{^-No}', "");
+    Error('\p{/a/ _IS_No}');
+    Error('\P{/a/ _IS_No}');
     Expect(1, 127244, '\p{isno}', "");
     Expect(0, 127244, '\p{^isno}', "");
     Expect(0, 127244, '\P{isno}', "");
@@ -115925,16 +117141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127245, '\p{^isno}', "");
     Expect(1, 127245, '\P{isno}', "");
     Expect(0, 127245, '\P{^isno}', "");
-    Expect(1, 127244, '\p{	-Is_No}', "");
-    Expect(0, 127244, '\p{^	-Is_No}', "");
-    Expect(0, 127244, '\P{	-Is_No}', "");
-    Expect(1, 127244, '\P{^	-Is_No}', "");
-    Expect(0, 127245, '\p{	-Is_No}', "");
-    Expect(1, 127245, '\p{^	-Is_No}', "");
-    Expect(1, 127245, '\P{	-Is_No}', "");
-    Expect(0, 127245, '\P{^	-Is_No}', "");
-    Error('\p{:=  Other_Punctuation}');
-    Error('\P{:=  Other_Punctuation}');
+    Expect(1, 127244, '\p{- is_NO}', "");
+    Expect(0, 127244, '\p{^- is_NO}', "");
+    Expect(0, 127244, '\P{- is_NO}', "");
+    Expect(1, 127244, '\P{^- is_NO}', "");
+    Expect(0, 127245, '\p{- is_NO}', "");
+    Expect(1, 127245, '\p{^- is_NO}', "");
+    Expect(1, 127245, '\P{- is_NO}', "");
+    Expect(0, 127245, '\P{^- is_NO}', "");
+    Error('\p{	:=Other_punctuation}');
+    Error('\P{	:=Other_punctuation}');
     Expect(1, 125279, '\p{otherpunctuation}', "");
     Expect(0, 125279, '\p{^otherpunctuation}', "");
     Expect(0, 125279, '\P{otherpunctuation}', "");
@@ -115943,16 +117159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^otherpunctuation}', "");
     Expect(1, 125280, '\P{otherpunctuation}', "");
     Expect(0, 125280, '\P{^otherpunctuation}', "");
-    Expect(1, 125279, '\p{_Other_PUNCTUATION}', "");
-    Expect(0, 125279, '\p{^_Other_PUNCTUATION}', "");
-    Expect(0, 125279, '\P{_Other_PUNCTUATION}', "");
-    Expect(1, 125279, '\P{^_Other_PUNCTUATION}', "");
-    Expect(0, 125280, '\p{_Other_PUNCTUATION}', "");
-    Expect(1, 125280, '\p{^_Other_PUNCTUATION}', "");
-    Expect(1, 125280, '\P{_Other_PUNCTUATION}', "");
-    Expect(0, 125280, '\P{^_Other_PUNCTUATION}', "");
-    Error('\p{	:=Is_OTHER_Punctuation}');
-    Error('\P{	:=Is_OTHER_Punctuation}');
+    Expect(1, 125279, '\p{  OTHER_punctuation}', "");
+    Expect(0, 125279, '\p{^  OTHER_punctuation}', "");
+    Expect(0, 125279, '\P{  OTHER_punctuation}', "");
+    Expect(1, 125279, '\P{^  OTHER_punctuation}', "");
+    Expect(0, 125280, '\p{  OTHER_punctuation}', "");
+    Expect(1, 125280, '\p{^  OTHER_punctuation}', "");
+    Expect(1, 125280, '\P{  OTHER_punctuation}', "");
+    Expect(0, 125280, '\P{^  OTHER_punctuation}', "");
+    Error('\p{/a/-is_OTHER_PUNCTUATION}');
+    Error('\P{/a/-is_OTHER_PUNCTUATION}');
     Expect(1, 125279, '\p{isotherpunctuation}', "");
     Expect(0, 125279, '\p{^isotherpunctuation}', "");
     Expect(0, 125279, '\P{isotherpunctuation}', "");
@@ -115961,16 +117177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^isotherpunctuation}', "");
     Expect(1, 125280, '\P{isotherpunctuation}', "");
     Expect(0, 125280, '\P{^isotherpunctuation}', "");
-    Expect(1, 125279, '\p{_-IS_OTHER_Punctuation}', "");
-    Expect(0, 125279, '\p{^_-IS_OTHER_Punctuation}', "");
-    Expect(0, 125279, '\P{_-IS_OTHER_Punctuation}', "");
-    Expect(1, 125279, '\P{^_-IS_OTHER_Punctuation}', "");
-    Expect(0, 125280, '\p{_-IS_OTHER_Punctuation}', "");
-    Expect(1, 125280, '\p{^_-IS_OTHER_Punctuation}', "");
-    Expect(1, 125280, '\P{_-IS_OTHER_Punctuation}', "");
-    Expect(0, 125280, '\P{^_-IS_OTHER_Punctuation}', "");
-    Error('\p{:=_	Po}');
-    Error('\P{:=_	Po}');
+    Expect(1, 125279, '\p{ _Is_Other_punctuation}', "");
+    Expect(0, 125279, '\p{^ _Is_Other_punctuation}', "");
+    Expect(0, 125279, '\P{ _Is_Other_punctuation}', "");
+    Expect(1, 125279, '\P{^ _Is_Other_punctuation}', "");
+    Expect(0, 125280, '\p{ _Is_Other_punctuation}', "");
+    Expect(1, 125280, '\p{^ _Is_Other_punctuation}', "");
+    Expect(1, 125280, '\P{ _Is_Other_punctuation}', "");
+    Expect(0, 125280, '\P{^ _Is_Other_punctuation}', "");
+    Error('\p{/a/-po}');
+    Error('\P{/a/-po}');
     Expect(1, 125279, '\p{po}', "");
     Expect(0, 125279, '\p{^po}', "");
     Expect(0, 125279, '\P{po}', "");
@@ -115979,16 +117195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^po}', "");
     Expect(1, 125280, '\P{po}', "");
     Expect(0, 125280, '\P{^po}', "");
-    Expect(1, 125279, '\p{  Po}', "");
-    Expect(0, 125279, '\p{^  Po}', "");
-    Expect(0, 125279, '\P{  Po}', "");
-    Expect(1, 125279, '\P{^  Po}', "");
-    Expect(0, 125280, '\p{  Po}', "");
-    Expect(1, 125280, '\p{^  Po}', "");
-    Expect(1, 125280, '\P{  Po}', "");
-    Expect(0, 125280, '\P{^  Po}', "");
-    Error('\p{:=-IS_PO}');
-    Error('\P{:=-IS_PO}');
+    Expect(1, 125279, '\p{_-po}', "");
+    Expect(0, 125279, '\p{^_-po}', "");
+    Expect(0, 125279, '\P{_-po}', "");
+    Expect(1, 125279, '\P{^_-po}', "");
+    Expect(0, 125280, '\p{_-po}', "");
+    Expect(1, 125280, '\p{^_-po}', "");
+    Expect(1, 125280, '\P{_-po}', "");
+    Expect(0, 125280, '\P{^_-po}', "");
+    Error('\p{  IS_po:=}');
+    Error('\P{  IS_po:=}');
     Expect(1, 125279, '\p{ispo}', "");
     Expect(0, 125279, '\p{^ispo}', "");
     Expect(0, 125279, '\P{ispo}', "");
@@ -115997,16 +117213,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^ispo}', "");
     Expect(1, 125280, '\P{ispo}', "");
     Expect(0, 125280, '\P{^ispo}', "");
-    Expect(1, 125279, '\p{_ is_po}', "");
-    Expect(0, 125279, '\p{^_ is_po}', "");
-    Expect(0, 125279, '\P{_ is_po}', "");
-    Expect(1, 125279, '\P{^_ is_po}', "");
-    Expect(0, 125280, '\p{_ is_po}', "");
-    Expect(1, 125280, '\p{^_ is_po}', "");
-    Expect(1, 125280, '\P{_ is_po}', "");
-    Expect(0, 125280, '\P{^_ is_po}', "");
-    Error('\p{:=	OTHER_Symbol}');
-    Error('\P{:=	OTHER_Symbol}');
+    Expect(1, 125279, '\p{		Is_PO}', "");
+    Expect(0, 125279, '\p{^		Is_PO}', "");
+    Expect(0, 125279, '\P{		Is_PO}', "");
+    Expect(1, 125279, '\P{^		Is_PO}', "");
+    Expect(0, 125280, '\p{		Is_PO}', "");
+    Expect(1, 125280, '\p{^		Is_PO}', "");
+    Expect(1, 125280, '\P{		Is_PO}', "");
+    Expect(0, 125280, '\P{^		Is_PO}', "");
+    Error('\p{:=	OTHER_symbol}');
+    Error('\P{:=	OTHER_symbol}');
     Expect(1, 129994, '\p{othersymbol}', "");
     Expect(0, 129994, '\p{^othersymbol}', "");
     Expect(0, 129994, '\P{othersymbol}', "");
@@ -116015,16 +117231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129995, '\p{^othersymbol}', "");
     Expect(1, 129995, '\P{othersymbol}', "");
     Expect(0, 129995, '\P{^othersymbol}', "");
-    Expect(1, 129994, '\p{_other_symbol}', "");
-    Expect(0, 129994, '\p{^_other_symbol}', "");
-    Expect(0, 129994, '\P{_other_symbol}', "");
-    Expect(1, 129994, '\P{^_other_symbol}', "");
-    Expect(0, 129995, '\p{_other_symbol}', "");
-    Expect(1, 129995, '\p{^_other_symbol}', "");
-    Expect(1, 129995, '\P{_other_symbol}', "");
-    Expect(0, 129995, '\P{^_other_symbol}', "");
-    Error('\p{-_is_Other_SYMBOL/a/}');
-    Error('\P{-_is_Other_SYMBOL/a/}');
+    Expect(1, 129994, '\p{_	OTHER_Symbol}', "");
+    Expect(0, 129994, '\p{^_	OTHER_Symbol}', "");
+    Expect(0, 129994, '\P{_	OTHER_Symbol}', "");
+    Expect(1, 129994, '\P{^_	OTHER_Symbol}', "");
+    Expect(0, 129995, '\p{_	OTHER_Symbol}', "");
+    Expect(1, 129995, '\p{^_	OTHER_Symbol}', "");
+    Expect(1, 129995, '\P{_	OTHER_Symbol}', "");
+    Expect(0, 129995, '\P{^_	OTHER_Symbol}', "");
+    Error('\p{__IS_OTHER_Symbol:=}');
+    Error('\P{__IS_OTHER_Symbol:=}');
     Expect(1, 129994, '\p{isothersymbol}', "");
     Expect(0, 129994, '\p{^isothersymbol}', "");
     Expect(0, 129994, '\P{isothersymbol}', "");
@@ -116033,16 +117249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129995, '\p{^isothersymbol}', "");
     Expect(1, 129995, '\P{isothersymbol}', "");
     Expect(0, 129995, '\P{^isothersymbol}', "");
-    Expect(1, 129994, '\p{Is_Other_Symbol}', "");
-    Expect(0, 129994, '\p{^Is_Other_Symbol}', "");
-    Expect(0, 129994, '\P{Is_Other_Symbol}', "");
-    Expect(1, 129994, '\P{^Is_Other_Symbol}', "");
-    Expect(0, 129995, '\p{Is_Other_Symbol}', "");
-    Expect(1, 129995, '\p{^Is_Other_Symbol}', "");
-    Expect(1, 129995, '\P{Is_Other_Symbol}', "");
-    Expect(0, 129995, '\P{^Is_Other_Symbol}', "");
-    Error('\p{/a/-_SO}');
-    Error('\P{/a/-_SO}');
+    Expect(1, 129994, '\p{_IS_other_SYMBOL}', "");
+    Expect(0, 129994, '\p{^_IS_other_SYMBOL}', "");
+    Expect(0, 129994, '\P{_IS_other_SYMBOL}', "");
+    Expect(1, 129994, '\P{^_IS_other_SYMBOL}', "");
+    Expect(0, 129995, '\p{_IS_other_SYMBOL}', "");
+    Expect(1, 129995, '\p{^_IS_other_SYMBOL}', "");
+    Expect(1, 129995, '\P{_IS_other_SYMBOL}', "");
+    Expect(0, 129995, '\P{^_IS_other_SYMBOL}', "");
+    Error('\p{	 SO:=}');
+    Error('\P{	 SO:=}');
     Expect(1, 129994, '\p{so}', "");
     Expect(0, 129994, '\p{^so}', "");
     Expect(0, 129994, '\P{so}', "");
@@ -116051,16 +117267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129995, '\p{^so}', "");
     Expect(1, 129995, '\P{so}', "");
     Expect(0, 129995, '\P{^so}', "");
-    Expect(1, 129994, '\p{-	SO}', "");
-    Expect(0, 129994, '\p{^-	SO}', "");
-    Expect(0, 129994, '\P{-	SO}', "");
-    Expect(1, 129994, '\P{^-	SO}', "");
-    Expect(0, 129995, '\p{-	SO}', "");
-    Expect(1, 129995, '\p{^-	SO}', "");
-    Expect(1, 129995, '\P{-	SO}', "");
-    Expect(0, 129995, '\P{^-	SO}', "");
-    Error('\p{/a/__Is_so}');
-    Error('\P{/a/__Is_so}');
+    Expect(1, 129994, '\p{-So}', "");
+    Expect(0, 129994, '\p{^-So}', "");
+    Expect(0, 129994, '\P{-So}', "");
+    Expect(1, 129994, '\P{^-So}', "");
+    Expect(0, 129995, '\p{-So}', "");
+    Expect(1, 129995, '\p{^-So}', "");
+    Expect(1, 129995, '\P{-So}', "");
+    Expect(0, 129995, '\P{^-So}', "");
+    Error('\p{	:=Is_So}');
+    Error('\P{	:=Is_So}');
     Expect(1, 129994, '\p{isso}', "");
     Expect(0, 129994, '\p{^isso}', "");
     Expect(0, 129994, '\P{isso}', "");
@@ -116069,20 +117285,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 129995, '\p{^isso}', "");
     Expect(1, 129995, '\P{isso}', "");
     Expect(0, 129995, '\P{^isso}', "");
-    Expect(1, 129994, '\p{Is_so}', "");
-    Expect(0, 129994, '\p{^Is_so}', "");
-    Expect(0, 129994, '\P{Is_so}', "");
-    Expect(1, 129994, '\P{^Is_so}', "");
-    Expect(0, 129995, '\p{Is_so}', "");
-    Expect(1, 129995, '\p{^Is_so}', "");
-    Expect(1, 129995, '\P{Is_so}', "");
-    Expect(0, 129995, '\P{^Is_so}', "");
+    Expect(1, 129994, '\p{ -Is_So}', "");
+    Expect(0, 129994, '\p{^ -Is_So}', "");
+    Expect(0, 129994, '\P{ -Is_So}', "");
+    Expect(1, 129994, '\P{^ -Is_So}', "");
+    Expect(0, 129995, '\p{ -Is_So}', "");
+    Expect(1, 129995, '\p{^ -Is_So}', "");
+    Expect(1, 129995, '\P{ -Is_So}', "");
+    Expect(0, 129995, '\P{^ -Is_So}', "");
     Error('\p{Other_Uppercase}');
     Error('\P{Other_Uppercase}');
     Error('\p{OUpper}');
     Error('\P{OUpper}');
-    Error('\p{ _Ottoman_siyaq_Numbers:=}');
-    Error('\P{ _Ottoman_siyaq_Numbers:=}');
+    Error('\p{/a/- Ottoman_Siyaq_Numbers}');
+    Error('\P{/a/- Ottoman_Siyaq_Numbers}');
     Expect(1, 126287, '\p{ottomansiyaqnumbers}', "");
     Expect(0, 126287, '\p{^ottomansiyaqnumbers}', "");
     Expect(0, 126287, '\P{ottomansiyaqnumbers}', "");
@@ -116091,16 +117307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126288, '\p{^ottomansiyaqnumbers}', "");
     Expect(1, 126288, '\P{ottomansiyaqnumbers}', "");
     Expect(0, 126288, '\P{^ottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\p{ ottoman_siyaq_Numbers}', "");
-    Expect(0, 126287, '\p{^ ottoman_siyaq_Numbers}', "");
-    Expect(0, 126287, '\P{ ottoman_siyaq_Numbers}', "");
-    Expect(1, 126287, '\P{^ ottoman_siyaq_Numbers}', "");
-    Expect(0, 126288, '\p{ ottoman_siyaq_Numbers}', "");
-    Expect(1, 126288, '\p{^ ottoman_siyaq_Numbers}', "");
-    Expect(1, 126288, '\P{ ottoman_siyaq_Numbers}', "");
-    Expect(0, 126288, '\P{^ ottoman_siyaq_Numbers}', "");
-    Error('\p{/a/IS_ottoman_Siyaq_Numbers}');
-    Error('\P{/a/IS_ottoman_Siyaq_Numbers}');
+    Expect(1, 126287, '\p{_	ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\p{^_	ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\P{_	ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126287, '\P{^_	ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\p{_	ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\p{^_	ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\P{_	ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\P{^_	ottoman_Siyaq_Numbers}', "");
+    Error('\p{/a/is_ottoman_SIYAQ_Numbers}');
+    Error('\P{/a/is_ottoman_SIYAQ_Numbers}');
     Expect(1, 126287, '\p{isottomansiyaqnumbers}', "");
     Expect(0, 126287, '\p{^isottomansiyaqnumbers}', "");
     Expect(0, 126287, '\P{isottomansiyaqnumbers}', "");
@@ -116109,16 +117325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126288, '\p{^isottomansiyaqnumbers}', "");
     Expect(1, 126288, '\P{isottomansiyaqnumbers}', "");
     Expect(0, 126288, '\P{^isottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\p{		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\p{^		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\P{		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126287, '\P{^		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\p{		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\p{^		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\P{		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\P{^		Is_Ottoman_Siyaq_NUMBERS}', "");
-    Error('\p{	/a/In_Ottoman_Siyaq_Numbers}');
-    Error('\P{	/a/In_Ottoman_Siyaq_Numbers}');
+    Expect(1, 126287, '\p{	Is_ottoman_siyaq_numbers}', "");
+    Expect(0, 126287, '\p{^	Is_ottoman_siyaq_numbers}', "");
+    Expect(0, 126287, '\P{	Is_ottoman_siyaq_numbers}', "");
+    Expect(1, 126287, '\P{^	Is_ottoman_siyaq_numbers}', "");
+    Expect(0, 126288, '\p{	Is_ottoman_siyaq_numbers}', "");
+    Expect(1, 126288, '\p{^	Is_ottoman_siyaq_numbers}', "");
+    Expect(1, 126288, '\P{	Is_ottoman_siyaq_numbers}', "");
+    Expect(0, 126288, '\P{^	Is_ottoman_siyaq_numbers}', "");
+    Error('\p{ -In_OTTOMAN_siyaq_NUMBERS/a/}');
+    Error('\P{ -In_OTTOMAN_siyaq_NUMBERS/a/}');
     Expect(1, 126287, '\p{inottomansiyaqnumbers}', "");
     Expect(0, 126287, '\p{^inottomansiyaqnumbers}', "");
     Expect(0, 126287, '\P{inottomansiyaqnumbers}', "");
@@ -116127,16 +117343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 126288, '\p{^inottomansiyaqnumbers}', "");
     Expect(1, 126288, '\P{inottomansiyaqnumbers}', "");
     Expect(0, 126288, '\P{^inottomansiyaqnumbers}', "");
-    Expect(1, 126287, '\p{_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\p{^_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(0, 126287, '\P{_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(1, 126287, '\P{^_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\p{_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\p{^_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(1, 126288, '\P{_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Expect(0, 126288, '\P{^_in_OTTOMAN_siyaq_NUMBERS}', "");
-    Error('\p{:= PAHAWH_Hmong}');
-    Error('\P{:= PAHAWH_Hmong}');
+    Expect(1, 126287, '\p{_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\p{^_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126287, '\P{_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126287, '\P{^_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\p{_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\p{^_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(1, 126288, '\P{_-In_Ottoman_Siyaq_Numbers}', "");
+    Expect(0, 126288, '\P{^_-In_Ottoman_Siyaq_Numbers}', "");
+    Error('\p{-	Pahawh_hmong:=}');
+    Error('\P{-	Pahawh_hmong:=}');
     Expect(1, 93071, '\p{pahawhhmong}', "");
     Expect(0, 93071, '\p{^pahawhhmong}', "");
     Expect(0, 93071, '\P{pahawhhmong}', "");
@@ -116145,16 +117361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93072, '\p{^pahawhhmong}', "");
     Expect(1, 93072, '\P{pahawhhmong}', "");
     Expect(0, 93072, '\P{^pahawhhmong}', "");
-    Expect(1, 93071, '\p{-PAHAWH_HMONG}', "");
-    Expect(0, 93071, '\p{^-PAHAWH_HMONG}', "");
-    Expect(0, 93071, '\P{-PAHAWH_HMONG}', "");
-    Expect(1, 93071, '\P{^-PAHAWH_HMONG}', "");
-    Expect(0, 93072, '\p{-PAHAWH_HMONG}', "");
-    Expect(1, 93072, '\p{^-PAHAWH_HMONG}', "");
-    Expect(1, 93072, '\P{-PAHAWH_HMONG}', "");
-    Expect(0, 93072, '\P{^-PAHAWH_HMONG}', "");
-    Error('\p{:= _Is_Pahawh_hmong}');
-    Error('\P{:= _Is_Pahawh_hmong}');
+    Expect(1, 93071, '\p{ pahawh_Hmong}', "");
+    Expect(0, 93071, '\p{^ pahawh_Hmong}', "");
+    Expect(0, 93071, '\P{ pahawh_Hmong}', "");
+    Expect(1, 93071, '\P{^ pahawh_Hmong}', "");
+    Expect(0, 93072, '\p{ pahawh_Hmong}', "");
+    Expect(1, 93072, '\p{^ pahawh_Hmong}', "");
+    Expect(1, 93072, '\P{ pahawh_Hmong}', "");
+    Expect(0, 93072, '\P{^ pahawh_Hmong}', "");
+    Error('\p{/a/-	is_Pahawh_HMONG}');
+    Error('\P{/a/-	is_Pahawh_HMONG}');
     Expect(1, 93071, '\p{ispahawhhmong}', "");
     Expect(0, 93071, '\p{^ispahawhhmong}', "");
     Expect(0, 93071, '\P{ispahawhhmong}', "");
@@ -116163,16 +117379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93072, '\p{^ispahawhhmong}', "");
     Expect(1, 93072, '\P{ispahawhhmong}', "");
     Expect(0, 93072, '\P{^ispahawhhmong}', "");
-    Expect(1, 93071, '\p{_IS_Pahawh_Hmong}', "");
-    Expect(0, 93071, '\p{^_IS_Pahawh_Hmong}', "");
-    Expect(0, 93071, '\P{_IS_Pahawh_Hmong}', "");
-    Expect(1, 93071, '\P{^_IS_Pahawh_Hmong}', "");
-    Expect(0, 93072, '\p{_IS_Pahawh_Hmong}', "");
-    Expect(1, 93072, '\p{^_IS_Pahawh_Hmong}', "");
-    Expect(1, 93072, '\P{_IS_Pahawh_Hmong}', "");
-    Expect(0, 93072, '\P{^_IS_Pahawh_Hmong}', "");
-    Error('\p{--Hmng/a/}');
-    Error('\P{--Hmng/a/}');
+    Expect(1, 93071, '\p{		Is_pahawh_Hmong}', "");
+    Expect(0, 93071, '\p{^		Is_pahawh_Hmong}', "");
+    Expect(0, 93071, '\P{		Is_pahawh_Hmong}', "");
+    Expect(1, 93071, '\P{^		Is_pahawh_Hmong}', "");
+    Expect(0, 93072, '\p{		Is_pahawh_Hmong}', "");
+    Expect(1, 93072, '\p{^		Is_pahawh_Hmong}', "");
+    Expect(1, 93072, '\P{		Is_pahawh_Hmong}', "");
+    Expect(0, 93072, '\P{^		Is_pahawh_Hmong}', "");
+    Error('\p{-:=HMNG}');
+    Error('\P{-:=HMNG}');
     Expect(1, 93071, '\p{hmng}', "");
     Expect(0, 93071, '\p{^hmng}', "");
     Expect(0, 93071, '\P{hmng}', "");
@@ -116181,16 +117397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93072, '\p{^hmng}', "");
     Expect(1, 93072, '\P{hmng}', "");
     Expect(0, 93072, '\P{^hmng}', "");
-    Expect(1, 93071, '\p{	_Hmng}', "");
-    Expect(0, 93071, '\p{^	_Hmng}', "");
-    Expect(0, 93071, '\P{	_Hmng}', "");
-    Expect(1, 93071, '\P{^	_Hmng}', "");
-    Expect(0, 93072, '\p{	_Hmng}', "");
-    Expect(1, 93072, '\p{^	_Hmng}', "");
-    Expect(1, 93072, '\P{	_Hmng}', "");
-    Expect(0, 93072, '\P{^	_Hmng}', "");
-    Error('\p{/a/-	Is_Hmng}');
-    Error('\P{/a/-	Is_Hmng}');
+    Expect(1, 93071, '\p{ HMNG}', "");
+    Expect(0, 93071, '\p{^ HMNG}', "");
+    Expect(0, 93071, '\P{ HMNG}', "");
+    Expect(1, 93071, '\P{^ HMNG}', "");
+    Expect(0, 93072, '\p{ HMNG}', "");
+    Expect(1, 93072, '\p{^ HMNG}', "");
+    Expect(1, 93072, '\P{ HMNG}', "");
+    Expect(0, 93072, '\P{^ HMNG}', "");
+    Error('\p{:=  Is_Hmng}');
+    Error('\P{:=  Is_Hmng}');
     Expect(1, 93071, '\p{ishmng}', "");
     Expect(0, 93071, '\p{^ishmng}', "");
     Expect(0, 93071, '\P{ishmng}', "");
@@ -116199,16 +117415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 93072, '\p{^ishmng}', "");
     Expect(1, 93072, '\P{ishmng}', "");
     Expect(0, 93072, '\P{^ishmng}', "");
-    Expect(1, 93071, '\p{--IS_HMNG}', "");
-    Expect(0, 93071, '\p{^--IS_HMNG}', "");
-    Expect(0, 93071, '\P{--IS_HMNG}', "");
-    Expect(1, 93071, '\P{^--IS_HMNG}', "");
-    Expect(0, 93072, '\p{--IS_HMNG}', "");
-    Expect(1, 93072, '\p{^--IS_HMNG}', "");
-    Expect(1, 93072, '\P{--IS_HMNG}', "");
-    Expect(0, 93072, '\P{^--IS_HMNG}', "");
-    Error('\p{:=	palmyrene}');
-    Error('\P{:=	palmyrene}');
+    Expect(1, 93071, '\p{	is_hmng}', "");
+    Expect(0, 93071, '\p{^	is_hmng}', "");
+    Expect(0, 93071, '\P{	is_hmng}', "");
+    Expect(1, 93071, '\P{^	is_hmng}', "");
+    Expect(0, 93072, '\p{	is_hmng}', "");
+    Expect(1, 93072, '\p{^	is_hmng}', "");
+    Expect(1, 93072, '\P{	is_hmng}', "");
+    Expect(0, 93072, '\P{^	is_hmng}', "");
+    Error('\p{/a/__PALMYRENE}');
+    Error('\P{/a/__PALMYRENE}');
     Expect(1, 67711, '\p{palmyrene}', "");
     Expect(0, 67711, '\p{^palmyrene}', "");
     Expect(0, 67711, '\P{palmyrene}', "");
@@ -116217,16 +117433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67712, '\p{^palmyrene}', "");
     Expect(1, 67712, '\P{palmyrene}', "");
     Expect(0, 67712, '\P{^palmyrene}', "");
-    Expect(1, 67711, '\p{	Palmyrene}', "");
-    Expect(0, 67711, '\p{^	Palmyrene}', "");
-    Expect(0, 67711, '\P{	Palmyrene}', "");
-    Expect(1, 67711, '\P{^	Palmyrene}', "");
-    Expect(0, 67712, '\p{	Palmyrene}', "");
-    Expect(1, 67712, '\p{^	Palmyrene}', "");
-    Expect(1, 67712, '\P{	Palmyrene}', "");
-    Expect(0, 67712, '\P{^	Palmyrene}', "");
-    Error('\p{:= _is_Palmyrene}');
-    Error('\P{:= _is_Palmyrene}');
+    Expect(1, 67711, '\p{_-PALMYRENE}', "");
+    Expect(0, 67711, '\p{^_-PALMYRENE}', "");
+    Expect(0, 67711, '\P{_-PALMYRENE}', "");
+    Expect(1, 67711, '\P{^_-PALMYRENE}', "");
+    Expect(0, 67712, '\p{_-PALMYRENE}', "");
+    Expect(1, 67712, '\p{^_-PALMYRENE}', "");
+    Expect(1, 67712, '\P{_-PALMYRENE}', "");
+    Expect(0, 67712, '\P{^_-PALMYRENE}', "");
+    Error('\p{:=	Is_Palmyrene}');
+    Error('\P{:=	Is_Palmyrene}');
     Expect(1, 67711, '\p{ispalmyrene}', "");
     Expect(0, 67711, '\p{^ispalmyrene}', "");
     Expect(0, 67711, '\P{ispalmyrene}', "");
@@ -116235,16 +117451,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67712, '\p{^ispalmyrene}', "");
     Expect(1, 67712, '\P{ispalmyrene}', "");
     Expect(0, 67712, '\P{^ispalmyrene}', "");
-    Expect(1, 67711, '\p{  IS_Palmyrene}', "");
-    Expect(0, 67711, '\p{^  IS_Palmyrene}', "");
-    Expect(0, 67711, '\P{  IS_Palmyrene}', "");
-    Expect(1, 67711, '\P{^  IS_Palmyrene}', "");
-    Expect(0, 67712, '\p{  IS_Palmyrene}', "");
-    Expect(1, 67712, '\p{^  IS_Palmyrene}', "");
-    Expect(1, 67712, '\P{  IS_Palmyrene}', "");
-    Expect(0, 67712, '\P{^  IS_Palmyrene}', "");
-    Error('\p{ :=palm}');
-    Error('\P{ :=palm}');
+    Expect(1, 67711, '\p{_IS_PALMYRENE}', "");
+    Expect(0, 67711, '\p{^_IS_PALMYRENE}', "");
+    Expect(0, 67711, '\P{_IS_PALMYRENE}', "");
+    Expect(1, 67711, '\P{^_IS_PALMYRENE}', "");
+    Expect(0, 67712, '\p{_IS_PALMYRENE}', "");
+    Expect(1, 67712, '\p{^_IS_PALMYRENE}', "");
+    Expect(1, 67712, '\P{_IS_PALMYRENE}', "");
+    Expect(0, 67712, '\P{^_IS_PALMYRENE}', "");
+    Error('\p{:= palm}');
+    Error('\P{:= palm}');
     Expect(1, 67711, '\p{palm}', "");
     Expect(0, 67711, '\p{^palm}', "");
     Expect(0, 67711, '\P{palm}', "");
@@ -116253,16 +117469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67712, '\p{^palm}', "");
     Expect(1, 67712, '\P{palm}', "");
     Expect(0, 67712, '\P{^palm}', "");
-    Expect(1, 67711, '\p{-	Palm}', "");
-    Expect(0, 67711, '\p{^-	Palm}', "");
-    Expect(0, 67711, '\P{-	Palm}', "");
-    Expect(1, 67711, '\P{^-	Palm}', "");
-    Expect(0, 67712, '\p{-	Palm}', "");
-    Expect(1, 67712, '\p{^-	Palm}', "");
-    Expect(1, 67712, '\P{-	Palm}', "");
-    Expect(0, 67712, '\P{^-	Palm}', "");
-    Error('\p{-:=Is_PALM}');
-    Error('\P{-:=Is_PALM}');
+    Expect(1, 67711, '\p{__palm}', "");
+    Expect(0, 67711, '\p{^__palm}', "");
+    Expect(0, 67711, '\P{__palm}', "");
+    Expect(1, 67711, '\P{^__palm}', "");
+    Expect(0, 67712, '\p{__palm}', "");
+    Expect(1, 67712, '\p{^__palm}', "");
+    Expect(1, 67712, '\P{__palm}', "");
+    Expect(0, 67712, '\P{^__palm}', "");
+    Error('\p{/a/_IS_Palm}');
+    Error('\P{/a/_IS_Palm}');
     Expect(1, 67711, '\p{ispalm}', "");
     Expect(0, 67711, '\p{^ispalm}', "");
     Expect(0, 67711, '\P{ispalm}', "");
@@ -116271,16 +117487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67712, '\p{^ispalm}', "");
     Expect(1, 67712, '\P{ispalm}', "");
     Expect(0, 67712, '\P{^ispalm}', "");
-    Expect(1, 67711, '\p{-Is_Palm}', "");
-    Expect(0, 67711, '\p{^-Is_Palm}', "");
-    Expect(0, 67711, '\P{-Is_Palm}', "");
-    Expect(1, 67711, '\P{^-Is_Palm}', "");
-    Expect(0, 67712, '\p{-Is_Palm}', "");
-    Expect(1, 67712, '\p{^-Is_Palm}', "");
-    Expect(1, 67712, '\P{-Is_Palm}', "");
-    Expect(0, 67712, '\P{^-Is_Palm}', "");
-    Error('\p{-:=Paragraph_SEPARATOR}');
-    Error('\P{-:=Paragraph_SEPARATOR}');
+    Expect(1, 67711, '\p{_-Is_palm}', "");
+    Expect(0, 67711, '\p{^_-Is_palm}', "");
+    Expect(0, 67711, '\P{_-Is_palm}', "");
+    Expect(1, 67711, '\P{^_-Is_palm}', "");
+    Expect(0, 67712, '\p{_-Is_palm}', "");
+    Expect(1, 67712, '\p{^_-Is_palm}', "");
+    Expect(1, 67712, '\P{_-Is_palm}', "");
+    Expect(0, 67712, '\P{^_-Is_palm}', "");
+    Error('\p{_/a/Paragraph_SEPARATOR}');
+    Error('\P{_/a/Paragraph_SEPARATOR}');
     Expect(1, 8233, '\p{paragraphseparator}', "");
     Expect(0, 8233, '\p{^paragraphseparator}', "");
     Expect(0, 8233, '\P{paragraphseparator}', "");
@@ -116289,16 +117505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^paragraphseparator}', "");
     Expect(1, 8234, '\P{paragraphseparator}', "");
     Expect(0, 8234, '\P{^paragraphseparator}', "");
-    Expect(1, 8233, '\p{_	PARAGRAPH_Separator}', "");
-    Expect(0, 8233, '\p{^_	PARAGRAPH_Separator}', "");
-    Expect(0, 8233, '\P{_	PARAGRAPH_Separator}', "");
-    Expect(1, 8233, '\P{^_	PARAGRAPH_Separator}', "");
-    Expect(0, 8234, '\p{_	PARAGRAPH_Separator}', "");
-    Expect(1, 8234, '\p{^_	PARAGRAPH_Separator}', "");
-    Expect(1, 8234, '\P{_	PARAGRAPH_Separator}', "");
-    Expect(0, 8234, '\P{^_	PARAGRAPH_Separator}', "");
-    Error('\p{_-Is_paragraph_Separator:=}');
-    Error('\P{_-Is_paragraph_Separator:=}');
+    Expect(1, 8233, '\p{_PARAGRAPH_Separator}', "");
+    Expect(0, 8233, '\p{^_PARAGRAPH_Separator}', "");
+    Expect(0, 8233, '\P{_PARAGRAPH_Separator}', "");
+    Expect(1, 8233, '\P{^_PARAGRAPH_Separator}', "");
+    Expect(0, 8234, '\p{_PARAGRAPH_Separator}', "");
+    Expect(1, 8234, '\p{^_PARAGRAPH_Separator}', "");
+    Expect(1, 8234, '\P{_PARAGRAPH_Separator}', "");
+    Expect(0, 8234, '\P{^_PARAGRAPH_Separator}', "");
+    Error('\p{:=	-IS_Paragraph_separator}');
+    Error('\P{:=	-IS_Paragraph_separator}');
     Expect(1, 8233, '\p{isparagraphseparator}', "");
     Expect(0, 8233, '\p{^isparagraphseparator}', "");
     Expect(0, 8233, '\P{isparagraphseparator}', "");
@@ -116307,16 +117523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^isparagraphseparator}', "");
     Expect(1, 8234, '\P{isparagraphseparator}', "");
     Expect(0, 8234, '\P{^isparagraphseparator}', "");
-    Expect(1, 8233, '\p{_is_paragraph_SEPARATOR}', "");
-    Expect(0, 8233, '\p{^_is_paragraph_SEPARATOR}', "");
-    Expect(0, 8233, '\P{_is_paragraph_SEPARATOR}', "");
-    Expect(1, 8233, '\P{^_is_paragraph_SEPARATOR}', "");
-    Expect(0, 8234, '\p{_is_paragraph_SEPARATOR}', "");
-    Expect(1, 8234, '\p{^_is_paragraph_SEPARATOR}', "");
-    Expect(1, 8234, '\P{_is_paragraph_SEPARATOR}', "");
-    Expect(0, 8234, '\P{^_is_paragraph_SEPARATOR}', "");
-    Error('\p{_/a/Zp}');
-    Error('\P{_/a/Zp}');
+    Expect(1, 8233, '\p{  Is_Paragraph_separator}', "");
+    Expect(0, 8233, '\p{^  Is_Paragraph_separator}', "");
+    Expect(0, 8233, '\P{  Is_Paragraph_separator}', "");
+    Expect(1, 8233, '\P{^  Is_Paragraph_separator}', "");
+    Expect(0, 8234, '\p{  Is_Paragraph_separator}', "");
+    Expect(1, 8234, '\p{^  Is_Paragraph_separator}', "");
+    Expect(1, 8234, '\P{  Is_Paragraph_separator}', "");
+    Expect(0, 8234, '\P{^  Is_Paragraph_separator}', "");
+    Error('\p{-	Zp:=}');
+    Error('\P{-	Zp:=}');
     Expect(1, 8233, '\p{zp}', "");
     Expect(0, 8233, '\p{^zp}', "");
     Expect(0, 8233, '\P{zp}', "");
@@ -116325,16 +117541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^zp}', "");
     Expect(1, 8234, '\P{zp}', "");
     Expect(0, 8234, '\P{^zp}', "");
-    Expect(1, 8233, '\p{--Zp}', "");
-    Expect(0, 8233, '\p{^--Zp}', "");
-    Expect(0, 8233, '\P{--Zp}', "");
-    Expect(1, 8233, '\P{^--Zp}', "");
-    Expect(0, 8234, '\p{--Zp}', "");
-    Expect(1, 8234, '\p{^--Zp}', "");
-    Expect(1, 8234, '\P{--Zp}', "");
-    Expect(0, 8234, '\P{^--Zp}', "");
-    Error('\p{	-Is_ZP/a/}');
-    Error('\P{	-Is_ZP/a/}');
+    Expect(1, 8233, '\p{_ZP}', "");
+    Expect(0, 8233, '\p{^_ZP}', "");
+    Expect(0, 8233, '\P{_ZP}', "");
+    Expect(1, 8233, '\P{^_ZP}', "");
+    Expect(0, 8234, '\p{_ZP}', "");
+    Expect(1, 8234, '\p{^_ZP}', "");
+    Expect(1, 8234, '\P{_ZP}', "");
+    Expect(0, 8234, '\P{^_ZP}', "");
+    Error('\p{ Is_Zp/a/}');
+    Error('\P{ Is_Zp/a/}');
     Expect(1, 8233, '\p{iszp}', "");
     Expect(0, 8233, '\p{^iszp}', "");
     Expect(0, 8233, '\P{iszp}', "");
@@ -116343,16 +117559,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^iszp}', "");
     Expect(1, 8234, '\P{iszp}', "");
     Expect(0, 8234, '\P{^iszp}', "");
-    Expect(1, 8233, '\p{__Is_Zp}', "");
-    Expect(0, 8233, '\p{^__Is_Zp}', "");
-    Expect(0, 8233, '\P{__Is_Zp}', "");
-    Expect(1, 8233, '\P{^__Is_Zp}', "");
-    Expect(0, 8234, '\p{__Is_Zp}', "");
-    Expect(1, 8234, '\p{^__Is_Zp}', "");
-    Expect(1, 8234, '\P{__Is_Zp}', "");
-    Expect(0, 8234, '\P{^__Is_Zp}', "");
-    Error('\p{_Pattern_Syntax:=}');
-    Error('\P{_Pattern_Syntax:=}');
+    Expect(1, 8233, '\p{- is_zp}', "");
+    Expect(0, 8233, '\p{^- is_zp}', "");
+    Expect(0, 8233, '\P{- is_zp}', "");
+    Expect(1, 8233, '\P{^- is_zp}', "");
+    Expect(0, 8234, '\p{- is_zp}', "");
+    Expect(1, 8234, '\p{^- is_zp}', "");
+    Expect(1, 8234, '\P{- is_zp}', "");
+    Expect(0, 8234, '\P{^- is_zp}', "");
+    Error('\p{/a/ Pattern_syntax}');
+    Error('\P{/a/ Pattern_syntax}');
     Expect(1, 65094, '\p{patternsyntax}', "");
     Expect(0, 65094, '\p{^patternsyntax}', "");
     Expect(0, 65094, '\P{patternsyntax}', "");
@@ -116361,16 +117577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65095, '\p{^patternsyntax}', "");
     Expect(1, 65095, '\P{patternsyntax}', "");
     Expect(0, 65095, '\P{^patternsyntax}', "");
-    Expect(1, 65094, '\p{ 	Pattern_syntax}', "");
-    Expect(0, 65094, '\p{^ 	Pattern_syntax}', "");
-    Expect(0, 65094, '\P{ 	Pattern_syntax}', "");
-    Expect(1, 65094, '\P{^ 	Pattern_syntax}', "");
-    Expect(0, 65095, '\p{ 	Pattern_syntax}', "");
-    Expect(1, 65095, '\p{^ 	Pattern_syntax}', "");
-    Expect(1, 65095, '\P{ 	Pattern_syntax}', "");
-    Expect(0, 65095, '\P{^ 	Pattern_syntax}', "");
-    Error('\p{/a/-_IS_Pattern_Syntax}');
-    Error('\P{/a/-_IS_Pattern_Syntax}');
+    Expect(1, 65094, '\p{ -pattern_Syntax}', "");
+    Expect(0, 65094, '\p{^ -pattern_Syntax}', "");
+    Expect(0, 65094, '\P{ -pattern_Syntax}', "");
+    Expect(1, 65094, '\P{^ -pattern_Syntax}', "");
+    Expect(0, 65095, '\p{ -pattern_Syntax}', "");
+    Expect(1, 65095, '\p{^ -pattern_Syntax}', "");
+    Expect(1, 65095, '\P{ -pattern_Syntax}', "");
+    Expect(0, 65095, '\P{^ -pattern_Syntax}', "");
+    Error('\p{/a/-IS_PATTERN_SYNTAX}');
+    Error('\P{/a/-IS_PATTERN_SYNTAX}');
     Expect(1, 65094, '\p{ispatternsyntax}', "");
     Expect(0, 65094, '\p{^ispatternsyntax}', "");
     Expect(0, 65094, '\P{ispatternsyntax}', "");
@@ -116379,16 +117595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65095, '\p{^ispatternsyntax}', "");
     Expect(1, 65095, '\P{ispatternsyntax}', "");
     Expect(0, 65095, '\P{^ispatternsyntax}', "");
-    Expect(1, 65094, '\p{ -Is_Pattern_syntax}', "");
-    Expect(0, 65094, '\p{^ -Is_Pattern_syntax}', "");
-    Expect(0, 65094, '\P{ -Is_Pattern_syntax}', "");
-    Expect(1, 65094, '\P{^ -Is_Pattern_syntax}', "");
-    Expect(0, 65095, '\p{ -Is_Pattern_syntax}', "");
-    Expect(1, 65095, '\p{^ -Is_Pattern_syntax}', "");
-    Expect(1, 65095, '\P{ -Is_Pattern_syntax}', "");
-    Expect(0, 65095, '\P{^ -Is_Pattern_syntax}', "");
-    Error('\p{:=-	pat_SYN}');
-    Error('\P{:=-	pat_SYN}');
+    Expect(1, 65094, '\p{-_IS_pattern_Syntax}', "");
+    Expect(0, 65094, '\p{^-_IS_pattern_Syntax}', "");
+    Expect(0, 65094, '\P{-_IS_pattern_Syntax}', "");
+    Expect(1, 65094, '\P{^-_IS_pattern_Syntax}', "");
+    Expect(0, 65095, '\p{-_IS_pattern_Syntax}', "");
+    Expect(1, 65095, '\p{^-_IS_pattern_Syntax}', "");
+    Expect(1, 65095, '\P{-_IS_pattern_Syntax}', "");
+    Expect(0, 65095, '\P{^-_IS_pattern_Syntax}', "");
+    Error('\p{:= _pat_SYN}');
+    Error('\P{:= _pat_SYN}');
     Expect(1, 65094, '\p{patsyn}', "");
     Expect(0, 65094, '\p{^patsyn}', "");
     Expect(0, 65094, '\P{patsyn}', "");
@@ -116397,16 +117613,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65095, '\p{^patsyn}', "");
     Expect(1, 65095, '\P{patsyn}', "");
     Expect(0, 65095, '\P{^patsyn}', "");
-    Expect(1, 65094, '\p{ _PAT_SYN}', "");
-    Expect(0, 65094, '\p{^ _PAT_SYN}', "");
-    Expect(0, 65094, '\P{ _PAT_SYN}', "");
-    Expect(1, 65094, '\P{^ _PAT_SYN}', "");
-    Expect(0, 65095, '\p{ _PAT_SYN}', "");
-    Expect(1, 65095, '\p{^ _PAT_SYN}', "");
-    Expect(1, 65095, '\P{ _PAT_SYN}', "");
-    Expect(0, 65095, '\P{^ _PAT_SYN}', "");
-    Error('\p{/a/		is_PAT_syn}');
-    Error('\P{/a/		is_PAT_syn}');
+    Expect(1, 65094, '\p{		pat_Syn}', "");
+    Expect(0, 65094, '\p{^		pat_Syn}', "");
+    Expect(0, 65094, '\P{		pat_Syn}', "");
+    Expect(1, 65094, '\P{^		pat_Syn}', "");
+    Expect(0, 65095, '\p{		pat_Syn}', "");
+    Expect(1, 65095, '\p{^		pat_Syn}', "");
+    Expect(1, 65095, '\P{		pat_Syn}', "");
+    Expect(0, 65095, '\P{^		pat_Syn}', "");
+    Error('\p{ IS_Pat_Syn:=}');
+    Error('\P{ IS_Pat_Syn:=}');
     Expect(1, 65094, '\p{ispatsyn}', "");
     Expect(0, 65094, '\p{^ispatsyn}', "");
     Expect(0, 65094, '\P{ispatsyn}', "");
@@ -116415,16 +117631,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65095, '\p{^ispatsyn}', "");
     Expect(1, 65095, '\P{ispatsyn}', "");
     Expect(0, 65095, '\P{^ispatsyn}', "");
-    Expect(1, 65094, '\p{ Is_PAT_Syn}', "");
-    Expect(0, 65094, '\p{^ Is_PAT_Syn}', "");
-    Expect(0, 65094, '\P{ Is_PAT_Syn}', "");
-    Expect(1, 65094, '\P{^ Is_PAT_Syn}', "");
-    Expect(0, 65095, '\p{ Is_PAT_Syn}', "");
-    Expect(1, 65095, '\p{^ Is_PAT_Syn}', "");
-    Expect(1, 65095, '\P{ Is_PAT_Syn}', "");
-    Expect(0, 65095, '\P{^ Is_PAT_Syn}', "");
-    Error('\p{/a/  PATTERN_White_Space}');
-    Error('\P{/a/  PATTERN_White_Space}');
+    Expect(1, 65094, '\p{	 Is_Pat_syn}', "");
+    Expect(0, 65094, '\p{^	 Is_Pat_syn}', "");
+    Expect(0, 65094, '\P{	 Is_Pat_syn}', "");
+    Expect(1, 65094, '\P{^	 Is_Pat_syn}', "");
+    Expect(0, 65095, '\p{	 Is_Pat_syn}', "");
+    Expect(1, 65095, '\p{^	 Is_Pat_syn}', "");
+    Expect(1, 65095, '\P{	 Is_Pat_syn}', "");
+    Expect(0, 65095, '\P{^	 Is_Pat_syn}', "");
+    Error('\p{_:=Pattern_White_SPACE}');
+    Error('\P{_:=Pattern_White_SPACE}');
     Expect(1, 8233, '\p{patternwhitespace}', "");
     Expect(0, 8233, '\p{^patternwhitespace}', "");
     Expect(0, 8233, '\P{patternwhitespace}', "");
@@ -116433,16 +117649,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^patternwhitespace}', "");
     Expect(1, 8234, '\P{patternwhitespace}', "");
     Expect(0, 8234, '\P{^patternwhitespace}', "");
-    Expect(1, 8233, '\p{_	Pattern_White_Space}', "");
-    Expect(0, 8233, '\p{^_	Pattern_White_Space}', "");
-    Expect(0, 8233, '\P{_	Pattern_White_Space}', "");
-    Expect(1, 8233, '\P{^_	Pattern_White_Space}', "");
-    Expect(0, 8234, '\p{_	Pattern_White_Space}', "");
-    Expect(1, 8234, '\p{^_	Pattern_White_Space}', "");
-    Expect(1, 8234, '\P{_	Pattern_White_Space}', "");
-    Expect(0, 8234, '\P{^_	Pattern_White_Space}', "");
-    Error('\p{_ Is_PATTERN_WHITE_SPACE:=}');
-    Error('\P{_ Is_PATTERN_WHITE_SPACE:=}');
+    Expect(1, 8233, '\p{	pattern_White_Space}', "");
+    Expect(0, 8233, '\p{^	pattern_White_Space}', "");
+    Expect(0, 8233, '\P{	pattern_White_Space}', "");
+    Expect(1, 8233, '\P{^	pattern_White_Space}', "");
+    Expect(0, 8234, '\p{	pattern_White_Space}', "");
+    Expect(1, 8234, '\p{^	pattern_White_Space}', "");
+    Expect(1, 8234, '\P{	pattern_White_Space}', "");
+    Expect(0, 8234, '\P{^	pattern_White_Space}', "");
+    Error('\p{_is_Pattern_White_Space:=}');
+    Error('\P{_is_Pattern_White_Space:=}');
     Expect(1, 8233, '\p{ispatternwhitespace}', "");
     Expect(0, 8233, '\p{^ispatternwhitespace}', "");
     Expect(0, 8233, '\P{ispatternwhitespace}', "");
@@ -116451,16 +117667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^ispatternwhitespace}', "");
     Expect(1, 8234, '\P{ispatternwhitespace}', "");
     Expect(0, 8234, '\P{^ispatternwhitespace}', "");
-    Expect(1, 8233, '\p{		is_Pattern_WHITE_SPACE}', "");
-    Expect(0, 8233, '\p{^		is_Pattern_WHITE_SPACE}', "");
-    Expect(0, 8233, '\P{		is_Pattern_WHITE_SPACE}', "");
-    Expect(1, 8233, '\P{^		is_Pattern_WHITE_SPACE}', "");
-    Expect(0, 8234, '\p{		is_Pattern_WHITE_SPACE}', "");
-    Expect(1, 8234, '\p{^		is_Pattern_WHITE_SPACE}', "");
-    Expect(1, 8234, '\P{		is_Pattern_WHITE_SPACE}', "");
-    Expect(0, 8234, '\P{^		is_Pattern_WHITE_SPACE}', "");
-    Error('\p{ :=Pat_WS}');
-    Error('\P{ :=Pat_WS}');
+    Expect(1, 8233, '\p{	Is_PATTERN_White_Space}', "");
+    Expect(0, 8233, '\p{^	Is_PATTERN_White_Space}', "");
+    Expect(0, 8233, '\P{	Is_PATTERN_White_Space}', "");
+    Expect(1, 8233, '\P{^	Is_PATTERN_White_Space}', "");
+    Expect(0, 8234, '\p{	Is_PATTERN_White_Space}', "");
+    Expect(1, 8234, '\p{^	Is_PATTERN_White_Space}', "");
+    Expect(1, 8234, '\P{	Is_PATTERN_White_Space}', "");
+    Expect(0, 8234, '\P{^	Is_PATTERN_White_Space}', "");
+    Error('\p{-Pat_ws:=}');
+    Error('\P{-Pat_ws:=}');
     Expect(1, 8233, '\p{patws}', "");
     Expect(0, 8233, '\p{^patws}', "");
     Expect(0, 8233, '\P{patws}', "");
@@ -116469,16 +117685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^patws}', "");
     Expect(1, 8234, '\P{patws}', "");
     Expect(0, 8234, '\P{^patws}', "");
-    Expect(1, 8233, '\p{-PAT_WS}', "");
-    Expect(0, 8233, '\p{^-PAT_WS}', "");
-    Expect(0, 8233, '\P{-PAT_WS}', "");
-    Expect(1, 8233, '\P{^-PAT_WS}', "");
-    Expect(0, 8234, '\p{-PAT_WS}', "");
-    Expect(1, 8234, '\p{^-PAT_WS}', "");
-    Expect(1, 8234, '\P{-PAT_WS}', "");
-    Expect(0, 8234, '\P{^-PAT_WS}', "");
-    Error('\p{/a/IS_Pat_WS}');
-    Error('\P{/a/IS_Pat_WS}');
+    Expect(1, 8233, '\p{--Pat_WS}', "");
+    Expect(0, 8233, '\p{^--Pat_WS}', "");
+    Expect(0, 8233, '\P{--Pat_WS}', "");
+    Expect(1, 8233, '\P{^--Pat_WS}', "");
+    Expect(0, 8234, '\p{--Pat_WS}', "");
+    Expect(1, 8234, '\p{^--Pat_WS}', "");
+    Expect(1, 8234, '\P{--Pat_WS}', "");
+    Expect(0, 8234, '\P{^--Pat_WS}', "");
+    Error('\p{	/a/IS_pat_WS}');
+    Error('\P{	/a/IS_pat_WS}');
     Expect(1, 8233, '\p{ispatws}', "");
     Expect(0, 8233, '\p{^ispatws}', "");
     Expect(0, 8233, '\P{ispatws}', "");
@@ -116487,16 +117703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 8234, '\p{^ispatws}', "");
     Expect(1, 8234, '\P{ispatws}', "");
     Expect(0, 8234, '\P{^ispatws}', "");
-    Expect(1, 8233, '\p{	_is_pat_WS}', "");
-    Expect(0, 8233, '\p{^	_is_pat_WS}', "");
-    Expect(0, 8233, '\P{	_is_pat_WS}', "");
-    Expect(1, 8233, '\P{^	_is_pat_WS}', "");
-    Expect(0, 8234, '\p{	_is_pat_WS}', "");
-    Expect(1, 8234, '\p{^	_is_pat_WS}', "");
-    Expect(1, 8234, '\P{	_is_pat_WS}', "");
-    Expect(0, 8234, '\P{^	_is_pat_WS}', "");
-    Error('\p{_pau_cin_Hau:=}');
-    Error('\P{_pau_cin_Hau:=}');
+    Expect(1, 8233, '\p{--Is_Pat_WS}', "");
+    Expect(0, 8233, '\p{^--Is_Pat_WS}', "");
+    Expect(0, 8233, '\P{--Is_Pat_WS}', "");
+    Expect(1, 8233, '\P{^--Is_Pat_WS}', "");
+    Expect(0, 8234, '\p{--Is_Pat_WS}', "");
+    Expect(1, 8234, '\p{^--Is_Pat_WS}', "");
+    Expect(1, 8234, '\P{--Is_Pat_WS}', "");
+    Expect(0, 8234, '\P{^--Is_Pat_WS}', "");
+    Error('\p{ :=Pau_cin_HAU}');
+    Error('\P{ :=Pau_cin_HAU}');
     Expect(1, 72440, '\p{paucinhau}', "");
     Expect(0, 72440, '\p{^paucinhau}', "");
     Expect(0, 72440, '\P{paucinhau}', "");
@@ -116505,16 +117721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72441, '\p{^paucinhau}', "");
     Expect(1, 72441, '\P{paucinhau}', "");
     Expect(0, 72441, '\P{^paucinhau}', "");
-    Expect(1, 72440, '\p{	-Pau_cin_HAU}', "");
-    Expect(0, 72440, '\p{^	-Pau_cin_HAU}', "");
-    Expect(0, 72440, '\P{	-Pau_cin_HAU}', "");
-    Expect(1, 72440, '\P{^	-Pau_cin_HAU}', "");
-    Expect(0, 72441, '\p{	-Pau_cin_HAU}', "");
-    Expect(1, 72441, '\p{^	-Pau_cin_HAU}', "");
-    Expect(1, 72441, '\P{	-Pau_cin_HAU}', "");
-    Expect(0, 72441, '\P{^	-Pau_cin_HAU}', "");
-    Error('\p{:=_Is_Pau_cin_Hau}');
-    Error('\P{:=_Is_Pau_cin_Hau}');
+    Expect(1, 72440, '\p{ -Pau_Cin_Hau}', "");
+    Expect(0, 72440, '\p{^ -Pau_Cin_Hau}', "");
+    Expect(0, 72440, '\P{ -Pau_Cin_Hau}', "");
+    Expect(1, 72440, '\P{^ -Pau_Cin_Hau}', "");
+    Expect(0, 72441, '\p{ -Pau_Cin_Hau}', "");
+    Expect(1, 72441, '\p{^ -Pau_Cin_Hau}', "");
+    Expect(1, 72441, '\P{ -Pau_Cin_Hau}', "");
+    Expect(0, 72441, '\P{^ -Pau_Cin_Hau}', "");
+    Error('\p{-:=Is_Pau_cin_Hau}');
+    Error('\P{-:=Is_Pau_cin_Hau}');
     Expect(1, 72440, '\p{ispaucinhau}', "");
     Expect(0, 72440, '\p{^ispaucinhau}', "");
     Expect(0, 72440, '\P{ispaucinhau}', "");
@@ -116523,16 +117739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72441, '\p{^ispaucinhau}', "");
     Expect(1, 72441, '\P{ispaucinhau}', "");
     Expect(0, 72441, '\P{^ispaucinhau}', "");
-    Expect(1, 72440, '\p{-Is_Pau_CIN_Hau}', "");
-    Expect(0, 72440, '\p{^-Is_Pau_CIN_Hau}', "");
-    Expect(0, 72440, '\P{-Is_Pau_CIN_Hau}', "");
-    Expect(1, 72440, '\P{^-Is_Pau_CIN_Hau}', "");
-    Expect(0, 72441, '\p{-Is_Pau_CIN_Hau}', "");
-    Expect(1, 72441, '\p{^-Is_Pau_CIN_Hau}', "");
-    Expect(1, 72441, '\P{-Is_Pau_CIN_Hau}', "");
-    Expect(0, 72441, '\P{^-Is_Pau_CIN_Hau}', "");
-    Error('\p{-_pauc:=}');
-    Error('\P{-_pauc:=}');
+    Expect(1, 72440, '\p{is_Pau_cin_HAU}', "");
+    Expect(0, 72440, '\p{^is_Pau_cin_HAU}', "");
+    Expect(0, 72440, '\P{is_Pau_cin_HAU}', "");
+    Expect(1, 72440, '\P{^is_Pau_cin_HAU}', "");
+    Expect(0, 72441, '\p{is_Pau_cin_HAU}', "");
+    Expect(1, 72441, '\p{^is_Pau_cin_HAU}', "");
+    Expect(1, 72441, '\P{is_Pau_cin_HAU}', "");
+    Expect(0, 72441, '\P{^is_Pau_cin_HAU}', "");
+    Error('\p{_ Pauc/a/}');
+    Error('\P{_ Pauc/a/}');
     Expect(1, 72440, '\p{pauc}', "");
     Expect(0, 72440, '\p{^pauc}', "");
     Expect(0, 72440, '\P{pauc}', "");
@@ -116541,16 +117757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72441, '\p{^pauc}', "");
     Expect(1, 72441, '\P{pauc}', "");
     Expect(0, 72441, '\P{^pauc}', "");
-    Expect(1, 72440, '\p{	Pauc}', "");
-    Expect(0, 72440, '\p{^	Pauc}', "");
-    Expect(0, 72440, '\P{	Pauc}', "");
-    Expect(1, 72440, '\P{^	Pauc}', "");
-    Expect(0, 72441, '\p{	Pauc}', "");
-    Expect(1, 72441, '\p{^	Pauc}', "");
-    Expect(1, 72441, '\P{	Pauc}', "");
-    Expect(0, 72441, '\P{^	Pauc}', "");
-    Error('\p{:= is_Pauc}');
-    Error('\P{:= is_Pauc}');
+    Expect(1, 72440, '\p{- Pauc}', "");
+    Expect(0, 72440, '\p{^- Pauc}', "");
+    Expect(0, 72440, '\P{- Pauc}', "");
+    Expect(1, 72440, '\P{^- Pauc}', "");
+    Expect(0, 72441, '\p{- Pauc}', "");
+    Expect(1, 72441, '\p{^- Pauc}', "");
+    Expect(1, 72441, '\P{- Pauc}', "");
+    Expect(0, 72441, '\P{^- Pauc}', "");
+    Error('\p{_:=Is_Pauc}');
+    Error('\P{_:=Is_Pauc}');
     Expect(1, 72440, '\p{ispauc}', "");
     Expect(0, 72440, '\p{^ispauc}', "");
     Expect(0, 72440, '\P{ispauc}', "");
@@ -116559,16 +117775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 72441, '\p{^ispauc}', "");
     Expect(1, 72441, '\P{ispauc}', "");
     Expect(0, 72441, '\P{^ispauc}', "");
-    Expect(1, 72440, '\p{ -Is_Pauc}', "");
-    Expect(0, 72440, '\p{^ -Is_Pauc}', "");
-    Expect(0, 72440, '\P{ -Is_Pauc}', "");
-    Expect(1, 72440, '\P{^ -Is_Pauc}', "");
-    Expect(0, 72441, '\p{ -Is_Pauc}', "");
-    Expect(1, 72441, '\p{^ -Is_Pauc}', "");
-    Expect(1, 72441, '\P{ -Is_Pauc}', "");
-    Expect(0, 72441, '\P{^ -Is_Pauc}', "");
-    Error('\p{:=Phags_pa}');
-    Error('\P{:=Phags_pa}');
+    Expect(1, 72440, '\p{_IS_pauc}', "");
+    Expect(0, 72440, '\p{^_IS_pauc}', "");
+    Expect(0, 72440, '\P{_IS_pauc}', "");
+    Expect(1, 72440, '\P{^_IS_pauc}', "");
+    Expect(0, 72441, '\p{_IS_pauc}', "");
+    Expect(1, 72441, '\p{^_IS_pauc}', "");
+    Expect(1, 72441, '\P{_IS_pauc}', "");
+    Expect(0, 72441, '\P{^_IS_pauc}', "");
+    Error('\p{_:=Phags_pa}');
+    Error('\P{_:=Phags_pa}');
     Expect(1, 43127, '\p{phagspa}', "");
     Expect(0, 43127, '\p{^phagspa}', "");
     Expect(0, 43127, '\P{phagspa}', "");
@@ -116577,16 +117793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43128, '\p{^phagspa}', "");
     Expect(1, 43128, '\P{phagspa}', "");
     Expect(0, 43128, '\P{^phagspa}', "");
-    Expect(1, 43127, '\p{--phags_Pa}', "");
-    Expect(0, 43127, '\p{^--phags_Pa}', "");
-    Expect(0, 43127, '\P{--phags_Pa}', "");
-    Expect(1, 43127, '\P{^--phags_Pa}', "");
-    Expect(0, 43128, '\p{--phags_Pa}', "");
-    Expect(1, 43128, '\p{^--phags_Pa}', "");
-    Expect(1, 43128, '\P{--phags_Pa}', "");
-    Expect(0, 43128, '\P{^--phags_Pa}', "");
-    Error('\p{_:=is_Phags_pa}');
-    Error('\P{_:=is_Phags_pa}');
+    Expect(1, 43127, '\p{PHAGS_PA}', "");
+    Expect(0, 43127, '\p{^PHAGS_PA}', "");
+    Expect(0, 43127, '\P{PHAGS_PA}', "");
+    Expect(1, 43127, '\P{^PHAGS_PA}', "");
+    Expect(0, 43128, '\p{PHAGS_PA}', "");
+    Expect(1, 43128, '\p{^PHAGS_PA}', "");
+    Expect(1, 43128, '\P{PHAGS_PA}', "");
+    Expect(0, 43128, '\P{^PHAGS_PA}', "");
+    Error('\p{_Is_Phags_pa/a/}');
+    Error('\P{_Is_Phags_pa/a/}');
     Expect(1, 43127, '\p{isphagspa}', "");
     Expect(0, 43127, '\p{^isphagspa}', "");
     Expect(0, 43127, '\P{isphagspa}', "");
@@ -116595,16 +117811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43128, '\p{^isphagspa}', "");
     Expect(1, 43128, '\P{isphagspa}', "");
     Expect(0, 43128, '\P{^isphagspa}', "");
-    Expect(1, 43127, '\p{	-Is_PHAGS_PA}', "");
-    Expect(0, 43127, '\p{^	-Is_PHAGS_PA}', "");
-    Expect(0, 43127, '\P{	-Is_PHAGS_PA}', "");
-    Expect(1, 43127, '\P{^	-Is_PHAGS_PA}', "");
-    Expect(0, 43128, '\p{	-Is_PHAGS_PA}', "");
-    Expect(1, 43128, '\p{^	-Is_PHAGS_PA}', "");
-    Expect(1, 43128, '\P{	-Is_PHAGS_PA}', "");
-    Expect(0, 43128, '\P{^	-Is_PHAGS_PA}', "");
-    Error('\p{ :=phag}');
-    Error('\P{ :=phag}');
+    Expect(1, 43127, '\p{- Is_Phags_Pa}', "");
+    Expect(0, 43127, '\p{^- Is_Phags_Pa}', "");
+    Expect(0, 43127, '\P{- Is_Phags_Pa}', "");
+    Expect(1, 43127, '\P{^- Is_Phags_Pa}', "");
+    Expect(0, 43128, '\p{- Is_Phags_Pa}', "");
+    Expect(1, 43128, '\p{^- Is_Phags_Pa}', "");
+    Expect(1, 43128, '\P{- Is_Phags_Pa}', "");
+    Expect(0, 43128, '\P{^- Is_Phags_Pa}', "");
+    Error('\p{ /a/phag}');
+    Error('\P{ /a/phag}');
     Expect(1, 43127, '\p{phag}', "");
     Expect(0, 43127, '\p{^phag}', "");
     Expect(0, 43127, '\P{phag}', "");
@@ -116613,16 +117829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43128, '\p{^phag}', "");
     Expect(1, 43128, '\P{phag}', "");
     Expect(0, 43128, '\P{^phag}', "");
-    Expect(1, 43127, '\p{ _phag}', "");
-    Expect(0, 43127, '\p{^ _phag}', "");
-    Expect(0, 43127, '\P{ _phag}', "");
-    Expect(1, 43127, '\P{^ _phag}', "");
-    Expect(0, 43128, '\p{ _phag}', "");
-    Expect(1, 43128, '\p{^ _phag}', "");
-    Expect(1, 43128, '\P{ _phag}', "");
-    Expect(0, 43128, '\P{^ _phag}', "");
-    Error('\p{:=- Is_Phag}');
-    Error('\P{:=- Is_Phag}');
+    Expect(1, 43127, '\p{--PHAG}', "");
+    Expect(0, 43127, '\p{^--PHAG}', "");
+    Expect(0, 43127, '\P{--PHAG}', "");
+    Expect(1, 43127, '\P{^--PHAG}', "");
+    Expect(0, 43128, '\p{--PHAG}', "");
+    Expect(1, 43128, '\p{^--PHAG}', "");
+    Expect(1, 43128, '\P{--PHAG}', "");
+    Expect(0, 43128, '\P{^--PHAG}', "");
+    Error('\p{:=_ Is_Phag}');
+    Error('\P{:=_ Is_Phag}');
     Expect(1, 43127, '\p{isphag}', "");
     Expect(0, 43127, '\p{^isphag}', "");
     Expect(0, 43127, '\P{isphag}', "");
@@ -116631,16 +117847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43128, '\p{^isphag}', "");
     Expect(1, 43128, '\P{isphag}', "");
     Expect(0, 43128, '\P{^isphag}', "");
-    Expect(1, 43127, '\p{ 	Is_Phag}', "");
-    Expect(0, 43127, '\p{^ 	Is_Phag}', "");
-    Expect(0, 43127, '\P{ 	Is_Phag}', "");
-    Expect(1, 43127, '\P{^ 	Is_Phag}', "");
-    Expect(0, 43128, '\p{ 	Is_Phag}', "");
-    Expect(1, 43128, '\p{^ 	Is_Phag}', "");
-    Expect(1, 43128, '\P{ 	Is_Phag}', "");
-    Expect(0, 43128, '\P{^ 	Is_Phag}', "");
-    Error('\p{/a/	PHAISTOS_disc}');
-    Error('\P{/a/	PHAISTOS_disc}');
+    Expect(1, 43127, '\p{	is_phag}', "");
+    Expect(0, 43127, '\p{^	is_phag}', "");
+    Expect(0, 43127, '\P{	is_phag}', "");
+    Expect(1, 43127, '\P{^	is_phag}', "");
+    Expect(0, 43128, '\p{	is_phag}', "");
+    Expect(1, 43128, '\p{^	is_phag}', "");
+    Expect(1, 43128, '\P{	is_phag}', "");
+    Expect(0, 43128, '\P{^	is_phag}', "");
+    Error('\p{/a/- Phaistos_Disc}');
+    Error('\P{/a/- Phaistos_Disc}');
     Expect(1, 66047, '\p{phaistosdisc}', "");
     Expect(0, 66047, '\p{^phaistosdisc}', "");
     Expect(0, 66047, '\P{phaistosdisc}', "");
@@ -116649,16 +117865,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66048, '\p{^phaistosdisc}', "");
     Expect(1, 66048, '\P{phaistosdisc}', "");
     Expect(0, 66048, '\P{^phaistosdisc}', "");
-    Expect(1, 66047, '\p{ Phaistos_DISC}', "");
-    Expect(0, 66047, '\p{^ Phaistos_DISC}', "");
-    Expect(0, 66047, '\P{ Phaistos_DISC}', "");
-    Expect(1, 66047, '\P{^ Phaistos_DISC}', "");
-    Expect(0, 66048, '\p{ Phaistos_DISC}', "");
-    Expect(1, 66048, '\p{^ Phaistos_DISC}', "");
-    Expect(1, 66048, '\P{ Phaistos_DISC}', "");
-    Expect(0, 66048, '\P{^ Phaistos_DISC}', "");
-    Error('\p{ /a/IS_PHAISTOS_Disc}');
-    Error('\P{ /a/IS_PHAISTOS_Disc}');
+    Expect(1, 66047, '\p{ phaistos_DISC}', "");
+    Expect(0, 66047, '\p{^ phaistos_DISC}', "");
+    Expect(0, 66047, '\P{ phaistos_DISC}', "");
+    Expect(1, 66047, '\P{^ phaistos_DISC}', "");
+    Expect(0, 66048, '\p{ phaistos_DISC}', "");
+    Expect(1, 66048, '\p{^ phaistos_DISC}', "");
+    Expect(1, 66048, '\P{ phaistos_DISC}', "");
+    Expect(0, 66048, '\P{^ phaistos_DISC}', "");
+    Error('\p{is_PHAISTOS_disc:=}');
+    Error('\P{is_PHAISTOS_disc:=}');
     Expect(1, 66047, '\p{isphaistosdisc}', "");
     Expect(0, 66047, '\p{^isphaistosdisc}', "");
     Expect(0, 66047, '\P{isphaistosdisc}', "");
@@ -116667,16 +117883,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66048, '\p{^isphaistosdisc}', "");
     Expect(1, 66048, '\P{isphaistosdisc}', "");
     Expect(0, 66048, '\P{^isphaistosdisc}', "");
-    Expect(1, 66047, '\p{ is_PHAISTOS_Disc}', "");
-    Expect(0, 66047, '\p{^ is_PHAISTOS_Disc}', "");
-    Expect(0, 66047, '\P{ is_PHAISTOS_Disc}', "");
-    Expect(1, 66047, '\P{^ is_PHAISTOS_Disc}', "");
-    Expect(0, 66048, '\p{ is_PHAISTOS_Disc}', "");
-    Expect(1, 66048, '\p{^ is_PHAISTOS_Disc}', "");
-    Expect(1, 66048, '\P{ is_PHAISTOS_Disc}', "");
-    Expect(0, 66048, '\P{^ is_PHAISTOS_Disc}', "");
-    Error('\p{/a/		In_Phaistos_DISC}');
-    Error('\P{/a/		In_Phaistos_DISC}');
+    Expect(1, 66047, '\p{	IS_PHAISTOS_Disc}', "");
+    Expect(0, 66047, '\p{^	IS_PHAISTOS_Disc}', "");
+    Expect(0, 66047, '\P{	IS_PHAISTOS_Disc}', "");
+    Expect(1, 66047, '\P{^	IS_PHAISTOS_Disc}', "");
+    Expect(0, 66048, '\p{	IS_PHAISTOS_Disc}', "");
+    Expect(1, 66048, '\p{^	IS_PHAISTOS_Disc}', "");
+    Expect(1, 66048, '\P{	IS_PHAISTOS_Disc}', "");
+    Expect(0, 66048, '\P{^	IS_PHAISTOS_Disc}', "");
+    Error('\p{- In_Phaistos_Disc/a/}');
+    Error('\P{- In_Phaistos_Disc/a/}');
     Expect(1, 66047, '\p{inphaistosdisc}', "");
     Expect(0, 66047, '\p{^inphaistosdisc}', "");
     Expect(0, 66047, '\P{inphaistosdisc}', "");
@@ -116685,16 +117901,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66048, '\p{^inphaistosdisc}', "");
     Expect(1, 66048, '\P{inphaistosdisc}', "");
     Expect(0, 66048, '\P{^inphaistosdisc}', "");
-    Expect(1, 66047, '\p{-_In_PHAISTOS_DISC}', "");
-    Expect(0, 66047, '\p{^-_In_PHAISTOS_DISC}', "");
-    Expect(0, 66047, '\P{-_In_PHAISTOS_DISC}', "");
-    Expect(1, 66047, '\P{^-_In_PHAISTOS_DISC}', "");
-    Expect(0, 66048, '\p{-_In_PHAISTOS_DISC}', "");
-    Expect(1, 66048, '\p{^-_In_PHAISTOS_DISC}', "");
-    Expect(1, 66048, '\P{-_In_PHAISTOS_DISC}', "");
-    Expect(0, 66048, '\P{^-_In_PHAISTOS_DISC}', "");
-    Error('\p{:=_	Phaistos}');
-    Error('\P{:=_	Phaistos}');
+    Expect(1, 66047, '\p{  in_PHAISTOS_DISC}', "");
+    Expect(0, 66047, '\p{^  in_PHAISTOS_DISC}', "");
+    Expect(0, 66047, '\P{  in_PHAISTOS_DISC}', "");
+    Expect(1, 66047, '\P{^  in_PHAISTOS_DISC}', "");
+    Expect(0, 66048, '\p{  in_PHAISTOS_DISC}', "");
+    Expect(1, 66048, '\p{^  in_PHAISTOS_DISC}', "");
+    Expect(1, 66048, '\P{  in_PHAISTOS_DISC}', "");
+    Expect(0, 66048, '\P{^  in_PHAISTOS_DISC}', "");
+    Error('\p{:=	 PHAISTOS}');
+    Error('\P{:=	 PHAISTOS}');
     Expect(1, 66047, '\p{phaistos}', "");
     Expect(0, 66047, '\p{^phaistos}', "");
     Expect(0, 66047, '\P{phaistos}', "");
@@ -116703,16 +117919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66048, '\p{^phaistos}', "");
     Expect(1, 66048, '\P{phaistos}', "");
     Expect(0, 66048, '\P{^phaistos}', "");
-    Expect(1, 66047, '\p{_	Phaistos}', "");
-    Expect(0, 66047, '\p{^_	Phaistos}', "");
-    Expect(0, 66047, '\P{_	Phaistos}', "");
-    Expect(1, 66047, '\P{^_	Phaistos}', "");
-    Expect(0, 66048, '\p{_	Phaistos}', "");
-    Expect(1, 66048, '\p{^_	Phaistos}', "");
-    Expect(1, 66048, '\P{_	Phaistos}', "");
-    Expect(0, 66048, '\P{^_	Phaistos}', "");
-    Error('\p{Is_Phaistos:=}');
-    Error('\P{Is_Phaistos:=}');
+    Expect(1, 66047, '\p{- Phaistos}', "");
+    Expect(0, 66047, '\p{^- Phaistos}', "");
+    Expect(0, 66047, '\P{- Phaistos}', "");
+    Expect(1, 66047, '\P{^- Phaistos}', "");
+    Expect(0, 66048, '\p{- Phaistos}', "");
+    Expect(1, 66048, '\p{^- Phaistos}', "");
+    Expect(1, 66048, '\P{- Phaistos}', "");
+    Expect(0, 66048, '\P{^- Phaistos}', "");
+    Error('\p{/a/is_PHAISTOS}');
+    Error('\P{/a/is_PHAISTOS}');
     Expect(1, 66047, '\p{isphaistos}', "");
     Expect(0, 66047, '\p{^isphaistos}', "");
     Expect(0, 66047, '\P{isphaistos}', "");
@@ -116721,16 +117937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66048, '\p{^isphaistos}', "");
     Expect(1, 66048, '\P{isphaistos}', "");
     Expect(0, 66048, '\P{^isphaistos}', "");
-    Expect(1, 66047, '\p{		Is_PHAISTOS}', "");
-    Expect(0, 66047, '\p{^		Is_PHAISTOS}', "");
-    Expect(0, 66047, '\P{		Is_PHAISTOS}', "");
-    Expect(1, 66047, '\P{^		Is_PHAISTOS}', "");
-    Expect(0, 66048, '\p{		Is_PHAISTOS}', "");
-    Expect(1, 66048, '\p{^		Is_PHAISTOS}', "");
-    Expect(1, 66048, '\P{		Is_PHAISTOS}', "");
-    Expect(0, 66048, '\P{^		Is_PHAISTOS}', "");
-    Error('\p{		IN_phaistos:=}');
-    Error('\P{		IN_phaistos:=}');
+    Expect(1, 66047, '\p{- IS_phaistos}', "");
+    Expect(0, 66047, '\p{^- IS_phaistos}', "");
+    Expect(0, 66047, '\P{- IS_phaistos}', "");
+    Expect(1, 66047, '\P{^- IS_phaistos}', "");
+    Expect(0, 66048, '\p{- IS_phaistos}', "");
+    Expect(1, 66048, '\p{^- IS_phaistos}', "");
+    Expect(1, 66048, '\P{- IS_phaistos}', "");
+    Expect(0, 66048, '\P{^- IS_phaistos}', "");
+    Error('\p{/a/	_In_PHAISTOS}');
+    Error('\P{/a/	_In_PHAISTOS}');
     Expect(1, 66047, '\p{inphaistos}', "");
     Expect(0, 66047, '\p{^inphaistos}', "");
     Expect(0, 66047, '\P{inphaistos}', "");
@@ -116739,16 +117955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 66048, '\p{^inphaistos}', "");
     Expect(1, 66048, '\P{inphaistos}', "");
     Expect(0, 66048, '\P{^inphaistos}', "");
-    Expect(1, 66047, '\p{__IN_PHAISTOS}', "");
-    Expect(0, 66047, '\p{^__IN_PHAISTOS}', "");
-    Expect(0, 66047, '\P{__IN_PHAISTOS}', "");
-    Expect(1, 66047, '\P{^__IN_PHAISTOS}', "");
-    Expect(0, 66048, '\p{__IN_PHAISTOS}', "");
-    Expect(1, 66048, '\p{^__IN_PHAISTOS}', "");
-    Expect(1, 66048, '\P{__IN_PHAISTOS}', "");
-    Expect(0, 66048, '\P{^__IN_PHAISTOS}', "");
-    Error('\p{-:=phoenician}');
-    Error('\P{-:=phoenician}');
+    Expect(1, 66047, '\p{_ In_Phaistos}', "");
+    Expect(0, 66047, '\p{^_ In_Phaistos}', "");
+    Expect(0, 66047, '\P{_ In_Phaistos}', "");
+    Expect(1, 66047, '\P{^_ In_Phaistos}', "");
+    Expect(0, 66048, '\p{_ In_Phaistos}', "");
+    Expect(1, 66048, '\p{^_ In_Phaistos}', "");
+    Expect(1, 66048, '\P{_ In_Phaistos}', "");
+    Expect(0, 66048, '\P{^_ In_Phaistos}', "");
+    Error('\p{	Phoenician/a/}');
+    Error('\P{	Phoenician/a/}');
     Expect(1, 67871, '\p{phoenician}', "");
     Expect(0, 67871, '\p{^phoenician}', "");
     Expect(0, 67871, '\P{phoenician}', "");
@@ -116757,16 +117973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67872, '\p{^phoenician}', "");
     Expect(1, 67872, '\P{phoenician}', "");
     Expect(0, 67872, '\P{^phoenician}', "");
-    Expect(1, 67871, '\p{__phoenician}', "");
-    Expect(0, 67871, '\p{^__phoenician}', "");
-    Expect(0, 67871, '\P{__phoenician}', "");
-    Expect(1, 67871, '\P{^__phoenician}', "");
-    Expect(0, 67872, '\p{__phoenician}', "");
-    Expect(1, 67872, '\p{^__phoenician}', "");
-    Expect(1, 67872, '\P{__phoenician}', "");
-    Expect(0, 67872, '\P{^__phoenician}', "");
-    Error('\p{_ IS_Phoenician:=}');
-    Error('\P{_ IS_Phoenician:=}');
+    Expect(1, 67871, '\p{_Phoenician}', "");
+    Expect(0, 67871, '\p{^_Phoenician}', "");
+    Expect(0, 67871, '\P{_Phoenician}', "");
+    Expect(1, 67871, '\P{^_Phoenician}', "");
+    Expect(0, 67872, '\p{_Phoenician}', "");
+    Expect(1, 67872, '\p{^_Phoenician}', "");
+    Expect(1, 67872, '\P{_Phoenician}', "");
+    Expect(0, 67872, '\P{^_Phoenician}', "");
+    Error('\p{-_Is_phoenician/a/}');
+    Error('\P{-_Is_phoenician/a/}');
     Expect(1, 67871, '\p{isphoenician}', "");
     Expect(0, 67871, '\p{^isphoenician}', "");
     Expect(0, 67871, '\P{isphoenician}', "");
@@ -116775,16 +117991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67872, '\p{^isphoenician}', "");
     Expect(1, 67872, '\P{isphoenician}', "");
     Expect(0, 67872, '\P{^isphoenician}', "");
-    Expect(1, 67871, '\p{ IS_Phoenician}', "");
-    Expect(0, 67871, '\p{^ IS_Phoenician}', "");
-    Expect(0, 67871, '\P{ IS_Phoenician}', "");
-    Expect(1, 67871, '\P{^ IS_Phoenician}', "");
-    Expect(0, 67872, '\p{ IS_Phoenician}', "");
-    Expect(1, 67872, '\p{^ IS_Phoenician}', "");
-    Expect(1, 67872, '\P{ IS_Phoenician}', "");
-    Expect(0, 67872, '\P{^ IS_Phoenician}', "");
-    Error('\p{/a/	Phnx}');
-    Error('\P{/a/	Phnx}');
+    Expect(1, 67871, '\p{	_Is_PHOENICIAN}', "");
+    Expect(0, 67871, '\p{^	_Is_PHOENICIAN}', "");
+    Expect(0, 67871, '\P{	_Is_PHOENICIAN}', "");
+    Expect(1, 67871, '\P{^	_Is_PHOENICIAN}', "");
+    Expect(0, 67872, '\p{	_Is_PHOENICIAN}', "");
+    Expect(1, 67872, '\p{^	_Is_PHOENICIAN}', "");
+    Expect(1, 67872, '\P{	_Is_PHOENICIAN}', "");
+    Expect(0, 67872, '\P{^	_Is_PHOENICIAN}', "");
+    Error('\p{:=- PHNX}');
+    Error('\P{:=- PHNX}');
     Expect(1, 67871, '\p{phnx}', "");
     Expect(0, 67871, '\p{^phnx}', "");
     Expect(0, 67871, '\P{phnx}', "");
@@ -116793,16 +118009,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67872, '\p{^phnx}', "");
     Expect(1, 67872, '\P{phnx}', "");
     Expect(0, 67872, '\P{^phnx}', "");
-    Expect(1, 67871, '\p{  Phnx}', "");
-    Expect(0, 67871, '\p{^  Phnx}', "");
-    Expect(0, 67871, '\P{  Phnx}', "");
-    Expect(1, 67871, '\P{^  Phnx}', "");
-    Expect(0, 67872, '\p{  Phnx}', "");
-    Expect(1, 67872, '\p{^  Phnx}', "");
-    Expect(1, 67872, '\P{  Phnx}', "");
-    Expect(0, 67872, '\P{^  Phnx}', "");
-    Error('\p{/a/ _Is_phnx}');
-    Error('\P{/a/ _Is_phnx}');
+    Expect(1, 67871, '\p{_	Phnx}', "");
+    Expect(0, 67871, '\p{^_	Phnx}', "");
+    Expect(0, 67871, '\P{_	Phnx}', "");
+    Expect(1, 67871, '\P{^_	Phnx}', "");
+    Expect(0, 67872, '\p{_	Phnx}', "");
+    Expect(1, 67872, '\p{^_	Phnx}', "");
+    Expect(1, 67872, '\P{_	Phnx}', "");
+    Expect(0, 67872, '\P{^_	Phnx}', "");
+    Error('\p{ :=Is_phnx}');
+    Error('\P{ :=Is_phnx}');
     Expect(1, 67871, '\p{isphnx}', "");
     Expect(0, 67871, '\p{^isphnx}', "");
     Expect(0, 67871, '\P{isphnx}', "");
@@ -116811,16 +118027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 67872, '\p{^isphnx}', "");
     Expect(1, 67872, '\P{isphnx}', "");
     Expect(0, 67872, '\P{^isphnx}', "");
-    Expect(1, 67871, '\p{-is_PHNX}', "");
-    Expect(0, 67871, '\p{^-is_PHNX}', "");
-    Expect(0, 67871, '\P{-is_PHNX}', "");
-    Expect(1, 67871, '\P{^-is_PHNX}', "");
-    Expect(0, 67872, '\p{-is_PHNX}', "");
-    Expect(1, 67872, '\p{^-is_PHNX}', "");
-    Expect(1, 67872, '\P{-is_PHNX}', "");
-    Expect(0, 67872, '\P{^-is_PHNX}', "");
-    Error('\p{_phonetic_EXTENSIONS/a/}');
-    Error('\P{_phonetic_EXTENSIONS/a/}');
+    Expect(1, 67871, '\p{_-IS_PHNX}', "");
+    Expect(0, 67871, '\p{^_-IS_PHNX}', "");
+    Expect(0, 67871, '\P{_-IS_PHNX}', "");
+    Expect(1, 67871, '\P{^_-IS_PHNX}', "");
+    Expect(0, 67872, '\p{_-IS_PHNX}', "");
+    Expect(1, 67872, '\p{^_-IS_PHNX}', "");
+    Expect(1, 67872, '\P{_-IS_PHNX}', "");
+    Expect(0, 67872, '\P{^_-IS_PHNX}', "");
+    Error('\p{/a/PHONETIC_Extensions}');
+    Error('\P{/a/PHONETIC_Extensions}');
     Expect(1, 7551, '\p{phoneticextensions}', "");
     Expect(0, 7551, '\p{^phoneticextensions}', "");
     Expect(0, 7551, '\P{phoneticextensions}', "");
@@ -116829,16 +118045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7552, '\p{^phoneticextensions}', "");
     Expect(1, 7552, '\P{phoneticextensions}', "");
     Expect(0, 7552, '\P{^phoneticextensions}', "");
-    Expect(1, 7551, '\p{	-PHONETIC_extensions}', "");
-    Expect(0, 7551, '\p{^	-PHONETIC_extensions}', "");
-    Expect(0, 7551, '\P{	-PHONETIC_extensions}', "");
-    Expect(1, 7551, '\P{^	-PHONETIC_extensions}', "");
-    Expect(0, 7552, '\p{	-PHONETIC_extensions}', "");
-    Expect(1, 7552, '\p{^	-PHONETIC_extensions}', "");
-    Expect(1, 7552, '\P{	-PHONETIC_extensions}', "");
-    Expect(0, 7552, '\P{^	-PHONETIC_extensions}', "");
-    Error('\p{ -Is_Phonetic_Extensions:=}');
-    Error('\P{ -Is_Phonetic_Extensions:=}');
+    Expect(1, 7551, '\p{ -Phonetic_Extensions}', "");
+    Expect(0, 7551, '\p{^ -Phonetic_Extensions}', "");
+    Expect(0, 7551, '\P{ -Phonetic_Extensions}', "");
+    Expect(1, 7551, '\P{^ -Phonetic_Extensions}', "");
+    Expect(0, 7552, '\p{ -Phonetic_Extensions}', "");
+    Expect(1, 7552, '\p{^ -Phonetic_Extensions}', "");
+    Expect(1, 7552, '\P{ -Phonetic_Extensions}', "");
+    Expect(0, 7552, '\P{^ -Phonetic_Extensions}', "");
+    Error('\p{-/a/is_Phonetic_extensions}');
+    Error('\P{-/a/is_Phonetic_extensions}');
     Expect(1, 7551, '\p{isphoneticextensions}', "");
     Expect(0, 7551, '\p{^isphoneticextensions}', "");
     Expect(0, 7551, '\P{isphoneticextensions}', "");
@@ -116847,16 +118063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7552, '\p{^isphoneticextensions}', "");
     Expect(1, 7552, '\P{isphoneticextensions}', "");
     Expect(0, 7552, '\P{^isphoneticextensions}', "");
-    Expect(1, 7551, '\p{_ IS_Phonetic_Extensions}', "");
-    Expect(0, 7551, '\p{^_ IS_Phonetic_Extensions}', "");
-    Expect(0, 7551, '\P{_ IS_Phonetic_Extensions}', "");
-    Expect(1, 7551, '\P{^_ IS_Phonetic_Extensions}', "");
-    Expect(0, 7552, '\p{_ IS_Phonetic_Extensions}', "");
-    Expect(1, 7552, '\p{^_ IS_Phonetic_Extensions}', "");
-    Expect(1, 7552, '\P{_ IS_Phonetic_Extensions}', "");
-    Expect(0, 7552, '\P{^_ IS_Phonetic_Extensions}', "");
-    Error('\p{/a/__in_phonetic_Extensions}');
-    Error('\P{/a/__in_phonetic_Extensions}');
+    Expect(1, 7551, '\p{	Is_Phonetic_Extensions}', "");
+    Expect(0, 7551, '\p{^	Is_Phonetic_Extensions}', "");
+    Expect(0, 7551, '\P{	Is_Phonetic_Extensions}', "");
+    Expect(1, 7551, '\P{^	Is_Phonetic_Extensions}', "");
+    Expect(0, 7552, '\p{	Is_Phonetic_Extensions}', "");
+    Expect(1, 7552, '\p{^	Is_Phonetic_Extensions}', "");
+    Expect(1, 7552, '\P{	Is_Phonetic_Extensions}', "");
+    Expect(0, 7552, '\P{^	Is_Phonetic_Extensions}', "");
+    Error('\p{/a/- IN_Phonetic_Extensions}');
+    Error('\P{/a/- IN_Phonetic_Extensions}');
     Expect(1, 7551, '\p{inphoneticextensions}', "");
     Expect(0, 7551, '\p{^inphoneticextensions}', "");
     Expect(0, 7551, '\P{inphoneticextensions}', "");
@@ -116865,16 +118081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7552, '\p{^inphoneticextensions}', "");
     Expect(1, 7552, '\P{inphoneticextensions}', "");
     Expect(0, 7552, '\P{^inphoneticextensions}', "");
-    Expect(1, 7551, '\p{ 	In_Phonetic_Extensions}', "");
-    Expect(0, 7551, '\p{^ 	In_Phonetic_Extensions}', "");
-    Expect(0, 7551, '\P{ 	In_Phonetic_Extensions}', "");
-    Expect(1, 7551, '\P{^ 	In_Phonetic_Extensions}', "");
-    Expect(0, 7552, '\p{ 	In_Phonetic_Extensions}', "");
-    Expect(1, 7552, '\p{^ 	In_Phonetic_Extensions}', "");
-    Expect(1, 7552, '\P{ 	In_Phonetic_Extensions}', "");
-    Expect(0, 7552, '\P{^ 	In_Phonetic_Extensions}', "");
-    Error('\p{	PHONETIC_EXT/a/}');
-    Error('\P{	PHONETIC_EXT/a/}');
+    Expect(1, 7551, '\p{_In_PHONETIC_EXTENSIONS}', "");
+    Expect(0, 7551, '\p{^_In_PHONETIC_EXTENSIONS}', "");
+    Expect(0, 7551, '\P{_In_PHONETIC_EXTENSIONS}', "");
+    Expect(1, 7551, '\P{^_In_PHONETIC_EXTENSIONS}', "");
+    Expect(0, 7552, '\p{_In_PHONETIC_EXTENSIONS}', "");
+    Expect(1, 7552, '\p{^_In_PHONETIC_EXTENSIONS}', "");
+    Expect(1, 7552, '\P{_In_PHONETIC_EXTENSIONS}', "");
+    Expect(0, 7552, '\P{^_In_PHONETIC_EXTENSIONS}', "");
+    Error('\p{	/a/Phonetic_Ext}');
+    Error('\P{	/a/Phonetic_Ext}');
     Expect(1, 7551, '\p{phoneticext}', "");
     Expect(0, 7551, '\p{^phoneticext}', "");
     Expect(0, 7551, '\P{phoneticext}', "");
@@ -116883,16 +118099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7552, '\p{^phoneticext}', "");
     Expect(1, 7552, '\P{phoneticext}', "");
     Expect(0, 7552, '\P{^phoneticext}', "");
-    Expect(1, 7551, '\p{ _phonetic_EXT}', "");
-    Expect(0, 7551, '\p{^ _phonetic_EXT}', "");
-    Expect(0, 7551, '\P{ _phonetic_EXT}', "");
-    Expect(1, 7551, '\P{^ _phonetic_EXT}', "");
-    Expect(0, 7552, '\p{ _phonetic_EXT}', "");
-    Expect(1, 7552, '\p{^ _phonetic_EXT}', "");
-    Expect(1, 7552, '\P{ _phonetic_EXT}', "");
-    Expect(0, 7552, '\P{^ _phonetic_EXT}', "");
-    Error('\p{is_Phonetic_Ext/a/}');
-    Error('\P{is_Phonetic_Ext/a/}');
+    Expect(1, 7551, '\p{  Phonetic_EXT}', "");
+    Expect(0, 7551, '\p{^  Phonetic_EXT}', "");
+    Expect(0, 7551, '\P{  Phonetic_EXT}', "");
+    Expect(1, 7551, '\P{^  Phonetic_EXT}', "");
+    Expect(0, 7552, '\p{  Phonetic_EXT}', "");
+    Expect(1, 7552, '\p{^  Phonetic_EXT}', "");
+    Expect(1, 7552, '\P{  Phonetic_EXT}', "");
+    Expect(0, 7552, '\P{^  Phonetic_EXT}', "");
+    Error('\p{/a/	Is_PHONETIC_Ext}');
+    Error('\P{/a/	Is_PHONETIC_Ext}');
     Expect(1, 7551, '\p{isphoneticext}', "");
     Expect(0, 7551, '\p{^isphoneticext}', "");
     Expect(0, 7551, '\P{isphoneticext}', "");
@@ -116901,16 +118117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7552, '\p{^isphoneticext}', "");
     Expect(1, 7552, '\P{isphoneticext}', "");
     Expect(0, 7552, '\P{^isphoneticext}', "");
-    Expect(1, 7551, '\p{	_is_Phonetic_Ext}', "");
-    Expect(0, 7551, '\p{^	_is_Phonetic_Ext}', "");
-    Expect(0, 7551, '\P{	_is_Phonetic_Ext}', "");
-    Expect(1, 7551, '\P{^	_is_Phonetic_Ext}', "");
-    Expect(0, 7552, '\p{	_is_Phonetic_Ext}', "");
-    Expect(1, 7552, '\p{^	_is_Phonetic_Ext}', "");
-    Expect(1, 7552, '\P{	_is_Phonetic_Ext}', "");
-    Expect(0, 7552, '\P{^	_is_Phonetic_Ext}', "");
-    Error('\p{/a/	_In_Phonetic_Ext}');
-    Error('\P{/a/	_In_Phonetic_Ext}');
+    Expect(1, 7551, '\p{--is_Phonetic_Ext}', "");
+    Expect(0, 7551, '\p{^--is_Phonetic_Ext}', "");
+    Expect(0, 7551, '\P{--is_Phonetic_Ext}', "");
+    Expect(1, 7551, '\P{^--is_Phonetic_Ext}', "");
+    Expect(0, 7552, '\p{--is_Phonetic_Ext}', "");
+    Expect(1, 7552, '\p{^--is_Phonetic_Ext}', "");
+    Expect(1, 7552, '\P{--is_Phonetic_Ext}', "");
+    Expect(0, 7552, '\P{^--is_Phonetic_Ext}', "");
+    Error('\p{ :=IN_phonetic_EXT}');
+    Error('\P{ :=IN_phonetic_EXT}');
     Expect(1, 7551, '\p{inphoneticext}', "");
     Expect(0, 7551, '\p{^inphoneticext}', "");
     Expect(0, 7551, '\P{inphoneticext}', "");
@@ -116919,16 +118135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7552, '\p{^inphoneticext}', "");
     Expect(1, 7552, '\P{inphoneticext}', "");
     Expect(0, 7552, '\P{^inphoneticext}', "");
-    Expect(1, 7551, '\p{_In_PHONETIC_EXT}', "");
-    Expect(0, 7551, '\p{^_In_PHONETIC_EXT}', "");
-    Expect(0, 7551, '\P{_In_PHONETIC_EXT}', "");
-    Expect(1, 7551, '\P{^_In_PHONETIC_EXT}', "");
-    Expect(0, 7552, '\p{_In_PHONETIC_EXT}', "");
-    Expect(1, 7552, '\p{^_In_PHONETIC_EXT}', "");
-    Expect(1, 7552, '\P{_In_PHONETIC_EXT}', "");
-    Expect(0, 7552, '\P{^_In_PHONETIC_EXT}', "");
-    Error('\p{ /a/phonetic_EXTENSIONS_SUPPLEMENT}');
-    Error('\P{ /a/phonetic_EXTENSIONS_SUPPLEMENT}');
+    Expect(1, 7551, '\p{_ IN_phonetic_Ext}', "");
+    Expect(0, 7551, '\p{^_ IN_phonetic_Ext}', "");
+    Expect(0, 7551, '\P{_ IN_phonetic_Ext}', "");
+    Expect(1, 7551, '\P{^_ IN_phonetic_Ext}', "");
+    Expect(0, 7552, '\p{_ IN_phonetic_Ext}', "");
+    Expect(1, 7552, '\p{^_ IN_phonetic_Ext}', "");
+    Expect(1, 7552, '\P{_ IN_phonetic_Ext}', "");
+    Expect(0, 7552, '\P{^_ IN_phonetic_Ext}', "");
+    Error('\p{/a/_	Phonetic_EXTENSIONS_Supplement}');
+    Error('\P{/a/_	Phonetic_EXTENSIONS_Supplement}');
     Expect(1, 7615, '\p{phoneticextensionssupplement}', "");
     Expect(0, 7615, '\p{^phoneticextensionssupplement}', "");
     Expect(0, 7615, '\P{phoneticextensionssupplement}', "");
@@ -116937,16 +118153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7616, '\p{^phoneticextensionssupplement}', "");
     Expect(1, 7616, '\P{phoneticextensionssupplement}', "");
     Expect(0, 7616, '\P{^phoneticextensionssupplement}', "");
-    Expect(1, 7615, '\p{_	Phonetic_extensions_Supplement}', "");
-    Expect(0, 7615, '\p{^_	Phonetic_extensions_Supplement}', "");
-    Expect(0, 7615, '\P{_	Phonetic_extensions_Supplement}', "");
-    Expect(1, 7615, '\P{^_	Phonetic_extensions_Supplement}', "");
-    Expect(0, 7616, '\p{_	Phonetic_extensions_Supplement}', "");
-    Expect(1, 7616, '\p{^_	Phonetic_extensions_Supplement}', "");
-    Expect(1, 7616, '\P{_	Phonetic_extensions_Supplement}', "");
-    Expect(0, 7616, '\P{^_	Phonetic_extensions_Supplement}', "");
-    Error('\p{	:=is_phonetic_Extensions_Supplement}');
-    Error('\P{	:=is_phonetic_Extensions_Supplement}');
+    Expect(1, 7615, '\p{	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(0, 7615, '\p{^	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(0, 7615, '\P{	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(1, 7615, '\P{^	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(0, 7616, '\p{	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(1, 7616, '\p{^	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(1, 7616, '\P{	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Expect(0, 7616, '\P{^	_PHONETIC_extensions_SUPPLEMENT}', "");
+    Error('\p{_-IS_Phonetic_Extensions_Supplement/a/}');
+    Error('\P{_-IS_Phonetic_Extensions_Supplement/a/}');
     Expect(1, 7615, '\p{isphoneticextensionssupplement}', "");
     Expect(0, 7615, '\p{^isphoneticextensionssupplement}', "");
     Expect(0, 7615, '\P{isphoneticextensionssupplement}', "");
@@ -116955,16 +118171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7616, '\p{^isphoneticextensionssupplement}', "");
     Expect(1, 7616, '\P{isphoneticextensionssupplement}', "");
     Expect(0, 7616, '\P{^isphoneticextensionssupplement}', "");
-    Expect(1, 7615, '\p{	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(0, 7615, '\p{^	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(0, 7615, '\P{	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(1, 7615, '\P{^	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(0, 7616, '\p{	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(1, 7616, '\p{^	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(1, 7616, '\P{	_IS_phonetic_Extensions_Supplement}', "");
-    Expect(0, 7616, '\P{^	_IS_phonetic_Extensions_Supplement}', "");
-    Error('\p{		In_Phonetic_Extensions_supplement:=}');
-    Error('\P{		In_Phonetic_Extensions_supplement:=}');
+    Expect(1, 7615, '\p{_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(0, 7615, '\p{^_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(0, 7615, '\P{_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(1, 7615, '\P{^_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(0, 7616, '\p{_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(1, 7616, '\p{^_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(1, 7616, '\P{_-is_Phonetic_Extensions_Supplement}', "");
+    Expect(0, 7616, '\P{^_-is_Phonetic_Extensions_Supplement}', "");
+    Error('\p{_	In_Phonetic_extensions_Supplement:=}');
+    Error('\P{_	In_Phonetic_extensions_Supplement:=}');
     Expect(1, 7615, '\p{inphoneticextensionssupplement}', "");
     Expect(0, 7615, '\p{^inphoneticextensionssupplement}', "");
     Expect(0, 7615, '\P{inphoneticextensionssupplement}', "");
@@ -116973,16 +118189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7616, '\p{^inphoneticextensionssupplement}', "");
     Expect(1, 7616, '\P{inphoneticextensionssupplement}', "");
     Expect(0, 7616, '\P{^inphoneticextensionssupplement}', "");
-    Expect(1, 7615, '\p{	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(0, 7615, '\p{^	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(0, 7615, '\P{	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(1, 7615, '\P{^	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(0, 7616, '\p{	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(1, 7616, '\p{^	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(1, 7616, '\P{	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Expect(0, 7616, '\P{^	_IN_Phonetic_EXTENSIONS_Supplement}', "");
-    Error('\p{	 Phonetic_ext_SUP:=}');
-    Error('\P{	 Phonetic_ext_SUP:=}');
+    Expect(1, 7615, '\p{ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(0, 7615, '\p{^ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(0, 7615, '\P{ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(1, 7615, '\P{^ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(0, 7616, '\p{ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(1, 7616, '\p{^ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(1, 7616, '\P{ -in_phonetic_EXTENSIONS_supplement}', "");
+    Expect(0, 7616, '\P{^ -in_phonetic_EXTENSIONS_supplement}', "");
+    Error('\p{	/a/PHONETIC_Ext_Sup}');
+    Error('\P{	/a/PHONETIC_Ext_Sup}');
     Expect(1, 7615, '\p{phoneticextsup}', "");
     Expect(0, 7615, '\p{^phoneticextsup}', "");
     Expect(0, 7615, '\P{phoneticextsup}', "");
@@ -116991,16 +118207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7616, '\p{^phoneticextsup}', "");
     Expect(1, 7616, '\P{phoneticextsup}', "");
     Expect(0, 7616, '\P{^phoneticextsup}', "");
-    Expect(1, 7615, '\p{ -Phonetic_EXT_sup}', "");
-    Expect(0, 7615, '\p{^ -Phonetic_EXT_sup}', "");
-    Expect(0, 7615, '\P{ -Phonetic_EXT_sup}', "");
-    Expect(1, 7615, '\P{^ -Phonetic_EXT_sup}', "");
-    Expect(0, 7616, '\p{ -Phonetic_EXT_sup}', "");
-    Expect(1, 7616, '\p{^ -Phonetic_EXT_sup}', "");
-    Expect(1, 7616, '\P{ -Phonetic_EXT_sup}', "");
-    Expect(0, 7616, '\P{^ -Phonetic_EXT_sup}', "");
-    Error('\p{_-is_Phonetic_Ext_Sup/a/}');
-    Error('\P{_-is_Phonetic_Ext_Sup/a/}');
+    Expect(1, 7615, '\p{	phonetic_EXT_SUP}', "");
+    Expect(0, 7615, '\p{^	phonetic_EXT_SUP}', "");
+    Expect(0, 7615, '\P{	phonetic_EXT_SUP}', "");
+    Expect(1, 7615, '\P{^	phonetic_EXT_SUP}', "");
+    Expect(0, 7616, '\p{	phonetic_EXT_SUP}', "");
+    Expect(1, 7616, '\p{^	phonetic_EXT_SUP}', "");
+    Expect(1, 7616, '\P{	phonetic_EXT_SUP}', "");
+    Expect(0, 7616, '\P{^	phonetic_EXT_SUP}', "");
+    Error('\p{_:=Is_PHONETIC_Ext_SUP}');
+    Error('\P{_:=Is_PHONETIC_Ext_SUP}');
     Expect(1, 7615, '\p{isphoneticextsup}', "");
     Expect(0, 7615, '\p{^isphoneticextsup}', "");
     Expect(0, 7615, '\P{isphoneticextsup}', "");
@@ -117009,16 +118225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7616, '\p{^isphoneticextsup}', "");
     Expect(1, 7616, '\P{isphoneticextsup}', "");
     Expect(0, 7616, '\P{^isphoneticextsup}', "");
-    Expect(1, 7615, '\p{ -is_PHONETIC_EXT_SUP}', "");
-    Expect(0, 7615, '\p{^ -is_PHONETIC_EXT_SUP}', "");
-    Expect(0, 7615, '\P{ -is_PHONETIC_EXT_SUP}', "");
-    Expect(1, 7615, '\P{^ -is_PHONETIC_EXT_SUP}', "");
-    Expect(0, 7616, '\p{ -is_PHONETIC_EXT_SUP}', "");
-    Expect(1, 7616, '\p{^ -is_PHONETIC_EXT_SUP}', "");
-    Expect(1, 7616, '\P{ -is_PHONETIC_EXT_SUP}', "");
-    Expect(0, 7616, '\P{^ -is_PHONETIC_EXT_SUP}', "");
-    Error('\p{--In_Phonetic_Ext_sup/a/}');
-    Error('\P{--In_Phonetic_Ext_sup/a/}');
+    Expect(1, 7615, '\p{ -IS_phonetic_Ext_sup}', "");
+    Expect(0, 7615, '\p{^ -IS_phonetic_Ext_sup}', "");
+    Expect(0, 7615, '\P{ -IS_phonetic_Ext_sup}', "");
+    Expect(1, 7615, '\P{^ -IS_phonetic_Ext_sup}', "");
+    Expect(0, 7616, '\p{ -IS_phonetic_Ext_sup}', "");
+    Expect(1, 7616, '\p{^ -IS_phonetic_Ext_sup}', "");
+    Expect(1, 7616, '\P{ -IS_phonetic_Ext_sup}', "");
+    Expect(0, 7616, '\P{^ -IS_phonetic_Ext_sup}', "");
+    Error('\p{ In_Phonetic_ext_SUP:=}');
+    Error('\P{ In_Phonetic_ext_SUP:=}');
     Expect(1, 7615, '\p{inphoneticextsup}', "");
     Expect(0, 7615, '\p{^inphoneticextsup}', "");
     Expect(0, 7615, '\P{inphoneticextsup}', "");
@@ -117027,16 +118243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 7616, '\p{^inphoneticextsup}', "");
     Expect(1, 7616, '\P{inphoneticextsup}', "");
     Expect(0, 7616, '\P{^inphoneticextsup}', "");
-    Expect(1, 7615, '\p{- In_PHONETIC_Ext_sup}', "");
-    Expect(0, 7615, '\p{^- In_PHONETIC_Ext_sup}', "");
-    Expect(0, 7615, '\P{- In_PHONETIC_Ext_sup}', "");
-    Expect(1, 7615, '\P{^- In_PHONETIC_Ext_sup}', "");
-    Expect(0, 7616, '\p{- In_PHONETIC_Ext_sup}', "");
-    Expect(1, 7616, '\p{^- In_PHONETIC_Ext_sup}', "");
-    Expect(1, 7616, '\P{- In_PHONETIC_Ext_sup}', "");
-    Expect(0, 7616, '\P{^- In_PHONETIC_Ext_sup}', "");
-    Error('\p{/a/_Playing_Cards}');
-    Error('\P{/a/_Playing_Cards}');
+    Expect(1, 7615, '\p{-_IN_Phonetic_EXT_SUP}', "");
+    Expect(0, 7615, '\p{^-_IN_Phonetic_EXT_SUP}', "");
+    Expect(0, 7615, '\P{-_IN_Phonetic_EXT_SUP}', "");
+    Expect(1, 7615, '\P{^-_IN_Phonetic_EXT_SUP}', "");
+    Expect(0, 7616, '\p{-_IN_Phonetic_EXT_SUP}', "");
+    Expect(1, 7616, '\p{^-_IN_Phonetic_EXT_SUP}', "");
+    Expect(1, 7616, '\P{-_IN_Phonetic_EXT_SUP}', "");
+    Expect(0, 7616, '\P{^-_IN_Phonetic_EXT_SUP}', "");
+    Error('\p{_Playing_CARDS:=}');
+    Error('\P{_Playing_CARDS:=}');
     Expect(1, 127231, '\p{playingcards}', "");
     Expect(0, 127231, '\p{^playingcards}', "");
     Expect(0, 127231, '\P{playingcards}', "");
@@ -117045,16 +118261,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127232, '\p{^playingcards}', "");
     Expect(1, 127232, '\P{playingcards}', "");
     Expect(0, 127232, '\P{^playingcards}', "");
-    Expect(1, 127231, '\p{-Playing_cards}', "");
-    Expect(0, 127231, '\p{^-Playing_cards}', "");
-    Expect(0, 127231, '\P{-Playing_cards}', "");
-    Expect(1, 127231, '\P{^-Playing_cards}', "");
-    Expect(0, 127232, '\p{-Playing_cards}', "");
-    Expect(1, 127232, '\p{^-Playing_cards}', "");
-    Expect(1, 127232, '\P{-Playing_cards}', "");
-    Expect(0, 127232, '\P{^-Playing_cards}', "");
-    Error('\p{- Is_playing_cards/a/}');
-    Error('\P{- Is_playing_cards/a/}');
+    Expect(1, 127231, '\p{- Playing_Cards}', "");
+    Expect(0, 127231, '\p{^- Playing_Cards}', "");
+    Expect(0, 127231, '\P{- Playing_Cards}', "");
+    Expect(1, 127231, '\P{^- Playing_Cards}', "");
+    Expect(0, 127232, '\p{- Playing_Cards}', "");
+    Expect(1, 127232, '\p{^- Playing_Cards}', "");
+    Expect(1, 127232, '\P{- Playing_Cards}', "");
+    Expect(0, 127232, '\P{^- Playing_Cards}', "");
+    Error('\p{_/a/is_playing_CARDS}');
+    Error('\P{_/a/is_playing_CARDS}');
     Expect(1, 127231, '\p{isplayingcards}', "");
     Expect(0, 127231, '\p{^isplayingcards}', "");
     Expect(0, 127231, '\P{isplayingcards}', "");
@@ -117063,16 +118279,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127232, '\p{^isplayingcards}', "");
     Expect(1, 127232, '\P{isplayingcards}', "");
     Expect(0, 127232, '\P{^isplayingcards}', "");
-    Expect(1, 127231, '\p{__is_Playing_Cards}', "");
-    Expect(0, 127231, '\p{^__is_Playing_Cards}', "");
-    Expect(0, 127231, '\P{__is_Playing_Cards}', "");
-    Expect(1, 127231, '\P{^__is_Playing_Cards}', "");
-    Expect(0, 127232, '\p{__is_Playing_Cards}', "");
-    Expect(1, 127232, '\p{^__is_Playing_Cards}', "");
-    Expect(1, 127232, '\P{__is_Playing_Cards}', "");
-    Expect(0, 127232, '\P{^__is_Playing_Cards}', "");
-    Error('\p{:= IN_PLAYING_CARDS}');
-    Error('\P{:= IN_PLAYING_CARDS}');
+    Expect(1, 127231, '\p{-	IS_playing_Cards}', "");
+    Expect(0, 127231, '\p{^-	IS_playing_Cards}', "");
+    Expect(0, 127231, '\P{-	IS_playing_Cards}', "");
+    Expect(1, 127231, '\P{^-	IS_playing_Cards}', "");
+    Expect(0, 127232, '\p{-	IS_playing_Cards}', "");
+    Expect(1, 127232, '\p{^-	IS_playing_Cards}', "");
+    Expect(1, 127232, '\P{-	IS_playing_Cards}', "");
+    Expect(0, 127232, '\P{^-	IS_playing_Cards}', "");
+    Error('\p{ _IN_playing_Cards/a/}');
+    Error('\P{ _IN_playing_Cards/a/}');
     Expect(1, 127231, '\p{inplayingcards}', "");
     Expect(0, 127231, '\p{^inplayingcards}', "");
     Expect(0, 127231, '\P{inplayingcards}', "");
@@ -117081,16 +118297,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127232, '\p{^inplayingcards}', "");
     Expect(1, 127232, '\P{inplayingcards}', "");
     Expect(0, 127232, '\P{^inplayingcards}', "");
-    Expect(1, 127231, '\p{--IN_Playing_Cards}', "");
-    Expect(0, 127231, '\p{^--IN_Playing_Cards}', "");
-    Expect(0, 127231, '\P{--IN_Playing_Cards}', "");
-    Expect(1, 127231, '\P{^--IN_Playing_Cards}', "");
-    Expect(0, 127232, '\p{--IN_Playing_Cards}', "");
-    Expect(1, 127232, '\p{^--IN_Playing_Cards}', "");
-    Expect(1, 127232, '\P{--IN_Playing_Cards}', "");
-    Expect(0, 127232, '\P{^--IN_Playing_Cards}', "");
-    Error('\p{:=-_posixalnum}');
-    Error('\P{:=-_posixalnum}');
+    Expect(1, 127231, '\p{	_In_Playing_cards}', "");
+    Expect(0, 127231, '\p{^	_In_Playing_cards}', "");
+    Expect(0, 127231, '\P{	_In_Playing_cards}', "");
+    Expect(1, 127231, '\P{^	_In_Playing_cards}', "");
+    Expect(0, 127232, '\p{	_In_Playing_cards}', "");
+    Expect(1, 127232, '\p{^	_In_Playing_cards}', "");
+    Expect(1, 127232, '\P{	_In_Playing_cards}', "");
+    Expect(0, 127232, '\P{^	_In_Playing_cards}', "");
+    Error('\p{/a/	-POSIXALNUM}');
+    Error('\P{/a/	-POSIXALNUM}');
     Expect(1, 122, '\p{posixalnum}', "");
     Expect(0, 122, '\p{^posixalnum}', "");
     Expect(0, 122, '\P{posixalnum}', "");
@@ -117099,16 +118315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^posixalnum}', "");
     Expect(1, 123, '\P{posixalnum}', "");
     Expect(0, 123, '\P{^posixalnum}', "");
-    Expect(1, 122, '\p{-PosixAlnum}', "");
-    Expect(0, 122, '\p{^-PosixAlnum}', "");
-    Expect(0, 122, '\P{-PosixAlnum}', "");
-    Expect(1, 122, '\P{^-PosixAlnum}', "");
-    Expect(0, 123, '\p{-PosixAlnum}', "");
-    Expect(1, 123, '\p{^-PosixAlnum}', "");
-    Expect(1, 123, '\P{-PosixAlnum}', "");
-    Expect(0, 123, '\P{^-PosixAlnum}', "");
-    Error('\p{/a/_Is_PosixAlnum}');
-    Error('\P{/a/_Is_PosixAlnum}');
+    Expect(1, 122, '\p{	PosixAlnum}', "");
+    Expect(0, 122, '\p{^	PosixAlnum}', "");
+    Expect(0, 122, '\P{	PosixAlnum}', "");
+    Expect(1, 122, '\P{^	PosixAlnum}', "");
+    Expect(0, 123, '\p{	PosixAlnum}', "");
+    Expect(1, 123, '\p{^	PosixAlnum}', "");
+    Expect(1, 123, '\P{	PosixAlnum}', "");
+    Expect(0, 123, '\P{^	PosixAlnum}', "");
+    Error('\p{-IS_posixalnum:=}');
+    Error('\P{-IS_posixalnum:=}');
     Expect(1, 122, '\p{isposixalnum}', "");
     Expect(0, 122, '\p{^isposixalnum}', "");
     Expect(0, 122, '\P{isposixalnum}', "");
@@ -117117,16 +118333,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^isposixalnum}', "");
     Expect(1, 123, '\P{isposixalnum}', "");
     Expect(0, 123, '\P{^isposixalnum}', "");
-    Expect(1, 122, '\p{ IS_POSIXALNUM}', "");
-    Expect(0, 122, '\p{^ IS_POSIXALNUM}', "");
-    Expect(0, 122, '\P{ IS_POSIXALNUM}', "");
-    Expect(1, 122, '\P{^ IS_POSIXALNUM}', "");
-    Expect(0, 123, '\p{ IS_POSIXALNUM}', "");
-    Expect(1, 123, '\p{^ IS_POSIXALNUM}', "");
-    Expect(1, 123, '\P{ IS_POSIXALNUM}', "");
-    Expect(0, 123, '\P{^ IS_POSIXALNUM}', "");
-    Error('\p{/a/-POSIXALPHA}');
-    Error('\P{/a/-POSIXALPHA}');
+    Expect(1, 122, '\p{		Is_POSIXALNUM}', "");
+    Expect(0, 122, '\p{^		Is_POSIXALNUM}', "");
+    Expect(0, 122, '\P{		Is_POSIXALNUM}', "");
+    Expect(1, 122, '\P{^		Is_POSIXALNUM}', "");
+    Expect(0, 123, '\p{		Is_POSIXALNUM}', "");
+    Expect(1, 123, '\p{^		Is_POSIXALNUM}', "");
+    Expect(1, 123, '\P{		Is_POSIXALNUM}', "");
+    Expect(0, 123, '\P{^		Is_POSIXALNUM}', "");
+    Error('\p{__posixalpha:=}');
+    Error('\P{__posixalpha:=}');
     Expect(1, 122, '\p{posixalpha}', "");
     Expect(0, 122, '\p{^posixalpha}', "");
     Expect(0, 122, '\P{posixalpha}', "");
@@ -117135,16 +118351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^posixalpha}', "");
     Expect(1, 123, '\P{posixalpha}', "");
     Expect(0, 123, '\P{^posixalpha}', "");
-    Expect(1, 122, '\p{-posixalpha}', "");
-    Expect(0, 122, '\p{^-posixalpha}', "");
-    Expect(0, 122, '\P{-posixalpha}', "");
-    Expect(1, 122, '\P{^-posixalpha}', "");
-    Expect(0, 123, '\p{-posixalpha}', "");
-    Expect(1, 123, '\p{^-posixalpha}', "");
-    Expect(1, 123, '\P{-posixalpha}', "");
-    Expect(0, 123, '\P{^-posixalpha}', "");
-    Error('\p{/a/_-is_PosixAlpha}');
-    Error('\P{/a/_-is_PosixAlpha}');
+    Expect(1, 122, '\p{__posixalpha}', "");
+    Expect(0, 122, '\p{^__posixalpha}', "");
+    Expect(0, 122, '\P{__posixalpha}', "");
+    Expect(1, 122, '\P{^__posixalpha}', "");
+    Expect(0, 123, '\p{__posixalpha}', "");
+    Expect(1, 123, '\p{^__posixalpha}', "");
+    Expect(1, 123, '\P{__posixalpha}', "");
+    Expect(0, 123, '\P{^__posixalpha}', "");
+    Error('\p{	/a/IS_PosixAlpha}');
+    Error('\P{	/a/IS_PosixAlpha}');
     Expect(1, 122, '\p{isposixalpha}', "");
     Expect(0, 122, '\p{^isposixalpha}', "");
     Expect(0, 122, '\P{isposixalpha}', "");
@@ -117153,16 +118369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^isposixalpha}', "");
     Expect(1, 123, '\P{isposixalpha}', "");
     Expect(0, 123, '\P{^isposixalpha}', "");
-    Expect(1, 122, '\p{_-Is_posixalpha}', "");
-    Expect(0, 122, '\p{^_-Is_posixalpha}', "");
-    Expect(0, 122, '\P{_-Is_posixalpha}', "");
-    Expect(1, 122, '\P{^_-Is_posixalpha}', "");
-    Expect(0, 123, '\p{_-Is_posixalpha}', "");
-    Expect(1, 123, '\p{^_-Is_posixalpha}', "");
-    Expect(1, 123, '\P{_-Is_posixalpha}', "");
-    Expect(0, 123, '\P{^_-Is_posixalpha}', "");
-    Error('\p{ -PosixBlank:=}');
-    Error('\P{ -PosixBlank:=}');
+    Expect(1, 122, '\p{-	IS_POSIXALPHA}', "");
+    Expect(0, 122, '\p{^-	IS_POSIXALPHA}', "");
+    Expect(0, 122, '\P{-	IS_POSIXALPHA}', "");
+    Expect(1, 122, '\P{^-	IS_POSIXALPHA}', "");
+    Expect(0, 123, '\p{-	IS_POSIXALPHA}', "");
+    Expect(1, 123, '\p{^-	IS_POSIXALPHA}', "");
+    Expect(1, 123, '\P{-	IS_POSIXALPHA}', "");
+    Expect(0, 123, '\P{^-	IS_POSIXALPHA}', "");
+    Error('\p{	:=posixblank}');
+    Error('\P{	:=posixblank}');
     Expect(1, 32, '\p{posixblank}', "");
     Expect(0, 32, '\p{^posixblank}', "");
     Expect(0, 32, '\P{posixblank}', "");
@@ -117171,16 +118387,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 33, '\p{^posixblank}', "");
     Expect(1, 33, '\P{posixblank}', "");
     Expect(0, 33, '\P{^posixblank}', "");
-    Expect(1, 32, '\p{ posixblank}', "");
-    Expect(0, 32, '\p{^ posixblank}', "");
-    Expect(0, 32, '\P{ posixblank}', "");
-    Expect(1, 32, '\P{^ posixblank}', "");
-    Expect(0, 33, '\p{ posixblank}', "");
-    Expect(1, 33, '\p{^ posixblank}', "");
-    Expect(1, 33, '\P{ posixblank}', "");
-    Expect(0, 33, '\P{^ posixblank}', "");
-    Error('\p{/a/_	Is_posixblank}');
-    Error('\P{/a/_	Is_posixblank}');
+    Expect(1, 32, '\p{	 posixblank}', "");
+    Expect(0, 32, '\p{^	 posixblank}', "");
+    Expect(0, 32, '\P{	 posixblank}', "");
+    Expect(1, 32, '\P{^	 posixblank}', "");
+    Expect(0, 33, '\p{	 posixblank}', "");
+    Expect(1, 33, '\p{^	 posixblank}', "");
+    Expect(1, 33, '\P{	 posixblank}', "");
+    Expect(0, 33, '\P{^	 posixblank}', "");
+    Error('\p{-_Is_posixblank/a/}');
+    Error('\P{-_Is_posixblank/a/}');
     Expect(1, 32, '\p{isposixblank}', "");
     Expect(0, 32, '\p{^isposixblank}', "");
     Expect(0, 32, '\P{isposixblank}', "");
@@ -117189,16 +118405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 33, '\p{^isposixblank}', "");
     Expect(1, 33, '\P{isposixblank}', "");
     Expect(0, 33, '\P{^isposixblank}', "");
-    Expect(1, 32, '\p{ Is_PosixBlank}', "");
-    Expect(0, 32, '\p{^ Is_PosixBlank}', "");
-    Expect(0, 32, '\P{ Is_PosixBlank}', "");
-    Expect(1, 32, '\P{^ Is_PosixBlank}', "");
-    Expect(0, 33, '\p{ Is_PosixBlank}', "");
-    Expect(1, 33, '\p{^ Is_PosixBlank}', "");
-    Expect(1, 33, '\P{ Is_PosixBlank}', "");
-    Expect(0, 33, '\P{^ Is_PosixBlank}', "");
-    Error('\p{-PosixCntrl/a/}');
-    Error('\P{-PosixCntrl/a/}');
+    Expect(1, 32, '\p{	 IS_POSIXBLANK}', "");
+    Expect(0, 32, '\p{^	 IS_POSIXBLANK}', "");
+    Expect(0, 32, '\P{	 IS_POSIXBLANK}', "");
+    Expect(1, 32, '\P{^	 IS_POSIXBLANK}', "");
+    Expect(0, 33, '\p{	 IS_POSIXBLANK}', "");
+    Expect(1, 33, '\p{^	 IS_POSIXBLANK}', "");
+    Expect(1, 33, '\P{	 IS_POSIXBLANK}', "");
+    Expect(0, 33, '\P{^	 IS_POSIXBLANK}', "");
+    Error('\p{-PosixCntrl:=}');
+    Error('\P{-PosixCntrl:=}');
     Expect(1, 127, '\p{posixcntrl}', "");
     Expect(0, 127, '\p{^posixcntrl}', "");
     Expect(0, 127, '\P{posixcntrl}', "");
@@ -117207,8 +118423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^posixcntrl}', "");
     Expect(1, 128, '\P{posixcntrl}', "");
     Expect(0, 128, '\P{^posixcntrl}', "");
-    Error('\p{ :=Is_posixcntrl}');
-    Error('\P{ :=Is_posixcntrl}');
+    Expect(1, 127, '\p{_	POSIXCNTRL}', "");
+    Expect(0, 127, '\p{^_	POSIXCNTRL}', "");
+    Expect(0, 127, '\P{_	POSIXCNTRL}', "");
+    Expect(1, 127, '\P{^_	POSIXCNTRL}', "");
+    Expect(0, 128, '\p{_	POSIXCNTRL}', "");
+    Expect(1, 128, '\p{^_	POSIXCNTRL}', "");
+    Expect(1, 128, '\P{_	POSIXCNTRL}', "");
+    Expect(0, 128, '\P{^_	POSIXCNTRL}', "");
+    Error('\p{ -IS_POSIXCNTRL:=}');
+    Error('\P{ -IS_POSIXCNTRL:=}');
     Expect(1, 127, '\p{isposixcntrl}', "");
     Expect(0, 127, '\p{^isposixcntrl}', "");
     Expect(0, 127, '\P{isposixcntrl}', "");
@@ -117217,16 +118441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 128, '\p{^isposixcntrl}', "");
     Expect(1, 128, '\P{isposixcntrl}', "");
     Expect(0, 128, '\P{^isposixcntrl}', "");
-    Expect(1, 127, '\p{__Is_posixcntrl}', "");
-    Expect(0, 127, '\p{^__Is_posixcntrl}', "");
-    Expect(0, 127, '\P{__Is_posixcntrl}', "");
-    Expect(1, 127, '\P{^__Is_posixcntrl}', "");
-    Expect(0, 128, '\p{__Is_posixcntrl}', "");
-    Expect(1, 128, '\p{^__Is_posixcntrl}', "");
-    Expect(1, 128, '\P{__Is_posixcntrl}', "");
-    Expect(0, 128, '\P{^__Is_posixcntrl}', "");
-    Error('\p{/a/_ POSIXDIGIT}');
-    Error('\P{/a/_ POSIXDIGIT}');
+    Expect(1, 127, '\p{--is_POSIXCNTRL}', "");
+    Expect(0, 127, '\p{^--is_POSIXCNTRL}', "");
+    Expect(0, 127, '\P{--is_POSIXCNTRL}', "");
+    Expect(1, 127, '\P{^--is_POSIXCNTRL}', "");
+    Expect(0, 128, '\p{--is_POSIXCNTRL}', "");
+    Expect(1, 128, '\p{^--is_POSIXCNTRL}', "");
+    Expect(1, 128, '\P{--is_POSIXCNTRL}', "");
+    Expect(0, 128, '\P{^--is_POSIXCNTRL}', "");
+    Error('\p{--PosixDigit/a/}');
+    Error('\P{--PosixDigit/a/}');
     Expect(1, 57, '\p{posixdigit}', "");
     Expect(0, 57, '\p{^posixdigit}', "");
     Expect(0, 57, '\P{posixdigit}', "");
@@ -117243,8 +118467,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 58, '\p{^	posixdigit}', "");
     Expect(1, 58, '\P{	posixdigit}', "");
     Expect(0, 58, '\P{^	posixdigit}', "");
-    Error('\p{:= _is_POSIXDIGIT}');
-    Error('\P{:= _is_POSIXDIGIT}');
+    Error('\p{:=	Is_POSIXDIGIT}');
+    Error('\P{:=	Is_POSIXDIGIT}');
     Expect(1, 57, '\p{isposixdigit}', "");
     Expect(0, 57, '\p{^isposixdigit}', "");
     Expect(0, 57, '\P{isposixdigit}', "");
@@ -117253,16 +118477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 58, '\p{^isposixdigit}', "");
     Expect(1, 58, '\P{isposixdigit}', "");
     Expect(0, 58, '\P{^isposixdigit}', "");
-    Expect(1, 57, '\p{_Is_PosixDigit}', "");
-    Expect(0, 57, '\p{^_Is_PosixDigit}', "");
-    Expect(0, 57, '\P{_Is_PosixDigit}', "");
-    Expect(1, 57, '\P{^_Is_PosixDigit}', "");
-    Expect(0, 58, '\p{_Is_PosixDigit}', "");
-    Expect(1, 58, '\p{^_Is_PosixDigit}', "");
-    Expect(1, 58, '\P{_Is_PosixDigit}', "");
-    Expect(0, 58, '\P{^_Is_PosixDigit}', "");
-    Error('\p{:= PosixGraph}');
-    Error('\P{:= PosixGraph}');
+    Expect(1, 57, '\p{	Is_PosixDigit}', "");
+    Expect(0, 57, '\p{^	Is_PosixDigit}', "");
+    Expect(0, 57, '\P{	Is_PosixDigit}', "");
+    Expect(1, 57, '\P{^	Is_PosixDigit}', "");
+    Expect(0, 58, '\p{	Is_PosixDigit}', "");
+    Expect(1, 58, '\p{^	Is_PosixDigit}', "");
+    Expect(1, 58, '\P{	Is_PosixDigit}', "");
+    Expect(0, 58, '\P{^	Is_PosixDigit}', "");
+    Error('\p{ /a/posixgraph}');
+    Error('\P{ /a/posixgraph}');
     Expect(1, 126, '\p{posixgraph}', "");
     Expect(0, 126, '\p{^posixgraph}', "");
     Expect(0, 126, '\P{posixgraph}', "");
@@ -117271,16 +118495,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127, '\p{^posixgraph}', "");
     Expect(1, 127, '\P{posixgraph}', "");
     Expect(0, 127, '\P{^posixgraph}', "");
-    Expect(1, 126, '\p{ PosixGraph}', "");
-    Expect(0, 126, '\p{^ PosixGraph}', "");
-    Expect(0, 126, '\P{ PosixGraph}', "");
-    Expect(1, 126, '\P{^ PosixGraph}', "");
-    Expect(0, 127, '\p{ PosixGraph}', "");
-    Expect(1, 127, '\p{^ PosixGraph}', "");
-    Expect(1, 127, '\P{ PosixGraph}', "");
-    Expect(0, 127, '\P{^ PosixGraph}', "");
-    Error('\p{ -is_posixgraph:=}');
-    Error('\P{ -is_posixgraph:=}');
+    Expect(1, 126, '\p{  PosixGraph}', "");
+    Expect(0, 126, '\p{^  PosixGraph}', "");
+    Expect(0, 126, '\P{  PosixGraph}', "");
+    Expect(1, 126, '\P{^  PosixGraph}', "");
+    Expect(0, 127, '\p{  PosixGraph}', "");
+    Expect(1, 127, '\p{^  PosixGraph}', "");
+    Expect(1, 127, '\P{  PosixGraph}', "");
+    Expect(0, 127, '\P{^  PosixGraph}', "");
+    Error('\p{/a/is_posixgraph}');
+    Error('\P{/a/is_posixgraph}');
     Expect(1, 126, '\p{isposixgraph}', "");
     Expect(0, 126, '\p{^isposixgraph}', "");
     Expect(0, 126, '\P{isposixgraph}', "");
@@ -117289,16 +118513,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127, '\p{^isposixgraph}', "");
     Expect(1, 127, '\P{isposixgraph}', "");
     Expect(0, 127, '\P{^isposixgraph}', "");
-    Expect(1, 126, '\p{__IS_POSIXGRAPH}', "");
-    Expect(0, 126, '\p{^__IS_POSIXGRAPH}', "");
-    Expect(0, 126, '\P{__IS_POSIXGRAPH}', "");
-    Expect(1, 126, '\P{^__IS_POSIXGRAPH}', "");
-    Expect(0, 127, '\p{__IS_POSIXGRAPH}', "");
-    Expect(1, 127, '\p{^__IS_POSIXGRAPH}', "");
-    Expect(1, 127, '\P{__IS_POSIXGRAPH}', "");
-    Expect(0, 127, '\P{^__IS_POSIXGRAPH}', "");
-    Error('\p{--PosixLower/a/}');
-    Error('\P{--PosixLower/a/}');
+    Expect(1, 126, '\p{_	IS_posixgraph}', "");
+    Expect(0, 126, '\p{^_	IS_posixgraph}', "");
+    Expect(0, 126, '\P{_	IS_posixgraph}', "");
+    Expect(1, 126, '\P{^_	IS_posixgraph}', "");
+    Expect(0, 127, '\p{_	IS_posixgraph}', "");
+    Expect(1, 127, '\p{^_	IS_posixgraph}', "");
+    Expect(1, 127, '\P{_	IS_posixgraph}', "");
+    Expect(0, 127, '\P{^_	IS_posixgraph}', "");
+    Error('\p{:= -PosixLower}');
+    Error('\P{:= -PosixLower}');
     Expect(1, 122, '\p{posixlower}', "");
     Expect(0, 122, '\p{^posixlower}', "");
     Expect(0, 122, '\P{posixlower}', "");
@@ -117307,16 +118531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^posixlower}', "");
     Expect(1, 123, '\P{posixlower}', "");
     Expect(0, 123, '\P{^posixlower}', "");
-    Expect(1, 122, '\p{__PosixLower}', "");
-    Expect(0, 122, '\p{^__PosixLower}', "");
-    Expect(0, 122, '\P{__PosixLower}', "");
-    Expect(1, 122, '\P{^__PosixLower}', "");
-    Expect(0, 123, '\p{__PosixLower}', "");
-    Expect(1, 123, '\p{^__PosixLower}', "");
-    Expect(1, 123, '\P{__PosixLower}', "");
-    Expect(0, 123, '\P{^__PosixLower}', "");
-    Error('\p{	:=is_POSIXLOWER}');
-    Error('\P{	:=is_POSIXLOWER}');
+    Expect(1, 122, '\p{ posixlower}', "");
+    Expect(0, 122, '\p{^ posixlower}', "");
+    Expect(0, 122, '\P{ posixlower}', "");
+    Expect(1, 122, '\P{^ posixlower}', "");
+    Expect(0, 123, '\p{ posixlower}', "");
+    Expect(1, 123, '\p{^ posixlower}', "");
+    Expect(1, 123, '\P{ posixlower}', "");
+    Expect(0, 123, '\P{^ posixlower}', "");
+    Error('\p{ :=Is_POSIXLOWER}');
+    Error('\P{ :=Is_POSIXLOWER}');
     Expect(1, 122, '\p{isposixlower}', "");
     Expect(0, 122, '\p{^isposixlower}', "");
     Expect(0, 122, '\P{isposixlower}', "");
@@ -117325,16 +118549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^isposixlower}', "");
     Expect(1, 123, '\P{isposixlower}', "");
     Expect(0, 123, '\P{^isposixlower}', "");
-    Expect(1, 122, '\p{__Is_posixlower}', "");
-    Expect(0, 122, '\p{^__Is_posixlower}', "");
-    Expect(0, 122, '\P{__Is_posixlower}', "");
-    Expect(1, 122, '\P{^__Is_posixlower}', "");
-    Expect(0, 123, '\p{__Is_posixlower}', "");
-    Expect(1, 123, '\p{^__Is_posixlower}', "");
-    Expect(1, 123, '\P{__Is_posixlower}', "");
-    Expect(0, 123, '\P{^__Is_posixlower}', "");
-    Error('\p{:=- PosixPrint}');
-    Error('\P{:=- PosixPrint}');
+    Expect(1, 122, '\p{	IS_POSIXLOWER}', "");
+    Expect(0, 122, '\p{^	IS_POSIXLOWER}', "");
+    Expect(0, 122, '\P{	IS_POSIXLOWER}', "");
+    Expect(1, 122, '\P{^	IS_POSIXLOWER}', "");
+    Expect(0, 123, '\p{	IS_POSIXLOWER}', "");
+    Expect(1, 123, '\p{^	IS_POSIXLOWER}', "");
+    Expect(1, 123, '\P{	IS_POSIXLOWER}', "");
+    Expect(0, 123, '\P{^	IS_POSIXLOWER}', "");
+    Error('\p{-POSIXPRINT/a/}');
+    Error('\P{-POSIXPRINT/a/}');
     Expect(1, 126, '\p{posixprint}', "");
     Expect(0, 126, '\p{^posixprint}', "");
     Expect(0, 126, '\P{posixprint}', "");
@@ -117343,16 +118567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127, '\p{^posixprint}', "");
     Expect(1, 127, '\P{posixprint}', "");
     Expect(0, 127, '\P{^posixprint}', "");
-    Expect(1, 126, '\p{- POSIXPRINT}', "");
-    Expect(0, 126, '\p{^- POSIXPRINT}', "");
-    Expect(0, 126, '\P{- POSIXPRINT}', "");
-    Expect(1, 126, '\P{^- POSIXPRINT}', "");
-    Expect(0, 127, '\p{- POSIXPRINT}', "");
-    Expect(1, 127, '\p{^- POSIXPRINT}', "");
-    Expect(1, 127, '\P{- POSIXPRINT}', "");
-    Expect(0, 127, '\P{^- POSIXPRINT}', "");
-    Error('\p{:=__Is_PosixPrint}');
-    Error('\P{:=__Is_PosixPrint}');
+    Expect(1, 126, '\p{	 PosixPrint}', "");
+    Expect(0, 126, '\p{^	 PosixPrint}', "");
+    Expect(0, 126, '\P{	 PosixPrint}', "");
+    Expect(1, 126, '\P{^	 PosixPrint}', "");
+    Expect(0, 127, '\p{	 PosixPrint}', "");
+    Expect(1, 127, '\p{^	 PosixPrint}', "");
+    Expect(1, 127, '\P{	 PosixPrint}', "");
+    Expect(0, 127, '\P{^	 PosixPrint}', "");
+    Error('\p{	is_PosixPrint:=}');
+    Error('\P{	is_PosixPrint:=}');
     Expect(1, 126, '\p{isposixprint}', "");
     Expect(0, 126, '\p{^isposixprint}', "");
     Expect(0, 126, '\P{isposixprint}', "");
@@ -117361,16 +118585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127, '\p{^isposixprint}', "");
     Expect(1, 127, '\P{isposixprint}', "");
     Expect(0, 127, '\P{^isposixprint}', "");
-    Expect(1, 126, '\p{	is_posixprint}', "");
-    Expect(0, 126, '\p{^	is_posixprint}', "");
-    Expect(0, 126, '\P{	is_posixprint}', "");
-    Expect(1, 126, '\P{^	is_posixprint}', "");
-    Expect(0, 127, '\p{	is_posixprint}', "");
-    Expect(1, 127, '\p{^	is_posixprint}', "");
-    Expect(1, 127, '\P{	is_posixprint}', "");
-    Expect(0, 127, '\P{^	is_posixprint}', "");
-    Error('\p{:=_ PosixPunct}');
-    Error('\P{:=_ PosixPunct}');
+    Expect(1, 126, '\p{ Is_posixprint}', "");
+    Expect(0, 126, '\p{^ Is_posixprint}', "");
+    Expect(0, 126, '\P{ Is_posixprint}', "");
+    Expect(1, 126, '\P{^ Is_posixprint}', "");
+    Expect(0, 127, '\p{ Is_posixprint}', "");
+    Expect(1, 127, '\p{^ Is_posixprint}', "");
+    Expect(1, 127, '\P{ Is_posixprint}', "");
+    Expect(0, 127, '\P{^ Is_posixprint}', "");
+    Error('\p{-	posixpunct:=}');
+    Error('\P{-	posixpunct:=}');
     Expect(1, 126, '\p{posixpunct}', "");
     Expect(0, 126, '\p{^posixpunct}', "");
     Expect(0, 126, '\P{posixpunct}', "");
@@ -117379,16 +118603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127, '\p{^posixpunct}', "");
     Expect(1, 127, '\P{posixpunct}', "");
     Expect(0, 127, '\P{^posixpunct}', "");
-    Expect(1, 126, '\p{POSIXPUNCT}', "");
-    Expect(0, 126, '\p{^POSIXPUNCT}', "");
-    Expect(0, 126, '\P{POSIXPUNCT}', "");
-    Expect(1, 126, '\P{^POSIXPUNCT}', "");
-    Expect(0, 127, '\p{POSIXPUNCT}', "");
-    Expect(1, 127, '\p{^POSIXPUNCT}', "");
-    Expect(1, 127, '\P{POSIXPUNCT}', "");
-    Expect(0, 127, '\P{^POSIXPUNCT}', "");
-    Error('\p{/a/-_Is_posixpunct}');
-    Error('\P{/a/-_Is_posixpunct}');
+    Expect(1, 126, '\p{	PosixPunct}', "");
+    Expect(0, 126, '\p{^	PosixPunct}', "");
+    Expect(0, 126, '\P{	PosixPunct}', "");
+    Expect(1, 126, '\P{^	PosixPunct}', "");
+    Expect(0, 127, '\p{	PosixPunct}', "");
+    Expect(1, 127, '\p{^	PosixPunct}', "");
+    Expect(1, 127, '\P{	PosixPunct}', "");
+    Expect(0, 127, '\P{^	PosixPunct}', "");
+    Error('\p{/a/	_IS_posixpunct}');
+    Error('\P{/a/	_IS_posixpunct}');
     Expect(1, 126, '\p{isposixpunct}', "");
     Expect(0, 126, '\p{^isposixpunct}', "");
     Expect(0, 126, '\P{isposixpunct}', "");
@@ -117397,16 +118621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127, '\p{^isposixpunct}', "");
     Expect(1, 127, '\P{isposixpunct}', "");
     Expect(0, 127, '\P{^isposixpunct}', "");
-    Expect(1, 126, '\p{	IS_PosixPunct}', "");
-    Expect(0, 126, '\p{^	IS_PosixPunct}', "");
-    Expect(0, 126, '\P{	IS_PosixPunct}', "");
-    Expect(1, 126, '\P{^	IS_PosixPunct}', "");
-    Expect(0, 127, '\p{	IS_PosixPunct}', "");
-    Expect(1, 127, '\p{^	IS_PosixPunct}', "");
-    Expect(1, 127, '\P{	IS_PosixPunct}', "");
-    Expect(0, 127, '\P{^	IS_PosixPunct}', "");
-    Error('\p{-POSIXSPACE/a/}');
-    Error('\P{-POSIXSPACE/a/}');
+    Expect(1, 126, '\p{- Is_POSIXPUNCT}', "");
+    Expect(0, 126, '\p{^- Is_POSIXPUNCT}', "");
+    Expect(0, 126, '\P{- Is_POSIXPUNCT}', "");
+    Expect(1, 126, '\P{^- Is_POSIXPUNCT}', "");
+    Expect(0, 127, '\p{- Is_POSIXPUNCT}', "");
+    Expect(1, 127, '\p{^- Is_POSIXPUNCT}', "");
+    Expect(1, 127, '\P{- Is_POSIXPUNCT}', "");
+    Expect(0, 127, '\P{^- Is_POSIXPUNCT}', "");
+    Error('\p{/a/ _posixspace}');
+    Error('\P{/a/ _posixspace}');
     Expect(1, 32, '\p{posixspace}', "");
     Expect(0, 32, '\p{^posixspace}', "");
     Expect(0, 32, '\P{posixspace}', "");
@@ -117415,16 +118639,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 33, '\p{^posixspace}', "");
     Expect(1, 33, '\P{posixspace}', "");
     Expect(0, 33, '\P{^posixspace}', "");
-    Expect(1, 32, '\p{-_PosixSpace}', "");
-    Expect(0, 32, '\p{^-_PosixSpace}', "");
-    Expect(0, 32, '\P{-_PosixSpace}', "");
-    Expect(1, 32, '\P{^-_PosixSpace}', "");
-    Expect(0, 33, '\p{-_PosixSpace}', "");
-    Expect(1, 33, '\p{^-_PosixSpace}', "");
-    Expect(1, 33, '\P{-_PosixSpace}', "");
-    Expect(0, 33, '\P{^-_PosixSpace}', "");
-    Error('\p{ :=PERLSPACE}');
-    Error('\P{ :=PERLSPACE}');
+    Expect(1, 32, '\p{_	PosixSpace}', "");
+    Expect(0, 32, '\p{^_	PosixSpace}', "");
+    Expect(0, 32, '\P{_	PosixSpace}', "");
+    Expect(1, 32, '\P{^_	PosixSpace}', "");
+    Expect(0, 33, '\p{_	PosixSpace}', "");
+    Expect(1, 33, '\p{^_	PosixSpace}', "");
+    Expect(1, 33, '\P{_	PosixSpace}', "");
+    Expect(0, 33, '\P{^_	PosixSpace}', "");
+    Error('\p{:= _PERLSPACE}');
+    Error('\P{:= _PERLSPACE}');
     Expect(1, 32, '\p{perlspace}', "");
     Expect(0, 32, '\p{^perlspace}', "");
     Expect(0, 32, '\P{perlspace}', "");
@@ -117433,16 +118657,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 33, '\p{^perlspace}', "");
     Expect(1, 33, '\P{perlspace}', "");
     Expect(0, 33, '\P{^perlspace}', "");
-    Expect(1, 32, '\p{-PERLSPACE}', "");
-    Expect(0, 32, '\p{^-PERLSPACE}', "");
-    Expect(0, 32, '\P{-PERLSPACE}', "");
-    Expect(1, 32, '\P{^-PERLSPACE}', "");
-    Expect(0, 33, '\p{-PERLSPACE}', "");
-    Expect(1, 33, '\p{^-PERLSPACE}', "");
-    Expect(1, 33, '\P{-PERLSPACE}', "");
-    Expect(0, 33, '\P{^-PERLSPACE}', "");
-    Error('\p{ IS_posixspace/a/}');
-    Error('\P{ IS_posixspace/a/}');
+    Expect(1, 32, '\p{	 PerlSpace}', "");
+    Expect(0, 32, '\p{^	 PerlSpace}', "");
+    Expect(0, 32, '\P{	 PerlSpace}', "");
+    Expect(1, 32, '\P{^	 PerlSpace}', "");
+    Expect(0, 33, '\p{	 PerlSpace}', "");
+    Expect(1, 33, '\p{^	 PerlSpace}', "");
+    Expect(1, 33, '\P{	 PerlSpace}', "");
+    Expect(0, 33, '\P{^	 PerlSpace}', "");
+    Error('\p{	IS_PosixSpace/a/}');
+    Error('\P{	IS_PosixSpace/a/}');
     Expect(1, 32, '\p{isposixspace}', "");
     Expect(0, 32, '\p{^isposixspace}', "");
     Expect(0, 32, '\P{isposixspace}', "");
@@ -117451,16 +118675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 33, '\p{^isposixspace}', "");
     Expect(1, 33, '\P{isposixspace}', "");
     Expect(0, 33, '\P{^isposixspace}', "");
-    Expect(1, 32, '\p{-	Is_POSIXSPACE}', "");
-    Expect(0, 32, '\p{^-	Is_POSIXSPACE}', "");
-    Expect(0, 32, '\P{-	Is_POSIXSPACE}', "");
-    Expect(1, 32, '\P{^-	Is_POSIXSPACE}', "");
-    Expect(0, 33, '\p{-	Is_POSIXSPACE}', "");
-    Expect(1, 33, '\p{^-	Is_POSIXSPACE}', "");
-    Expect(1, 33, '\P{-	Is_POSIXSPACE}', "");
-    Expect(0, 33, '\P{^-	Is_POSIXSPACE}', "");
-    Error('\p{:=_-is_PERLSPACE}');
-    Error('\P{:=_-is_PERLSPACE}');
+    Expect(1, 32, '\p{	is_PosixSpace}', "");
+    Expect(0, 32, '\p{^	is_PosixSpace}', "");
+    Expect(0, 32, '\P{	is_PosixSpace}', "");
+    Expect(1, 32, '\P{^	is_PosixSpace}', "");
+    Expect(0, 33, '\p{	is_PosixSpace}', "");
+    Expect(1, 33, '\p{^	is_PosixSpace}', "");
+    Expect(1, 33, '\P{	is_PosixSpace}', "");
+    Expect(0, 33, '\P{^	is_PosixSpace}', "");
+    Error('\p{/a/		Is_PERLSPACE}');
+    Error('\P{/a/		Is_PERLSPACE}');
     Expect(1, 32, '\p{isperlspace}', "");
     Expect(0, 32, '\p{^isperlspace}', "");
     Expect(0, 32, '\P{isperlspace}', "");
@@ -117469,16 +118693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 33, '\p{^isperlspace}', "");
     Expect(1, 33, '\P{isperlspace}', "");
     Expect(0, 33, '\P{^isperlspace}', "");
-    Expect(1, 32, '\p{ _Is_PerlSpace}', "");
-    Expect(0, 32, '\p{^ _Is_PerlSpace}', "");
-    Expect(0, 32, '\P{ _Is_PerlSpace}', "");
-    Expect(1, 32, '\P{^ _Is_PerlSpace}', "");
-    Expect(0, 33, '\p{ _Is_PerlSpace}', "");
-    Expect(1, 33, '\p{^ _Is_PerlSpace}', "");
-    Expect(1, 33, '\P{ _Is_PerlSpace}', "");
-    Expect(0, 33, '\P{^ _Is_PerlSpace}', "");
-    Error('\p{ 	posixupper:=}');
-    Error('\P{ 	posixupper:=}');
+    Expect(1, 32, '\p{  Is_PerlSpace}', "");
+    Expect(0, 32, '\p{^  Is_PerlSpace}', "");
+    Expect(0, 32, '\P{  Is_PerlSpace}', "");
+    Expect(1, 32, '\P{^  Is_PerlSpace}', "");
+    Expect(0, 33, '\p{  Is_PerlSpace}', "");
+    Expect(1, 33, '\p{^  Is_PerlSpace}', "");
+    Expect(1, 33, '\P{  Is_PerlSpace}', "");
+    Expect(0, 33, '\P{^  Is_PerlSpace}', "");
+    Error('\p{-/a/PosixUpper}');
+    Error('\P{-/a/PosixUpper}');
     Expect(1, 90, '\p{posixupper}', "");
     Expect(0, 90, '\p{^posixupper}', "");
     Expect(0, 90, '\P{posixupper}', "");
@@ -117487,16 +118711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 91, '\p{^posixupper}', "");
     Expect(1, 91, '\P{posixupper}', "");
     Expect(0, 91, '\P{^posixupper}', "");
-    Expect(1, 90, '\p{ -POSIXUPPER}', "");
-    Expect(0, 90, '\p{^ -POSIXUPPER}', "");
-    Expect(0, 90, '\P{ -POSIXUPPER}', "");
-    Expect(1, 90, '\P{^ -POSIXUPPER}', "");
-    Expect(0, 91, '\p{ -POSIXUPPER}', "");
-    Expect(1, 91, '\p{^ -POSIXUPPER}', "");
-    Expect(1, 91, '\P{ -POSIXUPPER}', "");
-    Expect(0, 91, '\P{^ -POSIXUPPER}', "");
-    Error('\p{:=is_posixupper}');
-    Error('\P{:=is_posixupper}');
+    Expect(1, 90, '\p{	PosixUpper}', "");
+    Expect(0, 90, '\p{^	PosixUpper}', "");
+    Expect(0, 90, '\P{	PosixUpper}', "");
+    Expect(1, 90, '\P{^	PosixUpper}', "");
+    Expect(0, 91, '\p{	PosixUpper}', "");
+    Expect(1, 91, '\p{^	PosixUpper}', "");
+    Expect(1, 91, '\P{	PosixUpper}', "");
+    Expect(0, 91, '\P{^	PosixUpper}', "");
+    Error('\p{:=is_POSIXUPPER}');
+    Error('\P{:=is_POSIXUPPER}');
     Expect(1, 90, '\p{isposixupper}', "");
     Expect(0, 90, '\p{^isposixupper}', "");
     Expect(0, 90, '\P{isposixupper}', "");
@@ -117505,16 +118729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 91, '\p{^isposixupper}', "");
     Expect(1, 91, '\P{isposixupper}', "");
     Expect(0, 91, '\P{^isposixupper}', "");
-    Expect(1, 90, '\p{__IS_posixupper}', "");
-    Expect(0, 90, '\p{^__IS_posixupper}', "");
-    Expect(0, 90, '\P{__IS_posixupper}', "");
-    Expect(1, 90, '\P{^__IS_posixupper}', "");
-    Expect(0, 91, '\p{__IS_posixupper}', "");
-    Expect(1, 91, '\p{^__IS_posixupper}', "");
-    Expect(1, 91, '\P{__IS_posixupper}', "");
-    Expect(0, 91, '\P{^__IS_posixupper}', "");
-    Error('\p{- POSIXWORD/a/}');
-    Error('\P{- POSIXWORD/a/}');
+    Expect(1, 90, '\p{_Is_PosixUpper}', "");
+    Expect(0, 90, '\p{^_Is_PosixUpper}', "");
+    Expect(0, 90, '\P{_Is_PosixUpper}', "");
+    Expect(1, 90, '\P{^_Is_PosixUpper}', "");
+    Expect(0, 91, '\p{_Is_PosixUpper}', "");
+    Expect(1, 91, '\p{^_Is_PosixUpper}', "");
+    Expect(1, 91, '\P{_Is_PosixUpper}', "");
+    Expect(0, 91, '\P{^_Is_PosixUpper}', "");
+    Error('\p{PosixWord:=}');
+    Error('\P{PosixWord:=}');
     Expect(1, 122, '\p{posixword}', "");
     Expect(0, 122, '\p{^posixword}', "");
     Expect(0, 122, '\P{posixword}', "");
@@ -117523,16 +118747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^posixword}', "");
     Expect(1, 123, '\P{posixword}', "");
     Expect(0, 123, '\P{^posixword}', "");
-    Expect(1, 122, '\p{- POSIXWORD}', "");
-    Expect(0, 122, '\p{^- POSIXWORD}', "");
-    Expect(0, 122, '\P{- POSIXWORD}', "");
-    Expect(1, 122, '\P{^- POSIXWORD}', "");
-    Expect(0, 123, '\p{- POSIXWORD}', "");
-    Expect(1, 123, '\p{^- POSIXWORD}', "");
-    Expect(1, 123, '\P{- POSIXWORD}', "");
-    Expect(0, 123, '\P{^- POSIXWORD}', "");
-    Error('\p{	-perlword:=}');
-    Error('\P{	-perlword:=}');
+    Expect(1, 122, '\p{PosixWord}', "");
+    Expect(0, 122, '\p{^PosixWord}', "");
+    Expect(0, 122, '\P{PosixWord}', "");
+    Expect(1, 122, '\P{^PosixWord}', "");
+    Expect(0, 123, '\p{PosixWord}', "");
+    Expect(1, 123, '\p{^PosixWord}', "");
+    Expect(1, 123, '\P{PosixWord}', "");
+    Expect(0, 123, '\P{^PosixWord}', "");
+    Error('\p{	PerlWord/a/}');
+    Error('\P{	PerlWord/a/}');
     Expect(1, 122, '\p{perlword}', "");
     Expect(0, 122, '\p{^perlword}', "");
     Expect(0, 122, '\P{perlword}', "");
@@ -117541,16 +118765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^perlword}', "");
     Expect(1, 123, '\P{perlword}', "");
     Expect(0, 123, '\P{^perlword}', "");
-    Expect(1, 122, '\p{_PERLWORD}', "");
-    Expect(0, 122, '\p{^_PERLWORD}', "");
-    Expect(0, 122, '\P{_PERLWORD}', "");
-    Expect(1, 122, '\P{^_PERLWORD}', "");
-    Expect(0, 123, '\p{_PERLWORD}', "");
-    Expect(1, 123, '\p{^_PERLWORD}', "");
-    Expect(1, 123, '\P{_PERLWORD}', "");
-    Expect(0, 123, '\P{^_PERLWORD}', "");
-    Error('\p{Is_POSIXWORD:=}');
-    Error('\P{Is_POSIXWORD:=}');
+    Expect(1, 122, '\p{	 perlword}', "");
+    Expect(0, 122, '\p{^	 perlword}', "");
+    Expect(0, 122, '\P{	 perlword}', "");
+    Expect(1, 122, '\P{^	 perlword}', "");
+    Expect(0, 123, '\p{	 perlword}', "");
+    Expect(1, 123, '\p{^	 perlword}', "");
+    Expect(1, 123, '\P{	 perlword}', "");
+    Expect(0, 123, '\P{^	 perlword}', "");
+    Error('\p{/a/	IS_POSIXWORD}');
+    Error('\P{/a/	IS_POSIXWORD}');
     Expect(1, 122, '\p{isposixword}', "");
     Expect(0, 122, '\p{^isposixword}', "");
     Expect(0, 122, '\P{isposixword}', "");
@@ -117559,16 +118783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^isposixword}', "");
     Expect(1, 123, '\P{isposixword}', "");
     Expect(0, 123, '\P{^isposixword}', "");
-    Expect(1, 122, '\p{		IS_POSIXWORD}', "");
-    Expect(0, 122, '\p{^		IS_POSIXWORD}', "");
-    Expect(0, 122, '\P{		IS_POSIXWORD}', "");
-    Expect(1, 122, '\P{^		IS_POSIXWORD}', "");
-    Expect(0, 123, '\p{		IS_POSIXWORD}', "");
-    Expect(1, 123, '\p{^		IS_POSIXWORD}', "");
-    Expect(1, 123, '\P{		IS_POSIXWORD}', "");
-    Expect(0, 123, '\P{^		IS_POSIXWORD}', "");
-    Error('\p{/a/ -Is_perlword}');
-    Error('\P{/a/ -Is_perlword}');
+    Expect(1, 122, '\p{	-Is_PosixWord}', "");
+    Expect(0, 122, '\p{^	-Is_PosixWord}', "");
+    Expect(0, 122, '\P{	-Is_PosixWord}', "");
+    Expect(1, 122, '\P{^	-Is_PosixWord}', "");
+    Expect(0, 123, '\p{	-Is_PosixWord}', "");
+    Expect(1, 123, '\p{^	-Is_PosixWord}', "");
+    Expect(1, 123, '\P{	-Is_PosixWord}', "");
+    Expect(0, 123, '\P{^	-Is_PosixWord}', "");
+    Error('\p{		Is_perlword/a/}');
+    Error('\P{		Is_perlword/a/}');
     Expect(1, 122, '\p{isperlword}', "");
     Expect(0, 122, '\p{^isperlword}', "");
     Expect(0, 122, '\P{isperlword}', "");
@@ -117577,16 +118801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 123, '\p{^isperlword}', "");
     Expect(1, 123, '\P{isperlword}', "");
     Expect(0, 123, '\P{^isperlword}', "");
-    Expect(1, 122, '\p{_	Is_PERLWORD}', "");
-    Expect(0, 122, '\p{^_	Is_PERLWORD}', "");
-    Expect(0, 122, '\P{_	Is_PERLWORD}', "");
-    Expect(1, 122, '\P{^_	Is_PERLWORD}', "");
-    Expect(0, 123, '\p{_	Is_PERLWORD}', "");
-    Expect(1, 123, '\p{^_	Is_PERLWORD}', "");
-    Expect(1, 123, '\P{_	Is_PERLWORD}', "");
-    Expect(0, 123, '\P{^_	Is_PERLWORD}', "");
-    Error('\p{/a/	PosixXDigit}');
-    Error('\P{/a/	PosixXDigit}');
+    Expect(1, 122, '\p{	 IS_PERLWORD}', "");
+    Expect(0, 122, '\p{^	 IS_PERLWORD}', "");
+    Expect(0, 122, '\P{	 IS_PERLWORD}', "");
+    Expect(1, 122, '\P{^	 IS_PERLWORD}', "");
+    Expect(0, 123, '\p{	 IS_PERLWORD}', "");
+    Expect(1, 123, '\p{^	 IS_PERLWORD}', "");
+    Expect(1, 123, '\P{	 IS_PERLWORD}', "");
+    Expect(0, 123, '\P{^	 IS_PERLWORD}', "");
+    Error('\p{:=PosixXDigit}');
+    Error('\P{:=PosixXDigit}');
     Expect(1, 102, '\p{posixxdigit}', "");
     Expect(0, 102, '\p{^posixxdigit}', "");
     Expect(0, 102, '\P{posixxdigit}', "");
@@ -117595,16 +118819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 103, '\p{^posixxdigit}', "");
     Expect(1, 103, '\P{posixxdigit}', "");
     Expect(0, 103, '\P{^posixxdigit}', "");
-    Expect(1, 102, '\p{  PosixXDigit}', "");
-    Expect(0, 102, '\p{^  PosixXDigit}', "");
-    Expect(0, 102, '\P{  PosixXDigit}', "");
-    Expect(1, 102, '\P{^  PosixXDigit}', "");
-    Expect(0, 103, '\p{  PosixXDigit}', "");
-    Expect(1, 103, '\p{^  PosixXDigit}', "");
-    Expect(1, 103, '\P{  PosixXDigit}', "");
-    Expect(0, 103, '\P{^  PosixXDigit}', "");
-    Error('\p{-/a/IS_PosixXDigit}');
-    Error('\P{-/a/IS_PosixXDigit}');
+    Expect(1, 102, '\p{ _PosixXDigit}', "");
+    Expect(0, 102, '\p{^ _PosixXDigit}', "");
+    Expect(0, 102, '\P{ _PosixXDigit}', "");
+    Expect(1, 102, '\P{^ _PosixXDigit}', "");
+    Expect(0, 103, '\p{ _PosixXDigit}', "");
+    Expect(1, 103, '\p{^ _PosixXDigit}', "");
+    Expect(1, 103, '\P{ _PosixXDigit}', "");
+    Expect(0, 103, '\P{^ _PosixXDigit}', "");
+    Error('\p{_:=IS_PosixXDigit}');
+    Error('\P{_:=IS_PosixXDigit}');
     Expect(1, 102, '\p{isposixxdigit}', "");
     Expect(0, 102, '\p{^isposixxdigit}', "");
     Expect(0, 102, '\P{isposixxdigit}', "");
@@ -117613,16 +118837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 103, '\p{^isposixxdigit}', "");
     Expect(1, 103, '\P{isposixxdigit}', "");
     Expect(0, 103, '\P{^isposixxdigit}', "");
-    Expect(1, 102, '\p{-	is_PosixXDigit}', "");
-    Expect(0, 102, '\p{^-	is_PosixXDigit}', "");
-    Expect(0, 102, '\P{-	is_PosixXDigit}', "");
-    Expect(1, 102, '\P{^-	is_PosixXDigit}', "");
-    Expect(0, 103, '\p{-	is_PosixXDigit}', "");
-    Expect(1, 103, '\p{^-	is_PosixXDigit}', "");
-    Expect(1, 103, '\P{-	is_PosixXDigit}', "");
-    Expect(0, 103, '\P{^-	is_PosixXDigit}', "");
-    Error('\p{/a/	 ASCII_Hex_Digit}');
-    Error('\P{/a/	 ASCII_Hex_Digit}');
+    Expect(1, 102, '\p{_ IS_posixxdigit}', "");
+    Expect(0, 102, '\p{^_ IS_posixxdigit}', "");
+    Expect(0, 102, '\P{_ IS_posixxdigit}', "");
+    Expect(1, 102, '\P{^_ IS_posixxdigit}', "");
+    Expect(0, 103, '\p{_ IS_posixxdigit}', "");
+    Expect(1, 103, '\p{^_ IS_posixxdigit}', "");
+    Expect(1, 103, '\P{_ IS_posixxdigit}', "");
+    Expect(0, 103, '\P{^_ IS_posixxdigit}', "");
+    Error('\p{:=-_ASCII_HEX_DIGIT}');
+    Error('\P{:=-_ASCII_HEX_DIGIT}');
     Expect(1, 102, '\p{asciihexdigit}', "");
     Expect(0, 102, '\p{^asciihexdigit}', "");
     Expect(0, 102, '\P{asciihexdigit}', "");
@@ -117631,16 +118855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 103, '\p{^asciihexdigit}', "");
     Expect(1, 103, '\P{asciihexdigit}', "");
     Expect(0, 103, '\P{^asciihexdigit}', "");
-    Expect(1, 102, '\p{-	ASCII_Hex_DIGIT}', "");
-    Expect(0, 102, '\p{^-	ASCII_Hex_DIGIT}', "");
-    Expect(0, 102, '\P{-	ASCII_Hex_DIGIT}', "");
-    Expect(1, 102, '\P{^-	ASCII_Hex_DIGIT}', "");
-    Expect(0, 103, '\p{-	ASCII_Hex_DIGIT}', "");
-    Expect(1, 103, '\p{^-	ASCII_Hex_DIGIT}', "");
-    Expect(1, 103, '\P{-	ASCII_Hex_DIGIT}', "");
-    Expect(0, 103, '\P{^-	ASCII_Hex_DIGIT}', "");
-    Error('\p{/a/_-IS_ASCII_Hex_Digit}');
-    Error('\P{/a/_-IS_ASCII_Hex_Digit}');
+    Expect(1, 102, '\p{		ASCII_Hex_Digit}', "");
+    Expect(0, 102, '\p{^		ASCII_Hex_Digit}', "");
+    Expect(0, 102, '\P{		ASCII_Hex_Digit}', "");
+    Expect(1, 102, '\P{^		ASCII_Hex_Digit}', "");
+    Expect(0, 103, '\p{		ASCII_Hex_Digit}', "");
+    Expect(1, 103, '\p{^		ASCII_Hex_Digit}', "");
+    Expect(1, 103, '\P{		ASCII_Hex_Digit}', "");
+    Expect(0, 103, '\P{^		ASCII_Hex_Digit}', "");
+    Error('\p{/a/__Is_ascii_hex_digit}');
+    Error('\P{/a/__Is_ascii_hex_digit}');
     Expect(1, 102, '\p{isasciihexdigit}', "");
     Expect(0, 102, '\p{^isasciihexdigit}', "");
     Expect(0, 102, '\P{isasciihexdigit}', "");
@@ -117649,16 +118873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 103, '\p{^isasciihexdigit}', "");
     Expect(1, 103, '\P{isasciihexdigit}', "");
     Expect(0, 103, '\P{^isasciihexdigit}', "");
-    Expect(1, 102, '\p{_is_ascii_Hex_Digit}', "");
-    Expect(0, 102, '\p{^_is_ascii_Hex_Digit}', "");
-    Expect(0, 102, '\P{_is_ascii_Hex_Digit}', "");
-    Expect(1, 102, '\P{^_is_ascii_Hex_Digit}', "");
-    Expect(0, 103, '\p{_is_ascii_Hex_Digit}', "");
-    Expect(1, 103, '\p{^_is_ascii_Hex_Digit}', "");
-    Expect(1, 103, '\P{_is_ascii_Hex_Digit}', "");
-    Expect(0, 103, '\P{^_is_ascii_Hex_Digit}', "");
-    Error('\p{/a/	ahex}');
-    Error('\P{/a/	ahex}');
+    Expect(1, 102, '\p{ 	is_ASCII_Hex_Digit}', "");
+    Expect(0, 102, '\p{^ 	is_ASCII_Hex_Digit}', "");
+    Expect(0, 102, '\P{ 	is_ASCII_Hex_Digit}', "");
+    Expect(1, 102, '\P{^ 	is_ASCII_Hex_Digit}', "");
+    Expect(0, 103, '\p{ 	is_ASCII_Hex_Digit}', "");
+    Expect(1, 103, '\p{^ 	is_ASCII_Hex_Digit}', "");
+    Expect(1, 103, '\P{ 	is_ASCII_Hex_Digit}', "");
+    Expect(0, 103, '\P{^ 	is_ASCII_Hex_Digit}', "");
+    Error('\p{_/a/AHex}');
+    Error('\P{_/a/AHex}');
     Expect(1, 102, '\p{ahex}', "");
     Expect(0, 102, '\p{^ahex}', "");
     Expect(0, 102, '\P{ahex}', "");
@@ -117667,16 +118891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 103, '\p{^ahex}', "");
     Expect(1, 103, '\P{ahex}', "");
     Expect(0, 103, '\P{^ahex}', "");
-    Expect(1, 102, '\p{_ AHex}', "");
-    Expect(0, 102, '\p{^_ AHex}', "");
-    Expect(0, 102, '\P{_ AHex}', "");
-    Expect(1, 102, '\P{^_ AHex}', "");
-    Expect(0, 103, '\p{_ AHex}', "");
-    Expect(1, 103, '\p{^_ AHex}', "");
-    Expect(1, 103, '\P{_ AHex}', "");
-    Expect(0, 103, '\P{^_ AHex}', "");
-    Error('\p{		is_AHex/a/}');
-    Error('\P{		is_AHex/a/}');
+    Expect(1, 102, '\p{	AHex}', "");
+    Expect(0, 102, '\p{^	AHex}', "");
+    Expect(0, 102, '\P{	AHex}', "");
+    Expect(1, 102, '\P{^	AHex}', "");
+    Expect(0, 103, '\p{	AHex}', "");
+    Expect(1, 103, '\p{^	AHex}', "");
+    Expect(1, 103, '\P{	AHex}', "");
+    Expect(0, 103, '\P{^	AHex}', "");
+    Error('\p{-Is_AHEX/a/}');
+    Error('\P{-Is_AHEX/a/}');
     Expect(1, 102, '\p{isahex}', "");
     Expect(0, 102, '\p{^isahex}', "");
     Expect(0, 102, '\P{isahex}', "");
@@ -117685,16 +118909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 103, '\p{^isahex}', "");
     Expect(1, 103, '\P{isahex}', "");
     Expect(0, 103, '\P{^isahex}', "");
-    Expect(1, 102, '\p{	-Is_AHex}', "");
-    Expect(0, 102, '\p{^	-Is_AHex}', "");
-    Expect(0, 102, '\P{	-Is_AHex}', "");
-    Expect(1, 102, '\P{^	-Is_AHex}', "");
-    Expect(0, 103, '\p{	-Is_AHex}', "");
-    Expect(1, 103, '\p{^	-Is_AHex}', "");
-    Expect(1, 103, '\P{	-Is_AHex}', "");
-    Expect(0, 103, '\P{^	-Is_AHex}', "");
-    Error('\p{:=_-Prepended_concatenation_Mark}');
-    Error('\P{:=_-Prepended_concatenation_Mark}');
+    Expect(1, 102, '\p{ -Is_ahex}', "");
+    Expect(0, 102, '\p{^ -Is_ahex}', "");
+    Expect(0, 102, '\P{ -Is_ahex}', "");
+    Expect(1, 102, '\P{^ -Is_ahex}', "");
+    Expect(0, 103, '\p{ -Is_ahex}', "");
+    Expect(1, 103, '\p{^ -Is_ahex}', "");
+    Expect(1, 103, '\P{ -Is_ahex}', "");
+    Expect(0, 103, '\P{^ -Is_ahex}', "");
+    Error('\p{_/a/Prepended_Concatenation_mark}');
+    Error('\P{_/a/Prepended_Concatenation_mark}');
     Expect(1, 69837, '\p{prependedconcatenationmark}', "");
     Expect(0, 69837, '\p{^prependedconcatenationmark}', "");
     Expect(0, 69837, '\P{prependedconcatenationmark}', "");
@@ -117703,16 +118927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^prependedconcatenationmark}', "");
     Expect(1, 69838, '\P{prependedconcatenationmark}', "");
     Expect(0, 69838, '\P{^prependedconcatenationmark}', "");
-    Expect(1, 69837, '\p{- PREPENDED_concatenation_Mark}', "");
-    Expect(0, 69837, '\p{^- PREPENDED_concatenation_Mark}', "");
-    Expect(0, 69837, '\P{- PREPENDED_concatenation_Mark}', "");
-    Expect(1, 69837, '\P{^- PREPENDED_concatenation_Mark}', "");
-    Expect(0, 69838, '\p{- PREPENDED_concatenation_Mark}', "");
-    Expect(1, 69838, '\p{^- PREPENDED_concatenation_Mark}', "");
-    Expect(1, 69838, '\P{- PREPENDED_concatenation_Mark}', "");
-    Expect(0, 69838, '\P{^- PREPENDED_concatenation_Mark}', "");
-    Error('\p{:=-_Is_Prepended_concatenation_Mark}');
-    Error('\P{:=-_Is_Prepended_concatenation_Mark}');
+    Expect(1, 69837, '\p{	Prepended_CONCATENATION_Mark}', "");
+    Expect(0, 69837, '\p{^	Prepended_CONCATENATION_Mark}', "");
+    Expect(0, 69837, '\P{	Prepended_CONCATENATION_Mark}', "");
+    Expect(1, 69837, '\P{^	Prepended_CONCATENATION_Mark}', "");
+    Expect(0, 69838, '\p{	Prepended_CONCATENATION_Mark}', "");
+    Expect(1, 69838, '\p{^	Prepended_CONCATENATION_Mark}', "");
+    Expect(1, 69838, '\P{	Prepended_CONCATENATION_Mark}', "");
+    Expect(0, 69838, '\P{^	Prepended_CONCATENATION_Mark}', "");
+    Error('\p{/a/Is_prepended_Concatenation_MARK}');
+    Error('\P{/a/Is_prepended_Concatenation_MARK}');
     Expect(1, 69837, '\p{isprependedconcatenationmark}', "");
     Expect(0, 69837, '\p{^isprependedconcatenationmark}', "");
     Expect(0, 69837, '\P{isprependedconcatenationmark}', "");
@@ -117721,16 +118945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^isprependedconcatenationmark}', "");
     Expect(1, 69838, '\P{isprependedconcatenationmark}', "");
     Expect(0, 69838, '\P{^isprependedconcatenationmark}', "");
-    Expect(1, 69837, '\p{_Is_Prepended_concatenation_Mark}', "");
-    Expect(0, 69837, '\p{^_Is_Prepended_concatenation_Mark}', "");
-    Expect(0, 69837, '\P{_Is_Prepended_concatenation_Mark}', "");
-    Expect(1, 69837, '\P{^_Is_Prepended_concatenation_Mark}', "");
-    Expect(0, 69838, '\p{_Is_Prepended_concatenation_Mark}', "");
-    Expect(1, 69838, '\p{^_Is_Prepended_concatenation_Mark}', "");
-    Expect(1, 69838, '\P{_Is_Prepended_concatenation_Mark}', "");
-    Expect(0, 69838, '\P{^_Is_Prepended_concatenation_Mark}', "");
-    Error('\p{:=_	PCM}');
-    Error('\P{:=_	PCM}');
+    Expect(1, 69837, '\p{-Is_Prepended_Concatenation_MARK}', "");
+    Expect(0, 69837, '\p{^-Is_Prepended_Concatenation_MARK}', "");
+    Expect(0, 69837, '\P{-Is_Prepended_Concatenation_MARK}', "");
+    Expect(1, 69837, '\P{^-Is_Prepended_Concatenation_MARK}', "");
+    Expect(0, 69838, '\p{-Is_Prepended_Concatenation_MARK}', "");
+    Expect(1, 69838, '\p{^-Is_Prepended_Concatenation_MARK}', "");
+    Expect(1, 69838, '\P{-Is_Prepended_Concatenation_MARK}', "");
+    Expect(0, 69838, '\P{^-Is_Prepended_Concatenation_MARK}', "");
+    Error('\p{/a/PCM}');
+    Error('\P{/a/PCM}');
     Expect(1, 69837, '\p{pcm}', "");
     Expect(0, 69837, '\p{^pcm}', "");
     Expect(0, 69837, '\P{pcm}', "");
@@ -117739,16 +118963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^pcm}', "");
     Expect(1, 69838, '\P{pcm}', "");
     Expect(0, 69838, '\P{^pcm}', "");
-    Expect(1, 69837, '\p{-PCM}', "");
-    Expect(0, 69837, '\p{^-PCM}', "");
-    Expect(0, 69837, '\P{-PCM}', "");
-    Expect(1, 69837, '\P{^-PCM}', "");
-    Expect(0, 69838, '\p{-PCM}', "");
-    Expect(1, 69838, '\p{^-PCM}', "");
-    Expect(1, 69838, '\P{-PCM}', "");
-    Expect(0, 69838, '\P{^-PCM}', "");
-    Error('\p{-/a/IS_PCM}');
-    Error('\P{-/a/IS_PCM}');
+    Expect(1, 69837, '\p{ _PCM}', "");
+    Expect(0, 69837, '\p{^ _PCM}', "");
+    Expect(0, 69837, '\P{ _PCM}', "");
+    Expect(1, 69837, '\P{^ _PCM}', "");
+    Expect(0, 69838, '\p{ _PCM}', "");
+    Expect(1, 69838, '\p{^ _PCM}', "");
+    Expect(1, 69838, '\P{ _PCM}', "");
+    Expect(0, 69838, '\P{^ _PCM}', "");
+    Error('\p{/a/  is_pcm}');
+    Error('\P{/a/  is_pcm}');
     Expect(1, 69837, '\p{ispcm}', "");
     Expect(0, 69837, '\p{^ispcm}', "");
     Expect(0, 69837, '\P{ispcm}', "");
@@ -117757,16 +118981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69838, '\p{^ispcm}', "");
     Expect(1, 69838, '\P{ispcm}', "");
     Expect(0, 69838, '\P{^ispcm}', "");
-    Expect(1, 69837, '\p{_is_PCM}', "");
-    Expect(0, 69837, '\p{^_is_PCM}', "");
-    Expect(0, 69837, '\P{_is_PCM}', "");
-    Expect(1, 69837, '\P{^_is_PCM}', "");
-    Expect(0, 69838, '\p{_is_PCM}', "");
-    Expect(1, 69838, '\p{^_is_PCM}', "");
-    Expect(1, 69838, '\P{_is_PCM}', "");
-    Expect(0, 69838, '\P{^_is_PCM}', "");
-    Error('\p{	:=XPosixPrint}');
-    Error('\P{	:=XPosixPrint}');
+    Expect(1, 69837, '\p{-Is_PCM}', "");
+    Expect(0, 69837, '\p{^-Is_PCM}', "");
+    Expect(0, 69837, '\P{-Is_PCM}', "");
+    Expect(1, 69837, '\P{^-Is_PCM}', "");
+    Expect(0, 69838, '\p{-Is_PCM}', "");
+    Expect(1, 69838, '\p{^-Is_PCM}', "");
+    Expect(1, 69838, '\P{-Is_PCM}', "");
+    Expect(0, 69838, '\P{^-Is_PCM}', "");
+    Error('\p{_ XPosixPrint/a/}');
+    Error('\P{_ XPosixPrint/a/}');
     Expect(1, 1114109, '\p{xposixprint}', "");
     Expect(0, 1114109, '\p{^xposixprint}', "");
     Expect(0, 1114109, '\P{xposixprint}', "");
@@ -117775,16 +118999,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^xposixprint}', "");
     Expect(1, 918000, '\P{xposixprint}', "");
     Expect(0, 918000, '\P{^xposixprint}', "");
-    Expect(1, 1114109, '\p{-XPosixPrint}', "");
-    Expect(0, 1114109, '\p{^-XPosixPrint}', "");
-    Expect(0, 1114109, '\P{-XPosixPrint}', "");
-    Expect(1, 1114109, '\P{^-XPosixPrint}', "");
-    Expect(0, 918000, '\p{-XPosixPrint}', "");
-    Expect(1, 918000, '\p{^-XPosixPrint}', "");
-    Expect(1, 918000, '\P{-XPosixPrint}', "");
-    Expect(0, 918000, '\P{^-XPosixPrint}', "");
-    Error('\p{:=_Print}');
-    Error('\P{:=_Print}');
+    Expect(1, 1114109, '\p{--XPOSIXPRINT}', "");
+    Expect(0, 1114109, '\p{^--XPOSIXPRINT}', "");
+    Expect(0, 1114109, '\P{--XPOSIXPRINT}', "");
+    Expect(1, 1114109, '\P{^--XPOSIXPRINT}', "");
+    Expect(0, 918000, '\p{--XPOSIXPRINT}', "");
+    Expect(1, 918000, '\p{^--XPOSIXPRINT}', "");
+    Expect(1, 918000, '\P{--XPOSIXPRINT}', "");
+    Expect(0, 918000, '\P{^--XPOSIXPRINT}', "");
+    Error('\p{/a/-Print}');
+    Error('\P{/a/-Print}');
     Expect(1, 1114109, '\p{print}', "");
     Expect(0, 1114109, '\p{^print}', "");
     Expect(0, 1114109, '\P{print}', "");
@@ -117793,16 +119017,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^print}', "");
     Expect(1, 918000, '\P{print}', "");
     Expect(0, 918000, '\P{^print}', "");
-    Expect(1, 1114109, '\p{-print}', "");
-    Expect(0, 1114109, '\p{^-print}', "");
-    Expect(0, 1114109, '\P{-print}', "");
-    Expect(1, 1114109, '\P{^-print}', "");
-    Expect(0, 918000, '\p{-print}', "");
-    Expect(1, 918000, '\p{^-print}', "");
-    Expect(1, 918000, '\P{-print}', "");
-    Expect(0, 918000, '\P{^-print}', "");
-    Error('\p{	Is_xposixprint:=}');
-    Error('\P{	Is_xposixprint:=}');
+    Expect(1, 1114109, '\p{	Print}', "");
+    Expect(0, 1114109, '\p{^	Print}', "");
+    Expect(0, 1114109, '\P{	Print}', "");
+    Expect(1, 1114109, '\P{^	Print}', "");
+    Expect(0, 918000, '\p{	Print}', "");
+    Expect(1, 918000, '\p{^	Print}', "");
+    Expect(1, 918000, '\P{	Print}', "");
+    Expect(0, 918000, '\P{^	Print}', "");
+    Error('\p{/a/_	Is_XPosixPrint}');
+    Error('\P{/a/_	Is_XPosixPrint}');
     Expect(1, 1114109, '\p{isxposixprint}', "");
     Expect(0, 1114109, '\p{^isxposixprint}', "");
     Expect(0, 1114109, '\P{isxposixprint}', "");
@@ -117811,16 +119035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isxposixprint}', "");
     Expect(1, 918000, '\P{isxposixprint}', "");
     Expect(0, 918000, '\P{^isxposixprint}', "");
-    Expect(1, 1114109, '\p{_	IS_XPosixPrint}', "");
-    Expect(0, 1114109, '\p{^_	IS_XPosixPrint}', "");
-    Expect(0, 1114109, '\P{_	IS_XPosixPrint}', "");
-    Expect(1, 1114109, '\P{^_	IS_XPosixPrint}', "");
-    Expect(0, 918000, '\p{_	IS_XPosixPrint}', "");
-    Expect(1, 918000, '\p{^_	IS_XPosixPrint}', "");
-    Expect(1, 918000, '\P{_	IS_XPosixPrint}', "");
-    Expect(0, 918000, '\P{^_	IS_XPosixPrint}', "");
-    Error('\p{:=IS_Print}');
-    Error('\P{:=IS_Print}');
+    Expect(1, 1114109, '\p{Is_XPosixPrint}', "");
+    Expect(0, 1114109, '\p{^Is_XPosixPrint}', "");
+    Expect(0, 1114109, '\P{Is_XPosixPrint}', "");
+    Expect(1, 1114109, '\P{^Is_XPosixPrint}', "");
+    Expect(0, 918000, '\p{Is_XPosixPrint}', "");
+    Expect(1, 918000, '\p{^Is_XPosixPrint}', "");
+    Expect(1, 918000, '\P{Is_XPosixPrint}', "");
+    Expect(0, 918000, '\P{^Is_XPosixPrint}', "");
+    Error('\p{:=__is_PRINT}');
+    Error('\P{:=__is_PRINT}');
     Expect(1, 1114109, '\p{isprint}', "");
     Expect(0, 1114109, '\p{^isprint}', "");
     Expect(0, 1114109, '\P{isprint}', "");
@@ -117829,16 +119053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 918000, '\p{^isprint}', "");
     Expect(1, 918000, '\P{isprint}', "");
     Expect(0, 918000, '\P{^isprint}', "");
-    Expect(1, 1114109, '\p{  is_PRINT}', "");
-    Expect(0, 1114109, '\p{^  is_PRINT}', "");
-    Expect(0, 1114109, '\P{  is_PRINT}', "");
-    Expect(1, 1114109, '\P{^  is_PRINT}', "");
-    Expect(0, 918000, '\p{  is_PRINT}', "");
-    Expect(1, 918000, '\p{^  is_PRINT}', "");
-    Expect(1, 918000, '\P{  is_PRINT}', "");
-    Expect(0, 918000, '\P{^  is_PRINT}', "");
-    Error('\p{:=- PRIVATE_use}');
-    Error('\P{:=- PRIVATE_use}');
+    Expect(1, 1114109, '\p{ 	Is_Print}', "");
+    Expect(0, 1114109, '\p{^ 	Is_Print}', "");
+    Expect(0, 1114109, '\P{ 	Is_Print}', "");
+    Expect(1, 1114109, '\P{^ 	Is_Print}', "");
+    Expect(0, 918000, '\p{ 	Is_Print}', "");
+    Expect(1, 918000, '\p{^ 	Is_Print}', "");
+    Expect(1, 918000, '\P{ 	Is_Print}', "");
+    Expect(0, 918000, '\P{^ 	Is_Print}', "");
+    Error('\p{:=	_Private_Use}');
+    Error('\P{:=	_Private_Use}');
     Expect(1, 1114109, '\p{privateuse}', "");
     Expect(0, 1114109, '\p{^privateuse}', "");
     Expect(0, 1114109, '\P{privateuse}', "");
@@ -117847,16 +119071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^privateuse}', "");
     Expect(1, 63744, '\P{privateuse}', "");
     Expect(0, 63744, '\P{^privateuse}', "");
-    Expect(1, 1114109, '\p{Private_use}', "");
-    Expect(0, 1114109, '\p{^Private_use}', "");
-    Expect(0, 1114109, '\P{Private_use}', "");
-    Expect(1, 1114109, '\P{^Private_use}', "");
-    Expect(0, 63744, '\p{Private_use}', "");
-    Expect(1, 63744, '\p{^Private_use}', "");
-    Expect(1, 63744, '\P{Private_use}', "");
-    Expect(0, 63744, '\P{^Private_use}', "");
-    Error('\p{/a/	-Is_Private_Use}');
-    Error('\P{/a/	-Is_Private_Use}');
+    Expect(1, 1114109, '\p{ Private_Use}', "");
+    Expect(0, 1114109, '\p{^ Private_Use}', "");
+    Expect(0, 1114109, '\P{ Private_Use}', "");
+    Expect(1, 1114109, '\P{^ Private_Use}', "");
+    Expect(0, 63744, '\p{ Private_Use}', "");
+    Expect(1, 63744, '\p{^ Private_Use}', "");
+    Expect(1, 63744, '\P{ Private_Use}', "");
+    Expect(0, 63744, '\P{^ Private_Use}', "");
+    Error('\p{/a/_is_private_Use}');
+    Error('\P{/a/_is_private_Use}');
     Expect(1, 1114109, '\p{isprivateuse}', "");
     Expect(0, 1114109, '\p{^isprivateuse}', "");
     Expect(0, 1114109, '\P{isprivateuse}', "");
@@ -117865,16 +119089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^isprivateuse}', "");
     Expect(1, 63744, '\P{isprivateuse}', "");
     Expect(0, 63744, '\P{^isprivateuse}', "");
-    Expect(1, 1114109, '\p{	Is_Private_Use}', "");
-    Expect(0, 1114109, '\p{^	Is_Private_Use}', "");
-    Expect(0, 1114109, '\P{	Is_Private_Use}', "");
-    Expect(1, 1114109, '\P{^	Is_Private_Use}', "");
-    Expect(0, 63744, '\p{	Is_Private_Use}', "");
-    Expect(1, 63744, '\p{^	Is_Private_Use}', "");
-    Expect(1, 63744, '\P{	Is_Private_Use}', "");
-    Expect(0, 63744, '\P{^	Is_Private_Use}', "");
-    Error('\p{_	Co/a/}');
-    Error('\P{_	Co/a/}');
+    Expect(1, 1114109, '\p{-_Is_Private_Use}', "");
+    Expect(0, 1114109, '\p{^-_Is_Private_Use}', "");
+    Expect(0, 1114109, '\P{-_Is_Private_Use}', "");
+    Expect(1, 1114109, '\P{^-_Is_Private_Use}', "");
+    Expect(0, 63744, '\p{-_Is_Private_Use}', "");
+    Expect(1, 63744, '\p{^-_Is_Private_Use}', "");
+    Expect(1, 63744, '\P{-_Is_Private_Use}', "");
+    Expect(0, 63744, '\P{^-_Is_Private_Use}', "");
+    Error('\p{-/a/CO}');
+    Error('\P{-/a/CO}');
     Expect(1, 1114109, '\p{co}', "");
     Expect(0, 1114109, '\p{^co}', "");
     Expect(0, 1114109, '\P{co}', "");
@@ -117883,16 +119107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^co}', "");
     Expect(1, 63744, '\P{co}', "");
     Expect(0, 63744, '\P{^co}', "");
-    Expect(1, 1114109, '\p{		co}', "");
-    Expect(0, 1114109, '\p{^		co}', "");
-    Expect(0, 1114109, '\P{		co}', "");
-    Expect(1, 1114109, '\P{^		co}', "");
-    Expect(0, 63744, '\p{		co}', "");
-    Expect(1, 63744, '\p{^		co}', "");
-    Expect(1, 63744, '\P{		co}', "");
-    Expect(0, 63744, '\P{^		co}', "");
-    Error('\p{- is_Co:=}');
-    Error('\P{- is_Co:=}');
+    Expect(1, 1114109, '\p{	 CO}', "");
+    Expect(0, 1114109, '\p{^	 CO}', "");
+    Expect(0, 1114109, '\P{	 CO}', "");
+    Expect(1, 1114109, '\P{^	 CO}', "");
+    Expect(0, 63744, '\p{	 CO}', "");
+    Expect(1, 63744, '\p{^	 CO}', "");
+    Expect(1, 63744, '\P{	 CO}', "");
+    Expect(0, 63744, '\P{^	 CO}', "");
+    Error('\p{	/a/Is_co}');
+    Error('\P{	/a/Is_co}');
     Expect(1, 1114109, '\p{isco}', "");
     Expect(0, 1114109, '\p{^isco}', "");
     Expect(0, 1114109, '\P{isco}', "");
@@ -117901,16 +119125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^isco}', "");
     Expect(1, 63744, '\P{isco}', "");
     Expect(0, 63744, '\P{^isco}', "");
-    Expect(1, 1114109, '\p{	 Is_CO}', "");
-    Expect(0, 1114109, '\p{^	 Is_CO}', "");
-    Expect(0, 1114109, '\P{	 Is_CO}', "");
-    Expect(1, 1114109, '\P{^	 Is_CO}', "");
-    Expect(0, 63744, '\p{	 Is_CO}', "");
-    Expect(1, 63744, '\p{^	 Is_CO}', "");
-    Expect(1, 63744, '\P{	 Is_CO}', "");
-    Expect(0, 63744, '\P{^	 Is_CO}', "");
-    Error('\p{:=-	private_USE_Area}');
-    Error('\P{:=-	private_USE_Area}');
+    Expect(1, 1114109, '\p{Is_Co}', "");
+    Expect(0, 1114109, '\p{^Is_Co}', "");
+    Expect(0, 1114109, '\P{Is_Co}', "");
+    Expect(1, 1114109, '\P{^Is_Co}', "");
+    Expect(0, 63744, '\p{Is_Co}', "");
+    Expect(1, 63744, '\p{^Is_Co}', "");
+    Expect(1, 63744, '\P{Is_Co}', "");
+    Expect(0, 63744, '\P{^Is_Co}', "");
+    Error('\p{-/a/PRIVATE_Use_AREA}');
+    Error('\P{-/a/PRIVATE_Use_AREA}');
     Expect(1, 63743, '\p{privateusearea}', "");
     Expect(0, 63743, '\p{^privateusearea}', "");
     Expect(0, 63743, '\P{privateusearea}', "");
@@ -117919,16 +119143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^privateusearea}', "");
     Expect(1, 63744, '\P{privateusearea}', "");
     Expect(0, 63744, '\P{^privateusearea}', "");
-    Expect(1, 63743, '\p{	PRIVATE_Use_Area}', "");
-    Expect(0, 63743, '\p{^	PRIVATE_Use_Area}', "");
-    Expect(0, 63743, '\P{	PRIVATE_Use_Area}', "");
-    Expect(1, 63743, '\P{^	PRIVATE_Use_Area}', "");
-    Expect(0, 63744, '\p{	PRIVATE_Use_Area}', "");
-    Expect(1, 63744, '\p{^	PRIVATE_Use_Area}', "");
-    Expect(1, 63744, '\P{	PRIVATE_Use_Area}', "");
-    Expect(0, 63744, '\P{^	PRIVATE_Use_Area}', "");
-    Error('\p{	/a/is_private_USE_AREA}');
-    Error('\P{	/a/is_private_USE_AREA}');
+    Expect(1, 63743, '\p{-Private_USE_area}', "");
+    Expect(0, 63743, '\p{^-Private_USE_area}', "");
+    Expect(0, 63743, '\P{-Private_USE_area}', "");
+    Expect(1, 63743, '\P{^-Private_USE_area}', "");
+    Expect(0, 63744, '\p{-Private_USE_area}', "");
+    Expect(1, 63744, '\p{^-Private_USE_area}', "");
+    Expect(1, 63744, '\P{-Private_USE_area}', "");
+    Expect(0, 63744, '\P{^-Private_USE_area}', "");
+    Error('\p{:=_Is_Private_use_AREA}');
+    Error('\P{:=_Is_Private_use_AREA}');
     Expect(1, 63743, '\p{isprivateusearea}', "");
     Expect(0, 63743, '\p{^isprivateusearea}', "");
     Expect(0, 63743, '\P{isprivateusearea}', "");
@@ -117937,16 +119161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^isprivateusearea}', "");
     Expect(1, 63744, '\P{isprivateusearea}', "");
     Expect(0, 63744, '\P{^isprivateusearea}', "");
-    Expect(1, 63743, '\p{ _IS_PRIVATE_USE_AREA}', "");
-    Expect(0, 63743, '\p{^ _IS_PRIVATE_USE_AREA}', "");
-    Expect(0, 63743, '\P{ _IS_PRIVATE_USE_AREA}', "");
-    Expect(1, 63743, '\P{^ _IS_PRIVATE_USE_AREA}', "");
-    Expect(0, 63744, '\p{ _IS_PRIVATE_USE_AREA}', "");
-    Expect(1, 63744, '\p{^ _IS_PRIVATE_USE_AREA}', "");
-    Expect(1, 63744, '\P{ _IS_PRIVATE_USE_AREA}', "");
-    Expect(0, 63744, '\P{^ _IS_PRIVATE_USE_AREA}', "");
-    Error('\p{	In_Private_use_Area/a/}');
-    Error('\P{	In_Private_use_Area/a/}');
+    Expect(1, 63743, '\p{--is_private_USE_AREA}', "");
+    Expect(0, 63743, '\p{^--is_private_USE_AREA}', "");
+    Expect(0, 63743, '\P{--is_private_USE_AREA}', "");
+    Expect(1, 63743, '\P{^--is_private_USE_AREA}', "");
+    Expect(0, 63744, '\p{--is_private_USE_AREA}', "");
+    Expect(1, 63744, '\p{^--is_private_USE_AREA}', "");
+    Expect(1, 63744, '\P{--is_private_USE_AREA}', "");
+    Expect(0, 63744, '\P{^--is_private_USE_AREA}', "");
+    Error('\p{-in_private_Use_AREA/a/}');
+    Error('\P{-in_private_Use_AREA/a/}');
     Expect(1, 63743, '\p{inprivateusearea}', "");
     Expect(0, 63743, '\p{^inprivateusearea}', "");
     Expect(0, 63743, '\P{inprivateusearea}', "");
@@ -117955,16 +119179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^inprivateusearea}', "");
     Expect(1, 63744, '\P{inprivateusearea}', "");
     Expect(0, 63744, '\P{^inprivateusearea}', "");
-    Expect(1, 63743, '\p{	 In_Private_use_Area}', "");
-    Expect(0, 63743, '\p{^	 In_Private_use_Area}', "");
-    Expect(0, 63743, '\P{	 In_Private_use_Area}', "");
-    Expect(1, 63743, '\P{^	 In_Private_use_Area}', "");
-    Expect(0, 63744, '\p{	 In_Private_use_Area}', "");
-    Expect(1, 63744, '\p{^	 In_Private_use_Area}', "");
-    Expect(1, 63744, '\P{	 In_Private_use_Area}', "");
-    Expect(0, 63744, '\P{^	 In_Private_use_Area}', "");
-    Error('\p{ /a/PUA}');
-    Error('\P{ /a/PUA}');
+    Expect(1, 63743, '\p{-	In_Private_USE_Area}', "");
+    Expect(0, 63743, '\p{^-	In_Private_USE_Area}', "");
+    Expect(0, 63743, '\P{-	In_Private_USE_Area}', "");
+    Expect(1, 63743, '\P{^-	In_Private_USE_Area}', "");
+    Expect(0, 63744, '\p{-	In_Private_USE_Area}', "");
+    Expect(1, 63744, '\p{^-	In_Private_USE_Area}', "");
+    Expect(1, 63744, '\P{-	In_Private_USE_Area}', "");
+    Expect(0, 63744, '\P{^-	In_Private_USE_Area}', "");
+    Error('\p{/a/-PUA}');
+    Error('\P{/a/-PUA}');
     Expect(1, 63743, '\p{pua}', "");
     Expect(0, 63743, '\p{^pua}', "");
     Expect(0, 63743, '\P{pua}', "");
@@ -117973,16 +119197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^pua}', "");
     Expect(1, 63744, '\P{pua}', "");
     Expect(0, 63744, '\P{^pua}', "");
-    Expect(1, 63743, '\p{__PUA}', "");
-    Expect(0, 63743, '\p{^__PUA}', "");
-    Expect(0, 63743, '\P{__PUA}', "");
-    Expect(1, 63743, '\P{^__PUA}', "");
-    Expect(0, 63744, '\p{__PUA}', "");
-    Expect(1, 63744, '\p{^__PUA}', "");
-    Expect(1, 63744, '\P{__PUA}', "");
-    Expect(0, 63744, '\P{^__PUA}', "");
-    Error('\p{:=-	Is_PUA}');
-    Error('\P{:=-	Is_PUA}');
+    Expect(1, 63743, '\p{-PUA}', "");
+    Expect(0, 63743, '\p{^-PUA}', "");
+    Expect(0, 63743, '\P{-PUA}', "");
+    Expect(1, 63743, '\P{^-PUA}', "");
+    Expect(0, 63744, '\p{-PUA}', "");
+    Expect(1, 63744, '\p{^-PUA}', "");
+    Expect(1, 63744, '\P{-PUA}', "");
+    Expect(0, 63744, '\P{^-PUA}', "");
+    Error('\p{:=_ is_pua}');
+    Error('\P{:=_ is_pua}');
     Expect(1, 63743, '\p{ispua}', "");
     Expect(0, 63743, '\p{^ispua}', "");
     Expect(0, 63743, '\P{ispua}', "");
@@ -117991,16 +119215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^ispua}', "");
     Expect(1, 63744, '\P{ispua}', "");
     Expect(0, 63744, '\P{^ispua}', "");
-    Expect(1, 63743, '\p{_is_PUA}', "");
-    Expect(0, 63743, '\p{^_is_PUA}', "");
-    Expect(0, 63743, '\P{_is_PUA}', "");
-    Expect(1, 63743, '\P{^_is_PUA}', "");
-    Expect(0, 63744, '\p{_is_PUA}', "");
-    Expect(1, 63744, '\p{^_is_PUA}', "");
-    Expect(1, 63744, '\P{_is_PUA}', "");
-    Expect(0, 63744, '\P{^_is_PUA}', "");
-    Error('\p{:=	In_PUA}');
-    Error('\P{:=	In_PUA}');
+    Expect(1, 63743, '\p{-_IS_PUA}', "");
+    Expect(0, 63743, '\p{^-_IS_PUA}', "");
+    Expect(0, 63743, '\P{-_IS_PUA}', "");
+    Expect(1, 63743, '\P{^-_IS_PUA}', "");
+    Expect(0, 63744, '\p{-_IS_PUA}', "");
+    Expect(1, 63744, '\p{^-_IS_PUA}', "");
+    Expect(1, 63744, '\P{-_IS_PUA}', "");
+    Expect(0, 63744, '\P{^-_IS_PUA}', "");
+    Error('\p{/a/__IN_PUA}');
+    Error('\P{/a/__IN_PUA}');
     Expect(1, 63743, '\p{inpua}', "");
     Expect(0, 63743, '\p{^inpua}', "");
     Expect(0, 63743, '\P{inpua}', "");
@@ -118009,16 +119233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^inpua}', "");
     Expect(1, 63744, '\P{inpua}', "");
     Expect(0, 63744, '\P{^inpua}', "");
-    Expect(1, 63743, '\p{__In_pua}', "");
-    Expect(0, 63743, '\p{^__In_pua}', "");
-    Expect(0, 63743, '\P{__In_pua}', "");
-    Expect(1, 63743, '\P{^__In_pua}', "");
-    Expect(0, 63744, '\p{__In_pua}', "");
-    Expect(1, 63744, '\p{^__In_pua}', "");
-    Expect(1, 63744, '\P{__In_pua}', "");
-    Expect(0, 63744, '\P{^__In_pua}', "");
-    Error('\p{/a/-	In_Private_use}');
-    Error('\P{/a/-	In_Private_use}');
+    Expect(1, 63743, '\p{- IN_pua}', "");
+    Expect(0, 63743, '\p{^- IN_pua}', "");
+    Expect(0, 63743, '\P{- IN_pua}', "");
+    Expect(1, 63743, '\P{^- IN_pua}', "");
+    Expect(0, 63744, '\p{- IN_pua}', "");
+    Expect(1, 63744, '\p{^- IN_pua}', "");
+    Expect(1, 63744, '\P{- IN_pua}', "");
+    Expect(0, 63744, '\P{^- IN_pua}', "");
+    Error('\p{:= In_private_Use}');
+    Error('\P{:= In_private_Use}');
     Expect(1, 63743, '\p{inprivateuse}', "");
     Expect(0, 63743, '\p{^inprivateuse}', "");
     Expect(0, 63743, '\P{inprivateuse}', "");
@@ -118027,16 +119251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 63744, '\p{^inprivateuse}', "");
     Expect(1, 63744, '\P{inprivateuse}', "");
     Expect(0, 63744, '\P{^inprivateuse}', "");
-    Expect(1, 63743, '\p{	 IN_PRIVATE_Use}', "");
-    Expect(0, 63743, '\p{^	 IN_PRIVATE_Use}', "");
-    Expect(0, 63743, '\P{	 IN_PRIVATE_Use}', "");
-    Expect(1, 63743, '\P{^	 IN_PRIVATE_Use}', "");
-    Expect(0, 63744, '\p{	 IN_PRIVATE_Use}', "");
-    Expect(1, 63744, '\p{^	 IN_PRIVATE_Use}', "");
-    Expect(1, 63744, '\P{	 IN_PRIVATE_Use}', "");
-    Expect(0, 63744, '\P{^	 IN_PRIVATE_Use}', "");
-    Error('\p{:= Psalter_Pahlavi}');
-    Error('\P{:= Psalter_Pahlavi}');
+    Expect(1, 63743, '\p{_-In_PRIVATE_use}', "");
+    Expect(0, 63743, '\p{^_-In_PRIVATE_use}', "");
+    Expect(0, 63743, '\P{_-In_PRIVATE_use}', "");
+    Expect(1, 63743, '\P{^_-In_PRIVATE_use}', "");
+    Expect(0, 63744, '\p{_-In_PRIVATE_use}', "");
+    Expect(1, 63744, '\p{^_-In_PRIVATE_use}', "");
+    Expect(1, 63744, '\P{_-In_PRIVATE_use}', "");
+    Expect(0, 63744, '\P{^_-In_PRIVATE_use}', "");
+    Error('\p{	:=psalter_Pahlavi}');
+    Error('\P{	:=psalter_Pahlavi}');
     Expect(1, 68527, '\p{psalterpahlavi}', "");
     Expect(0, 68527, '\p{^psalterpahlavi}', "");
     Expect(0, 68527, '\P{psalterpahlavi}', "");
@@ -118045,16 +119269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68528, '\p{^psalterpahlavi}', "");
     Expect(1, 68528, '\P{psalterpahlavi}', "");
     Expect(0, 68528, '\P{^psalterpahlavi}', "");
-    Expect(1, 68527, '\p{	Psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^	Psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{	Psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^	Psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{	Psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^	Psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{	Psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^	Psalter_pahlavi}', "");
-    Error('\p{	 IS_PSALTER_pahlavi/a/}');
-    Error('\P{	 IS_PSALTER_pahlavi/a/}');
+    Expect(1, 68527, '\p{- Psalter_Pahlavi}', "");
+    Expect(0, 68527, '\p{^- Psalter_Pahlavi}', "");
+    Expect(0, 68527, '\P{- Psalter_Pahlavi}', "");
+    Expect(1, 68527, '\P{^- Psalter_Pahlavi}', "");
+    Expect(0, 68528, '\p{- Psalter_Pahlavi}', "");
+    Expect(1, 68528, '\p{^- Psalter_Pahlavi}', "");
+    Expect(1, 68528, '\P{- Psalter_Pahlavi}', "");
+    Expect(0, 68528, '\P{^- Psalter_Pahlavi}', "");
+    Error('\p{is_psalter_pahlavi/a/}');
+    Error('\P{is_psalter_pahlavi/a/}');
     Expect(1, 68527, '\p{ispsalterpahlavi}', "");
     Expect(0, 68527, '\p{^ispsalterpahlavi}', "");
     Expect(0, 68527, '\P{ispsalterpahlavi}', "");
@@ -118063,16 +119287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68528, '\p{^ispsalterpahlavi}', "");
     Expect(1, 68528, '\P{ispsalterpahlavi}', "");
     Expect(0, 68528, '\P{^ispsalterpahlavi}', "");
-    Expect(1, 68527, '\p{	 is_PSALTER_pahlavi}', "");
-    Expect(0, 68527, '\p{^	 is_PSALTER_pahlavi}', "");
-    Expect(0, 68527, '\P{	 is_PSALTER_pahlavi}', "");
-    Expect(1, 68527, '\P{^	 is_PSALTER_pahlavi}', "");
-    Expect(0, 68528, '\p{	 is_PSALTER_pahlavi}', "");
-    Expect(1, 68528, '\p{^	 is_PSALTER_pahlavi}', "");
-    Expect(1, 68528, '\P{	 is_PSALTER_pahlavi}', "");
-    Expect(0, 68528, '\P{^	 is_PSALTER_pahlavi}', "");
-    Error('\p{ _Phlp/a/}');
-    Error('\P{ _Phlp/a/}');
+    Expect(1, 68527, '\p{-Is_psalter_Pahlavi}', "");
+    Expect(0, 68527, '\p{^-Is_psalter_Pahlavi}', "");
+    Expect(0, 68527, '\P{-Is_psalter_Pahlavi}', "");
+    Expect(1, 68527, '\P{^-Is_psalter_Pahlavi}', "");
+    Expect(0, 68528, '\p{-Is_psalter_Pahlavi}', "");
+    Expect(1, 68528, '\p{^-Is_psalter_Pahlavi}', "");
+    Expect(1, 68528, '\P{-Is_psalter_Pahlavi}', "");
+    Expect(0, 68528, '\P{^-Is_psalter_Pahlavi}', "");
+    Error('\p{:=_ phlp}');
+    Error('\P{:=_ phlp}');
     Expect(1, 68527, '\p{phlp}', "");
     Expect(0, 68527, '\p{^phlp}', "");
     Expect(0, 68527, '\P{phlp}', "");
@@ -118081,16 +119305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68528, '\p{^phlp}', "");
     Expect(1, 68528, '\P{phlp}', "");
     Expect(0, 68528, '\P{^phlp}', "");
-    Expect(1, 68527, '\p{_-phlp}', "");
-    Expect(0, 68527, '\p{^_-phlp}', "");
-    Expect(0, 68527, '\P{_-phlp}', "");
-    Expect(1, 68527, '\P{^_-phlp}', "");
-    Expect(0, 68528, '\p{_-phlp}', "");
-    Expect(1, 68528, '\p{^_-phlp}', "");
-    Expect(1, 68528, '\P{_-phlp}', "");
-    Expect(0, 68528, '\P{^_-phlp}', "");
-    Error('\p{ -Is_phlp:=}');
-    Error('\P{ -Is_phlp:=}');
+    Expect(1, 68527, '\p{	_Phlp}', "");
+    Expect(0, 68527, '\p{^	_Phlp}', "");
+    Expect(0, 68527, '\P{	_Phlp}', "");
+    Expect(1, 68527, '\P{^	_Phlp}', "");
+    Expect(0, 68528, '\p{	_Phlp}', "");
+    Expect(1, 68528, '\p{^	_Phlp}', "");
+    Expect(1, 68528, '\P{	_Phlp}', "");
+    Expect(0, 68528, '\P{^	_Phlp}', "");
+    Error('\p{_:=is_Phlp}');
+    Error('\P{_:=is_Phlp}');
     Expect(1, 68527, '\p{isphlp}', "");
     Expect(0, 68527, '\p{^isphlp}', "");
     Expect(0, 68527, '\P{isphlp}', "");
@@ -118099,16 +119323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 68528, '\p{^isphlp}', "");
     Expect(1, 68528, '\P{isphlp}', "");
     Expect(0, 68528, '\P{^isphlp}', "");
-    Expect(1, 68527, '\p{-_is_phlp}', "");
-    Expect(0, 68527, '\p{^-_is_phlp}', "");
-    Expect(0, 68527, '\P{-_is_phlp}', "");
-    Expect(1, 68527, '\P{^-_is_phlp}', "");
-    Expect(0, 68528, '\p{-_is_phlp}', "");
-    Expect(1, 68528, '\p{^-_is_phlp}', "");
-    Expect(1, 68528, '\P{-_is_phlp}', "");
-    Expect(0, 68528, '\P{^-_is_phlp}', "");
-    Error('\p{/a/ -punct}');
-    Error('\P{/a/ -punct}');
+    Expect(1, 68527, '\p{-is_Phlp}', "");
+    Expect(0, 68527, '\p{^-is_Phlp}', "");
+    Expect(0, 68527, '\P{-is_Phlp}', "");
+    Expect(1, 68527, '\P{^-is_Phlp}', "");
+    Expect(0, 68528, '\p{-is_Phlp}', "");
+    Expect(1, 68528, '\p{^-is_Phlp}', "");
+    Expect(1, 68528, '\P{-is_Phlp}', "");
+    Expect(0, 68528, '\P{^-is_Phlp}', "");
+    Error('\p{:=punct}');
+    Error('\P{:=punct}');
     Expect(1, 125279, '\p{punct}', "");
     Expect(0, 125279, '\p{^punct}', "");
     Expect(0, 125279, '\P{punct}', "");
@@ -118117,16 +119341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^punct}', "");
     Expect(1, 125280, '\P{punct}', "");
     Expect(0, 125280, '\P{^punct}', "");
-    Expect(1, 125279, '\p{_PUNCT}', "");
-    Expect(0, 125279, '\p{^_PUNCT}', "");
-    Expect(0, 125279, '\P{_PUNCT}', "");
-    Expect(1, 125279, '\P{^_PUNCT}', "");
-    Expect(0, 125280, '\p{_PUNCT}', "");
-    Expect(1, 125280, '\p{^_PUNCT}', "");
-    Expect(1, 125280, '\P{_PUNCT}', "");
-    Expect(0, 125280, '\P{^_PUNCT}', "");
-    Error('\p{/a/	 Is_PUNCT}');
-    Error('\P{/a/	 Is_PUNCT}');
+    Expect(1, 125279, '\p{-Punct}', "");
+    Expect(0, 125279, '\p{^-Punct}', "");
+    Expect(0, 125279, '\P{-Punct}', "");
+    Expect(1, 125279, '\P{^-Punct}', "");
+    Expect(0, 125280, '\p{-Punct}', "");
+    Expect(1, 125280, '\p{^-Punct}', "");
+    Expect(1, 125280, '\P{-Punct}', "");
+    Expect(0, 125280, '\P{^-Punct}', "");
+    Error('\p{_:=Is_punct}');
+    Error('\P{_:=Is_punct}');
     Expect(1, 125279, '\p{ispunct}', "");
     Expect(0, 125279, '\p{^ispunct}', "");
     Expect(0, 125279, '\P{ispunct}', "");
@@ -118135,16 +119359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^ispunct}', "");
     Expect(1, 125280, '\P{ispunct}', "");
     Expect(0, 125280, '\P{^ispunct}', "");
-    Expect(1, 125279, '\p{-_Is_punct}', "");
-    Expect(0, 125279, '\p{^-_Is_punct}', "");
-    Expect(0, 125279, '\P{-_Is_punct}', "");
-    Expect(1, 125279, '\P{^-_Is_punct}', "");
-    Expect(0, 125280, '\p{-_Is_punct}', "");
-    Expect(1, 125280, '\p{^-_Is_punct}', "");
-    Expect(1, 125280, '\P{-_Is_punct}', "");
-    Expect(0, 125280, '\P{^-_Is_punct}', "");
-    Error('\p{ _PUNCTUATION/a/}');
-    Error('\P{ _PUNCTUATION/a/}');
+    Expect(1, 125279, '\p{ is_Punct}', "");
+    Expect(0, 125279, '\p{^ is_Punct}', "");
+    Expect(0, 125279, '\P{ is_Punct}', "");
+    Expect(1, 125279, '\P{^ is_Punct}', "");
+    Expect(0, 125280, '\p{ is_Punct}', "");
+    Expect(1, 125280, '\p{^ is_Punct}', "");
+    Expect(1, 125280, '\P{ is_Punct}', "");
+    Expect(0, 125280, '\P{^ is_Punct}', "");
+    Error('\p{- Punctuation:=}');
+    Error('\P{- Punctuation:=}');
     Expect(1, 125279, '\p{punctuation}', "");
     Expect(0, 125279, '\p{^punctuation}', "");
     Expect(0, 125279, '\P{punctuation}', "");
@@ -118153,16 +119377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^punctuation}', "");
     Expect(1, 125280, '\P{punctuation}', "");
     Expect(0, 125280, '\P{^punctuation}', "");
-    Expect(1, 125279, '\p{ punctuation}', "");
-    Expect(0, 125279, '\p{^ punctuation}', "");
-    Expect(0, 125279, '\P{ punctuation}', "");
-    Expect(1, 125279, '\P{^ punctuation}', "");
-    Expect(0, 125280, '\p{ punctuation}', "");
-    Expect(1, 125280, '\p{^ punctuation}', "");
-    Expect(1, 125280, '\P{ punctuation}', "");
-    Expect(0, 125280, '\P{^ punctuation}', "");
-    Error('\p{/a/__Is_Punctuation}');
-    Error('\P{/a/__Is_Punctuation}');
+    Expect(1, 125279, '\p{_Punctuation}', "");
+    Expect(0, 125279, '\p{^_Punctuation}', "");
+    Expect(0, 125279, '\P{_Punctuation}', "");
+    Expect(1, 125279, '\P{^_Punctuation}', "");
+    Expect(0, 125280, '\p{_Punctuation}', "");
+    Expect(1, 125280, '\p{^_Punctuation}', "");
+    Expect(1, 125280, '\P{_Punctuation}', "");
+    Expect(0, 125280, '\P{^_Punctuation}', "");
+    Error('\p{ 	Is_punctuation:=}');
+    Error('\P{ 	Is_punctuation:=}');
     Expect(1, 125279, '\p{ispunctuation}', "");
     Expect(0, 125279, '\p{^ispunctuation}', "");
     Expect(0, 125279, '\P{ispunctuation}', "");
@@ -118171,16 +119395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^ispunctuation}', "");
     Expect(1, 125280, '\P{ispunctuation}', "");
     Expect(0, 125280, '\P{^ispunctuation}', "");
-    Expect(1, 125279, '\p{_is_PUNCTUATION}', "");
-    Expect(0, 125279, '\p{^_is_PUNCTUATION}', "");
-    Expect(0, 125279, '\P{_is_PUNCTUATION}', "");
-    Expect(1, 125279, '\P{^_is_PUNCTUATION}', "");
-    Expect(0, 125280, '\p{_is_PUNCTUATION}', "");
-    Expect(1, 125280, '\p{^_is_PUNCTUATION}', "");
-    Expect(1, 125280, '\P{_is_PUNCTUATION}', "");
-    Expect(0, 125280, '\P{^_is_PUNCTUATION}', "");
-    Error('\p{	 P:=}');
-    Error('\P{	 P:=}');
+    Expect(1, 125279, '\p{	IS_Punctuation}', "");
+    Expect(0, 125279, '\p{^	IS_Punctuation}', "");
+    Expect(0, 125279, '\P{	IS_Punctuation}', "");
+    Expect(1, 125279, '\P{^	IS_Punctuation}', "");
+    Expect(0, 125280, '\p{	IS_Punctuation}', "");
+    Expect(1, 125280, '\p{^	IS_Punctuation}', "");
+    Expect(1, 125280, '\P{	IS_Punctuation}', "");
+    Expect(0, 125280, '\P{^	IS_Punctuation}', "");
+    Error('\p{/a/- p}');
+    Error('\P{/a/- p}');
     Expect(1, 125279, '\p{p}', "");
     Expect(0, 125279, '\p{^p}', "");
     Expect(0, 125279, '\P{p}', "");
@@ -118189,16 +119413,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^p}', "");
     Expect(1, 125280, '\P{p}', "");
     Expect(0, 125280, '\P{^p}', "");
-    Expect(1, 125279, '\p{-P}', "");
-    Expect(0, 125279, '\p{^-P}', "");
-    Expect(0, 125279, '\P{-P}', "");
-    Expect(1, 125279, '\P{^-P}', "");
-    Expect(0, 125280, '\p{-P}', "");
-    Expect(1, 125280, '\p{^-P}', "");
-    Expect(1, 125280, '\P{-P}', "");
-    Expect(0, 125280, '\P{^-P}', "");
-    Error('\p{	:=Is_P}');
-    Error('\P{	:=Is_P}');
+    Expect(1, 125279, '\p{-	P}', "");
+    Expect(0, 125279, '\p{^-	P}', "");
+    Expect(0, 125279, '\P{-	P}', "");
+    Expect(1, 125279, '\P{^-	P}', "");
+    Expect(0, 125280, '\p{-	P}', "");
+    Expect(1, 125280, '\p{^-	P}', "");
+    Expect(1, 125280, '\P{-	P}', "");
+    Expect(0, 125280, '\P{^-	P}', "");
+    Error('\p{	-IS_P/a/}');
+    Error('\P{	-IS_P/a/}');
     Expect(1, 125279, '\p{isp}', "");
     Expect(0, 125279, '\p{^isp}', "");
     Expect(0, 125279, '\P{isp}', "");
@@ -118207,16 +119431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 125280, '\p{^isp}', "");
     Expect(1, 125280, '\P{isp}', "");
     Expect(0, 125280, '\P{^isp}', "");
-    Expect(1, 125279, '\p{ -Is_P}', "");
-    Expect(0, 125279, '\p{^ -Is_P}', "");
-    Expect(0, 125279, '\P{ -Is_P}', "");
-    Expect(1, 125279, '\P{^ -Is_P}', "");
-    Expect(0, 125280, '\p{ -Is_P}', "");
-    Expect(1, 125280, '\p{^ -Is_P}', "");
-    Expect(1, 125280, '\P{ -Is_P}', "");
-    Expect(0, 125280, '\P{^ -Is_P}', "");
-    Error('\p{--Quotation_Mark/a/}');
-    Error('\P{--Quotation_Mark/a/}');
+    Expect(1, 125279, '\p{_ IS_p}', "");
+    Expect(0, 125279, '\p{^_ IS_p}', "");
+    Expect(0, 125279, '\P{_ IS_p}', "");
+    Expect(1, 125279, '\P{^_ IS_p}', "");
+    Expect(0, 125280, '\p{_ IS_p}', "");
+    Expect(1, 125280, '\p{^_ IS_p}', "");
+    Expect(1, 125280, '\P{_ IS_p}', "");
+    Expect(0, 125280, '\P{^_ IS_p}', "");
+    Error('\p{	-quotation_Mark/a/}');
+    Error('\P{	-quotation_Mark/a/}');
     Expect(1, 65379, '\p{quotationmark}', "");
     Expect(0, 65379, '\p{^quotationmark}', "");
     Expect(0, 65379, '\P{quotationmark}', "");
@@ -118225,16 +119449,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^quotationmark}', "");
     Expect(1, 65380, '\P{quotationmark}', "");
     Expect(0, 65380, '\P{^quotationmark}', "");
-    Expect(1, 65379, '\p{	QUOTATION_mark}', "");
-    Expect(0, 65379, '\p{^	QUOTATION_mark}', "");
-    Expect(0, 65379, '\P{	QUOTATION_mark}', "");
-    Expect(1, 65379, '\P{^	QUOTATION_mark}', "");
-    Expect(0, 65380, '\p{	QUOTATION_mark}', "");
-    Expect(1, 65380, '\p{^	QUOTATION_mark}', "");
-    Expect(1, 65380, '\P{	QUOTATION_mark}', "");
-    Expect(0, 65380, '\P{^	QUOTATION_mark}', "");
-    Error('\p{:=-IS_Quotation_mark}');
-    Error('\P{:=-IS_Quotation_mark}');
+    Expect(1, 65379, '\p{	-QUOTATION_Mark}', "");
+    Expect(0, 65379, '\p{^	-QUOTATION_Mark}', "");
+    Expect(0, 65379, '\P{	-QUOTATION_Mark}', "");
+    Expect(1, 65379, '\P{^	-QUOTATION_Mark}', "");
+    Expect(0, 65380, '\p{	-QUOTATION_Mark}', "");
+    Expect(1, 65380, '\p{^	-QUOTATION_Mark}', "");
+    Expect(1, 65380, '\P{	-QUOTATION_Mark}', "");
+    Expect(0, 65380, '\P{^	-QUOTATION_Mark}', "");
+    Error('\p{/a/Is_QUOTATION_MARK}');
+    Error('\P{/a/Is_QUOTATION_MARK}');
     Expect(1, 65379, '\p{isquotationmark}', "");
     Expect(0, 65379, '\p{^isquotationmark}', "");
     Expect(0, 65379, '\P{isquotationmark}', "");
@@ -118243,16 +119467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^isquotationmark}', "");
     Expect(1, 65380, '\P{isquotationmark}', "");
     Expect(0, 65380, '\P{^isquotationmark}', "");
-    Expect(1, 65379, '\p{ 	Is_quotation_mark}', "");
-    Expect(0, 65379, '\p{^ 	Is_quotation_mark}', "");
-    Expect(0, 65379, '\P{ 	Is_quotation_mark}', "");
-    Expect(1, 65379, '\P{^ 	Is_quotation_mark}', "");
-    Expect(0, 65380, '\p{ 	Is_quotation_mark}', "");
-    Expect(1, 65380, '\p{^ 	Is_quotation_mark}', "");
-    Expect(1, 65380, '\P{ 	Is_quotation_mark}', "");
-    Expect(0, 65380, '\P{^ 	Is_quotation_mark}', "");
-    Error('\p{-	QMark/a/}');
-    Error('\P{-	QMark/a/}');
+    Expect(1, 65379, '\p{--is_Quotation_MARK}', "");
+    Expect(0, 65379, '\p{^--is_Quotation_MARK}', "");
+    Expect(0, 65379, '\P{--is_Quotation_MARK}', "");
+    Expect(1, 65379, '\P{^--is_Quotation_MARK}', "");
+    Expect(0, 65380, '\p{--is_Quotation_MARK}', "");
+    Expect(1, 65380, '\p{^--is_Quotation_MARK}', "");
+    Expect(1, 65380, '\P{--is_Quotation_MARK}', "");
+    Expect(0, 65380, '\P{^--is_Quotation_MARK}', "");
+    Error('\p{	QMark/a/}');
+    Error('\P{	QMark/a/}');
     Expect(1, 65379, '\p{qmark}', "");
     Expect(0, 65379, '\p{^qmark}', "");
     Expect(0, 65379, '\P{qmark}', "");
@@ -118261,16 +119485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^qmark}', "");
     Expect(1, 65380, '\P{qmark}', "");
     Expect(0, 65380, '\P{^qmark}', "");
-    Expect(1, 65379, '\p{QMark}', "");
-    Expect(0, 65379, '\p{^QMark}', "");
-    Expect(0, 65379, '\P{QMark}', "");
-    Expect(1, 65379, '\P{^QMark}', "");
-    Expect(0, 65380, '\p{QMark}', "");
-    Expect(1, 65380, '\p{^QMark}', "");
-    Expect(1, 65380, '\P{QMark}', "");
-    Expect(0, 65380, '\P{^QMark}', "");
-    Error('\p{/a/	 Is_QMark}');
-    Error('\P{/a/	 Is_QMark}');
+    Expect(1, 65379, '\p{ QMARK}', "");
+    Expect(0, 65379, '\p{^ QMARK}', "");
+    Expect(0, 65379, '\P{ QMARK}', "");
+    Expect(1, 65379, '\P{^ QMARK}', "");
+    Expect(0, 65380, '\p{ QMARK}', "");
+    Expect(1, 65380, '\p{^ QMARK}', "");
+    Expect(1, 65380, '\P{ QMARK}', "");
+    Expect(0, 65380, '\P{^ QMARK}', "");
+    Error('\p{--is_qmark/a/}');
+    Error('\P{--is_qmark/a/}');
     Expect(1, 65379, '\p{isqmark}', "");
     Expect(0, 65379, '\p{^isqmark}', "");
     Expect(0, 65379, '\P{isqmark}', "");
@@ -118279,16 +119503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 65380, '\p{^isqmark}', "");
     Expect(1, 65380, '\P{isqmark}', "");
     Expect(0, 65380, '\P{^isqmark}', "");
-    Expect(1, 65379, '\p{_is_qmark}', "");
-    Expect(0, 65379, '\p{^_is_qmark}', "");
-    Expect(0, 65379, '\P{_is_qmark}', "");
-    Expect(1, 65379, '\P{^_is_qmark}', "");
-    Expect(0, 65380, '\p{_is_qmark}', "");
-    Expect(1, 65380, '\p{^_is_qmark}', "");
-    Expect(1, 65380, '\P{_is_qmark}', "");
-    Expect(0, 65380, '\P{^_is_qmark}', "");
-    Error('\p{_-Radical:=}');
-    Error('\P{_-Radical:=}');
+    Expect(1, 65379, '\p{-is_QMARK}', "");
+    Expect(0, 65379, '\p{^-is_QMARK}', "");
+    Expect(0, 65379, '\P{-is_QMARK}', "");
+    Expect(1, 65379, '\P{^-is_QMARK}', "");
+    Expect(0, 65380, '\p{-is_QMARK}', "");
+    Expect(1, 65380, '\p{^-is_QMARK}', "");
+    Expect(1, 65380, '\P{-is_QMARK}', "");
+    Expect(0, 65380, '\P{^-is_QMARK}', "");
+    Error('\p{ /a/Radical}');
+    Error('\P{ /a/Radical}');
     Expect(1, 12245, '\p{radical}', "");
     Expect(0, 12245, '\p{^radical}', "");
     Expect(0, 12245, '\P{radical}', "");
@@ -118297,16 +119521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12246, '\p{^radical}', "");
     Expect(1, 12246, '\P{radical}', "");
     Expect(0, 12246, '\P{^radical}', "");
-    Expect(1, 12245, '\p{	 radical}', "");
-    Expect(0, 12245, '\p{^	 radical}', "");
-    Expect(0, 12245, '\P{	 radical}', "");
-    Expect(1, 12245, '\P{^	 radical}', "");
-    Expect(0, 12246, '\p{	 radical}', "");
-    Expect(1, 12246, '\p{^	 radical}', "");
-    Expect(1, 12246, '\P{	 radical}', "");
-    Expect(0, 12246, '\P{^	 radical}', "");
-    Error('\p{/a/	is_Radical}');
-    Error('\P{/a/	is_Radical}');
+    Expect(1, 12245, '\p{	-Radical}', "");
+    Expect(0, 12245, '\p{^	-Radical}', "");
+    Expect(0, 12245, '\P{	-Radical}', "");
+    Expect(1, 12245, '\P{^	-Radical}', "");
+    Expect(0, 12246, '\p{	-Radical}', "");
+    Expect(1, 12246, '\p{^	-Radical}', "");
+    Expect(1, 12246, '\P{	-Radical}', "");
+    Expect(0, 12246, '\P{^	-Radical}', "");
+    Error('\p{:= 	Is_RADICAL}');
+    Error('\P{:= 	Is_RADICAL}');
     Expect(1, 12245, '\p{isradical}', "");
     Expect(0, 12245, '\p{^isradical}', "");
     Expect(0, 12245, '\P{isradical}', "");
@@ -118315,16 +119539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 12246, '\p{^isradical}', "");
     Expect(1, 12246, '\P{isradical}', "");
     Expect(0, 12246, '\P{^isradical}', "");
-    Expect(1, 12245, '\p{	 Is_RADICAL}', "");
-    Expect(0, 12245, '\p{^	 Is_RADICAL}', "");
-    Expect(0, 12245, '\P{	 Is_RADICAL}', "");
-    Expect(1, 12245, '\P{^	 Is_RADICAL}', "");
-    Expect(0, 12246, '\p{	 Is_RADICAL}', "");
-    Expect(1, 12246, '\p{^	 Is_RADICAL}', "");
-    Expect(1, 12246, '\P{	 Is_RADICAL}', "");
-    Expect(0, 12246, '\P{^	 Is_RADICAL}', "");
-    Error('\p{/a/-	Regional_INDICATOR}');
-    Error('\P{/a/-	Regional_INDICATOR}');
+    Expect(1, 12245, '\p{	 is_RADICAL}', "");
+    Expect(0, 12245, '\p{^	 is_RADICAL}', "");
+    Expect(0, 12245, '\P{	 is_RADICAL}', "");
+    Expect(1, 12245, '\P{^	 is_RADICAL}', "");
+    Expect(0, 12246, '\p{	 is_RADICAL}', "");
+    Expect(1, 12246, '\p{^	 is_RADICAL}', "");
+    Expect(1, 12246, '\P{	 is_RADICAL}', "");
+    Expect(0, 12246, '\P{^	 is_RADICAL}', "");
+    Error('\p{ :=REGIONAL_INDICATOR}');
+    Error('\P{ :=REGIONAL_INDICATOR}');
     Expect(1, 127487, '\p{regionalindicator}', "");
     Expect(0, 127487, '\p{^regionalindicator}', "");
     Expect(0, 127487, '\P{regionalindicator}', "");
@@ -118333,16 +119557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^regionalindicator}', "");
     Expect(1, 127488, '\P{regionalindicator}', "");
     Expect(0, 127488, '\P{^regionalindicator}', "");
-    Expect(1, 127487, '\p{-Regional_indicator}', "");
-    Expect(0, 127487, '\p{^-Regional_indicator}', "");
-    Expect(0, 127487, '\P{-Regional_indicator}', "");
-    Expect(1, 127487, '\P{^-Regional_indicator}', "");
-    Expect(0, 127488, '\p{-Regional_indicator}', "");
-    Expect(1, 127488, '\p{^-Regional_indicator}', "");
-    Expect(1, 127488, '\P{-Regional_indicator}', "");
-    Expect(0, 127488, '\P{^-Regional_indicator}', "");
-    Error('\p{/a/is_REGIONAL_indicator}');
-    Error('\P{/a/is_REGIONAL_indicator}');
+    Expect(1, 127487, '\p{_-Regional_INDICATOR}', "");
+    Expect(0, 127487, '\p{^_-Regional_INDICATOR}', "");
+    Expect(0, 127487, '\P{_-Regional_INDICATOR}', "");
+    Expect(1, 127487, '\P{^_-Regional_INDICATOR}', "");
+    Expect(0, 127488, '\p{_-Regional_INDICATOR}', "");
+    Expect(1, 127488, '\p{^_-Regional_INDICATOR}', "");
+    Expect(1, 127488, '\P{_-Regional_INDICATOR}', "");
+    Expect(0, 127488, '\P{^_-Regional_INDICATOR}', "");
+    Error('\p{	 Is_Regional_Indicator:=}');
+    Error('\P{	 Is_Regional_Indicator:=}');
     Expect(1, 127487, '\p{isregionalindicator}', "");
     Expect(0, 127487, '\p{^isregionalindicator}', "");
     Expect(0, 127487, '\P{isregionalindicator}', "");
@@ -118351,16 +119575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^isregionalindicator}', "");
     Expect(1, 127488, '\P{isregionalindicator}', "");
     Expect(0, 127488, '\P{^isregionalindicator}', "");
-    Expect(1, 127487, '\p{_ Is_REGIONAL_INDICATOR}', "");
-    Expect(0, 127487, '\p{^_ Is_REGIONAL_INDICATOR}', "");
-    Expect(0, 127487, '\P{_ Is_REGIONAL_INDICATOR}', "");
-    Expect(1, 127487, '\P{^_ Is_REGIONAL_INDICATOR}', "");
-    Expect(0, 127488, '\p{_ Is_REGIONAL_INDICATOR}', "");
-    Expect(1, 127488, '\p{^_ Is_REGIONAL_INDICATOR}', "");
-    Expect(1, 127488, '\P{_ Is_REGIONAL_INDICATOR}', "");
-    Expect(0, 127488, '\P{^_ Is_REGIONAL_INDICATOR}', "");
-    Error('\p{:=__ri}');
-    Error('\P{:=__ri}');
+    Expect(1, 127487, '\p{ -IS_REGIONAL_Indicator}', "");
+    Expect(0, 127487, '\p{^ -IS_REGIONAL_Indicator}', "");
+    Expect(0, 127487, '\P{ -IS_REGIONAL_Indicator}', "");
+    Expect(1, 127487, '\P{^ -IS_REGIONAL_Indicator}', "");
+    Expect(0, 127488, '\p{ -IS_REGIONAL_Indicator}', "");
+    Expect(1, 127488, '\p{^ -IS_REGIONAL_Indicator}', "");
+    Expect(1, 127488, '\P{ -IS_REGIONAL_Indicator}', "");
+    Expect(0, 127488, '\P{^ -IS_REGIONAL_Indicator}', "");
+    Error('\p{:=RI}');
+    Error('\P{:=RI}');
     Expect(1, 127487, '\p{ri}', "");
     Expect(0, 127487, '\p{^ri}', "");
     Expect(0, 127487, '\P{ri}', "");
@@ -118369,16 +119593,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^ri}', "");
     Expect(1, 127488, '\P{ri}', "");
     Expect(0, 127488, '\P{^ri}', "");
-    Expect(1, 127487, '\p{ _ri}', "");
-    Expect(0, 127487, '\p{^ _ri}', "");
-    Expect(0, 127487, '\P{ _ri}', "");
-    Expect(1, 127487, '\P{^ _ri}', "");
-    Expect(0, 127488, '\p{ _ri}', "");
-    Expect(1, 127488, '\p{^ _ri}', "");
-    Expect(1, 127488, '\P{ _ri}', "");
-    Expect(0, 127488, '\P{^ _ri}', "");
-    Error('\p{-:=is_ri}');
-    Error('\P{-:=is_ri}');
+    Expect(1, 127487, '\p{-_ri}', "");
+    Expect(0, 127487, '\p{^-_ri}', "");
+    Expect(0, 127487, '\P{-_ri}', "");
+    Expect(1, 127487, '\P{^-_ri}', "");
+    Expect(0, 127488, '\p{-_ri}', "");
+    Expect(1, 127488, '\p{^-_ri}', "");
+    Expect(1, 127488, '\P{-_ri}', "");
+    Expect(0, 127488, '\P{^-_ri}', "");
+    Error('\p{_/a/is_RI}');
+    Error('\P{_/a/is_RI}');
     Expect(1, 127487, '\p{isri}', "");
     Expect(0, 127487, '\p{^isri}', "");
     Expect(0, 127487, '\P{isri}', "");
@@ -118387,16 +119611,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 127488, '\p{^isri}', "");
     Expect(1, 127488, '\P{isri}', "");
     Expect(0, 127488, '\P{^isri}', "");
-    Expect(1, 127487, '\p{	is_RI}', "");
-    Expect(0, 127487, '\p{^	is_RI}', "");
-    Expect(0, 127487, '\P{	is_RI}', "");
-    Expect(1, 127487, '\P{^	is_RI}', "");
-    Expect(0, 127488, '\p{	is_RI}', "");
-    Expect(1, 127488, '\p{^	is_RI}', "");
-    Expect(1, 127488, '\P{	is_RI}', "");
-    Expect(0, 127488, '\P{^	is_RI}', "");
-    Error('\p{:=rejang}');
-    Error('\P{:=rejang}');
+    Expect(1, 127487, '\p{__is_RI}', "");
+    Expect(0, 127487, '\p{^__is_RI}', "");
+    Expect(0, 127487, '\P{__is_RI}', "");
+    Expect(1, 127487, '\P{^__is_RI}', "");
+    Expect(0, 127488, '\p{__is_RI}', "");
+    Expect(1, 127488, '\p{^__is_RI}', "");
+    Expect(1, 127488, '\P{__is_RI}', "");
+    Expect(0, 127488, '\P{^__is_RI}', "");
+    Error('\p{:=	_Rejang}');
+    Error('\P{:=	_Rejang}');
     Expect(1, 43359, '\p{rejang}', "");
     Expect(0, 43359, '\p{^rejang}', "");
     Expect(0, 43359, '\P{rejang}', "");
@@ -118405,16 +119629,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43360, '\p{^rejang}', "");
     Expect(1, 43360, '\P{rejang}', "");
     Expect(0, 43360, '\P{^rejang}', "");
-    Expect(1, 43359, '\p{	 REJANG}', "");
-    Expect(0, 43359, '\p{^	 REJANG}', "");
-    Expect(0, 43359, '\P{	 REJANG}', "");
-    Expect(1, 43359, '\P{^	 REJANG}', "");
-    Expect(0, 43360, '\p{	 REJANG}', "");
-    Expect(1, 43360, '\p{^	 REJANG}', "");
-    Expect(1, 43360, '\P{	 REJANG}', "");
-    Expect(0, 43360, '\P{^	 REJANG}', "");
-    Error('\p{:= Is_rejang}');
-    Error('\P{:= Is_rejang}');
+    Expect(1, 43359, '\p{_REJANG}', "");
+    Expect(0, 43359, '\p{^_REJANG}', "");
+    Expect(0, 43359, '\P{_REJANG}', "");
+    Expect(1, 43359, '\P{^_REJANG}', "");
+    Expect(0, 43360, '\p{_REJANG}', "");
+    Expect(1, 43360, '\p{^_REJANG}', "");
+    Expect(1, 43360, '\P{_REJANG}', "");
+    Expect(0, 43360, '\P{^_REJANG}', "");
+    Error('\p{_-Is_Rejang/a/}');
+    Error('\P{_-Is_Rejang/a/}');
     Expect(1, 43359, '\p{isrejang}', "");
     Expect(0, 43359, '\p{^isrejang}', "");
     Expect(0, 43359, '\P{isrejang}', "");
@@ -118423,16 +119647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43360, '\p{^isrejang}', "");
     Expect(1, 43360, '\P{isrejang}', "");
     Expect(0, 43360, '\P{^isrejang}', "");
-    Expect(1, 43359, '\p{  is_Rejang}', "");
-    Expect(0, 43359, '\p{^  is_Rejang}', "");
-    Expect(0, 43359, '\P{  is_Rejang}', "");
-    Expect(1, 43359, '\P{^  is_Rejang}', "");
-    Expect(0, 43360, '\p{  is_Rejang}', "");
-    Expect(1, 43360, '\p{^  is_Rejang}', "");
-    Expect(1, 43360, '\P{  is_Rejang}', "");
-    Expect(0, 43360, '\P{^  is_Rejang}', "");
-    Error('\p{/a/_Rjng}');
-    Error('\P{/a/_Rjng}');
+    Expect(1, 43359, '\p{		is_REJANG}', "");
+    Expect(0, 43359, '\p{^		is_REJANG}', "");
+    Expect(0, 43359, '\P{		is_REJANG}', "");
+    Expect(1, 43359, '\P{^		is_REJANG}', "");
+    Expect(0, 43360, '\p{		is_REJANG}', "");
+    Expect(1, 43360, '\p{^		is_REJANG}', "");
+    Expect(1, 43360, '\P{		is_REJANG}', "");
+    Expect(0, 43360, '\P{^		is_REJANG}', "");
+    Error('\p{		Rjng/a/}');
+    Error('\P{		Rjng/a/}');
     Expect(1, 43359, '\p{rjng}', "");
     Expect(0, 43359, '\p{^rjng}', "");
     Expect(0, 43359, '\P{rjng}', "");
@@ -118441,16 +119665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43360, '\p{^rjng}', "");
     Expect(1, 43360, '\P{rjng}', "");
     Expect(0, 43360, '\P{^rjng}', "");
-    Expect(1, 43359, '\p{_-Rjng}', "");
-    Expect(0, 43359, '\p{^_-Rjng}', "");
-    Expect(0, 43359, '\P{_-Rjng}', "");
-    Expect(1, 43359, '\P{^_-Rjng}', "");
-    Expect(0, 43360, '\p{_-Rjng}', "");
-    Expect(1, 43360, '\p{^_-Rjng}', "");
-    Expect(1, 43360, '\P{_-Rjng}', "");
-    Expect(0, 43360, '\P{^_-Rjng}', "");
-    Error('\p{ :=Is_Rjng}');
-    Error('\P{ :=Is_Rjng}');
+    Expect(1, 43359, '\p{-RJNG}', "");
+    Expect(0, 43359, '\p{^-RJNG}', "");
+    Expect(0, 43359, '\P{-RJNG}', "");
+    Expect(1, 43359, '\P{^-RJNG}', "");
+    Expect(0, 43360, '\p{-RJNG}', "");
+    Expect(1, 43360, '\p{^-RJNG}', "");
+    Expect(1, 43360, '\P{-RJNG}', "");
+    Expect(0, 43360, '\P{^-RJNG}', "");
+    Error('\p{	Is_Rjng:=}');
+    Error('\P{	Is_Rjng:=}');
     Expect(1, 43359, '\p{isrjng}', "");
     Expect(0, 43359, '\p{^isrjng}', "");
     Expect(0, 43359, '\P{isrjng}', "");
@@ -118459,16 +119683,18 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 43360, '\p{^isrjng}', "");
     Expect(1, 43360, '\P{isrjng}', "");
     Expect(0, 43360, '\P{^isrjng}', "");
-    Expect(1, 43359, '\p{ 	IS_RJNG}', "");
-    Expect(0, 43359, '\p{^ 	IS_RJNG}', "");
-    Expect(0, 43359, '\P{ 	IS_RJNG}', "");
-    Expect(1, 43359, '\P{^ 	IS_RJNG}', "");
-    Expect(0, 43360, '\p{ 	IS_RJNG}', "");
-    Expect(1, 43360, '\p{^ 	IS_RJNG}', "");
-    Expect(1, 43360, '\P{ 	IS_RJNG}', "");
-    Expect(0, 43360, '\P{^ 	IS_RJNG}', "");
-    Error('\p{/a/	Rumi_NUMERAL_Symbols}');
-    Error('\P{/a/	Rumi_NUMERAL_Symbols}');
+    Expect(1, 43359, '\p{  Is_rjng}', "");
+    Expect(0, 43359, '\p{^  Is_rjng}', "");
+    Expect(0, 43359, '\P{  Is_rjng}', "");
+    Expect(1, 43359, '\P{^  Is_rjng}', "");
+    Expect(0, 43360, '\p{  Is_rjng}', "");
+    Expect(1, 43360, '\p{^  Is_rjng}', "");
+    Expect(1, 43360, '\P{  Is_rjng}', "");
+    Expect(0, 43360, '\P{^  Is_rjng}', "");
+    Error('\p{ 	Rumi_Numeral_symbols/a/}');
+}
+if (!$::TESTCHUNK or $::TESTCHUNK == 4) {
+    Error('\P{ 	Rumi_Numeral_symbols/a/}');
     Expect(1, 69247, '\p{ruminumeralsymbols}', "");
     Expect(0, 69247, '\p{^ruminumeralsymbols}', "");
     Expect(0, 69247, '\P{ruminumeralsymbols}', "");
@@ -118477,16 +119703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69248, '\p{^ruminumeralsymbols}', "");
     Expect(1, 69248, '\P{ruminumeralsymbols}', "");
     Expect(0, 69248, '\P{^ruminumeralsymbols}', "");
-    Expect(1, 69247, '\p{	RUMI_Numeral_Symbols}', "");
-    Expect(0, 69247, '\p{^	RUMI_Numeral_Symbols}', "");
-    Expect(0, 69247, '\P{	RUMI_Numeral_Symbols}', "");
-    Expect(1, 69247, '\P{^	RUMI_Numeral_Symbols}', "");
-    Expect(0, 69248, '\p{	RUMI_Numeral_Symbols}', "");
-    Expect(1, 69248, '\p{^	RUMI_Numeral_Symbols}', "");
-    Expect(1, 69248, '\P{	RUMI_Numeral_Symbols}', "");
-    Expect(0, 69248, '\P{^	RUMI_Numeral_Symbols}', "");
-    Error('\p{_:=IS_Rumi_Numeral_Symbols}');
-    Error('\P{_:=IS_Rumi_Numeral_Symbols}');
+    Expect(1, 69247, '\p{ _RUMI_NUMERAL_Symbols}', "");
+    Expect(0, 69247, '\p{^ _RUMI_NUMERAL_Symbols}', "");
+    Expect(0, 69247, '\P{ _RUMI_NUMERAL_Symbols}', "");
+    Expect(1, 69247, '\P{^ _RUMI_NUMERAL_Symbols}', "");
+    Expect(0, 69248, '\p{ _RUMI_NUMERAL_Symbols}', "");
+    Expect(1, 69248, '\p{^ _RUMI_NUMERAL_Symbols}', "");
+    Expect(1, 69248, '\P{ _RUMI_NUMERAL_Symbols}', "");
+    Expect(0, 69248, '\P{^ _RUMI_NUMERAL_Symbols}', "");
+    Error('\p{-Is_RUMI_Numeral_Symbols/a/}');
+    Error('\P{-Is_RUMI_Numeral_Symbols/a/}');
     Expect(1, 69247, '\p{isruminumeralsymbols}', "");
     Expect(0, 69247, '\p{^isruminumeralsymbols}', "");
     Expect(0, 69247, '\P{isruminumeralsymbols}', "");
@@ -118495,16 +119721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69248, '\p{^isruminumeralsymbols}', "");
     Expect(1, 69248, '\P{isruminumeralsymbols}', "");
     Expect(0, 69248, '\P{^isruminumeralsymbols}', "");
-    Expect(1, 69247, '\p{-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(0, 69247, '\p{^-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(0, 69247, '\P{-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(1, 69247, '\P{^-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(0, 69248, '\p{-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(1, 69248, '\p{^-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(1, 69248, '\P{-Is_rumi_NUMERAL_Symbols}', "");
-    Expect(0, 69248, '\P{^-Is_rumi_NUMERAL_Symbols}', "");
-    Error('\p{/a/	-in_rumi_NUMERAL_Symbols}');
-    Error('\P{/a/	-in_rumi_NUMERAL_Symbols}');
+    Expect(1, 69247, '\p{ Is_rumi_NUMERAL_symbols}', "");
+    Expect(0, 69247, '\p{^ Is_rumi_NUMERAL_symbols}', "");
+    Expect(0, 69247, '\P{ Is_rumi_NUMERAL_symbols}', "");
+    Expect(1, 69247, '\P{^ Is_rumi_NUMERAL_symbols}', "");
+    Expect(0, 69248, '\p{ Is_rumi_NUMERAL_symbols}', "");
+    Expect(1, 69248, '\p{^ Is_rumi_NUMERAL_symbols}', "");
+    Expect(1, 69248, '\P{ Is_rumi_NUMERAL_symbols}', "");
+    Expect(0, 69248, '\P{^ Is_rumi_NUMERAL_symbols}', "");
+    Error('\p{/a/	In_RUMI_Numeral_symbols}');
+    Error('\P{/a/	In_RUMI_Numeral_symbols}');
     Expect(1, 69247, '\p{inruminumeralsymbols}', "");
     Expect(0, 69247, '\p{^inruminumeralsymbols}', "");
     Expect(0, 69247, '\P{inruminumeralsymbols}', "");
@@ -118513,16 +119739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69248, '\p{^inruminumeralsymbols}', "");
     Expect(1, 69248, '\P{inruminumeralsymbols}', "");
     Expect(0, 69248, '\P{^inruminumeralsymbols}', "");
-    Expect(1, 69247, '\p{- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(0, 69247, '\p{^- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(0, 69247, '\P{- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(1, 69247, '\P{^- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(0, 69248, '\p{- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(1, 69248, '\p{^- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(1, 69248, '\P{- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Expect(0, 69248, '\P{^- in_Rumi_NUMERAL_SYMBOLS}', "");
-    Error('\p{/a/ 	Rumi}');
-    Error('\P{/a/ 	Rumi}');
+    Expect(1, 69247, '\p{- IN_Rumi_Numeral_symbols}', "");
+    Expect(0, 69247, '\p{^- IN_Rumi_Numeral_symbols}', "");
+    Expect(0, 69247, '\P{- IN_Rumi_Numeral_symbols}', "");
+    Expect(1, 69247, '\P{^- IN_Rumi_Numeral_symbols}', "");
+    Expect(0, 69248, '\p{- IN_Rumi_Numeral_symbols}', "");
+    Expect(1, 69248, '\p{^- IN_Rumi_Numeral_symbols}', "");
+    Expect(1, 69248, '\P{- IN_Rumi_Numeral_symbols}', "");
+    Expect(0, 69248, '\P{^- IN_Rumi_Numeral_symbols}', "");
+    Error('\p{	 RUMI/a/}');
+    Error('\P{	 RUMI/a/}');
     Expect(1, 69247, '\p{rumi}', "");
     Expect(0, 69247, '\p{^rumi}', "");
     Expect(0, 69247, '\P{rumi}', "");
@@ -118531,16 +119757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69248, '\p{^rumi}', "");
     Expect(1, 69248, '\P{rumi}', "");
     Expect(0, 69248, '\P{^rumi}', "");
-    Expect(1, 69247, '\p{ 	rumi}', "");
-    Expect(0, 69247, '\p{^ 	rumi}', "");
-    Expect(0, 69247, '\P{ 	rumi}', "");
-    Expect(1, 69247, '\P{^ 	rumi}', "");
-    Expect(0, 69248, '\p{ 	rumi}', "");
-    Expect(1, 69248, '\p{^ 	rumi}', "");
-    Expect(1, 69248, '\P{ 	rumi}', "");
-    Expect(0, 69248, '\P{^ 	rumi}', "");
-    Error('\p{/a/-	is_Rumi}');
-    Error('\P{/a/-	is_Rumi}');
+    Expect(1, 69247, '\p{--rumi}', "");
+    Expect(0, 69247, '\p{^--rumi}', "");
+    Expect(0, 69247, '\P{--rumi}', "");
+    Expect(1, 69247, '\P{^--rumi}', "");
+    Expect(0, 69248, '\p{--rumi}', "");
+    Expect(1, 69248, '\p{^--rumi}', "");
+    Expect(1, 69248, '\P{--rumi}', "");
+    Expect(0, 69248, '\P{^--rumi}', "");
+    Error('\p{ 	Is_Rumi:=}');
+    Error('\P{ 	Is_Rumi:=}');
     Expect(1, 69247, '\p{isrumi}', "");
     Expect(0, 69247, '\p{^isrumi}', "");
     Expect(0, 69247, '\P{isrumi}', "");
@@ -118549,16 +119775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69248, '\p{^isrumi}', "");
     Expect(1, 69248, '\P{isrumi}', "");
     Expect(0, 69248, '\P{^isrumi}', "");
-    Expect(1, 69247, '\p{ IS_Rumi}', "");
-    Expect(0, 69247, '\p{^ IS_Rumi}', "");
-    Expect(0, 69247, '\P{ IS_Rumi}', "");
-    Expect(1, 69247, '\P{^ IS_Rumi}', "");
-    Expect(0, 69248, '\p{ IS_Rumi}', "");
-    Expect(1, 69248, '\p{^ IS_Rumi}', "");
-    Expect(1, 69248, '\P{ IS_Rumi}', "");
-    Expect(0, 69248, '\P{^ IS_Rumi}', "");
-    Error('\p{	-in_Rumi:=}');
-    Error('\P{	-in_Rumi:=}');
+    Expect(1, 69247, '\p{_is_rumi}', "");
+    Expect(0, 69247, '\p{^_is_rumi}', "");
+    Expect(0, 69247, '\P{_is_rumi}', "");
+    Expect(1, 69247, '\P{^_is_rumi}', "");
+    Expect(0, 69248, '\p{_is_rumi}', "");
+    Expect(1, 69248, '\p{^_is_rumi}', "");
+    Expect(1, 69248, '\P{_is_rumi}', "");
+    Expect(0, 69248, '\P{^_is_rumi}', "");
+    Error('\p{-_in_rumi/a/}');
+    Error('\P{-_in_rumi/a/}');
     Expect(1, 69247, '\p{inrumi}', "");
     Expect(0, 69247, '\p{^inrumi}', "");
     Expect(0, 69247, '\P{inrumi}', "");
@@ -118567,16 +119793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 69248, '\p{^inrumi}', "");
     Expect(1, 69248, '\P{inrumi}', "");
     Expect(0, 69248, '\P{^inrumi}', "");
-    Expect(1, 69247, '\p{ in_Rumi}', "");
-    Expect(0, 69247, '\p{^ in_Rumi}', "");
-    Expect(0, 69247, '\P{ in_Rumi}', "");
-    Expect(1, 69247, '\P{^ in_Rumi}', "");
-    Expect(0, 69248, '\p{ in_Rumi}', "");
-    Expect(1, 69248, '\p{^ in_Rumi}', "");
-    Expect(1, 69248, '\P{ in_Rumi}', "");
-    Expect(0, 69248, '\P{^ in_Rumi}', "");
-    Error('\p{	-Runic/a/}');
-    Error('\P{	-Runic/a/}');
+    Expect(1, 69247, '\p{-	In_RUMI}', "");
+    Expect(0, 69247, '\p{^-	In_RUMI}', "");
+    Expect(0, 69247, '\P{-	In_RUMI}', "");
+    Expect(1, 69247, '\P{^-	In_RUMI}', "");
+    Expect(0, 69248, '\p{-	In_RUMI}', "");
+    Expect(1, 69248, '\p{^-	In_RUMI}', "");
+    Expect(1, 69248, '\P{-	In_RUMI}', "");
+    Expect(0, 69248, '\P{^-	In_RUMI}', "");
+    Error('\p{  Runic/a/}');
+    Error('\P{  Runic/a/}');
     Expect(1, 5880, '\p{runic}', "");
     Expect(0, 5880, '\p{^runic}', "");
     Expect(0, 5880, '\P{runic}', "");
@@ -118585,36 +119811,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 3) 
     Expect(1, 5881, '\p{^runic}', "");
     Expect(1, 5881, '\P{runic}', "");
     Expect(0, 5881, '\P{^runic}', "");
-    Expect(1, 5880, '\p{	 runic}', "");
-    Expect(0, 5880, '\p{^	 runic}', "");
-    Expect(0, 5880, '\P{	 runic}', "");
-    Expect(1, 5880, '\P{^	 runic}', "");
-    Expect(0, 5881, '\p{	 runic}', "");
-    Expect(1, 5881, '\p{^	 runic}', "");
-    Expect(1, 5881, '\P{	 runic}', "");
-    Expect(0, 5881, '\P{^	 runic}', "");
-    Error('\p{:=Is_Runic}');
-    Error('\P{:=Is_Runic}');
+    Expect(1, 5880, '\p{ 	RUNIC}', "");
+    Expect(0, 5880, '\p{^ 	RUNIC}', "");
+    Expect(0, 5880, '\P{ 	RUNIC}', "");
+    Expect(1, 5880, '\P{^ 	RUNIC}', "");
+    Expect(0, 5881, '\p{ 	RUNIC}', "");
+    Expect(1, 5881, '\p{^ 	RUNIC}', "");
+    Expect(1, 5881, '\P{ 	RUNIC}', "");
+    Expect(0, 5881, '\P{^ 	RUNIC}', "");
+    Error('\p{ _Is_runic:=}');
+    Error('\P{ _Is_runic:=}');
     Expect(1, 5880, '\p{isrunic}', "");
     Expect(0, 5880, '\p{^isrunic}', "");
     Expect(0, 5880, '\P{isrunic}', "");
     Expect(1, 5880, '\P{^isrunic}', "");
     Expect(0, 5881, '\p{isrunic}', "");
-}
-if (!$::TESTCHUNK or $::TESTCHUNK == 4) {
     Expect(1, 5881, '\p{^isrunic}', "");
     Expect(1, 5881, '\P{isrunic}', "");
     Expect(0, 5881, '\P{^isrunic}', "");
-    Expect(1, 5880, '\p{-is_runic}', "");
-    Expect(0, 5880, '\p{^-is_runic}', "");
-    Expect(0, 5880, '\P{-is_runic}', "");
-    Expect(1, 5880, '\P{^-is_runic}', "");
-    Expect(0, 5881, '\p{-is_runic}', "");
-    Expect(1, 5881, '\p{^-is_runic}', "");
-    Expect(1, 5881, '\P{-is_runic}', "");
-    Expect(0, 5881, '\P{^-is_runic}', "");
-    Error('\p{:=_	RUNR}');
-    Error('\P{:=_	RUNR}');
+    Expect(1, 5880, '\p{-_Is_runic}', "");
+    Expect(0, 5880, '\p{^-_Is_runic}', "");
+    Expect(0, 5880, '\P{-_Is_runic}', "");
+    Expect(1, 5880, '\P{^-_Is_runic}', "");
+    Expect(0, 5881, '\p{-_Is_runic}', "");
+    Expect(1, 5881, '\p{^-_Is_runic}', "");
+    Expect(1, 5881, '\P{-_Is_runic}', "");
+    Expect(0, 5881, '\P{^-_Is_runic}', "");
+    Error('\p{_/a/runr}');
+    Error('\P{_/a/runr}');
     Expect(1, 5880, '\p{runr}', "");
     Expect(0, 5880, '\p{^runr}', "");
     Expect(0, 5880, '\P{runr}', "");
@@ -118623,16 +119847,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5881, '\p{^runr}', "");
     Expect(1, 5881, '\P{runr}', "");
     Expect(0, 5881, '\P{^runr}', "");
-    Expect(1, 5880, '\p{ Runr}', "");
-    Expect(0, 5880, '\p{^ Runr}', "");
-    Expect(0, 5880, '\P{ Runr}', "");
-    Expect(1, 5880, '\P{^ Runr}', "");
-    Expect(0, 5881, '\p{ Runr}', "");
-    Expect(1, 5881, '\p{^ Runr}', "");
-    Expect(1, 5881, '\P{ Runr}', "");
-    Expect(0, 5881, '\P{^ Runr}', "");
-    Error('\p{-	Is_Runr:=}');
-    Error('\P{-	Is_Runr:=}');
+    Expect(1, 5880, '\p{_	runr}', "");
+    Expect(0, 5880, '\p{^_	runr}', "");
+    Expect(0, 5880, '\P{_	runr}', "");
+    Expect(1, 5880, '\P{^_	runr}', "");
+    Expect(0, 5881, '\p{_	runr}', "");
+    Expect(1, 5881, '\p{^_	runr}', "");
+    Expect(1, 5881, '\P{_	runr}', "");
+    Expect(0, 5881, '\P{^_	runr}', "");
+    Error('\p{-/a/Is_Runr}');
+    Error('\P{-/a/Is_Runr}');
     Expect(1, 5880, '\p{isrunr}', "");
     Expect(0, 5880, '\p{^isrunr}', "");
     Expect(0, 5880, '\P{isrunr}', "");
@@ -118641,16 +119865,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5881, '\p{^isrunr}', "");
     Expect(1, 5881, '\P{isrunr}', "");
     Expect(0, 5881, '\P{^isrunr}', "");
-    Expect(1, 5880, '\p{_is_RUNR}', "");
-    Expect(0, 5880, '\p{^_is_RUNR}', "");
-    Expect(0, 5880, '\P{_is_RUNR}', "");
-    Expect(1, 5880, '\P{^_is_RUNR}', "");
-    Expect(0, 5881, '\p{_is_RUNR}', "");
-    Expect(1, 5881, '\p{^_is_RUNR}', "");
-    Expect(1, 5881, '\P{_is_RUNR}', "");
-    Expect(0, 5881, '\P{^_is_RUNR}', "");
-    Error('\p{	_Samaritan/a/}');
-    Error('\P{	_Samaritan/a/}');
+    Expect(1, 5880, '\p{ Is_Runr}', "");
+    Expect(0, 5880, '\p{^ Is_Runr}', "");
+    Expect(0, 5880, '\P{ Is_Runr}', "");
+    Expect(1, 5880, '\P{^ Is_Runr}', "");
+    Expect(0, 5881, '\p{ Is_Runr}', "");
+    Expect(1, 5881, '\p{^ Is_Runr}', "");
+    Expect(1, 5881, '\P{ Is_Runr}', "");
+    Expect(0, 5881, '\P{^ Is_Runr}', "");
+    Error('\p{_/a/Samaritan}');
+    Error('\P{_/a/Samaritan}');
     Expect(1, 2110, '\p{samaritan}', "");
     Expect(0, 2110, '\p{^samaritan}', "");
     Expect(0, 2110, '\P{samaritan}', "");
@@ -118659,16 +119883,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^samaritan}', "");
     Expect(1, 2111, '\P{samaritan}', "");
     Expect(0, 2111, '\P{^samaritan}', "");
-    Expect(1, 2110, '\p{_samaritan}', "");
-    Expect(0, 2110, '\p{^_samaritan}', "");
-    Expect(0, 2110, '\P{_samaritan}', "");
-    Expect(1, 2110, '\P{^_samaritan}', "");
-    Expect(0, 2111, '\p{_samaritan}', "");
-    Expect(1, 2111, '\p{^_samaritan}', "");
-    Expect(1, 2111, '\P{_samaritan}', "");
-    Expect(0, 2111, '\P{^_samaritan}', "");
-    Error('\p{ /a/Is_Samaritan}');
-    Error('\P{ /a/Is_Samaritan}');
+    Expect(1, 2110, '\p{_ samaritan}', "");
+    Expect(0, 2110, '\p{^_ samaritan}', "");
+    Expect(0, 2110, '\P{_ samaritan}', "");
+    Expect(1, 2110, '\P{^_ samaritan}', "");
+    Expect(0, 2111, '\p{_ samaritan}', "");
+    Expect(1, 2111, '\p{^_ samaritan}', "");
+    Expect(1, 2111, '\P{_ samaritan}', "");
+    Expect(0, 2111, '\P{^_ samaritan}', "");
+    Error('\p{/a/IS_samaritan}');
+    Error('\P{/a/IS_samaritan}');
     Expect(1, 2110, '\p{issamaritan}', "");
     Expect(0, 2110, '\p{^issamaritan}', "");
     Expect(0, 2110, '\P{issamaritan}', "");
@@ -118677,16 +119901,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^issamaritan}', "");
     Expect(1, 2111, '\P{issamaritan}', "");
     Expect(0, 2111, '\P{^issamaritan}', "");
-    Expect(1, 2110, '\p{	-is_samaritan}', "");
-    Expect(0, 2110, '\p{^	-is_samaritan}', "");
-    Expect(0, 2110, '\P{	-is_samaritan}', "");
-    Expect(1, 2110, '\P{^	-is_samaritan}', "");
-    Expect(0, 2111, '\p{	-is_samaritan}', "");
-    Expect(1, 2111, '\p{^	-is_samaritan}', "");
-    Expect(1, 2111, '\P{	-is_samaritan}', "");
-    Expect(0, 2111, '\P{^	-is_samaritan}', "");
-    Error('\p{	/a/Samr}');
-    Error('\P{	/a/Samr}');
+    Expect(1, 2110, '\p{_-IS_Samaritan}', "");
+    Expect(0, 2110, '\p{^_-IS_Samaritan}', "");
+    Expect(0, 2110, '\P{_-IS_Samaritan}', "");
+    Expect(1, 2110, '\P{^_-IS_Samaritan}', "");
+    Expect(0, 2111, '\p{_-IS_Samaritan}', "");
+    Expect(1, 2111, '\p{^_-IS_Samaritan}', "");
+    Expect(1, 2111, '\P{_-IS_Samaritan}', "");
+    Expect(0, 2111, '\P{^_-IS_Samaritan}', "");
+    Error('\p{_/a/Samr}');
+    Error('\P{_/a/Samr}');
     Expect(1, 2110, '\p{samr}', "");
     Expect(0, 2110, '\p{^samr}', "");
     Expect(0, 2110, '\P{samr}', "");
@@ -118695,16 +119919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^samr}', "");
     Expect(1, 2111, '\P{samr}', "");
     Expect(0, 2111, '\P{^samr}', "");
-    Expect(1, 2110, '\p{Samr}', "");
-    Expect(0, 2110, '\p{^Samr}', "");
-    Expect(0, 2110, '\P{Samr}', "");
-    Expect(1, 2110, '\P{^Samr}', "");
-    Expect(0, 2111, '\p{Samr}', "");
-    Expect(1, 2111, '\p{^Samr}', "");
-    Expect(1, 2111, '\P{Samr}', "");
-    Expect(0, 2111, '\P{^Samr}', "");
-    Error('\p{/a/-	Is_SAMR}');
-    Error('\P{/a/-	Is_SAMR}');
+    Expect(1, 2110, '\p{- Samr}', "");
+    Expect(0, 2110, '\p{^- Samr}', "");
+    Expect(0, 2110, '\P{- Samr}', "");
+    Expect(1, 2110, '\P{^- Samr}', "");
+    Expect(0, 2111, '\p{- Samr}', "");
+    Expect(1, 2111, '\p{^- Samr}', "");
+    Expect(1, 2111, '\P{- Samr}', "");
+    Expect(0, 2111, '\P{^- Samr}', "");
+    Error('\p{  Is_SAMR:=}');
+    Error('\P{  Is_SAMR:=}');
     Expect(1, 2110, '\p{issamr}', "");
     Expect(0, 2110, '\p{^issamr}', "");
     Expect(0, 2110, '\P{issamr}', "");
@@ -118713,16 +119937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^issamr}', "");
     Expect(1, 2111, '\P{issamr}', "");
     Expect(0, 2111, '\P{^issamr}', "");
-    Expect(1, 2110, '\p{		IS_SAMR}', "");
-    Expect(0, 2110, '\p{^		IS_SAMR}', "");
-    Expect(0, 2110, '\P{		IS_SAMR}', "");
-    Expect(1, 2110, '\P{^		IS_SAMR}', "");
-    Expect(0, 2111, '\p{		IS_SAMR}', "");
-    Expect(1, 2111, '\p{^		IS_SAMR}', "");
-    Expect(1, 2111, '\P{		IS_SAMR}', "");
-    Expect(0, 2111, '\P{^		IS_SAMR}', "");
-    Error('\p{/a/_Saurashtra}');
-    Error('\P{/a/_Saurashtra}');
+    Expect(1, 2110, '\p{ IS_Samr}', "");
+    Expect(0, 2110, '\p{^ IS_Samr}', "");
+    Expect(0, 2110, '\P{ IS_Samr}', "");
+    Expect(1, 2110, '\P{^ IS_Samr}', "");
+    Expect(0, 2111, '\p{ IS_Samr}', "");
+    Expect(1, 2111, '\p{^ IS_Samr}', "");
+    Expect(1, 2111, '\P{ IS_Samr}', "");
+    Expect(0, 2111, '\P{^ IS_Samr}', "");
+    Error('\p{:=-SAURASHTRA}');
+    Error('\P{:=-SAURASHTRA}');
     Expect(1, 43225, '\p{saurashtra}', "");
     Expect(0, 43225, '\p{^saurashtra}', "");
     Expect(0, 43225, '\P{saurashtra}', "");
@@ -118731,16 +119955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^saurashtra}', "");
     Expect(1, 43226, '\P{saurashtra}', "");
     Expect(0, 43226, '\P{^saurashtra}', "");
-    Expect(1, 43225, '\p{_Saurashtra}', "");
-    Expect(0, 43225, '\p{^_Saurashtra}', "");
-    Expect(0, 43225, '\P{_Saurashtra}', "");
-    Expect(1, 43225, '\P{^_Saurashtra}', "");
-    Expect(0, 43226, '\p{_Saurashtra}', "");
-    Expect(1, 43226, '\p{^_Saurashtra}', "");
-    Expect(1, 43226, '\P{_Saurashtra}', "");
-    Expect(0, 43226, '\P{^_Saurashtra}', "");
-    Error('\p{_ IS_SAURASHTRA/a/}');
-    Error('\P{_ IS_SAURASHTRA/a/}');
+    Expect(1, 43225, '\p{ Saurashtra}', "");
+    Expect(0, 43225, '\p{^ Saurashtra}', "");
+    Expect(0, 43225, '\P{ Saurashtra}', "");
+    Expect(1, 43225, '\P{^ Saurashtra}', "");
+    Expect(0, 43226, '\p{ Saurashtra}', "");
+    Expect(1, 43226, '\p{^ Saurashtra}', "");
+    Expect(1, 43226, '\P{ Saurashtra}', "");
+    Expect(0, 43226, '\P{^ Saurashtra}', "");
+    Error('\p{  Is_saurashtra/a/}');
+    Error('\P{  Is_saurashtra/a/}');
     Expect(1, 43225, '\p{issaurashtra}', "");
     Expect(0, 43225, '\p{^issaurashtra}', "");
     Expect(0, 43225, '\P{issaurashtra}', "");
@@ -118749,16 +119973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^issaurashtra}', "");
     Expect(1, 43226, '\P{issaurashtra}', "");
     Expect(0, 43226, '\P{^issaurashtra}', "");
-    Expect(1, 43225, '\p{	Is_saurashtra}', "");
-    Expect(0, 43225, '\p{^	Is_saurashtra}', "");
-    Expect(0, 43225, '\P{	Is_saurashtra}', "");
-    Expect(1, 43225, '\P{^	Is_saurashtra}', "");
-    Expect(0, 43226, '\p{	Is_saurashtra}', "");
-    Expect(1, 43226, '\p{^	Is_saurashtra}', "");
-    Expect(1, 43226, '\P{	Is_saurashtra}', "");
-    Expect(0, 43226, '\P{^	Is_saurashtra}', "");
-    Error('\p{_SAUR:=}');
-    Error('\P{_SAUR:=}');
+    Expect(1, 43225, '\p{__Is_SAURASHTRA}', "");
+    Expect(0, 43225, '\p{^__Is_SAURASHTRA}', "");
+    Expect(0, 43225, '\P{__Is_SAURASHTRA}', "");
+    Expect(1, 43225, '\P{^__Is_SAURASHTRA}', "");
+    Expect(0, 43226, '\p{__Is_SAURASHTRA}', "");
+    Expect(1, 43226, '\p{^__Is_SAURASHTRA}', "");
+    Expect(1, 43226, '\P{__Is_SAURASHTRA}', "");
+    Expect(0, 43226, '\P{^__Is_SAURASHTRA}', "");
+    Error('\p{_	Saur:=}');
+    Error('\P{_	Saur:=}');
     Expect(1, 43225, '\p{saur}', "");
     Expect(0, 43225, '\p{^saur}', "");
     Expect(0, 43225, '\P{saur}', "");
@@ -118767,16 +119991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^saur}', "");
     Expect(1, 43226, '\P{saur}', "");
     Expect(0, 43226, '\P{^saur}', "");
-    Expect(1, 43225, '\p{		SAUR}', "");
-    Expect(0, 43225, '\p{^		SAUR}', "");
-    Expect(0, 43225, '\P{		SAUR}', "");
-    Expect(1, 43225, '\P{^		SAUR}', "");
-    Expect(0, 43226, '\p{		SAUR}', "");
-    Expect(1, 43226, '\p{^		SAUR}', "");
-    Expect(1, 43226, '\P{		SAUR}', "");
-    Expect(0, 43226, '\P{^		SAUR}', "");
-    Error('\p{_Is_SAUR/a/}');
-    Error('\P{_Is_SAUR/a/}');
+    Expect(1, 43225, '\p{_ SAUR}', "");
+    Expect(0, 43225, '\p{^_ SAUR}', "");
+    Expect(0, 43225, '\P{_ SAUR}', "");
+    Expect(1, 43225, '\P{^_ SAUR}', "");
+    Expect(0, 43226, '\p{_ SAUR}', "");
+    Expect(1, 43226, '\p{^_ SAUR}', "");
+    Expect(1, 43226, '\P{_ SAUR}', "");
+    Expect(0, 43226, '\P{^_ SAUR}', "");
+    Error('\p{/a/Is_Saur}');
+    Error('\P{/a/Is_Saur}');
     Expect(1, 43225, '\p{issaur}', "");
     Expect(0, 43225, '\p{^issaur}', "");
     Expect(0, 43225, '\P{issaur}', "");
@@ -118785,16 +120009,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^issaur}', "");
     Expect(1, 43226, '\P{issaur}', "");
     Expect(0, 43226, '\P{^issaur}', "");
-    Expect(1, 43225, '\p{-_Is_Saur}', "");
-    Expect(0, 43225, '\p{^-_Is_Saur}', "");
-    Expect(0, 43225, '\P{-_Is_Saur}', "");
-    Expect(1, 43225, '\P{^-_Is_Saur}', "");
-    Expect(0, 43226, '\p{-_Is_Saur}', "");
-    Expect(1, 43226, '\p{^-_Is_Saur}', "");
-    Expect(1, 43226, '\P{-_Is_Saur}', "");
-    Expect(0, 43226, '\P{^-_Is_Saur}', "");
-    Error('\p{- Sentence_Terminal/a/}');
-    Error('\P{- Sentence_Terminal/a/}');
+    Expect(1, 43225, '\p{_	IS_Saur}', "");
+    Expect(0, 43225, '\p{^_	IS_Saur}', "");
+    Expect(0, 43225, '\P{_	IS_Saur}', "");
+    Expect(1, 43225, '\P{^_	IS_Saur}', "");
+    Expect(0, 43226, '\p{_	IS_Saur}', "");
+    Expect(1, 43226, '\p{^_	IS_Saur}', "");
+    Expect(1, 43226, '\P{_	IS_Saur}', "");
+    Expect(0, 43226, '\P{^_	IS_Saur}', "");
+    Error('\p{/a/		sentence_terminal}');
+    Error('\P{/a/		sentence_terminal}');
     Expect(1, 121480, '\p{sentenceterminal}', "");
     Expect(0, 121480, '\p{^sentenceterminal}', "");
     Expect(0, 121480, '\P{sentenceterminal}', "");
@@ -118803,16 +120027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^sentenceterminal}', "");
     Expect(1, 121481, '\P{sentenceterminal}', "");
     Expect(0, 121481, '\P{^sentenceterminal}', "");
-    Expect(1, 121480, '\p{sentence_Terminal}', "");
-    Expect(0, 121480, '\p{^sentence_Terminal}', "");
-    Expect(0, 121480, '\P{sentence_Terminal}', "");
-    Expect(1, 121480, '\P{^sentence_Terminal}', "");
-    Expect(0, 121481, '\p{sentence_Terminal}', "");
-    Expect(1, 121481, '\p{^sentence_Terminal}', "");
-    Expect(1, 121481, '\P{sentence_Terminal}', "");
-    Expect(0, 121481, '\P{^sentence_Terminal}', "");
-    Error('\p{:=_IS_SENTENCE_Terminal}');
-    Error('\P{:=_IS_SENTENCE_Terminal}');
+    Expect(1, 121480, '\p{ _sentence_TERMINAL}', "");
+    Expect(0, 121480, '\p{^ _sentence_TERMINAL}', "");
+    Expect(0, 121480, '\P{ _sentence_TERMINAL}', "");
+    Expect(1, 121480, '\P{^ _sentence_TERMINAL}', "");
+    Expect(0, 121481, '\p{ _sentence_TERMINAL}', "");
+    Expect(1, 121481, '\p{^ _sentence_TERMINAL}', "");
+    Expect(1, 121481, '\P{ _sentence_TERMINAL}', "");
+    Expect(0, 121481, '\P{^ _sentence_TERMINAL}', "");
+    Error('\p{_Is_SENTENCE_terminal/a/}');
+    Error('\P{_Is_SENTENCE_terminal/a/}');
     Expect(1, 121480, '\p{issentenceterminal}', "");
     Expect(0, 121480, '\p{^issentenceterminal}', "");
     Expect(0, 121480, '\P{issentenceterminal}', "");
@@ -118821,16 +120045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^issentenceterminal}', "");
     Expect(1, 121481, '\P{issentenceterminal}', "");
     Expect(0, 121481, '\P{^issentenceterminal}', "");
-    Expect(1, 121480, '\p{ -IS_Sentence_terminal}', "");
-    Expect(0, 121480, '\p{^ -IS_Sentence_terminal}', "");
-    Expect(0, 121480, '\P{ -IS_Sentence_terminal}', "");
-    Expect(1, 121480, '\P{^ -IS_Sentence_terminal}', "");
-    Expect(0, 121481, '\p{ -IS_Sentence_terminal}', "");
-    Expect(1, 121481, '\p{^ -IS_Sentence_terminal}', "");
-    Expect(1, 121481, '\P{ -IS_Sentence_terminal}', "");
-    Expect(0, 121481, '\P{^ -IS_Sentence_terminal}', "");
-    Error('\p{/a/  STERM}');
-    Error('\P{/a/  STERM}');
+    Expect(1, 121480, '\p{is_Sentence_Terminal}', "");
+    Expect(0, 121480, '\p{^is_Sentence_Terminal}', "");
+    Expect(0, 121480, '\P{is_Sentence_Terminal}', "");
+    Expect(1, 121480, '\P{^is_Sentence_Terminal}', "");
+    Expect(0, 121481, '\p{is_Sentence_Terminal}', "");
+    Expect(1, 121481, '\p{^is_Sentence_Terminal}', "");
+    Expect(1, 121481, '\P{is_Sentence_Terminal}', "");
+    Expect(0, 121481, '\P{^is_Sentence_Terminal}', "");
+    Error('\p{	STerm/a/}');
+    Error('\P{	STerm/a/}');
     Expect(1, 121480, '\p{sterm}', "");
     Expect(0, 121480, '\p{^sterm}', "");
     Expect(0, 121480, '\P{sterm}', "");
@@ -118839,16 +120063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^sterm}', "");
     Expect(1, 121481, '\P{sterm}', "");
     Expect(0, 121481, '\P{^sterm}', "");
-    Expect(1, 121480, '\p{ _STerm}', "");
-    Expect(0, 121480, '\p{^ _STerm}', "");
-    Expect(0, 121480, '\P{ _STerm}', "");
-    Expect(1, 121480, '\P{^ _STerm}', "");
-    Expect(0, 121481, '\p{ _STerm}', "");
-    Expect(1, 121481, '\p{^ _STerm}', "");
-    Expect(1, 121481, '\P{ _STerm}', "");
-    Expect(0, 121481, '\P{^ _STerm}', "");
-    Error('\p{/a/ -Is_STERM}');
-    Error('\P{/a/ -Is_STERM}');
+    Expect(1, 121480, '\p{- STERM}', "");
+    Expect(0, 121480, '\p{^- STERM}', "");
+    Expect(0, 121480, '\P{- STERM}', "");
+    Expect(1, 121480, '\P{^- STERM}', "");
+    Expect(0, 121481, '\p{- STERM}', "");
+    Expect(1, 121481, '\p{^- STERM}', "");
+    Expect(1, 121481, '\P{- STERM}', "");
+    Expect(0, 121481, '\P{^- STERM}', "");
+    Error('\p{ 	Is_STerm/a/}');
+    Error('\P{ 	Is_STerm/a/}');
     Expect(1, 121480, '\p{issterm}', "");
     Expect(0, 121480, '\p{^issterm}', "");
     Expect(0, 121480, '\P{issterm}', "");
@@ -118857,16 +120081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^issterm}', "");
     Expect(1, 121481, '\P{issterm}', "");
     Expect(0, 121481, '\P{^issterm}', "");
-    Expect(1, 121480, '\p{-_Is_STerm}', "");
-    Expect(0, 121480, '\p{^-_Is_STerm}', "");
-    Expect(0, 121480, '\P{-_Is_STerm}', "");
-    Expect(1, 121480, '\P{^-_Is_STerm}', "");
-    Expect(0, 121481, '\p{-_Is_STerm}', "");
-    Expect(1, 121481, '\p{^-_Is_STerm}', "");
-    Expect(1, 121481, '\P{-_Is_STerm}', "");
-    Expect(0, 121481, '\P{^-_Is_STerm}', "");
-    Error('\p{	/a/separator}');
-    Error('\P{	/a/separator}');
+    Expect(1, 121480, '\p{_IS_sterm}', "");
+    Expect(0, 121480, '\p{^_IS_sterm}', "");
+    Expect(0, 121480, '\P{_IS_sterm}', "");
+    Expect(1, 121480, '\P{^_IS_sterm}', "");
+    Expect(0, 121481, '\p{_IS_sterm}', "");
+    Expect(1, 121481, '\p{^_IS_sterm}', "");
+    Expect(1, 121481, '\P{_IS_sterm}', "");
+    Expect(0, 121481, '\P{^_IS_sterm}', "");
+    Error('\p{/a/ _Separator}');
+    Error('\P{/a/ _Separator}');
     Expect(1, 12288, '\p{separator}', "");
     Expect(0, 12288, '\p{^separator}', "");
     Expect(0, 12288, '\P{separator}', "");
@@ -118875,16 +120099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^separator}', "");
     Expect(1, 12289, '\P{separator}', "");
     Expect(0, 12289, '\P{^separator}', "");
-    Expect(1, 12288, '\p{-_SEPARATOR}', "");
-    Expect(0, 12288, '\p{^-_SEPARATOR}', "");
-    Expect(0, 12288, '\P{-_SEPARATOR}', "");
-    Expect(1, 12288, '\P{^-_SEPARATOR}', "");
-    Expect(0, 12289, '\p{-_SEPARATOR}', "");
-    Expect(1, 12289, '\p{^-_SEPARATOR}', "");
-    Expect(1, 12289, '\P{-_SEPARATOR}', "");
-    Expect(0, 12289, '\P{^-_SEPARATOR}', "");
-    Error('\p{/a/--IS_Separator}');
-    Error('\P{/a/--IS_Separator}');
+    Expect(1, 12288, '\p{- SEPARATOR}', "");
+    Expect(0, 12288, '\p{^- SEPARATOR}', "");
+    Expect(0, 12288, '\P{- SEPARATOR}', "");
+    Expect(1, 12288, '\P{^- SEPARATOR}', "");
+    Expect(0, 12289, '\p{- SEPARATOR}', "");
+    Expect(1, 12289, '\p{^- SEPARATOR}', "");
+    Expect(1, 12289, '\P{- SEPARATOR}', "");
+    Expect(0, 12289, '\P{^- SEPARATOR}', "");
+    Error('\p{/a/  is_Separator}');
+    Error('\P{/a/  is_Separator}');
     Expect(1, 12288, '\p{isseparator}', "");
     Expect(0, 12288, '\p{^isseparator}', "");
     Expect(0, 12288, '\P{isseparator}', "");
@@ -118893,16 +120117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isseparator}', "");
     Expect(1, 12289, '\P{isseparator}', "");
     Expect(0, 12289, '\P{^isseparator}', "");
-    Expect(1, 12288, '\p{Is_Separator}', "");
-    Expect(0, 12288, '\p{^Is_Separator}', "");
-    Expect(0, 12288, '\P{Is_Separator}', "");
-    Expect(1, 12288, '\P{^Is_Separator}', "");
-    Expect(0, 12289, '\p{Is_Separator}', "");
-    Expect(1, 12289, '\p{^Is_Separator}', "");
-    Expect(1, 12289, '\P{Is_Separator}', "");
-    Expect(0, 12289, '\P{^Is_Separator}', "");
-    Error('\p{ /a/Z}');
-    Error('\P{ /a/Z}');
+    Expect(1, 12288, '\p{		Is_separator}', "");
+    Expect(0, 12288, '\p{^		Is_separator}', "");
+    Expect(0, 12288, '\P{		Is_separator}', "");
+    Expect(1, 12288, '\P{^		Is_separator}', "");
+    Expect(0, 12289, '\p{		Is_separator}', "");
+    Expect(1, 12289, '\p{^		Is_separator}', "");
+    Expect(1, 12289, '\P{		Is_separator}', "");
+    Expect(0, 12289, '\P{^		Is_separator}', "");
+    Error('\p{/a/	 Z}');
+    Error('\P{/a/	 Z}');
     Expect(1, 12288, '\p{z}', "");
     Expect(0, 12288, '\p{^z}', "");
     Expect(0, 12288, '\P{z}', "");
@@ -118911,16 +120135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^z}', "");
     Expect(1, 12289, '\P{z}', "");
     Expect(0, 12289, '\P{^z}', "");
-    Expect(1, 12288, '\p{	Z}', "");
-    Expect(0, 12288, '\p{^	Z}', "");
-    Expect(0, 12288, '\P{	Z}', "");
-    Expect(1, 12288, '\P{^	Z}', "");
-    Expect(0, 12289, '\p{	Z}', "");
-    Expect(1, 12289, '\p{^	Z}', "");
-    Expect(1, 12289, '\P{	Z}', "");
-    Expect(0, 12289, '\P{^	Z}', "");
-    Error('\p{--Is_Z/a/}');
-    Error('\P{--Is_Z/a/}');
+    Expect(1, 12288, '\p{ 	Z}', "");
+    Expect(0, 12288, '\p{^ 	Z}', "");
+    Expect(0, 12288, '\P{ 	Z}', "");
+    Expect(1, 12288, '\P{^ 	Z}', "");
+    Expect(0, 12289, '\p{ 	Z}', "");
+    Expect(1, 12289, '\p{^ 	Z}', "");
+    Expect(1, 12289, '\P{ 	Z}', "");
+    Expect(0, 12289, '\P{^ 	Z}', "");
+    Error('\p{/a/ 	Is_Z}');
+    Error('\P{/a/ 	Is_Z}');
     Expect(1, 12288, '\p{isz}', "");
     Expect(0, 12288, '\p{^isz}', "");
     Expect(0, 12288, '\P{isz}', "");
@@ -118929,16 +120153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isz}', "");
     Expect(1, 12289, '\P{isz}', "");
     Expect(0, 12289, '\P{^isz}', "");
-    Expect(1, 12288, '\p{_-Is_z}', "");
-    Expect(0, 12288, '\p{^_-Is_z}', "");
-    Expect(0, 12288, '\P{_-Is_z}', "");
-    Expect(1, 12288, '\P{^_-Is_z}', "");
-    Expect(0, 12289, '\p{_-Is_z}', "");
-    Expect(1, 12289, '\p{^_-Is_z}', "");
-    Expect(1, 12289, '\P{_-Is_z}', "");
-    Expect(0, 12289, '\P{^_-Is_z}', "");
-    Error('\p{ /a/Sharada}');
-    Error('\P{ /a/Sharada}');
+    Expect(1, 12288, '\p{_is_Z}', "");
+    Expect(0, 12288, '\p{^_is_Z}', "");
+    Expect(0, 12288, '\P{_is_Z}', "");
+    Expect(1, 12288, '\P{^_is_Z}', "");
+    Expect(0, 12289, '\p{_is_Z}', "");
+    Expect(1, 12289, '\p{^_is_Z}', "");
+    Expect(1, 12289, '\P{_is_Z}', "");
+    Expect(0, 12289, '\P{^_is_Z}', "");
+    Error('\p{/a/	_sharada}');
+    Error('\P{/a/	_sharada}');
     Expect(1, 70111, '\p{sharada}', "");
     Expect(0, 70111, '\p{^sharada}', "");
     Expect(0, 70111, '\P{sharada}', "");
@@ -118947,16 +120171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^sharada}', "");
     Expect(1, 70112, '\P{sharada}', "");
     Expect(0, 70112, '\P{^sharada}', "");
-    Expect(1, 70111, '\p{	SHARADA}', "");
-    Expect(0, 70111, '\p{^	SHARADA}', "");
-    Expect(0, 70111, '\P{	SHARADA}', "");
-    Expect(1, 70111, '\P{^	SHARADA}', "");
-    Expect(0, 70112, '\p{	SHARADA}', "");
-    Expect(1, 70112, '\p{^	SHARADA}', "");
-    Expect(1, 70112, '\P{	SHARADA}', "");
-    Expect(0, 70112, '\P{^	SHARADA}', "");
-    Error('\p{:=_ IS_Sharada}');
-    Error('\P{:=_ IS_Sharada}');
+    Expect(1, 70111, '\p{		Sharada}', "");
+    Expect(0, 70111, '\p{^		Sharada}', "");
+    Expect(0, 70111, '\P{		Sharada}', "");
+    Expect(1, 70111, '\P{^		Sharada}', "");
+    Expect(0, 70112, '\p{		Sharada}', "");
+    Expect(1, 70112, '\p{^		Sharada}', "");
+    Expect(1, 70112, '\P{		Sharada}', "");
+    Expect(0, 70112, '\P{^		Sharada}', "");
+    Error('\p{_:=Is_sharada}');
+    Error('\P{_:=Is_sharada}');
     Expect(1, 70111, '\p{issharada}', "");
     Expect(0, 70111, '\p{^issharada}', "");
     Expect(0, 70111, '\P{issharada}', "");
@@ -118965,16 +120189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^issharada}', "");
     Expect(1, 70112, '\P{issharada}', "");
     Expect(0, 70112, '\P{^issharada}', "");
-    Expect(1, 70111, '\p{  IS_SHARADA}', "");
-    Expect(0, 70111, '\p{^  IS_SHARADA}', "");
-    Expect(0, 70111, '\P{  IS_SHARADA}', "");
-    Expect(1, 70111, '\P{^  IS_SHARADA}', "");
-    Expect(0, 70112, '\p{  IS_SHARADA}', "");
-    Expect(1, 70112, '\p{^  IS_SHARADA}', "");
-    Expect(1, 70112, '\P{  IS_SHARADA}', "");
-    Expect(0, 70112, '\P{^  IS_SHARADA}', "");
-    Error('\p{	 SHRD/a/}');
-    Error('\P{	 SHRD/a/}');
+    Expect(1, 70111, '\p{is_sharada}', "");
+    Expect(0, 70111, '\p{^is_sharada}', "");
+    Expect(0, 70111, '\P{is_sharada}', "");
+    Expect(1, 70111, '\P{^is_sharada}', "");
+    Expect(0, 70112, '\p{is_sharada}', "");
+    Expect(1, 70112, '\p{^is_sharada}', "");
+    Expect(1, 70112, '\P{is_sharada}', "");
+    Expect(0, 70112, '\P{^is_sharada}', "");
+    Error('\p{	_shrd:=}');
+    Error('\P{	_shrd:=}');
     Expect(1, 70111, '\p{shrd}', "");
     Expect(0, 70111, '\p{^shrd}', "");
     Expect(0, 70111, '\P{shrd}', "");
@@ -118983,16 +120207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^shrd}', "");
     Expect(1, 70112, '\P{shrd}', "");
     Expect(0, 70112, '\P{^shrd}', "");
-    Expect(1, 70111, '\p{	SHRD}', "");
-    Expect(0, 70111, '\p{^	SHRD}', "");
-    Expect(0, 70111, '\P{	SHRD}', "");
-    Expect(1, 70111, '\P{^	SHRD}', "");
-    Expect(0, 70112, '\p{	SHRD}', "");
-    Expect(1, 70112, '\p{^	SHRD}', "");
-    Expect(1, 70112, '\P{	SHRD}', "");
-    Expect(0, 70112, '\P{^	SHRD}', "");
-    Error('\p{:=Is_shrd}');
-    Error('\P{:=Is_shrd}');
+    Expect(1, 70111, '\p{-	Shrd}', "");
+    Expect(0, 70111, '\p{^-	Shrd}', "");
+    Expect(0, 70111, '\P{-	Shrd}', "");
+    Expect(1, 70111, '\P{^-	Shrd}', "");
+    Expect(0, 70112, '\p{-	Shrd}', "");
+    Expect(1, 70112, '\p{^-	Shrd}', "");
+    Expect(1, 70112, '\P{-	Shrd}', "");
+    Expect(0, 70112, '\P{^-	Shrd}', "");
+    Error('\p{-:=Is_Shrd}');
+    Error('\P{-:=Is_Shrd}');
     Expect(1, 70111, '\p{isshrd}', "");
     Expect(0, 70111, '\p{^isshrd}', "");
     Expect(0, 70111, '\P{isshrd}', "");
@@ -119001,16 +120225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^isshrd}', "");
     Expect(1, 70112, '\P{isshrd}', "");
     Expect(0, 70112, '\P{^isshrd}', "");
-    Expect(1, 70111, '\p{_Is_Shrd}', "");
-    Expect(0, 70111, '\p{^_Is_Shrd}', "");
-    Expect(0, 70111, '\P{_Is_Shrd}', "");
-    Expect(1, 70111, '\P{^_Is_Shrd}', "");
-    Expect(0, 70112, '\p{_Is_Shrd}', "");
-    Expect(1, 70112, '\p{^_Is_Shrd}', "");
-    Expect(1, 70112, '\P{_Is_Shrd}', "");
-    Expect(0, 70112, '\P{^_Is_Shrd}', "");
-    Error('\p{:=Shavian}');
-    Error('\P{:=Shavian}');
+    Expect(1, 70111, '\p{- IS_Shrd}', "");
+    Expect(0, 70111, '\p{^- IS_Shrd}', "");
+    Expect(0, 70111, '\P{- IS_Shrd}', "");
+    Expect(1, 70111, '\P{^- IS_Shrd}', "");
+    Expect(0, 70112, '\p{- IS_Shrd}', "");
+    Expect(1, 70112, '\p{^- IS_Shrd}', "");
+    Expect(1, 70112, '\P{- IS_Shrd}', "");
+    Expect(0, 70112, '\P{^- IS_Shrd}', "");
+    Error('\p{	SHAVIAN/a/}');
+    Error('\P{	SHAVIAN/a/}');
     Expect(1, 66687, '\p{shavian}', "");
     Expect(0, 66687, '\p{^shavian}', "");
     Expect(0, 66687, '\P{shavian}', "");
@@ -119019,16 +120243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66688, '\p{^shavian}', "");
     Expect(1, 66688, '\P{shavian}', "");
     Expect(0, 66688, '\P{^shavian}', "");
-    Expect(1, 66687, '\p{_	Shavian}', "");
-    Expect(0, 66687, '\p{^_	Shavian}', "");
-    Expect(0, 66687, '\P{_	Shavian}', "");
-    Expect(1, 66687, '\P{^_	Shavian}', "");
-    Expect(0, 66688, '\p{_	Shavian}', "");
-    Expect(1, 66688, '\p{^_	Shavian}', "");
-    Expect(1, 66688, '\P{_	Shavian}', "");
-    Expect(0, 66688, '\P{^_	Shavian}', "");
-    Error('\p{:=	_Is_shavian}');
-    Error('\P{:=	_Is_shavian}');
+    Expect(1, 66687, '\p{-_Shavian}', "");
+    Expect(0, 66687, '\p{^-_Shavian}', "");
+    Expect(0, 66687, '\P{-_Shavian}', "");
+    Expect(1, 66687, '\P{^-_Shavian}', "");
+    Expect(0, 66688, '\p{-_Shavian}', "");
+    Expect(1, 66688, '\p{^-_Shavian}', "");
+    Expect(1, 66688, '\P{-_Shavian}', "");
+    Expect(0, 66688, '\P{^-_Shavian}', "");
+    Error('\p{/a/Is_SHAVIAN}');
+    Error('\P{/a/Is_SHAVIAN}');
     Expect(1, 66687, '\p{isshavian}', "");
     Expect(0, 66687, '\p{^isshavian}', "");
     Expect(0, 66687, '\P{isshavian}', "");
@@ -119037,16 +120261,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66688, '\p{^isshavian}', "");
     Expect(1, 66688, '\P{isshavian}', "");
     Expect(0, 66688, '\P{^isshavian}', "");
-    Expect(1, 66687, '\p{_ is_Shavian}', "");
-    Expect(0, 66687, '\p{^_ is_Shavian}', "");
-    Expect(0, 66687, '\P{_ is_Shavian}', "");
-    Expect(1, 66687, '\P{^_ is_Shavian}', "");
-    Expect(0, 66688, '\p{_ is_Shavian}', "");
-    Expect(1, 66688, '\p{^_ is_Shavian}', "");
-    Expect(1, 66688, '\P{_ is_Shavian}', "");
-    Expect(0, 66688, '\P{^_ is_Shavian}', "");
-    Error('\p{-/a/shaw}');
-    Error('\P{-/a/shaw}');
+    Expect(1, 66687, '\p{__is_shavian}', "");
+    Expect(0, 66687, '\p{^__is_shavian}', "");
+    Expect(0, 66687, '\P{__is_shavian}', "");
+    Expect(1, 66687, '\P{^__is_shavian}', "");
+    Expect(0, 66688, '\p{__is_shavian}', "");
+    Expect(1, 66688, '\p{^__is_shavian}', "");
+    Expect(1, 66688, '\P{__is_shavian}', "");
+    Expect(0, 66688, '\P{^__is_shavian}', "");
+    Error('\p{:=	_SHAW}');
+    Error('\P{:=	_SHAW}');
     Expect(1, 66687, '\p{shaw}', "");
     Expect(0, 66687, '\p{^shaw}', "");
     Expect(0, 66687, '\P{shaw}', "");
@@ -119055,16 +120279,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66688, '\p{^shaw}', "");
     Expect(1, 66688, '\P{shaw}', "");
     Expect(0, 66688, '\P{^shaw}', "");
-    Expect(1, 66687, '\p{_Shaw}', "");
-    Expect(0, 66687, '\p{^_Shaw}', "");
-    Expect(0, 66687, '\P{_Shaw}', "");
-    Expect(1, 66687, '\P{^_Shaw}', "");
-    Expect(0, 66688, '\p{_Shaw}', "");
-    Expect(1, 66688, '\p{^_Shaw}', "");
-    Expect(1, 66688, '\P{_Shaw}', "");
-    Expect(0, 66688, '\P{^_Shaw}', "");
-    Error('\p{-/a/Is_Shaw}');
-    Error('\P{-/a/Is_Shaw}');
+    Error('\p{--is_Shaw/a/}');
+    Error('\P{--is_Shaw/a/}');
     Expect(1, 66687, '\p{isshaw}', "");
     Expect(0, 66687, '\p{^isshaw}', "");
     Expect(0, 66687, '\P{isshaw}', "");
@@ -119073,16 +120289,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66688, '\p{^isshaw}', "");
     Expect(1, 66688, '\P{isshaw}', "");
     Expect(0, 66688, '\P{^isshaw}', "");
-    Expect(1, 66687, '\p{ _Is_Shaw}', "");
-    Expect(0, 66687, '\p{^ _Is_Shaw}', "");
-    Expect(0, 66687, '\P{ _Is_Shaw}', "");
-    Expect(1, 66687, '\P{^ _Is_Shaw}', "");
-    Expect(0, 66688, '\p{ _Is_Shaw}', "");
-    Expect(1, 66688, '\p{^ _Is_Shaw}', "");
-    Expect(1, 66688, '\P{ _Is_Shaw}', "");
-    Expect(0, 66688, '\P{^ _Is_Shaw}', "");
-    Error('\p{ :=shorthand_Format_Controls}');
-    Error('\P{ :=shorthand_Format_Controls}');
+    Expect(1, 66687, '\p{_-IS_SHAW}', "");
+    Expect(0, 66687, '\p{^_-IS_SHAW}', "");
+    Expect(0, 66687, '\P{_-IS_SHAW}', "");
+    Expect(1, 66687, '\P{^_-IS_SHAW}', "");
+    Expect(0, 66688, '\p{_-IS_SHAW}', "");
+    Expect(1, 66688, '\p{^_-IS_SHAW}', "");
+    Expect(1, 66688, '\P{_-IS_SHAW}', "");
+    Expect(0, 66688, '\P{^_-IS_SHAW}', "");
+    Error('\p{/a/	Shorthand_FORMAT_Controls}');
+    Error('\P{/a/	Shorthand_FORMAT_Controls}');
     Expect(1, 113839, '\p{shorthandformatcontrols}', "");
     Expect(0, 113839, '\p{^shorthandformatcontrols}', "");
     Expect(0, 113839, '\P{shorthandformatcontrols}', "");
@@ -119091,16 +120307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 113840, '\p{^shorthandformatcontrols}', "");
     Expect(1, 113840, '\P{shorthandformatcontrols}', "");
     Expect(0, 113840, '\P{^shorthandformatcontrols}', "");
-    Expect(1, 113839, '\p{	_shorthand_FORMAT_controls}', "");
-    Expect(0, 113839, '\p{^	_shorthand_FORMAT_controls}', "");
-    Expect(0, 113839, '\P{	_shorthand_FORMAT_controls}', "");
-    Expect(1, 113839, '\P{^	_shorthand_FORMAT_controls}', "");
-    Expect(0, 113840, '\p{	_shorthand_FORMAT_controls}', "");
-    Expect(1, 113840, '\p{^	_shorthand_FORMAT_controls}', "");
-    Expect(1, 113840, '\P{	_shorthand_FORMAT_controls}', "");
-    Expect(0, 113840, '\P{^	_shorthand_FORMAT_controls}', "");
-    Error('\p{	:=Is_shorthand_FORMAT_CONTROLS}');
-    Error('\P{	:=Is_shorthand_FORMAT_CONTROLS}');
+    Expect(1, 113839, '\p{-_SHORTHAND_format_Controls}', "");
+    Expect(0, 113839, '\p{^-_SHORTHAND_format_Controls}', "");
+    Expect(0, 113839, '\P{-_SHORTHAND_format_Controls}', "");
+    Expect(1, 113839, '\P{^-_SHORTHAND_format_Controls}', "");
+    Expect(0, 113840, '\p{-_SHORTHAND_format_Controls}', "");
+    Expect(1, 113840, '\p{^-_SHORTHAND_format_Controls}', "");
+    Expect(1, 113840, '\P{-_SHORTHAND_format_Controls}', "");
+    Expect(0, 113840, '\P{^-_SHORTHAND_format_Controls}', "");
+    Error('\p{	:=Is_Shorthand_Format_controls}');
+    Error('\P{	:=Is_Shorthand_Format_controls}');
     Expect(1, 113839, '\p{isshorthandformatcontrols}', "");
     Expect(0, 113839, '\p{^isshorthandformatcontrols}', "");
     Expect(0, 113839, '\P{isshorthandformatcontrols}', "");
@@ -119109,16 +120325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 113840, '\p{^isshorthandformatcontrols}', "");
     Expect(1, 113840, '\P{isshorthandformatcontrols}', "");
     Expect(0, 113840, '\P{^isshorthandformatcontrols}', "");
-    Expect(1, 113839, '\p{-Is_SHORTHAND_Format_Controls}', "");
-    Expect(0, 113839, '\p{^-Is_SHORTHAND_Format_Controls}', "");
-    Expect(0, 113839, '\P{-Is_SHORTHAND_Format_Controls}', "");
-    Expect(1, 113839, '\P{^-Is_SHORTHAND_Format_Controls}', "");
-    Expect(0, 113840, '\p{-Is_SHORTHAND_Format_Controls}', "");
-    Expect(1, 113840, '\p{^-Is_SHORTHAND_Format_Controls}', "");
-    Expect(1, 113840, '\P{-Is_SHORTHAND_Format_Controls}', "");
-    Expect(0, 113840, '\P{^-Is_SHORTHAND_Format_Controls}', "");
-    Error('\p{ _IN_shorthand_FORMAT_Controls/a/}');
-    Error('\P{ _IN_shorthand_FORMAT_Controls/a/}');
+    Expect(1, 113839, '\p{ is_shorthand_format_CONTROLS}', "");
+    Expect(0, 113839, '\p{^ is_shorthand_format_CONTROLS}', "");
+    Expect(0, 113839, '\P{ is_shorthand_format_CONTROLS}', "");
+    Expect(1, 113839, '\P{^ is_shorthand_format_CONTROLS}', "");
+    Expect(0, 113840, '\p{ is_shorthand_format_CONTROLS}', "");
+    Expect(1, 113840, '\p{^ is_shorthand_format_CONTROLS}', "");
+    Expect(1, 113840, '\P{ is_shorthand_format_CONTROLS}', "");
+    Expect(0, 113840, '\P{^ is_shorthand_format_CONTROLS}', "");
+    Error('\p{- In_Shorthand_format_CONTROLS:=}');
+    Error('\P{- In_Shorthand_format_CONTROLS:=}');
     Expect(1, 113839, '\p{inshorthandformatcontrols}', "");
     Expect(0, 113839, '\p{^inshorthandformatcontrols}', "");
     Expect(0, 113839, '\P{inshorthandformatcontrols}', "");
@@ -119127,16 +120343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 113840, '\p{^inshorthandformatcontrols}', "");
     Expect(1, 113840, '\P{inshorthandformatcontrols}', "");
     Expect(0, 113840, '\P{^inshorthandformatcontrols}', "");
-    Expect(1, 113839, '\p{  In_shorthand_Format_CONTROLS}', "");
-    Expect(0, 113839, '\p{^  In_shorthand_Format_CONTROLS}', "");
-    Expect(0, 113839, '\P{  In_shorthand_Format_CONTROLS}', "");
-    Expect(1, 113839, '\P{^  In_shorthand_Format_CONTROLS}', "");
-    Expect(0, 113840, '\p{  In_shorthand_Format_CONTROLS}', "");
-    Expect(1, 113840, '\p{^  In_shorthand_Format_CONTROLS}', "");
-    Expect(1, 113840, '\P{  In_shorthand_Format_CONTROLS}', "");
-    Expect(0, 113840, '\P{^  In_shorthand_Format_CONTROLS}', "");
-    Error('\p{	:=Siddham}');
-    Error('\P{	:=Siddham}');
+    Expect(1, 113839, '\p{-IN_SHORTHAND_Format_Controls}', "");
+    Expect(0, 113839, '\p{^-IN_SHORTHAND_Format_Controls}', "");
+    Expect(0, 113839, '\P{-IN_SHORTHAND_Format_Controls}', "");
+    Expect(1, 113839, '\P{^-IN_SHORTHAND_Format_Controls}', "");
+    Expect(0, 113840, '\p{-IN_SHORTHAND_Format_Controls}', "");
+    Expect(1, 113840, '\p{^-IN_SHORTHAND_Format_Controls}', "");
+    Expect(1, 113840, '\P{-IN_SHORTHAND_Format_Controls}', "");
+    Expect(0, 113840, '\P{^-IN_SHORTHAND_Format_Controls}', "");
+    Error('\p{		SIDDHAM:=}');
+    Error('\P{		SIDDHAM:=}');
     Expect(1, 71133, '\p{siddham}', "");
     Expect(0, 71133, '\p{^siddham}', "");
     Expect(0, 71133, '\P{siddham}', "");
@@ -119145,16 +120361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71134, '\p{^siddham}', "");
     Expect(1, 71134, '\P{siddham}', "");
     Expect(0, 71134, '\P{^siddham}', "");
-    Expect(1, 71133, '\p{_Siddham}', "");
-    Expect(0, 71133, '\p{^_Siddham}', "");
-    Expect(0, 71133, '\P{_Siddham}', "");
-    Expect(1, 71133, '\P{^_Siddham}', "");
-    Expect(0, 71134, '\p{_Siddham}', "");
-    Expect(1, 71134, '\p{^_Siddham}', "");
-    Expect(1, 71134, '\P{_Siddham}', "");
-    Expect(0, 71134, '\P{^_Siddham}', "");
-    Error('\p{	_is_siddham:=}');
-    Error('\P{	_is_siddham:=}');
+    Expect(1, 71133, '\p{ 	Siddham}', "");
+    Expect(0, 71133, '\p{^ 	Siddham}', "");
+    Expect(0, 71133, '\P{ 	Siddham}', "");
+    Expect(1, 71133, '\P{^ 	Siddham}', "");
+    Expect(0, 71134, '\p{ 	Siddham}', "");
+    Expect(1, 71134, '\p{^ 	Siddham}', "");
+    Expect(1, 71134, '\P{ 	Siddham}', "");
+    Expect(0, 71134, '\P{^ 	Siddham}', "");
+    Error('\p{/a/-_Is_Siddham}');
+    Error('\P{/a/-_Is_Siddham}');
     Expect(1, 71133, '\p{issiddham}', "");
     Expect(0, 71133, '\p{^issiddham}', "");
     Expect(0, 71133, '\P{issiddham}', "");
@@ -119163,16 +120379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71134, '\p{^issiddham}', "");
     Expect(1, 71134, '\P{issiddham}', "");
     Expect(0, 71134, '\P{^issiddham}', "");
-    Expect(1, 71133, '\p{ 	is_SIDDHAM}', "");
-    Expect(0, 71133, '\p{^ 	is_SIDDHAM}', "");
-    Expect(0, 71133, '\P{ 	is_SIDDHAM}', "");
-    Expect(1, 71133, '\P{^ 	is_SIDDHAM}', "");
-    Expect(0, 71134, '\p{ 	is_SIDDHAM}', "");
-    Expect(1, 71134, '\p{^ 	is_SIDDHAM}', "");
-    Expect(1, 71134, '\P{ 	is_SIDDHAM}', "");
-    Expect(0, 71134, '\P{^ 	is_SIDDHAM}', "");
-    Error('\p{ /a/SIDD}');
-    Error('\P{ /a/SIDD}');
+    Expect(1, 71133, '\p{	-IS_SIDDHAM}', "");
+    Expect(0, 71133, '\p{^	-IS_SIDDHAM}', "");
+    Expect(0, 71133, '\P{	-IS_SIDDHAM}', "");
+    Expect(1, 71133, '\P{^	-IS_SIDDHAM}', "");
+    Expect(0, 71134, '\p{	-IS_SIDDHAM}', "");
+    Expect(1, 71134, '\p{^	-IS_SIDDHAM}', "");
+    Expect(1, 71134, '\P{	-IS_SIDDHAM}', "");
+    Expect(0, 71134, '\P{^	-IS_SIDDHAM}', "");
+    Error('\p{/a/--Sidd}');
+    Error('\P{/a/--Sidd}');
     Expect(1, 71133, '\p{sidd}', "");
     Expect(0, 71133, '\p{^sidd}', "");
     Expect(0, 71133, '\P{sidd}', "");
@@ -119181,16 +120397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71134, '\p{^sidd}', "");
     Expect(1, 71134, '\P{sidd}', "");
     Expect(0, 71134, '\P{^sidd}', "");
-    Expect(1, 71133, '\p{ Sidd}', "");
-    Expect(0, 71133, '\p{^ Sidd}', "");
-    Expect(0, 71133, '\P{ Sidd}', "");
-    Expect(1, 71133, '\P{^ Sidd}', "");
-    Expect(0, 71134, '\p{ Sidd}', "");
-    Expect(1, 71134, '\p{^ Sidd}', "");
-    Expect(1, 71134, '\P{ Sidd}', "");
-    Expect(0, 71134, '\P{^ Sidd}', "");
-    Error('\p{_:=is_Sidd}');
-    Error('\P{_:=is_Sidd}');
+    Expect(1, 71133, '\p{-_sidd}', "");
+    Expect(0, 71133, '\p{^-_sidd}', "");
+    Expect(0, 71133, '\P{-_sidd}', "");
+    Expect(1, 71133, '\P{^-_sidd}', "");
+    Expect(0, 71134, '\p{-_sidd}', "");
+    Expect(1, 71134, '\p{^-_sidd}', "");
+    Expect(1, 71134, '\P{-_sidd}', "");
+    Expect(0, 71134, '\P{^-_sidd}', "");
+    Error('\p{:=  Is_Sidd}');
+    Error('\P{:=  Is_Sidd}');
     Expect(1, 71133, '\p{issidd}', "");
     Expect(0, 71133, '\p{^issidd}', "");
     Expect(0, 71133, '\P{issidd}', "");
@@ -119199,16 +120415,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71134, '\p{^issidd}', "");
     Expect(1, 71134, '\P{issidd}', "");
     Expect(0, 71134, '\P{^issidd}', "");
-    Expect(1, 71133, '\p{__IS_Sidd}', "");
-    Expect(0, 71133, '\p{^__IS_Sidd}', "");
-    Expect(0, 71133, '\P{__IS_Sidd}', "");
-    Expect(1, 71133, '\P{^__IS_Sidd}', "");
-    Expect(0, 71134, '\p{__IS_Sidd}', "");
-    Expect(1, 71134, '\p{^__IS_Sidd}', "");
-    Expect(1, 71134, '\P{__IS_Sidd}', "");
-    Expect(0, 71134, '\P{^__IS_Sidd}', "");
-    Error('\p{	/a/SignWriting}');
-    Error('\P{	/a/SignWriting}');
+    Expect(1, 71133, '\p{ Is_sidd}', "");
+    Expect(0, 71133, '\p{^ Is_sidd}', "");
+    Expect(0, 71133, '\P{ Is_sidd}', "");
+    Expect(1, 71133, '\P{^ Is_sidd}', "");
+    Expect(0, 71134, '\p{ Is_sidd}', "");
+    Expect(1, 71134, '\p{^ Is_sidd}', "");
+    Expect(1, 71134, '\P{ Is_sidd}', "");
+    Expect(0, 71134, '\P{^ Is_sidd}', "");
+    Error('\p{ /a/SignWriting}');
+    Error('\P{ /a/SignWriting}');
     Expect(1, 121519, '\p{signwriting}', "");
     Expect(0, 121519, '\p{^signwriting}', "");
     Expect(0, 121519, '\P{signwriting}', "");
@@ -119217,16 +120433,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^signwriting}', "");
     Expect(1, 121520, '\P{signwriting}', "");
     Expect(0, 121520, '\P{^signwriting}', "");
-    Expect(1, 121519, '\p{_-SIGNWRITING}', "");
-    Expect(0, 121519, '\p{^_-SIGNWRITING}', "");
-    Expect(0, 121519, '\P{_-SIGNWRITING}', "");
-    Expect(1, 121519, '\P{^_-SIGNWRITING}', "");
-    Expect(0, 121520, '\p{_-SIGNWRITING}', "");
-    Expect(1, 121520, '\p{^_-SIGNWRITING}', "");
-    Expect(1, 121520, '\P{_-SIGNWRITING}', "");
-    Expect(0, 121520, '\P{^_-SIGNWRITING}', "");
-    Error('\p{_:=IS_SignWriting}');
-    Error('\P{_:=IS_SignWriting}');
+    Expect(1, 121519, '\p{-SignWriting}', "");
+    Expect(0, 121519, '\p{^-SignWriting}', "");
+    Expect(0, 121519, '\P{-SignWriting}', "");
+    Expect(1, 121519, '\P{^-SignWriting}', "");
+    Expect(0, 121520, '\p{-SignWriting}', "");
+    Expect(1, 121520, '\p{^-SignWriting}', "");
+    Expect(1, 121520, '\P{-SignWriting}', "");
+    Expect(0, 121520, '\P{^-SignWriting}', "");
+    Error('\p{ -IS_SignWriting/a/}');
+    Error('\P{ -IS_SignWriting/a/}');
     Expect(1, 121519, '\p{issignwriting}', "");
     Expect(0, 121519, '\p{^issignwriting}', "");
     Expect(0, 121519, '\P{issignwriting}', "");
@@ -119235,16 +120451,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^issignwriting}', "");
     Expect(1, 121520, '\P{issignwriting}', "");
     Expect(0, 121520, '\P{^issignwriting}', "");
-    Expect(1, 121519, '\p{__Is_SignWriting}', "");
-    Expect(0, 121519, '\p{^__Is_SignWriting}', "");
-    Expect(0, 121519, '\P{__Is_SignWriting}', "");
-    Expect(1, 121519, '\P{^__Is_SignWriting}', "");
-    Expect(0, 121520, '\p{__Is_SignWriting}', "");
-    Expect(1, 121520, '\p{^__Is_SignWriting}', "");
-    Expect(1, 121520, '\P{__Is_SignWriting}', "");
-    Expect(0, 121520, '\P{^__Is_SignWriting}', "");
-    Error('\p{/a/	_Sgnw}');
-    Error('\P{/a/	_Sgnw}');
+    Expect(1, 121519, '\p{-	IS_SignWriting}', "");
+    Expect(0, 121519, '\p{^-	IS_SignWriting}', "");
+    Expect(0, 121519, '\P{-	IS_SignWriting}', "");
+    Expect(1, 121519, '\P{^-	IS_SignWriting}', "");
+    Expect(0, 121520, '\p{-	IS_SignWriting}', "");
+    Expect(1, 121520, '\p{^-	IS_SignWriting}', "");
+    Expect(1, 121520, '\P{-	IS_SignWriting}', "");
+    Expect(0, 121520, '\P{^-	IS_SignWriting}', "");
+    Error('\p{:=-sgnw}');
+    Error('\P{:=-sgnw}');
     Expect(1, 121519, '\p{sgnw}', "");
     Expect(0, 121519, '\p{^sgnw}', "");
     Expect(0, 121519, '\P{sgnw}', "");
@@ -119253,16 +120469,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^sgnw}', "");
     Expect(1, 121520, '\P{sgnw}', "");
     Expect(0, 121520, '\P{^sgnw}', "");
-    Expect(1, 121519, '\p{_ Sgnw}', "");
-    Expect(0, 121519, '\p{^_ Sgnw}', "");
-    Expect(0, 121519, '\P{_ Sgnw}', "");
-    Expect(1, 121519, '\P{^_ Sgnw}', "");
-    Expect(0, 121520, '\p{_ Sgnw}', "");
-    Expect(1, 121520, '\p{^_ Sgnw}', "");
-    Expect(1, 121520, '\P{_ Sgnw}', "");
-    Expect(0, 121520, '\P{^_ Sgnw}', "");
-    Error('\p{_:=Is_Sgnw}');
-    Error('\P{_:=Is_Sgnw}');
+    Expect(1, 121519, '\p{	 sgnw}', "");
+    Expect(0, 121519, '\p{^	 sgnw}', "");
+    Expect(0, 121519, '\P{	 sgnw}', "");
+    Expect(1, 121519, '\P{^	 sgnw}', "");
+    Expect(0, 121520, '\p{	 sgnw}', "");
+    Expect(1, 121520, '\p{^	 sgnw}', "");
+    Expect(1, 121520, '\P{	 sgnw}', "");
+    Expect(0, 121520, '\P{^	 sgnw}', "");
+    Error('\p{ :=IS_Sgnw}');
+    Error('\P{ :=IS_Sgnw}');
     Expect(1, 121519, '\p{issgnw}', "");
     Expect(0, 121519, '\p{^issgnw}', "");
     Expect(0, 121519, '\P{issgnw}', "");
@@ -119271,16 +120487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^issgnw}', "");
     Expect(1, 121520, '\P{issgnw}', "");
     Expect(0, 121520, '\P{^issgnw}', "");
-    Expect(1, 121519, '\p{--Is_Sgnw}', "");
-    Expect(0, 121519, '\p{^--Is_Sgnw}', "");
-    Expect(0, 121519, '\P{--Is_Sgnw}', "");
-    Expect(1, 121519, '\P{^--Is_Sgnw}', "");
-    Expect(0, 121520, '\p{--Is_Sgnw}', "");
-    Expect(1, 121520, '\p{^--Is_Sgnw}', "");
-    Expect(1, 121520, '\P{--Is_Sgnw}', "");
-    Expect(0, 121520, '\P{^--Is_Sgnw}', "");
-    Error('\p{_	Sinhala:=}');
-    Error('\P{_	Sinhala:=}');
+    Expect(1, 121519, '\p{	 IS_sgnw}', "");
+    Expect(0, 121519, '\p{^	 IS_sgnw}', "");
+    Expect(0, 121519, '\P{	 IS_sgnw}', "");
+    Expect(1, 121519, '\P{^	 IS_sgnw}', "");
+    Expect(0, 121520, '\p{	 IS_sgnw}', "");
+    Expect(1, 121520, '\p{^	 IS_sgnw}', "");
+    Expect(1, 121520, '\P{	 IS_sgnw}', "");
+    Expect(0, 121520, '\P{^	 IS_sgnw}', "");
+    Error('\p{ Sinhala/a/}');
+    Error('\P{ Sinhala/a/}');
     Expect(1, 70132, '\p{sinhala}', "");
     Expect(0, 70132, '\p{^sinhala}', "");
     Expect(0, 70132, '\P{sinhala}', "");
@@ -119289,16 +120505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^sinhala}', "");
     Expect(1, 70133, '\P{sinhala}', "");
     Expect(0, 70133, '\P{^sinhala}', "");
-    Expect(1, 70132, '\p{ -sinhala}', "");
-    Expect(0, 70132, '\p{^ -sinhala}', "");
-    Expect(0, 70132, '\P{ -sinhala}', "");
-    Expect(1, 70132, '\P{^ -sinhala}', "");
-    Expect(0, 70133, '\p{ -sinhala}', "");
-    Expect(1, 70133, '\p{^ -sinhala}', "");
-    Expect(1, 70133, '\P{ -sinhala}', "");
-    Expect(0, 70133, '\P{^ -sinhala}', "");
-    Error('\p{	/a/Is_SINHALA}');
-    Error('\P{	/a/Is_SINHALA}');
+    Expect(1, 70132, '\p{-_Sinhala}', "");
+    Expect(0, 70132, '\p{^-_Sinhala}', "");
+    Expect(0, 70132, '\P{-_Sinhala}', "");
+    Expect(1, 70132, '\P{^-_Sinhala}', "");
+    Expect(0, 70133, '\p{-_Sinhala}', "");
+    Expect(1, 70133, '\p{^-_Sinhala}', "");
+    Expect(1, 70133, '\P{-_Sinhala}', "");
+    Expect(0, 70133, '\P{^-_Sinhala}', "");
+    Error('\p{/a/ 	is_SINHALA}');
+    Error('\P{/a/ 	is_SINHALA}');
     Expect(1, 70132, '\p{issinhala}', "");
     Expect(0, 70132, '\p{^issinhala}', "");
     Expect(0, 70132, '\P{issinhala}', "");
@@ -119307,16 +120523,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^issinhala}', "");
     Expect(1, 70133, '\P{issinhala}', "");
     Expect(0, 70133, '\P{^issinhala}', "");
-    Expect(1, 70132, '\p{ 	IS_Sinhala}', "");
-    Expect(0, 70132, '\p{^ 	IS_Sinhala}', "");
-    Expect(0, 70132, '\P{ 	IS_Sinhala}', "");
-    Expect(1, 70132, '\P{^ 	IS_Sinhala}', "");
-    Expect(0, 70133, '\p{ 	IS_Sinhala}', "");
-    Expect(1, 70133, '\p{^ 	IS_Sinhala}', "");
-    Expect(1, 70133, '\P{ 	IS_Sinhala}', "");
-    Expect(0, 70133, '\P{^ 	IS_Sinhala}', "");
-    Error('\p{ -sinh/a/}');
-    Error('\P{ -sinh/a/}');
+    Expect(1, 70132, '\p{_IS_Sinhala}', "");
+    Expect(0, 70132, '\p{^_IS_Sinhala}', "");
+    Expect(0, 70132, '\P{_IS_Sinhala}', "");
+    Expect(1, 70132, '\P{^_IS_Sinhala}', "");
+    Expect(0, 70133, '\p{_IS_Sinhala}', "");
+    Expect(1, 70133, '\p{^_IS_Sinhala}', "");
+    Expect(1, 70133, '\P{_IS_Sinhala}', "");
+    Expect(0, 70133, '\P{^_IS_Sinhala}', "");
+    Error('\p{_Sinh:=}');
+    Error('\P{_Sinh:=}');
     Expect(1, 70132, '\p{sinh}', "");
     Expect(0, 70132, '\p{^sinh}', "");
     Expect(0, 70132, '\P{sinh}', "");
@@ -119325,16 +120541,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^sinh}', "");
     Expect(1, 70133, '\P{sinh}', "");
     Expect(0, 70133, '\P{^sinh}', "");
-    Expect(1, 70132, '\p{ Sinh}', "");
-    Expect(0, 70132, '\p{^ Sinh}', "");
-    Expect(0, 70132, '\P{ Sinh}', "");
-    Expect(1, 70132, '\P{^ Sinh}', "");
-    Expect(0, 70133, '\p{ Sinh}', "");
-    Expect(1, 70133, '\p{^ Sinh}', "");
-    Expect(1, 70133, '\P{ Sinh}', "");
-    Expect(0, 70133, '\P{^ Sinh}', "");
-    Error('\p{/a/-is_sinh}');
-    Error('\P{/a/-is_sinh}');
+    Expect(1, 70132, '\p{-SINH}', "");
+    Expect(0, 70132, '\p{^-SINH}', "");
+    Expect(0, 70132, '\P{-SINH}', "");
+    Expect(1, 70132, '\P{^-SINH}', "");
+    Expect(0, 70133, '\p{-SINH}', "");
+    Expect(1, 70133, '\p{^-SINH}', "");
+    Expect(1, 70133, '\P{-SINH}', "");
+    Expect(0, 70133, '\P{^-SINH}', "");
+    Error('\p{/a/	-IS_SINH}');
+    Error('\P{/a/	-IS_SINH}');
     Expect(1, 70132, '\p{issinh}', "");
     Expect(0, 70132, '\p{^issinh}', "");
     Expect(0, 70132, '\P{issinh}', "");
@@ -119343,16 +120559,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^issinh}', "");
     Expect(1, 70133, '\P{issinh}', "");
     Expect(0, 70133, '\P{^issinh}', "");
-    Expect(1, 70132, '\p{ _Is_Sinh}', "");
-    Expect(0, 70132, '\p{^ _Is_Sinh}', "");
-    Expect(0, 70132, '\P{ _Is_Sinh}', "");
-    Expect(1, 70132, '\P{^ _Is_Sinh}', "");
-    Expect(0, 70133, '\p{ _Is_Sinh}', "");
-    Expect(1, 70133, '\p{^ _Is_Sinh}', "");
-    Expect(1, 70133, '\P{ _Is_Sinh}', "");
-    Expect(0, 70133, '\P{^ _Is_Sinh}', "");
-    Error('\p{ sinhala_Archaic_numbers:=}');
-    Error('\P{ sinhala_Archaic_numbers:=}');
+    Expect(1, 70132, '\p{ 	Is_Sinh}', "");
+    Expect(0, 70132, '\p{^ 	Is_Sinh}', "");
+    Expect(0, 70132, '\P{ 	Is_Sinh}', "");
+    Expect(1, 70132, '\P{^ 	Is_Sinh}', "");
+    Expect(0, 70133, '\p{ 	Is_Sinh}', "");
+    Expect(1, 70133, '\p{^ 	Is_Sinh}', "");
+    Expect(1, 70133, '\P{ 	Is_Sinh}', "");
+    Expect(0, 70133, '\P{^ 	Is_Sinh}', "");
+    Error('\p{ sinhala_ARCHAIC_Numbers/a/}');
+    Error('\P{ sinhala_ARCHAIC_Numbers/a/}');
     Expect(1, 70143, '\p{sinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\p{^sinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\P{sinhalaarchaicnumbers}', "");
@@ -119361,16 +120577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70144, '\p{^sinhalaarchaicnumbers}', "");
     Expect(1, 70144, '\P{sinhalaarchaicnumbers}', "");
     Expect(0, 70144, '\P{^sinhalaarchaicnumbers}', "");
-    Expect(1, 70143, '\p{ sinhala_ARCHAIC_Numbers}', "");
-    Expect(0, 70143, '\p{^ sinhala_ARCHAIC_Numbers}', "");
-    Expect(0, 70143, '\P{ sinhala_ARCHAIC_Numbers}', "");
-    Expect(1, 70143, '\P{^ sinhala_ARCHAIC_Numbers}', "");
-    Expect(0, 70144, '\p{ sinhala_ARCHAIC_Numbers}', "");
-    Expect(1, 70144, '\p{^ sinhala_ARCHAIC_Numbers}', "");
-    Expect(1, 70144, '\P{ sinhala_ARCHAIC_Numbers}', "");
-    Expect(0, 70144, '\P{^ sinhala_ARCHAIC_Numbers}', "");
-    Error('\p{/a/Is_SINHALA_Archaic_NUMBERS}');
-    Error('\P{/a/Is_SINHALA_Archaic_NUMBERS}');
+    Expect(1, 70143, '\p{-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70143, '\p{^-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70143, '\P{-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70143, '\P{^-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70144, '\p{-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70144, '\p{^-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70144, '\P{-Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70144, '\P{^-Sinhala_ARCHAIC_Numbers}', "");
+    Error('\p{__Is_Sinhala_Archaic_NUMBERS/a/}');
+    Error('\P{__Is_Sinhala_Archaic_NUMBERS/a/}');
     Expect(1, 70143, '\p{issinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\p{^issinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\P{issinhalaarchaicnumbers}', "");
@@ -119379,16 +120595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70144, '\p{^issinhalaarchaicnumbers}', "");
     Expect(1, 70144, '\P{issinhalaarchaicnumbers}', "");
     Expect(0, 70144, '\P{^issinhalaarchaicnumbers}', "");
-    Expect(1, 70143, '\p{_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(0, 70143, '\p{^_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(0, 70143, '\P{_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(1, 70143, '\P{^_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(0, 70144, '\p{_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(1, 70144, '\p{^_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(1, 70144, '\P{_Is_Sinhala_Archaic_Numbers}', "");
-    Expect(0, 70144, '\P{^_Is_Sinhala_Archaic_Numbers}', "");
-    Error('\p{	-In_Sinhala_ARCHAIC_NUMBERS/a/}');
-    Error('\P{	-In_Sinhala_ARCHAIC_NUMBERS/a/}');
+    Expect(1, 70143, '\p{- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70143, '\p{^- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70143, '\P{- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70143, '\P{^- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70144, '\p{- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70144, '\p{^- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(1, 70144, '\P{- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Expect(0, 70144, '\P{^- Is_Sinhala_ARCHAIC_Numbers}', "");
+    Error('\p{/a/_-in_Sinhala_Archaic_Numbers}');
+    Error('\P{/a/_-in_Sinhala_Archaic_Numbers}');
     Expect(1, 70143, '\p{insinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\p{^insinhalaarchaicnumbers}', "");
     Expect(0, 70143, '\P{insinhalaarchaicnumbers}', "");
@@ -119397,16 +120613,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70144, '\p{^insinhalaarchaicnumbers}', "");
     Expect(1, 70144, '\P{insinhalaarchaicnumbers}', "");
     Expect(0, 70144, '\P{^insinhalaarchaicnumbers}', "");
-    Expect(1, 70143, '\p{	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(0, 70143, '\p{^	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(0, 70143, '\P{	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(1, 70143, '\P{^	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(0, 70144, '\p{	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(1, 70144, '\p{^	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(1, 70144, '\P{	 in_SINHALA_ARCHAIC_numbers}', "");
-    Expect(0, 70144, '\P{^	 in_SINHALA_ARCHAIC_numbers}', "");
-    Error('\p{:=-_Small_form_VARIANTS}');
-    Error('\P{:=-_Small_form_VARIANTS}');
+    Expect(1, 70143, '\p{__IN_sinhala_Archaic_Numbers}', "");
+    Expect(0, 70143, '\p{^__IN_sinhala_Archaic_Numbers}', "");
+    Expect(0, 70143, '\P{__IN_sinhala_Archaic_Numbers}', "");
+    Expect(1, 70143, '\P{^__IN_sinhala_Archaic_Numbers}', "");
+    Expect(0, 70144, '\p{__IN_sinhala_Archaic_Numbers}', "");
+    Expect(1, 70144, '\p{^__IN_sinhala_Archaic_Numbers}', "");
+    Expect(1, 70144, '\P{__IN_sinhala_Archaic_Numbers}', "");
+    Expect(0, 70144, '\P{^__IN_sinhala_Archaic_Numbers}', "");
+    Error('\p{		SMALL_form_Variants/a/}');
+    Error('\P{		SMALL_form_Variants/a/}');
     Expect(1, 65135, '\p{smallformvariants}', "");
     Expect(0, 65135, '\p{^smallformvariants}', "");
     Expect(0, 65135, '\P{smallformvariants}', "");
@@ -119415,16 +120631,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65136, '\p{^smallformvariants}', "");
     Expect(1, 65136, '\P{smallformvariants}', "");
     Expect(0, 65136, '\P{^smallformvariants}', "");
-    Expect(1, 65135, '\p{_ small_FORM_variants}', "");
-    Expect(0, 65135, '\p{^_ small_FORM_variants}', "");
-    Expect(0, 65135, '\P{_ small_FORM_variants}', "");
-    Expect(1, 65135, '\P{^_ small_FORM_variants}', "");
-    Expect(0, 65136, '\p{_ small_FORM_variants}', "");
-    Expect(1, 65136, '\p{^_ small_FORM_variants}', "");
-    Expect(1, 65136, '\P{_ small_FORM_variants}', "");
-    Expect(0, 65136, '\P{^_ small_FORM_variants}', "");
-    Error('\p{	/a/Is_small_form_Variants}');
-    Error('\P{	/a/Is_small_form_Variants}');
+    Expect(1, 65135, '\p{	_SMALL_FORM_Variants}', "");
+    Expect(0, 65135, '\p{^	_SMALL_FORM_Variants}', "");
+    Expect(0, 65135, '\P{	_SMALL_FORM_Variants}', "");
+    Expect(1, 65135, '\P{^	_SMALL_FORM_Variants}', "");
+    Expect(0, 65136, '\p{	_SMALL_FORM_Variants}', "");
+    Expect(1, 65136, '\p{^	_SMALL_FORM_Variants}', "");
+    Expect(1, 65136, '\P{	_SMALL_FORM_Variants}', "");
+    Expect(0, 65136, '\P{^	_SMALL_FORM_Variants}', "");
+    Error('\p{/a/_-Is_Small_Form_VARIANTS}');
+    Error('\P{/a/_-Is_Small_Form_VARIANTS}');
     Expect(1, 65135, '\p{issmallformvariants}', "");
     Expect(0, 65135, '\p{^issmallformvariants}', "");
     Expect(0, 65135, '\P{issmallformvariants}', "");
@@ -119433,16 +120649,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65136, '\p{^issmallformvariants}', "");
     Expect(1, 65136, '\P{issmallformvariants}', "");
     Expect(0, 65136, '\P{^issmallformvariants}', "");
-    Expect(1, 65135, '\p{- is_Small_Form_Variants}', "");
-    Expect(0, 65135, '\p{^- is_Small_Form_Variants}', "");
-    Expect(0, 65135, '\P{- is_Small_Form_Variants}', "");
-    Expect(1, 65135, '\P{^- is_Small_Form_Variants}', "");
-    Expect(0, 65136, '\p{- is_Small_Form_Variants}', "");
-    Expect(1, 65136, '\p{^- is_Small_Form_Variants}', "");
-    Expect(1, 65136, '\P{- is_Small_Form_Variants}', "");
-    Expect(0, 65136, '\P{^- is_Small_Form_Variants}', "");
-    Error('\p{_in_small_Form_Variants/a/}');
-    Error('\P{_in_small_Form_Variants/a/}');
+    Expect(1, 65135, '\p{	-Is_Small_FORM_Variants}', "");
+    Expect(0, 65135, '\p{^	-Is_Small_FORM_Variants}', "");
+    Expect(0, 65135, '\P{	-Is_Small_FORM_Variants}', "");
+    Expect(1, 65135, '\P{^	-Is_Small_FORM_Variants}', "");
+    Expect(0, 65136, '\p{	-Is_Small_FORM_Variants}', "");
+    Expect(1, 65136, '\p{^	-Is_Small_FORM_Variants}', "");
+    Expect(1, 65136, '\P{	-Is_Small_FORM_Variants}', "");
+    Expect(0, 65136, '\P{^	-Is_Small_FORM_Variants}', "");
+    Error('\p{/a/	-IN_Small_form_Variants}');
+    Error('\P{/a/	-IN_Small_form_Variants}');
     Expect(1, 65135, '\p{insmallformvariants}', "");
     Expect(0, 65135, '\p{^insmallformvariants}', "");
     Expect(0, 65135, '\P{insmallformvariants}', "");
@@ -119451,16 +120667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65136, '\p{^insmallformvariants}', "");
     Expect(1, 65136, '\P{insmallformvariants}', "");
     Expect(0, 65136, '\P{^insmallformvariants}', "");
-    Expect(1, 65135, '\p{--IN_small_form_VARIANTS}', "");
-    Expect(0, 65135, '\p{^--IN_small_form_VARIANTS}', "");
-    Expect(0, 65135, '\P{--IN_small_form_VARIANTS}', "");
-    Expect(1, 65135, '\P{^--IN_small_form_VARIANTS}', "");
-    Expect(0, 65136, '\p{--IN_small_form_VARIANTS}', "");
-    Expect(1, 65136, '\p{^--IN_small_form_VARIANTS}', "");
-    Expect(1, 65136, '\P{--IN_small_form_VARIANTS}', "");
-    Expect(0, 65136, '\P{^--IN_small_form_VARIANTS}', "");
-    Error('\p{/a/ 	Small_Forms}');
-    Error('\P{/a/ 	Small_Forms}');
+    Expect(1, 65135, '\p{_	In_Small_FORM_variants}', "");
+    Expect(0, 65135, '\p{^_	In_Small_FORM_variants}', "");
+    Expect(0, 65135, '\P{_	In_Small_FORM_variants}', "");
+    Expect(1, 65135, '\P{^_	In_Small_FORM_variants}', "");
+    Expect(0, 65136, '\p{_	In_Small_FORM_variants}', "");
+    Expect(1, 65136, '\p{^_	In_Small_FORM_variants}', "");
+    Expect(1, 65136, '\P{_	In_Small_FORM_variants}', "");
+    Expect(0, 65136, '\P{^_	In_Small_FORM_variants}', "");
+    Error('\p{-:=Small_forms}');
+    Error('\P{-:=Small_forms}');
     Expect(1, 65135, '\p{smallforms}', "");
     Expect(0, 65135, '\p{^smallforms}', "");
     Expect(0, 65135, '\P{smallforms}', "");
@@ -119469,16 +120685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65136, '\p{^smallforms}', "");
     Expect(1, 65136, '\P{smallforms}', "");
     Expect(0, 65136, '\P{^smallforms}', "");
-    Expect(1, 65135, '\p{-_Small_forms}', "");
-    Expect(0, 65135, '\p{^-_Small_forms}', "");
-    Expect(0, 65135, '\P{-_Small_forms}', "");
-    Expect(1, 65135, '\P{^-_Small_forms}', "");
-    Expect(0, 65136, '\p{-_Small_forms}', "");
-    Expect(1, 65136, '\p{^-_Small_forms}', "");
-    Expect(1, 65136, '\P{-_Small_forms}', "");
-    Expect(0, 65136, '\P{^-_Small_forms}', "");
-    Error('\p{  Is_SMALL_Forms/a/}');
-    Error('\P{  Is_SMALL_Forms/a/}');
+    Expect(1, 65135, '\p{_ Small_forms}', "");
+    Expect(0, 65135, '\p{^_ Small_forms}', "");
+    Expect(0, 65135, '\P{_ Small_forms}', "");
+    Expect(1, 65135, '\P{^_ Small_forms}', "");
+    Expect(0, 65136, '\p{_ Small_forms}', "");
+    Expect(1, 65136, '\p{^_ Small_forms}', "");
+    Expect(1, 65136, '\P{_ Small_forms}', "");
+    Expect(0, 65136, '\P{^_ Small_forms}', "");
+    Error('\p{_:=is_small_FORMS}');
+    Error('\P{_:=is_small_FORMS}');
     Expect(1, 65135, '\p{issmallforms}', "");
     Expect(0, 65135, '\p{^issmallforms}', "");
     Expect(0, 65135, '\P{issmallforms}', "");
@@ -119487,16 +120703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65136, '\p{^issmallforms}', "");
     Expect(1, 65136, '\P{issmallforms}', "");
     Expect(0, 65136, '\P{^issmallforms}', "");
-    Expect(1, 65135, '\p{_	Is_Small_FORMS}', "");
-    Expect(0, 65135, '\p{^_	Is_Small_FORMS}', "");
-    Expect(0, 65135, '\P{_	Is_Small_FORMS}', "");
-    Expect(1, 65135, '\P{^_	Is_Small_FORMS}', "");
-    Expect(0, 65136, '\p{_	Is_Small_FORMS}', "");
-    Expect(1, 65136, '\p{^_	Is_Small_FORMS}', "");
-    Expect(1, 65136, '\P{_	Is_Small_FORMS}', "");
-    Expect(0, 65136, '\P{^_	Is_Small_FORMS}', "");
-    Error('\p{:=-_IN_SMALL_Forms}');
-    Error('\P{:=-_IN_SMALL_Forms}');
+    Expect(1, 65135, '\p{ Is_Small_FORMS}', "");
+    Expect(0, 65135, '\p{^ Is_Small_FORMS}', "");
+    Expect(0, 65135, '\P{ Is_Small_FORMS}', "");
+    Expect(1, 65135, '\P{^ Is_Small_FORMS}', "");
+    Expect(0, 65136, '\p{ Is_Small_FORMS}', "");
+    Expect(1, 65136, '\p{^ Is_Small_FORMS}', "");
+    Expect(1, 65136, '\P{ Is_Small_FORMS}', "");
+    Expect(0, 65136, '\P{^ Is_Small_FORMS}', "");
+    Error('\p{ 	In_SMALL_forms/a/}');
+    Error('\P{ 	In_SMALL_forms/a/}');
     Expect(1, 65135, '\p{insmallforms}', "");
     Expect(0, 65135, '\p{^insmallforms}', "");
     Expect(0, 65135, '\P{insmallforms}', "");
@@ -119505,16 +120721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65136, '\p{^insmallforms}', "");
     Expect(1, 65136, '\P{insmallforms}', "");
     Expect(0, 65136, '\P{^insmallforms}', "");
-    Expect(1, 65135, '\p{_-IN_small_forms}', "");
-    Expect(0, 65135, '\p{^_-IN_small_forms}', "");
-    Expect(0, 65135, '\P{_-IN_small_forms}', "");
-    Expect(1, 65135, '\P{^_-IN_small_forms}', "");
-    Expect(0, 65136, '\p{_-IN_small_forms}', "");
-    Expect(1, 65136, '\p{^_-IN_small_forms}', "");
-    Expect(1, 65136, '\P{_-IN_small_forms}', "");
-    Expect(0, 65136, '\P{^_-IN_small_forms}', "");
-    Error('\p{_-Small_kana_Extension/a/}');
-    Error('\P{_-Small_kana_Extension/a/}');
+    Expect(1, 65135, '\p{	_In_Small_FORMS}', "");
+    Expect(0, 65135, '\p{^	_In_Small_FORMS}', "");
+    Expect(0, 65135, '\P{	_In_Small_FORMS}', "");
+    Expect(1, 65135, '\P{^	_In_Small_FORMS}', "");
+    Expect(0, 65136, '\p{	_In_Small_FORMS}', "");
+    Expect(1, 65136, '\p{^	_In_Small_FORMS}', "");
+    Expect(1, 65136, '\P{	_In_Small_FORMS}', "");
+    Expect(0, 65136, '\P{^	_In_Small_FORMS}', "");
+    Error('\p{:= -Small_Kana_extension}');
+    Error('\P{:= -Small_Kana_extension}');
     Expect(1, 110959, '\p{smallkanaextension}', "");
     Expect(0, 110959, '\p{^smallkanaextension}', "");
     Expect(0, 110959, '\P{smallkanaextension}', "");
@@ -119523,16 +120739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110960, '\p{^smallkanaextension}', "");
     Expect(1, 110960, '\P{smallkanaextension}', "");
     Expect(0, 110960, '\P{^smallkanaextension}', "");
-    Expect(1, 110959, '\p{Small_Kana_Extension}', "");
-    Expect(0, 110959, '\p{^Small_Kana_Extension}', "");
-    Expect(0, 110959, '\P{Small_Kana_Extension}', "");
-    Expect(1, 110959, '\P{^Small_Kana_Extension}', "");
-    Expect(0, 110960, '\p{Small_Kana_Extension}', "");
-    Expect(1, 110960, '\p{^Small_Kana_Extension}', "");
-    Expect(1, 110960, '\P{Small_Kana_Extension}', "");
-    Expect(0, 110960, '\P{^Small_Kana_Extension}', "");
-    Error('\p{:=  is_SMALL_KANA_EXTENSION}');
-    Error('\P{:=  is_SMALL_KANA_EXTENSION}');
+    Expect(1, 110959, '\p{		Small_Kana_Extension}', "");
+    Expect(0, 110959, '\p{^		Small_Kana_Extension}', "");
+    Expect(0, 110959, '\P{		Small_Kana_Extension}', "");
+    Expect(1, 110959, '\P{^		Small_Kana_Extension}', "");
+    Expect(0, 110960, '\p{		Small_Kana_Extension}', "");
+    Expect(1, 110960, '\p{^		Small_Kana_Extension}', "");
+    Expect(1, 110960, '\P{		Small_Kana_Extension}', "");
+    Expect(0, 110960, '\P{^		Small_Kana_Extension}', "");
+    Error('\p{/a/ Is_small_KANA_EXTENSION}');
+    Error('\P{/a/ Is_small_KANA_EXTENSION}');
     Expect(1, 110959, '\p{issmallkanaextension}', "");
     Expect(0, 110959, '\p{^issmallkanaextension}', "");
     Expect(0, 110959, '\P{issmallkanaextension}', "");
@@ -119541,16 +120757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110960, '\p{^issmallkanaextension}', "");
     Expect(1, 110960, '\P{issmallkanaextension}', "");
     Expect(0, 110960, '\P{^issmallkanaextension}', "");
-    Expect(1, 110959, '\p{_	is_small_KANA_extension}', "");
-    Expect(0, 110959, '\p{^_	is_small_KANA_extension}', "");
-    Expect(0, 110959, '\P{_	is_small_KANA_extension}', "");
-    Expect(1, 110959, '\P{^_	is_small_KANA_extension}', "");
-    Expect(0, 110960, '\p{_	is_small_KANA_extension}', "");
-    Expect(1, 110960, '\p{^_	is_small_KANA_extension}', "");
-    Expect(1, 110960, '\P{_	is_small_KANA_extension}', "");
-    Expect(0, 110960, '\P{^_	is_small_KANA_extension}', "");
-    Error('\p{:=In_Small_kana_extension}');
-    Error('\P{:=In_Small_kana_extension}');
+    Expect(1, 110959, '\p{  Is_small_kana_Extension}', "");
+    Expect(0, 110959, '\p{^  Is_small_kana_Extension}', "");
+    Expect(0, 110959, '\P{  Is_small_kana_Extension}', "");
+    Expect(1, 110959, '\P{^  Is_small_kana_Extension}', "");
+    Expect(0, 110960, '\p{  Is_small_kana_Extension}', "");
+    Expect(1, 110960, '\p{^  Is_small_kana_Extension}', "");
+    Expect(1, 110960, '\P{  Is_small_kana_Extension}', "");
+    Expect(0, 110960, '\P{^  Is_small_kana_Extension}', "");
+    Error('\p{/a/IN_SMALL_Kana_EXTENSION}');
+    Error('\P{/a/IN_SMALL_Kana_EXTENSION}');
     Expect(1, 110959, '\p{insmallkanaextension}', "");
     Expect(0, 110959, '\p{^insmallkanaextension}', "");
     Expect(0, 110959, '\P{insmallkanaextension}', "");
@@ -119559,16 +120775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110960, '\p{^insmallkanaextension}', "");
     Expect(1, 110960, '\P{insmallkanaextension}', "");
     Expect(0, 110960, '\P{^insmallkanaextension}', "");
-    Expect(1, 110959, '\p{ 	IN_SMALL_Kana_Extension}', "");
-    Expect(0, 110959, '\p{^ 	IN_SMALL_Kana_Extension}', "");
-    Expect(0, 110959, '\P{ 	IN_SMALL_Kana_Extension}', "");
-    Expect(1, 110959, '\P{^ 	IN_SMALL_Kana_Extension}', "");
-    Expect(0, 110960, '\p{ 	IN_SMALL_Kana_Extension}', "");
-    Expect(1, 110960, '\p{^ 	IN_SMALL_Kana_Extension}', "");
-    Expect(1, 110960, '\P{ 	IN_SMALL_Kana_Extension}', "");
-    Expect(0, 110960, '\P{^ 	IN_SMALL_Kana_Extension}', "");
-    Error('\p{_:=Small_kana_Ext}');
-    Error('\P{_:=Small_kana_Ext}');
+    Expect(1, 110959, '\p{		in_Small_kana_Extension}', "");
+    Expect(0, 110959, '\p{^		in_Small_kana_Extension}', "");
+    Expect(0, 110959, '\P{		in_Small_kana_Extension}', "");
+    Expect(1, 110959, '\P{^		in_Small_kana_Extension}', "");
+    Expect(0, 110960, '\p{		in_Small_kana_Extension}', "");
+    Expect(1, 110960, '\p{^		in_Small_kana_Extension}', "");
+    Expect(1, 110960, '\P{		in_Small_kana_Extension}', "");
+    Expect(0, 110960, '\P{^		in_Small_kana_Extension}', "");
+    Error('\p{/a/_ SMALL_KANA_Ext}');
+    Error('\P{/a/_ SMALL_KANA_Ext}');
     Expect(1, 110959, '\p{smallkanaext}', "");
     Expect(0, 110959, '\p{^smallkanaext}', "");
     Expect(0, 110959, '\P{smallkanaext}', "");
@@ -119577,16 +120793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110960, '\p{^smallkanaext}', "");
     Expect(1, 110960, '\P{smallkanaext}', "");
     Expect(0, 110960, '\P{^smallkanaext}', "");
-    Expect(1, 110959, '\p{	_small_kana_Ext}', "");
-    Expect(0, 110959, '\p{^	_small_kana_Ext}', "");
-    Expect(0, 110959, '\P{	_small_kana_Ext}', "");
-    Expect(1, 110959, '\P{^	_small_kana_Ext}', "");
-    Expect(0, 110960, '\p{	_small_kana_Ext}', "");
-    Expect(1, 110960, '\p{^	_small_kana_Ext}', "");
-    Expect(1, 110960, '\P{	_small_kana_Ext}', "");
-    Expect(0, 110960, '\P{^	_small_kana_Ext}', "");
-    Error('\p{/a/ -Is_Small_KANA_Ext}');
-    Error('\P{/a/ -Is_Small_KANA_Ext}');
+    Expect(1, 110959, '\p{-Small_kana_Ext}', "");
+    Expect(0, 110959, '\p{^-Small_kana_Ext}', "");
+    Expect(0, 110959, '\P{-Small_kana_Ext}', "");
+    Expect(1, 110959, '\P{^-Small_kana_Ext}', "");
+    Expect(0, 110960, '\p{-Small_kana_Ext}', "");
+    Expect(1, 110960, '\p{^-Small_kana_Ext}', "");
+    Expect(1, 110960, '\P{-Small_kana_Ext}', "");
+    Expect(0, 110960, '\P{^-Small_kana_Ext}', "");
+    Error('\p{:=  is_SMALL_Kana_ext}');
+    Error('\P{:=  is_SMALL_Kana_ext}');
     Expect(1, 110959, '\p{issmallkanaext}', "");
     Expect(0, 110959, '\p{^issmallkanaext}', "");
     Expect(0, 110959, '\P{issmallkanaext}', "");
@@ -119595,16 +120811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110960, '\p{^issmallkanaext}', "");
     Expect(1, 110960, '\P{issmallkanaext}', "");
     Expect(0, 110960, '\P{^issmallkanaext}', "");
-    Expect(1, 110959, '\p{		Is_Small_Kana_Ext}', "");
-    Expect(0, 110959, '\p{^		Is_Small_Kana_Ext}', "");
-    Expect(0, 110959, '\P{		Is_Small_Kana_Ext}', "");
-    Expect(1, 110959, '\P{^		Is_Small_Kana_Ext}', "");
-    Expect(0, 110960, '\p{		Is_Small_Kana_Ext}', "");
-    Expect(1, 110960, '\p{^		Is_Small_Kana_Ext}', "");
-    Expect(1, 110960, '\P{		Is_Small_Kana_Ext}', "");
-    Expect(0, 110960, '\P{^		Is_Small_Kana_Ext}', "");
-    Error('\p{-/a/In_SMALL_Kana_EXT}');
-    Error('\P{-/a/In_SMALL_Kana_EXT}');
+    Expect(1, 110959, '\p{_-Is_small_KANA_EXT}', "");
+    Expect(0, 110959, '\p{^_-Is_small_KANA_EXT}', "");
+    Expect(0, 110959, '\P{_-Is_small_KANA_EXT}', "");
+    Expect(1, 110959, '\P{^_-Is_small_KANA_EXT}', "");
+    Expect(0, 110960, '\p{_-Is_small_KANA_EXT}', "");
+    Expect(1, 110960, '\p{^_-Is_small_KANA_EXT}', "");
+    Expect(1, 110960, '\P{_-Is_small_KANA_EXT}', "");
+    Expect(0, 110960, '\P{^_-Is_small_KANA_EXT}', "");
+    Error('\p{	/a/IN_Small_kana_Ext}');
+    Error('\P{	/a/IN_Small_kana_Ext}');
     Expect(1, 110959, '\p{insmallkanaext}', "");
     Expect(0, 110959, '\p{^insmallkanaext}', "");
     Expect(0, 110959, '\P{insmallkanaext}', "");
@@ -119613,88 +120829,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110960, '\p{^insmallkanaext}', "");
     Expect(1, 110960, '\P{insmallkanaext}', "");
     Expect(0, 110960, '\P{^insmallkanaext}', "");
-    Expect(1, 110959, '\p{	-IN_Small_KANA_Ext}', "");
-    Expect(0, 110959, '\p{^	-IN_Small_KANA_Ext}', "");
-    Expect(0, 110959, '\P{	-IN_Small_KANA_Ext}', "");
-    Expect(1, 110959, '\P{^	-IN_Small_KANA_Ext}', "");
-    Expect(0, 110960, '\p{	-IN_Small_KANA_Ext}', "");
-    Expect(1, 110960, '\p{^	-IN_Small_KANA_Ext}', "");
-    Expect(1, 110960, '\P{	-IN_Small_KANA_Ext}', "");
-    Expect(0, 110960, '\P{^	-IN_Small_KANA_Ext}', "");
-    Error('\p{ SOFT_Dotted/a/}');
-    Error('\P{ SOFT_Dotted/a/}');
-    Expect(1, 122650, '\p{softdotted}', "");
-    Expect(0, 122650, '\p{^softdotted}', "");
-    Expect(0, 122650, '\P{softdotted}', "");
-    Expect(1, 122650, '\P{^softdotted}', "");
-    Expect(0, 122651, '\p{softdotted}', "");
-    Expect(1, 122651, '\p{^softdotted}', "");
-    Expect(1, 122651, '\P{softdotted}', "");
-    Expect(0, 122651, '\P{^softdotted}', "");
-    Expect(1, 122650, '\p{SOFT_Dotted}', "");
-    Expect(0, 122650, '\p{^SOFT_Dotted}', "");
-    Expect(0, 122650, '\P{SOFT_Dotted}', "");
-    Expect(1, 122650, '\P{^SOFT_Dotted}', "");
-    Expect(0, 122651, '\p{SOFT_Dotted}', "");
-    Expect(1, 122651, '\p{^SOFT_Dotted}', "");
-    Expect(1, 122651, '\P{SOFT_Dotted}', "");
-    Expect(0, 122651, '\P{^SOFT_Dotted}', "");
-    Error('\p{	is_SOFT_Dotted:=}');
-    Error('\P{	is_SOFT_Dotted:=}');
-    Expect(1, 122650, '\p{issoftdotted}', "");
-    Expect(0, 122650, '\p{^issoftdotted}', "");
-    Expect(0, 122650, '\P{issoftdotted}', "");
-    Expect(1, 122650, '\P{^issoftdotted}', "");
-    Expect(0, 122651, '\p{issoftdotted}', "");
-    Expect(1, 122651, '\p{^issoftdotted}', "");
-    Expect(1, 122651, '\P{issoftdotted}', "");
-    Expect(0, 122651, '\P{^issoftdotted}', "");
-    Expect(1, 122650, '\p{-IS_Soft_DOTTED}', "");
-    Expect(0, 122650, '\p{^-IS_Soft_DOTTED}', "");
-    Expect(0, 122650, '\P{-IS_Soft_DOTTED}', "");
-    Expect(1, 122650, '\P{^-IS_Soft_DOTTED}', "");
-    Expect(0, 122651, '\p{-IS_Soft_DOTTED}', "");
-    Expect(1, 122651, '\p{^-IS_Soft_DOTTED}', "");
-    Expect(1, 122651, '\P{-IS_Soft_DOTTED}', "");
-    Expect(0, 122651, '\P{^-IS_Soft_DOTTED}', "");
-    Error('\p{_/a/SD}');
-    Error('\P{_/a/SD}');
-    Expect(1, 122650, '\p{sd}', "");
-    Expect(0, 122650, '\p{^sd}', "");
-    Expect(0, 122650, '\P{sd}', "");
-    Expect(1, 122650, '\P{^sd}', "");
-    Expect(0, 122651, '\p{sd}', "");
-    Expect(1, 122651, '\p{^sd}', "");
-    Expect(1, 122651, '\P{sd}', "");
-    Expect(0, 122651, '\P{^sd}', "");
-    Expect(1, 122650, '\p{- SD}', "");
-    Expect(0, 122650, '\p{^- SD}', "");
-    Expect(0, 122650, '\P{- SD}', "");
-    Expect(1, 122650, '\P{^- SD}', "");
-    Expect(0, 122651, '\p{- SD}', "");
-    Expect(1, 122651, '\p{^- SD}', "");
-    Expect(1, 122651, '\P{- SD}', "");
-    Expect(0, 122651, '\P{^- SD}', "");
-    Error('\p{:=IS_SD}');
-    Error('\P{:=IS_SD}');
-    Expect(1, 122650, '\p{issd}', "");
-    Expect(0, 122650, '\p{^issd}', "");
-    Expect(0, 122650, '\P{issd}', "");
-    Expect(1, 122650, '\P{^issd}', "");
-    Expect(0, 122651, '\p{issd}', "");
-    Expect(1, 122651, '\p{^issd}', "");
-    Expect(1, 122651, '\P{issd}', "");
-    Expect(0, 122651, '\P{^issd}', "");
-    Expect(1, 122650, '\p{__IS_SD}', "");
-    Expect(0, 122650, '\p{^__IS_SD}', "");
-    Expect(0, 122650, '\P{__IS_SD}', "");
-    Expect(1, 122650, '\P{^__IS_SD}', "");
-    Expect(0, 122651, '\p{__IS_SD}', "");
-    Expect(1, 122651, '\p{^__IS_SD}', "");
-    Expect(1, 122651, '\P{__IS_SD}', "");
-    Expect(0, 122651, '\P{^__IS_SD}', "");
-    Error('\p{_SOGDIAN:=}');
-    Error('\P{_SOGDIAN:=}');
+    Expect(1, 110959, '\p{_In_Small_Kana_ext}', "");
+    Expect(0, 110959, '\p{^_In_Small_Kana_ext}', "");
+    Expect(0, 110959, '\P{_In_Small_Kana_ext}', "");
+    Expect(1, 110959, '\P{^_In_Small_Kana_ext}', "");
+    Expect(0, 110960, '\p{_In_Small_Kana_ext}', "");
+    Expect(1, 110960, '\p{^_In_Small_Kana_ext}', "");
+    Expect(1, 110960, '\P{_In_Small_Kana_ext}', "");
+    Expect(0, 110960, '\P{^_In_Small_Kana_ext}', "");
+    Error('\p{:= _Soft_dotted}');
+    Error('\P{:= _Soft_dotted}');
+    Expect(1, 122984, '\p{softdotted}', "");
+    Expect(0, 122984, '\p{^softdotted}', "");
+    Expect(0, 122984, '\P{softdotted}', "");
+    Expect(1, 122984, '\P{^softdotted}', "");
+    Expect(0, 122985, '\p{softdotted}', "");
+    Expect(1, 122985, '\p{^softdotted}', "");
+    Expect(1, 122985, '\P{softdotted}', "");
+    Expect(0, 122985, '\P{^softdotted}', "");
+    Expect(1, 122984, '\p{_-soft_Dotted}', "");
+    Expect(0, 122984, '\p{^_-soft_Dotted}', "");
+    Expect(0, 122984, '\P{_-soft_Dotted}', "");
+    Expect(1, 122984, '\P{^_-soft_Dotted}', "");
+    Expect(0, 122985, '\p{_-soft_Dotted}', "");
+    Expect(1, 122985, '\p{^_-soft_Dotted}', "");
+    Expect(1, 122985, '\P{_-soft_Dotted}', "");
+    Expect(0, 122985, '\P{^_-soft_Dotted}', "");
+    Error('\p{/a/-IS_Soft_DOTTED}');
+    Error('\P{/a/-IS_Soft_DOTTED}');
+    Expect(1, 122984, '\p{issoftdotted}', "");
+    Expect(0, 122984, '\p{^issoftdotted}', "");
+    Expect(0, 122984, '\P{issoftdotted}', "");
+    Expect(1, 122984, '\P{^issoftdotted}', "");
+    Expect(0, 122985, '\p{issoftdotted}', "");
+    Expect(1, 122985, '\p{^issoftdotted}', "");
+    Expect(1, 122985, '\P{issoftdotted}', "");
+    Expect(0, 122985, '\P{^issoftdotted}', "");
+    Expect(1, 122984, '\p{_	Is_soft_DOTTED}', "");
+    Expect(0, 122984, '\p{^_	Is_soft_DOTTED}', "");
+    Expect(0, 122984, '\P{_	Is_soft_DOTTED}', "");
+    Expect(1, 122984, '\P{^_	Is_soft_DOTTED}', "");
+    Expect(0, 122985, '\p{_	Is_soft_DOTTED}', "");
+    Expect(1, 122985, '\p{^_	Is_soft_DOTTED}', "");
+    Expect(1, 122985, '\P{_	Is_soft_DOTTED}', "");
+    Expect(0, 122985, '\P{^_	Is_soft_DOTTED}', "");
+    Error('\p{/a/SD}');
+    Error('\P{/a/SD}');
+    Expect(1, 122984, '\p{sd}', "");
+    Expect(0, 122984, '\p{^sd}', "");
+    Expect(0, 122984, '\P{sd}', "");
+    Expect(1, 122984, '\P{^sd}', "");
+    Expect(0, 122985, '\p{sd}', "");
+    Expect(1, 122985, '\p{^sd}', "");
+    Expect(1, 122985, '\P{sd}', "");
+    Expect(0, 122985, '\P{^sd}', "");
+    Expect(1, 122984, '\p{ -sd}', "");
+    Expect(0, 122984, '\p{^ -sd}', "");
+    Expect(0, 122984, '\P{ -sd}', "");
+    Expect(1, 122984, '\P{^ -sd}', "");
+    Expect(0, 122985, '\p{ -sd}', "");
+    Expect(1, 122985, '\p{^ -sd}', "");
+    Expect(1, 122985, '\P{ -sd}', "");
+    Expect(0, 122985, '\P{^ -sd}', "");
+    Error('\p{:=-_is_sd}');
+    Error('\P{:=-_is_sd}');
+    Expect(1, 122984, '\p{issd}', "");
+    Expect(0, 122984, '\p{^issd}', "");
+    Expect(0, 122984, '\P{issd}', "");
+    Expect(1, 122984, '\P{^issd}', "");
+    Expect(0, 122985, '\p{issd}', "");
+    Expect(1, 122985, '\p{^issd}', "");
+    Expect(1, 122985, '\P{issd}', "");
+    Expect(0, 122985, '\P{^issd}', "");
+    Expect(1, 122984, '\p{__Is_sd}', "");
+    Expect(0, 122984, '\p{^__Is_sd}', "");
+    Expect(0, 122984, '\P{__Is_sd}', "");
+    Expect(1, 122984, '\P{^__Is_sd}', "");
+    Expect(0, 122985, '\p{__Is_sd}', "");
+    Expect(1, 122985, '\p{^__Is_sd}', "");
+    Expect(1, 122985, '\P{__Is_sd}', "");
+    Expect(0, 122985, '\P{^__Is_sd}', "");
+    Error('\p{_/a/Sogdian}');
+    Error('\P{_/a/Sogdian}');
     Expect(1, 69465, '\p{sogdian}', "");
     Expect(0, 69465, '\p{^sogdian}', "");
     Expect(0, 69465, '\P{sogdian}', "");
@@ -119703,8 +120919,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69466, '\p{^sogdian}', "");
     Expect(1, 69466, '\P{sogdian}', "");
     Expect(0, 69466, '\P{^sogdian}', "");
-    Error('\p{:=	Is_Sogdian}');
-    Error('\P{:=	Is_Sogdian}');
+    Expect(1, 69465, '\p{--Sogdian}', "");
+    Expect(0, 69465, '\p{^--Sogdian}', "");
+    Expect(0, 69465, '\P{--Sogdian}', "");
+    Expect(1, 69465, '\P{^--Sogdian}', "");
+    Expect(0, 69466, '\p{--Sogdian}', "");
+    Expect(1, 69466, '\p{^--Sogdian}', "");
+    Expect(1, 69466, '\P{--Sogdian}', "");
+    Expect(0, 69466, '\P{^--Sogdian}', "");
+    Error('\p{/a/ Is_Sogdian}');
+    Error('\P{/a/ Is_Sogdian}');
     Expect(1, 69465, '\p{issogdian}', "");
     Expect(0, 69465, '\p{^issogdian}', "");
     Expect(0, 69465, '\P{issogdian}', "");
@@ -119713,16 +120937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69466, '\p{^issogdian}', "");
     Expect(1, 69466, '\P{issogdian}', "");
     Expect(0, 69466, '\P{^issogdian}', "");
-    Expect(1, 69465, '\p{	 Is_sogdian}', "");
-    Expect(0, 69465, '\p{^	 Is_sogdian}', "");
-    Expect(0, 69465, '\P{	 Is_sogdian}', "");
-    Expect(1, 69465, '\P{^	 Is_sogdian}', "");
-    Expect(0, 69466, '\p{	 Is_sogdian}', "");
-    Expect(1, 69466, '\p{^	 Is_sogdian}', "");
-    Expect(1, 69466, '\P{	 Is_sogdian}', "");
-    Expect(0, 69466, '\P{^	 Is_sogdian}', "");
-    Error('\p{/a/SOGD}');
-    Error('\P{/a/SOGD}');
+    Expect(1, 69465, '\p{-_IS_Sogdian}', "");
+    Expect(0, 69465, '\p{^-_IS_Sogdian}', "");
+    Expect(0, 69465, '\P{-_IS_Sogdian}', "");
+    Expect(1, 69465, '\P{^-_IS_Sogdian}', "");
+    Expect(0, 69466, '\p{-_IS_Sogdian}', "");
+    Expect(1, 69466, '\p{^-_IS_Sogdian}', "");
+    Expect(1, 69466, '\P{-_IS_Sogdian}', "");
+    Expect(0, 69466, '\P{^-_IS_Sogdian}', "");
+    Error('\p{ :=Sogd}');
+    Error('\P{ :=Sogd}');
     Expect(1, 69465, '\p{sogd}', "");
     Expect(0, 69465, '\p{^sogd}', "");
     Expect(0, 69465, '\P{sogd}', "");
@@ -119731,16 +120955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69466, '\p{^sogd}', "");
     Expect(1, 69466, '\P{sogd}', "");
     Expect(0, 69466, '\P{^sogd}', "");
-    Expect(1, 69465, '\p{-Sogd}', "");
-    Expect(0, 69465, '\p{^-Sogd}', "");
-    Expect(0, 69465, '\P{-Sogd}', "");
-    Expect(1, 69465, '\P{^-Sogd}', "");
-    Expect(0, 69466, '\p{-Sogd}', "");
-    Expect(1, 69466, '\p{^-Sogd}', "");
-    Expect(1, 69466, '\P{-Sogd}', "");
-    Expect(0, 69466, '\P{^-Sogd}', "");
-    Error('\p{	-IS_SOGD:=}');
-    Error('\P{	-IS_SOGD:=}');
+    Expect(1, 69465, '\p{	 SOGD}', "");
+    Expect(0, 69465, '\p{^	 SOGD}', "");
+    Expect(0, 69465, '\P{	 SOGD}', "");
+    Expect(1, 69465, '\P{^	 SOGD}', "");
+    Expect(0, 69466, '\p{	 SOGD}', "");
+    Expect(1, 69466, '\p{^	 SOGD}', "");
+    Expect(1, 69466, '\P{	 SOGD}', "");
+    Expect(0, 69466, '\P{^	 SOGD}', "");
+    Error('\p{__Is_sogd:=}');
+    Error('\P{__Is_sogd:=}');
     Expect(1, 69465, '\p{issogd}', "");
     Expect(0, 69465, '\p{^issogd}', "");
     Expect(0, 69465, '\P{issogd}', "");
@@ -119749,16 +120973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69466, '\p{^issogd}', "");
     Expect(1, 69466, '\P{issogd}', "");
     Expect(0, 69466, '\P{^issogd}', "");
-    Expect(1, 69465, '\p{	is_Sogd}', "");
-    Expect(0, 69465, '\p{^	is_Sogd}', "");
-    Expect(0, 69465, '\P{	is_Sogd}', "");
-    Expect(1, 69465, '\P{^	is_Sogd}', "");
-    Expect(0, 69466, '\p{	is_Sogd}', "");
-    Expect(1, 69466, '\p{^	is_Sogd}', "");
-    Expect(1, 69466, '\P{	is_Sogd}', "");
-    Expect(0, 69466, '\P{^	is_Sogd}', "");
-    Error('\p{  sora_Sompeng:=}');
-    Error('\P{  sora_Sompeng:=}');
+    Expect(1, 69465, '\p{  IS_Sogd}', "");
+    Expect(0, 69465, '\p{^  IS_Sogd}', "");
+    Expect(0, 69465, '\P{  IS_Sogd}', "");
+    Expect(1, 69465, '\P{^  IS_Sogd}', "");
+    Expect(0, 69466, '\p{  IS_Sogd}', "");
+    Expect(1, 69466, '\p{^  IS_Sogd}', "");
+    Expect(1, 69466, '\P{  IS_Sogd}', "");
+    Expect(0, 69466, '\P{^  IS_Sogd}', "");
+    Error('\p{-_Sora_SOMPENG:=}');
+    Error('\P{-_Sora_SOMPENG:=}');
     Expect(1, 69881, '\p{sorasompeng}', "");
     Expect(0, 69881, '\p{^sorasompeng}', "");
     Expect(0, 69881, '\P{sorasompeng}', "");
@@ -119767,16 +120991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69882, '\p{^sorasompeng}', "");
     Expect(1, 69882, '\P{sorasompeng}', "");
     Expect(0, 69882, '\P{^sorasompeng}', "");
-    Expect(1, 69881, '\p{ _SORA_Sompeng}', "");
-    Expect(0, 69881, '\p{^ _SORA_Sompeng}', "");
-    Expect(0, 69881, '\P{ _SORA_Sompeng}', "");
-    Expect(1, 69881, '\P{^ _SORA_Sompeng}', "");
-    Expect(0, 69882, '\p{ _SORA_Sompeng}', "");
-    Expect(1, 69882, '\p{^ _SORA_Sompeng}', "");
-    Expect(1, 69882, '\P{ _SORA_Sompeng}', "");
-    Expect(0, 69882, '\P{^ _SORA_Sompeng}', "");
-    Error('\p{_:=IS_Sora_SOMPENG}');
-    Error('\P{_:=IS_Sora_SOMPENG}');
+    Expect(1, 69881, '\p{	-SORA_sompeng}', "");
+    Expect(0, 69881, '\p{^	-SORA_sompeng}', "");
+    Expect(0, 69881, '\P{	-SORA_sompeng}', "");
+    Expect(1, 69881, '\P{^	-SORA_sompeng}', "");
+    Expect(0, 69882, '\p{	-SORA_sompeng}', "");
+    Expect(1, 69882, '\p{^	-SORA_sompeng}', "");
+    Expect(1, 69882, '\P{	-SORA_sompeng}', "");
+    Expect(0, 69882, '\P{^	-SORA_sompeng}', "");
+    Error('\p{/a/__Is_SORA_Sompeng}');
+    Error('\P{/a/__Is_SORA_Sompeng}');
     Expect(1, 69881, '\p{issorasompeng}', "");
     Expect(0, 69881, '\p{^issorasompeng}', "");
     Expect(0, 69881, '\P{issorasompeng}', "");
@@ -119785,16 +121009,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69882, '\p{^issorasompeng}', "");
     Expect(1, 69882, '\P{issorasompeng}', "");
     Expect(0, 69882, '\P{^issorasompeng}', "");
-    Expect(1, 69881, '\p{-_is_SORA_Sompeng}', "");
-    Expect(0, 69881, '\p{^-_is_SORA_Sompeng}', "");
-    Expect(0, 69881, '\P{-_is_SORA_Sompeng}', "");
-    Expect(1, 69881, '\P{^-_is_SORA_Sompeng}', "");
-    Expect(0, 69882, '\p{-_is_SORA_Sompeng}', "");
-    Expect(1, 69882, '\p{^-_is_SORA_Sompeng}', "");
-    Expect(1, 69882, '\P{-_is_SORA_Sompeng}', "");
-    Expect(0, 69882, '\P{^-_is_SORA_Sompeng}', "");
-    Error('\p{:=-_SORA}');
-    Error('\P{:=-_SORA}');
+    Expect(1, 69881, '\p{	-IS_Sora_SOMPENG}', "");
+    Expect(0, 69881, '\p{^	-IS_Sora_SOMPENG}', "");
+    Expect(0, 69881, '\P{	-IS_Sora_SOMPENG}', "");
+    Expect(1, 69881, '\P{^	-IS_Sora_SOMPENG}', "");
+    Expect(0, 69882, '\p{	-IS_Sora_SOMPENG}', "");
+    Expect(1, 69882, '\p{^	-IS_Sora_SOMPENG}', "");
+    Expect(1, 69882, '\P{	-IS_Sora_SOMPENG}', "");
+    Expect(0, 69882, '\P{^	-IS_Sora_SOMPENG}', "");
+    Error('\p{/a/_-sora}');
+    Error('\P{/a/_-sora}');
     Expect(1, 69881, '\p{sora}', "");
     Expect(0, 69881, '\p{^sora}', "");
     Expect(0, 69881, '\P{sora}', "");
@@ -119803,16 +121027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69882, '\p{^sora}', "");
     Expect(1, 69882, '\P{sora}', "");
     Expect(0, 69882, '\P{^sora}', "");
-    Expect(1, 69881, '\p{-Sora}', "");
-    Expect(0, 69881, '\p{^-Sora}', "");
-    Expect(0, 69881, '\P{-Sora}', "");
-    Expect(1, 69881, '\P{^-Sora}', "");
-    Expect(0, 69882, '\p{-Sora}', "");
-    Expect(1, 69882, '\p{^-Sora}', "");
-    Expect(1, 69882, '\P{-Sora}', "");
-    Expect(0, 69882, '\P{^-Sora}', "");
-    Error('\p{/a/	-Is_Sora}');
-    Error('\P{/a/	-Is_Sora}');
+    Expect(1, 69881, '\p{ Sora}', "");
+    Expect(0, 69881, '\p{^ Sora}', "");
+    Expect(0, 69881, '\P{ Sora}', "");
+    Expect(1, 69881, '\P{^ Sora}', "");
+    Expect(0, 69882, '\p{ Sora}', "");
+    Expect(1, 69882, '\p{^ Sora}', "");
+    Expect(1, 69882, '\P{ Sora}', "");
+    Expect(0, 69882, '\P{^ Sora}', "");
+    Error('\p{		is_sora/a/}');
+    Error('\P{		is_sora/a/}');
     Expect(1, 69881, '\p{issora}', "");
     Expect(0, 69881, '\p{^issora}', "");
     Expect(0, 69881, '\P{issora}', "");
@@ -119821,16 +121045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69882, '\p{^issora}', "");
     Expect(1, 69882, '\P{issora}', "");
     Expect(0, 69882, '\P{^issora}', "");
-    Expect(1, 69881, '\p{__is_sora}', "");
-    Expect(0, 69881, '\p{^__is_sora}', "");
-    Expect(0, 69881, '\P{__is_sora}', "");
-    Expect(1, 69881, '\P{^__is_sora}', "");
-    Expect(0, 69882, '\p{__is_sora}', "");
-    Expect(1, 69882, '\p{^__is_sora}', "");
-    Expect(1, 69882, '\P{__is_sora}', "");
-    Expect(0, 69882, '\P{^__is_sora}', "");
-    Error('\p{ /a/Soyombo}');
-    Error('\P{ /a/Soyombo}');
+    Expect(1, 69881, '\p{ _is_sora}', "");
+    Expect(0, 69881, '\p{^ _is_sora}', "");
+    Expect(0, 69881, '\P{ _is_sora}', "");
+    Expect(1, 69881, '\P{^ _is_sora}', "");
+    Expect(0, 69882, '\p{ _is_sora}', "");
+    Expect(1, 69882, '\p{^ _is_sora}', "");
+    Expect(1, 69882, '\P{ _is_sora}', "");
+    Expect(0, 69882, '\P{^ _is_sora}', "");
+    Error('\p{/a/_	Soyombo}');
+    Error('\P{/a/_	Soyombo}');
     Expect(1, 72354, '\p{soyombo}', "");
     Expect(0, 72354, '\p{^soyombo}', "");
     Expect(0, 72354, '\P{soyombo}', "");
@@ -119839,16 +121063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72355, '\p{^soyombo}', "");
     Expect(1, 72355, '\P{soyombo}', "");
     Expect(0, 72355, '\P{^soyombo}', "");
-    Expect(1, 72354, '\p{_-soyombo}', "");
-    Expect(0, 72354, '\p{^_-soyombo}', "");
-    Expect(0, 72354, '\P{_-soyombo}', "");
-    Expect(1, 72354, '\P{^_-soyombo}', "");
-    Expect(0, 72355, '\p{_-soyombo}', "");
-    Expect(1, 72355, '\p{^_-soyombo}', "");
-    Expect(1, 72355, '\P{_-soyombo}', "");
-    Expect(0, 72355, '\P{^_-soyombo}', "");
-    Error('\p{ 	Is_Soyombo/a/}');
-    Error('\P{ 	Is_Soyombo/a/}');
+    Expect(1, 72354, '\p{  Soyombo}', "");
+    Expect(0, 72354, '\p{^  Soyombo}', "");
+    Expect(0, 72354, '\P{  Soyombo}', "");
+    Expect(1, 72354, '\P{^  Soyombo}', "");
+    Expect(0, 72355, '\p{  Soyombo}', "");
+    Expect(1, 72355, '\p{^  Soyombo}', "");
+    Expect(1, 72355, '\P{  Soyombo}', "");
+    Expect(0, 72355, '\P{^  Soyombo}', "");
+    Error('\p{_Is_soyombo/a/}');
+    Error('\P{_Is_soyombo/a/}');
     Expect(1, 72354, '\p{issoyombo}', "");
     Expect(0, 72354, '\p{^issoyombo}', "");
     Expect(0, 72354, '\P{issoyombo}', "");
@@ -119857,16 +121081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72355, '\p{^issoyombo}', "");
     Expect(1, 72355, '\P{issoyombo}', "");
     Expect(0, 72355, '\P{^issoyombo}', "");
-    Expect(1, 72354, '\p{	_IS_Soyombo}', "");
-    Expect(0, 72354, '\p{^	_IS_Soyombo}', "");
-    Expect(0, 72354, '\P{	_IS_Soyombo}', "");
-    Expect(1, 72354, '\P{^	_IS_Soyombo}', "");
-    Expect(0, 72355, '\p{	_IS_Soyombo}', "");
-    Expect(1, 72355, '\p{^	_IS_Soyombo}', "");
-    Expect(1, 72355, '\P{	_IS_Soyombo}', "");
-    Expect(0, 72355, '\P{^	_IS_Soyombo}', "");
-    Error('\p{:= _SOYO}');
-    Error('\P{:= _SOYO}');
+    Expect(1, 72354, '\p{  Is_Soyombo}', "");
+    Expect(0, 72354, '\p{^  Is_Soyombo}', "");
+    Expect(0, 72354, '\P{  Is_Soyombo}', "");
+    Expect(1, 72354, '\P{^  Is_Soyombo}', "");
+    Expect(0, 72355, '\p{  Is_Soyombo}', "");
+    Expect(1, 72355, '\p{^  Is_Soyombo}', "");
+    Expect(1, 72355, '\P{  Is_Soyombo}', "");
+    Expect(0, 72355, '\P{^  Is_Soyombo}', "");
+    Error('\p{/a/__Soyo}');
+    Error('\P{/a/__Soyo}');
     Expect(1, 72354, '\p{soyo}', "");
     Expect(0, 72354, '\p{^soyo}', "");
     Expect(0, 72354, '\P{soyo}', "");
@@ -119875,16 +121099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72355, '\p{^soyo}', "");
     Expect(1, 72355, '\P{soyo}', "");
     Expect(0, 72355, '\P{^soyo}', "");
-    Expect(1, 72354, '\p{_soyo}', "");
-    Expect(0, 72354, '\p{^_soyo}', "");
-    Expect(0, 72354, '\P{_soyo}', "");
-    Expect(1, 72354, '\P{^_soyo}', "");
-    Expect(0, 72355, '\p{_soyo}', "");
-    Expect(1, 72355, '\p{^_soyo}', "");
-    Expect(1, 72355, '\P{_soyo}', "");
-    Expect(0, 72355, '\P{^_soyo}', "");
-    Error('\p{__is_SOYO/a/}');
-    Error('\P{__is_SOYO/a/}');
+    Expect(1, 72354, '\p{-_SOYO}', "");
+    Expect(0, 72354, '\p{^-_SOYO}', "");
+    Expect(0, 72354, '\P{-_SOYO}', "");
+    Expect(1, 72354, '\P{^-_SOYO}', "");
+    Expect(0, 72355, '\p{-_SOYO}', "");
+    Expect(1, 72355, '\p{^-_SOYO}', "");
+    Expect(1, 72355, '\P{-_SOYO}', "");
+    Expect(0, 72355, '\P{^-_SOYO}', "");
+    Error('\p{/a/_-is_Soyo}');
+    Error('\P{/a/_-is_Soyo}');
     Expect(1, 72354, '\p{issoyo}', "");
     Expect(0, 72354, '\p{^issoyo}', "");
     Expect(0, 72354, '\P{issoyo}', "");
@@ -119893,16 +121117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72355, '\p{^issoyo}', "");
     Expect(1, 72355, '\P{issoyo}', "");
     Expect(0, 72355, '\P{^issoyo}', "");
-    Expect(1, 72354, '\p{	Is_soyo}', "");
-    Expect(0, 72354, '\p{^	Is_soyo}', "");
-    Expect(0, 72354, '\P{	Is_soyo}', "");
-    Expect(1, 72354, '\P{^	Is_soyo}', "");
-    Expect(0, 72355, '\p{	Is_soyo}', "");
-    Expect(1, 72355, '\p{^	Is_soyo}', "");
-    Expect(1, 72355, '\P{	Is_soyo}', "");
-    Expect(0, 72355, '\P{^	Is_soyo}', "");
-    Error('\p{SPACE_Separator/a/}');
-    Error('\P{SPACE_Separator/a/}');
+    Expect(1, 72354, '\p{--IS_soyo}', "");
+    Expect(0, 72354, '\p{^--IS_soyo}', "");
+    Expect(0, 72354, '\P{--IS_soyo}', "");
+    Expect(1, 72354, '\P{^--IS_soyo}', "");
+    Expect(0, 72355, '\p{--IS_soyo}', "");
+    Expect(1, 72355, '\p{^--IS_soyo}', "");
+    Expect(1, 72355, '\P{--IS_soyo}', "");
+    Expect(0, 72355, '\P{^--IS_soyo}', "");
+    Error('\p{/a/-_space_separator}');
+    Error('\P{/a/-_space_separator}');
     Expect(1, 12288, '\p{spaceseparator}', "");
     Expect(0, 12288, '\p{^spaceseparator}', "");
     Expect(0, 12288, '\P{spaceseparator}', "");
@@ -119911,16 +121135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^spaceseparator}', "");
     Expect(1, 12289, '\P{spaceseparator}', "");
     Expect(0, 12289, '\P{^spaceseparator}', "");
-    Expect(1, 12288, '\p{ Space_Separator}', "");
-    Expect(0, 12288, '\p{^ Space_Separator}', "");
-    Expect(0, 12288, '\P{ Space_Separator}', "");
-    Expect(1, 12288, '\P{^ Space_Separator}', "");
-    Expect(0, 12289, '\p{ Space_Separator}', "");
-    Expect(1, 12289, '\p{^ Space_Separator}', "");
-    Expect(1, 12289, '\P{ Space_Separator}', "");
-    Expect(0, 12289, '\P{^ Space_Separator}', "");
-    Error('\p{/a/ -IS_Space_Separator}');
-    Error('\P{/a/ -IS_Space_Separator}');
+    Expect(1, 12288, '\p{_-Space_Separator}', "");
+    Expect(0, 12288, '\p{^_-Space_Separator}', "");
+    Expect(0, 12288, '\P{_-Space_Separator}', "");
+    Expect(1, 12288, '\P{^_-Space_Separator}', "");
+    Expect(0, 12289, '\p{_-Space_Separator}', "");
+    Expect(1, 12289, '\p{^_-Space_Separator}', "");
+    Expect(1, 12289, '\P{_-Space_Separator}', "");
+    Expect(0, 12289, '\P{^_-Space_Separator}', "");
+    Error('\p{	-is_Space_separator/a/}');
+    Error('\P{	-is_Space_separator/a/}');
     Expect(1, 12288, '\p{isspaceseparator}', "");
     Expect(0, 12288, '\p{^isspaceseparator}', "");
     Expect(0, 12288, '\P{isspaceseparator}', "");
@@ -119929,16 +121153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isspaceseparator}', "");
     Expect(1, 12289, '\P{isspaceseparator}', "");
     Expect(0, 12289, '\P{^isspaceseparator}', "");
-    Expect(1, 12288, '\p{ Is_Space_separator}', "");
-    Expect(0, 12288, '\p{^ Is_Space_separator}', "");
-    Expect(0, 12288, '\P{ Is_Space_separator}', "");
-    Expect(1, 12288, '\P{^ Is_Space_separator}', "");
-    Expect(0, 12289, '\p{ Is_Space_separator}', "");
-    Expect(1, 12289, '\p{^ Is_Space_separator}', "");
-    Expect(1, 12289, '\P{ Is_Space_separator}', "");
-    Expect(0, 12289, '\P{^ Is_Space_separator}', "");
-    Error('\p{:=		Zs}');
-    Error('\P{:=		Zs}');
+    Expect(1, 12288, '\p{		Is_Space_Separator}', "");
+    Expect(0, 12288, '\p{^		Is_Space_Separator}', "");
+    Expect(0, 12288, '\P{		Is_Space_Separator}', "");
+    Expect(1, 12288, '\P{^		Is_Space_Separator}', "");
+    Expect(0, 12289, '\p{		Is_Space_Separator}', "");
+    Expect(1, 12289, '\p{^		Is_Space_Separator}', "");
+    Expect(1, 12289, '\P{		Is_Space_Separator}', "");
+    Expect(0, 12289, '\P{^		Is_Space_Separator}', "");
+    Error('\p{:=	_Zs}');
+    Error('\P{:=	_Zs}');
     Expect(1, 12288, '\p{zs}', "");
     Expect(0, 12288, '\p{^zs}', "");
     Expect(0, 12288, '\P{zs}', "");
@@ -119947,16 +121171,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^zs}', "");
     Expect(1, 12289, '\P{zs}', "");
     Expect(0, 12289, '\P{^zs}', "");
-    Expect(1, 12288, '\p{--ZS}', "");
-    Expect(0, 12288, '\p{^--ZS}', "");
-    Expect(0, 12288, '\P{--ZS}', "");
-    Expect(1, 12288, '\P{^--ZS}', "");
-    Expect(0, 12289, '\p{--ZS}', "");
-    Expect(1, 12289, '\p{^--ZS}', "");
-    Expect(1, 12289, '\P{--ZS}', "");
-    Expect(0, 12289, '\P{^--ZS}', "");
-    Error('\p{-_Is_ZS:=}');
-    Error('\P{-_Is_ZS:=}');
+    Expect(1, 12288, '\p{	Zs}', "");
+    Expect(0, 12288, '\p{^	Zs}', "");
+    Expect(0, 12288, '\P{	Zs}', "");
+    Expect(1, 12288, '\P{^	Zs}', "");
+    Expect(0, 12289, '\p{	Zs}', "");
+    Expect(1, 12289, '\p{^	Zs}', "");
+    Expect(1, 12289, '\P{	Zs}', "");
+    Expect(0, 12289, '\P{^	Zs}', "");
+    Error('\p{/a/is_ZS}');
+    Error('\P{/a/is_ZS}');
     Expect(1, 12288, '\p{iszs}', "");
     Expect(0, 12288, '\p{^iszs}', "");
     Expect(0, 12288, '\P{iszs}', "");
@@ -119965,16 +121189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^iszs}', "");
     Expect(1, 12289, '\P{iszs}', "");
     Expect(0, 12289, '\P{^iszs}', "");
-    Expect(1, 12288, '\p{--IS_ZS}', "");
-    Expect(0, 12288, '\p{^--IS_ZS}', "");
-    Expect(0, 12288, '\P{--IS_ZS}', "");
-    Expect(1, 12288, '\P{^--IS_ZS}', "");
-    Expect(0, 12289, '\p{--IS_ZS}', "");
-    Expect(1, 12289, '\p{^--IS_ZS}', "");
-    Expect(1, 12289, '\P{--IS_ZS}', "");
-    Expect(0, 12289, '\P{^--IS_ZS}', "");
-    Error('\p{/a/SPACING_Mark}');
-    Error('\P{/a/SPACING_Mark}');
+    Expect(1, 12288, '\p{ 	Is_Zs}', "");
+    Expect(0, 12288, '\p{^ 	Is_Zs}', "");
+    Expect(0, 12288, '\P{ 	Is_Zs}', "");
+    Expect(1, 12288, '\P{^ 	Is_Zs}', "");
+    Expect(0, 12289, '\p{ 	Is_Zs}', "");
+    Expect(1, 12289, '\p{^ 	Is_Zs}', "");
+    Expect(1, 12289, '\P{ 	Is_Zs}', "");
+    Expect(0, 12289, '\P{^ 	Is_Zs}', "");
+    Error('\p{:= spacing_Mark}');
+    Error('\P{:= spacing_Mark}');
     Expect(1, 119154, '\p{spacingmark}', "");
     Expect(0, 119154, '\p{^spacingmark}', "");
     Expect(0, 119154, '\P{spacingmark}', "");
@@ -119983,16 +121207,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119155, '\p{^spacingmark}', "");
     Expect(1, 119155, '\P{spacingmark}', "");
     Expect(0, 119155, '\P{^spacingmark}', "");
-    Expect(1, 119154, '\p{	SPACING_mark}', "");
-    Expect(0, 119154, '\p{^	SPACING_mark}', "");
-    Expect(0, 119154, '\P{	SPACING_mark}', "");
-    Expect(1, 119154, '\P{^	SPACING_mark}', "");
-    Expect(0, 119155, '\p{	SPACING_mark}', "");
-    Expect(1, 119155, '\p{^	SPACING_mark}', "");
-    Expect(1, 119155, '\P{	SPACING_mark}', "");
-    Expect(0, 119155, '\P{^	SPACING_mark}', "");
-    Error('\p{-:=is_Spacing_Mark}');
-    Error('\P{-:=is_Spacing_Mark}');
+    Expect(1, 119154, '\p{_	SPACING_MARK}', "");
+    Expect(0, 119154, '\p{^_	SPACING_MARK}', "");
+    Expect(0, 119154, '\P{_	SPACING_MARK}', "");
+    Expect(1, 119154, '\P{^_	SPACING_MARK}', "");
+    Expect(0, 119155, '\p{_	SPACING_MARK}', "");
+    Expect(1, 119155, '\p{^_	SPACING_MARK}', "");
+    Expect(1, 119155, '\P{_	SPACING_MARK}', "");
+    Expect(0, 119155, '\P{^_	SPACING_MARK}', "");
+    Error('\p{:=- Is_Spacing_Mark}');
+    Error('\P{:=- Is_Spacing_Mark}');
     Expect(1, 119154, '\p{isspacingmark}', "");
     Expect(0, 119154, '\p{^isspacingmark}', "");
     Expect(0, 119154, '\P{isspacingmark}', "");
@@ -120001,16 +121225,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119155, '\p{^isspacingmark}', "");
     Expect(1, 119155, '\P{isspacingmark}', "");
     Expect(0, 119155, '\P{^isspacingmark}', "");
-    Expect(1, 119154, '\p{ -IS_Spacing_mark}', "");
-    Expect(0, 119154, '\p{^ -IS_Spacing_mark}', "");
-    Expect(0, 119154, '\P{ -IS_Spacing_mark}', "");
-    Expect(1, 119154, '\P{^ -IS_Spacing_mark}', "");
-    Expect(0, 119155, '\p{ -IS_Spacing_mark}', "");
-    Expect(1, 119155, '\p{^ -IS_Spacing_mark}', "");
-    Expect(1, 119155, '\P{ -IS_Spacing_mark}', "");
-    Expect(0, 119155, '\P{^ -IS_Spacing_mark}', "");
-    Error('\p{_ Mc:=}');
-    Error('\P{_ Mc:=}');
+    Expect(1, 119154, '\p{	is_Spacing_Mark}', "");
+    Expect(0, 119154, '\p{^	is_Spacing_Mark}', "");
+    Expect(0, 119154, '\P{	is_Spacing_Mark}', "");
+    Expect(1, 119154, '\P{^	is_Spacing_Mark}', "");
+    Expect(0, 119155, '\p{	is_Spacing_Mark}', "");
+    Expect(1, 119155, '\p{^	is_Spacing_Mark}', "");
+    Expect(1, 119155, '\P{	is_Spacing_Mark}', "");
+    Expect(0, 119155, '\P{^	is_Spacing_Mark}', "");
+    Error('\p{ Mc:=}');
+    Error('\P{ Mc:=}');
     Expect(1, 119154, '\p{mc}', "");
     Expect(0, 119154, '\p{^mc}', "");
     Expect(0, 119154, '\P{mc}', "");
@@ -120019,16 +121243,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119155, '\p{^mc}', "");
     Expect(1, 119155, '\P{mc}', "");
     Expect(0, 119155, '\P{^mc}', "");
-    Expect(1, 119154, '\p{ mc}', "");
-    Expect(0, 119154, '\p{^ mc}', "");
-    Expect(0, 119154, '\P{ mc}', "");
-    Expect(1, 119154, '\P{^ mc}', "");
-    Expect(0, 119155, '\p{ mc}', "");
-    Expect(1, 119155, '\p{^ mc}', "");
-    Expect(1, 119155, '\P{ mc}', "");
-    Expect(0, 119155, '\P{^ mc}', "");
-    Error('\p{		Is_Mc/a/}');
-    Error('\P{		Is_Mc/a/}');
+    Expect(1, 119154, '\p{_Mc}', "");
+    Expect(0, 119154, '\p{^_Mc}', "");
+    Expect(0, 119154, '\P{_Mc}', "");
+    Expect(1, 119154, '\P{^_Mc}', "");
+    Expect(0, 119155, '\p{_Mc}', "");
+    Expect(1, 119155, '\p{^_Mc}', "");
+    Expect(1, 119155, '\P{_Mc}', "");
+    Expect(0, 119155, '\P{^_Mc}', "");
+    Error('\p{_-is_Mc/a/}');
+    Error('\P{_-is_Mc/a/}');
     Expect(1, 119154, '\p{ismc}', "");
     Expect(0, 119154, '\p{^ismc}', "");
     Expect(0, 119154, '\P{ismc}', "");
@@ -120037,16 +121261,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119155, '\p{^ismc}', "");
     Expect(1, 119155, '\P{ismc}', "");
     Expect(0, 119155, '\P{^ismc}', "");
-    Expect(1, 119154, '\p{ Is_mc}', "");
-    Expect(0, 119154, '\p{^ Is_mc}', "");
-    Expect(0, 119154, '\P{ Is_mc}', "");
-    Expect(1, 119154, '\P{^ Is_mc}', "");
-    Expect(0, 119155, '\p{ Is_mc}', "");
-    Expect(1, 119155, '\p{^ Is_mc}', "");
-    Expect(1, 119155, '\P{ Is_mc}', "");
-    Expect(0, 119155, '\P{^ Is_mc}', "");
-    Error('\p{_Spacing_Modifier_LETTERS/a/}');
-    Error('\P{_Spacing_Modifier_LETTERS/a/}');
+    Expect(1, 119154, '\p{ 	Is_mc}', "");
+    Expect(0, 119154, '\p{^ 	Is_mc}', "");
+    Expect(0, 119154, '\P{ 	Is_mc}', "");
+    Expect(1, 119154, '\P{^ 	Is_mc}', "");
+    Expect(0, 119155, '\p{ 	Is_mc}', "");
+    Expect(1, 119155, '\p{^ 	Is_mc}', "");
+    Expect(1, 119155, '\P{ 	Is_mc}', "");
+    Expect(0, 119155, '\P{^ 	Is_mc}', "");
+    Error('\p{	:=Spacing_Modifier_Letters}');
+    Error('\P{	:=Spacing_Modifier_Letters}');
     Expect(1, 767, '\p{spacingmodifierletters}', "");
     Expect(0, 767, '\p{^spacingmodifierletters}', "");
     Expect(0, 767, '\P{spacingmodifierletters}', "");
@@ -120055,16 +121279,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 768, '\p{^spacingmodifierletters}', "");
     Expect(1, 768, '\P{spacingmodifierletters}', "");
     Expect(0, 768, '\P{^spacingmodifierletters}', "");
-    Expect(1, 767, '\p{_-spacing_MODIFIER_letters}', "");
-    Expect(0, 767, '\p{^_-spacing_MODIFIER_letters}', "");
-    Expect(0, 767, '\P{_-spacing_MODIFIER_letters}', "");
-    Expect(1, 767, '\P{^_-spacing_MODIFIER_letters}', "");
-    Expect(0, 768, '\p{_-spacing_MODIFIER_letters}', "");
-    Expect(1, 768, '\p{^_-spacing_MODIFIER_letters}', "");
-    Expect(1, 768, '\P{_-spacing_MODIFIER_letters}', "");
-    Expect(0, 768, '\P{^_-spacing_MODIFIER_letters}', "");
-    Error('\p{/a/ 	Is_spacing_modifier_letters}');
-    Error('\P{/a/ 	Is_spacing_modifier_letters}');
+    Expect(1, 767, '\p{ 	SPACING_modifier_LETTERS}', "");
+    Expect(0, 767, '\p{^ 	SPACING_modifier_LETTERS}', "");
+    Expect(0, 767, '\P{ 	SPACING_modifier_LETTERS}', "");
+    Expect(1, 767, '\P{^ 	SPACING_modifier_LETTERS}', "");
+    Expect(0, 768, '\p{ 	SPACING_modifier_LETTERS}', "");
+    Expect(1, 768, '\p{^ 	SPACING_modifier_LETTERS}', "");
+    Expect(1, 768, '\P{ 	SPACING_modifier_LETTERS}', "");
+    Expect(0, 768, '\P{^ 	SPACING_modifier_LETTERS}', "");
+    Error('\p{:=__Is_Spacing_MODIFIER_Letters}');
+    Error('\P{:=__Is_Spacing_MODIFIER_Letters}');
     Expect(1, 767, '\p{isspacingmodifierletters}', "");
     Expect(0, 767, '\p{^isspacingmodifierletters}', "");
     Expect(0, 767, '\P{isspacingmodifierletters}', "");
@@ -120073,16 +121297,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 768, '\p{^isspacingmodifierletters}', "");
     Expect(1, 768, '\P{isspacingmodifierletters}', "");
     Expect(0, 768, '\P{^isspacingmodifierletters}', "");
-    Expect(1, 767, '\p{  is_Spacing_Modifier_Letters}', "");
-    Expect(0, 767, '\p{^  is_Spacing_Modifier_Letters}', "");
-    Expect(0, 767, '\P{  is_Spacing_Modifier_Letters}', "");
-    Expect(1, 767, '\P{^  is_Spacing_Modifier_Letters}', "");
-    Expect(0, 768, '\p{  is_Spacing_Modifier_Letters}', "");
-    Expect(1, 768, '\p{^  is_Spacing_Modifier_Letters}', "");
-    Expect(1, 768, '\P{  is_Spacing_Modifier_Letters}', "");
-    Expect(0, 768, '\P{^  is_Spacing_Modifier_Letters}', "");
-    Error('\p{_/a/In_SPACING_MODIFIER_Letters}');
-    Error('\P{_/a/In_SPACING_MODIFIER_Letters}');
+    Expect(1, 767, '\p{ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(0, 767, '\p{^ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(0, 767, '\P{ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(1, 767, '\P{^ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(0, 768, '\p{ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(1, 768, '\p{^ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(1, 768, '\P{ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Expect(0, 768, '\P{^ 	is_SPACING_MODIFIER_LETTERS}', "");
+    Error('\p{ :=In_Spacing_modifier_Letters}');
+    Error('\P{ :=In_Spacing_modifier_Letters}');
     Expect(1, 767, '\p{inspacingmodifierletters}', "");
     Expect(0, 767, '\p{^inspacingmodifierletters}', "");
     Expect(0, 767, '\P{inspacingmodifierletters}', "");
@@ -120091,16 +121315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 768, '\p{^inspacingmodifierletters}', "");
     Expect(1, 768, '\P{inspacingmodifierletters}', "");
     Expect(0, 768, '\P{^inspacingmodifierletters}', "");
-    Expect(1, 767, '\p{	-in_Spacing_Modifier_letters}', "");
-    Expect(0, 767, '\p{^	-in_Spacing_Modifier_letters}', "");
-    Expect(0, 767, '\P{	-in_Spacing_Modifier_letters}', "");
-    Expect(1, 767, '\P{^	-in_Spacing_Modifier_letters}', "");
-    Expect(0, 768, '\p{	-in_Spacing_Modifier_letters}', "");
-    Expect(1, 768, '\p{^	-in_Spacing_Modifier_letters}', "");
-    Expect(1, 768, '\P{	-in_Spacing_Modifier_letters}', "");
-    Expect(0, 768, '\P{^	-in_Spacing_Modifier_letters}', "");
-    Error('\p{/a/_MODIFIER_letters}');
-    Error('\P{/a/_MODIFIER_letters}');
+    Expect(1, 767, '\p{ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(0, 767, '\p{^ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(0, 767, '\P{ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(1, 767, '\P{^ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(0, 768, '\p{ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(1, 768, '\p{^ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(1, 768, '\P{ -In_SPACING_Modifier_LETTERS}', "");
+    Expect(0, 768, '\P{^ -In_SPACING_Modifier_LETTERS}', "");
+    Error('\p{ 	MODIFIER_letters:=}');
+    Error('\P{ 	MODIFIER_letters:=}');
     Expect(1, 767, '\p{modifierletters}', "");
     Expect(0, 767, '\p{^modifierletters}', "");
     Expect(0, 767, '\P{modifierletters}', "");
@@ -120109,16 +121333,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 768, '\p{^modifierletters}', "");
     Expect(1, 768, '\P{modifierletters}', "");
     Expect(0, 768, '\P{^modifierletters}', "");
-    Expect(1, 767, '\p{ modifier_LETTERS}', "");
-    Expect(0, 767, '\p{^ modifier_LETTERS}', "");
-    Expect(0, 767, '\P{ modifier_LETTERS}', "");
-    Expect(1, 767, '\P{^ modifier_LETTERS}', "");
-    Expect(0, 768, '\p{ modifier_LETTERS}', "");
-    Expect(1, 768, '\p{^ modifier_LETTERS}', "");
-    Expect(1, 768, '\P{ modifier_LETTERS}', "");
-    Expect(0, 768, '\P{^ modifier_LETTERS}', "");
-    Error('\p{:=-_is_modifier_letters}');
-    Error('\P{:=-_is_modifier_letters}');
+    Expect(1, 767, '\p{-Modifier_LETTERS}', "");
+    Expect(0, 767, '\p{^-Modifier_LETTERS}', "");
+    Expect(0, 767, '\P{-Modifier_LETTERS}', "");
+    Expect(1, 767, '\P{^-Modifier_LETTERS}', "");
+    Expect(0, 768, '\p{-Modifier_LETTERS}', "");
+    Expect(1, 768, '\p{^-Modifier_LETTERS}', "");
+    Expect(1, 768, '\P{-Modifier_LETTERS}', "");
+    Expect(0, 768, '\P{^-Modifier_LETTERS}', "");
+    Error('\p{:=IS_Modifier_Letters}');
+    Error('\P{:=IS_Modifier_Letters}');
     Expect(1, 767, '\p{ismodifierletters}', "");
     Expect(0, 767, '\p{^ismodifierletters}', "");
     Expect(0, 767, '\P{ismodifierletters}', "");
@@ -120127,16 +121351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 768, '\p{^ismodifierletters}', "");
     Expect(1, 768, '\P{ismodifierletters}', "");
     Expect(0, 768, '\P{^ismodifierletters}', "");
-    Expect(1, 767, '\p{		is_Modifier_Letters}', "");
-    Expect(0, 767, '\p{^		is_Modifier_Letters}', "");
-    Expect(0, 767, '\P{		is_Modifier_Letters}', "");
-    Expect(1, 767, '\P{^		is_Modifier_Letters}', "");
-    Expect(0, 768, '\p{		is_Modifier_Letters}', "");
-    Expect(1, 768, '\p{^		is_Modifier_Letters}', "");
-    Expect(1, 768, '\P{		is_Modifier_Letters}', "");
-    Expect(0, 768, '\P{^		is_Modifier_Letters}', "");
-    Error('\p{	-In_Modifier_letters:=}');
-    Error('\P{	-In_Modifier_letters:=}');
+    Expect(1, 767, '\p{	Is_modifier_letters}', "");
+    Expect(0, 767, '\p{^	Is_modifier_letters}', "");
+    Expect(0, 767, '\P{	Is_modifier_letters}', "");
+    Expect(1, 767, '\P{^	Is_modifier_letters}', "");
+    Expect(0, 768, '\p{	Is_modifier_letters}', "");
+    Expect(1, 768, '\p{^	Is_modifier_letters}', "");
+    Expect(1, 768, '\P{	Is_modifier_letters}', "");
+    Expect(0, 768, '\P{^	Is_modifier_letters}', "");
+    Error('\p{:=IN_MODIFIER_Letters}');
+    Error('\P{:=IN_MODIFIER_Letters}');
     Expect(1, 767, '\p{inmodifierletters}', "");
     Expect(0, 767, '\p{^inmodifierletters}', "");
     Expect(0, 767, '\P{inmodifierletters}', "");
@@ -120145,16 +121369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 768, '\p{^inmodifierletters}', "");
     Expect(1, 768, '\P{inmodifierletters}', "");
     Expect(0, 768, '\P{^inmodifierletters}', "");
-    Expect(1, 767, '\p{		IN_Modifier_letters}', "");
-    Expect(0, 767, '\p{^		IN_Modifier_letters}', "");
-    Expect(0, 767, '\P{		IN_Modifier_letters}', "");
-    Expect(1, 767, '\P{^		IN_Modifier_letters}', "");
-    Expect(0, 768, '\p{		IN_Modifier_letters}', "");
-    Expect(1, 768, '\p{^		IN_Modifier_letters}', "");
-    Expect(1, 768, '\P{		IN_Modifier_letters}', "");
-    Expect(0, 768, '\P{^		IN_Modifier_letters}', "");
-    Error('\p{:=_ specials}');
-    Error('\P{:=_ specials}');
+    Expect(1, 767, '\p{ -In_Modifier_letters}', "");
+    Expect(0, 767, '\p{^ -In_Modifier_letters}', "");
+    Expect(0, 767, '\P{ -In_Modifier_letters}', "");
+    Expect(1, 767, '\P{^ -In_Modifier_letters}', "");
+    Expect(0, 768, '\p{ -In_Modifier_letters}', "");
+    Expect(1, 768, '\p{^ -In_Modifier_letters}', "");
+    Expect(1, 768, '\P{ -In_Modifier_letters}', "");
+    Expect(0, 768, '\P{^ -In_Modifier_letters}', "");
+    Error('\p{ _Specials/a/}');
+    Error('\P{ _Specials/a/}');
     Expect(1, 65520, '\p{specials}', "");
     Expect(0, 65520, '\p{^specials}', "");
     Expect(0, 65520, '\P{specials}', "");
@@ -120163,16 +121387,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65536, '\p{^specials}', "");
     Expect(1, 65536, '\P{specials}', "");
     Expect(0, 65536, '\P{^specials}', "");
-    Expect(1, 65520, '\p{ _SPECIALS}', "");
-    Expect(0, 65520, '\p{^ _SPECIALS}', "");
-    Expect(0, 65520, '\P{ _SPECIALS}', "");
-    Expect(1, 65520, '\P{^ _SPECIALS}', "");
-    Expect(0, 65536, '\p{ _SPECIALS}', "");
-    Expect(1, 65536, '\p{^ _SPECIALS}', "");
-    Expect(1, 65536, '\P{ _SPECIALS}', "");
-    Expect(0, 65536, '\P{^ _SPECIALS}', "");
-    Error('\p{ _is_SPECIALS:=}');
-    Error('\P{ _is_SPECIALS:=}');
+    Expect(1, 65520, '\p{	 specials}', "");
+    Expect(0, 65520, '\p{^	 specials}', "");
+    Expect(0, 65520, '\P{	 specials}', "");
+    Expect(1, 65520, '\P{^	 specials}', "");
+    Expect(0, 65536, '\p{	 specials}', "");
+    Expect(1, 65536, '\p{^	 specials}', "");
+    Expect(1, 65536, '\P{	 specials}', "");
+    Expect(0, 65536, '\P{^	 specials}', "");
+    Error('\p{:=_	is_Specials}');
+    Error('\P{:=_	is_Specials}');
     Expect(1, 65520, '\p{isspecials}', "");
     Expect(0, 65520, '\p{^isspecials}', "");
     Expect(0, 65520, '\P{isspecials}', "");
@@ -120181,16 +121405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65536, '\p{^isspecials}', "");
     Expect(1, 65536, '\P{isspecials}', "");
     Expect(0, 65536, '\P{^isspecials}', "");
-    Expect(1, 65520, '\p{	-IS_SPECIALS}', "");
-    Expect(0, 65520, '\p{^	-IS_SPECIALS}', "");
-    Expect(0, 65520, '\P{	-IS_SPECIALS}', "");
-    Expect(1, 65520, '\P{^	-IS_SPECIALS}', "");
-    Expect(0, 65536, '\p{	-IS_SPECIALS}', "");
-    Expect(1, 65536, '\p{^	-IS_SPECIALS}', "");
-    Expect(1, 65536, '\P{	-IS_SPECIALS}', "");
-    Expect(0, 65536, '\P{^	-IS_SPECIALS}', "");
-    Error('\p{-IN_Specials:=}');
-    Error('\P{-IN_Specials:=}');
+    Expect(1, 65520, '\p{_	Is_specials}', "");
+    Expect(0, 65520, '\p{^_	Is_specials}', "");
+    Expect(0, 65520, '\P{_	Is_specials}', "");
+    Expect(1, 65520, '\P{^_	Is_specials}', "");
+    Expect(0, 65536, '\p{_	Is_specials}', "");
+    Expect(1, 65536, '\p{^_	Is_specials}', "");
+    Expect(1, 65536, '\P{_	Is_specials}', "");
+    Expect(0, 65536, '\P{^_	Is_specials}', "");
+    Error('\p{_	In_specials:=}');
+    Error('\P{_	In_specials:=}');
     Expect(1, 65520, '\p{inspecials}', "");
     Expect(0, 65520, '\p{^inspecials}', "");
     Expect(0, 65520, '\P{inspecials}', "");
@@ -120199,16 +121423,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65536, '\p{^inspecials}', "");
     Expect(1, 65536, '\P{inspecials}', "");
     Expect(0, 65536, '\P{^inspecials}', "");
-    Expect(1, 65520, '\p{in_specials}', "");
-    Expect(0, 65520, '\p{^in_specials}', "");
-    Expect(0, 65520, '\P{in_specials}', "");
-    Expect(1, 65520, '\P{^in_specials}', "");
-    Expect(0, 65536, '\p{in_specials}', "");
-    Expect(1, 65536, '\p{^in_specials}', "");
-    Expect(1, 65536, '\P{in_specials}', "");
-    Expect(0, 65536, '\P{^in_specials}', "");
-    Error('\p{ -SUNDANESE/a/}');
-    Error('\P{ -SUNDANESE/a/}');
+    Expect(1, 65520, '\p{_ in_Specials}', "");
+    Expect(0, 65520, '\p{^_ in_Specials}', "");
+    Expect(0, 65520, '\P{_ in_Specials}', "");
+    Expect(1, 65520, '\P{^_ in_Specials}', "");
+    Expect(0, 65536, '\p{_ in_Specials}', "");
+    Expect(1, 65536, '\p{^_ in_Specials}', "");
+    Expect(1, 65536, '\P{_ in_Specials}', "");
+    Expect(0, 65536, '\P{^_ in_Specials}', "");
+    Error('\p{ Sundanese:=}');
+    Error('\P{ Sundanese:=}');
     Expect(1, 7367, '\p{sundanese}', "");
     Expect(0, 7367, '\p{^sundanese}', "");
     Expect(0, 7367, '\P{sundanese}', "");
@@ -120217,16 +121441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^sundanese}', "");
     Expect(1, 7368, '\P{sundanese}', "");
     Expect(0, 7368, '\P{^sundanese}', "");
-    Expect(1, 7367, '\p{__sundanese}', "");
-    Expect(0, 7367, '\p{^__sundanese}', "");
-    Expect(0, 7367, '\P{__sundanese}', "");
-    Expect(1, 7367, '\P{^__sundanese}', "");
-    Expect(0, 7368, '\p{__sundanese}', "");
-    Expect(1, 7368, '\p{^__sundanese}', "");
-    Expect(1, 7368, '\P{__sundanese}', "");
-    Expect(0, 7368, '\P{^__sundanese}', "");
-    Error('\p{/a/	is_Sundanese}');
-    Error('\P{/a/	is_Sundanese}');
+    Expect(1, 7367, '\p{_Sundanese}', "");
+    Expect(0, 7367, '\p{^_Sundanese}', "");
+    Expect(0, 7367, '\P{_Sundanese}', "");
+    Expect(1, 7367, '\P{^_Sundanese}', "");
+    Expect(0, 7368, '\p{_Sundanese}', "");
+    Expect(1, 7368, '\p{^_Sundanese}', "");
+    Expect(1, 7368, '\P{_Sundanese}', "");
+    Expect(0, 7368, '\P{^_Sundanese}', "");
+    Error('\p{	-Is_sundanese:=}');
+    Error('\P{	-Is_sundanese:=}');
     Expect(1, 7367, '\p{issundanese}', "");
     Expect(0, 7367, '\p{^issundanese}', "");
     Expect(0, 7367, '\P{issundanese}', "");
@@ -120235,16 +121459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^issundanese}', "");
     Expect(1, 7368, '\P{issundanese}', "");
     Expect(0, 7368, '\P{^issundanese}', "");
-    Expect(1, 7367, '\p{		is_sundanese}', "");
-    Expect(0, 7367, '\p{^		is_sundanese}', "");
-    Expect(0, 7367, '\P{		is_sundanese}', "");
-    Expect(1, 7367, '\P{^		is_sundanese}', "");
-    Expect(0, 7368, '\p{		is_sundanese}', "");
-    Expect(1, 7368, '\p{^		is_sundanese}', "");
-    Expect(1, 7368, '\P{		is_sundanese}', "");
-    Expect(0, 7368, '\P{^		is_sundanese}', "");
-    Error('\p{:=_Sund}');
-    Error('\P{:=_Sund}');
+    Expect(1, 7367, '\p{	_IS_Sundanese}', "");
+    Expect(0, 7367, '\p{^	_IS_Sundanese}', "");
+    Expect(0, 7367, '\P{	_IS_Sundanese}', "");
+    Expect(1, 7367, '\P{^	_IS_Sundanese}', "");
+    Expect(0, 7368, '\p{	_IS_Sundanese}', "");
+    Expect(1, 7368, '\p{^	_IS_Sundanese}', "");
+    Expect(1, 7368, '\P{	_IS_Sundanese}', "");
+    Expect(0, 7368, '\P{^	_IS_Sundanese}', "");
+    Error('\p{  sund:=}');
+    Error('\P{  sund:=}');
     Expect(1, 7367, '\p{sund}', "");
     Expect(0, 7367, '\p{^sund}', "");
     Expect(0, 7367, '\P{sund}', "");
@@ -120253,16 +121477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^sund}', "");
     Expect(1, 7368, '\P{sund}', "");
     Expect(0, 7368, '\P{^sund}', "");
-    Expect(1, 7367, '\p{		SUND}', "");
-    Expect(0, 7367, '\p{^		SUND}', "");
-    Expect(0, 7367, '\P{		SUND}', "");
-    Expect(1, 7367, '\P{^		SUND}', "");
-    Expect(0, 7368, '\p{		SUND}', "");
-    Expect(1, 7368, '\p{^		SUND}', "");
-    Expect(1, 7368, '\P{		SUND}', "");
-    Expect(0, 7368, '\P{^		SUND}', "");
-    Error('\p{/a/		Is_SUND}');
-    Error('\P{/a/		Is_SUND}');
+    Expect(1, 7367, '\p{  Sund}', "");
+    Expect(0, 7367, '\p{^  Sund}', "");
+    Expect(0, 7367, '\P{  Sund}', "");
+    Expect(1, 7367, '\P{^  Sund}', "");
+    Expect(0, 7368, '\p{  Sund}', "");
+    Expect(1, 7368, '\p{^  Sund}', "");
+    Expect(1, 7368, '\P{  Sund}', "");
+    Expect(0, 7368, '\P{^  Sund}', "");
+    Error('\p{/a/IS_sund}');
+    Error('\P{/a/IS_sund}');
     Expect(1, 7367, '\p{issund}', "");
     Expect(0, 7367, '\p{^issund}', "");
     Expect(0, 7367, '\P{issund}', "");
@@ -120271,16 +121495,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^issund}', "");
     Expect(1, 7368, '\P{issund}', "");
     Expect(0, 7368, '\P{^issund}', "");
-    Expect(1, 7367, '\p{_	Is_sund}', "");
-    Expect(0, 7367, '\p{^_	Is_sund}', "");
-    Expect(0, 7367, '\P{_	Is_sund}', "");
-    Expect(1, 7367, '\P{^_	Is_sund}', "");
-    Expect(0, 7368, '\p{_	Is_sund}', "");
-    Expect(1, 7368, '\p{^_	Is_sund}', "");
-    Expect(1, 7368, '\P{_	Is_sund}', "");
-    Expect(0, 7368, '\P{^_	Is_sund}', "");
-    Error('\p{-	SUNDANESE_Supplement:=}');
-    Error('\P{-	SUNDANESE_Supplement:=}');
+    Expect(1, 7367, '\p{ is_Sund}', "");
+    Expect(0, 7367, '\p{^ is_Sund}', "");
+    Expect(0, 7367, '\P{ is_Sund}', "");
+    Expect(1, 7367, '\P{^ is_Sund}', "");
+    Expect(0, 7368, '\p{ is_Sund}', "");
+    Expect(1, 7368, '\p{^ is_Sund}', "");
+    Expect(1, 7368, '\P{ is_Sund}', "");
+    Expect(0, 7368, '\P{^ is_Sund}', "");
+    Error('\p{	:=Sundanese_Supplement}');
+    Error('\P{	:=Sundanese_Supplement}');
     Expect(1, 7375, '\p{sundanesesupplement}', "");
     Expect(0, 7375, '\p{^sundanesesupplement}', "");
     Expect(0, 7375, '\P{sundanesesupplement}', "");
@@ -120289,16 +121513,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7376, '\p{^sundanesesupplement}', "");
     Expect(1, 7376, '\P{sundanesesupplement}', "");
     Expect(0, 7376, '\P{^sundanesesupplement}', "");
-    Expect(1, 7375, '\p{ Sundanese_supplement}', "");
-    Expect(0, 7375, '\p{^ Sundanese_supplement}', "");
-    Expect(0, 7375, '\P{ Sundanese_supplement}', "");
-    Expect(1, 7375, '\P{^ Sundanese_supplement}', "");
-    Expect(0, 7376, '\p{ Sundanese_supplement}', "");
-    Expect(1, 7376, '\p{^ Sundanese_supplement}', "");
-    Expect(1, 7376, '\P{ Sundanese_supplement}', "");
-    Expect(0, 7376, '\P{^ Sundanese_supplement}', "");
-    Error('\p{:=	_Is_SUNDANESE_Supplement}');
-    Error('\P{:=	_Is_SUNDANESE_Supplement}');
+    Expect(1, 7375, '\p{ 	Sundanese_Supplement}', "");
+    Expect(0, 7375, '\p{^ 	Sundanese_Supplement}', "");
+    Expect(0, 7375, '\P{ 	Sundanese_Supplement}', "");
+    Expect(1, 7375, '\P{^ 	Sundanese_Supplement}', "");
+    Expect(0, 7376, '\p{ 	Sundanese_Supplement}', "");
+    Expect(1, 7376, '\p{^ 	Sundanese_Supplement}', "");
+    Expect(1, 7376, '\P{ 	Sundanese_Supplement}', "");
+    Expect(0, 7376, '\P{^ 	Sundanese_Supplement}', "");
+    Error('\p{/a/ -IS_Sundanese_Supplement}');
+    Error('\P{/a/ -IS_Sundanese_Supplement}');
     Expect(1, 7375, '\p{issundanesesupplement}', "");
     Expect(0, 7375, '\p{^issundanesesupplement}', "");
     Expect(0, 7375, '\P{issundanesesupplement}', "");
@@ -120307,16 +121531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7376, '\p{^issundanesesupplement}', "");
     Expect(1, 7376, '\P{issundanesesupplement}', "");
     Expect(0, 7376, '\P{^issundanesesupplement}', "");
-    Expect(1, 7375, '\p{_-is_Sundanese_Supplement}', "");
-    Expect(0, 7375, '\p{^_-is_Sundanese_Supplement}', "");
-    Expect(0, 7375, '\P{_-is_Sundanese_Supplement}', "");
-    Expect(1, 7375, '\P{^_-is_Sundanese_Supplement}', "");
-    Expect(0, 7376, '\p{_-is_Sundanese_Supplement}', "");
-    Expect(1, 7376, '\p{^_-is_Sundanese_Supplement}', "");
-    Expect(1, 7376, '\P{_-is_Sundanese_Supplement}', "");
-    Expect(0, 7376, '\P{^_-is_Sundanese_Supplement}', "");
-    Error('\p{/a/_In_Sundanese_Supplement}');
-    Error('\P{/a/_In_Sundanese_Supplement}');
+    Expect(1, 7375, '\p{--is_sundanese_SUPPLEMENT}', "");
+    Expect(0, 7375, '\p{^--is_sundanese_SUPPLEMENT}', "");
+    Expect(0, 7375, '\P{--is_sundanese_SUPPLEMENT}', "");
+    Expect(1, 7375, '\P{^--is_sundanese_SUPPLEMENT}', "");
+    Expect(0, 7376, '\p{--is_sundanese_SUPPLEMENT}', "");
+    Expect(1, 7376, '\p{^--is_sundanese_SUPPLEMENT}', "");
+    Expect(1, 7376, '\P{--is_sundanese_SUPPLEMENT}', "");
+    Expect(0, 7376, '\P{^--is_sundanese_SUPPLEMENT}', "");
+    Error('\p{-:=IN_Sundanese_Supplement}');
+    Error('\P{-:=IN_Sundanese_Supplement}');
     Expect(1, 7375, '\p{insundanesesupplement}', "");
     Expect(0, 7375, '\p{^insundanesesupplement}', "");
     Expect(0, 7375, '\P{insundanesesupplement}', "");
@@ -120325,16 +121549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7376, '\p{^insundanesesupplement}', "");
     Expect(1, 7376, '\P{insundanesesupplement}', "");
     Expect(0, 7376, '\P{^insundanesesupplement}', "");
-    Expect(1, 7375, '\p{ -IN_sundanese_Supplement}', "");
-    Expect(0, 7375, '\p{^ -IN_sundanese_Supplement}', "");
-    Expect(0, 7375, '\P{ -IN_sundanese_Supplement}', "");
-    Expect(1, 7375, '\P{^ -IN_sundanese_Supplement}', "");
-    Expect(0, 7376, '\p{ -IN_sundanese_Supplement}', "");
-    Expect(1, 7376, '\p{^ -IN_sundanese_Supplement}', "");
-    Expect(1, 7376, '\P{ -IN_sundanese_Supplement}', "");
-    Expect(0, 7376, '\P{^ -IN_sundanese_Supplement}', "");
-    Error('\p{-:=Sundanese_Sup}');
-    Error('\P{-:=Sundanese_Sup}');
+    Expect(1, 7375, '\p{__In_Sundanese_Supplement}', "");
+    Expect(0, 7375, '\p{^__In_Sundanese_Supplement}', "");
+    Expect(0, 7375, '\P{__In_Sundanese_Supplement}', "");
+    Expect(1, 7375, '\P{^__In_Sundanese_Supplement}', "");
+    Expect(0, 7376, '\p{__In_Sundanese_Supplement}', "");
+    Expect(1, 7376, '\p{^__In_Sundanese_Supplement}', "");
+    Expect(1, 7376, '\P{__In_Sundanese_Supplement}', "");
+    Expect(0, 7376, '\P{^__In_Sundanese_Supplement}', "");
+    Error('\p{/a/Sundanese_SUP}');
+    Error('\P{/a/Sundanese_SUP}');
     Expect(1, 7375, '\p{sundanesesup}', "");
     Expect(0, 7375, '\p{^sundanesesup}', "");
     Expect(0, 7375, '\P{sundanesesup}', "");
@@ -120343,16 +121567,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7376, '\p{^sundanesesup}', "");
     Expect(1, 7376, '\P{sundanesesup}', "");
     Expect(0, 7376, '\P{^sundanesesup}', "");
-    Expect(1, 7375, '\p{_-SUNDANESE_sup}', "");
-    Expect(0, 7375, '\p{^_-SUNDANESE_sup}', "");
-    Expect(0, 7375, '\P{_-SUNDANESE_sup}', "");
-    Expect(1, 7375, '\P{^_-SUNDANESE_sup}', "");
-    Expect(0, 7376, '\p{_-SUNDANESE_sup}', "");
-    Expect(1, 7376, '\p{^_-SUNDANESE_sup}', "");
-    Expect(1, 7376, '\P{_-SUNDANESE_sup}', "");
-    Expect(0, 7376, '\P{^_-SUNDANESE_sup}', "");
-    Error('\p{	:=is_Sundanese_sup}');
-    Error('\P{	:=is_Sundanese_sup}');
+    Expect(1, 7375, '\p{		Sundanese_SUP}', "");
+    Expect(0, 7375, '\p{^		Sundanese_SUP}', "");
+    Expect(0, 7375, '\P{		Sundanese_SUP}', "");
+    Expect(1, 7375, '\P{^		Sundanese_SUP}', "");
+    Expect(0, 7376, '\p{		Sundanese_SUP}', "");
+    Expect(1, 7376, '\p{^		Sundanese_SUP}', "");
+    Expect(1, 7376, '\P{		Sundanese_SUP}', "");
+    Expect(0, 7376, '\P{^		Sundanese_SUP}', "");
+    Error('\p{_IS_Sundanese_Sup/a/}');
+    Error('\P{_IS_Sundanese_Sup/a/}');
     Expect(1, 7375, '\p{issundanesesup}', "");
     Expect(0, 7375, '\p{^issundanesesup}', "");
     Expect(0, 7375, '\P{issundanesesup}', "");
@@ -120361,16 +121585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7376, '\p{^issundanesesup}', "");
     Expect(1, 7376, '\P{issundanesesup}', "");
     Expect(0, 7376, '\P{^issundanesesup}', "");
-    Expect(1, 7375, '\p{ 	IS_SUNDANESE_Sup}', "");
-    Expect(0, 7375, '\p{^ 	IS_SUNDANESE_Sup}', "");
-    Expect(0, 7375, '\P{ 	IS_SUNDANESE_Sup}', "");
-    Expect(1, 7375, '\P{^ 	IS_SUNDANESE_Sup}', "");
-    Expect(0, 7376, '\p{ 	IS_SUNDANESE_Sup}', "");
-    Expect(1, 7376, '\p{^ 	IS_SUNDANESE_Sup}', "");
-    Expect(1, 7376, '\P{ 	IS_SUNDANESE_Sup}', "");
-    Expect(0, 7376, '\P{^ 	IS_SUNDANESE_Sup}', "");
-    Error('\p{_/a/In_Sundanese_sup}');
-    Error('\P{_/a/In_Sundanese_sup}');
+    Expect(1, 7375, '\p{--Is_SUNDANESE_Sup}', "");
+    Expect(0, 7375, '\p{^--Is_SUNDANESE_Sup}', "");
+    Expect(0, 7375, '\P{--Is_SUNDANESE_Sup}', "");
+    Expect(1, 7375, '\P{^--Is_SUNDANESE_Sup}', "");
+    Expect(0, 7376, '\p{--Is_SUNDANESE_Sup}', "");
+    Expect(1, 7376, '\p{^--Is_SUNDANESE_Sup}', "");
+    Expect(1, 7376, '\P{--Is_SUNDANESE_Sup}', "");
+    Expect(0, 7376, '\P{^--Is_SUNDANESE_Sup}', "");
+    Error('\p{:= 	IN_Sundanese_SUP}');
+    Error('\P{:= 	IN_Sundanese_SUP}');
     Expect(1, 7375, '\p{insundanesesup}', "");
     Expect(0, 7375, '\p{^insundanesesup}', "");
     Expect(0, 7375, '\P{insundanesesup}', "");
@@ -120379,16 +121603,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7376, '\p{^insundanesesup}', "");
     Expect(1, 7376, '\P{insundanesesup}', "");
     Expect(0, 7376, '\P{^insundanesesup}', "");
-    Expect(1, 7375, '\p{ IN_sundanese_Sup}', "");
-    Expect(0, 7375, '\p{^ IN_sundanese_Sup}', "");
-    Expect(0, 7375, '\P{ IN_sundanese_Sup}', "");
-    Expect(1, 7375, '\P{^ IN_sundanese_Sup}', "");
-    Expect(0, 7376, '\p{ IN_sundanese_Sup}', "");
-    Expect(1, 7376, '\p{^ IN_sundanese_Sup}', "");
-    Expect(1, 7376, '\P{ IN_sundanese_Sup}', "");
-    Expect(0, 7376, '\P{^ IN_sundanese_Sup}', "");
-    Error('\p{/a/-_Superscripts_And_SUBSCRIPTS}');
-    Error('\P{/a/-_Superscripts_And_SUBSCRIPTS}');
+    Expect(1, 7375, '\p{		IN_sundanese_sup}', "");
+    Expect(0, 7375, '\p{^		IN_sundanese_sup}', "");
+    Expect(0, 7375, '\P{		IN_sundanese_sup}', "");
+    Expect(1, 7375, '\P{^		IN_sundanese_sup}', "");
+    Expect(0, 7376, '\p{		IN_sundanese_sup}', "");
+    Expect(1, 7376, '\p{^		IN_sundanese_sup}', "");
+    Expect(1, 7376, '\P{		IN_sundanese_sup}', "");
+    Expect(0, 7376, '\P{^		IN_sundanese_sup}', "");
+    Error('\p{_ Superscripts_And_subscripts:=}');
+    Error('\P{_ Superscripts_And_subscripts:=}');
     Expect(1, 8351, '\p{superscriptsandsubscripts}', "");
     Expect(0, 8351, '\p{^superscriptsandsubscripts}', "");
     Expect(0, 8351, '\P{superscriptsandsubscripts}', "");
@@ -120397,16 +121621,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8352, '\p{^superscriptsandsubscripts}', "");
     Expect(1, 8352, '\P{superscriptsandsubscripts}', "");
     Expect(0, 8352, '\P{^superscriptsandsubscripts}', "");
-    Expect(1, 8351, '\p{		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(0, 8351, '\p{^		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(0, 8351, '\P{		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(1, 8351, '\P{^		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(0, 8352, '\p{		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(1, 8352, '\p{^		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(1, 8352, '\P{		SUPERSCRIPTS_And_Subscripts}', "");
-    Expect(0, 8352, '\P{^		SUPERSCRIPTS_And_Subscripts}', "");
-    Error('\p{--IS_Superscripts_and_subscripts/a/}');
-    Error('\P{--IS_Superscripts_and_subscripts/a/}');
+    Expect(1, 8351, '\p{	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(0, 8351, '\p{^	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(0, 8351, '\P{	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(1, 8351, '\P{^	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(0, 8352, '\p{	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(1, 8352, '\p{^	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(1, 8352, '\P{	-SUPERSCRIPTS_AND_subscripts}', "");
+    Expect(0, 8352, '\P{^	-SUPERSCRIPTS_AND_subscripts}', "");
+    Error('\p{/a/is_Superscripts_and_Subscripts}');
+    Error('\P{/a/is_Superscripts_and_Subscripts}');
     Expect(1, 8351, '\p{issuperscriptsandsubscripts}', "");
     Expect(0, 8351, '\p{^issuperscriptsandsubscripts}', "");
     Expect(0, 8351, '\P{issuperscriptsandsubscripts}', "");
@@ -120415,16 +121639,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8352, '\p{^issuperscriptsandsubscripts}', "");
     Expect(1, 8352, '\P{issuperscriptsandsubscripts}', "");
     Expect(0, 8352, '\P{^issuperscriptsandsubscripts}', "");
-    Expect(1, 8351, '\p{  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(0, 8351, '\p{^  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(0, 8351, '\P{  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(1, 8351, '\P{^  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(0, 8352, '\p{  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(1, 8352, '\p{^  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(1, 8352, '\P{  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Expect(0, 8352, '\P{^  is_SUPERSCRIPTS_And_SUBSCRIPTS}', "");
-    Error('\p{	 In_SUPERSCRIPTS_And_SUBSCRIPTS/a/}');
-    Error('\P{	 In_SUPERSCRIPTS_And_SUBSCRIPTS/a/}');
+    Expect(1, 8351, '\p{_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(0, 8351, '\p{^_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(0, 8351, '\P{_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(1, 8351, '\P{^_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(0, 8352, '\p{_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(1, 8352, '\p{^_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(1, 8352, '\P{_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Expect(0, 8352, '\P{^_-IS_SUPERSCRIPTS_and_Subscripts}', "");
+    Error('\p{  In_Superscripts_and_Subscripts:=}');
+    Error('\P{  In_Superscripts_and_Subscripts:=}');
     Expect(1, 8351, '\p{insuperscriptsandsubscripts}', "");
     Expect(0, 8351, '\p{^insuperscriptsandsubscripts}', "");
     Expect(0, 8351, '\P{insuperscriptsandsubscripts}', "");
@@ -120433,16 +121657,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8352, '\p{^insuperscriptsandsubscripts}', "");
     Expect(1, 8352, '\P{insuperscriptsandsubscripts}', "");
     Expect(0, 8352, '\P{^insuperscriptsandsubscripts}', "");
-    Expect(1, 8351, '\p{ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(0, 8351, '\p{^ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(0, 8351, '\P{ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(1, 8351, '\P{^ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(0, 8352, '\p{ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(1, 8352, '\p{^ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(1, 8352, '\P{ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Expect(0, 8352, '\P{^ -In_superscripts_AND_SUBSCRIPTS}', "");
-    Error('\p{--Super_and_Sub:=}');
-    Error('\P{--Super_and_Sub:=}');
+    Expect(1, 8351, '\p{_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(0, 8351, '\p{^_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(0, 8351, '\P{_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(1, 8351, '\P{^_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(0, 8352, '\p{_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(1, 8352, '\p{^_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(1, 8352, '\P{_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Expect(0, 8352, '\P{^_-In_SUPERSCRIPTS_And_subscripts}', "");
+    Error('\p{_:=Super_And_sub}');
+    Error('\P{_:=Super_And_sub}');
     Expect(1, 8351, '\p{superandsub}', "");
     Expect(0, 8351, '\p{^superandsub}', "");
     Expect(0, 8351, '\P{superandsub}', "");
@@ -120451,16 +121675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8352, '\p{^superandsub}', "");
     Expect(1, 8352, '\P{superandsub}', "");
     Expect(0, 8352, '\P{^superandsub}', "");
-    Expect(1, 8351, '\p{ Super_and_Sub}', "");
-    Expect(0, 8351, '\p{^ Super_and_Sub}', "");
-    Expect(0, 8351, '\P{ Super_and_Sub}', "");
-    Expect(1, 8351, '\P{^ Super_and_Sub}', "");
-    Expect(0, 8352, '\p{ Super_and_Sub}', "");
-    Expect(1, 8352, '\p{^ Super_and_Sub}', "");
-    Expect(1, 8352, '\P{ Super_and_Sub}', "");
-    Expect(0, 8352, '\P{^ Super_and_Sub}', "");
-    Error('\p{:=is_Super_AND_SUB}');
-    Error('\P{:=is_Super_AND_SUB}');
+    Expect(1, 8351, '\p{_ Super_and_sub}', "");
+    Expect(0, 8351, '\p{^_ Super_and_sub}', "");
+    Expect(0, 8351, '\P{_ Super_and_sub}', "");
+    Expect(1, 8351, '\P{^_ Super_and_sub}', "");
+    Expect(0, 8352, '\p{_ Super_and_sub}', "");
+    Expect(1, 8352, '\p{^_ Super_and_sub}', "");
+    Expect(1, 8352, '\P{_ Super_and_sub}', "");
+    Expect(0, 8352, '\P{^_ Super_and_sub}', "");
+    Error('\p{	 IS_Super_and_Sub:=}');
+    Error('\P{	 IS_Super_and_Sub:=}');
     Expect(1, 8351, '\p{issuperandsub}', "");
     Expect(0, 8351, '\p{^issuperandsub}', "");
     Expect(0, 8351, '\P{issuperandsub}', "");
@@ -120469,16 +121693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8352, '\p{^issuperandsub}', "");
     Expect(1, 8352, '\P{issuperandsub}', "");
     Expect(0, 8352, '\P{^issuperandsub}', "");
-    Expect(1, 8351, '\p{ 	is_Super_and_Sub}', "");
-    Expect(0, 8351, '\p{^ 	is_Super_and_Sub}', "");
-    Expect(0, 8351, '\P{ 	is_Super_and_Sub}', "");
-    Expect(1, 8351, '\P{^ 	is_Super_and_Sub}', "");
-    Expect(0, 8352, '\p{ 	is_Super_and_Sub}', "");
-    Expect(1, 8352, '\p{^ 	is_Super_and_Sub}', "");
-    Expect(1, 8352, '\P{ 	is_Super_and_Sub}', "");
-    Expect(0, 8352, '\P{^ 	is_Super_and_Sub}', "");
-    Error('\p{_	in_Super_And_Sub/a/}');
-    Error('\P{_	in_Super_And_Sub/a/}');
+    Expect(1, 8351, '\p{ is_SUPER_AND_SUB}', "");
+    Expect(0, 8351, '\p{^ is_SUPER_AND_SUB}', "");
+    Expect(0, 8351, '\P{ is_SUPER_AND_SUB}', "");
+    Expect(1, 8351, '\P{^ is_SUPER_AND_SUB}', "");
+    Expect(0, 8352, '\p{ is_SUPER_AND_SUB}', "");
+    Expect(1, 8352, '\p{^ is_SUPER_AND_SUB}', "");
+    Expect(1, 8352, '\P{ is_SUPER_AND_SUB}', "");
+    Expect(0, 8352, '\P{^ is_SUPER_AND_SUB}', "");
+    Error('\p{	IN_super_And_Sub:=}');
+    Error('\P{	IN_super_And_Sub:=}');
     Expect(1, 8351, '\p{insuperandsub}', "");
     Expect(0, 8351, '\p{^insuperandsub}', "");
     Expect(0, 8351, '\P{insuperandsub}', "");
@@ -120487,16 +121711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8352, '\p{^insuperandsub}', "");
     Expect(1, 8352, '\P{insuperandsub}', "");
     Expect(0, 8352, '\P{^insuperandsub}', "");
-    Expect(1, 8351, '\p{-In_Super_And_Sub}', "");
-    Expect(0, 8351, '\p{^-In_Super_And_Sub}', "");
-    Expect(0, 8351, '\P{-In_Super_And_Sub}', "");
-    Expect(1, 8351, '\P{^-In_Super_And_Sub}', "");
-    Expect(0, 8352, '\p{-In_Super_And_Sub}', "");
-    Expect(1, 8352, '\p{^-In_Super_And_Sub}', "");
-    Expect(1, 8352, '\P{-In_Super_And_Sub}', "");
-    Expect(0, 8352, '\P{^-In_Super_And_Sub}', "");
-    Error('\p{:=		supplemental_Arrows_A}');
-    Error('\P{:=		supplemental_Arrows_A}');
+    Expect(1, 8351, '\p{--In_super_AND_SUB}', "");
+    Expect(0, 8351, '\p{^--In_super_AND_SUB}', "");
+    Expect(0, 8351, '\P{--In_super_AND_SUB}', "");
+    Expect(1, 8351, '\P{^--In_super_AND_SUB}', "");
+    Expect(0, 8352, '\p{--In_super_AND_SUB}', "");
+    Expect(1, 8352, '\p{^--In_super_AND_SUB}', "");
+    Expect(1, 8352, '\P{--In_super_AND_SUB}', "");
+    Expect(0, 8352, '\P{^--In_super_AND_SUB}', "");
+    Error('\p{/a/-Supplemental_arrows_A}');
+    Error('\P{/a/-Supplemental_arrows_A}');
     Expect(1, 10239, '\p{supplementalarrowsa}', "");
     Expect(0, 10239, '\p{^supplementalarrowsa}', "");
     Expect(0, 10239, '\P{supplementalarrowsa}', "");
@@ -120505,16 +121729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10240, '\p{^supplementalarrowsa}', "");
     Expect(1, 10240, '\P{supplementalarrowsa}', "");
     Expect(0, 10240, '\P{^supplementalarrowsa}', "");
-    Expect(1, 10239, '\p{_Supplemental_ARROWS_A}', "");
-    Expect(0, 10239, '\p{^_Supplemental_ARROWS_A}', "");
-    Expect(0, 10239, '\P{_Supplemental_ARROWS_A}', "");
-    Expect(1, 10239, '\P{^_Supplemental_ARROWS_A}', "");
-    Expect(0, 10240, '\p{_Supplemental_ARROWS_A}', "");
-    Expect(1, 10240, '\p{^_Supplemental_ARROWS_A}', "");
-    Expect(1, 10240, '\P{_Supplemental_ARROWS_A}', "");
-    Expect(0, 10240, '\P{^_Supplemental_ARROWS_A}', "");
-    Error('\p{:=_ Is_supplemental_Arrows_A}');
-    Error('\P{:=_ Is_supplemental_Arrows_A}');
+    Expect(1, 10239, '\p{ 	Supplemental_Arrows_A}', "");
+    Expect(0, 10239, '\p{^ 	Supplemental_Arrows_A}', "");
+    Expect(0, 10239, '\P{ 	Supplemental_Arrows_A}', "");
+    Expect(1, 10239, '\P{^ 	Supplemental_Arrows_A}', "");
+    Expect(0, 10240, '\p{ 	Supplemental_Arrows_A}', "");
+    Expect(1, 10240, '\p{^ 	Supplemental_Arrows_A}', "");
+    Expect(1, 10240, '\P{ 	Supplemental_Arrows_A}', "");
+    Expect(0, 10240, '\P{^ 	Supplemental_Arrows_A}', "");
+    Error('\p{:= -is_Supplemental_Arrows_a}');
+    Error('\P{:= -is_Supplemental_Arrows_a}');
     Expect(1, 10239, '\p{issupplementalarrowsa}', "");
     Expect(0, 10239, '\p{^issupplementalarrowsa}', "");
     Expect(0, 10239, '\P{issupplementalarrowsa}', "");
@@ -120523,16 +121747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10240, '\p{^issupplementalarrowsa}', "");
     Expect(1, 10240, '\P{issupplementalarrowsa}', "");
     Expect(0, 10240, '\P{^issupplementalarrowsa}', "");
-    Expect(1, 10239, '\p{ Is_Supplemental_ARROWS_a}', "");
-    Expect(0, 10239, '\p{^ Is_Supplemental_ARROWS_a}', "");
-    Expect(0, 10239, '\P{ Is_Supplemental_ARROWS_a}', "");
-    Expect(1, 10239, '\P{^ Is_Supplemental_ARROWS_a}', "");
-    Expect(0, 10240, '\p{ Is_Supplemental_ARROWS_a}', "");
-    Expect(1, 10240, '\p{^ Is_Supplemental_ARROWS_a}', "");
-    Expect(1, 10240, '\P{ Is_Supplemental_ARROWS_a}', "");
-    Expect(0, 10240, '\P{^ Is_Supplemental_ARROWS_a}', "");
-    Error('\p{ IN_SUPPLEMENTAL_Arrows_A:=}');
-    Error('\P{ IN_SUPPLEMENTAL_Arrows_A:=}');
+    Expect(1, 10239, '\p{is_supplemental_ARROWS_A}', "");
+    Expect(0, 10239, '\p{^is_supplemental_ARROWS_A}', "");
+    Expect(0, 10239, '\P{is_supplemental_ARROWS_A}', "");
+    Expect(1, 10239, '\P{^is_supplemental_ARROWS_A}', "");
+    Expect(0, 10240, '\p{is_supplemental_ARROWS_A}', "");
+    Expect(1, 10240, '\p{^is_supplemental_ARROWS_A}', "");
+    Expect(1, 10240, '\P{is_supplemental_ARROWS_A}', "");
+    Expect(0, 10240, '\P{^is_supplemental_ARROWS_A}', "");
+    Error('\p{:=_	in_supplemental_arrows_A}');
+    Error('\P{:=_	in_supplemental_arrows_A}');
     Expect(1, 10239, '\p{insupplementalarrowsa}', "");
     Expect(0, 10239, '\p{^insupplementalarrowsa}', "");
     Expect(0, 10239, '\P{insupplementalarrowsa}', "");
@@ -120541,16 +121765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10240, '\p{^insupplementalarrowsa}', "");
     Expect(1, 10240, '\P{insupplementalarrowsa}', "");
     Expect(0, 10240, '\P{^insupplementalarrowsa}', "");
-    Expect(1, 10239, '\p{In_supplemental_Arrows_a}', "");
-    Expect(0, 10239, '\p{^In_supplemental_Arrows_a}', "");
-    Expect(0, 10239, '\P{In_supplemental_Arrows_a}', "");
-    Expect(1, 10239, '\P{^In_supplemental_Arrows_a}', "");
-    Expect(0, 10240, '\p{In_supplemental_Arrows_a}', "");
-    Expect(1, 10240, '\p{^In_supplemental_Arrows_a}', "");
-    Expect(1, 10240, '\P{In_supplemental_Arrows_a}', "");
-    Expect(0, 10240, '\P{^In_supplemental_Arrows_a}', "");
-    Error('\p{:=sup_ARROWS_a}');
-    Error('\P{:=sup_ARROWS_a}');
+    Expect(1, 10239, '\p{		In_Supplemental_Arrows_A}', "");
+    Expect(0, 10239, '\p{^		In_Supplemental_Arrows_A}', "");
+    Expect(0, 10239, '\P{		In_Supplemental_Arrows_A}', "");
+    Expect(1, 10239, '\P{^		In_Supplemental_Arrows_A}', "");
+    Expect(0, 10240, '\p{		In_Supplemental_Arrows_A}', "");
+    Expect(1, 10240, '\p{^		In_Supplemental_Arrows_A}', "");
+    Expect(1, 10240, '\P{		In_Supplemental_Arrows_A}', "");
+    Expect(0, 10240, '\P{^		In_Supplemental_Arrows_A}', "");
+    Error('\p{--Sup_ARROWS_A/a/}');
+    Error('\P{--Sup_ARROWS_A/a/}');
     Expect(1, 10239, '\p{suparrowsa}', "");
     Expect(0, 10239, '\p{^suparrowsa}', "");
     Expect(0, 10239, '\P{suparrowsa}', "");
@@ -120559,16 +121783,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10240, '\p{^suparrowsa}', "");
     Expect(1, 10240, '\P{suparrowsa}', "");
     Expect(0, 10240, '\P{^suparrowsa}', "");
-    Expect(1, 10239, '\p{		Sup_arrows_A}', "");
-    Expect(0, 10239, '\p{^		Sup_arrows_A}', "");
-    Expect(0, 10239, '\P{		Sup_arrows_A}', "");
-    Expect(1, 10239, '\P{^		Sup_arrows_A}', "");
-    Expect(0, 10240, '\p{		Sup_arrows_A}', "");
-    Expect(1, 10240, '\p{^		Sup_arrows_A}', "");
-    Expect(1, 10240, '\P{		Sup_arrows_A}', "");
-    Expect(0, 10240, '\P{^		Sup_arrows_A}', "");
-    Error('\p{/a/_Is_SUP_ARROWS_A}');
-    Error('\P{/a/_Is_SUP_ARROWS_A}');
+    Expect(1, 10239, '\p{--Sup_Arrows_a}', "");
+    Expect(0, 10239, '\p{^--Sup_Arrows_a}', "");
+    Expect(0, 10239, '\P{--Sup_Arrows_a}', "");
+    Expect(1, 10239, '\P{^--Sup_Arrows_a}', "");
+    Expect(0, 10240, '\p{--Sup_Arrows_a}', "");
+    Expect(1, 10240, '\p{^--Sup_Arrows_a}', "");
+    Expect(1, 10240, '\P{--Sup_Arrows_a}', "");
+    Expect(0, 10240, '\P{^--Sup_Arrows_a}', "");
+    Error('\p{/a/--IS_SUP_arrows_A}');
+    Error('\P{/a/--IS_SUP_arrows_A}');
     Expect(1, 10239, '\p{issuparrowsa}', "");
     Expect(0, 10239, '\p{^issuparrowsa}', "");
     Expect(0, 10239, '\P{issuparrowsa}', "");
@@ -120577,16 +121801,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10240, '\p{^issuparrowsa}', "");
     Expect(1, 10240, '\P{issuparrowsa}', "");
     Expect(0, 10240, '\P{^issuparrowsa}', "");
-    Expect(1, 10239, '\p{--IS_sup_ARROWS_A}', "");
-    Expect(0, 10239, '\p{^--IS_sup_ARROWS_A}', "");
-    Expect(0, 10239, '\P{--IS_sup_ARROWS_A}', "");
-    Expect(1, 10239, '\P{^--IS_sup_ARROWS_A}', "");
-    Expect(0, 10240, '\p{--IS_sup_ARROWS_A}', "");
-    Expect(1, 10240, '\p{^--IS_sup_ARROWS_A}', "");
-    Expect(1, 10240, '\P{--IS_sup_ARROWS_A}', "");
-    Expect(0, 10240, '\P{^--IS_sup_ARROWS_A}', "");
-    Error('\p{	in_sup_ARROWS_A/a/}');
-    Error('\P{	in_sup_ARROWS_A/a/}');
+    Expect(1, 10239, '\p{		IS_sup_ARROWS_a}', "");
+    Expect(0, 10239, '\p{^		IS_sup_ARROWS_a}', "");
+    Expect(0, 10239, '\P{		IS_sup_ARROWS_a}', "");
+    Expect(1, 10239, '\P{^		IS_sup_ARROWS_a}', "");
+    Expect(0, 10240, '\p{		IS_sup_ARROWS_a}', "");
+    Expect(1, 10240, '\p{^		IS_sup_ARROWS_a}', "");
+    Expect(1, 10240, '\P{		IS_sup_ARROWS_a}', "");
+    Expect(0, 10240, '\P{^		IS_sup_ARROWS_a}', "");
+    Error('\p{- In_SUP_arrows_A:=}');
+    Error('\P{- In_SUP_arrows_A:=}');
     Expect(1, 10239, '\p{insuparrowsa}', "");
     Expect(0, 10239, '\p{^insuparrowsa}', "");
     Expect(0, 10239, '\P{insuparrowsa}', "");
@@ -120595,16 +121819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10240, '\p{^insuparrowsa}', "");
     Expect(1, 10240, '\P{insuparrowsa}', "");
     Expect(0, 10240, '\P{^insuparrowsa}', "");
-    Expect(1, 10239, '\p{__In_sup_arrows_a}', "");
-    Expect(0, 10239, '\p{^__In_sup_arrows_a}', "");
-    Expect(0, 10239, '\P{__In_sup_arrows_a}', "");
-    Expect(1, 10239, '\P{^__In_sup_arrows_a}', "");
-    Expect(0, 10240, '\p{__In_sup_arrows_a}', "");
-    Expect(1, 10240, '\p{^__In_sup_arrows_a}', "");
-    Expect(1, 10240, '\P{__In_sup_arrows_a}', "");
-    Expect(0, 10240, '\P{^__In_sup_arrows_a}', "");
-    Error('\p{/a/	 supplemental_Arrows_b}');
-    Error('\P{/a/	 supplemental_Arrows_b}');
+    Expect(1, 10239, '\p{ -In_Sup_Arrows_a}', "");
+    Expect(0, 10239, '\p{^ -In_Sup_Arrows_a}', "");
+    Expect(0, 10239, '\P{ -In_Sup_Arrows_a}', "");
+    Expect(1, 10239, '\P{^ -In_Sup_Arrows_a}', "");
+    Expect(0, 10240, '\p{ -In_Sup_Arrows_a}', "");
+    Expect(1, 10240, '\p{^ -In_Sup_Arrows_a}', "");
+    Expect(1, 10240, '\P{ -In_Sup_Arrows_a}', "");
+    Expect(0, 10240, '\P{^ -In_Sup_Arrows_a}', "");
+    Error('\p{ -supplemental_arrows_b/a/}');
+    Error('\P{ -supplemental_arrows_b/a/}');
     Expect(1, 10623, '\p{supplementalarrowsb}', "");
     Expect(0, 10623, '\p{^supplementalarrowsb}', "");
     Expect(0, 10623, '\P{supplementalarrowsb}', "");
@@ -120613,16 +121837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10624, '\p{^supplementalarrowsb}', "");
     Expect(1, 10624, '\P{supplementalarrowsb}', "");
     Expect(0, 10624, '\P{^supplementalarrowsb}', "");
-    Expect(1, 10623, '\p{_-Supplemental_ARROWS_b}', "");
-    Expect(0, 10623, '\p{^_-Supplemental_ARROWS_b}', "");
-    Expect(0, 10623, '\P{_-Supplemental_ARROWS_b}', "");
-    Expect(1, 10623, '\P{^_-Supplemental_ARROWS_b}', "");
-    Expect(0, 10624, '\p{_-Supplemental_ARROWS_b}', "");
-    Expect(1, 10624, '\p{^_-Supplemental_ARROWS_b}', "");
-    Expect(1, 10624, '\P{_-Supplemental_ARROWS_b}', "");
-    Expect(0, 10624, '\P{^_-Supplemental_ARROWS_b}', "");
-    Error('\p{-is_supplemental_Arrows_B/a/}');
-    Error('\P{-is_supplemental_Arrows_B/a/}');
+    Expect(1, 10623, '\p{supplemental_Arrows_B}', "");
+    Expect(0, 10623, '\p{^supplemental_Arrows_B}', "");
+    Expect(0, 10623, '\P{supplemental_Arrows_B}', "");
+    Expect(1, 10623, '\P{^supplemental_Arrows_B}', "");
+    Expect(0, 10624, '\p{supplemental_Arrows_B}', "");
+    Expect(1, 10624, '\p{^supplemental_Arrows_B}', "");
+    Expect(1, 10624, '\P{supplemental_Arrows_B}', "");
+    Expect(0, 10624, '\P{^supplemental_Arrows_B}', "");
+    Error('\p{-IS_supplemental_Arrows_b:=}');
+    Error('\P{-IS_supplemental_Arrows_b:=}');
     Expect(1, 10623, '\p{issupplementalarrowsb}', "");
     Expect(0, 10623, '\p{^issupplementalarrowsb}', "");
     Expect(0, 10623, '\P{issupplementalarrowsb}', "");
@@ -120631,16 +121855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10624, '\p{^issupplementalarrowsb}', "");
     Expect(1, 10624, '\P{issupplementalarrowsb}', "");
     Expect(0, 10624, '\P{^issupplementalarrowsb}', "");
-    Expect(1, 10623, '\p{ Is_supplemental_Arrows_B}', "");
-    Expect(0, 10623, '\p{^ Is_supplemental_Arrows_B}', "");
-    Expect(0, 10623, '\P{ Is_supplemental_Arrows_B}', "");
-    Expect(1, 10623, '\P{^ Is_supplemental_Arrows_B}', "");
-    Expect(0, 10624, '\p{ Is_supplemental_Arrows_B}', "");
-    Expect(1, 10624, '\p{^ Is_supplemental_Arrows_B}', "");
-    Expect(1, 10624, '\P{ Is_supplemental_Arrows_B}', "");
-    Expect(0, 10624, '\P{^ Is_supplemental_Arrows_B}', "");
-    Error('\p{/a/ _in_supplemental_Arrows_B}');
-    Error('\P{/a/ _in_supplemental_Arrows_B}');
+    Expect(1, 10623, '\p{	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(0, 10623, '\p{^	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(0, 10623, '\P{	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(1, 10623, '\P{^	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(0, 10624, '\p{	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(1, 10624, '\p{^	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(1, 10624, '\P{	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Expect(0, 10624, '\P{^	Is_SUPPLEMENTAL_ARROWS_B}', "");
+    Error('\p{-:=in_Supplemental_Arrows_b}');
+    Error('\P{-:=in_Supplemental_Arrows_b}');
     Expect(1, 10623, '\p{insupplementalarrowsb}', "");
     Expect(0, 10623, '\p{^insupplementalarrowsb}', "");
     Expect(0, 10623, '\P{insupplementalarrowsb}', "");
@@ -120649,16 +121873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10624, '\p{^insupplementalarrowsb}', "");
     Expect(1, 10624, '\P{insupplementalarrowsb}', "");
     Expect(0, 10624, '\P{^insupplementalarrowsb}', "");
-    Expect(1, 10623, '\p{  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10623, '\p{^  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10623, '\P{  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(1, 10623, '\P{^  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10624, '\p{  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(1, 10624, '\p{^  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(1, 10624, '\P{  in_SUPPLEMENTAL_arrows_B}', "");
-    Expect(0, 10624, '\P{^  in_SUPPLEMENTAL_arrows_B}', "");
-    Error('\p{:= SUP_Arrows_B}');
-    Error('\P{:= SUP_Arrows_B}');
+    Expect(1, 10623, '\p{_	In_supplemental_Arrows_B}', "");
+    Expect(0, 10623, '\p{^_	In_supplemental_Arrows_B}', "");
+    Expect(0, 10623, '\P{_	In_supplemental_Arrows_B}', "");
+    Expect(1, 10623, '\P{^_	In_supplemental_Arrows_B}', "");
+    Expect(0, 10624, '\p{_	In_supplemental_Arrows_B}', "");
+    Expect(1, 10624, '\p{^_	In_supplemental_Arrows_B}', "");
+    Expect(1, 10624, '\P{_	In_supplemental_Arrows_B}', "");
+    Expect(0, 10624, '\P{^_	In_supplemental_Arrows_B}', "");
+    Error('\p{:=Sup_Arrows_B}');
+    Error('\P{:=Sup_Arrows_B}');
     Expect(1, 10623, '\p{suparrowsb}', "");
     Expect(0, 10623, '\p{^suparrowsb}', "");
     Expect(0, 10623, '\P{suparrowsb}', "");
@@ -120667,16 +121891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10624, '\p{^suparrowsb}', "");
     Expect(1, 10624, '\P{suparrowsb}', "");
     Expect(0, 10624, '\P{^suparrowsb}', "");
-    Expect(1, 10623, '\p{ sup_Arrows_B}', "");
-    Expect(0, 10623, '\p{^ sup_Arrows_B}', "");
-    Expect(0, 10623, '\P{ sup_Arrows_B}', "");
-    Expect(1, 10623, '\P{^ sup_Arrows_B}', "");
-    Expect(0, 10624, '\p{ sup_Arrows_B}', "");
-    Expect(1, 10624, '\p{^ sup_Arrows_B}', "");
-    Expect(1, 10624, '\P{ sup_Arrows_B}', "");
-    Expect(0, 10624, '\P{^ sup_Arrows_B}', "");
-    Error('\p{/a/IS_Sup_Arrows_B}');
-    Error('\P{/a/IS_Sup_Arrows_B}');
+    Expect(1, 10623, '\p{ SUP_Arrows_b}', "");
+    Expect(0, 10623, '\p{^ SUP_Arrows_b}', "");
+    Expect(0, 10623, '\P{ SUP_Arrows_b}', "");
+    Expect(1, 10623, '\P{^ SUP_Arrows_b}', "");
+    Expect(0, 10624, '\p{ SUP_Arrows_b}', "");
+    Expect(1, 10624, '\p{^ SUP_Arrows_b}', "");
+    Expect(1, 10624, '\P{ SUP_Arrows_b}', "");
+    Expect(0, 10624, '\P{^ SUP_Arrows_b}', "");
+    Error('\p{	/a/Is_SUP_arrows_B}');
+    Error('\P{	/a/Is_SUP_arrows_B}');
     Expect(1, 10623, '\p{issuparrowsb}', "");
     Expect(0, 10623, '\p{^issuparrowsb}', "");
     Expect(0, 10623, '\P{issuparrowsb}', "");
@@ -120685,16 +121909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10624, '\p{^issuparrowsb}', "");
     Expect(1, 10624, '\P{issuparrowsb}', "");
     Expect(0, 10624, '\P{^issuparrowsb}', "");
-    Expect(1, 10623, '\p{_ is_SUP_Arrows_B}', "");
-    Expect(0, 10623, '\p{^_ is_SUP_Arrows_B}', "");
-    Expect(0, 10623, '\P{_ is_SUP_Arrows_B}', "");
-    Expect(1, 10623, '\P{^_ is_SUP_Arrows_B}', "");
-    Expect(0, 10624, '\p{_ is_SUP_Arrows_B}', "");
-    Expect(1, 10624, '\p{^_ is_SUP_Arrows_B}', "");
-    Expect(1, 10624, '\P{_ is_SUP_Arrows_B}', "");
-    Expect(0, 10624, '\P{^_ is_SUP_Arrows_B}', "");
-    Error('\p{ :=in_sup_Arrows_B}');
-    Error('\P{ :=in_sup_Arrows_B}');
+    Expect(1, 10623, '\p{		IS_Sup_arrows_B}', "");
+    Expect(0, 10623, '\p{^		IS_Sup_arrows_B}', "");
+    Expect(0, 10623, '\P{		IS_Sup_arrows_B}', "");
+    Expect(1, 10623, '\P{^		IS_Sup_arrows_B}', "");
+    Expect(0, 10624, '\p{		IS_Sup_arrows_B}', "");
+    Expect(1, 10624, '\p{^		IS_Sup_arrows_B}', "");
+    Expect(1, 10624, '\P{		IS_Sup_arrows_B}', "");
+    Expect(0, 10624, '\P{^		IS_Sup_arrows_B}', "");
+    Error('\p{_In_SUP_arrows_B:=}');
+    Error('\P{_In_SUP_arrows_B:=}');
     Expect(1, 10623, '\p{insuparrowsb}', "");
     Expect(0, 10623, '\p{^insuparrowsb}', "");
     Expect(0, 10623, '\P{insuparrowsb}', "");
@@ -120703,16 +121927,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10624, '\p{^insuparrowsb}', "");
     Expect(1, 10624, '\P{insuparrowsb}', "");
     Expect(0, 10624, '\P{^insuparrowsb}', "");
-    Expect(1, 10623, '\p{ _In_Sup_Arrows_B}', "");
-    Expect(0, 10623, '\p{^ _In_Sup_Arrows_B}', "");
-    Expect(0, 10623, '\P{ _In_Sup_Arrows_B}', "");
-    Expect(1, 10623, '\P{^ _In_Sup_Arrows_B}', "");
-    Expect(0, 10624, '\p{ _In_Sup_Arrows_B}', "");
-    Expect(1, 10624, '\p{^ _In_Sup_Arrows_B}', "");
-    Expect(1, 10624, '\P{ _In_Sup_Arrows_B}', "");
-    Expect(0, 10624, '\P{^ _In_Sup_Arrows_B}', "");
-    Error('\p{:=- SUPPLEMENTAL_Arrows_C}');
-    Error('\P{:=- SUPPLEMENTAL_Arrows_C}');
+    Expect(1, 10623, '\p{_ in_Sup_arrows_B}', "");
+    Expect(0, 10623, '\p{^_ in_Sup_arrows_B}', "");
+    Expect(0, 10623, '\P{_ in_Sup_arrows_B}', "");
+    Expect(1, 10623, '\P{^_ in_Sup_arrows_B}', "");
+    Expect(0, 10624, '\p{_ in_Sup_arrows_B}', "");
+    Expect(1, 10624, '\p{^_ in_Sup_arrows_B}', "");
+    Expect(1, 10624, '\P{_ in_Sup_arrows_B}', "");
+    Expect(0, 10624, '\P{^_ in_Sup_arrows_B}', "");
+    Error('\p{ :=Supplemental_Arrows_C}');
+    Error('\P{ :=Supplemental_Arrows_C}');
     Expect(1, 129279, '\p{supplementalarrowsc}', "");
     Expect(0, 129279, '\p{^supplementalarrowsc}', "");
     Expect(0, 129279, '\P{supplementalarrowsc}', "");
@@ -120721,16 +121945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129280, '\p{^supplementalarrowsc}', "");
     Expect(1, 129280, '\P{supplementalarrowsc}', "");
     Expect(0, 129280, '\P{^supplementalarrowsc}', "");
-    Expect(1, 129279, '\p{		Supplemental_arrows_c}', "");
-    Expect(0, 129279, '\p{^		Supplemental_arrows_c}', "");
-    Expect(0, 129279, '\P{		Supplemental_arrows_c}', "");
-    Expect(1, 129279, '\P{^		Supplemental_arrows_c}', "");
-    Expect(0, 129280, '\p{		Supplemental_arrows_c}', "");
-    Expect(1, 129280, '\p{^		Supplemental_arrows_c}', "");
-    Expect(1, 129280, '\P{		Supplemental_arrows_c}', "");
-    Expect(0, 129280, '\P{^		Supplemental_arrows_c}', "");
-    Error('\p{:=__is_supplemental_Arrows_C}');
-    Error('\P{:=__is_supplemental_Arrows_C}');
+    Expect(1, 129279, '\p{_SUPPLEMENTAL_arrows_C}', "");
+    Expect(0, 129279, '\p{^_SUPPLEMENTAL_arrows_C}', "");
+    Expect(0, 129279, '\P{_SUPPLEMENTAL_arrows_C}', "");
+    Expect(1, 129279, '\P{^_SUPPLEMENTAL_arrows_C}', "");
+    Expect(0, 129280, '\p{_SUPPLEMENTAL_arrows_C}', "");
+    Expect(1, 129280, '\p{^_SUPPLEMENTAL_arrows_C}', "");
+    Expect(1, 129280, '\P{_SUPPLEMENTAL_arrows_C}', "");
+    Expect(0, 129280, '\P{^_SUPPLEMENTAL_arrows_C}', "");
+    Error('\p{/a/Is_supplemental_Arrows_C}');
+    Error('\P{/a/Is_supplemental_Arrows_C}');
     Expect(1, 129279, '\p{issupplementalarrowsc}', "");
     Expect(0, 129279, '\p{^issupplementalarrowsc}', "");
     Expect(0, 129279, '\P{issupplementalarrowsc}', "");
@@ -120739,16 +121963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129280, '\p{^issupplementalarrowsc}', "");
     Expect(1, 129280, '\P{issupplementalarrowsc}', "");
     Expect(0, 129280, '\P{^issupplementalarrowsc}', "");
-    Expect(1, 129279, '\p{ _is_supplemental_Arrows_c}', "");
-    Expect(0, 129279, '\p{^ _is_supplemental_Arrows_c}', "");
-    Expect(0, 129279, '\P{ _is_supplemental_Arrows_c}', "");
-    Expect(1, 129279, '\P{^ _is_supplemental_Arrows_c}', "");
-    Expect(0, 129280, '\p{ _is_supplemental_Arrows_c}', "");
-    Expect(1, 129280, '\p{^ _is_supplemental_Arrows_c}', "");
-    Expect(1, 129280, '\P{ _is_supplemental_Arrows_c}', "");
-    Expect(0, 129280, '\P{^ _is_supplemental_Arrows_c}', "");
-    Error('\p{/a/ In_Supplemental_Arrows_C}');
-    Error('\P{/a/ In_Supplemental_Arrows_C}');
+    Expect(1, 129279, '\p{ _Is_Supplemental_Arrows_C}', "");
+    Expect(0, 129279, '\p{^ _Is_Supplemental_Arrows_C}', "");
+    Expect(0, 129279, '\P{ _Is_Supplemental_Arrows_C}', "");
+    Expect(1, 129279, '\P{^ _Is_Supplemental_Arrows_C}', "");
+    Expect(0, 129280, '\p{ _Is_Supplemental_Arrows_C}', "");
+    Expect(1, 129280, '\p{^ _Is_Supplemental_Arrows_C}', "");
+    Expect(1, 129280, '\P{ _Is_Supplemental_Arrows_C}', "");
+    Expect(0, 129280, '\P{^ _Is_Supplemental_Arrows_C}', "");
+    Error('\p{/a/	In_SUPPLEMENTAL_arrows_C}');
+    Error('\P{/a/	In_SUPPLEMENTAL_arrows_C}');
     Expect(1, 129279, '\p{insupplementalarrowsc}', "");
     Expect(0, 129279, '\p{^insupplementalarrowsc}', "");
     Expect(0, 129279, '\P{insupplementalarrowsc}', "");
@@ -120757,16 +121981,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129280, '\p{^insupplementalarrowsc}', "");
     Expect(1, 129280, '\P{insupplementalarrowsc}', "");
     Expect(0, 129280, '\P{^insupplementalarrowsc}', "");
-    Expect(1, 129279, '\p{-IN_Supplemental_ARROWS_c}', "");
-    Expect(0, 129279, '\p{^-IN_Supplemental_ARROWS_c}', "");
-    Expect(0, 129279, '\P{-IN_Supplemental_ARROWS_c}', "");
-    Expect(1, 129279, '\P{^-IN_Supplemental_ARROWS_c}', "");
-    Expect(0, 129280, '\p{-IN_Supplemental_ARROWS_c}', "");
-    Expect(1, 129280, '\p{^-IN_Supplemental_ARROWS_c}', "");
-    Expect(1, 129280, '\P{-IN_Supplemental_ARROWS_c}', "");
-    Expect(0, 129280, '\P{^-IN_Supplemental_ARROWS_c}', "");
-    Error('\p{_:=SUP_arrows_C}');
-    Error('\P{_:=SUP_arrows_C}');
+    Expect(1, 129279, '\p{_In_Supplemental_arrows_C}', "");
+    Expect(0, 129279, '\p{^_In_Supplemental_arrows_C}', "");
+    Expect(0, 129279, '\P{_In_Supplemental_arrows_C}', "");
+    Expect(1, 129279, '\P{^_In_Supplemental_arrows_C}', "");
+    Expect(0, 129280, '\p{_In_Supplemental_arrows_C}', "");
+    Expect(1, 129280, '\p{^_In_Supplemental_arrows_C}', "");
+    Expect(1, 129280, '\P{_In_Supplemental_arrows_C}', "");
+    Expect(0, 129280, '\P{^_In_Supplemental_arrows_C}', "");
+    Error('\p{ :=Sup_Arrows_C}');
+    Error('\P{ :=Sup_Arrows_C}');
     Expect(1, 129279, '\p{suparrowsc}', "");
     Expect(0, 129279, '\p{^suparrowsc}', "");
     Expect(0, 129279, '\P{suparrowsc}', "");
@@ -120775,16 +121999,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129280, '\p{^suparrowsc}', "");
     Expect(1, 129280, '\P{suparrowsc}', "");
     Expect(0, 129280, '\P{^suparrowsc}', "");
-    Expect(1, 129279, '\p{ -Sup_ARROWS_c}', "");
-    Expect(0, 129279, '\p{^ -Sup_ARROWS_c}', "");
-    Expect(0, 129279, '\P{ -Sup_ARROWS_c}', "");
-    Expect(1, 129279, '\P{^ -Sup_ARROWS_c}', "");
-    Expect(0, 129280, '\p{ -Sup_ARROWS_c}', "");
-    Expect(1, 129280, '\p{^ -Sup_ARROWS_c}', "");
-    Expect(1, 129280, '\P{ -Sup_ARROWS_c}', "");
-    Expect(0, 129280, '\P{^ -Sup_ARROWS_c}', "");
-    Error('\p{	/a/Is_SUP_ARROWS_c}');
-    Error('\P{	/a/Is_SUP_ARROWS_c}');
+    Expect(1, 129279, '\p{_ sup_arrows_C}', "");
+    Expect(0, 129279, '\p{^_ sup_arrows_C}', "");
+    Expect(0, 129279, '\P{_ sup_arrows_C}', "");
+    Expect(1, 129279, '\P{^_ sup_arrows_C}', "");
+    Expect(0, 129280, '\p{_ sup_arrows_C}', "");
+    Expect(1, 129280, '\p{^_ sup_arrows_C}', "");
+    Expect(1, 129280, '\P{_ sup_arrows_C}', "");
+    Expect(0, 129280, '\P{^_ sup_arrows_C}', "");
+    Error('\p{-:=Is_sup_arrows_C}');
+    Error('\P{-:=Is_sup_arrows_C}');
     Expect(1, 129279, '\p{issuparrowsc}', "");
     Expect(0, 129279, '\p{^issuparrowsc}', "");
     Expect(0, 129279, '\P{issuparrowsc}', "");
@@ -120793,16 +122017,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129280, '\p{^issuparrowsc}', "");
     Expect(1, 129280, '\P{issuparrowsc}', "");
     Expect(0, 129280, '\P{^issuparrowsc}', "");
-    Expect(1, 129279, '\p{ is_SUP_Arrows_c}', "");
-    Expect(0, 129279, '\p{^ is_SUP_Arrows_c}', "");
-    Expect(0, 129279, '\P{ is_SUP_Arrows_c}', "");
-    Expect(1, 129279, '\P{^ is_SUP_Arrows_c}', "");
-    Expect(0, 129280, '\p{ is_SUP_Arrows_c}', "");
-    Expect(1, 129280, '\p{^ is_SUP_Arrows_c}', "");
-    Expect(1, 129280, '\P{ is_SUP_Arrows_c}', "");
-    Expect(0, 129280, '\P{^ is_SUP_Arrows_c}', "");
-    Error('\p{	/a/IN_Sup_Arrows_C}');
-    Error('\P{	/a/IN_Sup_Arrows_C}');
+    Expect(1, 129279, '\p{  IS_Sup_Arrows_c}', "");
+    Expect(0, 129279, '\p{^  IS_Sup_Arrows_c}', "");
+    Expect(0, 129279, '\P{  IS_Sup_Arrows_c}', "");
+    Expect(1, 129279, '\P{^  IS_Sup_Arrows_c}', "");
+    Expect(0, 129280, '\p{  IS_Sup_Arrows_c}', "");
+    Expect(1, 129280, '\p{^  IS_Sup_Arrows_c}', "");
+    Expect(1, 129280, '\P{  IS_Sup_Arrows_c}', "");
+    Expect(0, 129280, '\P{^  IS_Sup_Arrows_c}', "");
+    Error('\p{-/a/In_Sup_Arrows_c}');
+    Error('\P{-/a/In_Sup_Arrows_c}');
     Expect(1, 129279, '\p{insuparrowsc}', "");
     Expect(0, 129279, '\p{^insuparrowsc}', "");
     Expect(0, 129279, '\P{insuparrowsc}', "");
@@ -120811,16 +122035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129280, '\p{^insuparrowsc}', "");
     Expect(1, 129280, '\P{insuparrowsc}', "");
     Expect(0, 129280, '\P{^insuparrowsc}', "");
-    Expect(1, 129279, '\p{-_in_Sup_Arrows_C}', "");
-    Expect(0, 129279, '\p{^-_in_Sup_Arrows_C}', "");
-    Expect(0, 129279, '\P{-_in_Sup_Arrows_C}', "");
-    Expect(1, 129279, '\P{^-_in_Sup_Arrows_C}', "");
-    Expect(0, 129280, '\p{-_in_Sup_Arrows_C}', "");
-    Expect(1, 129280, '\p{^-_in_Sup_Arrows_C}', "");
-    Expect(1, 129280, '\P{-_in_Sup_Arrows_C}', "");
-    Expect(0, 129280, '\P{^-_in_Sup_Arrows_C}', "");
-    Error('\p{_-SUPPLEMENTAL_Mathematical_Operators/a/}');
-    Error('\P{_-SUPPLEMENTAL_Mathematical_Operators/a/}');
+    Expect(1, 129279, '\p{	In_sup_Arrows_C}', "");
+    Expect(0, 129279, '\p{^	In_sup_Arrows_C}', "");
+    Expect(0, 129279, '\P{	In_sup_Arrows_C}', "");
+    Expect(1, 129279, '\P{^	In_sup_Arrows_C}', "");
+    Expect(0, 129280, '\p{	In_sup_Arrows_C}', "");
+    Expect(1, 129280, '\p{^	In_sup_Arrows_C}', "");
+    Expect(1, 129280, '\P{	In_sup_Arrows_C}', "");
+    Expect(0, 129280, '\P{^	In_sup_Arrows_C}', "");
+    Error('\p{-_Supplemental_MATHEMATICAL_Operators/a/}');
+    Error('\P{-_Supplemental_MATHEMATICAL_Operators/a/}');
     Expect(1, 11007, '\p{supplementalmathematicaloperators}', "");
     Expect(0, 11007, '\p{^supplementalmathematicaloperators}', "");
     Expect(0, 11007, '\P{supplementalmathematicaloperators}', "");
@@ -120829,16 +122053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11008, '\p{^supplementalmathematicaloperators}', "");
     Expect(1, 11008, '\P{supplementalmathematicaloperators}', "");
     Expect(0, 11008, '\P{^supplementalmathematicaloperators}', "");
-    Expect(1, 11007, '\p{	Supplemental_mathematical_Operators}', "");
-    Expect(0, 11007, '\p{^	Supplemental_mathematical_Operators}', "");
-    Expect(0, 11007, '\P{	Supplemental_mathematical_Operators}', "");
-    Expect(1, 11007, '\P{^	Supplemental_mathematical_Operators}', "");
-    Expect(0, 11008, '\p{	Supplemental_mathematical_Operators}', "");
-    Expect(1, 11008, '\p{^	Supplemental_mathematical_Operators}', "");
-    Expect(1, 11008, '\P{	Supplemental_mathematical_Operators}', "");
-    Expect(0, 11008, '\P{^	Supplemental_mathematical_Operators}', "");
-    Error('\p{	_Is_Supplemental_Mathematical_operators/a/}');
-    Error('\P{	_Is_Supplemental_Mathematical_operators/a/}');
+    Expect(1, 11007, '\p{	_supplemental_Mathematical_operators}', "");
+    Expect(0, 11007, '\p{^	_supplemental_Mathematical_operators}', "");
+    Expect(0, 11007, '\P{	_supplemental_Mathematical_operators}', "");
+    Expect(1, 11007, '\P{^	_supplemental_Mathematical_operators}', "");
+    Expect(0, 11008, '\p{	_supplemental_Mathematical_operators}', "");
+    Expect(1, 11008, '\p{^	_supplemental_Mathematical_operators}', "");
+    Expect(1, 11008, '\P{	_supplemental_Mathematical_operators}', "");
+    Expect(0, 11008, '\P{^	_supplemental_Mathematical_operators}', "");
+    Error('\p{:=  Is_supplemental_Mathematical_Operators}');
+    Error('\P{:=  Is_supplemental_Mathematical_Operators}');
     Expect(1, 11007, '\p{issupplementalmathematicaloperators}', "");
     Expect(0, 11007, '\p{^issupplementalmathematicaloperators}', "");
     Expect(0, 11007, '\P{issupplementalmathematicaloperators}', "");
@@ -120847,16 +122071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11008, '\p{^issupplementalmathematicaloperators}', "");
     Expect(1, 11008, '\P{issupplementalmathematicaloperators}', "");
     Expect(0, 11008, '\P{^issupplementalmathematicaloperators}', "");
-    Expect(1, 11007, '\p{ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\p{^ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\P{ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11007, '\P{^ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\p{ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\p{^ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\P{ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\P{^ IS_SUPPLEMENTAL_Mathematical_OPERATORS}', "");
-    Error('\p{_ In_Supplemental_Mathematical_Operators/a/}');
-    Error('\P{_ In_Supplemental_Mathematical_Operators/a/}');
+    Expect(1, 11007, '\p{_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(0, 11007, '\p{^_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(0, 11007, '\P{_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(1, 11007, '\P{^_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(0, 11008, '\p{_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(1, 11008, '\p{^_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(1, 11008, '\P{_ Is_Supplemental_Mathematical_Operators}', "");
+    Expect(0, 11008, '\P{^_ Is_Supplemental_Mathematical_Operators}', "");
+    Error('\p{ /a/In_SUPPLEMENTAL_mathematical_Operators}');
+    Error('\P{ /a/In_SUPPLEMENTAL_mathematical_Operators}');
     Expect(1, 11007, '\p{insupplementalmathematicaloperators}', "");
     Expect(0, 11007, '\p{^insupplementalmathematicaloperators}', "");
     Expect(0, 11007, '\P{insupplementalmathematicaloperators}', "");
@@ -120865,16 +122089,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11008, '\p{^insupplementalmathematicaloperators}', "");
     Expect(1, 11008, '\P{insupplementalmathematicaloperators}', "");
     Expect(0, 11008, '\P{^insupplementalmathematicaloperators}', "");
-    Expect(1, 11007, '\p{	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\p{^	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(0, 11007, '\P{	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(1, 11007, '\P{^	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\p{	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\p{^	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(1, 11008, '\P{	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Expect(0, 11008, '\P{^	_IN_Supplemental_Mathematical_OPERATORS}', "");
-    Error('\p{Sup_Math_Operators/a/}');
-    Error('\P{Sup_Math_Operators/a/}');
+    Expect(1, 11007, '\p{  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(0, 11007, '\p{^  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(0, 11007, '\P{  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(1, 11007, '\P{^  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(0, 11008, '\p{  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(1, 11008, '\p{^  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(1, 11008, '\P{  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Expect(0, 11008, '\P{^  In_SUPPLEMENTAL_Mathematical_operators}', "");
+    Error('\p{	:=sup_MATH_operators}');
+    Error('\P{	:=sup_MATH_operators}');
     Expect(1, 11007, '\p{supmathoperators}', "");
     Expect(0, 11007, '\p{^supmathoperators}', "");
     Expect(0, 11007, '\P{supmathoperators}', "");
@@ -120883,16 +122107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11008, '\p{^supmathoperators}', "");
     Expect(1, 11008, '\P{supmathoperators}', "");
     Expect(0, 11008, '\P{^supmathoperators}', "");
-    Expect(1, 11007, '\p{ -Sup_Math_OPERATORS}', "");
-    Expect(0, 11007, '\p{^ -Sup_Math_OPERATORS}', "");
-    Expect(0, 11007, '\P{ -Sup_Math_OPERATORS}', "");
-    Expect(1, 11007, '\P{^ -Sup_Math_OPERATORS}', "");
-    Expect(0, 11008, '\p{ -Sup_Math_OPERATORS}', "");
-    Expect(1, 11008, '\p{^ -Sup_Math_OPERATORS}', "");
-    Expect(1, 11008, '\P{ -Sup_Math_OPERATORS}', "");
-    Expect(0, 11008, '\P{^ -Sup_Math_OPERATORS}', "");
-    Error('\p{/a/	Is_Sup_MATH_Operators}');
-    Error('\P{/a/	Is_Sup_MATH_Operators}');
+    Expect(1, 11007, '\p{ -Sup_math_Operators}', "");
+    Expect(0, 11007, '\p{^ -Sup_math_Operators}', "");
+    Expect(0, 11007, '\P{ -Sup_math_Operators}', "");
+    Expect(1, 11007, '\P{^ -Sup_math_Operators}', "");
+    Expect(0, 11008, '\p{ -Sup_math_Operators}', "");
+    Expect(1, 11008, '\p{^ -Sup_math_Operators}', "");
+    Expect(1, 11008, '\P{ -Sup_math_Operators}', "");
+    Expect(0, 11008, '\P{^ -Sup_math_Operators}', "");
+    Error('\p{	_IS_SUP_math_Operators/a/}');
+    Error('\P{	_IS_SUP_math_Operators/a/}');
     Expect(1, 11007, '\p{issupmathoperators}', "");
     Expect(0, 11007, '\p{^issupmathoperators}', "");
     Expect(0, 11007, '\P{issupmathoperators}', "");
@@ -120901,16 +122125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11008, '\p{^issupmathoperators}', "");
     Expect(1, 11008, '\P{issupmathoperators}', "");
     Expect(0, 11008, '\P{^issupmathoperators}', "");
-    Expect(1, 11007, '\p{	-IS_sup_Math_Operators}', "");
-    Expect(0, 11007, '\p{^	-IS_sup_Math_Operators}', "");
-    Expect(0, 11007, '\P{	-IS_sup_Math_Operators}', "");
-    Expect(1, 11007, '\P{^	-IS_sup_Math_Operators}', "");
-    Expect(0, 11008, '\p{	-IS_sup_Math_Operators}', "");
-    Expect(1, 11008, '\p{^	-IS_sup_Math_Operators}', "");
-    Expect(1, 11008, '\P{	-IS_sup_Math_Operators}', "");
-    Expect(0, 11008, '\P{^	-IS_sup_Math_Operators}', "");
-    Error('\p{:=_In_Sup_math_OPERATORS}');
-    Error('\P{:=_In_Sup_math_OPERATORS}');
+    Expect(1, 11007, '\p{Is_Sup_Math_operators}', "");
+    Expect(0, 11007, '\p{^Is_Sup_Math_operators}', "");
+    Expect(0, 11007, '\P{Is_Sup_Math_operators}', "");
+    Expect(1, 11007, '\P{^Is_Sup_Math_operators}', "");
+    Expect(0, 11008, '\p{Is_Sup_Math_operators}', "");
+    Expect(1, 11008, '\p{^Is_Sup_Math_operators}', "");
+    Expect(1, 11008, '\P{Is_Sup_Math_operators}', "");
+    Expect(0, 11008, '\P{^Is_Sup_Math_operators}', "");
+    Error('\p{_/a/In_sup_Math_OPERATORS}');
+    Error('\P{_/a/In_sup_Math_OPERATORS}');
     Expect(1, 11007, '\p{insupmathoperators}', "");
     Expect(0, 11007, '\p{^insupmathoperators}', "");
     Expect(0, 11007, '\P{insupmathoperators}', "");
@@ -120919,16 +122143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11008, '\p{^insupmathoperators}', "");
     Expect(1, 11008, '\P{insupmathoperators}', "");
     Expect(0, 11008, '\P{^insupmathoperators}', "");
-    Expect(1, 11007, '\p{-in_SUP_Math_OPERATORS}', "");
-    Expect(0, 11007, '\p{^-in_SUP_Math_OPERATORS}', "");
-    Expect(0, 11007, '\P{-in_SUP_Math_OPERATORS}', "");
-    Expect(1, 11007, '\P{^-in_SUP_Math_OPERATORS}', "");
-    Expect(0, 11008, '\p{-in_SUP_Math_OPERATORS}', "");
-    Expect(1, 11008, '\p{^-in_SUP_Math_OPERATORS}', "");
-    Expect(1, 11008, '\P{-in_SUP_Math_OPERATORS}', "");
-    Expect(0, 11008, '\P{^-in_SUP_Math_OPERATORS}', "");
-    Error('\p{- supplemental_PUNCTUATION:=}');
-    Error('\P{- supplemental_PUNCTUATION:=}');
+    Expect(1, 11007, '\p{_-in_SUP_math_OPERATORS}', "");
+    Expect(0, 11007, '\p{^_-in_SUP_math_OPERATORS}', "");
+    Expect(0, 11007, '\P{_-in_SUP_math_OPERATORS}', "");
+    Expect(1, 11007, '\P{^_-in_SUP_math_OPERATORS}', "");
+    Expect(0, 11008, '\p{_-in_SUP_math_OPERATORS}', "");
+    Expect(1, 11008, '\p{^_-in_SUP_math_OPERATORS}', "");
+    Expect(1, 11008, '\P{_-in_SUP_math_OPERATORS}', "");
+    Expect(0, 11008, '\P{^_-in_SUP_math_OPERATORS}', "");
+    Error('\p{_SUPPLEMENTAL_Punctuation:=}');
+    Error('\P{_SUPPLEMENTAL_Punctuation:=}');
     Expect(1, 11903, '\p{supplementalpunctuation}', "");
     Expect(0, 11903, '\p{^supplementalpunctuation}', "");
     Expect(0, 11903, '\P{supplementalpunctuation}', "");
@@ -120937,16 +122161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11904, '\p{^supplementalpunctuation}', "");
     Expect(1, 11904, '\P{supplementalpunctuation}', "");
     Expect(0, 11904, '\P{^supplementalpunctuation}', "");
-    Expect(1, 11903, '\p{ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11903, '\p{^ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11903, '\P{ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(1, 11903, '\P{^ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11904, '\p{ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(1, 11904, '\p{^ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(1, 11904, '\P{ SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11904, '\P{^ SUPPLEMENTAL_PUNCTUATION}', "");
-    Error('\p{		Is_supplemental_PUNCTUATION:=}');
-    Error('\P{		Is_supplemental_PUNCTUATION:=}');
+    Expect(1, 11903, '\p{-_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11903, '\p{^-_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11903, '\P{-_Supplemental_PUNCTUATION}', "");
+    Expect(1, 11903, '\P{^-_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11904, '\p{-_Supplemental_PUNCTUATION}', "");
+    Expect(1, 11904, '\p{^-_Supplemental_PUNCTUATION}', "");
+    Expect(1, 11904, '\P{-_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11904, '\P{^-_Supplemental_PUNCTUATION}', "");
+    Error('\p{	_Is_SUPPLEMENTAL_Punctuation:=}');
+    Error('\P{	_Is_SUPPLEMENTAL_Punctuation:=}');
     Expect(1, 11903, '\p{issupplementalpunctuation}', "");
     Expect(0, 11903, '\p{^issupplementalpunctuation}', "");
     Expect(0, 11903, '\P{issupplementalpunctuation}', "");
@@ -120955,16 +122179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11904, '\p{^issupplementalpunctuation}', "");
     Expect(1, 11904, '\P{issupplementalpunctuation}', "");
     Expect(0, 11904, '\P{^issupplementalpunctuation}', "");
-    Expect(1, 11903, '\p{_-Is_supplemental_Punctuation}', "");
-    Expect(0, 11903, '\p{^_-Is_supplemental_Punctuation}', "");
-    Expect(0, 11903, '\P{_-Is_supplemental_Punctuation}', "");
-    Expect(1, 11903, '\P{^_-Is_supplemental_Punctuation}', "");
-    Expect(0, 11904, '\p{_-Is_supplemental_Punctuation}', "");
-    Expect(1, 11904, '\p{^_-Is_supplemental_Punctuation}', "");
-    Expect(1, 11904, '\P{_-Is_supplemental_Punctuation}', "");
-    Expect(0, 11904, '\P{^_-Is_supplemental_Punctuation}', "");
-    Error('\p{	/a/In_SUPPLEMENTAL_PUNCTUATION}');
-    Error('\P{	/a/In_SUPPLEMENTAL_PUNCTUATION}');
+    Expect(1, 11903, '\p{ Is_supplemental_Punctuation}', "");
+    Expect(0, 11903, '\p{^ Is_supplemental_Punctuation}', "");
+    Expect(0, 11903, '\P{ Is_supplemental_Punctuation}', "");
+    Expect(1, 11903, '\P{^ Is_supplemental_Punctuation}', "");
+    Expect(0, 11904, '\p{ Is_supplemental_Punctuation}', "");
+    Expect(1, 11904, '\p{^ Is_supplemental_Punctuation}', "");
+    Expect(1, 11904, '\P{ Is_supplemental_Punctuation}', "");
+    Expect(0, 11904, '\P{^ Is_supplemental_Punctuation}', "");
+    Error('\p{ in_Supplemental_punctuation:=}');
+    Error('\P{ in_Supplemental_punctuation:=}');
     Expect(1, 11903, '\p{insupplementalpunctuation}', "");
     Expect(0, 11903, '\p{^insupplementalpunctuation}', "");
     Expect(0, 11903, '\P{insupplementalpunctuation}', "");
@@ -120973,16 +122197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11904, '\p{^insupplementalpunctuation}', "");
     Expect(1, 11904, '\P{insupplementalpunctuation}', "");
     Expect(0, 11904, '\P{^insupplementalpunctuation}', "");
-    Expect(1, 11903, '\p{	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11903, '\p{^	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11903, '\P{	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(1, 11903, '\P{^	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11904, '\p{	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(1, 11904, '\p{^	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(1, 11904, '\P{	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Expect(0, 11904, '\P{^	-in_SUPPLEMENTAL_PUNCTUATION}', "");
-    Error('\p{:=sup_Punctuation}');
-    Error('\P{:=sup_Punctuation}');
+    Expect(1, 11903, '\p{_IN_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11903, '\p{^_IN_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11903, '\P{_IN_Supplemental_PUNCTUATION}', "");
+    Expect(1, 11903, '\P{^_IN_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11904, '\p{_IN_Supplemental_PUNCTUATION}', "");
+    Expect(1, 11904, '\p{^_IN_Supplemental_PUNCTUATION}', "");
+    Expect(1, 11904, '\P{_IN_Supplemental_PUNCTUATION}', "");
+    Expect(0, 11904, '\P{^_IN_Supplemental_PUNCTUATION}', "");
+    Error('\p{/a/	 sup_Punctuation}');
+    Error('\P{/a/	 sup_Punctuation}');
     Expect(1, 11903, '\p{suppunctuation}', "");
     Expect(0, 11903, '\p{^suppunctuation}', "");
     Expect(0, 11903, '\P{suppunctuation}', "");
@@ -120991,16 +122215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11904, '\p{^suppunctuation}', "");
     Expect(1, 11904, '\P{suppunctuation}', "");
     Expect(0, 11904, '\P{^suppunctuation}', "");
-    Expect(1, 11903, '\p{	_SUP_PUNCTUATION}', "");
-    Expect(0, 11903, '\p{^	_SUP_PUNCTUATION}', "");
-    Expect(0, 11903, '\P{	_SUP_PUNCTUATION}', "");
-    Expect(1, 11903, '\P{^	_SUP_PUNCTUATION}', "");
-    Expect(0, 11904, '\p{	_SUP_PUNCTUATION}', "");
-    Expect(1, 11904, '\p{^	_SUP_PUNCTUATION}', "");
-    Expect(1, 11904, '\P{	_SUP_PUNCTUATION}', "");
-    Expect(0, 11904, '\P{^	_SUP_PUNCTUATION}', "");
-    Error('\p{/a/Is_sup_Punctuation}');
-    Error('\P{/a/Is_sup_Punctuation}');
+    Expect(1, 11903, '\p{ Sup_punctuation}', "");
+    Expect(0, 11903, '\p{^ Sup_punctuation}', "");
+    Expect(0, 11903, '\P{ Sup_punctuation}', "");
+    Expect(1, 11903, '\P{^ Sup_punctuation}', "");
+    Expect(0, 11904, '\p{ Sup_punctuation}', "");
+    Expect(1, 11904, '\p{^ Sup_punctuation}', "");
+    Expect(1, 11904, '\P{ Sup_punctuation}', "");
+    Expect(0, 11904, '\P{^ Sup_punctuation}', "");
+    Error('\p{:=--Is_SUP_Punctuation}');
+    Error('\P{:=--Is_SUP_Punctuation}');
     Expect(1, 11903, '\p{issuppunctuation}', "");
     Expect(0, 11903, '\p{^issuppunctuation}', "");
     Expect(0, 11903, '\P{issuppunctuation}', "");
@@ -121009,16 +122233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11904, '\p{^issuppunctuation}', "");
     Expect(1, 11904, '\P{issuppunctuation}', "");
     Expect(0, 11904, '\P{^issuppunctuation}', "");
-    Expect(1, 11903, '\p{-	IS_Sup_PUNCTUATION}', "");
-    Expect(0, 11903, '\p{^-	IS_Sup_PUNCTUATION}', "");
-    Expect(0, 11903, '\P{-	IS_Sup_PUNCTUATION}', "");
-    Expect(1, 11903, '\P{^-	IS_Sup_PUNCTUATION}', "");
-    Expect(0, 11904, '\p{-	IS_Sup_PUNCTUATION}', "");
-    Expect(1, 11904, '\p{^-	IS_Sup_PUNCTUATION}', "");
-    Expect(1, 11904, '\P{-	IS_Sup_PUNCTUATION}', "");
-    Expect(0, 11904, '\P{^-	IS_Sup_PUNCTUATION}', "");
-    Error('\p{:= _IN_sup_PUNCTUATION}');
-    Error('\P{:= _IN_sup_PUNCTUATION}');
+    Expect(1, 11903, '\p{	-is_Sup_punctuation}', "");
+    Expect(0, 11903, '\p{^	-is_Sup_punctuation}', "");
+    Expect(0, 11903, '\P{	-is_Sup_punctuation}', "");
+    Expect(1, 11903, '\P{^	-is_Sup_punctuation}', "");
+    Expect(0, 11904, '\p{	-is_Sup_punctuation}', "");
+    Expect(1, 11904, '\p{^	-is_Sup_punctuation}', "");
+    Expect(1, 11904, '\P{	-is_Sup_punctuation}', "");
+    Expect(0, 11904, '\P{^	-is_Sup_punctuation}', "");
+    Error('\p{	/a/In_Sup_punctuation}');
+    Error('\P{	/a/In_Sup_punctuation}');
     Expect(1, 11903, '\p{insuppunctuation}', "");
     Expect(0, 11903, '\p{^insuppunctuation}', "");
     Expect(0, 11903, '\P{insuppunctuation}', "");
@@ -121027,16 +122251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11904, '\p{^insuppunctuation}', "");
     Expect(1, 11904, '\P{insuppunctuation}', "");
     Expect(0, 11904, '\P{^insuppunctuation}', "");
-    Expect(1, 11903, '\p{-in_Sup_PUNCTUATION}', "");
-    Expect(0, 11903, '\p{^-in_Sup_PUNCTUATION}', "");
-    Expect(0, 11903, '\P{-in_Sup_PUNCTUATION}', "");
-    Expect(1, 11903, '\P{^-in_Sup_PUNCTUATION}', "");
-    Expect(0, 11904, '\p{-in_Sup_PUNCTUATION}', "");
-    Expect(1, 11904, '\p{^-in_Sup_PUNCTUATION}', "");
-    Expect(1, 11904, '\P{-in_Sup_PUNCTUATION}', "");
-    Expect(0, 11904, '\P{^-in_Sup_PUNCTUATION}', "");
-    Error('\p{_:=supplemental_SYMBOLS_And_pictographs}');
-    Error('\P{_:=supplemental_SYMBOLS_And_pictographs}');
+    Expect(1, 11903, '\p{	 In_Sup_PUNCTUATION}', "");
+    Expect(0, 11903, '\p{^	 In_Sup_PUNCTUATION}', "");
+    Expect(0, 11903, '\P{	 In_Sup_PUNCTUATION}', "");
+    Expect(1, 11903, '\P{^	 In_Sup_PUNCTUATION}', "");
+    Expect(0, 11904, '\p{	 In_Sup_PUNCTUATION}', "");
+    Expect(1, 11904, '\p{^	 In_Sup_PUNCTUATION}', "");
+    Expect(1, 11904, '\P{	 In_Sup_PUNCTUATION}', "");
+    Expect(0, 11904, '\P{^	 In_Sup_PUNCTUATION}', "");
+    Error('\p{_ SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS:=}');
+    Error('\P{_ SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS:=}');
     Expect(1, 129535, '\p{supplementalsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^supplementalsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{supplementalsymbolsandpictographs}', "");
@@ -121045,16 +122269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129536, '\p{^supplementalsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{supplementalsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^supplementalsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(0, 129535, '\p{^_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(0, 129535, '\P{_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(1, 129535, '\P{^_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(0, 129536, '\p{_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(1, 129536, '\p{^_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(1, 129536, '\P{_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Expect(0, 129536, '\P{^_-supplemental_SYMBOLS_AND_Pictographs}', "");
-    Error('\p{ /a/Is_Supplemental_SYMBOLS_AND_pictographs}');
-    Error('\P{ /a/Is_Supplemental_SYMBOLS_AND_pictographs}');
+    Expect(1, 129535, '\p{		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(0, 129535, '\p{^		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(0, 129535, '\P{		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(1, 129535, '\P{^		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(0, 129536, '\p{		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(1, 129536, '\p{^		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(1, 129536, '\P{		Supplemental_symbols_AND_Pictographs}', "");
+    Expect(0, 129536, '\P{^		Supplemental_symbols_AND_Pictographs}', "");
+    Error('\p{:=Is_SUPPLEMENTAL_Symbols_and_Pictographs}');
+    Error('\P{:=Is_SUPPLEMENTAL_Symbols_and_Pictographs}');
     Expect(1, 129535, '\p{issupplementalsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^issupplementalsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{issupplementalsymbolsandpictographs}', "");
@@ -121063,16 +122287,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129536, '\p{^issupplementalsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{issupplementalsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^issupplementalsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(0, 129535, '\p{^ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(0, 129535, '\P{ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(1, 129535, '\P{^ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(0, 129536, '\p{ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(1, 129536, '\p{^ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(1, 129536, '\P{ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Expect(0, 129536, '\P{^ IS_Supplemental_Symbols_And_Pictographs}', "");
-    Error('\p{ -in_SUPPLEMENTAL_SYMBOLS_And_pictographs/a/}');
-    Error('\P{ -in_SUPPLEMENTAL_SYMBOLS_And_pictographs/a/}');
+    Expect(1, 129535, '\p{_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(0, 129535, '\p{^_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(0, 129535, '\P{_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(1, 129535, '\P{^_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(0, 129536, '\p{_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(1, 129536, '\p{^_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(1, 129536, '\P{_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Expect(0, 129536, '\P{^_-Is_supplemental_Symbols_AND_Pictographs}', "");
+    Error('\p{ :=In_Supplemental_SYMBOLS_AND_Pictographs}');
+    Error('\P{ :=In_Supplemental_SYMBOLS_AND_Pictographs}');
     Expect(1, 129535, '\p{insupplementalsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^insupplementalsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{insupplementalsymbolsandpictographs}', "");
@@ -121081,16 +122305,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129536, '\p{^insupplementalsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{insupplementalsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^insupplementalsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\p{^_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\P{_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129535, '\P{^_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\p{_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\p{^_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\P{_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\P{^_ In_SUPPLEMENTAL_Symbols_And_PICTOGRAPHS}', "");
-    Error('\p{:=Sup_SYMBOLS_And_pictographs}');
-    Error('\P{:=Sup_SYMBOLS_And_pictographs}');
+    Expect(1, 129535, '\p{		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129535, '\p{^		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129535, '\P{		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(1, 129535, '\P{^		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129536, '\p{		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(1, 129536, '\p{^		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(1, 129536, '\P{		in_supplemental_symbols_And_Pictographs}', "");
+    Expect(0, 129536, '\P{^		in_supplemental_symbols_And_Pictographs}', "");
+    Error('\p{/a/__Sup_Symbols_And_Pictographs}');
+    Error('\P{/a/__Sup_Symbols_And_Pictographs}');
     Expect(1, 129535, '\p{supsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^supsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{supsymbolsandpictographs}', "");
@@ -121099,16 +122323,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129536, '\p{^supsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{supsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^supsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{-SUP_Symbols_And_Pictographs}', "");
-    Expect(0, 129535, '\p{^-SUP_Symbols_And_Pictographs}', "");
-    Expect(0, 129535, '\P{-SUP_Symbols_And_Pictographs}', "");
-    Expect(1, 129535, '\P{^-SUP_Symbols_And_Pictographs}', "");
-    Expect(0, 129536, '\p{-SUP_Symbols_And_Pictographs}', "");
-    Expect(1, 129536, '\p{^-SUP_Symbols_And_Pictographs}', "");
-    Expect(1, 129536, '\P{-SUP_Symbols_And_Pictographs}', "");
-    Expect(0, 129536, '\P{^-SUP_Symbols_And_Pictographs}', "");
-    Error('\p{-:=Is_Sup_SYMBOLS_And_PICTOGRAPHS}');
-    Error('\P{-:=Is_Sup_SYMBOLS_And_PICTOGRAPHS}');
+    Expect(1, 129535, '\p{ -Sup_symbols_and_Pictographs}', "");
+    Expect(0, 129535, '\p{^ -Sup_symbols_and_Pictographs}', "");
+    Expect(0, 129535, '\P{ -Sup_symbols_and_Pictographs}', "");
+    Expect(1, 129535, '\P{^ -Sup_symbols_and_Pictographs}', "");
+    Expect(0, 129536, '\p{ -Sup_symbols_and_Pictographs}', "");
+    Expect(1, 129536, '\p{^ -Sup_symbols_and_Pictographs}', "");
+    Expect(1, 129536, '\P{ -Sup_symbols_and_Pictographs}', "");
+    Expect(0, 129536, '\P{^ -Sup_symbols_and_Pictographs}', "");
+    Error('\p{:=	 Is_SUP_Symbols_AND_Pictographs}');
+    Error('\P{:=	 Is_SUP_Symbols_AND_Pictographs}');
     Expect(1, 129535, '\p{issupsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^issupsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{issupsymbolsandpictographs}', "");
@@ -121117,16 +122341,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129536, '\p{^issupsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{issupsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^issupsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\p{^ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(0, 129535, '\P{ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(1, 129535, '\P{^ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\p{ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\p{^ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(1, 129536, '\P{ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Expect(0, 129536, '\P{^ is_Sup_Symbols_and_PICTOGRAPHS}', "");
-    Error('\p{	_in_Sup_Symbols_And_Pictographs:=}');
-    Error('\P{	_in_Sup_Symbols_And_Pictographs:=}');
+    Expect(1, 129535, '\p{		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 129535, '\p{^		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 129535, '\P{		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(1, 129535, '\P{^		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 129536, '\p{		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(1, 129536, '\p{^		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(1, 129536, '\P{		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Expect(0, 129536, '\P{^		is_Sup_Symbols_And_PICTOGRAPHS}', "");
+    Error('\p{:= IN_sup_Symbols_and_PICTOGRAPHS}');
+    Error('\P{:= IN_sup_Symbols_and_PICTOGRAPHS}');
     Expect(1, 129535, '\p{insupsymbolsandpictographs}', "");
     Expect(0, 129535, '\p{^insupsymbolsandpictographs}', "");
     Expect(0, 129535, '\P{insupsymbolsandpictographs}', "");
@@ -121135,16 +122359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129536, '\p{^insupsymbolsandpictographs}', "");
     Expect(1, 129536, '\P{insupsymbolsandpictographs}', "");
     Expect(0, 129536, '\P{^insupsymbolsandpictographs}', "");
-    Expect(1, 129535, '\p{_In_sup_symbols_and_pictographs}', "");
-    Expect(0, 129535, '\p{^_In_sup_symbols_and_pictographs}', "");
-    Expect(0, 129535, '\P{_In_sup_symbols_and_pictographs}', "");
-    Expect(1, 129535, '\P{^_In_sup_symbols_and_pictographs}', "");
-    Expect(0, 129536, '\p{_In_sup_symbols_and_pictographs}', "");
-    Expect(1, 129536, '\p{^_In_sup_symbols_and_pictographs}', "");
-    Expect(1, 129536, '\P{_In_sup_symbols_and_pictographs}', "");
-    Expect(0, 129536, '\P{^_In_sup_symbols_and_pictographs}', "");
-    Error('\p{:=	_Supplementary_PRIVATE_USE_Area_a}');
-    Error('\P{:=	_Supplementary_PRIVATE_USE_Area_a}');
+    Expect(1, 129535, '\p{-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 129535, '\p{^-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 129535, '\P{-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(1, 129535, '\P{^-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 129536, '\p{-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(1, 129536, '\p{^-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(1, 129536, '\P{-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Expect(0, 129536, '\P{^-_IN_SUP_Symbols_AND_PICTOGRAPHS}', "");
+    Error('\p{:=	-Supplementary_Private_Use_AREA_a}');
+    Error('\P{:=	-Supplementary_Private_Use_AREA_a}');
     Expect(1, 983040, '\p{supplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\p{^supplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\P{supplementaryprivateuseareaa}', "");
@@ -121153,16 +122377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1048576, '\p{^supplementaryprivateuseareaa}', "");
     Expect(1, 1048576, '\P{supplementaryprivateuseareaa}', "");
     Expect(0, 1048576, '\P{^supplementaryprivateuseareaa}', "");
-    Expect(1, 983040, '\p{		Supplementary_Private_use_AREA_A}', "");
-    Expect(0, 983040, '\p{^		Supplementary_Private_use_AREA_A}', "");
-    Expect(0, 983040, '\P{		Supplementary_Private_use_AREA_A}', "");
-    Expect(1, 983040, '\P{^		Supplementary_Private_use_AREA_A}', "");
-    Expect(0, 1048576, '\p{		Supplementary_Private_use_AREA_A}', "");
-    Expect(1, 1048576, '\p{^		Supplementary_Private_use_AREA_A}', "");
-    Expect(1, 1048576, '\P{		Supplementary_Private_use_AREA_A}', "");
-    Expect(0, 1048576, '\P{^		Supplementary_Private_use_AREA_A}', "");
-    Error('\p{ -IS_supplementary_PRIVATE_use_Area_a/a/}');
-    Error('\P{ -IS_supplementary_PRIVATE_use_Area_a/a/}');
+    Expect(1, 983040, '\p{ supplementary_Private_Use_AREA_A}', "");
+    Expect(0, 983040, '\p{^ supplementary_Private_Use_AREA_A}', "");
+    Expect(0, 983040, '\P{ supplementary_Private_Use_AREA_A}', "");
+    Expect(1, 983040, '\P{^ supplementary_Private_Use_AREA_A}', "");
+    Expect(0, 1048576, '\p{ supplementary_Private_Use_AREA_A}', "");
+    Expect(1, 1048576, '\p{^ supplementary_Private_Use_AREA_A}', "");
+    Expect(1, 1048576, '\P{ supplementary_Private_Use_AREA_A}', "");
+    Expect(0, 1048576, '\P{^ supplementary_Private_Use_AREA_A}', "");
+    Error('\p{/a/Is_supplementary_Private_use_AREA_A}');
+    Error('\P{/a/Is_supplementary_Private_use_AREA_A}');
     Expect(1, 983040, '\p{issupplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\p{^issupplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\P{issupplementaryprivateuseareaa}', "");
@@ -121171,16 +122395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1048576, '\p{^issupplementaryprivateuseareaa}', "");
     Expect(1, 1048576, '\P{issupplementaryprivateuseareaa}', "");
     Expect(0, 1048576, '\P{^issupplementaryprivateuseareaa}', "");
-    Expect(1, 983040, '\p{	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(0, 983040, '\p{^	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(0, 983040, '\P{	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(1, 983040, '\P{^	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(0, 1048576, '\p{	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(1, 1048576, '\p{^	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(1, 1048576, '\P{	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Expect(0, 1048576, '\P{^	-Is_supplementary_PRIVATE_Use_area_A}', "");
-    Error('\p{ in_SUPPLEMENTARY_PRIVATE_Use_Area_A/a/}');
-    Error('\P{ in_SUPPLEMENTARY_PRIVATE_Use_Area_A/a/}');
+    Expect(1, 983040, '\p{	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(0, 983040, '\p{^	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(0, 983040, '\P{	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(1, 983040, '\P{^	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(0, 1048576, '\p{	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(1, 1048576, '\p{^	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(1, 1048576, '\P{	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Expect(0, 1048576, '\P{^	 IS_supplementary_PRIVATE_Use_Area_a}', "");
+    Error('\p{:=_IN_supplementary_PRIVATE_use_AREA_a}');
+    Error('\P{:=_IN_supplementary_PRIVATE_use_AREA_a}');
     Expect(1, 983040, '\p{insupplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\p{^insupplementaryprivateuseareaa}', "");
     Expect(0, 983040, '\P{insupplementaryprivateuseareaa}', "");
@@ -121189,16 +122413,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1048576, '\p{^insupplementaryprivateuseareaa}', "");
     Expect(1, 1048576, '\P{insupplementaryprivateuseareaa}', "");
     Expect(0, 1048576, '\P{^insupplementaryprivateuseareaa}', "");
-    Expect(1, 983040, '\p{ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(0, 983040, '\p{^ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(0, 983040, '\P{ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(1, 983040, '\P{^ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(0, 1048576, '\p{ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(1, 1048576, '\p{^ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(1, 1048576, '\P{ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Expect(0, 1048576, '\P{^ 	In_SUPPLEMENTARY_private_USE_Area_A}', "");
-    Error('\p{-:=Sup_PUA_a}');
-    Error('\P{-:=Sup_PUA_a}');
+    Expect(1, 983040, '\p{	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(0, 983040, '\p{^	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(0, 983040, '\P{	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(1, 983040, '\P{^	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(0, 1048576, '\p{	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(1, 1048576, '\p{^	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(1, 1048576, '\P{	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Expect(0, 1048576, '\P{^	-In_SUPPLEMENTARY_private_USE_Area_A}', "");
+    Error('\p{:=- Sup_PUA_a}');
+    Error('\P{:=- Sup_PUA_a}');
     Expect(1, 983040, '\p{suppuaa}', "");
     Expect(0, 983040, '\p{^suppuaa}', "");
     Expect(0, 983040, '\P{suppuaa}', "");
@@ -121207,16 +122431,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1048576, '\p{^suppuaa}', "");
     Expect(1, 1048576, '\P{suppuaa}', "");
     Expect(0, 1048576, '\P{^suppuaa}', "");
-    Expect(1, 983040, '\p{		sup_PUA_A}', "");
-    Expect(0, 983040, '\p{^		sup_PUA_A}', "");
-    Expect(0, 983040, '\P{		sup_PUA_A}', "");
-    Expect(1, 983040, '\P{^		sup_PUA_A}', "");
-    Expect(0, 1048576, '\p{		sup_PUA_A}', "");
-    Expect(1, 1048576, '\p{^		sup_PUA_A}', "");
-    Expect(1, 1048576, '\P{		sup_PUA_A}', "");
-    Expect(0, 1048576, '\P{^		sup_PUA_A}', "");
-    Error('\p{- Is_sup_PUA_a:=}');
-    Error('\P{- Is_sup_PUA_a:=}');
+    Expect(1, 983040, '\p{	SUP_pua_A}', "");
+    Expect(0, 983040, '\p{^	SUP_pua_A}', "");
+    Expect(0, 983040, '\P{	SUP_pua_A}', "");
+    Expect(1, 983040, '\P{^	SUP_pua_A}', "");
+    Expect(0, 1048576, '\p{	SUP_pua_A}', "");
+    Expect(1, 1048576, '\p{^	SUP_pua_A}', "");
+    Expect(1, 1048576, '\P{	SUP_pua_A}', "");
+    Expect(0, 1048576, '\P{^	SUP_pua_A}', "");
+    Error('\p{-Is_SUP_PUA_A/a/}');
+    Error('\P{-Is_SUP_PUA_A/a/}');
     Expect(1, 983040, '\p{issuppuaa}', "");
     Expect(0, 983040, '\p{^issuppuaa}', "");
     Expect(0, 983040, '\P{issuppuaa}', "");
@@ -121225,16 +122449,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1048576, '\p{^issuppuaa}', "");
     Expect(1, 1048576, '\P{issuppuaa}', "");
     Expect(0, 1048576, '\P{^issuppuaa}', "");
-    Expect(1, 983040, '\p{-IS_sup_PUA_A}', "");
-    Expect(0, 983040, '\p{^-IS_sup_PUA_A}', "");
-    Expect(0, 983040, '\P{-IS_sup_PUA_A}', "");
-    Expect(1, 983040, '\P{^-IS_sup_PUA_A}', "");
-    Expect(0, 1048576, '\p{-IS_sup_PUA_A}', "");
-    Expect(1, 1048576, '\p{^-IS_sup_PUA_A}', "");
-    Expect(1, 1048576, '\P{-IS_sup_PUA_A}', "");
-    Expect(0, 1048576, '\P{^-IS_sup_PUA_A}', "");
-    Error('\p{	/a/In_SUP_pua_A}');
-    Error('\P{	/a/In_SUP_pua_A}');
+    Expect(1, 983040, '\p{_-IS_SUP_PUA_A}', "");
+    Expect(0, 983040, '\p{^_-IS_SUP_PUA_A}', "");
+    Expect(0, 983040, '\P{_-IS_SUP_PUA_A}', "");
+    Expect(1, 983040, '\P{^_-IS_SUP_PUA_A}', "");
+    Expect(0, 1048576, '\p{_-IS_SUP_PUA_A}', "");
+    Expect(1, 1048576, '\p{^_-IS_SUP_PUA_A}', "");
+    Expect(1, 1048576, '\P{_-IS_SUP_PUA_A}', "");
+    Expect(0, 1048576, '\P{^_-IS_SUP_PUA_A}', "");
+    Error('\p{/a/- In_sup_pua_A}');
+    Error('\P{/a/- In_sup_pua_A}');
     Expect(1, 983040, '\p{insuppuaa}', "");
     Expect(0, 983040, '\p{^insuppuaa}', "");
     Expect(0, 983040, '\P{insuppuaa}', "");
@@ -121243,16 +122467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1048576, '\p{^insuppuaa}', "");
     Expect(1, 1048576, '\P{insuppuaa}', "");
     Expect(0, 1048576, '\P{^insuppuaa}', "");
-    Expect(1, 983040, '\p{-In_SUP_pua_A}', "");
-    Expect(0, 983040, '\p{^-In_SUP_pua_A}', "");
-    Expect(0, 983040, '\P{-In_SUP_pua_A}', "");
-    Expect(1, 983040, '\P{^-In_SUP_pua_A}', "");
-    Expect(0, 1048576, '\p{-In_SUP_pua_A}', "");
-    Expect(1, 1048576, '\p{^-In_SUP_pua_A}', "");
-    Expect(1, 1048576, '\P{-In_SUP_pua_A}', "");
-    Expect(0, 1048576, '\P{^-In_SUP_pua_A}', "");
-    Error('\p{_/a/Supplementary_private_Use_AREA_B}');
-    Error('\P{_/a/Supplementary_private_Use_AREA_B}');
+    Expect(1, 983040, '\p{--In_sup_PUA_A}', "");
+    Expect(0, 983040, '\p{^--In_sup_PUA_A}', "");
+    Expect(0, 983040, '\P{--In_sup_PUA_A}', "");
+    Expect(1, 983040, '\P{^--In_sup_PUA_A}', "");
+    Expect(0, 1048576, '\p{--In_sup_PUA_A}', "");
+    Expect(1, 1048576, '\p{^--In_sup_PUA_A}', "");
+    Expect(1, 1048576, '\P{--In_sup_PUA_A}', "");
+    Expect(0, 1048576, '\P{^--In_sup_PUA_A}', "");
+    Error('\p{/a/	Supplementary_private_Use_Area_b}');
+    Error('\P{/a/	Supplementary_private_Use_Area_b}');
     Expect(1, 1048576, '\p{supplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\p{^supplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\P{supplementaryprivateuseareab}', "");
@@ -121261,16 +122485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^supplementaryprivateuseareab}', "");
     Expect(1, 1, '\P{supplementaryprivateuseareab}', "");
     Expect(0, 1, '\P{^supplementaryprivateuseareab}', "");
-    Expect(1, 1048576, '\p{- supplementary_Private_Use_area_b}', "");
-    Expect(0, 1048576, '\p{^- supplementary_Private_Use_area_b}', "");
-    Expect(0, 1048576, '\P{- supplementary_Private_Use_area_b}', "");
-    Expect(1, 1048576, '\P{^- supplementary_Private_Use_area_b}', "");
-    Expect(0, 1, '\p{- supplementary_Private_Use_area_b}', "");
-    Expect(1, 1, '\p{^- supplementary_Private_Use_area_b}', "");
-    Expect(1, 1, '\P{- supplementary_Private_Use_area_b}', "");
-    Expect(0, 1, '\P{^- supplementary_Private_Use_area_b}', "");
-    Error('\p{	/a/is_supplementary_PRIVATE_USE_Area_B}');
-    Error('\P{	/a/is_supplementary_PRIVATE_USE_Area_B}');
+    Expect(1, 1048576, '\p{_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(0, 1048576, '\p{^_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(0, 1048576, '\P{_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(1, 1048576, '\P{^_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(0, 1, '\p{_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(1, 1, '\p{^_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(1, 1, '\P{_SUPPLEMENTARY_private_use_Area_b}', "");
+    Expect(0, 1, '\P{^_SUPPLEMENTARY_private_use_Area_b}', "");
+    Error('\p{_-Is_SUPPLEMENTARY_PRIVATE_use_Area_B/a/}');
+    Error('\P{_-Is_SUPPLEMENTARY_PRIVATE_use_Area_B/a/}');
     Expect(1, 1048576, '\p{issupplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\p{^issupplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\P{issupplementaryprivateuseareab}', "");
@@ -121279,16 +122503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^issupplementaryprivateuseareab}', "");
     Expect(1, 1, '\P{issupplementaryprivateuseareab}', "");
     Expect(0, 1, '\P{^issupplementaryprivateuseareab}', "");
-    Expect(1, 1048576, '\p{	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(0, 1048576, '\p{^	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(0, 1048576, '\P{	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(1, 1048576, '\P{^	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(0, 1, '\p{	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(1, 1, '\p{^	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(1, 1, '\P{	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Expect(0, 1, '\P{^	 Is_Supplementary_PRIVATE_Use_area_B}', "");
-    Error('\p{_ in_Supplementary_PRIVATE_USE_Area_B:=}');
-    Error('\P{_ in_Supplementary_PRIVATE_USE_Area_B:=}');
+    Expect(1, 1048576, '\p{_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(0, 1048576, '\p{^_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(0, 1048576, '\P{_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(1, 1048576, '\P{^_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(0, 1, '\p{_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(1, 1, '\p{^_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(1, 1, '\P{_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Expect(0, 1, '\P{^_ Is_Supplementary_Private_USE_AREA_B}', "");
+    Error('\p{-_in_SUPPLEMENTARY_PRIVATE_use_Area_b:=}');
+    Error('\P{-_in_SUPPLEMENTARY_PRIVATE_use_Area_b:=}');
     Expect(1, 1048576, '\p{insupplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\p{^insupplementaryprivateuseareab}', "");
     Expect(0, 1048576, '\P{insupplementaryprivateuseareab}', "");
@@ -121297,16 +122521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^insupplementaryprivateuseareab}', "");
     Expect(1, 1, '\P{insupplementaryprivateuseareab}', "");
     Expect(0, 1, '\P{^insupplementaryprivateuseareab}', "");
-    Expect(1, 1048576, '\p{ -in_supplementary_Private_use_Area_B}', "");
-    Expect(0, 1048576, '\p{^ -in_supplementary_Private_use_Area_B}', "");
-    Expect(0, 1048576, '\P{ -in_supplementary_Private_use_Area_B}', "");
-    Expect(1, 1048576, '\P{^ -in_supplementary_Private_use_Area_B}', "");
-    Expect(0, 1, '\p{ -in_supplementary_Private_use_Area_B}', "");
-    Expect(1, 1, '\p{^ -in_supplementary_Private_use_Area_B}', "");
-    Expect(1, 1, '\P{ -in_supplementary_Private_use_Area_B}', "");
-    Expect(0, 1, '\P{^ -in_supplementary_Private_use_Area_B}', "");
-    Error('\p{:= _Sup_pua_B}');
-    Error('\P{:= _Sup_pua_B}');
+    Expect(1, 1048576, '\p{ -In_supplementary_private_Use_Area_B}', "");
+    Expect(0, 1048576, '\p{^ -In_supplementary_private_Use_Area_B}', "");
+    Expect(0, 1048576, '\P{ -In_supplementary_private_Use_Area_B}', "");
+    Expect(1, 1048576, '\P{^ -In_supplementary_private_Use_Area_B}', "");
+    Expect(0, 1, '\p{ -In_supplementary_private_Use_Area_B}', "");
+    Expect(1, 1, '\p{^ -In_supplementary_private_Use_Area_B}', "");
+    Expect(1, 1, '\P{ -In_supplementary_private_Use_Area_B}', "");
+    Expect(0, 1, '\P{^ -In_supplementary_private_Use_Area_B}', "");
+    Error('\p{/a/	SUP_PUA_B}');
+    Error('\P{/a/	SUP_PUA_B}');
     Expect(1, 1048576, '\p{suppuab}', "");
     Expect(0, 1048576, '\p{^suppuab}', "");
     Expect(0, 1048576, '\P{suppuab}', "");
@@ -121315,16 +122539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^suppuab}', "");
     Expect(1, 1, '\P{suppuab}', "");
     Expect(0, 1, '\P{^suppuab}', "");
-    Expect(1, 1048576, '\p{- sup_PUA_b}', "");
-    Expect(0, 1048576, '\p{^- sup_PUA_b}', "");
-    Expect(0, 1048576, '\P{- sup_PUA_b}', "");
-    Expect(1, 1048576, '\P{^- sup_PUA_b}', "");
-    Expect(0, 1, '\p{- sup_PUA_b}', "");
-    Expect(1, 1, '\p{^- sup_PUA_b}', "");
-    Expect(1, 1, '\P{- sup_PUA_b}', "");
-    Expect(0, 1, '\P{^- sup_PUA_b}', "");
-    Error('\p{-is_sup_pua_B/a/}');
-    Error('\P{-is_sup_pua_B/a/}');
+    Expect(1, 1048576, '\p{	 Sup_PUA_b}', "");
+    Expect(0, 1048576, '\p{^	 Sup_PUA_b}', "");
+    Expect(0, 1048576, '\P{	 Sup_PUA_b}', "");
+    Expect(1, 1048576, '\P{^	 Sup_PUA_b}', "");
+    Expect(0, 1, '\p{	 Sup_PUA_b}', "");
+    Expect(1, 1, '\p{^	 Sup_PUA_b}', "");
+    Expect(1, 1, '\P{	 Sup_PUA_b}', "");
+    Expect(0, 1, '\P{^	 Sup_PUA_b}', "");
+    Error('\p{__is_sup_PUA_B/a/}');
+    Error('\P{__is_sup_PUA_B/a/}');
     Expect(1, 1048576, '\p{issuppuab}', "");
     Expect(0, 1048576, '\p{^issuppuab}', "");
     Expect(0, 1048576, '\P{issuppuab}', "");
@@ -121333,16 +122557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^issuppuab}', "");
     Expect(1, 1, '\P{issuppuab}', "");
     Expect(0, 1, '\P{^issuppuab}', "");
-    Expect(1, 1048576, '\p{--Is_Sup_PUA_B}', "");
-    Expect(0, 1048576, '\p{^--Is_Sup_PUA_B}', "");
-    Expect(0, 1048576, '\P{--Is_Sup_PUA_B}', "");
-    Expect(1, 1048576, '\P{^--Is_Sup_PUA_B}', "");
-    Expect(0, 1, '\p{--Is_Sup_PUA_B}', "");
-    Expect(1, 1, '\p{^--Is_Sup_PUA_B}', "");
-    Expect(1, 1, '\P{--Is_Sup_PUA_B}', "");
-    Expect(0, 1, '\P{^--Is_Sup_PUA_B}', "");
-    Error('\p{ :=In_Sup_PUA_b}');
-    Error('\P{ :=In_Sup_PUA_b}');
+    Expect(1, 1048576, '\p{- Is_Sup_PUA_B}', "");
+    Expect(0, 1048576, '\p{^- Is_Sup_PUA_B}', "");
+    Expect(0, 1048576, '\P{- Is_Sup_PUA_B}', "");
+    Expect(1, 1048576, '\P{^- Is_Sup_PUA_B}', "");
+    Expect(0, 1, '\p{- Is_Sup_PUA_B}', "");
+    Expect(1, 1, '\p{^- Is_Sup_PUA_B}', "");
+    Expect(1, 1, '\P{- Is_Sup_PUA_B}', "");
+    Expect(0, 1, '\P{^- Is_Sup_PUA_B}', "");
+    Error('\p{/a/_	in_Sup_PUA_B}');
+    Error('\P{/a/_	in_Sup_PUA_B}');
     Expect(1, 1048576, '\p{insuppuab}', "");
     Expect(0, 1048576, '\p{^insuppuab}', "");
     Expect(0, 1048576, '\P{insuppuab}', "");
@@ -121351,16 +122575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^insuppuab}', "");
     Expect(1, 1, '\P{insuppuab}', "");
     Expect(0, 1, '\P{^insuppuab}', "");
-    Expect(1, 1048576, '\p{ 	In_Sup_PUA_B}', "");
-    Expect(0, 1048576, '\p{^ 	In_Sup_PUA_B}', "");
-    Expect(0, 1048576, '\P{ 	In_Sup_PUA_B}', "");
-    Expect(1, 1048576, '\P{^ 	In_Sup_PUA_B}', "");
-    Expect(0, 1, '\p{ 	In_Sup_PUA_B}', "");
-    Expect(1, 1, '\p{^ 	In_Sup_PUA_B}', "");
-    Expect(1, 1, '\P{ 	In_Sup_PUA_B}', "");
-    Expect(0, 1, '\P{^ 	In_Sup_PUA_B}', "");
-    Error('\p{	-SURROGATE/a/}');
-    Error('\P{	-SURROGATE/a/}');
+    Expect(1, 1048576, '\p{	-In_SUP_PUA_B}', "");
+    Expect(0, 1048576, '\p{^	-In_SUP_PUA_B}', "");
+    Expect(0, 1048576, '\P{	-In_SUP_PUA_B}', "");
+    Expect(1, 1048576, '\P{^	-In_SUP_PUA_B}', "");
+    Expect(0, 1, '\p{	-In_SUP_PUA_B}', "");
+    Expect(1, 1, '\p{^	-In_SUP_PUA_B}', "");
+    Expect(1, 1, '\P{	-In_SUP_PUA_B}', "");
+    Expect(0, 1, '\P{^	-In_SUP_PUA_B}', "");
+    Error('\p{/a/Surrogate}');
+    Error('\P{/a/Surrogate}');
     Expect(1, 57343, '\p{surrogate}', "");
     Expect(0, 57343, '\p{^surrogate}', "");
     Expect(0, 57343, '\P{surrogate}', "");
@@ -121369,16 +122593,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 57344, '\p{^surrogate}', "");
     Expect(1, 57344, '\P{surrogate}', "");
     Expect(0, 57344, '\P{^surrogate}', "");
-    Expect(1, 57343, '\p{__Surrogate}', "");
-    Expect(0, 57343, '\p{^__Surrogate}', "");
-    Expect(0, 57343, '\P{__Surrogate}', "");
-    Expect(1, 57343, '\P{^__Surrogate}', "");
-    Expect(0, 57344, '\p{__Surrogate}', "");
-    Expect(1, 57344, '\p{^__Surrogate}', "");
-    Expect(1, 57344, '\P{__Surrogate}', "");
-    Expect(0, 57344, '\P{^__Surrogate}', "");
-    Error('\p{ :=IS_Surrogate}');
-    Error('\P{ :=IS_Surrogate}');
+    Expect(1, 57343, '\p{  SURROGATE}', "");
+    Expect(0, 57343, '\p{^  SURROGATE}', "");
+    Expect(0, 57343, '\P{  SURROGATE}', "");
+    Expect(1, 57343, '\P{^  SURROGATE}', "");
+    Expect(0, 57344, '\p{  SURROGATE}', "");
+    Expect(1, 57344, '\p{^  SURROGATE}', "");
+    Expect(1, 57344, '\P{  SURROGATE}', "");
+    Expect(0, 57344, '\P{^  SURROGATE}', "");
+    Error('\p{/a/ _IS_SURROGATE}');
+    Error('\P{/a/ _IS_SURROGATE}');
     Expect(1, 57343, '\p{issurrogate}', "");
     Expect(0, 57343, '\p{^issurrogate}', "");
     Expect(0, 57343, '\P{issurrogate}', "");
@@ -121387,16 +122611,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 57344, '\p{^issurrogate}', "");
     Expect(1, 57344, '\P{issurrogate}', "");
     Expect(0, 57344, '\P{^issurrogate}', "");
-    Expect(1, 57343, '\p{_Is_surrogate}', "");
-    Expect(0, 57343, '\p{^_Is_surrogate}', "");
-    Expect(0, 57343, '\P{_Is_surrogate}', "");
-    Expect(1, 57343, '\P{^_Is_surrogate}', "");
-    Expect(0, 57344, '\p{_Is_surrogate}', "");
-    Expect(1, 57344, '\p{^_Is_surrogate}', "");
-    Expect(1, 57344, '\P{_Is_surrogate}', "");
-    Expect(0, 57344, '\P{^_Is_surrogate}', "");
-    Error('\p{	/a/Cs}');
-    Error('\P{	/a/Cs}');
+    Expect(1, 57343, '\p{_Is_SURROGATE}', "");
+    Expect(0, 57343, '\p{^_Is_SURROGATE}', "");
+    Expect(0, 57343, '\P{_Is_SURROGATE}', "");
+    Expect(1, 57343, '\P{^_Is_SURROGATE}', "");
+    Expect(0, 57344, '\p{_Is_SURROGATE}', "");
+    Expect(1, 57344, '\p{^_Is_SURROGATE}', "");
+    Expect(1, 57344, '\P{_Is_SURROGATE}', "");
+    Expect(0, 57344, '\P{^_Is_SURROGATE}', "");
+    Error('\p{ CS:=}');
+    Error('\P{ CS:=}');
     Expect(1, 57343, '\p{cs}', "");
     Expect(0, 57343, '\p{^cs}', "");
     Expect(0, 57343, '\P{cs}', "");
@@ -121405,16 +122629,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 57344, '\p{^cs}', "");
     Expect(1, 57344, '\P{cs}', "");
     Expect(0, 57344, '\P{^cs}', "");
-    Expect(1, 57343, '\p{	-cs}', "");
-    Expect(0, 57343, '\p{^	-cs}', "");
-    Expect(0, 57343, '\P{	-cs}', "");
-    Expect(1, 57343, '\P{^	-cs}', "");
-    Expect(0, 57344, '\p{	-cs}', "");
-    Expect(1, 57344, '\p{^	-cs}', "");
-    Expect(1, 57344, '\P{	-cs}', "");
-    Expect(0, 57344, '\P{^	-cs}', "");
-    Error('\p{ _Is_CS:=}');
-    Error('\P{ _Is_CS:=}');
+    Expect(1, 57343, '\p{	 Cs}', "");
+    Expect(0, 57343, '\p{^	 Cs}', "");
+    Expect(0, 57343, '\P{	 Cs}', "");
+    Expect(1, 57343, '\P{^	 Cs}', "");
+    Expect(0, 57344, '\p{	 Cs}', "");
+    Expect(1, 57344, '\p{^	 Cs}', "");
+    Expect(1, 57344, '\P{	 Cs}', "");
+    Expect(0, 57344, '\P{^	 Cs}', "");
+    Error('\p{IS_Cs:=}');
+    Error('\P{IS_Cs:=}');
     Expect(1, 57343, '\p{iscs}', "");
     Expect(0, 57343, '\p{^iscs}', "");
     Expect(0, 57343, '\P{iscs}', "");
@@ -121423,16 +122647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 57344, '\p{^iscs}', "");
     Expect(1, 57344, '\P{iscs}', "");
     Expect(0, 57344, '\P{^iscs}', "");
-    Expect(1, 57343, '\p{__IS_CS}', "");
-    Expect(0, 57343, '\p{^__IS_CS}', "");
-    Expect(0, 57343, '\P{__IS_CS}', "");
-    Expect(1, 57343, '\P{^__IS_CS}', "");
-    Expect(0, 57344, '\p{__IS_CS}', "");
-    Expect(1, 57344, '\p{^__IS_CS}', "");
-    Expect(1, 57344, '\P{__IS_CS}', "");
-    Expect(0, 57344, '\P{^__IS_CS}', "");
-    Error('\p{/a/-_Sutton_SignWriting}');
-    Error('\P{/a/-_Sutton_SignWriting}');
+    Expect(1, 57343, '\p{	_is_CS}', "");
+    Expect(0, 57343, '\p{^	_is_CS}', "");
+    Expect(0, 57343, '\P{	_is_CS}', "");
+    Expect(1, 57343, '\P{^	_is_CS}', "");
+    Expect(0, 57344, '\p{	_is_CS}', "");
+    Expect(1, 57344, '\p{^	_is_CS}', "");
+    Expect(1, 57344, '\P{	_is_CS}', "");
+    Expect(0, 57344, '\P{^	_is_CS}', "");
+    Error('\p{-:=SUTTON_SignWriting}');
+    Error('\P{-:=SUTTON_SignWriting}');
     Expect(1, 121519, '\p{suttonsignwriting}', "");
     Expect(0, 121519, '\p{^suttonsignwriting}', "");
     Expect(0, 121519, '\P{suttonsignwriting}', "");
@@ -121441,16 +122665,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^suttonsignwriting}', "");
     Expect(1, 121520, '\P{suttonsignwriting}', "");
     Expect(0, 121520, '\P{^suttonsignwriting}', "");
-    Expect(1, 121519, '\p{ sutton_SignWriting}', "");
-    Expect(0, 121519, '\p{^ sutton_SignWriting}', "");
-    Expect(0, 121519, '\P{ sutton_SignWriting}', "");
-    Expect(1, 121519, '\P{^ sutton_SignWriting}', "");
-    Expect(0, 121520, '\p{ sutton_SignWriting}', "");
-    Expect(1, 121520, '\p{^ sutton_SignWriting}', "");
-    Expect(1, 121520, '\P{ sutton_SignWriting}', "");
-    Expect(0, 121520, '\P{^ sutton_SignWriting}', "");
-    Error('\p{/a/	 is_sutton_SignWriting}');
-    Error('\P{/a/	 is_sutton_SignWriting}');
+    Expect(1, 121519, '\p{	_Sutton_SignWriting}', "");
+    Expect(0, 121519, '\p{^	_Sutton_SignWriting}', "");
+    Expect(0, 121519, '\P{	_Sutton_SignWriting}', "");
+    Expect(1, 121519, '\P{^	_Sutton_SignWriting}', "");
+    Expect(0, 121520, '\p{	_Sutton_SignWriting}', "");
+    Expect(1, 121520, '\p{^	_Sutton_SignWriting}', "");
+    Expect(1, 121520, '\P{	_Sutton_SignWriting}', "");
+    Expect(0, 121520, '\P{^	_Sutton_SignWriting}', "");
+    Error('\p{/a/is_SUTTON_SignWriting}');
+    Error('\P{/a/is_SUTTON_SignWriting}');
     Expect(1, 121519, '\p{issuttonsignwriting}', "");
     Expect(0, 121519, '\p{^issuttonsignwriting}', "");
     Expect(0, 121519, '\P{issuttonsignwriting}', "");
@@ -121459,16 +122683,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^issuttonsignwriting}', "");
     Expect(1, 121520, '\P{issuttonsignwriting}', "");
     Expect(0, 121520, '\P{^issuttonsignwriting}', "");
-    Expect(1, 121519, '\p{	is_Sutton_SignWriting}', "");
-    Expect(0, 121519, '\p{^	is_Sutton_SignWriting}', "");
-    Expect(0, 121519, '\P{	is_Sutton_SignWriting}', "");
-    Expect(1, 121519, '\P{^	is_Sutton_SignWriting}', "");
-    Expect(0, 121520, '\p{	is_Sutton_SignWriting}', "");
-    Expect(1, 121520, '\p{^	is_Sutton_SignWriting}', "");
-    Expect(1, 121520, '\P{	is_Sutton_SignWriting}', "");
-    Expect(0, 121520, '\P{^	is_Sutton_SignWriting}', "");
-    Error('\p{_-in_Sutton_SIGNWRITING:=}');
-    Error('\P{_-in_Sutton_SIGNWRITING:=}');
+    Expect(1, 121519, '\p{	_IS_SUTTON_SignWriting}', "");
+    Expect(0, 121519, '\p{^	_IS_SUTTON_SignWriting}', "");
+    Expect(0, 121519, '\P{	_IS_SUTTON_SignWriting}', "");
+    Expect(1, 121519, '\P{^	_IS_SUTTON_SignWriting}', "");
+    Expect(0, 121520, '\p{	_IS_SUTTON_SignWriting}', "");
+    Expect(1, 121520, '\p{^	_IS_SUTTON_SignWriting}', "");
+    Expect(1, 121520, '\P{	_IS_SUTTON_SignWriting}', "");
+    Expect(0, 121520, '\P{^	_IS_SUTTON_SignWriting}', "");
+    Error('\p{:= _In_Sutton_SignWriting}');
+    Error('\P{:= _In_Sutton_SignWriting}');
     Expect(1, 121519, '\p{insuttonsignwriting}', "");
     Expect(0, 121519, '\p{^insuttonsignwriting}', "");
     Expect(0, 121519, '\P{insuttonsignwriting}', "");
@@ -121477,16 +122701,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^insuttonsignwriting}', "");
     Expect(1, 121520, '\P{insuttonsignwriting}', "");
     Expect(0, 121520, '\P{^insuttonsignwriting}', "");
-    Expect(1, 121519, '\p{_ In_SUTTON_SignWriting}', "");
-    Expect(0, 121519, '\p{^_ In_SUTTON_SignWriting}', "");
-    Expect(0, 121519, '\P{_ In_SUTTON_SignWriting}', "");
-    Expect(1, 121519, '\P{^_ In_SUTTON_SignWriting}', "");
-    Expect(0, 121520, '\p{_ In_SUTTON_SignWriting}', "");
-    Expect(1, 121520, '\p{^_ In_SUTTON_SignWriting}', "");
-    Expect(1, 121520, '\P{_ In_SUTTON_SignWriting}', "");
-    Expect(0, 121520, '\P{^_ In_SUTTON_SignWriting}', "");
-    Error('\p{/a/ SYLOTI_Nagri}');
-    Error('\P{/a/ SYLOTI_Nagri}');
+    Expect(1, 121519, '\p{-In_SUTTON_SignWriting}', "");
+    Expect(0, 121519, '\p{^-In_SUTTON_SignWriting}', "");
+    Expect(0, 121519, '\P{-In_SUTTON_SignWriting}', "");
+    Expect(1, 121519, '\P{^-In_SUTTON_SignWriting}', "");
+    Expect(0, 121520, '\p{-In_SUTTON_SignWriting}', "");
+    Expect(1, 121520, '\p{^-In_SUTTON_SignWriting}', "");
+    Expect(1, 121520, '\P{-In_SUTTON_SignWriting}', "");
+    Expect(0, 121520, '\P{^-In_SUTTON_SignWriting}', "");
+    Error('\p{/a/	_Syloti_Nagri}');
+    Error('\P{/a/	_Syloti_Nagri}');
     Expect(1, 43052, '\p{sylotinagri}', "");
     Expect(0, 43052, '\p{^sylotinagri}', "");
     Expect(0, 43052, '\P{sylotinagri}', "");
@@ -121495,16 +122719,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43053, '\p{^sylotinagri}', "");
     Expect(1, 43053, '\P{sylotinagri}', "");
     Expect(0, 43053, '\P{^sylotinagri}', "");
-    Expect(1, 43052, '\p{ _SYLOTI_nagri}', "");
-    Expect(0, 43052, '\p{^ _SYLOTI_nagri}', "");
-    Expect(0, 43052, '\P{ _SYLOTI_nagri}', "");
-    Expect(1, 43052, '\P{^ _SYLOTI_nagri}', "");
-    Expect(0, 43053, '\p{ _SYLOTI_nagri}', "");
-    Expect(1, 43053, '\p{^ _SYLOTI_nagri}', "");
-    Expect(1, 43053, '\P{ _SYLOTI_nagri}', "");
-    Expect(0, 43053, '\P{^ _SYLOTI_nagri}', "");
-    Error('\p{ /a/Is_syloti_nagri}');
-    Error('\P{ /a/Is_syloti_nagri}');
+    Expect(1, 43052, '\p{	_syloti_NAGRI}', "");
+    Expect(0, 43052, '\p{^	_syloti_NAGRI}', "");
+    Expect(0, 43052, '\P{	_syloti_NAGRI}', "");
+    Expect(1, 43052, '\P{^	_syloti_NAGRI}', "");
+    Expect(0, 43053, '\p{	_syloti_NAGRI}', "");
+    Expect(1, 43053, '\p{^	_syloti_NAGRI}', "");
+    Expect(1, 43053, '\P{	_syloti_NAGRI}', "");
+    Expect(0, 43053, '\P{^	_syloti_NAGRI}', "");
+    Error('\p{/a/_ IS_Syloti_Nagri}');
+    Error('\P{/a/_ IS_Syloti_Nagri}');
     Expect(1, 43052, '\p{issylotinagri}', "");
     Expect(0, 43052, '\p{^issylotinagri}', "");
     Expect(0, 43052, '\P{issylotinagri}', "");
@@ -121513,16 +122737,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43053, '\p{^issylotinagri}', "");
     Expect(1, 43053, '\P{issylotinagri}', "");
     Expect(0, 43053, '\P{^issylotinagri}', "");
-    Expect(1, 43052, '\p{-	is_syloti_nagri}', "");
-    Expect(0, 43052, '\p{^-	is_syloti_nagri}', "");
-    Expect(0, 43052, '\P{-	is_syloti_nagri}', "");
-    Expect(1, 43052, '\P{^-	is_syloti_nagri}', "");
-    Expect(0, 43053, '\p{-	is_syloti_nagri}', "");
-    Expect(1, 43053, '\p{^-	is_syloti_nagri}', "");
-    Expect(1, 43053, '\P{-	is_syloti_nagri}', "");
-    Expect(0, 43053, '\P{^-	is_syloti_nagri}', "");
-    Error('\p{:= Sylo}');
-    Error('\P{:= Sylo}');
+    Expect(1, 43052, '\p{	Is_Syloti_Nagri}', "");
+    Expect(0, 43052, '\p{^	Is_Syloti_Nagri}', "");
+    Expect(0, 43052, '\P{	Is_Syloti_Nagri}', "");
+    Expect(1, 43052, '\P{^	Is_Syloti_Nagri}', "");
+    Expect(0, 43053, '\p{	Is_Syloti_Nagri}', "");
+    Expect(1, 43053, '\p{^	Is_Syloti_Nagri}', "");
+    Expect(1, 43053, '\P{	Is_Syloti_Nagri}', "");
+    Expect(0, 43053, '\P{^	Is_Syloti_Nagri}', "");
+    Error('\p{:=_Sylo}');
+    Error('\P{:=_Sylo}');
     Expect(1, 43052, '\p{sylo}', "");
     Expect(0, 43052, '\p{^sylo}', "");
     Expect(0, 43052, '\P{sylo}', "");
@@ -121531,16 +122755,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43053, '\p{^sylo}', "");
     Expect(1, 43053, '\P{sylo}', "");
     Expect(0, 43053, '\P{^sylo}', "");
-    Expect(1, 43052, '\p{--Sylo}', "");
-    Expect(0, 43052, '\p{^--Sylo}', "");
-    Expect(0, 43052, '\P{--Sylo}', "");
-    Expect(1, 43052, '\P{^--Sylo}', "");
-    Expect(0, 43053, '\p{--Sylo}', "");
-    Expect(1, 43053, '\p{^--Sylo}', "");
-    Expect(1, 43053, '\P{--Sylo}', "");
-    Expect(0, 43053, '\P{^--Sylo}', "");
-    Error('\p{:=-_is_Sylo}');
-    Error('\P{:=-_is_Sylo}');
+    Expect(1, 43052, '\p{ SYLO}', "");
+    Expect(0, 43052, '\p{^ SYLO}', "");
+    Expect(0, 43052, '\P{ SYLO}', "");
+    Expect(1, 43052, '\P{^ SYLO}', "");
+    Expect(0, 43053, '\p{ SYLO}', "");
+    Expect(1, 43053, '\p{^ SYLO}', "");
+    Expect(1, 43053, '\P{ SYLO}', "");
+    Expect(0, 43053, '\P{^ SYLO}', "");
+    Error('\p{	Is_SYLO/a/}');
+    Error('\P{	Is_SYLO/a/}');
     Expect(1, 43052, '\p{issylo}', "");
     Expect(0, 43052, '\p{^issylo}', "");
     Expect(0, 43052, '\P{issylo}', "");
@@ -121549,16 +122773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43053, '\p{^issylo}', "");
     Expect(1, 43053, '\P{issylo}', "");
     Expect(0, 43053, '\P{^issylo}', "");
-    Expect(1, 43052, '\p{	_is_Sylo}', "");
-    Expect(0, 43052, '\p{^	_is_Sylo}', "");
-    Expect(0, 43052, '\P{	_is_Sylo}', "");
-    Expect(1, 43052, '\P{^	_is_Sylo}', "");
-    Expect(0, 43053, '\p{	_is_Sylo}', "");
-    Expect(1, 43053, '\p{^	_is_Sylo}', "");
-    Expect(1, 43053, '\P{	_is_Sylo}', "");
-    Expect(0, 43053, '\P{^	_is_Sylo}', "");
-    Error('\p{:=	Symbol}');
-    Error('\P{:=	Symbol}');
+    Expect(1, 43052, '\p{_	is_Sylo}', "");
+    Expect(0, 43052, '\p{^_	is_Sylo}', "");
+    Expect(0, 43052, '\P{_	is_Sylo}', "");
+    Expect(1, 43052, '\P{^_	is_Sylo}', "");
+    Expect(0, 43053, '\p{_	is_Sylo}', "");
+    Expect(1, 43053, '\p{^_	is_Sylo}', "");
+    Expect(1, 43053, '\P{_	is_Sylo}', "");
+    Expect(0, 43053, '\P{^_	is_Sylo}', "");
+    Error('\p{:= 	Symbol}');
+    Error('\P{:= 	Symbol}');
     Expect(1, 129994, '\p{symbol}', "");
     Expect(0, 129994, '\p{^symbol}', "");
     Expect(0, 129994, '\P{symbol}', "");
@@ -121567,16 +122791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129995, '\p{^symbol}', "");
     Expect(1, 129995, '\P{symbol}', "");
     Expect(0, 129995, '\P{^symbol}', "");
-    Expect(1, 129994, '\p{-_Symbol}', "");
-    Expect(0, 129994, '\p{^-_Symbol}', "");
-    Expect(0, 129994, '\P{-_Symbol}', "");
-    Expect(1, 129994, '\P{^-_Symbol}', "");
-    Expect(0, 129995, '\p{-_Symbol}', "");
-    Expect(1, 129995, '\p{^-_Symbol}', "");
-    Expect(1, 129995, '\P{-_Symbol}', "");
-    Expect(0, 129995, '\P{^-_Symbol}', "");
-    Error('\p{- Is_symbol/a/}');
-    Error('\P{- Is_symbol/a/}');
+    Expect(1, 129994, '\p{_	Symbol}', "");
+    Expect(0, 129994, '\p{^_	Symbol}', "");
+    Expect(0, 129994, '\P{_	Symbol}', "");
+    Expect(1, 129994, '\P{^_	Symbol}', "");
+    Expect(0, 129995, '\p{_	Symbol}', "");
+    Expect(1, 129995, '\p{^_	Symbol}', "");
+    Expect(1, 129995, '\P{_	Symbol}', "");
+    Expect(0, 129995, '\P{^_	Symbol}', "");
+    Error('\p{ _Is_Symbol:=}');
+    Error('\P{ _Is_Symbol:=}');
     Expect(1, 129994, '\p{issymbol}', "");
     Expect(0, 129994, '\p{^issymbol}', "");
     Expect(0, 129994, '\P{issymbol}', "");
@@ -121585,16 +122809,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129995, '\p{^issymbol}', "");
     Expect(1, 129995, '\P{issymbol}', "");
     Expect(0, 129995, '\P{^issymbol}', "");
-    Expect(1, 129994, '\p{_ IS_Symbol}', "");
-    Expect(0, 129994, '\p{^_ IS_Symbol}', "");
-    Expect(0, 129994, '\P{_ IS_Symbol}', "");
-    Expect(1, 129994, '\P{^_ IS_Symbol}', "");
-    Expect(0, 129995, '\p{_ IS_Symbol}', "");
-    Expect(1, 129995, '\p{^_ IS_Symbol}', "");
-    Expect(1, 129995, '\P{_ IS_Symbol}', "");
-    Expect(0, 129995, '\P{^_ IS_Symbol}', "");
-    Error('\p{:=	s}');
-    Error('\P{:=	s}');
+    Expect(1, 129994, '\p{	is_SYMBOL}', "");
+    Expect(0, 129994, '\p{^	is_SYMBOL}', "");
+    Expect(0, 129994, '\P{	is_SYMBOL}', "");
+    Expect(1, 129994, '\P{^	is_SYMBOL}', "");
+    Expect(0, 129995, '\p{	is_SYMBOL}', "");
+    Expect(1, 129995, '\p{^	is_SYMBOL}', "");
+    Expect(1, 129995, '\P{	is_SYMBOL}', "");
+    Expect(0, 129995, '\P{^	is_SYMBOL}', "");
+    Error('\p{/a/  S}');
+    Error('\P{/a/  S}');
     Expect(1, 129994, '\p{s}', "");
     Expect(0, 129994, '\p{^s}', "");
     Expect(0, 129994, '\P{s}', "");
@@ -121603,16 +122827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129995, '\p{^s}', "");
     Expect(1, 129995, '\P{s}', "");
     Expect(0, 129995, '\P{^s}', "");
-    Expect(1, 129994, '\p{	_S}', "");
-    Expect(0, 129994, '\p{^	_S}', "");
-    Expect(0, 129994, '\P{	_S}', "");
-    Expect(1, 129994, '\P{^	_S}', "");
-    Expect(0, 129995, '\p{	_S}', "");
-    Expect(1, 129995, '\p{^	_S}', "");
-    Expect(1, 129995, '\P{	_S}', "");
-    Expect(0, 129995, '\P{^	_S}', "");
-    Error('\p{_	IS_S:=}');
-    Error('\P{_	IS_S:=}');
+    Expect(1, 129994, '\p{--s}', "");
+    Expect(0, 129994, '\p{^--s}', "");
+    Expect(0, 129994, '\P{--s}', "");
+    Expect(1, 129994, '\P{^--s}', "");
+    Expect(0, 129995, '\p{--s}', "");
+    Expect(1, 129995, '\p{^--s}', "");
+    Expect(1, 129995, '\P{--s}', "");
+    Expect(0, 129995, '\P{^--s}', "");
+    Error('\p{__Is_S:=}');
+    Error('\P{__Is_S:=}');
     Expect(1, 129994, '\p{iss}', "");
     Expect(0, 129994, '\p{^iss}', "");
     Expect(0, 129994, '\P{iss}', "");
@@ -121621,16 +122845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129995, '\p{^iss}', "");
     Expect(1, 129995, '\P{iss}', "");
     Expect(0, 129995, '\P{^iss}', "");
-    Expect(1, 129994, '\p{	 is_s}', "");
-    Expect(0, 129994, '\p{^	 is_s}', "");
-    Expect(0, 129994, '\P{	 is_s}', "");
-    Expect(1, 129994, '\P{^	 is_s}', "");
-    Expect(0, 129995, '\p{	 is_s}', "");
-    Expect(1, 129995, '\p{^	 is_s}', "");
-    Expect(1, 129995, '\P{	 is_s}', "");
-    Expect(0, 129995, '\P{^	 is_s}', "");
-    Error('\p{	/a/symbols_and_Pictographs_Extended_A}');
-    Error('\P{	/a/symbols_and_Pictographs_Extended_A}');
+    Expect(1, 129994, '\p{-is_s}', "");
+    Expect(0, 129994, '\p{^-is_s}', "");
+    Expect(0, 129994, '\P{-is_s}', "");
+    Expect(1, 129994, '\P{^-is_s}', "");
+    Expect(0, 129995, '\p{-is_s}', "");
+    Expect(1, 129995, '\p{^-is_s}', "");
+    Expect(1, 129995, '\P{-is_s}', "");
+    Expect(0, 129995, '\P{^-is_s}', "");
+    Error('\p{_ Symbols_AND_Pictographs_EXTENDED_A:=}');
+    Error('\P{_ Symbols_AND_Pictographs_EXTENDED_A:=}');
     Expect(1, 129791, '\p{symbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\p{^symbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\P{symbolsandpictographsextendeda}', "");
@@ -121639,16 +122863,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129792, '\p{^symbolsandpictographsextendeda}', "");
     Expect(1, 129792, '\P{symbolsandpictographsextendeda}', "");
     Expect(0, 129792, '\P{^symbolsandpictographsextendeda}', "");
-    Expect(1, 129791, '\p{__Symbols_And_Pictographs_extended_A}', "");
-    Expect(0, 129791, '\p{^__Symbols_And_Pictographs_extended_A}', "");
-    Expect(0, 129791, '\P{__Symbols_And_Pictographs_extended_A}', "");
-    Expect(1, 129791, '\P{^__Symbols_And_Pictographs_extended_A}', "");
-    Expect(0, 129792, '\p{__Symbols_And_Pictographs_extended_A}', "");
-    Expect(1, 129792, '\p{^__Symbols_And_Pictographs_extended_A}', "");
-    Expect(1, 129792, '\P{__Symbols_And_Pictographs_extended_A}', "");
-    Expect(0, 129792, '\P{^__Symbols_And_Pictographs_extended_A}', "");
-    Error('\p{:=	is_symbols_and_PICTOGRAPHS_Extended_A}');
-    Error('\P{:=	is_symbols_and_PICTOGRAPHS_Extended_A}');
+    Expect(1, 129791, '\p{_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(0, 129791, '\p{^_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(0, 129791, '\P{_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(1, 129791, '\P{^_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(0, 129792, '\p{_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(1, 129792, '\p{^_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(1, 129792, '\P{_ symbols_And_Pictographs_Extended_a}', "");
+    Expect(0, 129792, '\P{^_ symbols_And_Pictographs_Extended_a}', "");
+    Error('\p{/a/	-IS_SYMBOLS_and_Pictographs_Extended_A}');
+    Error('\P{/a/	-IS_SYMBOLS_and_Pictographs_Extended_A}');
     Expect(1, 129791, '\p{issymbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\p{^issymbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\P{issymbolsandpictographsextendeda}', "");
@@ -121657,16 +122881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129792, '\p{^issymbolsandpictographsextendeda}', "");
     Expect(1, 129792, '\P{issymbolsandpictographsextendeda}', "");
     Expect(0, 129792, '\P{^issymbolsandpictographsextendeda}', "");
-    Expect(1, 129791, '\p{--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(0, 129791, '\p{^--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(0, 129791, '\P{--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(1, 129791, '\P{^--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(0, 129792, '\p{--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(1, 129792, '\p{^--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(1, 129792, '\P{--IS_symbols_AND_Pictographs_extended_a}', "");
-    Expect(0, 129792, '\P{^--IS_symbols_AND_Pictographs_extended_a}', "");
-    Error('\p{_/a/In_Symbols_and_pictographs_EXTENDED_A}');
-    Error('\P{_/a/In_Symbols_and_pictographs_EXTENDED_A}');
+    Expect(1, 129791, '\p{	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(0, 129791, '\p{^	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(0, 129791, '\P{	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(1, 129791, '\P{^	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(0, 129792, '\p{	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(1, 129792, '\p{^	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(1, 129792, '\P{	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Expect(0, 129792, '\P{^	_is_symbols_And_PICTOGRAPHS_Extended_A}', "");
+    Error('\p{ /a/In_SYMBOLS_And_Pictographs_extended_A}');
+    Error('\P{ /a/In_SYMBOLS_And_Pictographs_extended_A}');
     Expect(1, 129791, '\p{insymbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\p{^insymbolsandpictographsextendeda}', "");
     Expect(0, 129791, '\P{insymbolsandpictographsextendeda}', "");
@@ -121675,16 +122899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129792, '\p{^insymbolsandpictographsextendeda}', "");
     Expect(1, 129792, '\P{insymbolsandpictographsextendeda}', "");
     Expect(0, 129792, '\P{^insymbolsandpictographsextendeda}', "");
-    Expect(1, 129791, '\p{ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(0, 129791, '\p{^ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(0, 129791, '\P{ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(1, 129791, '\P{^ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(0, 129792, '\p{ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(1, 129792, '\p{^ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(1, 129792, '\P{ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Expect(0, 129792, '\P{^ in_SYMBOLS_and_pictographs_EXTENDED_A}', "");
-    Error('\p{-/a/SYMBOLS_And_PICTOGRAPHS_EXT_A}');
-    Error('\P{-/a/SYMBOLS_And_PICTOGRAPHS_EXT_A}');
+    Expect(1, 129791, '\p{- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(0, 129791, '\p{^- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(0, 129791, '\P{- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(1, 129791, '\P{^- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(0, 129792, '\p{- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(1, 129792, '\p{^- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(1, 129792, '\P{- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Expect(0, 129792, '\P{^- In_Symbols_and_pictographs_EXTENDED_A}', "");
+    Error('\p{/a/Symbols_And_Pictographs_Ext_A}');
+    Error('\P{/a/Symbols_And_Pictographs_Ext_A}');
     Expect(1, 129791, '\p{symbolsandpictographsexta}', "");
     Expect(0, 129791, '\p{^symbolsandpictographsexta}', "");
     Expect(0, 129791, '\P{symbolsandpictographsexta}', "");
@@ -121693,16 +122917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129792, '\p{^symbolsandpictographsexta}', "");
     Expect(1, 129792, '\P{symbolsandpictographsexta}', "");
     Expect(0, 129792, '\P{^symbolsandpictographsexta}', "");
-    Expect(1, 129791, '\p{		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(0, 129791, '\p{^		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(0, 129791, '\P{		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(1, 129791, '\P{^		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(0, 129792, '\p{		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(1, 129792, '\p{^		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(1, 129792, '\P{		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Expect(0, 129792, '\P{^		symbols_And_PICTOGRAPHS_Ext_A}', "");
-    Error('\p{	/a/Is_Symbols_And_pictographs_ext_A}');
-    Error('\P{	/a/Is_Symbols_And_pictographs_ext_A}');
+    Expect(1, 129791, '\p{  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(0, 129791, '\p{^  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(0, 129791, '\P{  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(1, 129791, '\P{^  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(0, 129792, '\p{  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(1, 129792, '\p{^  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(1, 129792, '\P{  Symbols_And_Pictographs_EXT_A}', "");
+    Expect(0, 129792, '\P{^  Symbols_And_Pictographs_EXT_A}', "");
+    Error('\p{:=	Is_symbols_and_Pictographs_Ext_A}');
+    Error('\P{:=	Is_symbols_and_Pictographs_Ext_A}');
     Expect(1, 129791, '\p{issymbolsandpictographsexta}', "");
     Expect(0, 129791, '\p{^issymbolsandpictographsexta}', "");
     Expect(0, 129791, '\P{issymbolsandpictographsexta}', "");
@@ -121711,16 +122935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129792, '\p{^issymbolsandpictographsexta}', "");
     Expect(1, 129792, '\P{issymbolsandpictographsexta}', "");
     Expect(0, 129792, '\P{^issymbolsandpictographsexta}', "");
-    Expect(1, 129791, '\p{ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(0, 129791, '\p{^ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(0, 129791, '\P{ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(1, 129791, '\P{^ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(0, 129792, '\p{ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(1, 129792, '\p{^ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(1, 129792, '\P{ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Expect(0, 129792, '\P{^ -IS_Symbols_AND_Pictographs_Ext_a}', "");
-    Error('\p{	In_Symbols_And_pictographs_EXT_a/a/}');
-    Error('\P{	In_Symbols_And_pictographs_EXT_a/a/}');
+    Expect(1, 129791, '\p{-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(0, 129791, '\p{^-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(0, 129791, '\P{-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(1, 129791, '\P{^-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(0, 129792, '\p{-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(1, 129792, '\p{^-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(1, 129792, '\P{-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Expect(0, 129792, '\P{^-Is_Symbols_and_PICTOGRAPHS_ext_a}', "");
+    Error('\p{_/a/IN_Symbols_AND_pictographs_Ext_A}');
+    Error('\P{_/a/IN_Symbols_AND_pictographs_Ext_A}');
     Expect(1, 129791, '\p{insymbolsandpictographsexta}', "");
     Expect(0, 129791, '\p{^insymbolsandpictographsexta}', "");
     Expect(0, 129791, '\P{insymbolsandpictographsexta}', "");
@@ -121729,16 +122953,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 129792, '\p{^insymbolsandpictographsexta}', "");
     Expect(1, 129792, '\P{insymbolsandpictographsexta}', "");
     Expect(0, 129792, '\P{^insymbolsandpictographsexta}', "");
-    Expect(1, 129791, '\p{		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(0, 129791, '\p{^		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(0, 129791, '\P{		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(1, 129791, '\P{^		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(0, 129792, '\p{		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(1, 129792, '\p{^		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(1, 129792, '\P{		In_Symbols_And_Pictographs_ext_A}', "");
-    Expect(0, 129792, '\P{^		In_Symbols_And_Pictographs_ext_A}', "");
-    Error('\p{ Symbols_For_Legacy_Computing:=}');
-    Error('\P{ Symbols_For_Legacy_Computing:=}');
+    Expect(1, 129791, '\p{ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(0, 129791, '\p{^ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(0, 129791, '\P{ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(1, 129791, '\P{^ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(0, 129792, '\p{ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(1, 129792, '\p{^ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(1, 129792, '\P{ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Expect(0, 129792, '\P{^ In_SYMBOLS_And_PICTOGRAPHS_Ext_A}', "");
+    Error('\p{ :=symbols_FOR_LEGACY_Computing}');
+    Error('\P{ :=symbols_FOR_LEGACY_Computing}');
     Expect(1, 130047, '\p{symbolsforlegacycomputing}', "");
     Expect(0, 130047, '\p{^symbolsforlegacycomputing}', "");
     Expect(0, 130047, '\P{symbolsforlegacycomputing}', "");
@@ -121747,16 +122971,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130048, '\p{^symbolsforlegacycomputing}', "");
     Expect(1, 130048, '\P{symbolsforlegacycomputing}', "");
     Expect(0, 130048, '\P{^symbolsforlegacycomputing}', "");
-    Expect(1, 130047, '\p{	-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130047, '\p{^	-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130047, '\P{	-Symbols_For_Legacy_Computing}', "");
-    Expect(1, 130047, '\P{^	-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130048, '\p{	-Symbols_For_Legacy_Computing}', "");
-    Expect(1, 130048, '\p{^	-Symbols_For_Legacy_Computing}', "");
-    Expect(1, 130048, '\P{	-Symbols_For_Legacy_Computing}', "");
-    Expect(0, 130048, '\P{^	-Symbols_For_Legacy_Computing}', "");
-    Error('\p{:=Is_SYMBOLS_For_Legacy_COMPUTING}');
-    Error('\P{:=Is_SYMBOLS_For_Legacy_COMPUTING}');
+    Expect(1, 130047, '\p{- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(0, 130047, '\p{^- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(0, 130047, '\P{- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(1, 130047, '\P{^- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(0, 130048, '\p{- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(1, 130048, '\p{^- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(1, 130048, '\P{- Symbols_For_Legacy_COMPUTING}', "");
+    Expect(0, 130048, '\P{^- Symbols_For_Legacy_COMPUTING}', "");
+    Error('\p{	 Is_SYMBOLS_For_legacy_computing:=}');
+    Error('\P{	 Is_SYMBOLS_For_legacy_computing:=}');
     Expect(1, 130047, '\p{issymbolsforlegacycomputing}', "");
     Expect(0, 130047, '\p{^issymbolsforlegacycomputing}', "");
     Expect(0, 130047, '\P{issymbolsforlegacycomputing}', "");
@@ -121765,16 +122989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130048, '\p{^issymbolsforlegacycomputing}', "");
     Expect(1, 130048, '\P{issymbolsforlegacycomputing}', "");
     Expect(0, 130048, '\P{^issymbolsforlegacycomputing}', "");
-    Expect(1, 130047, '\p{-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(0, 130047, '\p{^-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(0, 130047, '\P{-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(1, 130047, '\P{^-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(0, 130048, '\p{-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(1, 130048, '\p{^-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(1, 130048, '\P{-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Expect(0, 130048, '\P{^-Is_SYMBOLS_FOR_legacy_Computing}', "");
-    Error('\p{	:=in_symbols_For_Legacy_Computing}');
-    Error('\P{	:=in_symbols_For_Legacy_Computing}');
+    Expect(1, 130047, '\p{ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(0, 130047, '\p{^ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(0, 130047, '\P{ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(1, 130047, '\P{^ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(0, 130048, '\p{ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(1, 130048, '\p{^ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(1, 130048, '\P{ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Expect(0, 130048, '\P{^ 	Is_SYMBOLS_For_Legacy_COMPUTING}', "");
+    Error('\p{IN_SYMBOLS_For_LEGACY_computing:=}');
+    Error('\P{IN_SYMBOLS_For_LEGACY_computing:=}');
     Expect(1, 130047, '\p{insymbolsforlegacycomputing}', "");
     Expect(0, 130047, '\p{^insymbolsforlegacycomputing}', "");
     Expect(0, 130047, '\P{insymbolsforlegacycomputing}', "");
@@ -121783,16 +123007,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130048, '\p{^insymbolsforlegacycomputing}', "");
     Expect(1, 130048, '\P{insymbolsforlegacycomputing}', "");
     Expect(0, 130048, '\P{^insymbolsforlegacycomputing}', "");
-    Expect(1, 130047, '\p{ In_Symbols_For_legacy_Computing}', "");
-    Expect(0, 130047, '\p{^ In_Symbols_For_legacy_Computing}', "");
-    Expect(0, 130047, '\P{ In_Symbols_For_legacy_Computing}', "");
-    Expect(1, 130047, '\P{^ In_Symbols_For_legacy_Computing}', "");
-    Expect(0, 130048, '\p{ In_Symbols_For_legacy_Computing}', "");
-    Expect(1, 130048, '\p{^ In_Symbols_For_legacy_Computing}', "");
-    Expect(1, 130048, '\P{ In_Symbols_For_legacy_Computing}', "");
-    Expect(0, 130048, '\P{^ In_Symbols_For_legacy_Computing}', "");
-    Error('\p{/a/- Syriac}');
-    Error('\P{/a/- Syriac}');
+    Expect(1, 130047, '\p{		In_Symbols_For_Legacy_Computing}', "");
+    Expect(0, 130047, '\p{^		In_Symbols_For_Legacy_Computing}', "");
+    Expect(0, 130047, '\P{		In_Symbols_For_Legacy_Computing}', "");
+    Expect(1, 130047, '\P{^		In_Symbols_For_Legacy_Computing}', "");
+    Expect(0, 130048, '\p{		In_Symbols_For_Legacy_Computing}', "");
+    Expect(1, 130048, '\p{^		In_Symbols_For_Legacy_Computing}', "");
+    Expect(1, 130048, '\P{		In_Symbols_For_Legacy_Computing}', "");
+    Expect(0, 130048, '\P{^		In_Symbols_For_Legacy_Computing}', "");
+    Error('\p{- SYRIAC/a/}');
+    Error('\P{- SYRIAC/a/}');
     Expect(1, 7674, '\p{syriac}', "");
     Expect(0, 7674, '\p{^syriac}', "");
     Expect(0, 7674, '\P{syriac}', "");
@@ -121801,16 +123025,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7675, '\p{^syriac}', "");
     Expect(1, 7675, '\P{syriac}', "");
     Expect(0, 7675, '\P{^syriac}', "");
-    Expect(1, 7674, '\p{--syriac}', "");
-    Expect(0, 7674, '\p{^--syriac}', "");
-    Expect(0, 7674, '\P{--syriac}', "");
-    Expect(1, 7674, '\P{^--syriac}', "");
-    Expect(0, 7675, '\p{--syriac}', "");
-    Expect(1, 7675, '\p{^--syriac}', "");
-    Expect(1, 7675, '\P{--syriac}', "");
-    Expect(0, 7675, '\P{^--syriac}', "");
-    Error('\p{ -is_SYRIAC/a/}');
-    Error('\P{ -is_SYRIAC/a/}');
+    Expect(1, 7674, '\p{_	syriac}', "");
+    Expect(0, 7674, '\p{^_	syriac}', "");
+    Expect(0, 7674, '\P{_	syriac}', "");
+    Expect(1, 7674, '\P{^_	syriac}', "");
+    Expect(0, 7675, '\p{_	syriac}', "");
+    Expect(1, 7675, '\p{^_	syriac}', "");
+    Expect(1, 7675, '\P{_	syriac}', "");
+    Expect(0, 7675, '\P{^_	syriac}', "");
+    Error('\p{-Is_syriac:=}');
+    Error('\P{-Is_syriac:=}');
     Expect(1, 7674, '\p{issyriac}', "");
     Expect(0, 7674, '\p{^issyriac}', "");
     Expect(0, 7674, '\P{issyriac}', "");
@@ -121819,16 +123043,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7675, '\p{^issyriac}', "");
     Expect(1, 7675, '\P{issyriac}', "");
     Expect(0, 7675, '\P{^issyriac}', "");
-    Expect(1, 7674, '\p{	_is_Syriac}', "");
-    Expect(0, 7674, '\p{^	_is_Syriac}', "");
-    Expect(0, 7674, '\P{	_is_Syriac}', "");
-    Expect(1, 7674, '\P{^	_is_Syriac}', "");
-    Expect(0, 7675, '\p{	_is_Syriac}', "");
-    Expect(1, 7675, '\p{^	_is_Syriac}', "");
-    Expect(1, 7675, '\P{	_is_Syriac}', "");
-    Expect(0, 7675, '\P{^	_is_Syriac}', "");
-    Error('\p{	_SYRC:=}');
-    Error('\P{	_SYRC:=}');
+    Expect(1, 7674, '\p{_ IS_SYRIAC}', "");
+    Expect(0, 7674, '\p{^_ IS_SYRIAC}', "");
+    Expect(0, 7674, '\P{_ IS_SYRIAC}', "");
+    Expect(1, 7674, '\P{^_ IS_SYRIAC}', "");
+    Expect(0, 7675, '\p{_ IS_SYRIAC}', "");
+    Expect(1, 7675, '\p{^_ IS_SYRIAC}', "");
+    Expect(1, 7675, '\P{_ IS_SYRIAC}', "");
+    Expect(0, 7675, '\P{^_ IS_SYRIAC}', "");
+    Error('\p{:=syrc}');
+    Error('\P{:=syrc}');
     Expect(1, 7674, '\p{syrc}', "");
     Expect(0, 7674, '\p{^syrc}', "");
     Expect(0, 7674, '\P{syrc}', "");
@@ -121837,16 +123061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7675, '\p{^syrc}', "");
     Expect(1, 7675, '\P{syrc}', "");
     Expect(0, 7675, '\P{^syrc}', "");
-    Expect(1, 7674, '\p{SYRC}', "");
-    Expect(0, 7674, '\p{^SYRC}', "");
-    Expect(0, 7674, '\P{SYRC}', "");
-    Expect(1, 7674, '\P{^SYRC}', "");
-    Expect(0, 7675, '\p{SYRC}', "");
-    Expect(1, 7675, '\p{^SYRC}', "");
-    Expect(1, 7675, '\P{SYRC}', "");
-    Expect(0, 7675, '\P{^SYRC}', "");
-    Error('\p{_/a/Is_SYRC}');
-    Error('\P{_/a/Is_SYRC}');
+    Expect(1, 7674, '\p{-	Syrc}', "");
+    Expect(0, 7674, '\p{^-	Syrc}', "");
+    Expect(0, 7674, '\P{-	Syrc}', "");
+    Expect(1, 7674, '\P{^-	Syrc}', "");
+    Expect(0, 7675, '\p{-	Syrc}', "");
+    Expect(1, 7675, '\p{^-	Syrc}', "");
+    Expect(1, 7675, '\P{-	Syrc}', "");
+    Expect(0, 7675, '\P{^-	Syrc}', "");
+    Error('\p{ :=Is_Syrc}');
+    Error('\P{ :=Is_Syrc}');
     Expect(1, 7674, '\p{issyrc}', "");
     Expect(0, 7674, '\p{^issyrc}', "");
     Expect(0, 7674, '\P{issyrc}', "");
@@ -121855,16 +123079,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7675, '\p{^issyrc}', "");
     Expect(1, 7675, '\P{issyrc}', "");
     Expect(0, 7675, '\P{^issyrc}', "");
-    Expect(1, 7674, '\p{ _Is_SYRC}', "");
-    Expect(0, 7674, '\p{^ _Is_SYRC}', "");
-    Expect(0, 7674, '\P{ _Is_SYRC}', "");
-    Expect(1, 7674, '\P{^ _Is_SYRC}', "");
-    Expect(0, 7675, '\p{ _Is_SYRC}', "");
-    Expect(1, 7675, '\p{^ _Is_SYRC}', "");
-    Expect(1, 7675, '\P{ _Is_SYRC}', "");
-    Expect(0, 7675, '\P{^ _Is_SYRC}', "");
-    Error('\p{:=	SYRIAC_Supplement}');
-    Error('\P{:=	SYRIAC_Supplement}');
+    Expect(1, 7674, '\p{	is_syrc}', "");
+    Expect(0, 7674, '\p{^	is_syrc}', "");
+    Expect(0, 7674, '\P{	is_syrc}', "");
+    Expect(1, 7674, '\P{^	is_syrc}', "");
+    Expect(0, 7675, '\p{	is_syrc}', "");
+    Expect(1, 7675, '\p{^	is_syrc}', "");
+    Expect(1, 7675, '\P{	is_syrc}', "");
+    Expect(0, 7675, '\P{^	is_syrc}', "");
+    Error('\p{/a/_Syriac_supplement}');
+    Error('\P{/a/_Syriac_supplement}');
     Expect(1, 2159, '\p{syriacsupplement}', "");
     Expect(0, 2159, '\p{^syriacsupplement}', "");
     Expect(0, 2159, '\P{syriacsupplement}', "");
@@ -121873,16 +123097,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2160, '\p{^syriacsupplement}', "");
     Expect(1, 2160, '\P{syriacsupplement}', "");
     Expect(0, 2160, '\P{^syriacsupplement}', "");
-    Expect(1, 2159, '\p{_-Syriac_supplement}', "");
-    Expect(0, 2159, '\p{^_-Syriac_supplement}', "");
-    Expect(0, 2159, '\P{_-Syriac_supplement}', "");
-    Expect(1, 2159, '\P{^_-Syriac_supplement}', "");
-    Expect(0, 2160, '\p{_-Syriac_supplement}', "");
-    Expect(1, 2160, '\p{^_-Syriac_supplement}', "");
-    Expect(1, 2160, '\P{_-Syriac_supplement}', "");
-    Expect(0, 2160, '\P{^_-Syriac_supplement}', "");
-    Error('\p{ /a/is_Syriac_SUPPLEMENT}');
-    Error('\P{ /a/is_Syriac_SUPPLEMENT}');
+    Expect(1, 2159, '\p{-_syriac_Supplement}', "");
+    Expect(0, 2159, '\p{^-_syriac_Supplement}', "");
+    Expect(0, 2159, '\P{-_syriac_Supplement}', "");
+    Expect(1, 2159, '\P{^-_syriac_Supplement}', "");
+    Expect(0, 2160, '\p{-_syriac_Supplement}', "");
+    Expect(1, 2160, '\p{^-_syriac_Supplement}', "");
+    Expect(1, 2160, '\P{-_syriac_Supplement}', "");
+    Expect(0, 2160, '\P{^-_syriac_Supplement}', "");
+    Error('\p{:=_ Is_syriac_Supplement}');
+    Error('\P{:=_ Is_syriac_Supplement}');
     Expect(1, 2159, '\p{issyriacsupplement}', "");
     Expect(0, 2159, '\p{^issyriacsupplement}', "");
     Expect(0, 2159, '\P{issyriacsupplement}', "");
@@ -121891,16 +123115,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2160, '\p{^issyriacsupplement}', "");
     Expect(1, 2160, '\P{issyriacsupplement}', "");
     Expect(0, 2160, '\P{^issyriacsupplement}', "");
-    Expect(1, 2159, '\p{--is_Syriac_Supplement}', "");
-    Expect(0, 2159, '\p{^--is_Syriac_Supplement}', "");
-    Expect(0, 2159, '\P{--is_Syriac_Supplement}', "");
-    Expect(1, 2159, '\P{^--is_Syriac_Supplement}', "");
-    Expect(0, 2160, '\p{--is_Syriac_Supplement}', "");
-    Expect(1, 2160, '\p{^--is_Syriac_Supplement}', "");
-    Expect(1, 2160, '\P{--is_Syriac_Supplement}', "");
-    Expect(0, 2160, '\P{^--is_Syriac_Supplement}', "");
-    Error('\p{/a/in_syriac_Supplement}');
-    Error('\P{/a/in_syriac_Supplement}');
+    Expect(1, 2159, '\p{	is_syriac_SUPPLEMENT}', "");
+    Expect(0, 2159, '\p{^	is_syriac_SUPPLEMENT}', "");
+    Expect(0, 2159, '\P{	is_syriac_SUPPLEMENT}', "");
+    Expect(1, 2159, '\P{^	is_syriac_SUPPLEMENT}', "");
+    Expect(0, 2160, '\p{	is_syriac_SUPPLEMENT}', "");
+    Expect(1, 2160, '\p{^	is_syriac_SUPPLEMENT}', "");
+    Expect(1, 2160, '\P{	is_syriac_SUPPLEMENT}', "");
+    Expect(0, 2160, '\P{^	is_syriac_SUPPLEMENT}', "");
+    Error('\p{:=  IN_Syriac_Supplement}');
+    Error('\P{:=  IN_Syriac_Supplement}');
     Expect(1, 2159, '\p{insyriacsupplement}', "");
     Expect(0, 2159, '\p{^insyriacsupplement}', "");
     Expect(0, 2159, '\P{insyriacsupplement}', "");
@@ -121909,16 +123133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2160, '\p{^insyriacsupplement}', "");
     Expect(1, 2160, '\P{insyriacsupplement}', "");
     Expect(0, 2160, '\P{^insyriacsupplement}', "");
-    Expect(1, 2159, '\p{ _In_SYRIAC_Supplement}', "");
-    Expect(0, 2159, '\p{^ _In_SYRIAC_Supplement}', "");
-    Expect(0, 2159, '\P{ _In_SYRIAC_Supplement}', "");
-    Expect(1, 2159, '\P{^ _In_SYRIAC_Supplement}', "");
-    Expect(0, 2160, '\p{ _In_SYRIAC_Supplement}', "");
-    Expect(1, 2160, '\p{^ _In_SYRIAC_Supplement}', "");
-    Expect(1, 2160, '\P{ _In_SYRIAC_Supplement}', "");
-    Expect(0, 2160, '\P{^ _In_SYRIAC_Supplement}', "");
-    Error('\p{	/a/SYRIAC_sup}');
-    Error('\P{	/a/SYRIAC_sup}');
+    Expect(1, 2159, '\p{- In_SYRIAC_supplement}', "");
+    Expect(0, 2159, '\p{^- In_SYRIAC_supplement}', "");
+    Expect(0, 2159, '\P{- In_SYRIAC_supplement}', "");
+    Expect(1, 2159, '\P{^- In_SYRIAC_supplement}', "");
+    Expect(0, 2160, '\p{- In_SYRIAC_supplement}', "");
+    Expect(1, 2160, '\p{^- In_SYRIAC_supplement}', "");
+    Expect(1, 2160, '\P{- In_SYRIAC_supplement}', "");
+    Expect(0, 2160, '\P{^- In_SYRIAC_supplement}', "");
+    Error('\p{:= Syriac_Sup}');
+    Error('\P{:= Syriac_Sup}');
     Expect(1, 2159, '\p{syriacsup}', "");
     Expect(0, 2159, '\p{^syriacsup}', "");
     Expect(0, 2159, '\P{syriacsup}', "");
@@ -121927,16 +123151,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2160, '\p{^syriacsup}', "");
     Expect(1, 2160, '\P{syriacsup}', "");
     Expect(0, 2160, '\P{^syriacsup}', "");
-    Expect(1, 2159, '\p{		Syriac_SUP}', "");
-    Expect(0, 2159, '\p{^		Syriac_SUP}', "");
-    Expect(0, 2159, '\P{		Syriac_SUP}', "");
-    Expect(1, 2159, '\P{^		Syriac_SUP}', "");
-    Expect(0, 2160, '\p{		Syriac_SUP}', "");
-    Expect(1, 2160, '\p{^		Syriac_SUP}', "");
-    Expect(1, 2160, '\P{		Syriac_SUP}', "");
-    Expect(0, 2160, '\P{^		Syriac_SUP}', "");
-    Error('\p{ /a/Is_syriac_sup}');
-    Error('\P{ /a/Is_syriac_sup}');
+    Expect(1, 2159, '\p{  Syriac_Sup}', "");
+    Expect(0, 2159, '\p{^  Syriac_Sup}', "");
+    Expect(0, 2159, '\P{  Syriac_Sup}', "");
+    Expect(1, 2159, '\P{^  Syriac_Sup}', "");
+    Expect(0, 2160, '\p{  Syriac_Sup}', "");
+    Expect(1, 2160, '\p{^  Syriac_Sup}', "");
+    Expect(1, 2160, '\P{  Syriac_Sup}', "");
+    Expect(0, 2160, '\P{^  Syriac_Sup}', "");
+    Error('\p{:=	Is_SYRIAC_SUP}');
+    Error('\P{:=	Is_SYRIAC_SUP}');
     Expect(1, 2159, '\p{issyriacsup}', "");
     Expect(0, 2159, '\p{^issyriacsup}', "");
     Expect(0, 2159, '\P{issyriacsup}', "");
@@ -121945,16 +123169,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2160, '\p{^issyriacsup}', "");
     Expect(1, 2160, '\P{issyriacsup}', "");
     Expect(0, 2160, '\P{^issyriacsup}', "");
-    Expect(1, 2159, '\p{_-IS_syriac_Sup}', "");
-    Expect(0, 2159, '\p{^_-IS_syriac_Sup}', "");
-    Expect(0, 2159, '\P{_-IS_syriac_Sup}', "");
-    Expect(1, 2159, '\P{^_-IS_syriac_Sup}', "");
-    Expect(0, 2160, '\p{_-IS_syriac_Sup}', "");
-    Expect(1, 2160, '\p{^_-IS_syriac_Sup}', "");
-    Expect(1, 2160, '\P{_-IS_syriac_Sup}', "");
-    Expect(0, 2160, '\P{^_-IS_syriac_Sup}', "");
-    Error('\p{ In_Syriac_sup/a/}');
-    Error('\P{ In_Syriac_sup/a/}');
+    Expect(1, 2159, '\p{_-is_syriac_sup}', "");
+    Expect(0, 2159, '\p{^_-is_syriac_sup}', "");
+    Expect(0, 2159, '\P{_-is_syriac_sup}', "");
+    Expect(1, 2159, '\P{^_-is_syriac_sup}', "");
+    Expect(0, 2160, '\p{_-is_syriac_sup}', "");
+    Expect(1, 2160, '\p{^_-is_syriac_sup}', "");
+    Expect(1, 2160, '\P{_-is_syriac_sup}', "");
+    Expect(0, 2160, '\P{^_-is_syriac_sup}', "");
+    Error('\p{_ IN_SYRIAC_SUP/a/}');
+    Error('\P{_ IN_SYRIAC_SUP/a/}');
     Expect(1, 2159, '\p{insyriacsup}', "");
     Expect(0, 2159, '\p{^insyriacsup}', "");
     Expect(0, 2159, '\P{insyriacsup}', "");
@@ -121963,16 +123187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2160, '\p{^insyriacsup}', "");
     Expect(1, 2160, '\P{insyriacsup}', "");
     Expect(0, 2160, '\P{^insyriacsup}', "");
-    Expect(1, 2159, '\p{	In_Syriac_SUP}', "");
-    Expect(0, 2159, '\p{^	In_Syriac_SUP}', "");
-    Expect(0, 2159, '\P{	In_Syriac_SUP}', "");
-    Expect(1, 2159, '\P{^	In_Syriac_SUP}', "");
-    Expect(0, 2160, '\p{	In_Syriac_SUP}', "");
-    Expect(1, 2160, '\p{^	In_Syriac_SUP}', "");
-    Expect(1, 2160, '\P{	In_Syriac_SUP}', "");
-    Expect(0, 2160, '\P{^	In_Syriac_SUP}', "");
-    Error('\p{--TAGALOG/a/}');
-    Error('\P{--TAGALOG/a/}');
+    Expect(1, 2159, '\p{-	in_SYRIAC_Sup}', "");
+    Expect(0, 2159, '\p{^-	in_SYRIAC_Sup}', "");
+    Expect(0, 2159, '\P{-	in_SYRIAC_Sup}', "");
+    Expect(1, 2159, '\P{^-	in_SYRIAC_Sup}', "");
+    Expect(0, 2160, '\p{-	in_SYRIAC_Sup}', "");
+    Expect(1, 2160, '\p{^-	in_SYRIAC_Sup}', "");
+    Expect(1, 2160, '\P{-	in_SYRIAC_Sup}', "");
+    Expect(0, 2160, '\P{^-	in_SYRIAC_Sup}', "");
+    Error('\p{/a/_	TAGALOG}');
+    Error('\P{/a/_	TAGALOG}');
     Expect(1, 5942, '\p{tagalog}', "");
     Expect(0, 5942, '\p{^tagalog}', "");
     Expect(0, 5942, '\P{tagalog}', "");
@@ -121981,16 +123205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^tagalog}', "");
     Expect(1, 5943, '\P{tagalog}', "");
     Expect(0, 5943, '\P{^tagalog}', "");
-    Expect(1, 5942, '\p{--Tagalog}', "");
-    Expect(0, 5942, '\p{^--Tagalog}', "");
-    Expect(0, 5942, '\P{--Tagalog}', "");
-    Expect(1, 5942, '\P{^--Tagalog}', "");
-    Expect(0, 5943, '\p{--Tagalog}', "");
-    Expect(1, 5943, '\p{^--Tagalog}', "");
-    Expect(1, 5943, '\P{--Tagalog}', "");
-    Expect(0, 5943, '\P{^--Tagalog}', "");
-    Error('\p{_/a/Is_Tagalog}');
-    Error('\P{_/a/Is_Tagalog}');
+    Expect(1, 5942, '\p{_Tagalog}', "");
+    Expect(0, 5942, '\p{^_Tagalog}', "");
+    Expect(0, 5942, '\P{_Tagalog}', "");
+    Expect(1, 5942, '\P{^_Tagalog}', "");
+    Expect(0, 5943, '\p{_Tagalog}', "");
+    Expect(1, 5943, '\p{^_Tagalog}', "");
+    Expect(1, 5943, '\P{_Tagalog}', "");
+    Expect(0, 5943, '\P{^_Tagalog}', "");
+    Error('\p{:=is_TAGALOG}');
+    Error('\P{:=is_TAGALOG}');
     Expect(1, 5942, '\p{istagalog}', "");
     Expect(0, 5942, '\p{^istagalog}', "");
     Expect(0, 5942, '\P{istagalog}', "");
@@ -121999,16 +123223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^istagalog}', "");
     Expect(1, 5943, '\P{istagalog}', "");
     Expect(0, 5943, '\P{^istagalog}', "");
-    Expect(1, 5942, '\p{  IS_Tagalog}', "");
-    Expect(0, 5942, '\p{^  IS_Tagalog}', "");
-    Expect(0, 5942, '\P{  IS_Tagalog}', "");
-    Expect(1, 5942, '\P{^  IS_Tagalog}', "");
-    Expect(0, 5943, '\p{  IS_Tagalog}', "");
-    Expect(1, 5943, '\p{^  IS_Tagalog}', "");
-    Expect(1, 5943, '\P{  IS_Tagalog}', "");
-    Expect(0, 5943, '\P{^  IS_Tagalog}', "");
-    Error('\p{_/a/Tglg}');
-    Error('\P{_/a/Tglg}');
+    Expect(1, 5942, '\p{  IS_TAGALOG}', "");
+    Expect(0, 5942, '\p{^  IS_TAGALOG}', "");
+    Expect(0, 5942, '\P{  IS_TAGALOG}', "");
+    Expect(1, 5942, '\P{^  IS_TAGALOG}', "");
+    Expect(0, 5943, '\p{  IS_TAGALOG}', "");
+    Expect(1, 5943, '\p{^  IS_TAGALOG}', "");
+    Expect(1, 5943, '\P{  IS_TAGALOG}', "");
+    Expect(0, 5943, '\P{^  IS_TAGALOG}', "");
+    Error('\p{_TGLG:=}');
+    Error('\P{_TGLG:=}');
     Expect(1, 5942, '\p{tglg}', "");
     Expect(0, 5942, '\p{^tglg}', "");
     Expect(0, 5942, '\P{tglg}', "");
@@ -122017,16 +123241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^tglg}', "");
     Expect(1, 5943, '\P{tglg}', "");
     Expect(0, 5943, '\P{^tglg}', "");
-    Expect(1, 5942, '\p{		TGLG}', "");
-    Expect(0, 5942, '\p{^		TGLG}', "");
-    Expect(0, 5942, '\P{		TGLG}', "");
-    Expect(1, 5942, '\P{^		TGLG}', "");
-    Expect(0, 5943, '\p{		TGLG}', "");
-    Expect(1, 5943, '\p{^		TGLG}', "");
-    Expect(1, 5943, '\P{		TGLG}', "");
-    Expect(0, 5943, '\P{^		TGLG}', "");
-    Error('\p{/a/	Is_Tglg}');
-    Error('\P{/a/	Is_Tglg}');
+    Expect(1, 5942, '\p{ 	tglg}', "");
+    Expect(0, 5942, '\p{^ 	tglg}', "");
+    Expect(0, 5942, '\P{ 	tglg}', "");
+    Expect(1, 5942, '\P{^ 	tglg}', "");
+    Expect(0, 5943, '\p{ 	tglg}', "");
+    Expect(1, 5943, '\p{^ 	tglg}', "");
+    Expect(1, 5943, '\P{ 	tglg}', "");
+    Expect(0, 5943, '\P{^ 	tglg}', "");
+    Error('\p{:=_	Is_Tglg}');
+    Error('\P{:=_	Is_Tglg}');
     Expect(1, 5942, '\p{istglg}', "");
     Expect(0, 5942, '\p{^istglg}', "");
     Expect(0, 5942, '\P{istglg}', "");
@@ -122035,16 +123259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^istglg}', "");
     Expect(1, 5943, '\P{istglg}', "");
     Expect(0, 5943, '\P{^istglg}', "");
-    Expect(1, 5942, '\p{ IS_TGLG}', "");
-    Expect(0, 5942, '\p{^ IS_TGLG}', "");
-    Expect(0, 5942, '\P{ IS_TGLG}', "");
-    Expect(1, 5942, '\P{^ IS_TGLG}', "");
-    Expect(0, 5943, '\p{ IS_TGLG}', "");
-    Expect(1, 5943, '\p{^ IS_TGLG}', "");
-    Expect(1, 5943, '\P{ IS_TGLG}', "");
-    Expect(0, 5943, '\P{^ IS_TGLG}', "");
-    Error('\p{-	TAGBANWA/a/}');
-    Error('\P{-	TAGBANWA/a/}');
+    Expect(1, 5942, '\p{ 	Is_tglg}', "");
+    Expect(0, 5942, '\p{^ 	Is_tglg}', "");
+    Expect(0, 5942, '\P{ 	Is_tglg}', "");
+    Expect(1, 5942, '\P{^ 	Is_tglg}', "");
+    Expect(0, 5943, '\p{ 	Is_tglg}', "");
+    Expect(1, 5943, '\p{^ 	Is_tglg}', "");
+    Expect(1, 5943, '\P{ 	Is_tglg}', "");
+    Expect(0, 5943, '\P{^ 	Is_tglg}', "");
+    Error('\p{:=-	tagbanwa}');
+    Error('\P{:=-	tagbanwa}');
     Expect(1, 6003, '\p{tagbanwa}', "");
     Expect(0, 6003, '\p{^tagbanwa}', "");
     Expect(0, 6003, '\P{tagbanwa}', "");
@@ -122053,16 +123277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^tagbanwa}', "");
     Expect(1, 6004, '\P{tagbanwa}', "");
     Expect(0, 6004, '\P{^tagbanwa}', "");
-    Expect(1, 6003, '\p{	Tagbanwa}', "");
-    Expect(0, 6003, '\p{^	Tagbanwa}', "");
-    Expect(0, 6003, '\P{	Tagbanwa}', "");
-    Expect(1, 6003, '\P{^	Tagbanwa}', "");
-    Expect(0, 6004, '\p{	Tagbanwa}', "");
-    Expect(1, 6004, '\p{^	Tagbanwa}', "");
-    Expect(1, 6004, '\P{	Tagbanwa}', "");
-    Expect(0, 6004, '\P{^	Tagbanwa}', "");
-    Error('\p{/a/Is_Tagbanwa}');
-    Error('\P{/a/Is_Tagbanwa}');
+    Expect(1, 6003, '\p{ -TAGBANWA}', "");
+    Expect(0, 6003, '\p{^ -TAGBANWA}', "");
+    Expect(0, 6003, '\P{ -TAGBANWA}', "");
+    Expect(1, 6003, '\P{^ -TAGBANWA}', "");
+    Expect(0, 6004, '\p{ -TAGBANWA}', "");
+    Expect(1, 6004, '\p{^ -TAGBANWA}', "");
+    Expect(1, 6004, '\P{ -TAGBANWA}', "");
+    Expect(0, 6004, '\P{^ -TAGBANWA}', "");
+    Error('\p{-/a/IS_Tagbanwa}');
+    Error('\P{-/a/IS_Tagbanwa}');
     Expect(1, 6003, '\p{istagbanwa}', "");
     Expect(0, 6003, '\p{^istagbanwa}', "");
     Expect(0, 6003, '\P{istagbanwa}', "");
@@ -122071,16 +123295,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^istagbanwa}', "");
     Expect(1, 6004, '\P{istagbanwa}', "");
     Expect(0, 6004, '\P{^istagbanwa}', "");
-    Expect(1, 6003, '\p{ -Is_Tagbanwa}', "");
-    Expect(0, 6003, '\p{^ -Is_Tagbanwa}', "");
-    Expect(0, 6003, '\P{ -Is_Tagbanwa}', "");
-    Expect(1, 6003, '\P{^ -Is_Tagbanwa}', "");
-    Expect(0, 6004, '\p{ -Is_Tagbanwa}', "");
-    Expect(1, 6004, '\p{^ -Is_Tagbanwa}', "");
-    Expect(1, 6004, '\P{ -Is_Tagbanwa}', "");
-    Expect(0, 6004, '\P{^ -Is_Tagbanwa}', "");
-    Error('\p{/a/tagb}');
-    Error('\P{/a/tagb}');
+    Expect(1, 6003, '\p{_ is_TAGBANWA}', "");
+    Expect(0, 6003, '\p{^_ is_TAGBANWA}', "");
+    Expect(0, 6003, '\P{_ is_TAGBANWA}', "");
+    Expect(1, 6003, '\P{^_ is_TAGBANWA}', "");
+    Expect(0, 6004, '\p{_ is_TAGBANWA}', "");
+    Expect(1, 6004, '\p{^_ is_TAGBANWA}', "");
+    Expect(1, 6004, '\P{_ is_TAGBANWA}', "");
+    Expect(0, 6004, '\P{^_ is_TAGBANWA}', "");
+    Error('\p{_/a/TAGB}');
+    Error('\P{_/a/TAGB}');
     Expect(1, 6003, '\p{tagb}', "");
     Expect(0, 6003, '\p{^tagb}', "");
     Expect(0, 6003, '\P{tagb}', "");
@@ -122089,16 +123313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^tagb}', "");
     Expect(1, 6004, '\P{tagb}', "");
     Expect(0, 6004, '\P{^tagb}', "");
-    Expect(1, 6003, '\p{_-tagb}', "");
-    Expect(0, 6003, '\p{^_-tagb}', "");
-    Expect(0, 6003, '\P{_-tagb}', "");
-    Expect(1, 6003, '\P{^_-tagb}', "");
-    Expect(0, 6004, '\p{_-tagb}', "");
-    Expect(1, 6004, '\p{^_-tagb}', "");
-    Expect(1, 6004, '\P{_-tagb}', "");
-    Expect(0, 6004, '\P{^_-tagb}', "");
-    Error('\p{ 	Is_TAGB/a/}');
-    Error('\P{ 	Is_TAGB/a/}');
+    Expect(1, 6003, '\p{-	Tagb}', "");
+    Expect(0, 6003, '\p{^-	Tagb}', "");
+    Expect(0, 6003, '\P{-	Tagb}', "");
+    Expect(1, 6003, '\P{^-	Tagb}', "");
+    Expect(0, 6004, '\p{-	Tagb}', "");
+    Expect(1, 6004, '\p{^-	Tagb}', "");
+    Expect(1, 6004, '\P{-	Tagb}', "");
+    Expect(0, 6004, '\P{^-	Tagb}', "");
+    Error('\p{/a/IS_Tagb}');
+    Error('\P{/a/IS_Tagb}');
     Expect(1, 6003, '\p{istagb}', "");
     Expect(0, 6003, '\p{^istagb}', "");
     Expect(0, 6003, '\P{istagb}', "");
@@ -122107,16 +123331,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^istagb}', "");
     Expect(1, 6004, '\P{istagb}', "");
     Expect(0, 6004, '\P{^istagb}', "");
-    Expect(1, 6003, '\p{-	IS_tagb}', "");
-    Expect(0, 6003, '\p{^-	IS_tagb}', "");
-    Expect(0, 6003, '\P{-	IS_tagb}', "");
-    Expect(1, 6003, '\P{^-	IS_tagb}', "");
-    Expect(0, 6004, '\p{-	IS_tagb}', "");
-    Expect(1, 6004, '\p{^-	IS_tagb}', "");
-    Expect(1, 6004, '\P{-	IS_tagb}', "");
-    Expect(0, 6004, '\P{^-	IS_tagb}', "");
-    Error('\p{/a/ _Tags}');
-    Error('\P{/a/ _Tags}');
+    Expect(1, 6003, '\p{-	Is_tagb}', "");
+    Expect(0, 6003, '\p{^-	Is_tagb}', "");
+    Expect(0, 6003, '\P{-	Is_tagb}', "");
+    Expect(1, 6003, '\P{^-	Is_tagb}', "");
+    Expect(0, 6004, '\p{-	Is_tagb}', "");
+    Expect(1, 6004, '\p{^-	Is_tagb}', "");
+    Expect(1, 6004, '\P{-	Is_tagb}', "");
+    Expect(0, 6004, '\P{^-	Is_tagb}', "");
+    Error('\p{ -Tags:=}');
+    Error('\P{ -Tags:=}');
     Expect(1, 917631, '\p{tags}', "");
     Expect(0, 917631, '\p{^tags}', "");
     Expect(0, 917631, '\P{tags}', "");
@@ -122125,16 +123349,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917632, '\p{^tags}', "");
     Expect(1, 917632, '\P{tags}', "");
     Expect(0, 917632, '\P{^tags}', "");
-    Expect(1, 917631, '\p{-	Tags}', "");
-    Expect(0, 917631, '\p{^-	Tags}', "");
-    Expect(0, 917631, '\P{-	Tags}', "");
-    Expect(1, 917631, '\P{^-	Tags}', "");
-    Expect(0, 917632, '\p{-	Tags}', "");
-    Expect(1, 917632, '\p{^-	Tags}', "");
-    Expect(1, 917632, '\P{-	Tags}', "");
-    Expect(0, 917632, '\P{^-	Tags}', "");
-    Error('\p{/a/- Is_TAGS}');
-    Error('\P{/a/- Is_TAGS}');
+    Expect(1, 917631, '\p{	Tags}', "");
+    Expect(0, 917631, '\p{^	Tags}', "");
+    Expect(0, 917631, '\P{	Tags}', "");
+    Expect(1, 917631, '\P{^	Tags}', "");
+    Expect(0, 917632, '\p{	Tags}', "");
+    Expect(1, 917632, '\p{^	Tags}', "");
+    Expect(1, 917632, '\P{	Tags}', "");
+    Expect(0, 917632, '\P{^	Tags}', "");
+    Error('\p{_:=is_tags}');
+    Error('\P{_:=is_tags}');
     Expect(1, 917631, '\p{istags}', "");
     Expect(0, 917631, '\p{^istags}', "");
     Expect(0, 917631, '\P{istags}', "");
@@ -122143,16 +123367,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917632, '\p{^istags}', "");
     Expect(1, 917632, '\P{istags}', "");
     Expect(0, 917632, '\P{^istags}', "");
-    Expect(1, 917631, '\p{--Is_tags}', "");
-    Expect(0, 917631, '\p{^--Is_tags}', "");
-    Expect(0, 917631, '\P{--Is_tags}', "");
-    Expect(1, 917631, '\P{^--Is_tags}', "");
-    Expect(0, 917632, '\p{--Is_tags}', "");
-    Expect(1, 917632, '\p{^--Is_tags}', "");
-    Expect(1, 917632, '\P{--Is_tags}', "");
-    Expect(0, 917632, '\P{^--Is_tags}', "");
-    Error('\p{ IN_Tags/a/}');
-    Error('\P{ IN_Tags/a/}');
+    Expect(1, 917631, '\p{- is_Tags}', "");
+    Expect(0, 917631, '\p{^- is_Tags}', "");
+    Expect(0, 917631, '\P{- is_Tags}', "");
+    Expect(1, 917631, '\P{^- is_Tags}', "");
+    Expect(0, 917632, '\p{- is_Tags}', "");
+    Expect(1, 917632, '\p{^- is_Tags}', "");
+    Expect(1, 917632, '\P{- is_Tags}', "");
+    Expect(0, 917632, '\P{^- is_Tags}', "");
+    Error('\p{ :=IN_Tags}');
+    Error('\P{ :=IN_Tags}');
     Expect(1, 917631, '\p{intags}', "");
     Expect(0, 917631, '\p{^intags}', "");
     Expect(0, 917631, '\P{intags}', "");
@@ -122161,16 +123385,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917632, '\p{^intags}', "");
     Expect(1, 917632, '\P{intags}', "");
     Expect(0, 917632, '\P{^intags}', "");
-    Expect(1, 917631, '\p{	 In_TAGS}', "");
-    Expect(0, 917631, '\p{^	 In_TAGS}', "");
-    Expect(0, 917631, '\P{	 In_TAGS}', "");
-    Expect(1, 917631, '\P{^	 In_TAGS}', "");
-    Expect(0, 917632, '\p{	 In_TAGS}', "");
-    Expect(1, 917632, '\p{^	 In_TAGS}', "");
-    Expect(1, 917632, '\P{	 In_TAGS}', "");
-    Expect(0, 917632, '\P{^	 In_TAGS}', "");
-    Error('\p{/a/	_Tai_Le}');
-    Error('\P{/a/	_Tai_Le}');
+    Expect(1, 917631, '\p{--IN_tags}', "");
+    Expect(0, 917631, '\p{^--IN_tags}', "");
+    Expect(0, 917631, '\P{--IN_tags}', "");
+    Expect(1, 917631, '\P{^--IN_tags}', "");
+    Expect(0, 917632, '\p{--IN_tags}', "");
+    Expect(1, 917632, '\p{^--IN_tags}', "");
+    Expect(1, 917632, '\P{--IN_tags}', "");
+    Expect(0, 917632, '\P{^--IN_tags}', "");
+    Error('\p{_TAI_le:=}');
+    Error('\P{_TAI_le:=}');
     Expect(1, 6516, '\p{taile}', "");
     Expect(0, 6516, '\p{^taile}', "");
     Expect(0, 6516, '\P{taile}', "");
@@ -122179,16 +123403,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^taile}', "");
     Expect(1, 6517, '\P{taile}', "");
     Expect(0, 6517, '\P{^taile}', "");
-    Expect(1, 6516, '\p{	-Tai_le}', "");
-    Expect(0, 6516, '\p{^	-Tai_le}', "");
-    Expect(0, 6516, '\P{	-Tai_le}', "");
-    Expect(1, 6516, '\P{^	-Tai_le}', "");
-    Expect(0, 6517, '\p{	-Tai_le}', "");
-    Expect(1, 6517, '\p{^	-Tai_le}', "");
-    Expect(1, 6517, '\P{	-Tai_le}', "");
-    Expect(0, 6517, '\P{^	-Tai_le}', "");
-    Error('\p{-/a/Is_Tai_Le}');
-    Error('\P{-/a/Is_Tai_Le}');
+    Expect(1, 6516, '\p{_Tai_Le}', "");
+    Expect(0, 6516, '\p{^_Tai_Le}', "");
+    Expect(0, 6516, '\P{_Tai_Le}', "");
+    Expect(1, 6516, '\P{^_Tai_Le}', "");
+    Expect(0, 6517, '\p{_Tai_Le}', "");
+    Expect(1, 6517, '\p{^_Tai_Le}', "");
+    Expect(1, 6517, '\P{_Tai_Le}', "");
+    Expect(0, 6517, '\P{^_Tai_Le}', "");
+    Error('\p{	/a/Is_TAI_Le}');
+    Error('\P{	/a/Is_TAI_Le}');
     Expect(1, 6516, '\p{istaile}', "");
     Expect(0, 6516, '\p{^istaile}', "");
     Expect(0, 6516, '\P{istaile}', "");
@@ -122197,16 +123421,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^istaile}', "");
     Expect(1, 6517, '\P{istaile}', "");
     Expect(0, 6517, '\P{^istaile}', "");
-    Expect(1, 6516, '\p{		is_Tai_Le}', "");
-    Expect(0, 6516, '\p{^		is_Tai_Le}', "");
-    Expect(0, 6516, '\P{		is_Tai_Le}', "");
-    Expect(1, 6516, '\P{^		is_Tai_Le}', "");
-    Expect(0, 6517, '\p{		is_Tai_Le}', "");
-    Expect(1, 6517, '\p{^		is_Tai_Le}', "");
-    Expect(1, 6517, '\P{		is_Tai_Le}', "");
-    Expect(0, 6517, '\P{^		is_Tai_Le}', "");
-    Error('\p{/a/--Tale}');
-    Error('\P{/a/--Tale}');
+    Expect(1, 6516, '\p{  IS_TAI_le}', "");
+    Expect(0, 6516, '\p{^  IS_TAI_le}', "");
+    Expect(0, 6516, '\P{  IS_TAI_le}', "");
+    Expect(1, 6516, '\P{^  IS_TAI_le}', "");
+    Expect(0, 6517, '\p{  IS_TAI_le}', "");
+    Expect(1, 6517, '\p{^  IS_TAI_le}', "");
+    Expect(1, 6517, '\P{  IS_TAI_le}', "");
+    Expect(0, 6517, '\P{^  IS_TAI_le}', "");
+    Error('\p{-/a/TALE}');
+    Error('\P{-/a/TALE}');
     Expect(1, 6516, '\p{tale}', "");
     Expect(0, 6516, '\p{^tale}', "");
     Expect(0, 6516, '\P{tale}', "");
@@ -122215,16 +123439,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^tale}', "");
     Expect(1, 6517, '\P{tale}', "");
     Expect(0, 6517, '\P{^tale}', "");
-    Expect(1, 6516, '\p{ -TALE}', "");
-    Expect(0, 6516, '\p{^ -TALE}', "");
-    Expect(0, 6516, '\P{ -TALE}', "");
-    Expect(1, 6516, '\P{^ -TALE}', "");
-    Expect(0, 6517, '\p{ -TALE}', "");
-    Expect(1, 6517, '\p{^ -TALE}', "");
-    Expect(1, 6517, '\P{ -TALE}', "");
-    Expect(0, 6517, '\P{^ -TALE}', "");
-    Error('\p{-	is_Tale/a/}');
-    Error('\P{-	is_Tale/a/}');
+    Expect(1, 6516, '\p{ _Tale}', "");
+    Expect(0, 6516, '\p{^ _Tale}', "");
+    Expect(0, 6516, '\P{ _Tale}', "");
+    Expect(1, 6516, '\P{^ _Tale}', "");
+    Expect(0, 6517, '\p{ _Tale}', "");
+    Expect(1, 6517, '\p{^ _Tale}', "");
+    Expect(1, 6517, '\P{ _Tale}', "");
+    Expect(0, 6517, '\P{^ _Tale}', "");
+    Error('\p{:=-Is_tale}');
+    Error('\P{:=-Is_tale}');
     Expect(1, 6516, '\p{istale}', "");
     Expect(0, 6516, '\p{^istale}', "");
     Expect(0, 6516, '\P{istale}', "");
@@ -122233,16 +123457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^istale}', "");
     Expect(1, 6517, '\P{istale}', "");
     Expect(0, 6517, '\P{^istale}', "");
-    Expect(1, 6516, '\p{_ IS_tale}', "");
-    Expect(0, 6516, '\p{^_ IS_tale}', "");
-    Expect(0, 6516, '\P{_ IS_tale}', "");
-    Expect(1, 6516, '\P{^_ IS_tale}', "");
-    Expect(0, 6517, '\p{_ IS_tale}', "");
-    Expect(1, 6517, '\p{^_ IS_tale}', "");
-    Expect(1, 6517, '\P{_ IS_tale}', "");
-    Expect(0, 6517, '\P{^_ IS_tale}', "");
-    Error('\p{	_TAI_THAM:=}');
-    Error('\P{	_TAI_THAM:=}');
+    Expect(1, 6516, '\p{  is_Tale}', "");
+    Expect(0, 6516, '\p{^  is_Tale}', "");
+    Expect(0, 6516, '\P{  is_Tale}', "");
+    Expect(1, 6516, '\P{^  is_Tale}', "");
+    Expect(0, 6517, '\p{  is_Tale}', "");
+    Expect(1, 6517, '\p{^  is_Tale}', "");
+    Expect(1, 6517, '\P{  is_Tale}', "");
+    Expect(0, 6517, '\P{^  is_Tale}', "");
+    Error('\p{:=_-TAI_Tham}');
+    Error('\P{:=_-TAI_Tham}');
     Expect(1, 6829, '\p{taitham}', "");
     Expect(0, 6829, '\p{^taitham}', "");
     Expect(0, 6829, '\P{taitham}', "");
@@ -122251,16 +123475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^taitham}', "");
     Expect(1, 6830, '\P{taitham}', "");
     Expect(0, 6830, '\P{^taitham}', "");
-    Expect(1, 6829, '\p{- Tai_Tham}', "");
-    Expect(0, 6829, '\p{^- Tai_Tham}', "");
-    Expect(0, 6829, '\P{- Tai_Tham}', "");
-    Expect(1, 6829, '\P{^- Tai_Tham}', "");
-    Expect(0, 6830, '\p{- Tai_Tham}', "");
-    Expect(1, 6830, '\p{^- Tai_Tham}', "");
-    Expect(1, 6830, '\P{- Tai_Tham}', "");
-    Expect(0, 6830, '\P{^- Tai_Tham}', "");
-    Error('\p{	:=is_Tai_tham}');
-    Error('\P{	:=is_Tai_tham}');
+    Expect(1, 6829, '\p{ _tai_Tham}', "");
+    Expect(0, 6829, '\p{^ _tai_Tham}', "");
+    Expect(0, 6829, '\P{ _tai_Tham}', "");
+    Expect(1, 6829, '\P{^ _tai_Tham}', "");
+    Expect(0, 6830, '\p{ _tai_Tham}', "");
+    Expect(1, 6830, '\p{^ _tai_Tham}', "");
+    Expect(1, 6830, '\P{ _tai_Tham}', "");
+    Expect(0, 6830, '\P{^ _tai_Tham}', "");
+    Error('\p{:=	_IS_Tai_tham}');
+    Error('\P{:=	_IS_Tai_tham}');
     Expect(1, 6829, '\p{istaitham}', "");
     Expect(0, 6829, '\p{^istaitham}', "");
     Expect(0, 6829, '\P{istaitham}', "");
@@ -122269,16 +123493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^istaitham}', "");
     Expect(1, 6830, '\P{istaitham}', "");
     Expect(0, 6830, '\P{^istaitham}', "");
-    Expect(1, 6829, '\p{-is_tai_Tham}', "");
-    Expect(0, 6829, '\p{^-is_tai_Tham}', "");
-    Expect(0, 6829, '\P{-is_tai_Tham}', "");
-    Expect(1, 6829, '\P{^-is_tai_Tham}', "");
-    Expect(0, 6830, '\p{-is_tai_Tham}', "");
-    Expect(1, 6830, '\p{^-is_tai_Tham}', "");
-    Expect(1, 6830, '\P{-is_tai_Tham}', "");
-    Expect(0, 6830, '\P{^-is_tai_Tham}', "");
-    Error('\p{/a/ Lana}');
-    Error('\P{/a/ Lana}');
+    Expect(1, 6829, '\p{ _IS_tai_Tham}', "");
+    Expect(0, 6829, '\p{^ _IS_tai_Tham}', "");
+    Expect(0, 6829, '\P{ _IS_tai_Tham}', "");
+    Expect(1, 6829, '\P{^ _IS_tai_Tham}', "");
+    Expect(0, 6830, '\p{ _IS_tai_Tham}', "");
+    Expect(1, 6830, '\p{^ _IS_tai_Tham}', "");
+    Expect(1, 6830, '\P{ _IS_tai_Tham}', "");
+    Expect(0, 6830, '\P{^ _IS_tai_Tham}', "");
+    Error('\p{-/a/Lana}');
+    Error('\P{-/a/Lana}');
     Expect(1, 6829, '\p{lana}', "");
     Expect(0, 6829, '\p{^lana}', "");
     Expect(0, 6829, '\P{lana}', "");
@@ -122287,16 +123511,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^lana}', "");
     Expect(1, 6830, '\P{lana}', "");
     Expect(0, 6830, '\P{^lana}', "");
-    Expect(1, 6829, '\p{_Lana}', "");
-    Expect(0, 6829, '\p{^_Lana}', "");
-    Expect(0, 6829, '\P{_Lana}', "");
-    Expect(1, 6829, '\P{^_Lana}', "");
-    Expect(0, 6830, '\p{_Lana}', "");
-    Expect(1, 6830, '\p{^_Lana}', "");
-    Expect(1, 6830, '\P{_Lana}', "");
-    Expect(0, 6830, '\P{^_Lana}', "");
-    Error('\p{is_lana/a/}');
-    Error('\P{is_lana/a/}');
+    Expect(1, 6829, '\p{_ LANA}', "");
+    Expect(0, 6829, '\p{^_ LANA}', "");
+    Expect(0, 6829, '\P{_ LANA}', "");
+    Expect(1, 6829, '\P{^_ LANA}', "");
+    Expect(0, 6830, '\p{_ LANA}', "");
+    Expect(1, 6830, '\p{^_ LANA}', "");
+    Expect(1, 6830, '\P{_ LANA}', "");
+    Expect(0, 6830, '\P{^_ LANA}', "");
+    Error('\p{:=-Is_lana}');
+    Error('\P{:=-Is_lana}');
     Expect(1, 6829, '\p{islana}', "");
     Expect(0, 6829, '\p{^islana}', "");
     Expect(0, 6829, '\P{islana}', "");
@@ -122305,16 +123529,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^islana}', "");
     Expect(1, 6830, '\P{islana}', "");
     Expect(0, 6830, '\P{^islana}', "");
-    Expect(1, 6829, '\p{  IS_LANA}', "");
-    Expect(0, 6829, '\p{^  IS_LANA}', "");
-    Expect(0, 6829, '\P{  IS_LANA}', "");
-    Expect(1, 6829, '\P{^  IS_LANA}', "");
-    Expect(0, 6830, '\p{  IS_LANA}', "");
-    Expect(1, 6830, '\p{^  IS_LANA}', "");
-    Expect(1, 6830, '\P{  IS_LANA}', "");
-    Expect(0, 6830, '\P{^  IS_LANA}', "");
-    Error('\p{-	Tai_viet:=}');
-    Error('\P{-	Tai_viet:=}');
+    Expect(1, 6829, '\p{__Is_Lana}', "");
+    Expect(0, 6829, '\p{^__Is_Lana}', "");
+    Expect(0, 6829, '\P{__Is_Lana}', "");
+    Expect(1, 6829, '\P{^__Is_Lana}', "");
+    Expect(0, 6830, '\p{__Is_Lana}', "");
+    Expect(1, 6830, '\p{^__Is_Lana}', "");
+    Expect(1, 6830, '\P{__Is_Lana}', "");
+    Expect(0, 6830, '\P{^__Is_Lana}', "");
+    Error('\p{/a/	 Tai_Viet}');
+    Error('\P{/a/	 Tai_Viet}');
     Expect(1, 43743, '\p{taiviet}', "");
     Expect(0, 43743, '\p{^taiviet}', "");
     Expect(0, 43743, '\P{taiviet}', "");
@@ -122323,16 +123547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^taiviet}', "");
     Expect(1, 43744, '\P{taiviet}', "");
     Expect(0, 43744, '\P{^taiviet}', "");
-    Expect(1, 43743, '\p{	tai_VIET}', "");
-    Expect(0, 43743, '\p{^	tai_VIET}', "");
-    Expect(0, 43743, '\P{	tai_VIET}', "");
-    Expect(1, 43743, '\P{^	tai_VIET}', "");
-    Expect(0, 43744, '\p{	tai_VIET}', "");
-    Expect(1, 43744, '\p{^	tai_VIET}', "");
-    Expect(1, 43744, '\P{	tai_VIET}', "");
-    Expect(0, 43744, '\P{^	tai_VIET}', "");
-    Error('\p{ 	Is_Tai_VIET/a/}');
-    Error('\P{ 	Is_Tai_VIET/a/}');
+    Expect(1, 43743, '\p{--TAI_VIET}', "");
+    Expect(0, 43743, '\p{^--TAI_VIET}', "");
+    Expect(0, 43743, '\P{--TAI_VIET}', "");
+    Expect(1, 43743, '\P{^--TAI_VIET}', "");
+    Expect(0, 43744, '\p{--TAI_VIET}', "");
+    Expect(1, 43744, '\p{^--TAI_VIET}', "");
+    Expect(1, 43744, '\P{--TAI_VIET}', "");
+    Expect(0, 43744, '\P{^--TAI_VIET}', "");
+    Error('\p{_ IS_Tai_Viet/a/}');
+    Error('\P{_ IS_Tai_Viet/a/}');
     Expect(1, 43743, '\p{istaiviet}', "");
     Expect(0, 43743, '\p{^istaiviet}', "");
     Expect(0, 43743, '\P{istaiviet}', "");
@@ -122341,16 +123565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^istaiviet}', "");
     Expect(1, 43744, '\P{istaiviet}', "");
     Expect(0, 43744, '\P{^istaiviet}', "");
-    Expect(1, 43743, '\p{ Is_TAI_VIET}', "");
-    Expect(0, 43743, '\p{^ Is_TAI_VIET}', "");
-    Expect(0, 43743, '\P{ Is_TAI_VIET}', "");
-    Expect(1, 43743, '\P{^ Is_TAI_VIET}', "");
-    Expect(0, 43744, '\p{ Is_TAI_VIET}', "");
-    Expect(1, 43744, '\p{^ Is_TAI_VIET}', "");
-    Expect(1, 43744, '\P{ Is_TAI_VIET}', "");
-    Expect(0, 43744, '\P{^ Is_TAI_VIET}', "");
-    Error('\p{_	TAVT/a/}');
-    Error('\P{_	TAVT/a/}');
+    Expect(1, 43743, '\p{	is_tai_Viet}', "");
+    Expect(0, 43743, '\p{^	is_tai_Viet}', "");
+    Expect(0, 43743, '\P{	is_tai_Viet}', "");
+    Expect(1, 43743, '\P{^	is_tai_Viet}', "");
+    Expect(0, 43744, '\p{	is_tai_Viet}', "");
+    Expect(1, 43744, '\p{^	is_tai_Viet}', "");
+    Expect(1, 43744, '\P{	is_tai_Viet}', "");
+    Expect(0, 43744, '\P{^	is_tai_Viet}', "");
+    Error('\p{ /a/Tavt}');
+    Error('\P{ /a/Tavt}');
     Expect(1, 43743, '\p{tavt}', "");
     Expect(0, 43743, '\p{^tavt}', "");
     Expect(0, 43743, '\P{tavt}', "");
@@ -122359,16 +123583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^tavt}', "");
     Expect(1, 43744, '\P{tavt}', "");
     Expect(0, 43744, '\P{^tavt}', "");
-    Expect(1, 43743, '\p{ Tavt}', "");
-    Expect(0, 43743, '\p{^ Tavt}', "");
-    Expect(0, 43743, '\P{ Tavt}', "");
-    Expect(1, 43743, '\P{^ Tavt}', "");
-    Expect(0, 43744, '\p{ Tavt}', "");
-    Expect(1, 43744, '\p{^ Tavt}', "");
-    Expect(1, 43744, '\P{ Tavt}', "");
-    Expect(0, 43744, '\P{^ Tavt}', "");
-    Error('\p{/a/ -IS_Tavt}');
-    Error('\P{/a/ -IS_Tavt}');
+    Expect(1, 43743, '\p{-	Tavt}', "");
+    Expect(0, 43743, '\p{^-	Tavt}', "");
+    Expect(0, 43743, '\P{-	Tavt}', "");
+    Expect(1, 43743, '\P{^-	Tavt}', "");
+    Expect(0, 43744, '\p{-	Tavt}', "");
+    Expect(1, 43744, '\p{^-	Tavt}', "");
+    Expect(1, 43744, '\P{-	Tavt}', "");
+    Expect(0, 43744, '\P{^-	Tavt}', "");
+    Error('\p{-_is_Tavt/a/}');
+    Error('\P{-_is_Tavt/a/}');
     Expect(1, 43743, '\p{istavt}', "");
     Expect(0, 43743, '\p{^istavt}', "");
     Expect(0, 43743, '\P{istavt}', "");
@@ -122377,16 +123601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^istavt}', "");
     Expect(1, 43744, '\P{istavt}', "");
     Expect(0, 43744, '\P{^istavt}', "");
-    Expect(1, 43743, '\p{--is_Tavt}', "");
-    Expect(0, 43743, '\p{^--is_Tavt}', "");
-    Expect(0, 43743, '\P{--is_Tavt}', "");
-    Expect(1, 43743, '\P{^--is_Tavt}', "");
-    Expect(0, 43744, '\p{--is_Tavt}', "");
-    Expect(1, 43744, '\p{^--is_Tavt}', "");
-    Expect(1, 43744, '\P{--is_Tavt}', "");
-    Expect(0, 43744, '\P{^--is_Tavt}', "");
-    Error('\p{-Tai_xuan_Jing_Symbols/a/}');
-    Error('\P{-Tai_xuan_Jing_Symbols/a/}');
+    Expect(1, 43743, '\p{	Is_Tavt}', "");
+    Expect(0, 43743, '\p{^	Is_Tavt}', "");
+    Expect(0, 43743, '\P{	Is_Tavt}', "");
+    Expect(1, 43743, '\P{^	Is_Tavt}', "");
+    Expect(0, 43744, '\p{	Is_Tavt}', "");
+    Expect(1, 43744, '\p{^	Is_Tavt}', "");
+    Expect(1, 43744, '\P{	Is_Tavt}', "");
+    Expect(0, 43744, '\P{^	Is_Tavt}', "");
+    Error('\p{ tai_Xuan_Jing_symbols/a/}');
+    Error('\P{ tai_Xuan_Jing_symbols/a/}');
     Expect(1, 119647, '\p{taixuanjingsymbols}', "");
     Expect(0, 119647, '\p{^taixuanjingsymbols}', "");
     Expect(0, 119647, '\P{taixuanjingsymbols}', "");
@@ -122395,16 +123619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119648, '\p{^taixuanjingsymbols}', "");
     Expect(1, 119648, '\P{taixuanjingsymbols}', "");
     Expect(0, 119648, '\P{^taixuanjingsymbols}', "");
-    Expect(1, 119647, '\p{-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(0, 119647, '\p{^-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(0, 119647, '\P{-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(1, 119647, '\P{^-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(0, 119648, '\p{-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(1, 119648, '\p{^-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(1, 119648, '\P{-_Tai_Xuan_Jing_Symbols}', "");
-    Expect(0, 119648, '\P{^-_Tai_Xuan_Jing_Symbols}', "");
-    Error('\p{  Is_TAI_Xuan_Jing_SYMBOLS/a/}');
-    Error('\P{  Is_TAI_Xuan_Jing_SYMBOLS/a/}');
+    Expect(1, 119647, '\p{--tai_Xuan_jing_Symbols}', "");
+    Expect(0, 119647, '\p{^--tai_Xuan_jing_Symbols}', "");
+    Expect(0, 119647, '\P{--tai_Xuan_jing_Symbols}', "");
+    Expect(1, 119647, '\P{^--tai_Xuan_jing_Symbols}', "");
+    Expect(0, 119648, '\p{--tai_Xuan_jing_Symbols}', "");
+    Expect(1, 119648, '\p{^--tai_Xuan_jing_Symbols}', "");
+    Expect(1, 119648, '\P{--tai_Xuan_jing_Symbols}', "");
+    Expect(0, 119648, '\P{^--tai_Xuan_jing_Symbols}', "");
+    Error('\p{:=-Is_TAI_Xuan_Jing_SYMBOLS}');
+    Error('\P{:=-Is_TAI_Xuan_Jing_SYMBOLS}');
     Expect(1, 119647, '\p{istaixuanjingsymbols}', "");
     Expect(0, 119647, '\p{^istaixuanjingsymbols}', "");
     Expect(0, 119647, '\P{istaixuanjingsymbols}', "");
@@ -122413,16 +123637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119648, '\p{^istaixuanjingsymbols}', "");
     Expect(1, 119648, '\P{istaixuanjingsymbols}', "");
     Expect(0, 119648, '\P{^istaixuanjingsymbols}', "");
-    Expect(1, 119647, '\p{  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(0, 119647, '\p{^  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(0, 119647, '\P{  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(1, 119647, '\P{^  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(0, 119648, '\p{  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(1, 119648, '\p{^  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(1, 119648, '\P{  Is_Tai_Xuan_jing_Symbols}', "");
-    Expect(0, 119648, '\P{^  Is_Tai_Xuan_jing_Symbols}', "");
-    Error('\p{ :=In_tai_XUAN_Jing_Symbols}');
-    Error('\P{ :=In_tai_XUAN_Jing_Symbols}');
+    Expect(1, 119647, '\p{_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(0, 119647, '\p{^_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(0, 119647, '\P{_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(1, 119647, '\P{^_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(0, 119648, '\p{_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(1, 119648, '\p{^_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(1, 119648, '\P{_Is_TAI_xuan_Jing_symbols}', "");
+    Expect(0, 119648, '\P{^_Is_TAI_xuan_Jing_symbols}', "");
+    Error('\p{_In_Tai_XUAN_jing_SYMBOLS:=}');
+    Error('\P{_In_Tai_XUAN_jing_SYMBOLS:=}');
     Expect(1, 119647, '\p{intaixuanjingsymbols}', "");
     Expect(0, 119647, '\p{^intaixuanjingsymbols}', "");
     Expect(0, 119647, '\P{intaixuanjingsymbols}', "");
@@ -122431,16 +123655,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119648, '\p{^intaixuanjingsymbols}', "");
     Expect(1, 119648, '\P{intaixuanjingsymbols}', "");
     Expect(0, 119648, '\P{^intaixuanjingsymbols}', "");
-    Expect(1, 119647, '\p{ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(0, 119647, '\p{^ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(0, 119647, '\P{ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(1, 119647, '\P{^ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(0, 119648, '\p{ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(1, 119648, '\p{^ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(1, 119648, '\P{ In_TAI_xuan_Jing_Symbols}', "");
-    Expect(0, 119648, '\P{^ In_TAI_xuan_Jing_Symbols}', "");
-    Error('\p{-_tai_Xuan_Jing:=}');
-    Error('\P{-_tai_Xuan_Jing:=}');
+    Expect(1, 119647, '\p{-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(0, 119647, '\p{^-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(0, 119647, '\P{-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(1, 119647, '\P{^-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(0, 119648, '\p{-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(1, 119648, '\p{^-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(1, 119648, '\P{-	In_TAI_Xuan_JING_symbols}', "");
+    Expect(0, 119648, '\P{^-	In_TAI_Xuan_JING_symbols}', "");
+    Error('\p{/a/TAI_xuan_JING}');
+    Error('\P{/a/TAI_xuan_JING}');
     Expect(1, 119647, '\p{taixuanjing}', "");
     Expect(0, 119647, '\p{^taixuanjing}', "");
     Expect(0, 119647, '\P{taixuanjing}', "");
@@ -122449,16 +123673,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119648, '\p{^taixuanjing}', "");
     Expect(1, 119648, '\P{taixuanjing}', "");
     Expect(0, 119648, '\P{^taixuanjing}', "");
-    Expect(1, 119647, '\p{ -Tai_Xuan_Jing}', "");
-    Expect(0, 119647, '\p{^ -Tai_Xuan_Jing}', "");
-    Expect(0, 119647, '\P{ -Tai_Xuan_Jing}', "");
-    Expect(1, 119647, '\P{^ -Tai_Xuan_Jing}', "");
-    Expect(0, 119648, '\p{ -Tai_Xuan_Jing}', "");
-    Expect(1, 119648, '\p{^ -Tai_Xuan_Jing}', "");
-    Expect(1, 119648, '\P{ -Tai_Xuan_Jing}', "");
-    Expect(0, 119648, '\P{^ -Tai_Xuan_Jing}', "");
-    Error('\p{:=  Is_Tai_xuan_Jing}');
-    Error('\P{:=  Is_Tai_xuan_Jing}');
+    Expect(1, 119647, '\p{-TAI_Xuan_Jing}', "");
+    Expect(0, 119647, '\p{^-TAI_Xuan_Jing}', "");
+    Expect(0, 119647, '\P{-TAI_Xuan_Jing}', "");
+    Expect(1, 119647, '\P{^-TAI_Xuan_Jing}', "");
+    Expect(0, 119648, '\p{-TAI_Xuan_Jing}', "");
+    Expect(1, 119648, '\p{^-TAI_Xuan_Jing}', "");
+    Expect(1, 119648, '\P{-TAI_Xuan_Jing}', "");
+    Expect(0, 119648, '\P{^-TAI_Xuan_Jing}', "");
+    Error('\p{:= Is_Tai_Xuan_Jing}');
+    Error('\P{:= Is_Tai_Xuan_Jing}');
     Expect(1, 119647, '\p{istaixuanjing}', "");
     Expect(0, 119647, '\p{^istaixuanjing}', "");
     Expect(0, 119647, '\P{istaixuanjing}', "");
@@ -122467,16 +123691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119648, '\p{^istaixuanjing}', "");
     Expect(1, 119648, '\P{istaixuanjing}', "");
     Expect(0, 119648, '\P{^istaixuanjing}', "");
-    Expect(1, 119647, '\p{	_is_Tai_XUAN_JING}', "");
-    Expect(0, 119647, '\p{^	_is_Tai_XUAN_JING}', "");
-    Expect(0, 119647, '\P{	_is_Tai_XUAN_JING}', "");
-    Expect(1, 119647, '\P{^	_is_Tai_XUAN_JING}', "");
-    Expect(0, 119648, '\p{	_is_Tai_XUAN_JING}', "");
-    Expect(1, 119648, '\p{^	_is_Tai_XUAN_JING}', "");
-    Expect(1, 119648, '\P{	_is_Tai_XUAN_JING}', "");
-    Expect(0, 119648, '\P{^	_is_Tai_XUAN_JING}', "");
-    Error('\p{__IN_tai_XUAN_Jing:=}');
-    Error('\P{__IN_tai_XUAN_Jing:=}');
+    Expect(1, 119647, '\p{ Is_Tai_Xuan_jing}', "");
+    Expect(0, 119647, '\p{^ Is_Tai_Xuan_jing}', "");
+    Expect(0, 119647, '\P{ Is_Tai_Xuan_jing}', "");
+    Expect(1, 119647, '\P{^ Is_Tai_Xuan_jing}', "");
+    Expect(0, 119648, '\p{ Is_Tai_Xuan_jing}', "");
+    Expect(1, 119648, '\p{^ Is_Tai_Xuan_jing}', "");
+    Expect(1, 119648, '\P{ Is_Tai_Xuan_jing}', "");
+    Expect(0, 119648, '\P{^ Is_Tai_Xuan_jing}', "");
+    Error('\p{	IN_TAI_Xuan_jing/a/}');
+    Error('\P{	IN_TAI_Xuan_jing/a/}');
     Expect(1, 119647, '\p{intaixuanjing}', "");
     Expect(0, 119647, '\p{^intaixuanjing}', "");
     Expect(0, 119647, '\P{intaixuanjing}', "");
@@ -122485,16 +123709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119648, '\p{^intaixuanjing}', "");
     Expect(1, 119648, '\P{intaixuanjing}', "");
     Expect(0, 119648, '\P{^intaixuanjing}', "");
-    Expect(1, 119647, '\p{		in_TAI_Xuan_jing}', "");
-    Expect(0, 119647, '\p{^		in_TAI_Xuan_jing}', "");
-    Expect(0, 119647, '\P{		in_TAI_Xuan_jing}', "");
-    Expect(1, 119647, '\P{^		in_TAI_Xuan_jing}', "");
-    Expect(0, 119648, '\p{		in_TAI_Xuan_jing}', "");
-    Expect(1, 119648, '\p{^		in_TAI_Xuan_jing}', "");
-    Expect(1, 119648, '\P{		in_TAI_Xuan_jing}', "");
-    Expect(0, 119648, '\P{^		in_TAI_Xuan_jing}', "");
-    Error('\p{ Takri/a/}');
-    Error('\P{ Takri/a/}');
+    Expect(1, 119647, '\p{_In_TAI_XUAN_jing}', "");
+    Expect(0, 119647, '\p{^_In_TAI_XUAN_jing}', "");
+    Expect(0, 119647, '\P{_In_TAI_XUAN_jing}', "");
+    Expect(1, 119647, '\P{^_In_TAI_XUAN_jing}', "");
+    Expect(0, 119648, '\p{_In_TAI_XUAN_jing}', "");
+    Expect(1, 119648, '\p{^_In_TAI_XUAN_jing}', "");
+    Expect(1, 119648, '\P{_In_TAI_XUAN_jing}', "");
+    Expect(0, 119648, '\P{^_In_TAI_XUAN_jing}', "");
+    Error('\p{-	TAKRI:=}');
+    Error('\P{-	TAKRI:=}');
     Expect(1, 71369, '\p{takri}', "");
     Expect(0, 71369, '\p{^takri}', "");
     Expect(0, 71369, '\P{takri}', "");
@@ -122503,16 +123727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^takri}', "");
     Expect(1, 71370, '\P{takri}', "");
     Expect(0, 71370, '\P{^takri}', "");
-    Expect(1, 71369, '\p{ TAKRI}', "");
-    Expect(0, 71369, '\p{^ TAKRI}', "");
-    Expect(0, 71369, '\P{ TAKRI}', "");
-    Expect(1, 71369, '\P{^ TAKRI}', "");
-    Expect(0, 71370, '\p{ TAKRI}', "");
-    Expect(1, 71370, '\p{^ TAKRI}', "");
-    Expect(1, 71370, '\P{ TAKRI}', "");
-    Expect(0, 71370, '\P{^ TAKRI}', "");
-    Error('\p{_/a/IS_Takri}');
-    Error('\P{_/a/IS_Takri}');
+    Expect(1, 71369, '\p{_-Takri}', "");
+    Expect(0, 71369, '\p{^_-Takri}', "");
+    Expect(0, 71369, '\P{_-Takri}', "");
+    Expect(1, 71369, '\P{^_-Takri}', "");
+    Expect(0, 71370, '\p{_-Takri}', "");
+    Expect(1, 71370, '\p{^_-Takri}', "");
+    Expect(1, 71370, '\P{_-Takri}', "");
+    Expect(0, 71370, '\P{^_-Takri}', "");
+    Error('\p{:= -Is_takri}');
+    Error('\P{:= -Is_takri}');
     Expect(1, 71369, '\p{istakri}', "");
     Expect(0, 71369, '\p{^istakri}', "");
     Expect(0, 71369, '\P{istakri}', "");
@@ -122521,16 +123745,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^istakri}', "");
     Expect(1, 71370, '\P{istakri}', "");
     Expect(0, 71370, '\P{^istakri}', "");
-    Expect(1, 71369, '\p{		is_Takri}', "");
-    Expect(0, 71369, '\p{^		is_Takri}', "");
-    Expect(0, 71369, '\P{		is_Takri}', "");
-    Expect(1, 71369, '\P{^		is_Takri}', "");
-    Expect(0, 71370, '\p{		is_Takri}', "");
-    Expect(1, 71370, '\p{^		is_Takri}', "");
-    Expect(1, 71370, '\P{		is_Takri}', "");
-    Expect(0, 71370, '\P{^		is_Takri}', "");
-    Error('\p{:=_	Takr}');
-    Error('\P{:=_	Takr}');
+    Expect(1, 71369, '\p{ _is_Takri}', "");
+    Expect(0, 71369, '\p{^ _is_Takri}', "");
+    Expect(0, 71369, '\P{ _is_Takri}', "");
+    Expect(1, 71369, '\P{^ _is_Takri}', "");
+    Expect(0, 71370, '\p{ _is_Takri}', "");
+    Expect(1, 71370, '\p{^ _is_Takri}', "");
+    Expect(1, 71370, '\P{ _is_Takri}', "");
+    Expect(0, 71370, '\P{^ _is_Takri}', "");
+    Error('\p{:= _Takr}');
+    Error('\P{:= _Takr}');
     Expect(1, 71369, '\p{takr}', "");
     Expect(0, 71369, '\p{^takr}', "");
     Expect(0, 71369, '\P{takr}', "");
@@ -122539,16 +123763,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^takr}', "");
     Expect(1, 71370, '\P{takr}', "");
     Expect(0, 71370, '\P{^takr}', "");
-    Expect(1, 71369, '\p{ Takr}', "");
-    Expect(0, 71369, '\p{^ Takr}', "");
-    Expect(0, 71369, '\P{ Takr}', "");
-    Expect(1, 71369, '\P{^ Takr}', "");
-    Expect(0, 71370, '\p{ Takr}', "");
-    Expect(1, 71370, '\p{^ Takr}', "");
-    Expect(1, 71370, '\P{ Takr}', "");
-    Expect(0, 71370, '\P{^ Takr}', "");
-    Error('\p{Is_takr/a/}');
-    Error('\P{Is_takr/a/}');
+    Expect(1, 71369, '\p{ takr}', "");
+    Expect(0, 71369, '\p{^ takr}', "");
+    Expect(0, 71369, '\P{ takr}', "");
+    Expect(1, 71369, '\P{^ takr}', "");
+    Expect(0, 71370, '\p{ takr}', "");
+    Expect(1, 71370, '\p{^ takr}', "");
+    Expect(1, 71370, '\P{ takr}', "");
+    Expect(0, 71370, '\P{^ takr}', "");
+    Error('\p{-	Is_takr:=}');
+    Error('\P{-	Is_takr:=}');
     Expect(1, 71369, '\p{istakr}', "");
     Expect(0, 71369, '\p{^istakr}', "");
     Expect(0, 71369, '\P{istakr}', "");
@@ -122557,16 +123781,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^istakr}', "");
     Expect(1, 71370, '\P{istakr}', "");
     Expect(0, 71370, '\P{^istakr}', "");
-    Expect(1, 71369, '\p{_ Is_Takr}', "");
-    Expect(0, 71369, '\p{^_ Is_Takr}', "");
-    Expect(0, 71369, '\P{_ Is_Takr}', "");
-    Expect(1, 71369, '\P{^_ Is_Takr}', "");
-    Expect(0, 71370, '\p{_ Is_Takr}', "");
-    Expect(1, 71370, '\p{^_ Is_Takr}', "");
-    Expect(1, 71370, '\P{_ Is_Takr}', "");
-    Expect(0, 71370, '\P{^_ Is_Takr}', "");
-    Error('\p{-/a/Tamil}');
-    Error('\P{-/a/Tamil}');
+    Expect(1, 71369, '\p{		is_Takr}', "");
+    Expect(0, 71369, '\p{^		is_Takr}', "");
+    Expect(0, 71369, '\P{		is_Takr}', "");
+    Expect(1, 71369, '\P{^		is_Takr}', "");
+    Expect(0, 71370, '\p{		is_Takr}', "");
+    Expect(1, 71370, '\p{^		is_Takr}', "");
+    Expect(1, 71370, '\P{		is_Takr}', "");
+    Expect(0, 71370, '\P{^		is_Takr}', "");
+    Error('\p{:= _TAMIL}');
+    Error('\P{:= _TAMIL}');
     Expect(1, 73727, '\p{tamil}', "");
     Expect(0, 73727, '\p{^tamil}', "");
     Expect(0, 73727, '\P{tamil}', "");
@@ -122575,16 +123799,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^tamil}', "");
     Expect(1, 73728, '\P{tamil}', "");
     Expect(0, 73728, '\P{^tamil}', "");
-    Expect(1, 73727, '\p{__tamil}', "");
-    Expect(0, 73727, '\p{^__tamil}', "");
-    Expect(0, 73727, '\P{__tamil}', "");
-    Expect(1, 73727, '\P{^__tamil}', "");
-    Expect(0, 73728, '\p{__tamil}', "");
-    Expect(1, 73728, '\p{^__tamil}', "");
-    Expect(1, 73728, '\P{__tamil}', "");
-    Expect(0, 73728, '\P{^__tamil}', "");
-    Error('\p{:=	 IS_TAMIL}');
-    Error('\P{:=	 IS_TAMIL}');
+    Expect(1, 73727, '\p{ _Tamil}', "");
+    Expect(0, 73727, '\p{^ _Tamil}', "");
+    Expect(0, 73727, '\P{ _Tamil}', "");
+    Expect(1, 73727, '\P{^ _Tamil}', "");
+    Expect(0, 73728, '\p{ _Tamil}', "");
+    Expect(1, 73728, '\p{^ _Tamil}', "");
+    Expect(1, 73728, '\P{ _Tamil}', "");
+    Expect(0, 73728, '\P{^ _Tamil}', "");
+    Error('\p{ :=is_Tamil}');
+    Error('\P{ :=is_Tamil}');
     Expect(1, 73727, '\p{istamil}', "");
     Expect(0, 73727, '\p{^istamil}', "");
     Expect(0, 73727, '\P{istamil}', "");
@@ -122593,16 +123817,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^istamil}', "");
     Expect(1, 73728, '\P{istamil}', "");
     Expect(0, 73728, '\P{^istamil}', "");
-    Expect(1, 73727, '\p{ -Is_TAMIL}', "");
-    Expect(0, 73727, '\p{^ -Is_TAMIL}', "");
-    Expect(0, 73727, '\P{ -Is_TAMIL}', "");
-    Expect(1, 73727, '\P{^ -Is_TAMIL}', "");
-    Expect(0, 73728, '\p{ -Is_TAMIL}', "");
-    Expect(1, 73728, '\p{^ -Is_TAMIL}', "");
-    Expect(1, 73728, '\P{ -Is_TAMIL}', "");
-    Expect(0, 73728, '\P{^ -Is_TAMIL}', "");
-    Error('\p{/a/ 	taml}');
-    Error('\P{/a/ 	taml}');
+    Expect(1, 73727, '\p{--Is_TAMIL}', "");
+    Expect(0, 73727, '\p{^--Is_TAMIL}', "");
+    Expect(0, 73727, '\P{--Is_TAMIL}', "");
+    Expect(1, 73727, '\P{^--Is_TAMIL}', "");
+    Expect(0, 73728, '\p{--Is_TAMIL}', "");
+    Expect(1, 73728, '\p{^--Is_TAMIL}', "");
+    Expect(1, 73728, '\P{--Is_TAMIL}', "");
+    Expect(0, 73728, '\P{^--Is_TAMIL}', "");
+    Error('\p{/a/	 TAML}');
+    Error('\P{/a/	 TAML}');
     Expect(1, 73727, '\p{taml}', "");
     Expect(0, 73727, '\p{^taml}', "");
     Expect(0, 73727, '\P{taml}', "");
@@ -122611,16 +123835,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^taml}', "");
     Expect(1, 73728, '\P{taml}', "");
     Expect(0, 73728, '\P{^taml}', "");
-    Expect(1, 73727, '\p{_-Taml}', "");
-    Expect(0, 73727, '\p{^_-Taml}', "");
-    Expect(0, 73727, '\P{_-Taml}', "");
-    Expect(1, 73727, '\P{^_-Taml}', "");
-    Expect(0, 73728, '\p{_-Taml}', "");
-    Expect(1, 73728, '\p{^_-Taml}', "");
-    Expect(1, 73728, '\P{_-Taml}', "");
-    Expect(0, 73728, '\P{^_-Taml}', "");
-    Error('\p{/a/ -is_Taml}');
-    Error('\P{/a/ -is_Taml}');
+    Expect(1, 73727, '\p{ taml}', "");
+    Expect(0, 73727, '\p{^ taml}', "");
+    Expect(0, 73727, '\P{ taml}', "");
+    Expect(1, 73727, '\P{^ taml}', "");
+    Expect(0, 73728, '\p{ taml}', "");
+    Expect(1, 73728, '\p{^ taml}', "");
+    Expect(1, 73728, '\P{ taml}', "");
+    Expect(0, 73728, '\P{^ taml}', "");
+    Error('\p{-	is_Taml:=}');
+    Error('\P{-	is_Taml:=}');
     Expect(1, 73727, '\p{istaml}', "");
     Expect(0, 73727, '\p{^istaml}', "");
     Expect(0, 73727, '\P{istaml}', "");
@@ -122629,16 +123853,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^istaml}', "");
     Expect(1, 73728, '\P{istaml}', "");
     Expect(0, 73728, '\P{^istaml}', "");
-    Expect(1, 73727, '\p{		IS_TAML}', "");
-    Expect(0, 73727, '\p{^		IS_TAML}', "");
-    Expect(0, 73727, '\P{		IS_TAML}', "");
-    Expect(1, 73727, '\P{^		IS_TAML}', "");
-    Expect(0, 73728, '\p{		IS_TAML}', "");
-    Expect(1, 73728, '\p{^		IS_TAML}', "");
-    Expect(1, 73728, '\P{		IS_TAML}', "");
-    Expect(0, 73728, '\P{^		IS_TAML}', "");
-    Error('\p{	_Tamil_Supplement/a/}');
-    Error('\P{	_Tamil_Supplement/a/}');
+    Expect(1, 73727, '\p{ 	IS_Taml}', "");
+    Expect(0, 73727, '\p{^ 	IS_Taml}', "");
+    Expect(0, 73727, '\P{ 	IS_Taml}', "");
+    Expect(1, 73727, '\P{^ 	IS_Taml}', "");
+    Expect(0, 73728, '\p{ 	IS_Taml}', "");
+    Expect(1, 73728, '\p{^ 	IS_Taml}', "");
+    Expect(1, 73728, '\P{ 	IS_Taml}', "");
+    Expect(0, 73728, '\P{^ 	IS_Taml}', "");
+    Error('\p{/a/-Tamil_Supplement}');
+    Error('\P{/a/-Tamil_Supplement}');
     Expect(1, 73727, '\p{tamilsupplement}', "");
     Expect(0, 73727, '\p{^tamilsupplement}', "");
     Expect(0, 73727, '\P{tamilsupplement}', "");
@@ -122647,16 +123871,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^tamilsupplement}', "");
     Expect(1, 73728, '\P{tamilsupplement}', "");
     Expect(0, 73728, '\P{^tamilsupplement}', "");
-    Expect(1, 73727, '\p{Tamil_supplement}', "");
-    Expect(0, 73727, '\p{^Tamil_supplement}', "");
-    Expect(0, 73727, '\P{Tamil_supplement}', "");
-    Expect(1, 73727, '\P{^Tamil_supplement}', "");
-    Expect(0, 73728, '\p{Tamil_supplement}', "");
-    Expect(1, 73728, '\p{^Tamil_supplement}', "");
-    Expect(1, 73728, '\P{Tamil_supplement}', "");
-    Expect(0, 73728, '\P{^Tamil_supplement}', "");
-    Error('\p{:=Is_tamil_Supplement}');
-    Error('\P{:=Is_tamil_Supplement}');
+    Expect(1, 73727, '\p{-_Tamil_supplement}', "");
+    Expect(0, 73727, '\p{^-_Tamil_supplement}', "");
+    Expect(0, 73727, '\P{-_Tamil_supplement}', "");
+    Expect(1, 73727, '\P{^-_Tamil_supplement}', "");
+    Expect(0, 73728, '\p{-_Tamil_supplement}', "");
+    Expect(1, 73728, '\p{^-_Tamil_supplement}', "");
+    Expect(1, 73728, '\P{-_Tamil_supplement}', "");
+    Expect(0, 73728, '\P{^-_Tamil_supplement}', "");
+    Error('\p{_IS_Tamil_SUPPLEMENT/a/}');
+    Error('\P{_IS_Tamil_SUPPLEMENT/a/}');
     Expect(1, 73727, '\p{istamilsupplement}', "");
     Expect(0, 73727, '\p{^istamilsupplement}', "");
     Expect(0, 73727, '\P{istamilsupplement}', "");
@@ -122665,16 +123889,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^istamilsupplement}', "");
     Expect(1, 73728, '\P{istamilsupplement}', "");
     Expect(0, 73728, '\P{^istamilsupplement}', "");
-    Expect(1, 73727, '\p{--IS_tamil_SUPPLEMENT}', "");
-    Expect(0, 73727, '\p{^--IS_tamil_SUPPLEMENT}', "");
-    Expect(0, 73727, '\P{--IS_tamil_SUPPLEMENT}', "");
-    Expect(1, 73727, '\P{^--IS_tamil_SUPPLEMENT}', "");
-    Expect(0, 73728, '\p{--IS_tamil_SUPPLEMENT}', "");
-    Expect(1, 73728, '\p{^--IS_tamil_SUPPLEMENT}', "");
-    Expect(1, 73728, '\P{--IS_tamil_SUPPLEMENT}', "");
-    Expect(0, 73728, '\P{^--IS_tamil_SUPPLEMENT}', "");
-    Error('\p{	In_Tamil_SUPPLEMENT:=}');
-    Error('\P{	In_Tamil_SUPPLEMENT:=}');
+    Expect(1, 73727, '\p{-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(0, 73727, '\p{^-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(0, 73727, '\P{-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(1, 73727, '\P{^-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(0, 73728, '\p{-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(1, 73728, '\p{^-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(1, 73728, '\P{-_Is_Tamil_SUPPLEMENT}', "");
+    Expect(0, 73728, '\P{^-_Is_Tamil_SUPPLEMENT}', "");
+    Error('\p{_/a/In_Tamil_Supplement}');
+    Error('\P{_/a/In_Tamil_Supplement}');
     Expect(1, 73727, '\p{intamilsupplement}', "");
     Expect(0, 73727, '\p{^intamilsupplement}', "");
     Expect(0, 73727, '\P{intamilsupplement}', "");
@@ -122683,16 +123907,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^intamilsupplement}', "");
     Expect(1, 73728, '\P{intamilsupplement}', "");
     Expect(0, 73728, '\P{^intamilsupplement}', "");
-    Expect(1, 73727, '\p{-_In_Tamil_SUPPLEMENT}', "");
-    Expect(0, 73727, '\p{^-_In_Tamil_SUPPLEMENT}', "");
-    Expect(0, 73727, '\P{-_In_Tamil_SUPPLEMENT}', "");
-    Expect(1, 73727, '\P{^-_In_Tamil_SUPPLEMENT}', "");
-    Expect(0, 73728, '\p{-_In_Tamil_SUPPLEMENT}', "");
-    Expect(1, 73728, '\p{^-_In_Tamil_SUPPLEMENT}', "");
-    Expect(1, 73728, '\P{-_In_Tamil_SUPPLEMENT}', "");
-    Expect(0, 73728, '\P{^-_In_Tamil_SUPPLEMENT}', "");
-    Error('\p{ 	Tamil_SUP:=}');
-    Error('\P{ 	Tamil_SUP:=}');
+    Expect(1, 73727, '\p{ In_TAMIL_Supplement}', "");
+    Expect(0, 73727, '\p{^ In_TAMIL_Supplement}', "");
+    Expect(0, 73727, '\P{ In_TAMIL_Supplement}', "");
+    Expect(1, 73727, '\P{^ In_TAMIL_Supplement}', "");
+    Expect(0, 73728, '\p{ In_TAMIL_Supplement}', "");
+    Expect(1, 73728, '\p{^ In_TAMIL_Supplement}', "");
+    Expect(1, 73728, '\P{ In_TAMIL_Supplement}', "");
+    Expect(0, 73728, '\P{^ In_TAMIL_Supplement}', "");
+    Error('\p{	:=TAMIL_SUP}');
+    Error('\P{	:=TAMIL_SUP}');
     Expect(1, 73727, '\p{tamilsup}', "");
     Expect(0, 73727, '\p{^tamilsup}', "");
     Expect(0, 73727, '\P{tamilsup}', "");
@@ -122701,16 +123925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^tamilsup}', "");
     Expect(1, 73728, '\P{tamilsup}', "");
     Expect(0, 73728, '\P{^tamilsup}', "");
-    Expect(1, 73727, '\p{	Tamil_Sup}', "");
-    Expect(0, 73727, '\p{^	Tamil_Sup}', "");
-    Expect(0, 73727, '\P{	Tamil_Sup}', "");
-    Expect(1, 73727, '\P{^	Tamil_Sup}', "");
-    Expect(0, 73728, '\p{	Tamil_Sup}', "");
-    Expect(1, 73728, '\p{^	Tamil_Sup}', "");
-    Expect(1, 73728, '\P{	Tamil_Sup}', "");
-    Expect(0, 73728, '\P{^	Tamil_Sup}', "");
-    Error('\p{:= _is_TAMIL_sup}');
-    Error('\P{:= _is_TAMIL_sup}');
+    Expect(1, 73727, '\p{ _tamil_SUP}', "");
+    Expect(0, 73727, '\p{^ _tamil_SUP}', "");
+    Expect(0, 73727, '\P{ _tamil_SUP}', "");
+    Expect(1, 73727, '\P{^ _tamil_SUP}', "");
+    Expect(0, 73728, '\p{ _tamil_SUP}', "");
+    Expect(1, 73728, '\p{^ _tamil_SUP}', "");
+    Expect(1, 73728, '\P{ _tamil_SUP}', "");
+    Expect(0, 73728, '\P{^ _tamil_SUP}', "");
+    Error('\p{/a/__IS_TAMIL_sup}');
+    Error('\P{/a/__IS_TAMIL_sup}');
     Expect(1, 73727, '\p{istamilsup}', "");
     Expect(0, 73727, '\p{^istamilsup}', "");
     Expect(0, 73727, '\P{istamilsup}', "");
@@ -122719,16 +123943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^istamilsup}', "");
     Expect(1, 73728, '\P{istamilsup}', "");
     Expect(0, 73728, '\P{^istamilsup}', "");
-    Expect(1, 73727, '\p{	_Is_Tamil_SUP}', "");
-    Expect(0, 73727, '\p{^	_Is_Tamil_SUP}', "");
-    Expect(0, 73727, '\P{	_Is_Tamil_SUP}', "");
-    Expect(1, 73727, '\P{^	_Is_Tamil_SUP}', "");
-    Expect(0, 73728, '\p{	_Is_Tamil_SUP}', "");
-    Expect(1, 73728, '\p{^	_Is_Tamil_SUP}', "");
-    Expect(1, 73728, '\P{	_Is_Tamil_SUP}', "");
-    Expect(0, 73728, '\P{^	_Is_Tamil_SUP}', "");
-    Error('\p{ 	In_Tamil_sup/a/}');
-    Error('\P{ 	In_Tamil_sup/a/}');
+    Expect(1, 73727, '\p{	Is_Tamil_Sup}', "");
+    Expect(0, 73727, '\p{^	Is_Tamil_Sup}', "");
+    Expect(0, 73727, '\P{	Is_Tamil_Sup}', "");
+    Expect(1, 73727, '\P{^	Is_Tamil_Sup}', "");
+    Expect(0, 73728, '\p{	Is_Tamil_Sup}', "");
+    Expect(1, 73728, '\p{^	Is_Tamil_Sup}', "");
+    Expect(1, 73728, '\P{	Is_Tamil_Sup}', "");
+    Expect(0, 73728, '\P{^	Is_Tamil_Sup}', "");
+    Error('\p{-	In_Tamil_Sup:=}');
+    Error('\P{-	In_Tamil_Sup:=}');
     Expect(1, 73727, '\p{intamilsup}', "");
     Expect(0, 73727, '\p{^intamilsup}', "");
     Expect(0, 73727, '\P{intamilsup}', "");
@@ -122737,16 +123961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^intamilsup}', "");
     Expect(1, 73728, '\P{intamilsup}', "");
     Expect(0, 73728, '\P{^intamilsup}', "");
-    Expect(1, 73727, '\p{ IN_Tamil_sup}', "");
-    Expect(0, 73727, '\p{^ IN_Tamil_sup}', "");
-    Expect(0, 73727, '\P{ IN_Tamil_sup}', "");
-    Expect(1, 73727, '\P{^ IN_Tamil_sup}', "");
-    Expect(0, 73728, '\p{ IN_Tamil_sup}', "");
-    Expect(1, 73728, '\p{^ IN_Tamil_sup}', "");
-    Expect(1, 73728, '\P{ IN_Tamil_sup}', "");
-    Expect(0, 73728, '\P{^ IN_Tamil_sup}', "");
-    Error('\p{:=Tangsa}');
-    Error('\P{:=Tangsa}');
+    Expect(1, 73727, '\p{ IN_tamil_sup}', "");
+    Expect(0, 73727, '\p{^ IN_tamil_sup}', "");
+    Expect(0, 73727, '\P{ IN_tamil_sup}', "");
+    Expect(1, 73727, '\P{^ IN_tamil_sup}', "");
+    Expect(0, 73728, '\p{ IN_tamil_sup}', "");
+    Expect(1, 73728, '\p{^ IN_tamil_sup}', "");
+    Expect(1, 73728, '\P{ IN_tamil_sup}', "");
+    Expect(0, 73728, '\P{^ IN_tamil_sup}', "");
+    Error('\p{  TANGSA:=}');
+    Error('\P{  TANGSA:=}');
     Expect(1, 92873, '\p{tangsa}', "");
     Expect(0, 92873, '\p{^tangsa}', "");
     Expect(0, 92873, '\P{tangsa}', "");
@@ -122755,16 +123979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^tangsa}', "");
     Expect(1, 92874, '\P{tangsa}', "");
     Expect(0, 92874, '\P{^tangsa}', "");
-    Expect(1, 92873, '\p{--Tangsa}', "");
-    Expect(0, 92873, '\p{^--Tangsa}', "");
-    Expect(0, 92873, '\P{--Tangsa}', "");
-    Expect(1, 92873, '\P{^--Tangsa}', "");
-    Expect(0, 92874, '\p{--Tangsa}', "");
-    Expect(1, 92874, '\p{^--Tangsa}', "");
-    Expect(1, 92874, '\P{--Tangsa}', "");
-    Expect(0, 92874, '\P{^--Tangsa}', "");
-    Error('\p{-:=is_Tangsa}');
-    Error('\P{-:=is_Tangsa}');
+    Expect(1, 92873, '\p{ TANGSA}', "");
+    Expect(0, 92873, '\p{^ TANGSA}', "");
+    Expect(0, 92873, '\P{ TANGSA}', "");
+    Expect(1, 92873, '\P{^ TANGSA}', "");
+    Expect(0, 92874, '\p{ TANGSA}', "");
+    Expect(1, 92874, '\p{^ TANGSA}', "");
+    Expect(1, 92874, '\P{ TANGSA}', "");
+    Expect(0, 92874, '\P{^ TANGSA}', "");
+    Error('\p{/a/ -Is_Tangsa}');
+    Error('\P{/a/ -Is_Tangsa}');
     Expect(1, 92873, '\p{istangsa}', "");
     Expect(0, 92873, '\p{^istangsa}', "");
     Expect(0, 92873, '\P{istangsa}', "");
@@ -122773,16 +123997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^istangsa}', "");
     Expect(1, 92874, '\P{istangsa}', "");
     Expect(0, 92874, '\P{^istangsa}', "");
-    Expect(1, 92873, '\p{-IS_tangsa}', "");
-    Expect(0, 92873, '\p{^-IS_tangsa}', "");
-    Expect(0, 92873, '\P{-IS_tangsa}', "");
-    Expect(1, 92873, '\P{^-IS_tangsa}', "");
-    Expect(0, 92874, '\p{-IS_tangsa}', "");
-    Expect(1, 92874, '\p{^-IS_tangsa}', "");
-    Expect(1, 92874, '\P{-IS_tangsa}', "");
-    Expect(0, 92874, '\P{^-IS_tangsa}', "");
-    Error('\p{/a/_-Tnsa}');
-    Error('\P{/a/_-Tnsa}');
+    Expect(1, 92873, '\p{_Is_tangsa}', "");
+    Expect(0, 92873, '\p{^_Is_tangsa}', "");
+    Expect(0, 92873, '\P{_Is_tangsa}', "");
+    Expect(1, 92873, '\P{^_Is_tangsa}', "");
+    Expect(0, 92874, '\p{_Is_tangsa}', "");
+    Expect(1, 92874, '\p{^_Is_tangsa}', "");
+    Expect(1, 92874, '\P{_Is_tangsa}', "");
+    Expect(0, 92874, '\P{^_Is_tangsa}', "");
+    Error('\p{_Tnsa:=}');
+    Error('\P{_Tnsa:=}');
     Expect(1, 92873, '\p{tnsa}', "");
     Expect(0, 92873, '\p{^tnsa}', "");
     Expect(0, 92873, '\P{tnsa}', "");
@@ -122791,16 +124015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^tnsa}', "");
     Expect(1, 92874, '\P{tnsa}', "");
     Expect(0, 92874, '\P{^tnsa}', "");
-    Expect(1, 92873, '\p{	tnsa}', "");
-    Expect(0, 92873, '\p{^	tnsa}', "");
-    Expect(0, 92873, '\P{	tnsa}', "");
-    Expect(1, 92873, '\P{^	tnsa}', "");
-    Expect(0, 92874, '\p{	tnsa}', "");
-    Expect(1, 92874, '\p{^	tnsa}', "");
-    Expect(1, 92874, '\P{	tnsa}', "");
-    Expect(0, 92874, '\P{^	tnsa}', "");
-    Error('\p{	/a/Is_TNSA}');
-    Error('\P{	/a/Is_TNSA}');
+    Expect(1, 92873, '\p{-Tnsa}', "");
+    Expect(0, 92873, '\p{^-Tnsa}', "");
+    Expect(0, 92873, '\P{-Tnsa}', "");
+    Expect(1, 92873, '\P{^-Tnsa}', "");
+    Expect(0, 92874, '\p{-Tnsa}', "");
+    Expect(1, 92874, '\p{^-Tnsa}', "");
+    Expect(1, 92874, '\P{-Tnsa}', "");
+    Expect(0, 92874, '\P{^-Tnsa}', "");
+    Error('\p{:=Is_Tnsa}');
+    Error('\P{:=Is_Tnsa}');
     Expect(1, 92873, '\p{istnsa}', "");
     Expect(0, 92873, '\p{^istnsa}', "");
     Expect(0, 92873, '\P{istnsa}', "");
@@ -122809,16 +124033,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^istnsa}', "");
     Expect(1, 92874, '\P{istnsa}', "");
     Expect(0, 92874, '\P{^istnsa}', "");
-    Expect(1, 92873, '\p{ 	is_Tnsa}', "");
-    Expect(0, 92873, '\p{^ 	is_Tnsa}', "");
-    Expect(0, 92873, '\P{ 	is_Tnsa}', "");
-    Expect(1, 92873, '\P{^ 	is_Tnsa}', "");
-    Expect(0, 92874, '\p{ 	is_Tnsa}', "");
-    Expect(1, 92874, '\p{^ 	is_Tnsa}', "");
-    Expect(1, 92874, '\P{ 	is_Tnsa}', "");
-    Expect(0, 92874, '\P{^ 	is_Tnsa}', "");
-    Error('\p{_ TANGUT:=}');
-    Error('\P{_ TANGUT:=}');
+    Expect(1, 92873, '\p{	Is_tnsa}', "");
+    Expect(0, 92873, '\p{^	Is_tnsa}', "");
+    Expect(0, 92873, '\P{	Is_tnsa}', "");
+    Expect(1, 92873, '\P{^	Is_tnsa}', "");
+    Expect(0, 92874, '\p{	Is_tnsa}', "");
+    Expect(1, 92874, '\p{^	Is_tnsa}', "");
+    Expect(1, 92874, '\P{	Is_tnsa}', "");
+    Expect(0, 92874, '\P{^	Is_tnsa}', "");
+    Error('\p{	-Tangut:=}');
+    Error('\P{	-Tangut:=}');
     Expect(1, 101640, '\p{tangut}', "");
     Expect(0, 101640, '\p{^tangut}', "");
     Expect(0, 101640, '\P{tangut}', "");
@@ -122827,16 +124051,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101641, '\p{^tangut}', "");
     Expect(1, 101641, '\P{tangut}', "");
     Expect(0, 101641, '\P{^tangut}', "");
-    Expect(1, 101640, '\p{_-Tangut}', "");
-    Expect(0, 101640, '\p{^_-Tangut}', "");
-    Expect(0, 101640, '\P{_-Tangut}', "");
-    Expect(1, 101640, '\P{^_-Tangut}', "");
-    Expect(0, 101641, '\p{_-Tangut}', "");
-    Expect(1, 101641, '\p{^_-Tangut}', "");
-    Expect(1, 101641, '\P{_-Tangut}', "");
-    Expect(0, 101641, '\P{^_-Tangut}', "");
-    Error('\p{_	is_TANGUT:=}');
-    Error('\P{_	is_TANGUT:=}');
+    Expect(1, 101640, '\p{	_tangut}', "");
+    Expect(0, 101640, '\p{^	_tangut}', "");
+    Expect(0, 101640, '\P{	_tangut}', "");
+    Expect(1, 101640, '\P{^	_tangut}', "");
+    Expect(0, 101641, '\p{	_tangut}', "");
+    Expect(1, 101641, '\p{^	_tangut}', "");
+    Expect(1, 101641, '\P{	_tangut}', "");
+    Expect(0, 101641, '\P{^	_tangut}', "");
+    Error('\p{/a/is_TANGUT}');
+    Error('\P{/a/is_TANGUT}');
     Expect(1, 101640, '\p{istangut}', "");
     Expect(0, 101640, '\p{^istangut}', "");
     Expect(0, 101640, '\P{istangut}', "");
@@ -122845,16 +124069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101641, '\p{^istangut}', "");
     Expect(1, 101641, '\P{istangut}', "");
     Expect(0, 101641, '\P{^istangut}', "");
-    Expect(1, 101640, '\p{ -IS_Tangut}', "");
-    Expect(0, 101640, '\p{^ -IS_Tangut}', "");
-    Expect(0, 101640, '\P{ -IS_Tangut}', "");
-    Expect(1, 101640, '\P{^ -IS_Tangut}', "");
-    Expect(0, 101641, '\p{ -IS_Tangut}', "");
-    Expect(1, 101641, '\p{^ -IS_Tangut}', "");
-    Expect(1, 101641, '\P{ -IS_Tangut}', "");
-    Expect(0, 101641, '\P{^ -IS_Tangut}', "");
-    Error('\p{-TANG:=}');
-    Error('\P{-TANG:=}');
+    Expect(1, 101640, '\p{ -Is_tangut}', "");
+    Expect(0, 101640, '\p{^ -Is_tangut}', "");
+    Expect(0, 101640, '\P{ -Is_tangut}', "");
+    Expect(1, 101640, '\P{^ -Is_tangut}', "");
+    Expect(0, 101641, '\p{ -Is_tangut}', "");
+    Expect(1, 101641, '\p{^ -Is_tangut}', "");
+    Expect(1, 101641, '\P{ -Is_tangut}', "");
+    Expect(0, 101641, '\P{^ -Is_tangut}', "");
+    Error('\p{-Tang:=}');
+    Error('\P{-Tang:=}');
     Expect(1, 101640, '\p{tang}', "");
     Expect(0, 101640, '\p{^tang}', "");
     Expect(0, 101640, '\P{tang}', "");
@@ -122863,16 +124087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101641, '\p{^tang}', "");
     Expect(1, 101641, '\P{tang}', "");
     Expect(0, 101641, '\P{^tang}', "");
-    Expect(1, 101640, '\p{	Tang}', "");
-    Expect(0, 101640, '\p{^	Tang}', "");
-    Expect(0, 101640, '\P{	Tang}', "");
-    Expect(1, 101640, '\P{^	Tang}', "");
-    Expect(0, 101641, '\p{	Tang}', "");
-    Expect(1, 101641, '\p{^	Tang}', "");
-    Expect(1, 101641, '\P{	Tang}', "");
-    Expect(0, 101641, '\P{^	Tang}', "");
-    Error('\p{:=_Is_TANG}');
-    Error('\P{:=_Is_TANG}');
+    Expect(1, 101640, '\p{	_Tang}', "");
+    Expect(0, 101640, '\p{^	_Tang}', "");
+    Expect(0, 101640, '\P{	_Tang}', "");
+    Expect(1, 101640, '\P{^	_Tang}', "");
+    Expect(0, 101641, '\p{	_Tang}', "");
+    Expect(1, 101641, '\p{^	_Tang}', "");
+    Expect(1, 101641, '\P{	_Tang}', "");
+    Expect(0, 101641, '\P{^	_Tang}', "");
+    Error('\p{:=_	is_TANG}');
+    Error('\P{:=_	is_TANG}');
     Expect(1, 101640, '\p{istang}', "");
     Expect(0, 101640, '\p{^istang}', "");
     Expect(0, 101640, '\P{istang}', "");
@@ -122881,16 +124105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101641, '\p{^istang}', "");
     Expect(1, 101641, '\P{istang}', "");
     Expect(0, 101641, '\P{^istang}', "");
-    Expect(1, 101640, '\p{ 	Is_tang}', "");
-    Expect(0, 101640, '\p{^ 	Is_tang}', "");
-    Expect(0, 101640, '\P{ 	Is_tang}', "");
-    Expect(1, 101640, '\P{^ 	Is_tang}', "");
-    Expect(0, 101641, '\p{ 	Is_tang}', "");
-    Expect(1, 101641, '\p{^ 	Is_tang}', "");
-    Expect(1, 101641, '\P{ 	Is_tang}', "");
-    Expect(0, 101641, '\P{^ 	Is_tang}', "");
-    Error('\p{ :=TANGUT_Components}');
-    Error('\P{ :=TANGUT_Components}');
+    Expect(1, 101640, '\p{- Is_Tang}', "");
+    Expect(0, 101640, '\p{^- Is_Tang}', "");
+    Expect(0, 101640, '\P{- Is_Tang}', "");
+    Expect(1, 101640, '\P{^- Is_Tang}', "");
+    Expect(0, 101641, '\p{- Is_Tang}', "");
+    Expect(1, 101641, '\p{^- Is_Tang}', "");
+    Expect(1, 101641, '\P{- Is_Tang}', "");
+    Expect(0, 101641, '\P{^- Is_Tang}', "");
+    Error('\p{:= TANGUT_Components}');
+    Error('\P{:= TANGUT_Components}');
     Expect(1, 101119, '\p{tangutcomponents}', "");
     Expect(0, 101119, '\p{^tangutcomponents}', "");
     Expect(0, 101119, '\P{tangutcomponents}', "");
@@ -122899,16 +124123,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101120, '\p{^tangutcomponents}', "");
     Expect(1, 101120, '\P{tangutcomponents}', "");
     Expect(0, 101120, '\P{^tangutcomponents}', "");
-    Expect(1, 101119, '\p{_-tangut_components}', "");
-    Expect(0, 101119, '\p{^_-tangut_components}', "");
-    Expect(0, 101119, '\P{_-tangut_components}', "");
-    Expect(1, 101119, '\P{^_-tangut_components}', "");
-    Expect(0, 101120, '\p{_-tangut_components}', "");
-    Expect(1, 101120, '\p{^_-tangut_components}', "");
-    Expect(1, 101120, '\P{_-tangut_components}', "");
-    Expect(0, 101120, '\P{^_-tangut_components}', "");
-    Error('\p{	Is_tangut_components/a/}');
-    Error('\P{	Is_tangut_components/a/}');
+    Expect(1, 101119, '\p{ _Tangut_components}', "");
+    Expect(0, 101119, '\p{^ _Tangut_components}', "");
+    Expect(0, 101119, '\P{ _Tangut_components}', "");
+    Expect(1, 101119, '\P{^ _Tangut_components}', "");
+    Expect(0, 101120, '\p{ _Tangut_components}', "");
+    Expect(1, 101120, '\p{^ _Tangut_components}', "");
+    Expect(1, 101120, '\P{ _Tangut_components}', "");
+    Expect(0, 101120, '\P{^ _Tangut_components}', "");
+    Error('\p{:= is_Tangut_Components}');
+    Error('\P{:= is_Tangut_Components}');
     Expect(1, 101119, '\p{istangutcomponents}', "");
     Expect(0, 101119, '\p{^istangutcomponents}', "");
     Expect(0, 101119, '\P{istangutcomponents}', "");
@@ -122917,16 +124141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101120, '\p{^istangutcomponents}', "");
     Expect(1, 101120, '\P{istangutcomponents}', "");
     Expect(0, 101120, '\P{^istangutcomponents}', "");
-    Expect(1, 101119, '\p{_-Is_Tangut_Components}', "");
-    Expect(0, 101119, '\p{^_-Is_Tangut_Components}', "");
-    Expect(0, 101119, '\P{_-Is_Tangut_Components}', "");
-    Expect(1, 101119, '\P{^_-Is_Tangut_Components}', "");
-    Expect(0, 101120, '\p{_-Is_Tangut_Components}', "");
-    Expect(1, 101120, '\p{^_-Is_Tangut_Components}', "");
-    Expect(1, 101120, '\P{_-Is_Tangut_Components}', "");
-    Expect(0, 101120, '\P{^_-Is_Tangut_Components}', "");
-    Error('\p{/a/-	IN_tangut_COMPONENTS}');
-    Error('\P{/a/-	IN_tangut_COMPONENTS}');
+    Expect(1, 101119, '\p{-is_tangut_components}', "");
+    Expect(0, 101119, '\p{^-is_tangut_components}', "");
+    Expect(0, 101119, '\P{-is_tangut_components}', "");
+    Expect(1, 101119, '\P{^-is_tangut_components}', "");
+    Expect(0, 101120, '\p{-is_tangut_components}', "");
+    Expect(1, 101120, '\p{^-is_tangut_components}', "");
+    Expect(1, 101120, '\P{-is_tangut_components}', "");
+    Expect(0, 101120, '\P{^-is_tangut_components}', "");
+    Error('\p{/a/_IN_TANGUT_Components}');
+    Error('\P{/a/_IN_TANGUT_Components}');
     Expect(1, 101119, '\p{intangutcomponents}', "");
     Expect(0, 101119, '\p{^intangutcomponents}', "");
     Expect(0, 101119, '\P{intangutcomponents}', "");
@@ -122935,16 +124159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101120, '\p{^intangutcomponents}', "");
     Expect(1, 101120, '\P{intangutcomponents}', "");
     Expect(0, 101120, '\P{^intangutcomponents}', "");
-    Expect(1, 101119, '\p{_ In_TANGUT_Components}', "");
-    Expect(0, 101119, '\p{^_ In_TANGUT_Components}', "");
-    Expect(0, 101119, '\P{_ In_TANGUT_Components}', "");
-    Expect(1, 101119, '\P{^_ In_TANGUT_Components}', "");
-    Expect(0, 101120, '\p{_ In_TANGUT_Components}', "");
-    Expect(1, 101120, '\p{^_ In_TANGUT_Components}', "");
-    Expect(1, 101120, '\P{_ In_TANGUT_Components}', "");
-    Expect(0, 101120, '\P{^_ In_TANGUT_Components}', "");
-    Error('\p{-/a/tangut_Supplement}');
-    Error('\P{-/a/tangut_Supplement}');
+    Expect(1, 101119, '\p{  IN_Tangut_components}', "");
+    Expect(0, 101119, '\p{^  IN_Tangut_components}', "");
+    Expect(0, 101119, '\P{  IN_Tangut_components}', "");
+    Expect(1, 101119, '\P{^  IN_Tangut_components}', "");
+    Expect(0, 101120, '\p{  IN_Tangut_components}', "");
+    Expect(1, 101120, '\p{^  IN_Tangut_components}', "");
+    Expect(1, 101120, '\P{  IN_Tangut_components}', "");
+    Expect(0, 101120, '\P{^  IN_Tangut_components}', "");
+    Error('\p{ :=tangut_supplement}');
+    Error('\P{ :=tangut_supplement}');
     Expect(1, 101759, '\p{tangutsupplement}', "");
     Expect(0, 101759, '\p{^tangutsupplement}', "");
     Expect(0, 101759, '\P{tangutsupplement}', "");
@@ -122953,16 +124177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101760, '\p{^tangutsupplement}', "");
     Expect(1, 101760, '\P{tangutsupplement}', "");
     Expect(0, 101760, '\P{^tangutsupplement}', "");
-    Expect(1, 101759, '\p{__Tangut_supplement}', "");
-    Expect(0, 101759, '\p{^__Tangut_supplement}', "");
-    Expect(0, 101759, '\P{__Tangut_supplement}', "");
-    Expect(1, 101759, '\P{^__Tangut_supplement}', "");
-    Expect(0, 101760, '\p{__Tangut_supplement}', "");
-    Expect(1, 101760, '\p{^__Tangut_supplement}', "");
-    Expect(1, 101760, '\P{__Tangut_supplement}', "");
-    Expect(0, 101760, '\P{^__Tangut_supplement}', "");
-    Error('\p{/a/	 Is_Tangut_SUPPLEMENT}');
-    Error('\P{/a/	 Is_Tangut_SUPPLEMENT}');
+    Expect(1, 101759, '\p{ -TANGUT_SUPPLEMENT}', "");
+    Expect(0, 101759, '\p{^ -TANGUT_SUPPLEMENT}', "");
+    Expect(0, 101759, '\P{ -TANGUT_SUPPLEMENT}', "");
+    Expect(1, 101759, '\P{^ -TANGUT_SUPPLEMENT}', "");
+    Expect(0, 101760, '\p{ -TANGUT_SUPPLEMENT}', "");
+    Expect(1, 101760, '\p{^ -TANGUT_SUPPLEMENT}', "");
+    Expect(1, 101760, '\P{ -TANGUT_SUPPLEMENT}', "");
+    Expect(0, 101760, '\P{^ -TANGUT_SUPPLEMENT}', "");
+    Error('\p{/a/		IS_Tangut_supplement}');
+    Error('\P{/a/		IS_Tangut_supplement}');
     Expect(1, 101759, '\p{istangutsupplement}', "");
     Expect(0, 101759, '\p{^istangutsupplement}', "");
     Expect(0, 101759, '\P{istangutsupplement}', "");
@@ -122971,16 +124195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101760, '\p{^istangutsupplement}', "");
     Expect(1, 101760, '\P{istangutsupplement}', "");
     Expect(0, 101760, '\P{^istangutsupplement}', "");
-    Expect(1, 101759, '\p{ is_Tangut_supplement}', "");
-    Expect(0, 101759, '\p{^ is_Tangut_supplement}', "");
-    Expect(0, 101759, '\P{ is_Tangut_supplement}', "");
-    Expect(1, 101759, '\P{^ is_Tangut_supplement}', "");
-    Expect(0, 101760, '\p{ is_Tangut_supplement}', "");
-    Expect(1, 101760, '\p{^ is_Tangut_supplement}', "");
-    Expect(1, 101760, '\P{ is_Tangut_supplement}', "");
-    Expect(0, 101760, '\P{^ is_Tangut_supplement}', "");
-    Error('\p{-:=in_tangut_SUPPLEMENT}');
-    Error('\P{-:=in_tangut_SUPPLEMENT}');
+    Expect(1, 101759, '\p{-_is_Tangut_Supplement}', "");
+    Expect(0, 101759, '\p{^-_is_Tangut_Supplement}', "");
+    Expect(0, 101759, '\P{-_is_Tangut_Supplement}', "");
+    Expect(1, 101759, '\P{^-_is_Tangut_Supplement}', "");
+    Expect(0, 101760, '\p{-_is_Tangut_Supplement}', "");
+    Expect(1, 101760, '\p{^-_is_Tangut_Supplement}', "");
+    Expect(1, 101760, '\P{-_is_Tangut_Supplement}', "");
+    Expect(0, 101760, '\P{^-_is_Tangut_Supplement}', "");
+    Error('\p{	/a/in_Tangut_Supplement}');
+    Error('\P{	/a/in_Tangut_Supplement}');
     Expect(1, 101759, '\p{intangutsupplement}', "");
     Expect(0, 101759, '\p{^intangutsupplement}', "");
     Expect(0, 101759, '\P{intangutsupplement}', "");
@@ -122989,16 +124213,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101760, '\p{^intangutsupplement}', "");
     Expect(1, 101760, '\P{intangutsupplement}', "");
     Expect(0, 101760, '\P{^intangutsupplement}', "");
-    Expect(1, 101759, '\p{-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(0, 101759, '\p{^-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(0, 101759, '\P{-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(1, 101759, '\P{^-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(0, 101760, '\p{-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(1, 101760, '\p{^-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(1, 101760, '\P{-_In_TANGUT_SUPPLEMENT}', "");
-    Expect(0, 101760, '\P{^-_In_TANGUT_SUPPLEMENT}', "");
-    Error('\p{:=_-Tangut_Sup}');
-    Error('\P{:=_-Tangut_Sup}');
+    Expect(1, 101759, '\p{_ In_tangut_Supplement}', "");
+    Expect(0, 101759, '\p{^_ In_tangut_Supplement}', "");
+    Expect(0, 101759, '\P{_ In_tangut_Supplement}', "");
+    Expect(1, 101759, '\P{^_ In_tangut_Supplement}', "");
+    Expect(0, 101760, '\p{_ In_tangut_Supplement}', "");
+    Expect(1, 101760, '\p{^_ In_tangut_Supplement}', "");
+    Expect(1, 101760, '\P{_ In_tangut_Supplement}', "");
+    Expect(0, 101760, '\P{^_ In_tangut_Supplement}', "");
+    Error('\p{	:=Tangut_Sup}');
+    Error('\P{	:=Tangut_Sup}');
     Expect(1, 101759, '\p{tangutsup}', "");
     Expect(0, 101759, '\p{^tangutsup}', "");
     Expect(0, 101759, '\P{tangutsup}', "");
@@ -123007,16 +124231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101760, '\p{^tangutsup}', "");
     Expect(1, 101760, '\P{tangutsup}', "");
     Expect(0, 101760, '\P{^tangutsup}', "");
-    Expect(1, 101759, '\p{- tangut_Sup}', "");
-    Expect(0, 101759, '\p{^- tangut_Sup}', "");
-    Expect(0, 101759, '\P{- tangut_Sup}', "");
-    Expect(1, 101759, '\P{^- tangut_Sup}', "");
-    Expect(0, 101760, '\p{- tangut_Sup}', "");
-    Expect(1, 101760, '\p{^- tangut_Sup}', "");
-    Expect(1, 101760, '\P{- tangut_Sup}', "");
-    Expect(0, 101760, '\P{^- tangut_Sup}', "");
-    Error('\p{_/a/Is_tangut_SUP}');
-    Error('\P{_/a/Is_tangut_SUP}');
+    Expect(1, 101759, '\p{-	Tangut_Sup}', "");
+    Expect(0, 101759, '\p{^-	Tangut_Sup}', "");
+    Expect(0, 101759, '\P{-	Tangut_Sup}', "");
+    Expect(1, 101759, '\P{^-	Tangut_Sup}', "");
+    Expect(0, 101760, '\p{-	Tangut_Sup}', "");
+    Expect(1, 101760, '\p{^-	Tangut_Sup}', "");
+    Expect(1, 101760, '\P{-	Tangut_Sup}', "");
+    Expect(0, 101760, '\P{^-	Tangut_Sup}', "");
+    Error('\p{	_Is_Tangut_sup:=}');
+    Error('\P{	_Is_Tangut_sup:=}');
     Expect(1, 101759, '\p{istangutsup}', "");
     Expect(0, 101759, '\p{^istangutsup}', "");
     Expect(0, 101759, '\P{istangutsup}', "");
@@ -123025,16 +124249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101760, '\p{^istangutsup}', "");
     Expect(1, 101760, '\P{istangutsup}', "");
     Expect(0, 101760, '\P{^istangutsup}', "");
-    Expect(1, 101759, '\p{-IS_Tangut_Sup}', "");
-    Expect(0, 101759, '\p{^-IS_Tangut_Sup}', "");
-    Expect(0, 101759, '\P{-IS_Tangut_Sup}', "");
-    Expect(1, 101759, '\P{^-IS_Tangut_Sup}', "");
-    Expect(0, 101760, '\p{-IS_Tangut_Sup}', "");
-    Expect(1, 101760, '\p{^-IS_Tangut_Sup}', "");
-    Expect(1, 101760, '\P{-IS_Tangut_Sup}', "");
-    Expect(0, 101760, '\P{^-IS_Tangut_Sup}', "");
-    Error('\p{ in_Tangut_SUP/a/}');
-    Error('\P{ in_Tangut_SUP/a/}');
+    Expect(1, 101759, '\p{-_Is_TANGUT_SUP}', "");
+    Expect(0, 101759, '\p{^-_Is_TANGUT_SUP}', "");
+    Expect(0, 101759, '\P{-_Is_TANGUT_SUP}', "");
+    Expect(1, 101759, '\P{^-_Is_TANGUT_SUP}', "");
+    Expect(0, 101760, '\p{-_Is_TANGUT_SUP}', "");
+    Expect(1, 101760, '\p{^-_Is_TANGUT_SUP}', "");
+    Expect(1, 101760, '\P{-_Is_TANGUT_SUP}', "");
+    Expect(0, 101760, '\P{^-_Is_TANGUT_SUP}', "");
+    Error('\p{-in_TANGUT_SUP:=}');
+    Error('\P{-in_TANGUT_SUP:=}');
     Expect(1, 101759, '\p{intangutsup}', "");
     Expect(0, 101759, '\p{^intangutsup}', "");
     Expect(0, 101759, '\P{intangutsup}', "");
@@ -123043,16 +124267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101760, '\p{^intangutsup}', "");
     Expect(1, 101760, '\P{intangutsup}', "");
     Expect(0, 101760, '\P{^intangutsup}', "");
-    Expect(1, 101759, '\p{  in_Tangut_Sup}', "");
-    Expect(0, 101759, '\p{^  in_Tangut_Sup}', "");
-    Expect(0, 101759, '\P{  in_Tangut_Sup}', "");
-    Expect(1, 101759, '\P{^  in_Tangut_Sup}', "");
-    Expect(0, 101760, '\p{  in_Tangut_Sup}', "");
-    Expect(1, 101760, '\p{^  in_Tangut_Sup}', "");
-    Expect(1, 101760, '\P{  in_Tangut_Sup}', "");
-    Expect(0, 101760, '\P{^  in_Tangut_Sup}', "");
-    Error('\p{/a/	_Telugu}');
-    Error('\P{/a/	_Telugu}');
+    Expect(1, 101759, '\p{-In_Tangut_sup}', "");
+    Expect(0, 101759, '\p{^-In_Tangut_sup}', "");
+    Expect(0, 101759, '\P{-In_Tangut_sup}', "");
+    Expect(1, 101759, '\P{^-In_Tangut_sup}', "");
+    Expect(0, 101760, '\p{-In_Tangut_sup}', "");
+    Expect(1, 101760, '\p{^-In_Tangut_sup}', "");
+    Expect(1, 101760, '\P{-In_Tangut_sup}', "");
+    Expect(0, 101760, '\P{^-In_Tangut_sup}', "");
+    Error('\p{-_Telugu/a/}');
+    Error('\P{-_Telugu/a/}');
     Expect(1, 7410, '\p{telugu}', "");
     Expect(0, 7410, '\p{^telugu}', "");
     Expect(0, 7410, '\P{telugu}', "");
@@ -123061,16 +124285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7411, '\p{^telugu}', "");
     Expect(1, 7411, '\P{telugu}', "");
     Expect(0, 7411, '\P{^telugu}', "");
-    Expect(1, 7410, '\p{ TELUGU}', "");
-    Expect(0, 7410, '\p{^ TELUGU}', "");
-    Expect(0, 7410, '\P{ TELUGU}', "");
-    Expect(1, 7410, '\P{^ TELUGU}', "");
-    Expect(0, 7411, '\p{ TELUGU}', "");
-    Expect(1, 7411, '\p{^ TELUGU}', "");
-    Expect(1, 7411, '\P{ TELUGU}', "");
-    Expect(0, 7411, '\P{^ TELUGU}', "");
-    Error('\p{:=	 is_TELUGU}');
-    Error('\P{:=	 is_TELUGU}');
+    Expect(1, 7410, '\p{_ telugu}', "");
+    Expect(0, 7410, '\p{^_ telugu}', "");
+    Expect(0, 7410, '\P{_ telugu}', "");
+    Expect(1, 7410, '\P{^_ telugu}', "");
+    Expect(0, 7411, '\p{_ telugu}', "");
+    Expect(1, 7411, '\p{^_ telugu}', "");
+    Expect(1, 7411, '\P{_ telugu}', "");
+    Expect(0, 7411, '\P{^_ telugu}', "");
+    Error('\p{/a/-IS_Telugu}');
+    Error('\P{/a/-IS_Telugu}');
     Expect(1, 7410, '\p{istelugu}', "");
     Expect(0, 7410, '\p{^istelugu}', "");
     Expect(0, 7410, '\P{istelugu}', "");
@@ -123079,16 +124303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7411, '\p{^istelugu}', "");
     Expect(1, 7411, '\P{istelugu}', "");
     Expect(0, 7411, '\P{^istelugu}', "");
-    Expect(1, 7410, '\p{_ is_Telugu}', "");
-    Expect(0, 7410, '\p{^_ is_Telugu}', "");
-    Expect(0, 7410, '\P{_ is_Telugu}', "");
-    Expect(1, 7410, '\P{^_ is_Telugu}', "");
-    Expect(0, 7411, '\p{_ is_Telugu}', "");
-    Expect(1, 7411, '\p{^_ is_Telugu}', "");
-    Expect(1, 7411, '\P{_ is_Telugu}', "");
-    Expect(0, 7411, '\P{^_ is_Telugu}', "");
-    Error('\p{/a/_ Telu}');
-    Error('\P{/a/_ Telu}');
+    Expect(1, 7410, '\p{--Is_Telugu}', "");
+    Expect(0, 7410, '\p{^--Is_Telugu}', "");
+    Expect(0, 7410, '\P{--Is_Telugu}', "");
+    Expect(1, 7410, '\P{^--Is_Telugu}', "");
+    Expect(0, 7411, '\p{--Is_Telugu}', "");
+    Expect(1, 7411, '\p{^--Is_Telugu}', "");
+    Expect(1, 7411, '\P{--Is_Telugu}', "");
+    Expect(0, 7411, '\P{^--Is_Telugu}', "");
+    Error('\p{-:=Telu}');
+    Error('\P{-:=Telu}');
     Expect(1, 7410, '\p{telu}', "");
     Expect(0, 7410, '\p{^telu}', "");
     Expect(0, 7410, '\P{telu}', "");
@@ -123097,16 +124321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7411, '\p{^telu}', "");
     Expect(1, 7411, '\P{telu}', "");
     Expect(0, 7411, '\P{^telu}', "");
-    Expect(1, 7410, '\p{ 	TELU}', "");
-    Expect(0, 7410, '\p{^ 	TELU}', "");
-    Expect(0, 7410, '\P{ 	TELU}', "");
-    Expect(1, 7410, '\P{^ 	TELU}', "");
-    Expect(0, 7411, '\p{ 	TELU}', "");
-    Expect(1, 7411, '\p{^ 	TELU}', "");
-    Expect(1, 7411, '\P{ 	TELU}', "");
-    Expect(0, 7411, '\P{^ 	TELU}', "");
-    Error('\p{	:=Is_Telu}');
-    Error('\P{	:=Is_Telu}');
+    Expect(1, 7410, '\p{  Telu}', "");
+    Expect(0, 7410, '\p{^  Telu}', "");
+    Expect(0, 7410, '\P{  Telu}', "");
+    Expect(1, 7410, '\P{^  Telu}', "");
+    Expect(0, 7411, '\p{  Telu}', "");
+    Expect(1, 7411, '\p{^  Telu}', "");
+    Expect(1, 7411, '\P{  Telu}', "");
+    Expect(0, 7411, '\P{^  Telu}', "");
+    Error('\p{/a/_	is_Telu}');
+    Error('\P{/a/_	is_Telu}');
     Expect(1, 7410, '\p{istelu}', "");
     Expect(0, 7410, '\p{^istelu}', "");
     Expect(0, 7410, '\P{istelu}', "");
@@ -123115,16 +124339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7411, '\p{^istelu}', "");
     Expect(1, 7411, '\P{istelu}', "");
     Expect(0, 7411, '\P{^istelu}', "");
-    Expect(1, 7410, '\p{--Is_Telu}', "");
-    Expect(0, 7410, '\p{^--Is_Telu}', "");
-    Expect(0, 7410, '\P{--Is_Telu}', "");
-    Expect(1, 7410, '\P{^--Is_Telu}', "");
-    Expect(0, 7411, '\p{--Is_Telu}', "");
-    Expect(1, 7411, '\p{^--Is_Telu}', "");
-    Expect(1, 7411, '\P{--Is_Telu}', "");
-    Expect(0, 7411, '\P{^--Is_Telu}', "");
-    Error('\p{:=Terminal_PUNCTUATION}');
-    Error('\P{:=Terminal_PUNCTUATION}');
+    Expect(1, 7410, '\p{_	Is_TELU}', "");
+    Expect(0, 7410, '\p{^_	Is_TELU}', "");
+    Expect(0, 7410, '\P{_	Is_TELU}', "");
+    Expect(1, 7410, '\P{^_	Is_TELU}', "");
+    Expect(0, 7411, '\p{_	Is_TELU}', "");
+    Expect(1, 7411, '\p{^_	Is_TELU}', "");
+    Expect(1, 7411, '\P{_	Is_TELU}', "");
+    Expect(0, 7411, '\P{^_	Is_TELU}', "");
+    Error('\p{	:=Terminal_PUNCTUATION}');
+    Error('\P{	:=Terminal_PUNCTUATION}');
     Expect(1, 121482, '\p{terminalpunctuation}', "");
     Expect(0, 121482, '\p{^terminalpunctuation}', "");
     Expect(0, 121482, '\P{terminalpunctuation}', "");
@@ -123133,16 +124357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121483, '\p{^terminalpunctuation}', "");
     Expect(1, 121483, '\P{terminalpunctuation}', "");
     Expect(0, 121483, '\P{^terminalpunctuation}', "");
-    Expect(1, 121482, '\p{	terminal_Punctuation}', "");
-    Expect(0, 121482, '\p{^	terminal_Punctuation}', "");
-    Expect(0, 121482, '\P{	terminal_Punctuation}', "");
-    Expect(1, 121482, '\P{^	terminal_Punctuation}', "");
-    Expect(0, 121483, '\p{	terminal_Punctuation}', "");
-    Expect(1, 121483, '\p{^	terminal_Punctuation}', "");
-    Expect(1, 121483, '\P{	terminal_Punctuation}', "");
-    Expect(0, 121483, '\P{^	terminal_Punctuation}', "");
-    Error('\p{ /a/Is_TERMINAL_Punctuation}');
-    Error('\P{ /a/Is_TERMINAL_Punctuation}');
+    Expect(1, 121482, '\p{Terminal_Punctuation}', "");
+    Expect(0, 121482, '\p{^Terminal_Punctuation}', "");
+    Expect(0, 121482, '\P{Terminal_Punctuation}', "");
+    Expect(1, 121482, '\P{^Terminal_Punctuation}', "");
+    Expect(0, 121483, '\p{Terminal_Punctuation}', "");
+    Expect(1, 121483, '\p{^Terminal_Punctuation}', "");
+    Expect(1, 121483, '\P{Terminal_Punctuation}', "");
+    Expect(0, 121483, '\P{^Terminal_Punctuation}', "");
+    Error('\p{	-Is_Terminal_punctuation:=}');
+    Error('\P{	-Is_Terminal_punctuation:=}');
     Expect(1, 121482, '\p{isterminalpunctuation}', "");
     Expect(0, 121482, '\p{^isterminalpunctuation}', "");
     Expect(0, 121482, '\P{isterminalpunctuation}', "");
@@ -123151,16 +124375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121483, '\p{^isterminalpunctuation}', "");
     Expect(1, 121483, '\P{isterminalpunctuation}', "");
     Expect(0, 121483, '\P{^isterminalpunctuation}', "");
-    Expect(1, 121482, '\p{  is_Terminal_PUNCTUATION}', "");
-    Expect(0, 121482, '\p{^  is_Terminal_PUNCTUATION}', "");
-    Expect(0, 121482, '\P{  is_Terminal_PUNCTUATION}', "");
-    Expect(1, 121482, '\P{^  is_Terminal_PUNCTUATION}', "");
-    Expect(0, 121483, '\p{  is_Terminal_PUNCTUATION}', "");
-    Expect(1, 121483, '\p{^  is_Terminal_PUNCTUATION}', "");
-    Expect(1, 121483, '\P{  is_Terminal_PUNCTUATION}', "");
-    Expect(0, 121483, '\P{^  is_Terminal_PUNCTUATION}', "");
-    Error('\p{ term/a/}');
-    Error('\P{ term/a/}');
+    Expect(1, 121482, '\p{	IS_Terminal_Punctuation}', "");
+    Expect(0, 121482, '\p{^	IS_Terminal_Punctuation}', "");
+    Expect(0, 121482, '\P{	IS_Terminal_Punctuation}', "");
+    Expect(1, 121482, '\P{^	IS_Terminal_Punctuation}', "");
+    Expect(0, 121483, '\p{	IS_Terminal_Punctuation}', "");
+    Expect(1, 121483, '\p{^	IS_Terminal_Punctuation}', "");
+    Expect(1, 121483, '\P{	IS_Terminal_Punctuation}', "");
+    Expect(0, 121483, '\P{^	IS_Terminal_Punctuation}', "");
+    Error('\p{:=_ term}');
+    Error('\P{:=_ term}');
     Expect(1, 121482, '\p{term}', "");
     Expect(0, 121482, '\p{^term}', "");
     Expect(0, 121482, '\P{term}', "");
@@ -123169,16 +124393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121483, '\p{^term}', "");
     Expect(1, 121483, '\P{term}', "");
     Expect(0, 121483, '\P{^term}', "");
-    Expect(1, 121482, '\p{ -Term}', "");
-    Expect(0, 121482, '\p{^ -Term}', "");
-    Expect(0, 121482, '\P{ -Term}', "");
-    Expect(1, 121482, '\P{^ -Term}', "");
-    Expect(0, 121483, '\p{ -Term}', "");
-    Expect(1, 121483, '\p{^ -Term}', "");
-    Expect(1, 121483, '\P{ -Term}', "");
-    Expect(0, 121483, '\P{^ -Term}', "");
-    Error('\p{/a/	is_term}');
-    Error('\P{/a/	is_term}');
+    Expect(1, 121482, '\p{  term}', "");
+    Expect(0, 121482, '\p{^  term}', "");
+    Expect(0, 121482, '\P{  term}', "");
+    Expect(1, 121482, '\P{^  term}', "");
+    Expect(0, 121483, '\p{  term}', "");
+    Expect(1, 121483, '\p{^  term}', "");
+    Expect(1, 121483, '\P{  term}', "");
+    Expect(0, 121483, '\P{^  term}', "");
+    Error('\p{	IS_Term:=}');
+    Error('\P{	IS_Term:=}');
     Expect(1, 121482, '\p{isterm}', "");
     Expect(0, 121482, '\p{^isterm}', "");
     Expect(0, 121482, '\P{isterm}', "");
@@ -123187,16 +124411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121483, '\p{^isterm}', "");
     Expect(1, 121483, '\P{isterm}', "");
     Expect(0, 121483, '\P{^isterm}', "");
-    Expect(1, 121482, '\p{-IS_Term}', "");
-    Expect(0, 121482, '\p{^-IS_Term}', "");
-    Expect(0, 121482, '\P{-IS_Term}', "");
-    Expect(1, 121482, '\P{^-IS_Term}', "");
-    Expect(0, 121483, '\p{-IS_Term}', "");
-    Expect(1, 121483, '\p{^-IS_Term}', "");
-    Expect(1, 121483, '\P{-IS_Term}', "");
-    Expect(0, 121483, '\P{^-IS_Term}', "");
-    Error('\p{:= -Thaana}');
-    Error('\P{:= -Thaana}');
+    Expect(1, 121482, '\p{	 Is_Term}', "");
+    Expect(0, 121482, '\p{^	 Is_Term}', "");
+    Expect(0, 121482, '\P{	 Is_Term}', "");
+    Expect(1, 121482, '\P{^	 Is_Term}', "");
+    Expect(0, 121483, '\p{	 Is_Term}', "");
+    Expect(1, 121483, '\p{^	 Is_Term}', "");
+    Expect(1, 121483, '\P{	 Is_Term}', "");
+    Expect(0, 121483, '\P{^	 Is_Term}', "");
+    Error('\p{ /a/Thaana}');
+    Error('\P{ /a/Thaana}');
     Expect(1, 65021, '\p{thaana}', "");
     Expect(0, 65021, '\p{^thaana}', "");
     Expect(0, 65021, '\P{thaana}', "");
@@ -123205,16 +124429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65022, '\p{^thaana}', "");
     Expect(1, 65022, '\P{thaana}', "");
     Expect(0, 65022, '\P{^thaana}', "");
-    Expect(1, 65021, '\p{-thaana}', "");
-    Expect(0, 65021, '\p{^-thaana}', "");
-    Expect(0, 65021, '\P{-thaana}', "");
-    Expect(1, 65021, '\P{^-thaana}', "");
-    Expect(0, 65022, '\p{-thaana}', "");
-    Expect(1, 65022, '\p{^-thaana}', "");
-    Expect(1, 65022, '\P{-thaana}', "");
-    Expect(0, 65022, '\P{^-thaana}', "");
-    Error('\p{ Is_Thaana:=}');
-    Error('\P{ Is_Thaana:=}');
+    Expect(1, 65021, '\p{-Thaana}', "");
+    Expect(0, 65021, '\p{^-Thaana}', "");
+    Expect(0, 65021, '\P{-Thaana}', "");
+    Expect(1, 65021, '\P{^-Thaana}', "");
+    Expect(0, 65022, '\p{-Thaana}', "");
+    Expect(1, 65022, '\p{^-Thaana}', "");
+    Expect(1, 65022, '\P{-Thaana}', "");
+    Expect(0, 65022, '\P{^-Thaana}', "");
+    Error('\p{:=_Is_Thaana}');
+    Error('\P{:=_Is_Thaana}');
     Expect(1, 65021, '\p{isthaana}', "");
     Expect(0, 65021, '\p{^isthaana}', "");
     Expect(0, 65021, '\P{isthaana}', "");
@@ -123223,16 +124447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65022, '\p{^isthaana}', "");
     Expect(1, 65022, '\P{isthaana}', "");
     Expect(0, 65022, '\P{^isthaana}', "");
-    Expect(1, 65021, '\p{--IS_THAANA}', "");
-    Expect(0, 65021, '\p{^--IS_THAANA}', "");
-    Expect(0, 65021, '\P{--IS_THAANA}', "");
-    Expect(1, 65021, '\P{^--IS_THAANA}', "");
-    Expect(0, 65022, '\p{--IS_THAANA}', "");
-    Expect(1, 65022, '\p{^--IS_THAANA}', "");
-    Expect(1, 65022, '\P{--IS_THAANA}', "");
-    Expect(0, 65022, '\P{^--IS_THAANA}', "");
-    Error('\p{/a/	_thaa}');
-    Error('\P{/a/	_thaa}');
+    Expect(1, 65021, '\p{ 	Is_Thaana}', "");
+    Expect(0, 65021, '\p{^ 	Is_Thaana}', "");
+    Expect(0, 65021, '\P{ 	Is_Thaana}', "");
+    Expect(1, 65021, '\P{^ 	Is_Thaana}', "");
+    Expect(0, 65022, '\p{ 	Is_Thaana}', "");
+    Expect(1, 65022, '\p{^ 	Is_Thaana}', "");
+    Expect(1, 65022, '\P{ 	Is_Thaana}', "");
+    Expect(0, 65022, '\P{^ 	Is_Thaana}', "");
+    Error('\p{ /a/Thaa}');
+    Error('\P{ /a/Thaa}');
     Expect(1, 65021, '\p{thaa}', "");
     Expect(0, 65021, '\p{^thaa}', "");
     Expect(0, 65021, '\P{thaa}', "");
@@ -123249,8 +124473,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65022, '\p{^_Thaa}', "");
     Expect(1, 65022, '\P{_Thaa}', "");
     Expect(0, 65022, '\P{^_Thaa}', "");
-    Error('\p{:= -is_Thaa}');
-    Error('\P{:= -is_Thaa}');
+    Error('\p{:=	Is_Thaa}');
+    Error('\P{:=	Is_Thaa}');
     Expect(1, 65021, '\p{isthaa}', "");
     Expect(0, 65021, '\p{^isthaa}', "");
     Expect(0, 65021, '\P{isthaa}', "");
@@ -123259,16 +124483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65022, '\p{^isthaa}', "");
     Expect(1, 65022, '\P{isthaa}', "");
     Expect(0, 65022, '\P{^isthaa}', "");
-    Expect(1, 65021, '\p{-Is_Thaa}', "");
-    Expect(0, 65021, '\p{^-Is_Thaa}', "");
-    Expect(0, 65021, '\P{-Is_Thaa}', "");
-    Expect(1, 65021, '\P{^-Is_Thaa}', "");
-    Expect(0, 65022, '\p{-Is_Thaa}', "");
-    Expect(1, 65022, '\p{^-Is_Thaa}', "");
-    Expect(1, 65022, '\P{-Is_Thaa}', "");
-    Expect(0, 65022, '\P{^-Is_Thaa}', "");
-    Error('\p{ _Thai/a/}');
-    Error('\P{ _Thai/a/}');
+    Expect(1, 65021, '\p{-IS_Thaa}', "");
+    Expect(0, 65021, '\p{^-IS_Thaa}', "");
+    Expect(0, 65021, '\P{-IS_Thaa}', "");
+    Expect(1, 65021, '\P{^-IS_Thaa}', "");
+    Expect(0, 65022, '\p{-IS_Thaa}', "");
+    Expect(1, 65022, '\p{^-IS_Thaa}', "");
+    Expect(1, 65022, '\P{-IS_Thaa}', "");
+    Expect(0, 65022, '\P{^-IS_Thaa}', "");
+    Error('\p{:=	 Thai}');
+    Error('\P{:=	 Thai}');
     Expect(1, 3675, '\p{thai}', "");
     Expect(0, 3675, '\p{^thai}', "");
     Expect(0, 3675, '\P{thai}', "");
@@ -123277,16 +124501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3676, '\p{^thai}', "");
     Expect(1, 3676, '\P{thai}', "");
     Expect(0, 3676, '\P{^thai}', "");
-    Expect(1, 3675, '\p{-Thai}', "");
-    Expect(0, 3675, '\p{^-Thai}', "");
-    Expect(0, 3675, '\P{-Thai}', "");
-    Expect(1, 3675, '\P{^-Thai}', "");
-    Expect(0, 3676, '\p{-Thai}', "");
-    Expect(1, 3676, '\p{^-Thai}', "");
-    Expect(1, 3676, '\P{-Thai}', "");
-    Expect(0, 3676, '\P{^-Thai}', "");
-    Error('\p{:=  IS_Thai}');
-    Error('\P{:=  IS_Thai}');
+    Expect(1, 3675, '\p{__thai}', "");
+    Expect(0, 3675, '\p{^__thai}', "");
+    Expect(0, 3675, '\P{__thai}', "");
+    Expect(1, 3675, '\P{^__thai}', "");
+    Expect(0, 3676, '\p{__thai}', "");
+    Expect(1, 3676, '\p{^__thai}', "");
+    Expect(1, 3676, '\P{__thai}', "");
+    Expect(0, 3676, '\P{^__thai}', "");
+    Error('\p{	:=Is_Thai}');
+    Error('\P{	:=Is_Thai}');
     Expect(1, 3675, '\p{isthai}', "");
     Expect(0, 3675, '\p{^isthai}', "");
     Expect(0, 3675, '\P{isthai}', "");
@@ -123295,16 +124519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3676, '\p{^isthai}', "");
     Expect(1, 3676, '\P{isthai}', "");
     Expect(0, 3676, '\P{^isthai}', "");
-    Expect(1, 3675, '\p{-	IS_THAI}', "");
-    Expect(0, 3675, '\p{^-	IS_THAI}', "");
-    Expect(0, 3675, '\P{-	IS_THAI}', "");
-    Expect(1, 3675, '\P{^-	IS_THAI}', "");
-    Expect(0, 3676, '\p{-	IS_THAI}', "");
-    Expect(1, 3676, '\p{^-	IS_THAI}', "");
-    Expect(1, 3676, '\P{-	IS_THAI}', "");
-    Expect(0, 3676, '\P{^-	IS_THAI}', "");
-    Error('\p{_/a/Tibetan}');
-    Error('\P{_/a/Tibetan}');
+    Expect(1, 3675, '\p{_Is_thai}', "");
+    Expect(0, 3675, '\p{^_Is_thai}', "");
+    Expect(0, 3675, '\P{_Is_thai}', "");
+    Expect(1, 3675, '\P{^_Is_thai}', "");
+    Expect(0, 3676, '\p{_Is_thai}', "");
+    Expect(1, 3676, '\p{^_Is_thai}', "");
+    Expect(1, 3676, '\P{_Is_thai}', "");
+    Expect(0, 3676, '\P{^_Is_thai}', "");
+    Error('\p{ /a/Tibetan}');
+    Error('\P{ /a/Tibetan}');
     Expect(1, 4058, '\p{tibetan}', "");
     Expect(0, 4058, '\p{^tibetan}', "");
     Expect(0, 4058, '\P{tibetan}', "");
@@ -123313,16 +124537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 4059, '\p{^tibetan}', "");
     Expect(1, 4059, '\P{tibetan}', "");
     Expect(0, 4059, '\P{^tibetan}', "");
-    Expect(1, 4058, '\p{__tibetan}', "");
-    Expect(0, 4058, '\p{^__tibetan}', "");
-    Expect(0, 4058, '\P{__tibetan}', "");
-    Expect(1, 4058, '\P{^__tibetan}', "");
-    Expect(0, 4059, '\p{__tibetan}', "");
-    Expect(1, 4059, '\p{^__tibetan}', "");
-    Expect(1, 4059, '\P{__tibetan}', "");
-    Expect(0, 4059, '\P{^__tibetan}', "");
-    Error('\p{/a/_Is_Tibetan}');
-    Error('\P{/a/_Is_Tibetan}');
+    Expect(1, 4058, '\p{		TIBETAN}', "");
+    Expect(0, 4058, '\p{^		TIBETAN}', "");
+    Expect(0, 4058, '\P{		TIBETAN}', "");
+    Expect(1, 4058, '\P{^		TIBETAN}', "");
+    Expect(0, 4059, '\p{		TIBETAN}', "");
+    Expect(1, 4059, '\p{^		TIBETAN}', "");
+    Expect(1, 4059, '\P{		TIBETAN}', "");
+    Expect(0, 4059, '\P{^		TIBETAN}', "");
+    Error('\p{_:=is_Tibetan}');
+    Error('\P{_:=is_Tibetan}');
     Expect(1, 4058, '\p{istibetan}', "");
     Expect(0, 4058, '\p{^istibetan}', "");
     Expect(0, 4058, '\P{istibetan}', "");
@@ -123331,16 +124555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 4059, '\p{^istibetan}', "");
     Expect(1, 4059, '\P{istibetan}', "");
     Expect(0, 4059, '\P{^istibetan}', "");
-    Expect(1, 4058, '\p{-_Is_Tibetan}', "");
-    Expect(0, 4058, '\p{^-_Is_Tibetan}', "");
-    Expect(0, 4058, '\P{-_Is_Tibetan}', "");
-    Expect(1, 4058, '\P{^-_Is_Tibetan}', "");
-    Expect(0, 4059, '\p{-_Is_Tibetan}', "");
-    Expect(1, 4059, '\p{^-_Is_Tibetan}', "");
-    Expect(1, 4059, '\P{-_Is_Tibetan}', "");
-    Expect(0, 4059, '\P{^-_Is_Tibetan}', "");
-    Error('\p{-/a/TIBT}');
-    Error('\P{-/a/TIBT}');
+    Expect(1, 4058, '\p{	-Is_Tibetan}', "");
+    Expect(0, 4058, '\p{^	-Is_Tibetan}', "");
+    Expect(0, 4058, '\P{	-Is_Tibetan}', "");
+    Expect(1, 4058, '\P{^	-Is_Tibetan}', "");
+    Expect(0, 4059, '\p{	-Is_Tibetan}', "");
+    Expect(1, 4059, '\p{^	-Is_Tibetan}', "");
+    Expect(1, 4059, '\P{	-Is_Tibetan}', "");
+    Expect(0, 4059, '\P{^	-Is_Tibetan}', "");
+    Error('\p{/a/tibt}');
+    Error('\P{/a/tibt}');
     Expect(1, 4058, '\p{tibt}', "");
     Expect(0, 4058, '\p{^tibt}', "");
     Expect(0, 4058, '\P{tibt}', "");
@@ -123349,16 +124573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 4059, '\p{^tibt}', "");
     Expect(1, 4059, '\P{tibt}', "");
     Expect(0, 4059, '\P{^tibt}', "");
-    Expect(1, 4058, '\p{ Tibt}', "");
-    Expect(0, 4058, '\p{^ Tibt}', "");
-    Expect(0, 4058, '\P{ Tibt}', "");
-    Expect(1, 4058, '\P{^ Tibt}', "");
-    Expect(0, 4059, '\p{ Tibt}', "");
-    Expect(1, 4059, '\p{^ Tibt}', "");
-    Expect(1, 4059, '\P{ Tibt}', "");
-    Expect(0, 4059, '\P{^ Tibt}', "");
-    Error('\p{ :=Is_Tibt}');
-    Error('\P{ :=Is_Tibt}');
+    Expect(1, 4058, '\p{_-Tibt}', "");
+    Expect(0, 4058, '\p{^_-Tibt}', "");
+    Expect(0, 4058, '\P{_-Tibt}', "");
+    Expect(1, 4058, '\P{^_-Tibt}', "");
+    Expect(0, 4059, '\p{_-Tibt}', "");
+    Expect(1, 4059, '\p{^_-Tibt}', "");
+    Expect(1, 4059, '\P{_-Tibt}', "");
+    Expect(0, 4059, '\P{^_-Tibt}', "");
+    Error('\p{/a/-Is_Tibt}');
+    Error('\P{/a/-Is_Tibt}');
     Expect(1, 4058, '\p{istibt}', "");
     Expect(0, 4058, '\p{^istibt}', "");
     Expect(0, 4058, '\P{istibt}', "");
@@ -123367,16 +124591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 4059, '\p{^istibt}', "");
     Expect(1, 4059, '\P{istibt}', "");
     Expect(0, 4059, '\P{^istibt}', "");
-    Expect(1, 4058, '\p{-	IS_Tibt}', "");
-    Expect(0, 4058, '\p{^-	IS_Tibt}', "");
-    Expect(0, 4058, '\P{-	IS_Tibt}', "");
-    Expect(1, 4058, '\P{^-	IS_Tibt}', "");
-    Expect(0, 4059, '\p{-	IS_Tibt}', "");
-    Expect(1, 4059, '\p{^-	IS_Tibt}', "");
-    Expect(1, 4059, '\P{-	IS_Tibt}', "");
-    Expect(0, 4059, '\P{^-	IS_Tibt}', "");
-    Error('\p{--TIFINAGH:=}');
-    Error('\P{--TIFINAGH:=}');
+    Expect(1, 4058, '\p{__Is_tibt}', "");
+    Expect(0, 4058, '\p{^__Is_tibt}', "");
+    Expect(0, 4058, '\P{__Is_tibt}', "");
+    Expect(1, 4058, '\P{^__Is_tibt}', "");
+    Expect(0, 4059, '\p{__Is_tibt}', "");
+    Expect(1, 4059, '\p{^__Is_tibt}', "");
+    Expect(1, 4059, '\P{__Is_tibt}', "");
+    Expect(0, 4059, '\P{^__Is_tibt}', "");
+    Error('\p{ /a/tifinagh}');
+    Error('\P{ /a/tifinagh}');
     Expect(1, 11647, '\p{tifinagh}', "");
     Expect(0, 11647, '\p{^tifinagh}', "");
     Expect(0, 11647, '\P{tifinagh}', "");
@@ -123385,16 +124609,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11648, '\p{^tifinagh}', "");
     Expect(1, 11648, '\P{tifinagh}', "");
     Expect(0, 11648, '\P{^tifinagh}', "");
-    Expect(1, 11647, '\p{-_TIFINAGH}', "");
-    Expect(0, 11647, '\p{^-_TIFINAGH}', "");
-    Expect(0, 11647, '\P{-_TIFINAGH}', "");
-    Expect(1, 11647, '\P{^-_TIFINAGH}', "");
-    Expect(0, 11648, '\p{-_TIFINAGH}', "");
-    Expect(1, 11648, '\p{^-_TIFINAGH}', "");
-    Expect(1, 11648, '\P{-_TIFINAGH}', "");
-    Expect(0, 11648, '\P{^-_TIFINAGH}', "");
-    Error('\p{-	Is_Tifinagh/a/}');
-    Error('\P{-	Is_Tifinagh/a/}');
+    Expect(1, 11647, '\p{ _Tifinagh}', "");
+    Expect(0, 11647, '\p{^ _Tifinagh}', "");
+    Expect(0, 11647, '\P{ _Tifinagh}', "");
+    Expect(1, 11647, '\P{^ _Tifinagh}', "");
+    Expect(0, 11648, '\p{ _Tifinagh}', "");
+    Expect(1, 11648, '\p{^ _Tifinagh}', "");
+    Expect(1, 11648, '\P{ _Tifinagh}', "");
+    Expect(0, 11648, '\P{^ _Tifinagh}', "");
+    Error('\p{:=	-IS_TIFINAGH}');
+    Error('\P{:=	-IS_TIFINAGH}');
     Expect(1, 11647, '\p{istifinagh}', "");
     Expect(0, 11647, '\p{^istifinagh}', "");
     Expect(0, 11647, '\P{istifinagh}', "");
@@ -123403,16 +124627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11648, '\p{^istifinagh}', "");
     Expect(1, 11648, '\P{istifinagh}', "");
     Expect(0, 11648, '\P{^istifinagh}', "");
-    Expect(1, 11647, '\p{- IS_Tifinagh}', "");
-    Expect(0, 11647, '\p{^- IS_Tifinagh}', "");
-    Expect(0, 11647, '\P{- IS_Tifinagh}', "");
-    Expect(1, 11647, '\P{^- IS_Tifinagh}', "");
-    Expect(0, 11648, '\p{- IS_Tifinagh}', "");
-    Expect(1, 11648, '\p{^- IS_Tifinagh}', "");
-    Expect(1, 11648, '\P{- IS_Tifinagh}', "");
-    Expect(0, 11648, '\P{^- IS_Tifinagh}', "");
-    Error('\p{	tfng/a/}');
-    Error('\P{	tfng/a/}');
+    Expect(1, 11647, '\p{-is_Tifinagh}', "");
+    Expect(0, 11647, '\p{^-is_Tifinagh}', "");
+    Expect(0, 11647, '\P{-is_Tifinagh}', "");
+    Expect(1, 11647, '\P{^-is_Tifinagh}', "");
+    Expect(0, 11648, '\p{-is_Tifinagh}', "");
+    Expect(1, 11648, '\p{^-is_Tifinagh}', "");
+    Expect(1, 11648, '\P{-is_Tifinagh}', "");
+    Expect(0, 11648, '\P{^-is_Tifinagh}', "");
+    Error('\p{/a/tfng}');
+    Error('\P{/a/tfng}');
     Expect(1, 11647, '\p{tfng}', "");
     Expect(0, 11647, '\p{^tfng}', "");
     Expect(0, 11647, '\P{tfng}', "");
@@ -123421,16 +124645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11648, '\p{^tfng}', "");
     Expect(1, 11648, '\P{tfng}', "");
     Expect(0, 11648, '\P{^tfng}', "");
-    Expect(1, 11647, '\p{_TFNG}', "");
-    Expect(0, 11647, '\p{^_TFNG}', "");
-    Expect(0, 11647, '\P{_TFNG}', "");
-    Expect(1, 11647, '\P{^_TFNG}', "");
-    Expect(0, 11648, '\p{_TFNG}', "");
-    Expect(1, 11648, '\p{^_TFNG}', "");
-    Expect(1, 11648, '\P{_TFNG}', "");
-    Expect(0, 11648, '\P{^_TFNG}', "");
-    Error('\p{/a/is_tfng}');
-    Error('\P{/a/is_tfng}');
+    Expect(1, 11647, '\p{ -Tfng}', "");
+    Expect(0, 11647, '\p{^ -Tfng}', "");
+    Expect(0, 11647, '\P{ -Tfng}', "");
+    Expect(1, 11647, '\P{^ -Tfng}', "");
+    Expect(0, 11648, '\p{ -Tfng}', "");
+    Expect(1, 11648, '\p{^ -Tfng}', "");
+    Expect(1, 11648, '\P{ -Tfng}', "");
+    Expect(0, 11648, '\P{^ -Tfng}', "");
+    Error('\p{	:=Is_TFNG}');
+    Error('\P{	:=Is_TFNG}');
     Expect(1, 11647, '\p{istfng}', "");
     Expect(0, 11647, '\p{^istfng}', "");
     Expect(0, 11647, '\P{istfng}', "");
@@ -123439,16 +124663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11648, '\p{^istfng}', "");
     Expect(1, 11648, '\P{istfng}', "");
     Expect(0, 11648, '\P{^istfng}', "");
-    Expect(1, 11647, '\p{_	IS_Tfng}', "");
-    Expect(0, 11647, '\p{^_	IS_Tfng}', "");
-    Expect(0, 11647, '\P{_	IS_Tfng}', "");
-    Expect(1, 11647, '\P{^_	IS_Tfng}', "");
-    Expect(0, 11648, '\p{_	IS_Tfng}', "");
-    Expect(1, 11648, '\p{^_	IS_Tfng}', "");
-    Expect(1, 11648, '\P{_	IS_Tfng}', "");
-    Expect(0, 11648, '\P{^_	IS_Tfng}', "");
-    Error('\p{	tirhuta/a/}');
-    Error('\P{	tirhuta/a/}');
+    Expect(1, 11647, '\p{	IS_tfng}', "");
+    Expect(0, 11647, '\p{^	IS_tfng}', "");
+    Expect(0, 11647, '\P{	IS_tfng}', "");
+    Expect(1, 11647, '\P{^	IS_tfng}', "");
+    Expect(0, 11648, '\p{	IS_tfng}', "");
+    Expect(1, 11648, '\p{^	IS_tfng}', "");
+    Expect(1, 11648, '\P{	IS_tfng}', "");
+    Expect(0, 11648, '\P{^	IS_tfng}', "");
+    Error('\p{_/a/TIRHUTA}');
+    Error('\P{_/a/TIRHUTA}');
     Expect(1, 70873, '\p{tirhuta}', "");
     Expect(0, 70873, '\p{^tirhuta}', "");
     Expect(0, 70873, '\P{tirhuta}', "");
@@ -123457,16 +124681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^tirhuta}', "");
     Expect(1, 70874, '\P{tirhuta}', "");
     Expect(0, 70874, '\P{^tirhuta}', "");
-    Expect(1, 70873, '\p{  tirhuta}', "");
-    Expect(0, 70873, '\p{^  tirhuta}', "");
-    Expect(0, 70873, '\P{  tirhuta}', "");
-    Expect(1, 70873, '\P{^  tirhuta}', "");
-    Expect(0, 70874, '\p{  tirhuta}', "");
-    Expect(1, 70874, '\p{^  tirhuta}', "");
-    Expect(1, 70874, '\P{  tirhuta}', "");
-    Expect(0, 70874, '\P{^  tirhuta}', "");
-    Error('\p{-/a/IS_Tirhuta}');
-    Error('\P{-/a/IS_Tirhuta}');
+    Expect(1, 70873, '\p{ -TIRHUTA}', "");
+    Expect(0, 70873, '\p{^ -TIRHUTA}', "");
+    Expect(0, 70873, '\P{ -TIRHUTA}', "");
+    Expect(1, 70873, '\P{^ -TIRHUTA}', "");
+    Expect(0, 70874, '\p{ -TIRHUTA}', "");
+    Expect(1, 70874, '\p{^ -TIRHUTA}', "");
+    Expect(1, 70874, '\P{ -TIRHUTA}', "");
+    Expect(0, 70874, '\P{^ -TIRHUTA}', "");
+    Error('\p{	_IS_TIRHUTA:=}');
+    Error('\P{	_IS_TIRHUTA:=}');
     Expect(1, 70873, '\p{istirhuta}', "");
     Expect(0, 70873, '\p{^istirhuta}', "");
     Expect(0, 70873, '\P{istirhuta}', "");
@@ -123475,16 +124699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^istirhuta}', "");
     Expect(1, 70874, '\P{istirhuta}', "");
     Expect(0, 70874, '\P{^istirhuta}', "");
-    Expect(1, 70873, '\p{	_Is_tirhuta}', "");
-    Expect(0, 70873, '\p{^	_Is_tirhuta}', "");
-    Expect(0, 70873, '\P{	_Is_tirhuta}', "");
-    Expect(1, 70873, '\P{^	_Is_tirhuta}', "");
-    Expect(0, 70874, '\p{	_Is_tirhuta}', "");
-    Expect(1, 70874, '\p{^	_Is_tirhuta}', "");
-    Expect(1, 70874, '\P{	_Is_tirhuta}', "");
-    Expect(0, 70874, '\P{^	_Is_tirhuta}', "");
-    Error('\p{:= TIRH}');
-    Error('\P{:= TIRH}');
+    Expect(1, 70873, '\p{is_TIRHUTA}', "");
+    Expect(0, 70873, '\p{^is_TIRHUTA}', "");
+    Expect(0, 70873, '\P{is_TIRHUTA}', "");
+    Expect(1, 70873, '\P{^is_TIRHUTA}', "");
+    Expect(0, 70874, '\p{is_TIRHUTA}', "");
+    Expect(1, 70874, '\p{^is_TIRHUTA}', "");
+    Expect(1, 70874, '\P{is_TIRHUTA}', "");
+    Expect(0, 70874, '\P{^is_TIRHUTA}', "");
+    Error('\p{ Tirh/a/}');
+    Error('\P{ Tirh/a/}');
     Expect(1, 70873, '\p{tirh}', "");
     Expect(0, 70873, '\p{^tirh}', "");
     Expect(0, 70873, '\P{tirh}', "");
@@ -123493,16 +124717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^tirh}', "");
     Expect(1, 70874, '\P{tirh}', "");
     Expect(0, 70874, '\P{^tirh}', "");
-    Expect(1, 70873, '\p{Tirh}', "");
-    Expect(0, 70873, '\p{^Tirh}', "");
-    Expect(0, 70873, '\P{Tirh}', "");
-    Expect(1, 70873, '\P{^Tirh}', "");
-    Expect(0, 70874, '\p{Tirh}', "");
-    Expect(1, 70874, '\p{^Tirh}', "");
-    Expect(1, 70874, '\P{Tirh}', "");
-    Expect(0, 70874, '\P{^Tirh}', "");
-    Error('\p{ Is_TIRH:=}');
-    Error('\P{ Is_TIRH:=}');
+    Expect(1, 70873, '\p{_TIRH}', "");
+    Expect(0, 70873, '\p{^_TIRH}', "");
+    Expect(0, 70873, '\P{_TIRH}', "");
+    Expect(1, 70873, '\P{^_TIRH}', "");
+    Expect(0, 70874, '\p{_TIRH}', "");
+    Expect(1, 70874, '\p{^_TIRH}', "");
+    Expect(1, 70874, '\P{_TIRH}', "");
+    Expect(0, 70874, '\P{^_TIRH}', "");
+    Error('\p{ :=is_Tirh}');
+    Error('\P{ :=is_Tirh}');
     Expect(1, 70873, '\p{istirh}', "");
     Expect(0, 70873, '\p{^istirh}', "");
     Expect(0, 70873, '\P{istirh}', "");
@@ -123511,16 +124735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^istirh}', "");
     Expect(1, 70874, '\P{istirh}', "");
     Expect(0, 70874, '\P{^istirh}', "");
-    Expect(1, 70873, '\p{	_Is_Tirh}', "");
-    Expect(0, 70873, '\p{^	_Is_Tirh}', "");
-    Expect(0, 70873, '\P{	_Is_Tirh}', "");
-    Expect(1, 70873, '\P{^	_Is_Tirh}', "");
-    Expect(0, 70874, '\p{	_Is_Tirh}', "");
-    Expect(1, 70874, '\p{^	_Is_Tirh}', "");
-    Expect(1, 70874, '\P{	_Is_Tirh}', "");
-    Expect(0, 70874, '\P{^	_Is_Tirh}', "");
-    Error('\p{	 TITLECASE:=}');
-    Error('\P{	 TITLECASE:=}');
+    Expect(1, 70873, '\p{Is_TIRH}', "");
+    Expect(0, 70873, '\p{^Is_TIRH}', "");
+    Expect(0, 70873, '\P{Is_TIRH}', "");
+    Expect(1, 70873, '\P{^Is_TIRH}', "");
+    Expect(0, 70874, '\p{Is_TIRH}', "");
+    Expect(1, 70874, '\p{^Is_TIRH}', "");
+    Expect(1, 70874, '\P{Is_TIRH}', "");
+    Expect(0, 70874, '\P{^Is_TIRH}', "");
+    Error('\p{--Titlecase/a/}');
+    Error('\P{--Titlecase/a/}');
     Expect(1, 8188, '\p{titlecase}', "");
     Expect(0, 8188, '\p{^titlecase}', "");
     Expect(0, 8188, '\P{titlecase}', "");
@@ -123529,16 +124753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^titlecase}', "");
     Expect(1, 8189, '\P{titlecase}', "");
     Expect(0, 8189, '\P{^titlecase}', "");
-    Expect(1, 8188, '\p{ titlecase}', "");
-    Expect(0, 8188, '\p{^ titlecase}', "");
-    Expect(0, 8188, '\P{ titlecase}', "");
-    Expect(1, 8188, '\P{^ titlecase}', "");
-    Expect(0, 8189, '\p{ titlecase}', "");
-    Expect(1, 8189, '\p{^ titlecase}', "");
-    Expect(1, 8189, '\P{ titlecase}', "");
-    Expect(0, 8189, '\P{^ titlecase}', "");
-    Error('\p{_	Title/a/}');
-    Error('\P{_	Title/a/}');
+    Expect(1, 8188, '\p{_-TITLECASE}', "");
+    Expect(0, 8188, '\p{^_-TITLECASE}', "");
+    Expect(0, 8188, '\P{_-TITLECASE}', "");
+    Expect(1, 8188, '\P{^_-TITLECASE}', "");
+    Expect(0, 8189, '\p{_-TITLECASE}', "");
+    Expect(1, 8189, '\p{^_-TITLECASE}', "");
+    Expect(1, 8189, '\P{_-TITLECASE}', "");
+    Expect(0, 8189, '\P{^_-TITLECASE}', "");
+    Error('\p{:=-title}');
+    Error('\P{:=-title}');
     Expect(1, 8188, '\p{title}', "");
     Expect(0, 8188, '\p{^title}', "");
     Expect(0, 8188, '\P{title}', "");
@@ -123547,16 +124771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^title}', "");
     Expect(1, 8189, '\P{title}', "");
     Expect(0, 8189, '\P{^title}', "");
-    Expect(1, 8188, '\p{- TITLE}', "");
-    Expect(0, 8188, '\p{^- TITLE}', "");
-    Expect(0, 8188, '\P{- TITLE}', "");
-    Expect(1, 8188, '\P{^- TITLE}', "");
-    Expect(0, 8189, '\p{- TITLE}', "");
-    Expect(1, 8189, '\p{^- TITLE}', "");
-    Expect(1, 8189, '\P{- TITLE}', "");
-    Expect(0, 8189, '\P{^- TITLE}', "");
-    Error('\p{ /a/Is_titlecase}');
-    Error('\P{ /a/Is_titlecase}');
+    Expect(1, 8188, '\p{ -Title}', "");
+    Expect(0, 8188, '\p{^ -Title}', "");
+    Expect(0, 8188, '\P{ -Title}', "");
+    Expect(1, 8188, '\P{^ -Title}', "");
+    Expect(0, 8189, '\p{ -Title}', "");
+    Expect(1, 8189, '\p{^ -Title}', "");
+    Expect(1, 8189, '\P{ -Title}', "");
+    Expect(0, 8189, '\P{^ -Title}', "");
+    Error('\p{-/a/is_titlecase}');
+    Error('\P{-/a/is_titlecase}');
     Expect(1, 8188, '\p{istitlecase}', "");
     Expect(0, 8188, '\p{^istitlecase}', "");
     Expect(0, 8188, '\P{istitlecase}', "");
@@ -123565,16 +124789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^istitlecase}', "");
     Expect(1, 8189, '\P{istitlecase}', "");
     Expect(0, 8189, '\P{^istitlecase}', "");
-    Expect(1, 8188, '\p{	_IS_Titlecase}', "");
-    Expect(0, 8188, '\p{^	_IS_Titlecase}', "");
-    Expect(0, 8188, '\P{	_IS_Titlecase}', "");
-    Expect(1, 8188, '\P{^	_IS_Titlecase}', "");
-    Expect(0, 8189, '\p{	_IS_Titlecase}', "");
-    Expect(1, 8189, '\p{^	_IS_Titlecase}', "");
-    Expect(1, 8189, '\P{	_IS_Titlecase}', "");
-    Expect(0, 8189, '\P{^	_IS_Titlecase}', "");
-    Error('\p{_ Is_Title:=}');
-    Error('\P{_ Is_Title:=}');
+    Expect(1, 8188, '\p{_-Is_Titlecase}', "");
+    Expect(0, 8188, '\p{^_-Is_Titlecase}', "");
+    Expect(0, 8188, '\P{_-Is_Titlecase}', "");
+    Expect(1, 8188, '\P{^_-Is_Titlecase}', "");
+    Expect(0, 8189, '\p{_-Is_Titlecase}', "");
+    Expect(1, 8189, '\p{^_-Is_Titlecase}', "");
+    Expect(1, 8189, '\P{_-Is_Titlecase}', "");
+    Expect(0, 8189, '\P{^_-Is_Titlecase}', "");
+    Error('\p{:=Is_title}');
+    Error('\P{:=Is_title}');
     Expect(1, 8188, '\p{istitle}', "");
     Expect(0, 8188, '\p{^istitle}', "");
     Expect(0, 8188, '\P{istitle}', "");
@@ -123583,16 +124807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^istitle}', "");
     Expect(1, 8189, '\P{istitle}', "");
     Expect(0, 8189, '\P{^istitle}', "");
-    Expect(1, 8188, '\p{ is_Title}', "");
-    Expect(0, 8188, '\p{^ is_Title}', "");
-    Expect(0, 8188, '\P{ is_Title}', "");
-    Expect(1, 8188, '\P{^ is_Title}', "");
-    Expect(0, 8189, '\p{ is_Title}', "");
-    Expect(1, 8189, '\p{^ is_Title}', "");
-    Expect(1, 8189, '\P{ is_Title}', "");
-    Expect(0, 8189, '\P{^ is_Title}', "");
-    Error('\p{--TITLECASE_Letter:=}');
-    Error('\P{--TITLECASE_Letter:=}');
+    Expect(1, 8188, '\p{IS_title}', "");
+    Expect(0, 8188, '\p{^IS_title}', "");
+    Expect(0, 8188, '\P{IS_title}', "");
+    Expect(1, 8188, '\P{^IS_title}', "");
+    Expect(0, 8189, '\p{IS_title}', "");
+    Expect(1, 8189, '\p{^IS_title}', "");
+    Expect(1, 8189, '\P{IS_title}', "");
+    Expect(0, 8189, '\P{^IS_title}', "");
+    Error('\p{/a/_ TITLECASE_LETTER}');
+    Error('\P{/a/_ TITLECASE_LETTER}');
     Expect(1, 8188, '\p{titlecaseletter}', "");
     Expect(0, 8188, '\p{^titlecaseletter}', "");
     Expect(0, 8188, '\P{titlecaseletter}', "");
@@ -123601,16 +124825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^titlecaseletter}', "");
     Expect(1, 8189, '\P{titlecaseletter}', "");
     Expect(0, 8189, '\P{^titlecaseletter}', "");
-    Expect(1, 8188, '\p{ -Titlecase_LETTER}', "");
-    Expect(0, 8188, '\p{^ -Titlecase_LETTER}', "");
-    Expect(0, 8188, '\P{ -Titlecase_LETTER}', "");
-    Expect(1, 8188, '\P{^ -Titlecase_LETTER}', "");
-    Expect(0, 8189, '\p{ -Titlecase_LETTER}', "");
-    Expect(1, 8189, '\p{^ -Titlecase_LETTER}', "");
-    Expect(1, 8189, '\P{ -Titlecase_LETTER}', "");
-    Expect(0, 8189, '\P{^ -Titlecase_LETTER}', "");
-    Error('\p{--Is_Titlecase_LETTER:=}');
-    Error('\P{--Is_Titlecase_LETTER:=}');
+    Expect(1, 8188, '\p{  TITLECASE_Letter}', "");
+    Expect(0, 8188, '\p{^  TITLECASE_Letter}', "");
+    Expect(0, 8188, '\P{  TITLECASE_Letter}', "");
+    Expect(1, 8188, '\P{^  TITLECASE_Letter}', "");
+    Expect(0, 8189, '\p{  TITLECASE_Letter}', "");
+    Expect(1, 8189, '\p{^  TITLECASE_Letter}', "");
+    Expect(1, 8189, '\P{  TITLECASE_Letter}', "");
+    Expect(0, 8189, '\P{^  TITLECASE_Letter}', "");
+    Error('\p{:=_-Is_titlecase_Letter}');
+    Error('\P{:=_-Is_titlecase_Letter}');
     Expect(1, 8188, '\p{istitlecaseletter}', "");
     Expect(0, 8188, '\p{^istitlecaseletter}', "");
     Expect(0, 8188, '\P{istitlecaseletter}', "");
@@ -123619,16 +124843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^istitlecaseletter}', "");
     Expect(1, 8189, '\P{istitlecaseletter}', "");
     Expect(0, 8189, '\P{^istitlecaseletter}', "");
-    Expect(1, 8188, '\p{ _Is_titlecase_Letter}', "");
-    Expect(0, 8188, '\p{^ _Is_titlecase_Letter}', "");
-    Expect(0, 8188, '\P{ _Is_titlecase_Letter}', "");
-    Expect(1, 8188, '\P{^ _Is_titlecase_Letter}', "");
-    Expect(0, 8189, '\p{ _Is_titlecase_Letter}', "");
-    Expect(1, 8189, '\p{^ _Is_titlecase_Letter}', "");
-    Expect(1, 8189, '\P{ _Is_titlecase_Letter}', "");
-    Expect(0, 8189, '\P{^ _Is_titlecase_Letter}', "");
-    Error('\p{LT:=}');
-    Error('\P{LT:=}');
+    Expect(1, 8188, '\p{_Is_Titlecase_Letter}', "");
+    Expect(0, 8188, '\p{^_Is_Titlecase_Letter}', "");
+    Expect(0, 8188, '\P{_Is_Titlecase_Letter}', "");
+    Expect(1, 8188, '\P{^_Is_Titlecase_Letter}', "");
+    Expect(0, 8189, '\p{_Is_Titlecase_Letter}', "");
+    Expect(1, 8189, '\p{^_Is_Titlecase_Letter}', "");
+    Expect(1, 8189, '\P{_Is_Titlecase_Letter}', "");
+    Expect(0, 8189, '\P{^_Is_Titlecase_Letter}', "");
+    Error('\p{/a/Lt}');
+    Error('\P{/a/Lt}');
     Expect(1, 8188, '\p{lt}', "");
     Expect(0, 8188, '\p{^lt}', "");
     Expect(0, 8188, '\P{lt}', "");
@@ -123637,16 +124861,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^lt}', "");
     Expect(1, 8189, '\P{lt}', "");
     Expect(0, 8189, '\P{^lt}', "");
-    Expect(1, 8188, '\p{ Lt}', "");
-    Expect(0, 8188, '\p{^ Lt}', "");
-    Expect(0, 8188, '\P{ Lt}', "");
-    Expect(1, 8188, '\P{^ Lt}', "");
-    Expect(0, 8189, '\p{ Lt}', "");
-    Expect(1, 8189, '\p{^ Lt}', "");
-    Expect(1, 8189, '\P{ Lt}', "");
-    Expect(0, 8189, '\P{^ Lt}', "");
-    Error('\p{:=-Is_LT}');
-    Error('\P{:=-Is_LT}');
+    Expect(1, 8188, '\p{  Lt}', "");
+    Expect(0, 8188, '\p{^  Lt}', "");
+    Expect(0, 8188, '\P{  Lt}', "");
+    Expect(1, 8188, '\P{^  Lt}', "");
+    Expect(0, 8189, '\p{  Lt}', "");
+    Expect(1, 8189, '\p{^  Lt}', "");
+    Expect(1, 8189, '\P{  Lt}', "");
+    Expect(0, 8189, '\P{^  Lt}', "");
+    Error('\p{-:=IS_LT}');
+    Error('\P{-:=IS_LT}');
     Expect(1, 8188, '\p{islt}', "");
     Expect(0, 8188, '\p{^islt}', "");
     Expect(0, 8188, '\P{islt}', "");
@@ -123655,16 +124879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8189, '\p{^islt}', "");
     Expect(1, 8189, '\P{islt}', "");
     Expect(0, 8189, '\P{^islt}', "");
-    Expect(1, 8188, '\p{ 	is_Lt}', "");
-    Expect(0, 8188, '\p{^ 	is_Lt}', "");
-    Expect(0, 8188, '\P{ 	is_Lt}', "");
-    Expect(1, 8188, '\P{^ 	is_Lt}', "");
-    Expect(0, 8189, '\p{ 	is_Lt}', "");
-    Expect(1, 8189, '\p{^ 	is_Lt}', "");
-    Expect(1, 8189, '\P{ 	is_Lt}', "");
-    Expect(0, 8189, '\P{^ 	is_Lt}', "");
-    Error('\p{	TOTO/a/}');
-    Error('\P{	TOTO/a/}');
+    Expect(1, 8188, '\p{	-IS_Lt}', "");
+    Expect(0, 8188, '\p{^	-IS_Lt}', "");
+    Expect(0, 8188, '\P{	-IS_Lt}', "");
+    Expect(1, 8188, '\P{^	-IS_Lt}', "");
+    Expect(0, 8189, '\p{	-IS_Lt}', "");
+    Expect(1, 8189, '\p{^	-IS_Lt}', "");
+    Expect(1, 8189, '\P{	-IS_Lt}', "");
+    Expect(0, 8189, '\P{^	-IS_Lt}', "");
+    Error('\p{ /a/toto}');
+    Error('\P{ /a/toto}');
     Expect(1, 123566, '\p{toto}', "");
     Expect(0, 123566, '\p{^toto}', "");
     Expect(0, 123566, '\P{toto}', "");
@@ -123673,16 +124897,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123567, '\p{^toto}', "");
     Expect(1, 123567, '\P{toto}', "");
     Expect(0, 123567, '\P{^toto}', "");
-    Expect(1, 123566, '\p{		toto}', "");
-    Expect(0, 123566, '\p{^		toto}', "");
-    Expect(0, 123566, '\P{		toto}', "");
-    Expect(1, 123566, '\P{^		toto}', "");
-    Expect(0, 123567, '\p{		toto}', "");
-    Expect(1, 123567, '\p{^		toto}', "");
-    Expect(1, 123567, '\P{		toto}', "");
-    Expect(0, 123567, '\P{^		toto}', "");
-    Error('\p{	-Is_Toto/a/}');
-    Error('\P{	-Is_Toto/a/}');
+    Error('\p{:=  is_Toto}');
+    Error('\P{:=  is_Toto}');
     Expect(1, 123566, '\p{istoto}', "");
     Expect(0, 123566, '\p{^istoto}', "");
     Expect(0, 123566, '\P{istoto}', "");
@@ -123691,16 +124907,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123567, '\p{^istoto}', "");
     Expect(1, 123567, '\P{istoto}', "");
     Expect(0, 123567, '\P{^istoto}', "");
-    Expect(1, 123566, '\p{_-Is_Toto}', "");
-    Expect(0, 123566, '\p{^_-Is_Toto}', "");
-    Expect(0, 123566, '\P{_-Is_Toto}', "");
-    Expect(1, 123566, '\P{^_-Is_Toto}', "");
-    Expect(0, 123567, '\p{_-Is_Toto}', "");
-    Expect(1, 123567, '\p{^_-Is_Toto}', "");
-    Expect(1, 123567, '\P{_-Is_Toto}', "");
-    Expect(0, 123567, '\P{^_-Is_Toto}', "");
-    Error('\p{ /a/Transport_And_MAP_symbols}');
-    Error('\P{ /a/Transport_And_MAP_symbols}');
+    Expect(1, 123566, '\p{ -Is_toto}', "");
+    Expect(0, 123566, '\p{^ -Is_toto}', "");
+    Expect(0, 123566, '\P{ -Is_toto}', "");
+    Expect(1, 123566, '\P{^ -Is_toto}', "");
+    Expect(0, 123567, '\p{ -Is_toto}', "");
+    Expect(1, 123567, '\p{^ -Is_toto}', "");
+    Expect(1, 123567, '\P{ -Is_toto}', "");
+    Expect(0, 123567, '\P{^ -Is_toto}', "");
+    Error('\p{	Transport_and_Map_Symbols:=}');
+    Error('\P{	Transport_and_Map_Symbols:=}');
     Expect(1, 128767, '\p{transportandmapsymbols}', "");
     Expect(0, 128767, '\p{^transportandmapsymbols}', "");
     Expect(0, 128767, '\P{transportandmapsymbols}', "");
@@ -123709,16 +124925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128768, '\p{^transportandmapsymbols}', "");
     Expect(1, 128768, '\P{transportandmapsymbols}', "");
     Expect(0, 128768, '\P{^transportandmapsymbols}', "");
-    Expect(1, 128767, '\p{_transport_and_map_Symbols}', "");
-    Expect(0, 128767, '\p{^_transport_and_map_Symbols}', "");
-    Expect(0, 128767, '\P{_transport_and_map_Symbols}', "");
-    Expect(1, 128767, '\P{^_transport_and_map_Symbols}', "");
-    Expect(0, 128768, '\p{_transport_and_map_Symbols}', "");
-    Expect(1, 128768, '\p{^_transport_and_map_Symbols}', "");
-    Expect(1, 128768, '\P{_transport_and_map_Symbols}', "");
-    Expect(0, 128768, '\P{^_transport_and_map_Symbols}', "");
-    Error('\p{ :=Is_transport_and_map_Symbols}');
-    Error('\P{ :=Is_transport_and_map_Symbols}');
+    Expect(1, 128767, '\p{	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(0, 128767, '\p{^	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(0, 128767, '\P{	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(1, 128767, '\P{^	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(0, 128768, '\p{	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(1, 128768, '\p{^	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(1, 128768, '\P{	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Expect(0, 128768, '\P{^	-TRANSPORT_And_Map_SYMBOLS}', "");
+    Error('\p{/a/Is_Transport_And_MAP_symbols}');
+    Error('\P{/a/Is_Transport_And_MAP_symbols}');
     Expect(1, 128767, '\p{istransportandmapsymbols}', "");
     Expect(0, 128767, '\p{^istransportandmapsymbols}', "");
     Expect(0, 128767, '\P{istransportandmapsymbols}', "");
@@ -123727,16 +124943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128768, '\p{^istransportandmapsymbols}', "");
     Expect(1, 128768, '\P{istransportandmapsymbols}', "");
     Expect(0, 128768, '\P{^istransportandmapsymbols}', "");
-    Expect(1, 128767, '\p{-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(0, 128767, '\p{^-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(0, 128767, '\P{-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(1, 128767, '\P{^-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(0, 128768, '\p{-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(1, 128768, '\p{^-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(1, 128768, '\P{-	IS_Transport_And_MAP_Symbols}', "");
-    Expect(0, 128768, '\P{^-	IS_Transport_And_MAP_Symbols}', "");
-    Error('\p{/a/ -In_Transport_And_map_SYMBOLS}');
-    Error('\P{/a/ -In_Transport_And_map_SYMBOLS}');
+    Expect(1, 128767, '\p{__Is_Transport_AND_Map_Symbols}', "");
+    Expect(0, 128767, '\p{^__Is_Transport_AND_Map_Symbols}', "");
+    Expect(0, 128767, '\P{__Is_Transport_AND_Map_Symbols}', "");
+    Expect(1, 128767, '\P{^__Is_Transport_AND_Map_Symbols}', "");
+    Expect(0, 128768, '\p{__Is_Transport_AND_Map_Symbols}', "");
+    Expect(1, 128768, '\p{^__Is_Transport_AND_Map_Symbols}', "");
+    Expect(1, 128768, '\P{__Is_Transport_AND_Map_Symbols}', "");
+    Expect(0, 128768, '\P{^__Is_Transport_AND_Map_Symbols}', "");
+    Error('\p{	 IN_TRANSPORT_AND_Map_Symbols/a/}');
+    Error('\P{	 IN_TRANSPORT_AND_Map_Symbols/a/}');
     Expect(1, 128767, '\p{intransportandmapsymbols}', "");
     Expect(0, 128767, '\p{^intransportandmapsymbols}', "");
     Expect(0, 128767, '\P{intransportandmapsymbols}', "");
@@ -123745,16 +124961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128768, '\p{^intransportandmapsymbols}', "");
     Expect(1, 128768, '\P{intransportandmapsymbols}', "");
     Expect(0, 128768, '\P{^intransportandmapsymbols}', "");
-    Expect(1, 128767, '\p{	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(0, 128767, '\p{^	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(0, 128767, '\P{	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(1, 128767, '\P{^	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(0, 128768, '\p{	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(1, 128768, '\p{^	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(1, 128768, '\P{	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Expect(0, 128768, '\P{^	-in_TRANSPORT_and_map_SYMBOLS}', "");
-    Error('\p{/a/transport_and_Map}');
-    Error('\P{/a/transport_and_Map}');
+    Expect(1, 128767, '\p{-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(0, 128767, '\p{^-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(0, 128767, '\P{-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(1, 128767, '\P{^-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(0, 128768, '\p{-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(1, 128768, '\p{^-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(1, 128768, '\P{-	in_TRANSPORT_And_MAP_symbols}', "");
+    Expect(0, 128768, '\P{^-	in_TRANSPORT_And_MAP_symbols}', "");
+    Error('\p{	TRANSPORT_AND_Map:=}');
+    Error('\P{	TRANSPORT_AND_Map:=}');
     Expect(1, 128767, '\p{transportandmap}', "");
     Expect(0, 128767, '\p{^transportandmap}', "");
     Expect(0, 128767, '\P{transportandmap}', "");
@@ -123763,16 +124979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128768, '\p{^transportandmap}', "");
     Expect(1, 128768, '\P{transportandmap}', "");
     Expect(0, 128768, '\P{^transportandmap}', "");
-    Expect(1, 128767, '\p{_Transport_AND_Map}', "");
-    Expect(0, 128767, '\p{^_Transport_AND_Map}', "");
-    Expect(0, 128767, '\P{_Transport_AND_Map}', "");
-    Expect(1, 128767, '\P{^_Transport_AND_Map}', "");
-    Expect(0, 128768, '\p{_Transport_AND_Map}', "");
-    Expect(1, 128768, '\p{^_Transport_AND_Map}', "");
-    Expect(1, 128768, '\P{_Transport_AND_Map}', "");
-    Expect(0, 128768, '\P{^_Transport_AND_Map}', "");
-    Error('\p{/a/  IS_Transport_And_map}');
-    Error('\P{/a/  IS_Transport_And_map}');
+    Expect(1, 128767, '\p{ 	Transport_and_map}', "");
+    Expect(0, 128767, '\p{^ 	Transport_and_map}', "");
+    Expect(0, 128767, '\P{ 	Transport_and_map}', "");
+    Expect(1, 128767, '\P{^ 	Transport_and_map}', "");
+    Expect(0, 128768, '\p{ 	Transport_and_map}', "");
+    Expect(1, 128768, '\p{^ 	Transport_and_map}', "");
+    Expect(1, 128768, '\P{ 	Transport_and_map}', "");
+    Expect(0, 128768, '\P{^ 	Transport_and_map}', "");
+    Error('\p{ IS_Transport_And_map/a/}');
+    Error('\P{ IS_Transport_And_map/a/}');
     Expect(1, 128767, '\p{istransportandmap}', "");
     Expect(0, 128767, '\p{^istransportandmap}', "");
     Expect(0, 128767, '\P{istransportandmap}', "");
@@ -123781,16 +124997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128768, '\p{^istransportandmap}', "");
     Expect(1, 128768, '\P{istransportandmap}', "");
     Expect(0, 128768, '\P{^istransportandmap}', "");
-    Expect(1, 128767, '\p{_ Is_Transport_and_map}', "");
-    Expect(0, 128767, '\p{^_ Is_Transport_and_map}', "");
-    Expect(0, 128767, '\P{_ Is_Transport_and_map}', "");
-    Expect(1, 128767, '\P{^_ Is_Transport_and_map}', "");
-    Expect(0, 128768, '\p{_ Is_Transport_and_map}', "");
-    Expect(1, 128768, '\p{^_ Is_Transport_and_map}', "");
-    Expect(1, 128768, '\P{_ Is_Transport_and_map}', "");
-    Expect(0, 128768, '\P{^_ Is_Transport_and_map}', "");
-    Error('\p{	-In_transport_And_Map:=}');
-    Error('\P{	-In_transport_And_Map:=}');
+    Expect(1, 128767, '\p{ Is_TRANSPORT_And_Map}', "");
+    Expect(0, 128767, '\p{^ Is_TRANSPORT_And_Map}', "");
+    Expect(0, 128767, '\P{ Is_TRANSPORT_And_Map}', "");
+    Expect(1, 128767, '\P{^ Is_TRANSPORT_And_Map}', "");
+    Expect(0, 128768, '\p{ Is_TRANSPORT_And_Map}', "");
+    Expect(1, 128768, '\p{^ Is_TRANSPORT_And_Map}', "");
+    Expect(1, 128768, '\P{ Is_TRANSPORT_And_Map}', "");
+    Expect(0, 128768, '\P{^ Is_TRANSPORT_And_Map}', "");
+    Error('\p{:=_In_Transport_And_map}');
+    Error('\P{:=_In_Transport_And_map}');
     Expect(1, 128767, '\p{intransportandmap}', "");
     Expect(0, 128767, '\p{^intransportandmap}', "");
     Expect(0, 128767, '\P{intransportandmap}', "");
@@ -123799,16 +125015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128768, '\p{^intransportandmap}', "");
     Expect(1, 128768, '\P{intransportandmap}', "");
     Expect(0, 128768, '\P{^intransportandmap}', "");
-    Expect(1, 128767, '\p{In_transport_And_Map}', "");
-    Expect(0, 128767, '\p{^In_transport_And_Map}', "");
-    Expect(0, 128767, '\P{In_transport_And_Map}', "");
-    Expect(1, 128767, '\P{^In_transport_And_Map}', "");
-    Expect(0, 128768, '\p{In_transport_And_Map}', "");
-    Expect(1, 128768, '\p{^In_transport_And_Map}', "");
-    Expect(1, 128768, '\P{In_transport_And_Map}', "");
-    Expect(0, 128768, '\P{^In_transport_And_Map}', "");
-    Error('\p{ :=ugaritic}');
-    Error('\P{ :=ugaritic}');
+    Expect(1, 128767, '\p{ IN_Transport_And_map}', "");
+    Expect(0, 128767, '\p{^ IN_Transport_And_map}', "");
+    Expect(0, 128767, '\P{ IN_Transport_And_map}', "");
+    Expect(1, 128767, '\P{^ IN_Transport_And_map}', "");
+    Expect(0, 128768, '\p{ IN_Transport_And_map}', "");
+    Expect(1, 128768, '\p{^ IN_Transport_And_map}', "");
+    Expect(1, 128768, '\P{ IN_Transport_And_map}', "");
+    Expect(0, 128768, '\P{^ IN_Transport_And_map}', "");
+    Error('\p{	-UGARITIC:=}');
+    Error('\P{	-UGARITIC:=}');
     Expect(1, 66463, '\p{ugaritic}', "");
     Expect(0, 66463, '\p{^ugaritic}', "");
     Expect(0, 66463, '\P{ugaritic}', "");
@@ -123817,16 +125033,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^ugaritic}', "");
     Expect(1, 66464, '\P{ugaritic}', "");
     Expect(0, 66464, '\P{^ugaritic}', "");
-    Expect(1, 66463, '\p{ _UGARITIC}', "");
-    Expect(0, 66463, '\p{^ _UGARITIC}', "");
-    Expect(0, 66463, '\P{ _UGARITIC}', "");
-    Expect(1, 66463, '\P{^ _UGARITIC}', "");
-    Expect(0, 66464, '\p{ _UGARITIC}', "");
-    Expect(1, 66464, '\p{^ _UGARITIC}', "");
-    Expect(1, 66464, '\P{ _UGARITIC}', "");
-    Expect(0, 66464, '\P{^ _UGARITIC}', "");
-    Error('\p{:=-	Is_ugaritic}');
-    Error('\P{:=-	Is_ugaritic}');
+    Expect(1, 66463, '\p{	_ugaritic}', "");
+    Expect(0, 66463, '\p{^	_ugaritic}', "");
+    Expect(0, 66463, '\P{	_ugaritic}', "");
+    Expect(1, 66463, '\P{^	_ugaritic}', "");
+    Expect(0, 66464, '\p{	_ugaritic}', "");
+    Expect(1, 66464, '\p{^	_ugaritic}', "");
+    Expect(1, 66464, '\P{	_ugaritic}', "");
+    Expect(0, 66464, '\P{^	_ugaritic}', "");
+    Error('\p{_	IS_Ugaritic/a/}');
+    Error('\P{_	IS_Ugaritic/a/}');
     Expect(1, 66463, '\p{isugaritic}', "");
     Expect(0, 66463, '\p{^isugaritic}', "");
     Expect(0, 66463, '\P{isugaritic}', "");
@@ -123835,16 +125051,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^isugaritic}', "");
     Expect(1, 66464, '\P{isugaritic}', "");
     Expect(0, 66464, '\P{^isugaritic}', "");
-    Expect(1, 66463, '\p{_Is_ugaritic}', "");
-    Expect(0, 66463, '\p{^_Is_ugaritic}', "");
-    Expect(0, 66463, '\P{_Is_ugaritic}', "");
-    Expect(1, 66463, '\P{^_Is_ugaritic}', "");
-    Expect(0, 66464, '\p{_Is_ugaritic}', "");
-    Expect(1, 66464, '\p{^_Is_ugaritic}', "");
-    Expect(1, 66464, '\P{_Is_ugaritic}', "");
-    Expect(0, 66464, '\P{^_Is_ugaritic}', "");
-    Error('\p{	UGAR:=}');
-    Error('\P{	UGAR:=}');
+    Expect(1, 66463, '\p{- Is_UGARITIC}', "");
+    Expect(0, 66463, '\p{^- Is_UGARITIC}', "");
+    Expect(0, 66463, '\P{- Is_UGARITIC}', "");
+    Expect(1, 66463, '\P{^- Is_UGARITIC}', "");
+    Expect(0, 66464, '\p{- Is_UGARITIC}', "");
+    Expect(1, 66464, '\p{^- Is_UGARITIC}', "");
+    Expect(1, 66464, '\P{- Is_UGARITIC}', "");
+    Expect(0, 66464, '\P{^- Is_UGARITIC}', "");
+    Error('\p{ ugar/a/}');
+    Error('\P{ ugar/a/}');
     Expect(1, 66463, '\p{ugar}', "");
     Expect(0, 66463, '\p{^ugar}', "");
     Expect(0, 66463, '\P{ugar}', "");
@@ -123853,16 +125069,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^ugar}', "");
     Expect(1, 66464, '\P{ugar}', "");
     Expect(0, 66464, '\P{^ugar}', "");
-    Expect(1, 66463, '\p{ ugar}', "");
-    Expect(0, 66463, '\p{^ ugar}', "");
-    Expect(0, 66463, '\P{ ugar}', "");
-    Expect(1, 66463, '\P{^ ugar}', "");
-    Expect(0, 66464, '\p{ ugar}', "");
-    Expect(1, 66464, '\p{^ ugar}', "");
-    Expect(1, 66464, '\P{ ugar}', "");
-    Expect(0, 66464, '\P{^ ugar}', "");
-    Error('\p{-:=Is_Ugar}');
-    Error('\P{-:=Is_Ugar}');
+    Expect(1, 66463, '\p{  Ugar}', "");
+    Expect(0, 66463, '\p{^  Ugar}', "");
+    Expect(0, 66463, '\P{  Ugar}', "");
+    Expect(1, 66463, '\P{^  Ugar}', "");
+    Expect(0, 66464, '\p{  Ugar}', "");
+    Expect(1, 66464, '\p{^  Ugar}', "");
+    Expect(1, 66464, '\P{  Ugar}', "");
+    Expect(0, 66464, '\P{^  Ugar}', "");
+    Error('\p{:=- Is_UGAR}');
+    Error('\P{:=- Is_UGAR}');
     Expect(1, 66463, '\p{isugar}', "");
     Expect(0, 66463, '\p{^isugar}', "");
     Expect(0, 66463, '\P{isugar}', "");
@@ -123871,16 +125087,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^isugar}', "");
     Expect(1, 66464, '\P{isugar}', "");
     Expect(0, 66464, '\P{^isugar}', "");
-    Expect(1, 66463, '\p{  IS_Ugar}', "");
-    Expect(0, 66463, '\p{^  IS_Ugar}', "");
-    Expect(0, 66463, '\P{  IS_Ugar}', "");
-    Expect(1, 66463, '\P{^  IS_Ugar}', "");
-    Expect(0, 66464, '\p{  IS_Ugar}', "");
-    Expect(1, 66464, '\p{^  IS_Ugar}', "");
-    Expect(1, 66464, '\P{  IS_Ugar}', "");
-    Expect(0, 66464, '\P{^  IS_Ugar}', "");
-    Error('\p{	:=UNASSIGNED}');
-    Error('\P{	:=UNASSIGNED}');
+    Expect(1, 66463, '\p{ Is_UGAR}', "");
+    Expect(0, 66463, '\p{^ Is_UGAR}', "");
+    Expect(0, 66463, '\P{ Is_UGAR}', "");
+    Expect(1, 66463, '\P{^ Is_UGAR}', "");
+    Expect(0, 66464, '\p{ Is_UGAR}', "");
+    Expect(1, 66464, '\p{^ Is_UGAR}', "");
+    Expect(1, 66464, '\P{ Is_UGAR}', "");
+    Expect(0, 66464, '\P{^ Is_UGAR}', "");
+    Error('\p{--Unassigned/a/}');
+    Error('\P{--Unassigned/a/}');
     Expect(1, 918000, '\p{unassigned}', "");
     Expect(0, 918000, '\p{^unassigned}', "");
     Expect(0, 918000, '\P{unassigned}', "");
@@ -123889,16 +125105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1114109, '\p{^unassigned}', "");
     Expect(1, 1114109, '\P{unassigned}', "");
     Expect(0, 1114109, '\P{^unassigned}', "");
-    Expect(1, 918000, '\p{__Unassigned}', "");
-    Expect(0, 918000, '\p{^__Unassigned}', "");
-    Expect(0, 918000, '\P{__Unassigned}', "");
-    Expect(1, 918000, '\P{^__Unassigned}', "");
-    Expect(0, 1114109, '\p{__Unassigned}', "");
-    Expect(1, 1114109, '\p{^__Unassigned}', "");
-    Expect(1, 1114109, '\P{__Unassigned}', "");
-    Expect(0, 1114109, '\P{^__Unassigned}', "");
-    Error('\p{-:=IS_Unassigned}');
-    Error('\P{-:=IS_Unassigned}');
+    Expect(1, 918000, '\p{Unassigned}', "");
+    Expect(0, 918000, '\p{^Unassigned}', "");
+    Expect(0, 918000, '\P{Unassigned}', "");
+    Expect(1, 918000, '\P{^Unassigned}', "");
+    Expect(0, 1114109, '\p{Unassigned}', "");
+    Expect(1, 1114109, '\p{^Unassigned}', "");
+    Expect(1, 1114109, '\P{Unassigned}', "");
+    Expect(0, 1114109, '\P{^Unassigned}', "");
+    Error('\p{	-is_Unassigned/a/}');
+    Error('\P{	-is_Unassigned/a/}');
     Expect(1, 918000, '\p{isunassigned}', "");
     Expect(0, 918000, '\p{^isunassigned}', "");
     Expect(0, 918000, '\P{isunassigned}', "");
@@ -123907,16 +125123,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1114109, '\p{^isunassigned}', "");
     Expect(1, 1114109, '\P{isunassigned}', "");
     Expect(0, 1114109, '\P{^isunassigned}', "");
-    Expect(1, 918000, '\p{ _Is_UNASSIGNED}', "");
-    Expect(0, 918000, '\p{^ _Is_UNASSIGNED}', "");
-    Expect(0, 918000, '\P{ _Is_UNASSIGNED}', "");
-    Expect(1, 918000, '\P{^ _Is_UNASSIGNED}', "");
-    Expect(0, 1114109, '\p{ _Is_UNASSIGNED}', "");
-    Expect(1, 1114109, '\p{^ _Is_UNASSIGNED}', "");
-    Expect(1, 1114109, '\P{ _Is_UNASSIGNED}', "");
-    Expect(0, 1114109, '\P{^ _Is_UNASSIGNED}', "");
-    Error('\p{:=  Cn}');
-    Error('\P{:=  Cn}');
+    Expect(1, 918000, '\p{ Is_UNASSIGNED}', "");
+    Expect(0, 918000, '\p{^ Is_UNASSIGNED}', "");
+    Expect(0, 918000, '\P{ Is_UNASSIGNED}', "");
+    Expect(1, 918000, '\P{^ Is_UNASSIGNED}', "");
+    Expect(0, 1114109, '\p{ Is_UNASSIGNED}', "");
+    Expect(1, 1114109, '\p{^ Is_UNASSIGNED}', "");
+    Expect(1, 1114109, '\P{ Is_UNASSIGNED}', "");
+    Expect(0, 1114109, '\P{^ Is_UNASSIGNED}', "");
+    Error('\p{/a/Cn}');
+    Error('\P{/a/Cn}');
     Expect(1, 918000, '\p{cn}', "");
     Expect(0, 918000, '\p{^cn}', "");
     Expect(0, 918000, '\P{cn}', "");
@@ -123925,16 +125141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1114109, '\p{^cn}', "");
     Expect(1, 1114109, '\P{cn}', "");
     Expect(0, 1114109, '\P{^cn}', "");
-    Expect(1, 918000, '\p{ CN}', "");
-    Expect(0, 918000, '\p{^ CN}', "");
-    Expect(0, 918000, '\P{ CN}', "");
-    Expect(1, 918000, '\P{^ CN}', "");
-    Expect(0, 1114109, '\p{ CN}', "");
-    Expect(1, 1114109, '\p{^ CN}', "");
-    Expect(1, 1114109, '\P{ CN}', "");
-    Expect(0, 1114109, '\P{^ CN}', "");
-    Error('\p{:= 	Is_CN}');
-    Error('\P{:= 	Is_CN}');
+    Expect(1, 918000, '\p{_	Cn}', "");
+    Expect(0, 918000, '\p{^_	Cn}', "");
+    Expect(0, 918000, '\P{_	Cn}', "");
+    Expect(1, 918000, '\P{^_	Cn}', "");
+    Expect(0, 1114109, '\p{_	Cn}', "");
+    Expect(1, 1114109, '\p{^_	Cn}', "");
+    Expect(1, 1114109, '\P{_	Cn}', "");
+    Expect(0, 1114109, '\P{^_	Cn}', "");
+    Error('\p{	-IS_cn/a/}');
+    Error('\P{	-IS_cn/a/}');
     Expect(1, 918000, '\p{iscn}', "");
     Expect(0, 918000, '\p{^iscn}', "");
     Expect(0, 918000, '\P{iscn}', "");
@@ -123943,16 +125159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1114109, '\p{^iscn}', "");
     Expect(1, 1114109, '\P{iscn}', "");
     Expect(0, 1114109, '\P{^iscn}', "");
-    Expect(1, 918000, '\p{--IS_Cn}', "");
-    Expect(0, 918000, '\p{^--IS_Cn}', "");
-    Expect(0, 918000, '\P{--IS_Cn}', "");
-    Expect(1, 918000, '\P{^--IS_Cn}', "");
-    Expect(0, 1114109, '\p{--IS_Cn}', "");
-    Expect(1, 1114109, '\p{^--IS_Cn}', "");
-    Expect(1, 1114109, '\P{--IS_Cn}', "");
-    Expect(0, 1114109, '\P{^--IS_Cn}', "");
-    Error('\p{/a/	-UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS}');
-    Error('\P{/a/	-UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS}');
+    Expect(1, 918000, '\p{_is_Cn}', "");
+    Expect(0, 918000, '\p{^_is_Cn}', "");
+    Expect(0, 918000, '\P{_is_Cn}', "");
+    Expect(1, 918000, '\P{^_is_Cn}', "");
+    Expect(0, 1114109, '\p{_is_Cn}', "");
+    Expect(1, 1114109, '\p{^_is_Cn}', "");
+    Expect(1, 1114109, '\P{_is_Cn}', "");
+    Expect(0, 1114109, '\P{^_is_Cn}', "");
+    Error('\p{	 unified_CANADIAN_Aboriginal_SYLLABICS:=}');
+    Error('\P{	 unified_CANADIAN_Aboriginal_SYLLABICS:=}');
     Expect(1, 5759, '\p{unifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\p{^unifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\P{unifiedcanadianaboriginalsyllabics}', "");
@@ -123961,16 +125177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^unifiedcanadianaboriginalsyllabics}', "");
     Expect(1, 5760, '\P{unifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5760, '\P{^unifiedcanadianaboriginalsyllabics}', "");
-    Expect(1, 5759, '\p{_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5759, '\p{^_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5759, '\P{_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5759, '\P{^_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5760, '\p{_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5760, '\p{^_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5760, '\P{_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5760, '\P{^_UNIFIED_Canadian_Aboriginal_Syllabics}', "");
-    Error('\p{/a/_ Is_UNIFIED_canadian_aboriginal_Syllabics}');
-    Error('\P{/a/_ Is_UNIFIED_canadian_aboriginal_Syllabics}');
+    Expect(1, 5759, '\p{-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(0, 5759, '\p{^-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(0, 5759, '\P{-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(1, 5759, '\P{^-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(0, 5760, '\p{-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(1, 5760, '\p{^-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(1, 5760, '\P{-unified_Canadian_aboriginal_syllabics}', "");
+    Expect(0, 5760, '\P{^-unified_Canadian_aboriginal_syllabics}', "");
+    Error('\p{/a/-_IS_Unified_canadian_ABORIGINAL_Syllabics}');
+    Error('\P{/a/-_IS_Unified_canadian_ABORIGINAL_Syllabics}');
     Expect(1, 5759, '\p{isunifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\p{^isunifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\P{isunifiedcanadianaboriginalsyllabics}', "");
@@ -123979,16 +125195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^isunifiedcanadianaboriginalsyllabics}', "");
     Expect(1, 5760, '\P{isunifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5760, '\P{^isunifiedcanadianaboriginalsyllabics}', "");
-    Expect(1, 5759, '\p{__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5759, '\p{^__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5759, '\P{__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5759, '\P{^__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5760, '\p{__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5760, '\p{^__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5760, '\P{__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5760, '\P{^__Is_Unified_Canadian_Aboriginal_Syllabics}', "");
-    Error('\p{_/a/In_Unified_canadian_ABORIGINAL_SYLLABICS}');
-    Error('\P{_/a/In_Unified_canadian_ABORIGINAL_SYLLABICS}');
+    Expect(1, 5759, '\p{  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5759, '\p{^  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5759, '\P{  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(1, 5759, '\P{^  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5760, '\p{  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(1, 5760, '\p{^  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(1, 5760, '\P{  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Expect(0, 5760, '\P{^  is_Unified_Canadian_aboriginal_Syllabics}', "");
+    Error('\p{	_In_Unified_canadian_aboriginal_syllabics:=}');
+    Error('\P{	_In_Unified_canadian_aboriginal_syllabics:=}');
     Expect(1, 5759, '\p{inunifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\p{^inunifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5759, '\P{inunifiedcanadianaboriginalsyllabics}', "");
@@ -123997,16 +125213,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^inunifiedcanadianaboriginalsyllabics}', "");
     Expect(1, 5760, '\P{inunifiedcanadianaboriginalsyllabics}', "");
     Expect(0, 5760, '\P{^inunifiedcanadianaboriginalsyllabics}', "");
-    Expect(1, 5759, '\p{ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5759, '\p{^ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5759, '\P{ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5759, '\P{^ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5760, '\p{ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5760, '\p{^ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(1, 5760, '\P{ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Expect(0, 5760, '\P{^ In_Unified_canadian_Aboriginal_Syllabics}', "");
-    Error('\p{:=  UCAS}');
-    Error('\P{:=  UCAS}');
+    Expect(1, 5759, '\p{-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(0, 5759, '\p{^-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(0, 5759, '\P{-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(1, 5759, '\P{^-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(0, 5760, '\p{-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(1, 5760, '\p{^-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(1, 5760, '\P{-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Expect(0, 5760, '\P{^-In_unified_Canadian_Aboriginal_SYLLABICS}', "");
+    Error('\p{_/a/ucas}');
+    Error('\P{_/a/ucas}');
     Expect(1, 5759, '\p{ucas}', "");
     Expect(0, 5759, '\p{^ucas}', "");
     Expect(0, 5759, '\P{ucas}', "");
@@ -124015,16 +125231,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^ucas}', "");
     Expect(1, 5760, '\P{ucas}', "");
     Expect(0, 5760, '\P{^ucas}', "");
-    Expect(1, 5759, '\p{_UCAS}', "");
-    Expect(0, 5759, '\p{^_UCAS}', "");
-    Expect(0, 5759, '\P{_UCAS}', "");
-    Expect(1, 5759, '\P{^_UCAS}', "");
-    Expect(0, 5760, '\p{_UCAS}', "");
-    Expect(1, 5760, '\p{^_UCAS}', "");
-    Expect(1, 5760, '\P{_UCAS}', "");
-    Expect(0, 5760, '\P{^_UCAS}', "");
-    Error('\p{:=	 IS_UCAS}');
-    Error('\P{:=	 IS_UCAS}');
+    Expect(1, 5759, '\p{ 	UCAS}', "");
+    Expect(0, 5759, '\p{^ 	UCAS}', "");
+    Expect(0, 5759, '\P{ 	UCAS}', "");
+    Expect(1, 5759, '\P{^ 	UCAS}', "");
+    Expect(0, 5760, '\p{ 	UCAS}', "");
+    Expect(1, 5760, '\p{^ 	UCAS}', "");
+    Expect(1, 5760, '\P{ 	UCAS}', "");
+    Expect(0, 5760, '\P{^ 	UCAS}', "");
+    Error('\p{:=_IS_UCAS}');
+    Error('\P{:=_IS_UCAS}');
     Expect(1, 5759, '\p{isucas}', "");
     Expect(0, 5759, '\p{^isucas}', "");
     Expect(0, 5759, '\P{isucas}', "");
@@ -124033,16 +125249,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^isucas}', "");
     Expect(1, 5760, '\P{isucas}', "");
     Expect(0, 5760, '\P{^isucas}', "");
-    Expect(1, 5759, '\p{	is_ucas}', "");
-    Expect(0, 5759, '\p{^	is_ucas}', "");
-    Expect(0, 5759, '\P{	is_ucas}', "");
-    Expect(1, 5759, '\P{^	is_ucas}', "");
-    Expect(0, 5760, '\p{	is_ucas}', "");
-    Expect(1, 5760, '\p{^	is_ucas}', "");
-    Expect(1, 5760, '\P{	is_ucas}', "");
-    Expect(0, 5760, '\P{^	is_ucas}', "");
-    Error('\p{/a/_In_ucas}');
-    Error('\P{/a/_In_ucas}');
+    Expect(1, 5759, '\p{ _Is_ucas}', "");
+    Expect(0, 5759, '\p{^ _Is_ucas}', "");
+    Expect(0, 5759, '\P{ _Is_ucas}', "");
+    Expect(1, 5759, '\P{^ _Is_ucas}', "");
+    Expect(0, 5760, '\p{ _Is_ucas}', "");
+    Expect(1, 5760, '\p{^ _Is_ucas}', "");
+    Expect(1, 5760, '\P{ _Is_ucas}', "");
+    Expect(0, 5760, '\P{^ _Is_ucas}', "");
+    Error('\p{-IN_UCAS:=}');
+    Error('\P{-IN_UCAS:=}');
     Expect(1, 5759, '\p{inucas}', "");
     Expect(0, 5759, '\p{^inucas}', "");
     Expect(0, 5759, '\P{inucas}', "");
@@ -124051,16 +125267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^inucas}', "");
     Expect(1, 5760, '\P{inucas}', "");
     Expect(0, 5760, '\P{^inucas}', "");
-    Expect(1, 5759, '\p{-_in_UCAS}', "");
-    Expect(0, 5759, '\p{^-_in_UCAS}', "");
-    Expect(0, 5759, '\P{-_in_UCAS}', "");
-    Expect(1, 5759, '\P{^-_in_UCAS}', "");
-    Expect(0, 5760, '\p{-_in_UCAS}', "");
-    Expect(1, 5760, '\p{^-_in_UCAS}', "");
-    Expect(1, 5760, '\P{-_in_UCAS}', "");
-    Expect(0, 5760, '\P{^-_in_UCAS}', "");
-    Error('\p{-_Canadian_syllabics/a/}');
-    Error('\P{-_Canadian_syllabics/a/}');
+    Expect(1, 5759, '\p{ In_UCAS}', "");
+    Expect(0, 5759, '\p{^ In_UCAS}', "");
+    Expect(0, 5759, '\P{ In_UCAS}', "");
+    Expect(1, 5759, '\P{^ In_UCAS}', "");
+    Expect(0, 5760, '\p{ In_UCAS}', "");
+    Expect(1, 5760, '\p{^ In_UCAS}', "");
+    Expect(1, 5760, '\P{ In_UCAS}', "");
+    Expect(0, 5760, '\P{^ In_UCAS}', "");
+    Error('\p{/a/		CANADIAN_Syllabics}');
+    Error('\P{/a/		CANADIAN_Syllabics}');
     Expect(1, 5759, '\p{canadiansyllabics}', "");
     Expect(0, 5759, '\p{^canadiansyllabics}', "");
     Expect(0, 5759, '\P{canadiansyllabics}', "");
@@ -124069,16 +125285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^canadiansyllabics}', "");
     Expect(1, 5760, '\P{canadiansyllabics}', "");
     Expect(0, 5760, '\P{^canadiansyllabics}', "");
-    Expect(1, 5759, '\p{_-CANADIAN_syllabics}', "");
-    Expect(0, 5759, '\p{^_-CANADIAN_syllabics}', "");
-    Expect(0, 5759, '\P{_-CANADIAN_syllabics}', "");
-    Expect(1, 5759, '\P{^_-CANADIAN_syllabics}', "");
-    Expect(0, 5760, '\p{_-CANADIAN_syllabics}', "");
-    Expect(1, 5760, '\p{^_-CANADIAN_syllabics}', "");
-    Expect(1, 5760, '\P{_-CANADIAN_syllabics}', "");
-    Expect(0, 5760, '\P{^_-CANADIAN_syllabics}', "");
-    Error('\p{--IS_Canadian_SYLLABICS/a/}');
-    Error('\P{--IS_Canadian_SYLLABICS/a/}');
+    Expect(1, 5759, '\p{--CANADIAN_Syllabics}', "");
+    Expect(0, 5759, '\p{^--CANADIAN_Syllabics}', "");
+    Expect(0, 5759, '\P{--CANADIAN_Syllabics}', "");
+    Expect(1, 5759, '\P{^--CANADIAN_Syllabics}', "");
+    Expect(0, 5760, '\p{--CANADIAN_Syllabics}', "");
+    Expect(1, 5760, '\p{^--CANADIAN_Syllabics}', "");
+    Expect(1, 5760, '\P{--CANADIAN_Syllabics}', "");
+    Expect(0, 5760, '\P{^--CANADIAN_Syllabics}', "");
+    Error('\p{	-IS_Canadian_syllabics/a/}');
+    Error('\P{	-IS_Canadian_syllabics/a/}');
     Expect(1, 5759, '\p{iscanadiansyllabics}', "");
     Expect(0, 5759, '\p{^iscanadiansyllabics}', "");
     Expect(0, 5759, '\P{iscanadiansyllabics}', "");
@@ -124087,16 +125303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^iscanadiansyllabics}', "");
     Expect(1, 5760, '\P{iscanadiansyllabics}', "");
     Expect(0, 5760, '\P{^iscanadiansyllabics}', "");
-    Expect(1, 5759, '\p{	 Is_CANADIAN_Syllabics}', "");
-    Expect(0, 5759, '\p{^	 Is_CANADIAN_Syllabics}', "");
-    Expect(0, 5759, '\P{	 Is_CANADIAN_Syllabics}', "");
-    Expect(1, 5759, '\P{^	 Is_CANADIAN_Syllabics}', "");
-    Expect(0, 5760, '\p{	 Is_CANADIAN_Syllabics}', "");
-    Expect(1, 5760, '\p{^	 Is_CANADIAN_Syllabics}', "");
-    Expect(1, 5760, '\P{	 Is_CANADIAN_Syllabics}', "");
-    Expect(0, 5760, '\P{^	 Is_CANADIAN_Syllabics}', "");
-    Error('\p{:=- in_canadian_Syllabics}');
-    Error('\P{:=- in_canadian_Syllabics}');
+    Expect(1, 5759, '\p{- IS_Canadian_Syllabics}', "");
+    Expect(0, 5759, '\p{^- IS_Canadian_Syllabics}', "");
+    Expect(0, 5759, '\P{- IS_Canadian_Syllabics}', "");
+    Expect(1, 5759, '\P{^- IS_Canadian_Syllabics}', "");
+    Expect(0, 5760, '\p{- IS_Canadian_Syllabics}', "");
+    Expect(1, 5760, '\p{^- IS_Canadian_Syllabics}', "");
+    Expect(1, 5760, '\P{- IS_Canadian_Syllabics}', "");
+    Expect(0, 5760, '\P{^- IS_Canadian_Syllabics}', "");
+    Error('\p{-/a/In_Canadian_SYLLABICS}');
+    Error('\P{-/a/In_Canadian_SYLLABICS}');
     Expect(1, 5759, '\p{incanadiansyllabics}', "");
     Expect(0, 5759, '\p{^incanadiansyllabics}', "");
     Expect(0, 5759, '\P{incanadiansyllabics}', "");
@@ -124105,16 +125321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5760, '\p{^incanadiansyllabics}', "");
     Expect(1, 5760, '\P{incanadiansyllabics}', "");
     Expect(0, 5760, '\P{^incanadiansyllabics}', "");
-    Expect(1, 5759, '\p{  in_Canadian_Syllabics}', "");
-    Expect(0, 5759, '\p{^  in_Canadian_Syllabics}', "");
-    Expect(0, 5759, '\P{  in_Canadian_Syllabics}', "");
-    Expect(1, 5759, '\P{^  in_Canadian_Syllabics}', "");
-    Expect(0, 5760, '\p{  in_Canadian_Syllabics}', "");
-    Expect(1, 5760, '\p{^  in_Canadian_Syllabics}', "");
-    Expect(1, 5760, '\P{  in_Canadian_Syllabics}', "");
-    Expect(0, 5760, '\P{^  in_Canadian_Syllabics}', "");
-    Error('\p{/a/_ Unified_CANADIAN_ABORIGINAL_Syllabics_extended}');
-    Error('\P{/a/_ Unified_CANADIAN_ABORIGINAL_Syllabics_extended}');
+    Expect(1, 5759, '\p{ In_canadian_Syllabics}', "");
+    Expect(0, 5759, '\p{^ In_canadian_Syllabics}', "");
+    Expect(0, 5759, '\P{ In_canadian_Syllabics}', "");
+    Expect(1, 5759, '\P{^ In_canadian_Syllabics}', "");
+    Expect(0, 5760, '\p{ In_canadian_Syllabics}', "");
+    Expect(1, 5760, '\p{^ In_canadian_Syllabics}', "");
+    Expect(1, 5760, '\P{ In_canadian_Syllabics}', "");
+    Expect(0, 5760, '\P{^ In_canadian_Syllabics}', "");
+    Error('\p{:=_UNIFIED_CANADIAN_aboriginal_SYLLABICS_extended}');
+    Error('\P{:=_UNIFIED_CANADIAN_aboriginal_SYLLABICS_extended}');
     Expect(1, 6399, '\p{unifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6399, '\p{^unifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6399, '\P{unifiedcanadianaboriginalsyllabicsextended}', "");
@@ -124123,16 +125339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6400, '\p{^unifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(1, 6400, '\P{unifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6400, '\P{^unifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6399, '\p{_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(0, 6399, '\p{^_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(0, 6399, '\P{_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(1, 6399, '\P{^_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(0, 6400, '\p{_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(1, 6400, '\p{^_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(1, 6400, '\P{_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Expect(0, 6400, '\P{^_ unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
-    Error('\p{:=-Is_unified_CANADIAN_Aboriginal_syllabics_Extended}');
-    Error('\P{:=-Is_unified_CANADIAN_Aboriginal_syllabics_Extended}');
+    Expect(1, 6399, '\p{-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(0, 6399, '\p{^-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(0, 6399, '\P{-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(1, 6399, '\P{^-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(0, 6400, '\p{-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(1, 6400, '\p{^-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(1, 6400, '\P{-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Expect(0, 6400, '\P{^-Unified_CANADIAN_Aboriginal_SYLLABICS_Extended}', "");
+    Error('\p{/a/ -is_UNIFIED_canadian_aboriginal_SYLLABICS_EXTENDED}');
+    Error('\P{/a/ -is_UNIFIED_canadian_aboriginal_SYLLABICS_EXTENDED}');
     Expect(1, 6399, '\p{isunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6399, '\p{^isunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6399, '\P{isunifiedcanadianaboriginalsyllabicsextended}', "");
@@ -124141,16 +125357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6400, '\p{^isunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(1, 6400, '\P{isunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6400, '\P{^isunifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6399, '\p{  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6399, '\p{^  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6399, '\P{  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(1, 6399, '\P{^  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6400, '\p{  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(1, 6400, '\p{^  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(1, 6400, '\P{  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Expect(0, 6400, '\P{^  Is_unified_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED}', "");
-    Error('\p{/a/__IN_unified_Canadian_aboriginal_Syllabics_Extended}');
-    Error('\P{/a/__IN_unified_Canadian_aboriginal_Syllabics_Extended}');
+    Expect(1, 6399, '\p{	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(0, 6399, '\p{^	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(0, 6399, '\P{	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(1, 6399, '\P{^	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(0, 6400, '\p{	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(1, 6400, '\p{^	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(1, 6400, '\P{	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Expect(0, 6400, '\P{^	Is_unified_canadian_ABORIGINAL_Syllabics_Extended}', "");
+    Error('\p{ In_UNIFIED_CANADIAN_ABORIGINAL_Syllabics_extended:=}');
+    Error('\P{ In_UNIFIED_CANADIAN_ABORIGINAL_Syllabics_extended:=}');
     Expect(1, 6399, '\p{inunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6399, '\p{^inunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6399, '\P{inunifiedcanadianaboriginalsyllabicsextended}', "");
@@ -124159,16 +125375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6400, '\p{^inunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(1, 6400, '\P{inunifiedcanadianaboriginalsyllabicsextended}', "");
     Expect(0, 6400, '\P{^inunifiedcanadianaboriginalsyllabicsextended}', "");
-    Expect(1, 6399, '\p{_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6399, '\p{^_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6399, '\P{_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(1, 6399, '\P{^_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6400, '\p{_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(1, 6400, '\p{^_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(1, 6400, '\P{_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Expect(0, 6400, '\P{^_ In_UNIFIED_CANADIAN_aboriginal_Syllabics_EXTENDED}', "");
-    Error('\p{/a/--UCAS_EXT}');
-    Error('\P{/a/--UCAS_EXT}');
+    Expect(1, 6399, '\p{_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(0, 6399, '\p{^_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(0, 6399, '\P{_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(1, 6399, '\P{^_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(0, 6400, '\p{_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(1, 6400, '\p{^_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(1, 6400, '\P{_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Expect(0, 6400, '\P{^_ in_unified_CANADIAN_aboriginal_syllabics_Extended}', "");
+    Error('\p{/a/ucas_ext}');
+    Error('\P{/a/ucas_ext}');
     Expect(1, 6399, '\p{ucasext}', "");
     Expect(0, 6399, '\p{^ucasext}', "");
     Expect(0, 6399, '\P{ucasext}', "");
@@ -124177,16 +125393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6400, '\p{^ucasext}', "");
     Expect(1, 6400, '\P{ucasext}', "");
     Expect(0, 6400, '\P{^ucasext}', "");
-    Expect(1, 6399, '\p{_ ucas_EXT}', "");
-    Expect(0, 6399, '\p{^_ ucas_EXT}', "");
-    Expect(0, 6399, '\P{_ ucas_EXT}', "");
-    Expect(1, 6399, '\P{^_ ucas_EXT}', "");
-    Expect(0, 6400, '\p{_ ucas_EXT}', "");
-    Expect(1, 6400, '\p{^_ ucas_EXT}', "");
-    Expect(1, 6400, '\P{_ ucas_EXT}', "");
-    Expect(0, 6400, '\P{^_ ucas_EXT}', "");
-    Error('\p{- IS_ucas_Ext:=}');
-    Error('\P{- IS_ucas_Ext:=}');
+    Expect(1, 6399, '\p{UCAS_EXT}', "");
+    Expect(0, 6399, '\p{^UCAS_EXT}', "");
+    Expect(0, 6399, '\P{UCAS_EXT}', "");
+    Expect(1, 6399, '\P{^UCAS_EXT}', "");
+    Expect(0, 6400, '\p{UCAS_EXT}', "");
+    Expect(1, 6400, '\p{^UCAS_EXT}', "");
+    Expect(1, 6400, '\P{UCAS_EXT}', "");
+    Expect(0, 6400, '\P{^UCAS_EXT}', "");
+    Error('\p{:=-	Is_ucas_Ext}');
+    Error('\P{:=-	Is_ucas_Ext}');
     Expect(1, 6399, '\p{isucasext}', "");
     Expect(0, 6399, '\p{^isucasext}', "");
     Expect(0, 6399, '\P{isucasext}', "");
@@ -124195,16 +125411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6400, '\p{^isucasext}', "");
     Expect(1, 6400, '\P{isucasext}', "");
     Expect(0, 6400, '\P{^isucasext}', "");
-    Expect(1, 6399, '\p{	-Is_UCAS_ext}', "");
-    Expect(0, 6399, '\p{^	-Is_UCAS_ext}', "");
-    Expect(0, 6399, '\P{	-Is_UCAS_ext}', "");
-    Expect(1, 6399, '\P{^	-Is_UCAS_ext}', "");
-    Expect(0, 6400, '\p{	-Is_UCAS_ext}', "");
-    Expect(1, 6400, '\p{^	-Is_UCAS_ext}', "");
-    Expect(1, 6400, '\P{	-Is_UCAS_ext}', "");
-    Expect(0, 6400, '\P{^	-Is_UCAS_ext}', "");
-    Error('\p{_In_UCAS_ext/a/}');
-    Error('\P{_In_UCAS_ext/a/}');
+    Expect(1, 6399, '\p{ -Is_UCAS_Ext}', "");
+    Expect(0, 6399, '\p{^ -Is_UCAS_Ext}', "");
+    Expect(0, 6399, '\P{ -Is_UCAS_Ext}', "");
+    Expect(1, 6399, '\P{^ -Is_UCAS_Ext}', "");
+    Expect(0, 6400, '\p{ -Is_UCAS_Ext}', "");
+    Expect(1, 6400, '\p{^ -Is_UCAS_Ext}', "");
+    Expect(1, 6400, '\P{ -Is_UCAS_Ext}', "");
+    Expect(0, 6400, '\P{^ -Is_UCAS_Ext}', "");
+    Error('\p{-_In_UCAS_ext/a/}');
+    Error('\P{-_In_UCAS_ext/a/}');
     Expect(1, 6399, '\p{inucasext}', "");
     Expect(0, 6399, '\p{^inucasext}', "");
     Expect(0, 6399, '\P{inucasext}', "");
@@ -124213,16 +125429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6400, '\p{^inucasext}', "");
     Expect(1, 6400, '\P{inucasext}', "");
     Expect(0, 6400, '\P{^inucasext}', "");
-    Expect(1, 6399, '\p{-in_ucas_EXT}', "");
-    Expect(0, 6399, '\p{^-in_ucas_EXT}', "");
-    Expect(0, 6399, '\P{-in_ucas_EXT}', "");
-    Expect(1, 6399, '\P{^-in_ucas_EXT}', "");
-    Expect(0, 6400, '\p{-in_ucas_EXT}', "");
-    Expect(1, 6400, '\p{^-in_ucas_EXT}', "");
-    Expect(1, 6400, '\P{-in_ucas_EXT}', "");
-    Expect(0, 6400, '\P{^-in_ucas_EXT}', "");
-    Error('\p{/a/--UNIFIED_canadian_ABORIGINAL_Syllabics_EXTENDED_A}');
-    Error('\P{/a/--UNIFIED_canadian_ABORIGINAL_Syllabics_EXTENDED_A}');
+    Expect(1, 6399, '\p{ 	In_ucas_Ext}', "");
+    Expect(0, 6399, '\p{^ 	In_ucas_Ext}', "");
+    Expect(0, 6399, '\P{ 	In_ucas_Ext}', "");
+    Expect(1, 6399, '\P{^ 	In_ucas_Ext}', "");
+    Expect(0, 6400, '\p{ 	In_ucas_Ext}', "");
+    Expect(1, 6400, '\p{^ 	In_ucas_Ext}', "");
+    Expect(1, 6400, '\P{ 	In_ucas_Ext}', "");
+    Expect(0, 6400, '\P{^ 	In_ucas_Ext}', "");
+    Error('\p{_:=Unified_Canadian_aboriginal_Syllabics_Extended_a}');
+    Error('\P{_:=Unified_Canadian_aboriginal_Syllabics_Extended_a}');
     Expect(1, 72383, '\p{unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\p{^unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\P{unifiedcanadianaboriginalsyllabicsextendeda}', "");
@@ -124231,16 +125447,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(1, 72384, '\P{unifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72384, '\P{^unifiedcanadianaboriginalsyllabicsextendeda}', "");
-    Expect(1, 72383, '\p{__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(0, 72383, '\p{^__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(0, 72383, '\P{__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(1, 72383, '\P{^__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(0, 72384, '\p{__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(1, 72384, '\p{^__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(1, 72384, '\P{__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Expect(0, 72384, '\P{^__Unified_Canadian_Aboriginal_Syllabics_EXTENDED_A}', "");
-    Error('\p{ /a/IS_Unified_canadian_ABORIGINAL_syllabics_extended_A}');
-    Error('\P{ /a/IS_Unified_canadian_ABORIGINAL_syllabics_extended_A}');
+    Expect(1, 72383, '\p{-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72383, '\p{^-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72383, '\P{-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(1, 72383, '\P{^-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72384, '\p{-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(1, 72384, '\p{^-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(1, 72384, '\P{-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Expect(0, 72384, '\P{^-	UNIFIED_canadian_Aboriginal_SYLLABICS_Extended_A}', "");
+    Error('\p{/a/Is_Unified_Canadian_aboriginal_syllabics_extended_A}');
+    Error('\P{/a/Is_Unified_Canadian_aboriginal_syllabics_extended_A}');
     Expect(1, 72383, '\p{isunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\p{^isunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\P{isunifiedcanadianaboriginalsyllabicsextendeda}', "");
@@ -124249,16 +125465,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^isunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(1, 72384, '\P{isunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72384, '\P{^isunifiedcanadianaboriginalsyllabicsextendeda}', "");
-    Expect(1, 72383, '\p{	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(0, 72383, '\p{^	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(0, 72383, '\P{	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(1, 72383, '\P{^	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(0, 72384, '\p{	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(1, 72384, '\p{^	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(1, 72384, '\P{	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Expect(0, 72384, '\P{^	 IS_Unified_Canadian_aboriginal_Syllabics_extended_A}', "");
-    Error('\p{_:=In_UNIFIED_canadian_Aboriginal_syllabics_Extended_a}');
-    Error('\P{_:=In_UNIFIED_canadian_Aboriginal_syllabics_Extended_a}');
+    Expect(1, 72383, '\p{-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(0, 72383, '\p{^-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(0, 72383, '\P{-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(1, 72383, '\P{^-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(0, 72384, '\p{-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(1, 72384, '\p{^-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(1, 72384, '\P{-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Expect(0, 72384, '\P{^-_IS_UNIFIED_CANADIAN_aboriginal_Syllabics_extended_a}', "");
+    Error('\p{:=-	in_unified_Canadian_ABORIGINAL_Syllabics_Extended_A}');
+    Error('\P{:=-	in_unified_Canadian_ABORIGINAL_Syllabics_Extended_A}');
     Expect(1, 72383, '\p{inunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\p{^inunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72383, '\P{inunifiedcanadianaboriginalsyllabicsextendeda}', "");
@@ -124267,16 +125483,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^inunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(1, 72384, '\P{inunifiedcanadianaboriginalsyllabicsextendeda}', "");
     Expect(0, 72384, '\P{^inunifiedcanadianaboriginalsyllabicsextendeda}', "");
-    Expect(1, 72383, '\p{-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(0, 72383, '\p{^-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(0, 72383, '\P{-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(1, 72383, '\P{^-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(0, 72384, '\p{-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(1, 72384, '\p{^-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(1, 72384, '\P{-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Expect(0, 72384, '\P{^-_IN_Unified_canadian_Aboriginal_SYLLABICS_EXTENDED_a}', "");
-    Error('\p{-:=UCAS_Ext_A}');
-    Error('\P{-:=UCAS_Ext_A}');
+    Expect(1, 72383, '\p{ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(0, 72383, '\p{^ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(0, 72383, '\P{ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(1, 72383, '\P{^ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(0, 72384, '\p{ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(1, 72384, '\p{^ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(1, 72384, '\P{ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Expect(0, 72384, '\P{^ 	in_Unified_Canadian_Aboriginal_syllabics_EXTENDED_a}', "");
+    Error('\p{ /a/UCAS_Ext_a}');
+    Error('\P{ /a/UCAS_Ext_a}');
     Expect(1, 72383, '\p{ucasexta}', "");
     Expect(0, 72383, '\p{^ucasexta}', "");
     Expect(0, 72383, '\P{ucasexta}', "");
@@ -124285,16 +125501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^ucasexta}', "");
     Expect(1, 72384, '\P{ucasexta}', "");
     Expect(0, 72384, '\P{^ucasexta}', "");
-    Expect(1, 72383, '\p{_UCAS_Ext_a}', "");
-    Expect(0, 72383, '\p{^_UCAS_Ext_a}', "");
-    Expect(0, 72383, '\P{_UCAS_Ext_a}', "");
-    Expect(1, 72383, '\P{^_UCAS_Ext_a}', "");
-    Expect(0, 72384, '\p{_UCAS_Ext_a}', "");
-    Expect(1, 72384, '\p{^_UCAS_Ext_a}', "");
-    Expect(1, 72384, '\P{_UCAS_Ext_a}', "");
-    Expect(0, 72384, '\P{^_UCAS_Ext_a}', "");
-    Error('\p{:=IS_UCAS_Ext_A}');
-    Error('\P{:=IS_UCAS_Ext_A}');
+    Expect(1, 72383, '\p{_	UCAS_Ext_A}', "");
+    Expect(0, 72383, '\p{^_	UCAS_Ext_A}', "");
+    Expect(0, 72383, '\P{_	UCAS_Ext_A}', "");
+    Expect(1, 72383, '\P{^_	UCAS_Ext_A}', "");
+    Expect(0, 72384, '\p{_	UCAS_Ext_A}', "");
+    Expect(1, 72384, '\p{^_	UCAS_Ext_A}', "");
+    Expect(1, 72384, '\P{_	UCAS_Ext_A}', "");
+    Expect(0, 72384, '\P{^_	UCAS_Ext_A}', "");
+    Error('\p{	IS_UCAS_ext_A:=}');
+    Error('\P{	IS_UCAS_ext_A:=}');
     Expect(1, 72383, '\p{isucasexta}', "");
     Expect(0, 72383, '\p{^isucasexta}', "");
     Expect(0, 72383, '\P{isucasexta}', "");
@@ -124303,16 +125519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^isucasexta}', "");
     Expect(1, 72384, '\P{isucasexta}', "");
     Expect(0, 72384, '\P{^isucasexta}', "");
-    Expect(1, 72383, '\p{ -is_UCAS_ext_A}', "");
-    Expect(0, 72383, '\p{^ -is_UCAS_ext_A}', "");
-    Expect(0, 72383, '\P{ -is_UCAS_ext_A}', "");
-    Expect(1, 72383, '\P{^ -is_UCAS_ext_A}', "");
-    Expect(0, 72384, '\p{ -is_UCAS_ext_A}', "");
-    Expect(1, 72384, '\p{^ -is_UCAS_ext_A}', "");
-    Expect(1, 72384, '\P{ -is_UCAS_ext_A}', "");
-    Expect(0, 72384, '\P{^ -is_UCAS_ext_A}', "");
-    Error('\p{_:=in_ucas_ext_A}');
-    Error('\P{_:=in_ucas_ext_A}');
+    Expect(1, 72383, '\p{	 Is_UCAS_EXT_A}', "");
+    Expect(0, 72383, '\p{^	 Is_UCAS_EXT_A}', "");
+    Expect(0, 72383, '\P{	 Is_UCAS_EXT_A}', "");
+    Expect(1, 72383, '\P{^	 Is_UCAS_EXT_A}', "");
+    Expect(0, 72384, '\p{	 Is_UCAS_EXT_A}', "");
+    Expect(1, 72384, '\p{^	 Is_UCAS_EXT_A}', "");
+    Expect(1, 72384, '\P{	 Is_UCAS_EXT_A}', "");
+    Expect(0, 72384, '\P{^	 Is_UCAS_EXT_A}', "");
+    Error('\p{-:=in_UCAS_ext_A}');
+    Error('\P{-:=in_UCAS_ext_A}');
     Expect(1, 72383, '\p{inucasexta}', "");
     Expect(0, 72383, '\p{^inucasexta}', "");
     Expect(0, 72383, '\P{inucasexta}', "");
@@ -124321,88 +125537,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^inucasexta}', "");
     Expect(1, 72384, '\P{inucasexta}', "");
     Expect(0, 72384, '\P{^inucasexta}', "");
-    Expect(1, 72383, '\p{_in_ucas_Ext_A}', "");
-    Expect(0, 72383, '\p{^_in_ucas_Ext_A}', "");
-    Expect(0, 72383, '\P{_in_ucas_Ext_A}', "");
-    Expect(1, 72383, '\P{^_in_ucas_Ext_A}', "");
-    Expect(0, 72384, '\p{_in_ucas_Ext_A}', "");
-    Expect(1, 72384, '\p{^_in_ucas_Ext_A}', "");
-    Expect(1, 72384, '\P{_in_ucas_Ext_A}', "");
-    Expect(0, 72384, '\P{^_in_ucas_Ext_A}', "");
-    Error('\p{_:=UNIFIED_IDEOGRAPH}');
-    Error('\P{_:=UNIFIED_IDEOGRAPH}');
-    Expect(1, 201546, '\p{unifiedideograph}', "");
-    Expect(0, 201546, '\p{^unifiedideograph}', "");
-    Expect(0, 201546, '\P{unifiedideograph}', "");
-    Expect(1, 201546, '\P{^unifiedideograph}', "");
-    Expect(0, 201547, '\p{unifiedideograph}', "");
-    Expect(1, 201547, '\p{^unifiedideograph}', "");
-    Expect(1, 201547, '\P{unifiedideograph}', "");
-    Expect(0, 201547, '\P{^unifiedideograph}', "");
-    Expect(1, 201546, '\p{-	unified_Ideograph}', "");
-    Expect(0, 201546, '\p{^-	unified_Ideograph}', "");
-    Expect(0, 201546, '\P{-	unified_Ideograph}', "");
-    Expect(1, 201546, '\P{^-	unified_Ideograph}', "");
-    Expect(0, 201547, '\p{-	unified_Ideograph}', "");
-    Expect(1, 201547, '\p{^-	unified_Ideograph}', "");
-    Expect(1, 201547, '\P{-	unified_Ideograph}', "");
-    Expect(0, 201547, '\P{^-	unified_Ideograph}', "");
-    Error('\p{:=_	Is_unified_Ideograph}');
-    Error('\P{:=_	Is_unified_Ideograph}');
-    Expect(1, 201546, '\p{isunifiedideograph}', "");
-    Expect(0, 201546, '\p{^isunifiedideograph}', "");
-    Expect(0, 201546, '\P{isunifiedideograph}', "");
-    Expect(1, 201546, '\P{^isunifiedideograph}', "");
-    Expect(0, 201547, '\p{isunifiedideograph}', "");
-    Expect(1, 201547, '\p{^isunifiedideograph}', "");
-    Expect(1, 201547, '\P{isunifiedideograph}', "");
-    Expect(0, 201547, '\P{^isunifiedideograph}', "");
-    Expect(1, 201546, '\p{ _Is_Unified_ideograph}', "");
-    Expect(0, 201546, '\p{^ _Is_Unified_ideograph}', "");
-    Expect(0, 201546, '\P{ _Is_Unified_ideograph}', "");
-    Expect(1, 201546, '\P{^ _Is_Unified_ideograph}', "");
-    Expect(0, 201547, '\p{ _Is_Unified_ideograph}', "");
-    Expect(1, 201547, '\p{^ _Is_Unified_ideograph}', "");
-    Expect(1, 201547, '\P{ _Is_Unified_ideograph}', "");
-    Expect(0, 201547, '\P{^ _Is_Unified_ideograph}', "");
-    Error('\p{_/a/UIdeo}');
-    Error('\P{_/a/UIdeo}');
-    Expect(1, 201546, '\p{uideo}', "");
-    Expect(0, 201546, '\p{^uideo}', "");
-    Expect(0, 201546, '\P{uideo}', "");
-    Expect(1, 201546, '\P{^uideo}', "");
-    Expect(0, 201547, '\p{uideo}', "");
-    Expect(1, 201547, '\p{^uideo}', "");
-    Expect(1, 201547, '\P{uideo}', "");
-    Expect(0, 201547, '\P{^uideo}', "");
-    Expect(1, 201546, '\p{-UIdeo}', "");
-    Expect(0, 201546, '\p{^-UIdeo}', "");
-    Expect(0, 201546, '\P{-UIdeo}', "");
-    Expect(1, 201546, '\P{^-UIdeo}', "");
-    Expect(0, 201547, '\p{-UIdeo}', "");
-    Expect(1, 201547, '\p{^-UIdeo}', "");
-    Expect(1, 201547, '\P{-UIdeo}', "");
-    Expect(0, 201547, '\P{^-UIdeo}', "");
-    Error('\p{-:=is_UIdeo}');
-    Error('\P{-:=is_UIdeo}');
-    Expect(1, 201546, '\p{isuideo}', "");
-    Expect(0, 201546, '\p{^isuideo}', "");
-    Expect(0, 201546, '\P{isuideo}', "");
-    Expect(1, 201546, '\P{^isuideo}', "");
-    Expect(0, 201547, '\p{isuideo}', "");
-    Expect(1, 201547, '\p{^isuideo}', "");
-    Expect(1, 201547, '\P{isuideo}', "");
-    Expect(0, 201547, '\P{^isuideo}', "");
-    Expect(1, 201546, '\p{_Is_UIdeo}', "");
-    Expect(0, 201546, '\p{^_Is_UIdeo}', "");
-    Expect(0, 201546, '\P{_Is_UIdeo}', "");
-    Expect(1, 201546, '\P{^_Is_UIdeo}', "");
-    Expect(0, 201547, '\p{_Is_UIdeo}', "");
-    Expect(1, 201547, '\p{^_Is_UIdeo}', "");
-    Expect(1, 201547, '\P{_Is_UIdeo}', "");
-    Expect(0, 201547, '\P{^_Is_UIdeo}', "");
-    Error('\p{ :=Unknown}');
-    Error('\P{ :=Unknown}');
+    Expect(1, 72383, '\p{-_IN_UCAS_Ext_A}', "");
+    Expect(0, 72383, '\p{^-_IN_UCAS_Ext_A}', "");
+    Expect(0, 72383, '\P{-_IN_UCAS_Ext_A}', "");
+    Expect(1, 72383, '\P{^-_IN_UCAS_Ext_A}', "");
+    Expect(0, 72384, '\p{-_IN_UCAS_Ext_A}', "");
+    Expect(1, 72384, '\p{^-_IN_UCAS_Ext_A}', "");
+    Expect(1, 72384, '\P{-_IN_UCAS_Ext_A}', "");
+    Expect(0, 72384, '\P{^-_IN_UCAS_Ext_A}', "");
+    Error('\p{/a/_Unified_ideograph}');
+    Error('\P{/a/_Unified_ideograph}');
+    Expect(1, 205743, '\p{unifiedideograph}', "");
+    Expect(0, 205743, '\p{^unifiedideograph}', "");
+    Expect(0, 205743, '\P{unifiedideograph}', "");
+    Expect(1, 205743, '\P{^unifiedideograph}', "");
+    Expect(0, 205744, '\p{unifiedideograph}', "");
+    Expect(1, 205744, '\p{^unifiedideograph}', "");
+    Expect(1, 205744, '\P{unifiedideograph}', "");
+    Expect(0, 205744, '\P{^unifiedideograph}', "");
+    Expect(1, 205743, '\p{--Unified_ideograph}', "");
+    Expect(0, 205743, '\p{^--Unified_ideograph}', "");
+    Expect(0, 205743, '\P{--Unified_ideograph}', "");
+    Expect(1, 205743, '\P{^--Unified_ideograph}', "");
+    Expect(0, 205744, '\p{--Unified_ideograph}', "");
+    Expect(1, 205744, '\p{^--Unified_ideograph}', "");
+    Expect(1, 205744, '\P{--Unified_ideograph}', "");
+    Expect(0, 205744, '\P{^--Unified_ideograph}', "");
+    Error('\p{_:=is_UNIFIED_ideograph}');
+    Error('\P{_:=is_UNIFIED_ideograph}');
+    Expect(1, 205743, '\p{isunifiedideograph}', "");
+    Expect(0, 205743, '\p{^isunifiedideograph}', "");
+    Expect(0, 205743, '\P{isunifiedideograph}', "");
+    Expect(1, 205743, '\P{^isunifiedideograph}', "");
+    Expect(0, 205744, '\p{isunifiedideograph}', "");
+    Expect(1, 205744, '\p{^isunifiedideograph}', "");
+    Expect(1, 205744, '\P{isunifiedideograph}', "");
+    Expect(0, 205744, '\P{^isunifiedideograph}', "");
+    Expect(1, 205743, '\p{	 is_unified_IDEOGRAPH}', "");
+    Expect(0, 205743, '\p{^	 is_unified_IDEOGRAPH}', "");
+    Expect(0, 205743, '\P{	 is_unified_IDEOGRAPH}', "");
+    Expect(1, 205743, '\P{^	 is_unified_IDEOGRAPH}', "");
+    Expect(0, 205744, '\p{	 is_unified_IDEOGRAPH}', "");
+    Expect(1, 205744, '\p{^	 is_unified_IDEOGRAPH}', "");
+    Expect(1, 205744, '\P{	 is_unified_IDEOGRAPH}', "");
+    Expect(0, 205744, '\P{^	 is_unified_IDEOGRAPH}', "");
+    Error('\p{/a/  UIdeo}');
+    Error('\P{/a/  UIdeo}');
+    Expect(1, 205743, '\p{uideo}', "");
+    Expect(0, 205743, '\p{^uideo}', "");
+    Expect(0, 205743, '\P{uideo}', "");
+    Expect(1, 205743, '\P{^uideo}', "");
+    Expect(0, 205744, '\p{uideo}', "");
+    Expect(1, 205744, '\p{^uideo}', "");
+    Expect(1, 205744, '\P{uideo}', "");
+    Expect(0, 205744, '\P{^uideo}', "");
+    Expect(1, 205743, '\p{	uideo}', "");
+    Expect(0, 205743, '\p{^	uideo}', "");
+    Expect(0, 205743, '\P{	uideo}', "");
+    Expect(1, 205743, '\P{^	uideo}', "");
+    Expect(0, 205744, '\p{	uideo}', "");
+    Expect(1, 205744, '\p{^	uideo}', "");
+    Expect(1, 205744, '\P{	uideo}', "");
+    Expect(0, 205744, '\P{^	uideo}', "");
+    Error('\p{_is_UIDEO:=}');
+    Error('\P{_is_UIDEO:=}');
+    Expect(1, 205743, '\p{isuideo}', "");
+    Expect(0, 205743, '\p{^isuideo}', "");
+    Expect(0, 205743, '\P{isuideo}', "");
+    Expect(1, 205743, '\P{^isuideo}', "");
+    Expect(0, 205744, '\p{isuideo}', "");
+    Expect(1, 205744, '\p{^isuideo}', "");
+    Expect(1, 205744, '\P{isuideo}', "");
+    Expect(0, 205744, '\P{^isuideo}', "");
+    Expect(1, 205743, '\p{  Is_uideo}', "");
+    Expect(0, 205743, '\p{^  Is_uideo}', "");
+    Expect(0, 205743, '\P{  Is_uideo}', "");
+    Expect(1, 205743, '\P{^  Is_uideo}', "");
+    Expect(0, 205744, '\p{  Is_uideo}', "");
+    Expect(1, 205744, '\p{^  Is_uideo}', "");
+    Expect(1, 205744, '\P{  Is_uideo}', "");
+    Expect(0, 205744, '\P{^  Is_uideo}', "");
+    Error('\p{:=- unknown}');
+    Error('\P{:=- unknown}');
     Expect(1, 918000, '\p{unknown}', "");
     Expect(0, 918000, '\p{^unknown}', "");
     Expect(0, 918000, '\P{unknown}', "");
@@ -124411,16 +125627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^unknown}', "");
     Expect(1, 917999, '\P{unknown}', "");
     Expect(0, 917999, '\P{^unknown}', "");
-    Expect(1, 918000, '\p{- unknown}', "");
-    Expect(0, 918000, '\p{^- unknown}', "");
-    Expect(0, 918000, '\P{- unknown}', "");
-    Expect(1, 918000, '\P{^- unknown}', "");
-    Expect(0, 917999, '\p{- unknown}', "");
-    Expect(1, 917999, '\p{^- unknown}', "");
-    Expect(1, 917999, '\P{- unknown}', "");
-    Expect(0, 917999, '\P{^- unknown}', "");
-    Error('\p{:= 	Is_Unknown}');
-    Error('\P{:= 	Is_Unknown}');
+    Expect(1, 918000, '\p{ _UNKNOWN}', "");
+    Expect(0, 918000, '\p{^ _UNKNOWN}', "");
+    Expect(0, 918000, '\P{ _UNKNOWN}', "");
+    Expect(1, 918000, '\P{^ _UNKNOWN}', "");
+    Expect(0, 917999, '\p{ _UNKNOWN}', "");
+    Expect(1, 917999, '\p{^ _UNKNOWN}', "");
+    Expect(1, 917999, '\P{ _UNKNOWN}', "");
+    Expect(0, 917999, '\P{^ _UNKNOWN}', "");
+    Error('\p{/a/Is_Unknown}');
+    Error('\P{/a/Is_Unknown}');
     Expect(1, 918000, '\p{isunknown}', "");
     Expect(0, 918000, '\p{^isunknown}', "");
     Expect(0, 918000, '\P{isunknown}', "");
@@ -124429,16 +125645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^isunknown}', "");
     Expect(1, 917999, '\P{isunknown}', "");
     Expect(0, 917999, '\P{^isunknown}', "");
-    Expect(1, 918000, '\p{__Is_Unknown}', "");
-    Expect(0, 918000, '\p{^__Is_Unknown}', "");
-    Expect(0, 918000, '\P{__Is_Unknown}', "");
-    Expect(1, 918000, '\P{^__Is_Unknown}', "");
-    Expect(0, 917999, '\p{__Is_Unknown}', "");
-    Expect(1, 917999, '\p{^__Is_Unknown}', "");
-    Expect(1, 917999, '\P{__Is_Unknown}', "");
-    Expect(0, 917999, '\P{^__Is_Unknown}', "");
-    Error('\p{/a/zzzz}');
-    Error('\P{/a/zzzz}');
+    Expect(1, 918000, '\p{Is_Unknown}', "");
+    Expect(0, 918000, '\p{^Is_Unknown}', "");
+    Expect(0, 918000, '\P{Is_Unknown}', "");
+    Expect(1, 918000, '\P{^Is_Unknown}', "");
+    Expect(0, 917999, '\p{Is_Unknown}', "");
+    Expect(1, 917999, '\p{^Is_Unknown}', "");
+    Expect(1, 917999, '\P{Is_Unknown}', "");
+    Expect(0, 917999, '\P{^Is_Unknown}', "");
+    Error('\p{ -Zzzz/a/}');
+    Error('\P{ -Zzzz/a/}');
     Expect(1, 918000, '\p{zzzz}', "");
     Expect(0, 918000, '\p{^zzzz}', "");
     Expect(0, 918000, '\P{zzzz}', "");
@@ -124447,16 +125663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^zzzz}', "");
     Expect(1, 917999, '\P{zzzz}', "");
     Expect(0, 917999, '\P{^zzzz}', "");
-    Expect(1, 918000, '\p{		Zzzz}', "");
-    Expect(0, 918000, '\p{^		Zzzz}', "");
-    Expect(0, 918000, '\P{		Zzzz}', "");
-    Expect(1, 918000, '\P{^		Zzzz}', "");
-    Expect(0, 917999, '\p{		Zzzz}', "");
-    Expect(1, 917999, '\p{^		Zzzz}', "");
-    Expect(1, 917999, '\P{		Zzzz}', "");
-    Expect(0, 917999, '\P{^		Zzzz}', "");
-    Error('\p{_	IS_Zzzz/a/}');
-    Error('\P{_	IS_Zzzz/a/}');
+    Expect(1, 918000, '\p{ 	zzzz}', "");
+    Expect(0, 918000, '\p{^ 	zzzz}', "");
+    Expect(0, 918000, '\P{ 	zzzz}', "");
+    Expect(1, 918000, '\P{^ 	zzzz}', "");
+    Expect(0, 917999, '\p{ 	zzzz}', "");
+    Expect(1, 917999, '\p{^ 	zzzz}', "");
+    Expect(1, 917999, '\P{ 	zzzz}', "");
+    Expect(0, 917999, '\P{^ 	zzzz}', "");
+    Error('\p{	IS_Zzzz/a/}');
+    Error('\P{	IS_Zzzz/a/}');
     Expect(1, 918000, '\p{iszzzz}', "");
     Expect(0, 918000, '\p{^iszzzz}', "");
     Expect(0, 918000, '\P{iszzzz}', "");
@@ -124465,16 +125681,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^iszzzz}', "");
     Expect(1, 917999, '\P{iszzzz}', "");
     Expect(0, 917999, '\P{^iszzzz}', "");
-    Expect(1, 918000, '\p{_ IS_Zzzz}', "");
-    Expect(0, 918000, '\p{^_ IS_Zzzz}', "");
-    Expect(0, 918000, '\P{_ IS_Zzzz}', "");
-    Expect(1, 918000, '\P{^_ IS_Zzzz}', "");
-    Expect(0, 917999, '\p{_ IS_Zzzz}', "");
-    Expect(1, 917999, '\p{^_ IS_Zzzz}', "");
-    Expect(1, 917999, '\P{_ IS_Zzzz}', "");
-    Expect(0, 917999, '\P{^_ IS_Zzzz}', "");
-    Error('\p{	/a/Uppercase_letter}');
-    Error('\P{	/a/Uppercase_letter}');
+    Expect(1, 918000, '\p{__Is_zzzz}', "");
+    Expect(0, 918000, '\p{^__Is_zzzz}', "");
+    Expect(0, 918000, '\P{__Is_zzzz}', "");
+    Expect(1, 918000, '\P{^__Is_zzzz}', "");
+    Expect(0, 917999, '\p{__Is_zzzz}', "");
+    Expect(1, 917999, '\p{^__Is_zzzz}', "");
+    Expect(1, 917999, '\P{__Is_zzzz}', "");
+    Expect(0, 917999, '\P{^__Is_zzzz}', "");
+    Error('\p{/a/_ Uppercase_Letter}');
+    Error('\P{/a/_ Uppercase_Letter}');
     Expect(1, 125217, '\p{uppercaseletter}', "");
     Expect(0, 125217, '\p{^uppercaseletter}', "");
     Expect(0, 125217, '\P{uppercaseletter}', "");
@@ -124483,16 +125699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125218, '\p{^uppercaseletter}', "");
     Expect(1, 125218, '\P{uppercaseletter}', "");
     Expect(0, 125218, '\P{^uppercaseletter}', "");
-    Expect(1, 125217, '\p{ uppercase_LETTER}', "");
-    Expect(0, 125217, '\p{^ uppercase_LETTER}', "");
-    Expect(0, 125217, '\P{ uppercase_LETTER}', "");
-    Expect(1, 125217, '\P{^ uppercase_LETTER}', "");
-    Expect(0, 125218, '\p{ uppercase_LETTER}', "");
-    Expect(1, 125218, '\p{^ uppercase_LETTER}', "");
-    Expect(1, 125218, '\P{ uppercase_LETTER}', "");
-    Expect(0, 125218, '\P{^ uppercase_LETTER}', "");
-    Error('\p{	-is_UPPERCASE_letter/a/}');
-    Error('\P{	-is_UPPERCASE_letter/a/}');
+    Expect(1, 125217, '\p{-	UPPERCASE_Letter}', "");
+    Expect(0, 125217, '\p{^-	UPPERCASE_Letter}', "");
+    Expect(0, 125217, '\P{-	UPPERCASE_Letter}', "");
+    Expect(1, 125217, '\P{^-	UPPERCASE_Letter}', "");
+    Expect(0, 125218, '\p{-	UPPERCASE_Letter}', "");
+    Expect(1, 125218, '\p{^-	UPPERCASE_Letter}', "");
+    Expect(1, 125218, '\P{-	UPPERCASE_Letter}', "");
+    Expect(0, 125218, '\P{^-	UPPERCASE_Letter}', "");
+    Error('\p{/a/is_Uppercase_Letter}');
+    Error('\P{/a/is_Uppercase_Letter}');
     Expect(1, 125217, '\p{isuppercaseletter}', "");
     Expect(0, 125217, '\p{^isuppercaseletter}', "");
     Expect(0, 125217, '\P{isuppercaseletter}', "");
@@ -124501,16 +125717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125218, '\p{^isuppercaseletter}', "");
     Expect(1, 125218, '\P{isuppercaseletter}', "");
     Expect(0, 125218, '\P{^isuppercaseletter}', "");
-    Expect(1, 125217, '\p{	Is_Uppercase_Letter}', "");
-    Expect(0, 125217, '\p{^	Is_Uppercase_Letter}', "");
-    Expect(0, 125217, '\P{	Is_Uppercase_Letter}', "");
-    Expect(1, 125217, '\P{^	Is_Uppercase_Letter}', "");
-    Expect(0, 125218, '\p{	Is_Uppercase_Letter}', "");
-    Expect(1, 125218, '\p{^	Is_Uppercase_Letter}', "");
-    Expect(1, 125218, '\P{	Is_Uppercase_Letter}', "");
-    Expect(0, 125218, '\P{^	Is_Uppercase_Letter}', "");
-    Error('\p{:=-LU}');
-    Error('\P{:=-LU}');
+    Expect(1, 125217, '\p{_-IS_Uppercase_Letter}', "");
+    Expect(0, 125217, '\p{^_-IS_Uppercase_Letter}', "");
+    Expect(0, 125217, '\P{_-IS_Uppercase_Letter}', "");
+    Expect(1, 125217, '\P{^_-IS_Uppercase_Letter}', "");
+    Expect(0, 125218, '\p{_-IS_Uppercase_Letter}', "");
+    Expect(1, 125218, '\p{^_-IS_Uppercase_Letter}', "");
+    Expect(1, 125218, '\P{_-IS_Uppercase_Letter}', "");
+    Expect(0, 125218, '\P{^_-IS_Uppercase_Letter}', "");
+    Error('\p{:=-	Lu}');
+    Error('\P{:=-	Lu}');
     Expect(1, 125217, '\p{lu}', "");
     Expect(0, 125217, '\p{^lu}', "");
     Expect(0, 125217, '\P{lu}', "");
@@ -124527,8 +125743,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125218, '\p{^-lu}', "");
     Expect(1, 125218, '\P{-lu}', "");
     Expect(0, 125218, '\P{^-lu}', "");
-    Error('\p{:=  is_Lu}');
-    Error('\P{:=  is_Lu}');
+    Error('\p{/a/-Is_Lu}');
+    Error('\P{/a/-Is_Lu}');
     Expect(1, 125217, '\p{islu}', "");
     Expect(0, 125217, '\p{^islu}', "");
     Expect(0, 125217, '\P{islu}', "");
@@ -124537,16 +125753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125218, '\p{^islu}', "");
     Expect(1, 125218, '\P{islu}', "");
     Expect(0, 125218, '\P{^islu}', "");
-    Expect(1, 125217, '\p{		Is_Lu}', "");
-    Expect(0, 125217, '\p{^		Is_Lu}', "");
-    Expect(0, 125217, '\P{		Is_Lu}', "");
-    Expect(1, 125217, '\P{^		Is_Lu}', "");
-    Expect(0, 125218, '\p{		Is_Lu}', "");
-    Expect(1, 125218, '\p{^		Is_Lu}', "");
-    Expect(1, 125218, '\P{		Is_Lu}', "");
-    Expect(0, 125218, '\P{^		Is_Lu}', "");
-    Error('\p{/a/	 Vai}');
-    Error('\P{/a/	 Vai}');
+    Expect(1, 125217, '\p{_Is_LU}', "");
+    Expect(0, 125217, '\p{^_Is_LU}', "");
+    Expect(0, 125217, '\P{_Is_LU}', "");
+    Expect(1, 125217, '\P{^_Is_LU}', "");
+    Expect(0, 125218, '\p{_Is_LU}', "");
+    Expect(1, 125218, '\p{^_Is_LU}', "");
+    Expect(1, 125218, '\P{_Is_LU}', "");
+    Expect(0, 125218, '\P{^_Is_LU}', "");
+    Error('\p{	/a/Vai}');
+    Error('\P{	/a/Vai}');
     Expect(1, 42539, '\p{vai}', "");
     Expect(0, 42539, '\p{^vai}', "");
     Expect(0, 42539, '\P{vai}', "");
@@ -124555,16 +125771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^vai}', "");
     Expect(1, 42540, '\P{vai}', "");
     Expect(0, 42540, '\P{^vai}', "");
-    Expect(1, 42539, '\p{ -VAI}', "");
-    Expect(0, 42539, '\p{^ -VAI}', "");
-    Expect(0, 42539, '\P{ -VAI}', "");
-    Expect(1, 42539, '\P{^ -VAI}', "");
-    Expect(0, 42540, '\p{ -VAI}', "");
-    Expect(1, 42540, '\p{^ -VAI}', "");
-    Expect(1, 42540, '\P{ -VAI}', "");
-    Expect(0, 42540, '\P{^ -VAI}', "");
-    Error('\p{-	Is_VAI:=}');
-    Error('\P{-	Is_VAI:=}');
+    Expect(1, 42539, '\p{-_Vai}', "");
+    Expect(0, 42539, '\p{^-_Vai}', "");
+    Expect(0, 42539, '\P{-_Vai}', "");
+    Expect(1, 42539, '\P{^-_Vai}', "");
+    Expect(0, 42540, '\p{-_Vai}', "");
+    Expect(1, 42540, '\p{^-_Vai}', "");
+    Expect(1, 42540, '\P{-_Vai}', "");
+    Expect(0, 42540, '\P{^-_Vai}', "");
+    Error('\p{_/a/Is_Vai}');
+    Error('\P{_/a/Is_Vai}');
     Expect(1, 42539, '\p{isvai}', "");
     Expect(0, 42539, '\p{^isvai}', "");
     Expect(0, 42539, '\P{isvai}', "");
@@ -124573,16 +125789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^isvai}', "");
     Expect(1, 42540, '\P{isvai}', "");
     Expect(0, 42540, '\P{^isvai}', "");
-    Expect(1, 42539, '\p{_-Is_vai}', "");
-    Expect(0, 42539, '\p{^_-Is_vai}', "");
-    Expect(0, 42539, '\P{_-Is_vai}', "");
-    Expect(1, 42539, '\P{^_-Is_vai}', "");
-    Expect(0, 42540, '\p{_-Is_vai}', "");
-    Expect(1, 42540, '\p{^_-Is_vai}', "");
-    Expect(1, 42540, '\P{_-Is_vai}', "");
-    Expect(0, 42540, '\P{^_-Is_vai}', "");
-    Error('\p{:= -vaii}');
-    Error('\P{:= -vaii}');
+    Expect(1, 42539, '\p{ is_Vai}', "");
+    Expect(0, 42539, '\p{^ is_Vai}', "");
+    Expect(0, 42539, '\P{ is_Vai}', "");
+    Expect(1, 42539, '\P{^ is_Vai}', "");
+    Expect(0, 42540, '\p{ is_Vai}', "");
+    Expect(1, 42540, '\p{^ is_Vai}', "");
+    Expect(1, 42540, '\P{ is_Vai}', "");
+    Expect(0, 42540, '\P{^ is_Vai}', "");
+    Error('\p{--VAII/a/}');
+    Error('\P{--VAII/a/}');
     Expect(1, 42539, '\p{vaii}', "");
     Expect(0, 42539, '\p{^vaii}', "");
     Expect(0, 42539, '\P{vaii}', "");
@@ -124591,16 +125807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^vaii}', "");
     Expect(1, 42540, '\P{vaii}', "");
     Expect(0, 42540, '\P{^vaii}', "");
-    Expect(1, 42539, '\p{	vaii}', "");
-    Expect(0, 42539, '\p{^	vaii}', "");
-    Expect(0, 42539, '\P{	vaii}', "");
-    Expect(1, 42539, '\P{^	vaii}', "");
-    Expect(0, 42540, '\p{	vaii}', "");
-    Expect(1, 42540, '\p{^	vaii}', "");
-    Expect(1, 42540, '\P{	vaii}', "");
-    Expect(0, 42540, '\P{^	vaii}', "");
-    Error('\p{:= _IS_Vaii}');
-    Error('\P{:= _IS_Vaii}');
+    Expect(1, 42539, '\p{	 Vaii}', "");
+    Expect(0, 42539, '\p{^	 Vaii}', "");
+    Expect(0, 42539, '\P{	 Vaii}', "");
+    Expect(1, 42539, '\P{^	 Vaii}', "");
+    Expect(0, 42540, '\p{	 Vaii}', "");
+    Expect(1, 42540, '\p{^	 Vaii}', "");
+    Expect(1, 42540, '\P{	 Vaii}', "");
+    Expect(0, 42540, '\P{^	 Vaii}', "");
+    Error('\p{_	Is_Vaii:=}');
+    Error('\P{_	Is_Vaii:=}');
     Expect(1, 42539, '\p{isvaii}', "");
     Expect(0, 42539, '\p{^isvaii}', "");
     Expect(0, 42539, '\P{isvaii}', "");
@@ -124609,16 +125825,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^isvaii}', "");
     Expect(1, 42540, '\P{isvaii}', "");
     Expect(0, 42540, '\P{^isvaii}', "");
-    Expect(1, 42539, '\p{_ is_Vaii}', "");
-    Expect(0, 42539, '\p{^_ is_Vaii}', "");
-    Expect(0, 42539, '\P{_ is_Vaii}', "");
-    Expect(1, 42539, '\P{^_ is_Vaii}', "");
-    Expect(0, 42540, '\p{_ is_Vaii}', "");
-    Expect(1, 42540, '\p{^_ is_Vaii}', "");
-    Expect(1, 42540, '\P{_ is_Vaii}', "");
-    Expect(0, 42540, '\P{^_ is_Vaii}', "");
-    Error('\p{/a/	_variation_Selector}');
-    Error('\P{/a/	_variation_Selector}');
+    Expect(1, 42539, '\p{-Is_Vaii}', "");
+    Expect(0, 42539, '\p{^-Is_Vaii}', "");
+    Expect(0, 42539, '\P{-Is_Vaii}', "");
+    Expect(1, 42539, '\P{^-Is_Vaii}', "");
+    Expect(0, 42540, '\p{-Is_Vaii}', "");
+    Expect(1, 42540, '\p{^-Is_Vaii}', "");
+    Expect(1, 42540, '\P{-Is_Vaii}', "");
+    Expect(0, 42540, '\P{^-Is_Vaii}', "");
+    Error('\p{/a/__variation_SELECTOR}');
+    Error('\P{/a/__variation_SELECTOR}');
     Expect(1, 917999, '\p{variationselector}', "");
     Expect(0, 917999, '\p{^variationselector}', "");
     Expect(0, 917999, '\P{variationselector}', "");
@@ -124627,16 +125843,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^variationselector}', "");
     Expect(1, 918000, '\P{variationselector}', "");
     Expect(0, 918000, '\P{^variationselector}', "");
-    Expect(1, 917999, '\p{  Variation_Selector}', "");
-    Expect(0, 917999, '\p{^  Variation_Selector}', "");
-    Expect(0, 917999, '\P{  Variation_Selector}', "");
-    Expect(1, 917999, '\P{^  Variation_Selector}', "");
-    Expect(0, 918000, '\p{  Variation_Selector}', "");
-    Expect(1, 918000, '\p{^  Variation_Selector}', "");
-    Expect(1, 918000, '\P{  Variation_Selector}', "");
-    Expect(0, 918000, '\P{^  Variation_Selector}', "");
-    Error('\p{:= -Is_VARIATION_Selector}');
-    Error('\P{:= -Is_VARIATION_Selector}');
+    Expect(1, 917999, '\p{	 Variation_Selector}', "");
+    Expect(0, 917999, '\p{^	 Variation_Selector}', "");
+    Expect(0, 917999, '\P{	 Variation_Selector}', "");
+    Expect(1, 917999, '\P{^	 Variation_Selector}', "");
+    Expect(0, 918000, '\p{	 Variation_Selector}', "");
+    Expect(1, 918000, '\p{^	 Variation_Selector}', "");
+    Expect(1, 918000, '\P{	 Variation_Selector}', "");
+    Expect(0, 918000, '\P{^	 Variation_Selector}', "");
+    Error('\p{-:=IS_variation_Selector}');
+    Error('\P{-:=IS_variation_Selector}');
     Expect(1, 917999, '\p{isvariationselector}', "");
     Expect(0, 917999, '\p{^isvariationselector}', "");
     Expect(0, 917999, '\P{isvariationselector}', "");
@@ -124645,16 +125861,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isvariationselector}', "");
     Expect(1, 918000, '\P{isvariationselector}', "");
     Expect(0, 918000, '\P{^isvariationselector}', "");
-    Expect(1, 917999, '\p{ -IS_Variation_Selector}', "");
-    Expect(0, 917999, '\p{^ -IS_Variation_Selector}', "");
-    Expect(0, 917999, '\P{ -IS_Variation_Selector}', "");
-    Expect(1, 917999, '\P{^ -IS_Variation_Selector}', "");
-    Expect(0, 918000, '\p{ -IS_Variation_Selector}', "");
-    Expect(1, 918000, '\p{^ -IS_Variation_Selector}', "");
-    Expect(1, 918000, '\P{ -IS_Variation_Selector}', "");
-    Expect(0, 918000, '\P{^ -IS_Variation_Selector}', "");
-    Error('\p{/a/ 	VS}');
-    Error('\P{/a/ 	VS}');
+    Expect(1, 917999, '\p{- IS_Variation_Selector}', "");
+    Expect(0, 917999, '\p{^- IS_Variation_Selector}', "");
+    Expect(0, 917999, '\P{- IS_Variation_Selector}', "");
+    Expect(1, 917999, '\P{^- IS_Variation_Selector}', "");
+    Expect(0, 918000, '\p{- IS_Variation_Selector}', "");
+    Expect(1, 918000, '\p{^- IS_Variation_Selector}', "");
+    Expect(1, 918000, '\P{- IS_Variation_Selector}', "");
+    Expect(0, 918000, '\P{^- IS_Variation_Selector}', "");
+    Error('\p{-VS:=}');
+    Error('\P{-VS:=}');
     Expect(1, 917999, '\p{vs}', "");
     Expect(0, 917999, '\p{^vs}', "");
     Expect(0, 917999, '\P{vs}', "");
@@ -124663,16 +125879,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^vs}', "");
     Expect(1, 918000, '\P{vs}', "");
     Expect(0, 918000, '\P{^vs}', "");
-    Expect(1, 917999, '\p{-VS}', "");
-    Expect(0, 917999, '\p{^-VS}', "");
-    Expect(0, 917999, '\P{-VS}', "");
-    Expect(1, 917999, '\P{^-VS}', "");
-    Expect(0, 918000, '\p{-VS}', "");
-    Expect(1, 918000, '\p{^-VS}', "");
-    Expect(1, 918000, '\P{-VS}', "");
-    Expect(0, 918000, '\P{^-VS}', "");
-    Error('\p{_	IS_VS:=}');
-    Error('\P{_	IS_VS:=}');
+    Expect(1, 917999, '\p{	_VS}', "");
+    Expect(0, 917999, '\p{^	_VS}', "");
+    Expect(0, 917999, '\P{	_VS}', "");
+    Expect(1, 917999, '\P{^	_VS}', "");
+    Expect(0, 918000, '\p{	_VS}', "");
+    Expect(1, 918000, '\p{^	_VS}', "");
+    Expect(1, 918000, '\P{	_VS}', "");
+    Expect(0, 918000, '\P{^	_VS}', "");
+    Error('\p{ _is_VS:=}');
+    Error('\P{ _is_VS:=}');
     Expect(1, 917999, '\p{isvs}', "");
     Expect(0, 917999, '\p{^isvs}', "");
     Expect(0, 917999, '\P{isvs}', "");
@@ -124681,16 +125897,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isvs}', "");
     Expect(1, 918000, '\P{isvs}', "");
     Expect(0, 918000, '\P{^isvs}', "");
-    Expect(1, 917999, '\p{	 Is_VS}', "");
-    Expect(0, 917999, '\p{^	 Is_VS}', "");
-    Expect(0, 917999, '\P{	 Is_VS}', "");
-    Expect(1, 917999, '\P{^	 Is_VS}', "");
-    Expect(0, 918000, '\p{	 Is_VS}', "");
-    Expect(1, 918000, '\p{^	 Is_VS}', "");
-    Expect(1, 918000, '\P{	 Is_VS}', "");
-    Expect(0, 918000, '\P{^	 Is_VS}', "");
-    Error('\p{/a/	-variation_selectors}');
-    Error('\P{/a/	-variation_selectors}');
+    Expect(1, 917999, '\p{__Is_VS}', "");
+    Expect(0, 917999, '\p{^__Is_VS}', "");
+    Expect(0, 917999, '\P{__Is_VS}', "");
+    Expect(1, 917999, '\P{^__Is_VS}', "");
+    Expect(0, 918000, '\p{__Is_VS}', "");
+    Expect(1, 918000, '\p{^__Is_VS}', "");
+    Expect(1, 918000, '\P{__Is_VS}', "");
+    Expect(0, 918000, '\P{^__Is_VS}', "");
+    Error('\p{_/a/Variation_selectors}');
+    Error('\P{_/a/Variation_selectors}');
     Expect(1, 65039, '\p{variationselectors}', "");
     Expect(0, 65039, '\p{^variationselectors}', "");
     Expect(0, 65039, '\P{variationselectors}', "");
@@ -124699,16 +125915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65040, '\p{^variationselectors}', "");
     Expect(1, 65040, '\P{variationselectors}', "");
     Expect(0, 65040, '\P{^variationselectors}', "");
-    Expect(1, 65039, '\p{	-VARIATION_SELECTORS}', "");
-    Expect(0, 65039, '\p{^	-VARIATION_SELECTORS}', "");
-    Expect(0, 65039, '\P{	-VARIATION_SELECTORS}', "");
-    Expect(1, 65039, '\P{^	-VARIATION_SELECTORS}', "");
-    Expect(0, 65040, '\p{	-VARIATION_SELECTORS}', "");
-    Expect(1, 65040, '\p{^	-VARIATION_SELECTORS}', "");
-    Expect(1, 65040, '\P{	-VARIATION_SELECTORS}', "");
-    Expect(0, 65040, '\P{^	-VARIATION_SELECTORS}', "");
-    Error('\p{ _Is_Variation_SELECTORS:=}');
-    Error('\P{ _Is_Variation_SELECTORS:=}');
+    Expect(1, 65039, '\p{	variation_selectors}', "");
+    Expect(0, 65039, '\p{^	variation_selectors}', "");
+    Expect(0, 65039, '\P{	variation_selectors}', "");
+    Expect(1, 65039, '\P{^	variation_selectors}', "");
+    Expect(0, 65040, '\p{	variation_selectors}', "");
+    Expect(1, 65040, '\p{^	variation_selectors}', "");
+    Expect(1, 65040, '\P{	variation_selectors}', "");
+    Expect(0, 65040, '\P{^	variation_selectors}', "");
+    Error('\p{-_Is_variation_SELECTORS/a/}');
+    Error('\P{-_Is_variation_SELECTORS/a/}');
     Expect(1, 65039, '\p{isvariationselectors}', "");
     Expect(0, 65039, '\p{^isvariationselectors}', "");
     Expect(0, 65039, '\P{isvariationselectors}', "");
@@ -124717,16 +125933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65040, '\p{^isvariationselectors}', "");
     Expect(1, 65040, '\P{isvariationselectors}', "");
     Expect(0, 65040, '\P{^isvariationselectors}', "");
-    Expect(1, 65039, '\p{--IS_variation_SELECTORS}', "");
-    Expect(0, 65039, '\p{^--IS_variation_SELECTORS}', "");
-    Expect(0, 65039, '\P{--IS_variation_SELECTORS}', "");
-    Expect(1, 65039, '\P{^--IS_variation_SELECTORS}', "");
-    Expect(0, 65040, '\p{--IS_variation_SELECTORS}', "");
-    Expect(1, 65040, '\p{^--IS_variation_SELECTORS}', "");
-    Expect(1, 65040, '\P{--IS_variation_SELECTORS}', "");
-    Expect(0, 65040, '\P{^--IS_variation_SELECTORS}', "");
-    Error('\p{:= In_Variation_Selectors}');
-    Error('\P{:= In_Variation_Selectors}');
+    Expect(1, 65039, '\p{_-Is_Variation_Selectors}', "");
+    Expect(0, 65039, '\p{^_-Is_Variation_Selectors}', "");
+    Expect(0, 65039, '\P{_-Is_Variation_Selectors}', "");
+    Expect(1, 65039, '\P{^_-Is_Variation_Selectors}', "");
+    Expect(0, 65040, '\p{_-Is_Variation_Selectors}', "");
+    Expect(1, 65040, '\p{^_-Is_Variation_Selectors}', "");
+    Expect(1, 65040, '\P{_-Is_Variation_Selectors}', "");
+    Expect(0, 65040, '\P{^_-Is_Variation_Selectors}', "");
+    Error('\p{--In_Variation_Selectors/a/}');
+    Error('\P{--In_Variation_Selectors/a/}');
     Expect(1, 65039, '\p{invariationselectors}', "");
     Expect(0, 65039, '\p{^invariationselectors}', "");
     Expect(0, 65039, '\P{invariationselectors}', "");
@@ -124735,16 +125951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65040, '\p{^invariationselectors}', "");
     Expect(1, 65040, '\P{invariationselectors}', "");
     Expect(0, 65040, '\P{^invariationselectors}', "");
-    Expect(1, 65039, '\p{  in_Variation_Selectors}', "");
-    Expect(0, 65039, '\p{^  in_Variation_Selectors}', "");
-    Expect(0, 65039, '\P{  in_Variation_Selectors}', "");
-    Expect(1, 65039, '\P{^  in_Variation_Selectors}', "");
-    Expect(0, 65040, '\p{  in_Variation_Selectors}', "");
-    Expect(1, 65040, '\p{^  in_Variation_Selectors}', "");
-    Expect(1, 65040, '\P{  in_Variation_Selectors}', "");
-    Expect(0, 65040, '\P{^  in_Variation_Selectors}', "");
-    Error('\p{/a/ -In_VS}');
-    Error('\P{/a/ -In_VS}');
+    Expect(1, 65039, '\p{ _In_variation_SELECTORS}', "");
+    Expect(0, 65039, '\p{^ _In_variation_SELECTORS}', "");
+    Expect(0, 65039, '\P{ _In_variation_SELECTORS}', "");
+    Expect(1, 65039, '\P{^ _In_variation_SELECTORS}', "");
+    Expect(0, 65040, '\p{ _In_variation_SELECTORS}', "");
+    Expect(1, 65040, '\p{^ _In_variation_SELECTORS}', "");
+    Expect(1, 65040, '\P{ _In_variation_SELECTORS}', "");
+    Expect(0, 65040, '\P{^ _In_variation_SELECTORS}', "");
+    Error('\p{:=  IN_VS}');
+    Error('\P{:=  IN_VS}');
     Expect(1, 65039, '\p{invs}', "");
     Expect(0, 65039, '\p{^invs}', "");
     Expect(0, 65039, '\P{invs}', "");
@@ -124753,16 +125969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65040, '\p{^invs}', "");
     Expect(1, 65040, '\P{invs}', "");
     Expect(0, 65040, '\P{^invs}', "");
-    Expect(1, 65039, '\p{_-IN_VS}', "");
-    Expect(0, 65039, '\p{^_-IN_VS}', "");
-    Expect(0, 65039, '\P{_-IN_VS}', "");
-    Expect(1, 65039, '\P{^_-IN_VS}', "");
-    Expect(0, 65040, '\p{_-IN_VS}', "");
-    Expect(1, 65040, '\p{^_-IN_VS}', "");
-    Expect(1, 65040, '\P{_-IN_VS}', "");
-    Expect(0, 65040, '\P{^_-IN_VS}', "");
-    Error('\p{:=-_VARIATION_Selectors_Supplement}');
-    Error('\P{:=-_VARIATION_Selectors_Supplement}');
+    Expect(1, 65039, '\p{-_in_vs}', "");
+    Expect(0, 65039, '\p{^-_in_vs}', "");
+    Expect(0, 65039, '\P{-_in_vs}', "");
+    Expect(1, 65039, '\P{^-_in_vs}', "");
+    Expect(0, 65040, '\p{-_in_vs}', "");
+    Expect(1, 65040, '\p{^-_in_vs}', "");
+    Expect(1, 65040, '\P{-_in_vs}', "");
+    Expect(0, 65040, '\P{^-_in_vs}', "");
+    Error('\p{-Variation_Selectors_supplement:=}');
+    Error('\P{-Variation_Selectors_supplement:=}');
     Expect(1, 917999, '\p{variationselectorssupplement}', "");
     Expect(0, 917999, '\p{^variationselectorssupplement}', "");
     Expect(0, 917999, '\P{variationselectorssupplement}', "");
@@ -124771,16 +125987,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^variationselectorssupplement}', "");
     Expect(1, 918000, '\P{variationselectorssupplement}', "");
     Expect(0, 918000, '\P{^variationselectorssupplement}', "");
-    Expect(1, 917999, '\p{_variation_Selectors_Supplement}', "");
-    Expect(0, 917999, '\p{^_variation_Selectors_Supplement}', "");
-    Expect(0, 917999, '\P{_variation_Selectors_Supplement}', "");
-    Expect(1, 917999, '\P{^_variation_Selectors_Supplement}', "");
-    Expect(0, 918000, '\p{_variation_Selectors_Supplement}', "");
-    Expect(1, 918000, '\p{^_variation_Selectors_Supplement}', "");
-    Expect(1, 918000, '\P{_variation_Selectors_Supplement}', "");
-    Expect(0, 918000, '\P{^_variation_Selectors_Supplement}', "");
-    Error('\p{ /a/is_variation_selectors_Supplement}');
-    Error('\P{ /a/is_variation_selectors_Supplement}');
+    Expect(1, 917999, '\p{	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(0, 917999, '\p{^	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(0, 917999, '\P{	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(1, 917999, '\P{^	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(0, 918000, '\p{	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(1, 918000, '\p{^	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(1, 918000, '\P{	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Expect(0, 918000, '\P{^	 Variation_SELECTORS_SUPPLEMENT}', "");
+    Error('\p{:=-	Is_Variation_SELECTORS_SUPPLEMENT}');
+    Error('\P{:=-	Is_Variation_SELECTORS_SUPPLEMENT}');
     Expect(1, 917999, '\p{isvariationselectorssupplement}', "");
     Expect(0, 917999, '\p{^isvariationselectorssupplement}', "");
     Expect(0, 917999, '\P{isvariationselectorssupplement}', "");
@@ -124789,16 +126005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isvariationselectorssupplement}', "");
     Expect(1, 918000, '\P{isvariationselectorssupplement}', "");
     Expect(0, 918000, '\P{^isvariationselectorssupplement}', "");
-    Expect(1, 917999, '\p{ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(0, 917999, '\p{^ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(0, 917999, '\P{ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(1, 917999, '\P{^ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(0, 918000, '\p{ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(1, 918000, '\p{^ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(1, 918000, '\P{ _is_Variation_SELECTORS_Supplement}', "");
-    Expect(0, 918000, '\P{^ _is_Variation_SELECTORS_Supplement}', "");
-    Error('\p{/a/ -In_VARIATION_Selectors_Supplement}');
-    Error('\P{/a/ -In_VARIATION_Selectors_Supplement}');
+    Expect(1, 917999, '\p{ IS_Variation_Selectors_Supplement}', "");
+    Expect(0, 917999, '\p{^ IS_Variation_Selectors_Supplement}', "");
+    Expect(0, 917999, '\P{ IS_Variation_Selectors_Supplement}', "");
+    Expect(1, 917999, '\P{^ IS_Variation_Selectors_Supplement}', "");
+    Expect(0, 918000, '\p{ IS_Variation_Selectors_Supplement}', "");
+    Expect(1, 918000, '\p{^ IS_Variation_Selectors_Supplement}', "");
+    Expect(1, 918000, '\P{ IS_Variation_Selectors_Supplement}', "");
+    Expect(0, 918000, '\P{^ IS_Variation_Selectors_Supplement}', "");
+    Error('\p{:= _In_VARIATION_Selectors_supplement}');
+    Error('\P{:= _In_VARIATION_Selectors_supplement}');
     Expect(1, 917999, '\p{invariationselectorssupplement}', "");
     Expect(0, 917999, '\p{^invariationselectorssupplement}', "");
     Expect(0, 917999, '\P{invariationselectorssupplement}', "");
@@ -124807,16 +126023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^invariationselectorssupplement}', "");
     Expect(1, 918000, '\P{invariationselectorssupplement}', "");
     Expect(0, 918000, '\P{^invariationselectorssupplement}', "");
-    Expect(1, 917999, '\p{_In_variation_Selectors_Supplement}', "");
-    Expect(0, 917999, '\p{^_In_variation_Selectors_Supplement}', "");
-    Expect(0, 917999, '\P{_In_variation_Selectors_Supplement}', "");
-    Expect(1, 917999, '\P{^_In_variation_Selectors_Supplement}', "");
-    Expect(0, 918000, '\p{_In_variation_Selectors_Supplement}', "");
-    Expect(1, 918000, '\p{^_In_variation_Selectors_Supplement}', "");
-    Expect(1, 918000, '\P{_In_variation_Selectors_Supplement}', "");
-    Expect(0, 918000, '\P{^_In_variation_Selectors_Supplement}', "");
-    Error('\p{-	VS_Sup:=}');
-    Error('\P{-	VS_Sup:=}');
+    Expect(1, 917999, '\p{-in_VARIATION_Selectors_Supplement}', "");
+    Expect(0, 917999, '\p{^-in_VARIATION_Selectors_Supplement}', "");
+    Expect(0, 917999, '\P{-in_VARIATION_Selectors_Supplement}', "");
+    Expect(1, 917999, '\P{^-in_VARIATION_Selectors_Supplement}', "");
+    Expect(0, 918000, '\p{-in_VARIATION_Selectors_Supplement}', "");
+    Expect(1, 918000, '\p{^-in_VARIATION_Selectors_Supplement}', "");
+    Expect(1, 918000, '\P{-in_VARIATION_Selectors_Supplement}', "");
+    Expect(0, 918000, '\P{^-in_VARIATION_Selectors_Supplement}', "");
+    Error('\p{/a/	-vs_sup}');
+    Error('\P{/a/	-vs_sup}');
     Expect(1, 917999, '\p{vssup}', "");
     Expect(0, 917999, '\p{^vssup}', "");
     Expect(0, 917999, '\P{vssup}', "");
@@ -124825,16 +126041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^vssup}', "");
     Expect(1, 918000, '\P{vssup}', "");
     Expect(0, 918000, '\P{^vssup}', "");
-    Expect(1, 917999, '\p{VS_Sup}', "");
-    Expect(0, 917999, '\p{^VS_Sup}', "");
-    Expect(0, 917999, '\P{VS_Sup}', "");
-    Expect(1, 917999, '\P{^VS_Sup}', "");
-    Expect(0, 918000, '\p{VS_Sup}', "");
-    Expect(1, 918000, '\p{^VS_Sup}', "");
-    Expect(1, 918000, '\P{VS_Sup}', "");
-    Expect(0, 918000, '\P{^VS_Sup}', "");
-    Error('\p{	:=is_VS_sup}');
-    Error('\P{	:=is_VS_sup}');
+    Expect(1, 917999, '\p{	vs_SUP}', "");
+    Expect(0, 917999, '\p{^	vs_SUP}', "");
+    Expect(0, 917999, '\P{	vs_SUP}', "");
+    Expect(1, 917999, '\P{^	vs_SUP}', "");
+    Expect(0, 918000, '\p{	vs_SUP}', "");
+    Expect(1, 918000, '\p{^	vs_SUP}', "");
+    Expect(1, 918000, '\P{	vs_SUP}', "");
+    Expect(0, 918000, '\P{^	vs_SUP}', "");
+    Error('\p{__IS_vs_Sup:=}');
+    Error('\P{__IS_vs_Sup:=}');
     Expect(1, 917999, '\p{isvssup}', "");
     Expect(0, 917999, '\p{^isvssup}', "");
     Expect(0, 917999, '\P{isvssup}', "");
@@ -124843,16 +126059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isvssup}', "");
     Expect(1, 918000, '\P{isvssup}', "");
     Expect(0, 918000, '\P{^isvssup}', "");
-    Expect(1, 917999, '\p{	-Is_VS_sup}', "");
-    Expect(0, 917999, '\p{^	-Is_VS_sup}', "");
-    Expect(0, 917999, '\P{	-Is_VS_sup}', "");
-    Expect(1, 917999, '\P{^	-Is_VS_sup}', "");
-    Expect(0, 918000, '\p{	-Is_VS_sup}', "");
-    Expect(1, 918000, '\p{^	-Is_VS_sup}', "");
-    Expect(1, 918000, '\P{	-Is_VS_sup}', "");
-    Expect(0, 918000, '\P{^	-Is_VS_sup}', "");
-    Error('\p{-/a/In_VS_Sup}');
-    Error('\P{-/a/In_VS_Sup}');
+    Expect(1, 917999, '\p{		Is_vs_Sup}', "");
+    Expect(0, 917999, '\p{^		Is_vs_Sup}', "");
+    Expect(0, 917999, '\P{		Is_vs_Sup}', "");
+    Expect(1, 917999, '\P{^		Is_vs_Sup}', "");
+    Expect(0, 918000, '\p{		Is_vs_Sup}', "");
+    Expect(1, 918000, '\p{^		Is_vs_Sup}', "");
+    Expect(1, 918000, '\P{		Is_vs_Sup}', "");
+    Expect(0, 918000, '\P{^		Is_vs_Sup}', "");
+    Error('\p{:= -in_VS_Sup}');
+    Error('\P{:= -in_VS_Sup}');
     Expect(1, 917999, '\p{invssup}', "");
     Expect(0, 917999, '\p{^invssup}', "");
     Expect(0, 917999, '\P{invssup}', "");
@@ -124861,16 +126077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^invssup}', "");
     Expect(1, 918000, '\P{invssup}', "");
     Expect(0, 918000, '\P{^invssup}', "");
-    Expect(1, 917999, '\p{	_In_vs_Sup}', "");
-    Expect(0, 917999, '\p{^	_In_vs_Sup}', "");
-    Expect(0, 917999, '\P{	_In_vs_Sup}', "");
-    Expect(1, 917999, '\P{^	_In_vs_Sup}', "");
-    Expect(0, 918000, '\p{	_In_vs_Sup}', "");
-    Expect(1, 918000, '\p{^	_In_vs_Sup}', "");
-    Expect(1, 918000, '\P{	_In_vs_Sup}', "");
-    Expect(0, 918000, '\P{^	_In_vs_Sup}', "");
-    Error('\p{-:=vedic_extensions}');
-    Error('\P{-:=vedic_extensions}');
+    Expect(1, 917999, '\p{	_in_VS_sup}', "");
+    Expect(0, 917999, '\p{^	_in_VS_sup}', "");
+    Expect(0, 917999, '\P{	_in_VS_sup}', "");
+    Expect(1, 917999, '\P{^	_in_VS_sup}', "");
+    Expect(0, 918000, '\p{	_in_VS_sup}', "");
+    Expect(1, 918000, '\p{^	_in_VS_sup}', "");
+    Expect(1, 918000, '\P{	_in_VS_sup}', "");
+    Expect(0, 918000, '\P{^	_in_VS_sup}', "");
+    Error('\p{:=_	VEDIC_extensions}');
+    Error('\P{:=_	VEDIC_extensions}');
     Expect(1, 7423, '\p{vedicextensions}', "");
     Expect(0, 7423, '\p{^vedicextensions}', "");
     Expect(0, 7423, '\P{vedicextensions}', "");
@@ -124879,16 +126095,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7424, '\p{^vedicextensions}', "");
     Expect(1, 7424, '\P{vedicextensions}', "");
     Expect(0, 7424, '\P{^vedicextensions}', "");
-    Expect(1, 7423, '\p{__Vedic_EXTENSIONS}', "");
-    Expect(0, 7423, '\p{^__Vedic_EXTENSIONS}', "");
-    Expect(0, 7423, '\P{__Vedic_EXTENSIONS}', "");
-    Expect(1, 7423, '\P{^__Vedic_EXTENSIONS}', "");
-    Expect(0, 7424, '\p{__Vedic_EXTENSIONS}', "");
-    Expect(1, 7424, '\p{^__Vedic_EXTENSIONS}', "");
-    Expect(1, 7424, '\P{__Vedic_EXTENSIONS}', "");
-    Expect(0, 7424, '\P{^__Vedic_EXTENSIONS}', "");
-    Error('\p{:=_ is_vedic_EXTENSIONS}');
-    Error('\P{:=_ is_vedic_EXTENSIONS}');
+    Expect(1, 7423, '\p{_	vedic_Extensions}', "");
+    Expect(0, 7423, '\p{^_	vedic_Extensions}', "");
+    Expect(0, 7423, '\P{_	vedic_Extensions}', "");
+    Expect(1, 7423, '\P{^_	vedic_Extensions}', "");
+    Expect(0, 7424, '\p{_	vedic_Extensions}', "");
+    Expect(1, 7424, '\p{^_	vedic_Extensions}', "");
+    Expect(1, 7424, '\P{_	vedic_Extensions}', "");
+    Expect(0, 7424, '\P{^_	vedic_Extensions}', "");
+    Error('\p{	_Is_VEDIC_extensions:=}');
+    Error('\P{	_Is_VEDIC_extensions:=}');
     Expect(1, 7423, '\p{isvedicextensions}', "");
     Expect(0, 7423, '\p{^isvedicextensions}', "");
     Expect(0, 7423, '\P{isvedicextensions}', "");
@@ -124897,16 +126113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7424, '\p{^isvedicextensions}', "");
     Expect(1, 7424, '\P{isvedicextensions}', "");
     Expect(0, 7424, '\P{^isvedicextensions}', "");
-    Expect(1, 7423, '\p{ _is_Vedic_extensions}', "");
-    Expect(0, 7423, '\p{^ _is_Vedic_extensions}', "");
-    Expect(0, 7423, '\P{ _is_Vedic_extensions}', "");
-    Expect(1, 7423, '\P{^ _is_Vedic_extensions}', "");
-    Expect(0, 7424, '\p{ _is_Vedic_extensions}', "");
-    Expect(1, 7424, '\p{^ _is_Vedic_extensions}', "");
-    Expect(1, 7424, '\P{ _is_Vedic_extensions}', "");
-    Expect(0, 7424, '\P{^ _is_Vedic_extensions}', "");
-    Error('\p{:= in_Vedic_Extensions}');
-    Error('\P{:= in_Vedic_Extensions}');
+    Expect(1, 7423, '\p{-	is_Vedic_EXTENSIONS}', "");
+    Expect(0, 7423, '\p{^-	is_Vedic_EXTENSIONS}', "");
+    Expect(0, 7423, '\P{-	is_Vedic_EXTENSIONS}', "");
+    Expect(1, 7423, '\P{^-	is_Vedic_EXTENSIONS}', "");
+    Expect(0, 7424, '\p{-	is_Vedic_EXTENSIONS}', "");
+    Expect(1, 7424, '\p{^-	is_Vedic_EXTENSIONS}', "");
+    Expect(1, 7424, '\P{-	is_Vedic_EXTENSIONS}', "");
+    Expect(0, 7424, '\P{^-	is_Vedic_EXTENSIONS}', "");
+    Error('\p{/a/	 in_Vedic_Extensions}');
+    Error('\P{/a/	 in_Vedic_Extensions}');
     Expect(1, 7423, '\p{invedicextensions}', "");
     Expect(0, 7423, '\p{^invedicextensions}', "");
     Expect(0, 7423, '\P{invedicextensions}', "");
@@ -124915,16 +126131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7424, '\p{^invedicextensions}', "");
     Expect(1, 7424, '\P{invedicextensions}', "");
     Expect(0, 7424, '\P{^invedicextensions}', "");
-    Expect(1, 7423, '\p{-in_vedic_extensions}', "");
-    Expect(0, 7423, '\p{^-in_vedic_extensions}', "");
-    Expect(0, 7423, '\P{-in_vedic_extensions}', "");
-    Expect(1, 7423, '\P{^-in_vedic_extensions}', "");
-    Expect(0, 7424, '\p{-in_vedic_extensions}', "");
-    Expect(1, 7424, '\p{^-in_vedic_extensions}', "");
-    Expect(1, 7424, '\P{-in_vedic_extensions}', "");
-    Expect(0, 7424, '\P{^-in_vedic_extensions}', "");
-    Error('\p{:=-VEDIC_EXT}');
-    Error('\P{:=-VEDIC_EXT}');
+    Expect(1, 7423, '\p{In_Vedic_Extensions}', "");
+    Expect(0, 7423, '\p{^In_Vedic_Extensions}', "");
+    Expect(0, 7423, '\P{In_Vedic_Extensions}', "");
+    Expect(1, 7423, '\P{^In_Vedic_Extensions}', "");
+    Expect(0, 7424, '\p{In_Vedic_Extensions}', "");
+    Expect(1, 7424, '\p{^In_Vedic_Extensions}', "");
+    Expect(1, 7424, '\P{In_Vedic_Extensions}', "");
+    Expect(0, 7424, '\P{^In_Vedic_Extensions}', "");
+    Error('\p{:=	_vedic_ext}');
+    Error('\P{:=	_vedic_ext}');
     Expect(1, 7423, '\p{vedicext}', "");
     Expect(0, 7423, '\p{^vedicext}', "");
     Expect(0, 7423, '\P{vedicext}', "");
@@ -124933,16 +126149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7424, '\p{^vedicext}', "");
     Expect(1, 7424, '\P{vedicext}', "");
     Expect(0, 7424, '\P{^vedicext}', "");
-    Expect(1, 7423, '\p{	vedic_EXT}', "");
-    Expect(0, 7423, '\p{^	vedic_EXT}', "");
-    Expect(0, 7423, '\P{	vedic_EXT}', "");
-    Expect(1, 7423, '\P{^	vedic_EXT}', "");
-    Expect(0, 7424, '\p{	vedic_EXT}', "");
-    Expect(1, 7424, '\p{^	vedic_EXT}', "");
-    Expect(1, 7424, '\P{	vedic_EXT}', "");
-    Expect(0, 7424, '\P{^	vedic_EXT}', "");
-    Error('\p{:=  is_VEDIC_ext}');
-    Error('\P{:=  is_VEDIC_ext}');
+    Expect(1, 7423, '\p{-Vedic_Ext}', "");
+    Expect(0, 7423, '\p{^-Vedic_Ext}', "");
+    Expect(0, 7423, '\P{-Vedic_Ext}', "");
+    Expect(1, 7423, '\P{^-Vedic_Ext}', "");
+    Expect(0, 7424, '\p{-Vedic_Ext}', "");
+    Expect(1, 7424, '\p{^-Vedic_Ext}', "");
+    Expect(1, 7424, '\P{-Vedic_Ext}', "");
+    Expect(0, 7424, '\P{^-Vedic_Ext}', "");
+    Error('\p{/a/-IS_Vedic_EXT}');
+    Error('\P{/a/-IS_Vedic_EXT}');
     Expect(1, 7423, '\p{isvedicext}', "");
     Expect(0, 7423, '\p{^isvedicext}', "");
     Expect(0, 7423, '\P{isvedicext}', "");
@@ -124951,16 +126167,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7424, '\p{^isvedicext}', "");
     Expect(1, 7424, '\P{isvedicext}', "");
     Expect(0, 7424, '\P{^isvedicext}', "");
-    Expect(1, 7423, '\p{ _IS_VEDIC_ext}', "");
-    Expect(0, 7423, '\p{^ _IS_VEDIC_ext}', "");
-    Expect(0, 7423, '\P{ _IS_VEDIC_ext}', "");
-    Expect(1, 7423, '\P{^ _IS_VEDIC_ext}', "");
-    Expect(0, 7424, '\p{ _IS_VEDIC_ext}', "");
-    Expect(1, 7424, '\p{^ _IS_VEDIC_ext}', "");
-    Expect(1, 7424, '\P{ _IS_VEDIC_ext}', "");
-    Expect(0, 7424, '\P{^ _IS_VEDIC_ext}', "");
-    Error('\p{	/a/In_vedic_Ext}');
-    Error('\P{	/a/In_vedic_Ext}');
+    Expect(1, 7423, '\p{-_Is_Vedic_Ext}', "");
+    Expect(0, 7423, '\p{^-_Is_Vedic_Ext}', "");
+    Expect(0, 7423, '\P{-_Is_Vedic_Ext}', "");
+    Expect(1, 7423, '\P{^-_Is_Vedic_Ext}', "");
+    Expect(0, 7424, '\p{-_Is_Vedic_Ext}', "");
+    Expect(1, 7424, '\p{^-_Is_Vedic_Ext}', "");
+    Expect(1, 7424, '\P{-_Is_Vedic_Ext}', "");
+    Expect(0, 7424, '\P{^-_Is_Vedic_Ext}', "");
+    Error('\p{:=	 In_vedic_ext}');
+    Error('\P{:=	 In_vedic_ext}');
     Expect(1, 7423, '\p{invedicext}', "");
     Expect(0, 7423, '\p{^invedicext}', "");
     Expect(0, 7423, '\P{invedicext}', "");
@@ -124969,16 +126185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7424, '\p{^invedicext}', "");
     Expect(1, 7424, '\P{invedicext}', "");
     Expect(0, 7424, '\P{^invedicext}', "");
-    Expect(1, 7423, '\p{-_in_Vedic_Ext}', "");
-    Expect(0, 7423, '\p{^-_in_Vedic_Ext}', "");
-    Expect(0, 7423, '\P{-_in_Vedic_Ext}', "");
-    Expect(1, 7423, '\P{^-_in_Vedic_Ext}', "");
-    Expect(0, 7424, '\p{-_in_Vedic_Ext}', "");
-    Expect(1, 7424, '\p{^-_in_Vedic_Ext}', "");
-    Expect(1, 7424, '\P{-_in_Vedic_Ext}', "");
-    Expect(0, 7424, '\P{^-_in_Vedic_Ext}', "");
-    Error('\p{/a/-	vertical_Forms}');
-    Error('\P{/a/-	vertical_Forms}');
+    Expect(1, 7423, '\p{ 	In_vedic_Ext}', "");
+    Expect(0, 7423, '\p{^ 	In_vedic_Ext}', "");
+    Expect(0, 7423, '\P{ 	In_vedic_Ext}', "");
+    Expect(1, 7423, '\P{^ 	In_vedic_Ext}', "");
+    Expect(0, 7424, '\p{ 	In_vedic_Ext}', "");
+    Expect(1, 7424, '\p{^ 	In_vedic_Ext}', "");
+    Expect(1, 7424, '\P{ 	In_vedic_Ext}', "");
+    Expect(0, 7424, '\P{^ 	In_vedic_Ext}', "");
+    Error('\p{_-Vertical_Forms/a/}');
+    Error('\P{_-Vertical_Forms/a/}');
     Expect(1, 65055, '\p{verticalforms}', "");
     Expect(0, 65055, '\p{^verticalforms}', "");
     Expect(0, 65055, '\P{verticalforms}', "");
@@ -124987,16 +126203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65056, '\p{^verticalforms}', "");
     Expect(1, 65056, '\P{verticalforms}', "");
     Expect(0, 65056, '\P{^verticalforms}', "");
-    Expect(1, 65055, '\p{ Vertical_forms}', "");
-    Expect(0, 65055, '\p{^ Vertical_forms}', "");
-    Expect(0, 65055, '\P{ Vertical_forms}', "");
-    Expect(1, 65055, '\P{^ Vertical_forms}', "");
-    Expect(0, 65056, '\p{ Vertical_forms}', "");
-    Expect(1, 65056, '\p{^ Vertical_forms}', "");
-    Expect(1, 65056, '\P{ Vertical_forms}', "");
-    Expect(0, 65056, '\P{^ Vertical_forms}', "");
-    Error('\p{	:=Is_Vertical_Forms}');
-    Error('\P{	:=Is_Vertical_Forms}');
+    Expect(1, 65055, '\p{	_VERTICAL_Forms}', "");
+    Expect(0, 65055, '\p{^	_VERTICAL_Forms}', "");
+    Expect(0, 65055, '\P{	_VERTICAL_Forms}', "");
+    Expect(1, 65055, '\P{^	_VERTICAL_Forms}', "");
+    Expect(0, 65056, '\p{	_VERTICAL_Forms}', "");
+    Expect(1, 65056, '\p{^	_VERTICAL_Forms}', "");
+    Expect(1, 65056, '\P{	_VERTICAL_Forms}', "");
+    Expect(0, 65056, '\P{^	_VERTICAL_Forms}', "");
+    Error('\p{-/a/IS_Vertical_FORMS}');
+    Error('\P{-/a/IS_Vertical_FORMS}');
     Expect(1, 65055, '\p{isverticalforms}', "");
     Expect(0, 65055, '\p{^isverticalforms}', "");
     Expect(0, 65055, '\P{isverticalforms}', "");
@@ -125005,16 +126221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65056, '\p{^isverticalforms}', "");
     Expect(1, 65056, '\P{isverticalforms}', "");
     Expect(0, 65056, '\P{^isverticalforms}', "");
-    Expect(1, 65055, '\p{_-Is_Vertical_Forms}', "");
-    Expect(0, 65055, '\p{^_-Is_Vertical_Forms}', "");
-    Expect(0, 65055, '\P{_-Is_Vertical_Forms}', "");
-    Expect(1, 65055, '\P{^_-Is_Vertical_Forms}', "");
-    Expect(0, 65056, '\p{_-Is_Vertical_Forms}', "");
-    Expect(1, 65056, '\p{^_-Is_Vertical_Forms}', "");
-    Expect(1, 65056, '\P{_-Is_Vertical_Forms}', "");
-    Expect(0, 65056, '\P{^_-Is_Vertical_Forms}', "");
-    Error('\p{_In_vertical_forms/a/}');
-    Error('\P{_In_vertical_forms/a/}');
+    Expect(1, 65055, '\p{		is_VERTICAL_Forms}', "");
+    Expect(0, 65055, '\p{^		is_VERTICAL_Forms}', "");
+    Expect(0, 65055, '\P{		is_VERTICAL_Forms}', "");
+    Expect(1, 65055, '\P{^		is_VERTICAL_Forms}', "");
+    Expect(0, 65056, '\p{		is_VERTICAL_Forms}', "");
+    Expect(1, 65056, '\p{^		is_VERTICAL_Forms}', "");
+    Expect(1, 65056, '\P{		is_VERTICAL_Forms}', "");
+    Expect(0, 65056, '\P{^		is_VERTICAL_Forms}', "");
+    Error('\p{in_Vertical_forms:=}');
+    Error('\P{in_Vertical_forms:=}');
     Expect(1, 65055, '\p{inverticalforms}', "");
     Expect(0, 65055, '\p{^inverticalforms}', "");
     Expect(0, 65055, '\P{inverticalforms}', "");
@@ -125023,16 +126239,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65056, '\p{^inverticalforms}', "");
     Expect(1, 65056, '\P{inverticalforms}', "");
     Expect(0, 65056, '\P{^inverticalforms}', "");
-    Expect(1, 65055, '\p{-IN_VERTICAL_Forms}', "");
-    Expect(0, 65055, '\p{^-IN_VERTICAL_Forms}', "");
-    Expect(0, 65055, '\P{-IN_VERTICAL_Forms}', "");
-    Expect(1, 65055, '\P{^-IN_VERTICAL_Forms}', "");
-    Expect(0, 65056, '\p{-IN_VERTICAL_Forms}', "");
-    Expect(1, 65056, '\p{^-IN_VERTICAL_Forms}', "");
-    Expect(1, 65056, '\P{-IN_VERTICAL_Forms}', "");
-    Expect(0, 65056, '\P{^-IN_VERTICAL_Forms}', "");
-    Error('\p{	:=VERTSPACE}');
-    Error('\P{	:=VERTSPACE}');
+    Expect(1, 65055, '\p{__In_Vertical_forms}', "");
+    Expect(0, 65055, '\p{^__In_Vertical_forms}', "");
+    Expect(0, 65055, '\P{__In_Vertical_forms}', "");
+    Expect(1, 65055, '\P{^__In_Vertical_forms}', "");
+    Expect(0, 65056, '\p{__In_Vertical_forms}', "");
+    Expect(1, 65056, '\p{^__In_Vertical_forms}', "");
+    Expect(1, 65056, '\P{__In_Vertical_forms}', "");
+    Expect(0, 65056, '\P{^__In_Vertical_forms}', "");
+    Error('\p{:=		VertSpace}');
+    Error('\P{:=		VertSpace}');
     Expect(1, 8233, '\p{vertspace}', "");
     Expect(0, 8233, '\p{^vertspace}', "");
     Expect(0, 8233, '\P{vertspace}', "");
@@ -125041,16 +126257,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8234, '\p{^vertspace}', "");
     Expect(1, 8234, '\P{vertspace}', "");
     Expect(0, 8234, '\P{^vertspace}', "");
-    Expect(1, 8233, '\p{-VertSpace}', "");
-    Expect(0, 8233, '\p{^-VertSpace}', "");
-    Expect(0, 8233, '\P{-VertSpace}', "");
-    Expect(1, 8233, '\P{^-VertSpace}', "");
-    Expect(0, 8234, '\p{-VertSpace}', "");
-    Expect(1, 8234, '\p{^-VertSpace}', "");
-    Expect(1, 8234, '\P{-VertSpace}', "");
-    Expect(0, 8234, '\P{^-VertSpace}', "");
-    Error('\p{:=		Is_VertSpace}');
-    Error('\P{:=		Is_VertSpace}');
+    Expect(1, 8233, '\p{	VERTSPACE}', "");
+    Expect(0, 8233, '\p{^	VERTSPACE}', "");
+    Expect(0, 8233, '\P{	VERTSPACE}', "");
+    Expect(1, 8233, '\P{^	VERTSPACE}', "");
+    Expect(0, 8234, '\p{	VERTSPACE}', "");
+    Expect(1, 8234, '\p{^	VERTSPACE}', "");
+    Expect(1, 8234, '\P{	VERTSPACE}', "");
+    Expect(0, 8234, '\P{^	VERTSPACE}', "");
+    Error('\p{	-IS_VertSpace:=}');
+    Error('\P{	-IS_VertSpace:=}');
     Expect(1, 8233, '\p{isvertspace}', "");
     Expect(0, 8233, '\p{^isvertspace}', "");
     Expect(0, 8233, '\P{isvertspace}', "");
@@ -125059,16 +126275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8234, '\p{^isvertspace}', "");
     Expect(1, 8234, '\P{isvertspace}', "");
     Expect(0, 8234, '\P{^isvertspace}', "");
-    Expect(1, 8233, '\p{_Is_VertSpace}', "");
-    Expect(0, 8233, '\p{^_Is_VertSpace}', "");
-    Expect(0, 8233, '\P{_Is_VertSpace}', "");
-    Expect(1, 8233, '\P{^_Is_VertSpace}', "");
-    Expect(0, 8234, '\p{_Is_VertSpace}', "");
-    Expect(1, 8234, '\p{^_Is_VertSpace}', "");
-    Expect(1, 8234, '\P{_Is_VertSpace}', "");
-    Expect(0, 8234, '\P{^_Is_VertSpace}', "");
-    Error('\p{/a/	 VITHKUQI}');
-    Error('\P{/a/	 VITHKUQI}');
+    Expect(1, 8233, '\p{__is_VertSpace}', "");
+    Expect(0, 8233, '\p{^__is_VertSpace}', "");
+    Expect(0, 8233, '\P{__is_VertSpace}', "");
+    Expect(1, 8233, '\P{^__is_VertSpace}', "");
+    Expect(0, 8234, '\p{__is_VertSpace}', "");
+    Expect(1, 8234, '\p{^__is_VertSpace}', "");
+    Expect(1, 8234, '\P{__is_VertSpace}', "");
+    Expect(0, 8234, '\P{^__is_VertSpace}', "");
+    Error('\p{	/a/Vithkuqi}');
+    Error('\P{	/a/Vithkuqi}');
     Expect(1, 67004, '\p{vithkuqi}', "");
     Expect(0, 67004, '\p{^vithkuqi}', "");
     Expect(0, 67004, '\P{vithkuqi}', "");
@@ -125077,16 +126293,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67005, '\p{^vithkuqi}', "");
     Expect(1, 67005, '\P{vithkuqi}', "");
     Expect(0, 67005, '\P{^vithkuqi}', "");
-    Expect(1, 67004, '\p{Vithkuqi}', "");
-    Expect(0, 67004, '\p{^Vithkuqi}', "");
-    Expect(0, 67004, '\P{Vithkuqi}', "");
-    Expect(1, 67004, '\P{^Vithkuqi}', "");
-    Expect(0, 67005, '\p{Vithkuqi}', "");
-    Expect(1, 67005, '\p{^Vithkuqi}', "");
-    Expect(1, 67005, '\P{Vithkuqi}', "");
-    Expect(0, 67005, '\P{^Vithkuqi}', "");
-    Error('\p{/a/is_vithkuqi}');
-    Error('\P{/a/is_vithkuqi}');
+    Expect(1, 67004, '\p{- vithkuqi}', "");
+    Expect(0, 67004, '\p{^- vithkuqi}', "");
+    Expect(0, 67004, '\P{- vithkuqi}', "");
+    Expect(1, 67004, '\P{^- vithkuqi}', "");
+    Expect(0, 67005, '\p{- vithkuqi}', "");
+    Expect(1, 67005, '\p{^- vithkuqi}', "");
+    Expect(1, 67005, '\P{- vithkuqi}', "");
+    Expect(0, 67005, '\P{^- vithkuqi}', "");
+    Error('\p{-	Is_Vithkuqi/a/}');
+    Error('\P{-	Is_Vithkuqi/a/}');
     Expect(1, 67004, '\p{isvithkuqi}', "");
     Expect(0, 67004, '\p{^isvithkuqi}', "");
     Expect(0, 67004, '\P{isvithkuqi}', "");
@@ -125095,16 +126311,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67005, '\p{^isvithkuqi}', "");
     Expect(1, 67005, '\P{isvithkuqi}', "");
     Expect(0, 67005, '\P{^isvithkuqi}', "");
-    Expect(1, 67004, '\p{_Is_VITHKUQI}', "");
-    Expect(0, 67004, '\p{^_Is_VITHKUQI}', "");
-    Expect(0, 67004, '\P{_Is_VITHKUQI}', "");
-    Expect(1, 67004, '\P{^_Is_VITHKUQI}', "");
-    Expect(0, 67005, '\p{_Is_VITHKUQI}', "");
-    Expect(1, 67005, '\p{^_Is_VITHKUQI}', "");
-    Expect(1, 67005, '\P{_Is_VITHKUQI}', "");
-    Expect(0, 67005, '\P{^_Is_VITHKUQI}', "");
-    Error('\p{ /a/VITH}');
-    Error('\P{ /a/VITH}');
+    Expect(1, 67004, '\p{- is_Vithkuqi}', "");
+    Expect(0, 67004, '\p{^- is_Vithkuqi}', "");
+    Expect(0, 67004, '\P{- is_Vithkuqi}', "");
+    Expect(1, 67004, '\P{^- is_Vithkuqi}', "");
+    Expect(0, 67005, '\p{- is_Vithkuqi}', "");
+    Expect(1, 67005, '\p{^- is_Vithkuqi}', "");
+    Expect(1, 67005, '\P{- is_Vithkuqi}', "");
+    Expect(0, 67005, '\P{^- is_Vithkuqi}', "");
+    Error('\p{/a/-vith}');
+    Error('\P{/a/-vith}');
     Expect(1, 67004, '\p{vith}', "");
     Expect(0, 67004, '\p{^vith}', "");
     Expect(0, 67004, '\P{vith}', "");
@@ -125113,16 +126329,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67005, '\p{^vith}', "");
     Expect(1, 67005, '\P{vith}', "");
     Expect(0, 67005, '\P{^vith}', "");
-    Expect(1, 67004, '\p{_	Vith}', "");
-    Expect(0, 67004, '\p{^_	Vith}', "");
-    Expect(0, 67004, '\P{_	Vith}', "");
-    Expect(1, 67004, '\P{^_	Vith}', "");
-    Expect(0, 67005, '\p{_	Vith}', "");
-    Expect(1, 67005, '\p{^_	Vith}', "");
-    Expect(1, 67005, '\P{_	Vith}', "");
-    Expect(0, 67005, '\P{^_	Vith}', "");
-    Error('\p{_ Is_VITH/a/}');
-    Error('\P{_ Is_VITH/a/}');
+    Expect(1, 67004, '\p{  Vith}', "");
+    Expect(0, 67004, '\p{^  Vith}', "");
+    Expect(0, 67004, '\P{  Vith}', "");
+    Expect(1, 67004, '\P{^  Vith}', "");
+    Expect(0, 67005, '\p{  Vith}', "");
+    Expect(1, 67005, '\p{^  Vith}', "");
+    Expect(1, 67005, '\P{  Vith}', "");
+    Expect(0, 67005, '\P{^  Vith}', "");
+    Error('\p{:=IS_Vith}');
+    Error('\P{:=IS_Vith}');
     Expect(1, 67004, '\p{isvith}', "");
     Expect(0, 67004, '\p{^isvith}', "");
     Expect(0, 67004, '\P{isvith}', "");
@@ -125131,16 +126347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67005, '\p{^isvith}', "");
     Expect(1, 67005, '\P{isvith}', "");
     Expect(0, 67005, '\P{^isvith}', "");
-    Expect(1, 67004, '\p{	-Is_VITH}', "");
-    Expect(0, 67004, '\p{^	-Is_VITH}', "");
-    Expect(0, 67004, '\P{	-Is_VITH}', "");
-    Expect(1, 67004, '\P{^	-Is_VITH}', "");
-    Expect(0, 67005, '\p{	-Is_VITH}', "");
-    Expect(1, 67005, '\p{^	-Is_VITH}', "");
-    Expect(1, 67005, '\P{	-Is_VITH}', "");
-    Expect(0, 67005, '\P{^	-Is_VITH}', "");
-    Error('\p{	_Wancho:=}');
-    Error('\P{	_Wancho:=}');
+    Expect(1, 67004, '\p{-IS_vith}', "");
+    Expect(0, 67004, '\p{^-IS_vith}', "");
+    Expect(0, 67004, '\P{-IS_vith}', "");
+    Expect(1, 67004, '\P{^-IS_vith}', "");
+    Expect(0, 67005, '\p{-IS_vith}', "");
+    Expect(1, 67005, '\p{^-IS_vith}', "");
+    Expect(1, 67005, '\P{-IS_vith}', "");
+    Expect(0, 67005, '\P{^-IS_vith}', "");
+    Error('\p{-WANCHO:=}');
+    Error('\P{-WANCHO:=}');
     Expect(1, 123647, '\p{wancho}', "");
     Expect(0, 123647, '\p{^wancho}', "");
     Expect(0, 123647, '\P{wancho}', "");
@@ -125149,16 +126365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123648, '\p{^wancho}', "");
     Expect(1, 123648, '\P{wancho}', "");
     Expect(0, 123648, '\P{^wancho}', "");
-    Expect(1, 123647, '\p{	_Wancho}', "");
-    Expect(0, 123647, '\p{^	_Wancho}', "");
-    Expect(0, 123647, '\P{	_Wancho}', "");
-    Expect(1, 123647, '\P{^	_Wancho}', "");
-    Expect(0, 123648, '\p{	_Wancho}', "");
-    Expect(1, 123648, '\p{^	_Wancho}', "");
-    Expect(1, 123648, '\P{	_Wancho}', "");
-    Expect(0, 123648, '\P{^	_Wancho}', "");
-    Error('\p{	Is_Wancho/a/}');
-    Error('\P{	Is_Wancho/a/}');
+    Expect(1, 123647, '\p{	WANCHO}', "");
+    Expect(0, 123647, '\p{^	WANCHO}', "");
+    Expect(0, 123647, '\P{	WANCHO}', "");
+    Expect(1, 123647, '\P{^	WANCHO}', "");
+    Expect(0, 123648, '\p{	WANCHO}', "");
+    Expect(1, 123648, '\p{^	WANCHO}', "");
+    Expect(1, 123648, '\P{	WANCHO}', "");
+    Expect(0, 123648, '\P{^	WANCHO}', "");
+    Error('\p{-	is_wancho/a/}');
+    Error('\P{-	is_wancho/a/}');
     Expect(1, 123647, '\p{iswancho}', "");
     Expect(0, 123647, '\p{^iswancho}', "");
     Expect(0, 123647, '\P{iswancho}', "");
@@ -125167,16 +126383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123648, '\p{^iswancho}', "");
     Expect(1, 123648, '\P{iswancho}', "");
     Expect(0, 123648, '\P{^iswancho}', "");
-    Expect(1, 123647, '\p{_is_wancho}', "");
-    Expect(0, 123647, '\p{^_is_wancho}', "");
-    Expect(0, 123647, '\P{_is_wancho}', "");
-    Expect(1, 123647, '\P{^_is_wancho}', "");
-    Expect(0, 123648, '\p{_is_wancho}', "");
-    Expect(1, 123648, '\p{^_is_wancho}', "");
-    Expect(1, 123648, '\P{_is_wancho}', "");
-    Expect(0, 123648, '\P{^_is_wancho}', "");
-    Error('\p{/a/-_Wcho}');
-    Error('\P{/a/-_Wcho}');
+    Expect(1, 123647, '\p{-	IS_WANCHO}', "");
+    Expect(0, 123647, '\p{^-	IS_WANCHO}', "");
+    Expect(0, 123647, '\P{-	IS_WANCHO}', "");
+    Expect(1, 123647, '\P{^-	IS_WANCHO}', "");
+    Expect(0, 123648, '\p{-	IS_WANCHO}', "");
+    Expect(1, 123648, '\p{^-	IS_WANCHO}', "");
+    Expect(1, 123648, '\P{-	IS_WANCHO}', "");
+    Expect(0, 123648, '\P{^-	IS_WANCHO}', "");
+    Error('\p{_	Wcho/a/}');
+    Error('\P{_	Wcho/a/}');
     Expect(1, 123647, '\p{wcho}', "");
     Expect(0, 123647, '\p{^wcho}', "");
     Expect(0, 123647, '\P{wcho}', "");
@@ -125185,16 +126401,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123648, '\p{^wcho}', "");
     Expect(1, 123648, '\P{wcho}', "");
     Expect(0, 123648, '\P{^wcho}', "");
-    Expect(1, 123647, '\p{	 Wcho}', "");
-    Expect(0, 123647, '\p{^	 Wcho}', "");
-    Expect(0, 123647, '\P{	 Wcho}', "");
-    Expect(1, 123647, '\P{^	 Wcho}', "");
-    Expect(0, 123648, '\p{	 Wcho}', "");
-    Expect(1, 123648, '\p{^	 Wcho}', "");
-    Expect(1, 123648, '\P{	 Wcho}', "");
-    Expect(0, 123648, '\P{^	 Wcho}', "");
-    Error('\p{	IS_WCHO:=}');
-    Error('\P{	IS_WCHO:=}');
+    Expect(1, 123647, '\p{-	wcho}', "");
+    Expect(0, 123647, '\p{^-	wcho}', "");
+    Expect(0, 123647, '\P{-	wcho}', "");
+    Expect(1, 123647, '\P{^-	wcho}', "");
+    Expect(0, 123648, '\p{-	wcho}', "");
+    Expect(1, 123648, '\p{^-	wcho}', "");
+    Expect(1, 123648, '\P{-	wcho}', "");
+    Expect(0, 123648, '\P{^-	wcho}', "");
+    Error('\p{_	IS_wcho/a/}');
+    Error('\P{_	IS_wcho/a/}');
     Expect(1, 123647, '\p{iswcho}', "");
     Expect(0, 123647, '\p{^iswcho}', "");
     Expect(0, 123647, '\P{iswcho}', "");
@@ -125203,16 +126419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123648, '\p{^iswcho}', "");
     Expect(1, 123648, '\P{iswcho}', "");
     Expect(0, 123648, '\P{^iswcho}', "");
-    Expect(1, 123647, '\p{		Is_Wcho}', "");
-    Expect(0, 123647, '\p{^		Is_Wcho}', "");
-    Expect(0, 123647, '\P{		Is_Wcho}', "");
-    Expect(1, 123647, '\P{^		Is_Wcho}', "");
-    Expect(0, 123648, '\p{		Is_Wcho}', "");
-    Expect(1, 123648, '\p{^		Is_Wcho}', "");
-    Expect(1, 123648, '\P{		Is_Wcho}', "");
-    Expect(0, 123648, '\P{^		Is_Wcho}', "");
-    Error('\p{ WARANG_CITI/a/}');
-    Error('\P{ WARANG_CITI/a/}');
+    Expect(1, 123647, '\p{-	is_wcho}', "");
+    Expect(0, 123647, '\p{^-	is_wcho}', "");
+    Expect(0, 123647, '\P{-	is_wcho}', "");
+    Expect(1, 123647, '\P{^-	is_wcho}', "");
+    Expect(0, 123648, '\p{-	is_wcho}', "");
+    Expect(1, 123648, '\p{^-	is_wcho}', "");
+    Expect(1, 123648, '\P{-	is_wcho}', "");
+    Expect(0, 123648, '\P{^-	is_wcho}', "");
+    Error('\p{/a/Warang_CITI}');
+    Error('\P{/a/Warang_CITI}');
     Expect(1, 71935, '\p{warangciti}', "");
     Expect(0, 71935, '\p{^warangciti}', "");
     Expect(0, 71935, '\P{warangciti}', "");
@@ -125221,16 +126437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^warangciti}', "");
     Expect(1, 71936, '\P{warangciti}', "");
     Expect(0, 71936, '\P{^warangciti}', "");
-    Expect(1, 71935, '\p{_	Warang_Citi}', "");
-    Expect(0, 71935, '\p{^_	Warang_Citi}', "");
-    Expect(0, 71935, '\P{_	Warang_Citi}', "");
-    Expect(1, 71935, '\P{^_	Warang_Citi}', "");
-    Expect(0, 71936, '\p{_	Warang_Citi}', "");
-    Expect(1, 71936, '\p{^_	Warang_Citi}', "");
-    Expect(1, 71936, '\P{_	Warang_Citi}', "");
-    Expect(0, 71936, '\P{^_	Warang_Citi}', "");
-    Error('\p{_/a/Is_Warang_CITI}');
-    Error('\P{_/a/Is_Warang_CITI}');
+    Expect(1, 71935, '\p{--WARANG_Citi}', "");
+    Expect(0, 71935, '\p{^--WARANG_Citi}', "");
+    Expect(0, 71935, '\P{--WARANG_Citi}', "");
+    Expect(1, 71935, '\P{^--WARANG_Citi}', "");
+    Expect(0, 71936, '\p{--WARANG_Citi}', "");
+    Expect(1, 71936, '\p{^--WARANG_Citi}', "");
+    Expect(1, 71936, '\P{--WARANG_Citi}', "");
+    Expect(0, 71936, '\P{^--WARANG_Citi}', "");
+    Error('\p{:=_Is_Warang_citi}');
+    Error('\P{:=_Is_Warang_citi}');
     Expect(1, 71935, '\p{iswarangciti}', "");
     Expect(0, 71935, '\p{^iswarangciti}', "");
     Expect(0, 71935, '\P{iswarangciti}', "");
@@ -125239,16 +126455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^iswarangciti}', "");
     Expect(1, 71936, '\P{iswarangciti}', "");
     Expect(0, 71936, '\P{^iswarangciti}', "");
-    Expect(1, 71935, '\p{_Is_WARANG_Citi}', "");
-    Expect(0, 71935, '\p{^_Is_WARANG_Citi}', "");
-    Expect(0, 71935, '\P{_Is_WARANG_Citi}', "");
-    Expect(1, 71935, '\P{^_Is_WARANG_Citi}', "");
-    Expect(0, 71936, '\p{_Is_WARANG_Citi}', "");
-    Expect(1, 71936, '\p{^_Is_WARANG_Citi}', "");
-    Expect(1, 71936, '\P{_Is_WARANG_Citi}', "");
-    Expect(0, 71936, '\P{^_Is_WARANG_Citi}', "");
-    Error('\p{	Wara:=}');
-    Error('\P{	Wara:=}');
+    Expect(1, 71935, '\p{_is_WARANG_citi}', "");
+    Expect(0, 71935, '\p{^_is_WARANG_citi}', "");
+    Expect(0, 71935, '\P{_is_WARANG_citi}', "");
+    Expect(1, 71935, '\P{^_is_WARANG_citi}', "");
+    Expect(0, 71936, '\p{_is_WARANG_citi}', "");
+    Expect(1, 71936, '\p{^_is_WARANG_citi}', "");
+    Expect(1, 71936, '\P{_is_WARANG_citi}', "");
+    Expect(0, 71936, '\P{^_is_WARANG_citi}', "");
+    Error('\p{  WARA:=}');
+    Error('\P{  WARA:=}');
     Expect(1, 71935, '\p{wara}', "");
     Expect(0, 71935, '\p{^wara}', "");
     Expect(0, 71935, '\P{wara}', "");
@@ -125257,16 +126473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^wara}', "");
     Expect(1, 71936, '\P{wara}', "");
     Expect(0, 71936, '\P{^wara}', "");
-    Expect(1, 71935, '\p{-wara}', "");
-    Expect(0, 71935, '\p{^-wara}', "");
-    Expect(0, 71935, '\P{-wara}', "");
-    Expect(1, 71935, '\P{^-wara}', "");
-    Expect(0, 71936, '\p{-wara}', "");
-    Expect(1, 71936, '\p{^-wara}', "");
-    Expect(1, 71936, '\P{-wara}', "");
-    Expect(0, 71936, '\P{^-wara}', "");
-    Error('\p{-	is_Wara/a/}');
-    Error('\P{-	is_Wara/a/}');
+    Expect(1, 71935, '\p{-_Wara}', "");
+    Expect(0, 71935, '\p{^-_Wara}', "");
+    Expect(0, 71935, '\P{-_Wara}', "");
+    Expect(1, 71935, '\P{^-_Wara}', "");
+    Expect(0, 71936, '\p{-_Wara}', "");
+    Expect(1, 71936, '\p{^-_Wara}', "");
+    Expect(1, 71936, '\P{-_Wara}', "");
+    Expect(0, 71936, '\P{^-_Wara}', "");
+    Error('\p{/a/	-IS_Wara}');
+    Error('\P{/a/	-IS_Wara}');
     Expect(1, 71935, '\p{iswara}', "");
     Expect(0, 71935, '\p{^iswara}', "");
     Expect(0, 71935, '\P{iswara}', "");
@@ -125275,16 +126491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^iswara}', "");
     Expect(1, 71936, '\P{iswara}', "");
     Expect(0, 71936, '\P{^iswara}', "");
-    Expect(1, 71935, '\p{__is_wara}', "");
-    Expect(0, 71935, '\p{^__is_wara}', "");
-    Expect(0, 71935, '\P{__is_wara}', "");
-    Expect(1, 71935, '\P{^__is_wara}', "");
-    Expect(0, 71936, '\p{__is_wara}', "");
-    Expect(1, 71936, '\p{^__is_wara}', "");
-    Expect(1, 71936, '\P{__is_wara}', "");
-    Expect(0, 71936, '\P{^__is_wara}', "");
-    Error('\p{	:=White_Space}');
-    Error('\P{	:=White_Space}');
+    Expect(1, 71935, '\p{	_Is_Wara}', "");
+    Expect(0, 71935, '\p{^	_Is_Wara}', "");
+    Expect(0, 71935, '\P{	_Is_Wara}', "");
+    Expect(1, 71935, '\P{^	_Is_Wara}', "");
+    Expect(0, 71936, '\p{	_Is_Wara}', "");
+    Expect(1, 71936, '\p{^	_Is_Wara}', "");
+    Expect(1, 71936, '\P{	_Is_Wara}', "");
+    Expect(0, 71936, '\P{^	_Is_Wara}', "");
+    Error('\p{ :=White_SPACE}');
+    Error('\P{ :=White_SPACE}');
     Expect(1, 12288, '\p{whitespace}', "");
     Expect(0, 12288, '\p{^whitespace}', "");
     Expect(0, 12288, '\P{whitespace}', "");
@@ -125293,16 +126509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^whitespace}', "");
     Expect(1, 12289, '\P{whitespace}', "");
     Expect(0, 12289, '\P{^whitespace}', "");
-    Expect(1, 12288, '\p{_White_space}', "");
-    Expect(0, 12288, '\p{^_White_space}', "");
-    Expect(0, 12288, '\P{_White_space}', "");
-    Expect(1, 12288, '\P{^_White_space}', "");
-    Expect(0, 12289, '\p{_White_space}', "");
-    Expect(1, 12289, '\p{^_White_space}', "");
-    Expect(1, 12289, '\P{_White_space}', "");
-    Expect(0, 12289, '\P{^_White_space}', "");
-    Error('\p{:=		Is_WHITE_SPACE}');
-    Error('\P{:=		Is_WHITE_SPACE}');
+    Expect(1, 12288, '\p{_-White_Space}', "");
+    Expect(0, 12288, '\p{^_-White_Space}', "");
+    Expect(0, 12288, '\P{_-White_Space}', "");
+    Expect(1, 12288, '\P{^_-White_Space}', "");
+    Expect(0, 12289, '\p{_-White_Space}', "");
+    Expect(1, 12289, '\p{^_-White_Space}', "");
+    Expect(1, 12289, '\P{_-White_Space}', "");
+    Expect(0, 12289, '\P{^_-White_Space}', "");
+    Error('\p{/a/ is_White_Space}');
+    Error('\P{/a/ is_White_Space}');
     Expect(1, 12288, '\p{iswhitespace}', "");
     Expect(0, 12288, '\p{^iswhitespace}', "");
     Expect(0, 12288, '\P{iswhitespace}', "");
@@ -125311,16 +126527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^iswhitespace}', "");
     Expect(1, 12289, '\P{iswhitespace}', "");
     Expect(0, 12289, '\P{^iswhitespace}', "");
-    Expect(1, 12288, '\p{_	Is_White_Space}', "");
-    Expect(0, 12288, '\p{^_	Is_White_Space}', "");
-    Expect(0, 12288, '\P{_	Is_White_Space}', "");
-    Expect(1, 12288, '\P{^_	Is_White_Space}', "");
-    Expect(0, 12289, '\p{_	Is_White_Space}', "");
-    Expect(1, 12289, '\p{^_	Is_White_Space}', "");
-    Expect(1, 12289, '\P{_	Is_White_Space}', "");
-    Expect(0, 12289, '\P{^_	Is_White_Space}', "");
-    Error('\p{:=--wspace}');
-    Error('\P{:=--wspace}');
+    Expect(1, 12288, '\p{ Is_White_Space}', "");
+    Expect(0, 12288, '\p{^ Is_White_Space}', "");
+    Expect(0, 12288, '\P{ Is_White_Space}', "");
+    Expect(1, 12288, '\P{^ Is_White_Space}', "");
+    Expect(0, 12289, '\p{ Is_White_Space}', "");
+    Expect(1, 12289, '\p{^ Is_White_Space}', "");
+    Expect(1, 12289, '\P{ Is_White_Space}', "");
+    Expect(0, 12289, '\P{^ Is_White_Space}', "");
+    Error('\p{--wspace:=}');
+    Error('\P{--wspace:=}');
     Expect(1, 12288, '\p{wspace}', "");
     Expect(0, 12288, '\p{^wspace}', "");
     Expect(0, 12288, '\P{wspace}', "");
@@ -125329,16 +126545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^wspace}', "");
     Expect(1, 12289, '\P{wspace}', "");
     Expect(0, 12289, '\P{^wspace}', "");
-    Expect(1, 12288, '\p{-WSpace}', "");
-    Expect(0, 12288, '\p{^-WSpace}', "");
-    Expect(0, 12288, '\P{-WSpace}', "");
-    Expect(1, 12288, '\P{^-WSpace}', "");
-    Expect(0, 12289, '\p{-WSpace}', "");
-    Expect(1, 12289, '\p{^-WSpace}', "");
-    Expect(1, 12289, '\P{-WSpace}', "");
-    Expect(0, 12289, '\P{^-WSpace}', "");
-    Error('\p{_/a/is_WSpace}');
-    Error('\P{_/a/is_WSpace}');
+    Expect(1, 12288, '\p{__wspace}', "");
+    Expect(0, 12288, '\p{^__wspace}', "");
+    Expect(0, 12288, '\P{__wspace}', "");
+    Expect(1, 12288, '\P{^__wspace}', "");
+    Expect(0, 12289, '\p{__wspace}', "");
+    Expect(1, 12289, '\p{^__wspace}', "");
+    Expect(1, 12289, '\P{__wspace}', "");
+    Expect(0, 12289, '\P{^__wspace}', "");
+    Error('\p{:=-	is_WSpace}');
+    Error('\P{:=-	is_WSpace}');
     Expect(1, 12288, '\p{iswspace}', "");
     Expect(0, 12288, '\p{^iswspace}', "");
     Expect(0, 12288, '\P{iswspace}', "");
@@ -125347,16 +126563,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^iswspace}', "");
     Expect(1, 12289, '\P{iswspace}', "");
     Expect(0, 12289, '\P{^iswspace}', "");
-    Expect(1, 12288, '\p{	_IS_WSpace}', "");
-    Expect(0, 12288, '\p{^	_IS_WSpace}', "");
-    Expect(0, 12288, '\P{	_IS_WSpace}', "");
-    Expect(1, 12288, '\P{^	_IS_WSpace}', "");
-    Expect(0, 12289, '\p{	_IS_WSpace}', "");
-    Expect(1, 12289, '\p{^	_IS_WSpace}', "");
-    Expect(1, 12289, '\P{	_IS_WSpace}', "");
-    Expect(0, 12289, '\P{^	_IS_WSpace}', "");
-    Error('\p{-/a/Space}');
-    Error('\P{-/a/Space}');
+    Expect(1, 12288, '\p{ 	Is_WSPACE}', "");
+    Expect(0, 12288, '\p{^ 	Is_WSPACE}', "");
+    Expect(0, 12288, '\P{ 	Is_WSPACE}', "");
+    Expect(1, 12288, '\P{^ 	Is_WSPACE}', "");
+    Expect(0, 12289, '\p{ 	Is_WSPACE}', "");
+    Expect(1, 12289, '\p{^ 	Is_WSPACE}', "");
+    Expect(1, 12289, '\P{ 	Is_WSPACE}', "");
+    Expect(0, 12289, '\P{^ 	Is_WSPACE}', "");
+    Error('\p{:=_	Space}');
+    Error('\P{:=_	Space}');
     Expect(1, 12288, '\p{space}', "");
     Expect(0, 12288, '\p{^space}', "");
     Expect(0, 12288, '\P{space}', "");
@@ -125365,16 +126581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^space}', "");
     Expect(1, 12289, '\P{space}', "");
     Expect(0, 12289, '\P{^space}', "");
-    Expect(1, 12288, '\p{_ SPACE}', "");
-    Expect(0, 12288, '\p{^_ SPACE}', "");
-    Expect(0, 12288, '\P{_ SPACE}', "");
-    Expect(1, 12288, '\P{^_ SPACE}', "");
-    Expect(0, 12289, '\p{_ SPACE}', "");
-    Expect(1, 12289, '\p{^_ SPACE}', "");
-    Expect(1, 12289, '\P{_ SPACE}', "");
-    Expect(0, 12289, '\P{^_ SPACE}', "");
-    Error('\p{/a/ _Is_Space}');
-    Error('\P{/a/ _Is_Space}');
+    Expect(1, 12288, '\p{-Space}', "");
+    Expect(0, 12288, '\p{^-Space}', "");
+    Expect(0, 12288, '\P{-Space}', "");
+    Expect(1, 12288, '\P{^-Space}', "");
+    Expect(0, 12289, '\p{-Space}', "");
+    Expect(1, 12289, '\p{^-Space}', "");
+    Expect(1, 12289, '\P{-Space}', "");
+    Expect(0, 12289, '\P{^-Space}', "");
+    Error('\p{:=-	Is_SPACE}');
+    Error('\P{:=-	Is_SPACE}');
     Expect(1, 12288, '\p{isspace}', "");
     Expect(0, 12288, '\p{^isspace}', "");
     Expect(0, 12288, '\P{isspace}', "");
@@ -125383,16 +126599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isspace}', "");
     Expect(1, 12289, '\P{isspace}', "");
     Expect(0, 12289, '\P{^isspace}', "");
-    Expect(1, 12288, '\p{	-Is_Space}', "");
-    Expect(0, 12288, '\p{^	-Is_Space}', "");
-    Expect(0, 12288, '\P{	-Is_Space}', "");
-    Expect(1, 12288, '\P{^	-Is_Space}', "");
-    Expect(0, 12289, '\p{	-Is_Space}', "");
-    Expect(1, 12289, '\p{^	-Is_Space}', "");
-    Expect(1, 12289, '\P{	-Is_Space}', "");
-    Expect(0, 12289, '\P{^	-Is_Space}', "");
-    Error('\p{:=	-XPosixWord}');
-    Error('\P{:=	-XPosixWord}');
+    Expect(1, 12288, '\p{--is_space}', "");
+    Expect(0, 12288, '\p{^--is_space}', "");
+    Expect(0, 12288, '\P{--is_space}', "");
+    Expect(1, 12288, '\P{^--is_space}', "");
+    Expect(0, 12289, '\p{--is_space}', "");
+    Expect(1, 12289, '\p{^--is_space}', "");
+    Expect(1, 12289, '\P{--is_space}', "");
+    Expect(0, 12289, '\P{^--is_space}', "");
+    Error('\p{/a/ XPosixWord}');
+    Error('\P{/a/ XPosixWord}');
     Expect(1, 917999, '\p{xposixword}', "");
     Expect(0, 917999, '\p{^xposixword}', "");
     Expect(0, 917999, '\P{xposixword}', "");
@@ -125401,16 +126617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^xposixword}', "");
     Expect(1, 918000, '\P{xposixword}', "");
     Expect(0, 918000, '\P{^xposixword}', "");
-    Expect(1, 917999, '\p{-XPOSIXWORD}', "");
-    Expect(0, 917999, '\p{^-XPOSIXWORD}', "");
-    Expect(0, 917999, '\P{-XPOSIXWORD}', "");
-    Expect(1, 917999, '\P{^-XPOSIXWORD}', "");
-    Expect(0, 918000, '\p{-XPOSIXWORD}', "");
-    Expect(1, 918000, '\p{^-XPOSIXWORD}', "");
-    Expect(1, 918000, '\P{-XPOSIXWORD}', "");
-    Expect(0, 918000, '\P{^-XPOSIXWORD}', "");
-    Error('\p{  Word/a/}');
-    Error('\P{  Word/a/}');
+    Expect(1, 917999, '\p{	_XPOSIXWORD}', "");
+    Expect(0, 917999, '\p{^	_XPOSIXWORD}', "");
+    Expect(0, 917999, '\P{	_XPOSIXWORD}', "");
+    Expect(1, 917999, '\P{^	_XPOSIXWORD}', "");
+    Expect(0, 918000, '\p{	_XPOSIXWORD}', "");
+    Expect(1, 918000, '\p{^	_XPOSIXWORD}', "");
+    Expect(1, 918000, '\P{	_XPOSIXWORD}', "");
+    Expect(0, 918000, '\P{^	_XPOSIXWORD}', "");
+    Error('\p{/a/		word}');
+    Error('\P{/a/		word}');
     Expect(1, 917999, '\p{word}', "");
     Expect(0, 917999, '\p{^word}', "");
     Expect(0, 917999, '\P{word}', "");
@@ -125419,16 +126635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^word}', "");
     Expect(1, 918000, '\P{word}', "");
     Expect(0, 918000, '\P{^word}', "");
-    Expect(1, 917999, '\p{-Word}', "");
-    Expect(0, 917999, '\p{^-Word}', "");
-    Expect(0, 917999, '\P{-Word}', "");
-    Expect(1, 917999, '\P{^-Word}', "");
-    Expect(0, 918000, '\p{-Word}', "");
-    Expect(1, 918000, '\p{^-Word}', "");
-    Expect(1, 918000, '\P{-Word}', "");
-    Expect(0, 918000, '\P{^-Word}', "");
-    Error('\p{/a/--is_XPosixWord}');
-    Error('\P{/a/--is_XPosixWord}');
+    Expect(1, 917999, '\p{WORD}', "");
+    Expect(0, 917999, '\p{^WORD}', "");
+    Expect(0, 917999, '\P{WORD}', "");
+    Expect(1, 917999, '\P{^WORD}', "");
+    Expect(0, 918000, '\p{WORD}', "");
+    Expect(1, 918000, '\p{^WORD}', "");
+    Expect(1, 918000, '\P{WORD}', "");
+    Expect(0, 918000, '\P{^WORD}', "");
+    Error('\p{/a/is_XPosixWord}');
+    Error('\P{/a/is_XPosixWord}');
     Expect(1, 917999, '\p{isxposixword}', "");
     Expect(0, 917999, '\p{^isxposixword}', "");
     Expect(0, 917999, '\P{isxposixword}', "");
@@ -125437,16 +126653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isxposixword}', "");
     Expect(1, 918000, '\P{isxposixword}', "");
     Expect(0, 918000, '\P{^isxposixword}', "");
-    Expect(1, 917999, '\p{	_IS_XPOSIXWORD}', "");
-    Expect(0, 917999, '\p{^	_IS_XPOSIXWORD}', "");
-    Expect(0, 917999, '\P{	_IS_XPOSIXWORD}', "");
-    Expect(1, 917999, '\P{^	_IS_XPOSIXWORD}', "");
-    Expect(0, 918000, '\p{	_IS_XPOSIXWORD}', "");
-    Expect(1, 918000, '\p{^	_IS_XPOSIXWORD}', "");
-    Expect(1, 918000, '\P{	_IS_XPOSIXWORD}', "");
-    Expect(0, 918000, '\P{^	_IS_XPOSIXWORD}', "");
-    Error('\p{	 Is_Word:=}');
-    Error('\P{	 Is_Word:=}');
+    Expect(1, 917999, '\p{	Is_XPosixWord}', "");
+    Expect(0, 917999, '\p{^	Is_XPosixWord}', "");
+    Expect(0, 917999, '\P{	Is_XPosixWord}', "");
+    Expect(1, 917999, '\P{^	Is_XPosixWord}', "");
+    Expect(0, 918000, '\p{	Is_XPosixWord}', "");
+    Expect(1, 918000, '\p{^	Is_XPosixWord}', "");
+    Expect(1, 918000, '\P{	Is_XPosixWord}', "");
+    Expect(0, 918000, '\P{^	Is_XPosixWord}', "");
+    Error('\p{--is_word/a/}');
+    Error('\P{--is_word/a/}');
     Expect(1, 917999, '\p{isword}', "");
     Expect(0, 917999, '\p{^isword}', "");
     Expect(0, 917999, '\P{isword}', "");
@@ -125455,16 +126671,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isword}', "");
     Expect(1, 918000, '\P{isword}', "");
     Expect(0, 918000, '\P{^isword}', "");
-    Expect(1, 917999, '\p{ 	Is_Word}', "");
-    Expect(0, 917999, '\p{^ 	Is_Word}', "");
-    Expect(0, 917999, '\P{ 	Is_Word}', "");
-    Expect(1, 917999, '\P{^ 	Is_Word}', "");
-    Expect(0, 918000, '\p{ 	Is_Word}', "");
-    Expect(1, 918000, '\p{^ 	Is_Word}', "");
-    Expect(1, 918000, '\P{ 	Is_Word}', "");
-    Expect(0, 918000, '\P{^ 	Is_Word}', "");
-    Error('\p{/a/ _xposixxdigit}');
-    Error('\P{/a/ _xposixxdigit}');
+    Expect(1, 917999, '\p{-Is_WORD}', "");
+    Expect(0, 917999, '\p{^-Is_WORD}', "");
+    Expect(0, 917999, '\P{-Is_WORD}', "");
+    Expect(1, 917999, '\P{^-Is_WORD}', "");
+    Expect(0, 918000, '\p{-Is_WORD}', "");
+    Expect(1, 918000, '\p{^-Is_WORD}', "");
+    Expect(1, 918000, '\P{-Is_WORD}', "");
+    Expect(0, 918000, '\P{^-Is_WORD}', "");
+    Error('\p{/a/ 	XPOSIXXDIGIT}');
+    Error('\P{/a/ 	XPOSIXXDIGIT}');
     Expect(1, 65350, '\p{xposixxdigit}', "");
     Expect(0, 65350, '\p{^xposixxdigit}', "");
     Expect(0, 65350, '\P{xposixxdigit}', "");
@@ -125473,16 +126689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^xposixxdigit}', "");
     Expect(1, 65351, '\P{xposixxdigit}', "");
     Expect(0, 65351, '\P{^xposixxdigit}', "");
-    Expect(1, 65350, '\p{ -XPosixXDigit}', "");
-    Expect(0, 65350, '\p{^ -XPosixXDigit}', "");
-    Expect(0, 65350, '\P{ -XPosixXDigit}', "");
-    Expect(1, 65350, '\P{^ -XPosixXDigit}', "");
-    Expect(0, 65351, '\p{ -XPosixXDigit}', "");
-    Expect(1, 65351, '\p{^ -XPosixXDigit}', "");
-    Expect(1, 65351, '\P{ -XPosixXDigit}', "");
-    Expect(0, 65351, '\P{^ -XPosixXDigit}', "");
-    Error('\p{_/a/XDigit}');
-    Error('\P{_/a/XDigit}');
+    Expect(1, 65350, '\p{- XPosixXDigit}', "");
+    Expect(0, 65350, '\p{^- XPosixXDigit}', "");
+    Expect(0, 65350, '\P{- XPosixXDigit}', "");
+    Expect(1, 65350, '\P{^- XPosixXDigit}', "");
+    Expect(0, 65351, '\p{- XPosixXDigit}', "");
+    Expect(1, 65351, '\p{^- XPosixXDigit}', "");
+    Expect(1, 65351, '\P{- XPosixXDigit}', "");
+    Expect(0, 65351, '\P{^- XPosixXDigit}', "");
+    Error('\p{-/a/XDigit}');
+    Error('\P{-/a/XDigit}');
     Expect(1, 65350, '\p{xdigit}', "");
     Expect(0, 65350, '\p{^xdigit}', "");
     Expect(0, 65350, '\P{xdigit}', "");
@@ -125491,16 +126707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^xdigit}', "");
     Expect(1, 65351, '\P{xdigit}', "");
     Expect(0, 65351, '\P{^xdigit}', "");
-    Expect(1, 65350, '\p{XDigit}', "");
-    Expect(0, 65350, '\p{^XDigit}', "");
-    Expect(0, 65350, '\P{XDigit}', "");
-    Expect(1, 65350, '\P{^XDigit}', "");
-    Expect(0, 65351, '\p{XDigit}', "");
-    Expect(1, 65351, '\p{^XDigit}', "");
-    Expect(1, 65351, '\P{XDigit}', "");
-    Expect(0, 65351, '\P{^XDigit}', "");
-    Error('\p{	 is_xposixxdigit/a/}');
-    Error('\P{	 is_xposixxdigit/a/}');
+    Expect(1, 65350, '\p{- XDIGIT}', "");
+    Expect(0, 65350, '\p{^- XDIGIT}', "");
+    Expect(0, 65350, '\P{- XDIGIT}', "");
+    Expect(1, 65350, '\P{^- XDIGIT}', "");
+    Expect(0, 65351, '\p{- XDIGIT}', "");
+    Expect(1, 65351, '\p{^- XDIGIT}', "");
+    Expect(1, 65351, '\P{- XDIGIT}', "");
+    Expect(0, 65351, '\P{^- XDIGIT}', "");
+    Error('\p{:=--Is_XPOSIXXDIGIT}');
+    Error('\P{:=--Is_XPOSIXXDIGIT}');
     Expect(1, 65350, '\p{isxposixxdigit}', "");
     Expect(0, 65350, '\p{^isxposixxdigit}', "");
     Expect(0, 65350, '\P{isxposixxdigit}', "");
@@ -125509,16 +126725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^isxposixxdigit}', "");
     Expect(1, 65351, '\P{isxposixxdigit}', "");
     Expect(0, 65351, '\P{^isxposixxdigit}', "");
-    Expect(1, 65350, '\p{-is_xposixxdigit}', "");
-    Expect(0, 65350, '\p{^-is_xposixxdigit}', "");
-    Expect(0, 65350, '\P{-is_xposixxdigit}', "");
-    Expect(1, 65350, '\P{^-is_xposixxdigit}', "");
-    Expect(0, 65351, '\p{-is_xposixxdigit}', "");
-    Expect(1, 65351, '\p{^-is_xposixxdigit}', "");
-    Expect(1, 65351, '\P{-is_xposixxdigit}', "");
-    Expect(0, 65351, '\P{^-is_xposixxdigit}', "");
-    Error('\p{/a/-	Is_XDIGIT}');
-    Error('\P{/a/-	Is_XDIGIT}');
+    Expect(1, 65350, '\p{ IS_XPOSIXXDIGIT}', "");
+    Expect(0, 65350, '\p{^ IS_XPOSIXXDIGIT}', "");
+    Expect(0, 65350, '\P{ IS_XPOSIXXDIGIT}', "");
+    Expect(1, 65350, '\P{^ IS_XPOSIXXDIGIT}', "");
+    Expect(0, 65351, '\p{ IS_XPOSIXXDIGIT}', "");
+    Expect(1, 65351, '\p{^ IS_XPOSIXXDIGIT}', "");
+    Expect(1, 65351, '\P{ IS_XPOSIXXDIGIT}', "");
+    Expect(0, 65351, '\P{^ IS_XPOSIXXDIGIT}', "");
+    Error('\p{- Is_XDIGIT:=}');
+    Error('\P{- Is_XDIGIT:=}');
     Expect(1, 65350, '\p{isxdigit}', "");
     Expect(0, 65350, '\p{^isxdigit}', "");
     Expect(0, 65350, '\P{isxdigit}', "");
@@ -125527,16 +126743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^isxdigit}', "");
     Expect(1, 65351, '\P{isxdigit}', "");
     Expect(0, 65351, '\P{^isxdigit}', "");
-    Expect(1, 65350, '\p{-is_XDigit}', "");
-    Expect(0, 65350, '\p{^-is_XDigit}', "");
-    Expect(0, 65350, '\P{-is_XDigit}', "");
-    Expect(1, 65350, '\P{^-is_XDigit}', "");
-    Expect(0, 65351, '\p{-is_XDigit}', "");
-    Expect(1, 65351, '\p{^-is_XDigit}', "");
-    Expect(1, 65351, '\P{-is_XDigit}', "");
-    Expect(0, 65351, '\P{^-is_XDigit}', "");
-    Error('\p{:=-Hex_Digit}');
-    Error('\P{:=-Hex_Digit}');
+    Expect(1, 65350, '\p{__is_XDIGIT}', "");
+    Expect(0, 65350, '\p{^__is_XDIGIT}', "");
+    Expect(0, 65350, '\P{__is_XDIGIT}', "");
+    Expect(1, 65350, '\P{^__is_XDIGIT}', "");
+    Expect(0, 65351, '\p{__is_XDIGIT}', "");
+    Expect(1, 65351, '\p{^__is_XDIGIT}', "");
+    Expect(1, 65351, '\P{__is_XDIGIT}', "");
+    Expect(0, 65351, '\P{^__is_XDIGIT}', "");
+    Error('\p{-/a/hex_digit}');
+    Error('\P{-/a/hex_digit}');
     Expect(1, 65350, '\p{hexdigit}', "");
     Expect(0, 65350, '\p{^hexdigit}', "");
     Expect(0, 65350, '\P{hexdigit}', "");
@@ -125545,16 +126761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^hexdigit}', "");
     Expect(1, 65351, '\P{hexdigit}', "");
     Expect(0, 65351, '\P{^hexdigit}', "");
-    Expect(1, 65350, '\p{_-hex_DIGIT}', "");
-    Expect(0, 65350, '\p{^_-hex_DIGIT}', "");
-    Expect(0, 65350, '\P{_-hex_DIGIT}', "");
-    Expect(1, 65350, '\P{^_-hex_DIGIT}', "");
-    Expect(0, 65351, '\p{_-hex_DIGIT}', "");
-    Expect(1, 65351, '\p{^_-hex_DIGIT}', "");
-    Expect(1, 65351, '\P{_-hex_DIGIT}', "");
-    Expect(0, 65351, '\P{^_-hex_DIGIT}', "");
-    Error('\p{/a/_ Is_HEX_DIGIT}');
-    Error('\P{/a/_ Is_HEX_DIGIT}');
+    Expect(1, 65350, '\p{ hex_digit}', "");
+    Expect(0, 65350, '\p{^ hex_digit}', "");
+    Expect(0, 65350, '\P{ hex_digit}', "");
+    Expect(1, 65350, '\P{^ hex_digit}', "");
+    Expect(0, 65351, '\p{ hex_digit}', "");
+    Expect(1, 65351, '\p{^ hex_digit}', "");
+    Expect(1, 65351, '\P{ hex_digit}', "");
+    Expect(0, 65351, '\P{^ hex_digit}', "");
+    Error('\p{_Is_Hex_DIGIT:=}');
+    Error('\P{_Is_Hex_DIGIT:=}');
     Expect(1, 65350, '\p{ishexdigit}', "");
     Expect(0, 65350, '\p{^ishexdigit}', "");
     Expect(0, 65350, '\P{ishexdigit}', "");
@@ -125563,16 +126779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^ishexdigit}', "");
     Expect(1, 65351, '\P{ishexdigit}', "");
     Expect(0, 65351, '\P{^ishexdigit}', "");
-    Expect(1, 65350, '\p{_ IS_Hex_DIGIT}', "");
-    Expect(0, 65350, '\p{^_ IS_Hex_DIGIT}', "");
-    Expect(0, 65350, '\P{_ IS_Hex_DIGIT}', "");
-    Expect(1, 65350, '\P{^_ IS_Hex_DIGIT}', "");
-    Expect(0, 65351, '\p{_ IS_Hex_DIGIT}', "");
-    Expect(1, 65351, '\p{^_ IS_Hex_DIGIT}', "");
-    Expect(1, 65351, '\P{_ IS_Hex_DIGIT}', "");
-    Expect(0, 65351, '\P{^_ IS_Hex_DIGIT}', "");
-    Error('\p{/a/-_hex}');
-    Error('\P{/a/-_hex}');
+    Expect(1, 65350, '\p{-IS_HEX_Digit}', "");
+    Expect(0, 65350, '\p{^-IS_HEX_Digit}', "");
+    Expect(0, 65350, '\P{-IS_HEX_Digit}', "");
+    Expect(1, 65350, '\P{^-IS_HEX_Digit}', "");
+    Expect(0, 65351, '\p{-IS_HEX_Digit}', "");
+    Expect(1, 65351, '\p{^-IS_HEX_Digit}', "");
+    Expect(1, 65351, '\P{-IS_HEX_Digit}', "");
+    Expect(0, 65351, '\P{^-IS_HEX_Digit}', "");
+    Error('\p{:= hex}');
+    Error('\P{:= hex}');
     Expect(1, 65350, '\p{hex}', "");
     Expect(0, 65350, '\p{^hex}', "");
     Expect(0, 65350, '\P{hex}', "");
@@ -125589,8 +126805,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^__HEX}', "");
     Expect(1, 65351, '\P{__HEX}', "");
     Expect(0, 65351, '\P{^__HEX}', "");
-    Error('\p{	Is_HEX:=}');
-    Error('\P{	Is_HEX:=}');
+    Error('\p{_	is_Hex/a/}');
+    Error('\P{_	is_Hex/a/}');
     Expect(1, 65350, '\p{ishex}', "");
     Expect(0, 65350, '\p{^ishex}', "");
     Expect(0, 65350, '\P{ishex}', "");
@@ -125599,16 +126815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65351, '\p{^ishex}', "");
     Expect(1, 65351, '\P{ishex}', "");
     Expect(0, 65351, '\P{^ishex}', "");
-    Expect(1, 65350, '\p{  IS_Hex}', "");
-    Expect(0, 65350, '\p{^  IS_Hex}', "");
-    Expect(0, 65350, '\P{  IS_Hex}', "");
-    Expect(1, 65350, '\P{^  IS_Hex}', "");
-    Expect(0, 65351, '\p{  IS_Hex}', "");
-    Expect(1, 65351, '\p{^  IS_Hex}', "");
-    Expect(1, 65351, '\P{  IS_Hex}', "");
-    Expect(0, 65351, '\P{^  IS_Hex}', "");
-    Error('\p{-:=XID_CONTINUE}');
-    Error('\P{-:=XID_CONTINUE}');
+    Expect(1, 65350, '\p{- is_Hex}', "");
+    Expect(0, 65350, '\p{^- is_Hex}', "");
+    Expect(0, 65350, '\P{- is_Hex}', "");
+    Expect(1, 65350, '\P{^- is_Hex}', "");
+    Expect(0, 65351, '\p{- is_Hex}', "");
+    Expect(1, 65351, '\p{^- is_Hex}', "");
+    Expect(1, 65351, '\P{- is_Hex}', "");
+    Expect(0, 65351, '\P{^- is_Hex}', "");
+    Error('\p{ XID_Continue/a/}');
+    Error('\P{ XID_Continue/a/}');
     Expect(1, 917999, '\p{xidcontinue}', "");
     Expect(0, 917999, '\p{^xidcontinue}', "");
     Expect(0, 917999, '\P{xidcontinue}', "");
@@ -125617,16 +126833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^xidcontinue}', "");
     Expect(1, 918000, '\P{xidcontinue}', "");
     Expect(0, 918000, '\P{^xidcontinue}', "");
-    Expect(1, 917999, '\p{	-XID_Continue}', "");
-    Expect(0, 917999, '\p{^	-XID_Continue}', "");
-    Expect(0, 917999, '\P{	-XID_Continue}', "");
-    Expect(1, 917999, '\P{^	-XID_Continue}', "");
-    Expect(0, 918000, '\p{	-XID_Continue}', "");
-    Expect(1, 918000, '\p{^	-XID_Continue}', "");
-    Expect(1, 918000, '\P{	-XID_Continue}', "");
-    Expect(0, 918000, '\P{^	-XID_Continue}', "");
-    Error('\p{:=-is_XID_continue}');
-    Error('\P{:=-is_XID_continue}');
+    Expect(1, 917999, '\p{_	xid_continue}', "");
+    Expect(0, 917999, '\p{^_	xid_continue}', "");
+    Expect(0, 917999, '\P{_	xid_continue}', "");
+    Expect(1, 917999, '\P{^_	xid_continue}', "");
+    Expect(0, 918000, '\p{_	xid_continue}', "");
+    Expect(1, 918000, '\p{^_	xid_continue}', "");
+    Expect(1, 918000, '\P{_	xid_continue}', "");
+    Expect(0, 918000, '\P{^_	xid_continue}', "");
+    Error('\p{-IS_XID_continue/a/}');
+    Error('\P{-IS_XID_continue/a/}');
     Expect(1, 917999, '\p{isxidcontinue}', "");
     Expect(0, 917999, '\p{^isxidcontinue}', "");
     Expect(0, 917999, '\P{isxidcontinue}', "");
@@ -125635,16 +126851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isxidcontinue}', "");
     Expect(1, 918000, '\P{isxidcontinue}', "");
     Expect(0, 918000, '\P{^isxidcontinue}', "");
-    Expect(1, 917999, '\p{IS_XID_Continue}', "");
-    Expect(0, 917999, '\p{^IS_XID_Continue}', "");
-    Expect(0, 917999, '\P{IS_XID_Continue}', "");
-    Expect(1, 917999, '\P{^IS_XID_Continue}', "");
-    Expect(0, 918000, '\p{IS_XID_Continue}', "");
-    Expect(1, 918000, '\p{^IS_XID_Continue}', "");
-    Expect(1, 918000, '\P{IS_XID_Continue}', "");
-    Expect(0, 918000, '\P{^IS_XID_Continue}', "");
-    Error('\p{/a/ xidc}');
-    Error('\P{/a/ xidc}');
+    Expect(1, 917999, '\p{is_XID_CONTINUE}', "");
+    Expect(0, 917999, '\p{^is_XID_CONTINUE}', "");
+    Expect(0, 917999, '\P{is_XID_CONTINUE}', "");
+    Expect(1, 917999, '\P{^is_XID_CONTINUE}', "");
+    Expect(0, 918000, '\p{is_XID_CONTINUE}', "");
+    Expect(1, 918000, '\p{^is_XID_CONTINUE}', "");
+    Expect(1, 918000, '\P{is_XID_CONTINUE}', "");
+    Expect(0, 918000, '\P{^is_XID_CONTINUE}', "");
+    Error('\p{-XIDC/a/}');
+    Error('\P{-XIDC/a/}');
     Expect(1, 917999, '\p{xidc}', "");
     Expect(0, 917999, '\p{^xidc}', "");
     Expect(0, 917999, '\P{xidc}', "");
@@ -125653,16 +126869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^xidc}', "");
     Expect(1, 918000, '\P{xidc}', "");
     Expect(0, 918000, '\P{^xidc}', "");
-    Expect(1, 917999, '\p{_-xidc}', "");
-    Expect(0, 917999, '\p{^_-xidc}', "");
-    Expect(0, 917999, '\P{_-xidc}', "");
-    Expect(1, 917999, '\P{^_-xidc}', "");
-    Expect(0, 918000, '\p{_-xidc}', "");
-    Expect(1, 918000, '\p{^_-xidc}', "");
-    Expect(1, 918000, '\P{_-xidc}', "");
-    Expect(0, 918000, '\P{^_-xidc}', "");
-    Error('\p{:=	_Is_XIDC}');
-    Error('\P{:=	_Is_XIDC}');
+    Expect(1, 917999, '\p{	 XIDC}', "");
+    Expect(0, 917999, '\p{^	 XIDC}', "");
+    Expect(0, 917999, '\P{	 XIDC}', "");
+    Expect(1, 917999, '\P{^	 XIDC}', "");
+    Expect(0, 918000, '\p{	 XIDC}', "");
+    Expect(1, 918000, '\p{^	 XIDC}', "");
+    Expect(1, 918000, '\P{	 XIDC}', "");
+    Expect(0, 918000, '\P{^	 XIDC}', "");
+    Error('\p{		IS_XIDC/a/}');
+    Error('\P{		IS_XIDC/a/}');
     Expect(1, 917999, '\p{isxidc}', "");
     Expect(0, 917999, '\p{^isxidc}', "");
     Expect(0, 917999, '\P{isxidc}', "");
@@ -125671,196 +126887,196 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^isxidc}', "");
     Expect(1, 918000, '\P{isxidc}', "");
     Expect(0, 918000, '\P{^isxidc}', "");
-    Expect(1, 917999, '\p{ Is_XIDC}', "");
-    Expect(0, 917999, '\p{^ Is_XIDC}', "");
-    Expect(0, 917999, '\P{ Is_XIDC}', "");
-    Expect(1, 917999, '\P{^ Is_XIDC}', "");
-    Expect(0, 918000, '\p{ Is_XIDC}', "");
-    Expect(1, 918000, '\p{^ Is_XIDC}', "");
-    Expect(1, 918000, '\P{ Is_XIDC}', "");
-    Expect(0, 918000, '\P{^ Is_XIDC}', "");
-    Error('\p{	 XID_Start/a/}');
-    Error('\P{	 XID_Start/a/}');
-    Expect(1, 201546, '\p{xidstart}', "");
-    Expect(0, 201546, '\p{^xidstart}', "");
-    Expect(0, 201546, '\P{xidstart}', "");
-    Expect(1, 201546, '\P{^xidstart}', "");
-    Expect(0, 201547, '\p{xidstart}', "");
-    Expect(1, 201547, '\p{^xidstart}', "");
-    Expect(1, 201547, '\P{xidstart}', "");
-    Expect(0, 201547, '\P{^xidstart}', "");
-    Expect(1, 201546, '\p{ XID_start}', "");
-    Expect(0, 201546, '\p{^ XID_start}', "");
-    Expect(0, 201546, '\P{ XID_start}', "");
-    Expect(1, 201546, '\P{^ XID_start}', "");
-    Expect(0, 201547, '\p{ XID_start}', "");
-    Expect(1, 201547, '\p{^ XID_start}', "");
-    Expect(1, 201547, '\P{ XID_start}', "");
-    Expect(0, 201547, '\P{^ XID_start}', "");
-    Error('\p{ :=IS_XID_start}');
-    Error('\P{ :=IS_XID_start}');
-    Expect(1, 201546, '\p{isxidstart}', "");
-    Expect(0, 201546, '\p{^isxidstart}', "");
-    Expect(0, 201546, '\P{isxidstart}', "");
-    Expect(1, 201546, '\P{^isxidstart}', "");
-    Expect(0, 201547, '\p{isxidstart}', "");
-    Expect(1, 201547, '\p{^isxidstart}', "");
-    Expect(1, 201547, '\P{isxidstart}', "");
-    Expect(0, 201547, '\P{^isxidstart}', "");
-    Expect(1, 201546, '\p{	 IS_XID_START}', "");
-    Expect(0, 201546, '\p{^	 IS_XID_START}', "");
-    Expect(0, 201546, '\P{	 IS_XID_START}', "");
-    Expect(1, 201546, '\P{^	 IS_XID_START}', "");
-    Expect(0, 201547, '\p{	 IS_XID_START}', "");
-    Expect(1, 201547, '\p{^	 IS_XID_START}', "");
-    Expect(1, 201547, '\P{	 IS_XID_START}', "");
-    Expect(0, 201547, '\P{^	 IS_XID_START}', "");
-    Error('\p{-XIDS:=}');
-    Error('\P{-XIDS:=}');
-    Expect(1, 201546, '\p{xids}', "");
-    Expect(0, 201546, '\p{^xids}', "");
-    Expect(0, 201546, '\P{xids}', "");
-    Expect(1, 201546, '\P{^xids}', "");
-    Expect(0, 201547, '\p{xids}', "");
-    Expect(1, 201547, '\p{^xids}', "");
-    Expect(1, 201547, '\P{xids}', "");
-    Expect(0, 201547, '\P{^xids}', "");
-    Expect(1, 201546, '\p{	 xids}', "");
-    Expect(0, 201546, '\p{^	 xids}', "");
-    Expect(0, 201546, '\P{	 xids}', "");
-    Expect(1, 201546, '\P{^	 xids}', "");
-    Expect(0, 201547, '\p{	 xids}', "");
-    Expect(1, 201547, '\p{^	 xids}', "");
-    Expect(1, 201547, '\P{	 xids}', "");
-    Expect(0, 201547, '\P{^	 xids}', "");
-    Error('\p{:=Is_xids}');
-    Error('\P{:=Is_xids}');
-    Expect(1, 201546, '\p{isxids}', "");
-    Expect(0, 201546, '\p{^isxids}', "");
-    Expect(0, 201546, '\P{isxids}', "");
-    Expect(1, 201546, '\P{^isxids}', "");
-    Expect(0, 201547, '\p{isxids}', "");
-    Expect(1, 201547, '\p{^isxids}', "");
-    Expect(1, 201547, '\P{isxids}', "");
-    Expect(0, 201547, '\P{^isxids}', "");
-    Expect(1, 201546, '\p{-Is_XIDS}', "");
-    Expect(0, 201546, '\p{^-Is_XIDS}', "");
-    Expect(0, 201546, '\P{-Is_XIDS}', "");
-    Expect(1, 201546, '\P{^-Is_XIDS}', "");
-    Expect(0, 201547, '\p{-Is_XIDS}', "");
-    Expect(1, 201547, '\p{^-Is_XIDS}', "");
-    Expect(1, 201547, '\P{-Is_XIDS}', "");
-    Expect(0, 201547, '\P{^-Is_XIDS}', "");
-    Error('\p{	/a/xposixalpha}');
-    Error('\P{	/a/xposixalpha}');
-    Expect(1, 201546, '\p{xposixalpha}', "");
-    Expect(0, 201546, '\p{^xposixalpha}', "");
-    Expect(0, 201546, '\P{xposixalpha}', "");
-    Expect(1, 201546, '\P{^xposixalpha}', "");
-    Expect(0, 201547, '\p{xposixalpha}', "");
-    Expect(1, 201547, '\p{^xposixalpha}', "");
-    Expect(1, 201547, '\P{xposixalpha}', "");
-    Expect(0, 201547, '\P{^xposixalpha}', "");
-    Expect(1, 201546, '\p{	_XPOSIXALPHA}', "");
-    Expect(0, 201546, '\p{^	_XPOSIXALPHA}', "");
-    Expect(0, 201546, '\P{	_XPOSIXALPHA}', "");
-    Expect(1, 201546, '\P{^	_XPOSIXALPHA}', "");
-    Expect(0, 201547, '\p{	_XPOSIXALPHA}', "");
-    Expect(1, 201547, '\p{^	_XPOSIXALPHA}', "");
-    Expect(1, 201547, '\P{	_XPOSIXALPHA}', "");
-    Expect(0, 201547, '\P{^	_XPOSIXALPHA}', "");
-    Error('\p{/a/	is_XPosixAlpha}');
-    Error('\P{/a/	is_XPosixAlpha}');
-    Expect(1, 201546, '\p{isxposixalpha}', "");
-    Expect(0, 201546, '\p{^isxposixalpha}', "");
-    Expect(0, 201546, '\P{isxposixalpha}', "");
-    Expect(1, 201546, '\P{^isxposixalpha}', "");
-    Expect(0, 201547, '\p{isxposixalpha}', "");
-    Expect(1, 201547, '\p{^isxposixalpha}', "");
-    Expect(1, 201547, '\P{isxposixalpha}', "");
-    Expect(0, 201547, '\P{^isxposixalpha}', "");
-    Expect(1, 201546, '\p{	-IS_XPOSIXALPHA}', "");
-    Expect(0, 201546, '\p{^	-IS_XPOSIXALPHA}', "");
-    Expect(0, 201546, '\P{	-IS_XPOSIXALPHA}', "");
-    Expect(1, 201546, '\P{^	-IS_XPOSIXALPHA}', "");
-    Expect(0, 201547, '\p{	-IS_XPOSIXALPHA}', "");
-    Expect(1, 201547, '\p{^	-IS_XPOSIXALPHA}', "");
-    Expect(1, 201547, '\P{	-IS_XPOSIXALPHA}', "");
-    Expect(0, 201547, '\P{^	-IS_XPOSIXALPHA}', "");
-    Error('\p{/a/__alphabetic}');
-    Error('\P{/a/__alphabetic}');
-    Expect(1, 201546, '\p{alphabetic}', "");
-    Expect(0, 201546, '\p{^alphabetic}', "");
-    Expect(0, 201546, '\P{alphabetic}', "");
-    Expect(1, 201546, '\P{^alphabetic}', "");
-    Expect(0, 201547, '\p{alphabetic}', "");
-    Expect(1, 201547, '\p{^alphabetic}', "");
-    Expect(1, 201547, '\P{alphabetic}', "");
-    Expect(0, 201547, '\P{^alphabetic}', "");
-    Expect(1, 201546, '\p{_ALPHABETIC}', "");
-    Expect(0, 201546, '\p{^_ALPHABETIC}', "");
-    Expect(0, 201546, '\P{_ALPHABETIC}', "");
-    Expect(1, 201546, '\P{^_ALPHABETIC}', "");
-    Expect(0, 201547, '\p{_ALPHABETIC}', "");
-    Expect(1, 201547, '\p{^_ALPHABETIC}', "");
-    Expect(1, 201547, '\P{_ALPHABETIC}', "");
-    Expect(0, 201547, '\P{^_ALPHABETIC}', "");
-    Error('\p{:=Is_Alphabetic}');
-    Error('\P{:=Is_Alphabetic}');
-    Expect(1, 201546, '\p{isalphabetic}', "");
-    Expect(0, 201546, '\p{^isalphabetic}', "");
-    Expect(0, 201546, '\P{isalphabetic}', "");
-    Expect(1, 201546, '\P{^isalphabetic}', "");
-    Expect(0, 201547, '\p{isalphabetic}', "");
-    Expect(1, 201547, '\p{^isalphabetic}', "");
-    Expect(1, 201547, '\P{isalphabetic}', "");
-    Expect(0, 201547, '\P{^isalphabetic}', "");
-    Expect(1, 201546, '\p{ Is_Alphabetic}', "");
-    Expect(0, 201546, '\p{^ Is_Alphabetic}', "");
-    Expect(0, 201546, '\P{ Is_Alphabetic}', "");
-    Expect(1, 201546, '\P{^ Is_Alphabetic}', "");
-    Expect(0, 201547, '\p{ Is_Alphabetic}', "");
-    Expect(1, 201547, '\p{^ Is_Alphabetic}', "");
-    Expect(1, 201547, '\P{ Is_Alphabetic}', "");
-    Expect(0, 201547, '\P{^ Is_Alphabetic}', "");
-    Error('\p{-Alpha/a/}');
-    Error('\P{-Alpha/a/}');
-    Expect(1, 201546, '\p{alpha}', "");
-    Expect(0, 201546, '\p{^alpha}', "");
-    Expect(0, 201546, '\P{alpha}', "");
-    Expect(1, 201546, '\P{^alpha}', "");
-    Expect(0, 201547, '\p{alpha}', "");
-    Expect(1, 201547, '\p{^alpha}', "");
-    Expect(1, 201547, '\P{alpha}', "");
-    Expect(0, 201547, '\P{^alpha}', "");
-    Expect(1, 201546, '\p{	alpha}', "");
-    Expect(0, 201546, '\p{^	alpha}', "");
-    Expect(0, 201546, '\P{	alpha}', "");
-    Expect(1, 201546, '\P{^	alpha}', "");
-    Expect(0, 201547, '\p{	alpha}', "");
-    Expect(1, 201547, '\p{^	alpha}', "");
-    Expect(1, 201547, '\P{	alpha}', "");
-    Expect(0, 201547, '\P{^	alpha}', "");
-    Error('\p{ :=Is_Alpha}');
-    Error('\P{ :=Is_Alpha}');
-    Expect(1, 201546, '\p{isalpha}', "");
-    Expect(0, 201546, '\p{^isalpha}', "");
-    Expect(0, 201546, '\P{isalpha}', "");
-    Expect(1, 201546, '\P{^isalpha}', "");
-    Expect(0, 201547, '\p{isalpha}', "");
-    Expect(1, 201547, '\p{^isalpha}', "");
-    Expect(1, 201547, '\P{isalpha}', "");
-    Expect(0, 201547, '\P{^isalpha}', "");
-    Expect(1, 201546, '\p{- Is_ALPHA}', "");
-    Expect(0, 201546, '\p{^- Is_ALPHA}', "");
-    Expect(0, 201546, '\P{- Is_ALPHA}', "");
-    Expect(1, 201546, '\P{^- Is_ALPHA}', "");
-    Expect(0, 201547, '\p{- Is_ALPHA}', "");
-    Expect(1, 201547, '\p{^- Is_ALPHA}', "");
-    Expect(1, 201547, '\P{- Is_ALPHA}', "");
-    Expect(0, 201547, '\P{^- Is_ALPHA}', "");
-    Error('\p{:= XPosixLower}');
-    Error('\P{:= XPosixLower}');
+    Expect(1, 917999, '\p{-_is_XIDC}', "");
+    Expect(0, 917999, '\p{^-_is_XIDC}', "");
+    Expect(0, 917999, '\P{-_is_XIDC}', "");
+    Expect(1, 917999, '\P{^-_is_XIDC}', "");
+    Expect(0, 918000, '\p{-_is_XIDC}', "");
+    Expect(1, 918000, '\p{^-_is_XIDC}', "");
+    Expect(1, 918000, '\P{-_is_XIDC}', "");
+    Expect(0, 918000, '\P{^-_is_XIDC}', "");
+    Error('\p{:= XID_Start}');
+    Error('\P{:= XID_Start}');
+    Expect(1, 205743, '\p{xidstart}', "");
+    Expect(0, 205743, '\p{^xidstart}', "");
+    Expect(0, 205743, '\P{xidstart}', "");
+    Expect(1, 205743, '\P{^xidstart}', "");
+    Expect(0, 205744, '\p{xidstart}', "");
+    Expect(1, 205744, '\p{^xidstart}', "");
+    Expect(1, 205744, '\P{xidstart}', "");
+    Expect(0, 205744, '\P{^xidstart}', "");
+    Expect(1, 205743, '\p{ XID_Start}', "");
+    Expect(0, 205743, '\p{^ XID_Start}', "");
+    Expect(0, 205743, '\P{ XID_Start}', "");
+    Expect(1, 205743, '\P{^ XID_Start}', "");
+    Expect(0, 205744, '\p{ XID_Start}', "");
+    Expect(1, 205744, '\p{^ XID_Start}', "");
+    Expect(1, 205744, '\P{ XID_Start}', "");
+    Expect(0, 205744, '\P{^ XID_Start}', "");
+    Error('\p{ _Is_XID_start/a/}');
+    Error('\P{ _Is_XID_start/a/}');
+    Expect(1, 205743, '\p{isxidstart}', "");
+    Expect(0, 205743, '\p{^isxidstart}', "");
+    Expect(0, 205743, '\P{isxidstart}', "");
+    Expect(1, 205743, '\P{^isxidstart}', "");
+    Expect(0, 205744, '\p{isxidstart}', "");
+    Expect(1, 205744, '\p{^isxidstart}', "");
+    Expect(1, 205744, '\P{isxidstart}', "");
+    Expect(0, 205744, '\P{^isxidstart}', "");
+    Expect(1, 205743, '\p{  is_XID_Start}', "");
+    Expect(0, 205743, '\p{^  is_XID_Start}', "");
+    Expect(0, 205743, '\P{  is_XID_Start}', "");
+    Expect(1, 205743, '\P{^  is_XID_Start}', "");
+    Expect(0, 205744, '\p{  is_XID_Start}', "");
+    Expect(1, 205744, '\p{^  is_XID_Start}', "");
+    Expect(1, 205744, '\P{  is_XID_Start}', "");
+    Expect(0, 205744, '\P{^  is_XID_Start}', "");
+    Error('\p{	XIDS/a/}');
+    Error('\P{	XIDS/a/}');
+    Expect(1, 205743, '\p{xids}', "");
+    Expect(0, 205743, '\p{^xids}', "");
+    Expect(0, 205743, '\P{xids}', "");
+    Expect(1, 205743, '\P{^xids}', "");
+    Expect(0, 205744, '\p{xids}', "");
+    Expect(1, 205744, '\p{^xids}', "");
+    Expect(1, 205744, '\P{xids}', "");
+    Expect(0, 205744, '\P{^xids}', "");
+    Expect(1, 205743, '\p{ XIDS}', "");
+    Expect(0, 205743, '\p{^ XIDS}', "");
+    Expect(0, 205743, '\P{ XIDS}', "");
+    Expect(1, 205743, '\P{^ XIDS}', "");
+    Expect(0, 205744, '\p{ XIDS}', "");
+    Expect(1, 205744, '\p{^ XIDS}', "");
+    Expect(1, 205744, '\P{ XIDS}', "");
+    Expect(0, 205744, '\P{^ XIDS}', "");
+    Error('\p{_Is_XIDS:=}');
+    Error('\P{_Is_XIDS:=}');
+    Expect(1, 205743, '\p{isxids}', "");
+    Expect(0, 205743, '\p{^isxids}', "");
+    Expect(0, 205743, '\P{isxids}', "");
+    Expect(1, 205743, '\P{^isxids}', "");
+    Expect(0, 205744, '\p{isxids}', "");
+    Expect(1, 205744, '\p{^isxids}', "");
+    Expect(1, 205744, '\P{isxids}', "");
+    Expect(0, 205744, '\P{^isxids}', "");
+    Expect(1, 205743, '\p{-Is_XIDS}', "");
+    Expect(0, 205743, '\p{^-Is_XIDS}', "");
+    Expect(0, 205743, '\P{-Is_XIDS}', "");
+    Expect(1, 205743, '\P{^-Is_XIDS}', "");
+    Expect(0, 205744, '\p{-Is_XIDS}', "");
+    Expect(1, 205744, '\p{^-Is_XIDS}', "");
+    Expect(1, 205744, '\P{-Is_XIDS}', "");
+    Expect(0, 205744, '\P{^-Is_XIDS}', "");
+    Error('\p{	/a/XPosixAlpha}');
+    Error('\P{	/a/XPosixAlpha}');
+    Expect(1, 205743, '\p{xposixalpha}', "");
+    Expect(0, 205743, '\p{^xposixalpha}', "");
+    Expect(0, 205743, '\P{xposixalpha}', "");
+    Expect(1, 205743, '\P{^xposixalpha}', "");
+    Expect(0, 205744, '\p{xposixalpha}', "");
+    Expect(1, 205744, '\p{^xposixalpha}', "");
+    Expect(1, 205744, '\P{xposixalpha}', "");
+    Expect(0, 205744, '\P{^xposixalpha}', "");
+    Expect(1, 205743, '\p{- XPosixAlpha}', "");
+    Expect(0, 205743, '\p{^- XPosixAlpha}', "");
+    Expect(0, 205743, '\P{- XPosixAlpha}', "");
+    Expect(1, 205743, '\P{^- XPosixAlpha}', "");
+    Expect(0, 205744, '\p{- XPosixAlpha}', "");
+    Expect(1, 205744, '\p{^- XPosixAlpha}', "");
+    Expect(1, 205744, '\P{- XPosixAlpha}', "");
+    Expect(0, 205744, '\P{^- XPosixAlpha}', "");
+    Error('\p{:=		Is_XPosixAlpha}');
+    Error('\P{:=		Is_XPosixAlpha}');
+    Expect(1, 205743, '\p{isxposixalpha}', "");
+    Expect(0, 205743, '\p{^isxposixalpha}', "");
+    Expect(0, 205743, '\P{isxposixalpha}', "");
+    Expect(1, 205743, '\P{^isxposixalpha}', "");
+    Expect(0, 205744, '\p{isxposixalpha}', "");
+    Expect(1, 205744, '\p{^isxposixalpha}', "");
+    Expect(1, 205744, '\P{isxposixalpha}', "");
+    Expect(0, 205744, '\P{^isxposixalpha}', "");
+    Expect(1, 205743, '\p{	_Is_XPosixAlpha}', "");
+    Expect(0, 205743, '\p{^	_Is_XPosixAlpha}', "");
+    Expect(0, 205743, '\P{	_Is_XPosixAlpha}', "");
+    Expect(1, 205743, '\P{^	_Is_XPosixAlpha}', "");
+    Expect(0, 205744, '\p{	_Is_XPosixAlpha}', "");
+    Expect(1, 205744, '\p{^	_Is_XPosixAlpha}', "");
+    Expect(1, 205744, '\P{	_Is_XPosixAlpha}', "");
+    Expect(0, 205744, '\P{^	_Is_XPosixAlpha}', "");
+    Error('\p{/a/	Alphabetic}');
+    Error('\P{/a/	Alphabetic}');
+    Expect(1, 205743, '\p{alphabetic}', "");
+    Expect(0, 205743, '\p{^alphabetic}', "");
+    Expect(0, 205743, '\P{alphabetic}', "");
+    Expect(1, 205743, '\P{^alphabetic}', "");
+    Expect(0, 205744, '\p{alphabetic}', "");
+    Expect(1, 205744, '\p{^alphabetic}', "");
+    Expect(1, 205744, '\P{alphabetic}', "");
+    Expect(0, 205744, '\P{^alphabetic}', "");
+    Expect(1, 205743, '\p{_ alphabetic}', "");
+    Expect(0, 205743, '\p{^_ alphabetic}', "");
+    Expect(0, 205743, '\P{_ alphabetic}', "");
+    Expect(1, 205743, '\P{^_ alphabetic}', "");
+    Expect(0, 205744, '\p{_ alphabetic}', "");
+    Expect(1, 205744, '\p{^_ alphabetic}', "");
+    Expect(1, 205744, '\P{_ alphabetic}', "");
+    Expect(0, 205744, '\P{^_ alphabetic}', "");
+    Error('\p{:=		Is_Alphabetic}');
+    Error('\P{:=		Is_Alphabetic}');
+    Expect(1, 205743, '\p{isalphabetic}', "");
+    Expect(0, 205743, '\p{^isalphabetic}', "");
+    Expect(0, 205743, '\P{isalphabetic}', "");
+    Expect(1, 205743, '\P{^isalphabetic}', "");
+    Expect(0, 205744, '\p{isalphabetic}', "");
+    Expect(1, 205744, '\p{^isalphabetic}', "");
+    Expect(1, 205744, '\P{isalphabetic}', "");
+    Expect(0, 205744, '\P{^isalphabetic}', "");
+    Expect(1, 205743, '\p{ Is_Alphabetic}', "");
+    Expect(0, 205743, '\p{^ Is_Alphabetic}', "");
+    Expect(0, 205743, '\P{ Is_Alphabetic}', "");
+    Expect(1, 205743, '\P{^ Is_Alphabetic}', "");
+    Expect(0, 205744, '\p{ Is_Alphabetic}', "");
+    Expect(1, 205744, '\p{^ Is_Alphabetic}', "");
+    Expect(1, 205744, '\P{ Is_Alphabetic}', "");
+    Expect(0, 205744, '\P{^ Is_Alphabetic}', "");
+    Error('\p{/a/	_Alpha}');
+    Error('\P{/a/	_Alpha}');
+    Expect(1, 205743, '\p{alpha}', "");
+    Expect(0, 205743, '\p{^alpha}', "");
+    Expect(0, 205743, '\P{alpha}', "");
+    Expect(1, 205743, '\P{^alpha}', "");
+    Expect(0, 205744, '\p{alpha}', "");
+    Expect(1, 205744, '\p{^alpha}', "");
+    Expect(1, 205744, '\P{alpha}', "");
+    Expect(0, 205744, '\P{^alpha}', "");
+    Expect(1, 205743, '\p{_-Alpha}', "");
+    Expect(0, 205743, '\p{^_-Alpha}', "");
+    Expect(0, 205743, '\P{_-Alpha}', "");
+    Expect(1, 205743, '\P{^_-Alpha}', "");
+    Expect(0, 205744, '\p{_-Alpha}', "");
+    Expect(1, 205744, '\p{^_-Alpha}', "");
+    Expect(1, 205744, '\P{_-Alpha}', "");
+    Expect(0, 205744, '\P{^_-Alpha}', "");
+    Error('\p{		is_Alpha/a/}');
+    Error('\P{		is_Alpha/a/}');
+    Expect(1, 205743, '\p{isalpha}', "");
+    Expect(0, 205743, '\p{^isalpha}', "");
+    Expect(0, 205743, '\P{isalpha}', "");
+    Expect(1, 205743, '\P{^isalpha}', "");
+    Expect(0, 205744, '\p{isalpha}', "");
+    Expect(1, 205744, '\p{^isalpha}', "");
+    Expect(1, 205744, '\P{isalpha}', "");
+    Expect(0, 205744, '\P{^isalpha}', "");
+    Expect(1, 205743, '\p{	 Is_Alpha}', "");
+    Expect(0, 205743, '\p{^	 Is_Alpha}', "");
+    Expect(0, 205743, '\P{	 Is_Alpha}', "");
+    Expect(1, 205743, '\P{^	 Is_Alpha}', "");
+    Expect(0, 205744, '\p{	 Is_Alpha}', "");
+    Expect(1, 205744, '\p{^	 Is_Alpha}', "");
+    Expect(1, 205744, '\P{	 Is_Alpha}', "");
+    Expect(0, 205744, '\P{^	 Is_Alpha}', "");
+    Error('\p{ :=XPOSIXLOWER}');
+    Error('\P{ :=XPOSIXLOWER}');
     Expect(1, 125251, '\p{xposixlower}', "");
     Expect(0, 125251, '\p{^xposixlower}', "");
     Expect(0, 125251, '\P{xposixlower}', "");
@@ -125869,16 +127085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^xposixlower}', "");
     Expect(1, 125252, '\P{xposixlower}', "");
     Expect(0, 125252, '\P{^xposixlower}', "");
-    Expect(1, 125251, '\p{		XPosixLower}', "");
-    Expect(0, 125251, '\p{^		XPosixLower}', "");
-    Expect(0, 125251, '\P{		XPosixLower}', "");
-    Expect(1, 125251, '\P{^		XPosixLower}', "");
-    Expect(0, 125252, '\p{		XPosixLower}', "");
-    Expect(1, 125252, '\p{^		XPosixLower}', "");
-    Expect(1, 125252, '\P{		XPosixLower}', "");
-    Expect(0, 125252, '\P{^		XPosixLower}', "");
-    Error('\p{Is_XPOSIXLOWER:=}');
-    Error('\P{Is_XPOSIXLOWER:=}');
+    Expect(1, 125251, '\p{--XPOSIXLOWER}', "");
+    Expect(0, 125251, '\p{^--XPOSIXLOWER}', "");
+    Expect(0, 125251, '\P{--XPOSIXLOWER}', "");
+    Expect(1, 125251, '\P{^--XPOSIXLOWER}', "");
+    Expect(0, 125252, '\p{--XPOSIXLOWER}', "");
+    Expect(1, 125252, '\p{^--XPOSIXLOWER}', "");
+    Expect(1, 125252, '\P{--XPOSIXLOWER}', "");
+    Expect(0, 125252, '\P{^--XPOSIXLOWER}', "");
+    Error('\p{/a/_-Is_XPosixLower}');
+    Error('\P{/a/_-Is_XPosixLower}');
     Expect(1, 125251, '\p{isxposixlower}', "");
     Expect(0, 125251, '\p{^isxposixlower}', "");
     Expect(0, 125251, '\P{isxposixlower}', "");
@@ -125887,16 +127103,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^isxposixlower}', "");
     Expect(1, 125252, '\P{isxposixlower}', "");
     Expect(0, 125252, '\P{^isxposixlower}', "");
-    Expect(1, 125251, '\p{ -IS_XPOSIXLOWER}', "");
-    Expect(0, 125251, '\p{^ -IS_XPOSIXLOWER}', "");
-    Expect(0, 125251, '\P{ -IS_XPOSIXLOWER}', "");
-    Expect(1, 125251, '\P{^ -IS_XPOSIXLOWER}', "");
-    Expect(0, 125252, '\p{ -IS_XPOSIXLOWER}', "");
-    Expect(1, 125252, '\p{^ -IS_XPOSIXLOWER}', "");
-    Expect(1, 125252, '\P{ -IS_XPOSIXLOWER}', "");
-    Expect(0, 125252, '\P{^ -IS_XPOSIXLOWER}', "");
-    Error('\p{-/a/LOWERCASE}');
-    Error('\P{-/a/LOWERCASE}');
+    Expect(1, 125251, '\p{_Is_XPOSIXLOWER}', "");
+    Expect(0, 125251, '\p{^_Is_XPOSIXLOWER}', "");
+    Expect(0, 125251, '\P{_Is_XPOSIXLOWER}', "");
+    Expect(1, 125251, '\P{^_Is_XPOSIXLOWER}', "");
+    Expect(0, 125252, '\p{_Is_XPOSIXLOWER}', "");
+    Expect(1, 125252, '\p{^_Is_XPOSIXLOWER}', "");
+    Expect(1, 125252, '\P{_Is_XPOSIXLOWER}', "");
+    Expect(0, 125252, '\P{^_Is_XPOSIXLOWER}', "");
+    Error('\p{:=_LOWERCASE}');
+    Error('\P{:=_LOWERCASE}');
     Expect(1, 125251, '\p{lowercase}', "");
     Expect(0, 125251, '\p{^lowercase}', "");
     Expect(0, 125251, '\P{lowercase}', "");
@@ -125905,16 +127121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^lowercase}', "");
     Expect(1, 125252, '\P{lowercase}', "");
     Expect(0, 125252, '\P{^lowercase}', "");
-    Expect(1, 125251, '\p{_ Lowercase}', "");
-    Expect(0, 125251, '\p{^_ Lowercase}', "");
-    Expect(0, 125251, '\P{_ Lowercase}', "");
-    Expect(1, 125251, '\P{^_ Lowercase}', "");
-    Expect(0, 125252, '\p{_ Lowercase}', "");
-    Expect(1, 125252, '\p{^_ Lowercase}', "");
-    Expect(1, 125252, '\P{_ Lowercase}', "");
-    Expect(0, 125252, '\P{^_ Lowercase}', "");
-    Error('\p{_/a/Is_LOWERCASE}');
-    Error('\P{_/a/Is_LOWERCASE}');
+    Expect(1, 125251, '\p{	Lowercase}', "");
+    Expect(0, 125251, '\p{^	Lowercase}', "");
+    Expect(0, 125251, '\P{	Lowercase}', "");
+    Expect(1, 125251, '\P{^	Lowercase}', "");
+    Expect(0, 125252, '\p{	Lowercase}', "");
+    Expect(1, 125252, '\p{^	Lowercase}', "");
+    Expect(1, 125252, '\P{	Lowercase}', "");
+    Expect(0, 125252, '\P{^	Lowercase}', "");
+    Error('\p{Is_Lowercase/a/}');
+    Error('\P{Is_Lowercase/a/}');
     Expect(1, 125251, '\p{islowercase}', "");
     Expect(0, 125251, '\p{^islowercase}', "");
     Expect(0, 125251, '\P{islowercase}', "");
@@ -125923,16 +127139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^islowercase}', "");
     Expect(1, 125252, '\P{islowercase}', "");
     Expect(0, 125252, '\P{^islowercase}', "");
-    Expect(1, 125251, '\p{-_is_LOWERCASE}', "");
-    Expect(0, 125251, '\p{^-_is_LOWERCASE}', "");
-    Expect(0, 125251, '\P{-_is_LOWERCASE}', "");
-    Expect(1, 125251, '\P{^-_is_LOWERCASE}', "");
-    Expect(0, 125252, '\p{-_is_LOWERCASE}', "");
-    Expect(1, 125252, '\p{^-_is_LOWERCASE}', "");
-    Expect(1, 125252, '\P{-_is_LOWERCASE}', "");
-    Expect(0, 125252, '\P{^-_is_LOWERCASE}', "");
-    Error('\p{_:=Lower}');
-    Error('\P{_:=Lower}');
+    Expect(1, 125251, '\p{ Is_Lowercase}', "");
+    Expect(0, 125251, '\p{^ Is_Lowercase}', "");
+    Expect(0, 125251, '\P{ Is_Lowercase}', "");
+    Expect(1, 125251, '\P{^ Is_Lowercase}', "");
+    Expect(0, 125252, '\p{ Is_Lowercase}', "");
+    Expect(1, 125252, '\p{^ Is_Lowercase}', "");
+    Expect(1, 125252, '\P{ Is_Lowercase}', "");
+    Expect(0, 125252, '\P{^ Is_Lowercase}', "");
+    Error('\p{/a/	Lower}');
+    Error('\P{/a/	Lower}');
     Expect(1, 125251, '\p{lower}', "");
     Expect(0, 125251, '\p{^lower}', "");
     Expect(0, 125251, '\P{lower}', "");
@@ -125941,16 +127157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^lower}', "");
     Expect(1, 125252, '\P{lower}', "");
     Expect(0, 125252, '\P{^lower}', "");
-    Expect(1, 125251, '\p{-LOWER}', "");
-    Expect(0, 125251, '\p{^-LOWER}', "");
-    Expect(0, 125251, '\P{-LOWER}', "");
-    Expect(1, 125251, '\P{^-LOWER}', "");
-    Expect(0, 125252, '\p{-LOWER}', "");
-    Expect(1, 125252, '\p{^-LOWER}', "");
-    Expect(1, 125252, '\P{-LOWER}', "");
-    Expect(0, 125252, '\P{^-LOWER}', "");
-    Error('\p{	Is_Lower/a/}');
-    Error('\P{	Is_Lower/a/}');
+    Expect(1, 125251, '\p{  Lower}', "");
+    Expect(0, 125251, '\p{^  Lower}', "");
+    Expect(0, 125251, '\P{  Lower}', "");
+    Expect(1, 125251, '\P{^  Lower}', "");
+    Expect(0, 125252, '\p{  Lower}', "");
+    Expect(1, 125252, '\p{^  Lower}', "");
+    Expect(1, 125252, '\P{  Lower}', "");
+    Expect(0, 125252, '\P{^  Lower}', "");
+    Error('\p{	is_Lower/a/}');
+    Error('\P{	is_Lower/a/}');
     Expect(1, 125251, '\p{islower}', "");
     Expect(0, 125251, '\p{^islower}', "");
     Expect(0, 125251, '\P{islower}', "");
@@ -125959,16 +127175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^islower}', "");
     Expect(1, 125252, '\P{islower}', "");
     Expect(0, 125252, '\P{^islower}', "");
-    Expect(1, 125251, '\p{	-Is_Lower}', "");
-    Expect(0, 125251, '\p{^	-Is_Lower}', "");
-    Expect(0, 125251, '\P{	-Is_Lower}', "");
-    Expect(1, 125251, '\P{^	-Is_Lower}', "");
-    Expect(0, 125252, '\p{	-Is_Lower}', "");
-    Expect(1, 125252, '\p{^	-Is_Lower}', "");
-    Expect(1, 125252, '\P{	-Is_Lower}', "");
-    Expect(0, 125252, '\P{^	-Is_Lower}', "");
-    Error('\p{/a/ -XPosixPunct}');
-    Error('\P{/a/ -XPosixPunct}');
+    Expect(1, 125251, '\p{_Is_LOWER}', "");
+    Expect(0, 125251, '\p{^_Is_LOWER}', "");
+    Expect(0, 125251, '\P{_Is_LOWER}', "");
+    Expect(1, 125251, '\P{^_Is_LOWER}', "");
+    Expect(0, 125252, '\p{_Is_LOWER}', "");
+    Expect(1, 125252, '\p{^_Is_LOWER}', "");
+    Expect(1, 125252, '\P{_Is_LOWER}', "");
+    Expect(0, 125252, '\P{^_Is_LOWER}', "");
+    Error('\p{_:=XPosixPunct}');
+    Error('\P{_:=XPosixPunct}');
     Expect(1, 125279, '\p{xposixpunct}', "");
     Expect(0, 125279, '\p{^xposixpunct}', "");
     Expect(0, 125279, '\P{xposixpunct}', "");
@@ -125977,16 +127193,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^xposixpunct}', "");
     Expect(1, 125280, '\P{xposixpunct}', "");
     Expect(0, 125280, '\P{^xposixpunct}', "");
-    Expect(1, 125279, '\p{	XPosixPunct}', "");
-    Expect(0, 125279, '\p{^	XPosixPunct}', "");
-    Expect(0, 125279, '\P{	XPosixPunct}', "");
-    Expect(1, 125279, '\P{^	XPosixPunct}', "");
-    Expect(0, 125280, '\p{	XPosixPunct}', "");
-    Expect(1, 125280, '\p{^	XPosixPunct}', "");
-    Expect(1, 125280, '\P{	XPosixPunct}', "");
-    Expect(0, 125280, '\P{^	XPosixPunct}', "");
-    Error('\p{_ IS_XPosixPunct/a/}');
-    Error('\P{_ IS_XPosixPunct/a/}');
+    Expect(1, 125279, '\p{-XPosixPunct}', "");
+    Expect(0, 125279, '\p{^-XPosixPunct}', "");
+    Expect(0, 125279, '\P{-XPosixPunct}', "");
+    Expect(1, 125279, '\P{^-XPosixPunct}', "");
+    Expect(0, 125280, '\p{-XPosixPunct}', "");
+    Expect(1, 125280, '\p{^-XPosixPunct}', "");
+    Expect(1, 125280, '\P{-XPosixPunct}', "");
+    Expect(0, 125280, '\P{^-XPosixPunct}', "");
+    Error('\p{/a/	 IS_XPOSIXPUNCT}');
+    Error('\P{/a/	 IS_XPOSIXPUNCT}');
     Expect(1, 125279, '\p{isxposixpunct}', "");
     Expect(0, 125279, '\p{^isxposixpunct}', "");
     Expect(0, 125279, '\P{isxposixpunct}', "");
@@ -125995,16 +127211,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^isxposixpunct}', "");
     Expect(1, 125280, '\P{isxposixpunct}', "");
     Expect(0, 125280, '\P{^isxposixpunct}', "");
-    Expect(1, 125279, '\p{_-is_XPOSIXPUNCT}', "");
-    Expect(0, 125279, '\p{^_-is_XPOSIXPUNCT}', "");
-    Expect(0, 125279, '\P{_-is_XPOSIXPUNCT}', "");
-    Expect(1, 125279, '\P{^_-is_XPOSIXPUNCT}', "");
-    Expect(0, 125280, '\p{_-is_XPOSIXPUNCT}', "");
-    Expect(1, 125280, '\p{^_-is_XPOSIXPUNCT}', "");
-    Expect(1, 125280, '\P{_-is_XPOSIXPUNCT}', "");
-    Expect(0, 125280, '\P{^_-is_XPOSIXPUNCT}', "");
-    Error('\p{ _xposixspace/a/}');
-    Error('\P{ _xposixspace/a/}');
+    Expect(1, 125279, '\p{-Is_XPosixPunct}', "");
+    Expect(0, 125279, '\p{^-Is_XPosixPunct}', "");
+    Expect(0, 125279, '\P{-Is_XPosixPunct}', "");
+    Expect(1, 125279, '\P{^-Is_XPosixPunct}', "");
+    Expect(0, 125280, '\p{-Is_XPosixPunct}', "");
+    Expect(1, 125280, '\p{^-Is_XPosixPunct}', "");
+    Expect(1, 125280, '\P{-Is_XPosixPunct}', "");
+    Expect(0, 125280, '\P{^-Is_XPosixPunct}', "");
+    Error('\p{/a/_XPOSIXSPACE}');
+    Error('\P{/a/_XPOSIXSPACE}');
     Expect(1, 12288, '\p{xposixspace}', "");
     Expect(0, 12288, '\p{^xposixspace}', "");
     Expect(0, 12288, '\P{xposixspace}', "");
@@ -126013,16 +127229,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^xposixspace}', "");
     Expect(1, 12289, '\P{xposixspace}', "");
     Expect(0, 12289, '\P{^xposixspace}', "");
-    Expect(1, 12288, '\p{ 	XPosixSpace}', "");
-    Expect(0, 12288, '\p{^ 	XPosixSpace}', "");
-    Expect(0, 12288, '\P{ 	XPosixSpace}', "");
-    Expect(1, 12288, '\P{^ 	XPosixSpace}', "");
-    Expect(0, 12289, '\p{ 	XPosixSpace}', "");
-    Expect(1, 12289, '\p{^ 	XPosixSpace}', "");
-    Expect(1, 12289, '\P{ 	XPosixSpace}', "");
-    Expect(0, 12289, '\P{^ 	XPosixSpace}', "");
-    Error('\p{-:=XPerlSpace}');
-    Error('\P{-:=XPerlSpace}');
+    Expect(1, 12288, '\p{		XPosixSpace}', "");
+    Expect(0, 12288, '\p{^		XPosixSpace}', "");
+    Expect(0, 12288, '\P{		XPosixSpace}', "");
+    Expect(1, 12288, '\P{^		XPosixSpace}', "");
+    Expect(0, 12289, '\p{		XPosixSpace}', "");
+    Expect(1, 12289, '\p{^		XPosixSpace}', "");
+    Expect(1, 12289, '\P{		XPosixSpace}', "");
+    Expect(0, 12289, '\P{^		XPosixSpace}', "");
+    Error('\p{-:=XPERLSPACE}');
+    Error('\P{-:=XPERLSPACE}');
     Expect(1, 12288, '\p{xperlspace}', "");
     Expect(0, 12288, '\p{^xperlspace}', "");
     Expect(0, 12288, '\P{xperlspace}', "");
@@ -126031,16 +127247,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^xperlspace}', "");
     Expect(1, 12289, '\P{xperlspace}', "");
     Expect(0, 12289, '\P{^xperlspace}', "");
-    Expect(1, 12288, '\p{ 	XPerlSpace}', "");
-    Expect(0, 12288, '\p{^ 	XPerlSpace}', "");
-    Expect(0, 12288, '\P{ 	XPerlSpace}', "");
-    Expect(1, 12288, '\P{^ 	XPerlSpace}', "");
-    Expect(0, 12289, '\p{ 	XPerlSpace}', "");
-    Expect(1, 12289, '\p{^ 	XPerlSpace}', "");
-    Expect(1, 12289, '\P{ 	XPerlSpace}', "");
-    Expect(0, 12289, '\P{^ 	XPerlSpace}', "");
-    Error('\p{/a/-SpacePerl}');
-    Error('\P{/a/-SpacePerl}');
+    Expect(1, 12288, '\p{		XPerlSpace}', "");
+    Expect(0, 12288, '\p{^		XPerlSpace}', "");
+    Expect(0, 12288, '\P{		XPerlSpace}', "");
+    Expect(1, 12288, '\P{^		XPerlSpace}', "");
+    Expect(0, 12289, '\p{		XPerlSpace}', "");
+    Expect(1, 12289, '\p{^		XPerlSpace}', "");
+    Expect(1, 12289, '\P{		XPerlSpace}', "");
+    Expect(0, 12289, '\P{^		XPerlSpace}', "");
+    Error('\p{:=_spaceperl}');
+    Error('\P{:=_spaceperl}');
     Expect(1, 12288, '\p{spaceperl}', "");
     Expect(0, 12288, '\p{^spaceperl}', "");
     Expect(0, 12288, '\P{spaceperl}', "");
@@ -126049,16 +127265,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^spaceperl}', "");
     Expect(1, 12289, '\P{spaceperl}', "");
     Expect(0, 12289, '\P{^spaceperl}', "");
-    Expect(1, 12288, '\p{-spaceperl}', "");
-    Expect(0, 12288, '\p{^-spaceperl}', "");
-    Expect(0, 12288, '\P{-spaceperl}', "");
-    Expect(1, 12288, '\P{^-spaceperl}', "");
-    Expect(0, 12289, '\p{-spaceperl}', "");
-    Expect(1, 12289, '\p{^-spaceperl}', "");
-    Expect(1, 12289, '\P{-spaceperl}', "");
-    Expect(0, 12289, '\P{^-spaceperl}', "");
-    Error('\p{/a/is_XPosixSpace}');
-    Error('\P{/a/is_XPosixSpace}');
+    Expect(1, 12288, '\p{  spaceperl}', "");
+    Expect(0, 12288, '\p{^  spaceperl}', "");
+    Expect(0, 12288, '\P{  spaceperl}', "");
+    Expect(1, 12288, '\P{^  spaceperl}', "");
+    Expect(0, 12289, '\p{  spaceperl}', "");
+    Expect(1, 12289, '\p{^  spaceperl}', "");
+    Expect(1, 12289, '\P{  spaceperl}', "");
+    Expect(0, 12289, '\P{^  spaceperl}', "");
+    Error('\p{:=_ Is_XPosixSpace}');
+    Error('\P{:=_ Is_XPosixSpace}');
     Expect(1, 12288, '\p{isxposixspace}', "");
     Expect(0, 12288, '\p{^isxposixspace}', "");
     Expect(0, 12288, '\P{isxposixspace}', "");
@@ -126067,16 +127283,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isxposixspace}', "");
     Expect(1, 12289, '\P{isxposixspace}', "");
     Expect(0, 12289, '\P{^isxposixspace}', "");
-    Expect(1, 12288, '\p{-is_xposixspace}', "");
-    Expect(0, 12288, '\p{^-is_xposixspace}', "");
-    Expect(0, 12288, '\P{-is_xposixspace}', "");
-    Expect(1, 12288, '\P{^-is_xposixspace}', "");
-    Expect(0, 12289, '\p{-is_xposixspace}', "");
-    Expect(1, 12289, '\p{^-is_xposixspace}', "");
-    Expect(1, 12289, '\P{-is_xposixspace}', "");
-    Expect(0, 12289, '\P{^-is_xposixspace}', "");
-    Error('\p{  Is_XPERLSPACE/a/}');
-    Error('\P{  Is_XPERLSPACE/a/}');
+    Expect(1, 12288, '\p{__is_XPosixSpace}', "");
+    Expect(0, 12288, '\p{^__is_XPosixSpace}', "");
+    Expect(0, 12288, '\P{__is_XPosixSpace}', "");
+    Expect(1, 12288, '\P{^__is_XPosixSpace}', "");
+    Expect(0, 12289, '\p{__is_XPosixSpace}', "");
+    Expect(1, 12289, '\p{^__is_XPosixSpace}', "");
+    Expect(1, 12289, '\P{__is_XPosixSpace}', "");
+    Expect(0, 12289, '\P{^__is_XPosixSpace}', "");
+    Error('\p{/a/ Is_XPERLSPACE}');
+    Error('\P{/a/ Is_XPERLSPACE}');
     Expect(1, 12288, '\p{isxperlspace}', "");
     Expect(0, 12288, '\p{^isxperlspace}', "");
     Expect(0, 12288, '\P{isxperlspace}', "");
@@ -126085,16 +127301,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isxperlspace}', "");
     Expect(1, 12289, '\P{isxperlspace}', "");
     Expect(0, 12289, '\P{^isxperlspace}', "");
-    Expect(1, 12288, '\p{_Is_xperlspace}', "");
-    Expect(0, 12288, '\p{^_Is_xperlspace}', "");
-    Expect(0, 12288, '\P{_Is_xperlspace}', "");
-    Expect(1, 12288, '\P{^_Is_xperlspace}', "");
-    Expect(0, 12289, '\p{_Is_xperlspace}', "");
-    Expect(1, 12289, '\p{^_Is_xperlspace}', "");
-    Expect(1, 12289, '\P{_Is_xperlspace}', "");
-    Expect(0, 12289, '\P{^_Is_xperlspace}', "");
-    Error('\p{/a/IS_SpacePerl}');
-    Error('\P{/a/IS_SpacePerl}');
+    Expect(1, 12288, '\p{ IS_XPERLSPACE}', "");
+    Expect(0, 12288, '\p{^ IS_XPERLSPACE}', "");
+    Expect(0, 12288, '\P{ IS_XPERLSPACE}', "");
+    Expect(1, 12288, '\P{^ IS_XPERLSPACE}', "");
+    Expect(0, 12289, '\p{ IS_XPERLSPACE}', "");
+    Expect(1, 12289, '\p{^ IS_XPERLSPACE}', "");
+    Expect(1, 12289, '\P{ IS_XPERLSPACE}', "");
+    Expect(0, 12289, '\P{^ IS_XPERLSPACE}', "");
+    Error('\p{:=	Is_SpacePerl}');
+    Error('\P{:=	Is_SpacePerl}');
     Expect(1, 12288, '\p{isspaceperl}', "");
     Expect(0, 12288, '\p{^isspaceperl}', "");
     Expect(0, 12288, '\P{isspaceperl}', "");
@@ -126103,14 +127319,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^isspaceperl}', "");
     Expect(1, 12289, '\P{isspaceperl}', "");
     Expect(0, 12289, '\P{^isspaceperl}', "");
-    Expect(1, 12288, '\p{	is_spaceperl}', "");
-    Expect(0, 12288, '\p{^	is_spaceperl}', "");
-    Expect(0, 12288, '\P{	is_spaceperl}', "");
-    Expect(1, 12288, '\P{^	is_spaceperl}', "");
-    Expect(0, 12289, '\p{	is_spaceperl}', "");
-    Expect(1, 12289, '\p{^	is_spaceperl}', "");
-    Expect(1, 12289, '\P{	is_spaceperl}', "");
-    Expect(0, 12289, '\P{^	is_spaceperl}', "");
+    Expect(1, 12288, '\p{	Is_spaceperl}', "");
+    Expect(0, 12288, '\p{^	Is_spaceperl}', "");
+    Expect(0, 12288, '\P{	Is_spaceperl}', "");
+    Expect(1, 12288, '\P{^	Is_spaceperl}', "");
+    Expect(0, 12289, '\p{	Is_spaceperl}', "");
+    Expect(1, 12289, '\p{^	Is_spaceperl}', "");
+    Expect(1, 12289, '\P{	Is_spaceperl}', "");
+    Expect(0, 12289, '\P{^	Is_spaceperl}', "");
     Error('\p{/a/XPosixUpper}');
     Error('\P{/a/XPosixUpper}');
     Expect(1, 127369, '\p{xposixupper}', "");
@@ -126121,16 +127337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^xposixupper}', "");
     Expect(1, 127370, '\P{xposixupper}', "");
     Expect(0, 127370, '\P{^xposixupper}', "");
-    Expect(1, 127369, '\p{_ xposixupper}', "");
-    Expect(0, 127369, '\p{^_ xposixupper}', "");
-    Expect(0, 127369, '\P{_ xposixupper}', "");
-    Expect(1, 127369, '\P{^_ xposixupper}', "");
-    Expect(0, 127370, '\p{_ xposixupper}', "");
-    Expect(1, 127370, '\p{^_ xposixupper}', "");
-    Expect(1, 127370, '\P{_ xposixupper}', "");
-    Expect(0, 127370, '\P{^_ xposixupper}', "");
-    Error('\p{--Is_XPOSIXUPPER/a/}');
-    Error('\P{--Is_XPOSIXUPPER/a/}');
+    Expect(1, 127369, '\p{_-XPosixUpper}', "");
+    Expect(0, 127369, '\p{^_-XPosixUpper}', "");
+    Expect(0, 127369, '\P{_-XPosixUpper}', "");
+    Expect(1, 127369, '\P{^_-XPosixUpper}', "");
+    Expect(0, 127370, '\p{_-XPosixUpper}', "");
+    Expect(1, 127370, '\p{^_-XPosixUpper}', "");
+    Expect(1, 127370, '\P{_-XPosixUpper}', "");
+    Expect(0, 127370, '\P{^_-XPosixUpper}', "");
+    Error('\p{_:=is_xposixupper}');
+    Error('\P{_:=is_xposixupper}');
     Expect(1, 127369, '\p{isxposixupper}', "");
     Expect(0, 127369, '\p{^isxposixupper}', "");
     Expect(0, 127369, '\P{isxposixupper}', "");
@@ -126139,16 +127355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^isxposixupper}', "");
     Expect(1, 127370, '\P{isxposixupper}', "");
     Expect(0, 127370, '\P{^isxposixupper}', "");
-    Expect(1, 127369, '\p{	 IS_XPOSIXUPPER}', "");
-    Expect(0, 127369, '\p{^	 IS_XPOSIXUPPER}', "");
-    Expect(0, 127369, '\P{	 IS_XPOSIXUPPER}', "");
-    Expect(1, 127369, '\P{^	 IS_XPOSIXUPPER}', "");
-    Expect(0, 127370, '\p{	 IS_XPOSIXUPPER}', "");
-    Expect(1, 127370, '\p{^	 IS_XPOSIXUPPER}', "");
-    Expect(1, 127370, '\P{	 IS_XPOSIXUPPER}', "");
-    Expect(0, 127370, '\P{^	 IS_XPOSIXUPPER}', "");
-    Error('\p{	UPPERCASE/a/}');
-    Error('\P{	UPPERCASE/a/}');
+    Expect(1, 127369, '\p{--IS_XPosixUpper}', "");
+    Expect(0, 127369, '\p{^--IS_XPosixUpper}', "");
+    Expect(0, 127369, '\P{--IS_XPosixUpper}', "");
+    Expect(1, 127369, '\P{^--IS_XPosixUpper}', "");
+    Expect(0, 127370, '\p{--IS_XPosixUpper}', "");
+    Expect(1, 127370, '\p{^--IS_XPosixUpper}', "");
+    Expect(1, 127370, '\P{--IS_XPosixUpper}', "");
+    Expect(0, 127370, '\P{^--IS_XPosixUpper}', "");
+    Error('\p{:=_	UPPERCASE}');
+    Error('\P{:=_	UPPERCASE}');
     Expect(1, 127369, '\p{uppercase}', "");
     Expect(0, 127369, '\p{^uppercase}', "");
     Expect(0, 127369, '\P{uppercase}', "");
@@ -126157,16 +127373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^uppercase}', "");
     Expect(1, 127370, '\P{uppercase}', "");
     Expect(0, 127370, '\P{^uppercase}', "");
-    Expect(1, 127369, '\p{_Uppercase}', "");
-    Expect(0, 127369, '\p{^_Uppercase}', "");
-    Expect(0, 127369, '\P{_Uppercase}', "");
-    Expect(1, 127369, '\P{^_Uppercase}', "");
-    Expect(0, 127370, '\p{_Uppercase}', "");
-    Expect(1, 127370, '\p{^_Uppercase}', "");
-    Expect(1, 127370, '\P{_Uppercase}', "");
-    Expect(0, 127370, '\P{^_Uppercase}', "");
-    Error('\p{ :=is_Uppercase}');
-    Error('\P{ :=is_Uppercase}');
+    Expect(1, 127369, '\p{_ uppercase}', "");
+    Expect(0, 127369, '\p{^_ uppercase}', "");
+    Expect(0, 127369, '\P{_ uppercase}', "");
+    Expect(1, 127369, '\P{^_ uppercase}', "");
+    Expect(0, 127370, '\p{_ uppercase}', "");
+    Expect(1, 127370, '\p{^_ uppercase}', "");
+    Expect(1, 127370, '\P{_ uppercase}', "");
+    Expect(0, 127370, '\P{^_ uppercase}', "");
+    Error('\p{/a/-is_Uppercase}');
+    Error('\P{/a/-is_Uppercase}');
     Expect(1, 127369, '\p{isuppercase}', "");
     Expect(0, 127369, '\p{^isuppercase}', "");
     Expect(0, 127369, '\P{isuppercase}', "");
@@ -126175,16 +127391,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^isuppercase}', "");
     Expect(1, 127370, '\P{isuppercase}', "");
     Expect(0, 127370, '\P{^isuppercase}', "");
-    Expect(1, 127369, '\p{_IS_Uppercase}', "");
-    Expect(0, 127369, '\p{^_IS_Uppercase}', "");
-    Expect(0, 127369, '\P{_IS_Uppercase}', "");
-    Expect(1, 127369, '\P{^_IS_Uppercase}', "");
-    Expect(0, 127370, '\p{_IS_Uppercase}', "");
-    Expect(1, 127370, '\p{^_IS_Uppercase}', "");
-    Expect(1, 127370, '\P{_IS_Uppercase}', "");
-    Expect(0, 127370, '\P{^_IS_Uppercase}', "");
-    Error('\p{- Upper/a/}');
-    Error('\P{- Upper/a/}');
+    Expect(1, 127369, '\p{-_IS_Uppercase}', "");
+    Expect(0, 127369, '\p{^-_IS_Uppercase}', "");
+    Expect(0, 127369, '\P{-_IS_Uppercase}', "");
+    Expect(1, 127369, '\P{^-_IS_Uppercase}', "");
+    Expect(0, 127370, '\p{-_IS_Uppercase}', "");
+    Expect(1, 127370, '\p{^-_IS_Uppercase}', "");
+    Expect(1, 127370, '\P{-_IS_Uppercase}', "");
+    Expect(0, 127370, '\P{^-_IS_Uppercase}', "");
+    Error('\p{	upper:=}');
+    Error('\P{	upper:=}');
     Expect(1, 127369, '\p{upper}', "");
     Expect(0, 127369, '\p{^upper}', "");
     Expect(0, 127369, '\P{upper}', "");
@@ -126193,16 +127409,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^upper}', "");
     Expect(1, 127370, '\P{upper}', "");
     Expect(0, 127370, '\P{^upper}', "");
-    Expect(1, 127369, '\p{		Upper}', "");
-    Expect(0, 127369, '\p{^		Upper}', "");
-    Expect(0, 127369, '\P{		Upper}', "");
-    Expect(1, 127369, '\P{^		Upper}', "");
-    Expect(0, 127370, '\p{		Upper}', "");
-    Expect(1, 127370, '\p{^		Upper}', "");
-    Expect(1, 127370, '\P{		Upper}', "");
-    Expect(0, 127370, '\P{^		Upper}', "");
-    Error('\p{ /a/Is_UPPER}');
-    Error('\P{ /a/Is_UPPER}');
+    Expect(1, 127369, '\p{	UPPER}', "");
+    Expect(0, 127369, '\p{^	UPPER}', "");
+    Expect(0, 127369, '\P{	UPPER}', "");
+    Expect(1, 127369, '\P{^	UPPER}', "");
+    Expect(0, 127370, '\p{	UPPER}', "");
+    Expect(1, 127370, '\p{^	UPPER}', "");
+    Expect(1, 127370, '\P{	UPPER}', "");
+    Expect(0, 127370, '\P{^	UPPER}', "");
+    Error('\p{-:=Is_upper}');
+    Error('\P{-:=Is_upper}');
     Expect(1, 127369, '\p{isupper}', "");
     Expect(0, 127369, '\p{^isupper}', "");
     Expect(0, 127369, '\P{isupper}', "");
@@ -126211,16 +127427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^isupper}', "");
     Expect(1, 127370, '\P{isupper}', "");
     Expect(0, 127370, '\P{^isupper}', "");
-    Expect(1, 127369, '\p{ 	Is_upper}', "");
-    Expect(0, 127369, '\p{^ 	Is_upper}', "");
-    Expect(0, 127369, '\P{ 	Is_upper}', "");
-    Expect(1, 127369, '\P{^ 	Is_upper}', "");
-    Expect(0, 127370, '\p{ 	Is_upper}', "");
-    Expect(1, 127370, '\p{^ 	Is_upper}', "");
-    Expect(1, 127370, '\P{ 	Is_upper}', "");
-    Expect(0, 127370, '\P{^ 	Is_upper}', "");
-    Error('\p{	:=Yezidi}');
-    Error('\P{	:=Yezidi}');
+    Expect(1, 127369, '\p{ IS_Upper}', "");
+    Expect(0, 127369, '\p{^ IS_Upper}', "");
+    Expect(0, 127369, '\P{ IS_Upper}', "");
+    Expect(1, 127369, '\P{^ IS_Upper}', "");
+    Expect(0, 127370, '\p{ IS_Upper}', "");
+    Expect(1, 127370, '\p{^ IS_Upper}', "");
+    Expect(1, 127370, '\P{ IS_Upper}', "");
+    Expect(0, 127370, '\P{^ IS_Upper}', "");
+    Error('\p{-:=Yezidi}');
+    Error('\P{-:=Yezidi}');
     Expect(1, 69297, '\p{yezidi}', "");
     Expect(0, 69297, '\p{^yezidi}', "");
     Expect(0, 69297, '\P{yezidi}', "");
@@ -126229,16 +127445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69298, '\p{^yezidi}', "");
     Expect(1, 69298, '\P{yezidi}', "");
     Expect(0, 69298, '\P{^yezidi}', "");
-    Expect(1, 69297, '\p{-Yezidi}', "");
-    Expect(0, 69297, '\p{^-Yezidi}', "");
-    Expect(0, 69297, '\P{-Yezidi}', "");
-    Expect(1, 69297, '\P{^-Yezidi}', "");
-    Expect(0, 69298, '\p{-Yezidi}', "");
-    Expect(1, 69298, '\p{^-Yezidi}', "");
-    Expect(1, 69298, '\P{-Yezidi}', "");
-    Expect(0, 69298, '\P{^-Yezidi}', "");
-    Error('\p{/a/	_is_Yezidi}');
-    Error('\P{/a/	_is_Yezidi}');
+    Expect(1, 69297, '\p{_-YEZIDI}', "");
+    Expect(0, 69297, '\p{^_-YEZIDI}', "");
+    Expect(0, 69297, '\P{_-YEZIDI}', "");
+    Expect(1, 69297, '\P{^_-YEZIDI}', "");
+    Expect(0, 69298, '\p{_-YEZIDI}', "");
+    Expect(1, 69298, '\p{^_-YEZIDI}', "");
+    Expect(1, 69298, '\P{_-YEZIDI}', "");
+    Expect(0, 69298, '\P{^_-YEZIDI}', "");
+    Error('\p{_/a/Is_yezidi}');
+    Error('\P{_/a/Is_yezidi}');
     Expect(1, 69297, '\p{isyezidi}', "");
     Expect(0, 69297, '\p{^isyezidi}', "");
     Expect(0, 69297, '\P{isyezidi}', "");
@@ -126247,16 +127463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69298, '\p{^isyezidi}', "");
     Expect(1, 69298, '\P{isyezidi}', "");
     Expect(0, 69298, '\P{^isyezidi}', "");
-    Expect(1, 69297, '\p{ Is_Yezidi}', "");
-    Expect(0, 69297, '\p{^ Is_Yezidi}', "");
-    Expect(0, 69297, '\P{ Is_Yezidi}', "");
-    Expect(1, 69297, '\P{^ Is_Yezidi}', "");
-    Expect(0, 69298, '\p{ Is_Yezidi}', "");
-    Expect(1, 69298, '\p{^ Is_Yezidi}', "");
-    Expect(1, 69298, '\P{ Is_Yezidi}', "");
-    Expect(0, 69298, '\P{^ Is_Yezidi}', "");
-    Error('\p{ _yezi/a/}');
-    Error('\P{ _yezi/a/}');
+    Expect(1, 69297, '\p{  Is_Yezidi}', "");
+    Expect(0, 69297, '\p{^  Is_Yezidi}', "");
+    Expect(0, 69297, '\P{  Is_Yezidi}', "");
+    Expect(1, 69297, '\P{^  Is_Yezidi}', "");
+    Expect(0, 69298, '\p{  Is_Yezidi}', "");
+    Expect(1, 69298, '\p{^  Is_Yezidi}', "");
+    Expect(1, 69298, '\P{  Is_Yezidi}', "");
+    Expect(0, 69298, '\P{^  Is_Yezidi}', "");
+    Error('\p{ 	Yezi:=}');
+    Error('\P{ 	Yezi:=}');
     Expect(1, 69297, '\p{yezi}', "");
     Expect(0, 69297, '\p{^yezi}', "");
     Expect(0, 69297, '\P{yezi}', "");
@@ -126265,16 +127481,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69298, '\p{^yezi}', "");
     Expect(1, 69298, '\P{yezi}', "");
     Expect(0, 69298, '\P{^yezi}', "");
-    Expect(1, 69297, '\p{_ Yezi}', "");
-    Expect(0, 69297, '\p{^_ Yezi}', "");
-    Expect(0, 69297, '\P{_ Yezi}', "");
-    Expect(1, 69297, '\P{^_ Yezi}', "");
-    Expect(0, 69298, '\p{_ Yezi}', "");
-    Expect(1, 69298, '\p{^_ Yezi}', "");
-    Expect(1, 69298, '\P{_ Yezi}', "");
-    Expect(0, 69298, '\P{^_ Yezi}', "");
-    Error('\p{ 	Is_Yezi/a/}');
-    Error('\P{ 	Is_Yezi/a/}');
+    Expect(1, 69297, '\p{-Yezi}', "");
+    Expect(0, 69297, '\p{^-Yezi}', "");
+    Expect(0, 69297, '\P{-Yezi}', "");
+    Expect(1, 69297, '\P{^-Yezi}', "");
+    Expect(0, 69298, '\p{-Yezi}', "");
+    Expect(1, 69298, '\p{^-Yezi}', "");
+    Expect(1, 69298, '\P{-Yezi}', "");
+    Expect(0, 69298, '\P{^-Yezi}', "");
+    Error('\p{:=-	IS_Yezi}');
+    Error('\P{:=-	IS_Yezi}');
     Expect(1, 69297, '\p{isyezi}', "");
     Expect(0, 69297, '\p{^isyezi}', "");
     Expect(0, 69297, '\P{isyezi}', "");
@@ -126283,16 +127499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69298, '\p{^isyezi}', "");
     Expect(1, 69298, '\P{isyezi}', "");
     Expect(0, 69298, '\P{^isyezi}', "");
-    Expect(1, 69297, '\p{-_IS_Yezi}', "");
-    Expect(0, 69297, '\p{^-_IS_Yezi}', "");
-    Expect(0, 69297, '\P{-_IS_Yezi}', "");
-    Expect(1, 69297, '\P{^-_IS_Yezi}', "");
-    Expect(0, 69298, '\p{-_IS_Yezi}', "");
-    Expect(1, 69298, '\p{^-_IS_Yezi}', "");
-    Expect(1, 69298, '\P{-_IS_Yezi}', "");
-    Expect(0, 69298, '\P{^-_IS_Yezi}', "");
-    Error('\p{:=	yi}');
-    Error('\P{:=	yi}');
+    Expect(1, 69297, '\p{ 	Is_YEZI}', "");
+    Expect(0, 69297, '\p{^ 	Is_YEZI}', "");
+    Expect(0, 69297, '\P{ 	Is_YEZI}', "");
+    Expect(1, 69297, '\P{^ 	Is_YEZI}', "");
+    Expect(0, 69298, '\p{ 	Is_YEZI}', "");
+    Expect(1, 69298, '\p{^ 	Is_YEZI}', "");
+    Expect(1, 69298, '\P{ 	Is_YEZI}', "");
+    Expect(0, 69298, '\P{^ 	Is_YEZI}', "");
+    Error('\p{:=	_YI}');
+    Error('\P{:=	_YI}');
     Expect(1, 65381, '\p{yi}', "");
     Expect(0, 65381, '\p{^yi}', "");
     Expect(0, 65381, '\P{yi}', "");
@@ -126301,16 +127517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65382, '\p{^yi}', "");
     Expect(1, 65382, '\P{yi}', "");
     Expect(0, 65382, '\P{^yi}', "");
-    Expect(1, 65381, '\p{	 Yi}', "");
-    Expect(0, 65381, '\p{^	 Yi}', "");
-    Expect(0, 65381, '\P{	 Yi}', "");
-    Expect(1, 65381, '\P{^	 Yi}', "");
-    Expect(0, 65382, '\p{	 Yi}', "");
-    Expect(1, 65382, '\p{^	 Yi}', "");
-    Expect(1, 65382, '\P{	 Yi}', "");
-    Expect(0, 65382, '\P{^	 Yi}', "");
-    Error('\p{:=-	Is_Yi}');
-    Error('\P{:=-	Is_Yi}');
+    Expect(1, 65381, '\p{- Yi}', "");
+    Expect(0, 65381, '\p{^- Yi}', "");
+    Expect(0, 65381, '\P{- Yi}', "");
+    Expect(1, 65381, '\P{^- Yi}', "");
+    Expect(0, 65382, '\p{- Yi}', "");
+    Expect(1, 65382, '\p{^- Yi}', "");
+    Expect(1, 65382, '\P{- Yi}', "");
+    Expect(0, 65382, '\P{^- Yi}', "");
+    Error('\p{:=is_Yi}');
+    Error('\P{:=is_Yi}');
     Expect(1, 65381, '\p{isyi}', "");
     Expect(0, 65381, '\p{^isyi}', "");
     Expect(0, 65381, '\P{isyi}', "");
@@ -126319,16 +127535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65382, '\p{^isyi}', "");
     Expect(1, 65382, '\P{isyi}', "");
     Expect(0, 65382, '\P{^isyi}', "");
-    Expect(1, 65381, '\p{- is_yi}', "");
-    Expect(0, 65381, '\p{^- is_yi}', "");
-    Expect(0, 65381, '\P{- is_yi}', "");
-    Expect(1, 65381, '\P{^- is_yi}', "");
-    Expect(0, 65382, '\p{- is_yi}', "");
-    Expect(1, 65382, '\p{^- is_yi}', "");
-    Expect(1, 65382, '\P{- is_yi}', "");
-    Expect(0, 65382, '\P{^- is_yi}', "");
-    Error('\p{-:=yiii}');
-    Error('\P{-:=yiii}');
+    Expect(1, 65381, '\p{_ Is_yi}', "");
+    Expect(0, 65381, '\p{^_ Is_yi}', "");
+    Expect(0, 65381, '\P{_ Is_yi}', "");
+    Expect(1, 65381, '\P{^_ Is_yi}', "");
+    Expect(0, 65382, '\p{_ Is_yi}', "");
+    Expect(1, 65382, '\p{^_ Is_yi}', "");
+    Expect(1, 65382, '\P{_ Is_yi}', "");
+    Expect(0, 65382, '\P{^_ Is_yi}', "");
+    Error('\p{/a/_	Yiii}');
+    Error('\P{/a/_	Yiii}');
     Expect(1, 65381, '\p{yiii}', "");
     Expect(0, 65381, '\p{^yiii}', "");
     Expect(0, 65381, '\P{yiii}', "");
@@ -126337,16 +127553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65382, '\p{^yiii}', "");
     Expect(1, 65382, '\P{yiii}', "");
     Expect(0, 65382, '\P{^yiii}', "");
-    Expect(1, 65381, '\p{  YIII}', "");
-    Expect(0, 65381, '\p{^  YIII}', "");
-    Expect(0, 65381, '\P{  YIII}', "");
-    Expect(1, 65381, '\P{^  YIII}', "");
-    Expect(0, 65382, '\p{  YIII}', "");
-    Expect(1, 65382, '\p{^  YIII}', "");
-    Expect(1, 65382, '\P{  YIII}', "");
-    Expect(0, 65382, '\P{^  YIII}', "");
-    Error('\p{/a/  Is_yiii}');
-    Error('\P{/a/  Is_yiii}');
+    Expect(1, 65381, '\p{ Yiii}', "");
+    Expect(0, 65381, '\p{^ Yiii}', "");
+    Expect(0, 65381, '\P{ Yiii}', "");
+    Expect(1, 65381, '\P{^ Yiii}', "");
+    Expect(0, 65382, '\p{ Yiii}', "");
+    Expect(1, 65382, '\p{^ Yiii}', "");
+    Expect(1, 65382, '\P{ Yiii}', "");
+    Expect(0, 65382, '\P{^ Yiii}', "");
+    Error('\p{:=IS_YIII}');
+    Error('\P{:=IS_YIII}');
     Expect(1, 65381, '\p{isyiii}', "");
     Expect(0, 65381, '\p{^isyiii}', "");
     Expect(0, 65381, '\P{isyiii}', "");
@@ -126355,16 +127571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65382, '\p{^isyiii}', "");
     Expect(1, 65382, '\P{isyiii}', "");
     Expect(0, 65382, '\P{^isyiii}', "");
-    Expect(1, 65381, '\p{	Is_Yiii}', "");
-    Expect(0, 65381, '\p{^	Is_Yiii}', "");
-    Expect(0, 65381, '\P{	Is_Yiii}', "");
-    Expect(1, 65381, '\P{^	Is_Yiii}', "");
-    Expect(0, 65382, '\p{	Is_Yiii}', "");
-    Expect(1, 65382, '\p{^	Is_Yiii}', "");
-    Expect(1, 65382, '\P{	Is_Yiii}', "");
-    Expect(0, 65382, '\P{^	Is_Yiii}', "");
-    Error('\p{-/a/Yi_RADICALS}');
-    Error('\P{-/a/Yi_RADICALS}');
+    Expect(1, 65381, '\p{_ IS_Yiii}', "");
+    Expect(0, 65381, '\p{^_ IS_Yiii}', "");
+    Expect(0, 65381, '\P{_ IS_Yiii}', "");
+    Expect(1, 65381, '\P{^_ IS_Yiii}', "");
+    Expect(0, 65382, '\p{_ IS_Yiii}', "");
+    Expect(1, 65382, '\p{^_ IS_Yiii}', "");
+    Expect(1, 65382, '\P{_ IS_Yiii}', "");
+    Expect(0, 65382, '\P{^_ IS_Yiii}', "");
+    Error('\p{_yi_RADICALS/a/}');
+    Error('\P{_yi_RADICALS/a/}');
     Expect(1, 42191, '\p{yiradicals}', "");
     Expect(0, 42191, '\p{^yiradicals}', "");
     Expect(0, 42191, '\P{yiradicals}', "");
@@ -126373,16 +127589,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42192, '\p{^yiradicals}', "");
     Expect(1, 42192, '\P{yiradicals}', "");
     Expect(0, 42192, '\P{^yiradicals}', "");
-    Expect(1, 42191, '\p{ -YI_Radicals}', "");
-    Expect(0, 42191, '\p{^ -YI_Radicals}', "");
-    Expect(0, 42191, '\P{ -YI_Radicals}', "");
-    Expect(1, 42191, '\P{^ -YI_Radicals}', "");
-    Expect(0, 42192, '\p{ -YI_Radicals}', "");
-    Expect(1, 42192, '\p{^ -YI_Radicals}', "");
-    Expect(1, 42192, '\P{ -YI_Radicals}', "");
-    Expect(0, 42192, '\P{^ -YI_Radicals}', "");
-    Error('\p{-/a/IS_Yi_Radicals}');
-    Error('\P{-/a/IS_Yi_Radicals}');
+    Expect(1, 42191, '\p{-	Yi_Radicals}', "");
+    Expect(0, 42191, '\p{^-	Yi_Radicals}', "");
+    Expect(0, 42191, '\P{-	Yi_Radicals}', "");
+    Expect(1, 42191, '\P{^-	Yi_Radicals}', "");
+    Expect(0, 42192, '\p{-	Yi_Radicals}', "");
+    Expect(1, 42192, '\p{^-	Yi_Radicals}', "");
+    Expect(1, 42192, '\P{-	Yi_Radicals}', "");
+    Expect(0, 42192, '\P{^-	Yi_Radicals}', "");
+    Error('\p{:=	_Is_Yi_Radicals}');
+    Error('\P{:=	_Is_Yi_Radicals}');
     Expect(1, 42191, '\p{isyiradicals}', "");
     Expect(0, 42191, '\p{^isyiradicals}', "");
     Expect(0, 42191, '\P{isyiradicals}', "");
@@ -126391,16 +127607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42192, '\p{^isyiradicals}', "");
     Expect(1, 42192, '\P{isyiradicals}', "");
     Expect(0, 42192, '\P{^isyiradicals}', "");
-    Expect(1, 42191, '\p{	 Is_Yi_Radicals}', "");
-    Expect(0, 42191, '\p{^	 Is_Yi_Radicals}', "");
-    Expect(0, 42191, '\P{	 Is_Yi_Radicals}', "");
-    Expect(1, 42191, '\P{^	 Is_Yi_Radicals}', "");
-    Expect(0, 42192, '\p{	 Is_Yi_Radicals}', "");
-    Expect(1, 42192, '\p{^	 Is_Yi_Radicals}', "");
-    Expect(1, 42192, '\P{	 Is_Yi_Radicals}', "");
-    Expect(0, 42192, '\P{^	 Is_Yi_Radicals}', "");
-    Error('\p{/a/	 In_YI_radicals}');
-    Error('\P{/a/	 In_YI_radicals}');
+    Expect(1, 42191, '\p{	 IS_YI_Radicals}', "");
+    Expect(0, 42191, '\p{^	 IS_YI_Radicals}', "");
+    Expect(0, 42191, '\P{	 IS_YI_Radicals}', "");
+    Expect(1, 42191, '\P{^	 IS_YI_Radicals}', "");
+    Expect(0, 42192, '\p{	 IS_YI_Radicals}', "");
+    Expect(1, 42192, '\p{^	 IS_YI_Radicals}', "");
+    Expect(1, 42192, '\P{	 IS_YI_Radicals}', "");
+    Expect(0, 42192, '\P{^	 IS_YI_Radicals}', "");
+    Error('\p{:=	_In_yi_Radicals}');
+    Error('\P{:=	_In_yi_Radicals}');
     Expect(1, 42191, '\p{inyiradicals}', "");
     Expect(0, 42191, '\p{^inyiradicals}', "");
     Expect(0, 42191, '\P{inyiradicals}', "");
@@ -126409,16 +127625,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42192, '\p{^inyiradicals}', "");
     Expect(1, 42192, '\P{inyiradicals}', "");
     Expect(0, 42192, '\P{^inyiradicals}', "");
-    Expect(1, 42191, '\p{_-IN_Yi_Radicals}', "");
-    Expect(0, 42191, '\p{^_-IN_Yi_Radicals}', "");
-    Expect(0, 42191, '\P{_-IN_Yi_Radicals}', "");
-    Expect(1, 42191, '\P{^_-IN_Yi_Radicals}', "");
-    Expect(0, 42192, '\p{_-IN_Yi_Radicals}', "");
-    Expect(1, 42192, '\p{^_-IN_Yi_Radicals}', "");
-    Expect(1, 42192, '\P{_-IN_Yi_Radicals}', "");
-    Expect(0, 42192, '\P{^_-IN_Yi_Radicals}', "");
-    Error('\p{ Yi_syllables:=}');
-    Error('\P{ Yi_syllables:=}');
+    Expect(1, 42191, '\p{ -in_Yi_Radicals}', "");
+    Expect(0, 42191, '\p{^ -in_Yi_Radicals}', "");
+    Expect(0, 42191, '\P{ -in_Yi_Radicals}', "");
+    Expect(1, 42191, '\P{^ -in_Yi_Radicals}', "");
+    Expect(0, 42192, '\p{ -in_Yi_Radicals}', "");
+    Expect(1, 42192, '\p{^ -in_Yi_Radicals}', "");
+    Expect(1, 42192, '\P{ -in_Yi_Radicals}', "");
+    Expect(0, 42192, '\P{^ -in_Yi_Radicals}', "");
+    Error('\p{ /a/Yi_Syllables}');
+    Error('\P{ /a/Yi_Syllables}');
     Expect(1, 42127, '\p{yisyllables}', "");
     Expect(0, 42127, '\p{^yisyllables}', "");
     Expect(0, 42127, '\P{yisyllables}', "");
@@ -126427,16 +127643,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42128, '\p{^yisyllables}', "");
     Expect(1, 42128, '\P{yisyllables}', "");
     Expect(0, 42128, '\P{^yisyllables}', "");
-    Expect(1, 42127, '\p{ yi_SYLLABLES}', "");
-    Expect(0, 42127, '\p{^ yi_SYLLABLES}', "");
-    Expect(0, 42127, '\P{ yi_SYLLABLES}', "");
-    Expect(1, 42127, '\P{^ yi_SYLLABLES}', "");
-    Expect(0, 42128, '\p{ yi_SYLLABLES}', "");
-    Expect(1, 42128, '\p{^ yi_SYLLABLES}', "");
-    Expect(1, 42128, '\P{ yi_SYLLABLES}', "");
-    Expect(0, 42128, '\P{^ yi_SYLLABLES}', "");
-    Error('\p{-:=is_YI_syllables}');
-    Error('\P{-:=is_YI_syllables}');
+    Expect(1, 42127, '\p{_-Yi_SYLLABLES}', "");
+    Expect(0, 42127, '\p{^_-Yi_SYLLABLES}', "");
+    Expect(0, 42127, '\P{_-Yi_SYLLABLES}', "");
+    Expect(1, 42127, '\P{^_-Yi_SYLLABLES}', "");
+    Expect(0, 42128, '\p{_-Yi_SYLLABLES}', "");
+    Expect(1, 42128, '\p{^_-Yi_SYLLABLES}', "");
+    Expect(1, 42128, '\P{_-Yi_SYLLABLES}', "");
+    Expect(0, 42128, '\P{^_-Yi_SYLLABLES}', "");
+    Error('\p{/a/	-Is_Yi_Syllables}');
+    Error('\P{/a/	-Is_Yi_Syllables}');
     Expect(1, 42127, '\p{isyisyllables}', "");
     Expect(0, 42127, '\p{^isyisyllables}', "");
     Expect(0, 42127, '\P{isyisyllables}', "");
@@ -126445,16 +127661,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42128, '\p{^isyisyllables}', "");
     Expect(1, 42128, '\P{isyisyllables}', "");
     Expect(0, 42128, '\P{^isyisyllables}', "");
-    Expect(1, 42127, '\p{- Is_yi_Syllables}', "");
-    Expect(0, 42127, '\p{^- Is_yi_Syllables}', "");
-    Expect(0, 42127, '\P{- Is_yi_Syllables}', "");
-    Expect(1, 42127, '\P{^- Is_yi_Syllables}', "");
-    Expect(0, 42128, '\p{- Is_yi_Syllables}', "");
-    Expect(1, 42128, '\p{^- Is_yi_Syllables}', "");
-    Expect(1, 42128, '\P{- Is_yi_Syllables}', "");
-    Expect(0, 42128, '\P{^- Is_yi_Syllables}', "");
-    Error('\p{/a/In_Yi_syllables}');
-    Error('\P{/a/In_Yi_syllables}');
+    Expect(1, 42127, '\p{	Is_Yi_Syllables}', "");
+    Expect(0, 42127, '\p{^	Is_Yi_Syllables}', "");
+    Expect(0, 42127, '\P{	Is_Yi_Syllables}', "");
+    Expect(1, 42127, '\P{^	Is_Yi_Syllables}', "");
+    Expect(0, 42128, '\p{	Is_Yi_Syllables}', "");
+    Expect(1, 42128, '\p{^	Is_Yi_Syllables}', "");
+    Expect(1, 42128, '\P{	Is_Yi_Syllables}', "");
+    Expect(0, 42128, '\P{^	Is_Yi_Syllables}', "");
+    Error('\p{:=  in_YI_Syllables}');
+    Error('\P{:=  in_YI_Syllables}');
     Expect(1, 42127, '\p{inyisyllables}', "");
     Expect(0, 42127, '\p{^inyisyllables}', "");
     Expect(0, 42127, '\P{inyisyllables}', "");
@@ -126463,16 +127679,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42128, '\p{^inyisyllables}', "");
     Expect(1, 42128, '\P{inyisyllables}', "");
     Expect(0, 42128, '\P{^inyisyllables}', "");
-    Expect(1, 42127, '\p{-_IN_yi_syllables}', "");
-    Expect(0, 42127, '\p{^-_IN_yi_syllables}', "");
-    Expect(0, 42127, '\P{-_IN_yi_syllables}', "");
-    Expect(1, 42127, '\P{^-_IN_yi_syllables}', "");
-    Expect(0, 42128, '\p{-_IN_yi_syllables}', "");
-    Expect(1, 42128, '\p{^-_IN_yi_syllables}', "");
-    Expect(1, 42128, '\P{-_IN_yi_syllables}', "");
-    Expect(0, 42128, '\P{^-_IN_yi_syllables}', "");
-    Error('\p{:=_YIJING_HEXAGRAM_symbols}');
-    Error('\P{:=_YIJING_HEXAGRAM_symbols}');
+    Expect(1, 42127, '\p{	-In_Yi_Syllables}', "");
+    Expect(0, 42127, '\p{^	-In_Yi_Syllables}', "");
+    Expect(0, 42127, '\P{	-In_Yi_Syllables}', "");
+    Expect(1, 42127, '\P{^	-In_Yi_Syllables}', "");
+    Expect(0, 42128, '\p{	-In_Yi_Syllables}', "");
+    Expect(1, 42128, '\p{^	-In_Yi_Syllables}', "");
+    Expect(1, 42128, '\P{	-In_Yi_Syllables}', "");
+    Expect(0, 42128, '\P{^	-In_Yi_Syllables}', "");
+    Error('\p{ Yijing_HEXAGRAM_Symbols/a/}');
+    Error('\P{ Yijing_HEXAGRAM_Symbols/a/}');
     Expect(1, 19967, '\p{yijinghexagramsymbols}', "");
     Expect(0, 19967, '\p{^yijinghexagramsymbols}', "");
     Expect(0, 19967, '\P{yijinghexagramsymbols}', "");
@@ -126481,16 +127697,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 19968, '\p{^yijinghexagramsymbols}', "");
     Expect(1, 19968, '\P{yijinghexagramsymbols}', "");
     Expect(0, 19968, '\P{^yijinghexagramsymbols}', "");
-    Expect(1, 19967, '\p{__Yijing_HEXAGRAM_symbols}', "");
-    Expect(0, 19967, '\p{^__Yijing_HEXAGRAM_symbols}', "");
-    Expect(0, 19967, '\P{__Yijing_HEXAGRAM_symbols}', "");
-    Expect(1, 19967, '\P{^__Yijing_HEXAGRAM_symbols}', "");
-    Expect(0, 19968, '\p{__Yijing_HEXAGRAM_symbols}', "");
-    Expect(1, 19968, '\p{^__Yijing_HEXAGRAM_symbols}', "");
-    Expect(1, 19968, '\P{__Yijing_HEXAGRAM_symbols}', "");
-    Expect(0, 19968, '\P{^__Yijing_HEXAGRAM_symbols}', "");
-    Error('\p{-	Is_Yijing_hexagram_symbols:=}');
-    Error('\P{-	Is_Yijing_hexagram_symbols:=}');
+    Expect(1, 19967, '\p{	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(0, 19967, '\p{^	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(0, 19967, '\P{	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(1, 19967, '\P{^	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(0, 19968, '\p{	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(1, 19968, '\p{^	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(1, 19968, '\P{	_YIJING_HEXAGRAM_Symbols}', "");
+    Expect(0, 19968, '\P{^	_YIJING_HEXAGRAM_Symbols}', "");
+    Error('\p{ 	IS_Yijing_hexagram_SYMBOLS:=}');
+    Error('\P{ 	IS_Yijing_hexagram_SYMBOLS:=}');
     Expect(1, 19967, '\p{isyijinghexagramsymbols}', "");
     Expect(0, 19967, '\p{^isyijinghexagramsymbols}', "");
     Expect(0, 19967, '\P{isyijinghexagramsymbols}', "");
@@ -126499,16 +127715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 19968, '\p{^isyijinghexagramsymbols}', "");
     Expect(1, 19968, '\P{isyijinghexagramsymbols}', "");
     Expect(0, 19968, '\P{^isyijinghexagramsymbols}', "");
-    Expect(1, 19967, '\p{		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(0, 19967, '\p{^		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(0, 19967, '\P{		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(1, 19967, '\P{^		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(0, 19968, '\p{		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(1, 19968, '\p{^		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(1, 19968, '\P{		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Expect(0, 19968, '\P{^		IS_YIJING_HEXAGRAM_SYMBOLS}', "");
-    Error('\p{/a/_	In_yijing_HEXAGRAM_symbols}');
-    Error('\P{/a/_	In_yijing_HEXAGRAM_symbols}');
+    Expect(1, 19967, '\p{_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(0, 19967, '\p{^_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(0, 19967, '\P{_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(1, 19967, '\P{^_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(0, 19968, '\p{_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(1, 19968, '\p{^_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(1, 19968, '\P{_IS_yijing_Hexagram_SYMBOLS}', "");
+    Expect(0, 19968, '\P{^_IS_yijing_Hexagram_SYMBOLS}', "");
+    Error('\p{ _In_Yijing_HEXAGRAM_Symbols:=}');
+    Error('\P{ _In_Yijing_HEXAGRAM_Symbols:=}');
     Expect(1, 19967, '\p{inyijinghexagramsymbols}', "");
     Expect(0, 19967, '\p{^inyijinghexagramsymbols}', "");
     Expect(0, 19967, '\P{inyijinghexagramsymbols}', "");
@@ -126517,16 +127733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 19968, '\p{^inyijinghexagramsymbols}', "");
     Expect(1, 19968, '\P{inyijinghexagramsymbols}', "");
     Expect(0, 19968, '\P{^inyijinghexagramsymbols}', "");
-    Expect(1, 19967, '\p{- In_YIJING_Hexagram_Symbols}', "");
-    Expect(0, 19967, '\p{^- In_YIJING_Hexagram_Symbols}', "");
-    Expect(0, 19967, '\P{- In_YIJING_Hexagram_Symbols}', "");
-    Expect(1, 19967, '\P{^- In_YIJING_Hexagram_Symbols}', "");
-    Expect(0, 19968, '\p{- In_YIJING_Hexagram_Symbols}', "");
-    Expect(1, 19968, '\p{^- In_YIJING_Hexagram_Symbols}', "");
-    Expect(1, 19968, '\P{- In_YIJING_Hexagram_Symbols}', "");
-    Expect(0, 19968, '\P{^- In_YIJING_Hexagram_Symbols}', "");
-    Error('\p{	-yijing/a/}');
-    Error('\P{	-yijing/a/}');
+    Expect(1, 19967, '\p{		In_Yijing_Hexagram_Symbols}', "");
+    Expect(0, 19967, '\p{^		In_Yijing_Hexagram_Symbols}', "");
+    Expect(0, 19967, '\P{		In_Yijing_Hexagram_Symbols}', "");
+    Expect(1, 19967, '\P{^		In_Yijing_Hexagram_Symbols}', "");
+    Expect(0, 19968, '\p{		In_Yijing_Hexagram_Symbols}', "");
+    Expect(1, 19968, '\p{^		In_Yijing_Hexagram_Symbols}', "");
+    Expect(1, 19968, '\P{		In_Yijing_Hexagram_Symbols}', "");
+    Expect(0, 19968, '\P{^		In_Yijing_Hexagram_Symbols}', "");
+    Error('\p{_/a/YIJING}');
+    Error('\P{_/a/YIJING}');
     Expect(1, 19967, '\p{yijing}', "");
     Expect(0, 19967, '\p{^yijing}', "");
     Expect(0, 19967, '\P{yijing}', "");
@@ -126535,16 +127751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 19968, '\p{^yijing}', "");
     Expect(1, 19968, '\P{yijing}', "");
     Expect(0, 19968, '\P{^yijing}', "");
-    Expect(1, 19967, '\p{	yijing}', "");
-    Expect(0, 19967, '\p{^	yijing}', "");
-    Expect(0, 19967, '\P{	yijing}', "");
-    Expect(1, 19967, '\P{^	yijing}', "");
-    Expect(0, 19968, '\p{	yijing}', "");
-    Expect(1, 19968, '\p{^	yijing}', "");
-    Expect(1, 19968, '\P{	yijing}', "");
-    Expect(0, 19968, '\P{^	yijing}', "");
-    Error('\p{:= 	Is_Yijing}');
-    Error('\P{:= 	Is_Yijing}');
+    Expect(1, 19967, '\p{		Yijing}', "");
+    Expect(0, 19967, '\p{^		Yijing}', "");
+    Expect(0, 19967, '\P{		Yijing}', "");
+    Expect(1, 19967, '\P{^		Yijing}', "");
+    Expect(0, 19968, '\p{		Yijing}', "");
+    Expect(1, 19968, '\p{^		Yijing}', "");
+    Expect(1, 19968, '\P{		Yijing}', "");
+    Expect(0, 19968, '\P{^		Yijing}', "");
+    Error('\p{/a/ IS_Yijing}');
+    Error('\P{/a/ IS_Yijing}');
     Expect(1, 19967, '\p{isyijing}', "");
     Expect(0, 19967, '\p{^isyijing}', "");
     Expect(0, 19967, '\P{isyijing}', "");
@@ -126553,16 +127769,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 19968, '\p{^isyijing}', "");
     Expect(1, 19968, '\P{isyijing}', "");
     Expect(0, 19968, '\P{^isyijing}', "");
-    Expect(1, 19967, '\p{ -is_Yijing}', "");
-    Expect(0, 19967, '\p{^ -is_Yijing}', "");
-    Expect(0, 19967, '\P{ -is_Yijing}', "");
-    Expect(1, 19967, '\P{^ -is_Yijing}', "");
-    Expect(0, 19968, '\p{ -is_Yijing}', "");
-    Expect(1, 19968, '\p{^ -is_Yijing}', "");
-    Expect(1, 19968, '\P{ -is_Yijing}', "");
-    Expect(0, 19968, '\P{^ -is_Yijing}', "");
-    Error('\p{ /a/In_yijing}');
-    Error('\P{ /a/In_yijing}');
+    Expect(1, 19967, '\p{-is_Yijing}', "");
+    Expect(0, 19967, '\p{^-is_Yijing}', "");
+    Expect(0, 19967, '\P{-is_Yijing}', "");
+    Expect(1, 19967, '\P{^-is_Yijing}', "");
+    Expect(0, 19968, '\p{-is_Yijing}', "");
+    Expect(1, 19968, '\p{^-is_Yijing}', "");
+    Expect(1, 19968, '\P{-is_Yijing}', "");
+    Expect(0, 19968, '\P{^-is_Yijing}', "");
+    Error('\p{ 	In_YIJING:=}');
+    Error('\P{ 	In_YIJING:=}');
     Expect(1, 19967, '\p{inyijing}', "");
     Expect(0, 19967, '\p{^inyijing}', "");
     Expect(0, 19967, '\P{inyijing}', "");
@@ -126571,16 +127787,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 19968, '\p{^inyijing}', "");
     Expect(1, 19968, '\P{inyijing}', "");
     Expect(0, 19968, '\P{^inyijing}', "");
-    Expect(1, 19967, '\p{-In_Yijing}', "");
-    Expect(0, 19967, '\p{^-In_Yijing}', "");
-    Expect(0, 19967, '\P{-In_Yijing}', "");
-    Expect(1, 19967, '\P{^-In_Yijing}', "");
-    Expect(0, 19968, '\p{-In_Yijing}', "");
-    Expect(1, 19968, '\p{^-In_Yijing}', "");
-    Expect(1, 19968, '\P{-In_Yijing}', "");
-    Expect(0, 19968, '\P{^-In_Yijing}', "");
-    Error('\p{/a/ -Zanabazar_SQUARE}');
-    Error('\P{/a/ -Zanabazar_SQUARE}');
+    Expect(1, 19967, '\p{- In_YIJING}', "");
+    Expect(0, 19967, '\p{^- In_YIJING}', "");
+    Expect(0, 19967, '\P{- In_YIJING}', "");
+    Expect(1, 19967, '\P{^- In_YIJING}', "");
+    Expect(0, 19968, '\p{- In_YIJING}', "");
+    Expect(1, 19968, '\p{^- In_YIJING}', "");
+    Expect(1, 19968, '\P{- In_YIJING}', "");
+    Expect(0, 19968, '\P{^- In_YIJING}', "");
+    Error('\p{-/a/Zanabazar_square}');
+    Error('\P{-/a/Zanabazar_square}');
     Expect(1, 72263, '\p{zanabazarsquare}', "");
     Expect(0, 72263, '\p{^zanabazarsquare}', "");
     Expect(0, 72263, '\P{zanabazarsquare}', "");
@@ -126589,16 +127805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^zanabazarsquare}', "");
     Expect(1, 72264, '\P{zanabazarsquare}', "");
     Expect(0, 72264, '\P{^zanabazarsquare}', "");
-    Expect(1, 72263, '\p{	Zanabazar_Square}', "");
-    Expect(0, 72263, '\p{^	Zanabazar_Square}', "");
-    Expect(0, 72263, '\P{	Zanabazar_Square}', "");
-    Expect(1, 72263, '\P{^	Zanabazar_Square}', "");
-    Expect(0, 72264, '\p{	Zanabazar_Square}', "");
-    Expect(1, 72264, '\p{^	Zanabazar_Square}', "");
-    Expect(1, 72264, '\P{	Zanabazar_Square}', "");
-    Expect(0, 72264, '\P{^	Zanabazar_Square}', "");
-    Error('\p{/a/--Is_ZANABAZAR_Square}');
-    Error('\P{/a/--Is_ZANABAZAR_Square}');
+    Expect(1, 72263, '\p{	-ZANABAZAR_Square}', "");
+    Expect(0, 72263, '\p{^	-ZANABAZAR_Square}', "");
+    Expect(0, 72263, '\P{	-ZANABAZAR_Square}', "");
+    Expect(1, 72263, '\P{^	-ZANABAZAR_Square}', "");
+    Expect(0, 72264, '\p{	-ZANABAZAR_Square}', "");
+    Expect(1, 72264, '\p{^	-ZANABAZAR_Square}', "");
+    Expect(1, 72264, '\P{	-ZANABAZAR_Square}', "");
+    Expect(0, 72264, '\P{^	-ZANABAZAR_Square}', "");
+    Error('\p{_/a/IS_zanabazar_square}');
+    Error('\P{_/a/IS_zanabazar_square}');
     Expect(1, 72263, '\p{iszanabazarsquare}', "");
     Expect(0, 72263, '\p{^iszanabazarsquare}', "");
     Expect(0, 72263, '\P{iszanabazarsquare}', "");
@@ -126607,16 +127823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^iszanabazarsquare}', "");
     Expect(1, 72264, '\P{iszanabazarsquare}', "");
     Expect(0, 72264, '\P{^iszanabazarsquare}', "");
-    Expect(1, 72263, '\p{_is_Zanabazar_square}', "");
-    Expect(0, 72263, '\p{^_is_Zanabazar_square}', "");
-    Expect(0, 72263, '\P{_is_Zanabazar_square}', "");
-    Expect(1, 72263, '\P{^_is_Zanabazar_square}', "");
-    Expect(0, 72264, '\p{_is_Zanabazar_square}', "");
-    Expect(1, 72264, '\p{^_is_Zanabazar_square}', "");
-    Expect(1, 72264, '\P{_is_Zanabazar_square}', "");
-    Expect(0, 72264, '\P{^_is_Zanabazar_square}', "");
-    Error('\p{:=  zanb}');
-    Error('\P{:=  zanb}');
+    Expect(1, 72263, '\p{ Is_ZANABAZAR_square}', "");
+    Expect(0, 72263, '\p{^ Is_ZANABAZAR_square}', "");
+    Expect(0, 72263, '\P{ Is_ZANABAZAR_square}', "");
+    Expect(1, 72263, '\P{^ Is_ZANABAZAR_square}', "");
+    Expect(0, 72264, '\p{ Is_ZANABAZAR_square}', "");
+    Expect(1, 72264, '\p{^ Is_ZANABAZAR_square}', "");
+    Expect(1, 72264, '\P{ Is_ZANABAZAR_square}', "");
+    Expect(0, 72264, '\P{^ Is_ZANABAZAR_square}', "");
+    Error('\p{/a/__Zanb}');
+    Error('\P{/a/__Zanb}');
     Expect(1, 72263, '\p{zanb}', "");
     Expect(0, 72263, '\p{^zanb}', "");
     Expect(0, 72263, '\P{zanb}', "");
@@ -126625,16 +127841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^zanb}', "");
     Expect(1, 72264, '\P{zanb}', "");
     Expect(0, 72264, '\P{^zanb}', "");
-    Expect(1, 72263, '\p{	Zanb}', "");
-    Expect(0, 72263, '\p{^	Zanb}', "");
-    Expect(0, 72263, '\P{	Zanb}', "");
-    Expect(1, 72263, '\P{^	Zanb}', "");
-    Expect(0, 72264, '\p{	Zanb}', "");
-    Expect(1, 72264, '\p{^	Zanb}', "");
-    Expect(1, 72264, '\P{	Zanb}', "");
-    Expect(0, 72264, '\P{^	Zanb}', "");
-    Error('\p{_/a/IS_Zanb}');
-    Error('\P{_/a/IS_Zanb}');
+    Expect(1, 72263, '\p{_-Zanb}', "");
+    Expect(0, 72263, '\p{^_-Zanb}', "");
+    Expect(0, 72263, '\P{_-Zanb}', "");
+    Expect(1, 72263, '\P{^_-Zanb}', "");
+    Expect(0, 72264, '\p{_-Zanb}', "");
+    Expect(1, 72264, '\p{^_-Zanb}', "");
+    Expect(1, 72264, '\P{_-Zanb}', "");
+    Expect(0, 72264, '\P{^_-Zanb}', "");
+    Error('\p{:= 	Is_zanb}');
+    Error('\P{:= 	Is_zanb}');
     Expect(1, 72263, '\p{iszanb}', "");
     Expect(0, 72263, '\p{^iszanb}', "");
     Expect(0, 72263, '\P{iszanb}', "");
@@ -126643,16 +127859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^iszanb}', "");
     Expect(1, 72264, '\P{iszanb}', "");
     Expect(0, 72264, '\P{^iszanb}', "");
-    Expect(1, 72263, '\p{	 Is_Zanb}', "");
-    Expect(0, 72263, '\p{^	 Is_Zanb}', "");
-    Expect(0, 72263, '\P{	 Is_Zanb}', "");
-    Expect(1, 72263, '\P{^	 Is_Zanb}', "");
-    Expect(0, 72264, '\p{	 Is_Zanb}', "");
-    Expect(1, 72264, '\p{^	 Is_Zanb}', "");
-    Expect(1, 72264, '\P{	 Is_Zanb}', "");
-    Expect(0, 72264, '\P{^	 Is_Zanb}', "");
-    Error('\p{	-Znamenny_musical_notation/a/}');
-    Error('\P{	-Znamenny_musical_notation/a/}');
+    Expect(1, 72263, '\p{-IS_Zanb}', "");
+    Expect(0, 72263, '\p{^-IS_Zanb}', "");
+    Expect(0, 72263, '\P{-IS_Zanb}', "");
+    Expect(1, 72263, '\P{^-IS_Zanb}', "");
+    Expect(0, 72264, '\p{-IS_Zanb}', "");
+    Expect(1, 72264, '\p{^-IS_Zanb}', "");
+    Expect(1, 72264, '\P{-IS_Zanb}', "");
+    Expect(0, 72264, '\P{^-IS_Zanb}', "");
+    Error('\p{-/a/ZNAMENNY_Musical_notation}');
+    Error('\P{-/a/ZNAMENNY_Musical_notation}');
     Expect(1, 118735, '\p{znamennymusicalnotation}', "");
     Expect(0, 118735, '\p{^znamennymusicalnotation}', "");
     Expect(0, 118735, '\P{znamennymusicalnotation}', "");
@@ -126661,16 +127877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 118736, '\p{^znamennymusicalnotation}', "");
     Expect(1, 118736, '\P{znamennymusicalnotation}', "");
     Expect(0, 118736, '\P{^znamennymusicalnotation}', "");
-    Expect(1, 118735, '\p{-Znamenny_Musical_Notation}', "");
-    Expect(0, 118735, '\p{^-Znamenny_Musical_Notation}', "");
-    Expect(0, 118735, '\P{-Znamenny_Musical_Notation}', "");
-    Expect(1, 118735, '\P{^-Znamenny_Musical_Notation}', "");
-    Expect(0, 118736, '\p{-Znamenny_Musical_Notation}', "");
-    Expect(1, 118736, '\p{^-Znamenny_Musical_Notation}', "");
-    Expect(1, 118736, '\P{-Znamenny_Musical_Notation}', "");
-    Expect(0, 118736, '\P{^-Znamenny_Musical_Notation}', "");
-    Error('\p{ -IS_ZNAMENNY_MUSICAL_NOTATION:=}');
-    Error('\P{ -IS_ZNAMENNY_MUSICAL_NOTATION:=}');
+    Expect(1, 118735, '\p{	-znamenny_Musical_NOTATION}', "");
+    Expect(0, 118735, '\p{^	-znamenny_Musical_NOTATION}', "");
+    Expect(0, 118735, '\P{	-znamenny_Musical_NOTATION}', "");
+    Expect(1, 118735, '\P{^	-znamenny_Musical_NOTATION}', "");
+    Expect(0, 118736, '\p{	-znamenny_Musical_NOTATION}', "");
+    Expect(1, 118736, '\p{^	-znamenny_Musical_NOTATION}', "");
+    Expect(1, 118736, '\P{	-znamenny_Musical_NOTATION}', "");
+    Expect(0, 118736, '\P{^	-znamenny_Musical_NOTATION}', "");
+    Error('\p{:=	_IS_ZNAMENNY_Musical_NOTATION}');
+    Error('\P{:=	_IS_ZNAMENNY_Musical_NOTATION}');
     Expect(1, 118735, '\p{isznamennymusicalnotation}', "");
     Expect(0, 118735, '\p{^isznamennymusicalnotation}', "");
     Expect(0, 118735, '\P{isznamennymusicalnotation}', "");
@@ -126679,16 +127895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 118736, '\p{^isznamennymusicalnotation}', "");
     Expect(1, 118736, '\P{isznamennymusicalnotation}', "");
     Expect(0, 118736, '\P{^isznamennymusicalnotation}', "");
-    Expect(1, 118735, '\p{	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(0, 118735, '\p{^	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(0, 118735, '\P{	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(1, 118735, '\P{^	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(0, 118736, '\p{	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(1, 118736, '\p{^	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(1, 118736, '\P{	_is_ZNAMENNY_Musical_Notation}', "");
-    Expect(0, 118736, '\P{^	_is_ZNAMENNY_Musical_Notation}', "");
-    Error('\p{ :=In_ZNAMENNY_musical_Notation}');
-    Error('\P{ :=In_ZNAMENNY_musical_Notation}');
+    Expect(1, 118735, '\p{_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(0, 118735, '\p{^_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(0, 118735, '\P{_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(1, 118735, '\P{^_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(0, 118736, '\p{_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(1, 118736, '\p{^_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(1, 118736, '\P{_ is_ZNAMENNY_Musical_Notation}', "");
+    Expect(0, 118736, '\P{^_ is_ZNAMENNY_Musical_Notation}', "");
+    Error('\p{/a/in_znamenny_Musical_notation}');
+    Error('\P{/a/in_znamenny_Musical_notation}');
     Expect(1, 118735, '\p{inznamennymusicalnotation}', "");
     Expect(0, 118735, '\p{^inznamennymusicalnotation}', "");
     Expect(0, 118735, '\P{inznamennymusicalnotation}', "");
@@ -126697,16 +127913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 118736, '\p{^inznamennymusicalnotation}', "");
     Expect(1, 118736, '\P{inznamennymusicalnotation}', "");
     Expect(0, 118736, '\P{^inznamennymusicalnotation}', "");
-    Expect(1, 118735, '\p{ 	IN_Znamenny_musical_Notation}', "");
-    Expect(0, 118735, '\p{^ 	IN_Znamenny_musical_Notation}', "");
-    Expect(0, 118735, '\P{ 	IN_Znamenny_musical_Notation}', "");
-    Expect(1, 118735, '\P{^ 	IN_Znamenny_musical_Notation}', "");
-    Expect(0, 118736, '\p{ 	IN_Znamenny_musical_Notation}', "");
-    Expect(1, 118736, '\p{^ 	IN_Znamenny_musical_Notation}', "");
-    Expect(1, 118736, '\P{ 	IN_Znamenny_musical_Notation}', "");
-    Expect(0, 118736, '\P{^ 	IN_Znamenny_musical_Notation}', "");
-    Error('\p{:=Znamenny_Music}');
-    Error('\P{:=Znamenny_Music}');
+    Expect(1, 118735, '\p{__In_Znamenny_musical_notation}', "");
+    Expect(0, 118735, '\p{^__In_Znamenny_musical_notation}', "");
+    Expect(0, 118735, '\P{__In_Znamenny_musical_notation}', "");
+    Expect(1, 118735, '\P{^__In_Znamenny_musical_notation}', "");
+    Expect(0, 118736, '\p{__In_Znamenny_musical_notation}', "");
+    Expect(1, 118736, '\p{^__In_Znamenny_musical_notation}', "");
+    Expect(1, 118736, '\P{__In_Znamenny_musical_notation}', "");
+    Expect(0, 118736, '\P{^__In_Znamenny_musical_notation}', "");
+    Error('\p{_-Znamenny_Music:=}');
+    Error('\P{_-Znamenny_Music:=}');
     Expect(1, 118735, '\p{znamennymusic}', "");
     Expect(0, 118735, '\p{^znamennymusic}', "");
     Expect(0, 118735, '\P{znamennymusic}', "");
@@ -126715,16 +127931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 118736, '\p{^znamennymusic}', "");
     Expect(1, 118736, '\P{znamennymusic}', "");
     Expect(0, 118736, '\P{^znamennymusic}', "");
-    Expect(1, 118735, '\p{- ZNAMENNY_MUSIC}', "");
-    Expect(0, 118735, '\p{^- ZNAMENNY_MUSIC}', "");
-    Expect(0, 118735, '\P{- ZNAMENNY_MUSIC}', "");
-    Expect(1, 118735, '\P{^- ZNAMENNY_MUSIC}', "");
-    Expect(0, 118736, '\p{- ZNAMENNY_MUSIC}', "");
-    Expect(1, 118736, '\p{^- ZNAMENNY_MUSIC}', "");
-    Expect(1, 118736, '\P{- ZNAMENNY_MUSIC}', "");
-    Expect(0, 118736, '\P{^- ZNAMENNY_MUSIC}', "");
-    Error('\p{:=-_Is_ZNAMENNY_music}');
-    Error('\P{:=-_Is_ZNAMENNY_music}');
+    Expect(1, 118735, '\p{ Znamenny_music}', "");
+    Expect(0, 118735, '\p{^ Znamenny_music}', "");
+    Expect(0, 118735, '\P{ Znamenny_music}', "");
+    Expect(1, 118735, '\P{^ Znamenny_music}', "");
+    Expect(0, 118736, '\p{ Znamenny_music}', "");
+    Expect(1, 118736, '\p{^ Znamenny_music}', "");
+    Expect(1, 118736, '\P{ Znamenny_music}', "");
+    Expect(0, 118736, '\P{^ Znamenny_music}', "");
+    Error('\p{-/a/IS_znamenny_music}');
+    Error('\P{-/a/IS_znamenny_music}');
     Expect(1, 118735, '\p{isznamennymusic}', "");
     Expect(0, 118735, '\p{^isznamennymusic}', "");
     Expect(0, 118735, '\P{isznamennymusic}', "");
@@ -126733,16 +127949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 118736, '\p{^isznamennymusic}', "");
     Expect(1, 118736, '\P{isznamennymusic}', "");
     Expect(0, 118736, '\P{^isznamennymusic}', "");
-    Expect(1, 118735, '\p{	_Is_Znamenny_Music}', "");
-    Expect(0, 118735, '\p{^	_Is_Znamenny_Music}', "");
-    Expect(0, 118735, '\P{	_Is_Znamenny_Music}', "");
-    Expect(1, 118735, '\P{^	_Is_Znamenny_Music}', "");
-    Expect(0, 118736, '\p{	_Is_Znamenny_Music}', "");
-    Expect(1, 118736, '\p{^	_Is_Znamenny_Music}', "");
-    Expect(1, 118736, '\P{	_Is_Znamenny_Music}', "");
-    Expect(0, 118736, '\P{^	_Is_Znamenny_Music}', "");
-    Error('\p{-:=In_ZNAMENNY_MUSIC}');
-    Error('\P{-:=In_ZNAMENNY_MUSIC}');
+    Expect(1, 118735, '\p{-	IS_znamenny_Music}', "");
+    Expect(0, 118735, '\p{^-	IS_znamenny_Music}', "");
+    Expect(0, 118735, '\P{-	IS_znamenny_Music}', "");
+    Expect(1, 118735, '\P{^-	IS_znamenny_Music}', "");
+    Expect(0, 118736, '\p{-	IS_znamenny_Music}', "");
+    Expect(1, 118736, '\p{^-	IS_znamenny_Music}', "");
+    Expect(1, 118736, '\P{-	IS_znamenny_Music}', "");
+    Expect(0, 118736, '\P{^-	IS_znamenny_Music}', "");
+    Error('\p{/a/	In_Znamenny_music}');
+    Error('\P{/a/	In_Znamenny_music}');
     Expect(1, 118735, '\p{inznamennymusic}', "");
     Expect(0, 118735, '\p{^inznamennymusic}', "");
     Expect(0, 118735, '\P{inznamennymusic}', "");
@@ -126751,22 +127967,22 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 118736, '\p{^inznamennymusic}', "");
     Expect(1, 118736, '\P{inznamennymusic}', "");
     Expect(0, 118736, '\P{^inznamennymusic}', "");
-    Expect(1, 118735, '\p{in_znamenny_Music}', "");
-    Expect(0, 118735, '\p{^in_znamenny_Music}', "");
-    Expect(0, 118735, '\P{in_znamenny_Music}', "");
-    Expect(1, 118735, '\P{^in_znamenny_Music}', "");
-    Expect(0, 118736, '\p{in_znamenny_Music}', "");
-    Expect(1, 118736, '\p{^in_znamenny_Music}', "");
-    Expect(1, 118736, '\P{in_znamenny_Music}', "");
-    Expect(0, 118736, '\P{^in_znamenny_Music}', "");
+    Expect(1, 118735, '\p{ 	In_znamenny_MUSIC}', "");
+    Expect(0, 118735, '\p{^ 	In_znamenny_MUSIC}', "");
+    Expect(0, 118735, '\P{ 	In_znamenny_MUSIC}', "");
+    Expect(1, 118735, '\P{^ 	In_znamenny_MUSIC}', "");
+    Expect(0, 118736, '\p{ 	In_znamenny_MUSIC}', "");
+    Expect(1, 118736, '\p{^ 	In_znamenny_MUSIC}', "");
+    Expect(1, 118736, '\P{ 	In_znamenny_MUSIC}', "");
+    Expect(0, 118736, '\P{^ 	In_znamenny_MUSIC}', "");
     Error('\p{perlcharnames}');
     Error('\P{perlcharnames}');
     Error('\p{perldecimaldigit}');
     Error('\P{perldecimaldigit}');
     Error('\p{perldecompositionmapping}');
     Error('\P{perldecompositionmapping}');
-    Error('\p{Quotation_Mark=-NO:=}');
-    Error('\P{Quotation_Mark=-NO:=}');
+    Error('\p{Quotation_Mark=:=_NO}');
+    Error('\P{Quotation_Mark=:=_NO}');
     Expect(1, 65380, '\p{Quotation_Mark=:\ANo\z:}', "");;
     Expect(0, 65379, '\p{Quotation_Mark=:\ANo\z:}', "");;
     Expect(1, 65380, '\p{Quotation_Mark=no}', "");
@@ -126779,16 +127995,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65379, '\P{^Quotation_Mark=no}', "");
     Expect(1, 65380, '\p{Quotation_Mark=:\Ano\z:}', "");;
     Expect(0, 65379, '\p{Quotation_Mark=:\Ano\z:}', "");;
-    Expect(1, 65380, '\p{Quotation_Mark=	-No}', "");
-    Expect(0, 65380, '\p{^Quotation_Mark=	-No}', "");
-    Expect(0, 65380, '\P{Quotation_Mark=	-No}', "");
-    Expect(1, 65380, '\P{^Quotation_Mark=	-No}', "");
-    Expect(0, 65379, '\p{Quotation_Mark=	-No}', "");
-    Expect(1, 65379, '\p{^Quotation_Mark=	-No}', "");
-    Expect(1, 65379, '\P{Quotation_Mark=	-No}', "");
-    Expect(0, 65379, '\P{^Quotation_Mark=	-No}', "");
-    Error('\p{QMark=/a/-N}');
-    Error('\P{QMark=/a/-N}');
+    Expect(1, 65380, '\p{Quotation_Mark: _No}', "");
+    Expect(0, 65380, '\p{^Quotation_Mark: _No}', "");
+    Expect(0, 65380, '\P{Quotation_Mark: _No}', "");
+    Expect(1, 65380, '\P{^Quotation_Mark: _No}', "");
+    Expect(0, 65379, '\p{Quotation_Mark: _No}', "");
+    Expect(1, 65379, '\p{^Quotation_Mark: _No}', "");
+    Expect(1, 65379, '\P{Quotation_Mark: _No}', "");
+    Expect(0, 65379, '\P{^Quotation_Mark: _No}', "");
+    Error('\p{QMark=		N:=}');
+    Error('\P{QMark=		N:=}');
     Expect(1, 65380, '\p{QMark=:\AN\z:}', "");;
     Expect(0, 65379, '\p{QMark=:\AN\z:}', "");;
     Expect(1, 65380, '\p{QMark=n}', "");
@@ -126801,16 +128017,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65379, '\P{^QMark=n}', "");
     Expect(1, 65380, '\p{QMark=:\An\z:}', "");;
     Expect(0, 65379, '\p{QMark=:\An\z:}', "");;
-    Expect(1, 65380, '\p{QMark=_N}', "");
-    Expect(0, 65380, '\p{^QMark=_N}', "");
-    Expect(0, 65380, '\P{QMark=_N}', "");
-    Expect(1, 65380, '\P{^QMark=_N}', "");
-    Expect(0, 65379, '\p{QMark=_N}', "");
-    Expect(1, 65379, '\p{^QMark=_N}', "");
-    Expect(1, 65379, '\P{QMark=_N}', "");
-    Expect(0, 65379, '\P{^QMark=_N}', "");
-    Error('\p{Is_Quotation_Mark=/a/-_F}');
-    Error('\P{Is_Quotation_Mark=/a/-_F}');
+    Expect(1, 65380, '\p{QMark:   -N}', "");
+    Expect(0, 65380, '\p{^QMark:   -N}', "");
+    Expect(0, 65380, '\P{QMark:   -N}', "");
+    Expect(1, 65380, '\P{^QMark:   -N}', "");
+    Expect(0, 65379, '\p{QMark:   -N}', "");
+    Expect(1, 65379, '\p{^QMark:   -N}', "");
+    Expect(1, 65379, '\P{QMark:   -N}', "");
+    Expect(0, 65379, '\P{^QMark:   -N}', "");
+    Error('\p{Is_Quotation_Mark=/a/_F}');
+    Error('\P{Is_Quotation_Mark=/a/_F}');
     Expect(1, 65380, '\p{Is_Quotation_Mark=f}', "");
     Expect(0, 65380, '\p{^Is_Quotation_Mark=f}', "");
     Expect(0, 65380, '\P{Is_Quotation_Mark=f}', "");
@@ -126819,34 +128035,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65379, '\p{^Is_Quotation_Mark=f}', "");
     Expect(1, 65379, '\P{Is_Quotation_Mark=f}', "");
     Expect(0, 65379, '\P{^Is_Quotation_Mark=f}', "");
-    Expect(1, 65380, '\p{Is_Quotation_Mark= F}', "");
-    Expect(0, 65380, '\p{^Is_Quotation_Mark= F}', "");
-    Expect(0, 65380, '\P{Is_Quotation_Mark= F}', "");
-    Expect(1, 65380, '\P{^Is_Quotation_Mark= F}', "");
-    Expect(0, 65379, '\p{Is_Quotation_Mark= F}', "");
-    Expect(1, 65379, '\p{^Is_Quotation_Mark= F}', "");
-    Expect(1, 65379, '\P{Is_Quotation_Mark= F}', "");
-    Expect(0, 65379, '\P{^Is_Quotation_Mark= F}', "");
-    Error('\p{Is_QMark=  false:=}');
-    Error('\P{Is_QMark=  false:=}');
-    Expect(1, 65380, '\p{Is_QMark=false}', "");
-    Expect(0, 65380, '\p{^Is_QMark=false}', "");
-    Expect(0, 65380, '\P{Is_QMark=false}', "");
-    Expect(1, 65380, '\P{^Is_QMark=false}', "");
-    Expect(0, 65379, '\p{Is_QMark=false}', "");
-    Expect(1, 65379, '\p{^Is_QMark=false}', "");
-    Expect(1, 65379, '\P{Is_QMark=false}', "");
-    Expect(0, 65379, '\P{^Is_QMark=false}', "");
-    Expect(1, 65380, '\p{Is_QMark=-False}', "");
-    Expect(0, 65380, '\p{^Is_QMark=-False}', "");
-    Expect(0, 65380, '\P{Is_QMark=-False}', "");
-    Expect(1, 65380, '\P{^Is_QMark=-False}', "");
-    Expect(0, 65379, '\p{Is_QMark=-False}', "");
-    Expect(1, 65379, '\p{^Is_QMark=-False}', "");
-    Expect(1, 65379, '\P{Is_QMark=-False}', "");
-    Expect(0, 65379, '\P{^Is_QMark=-False}', "");
-    Error('\p{Quotation_Mark=:= Yes}');
-    Error('\P{Quotation_Mark=:= Yes}');
+    Expect(1, 65380, '\p{Is_Quotation_Mark=_-F}', "");
+    Expect(0, 65380, '\p{^Is_Quotation_Mark=_-F}', "");
+    Expect(0, 65380, '\P{Is_Quotation_Mark=_-F}', "");
+    Expect(1, 65380, '\P{^Is_Quotation_Mark=_-F}', "");
+    Expect(0, 65379, '\p{Is_Quotation_Mark=_-F}', "");
+    Expect(1, 65379, '\p{^Is_Quotation_Mark=_-F}', "");
+    Expect(1, 65379, '\P{Is_Quotation_Mark=_-F}', "");
+    Expect(0, 65379, '\P{^Is_Quotation_Mark=_-F}', "");
+    Error('\p{Is_QMark=-/a/false}');
+    Error('\P{Is_QMark=-/a/false}');
+    Expect(1, 65380, '\p{Is_QMark:	false}', "");
+    Expect(0, 65380, '\p{^Is_QMark:	false}', "");
+    Expect(0, 65380, '\P{Is_QMark:	false}', "");
+    Expect(1, 65380, '\P{^Is_QMark:	false}', "");
+    Expect(0, 65379, '\p{Is_QMark:	false}', "");
+    Expect(1, 65379, '\p{^Is_QMark:	false}', "");
+    Expect(1, 65379, '\P{Is_QMark:	false}', "");
+    Expect(0, 65379, '\P{^Is_QMark:	false}', "");
+    Expect(1, 65380, '\p{Is_QMark=__False}', "");
+    Expect(0, 65380, '\p{^Is_QMark=__False}', "");
+    Expect(0, 65380, '\P{Is_QMark=__False}', "");
+    Expect(1, 65380, '\P{^Is_QMark=__False}', "");
+    Expect(0, 65379, '\p{Is_QMark=__False}', "");
+    Expect(1, 65379, '\p{^Is_QMark=__False}', "");
+    Expect(1, 65379, '\P{Is_QMark=__False}', "");
+    Expect(0, 65379, '\P{^Is_QMark=__False}', "");
+    Error('\p{Quotation_Mark=/a/-	Yes}');
+    Error('\P{Quotation_Mark=/a/-	Yes}');
     Expect(1, 65379, '\p{Quotation_Mark=:\AYes\z:}', "");;
     Expect(0, 65380, '\p{Quotation_Mark=:\AYes\z:}', "");;
     Expect(1, 65379, '\p{Quotation_Mark=yes}', "");
@@ -126859,38 +128075,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65380, '\P{^Quotation_Mark=yes}', "");
     Expect(1, 65379, '\p{Quotation_Mark=:\Ayes\z:}', "");;
     Expect(0, 65380, '\p{Quotation_Mark=:\Ayes\z:}', "");;
-    Expect(1, 65379, '\p{Quotation_Mark=- YES}', "");
-    Expect(0, 65379, '\p{^Quotation_Mark=- YES}', "");
-    Expect(0, 65379, '\P{Quotation_Mark=- YES}', "");
-    Expect(1, 65379, '\P{^Quotation_Mark=- YES}', "");
-    Expect(0, 65380, '\p{Quotation_Mark=- YES}', "");
-    Expect(1, 65380, '\p{^Quotation_Mark=- YES}', "");
-    Expect(1, 65380, '\P{Quotation_Mark=- YES}', "");
-    Expect(0, 65380, '\P{^Quotation_Mark=- YES}', "");
-    Error('\p{QMark=		Y/a/}');
-    Error('\P{QMark=		Y/a/}');
+    Expect(1, 65379, '\p{Quotation_Mark=__yes}', "");
+    Expect(0, 65379, '\p{^Quotation_Mark=__yes}', "");
+    Expect(0, 65379, '\P{Quotation_Mark=__yes}', "");
+    Expect(1, 65379, '\P{^Quotation_Mark=__yes}', "");
+    Expect(0, 65380, '\p{Quotation_Mark=__yes}', "");
+    Expect(1, 65380, '\p{^Quotation_Mark=__yes}', "");
+    Expect(1, 65380, '\P{Quotation_Mark=__yes}', "");
+    Expect(0, 65380, '\P{^Quotation_Mark=__yes}', "");
+    Error('\p{QMark=-Y/a/}');
+    Error('\P{QMark=-Y/a/}');
     Expect(1, 65379, '\p{QMark=:\AY\z:}', "");;
     Expect(0, 65380, '\p{QMark=:\AY\z:}', "");;
-    Expect(1, 65379, '\p{QMark:   y}', "");
-    Expect(0, 65379, '\p{^QMark:   y}', "");
-    Expect(0, 65379, '\P{QMark:   y}', "");
-    Expect(1, 65379, '\P{^QMark:   y}', "");
-    Expect(0, 65380, '\p{QMark:   y}', "");
-    Expect(1, 65380, '\p{^QMark:   y}', "");
-    Expect(1, 65380, '\P{QMark:   y}', "");
-    Expect(0, 65380, '\P{^QMark:   y}', "");
+    Expect(1, 65379, '\p{QMark=y}', "");
+    Expect(0, 65379, '\p{^QMark=y}', "");
+    Expect(0, 65379, '\P{QMark=y}', "");
+    Expect(1, 65379, '\P{^QMark=y}', "");
+    Expect(0, 65380, '\p{QMark=y}', "");
+    Expect(1, 65380, '\p{^QMark=y}', "");
+    Expect(1, 65380, '\P{QMark=y}', "");
+    Expect(0, 65380, '\P{^QMark=y}', "");
     Expect(1, 65379, '\p{QMark=:\Ay\z:}', "");;
     Expect(0, 65380, '\p{QMark=:\Ay\z:}', "");;
-    Expect(1, 65379, '\p{QMark=-Y}', "");
-    Expect(0, 65379, '\p{^QMark=-Y}', "");
-    Expect(0, 65379, '\P{QMark=-Y}', "");
-    Expect(1, 65379, '\P{^QMark=-Y}', "");
-    Expect(0, 65380, '\p{QMark=-Y}', "");
-    Expect(1, 65380, '\p{^QMark=-Y}', "");
-    Expect(1, 65380, '\P{QMark=-Y}', "");
-    Expect(0, 65380, '\P{^QMark=-Y}', "");
-    Error('\p{Is_Quotation_Mark= _T:=}');
-    Error('\P{Is_Quotation_Mark= _T:=}');
+    Expect(1, 65379, '\p{QMark=	Y}', "");
+    Expect(0, 65379, '\p{^QMark=	Y}', "");
+    Expect(0, 65379, '\P{QMark=	Y}', "");
+    Expect(1, 65379, '\P{^QMark=	Y}', "");
+    Expect(0, 65380, '\p{QMark=	Y}', "");
+    Expect(1, 65380, '\p{^QMark=	Y}', "");
+    Expect(1, 65380, '\P{QMark=	Y}', "");
+    Expect(0, 65380, '\P{^QMark=	Y}', "");
+    Error('\p{Is_Quotation_Mark=/a/	T}');
+    Error('\P{Is_Quotation_Mark=/a/	T}');
     Expect(1, 65379, '\p{Is_Quotation_Mark=t}', "");
     Expect(0, 65379, '\p{^Is_Quotation_Mark=t}', "");
     Expect(0, 65379, '\P{Is_Quotation_Mark=t}', "");
@@ -126899,16 +128115,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65380, '\p{^Is_Quotation_Mark=t}', "");
     Expect(1, 65380, '\P{Is_Quotation_Mark=t}', "");
     Expect(0, 65380, '\P{^Is_Quotation_Mark=t}', "");
-    Expect(1, 65379, '\p{Is_Quotation_Mark: _T}', "");
-    Expect(0, 65379, '\p{^Is_Quotation_Mark: _T}', "");
-    Expect(0, 65379, '\P{Is_Quotation_Mark: _T}', "");
-    Expect(1, 65379, '\P{^Is_Quotation_Mark: _T}', "");
-    Expect(0, 65380, '\p{Is_Quotation_Mark: _T}', "");
-    Expect(1, 65380, '\p{^Is_Quotation_Mark: _T}', "");
-    Expect(1, 65380, '\P{Is_Quotation_Mark: _T}', "");
-    Expect(0, 65380, '\P{^Is_Quotation_Mark: _T}', "");
-    Error('\p{Is_QMark=-TRUE/a/}');
-    Error('\P{Is_QMark=-TRUE/a/}');
+    Expect(1, 65379, '\p{Is_Quotation_Mark:		T}', "");
+    Expect(0, 65379, '\p{^Is_Quotation_Mark:		T}', "");
+    Expect(0, 65379, '\P{Is_Quotation_Mark:		T}', "");
+    Expect(1, 65379, '\P{^Is_Quotation_Mark:		T}', "");
+    Expect(0, 65380, '\p{Is_Quotation_Mark:		T}', "");
+    Expect(1, 65380, '\p{^Is_Quotation_Mark:		T}', "");
+    Expect(1, 65380, '\P{Is_Quotation_Mark:		T}', "");
+    Expect(0, 65380, '\P{^Is_Quotation_Mark:		T}', "");
+    Error('\p{Is_QMark=:=_ True}');
+    Error('\P{Is_QMark=:=_ True}');
     Expect(1, 65379, '\p{Is_QMark=true}', "");
     Expect(0, 65379, '\p{^Is_QMark=true}', "");
     Expect(0, 65379, '\P{Is_QMark=true}', "");
@@ -126917,16 +128133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65380, '\p{^Is_QMark=true}', "");
     Expect(1, 65380, '\P{Is_QMark=true}', "");
     Expect(0, 65380, '\P{^Is_QMark=true}', "");
-    Expect(1, 65379, '\p{Is_QMark=	_true}', "");
-    Expect(0, 65379, '\p{^Is_QMark=	_true}', "");
-    Expect(0, 65379, '\P{Is_QMark=	_true}', "");
-    Expect(1, 65379, '\P{^Is_QMark=	_true}', "");
-    Expect(0, 65380, '\p{Is_QMark=	_true}', "");
-    Expect(1, 65380, '\p{^Is_QMark=	_true}', "");
-    Expect(1, 65380, '\P{Is_QMark=	_true}', "");
-    Expect(0, 65380, '\P{^Is_QMark=	_true}', "");
-    Error('\p{Radical:   _:=No}');
-    Error('\P{Radical:   _:=No}');
+    Expect(1, 65379, '\p{Is_QMark=--true}', "");
+    Expect(0, 65379, '\p{^Is_QMark=--true}', "");
+    Expect(0, 65379, '\P{Is_QMark=--true}', "");
+    Expect(1, 65379, '\P{^Is_QMark=--true}', "");
+    Expect(0, 65380, '\p{Is_QMark=--true}', "");
+    Expect(1, 65380, '\p{^Is_QMark=--true}', "");
+    Expect(1, 65380, '\P{Is_QMark=--true}', "");
+    Expect(0, 65380, '\P{^Is_QMark=--true}', "");
+    Error('\p{Radical=	/a/No}');
+    Error('\P{Radical=	/a/No}');
     Expect(1, 12246, '\p{Radical=:\ANo\z:}', "");;
     Expect(0, 12245, '\p{Radical=:\ANo\z:}', "");;
     Expect(1, 12246, '\p{Radical=no}', "");
@@ -126939,34 +128155,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12245, '\P{^Radical=no}', "");
     Expect(1, 12246, '\p{Radical=:\Ano\z:}', "");;
     Expect(0, 12245, '\p{Radical=:\Ano\z:}', "");;
-    Expect(1, 12246, '\p{Radical=-_No}', "");
-    Expect(0, 12246, '\p{^Radical=-_No}', "");
-    Expect(0, 12246, '\P{Radical=-_No}', "");
-    Expect(1, 12246, '\P{^Radical=-_No}', "");
-    Expect(0, 12245, '\p{Radical=-_No}', "");
-    Expect(1, 12245, '\p{^Radical=-_No}', "");
-    Expect(1, 12245, '\P{Radical=-_No}', "");
-    Expect(0, 12245, '\P{^Radical=-_No}', "");
-    Error('\p{Is_Radical= :=N}');
-    Error('\P{Is_Radical= :=N}');
-    Expect(1, 12246, '\p{Is_Radical:n}', "");
-    Expect(0, 12246, '\p{^Is_Radical:n}', "");
-    Expect(0, 12246, '\P{Is_Radical:n}', "");
-    Expect(1, 12246, '\P{^Is_Radical:n}', "");
-    Expect(0, 12245, '\p{Is_Radical:n}', "");
-    Expect(1, 12245, '\p{^Is_Radical:n}', "");
-    Expect(1, 12245, '\P{Is_Radical:n}', "");
-    Expect(0, 12245, '\P{^Is_Radical:n}', "");
-    Expect(1, 12246, '\p{Is_Radical=	 N}', "");
-    Expect(0, 12246, '\p{^Is_Radical=	 N}', "");
-    Expect(0, 12246, '\P{Is_Radical=	 N}', "");
-    Expect(1, 12246, '\P{^Is_Radical=	 N}', "");
-    Expect(0, 12245, '\p{Is_Radical=	 N}', "");
-    Expect(1, 12245, '\p{^Is_Radical=	 N}', "");
-    Expect(1, 12245, '\P{Is_Radical=	 N}', "");
-    Expect(0, 12245, '\P{^Is_Radical=	 N}', "");
-    Error('\p{Radical=F/a/}');
-    Error('\P{Radical=F/a/}');
+    Expect(1, 12246, '\p{Radical= NO}', "");
+    Expect(0, 12246, '\p{^Radical= NO}', "");
+    Expect(0, 12246, '\P{Radical= NO}', "");
+    Expect(1, 12246, '\P{^Radical= NO}', "");
+    Expect(0, 12245, '\p{Radical= NO}', "");
+    Expect(1, 12245, '\p{^Radical= NO}', "");
+    Expect(1, 12245, '\P{Radical= NO}', "");
+    Expect(0, 12245, '\P{^Radical= NO}', "");
+    Error('\p{Is_Radical=	-N:=}');
+    Error('\P{Is_Radical=	-N:=}');
+    Expect(1, 12246, '\p{Is_Radical:	n}', "");
+    Expect(0, 12246, '\p{^Is_Radical:	n}', "");
+    Expect(0, 12246, '\P{Is_Radical:	n}', "");
+    Expect(1, 12246, '\P{^Is_Radical:	n}', "");
+    Expect(0, 12245, '\p{Is_Radical:	n}', "");
+    Expect(1, 12245, '\p{^Is_Radical:	n}', "");
+    Expect(1, 12245, '\P{Is_Radical:	n}', "");
+    Expect(0, 12245, '\P{^Is_Radical:	n}', "");
+    Expect(1, 12246, '\p{Is_Radical=	 n}', "");
+    Expect(0, 12246, '\p{^Is_Radical=	 n}', "");
+    Expect(0, 12246, '\P{Is_Radical=	 n}', "");
+    Expect(1, 12246, '\P{^Is_Radical=	 n}', "");
+    Expect(0, 12245, '\p{Is_Radical=	 n}', "");
+    Expect(1, 12245, '\p{^Is_Radical=	 n}', "");
+    Expect(1, 12245, '\P{Is_Radical=	 n}', "");
+    Expect(0, 12245, '\P{^Is_Radical=	 n}', "");
+    Error('\p{Radical= _F/a/}');
+    Error('\P{Radical= _F/a/}');
     Expect(1, 12246, '\p{Radical=:\AF\z:}', "");;
     Expect(0, 12245, '\p{Radical=:\AF\z:}', "");;
     Expect(1, 12246, '\p{Radical=f}', "");
@@ -126979,34 +128195,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12245, '\P{^Radical=f}', "");
     Expect(1, 12246, '\p{Radical=:\Af\z:}', "");;
     Expect(0, 12245, '\p{Radical=:\Af\z:}', "");;
-    Expect(1, 12246, '\p{Radical=		F}', "");
-    Expect(0, 12246, '\p{^Radical=		F}', "");
-    Expect(0, 12246, '\P{Radical=		F}', "");
-    Expect(1, 12246, '\P{^Radical=		F}', "");
-    Expect(0, 12245, '\p{Radical=		F}', "");
-    Expect(1, 12245, '\p{^Radical=		F}', "");
-    Expect(1, 12245, '\P{Radical=		F}', "");
-    Expect(0, 12245, '\P{^Radical=		F}', "");
-    Error('\p{Is_Radical=/a/ -False}');
-    Error('\P{Is_Radical=/a/ -False}');
-    Expect(1, 12246, '\p{Is_Radical=false}', "");
-    Expect(0, 12246, '\p{^Is_Radical=false}', "");
-    Expect(0, 12246, '\P{Is_Radical=false}', "");
-    Expect(1, 12246, '\P{^Is_Radical=false}', "");
-    Expect(0, 12245, '\p{Is_Radical=false}', "");
-    Expect(1, 12245, '\p{^Is_Radical=false}', "");
-    Expect(1, 12245, '\P{Is_Radical=false}', "");
-    Expect(0, 12245, '\P{^Is_Radical=false}', "");
-    Expect(1, 12246, '\p{Is_Radical:    _False}', "");
-    Expect(0, 12246, '\p{^Is_Radical:    _False}', "");
-    Expect(0, 12246, '\P{Is_Radical:    _False}', "");
-    Expect(1, 12246, '\P{^Is_Radical:    _False}', "");
-    Expect(0, 12245, '\p{Is_Radical:    _False}', "");
-    Expect(1, 12245, '\p{^Is_Radical:    _False}', "");
-    Expect(1, 12245, '\P{Is_Radical:    _False}', "");
-    Expect(0, 12245, '\P{^Is_Radical:    _False}', "");
-    Error('\p{Radical=:=Yes}');
-    Error('\P{Radical=:=Yes}');
+    Expect(1, 12246, '\p{Radical=-F}', "");
+    Expect(0, 12246, '\p{^Radical=-F}', "");
+    Expect(0, 12246, '\P{Radical=-F}', "");
+    Expect(1, 12246, '\P{^Radical=-F}', "");
+    Expect(0, 12245, '\p{Radical=-F}', "");
+    Expect(1, 12245, '\p{^Radical=-F}', "");
+    Expect(1, 12245, '\P{Radical=-F}', "");
+    Expect(0, 12245, '\P{^Radical=-F}', "");
+    Error('\p{Is_Radical=/a/	_false}');
+    Error('\P{Is_Radical=/a/	_false}');
+    Expect(1, 12246, '\p{Is_Radical:   false}', "");
+    Expect(0, 12246, '\p{^Is_Radical:   false}', "");
+    Expect(0, 12246, '\P{Is_Radical:   false}', "");
+    Expect(1, 12246, '\P{^Is_Radical:   false}', "");
+    Expect(0, 12245, '\p{Is_Radical:   false}', "");
+    Expect(1, 12245, '\p{^Is_Radical:   false}', "");
+    Expect(1, 12245, '\P{Is_Radical:   false}', "");
+    Expect(0, 12245, '\P{^Is_Radical:   false}', "");
+    Expect(1, 12246, '\p{Is_Radical=_	False}', "");
+    Expect(0, 12246, '\p{^Is_Radical=_	False}', "");
+    Expect(0, 12246, '\P{Is_Radical=_	False}', "");
+    Expect(1, 12246, '\P{^Is_Radical=_	False}', "");
+    Expect(0, 12245, '\p{Is_Radical=_	False}', "");
+    Expect(1, 12245, '\p{^Is_Radical=_	False}', "");
+    Expect(1, 12245, '\P{Is_Radical=_	False}', "");
+    Expect(0, 12245, '\P{^Is_Radical=_	False}', "");
+    Error('\p{Radical=__YES:=}');
+    Error('\P{Radical=__YES:=}');
     Expect(1, 12245, '\p{Radical=:\AYes\z:}', "");;
     Expect(0, 12246, '\p{Radical=:\AYes\z:}', "");;
     Expect(1, 12245, '\p{Radical=yes}', "");
@@ -127019,16 +128235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12246, '\P{^Radical=yes}', "");
     Expect(1, 12245, '\p{Radical=:\Ayes\z:}', "");;
     Expect(0, 12246, '\p{Radical=:\Ayes\z:}', "");;
-    Expect(1, 12245, '\p{Radical: -	Yes}', "");
-    Expect(0, 12245, '\p{^Radical: -	Yes}', "");
-    Expect(0, 12245, '\P{Radical: -	Yes}', "");
-    Expect(1, 12245, '\P{^Radical: -	Yes}', "");
-    Expect(0, 12246, '\p{Radical: -	Yes}', "");
-    Expect(1, 12246, '\p{^Radical: -	Yes}', "");
-    Expect(1, 12246, '\P{Radical: -	Yes}', "");
-    Expect(0, 12246, '\P{^Radical: -	Yes}', "");
-    Error('\p{Is_Radical=:= Y}');
-    Error('\P{Is_Radical=:= Y}');
+    Expect(1, 12245, '\p{Radical=_-YES}', "");
+    Expect(0, 12245, '\p{^Radical=_-YES}', "");
+    Expect(0, 12245, '\P{Radical=_-YES}', "");
+    Expect(1, 12245, '\P{^Radical=_-YES}', "");
+    Expect(0, 12246, '\p{Radical=_-YES}', "");
+    Expect(1, 12246, '\p{^Radical=_-YES}', "");
+    Expect(1, 12246, '\P{Radical=_-YES}', "");
+    Expect(0, 12246, '\P{^Radical=_-YES}', "");
+    Error('\p{Is_Radical=	:=Y}');
+    Error('\P{Is_Radical=	:=Y}');
     Expect(1, 12245, '\p{Is_Radical=y}', "");
     Expect(0, 12245, '\p{^Is_Radical=y}', "");
     Expect(0, 12245, '\P{Is_Radical=y}', "");
@@ -127037,46 +128253,46 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12246, '\p{^Is_Radical=y}', "");
     Expect(1, 12246, '\P{Is_Radical=y}', "");
     Expect(0, 12246, '\P{^Is_Radical=y}', "");
-    Expect(1, 12245, '\p{Is_Radical=-	Y}', "");
-    Expect(0, 12245, '\p{^Is_Radical=-	Y}', "");
-    Expect(0, 12245, '\P{Is_Radical=-	Y}', "");
-    Expect(1, 12245, '\P{^Is_Radical=-	Y}', "");
-    Expect(0, 12246, '\p{Is_Radical=-	Y}', "");
-    Expect(1, 12246, '\p{^Is_Radical=-	Y}', "");
-    Expect(1, 12246, '\P{Is_Radical=-	Y}', "");
-    Expect(0, 12246, '\P{^Is_Radical=-	Y}', "");
-    Error('\p{Radical=/a/ T}');
-    Error('\P{Radical=/a/ T}');
+    Expect(1, 12245, '\p{Is_Radical=--Y}', "");
+    Expect(0, 12245, '\p{^Is_Radical=--Y}', "");
+    Expect(0, 12245, '\P{Is_Radical=--Y}', "");
+    Expect(1, 12245, '\P{^Is_Radical=--Y}', "");
+    Expect(0, 12246, '\p{Is_Radical=--Y}', "");
+    Expect(1, 12246, '\p{^Is_Radical=--Y}', "");
+    Expect(1, 12246, '\P{Is_Radical=--Y}', "");
+    Expect(0, 12246, '\P{^Is_Radical=--Y}', "");
+    Error('\p{Radical=-:=t}');
+    Error('\P{Radical=-:=t}');
     Expect(1, 12245, '\p{Radical=:\AT\z:}', "");;
     Expect(0, 12246, '\p{Radical=:\AT\z:}', "");;
-    Expect(1, 12245, '\p{Radical=t}', "");
-    Expect(0, 12245, '\p{^Radical=t}', "");
-    Expect(0, 12245, '\P{Radical=t}', "");
-    Expect(1, 12245, '\P{^Radical=t}', "");
-    Expect(0, 12246, '\p{Radical=t}', "");
-    Expect(1, 12246, '\p{^Radical=t}', "");
-    Expect(1, 12246, '\P{Radical=t}', "");
-    Expect(0, 12246, '\P{^Radical=t}', "");
+    Expect(1, 12245, '\p{Radical:	t}', "");
+    Expect(0, 12245, '\p{^Radical:	t}', "");
+    Expect(0, 12245, '\P{Radical:	t}', "");
+    Expect(1, 12245, '\P{^Radical:	t}', "");
+    Expect(0, 12246, '\p{Radical:	t}', "");
+    Expect(1, 12246, '\p{^Radical:	t}', "");
+    Expect(1, 12246, '\P{Radical:	t}', "");
+    Expect(0, 12246, '\P{^Radical:	t}', "");
     Expect(1, 12245, '\p{Radical=:\At\z:}', "");;
     Expect(0, 12246, '\p{Radical=:\At\z:}', "");;
-    Expect(1, 12245, '\p{Radical=_t}', "");
-    Expect(0, 12245, '\p{^Radical=_t}', "");
-    Expect(0, 12245, '\P{Radical=_t}', "");
-    Expect(1, 12245, '\P{^Radical=_t}', "");
-    Expect(0, 12246, '\p{Radical=_t}', "");
-    Expect(1, 12246, '\p{^Radical=_t}', "");
-    Expect(1, 12246, '\P{Radical=_t}', "");
-    Expect(0, 12246, '\P{^Radical=_t}', "");
-    Error('\p{Is_Radical=	true/a/}');
-    Error('\P{Is_Radical=	true/a/}');
-    Expect(1, 12245, '\p{Is_Radical=true}', "");
-    Expect(0, 12245, '\p{^Is_Radical=true}', "");
-    Expect(0, 12245, '\P{Is_Radical=true}', "");
-    Expect(1, 12245, '\P{^Is_Radical=true}', "");
-    Expect(0, 12246, '\p{Is_Radical=true}', "");
-    Expect(1, 12246, '\p{^Is_Radical=true}', "");
-    Expect(1, 12246, '\P{Is_Radical=true}', "");
-    Expect(0, 12246, '\P{^Is_Radical=true}', "");
+    Expect(1, 12245, '\p{Radical=T}', "");
+    Expect(0, 12245, '\p{^Radical=T}', "");
+    Expect(0, 12245, '\P{Radical=T}', "");
+    Expect(1, 12245, '\P{^Radical=T}', "");
+    Expect(0, 12246, '\p{Radical=T}', "");
+    Expect(1, 12246, '\p{^Radical=T}', "");
+    Expect(1, 12246, '\P{Radical=T}', "");
+    Expect(0, 12246, '\P{^Radical=T}', "");
+    Error('\p{Is_Radical=/a/		TRUE}');
+    Error('\P{Is_Radical=/a/		TRUE}');
+    Expect(1, 12245, '\p{Is_Radical:true}', "");
+    Expect(0, 12245, '\p{^Is_Radical:true}', "");
+    Expect(0, 12245, '\P{Is_Radical:true}', "");
+    Expect(1, 12245, '\P{^Is_Radical:true}', "");
+    Expect(0, 12246, '\p{Is_Radical:true}', "");
+    Expect(1, 12246, '\p{^Is_Radical:true}', "");
+    Expect(1, 12246, '\P{Is_Radical:true}', "");
+    Expect(0, 12246, '\P{^Is_Radical:true}', "");
     Expect(1, 12245, '\p{Is_Radical=	true}', "");
     Expect(0, 12245, '\p{^Is_Radical=	true}', "");
     Expect(0, 12245, '\P{Is_Radical=	true}', "");
@@ -127085,8 +128301,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12246, '\p{^Is_Radical=	true}', "");
     Expect(1, 12246, '\P{Is_Radical=	true}', "");
     Expect(0, 12246, '\P{^Is_Radical=	true}', "");
-    Error('\p{Regional_Indicator= 	No/a/}');
-    Error('\P{Regional_Indicator= 	No/a/}');
+    Error('\p{Regional_Indicator= 	No:=}');
+    Error('\P{Regional_Indicator= 	No:=}');
     Expect(1, 127488, '\p{Regional_Indicator=:\ANo\z:}', "");;
     Expect(0, 127487, '\p{Regional_Indicator=:\ANo\z:}', "");;
     Expect(1, 127488, '\p{Regional_Indicator=no}', "");
@@ -127099,16 +128315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127487, '\P{^Regional_Indicator=no}', "");
     Expect(1, 127488, '\p{Regional_Indicator=:\Ano\z:}', "");;
     Expect(0, 127487, '\p{Regional_Indicator=:\Ano\z:}', "");;
-    Expect(1, 127488, '\p{Regional_Indicator=_no}', "");
-    Expect(0, 127488, '\p{^Regional_Indicator=_no}', "");
-    Expect(0, 127488, '\P{Regional_Indicator=_no}', "");
-    Expect(1, 127488, '\P{^Regional_Indicator=_no}', "");
-    Expect(0, 127487, '\p{Regional_Indicator=_no}', "");
-    Expect(1, 127487, '\p{^Regional_Indicator=_no}', "");
-    Expect(1, 127487, '\P{Regional_Indicator=_no}', "");
-    Expect(0, 127487, '\P{^Regional_Indicator=_no}', "");
-    Error('\p{RI=	_n:=}');
-    Error('\P{RI=	_n:=}');
+    Expect(1, 127488, '\p{Regional_Indicator=--No}', "");
+    Expect(0, 127488, '\p{^Regional_Indicator=--No}', "");
+    Expect(0, 127488, '\P{Regional_Indicator=--No}', "");
+    Expect(1, 127488, '\P{^Regional_Indicator=--No}', "");
+    Expect(0, 127487, '\p{Regional_Indicator=--No}', "");
+    Expect(1, 127487, '\p{^Regional_Indicator=--No}', "");
+    Expect(1, 127487, '\P{Regional_Indicator=--No}', "");
+    Expect(0, 127487, '\P{^Regional_Indicator=--No}', "");
+    Error('\p{RI=	:=N}');
+    Error('\P{RI=	:=N}');
     Expect(1, 127488, '\p{RI=:\AN\z:}', "");;
     Expect(0, 127487, '\p{RI=:\AN\z:}', "");;
     Expect(1, 127488, '\p{RI=n}', "");
@@ -127121,52 +128337,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127487, '\P{^RI=n}', "");
     Expect(1, 127488, '\p{RI=:\An\z:}', "");;
     Expect(0, 127487, '\p{RI=:\An\z:}', "");;
-    Expect(1, 127488, '\p{RI= -N}', "");
-    Expect(0, 127488, '\p{^RI= -N}', "");
-    Expect(0, 127488, '\P{RI= -N}', "");
-    Expect(1, 127488, '\P{^RI= -N}', "");
-    Expect(0, 127487, '\p{RI= -N}', "");
-    Expect(1, 127487, '\p{^RI= -N}', "");
-    Expect(1, 127487, '\P{RI= -N}', "");
-    Expect(0, 127487, '\P{^RI= -N}', "");
-    Error('\p{Is_Regional_Indicator=/a/F}');
-    Error('\P{Is_Regional_Indicator=/a/F}');
-    Expect(1, 127488, '\p{Is_Regional_Indicator:   f}', "");
-    Expect(0, 127488, '\p{^Is_Regional_Indicator:   f}', "");
-    Expect(0, 127488, '\P{Is_Regional_Indicator:   f}', "");
-    Expect(1, 127488, '\P{^Is_Regional_Indicator:   f}', "");
-    Expect(0, 127487, '\p{Is_Regional_Indicator:   f}', "");
-    Expect(1, 127487, '\p{^Is_Regional_Indicator:   f}', "");
-    Expect(1, 127487, '\P{Is_Regional_Indicator:   f}', "");
-    Expect(0, 127487, '\P{^Is_Regional_Indicator:   f}', "");
-    Expect(1, 127488, '\p{Is_Regional_Indicator=__F}', "");
-    Expect(0, 127488, '\p{^Is_Regional_Indicator=__F}', "");
-    Expect(0, 127488, '\P{Is_Regional_Indicator=__F}', "");
-    Expect(1, 127488, '\P{^Is_Regional_Indicator=__F}', "");
-    Expect(0, 127487, '\p{Is_Regional_Indicator=__F}', "");
-    Expect(1, 127487, '\p{^Is_Regional_Indicator=__F}', "");
-    Expect(1, 127487, '\P{Is_Regional_Indicator=__F}', "");
-    Expect(0, 127487, '\P{^Is_Regional_Indicator=__F}', "");
-    Error('\p{Is_RI=_:=false}');
-    Error('\P{Is_RI=_:=false}');
-    Expect(1, 127488, '\p{Is_RI=false}', "");
-    Expect(0, 127488, '\p{^Is_RI=false}', "");
-    Expect(0, 127488, '\P{Is_RI=false}', "");
-    Expect(1, 127488, '\P{^Is_RI=false}', "");
-    Expect(0, 127487, '\p{Is_RI=false}', "");
-    Expect(1, 127487, '\p{^Is_RI=false}', "");
-    Expect(1, 127487, '\P{Is_RI=false}', "");
-    Expect(0, 127487, '\P{^Is_RI=false}', "");
-    Expect(1, 127488, '\p{Is_RI=- False}', "");
-    Expect(0, 127488, '\p{^Is_RI=- False}', "");
-    Expect(0, 127488, '\P{Is_RI=- False}', "");
-    Expect(1, 127488, '\P{^Is_RI=- False}', "");
-    Expect(0, 127487, '\p{Is_RI=- False}', "");
-    Expect(1, 127487, '\p{^Is_RI=- False}', "");
-    Expect(1, 127487, '\P{Is_RI=- False}', "");
-    Expect(0, 127487, '\P{^Is_RI=- False}', "");
-    Error('\p{Regional_Indicator: :=Yes}');
-    Error('\P{Regional_Indicator: :=Yes}');
+    Expect(1, 127488, '\p{RI= 	n}', "");
+    Expect(0, 127488, '\p{^RI= 	n}', "");
+    Expect(0, 127488, '\P{RI= 	n}', "");
+    Expect(1, 127488, '\P{^RI= 	n}', "");
+    Expect(0, 127487, '\p{RI= 	n}', "");
+    Expect(1, 127487, '\p{^RI= 	n}', "");
+    Expect(1, 127487, '\P{RI= 	n}', "");
+    Expect(0, 127487, '\P{^RI= 	n}', "");
+    Error('\p{Is_Regional_Indicator=/a/	f}');
+    Error('\P{Is_Regional_Indicator=/a/	f}');
+    Expect(1, 127488, '\p{Is_Regional_Indicator=f}', "");
+    Expect(0, 127488, '\p{^Is_Regional_Indicator=f}', "");
+    Expect(0, 127488, '\P{Is_Regional_Indicator=f}', "");
+    Expect(1, 127488, '\P{^Is_Regional_Indicator=f}', "");
+    Expect(0, 127487, '\p{Is_Regional_Indicator=f}', "");
+    Expect(1, 127487, '\p{^Is_Regional_Indicator=f}', "");
+    Expect(1, 127487, '\P{Is_Regional_Indicator=f}', "");
+    Expect(0, 127487, '\P{^Is_Regional_Indicator=f}', "");
+    Expect(1, 127488, '\p{Is_Regional_Indicator=- f}', "");
+    Expect(0, 127488, '\p{^Is_Regional_Indicator=- f}', "");
+    Expect(0, 127488, '\P{Is_Regional_Indicator=- f}', "");
+    Expect(1, 127488, '\P{^Is_Regional_Indicator=- f}', "");
+    Expect(0, 127487, '\p{Is_Regional_Indicator=- f}', "");
+    Expect(1, 127487, '\p{^Is_Regional_Indicator=- f}', "");
+    Expect(1, 127487, '\P{Is_Regional_Indicator=- f}', "");
+    Expect(0, 127487, '\P{^Is_Regional_Indicator=- f}', "");
+    Error('\p{Is_RI=:=_False}');
+    Error('\P{Is_RI=:=_False}');
+    Expect(1, 127488, '\p{Is_RI:false}', "");
+    Expect(0, 127488, '\p{^Is_RI:false}', "");
+    Expect(0, 127488, '\P{Is_RI:false}', "");
+    Expect(1, 127488, '\P{^Is_RI:false}', "");
+    Expect(0, 127487, '\p{Is_RI:false}', "");
+    Expect(1, 127487, '\p{^Is_RI:false}', "");
+    Expect(1, 127487, '\P{Is_RI:false}', "");
+    Expect(0, 127487, '\P{^Is_RI:false}', "");
+    Expect(1, 127488, '\p{Is_RI=  False}', "");
+    Expect(0, 127488, '\p{^Is_RI=  False}', "");
+    Expect(0, 127488, '\P{Is_RI=  False}', "");
+    Expect(1, 127488, '\P{^Is_RI=  False}', "");
+    Expect(0, 127487, '\p{Is_RI=  False}', "");
+    Expect(1, 127487, '\p{^Is_RI=  False}', "");
+    Expect(1, 127487, '\P{Is_RI=  False}', "");
+    Expect(0, 127487, '\P{^Is_RI=  False}', "");
+    Error('\p{Regional_Indicator=/a/YES}');
+    Error('\P{Regional_Indicator=/a/YES}');
     Expect(1, 127487, '\p{Regional_Indicator=:\AYes\z:}', "");;
     Expect(0, 127488, '\p{Regional_Indicator=:\AYes\z:}', "");;
     Expect(1, 127487, '\p{Regional_Indicator=yes}', "");
@@ -127179,16 +128395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127488, '\P{^Regional_Indicator=yes}', "");
     Expect(1, 127487, '\p{Regional_Indicator=:\Ayes\z:}', "");;
     Expect(0, 127488, '\p{Regional_Indicator=:\Ayes\z:}', "");;
-    Expect(1, 127487, '\p{Regional_Indicator=-_Yes}', "");
-    Expect(0, 127487, '\p{^Regional_Indicator=-_Yes}', "");
-    Expect(0, 127487, '\P{Regional_Indicator=-_Yes}', "");
-    Expect(1, 127487, '\P{^Regional_Indicator=-_Yes}', "");
-    Expect(0, 127488, '\p{Regional_Indicator=-_Yes}', "");
-    Expect(1, 127488, '\p{^Regional_Indicator=-_Yes}', "");
-    Expect(1, 127488, '\P{Regional_Indicator=-_Yes}', "");
-    Expect(0, 127488, '\P{^Regional_Indicator=-_Yes}', "");
-    Error('\p{RI= _Y:=}');
-    Error('\P{RI= _Y:=}');
+    Expect(1, 127487, '\p{Regional_Indicator=	YES}', "");
+    Expect(0, 127487, '\p{^Regional_Indicator=	YES}', "");
+    Expect(0, 127487, '\P{Regional_Indicator=	YES}', "");
+    Expect(1, 127487, '\P{^Regional_Indicator=	YES}', "");
+    Expect(0, 127488, '\p{Regional_Indicator=	YES}', "");
+    Expect(1, 127488, '\p{^Regional_Indicator=	YES}', "");
+    Expect(1, 127488, '\P{Regional_Indicator=	YES}', "");
+    Expect(0, 127488, '\P{^Regional_Indicator=	YES}', "");
+    Error('\p{RI:   /a/Y}');
+    Error('\P{RI:   /a/Y}');
     Expect(1, 127487, '\p{RI=:\AY\z:}', "");;
     Expect(0, 127488, '\p{RI=:\AY\z:}', "");;
     Expect(1, 127487, '\p{RI=y}', "");
@@ -127201,58 +128417,50 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127488, '\P{^RI=y}', "");
     Expect(1, 127487, '\p{RI=:\Ay\z:}', "");;
     Expect(0, 127488, '\p{RI=:\Ay\z:}', "");;
-    Expect(1, 127487, '\p{RI=		Y}', "");
-    Expect(0, 127487, '\p{^RI=		Y}', "");
-    Expect(0, 127487, '\P{RI=		Y}', "");
-    Expect(1, 127487, '\P{^RI=		Y}', "");
-    Expect(0, 127488, '\p{RI=		Y}', "");
-    Expect(1, 127488, '\p{^RI=		Y}', "");
-    Expect(1, 127488, '\P{RI=		Y}', "");
-    Expect(0, 127488, '\P{^RI=		Y}', "");
-    Error('\p{Is_Regional_Indicator= _T:=}');
-    Error('\P{Is_Regional_Indicator= _T:=}');
-    Expect(1, 127487, '\p{Is_Regional_Indicator:   t}', "");
-    Expect(0, 127487, '\p{^Is_Regional_Indicator:   t}', "");
-    Expect(0, 127487, '\P{Is_Regional_Indicator:   t}', "");
-    Expect(1, 127487, '\P{^Is_Regional_Indicator:   t}', "");
-    Expect(0, 127488, '\p{Is_Regional_Indicator:   t}', "");
-    Expect(1, 127488, '\p{^Is_Regional_Indicator:   t}', "");
-    Expect(1, 127488, '\P{Is_Regional_Indicator:   t}', "");
-    Expect(0, 127488, '\P{^Is_Regional_Indicator:   t}', "");
-    Expect(1, 127487, '\p{Is_Regional_Indicator= -T}', "");
-    Expect(0, 127487, '\p{^Is_Regional_Indicator= -T}', "");
-    Expect(0, 127487, '\P{Is_Regional_Indicator= -T}', "");
-    Expect(1, 127487, '\P{^Is_Regional_Indicator= -T}', "");
-    Expect(0, 127488, '\p{Is_Regional_Indicator= -T}', "");
-    Expect(1, 127488, '\p{^Is_Regional_Indicator= -T}', "");
-    Expect(1, 127488, '\P{Is_Regional_Indicator= -T}', "");
-    Expect(0, 127488, '\P{^Is_Regional_Indicator= -T}', "");
-    Error('\p{Is_RI=	-True:=}');
-    Error('\P{Is_RI=	-True:=}');
-    Expect(1, 127487, '\p{Is_RI: true}', "");
-    Expect(0, 127487, '\p{^Is_RI: true}', "");
-    Expect(0, 127487, '\P{Is_RI: true}', "");
-    Expect(1, 127487, '\P{^Is_RI: true}', "");
-    Expect(0, 127488, '\p{Is_RI: true}', "");
-    Expect(1, 127488, '\p{^Is_RI: true}', "");
-    Expect(1, 127488, '\P{Is_RI: true}', "");
-    Expect(0, 127488, '\P{^Is_RI: true}', "");
-    Expect(1, 127487, '\p{Is_RI=_True}', "");
-    Expect(0, 127487, '\p{^Is_RI=_True}', "");
-    Expect(0, 127487, '\P{Is_RI=_True}', "");
-    Expect(1, 127487, '\P{^Is_RI=_True}', "");
-    Expect(0, 127488, '\p{Is_RI=_True}', "");
-    Expect(1, 127488, '\p{^Is_RI=_True}', "");
-    Expect(1, 127488, '\P{Is_RI=_True}', "");
-    Expect(0, 127488, '\P{^Is_RI=_True}', "");
+    Expect(1, 127487, '\p{RI=_ Y}', "");
+    Expect(0, 127487, '\p{^RI=_ Y}', "");
+    Expect(0, 127487, '\P{RI=_ Y}', "");
+    Expect(1, 127487, '\P{^RI=_ Y}', "");
+    Expect(0, 127488, '\p{RI=_ Y}', "");
+    Expect(1, 127488, '\p{^RI=_ Y}', "");
+    Expect(1, 127488, '\P{RI=_ Y}', "");
+    Expect(0, 127488, '\P{^RI=_ Y}', "");
+    Error('\p{Is_Regional_Indicator=:=-_T}');
+    Error('\P{Is_Regional_Indicator=:=-_T}');
+    Expect(1, 127487, '\p{Is_Regional_Indicator=t}', "");
+    Expect(0, 127487, '\p{^Is_Regional_Indicator=t}', "");
+    Expect(0, 127487, '\P{Is_Regional_Indicator=t}', "");
+    Expect(1, 127487, '\P{^Is_Regional_Indicator=t}', "");
+    Expect(0, 127488, '\p{Is_Regional_Indicator=t}', "");
+    Expect(1, 127488, '\p{^Is_Regional_Indicator=t}', "");
+    Expect(1, 127488, '\P{Is_Regional_Indicator=t}', "");
+    Expect(0, 127488, '\P{^Is_Regional_Indicator=t}', "");
+    Expect(1, 127487, '\p{Is_Regional_Indicator=_ T}', "");
+    Expect(0, 127487, '\p{^Is_Regional_Indicator=_ T}', "");
+    Expect(0, 127487, '\P{Is_Regional_Indicator=_ T}', "");
+    Expect(1, 127487, '\P{^Is_Regional_Indicator=_ T}', "");
+    Expect(0, 127488, '\p{Is_Regional_Indicator=_ T}', "");
+    Expect(1, 127488, '\p{^Is_Regional_Indicator=_ T}', "");
+    Expect(1, 127488, '\P{Is_Regional_Indicator=_ T}', "");
+    Expect(0, 127488, '\P{^Is_Regional_Indicator=_ T}', "");
+    Error('\p{Is_RI=_/a/TRUE}');
+    Error('\P{Is_RI=_/a/TRUE}');
+    Expect(1, 127487, '\p{Is_RI=true}', "");
+    Expect(0, 127487, '\p{^Is_RI=true}', "");
+    Expect(0, 127487, '\P{Is_RI=true}', "");
+    Expect(1, 127487, '\P{^Is_RI=true}', "");
+    Expect(0, 127488, '\p{Is_RI=true}', "");
+    Expect(1, 127488, '\p{^Is_RI=true}', "");
+    Expect(1, 127488, '\P{Is_RI=true}', "");
+    Expect(0, 127488, '\P{^Is_RI=true}', "");
     Error('\p{sentencebreak}');
     Error('\P{sentencebreak}');
     Error('\p{sb}');
     Error('\P{sb}');
     Error('\p{_perlsb}');
     Error('\P{_perlsb}');
-    Error('\p{Sentence_Break=/a/_	ATerm}');
-    Error('\P{Sentence_Break=/a/_	ATerm}');
+    Error('\p{Sentence_Break:	/a/aterm}');
+    Error('\P{Sentence_Break:	/a/aterm}');
     Expect(1, 65294, '\p{Sentence_Break=:\AATerm\z:}', "");;
     Expect(0, 65295, '\p{Sentence_Break=:\AATerm\z:}', "");;
     Expect(1, 65294, '\p{Sentence_Break=aterm}', "");
@@ -127265,16 +128473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65295, '\P{^Sentence_Break=aterm}', "");
     Expect(1, 65294, '\p{Sentence_Break=:\Aaterm\z:}', "");;
     Expect(0, 65295, '\p{Sentence_Break=:\Aaterm\z:}', "");;
-    Expect(1, 65294, '\p{Sentence_Break=	 ATerm}', "");
-    Expect(0, 65294, '\p{^Sentence_Break=	 ATerm}', "");
-    Expect(0, 65294, '\P{Sentence_Break=	 ATerm}', "");
-    Expect(1, 65294, '\P{^Sentence_Break=	 ATerm}', "");
-    Expect(0, 65295, '\p{Sentence_Break=	 ATerm}', "");
-    Expect(1, 65295, '\p{^Sentence_Break=	 ATerm}', "");
-    Expect(1, 65295, '\P{Sentence_Break=	 ATerm}', "");
-    Expect(0, 65295, '\P{^Sentence_Break=	 ATerm}', "");
-    Error('\p{SB=-AT:=}');
-    Error('\P{SB=-AT:=}');
+    Expect(1, 65294, '\p{Sentence_Break=__ATerm}', "");
+    Expect(0, 65294, '\p{^Sentence_Break=__ATerm}', "");
+    Expect(0, 65294, '\P{Sentence_Break=__ATerm}', "");
+    Expect(1, 65294, '\P{^Sentence_Break=__ATerm}', "");
+    Expect(0, 65295, '\p{Sentence_Break=__ATerm}', "");
+    Expect(1, 65295, '\p{^Sentence_Break=__ATerm}', "");
+    Expect(1, 65295, '\P{Sentence_Break=__ATerm}', "");
+    Expect(0, 65295, '\P{^Sentence_Break=__ATerm}', "");
+    Error('\p{SB=_:=AT}');
+    Error('\P{SB=_:=AT}');
     Expect(1, 65294, '\p{SB=:\AAT\z:}', "");;
     Expect(0, 65295, '\p{SB=:\AAT\z:}', "");;
     Expect(1, 65294, '\p{SB=at}', "");
@@ -127287,34 +128495,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65295, '\P{^SB=at}', "");
     Expect(1, 65294, '\p{SB=:\Aat\z:}', "");;
     Expect(0, 65295, '\p{SB=:\Aat\z:}', "");;
-    Expect(1, 65294, '\p{SB=--AT}', "");
-    Expect(0, 65294, '\p{^SB=--AT}', "");
-    Expect(0, 65294, '\P{SB=--AT}', "");
-    Expect(1, 65294, '\P{^SB=--AT}', "");
-    Expect(0, 65295, '\p{SB=--AT}', "");
-    Expect(1, 65295, '\p{^SB=--AT}', "");
-    Expect(1, 65295, '\P{SB=--AT}', "");
-    Expect(0, 65295, '\P{^SB=--AT}', "");
-    Error('\p{Is_Sentence_Break=	-aterm:=}');
-    Error('\P{Is_Sentence_Break=	-aterm:=}');
-    Expect(1, 65294, '\p{Is_Sentence_Break=aterm}', "");
-    Expect(0, 65294, '\p{^Is_Sentence_Break=aterm}', "");
-    Expect(0, 65294, '\P{Is_Sentence_Break=aterm}', "");
-    Expect(1, 65294, '\P{^Is_Sentence_Break=aterm}', "");
-    Expect(0, 65295, '\p{Is_Sentence_Break=aterm}', "");
-    Expect(1, 65295, '\p{^Is_Sentence_Break=aterm}', "");
-    Expect(1, 65295, '\P{Is_Sentence_Break=aterm}', "");
-    Expect(0, 65295, '\P{^Is_Sentence_Break=aterm}', "");
-    Expect(1, 65294, '\p{Is_Sentence_Break: 	-ATerm}', "");
-    Expect(0, 65294, '\p{^Is_Sentence_Break: 	-ATerm}', "");
-    Expect(0, 65294, '\P{Is_Sentence_Break: 	-ATerm}', "");
-    Expect(1, 65294, '\P{^Is_Sentence_Break: 	-ATerm}', "");
-    Expect(0, 65295, '\p{Is_Sentence_Break: 	-ATerm}', "");
-    Expect(1, 65295, '\p{^Is_Sentence_Break: 	-ATerm}', "");
-    Expect(1, 65295, '\P{Is_Sentence_Break: 	-ATerm}', "");
-    Expect(0, 65295, '\P{^Is_Sentence_Break: 	-ATerm}', "");
-    Error('\p{Is_SB=_ AT/a/}');
-    Error('\P{Is_SB=_ AT/a/}');
+    Expect(1, 65294, '\p{SB=  at}', "");
+    Expect(0, 65294, '\p{^SB=  at}', "");
+    Expect(0, 65294, '\P{SB=  at}', "");
+    Expect(1, 65294, '\P{^SB=  at}', "");
+    Expect(0, 65295, '\p{SB=  at}', "");
+    Expect(1, 65295, '\p{^SB=  at}', "");
+    Expect(1, 65295, '\P{SB=  at}', "");
+    Expect(0, 65295, '\P{^SB=  at}', "");
+    Error('\p{Is_Sentence_Break=	/a/ATERM}');
+    Error('\P{Is_Sentence_Break=	/a/ATERM}');
+    Expect(1, 65294, '\p{Is_Sentence_Break:aterm}', "");
+    Expect(0, 65294, '\p{^Is_Sentence_Break:aterm}', "");
+    Expect(0, 65294, '\P{Is_Sentence_Break:aterm}', "");
+    Expect(1, 65294, '\P{^Is_Sentence_Break:aterm}', "");
+    Expect(0, 65295, '\p{Is_Sentence_Break:aterm}', "");
+    Expect(1, 65295, '\p{^Is_Sentence_Break:aterm}', "");
+    Expect(1, 65295, '\P{Is_Sentence_Break:aterm}', "");
+    Expect(0, 65295, '\P{^Is_Sentence_Break:aterm}', "");
+    Expect(1, 65294, '\p{Is_Sentence_Break=--ATERM}', "");
+    Expect(0, 65294, '\p{^Is_Sentence_Break=--ATERM}', "");
+    Expect(0, 65294, '\P{Is_Sentence_Break=--ATERM}', "");
+    Expect(1, 65294, '\P{^Is_Sentence_Break=--ATERM}', "");
+    Expect(0, 65295, '\p{Is_Sentence_Break=--ATERM}', "");
+    Expect(1, 65295, '\p{^Is_Sentence_Break=--ATERM}', "");
+    Expect(1, 65295, '\P{Is_Sentence_Break=--ATERM}', "");
+    Expect(0, 65295, '\P{^Is_Sentence_Break=--ATERM}', "");
+    Error('\p{Is_SB:	 AT/a/}');
+    Error('\P{Is_SB:	 AT/a/}');
     Expect(1, 65294, '\p{Is_SB=at}', "");
     Expect(0, 65294, '\p{^Is_SB=at}', "");
     Expect(0, 65294, '\P{Is_SB=at}', "");
@@ -127323,16 +128531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65295, '\p{^Is_SB=at}', "");
     Expect(1, 65295, '\P{Is_SB=at}', "");
     Expect(0, 65295, '\P{^Is_SB=at}', "");
-    Expect(1, 65294, '\p{Is_SB=-at}', "");
-    Expect(0, 65294, '\p{^Is_SB=-at}', "");
-    Expect(0, 65294, '\P{Is_SB=-at}', "");
-    Expect(1, 65294, '\P{^Is_SB=-at}', "");
-    Expect(0, 65295, '\p{Is_SB=-at}', "");
-    Expect(1, 65295, '\p{^Is_SB=-at}', "");
-    Expect(1, 65295, '\P{Is_SB=-at}', "");
-    Expect(0, 65295, '\P{^Is_SB=-at}', "");
-    Error('\p{Sentence_Break=:=	-close}');
-    Error('\P{Sentence_Break=:=	-close}');
+    Expect(1, 65294, '\p{Is_SB=  at}', "");
+    Expect(0, 65294, '\p{^Is_SB=  at}', "");
+    Expect(0, 65294, '\P{Is_SB=  at}', "");
+    Expect(1, 65294, '\P{^Is_SB=  at}', "");
+    Expect(0, 65295, '\p{Is_SB=  at}', "");
+    Expect(1, 65295, '\p{^Is_SB=  at}', "");
+    Expect(1, 65295, '\P{Is_SB=  at}', "");
+    Expect(0, 65295, '\P{^Is_SB=  at}', "");
+    Error('\p{Sentence_Break=/a/CLOSE}');
+    Error('\P{Sentence_Break=/a/CLOSE}');
     Expect(1, 128632, '\p{Sentence_Break=:\AClose\z:}', "");;
     Expect(0, 128633, '\p{Sentence_Break=:\AClose\z:}', "");;
     Expect(1, 128632, '\p{Sentence_Break=close}', "");
@@ -127345,38 +128553,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 128633, '\P{^Sentence_Break=close}', "");
     Expect(1, 128632, '\p{Sentence_Break=:\Aclose\z:}', "");;
     Expect(0, 128633, '\p{Sentence_Break=:\Aclose\z:}', "");;
-    Expect(1, 128632, '\p{Sentence_Break: - CLOSE}', "");
-    Expect(0, 128632, '\p{^Sentence_Break: - CLOSE}', "");
-    Expect(0, 128632, '\P{Sentence_Break: - CLOSE}', "");
-    Expect(1, 128632, '\P{^Sentence_Break: - CLOSE}', "");
-    Expect(0, 128633, '\p{Sentence_Break: - CLOSE}', "");
-    Expect(1, 128633, '\p{^Sentence_Break: - CLOSE}', "");
-    Expect(1, 128633, '\P{Sentence_Break: - CLOSE}', "");
-    Expect(0, 128633, '\P{^Sentence_Break: - CLOSE}', "");
-    Error('\p{SB=--CL/a/}');
-    Error('\P{SB=--CL/a/}');
+    Expect(1, 128632, '\p{Sentence_Break= 	Close}', "");
+    Expect(0, 128632, '\p{^Sentence_Break= 	Close}', "");
+    Expect(0, 128632, '\P{Sentence_Break= 	Close}', "");
+    Expect(1, 128632, '\P{^Sentence_Break= 	Close}', "");
+    Expect(0, 128633, '\p{Sentence_Break= 	Close}', "");
+    Expect(1, 128633, '\p{^Sentence_Break= 	Close}', "");
+    Expect(1, 128633, '\P{Sentence_Break= 	Close}', "");
+    Expect(0, 128633, '\P{^Sentence_Break= 	Close}', "");
+    Error('\p{SB=:=-CL}');
+    Error('\P{SB=:=-CL}');
     Expect(1, 128632, '\p{SB=:\ACL\z:}', "");;
     Expect(0, 128633, '\p{SB=:\ACL\z:}', "");;
-    Expect(1, 128632, '\p{SB: cl}', "");
-    Expect(0, 128632, '\p{^SB: cl}', "");
-    Expect(0, 128632, '\P{SB: cl}', "");
-    Expect(1, 128632, '\P{^SB: cl}', "");
-    Expect(0, 128633, '\p{SB: cl}', "");
-    Expect(1, 128633, '\p{^SB: cl}', "");
-    Expect(1, 128633, '\P{SB: cl}', "");
-    Expect(0, 128633, '\P{^SB: cl}', "");
+    Expect(1, 128632, '\p{SB=cl}', "");
+    Expect(0, 128632, '\p{^SB=cl}', "");
+    Expect(0, 128632, '\P{SB=cl}', "");
+    Expect(1, 128632, '\P{^SB=cl}', "");
+    Expect(0, 128633, '\p{SB=cl}', "");
+    Expect(1, 128633, '\p{^SB=cl}', "");
+    Expect(1, 128633, '\P{SB=cl}', "");
+    Expect(0, 128633, '\P{^SB=cl}', "");
     Expect(1, 128632, '\p{SB=:\Acl\z:}', "");;
     Expect(0, 128633, '\p{SB=:\Acl\z:}', "");;
-    Expect(1, 128632, '\p{SB=	cl}', "");
-    Expect(0, 128632, '\p{^SB=	cl}', "");
-    Expect(0, 128632, '\P{SB=	cl}', "");
-    Expect(1, 128632, '\P{^SB=	cl}', "");
-    Expect(0, 128633, '\p{SB=	cl}', "");
-    Expect(1, 128633, '\p{^SB=	cl}', "");
-    Expect(1, 128633, '\P{SB=	cl}', "");
-    Expect(0, 128633, '\P{^SB=	cl}', "");
-    Error('\p{Is_Sentence_Break=	:=Close}');
-    Error('\P{Is_Sentence_Break=	:=Close}');
+    Expect(1, 128632, '\p{SB= CL}', "");
+    Expect(0, 128632, '\p{^SB= CL}', "");
+    Expect(0, 128632, '\P{SB= CL}', "");
+    Expect(1, 128632, '\P{^SB= CL}', "");
+    Expect(0, 128633, '\p{SB= CL}', "");
+    Expect(1, 128633, '\p{^SB= CL}', "");
+    Expect(1, 128633, '\P{SB= CL}', "");
+    Expect(0, 128633, '\P{^SB= CL}', "");
+    Error('\p{Is_Sentence_Break=	_CLOSE/a/}');
+    Error('\P{Is_Sentence_Break=	_CLOSE/a/}');
     Expect(1, 128632, '\p{Is_Sentence_Break=close}', "");
     Expect(0, 128632, '\p{^Is_Sentence_Break=close}', "");
     Expect(0, 128632, '\P{Is_Sentence_Break=close}', "");
@@ -127385,16 +128593,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128633, '\p{^Is_Sentence_Break=close}', "");
     Expect(1, 128633, '\P{Is_Sentence_Break=close}', "");
     Expect(0, 128633, '\P{^Is_Sentence_Break=close}', "");
-    Expect(1, 128632, '\p{Is_Sentence_Break=_-CLOSE}', "");
-    Expect(0, 128632, '\p{^Is_Sentence_Break=_-CLOSE}', "");
-    Expect(0, 128632, '\P{Is_Sentence_Break=_-CLOSE}', "");
-    Expect(1, 128632, '\P{^Is_Sentence_Break=_-CLOSE}', "");
-    Expect(0, 128633, '\p{Is_Sentence_Break=_-CLOSE}', "");
-    Expect(1, 128633, '\p{^Is_Sentence_Break=_-CLOSE}', "");
-    Expect(1, 128633, '\P{Is_Sentence_Break=_-CLOSE}', "");
-    Expect(0, 128633, '\P{^Is_Sentence_Break=_-CLOSE}', "");
-    Error('\p{Is_SB=	-CL/a/}');
-    Error('\P{Is_SB=	-CL/a/}');
+    Expect(1, 128632, '\p{Is_Sentence_Break=	-CLOSE}', "");
+    Expect(0, 128632, '\p{^Is_Sentence_Break=	-CLOSE}', "");
+    Expect(0, 128632, '\P{Is_Sentence_Break=	-CLOSE}', "");
+    Expect(1, 128632, '\P{^Is_Sentence_Break=	-CLOSE}', "");
+    Expect(0, 128633, '\p{Is_Sentence_Break=	-CLOSE}', "");
+    Expect(1, 128633, '\p{^Is_Sentence_Break=	-CLOSE}', "");
+    Expect(1, 128633, '\P{Is_Sentence_Break=	-CLOSE}', "");
+    Expect(0, 128633, '\P{^Is_Sentence_Break=	-CLOSE}', "");
+    Error('\p{Is_SB=-/a/cl}');
+    Error('\P{Is_SB=-/a/cl}');
     Expect(1, 128632, '\p{Is_SB=cl}', "");
     Expect(0, 128632, '\p{^Is_SB=cl}', "");
     Expect(0, 128632, '\P{Is_SB=cl}', "");
@@ -127403,36 +128611,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 128633, '\p{^Is_SB=cl}', "");
     Expect(1, 128633, '\P{Is_SB=cl}', "");
     Expect(0, 128633, '\P{^Is_SB=cl}', "");
-    Expect(1, 128632, '\p{Is_SB=_cl}', "");
-    Expect(0, 128632, '\p{^Is_SB=_cl}', "");
-    Expect(0, 128632, '\P{Is_SB=_cl}', "");
-    Expect(1, 128632, '\P{^Is_SB=_cl}', "");
-    Expect(0, 128633, '\p{Is_SB=_cl}', "");
-    Expect(1, 128633, '\p{^Is_SB=_cl}', "");
-    Expect(1, 128633, '\P{Is_SB=_cl}', "");
-    Expect(0, 128633, '\P{^Is_SB=_cl}', "");
-    Error('\p{Sentence_Break:	- CR:=}');
-    Error('\P{Sentence_Break:	- CR:=}');
+    Expect(1, 128632, '\p{Is_SB=-_cl}', "");
+    Expect(0, 128632, '\p{^Is_SB=-_cl}', "");
+    Expect(0, 128632, '\P{Is_SB=-_cl}', "");
+    Expect(1, 128632, '\P{^Is_SB=-_cl}', "");
+    Expect(0, 128633, '\p{Is_SB=-_cl}', "");
+    Expect(1, 128633, '\p{^Is_SB=-_cl}', "");
+    Expect(1, 128633, '\P{Is_SB=-_cl}', "");
+    Expect(0, 128633, '\P{^Is_SB=-_cl}', "");
+    Error('\p{Sentence_Break=:=CR}');
+    Error('\P{Sentence_Break=:=CR}');
     Expect(1, 13, '\p{Sentence_Break=:\ACR\z:}', "");;
     Expect(0, 14, '\p{Sentence_Break=:\ACR\z:}', "");;
-    Expect(1, 13, '\p{Sentence_Break=cr}', "");
-    Expect(0, 13, '\p{^Sentence_Break=cr}', "");
-    Expect(0, 13, '\P{Sentence_Break=cr}', "");
-    Expect(1, 13, '\P{^Sentence_Break=cr}', "");
-    Expect(0, 14, '\p{Sentence_Break=cr}', "");
-    Expect(1, 14, '\p{^Sentence_Break=cr}', "");
-    Expect(1, 14, '\P{Sentence_Break=cr}', "");
-    Expect(0, 14, '\P{^Sentence_Break=cr}', "");
+    Expect(1, 13, '\p{Sentence_Break:cr}', "");
+    Expect(0, 13, '\p{^Sentence_Break:cr}', "");
+    Expect(0, 13, '\P{Sentence_Break:cr}', "");
+    Expect(1, 13, '\P{^Sentence_Break:cr}', "");
+    Expect(0, 14, '\p{Sentence_Break:cr}', "");
+    Expect(1, 14, '\p{^Sentence_Break:cr}', "");
+    Expect(1, 14, '\P{Sentence_Break:cr}', "");
+    Expect(0, 14, '\P{^Sentence_Break:cr}', "");
     Expect(1, 13, '\p{Sentence_Break=:\Acr\z:}', "");;
     Expect(0, 14, '\p{Sentence_Break=:\Acr\z:}', "");;
-    Expect(1, 13, '\p{Sentence_Break= _cr}', "");
-    Expect(0, 13, '\p{^Sentence_Break= _cr}', "");
-    Expect(0, 13, '\P{Sentence_Break= _cr}', "");
-    Expect(1, 13, '\P{^Sentence_Break= _cr}', "");
-    Expect(0, 14, '\p{Sentence_Break= _cr}', "");
-    Expect(1, 14, '\p{^Sentence_Break= _cr}', "");
-    Expect(1, 14, '\P{Sentence_Break= _cr}', "");
-    Expect(0, 14, '\P{^Sentence_Break= _cr}', "");
     Error('\p{SB= :=CR}');
     Error('\P{SB= :=CR}');
     Expect(1, 13, '\p{SB=:\ACR\z:}', "");;
@@ -127455,8 +128655,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 14, '\p{^SB=--CR}', "");
     Expect(1, 14, '\P{SB=--CR}', "");
     Expect(0, 14, '\P{^SB=--CR}', "");
-    Error('\p{Is_Sentence_Break=-:=CR}');
-    Error('\P{Is_Sentence_Break=-:=CR}');
+    Error('\p{Is_Sentence_Break=	/a/cr}');
+    Error('\P{Is_Sentence_Break=	/a/cr}');
     Expect(1, 13, '\p{Is_Sentence_Break=cr}', "");
     Expect(0, 13, '\p{^Is_Sentence_Break=cr}', "");
     Expect(0, 13, '\P{Is_Sentence_Break=cr}', "");
@@ -127465,34 +128665,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 14, '\p{^Is_Sentence_Break=cr}', "");
     Expect(1, 14, '\P{Is_Sentence_Break=cr}', "");
     Expect(0, 14, '\P{^Is_Sentence_Break=cr}', "");
-    Expect(1, 13, '\p{Is_Sentence_Break= CR}', "");
-    Expect(0, 13, '\p{^Is_Sentence_Break= CR}', "");
-    Expect(0, 13, '\P{Is_Sentence_Break= CR}', "");
-    Expect(1, 13, '\P{^Is_Sentence_Break= CR}', "");
-    Expect(0, 14, '\p{Is_Sentence_Break= CR}', "");
-    Expect(1, 14, '\p{^Is_Sentence_Break= CR}', "");
-    Expect(1, 14, '\P{Is_Sentence_Break= CR}', "");
-    Expect(0, 14, '\P{^Is_Sentence_Break= CR}', "");
-    Error('\p{Is_SB=:=_-cr}');
-    Error('\P{Is_SB=:=_-cr}');
-    Expect(1, 13, '\p{Is_SB: cr}', "");
-    Expect(0, 13, '\p{^Is_SB: cr}', "");
-    Expect(0, 13, '\P{Is_SB: cr}', "");
-    Expect(1, 13, '\P{^Is_SB: cr}', "");
-    Expect(0, 14, '\p{Is_SB: cr}', "");
-    Expect(1, 14, '\p{^Is_SB: cr}', "");
-    Expect(1, 14, '\P{Is_SB: cr}', "");
-    Expect(0, 14, '\P{^Is_SB: cr}', "");
-    Expect(1, 13, '\p{Is_SB=CR}', "");
-    Expect(0, 13, '\p{^Is_SB=CR}', "");
-    Expect(0, 13, '\P{Is_SB=CR}', "");
-    Expect(1, 13, '\P{^Is_SB=CR}', "");
-    Expect(0, 14, '\p{Is_SB=CR}', "");
-    Expect(1, 14, '\p{^Is_SB=CR}', "");
-    Expect(1, 14, '\P{Is_SB=CR}', "");
-    Expect(0, 14, '\P{^Is_SB=CR}', "");
-    Error('\p{Sentence_Break=	:=extend}');
-    Error('\P{Sentence_Break=	:=extend}');
+    Expect(1, 13, '\p{Is_Sentence_Break=-_CR}', "");
+    Expect(0, 13, '\p{^Is_Sentence_Break=-_CR}', "");
+    Expect(0, 13, '\P{Is_Sentence_Break=-_CR}', "");
+    Expect(1, 13, '\P{^Is_Sentence_Break=-_CR}', "");
+    Expect(0, 14, '\p{Is_Sentence_Break=-_CR}', "");
+    Expect(1, 14, '\p{^Is_Sentence_Break=-_CR}', "");
+    Expect(1, 14, '\P{Is_Sentence_Break=-_CR}', "");
+    Expect(0, 14, '\P{^Is_Sentence_Break=-_CR}', "");
+    Error('\p{Is_SB=:=_	CR}');
+    Error('\P{Is_SB=:=_	CR}');
+    Expect(1, 13, '\p{Is_SB=cr}', "");
+    Expect(0, 13, '\p{^Is_SB=cr}', "");
+    Expect(0, 13, '\P{Is_SB=cr}', "");
+    Expect(1, 13, '\P{^Is_SB=cr}', "");
+    Expect(0, 14, '\p{Is_SB=cr}', "");
+    Expect(1, 14, '\p{^Is_SB=cr}', "");
+    Expect(1, 14, '\P{Is_SB=cr}', "");
+    Expect(0, 14, '\P{^Is_SB=cr}', "");
+    Expect(1, 13, '\p{Is_SB= 	cr}', "");
+    Expect(0, 13, '\p{^Is_SB= 	cr}', "");
+    Expect(0, 13, '\P{Is_SB= 	cr}', "");
+    Expect(1, 13, '\P{^Is_SB= 	cr}', "");
+    Expect(0, 14, '\p{Is_SB= 	cr}', "");
+    Expect(1, 14, '\p{^Is_SB= 	cr}', "");
+    Expect(1, 14, '\P{Is_SB= 	cr}', "");
+    Expect(0, 14, '\P{^Is_SB= 	cr}', "");
+    Error('\p{Sentence_Break= 	extend:=}');
+    Error('\P{Sentence_Break= 	extend:=}');
     Expect(1, 917999, '\p{Sentence_Break=:\AExtend\z:}', "");;
     Expect(0, 918000, '\p{Sentence_Break=:\AExtend\z:}', "");;
     Expect(1, 917999, '\p{Sentence_Break=extend}', "");
@@ -127505,16 +128705,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^Sentence_Break=extend}', "");
     Expect(1, 917999, '\p{Sentence_Break=:\Aextend\z:}', "");;
     Expect(0, 918000, '\p{Sentence_Break=:\Aextend\z:}', "");;
-    Expect(1, 917999, '\p{Sentence_Break=_ Extend}', "");
-    Expect(0, 917999, '\p{^Sentence_Break=_ Extend}', "");
-    Expect(0, 917999, '\P{Sentence_Break=_ Extend}', "");
-    Expect(1, 917999, '\P{^Sentence_Break=_ Extend}', "");
-    Expect(0, 918000, '\p{Sentence_Break=_ Extend}', "");
-    Expect(1, 918000, '\p{^Sentence_Break=_ Extend}', "");
-    Expect(1, 918000, '\P{Sentence_Break=_ Extend}', "");
-    Expect(0, 918000, '\P{^Sentence_Break=_ Extend}', "");
-    Error('\p{SB=--EX:=}');
-    Error('\P{SB=--EX:=}');
+    Expect(1, 917999, '\p{Sentence_Break=-Extend}', "");
+    Expect(0, 917999, '\p{^Sentence_Break=-Extend}', "");
+    Expect(0, 917999, '\P{Sentence_Break=-Extend}', "");
+    Expect(1, 917999, '\P{^Sentence_Break=-Extend}', "");
+    Expect(0, 918000, '\p{Sentence_Break=-Extend}', "");
+    Expect(1, 918000, '\p{^Sentence_Break=-Extend}', "");
+    Expect(1, 918000, '\P{Sentence_Break=-Extend}', "");
+    Expect(0, 918000, '\P{^Sentence_Break=-Extend}', "");
+    Error('\p{SB=:=	-ex}');
+    Error('\P{SB=:=	-ex}');
     Expect(1, 917999, '\p{SB=:\AEX\z:}', "");;
     Expect(0, 918000, '\p{SB=:\AEX\z:}', "");;
     Expect(1, 917999, '\p{SB=ex}', "");
@@ -127527,52 +128727,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^SB=ex}', "");
     Expect(1, 917999, '\p{SB=:\Aex\z:}', "");;
     Expect(0, 918000, '\p{SB=:\Aex\z:}', "");;
-    Expect(1, 917999, '\p{SB=-	EX}', "");
-    Expect(0, 917999, '\p{^SB=-	EX}', "");
-    Expect(0, 917999, '\P{SB=-	EX}', "");
-    Expect(1, 917999, '\P{^SB=-	EX}', "");
-    Expect(0, 918000, '\p{SB=-	EX}', "");
-    Expect(1, 918000, '\p{^SB=-	EX}', "");
-    Expect(1, 918000, '\P{SB=-	EX}', "");
-    Expect(0, 918000, '\P{^SB=-	EX}', "");
-    Error('\p{Is_Sentence_Break=/a/ EXTEND}');
-    Error('\P{Is_Sentence_Break=/a/ EXTEND}');
-    Expect(1, 917999, '\p{Is_Sentence_Break=extend}', "");
-    Expect(0, 917999, '\p{^Is_Sentence_Break=extend}', "");
-    Expect(0, 917999, '\P{Is_Sentence_Break=extend}', "");
-    Expect(1, 917999, '\P{^Is_Sentence_Break=extend}', "");
-    Expect(0, 918000, '\p{Is_Sentence_Break=extend}', "");
-    Expect(1, 918000, '\p{^Is_Sentence_Break=extend}', "");
-    Expect(1, 918000, '\P{Is_Sentence_Break=extend}', "");
-    Expect(0, 918000, '\P{^Is_Sentence_Break=extend}', "");
-    Expect(1, 917999, '\p{Is_Sentence_Break=__EXTEND}', "");
-    Expect(0, 917999, '\p{^Is_Sentence_Break=__EXTEND}', "");
-    Expect(0, 917999, '\P{Is_Sentence_Break=__EXTEND}', "");
-    Expect(1, 917999, '\P{^Is_Sentence_Break=__EXTEND}', "");
-    Expect(0, 918000, '\p{Is_Sentence_Break=__EXTEND}', "");
-    Expect(1, 918000, '\p{^Is_Sentence_Break=__EXTEND}', "");
-    Expect(1, 918000, '\P{Is_Sentence_Break=__EXTEND}', "");
-    Expect(0, 918000, '\P{^Is_Sentence_Break=__EXTEND}', "");
-    Error('\p{Is_SB=:=-_ex}');
-    Error('\P{Is_SB=:=-_ex}');
-    Expect(1, 917999, '\p{Is_SB=ex}', "");
-    Expect(0, 917999, '\p{^Is_SB=ex}', "");
-    Expect(0, 917999, '\P{Is_SB=ex}', "");
-    Expect(1, 917999, '\P{^Is_SB=ex}', "");
-    Expect(0, 918000, '\p{Is_SB=ex}', "");
-    Expect(1, 918000, '\p{^Is_SB=ex}', "");
-    Expect(1, 918000, '\P{Is_SB=ex}', "");
-    Expect(0, 918000, '\P{^Is_SB=ex}', "");
-    Expect(1, 917999, '\p{Is_SB=  ex}', "");
-    Expect(0, 917999, '\p{^Is_SB=  ex}', "");
-    Expect(0, 917999, '\P{Is_SB=  ex}', "");
-    Expect(1, 917999, '\P{^Is_SB=  ex}', "");
-    Expect(0, 918000, '\p{Is_SB=  ex}', "");
-    Expect(1, 918000, '\p{^Is_SB=  ex}', "");
-    Expect(1, 918000, '\P{Is_SB=  ex}', "");
-    Expect(0, 918000, '\P{^Is_SB=  ex}', "");
-    Error('\p{Sentence_Break=/a/FORMAT}');
-    Error('\P{Sentence_Break=/a/FORMAT}');
+    Expect(1, 917999, '\p{SB= _EX}', "");
+    Expect(0, 917999, '\p{^SB= _EX}', "");
+    Expect(0, 917999, '\P{SB= _EX}', "");
+    Expect(1, 917999, '\P{^SB= _EX}', "");
+    Expect(0, 918000, '\p{SB= _EX}', "");
+    Expect(1, 918000, '\p{^SB= _EX}', "");
+    Expect(1, 918000, '\P{SB= _EX}', "");
+    Expect(0, 918000, '\P{^SB= _EX}', "");
+    Error('\p{Is_Sentence_Break=:=Extend}');
+    Error('\P{Is_Sentence_Break=:=Extend}');
+    Expect(1, 917999, '\p{Is_Sentence_Break:   extend}', "");
+    Expect(0, 917999, '\p{^Is_Sentence_Break:   extend}', "");
+    Expect(0, 917999, '\P{Is_Sentence_Break:   extend}', "");
+    Expect(1, 917999, '\P{^Is_Sentence_Break:   extend}', "");
+    Expect(0, 918000, '\p{Is_Sentence_Break:   extend}', "");
+    Expect(1, 918000, '\p{^Is_Sentence_Break:   extend}', "");
+    Expect(1, 918000, '\P{Is_Sentence_Break:   extend}', "");
+    Expect(0, 918000, '\P{^Is_Sentence_Break:   extend}', "");
+    Expect(1, 917999, '\p{Is_Sentence_Break=	 extend}', "");
+    Expect(0, 917999, '\p{^Is_Sentence_Break=	 extend}', "");
+    Expect(0, 917999, '\P{Is_Sentence_Break=	 extend}', "");
+    Expect(1, 917999, '\P{^Is_Sentence_Break=	 extend}', "");
+    Expect(0, 918000, '\p{Is_Sentence_Break=	 extend}', "");
+    Expect(1, 918000, '\p{^Is_Sentence_Break=	 extend}', "");
+    Expect(1, 918000, '\P{Is_Sentence_Break=	 extend}', "");
+    Expect(0, 918000, '\P{^Is_Sentence_Break=	 extend}', "");
+    Error('\p{Is_SB= :=EX}');
+    Error('\P{Is_SB= :=EX}');
+    Expect(1, 917999, '\p{Is_SB:   ex}', "");
+    Expect(0, 917999, '\p{^Is_SB:   ex}', "");
+    Expect(0, 917999, '\P{Is_SB:   ex}', "");
+    Expect(1, 917999, '\P{^Is_SB:   ex}', "");
+    Expect(0, 918000, '\p{Is_SB:   ex}', "");
+    Expect(1, 918000, '\p{^Is_SB:   ex}', "");
+    Expect(1, 918000, '\P{Is_SB:   ex}', "");
+    Expect(0, 918000, '\P{^Is_SB:   ex}', "");
+    Expect(1, 917999, '\p{Is_SB=-	EX}', "");
+    Expect(0, 917999, '\p{^Is_SB=-	EX}', "");
+    Expect(0, 917999, '\P{Is_SB=-	EX}', "");
+    Expect(1, 917999, '\P{^Is_SB=-	EX}', "");
+    Expect(0, 918000, '\p{Is_SB=-	EX}', "");
+    Expect(1, 918000, '\p{^Is_SB=-	EX}', "");
+    Expect(1, 918000, '\P{Is_SB=-	EX}', "");
+    Expect(0, 918000, '\P{^Is_SB=-	EX}', "");
+    Error('\p{Sentence_Break=_ Format:=}');
+    Error('\P{Sentence_Break=_ Format:=}');
     Expect(1, 917505, '\p{Sentence_Break=:\AFormat\z:}', "");;
     Expect(0, 917506, '\p{Sentence_Break=:\AFormat\z:}', "");;
     Expect(1, 917505, '\p{Sentence_Break=format}', "");
@@ -127585,38 +128785,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917506, '\P{^Sentence_Break=format}', "");
     Expect(1, 917505, '\p{Sentence_Break=:\Aformat\z:}', "");;
     Expect(0, 917506, '\p{Sentence_Break=:\Aformat\z:}', "");;
-    Expect(1, 917505, '\p{Sentence_Break:	FORMAT}', "");
-    Expect(0, 917505, '\p{^Sentence_Break:	FORMAT}', "");
-    Expect(0, 917505, '\P{Sentence_Break:	FORMAT}', "");
-    Expect(1, 917505, '\P{^Sentence_Break:	FORMAT}', "");
-    Expect(0, 917506, '\p{Sentence_Break:	FORMAT}', "");
-    Expect(1, 917506, '\p{^Sentence_Break:	FORMAT}', "");
-    Expect(1, 917506, '\P{Sentence_Break:	FORMAT}', "");
-    Expect(0, 917506, '\P{^Sentence_Break:	FORMAT}', "");
+    Expect(1, 917505, '\p{Sentence_Break= -format}', "");
+    Expect(0, 917505, '\p{^Sentence_Break= -format}', "");
+    Expect(0, 917505, '\P{Sentence_Break= -format}', "");
+    Expect(1, 917505, '\P{^Sentence_Break= -format}', "");
+    Expect(0, 917506, '\p{Sentence_Break= -format}', "");
+    Expect(1, 917506, '\p{^Sentence_Break= -format}', "");
+    Expect(1, 917506, '\P{Sentence_Break= -format}', "");
+    Expect(0, 917506, '\P{^Sentence_Break= -format}', "");
     Error('\p{SB= :=FO}');
     Error('\P{SB= :=FO}');
     Expect(1, 917505, '\p{SB=:\AFO\z:}', "");;
     Expect(0, 917506, '\p{SB=:\AFO\z:}', "");;
-    Expect(1, 917505, '\p{SB:	fo}', "");
-    Expect(0, 917505, '\p{^SB:	fo}', "");
-    Expect(0, 917505, '\P{SB:	fo}', "");
-    Expect(1, 917505, '\P{^SB:	fo}', "");
-    Expect(0, 917506, '\p{SB:	fo}', "");
-    Expect(1, 917506, '\p{^SB:	fo}', "");
-    Expect(1, 917506, '\P{SB:	fo}', "");
-    Expect(0, 917506, '\P{^SB:	fo}', "");
+    Expect(1, 917505, '\p{SB=fo}', "");
+    Expect(0, 917505, '\p{^SB=fo}', "");
+    Expect(0, 917505, '\P{SB=fo}', "");
+    Expect(1, 917505, '\P{^SB=fo}', "");
+    Expect(0, 917506, '\p{SB=fo}', "");
+    Expect(1, 917506, '\p{^SB=fo}', "");
+    Expect(1, 917506, '\P{SB=fo}', "");
+    Expect(0, 917506, '\P{^SB=fo}', "");
     Expect(1, 917505, '\p{SB=:\Afo\z:}', "");;
     Expect(0, 917506, '\p{SB=:\Afo\z:}', "");;
-    Expect(1, 917505, '\p{SB:   -FO}', "");
-    Expect(0, 917505, '\p{^SB:   -FO}', "");
-    Expect(0, 917505, '\P{SB:   -FO}', "");
-    Expect(1, 917505, '\P{^SB:   -FO}', "");
-    Expect(0, 917506, '\p{SB:   -FO}', "");
-    Expect(1, 917506, '\p{^SB:   -FO}', "");
-    Expect(1, 917506, '\P{SB:   -FO}', "");
-    Expect(0, 917506, '\P{^SB:   -FO}', "");
-    Error('\p{Is_Sentence_Break=/a/_-Format}');
-    Error('\P{Is_Sentence_Break=/a/_-Format}');
+    Expect(1, 917505, '\p{SB:   - FO}', "");
+    Expect(0, 917505, '\p{^SB:   - FO}', "");
+    Expect(0, 917505, '\P{SB:   - FO}', "");
+    Expect(1, 917505, '\P{^SB:   - FO}', "");
+    Expect(0, 917506, '\p{SB:   - FO}', "");
+    Expect(1, 917506, '\p{^SB:   - FO}', "");
+    Expect(1, 917506, '\P{SB:   - FO}', "");
+    Expect(0, 917506, '\P{^SB:   - FO}', "");
+    Error('\p{Is_Sentence_Break=/a/	format}');
+    Error('\P{Is_Sentence_Break=/a/	format}');
     Expect(1, 917505, '\p{Is_Sentence_Break=format}', "");
     Expect(0, 917505, '\p{^Is_Sentence_Break=format}', "");
     Expect(0, 917505, '\P{Is_Sentence_Break=format}', "");
@@ -127625,114 +128825,114 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917506, '\p{^Is_Sentence_Break=format}', "");
     Expect(1, 917506, '\P{Is_Sentence_Break=format}', "");
     Expect(0, 917506, '\P{^Is_Sentence_Break=format}', "");
-    Expect(1, 917505, '\p{Is_Sentence_Break=-format}', "");
-    Expect(0, 917505, '\p{^Is_Sentence_Break=-format}', "");
-    Expect(0, 917505, '\P{Is_Sentence_Break=-format}', "");
-    Expect(1, 917505, '\P{^Is_Sentence_Break=-format}', "");
-    Expect(0, 917506, '\p{Is_Sentence_Break=-format}', "");
-    Expect(1, 917506, '\p{^Is_Sentence_Break=-format}', "");
-    Expect(1, 917506, '\P{Is_Sentence_Break=-format}', "");
-    Expect(0, 917506, '\P{^Is_Sentence_Break=-format}', "");
-    Error('\p{Is_SB=	FO/a/}');
-    Error('\P{Is_SB=	FO/a/}');
-    Expect(1, 917505, '\p{Is_SB=fo}', "");
-    Expect(0, 917505, '\p{^Is_SB=fo}', "");
-    Expect(0, 917505, '\P{Is_SB=fo}', "");
-    Expect(1, 917505, '\P{^Is_SB=fo}', "");
-    Expect(0, 917506, '\p{Is_SB=fo}', "");
-    Expect(1, 917506, '\p{^Is_SB=fo}', "");
-    Expect(1, 917506, '\P{Is_SB=fo}', "");
-    Expect(0, 917506, '\P{^Is_SB=fo}', "");
-    Expect(1, 917505, '\p{Is_SB=-FO}', "");
-    Expect(0, 917505, '\p{^Is_SB=-FO}', "");
-    Expect(0, 917505, '\P{Is_SB=-FO}', "");
-    Expect(1, 917505, '\P{^Is_SB=-FO}', "");
-    Expect(0, 917506, '\p{Is_SB=-FO}', "");
-    Expect(1, 917506, '\p{^Is_SB=-FO}', "");
-    Expect(1, 917506, '\P{Is_SB=-FO}', "");
-    Expect(0, 917506, '\P{^Is_SB=-FO}', "");
-    Error('\p{Sentence_Break=_-OLETTER:=}');
-    Error('\P{Sentence_Break=_-OLETTER:=}');
-    Expect(1, 201546, '\p{Sentence_Break=:\AOLetter\z:}', "");;
-    Expect(0, 201547, '\p{Sentence_Break=:\AOLetter\z:}', "");;
-    Expect(1, 201546, '\p{Sentence_Break=oletter}', "");
-    Expect(0, 201546, '\p{^Sentence_Break=oletter}', "");
-    Expect(0, 201546, '\P{Sentence_Break=oletter}', "");
-    Expect(1, 201546, '\P{^Sentence_Break=oletter}', "");
-    Expect(0, 201547, '\p{Sentence_Break=oletter}', "");
-    Expect(1, 201547, '\p{^Sentence_Break=oletter}', "");
-    Expect(1, 201547, '\P{Sentence_Break=oletter}', "");
-    Expect(0, 201547, '\P{^Sentence_Break=oletter}', "");
-    Expect(1, 201546, '\p{Sentence_Break=:\Aoletter\z:}', "");;
-    Expect(0, 201547, '\p{Sentence_Break=:\Aoletter\z:}', "");;
-    Expect(1, 201546, '\p{Sentence_Break=		OLetter}', "");
-    Expect(0, 201546, '\p{^Sentence_Break=		OLetter}', "");
-    Expect(0, 201546, '\P{Sentence_Break=		OLetter}', "");
-    Expect(1, 201546, '\P{^Sentence_Break=		OLetter}', "");
-    Expect(0, 201547, '\p{Sentence_Break=		OLetter}', "");
-    Expect(1, 201547, '\p{^Sentence_Break=		OLetter}', "");
-    Expect(1, 201547, '\P{Sentence_Break=		OLetter}', "");
-    Expect(0, 201547, '\P{^Sentence_Break=		OLetter}', "");
-    Error('\p{SB:	 LE/a/}');
-    Error('\P{SB:	 LE/a/}');
-    Expect(1, 201546, '\p{SB=:\ALE\z:}', "");;
-    Expect(0, 201547, '\p{SB=:\ALE\z:}', "");;
-    Expect(1, 201546, '\p{SB=le}', "");
-    Expect(0, 201546, '\p{^SB=le}', "");
-    Expect(0, 201546, '\P{SB=le}', "");
-    Expect(1, 201546, '\P{^SB=le}', "");
-    Expect(0, 201547, '\p{SB=le}', "");
-    Expect(1, 201547, '\p{^SB=le}', "");
-    Expect(1, 201547, '\P{SB=le}', "");
-    Expect(0, 201547, '\P{^SB=le}', "");
-    Expect(1, 201546, '\p{SB=:\Ale\z:}', "");;
-    Expect(0, 201547, '\p{SB=:\Ale\z:}', "");;
-    Expect(1, 201546, '\p{SB=	 LE}', "");
-    Expect(0, 201546, '\p{^SB=	 LE}', "");
-    Expect(0, 201546, '\P{SB=	 LE}', "");
-    Expect(1, 201546, '\P{^SB=	 LE}', "");
-    Expect(0, 201547, '\p{SB=	 LE}', "");
-    Expect(1, 201547, '\p{^SB=	 LE}', "");
-    Expect(1, 201547, '\P{SB=	 LE}', "");
-    Expect(0, 201547, '\P{^SB=	 LE}', "");
-    Error('\p{Is_Sentence_Break=/a/OLetter}');
-    Error('\P{Is_Sentence_Break=/a/OLetter}');
-    Expect(1, 201546, '\p{Is_Sentence_Break:oletter}', "");
-    Expect(0, 201546, '\p{^Is_Sentence_Break:oletter}', "");
-    Expect(0, 201546, '\P{Is_Sentence_Break:oletter}', "");
-    Expect(1, 201546, '\P{^Is_Sentence_Break:oletter}', "");
-    Expect(0, 201547, '\p{Is_Sentence_Break:oletter}', "");
-    Expect(1, 201547, '\p{^Is_Sentence_Break:oletter}', "");
-    Expect(1, 201547, '\P{Is_Sentence_Break:oletter}', "");
-    Expect(0, 201547, '\P{^Is_Sentence_Break:oletter}', "");
-    Expect(1, 201546, '\p{Is_Sentence_Break=OLETTER}', "");
-    Expect(0, 201546, '\p{^Is_Sentence_Break=OLETTER}', "");
-    Expect(0, 201546, '\P{Is_Sentence_Break=OLETTER}', "");
-    Expect(1, 201546, '\P{^Is_Sentence_Break=OLETTER}', "");
-    Expect(0, 201547, '\p{Is_Sentence_Break=OLETTER}', "");
-    Expect(1, 201547, '\p{^Is_Sentence_Break=OLETTER}', "");
-    Expect(1, 201547, '\P{Is_Sentence_Break=OLETTER}', "");
-    Expect(0, 201547, '\P{^Is_Sentence_Break=OLETTER}', "");
-    Error('\p{Is_SB=	/a/LE}');
-    Error('\P{Is_SB=	/a/LE}');
-    Expect(1, 201546, '\p{Is_SB=le}', "");
-    Expect(0, 201546, '\p{^Is_SB=le}', "");
-    Expect(0, 201546, '\P{Is_SB=le}', "");
-    Expect(1, 201546, '\P{^Is_SB=le}', "");
-    Expect(0, 201547, '\p{Is_SB=le}', "");
-    Expect(1, 201547, '\p{^Is_SB=le}', "");
-    Expect(1, 201547, '\P{Is_SB=le}', "");
-    Expect(0, 201547, '\P{^Is_SB=le}', "");
-    Expect(1, 201546, '\p{Is_SB=	_LE}', "");
-    Expect(0, 201546, '\p{^Is_SB=	_LE}', "");
-    Expect(0, 201546, '\P{Is_SB=	_LE}', "");
-    Expect(1, 201546, '\P{^Is_SB=	_LE}', "");
-    Expect(0, 201547, '\p{Is_SB=	_LE}', "");
-    Expect(1, 201547, '\p{^Is_SB=	_LE}', "");
-    Expect(1, 201547, '\P{Is_SB=	_LE}', "");
-    Expect(0, 201547, '\P{^Is_SB=	_LE}', "");
-    Error('\p{Sentence_Break=:=- LF}');
-    Error('\P{Sentence_Break=:=- LF}');
+    Expect(1, 917505, '\p{Is_Sentence_Break=	 FORMAT}', "");
+    Expect(0, 917505, '\p{^Is_Sentence_Break=	 FORMAT}', "");
+    Expect(0, 917505, '\P{Is_Sentence_Break=	 FORMAT}', "");
+    Expect(1, 917505, '\P{^Is_Sentence_Break=	 FORMAT}', "");
+    Expect(0, 917506, '\p{Is_Sentence_Break=	 FORMAT}', "");
+    Expect(1, 917506, '\p{^Is_Sentence_Break=	 FORMAT}', "");
+    Expect(1, 917506, '\P{Is_Sentence_Break=	 FORMAT}', "");
+    Expect(0, 917506, '\P{^Is_Sentence_Break=	 FORMAT}', "");
+    Error('\p{Is_SB: := FO}');
+    Error('\P{Is_SB: := FO}');
+    Expect(1, 917505, '\p{Is_SB:	fo}', "");
+    Expect(0, 917505, '\p{^Is_SB:	fo}', "");
+    Expect(0, 917505, '\P{Is_SB:	fo}', "");
+    Expect(1, 917505, '\P{^Is_SB:	fo}', "");
+    Expect(0, 917506, '\p{Is_SB:	fo}', "");
+    Expect(1, 917506, '\p{^Is_SB:	fo}', "");
+    Expect(1, 917506, '\P{Is_SB:	fo}', "");
+    Expect(0, 917506, '\P{^Is_SB:	fo}', "");
+    Expect(1, 917505, '\p{Is_SB=	FO}', "");
+    Expect(0, 917505, '\p{^Is_SB=	FO}', "");
+    Expect(0, 917505, '\P{Is_SB=	FO}', "");
+    Expect(1, 917505, '\P{^Is_SB=	FO}', "");
+    Expect(0, 917506, '\p{Is_SB=	FO}', "");
+    Expect(1, 917506, '\p{^Is_SB=	FO}', "");
+    Expect(1, 917506, '\P{Is_SB=	FO}', "");
+    Expect(0, 917506, '\P{^Is_SB=	FO}', "");
+    Error('\p{Sentence_Break=:=OLETTER}');
+    Error('\P{Sentence_Break=:=OLETTER}');
+    Expect(1, 205743, '\p{Sentence_Break=:\AOLetter\z:}', "");;
+    Expect(0, 205744, '\p{Sentence_Break=:\AOLetter\z:}', "");;
+    Expect(1, 205743, '\p{Sentence_Break=oletter}', "");
+    Expect(0, 205743, '\p{^Sentence_Break=oletter}', "");
+    Expect(0, 205743, '\P{Sentence_Break=oletter}', "");
+    Expect(1, 205743, '\P{^Sentence_Break=oletter}', "");
+    Expect(0, 205744, '\p{Sentence_Break=oletter}', "");
+    Expect(1, 205744, '\p{^Sentence_Break=oletter}', "");
+    Expect(1, 205744, '\P{Sentence_Break=oletter}', "");
+    Expect(0, 205744, '\P{^Sentence_Break=oletter}', "");
+    Expect(1, 205743, '\p{Sentence_Break=:\Aoletter\z:}', "");;
+    Expect(0, 205744, '\p{Sentence_Break=:\Aoletter\z:}', "");;
+    Expect(1, 205743, '\p{Sentence_Break=_	OLetter}', "");
+    Expect(0, 205743, '\p{^Sentence_Break=_	OLetter}', "");
+    Expect(0, 205743, '\P{Sentence_Break=_	OLetter}', "");
+    Expect(1, 205743, '\P{^Sentence_Break=_	OLetter}', "");
+    Expect(0, 205744, '\p{Sentence_Break=_	OLetter}', "");
+    Expect(1, 205744, '\p{^Sentence_Break=_	OLetter}', "");
+    Expect(1, 205744, '\P{Sentence_Break=_	OLetter}', "");
+    Expect(0, 205744, '\P{^Sentence_Break=_	OLetter}', "");
+    Error('\p{SB= 	LE/a/}');
+    Error('\P{SB= 	LE/a/}');
+    Expect(1, 205743, '\p{SB=:\ALE\z:}', "");;
+    Expect(0, 205744, '\p{SB=:\ALE\z:}', "");;
+    Expect(1, 205743, '\p{SB=le}', "");
+    Expect(0, 205743, '\p{^SB=le}', "");
+    Expect(0, 205743, '\P{SB=le}', "");
+    Expect(1, 205743, '\P{^SB=le}', "");
+    Expect(0, 205744, '\p{SB=le}', "");
+    Expect(1, 205744, '\p{^SB=le}', "");
+    Expect(1, 205744, '\P{SB=le}', "");
+    Expect(0, 205744, '\P{^SB=le}', "");
+    Expect(1, 205743, '\p{SB=:\Ale\z:}', "");;
+    Expect(0, 205744, '\p{SB=:\Ale\z:}', "");;
+    Expect(1, 205743, '\p{SB= LE}', "");
+    Expect(0, 205743, '\p{^SB= LE}', "");
+    Expect(0, 205743, '\P{SB= LE}', "");
+    Expect(1, 205743, '\P{^SB= LE}', "");
+    Expect(0, 205744, '\p{SB= LE}', "");
+    Expect(1, 205744, '\p{^SB= LE}', "");
+    Expect(1, 205744, '\P{SB= LE}', "");
+    Expect(0, 205744, '\P{^SB= LE}', "");
+    Error('\p{Is_Sentence_Break=:= 	OLetter}');
+    Error('\P{Is_Sentence_Break=:= 	OLetter}');
+    Expect(1, 205743, '\p{Is_Sentence_Break=oletter}', "");
+    Expect(0, 205743, '\p{^Is_Sentence_Break=oletter}', "");
+    Expect(0, 205743, '\P{Is_Sentence_Break=oletter}', "");
+    Expect(1, 205743, '\P{^Is_Sentence_Break=oletter}', "");
+    Expect(0, 205744, '\p{Is_Sentence_Break=oletter}', "");
+    Expect(1, 205744, '\p{^Is_Sentence_Break=oletter}', "");
+    Expect(1, 205744, '\P{Is_Sentence_Break=oletter}', "");
+    Expect(0, 205744, '\P{^Is_Sentence_Break=oletter}', "");
+    Expect(1, 205743, '\p{Is_Sentence_Break=_OLetter}', "");
+    Expect(0, 205743, '\p{^Is_Sentence_Break=_OLetter}', "");
+    Expect(0, 205743, '\P{Is_Sentence_Break=_OLetter}', "");
+    Expect(1, 205743, '\P{^Is_Sentence_Break=_OLetter}', "");
+    Expect(0, 205744, '\p{Is_Sentence_Break=_OLetter}', "");
+    Expect(1, 205744, '\p{^Is_Sentence_Break=_OLetter}', "");
+    Expect(1, 205744, '\P{Is_Sentence_Break=_OLetter}', "");
+    Expect(0, 205744, '\P{^Is_Sentence_Break=_OLetter}', "");
+    Error('\p{Is_SB=:=LE}');
+    Error('\P{Is_SB=:=LE}');
+    Expect(1, 205743, '\p{Is_SB=le}', "");
+    Expect(0, 205743, '\p{^Is_SB=le}', "");
+    Expect(0, 205743, '\P{Is_SB=le}', "");
+    Expect(1, 205743, '\P{^Is_SB=le}', "");
+    Expect(0, 205744, '\p{Is_SB=le}', "");
+    Expect(1, 205744, '\p{^Is_SB=le}', "");
+    Expect(1, 205744, '\P{Is_SB=le}', "");
+    Expect(0, 205744, '\P{^Is_SB=le}', "");
+    Expect(1, 205743, '\p{Is_SB:	- le}', "");
+    Expect(0, 205743, '\p{^Is_SB:	- le}', "");
+    Expect(0, 205743, '\P{Is_SB:	- le}', "");
+    Expect(1, 205743, '\P{^Is_SB:	- le}', "");
+    Expect(0, 205744, '\p{Is_SB:	- le}', "");
+    Expect(1, 205744, '\p{^Is_SB:	- le}', "");
+    Expect(1, 205744, '\P{Is_SB:	- le}', "");
+    Expect(0, 205744, '\P{^Is_SB:	- le}', "");
+    Error('\p{Sentence_Break=	lf/a/}');
+    Error('\P{Sentence_Break=	lf/a/}');
     Expect(1, 10, '\p{Sentence_Break=:\ALF\z:}', "");;
     Expect(0, 11, '\p{Sentence_Break=:\ALF\z:}', "");;
     Expect(1, 10, '\p{Sentence_Break=lf}', "");
@@ -127745,16 +128945,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11, '\P{^Sentence_Break=lf}', "");
     Expect(1, 10, '\p{Sentence_Break=:\Alf\z:}', "");;
     Expect(0, 11, '\p{Sentence_Break=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{Sentence_Break=	LF}', "");
-    Expect(0, 10, '\p{^Sentence_Break=	LF}', "");
-    Expect(0, 10, '\P{Sentence_Break=	LF}', "");
-    Expect(1, 10, '\P{^Sentence_Break=	LF}', "");
-    Expect(0, 11, '\p{Sentence_Break=	LF}', "");
-    Expect(1, 11, '\p{^Sentence_Break=	LF}', "");
-    Expect(1, 11, '\P{Sentence_Break=	LF}', "");
-    Expect(0, 11, '\P{^Sentence_Break=	LF}', "");
-    Error('\p{SB=/a/LF}');
-    Error('\P{SB=/a/LF}');
+    Expect(1, 10, '\p{Sentence_Break= LF}', "");
+    Expect(0, 10, '\p{^Sentence_Break= LF}', "");
+    Expect(0, 10, '\P{Sentence_Break= LF}', "");
+    Expect(1, 10, '\P{^Sentence_Break= LF}', "");
+    Expect(0, 11, '\p{Sentence_Break= LF}', "");
+    Expect(1, 11, '\p{^Sentence_Break= LF}', "");
+    Expect(1, 11, '\P{Sentence_Break= LF}', "");
+    Expect(0, 11, '\P{^Sentence_Break= LF}', "");
+    Error('\p{SB=-lf/a/}');
+    Error('\P{SB=-lf/a/}');
     Expect(1, 10, '\p{SB=:\ALF\z:}', "");;
     Expect(0, 11, '\p{SB=:\ALF\z:}', "");;
     Expect(1, 10, '\p{SB=lf}', "");
@@ -127767,16 +128967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11, '\P{^SB=lf}', "");
     Expect(1, 10, '\p{SB=:\Alf\z:}', "");;
     Expect(0, 11, '\p{SB=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{SB:   LF}', "");
-    Expect(0, 10, '\p{^SB:   LF}', "");
-    Expect(0, 10, '\P{SB:   LF}', "");
-    Expect(1, 10, '\P{^SB:   LF}', "");
-    Expect(0, 11, '\p{SB:   LF}', "");
-    Expect(1, 11, '\p{^SB:   LF}', "");
-    Expect(1, 11, '\P{SB:   LF}', "");
-    Expect(0, 11, '\P{^SB:   LF}', "");
-    Error('\p{Is_Sentence_Break=:=LF}');
-    Error('\P{Is_Sentence_Break=:=LF}');
+    Expect(1, 10, '\p{SB=	LF}', "");
+    Expect(0, 10, '\p{^SB=	LF}', "");
+    Expect(0, 10, '\P{SB=	LF}', "");
+    Expect(1, 10, '\P{^SB=	LF}', "");
+    Expect(0, 11, '\p{SB=	LF}', "");
+    Expect(1, 11, '\p{^SB=	LF}', "");
+    Expect(1, 11, '\P{SB=	LF}', "");
+    Expect(0, 11, '\P{^SB=	LF}', "");
+    Error('\p{Is_Sentence_Break=-LF:=}');
+    Error('\P{Is_Sentence_Break=-LF:=}');
     Expect(1, 10, '\p{Is_Sentence_Break=lf}', "");
     Expect(0, 10, '\p{^Is_Sentence_Break=lf}', "");
     Expect(0, 10, '\P{Is_Sentence_Break=lf}', "");
@@ -127785,16 +128985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11, '\p{^Is_Sentence_Break=lf}', "");
     Expect(1, 11, '\P{Is_Sentence_Break=lf}', "");
     Expect(0, 11, '\P{^Is_Sentence_Break=lf}', "");
-    Expect(1, 10, '\p{Is_Sentence_Break=_	LF}', "");
-    Expect(0, 10, '\p{^Is_Sentence_Break=_	LF}', "");
-    Expect(0, 10, '\P{Is_Sentence_Break=_	LF}', "");
-    Expect(1, 10, '\P{^Is_Sentence_Break=_	LF}', "");
-    Expect(0, 11, '\p{Is_Sentence_Break=_	LF}', "");
-    Expect(1, 11, '\p{^Is_Sentence_Break=_	LF}', "");
-    Expect(1, 11, '\P{Is_Sentence_Break=_	LF}', "");
-    Expect(0, 11, '\P{^Is_Sentence_Break=_	LF}', "");
-    Error('\p{Is_SB=	/a/LF}');
-    Error('\P{Is_SB=	/a/LF}');
+    Expect(1, 10, '\p{Is_Sentence_Break=- LF}', "");
+    Expect(0, 10, '\p{^Is_Sentence_Break=- LF}', "");
+    Expect(0, 10, '\P{Is_Sentence_Break=- LF}', "");
+    Expect(1, 10, '\P{^Is_Sentence_Break=- LF}', "");
+    Expect(0, 11, '\p{Is_Sentence_Break=- LF}', "");
+    Expect(1, 11, '\p{^Is_Sentence_Break=- LF}', "");
+    Expect(1, 11, '\P{Is_Sentence_Break=- LF}', "");
+    Expect(0, 11, '\P{^Is_Sentence_Break=- LF}', "");
+    Error('\p{Is_SB=:=__lf}');
+    Error('\P{Is_SB=:=__lf}');
     Expect(1, 10, '\p{Is_SB=lf}', "");
     Expect(0, 10, '\p{^Is_SB=lf}', "");
     Expect(0, 10, '\P{Is_SB=lf}', "");
@@ -127803,38 +129003,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11, '\p{^Is_SB=lf}', "");
     Expect(1, 11, '\P{Is_SB=lf}', "");
     Expect(0, 11, '\P{^Is_SB=lf}', "");
-    Expect(1, 10, '\p{Is_SB= 	LF}', "");
-    Expect(0, 10, '\p{^Is_SB= 	LF}', "");
-    Expect(0, 10, '\P{Is_SB= 	LF}', "");
-    Expect(1, 10, '\P{^Is_SB= 	LF}', "");
-    Expect(0, 11, '\p{Is_SB= 	LF}', "");
-    Expect(1, 11, '\p{^Is_SB= 	LF}', "");
-    Expect(1, 11, '\P{Is_SB= 	LF}', "");
-    Expect(0, 11, '\P{^Is_SB= 	LF}', "");
-    Error('\p{Sentence_Break=_lower/a/}');
-    Error('\P{Sentence_Break=_lower/a/}');
+    Error('\p{Sentence_Break=/a/		Lower}');
+    Error('\P{Sentence_Break=/a/		Lower}');
     Expect(1, 125251, '\p{Sentence_Break=:\ALower\z:}', "");;
     Expect(0, 125252, '\p{Sentence_Break=:\ALower\z:}', "");;
-    Expect(1, 125251, '\p{Sentence_Break=lower}', "");
-    Expect(0, 125251, '\p{^Sentence_Break=lower}', "");
-    Expect(0, 125251, '\P{Sentence_Break=lower}', "");
-    Expect(1, 125251, '\P{^Sentence_Break=lower}', "");
-    Expect(0, 125252, '\p{Sentence_Break=lower}', "");
-    Expect(1, 125252, '\p{^Sentence_Break=lower}', "");
-    Expect(1, 125252, '\P{Sentence_Break=lower}', "");
-    Expect(0, 125252, '\P{^Sentence_Break=lower}', "");
+    Expect(1, 125251, '\p{Sentence_Break: lower}', "");
+    Expect(0, 125251, '\p{^Sentence_Break: lower}', "");
+    Expect(0, 125251, '\P{Sentence_Break: lower}', "");
+    Expect(1, 125251, '\P{^Sentence_Break: lower}', "");
+    Expect(0, 125252, '\p{Sentence_Break: lower}', "");
+    Expect(1, 125252, '\p{^Sentence_Break: lower}', "");
+    Expect(1, 125252, '\P{Sentence_Break: lower}', "");
+    Expect(0, 125252, '\P{^Sentence_Break: lower}', "");
     Expect(1, 125251, '\p{Sentence_Break=:\Alower\z:}', "");;
     Expect(0, 125252, '\p{Sentence_Break=:\Alower\z:}', "");;
-    Expect(1, 125251, '\p{Sentence_Break=-_LOWER}', "");
-    Expect(0, 125251, '\p{^Sentence_Break=-_LOWER}', "");
-    Expect(0, 125251, '\P{Sentence_Break=-_LOWER}', "");
-    Expect(1, 125251, '\P{^Sentence_Break=-_LOWER}', "");
-    Expect(0, 125252, '\p{Sentence_Break=-_LOWER}', "");
-    Expect(1, 125252, '\p{^Sentence_Break=-_LOWER}', "");
-    Expect(1, 125252, '\P{Sentence_Break=-_LOWER}', "");
-    Expect(0, 125252, '\P{^Sentence_Break=-_LOWER}', "");
-    Error('\p{SB=:= LO}');
-    Error('\P{SB=:= LO}');
+    Expect(1, 125251, '\p{Sentence_Break=-	LOWER}', "");
+    Expect(0, 125251, '\p{^Sentence_Break=-	LOWER}', "");
+    Expect(0, 125251, '\P{Sentence_Break=-	LOWER}', "");
+    Expect(1, 125251, '\P{^Sentence_Break=-	LOWER}', "");
+    Expect(0, 125252, '\p{Sentence_Break=-	LOWER}', "");
+    Expect(1, 125252, '\p{^Sentence_Break=-	LOWER}', "");
+    Expect(1, 125252, '\P{Sentence_Break=-	LOWER}', "");
+    Expect(0, 125252, '\P{^Sentence_Break=-	LOWER}', "");
+    Error('\p{SB::=lo}');
+    Error('\P{SB::=lo}');
     Expect(1, 125251, '\p{SB=:\ALO\z:}', "");;
     Expect(0, 125252, '\p{SB=:\ALO\z:}', "");;
     Expect(1, 125251, '\p{SB=lo}', "");
@@ -127847,16 +129039,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 125252, '\P{^SB=lo}', "");
     Expect(1, 125251, '\p{SB=:\Alo\z:}', "");;
     Expect(0, 125252, '\p{SB=:\Alo\z:}', "");;
-    Expect(1, 125251, '\p{SB=_lo}', "");
-    Expect(0, 125251, '\p{^SB=_lo}', "");
-    Expect(0, 125251, '\P{SB=_lo}', "");
-    Expect(1, 125251, '\P{^SB=_lo}', "");
-    Expect(0, 125252, '\p{SB=_lo}', "");
-    Expect(1, 125252, '\p{^SB=_lo}', "");
-    Expect(1, 125252, '\P{SB=_lo}', "");
-    Expect(0, 125252, '\P{^SB=_lo}', "");
-    Error('\p{Is_Sentence_Break=_Lower:=}');
-    Error('\P{Is_Sentence_Break=_Lower:=}');
+    Expect(1, 125251, '\p{SB=-LO}', "");
+    Expect(0, 125251, '\p{^SB=-LO}', "");
+    Expect(0, 125251, '\P{SB=-LO}', "");
+    Expect(1, 125251, '\P{^SB=-LO}', "");
+    Expect(0, 125252, '\p{SB=-LO}', "");
+    Expect(1, 125252, '\p{^SB=-LO}', "");
+    Expect(1, 125252, '\P{SB=-LO}', "");
+    Expect(0, 125252, '\P{^SB=-LO}', "");
+    Error('\p{Is_Sentence_Break= /a/lower}');
+    Error('\P{Is_Sentence_Break= /a/lower}');
     Expect(1, 125251, '\p{Is_Sentence_Break=lower}', "");
     Expect(0, 125251, '\p{^Is_Sentence_Break=lower}', "");
     Expect(0, 125251, '\P{Is_Sentence_Break=lower}', "");
@@ -127873,8 +129065,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^Is_Sentence_Break=	 Lower}', "");
     Expect(1, 125252, '\P{Is_Sentence_Break=	 Lower}', "");
     Expect(0, 125252, '\P{^Is_Sentence_Break=	 Lower}', "");
-    Error('\p{Is_SB=_:=lo}');
-    Error('\P{Is_SB=_:=lo}');
+    Error('\p{Is_SB=:=--LO}');
+    Error('\P{Is_SB=:=--LO}');
     Expect(1, 125251, '\p{Is_SB=lo}', "");
     Expect(0, 125251, '\p{^Is_SB=lo}', "");
     Expect(0, 125251, '\P{Is_SB=lo}', "");
@@ -127883,16 +129075,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125252, '\p{^Is_SB=lo}', "");
     Expect(1, 125252, '\P{Is_SB=lo}', "");
     Expect(0, 125252, '\P{^Is_SB=lo}', "");
-    Expect(1, 125251, '\p{Is_SB=-lo}', "");
-    Expect(0, 125251, '\p{^Is_SB=-lo}', "");
-    Expect(0, 125251, '\P{Is_SB=-lo}', "");
-    Expect(1, 125251, '\P{^Is_SB=-lo}', "");
-    Expect(0, 125252, '\p{Is_SB=-lo}', "");
-    Expect(1, 125252, '\p{^Is_SB=-lo}', "");
-    Expect(1, 125252, '\P{Is_SB=-lo}', "");
-    Expect(0, 125252, '\P{^Is_SB=-lo}', "");
-    Error('\p{Sentence_Break=_Numeric/a/}');
-    Error('\P{Sentence_Break=_Numeric/a/}');
+    Expect(1, 125251, '\p{Is_SB=	 lo}', "");
+    Expect(0, 125251, '\p{^Is_SB=	 lo}', "");
+    Expect(0, 125251, '\P{Is_SB=	 lo}', "");
+    Expect(1, 125251, '\P{^Is_SB=	 lo}', "");
+    Expect(0, 125252, '\p{Is_SB=	 lo}', "");
+    Expect(1, 125252, '\p{^Is_SB=	 lo}', "");
+    Expect(1, 125252, '\P{Is_SB=	 lo}', "");
+    Expect(0, 125252, '\P{^Is_SB=	 lo}', "");
+    Error('\p{Sentence_Break=/a/--NUMERIC}');
+    Error('\P{Sentence_Break=/a/--NUMERIC}');
     Expect(1, 130041, '\p{Sentence_Break=:\ANumeric\z:}', "");;
     Expect(0, 130042, '\p{Sentence_Break=:\ANumeric\z:}', "");;
     Expect(1, 130041, '\p{Sentence_Break=numeric}', "");
@@ -127905,38 +129097,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 130042, '\P{^Sentence_Break=numeric}', "");
     Expect(1, 130041, '\p{Sentence_Break=:\Anumeric\z:}', "");;
     Expect(0, 130042, '\p{Sentence_Break=:\Anumeric\z:}', "");;
-    Expect(1, 130041, '\p{Sentence_Break=-Numeric}', "");
-    Expect(0, 130041, '\p{^Sentence_Break=-Numeric}', "");
-    Expect(0, 130041, '\P{Sentence_Break=-Numeric}', "");
-    Expect(1, 130041, '\P{^Sentence_Break=-Numeric}', "");
-    Expect(0, 130042, '\p{Sentence_Break=-Numeric}', "");
-    Expect(1, 130042, '\p{^Sentence_Break=-Numeric}', "");
-    Expect(1, 130042, '\P{Sentence_Break=-Numeric}', "");
-    Expect(0, 130042, '\P{^Sentence_Break=-Numeric}', "");
-    Error('\p{SB=NU:=}');
-    Error('\P{SB=NU:=}');
+    Expect(1, 130041, '\p{Sentence_Break= -NUMERIC}', "");
+    Expect(0, 130041, '\p{^Sentence_Break= -NUMERIC}', "");
+    Expect(0, 130041, '\P{Sentence_Break= -NUMERIC}', "");
+    Expect(1, 130041, '\P{^Sentence_Break= -NUMERIC}', "");
+    Expect(0, 130042, '\p{Sentence_Break= -NUMERIC}', "");
+    Expect(1, 130042, '\p{^Sentence_Break= -NUMERIC}', "");
+    Expect(1, 130042, '\P{Sentence_Break= -NUMERIC}', "");
+    Expect(0, 130042, '\P{^Sentence_Break= -NUMERIC}', "");
+    Error('\p{SB= _nu:=}');
+    Error('\P{SB= _nu:=}');
     Expect(1, 130041, '\p{SB=:\ANU\z:}', "");;
     Expect(0, 130042, '\p{SB=:\ANU\z:}', "");;
-    Expect(1, 130041, '\p{SB=nu}', "");
-    Expect(0, 130041, '\p{^SB=nu}', "");
-    Expect(0, 130041, '\P{SB=nu}', "");
-    Expect(1, 130041, '\P{^SB=nu}', "");
-    Expect(0, 130042, '\p{SB=nu}', "");
-    Expect(1, 130042, '\p{^SB=nu}', "");
-    Expect(1, 130042, '\P{SB=nu}', "");
-    Expect(0, 130042, '\P{^SB=nu}', "");
+    Expect(1, 130041, '\p{SB:	nu}', "");
+    Expect(0, 130041, '\p{^SB:	nu}', "");
+    Expect(0, 130041, '\P{SB:	nu}', "");
+    Expect(1, 130041, '\P{^SB:	nu}', "");
+    Expect(0, 130042, '\p{SB:	nu}', "");
+    Expect(1, 130042, '\p{^SB:	nu}', "");
+    Expect(1, 130042, '\P{SB:	nu}', "");
+    Expect(0, 130042, '\P{^SB:	nu}', "");
     Expect(1, 130041, '\p{SB=:\Anu\z:}', "");;
     Expect(0, 130042, '\p{SB=:\Anu\z:}', "");;
-    Expect(1, 130041, '\p{SB= 	NU}', "");
-    Expect(0, 130041, '\p{^SB= 	NU}', "");
-    Expect(0, 130041, '\P{SB= 	NU}', "");
-    Expect(1, 130041, '\P{^SB= 	NU}', "");
-    Expect(0, 130042, '\p{SB= 	NU}', "");
-    Expect(1, 130042, '\p{^SB= 	NU}', "");
-    Expect(1, 130042, '\P{SB= 	NU}', "");
-    Expect(0, 130042, '\P{^SB= 	NU}', "");
-    Error('\p{Is_Sentence_Break=_/a/NUMERIC}');
-    Error('\P{Is_Sentence_Break=_/a/NUMERIC}');
+    Expect(1, 130041, '\p{SB=-NU}', "");
+    Expect(0, 130041, '\p{^SB=-NU}', "");
+    Expect(0, 130041, '\P{SB=-NU}', "");
+    Expect(1, 130041, '\P{^SB=-NU}', "");
+    Expect(0, 130042, '\p{SB=-NU}', "");
+    Expect(1, 130042, '\p{^SB=-NU}', "");
+    Expect(1, 130042, '\P{SB=-NU}', "");
+    Expect(0, 130042, '\P{^SB=-NU}', "");
+    Error('\p{Is_Sentence_Break= _NUMERIC:=}');
+    Error('\P{Is_Sentence_Break= _NUMERIC:=}');
     Expect(1, 130041, '\p{Is_Sentence_Break=numeric}', "");
     Expect(0, 130041, '\p{^Is_Sentence_Break=numeric}', "");
     Expect(0, 130041, '\P{Is_Sentence_Break=numeric}', "");
@@ -127945,16 +129137,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130042, '\p{^Is_Sentence_Break=numeric}', "");
     Expect(1, 130042, '\P{Is_Sentence_Break=numeric}', "");
     Expect(0, 130042, '\P{^Is_Sentence_Break=numeric}', "");
-    Expect(1, 130041, '\p{Is_Sentence_Break= Numeric}', "");
-    Expect(0, 130041, '\p{^Is_Sentence_Break= Numeric}', "");
-    Expect(0, 130041, '\P{Is_Sentence_Break= Numeric}', "");
-    Expect(1, 130041, '\P{^Is_Sentence_Break= Numeric}', "");
-    Expect(0, 130042, '\p{Is_Sentence_Break= Numeric}', "");
-    Expect(1, 130042, '\p{^Is_Sentence_Break= Numeric}', "");
-    Expect(1, 130042, '\P{Is_Sentence_Break= Numeric}', "");
-    Expect(0, 130042, '\P{^Is_Sentence_Break= Numeric}', "");
-    Error('\p{Is_SB=	/a/NU}');
-    Error('\P{Is_SB=	/a/NU}');
+    Expect(1, 130041, '\p{Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(0, 130041, '\p{^Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(0, 130041, '\P{Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(1, 130041, '\P{^Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(0, 130042, '\p{Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(1, 130042, '\p{^Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(1, 130042, '\P{Is_Sentence_Break= 	NUMERIC}', "");
+    Expect(0, 130042, '\P{^Is_Sentence_Break= 	NUMERIC}', "");
+    Error('\p{Is_SB=-nu:=}');
+    Error('\P{Is_SB=-nu:=}');
     Expect(1, 130041, '\p{Is_SB=nu}', "");
     Expect(0, 130041, '\p{^Is_SB=nu}', "");
     Expect(0, 130041, '\P{Is_SB=nu}', "");
@@ -127963,16 +129155,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130042, '\p{^Is_SB=nu}', "");
     Expect(1, 130042, '\P{Is_SB=nu}', "");
     Expect(0, 130042, '\P{^Is_SB=nu}', "");
-    Expect(1, 130041, '\p{Is_SB:	-NU}', "");
-    Expect(0, 130041, '\p{^Is_SB:	-NU}', "");
-    Expect(0, 130041, '\P{Is_SB:	-NU}', "");
-    Expect(1, 130041, '\P{^Is_SB:	-NU}', "");
-    Expect(0, 130042, '\p{Is_SB:	-NU}', "");
-    Expect(1, 130042, '\p{^Is_SB:	-NU}', "");
-    Expect(1, 130042, '\P{Is_SB:	-NU}', "");
-    Expect(0, 130042, '\P{^Is_SB:	-NU}', "");
-    Error('\p{Sentence_Break=/a/	 SContinue}');
-    Error('\P{Sentence_Break=/a/	 SContinue}');
+    Expect(1, 130041, '\p{Is_SB=-nu}', "");
+    Expect(0, 130041, '\p{^Is_SB=-nu}', "");
+    Expect(0, 130041, '\P{Is_SB=-nu}', "");
+    Expect(1, 130041, '\P{^Is_SB=-nu}', "");
+    Expect(0, 130042, '\p{Is_SB=-nu}', "");
+    Expect(1, 130042, '\p{^Is_SB=-nu}', "");
+    Expect(1, 130042, '\P{Is_SB=-nu}', "");
+    Expect(0, 130042, '\P{^Is_SB=-nu}', "");
+    Error('\p{Sentence_Break=:=-SCONTINUE}');
+    Error('\P{Sentence_Break=:=-SCONTINUE}');
     Expect(1, 65380, '\p{Sentence_Break=:\ASContinue\z:}', "");;
     Expect(0, 65381, '\p{Sentence_Break=:\ASContinue\z:}', "");;
     Expect(1, 65380, '\p{Sentence_Break=scontinue}', "");
@@ -127985,16 +129177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65381, '\P{^Sentence_Break=scontinue}', "");
     Expect(1, 65380, '\p{Sentence_Break=:\Ascontinue\z:}', "");;
     Expect(0, 65381, '\p{Sentence_Break=:\Ascontinue\z:}', "");;
-    Expect(1, 65380, '\p{Sentence_Break=-SContinue}', "");
-    Expect(0, 65380, '\p{^Sentence_Break=-SContinue}', "");
-    Expect(0, 65380, '\P{Sentence_Break=-SContinue}', "");
-    Expect(1, 65380, '\P{^Sentence_Break=-SContinue}', "");
-    Expect(0, 65381, '\p{Sentence_Break=-SContinue}', "");
-    Expect(1, 65381, '\p{^Sentence_Break=-SContinue}', "");
-    Expect(1, 65381, '\P{Sentence_Break=-SContinue}', "");
-    Expect(0, 65381, '\P{^Sentence_Break=-SContinue}', "");
-    Error('\p{SB=_:=SC}');
-    Error('\P{SB=_:=SC}');
+    Expect(1, 65380, '\p{Sentence_Break=__SContinue}', "");
+    Expect(0, 65380, '\p{^Sentence_Break=__SContinue}', "");
+    Expect(0, 65380, '\P{Sentence_Break=__SContinue}', "");
+    Expect(1, 65380, '\P{^Sentence_Break=__SContinue}', "");
+    Expect(0, 65381, '\p{Sentence_Break=__SContinue}', "");
+    Expect(1, 65381, '\p{^Sentence_Break=__SContinue}', "");
+    Expect(1, 65381, '\P{Sentence_Break=__SContinue}', "");
+    Expect(0, 65381, '\P{^Sentence_Break=__SContinue}', "");
+    Error('\p{SB:	/a/SC}');
+    Error('\P{SB:	/a/SC}');
     Expect(1, 65380, '\p{SB=:\ASC\z:}', "");;
     Expect(0, 65381, '\p{SB=:\ASC\z:}', "");;
     Expect(1, 65380, '\p{SB=sc}', "");
@@ -128007,16 +129199,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65381, '\P{^SB=sc}', "");
     Expect(1, 65380, '\p{SB=:\Asc\z:}', "");;
     Expect(0, 65381, '\p{SB=:\Asc\z:}', "");;
-    Expect(1, 65380, '\p{SB:	_	SC}', "");
-    Expect(0, 65380, '\p{^SB:	_	SC}', "");
-    Expect(0, 65380, '\P{SB:	_	SC}', "");
-    Expect(1, 65380, '\P{^SB:	_	SC}', "");
-    Expect(0, 65381, '\p{SB:	_	SC}', "");
-    Expect(1, 65381, '\p{^SB:	_	SC}', "");
-    Expect(1, 65381, '\P{SB:	_	SC}', "");
-    Expect(0, 65381, '\P{^SB:	_	SC}', "");
-    Error('\p{Is_Sentence_Break=/a/ SCONTINUE}');
-    Error('\P{Is_Sentence_Break=/a/ SCONTINUE}');
+    Expect(1, 65380, '\p{SB= SC}', "");
+    Expect(0, 65380, '\p{^SB= SC}', "");
+    Expect(0, 65380, '\P{SB= SC}', "");
+    Expect(1, 65380, '\P{^SB= SC}', "");
+    Expect(0, 65381, '\p{SB= SC}', "");
+    Expect(1, 65381, '\p{^SB= SC}', "");
+    Expect(1, 65381, '\P{SB= SC}', "");
+    Expect(0, 65381, '\P{^SB= SC}', "");
+    Error('\p{Is_Sentence_Break=/a/		SContinue}');
+    Error('\P{Is_Sentence_Break=/a/		SContinue}');
     Expect(1, 65380, '\p{Is_Sentence_Break=scontinue}', "");
     Expect(0, 65380, '\p{^Is_Sentence_Break=scontinue}', "");
     Expect(0, 65380, '\P{Is_Sentence_Break=scontinue}', "");
@@ -128025,16 +129217,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65381, '\p{^Is_Sentence_Break=scontinue}', "");
     Expect(1, 65381, '\P{Is_Sentence_Break=scontinue}', "");
     Expect(0, 65381, '\P{^Is_Sentence_Break=scontinue}', "");
-    Expect(1, 65380, '\p{Is_Sentence_Break= 	SContinue}', "");
-    Expect(0, 65380, '\p{^Is_Sentence_Break= 	SContinue}', "");
-    Expect(0, 65380, '\P{Is_Sentence_Break= 	SContinue}', "");
-    Expect(1, 65380, '\P{^Is_Sentence_Break= 	SContinue}', "");
-    Expect(0, 65381, '\p{Is_Sentence_Break= 	SContinue}', "");
-    Expect(1, 65381, '\p{^Is_Sentence_Break= 	SContinue}', "");
-    Expect(1, 65381, '\P{Is_Sentence_Break= 	SContinue}', "");
-    Expect(0, 65381, '\P{^Is_Sentence_Break= 	SContinue}', "");
-    Error('\p{Is_SB=_	SC:=}');
-    Error('\P{Is_SB=_	SC:=}');
+    Expect(1, 65380, '\p{Is_Sentence_Break=-	SContinue}', "");
+    Expect(0, 65380, '\p{^Is_Sentence_Break=-	SContinue}', "");
+    Expect(0, 65380, '\P{Is_Sentence_Break=-	SContinue}', "");
+    Expect(1, 65380, '\P{^Is_Sentence_Break=-	SContinue}', "");
+    Expect(0, 65381, '\p{Is_Sentence_Break=-	SContinue}', "");
+    Expect(1, 65381, '\p{^Is_Sentence_Break=-	SContinue}', "");
+    Expect(1, 65381, '\P{Is_Sentence_Break=-	SContinue}', "");
+    Expect(0, 65381, '\P{^Is_Sentence_Break=-	SContinue}', "");
+    Error('\p{Is_SB=/a/-_SC}');
+    Error('\P{Is_SB=/a/-_SC}');
     Expect(1, 65380, '\p{Is_SB=sc}', "");
     Expect(0, 65380, '\p{^Is_SB=sc}', "");
     Expect(0, 65380, '\P{Is_SB=sc}', "");
@@ -128043,16 +129235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65381, '\p{^Is_SB=sc}', "");
     Expect(1, 65381, '\P{Is_SB=sc}', "");
     Expect(0, 65381, '\P{^Is_SB=sc}', "");
-    Expect(1, 65380, '\p{Is_SB=__sc}', "");
-    Expect(0, 65380, '\p{^Is_SB=__sc}', "");
-    Expect(0, 65380, '\P{Is_SB=__sc}', "");
-    Expect(1, 65380, '\P{^Is_SB=__sc}', "");
-    Expect(0, 65381, '\p{Is_SB=__sc}', "");
-    Expect(1, 65381, '\p{^Is_SB=__sc}', "");
-    Expect(1, 65381, '\P{Is_SB=__sc}', "");
-    Expect(0, 65381, '\P{^Is_SB=__sc}', "");
-    Error('\p{Sentence_Break=/a/ _Sep}');
-    Error('\P{Sentence_Break=/a/ _Sep}');
+    Expect(1, 65380, '\p{Is_SB:   __SC}', "");
+    Expect(0, 65380, '\p{^Is_SB:   __SC}', "");
+    Expect(0, 65380, '\P{Is_SB:   __SC}', "");
+    Expect(1, 65380, '\P{^Is_SB:   __SC}', "");
+    Expect(0, 65381, '\p{Is_SB:   __SC}', "");
+    Expect(1, 65381, '\p{^Is_SB:   __SC}', "");
+    Expect(1, 65381, '\P{Is_SB:   __SC}', "");
+    Expect(0, 65381, '\P{^Is_SB:   __SC}', "");
+    Error('\p{Sentence_Break=:=Sep}');
+    Error('\P{Sentence_Break=:=Sep}');
     Expect(1, 8233, '\p{Sentence_Break=:\ASep\z:}', "");;
     Expect(0, 8234, '\p{Sentence_Break=:\ASep\z:}', "");;
     Expect(1, 8233, '\p{Sentence_Break=sep}', "");
@@ -128065,16 +129257,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 8234, '\P{^Sentence_Break=sep}', "");
     Expect(1, 8233, '\p{Sentence_Break=:\Asep\z:}', "");;
     Expect(0, 8234, '\p{Sentence_Break=:\Asep\z:}', "");;
-    Expect(1, 8233, '\p{Sentence_Break=		sep}', "");
-    Expect(0, 8233, '\p{^Sentence_Break=		sep}', "");
-    Expect(0, 8233, '\P{Sentence_Break=		sep}', "");
-    Expect(1, 8233, '\P{^Sentence_Break=		sep}', "");
-    Expect(0, 8234, '\p{Sentence_Break=		sep}', "");
-    Expect(1, 8234, '\p{^Sentence_Break=		sep}', "");
-    Expect(1, 8234, '\P{Sentence_Break=		sep}', "");
-    Expect(0, 8234, '\P{^Sentence_Break=		sep}', "");
-    Error('\p{SB=/a/		SE}');
-    Error('\P{SB=/a/		SE}');
+    Expect(1, 8233, '\p{Sentence_Break: _Sep}', "");
+    Expect(0, 8233, '\p{^Sentence_Break: _Sep}', "");
+    Expect(0, 8233, '\P{Sentence_Break: _Sep}', "");
+    Expect(1, 8233, '\P{^Sentence_Break: _Sep}', "");
+    Expect(0, 8234, '\p{Sentence_Break: _Sep}', "");
+    Expect(1, 8234, '\p{^Sentence_Break: _Sep}', "");
+    Expect(1, 8234, '\P{Sentence_Break: _Sep}', "");
+    Expect(0, 8234, '\P{^Sentence_Break: _Sep}', "");
+    Error('\p{SB=/a/ SE}');
+    Error('\P{SB=/a/ SE}');
     Expect(1, 8233, '\p{SB=:\ASE\z:}', "");;
     Expect(0, 8234, '\p{SB=:\ASE\z:}', "");;
     Expect(1, 8233, '\p{SB=se}', "");
@@ -128087,34 +129279,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 8234, '\P{^SB=se}', "");
     Expect(1, 8233, '\p{SB=:\Ase\z:}', "");;
     Expect(0, 8234, '\p{SB=:\Ase\z:}', "");;
-    Expect(1, 8233, '\p{SB=-SE}', "");
-    Expect(0, 8233, '\p{^SB=-SE}', "");
-    Expect(0, 8233, '\P{SB=-SE}', "");
-    Expect(1, 8233, '\P{^SB=-SE}', "");
-    Expect(0, 8234, '\p{SB=-SE}', "");
-    Expect(1, 8234, '\p{^SB=-SE}', "");
-    Expect(1, 8234, '\P{SB=-SE}', "");
-    Expect(0, 8234, '\P{^SB=-SE}', "");
-    Error('\p{Is_Sentence_Break=/a/	-Sep}');
-    Error('\P{Is_Sentence_Break=/a/	-Sep}');
-    Expect(1, 8233, '\p{Is_Sentence_Break=sep}', "");
-    Expect(0, 8233, '\p{^Is_Sentence_Break=sep}', "");
-    Expect(0, 8233, '\P{Is_Sentence_Break=sep}', "");
-    Expect(1, 8233, '\P{^Is_Sentence_Break=sep}', "");
-    Expect(0, 8234, '\p{Is_Sentence_Break=sep}', "");
-    Expect(1, 8234, '\p{^Is_Sentence_Break=sep}', "");
-    Expect(1, 8234, '\P{Is_Sentence_Break=sep}', "");
-    Expect(0, 8234, '\P{^Is_Sentence_Break=sep}', "");
-    Expect(1, 8233, '\p{Is_Sentence_Break= Sep}', "");
-    Expect(0, 8233, '\p{^Is_Sentence_Break= Sep}', "");
-    Expect(0, 8233, '\P{Is_Sentence_Break= Sep}', "");
-    Expect(1, 8233, '\P{^Is_Sentence_Break= Sep}', "");
-    Expect(0, 8234, '\p{Is_Sentence_Break= Sep}', "");
-    Expect(1, 8234, '\p{^Is_Sentence_Break= Sep}', "");
-    Expect(1, 8234, '\P{Is_Sentence_Break= Sep}', "");
-    Expect(0, 8234, '\P{^Is_Sentence_Break= Sep}', "");
-    Error('\p{Is_SB=_-SE/a/}');
-    Error('\P{Is_SB=_-SE/a/}');
+    Expect(1, 8233, '\p{SB=__SE}', "");
+    Expect(0, 8233, '\p{^SB=__SE}', "");
+    Expect(0, 8233, '\P{SB=__SE}', "");
+    Expect(1, 8233, '\P{^SB=__SE}', "");
+    Expect(0, 8234, '\p{SB=__SE}', "");
+    Expect(1, 8234, '\p{^SB=__SE}', "");
+    Expect(1, 8234, '\P{SB=__SE}', "");
+    Expect(0, 8234, '\P{^SB=__SE}', "");
+    Error('\p{Is_Sentence_Break=	Sep/a/}');
+    Error('\P{Is_Sentence_Break=	Sep/a/}');
+    Expect(1, 8233, '\p{Is_Sentence_Break:	sep}', "");
+    Expect(0, 8233, '\p{^Is_Sentence_Break:	sep}', "");
+    Expect(0, 8233, '\P{Is_Sentence_Break:	sep}', "");
+    Expect(1, 8233, '\P{^Is_Sentence_Break:	sep}', "");
+    Expect(0, 8234, '\p{Is_Sentence_Break:	sep}', "");
+    Expect(1, 8234, '\p{^Is_Sentence_Break:	sep}', "");
+    Expect(1, 8234, '\P{Is_Sentence_Break:	sep}', "");
+    Expect(0, 8234, '\P{^Is_Sentence_Break:	sep}', "");
+    Expect(1, 8233, '\p{Is_Sentence_Break=- SEP}', "");
+    Expect(0, 8233, '\p{^Is_Sentence_Break=- SEP}', "");
+    Expect(0, 8233, '\P{Is_Sentence_Break=- SEP}', "");
+    Expect(1, 8233, '\P{^Is_Sentence_Break=- SEP}', "");
+    Expect(0, 8234, '\p{Is_Sentence_Break=- SEP}', "");
+    Expect(1, 8234, '\p{^Is_Sentence_Break=- SEP}', "");
+    Expect(1, 8234, '\P{Is_Sentence_Break=- SEP}', "");
+    Expect(0, 8234, '\P{^Is_Sentence_Break=- SEP}', "");
+    Error('\p{Is_SB= :=SE}');
+    Error('\P{Is_SB= :=SE}');
     Expect(1, 8233, '\p{Is_SB=se}', "");
     Expect(0, 8233, '\p{^Is_SB=se}', "");
     Expect(0, 8233, '\P{Is_SB=se}', "");
@@ -128123,16 +129315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8234, '\p{^Is_SB=se}', "");
     Expect(1, 8234, '\P{Is_SB=se}', "");
     Expect(0, 8234, '\P{^Is_SB=se}', "");
-    Expect(1, 8233, '\p{Is_SB=  SE}', "");
-    Expect(0, 8233, '\p{^Is_SB=  SE}', "");
-    Expect(0, 8233, '\P{Is_SB=  SE}', "");
-    Expect(1, 8233, '\P{^Is_SB=  SE}', "");
-    Expect(0, 8234, '\p{Is_SB=  SE}', "");
-    Expect(1, 8234, '\p{^Is_SB=  SE}', "");
-    Expect(1, 8234, '\P{Is_SB=  SE}', "");
-    Expect(0, 8234, '\P{^Is_SB=  SE}', "");
-    Error('\p{Sentence_Break=:=- Sp}');
-    Error('\P{Sentence_Break=:=- Sp}');
+    Expect(1, 8233, '\p{Is_SB=_ SE}', "");
+    Expect(0, 8233, '\p{^Is_SB=_ SE}', "");
+    Expect(0, 8233, '\P{Is_SB=_ SE}', "");
+    Expect(1, 8233, '\P{^Is_SB=_ SE}', "");
+    Expect(0, 8234, '\p{Is_SB=_ SE}', "");
+    Expect(1, 8234, '\p{^Is_SB=_ SE}', "");
+    Expect(1, 8234, '\P{Is_SB=_ SE}', "");
+    Expect(0, 8234, '\P{^Is_SB=_ SE}', "");
+    Error('\p{Sentence_Break=Sp:=}');
+    Error('\P{Sentence_Break=Sp:=}');
     Expect(1, 12288, '\p{Sentence_Break=:\ASp\z:}', "");;
     Expect(0, 12289, '\p{Sentence_Break=:\ASp\z:}', "");;
     Expect(1, 12288, '\p{Sentence_Break=sp}', "");
@@ -128145,16 +129337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^Sentence_Break=sp}', "");
     Expect(1, 12288, '\p{Sentence_Break=:\Asp\z:}', "");;
     Expect(0, 12289, '\p{Sentence_Break=:\Asp\z:}', "");;
-    Expect(1, 12288, '\p{Sentence_Break=	sp}', "");
-    Expect(0, 12288, '\p{^Sentence_Break=	sp}', "");
-    Expect(0, 12288, '\P{Sentence_Break=	sp}', "");
-    Expect(1, 12288, '\P{^Sentence_Break=	sp}', "");
-    Expect(0, 12289, '\p{Sentence_Break=	sp}', "");
-    Expect(1, 12289, '\p{^Sentence_Break=	sp}', "");
-    Expect(1, 12289, '\P{Sentence_Break=	sp}', "");
-    Expect(0, 12289, '\P{^Sentence_Break=	sp}', "");
-    Error('\p{SB=_sp/a/}');
-    Error('\P{SB=_sp/a/}');
+    Expect(1, 12288, '\p{Sentence_Break=		Sp}', "");
+    Expect(0, 12288, '\p{^Sentence_Break=		Sp}', "");
+    Expect(0, 12288, '\P{Sentence_Break=		Sp}', "");
+    Expect(1, 12288, '\P{^Sentence_Break=		Sp}', "");
+    Expect(0, 12289, '\p{Sentence_Break=		Sp}', "");
+    Expect(1, 12289, '\p{^Sentence_Break=		Sp}', "");
+    Expect(1, 12289, '\P{Sentence_Break=		Sp}', "");
+    Expect(0, 12289, '\P{^Sentence_Break=		Sp}', "");
+    Error('\p{SB=:=-Sp}');
+    Error('\P{SB=:=-Sp}');
     Expect(1, 12288, '\p{SB=:\ASp\z:}', "");;
     Expect(0, 12289, '\p{SB=:\ASp\z:}', "");;
     Expect(1, 12288, '\p{SB=sp}', "");
@@ -128167,16 +129359,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^SB=sp}', "");
     Expect(1, 12288, '\p{SB=:\Asp\z:}', "");;
     Expect(0, 12289, '\p{SB=:\Asp\z:}', "");;
-    Expect(1, 12288, '\p{SB= Sp}', "");
-    Expect(0, 12288, '\p{^SB= Sp}', "");
-    Expect(0, 12288, '\P{SB= Sp}', "");
-    Expect(1, 12288, '\P{^SB= Sp}', "");
-    Expect(0, 12289, '\p{SB= Sp}', "");
-    Expect(1, 12289, '\p{^SB= Sp}', "");
-    Expect(1, 12289, '\P{SB= Sp}', "");
-    Expect(0, 12289, '\P{^SB= Sp}', "");
-    Error('\p{Is_Sentence_Break=/a/_	Sp}');
-    Error('\P{Is_Sentence_Break=/a/_	Sp}');
+    Expect(1, 12288, '\p{SB=_SP}', "");
+    Expect(0, 12288, '\p{^SB=_SP}', "");
+    Expect(0, 12288, '\P{SB=_SP}', "");
+    Expect(1, 12288, '\P{^SB=_SP}', "");
+    Expect(0, 12289, '\p{SB=_SP}', "");
+    Expect(1, 12289, '\p{^SB=_SP}', "");
+    Expect(1, 12289, '\P{SB=_SP}', "");
+    Expect(0, 12289, '\P{^SB=_SP}', "");
+    Error('\p{Is_Sentence_Break=:= 	sp}');
+    Error('\P{Is_Sentence_Break=:= 	sp}');
     Expect(1, 12288, '\p{Is_Sentence_Break=sp}', "");
     Expect(0, 12288, '\p{^Is_Sentence_Break=sp}', "");
     Expect(0, 12288, '\P{Is_Sentence_Break=sp}', "");
@@ -128185,16 +129377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^Is_Sentence_Break=sp}', "");
     Expect(1, 12289, '\P{Is_Sentence_Break=sp}', "");
     Expect(0, 12289, '\P{^Is_Sentence_Break=sp}', "");
-    Expect(1, 12288, '\p{Is_Sentence_Break=_ SP}', "");
-    Expect(0, 12288, '\p{^Is_Sentence_Break=_ SP}', "");
-    Expect(0, 12288, '\P{Is_Sentence_Break=_ SP}', "");
-    Expect(1, 12288, '\P{^Is_Sentence_Break=_ SP}', "");
-    Expect(0, 12289, '\p{Is_Sentence_Break=_ SP}', "");
-    Expect(1, 12289, '\p{^Is_Sentence_Break=_ SP}', "");
-    Expect(1, 12289, '\P{Is_Sentence_Break=_ SP}', "");
-    Expect(0, 12289, '\P{^Is_Sentence_Break=_ SP}', "");
-    Error('\p{Is_SB::= 	Sp}');
-    Error('\P{Is_SB::= 	Sp}');
+    Expect(1, 12288, '\p{Is_Sentence_Break= 	Sp}', "");
+    Expect(0, 12288, '\p{^Is_Sentence_Break= 	Sp}', "");
+    Expect(0, 12288, '\P{Is_Sentence_Break= 	Sp}', "");
+    Expect(1, 12288, '\P{^Is_Sentence_Break= 	Sp}', "");
+    Expect(0, 12289, '\p{Is_Sentence_Break= 	Sp}', "");
+    Expect(1, 12289, '\p{^Is_Sentence_Break= 	Sp}', "");
+    Expect(1, 12289, '\P{Is_Sentence_Break= 	Sp}', "");
+    Expect(0, 12289, '\P{^Is_Sentence_Break= 	Sp}', "");
+    Error('\p{Is_SB=:=	sp}');
+    Error('\P{Is_SB=:=	sp}');
     Expect(1, 12288, '\p{Is_SB=sp}', "");
     Expect(0, 12288, '\p{^Is_SB=sp}', "");
     Expect(0, 12288, '\P{Is_SB=sp}', "");
@@ -128203,16 +129395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^Is_SB=sp}', "");
     Expect(1, 12289, '\P{Is_SB=sp}', "");
     Expect(0, 12289, '\P{^Is_SB=sp}', "");
-    Expect(1, 12288, '\p{Is_SB=-sp}', "");
-    Expect(0, 12288, '\p{^Is_SB=-sp}', "");
-    Expect(0, 12288, '\P{Is_SB=-sp}', "");
-    Expect(1, 12288, '\P{^Is_SB=-sp}', "");
-    Expect(0, 12289, '\p{Is_SB=-sp}', "");
-    Expect(1, 12289, '\p{^Is_SB=-sp}', "");
-    Expect(1, 12289, '\P{Is_SB=-sp}', "");
-    Expect(0, 12289, '\P{^Is_SB=-sp}', "");
-    Error('\p{Sentence_Break=	_STerm/a/}');
-    Error('\P{Sentence_Break=	_STerm/a/}');
+    Expect(1, 12288, '\p{Is_SB=		Sp}', "");
+    Expect(0, 12288, '\p{^Is_SB=		Sp}', "");
+    Expect(0, 12288, '\P{Is_SB=		Sp}', "");
+    Expect(1, 12288, '\P{^Is_SB=		Sp}', "");
+    Expect(0, 12289, '\p{Is_SB=		Sp}', "");
+    Expect(1, 12289, '\p{^Is_SB=		Sp}', "");
+    Expect(1, 12289, '\P{Is_SB=		Sp}', "");
+    Expect(0, 12289, '\P{^Is_SB=		Sp}', "");
+    Error('\p{Sentence_Break=/a/-	STERM}');
+    Error('\P{Sentence_Break=/a/-	STERM}');
     Expect(1, 121480, '\p{Sentence_Break=:\ASTerm\z:}', "");;
     Expect(0, 121481, '\p{Sentence_Break=:\ASTerm\z:}', "");;
     Expect(1, 121480, '\p{Sentence_Break=sterm}', "");
@@ -128225,16 +129417,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121481, '\P{^Sentence_Break=sterm}', "");
     Expect(1, 121480, '\p{Sentence_Break=:\Asterm\z:}', "");;
     Expect(0, 121481, '\p{Sentence_Break=:\Asterm\z:}', "");;
-    Expect(1, 121480, '\p{Sentence_Break= STERM}', "");
-    Expect(0, 121480, '\p{^Sentence_Break= STERM}', "");
-    Expect(0, 121480, '\P{Sentence_Break= STERM}', "");
-    Expect(1, 121480, '\P{^Sentence_Break= STERM}', "");
-    Expect(0, 121481, '\p{Sentence_Break= STERM}', "");
-    Expect(1, 121481, '\p{^Sentence_Break= STERM}', "");
-    Expect(1, 121481, '\P{Sentence_Break= STERM}', "");
-    Expect(0, 121481, '\P{^Sentence_Break= STERM}', "");
-    Error('\p{SB=:=	_ST}');
-    Error('\P{SB=:=	_ST}');
+    Expect(1, 121480, '\p{Sentence_Break= 	STerm}', "");
+    Expect(0, 121480, '\p{^Sentence_Break= 	STerm}', "");
+    Expect(0, 121480, '\P{Sentence_Break= 	STerm}', "");
+    Expect(1, 121480, '\P{^Sentence_Break= 	STerm}', "");
+    Expect(0, 121481, '\p{Sentence_Break= 	STerm}', "");
+    Expect(1, 121481, '\p{^Sentence_Break= 	STerm}', "");
+    Expect(1, 121481, '\P{Sentence_Break= 	STerm}', "");
+    Expect(0, 121481, '\P{^Sentence_Break= 	STerm}', "");
+    Error('\p{SB=_ ST:=}');
+    Error('\P{SB=_ ST:=}');
     Expect(1, 121480, '\p{SB=:\AST\z:}', "");;
     Expect(0, 121481, '\p{SB=:\AST\z:}', "");;
     Expect(1, 121480, '\p{SB=st}', "");
@@ -128247,16 +129439,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121481, '\P{^SB=st}', "");
     Expect(1, 121480, '\p{SB=:\Ast\z:}', "");;
     Expect(0, 121481, '\p{SB=:\Ast\z:}', "");;
-    Expect(1, 121480, '\p{SB=_ ST}', "");
-    Expect(0, 121480, '\p{^SB=_ ST}', "");
-    Expect(0, 121480, '\P{SB=_ ST}', "");
-    Expect(1, 121480, '\P{^SB=_ ST}', "");
-    Expect(0, 121481, '\p{SB=_ ST}', "");
-    Expect(1, 121481, '\p{^SB=_ ST}', "");
-    Expect(1, 121481, '\P{SB=_ ST}', "");
-    Expect(0, 121481, '\P{^SB=_ ST}', "");
-    Error('\p{Is_Sentence_Break=_ sterm/a/}');
-    Error('\P{Is_Sentence_Break=_ sterm/a/}');
+    Expect(1, 121480, '\p{SB:   --ST}', "");
+    Expect(0, 121480, '\p{^SB:   --ST}', "");
+    Expect(0, 121480, '\P{SB:   --ST}', "");
+    Expect(1, 121480, '\P{^SB:   --ST}', "");
+    Expect(0, 121481, '\p{SB:   --ST}', "");
+    Expect(1, 121481, '\p{^SB:   --ST}', "");
+    Expect(1, 121481, '\P{SB:   --ST}', "");
+    Expect(0, 121481, '\P{^SB:   --ST}', "");
+    Error('\p{Is_Sentence_Break= STerm/a/}');
+    Error('\P{Is_Sentence_Break= STerm/a/}');
     Expect(1, 121480, '\p{Is_Sentence_Break=sterm}', "");
     Expect(0, 121480, '\p{^Is_Sentence_Break=sterm}', "");
     Expect(0, 121480, '\P{Is_Sentence_Break=sterm}', "");
@@ -128265,16 +129457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^Is_Sentence_Break=sterm}', "");
     Expect(1, 121481, '\P{Is_Sentence_Break=sterm}', "");
     Expect(0, 121481, '\P{^Is_Sentence_Break=sterm}', "");
-    Expect(1, 121480, '\p{Is_Sentence_Break=_	STerm}', "");
-    Expect(0, 121480, '\p{^Is_Sentence_Break=_	STerm}', "");
-    Expect(0, 121480, '\P{Is_Sentence_Break=_	STerm}', "");
-    Expect(1, 121480, '\P{^Is_Sentence_Break=_	STerm}', "");
-    Expect(0, 121481, '\p{Is_Sentence_Break=_	STerm}', "");
-    Expect(1, 121481, '\p{^Is_Sentence_Break=_	STerm}', "");
-    Expect(1, 121481, '\P{Is_Sentence_Break=_	STerm}', "");
-    Expect(0, 121481, '\P{^Is_Sentence_Break=_	STerm}', "");
-    Error('\p{Is_SB=_	ST/a/}');
-    Error('\P{Is_SB=_	ST/a/}');
+    Expect(1, 121480, '\p{Is_Sentence_Break=_-STerm}', "");
+    Expect(0, 121480, '\p{^Is_Sentence_Break=_-STerm}', "");
+    Expect(0, 121480, '\P{Is_Sentence_Break=_-STerm}', "");
+    Expect(1, 121480, '\P{^Is_Sentence_Break=_-STerm}', "");
+    Expect(0, 121481, '\p{Is_Sentence_Break=_-STerm}', "");
+    Expect(1, 121481, '\p{^Is_Sentence_Break=_-STerm}', "");
+    Expect(1, 121481, '\P{Is_Sentence_Break=_-STerm}', "");
+    Expect(0, 121481, '\P{^Is_Sentence_Break=_-STerm}', "");
+    Error('\p{Is_SB=  ST/a/}');
+    Error('\P{Is_SB=  ST/a/}');
     Expect(1, 121480, '\p{Is_SB=st}', "");
     Expect(0, 121480, '\p{^Is_SB=st}', "");
     Expect(0, 121480, '\P{Is_SB=st}', "");
@@ -128283,38 +129475,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^Is_SB=st}', "");
     Expect(1, 121481, '\P{Is_SB=st}', "");
     Expect(0, 121481, '\P{^Is_SB=st}', "");
-    Expect(1, 121480, '\p{Is_SB:  	ST}', "");
-    Expect(0, 121480, '\p{^Is_SB:  	ST}', "");
-    Expect(0, 121480, '\P{Is_SB:  	ST}', "");
-    Expect(1, 121480, '\P{^Is_SB:  	ST}', "");
-    Expect(0, 121481, '\p{Is_SB:  	ST}', "");
-    Expect(1, 121481, '\p{^Is_SB:  	ST}', "");
-    Expect(1, 121481, '\P{Is_SB:  	ST}', "");
-    Expect(0, 121481, '\P{^Is_SB:  	ST}', "");
-    Error('\p{Sentence_Break=_-Upper:=}');
-    Error('\P{Sentence_Break=_-Upper:=}');
+    Expect(1, 121480, '\p{Is_SB=  st}', "");
+    Expect(0, 121480, '\p{^Is_SB=  st}', "");
+    Expect(0, 121480, '\P{Is_SB=  st}', "");
+    Expect(1, 121480, '\P{^Is_SB=  st}', "");
+    Expect(0, 121481, '\p{Is_SB=  st}', "");
+    Expect(1, 121481, '\p{^Is_SB=  st}', "");
+    Expect(1, 121481, '\P{Is_SB=  st}', "");
+    Expect(0, 121481, '\P{^Is_SB=  st}', "");
+    Error('\p{Sentence_Break:   /a/	-Upper}');
+    Error('\P{Sentence_Break:   /a/	-Upper}');
     Expect(1, 127369, '\p{Sentence_Break=:\AUpper\z:}', "");;
     Expect(0, 127370, '\p{Sentence_Break=:\AUpper\z:}', "");;
-    Expect(1, 127369, '\p{Sentence_Break: upper}', "");
-    Expect(0, 127369, '\p{^Sentence_Break: upper}', "");
-    Expect(0, 127369, '\P{Sentence_Break: upper}', "");
-    Expect(1, 127369, '\P{^Sentence_Break: upper}', "");
-    Expect(0, 127370, '\p{Sentence_Break: upper}', "");
-    Expect(1, 127370, '\p{^Sentence_Break: upper}', "");
-    Expect(1, 127370, '\P{Sentence_Break: upper}', "");
-    Expect(0, 127370, '\P{^Sentence_Break: upper}', "");
+    Expect(1, 127369, '\p{Sentence_Break:   upper}', "");
+    Expect(0, 127369, '\p{^Sentence_Break:   upper}', "");
+    Expect(0, 127369, '\P{Sentence_Break:   upper}', "");
+    Expect(1, 127369, '\P{^Sentence_Break:   upper}', "");
+    Expect(0, 127370, '\p{Sentence_Break:   upper}', "");
+    Expect(1, 127370, '\p{^Sentence_Break:   upper}', "");
+    Expect(1, 127370, '\P{Sentence_Break:   upper}', "");
+    Expect(0, 127370, '\P{^Sentence_Break:   upper}', "");
     Expect(1, 127369, '\p{Sentence_Break=:\Aupper\z:}', "");;
     Expect(0, 127370, '\p{Sentence_Break=:\Aupper\z:}', "");;
-    Expect(1, 127369, '\p{Sentence_Break=_UPPER}', "");
-    Expect(0, 127369, '\p{^Sentence_Break=_UPPER}', "");
-    Expect(0, 127369, '\P{Sentence_Break=_UPPER}', "");
-    Expect(1, 127369, '\P{^Sentence_Break=_UPPER}', "");
-    Expect(0, 127370, '\p{Sentence_Break=_UPPER}', "");
-    Expect(1, 127370, '\p{^Sentence_Break=_UPPER}', "");
-    Expect(1, 127370, '\P{Sentence_Break=_UPPER}', "");
-    Expect(0, 127370, '\P{^Sentence_Break=_UPPER}', "");
-    Error('\p{SB=:=	 UP}');
-    Error('\P{SB=:=	 UP}');
+    Expect(1, 127369, '\p{Sentence_Break=  Upper}', "");
+    Expect(0, 127369, '\p{^Sentence_Break=  Upper}', "");
+    Expect(0, 127369, '\P{Sentence_Break=  Upper}', "");
+    Expect(1, 127369, '\P{^Sentence_Break=  Upper}', "");
+    Expect(0, 127370, '\p{Sentence_Break=  Upper}', "");
+    Expect(1, 127370, '\p{^Sentence_Break=  Upper}', "");
+    Expect(1, 127370, '\P{Sentence_Break=  Upper}', "");
+    Expect(0, 127370, '\P{^Sentence_Break=  Upper}', "");
+    Error('\p{SB=/a/	-UP}');
+    Error('\P{SB=/a/	-UP}');
     Expect(1, 127369, '\p{SB=:\AUP\z:}', "");;
     Expect(0, 127370, '\p{SB=:\AUP\z:}', "");;
     Expect(1, 127369, '\p{SB=up}', "");
@@ -128327,16 +129519,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127370, '\P{^SB=up}', "");
     Expect(1, 127369, '\p{SB=:\Aup\z:}', "");;
     Expect(0, 127370, '\p{SB=:\Aup\z:}', "");;
-    Expect(1, 127369, '\p{SB= UP}', "");
-    Expect(0, 127369, '\p{^SB= UP}', "");
-    Expect(0, 127369, '\P{SB= UP}', "");
-    Expect(1, 127369, '\P{^SB= UP}', "");
-    Expect(0, 127370, '\p{SB= UP}', "");
-    Expect(1, 127370, '\p{^SB= UP}', "");
-    Expect(1, 127370, '\P{SB= UP}', "");
-    Expect(0, 127370, '\P{^SB= UP}', "");
-    Error('\p{Is_Sentence_Break=	/a/Upper}');
-    Error('\P{Is_Sentence_Break=	/a/Upper}');
+    Expect(1, 127369, '\p{SB=UP}', "");
+    Expect(0, 127369, '\p{^SB=UP}', "");
+    Expect(0, 127369, '\P{SB=UP}', "");
+    Expect(1, 127369, '\P{^SB=UP}', "");
+    Expect(0, 127370, '\p{SB=UP}', "");
+    Expect(1, 127370, '\p{^SB=UP}', "");
+    Expect(1, 127370, '\P{SB=UP}', "");
+    Expect(0, 127370, '\P{^SB=UP}', "");
+    Error('\p{Is_Sentence_Break= upper/a/}');
+    Error('\P{Is_Sentence_Break= upper/a/}');
     Expect(1, 127369, '\p{Is_Sentence_Break=upper}', "");
     Expect(0, 127369, '\p{^Is_Sentence_Break=upper}', "");
     Expect(0, 127369, '\P{Is_Sentence_Break=upper}', "");
@@ -128345,16 +129537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^Is_Sentence_Break=upper}', "");
     Expect(1, 127370, '\P{Is_Sentence_Break=upper}', "");
     Expect(0, 127370, '\P{^Is_Sentence_Break=upper}', "");
-    Expect(1, 127369, '\p{Is_Sentence_Break:   UPPER}', "");
-    Expect(0, 127369, '\p{^Is_Sentence_Break:   UPPER}', "");
-    Expect(0, 127369, '\P{Is_Sentence_Break:   UPPER}', "");
-    Expect(1, 127369, '\P{^Is_Sentence_Break:   UPPER}', "");
-    Expect(0, 127370, '\p{Is_Sentence_Break:   UPPER}', "");
-    Expect(1, 127370, '\p{^Is_Sentence_Break:   UPPER}', "");
-    Expect(1, 127370, '\P{Is_Sentence_Break:   UPPER}', "");
-    Expect(0, 127370, '\P{^Is_Sentence_Break:   UPPER}', "");
-    Error('\p{Is_SB: _UP/a/}');
-    Error('\P{Is_SB: _UP/a/}');
+    Expect(1, 127369, '\p{Is_Sentence_Break=-Upper}', "");
+    Expect(0, 127369, '\p{^Is_Sentence_Break=-Upper}', "");
+    Expect(0, 127369, '\P{Is_Sentence_Break=-Upper}', "");
+    Expect(1, 127369, '\P{^Is_Sentence_Break=-Upper}', "");
+    Expect(0, 127370, '\p{Is_Sentence_Break=-Upper}', "");
+    Expect(1, 127370, '\p{^Is_Sentence_Break=-Upper}', "");
+    Expect(1, 127370, '\P{Is_Sentence_Break=-Upper}', "");
+    Expect(0, 127370, '\P{^Is_Sentence_Break=-Upper}', "");
+    Error('\p{Is_SB=:=UP}');
+    Error('\P{Is_SB=:=UP}');
     Expect(1, 127369, '\p{Is_SB=up}', "");
     Expect(0, 127369, '\p{^Is_SB=up}', "");
     Expect(0, 127369, '\P{Is_SB=up}', "");
@@ -128363,16 +129555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^Is_SB=up}', "");
     Expect(1, 127370, '\P{Is_SB=up}', "");
     Expect(0, 127370, '\P{^Is_SB=up}', "");
-    Expect(1, 127369, '\p{Is_SB=	 up}', "");
-    Expect(0, 127369, '\p{^Is_SB=	 up}', "");
-    Expect(0, 127369, '\P{Is_SB=	 up}', "");
-    Expect(1, 127369, '\P{^Is_SB=	 up}', "");
-    Expect(0, 127370, '\p{Is_SB=	 up}', "");
-    Expect(1, 127370, '\p{^Is_SB=	 up}', "");
-    Expect(1, 127370, '\P{Is_SB=	 up}', "");
-    Expect(0, 127370, '\P{^Is_SB=	 up}', "");
-    Error('\p{Sentence_Break=	OTHER/a/}');
-    Error('\P{Sentence_Break=	OTHER/a/}');
+    Expect(1, 127369, '\p{Is_SB=	-UP}', "");
+    Expect(0, 127369, '\p{^Is_SB=	-UP}', "");
+    Expect(0, 127369, '\P{Is_SB=	-UP}', "");
+    Expect(1, 127369, '\P{^Is_SB=	-UP}', "");
+    Expect(0, 127370, '\p{Is_SB=	-UP}', "");
+    Expect(1, 127370, '\p{^Is_SB=	-UP}', "");
+    Expect(1, 127370, '\P{Is_SB=	-UP}', "");
+    Expect(0, 127370, '\P{^Is_SB=	-UP}', "");
+    Error('\p{Sentence_Break=_/a/OTHER}');
+    Error('\P{Sentence_Break=_/a/OTHER}');
     Expect(1, 918000, '\p{Sentence_Break=:\AOther\z:}', "");;
     Expect(0, 917999, '\p{Sentence_Break=:\AOther\z:}', "");;
     Expect(1, 918000, '\p{Sentence_Break=other}', "");
@@ -128385,16 +129577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^Sentence_Break=other}', "");
     Expect(1, 918000, '\p{Sentence_Break=:\Aother\z:}', "");;
     Expect(0, 917999, '\p{Sentence_Break=:\Aother\z:}', "");;
-    Expect(1, 918000, '\p{Sentence_Break=-Other}', "");
-    Expect(0, 918000, '\p{^Sentence_Break=-Other}', "");
-    Expect(0, 918000, '\P{Sentence_Break=-Other}', "");
-    Expect(1, 918000, '\P{^Sentence_Break=-Other}', "");
-    Expect(0, 917999, '\p{Sentence_Break=-Other}', "");
-    Expect(1, 917999, '\p{^Sentence_Break=-Other}', "");
-    Expect(1, 917999, '\P{Sentence_Break=-Other}', "");
-    Expect(0, 917999, '\P{^Sentence_Break=-Other}', "");
-    Error('\p{SB:__xx/a/}');
-    Error('\P{SB:__xx/a/}');
+    Expect(1, 918000, '\p{Sentence_Break=-	other}', "");
+    Expect(0, 918000, '\p{^Sentence_Break=-	other}', "");
+    Expect(0, 918000, '\P{Sentence_Break=-	other}', "");
+    Expect(1, 918000, '\P{^Sentence_Break=-	other}', "");
+    Expect(0, 917999, '\p{Sentence_Break=-	other}', "");
+    Expect(1, 917999, '\p{^Sentence_Break=-	other}', "");
+    Expect(1, 917999, '\P{Sentence_Break=-	other}', "");
+    Expect(0, 917999, '\P{^Sentence_Break=-	other}', "");
+    Error('\p{SB=/a/_xx}');
+    Error('\P{SB=/a/_xx}');
     Expect(1, 918000, '\p{SB=:\AXX\z:}', "");;
     Expect(0, 917999, '\p{SB=:\AXX\z:}', "");;
     Expect(1, 918000, '\p{SB=xx}', "");
@@ -128407,16 +129599,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^SB=xx}', "");
     Expect(1, 918000, '\p{SB=:\Axx\z:}', "");;
     Expect(0, 917999, '\p{SB=:\Axx\z:}', "");;
-    Expect(1, 918000, '\p{SB=	-XX}', "");
-    Expect(0, 918000, '\p{^SB=	-XX}', "");
-    Expect(0, 918000, '\P{SB=	-XX}', "");
-    Expect(1, 918000, '\P{^SB=	-XX}', "");
-    Expect(0, 917999, '\p{SB=	-XX}', "");
-    Expect(1, 917999, '\p{^SB=	-XX}', "");
-    Expect(1, 917999, '\P{SB=	-XX}', "");
-    Expect(0, 917999, '\P{^SB=	-XX}', "");
-    Error('\p{Is_Sentence_Break=-/a/OTHER}');
-    Error('\P{Is_Sentence_Break=-/a/OTHER}');
+    Expect(1, 918000, '\p{SB= 	XX}', "");
+    Expect(0, 918000, '\p{^SB= 	XX}', "");
+    Expect(0, 918000, '\P{SB= 	XX}', "");
+    Expect(1, 918000, '\P{^SB= 	XX}', "");
+    Expect(0, 917999, '\p{SB= 	XX}', "");
+    Expect(1, 917999, '\p{^SB= 	XX}', "");
+    Expect(1, 917999, '\P{SB= 	XX}', "");
+    Expect(0, 917999, '\P{^SB= 	XX}', "");
+    Error('\p{Is_Sentence_Break= OTHER/a/}');
+    Error('\P{Is_Sentence_Break= OTHER/a/}');
     Expect(1, 918000, '\p{Is_Sentence_Break=other}', "");
     Expect(0, 918000, '\p{^Is_Sentence_Break=other}', "");
     Expect(0, 918000, '\P{Is_Sentence_Break=other}', "");
@@ -128425,16 +129617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_Sentence_Break=other}', "");
     Expect(1, 917999, '\P{Is_Sentence_Break=other}', "");
     Expect(0, 917999, '\P{^Is_Sentence_Break=other}', "");
-    Expect(1, 918000, '\p{Is_Sentence_Break=-_OTHER}', "");
-    Expect(0, 918000, '\p{^Is_Sentence_Break=-_OTHER}', "");
-    Expect(0, 918000, '\P{Is_Sentence_Break=-_OTHER}', "");
-    Expect(1, 918000, '\P{^Is_Sentence_Break=-_OTHER}', "");
-    Expect(0, 917999, '\p{Is_Sentence_Break=-_OTHER}', "");
-    Expect(1, 917999, '\p{^Is_Sentence_Break=-_OTHER}', "");
-    Expect(1, 917999, '\P{Is_Sentence_Break=-_OTHER}', "");
-    Expect(0, 917999, '\P{^Is_Sentence_Break=-_OTHER}', "");
-    Error('\p{Is_SB=/a/__XX}');
-    Error('\P{Is_SB=/a/__XX}');
+    Expect(1, 918000, '\p{Is_Sentence_Break=	-Other}', "");
+    Expect(0, 918000, '\p{^Is_Sentence_Break=	-Other}', "");
+    Expect(0, 918000, '\P{Is_Sentence_Break=	-Other}', "");
+    Expect(1, 918000, '\P{^Is_Sentence_Break=	-Other}', "");
+    Expect(0, 917999, '\p{Is_Sentence_Break=	-Other}', "");
+    Expect(1, 917999, '\p{^Is_Sentence_Break=	-Other}', "");
+    Expect(1, 917999, '\P{Is_Sentence_Break=	-Other}', "");
+    Expect(0, 917999, '\P{^Is_Sentence_Break=	-Other}', "");
+    Error('\p{Is_SB:	_-XX:=}');
+    Error('\P{Is_SB:	_-XX:=}');
     Expect(1, 918000, '\p{Is_SB=xx}', "");
     Expect(0, 918000, '\p{^Is_SB=xx}', "");
     Expect(0, 918000, '\P{Is_SB=xx}', "");
@@ -128443,40 +129635,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_SB=xx}', "");
     Expect(1, 917999, '\P{Is_SB=xx}', "");
     Expect(0, 917999, '\P{^Is_SB=xx}', "");
-    Expect(1, 918000, '\p{Is_SB:   -XX}', "");
-    Expect(0, 918000, '\p{^Is_SB:   -XX}', "");
-    Expect(0, 918000, '\P{Is_SB:   -XX}', "");
-    Expect(1, 918000, '\P{^Is_SB:   -XX}', "");
-    Expect(0, 917999, '\p{Is_SB:   -XX}', "");
-    Expect(1, 917999, '\p{^Is_SB:   -XX}', "");
-    Expect(1, 917999, '\P{Is_SB:   -XX}', "");
-    Expect(0, 917999, '\P{^Is_SB:   -XX}', "");
+    Expect(1, 918000, '\p{Is_SB=-_XX}', "");
+    Expect(0, 918000, '\p{^Is_SB=-_XX}', "");
+    Expect(0, 918000, '\P{Is_SB=-_XX}', "");
+    Expect(1, 918000, '\P{^Is_SB=-_XX}', "");
+    Expect(0, 917999, '\p{Is_SB=-_XX}', "");
+    Expect(1, 917999, '\p{^Is_SB=-_XX}', "");
+    Expect(1, 917999, '\P{Is_SB=-_XX}', "");
+    Expect(0, 917999, '\P{^Is_SB=-_XX}', "");
     Error('\p{script}');
     Error('\P{script}');
-    Error('\p{Script=:=Adlam}');
-    Error('\P{Script=:=Adlam}');
+    Error('\p{Script: --Adlam/a/}');
+    Error('\P{Script: --Adlam/a/}');
     Expect(1, 125279, '\p{Script=:\AAdlam\z:}', "");;
     Expect(0, 125280, '\p{Script=:\AAdlam\z:}', "");;
-    Expect(1, 125279, '\p{Script:	adlam}', "");
-    Expect(0, 125279, '\p{^Script:	adlam}', "");
-    Expect(0, 125279, '\P{Script:	adlam}', "");
-    Expect(1, 125279, '\P{^Script:	adlam}', "");
-    Expect(0, 125280, '\p{Script:	adlam}', "");
-    Expect(1, 125280, '\p{^Script:	adlam}', "");
-    Expect(1, 125280, '\P{Script:	adlam}', "");
-    Expect(0, 125280, '\P{^Script:	adlam}', "");
+    Expect(1, 125279, '\p{Script=adlam}', "");
+    Expect(0, 125279, '\p{^Script=adlam}', "");
+    Expect(0, 125279, '\P{Script=adlam}', "");
+    Expect(1, 125279, '\P{^Script=adlam}', "");
+    Expect(0, 125280, '\p{Script=adlam}', "");
+    Expect(1, 125280, '\p{^Script=adlam}', "");
+    Expect(1, 125280, '\P{Script=adlam}', "");
+    Expect(0, 125280, '\P{^Script=adlam}', "");
     Expect(1, 125279, '\p{Script=:\Aadlam\z:}', "");;
     Expect(0, 125280, '\p{Script=:\Aadlam\z:}', "");;
-    Expect(1, 125279, '\p{Script=--Adlam}', "");
-    Expect(0, 125279, '\p{^Script=--Adlam}', "");
-    Expect(0, 125279, '\P{Script=--Adlam}', "");
-    Expect(1, 125279, '\P{^Script=--Adlam}', "");
-    Expect(0, 125280, '\p{Script=--Adlam}', "");
-    Expect(1, 125280, '\p{^Script=--Adlam}', "");
-    Expect(1, 125280, '\P{Script=--Adlam}', "");
-    Expect(0, 125280, '\P{^Script=--Adlam}', "");
-    Error('\p{Sc=	/a/ADLM}');
-    Error('\P{Sc=	/a/ADLM}');
+    Expect(1, 125279, '\p{Script= Adlam}', "");
+    Expect(0, 125279, '\p{^Script= Adlam}', "");
+    Expect(0, 125279, '\P{Script= Adlam}', "");
+    Expect(1, 125279, '\P{^Script= Adlam}', "");
+    Expect(0, 125280, '\p{Script= Adlam}', "");
+    Expect(1, 125280, '\p{^Script= Adlam}', "");
+    Expect(1, 125280, '\P{Script= Adlam}', "");
+    Expect(0, 125280, '\P{^Script= Adlam}', "");
+    Error('\p{Sc=/a/ -Adlm}');
+    Error('\P{Sc=/a/ -Adlm}');
     Expect(1, 125279, '\p{Sc=:\AAdlm\z:}', "");;
     Expect(0, 125280, '\p{Sc=:\AAdlm\z:}', "");;
     Expect(1, 125279, '\p{Sc=adlm}', "");
@@ -128497,8 +129689,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^Sc=  Adlm}', "");
     Expect(1, 125280, '\P{Sc=  Adlm}', "");
     Expect(0, 125280, '\P{^Sc=  Adlm}', "");
-    Error('\p{Is_Script=:= 	ADLAM}');
-    Error('\P{Is_Script=:= 	ADLAM}');
+    Error('\p{Is_Script= :=Adlam}');
+    Error('\P{Is_Script= :=Adlam}');
     Expect(1, 125279, '\p{Is_Script=adlam}', "");
     Expect(0, 125279, '\p{^Is_Script=adlam}', "");
     Expect(0, 125279, '\P{Is_Script=adlam}', "");
@@ -128507,16 +129699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^Is_Script=adlam}', "");
     Expect(1, 125280, '\P{Is_Script=adlam}', "");
     Expect(0, 125280, '\P{^Is_Script=adlam}', "");
-    Expect(1, 125279, '\p{Is_Script=	-Adlam}', "");
-    Expect(0, 125279, '\p{^Is_Script=	-Adlam}', "");
-    Expect(0, 125279, '\P{Is_Script=	-Adlam}', "");
-    Expect(1, 125279, '\P{^Is_Script=	-Adlam}', "");
-    Expect(0, 125280, '\p{Is_Script=	-Adlam}', "");
-    Expect(1, 125280, '\p{^Is_Script=	-Adlam}', "");
-    Expect(1, 125280, '\P{Is_Script=	-Adlam}', "");
-    Expect(0, 125280, '\P{^Is_Script=	-Adlam}', "");
-    Error('\p{Is_Sc=/a/ 	Adlm}');
-    Error('\P{Is_Sc=/a/ 	Adlm}');
+    Expect(1, 125279, '\p{Is_Script=__adlam}', "");
+    Expect(0, 125279, '\p{^Is_Script=__adlam}', "");
+    Expect(0, 125279, '\P{Is_Script=__adlam}', "");
+    Expect(1, 125279, '\P{^Is_Script=__adlam}', "");
+    Expect(0, 125280, '\p{Is_Script=__adlam}', "");
+    Expect(1, 125280, '\p{^Is_Script=__adlam}', "");
+    Expect(1, 125280, '\P{Is_Script=__adlam}', "");
+    Expect(0, 125280, '\P{^Is_Script=__adlam}', "");
+    Error('\p{Is_Sc::=-_adlm}');
+    Error('\P{Is_Sc::=-_adlm}');
     Expect(1, 125279, '\p{Is_Sc=adlm}', "");
     Expect(0, 125279, '\p{^Is_Sc=adlm}', "");
     Expect(0, 125279, '\P{Is_Sc=adlm}', "");
@@ -128525,38 +129717,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^Is_Sc=adlm}', "");
     Expect(1, 125280, '\P{Is_Sc=adlm}', "");
     Expect(0, 125280, '\P{^Is_Sc=adlm}', "");
-    Expect(1, 125279, '\p{Is_Sc=__Adlm}', "");
-    Expect(0, 125279, '\p{^Is_Sc=__Adlm}', "");
-    Expect(0, 125279, '\P{Is_Sc=__Adlm}', "");
-    Expect(1, 125279, '\P{^Is_Sc=__Adlm}', "");
-    Expect(0, 125280, '\p{Is_Sc=__Adlm}', "");
-    Expect(1, 125280, '\p{^Is_Sc=__Adlm}', "");
-    Expect(1, 125280, '\P{Is_Sc=__Adlm}', "");
-    Expect(0, 125280, '\P{^Is_Sc=__Adlm}', "");
-    Error('\p{Script=:=Caucasian_ALBANIAN}');
-    Error('\P{Script=:=Caucasian_ALBANIAN}');
+    Expect(1, 125279, '\p{Is_Sc= -ADLM}', "");
+    Expect(0, 125279, '\p{^Is_Sc= -ADLM}', "");
+    Expect(0, 125279, '\P{Is_Sc= -ADLM}', "");
+    Expect(1, 125279, '\P{^Is_Sc= -ADLM}', "");
+    Expect(0, 125280, '\p{Is_Sc= -ADLM}', "");
+    Expect(1, 125280, '\p{^Is_Sc= -ADLM}', "");
+    Expect(1, 125280, '\P{Is_Sc= -ADLM}', "");
+    Expect(0, 125280, '\P{^Is_Sc= -ADLM}', "");
+    Error('\p{Script=- Caucasian_Albanian:=}');
+    Error('\P{Script=- Caucasian_Albanian:=}');
     Expect(1, 66927, '\p{Script=:\ACaucasian_Albanian\z:}', "");;
     Expect(0, 66928, '\p{Script=:\ACaucasian_Albanian\z:}', "");;
-    Expect(1, 66927, '\p{Script=caucasianalbanian}', "");
-    Expect(0, 66927, '\p{^Script=caucasianalbanian}', "");
-    Expect(0, 66927, '\P{Script=caucasianalbanian}', "");
-    Expect(1, 66927, '\P{^Script=caucasianalbanian}', "");
-    Expect(0, 66928, '\p{Script=caucasianalbanian}', "");
-    Expect(1, 66928, '\p{^Script=caucasianalbanian}', "");
-    Expect(1, 66928, '\P{Script=caucasianalbanian}', "");
-    Expect(0, 66928, '\P{^Script=caucasianalbanian}', "");
+    Expect(1, 66927, '\p{Script:caucasianalbanian}', "");
+    Expect(0, 66927, '\p{^Script:caucasianalbanian}', "");
+    Expect(0, 66927, '\P{Script:caucasianalbanian}', "");
+    Expect(1, 66927, '\P{^Script:caucasianalbanian}', "");
+    Expect(0, 66928, '\p{Script:caucasianalbanian}', "");
+    Expect(1, 66928, '\p{^Script:caucasianalbanian}', "");
+    Expect(1, 66928, '\P{Script:caucasianalbanian}', "");
+    Expect(0, 66928, '\P{^Script:caucasianalbanian}', "");
     Expect(1, 66927, '\p{Script=:\Acaucasianalbanian\z:}', "");;
     Expect(0, 66928, '\p{Script=:\Acaucasianalbanian\z:}', "");;
-    Expect(1, 66927, '\p{Script=  caucasian_albanian}', "");
-    Expect(0, 66927, '\p{^Script=  caucasian_albanian}', "");
-    Expect(0, 66927, '\P{Script=  caucasian_albanian}', "");
-    Expect(1, 66927, '\P{^Script=  caucasian_albanian}', "");
-    Expect(0, 66928, '\p{Script=  caucasian_albanian}', "");
-    Expect(1, 66928, '\p{^Script=  caucasian_albanian}', "");
-    Expect(1, 66928, '\P{Script=  caucasian_albanian}', "");
-    Expect(0, 66928, '\P{^Script=  caucasian_albanian}', "");
-    Error('\p{Sc=_/a/aghb}');
-    Error('\P{Sc=_/a/aghb}');
+    Expect(1, 66927, '\p{Script=Caucasian_ALBANIAN}', "");
+    Expect(0, 66927, '\p{^Script=Caucasian_ALBANIAN}', "");
+    Expect(0, 66927, '\P{Script=Caucasian_ALBANIAN}', "");
+    Expect(1, 66927, '\P{^Script=Caucasian_ALBANIAN}', "");
+    Expect(0, 66928, '\p{Script=Caucasian_ALBANIAN}', "");
+    Expect(1, 66928, '\p{^Script=Caucasian_ALBANIAN}', "");
+    Expect(1, 66928, '\P{Script=Caucasian_ALBANIAN}', "");
+    Expect(0, 66928, '\P{^Script=Caucasian_ALBANIAN}', "");
+    Error('\p{Sc=/a/	-Aghb}');
+    Error('\P{Sc=/a/	-Aghb}');
     Expect(1, 66927, '\p{Sc=:\AAghb\z:}', "");;
     Expect(0, 66928, '\p{Sc=:\AAghb\z:}', "");;
     Expect(1, 66927, '\p{Sc=aghb}', "");
@@ -128569,16 +129761,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66928, '\P{^Sc=aghb}', "");
     Expect(1, 66927, '\p{Sc=:\Aaghb\z:}', "");;
     Expect(0, 66928, '\p{Sc=:\Aaghb\z:}', "");;
-    Expect(1, 66927, '\p{Sc=-_aghb}', "");
-    Expect(0, 66927, '\p{^Sc=-_aghb}', "");
-    Expect(0, 66927, '\P{Sc=-_aghb}', "");
-    Expect(1, 66927, '\P{^Sc=-_aghb}', "");
-    Expect(0, 66928, '\p{Sc=-_aghb}', "");
-    Expect(1, 66928, '\p{^Sc=-_aghb}', "");
-    Expect(1, 66928, '\P{Sc=-_aghb}', "");
-    Expect(0, 66928, '\P{^Sc=-_aghb}', "");
-    Error('\p{Is_Script: 	Caucasian_Albanian/a/}');
-    Error('\P{Is_Script: 	Caucasian_Albanian/a/}');
+    Expect(1, 66927, '\p{Sc:			AGHB}', "");
+    Expect(0, 66927, '\p{^Sc:			AGHB}', "");
+    Expect(0, 66927, '\P{Sc:			AGHB}', "");
+    Expect(1, 66927, '\P{^Sc:			AGHB}', "");
+    Expect(0, 66928, '\p{Sc:			AGHB}', "");
+    Expect(1, 66928, '\p{^Sc:			AGHB}', "");
+    Expect(1, 66928, '\P{Sc:			AGHB}', "");
+    Expect(0, 66928, '\P{^Sc:			AGHB}', "");
+    Error('\p{Is_Script=_ CAUCASIAN_ALBANIAN/a/}');
+    Error('\P{Is_Script=_ CAUCASIAN_ALBANIAN/a/}');
     Expect(1, 66927, '\p{Is_Script=caucasianalbanian}', "");
     Expect(0, 66927, '\p{^Is_Script=caucasianalbanian}', "");
     Expect(0, 66927, '\P{Is_Script=caucasianalbanian}', "");
@@ -128587,56 +129779,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66928, '\p{^Is_Script=caucasianalbanian}', "");
     Expect(1, 66928, '\P{Is_Script=caucasianalbanian}', "");
     Expect(0, 66928, '\P{^Is_Script=caucasianalbanian}', "");
-    Expect(1, 66927, '\p{Is_Script=_-caucasian_Albanian}', "");
-    Expect(0, 66927, '\p{^Is_Script=_-caucasian_Albanian}', "");
-    Expect(0, 66927, '\P{Is_Script=_-caucasian_Albanian}', "");
-    Expect(1, 66927, '\P{^Is_Script=_-caucasian_Albanian}', "");
-    Expect(0, 66928, '\p{Is_Script=_-caucasian_Albanian}', "");
-    Expect(1, 66928, '\p{^Is_Script=_-caucasian_Albanian}', "");
-    Expect(1, 66928, '\P{Is_Script=_-caucasian_Albanian}', "");
-    Expect(0, 66928, '\P{^Is_Script=_-caucasian_Albanian}', "");
-    Error('\p{Is_Sc=_aghb:=}');
-    Error('\P{Is_Sc=_aghb:=}');
-    Expect(1, 66927, '\p{Is_Sc: aghb}', "");
-    Expect(0, 66927, '\p{^Is_Sc: aghb}', "");
-    Expect(0, 66927, '\P{Is_Sc: aghb}', "");
-    Expect(1, 66927, '\P{^Is_Sc: aghb}', "");
-    Expect(0, 66928, '\p{Is_Sc: aghb}', "");
-    Expect(1, 66928, '\p{^Is_Sc: aghb}', "");
-    Expect(1, 66928, '\P{Is_Sc: aghb}', "");
-    Expect(0, 66928, '\P{^Is_Sc: aghb}', "");
-    Expect(1, 66927, '\p{Is_Sc=- Aghb}', "");
-    Expect(0, 66927, '\p{^Is_Sc=- Aghb}', "");
-    Expect(0, 66927, '\P{Is_Sc=- Aghb}', "");
-    Expect(1, 66927, '\P{^Is_Sc=- Aghb}', "");
-    Expect(0, 66928, '\p{Is_Sc=- Aghb}', "");
-    Expect(1, 66928, '\p{^Is_Sc=- Aghb}', "");
-    Expect(1, 66928, '\P{Is_Sc=- Aghb}', "");
-    Expect(0, 66928, '\P{^Is_Sc=- Aghb}', "");
-    Error('\p{Script=:= Ahom}');
-    Error('\P{Script=:= Ahom}');
+    Expect(1, 66927, '\p{Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(0, 66927, '\p{^Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(0, 66927, '\P{Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(1, 66927, '\P{^Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(0, 66928, '\p{Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(1, 66928, '\p{^Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(1, 66928, '\P{Is_Script=	caucasian_ALBANIAN}', "");
+    Expect(0, 66928, '\P{^Is_Script=	caucasian_ALBANIAN}', "");
+    Error('\p{Is_Sc=:= Aghb}');
+    Error('\P{Is_Sc=:= Aghb}');
+    Expect(1, 66927, '\p{Is_Sc=aghb}', "");
+    Expect(0, 66927, '\p{^Is_Sc=aghb}', "");
+    Expect(0, 66927, '\P{Is_Sc=aghb}', "");
+    Expect(1, 66927, '\P{^Is_Sc=aghb}', "");
+    Expect(0, 66928, '\p{Is_Sc=aghb}', "");
+    Expect(1, 66928, '\p{^Is_Sc=aghb}', "");
+    Expect(1, 66928, '\P{Is_Sc=aghb}', "");
+    Expect(0, 66928, '\P{^Is_Sc=aghb}', "");
+    Expect(1, 66927, '\p{Is_Sc=- aghb}', "");
+    Expect(0, 66927, '\p{^Is_Sc=- aghb}', "");
+    Expect(0, 66927, '\P{Is_Sc=- aghb}', "");
+    Expect(1, 66927, '\P{^Is_Sc=- aghb}', "");
+    Expect(0, 66928, '\p{Is_Sc=- aghb}', "");
+    Expect(1, 66928, '\p{^Is_Sc=- aghb}', "");
+    Expect(1, 66928, '\P{Is_Sc=- aghb}', "");
+    Expect(0, 66928, '\P{^Is_Sc=- aghb}', "");
+    Error('\p{Script=	:=ahom}');
+    Error('\P{Script=	:=ahom}');
     Expect(1, 71494, '\p{Script=:\AAhom\z:}', "");;
     Expect(0, 71495, '\p{Script=:\AAhom\z:}', "");;
-    Expect(1, 71494, '\p{Script:	ahom}', "");
-    Expect(0, 71494, '\p{^Script:	ahom}', "");
-    Expect(0, 71494, '\P{Script:	ahom}', "");
-    Expect(1, 71494, '\P{^Script:	ahom}', "");
-    Expect(0, 71495, '\p{Script:	ahom}', "");
-    Expect(1, 71495, '\p{^Script:	ahom}', "");
-    Expect(1, 71495, '\P{Script:	ahom}', "");
-    Expect(0, 71495, '\P{^Script:	ahom}', "");
+    Expect(1, 71494, '\p{Script=ahom}', "");
+    Expect(0, 71494, '\p{^Script=ahom}', "");
+    Expect(0, 71494, '\P{Script=ahom}', "");
+    Expect(1, 71494, '\P{^Script=ahom}', "");
+    Expect(0, 71495, '\p{Script=ahom}', "");
+    Expect(1, 71495, '\p{^Script=ahom}', "");
+    Expect(1, 71495, '\P{Script=ahom}', "");
+    Expect(0, 71495, '\P{^Script=ahom}', "");
     Expect(1, 71494, '\p{Script=:\Aahom\z:}', "");;
     Expect(0, 71495, '\p{Script=:\Aahom\z:}', "");;
-    Expect(1, 71494, '\p{Script=-Ahom}', "");
-    Expect(0, 71494, '\p{^Script=-Ahom}', "");
-    Expect(0, 71494, '\P{Script=-Ahom}', "");
-    Expect(1, 71494, '\P{^Script=-Ahom}', "");
-    Expect(0, 71495, '\p{Script=-Ahom}', "");
-    Expect(1, 71495, '\p{^Script=-Ahom}', "");
-    Expect(1, 71495, '\P{Script=-Ahom}', "");
-    Expect(0, 71495, '\P{^Script=-Ahom}', "");
-    Error('\p{Sc= /a/ahom}');
-    Error('\P{Sc= /a/ahom}');
+    Expect(1, 71494, '\p{Script= -Ahom}', "");
+    Expect(0, 71494, '\p{^Script= -Ahom}', "");
+    Expect(0, 71494, '\P{Script= -Ahom}', "");
+    Expect(1, 71494, '\P{^Script= -Ahom}', "");
+    Expect(0, 71495, '\p{Script= -Ahom}', "");
+    Expect(1, 71495, '\p{^Script= -Ahom}', "");
+    Expect(1, 71495, '\P{Script= -Ahom}', "");
+    Expect(0, 71495, '\P{^Script= -Ahom}', "");
+    Error('\p{Sc=:=_	AHOM}');
+    Error('\P{Sc=:=_	AHOM}');
     Expect(1, 71494, '\p{Sc=:\AAhom\z:}', "");;
     Expect(0, 71495, '\p{Sc=:\AAhom\z:}', "");;
     Expect(1, 71494, '\p{Sc=ahom}', "");
@@ -128649,16 +129841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71495, '\P{^Sc=ahom}', "");
     Expect(1, 71494, '\p{Sc=:\Aahom\z:}', "");;
     Expect(0, 71495, '\p{Sc=:\Aahom\z:}', "");;
-    Expect(1, 71494, '\p{Sc=_	Ahom}', "");
-    Expect(0, 71494, '\p{^Sc=_	Ahom}', "");
-    Expect(0, 71494, '\P{Sc=_	Ahom}', "");
-    Expect(1, 71494, '\P{^Sc=_	Ahom}', "");
-    Expect(0, 71495, '\p{Sc=_	Ahom}', "");
-    Expect(1, 71495, '\p{^Sc=_	Ahom}', "");
-    Expect(1, 71495, '\P{Sc=_	Ahom}', "");
-    Expect(0, 71495, '\P{^Sc=_	Ahom}', "");
-    Error('\p{Is_Script=:=		ahom}');
-    Error('\P{Is_Script=:=		ahom}');
+    Expect(1, 71494, '\p{Sc=Ahom}', "");
+    Expect(0, 71494, '\p{^Sc=Ahom}', "");
+    Expect(0, 71494, '\P{Sc=Ahom}', "");
+    Expect(1, 71494, '\P{^Sc=Ahom}', "");
+    Expect(0, 71495, '\p{Sc=Ahom}', "");
+    Expect(1, 71495, '\p{^Sc=Ahom}', "");
+    Expect(1, 71495, '\P{Sc=Ahom}', "");
+    Expect(0, 71495, '\P{^Sc=Ahom}', "");
+    Error('\p{Is_Script=:=AHOM}');
+    Error('\P{Is_Script=:=AHOM}');
     Expect(1, 71494, '\p{Is_Script=ahom}', "");
     Expect(0, 71494, '\p{^Is_Script=ahom}', "");
     Expect(0, 71494, '\P{Is_Script=ahom}', "");
@@ -128667,16 +129859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71495, '\p{^Is_Script=ahom}', "");
     Expect(1, 71495, '\P{Is_Script=ahom}', "");
     Expect(0, 71495, '\P{^Is_Script=ahom}', "");
-    Expect(1, 71494, '\p{Is_Script:	_Ahom}', "");
-    Expect(0, 71494, '\p{^Is_Script:	_Ahom}', "");
-    Expect(0, 71494, '\P{Is_Script:	_Ahom}', "");
-    Expect(1, 71494, '\P{^Is_Script:	_Ahom}', "");
-    Expect(0, 71495, '\p{Is_Script:	_Ahom}', "");
-    Expect(1, 71495, '\p{^Is_Script:	_Ahom}', "");
-    Expect(1, 71495, '\P{Is_Script:	_Ahom}', "");
-    Expect(0, 71495, '\P{^Is_Script:	_Ahom}', "");
-    Error('\p{Is_Sc=:=-Ahom}');
-    Error('\P{Is_Sc=:=-Ahom}');
+    Expect(1, 71494, '\p{Is_Script:	_-AHOM}', "");
+    Expect(0, 71494, '\p{^Is_Script:	_-AHOM}', "");
+    Expect(0, 71494, '\P{Is_Script:	_-AHOM}', "");
+    Expect(1, 71494, '\P{^Is_Script:	_-AHOM}', "");
+    Expect(0, 71495, '\p{Is_Script:	_-AHOM}', "");
+    Expect(1, 71495, '\p{^Is_Script:	_-AHOM}', "");
+    Expect(1, 71495, '\P{Is_Script:	_-AHOM}', "");
+    Expect(0, 71495, '\P{^Is_Script:	_-AHOM}', "");
+    Error('\p{Is_Sc=-	AHOM/a/}');
+    Error('\P{Is_Sc=-	AHOM/a/}');
     Expect(1, 71494, '\p{Is_Sc=ahom}', "");
     Expect(0, 71494, '\p{^Is_Sc=ahom}', "");
     Expect(0, 71494, '\P{Is_Sc=ahom}', "");
@@ -128685,16 +129877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71495, '\p{^Is_Sc=ahom}', "");
     Expect(1, 71495, '\P{Is_Sc=ahom}', "");
     Expect(0, 71495, '\P{^Is_Sc=ahom}', "");
-    Expect(1, 71494, '\p{Is_Sc: 	-Ahom}', "");
-    Expect(0, 71494, '\p{^Is_Sc: 	-Ahom}', "");
-    Expect(0, 71494, '\P{Is_Sc: 	-Ahom}', "");
-    Expect(1, 71494, '\P{^Is_Sc: 	-Ahom}', "");
-    Expect(0, 71495, '\p{Is_Sc: 	-Ahom}', "");
-    Expect(1, 71495, '\p{^Is_Sc: 	-Ahom}', "");
-    Expect(1, 71495, '\P{Is_Sc: 	-Ahom}', "");
-    Expect(0, 71495, '\P{^Is_Sc: 	-Ahom}', "");
-    Error('\p{Script=/a/	-Arabic}');
-    Error('\P{Script=/a/	-Arabic}');
+    Expect(1, 71494, '\p{Is_Sc:	__AHOM}', "");
+    Expect(0, 71494, '\p{^Is_Sc:	__AHOM}', "");
+    Expect(0, 71494, '\P{Is_Sc:	__AHOM}', "");
+    Expect(1, 71494, '\P{^Is_Sc:	__AHOM}', "");
+    Expect(0, 71495, '\p{Is_Sc:	__AHOM}', "");
+    Expect(1, 71495, '\p{^Is_Sc:	__AHOM}', "");
+    Expect(1, 71495, '\P{Is_Sc:	__AHOM}', "");
+    Expect(0, 71495, '\P{^Is_Sc:	__AHOM}', "");
+    Error('\p{Script=:=-ARABIC}');
+    Error('\P{Script=:=-ARABIC}');
     Expect(1, 126705, '\p{Script=:\AArabic\z:}', "");;
     Expect(0, 126706, '\p{Script=:\AArabic\z:}', "");;
     Expect(1, 126705, '\p{Script=arabic}', "");
@@ -128707,38 +129899,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 126706, '\P{^Script=arabic}', "");
     Expect(1, 126705, '\p{Script=:\Aarabic\z:}', "");;
     Expect(0, 126706, '\p{Script=:\Aarabic\z:}', "");;
-    Expect(1, 126705, '\p{Script=	 Arabic}', "");
-    Expect(0, 126705, '\p{^Script=	 Arabic}', "");
-    Expect(0, 126705, '\P{Script=	 Arabic}', "");
-    Expect(1, 126705, '\P{^Script=	 Arabic}', "");
-    Expect(0, 126706, '\p{Script=	 Arabic}', "");
-    Expect(1, 126706, '\p{^Script=	 Arabic}', "");
-    Expect(1, 126706, '\P{Script=	 Arabic}', "");
-    Expect(0, 126706, '\P{^Script=	 Arabic}', "");
-    Error('\p{Sc=_/a/Arab}');
-    Error('\P{Sc=_/a/Arab}');
+    Expect(1, 126705, '\p{Script=  arabic}', "");
+    Expect(0, 126705, '\p{^Script=  arabic}', "");
+    Expect(0, 126705, '\P{Script=  arabic}', "");
+    Expect(1, 126705, '\P{^Script=  arabic}', "");
+    Expect(0, 126706, '\p{Script=  arabic}', "");
+    Expect(1, 126706, '\p{^Script=  arabic}', "");
+    Expect(1, 126706, '\P{Script=  arabic}', "");
+    Expect(0, 126706, '\P{^Script=  arabic}', "");
+    Error('\p{Sc=_:=Arab}');
+    Error('\P{Sc=_:=Arab}');
     Expect(1, 126705, '\p{Sc=:\AArab\z:}', "");;
     Expect(0, 126706, '\p{Sc=:\AArab\z:}', "");;
-    Expect(1, 126705, '\p{Sc=arab}', "");
-    Expect(0, 126705, '\p{^Sc=arab}', "");
-    Expect(0, 126705, '\P{Sc=arab}', "");
-    Expect(1, 126705, '\P{^Sc=arab}', "");
-    Expect(0, 126706, '\p{Sc=arab}', "");
-    Expect(1, 126706, '\p{^Sc=arab}', "");
-    Expect(1, 126706, '\P{Sc=arab}', "");
-    Expect(0, 126706, '\P{^Sc=arab}', "");
+    Expect(1, 126705, '\p{Sc:   arab}', "");
+    Expect(0, 126705, '\p{^Sc:   arab}', "");
+    Expect(0, 126705, '\P{Sc:   arab}', "");
+    Expect(1, 126705, '\P{^Sc:   arab}', "");
+    Expect(0, 126706, '\p{Sc:   arab}', "");
+    Expect(1, 126706, '\p{^Sc:   arab}', "");
+    Expect(1, 126706, '\P{Sc:   arab}', "");
+    Expect(0, 126706, '\P{^Sc:   arab}', "");
     Expect(1, 126705, '\p{Sc=:\Aarab\z:}', "");;
     Expect(0, 126706, '\p{Sc=:\Aarab\z:}', "");;
-    Expect(1, 126705, '\p{Sc=	-Arab}', "");
-    Expect(0, 126705, '\p{^Sc=	-Arab}', "");
-    Expect(0, 126705, '\P{Sc=	-Arab}', "");
-    Expect(1, 126705, '\P{^Sc=	-Arab}', "");
-    Expect(0, 126706, '\p{Sc=	-Arab}', "");
-    Expect(1, 126706, '\p{^Sc=	-Arab}', "");
-    Expect(1, 126706, '\P{Sc=	-Arab}', "");
-    Expect(0, 126706, '\P{^Sc=	-Arab}', "");
-    Error('\p{Is_Script=:=_ Arabic}');
-    Error('\P{Is_Script=:=_ Arabic}');
+    Expect(1, 126705, '\p{Sc=	 Arab}', "");
+    Expect(0, 126705, '\p{^Sc=	 Arab}', "");
+    Expect(0, 126705, '\P{Sc=	 Arab}', "");
+    Expect(1, 126705, '\P{^Sc=	 Arab}', "");
+    Expect(0, 126706, '\p{Sc=	 Arab}', "");
+    Expect(1, 126706, '\p{^Sc=	 Arab}', "");
+    Expect(1, 126706, '\P{Sc=	 Arab}', "");
+    Expect(0, 126706, '\P{^Sc=	 Arab}', "");
+    Error('\p{Is_Script=:=	arabic}');
+    Error('\P{Is_Script=:=	arabic}');
     Expect(1, 126705, '\p{Is_Script=arabic}', "");
     Expect(0, 126705, '\p{^Is_Script=arabic}', "");
     Expect(0, 126705, '\P{Is_Script=arabic}', "");
@@ -128747,16 +129939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 126706, '\p{^Is_Script=arabic}', "");
     Expect(1, 126706, '\P{Is_Script=arabic}', "");
     Expect(0, 126706, '\P{^Is_Script=arabic}', "");
-    Expect(1, 126705, '\p{Is_Script=ARABIC}', "");
-    Expect(0, 126705, '\p{^Is_Script=ARABIC}', "");
-    Expect(0, 126705, '\P{Is_Script=ARABIC}', "");
-    Expect(1, 126705, '\P{^Is_Script=ARABIC}', "");
-    Expect(0, 126706, '\p{Is_Script=ARABIC}', "");
-    Expect(1, 126706, '\p{^Is_Script=ARABIC}', "");
-    Expect(1, 126706, '\P{Is_Script=ARABIC}', "");
-    Expect(0, 126706, '\P{^Is_Script=ARABIC}', "");
-    Error('\p{Is_Sc=_:=Arab}');
-    Error('\P{Is_Sc=_:=Arab}');
+    Expect(1, 126705, '\p{Is_Script=		Arabic}', "");
+    Expect(0, 126705, '\p{^Is_Script=		Arabic}', "");
+    Expect(0, 126705, '\P{Is_Script=		Arabic}', "");
+    Expect(1, 126705, '\P{^Is_Script=		Arabic}', "");
+    Expect(0, 126706, '\p{Is_Script=		Arabic}', "");
+    Expect(1, 126706, '\p{^Is_Script=		Arabic}', "");
+    Expect(1, 126706, '\P{Is_Script=		Arabic}', "");
+    Expect(0, 126706, '\P{^Is_Script=		Arabic}', "");
+    Error('\p{Is_Sc=_/a/Arab}');
+    Error('\P{Is_Sc=_/a/Arab}');
     Expect(1, 126705, '\p{Is_Sc=arab}', "");
     Expect(0, 126705, '\p{^Is_Sc=arab}', "");
     Expect(0, 126705, '\P{Is_Sc=arab}', "");
@@ -128765,16 +129957,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 126706, '\p{^Is_Sc=arab}', "");
     Expect(1, 126706, '\P{Is_Sc=arab}', "");
     Expect(0, 126706, '\P{^Is_Sc=arab}', "");
-    Expect(1, 126705, '\p{Is_Sc:   -	Arab}', "");
-    Expect(0, 126705, '\p{^Is_Sc:   -	Arab}', "");
-    Expect(0, 126705, '\P{Is_Sc:   -	Arab}', "");
-    Expect(1, 126705, '\P{^Is_Sc:   -	Arab}', "");
-    Expect(0, 126706, '\p{Is_Sc:   -	Arab}', "");
-    Expect(1, 126706, '\p{^Is_Sc:   -	Arab}', "");
-    Expect(1, 126706, '\P{Is_Sc:   -	Arab}', "");
-    Expect(0, 126706, '\P{^Is_Sc:   -	Arab}', "");
-    Error('\p{Script=/a/		Imperial_ARAMAIC}');
-    Error('\P{Script=/a/		Imperial_ARAMAIC}');
+    Expect(1, 126705, '\p{Is_Sc:  _arab}', "");
+    Expect(0, 126705, '\p{^Is_Sc:  _arab}', "");
+    Expect(0, 126705, '\P{Is_Sc:  _arab}', "");
+    Expect(1, 126705, '\P{^Is_Sc:  _arab}', "");
+    Expect(0, 126706, '\p{Is_Sc:  _arab}', "");
+    Expect(1, 126706, '\p{^Is_Sc:  _arab}', "");
+    Expect(1, 126706, '\P{Is_Sc:  _arab}', "");
+    Expect(0, 126706, '\P{^Is_Sc:  _arab}', "");
+    Error('\p{Script= 	Imperial_ARAMAIC:=}');
+    Error('\P{Script= 	Imperial_ARAMAIC:=}');
     Expect(1, 67679, '\p{Script=:\AImperial_Aramaic\z:}', "");;
     Expect(0, 67680, '\p{Script=:\AImperial_Aramaic\z:}', "");;
     Expect(1, 67679, '\p{Script=imperialaramaic}', "");
@@ -128787,16 +129979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67680, '\P{^Script=imperialaramaic}', "");
     Expect(1, 67679, '\p{Script=:\Aimperialaramaic\z:}', "");;
     Expect(0, 67680, '\p{Script=:\Aimperialaramaic\z:}', "");;
-    Expect(1, 67679, '\p{Script=Imperial_Aramaic}', "");
-    Expect(0, 67679, '\p{^Script=Imperial_Aramaic}', "");
-    Expect(0, 67679, '\P{Script=Imperial_Aramaic}', "");
-    Expect(1, 67679, '\P{^Script=Imperial_Aramaic}', "");
-    Expect(0, 67680, '\p{Script=Imperial_Aramaic}', "");
-    Expect(1, 67680, '\p{^Script=Imperial_Aramaic}', "");
-    Expect(1, 67680, '\P{Script=Imperial_Aramaic}', "");
-    Expect(0, 67680, '\P{^Script=Imperial_Aramaic}', "");
-    Error('\p{Sc=	 Armi:=}');
-    Error('\P{Sc=	 Armi:=}');
+    Expect(1, 67679, '\p{Script=  Imperial_aramaic}', "");
+    Expect(0, 67679, '\p{^Script=  Imperial_aramaic}', "");
+    Expect(0, 67679, '\P{Script=  Imperial_aramaic}', "");
+    Expect(1, 67679, '\P{^Script=  Imperial_aramaic}', "");
+    Expect(0, 67680, '\p{Script=  Imperial_aramaic}', "");
+    Expect(1, 67680, '\p{^Script=  Imperial_aramaic}', "");
+    Expect(1, 67680, '\P{Script=  Imperial_aramaic}', "");
+    Expect(0, 67680, '\P{^Script=  Imperial_aramaic}', "");
+    Error('\p{Sc=	Armi:=}');
+    Error('\P{Sc=	Armi:=}');
     Expect(1, 67679, '\p{Sc=:\AArmi\z:}', "");;
     Expect(0, 67680, '\p{Sc=:\AArmi\z:}', "");;
     Expect(1, 67679, '\p{Sc=armi}', "");
@@ -128809,16 +130001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67680, '\P{^Sc=armi}', "");
     Expect(1, 67679, '\p{Sc=:\Aarmi\z:}', "");;
     Expect(0, 67680, '\p{Sc=:\Aarmi\z:}', "");;
-    Expect(1, 67679, '\p{Sc=_ Armi}', "");
-    Expect(0, 67679, '\p{^Sc=_ Armi}', "");
-    Expect(0, 67679, '\P{Sc=_ Armi}', "");
-    Expect(1, 67679, '\P{^Sc=_ Armi}', "");
-    Expect(0, 67680, '\p{Sc=_ Armi}', "");
-    Expect(1, 67680, '\p{^Sc=_ Armi}', "");
-    Expect(1, 67680, '\P{Sc=_ Armi}', "");
-    Expect(0, 67680, '\P{^Sc=_ Armi}', "");
-    Error('\p{Is_Script:   _/a/Imperial_Aramaic}');
-    Error('\P{Is_Script:   _/a/Imperial_Aramaic}');
+    Expect(1, 67679, '\p{Sc=-armi}', "");
+    Expect(0, 67679, '\p{^Sc=-armi}', "");
+    Expect(0, 67679, '\P{Sc=-armi}', "");
+    Expect(1, 67679, '\P{^Sc=-armi}', "");
+    Expect(0, 67680, '\p{Sc=-armi}', "");
+    Expect(1, 67680, '\p{^Sc=-armi}', "");
+    Expect(1, 67680, '\P{Sc=-armi}', "");
+    Expect(0, 67680, '\P{^Sc=-armi}', "");
+    Error('\p{Is_Script=_-Imperial_Aramaic:=}');
+    Error('\P{Is_Script=_-Imperial_Aramaic:=}');
     Expect(1, 67679, '\p{Is_Script=imperialaramaic}', "");
     Expect(0, 67679, '\p{^Is_Script=imperialaramaic}', "");
     Expect(0, 67679, '\P{Is_Script=imperialaramaic}', "");
@@ -128827,34 +130019,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67680, '\p{^Is_Script=imperialaramaic}', "");
     Expect(1, 67680, '\P{Is_Script=imperialaramaic}', "");
     Expect(0, 67680, '\P{^Is_Script=imperialaramaic}', "");
-    Expect(1, 67679, '\p{Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\p{^Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(0, 67679, '\P{Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(1, 67679, '\P{^Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\p{Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\p{^Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(1, 67680, '\P{Is_Script=-_Imperial_ARAMAIC}', "");
-    Expect(0, 67680, '\P{^Is_Script=-_Imperial_ARAMAIC}', "");
-    Error('\p{Is_Sc=/a/ -Armi}');
-    Error('\P{Is_Sc=/a/ -Armi}');
-    Expect(1, 67679, '\p{Is_Sc=armi}', "");
-    Expect(0, 67679, '\p{^Is_Sc=armi}', "");
-    Expect(0, 67679, '\P{Is_Sc=armi}', "");
-    Expect(1, 67679, '\P{^Is_Sc=armi}', "");
-    Expect(0, 67680, '\p{Is_Sc=armi}', "");
-    Expect(1, 67680, '\p{^Is_Sc=armi}', "");
-    Expect(1, 67680, '\P{Is_Sc=armi}', "");
-    Expect(0, 67680, '\P{^Is_Sc=armi}', "");
-    Expect(1, 67679, '\p{Is_Sc=-ARMI}', "");
-    Expect(0, 67679, '\p{^Is_Sc=-ARMI}', "");
-    Expect(0, 67679, '\P{Is_Sc=-ARMI}', "");
-    Expect(1, 67679, '\P{^Is_Sc=-ARMI}', "");
-    Expect(0, 67680, '\p{Is_Sc=-ARMI}', "");
-    Expect(1, 67680, '\p{^Is_Sc=-ARMI}', "");
-    Expect(1, 67680, '\P{Is_Sc=-ARMI}', "");
-    Expect(0, 67680, '\P{^Is_Sc=-ARMI}', "");
-    Error('\p{Script:	/a/	Armenian}');
-    Error('\P{Script:	/a/	Armenian}');
+    Expect(1, 67679, '\p{Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67679, '\p{^Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67679, '\P{Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(1, 67679, '\P{^Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67680, '\p{Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(1, 67680, '\p{^Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(1, 67680, '\P{Is_Script=IMPERIAL_ARAMAIC}', "");
+    Expect(0, 67680, '\P{^Is_Script=IMPERIAL_ARAMAIC}', "");
+    Error('\p{Is_Sc=_ Armi:=}');
+    Error('\P{Is_Sc=_ Armi:=}');
+    Expect(1, 67679, '\p{Is_Sc:	armi}', "");
+    Expect(0, 67679, '\p{^Is_Sc:	armi}', "");
+    Expect(0, 67679, '\P{Is_Sc:	armi}', "");
+    Expect(1, 67679, '\P{^Is_Sc:	armi}', "");
+    Expect(0, 67680, '\p{Is_Sc:	armi}', "");
+    Expect(1, 67680, '\p{^Is_Sc:	armi}', "");
+    Expect(1, 67680, '\P{Is_Sc:	armi}', "");
+    Expect(0, 67680, '\P{^Is_Sc:	armi}', "");
+    Expect(1, 67679, '\p{Is_Sc=  Armi}', "");
+    Expect(0, 67679, '\p{^Is_Sc=  Armi}', "");
+    Expect(0, 67679, '\P{Is_Sc=  Armi}', "");
+    Expect(1, 67679, '\P{^Is_Sc=  Armi}', "");
+    Expect(0, 67680, '\p{Is_Sc=  Armi}', "");
+    Expect(1, 67680, '\p{^Is_Sc=  Armi}', "");
+    Expect(1, 67680, '\P{Is_Sc=  Armi}', "");
+    Expect(0, 67680, '\P{^Is_Sc=  Armi}', "");
+    Error('\p{Script=	 Armenian:=}');
+    Error('\P{Script=	 Armenian:=}');
     Expect(1, 64279, '\p{Script=:\AArmenian\z:}', "");;
     Expect(0, 64280, '\p{Script=:\AArmenian\z:}', "");;
     Expect(1, 64279, '\p{Script=armenian}', "");
@@ -128867,16 +130059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64280, '\P{^Script=armenian}', "");
     Expect(1, 64279, '\p{Script=:\Aarmenian\z:}', "");;
     Expect(0, 64280, '\p{Script=:\Aarmenian\z:}', "");;
-    Expect(1, 64279, '\p{Script=	ARMENIAN}', "");
-    Expect(0, 64279, '\p{^Script=	ARMENIAN}', "");
-    Expect(0, 64279, '\P{Script=	ARMENIAN}', "");
-    Expect(1, 64279, '\P{^Script=	ARMENIAN}', "");
-    Expect(0, 64280, '\p{Script=	ARMENIAN}', "");
-    Expect(1, 64280, '\p{^Script=	ARMENIAN}', "");
-    Expect(1, 64280, '\P{Script=	ARMENIAN}', "");
-    Expect(0, 64280, '\P{^Script=	ARMENIAN}', "");
-    Error('\p{Sc: armn/a/}');
-    Error('\P{Sc: armn/a/}');
+    Expect(1, 64279, '\p{Script=_-Armenian}', "");
+    Expect(0, 64279, '\p{^Script=_-Armenian}', "");
+    Expect(0, 64279, '\P{Script=_-Armenian}', "");
+    Expect(1, 64279, '\P{^Script=_-Armenian}', "");
+    Expect(0, 64280, '\p{Script=_-Armenian}', "");
+    Expect(1, 64280, '\p{^Script=_-Armenian}', "");
+    Expect(1, 64280, '\P{Script=_-Armenian}', "");
+    Expect(0, 64280, '\P{^Script=_-Armenian}', "");
+    Error('\p{Sc=- Armn:=}');
+    Error('\P{Sc=- Armn:=}');
     Expect(1, 64279, '\p{Sc=:\AArmn\z:}', "");;
     Expect(0, 64280, '\p{Sc=:\AArmn\z:}', "");;
     Expect(1, 64279, '\p{Sc=armn}', "");
@@ -128889,16 +130081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64280, '\P{^Sc=armn}', "");
     Expect(1, 64279, '\p{Sc=:\Aarmn\z:}', "");;
     Expect(0, 64280, '\p{Sc=:\Aarmn\z:}', "");;
-    Expect(1, 64279, '\p{Sc= _Armn}', "");
-    Expect(0, 64279, '\p{^Sc= _Armn}', "");
-    Expect(0, 64279, '\P{Sc= _Armn}', "");
-    Expect(1, 64279, '\P{^Sc= _Armn}', "");
-    Expect(0, 64280, '\p{Sc= _Armn}', "");
-    Expect(1, 64280, '\p{^Sc= _Armn}', "");
-    Expect(1, 64280, '\P{Sc= _Armn}', "");
-    Expect(0, 64280, '\P{^Sc= _Armn}', "");
-    Error('\p{Is_Script=-/a/Armenian}');
-    Error('\P{Is_Script=-/a/Armenian}');
+    Expect(1, 64279, '\p{Sc=_Armn}', "");
+    Expect(0, 64279, '\p{^Sc=_Armn}', "");
+    Expect(0, 64279, '\P{Sc=_Armn}', "");
+    Expect(1, 64279, '\P{^Sc=_Armn}', "");
+    Expect(0, 64280, '\p{Sc=_Armn}', "");
+    Expect(1, 64280, '\p{^Sc=_Armn}', "");
+    Expect(1, 64280, '\P{Sc=_Armn}', "");
+    Expect(0, 64280, '\P{^Sc=_Armn}', "");
+    Error('\p{Is_Script=/a/Armenian}');
+    Error('\P{Is_Script=/a/Armenian}');
     Expect(1, 64279, '\p{Is_Script=armenian}', "");
     Expect(0, 64279, '\p{^Is_Script=armenian}', "");
     Expect(0, 64279, '\P{Is_Script=armenian}', "");
@@ -128907,16 +130099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64280, '\p{^Is_Script=armenian}', "");
     Expect(1, 64280, '\P{Is_Script=armenian}', "");
     Expect(0, 64280, '\P{^Is_Script=armenian}', "");
-    Expect(1, 64279, '\p{Is_Script=-	Armenian}', "");
-    Expect(0, 64279, '\p{^Is_Script=-	Armenian}', "");
-    Expect(0, 64279, '\P{Is_Script=-	Armenian}', "");
-    Expect(1, 64279, '\P{^Is_Script=-	Armenian}', "");
-    Expect(0, 64280, '\p{Is_Script=-	Armenian}', "");
-    Expect(1, 64280, '\p{^Is_Script=-	Armenian}', "");
-    Expect(1, 64280, '\P{Is_Script=-	Armenian}', "");
-    Expect(0, 64280, '\P{^Is_Script=-	Armenian}', "");
-    Error('\p{Is_Sc=:= _armn}');
-    Error('\P{Is_Sc=:= _armn}');
+    Expect(1, 64279, '\p{Is_Script=__armenian}', "");
+    Expect(0, 64279, '\p{^Is_Script=__armenian}', "");
+    Expect(0, 64279, '\P{Is_Script=__armenian}', "");
+    Expect(1, 64279, '\P{^Is_Script=__armenian}', "");
+    Expect(0, 64280, '\p{Is_Script=__armenian}', "");
+    Expect(1, 64280, '\p{^Is_Script=__armenian}', "");
+    Expect(1, 64280, '\P{Is_Script=__armenian}', "");
+    Expect(0, 64280, '\P{^Is_Script=__armenian}', "");
+    Error('\p{Is_Sc=	armn/a/}');
+    Error('\P{Is_Sc=	armn/a/}');
     Expect(1, 64279, '\p{Is_Sc=armn}', "");
     Expect(0, 64279, '\p{^Is_Sc=armn}', "");
     Expect(0, 64279, '\P{Is_Sc=armn}', "");
@@ -128925,26 +130117,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64280, '\p{^Is_Sc=armn}', "");
     Expect(1, 64280, '\P{Is_Sc=armn}', "");
     Expect(0, 64280, '\P{^Is_Sc=armn}', "");
-    Expect(1, 64279, '\p{Is_Sc=	armn}', "");
-    Expect(0, 64279, '\p{^Is_Sc=	armn}', "");
-    Expect(0, 64279, '\P{Is_Sc=	armn}', "");
-    Expect(1, 64279, '\P{^Is_Sc=	armn}', "");
-    Expect(0, 64280, '\p{Is_Sc=	armn}', "");
-    Expect(1, 64280, '\p{^Is_Sc=	armn}', "");
-    Expect(1, 64280, '\P{Is_Sc=	armn}', "");
-    Expect(0, 64280, '\P{^Is_Sc=	armn}', "");
-    Error('\p{Script=-/a/avestan}');
-    Error('\P{Script=-/a/avestan}');
+    Expect(1, 64279, '\p{Is_Sc:-_Armn}', "");
+    Expect(0, 64279, '\p{^Is_Sc:-_Armn}', "");
+    Expect(0, 64279, '\P{Is_Sc:-_Armn}', "");
+    Expect(1, 64279, '\P{^Is_Sc:-_Armn}', "");
+    Expect(0, 64280, '\p{Is_Sc:-_Armn}', "");
+    Expect(1, 64280, '\p{^Is_Sc:-_Armn}', "");
+    Expect(1, 64280, '\P{Is_Sc:-_Armn}', "");
+    Expect(0, 64280, '\P{^Is_Sc:-_Armn}', "");
+    Error('\p{Script=:=		AVESTAN}');
+    Error('\P{Script=:=		AVESTAN}');
     Expect(1, 68415, '\p{Script=:\AAvestan\z:}', "");;
     Expect(0, 68416, '\p{Script=:\AAvestan\z:}', "");;
-    Expect(1, 68415, '\p{Script=avestan}', "");
-    Expect(0, 68415, '\p{^Script=avestan}', "");
-    Expect(0, 68415, '\P{Script=avestan}', "");
-    Expect(1, 68415, '\P{^Script=avestan}', "");
-    Expect(0, 68416, '\p{Script=avestan}', "");
-    Expect(1, 68416, '\p{^Script=avestan}', "");
-    Expect(1, 68416, '\P{Script=avestan}', "");
-    Expect(0, 68416, '\P{^Script=avestan}', "");
+    Expect(1, 68415, '\p{Script:avestan}', "");
+    Expect(0, 68415, '\p{^Script:avestan}', "");
+    Expect(0, 68415, '\P{Script:avestan}', "");
+    Expect(1, 68415, '\P{^Script:avestan}', "");
+    Expect(0, 68416, '\p{Script:avestan}', "");
+    Expect(1, 68416, '\p{^Script:avestan}', "");
+    Expect(1, 68416, '\P{Script:avestan}', "");
+    Expect(0, 68416, '\P{^Script:avestan}', "");
     Expect(1, 68415, '\p{Script=:\Aavestan\z:}', "");;
     Expect(0, 68416, '\p{Script=:\Aavestan\z:}', "");;
     Expect(1, 68415, '\p{Script=_Avestan}', "");
@@ -128955,8 +130147,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68416, '\p{^Script=_Avestan}', "");
     Expect(1, 68416, '\P{Script=_Avestan}', "");
     Expect(0, 68416, '\P{^Script=_Avestan}', "");
-    Error('\p{Sc=:=	 AVST}');
-    Error('\P{Sc=:=	 AVST}');
+    Error('\p{Sc=:= Avst}');
+    Error('\P{Sc=:= Avst}');
     Expect(1, 68415, '\p{Sc=:\AAvst\z:}', "");;
     Expect(0, 68416, '\p{Sc=:\AAvst\z:}', "");;
     Expect(1, 68415, '\p{Sc=avst}', "");
@@ -128969,34 +130161,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68416, '\P{^Sc=avst}', "");
     Expect(1, 68415, '\p{Sc=:\Aavst\z:}', "");;
     Expect(0, 68416, '\p{Sc=:\Aavst\z:}', "");;
-    Expect(1, 68415, '\p{Sc=_ Avst}', "");
-    Expect(0, 68415, '\p{^Sc=_ Avst}', "");
-    Expect(0, 68415, '\P{Sc=_ Avst}', "");
-    Expect(1, 68415, '\P{^Sc=_ Avst}', "");
-    Expect(0, 68416, '\p{Sc=_ Avst}', "");
-    Expect(1, 68416, '\p{^Sc=_ Avst}', "");
-    Expect(1, 68416, '\P{Sc=_ Avst}', "");
-    Expect(0, 68416, '\P{^Sc=_ Avst}', "");
-    Error('\p{Is_Script=	_AVESTAN:=}');
-    Error('\P{Is_Script=	_AVESTAN:=}');
-    Expect(1, 68415, '\p{Is_Script:   avestan}', "");
-    Expect(0, 68415, '\p{^Is_Script:   avestan}', "");
-    Expect(0, 68415, '\P{Is_Script:   avestan}', "");
-    Expect(1, 68415, '\P{^Is_Script:   avestan}', "");
-    Expect(0, 68416, '\p{Is_Script:   avestan}', "");
-    Expect(1, 68416, '\p{^Is_Script:   avestan}', "");
-    Expect(1, 68416, '\P{Is_Script:   avestan}', "");
-    Expect(0, 68416, '\P{^Is_Script:   avestan}', "");
-    Expect(1, 68415, '\p{Is_Script=Avestan}', "");
-    Expect(0, 68415, '\p{^Is_Script=Avestan}', "");
-    Expect(0, 68415, '\P{Is_Script=Avestan}', "");
-    Expect(1, 68415, '\P{^Is_Script=Avestan}', "");
-    Expect(0, 68416, '\p{Is_Script=Avestan}', "");
-    Expect(1, 68416, '\p{^Is_Script=Avestan}', "");
-    Expect(1, 68416, '\P{Is_Script=Avestan}', "");
-    Expect(0, 68416, '\P{^Is_Script=Avestan}', "");
-    Error('\p{Is_Sc=_:=Avst}');
-    Error('\P{Is_Sc=_:=Avst}');
+    Expect(1, 68415, '\p{Sc= AVST}', "");
+    Expect(0, 68415, '\p{^Sc= AVST}', "");
+    Expect(0, 68415, '\P{Sc= AVST}', "");
+    Expect(1, 68415, '\P{^Sc= AVST}', "");
+    Expect(0, 68416, '\p{Sc= AVST}', "");
+    Expect(1, 68416, '\p{^Sc= AVST}', "");
+    Expect(1, 68416, '\P{Sc= AVST}', "");
+    Expect(0, 68416, '\P{^Sc= AVST}', "");
+    Error('\p{Is_Script=-/a/Avestan}');
+    Error('\P{Is_Script=-/a/Avestan}');
+    Expect(1, 68415, '\p{Is_Script=avestan}', "");
+    Expect(0, 68415, '\p{^Is_Script=avestan}', "");
+    Expect(0, 68415, '\P{Is_Script=avestan}', "");
+    Expect(1, 68415, '\P{^Is_Script=avestan}', "");
+    Expect(0, 68416, '\p{Is_Script=avestan}', "");
+    Expect(1, 68416, '\p{^Is_Script=avestan}', "");
+    Expect(1, 68416, '\P{Is_Script=avestan}', "");
+    Expect(0, 68416, '\P{^Is_Script=avestan}', "");
+    Expect(1, 68415, '\p{Is_Script=	_AVESTAN}', "");
+    Expect(0, 68415, '\p{^Is_Script=	_AVESTAN}', "");
+    Expect(0, 68415, '\P{Is_Script=	_AVESTAN}', "");
+    Expect(1, 68415, '\P{^Is_Script=	_AVESTAN}', "");
+    Expect(0, 68416, '\p{Is_Script=	_AVESTAN}', "");
+    Expect(1, 68416, '\p{^Is_Script=	_AVESTAN}', "");
+    Expect(1, 68416, '\P{Is_Script=	_AVESTAN}', "");
+    Expect(0, 68416, '\P{^Is_Script=	_AVESTAN}', "");
+    Error('\p{Is_Sc=:=-_AVST}');
+    Error('\P{Is_Sc=:=-_AVST}');
     Expect(1, 68415, '\p{Is_Sc=avst}', "");
     Expect(0, 68415, '\p{^Is_Sc=avst}', "");
     Expect(0, 68415, '\P{Is_Sc=avst}', "");
@@ -129005,16 +130197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68416, '\p{^Is_Sc=avst}', "");
     Expect(1, 68416, '\P{Is_Sc=avst}', "");
     Expect(0, 68416, '\P{^Is_Sc=avst}', "");
-    Expect(1, 68415, '\p{Is_Sc=-	avst}', "");
-    Expect(0, 68415, '\p{^Is_Sc=-	avst}', "");
-    Expect(0, 68415, '\P{Is_Sc=-	avst}', "");
-    Expect(1, 68415, '\P{^Is_Sc=-	avst}', "");
-    Expect(0, 68416, '\p{Is_Sc=-	avst}', "");
-    Expect(1, 68416, '\p{^Is_Sc=-	avst}', "");
-    Expect(1, 68416, '\P{Is_Sc=-	avst}', "");
-    Expect(0, 68416, '\P{^Is_Sc=-	avst}', "");
-    Error('\p{Script:	 :=Balinese}');
-    Error('\P{Script:	 :=Balinese}');
+    Expect(1, 68415, '\p{Is_Sc=		Avst}', "");
+    Expect(0, 68415, '\p{^Is_Sc=		Avst}', "");
+    Expect(0, 68415, '\P{Is_Sc=		Avst}', "");
+    Expect(1, 68415, '\P{^Is_Sc=		Avst}', "");
+    Expect(0, 68416, '\p{Is_Sc=		Avst}', "");
+    Expect(1, 68416, '\p{^Is_Sc=		Avst}', "");
+    Expect(1, 68416, '\P{Is_Sc=		Avst}', "");
+    Expect(0, 68416, '\P{^Is_Sc=		Avst}', "");
+    Error('\p{Script::= Balinese}');
+    Error('\P{Script::= Balinese}');
     Expect(1, 7038, '\p{Script=:\ABalinese\z:}', "");;
     Expect(0, 7039, '\p{Script=:\ABalinese\z:}', "");;
     Expect(1, 7038, '\p{Script=balinese}', "");
@@ -129027,16 +130219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7039, '\P{^Script=balinese}', "");
     Expect(1, 7038, '\p{Script=:\Abalinese\z:}', "");;
     Expect(0, 7039, '\p{Script=:\Abalinese\z:}', "");;
-    Expect(1, 7038, '\p{Script=__BALINESE}', "");
-    Expect(0, 7038, '\p{^Script=__BALINESE}', "");
-    Expect(0, 7038, '\P{Script=__BALINESE}', "");
-    Expect(1, 7038, '\P{^Script=__BALINESE}', "");
-    Expect(0, 7039, '\p{Script=__BALINESE}', "");
-    Expect(1, 7039, '\p{^Script=__BALINESE}', "");
-    Expect(1, 7039, '\P{Script=__BALINESE}', "");
-    Expect(0, 7039, '\P{^Script=__BALINESE}', "");
-    Error('\p{Sc=_:=Bali}');
-    Error('\P{Sc=_:=Bali}');
+    Expect(1, 7038, '\p{Script=	 BALINESE}', "");
+    Expect(0, 7038, '\p{^Script=	 BALINESE}', "");
+    Expect(0, 7038, '\P{Script=	 BALINESE}', "");
+    Expect(1, 7038, '\P{^Script=	 BALINESE}', "");
+    Expect(0, 7039, '\p{Script=	 BALINESE}', "");
+    Expect(1, 7039, '\p{^Script=	 BALINESE}', "");
+    Expect(1, 7039, '\P{Script=	 BALINESE}', "");
+    Expect(0, 7039, '\P{^Script=	 BALINESE}', "");
+    Error('\p{Sc=_/a/bali}');
+    Error('\P{Sc=_/a/bali}');
     Expect(1, 7038, '\p{Sc=:\ABali\z:}', "");;
     Expect(0, 7039, '\p{Sc=:\ABali\z:}', "");;
     Expect(1, 7038, '\p{Sc=bali}', "");
@@ -129049,16 +130241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7039, '\P{^Sc=bali}', "");
     Expect(1, 7038, '\p{Sc=:\Abali\z:}', "");;
     Expect(0, 7039, '\p{Sc=:\Abali\z:}', "");;
-    Expect(1, 7038, '\p{Sc: -	Bali}', "");
-    Expect(0, 7038, '\p{^Sc: -	Bali}', "");
-    Expect(0, 7038, '\P{Sc: -	Bali}', "");
-    Expect(1, 7038, '\P{^Sc: -	Bali}', "");
-    Expect(0, 7039, '\p{Sc: -	Bali}', "");
-    Expect(1, 7039, '\p{^Sc: -	Bali}', "");
-    Expect(1, 7039, '\P{Sc: -	Bali}', "");
-    Expect(0, 7039, '\P{^Sc: -	Bali}', "");
-    Error('\p{Is_Script=:=_	Balinese}');
-    Error('\P{Is_Script=:=_	Balinese}');
+    Expect(1, 7038, '\p{Sc=	bali}', "");
+    Expect(0, 7038, '\p{^Sc=	bali}', "");
+    Expect(0, 7038, '\P{Sc=	bali}', "");
+    Expect(1, 7038, '\P{^Sc=	bali}', "");
+    Expect(0, 7039, '\p{Sc=	bali}', "");
+    Expect(1, 7039, '\p{^Sc=	bali}', "");
+    Expect(1, 7039, '\P{Sc=	bali}', "");
+    Expect(0, 7039, '\P{^Sc=	bali}', "");
+    Error('\p{Is_Script=_/a/balinese}');
+    Error('\P{Is_Script=_/a/balinese}');
     Expect(1, 7038, '\p{Is_Script=balinese}', "");
     Expect(0, 7038, '\p{^Is_Script=balinese}', "");
     Expect(0, 7038, '\P{Is_Script=balinese}', "");
@@ -129067,16 +130259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7039, '\p{^Is_Script=balinese}', "");
     Expect(1, 7039, '\P{Is_Script=balinese}', "");
     Expect(0, 7039, '\P{^Is_Script=balinese}', "");
-    Expect(1, 7038, '\p{Is_Script= Balinese}', "");
-    Expect(0, 7038, '\p{^Is_Script= Balinese}', "");
-    Expect(0, 7038, '\P{Is_Script= Balinese}', "");
-    Expect(1, 7038, '\P{^Is_Script= Balinese}', "");
-    Expect(0, 7039, '\p{Is_Script= Balinese}', "");
-    Expect(1, 7039, '\p{^Is_Script= Balinese}', "");
-    Expect(1, 7039, '\P{Is_Script= Balinese}', "");
-    Expect(0, 7039, '\P{^Is_Script= Balinese}', "");
-    Error('\p{Is_Sc=/a/-	Bali}');
-    Error('\P{Is_Sc=/a/-	Bali}');
+    Expect(1, 7038, '\p{Is_Script=-_balinese}', "");
+    Expect(0, 7038, '\p{^Is_Script=-_balinese}', "");
+    Expect(0, 7038, '\P{Is_Script=-_balinese}', "");
+    Expect(1, 7038, '\P{^Is_Script=-_balinese}', "");
+    Expect(0, 7039, '\p{Is_Script=-_balinese}', "");
+    Expect(1, 7039, '\p{^Is_Script=-_balinese}', "");
+    Expect(1, 7039, '\P{Is_Script=-_balinese}', "");
+    Expect(0, 7039, '\P{^Is_Script=-_balinese}', "");
+    Error('\p{Is_Sc=/a/	 bali}');
+    Error('\P{Is_Sc=/a/	 bali}');
     Expect(1, 7038, '\p{Is_Sc=bali}', "");
     Expect(0, 7038, '\p{^Is_Sc=bali}', "");
     Expect(0, 7038, '\P{Is_Sc=bali}', "");
@@ -129085,38 +130277,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7039, '\p{^Is_Sc=bali}', "");
     Expect(1, 7039, '\P{Is_Sc=bali}', "");
     Expect(0, 7039, '\P{^Is_Sc=bali}', "");
-    Expect(1, 7038, '\p{Is_Sc= -BALI}', "");
-    Expect(0, 7038, '\p{^Is_Sc= -BALI}', "");
-    Expect(0, 7038, '\P{Is_Sc= -BALI}', "");
-    Expect(1, 7038, '\P{^Is_Sc= -BALI}', "");
-    Expect(0, 7039, '\p{Is_Sc= -BALI}', "");
-    Expect(1, 7039, '\p{^Is_Sc= -BALI}', "");
-    Expect(1, 7039, '\P{Is_Sc= -BALI}', "");
-    Expect(0, 7039, '\P{^Is_Sc= -BALI}', "");
-    Error('\p{Script:/a/ _bamum}');
-    Error('\P{Script:/a/ _bamum}');
+    Expect(1, 7038, '\p{Is_Sc=Bali}', "");
+    Expect(0, 7038, '\p{^Is_Sc=Bali}', "");
+    Expect(0, 7038, '\P{Is_Sc=Bali}', "");
+    Expect(1, 7038, '\P{^Is_Sc=Bali}', "");
+    Expect(0, 7039, '\p{Is_Sc=Bali}', "");
+    Expect(1, 7039, '\p{^Is_Sc=Bali}', "");
+    Expect(1, 7039, '\P{Is_Sc=Bali}', "");
+    Expect(0, 7039, '\P{^Is_Sc=Bali}', "");
+    Error('\p{Script= -Bamum/a/}');
+    Error('\P{Script= -Bamum/a/}');
     Expect(1, 92728, '\p{Script=:\ABamum\z:}', "");;
     Expect(0, 92729, '\p{Script=:\ABamum\z:}', "");;
-    Expect(1, 92728, '\p{Script=bamum}', "");
-    Expect(0, 92728, '\p{^Script=bamum}', "");
-    Expect(0, 92728, '\P{Script=bamum}', "");
-    Expect(1, 92728, '\P{^Script=bamum}', "");
-    Expect(0, 92729, '\p{Script=bamum}', "");
-    Expect(1, 92729, '\p{^Script=bamum}', "");
-    Expect(1, 92729, '\P{Script=bamum}', "");
-    Expect(0, 92729, '\P{^Script=bamum}', "");
+    Expect(1, 92728, '\p{Script:   bamum}', "");
+    Expect(0, 92728, '\p{^Script:   bamum}', "");
+    Expect(0, 92728, '\P{Script:   bamum}', "");
+    Expect(1, 92728, '\P{^Script:   bamum}', "");
+    Expect(0, 92729, '\p{Script:   bamum}', "");
+    Expect(1, 92729, '\p{^Script:   bamum}', "");
+    Expect(1, 92729, '\P{Script:   bamum}', "");
+    Expect(0, 92729, '\P{^Script:   bamum}', "");
     Expect(1, 92728, '\p{Script=:\Abamum\z:}', "");;
     Expect(0, 92729, '\p{Script=:\Abamum\z:}', "");;
-    Expect(1, 92728, '\p{Script=_BAMUM}', "");
-    Expect(0, 92728, '\p{^Script=_BAMUM}', "");
-    Expect(0, 92728, '\P{Script=_BAMUM}', "");
-    Expect(1, 92728, '\P{^Script=_BAMUM}', "");
-    Expect(0, 92729, '\p{Script=_BAMUM}', "");
-    Expect(1, 92729, '\p{^Script=_BAMUM}', "");
-    Expect(1, 92729, '\P{Script=_BAMUM}', "");
-    Expect(0, 92729, '\P{^Script=_BAMUM}', "");
-    Error('\p{Sc: _:=BAMU}');
-    Error('\P{Sc: _:=BAMU}');
+    Expect(1, 92728, '\p{Script=	Bamum}', "");
+    Expect(0, 92728, '\p{^Script=	Bamum}', "");
+    Expect(0, 92728, '\P{Script=	Bamum}', "");
+    Expect(1, 92728, '\P{^Script=	Bamum}', "");
+    Expect(0, 92729, '\p{Script=	Bamum}', "");
+    Expect(1, 92729, '\p{^Script=	Bamum}', "");
+    Expect(1, 92729, '\P{Script=	Bamum}', "");
+    Expect(0, 92729, '\P{^Script=	Bamum}', "");
+    Error('\p{Sc:	_-bamu:=}');
+    Error('\P{Sc:	_-bamu:=}');
     Expect(1, 92728, '\p{Sc=:\ABamu\z:}', "");;
     Expect(0, 92729, '\p{Sc=:\ABamu\z:}', "");;
     Expect(1, 92728, '\p{Sc=bamu}', "");
@@ -129129,16 +130321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92729, '\P{^Sc=bamu}', "");
     Expect(1, 92728, '\p{Sc=:\Abamu\z:}', "");;
     Expect(0, 92729, '\p{Sc=:\Abamu\z:}', "");;
-    Expect(1, 92728, '\p{Sc=-_bamu}', "");
-    Expect(0, 92728, '\p{^Sc=-_bamu}', "");
-    Expect(0, 92728, '\P{Sc=-_bamu}', "");
-    Expect(1, 92728, '\P{^Sc=-_bamu}', "");
-    Expect(0, 92729, '\p{Sc=-_bamu}', "");
-    Expect(1, 92729, '\p{^Sc=-_bamu}', "");
-    Expect(1, 92729, '\P{Sc=-_bamu}', "");
-    Expect(0, 92729, '\P{^Sc=-_bamu}', "");
-    Error('\p{Is_Script=/a/--Bamum}');
-    Error('\P{Is_Script=/a/--Bamum}');
+    Expect(1, 92728, '\p{Sc=_bamu}', "");
+    Expect(0, 92728, '\p{^Sc=_bamu}', "");
+    Expect(0, 92728, '\P{Sc=_bamu}', "");
+    Expect(1, 92728, '\P{^Sc=_bamu}', "");
+    Expect(0, 92729, '\p{Sc=_bamu}', "");
+    Expect(1, 92729, '\p{^Sc=_bamu}', "");
+    Expect(1, 92729, '\P{Sc=_bamu}', "");
+    Expect(0, 92729, '\P{^Sc=_bamu}', "");
+    Error('\p{Is_Script=	BAMUM:=}');
+    Error('\P{Is_Script=	BAMUM:=}');
     Expect(1, 92728, '\p{Is_Script=bamum}', "");
     Expect(0, 92728, '\p{^Is_Script=bamum}', "");
     Expect(0, 92728, '\P{Is_Script=bamum}', "");
@@ -129147,16 +130339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92729, '\p{^Is_Script=bamum}', "");
     Expect(1, 92729, '\P{Is_Script=bamum}', "");
     Expect(0, 92729, '\P{^Is_Script=bamum}', "");
-    Expect(1, 92728, '\p{Is_Script=_Bamum}', "");
-    Expect(0, 92728, '\p{^Is_Script=_Bamum}', "");
-    Expect(0, 92728, '\P{Is_Script=_Bamum}', "");
-    Expect(1, 92728, '\P{^Is_Script=_Bamum}', "");
-    Expect(0, 92729, '\p{Is_Script=_Bamum}', "");
-    Expect(1, 92729, '\p{^Is_Script=_Bamum}', "");
-    Expect(1, 92729, '\P{Is_Script=_Bamum}', "");
-    Expect(0, 92729, '\P{^Is_Script=_Bamum}', "");
-    Error('\p{Is_Sc: :=	Bamu}');
-    Error('\P{Is_Sc: :=	Bamu}');
+    Expect(1, 92728, '\p{Is_Script=-	Bamum}', "");
+    Expect(0, 92728, '\p{^Is_Script=-	Bamum}', "");
+    Expect(0, 92728, '\P{Is_Script=-	Bamum}', "");
+    Expect(1, 92728, '\P{^Is_Script=-	Bamum}', "");
+    Expect(0, 92729, '\p{Is_Script=-	Bamum}', "");
+    Expect(1, 92729, '\p{^Is_Script=-	Bamum}', "");
+    Expect(1, 92729, '\P{Is_Script=-	Bamum}', "");
+    Expect(0, 92729, '\P{^Is_Script=-	Bamum}', "");
+    Error('\p{Is_Sc=-bamu/a/}');
+    Error('\P{Is_Sc=-bamu/a/}');
     Expect(1, 92728, '\p{Is_Sc=bamu}', "");
     Expect(0, 92728, '\p{^Is_Sc=bamu}', "");
     Expect(0, 92728, '\P{Is_Sc=bamu}', "");
@@ -129165,38 +130357,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92729, '\p{^Is_Sc=bamu}', "");
     Expect(1, 92729, '\P{Is_Sc=bamu}', "");
     Expect(0, 92729, '\P{^Is_Sc=bamu}', "");
-    Expect(1, 92728, '\p{Is_Sc=	-bamu}', "");
-    Expect(0, 92728, '\p{^Is_Sc=	-bamu}', "");
-    Expect(0, 92728, '\P{Is_Sc=	-bamu}', "");
-    Expect(1, 92728, '\P{^Is_Sc=	-bamu}', "");
-    Expect(0, 92729, '\p{Is_Sc=	-bamu}', "");
-    Expect(1, 92729, '\p{^Is_Sc=	-bamu}', "");
-    Expect(1, 92729, '\P{Is_Sc=	-bamu}', "");
-    Expect(0, 92729, '\P{^Is_Sc=	-bamu}', "");
-    Error('\p{Script=/a/--BASSA_Vah}');
-    Error('\P{Script=/a/--BASSA_Vah}');
+    Expect(1, 92728, '\p{Is_Sc=_-Bamu}', "");
+    Expect(0, 92728, '\p{^Is_Sc=_-Bamu}', "");
+    Expect(0, 92728, '\P{Is_Sc=_-Bamu}', "");
+    Expect(1, 92728, '\P{^Is_Sc=_-Bamu}', "");
+    Expect(0, 92729, '\p{Is_Sc=_-Bamu}', "");
+    Expect(1, 92729, '\p{^Is_Sc=_-Bamu}', "");
+    Expect(1, 92729, '\P{Is_Sc=_-Bamu}', "");
+    Expect(0, 92729, '\P{^Is_Sc=_-Bamu}', "");
+    Error('\p{Script= /a/Bassa_VAH}');
+    Error('\P{Script= /a/Bassa_VAH}');
     Expect(1, 92917, '\p{Script=:\ABassa_Vah\z:}', "");;
     Expect(0, 92918, '\p{Script=:\ABassa_Vah\z:}', "");;
-    Expect(1, 92917, '\p{Script=bassavah}', "");
-    Expect(0, 92917, '\p{^Script=bassavah}', "");
-    Expect(0, 92917, '\P{Script=bassavah}', "");
-    Expect(1, 92917, '\P{^Script=bassavah}', "");
-    Expect(0, 92918, '\p{Script=bassavah}', "");
-    Expect(1, 92918, '\p{^Script=bassavah}', "");
-    Expect(1, 92918, '\P{Script=bassavah}', "");
-    Expect(0, 92918, '\P{^Script=bassavah}', "");
+    Expect(1, 92917, '\p{Script: bassavah}', "");
+    Expect(0, 92917, '\p{^Script: bassavah}', "");
+    Expect(0, 92917, '\P{Script: bassavah}', "");
+    Expect(1, 92917, '\P{^Script: bassavah}', "");
+    Expect(0, 92918, '\p{Script: bassavah}', "");
+    Expect(1, 92918, '\p{^Script: bassavah}', "");
+    Expect(1, 92918, '\P{Script: bassavah}', "");
+    Expect(0, 92918, '\P{^Script: bassavah}', "");
     Expect(1, 92917, '\p{Script=:\Abassavah\z:}', "");;
     Expect(0, 92918, '\p{Script=:\Abassavah\z:}', "");;
-    Expect(1, 92917, '\p{Script=	-bassa_Vah}', "");
-    Expect(0, 92917, '\p{^Script=	-bassa_Vah}', "");
-    Expect(0, 92917, '\P{Script=	-bassa_Vah}', "");
-    Expect(1, 92917, '\P{^Script=	-bassa_Vah}', "");
-    Expect(0, 92918, '\p{Script=	-bassa_Vah}', "");
-    Expect(1, 92918, '\p{^Script=	-bassa_Vah}', "");
-    Expect(1, 92918, '\P{Script=	-bassa_Vah}', "");
-    Expect(0, 92918, '\P{^Script=	-bassa_Vah}', "");
-    Error('\p{Sc=_/a/BASS}');
-    Error('\P{Sc=_/a/BASS}');
+    Expect(1, 92917, '\p{Script=	-BASSA_VAH}', "");
+    Expect(0, 92917, '\p{^Script=	-BASSA_VAH}', "");
+    Expect(0, 92917, '\P{Script=	-BASSA_VAH}', "");
+    Expect(1, 92917, '\P{^Script=	-BASSA_VAH}', "");
+    Expect(0, 92918, '\p{Script=	-BASSA_VAH}', "");
+    Expect(1, 92918, '\p{^Script=	-BASSA_VAH}', "");
+    Expect(1, 92918, '\P{Script=	-BASSA_VAH}', "");
+    Expect(0, 92918, '\P{^Script=	-BASSA_VAH}', "");
+    Error('\p{Sc=	:=Bass}');
+    Error('\P{Sc=	:=Bass}');
     Expect(1, 92917, '\p{Sc=:\ABass\z:}', "");;
     Expect(0, 92918, '\p{Sc=:\ABass\z:}', "");;
     Expect(1, 92917, '\p{Sc=bass}', "");
@@ -129209,16 +130401,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92918, '\P{^Sc=bass}', "");
     Expect(1, 92917, '\p{Sc=:\Abass\z:}', "");;
     Expect(0, 92918, '\p{Sc=:\Abass\z:}', "");;
-    Expect(1, 92917, '\p{Sc=	-Bass}', "");
-    Expect(0, 92917, '\p{^Sc=	-Bass}', "");
-    Expect(0, 92917, '\P{Sc=	-Bass}', "");
-    Expect(1, 92917, '\P{^Sc=	-Bass}', "");
-    Expect(0, 92918, '\p{Sc=	-Bass}', "");
-    Expect(1, 92918, '\p{^Sc=	-Bass}', "");
-    Expect(1, 92918, '\P{Sc=	-Bass}', "");
-    Expect(0, 92918, '\P{^Sc=	-Bass}', "");
-    Error('\p{Is_Script=-:=BASSA_Vah}');
-    Error('\P{Is_Script=-:=BASSA_Vah}');
+    Expect(1, 92917, '\p{Sc=_bass}', "");
+    Expect(0, 92917, '\p{^Sc=_bass}', "");
+    Expect(0, 92917, '\P{Sc=_bass}', "");
+    Expect(1, 92917, '\P{^Sc=_bass}', "");
+    Expect(0, 92918, '\p{Sc=_bass}', "");
+    Expect(1, 92918, '\p{^Sc=_bass}', "");
+    Expect(1, 92918, '\P{Sc=_bass}', "");
+    Expect(0, 92918, '\P{^Sc=_bass}', "");
+    Error('\p{Is_Script=:=__Bassa_Vah}');
+    Error('\P{Is_Script=:=__Bassa_Vah}');
     Expect(1, 92917, '\p{Is_Script=bassavah}', "");
     Expect(0, 92917, '\p{^Is_Script=bassavah}', "");
     Expect(0, 92917, '\P{Is_Script=bassavah}', "");
@@ -129227,16 +130419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92918, '\p{^Is_Script=bassavah}', "");
     Expect(1, 92918, '\P{Is_Script=bassavah}', "");
     Expect(0, 92918, '\P{^Is_Script=bassavah}', "");
-    Expect(1, 92917, '\p{Is_Script=	-Bassa_vah}', "");
-    Expect(0, 92917, '\p{^Is_Script=	-Bassa_vah}', "");
-    Expect(0, 92917, '\P{Is_Script=	-Bassa_vah}', "");
-    Expect(1, 92917, '\P{^Is_Script=	-Bassa_vah}', "");
-    Expect(0, 92918, '\p{Is_Script=	-Bassa_vah}', "");
-    Expect(1, 92918, '\p{^Is_Script=	-Bassa_vah}', "");
-    Expect(1, 92918, '\P{Is_Script=	-Bassa_vah}', "");
-    Expect(0, 92918, '\P{^Is_Script=	-Bassa_vah}', "");
-    Error('\p{Is_Sc=:=	 Bass}');
-    Error('\P{Is_Sc=:=	 Bass}');
+    Expect(1, 92917, '\p{Is_Script=_Bassa_VAH}', "");
+    Expect(0, 92917, '\p{^Is_Script=_Bassa_VAH}', "");
+    Expect(0, 92917, '\P{Is_Script=_Bassa_VAH}', "");
+    Expect(1, 92917, '\P{^Is_Script=_Bassa_VAH}', "");
+    Expect(0, 92918, '\p{Is_Script=_Bassa_VAH}', "");
+    Expect(1, 92918, '\p{^Is_Script=_Bassa_VAH}', "");
+    Expect(1, 92918, '\P{Is_Script=_Bassa_VAH}', "");
+    Expect(0, 92918, '\P{^Is_Script=_Bassa_VAH}', "");
+    Error('\p{Is_Sc=	bass/a/}');
+    Error('\P{Is_Sc=	bass/a/}');
     Expect(1, 92917, '\p{Is_Sc=bass}', "");
     Expect(0, 92917, '\p{^Is_Sc=bass}', "");
     Expect(0, 92917, '\P{Is_Sc=bass}', "");
@@ -129245,16 +130437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92918, '\p{^Is_Sc=bass}', "");
     Expect(1, 92918, '\P{Is_Sc=bass}', "");
     Expect(0, 92918, '\P{^Is_Sc=bass}', "");
-    Expect(1, 92917, '\p{Is_Sc=		Bass}', "");
-    Expect(0, 92917, '\p{^Is_Sc=		Bass}', "");
-    Expect(0, 92917, '\P{Is_Sc=		Bass}', "");
-    Expect(1, 92917, '\P{^Is_Sc=		Bass}', "");
-    Expect(0, 92918, '\p{Is_Sc=		Bass}', "");
-    Expect(1, 92918, '\p{^Is_Sc=		Bass}', "");
-    Expect(1, 92918, '\P{Is_Sc=		Bass}', "");
-    Expect(0, 92918, '\P{^Is_Sc=		Bass}', "");
-    Error('\p{Script=_/a/batak}');
-    Error('\P{Script=_/a/batak}');
+    Expect(1, 92917, '\p{Is_Sc=Bass}', "");
+    Expect(0, 92917, '\p{^Is_Sc=Bass}', "");
+    Expect(0, 92917, '\P{Is_Sc=Bass}', "");
+    Expect(1, 92917, '\P{^Is_Sc=Bass}', "");
+    Expect(0, 92918, '\p{Is_Sc=Bass}', "");
+    Expect(1, 92918, '\p{^Is_Sc=Bass}', "");
+    Expect(1, 92918, '\P{Is_Sc=Bass}', "");
+    Expect(0, 92918, '\P{^Is_Sc=Bass}', "");
+    Error('\p{Script=-:=batak}');
+    Error('\P{Script=-:=batak}');
     Expect(1, 7167, '\p{Script=:\ABatak\z:}', "");;
     Expect(0, 7168, '\p{Script=:\ABatak\z:}', "");;
     Expect(1, 7167, '\p{Script=batak}', "");
@@ -129267,38 +130459,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7168, '\P{^Script=batak}', "");
     Expect(1, 7167, '\p{Script=:\Abatak\z:}', "");;
     Expect(0, 7168, '\p{Script=:\Abatak\z:}', "");;
-    Expect(1, 7167, '\p{Script= _batak}', "");
-    Expect(0, 7167, '\p{^Script= _batak}', "");
-    Expect(0, 7167, '\P{Script= _batak}', "");
-    Expect(1, 7167, '\P{^Script= _batak}', "");
-    Expect(0, 7168, '\p{Script= _batak}', "");
-    Expect(1, 7168, '\p{^Script= _batak}', "");
-    Expect(1, 7168, '\P{Script= _batak}', "");
-    Expect(0, 7168, '\P{^Script= _batak}', "");
-    Error('\p{Sc=/a/--Batk}');
-    Error('\P{Sc=/a/--Batk}');
+    Expect(1, 7167, '\p{Script=__Batak}', "");
+    Expect(0, 7167, '\p{^Script=__Batak}', "");
+    Expect(0, 7167, '\P{Script=__Batak}', "");
+    Expect(1, 7167, '\P{^Script=__Batak}', "");
+    Expect(0, 7168, '\p{Script=__Batak}', "");
+    Expect(1, 7168, '\p{^Script=__Batak}', "");
+    Expect(1, 7168, '\P{Script=__Batak}', "");
+    Expect(0, 7168, '\P{^Script=__Batak}', "");
+    Error('\p{Sc=-batk:=}');
+    Error('\P{Sc=-batk:=}');
     Expect(1, 7167, '\p{Sc=:\ABatk\z:}', "");;
     Expect(0, 7168, '\p{Sc=:\ABatk\z:}', "");;
-    Expect(1, 7167, '\p{Sc=batk}', "");
-    Expect(0, 7167, '\p{^Sc=batk}', "");
-    Expect(0, 7167, '\P{Sc=batk}', "");
-    Expect(1, 7167, '\P{^Sc=batk}', "");
-    Expect(0, 7168, '\p{Sc=batk}', "");
-    Expect(1, 7168, '\p{^Sc=batk}', "");
-    Expect(1, 7168, '\P{Sc=batk}', "");
-    Expect(0, 7168, '\P{^Sc=batk}', "");
+    Expect(1, 7167, '\p{Sc:batk}', "");
+    Expect(0, 7167, '\p{^Sc:batk}', "");
+    Expect(0, 7167, '\P{Sc:batk}', "");
+    Expect(1, 7167, '\P{^Sc:batk}', "");
+    Expect(0, 7168, '\p{Sc:batk}', "");
+    Expect(1, 7168, '\p{^Sc:batk}', "");
+    Expect(1, 7168, '\P{Sc:batk}', "");
+    Expect(0, 7168, '\P{^Sc:batk}', "");
     Expect(1, 7167, '\p{Sc=:\Abatk\z:}', "");;
     Expect(0, 7168, '\p{Sc=:\Abatk\z:}', "");;
-    Expect(1, 7167, '\p{Sc=	_batk}', "");
-    Expect(0, 7167, '\p{^Sc=	_batk}', "");
-    Expect(0, 7167, '\P{Sc=	_batk}', "");
-    Expect(1, 7167, '\P{^Sc=	_batk}', "");
-    Expect(0, 7168, '\p{Sc=	_batk}', "");
-    Expect(1, 7168, '\p{^Sc=	_batk}', "");
-    Expect(1, 7168, '\P{Sc=	_batk}', "");
-    Expect(0, 7168, '\P{^Sc=	_batk}', "");
-    Error('\p{Is_Script=/a/ -BATAK}');
-    Error('\P{Is_Script=/a/ -BATAK}');
+    Expect(1, 7167, '\p{Sc=	 Batk}', "");
+    Expect(0, 7167, '\p{^Sc=	 Batk}', "");
+    Expect(0, 7167, '\P{Sc=	 Batk}', "");
+    Expect(1, 7167, '\P{^Sc=	 Batk}', "");
+    Expect(0, 7168, '\p{Sc=	 Batk}', "");
+    Expect(1, 7168, '\p{^Sc=	 Batk}', "");
+    Expect(1, 7168, '\P{Sc=	 Batk}', "");
+    Expect(0, 7168, '\P{^Sc=	 Batk}', "");
+    Error('\p{Is_Script=:= -batak}');
+    Error('\P{Is_Script=:= -batak}');
     Expect(1, 7167, '\p{Is_Script=batak}', "");
     Expect(0, 7167, '\p{^Is_Script=batak}', "");
     Expect(0, 7167, '\P{Is_Script=batak}', "");
@@ -129307,16 +130499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7168, '\p{^Is_Script=batak}', "");
     Expect(1, 7168, '\P{Is_Script=batak}', "");
     Expect(0, 7168, '\P{^Is_Script=batak}', "");
-    Expect(1, 7167, '\p{Is_Script= Batak}', "");
-    Expect(0, 7167, '\p{^Is_Script= Batak}', "");
-    Expect(0, 7167, '\P{Is_Script= Batak}', "");
-    Expect(1, 7167, '\P{^Is_Script= Batak}', "");
-    Expect(0, 7168, '\p{Is_Script= Batak}', "");
-    Expect(1, 7168, '\p{^Is_Script= Batak}', "");
-    Expect(1, 7168, '\P{Is_Script= Batak}', "");
-    Expect(0, 7168, '\P{^Is_Script= Batak}', "");
-    Error('\p{Is_Sc=-BATK/a/}');
-    Error('\P{Is_Sc=-BATK/a/}');
+    Expect(1, 7167, '\p{Is_Script=	 BATAK}', "");
+    Expect(0, 7167, '\p{^Is_Script=	 BATAK}', "");
+    Expect(0, 7167, '\P{Is_Script=	 BATAK}', "");
+    Expect(1, 7167, '\P{^Is_Script=	 BATAK}', "");
+    Expect(0, 7168, '\p{Is_Script=	 BATAK}', "");
+    Expect(1, 7168, '\p{^Is_Script=	 BATAK}', "");
+    Expect(1, 7168, '\P{Is_Script=	 BATAK}', "");
+    Expect(0, 7168, '\P{^Is_Script=	 BATAK}', "");
+    Error('\p{Is_Sc: 	Batk/a/}');
+    Error('\P{Is_Sc: 	Batk/a/}');
     Expect(1, 7167, '\p{Is_Sc=batk}', "");
     Expect(0, 7167, '\p{^Is_Sc=batk}', "");
     Expect(0, 7167, '\P{Is_Sc=batk}', "");
@@ -129325,16 +130517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7168, '\p{^Is_Sc=batk}', "");
     Expect(1, 7168, '\P{Is_Sc=batk}', "");
     Expect(0, 7168, '\P{^Is_Sc=batk}', "");
-    Expect(1, 7167, '\p{Is_Sc=_ BATK}', "");
-    Expect(0, 7167, '\p{^Is_Sc=_ BATK}', "");
-    Expect(0, 7167, '\P{Is_Sc=_ BATK}', "");
-    Expect(1, 7167, '\P{^Is_Sc=_ BATK}', "");
-    Expect(0, 7168, '\p{Is_Sc=_ BATK}', "");
-    Expect(1, 7168, '\p{^Is_Sc=_ BATK}', "");
-    Expect(1, 7168, '\P{Is_Sc=_ BATK}', "");
-    Expect(0, 7168, '\P{^Is_Sc=_ BATK}', "");
-    Error('\p{Script=-	BENGALI:=}');
-    Error('\P{Script=-	BENGALI:=}');
+    Expect(1, 7167, '\p{Is_Sc=--Batk}', "");
+    Expect(0, 7167, '\p{^Is_Sc=--Batk}', "");
+    Expect(0, 7167, '\P{Is_Sc=--Batk}', "");
+    Expect(1, 7167, '\P{^Is_Sc=--Batk}', "");
+    Expect(0, 7168, '\p{Is_Sc=--Batk}', "");
+    Expect(1, 7168, '\p{^Is_Sc=--Batk}', "");
+    Expect(1, 7168, '\P{Is_Sc=--Batk}', "");
+    Expect(0, 7168, '\P{^Is_Sc=--Batk}', "");
+    Error('\p{Script=_bengali:=}');
+    Error('\P{Script=_bengali:=}');
     Expect(1, 2558, '\p{Script=:\ABengali\z:}', "");;
     Expect(0, 2559, '\p{Script=:\ABengali\z:}', "");;
     Expect(1, 2558, '\p{Script=bengali}', "");
@@ -129347,38 +130539,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2559, '\P{^Script=bengali}', "");
     Expect(1, 2558, '\p{Script=:\Abengali\z:}', "");;
     Expect(0, 2559, '\p{Script=:\Abengali\z:}', "");;
-    Expect(1, 2558, '\p{Script=_	Bengali}', "");
-    Expect(0, 2558, '\p{^Script=_	Bengali}', "");
-    Expect(0, 2558, '\P{Script=_	Bengali}', "");
-    Expect(1, 2558, '\P{^Script=_	Bengali}', "");
-    Expect(0, 2559, '\p{Script=_	Bengali}', "");
-    Expect(1, 2559, '\p{^Script=_	Bengali}', "");
-    Expect(1, 2559, '\P{Script=_	Bengali}', "");
-    Expect(0, 2559, '\P{^Script=_	Bengali}', "");
-    Error('\p{Sc= Beng:=}');
-    Error('\P{Sc= Beng:=}');
+    Expect(1, 2558, '\p{Script=__bengali}', "");
+    Expect(0, 2558, '\p{^Script=__bengali}', "");
+    Expect(0, 2558, '\P{Script=__bengali}', "");
+    Expect(1, 2558, '\P{^Script=__bengali}', "");
+    Expect(0, 2559, '\p{Script=__bengali}', "");
+    Expect(1, 2559, '\p{^Script=__bengali}', "");
+    Expect(1, 2559, '\P{Script=__bengali}', "");
+    Expect(0, 2559, '\P{^Script=__bengali}', "");
+    Error('\p{Sc= /a/Beng}');
+    Error('\P{Sc= /a/Beng}');
     Expect(1, 2558, '\p{Sc=:\ABeng\z:}', "");;
     Expect(0, 2559, '\p{Sc=:\ABeng\z:}', "");;
-    Expect(1, 2558, '\p{Sc:beng}', "");
-    Expect(0, 2558, '\p{^Sc:beng}', "");
-    Expect(0, 2558, '\P{Sc:beng}', "");
-    Expect(1, 2558, '\P{^Sc:beng}', "");
-    Expect(0, 2559, '\p{Sc:beng}', "");
-    Expect(1, 2559, '\p{^Sc:beng}', "");
-    Expect(1, 2559, '\P{Sc:beng}', "");
-    Expect(0, 2559, '\P{^Sc:beng}', "");
+    Expect(1, 2558, '\p{Sc=beng}', "");
+    Expect(0, 2558, '\p{^Sc=beng}', "");
+    Expect(0, 2558, '\P{Sc=beng}', "");
+    Expect(1, 2558, '\P{^Sc=beng}', "");
+    Expect(0, 2559, '\p{Sc=beng}', "");
+    Expect(1, 2559, '\p{^Sc=beng}', "");
+    Expect(1, 2559, '\P{Sc=beng}', "");
+    Expect(0, 2559, '\P{^Sc=beng}', "");
     Expect(1, 2558, '\p{Sc=:\Abeng\z:}', "");;
     Expect(0, 2559, '\p{Sc=:\Abeng\z:}', "");;
-    Expect(1, 2558, '\p{Sc=-_beng}', "");
-    Expect(0, 2558, '\p{^Sc=-_beng}', "");
-    Expect(0, 2558, '\P{Sc=-_beng}', "");
-    Expect(1, 2558, '\P{^Sc=-_beng}', "");
-    Expect(0, 2559, '\p{Sc=-_beng}', "");
-    Expect(1, 2559, '\p{^Sc=-_beng}', "");
-    Expect(1, 2559, '\P{Sc=-_beng}', "");
-    Expect(0, 2559, '\P{^Sc=-_beng}', "");
-    Error('\p{Is_Script:   	Bengali:=}');
-    Error('\P{Is_Script:   	Bengali:=}');
+    Expect(1, 2558, '\p{Sc=	-beng}', "");
+    Expect(0, 2558, '\p{^Sc=	-beng}', "");
+    Expect(0, 2558, '\P{Sc=	-beng}', "");
+    Expect(1, 2558, '\P{^Sc=	-beng}', "");
+    Expect(0, 2559, '\p{Sc=	-beng}', "");
+    Expect(1, 2559, '\p{^Sc=	-beng}', "");
+    Expect(1, 2559, '\P{Sc=	-beng}', "");
+    Expect(0, 2559, '\P{^Sc=	-beng}', "");
+    Error('\p{Is_Script= _Bengali:=}');
+    Error('\P{Is_Script= _Bengali:=}');
     Expect(1, 2558, '\p{Is_Script=bengali}', "");
     Expect(0, 2558, '\p{^Is_Script=bengali}', "");
     Expect(0, 2558, '\P{Is_Script=bengali}', "");
@@ -129387,16 +130579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2559, '\p{^Is_Script=bengali}', "");
     Expect(1, 2559, '\P{Is_Script=bengali}', "");
     Expect(0, 2559, '\P{^Is_Script=bengali}', "");
-    Expect(1, 2558, '\p{Is_Script=-	Bengali}', "");
-    Expect(0, 2558, '\p{^Is_Script=-	Bengali}', "");
-    Expect(0, 2558, '\P{Is_Script=-	Bengali}', "");
-    Expect(1, 2558, '\P{^Is_Script=-	Bengali}', "");
-    Expect(0, 2559, '\p{Is_Script=-	Bengali}', "");
-    Expect(1, 2559, '\p{^Is_Script=-	Bengali}', "");
-    Expect(1, 2559, '\P{Is_Script=-	Bengali}', "");
-    Expect(0, 2559, '\P{^Is_Script=-	Bengali}', "");
-    Error('\p{Is_Sc=:=- BENG}');
-    Error('\P{Is_Sc=:=- BENG}');
+    Expect(1, 2558, '\p{Is_Script=	_Bengali}', "");
+    Expect(0, 2558, '\p{^Is_Script=	_Bengali}', "");
+    Expect(0, 2558, '\P{Is_Script=	_Bengali}', "");
+    Expect(1, 2558, '\P{^Is_Script=	_Bengali}', "");
+    Expect(0, 2559, '\p{Is_Script=	_Bengali}', "");
+    Expect(1, 2559, '\p{^Is_Script=	_Bengali}', "");
+    Expect(1, 2559, '\P{Is_Script=	_Bengali}', "");
+    Expect(0, 2559, '\P{^Is_Script=	_Bengali}', "");
+    Error('\p{Is_Sc=-/a/beng}');
+    Error('\P{Is_Sc=-/a/beng}');
     Expect(1, 2558, '\p{Is_Sc=beng}', "");
     Expect(0, 2558, '\p{^Is_Sc=beng}', "");
     Expect(0, 2558, '\P{Is_Sc=beng}', "");
@@ -129405,38 +130597,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2559, '\p{^Is_Sc=beng}', "");
     Expect(1, 2559, '\P{Is_Sc=beng}', "");
     Expect(0, 2559, '\P{^Is_Sc=beng}', "");
-    Expect(1, 2558, '\p{Is_Sc: 	BENG}', "");
-    Expect(0, 2558, '\p{^Is_Sc: 	BENG}', "");
-    Expect(0, 2558, '\P{Is_Sc: 	BENG}', "");
-    Expect(1, 2558, '\P{^Is_Sc: 	BENG}', "");
-    Expect(0, 2559, '\p{Is_Sc: 	BENG}', "");
-    Expect(1, 2559, '\p{^Is_Sc: 	BENG}', "");
-    Expect(1, 2559, '\P{Is_Sc: 	BENG}', "");
-    Expect(0, 2559, '\P{^Is_Sc: 	BENG}', "");
-    Error('\p{Script=_ Bhaiksuki/a/}');
-    Error('\P{Script=_ Bhaiksuki/a/}');
+    Expect(1, 2558, '\p{Is_Sc=- BENG}', "");
+    Expect(0, 2558, '\p{^Is_Sc=- BENG}', "");
+    Expect(0, 2558, '\P{Is_Sc=- BENG}', "");
+    Expect(1, 2558, '\P{^Is_Sc=- BENG}', "");
+    Expect(0, 2559, '\p{Is_Sc=- BENG}', "");
+    Expect(1, 2559, '\p{^Is_Sc=- BENG}', "");
+    Expect(1, 2559, '\P{Is_Sc=- BENG}', "");
+    Expect(0, 2559, '\P{^Is_Sc=- BENG}', "");
+    Error('\p{Script=-_BHAIKSUKI:=}');
+    Error('\P{Script=-_BHAIKSUKI:=}');
     Expect(1, 72812, '\p{Script=:\ABhaiksuki\z:}', "");;
     Expect(0, 72813, '\p{Script=:\ABhaiksuki\z:}', "");;
-    Expect(1, 72812, '\p{Script=bhaiksuki}', "");
-    Expect(0, 72812, '\p{^Script=bhaiksuki}', "");
-    Expect(0, 72812, '\P{Script=bhaiksuki}', "");
-    Expect(1, 72812, '\P{^Script=bhaiksuki}', "");
-    Expect(0, 72813, '\p{Script=bhaiksuki}', "");
-    Expect(1, 72813, '\p{^Script=bhaiksuki}', "");
-    Expect(1, 72813, '\P{Script=bhaiksuki}', "");
-    Expect(0, 72813, '\P{^Script=bhaiksuki}', "");
+    Expect(1, 72812, '\p{Script:   bhaiksuki}', "");
+    Expect(0, 72812, '\p{^Script:   bhaiksuki}', "");
+    Expect(0, 72812, '\P{Script:   bhaiksuki}', "");
+    Expect(1, 72812, '\P{^Script:   bhaiksuki}', "");
+    Expect(0, 72813, '\p{Script:   bhaiksuki}', "");
+    Expect(1, 72813, '\p{^Script:   bhaiksuki}', "");
+    Expect(1, 72813, '\P{Script:   bhaiksuki}', "");
+    Expect(0, 72813, '\P{^Script:   bhaiksuki}', "");
     Expect(1, 72812, '\p{Script=:\Abhaiksuki\z:}', "");;
     Expect(0, 72813, '\p{Script=:\Abhaiksuki\z:}', "");;
-    Expect(1, 72812, '\p{Script=__BHAIKSUKI}', "");
-    Expect(0, 72812, '\p{^Script=__BHAIKSUKI}', "");
-    Expect(0, 72812, '\P{Script=__BHAIKSUKI}', "");
-    Expect(1, 72812, '\P{^Script=__BHAIKSUKI}', "");
-    Expect(0, 72813, '\p{Script=__BHAIKSUKI}', "");
-    Expect(1, 72813, '\p{^Script=__BHAIKSUKI}', "");
-    Expect(1, 72813, '\P{Script=__BHAIKSUKI}', "");
-    Expect(0, 72813, '\P{^Script=__BHAIKSUKI}', "");
-    Error('\p{Sc:_:=BHKS}');
-    Error('\P{Sc:_:=BHKS}');
+    Expect(1, 72812, '\p{Script=--bhaiksuki}', "");
+    Expect(0, 72812, '\p{^Script=--bhaiksuki}', "");
+    Expect(0, 72812, '\P{Script=--bhaiksuki}', "");
+    Expect(1, 72812, '\P{^Script=--bhaiksuki}', "");
+    Expect(0, 72813, '\p{Script=--bhaiksuki}', "");
+    Expect(1, 72813, '\p{^Script=--bhaiksuki}', "");
+    Expect(1, 72813, '\P{Script=--bhaiksuki}', "");
+    Expect(0, 72813, '\P{^Script=--bhaiksuki}', "");
+    Error('\p{Sc=-:=Bhks}');
+    Error('\P{Sc=-:=Bhks}');
     Expect(1, 72812, '\p{Sc=:\ABhks\z:}', "");;
     Expect(0, 72813, '\p{Sc=:\ABhks\z:}', "");;
     Expect(1, 72812, '\p{Sc=bhks}', "");
@@ -129449,16 +130641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72813, '\P{^Sc=bhks}', "");
     Expect(1, 72812, '\p{Sc=:\Abhks\z:}', "");;
     Expect(0, 72813, '\p{Sc=:\Abhks\z:}', "");;
-    Expect(1, 72812, '\p{Sc:-_Bhks}', "");
-    Expect(0, 72812, '\p{^Sc:-_Bhks}', "");
-    Expect(0, 72812, '\P{Sc:-_Bhks}', "");
-    Expect(1, 72812, '\P{^Sc:-_Bhks}', "");
-    Expect(0, 72813, '\p{Sc:-_Bhks}', "");
-    Expect(1, 72813, '\p{^Sc:-_Bhks}', "");
-    Expect(1, 72813, '\P{Sc:-_Bhks}', "");
-    Expect(0, 72813, '\P{^Sc:-_Bhks}', "");
-    Error('\p{Is_Script=:=	Bhaiksuki}');
-    Error('\P{Is_Script=:=	Bhaiksuki}');
+    Expect(1, 72812, '\p{Sc=--BHKS}', "");
+    Expect(0, 72812, '\p{^Sc=--BHKS}', "");
+    Expect(0, 72812, '\P{Sc=--BHKS}', "");
+    Expect(1, 72812, '\P{^Sc=--BHKS}', "");
+    Expect(0, 72813, '\p{Sc=--BHKS}', "");
+    Expect(1, 72813, '\p{^Sc=--BHKS}', "");
+    Expect(1, 72813, '\P{Sc=--BHKS}', "");
+    Expect(0, 72813, '\P{^Sc=--BHKS}', "");
+    Error('\p{Is_Script=_/a/Bhaiksuki}');
+    Error('\P{Is_Script=_/a/Bhaiksuki}');
     Expect(1, 72812, '\p{Is_Script=bhaiksuki}', "");
     Expect(0, 72812, '\p{^Is_Script=bhaiksuki}', "");
     Expect(0, 72812, '\P{Is_Script=bhaiksuki}', "");
@@ -129467,16 +130659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72813, '\p{^Is_Script=bhaiksuki}', "");
     Expect(1, 72813, '\P{Is_Script=bhaiksuki}', "");
     Expect(0, 72813, '\P{^Is_Script=bhaiksuki}', "");
-    Expect(1, 72812, '\p{Is_Script= Bhaiksuki}', "");
-    Expect(0, 72812, '\p{^Is_Script= Bhaiksuki}', "");
-    Expect(0, 72812, '\P{Is_Script= Bhaiksuki}', "");
-    Expect(1, 72812, '\P{^Is_Script= Bhaiksuki}', "");
-    Expect(0, 72813, '\p{Is_Script= Bhaiksuki}', "");
-    Expect(1, 72813, '\p{^Is_Script= Bhaiksuki}', "");
-    Expect(1, 72813, '\P{Is_Script= Bhaiksuki}', "");
-    Expect(0, 72813, '\P{^Is_Script= Bhaiksuki}', "");
-    Error('\p{Is_Sc=:=bhks}');
-    Error('\P{Is_Sc=:=bhks}');
+    Expect(1, 72812, '\p{Is_Script=- Bhaiksuki}', "");
+    Expect(0, 72812, '\p{^Is_Script=- Bhaiksuki}', "");
+    Expect(0, 72812, '\P{Is_Script=- Bhaiksuki}', "");
+    Expect(1, 72812, '\P{^Is_Script=- Bhaiksuki}', "");
+    Expect(0, 72813, '\p{Is_Script=- Bhaiksuki}', "");
+    Expect(1, 72813, '\p{^Is_Script=- Bhaiksuki}', "");
+    Expect(1, 72813, '\P{Is_Script=- Bhaiksuki}', "");
+    Expect(0, 72813, '\P{^Is_Script=- Bhaiksuki}', "");
+    Error('\p{Is_Sc=/a/	BHKS}');
+    Error('\P{Is_Sc=/a/	BHKS}');
     Expect(1, 72812, '\p{Is_Sc=bhks}', "");
     Expect(0, 72812, '\p{^Is_Sc=bhks}', "");
     Expect(0, 72812, '\P{Is_Sc=bhks}', "");
@@ -129485,16 +130677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72813, '\p{^Is_Sc=bhks}', "");
     Expect(1, 72813, '\P{Is_Sc=bhks}', "");
     Expect(0, 72813, '\P{^Is_Sc=bhks}', "");
-    Expect(1, 72812, '\p{Is_Sc= 	Bhks}', "");
-    Expect(0, 72812, '\p{^Is_Sc= 	Bhks}', "");
-    Expect(0, 72812, '\P{Is_Sc= 	Bhks}', "");
-    Expect(1, 72812, '\P{^Is_Sc= 	Bhks}', "");
-    Expect(0, 72813, '\p{Is_Sc= 	Bhks}', "");
-    Expect(1, 72813, '\p{^Is_Sc= 	Bhks}', "");
-    Expect(1, 72813, '\P{Is_Sc= 	Bhks}', "");
-    Expect(0, 72813, '\P{^Is_Sc= 	Bhks}', "");
-    Error('\p{Script:	 /a/BOPOMOFO}');
-    Error('\P{Script:	 /a/BOPOMOFO}');
+    Expect(1, 72812, '\p{Is_Sc:- bhks}', "");
+    Expect(0, 72812, '\p{^Is_Sc:- bhks}', "");
+    Expect(0, 72812, '\P{Is_Sc:- bhks}', "");
+    Expect(1, 72812, '\P{^Is_Sc:- bhks}', "");
+    Expect(0, 72813, '\p{Is_Sc:- bhks}', "");
+    Expect(1, 72813, '\p{^Is_Sc:- bhks}', "");
+    Expect(1, 72813, '\P{Is_Sc:- bhks}', "");
+    Expect(0, 72813, '\P{^Is_Sc:- bhks}', "");
+    Error('\p{Script=		Bopomofo/a/}');
+    Error('\P{Script=		Bopomofo/a/}');
     Expect(1, 12735, '\p{Script=:\ABopomofo\z:}', "");;
     Expect(0, 12736, '\p{Script=:\ABopomofo\z:}', "");;
     Expect(1, 12735, '\p{Script=bopomofo}', "");
@@ -129507,16 +130699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12736, '\P{^Script=bopomofo}', "");
     Expect(1, 12735, '\p{Script=:\Abopomofo\z:}', "");;
     Expect(0, 12736, '\p{Script=:\Abopomofo\z:}', "");;
-    Expect(1, 12735, '\p{Script=  Bopomofo}', "");
-    Expect(0, 12735, '\p{^Script=  Bopomofo}', "");
-    Expect(0, 12735, '\P{Script=  Bopomofo}', "");
-    Expect(1, 12735, '\P{^Script=  Bopomofo}', "");
-    Expect(0, 12736, '\p{Script=  Bopomofo}', "");
-    Expect(1, 12736, '\p{^Script=  Bopomofo}', "");
-    Expect(1, 12736, '\P{Script=  Bopomofo}', "");
-    Expect(0, 12736, '\P{^Script=  Bopomofo}', "");
-    Error('\p{Sc=_/a/bopo}');
-    Error('\P{Sc=_/a/bopo}');
+    Expect(1, 12735, '\p{Script=	 BOPOMOFO}', "");
+    Expect(0, 12735, '\p{^Script=	 BOPOMOFO}', "");
+    Expect(0, 12735, '\P{Script=	 BOPOMOFO}', "");
+    Expect(1, 12735, '\P{^Script=	 BOPOMOFO}', "");
+    Expect(0, 12736, '\p{Script=	 BOPOMOFO}', "");
+    Expect(1, 12736, '\p{^Script=	 BOPOMOFO}', "");
+    Expect(1, 12736, '\P{Script=	 BOPOMOFO}', "");
+    Expect(0, 12736, '\P{^Script=	 BOPOMOFO}', "");
+    Error('\p{Sc=  bopo/a/}');
+    Error('\P{Sc=  bopo/a/}');
     Expect(1, 12735, '\p{Sc=:\ABopo\z:}', "");;
     Expect(0, 12736, '\p{Sc=:\ABopo\z:}', "");;
     Expect(1, 12735, '\p{Sc=bopo}', "");
@@ -129529,16 +130721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12736, '\P{^Sc=bopo}', "");
     Expect(1, 12735, '\p{Sc=:\Abopo\z:}', "");;
     Expect(0, 12736, '\p{Sc=:\Abopo\z:}', "");;
-    Expect(1, 12735, '\p{Sc=-	bopo}', "");
-    Expect(0, 12735, '\p{^Sc=-	bopo}', "");
-    Expect(0, 12735, '\P{Sc=-	bopo}', "");
-    Expect(1, 12735, '\P{^Sc=-	bopo}', "");
-    Expect(0, 12736, '\p{Sc=-	bopo}', "");
-    Expect(1, 12736, '\p{^Sc=-	bopo}', "");
-    Expect(1, 12736, '\P{Sc=-	bopo}', "");
-    Expect(0, 12736, '\P{^Sc=-	bopo}', "");
-    Error('\p{Is_Script=-	bopomofo/a/}');
-    Error('\P{Is_Script=-	bopomofo/a/}');
+    Expect(1, 12735, '\p{Sc=- BOPO}', "");
+    Expect(0, 12735, '\p{^Sc=- BOPO}', "");
+    Expect(0, 12735, '\P{Sc=- BOPO}', "");
+    Expect(1, 12735, '\P{^Sc=- BOPO}', "");
+    Expect(0, 12736, '\p{Sc=- BOPO}', "");
+    Expect(1, 12736, '\p{^Sc=- BOPO}', "");
+    Expect(1, 12736, '\P{Sc=- BOPO}', "");
+    Expect(0, 12736, '\P{^Sc=- BOPO}', "");
+    Error('\p{Is_Script=	/a/Bopomofo}');
+    Error('\P{Is_Script=	/a/Bopomofo}');
     Expect(1, 12735, '\p{Is_Script=bopomofo}', "");
     Expect(0, 12735, '\p{^Is_Script=bopomofo}', "");
     Expect(0, 12735, '\P{Is_Script=bopomofo}', "");
@@ -129547,16 +130739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12736, '\p{^Is_Script=bopomofo}', "");
     Expect(1, 12736, '\P{Is_Script=bopomofo}', "");
     Expect(0, 12736, '\P{^Is_Script=bopomofo}', "");
-    Expect(1, 12735, '\p{Is_Script=Bopomofo}', "");
-    Expect(0, 12735, '\p{^Is_Script=Bopomofo}', "");
-    Expect(0, 12735, '\P{Is_Script=Bopomofo}', "");
-    Expect(1, 12735, '\P{^Is_Script=Bopomofo}', "");
-    Expect(0, 12736, '\p{Is_Script=Bopomofo}', "");
-    Expect(1, 12736, '\p{^Is_Script=Bopomofo}', "");
-    Expect(1, 12736, '\P{Is_Script=Bopomofo}', "");
-    Expect(0, 12736, '\P{^Is_Script=Bopomofo}', "");
-    Error('\p{Is_Sc=:=_	BOPO}');
-    Error('\P{Is_Sc=:=_	BOPO}');
+    Expect(1, 12735, '\p{Is_Script=-_BOPOMOFO}', "");
+    Expect(0, 12735, '\p{^Is_Script=-_BOPOMOFO}', "");
+    Expect(0, 12735, '\P{Is_Script=-_BOPOMOFO}', "");
+    Expect(1, 12735, '\P{^Is_Script=-_BOPOMOFO}', "");
+    Expect(0, 12736, '\p{Is_Script=-_BOPOMOFO}', "");
+    Expect(1, 12736, '\p{^Is_Script=-_BOPOMOFO}', "");
+    Expect(1, 12736, '\P{Is_Script=-_BOPOMOFO}', "");
+    Expect(0, 12736, '\P{^Is_Script=-_BOPOMOFO}', "");
+    Error('\p{Is_Sc=	/a/BOPO}');
+    Error('\P{Is_Sc=	/a/BOPO}');
     Expect(1, 12735, '\p{Is_Sc=bopo}', "");
     Expect(0, 12735, '\p{^Is_Sc=bopo}', "");
     Expect(0, 12735, '\P{Is_Sc=bopo}', "");
@@ -129565,16 +130757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12736, '\p{^Is_Sc=bopo}', "");
     Expect(1, 12736, '\P{Is_Sc=bopo}', "");
     Expect(0, 12736, '\P{^Is_Sc=bopo}', "");
-    Expect(1, 12735, '\p{Is_Sc=_-bopo}', "");
-    Expect(0, 12735, '\p{^Is_Sc=_-bopo}', "");
-    Expect(0, 12735, '\P{Is_Sc=_-bopo}', "");
-    Expect(1, 12735, '\P{^Is_Sc=_-bopo}', "");
-    Expect(0, 12736, '\p{Is_Sc=_-bopo}', "");
-    Expect(1, 12736, '\p{^Is_Sc=_-bopo}', "");
-    Expect(1, 12736, '\P{Is_Sc=_-bopo}', "");
-    Expect(0, 12736, '\P{^Is_Sc=_-bopo}', "");
-    Error('\p{Script=	Brahmi/a/}');
-    Error('\P{Script=	Brahmi/a/}');
+    Expect(1, 12735, '\p{Is_Sc=- bopo}', "");
+    Expect(0, 12735, '\p{^Is_Sc=- bopo}', "");
+    Expect(0, 12735, '\P{Is_Sc=- bopo}', "");
+    Expect(1, 12735, '\P{^Is_Sc=- bopo}', "");
+    Expect(0, 12736, '\p{Is_Sc=- bopo}', "");
+    Expect(1, 12736, '\p{^Is_Sc=- bopo}', "");
+    Expect(1, 12736, '\P{Is_Sc=- bopo}', "");
+    Expect(0, 12736, '\P{^Is_Sc=- bopo}', "");
+    Error('\p{Script: 	BRAHMI/a/}');
+    Error('\P{Script: 	BRAHMI/a/}');
     Expect(1, 69759, '\p{Script=:\ABrahmi\z:}', "");;
     Expect(0, 69760, '\p{Script=:\ABrahmi\z:}', "");;
     Expect(1, 69759, '\p{Script=brahmi}', "");
@@ -129587,16 +130779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69760, '\P{^Script=brahmi}', "");
     Expect(1, 69759, '\p{Script=:\Abrahmi\z:}', "");;
     Expect(0, 69760, '\p{Script=:\Abrahmi\z:}', "");;
-    Expect(1, 69759, '\p{Script= -brahmi}', "");
-    Expect(0, 69759, '\p{^Script= -brahmi}', "");
-    Expect(0, 69759, '\P{Script= -brahmi}', "");
-    Expect(1, 69759, '\P{^Script= -brahmi}', "");
-    Expect(0, 69760, '\p{Script= -brahmi}', "");
-    Expect(1, 69760, '\p{^Script= -brahmi}', "");
-    Expect(1, 69760, '\P{Script= -brahmi}', "");
-    Expect(0, 69760, '\P{^Script= -brahmi}', "");
-    Error('\p{Sc= :=Brah}');
-    Error('\P{Sc= :=Brah}');
+    Expect(1, 69759, '\p{Script= 	BRAHMI}', "");
+    Expect(0, 69759, '\p{^Script= 	BRAHMI}', "");
+    Expect(0, 69759, '\P{Script= 	BRAHMI}', "");
+    Expect(1, 69759, '\P{^Script= 	BRAHMI}', "");
+    Expect(0, 69760, '\p{Script= 	BRAHMI}', "");
+    Expect(1, 69760, '\p{^Script= 	BRAHMI}', "");
+    Expect(1, 69760, '\P{Script= 	BRAHMI}', "");
+    Expect(0, 69760, '\P{^Script= 	BRAHMI}', "");
+    Error('\p{Sc=_Brah/a/}');
+    Error('\P{Sc=_Brah/a/}');
     Expect(1, 69759, '\p{Sc=:\ABrah\z:}', "");;
     Expect(0, 69760, '\p{Sc=:\ABrah\z:}', "");;
     Expect(1, 69759, '\p{Sc=brah}', "");
@@ -129609,34 +130801,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69760, '\P{^Sc=brah}', "");
     Expect(1, 69759, '\p{Sc=:\Abrah\z:}', "");;
     Expect(0, 69760, '\p{Sc=:\Abrah\z:}', "");;
-    Expect(1, 69759, '\p{Sc=_Brah}', "");
-    Expect(0, 69759, '\p{^Sc=_Brah}', "");
-    Expect(0, 69759, '\P{Sc=_Brah}', "");
-    Expect(1, 69759, '\P{^Sc=_Brah}', "");
-    Expect(0, 69760, '\p{Sc=_Brah}', "");
-    Expect(1, 69760, '\p{^Sc=_Brah}', "");
-    Expect(1, 69760, '\P{Sc=_Brah}', "");
-    Expect(0, 69760, '\P{^Sc=_Brah}', "");
-    Error('\p{Is_Script=/a/ -brahmi}');
-    Error('\P{Is_Script=/a/ -brahmi}');
-    Expect(1, 69759, '\p{Is_Script: brahmi}', "");
-    Expect(0, 69759, '\p{^Is_Script: brahmi}', "");
-    Expect(0, 69759, '\P{Is_Script: brahmi}', "");
-    Expect(1, 69759, '\P{^Is_Script: brahmi}', "");
-    Expect(0, 69760, '\p{Is_Script: brahmi}', "");
-    Expect(1, 69760, '\p{^Is_Script: brahmi}', "");
-    Expect(1, 69760, '\P{Is_Script: brahmi}', "");
-    Expect(0, 69760, '\P{^Is_Script: brahmi}', "");
-    Expect(1, 69759, '\p{Is_Script=__Brahmi}', "");
-    Expect(0, 69759, '\p{^Is_Script=__Brahmi}', "");
-    Expect(0, 69759, '\P{Is_Script=__Brahmi}', "");
-    Expect(1, 69759, '\P{^Is_Script=__Brahmi}', "");
-    Expect(0, 69760, '\p{Is_Script=__Brahmi}', "");
-    Expect(1, 69760, '\p{^Is_Script=__Brahmi}', "");
-    Expect(1, 69760, '\P{Is_Script=__Brahmi}', "");
-    Expect(0, 69760, '\P{^Is_Script=__Brahmi}', "");
-    Error('\p{Is_Sc=_/a/Brah}');
-    Error('\P{Is_Sc=_/a/Brah}');
+    Expect(1, 69759, '\p{Sc=-Brah}', "");
+    Expect(0, 69759, '\p{^Sc=-Brah}', "");
+    Expect(0, 69759, '\P{Sc=-Brah}', "");
+    Expect(1, 69759, '\P{^Sc=-Brah}', "");
+    Expect(0, 69760, '\p{Sc=-Brah}', "");
+    Expect(1, 69760, '\p{^Sc=-Brah}', "");
+    Expect(1, 69760, '\P{Sc=-Brah}', "");
+    Expect(0, 69760, '\P{^Sc=-Brah}', "");
+    Error('\p{Is_Script=	/a/BRAHMI}');
+    Error('\P{Is_Script=	/a/BRAHMI}');
+    Expect(1, 69759, '\p{Is_Script=brahmi}', "");
+    Expect(0, 69759, '\p{^Is_Script=brahmi}', "");
+    Expect(0, 69759, '\P{Is_Script=brahmi}', "");
+    Expect(1, 69759, '\P{^Is_Script=brahmi}', "");
+    Expect(0, 69760, '\p{Is_Script=brahmi}', "");
+    Expect(1, 69760, '\p{^Is_Script=brahmi}', "");
+    Expect(1, 69760, '\P{Is_Script=brahmi}', "");
+    Expect(0, 69760, '\P{^Is_Script=brahmi}', "");
+    Expect(1, 69759, '\p{Is_Script=	-BRAHMI}', "");
+    Expect(0, 69759, '\p{^Is_Script=	-BRAHMI}', "");
+    Expect(0, 69759, '\P{Is_Script=	-BRAHMI}', "");
+    Expect(1, 69759, '\P{^Is_Script=	-BRAHMI}', "");
+    Expect(0, 69760, '\p{Is_Script=	-BRAHMI}', "");
+    Expect(1, 69760, '\p{^Is_Script=	-BRAHMI}', "");
+    Expect(1, 69760, '\P{Is_Script=	-BRAHMI}', "");
+    Expect(0, 69760, '\P{^Is_Script=	-BRAHMI}', "");
+    Error('\p{Is_Sc=	 BRAH:=}');
+    Error('\P{Is_Sc=	 BRAH:=}');
     Expect(1, 69759, '\p{Is_Sc=brah}', "");
     Expect(0, 69759, '\p{^Is_Sc=brah}', "");
     Expect(0, 69759, '\P{Is_Sc=brah}', "");
@@ -129645,16 +130837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69760, '\p{^Is_Sc=brah}', "");
     Expect(1, 69760, '\P{Is_Sc=brah}', "");
     Expect(0, 69760, '\P{^Is_Sc=brah}', "");
-    Expect(1, 69759, '\p{Is_Sc= _Brah}', "");
-    Expect(0, 69759, '\p{^Is_Sc= _Brah}', "");
-    Expect(0, 69759, '\P{Is_Sc= _Brah}', "");
-    Expect(1, 69759, '\P{^Is_Sc= _Brah}', "");
-    Expect(0, 69760, '\p{Is_Sc= _Brah}', "");
-    Expect(1, 69760, '\p{^Is_Sc= _Brah}', "");
-    Expect(1, 69760, '\P{Is_Sc= _Brah}', "");
-    Expect(0, 69760, '\P{^Is_Sc= _Brah}', "");
-    Error('\p{Script:   /a/ 	braille}');
-    Error('\P{Script:   /a/ 	braille}');
+    Expect(1, 69759, '\p{Is_Sc=		Brah}', "");
+    Expect(0, 69759, '\p{^Is_Sc=		Brah}', "");
+    Expect(0, 69759, '\P{Is_Sc=		Brah}', "");
+    Expect(1, 69759, '\P{^Is_Sc=		Brah}', "");
+    Expect(0, 69760, '\p{Is_Sc=		Brah}', "");
+    Expect(1, 69760, '\p{^Is_Sc=		Brah}', "");
+    Expect(1, 69760, '\P{Is_Sc=		Brah}', "");
+    Expect(0, 69760, '\P{^Is_Sc=		Brah}', "");
+    Error('\p{Script=:=BRAILLE}');
+    Error('\P{Script=:=BRAILLE}');
     Expect(1, 10495, '\p{Script=:\ABraille\z:}', "");;
     Expect(0, 10496, '\p{Script=:\ABraille\z:}', "");;
     Expect(1, 10495, '\p{Script=braille}', "");
@@ -129667,16 +130859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 10496, '\P{^Script=braille}', "");
     Expect(1, 10495, '\p{Script=:\Abraille\z:}', "");;
     Expect(0, 10496, '\p{Script=:\Abraille\z:}', "");;
-    Expect(1, 10495, '\p{Script=_ braille}', "");
-    Expect(0, 10495, '\p{^Script=_ braille}', "");
-    Expect(0, 10495, '\P{Script=_ braille}', "");
-    Expect(1, 10495, '\P{^Script=_ braille}', "");
-    Expect(0, 10496, '\p{Script=_ braille}', "");
-    Expect(1, 10496, '\p{^Script=_ braille}', "");
-    Expect(1, 10496, '\P{Script=_ braille}', "");
-    Expect(0, 10496, '\P{^Script=_ braille}', "");
-    Error('\p{Sc=/a/ BRAI}');
-    Error('\P{Sc=/a/ BRAI}');
+    Expect(1, 10495, '\p{Script=	 BRAILLE}', "");
+    Expect(0, 10495, '\p{^Script=	 BRAILLE}', "");
+    Expect(0, 10495, '\P{Script=	 BRAILLE}', "");
+    Expect(1, 10495, '\P{^Script=	 BRAILLE}', "");
+    Expect(0, 10496, '\p{Script=	 BRAILLE}', "");
+    Expect(1, 10496, '\p{^Script=	 BRAILLE}', "");
+    Expect(1, 10496, '\P{Script=	 BRAILLE}', "");
+    Expect(0, 10496, '\P{^Script=	 BRAILLE}', "");
+    Error('\p{Sc=:= -Brai}');
+    Error('\P{Sc=:= -Brai}');
     Expect(1, 10495, '\p{Sc=:\ABrai\z:}', "");;
     Expect(0, 10496, '\p{Sc=:\ABrai\z:}', "");;
     Expect(1, 10495, '\p{Sc=brai}', "");
@@ -129689,16 +130881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 10496, '\P{^Sc=brai}', "");
     Expect(1, 10495, '\p{Sc=:\Abrai\z:}', "");;
     Expect(0, 10496, '\p{Sc=:\Abrai\z:}', "");;
-    Expect(1, 10495, '\p{Sc= 	Brai}', "");
-    Expect(0, 10495, '\p{^Sc= 	Brai}', "");
-    Expect(0, 10495, '\P{Sc= 	Brai}', "");
-    Expect(1, 10495, '\P{^Sc= 	Brai}', "");
-    Expect(0, 10496, '\p{Sc= 	Brai}', "");
-    Expect(1, 10496, '\p{^Sc= 	Brai}', "");
-    Expect(1, 10496, '\P{Sc= 	Brai}', "");
-    Expect(0, 10496, '\P{^Sc= 	Brai}', "");
-    Error('\p{Is_Script=/a/_	Braille}');
-    Error('\P{Is_Script=/a/_	Braille}');
+    Expect(1, 10495, '\p{Sc=	Brai}', "");
+    Expect(0, 10495, '\p{^Sc=	Brai}', "");
+    Expect(0, 10495, '\P{Sc=	Brai}', "");
+    Expect(1, 10495, '\P{^Sc=	Brai}', "");
+    Expect(0, 10496, '\p{Sc=	Brai}', "");
+    Expect(1, 10496, '\p{^Sc=	Brai}', "");
+    Expect(1, 10496, '\P{Sc=	Brai}', "");
+    Expect(0, 10496, '\P{^Sc=	Brai}', "");
+    Error('\p{Is_Script=	/a/braille}');
+    Error('\P{Is_Script=	/a/braille}');
     Expect(1, 10495, '\p{Is_Script=braille}', "");
     Expect(0, 10495, '\p{^Is_Script=braille}', "");
     Expect(0, 10495, '\P{Is_Script=braille}', "");
@@ -129707,16 +130899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10496, '\p{^Is_Script=braille}', "");
     Expect(1, 10496, '\P{Is_Script=braille}', "");
     Expect(0, 10496, '\P{^Is_Script=braille}', "");
-    Expect(1, 10495, '\p{Is_Script=_Braille}', "");
-    Expect(0, 10495, '\p{^Is_Script=_Braille}', "");
-    Expect(0, 10495, '\P{Is_Script=_Braille}', "");
-    Expect(1, 10495, '\P{^Is_Script=_Braille}', "");
-    Expect(0, 10496, '\p{Is_Script=_Braille}', "");
-    Expect(1, 10496, '\p{^Is_Script=_Braille}', "");
-    Expect(1, 10496, '\P{Is_Script=_Braille}', "");
-    Expect(0, 10496, '\P{^Is_Script=_Braille}', "");
-    Error('\p{Is_Sc=:=-Brai}');
-    Error('\P{Is_Sc=:=-Brai}');
+    Expect(1, 10495, '\p{Is_Script= _Braille}', "");
+    Expect(0, 10495, '\p{^Is_Script= _Braille}', "");
+    Expect(0, 10495, '\P{Is_Script= _Braille}', "");
+    Expect(1, 10495, '\P{^Is_Script= _Braille}', "");
+    Expect(0, 10496, '\p{Is_Script= _Braille}', "");
+    Expect(1, 10496, '\p{^Is_Script= _Braille}', "");
+    Expect(1, 10496, '\P{Is_Script= _Braille}', "");
+    Expect(0, 10496, '\P{^Is_Script= _Braille}', "");
+    Error('\p{Is_Sc=_/a/Brai}');
+    Error('\P{Is_Sc=_/a/Brai}');
     Expect(1, 10495, '\p{Is_Sc=brai}', "");
     Expect(0, 10495, '\p{^Is_Sc=brai}', "");
     Expect(0, 10495, '\P{Is_Sc=brai}', "");
@@ -129725,16 +130917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10496, '\p{^Is_Sc=brai}', "");
     Expect(1, 10496, '\P{Is_Sc=brai}', "");
     Expect(0, 10496, '\P{^Is_Sc=brai}', "");
-    Expect(1, 10495, '\p{Is_Sc: -Brai}', "");
-    Expect(0, 10495, '\p{^Is_Sc: -Brai}', "");
-    Expect(0, 10495, '\P{Is_Sc: -Brai}', "");
-    Expect(1, 10495, '\P{^Is_Sc: -Brai}', "");
-    Expect(0, 10496, '\p{Is_Sc: -Brai}', "");
-    Expect(1, 10496, '\p{^Is_Sc: -Brai}', "");
-    Expect(1, 10496, '\P{Is_Sc: -Brai}', "");
-    Expect(0, 10496, '\P{^Is_Sc: -Brai}', "");
-    Error('\p{Script=:= buginese}');
-    Error('\P{Script=:= buginese}');
+    Expect(1, 10495, '\p{Is_Sc=-brai}', "");
+    Expect(0, 10495, '\p{^Is_Sc=-brai}', "");
+    Expect(0, 10495, '\P{Is_Sc=-brai}', "");
+    Expect(1, 10495, '\P{^Is_Sc=-brai}', "");
+    Expect(0, 10496, '\p{Is_Sc=-brai}', "");
+    Expect(1, 10496, '\p{^Is_Sc=-brai}', "");
+    Expect(1, 10496, '\P{Is_Sc=-brai}', "");
+    Expect(0, 10496, '\P{^Is_Sc=-brai}', "");
+    Error('\p{Script= Buginese/a/}');
+    Error('\P{Script= Buginese/a/}');
     Expect(1, 6687, '\p{Script=:\ABuginese\z:}', "");;
     Expect(0, 6688, '\p{Script=:\ABuginese\z:}', "");;
     Expect(1, 6687, '\p{Script=buginese}', "");
@@ -129747,56 +130939,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6688, '\P{^Script=buginese}', "");
     Expect(1, 6687, '\p{Script=:\Abuginese\z:}', "");;
     Expect(0, 6688, '\p{Script=:\Abuginese\z:}', "");;
-    Expect(1, 6687, '\p{Script:	 _Buginese}', "");
-    Expect(0, 6687, '\p{^Script:	 _Buginese}', "");
-    Expect(0, 6687, '\P{Script:	 _Buginese}', "");
-    Expect(1, 6687, '\P{^Script:	 _Buginese}', "");
-    Expect(0, 6688, '\p{Script:	 _Buginese}', "");
-    Expect(1, 6688, '\p{^Script:	 _Buginese}', "");
-    Expect(1, 6688, '\P{Script:	 _Buginese}', "");
-    Expect(0, 6688, '\P{^Script:	 _Buginese}', "");
-    Error('\p{Sc= Bugi:=}');
-    Error('\P{Sc= Bugi:=}');
+    Expect(1, 6687, '\p{Script=_Buginese}', "");
+    Expect(0, 6687, '\p{^Script=_Buginese}', "");
+    Expect(0, 6687, '\P{Script=_Buginese}', "");
+    Expect(1, 6687, '\P{^Script=_Buginese}', "");
+    Expect(0, 6688, '\p{Script=_Buginese}', "");
+    Expect(1, 6688, '\p{^Script=_Buginese}', "");
+    Expect(1, 6688, '\P{Script=_Buginese}', "");
+    Expect(0, 6688, '\P{^Script=_Buginese}', "");
+    Error('\p{Sc::=- bugi}');
+    Error('\P{Sc::=- bugi}');
     Expect(1, 6687, '\p{Sc=:\ABugi\z:}', "");;
     Expect(0, 6688, '\p{Sc=:\ABugi\z:}', "");;
-    Expect(1, 6687, '\p{Sc: bugi}', "");
-    Expect(0, 6687, '\p{^Sc: bugi}', "");
-    Expect(0, 6687, '\P{Sc: bugi}', "");
-    Expect(1, 6687, '\P{^Sc: bugi}', "");
-    Expect(0, 6688, '\p{Sc: bugi}', "");
-    Expect(1, 6688, '\p{^Sc: bugi}', "");
-    Expect(1, 6688, '\P{Sc: bugi}', "");
-    Expect(0, 6688, '\P{^Sc: bugi}', "");
+    Expect(1, 6687, '\p{Sc=bugi}', "");
+    Expect(0, 6687, '\p{^Sc=bugi}', "");
+    Expect(0, 6687, '\P{Sc=bugi}', "");
+    Expect(1, 6687, '\P{^Sc=bugi}', "");
+    Expect(0, 6688, '\p{Sc=bugi}', "");
+    Expect(1, 6688, '\p{^Sc=bugi}', "");
+    Expect(1, 6688, '\P{Sc=bugi}', "");
+    Expect(0, 6688, '\P{^Sc=bugi}', "");
     Expect(1, 6687, '\p{Sc=:\Abugi\z:}', "");;
     Expect(0, 6688, '\p{Sc=:\Abugi\z:}', "");;
-    Expect(1, 6687, '\p{Sc:	  BUGI}', "");
-    Expect(0, 6687, '\p{^Sc:	  BUGI}', "");
-    Expect(0, 6687, '\P{Sc:	  BUGI}', "");
-    Expect(1, 6687, '\P{^Sc:	  BUGI}', "");
-    Expect(0, 6688, '\p{Sc:	  BUGI}', "");
-    Expect(1, 6688, '\p{^Sc:	  BUGI}', "");
-    Expect(1, 6688, '\P{Sc:	  BUGI}', "");
-    Expect(0, 6688, '\P{^Sc:	  BUGI}', "");
-    Error('\p{Is_Script=_	buginese/a/}');
-    Error('\P{Is_Script=_	buginese/a/}');
-    Expect(1, 6687, '\p{Is_Script=buginese}', "");
-    Expect(0, 6687, '\p{^Is_Script=buginese}', "");
-    Expect(0, 6687, '\P{Is_Script=buginese}', "");
-    Expect(1, 6687, '\P{^Is_Script=buginese}', "");
-    Expect(0, 6688, '\p{Is_Script=buginese}', "");
-    Expect(1, 6688, '\p{^Is_Script=buginese}', "");
-    Expect(1, 6688, '\P{Is_Script=buginese}', "");
-    Expect(0, 6688, '\P{^Is_Script=buginese}', "");
-    Expect(1, 6687, '\p{Is_Script=_	Buginese}', "");
-    Expect(0, 6687, '\p{^Is_Script=_	Buginese}', "");
-    Expect(0, 6687, '\P{Is_Script=_	Buginese}', "");
-    Expect(1, 6687, '\P{^Is_Script=_	Buginese}', "");
-    Expect(0, 6688, '\p{Is_Script=_	Buginese}', "");
-    Expect(1, 6688, '\p{^Is_Script=_	Buginese}', "");
-    Expect(1, 6688, '\P{Is_Script=_	Buginese}', "");
-    Expect(0, 6688, '\P{^Is_Script=_	Buginese}', "");
-    Error('\p{Is_Sc=:=-Bugi}');
-    Error('\P{Is_Sc=:=-Bugi}');
+    Expect(1, 6687, '\p{Sc=	_Bugi}', "");
+    Expect(0, 6687, '\p{^Sc=	_Bugi}', "");
+    Expect(0, 6687, '\P{Sc=	_Bugi}', "");
+    Expect(1, 6687, '\P{^Sc=	_Bugi}', "");
+    Expect(0, 6688, '\p{Sc=	_Bugi}', "");
+    Expect(1, 6688, '\p{^Sc=	_Bugi}', "");
+    Expect(1, 6688, '\P{Sc=	_Bugi}', "");
+    Expect(0, 6688, '\P{^Sc=	_Bugi}', "");
+    Error('\p{Is_Script=--BUGINESE:=}');
+    Error('\P{Is_Script=--BUGINESE:=}');
+    Expect(1, 6687, '\p{Is_Script: buginese}', "");
+    Expect(0, 6687, '\p{^Is_Script: buginese}', "");
+    Expect(0, 6687, '\P{Is_Script: buginese}', "");
+    Expect(1, 6687, '\P{^Is_Script: buginese}', "");
+    Expect(0, 6688, '\p{Is_Script: buginese}', "");
+    Expect(1, 6688, '\p{^Is_Script: buginese}', "");
+    Expect(1, 6688, '\P{Is_Script: buginese}', "");
+    Expect(0, 6688, '\P{^Is_Script: buginese}', "");
+    Expect(1, 6687, '\p{Is_Script= 	Buginese}', "");
+    Expect(0, 6687, '\p{^Is_Script= 	Buginese}', "");
+    Expect(0, 6687, '\P{Is_Script= 	Buginese}', "");
+    Expect(1, 6687, '\P{^Is_Script= 	Buginese}', "");
+    Expect(0, 6688, '\p{Is_Script= 	Buginese}', "");
+    Expect(1, 6688, '\p{^Is_Script= 	Buginese}', "");
+    Expect(1, 6688, '\P{Is_Script= 	Buginese}', "");
+    Expect(0, 6688, '\P{^Is_Script= 	Buginese}', "");
+    Error('\p{Is_Sc= /a/Bugi}');
+    Error('\P{Is_Sc= /a/Bugi}');
     Expect(1, 6687, '\p{Is_Sc=bugi}', "");
     Expect(0, 6687, '\p{^Is_Sc=bugi}', "");
     Expect(0, 6687, '\P{Is_Sc=bugi}', "");
@@ -129805,16 +130997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6688, '\p{^Is_Sc=bugi}', "");
     Expect(1, 6688, '\P{Is_Sc=bugi}', "");
     Expect(0, 6688, '\P{^Is_Sc=bugi}', "");
-    Expect(1, 6687, '\p{Is_Sc=  Bugi}', "");
-    Expect(0, 6687, '\p{^Is_Sc=  Bugi}', "");
-    Expect(0, 6687, '\P{Is_Sc=  Bugi}', "");
-    Expect(1, 6687, '\P{^Is_Sc=  Bugi}', "");
-    Expect(0, 6688, '\p{Is_Sc=  Bugi}', "");
-    Expect(1, 6688, '\p{^Is_Sc=  Bugi}', "");
-    Expect(1, 6688, '\P{Is_Sc=  Bugi}', "");
-    Expect(0, 6688, '\P{^Is_Sc=  Bugi}', "");
-    Error('\p{Script=:=	Buhid}');
-    Error('\P{Script=:=	Buhid}');
+    Expect(1, 6687, '\p{Is_Sc=__Bugi}', "");
+    Expect(0, 6687, '\p{^Is_Sc=__Bugi}', "");
+    Expect(0, 6687, '\P{Is_Sc=__Bugi}', "");
+    Expect(1, 6687, '\P{^Is_Sc=__Bugi}', "");
+    Expect(0, 6688, '\p{Is_Sc=__Bugi}', "");
+    Expect(1, 6688, '\p{^Is_Sc=__Bugi}', "");
+    Expect(1, 6688, '\P{Is_Sc=__Bugi}', "");
+    Expect(0, 6688, '\P{^Is_Sc=__Bugi}', "");
+    Error('\p{Script= -BUHID:=}');
+    Error('\P{Script= -BUHID:=}');
     Expect(1, 5971, '\p{Script=:\ABuhid\z:}', "");;
     Expect(0, 5972, '\p{Script=:\ABuhid\z:}', "");;
     Expect(1, 5971, '\p{Script=buhid}', "");
@@ -129827,16 +131019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5972, '\P{^Script=buhid}', "");
     Expect(1, 5971, '\p{Script=:\Abuhid\z:}', "");;
     Expect(0, 5972, '\p{Script=:\Abuhid\z:}', "");;
-    Expect(1, 5971, '\p{Script: _Buhid}', "");
-    Expect(0, 5971, '\p{^Script: _Buhid}', "");
-    Expect(0, 5971, '\P{Script: _Buhid}', "");
-    Expect(1, 5971, '\P{^Script: _Buhid}', "");
-    Expect(0, 5972, '\p{Script: _Buhid}', "");
-    Expect(1, 5972, '\p{^Script: _Buhid}', "");
-    Expect(1, 5972, '\P{Script: _Buhid}', "");
-    Expect(0, 5972, '\P{^Script: _Buhid}', "");
-    Error('\p{Sc=/a/ Buhd}');
-    Error('\P{Sc=/a/ Buhd}');
+    Expect(1, 5971, '\p{Script=	Buhid}', "");
+    Expect(0, 5971, '\p{^Script=	Buhid}', "");
+    Expect(0, 5971, '\P{Script=	Buhid}', "");
+    Expect(1, 5971, '\P{^Script=	Buhid}', "");
+    Expect(0, 5972, '\p{Script=	Buhid}', "");
+    Expect(1, 5972, '\p{^Script=	Buhid}', "");
+    Expect(1, 5972, '\P{Script=	Buhid}', "");
+    Expect(0, 5972, '\P{^Script=	Buhid}', "");
+    Error('\p{Sc=-/a/Buhd}');
+    Error('\P{Sc=-/a/Buhd}');
     Expect(1, 5971, '\p{Sc=:\ABuhd\z:}', "");;
     Expect(0, 5972, '\p{Sc=:\ABuhd\z:}', "");;
     Expect(1, 5971, '\p{Sc=buhd}', "");
@@ -129849,34 +131041,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5972, '\P{^Sc=buhd}', "");
     Expect(1, 5971, '\p{Sc=:\Abuhd\z:}', "");;
     Expect(0, 5972, '\p{Sc=:\Abuhd\z:}', "");;
-    Expect(1, 5971, '\p{Sc=__BUHD}', "");
-    Expect(0, 5971, '\p{^Sc=__BUHD}', "");
-    Expect(0, 5971, '\P{Sc=__BUHD}', "");
-    Expect(1, 5971, '\P{^Sc=__BUHD}', "");
-    Expect(0, 5972, '\p{Sc=__BUHD}', "");
-    Expect(1, 5972, '\p{^Sc=__BUHD}', "");
-    Expect(1, 5972, '\P{Sc=__BUHD}', "");
-    Expect(0, 5972, '\P{^Sc=__BUHD}', "");
-    Error('\p{Is_Script=	Buhid/a/}');
-    Error('\P{Is_Script=	Buhid/a/}');
-    Expect(1, 5971, '\p{Is_Script:	buhid}', "");
-    Expect(0, 5971, '\p{^Is_Script:	buhid}', "");
-    Expect(0, 5971, '\P{Is_Script:	buhid}', "");
-    Expect(1, 5971, '\P{^Is_Script:	buhid}', "");
-    Expect(0, 5972, '\p{Is_Script:	buhid}', "");
-    Expect(1, 5972, '\p{^Is_Script:	buhid}', "");
-    Expect(1, 5972, '\P{Is_Script:	buhid}', "");
-    Expect(0, 5972, '\P{^Is_Script:	buhid}', "");
-    Expect(1, 5971, '\p{Is_Script=- BUHID}', "");
-    Expect(0, 5971, '\p{^Is_Script=- BUHID}', "");
-    Expect(0, 5971, '\P{Is_Script=- BUHID}', "");
-    Expect(1, 5971, '\P{^Is_Script=- BUHID}', "");
-    Expect(0, 5972, '\p{Is_Script=- BUHID}', "");
-    Expect(1, 5972, '\p{^Is_Script=- BUHID}', "");
-    Expect(1, 5972, '\P{Is_Script=- BUHID}', "");
-    Expect(0, 5972, '\P{^Is_Script=- BUHID}', "");
-    Error('\p{Is_Sc= :=Buhd}');
-    Error('\P{Is_Sc= :=Buhd}');
+    Expect(1, 5971, '\p{Sc:-Buhd}', "");
+    Expect(0, 5971, '\p{^Sc:-Buhd}', "");
+    Expect(0, 5971, '\P{Sc:-Buhd}', "");
+    Expect(1, 5971, '\P{^Sc:-Buhd}', "");
+    Expect(0, 5972, '\p{Sc:-Buhd}', "");
+    Expect(1, 5972, '\p{^Sc:-Buhd}', "");
+    Expect(1, 5972, '\P{Sc:-Buhd}', "");
+    Expect(0, 5972, '\P{^Sc:-Buhd}', "");
+    Error('\p{Is_Script=/a/_-Buhid}');
+    Error('\P{Is_Script=/a/_-Buhid}');
+    Expect(1, 5971, '\p{Is_Script=buhid}', "");
+    Expect(0, 5971, '\p{^Is_Script=buhid}', "");
+    Expect(0, 5971, '\P{Is_Script=buhid}', "");
+    Expect(1, 5971, '\P{^Is_Script=buhid}', "");
+    Expect(0, 5972, '\p{Is_Script=buhid}', "");
+    Expect(1, 5972, '\p{^Is_Script=buhid}', "");
+    Expect(1, 5972, '\P{Is_Script=buhid}', "");
+    Expect(0, 5972, '\P{^Is_Script=buhid}', "");
+    Expect(1, 5971, '\p{Is_Script=-	buhid}', "");
+    Expect(0, 5971, '\p{^Is_Script=-	buhid}', "");
+    Expect(0, 5971, '\P{Is_Script=-	buhid}', "");
+    Expect(1, 5971, '\P{^Is_Script=-	buhid}', "");
+    Expect(0, 5972, '\p{Is_Script=-	buhid}', "");
+    Expect(1, 5972, '\p{^Is_Script=-	buhid}', "");
+    Expect(1, 5972, '\P{Is_Script=-	buhid}', "");
+    Expect(0, 5972, '\P{^Is_Script=-	buhid}', "");
+    Error('\p{Is_Sc=_/a/buhd}');
+    Error('\P{Is_Sc=_/a/buhd}');
     Expect(1, 5971, '\p{Is_Sc=buhd}', "");
     Expect(0, 5971, '\p{^Is_Sc=buhd}', "");
     Expect(0, 5971, '\P{Is_Sc=buhd}', "");
@@ -129885,16 +131077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5972, '\p{^Is_Sc=buhd}', "");
     Expect(1, 5972, '\P{Is_Sc=buhd}', "");
     Expect(0, 5972, '\P{^Is_Sc=buhd}', "");
-    Expect(1, 5971, '\p{Is_Sc=_ BUHD}', "");
-    Expect(0, 5971, '\p{^Is_Sc=_ BUHD}', "");
-    Expect(0, 5971, '\P{Is_Sc=_ BUHD}', "");
-    Expect(1, 5971, '\P{^Is_Sc=_ BUHD}', "");
-    Expect(0, 5972, '\p{Is_Sc=_ BUHD}', "");
-    Expect(1, 5972, '\p{^Is_Sc=_ BUHD}', "");
-    Expect(1, 5972, '\P{Is_Sc=_ BUHD}', "");
-    Expect(0, 5972, '\P{^Is_Sc=_ BUHD}', "");
-    Error('\p{Script=Chakma:=}');
-    Error('\P{Script=Chakma:=}');
+    Expect(1, 5971, '\p{Is_Sc=Buhd}', "");
+    Expect(0, 5971, '\p{^Is_Sc=Buhd}', "");
+    Expect(0, 5971, '\P{Is_Sc=Buhd}', "");
+    Expect(1, 5971, '\P{^Is_Sc=Buhd}', "");
+    Expect(0, 5972, '\p{Is_Sc=Buhd}', "");
+    Expect(1, 5972, '\p{^Is_Sc=Buhd}', "");
+    Expect(1, 5972, '\P{Is_Sc=Buhd}', "");
+    Expect(0, 5972, '\P{^Is_Sc=Buhd}', "");
+    Error('\p{Script=:=	CHAKMA}');
+    Error('\P{Script=:=	CHAKMA}');
     Expect(1, 69959, '\p{Script=:\AChakma\z:}', "");;
     Expect(0, 69960, '\p{Script=:\AChakma\z:}', "");;
     Expect(1, 69959, '\p{Script=chakma}', "");
@@ -129907,16 +131099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69960, '\P{^Script=chakma}', "");
     Expect(1, 69959, '\p{Script=:\Achakma\z:}', "");;
     Expect(0, 69960, '\p{Script=:\Achakma\z:}', "");;
-    Expect(1, 69959, '\p{Script=		Chakma}', "");
-    Expect(0, 69959, '\p{^Script=		Chakma}', "");
-    Expect(0, 69959, '\P{Script=		Chakma}', "");
-    Expect(1, 69959, '\P{^Script=		Chakma}', "");
-    Expect(0, 69960, '\p{Script=		Chakma}', "");
-    Expect(1, 69960, '\p{^Script=		Chakma}', "");
-    Expect(1, 69960, '\P{Script=		Chakma}', "");
-    Expect(0, 69960, '\P{^Script=		Chakma}', "");
-    Error('\p{Sc=:=-Cakm}');
-    Error('\P{Sc=:=-Cakm}');
+    Expect(1, 69959, '\p{Script=	_Chakma}', "");
+    Expect(0, 69959, '\p{^Script=	_Chakma}', "");
+    Expect(0, 69959, '\P{Script=	_Chakma}', "");
+    Expect(1, 69959, '\P{^Script=	_Chakma}', "");
+    Expect(0, 69960, '\p{Script=	_Chakma}', "");
+    Expect(1, 69960, '\p{^Script=	_Chakma}', "");
+    Expect(1, 69960, '\P{Script=	_Chakma}', "");
+    Expect(0, 69960, '\P{^Script=	_Chakma}', "");
+    Error('\p{Sc=_Cakm:=}');
+    Error('\P{Sc=_Cakm:=}');
     Expect(1, 69959, '\p{Sc=:\ACakm\z:}', "");;
     Expect(0, 69960, '\p{Sc=:\ACakm\z:}', "");;
     Expect(1, 69959, '\p{Sc=cakm}', "");
@@ -129929,16 +131121,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69960, '\P{^Sc=cakm}', "");
     Expect(1, 69959, '\p{Sc=:\Acakm\z:}', "");;
     Expect(0, 69960, '\p{Sc=:\Acakm\z:}', "");;
-    Expect(1, 69959, '\p{Sc=_CAKM}', "");
-    Expect(0, 69959, '\p{^Sc=_CAKM}', "");
-    Expect(0, 69959, '\P{Sc=_CAKM}', "");
-    Expect(1, 69959, '\P{^Sc=_CAKM}', "");
-    Expect(0, 69960, '\p{Sc=_CAKM}', "");
-    Expect(1, 69960, '\p{^Sc=_CAKM}', "");
-    Expect(1, 69960, '\P{Sc=_CAKM}', "");
-    Expect(0, 69960, '\P{^Sc=_CAKM}', "");
-    Error('\p{Is_Script=:= 	chakma}');
-    Error('\P{Is_Script=:= 	chakma}');
+    Expect(1, 69959, '\p{Sc=		cakm}', "");
+    Expect(0, 69959, '\p{^Sc=		cakm}', "");
+    Expect(0, 69959, '\P{Sc=		cakm}', "");
+    Expect(1, 69959, '\P{^Sc=		cakm}', "");
+    Expect(0, 69960, '\p{Sc=		cakm}', "");
+    Expect(1, 69960, '\p{^Sc=		cakm}', "");
+    Expect(1, 69960, '\P{Sc=		cakm}', "");
+    Expect(0, 69960, '\P{^Sc=		cakm}', "");
+    Error('\p{Is_Script=:= CHAKMA}');
+    Error('\P{Is_Script=:= CHAKMA}');
     Expect(1, 69959, '\p{Is_Script=chakma}', "");
     Expect(0, 69959, '\p{^Is_Script=chakma}', "");
     Expect(0, 69959, '\P{Is_Script=chakma}', "");
@@ -129947,16 +131139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69960, '\p{^Is_Script=chakma}', "");
     Expect(1, 69960, '\P{Is_Script=chakma}', "");
     Expect(0, 69960, '\P{^Is_Script=chakma}', "");
-    Expect(1, 69959, '\p{Is_Script= 	Chakma}', "");
-    Expect(0, 69959, '\p{^Is_Script= 	Chakma}', "");
-    Expect(0, 69959, '\P{Is_Script= 	Chakma}', "");
-    Expect(1, 69959, '\P{^Is_Script= 	Chakma}', "");
-    Expect(0, 69960, '\p{Is_Script= 	Chakma}', "");
-    Expect(1, 69960, '\p{^Is_Script= 	Chakma}', "");
-    Expect(1, 69960, '\P{Is_Script= 	Chakma}', "");
-    Expect(0, 69960, '\P{^Is_Script= 	Chakma}', "");
-    Error('\p{Is_Sc=:=	cakm}');
-    Error('\P{Is_Sc=:=	cakm}');
+    Expect(1, 69959, '\p{Is_Script=_ Chakma}', "");
+    Expect(0, 69959, '\p{^Is_Script=_ Chakma}', "");
+    Expect(0, 69959, '\P{Is_Script=_ Chakma}', "");
+    Expect(1, 69959, '\P{^Is_Script=_ Chakma}', "");
+    Expect(0, 69960, '\p{Is_Script=_ Chakma}', "");
+    Expect(1, 69960, '\p{^Is_Script=_ Chakma}', "");
+    Expect(1, 69960, '\P{Is_Script=_ Chakma}', "");
+    Expect(0, 69960, '\P{^Is_Script=_ Chakma}', "");
+    Error('\p{Is_Sc=/a/		Cakm}');
+    Error('\P{Is_Sc=/a/		Cakm}');
     Expect(1, 69959, '\p{Is_Sc=cakm}', "");
     Expect(0, 69959, '\p{^Is_Sc=cakm}', "");
     Expect(0, 69959, '\P{Is_Sc=cakm}', "");
@@ -129965,16 +131157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69960, '\p{^Is_Sc=cakm}', "");
     Expect(1, 69960, '\P{Is_Sc=cakm}', "");
     Expect(0, 69960, '\P{^Is_Sc=cakm}', "");
-    Expect(1, 69959, '\p{Is_Sc=		Cakm}', "");
-    Expect(0, 69959, '\p{^Is_Sc=		Cakm}', "");
-    Expect(0, 69959, '\P{Is_Sc=		Cakm}', "");
-    Expect(1, 69959, '\P{^Is_Sc=		Cakm}', "");
-    Expect(0, 69960, '\p{Is_Sc=		Cakm}', "");
-    Expect(1, 69960, '\p{^Is_Sc=		Cakm}', "");
-    Expect(1, 69960, '\P{Is_Sc=		Cakm}', "");
-    Expect(0, 69960, '\P{^Is_Sc=		Cakm}', "");
-    Error('\p{Script=:=		CANADIAN_Aboriginal}');
-    Error('\P{Script=:=		CANADIAN_Aboriginal}');
+    Expect(1, 69959, '\p{Is_Sc:	 	CAKM}', "");
+    Expect(0, 69959, '\p{^Is_Sc:	 	CAKM}', "");
+    Expect(0, 69959, '\P{Is_Sc:	 	CAKM}', "");
+    Expect(1, 69959, '\P{^Is_Sc:	 	CAKM}', "");
+    Expect(0, 69960, '\p{Is_Sc:	 	CAKM}', "");
+    Expect(1, 69960, '\p{^Is_Sc:	 	CAKM}', "");
+    Expect(1, 69960, '\P{Is_Sc:	 	CAKM}', "");
+    Expect(0, 69960, '\P{^Is_Sc:	 	CAKM}', "");
+    Error('\p{Script= /a/canadian_ABORIGINAL}');
+    Error('\P{Script= /a/canadian_ABORIGINAL}');
     Expect(1, 72383, '\p{Script=:\ACanadian_Aboriginal\z:}', "");;
     Expect(0, 72384, '\p{Script=:\ACanadian_Aboriginal\z:}', "");;
     Expect(1, 72383, '\p{Script=canadianaboriginal}', "");
@@ -129987,16 +131179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72384, '\P{^Script=canadianaboriginal}', "");
     Expect(1, 72383, '\p{Script=:\Acanadianaboriginal\z:}', "");;
     Expect(0, 72384, '\p{Script=:\Acanadianaboriginal\z:}', "");;
-    Expect(1, 72383, '\p{Script=	canadian_ABORIGINAL}', "");
-    Expect(0, 72383, '\p{^Script=	canadian_ABORIGINAL}', "");
-    Expect(0, 72383, '\P{Script=	canadian_ABORIGINAL}', "");
-    Expect(1, 72383, '\P{^Script=	canadian_ABORIGINAL}', "");
-    Expect(0, 72384, '\p{Script=	canadian_ABORIGINAL}', "");
-    Expect(1, 72384, '\p{^Script=	canadian_ABORIGINAL}', "");
-    Expect(1, 72384, '\P{Script=	canadian_ABORIGINAL}', "");
-    Expect(0, 72384, '\P{^Script=	canadian_ABORIGINAL}', "");
-    Error('\p{Sc=/a/-Cans}');
-    Error('\P{Sc=/a/-Cans}');
+    Expect(1, 72383, '\p{Script:	-Canadian_Aboriginal}', "");
+    Expect(0, 72383, '\p{^Script:	-Canadian_Aboriginal}', "");
+    Expect(0, 72383, '\P{Script:	-Canadian_Aboriginal}', "");
+    Expect(1, 72383, '\P{^Script:	-Canadian_Aboriginal}', "");
+    Expect(0, 72384, '\p{Script:	-Canadian_Aboriginal}', "");
+    Expect(1, 72384, '\p{^Script:	-Canadian_Aboriginal}', "");
+    Expect(1, 72384, '\P{Script:	-Canadian_Aboriginal}', "");
+    Expect(0, 72384, '\P{^Script:	-Canadian_Aboriginal}', "");
+    Error('\p{Sc=	CANS:=}');
+    Error('\P{Sc=	CANS:=}');
     Expect(1, 72383, '\p{Sc=:\ACans\z:}', "");;
     Expect(0, 72384, '\p{Sc=:\ACans\z:}', "");;
     Expect(1, 72383, '\p{Sc=cans}', "");
@@ -130009,16 +131201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72384, '\P{^Sc=cans}', "");
     Expect(1, 72383, '\p{Sc=:\Acans\z:}', "");;
     Expect(0, 72384, '\p{Sc=:\Acans\z:}', "");;
-    Expect(1, 72383, '\p{Sc=_	Cans}', "");
-    Expect(0, 72383, '\p{^Sc=_	Cans}', "");
-    Expect(0, 72383, '\P{Sc=_	Cans}', "");
-    Expect(1, 72383, '\P{^Sc=_	Cans}', "");
-    Expect(0, 72384, '\p{Sc=_	Cans}', "");
-    Expect(1, 72384, '\p{^Sc=_	Cans}', "");
-    Expect(1, 72384, '\P{Sc=_	Cans}', "");
-    Expect(0, 72384, '\P{^Sc=_	Cans}', "");
-    Error('\p{Is_Script:   -Canadian_aboriginal/a/}');
-    Error('\P{Is_Script:   -Canadian_aboriginal/a/}');
+    Expect(1, 72383, '\p{Sc= cans}', "");
+    Expect(0, 72383, '\p{^Sc= cans}', "");
+    Expect(0, 72383, '\P{Sc= cans}', "");
+    Expect(1, 72383, '\P{^Sc= cans}', "");
+    Expect(0, 72384, '\p{Sc= cans}', "");
+    Expect(1, 72384, '\p{^Sc= cans}', "");
+    Expect(1, 72384, '\P{Sc= cans}', "");
+    Expect(0, 72384, '\P{^Sc= cans}', "");
+    Error('\p{Is_Script=_:=Canadian_Aboriginal}');
+    Error('\P{Is_Script=_:=Canadian_Aboriginal}');
     Expect(1, 72383, '\p{Is_Script=canadianaboriginal}', "");
     Expect(0, 72383, '\p{^Is_Script=canadianaboriginal}', "");
     Expect(0, 72383, '\P{Is_Script=canadianaboriginal}', "");
@@ -130027,16 +131219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^Is_Script=canadianaboriginal}', "");
     Expect(1, 72384, '\P{Is_Script=canadianaboriginal}', "");
     Expect(0, 72384, '\P{^Is_Script=canadianaboriginal}', "");
-    Expect(1, 72383, '\p{Is_Script=	 Canadian_aboriginal}', "");
-    Expect(0, 72383, '\p{^Is_Script=	 Canadian_aboriginal}', "");
-    Expect(0, 72383, '\P{Is_Script=	 Canadian_aboriginal}', "");
-    Expect(1, 72383, '\P{^Is_Script=	 Canadian_aboriginal}', "");
-    Expect(0, 72384, '\p{Is_Script=	 Canadian_aboriginal}', "");
-    Expect(1, 72384, '\p{^Is_Script=	 Canadian_aboriginal}', "");
-    Expect(1, 72384, '\P{Is_Script=	 Canadian_aboriginal}', "");
-    Expect(0, 72384, '\P{^Is_Script=	 Canadian_aboriginal}', "");
-    Error('\p{Is_Sc=	/a/Cans}');
-    Error('\P{Is_Sc=	/a/Cans}');
+    Expect(1, 72383, '\p{Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(0, 72383, '\p{^Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(0, 72383, '\P{Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(1, 72383, '\P{^Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(0, 72384, '\p{Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(1, 72384, '\p{^Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(1, 72384, '\P{Is_Script=-_CANADIAN_aboriginal}', "");
+    Expect(0, 72384, '\P{^Is_Script=-_CANADIAN_aboriginal}', "");
+    Error('\p{Is_Sc=_:=cans}');
+    Error('\P{Is_Sc=_:=cans}');
     Expect(1, 72383, '\p{Is_Sc=cans}', "");
     Expect(0, 72383, '\p{^Is_Sc=cans}', "");
     Expect(0, 72383, '\P{Is_Sc=cans}', "");
@@ -130045,16 +131237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^Is_Sc=cans}', "");
     Expect(1, 72384, '\P{Is_Sc=cans}', "");
     Expect(0, 72384, '\P{^Is_Sc=cans}', "");
-    Expect(1, 72383, '\p{Is_Sc=__CANS}', "");
-    Expect(0, 72383, '\p{^Is_Sc=__CANS}', "");
-    Expect(0, 72383, '\P{Is_Sc=__CANS}', "");
-    Expect(1, 72383, '\P{^Is_Sc=__CANS}', "");
-    Expect(0, 72384, '\p{Is_Sc=__CANS}', "");
-    Expect(1, 72384, '\p{^Is_Sc=__CANS}', "");
-    Expect(1, 72384, '\P{Is_Sc=__CANS}', "");
-    Expect(0, 72384, '\P{^Is_Sc=__CANS}', "");
-    Error('\p{Script=/a/_CARIAN}');
-    Error('\P{Script=/a/_CARIAN}');
+    Expect(1, 72383, '\p{Is_Sc=-	Cans}', "");
+    Expect(0, 72383, '\p{^Is_Sc=-	Cans}', "");
+    Expect(0, 72383, '\P{Is_Sc=-	Cans}', "");
+    Expect(1, 72383, '\P{^Is_Sc=-	Cans}', "");
+    Expect(0, 72384, '\p{Is_Sc=-	Cans}', "");
+    Expect(1, 72384, '\p{^Is_Sc=-	Cans}', "");
+    Expect(1, 72384, '\P{Is_Sc=-	Cans}', "");
+    Expect(0, 72384, '\P{^Is_Sc=-	Cans}', "");
+    Error('\p{Script= _carian:=}');
+    Error('\P{Script= _carian:=}');
     Expect(1, 66256, '\p{Script=:\ACarian\z:}', "");;
     Expect(0, 66257, '\p{Script=:\ACarian\z:}', "");;
     Expect(1, 66256, '\p{Script=carian}', "");
@@ -130067,16 +131259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66257, '\P{^Script=carian}', "");
     Expect(1, 66256, '\p{Script=:\Acarian\z:}', "");;
     Expect(0, 66257, '\p{Script=:\Acarian\z:}', "");;
-    Expect(1, 66256, '\p{Script: --CARIAN}', "");
-    Expect(0, 66256, '\p{^Script: --CARIAN}', "");
-    Expect(0, 66256, '\P{Script: --CARIAN}', "");
-    Expect(1, 66256, '\P{^Script: --CARIAN}', "");
-    Expect(0, 66257, '\p{Script: --CARIAN}', "");
-    Expect(1, 66257, '\p{^Script: --CARIAN}', "");
-    Expect(1, 66257, '\P{Script: --CARIAN}', "");
-    Expect(0, 66257, '\P{^Script: --CARIAN}', "");
-    Error('\p{Sc=-_Cari:=}');
-    Error('\P{Sc=-_Cari:=}');
+    Expect(1, 66256, '\p{Script=	carian}', "");
+    Expect(0, 66256, '\p{^Script=	carian}', "");
+    Expect(0, 66256, '\P{Script=	carian}', "");
+    Expect(1, 66256, '\P{^Script=	carian}', "");
+    Expect(0, 66257, '\p{Script=	carian}', "");
+    Expect(1, 66257, '\p{^Script=	carian}', "");
+    Expect(1, 66257, '\P{Script=	carian}', "");
+    Expect(0, 66257, '\P{^Script=	carian}', "");
+    Error('\p{Sc=:=CARI}');
+    Error('\P{Sc=:=CARI}');
     Expect(1, 66256, '\p{Sc=:\ACari\z:}', "");;
     Expect(0, 66257, '\p{Sc=:\ACari\z:}', "");;
     Expect(1, 66256, '\p{Sc=cari}', "");
@@ -130089,16 +131281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66257, '\P{^Sc=cari}', "");
     Expect(1, 66256, '\p{Sc=:\Acari\z:}', "");;
     Expect(0, 66257, '\p{Sc=:\Acari\z:}', "");;
-    Expect(1, 66256, '\p{Sc=-	cari}', "");
-    Expect(0, 66256, '\p{^Sc=-	cari}', "");
-    Expect(0, 66256, '\P{Sc=-	cari}', "");
-    Expect(1, 66256, '\P{^Sc=-	cari}', "");
-    Expect(0, 66257, '\p{Sc=-	cari}', "");
-    Expect(1, 66257, '\p{^Sc=-	cari}', "");
-    Expect(1, 66257, '\P{Sc=-	cari}', "");
-    Expect(0, 66257, '\P{^Sc=-	cari}', "");
-    Error('\p{Is_Script=	Carian/a/}');
-    Error('\P{Is_Script=	Carian/a/}');
+    Expect(1, 66256, '\p{Sc=_	Cari}', "");
+    Expect(0, 66256, '\p{^Sc=_	Cari}', "");
+    Expect(0, 66256, '\P{Sc=_	Cari}', "");
+    Expect(1, 66256, '\P{^Sc=_	Cari}', "");
+    Expect(0, 66257, '\p{Sc=_	Cari}', "");
+    Expect(1, 66257, '\p{^Sc=_	Cari}', "");
+    Expect(1, 66257, '\P{Sc=_	Cari}', "");
+    Expect(0, 66257, '\P{^Sc=_	Cari}', "");
+    Error('\p{Is_Script:	/a/carian}');
+    Error('\P{Is_Script:	/a/carian}');
     Expect(1, 66256, '\p{Is_Script=carian}', "");
     Expect(0, 66256, '\p{^Is_Script=carian}', "");
     Expect(0, 66256, '\P{Is_Script=carian}', "");
@@ -130107,16 +131299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66257, '\p{^Is_Script=carian}', "");
     Expect(1, 66257, '\P{Is_Script=carian}', "");
     Expect(0, 66257, '\P{^Is_Script=carian}', "");
-    Expect(1, 66256, '\p{Is_Script=--carian}', "");
-    Expect(0, 66256, '\p{^Is_Script=--carian}', "");
-    Expect(0, 66256, '\P{Is_Script=--carian}', "");
-    Expect(1, 66256, '\P{^Is_Script=--carian}', "");
-    Expect(0, 66257, '\p{Is_Script=--carian}', "");
-    Expect(1, 66257, '\p{^Is_Script=--carian}', "");
-    Expect(1, 66257, '\P{Is_Script=--carian}', "");
-    Expect(0, 66257, '\P{^Is_Script=--carian}', "");
-    Error('\p{Is_Sc= :=cari}');
-    Error('\P{Is_Sc= :=cari}');
+    Expect(1, 66256, '\p{Is_Script=Carian}', "");
+    Expect(0, 66256, '\p{^Is_Script=Carian}', "");
+    Expect(0, 66256, '\P{Is_Script=Carian}', "");
+    Expect(1, 66256, '\P{^Is_Script=Carian}', "");
+    Expect(0, 66257, '\p{Is_Script=Carian}', "");
+    Expect(1, 66257, '\p{^Is_Script=Carian}', "");
+    Expect(1, 66257, '\P{Is_Script=Carian}', "");
+    Expect(0, 66257, '\P{^Is_Script=Carian}', "");
+    Error('\p{Is_Sc=_cari/a/}');
+    Error('\P{Is_Sc=_cari/a/}');
     Expect(1, 66256, '\p{Is_Sc=cari}', "");
     Expect(0, 66256, '\p{^Is_Sc=cari}', "");
     Expect(0, 66256, '\P{Is_Sc=cari}', "");
@@ -130125,16 +131317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66257, '\p{^Is_Sc=cari}', "");
     Expect(1, 66257, '\P{Is_Sc=cari}', "");
     Expect(0, 66257, '\P{^Is_Sc=cari}', "");
-    Expect(1, 66256, '\p{Is_Sc= 	Cari}', "");
-    Expect(0, 66256, '\p{^Is_Sc= 	Cari}', "");
-    Expect(0, 66256, '\P{Is_Sc= 	Cari}', "");
-    Expect(1, 66256, '\P{^Is_Sc= 	Cari}', "");
-    Expect(0, 66257, '\p{Is_Sc= 	Cari}', "");
-    Expect(1, 66257, '\p{^Is_Sc= 	Cari}', "");
-    Expect(1, 66257, '\P{Is_Sc= 	Cari}', "");
-    Expect(0, 66257, '\P{^Is_Sc= 	Cari}', "");
-    Error('\p{Script=:=-cham}');
-    Error('\P{Script=:=-cham}');
+    Expect(1, 66256, '\p{Is_Sc=_-Cari}', "");
+    Expect(0, 66256, '\p{^Is_Sc=_-Cari}', "");
+    Expect(0, 66256, '\P{Is_Sc=_-Cari}', "");
+    Expect(1, 66256, '\P{^Is_Sc=_-Cari}', "");
+    Expect(0, 66257, '\p{Is_Sc=_-Cari}', "");
+    Expect(1, 66257, '\p{^Is_Sc=_-Cari}', "");
+    Expect(1, 66257, '\P{Is_Sc=_-Cari}', "");
+    Expect(0, 66257, '\P{^Is_Sc=_-Cari}', "");
+    Error('\p{Script=/a/ 	Cham}');
+    Error('\P{Script=/a/ 	Cham}');
     Expect(1, 43615, '\p{Script=:\ACham\z:}', "");;
     Expect(0, 43616, '\p{Script=:\ACham\z:}', "");;
     Expect(1, 43615, '\p{Script=cham}', "");
@@ -130147,16 +131339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43616, '\P{^Script=cham}', "");
     Expect(1, 43615, '\p{Script=:\Acham\z:}', "");;
     Expect(0, 43616, '\p{Script=:\Acham\z:}', "");;
-    Expect(1, 43615, '\p{Script=- Cham}', "");
-    Expect(0, 43615, '\p{^Script=- Cham}', "");
-    Expect(0, 43615, '\P{Script=- Cham}', "");
-    Expect(1, 43615, '\P{^Script=- Cham}', "");
-    Expect(0, 43616, '\p{Script=- Cham}', "");
-    Expect(1, 43616, '\p{^Script=- Cham}', "");
-    Expect(1, 43616, '\P{Script=- Cham}', "");
-    Expect(0, 43616, '\P{^Script=- Cham}', "");
-    Error('\p{Sc=_:=cham}');
-    Error('\P{Sc=_:=cham}');
+    Expect(1, 43615, '\p{Script:	--cham}', "");
+    Expect(0, 43615, '\p{^Script:	--cham}', "");
+    Expect(0, 43615, '\P{Script:	--cham}', "");
+    Expect(1, 43615, '\P{^Script:	--cham}', "");
+    Expect(0, 43616, '\p{Script:	--cham}', "");
+    Expect(1, 43616, '\p{^Script:	--cham}', "");
+    Expect(1, 43616, '\P{Script:	--cham}', "");
+    Expect(0, 43616, '\P{^Script:	--cham}', "");
+    Error('\p{Sc=:=_Cham}');
+    Error('\P{Sc=:=_Cham}');
     Expect(1, 43615, '\p{Sc=:\ACham\z:}', "");;
     Expect(0, 43616, '\p{Sc=:\ACham\z:}', "");;
     Expect(1, 43615, '\p{Sc=cham}', "");
@@ -130169,16 +131361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43616, '\P{^Sc=cham}', "");
     Expect(1, 43615, '\p{Sc=:\Acham\z:}', "");;
     Expect(0, 43616, '\p{Sc=:\Acham\z:}', "");;
-    Expect(1, 43615, '\p{Sc=-CHAM}', "");
-    Expect(0, 43615, '\p{^Sc=-CHAM}', "");
-    Expect(0, 43615, '\P{Sc=-CHAM}', "");
-    Expect(1, 43615, '\P{^Sc=-CHAM}', "");
-    Expect(0, 43616, '\p{Sc=-CHAM}', "");
-    Expect(1, 43616, '\p{^Sc=-CHAM}', "");
-    Expect(1, 43616, '\P{Sc=-CHAM}', "");
-    Expect(0, 43616, '\P{^Sc=-CHAM}', "");
-    Error('\p{Is_Script= 	Cham:=}');
-    Error('\P{Is_Script= 	Cham:=}');
+    Expect(1, 43615, '\p{Sc=_cham}', "");
+    Expect(0, 43615, '\p{^Sc=_cham}', "");
+    Expect(0, 43615, '\P{Sc=_cham}', "");
+    Expect(1, 43615, '\P{^Sc=_cham}', "");
+    Expect(0, 43616, '\p{Sc=_cham}', "");
+    Expect(1, 43616, '\p{^Sc=_cham}', "");
+    Expect(1, 43616, '\P{Sc=_cham}', "");
+    Expect(0, 43616, '\P{^Sc=_cham}', "");
+    Error('\p{Is_Script=_:=CHAM}');
+    Error('\P{Is_Script=_:=CHAM}');
     Expect(1, 43615, '\p{Is_Script=cham}', "");
     Expect(0, 43615, '\p{^Is_Script=cham}', "");
     Expect(0, 43615, '\P{Is_Script=cham}', "");
@@ -130187,16 +131379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43616, '\p{^Is_Script=cham}', "");
     Expect(1, 43616, '\P{Is_Script=cham}', "");
     Expect(0, 43616, '\P{^Is_Script=cham}', "");
-    Expect(1, 43615, '\p{Is_Script=- CHAM}', "");
-    Expect(0, 43615, '\p{^Is_Script=- CHAM}', "");
-    Expect(0, 43615, '\P{Is_Script=- CHAM}', "");
-    Expect(1, 43615, '\P{^Is_Script=- CHAM}', "");
-    Expect(0, 43616, '\p{Is_Script=- CHAM}', "");
-    Expect(1, 43616, '\p{^Is_Script=- CHAM}', "");
-    Expect(1, 43616, '\P{Is_Script=- CHAM}', "");
-    Expect(0, 43616, '\P{^Is_Script=- CHAM}', "");
-    Error('\p{Is_Sc=_/a/Cham}');
-    Error('\P{Is_Sc=_/a/Cham}');
+    Expect(1, 43615, '\p{Is_Script=_ Cham}', "");
+    Expect(0, 43615, '\p{^Is_Script=_ Cham}', "");
+    Expect(0, 43615, '\P{Is_Script=_ Cham}', "");
+    Expect(1, 43615, '\P{^Is_Script=_ Cham}', "");
+    Expect(0, 43616, '\p{Is_Script=_ Cham}', "");
+    Expect(1, 43616, '\p{^Is_Script=_ Cham}', "");
+    Expect(1, 43616, '\P{Is_Script=_ Cham}', "");
+    Expect(0, 43616, '\P{^Is_Script=_ Cham}', "");
+    Error('\p{Is_Sc=:=_Cham}');
+    Error('\P{Is_Sc=:=_Cham}');
     Expect(1, 43615, '\p{Is_Sc=cham}', "");
     Expect(0, 43615, '\p{^Is_Sc=cham}', "");
     Expect(0, 43615, '\P{Is_Sc=cham}', "");
@@ -130205,16 +131397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43616, '\p{^Is_Sc=cham}', "");
     Expect(1, 43616, '\P{Is_Sc=cham}', "");
     Expect(0, 43616, '\P{^Is_Sc=cham}', "");
-    Expect(1, 43615, '\p{Is_Sc= -Cham}', "");
-    Expect(0, 43615, '\p{^Is_Sc= -Cham}', "");
-    Expect(0, 43615, '\P{Is_Sc= -Cham}', "");
-    Expect(1, 43615, '\P{^Is_Sc= -Cham}', "");
-    Expect(0, 43616, '\p{Is_Sc= -Cham}', "");
-    Expect(1, 43616, '\p{^Is_Sc= -Cham}', "");
-    Expect(1, 43616, '\P{Is_Sc= -Cham}', "");
-    Expect(0, 43616, '\P{^Is_Sc= -Cham}', "");
-    Error('\p{Script=--Cherokee:=}');
-    Error('\P{Script=--Cherokee:=}');
+    Expect(1, 43615, '\p{Is_Sc=_	cham}', "");
+    Expect(0, 43615, '\p{^Is_Sc=_	cham}', "");
+    Expect(0, 43615, '\P{Is_Sc=_	cham}', "");
+    Expect(1, 43615, '\P{^Is_Sc=_	cham}', "");
+    Expect(0, 43616, '\p{Is_Sc=_	cham}', "");
+    Expect(1, 43616, '\p{^Is_Sc=_	cham}', "");
+    Expect(1, 43616, '\P{Is_Sc=_	cham}', "");
+    Expect(0, 43616, '\P{^Is_Sc=_	cham}', "");
+    Error('\p{Script=	 Cherokee/a/}');
+    Error('\P{Script=	 Cherokee/a/}');
     Expect(1, 43967, '\p{Script=:\ACherokee\z:}', "");;
     Expect(0, 43968, '\p{Script=:\ACherokee\z:}', "");;
     Expect(1, 43967, '\p{Script=cherokee}', "");
@@ -130227,16 +131419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43968, '\P{^Script=cherokee}', "");
     Expect(1, 43967, '\p{Script=:\Acherokee\z:}', "");;
     Expect(0, 43968, '\p{Script=:\Acherokee\z:}', "");;
-    Expect(1, 43967, '\p{Script=		Cherokee}', "");
-    Expect(0, 43967, '\p{^Script=		Cherokee}', "");
-    Expect(0, 43967, '\P{Script=		Cherokee}', "");
-    Expect(1, 43967, '\P{^Script=		Cherokee}', "");
-    Expect(0, 43968, '\p{Script=		Cherokee}', "");
-    Expect(1, 43968, '\p{^Script=		Cherokee}', "");
-    Expect(1, 43968, '\P{Script=		Cherokee}', "");
-    Expect(0, 43968, '\P{^Script=		Cherokee}', "");
-    Error('\p{Sc=:=- Cher}');
-    Error('\P{Sc=:=- Cher}');
+    Expect(1, 43967, '\p{Script= _CHEROKEE}', "");
+    Expect(0, 43967, '\p{^Script= _CHEROKEE}', "");
+    Expect(0, 43967, '\P{Script= _CHEROKEE}', "");
+    Expect(1, 43967, '\P{^Script= _CHEROKEE}', "");
+    Expect(0, 43968, '\p{Script= _CHEROKEE}', "");
+    Expect(1, 43968, '\p{^Script= _CHEROKEE}', "");
+    Expect(1, 43968, '\P{Script= _CHEROKEE}', "");
+    Expect(0, 43968, '\P{^Script= _CHEROKEE}', "");
+    Error('\p{Sc=/a/_	CHER}');
+    Error('\P{Sc=/a/_	CHER}');
     Expect(1, 43967, '\p{Sc=:\ACher\z:}', "");;
     Expect(0, 43968, '\p{Sc=:\ACher\z:}', "");;
     Expect(1, 43967, '\p{Sc=cher}', "");
@@ -130249,16 +131441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43968, '\P{^Sc=cher}', "");
     Expect(1, 43967, '\p{Sc=:\Acher\z:}', "");;
     Expect(0, 43968, '\p{Sc=:\Acher\z:}', "");;
-    Expect(1, 43967, '\p{Sc=CHER}', "");
-    Expect(0, 43967, '\p{^Sc=CHER}', "");
-    Expect(0, 43967, '\P{Sc=CHER}', "");
-    Expect(1, 43967, '\P{^Sc=CHER}', "");
-    Expect(0, 43968, '\p{Sc=CHER}', "");
-    Expect(1, 43968, '\p{^Sc=CHER}', "");
-    Expect(1, 43968, '\P{Sc=CHER}', "");
-    Expect(0, 43968, '\P{^Sc=CHER}', "");
-    Error('\p{Is_Script=/a/_ CHEROKEE}');
-    Error('\P{Is_Script=/a/_ CHEROKEE}');
+    Expect(1, 43967, '\p{Sc=_	Cher}', "");
+    Expect(0, 43967, '\p{^Sc=_	Cher}', "");
+    Expect(0, 43967, '\P{Sc=_	Cher}', "");
+    Expect(1, 43967, '\P{^Sc=_	Cher}', "");
+    Expect(0, 43968, '\p{Sc=_	Cher}', "");
+    Expect(1, 43968, '\p{^Sc=_	Cher}', "");
+    Expect(1, 43968, '\P{Sc=_	Cher}', "");
+    Expect(0, 43968, '\P{^Sc=_	Cher}', "");
+    Error('\p{Is_Script:   :=_ Cherokee}');
+    Error('\P{Is_Script:   :=_ Cherokee}');
     Expect(1, 43967, '\p{Is_Script=cherokee}', "");
     Expect(0, 43967, '\p{^Is_Script=cherokee}', "");
     Expect(0, 43967, '\P{Is_Script=cherokee}', "");
@@ -130267,34 +131459,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43968, '\p{^Is_Script=cherokee}', "");
     Expect(1, 43968, '\P{Is_Script=cherokee}', "");
     Expect(0, 43968, '\P{^Is_Script=cherokee}', "");
-    Expect(1, 43967, '\p{Is_Script=	-Cherokee}', "");
-    Expect(0, 43967, '\p{^Is_Script=	-Cherokee}', "");
-    Expect(0, 43967, '\P{Is_Script=	-Cherokee}', "");
-    Expect(1, 43967, '\P{^Is_Script=	-Cherokee}', "");
-    Expect(0, 43968, '\p{Is_Script=	-Cherokee}', "");
-    Expect(1, 43968, '\p{^Is_Script=	-Cherokee}', "");
-    Expect(1, 43968, '\P{Is_Script=	-Cherokee}', "");
-    Expect(0, 43968, '\P{^Is_Script=	-Cherokee}', "");
-    Error('\p{Is_Sc=__CHER/a/}');
-    Error('\P{Is_Sc=__CHER/a/}');
-    Expect(1, 43967, '\p{Is_Sc: cher}', "");
-    Expect(0, 43967, '\p{^Is_Sc: cher}', "");
-    Expect(0, 43967, '\P{Is_Sc: cher}', "");
-    Expect(1, 43967, '\P{^Is_Sc: cher}', "");
-    Expect(0, 43968, '\p{Is_Sc: cher}', "");
-    Expect(1, 43968, '\p{^Is_Sc: cher}', "");
-    Expect(1, 43968, '\P{Is_Sc: cher}', "");
-    Expect(0, 43968, '\P{^Is_Sc: cher}', "");
-    Expect(1, 43967, '\p{Is_Sc=-Cher}', "");
-    Expect(0, 43967, '\p{^Is_Sc=-Cher}', "");
-    Expect(0, 43967, '\P{Is_Sc=-Cher}', "");
-    Expect(1, 43967, '\P{^Is_Sc=-Cher}', "");
-    Expect(0, 43968, '\p{Is_Sc=-Cher}', "");
-    Expect(1, 43968, '\p{^Is_Sc=-Cher}', "");
-    Expect(1, 43968, '\P{Is_Sc=-Cher}', "");
-    Expect(0, 43968, '\P{^Is_Sc=-Cher}', "");
-    Error('\p{Script=/a/ _Chorasmian}');
-    Error('\P{Script=/a/ _Chorasmian}');
+    Expect(1, 43967, '\p{Is_Script=-	CHEROKEE}', "");
+    Expect(0, 43967, '\p{^Is_Script=-	CHEROKEE}', "");
+    Expect(0, 43967, '\P{Is_Script=-	CHEROKEE}', "");
+    Expect(1, 43967, '\P{^Is_Script=-	CHEROKEE}', "");
+    Expect(0, 43968, '\p{Is_Script=-	CHEROKEE}', "");
+    Expect(1, 43968, '\p{^Is_Script=-	CHEROKEE}', "");
+    Expect(1, 43968, '\P{Is_Script=-	CHEROKEE}', "");
+    Expect(0, 43968, '\P{^Is_Script=-	CHEROKEE}', "");
+    Error('\p{Is_Sc=/a/_CHER}');
+    Error('\P{Is_Sc=/a/_CHER}');
+    Expect(1, 43967, '\p{Is_Sc=cher}', "");
+    Expect(0, 43967, '\p{^Is_Sc=cher}', "");
+    Expect(0, 43967, '\P{Is_Sc=cher}', "");
+    Expect(1, 43967, '\P{^Is_Sc=cher}', "");
+    Expect(0, 43968, '\p{Is_Sc=cher}', "");
+    Expect(1, 43968, '\p{^Is_Sc=cher}', "");
+    Expect(1, 43968, '\P{Is_Sc=cher}', "");
+    Expect(0, 43968, '\P{^Is_Sc=cher}', "");
+    Expect(1, 43967, '\p{Is_Sc=	_cher}', "");
+    Expect(0, 43967, '\p{^Is_Sc=	_cher}', "");
+    Expect(0, 43967, '\P{Is_Sc=	_cher}', "");
+    Expect(1, 43967, '\P{^Is_Sc=	_cher}', "");
+    Expect(0, 43968, '\p{Is_Sc=	_cher}', "");
+    Expect(1, 43968, '\p{^Is_Sc=	_cher}', "");
+    Expect(1, 43968, '\P{Is_Sc=	_cher}', "");
+    Expect(0, 43968, '\P{^Is_Sc=	_cher}', "");
+    Error('\p{Script=/a/_Chorasmian}');
+    Error('\P{Script=/a/_Chorasmian}');
     Expect(1, 69579, '\p{Script=:\AChorasmian\z:}', "");;
     Expect(0, 69580, '\p{Script=:\AChorasmian\z:}', "");;
     Expect(1, 69579, '\p{Script=chorasmian}', "");
@@ -130307,16 +131499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69580, '\P{^Script=chorasmian}', "");
     Expect(1, 69579, '\p{Script=:\Achorasmian\z:}', "");;
     Expect(0, 69580, '\p{Script=:\Achorasmian\z:}', "");;
-    Expect(1, 69579, '\p{Script=CHORASMIAN}', "");
-    Expect(0, 69579, '\p{^Script=CHORASMIAN}', "");
-    Expect(0, 69579, '\P{Script=CHORASMIAN}', "");
-    Expect(1, 69579, '\P{^Script=CHORASMIAN}', "");
-    Expect(0, 69580, '\p{Script=CHORASMIAN}', "");
-    Expect(1, 69580, '\p{^Script=CHORASMIAN}', "");
-    Expect(1, 69580, '\P{Script=CHORASMIAN}', "");
-    Expect(0, 69580, '\P{^Script=CHORASMIAN}', "");
-    Error('\p{Sc=/a/	-Chrs}');
-    Error('\P{Sc=/a/	-Chrs}');
+    Expect(1, 69579, '\p{Script=	_Chorasmian}', "");
+    Expect(0, 69579, '\p{^Script=	_Chorasmian}', "");
+    Expect(0, 69579, '\P{Script=	_Chorasmian}', "");
+    Expect(1, 69579, '\P{^Script=	_Chorasmian}', "");
+    Expect(0, 69580, '\p{Script=	_Chorasmian}', "");
+    Expect(1, 69580, '\p{^Script=	_Chorasmian}', "");
+    Expect(1, 69580, '\P{Script=	_Chorasmian}', "");
+    Expect(0, 69580, '\P{^Script=	_Chorasmian}', "");
+    Error('\p{Sc=:=	_Chrs}');
+    Error('\P{Sc=:=	_Chrs}');
     Expect(1, 69579, '\p{Sc=:\AChrs\z:}', "");;
     Expect(0, 69580, '\p{Sc=:\AChrs\z:}', "");;
     Expect(1, 69579, '\p{Sc=chrs}', "");
@@ -130329,34 +131521,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69580, '\P{^Sc=chrs}', "");
     Expect(1, 69579, '\p{Sc=:\Achrs\z:}', "");;
     Expect(0, 69580, '\p{Sc=:\Achrs\z:}', "");;
-    Expect(1, 69579, '\p{Sc:			CHRS}', "");
-    Expect(0, 69579, '\p{^Sc:			CHRS}', "");
-    Expect(0, 69579, '\P{Sc:			CHRS}', "");
-    Expect(1, 69579, '\P{^Sc:			CHRS}', "");
-    Expect(0, 69580, '\p{Sc:			CHRS}', "");
-    Expect(1, 69580, '\p{^Sc:			CHRS}', "");
-    Expect(1, 69580, '\P{Sc:			CHRS}', "");
-    Expect(0, 69580, '\P{^Sc:			CHRS}', "");
-    Error('\p{Is_Script=-:=CHORASMIAN}');
-    Error('\P{Is_Script=-:=CHORASMIAN}');
-    Expect(1, 69579, '\p{Is_Script=chorasmian}', "");
-    Expect(0, 69579, '\p{^Is_Script=chorasmian}', "");
-    Expect(0, 69579, '\P{Is_Script=chorasmian}', "");
-    Expect(1, 69579, '\P{^Is_Script=chorasmian}', "");
-    Expect(0, 69580, '\p{Is_Script=chorasmian}', "");
-    Expect(1, 69580, '\p{^Is_Script=chorasmian}', "");
-    Expect(1, 69580, '\P{Is_Script=chorasmian}', "");
-    Expect(0, 69580, '\P{^Is_Script=chorasmian}', "");
-    Expect(1, 69579, '\p{Is_Script=-	CHORASMIAN}', "");
-    Expect(0, 69579, '\p{^Is_Script=-	CHORASMIAN}', "");
-    Expect(0, 69579, '\P{Is_Script=-	CHORASMIAN}', "");
-    Expect(1, 69579, '\P{^Is_Script=-	CHORASMIAN}', "");
-    Expect(0, 69580, '\p{Is_Script=-	CHORASMIAN}', "");
-    Expect(1, 69580, '\p{^Is_Script=-	CHORASMIAN}', "");
-    Expect(1, 69580, '\P{Is_Script=-	CHORASMIAN}', "");
-    Expect(0, 69580, '\P{^Is_Script=-	CHORASMIAN}', "");
-    Error('\p{Is_Sc=/a/-_Chrs}');
-    Error('\P{Is_Sc=/a/-_Chrs}');
+    Expect(1, 69579, '\p{Sc= _CHRS}', "");
+    Expect(0, 69579, '\p{^Sc= _CHRS}', "");
+    Expect(0, 69579, '\P{Sc= _CHRS}', "");
+    Expect(1, 69579, '\P{^Sc= _CHRS}', "");
+    Expect(0, 69580, '\p{Sc= _CHRS}', "");
+    Expect(1, 69580, '\p{^Sc= _CHRS}', "");
+    Expect(1, 69580, '\P{Sc= _CHRS}', "");
+    Expect(0, 69580, '\P{^Sc= _CHRS}', "");
+    Error('\p{Is_Script:		-Chorasmian:=}');
+    Error('\P{Is_Script:		-Chorasmian:=}');
+    Expect(1, 69579, '\p{Is_Script:	chorasmian}', "");
+    Expect(0, 69579, '\p{^Is_Script:	chorasmian}', "");
+    Expect(0, 69579, '\P{Is_Script:	chorasmian}', "");
+    Expect(1, 69579, '\P{^Is_Script:	chorasmian}', "");
+    Expect(0, 69580, '\p{Is_Script:	chorasmian}', "");
+    Expect(1, 69580, '\p{^Is_Script:	chorasmian}', "");
+    Expect(1, 69580, '\P{Is_Script:	chorasmian}', "");
+    Expect(0, 69580, '\P{^Is_Script:	chorasmian}', "");
+    Expect(1, 69579, '\p{Is_Script=	Chorasmian}', "");
+    Expect(0, 69579, '\p{^Is_Script=	Chorasmian}', "");
+    Expect(0, 69579, '\P{Is_Script=	Chorasmian}', "");
+    Expect(1, 69579, '\P{^Is_Script=	Chorasmian}', "");
+    Expect(0, 69580, '\p{Is_Script=	Chorasmian}', "");
+    Expect(1, 69580, '\p{^Is_Script=	Chorasmian}', "");
+    Expect(1, 69580, '\P{Is_Script=	Chorasmian}', "");
+    Expect(0, 69580, '\P{^Is_Script=	Chorasmian}', "");
+    Error('\p{Is_Sc=/a/_Chrs}');
+    Error('\P{Is_Sc=/a/_Chrs}');
     Expect(1, 69579, '\p{Is_Sc=chrs}', "");
     Expect(0, 69579, '\p{^Is_Sc=chrs}', "");
     Expect(0, 69579, '\P{Is_Sc=chrs}', "");
@@ -130365,16 +131557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69580, '\p{^Is_Sc=chrs}', "");
     Expect(1, 69580, '\P{Is_Sc=chrs}', "");
     Expect(0, 69580, '\P{^Is_Sc=chrs}', "");
-    Expect(1, 69579, '\p{Is_Sc=-_CHRS}', "");
-    Expect(0, 69579, '\p{^Is_Sc=-_CHRS}', "");
-    Expect(0, 69579, '\P{Is_Sc=-_CHRS}', "");
-    Expect(1, 69579, '\P{^Is_Sc=-_CHRS}', "");
-    Expect(0, 69580, '\p{Is_Sc=-_CHRS}', "");
-    Expect(1, 69580, '\p{^Is_Sc=-_CHRS}', "");
-    Expect(1, 69580, '\P{Is_Sc=-_CHRS}', "");
-    Expect(0, 69580, '\P{^Is_Sc=-_CHRS}', "");
-    Error('\p{Script= :=COPTIC}');
-    Error('\P{Script= :=COPTIC}');
+    Expect(1, 69579, '\p{Is_Sc:			Chrs}', "");
+    Expect(0, 69579, '\p{^Is_Sc:			Chrs}', "");
+    Expect(0, 69579, '\P{Is_Sc:			Chrs}', "");
+    Expect(1, 69579, '\P{^Is_Sc:			Chrs}', "");
+    Expect(0, 69580, '\p{Is_Sc:			Chrs}', "");
+    Expect(1, 69580, '\p{^Is_Sc:			Chrs}', "");
+    Expect(1, 69580, '\P{Is_Sc:			Chrs}', "");
+    Expect(0, 69580, '\P{^Is_Sc:			Chrs}', "");
+    Error('\p{Script=:=Coptic}');
+    Error('\P{Script=:=Coptic}');
     Expect(1, 11519, '\p{Script=:\ACoptic\z:}', "");;
     Expect(0, 11520, '\p{Script=:\ACoptic\z:}', "");;
     Expect(1, 11519, '\p{Script=coptic}', "");
@@ -130387,16 +131579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11520, '\P{^Script=coptic}', "");
     Expect(1, 11519, '\p{Script=:\Acoptic\z:}', "");;
     Expect(0, 11520, '\p{Script=:\Acoptic\z:}', "");;
-    Expect(1, 11519, '\p{Script= _coptic}', "");
-    Expect(0, 11519, '\p{^Script= _coptic}', "");
-    Expect(0, 11519, '\P{Script= _coptic}', "");
-    Expect(1, 11519, '\P{^Script= _coptic}', "");
-    Expect(0, 11520, '\p{Script= _coptic}', "");
-    Expect(1, 11520, '\p{^Script= _coptic}', "");
-    Expect(1, 11520, '\P{Script= _coptic}', "");
-    Expect(0, 11520, '\P{^Script= _coptic}', "");
-    Error('\p{Sc= :=Copt}');
-    Error('\P{Sc= :=Copt}');
+    Expect(1, 11519, '\p{Script= -coptic}', "");
+    Expect(0, 11519, '\p{^Script= -coptic}', "");
+    Expect(0, 11519, '\P{Script= -coptic}', "");
+    Expect(1, 11519, '\P{^Script= -coptic}', "");
+    Expect(0, 11520, '\p{Script= -coptic}', "");
+    Expect(1, 11520, '\p{^Script= -coptic}', "");
+    Expect(1, 11520, '\P{Script= -coptic}', "");
+    Expect(0, 11520, '\P{^Script= -coptic}', "");
+    Error('\p{Sc=/a/_ COPT}');
+    Error('\P{Sc=/a/_ COPT}');
     Expect(1, 11519, '\p{Sc=:\ACopt\z:}', "");;
     Expect(0, 11520, '\p{Sc=:\ACopt\z:}', "");;
     Expect(1, 11519, '\p{Sc=copt}', "");
@@ -130409,16 +131601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11520, '\P{^Sc=copt}', "");
     Expect(1, 11519, '\p{Sc=:\Acopt\z:}', "");;
     Expect(0, 11520, '\p{Sc=:\Acopt\z:}', "");;
-    Expect(1, 11519, '\p{Sc:   _	Copt}', "");
-    Expect(0, 11519, '\p{^Sc:   _	Copt}', "");
-    Expect(0, 11519, '\P{Sc:   _	Copt}', "");
-    Expect(1, 11519, '\P{^Sc:   _	Copt}', "");
-    Expect(0, 11520, '\p{Sc:   _	Copt}', "");
-    Expect(1, 11520, '\p{^Sc:   _	Copt}', "");
-    Expect(1, 11520, '\P{Sc:   _	Copt}', "");
-    Expect(0, 11520, '\P{^Sc:   _	Copt}', "");
-    Error('\p{Is_Script=/a/Qaac}');
-    Error('\P{Is_Script=/a/Qaac}');
+    Expect(1, 11519, '\p{Sc= Copt}', "");
+    Expect(0, 11519, '\p{^Sc= Copt}', "");
+    Expect(0, 11519, '\P{Sc= Copt}', "");
+    Expect(1, 11519, '\P{^Sc= Copt}', "");
+    Expect(0, 11520, '\p{Sc= Copt}', "");
+    Expect(1, 11520, '\p{^Sc= Copt}', "");
+    Expect(1, 11520, '\P{Sc= Copt}', "");
+    Expect(0, 11520, '\P{^Sc= Copt}', "");
+    Error('\p{Is_Script=	:=Qaac}');
+    Error('\P{Is_Script=	:=Qaac}');
     Expect(1, 11519, '\p{Is_Script=qaac}', "");
     Expect(0, 11519, '\p{^Is_Script=qaac}', "");
     Expect(0, 11519, '\P{Is_Script=qaac}', "");
@@ -130427,16 +131619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11520, '\p{^Is_Script=qaac}', "");
     Expect(1, 11520, '\P{Is_Script=qaac}', "");
     Expect(0, 11520, '\P{^Is_Script=qaac}', "");
-    Expect(1, 11519, '\p{Is_Script:    QAAC}', "");
-    Expect(0, 11519, '\p{^Is_Script:    QAAC}', "");
-    Expect(0, 11519, '\P{Is_Script:    QAAC}', "");
-    Expect(1, 11519, '\P{^Is_Script:    QAAC}', "");
-    Expect(0, 11520, '\p{Is_Script:    QAAC}', "");
-    Expect(1, 11520, '\p{^Is_Script:    QAAC}', "");
-    Expect(1, 11520, '\P{Is_Script:    QAAC}', "");
-    Expect(0, 11520, '\P{^Is_Script:    QAAC}', "");
-    Error('\p{Is_Sc=-:=Coptic}');
-    Error('\P{Is_Sc=-:=Coptic}');
+    Expect(1, 11519, '\p{Is_Script=	Qaac}', "");
+    Expect(0, 11519, '\p{^Is_Script=	Qaac}', "");
+    Expect(0, 11519, '\P{Is_Script=	Qaac}', "");
+    Expect(1, 11519, '\P{^Is_Script=	Qaac}', "");
+    Expect(0, 11520, '\p{Is_Script=	Qaac}', "");
+    Expect(1, 11520, '\p{^Is_Script=	Qaac}', "");
+    Expect(1, 11520, '\P{Is_Script=	Qaac}', "");
+    Expect(0, 11520, '\P{^Is_Script=	Qaac}', "");
+    Error('\p{Is_Sc=/a/ -coptic}');
+    Error('\P{Is_Sc=/a/ -coptic}');
     Expect(1, 11519, '\p{Is_Sc=coptic}', "");
     Expect(0, 11519, '\p{^Is_Sc=coptic}', "");
     Expect(0, 11519, '\P{Is_Sc=coptic}', "");
@@ -130445,16 +131637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11520, '\p{^Is_Sc=coptic}', "");
     Expect(1, 11520, '\P{Is_Sc=coptic}', "");
     Expect(0, 11520, '\P{^Is_Sc=coptic}', "");
-    Expect(1, 11519, '\p{Is_Sc= -Coptic}', "");
-    Expect(0, 11519, '\p{^Is_Sc= -Coptic}', "");
-    Expect(0, 11519, '\P{Is_Sc= -Coptic}', "");
-    Expect(1, 11519, '\P{^Is_Sc= -Coptic}', "");
-    Expect(0, 11520, '\p{Is_Sc= -Coptic}', "");
-    Expect(1, 11520, '\p{^Is_Sc= -Coptic}', "");
-    Expect(1, 11520, '\P{Is_Sc= -Coptic}', "");
-    Expect(0, 11520, '\P{^Is_Sc= -Coptic}', "");
-    Error('\p{Script:	_:=cypro_Minoan}');
-    Error('\P{Script:	_:=cypro_Minoan}');
+    Expect(1, 11519, '\p{Is_Sc= 	COPTIC}', "");
+    Expect(0, 11519, '\p{^Is_Sc= 	COPTIC}', "");
+    Expect(0, 11519, '\P{Is_Sc= 	COPTIC}', "");
+    Expect(1, 11519, '\P{^Is_Sc= 	COPTIC}', "");
+    Expect(0, 11520, '\p{Is_Sc= 	COPTIC}', "");
+    Expect(1, 11520, '\p{^Is_Sc= 	COPTIC}', "");
+    Expect(1, 11520, '\P{Is_Sc= 	COPTIC}', "");
+    Expect(0, 11520, '\P{^Is_Sc= 	COPTIC}', "");
+    Error('\p{Script=	:=Cypro_minoan}');
+    Error('\P{Script=	:=Cypro_minoan}');
     Expect(1, 77810, '\p{Script=:\ACypro_Minoan\z:}', "");;
     Expect(0, 77811, '\p{Script=:\ACypro_Minoan\z:}', "");;
     Expect(1, 77810, '\p{Script=cyprominoan}', "");
@@ -130467,38 +131659,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 77811, '\P{^Script=cyprominoan}', "");
     Expect(1, 77810, '\p{Script=:\Acyprominoan\z:}', "");;
     Expect(0, 77811, '\p{Script=:\Acyprominoan\z:}', "");;
-    Expect(1, 77810, '\p{Script=_-cypro_Minoan}', "");
-    Expect(0, 77810, '\p{^Script=_-cypro_Minoan}', "");
-    Expect(0, 77810, '\P{Script=_-cypro_Minoan}', "");
-    Expect(1, 77810, '\P{^Script=_-cypro_Minoan}', "");
-    Expect(0, 77811, '\p{Script=_-cypro_Minoan}', "");
-    Expect(1, 77811, '\p{^Script=_-cypro_Minoan}', "");
-    Expect(1, 77811, '\P{Script=_-cypro_Minoan}', "");
-    Expect(0, 77811, '\P{^Script=_-cypro_Minoan}', "");
-    Error('\p{Sc= 	CPMN:=}');
-    Error('\P{Sc= 	CPMN:=}');
+    Expect(1, 77810, '\p{Script=-cypro_MINOAN}', "");
+    Expect(0, 77810, '\p{^Script=-cypro_MINOAN}', "");
+    Expect(0, 77810, '\P{Script=-cypro_MINOAN}', "");
+    Expect(1, 77810, '\P{^Script=-cypro_MINOAN}', "");
+    Expect(0, 77811, '\p{Script=-cypro_MINOAN}', "");
+    Expect(1, 77811, '\p{^Script=-cypro_MINOAN}', "");
+    Expect(1, 77811, '\P{Script=-cypro_MINOAN}', "");
+    Expect(0, 77811, '\P{^Script=-cypro_MINOAN}', "");
+    Error('\p{Sc=Cpmn:=}');
+    Error('\P{Sc=Cpmn:=}');
     Expect(1, 77810, '\p{Sc=:\ACpmn\z:}', "");;
     Expect(0, 77811, '\p{Sc=:\ACpmn\z:}', "");;
-    Expect(1, 77810, '\p{Sc:cpmn}', "");
-    Expect(0, 77810, '\p{^Sc:cpmn}', "");
-    Expect(0, 77810, '\P{Sc:cpmn}', "");
-    Expect(1, 77810, '\P{^Sc:cpmn}', "");
-    Expect(0, 77811, '\p{Sc:cpmn}', "");
-    Expect(1, 77811, '\p{^Sc:cpmn}', "");
-    Expect(1, 77811, '\P{Sc:cpmn}', "");
-    Expect(0, 77811, '\P{^Sc:cpmn}', "");
+    Expect(1, 77810, '\p{Sc=cpmn}', "");
+    Expect(0, 77810, '\p{^Sc=cpmn}', "");
+    Expect(0, 77810, '\P{Sc=cpmn}', "");
+    Expect(1, 77810, '\P{^Sc=cpmn}', "");
+    Expect(0, 77811, '\p{Sc=cpmn}', "");
+    Expect(1, 77811, '\p{^Sc=cpmn}', "");
+    Expect(1, 77811, '\P{Sc=cpmn}', "");
+    Expect(0, 77811, '\P{^Sc=cpmn}', "");
     Expect(1, 77810, '\p{Sc=:\Acpmn\z:}', "");;
     Expect(0, 77811, '\p{Sc=:\Acpmn\z:}', "");;
-    Expect(1, 77810, '\p{Sc:   -Cpmn}', "");
-    Expect(0, 77810, '\p{^Sc:   -Cpmn}', "");
-    Expect(0, 77810, '\P{Sc:   -Cpmn}', "");
-    Expect(1, 77810, '\P{^Sc:   -Cpmn}', "");
-    Expect(0, 77811, '\p{Sc:   -Cpmn}', "");
-    Expect(1, 77811, '\p{^Sc:   -Cpmn}', "");
-    Expect(1, 77811, '\P{Sc:   -Cpmn}', "");
-    Expect(0, 77811, '\P{^Sc:   -Cpmn}', "");
-    Error('\p{Is_Script=:=-_Cypro_Minoan}');
-    Error('\P{Is_Script=:=-_Cypro_Minoan}');
+    Expect(1, 77810, '\p{Sc=_	CPMN}', "");
+    Expect(0, 77810, '\p{^Sc=_	CPMN}', "");
+    Expect(0, 77810, '\P{Sc=_	CPMN}', "");
+    Expect(1, 77810, '\P{^Sc=_	CPMN}', "");
+    Expect(0, 77811, '\p{Sc=_	CPMN}', "");
+    Expect(1, 77811, '\p{^Sc=_	CPMN}', "");
+    Expect(1, 77811, '\P{Sc=_	CPMN}', "");
+    Expect(0, 77811, '\P{^Sc=_	CPMN}', "");
+    Error('\p{Is_Script:	-cypro_Minoan/a/}');
+    Error('\P{Is_Script:	-cypro_Minoan/a/}');
     Expect(1, 77810, '\p{Is_Script=cyprominoan}', "");
     Expect(0, 77810, '\p{^Is_Script=cyprominoan}', "");
     Expect(0, 77810, '\P{Is_Script=cyprominoan}', "");
@@ -130507,16 +131699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 77811, '\p{^Is_Script=cyprominoan}', "");
     Expect(1, 77811, '\P{Is_Script=cyprominoan}', "");
     Expect(0, 77811, '\P{^Is_Script=cyprominoan}', "");
-    Expect(1, 77810, '\p{Is_Script= Cypro_minoan}', "");
-    Expect(0, 77810, '\p{^Is_Script= Cypro_minoan}', "");
-    Expect(0, 77810, '\P{Is_Script= Cypro_minoan}', "");
-    Expect(1, 77810, '\P{^Is_Script= Cypro_minoan}', "");
-    Expect(0, 77811, '\p{Is_Script= Cypro_minoan}', "");
-    Expect(1, 77811, '\p{^Is_Script= Cypro_minoan}', "");
-    Expect(1, 77811, '\P{Is_Script= Cypro_minoan}', "");
-    Expect(0, 77811, '\P{^Is_Script= Cypro_minoan}', "");
-    Error('\p{Is_Sc=/a/_CPMN}');
-    Error('\P{Is_Sc=/a/_CPMN}');
+    Expect(1, 77810, '\p{Is_Script=-Cypro_minoan}', "");
+    Expect(0, 77810, '\p{^Is_Script=-Cypro_minoan}', "");
+    Expect(0, 77810, '\P{Is_Script=-Cypro_minoan}', "");
+    Expect(1, 77810, '\P{^Is_Script=-Cypro_minoan}', "");
+    Expect(0, 77811, '\p{Is_Script=-Cypro_minoan}', "");
+    Expect(1, 77811, '\p{^Is_Script=-Cypro_minoan}', "");
+    Expect(1, 77811, '\P{Is_Script=-Cypro_minoan}', "");
+    Expect(0, 77811, '\P{^Is_Script=-Cypro_minoan}', "");
+    Error('\p{Is_Sc=	 Cpmn:=}');
+    Error('\P{Is_Sc=	 Cpmn:=}');
     Expect(1, 77810, '\p{Is_Sc=cpmn}', "");
     Expect(0, 77810, '\p{^Is_Sc=cpmn}', "");
     Expect(0, 77810, '\P{Is_Sc=cpmn}', "");
@@ -130525,16 +131717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 77811, '\p{^Is_Sc=cpmn}', "");
     Expect(1, 77811, '\P{Is_Sc=cpmn}', "");
     Expect(0, 77811, '\P{^Is_Sc=cpmn}', "");
-    Expect(1, 77810, '\p{Is_Sc:  _cpmn}', "");
-    Expect(0, 77810, '\p{^Is_Sc:  _cpmn}', "");
-    Expect(0, 77810, '\P{Is_Sc:  _cpmn}', "");
-    Expect(1, 77810, '\P{^Is_Sc:  _cpmn}', "");
-    Expect(0, 77811, '\p{Is_Sc:  _cpmn}', "");
-    Expect(1, 77811, '\p{^Is_Sc:  _cpmn}', "");
-    Expect(1, 77811, '\P{Is_Sc:  _cpmn}', "");
-    Expect(0, 77811, '\P{^Is_Sc:  _cpmn}', "");
-    Error('\p{Script= /a/Cypriot}');
-    Error('\P{Script= /a/Cypriot}');
+    Expect(1, 77810, '\p{Is_Sc= _Cpmn}', "");
+    Expect(0, 77810, '\p{^Is_Sc= _Cpmn}', "");
+    Expect(0, 77810, '\P{Is_Sc= _Cpmn}', "");
+    Expect(1, 77810, '\P{^Is_Sc= _Cpmn}', "");
+    Expect(0, 77811, '\p{Is_Sc= _Cpmn}', "");
+    Expect(1, 77811, '\p{^Is_Sc= _Cpmn}', "");
+    Expect(1, 77811, '\P{Is_Sc= _Cpmn}', "");
+    Expect(0, 77811, '\P{^Is_Sc= _Cpmn}', "");
+    Error('\p{Script= _Cypriot/a/}');
+    Error('\P{Script= _Cypriot/a/}');
     Expect(1, 67647, '\p{Script=:\ACypriot\z:}', "");;
     Expect(0, 67648, '\p{Script=:\ACypriot\z:}', "");;
     Expect(1, 67647, '\p{Script=cypriot}', "");
@@ -130547,16 +131739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67648, '\P{^Script=cypriot}', "");
     Expect(1, 67647, '\p{Script=:\Acypriot\z:}', "");;
     Expect(0, 67648, '\p{Script=:\Acypriot\z:}', "");;
-    Expect(1, 67647, '\p{Script=	Cypriot}', "");
-    Expect(0, 67647, '\p{^Script=	Cypriot}', "");
-    Expect(0, 67647, '\P{Script=	Cypriot}', "");
-    Expect(1, 67647, '\P{^Script=	Cypriot}', "");
-    Expect(0, 67648, '\p{Script=	Cypriot}', "");
-    Expect(1, 67648, '\p{^Script=	Cypriot}', "");
-    Expect(1, 67648, '\P{Script=	Cypriot}', "");
-    Expect(0, 67648, '\P{^Script=	Cypriot}', "");
-    Error('\p{Sc=/a/ Cprt}');
-    Error('\P{Sc=/a/ Cprt}');
+    Expect(1, 67647, '\p{Script=		CYPRIOT}', "");
+    Expect(0, 67647, '\p{^Script=		CYPRIOT}', "");
+    Expect(0, 67647, '\P{Script=		CYPRIOT}', "");
+    Expect(1, 67647, '\P{^Script=		CYPRIOT}', "");
+    Expect(0, 67648, '\p{Script=		CYPRIOT}', "");
+    Expect(1, 67648, '\p{^Script=		CYPRIOT}', "");
+    Expect(1, 67648, '\P{Script=		CYPRIOT}', "");
+    Expect(0, 67648, '\P{^Script=		CYPRIOT}', "");
+    Error('\p{Sc=/a/Cprt}');
+    Error('\P{Sc=/a/Cprt}');
     Expect(1, 67647, '\p{Sc=:\ACprt\z:}', "");;
     Expect(0, 67648, '\p{Sc=:\ACprt\z:}', "");;
     Expect(1, 67647, '\p{Sc=cprt}', "");
@@ -130569,34 +131761,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67648, '\P{^Sc=cprt}', "");
     Expect(1, 67647, '\p{Sc=:\Acprt\z:}', "");;
     Expect(0, 67648, '\p{Sc=:\Acprt\z:}', "");;
-    Expect(1, 67647, '\p{Sc=__Cprt}', "");
-    Expect(0, 67647, '\p{^Sc=__Cprt}', "");
-    Expect(0, 67647, '\P{Sc=__Cprt}', "");
-    Expect(1, 67647, '\P{^Sc=__Cprt}', "");
-    Expect(0, 67648, '\p{Sc=__Cprt}', "");
-    Expect(1, 67648, '\p{^Sc=__Cprt}', "");
-    Expect(1, 67648, '\P{Sc=__Cprt}', "");
-    Expect(0, 67648, '\P{^Sc=__Cprt}', "");
-    Error('\p{Is_Script=/a/__Cypriot}');
-    Error('\P{Is_Script=/a/__Cypriot}');
-    Expect(1, 67647, '\p{Is_Script=cypriot}', "");
-    Expect(0, 67647, '\p{^Is_Script=cypriot}', "");
-    Expect(0, 67647, '\P{Is_Script=cypriot}', "");
-    Expect(1, 67647, '\P{^Is_Script=cypriot}', "");
-    Expect(0, 67648, '\p{Is_Script=cypriot}', "");
-    Expect(1, 67648, '\p{^Is_Script=cypriot}', "");
-    Expect(1, 67648, '\P{Is_Script=cypriot}', "");
-    Expect(0, 67648, '\P{^Is_Script=cypriot}', "");
-    Expect(1, 67647, '\p{Is_Script=_-Cypriot}', "");
-    Expect(0, 67647, '\p{^Is_Script=_-Cypriot}', "");
-    Expect(0, 67647, '\P{Is_Script=_-Cypriot}', "");
-    Expect(1, 67647, '\P{^Is_Script=_-Cypriot}', "");
-    Expect(0, 67648, '\p{Is_Script=_-Cypriot}', "");
-    Expect(1, 67648, '\p{^Is_Script=_-Cypriot}', "");
-    Expect(1, 67648, '\P{Is_Script=_-Cypriot}', "");
-    Expect(0, 67648, '\P{^Is_Script=_-Cypriot}', "");
-    Error('\p{Is_Sc= Cprt/a/}');
-    Error('\P{Is_Sc= Cprt/a/}');
+    Expect(1, 67647, '\p{Sc= CPRT}', "");
+    Expect(0, 67647, '\p{^Sc= CPRT}', "");
+    Expect(0, 67647, '\P{Sc= CPRT}', "");
+    Expect(1, 67647, '\P{^Sc= CPRT}', "");
+    Expect(0, 67648, '\p{Sc= CPRT}', "");
+    Expect(1, 67648, '\p{^Sc= CPRT}', "");
+    Expect(1, 67648, '\P{Sc= CPRT}', "");
+    Expect(0, 67648, '\P{^Sc= CPRT}', "");
+    Error('\p{Is_Script=_/a/CYPRIOT}');
+    Error('\P{Is_Script=_/a/CYPRIOT}');
+    Expect(1, 67647, '\p{Is_Script:   cypriot}', "");
+    Expect(0, 67647, '\p{^Is_Script:   cypriot}', "");
+    Expect(0, 67647, '\P{Is_Script:   cypriot}', "");
+    Expect(1, 67647, '\P{^Is_Script:   cypriot}', "");
+    Expect(0, 67648, '\p{Is_Script:   cypriot}', "");
+    Expect(1, 67648, '\p{^Is_Script:   cypriot}', "");
+    Expect(1, 67648, '\P{Is_Script:   cypriot}', "");
+    Expect(0, 67648, '\P{^Is_Script:   cypriot}', "");
+    Expect(1, 67647, '\p{Is_Script= Cypriot}', "");
+    Expect(0, 67647, '\p{^Is_Script= Cypriot}', "");
+    Expect(0, 67647, '\P{Is_Script= Cypriot}', "");
+    Expect(1, 67647, '\P{^Is_Script= Cypriot}', "");
+    Expect(0, 67648, '\p{Is_Script= Cypriot}', "");
+    Expect(1, 67648, '\p{^Is_Script= Cypriot}', "");
+    Expect(1, 67648, '\P{Is_Script= Cypriot}', "");
+    Expect(0, 67648, '\P{^Is_Script= Cypriot}', "");
+    Error('\p{Is_Sc=/a/- Cprt}');
+    Error('\P{Is_Sc=/a/- Cprt}');
     Expect(1, 67647, '\p{Is_Sc=cprt}', "");
     Expect(0, 67647, '\p{^Is_Sc=cprt}', "");
     Expect(0, 67647, '\P{Is_Sc=cprt}', "");
@@ -130605,198 +131797,198 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67648, '\p{^Is_Sc=cprt}', "");
     Expect(1, 67648, '\P{Is_Sc=cprt}', "");
     Expect(0, 67648, '\P{^Is_Sc=cprt}', "");
-    Expect(1, 67647, '\p{Is_Sc=_cprt}', "");
-    Expect(0, 67647, '\p{^Is_Sc=_cprt}', "");
-    Expect(0, 67647, '\P{Is_Sc=_cprt}', "");
-    Expect(1, 67647, '\P{^Is_Sc=_cprt}', "");
-    Expect(0, 67648, '\p{Is_Sc=_cprt}', "");
-    Expect(1, 67648, '\p{^Is_Sc=_cprt}', "");
-    Expect(1, 67648, '\P{Is_Sc=_cprt}', "");
-    Expect(0, 67648, '\P{^Is_Sc=_cprt}', "");
-    Error('\p{Script=/a/Cyrillic}');
-    Error('\P{Script=/a/Cyrillic}');
-    Expect(1, 65071, '\p{Script=:\ACyrillic\z:}', "");;
-    Expect(0, 65072, '\p{Script=:\ACyrillic\z:}', "");;
-    Expect(1, 65071, '\p{Script=cyrillic}', "");
-    Expect(0, 65071, '\p{^Script=cyrillic}', "");
-    Expect(0, 65071, '\P{Script=cyrillic}', "");
-    Expect(1, 65071, '\P{^Script=cyrillic}', "");
-    Expect(0, 65072, '\p{Script=cyrillic}', "");
-    Expect(1, 65072, '\p{^Script=cyrillic}', "");
-    Expect(1, 65072, '\P{Script=cyrillic}', "");
-    Expect(0, 65072, '\P{^Script=cyrillic}', "");
-    Expect(1, 65071, '\p{Script=:\Acyrillic\z:}', "");;
-    Expect(0, 65072, '\p{Script=:\Acyrillic\z:}', "");;
-    Expect(1, 65071, '\p{Script=--CYRILLIC}', "");
-    Expect(0, 65071, '\p{^Script=--CYRILLIC}', "");
-    Expect(0, 65071, '\P{Script=--CYRILLIC}', "");
-    Expect(1, 65071, '\P{^Script=--CYRILLIC}', "");
-    Expect(0, 65072, '\p{Script=--CYRILLIC}', "");
-    Expect(1, 65072, '\p{^Script=--CYRILLIC}', "");
-    Expect(1, 65072, '\P{Script=--CYRILLIC}', "");
-    Expect(0, 65072, '\P{^Script=--CYRILLIC}', "");
-    Error('\p{Sc:   	_Cyrl/a/}');
-    Error('\P{Sc:   	_Cyrl/a/}');
-    Expect(1, 65071, '\p{Sc=:\ACyrl\z:}', "");;
-    Expect(0, 65072, '\p{Sc=:\ACyrl\z:}', "");;
-    Expect(1, 65071, '\p{Sc=cyrl}', "");
-    Expect(0, 65071, '\p{^Sc=cyrl}', "");
-    Expect(0, 65071, '\P{Sc=cyrl}', "");
-    Expect(1, 65071, '\P{^Sc=cyrl}', "");
-    Expect(0, 65072, '\p{Sc=cyrl}', "");
-    Expect(1, 65072, '\p{^Sc=cyrl}', "");
-    Expect(1, 65072, '\P{Sc=cyrl}', "");
-    Expect(0, 65072, '\P{^Sc=cyrl}', "");
-    Expect(1, 65071, '\p{Sc=:\Acyrl\z:}', "");;
-    Expect(0, 65072, '\p{Sc=:\Acyrl\z:}', "");;
-    Expect(1, 65071, '\p{Sc=Cyrl}', "");
-    Expect(0, 65071, '\p{^Sc=Cyrl}', "");
-    Expect(0, 65071, '\P{Sc=Cyrl}', "");
-    Expect(1, 65071, '\P{^Sc=Cyrl}', "");
-    Expect(0, 65072, '\p{Sc=Cyrl}', "");
-    Expect(1, 65072, '\p{^Sc=Cyrl}', "");
-    Expect(1, 65072, '\P{Sc=Cyrl}', "");
-    Expect(0, 65072, '\P{^Sc=Cyrl}', "");
-    Error('\p{Is_Script:	 :=Cyrillic}');
-    Error('\P{Is_Script:	 :=Cyrillic}');
-    Expect(1, 65071, '\p{Is_Script=cyrillic}', "");
-    Expect(0, 65071, '\p{^Is_Script=cyrillic}', "");
-    Expect(0, 65071, '\P{Is_Script=cyrillic}', "");
-    Expect(1, 65071, '\P{^Is_Script=cyrillic}', "");
-    Expect(0, 65072, '\p{Is_Script=cyrillic}', "");
-    Expect(1, 65072, '\p{^Is_Script=cyrillic}', "");
-    Expect(1, 65072, '\P{Is_Script=cyrillic}', "");
-    Expect(0, 65072, '\P{^Is_Script=cyrillic}', "");
-    Expect(1, 65071, '\p{Is_Script:	 Cyrillic}', "");
-    Expect(0, 65071, '\p{^Is_Script:	 Cyrillic}', "");
-    Expect(0, 65071, '\P{Is_Script:	 Cyrillic}', "");
-    Expect(1, 65071, '\P{^Is_Script:	 Cyrillic}', "");
-    Expect(0, 65072, '\p{Is_Script:	 Cyrillic}', "");
-    Expect(1, 65072, '\p{^Is_Script:	 Cyrillic}', "");
-    Expect(1, 65072, '\P{Is_Script:	 Cyrillic}', "");
-    Expect(0, 65072, '\P{^Is_Script:	 Cyrillic}', "");
-    Error('\p{Is_Sc=_	cyrl:=}');
-    Error('\P{Is_Sc=_	cyrl:=}');
-    Expect(1, 65071, '\p{Is_Sc=cyrl}', "");
-    Expect(0, 65071, '\p{^Is_Sc=cyrl}', "");
-    Expect(0, 65071, '\P{Is_Sc=cyrl}', "");
-    Expect(1, 65071, '\P{^Is_Sc=cyrl}', "");
-    Expect(0, 65072, '\p{Is_Sc=cyrl}', "");
-    Expect(1, 65072, '\p{^Is_Sc=cyrl}', "");
-    Expect(1, 65072, '\P{Is_Sc=cyrl}', "");
-    Expect(0, 65072, '\P{^Is_Sc=cyrl}', "");
-    Expect(1, 65071, '\p{Is_Sc=_Cyrl}', "");
-    Expect(0, 65071, '\p{^Is_Sc=_Cyrl}', "");
-    Expect(0, 65071, '\P{Is_Sc=_Cyrl}', "");
-    Expect(1, 65071, '\P{^Is_Sc=_Cyrl}', "");
-    Expect(0, 65072, '\p{Is_Sc=_Cyrl}', "");
-    Expect(1, 65072, '\p{^Is_Sc=_Cyrl}', "");
-    Expect(1, 65072, '\P{Is_Sc=_Cyrl}', "");
-    Expect(0, 65072, '\P{^Is_Sc=_Cyrl}', "");
-    Error('\p{Script=_:=Devanagari}');
-    Error('\P{Script=_:=Devanagari}');
-    Expect(1, 43263, '\p{Script=:\ADevanagari\z:}', "");;
-    Expect(0, 43264, '\p{Script=:\ADevanagari\z:}', "");;
-    Expect(1, 43263, '\p{Script=devanagari}', "");
-    Expect(0, 43263, '\p{^Script=devanagari}', "");
-    Expect(0, 43263, '\P{Script=devanagari}', "");
-    Expect(1, 43263, '\P{^Script=devanagari}', "");
-    Expect(0, 43264, '\p{Script=devanagari}', "");
-    Expect(1, 43264, '\p{^Script=devanagari}', "");
-    Expect(1, 43264, '\P{Script=devanagari}', "");
-    Expect(0, 43264, '\P{^Script=devanagari}', "");
-    Expect(1, 43263, '\p{Script=:\Adevanagari\z:}', "");;
-    Expect(0, 43264, '\p{Script=:\Adevanagari\z:}', "");;
-    Expect(1, 43263, '\p{Script=_ DEVANAGARI}', "");
-    Expect(0, 43263, '\p{^Script=_ DEVANAGARI}', "");
-    Expect(0, 43263, '\P{Script=_ DEVANAGARI}', "");
-    Expect(1, 43263, '\P{^Script=_ DEVANAGARI}', "");
-    Expect(0, 43264, '\p{Script=_ DEVANAGARI}', "");
-    Expect(1, 43264, '\p{^Script=_ DEVANAGARI}', "");
-    Expect(1, 43264, '\P{Script=_ DEVANAGARI}', "");
-    Expect(0, 43264, '\P{^Script=_ DEVANAGARI}', "");
-    Error('\p{Sc=/a/deva}');
-    Error('\P{Sc=/a/deva}');
-    Expect(1, 43263, '\p{Sc=:\ADeva\z:}', "");;
-    Expect(0, 43264, '\p{Sc=:\ADeva\z:}', "");;
-    Expect(1, 43263, '\p{Sc=deva}', "");
-    Expect(0, 43263, '\p{^Sc=deva}', "");
-    Expect(0, 43263, '\P{Sc=deva}', "");
-    Expect(1, 43263, '\P{^Sc=deva}', "");
-    Expect(0, 43264, '\p{Sc=deva}', "");
-    Expect(1, 43264, '\p{^Sc=deva}', "");
-    Expect(1, 43264, '\P{Sc=deva}', "");
-    Expect(0, 43264, '\P{^Sc=deva}', "");
-    Expect(1, 43263, '\p{Sc=:\Adeva\z:}', "");;
-    Expect(0, 43264, '\p{Sc=:\Adeva\z:}', "");;
-    Expect(1, 43263, '\p{Sc=_Deva}', "");
-    Expect(0, 43263, '\p{^Sc=_Deva}', "");
-    Expect(0, 43263, '\P{Sc=_Deva}', "");
-    Expect(1, 43263, '\P{^Sc=_Deva}', "");
-    Expect(0, 43264, '\p{Sc=_Deva}', "");
-    Expect(1, 43264, '\p{^Sc=_Deva}', "");
-    Expect(1, 43264, '\P{Sc=_Deva}', "");
-    Expect(0, 43264, '\P{^Sc=_Deva}', "");
-    Error('\p{Is_Script=:=devanagari}');
-    Error('\P{Is_Script=:=devanagari}');
-    Expect(1, 43263, '\p{Is_Script=devanagari}', "");
-    Expect(0, 43263, '\p{^Is_Script=devanagari}', "");
-    Expect(0, 43263, '\P{Is_Script=devanagari}', "");
-    Expect(1, 43263, '\P{^Is_Script=devanagari}', "");
-    Expect(0, 43264, '\p{Is_Script=devanagari}', "");
-    Expect(1, 43264, '\p{^Is_Script=devanagari}', "");
-    Expect(1, 43264, '\P{Is_Script=devanagari}', "");
-    Expect(0, 43264, '\P{^Is_Script=devanagari}', "");
-    Expect(1, 43263, '\p{Is_Script= DEVANAGARI}', "");
-    Expect(0, 43263, '\p{^Is_Script= DEVANAGARI}', "");
-    Expect(0, 43263, '\P{Is_Script= DEVANAGARI}', "");
-    Expect(1, 43263, '\P{^Is_Script= DEVANAGARI}', "");
-    Expect(0, 43264, '\p{Is_Script= DEVANAGARI}', "");
-    Expect(1, 43264, '\p{^Is_Script= DEVANAGARI}', "");
-    Expect(1, 43264, '\P{Is_Script= DEVANAGARI}', "");
-    Expect(0, 43264, '\P{^Is_Script= DEVANAGARI}', "");
-    Error('\p{Is_Sc=-/a/Deva}');
-    Error('\P{Is_Sc=-/a/Deva}');
-    Expect(1, 43263, '\p{Is_Sc=deva}', "");
-    Expect(0, 43263, '\p{^Is_Sc=deva}', "");
-    Expect(0, 43263, '\P{Is_Sc=deva}', "");
-    Expect(1, 43263, '\P{^Is_Sc=deva}', "");
-    Expect(0, 43264, '\p{Is_Sc=deva}', "");
-    Expect(1, 43264, '\p{^Is_Sc=deva}', "");
-    Expect(1, 43264, '\P{Is_Sc=deva}', "");
-    Expect(0, 43264, '\P{^Is_Sc=deva}', "");
-    Expect(1, 43263, '\p{Is_Sc=	_DEVA}', "");
-    Expect(0, 43263, '\p{^Is_Sc=	_DEVA}', "");
-    Expect(0, 43263, '\P{Is_Sc=	_DEVA}', "");
-    Expect(1, 43263, '\P{^Is_Sc=	_DEVA}', "");
-    Expect(0, 43264, '\p{Is_Sc=	_DEVA}', "");
-    Expect(1, 43264, '\p{^Is_Sc=	_DEVA}', "");
-    Expect(1, 43264, '\P{Is_Sc=	_DEVA}', "");
-    Expect(0, 43264, '\P{^Is_Sc=	_DEVA}', "");
-    Error('\p{Script=_	DIVES_Akuru:=}');
-    Error('\P{Script=_	DIVES_Akuru:=}');
+    Expect(1, 67647, '\p{Is_Sc=-	cprt}', "");
+    Expect(0, 67647, '\p{^Is_Sc=-	cprt}', "");
+    Expect(0, 67647, '\P{Is_Sc=-	cprt}', "");
+    Expect(1, 67647, '\P{^Is_Sc=-	cprt}', "");
+    Expect(0, 67648, '\p{Is_Sc=-	cprt}', "");
+    Expect(1, 67648, '\p{^Is_Sc=-	cprt}', "");
+    Expect(1, 67648, '\P{Is_Sc=-	cprt}', "");
+    Expect(0, 67648, '\P{^Is_Sc=-	cprt}', "");
+    Error('\p{Script: /a/Cyrillic}');
+    Error('\P{Script: /a/Cyrillic}');
+    Expect(1, 123023, '\p{Script=:\ACyrillic\z:}', "");;
+    Expect(0, 123024, '\p{Script=:\ACyrillic\z:}', "");;
+    Expect(1, 123023, '\p{Script=cyrillic}', "");
+    Expect(0, 123023, '\p{^Script=cyrillic}', "");
+    Expect(0, 123023, '\P{Script=cyrillic}', "");
+    Expect(1, 123023, '\P{^Script=cyrillic}', "");
+    Expect(0, 123024, '\p{Script=cyrillic}', "");
+    Expect(1, 123024, '\p{^Script=cyrillic}', "");
+    Expect(1, 123024, '\P{Script=cyrillic}', "");
+    Expect(0, 123024, '\P{^Script=cyrillic}', "");
+    Expect(1, 123023, '\p{Script=:\Acyrillic\z:}', "");;
+    Expect(0, 123024, '\p{Script=:\Acyrillic\z:}', "");;
+    Expect(1, 123023, '\p{Script=__cyrillic}', "");
+    Expect(0, 123023, '\p{^Script=__cyrillic}', "");
+    Expect(0, 123023, '\P{Script=__cyrillic}', "");
+    Expect(1, 123023, '\P{^Script=__cyrillic}', "");
+    Expect(0, 123024, '\p{Script=__cyrillic}', "");
+    Expect(1, 123024, '\p{^Script=__cyrillic}', "");
+    Expect(1, 123024, '\P{Script=__cyrillic}', "");
+    Expect(0, 123024, '\P{^Script=__cyrillic}', "");
+    Error('\p{Sc=:=_CYRL}');
+    Error('\P{Sc=:=_CYRL}');
+    Expect(1, 123023, '\p{Sc=:\ACyrl\z:}', "");;
+    Expect(0, 123024, '\p{Sc=:\ACyrl\z:}', "");;
+    Expect(1, 123023, '\p{Sc=cyrl}', "");
+    Expect(0, 123023, '\p{^Sc=cyrl}', "");
+    Expect(0, 123023, '\P{Sc=cyrl}', "");
+    Expect(1, 123023, '\P{^Sc=cyrl}', "");
+    Expect(0, 123024, '\p{Sc=cyrl}', "");
+    Expect(1, 123024, '\p{^Sc=cyrl}', "");
+    Expect(1, 123024, '\P{Sc=cyrl}', "");
+    Expect(0, 123024, '\P{^Sc=cyrl}', "");
+    Expect(1, 123023, '\p{Sc=:\Acyrl\z:}', "");;
+    Expect(0, 123024, '\p{Sc=:\Acyrl\z:}', "");;
+    Expect(1, 123023, '\p{Sc= 	cyrl}', "");
+    Expect(0, 123023, '\p{^Sc= 	cyrl}', "");
+    Expect(0, 123023, '\P{Sc= 	cyrl}', "");
+    Expect(1, 123023, '\P{^Sc= 	cyrl}', "");
+    Expect(0, 123024, '\p{Sc= 	cyrl}', "");
+    Expect(1, 123024, '\p{^Sc= 	cyrl}', "");
+    Expect(1, 123024, '\P{Sc= 	cyrl}', "");
+    Expect(0, 123024, '\P{^Sc= 	cyrl}', "");
+    Error('\p{Is_Script=/a/-	Cyrillic}');
+    Error('\P{Is_Script=/a/-	Cyrillic}');
+    Expect(1, 123023, '\p{Is_Script=cyrillic}', "");
+    Expect(0, 123023, '\p{^Is_Script=cyrillic}', "");
+    Expect(0, 123023, '\P{Is_Script=cyrillic}', "");
+    Expect(1, 123023, '\P{^Is_Script=cyrillic}', "");
+    Expect(0, 123024, '\p{Is_Script=cyrillic}', "");
+    Expect(1, 123024, '\p{^Is_Script=cyrillic}', "");
+    Expect(1, 123024, '\P{Is_Script=cyrillic}', "");
+    Expect(0, 123024, '\P{^Is_Script=cyrillic}', "");
+    Expect(1, 123023, '\p{Is_Script=_	Cyrillic}', "");
+    Expect(0, 123023, '\p{^Is_Script=_	Cyrillic}', "");
+    Expect(0, 123023, '\P{Is_Script=_	Cyrillic}', "");
+    Expect(1, 123023, '\P{^Is_Script=_	Cyrillic}', "");
+    Expect(0, 123024, '\p{Is_Script=_	Cyrillic}', "");
+    Expect(1, 123024, '\p{^Is_Script=_	Cyrillic}', "");
+    Expect(1, 123024, '\P{Is_Script=_	Cyrillic}', "");
+    Expect(0, 123024, '\P{^Is_Script=_	Cyrillic}', "");
+    Error('\p{Is_Sc=:=CYRL}');
+    Error('\P{Is_Sc=:=CYRL}');
+    Expect(1, 123023, '\p{Is_Sc=cyrl}', "");
+    Expect(0, 123023, '\p{^Is_Sc=cyrl}', "");
+    Expect(0, 123023, '\P{Is_Sc=cyrl}', "");
+    Expect(1, 123023, '\P{^Is_Sc=cyrl}', "");
+    Expect(0, 123024, '\p{Is_Sc=cyrl}', "");
+    Expect(1, 123024, '\p{^Is_Sc=cyrl}', "");
+    Expect(1, 123024, '\P{Is_Sc=cyrl}', "");
+    Expect(0, 123024, '\P{^Is_Sc=cyrl}', "");
+    Expect(1, 123023, '\p{Is_Sc=		Cyrl}', "");
+    Expect(0, 123023, '\p{^Is_Sc=		Cyrl}', "");
+    Expect(0, 123023, '\P{Is_Sc=		Cyrl}', "");
+    Expect(1, 123023, '\P{^Is_Sc=		Cyrl}', "");
+    Expect(0, 123024, '\p{Is_Sc=		Cyrl}', "");
+    Expect(1, 123024, '\p{^Is_Sc=		Cyrl}', "");
+    Expect(1, 123024, '\P{Is_Sc=		Cyrl}', "");
+    Expect(0, 123024, '\P{^Is_Sc=		Cyrl}', "");
+    Error('\p{Script=:=_devanagari}');
+    Error('\P{Script=:=_devanagari}');
+    Expect(1, 72457, '\p{Script=:\ADevanagari\z:}', "");;
+    Expect(0, 72458, '\p{Script=:\ADevanagari\z:}', "");;
+    Expect(1, 72457, '\p{Script=devanagari}', "");
+    Expect(0, 72457, '\p{^Script=devanagari}', "");
+    Expect(0, 72457, '\P{Script=devanagari}', "");
+    Expect(1, 72457, '\P{^Script=devanagari}', "");
+    Expect(0, 72458, '\p{Script=devanagari}', "");
+    Expect(1, 72458, '\p{^Script=devanagari}', "");
+    Expect(1, 72458, '\P{Script=devanagari}', "");
+    Expect(0, 72458, '\P{^Script=devanagari}', "");
+    Expect(1, 72457, '\p{Script=:\Adevanagari\z:}', "");;
+    Expect(0, 72458, '\p{Script=:\Adevanagari\z:}', "");;
+    Expect(1, 72457, '\p{Script=  devanagari}', "");
+    Expect(0, 72457, '\p{^Script=  devanagari}', "");
+    Expect(0, 72457, '\P{Script=  devanagari}', "");
+    Expect(1, 72457, '\P{^Script=  devanagari}', "");
+    Expect(0, 72458, '\p{Script=  devanagari}', "");
+    Expect(1, 72458, '\p{^Script=  devanagari}', "");
+    Expect(1, 72458, '\P{Script=  devanagari}', "");
+    Expect(0, 72458, '\P{^Script=  devanagari}', "");
+    Error('\p{Sc=	_deva:=}');
+    Error('\P{Sc=	_deva:=}');
+    Expect(1, 72457, '\p{Sc=:\ADeva\z:}', "");;
+    Expect(0, 72458, '\p{Sc=:\ADeva\z:}', "");;
+    Expect(1, 72457, '\p{Sc=deva}', "");
+    Expect(0, 72457, '\p{^Sc=deva}', "");
+    Expect(0, 72457, '\P{Sc=deva}', "");
+    Expect(1, 72457, '\P{^Sc=deva}', "");
+    Expect(0, 72458, '\p{Sc=deva}', "");
+    Expect(1, 72458, '\p{^Sc=deva}', "");
+    Expect(1, 72458, '\P{Sc=deva}', "");
+    Expect(0, 72458, '\P{^Sc=deva}', "");
+    Expect(1, 72457, '\p{Sc=:\Adeva\z:}', "");;
+    Expect(0, 72458, '\p{Sc=:\Adeva\z:}', "");;
+    Expect(1, 72457, '\p{Sc=- Deva}', "");
+    Expect(0, 72457, '\p{^Sc=- Deva}', "");
+    Expect(0, 72457, '\P{Sc=- Deva}', "");
+    Expect(1, 72457, '\P{^Sc=- Deva}', "");
+    Expect(0, 72458, '\p{Sc=- Deva}', "");
+    Expect(1, 72458, '\p{^Sc=- Deva}', "");
+    Expect(1, 72458, '\P{Sc=- Deva}', "");
+    Expect(0, 72458, '\P{^Sc=- Deva}', "");
+    Error('\p{Is_Script=:= _DEVANAGARI}');
+    Error('\P{Is_Script=:= _DEVANAGARI}');
+    Expect(1, 72457, '\p{Is_Script:	devanagari}', "");
+    Expect(0, 72457, '\p{^Is_Script:	devanagari}', "");
+    Expect(0, 72457, '\P{Is_Script:	devanagari}', "");
+    Expect(1, 72457, '\P{^Is_Script:	devanagari}', "");
+    Expect(0, 72458, '\p{Is_Script:	devanagari}', "");
+    Expect(1, 72458, '\p{^Is_Script:	devanagari}', "");
+    Expect(1, 72458, '\P{Is_Script:	devanagari}', "");
+    Expect(0, 72458, '\P{^Is_Script:	devanagari}', "");
+    Expect(1, 72457, '\p{Is_Script=- DEVANAGARI}', "");
+    Expect(0, 72457, '\p{^Is_Script=- DEVANAGARI}', "");
+    Expect(0, 72457, '\P{Is_Script=- DEVANAGARI}', "");
+    Expect(1, 72457, '\P{^Is_Script=- DEVANAGARI}', "");
+    Expect(0, 72458, '\p{Is_Script=- DEVANAGARI}', "");
+    Expect(1, 72458, '\p{^Is_Script=- DEVANAGARI}', "");
+    Expect(1, 72458, '\P{Is_Script=- DEVANAGARI}', "");
+    Expect(0, 72458, '\P{^Is_Script=- DEVANAGARI}', "");
+    Error('\p{Is_Sc=/a/	 deva}');
+    Error('\P{Is_Sc=/a/	 deva}');
+    Expect(1, 72457, '\p{Is_Sc=deva}', "");
+    Expect(0, 72457, '\p{^Is_Sc=deva}', "");
+    Expect(0, 72457, '\P{Is_Sc=deva}', "");
+    Expect(1, 72457, '\P{^Is_Sc=deva}', "");
+    Expect(0, 72458, '\p{Is_Sc=deva}', "");
+    Expect(1, 72458, '\p{^Is_Sc=deva}', "");
+    Expect(1, 72458, '\P{Is_Sc=deva}', "");
+    Expect(0, 72458, '\P{^Is_Sc=deva}', "");
+    Expect(1, 72457, '\p{Is_Sc= 	Deva}', "");
+    Expect(0, 72457, '\p{^Is_Sc= 	Deva}', "");
+    Expect(0, 72457, '\P{Is_Sc= 	Deva}', "");
+    Expect(1, 72457, '\P{^Is_Sc= 	Deva}', "");
+    Expect(0, 72458, '\p{Is_Sc= 	Deva}', "");
+    Expect(1, 72458, '\p{^Is_Sc= 	Deva}', "");
+    Expect(1, 72458, '\P{Is_Sc= 	Deva}', "");
+    Expect(0, 72458, '\P{^Is_Sc= 	Deva}', "");
+    Error('\p{Script=_:=Dives_akuru}');
+    Error('\P{Script=_:=Dives_akuru}');
     Expect(1, 72025, '\p{Script=:\ADives_Akuru\z:}', "");;
     Expect(0, 72026, '\p{Script=:\ADives_Akuru\z:}', "");;
-    Expect(1, 72025, '\p{Script:   divesakuru}', "");
-    Expect(0, 72025, '\p{^Script:   divesakuru}', "");
-    Expect(0, 72025, '\P{Script:   divesakuru}', "");
-    Expect(1, 72025, '\P{^Script:   divesakuru}', "");
-    Expect(0, 72026, '\p{Script:   divesakuru}', "");
-    Expect(1, 72026, '\p{^Script:   divesakuru}', "");
-    Expect(1, 72026, '\P{Script:   divesakuru}', "");
-    Expect(0, 72026, '\P{^Script:   divesakuru}', "");
+    Expect(1, 72025, '\p{Script=divesakuru}', "");
+    Expect(0, 72025, '\p{^Script=divesakuru}', "");
+    Expect(0, 72025, '\P{Script=divesakuru}', "");
+    Expect(1, 72025, '\P{^Script=divesakuru}', "");
+    Expect(0, 72026, '\p{Script=divesakuru}', "");
+    Expect(1, 72026, '\p{^Script=divesakuru}', "");
+    Expect(1, 72026, '\P{Script=divesakuru}', "");
+    Expect(0, 72026, '\P{^Script=divesakuru}', "");
     Expect(1, 72025, '\p{Script=:\Adivesakuru\z:}', "");;
     Expect(0, 72026, '\p{Script=:\Adivesakuru\z:}', "");;
-    Expect(1, 72025, '\p{Script:	- Dives_Akuru}', "");
-    Expect(0, 72025, '\p{^Script:	- Dives_Akuru}', "");
-    Expect(0, 72025, '\P{Script:	- Dives_Akuru}', "");
-    Expect(1, 72025, '\P{^Script:	- Dives_Akuru}', "");
-    Expect(0, 72026, '\p{Script:	- Dives_Akuru}', "");
-    Expect(1, 72026, '\p{^Script:	- Dives_Akuru}', "");
-    Expect(1, 72026, '\P{Script:	- Dives_Akuru}', "");
-    Expect(0, 72026, '\P{^Script:	- Dives_Akuru}', "");
-    Error('\p{Sc=-DIAK/a/}');
-    Error('\P{Sc=-DIAK/a/}');
+    Expect(1, 72025, '\p{Script=-	Dives_akuru}', "");
+    Expect(0, 72025, '\p{^Script=-	Dives_akuru}', "");
+    Expect(0, 72025, '\P{Script=-	Dives_akuru}', "");
+    Expect(1, 72025, '\P{^Script=-	Dives_akuru}', "");
+    Expect(0, 72026, '\p{Script=-	Dives_akuru}', "");
+    Expect(1, 72026, '\p{^Script=-	Dives_akuru}', "");
+    Expect(1, 72026, '\P{Script=-	Dives_akuru}', "");
+    Expect(0, 72026, '\P{^Script=-	Dives_akuru}', "");
+    Error('\p{Sc=-diak/a/}');
+    Error('\P{Sc=-diak/a/}');
     Expect(1, 72025, '\p{Sc=:\ADiak\z:}', "");;
     Expect(0, 72026, '\p{Sc=:\ADiak\z:}', "");;
     Expect(1, 72025, '\p{Sc=diak}', "");
@@ -130809,16 +132001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72026, '\P{^Sc=diak}', "");
     Expect(1, 72025, '\p{Sc=:\Adiak\z:}', "");;
     Expect(0, 72026, '\p{Sc=:\Adiak\z:}', "");;
-    Expect(1, 72025, '\p{Sc=	_Diak}', "");
-    Expect(0, 72025, '\p{^Sc=	_Diak}', "");
-    Expect(0, 72025, '\P{Sc=	_Diak}', "");
-    Expect(1, 72025, '\P{^Sc=	_Diak}', "");
-    Expect(0, 72026, '\p{Sc=	_Diak}', "");
-    Expect(1, 72026, '\p{^Sc=	_Diak}', "");
-    Expect(1, 72026, '\P{Sc=	_Diak}', "");
-    Expect(0, 72026, '\P{^Sc=	_Diak}', "");
-    Error('\p{Is_Script=:=-	Dives_AKURU}');
-    Error('\P{Is_Script=:=-	Dives_AKURU}');
+    Expect(1, 72025, '\p{Sc=	-DIAK}', "");
+    Expect(0, 72025, '\p{^Sc=	-DIAK}', "");
+    Expect(0, 72025, '\P{Sc=	-DIAK}', "");
+    Expect(1, 72025, '\P{^Sc=	-DIAK}', "");
+    Expect(0, 72026, '\p{Sc=	-DIAK}', "");
+    Expect(1, 72026, '\p{^Sc=	-DIAK}', "");
+    Expect(1, 72026, '\P{Sc=	-DIAK}', "");
+    Expect(0, 72026, '\P{^Sc=	-DIAK}', "");
+    Error('\p{Is_Script= _Dives_AKURU:=}');
+    Error('\P{Is_Script= _Dives_AKURU:=}');
     Expect(1, 72025, '\p{Is_Script=divesakuru}', "");
     Expect(0, 72025, '\p{^Is_Script=divesakuru}', "");
     Expect(0, 72025, '\P{Is_Script=divesakuru}', "");
@@ -130827,16 +132019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72026, '\p{^Is_Script=divesakuru}', "");
     Expect(1, 72026, '\P{Is_Script=divesakuru}', "");
     Expect(0, 72026, '\P{^Is_Script=divesakuru}', "");
-    Expect(1, 72025, '\p{Is_Script=--dives_Akuru}', "");
-    Expect(0, 72025, '\p{^Is_Script=--dives_Akuru}', "");
-    Expect(0, 72025, '\P{Is_Script=--dives_Akuru}', "");
-    Expect(1, 72025, '\P{^Is_Script=--dives_Akuru}', "");
-    Expect(0, 72026, '\p{Is_Script=--dives_Akuru}', "");
-    Expect(1, 72026, '\p{^Is_Script=--dives_Akuru}', "");
-    Expect(1, 72026, '\P{Is_Script=--dives_Akuru}', "");
-    Expect(0, 72026, '\P{^Is_Script=--dives_Akuru}', "");
-    Error('\p{Is_Sc=:=-DIAK}');
-    Error('\P{Is_Sc=:=-DIAK}');
+    Expect(1, 72025, '\p{Is_Script=-_dives_akuru}', "");
+    Expect(0, 72025, '\p{^Is_Script=-_dives_akuru}', "");
+    Expect(0, 72025, '\P{Is_Script=-_dives_akuru}', "");
+    Expect(1, 72025, '\P{^Is_Script=-_dives_akuru}', "");
+    Expect(0, 72026, '\p{Is_Script=-_dives_akuru}', "");
+    Expect(1, 72026, '\p{^Is_Script=-_dives_akuru}', "");
+    Expect(1, 72026, '\P{Is_Script=-_dives_akuru}', "");
+    Expect(0, 72026, '\P{^Is_Script=-_dives_akuru}', "");
+    Error('\p{Is_Sc=-:=Diak}');
+    Error('\P{Is_Sc=-:=Diak}');
     Expect(1, 72025, '\p{Is_Sc=diak}', "");
     Expect(0, 72025, '\p{^Is_Sc=diak}', "");
     Expect(0, 72025, '\P{Is_Sc=diak}', "");
@@ -130845,16 +132037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72026, '\p{^Is_Sc=diak}', "");
     Expect(1, 72026, '\P{Is_Sc=diak}', "");
     Expect(0, 72026, '\P{^Is_Sc=diak}', "");
-    Expect(1, 72025, '\p{Is_Sc= 	DIAK}', "");
-    Expect(0, 72025, '\p{^Is_Sc= 	DIAK}', "");
-    Expect(0, 72025, '\P{Is_Sc= 	DIAK}', "");
-    Expect(1, 72025, '\P{^Is_Sc= 	DIAK}', "");
-    Expect(0, 72026, '\p{Is_Sc= 	DIAK}', "");
-    Expect(1, 72026, '\p{^Is_Sc= 	DIAK}', "");
-    Expect(1, 72026, '\P{Is_Sc= 	DIAK}', "");
-    Expect(0, 72026, '\P{^Is_Sc= 	DIAK}', "");
-    Error('\p{Script= /a/Dogra}');
-    Error('\P{Script= /a/Dogra}');
+    Expect(1, 72025, '\p{Is_Sc=	_Diak}', "");
+    Expect(0, 72025, '\p{^Is_Sc=	_Diak}', "");
+    Expect(0, 72025, '\P{Is_Sc=	_Diak}', "");
+    Expect(1, 72025, '\P{^Is_Sc=	_Diak}', "");
+    Expect(0, 72026, '\p{Is_Sc=	_Diak}', "");
+    Expect(1, 72026, '\p{^Is_Sc=	_Diak}', "");
+    Expect(1, 72026, '\P{Is_Sc=	_Diak}', "");
+    Expect(0, 72026, '\P{^Is_Sc=	_Diak}', "");
+    Error('\p{Script=_:=Dogra}');
+    Error('\P{Script=_:=Dogra}');
     Expect(1, 71739, '\p{Script=:\ADogra\z:}', "");;
     Expect(0, 71740, '\p{Script=:\ADogra\z:}', "");;
     Expect(1, 71739, '\p{Script=dogra}', "");
@@ -130867,16 +132059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71740, '\P{^Script=dogra}', "");
     Expect(1, 71739, '\p{Script=:\Adogra\z:}', "");;
     Expect(0, 71740, '\p{Script=:\Adogra\z:}', "");;
-    Expect(1, 71739, '\p{Script=_-DOGRA}', "");
-    Expect(0, 71739, '\p{^Script=_-DOGRA}', "");
-    Expect(0, 71739, '\P{Script=_-DOGRA}', "");
-    Expect(1, 71739, '\P{^Script=_-DOGRA}', "");
-    Expect(0, 71740, '\p{Script=_-DOGRA}', "");
-    Expect(1, 71740, '\p{^Script=_-DOGRA}', "");
-    Expect(1, 71740, '\P{Script=_-DOGRA}', "");
-    Expect(0, 71740, '\P{^Script=_-DOGRA}', "");
-    Error('\p{Sc=		Dogr/a/}');
-    Error('\P{Sc=		Dogr/a/}');
+    Expect(1, 71739, '\p{Script= _Dogra}', "");
+    Expect(0, 71739, '\p{^Script= _Dogra}', "");
+    Expect(0, 71739, '\P{Script= _Dogra}', "");
+    Expect(1, 71739, '\P{^Script= _Dogra}', "");
+    Expect(0, 71740, '\p{Script= _Dogra}', "");
+    Expect(1, 71740, '\p{^Script= _Dogra}', "");
+    Expect(1, 71740, '\P{Script= _Dogra}', "");
+    Expect(0, 71740, '\P{^Script= _Dogra}', "");
+    Error('\p{Sc=-dogr:=}');
+    Error('\P{Sc=-dogr:=}');
     Expect(1, 71739, '\p{Sc=:\ADogr\z:}', "");;
     Expect(0, 71740, '\p{Sc=:\ADogr\z:}', "");;
     Expect(1, 71739, '\p{Sc=dogr}', "");
@@ -130889,16 +132081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71740, '\P{^Sc=dogr}', "");
     Expect(1, 71739, '\p{Sc=:\Adogr\z:}', "");;
     Expect(0, 71740, '\p{Sc=:\Adogr\z:}', "");;
-    Expect(1, 71739, '\p{Sc=_-Dogr}', "");
-    Expect(0, 71739, '\p{^Sc=_-Dogr}', "");
-    Expect(0, 71739, '\P{Sc=_-Dogr}', "");
-    Expect(1, 71739, '\P{^Sc=_-Dogr}', "");
-    Expect(0, 71740, '\p{Sc=_-Dogr}', "");
-    Expect(1, 71740, '\p{^Sc=_-Dogr}', "");
-    Expect(1, 71740, '\P{Sc=_-Dogr}', "");
-    Expect(0, 71740, '\P{^Sc=_-Dogr}', "");
-    Error('\p{Is_Script=:=Dogra}');
-    Error('\P{Is_Script=:=Dogra}');
+    Expect(1, 71739, '\p{Sc=	Dogr}', "");
+    Expect(0, 71739, '\p{^Sc=	Dogr}', "");
+    Expect(0, 71739, '\P{Sc=	Dogr}', "");
+    Expect(1, 71739, '\P{^Sc=	Dogr}', "");
+    Expect(0, 71740, '\p{Sc=	Dogr}', "");
+    Expect(1, 71740, '\p{^Sc=	Dogr}', "");
+    Expect(1, 71740, '\P{Sc=	Dogr}', "");
+    Expect(0, 71740, '\P{^Sc=	Dogr}', "");
+    Error('\p{Is_Script=:=DOGRA}');
+    Error('\P{Is_Script=:=DOGRA}');
     Expect(1, 71739, '\p{Is_Script=dogra}', "");
     Expect(0, 71739, '\p{^Is_Script=dogra}', "");
     Expect(0, 71739, '\P{Is_Script=dogra}', "");
@@ -130907,16 +132099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71740, '\p{^Is_Script=dogra}', "");
     Expect(1, 71740, '\P{Is_Script=dogra}', "");
     Expect(0, 71740, '\P{^Is_Script=dogra}', "");
-    Expect(1, 71739, '\p{Is_Script=_	Dogra}', "");
-    Expect(0, 71739, '\p{^Is_Script=_	Dogra}', "");
-    Expect(0, 71739, '\P{Is_Script=_	Dogra}', "");
-    Expect(1, 71739, '\P{^Is_Script=_	Dogra}', "");
-    Expect(0, 71740, '\p{Is_Script=_	Dogra}', "");
-    Expect(1, 71740, '\p{^Is_Script=_	Dogra}', "");
-    Expect(1, 71740, '\P{Is_Script=_	Dogra}', "");
-    Expect(0, 71740, '\P{^Is_Script=_	Dogra}', "");
-    Error('\p{Is_Sc=	-DOGR/a/}');
-    Error('\P{Is_Sc=	-DOGR/a/}');
+    Expect(1, 71739, '\p{Is_Script=_Dogra}', "");
+    Expect(0, 71739, '\p{^Is_Script=_Dogra}', "");
+    Expect(0, 71739, '\P{Is_Script=_Dogra}', "");
+    Expect(1, 71739, '\P{^Is_Script=_Dogra}', "");
+    Expect(0, 71740, '\p{Is_Script=_Dogra}', "");
+    Expect(1, 71740, '\p{^Is_Script=_Dogra}', "");
+    Expect(1, 71740, '\P{Is_Script=_Dogra}', "");
+    Expect(0, 71740, '\P{^Is_Script=_Dogra}', "");
+    Error('\p{Is_Sc= :=Dogr}');
+    Error('\P{Is_Sc= :=Dogr}');
     Expect(1, 71739, '\p{Is_Sc=dogr}', "");
     Expect(0, 71739, '\p{^Is_Sc=dogr}', "");
     Expect(0, 71739, '\P{Is_Sc=dogr}', "");
@@ -130925,16 +132117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71740, '\p{^Is_Sc=dogr}', "");
     Expect(1, 71740, '\P{Is_Sc=dogr}', "");
     Expect(0, 71740, '\P{^Is_Sc=dogr}', "");
-    Expect(1, 71739, '\p{Is_Sc=_dogr}', "");
-    Expect(0, 71739, '\p{^Is_Sc=_dogr}', "");
-    Expect(0, 71739, '\P{Is_Sc=_dogr}', "");
-    Expect(1, 71739, '\P{^Is_Sc=_dogr}', "");
-    Expect(0, 71740, '\p{Is_Sc=_dogr}', "");
-    Expect(1, 71740, '\p{^Is_Sc=_dogr}', "");
-    Expect(1, 71740, '\P{Is_Sc=_dogr}', "");
-    Expect(0, 71740, '\P{^Is_Sc=_dogr}', "");
-    Error('\p{Script=/a/-	Deseret}');
-    Error('\P{Script=/a/-	Deseret}');
+    Expect(1, 71739, '\p{Is_Sc=-Dogr}', "");
+    Expect(0, 71739, '\p{^Is_Sc=-Dogr}', "");
+    Expect(0, 71739, '\P{Is_Sc=-Dogr}', "");
+    Expect(1, 71739, '\P{^Is_Sc=-Dogr}', "");
+    Expect(0, 71740, '\p{Is_Sc=-Dogr}', "");
+    Expect(1, 71740, '\p{^Is_Sc=-Dogr}', "");
+    Expect(1, 71740, '\P{Is_Sc=-Dogr}', "");
+    Expect(0, 71740, '\P{^Is_Sc=-Dogr}', "");
+    Error('\p{Script:	/a/-deseret}');
+    Error('\P{Script:	/a/-deseret}');
     Expect(1, 66639, '\p{Script=:\ADeseret\z:}', "");;
     Expect(0, 66640, '\p{Script=:\ADeseret\z:}', "");;
     Expect(1, 66639, '\p{Script=deseret}', "");
@@ -130947,16 +132139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66640, '\P{^Script=deseret}', "");
     Expect(1, 66639, '\p{Script=:\Adeseret\z:}', "");;
     Expect(0, 66640, '\p{Script=:\Adeseret\z:}', "");;
-    Expect(1, 66639, '\p{Script=- Deseret}', "");
-    Expect(0, 66639, '\p{^Script=- Deseret}', "");
-    Expect(0, 66639, '\P{Script=- Deseret}', "");
-    Expect(1, 66639, '\P{^Script=- Deseret}', "");
-    Expect(0, 66640, '\p{Script=- Deseret}', "");
-    Expect(1, 66640, '\p{^Script=- Deseret}', "");
-    Expect(1, 66640, '\P{Script=- Deseret}', "");
-    Expect(0, 66640, '\P{^Script=- Deseret}', "");
-    Error('\p{Sc=:= -DSRT}');
-    Error('\P{Sc=:= -DSRT}');
+    Expect(1, 66639, '\p{Script=-_DESERET}', "");
+    Expect(0, 66639, '\p{^Script=-_DESERET}', "");
+    Expect(0, 66639, '\P{Script=-_DESERET}', "");
+    Expect(1, 66639, '\P{^Script=-_DESERET}', "");
+    Expect(0, 66640, '\p{Script=-_DESERET}', "");
+    Expect(1, 66640, '\p{^Script=-_DESERET}', "");
+    Expect(1, 66640, '\P{Script=-_DESERET}', "");
+    Expect(0, 66640, '\P{^Script=-_DESERET}', "");
+    Error('\p{Sc=/a/	 Dsrt}');
+    Error('\P{Sc=/a/	 Dsrt}');
     Expect(1, 66639, '\p{Sc=:\ADsrt\z:}', "");;
     Expect(0, 66640, '\p{Sc=:\ADsrt\z:}', "");;
     Expect(1, 66639, '\p{Sc=dsrt}', "");
@@ -130969,34 +132161,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66640, '\P{^Sc=dsrt}', "");
     Expect(1, 66639, '\p{Sc=:\Adsrt\z:}', "");;
     Expect(0, 66640, '\p{Sc=:\Adsrt\z:}', "");;
-    Expect(1, 66639, '\p{Sc=_	dsrt}', "");
-    Expect(0, 66639, '\p{^Sc=_	dsrt}', "");
-    Expect(0, 66639, '\P{Sc=_	dsrt}', "");
-    Expect(1, 66639, '\P{^Sc=_	dsrt}', "");
-    Expect(0, 66640, '\p{Sc=_	dsrt}', "");
-    Expect(1, 66640, '\p{^Sc=_	dsrt}', "");
-    Expect(1, 66640, '\P{Sc=_	dsrt}', "");
-    Expect(0, 66640, '\P{^Sc=_	dsrt}', "");
-    Error('\p{Is_Script=:=	Deseret}');
-    Error('\P{Is_Script=:=	Deseret}');
-    Expect(1, 66639, '\p{Is_Script:	deseret}', "");
-    Expect(0, 66639, '\p{^Is_Script:	deseret}', "");
-    Expect(0, 66639, '\P{Is_Script:	deseret}', "");
-    Expect(1, 66639, '\P{^Is_Script:	deseret}', "");
-    Expect(0, 66640, '\p{Is_Script:	deseret}', "");
-    Expect(1, 66640, '\p{^Is_Script:	deseret}', "");
-    Expect(1, 66640, '\P{Is_Script:	deseret}', "");
-    Expect(0, 66640, '\P{^Is_Script:	deseret}', "");
-    Expect(1, 66639, '\p{Is_Script=__Deseret}', "");
-    Expect(0, 66639, '\p{^Is_Script=__Deseret}', "");
-    Expect(0, 66639, '\P{Is_Script=__Deseret}', "");
-    Expect(1, 66639, '\P{^Is_Script=__Deseret}', "");
-    Expect(0, 66640, '\p{Is_Script=__Deseret}', "");
-    Expect(1, 66640, '\p{^Is_Script=__Deseret}', "");
-    Expect(1, 66640, '\P{Is_Script=__Deseret}', "");
-    Expect(0, 66640, '\P{^Is_Script=__Deseret}', "");
-    Error('\p{Is_Sc=_ Dsrt:=}');
-    Error('\P{Is_Sc=_ Dsrt:=}');
+    Expect(1, 66639, '\p{Sc=--DSRT}', "");
+    Expect(0, 66639, '\p{^Sc=--DSRT}', "");
+    Expect(0, 66639, '\P{Sc=--DSRT}', "");
+    Expect(1, 66639, '\P{^Sc=--DSRT}', "");
+    Expect(0, 66640, '\p{Sc=--DSRT}', "");
+    Expect(1, 66640, '\p{^Sc=--DSRT}', "");
+    Expect(1, 66640, '\P{Sc=--DSRT}', "");
+    Expect(0, 66640, '\P{^Sc=--DSRT}', "");
+    Error('\p{Is_Script=/a/	DESERET}');
+    Error('\P{Is_Script=/a/	DESERET}');
+    Expect(1, 66639, '\p{Is_Script=deseret}', "");
+    Expect(0, 66639, '\p{^Is_Script=deseret}', "");
+    Expect(0, 66639, '\P{Is_Script=deseret}', "");
+    Expect(1, 66639, '\P{^Is_Script=deseret}', "");
+    Expect(0, 66640, '\p{Is_Script=deseret}', "");
+    Expect(1, 66640, '\p{^Is_Script=deseret}', "");
+    Expect(1, 66640, '\P{Is_Script=deseret}', "");
+    Expect(0, 66640, '\P{^Is_Script=deseret}', "");
+    Expect(1, 66639, '\p{Is_Script= 	Deseret}', "");
+    Expect(0, 66639, '\p{^Is_Script= 	Deseret}', "");
+    Expect(0, 66639, '\P{Is_Script= 	Deseret}', "");
+    Expect(1, 66639, '\P{^Is_Script= 	Deseret}', "");
+    Expect(0, 66640, '\p{Is_Script= 	Deseret}', "");
+    Expect(1, 66640, '\p{^Is_Script= 	Deseret}', "");
+    Expect(1, 66640, '\P{Is_Script= 	Deseret}', "");
+    Expect(0, 66640, '\P{^Is_Script= 	Deseret}', "");
+    Error('\p{Is_Sc=-Dsrt:=}');
+    Error('\P{Is_Sc=-Dsrt:=}');
     Expect(1, 66639, '\p{Is_Sc=dsrt}', "");
     Expect(0, 66639, '\p{^Is_Sc=dsrt}', "");
     Expect(0, 66639, '\P{Is_Sc=dsrt}', "");
@@ -131005,16 +132197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66640, '\p{^Is_Sc=dsrt}', "");
     Expect(1, 66640, '\P{Is_Sc=dsrt}', "");
     Expect(0, 66640, '\P{^Is_Sc=dsrt}', "");
-    Expect(1, 66639, '\p{Is_Sc=- DSRT}', "");
-    Expect(0, 66639, '\p{^Is_Sc=- DSRT}', "");
-    Expect(0, 66639, '\P{Is_Sc=- DSRT}', "");
-    Expect(1, 66639, '\P{^Is_Sc=- DSRT}', "");
-    Expect(0, 66640, '\p{Is_Sc=- DSRT}', "");
-    Expect(1, 66640, '\p{^Is_Sc=- DSRT}', "");
-    Expect(1, 66640, '\P{Is_Sc=- DSRT}', "");
-    Expect(0, 66640, '\P{^Is_Sc=- DSRT}', "");
-    Error('\p{Script=-_DUPLOYAN:=}');
-    Error('\P{Script=-_DUPLOYAN:=}');
+    Expect(1, 66639, '\p{Is_Sc=  Dsrt}', "");
+    Expect(0, 66639, '\p{^Is_Sc=  Dsrt}', "");
+    Expect(0, 66639, '\P{Is_Sc=  Dsrt}', "");
+    Expect(1, 66639, '\P{^Is_Sc=  Dsrt}', "");
+    Expect(0, 66640, '\p{Is_Sc=  Dsrt}', "");
+    Expect(1, 66640, '\p{^Is_Sc=  Dsrt}', "");
+    Expect(1, 66640, '\P{Is_Sc=  Dsrt}', "");
+    Expect(0, 66640, '\P{^Is_Sc=  Dsrt}', "");
+    Error('\p{Script= /a/duployan}');
+    Error('\P{Script= /a/duployan}');
     Expect(1, 113823, '\p{Script=:\ADuployan\z:}', "");;
     Expect(0, 113824, '\p{Script=:\ADuployan\z:}', "");;
     Expect(1, 113823, '\p{Script=duployan}', "");
@@ -131027,38 +132219,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 113824, '\P{^Script=duployan}', "");
     Expect(1, 113823, '\p{Script=:\Aduployan\z:}', "");;
     Expect(0, 113824, '\p{Script=:\Aduployan\z:}', "");;
-    Expect(1, 113823, '\p{Script=_	Duployan}', "");
-    Expect(0, 113823, '\p{^Script=_	Duployan}', "");
-    Expect(0, 113823, '\P{Script=_	Duployan}', "");
-    Expect(1, 113823, '\P{^Script=_	Duployan}', "");
-    Expect(0, 113824, '\p{Script=_	Duployan}', "");
-    Expect(1, 113824, '\p{^Script=_	Duployan}', "");
-    Expect(1, 113824, '\P{Script=_	Duployan}', "");
-    Expect(0, 113824, '\P{^Script=_	Duployan}', "");
-    Error('\p{Sc=__dupl:=}');
-    Error('\P{Sc=__dupl:=}');
+    Expect(1, 113823, '\p{Script=	_DUPLOYAN}', "");
+    Expect(0, 113823, '\p{^Script=	_DUPLOYAN}', "");
+    Expect(0, 113823, '\P{Script=	_DUPLOYAN}', "");
+    Expect(1, 113823, '\P{^Script=	_DUPLOYAN}', "");
+    Expect(0, 113824, '\p{Script=	_DUPLOYAN}', "");
+    Expect(1, 113824, '\p{^Script=	_DUPLOYAN}', "");
+    Expect(1, 113824, '\P{Script=	_DUPLOYAN}', "");
+    Expect(0, 113824, '\P{^Script=	_DUPLOYAN}', "");
+    Error('\p{Sc=/a/_-DUPL}');
+    Error('\P{Sc=/a/_-DUPL}');
     Expect(1, 113823, '\p{Sc=:\ADupl\z:}', "");;
     Expect(0, 113824, '\p{Sc=:\ADupl\z:}', "");;
-    Expect(1, 113823, '\p{Sc:   dupl}', "");
-    Expect(0, 113823, '\p{^Sc:   dupl}', "");
-    Expect(0, 113823, '\P{Sc:   dupl}', "");
-    Expect(1, 113823, '\P{^Sc:   dupl}', "");
-    Expect(0, 113824, '\p{Sc:   dupl}', "");
-    Expect(1, 113824, '\p{^Sc:   dupl}', "");
-    Expect(1, 113824, '\P{Sc:   dupl}', "");
-    Expect(0, 113824, '\P{^Sc:   dupl}', "");
+    Expect(1, 113823, '\p{Sc=dupl}', "");
+    Expect(0, 113823, '\p{^Sc=dupl}', "");
+    Expect(0, 113823, '\P{Sc=dupl}', "");
+    Expect(1, 113823, '\P{^Sc=dupl}', "");
+    Expect(0, 113824, '\p{Sc=dupl}', "");
+    Expect(1, 113824, '\p{^Sc=dupl}', "");
+    Expect(1, 113824, '\P{Sc=dupl}', "");
+    Expect(0, 113824, '\P{^Sc=dupl}', "");
     Expect(1, 113823, '\p{Sc=:\Adupl\z:}', "");;
     Expect(0, 113824, '\p{Sc=:\Adupl\z:}', "");;
-    Expect(1, 113823, '\p{Sc=--dupl}', "");
-    Expect(0, 113823, '\p{^Sc=--dupl}', "");
-    Expect(0, 113823, '\P{Sc=--dupl}', "");
-    Expect(1, 113823, '\P{^Sc=--dupl}', "");
-    Expect(0, 113824, '\p{Sc=--dupl}', "");
-    Expect(1, 113824, '\p{^Sc=--dupl}', "");
-    Expect(1, 113824, '\P{Sc=--dupl}', "");
-    Expect(0, 113824, '\P{^Sc=--dupl}', "");
-    Error('\p{Is_Script=:= Duployan}');
-    Error('\P{Is_Script=:= Duployan}');
+    Expect(1, 113823, '\p{Sc=	 dupl}', "");
+    Expect(0, 113823, '\p{^Sc=	 dupl}', "");
+    Expect(0, 113823, '\P{Sc=	 dupl}', "");
+    Expect(1, 113823, '\P{^Sc=	 dupl}', "");
+    Expect(0, 113824, '\p{Sc=	 dupl}', "");
+    Expect(1, 113824, '\p{^Sc=	 dupl}', "");
+    Expect(1, 113824, '\P{Sc=	 dupl}', "");
+    Expect(0, 113824, '\P{^Sc=	 dupl}', "");
+    Error('\p{Is_Script=:=_-Duployan}');
+    Error('\P{Is_Script=:=_-Duployan}');
     Expect(1, 113823, '\p{Is_Script=duployan}', "");
     Expect(0, 113823, '\p{^Is_Script=duployan}', "");
     Expect(0, 113823, '\P{Is_Script=duployan}', "");
@@ -131067,158 +132259,158 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 113824, '\p{^Is_Script=duployan}', "");
     Expect(1, 113824, '\P{Is_Script=duployan}', "");
     Expect(0, 113824, '\P{^Is_Script=duployan}', "");
-    Expect(1, 113823, '\p{Is_Script=- Duployan}', "");
-    Expect(0, 113823, '\p{^Is_Script=- Duployan}', "");
-    Expect(0, 113823, '\P{Is_Script=- Duployan}', "");
-    Expect(1, 113823, '\P{^Is_Script=- Duployan}', "");
-    Expect(0, 113824, '\p{Is_Script=- Duployan}', "");
-    Expect(1, 113824, '\p{^Is_Script=- Duployan}', "");
-    Expect(1, 113824, '\P{Is_Script=- Duployan}', "");
-    Expect(0, 113824, '\P{^Is_Script=- Duployan}', "");
-    Error('\p{Is_Sc=  Dupl/a/}');
-    Error('\P{Is_Sc=  Dupl/a/}');
-    Expect(1, 113823, '\p{Is_Sc=dupl}', "");
-    Expect(0, 113823, '\p{^Is_Sc=dupl}', "");
-    Expect(0, 113823, '\P{Is_Sc=dupl}', "");
-    Expect(1, 113823, '\P{^Is_Sc=dupl}', "");
-    Expect(0, 113824, '\p{Is_Sc=dupl}', "");
-    Expect(1, 113824, '\p{^Is_Sc=dupl}', "");
-    Expect(1, 113824, '\P{Is_Sc=dupl}', "");
-    Expect(0, 113824, '\P{^Is_Sc=dupl}', "");
-    Expect(1, 113823, '\p{Is_Sc=Dupl}', "");
-    Expect(0, 113823, '\p{^Is_Sc=Dupl}', "");
-    Expect(0, 113823, '\P{Is_Sc=Dupl}', "");
-    Expect(1, 113823, '\P{^Is_Sc=Dupl}', "");
-    Expect(0, 113824, '\p{Is_Sc=Dupl}', "");
-    Expect(1, 113824, '\p{^Is_Sc=Dupl}', "");
-    Expect(1, 113824, '\P{Is_Sc=Dupl}', "");
-    Expect(0, 113824, '\P{^Is_Sc=Dupl}', "");
-    Error('\p{Script=/a/--EGYPTIAN_hieroglyphs}');
-    Error('\P{Script=/a/--EGYPTIAN_hieroglyphs}');
-    Expect(1, 78904, '\p{Script=:\AEgyptian_Hieroglyphs\z:}', "");;
-    Expect(0, 78905, '\p{Script=:\AEgyptian_Hieroglyphs\z:}', "");;
-    Expect(1, 78904, '\p{Script=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\p{^Script=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\P{Script=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\P{^Script=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\p{Script=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\p{^Script=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\P{Script=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\P{^Script=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\p{Script=:\Aegyptianhieroglyphs\z:}', "");;
-    Expect(0, 78905, '\p{Script=:\Aegyptianhieroglyphs\z:}', "");;
-    Expect(1, 78904, '\p{Script=	Egyptian_Hieroglyphs}', "");
-    Expect(0, 78904, '\p{^Script=	Egyptian_Hieroglyphs}', "");
-    Expect(0, 78904, '\P{Script=	Egyptian_Hieroglyphs}', "");
-    Expect(1, 78904, '\P{^Script=	Egyptian_Hieroglyphs}', "");
-    Expect(0, 78905, '\p{Script=	Egyptian_Hieroglyphs}', "");
-    Expect(1, 78905, '\p{^Script=	Egyptian_Hieroglyphs}', "");
-    Expect(1, 78905, '\P{Script=	Egyptian_Hieroglyphs}', "");
-    Expect(0, 78905, '\P{^Script=	Egyptian_Hieroglyphs}', "");
-    Error('\p{Sc=:=	_Egyp}');
-    Error('\P{Sc=:=	_Egyp}');
-    Expect(1, 78904, '\p{Sc=:\AEgyp\z:}', "");;
-    Expect(0, 78905, '\p{Sc=:\AEgyp\z:}', "");;
-    Expect(1, 78904, '\p{Sc=egyp}', "");
-    Expect(0, 78904, '\p{^Sc=egyp}', "");
-    Expect(0, 78904, '\P{Sc=egyp}', "");
-    Expect(1, 78904, '\P{^Sc=egyp}', "");
-    Expect(0, 78905, '\p{Sc=egyp}', "");
-    Expect(1, 78905, '\p{^Sc=egyp}', "");
-    Expect(1, 78905, '\P{Sc=egyp}', "");
-    Expect(0, 78905, '\P{^Sc=egyp}', "");
-    Expect(1, 78904, '\p{Sc=:\Aegyp\z:}', "");;
-    Expect(0, 78905, '\p{Sc=:\Aegyp\z:}', "");;
-    Expect(1, 78904, '\p{Sc=	egyp}', "");
-    Expect(0, 78904, '\p{^Sc=	egyp}', "");
-    Expect(0, 78904, '\P{Sc=	egyp}', "");
-    Expect(1, 78904, '\P{^Sc=	egyp}', "");
-    Expect(0, 78905, '\p{Sc=	egyp}', "");
-    Expect(1, 78905, '\p{^Sc=	egyp}', "");
-    Expect(1, 78905, '\P{Sc=	egyp}', "");
-    Expect(0, 78905, '\P{^Sc=	egyp}', "");
-    Error('\p{Is_Script=:=  Egyptian_hieroglyphs}');
-    Error('\P{Is_Script=:=  Egyptian_hieroglyphs}');
-    Expect(1, 78904, '\p{Is_Script=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\p{^Is_Script=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\P{Is_Script=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\P{^Is_Script=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\p{Is_Script=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\p{^Is_Script=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\P{Is_Script=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\P{^Is_Script=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\p{Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(0, 78904, '\p{^Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(0, 78904, '\P{Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(1, 78904, '\P{^Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(0, 78905, '\p{Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(1, 78905, '\p{^Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(1, 78905, '\P{Is_Script=	_egyptian_Hieroglyphs}', "");
-    Expect(0, 78905, '\P{^Is_Script=	_egyptian_Hieroglyphs}', "");
-    Error('\p{Is_Sc=-/a/egyp}');
-    Error('\P{Is_Sc=-/a/egyp}');
-    Expect(1, 78904, '\p{Is_Sc=egyp}', "");
-    Expect(0, 78904, '\p{^Is_Sc=egyp}', "");
-    Expect(0, 78904, '\P{Is_Sc=egyp}', "");
-    Expect(1, 78904, '\P{^Is_Sc=egyp}', "");
-    Expect(0, 78905, '\p{Is_Sc=egyp}', "");
-    Expect(1, 78905, '\p{^Is_Sc=egyp}', "");
-    Expect(1, 78905, '\P{Is_Sc=egyp}', "");
-    Expect(0, 78905, '\P{^Is_Sc=egyp}', "");
-    Expect(1, 78904, '\p{Is_Sc=- EGYP}', "");
-    Expect(0, 78904, '\p{^Is_Sc=- EGYP}', "");
-    Expect(0, 78904, '\P{Is_Sc=- EGYP}', "");
-    Expect(1, 78904, '\P{^Is_Sc=- EGYP}', "");
-    Expect(0, 78905, '\p{Is_Sc=- EGYP}', "");
-    Expect(1, 78905, '\p{^Is_Sc=- EGYP}', "");
-    Expect(1, 78905, '\P{Is_Sc=- EGYP}', "");
-    Expect(0, 78905, '\P{^Is_Sc=- EGYP}', "");
-    Error('\p{Script=-_ELBASAN:=}');
-    Error('\P{Script=-_ELBASAN:=}');
+    Expect(1, 113823, '\p{Is_Script=__Duployan}', "");
+    Expect(0, 113823, '\p{^Is_Script=__Duployan}', "");
+    Expect(0, 113823, '\P{Is_Script=__Duployan}', "");
+    Expect(1, 113823, '\P{^Is_Script=__Duployan}', "");
+    Expect(0, 113824, '\p{Is_Script=__Duployan}', "");
+    Expect(1, 113824, '\p{^Is_Script=__Duployan}', "");
+    Expect(1, 113824, '\P{Is_Script=__Duployan}', "");
+    Expect(0, 113824, '\P{^Is_Script=__Duployan}', "");
+    Error('\p{Is_Sc=:=Dupl}');
+    Error('\P{Is_Sc=:=Dupl}');
+    Expect(1, 113823, '\p{Is_Sc:	dupl}', "");
+    Expect(0, 113823, '\p{^Is_Sc:	dupl}', "");
+    Expect(0, 113823, '\P{Is_Sc:	dupl}', "");
+    Expect(1, 113823, '\P{^Is_Sc:	dupl}', "");
+    Expect(0, 113824, '\p{Is_Sc:	dupl}', "");
+    Expect(1, 113824, '\p{^Is_Sc:	dupl}', "");
+    Expect(1, 113824, '\P{Is_Sc:	dupl}', "");
+    Expect(0, 113824, '\P{^Is_Sc:	dupl}', "");
+    Expect(1, 113823, '\p{Is_Sc= Dupl}', "");
+    Expect(0, 113823, '\p{^Is_Sc= Dupl}', "");
+    Expect(0, 113823, '\P{Is_Sc= Dupl}', "");
+    Expect(1, 113823, '\P{^Is_Sc= Dupl}', "");
+    Expect(0, 113824, '\p{Is_Sc= Dupl}', "");
+    Expect(1, 113824, '\p{^Is_Sc= Dupl}', "");
+    Expect(1, 113824, '\P{Is_Sc= Dupl}', "");
+    Expect(0, 113824, '\P{^Is_Sc= Dupl}', "");
+    Error('\p{Script=:=	Egyptian_Hieroglyphs}');
+    Error('\P{Script=:=	Egyptian_Hieroglyphs}');
+    Expect(1, 78933, '\p{Script=:\AEgyptian_Hieroglyphs\z:}', "");;
+    Expect(0, 78934, '\p{Script=:\AEgyptian_Hieroglyphs\z:}', "");;
+    Expect(1, 78933, '\p{Script=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\p{^Script=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\P{Script=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\P{^Script=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\p{Script=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\p{^Script=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\P{Script=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\P{^Script=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\p{Script=:\Aegyptianhieroglyphs\z:}', "");;
+    Expect(0, 78934, '\p{Script=:\Aegyptianhieroglyphs\z:}', "");;
+    Expect(1, 78933, '\p{Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(0, 78933, '\p{^Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(0, 78933, '\P{Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(1, 78933, '\P{^Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(0, 78934, '\p{Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(1, 78934, '\p{^Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(1, 78934, '\P{Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Expect(0, 78934, '\P{^Script=	EGYPTIAN_HIEROGLYPHS}', "");
+    Error('\p{Sc=/a/  EGYP}');
+    Error('\P{Sc=/a/  EGYP}');
+    Expect(1, 78933, '\p{Sc=:\AEgyp\z:}', "");;
+    Expect(0, 78934, '\p{Sc=:\AEgyp\z:}', "");;
+    Expect(1, 78933, '\p{Sc=egyp}', "");
+    Expect(0, 78933, '\p{^Sc=egyp}', "");
+    Expect(0, 78933, '\P{Sc=egyp}', "");
+    Expect(1, 78933, '\P{^Sc=egyp}', "");
+    Expect(0, 78934, '\p{Sc=egyp}', "");
+    Expect(1, 78934, '\p{^Sc=egyp}', "");
+    Expect(1, 78934, '\P{Sc=egyp}', "");
+    Expect(0, 78934, '\P{^Sc=egyp}', "");
+    Expect(1, 78933, '\p{Sc=:\Aegyp\z:}', "");;
+    Expect(0, 78934, '\p{Sc=:\Aegyp\z:}', "");;
+    Expect(1, 78933, '\p{Sc:  egyp}', "");
+    Expect(0, 78933, '\p{^Sc:  egyp}', "");
+    Expect(0, 78933, '\P{Sc:  egyp}', "");
+    Expect(1, 78933, '\P{^Sc:  egyp}', "");
+    Expect(0, 78934, '\p{Sc:  egyp}', "");
+    Expect(1, 78934, '\p{^Sc:  egyp}', "");
+    Expect(1, 78934, '\P{Sc:  egyp}', "");
+    Expect(0, 78934, '\P{^Sc:  egyp}', "");
+    Error('\p{Is_Script= -egyptian_Hieroglyphs/a/}');
+    Error('\P{Is_Script= -egyptian_Hieroglyphs/a/}');
+    Expect(1, 78933, '\p{Is_Script=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\p{^Is_Script=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\P{Is_Script=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\P{^Is_Script=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\p{Is_Script=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\p{^Is_Script=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\P{Is_Script=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\P{^Is_Script=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\p{Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(0, 78933, '\p{^Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(0, 78933, '\P{Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(1, 78933, '\P{^Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(0, 78934, '\p{Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(1, 78934, '\p{^Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(1, 78934, '\P{Is_Script=-	egyptian_Hieroglyphs}', "");
+    Expect(0, 78934, '\P{^Is_Script=-	egyptian_Hieroglyphs}', "");
+    Error('\p{Is_Sc=/a/	 EGYP}');
+    Error('\P{Is_Sc=/a/	 EGYP}');
+    Expect(1, 78933, '\p{Is_Sc=egyp}', "");
+    Expect(0, 78933, '\p{^Is_Sc=egyp}', "");
+    Expect(0, 78933, '\P{Is_Sc=egyp}', "");
+    Expect(1, 78933, '\P{^Is_Sc=egyp}', "");
+    Expect(0, 78934, '\p{Is_Sc=egyp}', "");
+    Expect(1, 78934, '\p{^Is_Sc=egyp}', "");
+    Expect(1, 78934, '\P{Is_Sc=egyp}', "");
+    Expect(0, 78934, '\P{^Is_Sc=egyp}', "");
+    Expect(1, 78933, '\p{Is_Sc=	-Egyp}', "");
+    Expect(0, 78933, '\p{^Is_Sc=	-Egyp}', "");
+    Expect(0, 78933, '\P{Is_Sc=	-Egyp}', "");
+    Expect(1, 78933, '\P{^Is_Sc=	-Egyp}', "");
+    Expect(0, 78934, '\p{Is_Sc=	-Egyp}', "");
+    Expect(1, 78934, '\p{^Is_Sc=	-Egyp}', "");
+    Expect(1, 78934, '\P{Is_Sc=	-Egyp}', "");
+    Expect(0, 78934, '\P{^Is_Sc=	-Egyp}', "");
+    Error('\p{Script=/a/ Elbasan}');
+    Error('\P{Script=/a/ Elbasan}');
     Expect(1, 66855, '\p{Script=:\AElbasan\z:}', "");;
     Expect(0, 66856, '\p{Script=:\AElbasan\z:}', "");;
-    Expect(1, 66855, '\p{Script:   elbasan}', "");
-    Expect(0, 66855, '\p{^Script:   elbasan}', "");
-    Expect(0, 66855, '\P{Script:   elbasan}', "");
-    Expect(1, 66855, '\P{^Script:   elbasan}', "");
-    Expect(0, 66856, '\p{Script:   elbasan}', "");
-    Expect(1, 66856, '\p{^Script:   elbasan}', "");
-    Expect(1, 66856, '\P{Script:   elbasan}', "");
-    Expect(0, 66856, '\P{^Script:   elbasan}', "");
+    Expect(1, 66855, '\p{Script=elbasan}', "");
+    Expect(0, 66855, '\p{^Script=elbasan}', "");
+    Expect(0, 66855, '\P{Script=elbasan}', "");
+    Expect(1, 66855, '\P{^Script=elbasan}', "");
+    Expect(0, 66856, '\p{Script=elbasan}', "");
+    Expect(1, 66856, '\p{^Script=elbasan}', "");
+    Expect(1, 66856, '\P{Script=elbasan}', "");
+    Expect(0, 66856, '\P{^Script=elbasan}', "");
     Expect(1, 66855, '\p{Script=:\Aelbasan\z:}', "");;
     Expect(0, 66856, '\p{Script=:\Aelbasan\z:}', "");;
-    Expect(1, 66855, '\p{Script=--elbasan}', "");
-    Expect(0, 66855, '\p{^Script=--elbasan}', "");
-    Expect(0, 66855, '\P{Script=--elbasan}', "");
-    Expect(1, 66855, '\P{^Script=--elbasan}', "");
-    Expect(0, 66856, '\p{Script=--elbasan}', "");
-    Expect(1, 66856, '\p{^Script=--elbasan}', "");
-    Expect(1, 66856, '\P{Script=--elbasan}', "");
-    Expect(0, 66856, '\P{^Script=--elbasan}', "");
-    Error('\p{Sc=-:=Elba}');
-    Error('\P{Sc=-:=Elba}');
+    Expect(1, 66855, '\p{Script=_ elbasan}', "");
+    Expect(0, 66855, '\p{^Script=_ elbasan}', "");
+    Expect(0, 66855, '\P{Script=_ elbasan}', "");
+    Expect(1, 66855, '\P{^Script=_ elbasan}', "");
+    Expect(0, 66856, '\p{Script=_ elbasan}', "");
+    Expect(1, 66856, '\p{^Script=_ elbasan}', "");
+    Expect(1, 66856, '\P{Script=_ elbasan}', "");
+    Expect(0, 66856, '\P{^Script=_ elbasan}', "");
+    Error('\p{Sc=:=-Elba}');
+    Error('\P{Sc=:=-Elba}');
     Expect(1, 66855, '\p{Sc=:\AElba\z:}', "");;
     Expect(0, 66856, '\p{Sc=:\AElba\z:}', "");;
-    Expect(1, 66855, '\p{Sc=elba}', "");
-    Expect(0, 66855, '\p{^Sc=elba}', "");
-    Expect(0, 66855, '\P{Sc=elba}', "");
-    Expect(1, 66855, '\P{^Sc=elba}', "");
-    Expect(0, 66856, '\p{Sc=elba}', "");
-    Expect(1, 66856, '\p{^Sc=elba}', "");
-    Expect(1, 66856, '\P{Sc=elba}', "");
-    Expect(0, 66856, '\P{^Sc=elba}', "");
+    Expect(1, 66855, '\p{Sc: elba}', "");
+    Expect(0, 66855, '\p{^Sc: elba}', "");
+    Expect(0, 66855, '\P{Sc: elba}', "");
+    Expect(1, 66855, '\P{^Sc: elba}', "");
+    Expect(0, 66856, '\p{Sc: elba}', "");
+    Expect(1, 66856, '\p{^Sc: elba}', "");
+    Expect(1, 66856, '\P{Sc: elba}', "");
+    Expect(0, 66856, '\P{^Sc: elba}', "");
     Expect(1, 66855, '\p{Sc=:\Aelba\z:}', "");;
     Expect(0, 66856, '\p{Sc=:\Aelba\z:}', "");;
-    Expect(1, 66855, '\p{Sc=--ELBA}', "");
-    Expect(0, 66855, '\p{^Sc=--ELBA}', "");
-    Expect(0, 66855, '\P{Sc=--ELBA}', "");
-    Expect(1, 66855, '\P{^Sc=--ELBA}', "");
-    Expect(0, 66856, '\p{Sc=--ELBA}', "");
-    Expect(1, 66856, '\p{^Sc=--ELBA}', "");
-    Expect(1, 66856, '\P{Sc=--ELBA}', "");
-    Expect(0, 66856, '\P{^Sc=--ELBA}', "");
-    Error('\p{Is_Script=_/a/Elbasan}');
-    Error('\P{Is_Script=_/a/Elbasan}');
+    Expect(1, 66855, '\p{Sc=	Elba}', "");
+    Expect(0, 66855, '\p{^Sc=	Elba}', "");
+    Expect(0, 66855, '\P{Sc=	Elba}', "");
+    Expect(1, 66855, '\P{^Sc=	Elba}', "");
+    Expect(0, 66856, '\p{Sc=	Elba}', "");
+    Expect(1, 66856, '\p{^Sc=	Elba}', "");
+    Expect(1, 66856, '\P{Sc=	Elba}', "");
+    Expect(0, 66856, '\P{^Sc=	Elba}', "");
+    Error('\p{Is_Script= Elbasan:=}');
+    Error('\P{Is_Script= Elbasan:=}');
     Expect(1, 66855, '\p{Is_Script=elbasan}', "");
     Expect(0, 66855, '\p{^Is_Script=elbasan}', "");
     Expect(0, 66855, '\P{Is_Script=elbasan}', "");
@@ -131227,16 +132419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66856, '\p{^Is_Script=elbasan}', "");
     Expect(1, 66856, '\P{Is_Script=elbasan}', "");
     Expect(0, 66856, '\P{^Is_Script=elbasan}', "");
-    Expect(1, 66855, '\p{Is_Script=- Elbasan}', "");
-    Expect(0, 66855, '\p{^Is_Script=- Elbasan}', "");
-    Expect(0, 66855, '\P{Is_Script=- Elbasan}', "");
-    Expect(1, 66855, '\P{^Is_Script=- Elbasan}', "");
-    Expect(0, 66856, '\p{Is_Script=- Elbasan}', "");
-    Expect(1, 66856, '\p{^Is_Script=- Elbasan}', "");
-    Expect(1, 66856, '\P{Is_Script=- Elbasan}', "");
-    Expect(0, 66856, '\P{^Is_Script=- Elbasan}', "");
-    Error('\p{Is_Sc=/a/	ELBA}');
-    Error('\P{Is_Sc=/a/	ELBA}');
+    Expect(1, 66855, '\p{Is_Script=	ELBASAN}', "");
+    Expect(0, 66855, '\p{^Is_Script=	ELBASAN}', "");
+    Expect(0, 66855, '\P{Is_Script=	ELBASAN}', "");
+    Expect(1, 66855, '\P{^Is_Script=	ELBASAN}', "");
+    Expect(0, 66856, '\p{Is_Script=	ELBASAN}', "");
+    Expect(1, 66856, '\p{^Is_Script=	ELBASAN}', "");
+    Expect(1, 66856, '\P{Is_Script=	ELBASAN}', "");
+    Expect(0, 66856, '\P{^Is_Script=	ELBASAN}', "");
+    Error('\p{Is_Sc=/a/_-Elba}');
+    Error('\P{Is_Sc=/a/_-Elba}');
     Expect(1, 66855, '\p{Is_Sc=elba}', "");
     Expect(0, 66855, '\p{^Is_Sc=elba}', "");
     Expect(0, 66855, '\P{Is_Sc=elba}', "");
@@ -131245,38 +132437,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66856, '\p{^Is_Sc=elba}', "");
     Expect(1, 66856, '\P{Is_Sc=elba}', "");
     Expect(0, 66856, '\P{^Is_Sc=elba}', "");
-    Expect(1, 66855, '\p{Is_Sc:- elba}', "");
-    Expect(0, 66855, '\p{^Is_Sc:- elba}', "");
-    Expect(0, 66855, '\P{Is_Sc:- elba}', "");
-    Expect(1, 66855, '\P{^Is_Sc:- elba}', "");
-    Expect(0, 66856, '\p{Is_Sc:- elba}', "");
-    Expect(1, 66856, '\p{^Is_Sc:- elba}', "");
-    Expect(1, 66856, '\P{Is_Sc:- elba}', "");
-    Expect(0, 66856, '\P{^Is_Sc:- elba}', "");
-    Error('\p{Script=		Elymaic/a/}');
-    Error('\P{Script=		Elymaic/a/}');
+    Expect(1, 66855, '\p{Is_Sc:   _	elba}', "");
+    Expect(0, 66855, '\p{^Is_Sc:   _	elba}', "");
+    Expect(0, 66855, '\P{Is_Sc:   _	elba}', "");
+    Expect(1, 66855, '\P{^Is_Sc:   _	elba}', "");
+    Expect(0, 66856, '\p{Is_Sc:   _	elba}', "");
+    Expect(1, 66856, '\p{^Is_Sc:   _	elba}', "");
+    Expect(1, 66856, '\P{Is_Sc:   _	elba}', "");
+    Expect(0, 66856, '\P{^Is_Sc:   _	elba}', "");
+    Error('\p{Script= ELYMAIC/a/}');
+    Error('\P{Script= ELYMAIC/a/}');
     Expect(1, 69622, '\p{Script=:\AElymaic\z:}', "");;
     Expect(0, 69623, '\p{Script=:\AElymaic\z:}', "");;
-    Expect(1, 69622, '\p{Script=elymaic}', "");
-    Expect(0, 69622, '\p{^Script=elymaic}', "");
-    Expect(0, 69622, '\P{Script=elymaic}', "");
-    Expect(1, 69622, '\P{^Script=elymaic}', "");
-    Expect(0, 69623, '\p{Script=elymaic}', "");
-    Expect(1, 69623, '\p{^Script=elymaic}', "");
-    Expect(1, 69623, '\P{Script=elymaic}', "");
-    Expect(0, 69623, '\P{^Script=elymaic}', "");
+    Expect(1, 69622, '\p{Script:elymaic}', "");
+    Expect(0, 69622, '\p{^Script:elymaic}', "");
+    Expect(0, 69622, '\P{Script:elymaic}', "");
+    Expect(1, 69622, '\P{^Script:elymaic}', "");
+    Expect(0, 69623, '\p{Script:elymaic}', "");
+    Expect(1, 69623, '\p{^Script:elymaic}', "");
+    Expect(1, 69623, '\P{Script:elymaic}', "");
+    Expect(0, 69623, '\P{^Script:elymaic}', "");
     Expect(1, 69622, '\p{Script=:\Aelymaic\z:}', "");;
     Expect(0, 69623, '\p{Script=:\Aelymaic\z:}', "");;
-    Expect(1, 69622, '\p{Script=	 ELYMAIC}', "");
-    Expect(0, 69622, '\p{^Script=	 ELYMAIC}', "");
-    Expect(0, 69622, '\P{Script=	 ELYMAIC}', "");
-    Expect(1, 69622, '\P{^Script=	 ELYMAIC}', "");
-    Expect(0, 69623, '\p{Script=	 ELYMAIC}', "");
-    Expect(1, 69623, '\p{^Script=	 ELYMAIC}', "");
-    Expect(1, 69623, '\P{Script=	 ELYMAIC}', "");
-    Expect(0, 69623, '\P{^Script=	 ELYMAIC}', "");
-    Error('\p{Sc=  elym/a/}');
-    Error('\P{Sc=  elym/a/}');
+    Expect(1, 69622, '\p{Script=-	elymaic}', "");
+    Expect(0, 69622, '\p{^Script=-	elymaic}', "");
+    Expect(0, 69622, '\P{Script=-	elymaic}', "");
+    Expect(1, 69622, '\P{^Script=-	elymaic}', "");
+    Expect(0, 69623, '\p{Script=-	elymaic}', "");
+    Expect(1, 69623, '\p{^Script=-	elymaic}', "");
+    Expect(1, 69623, '\P{Script=-	elymaic}', "");
+    Expect(0, 69623, '\P{^Script=-	elymaic}', "");
+    Error('\p{Sc=	 Elym/a/}');
+    Error('\P{Sc=	 Elym/a/}');
     Expect(1, 69622, '\p{Sc=:\AElym\z:}', "");;
     Expect(0, 69623, '\p{Sc=:\AElym\z:}', "");;
     Expect(1, 69622, '\p{Sc=elym}', "");
@@ -131289,16 +132481,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69623, '\P{^Sc=elym}', "");
     Expect(1, 69622, '\p{Sc=:\Aelym\z:}', "");;
     Expect(0, 69623, '\p{Sc=:\Aelym\z:}', "");;
-    Expect(1, 69622, '\p{Sc=- ELYM}', "");
-    Expect(0, 69622, '\p{^Sc=- ELYM}', "");
-    Expect(0, 69622, '\P{Sc=- ELYM}', "");
-    Expect(1, 69622, '\P{^Sc=- ELYM}', "");
-    Expect(0, 69623, '\p{Sc=- ELYM}', "");
-    Expect(1, 69623, '\p{^Sc=- ELYM}', "");
-    Expect(1, 69623, '\P{Sc=- ELYM}', "");
-    Expect(0, 69623, '\P{^Sc=- ELYM}', "");
-    Error('\p{Is_Script=	/a/Elymaic}');
-    Error('\P{Is_Script=	/a/Elymaic}');
+    Expect(1, 69622, '\p{Sc=--elym}', "");
+    Expect(0, 69622, '\p{^Sc=--elym}', "");
+    Expect(0, 69622, '\P{Sc=--elym}', "");
+    Expect(1, 69622, '\P{^Sc=--elym}', "");
+    Expect(0, 69623, '\p{Sc=--elym}', "");
+    Expect(1, 69623, '\p{^Sc=--elym}', "");
+    Expect(1, 69623, '\P{Sc=--elym}', "");
+    Expect(0, 69623, '\P{^Sc=--elym}', "");
+    Error('\p{Is_Script=:=Elymaic}');
+    Error('\P{Is_Script=:=Elymaic}');
     Expect(1, 69622, '\p{Is_Script=elymaic}', "");
     Expect(0, 69622, '\p{^Is_Script=elymaic}', "");
     Expect(0, 69622, '\P{Is_Script=elymaic}', "");
@@ -131307,16 +132499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69623, '\p{^Is_Script=elymaic}', "");
     Expect(1, 69623, '\P{Is_Script=elymaic}', "");
     Expect(0, 69623, '\P{^Is_Script=elymaic}', "");
-    Expect(1, 69622, '\p{Is_Script=-_ELYMAIC}', "");
-    Expect(0, 69622, '\p{^Is_Script=-_ELYMAIC}', "");
-    Expect(0, 69622, '\P{Is_Script=-_ELYMAIC}', "");
-    Expect(1, 69622, '\P{^Is_Script=-_ELYMAIC}', "");
-    Expect(0, 69623, '\p{Is_Script=-_ELYMAIC}', "");
-    Expect(1, 69623, '\p{^Is_Script=-_ELYMAIC}', "");
-    Expect(1, 69623, '\P{Is_Script=-_ELYMAIC}', "");
-    Expect(0, 69623, '\P{^Is_Script=-_ELYMAIC}', "");
-    Error('\p{Is_Sc=	/a/ELYM}');
-    Error('\P{Is_Sc=	/a/ELYM}');
+    Expect(1, 69622, '\p{Is_Script: _elymaic}', "");
+    Expect(0, 69622, '\p{^Is_Script: _elymaic}', "");
+    Expect(0, 69622, '\P{Is_Script: _elymaic}', "");
+    Expect(1, 69622, '\P{^Is_Script: _elymaic}', "");
+    Expect(0, 69623, '\p{Is_Script: _elymaic}', "");
+    Expect(1, 69623, '\p{^Is_Script: _elymaic}', "");
+    Expect(1, 69623, '\P{Is_Script: _elymaic}', "");
+    Expect(0, 69623, '\P{^Is_Script: _elymaic}', "");
+    Error('\p{Is_Sc: :=	-ELYM}');
+    Error('\P{Is_Sc: :=	-ELYM}');
     Expect(1, 69622, '\p{Is_Sc=elym}', "");
     Expect(0, 69622, '\p{^Is_Sc=elym}', "");
     Expect(0, 69622, '\P{Is_Sc=elym}', "");
@@ -131325,16 +132517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69623, '\p{^Is_Sc=elym}', "");
     Expect(1, 69623, '\P{Is_Sc=elym}', "");
     Expect(0, 69623, '\P{^Is_Sc=elym}', "");
-    Expect(1, 69622, '\p{Is_Sc=- elym}', "");
-    Expect(0, 69622, '\p{^Is_Sc=- elym}', "");
-    Expect(0, 69622, '\P{Is_Sc=- elym}', "");
-    Expect(1, 69622, '\P{^Is_Sc=- elym}', "");
-    Expect(0, 69623, '\p{Is_Sc=- elym}', "");
-    Expect(1, 69623, '\p{^Is_Sc=- elym}', "");
-    Expect(1, 69623, '\P{Is_Sc=- elym}', "");
-    Expect(0, 69623, '\P{^Is_Sc=- elym}', "");
-    Error('\p{Script: 	ETHIOPIC/a/}');
-    Error('\P{Script: 	ETHIOPIC/a/}');
+    Expect(1, 69622, '\p{Is_Sc=-ELYM}', "");
+    Expect(0, 69622, '\p{^Is_Sc=-ELYM}', "");
+    Expect(0, 69622, '\P{Is_Sc=-ELYM}', "");
+    Expect(1, 69622, '\P{^Is_Sc=-ELYM}', "");
+    Expect(0, 69623, '\p{Is_Sc=-ELYM}', "");
+    Expect(1, 69623, '\p{^Is_Sc=-ELYM}', "");
+    Expect(1, 69623, '\P{Is_Sc=-ELYM}', "");
+    Expect(0, 69623, '\P{^Is_Sc=-ELYM}', "");
+    Error('\p{Script=/a/-ethiopic}');
+    Error('\P{Script=/a/-ethiopic}');
     Expect(1, 124926, '\p{Script=:\AEthiopic\z:}', "");;
     Expect(0, 124927, '\p{Script=:\AEthiopic\z:}', "");;
     Expect(1, 124926, '\p{Script=ethiopic}', "");
@@ -131347,16 +132539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 124927, '\P{^Script=ethiopic}', "");
     Expect(1, 124926, '\p{Script=:\Aethiopic\z:}', "");;
     Expect(0, 124927, '\p{Script=:\Aethiopic\z:}', "");;
-    Expect(1, 124926, '\p{Script= 	ETHIOPIC}', "");
-    Expect(0, 124926, '\p{^Script= 	ETHIOPIC}', "");
-    Expect(0, 124926, '\P{Script= 	ETHIOPIC}', "");
-    Expect(1, 124926, '\P{^Script= 	ETHIOPIC}', "");
-    Expect(0, 124927, '\p{Script= 	ETHIOPIC}', "");
-    Expect(1, 124927, '\p{^Script= 	ETHIOPIC}', "");
-    Expect(1, 124927, '\P{Script= 	ETHIOPIC}', "");
-    Expect(0, 124927, '\P{^Script= 	ETHIOPIC}', "");
-    Error('\p{Sc=_Ethi/a/}');
-    Error('\P{Sc=_Ethi/a/}');
+    Expect(1, 124926, '\p{Script:   - Ethiopic}', "");
+    Expect(0, 124926, '\p{^Script:   - Ethiopic}', "");
+    Expect(0, 124926, '\P{Script:   - Ethiopic}', "");
+    Expect(1, 124926, '\P{^Script:   - Ethiopic}', "");
+    Expect(0, 124927, '\p{Script:   - Ethiopic}', "");
+    Expect(1, 124927, '\p{^Script:   - Ethiopic}', "");
+    Expect(1, 124927, '\P{Script:   - Ethiopic}', "");
+    Expect(0, 124927, '\P{^Script:   - Ethiopic}', "");
+    Error('\p{Sc=/a/-ETHI}');
+    Error('\P{Sc=/a/-ETHI}');
     Expect(1, 124926, '\p{Sc=:\AEthi\z:}', "");;
     Expect(0, 124927, '\p{Sc=:\AEthi\z:}', "");;
     Expect(1, 124926, '\p{Sc=ethi}', "");
@@ -131369,16 +132561,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 124927, '\P{^Sc=ethi}', "");
     Expect(1, 124926, '\p{Sc=:\Aethi\z:}', "");;
     Expect(0, 124927, '\p{Sc=:\Aethi\z:}', "");;
-    Expect(1, 124926, '\p{Sc=-Ethi}', "");
-    Expect(0, 124926, '\p{^Sc=-Ethi}', "");
-    Expect(0, 124926, '\P{Sc=-Ethi}', "");
-    Expect(1, 124926, '\P{^Sc=-Ethi}', "");
-    Expect(0, 124927, '\p{Sc=-Ethi}', "");
-    Expect(1, 124927, '\p{^Sc=-Ethi}', "");
-    Expect(1, 124927, '\P{Sc=-Ethi}', "");
-    Expect(0, 124927, '\P{^Sc=-Ethi}', "");
-    Error('\p{Is_Script=	/a/ETHIOPIC}');
-    Error('\P{Is_Script=	/a/ETHIOPIC}');
+    Expect(1, 124926, '\p{Sc= -Ethi}', "");
+    Expect(0, 124926, '\p{^Sc= -Ethi}', "");
+    Expect(0, 124926, '\P{Sc= -Ethi}', "");
+    Expect(1, 124926, '\P{^Sc= -Ethi}', "");
+    Expect(0, 124927, '\p{Sc= -Ethi}', "");
+    Expect(1, 124927, '\p{^Sc= -Ethi}', "");
+    Expect(1, 124927, '\P{Sc= -Ethi}', "");
+    Expect(0, 124927, '\P{^Sc= -Ethi}', "");
+    Error('\p{Is_Script=/a/	_Ethiopic}');
+    Error('\P{Is_Script=/a/	_Ethiopic}');
     Expect(1, 124926, '\p{Is_Script=ethiopic}', "");
     Expect(0, 124926, '\p{^Is_Script=ethiopic}', "");
     Expect(0, 124926, '\P{Is_Script=ethiopic}', "");
@@ -131387,34 +132579,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 124927, '\p{^Is_Script=ethiopic}', "");
     Expect(1, 124927, '\P{Is_Script=ethiopic}', "");
     Expect(0, 124927, '\P{^Is_Script=ethiopic}', "");
-    Expect(1, 124926, '\p{Is_Script=	-ETHIOPIC}', "");
-    Expect(0, 124926, '\p{^Is_Script=	-ETHIOPIC}', "");
-    Expect(0, 124926, '\P{Is_Script=	-ETHIOPIC}', "");
-    Expect(1, 124926, '\P{^Is_Script=	-ETHIOPIC}', "");
-    Expect(0, 124927, '\p{Is_Script=	-ETHIOPIC}', "");
-    Expect(1, 124927, '\p{^Is_Script=	-ETHIOPIC}', "");
-    Expect(1, 124927, '\P{Is_Script=	-ETHIOPIC}', "");
-    Expect(0, 124927, '\P{^Is_Script=	-ETHIOPIC}', "");
-    Error('\p{Is_Sc=	 ETHI:=}');
-    Error('\P{Is_Sc=	 ETHI:=}');
-    Expect(1, 124926, '\p{Is_Sc=ethi}', "");
-    Expect(0, 124926, '\p{^Is_Sc=ethi}', "");
-    Expect(0, 124926, '\P{Is_Sc=ethi}', "");
-    Expect(1, 124926, '\P{^Is_Sc=ethi}', "");
-    Expect(0, 124927, '\p{Is_Sc=ethi}', "");
-    Expect(1, 124927, '\p{^Is_Sc=ethi}', "");
-    Expect(1, 124927, '\P{Is_Sc=ethi}', "");
-    Expect(0, 124927, '\P{^Is_Sc=ethi}', "");
-    Expect(1, 124926, '\p{Is_Sc=		Ethi}', "");
-    Expect(0, 124926, '\p{^Is_Sc=		Ethi}', "");
-    Expect(0, 124926, '\P{Is_Sc=		Ethi}', "");
-    Expect(1, 124926, '\P{^Is_Sc=		Ethi}', "");
-    Expect(0, 124927, '\p{Is_Sc=		Ethi}', "");
-    Expect(1, 124927, '\p{^Is_Sc=		Ethi}', "");
-    Expect(1, 124927, '\P{Is_Sc=		Ethi}', "");
-    Expect(0, 124927, '\P{^Is_Sc=		Ethi}', "");
-    Error('\p{Script=:=GEORGIAN}');
-    Error('\P{Script=:=GEORGIAN}');
+    Expect(1, 124926, '\p{Is_Script=_-Ethiopic}', "");
+    Expect(0, 124926, '\p{^Is_Script=_-Ethiopic}', "");
+    Expect(0, 124926, '\P{Is_Script=_-Ethiopic}', "");
+    Expect(1, 124926, '\P{^Is_Script=_-Ethiopic}', "");
+    Expect(0, 124927, '\p{Is_Script=_-Ethiopic}', "");
+    Expect(1, 124927, '\p{^Is_Script=_-Ethiopic}', "");
+    Expect(1, 124927, '\P{Is_Script=_-Ethiopic}', "");
+    Expect(0, 124927, '\P{^Is_Script=_-Ethiopic}', "");
+    Error('\p{Is_Sc=:=_	ETHI}');
+    Error('\P{Is_Sc=:=_	ETHI}');
+    Expect(1, 124926, '\p{Is_Sc:   ethi}', "");
+    Expect(0, 124926, '\p{^Is_Sc:   ethi}', "");
+    Expect(0, 124926, '\P{Is_Sc:   ethi}', "");
+    Expect(1, 124926, '\P{^Is_Sc:   ethi}', "");
+    Expect(0, 124927, '\p{Is_Sc:   ethi}', "");
+    Expect(1, 124927, '\p{^Is_Sc:   ethi}', "");
+    Expect(1, 124927, '\P{Is_Sc:   ethi}', "");
+    Expect(0, 124927, '\P{^Is_Sc:   ethi}', "");
+    Expect(1, 124926, '\p{Is_Sc=ETHI}', "");
+    Expect(0, 124926, '\p{^Is_Sc=ETHI}', "");
+    Expect(0, 124926, '\P{Is_Sc=ETHI}', "");
+    Expect(1, 124926, '\P{^Is_Sc=ETHI}', "");
+    Expect(0, 124927, '\p{Is_Sc=ETHI}', "");
+    Expect(1, 124927, '\p{^Is_Sc=ETHI}', "");
+    Expect(1, 124927, '\P{Is_Sc=ETHI}', "");
+    Expect(0, 124927, '\P{^Is_Sc=ETHI}', "");
+    Error('\p{Script= /a/Georgian}');
+    Error('\P{Script= /a/Georgian}');
     Expect(1, 11565, '\p{Script=:\AGeorgian\z:}', "");;
     Expect(0, 11566, '\p{Script=:\AGeorgian\z:}', "");;
     Expect(1, 11565, '\p{Script=georgian}', "");
@@ -131427,16 +132619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11566, '\P{^Script=georgian}', "");
     Expect(1, 11565, '\p{Script=:\Ageorgian\z:}', "");;
     Expect(0, 11566, '\p{Script=:\Ageorgian\z:}', "");;
-    Expect(1, 11565, '\p{Script=	 GEORGIAN}', "");
-    Expect(0, 11565, '\p{^Script=	 GEORGIAN}', "");
-    Expect(0, 11565, '\P{Script=	 GEORGIAN}', "");
-    Expect(1, 11565, '\P{^Script=	 GEORGIAN}', "");
-    Expect(0, 11566, '\p{Script=	 GEORGIAN}', "");
-    Expect(1, 11566, '\p{^Script=	 GEORGIAN}', "");
-    Expect(1, 11566, '\P{Script=	 GEORGIAN}', "");
-    Expect(0, 11566, '\P{^Script=	 GEORGIAN}', "");
-    Error('\p{Sc=:= -Geor}');
-    Error('\P{Sc=:= -Geor}');
+    Expect(1, 11565, '\p{Script=-_GEORGIAN}', "");
+    Expect(0, 11565, '\p{^Script=-_GEORGIAN}', "");
+    Expect(0, 11565, '\P{Script=-_GEORGIAN}', "");
+    Expect(1, 11565, '\P{^Script=-_GEORGIAN}', "");
+    Expect(0, 11566, '\p{Script=-_GEORGIAN}', "");
+    Expect(1, 11566, '\p{^Script=-_GEORGIAN}', "");
+    Expect(1, 11566, '\P{Script=-_GEORGIAN}', "");
+    Expect(0, 11566, '\P{^Script=-_GEORGIAN}', "");
+    Error('\p{Sc=/a/-	Geor}');
+    Error('\P{Sc=/a/-	Geor}');
     Expect(1, 11565, '\p{Sc=:\AGeor\z:}', "");;
     Expect(0, 11566, '\p{Sc=:\AGeor\z:}', "");;
     Expect(1, 11565, '\p{Sc=geor}', "");
@@ -131449,16 +132641,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11566, '\P{^Sc=geor}', "");
     Expect(1, 11565, '\p{Sc=:\Ageor\z:}', "");;
     Expect(0, 11566, '\p{Sc=:\Ageor\z:}', "");;
-    Expect(1, 11565, '\p{Sc=	Geor}', "");
-    Expect(0, 11565, '\p{^Sc=	Geor}', "");
-    Expect(0, 11565, '\P{Sc=	Geor}', "");
-    Expect(1, 11565, '\P{^Sc=	Geor}', "");
-    Expect(0, 11566, '\p{Sc=	Geor}', "");
-    Expect(1, 11566, '\p{^Sc=	Geor}', "");
-    Expect(1, 11566, '\P{Sc=	Geor}', "");
-    Expect(0, 11566, '\P{^Sc=	Geor}', "");
-    Error('\p{Is_Script=	/a/georgian}');
-    Error('\P{Is_Script=	/a/georgian}');
+    Expect(1, 11565, '\p{Sc=Geor}', "");
+    Expect(0, 11565, '\p{^Sc=Geor}', "");
+    Expect(0, 11565, '\P{Sc=Geor}', "");
+    Expect(1, 11565, '\P{^Sc=Geor}', "");
+    Expect(0, 11566, '\p{Sc=Geor}', "");
+    Expect(1, 11566, '\p{^Sc=Geor}', "");
+    Expect(1, 11566, '\P{Sc=Geor}', "");
+    Expect(0, 11566, '\P{^Sc=Geor}', "");
+    Error('\p{Is_Script= GEORGIAN/a/}');
+    Error('\P{Is_Script= GEORGIAN/a/}');
     Expect(1, 11565, '\p{Is_Script=georgian}', "");
     Expect(0, 11565, '\p{^Is_Script=georgian}', "");
     Expect(0, 11565, '\P{Is_Script=georgian}', "");
@@ -131467,16 +132659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11566, '\p{^Is_Script=georgian}', "");
     Expect(1, 11566, '\P{Is_Script=georgian}', "");
     Expect(0, 11566, '\P{^Is_Script=georgian}', "");
-    Expect(1, 11565, '\p{Is_Script= _Georgian}', "");
-    Expect(0, 11565, '\p{^Is_Script= _Georgian}', "");
-    Expect(0, 11565, '\P{Is_Script= _Georgian}', "");
-    Expect(1, 11565, '\P{^Is_Script= _Georgian}', "");
-    Expect(0, 11566, '\p{Is_Script= _Georgian}', "");
-    Expect(1, 11566, '\p{^Is_Script= _Georgian}', "");
-    Expect(1, 11566, '\P{Is_Script= _Georgian}', "");
-    Expect(0, 11566, '\P{^Is_Script= _Georgian}', "");
-    Error('\p{Is_Sc=_/a/Geor}');
-    Error('\P{Is_Sc=_/a/Geor}');
+    Expect(1, 11565, '\p{Is_Script=_-GEORGIAN}', "");
+    Expect(0, 11565, '\p{^Is_Script=_-GEORGIAN}', "");
+    Expect(0, 11565, '\P{Is_Script=_-GEORGIAN}', "");
+    Expect(1, 11565, '\P{^Is_Script=_-GEORGIAN}', "");
+    Expect(0, 11566, '\p{Is_Script=_-GEORGIAN}', "");
+    Expect(1, 11566, '\p{^Is_Script=_-GEORGIAN}', "");
+    Expect(1, 11566, '\P{Is_Script=_-GEORGIAN}', "");
+    Expect(0, 11566, '\P{^Is_Script=_-GEORGIAN}', "");
+    Error('\p{Is_Sc=/a/-geor}');
+    Error('\P{Is_Sc=/a/-geor}');
     Expect(1, 11565, '\p{Is_Sc=geor}', "");
     Expect(0, 11565, '\p{^Is_Sc=geor}', "");
     Expect(0, 11565, '\P{Is_Sc=geor}', "");
@@ -131485,16 +132677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11566, '\p{^Is_Sc=geor}', "");
     Expect(1, 11566, '\P{Is_Sc=geor}', "");
     Expect(0, 11566, '\P{^Is_Sc=geor}', "");
-    Expect(1, 11565, '\p{Is_Sc=-geor}', "");
-    Expect(0, 11565, '\p{^Is_Sc=-geor}', "");
-    Expect(0, 11565, '\P{Is_Sc=-geor}', "");
-    Expect(1, 11565, '\P{^Is_Sc=-geor}', "");
-    Expect(0, 11566, '\p{Is_Sc=-geor}', "");
-    Expect(1, 11566, '\p{^Is_Sc=-geor}', "");
-    Expect(1, 11566, '\P{Is_Sc=-geor}', "");
-    Expect(0, 11566, '\P{^Is_Sc=-geor}', "");
-    Error('\p{Script= Glagolitic/a/}');
-    Error('\P{Script= Glagolitic/a/}');
+    Expect(1, 11565, '\p{Is_Sc=__Geor}', "");
+    Expect(0, 11565, '\p{^Is_Sc=__Geor}', "");
+    Expect(0, 11565, '\P{Is_Sc=__Geor}', "");
+    Expect(1, 11565, '\P{^Is_Sc=__Geor}', "");
+    Expect(0, 11566, '\p{Is_Sc=__Geor}', "");
+    Expect(1, 11566, '\p{^Is_Sc=__Geor}', "");
+    Expect(1, 11566, '\P{Is_Sc=__Geor}', "");
+    Expect(0, 11566, '\P{^Is_Sc=__Geor}', "");
+    Error('\p{Script=-:=Glagolitic}');
+    Error('\P{Script=-:=Glagolitic}');
     Expect(1, 122922, '\p{Script=:\AGlagolitic\z:}', "");;
     Expect(0, 122923, '\p{Script=:\AGlagolitic\z:}', "");;
     Expect(1, 122922, '\p{Script=glagolitic}', "");
@@ -131507,16 +132699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 122923, '\P{^Script=glagolitic}', "");
     Expect(1, 122922, '\p{Script=:\Aglagolitic\z:}', "");;
     Expect(0, 122923, '\p{Script=:\Aglagolitic\z:}', "");;
-    Expect(1, 122922, '\p{Script=_Glagolitic}', "");
-    Expect(0, 122922, '\p{^Script=_Glagolitic}', "");
-    Expect(0, 122922, '\P{Script=_Glagolitic}', "");
-    Expect(1, 122922, '\P{^Script=_Glagolitic}', "");
-    Expect(0, 122923, '\p{Script=_Glagolitic}', "");
-    Expect(1, 122923, '\p{^Script=_Glagolitic}', "");
-    Expect(1, 122923, '\P{Script=_Glagolitic}', "");
-    Expect(0, 122923, '\P{^Script=_Glagolitic}', "");
-    Error('\p{Sc::=- glag}');
-    Error('\P{Sc::=- glag}');
+    Expect(1, 122922, '\p{Script=_-glagolitic}', "");
+    Expect(0, 122922, '\p{^Script=_-glagolitic}', "");
+    Expect(0, 122922, '\P{Script=_-glagolitic}', "");
+    Expect(1, 122922, '\P{^Script=_-glagolitic}', "");
+    Expect(0, 122923, '\p{Script=_-glagolitic}', "");
+    Expect(1, 122923, '\p{^Script=_-glagolitic}', "");
+    Expect(1, 122923, '\P{Script=_-glagolitic}', "");
+    Expect(0, 122923, '\P{^Script=_-glagolitic}', "");
+    Error('\p{Sc=_:=Glag}');
+    Error('\P{Sc=_:=Glag}');
     Expect(1, 122922, '\p{Sc=:\AGlag\z:}', "");;
     Expect(0, 122923, '\p{Sc=:\AGlag\z:}', "");;
     Expect(1, 122922, '\p{Sc=glag}', "");
@@ -131529,34 +132721,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 122923, '\P{^Sc=glag}', "");
     Expect(1, 122922, '\p{Sc=:\Aglag\z:}', "");;
     Expect(0, 122923, '\p{Sc=:\Aglag\z:}', "");;
-    Expect(1, 122922, '\p{Sc=	_Glag}', "");
-    Expect(0, 122922, '\p{^Sc=	_Glag}', "");
-    Expect(0, 122922, '\P{Sc=	_Glag}', "");
-    Expect(1, 122922, '\P{^Sc=	_Glag}', "");
-    Expect(0, 122923, '\p{Sc=	_Glag}', "");
-    Expect(1, 122923, '\p{^Sc=	_Glag}', "");
-    Expect(1, 122923, '\P{Sc=	_Glag}', "");
-    Expect(0, 122923, '\P{^Sc=	_Glag}', "");
-    Error('\p{Is_Script=--GLAGOLITIC:=}');
-    Error('\P{Is_Script=--GLAGOLITIC:=}');
-    Expect(1, 122922, '\p{Is_Script: glagolitic}', "");
-    Expect(0, 122922, '\p{^Is_Script: glagolitic}', "");
-    Expect(0, 122922, '\P{Is_Script: glagolitic}', "");
-    Expect(1, 122922, '\P{^Is_Script: glagolitic}', "");
-    Expect(0, 122923, '\p{Is_Script: glagolitic}', "");
-    Expect(1, 122923, '\p{^Is_Script: glagolitic}', "");
-    Expect(1, 122923, '\P{Is_Script: glagolitic}', "");
-    Expect(0, 122923, '\P{^Is_Script: glagolitic}', "");
-    Expect(1, 122922, '\p{Is_Script= 	Glagolitic}', "");
-    Expect(0, 122922, '\p{^Is_Script= 	Glagolitic}', "");
-    Expect(0, 122922, '\P{Is_Script= 	Glagolitic}', "");
-    Expect(1, 122922, '\P{^Is_Script= 	Glagolitic}', "");
-    Expect(0, 122923, '\p{Is_Script= 	Glagolitic}', "");
-    Expect(1, 122923, '\p{^Is_Script= 	Glagolitic}', "");
-    Expect(1, 122923, '\P{Is_Script= 	Glagolitic}', "");
-    Expect(0, 122923, '\P{^Is_Script= 	Glagolitic}', "");
-    Error('\p{Is_Sc= /a/Glag}');
-    Error('\P{Is_Sc= /a/Glag}');
+    Expect(1, 122922, '\p{Sc=_-Glag}', "");
+    Expect(0, 122922, '\p{^Sc=_-Glag}', "");
+    Expect(0, 122922, '\P{Sc=_-Glag}', "");
+    Expect(1, 122922, '\P{^Sc=_-Glag}', "");
+    Expect(0, 122923, '\p{Sc=_-Glag}', "");
+    Expect(1, 122923, '\p{^Sc=_-Glag}', "");
+    Expect(1, 122923, '\P{Sc=_-Glag}', "");
+    Expect(0, 122923, '\P{^Sc=_-Glag}', "");
+    Error('\p{Is_Script=-_Glagolitic:=}');
+    Error('\P{Is_Script=-_Glagolitic:=}');
+    Expect(1, 122922, '\p{Is_Script:glagolitic}', "");
+    Expect(0, 122922, '\p{^Is_Script:glagolitic}', "");
+    Expect(0, 122922, '\P{Is_Script:glagolitic}', "");
+    Expect(1, 122922, '\P{^Is_Script:glagolitic}', "");
+    Expect(0, 122923, '\p{Is_Script:glagolitic}', "");
+    Expect(1, 122923, '\p{^Is_Script:glagolitic}', "");
+    Expect(1, 122923, '\P{Is_Script:glagolitic}', "");
+    Expect(0, 122923, '\P{^Is_Script:glagolitic}', "");
+    Expect(1, 122922, '\p{Is_Script=	_Glagolitic}', "");
+    Expect(0, 122922, '\p{^Is_Script=	_Glagolitic}', "");
+    Expect(0, 122922, '\P{Is_Script=	_Glagolitic}', "");
+    Expect(1, 122922, '\P{^Is_Script=	_Glagolitic}', "");
+    Expect(0, 122923, '\p{Is_Script=	_Glagolitic}', "");
+    Expect(1, 122923, '\p{^Is_Script=	_Glagolitic}', "");
+    Expect(1, 122923, '\P{Is_Script=	_Glagolitic}', "");
+    Expect(0, 122923, '\P{^Is_Script=	_Glagolitic}', "");
+    Error('\p{Is_Sc: :=-Glag}');
+    Error('\P{Is_Sc: :=-Glag}');
     Expect(1, 122922, '\p{Is_Sc=glag}', "");
     Expect(0, 122922, '\p{^Is_Sc=glag}', "");
     Expect(0, 122922, '\P{Is_Sc=glag}', "");
@@ -131565,60 +132757,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 122923, '\p{^Is_Sc=glag}', "");
     Expect(1, 122923, '\P{Is_Sc=glag}', "");
     Expect(0, 122923, '\P{^Is_Sc=glag}', "");
-    Expect(1, 122922, '\p{Is_Sc=__Glag}', "");
-    Expect(0, 122922, '\p{^Is_Sc=__Glag}', "");
-    Expect(0, 122922, '\P{Is_Sc=__Glag}', "");
-    Expect(1, 122922, '\P{^Is_Sc=__Glag}', "");
-    Expect(0, 122923, '\p{Is_Sc=__Glag}', "");
-    Expect(1, 122923, '\p{^Is_Sc=__Glag}', "");
-    Expect(1, 122923, '\P{Is_Sc=__Glag}', "");
-    Expect(0, 122923, '\P{^Is_Sc=__Glag}', "");
-    Error('\p{Script=/a/-_GUNJALA_Gondi}');
-    Error('\P{Script=/a/-_GUNJALA_Gondi}');
+    Expect(1, 122922, '\p{Is_Sc=Glag}', "");
+    Expect(0, 122922, '\p{^Is_Sc=Glag}', "");
+    Expect(0, 122922, '\P{Is_Sc=Glag}', "");
+    Expect(1, 122922, '\P{^Is_Sc=Glag}', "");
+    Expect(0, 122923, '\p{Is_Sc=Glag}', "");
+    Expect(1, 122923, '\p{^Is_Sc=Glag}', "");
+    Expect(1, 122923, '\P{Is_Sc=Glag}', "");
+    Expect(0, 122923, '\P{^Is_Sc=Glag}', "");
+    Error('\p{Script= Gunjala_Gondi/a/}');
+    Error('\P{Script= Gunjala_Gondi/a/}');
     Expect(1, 73129, '\p{Script=:\AGunjala_Gondi\z:}', "");;
     Expect(0, 73130, '\p{Script=:\AGunjala_Gondi\z:}', "");;
-    Expect(1, 73129, '\p{Script:	gunjalagondi}', "");
-    Expect(0, 73129, '\p{^Script:	gunjalagondi}', "");
-    Expect(0, 73129, '\P{Script:	gunjalagondi}', "");
-    Expect(1, 73129, '\P{^Script:	gunjalagondi}', "");
-    Expect(0, 73130, '\p{Script:	gunjalagondi}', "");
-    Expect(1, 73130, '\p{^Script:	gunjalagondi}', "");
-    Expect(1, 73130, '\P{Script:	gunjalagondi}', "");
-    Expect(0, 73130, '\P{^Script:	gunjalagondi}', "");
+    Expect(1, 73129, '\p{Script=gunjalagondi}', "");
+    Expect(0, 73129, '\p{^Script=gunjalagondi}', "");
+    Expect(0, 73129, '\P{Script=gunjalagondi}', "");
+    Expect(1, 73129, '\P{^Script=gunjalagondi}', "");
+    Expect(0, 73130, '\p{Script=gunjalagondi}', "");
+    Expect(1, 73130, '\p{^Script=gunjalagondi}', "");
+    Expect(1, 73130, '\P{Script=gunjalagondi}', "");
+    Expect(0, 73130, '\P{^Script=gunjalagondi}', "");
     Expect(1, 73129, '\p{Script=:\Agunjalagondi\z:}', "");;
     Expect(0, 73130, '\p{Script=:\Agunjalagondi\z:}', "");;
-    Expect(1, 73129, '\p{Script=  Gunjala_Gondi}', "");
-    Expect(0, 73129, '\p{^Script=  Gunjala_Gondi}', "");
-    Expect(0, 73129, '\P{Script=  Gunjala_Gondi}', "");
-    Expect(1, 73129, '\P{^Script=  Gunjala_Gondi}', "");
-    Expect(0, 73130, '\p{Script=  Gunjala_Gondi}', "");
-    Expect(1, 73130, '\p{^Script=  Gunjala_Gondi}', "");
-    Expect(1, 73130, '\P{Script=  Gunjala_Gondi}', "");
-    Expect(0, 73130, '\P{^Script=  Gunjala_Gondi}', "");
-    Error('\p{Sc=:=	Gong}');
-    Error('\P{Sc=:=	Gong}');
+    Expect(1, 73129, '\p{Script=_-Gunjala_GONDI}', "");
+    Expect(0, 73129, '\p{^Script=_-Gunjala_GONDI}', "");
+    Expect(0, 73129, '\P{Script=_-Gunjala_GONDI}', "");
+    Expect(1, 73129, '\P{^Script=_-Gunjala_GONDI}', "");
+    Expect(0, 73130, '\p{Script=_-Gunjala_GONDI}', "");
+    Expect(1, 73130, '\p{^Script=_-Gunjala_GONDI}', "");
+    Expect(1, 73130, '\P{Script=_-Gunjala_GONDI}', "");
+    Expect(0, 73130, '\P{^Script=_-Gunjala_GONDI}', "");
+    Error('\p{Sc: /a/ _gong}');
+    Error('\P{Sc: /a/ _gong}');
     Expect(1, 73129, '\p{Sc=:\AGong\z:}', "");;
     Expect(0, 73130, '\p{Sc=:\AGong\z:}', "");;
-    Expect(1, 73129, '\p{Sc:gong}', "");
-    Expect(0, 73129, '\p{^Sc:gong}', "");
-    Expect(0, 73129, '\P{Sc:gong}', "");
-    Expect(1, 73129, '\P{^Sc:gong}', "");
-    Expect(0, 73130, '\p{Sc:gong}', "");
-    Expect(1, 73130, '\p{^Sc:gong}', "");
-    Expect(1, 73130, '\P{Sc:gong}', "");
-    Expect(0, 73130, '\P{^Sc:gong}', "");
+    Expect(1, 73129, '\p{Sc=gong}', "");
+    Expect(0, 73129, '\p{^Sc=gong}', "");
+    Expect(0, 73129, '\P{Sc=gong}', "");
+    Expect(1, 73129, '\P{^Sc=gong}', "");
+    Expect(0, 73130, '\p{Sc=gong}', "");
+    Expect(1, 73130, '\p{^Sc=gong}', "");
+    Expect(1, 73130, '\P{Sc=gong}', "");
+    Expect(0, 73130, '\P{^Sc=gong}', "");
     Expect(1, 73129, '\p{Sc=:\Agong\z:}', "");;
     Expect(0, 73130, '\p{Sc=:\Agong\z:}', "");;
-    Expect(1, 73129, '\p{Sc=- GONG}', "");
-    Expect(0, 73129, '\p{^Sc=- GONG}', "");
-    Expect(0, 73129, '\P{Sc=- GONG}', "");
-    Expect(1, 73129, '\P{^Sc=- GONG}', "");
-    Expect(0, 73130, '\p{Sc=- GONG}', "");
-    Expect(1, 73130, '\p{^Sc=- GONG}', "");
-    Expect(1, 73130, '\P{Sc=- GONG}', "");
-    Expect(0, 73130, '\P{^Sc=- GONG}', "");
-    Error('\p{Is_Script=	:=Gunjala_GONDI}');
-    Error('\P{Is_Script=	:=Gunjala_GONDI}');
+    Expect(1, 73129, '\p{Sc= Gong}', "");
+    Expect(0, 73129, '\p{^Sc= Gong}', "");
+    Expect(0, 73129, '\P{Sc= Gong}', "");
+    Expect(1, 73129, '\P{^Sc= Gong}', "");
+    Expect(0, 73130, '\p{Sc= Gong}', "");
+    Expect(1, 73130, '\p{^Sc= Gong}', "");
+    Expect(1, 73130, '\P{Sc= Gong}', "");
+    Expect(0, 73130, '\P{^Sc= Gong}', "");
+    Error('\p{Is_Script=/a/	-Gunjala_GONDI}');
+    Error('\P{Is_Script=/a/	-Gunjala_GONDI}');
     Expect(1, 73129, '\p{Is_Script=gunjalagondi}', "");
     Expect(0, 73129, '\p{^Is_Script=gunjalagondi}', "");
     Expect(0, 73129, '\P{Is_Script=gunjalagondi}', "");
@@ -131627,16 +132819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73130, '\p{^Is_Script=gunjalagondi}', "");
     Expect(1, 73130, '\P{Is_Script=gunjalagondi}', "");
     Expect(0, 73130, '\P{^Is_Script=gunjalagondi}', "");
-    Expect(1, 73129, '\p{Is_Script:-_gunjala_Gondi}', "");
-    Expect(0, 73129, '\p{^Is_Script:-_gunjala_Gondi}', "");
-    Expect(0, 73129, '\P{Is_Script:-_gunjala_Gondi}', "");
-    Expect(1, 73129, '\P{^Is_Script:-_gunjala_Gondi}', "");
-    Expect(0, 73130, '\p{Is_Script:-_gunjala_Gondi}', "");
-    Expect(1, 73130, '\p{^Is_Script:-_gunjala_Gondi}', "");
-    Expect(1, 73130, '\P{Is_Script:-_gunjala_Gondi}', "");
-    Expect(0, 73130, '\P{^Is_Script:-_gunjala_Gondi}', "");
-    Error('\p{Is_Sc=_Gong/a/}');
-    Error('\P{Is_Sc=_Gong/a/}');
+    Expect(1, 73129, '\p{Is_Script=-	Gunjala_GONDI}', "");
+    Expect(0, 73129, '\p{^Is_Script=-	Gunjala_GONDI}', "");
+    Expect(0, 73129, '\P{Is_Script=-	Gunjala_GONDI}', "");
+    Expect(1, 73129, '\P{^Is_Script=-	Gunjala_GONDI}', "");
+    Expect(0, 73130, '\p{Is_Script=-	Gunjala_GONDI}', "");
+    Expect(1, 73130, '\p{^Is_Script=-	Gunjala_GONDI}', "");
+    Expect(1, 73130, '\P{Is_Script=-	Gunjala_GONDI}', "");
+    Expect(0, 73130, '\P{^Is_Script=-	Gunjala_GONDI}', "");
+    Error('\p{Is_Sc=-/a/gong}');
+    Error('\P{Is_Sc=-/a/gong}');
     Expect(1, 73129, '\p{Is_Sc=gong}', "");
     Expect(0, 73129, '\p{^Is_Sc=gong}', "");
     Expect(0, 73129, '\P{Is_Sc=gong}', "");
@@ -131645,16 +132837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73130, '\p{^Is_Sc=gong}', "");
     Expect(1, 73130, '\P{Is_Sc=gong}', "");
     Expect(0, 73130, '\P{^Is_Sc=gong}', "");
-    Expect(1, 73129, '\p{Is_Sc:   _	Gong}', "");
-    Expect(0, 73129, '\p{^Is_Sc:   _	Gong}', "");
-    Expect(0, 73129, '\P{Is_Sc:   _	Gong}', "");
-    Expect(1, 73129, '\P{^Is_Sc:   _	Gong}', "");
-    Expect(0, 73130, '\p{Is_Sc:   _	Gong}', "");
-    Expect(1, 73130, '\p{^Is_Sc:   _	Gong}', "");
-    Expect(1, 73130, '\P{Is_Sc:   _	Gong}', "");
-    Expect(0, 73130, '\P{^Is_Sc:   _	Gong}', "");
-    Error('\p{Script= masaram_Gondi/a/}');
-    Error('\P{Script= masaram_Gondi/a/}');
+    Expect(1, 73129, '\p{Is_Sc=	gong}', "");
+    Expect(0, 73129, '\p{^Is_Sc=	gong}', "");
+    Expect(0, 73129, '\P{Is_Sc=	gong}', "");
+    Expect(1, 73129, '\P{^Is_Sc=	gong}', "");
+    Expect(0, 73130, '\p{Is_Sc=	gong}', "");
+    Expect(1, 73130, '\p{^Is_Sc=	gong}', "");
+    Expect(1, 73130, '\P{Is_Sc=	gong}', "");
+    Expect(0, 73130, '\P{^Is_Sc=	gong}', "");
+    Error('\p{Script=-/a/Masaram_Gondi}');
+    Error('\P{Script=-/a/Masaram_Gondi}');
     Expect(1, 73049, '\p{Script=:\AMasaram_Gondi\z:}', "");;
     Expect(0, 73050, '\p{Script=:\AMasaram_Gondi\z:}', "");;
     Expect(1, 73049, '\p{Script=masaramgondi}', "");
@@ -131667,38 +132859,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73050, '\P{^Script=masaramgondi}', "");
     Expect(1, 73049, '\p{Script=:\Amasaramgondi\z:}', "");;
     Expect(0, 73050, '\p{Script=:\Amasaramgondi\z:}', "");;
-    Expect(1, 73049, '\p{Script=_	Masaram_Gondi}', "");
-    Expect(0, 73049, '\p{^Script=_	Masaram_Gondi}', "");
-    Expect(0, 73049, '\P{Script=_	Masaram_Gondi}', "");
-    Expect(1, 73049, '\P{^Script=_	Masaram_Gondi}', "");
-    Expect(0, 73050, '\p{Script=_	Masaram_Gondi}', "");
-    Expect(1, 73050, '\p{^Script=_	Masaram_Gondi}', "");
-    Expect(1, 73050, '\P{Script=_	Masaram_Gondi}', "");
-    Expect(0, 73050, '\P{^Script=_	Masaram_Gondi}', "");
-    Error('\p{Sc=	:=gonm}');
-    Error('\P{Sc=	:=gonm}');
+    Expect(1, 73049, '\p{Script=	_Masaram_gondi}', "");
+    Expect(0, 73049, '\p{^Script=	_Masaram_gondi}', "");
+    Expect(0, 73049, '\P{Script=	_Masaram_gondi}', "");
+    Expect(1, 73049, '\P{^Script=	_Masaram_gondi}', "");
+    Expect(0, 73050, '\p{Script=	_Masaram_gondi}', "");
+    Expect(1, 73050, '\p{^Script=	_Masaram_gondi}', "");
+    Expect(1, 73050, '\P{Script=	_Masaram_gondi}', "");
+    Expect(0, 73050, '\P{^Script=	_Masaram_gondi}', "");
+    Error('\p{Sc: 		GONM:=}');
+    Error('\P{Sc: 		GONM:=}');
     Expect(1, 73049, '\p{Sc=:\AGonm\z:}', "");;
     Expect(0, 73050, '\p{Sc=:\AGonm\z:}', "");;
-    Expect(1, 73049, '\p{Sc:gonm}', "");
-    Expect(0, 73049, '\p{^Sc:gonm}', "");
-    Expect(0, 73049, '\P{Sc:gonm}', "");
-    Expect(1, 73049, '\P{^Sc:gonm}', "");
-    Expect(0, 73050, '\p{Sc:gonm}', "");
-    Expect(1, 73050, '\p{^Sc:gonm}', "");
-    Expect(1, 73050, '\P{Sc:gonm}', "");
-    Expect(0, 73050, '\P{^Sc:gonm}', "");
+    Expect(1, 73049, '\p{Sc=gonm}', "");
+    Expect(0, 73049, '\p{^Sc=gonm}', "");
+    Expect(0, 73049, '\P{Sc=gonm}', "");
+    Expect(1, 73049, '\P{^Sc=gonm}', "");
+    Expect(0, 73050, '\p{Sc=gonm}', "");
+    Expect(1, 73050, '\p{^Sc=gonm}', "");
+    Expect(1, 73050, '\P{Sc=gonm}', "");
+    Expect(0, 73050, '\P{^Sc=gonm}', "");
     Expect(1, 73049, '\p{Sc=:\Agonm\z:}', "");;
     Expect(0, 73050, '\p{Sc=:\Agonm\z:}', "");;
-    Expect(1, 73049, '\p{Sc=	_Gonm}', "");
-    Expect(0, 73049, '\p{^Sc=	_Gonm}', "");
-    Expect(0, 73049, '\P{Sc=	_Gonm}', "");
-    Expect(1, 73049, '\P{^Sc=	_Gonm}', "");
-    Expect(0, 73050, '\p{Sc=	_Gonm}', "");
-    Expect(1, 73050, '\p{^Sc=	_Gonm}', "");
-    Expect(1, 73050, '\P{Sc=	_Gonm}', "");
-    Expect(0, 73050, '\P{^Sc=	_Gonm}', "");
-    Error('\p{Is_Script=_:=Masaram_GONDI}');
-    Error('\P{Is_Script=_:=Masaram_GONDI}');
+    Expect(1, 73049, '\p{Sc= _gonm}', "");
+    Expect(0, 73049, '\p{^Sc= _gonm}', "");
+    Expect(0, 73049, '\P{Sc= _gonm}', "");
+    Expect(1, 73049, '\P{^Sc= _gonm}', "");
+    Expect(0, 73050, '\p{Sc= _gonm}', "");
+    Expect(1, 73050, '\p{^Sc= _gonm}', "");
+    Expect(1, 73050, '\P{Sc= _gonm}', "");
+    Expect(0, 73050, '\P{^Sc= _gonm}', "");
+    Error('\p{Is_Script=:=	 Masaram_GONDI}');
+    Error('\P{Is_Script=:=	 Masaram_GONDI}');
     Expect(1, 73049, '\p{Is_Script=masaramgondi}', "");
     Expect(0, 73049, '\p{^Is_Script=masaramgondi}', "");
     Expect(0, 73049, '\P{Is_Script=masaramgondi}', "");
@@ -131707,16 +132899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73050, '\p{^Is_Script=masaramgondi}', "");
     Expect(1, 73050, '\P{Is_Script=masaramgondi}', "");
     Expect(0, 73050, '\P{^Is_Script=masaramgondi}', "");
-    Expect(1, 73049, '\p{Is_Script=-masaram_gondi}', "");
-    Expect(0, 73049, '\p{^Is_Script=-masaram_gondi}', "");
-    Expect(0, 73049, '\P{Is_Script=-masaram_gondi}', "");
-    Expect(1, 73049, '\P{^Is_Script=-masaram_gondi}', "");
-    Expect(0, 73050, '\p{Is_Script=-masaram_gondi}', "");
-    Expect(1, 73050, '\p{^Is_Script=-masaram_gondi}', "");
-    Expect(1, 73050, '\P{Is_Script=-masaram_gondi}', "");
-    Expect(0, 73050, '\P{^Is_Script=-masaram_gondi}', "");
-    Error('\p{Is_Sc=:=	 Gonm}');
-    Error('\P{Is_Sc=:=	 Gonm}');
+    Expect(1, 73049, '\p{Is_Script=	 MASARAM_Gondi}', "");
+    Expect(0, 73049, '\p{^Is_Script=	 MASARAM_Gondi}', "");
+    Expect(0, 73049, '\P{Is_Script=	 MASARAM_Gondi}', "");
+    Expect(1, 73049, '\P{^Is_Script=	 MASARAM_Gondi}', "");
+    Expect(0, 73050, '\p{Is_Script=	 MASARAM_Gondi}', "");
+    Expect(1, 73050, '\p{^Is_Script=	 MASARAM_Gondi}', "");
+    Expect(1, 73050, '\P{Is_Script=	 MASARAM_Gondi}', "");
+    Expect(0, 73050, '\P{^Is_Script=	 MASARAM_Gondi}', "");
+    Error('\p{Is_Sc:	:=_	Gonm}');
+    Error('\P{Is_Sc:	:=_	Gonm}');
     Expect(1, 73049, '\p{Is_Sc=gonm}', "");
     Expect(0, 73049, '\p{^Is_Sc=gonm}', "");
     Expect(0, 73049, '\P{Is_Sc=gonm}', "");
@@ -131725,38 +132917,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73050, '\p{^Is_Sc=gonm}', "");
     Expect(1, 73050, '\P{Is_Sc=gonm}', "");
     Expect(0, 73050, '\P{^Is_Sc=gonm}', "");
-    Expect(1, 73049, '\p{Is_Sc=	_GONM}', "");
-    Expect(0, 73049, '\p{^Is_Sc=	_GONM}', "");
-    Expect(0, 73049, '\P{Is_Sc=	_GONM}', "");
-    Expect(1, 73049, '\P{^Is_Sc=	_GONM}', "");
-    Expect(0, 73050, '\p{Is_Sc=	_GONM}', "");
-    Expect(1, 73050, '\p{^Is_Sc=	_GONM}', "");
-    Expect(1, 73050, '\P{Is_Sc=	_GONM}', "");
-    Expect(0, 73050, '\P{^Is_Sc=	_GONM}', "");
-    Error('\p{Script=/a/-GOTHIC}');
-    Error('\P{Script=/a/-GOTHIC}');
+    Expect(1, 73049, '\p{Is_Sc= GONM}', "");
+    Expect(0, 73049, '\p{^Is_Sc= GONM}', "");
+    Expect(0, 73049, '\P{Is_Sc= GONM}', "");
+    Expect(1, 73049, '\P{^Is_Sc= GONM}', "");
+    Expect(0, 73050, '\p{Is_Sc= GONM}', "");
+    Expect(1, 73050, '\p{^Is_Sc= GONM}', "");
+    Expect(1, 73050, '\P{Is_Sc= GONM}', "");
+    Expect(0, 73050, '\P{^Is_Sc= GONM}', "");
+    Error('\p{Script=-	Gothic/a/}');
+    Error('\P{Script=-	Gothic/a/}');
     Expect(1, 66378, '\p{Script=:\AGothic\z:}', "");;
     Expect(0, 66379, '\p{Script=:\AGothic\z:}', "");;
-    Expect(1, 66378, '\p{Script:	gothic}', "");
-    Expect(0, 66378, '\p{^Script:	gothic}', "");
-    Expect(0, 66378, '\P{Script:	gothic}', "");
-    Expect(1, 66378, '\P{^Script:	gothic}', "");
-    Expect(0, 66379, '\p{Script:	gothic}', "");
-    Expect(1, 66379, '\p{^Script:	gothic}', "");
-    Expect(1, 66379, '\P{Script:	gothic}', "");
-    Expect(0, 66379, '\P{^Script:	gothic}', "");
+    Expect(1, 66378, '\p{Script=gothic}', "");
+    Expect(0, 66378, '\p{^Script=gothic}', "");
+    Expect(0, 66378, '\P{Script=gothic}', "");
+    Expect(1, 66378, '\P{^Script=gothic}', "");
+    Expect(0, 66379, '\p{Script=gothic}', "");
+    Expect(1, 66379, '\p{^Script=gothic}', "");
+    Expect(1, 66379, '\P{Script=gothic}', "");
+    Expect(0, 66379, '\P{^Script=gothic}', "");
     Expect(1, 66378, '\p{Script=:\Agothic\z:}', "");;
     Expect(0, 66379, '\p{Script=:\Agothic\z:}', "");;
-    Expect(1, 66378, '\p{Script=__gothic}', "");
-    Expect(0, 66378, '\p{^Script=__gothic}', "");
-    Expect(0, 66378, '\P{Script=__gothic}', "");
-    Expect(1, 66378, '\P{^Script=__gothic}', "");
-    Expect(0, 66379, '\p{Script=__gothic}', "");
-    Expect(1, 66379, '\p{^Script=__gothic}', "");
-    Expect(1, 66379, '\P{Script=__gothic}', "");
-    Expect(0, 66379, '\P{^Script=__gothic}', "");
-    Error('\p{Sc=:=_	Goth}');
-    Error('\P{Sc=:=_	Goth}');
+    Expect(1, 66378, '\p{Script=_-GOTHIC}', "");
+    Expect(0, 66378, '\p{^Script=_-GOTHIC}', "");
+    Expect(0, 66378, '\P{Script=_-GOTHIC}', "");
+    Expect(1, 66378, '\P{^Script=_-GOTHIC}', "");
+    Expect(0, 66379, '\p{Script=_-GOTHIC}', "");
+    Expect(1, 66379, '\p{^Script=_-GOTHIC}', "");
+    Expect(1, 66379, '\P{Script=_-GOTHIC}', "");
+    Expect(0, 66379, '\P{^Script=_-GOTHIC}', "");
+    Error('\p{Sc=:=  GOTH}');
+    Error('\P{Sc=:=  GOTH}');
     Expect(1, 66378, '\p{Sc=:\AGoth\z:}', "");;
     Expect(0, 66379, '\p{Sc=:\AGoth\z:}', "");;
     Expect(1, 66378, '\p{Sc=goth}', "");
@@ -131769,16 +132961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66379, '\P{^Sc=goth}', "");
     Expect(1, 66378, '\p{Sc=:\Agoth\z:}', "");;
     Expect(0, 66379, '\p{Sc=:\Agoth\z:}', "");;
-    Expect(1, 66378, '\p{Sc= 	Goth}', "");
-    Expect(0, 66378, '\p{^Sc= 	Goth}', "");
-    Expect(0, 66378, '\P{Sc= 	Goth}', "");
-    Expect(1, 66378, '\P{^Sc= 	Goth}', "");
-    Expect(0, 66379, '\p{Sc= 	Goth}', "");
-    Expect(1, 66379, '\p{^Sc= 	Goth}', "");
-    Expect(1, 66379, '\P{Sc= 	Goth}', "");
-    Expect(0, 66379, '\P{^Sc= 	Goth}', "");
-    Error('\p{Is_Script=_/a/gothic}');
-    Error('\P{Is_Script=_/a/gothic}');
+    Expect(1, 66378, '\p{Sc=	-goth}', "");
+    Expect(0, 66378, '\p{^Sc=	-goth}', "");
+    Expect(0, 66378, '\P{Sc=	-goth}', "");
+    Expect(1, 66378, '\P{^Sc=	-goth}', "");
+    Expect(0, 66379, '\p{Sc=	-goth}', "");
+    Expect(1, 66379, '\p{^Sc=	-goth}', "");
+    Expect(1, 66379, '\P{Sc=	-goth}', "");
+    Expect(0, 66379, '\P{^Sc=	-goth}', "");
+    Error('\p{Is_Script=:=	-Gothic}');
+    Error('\P{Is_Script=:=	-Gothic}');
     Expect(1, 66378, '\p{Is_Script=gothic}', "");
     Expect(0, 66378, '\p{^Is_Script=gothic}', "");
     Expect(0, 66378, '\P{Is_Script=gothic}', "");
@@ -131787,16 +132979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66379, '\p{^Is_Script=gothic}', "");
     Expect(1, 66379, '\P{Is_Script=gothic}', "");
     Expect(0, 66379, '\P{^Is_Script=gothic}', "");
-    Expect(1, 66378, '\p{Is_Script=-_Gothic}', "");
-    Expect(0, 66378, '\p{^Is_Script=-_Gothic}', "");
-    Expect(0, 66378, '\P{Is_Script=-_Gothic}', "");
-    Expect(1, 66378, '\P{^Is_Script=-_Gothic}', "");
-    Expect(0, 66379, '\p{Is_Script=-_Gothic}', "");
-    Expect(1, 66379, '\p{^Is_Script=-_Gothic}', "");
-    Expect(1, 66379, '\P{Is_Script=-_Gothic}', "");
-    Expect(0, 66379, '\P{^Is_Script=-_Gothic}', "");
-    Error('\p{Is_Sc:   	/a/goth}');
-    Error('\P{Is_Sc:   	/a/goth}');
+    Expect(1, 66378, '\p{Is_Script=		gothic}', "");
+    Expect(0, 66378, '\p{^Is_Script=		gothic}', "");
+    Expect(0, 66378, '\P{Is_Script=		gothic}', "");
+    Expect(1, 66378, '\P{^Is_Script=		gothic}', "");
+    Expect(0, 66379, '\p{Is_Script=		gothic}', "");
+    Expect(1, 66379, '\p{^Is_Script=		gothic}', "");
+    Expect(1, 66379, '\P{Is_Script=		gothic}', "");
+    Expect(0, 66379, '\P{^Is_Script=		gothic}', "");
+    Error('\p{Is_Sc=_	Goth:=}');
+    Error('\P{Is_Sc=_	Goth:=}');
     Expect(1, 66378, '\p{Is_Sc=goth}', "");
     Expect(0, 66378, '\p{^Is_Sc=goth}', "");
     Expect(0, 66378, '\P{Is_Sc=goth}', "");
@@ -131805,16 +132997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66379, '\p{^Is_Sc=goth}', "");
     Expect(1, 66379, '\P{Is_Sc=goth}', "");
     Expect(0, 66379, '\P{^Is_Sc=goth}', "");
-    Expect(1, 66378, '\p{Is_Sc=- Goth}', "");
-    Expect(0, 66378, '\p{^Is_Sc=- Goth}', "");
-    Expect(0, 66378, '\P{Is_Sc=- Goth}', "");
-    Expect(1, 66378, '\P{^Is_Sc=- Goth}', "");
-    Expect(0, 66379, '\p{Is_Sc=- Goth}', "");
-    Expect(1, 66379, '\p{^Is_Sc=- Goth}', "");
-    Expect(1, 66379, '\P{Is_Sc=- Goth}', "");
-    Expect(0, 66379, '\P{^Is_Sc=- Goth}', "");
-    Error('\p{Script=		GRANTHA:=}');
-    Error('\P{Script=		GRANTHA:=}');
+    Expect(1, 66378, '\p{Is_Sc= goth}', "");
+    Expect(0, 66378, '\p{^Is_Sc= goth}', "");
+    Expect(0, 66378, '\P{Is_Sc= goth}', "");
+    Expect(1, 66378, '\P{^Is_Sc= goth}', "");
+    Expect(0, 66379, '\p{Is_Sc= goth}', "");
+    Expect(1, 66379, '\p{^Is_Sc= goth}', "");
+    Expect(1, 66379, '\P{Is_Sc= goth}', "");
+    Expect(0, 66379, '\P{^Is_Sc= goth}', "");
+    Error('\p{Script=-	grantha/a/}');
+    Error('\P{Script=-	grantha/a/}');
     Expect(1, 70516, '\p{Script=:\AGrantha\z:}', "");;
     Expect(0, 70517, '\p{Script=:\AGrantha\z:}', "");;
     Expect(1, 70516, '\p{Script=grantha}', "");
@@ -131835,8 +133027,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70517, '\p{^Script:    grantha}', "");
     Expect(1, 70517, '\P{Script:    grantha}', "");
     Expect(0, 70517, '\P{^Script:    grantha}', "");
-    Error('\p{Sc=	:=Gran}');
-    Error('\P{Sc=	:=Gran}');
+    Error('\p{Sc=_:=Gran}');
+    Error('\P{Sc=_:=Gran}');
     Expect(1, 70516, '\p{Sc=:\AGran\z:}', "");;
     Expect(0, 70517, '\p{Sc=:\AGran\z:}', "");;
     Expect(1, 70516, '\p{Sc=gran}', "");
@@ -131849,34 +133041,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70517, '\P{^Sc=gran}', "");
     Expect(1, 70516, '\p{Sc=:\Agran\z:}', "");;
     Expect(0, 70517, '\p{Sc=:\Agran\z:}', "");;
-    Expect(1, 70516, '\p{Sc=-Gran}', "");
-    Expect(0, 70516, '\p{^Sc=-Gran}', "");
-    Expect(0, 70516, '\P{Sc=-Gran}', "");
-    Expect(1, 70516, '\P{^Sc=-Gran}', "");
-    Expect(0, 70517, '\p{Sc=-Gran}', "");
-    Expect(1, 70517, '\p{^Sc=-Gran}', "");
-    Expect(1, 70517, '\P{Sc=-Gran}', "");
-    Expect(0, 70517, '\P{^Sc=-Gran}', "");
-    Error('\p{Is_Script=:=Grantha}');
-    Error('\P{Is_Script=:=Grantha}');
-    Expect(1, 70516, '\p{Is_Script:grantha}', "");
-    Expect(0, 70516, '\p{^Is_Script:grantha}', "");
-    Expect(0, 70516, '\P{Is_Script:grantha}', "");
-    Expect(1, 70516, '\P{^Is_Script:grantha}', "");
-    Expect(0, 70517, '\p{Is_Script:grantha}', "");
-    Expect(1, 70517, '\p{^Is_Script:grantha}', "");
-    Expect(1, 70517, '\P{Is_Script:grantha}', "");
-    Expect(0, 70517, '\P{^Is_Script:grantha}', "");
-    Expect(1, 70516, '\p{Is_Script=	GRANTHA}', "");
-    Expect(0, 70516, '\p{^Is_Script=	GRANTHA}', "");
-    Expect(0, 70516, '\P{Is_Script=	GRANTHA}', "");
-    Expect(1, 70516, '\P{^Is_Script=	GRANTHA}', "");
-    Expect(0, 70517, '\p{Is_Script=	GRANTHA}', "");
-    Expect(1, 70517, '\p{^Is_Script=	GRANTHA}', "");
-    Expect(1, 70517, '\P{Is_Script=	GRANTHA}', "");
-    Expect(0, 70517, '\P{^Is_Script=	GRANTHA}', "");
-    Error('\p{Is_Sc:-gran:=}');
-    Error('\P{Is_Sc:-gran:=}');
+    Expect(1, 70516, '\p{Sc=	 Gran}', "");
+    Expect(0, 70516, '\p{^Sc=	 Gran}', "");
+    Expect(0, 70516, '\P{Sc=	 Gran}', "");
+    Expect(1, 70516, '\P{^Sc=	 Gran}', "");
+    Expect(0, 70517, '\p{Sc=	 Gran}', "");
+    Expect(1, 70517, '\p{^Sc=	 Gran}', "");
+    Expect(1, 70517, '\P{Sc=	 Gran}', "");
+    Expect(0, 70517, '\P{^Sc=	 Gran}', "");
+    Error('\p{Is_Script=_/a/grantha}');
+    Error('\P{Is_Script=_/a/grantha}');
+    Expect(1, 70516, '\p{Is_Script=grantha}', "");
+    Expect(0, 70516, '\p{^Is_Script=grantha}', "");
+    Expect(0, 70516, '\P{Is_Script=grantha}', "");
+    Expect(1, 70516, '\P{^Is_Script=grantha}', "");
+    Expect(0, 70517, '\p{Is_Script=grantha}', "");
+    Expect(1, 70517, '\p{^Is_Script=grantha}', "");
+    Expect(1, 70517, '\P{Is_Script=grantha}', "");
+    Expect(0, 70517, '\P{^Is_Script=grantha}', "");
+    Expect(1, 70516, '\p{Is_Script=-	Grantha}', "");
+    Expect(0, 70516, '\p{^Is_Script=-	Grantha}', "");
+    Expect(0, 70516, '\P{Is_Script=-	Grantha}', "");
+    Expect(1, 70516, '\P{^Is_Script=-	Grantha}', "");
+    Expect(0, 70517, '\p{Is_Script=-	Grantha}', "");
+    Expect(1, 70517, '\p{^Is_Script=-	Grantha}', "");
+    Expect(1, 70517, '\P{Is_Script=-	Grantha}', "");
+    Expect(0, 70517, '\P{^Is_Script=-	Grantha}', "");
+    Error('\p{Is_Sc=/a/_	Gran}');
+    Error('\P{Is_Sc=/a/_	Gran}');
     Expect(1, 70516, '\p{Is_Sc=gran}', "");
     Expect(0, 70516, '\p{^Is_Sc=gran}', "");
     Expect(0, 70516, '\P{Is_Sc=gran}', "");
@@ -131885,60 +133077,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70517, '\p{^Is_Sc=gran}', "");
     Expect(1, 70517, '\P{Is_Sc=gran}', "");
     Expect(0, 70517, '\P{^Is_Sc=gran}', "");
-    Expect(1, 70516, '\p{Is_Sc=_ GRAN}', "");
-    Expect(0, 70516, '\p{^Is_Sc=_ GRAN}', "");
-    Expect(0, 70516, '\P{Is_Sc=_ GRAN}', "");
-    Expect(1, 70516, '\P{^Is_Sc=_ GRAN}', "");
-    Expect(0, 70517, '\p{Is_Sc=_ GRAN}', "");
-    Expect(1, 70517, '\p{^Is_Sc=_ GRAN}', "");
-    Expect(1, 70517, '\P{Is_Sc=_ GRAN}', "");
-    Expect(0, 70517, '\P{^Is_Sc=_ GRAN}', "");
-    Error('\p{Script: -/a/Greek}');
-    Error('\P{Script: -/a/Greek}');
+    Expect(1, 70516, '\p{Is_Sc=_	Gran}', "");
+    Expect(0, 70516, '\p{^Is_Sc=_	Gran}', "");
+    Expect(0, 70516, '\P{Is_Sc=_	Gran}', "");
+    Expect(1, 70516, '\P{^Is_Sc=_	Gran}', "");
+    Expect(0, 70517, '\p{Is_Sc=_	Gran}', "");
+    Expect(1, 70517, '\p{^Is_Sc=_	Gran}', "");
+    Expect(1, 70517, '\P{Is_Sc=_	Gran}', "");
+    Expect(0, 70517, '\P{^Is_Sc=_	Gran}', "");
+    Error('\p{Script=/a/	 GREEK}');
+    Error('\P{Script=/a/	 GREEK}');
     Expect(1, 119365, '\p{Script=:\AGreek\z:}', "");;
     Expect(0, 119366, '\p{Script=:\AGreek\z:}', "");;
-    Expect(1, 119365, '\p{Script:	greek}', "");
-    Expect(0, 119365, '\p{^Script:	greek}', "");
-    Expect(0, 119365, '\P{Script:	greek}', "");
-    Expect(1, 119365, '\P{^Script:	greek}', "");
-    Expect(0, 119366, '\p{Script:	greek}', "");
-    Expect(1, 119366, '\p{^Script:	greek}', "");
-    Expect(1, 119366, '\P{Script:	greek}', "");
-    Expect(0, 119366, '\P{^Script:	greek}', "");
+    Expect(1, 119365, '\p{Script=greek}', "");
+    Expect(0, 119365, '\p{^Script=greek}', "");
+    Expect(0, 119365, '\P{Script=greek}', "");
+    Expect(1, 119365, '\P{^Script=greek}', "");
+    Expect(0, 119366, '\p{Script=greek}', "");
+    Expect(1, 119366, '\p{^Script=greek}', "");
+    Expect(1, 119366, '\P{Script=greek}', "");
+    Expect(0, 119366, '\P{^Script=greek}', "");
     Expect(1, 119365, '\p{Script=:\Agreek\z:}', "");;
     Expect(0, 119366, '\p{Script=:\Agreek\z:}', "");;
-    Expect(1, 119365, '\p{Script=		GREEK}', "");
-    Expect(0, 119365, '\p{^Script=		GREEK}', "");
-    Expect(0, 119365, '\P{Script=		GREEK}', "");
-    Expect(1, 119365, '\P{^Script=		GREEK}', "");
-    Expect(0, 119366, '\p{Script=		GREEK}', "");
-    Expect(1, 119366, '\p{^Script=		GREEK}', "");
-    Expect(1, 119366, '\P{Script=		GREEK}', "");
-    Expect(0, 119366, '\P{^Script=		GREEK}', "");
-    Error('\p{Sc=	/a/Grek}');
-    Error('\P{Sc=	/a/Grek}');
+    Expect(1, 119365, '\p{Script= Greek}', "");
+    Expect(0, 119365, '\p{^Script= Greek}', "");
+    Expect(0, 119365, '\P{Script= Greek}', "");
+    Expect(1, 119365, '\P{^Script= Greek}', "");
+    Expect(0, 119366, '\p{Script= Greek}', "");
+    Expect(1, 119366, '\p{^Script= Greek}', "");
+    Expect(1, 119366, '\P{Script= Greek}', "");
+    Expect(0, 119366, '\P{^Script= Greek}', "");
+    Error('\p{Sc=		Grek/a/}');
+    Error('\P{Sc=		Grek/a/}');
     Expect(1, 119365, '\p{Sc=:\AGrek\z:}', "");;
     Expect(0, 119366, '\p{Sc=:\AGrek\z:}', "");;
-    Expect(1, 119365, '\p{Sc=grek}', "");
-    Expect(0, 119365, '\p{^Sc=grek}', "");
-    Expect(0, 119365, '\P{Sc=grek}', "");
-    Expect(1, 119365, '\P{^Sc=grek}', "");
-    Expect(0, 119366, '\p{Sc=grek}', "");
-    Expect(1, 119366, '\p{^Sc=grek}', "");
-    Expect(1, 119366, '\P{Sc=grek}', "");
-    Expect(0, 119366, '\P{^Sc=grek}', "");
+    Expect(1, 119365, '\p{Sc:   grek}', "");
+    Expect(0, 119365, '\p{^Sc:   grek}', "");
+    Expect(0, 119365, '\P{Sc:   grek}', "");
+    Expect(1, 119365, '\P{^Sc:   grek}', "");
+    Expect(0, 119366, '\p{Sc:   grek}', "");
+    Expect(1, 119366, '\p{^Sc:   grek}', "");
+    Expect(1, 119366, '\P{Sc:   grek}', "");
+    Expect(0, 119366, '\P{^Sc:   grek}', "");
     Expect(1, 119365, '\p{Sc=:\Agrek\z:}', "");;
     Expect(0, 119366, '\p{Sc=:\Agrek\z:}', "");;
-    Expect(1, 119365, '\p{Sc=_	Grek}', "");
-    Expect(0, 119365, '\p{^Sc=_	Grek}', "");
-    Expect(0, 119365, '\P{Sc=_	Grek}', "");
-    Expect(1, 119365, '\P{^Sc=_	Grek}', "");
-    Expect(0, 119366, '\p{Sc=_	Grek}', "");
-    Expect(1, 119366, '\p{^Sc=_	Grek}', "");
-    Expect(1, 119366, '\P{Sc=_	Grek}', "");
-    Expect(0, 119366, '\P{^Sc=_	Grek}', "");
-    Error('\p{Is_Script=__Greek/a/}');
-    Error('\P{Is_Script=__Greek/a/}');
+    Expect(1, 119365, '\p{Sc=  Grek}', "");
+    Expect(0, 119365, '\p{^Sc=  Grek}', "");
+    Expect(0, 119365, '\P{Sc=  Grek}', "");
+    Expect(1, 119365, '\P{^Sc=  Grek}', "");
+    Expect(0, 119366, '\p{Sc=  Grek}', "");
+    Expect(1, 119366, '\p{^Sc=  Grek}', "");
+    Expect(1, 119366, '\P{Sc=  Grek}', "");
+    Expect(0, 119366, '\P{^Sc=  Grek}', "");
+    Error('\p{Is_Script=/a/--greek}');
+    Error('\P{Is_Script=/a/--greek}');
     Expect(1, 119365, '\p{Is_Script=greek}', "");
     Expect(0, 119365, '\p{^Is_Script=greek}', "");
     Expect(0, 119365, '\P{Is_Script=greek}', "");
@@ -131947,16 +133139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119366, '\p{^Is_Script=greek}', "");
     Expect(1, 119366, '\P{Is_Script=greek}', "");
     Expect(0, 119366, '\P{^Is_Script=greek}', "");
-    Expect(1, 119365, '\p{Is_Script=-_Greek}', "");
-    Expect(0, 119365, '\p{^Is_Script=-_Greek}', "");
-    Expect(0, 119365, '\P{Is_Script=-_Greek}', "");
-    Expect(1, 119365, '\P{^Is_Script=-_Greek}', "");
-    Expect(0, 119366, '\p{Is_Script=-_Greek}', "");
-    Expect(1, 119366, '\p{^Is_Script=-_Greek}', "");
-    Expect(1, 119366, '\P{Is_Script=-_Greek}', "");
-    Expect(0, 119366, '\P{^Is_Script=-_Greek}', "");
-    Error('\p{Is_Sc=_/a/Grek}');
-    Error('\P{Is_Sc=_/a/Grek}');
+    Expect(1, 119365, '\p{Is_Script=_	greek}', "");
+    Expect(0, 119365, '\p{^Is_Script=_	greek}', "");
+    Expect(0, 119365, '\P{Is_Script=_	greek}', "");
+    Expect(1, 119365, '\P{^Is_Script=_	greek}', "");
+    Expect(0, 119366, '\p{Is_Script=_	greek}', "");
+    Expect(1, 119366, '\p{^Is_Script=_	greek}', "");
+    Expect(1, 119366, '\P{Is_Script=_	greek}', "");
+    Expect(0, 119366, '\P{^Is_Script=_	greek}', "");
+    Error('\p{Is_Sc=--GREK:=}');
+    Error('\P{Is_Sc=--GREK:=}');
     Expect(1, 119365, '\p{Is_Sc=grek}', "");
     Expect(0, 119365, '\p{^Is_Sc=grek}', "");
     Expect(0, 119365, '\P{Is_Sc=grek}', "");
@@ -131965,16 +133157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119366, '\p{^Is_Sc=grek}', "");
     Expect(1, 119366, '\P{Is_Sc=grek}', "");
     Expect(0, 119366, '\P{^Is_Sc=grek}', "");
-    Expect(1, 119365, '\p{Is_Sc=	grek}', "");
-    Expect(0, 119365, '\p{^Is_Sc=	grek}', "");
-    Expect(0, 119365, '\P{Is_Sc=	grek}', "");
-    Expect(1, 119365, '\P{^Is_Sc=	grek}', "");
-    Expect(0, 119366, '\p{Is_Sc=	grek}', "");
-    Expect(1, 119366, '\p{^Is_Sc=	grek}', "");
-    Expect(1, 119366, '\P{Is_Sc=	grek}', "");
-    Expect(0, 119366, '\P{^Is_Sc=	grek}', "");
-    Error('\p{Script=- Gujarati/a/}');
-    Error('\P{Script=- Gujarati/a/}');
+    Expect(1, 119365, '\p{Is_Sc=-GREK}', "");
+    Expect(0, 119365, '\p{^Is_Sc=-GREK}', "");
+    Expect(0, 119365, '\P{Is_Sc=-GREK}', "");
+    Expect(1, 119365, '\P{^Is_Sc=-GREK}', "");
+    Expect(0, 119366, '\p{Is_Sc=-GREK}', "");
+    Expect(1, 119366, '\p{^Is_Sc=-GREK}', "");
+    Expect(1, 119366, '\P{Is_Sc=-GREK}', "");
+    Expect(0, 119366, '\P{^Is_Sc=-GREK}', "");
+    Error('\p{Script=  gujarati/a/}');
+    Error('\P{Script=  gujarati/a/}');
     Expect(1, 2815, '\p{Script=:\AGujarati\z:}', "");;
     Expect(0, 2816, '\p{Script=:\AGujarati\z:}', "");;
     Expect(1, 2815, '\p{Script=gujarati}', "");
@@ -131987,16 +133179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2816, '\P{^Script=gujarati}', "");
     Expect(1, 2815, '\p{Script=:\Agujarati\z:}', "");;
     Expect(0, 2816, '\p{Script=:\Agujarati\z:}', "");;
-    Expect(1, 2815, '\p{Script= -gujarati}', "");
-    Expect(0, 2815, '\p{^Script= -gujarati}', "");
-    Expect(0, 2815, '\P{Script= -gujarati}', "");
-    Expect(1, 2815, '\P{^Script= -gujarati}', "");
-    Expect(0, 2816, '\p{Script= -gujarati}', "");
-    Expect(1, 2816, '\p{^Script= -gujarati}', "");
-    Expect(1, 2816, '\P{Script= -gujarati}', "");
-    Expect(0, 2816, '\P{^Script= -gujarati}', "");
-    Error('\p{Sc= 	gujr:=}');
-    Error('\P{Sc= 	gujr:=}');
+    Expect(1, 2815, '\p{Script=		Gujarati}', "");
+    Expect(0, 2815, '\p{^Script=		Gujarati}', "");
+    Expect(0, 2815, '\P{Script=		Gujarati}', "");
+    Expect(1, 2815, '\P{^Script=		Gujarati}', "");
+    Expect(0, 2816, '\p{Script=		Gujarati}', "");
+    Expect(1, 2816, '\p{^Script=		Gujarati}', "");
+    Expect(1, 2816, '\P{Script=		Gujarati}', "");
+    Expect(0, 2816, '\P{^Script=		Gujarati}', "");
+    Error('\p{Sc= 	GUJR:=}');
+    Error('\P{Sc= 	GUJR:=}');
     Expect(1, 2815, '\p{Sc=:\AGujr\z:}', "");;
     Expect(0, 2816, '\p{Sc=:\AGujr\z:}', "");;
     Expect(1, 2815, '\p{Sc=gujr}', "");
@@ -132009,16 +133201,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2816, '\P{^Sc=gujr}', "");
     Expect(1, 2815, '\p{Sc=:\Agujr\z:}', "");;
     Expect(0, 2816, '\p{Sc=:\Agujr\z:}', "");;
-    Expect(1, 2815, '\p{Sc=	-Gujr}', "");
-    Expect(0, 2815, '\p{^Sc=	-Gujr}', "");
-    Expect(0, 2815, '\P{Sc=	-Gujr}', "");
-    Expect(1, 2815, '\P{^Sc=	-Gujr}', "");
-    Expect(0, 2816, '\p{Sc=	-Gujr}', "");
-    Expect(1, 2816, '\p{^Sc=	-Gujr}', "");
-    Expect(1, 2816, '\P{Sc=	-Gujr}', "");
-    Expect(0, 2816, '\P{^Sc=	-Gujr}', "");
-    Error('\p{Is_Script=/a/	gujarati}');
-    Error('\P{Is_Script=/a/	gujarati}');
+    Expect(1, 2815, '\p{Sc=		GUJR}', "");
+    Expect(0, 2815, '\p{^Sc=		GUJR}', "");
+    Expect(0, 2815, '\P{Sc=		GUJR}', "");
+    Expect(1, 2815, '\P{^Sc=		GUJR}', "");
+    Expect(0, 2816, '\p{Sc=		GUJR}', "");
+    Expect(1, 2816, '\p{^Sc=		GUJR}', "");
+    Expect(1, 2816, '\P{Sc=		GUJR}', "");
+    Expect(0, 2816, '\P{^Sc=		GUJR}', "");
+    Error('\p{Is_Script= Gujarati/a/}');
+    Error('\P{Is_Script= Gujarati/a/}');
     Expect(1, 2815, '\p{Is_Script=gujarati}', "");
     Expect(0, 2815, '\p{^Is_Script=gujarati}', "");
     Expect(0, 2815, '\P{Is_Script=gujarati}', "");
@@ -132027,16 +133219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2816, '\p{^Is_Script=gujarati}', "");
     Expect(1, 2816, '\P{Is_Script=gujarati}', "");
     Expect(0, 2816, '\P{^Is_Script=gujarati}', "");
-    Expect(1, 2815, '\p{Is_Script=	gujarati}', "");
-    Expect(0, 2815, '\p{^Is_Script=	gujarati}', "");
-    Expect(0, 2815, '\P{Is_Script=	gujarati}', "");
-    Expect(1, 2815, '\P{^Is_Script=	gujarati}', "");
-    Expect(0, 2816, '\p{Is_Script=	gujarati}', "");
-    Expect(1, 2816, '\p{^Is_Script=	gujarati}', "");
-    Expect(1, 2816, '\P{Is_Script=	gujarati}', "");
-    Expect(0, 2816, '\P{^Is_Script=	gujarati}', "");
-    Error('\p{Is_Sc= /a/gujr}');
-    Error('\P{Is_Sc= /a/gujr}');
+    Expect(1, 2815, '\p{Is_Script=_Gujarati}', "");
+    Expect(0, 2815, '\p{^Is_Script=_Gujarati}', "");
+    Expect(0, 2815, '\P{Is_Script=_Gujarati}', "");
+    Expect(1, 2815, '\P{^Is_Script=_Gujarati}', "");
+    Expect(0, 2816, '\p{Is_Script=_Gujarati}', "");
+    Expect(1, 2816, '\p{^Is_Script=_Gujarati}', "");
+    Expect(1, 2816, '\P{Is_Script=_Gujarati}', "");
+    Expect(0, 2816, '\P{^Is_Script=_Gujarati}', "");
+    Error('\p{Is_Sc=--Gujr:=}');
+    Error('\P{Is_Sc=--Gujr:=}');
     Expect(1, 2815, '\p{Is_Sc=gujr}', "");
     Expect(0, 2815, '\p{^Is_Sc=gujr}', "");
     Expect(0, 2815, '\P{Is_Sc=gujr}', "");
@@ -132045,16 +133237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2816, '\p{^Is_Sc=gujr}', "");
     Expect(1, 2816, '\P{Is_Sc=gujr}', "");
     Expect(0, 2816, '\P{^Is_Sc=gujr}', "");
-    Expect(1, 2815, '\p{Is_Sc=-	Gujr}', "");
-    Expect(0, 2815, '\p{^Is_Sc=-	Gujr}', "");
-    Expect(0, 2815, '\P{Is_Sc=-	Gujr}', "");
-    Expect(1, 2815, '\P{^Is_Sc=-	Gujr}', "");
-    Expect(0, 2816, '\p{Is_Sc=-	Gujr}', "");
-    Expect(1, 2816, '\p{^Is_Sc=-	Gujr}', "");
-    Expect(1, 2816, '\P{Is_Sc=-	Gujr}', "");
-    Expect(0, 2816, '\P{^Is_Sc=-	Gujr}', "");
-    Error('\p{Script=/a/Gurmukhi}');
-    Error('\P{Script=/a/Gurmukhi}');
+    Expect(1, 2815, '\p{Is_Sc=	Gujr}', "");
+    Expect(0, 2815, '\p{^Is_Sc=	Gujr}', "");
+    Expect(0, 2815, '\P{Is_Sc=	Gujr}', "");
+    Expect(1, 2815, '\P{^Is_Sc=	Gujr}', "");
+    Expect(0, 2816, '\p{Is_Sc=	Gujr}', "");
+    Expect(1, 2816, '\p{^Is_Sc=	Gujr}', "");
+    Expect(1, 2816, '\P{Is_Sc=	Gujr}', "");
+    Expect(0, 2816, '\P{^Is_Sc=	Gujr}', "");
+    Error('\p{Script=	/a/GURMUKHI}');
+    Error('\P{Script=	/a/GURMUKHI}');
     Expect(1, 2678, '\p{Script=:\AGurmukhi\z:}', "");;
     Expect(0, 2679, '\p{Script=:\AGurmukhi\z:}', "");;
     Expect(1, 2678, '\p{Script=gurmukhi}', "");
@@ -132067,16 +133259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2679, '\P{^Script=gurmukhi}', "");
     Expect(1, 2678, '\p{Script=:\Agurmukhi\z:}', "");;
     Expect(0, 2679, '\p{Script=:\Agurmukhi\z:}', "");;
-    Expect(1, 2678, '\p{Script=	_Gurmukhi}', "");
-    Expect(0, 2678, '\p{^Script=	_Gurmukhi}', "");
-    Expect(0, 2678, '\P{Script=	_Gurmukhi}', "");
-    Expect(1, 2678, '\P{^Script=	_Gurmukhi}', "");
-    Expect(0, 2679, '\p{Script=	_Gurmukhi}', "");
-    Expect(1, 2679, '\p{^Script=	_Gurmukhi}', "");
-    Expect(1, 2679, '\P{Script=	_Gurmukhi}', "");
-    Expect(0, 2679, '\P{^Script=	_Gurmukhi}', "");
-    Error('\p{Sc=:=	_Guru}');
-    Error('\P{Sc=:=	_Guru}');
+    Expect(1, 2678, '\p{Script= GURMUKHI}', "");
+    Expect(0, 2678, '\p{^Script= GURMUKHI}', "");
+    Expect(0, 2678, '\P{Script= GURMUKHI}', "");
+    Expect(1, 2678, '\P{^Script= GURMUKHI}', "");
+    Expect(0, 2679, '\p{Script= GURMUKHI}', "");
+    Expect(1, 2679, '\p{^Script= GURMUKHI}', "");
+    Expect(1, 2679, '\P{Script= GURMUKHI}', "");
+    Expect(0, 2679, '\P{^Script= GURMUKHI}', "");
+    Error('\p{Sc=:= _Guru}');
+    Error('\P{Sc=:= _Guru}');
     Expect(1, 2678, '\p{Sc=:\AGuru\z:}', "");;
     Expect(0, 2679, '\p{Sc=:\AGuru\z:}', "");;
     Expect(1, 2678, '\p{Sc=guru}', "");
@@ -132089,16 +133281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2679, '\P{^Sc=guru}', "");
     Expect(1, 2678, '\p{Sc=:\Aguru\z:}', "");;
     Expect(0, 2679, '\p{Sc=:\Aguru\z:}', "");;
-    Expect(1, 2678, '\p{Sc= _GURU}', "");
-    Expect(0, 2678, '\p{^Sc= _GURU}', "");
-    Expect(0, 2678, '\P{Sc= _GURU}', "");
-    Expect(1, 2678, '\P{^Sc= _GURU}', "");
-    Expect(0, 2679, '\p{Sc= _GURU}', "");
-    Expect(1, 2679, '\p{^Sc= _GURU}', "");
-    Expect(1, 2679, '\P{Sc= _GURU}', "");
-    Expect(0, 2679, '\P{^Sc= _GURU}', "");
-    Error('\p{Is_Script:		-Gurmukhi:=}');
-    Error('\P{Is_Script:		-Gurmukhi:=}');
+    Expect(1, 2678, '\p{Sc: 	 guru}', "");
+    Expect(0, 2678, '\p{^Sc: 	 guru}', "");
+    Expect(0, 2678, '\P{Sc: 	 guru}', "");
+    Expect(1, 2678, '\P{^Sc: 	 guru}', "");
+    Expect(0, 2679, '\p{Sc: 	 guru}', "");
+    Expect(1, 2679, '\p{^Sc: 	 guru}', "");
+    Expect(1, 2679, '\P{Sc: 	 guru}', "");
+    Expect(0, 2679, '\P{^Sc: 	 guru}', "");
+    Error('\p{Is_Script=/a/  GURMUKHI}');
+    Error('\P{Is_Script=/a/  GURMUKHI}');
     Expect(1, 2678, '\p{Is_Script:	gurmukhi}', "");
     Expect(0, 2678, '\p{^Is_Script:	gurmukhi}', "");
     Expect(0, 2678, '\P{Is_Script:	gurmukhi}', "");
@@ -132115,8 +133307,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2679, '\p{^Is_Script=	Gurmukhi}', "");
     Expect(1, 2679, '\P{Is_Script=	Gurmukhi}', "");
     Expect(0, 2679, '\P{^Is_Script=	Gurmukhi}', "");
-    Error('\p{Is_Sc=/a/_Guru}');
-    Error('\P{Is_Sc=/a/_Guru}');
+    Error('\p{Is_Sc= _Guru:=}');
+    Error('\P{Is_Sc= _Guru:=}');
     Expect(1, 2678, '\p{Is_Sc=guru}', "");
     Expect(0, 2678, '\p{^Is_Sc=guru}', "");
     Expect(0, 2678, '\P{Is_Sc=guru}', "");
@@ -132125,16 +133317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2679, '\p{^Is_Sc=guru}', "");
     Expect(1, 2679, '\P{Is_Sc=guru}', "");
     Expect(0, 2679, '\P{^Is_Sc=guru}', "");
-    Expect(1, 2678, '\p{Is_Sc:			Guru}', "");
-    Expect(0, 2678, '\p{^Is_Sc:			Guru}', "");
-    Expect(0, 2678, '\P{Is_Sc:			Guru}', "");
-    Expect(1, 2678, '\P{^Is_Sc:			Guru}', "");
-    Expect(0, 2679, '\p{Is_Sc:			Guru}', "");
-    Expect(1, 2679, '\p{^Is_Sc:			Guru}', "");
-    Expect(1, 2679, '\P{Is_Sc:			Guru}', "");
-    Expect(0, 2679, '\P{^Is_Sc:			Guru}', "");
-    Error('\p{Script=:=Hangul}');
-    Error('\P{Script=:=Hangul}');
+    Expect(1, 2678, '\p{Is_Sc= GURU}', "");
+    Expect(0, 2678, '\p{^Is_Sc= GURU}', "");
+    Expect(0, 2678, '\P{Is_Sc= GURU}', "");
+    Expect(1, 2678, '\P{^Is_Sc= GURU}', "");
+    Expect(0, 2679, '\p{Is_Sc= GURU}', "");
+    Expect(1, 2679, '\p{^Is_Sc= GURU}', "");
+    Expect(1, 2679, '\P{Is_Sc= GURU}', "");
+    Expect(0, 2679, '\P{^Is_Sc= GURU}', "");
+    Error('\p{Script: __Hangul:=}');
+    Error('\P{Script: __Hangul:=}');
     Expect(1, 65500, '\p{Script=:\AHangul\z:}', "");;
     Expect(0, 65501, '\p{Script=:\AHangul\z:}', "");;
     Expect(1, 65500, '\p{Script=hangul}', "");
@@ -132147,16 +133339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65501, '\P{^Script=hangul}', "");
     Expect(1, 65500, '\p{Script=:\Ahangul\z:}', "");;
     Expect(0, 65501, '\p{Script=:\Ahangul\z:}', "");;
-    Expect(1, 65500, '\p{Script= -hangul}', "");
-    Expect(0, 65500, '\p{^Script= -hangul}', "");
-    Expect(0, 65500, '\P{Script= -hangul}', "");
-    Expect(1, 65500, '\P{^Script= -hangul}', "");
-    Expect(0, 65501, '\p{Script= -hangul}', "");
-    Expect(1, 65501, '\p{^Script= -hangul}', "");
-    Expect(1, 65501, '\P{Script= -hangul}', "");
-    Expect(0, 65501, '\P{^Script= -hangul}', "");
-    Error('\p{Sc=/a/_ HANG}');
-    Error('\P{Sc=/a/_ HANG}');
+    Expect(1, 65500, '\p{Script=_	Hangul}', "");
+    Expect(0, 65500, '\p{^Script=_	Hangul}', "");
+    Expect(0, 65500, '\P{Script=_	Hangul}', "");
+    Expect(1, 65500, '\P{^Script=_	Hangul}', "");
+    Expect(0, 65501, '\p{Script=_	Hangul}', "");
+    Expect(1, 65501, '\p{^Script=_	Hangul}', "");
+    Expect(1, 65501, '\P{Script=_	Hangul}', "");
+    Expect(0, 65501, '\P{^Script=_	Hangul}', "");
+    Error('\p{Sc:  :=HANG}');
+    Error('\P{Sc:  :=HANG}');
     Expect(1, 65500, '\p{Sc=:\AHang\z:}', "");;
     Expect(0, 65501, '\p{Sc=:\AHang\z:}', "");;
     Expect(1, 65500, '\p{Sc=hang}', "");
@@ -132169,16 +133361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65501, '\P{^Sc=hang}', "");
     Expect(1, 65500, '\p{Sc=:\Ahang\z:}', "");;
     Expect(0, 65501, '\p{Sc=:\Ahang\z:}', "");;
-    Expect(1, 65500, '\p{Sc= Hang}', "");
-    Expect(0, 65500, '\p{^Sc= Hang}', "");
-    Expect(0, 65500, '\P{Sc= Hang}', "");
-    Expect(1, 65500, '\P{^Sc= Hang}', "");
-    Expect(0, 65501, '\p{Sc= Hang}', "");
-    Expect(1, 65501, '\p{^Sc= Hang}', "");
-    Expect(1, 65501, '\P{Sc= Hang}', "");
-    Expect(0, 65501, '\P{^Sc= Hang}', "");
-    Error('\p{Is_Script=	:=Hangul}');
-    Error('\P{Is_Script=	:=Hangul}');
+    Expect(1, 65500, '\p{Sc: - HANG}', "");
+    Expect(0, 65500, '\p{^Sc: - HANG}', "");
+    Expect(0, 65500, '\P{Sc: - HANG}', "");
+    Expect(1, 65500, '\P{^Sc: - HANG}', "");
+    Expect(0, 65501, '\p{Sc: - HANG}', "");
+    Expect(1, 65501, '\p{^Sc: - HANG}', "");
+    Expect(1, 65501, '\P{Sc: - HANG}', "");
+    Expect(0, 65501, '\P{^Sc: - HANG}', "");
+    Error('\p{Is_Script:_/a/Hangul}');
+    Error('\P{Is_Script:_/a/Hangul}');
     Expect(1, 65500, '\p{Is_Script=hangul}', "");
     Expect(0, 65500, '\p{^Is_Script=hangul}', "");
     Expect(0, 65500, '\P{Is_Script=hangul}', "");
@@ -132187,16 +133379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65501, '\p{^Is_Script=hangul}', "");
     Expect(1, 65501, '\P{Is_Script=hangul}', "");
     Expect(0, 65501, '\P{^Is_Script=hangul}', "");
-    Expect(1, 65500, '\p{Is_Script=	Hangul}', "");
-    Expect(0, 65500, '\p{^Is_Script=	Hangul}', "");
-    Expect(0, 65500, '\P{Is_Script=	Hangul}', "");
-    Expect(1, 65500, '\P{^Is_Script=	Hangul}', "");
-    Expect(0, 65501, '\p{Is_Script=	Hangul}', "");
-    Expect(1, 65501, '\p{^Is_Script=	Hangul}', "");
-    Expect(1, 65501, '\P{Is_Script=	Hangul}', "");
-    Expect(0, 65501, '\P{^Is_Script=	Hangul}', "");
-    Error('\p{Is_Sc=/a/ -hang}');
-    Error('\P{Is_Sc=/a/ -hang}');
+    Expect(1, 65500, '\p{Is_Script=	hangul}', "");
+    Expect(0, 65500, '\p{^Is_Script=	hangul}', "");
+    Expect(0, 65500, '\P{Is_Script=	hangul}', "");
+    Expect(1, 65500, '\P{^Is_Script=	hangul}', "");
+    Expect(0, 65501, '\p{Is_Script=	hangul}', "");
+    Expect(1, 65501, '\p{^Is_Script=	hangul}', "");
+    Expect(1, 65501, '\P{Is_Script=	hangul}', "");
+    Expect(0, 65501, '\P{^Is_Script=	hangul}', "");
+    Error('\p{Is_Sc=_	HANG/a/}');
+    Error('\P{Is_Sc=_	HANG/a/}');
     Expect(1, 65500, '\p{Is_Sc=hang}', "");
     Expect(0, 65500, '\p{^Is_Sc=hang}', "");
     Expect(0, 65500, '\P{Is_Sc=hang}', "");
@@ -132205,96 +133397,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65501, '\p{^Is_Sc=hang}', "");
     Expect(1, 65501, '\P{Is_Sc=hang}', "");
     Expect(0, 65501, '\P{^Is_Sc=hang}', "");
-    Expect(1, 65500, '\p{Is_Sc= 	HANG}', "");
-    Expect(0, 65500, '\p{^Is_Sc= 	HANG}', "");
-    Expect(0, 65500, '\P{Is_Sc= 	HANG}', "");
-    Expect(1, 65500, '\P{^Is_Sc= 	HANG}', "");
-    Expect(0, 65501, '\p{Is_Sc= 	HANG}', "");
-    Expect(1, 65501, '\p{^Is_Sc= 	HANG}', "");
-    Expect(1, 65501, '\P{Is_Sc= 	HANG}', "");
-    Expect(0, 65501, '\P{^Is_Sc= 	HANG}', "");
-    Error('\p{Script=:=	Han}');
-    Error('\P{Script=:=	Han}');
-    Expect(1, 201546, '\p{Script=:\AHan\z:}', "");;
-    Expect(0, 201547, '\p{Script=:\AHan\z:}', "");;
-    Expect(1, 201546, '\p{Script=han}', "");
-    Expect(0, 201546, '\p{^Script=han}', "");
-    Expect(0, 201546, '\P{Script=han}', "");
-    Expect(1, 201546, '\P{^Script=han}', "");
-    Expect(0, 201547, '\p{Script=han}', "");
-    Expect(1, 201547, '\p{^Script=han}', "");
-    Expect(1, 201547, '\P{Script=han}', "");
-    Expect(0, 201547, '\P{^Script=han}', "");
-    Expect(1, 201546, '\p{Script=:\Ahan\z:}', "");;
-    Expect(0, 201547, '\p{Script=:\Ahan\z:}', "");;
-    Expect(1, 201546, '\p{Script= han}', "");
-    Expect(0, 201546, '\p{^Script= han}', "");
-    Expect(0, 201546, '\P{Script= han}', "");
-    Expect(1, 201546, '\P{^Script= han}', "");
-    Expect(0, 201547, '\p{Script= han}', "");
-    Expect(1, 201547, '\p{^Script= han}', "");
-    Expect(1, 201547, '\P{Script= han}', "");
-    Expect(0, 201547, '\P{^Script= han}', "");
-    Error('\p{Sc=	Hani:=}');
-    Error('\P{Sc=	Hani:=}');
-    Expect(1, 201546, '\p{Sc=:\AHani\z:}', "");;
-    Expect(0, 201547, '\p{Sc=:\AHani\z:}', "");;
-    Expect(1, 201546, '\p{Sc=hani}', "");
-    Expect(0, 201546, '\p{^Sc=hani}', "");
-    Expect(0, 201546, '\P{Sc=hani}', "");
-    Expect(1, 201546, '\P{^Sc=hani}', "");
-    Expect(0, 201547, '\p{Sc=hani}', "");
-    Expect(1, 201547, '\p{^Sc=hani}', "");
-    Expect(1, 201547, '\P{Sc=hani}', "");
-    Expect(0, 201547, '\P{^Sc=hani}', "");
-    Expect(1, 201546, '\p{Sc=:\Ahani\z:}', "");;
-    Expect(0, 201547, '\p{Sc=:\Ahani\z:}', "");;
-    Expect(1, 201546, '\p{Sc=  Hani}', "");
-    Expect(0, 201546, '\p{^Sc=  Hani}', "");
-    Expect(0, 201546, '\P{Sc=  Hani}', "");
-    Expect(1, 201546, '\P{^Sc=  Hani}', "");
-    Expect(0, 201547, '\p{Sc=  Hani}', "");
-    Expect(1, 201547, '\p{^Sc=  Hani}', "");
-    Expect(1, 201547, '\P{Sc=  Hani}', "");
-    Expect(0, 201547, '\P{^Sc=  Hani}', "");
-    Error('\p{Is_Script=	_Han:=}');
-    Error('\P{Is_Script=	_Han:=}');
-    Expect(1, 201546, '\p{Is_Script=han}', "");
-    Expect(0, 201546, '\p{^Is_Script=han}', "");
-    Expect(0, 201546, '\P{Is_Script=han}', "");
-    Expect(1, 201546, '\P{^Is_Script=han}', "");
-    Expect(0, 201547, '\p{Is_Script=han}', "");
-    Expect(1, 201547, '\p{^Is_Script=han}', "");
-    Expect(1, 201547, '\P{Is_Script=han}', "");
-    Expect(0, 201547, '\P{^Is_Script=han}', "");
-    Expect(1, 201546, '\p{Is_Script=	_han}', "");
-    Expect(0, 201546, '\p{^Is_Script=	_han}', "");
-    Expect(0, 201546, '\P{Is_Script=	_han}', "");
-    Expect(1, 201546, '\P{^Is_Script=	_han}', "");
-    Expect(0, 201547, '\p{Is_Script=	_han}', "");
-    Expect(1, 201547, '\p{^Is_Script=	_han}', "");
-    Expect(1, 201547, '\P{Is_Script=	_han}', "");
-    Expect(0, 201547, '\P{^Is_Script=	_han}', "");
-    Error('\p{Is_Sc=/a/	Hani}');
-    Error('\P{Is_Sc=/a/	Hani}');
-    Expect(1, 201546, '\p{Is_Sc=hani}', "");
-    Expect(0, 201546, '\p{^Is_Sc=hani}', "");
-    Expect(0, 201546, '\P{Is_Sc=hani}', "");
-    Expect(1, 201546, '\P{^Is_Sc=hani}', "");
-    Expect(0, 201547, '\p{Is_Sc=hani}', "");
-    Expect(1, 201547, '\p{^Is_Sc=hani}', "");
-    Expect(1, 201547, '\P{Is_Sc=hani}', "");
-    Expect(0, 201547, '\P{^Is_Sc=hani}', "");
-    Expect(1, 201546, '\p{Is_Sc=_HANI}', "");
-    Expect(0, 201546, '\p{^Is_Sc=_HANI}', "");
-    Expect(0, 201546, '\P{Is_Sc=_HANI}', "");
-    Expect(1, 201546, '\P{^Is_Sc=_HANI}', "");
-    Expect(0, 201547, '\p{Is_Sc=_HANI}', "");
-    Expect(1, 201547, '\p{^Is_Sc=_HANI}', "");
-    Expect(1, 201547, '\P{Is_Sc=_HANI}', "");
-    Expect(0, 201547, '\P{^Is_Sc=_HANI}', "");
-    Error('\p{Script=-:=Hanunoo}');
-    Error('\P{Script=-:=Hanunoo}');
+    Expect(1, 65500, '\p{Is_Sc=_ Hang}', "");
+    Expect(0, 65500, '\p{^Is_Sc=_ Hang}', "");
+    Expect(0, 65500, '\P{Is_Sc=_ Hang}', "");
+    Expect(1, 65500, '\P{^Is_Sc=_ Hang}', "");
+    Expect(0, 65501, '\p{Is_Sc=_ Hang}', "");
+    Expect(1, 65501, '\p{^Is_Sc=_ Hang}', "");
+    Expect(1, 65501, '\P{Is_Sc=_ Hang}', "");
+    Expect(0, 65501, '\P{^Is_Sc=_ Hang}', "");
+    Error('\p{Script=/a/_Han}');
+    Error('\P{Script=/a/_Han}');
+    Expect(1, 205743, '\p{Script=:\AHan\z:}', "");;
+    Expect(0, 205744, '\p{Script=:\AHan\z:}', "");;
+    Expect(1, 205743, '\p{Script=han}', "");
+    Expect(0, 205743, '\p{^Script=han}', "");
+    Expect(0, 205743, '\P{Script=han}', "");
+    Expect(1, 205743, '\P{^Script=han}', "");
+    Expect(0, 205744, '\p{Script=han}', "");
+    Expect(1, 205744, '\p{^Script=han}', "");
+    Expect(1, 205744, '\P{Script=han}', "");
+    Expect(0, 205744, '\P{^Script=han}', "");
+    Expect(1, 205743, '\p{Script=:\Ahan\z:}', "");;
+    Expect(0, 205744, '\p{Script=:\Ahan\z:}', "");;
+    Expect(1, 205743, '\p{Script= han}', "");
+    Expect(0, 205743, '\p{^Script= han}', "");
+    Expect(0, 205743, '\P{Script= han}', "");
+    Expect(1, 205743, '\P{^Script= han}', "");
+    Expect(0, 205744, '\p{Script= han}', "");
+    Expect(1, 205744, '\p{^Script= han}', "");
+    Expect(1, 205744, '\P{Script= han}', "");
+    Expect(0, 205744, '\P{^Script= han}', "");
+    Error('\p{Sc=:=-	hani}');
+    Error('\P{Sc=:=-	hani}');
+    Expect(1, 205743, '\p{Sc=:\AHani\z:}', "");;
+    Expect(0, 205744, '\p{Sc=:\AHani\z:}', "");;
+    Expect(1, 205743, '\p{Sc=hani}', "");
+    Expect(0, 205743, '\p{^Sc=hani}', "");
+    Expect(0, 205743, '\P{Sc=hani}', "");
+    Expect(1, 205743, '\P{^Sc=hani}', "");
+    Expect(0, 205744, '\p{Sc=hani}', "");
+    Expect(1, 205744, '\p{^Sc=hani}', "");
+    Expect(1, 205744, '\P{Sc=hani}', "");
+    Expect(0, 205744, '\P{^Sc=hani}', "");
+    Expect(1, 205743, '\p{Sc=:\Ahani\z:}', "");;
+    Expect(0, 205744, '\p{Sc=:\Ahani\z:}', "");;
+    Expect(1, 205743, '\p{Sc=--HANI}', "");
+    Expect(0, 205743, '\p{^Sc=--HANI}', "");
+    Expect(0, 205743, '\P{Sc=--HANI}', "");
+    Expect(1, 205743, '\P{^Sc=--HANI}', "");
+    Expect(0, 205744, '\p{Sc=--HANI}', "");
+    Expect(1, 205744, '\p{^Sc=--HANI}', "");
+    Expect(1, 205744, '\P{Sc=--HANI}', "");
+    Expect(0, 205744, '\P{^Sc=--HANI}', "");
+    Error('\p{Is_Script=:=	-Han}');
+    Error('\P{Is_Script=:=	-Han}');
+    Expect(1, 205743, '\p{Is_Script=han}', "");
+    Expect(0, 205743, '\p{^Is_Script=han}', "");
+    Expect(0, 205743, '\P{Is_Script=han}', "");
+    Expect(1, 205743, '\P{^Is_Script=han}', "");
+    Expect(0, 205744, '\p{Is_Script=han}', "");
+    Expect(1, 205744, '\p{^Is_Script=han}', "");
+    Expect(1, 205744, '\P{Is_Script=han}', "");
+    Expect(0, 205744, '\P{^Is_Script=han}', "");
+    Expect(1, 205743, '\p{Is_Script= _HAN}', "");
+    Expect(0, 205743, '\p{^Is_Script= _HAN}', "");
+    Expect(0, 205743, '\P{Is_Script= _HAN}', "");
+    Expect(1, 205743, '\P{^Is_Script= _HAN}', "");
+    Expect(0, 205744, '\p{Is_Script= _HAN}', "");
+    Expect(1, 205744, '\p{^Is_Script= _HAN}', "");
+    Expect(1, 205744, '\P{Is_Script= _HAN}', "");
+    Expect(0, 205744, '\P{^Is_Script= _HAN}', "");
+    Error('\p{Is_Sc=/a/Hani}');
+    Error('\P{Is_Sc=/a/Hani}');
+    Expect(1, 205743, '\p{Is_Sc=hani}', "");
+    Expect(0, 205743, '\p{^Is_Sc=hani}', "");
+    Expect(0, 205743, '\P{Is_Sc=hani}', "");
+    Expect(1, 205743, '\P{^Is_Sc=hani}', "");
+    Expect(0, 205744, '\p{Is_Sc=hani}', "");
+    Expect(1, 205744, '\p{^Is_Sc=hani}', "");
+    Expect(1, 205744, '\P{Is_Sc=hani}', "");
+    Expect(0, 205744, '\P{^Is_Sc=hani}', "");
+    Expect(1, 205743, '\p{Is_Sc=_	Hani}', "");
+    Expect(0, 205743, '\p{^Is_Sc=_	Hani}', "");
+    Expect(0, 205743, '\P{Is_Sc=_	Hani}', "");
+    Expect(1, 205743, '\P{^Is_Sc=_	Hani}', "");
+    Expect(0, 205744, '\p{Is_Sc=_	Hani}', "");
+    Expect(1, 205744, '\p{^Is_Sc=_	Hani}', "");
+    Expect(1, 205744, '\P{Is_Sc=_	Hani}', "");
+    Expect(0, 205744, '\P{^Is_Sc=_	Hani}', "");
+    Error('\p{Script=  Hanunoo:=}');
+    Error('\P{Script=  Hanunoo:=}');
     Expect(1, 5940, '\p{Script=:\AHanunoo\z:}', "");;
     Expect(0, 5941, '\p{Script=:\AHanunoo\z:}', "");;
     Expect(1, 5940, '\p{Script=hanunoo}', "");
@@ -132307,38 +133499,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5941, '\P{^Script=hanunoo}', "");
     Expect(1, 5940, '\p{Script=:\Ahanunoo\z:}', "");;
     Expect(0, 5941, '\p{Script=:\Ahanunoo\z:}', "");;
-    Expect(1, 5940, '\p{Script=_HANUNOO}', "");
-    Expect(0, 5940, '\p{^Script=_HANUNOO}', "");
-    Expect(0, 5940, '\P{Script=_HANUNOO}', "");
-    Expect(1, 5940, '\P{^Script=_HANUNOO}', "");
-    Expect(0, 5941, '\p{Script=_HANUNOO}', "");
-    Expect(1, 5941, '\p{^Script=_HANUNOO}', "");
-    Expect(1, 5941, '\P{Script=_HANUNOO}', "");
-    Expect(0, 5941, '\P{^Script=_HANUNOO}', "");
-    Error('\p{Sc=/a/	-Hano}');
-    Error('\P{Sc=/a/	-Hano}');
+    Expect(1, 5940, '\p{Script=_-Hanunoo}', "");
+    Expect(0, 5940, '\p{^Script=_-Hanunoo}', "");
+    Expect(0, 5940, '\P{Script=_-Hanunoo}', "");
+    Expect(1, 5940, '\P{^Script=_-Hanunoo}', "");
+    Expect(0, 5941, '\p{Script=_-Hanunoo}', "");
+    Expect(1, 5941, '\p{^Script=_-Hanunoo}', "");
+    Expect(1, 5941, '\P{Script=_-Hanunoo}', "");
+    Expect(0, 5941, '\P{^Script=_-Hanunoo}', "");
+    Error('\p{Sc= :=HANO}');
+    Error('\P{Sc= :=HANO}');
     Expect(1, 5940, '\p{Sc=:\AHano\z:}', "");;
     Expect(0, 5941, '\p{Sc=:\AHano\z:}', "");;
-    Expect(1, 5940, '\p{Sc: hano}', "");
-    Expect(0, 5940, '\p{^Sc: hano}', "");
-    Expect(0, 5940, '\P{Sc: hano}', "");
-    Expect(1, 5940, '\P{^Sc: hano}', "");
-    Expect(0, 5941, '\p{Sc: hano}', "");
-    Expect(1, 5941, '\p{^Sc: hano}', "");
-    Expect(1, 5941, '\P{Sc: hano}', "");
-    Expect(0, 5941, '\P{^Sc: hano}', "");
+    Expect(1, 5940, '\p{Sc=hano}', "");
+    Expect(0, 5940, '\p{^Sc=hano}', "");
+    Expect(0, 5940, '\P{Sc=hano}', "");
+    Expect(1, 5940, '\P{^Sc=hano}', "");
+    Expect(0, 5941, '\p{Sc=hano}', "");
+    Expect(1, 5941, '\p{^Sc=hano}', "");
+    Expect(1, 5941, '\P{Sc=hano}', "");
+    Expect(0, 5941, '\P{^Sc=hano}', "");
     Expect(1, 5940, '\p{Sc=:\Ahano\z:}', "");;
     Expect(0, 5941, '\p{Sc=:\Ahano\z:}', "");;
-    Expect(1, 5940, '\p{Sc=--Hano}', "");
-    Expect(0, 5940, '\p{^Sc=--Hano}', "");
-    Expect(0, 5940, '\P{Sc=--Hano}', "");
-    Expect(1, 5940, '\P{^Sc=--Hano}', "");
-    Expect(0, 5941, '\p{Sc=--Hano}', "");
-    Expect(1, 5941, '\p{^Sc=--Hano}', "");
-    Expect(1, 5941, '\P{Sc=--Hano}', "");
-    Expect(0, 5941, '\P{^Sc=--Hano}', "");
-    Error('\p{Is_Script=:=--hanunoo}');
-    Error('\P{Is_Script=:=--hanunoo}');
+    Expect(1, 5940, '\p{Sc=	_Hano}', "");
+    Expect(0, 5940, '\p{^Sc=	_Hano}', "");
+    Expect(0, 5940, '\P{Sc=	_Hano}', "");
+    Expect(1, 5940, '\P{^Sc=	_Hano}', "");
+    Expect(0, 5941, '\p{Sc=	_Hano}', "");
+    Expect(1, 5941, '\p{^Sc=	_Hano}', "");
+    Expect(1, 5941, '\P{Sc=	_Hano}', "");
+    Expect(0, 5941, '\P{^Sc=	_Hano}', "");
+    Error('\p{Is_Script=- Hanunoo:=}');
+    Error('\P{Is_Script=- Hanunoo:=}');
     Expect(1, 5940, '\p{Is_Script=hanunoo}', "");
     Expect(0, 5940, '\p{^Is_Script=hanunoo}', "");
     Expect(0, 5940, '\P{Is_Script=hanunoo}', "");
@@ -132347,16 +133539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5941, '\p{^Is_Script=hanunoo}', "");
     Expect(1, 5941, '\P{Is_Script=hanunoo}', "");
     Expect(0, 5941, '\P{^Is_Script=hanunoo}', "");
-    Expect(1, 5940, '\p{Is_Script= _hanunoo}', "");
-    Expect(0, 5940, '\p{^Is_Script= _hanunoo}', "");
-    Expect(0, 5940, '\P{Is_Script= _hanunoo}', "");
-    Expect(1, 5940, '\P{^Is_Script= _hanunoo}', "");
-    Expect(0, 5941, '\p{Is_Script= _hanunoo}', "");
-    Expect(1, 5941, '\p{^Is_Script= _hanunoo}', "");
-    Expect(1, 5941, '\P{Is_Script= _hanunoo}', "");
-    Expect(0, 5941, '\P{^Is_Script= _hanunoo}', "");
-    Error('\p{Is_Sc=_Hano/a/}');
-    Error('\P{Is_Sc=_Hano/a/}');
+    Expect(1, 5940, '\p{Is_Script: - hanunoo}', "");
+    Expect(0, 5940, '\p{^Is_Script: - hanunoo}', "");
+    Expect(0, 5940, '\P{Is_Script: - hanunoo}', "");
+    Expect(1, 5940, '\P{^Is_Script: - hanunoo}', "");
+    Expect(0, 5941, '\p{Is_Script: - hanunoo}', "");
+    Expect(1, 5941, '\p{^Is_Script: - hanunoo}', "");
+    Expect(1, 5941, '\P{Is_Script: - hanunoo}', "");
+    Expect(0, 5941, '\P{^Is_Script: - hanunoo}', "");
+    Error('\p{Is_Sc=_-hano/a/}');
+    Error('\P{Is_Sc=_-hano/a/}');
     Expect(1, 5940, '\p{Is_Sc=hano}', "");
     Expect(0, 5940, '\p{^Is_Sc=hano}', "");
     Expect(0, 5940, '\P{Is_Sc=hano}', "");
@@ -132365,38 +133557,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5941, '\p{^Is_Sc=hano}', "");
     Expect(1, 5941, '\P{Is_Sc=hano}', "");
     Expect(0, 5941, '\P{^Is_Sc=hano}', "");
-    Expect(1, 5940, '\p{Is_Sc=-	HANO}', "");
-    Expect(0, 5940, '\p{^Is_Sc=-	HANO}', "");
-    Expect(0, 5940, '\P{Is_Sc=-	HANO}', "");
-    Expect(1, 5940, '\P{^Is_Sc=-	HANO}', "");
-    Expect(0, 5941, '\p{Is_Sc=-	HANO}', "");
-    Expect(1, 5941, '\p{^Is_Sc=-	HANO}', "");
-    Expect(1, 5941, '\P{Is_Sc=-	HANO}', "");
-    Expect(0, 5941, '\P{^Is_Sc=-	HANO}', "");
-    Error('\p{Script= Hatran:=}');
-    Error('\P{Script= Hatran:=}');
+    Expect(1, 5940, '\p{Is_Sc=	-Hano}', "");
+    Expect(0, 5940, '\p{^Is_Sc=	-Hano}', "");
+    Expect(0, 5940, '\P{Is_Sc=	-Hano}', "");
+    Expect(1, 5940, '\P{^Is_Sc=	-Hano}', "");
+    Expect(0, 5941, '\p{Is_Sc=	-Hano}', "");
+    Expect(1, 5941, '\p{^Is_Sc=	-Hano}', "");
+    Expect(1, 5941, '\P{Is_Sc=	-Hano}', "");
+    Expect(0, 5941, '\P{^Is_Sc=	-Hano}', "");
+    Error('\p{Script=_:=Hatran}');
+    Error('\P{Script=_:=Hatran}');
     Expect(1, 67839, '\p{Script=:\AHatran\z:}', "");;
     Expect(0, 67840, '\p{Script=:\AHatran\z:}', "");;
-    Expect(1, 67839, '\p{Script: hatran}', "");
-    Expect(0, 67839, '\p{^Script: hatran}', "");
-    Expect(0, 67839, '\P{Script: hatran}', "");
-    Expect(1, 67839, '\P{^Script: hatran}', "");
-    Expect(0, 67840, '\p{Script: hatran}', "");
-    Expect(1, 67840, '\p{^Script: hatran}', "");
-    Expect(1, 67840, '\P{Script: hatran}', "");
-    Expect(0, 67840, '\P{^Script: hatran}', "");
+    Expect(1, 67839, '\p{Script=hatran}', "");
+    Expect(0, 67839, '\p{^Script=hatran}', "");
+    Expect(0, 67839, '\P{Script=hatran}', "");
+    Expect(1, 67839, '\P{^Script=hatran}', "");
+    Expect(0, 67840, '\p{Script=hatran}', "");
+    Expect(1, 67840, '\p{^Script=hatran}', "");
+    Expect(1, 67840, '\P{Script=hatran}', "");
+    Expect(0, 67840, '\P{^Script=hatran}', "");
     Expect(1, 67839, '\p{Script=:\Ahatran\z:}', "");;
     Expect(0, 67840, '\p{Script=:\Ahatran\z:}', "");;
-    Expect(1, 67839, '\p{Script= -Hatran}', "");
-    Expect(0, 67839, '\p{^Script= -Hatran}', "");
-    Expect(0, 67839, '\P{Script= -Hatran}', "");
-    Expect(1, 67839, '\P{^Script= -Hatran}', "");
-    Expect(0, 67840, '\p{Script= -Hatran}', "");
-    Expect(1, 67840, '\p{^Script= -Hatran}', "");
-    Expect(1, 67840, '\P{Script= -Hatran}', "");
-    Expect(0, 67840, '\P{^Script= -Hatran}', "");
-    Error('\p{Sc=-:=hatr}');
-    Error('\P{Sc=-:=hatr}');
+    Expect(1, 67839, '\p{Script=--Hatran}', "");
+    Expect(0, 67839, '\p{^Script=--Hatran}', "");
+    Expect(0, 67839, '\P{Script=--Hatran}', "");
+    Expect(1, 67839, '\P{^Script=--Hatran}', "");
+    Expect(0, 67840, '\p{Script=--Hatran}', "");
+    Expect(1, 67840, '\p{^Script=--Hatran}', "");
+    Expect(1, 67840, '\P{Script=--Hatran}', "");
+    Expect(0, 67840, '\P{^Script=--Hatran}', "");
+    Error('\p{Sc=-/a/hatr}');
+    Error('\P{Sc=-/a/hatr}');
     Expect(1, 67839, '\p{Sc=:\AHatr\z:}', "");;
     Expect(0, 67840, '\p{Sc=:\AHatr\z:}', "");;
     Expect(1, 67839, '\p{Sc=hatr}', "");
@@ -132409,16 +133601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67840, '\P{^Sc=hatr}', "");
     Expect(1, 67839, '\p{Sc=:\Ahatr\z:}', "");;
     Expect(0, 67840, '\p{Sc=:\Ahatr\z:}', "");;
-    Expect(1, 67839, '\p{Sc= Hatr}', "");
-    Expect(0, 67839, '\p{^Sc= Hatr}', "");
-    Expect(0, 67839, '\P{Sc= Hatr}', "");
-    Expect(1, 67839, '\P{^Sc= Hatr}', "");
-    Expect(0, 67840, '\p{Sc= Hatr}', "");
-    Expect(1, 67840, '\p{^Sc= Hatr}', "");
-    Expect(1, 67840, '\P{Sc= Hatr}', "");
-    Expect(0, 67840, '\P{^Sc= Hatr}', "");
-    Error('\p{Is_Script=- Hatran/a/}');
-    Error('\P{Is_Script=- Hatran/a/}');
+    Expect(1, 67839, '\p{Sc=		HATR}', "");
+    Expect(0, 67839, '\p{^Sc=		HATR}', "");
+    Expect(0, 67839, '\P{Sc=		HATR}', "");
+    Expect(1, 67839, '\P{^Sc=		HATR}', "");
+    Expect(0, 67840, '\p{Sc=		HATR}', "");
+    Expect(1, 67840, '\p{^Sc=		HATR}', "");
+    Expect(1, 67840, '\P{Sc=		HATR}', "");
+    Expect(0, 67840, '\P{^Sc=		HATR}', "");
+    Error('\p{Is_Script=:= -Hatran}');
+    Error('\P{Is_Script=:= -Hatran}');
     Expect(1, 67839, '\p{Is_Script=hatran}', "");
     Expect(0, 67839, '\p{^Is_Script=hatran}', "");
     Expect(0, 67839, '\P{Is_Script=hatran}', "");
@@ -132427,34 +133619,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67840, '\p{^Is_Script=hatran}', "");
     Expect(1, 67840, '\P{Is_Script=hatran}', "");
     Expect(0, 67840, '\P{^Is_Script=hatran}', "");
-    Expect(1, 67839, '\p{Is_Script=_hatran}', "");
-    Expect(0, 67839, '\p{^Is_Script=_hatran}', "");
-    Expect(0, 67839, '\P{Is_Script=_hatran}', "");
-    Expect(1, 67839, '\P{^Is_Script=_hatran}', "");
-    Expect(0, 67840, '\p{Is_Script=_hatran}', "");
-    Expect(1, 67840, '\p{^Is_Script=_hatran}', "");
-    Expect(1, 67840, '\P{Is_Script=_hatran}', "");
-    Expect(0, 67840, '\P{^Is_Script=_hatran}', "");
-    Error('\p{Is_Sc=:= Hatr}');
-    Error('\P{Is_Sc=:= Hatr}');
-    Expect(1, 67839, '\p{Is_Sc=hatr}', "");
-    Expect(0, 67839, '\p{^Is_Sc=hatr}', "");
-    Expect(0, 67839, '\P{Is_Sc=hatr}', "");
-    Expect(1, 67839, '\P{^Is_Sc=hatr}', "");
-    Expect(0, 67840, '\p{Is_Sc=hatr}', "");
-    Expect(1, 67840, '\p{^Is_Sc=hatr}', "");
-    Expect(1, 67840, '\P{Is_Sc=hatr}', "");
-    Expect(0, 67840, '\P{^Is_Sc=hatr}', "");
-    Expect(1, 67839, '\p{Is_Sc=-Hatr}', "");
-    Expect(0, 67839, '\p{^Is_Sc=-Hatr}', "");
-    Expect(0, 67839, '\P{Is_Sc=-Hatr}', "");
-    Expect(1, 67839, '\P{^Is_Sc=-Hatr}', "");
-    Expect(0, 67840, '\p{Is_Sc=-Hatr}', "");
-    Expect(1, 67840, '\p{^Is_Sc=-Hatr}', "");
-    Expect(1, 67840, '\P{Is_Sc=-Hatr}', "");
-    Expect(0, 67840, '\P{^Is_Sc=-Hatr}', "");
-    Error('\p{Script=:= Hebrew}');
-    Error('\P{Script=:= Hebrew}');
+    Expect(1, 67839, '\p{Is_Script=- Hatran}', "");
+    Expect(0, 67839, '\p{^Is_Script=- Hatran}', "");
+    Expect(0, 67839, '\P{Is_Script=- Hatran}', "");
+    Expect(1, 67839, '\P{^Is_Script=- Hatran}', "");
+    Expect(0, 67840, '\p{Is_Script=- Hatran}', "");
+    Expect(1, 67840, '\p{^Is_Script=- Hatran}', "");
+    Expect(1, 67840, '\P{Is_Script=- Hatran}', "");
+    Expect(0, 67840, '\P{^Is_Script=- Hatran}', "");
+    Error('\p{Is_Sc=	HATR:=}');
+    Error('\P{Is_Sc=	HATR:=}');
+    Expect(1, 67839, '\p{Is_Sc: hatr}', "");
+    Expect(0, 67839, '\p{^Is_Sc: hatr}', "");
+    Expect(0, 67839, '\P{Is_Sc: hatr}', "");
+    Expect(1, 67839, '\P{^Is_Sc: hatr}', "");
+    Expect(0, 67840, '\p{Is_Sc: hatr}', "");
+    Expect(1, 67840, '\p{^Is_Sc: hatr}', "");
+    Expect(1, 67840, '\P{Is_Sc: hatr}', "");
+    Expect(0, 67840, '\P{^Is_Sc: hatr}', "");
+    Expect(1, 67839, '\p{Is_Sc:	 _HATR}', "");
+    Expect(0, 67839, '\p{^Is_Sc:	 _HATR}', "");
+    Expect(0, 67839, '\P{Is_Sc:	 _HATR}', "");
+    Expect(1, 67839, '\P{^Is_Sc:	 _HATR}', "");
+    Expect(0, 67840, '\p{Is_Sc:	 _HATR}', "");
+    Expect(1, 67840, '\p{^Is_Sc:	 _HATR}', "");
+    Expect(1, 67840, '\P{Is_Sc:	 _HATR}', "");
+    Expect(0, 67840, '\P{^Is_Sc:	 _HATR}', "");
+    Error('\p{Script=/a/		Hebrew}');
+    Error('\P{Script=/a/		Hebrew}');
     Expect(1, 64335, '\p{Script=:\AHebrew\z:}', "");;
     Expect(0, 64336, '\p{Script=:\AHebrew\z:}', "");;
     Expect(1, 64335, '\p{Script=hebrew}', "");
@@ -132467,38 +133659,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64336, '\P{^Script=hebrew}', "");
     Expect(1, 64335, '\p{Script=:\Ahebrew\z:}', "");;
     Expect(0, 64336, '\p{Script=:\Ahebrew\z:}', "");;
-    Expect(1, 64335, '\p{Script:	-HEBREW}', "");
-    Expect(0, 64335, '\p{^Script:	-HEBREW}', "");
-    Expect(0, 64335, '\P{Script:	-HEBREW}', "");
-    Expect(1, 64335, '\P{^Script:	-HEBREW}', "");
-    Expect(0, 64336, '\p{Script:	-HEBREW}', "");
-    Expect(1, 64336, '\p{^Script:	-HEBREW}', "");
-    Expect(1, 64336, '\P{Script:	-HEBREW}', "");
-    Expect(0, 64336, '\P{^Script:	-HEBREW}', "");
-    Error('\p{Sc=-	HEBR:=}');
-    Error('\P{Sc=-	HEBR:=}');
+    Expect(1, 64335, '\p{Script= Hebrew}', "");
+    Expect(0, 64335, '\p{^Script= Hebrew}', "");
+    Expect(0, 64335, '\P{Script= Hebrew}', "");
+    Expect(1, 64335, '\P{^Script= Hebrew}', "");
+    Expect(0, 64336, '\p{Script= Hebrew}', "");
+    Expect(1, 64336, '\p{^Script= Hebrew}', "");
+    Expect(1, 64336, '\P{Script= Hebrew}', "");
+    Expect(0, 64336, '\P{^Script= Hebrew}', "");
+    Error('\p{Sc:		 HEBR/a/}');
+    Error('\P{Sc:		 HEBR/a/}');
     Expect(1, 64335, '\p{Sc=:\AHebr\z:}', "");;
     Expect(0, 64336, '\p{Sc=:\AHebr\z:}', "");;
-    Expect(1, 64335, '\p{Sc=hebr}', "");
-    Expect(0, 64335, '\p{^Sc=hebr}', "");
-    Expect(0, 64335, '\P{Sc=hebr}', "");
-    Expect(1, 64335, '\P{^Sc=hebr}', "");
-    Expect(0, 64336, '\p{Sc=hebr}', "");
-    Expect(1, 64336, '\p{^Sc=hebr}', "");
-    Expect(1, 64336, '\P{Sc=hebr}', "");
-    Expect(0, 64336, '\P{^Sc=hebr}', "");
+    Expect(1, 64335, '\p{Sc:	hebr}', "");
+    Expect(0, 64335, '\p{^Sc:	hebr}', "");
+    Expect(0, 64335, '\P{Sc:	hebr}', "");
+    Expect(1, 64335, '\P{^Sc:	hebr}', "");
+    Expect(0, 64336, '\p{Sc:	hebr}', "");
+    Expect(1, 64336, '\p{^Sc:	hebr}', "");
+    Expect(1, 64336, '\P{Sc:	hebr}', "");
+    Expect(0, 64336, '\P{^Sc:	hebr}', "");
     Expect(1, 64335, '\p{Sc=:\Ahebr\z:}', "");;
     Expect(0, 64336, '\p{Sc=:\Ahebr\z:}', "");;
-    Expect(1, 64335, '\p{Sc=Hebr}', "");
-    Expect(0, 64335, '\p{^Sc=Hebr}', "");
-    Expect(0, 64335, '\P{Sc=Hebr}', "");
-    Expect(1, 64335, '\P{^Sc=Hebr}', "");
-    Expect(0, 64336, '\p{Sc=Hebr}', "");
-    Expect(1, 64336, '\p{^Sc=Hebr}', "");
-    Expect(1, 64336, '\P{Sc=Hebr}', "");
-    Expect(0, 64336, '\P{^Sc=Hebr}', "");
-    Error('\p{Is_Script=-/a/hebrew}');
-    Error('\P{Is_Script=-/a/hebrew}');
+    Expect(1, 64335, '\p{Sc= 	hebr}', "");
+    Expect(0, 64335, '\p{^Sc= 	hebr}', "");
+    Expect(0, 64335, '\P{Sc= 	hebr}', "");
+    Expect(1, 64335, '\P{^Sc= 	hebr}', "");
+    Expect(0, 64336, '\p{Sc= 	hebr}', "");
+    Expect(1, 64336, '\p{^Sc= 	hebr}', "");
+    Expect(1, 64336, '\P{Sc= 	hebr}', "");
+    Expect(0, 64336, '\P{^Sc= 	hebr}', "");
+    Error('\p{Is_Script= :=HEBREW}');
+    Error('\P{Is_Script= :=HEBREW}');
     Expect(1, 64335, '\p{Is_Script=hebrew}', "");
     Expect(0, 64335, '\p{^Is_Script=hebrew}', "");
     Expect(0, 64335, '\P{Is_Script=hebrew}', "");
@@ -132507,16 +133699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64336, '\p{^Is_Script=hebrew}', "");
     Expect(1, 64336, '\P{Is_Script=hebrew}', "");
     Expect(0, 64336, '\P{^Is_Script=hebrew}', "");
-    Expect(1, 64335, '\p{Is_Script= Hebrew}', "");
-    Expect(0, 64335, '\p{^Is_Script= Hebrew}', "");
-    Expect(0, 64335, '\P{Is_Script= Hebrew}', "");
-    Expect(1, 64335, '\P{^Is_Script= Hebrew}', "");
-    Expect(0, 64336, '\p{Is_Script= Hebrew}', "");
-    Expect(1, 64336, '\p{^Is_Script= Hebrew}', "");
-    Expect(1, 64336, '\P{Is_Script= Hebrew}', "");
-    Expect(0, 64336, '\P{^Is_Script= Hebrew}', "");
-    Error('\p{Is_Sc:  /a/hebr}');
-    Error('\P{Is_Sc:  /a/hebr}');
+    Expect(1, 64335, '\p{Is_Script=__Hebrew}', "");
+    Expect(0, 64335, '\p{^Is_Script=__Hebrew}', "");
+    Expect(0, 64335, '\P{Is_Script=__Hebrew}', "");
+    Expect(1, 64335, '\P{^Is_Script=__Hebrew}', "");
+    Expect(0, 64336, '\p{Is_Script=__Hebrew}', "");
+    Expect(1, 64336, '\p{^Is_Script=__Hebrew}', "");
+    Expect(1, 64336, '\P{Is_Script=__Hebrew}', "");
+    Expect(0, 64336, '\P{^Is_Script=__Hebrew}', "");
+    Error('\p{Is_Sc=		hebr:=}');
+    Error('\P{Is_Sc=		hebr:=}');
     Expect(1, 64335, '\p{Is_Sc=hebr}', "");
     Expect(0, 64335, '\p{^Is_Sc=hebr}', "");
     Expect(0, 64335, '\P{Is_Sc=hebr}', "");
@@ -132525,38 +133717,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64336, '\p{^Is_Sc=hebr}', "");
     Expect(1, 64336, '\P{Is_Sc=hebr}', "");
     Expect(0, 64336, '\P{^Is_Sc=hebr}', "");
-    Expect(1, 64335, '\p{Is_Sc=-	HEBR}', "");
-    Expect(0, 64335, '\p{^Is_Sc=-	HEBR}', "");
-    Expect(0, 64335, '\P{Is_Sc=-	HEBR}', "");
-    Expect(1, 64335, '\P{^Is_Sc=-	HEBR}', "");
-    Expect(0, 64336, '\p{Is_Sc=-	HEBR}', "");
-    Expect(1, 64336, '\p{^Is_Sc=-	HEBR}', "");
-    Expect(1, 64336, '\P{Is_Sc=-	HEBR}', "");
-    Expect(0, 64336, '\P{^Is_Sc=-	HEBR}', "");
-    Error('\p{Script=	Hiragana/a/}');
-    Error('\P{Script=	Hiragana/a/}');
+    Expect(1, 64335, '\p{Is_Sc:	-_Hebr}', "");
+    Expect(0, 64335, '\p{^Is_Sc:	-_Hebr}', "");
+    Expect(0, 64335, '\P{Is_Sc:	-_Hebr}', "");
+    Expect(1, 64335, '\P{^Is_Sc:	-_Hebr}', "");
+    Expect(0, 64336, '\p{Is_Sc:	-_Hebr}', "");
+    Expect(1, 64336, '\p{^Is_Sc:	-_Hebr}', "");
+    Expect(1, 64336, '\P{Is_Sc:	-_Hebr}', "");
+    Expect(0, 64336, '\P{^Is_Sc:	-_Hebr}', "");
+    Error('\p{Script=-/a/Hiragana}');
+    Error('\P{Script=-/a/Hiragana}');
     Expect(1, 127488, '\p{Script=:\AHiragana\z:}', "");;
     Expect(0, 127489, '\p{Script=:\AHiragana\z:}', "");;
-    Expect(1, 127488, '\p{Script=hiragana}', "");
-    Expect(0, 127488, '\p{^Script=hiragana}', "");
-    Expect(0, 127488, '\P{Script=hiragana}', "");
-    Expect(1, 127488, '\P{^Script=hiragana}', "");
-    Expect(0, 127489, '\p{Script=hiragana}', "");
-    Expect(1, 127489, '\p{^Script=hiragana}', "");
-    Expect(1, 127489, '\P{Script=hiragana}', "");
-    Expect(0, 127489, '\P{^Script=hiragana}', "");
+    Expect(1, 127488, '\p{Script:   hiragana}', "");
+    Expect(0, 127488, '\p{^Script:   hiragana}', "");
+    Expect(0, 127488, '\P{Script:   hiragana}', "");
+    Expect(1, 127488, '\P{^Script:   hiragana}', "");
+    Expect(0, 127489, '\p{Script:   hiragana}', "");
+    Expect(1, 127489, '\p{^Script:   hiragana}', "");
+    Expect(1, 127489, '\P{Script:   hiragana}', "");
+    Expect(0, 127489, '\P{^Script:   hiragana}', "");
     Expect(1, 127488, '\p{Script=:\Ahiragana\z:}', "");;
     Expect(0, 127489, '\p{Script=:\Ahiragana\z:}', "");;
-    Expect(1, 127488, '\p{Script=-_Hiragana}', "");
-    Expect(0, 127488, '\p{^Script=-_Hiragana}', "");
-    Expect(0, 127488, '\P{Script=-_Hiragana}', "");
-    Expect(1, 127488, '\P{^Script=-_Hiragana}', "");
-    Expect(0, 127489, '\p{Script=-_Hiragana}', "");
-    Expect(1, 127489, '\p{^Script=-_Hiragana}', "");
-    Expect(1, 127489, '\P{Script=-_Hiragana}', "");
-    Expect(0, 127489, '\P{^Script=-_Hiragana}', "");
-    Error('\p{Sc=:=	-HIRA}');
-    Error('\P{Sc=:=	-HIRA}');
+    Expect(1, 127488, '\p{Script:   -Hiragana}', "");
+    Expect(0, 127488, '\p{^Script:   -Hiragana}', "");
+    Expect(0, 127488, '\P{Script:   -Hiragana}', "");
+    Expect(1, 127488, '\P{^Script:   -Hiragana}', "");
+    Expect(0, 127489, '\p{Script:   -Hiragana}', "");
+    Expect(1, 127489, '\p{^Script:   -Hiragana}', "");
+    Expect(1, 127489, '\P{Script:   -Hiragana}', "");
+    Expect(0, 127489, '\P{^Script:   -Hiragana}', "");
+    Error('\p{Sc=- HIRA/a/}');
+    Error('\P{Sc=- HIRA/a/}');
     Expect(1, 127488, '\p{Sc=:\AHira\z:}', "");;
     Expect(0, 127489, '\p{Sc=:\AHira\z:}', "");;
     Expect(1, 127488, '\p{Sc=hira}', "");
@@ -132569,16 +133761,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127489, '\P{^Sc=hira}', "");
     Expect(1, 127488, '\p{Sc=:\Ahira\z:}', "");;
     Expect(0, 127489, '\p{Sc=:\Ahira\z:}', "");;
-    Expect(1, 127488, '\p{Sc=_hira}', "");
-    Expect(0, 127488, '\p{^Sc=_hira}', "");
-    Expect(0, 127488, '\P{Sc=_hira}', "");
-    Expect(1, 127488, '\P{^Sc=_hira}', "");
-    Expect(0, 127489, '\p{Sc=_hira}', "");
-    Expect(1, 127489, '\p{^Sc=_hira}', "");
-    Expect(1, 127489, '\P{Sc=_hira}', "");
-    Expect(0, 127489, '\P{^Sc=_hira}', "");
-    Error('\p{Is_Script=--hiragana/a/}');
-    Error('\P{Is_Script=--hiragana/a/}');
+    Error('\p{Is_Script=/a/		HIRAGANA}');
+    Error('\P{Is_Script=/a/		HIRAGANA}');
     Expect(1, 127488, '\p{Is_Script=hiragana}', "");
     Expect(0, 127488, '\p{^Is_Script=hiragana}', "");
     Expect(0, 127488, '\P{Is_Script=hiragana}', "");
@@ -132587,34 +133771,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127489, '\p{^Is_Script=hiragana}', "");
     Expect(1, 127489, '\P{Is_Script=hiragana}', "");
     Expect(0, 127489, '\P{^Is_Script=hiragana}', "");
-    Expect(1, 127488, '\p{Is_Script=  Hiragana}', "");
-    Expect(0, 127488, '\p{^Is_Script=  Hiragana}', "");
-    Expect(0, 127488, '\P{Is_Script=  Hiragana}', "");
-    Expect(1, 127488, '\P{^Is_Script=  Hiragana}', "");
-    Expect(0, 127489, '\p{Is_Script=  Hiragana}', "");
-    Expect(1, 127489, '\p{^Is_Script=  Hiragana}', "");
-    Expect(1, 127489, '\P{Is_Script=  Hiragana}', "");
-    Expect(0, 127489, '\P{^Is_Script=  Hiragana}', "");
-    Error('\p{Is_Sc=-/a/HIRA}');
-    Error('\P{Is_Sc=-/a/HIRA}');
-    Expect(1, 127488, '\p{Is_Sc:   hira}', "");
-    Expect(0, 127488, '\p{^Is_Sc:   hira}', "");
-    Expect(0, 127488, '\P{Is_Sc:   hira}', "");
-    Expect(1, 127488, '\P{^Is_Sc:   hira}', "");
-    Expect(0, 127489, '\p{Is_Sc:   hira}', "");
-    Expect(1, 127489, '\p{^Is_Sc:   hira}', "");
-    Expect(1, 127489, '\P{Is_Sc:   hira}', "");
-    Expect(0, 127489, '\P{^Is_Sc:   hira}', "");
-    Expect(1, 127488, '\p{Is_Sc:	-Hira}', "");
-    Expect(0, 127488, '\p{^Is_Sc:	-Hira}', "");
-    Expect(0, 127488, '\P{Is_Sc:	-Hira}', "");
-    Expect(1, 127488, '\P{^Is_Sc:	-Hira}', "");
-    Expect(0, 127489, '\p{Is_Sc:	-Hira}', "");
-    Expect(1, 127489, '\p{^Is_Sc:	-Hira}', "");
-    Expect(1, 127489, '\P{Is_Sc:	-Hira}', "");
-    Expect(0, 127489, '\P{^Is_Sc:	-Hira}', "");
-    Error('\p{Script=:=_ANATOLIAN_hieroglyphs}');
-    Error('\P{Script=:=_ANATOLIAN_hieroglyphs}');
+    Expect(1, 127488, '\p{Is_Script=--HIRAGANA}', "");
+    Expect(0, 127488, '\p{^Is_Script=--HIRAGANA}', "");
+    Expect(0, 127488, '\P{Is_Script=--HIRAGANA}', "");
+    Expect(1, 127488, '\P{^Is_Script=--HIRAGANA}', "");
+    Expect(0, 127489, '\p{Is_Script=--HIRAGANA}', "");
+    Expect(1, 127489, '\p{^Is_Script=--HIRAGANA}', "");
+    Expect(1, 127489, '\P{Is_Script=--HIRAGANA}', "");
+    Expect(0, 127489, '\P{^Is_Script=--HIRAGANA}', "");
+    Error('\p{Is_Sc=/a/	_hira}');
+    Error('\P{Is_Sc=/a/	_hira}');
+    Expect(1, 127488, '\p{Is_Sc=hira}', "");
+    Expect(0, 127488, '\p{^Is_Sc=hira}', "");
+    Expect(0, 127488, '\P{Is_Sc=hira}', "");
+    Expect(1, 127488, '\P{^Is_Sc=hira}', "");
+    Expect(0, 127489, '\p{Is_Sc=hira}', "");
+    Expect(1, 127489, '\p{^Is_Sc=hira}', "");
+    Expect(1, 127489, '\P{Is_Sc=hira}', "");
+    Expect(0, 127489, '\P{^Is_Sc=hira}', "");
+    Expect(1, 127488, '\p{Is_Sc=HIRA}', "");
+    Expect(0, 127488, '\p{^Is_Sc=HIRA}', "");
+    Expect(0, 127488, '\P{Is_Sc=HIRA}', "");
+    Expect(1, 127488, '\P{^Is_Sc=HIRA}', "");
+    Expect(0, 127489, '\p{Is_Sc=HIRA}', "");
+    Expect(1, 127489, '\p{^Is_Sc=HIRA}', "");
+    Expect(1, 127489, '\P{Is_Sc=HIRA}', "");
+    Expect(0, 127489, '\P{^Is_Sc=HIRA}', "");
+    Error('\p{Script=-:=Anatolian_hieroglyphs}');
+    Error('\P{Script=-:=Anatolian_hieroglyphs}');
     Expect(1, 83526, '\p{Script=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(0, 83527, '\p{Script=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(1, 83526, '\p{Script=anatolianhieroglyphs}', "");
@@ -132627,16 +133811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 83527, '\P{^Script=anatolianhieroglyphs}', "");
     Expect(1, 83526, '\p{Script=:\Aanatolianhieroglyphs\z:}', "");;
     Expect(0, 83527, '\p{Script=:\Aanatolianhieroglyphs\z:}', "");;
-    Expect(1, 83526, '\p{Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83526, '\p{^Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83526, '\P{Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83526, '\P{^Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83527, '\p{Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83527, '\p{^Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(1, 83527, '\P{Script=-_Anatolian_Hieroglyphs}', "");
-    Expect(0, 83527, '\P{^Script=-_Anatolian_Hieroglyphs}', "");
-    Error('\p{Sc=	 hluw/a/}');
-    Error('\P{Sc=	 hluw/a/}');
+    Expect(1, 83526, '\p{Script:_anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\p{^Script:_anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\P{Script:_anatolian_Hieroglyphs}', "");
+    Expect(1, 83526, '\P{^Script:_anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\p{Script:_anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\p{^Script:_anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\P{Script:_anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\P{^Script:_anatolian_Hieroglyphs}', "");
+    Error('\p{Sc=	HLUW:=}');
+    Error('\P{Sc=	HLUW:=}');
     Expect(1, 83526, '\p{Sc=:\AHluw\z:}', "");;
     Expect(0, 83527, '\p{Sc=:\AHluw\z:}', "");;
     Expect(1, 83526, '\p{Sc=hluw}', "");
@@ -132649,34 +133833,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 83527, '\P{^Sc=hluw}', "");
     Expect(1, 83526, '\p{Sc=:\Ahluw\z:}', "");;
     Expect(0, 83527, '\p{Sc=:\Ahluw\z:}', "");;
-    Expect(1, 83526, '\p{Sc=_Hluw}', "");
-    Expect(0, 83526, '\p{^Sc=_Hluw}', "");
-    Expect(0, 83526, '\P{Sc=_Hluw}', "");
-    Expect(1, 83526, '\P{^Sc=_Hluw}', "");
-    Expect(0, 83527, '\p{Sc=_Hluw}', "");
-    Expect(1, 83527, '\p{^Sc=_Hluw}', "");
-    Expect(1, 83527, '\P{Sc=_Hluw}', "");
-    Expect(0, 83527, '\P{^Sc=_Hluw}', "");
-    Error('\p{Is_Script=:=_Anatolian_Hieroglyphs}');
-    Error('\P{Is_Script=:=_Anatolian_Hieroglyphs}');
-    Expect(1, 83526, '\p{Is_Script=anatolianhieroglyphs}', "");
-    Expect(0, 83526, '\p{^Is_Script=anatolianhieroglyphs}', "");
-    Expect(0, 83526, '\P{Is_Script=anatolianhieroglyphs}', "");
-    Expect(1, 83526, '\P{^Is_Script=anatolianhieroglyphs}', "");
-    Expect(0, 83527, '\p{Is_Script=anatolianhieroglyphs}', "");
-    Expect(1, 83527, '\p{^Is_Script=anatolianhieroglyphs}', "");
-    Expect(1, 83527, '\P{Is_Script=anatolianhieroglyphs}', "");
-    Expect(0, 83527, '\P{^Is_Script=anatolianhieroglyphs}', "");
-    Expect(1, 83526, '\p{Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83526, '\p{^Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83526, '\P{Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83526, '\P{^Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83527, '\p{Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83527, '\p{^Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(1, 83527, '\P{Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Expect(0, 83527, '\P{^Is_Script=_ANATOLIAN_Hieroglyphs}', "");
-    Error('\p{Is_Sc= :=Hluw}');
-    Error('\P{Is_Sc= :=Hluw}');
+    Expect(1, 83526, '\p{Sc= hluw}', "");
+    Expect(0, 83526, '\p{^Sc= hluw}', "");
+    Expect(0, 83526, '\P{Sc= hluw}', "");
+    Expect(1, 83526, '\P{^Sc= hluw}', "");
+    Expect(0, 83527, '\p{Sc= hluw}', "");
+    Expect(1, 83527, '\p{^Sc= hluw}', "");
+    Expect(1, 83527, '\P{Sc= hluw}', "");
+    Expect(0, 83527, '\P{^Sc= hluw}', "");
+    Error('\p{Is_Script=_ANATOLIAN_hieroglyphs/a/}');
+    Error('\P{Is_Script=_ANATOLIAN_hieroglyphs/a/}');
+    Expect(1, 83526, '\p{Is_Script:	anatolianhieroglyphs}', "");
+    Expect(0, 83526, '\p{^Is_Script:	anatolianhieroglyphs}', "");
+    Expect(0, 83526, '\P{Is_Script:	anatolianhieroglyphs}', "");
+    Expect(1, 83526, '\P{^Is_Script:	anatolianhieroglyphs}', "");
+    Expect(0, 83527, '\p{Is_Script:	anatolianhieroglyphs}', "");
+    Expect(1, 83527, '\p{^Is_Script:	anatolianhieroglyphs}', "");
+    Expect(1, 83527, '\P{Is_Script:	anatolianhieroglyphs}', "");
+    Expect(0, 83527, '\P{^Is_Script:	anatolianhieroglyphs}', "");
+    Expect(1, 83526, '\p{Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\p{^Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(0, 83526, '\P{Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(1, 83526, '\P{^Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\p{Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\p{^Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(1, 83527, '\P{Is_Script=Anatolian_Hieroglyphs}', "");
+    Expect(0, 83527, '\P{^Is_Script=Anatolian_Hieroglyphs}', "");
+    Error('\p{Is_Sc:	/a/-Hluw}');
+    Error('\P{Is_Sc:	/a/-Hluw}');
     Expect(1, 83526, '\p{Is_Sc=hluw}', "");
     Expect(0, 83526, '\p{^Is_Sc=hluw}', "");
     Expect(0, 83526, '\P{Is_Sc=hluw}', "");
@@ -132685,16 +133869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 83527, '\p{^Is_Sc=hluw}', "");
     Expect(1, 83527, '\P{Is_Sc=hluw}', "");
     Expect(0, 83527, '\P{^Is_Sc=hluw}', "");
-    Expect(1, 83526, '\p{Is_Sc=-Hluw}', "");
-    Expect(0, 83526, '\p{^Is_Sc=-Hluw}', "");
-    Expect(0, 83526, '\P{Is_Sc=-Hluw}', "");
-    Expect(1, 83526, '\P{^Is_Sc=-Hluw}', "");
-    Expect(0, 83527, '\p{Is_Sc=-Hluw}', "");
-    Expect(1, 83527, '\p{^Is_Sc=-Hluw}', "");
-    Expect(1, 83527, '\P{Is_Sc=-Hluw}', "");
-    Expect(0, 83527, '\P{^Is_Sc=-Hluw}', "");
-    Error('\p{Script:	/a/ pahawh_hmong}');
-    Error('\P{Script:	/a/ pahawh_hmong}');
+    Expect(1, 83526, '\p{Is_Sc=	-hluw}', "");
+    Expect(0, 83526, '\p{^Is_Sc=	-hluw}', "");
+    Expect(0, 83526, '\P{Is_Sc=	-hluw}', "");
+    Expect(1, 83526, '\P{^Is_Sc=	-hluw}', "");
+    Expect(0, 83527, '\p{Is_Sc=	-hluw}', "");
+    Expect(1, 83527, '\p{^Is_Sc=	-hluw}', "");
+    Expect(1, 83527, '\P{Is_Sc=	-hluw}', "");
+    Expect(0, 83527, '\P{^Is_Sc=	-hluw}', "");
+    Error('\p{Script: _:=Pahawh_Hmong}');
+    Error('\P{Script: _:=Pahawh_Hmong}');
     Expect(1, 93071, '\p{Script=:\APahawh_Hmong\z:}', "");;
     Expect(0, 93072, '\p{Script=:\APahawh_Hmong\z:}', "");;
     Expect(1, 93071, '\p{Script=pahawhhmong}', "");
@@ -132707,16 +133891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93072, '\P{^Script=pahawhhmong}', "");
     Expect(1, 93071, '\p{Script=:\Apahawhhmong\z:}', "");;
     Expect(0, 93072, '\p{Script=:\Apahawhhmong\z:}', "");;
-    Expect(1, 93071, '\p{Script:			Pahawh_hmong}', "");
-    Expect(0, 93071, '\p{^Script:			Pahawh_hmong}', "");
-    Expect(0, 93071, '\P{Script:			Pahawh_hmong}', "");
-    Expect(1, 93071, '\P{^Script:			Pahawh_hmong}', "");
-    Expect(0, 93072, '\p{Script:			Pahawh_hmong}', "");
-    Expect(1, 93072, '\p{^Script:			Pahawh_hmong}', "");
-    Expect(1, 93072, '\P{Script:			Pahawh_hmong}', "");
-    Expect(0, 93072, '\P{^Script:			Pahawh_hmong}', "");
-    Error('\p{Sc=/a/	 hmng}');
-    Error('\P{Sc=/a/	 hmng}');
+    Expect(1, 93071, '\p{Script= -Pahawh_Hmong}', "");
+    Expect(0, 93071, '\p{^Script= -Pahawh_Hmong}', "");
+    Expect(0, 93071, '\P{Script= -Pahawh_Hmong}', "");
+    Expect(1, 93071, '\P{^Script= -Pahawh_Hmong}', "");
+    Expect(0, 93072, '\p{Script= -Pahawh_Hmong}', "");
+    Expect(1, 93072, '\p{^Script= -Pahawh_Hmong}', "");
+    Expect(1, 93072, '\P{Script= -Pahawh_Hmong}', "");
+    Expect(0, 93072, '\P{^Script= -Pahawh_Hmong}', "");
+    Error('\p{Sc=-/a/Hmng}');
+    Error('\P{Sc=-/a/Hmng}');
     Expect(1, 93071, '\p{Sc=:\AHmng\z:}', "");;
     Expect(0, 93072, '\p{Sc=:\AHmng\z:}', "");;
     Expect(1, 93071, '\p{Sc=hmng}', "");
@@ -132729,16 +133913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93072, '\P{^Sc=hmng}', "");
     Expect(1, 93071, '\p{Sc=:\Ahmng\z:}', "");;
     Expect(0, 93072, '\p{Sc=:\Ahmng\z:}', "");;
-    Expect(1, 93071, '\p{Sc= 	Hmng}', "");
-    Expect(0, 93071, '\p{^Sc= 	Hmng}', "");
-    Expect(0, 93071, '\P{Sc= 	Hmng}', "");
-    Expect(1, 93071, '\P{^Sc= 	Hmng}', "");
-    Expect(0, 93072, '\p{Sc= 	Hmng}', "");
-    Expect(1, 93072, '\p{^Sc= 	Hmng}', "");
-    Expect(1, 93072, '\P{Sc= 	Hmng}', "");
-    Expect(0, 93072, '\P{^Sc= 	Hmng}', "");
-    Error('\p{Is_Script=:= _PAHAWH_Hmong}');
-    Error('\P{Is_Script=:= _PAHAWH_Hmong}');
+    Expect(1, 93071, '\p{Sc=	Hmng}', "");
+    Expect(0, 93071, '\p{^Sc=	Hmng}', "");
+    Expect(0, 93071, '\P{Sc=	Hmng}', "");
+    Expect(1, 93071, '\P{^Sc=	Hmng}', "");
+    Expect(0, 93072, '\p{Sc=	Hmng}', "");
+    Expect(1, 93072, '\p{^Sc=	Hmng}', "");
+    Expect(1, 93072, '\P{Sc=	Hmng}', "");
+    Expect(0, 93072, '\P{^Sc=	Hmng}', "");
+    Error('\p{Is_Script=:=-_pahawh_Hmong}');
+    Error('\P{Is_Script=:=-_pahawh_Hmong}');
     Expect(1, 93071, '\p{Is_Script=pahawhhmong}', "");
     Expect(0, 93071, '\p{^Is_Script=pahawhhmong}', "");
     Expect(0, 93071, '\P{Is_Script=pahawhhmong}', "");
@@ -132747,16 +133931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93072, '\p{^Is_Script=pahawhhmong}', "");
     Expect(1, 93072, '\P{Is_Script=pahawhhmong}', "");
     Expect(0, 93072, '\P{^Is_Script=pahawhhmong}', "");
-    Expect(1, 93071, '\p{Is_Script=-Pahawh_Hmong}', "");
-    Expect(0, 93071, '\p{^Is_Script=-Pahawh_Hmong}', "");
-    Expect(0, 93071, '\P{Is_Script=-Pahawh_Hmong}', "");
-    Expect(1, 93071, '\P{^Is_Script=-Pahawh_Hmong}', "");
-    Expect(0, 93072, '\p{Is_Script=-Pahawh_Hmong}', "");
-    Expect(1, 93072, '\p{^Is_Script=-Pahawh_Hmong}', "");
-    Expect(1, 93072, '\P{Is_Script=-Pahawh_Hmong}', "");
-    Expect(0, 93072, '\P{^Is_Script=-Pahawh_Hmong}', "");
-    Error('\p{Is_Sc=_/a/hmng}');
-    Error('\P{Is_Sc=_/a/hmng}');
+    Expect(1, 93071, '\p{Is_Script=-	Pahawh_hmong}', "");
+    Expect(0, 93071, '\p{^Is_Script=-	Pahawh_hmong}', "");
+    Expect(0, 93071, '\P{Is_Script=-	Pahawh_hmong}', "");
+    Expect(1, 93071, '\P{^Is_Script=-	Pahawh_hmong}', "");
+    Expect(0, 93072, '\p{Is_Script=-	Pahawh_hmong}', "");
+    Expect(1, 93072, '\p{^Is_Script=-	Pahawh_hmong}', "");
+    Expect(1, 93072, '\P{Is_Script=-	Pahawh_hmong}', "");
+    Expect(0, 93072, '\P{^Is_Script=-	Pahawh_hmong}', "");
+    Error('\p{Is_Sc:   /a/-Hmng}');
+    Error('\P{Is_Sc:   /a/-Hmng}');
     Expect(1, 93071, '\p{Is_Sc=hmng}', "");
     Expect(0, 93071, '\p{^Is_Sc=hmng}', "");
     Expect(0, 93071, '\P{Is_Sc=hmng}', "");
@@ -132765,60 +133949,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93072, '\p{^Is_Sc=hmng}', "");
     Expect(1, 93072, '\P{Is_Sc=hmng}', "");
     Expect(0, 93072, '\P{^Is_Sc=hmng}', "");
-    Expect(1, 93071, '\p{Is_Sc=  Hmng}', "");
-    Expect(0, 93071, '\p{^Is_Sc=  Hmng}', "");
-    Expect(0, 93071, '\P{Is_Sc=  Hmng}', "");
-    Expect(1, 93071, '\P{^Is_Sc=  Hmng}', "");
-    Expect(0, 93072, '\p{Is_Sc=  Hmng}', "");
-    Expect(1, 93072, '\p{^Is_Sc=  Hmng}', "");
-    Expect(1, 93072, '\P{Is_Sc=  Hmng}', "");
-    Expect(0, 93072, '\P{^Is_Sc=  Hmng}', "");
-    Error('\p{Script=:= 	nyiakeng_puachue_Hmong}');
-    Error('\P{Script=:= 	nyiakeng_puachue_Hmong}');
+    Expect(1, 93071, '\p{Is_Sc=		Hmng}', "");
+    Expect(0, 93071, '\p{^Is_Sc=		Hmng}', "");
+    Expect(0, 93071, '\P{Is_Sc=		Hmng}', "");
+    Expect(1, 93071, '\P{^Is_Sc=		Hmng}', "");
+    Expect(0, 93072, '\p{Is_Sc=		Hmng}', "");
+    Expect(1, 93072, '\p{^Is_Sc=		Hmng}', "");
+    Expect(1, 93072, '\P{Is_Sc=		Hmng}', "");
+    Expect(0, 93072, '\P{^Is_Sc=		Hmng}', "");
+    Error('\p{Script=  Nyiakeng_Puachue_Hmong/a/}');
+    Error('\P{Script=  Nyiakeng_Puachue_Hmong/a/}');
     Expect(1, 123215, '\p{Script=:\ANyiakeng_Puachue_Hmong\z:}', "");;
     Expect(0, 123216, '\p{Script=:\ANyiakeng_Puachue_Hmong\z:}', "");;
-    Expect(1, 123215, '\p{Script:   nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\p{^Script:   nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\P{Script:   nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\P{^Script:   nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\p{Script:   nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\p{^Script:   nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\P{Script:   nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\P{^Script:   nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\p{Script=nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\p{^Script=nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\P{Script=nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\P{^Script=nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\p{Script=nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\p{^Script=nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\P{Script=nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\P{^Script=nyiakengpuachuehmong}', "");
     Expect(1, 123215, '\p{Script=:\Anyiakengpuachuehmong\z:}', "");;
     Expect(0, 123216, '\p{Script=:\Anyiakengpuachuehmong\z:}', "");;
-    Expect(1, 123215, '\p{Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(0, 123215, '\p{^Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(0, 123215, '\P{Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(1, 123215, '\P{^Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(0, 123216, '\p{Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(1, 123216, '\p{^Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(1, 123216, '\P{Script=	nyiakeng_PUACHUE_hmong}', "");
-    Expect(0, 123216, '\P{^Script=	nyiakeng_PUACHUE_hmong}', "");
-    Error('\p{Sc=_HMNP/a/}');
-    Error('\P{Sc=_HMNP/a/}');
+    Expect(1, 123215, '\p{Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(0, 123215, '\p{^Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(0, 123215, '\P{Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(1, 123215, '\P{^Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(0, 123216, '\p{Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(1, 123216, '\p{^Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(1, 123216, '\P{Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Expect(0, 123216, '\P{^Script=-_Nyiakeng_PUACHUE_HMONG}', "");
+    Error('\p{Sc=/a/_	hmnp}');
+    Error('\P{Sc=/a/_	hmnp}');
     Expect(1, 123215, '\p{Sc=:\AHmnp\z:}', "");;
     Expect(0, 123216, '\p{Sc=:\AHmnp\z:}', "");;
-    Expect(1, 123215, '\p{Sc:	hmnp}', "");
-    Expect(0, 123215, '\p{^Sc:	hmnp}', "");
-    Expect(0, 123215, '\P{Sc:	hmnp}', "");
-    Expect(1, 123215, '\P{^Sc:	hmnp}', "");
-    Expect(0, 123216, '\p{Sc:	hmnp}', "");
-    Expect(1, 123216, '\p{^Sc:	hmnp}', "");
-    Expect(1, 123216, '\P{Sc:	hmnp}', "");
-    Expect(0, 123216, '\P{^Sc:	hmnp}', "");
+    Expect(1, 123215, '\p{Sc=hmnp}', "");
+    Expect(0, 123215, '\p{^Sc=hmnp}', "");
+    Expect(0, 123215, '\P{Sc=hmnp}', "");
+    Expect(1, 123215, '\P{^Sc=hmnp}', "");
+    Expect(0, 123216, '\p{Sc=hmnp}', "");
+    Expect(1, 123216, '\p{^Sc=hmnp}', "");
+    Expect(1, 123216, '\P{Sc=hmnp}', "");
+    Expect(0, 123216, '\P{^Sc=hmnp}', "");
     Expect(1, 123215, '\p{Sc=:\Ahmnp\z:}', "");;
     Expect(0, 123216, '\p{Sc=:\Ahmnp\z:}', "");;
-    Expect(1, 123215, '\p{Sc=_HMNP}', "");
-    Expect(0, 123215, '\p{^Sc=_HMNP}', "");
-    Expect(0, 123215, '\P{Sc=_HMNP}', "");
-    Expect(1, 123215, '\P{^Sc=_HMNP}', "");
-    Expect(0, 123216, '\p{Sc=_HMNP}', "");
-    Expect(1, 123216, '\p{^Sc=_HMNP}', "");
-    Expect(1, 123216, '\P{Sc=_HMNP}', "");
-    Expect(0, 123216, '\P{^Sc=_HMNP}', "");
-    Error('\p{Is_Script=_:=Nyiakeng_Puachue_hmong}');
-    Error('\P{Is_Script=_:=Nyiakeng_Puachue_hmong}');
+    Expect(1, 123215, '\p{Sc= -Hmnp}', "");
+    Expect(0, 123215, '\p{^Sc= -Hmnp}', "");
+    Expect(0, 123215, '\P{Sc= -Hmnp}', "");
+    Expect(1, 123215, '\P{^Sc= -Hmnp}', "");
+    Expect(0, 123216, '\p{Sc= -Hmnp}', "");
+    Expect(1, 123216, '\p{^Sc= -Hmnp}', "");
+    Expect(1, 123216, '\P{Sc= -Hmnp}', "");
+    Expect(0, 123216, '\P{^Sc= -Hmnp}', "");
+    Error('\p{Is_Script: 	NYIAKENG_Puachue_Hmong:=}');
+    Error('\P{Is_Script: 	NYIAKENG_Puachue_Hmong:=}');
     Expect(1, 123215, '\p{Is_Script=nyiakengpuachuehmong}', "");
     Expect(0, 123215, '\p{^Is_Script=nyiakengpuachuehmong}', "");
     Expect(0, 123215, '\P{Is_Script=nyiakengpuachuehmong}', "");
@@ -132835,24 +134019,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123216, '\p{^Is_Script= -NYIAKENG_puachue_Hmong}', "");
     Expect(1, 123216, '\P{Is_Script= -NYIAKENG_puachue_Hmong}', "");
     Expect(0, 123216, '\P{^Is_Script= -NYIAKENG_puachue_Hmong}', "");
-    Error('\p{Is_Sc= HMNP/a/}');
-    Error('\P{Is_Sc= HMNP/a/}');
-    Expect(1, 123215, '\p{Is_Sc:hmnp}', "");
-    Expect(0, 123215, '\p{^Is_Sc:hmnp}', "");
-    Expect(0, 123215, '\P{Is_Sc:hmnp}', "");
-    Expect(1, 123215, '\P{^Is_Sc:hmnp}', "");
-    Expect(0, 123216, '\p{Is_Sc:hmnp}', "");
-    Expect(1, 123216, '\p{^Is_Sc:hmnp}', "");
-    Expect(1, 123216, '\P{Is_Sc:hmnp}', "");
-    Expect(0, 123216, '\P{^Is_Sc:hmnp}', "");
-    Expect(1, 123215, '\p{Is_Sc=--Hmnp}', "");
-    Expect(0, 123215, '\p{^Is_Sc=--Hmnp}', "");
-    Expect(0, 123215, '\P{Is_Sc=--Hmnp}', "");
-    Expect(1, 123215, '\P{^Is_Sc=--Hmnp}', "");
-    Expect(0, 123216, '\p{Is_Sc=--Hmnp}', "");
-    Expect(1, 123216, '\p{^Is_Sc=--Hmnp}', "");
-    Expect(1, 123216, '\P{Is_Sc=--Hmnp}', "");
-    Expect(0, 123216, '\P{^Is_Sc=--Hmnp}', "");
+    Error('\p{Is_Sc: HMNP:=}');
+    Error('\P{Is_Sc: HMNP:=}');
+    Expect(1, 123215, '\p{Is_Sc=hmnp}', "");
+    Expect(0, 123215, '\p{^Is_Sc=hmnp}', "");
+    Expect(0, 123215, '\P{Is_Sc=hmnp}', "");
+    Expect(1, 123215, '\P{^Is_Sc=hmnp}', "");
+    Expect(0, 123216, '\p{Is_Sc=hmnp}', "");
+    Expect(1, 123216, '\p{^Is_Sc=hmnp}', "");
+    Expect(1, 123216, '\P{Is_Sc=hmnp}', "");
+    Expect(0, 123216, '\P{^Is_Sc=hmnp}', "");
+    Expect(1, 123215, '\p{Is_Sc=		hmnp}', "");
+    Expect(0, 123215, '\p{^Is_Sc=		hmnp}', "");
+    Expect(0, 123215, '\P{Is_Sc=		hmnp}', "");
+    Expect(1, 123215, '\P{^Is_Sc=		hmnp}', "");
+    Expect(0, 123216, '\p{Is_Sc=		hmnp}', "");
+    Expect(1, 123216, '\p{^Is_Sc=		hmnp}', "");
+    Expect(1, 123216, '\P{Is_Sc=		hmnp}', "");
+    Expect(0, 123216, '\P{^Is_Sc=		hmnp}', "");
     Error('\p{Script=Katakana_Or_Hiragana}');
     Error('\P{Script=Katakana_Or_Hiragana}');
     Error('\p{Sc=Hrkt}');
@@ -132861,8 +134045,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Error('\P{Is_Script=Katakana_Or_Hiragana}');
     Error('\p{Is_Sc=Hrkt}');
     Error('\P{Is_Sc=Hrkt}');
-    Error('\p{Script=- Old_hungarian/a/}');
-    Error('\P{Script=- Old_hungarian/a/}');
+    Error('\p{Script=:=Old_hungarian}');
+    Error('\P{Script=:=Old_hungarian}');
     Expect(1, 68863, '\p{Script=:\AOld_Hungarian\z:}', "");;
     Expect(0, 68864, '\p{Script=:\AOld_Hungarian\z:}', "");;
     Expect(1, 68863, '\p{Script=oldhungarian}', "");
@@ -132875,38 +134059,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68864, '\P{^Script=oldhungarian}', "");
     Expect(1, 68863, '\p{Script=:\Aoldhungarian\z:}', "");;
     Expect(0, 68864, '\p{Script=:\Aoldhungarian\z:}', "");;
-    Expect(1, 68863, '\p{Script= 	OLD_hungarian}', "");
-    Expect(0, 68863, '\p{^Script= 	OLD_hungarian}', "");
-    Expect(0, 68863, '\P{Script= 	OLD_hungarian}', "");
-    Expect(1, 68863, '\P{^Script= 	OLD_hungarian}', "");
-    Expect(0, 68864, '\p{Script= 	OLD_hungarian}', "");
-    Expect(1, 68864, '\p{^Script= 	OLD_hungarian}', "");
-    Expect(1, 68864, '\P{Script= 	OLD_hungarian}', "");
-    Expect(0, 68864, '\P{^Script= 	OLD_hungarian}', "");
-    Error('\p{Sc=:= -hung}');
-    Error('\P{Sc=:= -hung}');
+    Expect(1, 68863, '\p{Script= Old_Hungarian}', "");
+    Expect(0, 68863, '\p{^Script= Old_Hungarian}', "");
+    Expect(0, 68863, '\P{Script= Old_Hungarian}', "");
+    Expect(1, 68863, '\P{^Script= Old_Hungarian}', "");
+    Expect(0, 68864, '\p{Script= Old_Hungarian}', "");
+    Expect(1, 68864, '\p{^Script= Old_Hungarian}', "");
+    Expect(1, 68864, '\P{Script= Old_Hungarian}', "");
+    Expect(0, 68864, '\P{^Script= Old_Hungarian}', "");
+    Error('\p{Sc=:=_	HUNG}');
+    Error('\P{Sc=:=_	HUNG}');
     Expect(1, 68863, '\p{Sc=:\AHung\z:}', "");;
     Expect(0, 68864, '\p{Sc=:\AHung\z:}', "");;
-    Expect(1, 68863, '\p{Sc=hung}', "");
-    Expect(0, 68863, '\p{^Sc=hung}', "");
-    Expect(0, 68863, '\P{Sc=hung}', "");
-    Expect(1, 68863, '\P{^Sc=hung}', "");
-    Expect(0, 68864, '\p{Sc=hung}', "");
-    Expect(1, 68864, '\p{^Sc=hung}', "");
-    Expect(1, 68864, '\P{Sc=hung}', "");
-    Expect(0, 68864, '\P{^Sc=hung}', "");
+    Expect(1, 68863, '\p{Sc:hung}', "");
+    Expect(0, 68863, '\p{^Sc:hung}', "");
+    Expect(0, 68863, '\P{Sc:hung}', "");
+    Expect(1, 68863, '\P{^Sc:hung}', "");
+    Expect(0, 68864, '\p{Sc:hung}', "");
+    Expect(1, 68864, '\p{^Sc:hung}', "");
+    Expect(1, 68864, '\P{Sc:hung}', "");
+    Expect(0, 68864, '\P{^Sc:hung}', "");
     Expect(1, 68863, '\p{Sc=:\Ahung\z:}', "");;
     Expect(0, 68864, '\p{Sc=:\Ahung\z:}', "");;
-    Expect(1, 68863, '\p{Sc=	HUNG}', "");
-    Expect(0, 68863, '\p{^Sc=	HUNG}', "");
-    Expect(0, 68863, '\P{Sc=	HUNG}', "");
-    Expect(1, 68863, '\P{^Sc=	HUNG}', "");
-    Expect(0, 68864, '\p{Sc=	HUNG}', "");
-    Expect(1, 68864, '\p{^Sc=	HUNG}', "");
-    Expect(1, 68864, '\P{Sc=	HUNG}', "");
-    Expect(0, 68864, '\P{^Sc=	HUNG}', "");
-    Error('\p{Is_Script=-Old_hungarian/a/}');
-    Error('\P{Is_Script=-Old_hungarian/a/}');
+    Expect(1, 68863, '\p{Sc=_HUNG}', "");
+    Expect(0, 68863, '\p{^Sc=_HUNG}', "");
+    Expect(0, 68863, '\P{Sc=_HUNG}', "");
+    Expect(1, 68863, '\P{^Sc=_HUNG}', "");
+    Expect(0, 68864, '\p{Sc=_HUNG}', "");
+    Expect(1, 68864, '\p{^Sc=_HUNG}', "");
+    Expect(1, 68864, '\P{Sc=_HUNG}', "");
+    Expect(0, 68864, '\P{^Sc=_HUNG}', "");
+    Error('\p{Is_Script=_-old_HUNGARIAN/a/}');
+    Error('\P{Is_Script=_-old_HUNGARIAN/a/}');
     Expect(1, 68863, '\p{Is_Script=oldhungarian}', "");
     Expect(0, 68863, '\p{^Is_Script=oldhungarian}', "");
     Expect(0, 68863, '\P{Is_Script=oldhungarian}', "");
@@ -132915,34 +134099,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68864, '\p{^Is_Script=oldhungarian}', "");
     Expect(1, 68864, '\P{Is_Script=oldhungarian}', "");
     Expect(0, 68864, '\P{^Is_Script=oldhungarian}', "");
-    Expect(1, 68863, '\p{Is_Script=_ old_hungarian}', "");
-    Expect(0, 68863, '\p{^Is_Script=_ old_hungarian}', "");
-    Expect(0, 68863, '\P{Is_Script=_ old_hungarian}', "");
-    Expect(1, 68863, '\P{^Is_Script=_ old_hungarian}', "");
-    Expect(0, 68864, '\p{Is_Script=_ old_hungarian}', "");
-    Expect(1, 68864, '\p{^Is_Script=_ old_hungarian}', "");
-    Expect(1, 68864, '\P{Is_Script=_ old_hungarian}', "");
-    Expect(0, 68864, '\P{^Is_Script=_ old_hungarian}', "");
-    Error('\p{Is_Sc=:=-Hung}');
-    Error('\P{Is_Sc=:=-Hung}');
-    Expect(1, 68863, '\p{Is_Sc: hung}', "");
-    Expect(0, 68863, '\p{^Is_Sc: hung}', "");
-    Expect(0, 68863, '\P{Is_Sc: hung}', "");
-    Expect(1, 68863, '\P{^Is_Sc: hung}', "");
-    Expect(0, 68864, '\p{Is_Sc: hung}', "");
-    Expect(1, 68864, '\p{^Is_Sc: hung}', "");
-    Expect(1, 68864, '\P{Is_Sc: hung}', "");
-    Expect(0, 68864, '\P{^Is_Sc: hung}', "");
-    Expect(1, 68863, '\p{Is_Sc=	Hung}', "");
-    Expect(0, 68863, '\p{^Is_Sc=	Hung}', "");
-    Expect(0, 68863, '\P{Is_Sc=	Hung}', "");
-    Expect(1, 68863, '\P{^Is_Sc=	Hung}', "");
-    Expect(0, 68864, '\p{Is_Sc=	Hung}', "");
-    Expect(1, 68864, '\p{^Is_Sc=	Hung}', "");
-    Expect(1, 68864, '\P{Is_Sc=	Hung}', "");
-    Expect(0, 68864, '\P{^Is_Sc=	Hung}', "");
-    Error('\p{Script=/a/	Old_Italic}');
-    Error('\P{Script=/a/	Old_Italic}');
+    Expect(1, 68863, '\p{Is_Script:  -old_hungarian}', "");
+    Expect(0, 68863, '\p{^Is_Script:  -old_hungarian}', "");
+    Expect(0, 68863, '\P{Is_Script:  -old_hungarian}', "");
+    Expect(1, 68863, '\P{^Is_Script:  -old_hungarian}', "");
+    Expect(0, 68864, '\p{Is_Script:  -old_hungarian}', "");
+    Expect(1, 68864, '\p{^Is_Script:  -old_hungarian}', "");
+    Expect(1, 68864, '\P{Is_Script:  -old_hungarian}', "");
+    Expect(0, 68864, '\P{^Is_Script:  -old_hungarian}', "");
+    Error('\p{Is_Sc=/a/Hung}');
+    Error('\P{Is_Sc=/a/Hung}');
+    Expect(1, 68863, '\p{Is_Sc=hung}', "");
+    Expect(0, 68863, '\p{^Is_Sc=hung}', "");
+    Expect(0, 68863, '\P{Is_Sc=hung}', "");
+    Expect(1, 68863, '\P{^Is_Sc=hung}', "");
+    Expect(0, 68864, '\p{Is_Sc=hung}', "");
+    Expect(1, 68864, '\p{^Is_Sc=hung}', "");
+    Expect(1, 68864, '\P{Is_Sc=hung}', "");
+    Expect(0, 68864, '\P{^Is_Sc=hung}', "");
+    Expect(1, 68863, '\p{Is_Sc= -Hung}', "");
+    Expect(0, 68863, '\p{^Is_Sc= -Hung}', "");
+    Expect(0, 68863, '\P{Is_Sc= -Hung}', "");
+    Expect(1, 68863, '\P{^Is_Sc= -Hung}', "");
+    Expect(0, 68864, '\p{Is_Sc= -Hung}', "");
+    Expect(1, 68864, '\p{^Is_Sc= -Hung}', "");
+    Expect(1, 68864, '\P{Is_Sc= -Hung}', "");
+    Expect(0, 68864, '\P{^Is_Sc= -Hung}', "");
+    Error('\p{Script= /a/old_italic}');
+    Error('\P{Script= /a/old_italic}');
     Expect(1, 66351, '\p{Script=:\AOld_Italic\z:}', "");;
     Expect(0, 66352, '\p{Script=:\AOld_Italic\z:}', "");;
     Expect(1, 66351, '\p{Script=olditalic}', "");
@@ -132955,16 +134139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66352, '\P{^Script=olditalic}', "");
     Expect(1, 66351, '\p{Script=:\Aolditalic\z:}', "");;
     Expect(0, 66352, '\p{Script=:\Aolditalic\z:}', "");;
-    Expect(1, 66351, '\p{Script=_	Old_ITALIC}', "");
-    Expect(0, 66351, '\p{^Script=_	Old_ITALIC}', "");
-    Expect(0, 66351, '\P{Script=_	Old_ITALIC}', "");
-    Expect(1, 66351, '\P{^Script=_	Old_ITALIC}', "");
-    Expect(0, 66352, '\p{Script=_	Old_ITALIC}', "");
-    Expect(1, 66352, '\p{^Script=_	Old_ITALIC}', "");
-    Expect(1, 66352, '\P{Script=_	Old_ITALIC}', "");
-    Expect(0, 66352, '\P{^Script=_	Old_ITALIC}', "");
-    Error('\p{Sc=- ITAL/a/}');
-    Error('\P{Sc=- ITAL/a/}');
+    Expect(1, 66351, '\p{Script= OLD_Italic}', "");
+    Expect(0, 66351, '\p{^Script= OLD_Italic}', "");
+    Expect(0, 66351, '\P{Script= OLD_Italic}', "");
+    Expect(1, 66351, '\P{^Script= OLD_Italic}', "");
+    Expect(0, 66352, '\p{Script= OLD_Italic}', "");
+    Expect(1, 66352, '\p{^Script= OLD_Italic}', "");
+    Expect(1, 66352, '\P{Script= OLD_Italic}', "");
+    Expect(0, 66352, '\P{^Script= OLD_Italic}', "");
+    Error('\p{Sc=/a/	 Ital}');
+    Error('\P{Sc=/a/	 Ital}');
     Expect(1, 66351, '\p{Sc=:\AItal\z:}', "");;
     Expect(0, 66352, '\p{Sc=:\AItal\z:}', "");;
     Expect(1, 66351, '\p{Sc=ital}', "");
@@ -132977,16 +134161,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66352, '\P{^Sc=ital}', "");
     Expect(1, 66351, '\p{Sc=:\Aital\z:}', "");;
     Expect(0, 66352, '\p{Sc=:\Aital\z:}', "");;
-    Expect(1, 66351, '\p{Sc=	-Ital}', "");
-    Expect(0, 66351, '\p{^Sc=	-Ital}', "");
-    Expect(0, 66351, '\P{Sc=	-Ital}', "");
-    Expect(1, 66351, '\P{^Sc=	-Ital}', "");
-    Expect(0, 66352, '\p{Sc=	-Ital}', "");
-    Expect(1, 66352, '\p{^Sc=	-Ital}', "");
-    Expect(1, 66352, '\P{Sc=	-Ital}', "");
-    Expect(0, 66352, '\P{^Sc=	-Ital}', "");
-    Error('\p{Is_Script=/a/--Old_ITALIC}');
-    Error('\P{Is_Script=/a/--Old_ITALIC}');
+    Expect(1, 66351, '\p{Sc=- Ital}', "");
+    Expect(0, 66351, '\p{^Sc=- Ital}', "");
+    Expect(0, 66351, '\P{Sc=- Ital}', "");
+    Expect(1, 66351, '\P{^Sc=- Ital}', "");
+    Expect(0, 66352, '\p{Sc=- Ital}', "");
+    Expect(1, 66352, '\p{^Sc=- Ital}', "");
+    Expect(1, 66352, '\P{Sc=- Ital}', "");
+    Expect(0, 66352, '\P{^Sc=- Ital}', "");
+    Error('\p{Is_Script=:=-old_ITALIC}');
+    Error('\P{Is_Script=:=-old_ITALIC}');
     Expect(1, 66351, '\p{Is_Script=olditalic}', "");
     Expect(0, 66351, '\p{^Is_Script=olditalic}', "");
     Expect(0, 66351, '\P{Is_Script=olditalic}', "");
@@ -132995,16 +134179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66352, '\p{^Is_Script=olditalic}', "");
     Expect(1, 66352, '\P{Is_Script=olditalic}', "");
     Expect(0, 66352, '\P{^Is_Script=olditalic}', "");
-    Expect(1, 66351, '\p{Is_Script=		old_Italic}', "");
-    Expect(0, 66351, '\p{^Is_Script=		old_Italic}', "");
-    Expect(0, 66351, '\P{Is_Script=		old_Italic}', "");
-    Expect(1, 66351, '\P{^Is_Script=		old_Italic}', "");
-    Expect(0, 66352, '\p{Is_Script=		old_Italic}', "");
-    Expect(1, 66352, '\p{^Is_Script=		old_Italic}', "");
-    Expect(1, 66352, '\P{Is_Script=		old_Italic}', "");
-    Expect(0, 66352, '\P{^Is_Script=		old_Italic}', "");
-    Error('\p{Is_Sc=/a/	-ITAL}');
-    Error('\P{Is_Sc=/a/	-ITAL}');
+    Expect(1, 66351, '\p{Is_Script=-_Old_Italic}', "");
+    Expect(0, 66351, '\p{^Is_Script=-_Old_Italic}', "");
+    Expect(0, 66351, '\P{Is_Script=-_Old_Italic}', "");
+    Expect(1, 66351, '\P{^Is_Script=-_Old_Italic}', "");
+    Expect(0, 66352, '\p{Is_Script=-_Old_Italic}', "");
+    Expect(1, 66352, '\p{^Is_Script=-_Old_Italic}', "");
+    Expect(1, 66352, '\P{Is_Script=-_Old_Italic}', "");
+    Expect(0, 66352, '\P{^Is_Script=-_Old_Italic}', "");
+    Error('\p{Is_Sc=/a/-ital}');
+    Error('\P{Is_Sc=/a/-ital}');
     Expect(1, 66351, '\p{Is_Sc=ital}', "");
     Expect(0, 66351, '\p{^Is_Sc=ital}', "");
     Expect(0, 66351, '\P{Is_Sc=ital}', "");
@@ -133013,16 +134197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66352, '\p{^Is_Sc=ital}', "");
     Expect(1, 66352, '\P{Is_Sc=ital}', "");
     Expect(0, 66352, '\P{^Is_Sc=ital}', "");
-    Expect(1, 66351, '\p{Is_Sc:   Ital}', "");
-    Expect(0, 66351, '\p{^Is_Sc:   Ital}', "");
-    Expect(0, 66351, '\P{Is_Sc:   Ital}', "");
-    Expect(1, 66351, '\P{^Is_Sc:   Ital}', "");
-    Expect(0, 66352, '\p{Is_Sc:   Ital}', "");
-    Expect(1, 66352, '\p{^Is_Sc:   Ital}', "");
-    Expect(1, 66352, '\P{Is_Sc:   Ital}', "");
-    Expect(0, 66352, '\P{^Is_Sc:   Ital}', "");
-    Error('\p{Script=_/a/Javanese}');
-    Error('\P{Script=_/a/Javanese}');
+    Expect(1, 66351, '\p{Is_Sc=_ITAL}', "");
+    Expect(0, 66351, '\p{^Is_Sc=_ITAL}', "");
+    Expect(0, 66351, '\P{Is_Sc=_ITAL}', "");
+    Expect(1, 66351, '\P{^Is_Sc=_ITAL}', "");
+    Expect(0, 66352, '\p{Is_Sc=_ITAL}', "");
+    Expect(1, 66352, '\p{^Is_Sc=_ITAL}', "");
+    Expect(1, 66352, '\P{Is_Sc=_ITAL}', "");
+    Expect(0, 66352, '\P{^Is_Sc=_ITAL}', "");
+    Error('\p{Script=-/a/JAVANESE}');
+    Error('\P{Script=-/a/JAVANESE}');
     Expect(1, 43487, '\p{Script=:\AJavanese\z:}', "");;
     Expect(0, 43488, '\p{Script=:\AJavanese\z:}', "");;
     Expect(1, 43487, '\p{Script=javanese}', "");
@@ -133035,16 +134219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43488, '\P{^Script=javanese}', "");
     Expect(1, 43487, '\p{Script=:\Ajavanese\z:}', "");;
     Expect(0, 43488, '\p{Script=:\Ajavanese\z:}', "");;
-    Expect(1, 43487, '\p{Script= 	Javanese}', "");
-    Expect(0, 43487, '\p{^Script= 	Javanese}', "");
-    Expect(0, 43487, '\P{Script= 	Javanese}', "");
-    Expect(1, 43487, '\P{^Script= 	Javanese}', "");
-    Expect(0, 43488, '\p{Script= 	Javanese}', "");
-    Expect(1, 43488, '\p{^Script= 	Javanese}', "");
-    Expect(1, 43488, '\P{Script= 	Javanese}', "");
-    Expect(0, 43488, '\P{^Script= 	Javanese}', "");
-    Error('\p{Sc=--JAVA/a/}');
-    Error('\P{Sc=--JAVA/a/}');
+    Expect(1, 43487, '\p{Script=-_Javanese}', "");
+    Expect(0, 43487, '\p{^Script=-_Javanese}', "");
+    Expect(0, 43487, '\P{Script=-_Javanese}', "");
+    Expect(1, 43487, '\P{^Script=-_Javanese}', "");
+    Expect(0, 43488, '\p{Script=-_Javanese}', "");
+    Expect(1, 43488, '\p{^Script=-_Javanese}', "");
+    Expect(1, 43488, '\P{Script=-_Javanese}', "");
+    Expect(0, 43488, '\P{^Script=-_Javanese}', "");
+    Error('\p{Sc=/a/java}');
+    Error('\P{Sc=/a/java}');
     Expect(1, 43487, '\p{Sc=:\AJava\z:}', "");;
     Expect(0, 43488, '\p{Sc=:\AJava\z:}', "");;
     Expect(1, 43487, '\p{Sc=java}', "");
@@ -133057,34 +134241,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43488, '\P{^Sc=java}', "");
     Expect(1, 43487, '\p{Sc=:\Ajava\z:}', "");;
     Expect(0, 43488, '\p{Sc=:\Ajava\z:}', "");;
-    Expect(1, 43487, '\p{Sc=--Java}', "");
-    Expect(0, 43487, '\p{^Sc=--Java}', "");
-    Expect(0, 43487, '\P{Sc=--Java}', "");
-    Expect(1, 43487, '\P{^Sc=--Java}', "");
-    Expect(0, 43488, '\p{Sc=--Java}', "");
-    Expect(1, 43488, '\p{^Sc=--Java}', "");
-    Expect(1, 43488, '\P{Sc=--Java}', "");
-    Expect(0, 43488, '\P{^Sc=--Java}', "");
-    Error('\p{Is_Script=_/a/JAVANESE}');
-    Error('\P{Is_Script=_/a/JAVANESE}');
-    Expect(1, 43487, '\p{Is_Script:   javanese}', "");
-    Expect(0, 43487, '\p{^Is_Script:   javanese}', "");
-    Expect(0, 43487, '\P{Is_Script:   javanese}', "");
-    Expect(1, 43487, '\P{^Is_Script:   javanese}', "");
-    Expect(0, 43488, '\p{Is_Script:   javanese}', "");
-    Expect(1, 43488, '\p{^Is_Script:   javanese}', "");
-    Expect(1, 43488, '\P{Is_Script:   javanese}', "");
-    Expect(0, 43488, '\P{^Is_Script:   javanese}', "");
-    Expect(1, 43487, '\p{Is_Script:	- Javanese}', "");
-    Expect(0, 43487, '\p{^Is_Script:	- Javanese}', "");
-    Expect(0, 43487, '\P{Is_Script:	- Javanese}', "");
-    Expect(1, 43487, '\P{^Is_Script:	- Javanese}', "");
-    Expect(0, 43488, '\p{Is_Script:	- Javanese}', "");
-    Expect(1, 43488, '\p{^Is_Script:	- Javanese}', "");
-    Expect(1, 43488, '\P{Is_Script:	- Javanese}', "");
-    Expect(0, 43488, '\P{^Is_Script:	- Javanese}', "");
-    Error('\p{Is_Sc=/a/ Java}');
-    Error('\P{Is_Sc=/a/ Java}');
+    Expect(1, 43487, '\p{Sc=_java}', "");
+    Expect(0, 43487, '\p{^Sc=_java}', "");
+    Expect(0, 43487, '\P{Sc=_java}', "");
+    Expect(1, 43487, '\P{^Sc=_java}', "");
+    Expect(0, 43488, '\p{Sc=_java}', "");
+    Expect(1, 43488, '\p{^Sc=_java}', "");
+    Expect(1, 43488, '\P{Sc=_java}', "");
+    Expect(0, 43488, '\P{^Sc=_java}', "");
+    Error('\p{Is_Script:	- Javanese:=}');
+    Error('\P{Is_Script:	- Javanese:=}');
+    Expect(1, 43487, '\p{Is_Script=javanese}', "");
+    Expect(0, 43487, '\p{^Is_Script=javanese}', "");
+    Expect(0, 43487, '\P{Is_Script=javanese}', "");
+    Expect(1, 43487, '\P{^Is_Script=javanese}', "");
+    Expect(0, 43488, '\p{Is_Script=javanese}', "");
+    Expect(1, 43488, '\p{^Is_Script=javanese}', "");
+    Expect(1, 43488, '\P{Is_Script=javanese}', "");
+    Expect(0, 43488, '\P{^Is_Script=javanese}', "");
+    Expect(1, 43487, '\p{Is_Script= -JAVANESE}', "");
+    Expect(0, 43487, '\p{^Is_Script= -JAVANESE}', "");
+    Expect(0, 43487, '\P{Is_Script= -JAVANESE}', "");
+    Expect(1, 43487, '\P{^Is_Script= -JAVANESE}', "");
+    Expect(0, 43488, '\p{Is_Script= -JAVANESE}', "");
+    Expect(1, 43488, '\p{^Is_Script= -JAVANESE}', "");
+    Expect(1, 43488, '\P{Is_Script= -JAVANESE}', "");
+    Expect(0, 43488, '\P{^Is_Script= -JAVANESE}', "");
+    Error('\p{Is_Sc= -java/a/}');
+    Error('\P{Is_Sc= -java/a/}');
     Expect(1, 43487, '\p{Is_Sc=java}', "");
     Expect(0, 43487, '\p{^Is_Sc=java}', "");
     Expect(0, 43487, '\P{Is_Sc=java}', "");
@@ -133093,16 +134277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43488, '\p{^Is_Sc=java}', "");
     Expect(1, 43488, '\P{Is_Sc=java}', "");
     Expect(0, 43488, '\P{^Is_Sc=java}', "");
-    Expect(1, 43487, '\p{Is_Sc= -Java}', "");
-    Expect(0, 43487, '\p{^Is_Sc= -Java}', "");
-    Expect(0, 43487, '\P{Is_Sc= -Java}', "");
-    Expect(1, 43487, '\P{^Is_Sc= -Java}', "");
-    Expect(0, 43488, '\p{Is_Sc= -Java}', "");
-    Expect(1, 43488, '\p{^Is_Sc= -Java}', "");
-    Expect(1, 43488, '\P{Is_Sc= -Java}', "");
-    Expect(0, 43488, '\P{^Is_Sc= -Java}', "");
-    Error('\p{Script=/a/_-KAYAH_li}');
-    Error('\P{Script=/a/_-KAYAH_li}');
+    Expect(1, 43487, '\p{Is_Sc=JAVA}', "");
+    Expect(0, 43487, '\p{^Is_Sc=JAVA}', "");
+    Expect(0, 43487, '\P{Is_Sc=JAVA}', "");
+    Expect(1, 43487, '\P{^Is_Sc=JAVA}', "");
+    Expect(0, 43488, '\p{Is_Sc=JAVA}', "");
+    Expect(1, 43488, '\p{^Is_Sc=JAVA}', "");
+    Expect(1, 43488, '\P{Is_Sc=JAVA}', "");
+    Expect(0, 43488, '\P{^Is_Sc=JAVA}', "");
+    Error('\p{Script:	/a/	 KAYAH_li}');
+    Error('\P{Script:	/a/	 KAYAH_li}');
     Expect(1, 43311, '\p{Script=:\AKayah_Li\z:}', "");;
     Expect(0, 43312, '\p{Script=:\AKayah_Li\z:}', "");;
     Expect(1, 43311, '\p{Script=kayahli}', "");
@@ -133115,38 +134299,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43312, '\P{^Script=kayahli}', "");
     Expect(1, 43311, '\p{Script=:\Akayahli\z:}', "");;
     Expect(0, 43312, '\p{Script=:\Akayahli\z:}', "");;
-    Expect(1, 43311, '\p{Script=		Kayah_Li}', "");
-    Expect(0, 43311, '\p{^Script=		Kayah_Li}', "");
-    Expect(0, 43311, '\P{Script=		Kayah_Li}', "");
-    Expect(1, 43311, '\P{^Script=		Kayah_Li}', "");
-    Expect(0, 43312, '\p{Script=		Kayah_Li}', "");
-    Expect(1, 43312, '\p{^Script=		Kayah_Li}', "");
-    Expect(1, 43312, '\P{Script=		Kayah_Li}', "");
-    Expect(0, 43312, '\P{^Script=		Kayah_Li}', "");
-    Error('\p{Sc=:=_Kali}');
-    Error('\P{Sc=:=_Kali}');
+    Expect(1, 43311, '\p{Script: 	_Kayah_li}', "");
+    Expect(0, 43311, '\p{^Script: 	_Kayah_li}', "");
+    Expect(0, 43311, '\P{Script: 	_Kayah_li}', "");
+    Expect(1, 43311, '\P{^Script: 	_Kayah_li}', "");
+    Expect(0, 43312, '\p{Script: 	_Kayah_li}', "");
+    Expect(1, 43312, '\p{^Script: 	_Kayah_li}', "");
+    Expect(1, 43312, '\P{Script: 	_Kayah_li}', "");
+    Expect(0, 43312, '\P{^Script: 	_Kayah_li}', "");
+    Error('\p{Sc=KALI/a/}');
+    Error('\P{Sc=KALI/a/}');
     Expect(1, 43311, '\p{Sc=:\AKali\z:}', "");;
     Expect(0, 43312, '\p{Sc=:\AKali\z:}', "");;
-    Expect(1, 43311, '\p{Sc=kali}', "");
-    Expect(0, 43311, '\p{^Sc=kali}', "");
-    Expect(0, 43311, '\P{Sc=kali}', "");
-    Expect(1, 43311, '\P{^Sc=kali}', "");
-    Expect(0, 43312, '\p{Sc=kali}', "");
-    Expect(1, 43312, '\p{^Sc=kali}', "");
-    Expect(1, 43312, '\P{Sc=kali}', "");
-    Expect(0, 43312, '\P{^Sc=kali}', "");
+    Expect(1, 43311, '\p{Sc:kali}', "");
+    Expect(0, 43311, '\p{^Sc:kali}', "");
+    Expect(0, 43311, '\P{Sc:kali}', "");
+    Expect(1, 43311, '\P{^Sc:kali}', "");
+    Expect(0, 43312, '\p{Sc:kali}', "");
+    Expect(1, 43312, '\p{^Sc:kali}', "");
+    Expect(1, 43312, '\P{Sc:kali}', "");
+    Expect(0, 43312, '\P{^Sc:kali}', "");
     Expect(1, 43311, '\p{Sc=:\Akali\z:}', "");;
     Expect(0, 43312, '\p{Sc=:\Akali\z:}', "");;
-    Expect(1, 43311, '\p{Sc= -KALI}', "");
-    Expect(0, 43311, '\p{^Sc= -KALI}', "");
-    Expect(0, 43311, '\P{Sc= -KALI}', "");
-    Expect(1, 43311, '\P{^Sc= -KALI}', "");
-    Expect(0, 43312, '\p{Sc= -KALI}', "");
-    Expect(1, 43312, '\p{^Sc= -KALI}', "");
-    Expect(1, 43312, '\P{Sc= -KALI}', "");
-    Expect(0, 43312, '\P{^Sc= -KALI}', "");
-    Error('\p{Is_Script: :=KAYAH_LI}');
-    Error('\P{Is_Script: :=KAYAH_LI}');
+    Expect(1, 43311, '\p{Sc=-Kali}', "");
+    Expect(0, 43311, '\p{^Sc=-Kali}', "");
+    Expect(0, 43311, '\P{Sc=-Kali}', "");
+    Expect(1, 43311, '\P{^Sc=-Kali}', "");
+    Expect(0, 43312, '\p{Sc=-Kali}', "");
+    Expect(1, 43312, '\p{^Sc=-Kali}', "");
+    Expect(1, 43312, '\P{Sc=-Kali}', "");
+    Expect(0, 43312, '\P{^Sc=-Kali}', "");
+    Error('\p{Is_Script=:=--Kayah_Li}');
+    Error('\P{Is_Script=:=--Kayah_Li}');
     Expect(1, 43311, '\p{Is_Script=kayahli}', "");
     Expect(0, 43311, '\p{^Is_Script=kayahli}', "");
     Expect(0, 43311, '\P{Is_Script=kayahli}', "");
@@ -133155,34 +134339,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43312, '\p{^Is_Script=kayahli}', "");
     Expect(1, 43312, '\P{Is_Script=kayahli}', "");
     Expect(0, 43312, '\P{^Is_Script=kayahli}', "");
-    Expect(1, 43311, '\p{Is_Script:	- kayah_li}', "");
-    Expect(0, 43311, '\p{^Is_Script:	- kayah_li}', "");
-    Expect(0, 43311, '\P{Is_Script:	- kayah_li}', "");
-    Expect(1, 43311, '\P{^Is_Script:	- kayah_li}', "");
-    Expect(0, 43312, '\p{Is_Script:	- kayah_li}', "");
-    Expect(1, 43312, '\p{^Is_Script:	- kayah_li}', "");
-    Expect(1, 43312, '\P{Is_Script:	- kayah_li}', "");
-    Expect(0, 43312, '\P{^Is_Script:	- kayah_li}', "");
-    Error('\p{Is_Sc=:=Kali}');
-    Error('\P{Is_Sc=:=Kali}');
-    Expect(1, 43311, '\p{Is_Sc:kali}', "");
-    Expect(0, 43311, '\p{^Is_Sc:kali}', "");
-    Expect(0, 43311, '\P{Is_Sc:kali}', "");
-    Expect(1, 43311, '\P{^Is_Sc:kali}', "");
-    Expect(0, 43312, '\p{Is_Sc:kali}', "");
-    Expect(1, 43312, '\p{^Is_Sc:kali}', "");
-    Expect(1, 43312, '\P{Is_Sc:kali}', "");
-    Expect(0, 43312, '\P{^Is_Sc:kali}', "");
-    Expect(1, 43311, '\p{Is_Sc=	 Kali}', "");
-    Expect(0, 43311, '\p{^Is_Sc=	 Kali}', "");
-    Expect(0, 43311, '\P{Is_Sc=	 Kali}', "");
-    Expect(1, 43311, '\P{^Is_Sc=	 Kali}', "");
-    Expect(0, 43312, '\p{Is_Sc=	 Kali}', "");
-    Expect(1, 43312, '\p{^Is_Sc=	 Kali}', "");
-    Expect(1, 43312, '\P{Is_Sc=	 Kali}', "");
-    Expect(0, 43312, '\P{^Is_Sc=	 Kali}', "");
-    Error('\p{Script=-/a/Katakana}');
-    Error('\P{Script=-/a/Katakana}');
+    Expect(1, 43311, '\p{Is_Script=		KAYAH_LI}', "");
+    Expect(0, 43311, '\p{^Is_Script=		KAYAH_LI}', "");
+    Expect(0, 43311, '\P{Is_Script=		KAYAH_LI}', "");
+    Expect(1, 43311, '\P{^Is_Script=		KAYAH_LI}', "");
+    Expect(0, 43312, '\p{Is_Script=		KAYAH_LI}', "");
+    Expect(1, 43312, '\p{^Is_Script=		KAYAH_LI}', "");
+    Expect(1, 43312, '\P{Is_Script=		KAYAH_LI}', "");
+    Expect(0, 43312, '\P{^Is_Script=		KAYAH_LI}', "");
+    Error('\p{Is_Sc=_/a/KALI}');
+    Error('\P{Is_Sc=_/a/KALI}');
+    Expect(1, 43311, '\p{Is_Sc=kali}', "");
+    Expect(0, 43311, '\p{^Is_Sc=kali}', "");
+    Expect(0, 43311, '\P{Is_Sc=kali}', "");
+    Expect(1, 43311, '\P{^Is_Sc=kali}', "");
+    Expect(0, 43312, '\p{Is_Sc=kali}', "");
+    Expect(1, 43312, '\p{^Is_Sc=kali}', "");
+    Expect(1, 43312, '\P{Is_Sc=kali}', "");
+    Expect(0, 43312, '\P{^Is_Sc=kali}', "");
+    Expect(1, 43311, '\p{Is_Sc=		KALI}', "");
+    Expect(0, 43311, '\p{^Is_Sc=		KALI}', "");
+    Expect(0, 43311, '\P{Is_Sc=		KALI}', "");
+    Expect(1, 43311, '\P{^Is_Sc=		KALI}', "");
+    Expect(0, 43312, '\p{Is_Sc=		KALI}', "");
+    Expect(1, 43312, '\p{^Is_Sc=		KALI}', "");
+    Expect(1, 43312, '\P{Is_Sc=		KALI}', "");
+    Expect(0, 43312, '\P{^Is_Sc=		KALI}', "");
+    Error('\p{Script=_/a/Katakana}');
+    Error('\P{Script=_/a/Katakana}');
     Expect(1, 110951, '\p{Script=:\AKatakana\z:}', "");;
     Expect(0, 110952, '\p{Script=:\AKatakana\z:}', "");;
     Expect(1, 110951, '\p{Script=katakana}', "");
@@ -133195,16 +134379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 110952, '\P{^Script=katakana}', "");
     Expect(1, 110951, '\p{Script=:\Akatakana\z:}', "");;
     Expect(0, 110952, '\p{Script=:\Akatakana\z:}', "");;
-    Expect(1, 110951, '\p{Script: 	-Katakana}', "");
-    Expect(0, 110951, '\p{^Script: 	-Katakana}', "");
-    Expect(0, 110951, '\P{Script: 	-Katakana}', "");
-    Expect(1, 110951, '\P{^Script: 	-Katakana}', "");
-    Expect(0, 110952, '\p{Script: 	-Katakana}', "");
-    Expect(1, 110952, '\p{^Script: 	-Katakana}', "");
-    Expect(1, 110952, '\P{Script: 	-Katakana}', "");
-    Expect(0, 110952, '\P{^Script: 	-Katakana}', "");
-    Error('\p{Sc=_Kana/a/}');
-    Error('\P{Sc=_Kana/a/}');
+    Expect(1, 110951, '\p{Script:	- Katakana}', "");
+    Expect(0, 110951, '\p{^Script:	- Katakana}', "");
+    Expect(0, 110951, '\P{Script:	- Katakana}', "");
+    Expect(1, 110951, '\P{^Script:	- Katakana}', "");
+    Expect(0, 110952, '\p{Script:	- Katakana}', "");
+    Expect(1, 110952, '\p{^Script:	- Katakana}', "");
+    Expect(1, 110952, '\P{Script:	- Katakana}', "");
+    Expect(0, 110952, '\P{^Script:	- Katakana}', "");
+    Error('\p{Sc=	kana:=}');
+    Error('\P{Sc=	kana:=}');
     Expect(1, 110951, '\p{Sc=:\AKana\z:}', "");;
     Expect(0, 110952, '\p{Sc=:\AKana\z:}', "");;
     Expect(1, 110951, '\p{Sc=kana}', "");
@@ -133225,26 +134409,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110952, '\p{^Sc=-kana}', "");
     Expect(1, 110952, '\P{Sc=-kana}', "");
     Expect(0, 110952, '\P{^Sc=-kana}', "");
-    Error('\p{Is_Script=_:=KATAKANA}');
-    Error('\P{Is_Script=_:=KATAKANA}');
-    Expect(1, 110951, '\p{Is_Script=katakana}', "");
-    Expect(0, 110951, '\p{^Is_Script=katakana}', "");
-    Expect(0, 110951, '\P{Is_Script=katakana}', "");
-    Expect(1, 110951, '\P{^Is_Script=katakana}', "");
-    Expect(0, 110952, '\p{Is_Script=katakana}', "");
-    Expect(1, 110952, '\p{^Is_Script=katakana}', "");
-    Expect(1, 110952, '\P{Is_Script=katakana}', "");
-    Expect(0, 110952, '\P{^Is_Script=katakana}', "");
-    Expect(1, 110951, '\p{Is_Script=-Katakana}', "");
-    Expect(0, 110951, '\p{^Is_Script=-Katakana}', "");
-    Expect(0, 110951, '\P{Is_Script=-Katakana}', "");
-    Expect(1, 110951, '\P{^Is_Script=-Katakana}', "");
-    Expect(0, 110952, '\p{Is_Script=-Katakana}', "");
-    Expect(1, 110952, '\p{^Is_Script=-Katakana}', "");
-    Expect(1, 110952, '\P{Is_Script=-Katakana}', "");
-    Expect(0, 110952, '\P{^Is_Script=-Katakana}', "");
-    Error('\p{Is_Sc= /a/Kana}');
-    Error('\P{Is_Sc= /a/Kana}');
+    Error('\p{Is_Script:/a/ _Katakana}');
+    Error('\P{Is_Script:/a/ _Katakana}');
+    Expect(1, 110951, '\p{Is_Script:katakana}', "");
+    Expect(0, 110951, '\p{^Is_Script:katakana}', "");
+    Expect(0, 110951, '\P{Is_Script:katakana}', "");
+    Expect(1, 110951, '\P{^Is_Script:katakana}', "");
+    Expect(0, 110952, '\p{Is_Script:katakana}', "");
+    Expect(1, 110952, '\p{^Is_Script:katakana}', "");
+    Expect(1, 110952, '\P{Is_Script:katakana}', "");
+    Expect(0, 110952, '\P{^Is_Script:katakana}', "");
+    Expect(1, 110951, '\p{Is_Script=KATAKANA}', "");
+    Expect(0, 110951, '\p{^Is_Script=KATAKANA}', "");
+    Expect(0, 110951, '\P{Is_Script=KATAKANA}', "");
+    Expect(1, 110951, '\P{^Is_Script=KATAKANA}', "");
+    Expect(0, 110952, '\p{Is_Script=KATAKANA}', "");
+    Expect(1, 110952, '\p{^Is_Script=KATAKANA}', "");
+    Expect(1, 110952, '\P{Is_Script=KATAKANA}', "");
+    Expect(0, 110952, '\P{^Is_Script=KATAKANA}', "");
+    Error('\p{Is_Sc=-:=KANA}');
+    Error('\P{Is_Sc=-:=KANA}');
     Expect(1, 110951, '\p{Is_Sc=kana}', "");
     Expect(0, 110951, '\p{^Is_Sc=kana}', "");
     Expect(0, 110951, '\P{Is_Sc=kana}', "");
@@ -133253,16 +134437,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110952, '\p{^Is_Sc=kana}', "");
     Expect(1, 110952, '\P{Is_Sc=kana}', "");
     Expect(0, 110952, '\P{^Is_Sc=kana}', "");
-    Expect(1, 110951, '\p{Is_Sc=	_kana}', "");
-    Expect(0, 110951, '\p{^Is_Sc=	_kana}', "");
-    Expect(0, 110951, '\P{Is_Sc=	_kana}', "");
-    Expect(1, 110951, '\P{^Is_Sc=	_kana}', "");
-    Expect(0, 110952, '\p{Is_Sc=	_kana}', "");
-    Expect(1, 110952, '\p{^Is_Sc=	_kana}', "");
-    Expect(1, 110952, '\P{Is_Sc=	_kana}', "");
-    Expect(0, 110952, '\P{^Is_Sc=	_kana}', "");
-    Error('\p{Script:	_ Kharoshthi/a/}');
-    Error('\P{Script:	_ Kharoshthi/a/}');
+    Expect(1, 110951, '\p{Is_Sc: Kana}', "");
+    Expect(0, 110951, '\p{^Is_Sc: Kana}', "");
+    Expect(0, 110951, '\P{Is_Sc: Kana}', "");
+    Expect(1, 110951, '\P{^Is_Sc: Kana}', "");
+    Expect(0, 110952, '\p{Is_Sc: Kana}', "");
+    Expect(1, 110952, '\p{^Is_Sc: Kana}', "");
+    Expect(1, 110952, '\P{Is_Sc: Kana}', "");
+    Expect(0, 110952, '\P{^Is_Sc: Kana}', "");
+    Error('\p{Script= Kawi:=}');
+    Error('\P{Script= Kawi:=}');
+    Expect(1, 73561, '\p{Script=:\AKawi\z:}', "");;
+    Expect(0, 73562, '\p{Script=:\AKawi\z:}', "");;
+    Expect(1, 73561, '\p{Script=kawi}', "");
+    Expect(0, 73561, '\p{^Script=kawi}', "");
+    Expect(0, 73561, '\P{Script=kawi}', "");
+    Expect(1, 73561, '\P{^Script=kawi}', "");
+    Expect(0, 73562, '\p{Script=kawi}', "");
+    Expect(1, 73562, '\p{^Script=kawi}', "");
+    Expect(1, 73562, '\P{Script=kawi}', "");
+    Expect(0, 73562, '\P{^Script=kawi}', "");
+    Expect(1, 73561, '\p{Script=:\Akawi\z:}', "");;
+    Expect(0, 73562, '\p{Script=:\Akawi\z:}', "");;
+    Expect(1, 73561, '\p{Script=-	Kawi}', "");
+    Expect(0, 73561, '\p{^Script=-	Kawi}', "");
+    Expect(0, 73561, '\P{Script=-	Kawi}', "");
+    Expect(1, 73561, '\P{^Script=-	Kawi}', "");
+    Expect(0, 73562, '\p{Script=-	Kawi}', "");
+    Expect(1, 73562, '\p{^Script=-	Kawi}', "");
+    Expect(1, 73562, '\P{Script=-	Kawi}', "");
+    Expect(0, 73562, '\P{^Script=-	Kawi}', "");
+    Error('\p{Sc=-	Kawi:=}');
+    Error('\P{Sc=-	Kawi:=}');
+    Expect(1, 73561, '\p{Sc=:\AKawi\z:}', "");;
+    Expect(0, 73562, '\p{Sc=:\AKawi\z:}', "");;
+    Expect(1, 73561, '\p{Sc=kawi}', "");
+    Expect(0, 73561, '\p{^Sc=kawi}', "");
+    Expect(0, 73561, '\P{Sc=kawi}', "");
+    Expect(1, 73561, '\P{^Sc=kawi}', "");
+    Expect(0, 73562, '\p{Sc=kawi}', "");
+    Expect(1, 73562, '\p{^Sc=kawi}', "");
+    Expect(1, 73562, '\P{Sc=kawi}', "");
+    Expect(0, 73562, '\P{^Sc=kawi}', "");
+    Expect(1, 73561, '\p{Sc=:\Akawi\z:}', "");;
+    Expect(0, 73562, '\p{Sc=:\Akawi\z:}', "");;
+    Expect(1, 73561, '\p{Sc=_ KAWI}', "");
+    Expect(0, 73561, '\p{^Sc=_ KAWI}', "");
+    Expect(0, 73561, '\P{Sc=_ KAWI}', "");
+    Expect(1, 73561, '\P{^Sc=_ KAWI}', "");
+    Expect(0, 73562, '\p{Sc=_ KAWI}', "");
+    Expect(1, 73562, '\p{^Sc=_ KAWI}', "");
+    Expect(1, 73562, '\P{Sc=_ KAWI}', "");
+    Expect(0, 73562, '\P{^Sc=_ KAWI}', "");
+    Error('\p{Is_Script=:=KAWI}');
+    Error('\P{Is_Script=:=KAWI}');
+    Expect(1, 73561, '\p{Is_Script=kawi}', "");
+    Expect(0, 73561, '\p{^Is_Script=kawi}', "");
+    Expect(0, 73561, '\P{Is_Script=kawi}', "");
+    Expect(1, 73561, '\P{^Is_Script=kawi}', "");
+    Expect(0, 73562, '\p{Is_Script=kawi}', "");
+    Expect(1, 73562, '\p{^Is_Script=kawi}', "");
+    Expect(1, 73562, '\P{Is_Script=kawi}', "");
+    Expect(0, 73562, '\P{^Is_Script=kawi}', "");
+    Expect(1, 73561, '\p{Is_Script: -Kawi}', "");
+    Expect(0, 73561, '\p{^Is_Script: -Kawi}', "");
+    Expect(0, 73561, '\P{Is_Script: -Kawi}', "");
+    Expect(1, 73561, '\P{^Is_Script: -Kawi}', "");
+    Expect(0, 73562, '\p{Is_Script: -Kawi}', "");
+    Expect(1, 73562, '\p{^Is_Script: -Kawi}', "");
+    Expect(1, 73562, '\P{Is_Script: -Kawi}', "");
+    Expect(0, 73562, '\P{^Is_Script: -Kawi}', "");
+    Error('\p{Is_Sc=/a/ 	KAWI}');
+    Error('\P{Is_Sc=/a/ 	KAWI}');
+    Expect(1, 73561, '\p{Is_Sc=kawi}', "");
+    Expect(0, 73561, '\p{^Is_Sc=kawi}', "");
+    Expect(0, 73561, '\P{Is_Sc=kawi}', "");
+    Expect(1, 73561, '\P{^Is_Sc=kawi}', "");
+    Expect(0, 73562, '\p{Is_Sc=kawi}', "");
+    Expect(1, 73562, '\p{^Is_Sc=kawi}', "");
+    Expect(1, 73562, '\P{Is_Sc=kawi}', "");
+    Expect(0, 73562, '\P{^Is_Sc=kawi}', "");
+    Expect(1, 73561, '\p{Is_Sc= 	KAWI}', "");
+    Expect(0, 73561, '\p{^Is_Sc= 	KAWI}', "");
+    Expect(0, 73561, '\P{Is_Sc= 	KAWI}', "");
+    Expect(1, 73561, '\P{^Is_Sc= 	KAWI}', "");
+    Expect(0, 73562, '\p{Is_Sc= 	KAWI}', "");
+    Expect(1, 73562, '\p{^Is_Sc= 	KAWI}', "");
+    Expect(1, 73562, '\P{Is_Sc= 	KAWI}', "");
+    Expect(0, 73562, '\P{^Is_Sc= 	KAWI}', "");
+    Error('\p{Script=:=	 Kharoshthi}');
+    Error('\P{Script=:=	 Kharoshthi}');
     Expect(1, 68184, '\p{Script=:\AKharoshthi\z:}', "");;
     Expect(0, 68185, '\p{Script=:\AKharoshthi\z:}', "");;
     Expect(1, 68184, '\p{Script=kharoshthi}', "");
@@ -133275,16 +134539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68185, '\P{^Script=kharoshthi}', "");
     Expect(1, 68184, '\p{Script=:\Akharoshthi\z:}', "");;
     Expect(0, 68185, '\p{Script=:\Akharoshthi\z:}', "");;
-    Expect(1, 68184, '\p{Script:   	-Kharoshthi}', "");
-    Expect(0, 68184, '\p{^Script:   	-Kharoshthi}', "");
-    Expect(0, 68184, '\P{Script:   	-Kharoshthi}', "");
-    Expect(1, 68184, '\P{^Script:   	-Kharoshthi}', "");
-    Expect(0, 68185, '\p{Script:   	-Kharoshthi}', "");
-    Expect(1, 68185, '\p{^Script:   	-Kharoshthi}', "");
-    Expect(1, 68185, '\P{Script:   	-Kharoshthi}', "");
-    Expect(0, 68185, '\P{^Script:   	-Kharoshthi}', "");
-    Error('\p{Sc: /a/Khar}');
-    Error('\P{Sc: /a/Khar}');
+    Expect(1, 68184, '\p{Script=	Kharoshthi}', "");
+    Expect(0, 68184, '\p{^Script=	Kharoshthi}', "");
+    Expect(0, 68184, '\P{Script=	Kharoshthi}', "");
+    Expect(1, 68184, '\P{^Script=	Kharoshthi}', "");
+    Expect(0, 68185, '\p{Script=	Kharoshthi}', "");
+    Expect(1, 68185, '\p{^Script=	Kharoshthi}', "");
+    Expect(1, 68185, '\P{Script=	Kharoshthi}', "");
+    Expect(0, 68185, '\P{^Script=	Kharoshthi}', "");
+    Error('\p{Sc=:= 	khar}');
+    Error('\P{Sc=:= 	khar}');
     Expect(1, 68184, '\p{Sc=:\AKhar\z:}', "");;
     Expect(0, 68185, '\p{Sc=:\AKhar\z:}', "");;
     Expect(1, 68184, '\p{Sc=khar}', "");
@@ -133297,16 +134561,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68185, '\P{^Sc=khar}', "");
     Expect(1, 68184, '\p{Sc=:\Akhar\z:}', "");;
     Expect(0, 68185, '\p{Sc=:\Akhar\z:}', "");;
-    Expect(1, 68184, '\p{Sc=__Khar}', "");
-    Expect(0, 68184, '\p{^Sc=__Khar}', "");
-    Expect(0, 68184, '\P{Sc=__Khar}', "");
-    Expect(1, 68184, '\P{^Sc=__Khar}', "");
-    Expect(0, 68185, '\p{Sc=__Khar}', "");
-    Expect(1, 68185, '\p{^Sc=__Khar}', "");
-    Expect(1, 68185, '\P{Sc=__Khar}', "");
-    Expect(0, 68185, '\P{^Sc=__Khar}', "");
-    Error('\p{Is_Script=	kharoshthi/a/}');
-    Error('\P{Is_Script=	kharoshthi/a/}');
+    Expect(1, 68184, '\p{Sc:	-Khar}', "");
+    Expect(0, 68184, '\p{^Sc:	-Khar}', "");
+    Expect(0, 68184, '\P{Sc:	-Khar}', "");
+    Expect(1, 68184, '\P{^Sc:	-Khar}', "");
+    Expect(0, 68185, '\p{Sc:	-Khar}', "");
+    Expect(1, 68185, '\p{^Sc:	-Khar}', "");
+    Expect(1, 68185, '\P{Sc:	-Khar}', "");
+    Expect(0, 68185, '\P{^Sc:	-Khar}', "");
+    Error('\p{Is_Script=	/a/Kharoshthi}');
+    Error('\P{Is_Script=	/a/Kharoshthi}');
     Expect(1, 68184, '\p{Is_Script=kharoshthi}', "");
     Expect(0, 68184, '\p{^Is_Script=kharoshthi}', "");
     Expect(0, 68184, '\P{Is_Script=kharoshthi}', "");
@@ -133315,16 +134579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68185, '\p{^Is_Script=kharoshthi}', "");
     Expect(1, 68185, '\P{Is_Script=kharoshthi}', "");
     Expect(0, 68185, '\P{^Is_Script=kharoshthi}', "");
-    Expect(1, 68184, '\p{Is_Script=  Kharoshthi}', "");
-    Expect(0, 68184, '\p{^Is_Script=  Kharoshthi}', "");
-    Expect(0, 68184, '\P{Is_Script=  Kharoshthi}', "");
-    Expect(1, 68184, '\P{^Is_Script=  Kharoshthi}', "");
-    Expect(0, 68185, '\p{Is_Script=  Kharoshthi}', "");
-    Expect(1, 68185, '\p{^Is_Script=  Kharoshthi}', "");
-    Expect(1, 68185, '\P{Is_Script=  Kharoshthi}', "");
-    Expect(0, 68185, '\P{^Is_Script=  Kharoshthi}', "");
-    Error('\p{Is_Sc:   - KHAR:=}');
-    Error('\P{Is_Sc:   - KHAR:=}');
+    Expect(1, 68184, '\p{Is_Script=_KHAROSHTHI}', "");
+    Expect(0, 68184, '\p{^Is_Script=_KHAROSHTHI}', "");
+    Expect(0, 68184, '\P{Is_Script=_KHAROSHTHI}', "");
+    Expect(1, 68184, '\P{^Is_Script=_KHAROSHTHI}', "");
+    Expect(0, 68185, '\p{Is_Script=_KHAROSHTHI}', "");
+    Expect(1, 68185, '\p{^Is_Script=_KHAROSHTHI}', "");
+    Expect(1, 68185, '\P{Is_Script=_KHAROSHTHI}', "");
+    Expect(0, 68185, '\P{^Is_Script=_KHAROSHTHI}', "");
+    Error('\p{Is_Sc=Khar/a/}');
+    Error('\P{Is_Sc=Khar/a/}');
     Expect(1, 68184, '\p{Is_Sc=khar}', "");
     Expect(0, 68184, '\p{^Is_Sc=khar}', "");
     Expect(0, 68184, '\P{Is_Sc=khar}', "");
@@ -133333,16 +134597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68185, '\p{^Is_Sc=khar}', "");
     Expect(1, 68185, '\P{Is_Sc=khar}', "");
     Expect(0, 68185, '\P{^Is_Sc=khar}', "");
-    Expect(1, 68184, '\p{Is_Sc= -KHAR}', "");
-    Expect(0, 68184, '\p{^Is_Sc= -KHAR}', "");
-    Expect(0, 68184, '\P{Is_Sc= -KHAR}', "");
-    Expect(1, 68184, '\P{^Is_Sc= -KHAR}', "");
-    Expect(0, 68185, '\p{Is_Sc= -KHAR}', "");
-    Expect(1, 68185, '\p{^Is_Sc= -KHAR}', "");
-    Expect(1, 68185, '\P{Is_Sc= -KHAR}', "");
-    Expect(0, 68185, '\P{^Is_Sc= -KHAR}', "");
-    Error('\p{Script=-/a/Khmer}');
-    Error('\P{Script=-/a/Khmer}');
+    Expect(1, 68184, '\p{Is_Sc:  _Khar}', "");
+    Expect(0, 68184, '\p{^Is_Sc:  _Khar}', "");
+    Expect(0, 68184, '\P{Is_Sc:  _Khar}', "");
+    Expect(1, 68184, '\P{^Is_Sc:  _Khar}', "");
+    Expect(0, 68185, '\p{Is_Sc:  _Khar}', "");
+    Expect(1, 68185, '\p{^Is_Sc:  _Khar}', "");
+    Expect(1, 68185, '\P{Is_Sc:  _Khar}', "");
+    Expect(0, 68185, '\P{^Is_Sc:  _Khar}', "");
+    Error('\p{Script=:=	khmer}');
+    Error('\P{Script=:=	khmer}');
     Expect(1, 6655, '\p{Script=:\AKhmer\z:}', "");;
     Expect(0, 6656, '\p{Script=:\AKhmer\z:}', "");;
     Expect(1, 6655, '\p{Script=khmer}', "");
@@ -133355,16 +134619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6656, '\P{^Script=khmer}', "");
     Expect(1, 6655, '\p{Script=:\Akhmer\z:}', "");;
     Expect(0, 6656, '\p{Script=:\Akhmer\z:}', "");;
-    Expect(1, 6655, '\p{Script=_-Khmer}', "");
-    Expect(0, 6655, '\p{^Script=_-Khmer}', "");
-    Expect(0, 6655, '\P{Script=_-Khmer}', "");
-    Expect(1, 6655, '\P{^Script=_-Khmer}', "");
-    Expect(0, 6656, '\p{Script=_-Khmer}', "");
-    Expect(1, 6656, '\p{^Script=_-Khmer}', "");
-    Expect(1, 6656, '\P{Script=_-Khmer}', "");
-    Expect(0, 6656, '\P{^Script=_-Khmer}', "");
-    Error('\p{Sc=/a/--khmr}');
-    Error('\P{Sc=/a/--khmr}');
+    Expect(1, 6655, '\p{Script=	 khmer}', "");
+    Expect(0, 6655, '\p{^Script=	 khmer}', "");
+    Expect(0, 6655, '\P{Script=	 khmer}', "");
+    Expect(1, 6655, '\P{^Script=	 khmer}', "");
+    Expect(0, 6656, '\p{Script=	 khmer}', "");
+    Expect(1, 6656, '\p{^Script=	 khmer}', "");
+    Expect(1, 6656, '\P{Script=	 khmer}', "");
+    Expect(0, 6656, '\P{^Script=	 khmer}', "");
+    Error('\p{Sc=:=_ khmr}');
+    Error('\P{Sc=:=_ khmr}');
     Expect(1, 6655, '\p{Sc=:\AKhmr\z:}', "");;
     Expect(0, 6656, '\p{Sc=:\AKhmr\z:}', "");;
     Expect(1, 6655, '\p{Sc=khmr}', "");
@@ -133377,34 +134641,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6656, '\P{^Sc=khmr}', "");
     Expect(1, 6655, '\p{Sc=:\Akhmr\z:}', "");;
     Expect(0, 6656, '\p{Sc=:\Akhmr\z:}', "");;
-    Expect(1, 6655, '\p{Sc=	khmr}', "");
-    Expect(0, 6655, '\p{^Sc=	khmr}', "");
-    Expect(0, 6655, '\P{Sc=	khmr}', "");
-    Expect(1, 6655, '\P{^Sc=	khmr}', "");
-    Expect(0, 6656, '\p{Sc=	khmr}', "");
-    Expect(1, 6656, '\p{^Sc=	khmr}', "");
-    Expect(1, 6656, '\P{Sc=	khmr}', "");
-    Expect(0, 6656, '\P{^Sc=	khmr}', "");
-    Error('\p{Is_Script=/a/--Khmer}');
-    Error('\P{Is_Script=/a/--Khmer}');
-    Expect(1, 6655, '\p{Is_Script=khmer}', "");
-    Expect(0, 6655, '\p{^Is_Script=khmer}', "");
-    Expect(0, 6655, '\P{Is_Script=khmer}', "");
-    Expect(1, 6655, '\P{^Is_Script=khmer}', "");
-    Expect(0, 6656, '\p{Is_Script=khmer}', "");
-    Expect(1, 6656, '\p{^Is_Script=khmer}', "");
-    Expect(1, 6656, '\P{Is_Script=khmer}', "");
-    Expect(0, 6656, '\P{^Is_Script=khmer}', "");
-    Expect(1, 6655, '\p{Is_Script=--Khmer}', "");
-    Expect(0, 6655, '\p{^Is_Script=--Khmer}', "");
-    Expect(0, 6655, '\P{Is_Script=--Khmer}', "");
-    Expect(1, 6655, '\P{^Is_Script=--Khmer}', "");
-    Expect(0, 6656, '\p{Is_Script=--Khmer}', "");
-    Expect(1, 6656, '\p{^Is_Script=--Khmer}', "");
-    Expect(1, 6656, '\P{Is_Script=--Khmer}', "");
-    Expect(0, 6656, '\P{^Is_Script=--Khmer}', "");
-    Error('\p{Is_Sc=:=khmr}');
-    Error('\P{Is_Sc=:=khmr}');
+    Expect(1, 6655, '\p{Sc=_KHMR}', "");
+    Expect(0, 6655, '\p{^Sc=_KHMR}', "");
+    Expect(0, 6655, '\P{Sc=_KHMR}', "");
+    Expect(1, 6655, '\P{^Sc=_KHMR}', "");
+    Expect(0, 6656, '\p{Sc=_KHMR}', "");
+    Expect(1, 6656, '\p{^Sc=_KHMR}', "");
+    Expect(1, 6656, '\P{Sc=_KHMR}', "");
+    Expect(0, 6656, '\P{^Sc=_KHMR}', "");
+    Error('\p{Is_Script=/a/	khmer}');
+    Error('\P{Is_Script=/a/	khmer}');
+    Expect(1, 6655, '\p{Is_Script: khmer}', "");
+    Expect(0, 6655, '\p{^Is_Script: khmer}', "");
+    Expect(0, 6655, '\P{Is_Script: khmer}', "");
+    Expect(1, 6655, '\P{^Is_Script: khmer}', "");
+    Expect(0, 6656, '\p{Is_Script: khmer}', "");
+    Expect(1, 6656, '\p{^Is_Script: khmer}', "");
+    Expect(1, 6656, '\P{Is_Script: khmer}', "");
+    Expect(0, 6656, '\P{^Is_Script: khmer}', "");
+    Expect(1, 6655, '\p{Is_Script=	_Khmer}', "");
+    Expect(0, 6655, '\p{^Is_Script=	_Khmer}', "");
+    Expect(0, 6655, '\P{Is_Script=	_Khmer}', "");
+    Expect(1, 6655, '\P{^Is_Script=	_Khmer}', "");
+    Expect(0, 6656, '\p{Is_Script=	_Khmer}', "");
+    Expect(1, 6656, '\p{^Is_Script=	_Khmer}', "");
+    Expect(1, 6656, '\P{Is_Script=	_Khmer}', "");
+    Expect(0, 6656, '\P{^Is_Script=	_Khmer}', "");
+    Error('\p{Is_Sc:	/a/--Khmr}');
+    Error('\P{Is_Sc:	/a/--Khmr}');
     Expect(1, 6655, '\p{Is_Sc=khmr}', "");
     Expect(0, 6655, '\p{^Is_Sc=khmr}', "");
     Expect(0, 6655, '\P{Is_Sc=khmr}', "");
@@ -133413,96 +134677,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6656, '\p{^Is_Sc=khmr}', "");
     Expect(1, 6656, '\P{Is_Sc=khmr}', "");
     Expect(0, 6656, '\P{^Is_Sc=khmr}', "");
-    Expect(1, 6655, '\p{Is_Sc=	Khmr}', "");
-    Expect(0, 6655, '\p{^Is_Sc=	Khmr}', "");
-    Expect(0, 6655, '\P{Is_Sc=	Khmr}', "");
-    Expect(1, 6655, '\P{^Is_Sc=	Khmr}', "");
-    Expect(0, 6656, '\p{Is_Sc=	Khmr}', "");
-    Expect(1, 6656, '\p{^Is_Sc=	Khmr}', "");
-    Expect(1, 6656, '\P{Is_Sc=	Khmr}', "");
-    Expect(0, 6656, '\P{^Is_Sc=	Khmr}', "");
-    Error('\p{Script=- Khojki/a/}');
-    Error('\P{Script=- Khojki/a/}');
-    Expect(1, 70206, '\p{Script=:\AKhojki\z:}', "");;
-    Expect(0, 70207, '\p{Script=:\AKhojki\z:}', "");;
-    Expect(1, 70206, '\p{Script: khojki}', "");
-    Expect(0, 70206, '\p{^Script: khojki}', "");
-    Expect(0, 70206, '\P{Script: khojki}', "");
-    Expect(1, 70206, '\P{^Script: khojki}', "");
-    Expect(0, 70207, '\p{Script: khojki}', "");
-    Expect(1, 70207, '\p{^Script: khojki}', "");
-    Expect(1, 70207, '\P{Script: khojki}', "");
-    Expect(0, 70207, '\P{^Script: khojki}', "");
-    Expect(1, 70206, '\p{Script=:\Akhojki\z:}', "");;
-    Expect(0, 70207, '\p{Script=:\Akhojki\z:}', "");;
-    Expect(1, 70206, '\p{Script= KHOJKI}', "");
-    Expect(0, 70206, '\p{^Script= KHOJKI}', "");
-    Expect(0, 70206, '\P{Script= KHOJKI}', "");
-    Expect(1, 70206, '\P{^Script= KHOJKI}', "");
-    Expect(0, 70207, '\p{Script= KHOJKI}', "");
-    Expect(1, 70207, '\p{^Script= KHOJKI}', "");
-    Expect(1, 70207, '\P{Script= KHOJKI}', "");
-    Expect(0, 70207, '\P{^Script= KHOJKI}', "");
-    Error('\p{Sc:/a/ khoj}');
-    Error('\P{Sc:/a/ khoj}');
-    Expect(1, 70206, '\p{Sc=:\AKhoj\z:}', "");;
-    Expect(0, 70207, '\p{Sc=:\AKhoj\z:}', "");;
-    Expect(1, 70206, '\p{Sc=khoj}', "");
-    Expect(0, 70206, '\p{^Sc=khoj}', "");
-    Expect(0, 70206, '\P{Sc=khoj}', "");
-    Expect(1, 70206, '\P{^Sc=khoj}', "");
-    Expect(0, 70207, '\p{Sc=khoj}', "");
-    Expect(1, 70207, '\p{^Sc=khoj}', "");
-    Expect(1, 70207, '\P{Sc=khoj}', "");
-    Expect(0, 70207, '\P{^Sc=khoj}', "");
-    Expect(1, 70206, '\p{Sc=:\Akhoj\z:}', "");;
-    Expect(0, 70207, '\p{Sc=:\Akhoj\z:}', "");;
-    Expect(1, 70206, '\p{Sc=		Khoj}', "");
-    Expect(0, 70206, '\p{^Sc=		Khoj}', "");
-    Expect(0, 70206, '\P{Sc=		Khoj}', "");
-    Expect(1, 70206, '\P{^Sc=		Khoj}', "");
-    Expect(0, 70207, '\p{Sc=		Khoj}', "");
-    Expect(1, 70207, '\p{^Sc=		Khoj}', "");
-    Expect(1, 70207, '\P{Sc=		Khoj}', "");
-    Expect(0, 70207, '\P{^Sc=		Khoj}', "");
-    Error('\p{Is_Script=	KHOJKI:=}');
-    Error('\P{Is_Script=	KHOJKI:=}');
-    Expect(1, 70206, '\p{Is_Script=khojki}', "");
-    Expect(0, 70206, '\p{^Is_Script=khojki}', "");
-    Expect(0, 70206, '\P{Is_Script=khojki}', "");
-    Expect(1, 70206, '\P{^Is_Script=khojki}', "");
-    Expect(0, 70207, '\p{Is_Script=khojki}', "");
-    Expect(1, 70207, '\p{^Is_Script=khojki}', "");
-    Expect(1, 70207, '\P{Is_Script=khojki}', "");
-    Expect(0, 70207, '\P{^Is_Script=khojki}', "");
-    Expect(1, 70206, '\p{Is_Script=	khojki}', "");
-    Expect(0, 70206, '\p{^Is_Script=	khojki}', "");
-    Expect(0, 70206, '\P{Is_Script=	khojki}', "");
-    Expect(1, 70206, '\P{^Is_Script=	khojki}', "");
-    Expect(0, 70207, '\p{Is_Script=	khojki}', "");
-    Expect(1, 70207, '\p{^Is_Script=	khojki}', "");
-    Expect(1, 70207, '\P{Is_Script=	khojki}', "");
-    Expect(0, 70207, '\P{^Is_Script=	khojki}', "");
-    Error('\p{Is_Sc=- Khoj/a/}');
-    Error('\P{Is_Sc=- Khoj/a/}');
-    Expect(1, 70206, '\p{Is_Sc=khoj}', "");
-    Expect(0, 70206, '\p{^Is_Sc=khoj}', "");
-    Expect(0, 70206, '\P{Is_Sc=khoj}', "");
-    Expect(1, 70206, '\P{^Is_Sc=khoj}', "");
-    Expect(0, 70207, '\p{Is_Sc=khoj}', "");
-    Expect(1, 70207, '\p{^Is_Sc=khoj}', "");
-    Expect(1, 70207, '\P{Is_Sc=khoj}', "");
-    Expect(0, 70207, '\P{^Is_Sc=khoj}', "");
-    Expect(1, 70206, '\p{Is_Sc:   _ KHOJ}', "");
-    Expect(0, 70206, '\p{^Is_Sc:   _ KHOJ}', "");
-    Expect(0, 70206, '\P{Is_Sc:   _ KHOJ}', "");
-    Expect(1, 70206, '\P{^Is_Sc:   _ KHOJ}', "");
-    Expect(0, 70207, '\p{Is_Sc:   _ KHOJ}', "");
-    Expect(1, 70207, '\p{^Is_Sc:   _ KHOJ}', "");
-    Expect(1, 70207, '\P{Is_Sc:   _ KHOJ}', "");
-    Expect(0, 70207, '\P{^Is_Sc:   _ KHOJ}', "");
-    Error('\p{Script=  khitan_small_script:=}');
-    Error('\P{Script=  khitan_small_script:=}');
+    Expect(1, 6655, '\p{Is_Sc=	_khmr}', "");
+    Expect(0, 6655, '\p{^Is_Sc=	_khmr}', "");
+    Expect(0, 6655, '\P{Is_Sc=	_khmr}', "");
+    Expect(1, 6655, '\P{^Is_Sc=	_khmr}', "");
+    Expect(0, 6656, '\p{Is_Sc=	_khmr}', "");
+    Expect(1, 6656, '\p{^Is_Sc=	_khmr}', "");
+    Expect(1, 6656, '\P{Is_Sc=	_khmr}', "");
+    Expect(0, 6656, '\P{^Is_Sc=	_khmr}', "");
+    Error('\p{Script= Khojki/a/}');
+    Error('\P{Script= Khojki/a/}');
+    Expect(1, 70209, '\p{Script=:\AKhojki\z:}', "");;
+    Expect(0, 70210, '\p{Script=:\AKhojki\z:}', "");;
+    Expect(1, 70209, '\p{Script=khojki}', "");
+    Expect(0, 70209, '\p{^Script=khojki}', "");
+    Expect(0, 70209, '\P{Script=khojki}', "");
+    Expect(1, 70209, '\P{^Script=khojki}', "");
+    Expect(0, 70210, '\p{Script=khojki}', "");
+    Expect(1, 70210, '\p{^Script=khojki}', "");
+    Expect(1, 70210, '\P{Script=khojki}', "");
+    Expect(0, 70210, '\P{^Script=khojki}', "");
+    Expect(1, 70209, '\p{Script=:\Akhojki\z:}', "");;
+    Expect(0, 70210, '\p{Script=:\Akhojki\z:}', "");;
+    Expect(1, 70209, '\p{Script:		Khojki}', "");
+    Expect(0, 70209, '\p{^Script:		Khojki}', "");
+    Expect(0, 70209, '\P{Script:		Khojki}', "");
+    Expect(1, 70209, '\P{^Script:		Khojki}', "");
+    Expect(0, 70210, '\p{Script:		Khojki}', "");
+    Expect(1, 70210, '\p{^Script:		Khojki}', "");
+    Expect(1, 70210, '\P{Script:		Khojki}', "");
+    Expect(0, 70210, '\P{^Script:		Khojki}', "");
+    Error('\p{Sc=	/a/Khoj}');
+    Error('\P{Sc=	/a/Khoj}');
+    Expect(1, 70209, '\p{Sc=:\AKhoj\z:}', "");;
+    Expect(0, 70210, '\p{Sc=:\AKhoj\z:}', "");;
+    Expect(1, 70209, '\p{Sc=khoj}', "");
+    Expect(0, 70209, '\p{^Sc=khoj}', "");
+    Expect(0, 70209, '\P{Sc=khoj}', "");
+    Expect(1, 70209, '\P{^Sc=khoj}', "");
+    Expect(0, 70210, '\p{Sc=khoj}', "");
+    Expect(1, 70210, '\p{^Sc=khoj}', "");
+    Expect(1, 70210, '\P{Sc=khoj}', "");
+    Expect(0, 70210, '\P{^Sc=khoj}', "");
+    Expect(1, 70209, '\p{Sc=:\Akhoj\z:}', "");;
+    Expect(0, 70210, '\p{Sc=:\Akhoj\z:}', "");;
+    Expect(1, 70209, '\p{Sc:	 KHOJ}', "");
+    Expect(0, 70209, '\p{^Sc:	 KHOJ}', "");
+    Expect(0, 70209, '\P{Sc:	 KHOJ}', "");
+    Expect(1, 70209, '\P{^Sc:	 KHOJ}', "");
+    Expect(0, 70210, '\p{Sc:	 KHOJ}', "");
+    Expect(1, 70210, '\p{^Sc:	 KHOJ}', "");
+    Expect(1, 70210, '\P{Sc:	 KHOJ}', "");
+    Expect(0, 70210, '\P{^Sc:	 KHOJ}', "");
+    Error('\p{Is_Script=:=_	khojki}');
+    Error('\P{Is_Script=:=_	khojki}');
+    Expect(1, 70209, '\p{Is_Script=khojki}', "");
+    Expect(0, 70209, '\p{^Is_Script=khojki}', "");
+    Expect(0, 70209, '\P{Is_Script=khojki}', "");
+    Expect(1, 70209, '\P{^Is_Script=khojki}', "");
+    Expect(0, 70210, '\p{Is_Script=khojki}', "");
+    Expect(1, 70210, '\p{^Is_Script=khojki}', "");
+    Expect(1, 70210, '\P{Is_Script=khojki}', "");
+    Expect(0, 70210, '\P{^Is_Script=khojki}', "");
+    Expect(1, 70209, '\p{Is_Script=- Khojki}', "");
+    Expect(0, 70209, '\p{^Is_Script=- Khojki}', "");
+    Expect(0, 70209, '\P{Is_Script=- Khojki}', "");
+    Expect(1, 70209, '\P{^Is_Script=- Khojki}', "");
+    Expect(0, 70210, '\p{Is_Script=- Khojki}', "");
+    Expect(1, 70210, '\p{^Is_Script=- Khojki}', "");
+    Expect(1, 70210, '\P{Is_Script=- Khojki}', "");
+    Expect(0, 70210, '\P{^Is_Script=- Khojki}', "");
+    Error('\p{Is_Sc=/a/_ khoj}');
+    Error('\P{Is_Sc=/a/_ khoj}');
+    Expect(1, 70209, '\p{Is_Sc=khoj}', "");
+    Expect(0, 70209, '\p{^Is_Sc=khoj}', "");
+    Expect(0, 70209, '\P{Is_Sc=khoj}', "");
+    Expect(1, 70209, '\P{^Is_Sc=khoj}', "");
+    Expect(0, 70210, '\p{Is_Sc=khoj}', "");
+    Expect(1, 70210, '\p{^Is_Sc=khoj}', "");
+    Expect(1, 70210, '\P{Is_Sc=khoj}', "");
+    Expect(0, 70210, '\P{^Is_Sc=khoj}', "");
+    Expect(1, 70209, '\p{Is_Sc=-	Khoj}', "");
+    Expect(0, 70209, '\p{^Is_Sc=-	Khoj}', "");
+    Expect(0, 70209, '\P{Is_Sc=-	Khoj}', "");
+    Expect(1, 70209, '\P{^Is_Sc=-	Khoj}', "");
+    Expect(0, 70210, '\p{Is_Sc=-	Khoj}', "");
+    Expect(1, 70210, '\p{^Is_Sc=-	Khoj}', "");
+    Expect(1, 70210, '\P{Is_Sc=-	Khoj}', "");
+    Expect(0, 70210, '\P{^Is_Sc=-	Khoj}', "");
+    Error('\p{Script=/a/Khitan_small_SCRIPT}');
+    Error('\P{Script=/a/Khitan_small_SCRIPT}');
     Expect(1, 101589, '\p{Script=:\AKhitan_Small_Script\z:}', "");;
     Expect(0, 101590, '\p{Script=:\AKhitan_Small_Script\z:}', "");;
     Expect(1, 101589, '\p{Script=khitansmallscript}', "");
@@ -133515,38 +134779,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 101590, '\P{^Script=khitansmallscript}', "");
     Expect(1, 101589, '\p{Script=:\Akhitansmallscript\z:}', "");;
     Expect(0, 101590, '\p{Script=:\Akhitansmallscript\z:}', "");;
-    Expect(1, 101589, '\p{Script=		Khitan_small_script}', "");
-    Expect(0, 101589, '\p{^Script=		Khitan_small_script}', "");
-    Expect(0, 101589, '\P{Script=		Khitan_small_script}', "");
-    Expect(1, 101589, '\P{^Script=		Khitan_small_script}', "");
-    Expect(0, 101590, '\p{Script=		Khitan_small_script}', "");
-    Expect(1, 101590, '\p{^Script=		Khitan_small_script}', "");
-    Expect(1, 101590, '\P{Script=		Khitan_small_script}', "");
-    Expect(0, 101590, '\P{^Script=		Khitan_small_script}', "");
-    Error('\p{Sc=_	Kits:=}');
-    Error('\P{Sc=_	Kits:=}');
+    Expect(1, 101589, '\p{Script=	Khitan_Small_SCRIPT}', "");
+    Expect(0, 101589, '\p{^Script=	Khitan_Small_SCRIPT}', "");
+    Expect(0, 101589, '\P{Script=	Khitan_Small_SCRIPT}', "");
+    Expect(1, 101589, '\P{^Script=	Khitan_Small_SCRIPT}', "");
+    Expect(0, 101590, '\p{Script=	Khitan_Small_SCRIPT}', "");
+    Expect(1, 101590, '\p{^Script=	Khitan_Small_SCRIPT}', "");
+    Expect(1, 101590, '\P{Script=	Khitan_Small_SCRIPT}', "");
+    Expect(0, 101590, '\P{^Script=	Khitan_Small_SCRIPT}', "");
+    Error('\p{Sc= /a/kits}');
+    Error('\P{Sc= /a/kits}');
     Expect(1, 101589, '\p{Sc=:\AKits\z:}', "");;
     Expect(0, 101590, '\p{Sc=:\AKits\z:}', "");;
-    Expect(1, 101589, '\p{Sc=kits}', "");
-    Expect(0, 101589, '\p{^Sc=kits}', "");
-    Expect(0, 101589, '\P{Sc=kits}', "");
-    Expect(1, 101589, '\P{^Sc=kits}', "");
-    Expect(0, 101590, '\p{Sc=kits}', "");
-    Expect(1, 101590, '\p{^Sc=kits}', "");
-    Expect(1, 101590, '\P{Sc=kits}', "");
-    Expect(0, 101590, '\P{^Sc=kits}', "");
+    Expect(1, 101589, '\p{Sc:	kits}', "");
+    Expect(0, 101589, '\p{^Sc:	kits}', "");
+    Expect(0, 101589, '\P{Sc:	kits}', "");
+    Expect(1, 101589, '\P{^Sc:	kits}', "");
+    Expect(0, 101590, '\p{Sc:	kits}', "");
+    Expect(1, 101590, '\p{^Sc:	kits}', "");
+    Expect(1, 101590, '\P{Sc:	kits}', "");
+    Expect(0, 101590, '\P{^Sc:	kits}', "");
     Expect(1, 101589, '\p{Sc=:\Akits\z:}', "");;
     Expect(0, 101590, '\p{Sc=:\Akits\z:}', "");;
-    Expect(1, 101589, '\p{Sc= kits}', "");
-    Expect(0, 101589, '\p{^Sc= kits}', "");
-    Expect(0, 101589, '\P{Sc= kits}', "");
-    Expect(1, 101589, '\P{^Sc= kits}', "");
-    Expect(0, 101590, '\p{Sc= kits}', "");
-    Expect(1, 101590, '\p{^Sc= kits}', "");
-    Expect(1, 101590, '\P{Sc= kits}', "");
-    Expect(0, 101590, '\P{^Sc= kits}', "");
-    Error('\p{Is_Script=	khitan_Small_Script/a/}');
-    Error('\P{Is_Script=	khitan_Small_Script/a/}');
+    Expect(1, 101589, '\p{Sc:	 _KITS}', "");
+    Expect(0, 101589, '\p{^Sc:	 _KITS}', "");
+    Expect(0, 101589, '\P{Sc:	 _KITS}', "");
+    Expect(1, 101589, '\P{^Sc:	 _KITS}', "");
+    Expect(0, 101590, '\p{Sc:	 _KITS}', "");
+    Expect(1, 101590, '\p{^Sc:	 _KITS}', "");
+    Expect(1, 101590, '\P{Sc:	 _KITS}', "");
+    Expect(0, 101590, '\P{^Sc:	 _KITS}', "");
+    Error('\p{Is_Script::=	KHITAN_Small_Script}');
+    Error('\P{Is_Script::=	KHITAN_Small_Script}');
     Expect(1, 101589, '\p{Is_Script=khitansmallscript}', "");
     Expect(0, 101589, '\p{^Is_Script=khitansmallscript}', "");
     Expect(0, 101589, '\P{Is_Script=khitansmallscript}', "");
@@ -133555,16 +134819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101590, '\p{^Is_Script=khitansmallscript}', "");
     Expect(1, 101590, '\P{Is_Script=khitansmallscript}', "");
     Expect(0, 101590, '\P{^Is_Script=khitansmallscript}', "");
-    Expect(1, 101589, '\p{Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(0, 101589, '\p{^Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(0, 101589, '\P{Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(1, 101589, '\P{^Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(0, 101590, '\p{Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(1, 101590, '\p{^Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(1, 101590, '\P{Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Expect(0, 101590, '\P{^Is_Script:   __Khitan_SMALL_SCRIPT}', "");
-    Error('\p{Is_Sc= /a/kits}');
-    Error('\P{Is_Sc= /a/kits}');
+    Expect(1, 101589, '\p{Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(0, 101589, '\p{^Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(0, 101589, '\P{Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(1, 101589, '\P{^Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(0, 101590, '\p{Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(1, 101590, '\p{^Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(1, 101590, '\P{Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Expect(0, 101590, '\P{^Is_Script=-_Khitan_SMALL_SCRIPT}', "");
+    Error('\p{Is_Sc=:= Kits}');
+    Error('\P{Is_Sc=:= Kits}');
     Expect(1, 101589, '\p{Is_Sc=kits}', "");
     Expect(0, 101589, '\p{^Is_Sc=kits}', "");
     Expect(0, 101589, '\P{Is_Sc=kits}', "");
@@ -133573,96 +134837,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101590, '\p{^Is_Sc=kits}', "");
     Expect(1, 101590, '\P{Is_Sc=kits}', "");
     Expect(0, 101590, '\P{^Is_Sc=kits}', "");
-    Expect(1, 101589, '\p{Is_Sc: -_kits}', "");
-    Expect(0, 101589, '\p{^Is_Sc: -_kits}', "");
-    Expect(0, 101589, '\P{Is_Sc: -_kits}', "");
-    Expect(1, 101589, '\P{^Is_Sc: -_kits}', "");
-    Expect(0, 101590, '\p{Is_Sc: -_kits}', "");
-    Expect(1, 101590, '\p{^Is_Sc: -_kits}', "");
-    Expect(1, 101590, '\P{Is_Sc: -_kits}', "");
-    Expect(0, 101590, '\P{^Is_Sc: -_kits}', "");
-    Error('\p{Script=	:=kannada}');
-    Error('\P{Script=	:=kannada}');
-    Expect(1, 3314, '\p{Script=:\AKannada\z:}', "");;
-    Expect(0, 3315, '\p{Script=:\AKannada\z:}', "");;
-    Expect(1, 3314, '\p{Script=kannada}', "");
-    Expect(0, 3314, '\p{^Script=kannada}', "");
-    Expect(0, 3314, '\P{Script=kannada}', "");
-    Expect(1, 3314, '\P{^Script=kannada}', "");
-    Expect(0, 3315, '\p{Script=kannada}', "");
-    Expect(1, 3315, '\p{^Script=kannada}', "");
-    Expect(1, 3315, '\P{Script=kannada}', "");
-    Expect(0, 3315, '\P{^Script=kannada}', "");
-    Expect(1, 3314, '\p{Script=:\Akannada\z:}', "");;
-    Expect(0, 3315, '\p{Script=:\Akannada\z:}', "");;
-    Expect(1, 3314, '\p{Script=__kannada}', "");
-    Expect(0, 3314, '\p{^Script=__kannada}', "");
-    Expect(0, 3314, '\P{Script=__kannada}', "");
-    Expect(1, 3314, '\P{^Script=__kannada}', "");
-    Expect(0, 3315, '\p{Script=__kannada}', "");
-    Expect(1, 3315, '\p{^Script=__kannada}', "");
-    Expect(1, 3315, '\P{Script=__kannada}', "");
-    Expect(0, 3315, '\P{^Script=__kannada}', "");
-    Error('\p{Sc=:=_	Knda}');
-    Error('\P{Sc=:=_	Knda}');
-    Expect(1, 3314, '\p{Sc=:\AKnda\z:}', "");;
-    Expect(0, 3315, '\p{Sc=:\AKnda\z:}', "");;
-    Expect(1, 3314, '\p{Sc:   knda}', "");
-    Expect(0, 3314, '\p{^Sc:   knda}', "");
-    Expect(0, 3314, '\P{Sc:   knda}', "");
-    Expect(1, 3314, '\P{^Sc:   knda}', "");
-    Expect(0, 3315, '\p{Sc:   knda}', "");
-    Expect(1, 3315, '\p{^Sc:   knda}', "");
-    Expect(1, 3315, '\P{Sc:   knda}', "");
-    Expect(0, 3315, '\P{^Sc:   knda}', "");
-    Expect(1, 3314, '\p{Sc=:\Aknda\z:}', "");;
-    Expect(0, 3315, '\p{Sc=:\Aknda\z:}', "");;
-    Expect(1, 3314, '\p{Sc=-	knda}', "");
-    Expect(0, 3314, '\p{^Sc=-	knda}', "");
-    Expect(0, 3314, '\P{Sc=-	knda}', "");
-    Expect(1, 3314, '\P{^Sc=-	knda}', "");
-    Expect(0, 3315, '\p{Sc=-	knda}', "");
-    Expect(1, 3315, '\p{^Sc=-	knda}', "");
-    Expect(1, 3315, '\P{Sc=-	knda}', "");
-    Expect(0, 3315, '\P{^Sc=-	knda}', "");
-    Error('\p{Is_Script= Kannada/a/}');
-    Error('\P{Is_Script= Kannada/a/}');
-    Expect(1, 3314, '\p{Is_Script=kannada}', "");
-    Expect(0, 3314, '\p{^Is_Script=kannada}', "");
-    Expect(0, 3314, '\P{Is_Script=kannada}', "");
-    Expect(1, 3314, '\P{^Is_Script=kannada}', "");
-    Expect(0, 3315, '\p{Is_Script=kannada}', "");
-    Expect(1, 3315, '\p{^Is_Script=kannada}', "");
-    Expect(1, 3315, '\P{Is_Script=kannada}', "");
-    Expect(0, 3315, '\P{^Is_Script=kannada}', "");
-    Expect(1, 3314, '\p{Is_Script=_	Kannada}', "");
-    Expect(0, 3314, '\p{^Is_Script=_	Kannada}', "");
-    Expect(0, 3314, '\P{Is_Script=_	Kannada}', "");
-    Expect(1, 3314, '\P{^Is_Script=_	Kannada}', "");
-    Expect(0, 3315, '\p{Is_Script=_	Kannada}', "");
-    Expect(1, 3315, '\p{^Is_Script=_	Kannada}', "");
-    Expect(1, 3315, '\P{Is_Script=_	Kannada}', "");
-    Expect(0, 3315, '\P{^Is_Script=_	Kannada}', "");
-    Error('\p{Is_Sc=_/a/Knda}');
-    Error('\P{Is_Sc=_/a/Knda}');
-    Expect(1, 3314, '\p{Is_Sc=knda}', "");
-    Expect(0, 3314, '\p{^Is_Sc=knda}', "");
-    Expect(0, 3314, '\P{Is_Sc=knda}', "");
-    Expect(1, 3314, '\P{^Is_Sc=knda}', "");
-    Expect(0, 3315, '\p{Is_Sc=knda}', "");
-    Expect(1, 3315, '\p{^Is_Sc=knda}', "");
-    Expect(1, 3315, '\P{Is_Sc=knda}', "");
-    Expect(0, 3315, '\P{^Is_Sc=knda}', "");
-    Expect(1, 3314, '\p{Is_Sc= knda}', "");
-    Expect(0, 3314, '\p{^Is_Sc= knda}', "");
-    Expect(0, 3314, '\P{Is_Sc= knda}', "");
-    Expect(1, 3314, '\P{^Is_Sc= knda}', "");
-    Expect(0, 3315, '\p{Is_Sc= knda}', "");
-    Expect(1, 3315, '\p{^Is_Sc= knda}', "");
-    Expect(1, 3315, '\P{Is_Sc= knda}', "");
-    Expect(0, 3315, '\P{^Is_Sc= knda}', "");
-    Error('\p{Script= -Kaithi/a/}');
-    Error('\P{Script= -Kaithi/a/}');
+    Expect(1, 101589, '\p{Is_Sc=	 kits}', "");
+    Expect(0, 101589, '\p{^Is_Sc=	 kits}', "");
+    Expect(0, 101589, '\P{Is_Sc=	 kits}', "");
+    Expect(1, 101589, '\P{^Is_Sc=	 kits}', "");
+    Expect(0, 101590, '\p{Is_Sc=	 kits}', "");
+    Expect(1, 101590, '\p{^Is_Sc=	 kits}', "");
+    Expect(1, 101590, '\P{Is_Sc=	 kits}', "");
+    Expect(0, 101590, '\P{^Is_Sc=	 kits}', "");
+    Error('\p{Script=-Kannada:=}');
+    Error('\P{Script=-Kannada:=}');
+    Expect(1, 3315, '\p{Script=:\AKannada\z:}', "");;
+    Expect(0, 3316, '\p{Script=:\AKannada\z:}', "");;
+    Expect(1, 3315, '\p{Script=kannada}', "");
+    Expect(0, 3315, '\p{^Script=kannada}', "");
+    Expect(0, 3315, '\P{Script=kannada}', "");
+    Expect(1, 3315, '\P{^Script=kannada}', "");
+    Expect(0, 3316, '\p{Script=kannada}', "");
+    Expect(1, 3316, '\p{^Script=kannada}', "");
+    Expect(1, 3316, '\P{Script=kannada}', "");
+    Expect(0, 3316, '\P{^Script=kannada}', "");
+    Expect(1, 3315, '\p{Script=:\Akannada\z:}', "");;
+    Expect(0, 3316, '\p{Script=:\Akannada\z:}', "");;
+    Expect(1, 3315, '\p{Script= Kannada}', "");
+    Expect(0, 3315, '\p{^Script= Kannada}', "");
+    Expect(0, 3315, '\P{Script= Kannada}', "");
+    Expect(1, 3315, '\P{^Script= Kannada}', "");
+    Expect(0, 3316, '\p{Script= Kannada}', "");
+    Expect(1, 3316, '\p{^Script= Kannada}', "");
+    Expect(1, 3316, '\P{Script= Kannada}', "");
+    Expect(0, 3316, '\P{^Script= Kannada}', "");
+    Error('\p{Sc=--KNDA:=}');
+    Error('\P{Sc=--KNDA:=}');
+    Expect(1, 3315, '\p{Sc=:\AKnda\z:}', "");;
+    Expect(0, 3316, '\p{Sc=:\AKnda\z:}', "");;
+    Expect(1, 3315, '\p{Sc=knda}', "");
+    Expect(0, 3315, '\p{^Sc=knda}', "");
+    Expect(0, 3315, '\P{Sc=knda}', "");
+    Expect(1, 3315, '\P{^Sc=knda}', "");
+    Expect(0, 3316, '\p{Sc=knda}', "");
+    Expect(1, 3316, '\p{^Sc=knda}', "");
+    Expect(1, 3316, '\P{Sc=knda}', "");
+    Expect(0, 3316, '\P{^Sc=knda}', "");
+    Expect(1, 3315, '\p{Sc=:\Aknda\z:}', "");;
+    Expect(0, 3316, '\p{Sc=:\Aknda\z:}', "");;
+    Expect(1, 3315, '\p{Sc= Knda}', "");
+    Expect(0, 3315, '\p{^Sc= Knda}', "");
+    Expect(0, 3315, '\P{Sc= Knda}', "");
+    Expect(1, 3315, '\P{^Sc= Knda}', "");
+    Expect(0, 3316, '\p{Sc= Knda}', "");
+    Expect(1, 3316, '\p{^Sc= Knda}', "");
+    Expect(1, 3316, '\P{Sc= Knda}', "");
+    Expect(0, 3316, '\P{^Sc= Knda}', "");
+    Error('\p{Is_Script:/a/_Kannada}');
+    Error('\P{Is_Script:/a/_Kannada}');
+    Expect(1, 3315, '\p{Is_Script=kannada}', "");
+    Expect(0, 3315, '\p{^Is_Script=kannada}', "");
+    Expect(0, 3315, '\P{Is_Script=kannada}', "");
+    Expect(1, 3315, '\P{^Is_Script=kannada}', "");
+    Expect(0, 3316, '\p{Is_Script=kannada}', "");
+    Expect(1, 3316, '\p{^Is_Script=kannada}', "");
+    Expect(1, 3316, '\P{Is_Script=kannada}', "");
+    Expect(0, 3316, '\P{^Is_Script=kannada}', "");
+    Expect(1, 3315, '\p{Is_Script:   _ KANNADA}', "");
+    Expect(0, 3315, '\p{^Is_Script:   _ KANNADA}', "");
+    Expect(0, 3315, '\P{Is_Script:   _ KANNADA}', "");
+    Expect(1, 3315, '\P{^Is_Script:   _ KANNADA}', "");
+    Expect(0, 3316, '\p{Is_Script:   _ KANNADA}', "");
+    Expect(1, 3316, '\p{^Is_Script:   _ KANNADA}', "");
+    Expect(1, 3316, '\P{Is_Script:   _ KANNADA}', "");
+    Expect(0, 3316, '\P{^Is_Script:   _ KANNADA}', "");
+    Error('\p{Is_Sc::=		KNDA}');
+    Error('\P{Is_Sc::=		KNDA}');
+    Expect(1, 3315, '\p{Is_Sc=knda}', "");
+    Expect(0, 3315, '\p{^Is_Sc=knda}', "");
+    Expect(0, 3315, '\P{Is_Sc=knda}', "");
+    Expect(1, 3315, '\P{^Is_Sc=knda}', "");
+    Expect(0, 3316, '\p{Is_Sc=knda}', "");
+    Expect(1, 3316, '\p{^Is_Sc=knda}', "");
+    Expect(1, 3316, '\P{Is_Sc=knda}', "");
+    Expect(0, 3316, '\P{^Is_Sc=knda}', "");
+    Expect(1, 3315, '\p{Is_Sc=_Knda}', "");
+    Expect(0, 3315, '\p{^Is_Sc=_Knda}', "");
+    Expect(0, 3315, '\P{Is_Sc=_Knda}', "");
+    Expect(1, 3315, '\P{^Is_Sc=_Knda}', "");
+    Expect(0, 3316, '\p{Is_Sc=_Knda}', "");
+    Expect(1, 3316, '\p{^Is_Sc=_Knda}', "");
+    Expect(1, 3316, '\P{Is_Sc=_Knda}', "");
+    Expect(0, 3316, '\P{^Is_Sc=_Knda}', "");
+    Error('\p{Script=-kaithi/a/}');
+    Error('\P{Script=-kaithi/a/}');
     Expect(1, 69837, '\p{Script=:\AKaithi\z:}', "");;
     Expect(0, 69838, '\p{Script=:\AKaithi\z:}', "");;
     Expect(1, 69837, '\p{Script=kaithi}', "");
@@ -133675,16 +134939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69838, '\P{^Script=kaithi}', "");
     Expect(1, 69837, '\p{Script=:\Akaithi\z:}', "");;
     Expect(0, 69838, '\p{Script=:\Akaithi\z:}', "");;
-    Expect(1, 69837, '\p{Script=-_kaithi}', "");
-    Expect(0, 69837, '\p{^Script=-_kaithi}', "");
-    Expect(0, 69837, '\P{Script=-_kaithi}', "");
-    Expect(1, 69837, '\P{^Script=-_kaithi}', "");
-    Expect(0, 69838, '\p{Script=-_kaithi}', "");
-    Expect(1, 69838, '\p{^Script=-_kaithi}', "");
-    Expect(1, 69838, '\P{Script=-_kaithi}', "");
-    Expect(0, 69838, '\P{^Script=-_kaithi}', "");
-    Error('\p{Sc=_/a/KTHI}');
-    Error('\P{Sc=_/a/KTHI}');
+    Expect(1, 69837, '\p{Script=_ Kaithi}', "");
+    Expect(0, 69837, '\p{^Script=_ Kaithi}', "");
+    Expect(0, 69837, '\P{Script=_ Kaithi}', "");
+    Expect(1, 69837, '\P{^Script=_ Kaithi}', "");
+    Expect(0, 69838, '\p{Script=_ Kaithi}', "");
+    Expect(1, 69838, '\p{^Script=_ Kaithi}', "");
+    Expect(1, 69838, '\P{Script=_ Kaithi}', "");
+    Expect(0, 69838, '\P{^Script=_ Kaithi}', "");
+    Error('\p{Sc=_/a/Kthi}');
+    Error('\P{Sc=_/a/Kthi}');
     Expect(1, 69837, '\p{Sc=:\AKthi\z:}', "");;
     Expect(0, 69838, '\p{Sc=:\AKthi\z:}', "");;
     Expect(1, 69837, '\p{Sc=kthi}', "");
@@ -133697,16 +134961,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69838, '\P{^Sc=kthi}', "");
     Expect(1, 69837, '\p{Sc=:\Akthi\z:}', "");;
     Expect(0, 69838, '\p{Sc=:\Akthi\z:}', "");;
-    Expect(1, 69837, '\p{Sc= 	Kthi}', "");
-    Expect(0, 69837, '\p{^Sc= 	Kthi}', "");
-    Expect(0, 69837, '\P{Sc= 	Kthi}', "");
-    Expect(1, 69837, '\P{^Sc= 	Kthi}', "");
-    Expect(0, 69838, '\p{Sc= 	Kthi}', "");
-    Expect(1, 69838, '\p{^Sc= 	Kthi}', "");
-    Expect(1, 69838, '\P{Sc= 	Kthi}', "");
-    Expect(0, 69838, '\P{^Sc= 	Kthi}', "");
-    Error('\p{Is_Script=	_Kaithi:=}');
-    Error('\P{Is_Script=	_Kaithi:=}');
+    Expect(1, 69837, '\p{Sc=	 Kthi}', "");
+    Expect(0, 69837, '\p{^Sc=	 Kthi}', "");
+    Expect(0, 69837, '\P{Sc=	 Kthi}', "");
+    Expect(1, 69837, '\P{^Sc=	 Kthi}', "");
+    Expect(0, 69838, '\p{Sc=	 Kthi}', "");
+    Expect(1, 69838, '\p{^Sc=	 Kthi}', "");
+    Expect(1, 69838, '\P{Sc=	 Kthi}', "");
+    Expect(0, 69838, '\P{^Sc=	 Kthi}', "");
+    Error('\p{Is_Script=__Kaithi/a/}');
+    Error('\P{Is_Script=__Kaithi/a/}');
     Expect(1, 69837, '\p{Is_Script=kaithi}', "");
     Expect(0, 69837, '\p{^Is_Script=kaithi}', "");
     Expect(0, 69837, '\P{Is_Script=kaithi}', "");
@@ -133715,16 +134979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69838, '\p{^Is_Script=kaithi}', "");
     Expect(1, 69838, '\P{Is_Script=kaithi}', "");
     Expect(0, 69838, '\P{^Is_Script=kaithi}', "");
-    Expect(1, 69837, '\p{Is_Script=	 Kaithi}', "");
-    Expect(0, 69837, '\p{^Is_Script=	 Kaithi}', "");
-    Expect(0, 69837, '\P{Is_Script=	 Kaithi}', "");
-    Expect(1, 69837, '\P{^Is_Script=	 Kaithi}', "");
-    Expect(0, 69838, '\p{Is_Script=	 Kaithi}', "");
-    Expect(1, 69838, '\p{^Is_Script=	 Kaithi}', "");
-    Expect(1, 69838, '\P{Is_Script=	 Kaithi}', "");
-    Expect(0, 69838, '\P{^Is_Script=	 Kaithi}', "");
-    Error('\p{Is_Sc=_Kthi/a/}');
-    Error('\P{Is_Sc=_Kthi/a/}');
+    Expect(1, 69837, '\p{Is_Script= 	Kaithi}', "");
+    Expect(0, 69837, '\p{^Is_Script= 	Kaithi}', "");
+    Expect(0, 69837, '\P{Is_Script= 	Kaithi}', "");
+    Expect(1, 69837, '\P{^Is_Script= 	Kaithi}', "");
+    Expect(0, 69838, '\p{Is_Script= 	Kaithi}', "");
+    Expect(1, 69838, '\p{^Is_Script= 	Kaithi}', "");
+    Expect(1, 69838, '\P{Is_Script= 	Kaithi}', "");
+    Expect(0, 69838, '\P{^Is_Script= 	Kaithi}', "");
+    Error('\p{Is_Sc=:=KTHI}');
+    Error('\P{Is_Sc=:=KTHI}');
     Expect(1, 69837, '\p{Is_Sc=kthi}', "");
     Expect(0, 69837, '\p{^Is_Sc=kthi}', "");
     Expect(0, 69837, '\P{Is_Sc=kthi}', "");
@@ -133733,16 +134997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69838, '\p{^Is_Sc=kthi}', "");
     Expect(1, 69838, '\P{Is_Sc=kthi}', "");
     Expect(0, 69838, '\P{^Is_Sc=kthi}', "");
-    Expect(1, 69837, '\p{Is_Sc: -_kthi}', "");
-    Expect(0, 69837, '\p{^Is_Sc: -_kthi}', "");
-    Expect(0, 69837, '\P{Is_Sc: -_kthi}', "");
-    Expect(1, 69837, '\P{^Is_Sc: -_kthi}', "");
-    Expect(0, 69838, '\p{Is_Sc: -_kthi}', "");
-    Expect(1, 69838, '\p{^Is_Sc: -_kthi}', "");
-    Expect(1, 69838, '\P{Is_Sc: -_kthi}', "");
-    Expect(0, 69838, '\P{^Is_Sc: -_kthi}', "");
-    Error('\p{Script=	_Tai_Tham:=}');
-    Error('\P{Script=	_Tai_Tham:=}');
+    Expect(1, 69837, '\p{Is_Sc= 	Kthi}', "");
+    Expect(0, 69837, '\p{^Is_Sc= 	Kthi}', "");
+    Expect(0, 69837, '\P{Is_Sc= 	Kthi}', "");
+    Expect(1, 69837, '\P{^Is_Sc= 	Kthi}', "");
+    Expect(0, 69838, '\p{Is_Sc= 	Kthi}', "");
+    Expect(1, 69838, '\p{^Is_Sc= 	Kthi}', "");
+    Expect(1, 69838, '\P{Is_Sc= 	Kthi}', "");
+    Expect(0, 69838, '\P{^Is_Sc= 	Kthi}', "");
+    Error('\p{Script=:=Tai_Tham}');
+    Error('\P{Script=:=Tai_Tham}');
     Expect(1, 6829, '\p{Script=:\ATai_Tham\z:}', "");;
     Expect(0, 6830, '\p{Script=:\ATai_Tham\z:}', "");;
     Expect(1, 6829, '\p{Script=taitham}', "");
@@ -133755,16 +135019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6830, '\P{^Script=taitham}', "");
     Expect(1, 6829, '\p{Script=:\Ataitham\z:}', "");;
     Expect(0, 6830, '\p{Script=:\Ataitham\z:}', "");;
-    Expect(1, 6829, '\p{Script=-Tai_Tham}', "");
-    Expect(0, 6829, '\p{^Script=-Tai_Tham}', "");
-    Expect(0, 6829, '\P{Script=-Tai_Tham}', "");
-    Expect(1, 6829, '\P{^Script=-Tai_Tham}', "");
-    Expect(0, 6830, '\p{Script=-Tai_Tham}', "");
-    Expect(1, 6830, '\p{^Script=-Tai_Tham}', "");
-    Expect(1, 6830, '\P{Script=-Tai_Tham}', "");
-    Expect(0, 6830, '\P{^Script=-Tai_Tham}', "");
-    Error('\p{Sc=	Lana/a/}');
-    Error('\P{Sc=	Lana/a/}');
+    Expect(1, 6829, '\p{Script=	-tai_THAM}', "");
+    Expect(0, 6829, '\p{^Script=	-tai_THAM}', "");
+    Expect(0, 6829, '\P{Script=	-tai_THAM}', "");
+    Expect(1, 6829, '\P{^Script=	-tai_THAM}', "");
+    Expect(0, 6830, '\p{Script=	-tai_THAM}', "");
+    Expect(1, 6830, '\p{^Script=	-tai_THAM}', "");
+    Expect(1, 6830, '\P{Script=	-tai_THAM}', "");
+    Expect(0, 6830, '\P{^Script=	-tai_THAM}', "");
+    Error('\p{Sc=/a/_	LANA}');
+    Error('\P{Sc=/a/_	LANA}');
     Expect(1, 6829, '\p{Sc=:\ALana\z:}', "");;
     Expect(0, 6830, '\p{Sc=:\ALana\z:}', "");;
     Expect(1, 6829, '\p{Sc=lana}', "");
@@ -133777,16 +135041,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6830, '\P{^Sc=lana}', "");
     Expect(1, 6829, '\p{Sc=:\Alana\z:}', "");;
     Expect(0, 6830, '\p{Sc=:\Alana\z:}', "");;
-    Expect(1, 6829, '\p{Sc= 	Lana}', "");
-    Expect(0, 6829, '\p{^Sc= 	Lana}', "");
-    Expect(0, 6829, '\P{Sc= 	Lana}', "");
-    Expect(1, 6829, '\P{^Sc= 	Lana}', "");
-    Expect(0, 6830, '\p{Sc= 	Lana}', "");
-    Expect(1, 6830, '\p{^Sc= 	Lana}', "");
-    Expect(1, 6830, '\P{Sc= 	Lana}', "");
-    Expect(0, 6830, '\P{^Sc= 	Lana}', "");
-    Error('\p{Is_Script=/a/_Tai_tham}');
-    Error('\P{Is_Script=/a/_Tai_tham}');
+    Expect(1, 6829, '\p{Sc=--Lana}', "");
+    Expect(0, 6829, '\p{^Sc=--Lana}', "");
+    Expect(0, 6829, '\P{Sc=--Lana}', "");
+    Expect(1, 6829, '\P{^Sc=--Lana}', "");
+    Expect(0, 6830, '\p{Sc=--Lana}', "");
+    Expect(1, 6830, '\p{^Sc=--Lana}', "");
+    Expect(1, 6830, '\P{Sc=--Lana}', "");
+    Expect(0, 6830, '\P{^Sc=--Lana}', "");
+    Error('\p{Is_Script= Tai_THAM:=}');
+    Error('\P{Is_Script= Tai_THAM:=}');
     Expect(1, 6829, '\p{Is_Script=taitham}', "");
     Expect(0, 6829, '\p{^Is_Script=taitham}', "");
     Expect(0, 6829, '\P{Is_Script=taitham}', "");
@@ -133795,78 +135059,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^Is_Script=taitham}', "");
     Expect(1, 6830, '\P{Is_Script=taitham}', "");
     Expect(0, 6830, '\P{^Is_Script=taitham}', "");
-    Expect(1, 6829, '\p{Is_Script=-Tai_Tham}', "");
-    Expect(0, 6829, '\p{^Is_Script=-Tai_Tham}', "");
-    Expect(0, 6829, '\P{Is_Script=-Tai_Tham}', "");
-    Expect(1, 6829, '\P{^Is_Script=-Tai_Tham}', "");
-    Expect(0, 6830, '\p{Is_Script=-Tai_Tham}', "");
-    Expect(1, 6830, '\p{^Is_Script=-Tai_Tham}', "");
-    Expect(1, 6830, '\P{Is_Script=-Tai_Tham}', "");
-    Expect(0, 6830, '\P{^Is_Script=-Tai_Tham}', "");
-    Error('\p{Is_Sc=	:=Lana}');
-    Error('\P{Is_Sc=	:=Lana}');
-    Expect(1, 6829, '\p{Is_Sc:lana}', "");
-    Expect(0, 6829, '\p{^Is_Sc:lana}', "");
-    Expect(0, 6829, '\P{Is_Sc:lana}', "");
-    Expect(1, 6829, '\P{^Is_Sc:lana}', "");
-    Expect(0, 6830, '\p{Is_Sc:lana}', "");
-    Expect(1, 6830, '\p{^Is_Sc:lana}', "");
-    Expect(1, 6830, '\P{Is_Sc:lana}', "");
-    Expect(0, 6830, '\P{^Is_Sc:lana}', "");
-    Expect(1, 6829, '\p{Is_Sc:		-LANA}', "");
-    Expect(0, 6829, '\p{^Is_Sc:		-LANA}', "");
-    Expect(0, 6829, '\P{Is_Sc:		-LANA}', "");
-    Expect(1, 6829, '\P{^Is_Sc:		-LANA}', "");
-    Expect(0, 6830, '\p{Is_Sc:		-LANA}', "");
-    Expect(1, 6830, '\p{^Is_Sc:		-LANA}', "");
-    Expect(1, 6830, '\P{Is_Sc:		-LANA}', "");
-    Expect(0, 6830, '\P{^Is_Sc:		-LANA}', "");
-    Error('\p{Script=/a/ 	LAO}');
-    Error('\P{Script=/a/ 	LAO}');
+    Expect(1, 6829, '\p{Is_Script=_Tai_Tham}', "");
+    Expect(0, 6829, '\p{^Is_Script=_Tai_Tham}', "");
+    Expect(0, 6829, '\P{Is_Script=_Tai_Tham}', "");
+    Expect(1, 6829, '\P{^Is_Script=_Tai_Tham}', "");
+    Expect(0, 6830, '\p{Is_Script=_Tai_Tham}', "");
+    Expect(1, 6830, '\p{^Is_Script=_Tai_Tham}', "");
+    Expect(1, 6830, '\P{Is_Script=_Tai_Tham}', "");
+    Expect(0, 6830, '\P{^Is_Script=_Tai_Tham}', "");
+    Error('\p{Is_Sc: -Lana:=}');
+    Error('\P{Is_Sc: -Lana:=}');
+    Expect(1, 6829, '\p{Is_Sc=lana}', "");
+    Expect(0, 6829, '\p{^Is_Sc=lana}', "");
+    Expect(0, 6829, '\P{Is_Sc=lana}', "");
+    Expect(1, 6829, '\P{^Is_Sc=lana}', "");
+    Expect(0, 6830, '\p{Is_Sc=lana}', "");
+    Expect(1, 6830, '\p{^Is_Sc=lana}', "");
+    Expect(1, 6830, '\P{Is_Sc=lana}', "");
+    Expect(0, 6830, '\P{^Is_Sc=lana}', "");
+    Expect(1, 6829, '\p{Is_Sc=	-lana}', "");
+    Expect(0, 6829, '\p{^Is_Sc=	-lana}', "");
+    Expect(0, 6829, '\P{Is_Sc=	-lana}', "");
+    Expect(1, 6829, '\P{^Is_Sc=	-lana}', "");
+    Expect(0, 6830, '\p{Is_Sc=	-lana}', "");
+    Expect(1, 6830, '\p{^Is_Sc=	-lana}', "");
+    Expect(1, 6830, '\P{Is_Sc=	-lana}', "");
+    Expect(0, 6830, '\P{^Is_Sc=	-lana}', "");
+    Error('\p{Script=:=-Lao}');
+    Error('\P{Script=:=-Lao}');
     Expect(1, 3807, '\p{Script=:\ALao\z:}', "");;
     Expect(0, 3808, '\p{Script=:\ALao\z:}', "");;
-    Expect(1, 3807, '\p{Script=lao}', "");
-    Expect(0, 3807, '\p{^Script=lao}', "");
-    Expect(0, 3807, '\P{Script=lao}', "");
-    Expect(1, 3807, '\P{^Script=lao}', "");
-    Expect(0, 3808, '\p{Script=lao}', "");
-    Expect(1, 3808, '\p{^Script=lao}', "");
-    Expect(1, 3808, '\P{Script=lao}', "");
-    Expect(0, 3808, '\P{^Script=lao}', "");
+    Expect(1, 3807, '\p{Script:   lao}', "");
+    Expect(0, 3807, '\p{^Script:   lao}', "");
+    Expect(0, 3807, '\P{Script:   lao}', "");
+    Expect(1, 3807, '\P{^Script:   lao}', "");
+    Expect(0, 3808, '\p{Script:   lao}', "");
+    Expect(1, 3808, '\p{^Script:   lao}', "");
+    Expect(1, 3808, '\P{Script:   lao}', "");
+    Expect(0, 3808, '\P{^Script:   lao}', "");
     Expect(1, 3807, '\p{Script=:\Alao\z:}', "");;
     Expect(0, 3808, '\p{Script=:\Alao\z:}', "");;
-    Expect(1, 3807, '\p{Script=_Lao}', "");
-    Expect(0, 3807, '\p{^Script=_Lao}', "");
-    Expect(0, 3807, '\P{Script=_Lao}', "");
-    Expect(1, 3807, '\P{^Script=_Lao}', "");
-    Expect(0, 3808, '\p{Script=_Lao}', "");
-    Expect(1, 3808, '\p{^Script=_Lao}', "");
-    Expect(1, 3808, '\P{Script=_Lao}', "");
-    Expect(0, 3808, '\P{^Script=_Lao}', "");
-    Error('\p{Sc=:=_ Laoo}');
-    Error('\P{Sc=:=_ Laoo}');
+    Expect(1, 3807, '\p{Script:   __Lao}', "");
+    Expect(0, 3807, '\p{^Script:   __Lao}', "");
+    Expect(0, 3807, '\P{Script:   __Lao}', "");
+    Expect(1, 3807, '\P{^Script:   __Lao}', "");
+    Expect(0, 3808, '\p{Script:   __Lao}', "");
+    Expect(1, 3808, '\p{^Script:   __Lao}', "");
+    Expect(1, 3808, '\P{Script:   __Lao}', "");
+    Expect(0, 3808, '\P{^Script:   __Lao}', "");
+    Error('\p{Sc=_:=Laoo}');
+    Error('\P{Sc=_:=Laoo}');
     Expect(1, 3807, '\p{Sc=:\ALaoo\z:}', "");;
     Expect(0, 3808, '\p{Sc=:\ALaoo\z:}', "");;
-    Expect(1, 3807, '\p{Sc=laoo}', "");
-    Expect(0, 3807, '\p{^Sc=laoo}', "");
-    Expect(0, 3807, '\P{Sc=laoo}', "");
-    Expect(1, 3807, '\P{^Sc=laoo}', "");
-    Expect(0, 3808, '\p{Sc=laoo}', "");
-    Expect(1, 3808, '\p{^Sc=laoo}', "");
-    Expect(1, 3808, '\P{Sc=laoo}', "");
-    Expect(0, 3808, '\P{^Sc=laoo}', "");
+    Expect(1, 3807, '\p{Sc:laoo}', "");
+    Expect(0, 3807, '\p{^Sc:laoo}', "");
+    Expect(0, 3807, '\P{Sc:laoo}', "");
+    Expect(1, 3807, '\P{^Sc:laoo}', "");
+    Expect(0, 3808, '\p{Sc:laoo}', "");
+    Expect(1, 3808, '\p{^Sc:laoo}', "");
+    Expect(1, 3808, '\P{Sc:laoo}', "");
+    Expect(0, 3808, '\P{^Sc:laoo}', "");
     Expect(1, 3807, '\p{Sc=:\Alaoo\z:}', "");;
     Expect(0, 3808, '\p{Sc=:\Alaoo\z:}', "");;
-    Expect(1, 3807, '\p{Sc=_Laoo}', "");
-    Expect(0, 3807, '\p{^Sc=_Laoo}', "");
-    Expect(0, 3807, '\P{Sc=_Laoo}', "");
-    Expect(1, 3807, '\P{^Sc=_Laoo}', "");
-    Expect(0, 3808, '\p{Sc=_Laoo}', "");
-    Expect(1, 3808, '\p{^Sc=_Laoo}', "");
-    Expect(1, 3808, '\P{Sc=_Laoo}', "");
-    Expect(0, 3808, '\P{^Sc=_Laoo}', "");
-    Error('\p{Is_Script=:=	 Lao}');
-    Error('\P{Is_Script=:=	 Lao}');
+    Expect(1, 3807, '\p{Sc=	Laoo}', "");
+    Expect(0, 3807, '\p{^Sc=	Laoo}', "");
+    Expect(0, 3807, '\P{Sc=	Laoo}', "");
+    Expect(1, 3807, '\P{^Sc=	Laoo}', "");
+    Expect(0, 3808, '\p{Sc=	Laoo}', "");
+    Expect(1, 3808, '\p{^Sc=	Laoo}', "");
+    Expect(1, 3808, '\P{Sc=	Laoo}', "");
+    Expect(0, 3808, '\P{^Sc=	Laoo}', "");
+    Error('\p{Is_Script=_Lao/a/}');
+    Error('\P{Is_Script=_Lao/a/}');
     Expect(1, 3807, '\p{Is_Script=lao}', "");
     Expect(0, 3807, '\p{^Is_Script=lao}', "");
     Expect(0, 3807, '\P{Is_Script=lao}', "");
@@ -133875,16 +135139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3808, '\p{^Is_Script=lao}', "");
     Expect(1, 3808, '\P{Is_Script=lao}', "");
     Expect(0, 3808, '\P{^Is_Script=lao}', "");
-    Expect(1, 3807, '\p{Is_Script=Lao}', "");
-    Expect(0, 3807, '\p{^Is_Script=Lao}', "");
-    Expect(0, 3807, '\P{Is_Script=Lao}', "");
-    Expect(1, 3807, '\P{^Is_Script=Lao}', "");
-    Expect(0, 3808, '\p{Is_Script=Lao}', "");
-    Expect(1, 3808, '\p{^Is_Script=Lao}', "");
-    Expect(1, 3808, '\P{Is_Script=Lao}', "");
-    Expect(0, 3808, '\P{^Is_Script=Lao}', "");
-    Error('\p{Is_Sc= :=Laoo}');
-    Error('\P{Is_Sc= :=Laoo}');
+    Expect(1, 3807, '\p{Is_Script= lao}', "");
+    Expect(0, 3807, '\p{^Is_Script= lao}', "");
+    Expect(0, 3807, '\P{Is_Script= lao}', "");
+    Expect(1, 3807, '\P{^Is_Script= lao}', "");
+    Expect(0, 3808, '\p{Is_Script= lao}', "");
+    Expect(1, 3808, '\p{^Is_Script= lao}', "");
+    Expect(1, 3808, '\P{Is_Script= lao}', "");
+    Expect(0, 3808, '\P{^Is_Script= lao}', "");
+    Error('\p{Is_Sc=-:=Laoo}');
+    Error('\P{Is_Sc=-:=Laoo}');
     Expect(1, 3807, '\p{Is_Sc=laoo}', "");
     Expect(0, 3807, '\p{^Is_Sc=laoo}', "");
     Expect(0, 3807, '\P{Is_Sc=laoo}', "");
@@ -133893,118 +135157,118 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3808, '\p{^Is_Sc=laoo}', "");
     Expect(1, 3808, '\P{Is_Sc=laoo}', "");
     Expect(0, 3808, '\P{^Is_Sc=laoo}', "");
-    Expect(1, 3807, '\p{Is_Sc: -_LAOO}', "");
-    Expect(0, 3807, '\p{^Is_Sc: -_LAOO}', "");
-    Expect(0, 3807, '\P{Is_Sc: -_LAOO}', "");
-    Expect(1, 3807, '\P{^Is_Sc: -_LAOO}', "");
-    Expect(0, 3808, '\p{Is_Sc: -_LAOO}', "");
-    Expect(1, 3808, '\p{^Is_Sc: -_LAOO}', "");
-    Expect(1, 3808, '\P{Is_Sc: -_LAOO}', "");
-    Expect(0, 3808, '\P{^Is_Sc: -_LAOO}', "");
-    Error('\p{Script=:=latin}');
-    Error('\P{Script=:=latin}');
-    Expect(1, 122654, '\p{Script=:\ALatin\z:}', "");;
-    Expect(0, 122655, '\p{Script=:\ALatin\z:}', "");;
-    Expect(1, 122654, '\p{Script:   latin}', "");
-    Expect(0, 122654, '\p{^Script:   latin}', "");
-    Expect(0, 122654, '\P{Script:   latin}', "");
-    Expect(1, 122654, '\P{^Script:   latin}', "");
-    Expect(0, 122655, '\p{Script:   latin}', "");
-    Expect(1, 122655, '\p{^Script:   latin}', "");
-    Expect(1, 122655, '\P{Script:   latin}', "");
-    Expect(0, 122655, '\P{^Script:   latin}', "");
-    Expect(1, 122654, '\p{Script=:\Alatin\z:}', "");;
-    Expect(0, 122655, '\p{Script=:\Alatin\z:}', "");;
-    Expect(1, 122654, '\p{Script= Latin}', "");
-    Expect(0, 122654, '\p{^Script= Latin}', "");
-    Expect(0, 122654, '\P{Script= Latin}', "");
-    Expect(1, 122654, '\P{^Script= Latin}', "");
-    Expect(0, 122655, '\p{Script= Latin}', "");
-    Expect(1, 122655, '\p{^Script= Latin}', "");
-    Expect(1, 122655, '\P{Script= Latin}', "");
-    Expect(0, 122655, '\P{^Script= Latin}', "");
-    Error('\p{Sc= latn/a/}');
-    Error('\P{Sc= latn/a/}');
-    Expect(1, 122654, '\p{Sc=:\ALatn\z:}', "");;
-    Expect(0, 122655, '\p{Sc=:\ALatn\z:}', "");;
-    Expect(1, 122654, '\p{Sc=latn}', "");
-    Expect(0, 122654, '\p{^Sc=latn}', "");
-    Expect(0, 122654, '\P{Sc=latn}', "");
-    Expect(1, 122654, '\P{^Sc=latn}', "");
-    Expect(0, 122655, '\p{Sc=latn}', "");
-    Expect(1, 122655, '\p{^Sc=latn}', "");
-    Expect(1, 122655, '\P{Sc=latn}', "");
-    Expect(0, 122655, '\P{^Sc=latn}', "");
-    Expect(1, 122654, '\p{Sc=:\Alatn\z:}', "");;
-    Expect(0, 122655, '\p{Sc=:\Alatn\z:}', "");;
-    Expect(1, 122654, '\p{Sc= -Latn}', "");
-    Expect(0, 122654, '\p{^Sc= -Latn}', "");
-    Expect(0, 122654, '\P{Sc= -Latn}', "");
-    Expect(1, 122654, '\P{^Sc= -Latn}', "");
-    Expect(0, 122655, '\p{Sc= -Latn}', "");
-    Expect(1, 122655, '\p{^Sc= -Latn}', "");
-    Expect(1, 122655, '\P{Sc= -Latn}', "");
-    Expect(0, 122655, '\P{^Sc= -Latn}', "");
-    Error('\p{Is_Script= :=Latin}');
-    Error('\P{Is_Script= :=Latin}');
-    Expect(1, 122654, '\p{Is_Script=latin}', "");
-    Expect(0, 122654, '\p{^Is_Script=latin}', "");
-    Expect(0, 122654, '\P{Is_Script=latin}', "");
-    Expect(1, 122654, '\P{^Is_Script=latin}', "");
-    Expect(0, 122655, '\p{Is_Script=latin}', "");
-    Expect(1, 122655, '\p{^Is_Script=latin}', "");
-    Expect(1, 122655, '\P{Is_Script=latin}', "");
-    Expect(0, 122655, '\P{^Is_Script=latin}', "");
-    Expect(1, 122654, '\p{Is_Script=_	latin}', "");
-    Expect(0, 122654, '\p{^Is_Script=_	latin}', "");
-    Expect(0, 122654, '\P{Is_Script=_	latin}', "");
-    Expect(1, 122654, '\P{^Is_Script=_	latin}', "");
-    Expect(0, 122655, '\p{Is_Script=_	latin}', "");
-    Expect(1, 122655, '\p{^Is_Script=_	latin}', "");
-    Expect(1, 122655, '\P{Is_Script=_	latin}', "");
-    Expect(0, 122655, '\P{^Is_Script=_	latin}', "");
-    Error('\p{Is_Sc=-latn/a/}');
-    Error('\P{Is_Sc=-latn/a/}');
-    Expect(1, 122654, '\p{Is_Sc: latn}', "");
-    Expect(0, 122654, '\p{^Is_Sc: latn}', "");
-    Expect(0, 122654, '\P{Is_Sc: latn}', "");
-    Expect(1, 122654, '\P{^Is_Sc: latn}', "");
-    Expect(0, 122655, '\p{Is_Sc: latn}', "");
-    Expect(1, 122655, '\p{^Is_Sc: latn}', "");
-    Expect(1, 122655, '\P{Is_Sc: latn}', "");
-    Expect(0, 122655, '\P{^Is_Sc: latn}', "");
-    Expect(1, 122654, '\p{Is_Sc=_-latn}', "");
-    Expect(0, 122654, '\p{^Is_Sc=_-latn}', "");
-    Expect(0, 122654, '\P{Is_Sc=_-latn}', "");
-    Expect(1, 122654, '\P{^Is_Sc=_-latn}', "");
-    Expect(0, 122655, '\p{Is_Sc=_-latn}', "");
-    Expect(1, 122655, '\p{^Is_Sc=_-latn}', "");
-    Expect(1, 122655, '\P{Is_Sc=_-latn}', "");
-    Expect(0, 122655, '\P{^Is_Sc=_-latn}', "");
-    Error('\p{Script=_LEPCHA/a/}');
-    Error('\P{Script=_LEPCHA/a/}');
+    Expect(1, 3807, '\p{Is_Sc=		LAOO}', "");
+    Expect(0, 3807, '\p{^Is_Sc=		LAOO}', "");
+    Expect(0, 3807, '\P{Is_Sc=		LAOO}', "");
+    Expect(1, 3807, '\P{^Is_Sc=		LAOO}', "");
+    Expect(0, 3808, '\p{Is_Sc=		LAOO}', "");
+    Expect(1, 3808, '\p{^Is_Sc=		LAOO}', "");
+    Expect(1, 3808, '\P{Is_Sc=		LAOO}', "");
+    Expect(0, 3808, '\P{^Is_Sc=		LAOO}', "");
+    Error('\p{Script: -/a/latin}');
+    Error('\P{Script: -/a/latin}');
+    Expect(1, 122666, '\p{Script=:\ALatin\z:}', "");;
+    Expect(0, 122667, '\p{Script=:\ALatin\z:}', "");;
+    Expect(1, 122666, '\p{Script:latin}', "");
+    Expect(0, 122666, '\p{^Script:latin}', "");
+    Expect(0, 122666, '\P{Script:latin}', "");
+    Expect(1, 122666, '\P{^Script:latin}', "");
+    Expect(0, 122667, '\p{Script:latin}', "");
+    Expect(1, 122667, '\p{^Script:latin}', "");
+    Expect(1, 122667, '\P{Script:latin}', "");
+    Expect(0, 122667, '\P{^Script:latin}', "");
+    Expect(1, 122666, '\p{Script=:\Alatin\z:}', "");;
+    Expect(0, 122667, '\p{Script=:\Alatin\z:}', "");;
+    Expect(1, 122666, '\p{Script=_latin}', "");
+    Expect(0, 122666, '\p{^Script=_latin}', "");
+    Expect(0, 122666, '\P{Script=_latin}', "");
+    Expect(1, 122666, '\P{^Script=_latin}', "");
+    Expect(0, 122667, '\p{Script=_latin}', "");
+    Expect(1, 122667, '\p{^Script=_latin}', "");
+    Expect(1, 122667, '\P{Script=_latin}', "");
+    Expect(0, 122667, '\P{^Script=_latin}', "");
+    Error('\p{Sc=	LATN/a/}');
+    Error('\P{Sc=	LATN/a/}');
+    Expect(1, 122666, '\p{Sc=:\ALatn\z:}', "");;
+    Expect(0, 122667, '\p{Sc=:\ALatn\z:}', "");;
+    Expect(1, 122666, '\p{Sc=latn}', "");
+    Expect(0, 122666, '\p{^Sc=latn}', "");
+    Expect(0, 122666, '\P{Sc=latn}', "");
+    Expect(1, 122666, '\P{^Sc=latn}', "");
+    Expect(0, 122667, '\p{Sc=latn}', "");
+    Expect(1, 122667, '\p{^Sc=latn}', "");
+    Expect(1, 122667, '\P{Sc=latn}', "");
+    Expect(0, 122667, '\P{^Sc=latn}', "");
+    Expect(1, 122666, '\p{Sc=:\Alatn\z:}', "");;
+    Expect(0, 122667, '\p{Sc=:\Alatn\z:}', "");;
+    Expect(1, 122666, '\p{Sc=_-Latn}', "");
+    Expect(0, 122666, '\p{^Sc=_-Latn}', "");
+    Expect(0, 122666, '\P{Sc=_-Latn}', "");
+    Expect(1, 122666, '\P{^Sc=_-Latn}', "");
+    Expect(0, 122667, '\p{Sc=_-Latn}', "");
+    Expect(1, 122667, '\p{^Sc=_-Latn}', "");
+    Expect(1, 122667, '\P{Sc=_-Latn}', "");
+    Expect(0, 122667, '\P{^Sc=_-Latn}', "");
+    Error('\p{Is_Script=/a/_Latin}');
+    Error('\P{Is_Script=/a/_Latin}');
+    Expect(1, 122666, '\p{Is_Script=latin}', "");
+    Expect(0, 122666, '\p{^Is_Script=latin}', "");
+    Expect(0, 122666, '\P{Is_Script=latin}', "");
+    Expect(1, 122666, '\P{^Is_Script=latin}', "");
+    Expect(0, 122667, '\p{Is_Script=latin}', "");
+    Expect(1, 122667, '\p{^Is_Script=latin}', "");
+    Expect(1, 122667, '\P{Is_Script=latin}', "");
+    Expect(0, 122667, '\P{^Is_Script=latin}', "");
+    Expect(1, 122666, '\p{Is_Script= Latin}', "");
+    Expect(0, 122666, '\p{^Is_Script= Latin}', "");
+    Expect(0, 122666, '\P{Is_Script= Latin}', "");
+    Expect(1, 122666, '\P{^Is_Script= Latin}', "");
+    Expect(0, 122667, '\p{Is_Script= Latin}', "");
+    Expect(1, 122667, '\p{^Is_Script= Latin}', "");
+    Expect(1, 122667, '\P{Is_Script= Latin}', "");
+    Expect(0, 122667, '\P{^Is_Script= Latin}', "");
+    Error('\p{Is_Sc=	/a/Latn}');
+    Error('\P{Is_Sc=	/a/Latn}');
+    Expect(1, 122666, '\p{Is_Sc:   latn}', "");
+    Expect(0, 122666, '\p{^Is_Sc:   latn}', "");
+    Expect(0, 122666, '\P{Is_Sc:   latn}', "");
+    Expect(1, 122666, '\P{^Is_Sc:   latn}', "");
+    Expect(0, 122667, '\p{Is_Sc:   latn}', "");
+    Expect(1, 122667, '\p{^Is_Sc:   latn}', "");
+    Expect(1, 122667, '\P{Is_Sc:   latn}', "");
+    Expect(0, 122667, '\P{^Is_Sc:   latn}', "");
+    Expect(1, 122666, '\p{Is_Sc=Latn}', "");
+    Expect(0, 122666, '\p{^Is_Sc=Latn}', "");
+    Expect(0, 122666, '\P{Is_Sc=Latn}', "");
+    Expect(1, 122666, '\P{^Is_Sc=Latn}', "");
+    Expect(0, 122667, '\p{Is_Sc=Latn}', "");
+    Expect(1, 122667, '\p{^Is_Sc=Latn}', "");
+    Expect(1, 122667, '\P{Is_Sc=Latn}', "");
+    Expect(0, 122667, '\P{^Is_Sc=Latn}', "");
+    Error('\p{Script=:= lepcha}');
+    Error('\P{Script=:= lepcha}');
     Expect(1, 7247, '\p{Script=:\ALepcha\z:}', "");;
     Expect(0, 7248, '\p{Script=:\ALepcha\z:}', "");;
-    Expect(1, 7247, '\p{Script:lepcha}', "");
-    Expect(0, 7247, '\p{^Script:lepcha}', "");
-    Expect(0, 7247, '\P{Script:lepcha}', "");
-    Expect(1, 7247, '\P{^Script:lepcha}', "");
-    Expect(0, 7248, '\p{Script:lepcha}', "");
-    Expect(1, 7248, '\p{^Script:lepcha}', "");
-    Expect(1, 7248, '\P{Script:lepcha}', "");
-    Expect(0, 7248, '\P{^Script:lepcha}', "");
+    Expect(1, 7247, '\p{Script=lepcha}', "");
+    Expect(0, 7247, '\p{^Script=lepcha}', "");
+    Expect(0, 7247, '\P{Script=lepcha}', "");
+    Expect(1, 7247, '\P{^Script=lepcha}', "");
+    Expect(0, 7248, '\p{Script=lepcha}', "");
+    Expect(1, 7248, '\p{^Script=lepcha}', "");
+    Expect(1, 7248, '\P{Script=lepcha}', "");
+    Expect(0, 7248, '\P{^Script=lepcha}', "");
     Expect(1, 7247, '\p{Script=:\Alepcha\z:}', "");;
     Expect(0, 7248, '\p{Script=:\Alepcha\z:}', "");;
-    Expect(1, 7247, '\p{Script= -Lepcha}', "");
-    Expect(0, 7247, '\p{^Script= -Lepcha}', "");
-    Expect(0, 7247, '\P{Script= -Lepcha}', "");
-    Expect(1, 7247, '\P{^Script= -Lepcha}', "");
-    Expect(0, 7248, '\p{Script= -Lepcha}', "");
-    Expect(1, 7248, '\p{^Script= -Lepcha}', "");
-    Expect(1, 7248, '\P{Script= -Lepcha}', "");
-    Expect(0, 7248, '\P{^Script= -Lepcha}', "");
-    Error('\p{Sc=_:=lepc}');
-    Error('\P{Sc=_:=lepc}');
+    Expect(1, 7247, '\p{Script=-	lepcha}', "");
+    Expect(0, 7247, '\p{^Script=-	lepcha}', "");
+    Expect(0, 7247, '\P{Script=-	lepcha}', "");
+    Expect(1, 7247, '\P{^Script=-	lepcha}', "");
+    Expect(0, 7248, '\p{Script=-	lepcha}', "");
+    Expect(1, 7248, '\p{^Script=-	lepcha}', "");
+    Expect(1, 7248, '\P{Script=-	lepcha}', "");
+    Expect(0, 7248, '\P{^Script=-	lepcha}', "");
+    Error('\p{Sc=/a/lepc}');
+    Error('\P{Sc=/a/lepc}');
     Expect(1, 7247, '\p{Sc=:\ALepc\z:}', "");;
     Expect(0, 7248, '\p{Sc=:\ALepc\z:}', "");;
     Expect(1, 7247, '\p{Sc=lepc}', "");
@@ -134017,16 +135281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7248, '\P{^Sc=lepc}', "");
     Expect(1, 7247, '\p{Sc=:\Alepc\z:}', "");;
     Expect(0, 7248, '\p{Sc=:\Alepc\z:}', "");;
-    Expect(1, 7247, '\p{Sc=_ LEPC}', "");
-    Expect(0, 7247, '\p{^Sc=_ LEPC}', "");
-    Expect(0, 7247, '\P{Sc=_ LEPC}', "");
-    Expect(1, 7247, '\P{^Sc=_ LEPC}', "");
-    Expect(0, 7248, '\p{Sc=_ LEPC}', "");
-    Expect(1, 7248, '\p{^Sc=_ LEPC}', "");
-    Expect(1, 7248, '\P{Sc=_ LEPC}', "");
-    Expect(0, 7248, '\P{^Sc=_ LEPC}', "");
-    Error('\p{Is_Script=-_Lepcha:=}');
-    Error('\P{Is_Script=-_Lepcha:=}');
+    Expect(1, 7247, '\p{Sc=	_lepc}', "");
+    Expect(0, 7247, '\p{^Sc=	_lepc}', "");
+    Expect(0, 7247, '\P{Sc=	_lepc}', "");
+    Expect(1, 7247, '\P{^Sc=	_lepc}', "");
+    Expect(0, 7248, '\p{Sc=	_lepc}', "");
+    Expect(1, 7248, '\p{^Sc=	_lepc}', "");
+    Expect(1, 7248, '\P{Sc=	_lepc}', "");
+    Expect(0, 7248, '\P{^Sc=	_lepc}', "");
+    Error('\p{Is_Script=	-LEPCHA:=}');
+    Error('\P{Is_Script=	-LEPCHA:=}');
     Expect(1, 7247, '\p{Is_Script=lepcha}', "");
     Expect(0, 7247, '\p{^Is_Script=lepcha}', "");
     Expect(0, 7247, '\P{Is_Script=lepcha}', "");
@@ -134035,16 +135299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7248, '\p{^Is_Script=lepcha}', "");
     Expect(1, 7248, '\P{Is_Script=lepcha}', "");
     Expect(0, 7248, '\P{^Is_Script=lepcha}', "");
-    Expect(1, 7247, '\p{Is_Script= _LEPCHA}', "");
-    Expect(0, 7247, '\p{^Is_Script= _LEPCHA}', "");
-    Expect(0, 7247, '\P{Is_Script= _LEPCHA}', "");
-    Expect(1, 7247, '\P{^Is_Script= _LEPCHA}', "");
-    Expect(0, 7248, '\p{Is_Script= _LEPCHA}', "");
-    Expect(1, 7248, '\p{^Is_Script= _LEPCHA}', "");
-    Expect(1, 7248, '\P{Is_Script= _LEPCHA}', "");
-    Expect(0, 7248, '\P{^Is_Script= _LEPCHA}', "");
-    Error('\p{Is_Sc=- Lepc/a/}');
-    Error('\P{Is_Sc=- Lepc/a/}');
+    Expect(1, 7247, '\p{Is_Script=  Lepcha}', "");
+    Expect(0, 7247, '\p{^Is_Script=  Lepcha}', "");
+    Expect(0, 7247, '\P{Is_Script=  Lepcha}', "");
+    Expect(1, 7247, '\P{^Is_Script=  Lepcha}', "");
+    Expect(0, 7248, '\p{Is_Script=  Lepcha}', "");
+    Expect(1, 7248, '\p{^Is_Script=  Lepcha}', "");
+    Expect(1, 7248, '\P{Is_Script=  Lepcha}', "");
+    Expect(0, 7248, '\P{^Is_Script=  Lepcha}', "");
+    Error('\p{Is_Sc=/a/LEPC}');
+    Error('\P{Is_Sc=/a/LEPC}');
     Expect(1, 7247, '\p{Is_Sc=lepc}', "");
     Expect(0, 7247, '\p{^Is_Sc=lepc}', "");
     Expect(0, 7247, '\P{Is_Sc=lepc}', "");
@@ -134053,16 +135317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7248, '\p{^Is_Sc=lepc}', "");
     Expect(1, 7248, '\P{Is_Sc=lepc}', "");
     Expect(0, 7248, '\P{^Is_Sc=lepc}', "");
-    Expect(1, 7247, '\p{Is_Sc=__LEPC}', "");
-    Expect(0, 7247, '\p{^Is_Sc=__LEPC}', "");
-    Expect(0, 7247, '\P{Is_Sc=__LEPC}', "");
-    Expect(1, 7247, '\P{^Is_Sc=__LEPC}', "");
-    Expect(0, 7248, '\p{Is_Sc=__LEPC}', "");
-    Expect(1, 7248, '\p{^Is_Sc=__LEPC}', "");
-    Expect(1, 7248, '\P{Is_Sc=__LEPC}', "");
-    Expect(0, 7248, '\P{^Is_Sc=__LEPC}', "");
-    Error('\p{Script=:=-_LIMBU}');
-    Error('\P{Script=:=-_LIMBU}');
+    Expect(1, 7247, '\p{Is_Sc=-	lepc}', "");
+    Expect(0, 7247, '\p{^Is_Sc=-	lepc}', "");
+    Expect(0, 7247, '\P{Is_Sc=-	lepc}', "");
+    Expect(1, 7247, '\P{^Is_Sc=-	lepc}', "");
+    Expect(0, 7248, '\p{Is_Sc=-	lepc}', "");
+    Expect(1, 7248, '\p{^Is_Sc=-	lepc}', "");
+    Expect(1, 7248, '\P{Is_Sc=-	lepc}', "");
+    Expect(0, 7248, '\P{^Is_Sc=-	lepc}', "");
+    Error('\p{Script= _limbu/a/}');
+    Error('\P{Script= _limbu/a/}');
     Expect(1, 6479, '\p{Script=:\ALimbu\z:}', "");;
     Expect(0, 6480, '\p{Script=:\ALimbu\z:}', "");;
     Expect(1, 6479, '\p{Script=limbu}', "");
@@ -134075,16 +135339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6480, '\P{^Script=limbu}', "");
     Expect(1, 6479, '\p{Script=:\Alimbu\z:}', "");;
     Expect(0, 6480, '\p{Script=:\Alimbu\z:}', "");;
-    Expect(1, 6479, '\p{Script=	LIMBU}', "");
-    Expect(0, 6479, '\p{^Script=	LIMBU}', "");
-    Expect(0, 6479, '\P{Script=	LIMBU}', "");
-    Expect(1, 6479, '\P{^Script=	LIMBU}', "");
-    Expect(0, 6480, '\p{Script=	LIMBU}', "");
-    Expect(1, 6480, '\p{^Script=	LIMBU}', "");
-    Expect(1, 6480, '\P{Script=	LIMBU}', "");
-    Expect(0, 6480, '\P{^Script=	LIMBU}', "");
-    Error('\p{Sc=__Limb:=}');
-    Error('\P{Sc=__Limb:=}');
+    Expect(1, 6479, '\p{Script: -	LIMBU}', "");
+    Expect(0, 6479, '\p{^Script: -	LIMBU}', "");
+    Expect(0, 6479, '\P{Script: -	LIMBU}', "");
+    Expect(1, 6479, '\P{^Script: -	LIMBU}', "");
+    Expect(0, 6480, '\p{Script: -	LIMBU}', "");
+    Expect(1, 6480, '\p{^Script: -	LIMBU}', "");
+    Expect(1, 6480, '\P{Script: -	LIMBU}', "");
+    Expect(0, 6480, '\P{^Script: -	LIMBU}', "");
+    Error('\p{Sc=/a/ -Limb}');
+    Error('\P{Sc=/a/ -Limb}');
     Expect(1, 6479, '\p{Sc=:\ALimb\z:}', "");;
     Expect(0, 6480, '\p{Sc=:\ALimb\z:}', "");;
     Expect(1, 6479, '\p{Sc=limb}', "");
@@ -134097,16 +135361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6480, '\P{^Sc=limb}', "");
     Expect(1, 6479, '\p{Sc=:\Alimb\z:}', "");;
     Expect(0, 6480, '\p{Sc=:\Alimb\z:}', "");;
-    Expect(1, 6479, '\p{Sc=__Limb}', "");
-    Expect(0, 6479, '\p{^Sc=__Limb}', "");
-    Expect(0, 6479, '\P{Sc=__Limb}', "");
-    Expect(1, 6479, '\P{^Sc=__Limb}', "");
-    Expect(0, 6480, '\p{Sc=__Limb}', "");
-    Expect(1, 6480, '\p{^Sc=__Limb}', "");
-    Expect(1, 6480, '\P{Sc=__Limb}', "");
-    Expect(0, 6480, '\P{^Sc=__Limb}', "");
-    Error('\p{Is_Script:   /a/__LIMBU}');
-    Error('\P{Is_Script:   /a/__LIMBU}');
+    Expect(1, 6479, '\p{Sc= 	LIMB}', "");
+    Expect(0, 6479, '\p{^Sc= 	LIMB}', "");
+    Expect(0, 6479, '\P{Sc= 	LIMB}', "");
+    Expect(1, 6479, '\P{^Sc= 	LIMB}', "");
+    Expect(0, 6480, '\p{Sc= 	LIMB}', "");
+    Expect(1, 6480, '\p{^Sc= 	LIMB}', "");
+    Expect(1, 6480, '\P{Sc= 	LIMB}', "");
+    Expect(0, 6480, '\P{^Sc= 	LIMB}', "");
+    Error('\p{Is_Script=/a/-	Limbu}');
+    Error('\P{Is_Script=/a/-	Limbu}');
     Expect(1, 6479, '\p{Is_Script=limbu}', "");
     Expect(0, 6479, '\p{^Is_Script=limbu}', "");
     Expect(0, 6479, '\P{Is_Script=limbu}', "");
@@ -134115,16 +135379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6480, '\p{^Is_Script=limbu}', "");
     Expect(1, 6480, '\P{Is_Script=limbu}', "");
     Expect(0, 6480, '\P{^Is_Script=limbu}', "");
-    Expect(1, 6479, '\p{Is_Script=-LIMBU}', "");
-    Expect(0, 6479, '\p{^Is_Script=-LIMBU}', "");
-    Expect(0, 6479, '\P{Is_Script=-LIMBU}', "");
-    Expect(1, 6479, '\P{^Is_Script=-LIMBU}', "");
-    Expect(0, 6480, '\p{Is_Script=-LIMBU}', "");
-    Expect(1, 6480, '\p{^Is_Script=-LIMBU}', "");
-    Expect(1, 6480, '\P{Is_Script=-LIMBU}', "");
-    Expect(0, 6480, '\P{^Is_Script=-LIMBU}', "");
-    Error('\p{Is_Sc=- Limb/a/}');
-    Error('\P{Is_Sc=- Limb/a/}');
+    Expect(1, 6479, '\p{Is_Script:	-	LIMBU}', "");
+    Expect(0, 6479, '\p{^Is_Script:	-	LIMBU}', "");
+    Expect(0, 6479, '\P{Is_Script:	-	LIMBU}', "");
+    Expect(1, 6479, '\P{^Is_Script:	-	LIMBU}', "");
+    Expect(0, 6480, '\p{Is_Script:	-	LIMBU}', "");
+    Expect(1, 6480, '\p{^Is_Script:	-	LIMBU}', "");
+    Expect(1, 6480, '\P{Is_Script:	-	LIMBU}', "");
+    Expect(0, 6480, '\P{^Is_Script:	-	LIMBU}', "");
+    Error('\p{Is_Sc=/a/limb}');
+    Error('\P{Is_Sc=/a/limb}');
     Expect(1, 6479, '\p{Is_Sc=limb}', "");
     Expect(0, 6479, '\p{^Is_Sc=limb}', "");
     Expect(0, 6479, '\P{Is_Sc=limb}', "");
@@ -134133,38 +135397,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6480, '\p{^Is_Sc=limb}', "");
     Expect(1, 6480, '\P{Is_Sc=limb}', "");
     Expect(0, 6480, '\P{^Is_Sc=limb}', "");
-    Expect(1, 6479, '\p{Is_Sc:-	Limb}', "");
-    Expect(0, 6479, '\p{^Is_Sc:-	Limb}', "");
-    Expect(0, 6479, '\P{Is_Sc:-	Limb}', "");
-    Expect(1, 6479, '\P{^Is_Sc:-	Limb}', "");
-    Expect(0, 6480, '\p{Is_Sc:-	Limb}', "");
-    Expect(1, 6480, '\p{^Is_Sc:-	Limb}', "");
-    Expect(1, 6480, '\P{Is_Sc:-	Limb}', "");
-    Expect(0, 6480, '\P{^Is_Sc:-	Limb}', "");
-    Error('\p{Script=	Linear_A:=}');
-    Error('\P{Script=	Linear_A:=}');
+    Expect(1, 6479, '\p{Is_Sc=	 Limb}', "");
+    Expect(0, 6479, '\p{^Is_Sc=	 Limb}', "");
+    Expect(0, 6479, '\P{Is_Sc=	 Limb}', "");
+    Expect(1, 6479, '\P{^Is_Sc=	 Limb}', "");
+    Expect(0, 6480, '\p{Is_Sc=	 Limb}', "");
+    Expect(1, 6480, '\p{^Is_Sc=	 Limb}', "");
+    Expect(1, 6480, '\P{Is_Sc=	 Limb}', "");
+    Expect(0, 6480, '\P{^Is_Sc=	 Limb}', "");
+    Error('\p{Script=	:=linear_A}');
+    Error('\P{Script=	:=linear_A}');
     Expect(1, 67431, '\p{Script=:\ALinear_A\z:}', "");;
     Expect(0, 67432, '\p{Script=:\ALinear_A\z:}', "");;
-    Expect(1, 67431, '\p{Script: lineara}', "");
-    Expect(0, 67431, '\p{^Script: lineara}', "");
-    Expect(0, 67431, '\P{Script: lineara}', "");
-    Expect(1, 67431, '\P{^Script: lineara}', "");
-    Expect(0, 67432, '\p{Script: lineara}', "");
-    Expect(1, 67432, '\p{^Script: lineara}', "");
-    Expect(1, 67432, '\P{Script: lineara}', "");
-    Expect(0, 67432, '\P{^Script: lineara}', "");
+    Expect(1, 67431, '\p{Script=lineara}', "");
+    Expect(0, 67431, '\p{^Script=lineara}', "");
+    Expect(0, 67431, '\P{Script=lineara}', "");
+    Expect(1, 67431, '\P{^Script=lineara}', "");
+    Expect(0, 67432, '\p{Script=lineara}', "");
+    Expect(1, 67432, '\p{^Script=lineara}', "");
+    Expect(1, 67432, '\P{Script=lineara}', "");
+    Expect(0, 67432, '\P{^Script=lineara}', "");
     Expect(1, 67431, '\p{Script=:\Alineara\z:}', "");;
     Expect(0, 67432, '\p{Script=:\Alineara\z:}', "");;
-    Expect(1, 67431, '\p{Script= LINEAR_A}', "");
-    Expect(0, 67431, '\p{^Script= LINEAR_A}', "");
-    Expect(0, 67431, '\P{Script= LINEAR_A}', "");
-    Expect(1, 67431, '\P{^Script= LINEAR_A}', "");
-    Expect(0, 67432, '\p{Script= LINEAR_A}', "");
-    Expect(1, 67432, '\p{^Script= LINEAR_A}', "");
-    Expect(1, 67432, '\P{Script= LINEAR_A}', "");
-    Expect(0, 67432, '\P{^Script= LINEAR_A}', "");
-    Error('\p{Sc:		/a/Lina}');
-    Error('\P{Sc:		/a/Lina}');
+    Expect(1, 67431, '\p{Script=	Linear_a}', "");
+    Expect(0, 67431, '\p{^Script=	Linear_a}', "");
+    Expect(0, 67431, '\P{Script=	Linear_a}', "");
+    Expect(1, 67431, '\P{^Script=	Linear_a}', "");
+    Expect(0, 67432, '\p{Script=	Linear_a}', "");
+    Expect(1, 67432, '\p{^Script=	Linear_a}', "");
+    Expect(1, 67432, '\P{Script=	Linear_a}', "");
+    Expect(0, 67432, '\P{^Script=	Linear_a}', "");
+    Error('\p{Sc= :=Lina}');
+    Error('\P{Sc= :=Lina}');
     Expect(1, 67431, '\p{Sc=:\ALina\z:}', "");;
     Expect(0, 67432, '\p{Sc=:\ALina\z:}', "");;
     Expect(1, 67431, '\p{Sc=lina}', "");
@@ -134177,16 +135441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67432, '\P{^Sc=lina}', "");
     Expect(1, 67431, '\p{Sc=:\Alina\z:}', "");;
     Expect(0, 67432, '\p{Sc=:\Alina\z:}', "");;
-    Expect(1, 67431, '\p{Sc= Lina}', "");
-    Expect(0, 67431, '\p{^Sc= Lina}', "");
-    Expect(0, 67431, '\P{Sc= Lina}', "");
-    Expect(1, 67431, '\P{^Sc= Lina}', "");
-    Expect(0, 67432, '\p{Sc= Lina}', "");
-    Expect(1, 67432, '\p{^Sc= Lina}', "");
-    Expect(1, 67432, '\P{Sc= Lina}', "");
-    Expect(0, 67432, '\P{^Sc= Lina}', "");
-    Error('\p{Is_Script:	:= 	LINEAR_A}');
-    Error('\P{Is_Script:	:= 	LINEAR_A}');
+    Expect(1, 67431, '\p{Sc=		LINA}', "");
+    Expect(0, 67431, '\p{^Sc=		LINA}', "");
+    Expect(0, 67431, '\P{Sc=		LINA}', "");
+    Expect(1, 67431, '\P{^Sc=		LINA}', "");
+    Expect(0, 67432, '\p{Sc=		LINA}', "");
+    Expect(1, 67432, '\p{^Sc=		LINA}', "");
+    Expect(1, 67432, '\P{Sc=		LINA}', "");
+    Expect(0, 67432, '\P{^Sc=		LINA}', "");
+    Error('\p{Is_Script=_:=linear_a}');
+    Error('\P{Is_Script=_:=linear_a}');
     Expect(1, 67431, '\p{Is_Script=lineara}', "");
     Expect(0, 67431, '\p{^Is_Script=lineara}', "");
     Expect(0, 67431, '\P{Is_Script=lineara}', "");
@@ -134195,16 +135459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67432, '\p{^Is_Script=lineara}', "");
     Expect(1, 67432, '\P{Is_Script=lineara}', "");
     Expect(0, 67432, '\P{^Is_Script=lineara}', "");
-    Expect(1, 67431, '\p{Is_Script=--Linear_a}', "");
-    Expect(0, 67431, '\p{^Is_Script=--Linear_a}', "");
-    Expect(0, 67431, '\P{Is_Script=--Linear_a}', "");
-    Expect(1, 67431, '\P{^Is_Script=--Linear_a}', "");
-    Expect(0, 67432, '\p{Is_Script=--Linear_a}', "");
-    Expect(1, 67432, '\p{^Is_Script=--Linear_a}', "");
-    Expect(1, 67432, '\P{Is_Script=--Linear_a}', "");
-    Expect(0, 67432, '\P{^Is_Script=--Linear_a}', "");
-    Error('\p{Is_Sc: :=Lina}');
-    Error('\P{Is_Sc: :=Lina}');
+    Expect(1, 67431, '\p{Is_Script:	 -LINEAR_A}', "");
+    Expect(0, 67431, '\p{^Is_Script:	 -LINEAR_A}', "");
+    Expect(0, 67431, '\P{Is_Script:	 -LINEAR_A}', "");
+    Expect(1, 67431, '\P{^Is_Script:	 -LINEAR_A}', "");
+    Expect(0, 67432, '\p{Is_Script:	 -LINEAR_A}', "");
+    Expect(1, 67432, '\p{^Is_Script:	 -LINEAR_A}', "");
+    Expect(1, 67432, '\P{Is_Script:	 -LINEAR_A}', "");
+    Expect(0, 67432, '\P{^Is_Script:	 -LINEAR_A}', "");
+    Error('\p{Is_Sc=:= -LINA}');
+    Error('\P{Is_Sc=:= -LINA}');
     Expect(1, 67431, '\p{Is_Sc=lina}', "");
     Expect(0, 67431, '\p{^Is_Sc=lina}', "");
     Expect(0, 67431, '\P{Is_Sc=lina}', "");
@@ -134213,38 +135477,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67432, '\p{^Is_Sc=lina}', "");
     Expect(1, 67432, '\P{Is_Sc=lina}', "");
     Expect(0, 67432, '\P{^Is_Sc=lina}', "");
-    Expect(1, 67431, '\p{Is_Sc=- Lina}', "");
-    Expect(0, 67431, '\p{^Is_Sc=- Lina}', "");
-    Expect(0, 67431, '\P{Is_Sc=- Lina}', "");
-    Expect(1, 67431, '\P{^Is_Sc=- Lina}', "");
-    Expect(0, 67432, '\p{Is_Sc=- Lina}', "");
-    Expect(1, 67432, '\p{^Is_Sc=- Lina}', "");
-    Expect(1, 67432, '\P{Is_Sc=- Lina}', "");
-    Expect(0, 67432, '\P{^Is_Sc=- Lina}', "");
-    Error('\p{Script=:=-_Linear_B}');
-    Error('\P{Script=:=-_Linear_B}');
+    Expect(1, 67431, '\p{Is_Sc=	 Lina}', "");
+    Expect(0, 67431, '\p{^Is_Sc=	 Lina}', "");
+    Expect(0, 67431, '\P{Is_Sc=	 Lina}', "");
+    Expect(1, 67431, '\P{^Is_Sc=	 Lina}', "");
+    Expect(0, 67432, '\p{Is_Sc=	 Lina}', "");
+    Expect(1, 67432, '\p{^Is_Sc=	 Lina}', "");
+    Expect(1, 67432, '\P{Is_Sc=	 Lina}', "");
+    Expect(0, 67432, '\P{^Is_Sc=	 Lina}', "");
+    Error('\p{Script=-/a/linear_B}');
+    Error('\P{Script=-/a/linear_B}');
     Expect(1, 65786, '\p{Script=:\ALinear_B\z:}', "");;
     Expect(0, 65787, '\p{Script=:\ALinear_B\z:}', "");;
-    Expect(1, 65786, '\p{Script:	linearb}', "");
-    Expect(0, 65786, '\p{^Script:	linearb}', "");
-    Expect(0, 65786, '\P{Script:	linearb}', "");
-    Expect(1, 65786, '\P{^Script:	linearb}', "");
-    Expect(0, 65787, '\p{Script:	linearb}', "");
-    Expect(1, 65787, '\p{^Script:	linearb}', "");
-    Expect(1, 65787, '\P{Script:	linearb}', "");
-    Expect(0, 65787, '\P{^Script:	linearb}', "");
+    Expect(1, 65786, '\p{Script=linearb}', "");
+    Expect(0, 65786, '\p{^Script=linearb}', "");
+    Expect(0, 65786, '\P{Script=linearb}', "");
+    Expect(1, 65786, '\P{^Script=linearb}', "");
+    Expect(0, 65787, '\p{Script=linearb}', "");
+    Expect(1, 65787, '\p{^Script=linearb}', "");
+    Expect(1, 65787, '\P{Script=linearb}', "");
+    Expect(0, 65787, '\P{^Script=linearb}', "");
     Expect(1, 65786, '\p{Script=:\Alinearb\z:}', "");;
     Expect(0, 65787, '\p{Script=:\Alinearb\z:}', "");;
-    Expect(1, 65786, '\p{Script=_-LINEAR_b}', "");
-    Expect(0, 65786, '\p{^Script=_-LINEAR_b}', "");
-    Expect(0, 65786, '\P{Script=_-LINEAR_b}', "");
-    Expect(1, 65786, '\P{^Script=_-LINEAR_b}', "");
-    Expect(0, 65787, '\p{Script=_-LINEAR_b}', "");
-    Expect(1, 65787, '\p{^Script=_-LINEAR_b}', "");
-    Expect(1, 65787, '\P{Script=_-LINEAR_b}', "");
-    Expect(0, 65787, '\P{^Script=_-LINEAR_b}', "");
-    Error('\p{Sc=-:=Linb}');
-    Error('\P{Sc=-:=Linb}');
+    Expect(1, 65786, '\p{Script=	 Linear_B}', "");
+    Expect(0, 65786, '\p{^Script=	 Linear_B}', "");
+    Expect(0, 65786, '\P{Script=	 Linear_B}', "");
+    Expect(1, 65786, '\P{^Script=	 Linear_B}', "");
+    Expect(0, 65787, '\p{Script=	 Linear_B}', "");
+    Expect(1, 65787, '\p{^Script=	 Linear_B}', "");
+    Expect(1, 65787, '\P{Script=	 Linear_B}', "");
+    Expect(0, 65787, '\P{^Script=	 Linear_B}', "");
+    Error('\p{Sc=_	Linb:=}');
+    Error('\P{Sc=_	Linb:=}');
     Expect(1, 65786, '\p{Sc=:\ALinb\z:}', "");;
     Expect(0, 65787, '\p{Sc=:\ALinb\z:}', "");;
     Expect(1, 65786, '\p{Sc=linb}', "");
@@ -134257,16 +135521,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65787, '\P{^Sc=linb}', "");
     Expect(1, 65786, '\p{Sc=:\Alinb\z:}', "");;
     Expect(0, 65787, '\p{Sc=:\Alinb\z:}', "");;
-    Expect(1, 65786, '\p{Sc= -Linb}', "");
-    Expect(0, 65786, '\p{^Sc= -Linb}', "");
-    Expect(0, 65786, '\P{Sc= -Linb}', "");
-    Expect(1, 65786, '\P{^Sc= -Linb}', "");
-    Expect(0, 65787, '\p{Sc= -Linb}', "");
-    Expect(1, 65787, '\p{^Sc= -Linb}', "");
-    Expect(1, 65787, '\P{Sc= -Linb}', "");
-    Expect(0, 65787, '\P{^Sc= -Linb}', "");
-    Error('\p{Is_Script:   /a/LINEAR_B}');
-    Error('\P{Is_Script:   /a/LINEAR_B}');
+    Expect(1, 65786, '\p{Sc:_LINB}', "");
+    Expect(0, 65786, '\p{^Sc:_LINB}', "");
+    Expect(0, 65786, '\P{Sc:_LINB}', "");
+    Expect(1, 65786, '\P{^Sc:_LINB}', "");
+    Expect(0, 65787, '\p{Sc:_LINB}', "");
+    Expect(1, 65787, '\p{^Sc:_LINB}', "");
+    Expect(1, 65787, '\P{Sc:_LINB}', "");
+    Expect(0, 65787, '\P{^Sc:_LINB}', "");
+    Error('\p{Is_Script=/a/LINEAR_B}');
+    Error('\P{Is_Script=/a/LINEAR_B}');
     Expect(1, 65786, '\p{Is_Script=linearb}', "");
     Expect(0, 65786, '\p{^Is_Script=linearb}', "");
     Expect(0, 65786, '\P{Is_Script=linearb}', "");
@@ -134275,16 +135539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65787, '\p{^Is_Script=linearb}', "");
     Expect(1, 65787, '\P{Is_Script=linearb}', "");
     Expect(0, 65787, '\P{^Is_Script=linearb}', "");
-    Expect(1, 65786, '\p{Is_Script=  LINEAR_B}', "");
-    Expect(0, 65786, '\p{^Is_Script=  LINEAR_B}', "");
-    Expect(0, 65786, '\P{Is_Script=  LINEAR_B}', "");
-    Expect(1, 65786, '\P{^Is_Script=  LINEAR_B}', "");
-    Expect(0, 65787, '\p{Is_Script=  LINEAR_B}', "");
-    Expect(1, 65787, '\p{^Is_Script=  LINEAR_B}', "");
-    Expect(1, 65787, '\P{Is_Script=  LINEAR_B}', "");
-    Expect(0, 65787, '\P{^Is_Script=  LINEAR_B}', "");
-    Error('\p{Is_Sc=/a/LINB}');
-    Error('\P{Is_Sc=/a/LINB}');
+    Expect(1, 65786, '\p{Is_Script=_	Linear_B}', "");
+    Expect(0, 65786, '\p{^Is_Script=_	Linear_B}', "");
+    Expect(0, 65786, '\P{Is_Script=_	Linear_B}', "");
+    Expect(1, 65786, '\P{^Is_Script=_	Linear_B}', "");
+    Expect(0, 65787, '\p{Is_Script=_	Linear_B}', "");
+    Expect(1, 65787, '\p{^Is_Script=_	Linear_B}', "");
+    Expect(1, 65787, '\P{Is_Script=_	Linear_B}', "");
+    Expect(0, 65787, '\P{^Is_Script=_	Linear_B}', "");
+    Error('\p{Is_Sc=	/a/linb}');
+    Error('\P{Is_Sc=	/a/linb}');
     Expect(1, 65786, '\p{Is_Sc=linb}', "");
     Expect(0, 65786, '\p{^Is_Sc=linb}', "");
     Expect(0, 65786, '\P{Is_Sc=linb}', "");
@@ -134293,38 +135557,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65787, '\p{^Is_Sc=linb}', "");
     Expect(1, 65787, '\P{Is_Sc=linb}', "");
     Expect(0, 65787, '\P{^Is_Sc=linb}', "");
-    Expect(1, 65786, '\p{Is_Sc=	linb}', "");
-    Expect(0, 65786, '\p{^Is_Sc=	linb}', "");
-    Expect(0, 65786, '\P{Is_Sc=	linb}', "");
-    Expect(1, 65786, '\P{^Is_Sc=	linb}', "");
-    Expect(0, 65787, '\p{Is_Sc=	linb}', "");
-    Expect(1, 65787, '\p{^Is_Sc=	linb}', "");
-    Expect(1, 65787, '\P{Is_Sc=	linb}', "");
-    Expect(0, 65787, '\P{^Is_Sc=	linb}', "");
-    Error('\p{Script=-_Lisu:=}');
-    Error('\P{Script=-_Lisu:=}');
+    Expect(1, 65786, '\p{Is_Sc=	_linb}', "");
+    Expect(0, 65786, '\p{^Is_Sc=	_linb}', "");
+    Expect(0, 65786, '\P{Is_Sc=	_linb}', "");
+    Expect(1, 65786, '\P{^Is_Sc=	_linb}', "");
+    Expect(0, 65787, '\p{Is_Sc=	_linb}', "");
+    Expect(1, 65787, '\p{^Is_Sc=	_linb}', "");
+    Expect(1, 65787, '\P{Is_Sc=	_linb}', "");
+    Expect(0, 65787, '\P{^Is_Sc=	_linb}', "");
+    Error('\p{Script=- lisu:=}');
+    Error('\P{Script=- lisu:=}');
     Expect(1, 73648, '\p{Script=:\ALisu\z:}', "");;
     Expect(0, 73649, '\p{Script=:\ALisu\z:}', "");;
-    Expect(1, 73648, '\p{Script=lisu}', "");
-    Expect(0, 73648, '\p{^Script=lisu}', "");
-    Expect(0, 73648, '\P{Script=lisu}', "");
-    Expect(1, 73648, '\P{^Script=lisu}', "");
-    Expect(0, 73649, '\p{Script=lisu}', "");
-    Expect(1, 73649, '\p{^Script=lisu}', "");
-    Expect(1, 73649, '\P{Script=lisu}', "");
-    Expect(0, 73649, '\P{^Script=lisu}', "");
+    Expect(1, 73648, '\p{Script:   lisu}', "");
+    Expect(0, 73648, '\p{^Script:   lisu}', "");
+    Expect(0, 73648, '\P{Script:   lisu}', "");
+    Expect(1, 73648, '\P{^Script:   lisu}', "");
+    Expect(0, 73649, '\p{Script:   lisu}', "");
+    Expect(1, 73649, '\p{^Script:   lisu}', "");
+    Expect(1, 73649, '\P{Script:   lisu}', "");
+    Expect(0, 73649, '\P{^Script:   lisu}', "");
     Expect(1, 73648, '\p{Script=:\Alisu\z:}', "");;
     Expect(0, 73649, '\p{Script=:\Alisu\z:}', "");;
-    Expect(1, 73648, '\p{Script=LISU}', "");
-    Expect(0, 73648, '\p{^Script=LISU}', "");
-    Expect(0, 73648, '\P{Script=LISU}', "");
-    Expect(1, 73648, '\P{^Script=LISU}', "");
-    Expect(0, 73649, '\p{Script=LISU}', "");
-    Expect(1, 73649, '\p{^Script=LISU}', "");
-    Expect(1, 73649, '\P{Script=LISU}', "");
-    Expect(0, 73649, '\P{^Script=LISU}', "");
-    Error('\p{Sc= :=Lisu}');
-    Error('\P{Sc= :=Lisu}');
+    Expect(1, 73648, '\p{Script=	_Lisu}', "");
+    Expect(0, 73648, '\p{^Script=	_Lisu}', "");
+    Expect(0, 73648, '\P{Script=	_Lisu}', "");
+    Expect(1, 73648, '\P{^Script=	_Lisu}', "");
+    Expect(0, 73649, '\p{Script=	_Lisu}', "");
+    Expect(1, 73649, '\p{^Script=	_Lisu}', "");
+    Expect(1, 73649, '\P{Script=	_Lisu}', "");
+    Expect(0, 73649, '\P{^Script=	_Lisu}', "");
+    Error('\p{Sc=/a/ 	Lisu}');
+    Error('\P{Sc=/a/ 	Lisu}');
     Expect(1, 73648, '\p{Sc=:\ALisu\z:}', "");;
     Expect(0, 73649, '\p{Sc=:\ALisu\z:}', "");;
     Expect(1, 73648, '\p{Sc=lisu}', "");
@@ -134337,16 +135601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73649, '\P{^Sc=lisu}', "");
     Expect(1, 73648, '\p{Sc=:\Alisu\z:}', "");;
     Expect(0, 73649, '\p{Sc=:\Alisu\z:}', "");;
-    Expect(1, 73648, '\p{Sc=		LISU}', "");
-    Expect(0, 73648, '\p{^Sc=		LISU}', "");
-    Expect(0, 73648, '\P{Sc=		LISU}', "");
-    Expect(1, 73648, '\P{^Sc=		LISU}', "");
-    Expect(0, 73649, '\p{Sc=		LISU}', "");
-    Expect(1, 73649, '\p{^Sc=		LISU}', "");
-    Expect(1, 73649, '\P{Sc=		LISU}', "");
-    Expect(0, 73649, '\P{^Sc=		LISU}', "");
-    Error('\p{Is_Script=  lisu/a/}');
-    Error('\P{Is_Script=  lisu/a/}');
+    Expect(1, 73648, '\p{Sc=__Lisu}', "");
+    Expect(0, 73648, '\p{^Sc=__Lisu}', "");
+    Expect(0, 73648, '\P{Sc=__Lisu}', "");
+    Expect(1, 73648, '\P{^Sc=__Lisu}', "");
+    Expect(0, 73649, '\p{Sc=__Lisu}', "");
+    Expect(1, 73649, '\p{^Sc=__Lisu}', "");
+    Expect(1, 73649, '\P{Sc=__Lisu}', "");
+    Expect(0, 73649, '\P{^Sc=__Lisu}', "");
+    Error('\p{Is_Script=/a/		Lisu}');
+    Error('\P{Is_Script=/a/		Lisu}');
     Expect(1, 73648, '\p{Is_Script=lisu}', "");
     Expect(0, 73648, '\p{^Is_Script=lisu}', "");
     Expect(0, 73648, '\P{Is_Script=lisu}', "");
@@ -134355,16 +135619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73649, '\p{^Is_Script=lisu}', "");
     Expect(1, 73649, '\P{Is_Script=lisu}', "");
     Expect(0, 73649, '\P{^Is_Script=lisu}', "");
-    Expect(1, 73648, '\p{Is_Script=-LISU}', "");
-    Expect(0, 73648, '\p{^Is_Script=-LISU}', "");
-    Expect(0, 73648, '\P{Is_Script=-LISU}', "");
-    Expect(1, 73648, '\P{^Is_Script=-LISU}', "");
-    Expect(0, 73649, '\p{Is_Script=-LISU}', "");
-    Expect(1, 73649, '\p{^Is_Script=-LISU}', "");
-    Expect(1, 73649, '\P{Is_Script=-LISU}', "");
-    Expect(0, 73649, '\P{^Is_Script=-LISU}', "");
-    Error('\p{Is_Sc=_-Lisu:=}');
-    Error('\P{Is_Sc=_-Lisu:=}');
+    Expect(1, 73648, '\p{Is_Script= Lisu}', "");
+    Expect(0, 73648, '\p{^Is_Script= Lisu}', "");
+    Expect(0, 73648, '\P{Is_Script= Lisu}', "");
+    Expect(1, 73648, '\P{^Is_Script= Lisu}', "");
+    Expect(0, 73649, '\p{Is_Script= Lisu}', "");
+    Expect(1, 73649, '\p{^Is_Script= Lisu}', "");
+    Expect(1, 73649, '\P{Is_Script= Lisu}', "");
+    Expect(0, 73649, '\P{^Is_Script= Lisu}', "");
+    Error('\p{Is_Sc=_-lisu:=}');
+    Error('\P{Is_Sc=_-lisu:=}');
     Expect(1, 73648, '\p{Is_Sc=lisu}', "");
     Expect(0, 73648, '\p{^Is_Sc=lisu}', "");
     Expect(0, 73648, '\P{Is_Sc=lisu}', "");
@@ -134373,16 +135637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73649, '\p{^Is_Sc=lisu}', "");
     Expect(1, 73649, '\P{Is_Sc=lisu}', "");
     Expect(0, 73649, '\P{^Is_Sc=lisu}', "");
-    Expect(1, 73648, '\p{Is_Sc= 	LISU}', "");
-    Expect(0, 73648, '\p{^Is_Sc= 	LISU}', "");
-    Expect(0, 73648, '\P{Is_Sc= 	LISU}', "");
-    Expect(1, 73648, '\P{^Is_Sc= 	LISU}', "");
-    Expect(0, 73649, '\p{Is_Sc= 	LISU}', "");
-    Expect(1, 73649, '\p{^Is_Sc= 	LISU}', "");
-    Expect(1, 73649, '\P{Is_Sc= 	LISU}', "");
-    Expect(0, 73649, '\P{^Is_Sc= 	LISU}', "");
-    Error('\p{Script=/a/_ lycian}');
-    Error('\P{Script=/a/_ lycian}');
+    Expect(1, 73648, '\p{Is_Sc=__lisu}', "");
+    Expect(0, 73648, '\p{^Is_Sc=__lisu}', "");
+    Expect(0, 73648, '\P{Is_Sc=__lisu}', "");
+    Expect(1, 73648, '\P{^Is_Sc=__lisu}', "");
+    Expect(0, 73649, '\p{Is_Sc=__lisu}', "");
+    Expect(1, 73649, '\p{^Is_Sc=__lisu}', "");
+    Expect(1, 73649, '\P{Is_Sc=__lisu}', "");
+    Expect(0, 73649, '\P{^Is_Sc=__lisu}', "");
+    Error('\p{Script=:=lycian}');
+    Error('\P{Script=:=lycian}');
     Expect(1, 66204, '\p{Script=:\ALycian\z:}', "");;
     Expect(0, 66205, '\p{Script=:\ALycian\z:}', "");;
     Expect(1, 66204, '\p{Script=lycian}', "");
@@ -134395,16 +135659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66205, '\P{^Script=lycian}', "");
     Expect(1, 66204, '\p{Script=:\Alycian\z:}', "");;
     Expect(0, 66205, '\p{Script=:\Alycian\z:}', "");;
-    Expect(1, 66204, '\p{Script= 	Lycian}', "");
-    Expect(0, 66204, '\p{^Script= 	Lycian}', "");
-    Expect(0, 66204, '\P{Script= 	Lycian}', "");
-    Expect(1, 66204, '\P{^Script= 	Lycian}', "");
-    Expect(0, 66205, '\p{Script= 	Lycian}', "");
-    Expect(1, 66205, '\p{^Script= 	Lycian}', "");
-    Expect(1, 66205, '\P{Script= 	Lycian}', "");
-    Expect(0, 66205, '\P{^Script= 	Lycian}', "");
-    Error('\p{Sc=	Lyci:=}');
-    Error('\P{Sc=	Lyci:=}');
+    Expect(1, 66204, '\p{Script:	Lycian}', "");
+    Expect(0, 66204, '\p{^Script:	Lycian}', "");
+    Expect(0, 66204, '\P{Script:	Lycian}', "");
+    Expect(1, 66204, '\P{^Script:	Lycian}', "");
+    Expect(0, 66205, '\p{Script:	Lycian}', "");
+    Expect(1, 66205, '\p{^Script:	Lycian}', "");
+    Expect(1, 66205, '\P{Script:	Lycian}', "");
+    Expect(0, 66205, '\P{^Script:	Lycian}', "");
+    Error('\p{Sc=:=	 lyci}');
+    Error('\P{Sc=:=	 lyci}');
     Expect(1, 66204, '\p{Sc=:\ALyci\z:}', "");;
     Expect(0, 66205, '\p{Sc=:\ALyci\z:}', "");;
     Expect(1, 66204, '\p{Sc=lyci}', "");
@@ -134417,34 +135681,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66205, '\P{^Sc=lyci}', "");
     Expect(1, 66204, '\p{Sc=:\Alyci\z:}', "");;
     Expect(0, 66205, '\p{Sc=:\Alyci\z:}', "");;
-    Expect(1, 66204, '\p{Sc=_	Lyci}', "");
-    Expect(0, 66204, '\p{^Sc=_	Lyci}', "");
-    Expect(0, 66204, '\P{Sc=_	Lyci}', "");
-    Expect(1, 66204, '\P{^Sc=_	Lyci}', "");
-    Expect(0, 66205, '\p{Sc=_	Lyci}', "");
-    Expect(1, 66205, '\p{^Sc=_	Lyci}', "");
-    Expect(1, 66205, '\P{Sc=_	Lyci}', "");
-    Expect(0, 66205, '\P{^Sc=_	Lyci}', "");
-    Error('\p{Is_Script=--lycian/a/}');
-    Error('\P{Is_Script=--lycian/a/}');
-    Expect(1, 66204, '\p{Is_Script=lycian}', "");
-    Expect(0, 66204, '\p{^Is_Script=lycian}', "");
-    Expect(0, 66204, '\P{Is_Script=lycian}', "");
-    Expect(1, 66204, '\P{^Is_Script=lycian}', "");
-    Expect(0, 66205, '\p{Is_Script=lycian}', "");
-    Expect(1, 66205, '\p{^Is_Script=lycian}', "");
-    Expect(1, 66205, '\P{Is_Script=lycian}', "");
-    Expect(0, 66205, '\P{^Is_Script=lycian}', "");
-    Expect(1, 66204, '\p{Is_Script=_-Lycian}', "");
-    Expect(0, 66204, '\p{^Is_Script=_-Lycian}', "");
-    Expect(0, 66204, '\P{Is_Script=_-Lycian}', "");
-    Expect(1, 66204, '\P{^Is_Script=_-Lycian}', "");
-    Expect(0, 66205, '\p{Is_Script=_-Lycian}', "");
-    Expect(1, 66205, '\p{^Is_Script=_-Lycian}', "");
-    Expect(1, 66205, '\P{Is_Script=_-Lycian}', "");
-    Expect(0, 66205, '\P{^Is_Script=_-Lycian}', "");
-    Error('\p{Is_Sc=- Lyci/a/}');
-    Error('\P{Is_Sc=- Lyci/a/}');
+    Expect(1, 66204, '\p{Sc=-Lyci}', "");
+    Expect(0, 66204, '\p{^Sc=-Lyci}', "");
+    Expect(0, 66204, '\P{Sc=-Lyci}', "");
+    Expect(1, 66204, '\P{^Sc=-Lyci}', "");
+    Expect(0, 66205, '\p{Sc=-Lyci}', "");
+    Expect(1, 66205, '\p{^Sc=-Lyci}', "");
+    Expect(1, 66205, '\P{Sc=-Lyci}', "");
+    Expect(0, 66205, '\P{^Sc=-Lyci}', "");
+    Error('\p{Is_Script=-:=Lycian}');
+    Error('\P{Is_Script=-:=Lycian}');
+    Expect(1, 66204, '\p{Is_Script:	lycian}', "");
+    Expect(0, 66204, '\p{^Is_Script:	lycian}', "");
+    Expect(0, 66204, '\P{Is_Script:	lycian}', "");
+    Expect(1, 66204, '\P{^Is_Script:	lycian}', "");
+    Expect(0, 66205, '\p{Is_Script:	lycian}', "");
+    Expect(1, 66205, '\p{^Is_Script:	lycian}', "");
+    Expect(1, 66205, '\P{Is_Script:	lycian}', "");
+    Expect(0, 66205, '\P{^Is_Script:	lycian}', "");
+    Expect(1, 66204, '\p{Is_Script: Lycian}', "");
+    Expect(0, 66204, '\p{^Is_Script: Lycian}', "");
+    Expect(0, 66204, '\P{Is_Script: Lycian}', "");
+    Expect(1, 66204, '\P{^Is_Script: Lycian}', "");
+    Expect(0, 66205, '\p{Is_Script: Lycian}', "");
+    Expect(1, 66205, '\p{^Is_Script: Lycian}', "");
+    Expect(1, 66205, '\P{Is_Script: Lycian}', "");
+    Expect(0, 66205, '\P{^Is_Script: Lycian}', "");
+    Error('\p{Is_Sc=- Lyci:=}');
+    Error('\P{Is_Sc=- Lyci:=}');
     Expect(1, 66204, '\p{Is_Sc=lyci}', "");
     Expect(0, 66204, '\p{^Is_Sc=lyci}', "");
     Expect(0, 66204, '\P{Is_Sc=lyci}', "");
@@ -134453,38 +135717,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66205, '\p{^Is_Sc=lyci}', "");
     Expect(1, 66205, '\P{Is_Sc=lyci}', "");
     Expect(0, 66205, '\P{^Is_Sc=lyci}', "");
-    Expect(1, 66204, '\p{Is_Sc=		lyci}', "");
-    Expect(0, 66204, '\p{^Is_Sc=		lyci}', "");
-    Expect(0, 66204, '\P{Is_Sc=		lyci}', "");
-    Expect(1, 66204, '\P{^Is_Sc=		lyci}', "");
-    Expect(0, 66205, '\p{Is_Sc=		lyci}', "");
-    Expect(1, 66205, '\p{^Is_Sc=		lyci}', "");
-    Expect(1, 66205, '\P{Is_Sc=		lyci}', "");
-    Expect(0, 66205, '\P{^Is_Sc=		lyci}', "");
-    Error('\p{Script=:=	-Lydian}');
-    Error('\P{Script=:=	-Lydian}');
+    Expect(1, 66204, '\p{Is_Sc=__LYCI}', "");
+    Expect(0, 66204, '\p{^Is_Sc=__LYCI}', "");
+    Expect(0, 66204, '\P{Is_Sc=__LYCI}', "");
+    Expect(1, 66204, '\P{^Is_Sc=__LYCI}', "");
+    Expect(0, 66205, '\p{Is_Sc=__LYCI}', "");
+    Expect(1, 66205, '\p{^Is_Sc=__LYCI}', "");
+    Expect(1, 66205, '\P{Is_Sc=__LYCI}', "");
+    Expect(0, 66205, '\P{^Is_Sc=__LYCI}', "");
+    Error('\p{Script=	_lydian/a/}');
+    Error('\P{Script=	_lydian/a/}');
     Expect(1, 67903, '\p{Script=:\ALydian\z:}', "");;
     Expect(0, 67904, '\p{Script=:\ALydian\z:}', "");;
-    Expect(1, 67903, '\p{Script: lydian}', "");
-    Expect(0, 67903, '\p{^Script: lydian}', "");
-    Expect(0, 67903, '\P{Script: lydian}', "");
-    Expect(1, 67903, '\P{^Script: lydian}', "");
-    Expect(0, 67904, '\p{Script: lydian}', "");
-    Expect(1, 67904, '\p{^Script: lydian}', "");
-    Expect(1, 67904, '\P{Script: lydian}', "");
-    Expect(0, 67904, '\P{^Script: lydian}', "");
+    Expect(1, 67903, '\p{Script:   lydian}', "");
+    Expect(0, 67903, '\p{^Script:   lydian}', "");
+    Expect(0, 67903, '\P{Script:   lydian}', "");
+    Expect(1, 67903, '\P{^Script:   lydian}', "");
+    Expect(0, 67904, '\p{Script:   lydian}', "");
+    Expect(1, 67904, '\p{^Script:   lydian}', "");
+    Expect(1, 67904, '\P{Script:   lydian}', "");
+    Expect(0, 67904, '\P{^Script:   lydian}', "");
     Expect(1, 67903, '\p{Script=:\Alydian\z:}', "");;
     Expect(0, 67904, '\p{Script=:\Alydian\z:}', "");;
-    Expect(1, 67903, '\p{Script=		Lydian}', "");
-    Expect(0, 67903, '\p{^Script=		Lydian}', "");
-    Expect(0, 67903, '\P{Script=		Lydian}', "");
-    Expect(1, 67903, '\P{^Script=		Lydian}', "");
-    Expect(0, 67904, '\p{Script=		Lydian}', "");
-    Expect(1, 67904, '\p{^Script=		Lydian}', "");
-    Expect(1, 67904, '\P{Script=		Lydian}', "");
-    Expect(0, 67904, '\P{^Script=		Lydian}', "");
-    Error('\p{Sc:/a/lydi}');
-    Error('\P{Sc:/a/lydi}');
+    Expect(1, 67903, '\p{Script: --lydian}', "");
+    Expect(0, 67903, '\p{^Script: --lydian}', "");
+    Expect(0, 67903, '\P{Script: --lydian}', "");
+    Expect(1, 67903, '\P{^Script: --lydian}', "");
+    Expect(0, 67904, '\p{Script: --lydian}', "");
+    Expect(1, 67904, '\p{^Script: --lydian}', "");
+    Expect(1, 67904, '\P{Script: --lydian}', "");
+    Expect(0, 67904, '\P{^Script: --lydian}', "");
+    Error('\p{Sc=	 Lydi:=}');
+    Error('\P{Sc=	 Lydi:=}');
     Expect(1, 67903, '\p{Sc=:\ALydi\z:}', "");;
     Expect(0, 67904, '\p{Sc=:\ALydi\z:}', "");;
     Expect(1, 67903, '\p{Sc=lydi}', "");
@@ -134497,52 +135761,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67904, '\P{^Sc=lydi}', "");
     Expect(1, 67903, '\p{Sc=:\Alydi\z:}', "");;
     Expect(0, 67904, '\p{Sc=:\Alydi\z:}', "");;
-    Expect(1, 67903, '\p{Sc= Lydi}', "");
-    Expect(0, 67903, '\p{^Sc= Lydi}', "");
-    Expect(0, 67903, '\P{Sc= Lydi}', "");
-    Expect(1, 67903, '\P{^Sc= Lydi}', "");
-    Expect(0, 67904, '\p{Sc= Lydi}', "");
-    Expect(1, 67904, '\p{^Sc= Lydi}', "");
-    Expect(1, 67904, '\P{Sc= Lydi}', "");
-    Expect(0, 67904, '\P{^Sc= Lydi}', "");
-    Error('\p{Is_Script=	/a/Lydian}');
-    Error('\P{Is_Script=	/a/Lydian}');
-    Expect(1, 67903, '\p{Is_Script=lydian}', "");
-    Expect(0, 67903, '\p{^Is_Script=lydian}', "");
-    Expect(0, 67903, '\P{Is_Script=lydian}', "");
-    Expect(1, 67903, '\P{^Is_Script=lydian}', "");
-    Expect(0, 67904, '\p{Is_Script=lydian}', "");
-    Expect(1, 67904, '\p{^Is_Script=lydian}', "");
-    Expect(1, 67904, '\P{Is_Script=lydian}', "");
-    Expect(0, 67904, '\P{^Is_Script=lydian}', "");
-    Expect(1, 67903, '\p{Is_Script=_	lydian}', "");
-    Expect(0, 67903, '\p{^Is_Script=_	lydian}', "");
-    Expect(0, 67903, '\P{Is_Script=_	lydian}', "");
-    Expect(1, 67903, '\P{^Is_Script=_	lydian}', "");
-    Expect(0, 67904, '\p{Is_Script=_	lydian}', "");
-    Expect(1, 67904, '\p{^Is_Script=_	lydian}', "");
-    Expect(1, 67904, '\P{Is_Script=_	lydian}', "");
-    Expect(0, 67904, '\P{^Is_Script=_	lydian}', "");
-    Error('\p{Is_Sc= /a/Lydi}');
-    Error('\P{Is_Sc= /a/Lydi}');
-    Expect(1, 67903, '\p{Is_Sc=lydi}', "");
-    Expect(0, 67903, '\p{^Is_Sc=lydi}', "");
-    Expect(0, 67903, '\P{Is_Sc=lydi}', "");
-    Expect(1, 67903, '\P{^Is_Sc=lydi}', "");
-    Expect(0, 67904, '\p{Is_Sc=lydi}', "");
-    Expect(1, 67904, '\p{^Is_Sc=lydi}', "");
-    Expect(1, 67904, '\P{Is_Sc=lydi}', "");
-    Expect(0, 67904, '\P{^Is_Sc=lydi}', "");
-    Expect(1, 67903, '\p{Is_Sc=-lydi}', "");
-    Expect(0, 67903, '\p{^Is_Sc=-lydi}', "");
-    Expect(0, 67903, '\P{Is_Sc=-lydi}', "");
-    Expect(1, 67903, '\P{^Is_Sc=-lydi}', "");
-    Expect(0, 67904, '\p{Is_Sc=-lydi}', "");
-    Expect(1, 67904, '\p{^Is_Sc=-lydi}', "");
-    Expect(1, 67904, '\P{Is_Sc=-lydi}', "");
-    Expect(0, 67904, '\P{^Is_Sc=-lydi}', "");
-    Error('\p{Script=_Mahajani/a/}');
-    Error('\P{Script=_Mahajani/a/}');
+    Expect(1, 67903, '\p{Sc= -Lydi}', "");
+    Expect(0, 67903, '\p{^Sc= -Lydi}', "");
+    Expect(0, 67903, '\P{Sc= -Lydi}', "");
+    Expect(1, 67903, '\P{^Sc= -Lydi}', "");
+    Expect(0, 67904, '\p{Sc= -Lydi}', "");
+    Expect(1, 67904, '\p{^Sc= -Lydi}', "");
+    Expect(1, 67904, '\P{Sc= -Lydi}', "");
+    Expect(0, 67904, '\P{^Sc= -Lydi}', "");
+    Error('\p{Is_Script=/a/LYDIAN}');
+    Error('\P{Is_Script=/a/LYDIAN}');
+    Expect(1, 67903, '\p{Is_Script:lydian}', "");
+    Expect(0, 67903, '\p{^Is_Script:lydian}', "");
+    Expect(0, 67903, '\P{Is_Script:lydian}', "");
+    Expect(1, 67903, '\P{^Is_Script:lydian}', "");
+    Expect(0, 67904, '\p{Is_Script:lydian}', "");
+    Expect(1, 67904, '\p{^Is_Script:lydian}', "");
+    Expect(1, 67904, '\P{Is_Script:lydian}', "");
+    Expect(0, 67904, '\P{^Is_Script:lydian}', "");
+    Expect(1, 67903, '\p{Is_Script= lydian}', "");
+    Expect(0, 67903, '\p{^Is_Script= lydian}', "");
+    Expect(0, 67903, '\P{Is_Script= lydian}', "");
+    Expect(1, 67903, '\P{^Is_Script= lydian}', "");
+    Expect(0, 67904, '\p{Is_Script= lydian}', "");
+    Expect(1, 67904, '\p{^Is_Script= lydian}', "");
+    Expect(1, 67904, '\P{Is_Script= lydian}', "");
+    Expect(0, 67904, '\P{^Is_Script= lydian}', "");
+    Error('\p{Is_Sc=:=_LYDI}');
+    Error('\P{Is_Sc=:=_LYDI}');
+    Expect(1, 67903, '\p{Is_Sc:   lydi}', "");
+    Expect(0, 67903, '\p{^Is_Sc:   lydi}', "");
+    Expect(0, 67903, '\P{Is_Sc:   lydi}', "");
+    Expect(1, 67903, '\P{^Is_Sc:   lydi}', "");
+    Expect(0, 67904, '\p{Is_Sc:   lydi}', "");
+    Expect(1, 67904, '\p{^Is_Sc:   lydi}', "");
+    Expect(1, 67904, '\P{Is_Sc:   lydi}', "");
+    Expect(0, 67904, '\P{^Is_Sc:   lydi}', "");
+    Expect(1, 67903, '\p{Is_Sc:_Lydi}', "");
+    Expect(0, 67903, '\p{^Is_Sc:_Lydi}', "");
+    Expect(0, 67903, '\P{Is_Sc:_Lydi}', "");
+    Expect(1, 67903, '\P{^Is_Sc:_Lydi}', "");
+    Expect(0, 67904, '\p{Is_Sc:_Lydi}', "");
+    Expect(1, 67904, '\p{^Is_Sc:_Lydi}', "");
+    Expect(1, 67904, '\P{Is_Sc:_Lydi}', "");
+    Expect(0, 67904, '\P{^Is_Sc:_Lydi}', "");
+    Error('\p{Script=:=_-MAHAJANI}');
+    Error('\P{Script=:=_-MAHAJANI}');
     Expect(1, 70006, '\p{Script=:\AMahajani\z:}', "");;
     Expect(0, 70007, '\p{Script=:\AMahajani\z:}', "");;
     Expect(1, 70006, '\p{Script=mahajani}', "");
@@ -134555,16 +135819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70007, '\P{^Script=mahajani}', "");
     Expect(1, 70006, '\p{Script=:\Amahajani\z:}', "");;
     Expect(0, 70007, '\p{Script=:\Amahajani\z:}', "");;
-    Expect(1, 70006, '\p{Script=_ Mahajani}', "");
-    Expect(0, 70006, '\p{^Script=_ Mahajani}', "");
-    Expect(0, 70006, '\P{Script=_ Mahajani}', "");
-    Expect(1, 70006, '\P{^Script=_ Mahajani}', "");
-    Expect(0, 70007, '\p{Script=_ Mahajani}', "");
-    Expect(1, 70007, '\p{^Script=_ Mahajani}', "");
-    Expect(1, 70007, '\P{Script=_ Mahajani}', "");
-    Expect(0, 70007, '\P{^Script=_ Mahajani}', "");
-    Error('\p{Sc=:= Mahj}');
-    Error('\P{Sc=:= Mahj}');
+    Expect(1, 70006, '\p{Script=- MAHAJANI}', "");
+    Expect(0, 70006, '\p{^Script=- MAHAJANI}', "");
+    Expect(0, 70006, '\P{Script=- MAHAJANI}', "");
+    Expect(1, 70006, '\P{^Script=- MAHAJANI}', "");
+    Expect(0, 70007, '\p{Script=- MAHAJANI}', "");
+    Expect(1, 70007, '\p{^Script=- MAHAJANI}', "");
+    Expect(1, 70007, '\P{Script=- MAHAJANI}', "");
+    Expect(0, 70007, '\P{^Script=- MAHAJANI}', "");
+    Error('\p{Sc=_/a/Mahj}');
+    Error('\P{Sc=_/a/Mahj}');
     Expect(1, 70006, '\p{Sc=:\AMahj\z:}', "");;
     Expect(0, 70007, '\p{Sc=:\AMahj\z:}', "");;
     Expect(1, 70006, '\p{Sc=mahj}', "");
@@ -134577,16 +135841,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70007, '\P{^Sc=mahj}', "");
     Expect(1, 70006, '\p{Sc=:\Amahj\z:}', "");;
     Expect(0, 70007, '\p{Sc=:\Amahj\z:}', "");;
-    Expect(1, 70006, '\p{Sc=-	mahj}', "");
-    Expect(0, 70006, '\p{^Sc=-	mahj}', "");
-    Expect(0, 70006, '\P{Sc=-	mahj}', "");
-    Expect(1, 70006, '\P{^Sc=-	mahj}', "");
-    Expect(0, 70007, '\p{Sc=-	mahj}', "");
-    Expect(1, 70007, '\p{^Sc=-	mahj}', "");
-    Expect(1, 70007, '\P{Sc=-	mahj}', "");
-    Expect(0, 70007, '\P{^Sc=-	mahj}', "");
-    Error('\p{Is_Script=_	mahajani/a/}');
-    Error('\P{Is_Script=_	mahajani/a/}');
+    Expect(1, 70006, '\p{Sc=-mahj}', "");
+    Expect(0, 70006, '\p{^Sc=-mahj}', "");
+    Expect(0, 70006, '\P{Sc=-mahj}', "");
+    Expect(1, 70006, '\P{^Sc=-mahj}', "");
+    Expect(0, 70007, '\p{Sc=-mahj}', "");
+    Expect(1, 70007, '\p{^Sc=-mahj}', "");
+    Expect(1, 70007, '\P{Sc=-mahj}', "");
+    Expect(0, 70007, '\P{^Sc=-mahj}', "");
+    Error('\p{Is_Script=/a/	MAHAJANI}');
+    Error('\P{Is_Script=/a/	MAHAJANI}');
     Expect(1, 70006, '\p{Is_Script=mahajani}', "");
     Expect(0, 70006, '\p{^Is_Script=mahajani}', "");
     Expect(0, 70006, '\P{Is_Script=mahajani}', "");
@@ -134595,16 +135859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70007, '\p{^Is_Script=mahajani}', "");
     Expect(1, 70007, '\P{Is_Script=mahajani}', "");
     Expect(0, 70007, '\P{^Is_Script=mahajani}', "");
-    Expect(1, 70006, '\p{Is_Script=--Mahajani}', "");
-    Expect(0, 70006, '\p{^Is_Script=--Mahajani}', "");
-    Expect(0, 70006, '\P{Is_Script=--Mahajani}', "");
-    Expect(1, 70006, '\P{^Is_Script=--Mahajani}', "");
-    Expect(0, 70007, '\p{Is_Script=--Mahajani}', "");
-    Expect(1, 70007, '\p{^Is_Script=--Mahajani}', "");
-    Expect(1, 70007, '\P{Is_Script=--Mahajani}', "");
-    Expect(0, 70007, '\P{^Is_Script=--Mahajani}', "");
-    Error('\p{Is_Sc=	:=Mahj}');
-    Error('\P{Is_Sc=	:=Mahj}');
+    Expect(1, 70006, '\p{Is_Script=- Mahajani}', "");
+    Expect(0, 70006, '\p{^Is_Script=- Mahajani}', "");
+    Expect(0, 70006, '\P{Is_Script=- Mahajani}', "");
+    Expect(1, 70006, '\P{^Is_Script=- Mahajani}', "");
+    Expect(0, 70007, '\p{Is_Script=- Mahajani}', "");
+    Expect(1, 70007, '\p{^Is_Script=- Mahajani}', "");
+    Expect(1, 70007, '\P{Is_Script=- Mahajani}', "");
+    Expect(0, 70007, '\P{^Is_Script=- Mahajani}', "");
+    Error('\p{Is_Sc=/a/  mahj}');
+    Error('\P{Is_Sc=/a/  mahj}');
     Expect(1, 70006, '\p{Is_Sc=mahj}', "");
     Expect(0, 70006, '\p{^Is_Sc=mahj}', "");
     Expect(0, 70006, '\P{Is_Sc=mahj}', "");
@@ -134613,16 +135877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70007, '\p{^Is_Sc=mahj}', "");
     Expect(1, 70007, '\P{Is_Sc=mahj}', "");
     Expect(0, 70007, '\P{^Is_Sc=mahj}', "");
-    Expect(1, 70006, '\p{Is_Sc:  	Mahj}', "");
-    Expect(0, 70006, '\p{^Is_Sc:  	Mahj}', "");
-    Expect(0, 70006, '\P{Is_Sc:  	Mahj}', "");
-    Expect(1, 70006, '\P{^Is_Sc:  	Mahj}', "");
-    Expect(0, 70007, '\p{Is_Sc:  	Mahj}', "");
-    Expect(1, 70007, '\p{^Is_Sc:  	Mahj}', "");
-    Expect(1, 70007, '\P{Is_Sc:  	Mahj}', "");
-    Expect(0, 70007, '\P{^Is_Sc:  	Mahj}', "");
-    Error('\p{Script=	 Makasar/a/}');
-    Error('\P{Script=	 Makasar/a/}');
+    Expect(1, 70006, '\p{Is_Sc=	MAHJ}', "");
+    Expect(0, 70006, '\p{^Is_Sc=	MAHJ}', "");
+    Expect(0, 70006, '\P{Is_Sc=	MAHJ}', "");
+    Expect(1, 70006, '\P{^Is_Sc=	MAHJ}', "");
+    Expect(0, 70007, '\p{Is_Sc=	MAHJ}', "");
+    Expect(1, 70007, '\p{^Is_Sc=	MAHJ}', "");
+    Expect(1, 70007, '\P{Is_Sc=	MAHJ}', "");
+    Expect(0, 70007, '\P{^Is_Sc=	MAHJ}', "");
+    Error('\p{Script=:=Makasar}');
+    Error('\P{Script=:=Makasar}');
     Expect(1, 73464, '\p{Script=:\AMakasar\z:}', "");;
     Expect(0, 73465, '\p{Script=:\AMakasar\z:}', "");;
     Expect(1, 73464, '\p{Script=makasar}', "");
@@ -134635,16 +135899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73465, '\P{^Script=makasar}', "");
     Expect(1, 73464, '\p{Script=:\Amakasar\z:}', "");;
     Expect(0, 73465, '\p{Script=:\Amakasar\z:}', "");;
-    Expect(1, 73464, '\p{Script:   _Makasar}', "");
-    Expect(0, 73464, '\p{^Script:   _Makasar}', "");
-    Expect(0, 73464, '\P{Script:   _Makasar}', "");
-    Expect(1, 73464, '\P{^Script:   _Makasar}', "");
-    Expect(0, 73465, '\p{Script:   _Makasar}', "");
-    Expect(1, 73465, '\p{^Script:   _Makasar}', "");
-    Expect(1, 73465, '\P{Script:   _Makasar}', "");
-    Expect(0, 73465, '\P{^Script:   _Makasar}', "");
-    Error('\p{Sc=:= 	Maka}');
-    Error('\P{Sc=:= 	Maka}');
+    Expect(1, 73464, '\p{Script=_	makasar}', "");
+    Expect(0, 73464, '\p{^Script=_	makasar}', "");
+    Expect(0, 73464, '\P{Script=_	makasar}', "");
+    Expect(1, 73464, '\P{^Script=_	makasar}', "");
+    Expect(0, 73465, '\p{Script=_	makasar}', "");
+    Expect(1, 73465, '\p{^Script=_	makasar}', "");
+    Expect(1, 73465, '\P{Script=_	makasar}', "");
+    Expect(0, 73465, '\P{^Script=_	makasar}', "");
+    Error('\p{Sc=:=		MAKA}');
+    Error('\P{Sc=:=		MAKA}');
     Expect(1, 73464, '\p{Sc=:\AMaka\z:}', "");;
     Expect(0, 73465, '\p{Sc=:\AMaka\z:}', "");;
     Expect(1, 73464, '\p{Sc=maka}', "");
@@ -134657,16 +135921,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73465, '\P{^Sc=maka}', "");
     Expect(1, 73464, '\p{Sc=:\Amaka\z:}', "");;
     Expect(0, 73465, '\p{Sc=:\Amaka\z:}', "");;
-    Expect(1, 73464, '\p{Sc=- maka}', "");
-    Expect(0, 73464, '\p{^Sc=- maka}', "");
-    Expect(0, 73464, '\P{Sc=- maka}', "");
-    Expect(1, 73464, '\P{^Sc=- maka}', "");
-    Expect(0, 73465, '\p{Sc=- maka}', "");
-    Expect(1, 73465, '\p{^Sc=- maka}', "");
-    Expect(1, 73465, '\P{Sc=- maka}', "");
-    Expect(0, 73465, '\P{^Sc=- maka}', "");
-    Error('\p{Is_Script: _:=makasar}');
-    Error('\P{Is_Script: _:=makasar}');
+    Expect(1, 73464, '\p{Sc=-	MAKA}', "");
+    Expect(0, 73464, '\p{^Sc=-	MAKA}', "");
+    Expect(0, 73464, '\P{Sc=-	MAKA}', "");
+    Expect(1, 73464, '\P{^Sc=-	MAKA}', "");
+    Expect(0, 73465, '\p{Sc=-	MAKA}', "");
+    Expect(1, 73465, '\p{^Sc=-	MAKA}', "");
+    Expect(1, 73465, '\P{Sc=-	MAKA}', "");
+    Expect(0, 73465, '\P{^Sc=-	MAKA}', "");
+    Error('\p{Is_Script=	Makasar/a/}');
+    Error('\P{Is_Script=	Makasar/a/}');
     Expect(1, 73464, '\p{Is_Script=makasar}', "");
     Expect(0, 73464, '\p{^Is_Script=makasar}', "");
     Expect(0, 73464, '\P{Is_Script=makasar}', "");
@@ -134675,16 +135939,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73465, '\p{^Is_Script=makasar}', "");
     Expect(1, 73465, '\P{Is_Script=makasar}', "");
     Expect(0, 73465, '\P{^Is_Script=makasar}', "");
-    Expect(1, 73464, '\p{Is_Script=	-makasar}', "");
-    Expect(0, 73464, '\p{^Is_Script=	-makasar}', "");
-    Expect(0, 73464, '\P{Is_Script=	-makasar}', "");
-    Expect(1, 73464, '\P{^Is_Script=	-makasar}', "");
-    Expect(0, 73465, '\p{Is_Script=	-makasar}', "");
-    Expect(1, 73465, '\p{^Is_Script=	-makasar}', "");
-    Expect(1, 73465, '\P{Is_Script=	-makasar}', "");
-    Expect(0, 73465, '\P{^Is_Script=	-makasar}', "");
-    Error('\p{Is_Sc:	MAKA/a/}');
-    Error('\P{Is_Sc:	MAKA/a/}');
+    Expect(1, 73464, '\p{Is_Script=-Makasar}', "");
+    Expect(0, 73464, '\p{^Is_Script=-Makasar}', "");
+    Expect(0, 73464, '\P{Is_Script=-Makasar}', "");
+    Expect(1, 73464, '\P{^Is_Script=-Makasar}', "");
+    Expect(0, 73465, '\p{Is_Script=-Makasar}', "");
+    Expect(1, 73465, '\p{^Is_Script=-Makasar}', "");
+    Expect(1, 73465, '\P{Is_Script=-Makasar}', "");
+    Expect(0, 73465, '\P{^Is_Script=-Makasar}', "");
+    Error('\p{Is_Sc=-:=Maka}');
+    Error('\P{Is_Sc=-:=Maka}');
     Expect(1, 73464, '\p{Is_Sc=maka}', "");
     Expect(0, 73464, '\p{^Is_Sc=maka}', "");
     Expect(0, 73464, '\P{Is_Sc=maka}', "");
@@ -134693,16 +135957,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73465, '\p{^Is_Sc=maka}', "");
     Expect(1, 73465, '\P{Is_Sc=maka}', "");
     Expect(0, 73465, '\P{^Is_Sc=maka}', "");
-    Expect(1, 73464, '\p{Is_Sc=-_MAKA}', "");
-    Expect(0, 73464, '\p{^Is_Sc=-_MAKA}', "");
-    Expect(0, 73464, '\P{Is_Sc=-_MAKA}', "");
-    Expect(1, 73464, '\P{^Is_Sc=-_MAKA}', "");
-    Expect(0, 73465, '\p{Is_Sc=-_MAKA}', "");
-    Expect(1, 73465, '\p{^Is_Sc=-_MAKA}', "");
-    Expect(1, 73465, '\P{Is_Sc=-_MAKA}', "");
-    Expect(0, 73465, '\P{^Is_Sc=-_MAKA}', "");
-    Error('\p{Script:   :=_	MANDAIC}');
-    Error('\P{Script:   :=_	MANDAIC}');
+    Expect(1, 73464, '\p{Is_Sc= -Maka}', "");
+    Expect(0, 73464, '\p{^Is_Sc= -Maka}', "");
+    Expect(0, 73464, '\P{Is_Sc= -Maka}', "");
+    Expect(1, 73464, '\P{^Is_Sc= -Maka}', "");
+    Expect(0, 73465, '\p{Is_Sc= -Maka}', "");
+    Expect(1, 73465, '\p{^Is_Sc= -Maka}', "");
+    Expect(1, 73465, '\P{Is_Sc= -Maka}', "");
+    Expect(0, 73465, '\P{^Is_Sc= -Maka}', "");
+    Error('\p{Script=	:=mandaic}');
+    Error('\P{Script=	:=mandaic}');
     Expect(1, 2142, '\p{Script=:\AMandaic\z:}', "");;
     Expect(0, 2143, '\p{Script=:\AMandaic\z:}', "");;
     Expect(1, 2142, '\p{Script=mandaic}', "");
@@ -134715,16 +135979,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2143, '\P{^Script=mandaic}', "");
     Expect(1, 2142, '\p{Script=:\Amandaic\z:}', "");;
     Expect(0, 2143, '\p{Script=:\Amandaic\z:}', "");;
-    Expect(1, 2142, '\p{Script= -Mandaic}', "");
-    Expect(0, 2142, '\p{^Script= -Mandaic}', "");
-    Expect(0, 2142, '\P{Script= -Mandaic}', "");
-    Expect(1, 2142, '\P{^Script= -Mandaic}', "");
-    Expect(0, 2143, '\p{Script= -Mandaic}', "");
-    Expect(1, 2143, '\p{^Script= -Mandaic}', "");
-    Expect(1, 2143, '\P{Script= -Mandaic}', "");
-    Expect(0, 2143, '\P{^Script= -Mandaic}', "");
-    Error('\p{Sc=/a/MAND}');
-    Error('\P{Sc=/a/MAND}');
+    Expect(1, 2142, '\p{Script=--Mandaic}', "");
+    Expect(0, 2142, '\p{^Script=--Mandaic}', "");
+    Expect(0, 2142, '\P{Script=--Mandaic}', "");
+    Expect(1, 2142, '\P{^Script=--Mandaic}', "");
+    Expect(0, 2143, '\p{Script=--Mandaic}', "");
+    Expect(1, 2143, '\p{^Script=--Mandaic}', "");
+    Expect(1, 2143, '\P{Script=--Mandaic}', "");
+    Expect(0, 2143, '\P{^Script=--Mandaic}', "");
+    Error('\p{Sc=	_Mand:=}');
+    Error('\P{Sc=	_Mand:=}');
     Expect(1, 2142, '\p{Sc=:\AMand\z:}', "");;
     Expect(0, 2143, '\p{Sc=:\AMand\z:}', "");;
     Expect(1, 2142, '\p{Sc=mand}', "");
@@ -134737,16 +136001,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2143, '\P{^Sc=mand}', "");
     Expect(1, 2142, '\p{Sc=:\Amand\z:}', "");;
     Expect(0, 2143, '\p{Sc=:\Amand\z:}', "");;
-    Expect(1, 2142, '\p{Sc=-MAND}', "");
-    Expect(0, 2142, '\p{^Sc=-MAND}', "");
-    Expect(0, 2142, '\P{Sc=-MAND}', "");
-    Expect(1, 2142, '\P{^Sc=-MAND}', "");
-    Expect(0, 2143, '\p{Sc=-MAND}', "");
-    Expect(1, 2143, '\p{^Sc=-MAND}', "");
-    Expect(1, 2143, '\P{Sc=-MAND}', "");
-    Expect(0, 2143, '\P{^Sc=-MAND}', "");
-    Error('\p{Is_Script= -Mandaic:=}');
-    Error('\P{Is_Script= -Mandaic:=}');
+    Expect(1, 2142, '\p{Sc=__mand}', "");
+    Expect(0, 2142, '\p{^Sc=__mand}', "");
+    Expect(0, 2142, '\P{Sc=__mand}', "");
+    Expect(1, 2142, '\P{^Sc=__mand}', "");
+    Expect(0, 2143, '\p{Sc=__mand}', "");
+    Expect(1, 2143, '\p{^Sc=__mand}', "");
+    Expect(1, 2143, '\P{Sc=__mand}', "");
+    Expect(0, 2143, '\P{^Sc=__mand}', "");
+    Error('\p{Is_Script=-	MANDAIC:=}');
+    Error('\P{Is_Script=-	MANDAIC:=}');
     Expect(1, 2142, '\p{Is_Script=mandaic}', "");
     Expect(0, 2142, '\p{^Is_Script=mandaic}', "");
     Expect(0, 2142, '\P{Is_Script=mandaic}', "");
@@ -134755,16 +136019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2143, '\p{^Is_Script=mandaic}', "");
     Expect(1, 2143, '\P{Is_Script=mandaic}', "");
     Expect(0, 2143, '\P{^Is_Script=mandaic}', "");
-    Expect(1, 2142, '\p{Is_Script=-	Mandaic}', "");
-    Expect(0, 2142, '\p{^Is_Script=-	Mandaic}', "");
-    Expect(0, 2142, '\P{Is_Script=-	Mandaic}', "");
-    Expect(1, 2142, '\P{^Is_Script=-	Mandaic}', "");
-    Expect(0, 2143, '\p{Is_Script=-	Mandaic}', "");
-    Expect(1, 2143, '\p{^Is_Script=-	Mandaic}', "");
-    Expect(1, 2143, '\P{Is_Script=-	Mandaic}', "");
-    Expect(0, 2143, '\P{^Is_Script=-	Mandaic}', "");
-    Error('\p{Is_Sc=:=Mand}');
-    Error('\P{Is_Sc=:=Mand}');
+    Expect(1, 2142, '\p{Is_Script=  Mandaic}', "");
+    Expect(0, 2142, '\p{^Is_Script=  Mandaic}', "");
+    Expect(0, 2142, '\P{Is_Script=  Mandaic}', "");
+    Expect(1, 2142, '\P{^Is_Script=  Mandaic}', "");
+    Expect(0, 2143, '\p{Is_Script=  Mandaic}', "");
+    Expect(1, 2143, '\p{^Is_Script=  Mandaic}', "");
+    Expect(1, 2143, '\P{Is_Script=  Mandaic}', "");
+    Expect(0, 2143, '\P{^Is_Script=  Mandaic}', "");
+    Error('\p{Is_Sc=:=	 Mand}');
+    Error('\P{Is_Sc=:=	 Mand}');
     Expect(1, 2142, '\p{Is_Sc=mand}', "");
     Expect(0, 2142, '\p{^Is_Sc=mand}', "");
     Expect(0, 2142, '\P{Is_Sc=mand}', "");
@@ -134773,16 +136037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2143, '\p{^Is_Sc=mand}', "");
     Expect(1, 2143, '\P{Is_Sc=mand}', "");
     Expect(0, 2143, '\P{^Is_Sc=mand}', "");
-    Expect(1, 2142, '\p{Is_Sc=-	Mand}', "");
-    Expect(0, 2142, '\p{^Is_Sc=-	Mand}', "");
-    Expect(0, 2142, '\P{Is_Sc=-	Mand}', "");
-    Expect(1, 2142, '\P{^Is_Sc=-	Mand}', "");
-    Expect(0, 2143, '\p{Is_Sc=-	Mand}', "");
-    Expect(1, 2143, '\p{^Is_Sc=-	Mand}', "");
-    Expect(1, 2143, '\P{Is_Sc=-	Mand}', "");
-    Expect(0, 2143, '\P{^Is_Sc=-	Mand}', "");
-    Error('\p{Script=--Manichaean:=}');
-    Error('\P{Script=--Manichaean:=}');
+    Expect(1, 2142, '\p{Is_Sc= _MAND}', "");
+    Expect(0, 2142, '\p{^Is_Sc= _MAND}', "");
+    Expect(0, 2142, '\P{Is_Sc= _MAND}', "");
+    Expect(1, 2142, '\P{^Is_Sc= _MAND}', "");
+    Expect(0, 2143, '\p{Is_Sc= _MAND}', "");
+    Expect(1, 2143, '\p{^Is_Sc= _MAND}', "");
+    Expect(1, 2143, '\P{Is_Sc= _MAND}', "");
+    Expect(0, 2143, '\P{^Is_Sc= _MAND}', "");
+    Error('\p{Script= -Manichaean:=}');
+    Error('\P{Script= -Manichaean:=}');
     Expect(1, 68342, '\p{Script=:\AManichaean\z:}', "");;
     Expect(0, 68343, '\p{Script=:\AManichaean\z:}', "");;
     Expect(1, 68342, '\p{Script=manichaean}', "");
@@ -134795,16 +136059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68343, '\P{^Script=manichaean}', "");
     Expect(1, 68342, '\p{Script=:\Amanichaean\z:}', "");;
     Expect(0, 68343, '\p{Script=:\Amanichaean\z:}', "");;
-    Expect(1, 68342, '\p{Script=--MANICHAEAN}', "");
-    Expect(0, 68342, '\p{^Script=--MANICHAEAN}', "");
-    Expect(0, 68342, '\P{Script=--MANICHAEAN}', "");
-    Expect(1, 68342, '\P{^Script=--MANICHAEAN}', "");
-    Expect(0, 68343, '\p{Script=--MANICHAEAN}', "");
-    Expect(1, 68343, '\p{^Script=--MANICHAEAN}', "");
-    Expect(1, 68343, '\P{Script=--MANICHAEAN}', "");
-    Expect(0, 68343, '\P{^Script=--MANICHAEAN}', "");
-    Error('\p{Sc=-_Mani:=}');
-    Error('\P{Sc=-_Mani:=}');
+    Expect(1, 68342, '\p{Script= -Manichaean}', "");
+    Expect(0, 68342, '\p{^Script= -Manichaean}', "");
+    Expect(0, 68342, '\P{Script= -Manichaean}', "");
+    Expect(1, 68342, '\P{^Script= -Manichaean}', "");
+    Expect(0, 68343, '\p{Script= -Manichaean}', "");
+    Expect(1, 68343, '\p{^Script= -Manichaean}', "");
+    Expect(1, 68343, '\P{Script= -Manichaean}', "");
+    Expect(0, 68343, '\P{^Script= -Manichaean}', "");
+    Error('\p{Sc=	:=MANI}');
+    Error('\P{Sc=	:=MANI}');
     Expect(1, 68342, '\p{Sc=:\AMani\z:}', "");;
     Expect(0, 68343, '\p{Sc=:\AMani\z:}', "");;
     Expect(1, 68342, '\p{Sc=mani}', "");
@@ -134817,16 +136081,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68343, '\P{^Sc=mani}', "");
     Expect(1, 68342, '\p{Sc=:\Amani\z:}', "");;
     Expect(0, 68343, '\p{Sc=:\Amani\z:}', "");;
-    Expect(1, 68342, '\p{Sc=_Mani}', "");
-    Expect(0, 68342, '\p{^Sc=_Mani}', "");
-    Expect(0, 68342, '\P{Sc=_Mani}', "");
-    Expect(1, 68342, '\P{^Sc=_Mani}', "");
-    Expect(0, 68343, '\p{Sc=_Mani}', "");
-    Expect(1, 68343, '\p{^Sc=_Mani}', "");
-    Expect(1, 68343, '\P{Sc=_Mani}', "");
-    Expect(0, 68343, '\P{^Sc=_Mani}', "");
-    Error('\p{Is_Script= /a/Manichaean}');
-    Error('\P{Is_Script= /a/Manichaean}');
+    Expect(1, 68342, '\p{Sc=		Mani}', "");
+    Expect(0, 68342, '\p{^Sc=		Mani}', "");
+    Expect(0, 68342, '\P{Sc=		Mani}', "");
+    Expect(1, 68342, '\P{^Sc=		Mani}', "");
+    Expect(0, 68343, '\p{Sc=		Mani}', "");
+    Expect(1, 68343, '\p{^Sc=		Mani}', "");
+    Expect(1, 68343, '\P{Sc=		Mani}', "");
+    Expect(0, 68343, '\P{^Sc=		Mani}', "");
+    Error('\p{Is_Script= Manichaean:=}');
+    Error('\P{Is_Script= Manichaean:=}');
     Expect(1, 68342, '\p{Is_Script=manichaean}', "");
     Expect(0, 68342, '\p{^Is_Script=manichaean}', "");
     Expect(0, 68342, '\P{Is_Script=manichaean}', "");
@@ -134835,16 +136099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68343, '\p{^Is_Script=manichaean}', "");
     Expect(1, 68343, '\P{Is_Script=manichaean}', "");
     Expect(0, 68343, '\P{^Is_Script=manichaean}', "");
-    Expect(1, 68342, '\p{Is_Script=-Manichaean}', "");
-    Expect(0, 68342, '\p{^Is_Script=-Manichaean}', "");
-    Expect(0, 68342, '\P{Is_Script=-Manichaean}', "");
-    Expect(1, 68342, '\P{^Is_Script=-Manichaean}', "");
-    Expect(0, 68343, '\p{Is_Script=-Manichaean}', "");
-    Expect(1, 68343, '\p{^Is_Script=-Manichaean}', "");
-    Expect(1, 68343, '\P{Is_Script=-Manichaean}', "");
-    Expect(0, 68343, '\P{^Is_Script=-Manichaean}', "");
-    Error('\p{Is_Sc=:=mani}');
-    Error('\P{Is_Sc=:=mani}');
+    Expect(1, 68342, '\p{Is_Script=_ manichaean}', "");
+    Expect(0, 68342, '\p{^Is_Script=_ manichaean}', "");
+    Expect(0, 68342, '\P{Is_Script=_ manichaean}', "");
+    Expect(1, 68342, '\P{^Is_Script=_ manichaean}', "");
+    Expect(0, 68343, '\p{Is_Script=_ manichaean}', "");
+    Expect(1, 68343, '\p{^Is_Script=_ manichaean}', "");
+    Expect(1, 68343, '\P{Is_Script=_ manichaean}', "");
+    Expect(0, 68343, '\P{^Is_Script=_ manichaean}', "");
+    Error('\p{Is_Sc=:=__Mani}');
+    Error('\P{Is_Sc=:=__Mani}');
     Expect(1, 68342, '\p{Is_Sc=mani}', "");
     Expect(0, 68342, '\p{^Is_Sc=mani}', "");
     Expect(0, 68342, '\P{Is_Sc=mani}', "");
@@ -134853,16 +136117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68343, '\p{^Is_Sc=mani}', "");
     Expect(1, 68343, '\P{Is_Sc=mani}', "");
     Expect(0, 68343, '\P{^Is_Sc=mani}', "");
-    Expect(1, 68342, '\p{Is_Sc= mani}', "");
-    Expect(0, 68342, '\p{^Is_Sc= mani}', "");
-    Expect(0, 68342, '\P{Is_Sc= mani}', "");
-    Expect(1, 68342, '\P{^Is_Sc= mani}', "");
-    Expect(0, 68343, '\p{Is_Sc= mani}', "");
-    Expect(1, 68343, '\p{^Is_Sc= mani}', "");
-    Expect(1, 68343, '\P{Is_Sc= mani}', "");
-    Expect(0, 68343, '\P{^Is_Sc= mani}', "");
-    Error('\p{Script=	/a/MARCHEN}');
-    Error('\P{Script=	/a/MARCHEN}');
+    Expect(1, 68342, '\p{Is_Sc=-	MANI}', "");
+    Expect(0, 68342, '\p{^Is_Sc=-	MANI}', "");
+    Expect(0, 68342, '\P{Is_Sc=-	MANI}', "");
+    Expect(1, 68342, '\P{^Is_Sc=-	MANI}', "");
+    Expect(0, 68343, '\p{Is_Sc=-	MANI}', "");
+    Expect(1, 68343, '\p{^Is_Sc=-	MANI}', "");
+    Expect(1, 68343, '\P{Is_Sc=-	MANI}', "");
+    Expect(0, 68343, '\P{^Is_Sc=-	MANI}', "");
+    Error('\p{Script:   -marchen/a/}');
+    Error('\P{Script:   -marchen/a/}');
     Expect(1, 72886, '\p{Script=:\AMarchen\z:}', "");;
     Expect(0, 72887, '\p{Script=:\AMarchen\z:}', "");;
     Expect(1, 72886, '\p{Script=marchen}', "");
@@ -134883,8 +136147,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72887, '\p{^Script=-	Marchen}', "");
     Expect(1, 72887, '\P{Script=-	Marchen}', "");
     Expect(0, 72887, '\P{^Script=-	Marchen}', "");
-    Error('\p{Sc= Marc:=}');
-    Error('\P{Sc= Marc:=}');
+    Error('\p{Sc=:=_ Marc}');
+    Error('\P{Sc=:=_ Marc}');
     Expect(1, 72886, '\p{Sc=:\AMarc\z:}', "");;
     Expect(0, 72887, '\p{Sc=:\AMarc\z:}', "");;
     Expect(1, 72886, '\p{Sc=marc}', "");
@@ -134897,74 +136161,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72887, '\P{^Sc=marc}', "");
     Expect(1, 72886, '\p{Sc=:\Amarc\z:}', "");;
     Expect(0, 72887, '\p{Sc=:\Amarc\z:}', "");;
-    Expect(1, 72886, '\p{Sc=Marc}', "");
-    Expect(0, 72886, '\p{^Sc=Marc}', "");
-    Expect(0, 72886, '\P{Sc=Marc}', "");
-    Expect(1, 72886, '\P{^Sc=Marc}', "");
-    Expect(0, 72887, '\p{Sc=Marc}', "");
-    Expect(1, 72887, '\p{^Sc=Marc}', "");
-    Expect(1, 72887, '\P{Sc=Marc}', "");
-    Expect(0, 72887, '\P{^Sc=Marc}', "");
-    Error('\p{Is_Script=:=_MARCHEN}');
-    Error('\P{Is_Script=:=_MARCHEN}');
-    Expect(1, 72886, '\p{Is_Script:marchen}', "");
-    Expect(0, 72886, '\p{^Is_Script:marchen}', "");
-    Expect(0, 72886, '\P{Is_Script:marchen}', "");
-    Expect(1, 72886, '\P{^Is_Script:marchen}', "");
-    Expect(0, 72887, '\p{Is_Script:marchen}', "");
-    Expect(1, 72887, '\p{^Is_Script:marchen}', "");
-    Expect(1, 72887, '\P{Is_Script:marchen}', "");
-    Expect(0, 72887, '\P{^Is_Script:marchen}', "");
-    Expect(1, 72886, '\p{Is_Script= -marchen}', "");
-    Expect(0, 72886, '\p{^Is_Script= -marchen}', "");
-    Expect(0, 72886, '\P{Is_Script= -marchen}', "");
-    Expect(1, 72886, '\P{^Is_Script= -marchen}', "");
-    Expect(0, 72887, '\p{Is_Script= -marchen}', "");
-    Expect(1, 72887, '\p{^Is_Script= -marchen}', "");
-    Expect(1, 72887, '\P{Is_Script= -marchen}', "");
-    Expect(0, 72887, '\P{^Is_Script= -marchen}', "");
-    Error('\p{Is_Sc= :=marc}');
-    Error('\P{Is_Sc= :=marc}');
-    Expect(1, 72886, '\p{Is_Sc:marc}', "");
-    Expect(0, 72886, '\p{^Is_Sc:marc}', "");
-    Expect(0, 72886, '\P{Is_Sc:marc}', "");
-    Expect(1, 72886, '\P{^Is_Sc:marc}', "");
-    Expect(0, 72887, '\p{Is_Sc:marc}', "");
-    Expect(1, 72887, '\p{^Is_Sc:marc}', "");
-    Expect(1, 72887, '\P{Is_Sc:marc}', "");
-    Expect(0, 72887, '\P{^Is_Sc:marc}', "");
-    Expect(1, 72886, '\p{Is_Sc=  MARC}', "");
-    Expect(0, 72886, '\p{^Is_Sc=  MARC}', "");
-    Expect(0, 72886, '\P{Is_Sc=  MARC}', "");
-    Expect(1, 72886, '\P{^Is_Sc=  MARC}', "");
-    Expect(0, 72887, '\p{Is_Sc=  MARC}', "");
-    Expect(1, 72887, '\p{^Is_Sc=  MARC}', "");
-    Expect(1, 72887, '\P{Is_Sc=  MARC}', "");
-    Expect(0, 72887, '\P{^Is_Sc=  MARC}', "");
-    Error('\p{Script=-:=MEDEFAIDRIN}');
-    Error('\P{Script=-:=MEDEFAIDRIN}');
+    Expect(1, 72886, '\p{Sc=	_Marc}', "");
+    Expect(0, 72886, '\p{^Sc=	_Marc}', "");
+    Expect(0, 72886, '\P{Sc=	_Marc}', "");
+    Expect(1, 72886, '\P{^Sc=	_Marc}', "");
+    Expect(0, 72887, '\p{Sc=	_Marc}', "");
+    Expect(1, 72887, '\p{^Sc=	_Marc}', "");
+    Expect(1, 72887, '\P{Sc=	_Marc}', "");
+    Expect(0, 72887, '\P{^Sc=	_Marc}', "");
+    Error('\p{Is_Script=-/a/Marchen}');
+    Error('\P{Is_Script=-/a/Marchen}');
+    Expect(1, 72886, '\p{Is_Script=marchen}', "");
+    Expect(0, 72886, '\p{^Is_Script=marchen}', "");
+    Expect(0, 72886, '\P{Is_Script=marchen}', "");
+    Expect(1, 72886, '\P{^Is_Script=marchen}', "");
+    Expect(0, 72887, '\p{Is_Script=marchen}', "");
+    Expect(1, 72887, '\p{^Is_Script=marchen}', "");
+    Expect(1, 72887, '\P{Is_Script=marchen}', "");
+    Expect(0, 72887, '\P{^Is_Script=marchen}', "");
+    Expect(1, 72886, '\p{Is_Script=__Marchen}', "");
+    Expect(0, 72886, '\p{^Is_Script=__Marchen}', "");
+    Expect(0, 72886, '\P{Is_Script=__Marchen}', "");
+    Expect(1, 72886, '\P{^Is_Script=__Marchen}', "");
+    Expect(0, 72887, '\p{Is_Script=__Marchen}', "");
+    Expect(1, 72887, '\p{^Is_Script=__Marchen}', "");
+    Expect(1, 72887, '\P{Is_Script=__Marchen}', "");
+    Expect(0, 72887, '\P{^Is_Script=__Marchen}', "");
+    Error('\p{Is_Sc= -Marc:=}');
+    Error('\P{Is_Sc= -Marc:=}');
+    Expect(1, 72886, '\p{Is_Sc=marc}', "");
+    Expect(0, 72886, '\p{^Is_Sc=marc}', "");
+    Expect(0, 72886, '\P{Is_Sc=marc}', "");
+    Expect(1, 72886, '\P{^Is_Sc=marc}', "");
+    Expect(0, 72887, '\p{Is_Sc=marc}', "");
+    Expect(1, 72887, '\p{^Is_Sc=marc}', "");
+    Expect(1, 72887, '\P{Is_Sc=marc}', "");
+    Expect(0, 72887, '\P{^Is_Sc=marc}', "");
+    Expect(1, 72886, '\p{Is_Sc:	- Marc}', "");
+    Expect(0, 72886, '\p{^Is_Sc:	- Marc}', "");
+    Expect(0, 72886, '\P{Is_Sc:	- Marc}', "");
+    Expect(1, 72886, '\P{^Is_Sc:	- Marc}', "");
+    Expect(0, 72887, '\p{Is_Sc:	- Marc}', "");
+    Expect(1, 72887, '\p{^Is_Sc:	- Marc}', "");
+    Expect(1, 72887, '\P{Is_Sc:	- Marc}', "");
+    Expect(0, 72887, '\P{^Is_Sc:	- Marc}', "");
+    Error('\p{Script:-:=medefaidrin}');
+    Error('\P{Script:-:=medefaidrin}');
     Expect(1, 93850, '\p{Script=:\AMedefaidrin\z:}', "");;
     Expect(0, 93851, '\p{Script=:\AMedefaidrin\z:}', "");;
-    Expect(1, 93850, '\p{Script:   medefaidrin}', "");
-    Expect(0, 93850, '\p{^Script:   medefaidrin}', "");
-    Expect(0, 93850, '\P{Script:   medefaidrin}', "");
-    Expect(1, 93850, '\P{^Script:   medefaidrin}', "");
-    Expect(0, 93851, '\p{Script:   medefaidrin}', "");
-    Expect(1, 93851, '\p{^Script:   medefaidrin}', "");
-    Expect(1, 93851, '\P{Script:   medefaidrin}', "");
-    Expect(0, 93851, '\P{^Script:   medefaidrin}', "");
+    Expect(1, 93850, '\p{Script=medefaidrin}', "");
+    Expect(0, 93850, '\p{^Script=medefaidrin}', "");
+    Expect(0, 93850, '\P{Script=medefaidrin}', "");
+    Expect(1, 93850, '\P{^Script=medefaidrin}', "");
+    Expect(0, 93851, '\p{Script=medefaidrin}', "");
+    Expect(1, 93851, '\p{^Script=medefaidrin}', "");
+    Expect(1, 93851, '\P{Script=medefaidrin}', "");
+    Expect(0, 93851, '\P{^Script=medefaidrin}', "");
     Expect(1, 93850, '\p{Script=:\Amedefaidrin\z:}', "");;
     Expect(0, 93851, '\p{Script=:\Amedefaidrin\z:}', "");;
-    Expect(1, 93850, '\p{Script= _MEDEFAIDRIN}', "");
-    Expect(0, 93850, '\p{^Script= _MEDEFAIDRIN}', "");
-    Expect(0, 93850, '\P{Script= _MEDEFAIDRIN}', "");
-    Expect(1, 93850, '\P{^Script= _MEDEFAIDRIN}', "");
-    Expect(0, 93851, '\p{Script= _MEDEFAIDRIN}', "");
-    Expect(1, 93851, '\p{^Script= _MEDEFAIDRIN}', "");
-    Expect(1, 93851, '\P{Script= _MEDEFAIDRIN}', "");
-    Expect(0, 93851, '\P{^Script= _MEDEFAIDRIN}', "");
-    Error('\p{Sc=/a/_Medf}');
-    Error('\P{Sc=/a/_Medf}');
+    Expect(1, 93850, '\p{Script=_ Medefaidrin}', "");
+    Expect(0, 93850, '\p{^Script=_ Medefaidrin}', "");
+    Expect(0, 93850, '\P{Script=_ Medefaidrin}', "");
+    Expect(1, 93850, '\P{^Script=_ Medefaidrin}', "");
+    Expect(0, 93851, '\p{Script=_ Medefaidrin}', "");
+    Expect(1, 93851, '\p{^Script=_ Medefaidrin}', "");
+    Expect(1, 93851, '\P{Script=_ Medefaidrin}', "");
+    Expect(0, 93851, '\P{^Script=_ Medefaidrin}', "");
+    Error('\p{Sc=--MEDF:=}');
+    Error('\P{Sc=--MEDF:=}');
     Expect(1, 93850, '\p{Sc=:\AMedf\z:}', "");;
     Expect(0, 93851, '\p{Sc=:\AMedf\z:}', "");;
     Expect(1, 93850, '\p{Sc=medf}', "");
@@ -134977,16 +136241,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93851, '\P{^Sc=medf}', "");
     Expect(1, 93850, '\p{Sc=:\Amedf\z:}', "");;
     Expect(0, 93851, '\p{Sc=:\Amedf\z:}', "");;
-    Expect(1, 93850, '\p{Sc=_Medf}', "");
-    Expect(0, 93850, '\p{^Sc=_Medf}', "");
-    Expect(0, 93850, '\P{Sc=_Medf}', "");
-    Expect(1, 93850, '\P{^Sc=_Medf}', "");
-    Expect(0, 93851, '\p{Sc=_Medf}', "");
-    Expect(1, 93851, '\p{^Sc=_Medf}', "");
-    Expect(1, 93851, '\P{Sc=_Medf}', "");
-    Expect(0, 93851, '\P{^Sc=_Medf}', "");
-    Error('\p{Is_Script=-/a/MEDEFAIDRIN}');
-    Error('\P{Is_Script=-/a/MEDEFAIDRIN}');
+    Expect(1, 93850, '\p{Sc=_-MEDF}', "");
+    Expect(0, 93850, '\p{^Sc=_-MEDF}', "");
+    Expect(0, 93850, '\P{Sc=_-MEDF}', "");
+    Expect(1, 93850, '\P{^Sc=_-MEDF}', "");
+    Expect(0, 93851, '\p{Sc=_-MEDF}', "");
+    Expect(1, 93851, '\p{^Sc=_-MEDF}', "");
+    Expect(1, 93851, '\P{Sc=_-MEDF}', "");
+    Expect(0, 93851, '\P{^Sc=_-MEDF}', "");
+    Error('\p{Is_Script=-/a/medefaidrin}');
+    Error('\P{Is_Script=-/a/medefaidrin}');
     Expect(1, 93850, '\p{Is_Script=medefaidrin}', "");
     Expect(0, 93850, '\p{^Is_Script=medefaidrin}', "");
     Expect(0, 93850, '\P{Is_Script=medefaidrin}', "");
@@ -134995,16 +136259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93851, '\p{^Is_Script=medefaidrin}', "");
     Expect(1, 93851, '\P{Is_Script=medefaidrin}', "");
     Expect(0, 93851, '\P{^Is_Script=medefaidrin}', "");
-    Expect(1, 93850, '\p{Is_Script=_ Medefaidrin}', "");
-    Expect(0, 93850, '\p{^Is_Script=_ Medefaidrin}', "");
-    Expect(0, 93850, '\P{Is_Script=_ Medefaidrin}', "");
-    Expect(1, 93850, '\P{^Is_Script=_ Medefaidrin}', "");
-    Expect(0, 93851, '\p{Is_Script=_ Medefaidrin}', "");
-    Expect(1, 93851, '\p{^Is_Script=_ Medefaidrin}', "");
-    Expect(1, 93851, '\P{Is_Script=_ Medefaidrin}', "");
-    Expect(0, 93851, '\P{^Is_Script=_ Medefaidrin}', "");
-    Error('\p{Is_Sc=/a/Medf}');
-    Error('\P{Is_Sc=/a/Medf}');
+    Expect(1, 93850, '\p{Is_Script=-medefaidrin}', "");
+    Expect(0, 93850, '\p{^Is_Script=-medefaidrin}', "");
+    Expect(0, 93850, '\P{Is_Script=-medefaidrin}', "");
+    Expect(1, 93850, '\P{^Is_Script=-medefaidrin}', "");
+    Expect(0, 93851, '\p{Is_Script=-medefaidrin}', "");
+    Expect(1, 93851, '\p{^Is_Script=-medefaidrin}', "");
+    Expect(1, 93851, '\P{Is_Script=-medefaidrin}', "");
+    Expect(0, 93851, '\P{^Is_Script=-medefaidrin}', "");
+    Error('\p{Is_Sc=_-medf/a/}');
+    Error('\P{Is_Sc=_-medf/a/}');
     Expect(1, 93850, '\p{Is_Sc=medf}', "");
     Expect(0, 93850, '\p{^Is_Sc=medf}', "");
     Expect(0, 93850, '\P{Is_Sc=medf}', "");
@@ -135013,38 +136277,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93851, '\p{^Is_Sc=medf}', "");
     Expect(1, 93851, '\P{Is_Sc=medf}', "");
     Expect(0, 93851, '\P{^Is_Sc=medf}', "");
-    Expect(1, 93850, '\p{Is_Sc=- MEDF}', "");
-    Expect(0, 93850, '\p{^Is_Sc=- MEDF}', "");
-    Expect(0, 93850, '\P{Is_Sc=- MEDF}', "");
-    Expect(1, 93850, '\P{^Is_Sc=- MEDF}', "");
-    Expect(0, 93851, '\p{Is_Sc=- MEDF}', "");
-    Expect(1, 93851, '\p{^Is_Sc=- MEDF}', "");
-    Expect(1, 93851, '\P{Is_Sc=- MEDF}', "");
-    Expect(0, 93851, '\P{^Is_Sc=- MEDF}', "");
-    Error('\p{Script=	Mende_kikakui:=}');
-    Error('\P{Script=	Mende_kikakui:=}');
+    Expect(1, 93850, '\p{Is_Sc=_Medf}', "");
+    Expect(0, 93850, '\p{^Is_Sc=_Medf}', "");
+    Expect(0, 93850, '\P{Is_Sc=_Medf}', "");
+    Expect(1, 93850, '\P{^Is_Sc=_Medf}', "");
+    Expect(0, 93851, '\p{Is_Sc=_Medf}', "");
+    Expect(1, 93851, '\p{^Is_Sc=_Medf}', "");
+    Expect(1, 93851, '\P{Is_Sc=_Medf}', "");
+    Expect(0, 93851, '\P{^Is_Sc=_Medf}', "");
+    Error('\p{Script=-/a/Mende_kikakui}');
+    Error('\P{Script=-/a/Mende_kikakui}');
     Expect(1, 125142, '\p{Script=:\AMende_Kikakui\z:}', "");;
     Expect(0, 125143, '\p{Script=:\AMende_Kikakui\z:}', "");;
-    Expect(1, 125142, '\p{Script:   mendekikakui}', "");
-    Expect(0, 125142, '\p{^Script:   mendekikakui}', "");
-    Expect(0, 125142, '\P{Script:   mendekikakui}', "");
-    Expect(1, 125142, '\P{^Script:   mendekikakui}', "");
-    Expect(0, 125143, '\p{Script:   mendekikakui}', "");
-    Expect(1, 125143, '\p{^Script:   mendekikakui}', "");
-    Expect(1, 125143, '\P{Script:   mendekikakui}', "");
-    Expect(0, 125143, '\P{^Script:   mendekikakui}', "");
+    Expect(1, 125142, '\p{Script=mendekikakui}', "");
+    Expect(0, 125142, '\p{^Script=mendekikakui}', "");
+    Expect(0, 125142, '\P{Script=mendekikakui}', "");
+    Expect(1, 125142, '\P{^Script=mendekikakui}', "");
+    Expect(0, 125143, '\p{Script=mendekikakui}', "");
+    Expect(1, 125143, '\p{^Script=mendekikakui}', "");
+    Expect(1, 125143, '\P{Script=mendekikakui}', "");
+    Expect(0, 125143, '\P{^Script=mendekikakui}', "");
     Expect(1, 125142, '\p{Script=:\Amendekikakui\z:}', "");;
     Expect(0, 125143, '\p{Script=:\Amendekikakui\z:}', "");;
-    Expect(1, 125142, '\p{Script=_ Mende_Kikakui}', "");
-    Expect(0, 125142, '\p{^Script=_ Mende_Kikakui}', "");
-    Expect(0, 125142, '\P{Script=_ Mende_Kikakui}', "");
-    Expect(1, 125142, '\P{^Script=_ Mende_Kikakui}', "");
-    Expect(0, 125143, '\p{Script=_ Mende_Kikakui}', "");
-    Expect(1, 125143, '\p{^Script=_ Mende_Kikakui}', "");
-    Expect(1, 125143, '\P{Script=_ Mende_Kikakui}', "");
-    Expect(0, 125143, '\P{^Script=_ Mende_Kikakui}', "");
-    Error('\p{Sc=_:=Mend}');
-    Error('\P{Sc=_:=Mend}');
+    Expect(1, 125142, '\p{Script=_	mende_Kikakui}', "");
+    Expect(0, 125142, '\p{^Script=_	mende_Kikakui}', "");
+    Expect(0, 125142, '\P{Script=_	mende_Kikakui}', "");
+    Expect(1, 125142, '\P{^Script=_	mende_Kikakui}', "");
+    Expect(0, 125143, '\p{Script=_	mende_Kikakui}', "");
+    Expect(1, 125143, '\p{^Script=_	mende_Kikakui}', "");
+    Expect(1, 125143, '\P{Script=_	mende_Kikakui}', "");
+    Expect(0, 125143, '\P{^Script=_	mende_Kikakui}', "");
+    Error('\p{Sc=/a/	 mend}');
+    Error('\P{Sc=/a/	 mend}');
     Expect(1, 125142, '\p{Sc=:\AMend\z:}', "");;
     Expect(0, 125143, '\p{Sc=:\AMend\z:}', "");;
     Expect(1, 125142, '\p{Sc=mend}', "");
@@ -135057,16 +136321,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 125143, '\P{^Sc=mend}', "");
     Expect(1, 125142, '\p{Sc=:\Amend\z:}', "");;
     Expect(0, 125143, '\p{Sc=:\Amend\z:}', "");;
-    Expect(1, 125142, '\p{Sc=	Mend}', "");
-    Expect(0, 125142, '\p{^Sc=	Mend}', "");
-    Expect(0, 125142, '\P{Sc=	Mend}', "");
-    Expect(1, 125142, '\P{^Sc=	Mend}', "");
-    Expect(0, 125143, '\p{Sc=	Mend}', "");
-    Expect(1, 125143, '\p{^Sc=	Mend}', "");
-    Expect(1, 125143, '\P{Sc=	Mend}', "");
-    Expect(0, 125143, '\P{^Sc=	Mend}', "");
-    Error('\p{Is_Script=  Mende_Kikakui/a/}');
-    Error('\P{Is_Script=  Mende_Kikakui/a/}');
+    Expect(1, 125142, '\p{Sc=-Mend}', "");
+    Expect(0, 125142, '\p{^Sc=-Mend}', "");
+    Expect(0, 125142, '\P{Sc=-Mend}', "");
+    Expect(1, 125142, '\P{^Sc=-Mend}', "");
+    Expect(0, 125143, '\p{Sc=-Mend}', "");
+    Expect(1, 125143, '\p{^Sc=-Mend}', "");
+    Expect(1, 125143, '\P{Sc=-Mend}', "");
+    Expect(0, 125143, '\P{^Sc=-Mend}', "");
+    Error('\p{Is_Script=-/a/MENDE_Kikakui}');
+    Error('\P{Is_Script=-/a/MENDE_Kikakui}');
     Expect(1, 125142, '\p{Is_Script=mendekikakui}', "");
     Expect(0, 125142, '\p{^Is_Script=mendekikakui}', "");
     Expect(0, 125142, '\P{Is_Script=mendekikakui}', "");
@@ -135075,16 +136339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125143, '\p{^Is_Script=mendekikakui}', "");
     Expect(1, 125143, '\P{Is_Script=mendekikakui}', "");
     Expect(0, 125143, '\P{^Is_Script=mendekikakui}', "");
-    Expect(1, 125142, '\p{Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(0, 125142, '\p{^Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(0, 125142, '\P{Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(1, 125142, '\P{^Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(0, 125143, '\p{Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(1, 125143, '\p{^Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(1, 125143, '\P{Is_Script:   --Mende_KIKAKUI}', "");
-    Expect(0, 125143, '\P{^Is_Script:   --Mende_KIKAKUI}', "");
-    Error('\p{Is_Sc=:=_ MEND}');
-    Error('\P{Is_Sc=:=_ MEND}');
+    Expect(1, 125142, '\p{Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(0, 125142, '\p{^Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(0, 125142, '\P{Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(1, 125142, '\P{^Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(0, 125143, '\p{Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(1, 125143, '\p{^Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(1, 125143, '\P{Is_Script:    	Mende_KIKAKUI}', "");
+    Expect(0, 125143, '\P{^Is_Script:    	Mende_KIKAKUI}', "");
+    Error('\p{Is_Sc=	_Mend/a/}');
+    Error('\P{Is_Sc=	_Mend/a/}');
     Expect(1, 125142, '\p{Is_Sc=mend}', "");
     Expect(0, 125142, '\p{^Is_Sc=mend}', "");
     Expect(0, 125142, '\P{Is_Sc=mend}', "");
@@ -135093,16 +136357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125143, '\p{^Is_Sc=mend}', "");
     Expect(1, 125143, '\P{Is_Sc=mend}', "");
     Expect(0, 125143, '\P{^Is_Sc=mend}', "");
-    Expect(1, 125142, '\p{Is_Sc:   	MEND}', "");
-    Expect(0, 125142, '\p{^Is_Sc:   	MEND}', "");
-    Expect(0, 125142, '\P{Is_Sc:   	MEND}', "");
-    Expect(1, 125142, '\P{^Is_Sc:   	MEND}', "");
-    Expect(0, 125143, '\p{Is_Sc:   	MEND}', "");
-    Expect(1, 125143, '\p{^Is_Sc:   	MEND}', "");
-    Expect(1, 125143, '\P{Is_Sc:   	MEND}', "");
-    Expect(0, 125143, '\P{^Is_Sc:   	MEND}', "");
-    Error('\p{Script=/a/- Meroitic_CURSIVE}');
-    Error('\P{Script=/a/- Meroitic_CURSIVE}');
+    Expect(1, 125142, '\p{Is_Sc= 	Mend}', "");
+    Expect(0, 125142, '\p{^Is_Sc= 	Mend}', "");
+    Expect(0, 125142, '\P{Is_Sc= 	Mend}', "");
+    Expect(1, 125142, '\P{^Is_Sc= 	Mend}', "");
+    Expect(0, 125143, '\p{Is_Sc= 	Mend}', "");
+    Expect(1, 125143, '\p{^Is_Sc= 	Mend}', "");
+    Expect(1, 125143, '\P{Is_Sc= 	Mend}', "");
+    Expect(0, 125143, '\P{^Is_Sc= 	Mend}', "");
+    Error('\p{Script=/a/ meroitic_Cursive}');
+    Error('\P{Script=/a/ meroitic_Cursive}');
     Expect(1, 68095, '\p{Script=:\AMeroitic_Cursive\z:}', "");;
     Expect(0, 68096, '\p{Script=:\AMeroitic_Cursive\z:}', "");;
     Expect(1, 68095, '\p{Script=meroiticcursive}', "");
@@ -135115,38 +136379,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68096, '\P{^Script=meroiticcursive}', "");
     Expect(1, 68095, '\p{Script=:\Ameroiticcursive\z:}', "");;
     Expect(0, 68096, '\p{Script=:\Ameroiticcursive\z:}', "");;
-    Expect(1, 68095, '\p{Script=__MEROITIC_cursive}', "");
-    Expect(0, 68095, '\p{^Script=__MEROITIC_cursive}', "");
-    Expect(0, 68095, '\P{Script=__MEROITIC_cursive}', "");
-    Expect(1, 68095, '\P{^Script=__MEROITIC_cursive}', "");
-    Expect(0, 68096, '\p{Script=__MEROITIC_cursive}', "");
-    Expect(1, 68096, '\p{^Script=__MEROITIC_cursive}', "");
-    Expect(1, 68096, '\P{Script=__MEROITIC_cursive}', "");
-    Expect(0, 68096, '\P{^Script=__MEROITIC_cursive}', "");
-    Error('\p{Sc=_	Merc/a/}');
-    Error('\P{Sc=_	Merc/a/}');
+    Expect(1, 68095, '\p{Script= _Meroitic_cursive}', "");
+    Expect(0, 68095, '\p{^Script= _Meroitic_cursive}', "");
+    Expect(0, 68095, '\P{Script= _Meroitic_cursive}', "");
+    Expect(1, 68095, '\P{^Script= _Meroitic_cursive}', "");
+    Expect(0, 68096, '\p{Script= _Meroitic_cursive}', "");
+    Expect(1, 68096, '\p{^Script= _Meroitic_cursive}', "");
+    Expect(1, 68096, '\P{Script= _Meroitic_cursive}', "");
+    Expect(0, 68096, '\P{^Script= _Meroitic_cursive}', "");
+    Error('\p{Sc=	/a/Merc}');
+    Error('\P{Sc=	/a/Merc}');
     Expect(1, 68095, '\p{Sc=:\AMerc\z:}', "");;
     Expect(0, 68096, '\p{Sc=:\AMerc\z:}', "");;
-    Expect(1, 68095, '\p{Sc=merc}', "");
-    Expect(0, 68095, '\p{^Sc=merc}', "");
-    Expect(0, 68095, '\P{Sc=merc}', "");
-    Expect(1, 68095, '\P{^Sc=merc}', "");
-    Expect(0, 68096, '\p{Sc=merc}', "");
-    Expect(1, 68096, '\p{^Sc=merc}', "");
-    Expect(1, 68096, '\P{Sc=merc}', "");
-    Expect(0, 68096, '\P{^Sc=merc}', "");
+    Expect(1, 68095, '\p{Sc:merc}', "");
+    Expect(0, 68095, '\p{^Sc:merc}', "");
+    Expect(0, 68095, '\P{Sc:merc}', "");
+    Expect(1, 68095, '\P{^Sc:merc}', "");
+    Expect(0, 68096, '\p{Sc:merc}', "");
+    Expect(1, 68096, '\p{^Sc:merc}', "");
+    Expect(1, 68096, '\P{Sc:merc}', "");
+    Expect(0, 68096, '\P{^Sc:merc}', "");
     Expect(1, 68095, '\p{Sc=:\Amerc\z:}', "");;
     Expect(0, 68096, '\p{Sc=:\Amerc\z:}', "");;
-    Expect(1, 68095, '\p{Sc= _Merc}', "");
-    Expect(0, 68095, '\p{^Sc= _Merc}', "");
-    Expect(0, 68095, '\P{Sc= _Merc}', "");
-    Expect(1, 68095, '\P{^Sc= _Merc}', "");
-    Expect(0, 68096, '\p{Sc= _Merc}', "");
-    Expect(1, 68096, '\p{^Sc= _Merc}', "");
-    Expect(1, 68096, '\P{Sc= _Merc}', "");
-    Expect(0, 68096, '\P{^Sc= _Merc}', "");
-    Error('\p{Is_Script=	meroitic_CURSIVE:=}');
-    Error('\P{Is_Script=	meroitic_CURSIVE:=}');
+    Expect(1, 68095, '\p{Sc=--MERC}', "");
+    Expect(0, 68095, '\p{^Sc=--MERC}', "");
+    Expect(0, 68095, '\P{Sc=--MERC}', "");
+    Expect(1, 68095, '\P{^Sc=--MERC}', "");
+    Expect(0, 68096, '\p{Sc=--MERC}', "");
+    Expect(1, 68096, '\p{^Sc=--MERC}', "");
+    Expect(1, 68096, '\P{Sc=--MERC}', "");
+    Expect(0, 68096, '\P{^Sc=--MERC}', "");
+    Error('\p{Is_Script=:=	 Meroitic_Cursive}');
+    Error('\P{Is_Script=:=	 Meroitic_Cursive}');
     Expect(1, 68095, '\p{Is_Script=meroiticcursive}', "");
     Expect(0, 68095, '\p{^Is_Script=meroiticcursive}', "");
     Expect(0, 68095, '\P{Is_Script=meroiticcursive}', "");
@@ -135155,34 +136419,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68096, '\p{^Is_Script=meroiticcursive}', "");
     Expect(1, 68096, '\P{Is_Script=meroiticcursive}', "");
     Expect(0, 68096, '\P{^Is_Script=meroiticcursive}', "");
-    Expect(1, 68095, '\p{Is_Script=_Meroitic_Cursive}', "");
-    Expect(0, 68095, '\p{^Is_Script=_Meroitic_Cursive}', "");
-    Expect(0, 68095, '\P{Is_Script=_Meroitic_Cursive}', "");
-    Expect(1, 68095, '\P{^Is_Script=_Meroitic_Cursive}', "");
-    Expect(0, 68096, '\p{Is_Script=_Meroitic_Cursive}', "");
-    Expect(1, 68096, '\p{^Is_Script=_Meroitic_Cursive}', "");
-    Expect(1, 68096, '\P{Is_Script=_Meroitic_Cursive}', "");
-    Expect(0, 68096, '\P{^Is_Script=_Meroitic_Cursive}', "");
-    Error('\p{Is_Sc= Merc:=}');
-    Error('\P{Is_Sc= Merc:=}');
-    Expect(1, 68095, '\p{Is_Sc=merc}', "");
-    Expect(0, 68095, '\p{^Is_Sc=merc}', "");
-    Expect(0, 68095, '\P{Is_Sc=merc}', "");
-    Expect(1, 68095, '\P{^Is_Sc=merc}', "");
-    Expect(0, 68096, '\p{Is_Sc=merc}', "");
-    Expect(1, 68096, '\p{^Is_Sc=merc}', "");
-    Expect(1, 68096, '\P{Is_Sc=merc}', "");
-    Expect(0, 68096, '\P{^Is_Sc=merc}', "");
-    Expect(1, 68095, '\p{Is_Sc=-Merc}', "");
-    Expect(0, 68095, '\p{^Is_Sc=-Merc}', "");
-    Expect(0, 68095, '\P{Is_Sc=-Merc}', "");
-    Expect(1, 68095, '\P{^Is_Sc=-Merc}', "");
-    Expect(0, 68096, '\p{Is_Sc=-Merc}', "");
-    Expect(1, 68096, '\p{^Is_Sc=-Merc}', "");
-    Expect(1, 68096, '\P{Is_Sc=-Merc}', "");
-    Expect(0, 68096, '\P{^Is_Sc=-Merc}', "");
-    Error('\p{Script=/a/		MEROITIC_Hieroglyphs}');
-    Error('\P{Script=/a/		MEROITIC_Hieroglyphs}');
+    Expect(1, 68095, '\p{Is_Script=-Meroitic_cursive}', "");
+    Expect(0, 68095, '\p{^Is_Script=-Meroitic_cursive}', "");
+    Expect(0, 68095, '\P{Is_Script=-Meroitic_cursive}', "");
+    Expect(1, 68095, '\P{^Is_Script=-Meroitic_cursive}', "");
+    Expect(0, 68096, '\p{Is_Script=-Meroitic_cursive}', "");
+    Expect(1, 68096, '\p{^Is_Script=-Meroitic_cursive}', "");
+    Expect(1, 68096, '\P{Is_Script=-Meroitic_cursive}', "");
+    Expect(0, 68096, '\P{^Is_Script=-Meroitic_cursive}', "");
+    Error('\p{Is_Sc=/a/	_Merc}');
+    Error('\P{Is_Sc=/a/	_Merc}');
+    Expect(1, 68095, '\p{Is_Sc: merc}', "");
+    Expect(0, 68095, '\p{^Is_Sc: merc}', "");
+    Expect(0, 68095, '\P{Is_Sc: merc}', "");
+    Expect(1, 68095, '\P{^Is_Sc: merc}', "");
+    Expect(0, 68096, '\p{Is_Sc: merc}', "");
+    Expect(1, 68096, '\p{^Is_Sc: merc}', "");
+    Expect(1, 68096, '\P{Is_Sc: merc}', "");
+    Expect(0, 68096, '\P{^Is_Sc: merc}', "");
+    Expect(1, 68095, '\p{Is_Sc=-	MERC}', "");
+    Expect(0, 68095, '\p{^Is_Sc=-	MERC}', "");
+    Expect(0, 68095, '\P{Is_Sc=-	MERC}', "");
+    Expect(1, 68095, '\P{^Is_Sc=-	MERC}', "");
+    Expect(0, 68096, '\p{Is_Sc=-	MERC}', "");
+    Expect(1, 68096, '\p{^Is_Sc=-	MERC}', "");
+    Expect(1, 68096, '\P{Is_Sc=-	MERC}', "");
+    Expect(0, 68096, '\P{^Is_Sc=-	MERC}', "");
+    Error('\p{Script=/a/meroitic_Hieroglyphs}');
+    Error('\P{Script=/a/meroitic_Hieroglyphs}');
     Expect(1, 67999, '\p{Script=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Script=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(1, 67999, '\p{Script=meroitichieroglyphs}', "");
@@ -135195,16 +136459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68000, '\P{^Script=meroitichieroglyphs}', "");
     Expect(1, 67999, '\p{Script=:\Ameroitichieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Script=:\Ameroitichieroglyphs\z:}', "");;
-    Expect(1, 67999, '\p{Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{Script:    MEROITIC_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^Script:    MEROITIC_Hieroglyphs}', "");
-    Error('\p{Sc=/a/mero}');
-    Error('\P{Sc=/a/mero}');
+    Expect(1, 67999, '\p{Script=--meroitic_Hieroglyphs}', "");
+    Expect(0, 67999, '\p{^Script=--meroitic_Hieroglyphs}', "");
+    Expect(0, 67999, '\P{Script=--meroitic_Hieroglyphs}', "");
+    Expect(1, 67999, '\P{^Script=--meroitic_Hieroglyphs}', "");
+    Expect(0, 68000, '\p{Script=--meroitic_Hieroglyphs}', "");
+    Expect(1, 68000, '\p{^Script=--meroitic_Hieroglyphs}', "");
+    Expect(1, 68000, '\P{Script=--meroitic_Hieroglyphs}', "");
+    Expect(0, 68000, '\P{^Script=--meroitic_Hieroglyphs}', "");
+    Error('\p{Sc=_-Mero:=}');
+    Error('\P{Sc=_-Mero:=}');
     Expect(1, 67999, '\p{Sc=:\AMero\z:}', "");;
     Expect(0, 68000, '\p{Sc=:\AMero\z:}', "");;
     Expect(1, 67999, '\p{Sc=mero}', "");
@@ -135217,16 +136481,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68000, '\P{^Sc=mero}', "");
     Expect(1, 67999, '\p{Sc=:\Amero\z:}', "");;
     Expect(0, 68000, '\p{Sc=:\Amero\z:}', "");;
-    Expect(1, 67999, '\p{Sc=- mero}', "");
-    Expect(0, 67999, '\p{^Sc=- mero}', "");
-    Expect(0, 67999, '\P{Sc=- mero}', "");
-    Expect(1, 67999, '\P{^Sc=- mero}', "");
-    Expect(0, 68000, '\p{Sc=- mero}', "");
-    Expect(1, 68000, '\p{^Sc=- mero}', "");
-    Expect(1, 68000, '\P{Sc=- mero}', "");
-    Expect(0, 68000, '\P{^Sc=- mero}', "");
-    Error('\p{Is_Script=:=meroitic_HIEROGLYPHS}');
-    Error('\P{Is_Script=:=meroitic_HIEROGLYPHS}');
+    Expect(1, 67999, '\p{Sc=-	MERO}', "");
+    Expect(0, 67999, '\p{^Sc=-	MERO}', "");
+    Expect(0, 67999, '\P{Sc=-	MERO}', "");
+    Expect(1, 67999, '\P{^Sc=-	MERO}', "");
+    Expect(0, 68000, '\p{Sc=-	MERO}', "");
+    Expect(1, 68000, '\p{^Sc=-	MERO}', "");
+    Expect(1, 68000, '\P{Sc=-	MERO}', "");
+    Expect(0, 68000, '\P{^Sc=-	MERO}', "");
+    Error('\p{Is_Script=:=_	MEROITIC_hieroglyphs}');
+    Error('\P{Is_Script=:=_	MEROITIC_hieroglyphs}');
     Expect(1, 67999, '\p{Is_Script=meroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^Is_Script=meroitichieroglyphs}', "");
     Expect(0, 67999, '\P{Is_Script=meroitichieroglyphs}', "");
@@ -135235,16 +136499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68000, '\p{^Is_Script=meroitichieroglyphs}', "");
     Expect(1, 68000, '\P{Is_Script=meroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^Is_Script=meroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(0, 67999, '\p{^Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(0, 67999, '\P{Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(1, 67999, '\P{^Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(0, 68000, '\p{Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(1, 68000, '\p{^Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(1, 68000, '\P{Is_Script=-	meroitic_hieroglyphs}', "");
-    Expect(0, 68000, '\P{^Is_Script=-	meroitic_hieroglyphs}', "");
-    Error('\p{Is_Sc: 	/a/MERO}');
-    Error('\P{Is_Sc: 	/a/MERO}');
+    Expect(1, 67999, '\p{Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(0, 67999, '\p{^Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(0, 67999, '\P{Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(1, 67999, '\P{^Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(0, 68000, '\p{Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(1, 68000, '\p{^Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(1, 68000, '\P{Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Expect(0, 68000, '\P{^Is_Script=_-meroitic_HIEROGLYPHS}', "");
+    Error('\p{Is_Sc=_:=MERO}');
+    Error('\P{Is_Sc=_:=MERO}');
     Expect(1, 67999, '\p{Is_Sc=mero}', "");
     Expect(0, 67999, '\p{^Is_Sc=mero}', "");
     Expect(0, 67999, '\P{Is_Sc=mero}', "");
@@ -135253,16 +136517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68000, '\p{^Is_Sc=mero}', "");
     Expect(1, 68000, '\P{Is_Sc=mero}', "");
     Expect(0, 68000, '\P{^Is_Sc=mero}', "");
-    Expect(1, 67999, '\p{Is_Sc= 	Mero}', "");
-    Expect(0, 67999, '\p{^Is_Sc= 	Mero}', "");
-    Expect(0, 67999, '\P{Is_Sc= 	Mero}', "");
-    Expect(1, 67999, '\P{^Is_Sc= 	Mero}', "");
-    Expect(0, 68000, '\p{Is_Sc= 	Mero}', "");
-    Expect(1, 68000, '\p{^Is_Sc= 	Mero}', "");
-    Expect(1, 68000, '\P{Is_Sc= 	Mero}', "");
-    Expect(0, 68000, '\P{^Is_Sc= 	Mero}', "");
-    Error('\p{Script:	:=malayalam}');
-    Error('\P{Script:	:=malayalam}');
+    Expect(1, 67999, '\p{Is_Sc=	-MERO}', "");
+    Expect(0, 67999, '\p{^Is_Sc=	-MERO}', "");
+    Expect(0, 67999, '\P{Is_Sc=	-MERO}', "");
+    Expect(1, 67999, '\P{^Is_Sc=	-MERO}', "");
+    Expect(0, 68000, '\p{Is_Sc=	-MERO}', "");
+    Expect(1, 68000, '\p{^Is_Sc=	-MERO}', "");
+    Expect(1, 68000, '\P{Is_Sc=	-MERO}', "");
+    Expect(0, 68000, '\P{^Is_Sc=	-MERO}', "");
+    Error('\p{Script=-/a/malayalam}');
+    Error('\P{Script=-/a/malayalam}');
     Expect(1, 3455, '\p{Script=:\AMalayalam\z:}', "");;
     Expect(0, 3456, '\p{Script=:\AMalayalam\z:}', "");;
     Expect(1, 3455, '\p{Script=malayalam}', "");
@@ -135275,16 +136539,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 3456, '\P{^Script=malayalam}', "");
     Expect(1, 3455, '\p{Script=:\Amalayalam\z:}', "");;
     Expect(0, 3456, '\p{Script=:\Amalayalam\z:}', "");;
-    Expect(1, 3455, '\p{Script:	malayalam}', "");
-    Expect(0, 3455, '\p{^Script:	malayalam}', "");
-    Expect(0, 3455, '\P{Script:	malayalam}', "");
-    Expect(1, 3455, '\P{^Script:	malayalam}', "");
-    Expect(0, 3456, '\p{Script:	malayalam}', "");
-    Expect(1, 3456, '\p{^Script:	malayalam}', "");
-    Expect(1, 3456, '\P{Script:	malayalam}', "");
-    Expect(0, 3456, '\P{^Script:	malayalam}', "");
-    Error('\p{Sc:	 -Mlym:=}');
-    Error('\P{Sc:	 -Mlym:=}');
+    Expect(1, 3455, '\p{Script= malayalam}', "");
+    Expect(0, 3455, '\p{^Script= malayalam}', "");
+    Expect(0, 3455, '\P{Script= malayalam}', "");
+    Expect(1, 3455, '\P{^Script= malayalam}', "");
+    Expect(0, 3456, '\p{Script= malayalam}', "");
+    Expect(1, 3456, '\p{^Script= malayalam}', "");
+    Expect(1, 3456, '\P{Script= malayalam}', "");
+    Expect(0, 3456, '\P{^Script= malayalam}', "");
+    Error('\p{Sc= :=mlym}');
+    Error('\P{Sc= :=mlym}');
     Expect(1, 3455, '\p{Sc=:\AMlym\z:}', "");;
     Expect(0, 3456, '\p{Sc=:\AMlym\z:}', "");;
     Expect(1, 3455, '\p{Sc=mlym}', "");
@@ -135297,52 +136561,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 3456, '\P{^Sc=mlym}', "");
     Expect(1, 3455, '\p{Sc=:\Amlym\z:}', "");;
     Expect(0, 3456, '\p{Sc=:\Amlym\z:}', "");;
-    Expect(1, 3455, '\p{Sc=  Mlym}', "");
-    Expect(0, 3455, '\p{^Sc=  Mlym}', "");
-    Expect(0, 3455, '\P{Sc=  Mlym}', "");
-    Expect(1, 3455, '\P{^Sc=  Mlym}', "");
-    Expect(0, 3456, '\p{Sc=  Mlym}', "");
-    Expect(1, 3456, '\p{^Sc=  Mlym}', "");
-    Expect(1, 3456, '\P{Sc=  Mlym}', "");
-    Expect(0, 3456, '\P{^Sc=  Mlym}', "");
-    Error('\p{Is_Script=_-malayalam:=}');
-    Error('\P{Is_Script=_-malayalam:=}');
-    Expect(1, 3455, '\p{Is_Script=malayalam}', "");
-    Expect(0, 3455, '\p{^Is_Script=malayalam}', "");
-    Expect(0, 3455, '\P{Is_Script=malayalam}', "");
-    Expect(1, 3455, '\P{^Is_Script=malayalam}', "");
-    Expect(0, 3456, '\p{Is_Script=malayalam}', "");
-    Expect(1, 3456, '\p{^Is_Script=malayalam}', "");
-    Expect(1, 3456, '\P{Is_Script=malayalam}', "");
-    Expect(0, 3456, '\P{^Is_Script=malayalam}', "");
-    Expect(1, 3455, '\p{Is_Script=	_Malayalam}', "");
-    Expect(0, 3455, '\p{^Is_Script=	_Malayalam}', "");
-    Expect(0, 3455, '\P{Is_Script=	_Malayalam}', "");
-    Expect(1, 3455, '\P{^Is_Script=	_Malayalam}', "");
-    Expect(0, 3456, '\p{Is_Script=	_Malayalam}', "");
-    Expect(1, 3456, '\p{^Is_Script=	_Malayalam}', "");
-    Expect(1, 3456, '\P{Is_Script=	_Malayalam}', "");
-    Expect(0, 3456, '\P{^Is_Script=	_Malayalam}', "");
-    Error('\p{Is_Sc=/a/mlym}');
-    Error('\P{Is_Sc=/a/mlym}');
-    Expect(1, 3455, '\p{Is_Sc=mlym}', "");
-    Expect(0, 3455, '\p{^Is_Sc=mlym}', "");
-    Expect(0, 3455, '\P{Is_Sc=mlym}', "");
-    Expect(1, 3455, '\P{^Is_Sc=mlym}', "");
-    Expect(0, 3456, '\p{Is_Sc=mlym}', "");
-    Expect(1, 3456, '\p{^Is_Sc=mlym}', "");
-    Expect(1, 3456, '\P{Is_Sc=mlym}', "");
-    Expect(0, 3456, '\P{^Is_Sc=mlym}', "");
-    Expect(1, 3455, '\p{Is_Sc:    	MLYM}', "");
-    Expect(0, 3455, '\p{^Is_Sc:    	MLYM}', "");
-    Expect(0, 3455, '\P{Is_Sc:    	MLYM}', "");
-    Expect(1, 3455, '\P{^Is_Sc:    	MLYM}', "");
-    Expect(0, 3456, '\p{Is_Sc:    	MLYM}', "");
-    Expect(1, 3456, '\p{^Is_Sc:    	MLYM}', "");
-    Expect(1, 3456, '\P{Is_Sc:    	MLYM}', "");
-    Expect(0, 3456, '\P{^Is_Sc:    	MLYM}', "");
-    Error('\p{Script=:=	-MODI}');
-    Error('\P{Script=:=	-MODI}');
+    Expect(1, 3455, '\p{Sc=_mlym}', "");
+    Expect(0, 3455, '\p{^Sc=_mlym}', "");
+    Expect(0, 3455, '\P{Sc=_mlym}', "");
+    Expect(1, 3455, '\P{^Sc=_mlym}', "");
+    Expect(0, 3456, '\p{Sc=_mlym}', "");
+    Expect(1, 3456, '\p{^Sc=_mlym}', "");
+    Expect(1, 3456, '\P{Sc=_mlym}', "");
+    Expect(0, 3456, '\P{^Sc=_mlym}', "");
+    Error('\p{Is_Script=/a/ 	Malayalam}');
+    Error('\P{Is_Script=/a/ 	Malayalam}');
+    Expect(1, 3455, '\p{Is_Script:	malayalam}', "");
+    Expect(0, 3455, '\p{^Is_Script:	malayalam}', "");
+    Expect(0, 3455, '\P{Is_Script:	malayalam}', "");
+    Expect(1, 3455, '\P{^Is_Script:	malayalam}', "");
+    Expect(0, 3456, '\p{Is_Script:	malayalam}', "");
+    Expect(1, 3456, '\p{^Is_Script:	malayalam}', "");
+    Expect(1, 3456, '\P{Is_Script:	malayalam}', "");
+    Expect(0, 3456, '\P{^Is_Script:	malayalam}', "");
+    Expect(1, 3455, '\p{Is_Script=	MALAYALAM}', "");
+    Expect(0, 3455, '\p{^Is_Script=	MALAYALAM}', "");
+    Expect(0, 3455, '\P{Is_Script=	MALAYALAM}', "");
+    Expect(1, 3455, '\P{^Is_Script=	MALAYALAM}', "");
+    Expect(0, 3456, '\p{Is_Script=	MALAYALAM}', "");
+    Expect(1, 3456, '\p{^Is_Script=	MALAYALAM}', "");
+    Expect(1, 3456, '\P{Is_Script=	MALAYALAM}', "");
+    Expect(0, 3456, '\P{^Is_Script=	MALAYALAM}', "");
+    Error('\p{Is_Sc=/a/	_MLYM}');
+    Error('\P{Is_Sc=/a/	_MLYM}');
+    Expect(1, 3455, '\p{Is_Sc:   mlym}', "");
+    Expect(0, 3455, '\p{^Is_Sc:   mlym}', "");
+    Expect(0, 3455, '\P{Is_Sc:   mlym}', "");
+    Expect(1, 3455, '\P{^Is_Sc:   mlym}', "");
+    Expect(0, 3456, '\p{Is_Sc:   mlym}', "");
+    Expect(1, 3456, '\p{^Is_Sc:   mlym}', "");
+    Expect(1, 3456, '\P{Is_Sc:   mlym}', "");
+    Expect(0, 3456, '\P{^Is_Sc:   mlym}', "");
+    Expect(1, 3455, '\p{Is_Sc= mlym}', "");
+    Expect(0, 3455, '\p{^Is_Sc= mlym}', "");
+    Expect(0, 3455, '\P{Is_Sc= mlym}', "");
+    Expect(1, 3455, '\P{^Is_Sc= mlym}', "");
+    Expect(0, 3456, '\p{Is_Sc= mlym}', "");
+    Expect(1, 3456, '\p{^Is_Sc= mlym}', "");
+    Expect(1, 3456, '\P{Is_Sc= mlym}', "");
+    Expect(0, 3456, '\P{^Is_Sc= mlym}', "");
+    Error('\p{Script=:=-	MODI}');
+    Error('\P{Script=:=-	MODI}');
     Expect(1, 71257, '\p{Script=:\AModi\z:}', "");;
     Expect(0, 71258, '\p{Script=:\AModi\z:}', "");;
     Expect(1, 71257, '\p{Script=modi}', "");
@@ -135355,16 +136619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71258, '\P{^Script=modi}', "");
     Expect(1, 71257, '\p{Script=:\Amodi\z:}', "");;
     Expect(0, 71258, '\p{Script=:\Amodi\z:}', "");;
-    Expect(1, 71257, '\p{Script:  modi}', "");
-    Expect(0, 71257, '\p{^Script:  modi}', "");
-    Expect(0, 71257, '\P{Script:  modi}', "");
-    Expect(1, 71257, '\P{^Script:  modi}', "");
-    Expect(0, 71258, '\p{Script:  modi}', "");
-    Expect(1, 71258, '\p{^Script:  modi}', "");
-    Expect(1, 71258, '\P{Script:  modi}', "");
-    Expect(0, 71258, '\P{^Script:  modi}', "");
-    Error('\p{Sc=/a/-	Modi}');
-    Error('\P{Sc=/a/-	Modi}');
+    Expect(1, 71257, '\p{Script=__modi}', "");
+    Expect(0, 71257, '\p{^Script=__modi}', "");
+    Expect(0, 71257, '\P{Script=__modi}', "");
+    Expect(1, 71257, '\P{^Script=__modi}', "");
+    Expect(0, 71258, '\p{Script=__modi}', "");
+    Expect(1, 71258, '\p{^Script=__modi}', "");
+    Expect(1, 71258, '\P{Script=__modi}', "");
+    Expect(0, 71258, '\P{^Script=__modi}', "");
+    Error('\p{Sc=/a/ 	modi}');
+    Error('\P{Sc=/a/ 	modi}');
     Expect(1, 71257, '\p{Sc=:\AModi\z:}', "");;
     Expect(0, 71258, '\p{Sc=:\AModi\z:}', "");;
     Expect(1, 71257, '\p{Sc=modi}', "");
@@ -135377,34 +136641,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71258, '\P{^Sc=modi}', "");
     Expect(1, 71257, '\p{Sc=:\Amodi\z:}', "");;
     Expect(0, 71258, '\p{Sc=:\Amodi\z:}', "");;
-    Expect(1, 71257, '\p{Sc=	Modi}', "");
-    Expect(0, 71257, '\p{^Sc=	Modi}', "");
-    Expect(0, 71257, '\P{Sc=	Modi}', "");
-    Expect(1, 71257, '\P{^Sc=	Modi}', "");
-    Expect(0, 71258, '\p{Sc=	Modi}', "");
-    Expect(1, 71258, '\p{^Sc=	Modi}', "");
-    Expect(1, 71258, '\P{Sc=	Modi}', "");
-    Expect(0, 71258, '\P{^Sc=	Modi}', "");
-    Error('\p{Is_Script=:=  MODI}');
-    Error('\P{Is_Script=:=  MODI}');
-    Expect(1, 71257, '\p{Is_Script: modi}', "");
-    Expect(0, 71257, '\p{^Is_Script: modi}', "");
-    Expect(0, 71257, '\P{Is_Script: modi}', "");
-    Expect(1, 71257, '\P{^Is_Script: modi}', "");
-    Expect(0, 71258, '\p{Is_Script: modi}', "");
-    Expect(1, 71258, '\p{^Is_Script: modi}', "");
-    Expect(1, 71258, '\P{Is_Script: modi}', "");
-    Expect(0, 71258, '\P{^Is_Script: modi}', "");
-    Expect(1, 71257, '\p{Is_Script=	 Modi}', "");
-    Expect(0, 71257, '\p{^Is_Script=	 Modi}', "");
-    Expect(0, 71257, '\P{Is_Script=	 Modi}', "");
-    Expect(1, 71257, '\P{^Is_Script=	 Modi}', "");
-    Expect(0, 71258, '\p{Is_Script=	 Modi}', "");
-    Expect(1, 71258, '\p{^Is_Script=	 Modi}', "");
-    Expect(1, 71258, '\P{Is_Script=	 Modi}', "");
-    Expect(0, 71258, '\P{^Is_Script=	 Modi}', "");
-    Error('\p{Is_Sc=/a/--MODI}');
-    Error('\P{Is_Sc=/a/--MODI}');
+    Expect(1, 71257, '\p{Sc=--Modi}', "");
+    Expect(0, 71257, '\p{^Sc=--Modi}', "");
+    Expect(0, 71257, '\P{Sc=--Modi}', "");
+    Expect(1, 71257, '\P{^Sc=--Modi}', "");
+    Expect(0, 71258, '\p{Sc=--Modi}', "");
+    Expect(1, 71258, '\p{^Sc=--Modi}', "");
+    Expect(1, 71258, '\P{Sc=--Modi}', "");
+    Expect(0, 71258, '\P{^Sc=--Modi}', "");
+    Error('\p{Is_Script=-MODI/a/}');
+    Error('\P{Is_Script=-MODI/a/}');
+    Expect(1, 71257, '\p{Is_Script=modi}', "");
+    Expect(0, 71257, '\p{^Is_Script=modi}', "");
+    Expect(0, 71257, '\P{Is_Script=modi}', "");
+    Expect(1, 71257, '\P{^Is_Script=modi}', "");
+    Expect(0, 71258, '\p{Is_Script=modi}', "");
+    Expect(1, 71258, '\p{^Is_Script=modi}', "");
+    Expect(1, 71258, '\P{Is_Script=modi}', "");
+    Expect(0, 71258, '\P{^Is_Script=modi}', "");
+    Expect(1, 71257, '\p{Is_Script=	_modi}', "");
+    Expect(0, 71257, '\p{^Is_Script=	_modi}', "");
+    Expect(0, 71257, '\P{Is_Script=	_modi}', "");
+    Expect(1, 71257, '\P{^Is_Script=	_modi}', "");
+    Expect(0, 71258, '\p{Is_Script=	_modi}', "");
+    Expect(1, 71258, '\p{^Is_Script=	_modi}', "");
+    Expect(1, 71258, '\P{Is_Script=	_modi}', "");
+    Expect(0, 71258, '\P{^Is_Script=	_modi}', "");
+    Error('\p{Is_Sc=/a/		Modi}');
+    Error('\P{Is_Sc=/a/		Modi}');
     Expect(1, 71257, '\p{Is_Sc=modi}', "");
     Expect(0, 71257, '\p{^Is_Sc=modi}', "");
     Expect(0, 71257, '\P{Is_Sc=modi}', "");
@@ -135413,16 +136677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71258, '\p{^Is_Sc=modi}', "");
     Expect(1, 71258, '\P{Is_Sc=modi}', "");
     Expect(0, 71258, '\P{^Is_Sc=modi}', "");
-    Expect(1, 71257, '\p{Is_Sc=-_Modi}', "");
-    Expect(0, 71257, '\p{^Is_Sc=-_Modi}', "");
-    Expect(0, 71257, '\P{Is_Sc=-_Modi}', "");
-    Expect(1, 71257, '\P{^Is_Sc=-_Modi}', "");
-    Expect(0, 71258, '\p{Is_Sc=-_Modi}', "");
-    Expect(1, 71258, '\p{^Is_Sc=-_Modi}', "");
-    Expect(1, 71258, '\P{Is_Sc=-_Modi}', "");
-    Expect(0, 71258, '\P{^Is_Sc=-_Modi}', "");
-    Error('\p{Script=/a/_Mongolian}');
-    Error('\P{Script=/a/_Mongolian}');
+    Expect(1, 71257, '\p{Is_Sc=  Modi}', "");
+    Expect(0, 71257, '\p{^Is_Sc=  Modi}', "");
+    Expect(0, 71257, '\P{Is_Sc=  Modi}', "");
+    Expect(1, 71257, '\P{^Is_Sc=  Modi}', "");
+    Expect(0, 71258, '\p{Is_Sc=  Modi}', "");
+    Expect(1, 71258, '\p{^Is_Sc=  Modi}', "");
+    Expect(1, 71258, '\P{Is_Sc=  Modi}', "");
+    Expect(0, 71258, '\P{^Is_Sc=  Modi}', "");
+    Error('\p{Script=:=_-Mongolian}');
+    Error('\P{Script=:=_-Mongolian}');
     Expect(1, 71276, '\p{Script=:\AMongolian\z:}', "");;
     Expect(0, 71277, '\p{Script=:\AMongolian\z:}', "");;
     Expect(1, 71276, '\p{Script=mongolian}', "");
@@ -135435,16 +136699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71277, '\P{^Script=mongolian}', "");
     Expect(1, 71276, '\p{Script=:\Amongolian\z:}', "");;
     Expect(0, 71277, '\p{Script=:\Amongolian\z:}', "");;
-    Expect(1, 71276, '\p{Script=	Mongolian}', "");
-    Expect(0, 71276, '\p{^Script=	Mongolian}', "");
-    Expect(0, 71276, '\P{Script=	Mongolian}', "");
-    Expect(1, 71276, '\P{^Script=	Mongolian}', "");
-    Expect(0, 71277, '\p{Script=	Mongolian}', "");
-    Expect(1, 71277, '\p{^Script=	Mongolian}', "");
-    Expect(1, 71277, '\P{Script=	Mongolian}', "");
-    Expect(0, 71277, '\P{^Script=	Mongolian}', "");
-    Error('\p{Sc: mong:=}');
-    Error('\P{Sc: mong:=}');
+    Expect(1, 71276, '\p{Script: -	Mongolian}', "");
+    Expect(0, 71276, '\p{^Script: -	Mongolian}', "");
+    Expect(0, 71276, '\P{Script: -	Mongolian}', "");
+    Expect(1, 71276, '\P{^Script: -	Mongolian}', "");
+    Expect(0, 71277, '\p{Script: -	Mongolian}', "");
+    Expect(1, 71277, '\p{^Script: -	Mongolian}', "");
+    Expect(1, 71277, '\P{Script: -	Mongolian}', "");
+    Expect(0, 71277, '\P{^Script: -	Mongolian}', "");
+    Error('\p{Sc=	:=Mong}');
+    Error('\P{Sc=	:=Mong}');
     Expect(1, 71276, '\p{Sc=:\AMong\z:}', "");;
     Expect(0, 71277, '\p{Sc=:\AMong\z:}', "");;
     Expect(1, 71276, '\p{Sc=mong}', "");
@@ -135457,16 +136721,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71277, '\P{^Sc=mong}', "");
     Expect(1, 71276, '\p{Sc=:\Among\z:}', "");;
     Expect(0, 71277, '\p{Sc=:\Among\z:}', "");;
-    Expect(1, 71276, '\p{Sc:-Mong}', "");
-    Expect(0, 71276, '\p{^Sc:-Mong}', "");
-    Expect(0, 71276, '\P{Sc:-Mong}', "");
-    Expect(1, 71276, '\P{^Sc:-Mong}', "");
-    Expect(0, 71277, '\p{Sc:-Mong}', "");
-    Expect(1, 71277, '\p{^Sc:-Mong}', "");
-    Expect(1, 71277, '\P{Sc:-Mong}', "");
-    Expect(0, 71277, '\P{^Sc:-Mong}', "");
-    Error('\p{Is_Script=:=	-Mongolian}');
-    Error('\P{Is_Script=:=	-Mongolian}');
+    Expect(1, 71276, '\p{Sc= _Mong}', "");
+    Expect(0, 71276, '\p{^Sc= _Mong}', "");
+    Expect(0, 71276, '\P{Sc= _Mong}', "");
+    Expect(1, 71276, '\P{^Sc= _Mong}', "");
+    Expect(0, 71277, '\p{Sc= _Mong}', "");
+    Expect(1, 71277, '\p{^Sc= _Mong}', "");
+    Expect(1, 71277, '\P{Sc= _Mong}', "");
+    Expect(0, 71277, '\P{^Sc= _Mong}', "");
+    Error('\p{Is_Script=/a/-	Mongolian}');
+    Error('\P{Is_Script=/a/-	Mongolian}');
     Expect(1, 71276, '\p{Is_Script=mongolian}', "");
     Expect(0, 71276, '\p{^Is_Script=mongolian}', "");
     Expect(0, 71276, '\P{Is_Script=mongolian}', "");
@@ -135475,16 +136739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71277, '\p{^Is_Script=mongolian}', "");
     Expect(1, 71277, '\P{Is_Script=mongolian}', "");
     Expect(0, 71277, '\P{^Is_Script=mongolian}', "");
-    Expect(1, 71276, '\p{Is_Script:MONGOLIAN}', "");
-    Expect(0, 71276, '\p{^Is_Script:MONGOLIAN}', "");
-    Expect(0, 71276, '\P{Is_Script:MONGOLIAN}', "");
-    Expect(1, 71276, '\P{^Is_Script:MONGOLIAN}', "");
-    Expect(0, 71277, '\p{Is_Script:MONGOLIAN}', "");
-    Expect(1, 71277, '\p{^Is_Script:MONGOLIAN}', "");
-    Expect(1, 71277, '\P{Is_Script:MONGOLIAN}', "");
-    Expect(0, 71277, '\P{^Is_Script:MONGOLIAN}', "");
-    Error('\p{Is_Sc: --Mong:=}');
-    Error('\P{Is_Sc: --Mong:=}');
+    Expect(1, 71276, '\p{Is_Script= _mongolian}', "");
+    Expect(0, 71276, '\p{^Is_Script= _mongolian}', "");
+    Expect(0, 71276, '\P{Is_Script= _mongolian}', "");
+    Expect(1, 71276, '\P{^Is_Script= _mongolian}', "");
+    Expect(0, 71277, '\p{Is_Script= _mongolian}', "");
+    Expect(1, 71277, '\p{^Is_Script= _mongolian}', "");
+    Expect(1, 71277, '\P{Is_Script= _mongolian}', "");
+    Expect(0, 71277, '\P{^Is_Script= _mongolian}', "");
+    Error('\p{Is_Sc=:=mong}');
+    Error('\P{Is_Sc=:=mong}');
     Expect(1, 71276, '\p{Is_Sc=mong}', "");
     Expect(0, 71276, '\p{^Is_Sc=mong}', "");
     Expect(0, 71276, '\P{Is_Sc=mong}', "");
@@ -135493,16 +136757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71277, '\p{^Is_Sc=mong}', "");
     Expect(1, 71277, '\P{Is_Sc=mong}', "");
     Expect(0, 71277, '\P{^Is_Sc=mong}', "");
-    Expect(1, 71276, '\p{Is_Sc=-Mong}', "");
-    Expect(0, 71276, '\p{^Is_Sc=-Mong}', "");
-    Expect(0, 71276, '\P{Is_Sc=-Mong}', "");
-    Expect(1, 71276, '\P{^Is_Sc=-Mong}', "");
-    Expect(0, 71277, '\p{Is_Sc=-Mong}', "");
-    Expect(1, 71277, '\p{^Is_Sc=-Mong}', "");
-    Expect(1, 71277, '\P{Is_Sc=-Mong}', "");
-    Expect(0, 71277, '\P{^Is_Sc=-Mong}', "");
-    Error('\p{Script=:=_-mro}');
-    Error('\P{Script=:=_-mro}');
+    Expect(1, 71276, '\p{Is_Sc=	_mong}', "");
+    Expect(0, 71276, '\p{^Is_Sc=	_mong}', "");
+    Expect(0, 71276, '\P{Is_Sc=	_mong}', "");
+    Expect(1, 71276, '\P{^Is_Sc=	_mong}', "");
+    Expect(0, 71277, '\p{Is_Sc=	_mong}', "");
+    Expect(1, 71277, '\p{^Is_Sc=	_mong}', "");
+    Expect(1, 71277, '\P{Is_Sc=	_mong}', "");
+    Expect(0, 71277, '\P{^Is_Sc=	_mong}', "");
+    Error('\p{Script=	:=Mro}');
+    Error('\P{Script=	:=Mro}');
     Expect(1, 92783, '\p{Script=:\AMro\z:}', "");;
     Expect(0, 92784, '\p{Script=:\AMro\z:}', "");;
     Expect(1, 92783, '\p{Script=mro}', "");
@@ -135515,38 +136779,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92784, '\P{^Script=mro}', "");
     Expect(1, 92783, '\p{Script=:\Amro\z:}', "");;
     Expect(0, 92784, '\p{Script=:\Amro\z:}', "");;
-    Expect(1, 92783, '\p{Script=__Mro}', "");
-    Expect(0, 92783, '\p{^Script=__Mro}', "");
-    Expect(0, 92783, '\P{Script=__Mro}', "");
-    Expect(1, 92783, '\P{^Script=__Mro}', "");
-    Expect(0, 92784, '\p{Script=__Mro}', "");
-    Expect(1, 92784, '\p{^Script=__Mro}', "");
-    Expect(1, 92784, '\P{Script=__Mro}', "");
-    Expect(0, 92784, '\P{^Script=__Mro}', "");
-    Error('\p{Sc=_mroo:=}');
-    Error('\P{Sc=_mroo:=}');
+    Expect(1, 92783, '\p{Script= _mro}', "");
+    Expect(0, 92783, '\p{^Script= _mro}', "");
+    Expect(0, 92783, '\P{Script= _mro}', "");
+    Expect(1, 92783, '\P{^Script= _mro}', "");
+    Expect(0, 92784, '\p{Script= _mro}', "");
+    Expect(1, 92784, '\p{^Script= _mro}', "");
+    Expect(1, 92784, '\P{Script= _mro}', "");
+    Expect(0, 92784, '\P{^Script= _mro}', "");
+    Error('\p{Sc=_MROO:=}');
+    Error('\P{Sc=_MROO:=}');
     Expect(1, 92783, '\p{Sc=:\AMroo\z:}', "");;
     Expect(0, 92784, '\p{Sc=:\AMroo\z:}', "");;
-    Expect(1, 92783, '\p{Sc=mroo}', "");
-    Expect(0, 92783, '\p{^Sc=mroo}', "");
-    Expect(0, 92783, '\P{Sc=mroo}', "");
-    Expect(1, 92783, '\P{^Sc=mroo}', "");
-    Expect(0, 92784, '\p{Sc=mroo}', "");
-    Expect(1, 92784, '\p{^Sc=mroo}', "");
-    Expect(1, 92784, '\P{Sc=mroo}', "");
-    Expect(0, 92784, '\P{^Sc=mroo}', "");
+    Expect(1, 92783, '\p{Sc:mroo}', "");
+    Expect(0, 92783, '\p{^Sc:mroo}', "");
+    Expect(0, 92783, '\P{Sc:mroo}', "");
+    Expect(1, 92783, '\P{^Sc:mroo}', "");
+    Expect(0, 92784, '\p{Sc:mroo}', "");
+    Expect(1, 92784, '\p{^Sc:mroo}', "");
+    Expect(1, 92784, '\P{Sc:mroo}', "");
+    Expect(0, 92784, '\P{^Sc:mroo}', "");
     Expect(1, 92783, '\p{Sc=:\Amroo\z:}', "");;
     Expect(0, 92784, '\p{Sc=:\Amroo\z:}', "");;
-    Expect(1, 92783, '\p{Sc=	-mroo}', "");
-    Expect(0, 92783, '\p{^Sc=	-mroo}', "");
-    Expect(0, 92783, '\P{Sc=	-mroo}', "");
-    Expect(1, 92783, '\P{^Sc=	-mroo}', "");
-    Expect(0, 92784, '\p{Sc=	-mroo}', "");
-    Expect(1, 92784, '\p{^Sc=	-mroo}', "");
-    Expect(1, 92784, '\P{Sc=	-mroo}', "");
-    Expect(0, 92784, '\P{^Sc=	-mroo}', "");
-    Error('\p{Is_Script=_-mro/a/}');
-    Error('\P{Is_Script=_-mro/a/}');
+    Expect(1, 92783, '\p{Sc=-MROO}', "");
+    Expect(0, 92783, '\p{^Sc=-MROO}', "");
+    Expect(0, 92783, '\P{Sc=-MROO}', "");
+    Expect(1, 92783, '\P{^Sc=-MROO}', "");
+    Expect(0, 92784, '\p{Sc=-MROO}', "");
+    Expect(1, 92784, '\p{^Sc=-MROO}', "");
+    Expect(1, 92784, '\P{Sc=-MROO}', "");
+    Expect(0, 92784, '\P{^Sc=-MROO}', "");
+    Error('\p{Is_Script=		mro/a/}');
+    Error('\P{Is_Script=		mro/a/}');
     Expect(1, 92783, '\p{Is_Script=mro}', "");
     Expect(0, 92783, '\p{^Is_Script=mro}', "");
     Expect(0, 92783, '\P{Is_Script=mro}', "");
@@ -135555,16 +136819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92784, '\p{^Is_Script=mro}', "");
     Expect(1, 92784, '\P{Is_Script=mro}', "");
     Expect(0, 92784, '\P{^Is_Script=mro}', "");
-    Expect(1, 92783, '\p{Is_Script=_MRO}', "");
-    Expect(0, 92783, '\p{^Is_Script=_MRO}', "");
-    Expect(0, 92783, '\P{Is_Script=_MRO}', "");
-    Expect(1, 92783, '\P{^Is_Script=_MRO}', "");
-    Expect(0, 92784, '\p{Is_Script=_MRO}', "");
-    Expect(1, 92784, '\p{^Is_Script=_MRO}', "");
-    Expect(1, 92784, '\P{Is_Script=_MRO}', "");
-    Expect(0, 92784, '\P{^Is_Script=_MRO}', "");
-    Error('\p{Is_Sc=/a/  Mroo}');
-    Error('\P{Is_Sc=/a/  Mroo}');
+    Expect(1, 92783, '\p{Is_Script=-Mro}', "");
+    Expect(0, 92783, '\p{^Is_Script=-Mro}', "");
+    Expect(0, 92783, '\P{Is_Script=-Mro}', "");
+    Expect(1, 92783, '\P{^Is_Script=-Mro}', "");
+    Expect(0, 92784, '\p{Is_Script=-Mro}', "");
+    Expect(1, 92784, '\p{^Is_Script=-Mro}', "");
+    Expect(1, 92784, '\P{Is_Script=-Mro}', "");
+    Expect(0, 92784, '\P{^Is_Script=-Mro}', "");
+    Error('\p{Is_Sc=	-mroo/a/}');
+    Error('\P{Is_Sc=	-mroo/a/}');
     Expect(1, 92783, '\p{Is_Sc=mroo}', "");
     Expect(0, 92783, '\p{^Is_Sc=mroo}', "");
     Expect(0, 92783, '\P{Is_Sc=mroo}', "");
@@ -135573,16 +136837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92784, '\p{^Is_Sc=mroo}', "");
     Expect(1, 92784, '\P{Is_Sc=mroo}', "");
     Expect(0, 92784, '\P{^Is_Sc=mroo}', "");
-    Expect(1, 92783, '\p{Is_Sc=__MROO}', "");
-    Expect(0, 92783, '\p{^Is_Sc=__MROO}', "");
-    Expect(0, 92783, '\P{Is_Sc=__MROO}', "");
-    Expect(1, 92783, '\P{^Is_Sc=__MROO}', "");
-    Expect(0, 92784, '\p{Is_Sc=__MROO}', "");
-    Expect(1, 92784, '\p{^Is_Sc=__MROO}', "");
-    Expect(1, 92784, '\P{Is_Sc=__MROO}', "");
-    Expect(0, 92784, '\P{^Is_Sc=__MROO}', "");
-    Error('\p{Script= :=Meetei_mayek}');
-    Error('\P{Script= :=Meetei_mayek}');
+    Expect(1, 92783, '\p{Is_Sc=--mroo}', "");
+    Expect(0, 92783, '\p{^Is_Sc=--mroo}', "");
+    Expect(0, 92783, '\P{Is_Sc=--mroo}', "");
+    Expect(1, 92783, '\P{^Is_Sc=--mroo}', "");
+    Expect(0, 92784, '\p{Is_Sc=--mroo}', "");
+    Expect(1, 92784, '\p{^Is_Sc=--mroo}', "");
+    Expect(1, 92784, '\P{Is_Sc=--mroo}', "");
+    Expect(0, 92784, '\P{^Is_Sc=--mroo}', "");
+    Error('\p{Script=	Meetei_MAYEK:=}');
+    Error('\P{Script=	Meetei_MAYEK:=}');
     Expect(1, 44025, '\p{Script=:\AMeetei_Mayek\z:}', "");;
     Expect(0, 44026, '\p{Script=:\AMeetei_Mayek\z:}', "");;
     Expect(1, 44025, '\p{Script=meeteimayek}', "");
@@ -135595,16 +136859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 44026, '\P{^Script=meeteimayek}', "");
     Expect(1, 44025, '\p{Script=:\Ameeteimayek\z:}', "");;
     Expect(0, 44026, '\p{Script=:\Ameeteimayek\z:}', "");;
-    Expect(1, 44025, '\p{Script=-meetei_Mayek}', "");
-    Expect(0, 44025, '\p{^Script=-meetei_Mayek}', "");
-    Expect(0, 44025, '\P{Script=-meetei_Mayek}', "");
-    Expect(1, 44025, '\P{^Script=-meetei_Mayek}', "");
-    Expect(0, 44026, '\p{Script=-meetei_Mayek}', "");
-    Expect(1, 44026, '\p{^Script=-meetei_Mayek}', "");
-    Expect(1, 44026, '\P{Script=-meetei_Mayek}', "");
-    Expect(0, 44026, '\P{^Script=-meetei_Mayek}', "");
-    Error('\p{Sc=:=_-MTEI}');
-    Error('\P{Sc=:=_-MTEI}');
+    Expect(1, 44025, '\p{Script= MEETEI_Mayek}', "");
+    Expect(0, 44025, '\p{^Script= MEETEI_Mayek}', "");
+    Expect(0, 44025, '\P{Script= MEETEI_Mayek}', "");
+    Expect(1, 44025, '\P{^Script= MEETEI_Mayek}', "");
+    Expect(0, 44026, '\p{Script= MEETEI_Mayek}', "");
+    Expect(1, 44026, '\p{^Script= MEETEI_Mayek}', "");
+    Expect(1, 44026, '\P{Script= MEETEI_Mayek}', "");
+    Expect(0, 44026, '\P{^Script= MEETEI_Mayek}', "");
+    Error('\p{Sc=:=-_Mtei}');
+    Error('\P{Sc=:=-_Mtei}');
     Expect(1, 44025, '\p{Sc=:\AMtei\z:}', "");;
     Expect(0, 44026, '\p{Sc=:\AMtei\z:}', "");;
     Expect(1, 44025, '\p{Sc=mtei}', "");
@@ -135617,16 +136881,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 44026, '\P{^Sc=mtei}', "");
     Expect(1, 44025, '\p{Sc=:\Amtei\z:}', "");;
     Expect(0, 44026, '\p{Sc=:\Amtei\z:}', "");;
-    Expect(1, 44025, '\p{Sc= _MTEI}', "");
-    Expect(0, 44025, '\p{^Sc= _MTEI}', "");
-    Expect(0, 44025, '\P{Sc= _MTEI}', "");
-    Expect(1, 44025, '\P{^Sc= _MTEI}', "");
-    Expect(0, 44026, '\p{Sc= _MTEI}', "");
-    Expect(1, 44026, '\p{^Sc= _MTEI}', "");
-    Expect(1, 44026, '\P{Sc= _MTEI}', "");
-    Expect(0, 44026, '\P{^Sc= _MTEI}', "");
-    Error('\p{Is_Script= -Meetei_mayek:=}');
-    Error('\P{Is_Script= -Meetei_mayek:=}');
+    Expect(1, 44025, '\p{Sc=		Mtei}', "");
+    Expect(0, 44025, '\p{^Sc=		Mtei}', "");
+    Expect(0, 44025, '\P{Sc=		Mtei}', "");
+    Expect(1, 44025, '\P{^Sc=		Mtei}', "");
+    Expect(0, 44026, '\p{Sc=		Mtei}', "");
+    Expect(1, 44026, '\p{^Sc=		Mtei}', "");
+    Expect(1, 44026, '\P{Sc=		Mtei}', "");
+    Expect(0, 44026, '\P{^Sc=		Mtei}', "");
+    Error('\p{Is_Script= -Meetei_MAYEK:=}');
+    Error('\P{Is_Script= -Meetei_MAYEK:=}');
     Expect(1, 44025, '\p{Is_Script=meeteimayek}', "");
     Expect(0, 44025, '\p{^Is_Script=meeteimayek}', "");
     Expect(0, 44025, '\P{Is_Script=meeteimayek}', "");
@@ -135635,16 +136899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 44026, '\p{^Is_Script=meeteimayek}', "");
     Expect(1, 44026, '\P{Is_Script=meeteimayek}', "");
     Expect(0, 44026, '\P{^Is_Script=meeteimayek}', "");
-    Expect(1, 44025, '\p{Is_Script=_Meetei_mayek}', "");
-    Expect(0, 44025, '\p{^Is_Script=_Meetei_mayek}', "");
-    Expect(0, 44025, '\P{Is_Script=_Meetei_mayek}', "");
-    Expect(1, 44025, '\P{^Is_Script=_Meetei_mayek}', "");
-    Expect(0, 44026, '\p{Is_Script=_Meetei_mayek}', "");
-    Expect(1, 44026, '\p{^Is_Script=_Meetei_mayek}', "");
-    Expect(1, 44026, '\P{Is_Script=_Meetei_mayek}', "");
-    Expect(0, 44026, '\P{^Is_Script=_Meetei_mayek}', "");
-    Error('\p{Is_Sc=_:=Mtei}');
-    Error('\P{Is_Sc=_:=Mtei}');
+    Expect(1, 44025, '\p{Is_Script=-meetei_Mayek}', "");
+    Expect(0, 44025, '\p{^Is_Script=-meetei_Mayek}', "");
+    Expect(0, 44025, '\P{Is_Script=-meetei_Mayek}', "");
+    Expect(1, 44025, '\P{^Is_Script=-meetei_Mayek}', "");
+    Expect(0, 44026, '\p{Is_Script=-meetei_Mayek}', "");
+    Expect(1, 44026, '\p{^Is_Script=-meetei_Mayek}', "");
+    Expect(1, 44026, '\P{Is_Script=-meetei_Mayek}', "");
+    Expect(0, 44026, '\P{^Is_Script=-meetei_Mayek}', "");
+    Error('\p{Is_Sc: :=__Mtei}');
+    Error('\P{Is_Sc: :=__Mtei}');
     Expect(1, 44025, '\p{Is_Sc=mtei}', "");
     Expect(0, 44025, '\p{^Is_Sc=mtei}', "");
     Expect(0, 44025, '\P{Is_Sc=mtei}', "");
@@ -135661,8 +136925,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 44026, '\p{^Is_Sc=-_Mtei}', "");
     Expect(1, 44026, '\P{Is_Sc=-_Mtei}', "");
     Expect(0, 44026, '\P{^Is_Sc=-_Mtei}', "");
-    Error('\p{Script= Multani:=}');
-    Error('\P{Script= Multani:=}');
+    Error('\p{Script=-Multani:=}');
+    Error('\P{Script=-Multani:=}');
     Expect(1, 70313, '\p{Script=:\AMultani\z:}', "");;
     Expect(0, 70314, '\p{Script=:\AMultani\z:}', "");;
     Expect(1, 70313, '\p{Script=multani}', "");
@@ -135675,74 +136939,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70314, '\P{^Script=multani}', "");
     Expect(1, 70313, '\p{Script=:\Amultani\z:}', "");;
     Expect(0, 70314, '\p{Script=:\Amultani\z:}', "");;
-    Expect(1, 70313, '\p{Script:   -Multani}', "");
-    Expect(0, 70313, '\p{^Script:   -Multani}', "");
-    Expect(0, 70313, '\P{Script:   -Multani}', "");
-    Expect(1, 70313, '\P{^Script:   -Multani}', "");
-    Expect(0, 70314, '\p{Script:   -Multani}', "");
-    Expect(1, 70314, '\p{^Script:   -Multani}', "");
-    Expect(1, 70314, '\P{Script:   -Multani}', "");
-    Expect(0, 70314, '\P{^Script:   -Multani}', "");
-    Error('\p{Sc=:=_MULT}');
-    Error('\P{Sc=:=_MULT}');
+    Expect(1, 70313, '\p{Script=_Multani}', "");
+    Expect(0, 70313, '\p{^Script=_Multani}', "");
+    Expect(0, 70313, '\P{Script=_Multani}', "");
+    Expect(1, 70313, '\P{^Script=_Multani}', "");
+    Expect(0, 70314, '\p{Script=_Multani}', "");
+    Expect(1, 70314, '\p{^Script=_Multani}', "");
+    Expect(1, 70314, '\P{Script=_Multani}', "");
+    Expect(0, 70314, '\P{^Script=_Multani}', "");
+    Error('\p{Sc=:=__MULT}');
+    Error('\P{Sc=:=__MULT}');
     Expect(1, 70313, '\p{Sc=:\AMult\z:}', "");;
     Expect(0, 70314, '\p{Sc=:\AMult\z:}', "");;
-    Expect(1, 70313, '\p{Sc=mult}', "");
-    Expect(0, 70313, '\p{^Sc=mult}', "");
-    Expect(0, 70313, '\P{Sc=mult}', "");
-    Expect(1, 70313, '\P{^Sc=mult}', "");
-    Expect(0, 70314, '\p{Sc=mult}', "");
-    Expect(1, 70314, '\p{^Sc=mult}', "");
-    Expect(1, 70314, '\P{Sc=mult}', "");
-    Expect(0, 70314, '\P{^Sc=mult}', "");
+    Expect(1, 70313, '\p{Sc:mult}', "");
+    Expect(0, 70313, '\p{^Sc:mult}', "");
+    Expect(0, 70313, '\P{Sc:mult}', "");
+    Expect(1, 70313, '\P{^Sc:mult}', "");
+    Expect(0, 70314, '\p{Sc:mult}', "");
+    Expect(1, 70314, '\p{^Sc:mult}', "");
+    Expect(1, 70314, '\P{Sc:mult}', "");
+    Expect(0, 70314, '\P{^Sc:mult}', "");
     Expect(1, 70313, '\p{Sc=:\Amult\z:}', "");;
     Expect(0, 70314, '\p{Sc=:\Amult\z:}', "");;
-    Expect(1, 70313, '\p{Sc=	mult}', "");
-    Expect(0, 70313, '\p{^Sc=	mult}', "");
-    Expect(0, 70313, '\P{Sc=	mult}', "");
-    Expect(1, 70313, '\P{^Sc=	mult}', "");
-    Expect(0, 70314, '\p{Sc=	mult}', "");
-    Expect(1, 70314, '\p{^Sc=	mult}', "");
-    Expect(1, 70314, '\P{Sc=	mult}', "");
-    Expect(0, 70314, '\P{^Sc=	mult}', "");
-    Error('\p{Is_Script=_ MULTANI:=}');
-    Error('\P{Is_Script=_ MULTANI:=}');
-    Expect(1, 70313, '\p{Is_Script:	multani}', "");
-    Expect(0, 70313, '\p{^Is_Script:	multani}', "");
-    Expect(0, 70313, '\P{Is_Script:	multani}', "");
-    Expect(1, 70313, '\P{^Is_Script:	multani}', "");
-    Expect(0, 70314, '\p{Is_Script:	multani}', "");
-    Expect(1, 70314, '\p{^Is_Script:	multani}', "");
-    Expect(1, 70314, '\P{Is_Script:	multani}', "");
-    Expect(0, 70314, '\P{^Is_Script:	multani}', "");
-    Expect(1, 70313, '\p{Is_Script=	MULTANI}', "");
-    Expect(0, 70313, '\p{^Is_Script=	MULTANI}', "");
-    Expect(0, 70313, '\P{Is_Script=	MULTANI}', "");
-    Expect(1, 70313, '\P{^Is_Script=	MULTANI}', "");
-    Expect(0, 70314, '\p{Is_Script=	MULTANI}', "");
-    Expect(1, 70314, '\p{^Is_Script=	MULTANI}', "");
-    Expect(1, 70314, '\P{Is_Script=	MULTANI}', "");
-    Expect(0, 70314, '\P{^Is_Script=	MULTANI}', "");
-    Error('\p{Is_Sc=	_MULT:=}');
-    Error('\P{Is_Sc=	_MULT:=}');
-    Expect(1, 70313, '\p{Is_Sc: mult}', "");
-    Expect(0, 70313, '\p{^Is_Sc: mult}', "");
-    Expect(0, 70313, '\P{Is_Sc: mult}', "");
-    Expect(1, 70313, '\P{^Is_Sc: mult}', "");
-    Expect(0, 70314, '\p{Is_Sc: mult}', "");
-    Expect(1, 70314, '\p{^Is_Sc: mult}', "");
-    Expect(1, 70314, '\P{Is_Sc: mult}', "");
-    Expect(0, 70314, '\P{^Is_Sc: mult}', "");
-    Expect(1, 70313, '\p{Is_Sc=- mult}', "");
-    Expect(0, 70313, '\p{^Is_Sc=- mult}', "");
-    Expect(0, 70313, '\P{Is_Sc=- mult}', "");
-    Expect(1, 70313, '\P{^Is_Sc=- mult}', "");
-    Expect(0, 70314, '\p{Is_Sc=- mult}', "");
-    Expect(1, 70314, '\p{^Is_Sc=- mult}', "");
-    Expect(1, 70314, '\P{Is_Sc=- mult}', "");
-    Expect(0, 70314, '\P{^Is_Sc=- mult}', "");
-    Error('\p{Script=	Myanmar:=}');
-    Error('\P{Script=	Myanmar:=}');
+    Expect(1, 70313, '\p{Sc=Mult}', "");
+    Expect(0, 70313, '\p{^Sc=Mult}', "");
+    Expect(0, 70313, '\P{Sc=Mult}', "");
+    Expect(1, 70313, '\P{^Sc=Mult}', "");
+    Expect(0, 70314, '\p{Sc=Mult}', "");
+    Expect(1, 70314, '\p{^Sc=Mult}', "");
+    Expect(1, 70314, '\P{Sc=Mult}', "");
+    Expect(0, 70314, '\P{^Sc=Mult}', "");
+    Error('\p{Is_Script=:= -Multani}');
+    Error('\P{Is_Script=:= -Multani}');
+    Expect(1, 70313, '\p{Is_Script=multani}', "");
+    Expect(0, 70313, '\p{^Is_Script=multani}', "");
+    Expect(0, 70313, '\P{Is_Script=multani}', "");
+    Expect(1, 70313, '\P{^Is_Script=multani}', "");
+    Expect(0, 70314, '\p{Is_Script=multani}', "");
+    Expect(1, 70314, '\p{^Is_Script=multani}', "");
+    Expect(1, 70314, '\P{Is_Script=multani}', "");
+    Expect(0, 70314, '\P{^Is_Script=multani}', "");
+    Expect(1, 70313, '\p{Is_Script= _Multani}', "");
+    Expect(0, 70313, '\p{^Is_Script= _Multani}', "");
+    Expect(0, 70313, '\P{Is_Script= _Multani}', "");
+    Expect(1, 70313, '\P{^Is_Script= _Multani}', "");
+    Expect(0, 70314, '\p{Is_Script= _Multani}', "");
+    Expect(1, 70314, '\p{^Is_Script= _Multani}', "");
+    Expect(1, 70314, '\P{Is_Script= _Multani}', "");
+    Expect(0, 70314, '\P{^Is_Script= _Multani}', "");
+    Error('\p{Is_Sc=--mult/a/}');
+    Error('\P{Is_Sc=--mult/a/}');
+    Expect(1, 70313, '\p{Is_Sc=mult}', "");
+    Expect(0, 70313, '\p{^Is_Sc=mult}', "");
+    Expect(0, 70313, '\P{Is_Sc=mult}', "");
+    Expect(1, 70313, '\P{^Is_Sc=mult}', "");
+    Expect(0, 70314, '\p{Is_Sc=mult}', "");
+    Expect(1, 70314, '\p{^Is_Sc=mult}', "");
+    Expect(1, 70314, '\P{Is_Sc=mult}', "");
+    Expect(0, 70314, '\P{^Is_Sc=mult}', "");
+    Expect(1, 70313, '\p{Is_Sc=	mult}', "");
+    Expect(0, 70313, '\p{^Is_Sc=	mult}', "");
+    Expect(0, 70313, '\P{Is_Sc=	mult}', "");
+    Expect(1, 70313, '\P{^Is_Sc=	mult}', "");
+    Expect(0, 70314, '\p{Is_Sc=	mult}', "");
+    Expect(1, 70314, '\p{^Is_Sc=	mult}', "");
+    Expect(1, 70314, '\P{Is_Sc=	mult}', "");
+    Expect(0, 70314, '\P{^Is_Sc=	mult}', "");
+    Error('\p{Script=	/a/myanmar}');
+    Error('\P{Script=	/a/myanmar}');
     Expect(1, 43647, '\p{Script=:\AMyanmar\z:}', "");;
     Expect(0, 43648, '\p{Script=:\AMyanmar\z:}', "");;
     Expect(1, 43647, '\p{Script=myanmar}', "");
@@ -135755,38 +137019,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43648, '\P{^Script=myanmar}', "");
     Expect(1, 43647, '\p{Script=:\Amyanmar\z:}', "");;
     Expect(0, 43648, '\p{Script=:\Amyanmar\z:}', "");;
-    Expect(1, 43647, '\p{Script=	Myanmar}', "");
-    Expect(0, 43647, '\p{^Script=	Myanmar}', "");
-    Expect(0, 43647, '\P{Script=	Myanmar}', "");
-    Expect(1, 43647, '\P{^Script=	Myanmar}', "");
-    Expect(0, 43648, '\p{Script=	Myanmar}', "");
-    Expect(1, 43648, '\p{^Script=	Myanmar}', "");
-    Expect(1, 43648, '\P{Script=	Myanmar}', "");
-    Expect(0, 43648, '\P{^Script=	Myanmar}', "");
-    Error('\p{Sc=/a/	mymr}');
-    Error('\P{Sc=/a/	mymr}');
+    Expect(1, 43647, '\p{Script= myanmar}', "");
+    Expect(0, 43647, '\p{^Script= myanmar}', "");
+    Expect(0, 43647, '\P{Script= myanmar}', "");
+    Expect(1, 43647, '\P{^Script= myanmar}', "");
+    Expect(0, 43648, '\p{Script= myanmar}', "");
+    Expect(1, 43648, '\p{^Script= myanmar}', "");
+    Expect(1, 43648, '\P{Script= myanmar}', "");
+    Expect(0, 43648, '\P{^Script= myanmar}', "");
+    Error('\p{Sc=__MYMR:=}');
+    Error('\P{Sc=__MYMR:=}');
     Expect(1, 43647, '\p{Sc=:\AMymr\z:}', "");;
     Expect(0, 43648, '\p{Sc=:\AMymr\z:}', "");;
-    Expect(1, 43647, '\p{Sc:   mymr}', "");
-    Expect(0, 43647, '\p{^Sc:   mymr}', "");
-    Expect(0, 43647, '\P{Sc:   mymr}', "");
-    Expect(1, 43647, '\P{^Sc:   mymr}', "");
-    Expect(0, 43648, '\p{Sc:   mymr}', "");
-    Expect(1, 43648, '\p{^Sc:   mymr}', "");
-    Expect(1, 43648, '\P{Sc:   mymr}', "");
-    Expect(0, 43648, '\P{^Sc:   mymr}', "");
+    Expect(1, 43647, '\p{Sc=mymr}', "");
+    Expect(0, 43647, '\p{^Sc=mymr}', "");
+    Expect(0, 43647, '\P{Sc=mymr}', "");
+    Expect(1, 43647, '\P{^Sc=mymr}', "");
+    Expect(0, 43648, '\p{Sc=mymr}', "");
+    Expect(1, 43648, '\p{^Sc=mymr}', "");
+    Expect(1, 43648, '\P{Sc=mymr}', "");
+    Expect(0, 43648, '\P{^Sc=mymr}', "");
     Expect(1, 43647, '\p{Sc=:\Amymr\z:}', "");;
     Expect(0, 43648, '\p{Sc=:\Amymr\z:}', "");;
-    Expect(1, 43647, '\p{Sc= mymr}', "");
-    Expect(0, 43647, '\p{^Sc= mymr}', "");
-    Expect(0, 43647, '\P{Sc= mymr}', "");
-    Expect(1, 43647, '\P{^Sc= mymr}', "");
-    Expect(0, 43648, '\p{Sc= mymr}', "");
-    Expect(1, 43648, '\p{^Sc= mymr}', "");
-    Expect(1, 43648, '\P{Sc= mymr}', "");
-    Expect(0, 43648, '\P{^Sc= mymr}', "");
-    Error('\p{Is_Script=:=MYANMAR}');
-    Error('\P{Is_Script=:=MYANMAR}');
+    Expect(1, 43647, '\p{Sc=__Mymr}', "");
+    Expect(0, 43647, '\p{^Sc=__Mymr}', "");
+    Expect(0, 43647, '\P{Sc=__Mymr}', "");
+    Expect(1, 43647, '\P{^Sc=__Mymr}', "");
+    Expect(0, 43648, '\p{Sc=__Mymr}', "");
+    Expect(1, 43648, '\p{^Sc=__Mymr}', "");
+    Expect(1, 43648, '\P{Sc=__Mymr}', "");
+    Expect(0, 43648, '\P{^Sc=__Mymr}', "");
+    Error('\p{Is_Script=	 Myanmar/a/}');
+    Error('\P{Is_Script=	 Myanmar/a/}');
     Expect(1, 43647, '\p{Is_Script=myanmar}', "");
     Expect(0, 43647, '\p{^Is_Script=myanmar}', "");
     Expect(0, 43647, '\P{Is_Script=myanmar}', "");
@@ -135795,16 +137059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43648, '\p{^Is_Script=myanmar}', "");
     Expect(1, 43648, '\P{Is_Script=myanmar}', "");
     Expect(0, 43648, '\P{^Is_Script=myanmar}', "");
-    Expect(1, 43647, '\p{Is_Script=	 Myanmar}', "");
-    Expect(0, 43647, '\p{^Is_Script=	 Myanmar}', "");
-    Expect(0, 43647, '\P{Is_Script=	 Myanmar}', "");
-    Expect(1, 43647, '\P{^Is_Script=	 Myanmar}', "");
-    Expect(0, 43648, '\p{Is_Script=	 Myanmar}', "");
-    Expect(1, 43648, '\p{^Is_Script=	 Myanmar}', "");
-    Expect(1, 43648, '\P{Is_Script=	 Myanmar}', "");
-    Expect(0, 43648, '\P{^Is_Script=	 Myanmar}', "");
-    Error('\p{Is_Sc=_-Mymr/a/}');
-    Error('\P{Is_Sc=_-Mymr/a/}');
+    Expect(1, 43647, '\p{Is_Script=Myanmar}', "");
+    Expect(0, 43647, '\p{^Is_Script=Myanmar}', "");
+    Expect(0, 43647, '\P{Is_Script=Myanmar}', "");
+    Expect(1, 43647, '\P{^Is_Script=Myanmar}', "");
+    Expect(0, 43648, '\p{Is_Script=Myanmar}', "");
+    Expect(1, 43648, '\p{^Is_Script=Myanmar}', "");
+    Expect(1, 43648, '\P{Is_Script=Myanmar}', "");
+    Expect(0, 43648, '\P{^Is_Script=Myanmar}', "");
+    Error('\p{Is_Sc=-/a/Mymr}');
+    Error('\P{Is_Sc=-/a/Mymr}');
     Expect(1, 43647, '\p{Is_Sc=mymr}', "");
     Expect(0, 43647, '\p{^Is_Sc=mymr}', "");
     Expect(0, 43647, '\P{Is_Sc=mymr}', "");
@@ -135813,16 +137077,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43648, '\p{^Is_Sc=mymr}', "");
     Expect(1, 43648, '\P{Is_Sc=mymr}', "");
     Expect(0, 43648, '\P{^Is_Sc=mymr}', "");
-    Expect(1, 43647, '\p{Is_Sc=	Mymr}', "");
-    Expect(0, 43647, '\p{^Is_Sc=	Mymr}', "");
-    Expect(0, 43647, '\P{Is_Sc=	Mymr}', "");
-    Expect(1, 43647, '\P{^Is_Sc=	Mymr}', "");
-    Expect(0, 43648, '\p{Is_Sc=	Mymr}', "");
-    Expect(1, 43648, '\p{^Is_Sc=	Mymr}', "");
-    Expect(1, 43648, '\P{Is_Sc=	Mymr}', "");
-    Expect(0, 43648, '\P{^Is_Sc=	Mymr}', "");
-    Error('\p{Script=:=	 Nandinagari}');
-    Error('\P{Script=:=	 Nandinagari}');
+    Expect(1, 43647, '\p{Is_Sc=	-MYMR}', "");
+    Expect(0, 43647, '\p{^Is_Sc=	-MYMR}', "");
+    Expect(0, 43647, '\P{Is_Sc=	-MYMR}', "");
+    Expect(1, 43647, '\P{^Is_Sc=	-MYMR}', "");
+    Expect(0, 43648, '\p{Is_Sc=	-MYMR}', "");
+    Expect(1, 43648, '\p{^Is_Sc=	-MYMR}', "");
+    Expect(1, 43648, '\P{Is_Sc=	-MYMR}', "");
+    Expect(0, 43648, '\P{^Is_Sc=	-MYMR}', "");
+    Error('\p{Script=/a/__Nag_Mundari}');
+    Error('\P{Script=/a/__Nag_Mundari}');
+    Expect(1, 124153, '\p{Script=:\ANag_Mundari\z:}', "");;
+    Expect(0, 124154, '\p{Script=:\ANag_Mundari\z:}', "");;
+    Expect(1, 124153, '\p{Script=nagmundari}', "");
+    Expect(0, 124153, '\p{^Script=nagmundari}', "");
+    Expect(0, 124153, '\P{Script=nagmundari}', "");
+    Expect(1, 124153, '\P{^Script=nagmundari}', "");
+    Expect(0, 124154, '\p{Script=nagmundari}', "");
+    Expect(1, 124154, '\p{^Script=nagmundari}', "");
+    Expect(1, 124154, '\P{Script=nagmundari}', "");
+    Expect(0, 124154, '\P{^Script=nagmundari}', "");
+    Expect(1, 124153, '\p{Script=:\Anagmundari\z:}', "");;
+    Expect(0, 124154, '\p{Script=:\Anagmundari\z:}', "");;
+    Expect(1, 124153, '\p{Script=	Nag_Mundari}', "");
+    Expect(0, 124153, '\p{^Script=	Nag_Mundari}', "");
+    Expect(0, 124153, '\P{Script=	Nag_Mundari}', "");
+    Expect(1, 124153, '\P{^Script=	Nag_Mundari}', "");
+    Expect(0, 124154, '\p{Script=	Nag_Mundari}', "");
+    Expect(1, 124154, '\p{^Script=	Nag_Mundari}', "");
+    Expect(1, 124154, '\P{Script=	Nag_Mundari}', "");
+    Expect(0, 124154, '\P{^Script=	Nag_Mundari}', "");
+    Error('\p{Sc=_:=nagm}');
+    Error('\P{Sc=_:=nagm}');
+    Expect(1, 124153, '\p{Sc=:\ANagm\z:}', "");;
+    Expect(0, 124154, '\p{Sc=:\ANagm\z:}', "");;
+    Expect(1, 124153, '\p{Sc=nagm}', "");
+    Expect(0, 124153, '\p{^Sc=nagm}', "");
+    Expect(0, 124153, '\P{Sc=nagm}', "");
+    Expect(1, 124153, '\P{^Sc=nagm}', "");
+    Expect(0, 124154, '\p{Sc=nagm}', "");
+    Expect(1, 124154, '\p{^Sc=nagm}', "");
+    Expect(1, 124154, '\P{Sc=nagm}', "");
+    Expect(0, 124154, '\P{^Sc=nagm}', "");
+    Expect(1, 124153, '\p{Sc=:\Anagm\z:}', "");;
+    Expect(0, 124154, '\p{Sc=:\Anagm\z:}', "");;
+    Expect(1, 124153, '\p{Sc=_Nagm}', "");
+    Expect(0, 124153, '\p{^Sc=_Nagm}', "");
+    Expect(0, 124153, '\P{Sc=_Nagm}', "");
+    Expect(1, 124153, '\P{^Sc=_Nagm}', "");
+    Expect(0, 124154, '\p{Sc=_Nagm}', "");
+    Expect(1, 124154, '\p{^Sc=_Nagm}', "");
+    Expect(1, 124154, '\P{Sc=_Nagm}', "");
+    Expect(0, 124154, '\P{^Sc=_Nagm}', "");
+    Error('\p{Is_Script=	/a/NAG_Mundari}');
+    Error('\P{Is_Script=	/a/NAG_Mundari}');
+    Expect(1, 124153, '\p{Is_Script=nagmundari}', "");
+    Expect(0, 124153, '\p{^Is_Script=nagmundari}', "");
+    Expect(0, 124153, '\P{Is_Script=nagmundari}', "");
+    Expect(1, 124153, '\P{^Is_Script=nagmundari}', "");
+    Expect(0, 124154, '\p{Is_Script=nagmundari}', "");
+    Expect(1, 124154, '\p{^Is_Script=nagmundari}', "");
+    Expect(1, 124154, '\P{Is_Script=nagmundari}', "");
+    Expect(0, 124154, '\P{^Is_Script=nagmundari}', "");
+    Expect(1, 124153, '\p{Is_Script=	-Nag_Mundari}', "");
+    Expect(0, 124153, '\p{^Is_Script=	-Nag_Mundari}', "");
+    Expect(0, 124153, '\P{Is_Script=	-Nag_Mundari}', "");
+    Expect(1, 124153, '\P{^Is_Script=	-Nag_Mundari}', "");
+    Expect(0, 124154, '\p{Is_Script=	-Nag_Mundari}', "");
+    Expect(1, 124154, '\p{^Is_Script=	-Nag_Mundari}', "");
+    Expect(1, 124154, '\P{Is_Script=	-Nag_Mundari}', "");
+    Expect(0, 124154, '\P{^Is_Script=	-Nag_Mundari}', "");
+    Error('\p{Is_Sc=_	NAGM/a/}');
+    Error('\P{Is_Sc=_	NAGM/a/}');
+    Expect(1, 124153, '\p{Is_Sc=nagm}', "");
+    Expect(0, 124153, '\p{^Is_Sc=nagm}', "");
+    Expect(0, 124153, '\P{Is_Sc=nagm}', "");
+    Expect(1, 124153, '\P{^Is_Sc=nagm}', "");
+    Expect(0, 124154, '\p{Is_Sc=nagm}', "");
+    Expect(1, 124154, '\p{^Is_Sc=nagm}', "");
+    Expect(1, 124154, '\P{Is_Sc=nagm}', "");
+    Expect(0, 124154, '\P{^Is_Sc=nagm}', "");
+    Expect(1, 124153, '\p{Is_Sc=--nagm}', "");
+    Expect(0, 124153, '\p{^Is_Sc=--nagm}', "");
+    Expect(0, 124153, '\P{Is_Sc=--nagm}', "");
+    Expect(1, 124153, '\P{^Is_Sc=--nagm}', "");
+    Expect(0, 124154, '\p{Is_Sc=--nagm}', "");
+    Expect(1, 124154, '\p{^Is_Sc=--nagm}', "");
+    Expect(1, 124154, '\P{Is_Sc=--nagm}', "");
+    Expect(0, 124154, '\P{^Is_Sc=--nagm}', "");
+    Error('\p{Script=:=_Nandinagari}');
+    Error('\P{Script=:=_Nandinagari}');
     Expect(1, 72164, '\p{Script=:\ANandinagari\z:}', "");;
     Expect(0, 72165, '\p{Script=:\ANandinagari\z:}', "");;
     Expect(1, 72164, '\p{Script=nandinagari}', "");
@@ -135835,16 +137179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72165, '\P{^Script=nandinagari}', "");
     Expect(1, 72164, '\p{Script=:\Anandinagari\z:}', "");;
     Expect(0, 72165, '\p{Script=:\Anandinagari\z:}', "");;
-    Expect(1, 72164, '\p{Script=-_NANDINAGARI}', "");
-    Expect(0, 72164, '\p{^Script=-_NANDINAGARI}', "");
-    Expect(0, 72164, '\P{Script=-_NANDINAGARI}', "");
-    Expect(1, 72164, '\P{^Script=-_NANDINAGARI}', "");
-    Expect(0, 72165, '\p{Script=-_NANDINAGARI}', "");
-    Expect(1, 72165, '\p{^Script=-_NANDINAGARI}', "");
-    Expect(1, 72165, '\P{Script=-_NANDINAGARI}', "");
-    Expect(0, 72165, '\P{^Script=-_NANDINAGARI}', "");
-    Error('\p{Sc=__NAND/a/}');
-    Error('\P{Sc=__NAND/a/}');
+    Expect(1, 72164, '\p{Script=_NANDINAGARI}', "");
+    Expect(0, 72164, '\p{^Script=_NANDINAGARI}', "");
+    Expect(0, 72164, '\P{Script=_NANDINAGARI}', "");
+    Expect(1, 72164, '\P{^Script=_NANDINAGARI}', "");
+    Expect(0, 72165, '\p{Script=_NANDINAGARI}', "");
+    Expect(1, 72165, '\p{^Script=_NANDINAGARI}', "");
+    Expect(1, 72165, '\P{Script=_NANDINAGARI}', "");
+    Expect(0, 72165, '\P{^Script=_NANDINAGARI}', "");
+    Error('\p{Sc=:=-Nand}');
+    Error('\P{Sc=:=-Nand}');
     Expect(1, 72164, '\p{Sc=:\ANand\z:}', "");;
     Expect(0, 72165, '\p{Sc=:\ANand\z:}', "");;
     Expect(1, 72164, '\p{Sc=nand}', "");
@@ -135857,52 +137201,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72165, '\P{^Sc=nand}', "");
     Expect(1, 72164, '\p{Sc=:\Anand\z:}', "");;
     Expect(0, 72165, '\p{Sc=:\Anand\z:}', "");;
-    Expect(1, 72164, '\p{Sc=_Nand}', "");
-    Expect(0, 72164, '\p{^Sc=_Nand}', "");
-    Expect(0, 72164, '\P{Sc=_Nand}', "");
-    Expect(1, 72164, '\P{^Sc=_Nand}', "");
-    Expect(0, 72165, '\p{Sc=_Nand}', "");
-    Expect(1, 72165, '\p{^Sc=_Nand}', "");
-    Expect(1, 72165, '\P{Sc=_Nand}', "");
-    Expect(0, 72165, '\P{^Sc=_Nand}', "");
-    Error('\p{Is_Script=Nandinagari/a/}');
-    Error('\P{Is_Script=Nandinagari/a/}');
-    Expect(1, 72164, '\p{Is_Script=nandinagari}', "");
-    Expect(0, 72164, '\p{^Is_Script=nandinagari}', "");
-    Expect(0, 72164, '\P{Is_Script=nandinagari}', "");
-    Expect(1, 72164, '\P{^Is_Script=nandinagari}', "");
-    Expect(0, 72165, '\p{Is_Script=nandinagari}', "");
-    Expect(1, 72165, '\p{^Is_Script=nandinagari}', "");
-    Expect(1, 72165, '\P{Is_Script=nandinagari}', "");
-    Expect(0, 72165, '\P{^Is_Script=nandinagari}', "");
-    Expect(1, 72164, '\p{Is_Script=_	nandinagari}', "");
-    Expect(0, 72164, '\p{^Is_Script=_	nandinagari}', "");
-    Expect(0, 72164, '\P{Is_Script=_	nandinagari}', "");
-    Expect(1, 72164, '\P{^Is_Script=_	nandinagari}', "");
-    Expect(0, 72165, '\p{Is_Script=_	nandinagari}', "");
-    Expect(1, 72165, '\p{^Is_Script=_	nandinagari}', "");
-    Expect(1, 72165, '\P{Is_Script=_	nandinagari}', "");
-    Expect(0, 72165, '\P{^Is_Script=_	nandinagari}', "");
-    Error('\p{Is_Sc=-/a/Nand}');
-    Error('\P{Is_Sc=-/a/Nand}');
-    Expect(1, 72164, '\p{Is_Sc:   nand}', "");
-    Expect(0, 72164, '\p{^Is_Sc:   nand}', "");
-    Expect(0, 72164, '\P{Is_Sc:   nand}', "");
-    Expect(1, 72164, '\P{^Is_Sc:   nand}', "");
-    Expect(0, 72165, '\p{Is_Sc:   nand}', "");
-    Expect(1, 72165, '\p{^Is_Sc:   nand}', "");
-    Expect(1, 72165, '\P{Is_Sc:   nand}', "");
-    Expect(0, 72165, '\P{^Is_Sc:   nand}', "");
-    Expect(1, 72164, '\p{Is_Sc=-Nand}', "");
-    Expect(0, 72164, '\p{^Is_Sc=-Nand}', "");
-    Expect(0, 72164, '\P{Is_Sc=-Nand}', "");
-    Expect(1, 72164, '\P{^Is_Sc=-Nand}', "");
-    Expect(0, 72165, '\p{Is_Sc=-Nand}', "");
-    Expect(1, 72165, '\p{^Is_Sc=-Nand}', "");
-    Expect(1, 72165, '\P{Is_Sc=-Nand}', "");
-    Expect(0, 72165, '\P{^Is_Sc=-Nand}', "");
-    Error('\p{Script=_/a/old_NORTH_arabian}');
-    Error('\P{Script=_/a/old_NORTH_arabian}');
+    Expect(1, 72164, '\p{Sc= _Nand}', "");
+    Expect(0, 72164, '\p{^Sc= _Nand}', "");
+    Expect(0, 72164, '\P{Sc= _Nand}', "");
+    Expect(1, 72164, '\P{^Sc= _Nand}', "");
+    Expect(0, 72165, '\p{Sc= _Nand}', "");
+    Expect(1, 72165, '\p{^Sc= _Nand}', "");
+    Expect(1, 72165, '\P{Sc= _Nand}', "");
+    Expect(0, 72165, '\P{^Sc= _Nand}', "");
+    Error('\p{Is_Script=  Nandinagari:=}');
+    Error('\P{Is_Script=  Nandinagari:=}');
+    Expect(1, 72164, '\p{Is_Script:nandinagari}', "");
+    Expect(0, 72164, '\p{^Is_Script:nandinagari}', "");
+    Expect(0, 72164, '\P{Is_Script:nandinagari}', "");
+    Expect(1, 72164, '\P{^Is_Script:nandinagari}', "");
+    Expect(0, 72165, '\p{Is_Script:nandinagari}', "");
+    Expect(1, 72165, '\p{^Is_Script:nandinagari}', "");
+    Expect(1, 72165, '\P{Is_Script:nandinagari}', "");
+    Expect(0, 72165, '\P{^Is_Script:nandinagari}', "");
+    Expect(1, 72164, '\p{Is_Script=	-Nandinagari}', "");
+    Expect(0, 72164, '\p{^Is_Script=	-Nandinagari}', "");
+    Expect(0, 72164, '\P{Is_Script=	-Nandinagari}', "");
+    Expect(1, 72164, '\P{^Is_Script=	-Nandinagari}', "");
+    Expect(0, 72165, '\p{Is_Script=	-Nandinagari}', "");
+    Expect(1, 72165, '\p{^Is_Script=	-Nandinagari}', "");
+    Expect(1, 72165, '\P{Is_Script=	-Nandinagari}', "");
+    Expect(0, 72165, '\P{^Is_Script=	-Nandinagari}', "");
+    Error('\p{Is_Sc= Nand/a/}');
+    Error('\P{Is_Sc= Nand/a/}');
+    Expect(1, 72164, '\p{Is_Sc=nand}', "");
+    Expect(0, 72164, '\p{^Is_Sc=nand}', "");
+    Expect(0, 72164, '\P{Is_Sc=nand}', "");
+    Expect(1, 72164, '\P{^Is_Sc=nand}', "");
+    Expect(0, 72165, '\p{Is_Sc=nand}', "");
+    Expect(1, 72165, '\p{^Is_Sc=nand}', "");
+    Expect(1, 72165, '\P{Is_Sc=nand}', "");
+    Expect(0, 72165, '\P{^Is_Sc=nand}', "");
+    Expect(1, 72164, '\p{Is_Sc=_ nand}', "");
+    Expect(0, 72164, '\p{^Is_Sc=_ nand}', "");
+    Expect(0, 72164, '\P{Is_Sc=_ nand}', "");
+    Expect(1, 72164, '\P{^Is_Sc=_ nand}', "");
+    Expect(0, 72165, '\p{Is_Sc=_ nand}', "");
+    Expect(1, 72165, '\p{^Is_Sc=_ nand}', "");
+    Expect(1, 72165, '\P{Is_Sc=_ nand}', "");
+    Expect(0, 72165, '\P{^Is_Sc=_ nand}', "");
+    Error('\p{Script=_OLD_NORTH_Arabian/a/}');
+    Error('\P{Script=_OLD_NORTH_Arabian/a/}');
     Expect(1, 68255, '\p{Script=:\AOld_North_Arabian\z:}', "");;
     Expect(0, 68256, '\p{Script=:\AOld_North_Arabian\z:}', "");;
     Expect(1, 68255, '\p{Script=oldnortharabian}', "");
@@ -135915,16 +137259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68256, '\P{^Script=oldnortharabian}', "");
     Expect(1, 68255, '\p{Script=:\Aoldnortharabian\z:}', "");;
     Expect(0, 68256, '\p{Script=:\Aoldnortharabian\z:}', "");;
-    Expect(1, 68255, '\p{Script=	old_NORTH_ARABIAN}', "");
-    Expect(0, 68255, '\p{^Script=	old_NORTH_ARABIAN}', "");
-    Expect(0, 68255, '\P{Script=	old_NORTH_ARABIAN}', "");
-    Expect(1, 68255, '\P{^Script=	old_NORTH_ARABIAN}', "");
-    Expect(0, 68256, '\p{Script=	old_NORTH_ARABIAN}', "");
-    Expect(1, 68256, '\p{^Script=	old_NORTH_ARABIAN}', "");
-    Expect(1, 68256, '\P{Script=	old_NORTH_ARABIAN}', "");
-    Expect(0, 68256, '\P{^Script=	old_NORTH_ARABIAN}', "");
-    Error('\p{Sc: /a/	 narb}');
-    Error('\P{Sc: /a/	 narb}');
+    Expect(1, 68255, '\p{Script=-Old_North_ARABIAN}', "");
+    Expect(0, 68255, '\p{^Script=-Old_North_ARABIAN}', "");
+    Expect(0, 68255, '\P{Script=-Old_North_ARABIAN}', "");
+    Expect(1, 68255, '\P{^Script=-Old_North_ARABIAN}', "");
+    Expect(0, 68256, '\p{Script=-Old_North_ARABIAN}', "");
+    Expect(1, 68256, '\p{^Script=-Old_North_ARABIAN}', "");
+    Expect(1, 68256, '\P{Script=-Old_North_ARABIAN}', "");
+    Expect(0, 68256, '\P{^Script=-Old_North_ARABIAN}', "");
+    Error('\p{Sc:-Narb/a/}');
+    Error('\P{Sc:-Narb/a/}');
     Expect(1, 68255, '\p{Sc=:\ANarb\z:}', "");;
     Expect(0, 68256, '\p{Sc=:\ANarb\z:}', "");;
     Expect(1, 68255, '\p{Sc=narb}', "");
@@ -135937,16 +137281,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68256, '\P{^Sc=narb}', "");
     Expect(1, 68255, '\p{Sc=:\Anarb\z:}', "");;
     Expect(0, 68256, '\p{Sc=:\Anarb\z:}', "");;
-    Expect(1, 68255, '\p{Sc=	 NARB}', "");
-    Expect(0, 68255, '\p{^Sc=	 NARB}', "");
-    Expect(0, 68255, '\P{Sc=	 NARB}', "");
-    Expect(1, 68255, '\P{^Sc=	 NARB}', "");
-    Expect(0, 68256, '\p{Sc=	 NARB}', "");
-    Expect(1, 68256, '\p{^Sc=	 NARB}', "");
-    Expect(1, 68256, '\P{Sc=	 NARB}', "");
-    Expect(0, 68256, '\P{^Sc=	 NARB}', "");
-    Error('\p{Is_Script=:=Old_North_arabian}');
-    Error('\P{Is_Script=:=Old_North_arabian}');
+    Expect(1, 68255, '\p{Sc=	Narb}', "");
+    Expect(0, 68255, '\p{^Sc=	Narb}', "");
+    Expect(0, 68255, '\P{Sc=	Narb}', "");
+    Expect(1, 68255, '\P{^Sc=	Narb}', "");
+    Expect(0, 68256, '\p{Sc=	Narb}', "");
+    Expect(1, 68256, '\p{^Sc=	Narb}', "");
+    Expect(1, 68256, '\P{Sc=	Narb}', "");
+    Expect(0, 68256, '\P{^Sc=	Narb}', "");
+    Error('\p{Is_Script= _Old_North_arabian:=}');
+    Error('\P{Is_Script= _Old_North_arabian:=}');
     Expect(1, 68255, '\p{Is_Script=oldnortharabian}', "");
     Expect(0, 68255, '\p{^Is_Script=oldnortharabian}', "");
     Expect(0, 68255, '\P{Is_Script=oldnortharabian}', "");
@@ -135955,16 +137299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68256, '\p{^Is_Script=oldnortharabian}', "");
     Expect(1, 68256, '\P{Is_Script=oldnortharabian}', "");
     Expect(0, 68256, '\P{^Is_Script=oldnortharabian}', "");
-    Expect(1, 68255, '\p{Is_Script=_-Old_north_arabian}', "");
-    Expect(0, 68255, '\p{^Is_Script=_-Old_north_arabian}', "");
-    Expect(0, 68255, '\P{Is_Script=_-Old_north_arabian}', "");
-    Expect(1, 68255, '\P{^Is_Script=_-Old_north_arabian}', "");
-    Expect(0, 68256, '\p{Is_Script=_-Old_north_arabian}', "");
-    Expect(1, 68256, '\p{^Is_Script=_-Old_north_arabian}', "");
-    Expect(1, 68256, '\P{Is_Script=_-Old_north_arabian}', "");
-    Expect(0, 68256, '\P{^Is_Script=_-Old_north_arabian}', "");
-    Error('\p{Is_Sc=:=-Narb}');
-    Error('\P{Is_Sc=:=-Narb}');
+    Expect(1, 68255, '\p{Is_Script=--old_North_Arabian}', "");
+    Expect(0, 68255, '\p{^Is_Script=--old_North_Arabian}', "");
+    Expect(0, 68255, '\P{Is_Script=--old_North_Arabian}', "");
+    Expect(1, 68255, '\P{^Is_Script=--old_North_Arabian}', "");
+    Expect(0, 68256, '\p{Is_Script=--old_North_Arabian}', "");
+    Expect(1, 68256, '\p{^Is_Script=--old_North_Arabian}', "");
+    Expect(1, 68256, '\P{Is_Script=--old_North_Arabian}', "");
+    Expect(0, 68256, '\P{^Is_Script=--old_North_Arabian}', "");
+    Error('\p{Is_Sc=-/a/narb}');
+    Error('\P{Is_Sc=-/a/narb}');
     Expect(1, 68255, '\p{Is_Sc=narb}', "");
     Expect(0, 68255, '\p{^Is_Sc=narb}', "");
     Expect(0, 68255, '\P{Is_Sc=narb}', "");
@@ -135973,16 +137317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68256, '\p{^Is_Sc=narb}', "");
     Expect(1, 68256, '\P{Is_Sc=narb}', "");
     Expect(0, 68256, '\P{^Is_Sc=narb}', "");
-    Expect(1, 68255, '\p{Is_Sc=  Narb}', "");
-    Expect(0, 68255, '\p{^Is_Sc=  Narb}', "");
-    Expect(0, 68255, '\P{Is_Sc=  Narb}', "");
-    Expect(1, 68255, '\P{^Is_Sc=  Narb}', "");
-    Expect(0, 68256, '\p{Is_Sc=  Narb}', "");
-    Expect(1, 68256, '\p{^Is_Sc=  Narb}', "");
-    Expect(1, 68256, '\P{Is_Sc=  Narb}', "");
-    Expect(0, 68256, '\P{^Is_Sc=  Narb}', "");
-    Error('\p{Script:	/a/Nabataean}');
-    Error('\P{Script:	/a/Nabataean}');
+    Expect(1, 68255, '\p{Is_Sc= -Narb}', "");
+    Expect(0, 68255, '\p{^Is_Sc= -Narb}', "");
+    Expect(0, 68255, '\P{Is_Sc= -Narb}', "");
+    Expect(1, 68255, '\P{^Is_Sc= -Narb}', "");
+    Expect(0, 68256, '\p{Is_Sc= -Narb}', "");
+    Expect(1, 68256, '\p{^Is_Sc= -Narb}', "");
+    Expect(1, 68256, '\P{Is_Sc= -Narb}', "");
+    Expect(0, 68256, '\P{^Is_Sc= -Narb}', "");
+    Error('\p{Script=	_Nabataean:=}');
+    Error('\P{Script=	_Nabataean:=}');
     Expect(1, 67759, '\p{Script=:\ANabataean\z:}', "");;
     Expect(0, 67760, '\p{Script=:\ANabataean\z:}', "");;
     Expect(1, 67759, '\p{Script=nabataean}', "");
@@ -135995,16 +137339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67760, '\P{^Script=nabataean}', "");
     Expect(1, 67759, '\p{Script=:\Anabataean\z:}', "");;
     Expect(0, 67760, '\p{Script=:\Anabataean\z:}', "");;
-    Expect(1, 67759, '\p{Script=	 nabataean}', "");
-    Expect(0, 67759, '\p{^Script=	 nabataean}', "");
-    Expect(0, 67759, '\P{Script=	 nabataean}', "");
-    Expect(1, 67759, '\P{^Script=	 nabataean}', "");
-    Expect(0, 67760, '\p{Script=	 nabataean}', "");
-    Expect(1, 67760, '\p{^Script=	 nabataean}', "");
-    Expect(1, 67760, '\P{Script=	 nabataean}', "");
-    Expect(0, 67760, '\P{^Script=	 nabataean}', "");
-    Error('\p{Sc=/a/Nbat}');
-    Error('\P{Sc=/a/Nbat}');
+    Expect(1, 67759, '\p{Script=  Nabataean}', "");
+    Expect(0, 67759, '\p{^Script=  Nabataean}', "");
+    Expect(0, 67759, '\P{Script=  Nabataean}', "");
+    Expect(1, 67759, '\P{^Script=  Nabataean}', "");
+    Expect(0, 67760, '\p{Script=  Nabataean}', "");
+    Expect(1, 67760, '\p{^Script=  Nabataean}', "");
+    Expect(1, 67760, '\P{Script=  Nabataean}', "");
+    Expect(0, 67760, '\P{^Script=  Nabataean}', "");
+    Error('\p{Sc=-/a/Nbat}');
+    Error('\P{Sc=-/a/Nbat}');
     Expect(1, 67759, '\p{Sc=:\ANbat\z:}', "");;
     Expect(0, 67760, '\p{Sc=:\ANbat\z:}', "");;
     Expect(1, 67759, '\p{Sc=nbat}', "");
@@ -136017,16 +137361,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67760, '\P{^Sc=nbat}', "");
     Expect(1, 67759, '\p{Sc=:\Anbat\z:}', "");;
     Expect(0, 67760, '\p{Sc=:\Anbat\z:}', "");;
-    Expect(1, 67759, '\p{Sc=	_NBAT}', "");
-    Expect(0, 67759, '\p{^Sc=	_NBAT}', "");
-    Expect(0, 67759, '\P{Sc=	_NBAT}', "");
-    Expect(1, 67759, '\P{^Sc=	_NBAT}', "");
-    Expect(0, 67760, '\p{Sc=	_NBAT}', "");
-    Expect(1, 67760, '\p{^Sc=	_NBAT}', "");
-    Expect(1, 67760, '\P{Sc=	_NBAT}', "");
-    Expect(0, 67760, '\P{^Sc=	_NBAT}', "");
-    Error('\p{Is_Script:- nabataean/a/}');
-    Error('\P{Is_Script:- nabataean/a/}');
+    Expect(1, 67759, '\p{Sc=	Nbat}', "");
+    Expect(0, 67759, '\p{^Sc=	Nbat}', "");
+    Expect(0, 67759, '\P{Sc=	Nbat}', "");
+    Expect(1, 67759, '\P{^Sc=	Nbat}', "");
+    Expect(0, 67760, '\p{Sc=	Nbat}', "");
+    Expect(1, 67760, '\p{^Sc=	Nbat}', "");
+    Expect(1, 67760, '\P{Sc=	Nbat}', "");
+    Expect(0, 67760, '\P{^Sc=	Nbat}', "");
+    Error('\p{Is_Script=:=	_Nabataean}');
+    Error('\P{Is_Script=:=	_Nabataean}');
     Expect(1, 67759, '\p{Is_Script=nabataean}', "");
     Expect(0, 67759, '\p{^Is_Script=nabataean}', "");
     Expect(0, 67759, '\P{Is_Script=nabataean}', "");
@@ -136035,16 +137379,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67760, '\p{^Is_Script=nabataean}', "");
     Expect(1, 67760, '\P{Is_Script=nabataean}', "");
     Expect(0, 67760, '\P{^Is_Script=nabataean}', "");
-    Expect(1, 67759, '\p{Is_Script= _Nabataean}', "");
-    Expect(0, 67759, '\p{^Is_Script= _Nabataean}', "");
-    Expect(0, 67759, '\P{Is_Script= _Nabataean}', "");
-    Expect(1, 67759, '\P{^Is_Script= _Nabataean}', "");
-    Expect(0, 67760, '\p{Is_Script= _Nabataean}', "");
-    Expect(1, 67760, '\p{^Is_Script= _Nabataean}', "");
-    Expect(1, 67760, '\P{Is_Script= _Nabataean}', "");
-    Expect(0, 67760, '\P{^Is_Script= _Nabataean}', "");
-    Error('\p{Is_Sc=  nbat/a/}');
-    Error('\P{Is_Sc=  nbat/a/}');
+    Expect(1, 67759, '\p{Is_Script= _NABATAEAN}', "");
+    Expect(0, 67759, '\p{^Is_Script= _NABATAEAN}', "");
+    Expect(0, 67759, '\P{Is_Script= _NABATAEAN}', "");
+    Expect(1, 67759, '\P{^Is_Script= _NABATAEAN}', "");
+    Expect(0, 67760, '\p{Is_Script= _NABATAEAN}', "");
+    Expect(1, 67760, '\p{^Is_Script= _NABATAEAN}', "");
+    Expect(1, 67760, '\P{Is_Script= _NABATAEAN}', "");
+    Expect(0, 67760, '\P{^Is_Script= _NABATAEAN}', "");
+    Error('\p{Is_Sc=/a/-NBAT}');
+    Error('\P{Is_Sc=/a/-NBAT}');
     Expect(1, 67759, '\p{Is_Sc=nbat}', "");
     Expect(0, 67759, '\p{^Is_Sc=nbat}', "");
     Expect(0, 67759, '\P{Is_Sc=nbat}', "");
@@ -136053,16 +137397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67760, '\p{^Is_Sc=nbat}', "");
     Expect(1, 67760, '\P{Is_Sc=nbat}', "");
     Expect(0, 67760, '\P{^Is_Sc=nbat}', "");
-    Expect(1, 67759, '\p{Is_Sc: nbat}', "");
-    Expect(0, 67759, '\p{^Is_Sc: nbat}', "");
-    Expect(0, 67759, '\P{Is_Sc: nbat}', "");
-    Expect(1, 67759, '\P{^Is_Sc: nbat}', "");
-    Expect(0, 67760, '\p{Is_Sc: nbat}', "");
-    Expect(1, 67760, '\p{^Is_Sc: nbat}', "");
-    Expect(1, 67760, '\P{Is_Sc: nbat}', "");
-    Expect(0, 67760, '\P{^Is_Sc: nbat}', "");
-    Error('\p{Script:		Newa:=}');
-    Error('\P{Script:		Newa:=}');
+    Expect(1, 67759, '\p{Is_Sc=--NBAT}', "");
+    Expect(0, 67759, '\p{^Is_Sc=--NBAT}', "");
+    Expect(0, 67759, '\P{Is_Sc=--NBAT}', "");
+    Expect(1, 67759, '\P{^Is_Sc=--NBAT}', "");
+    Expect(0, 67760, '\p{Is_Sc=--NBAT}', "");
+    Expect(1, 67760, '\p{^Is_Sc=--NBAT}', "");
+    Expect(1, 67760, '\P{Is_Sc=--NBAT}', "");
+    Expect(0, 67760, '\P{^Is_Sc=--NBAT}', "");
+    Error('\p{Script:   :=Newa}');
+    Error('\P{Script:   :=Newa}');
     Expect(1, 70753, '\p{Script=:\ANewa\z:}', "");;
     Expect(0, 70754, '\p{Script=:\ANewa\z:}', "");;
     Expect(1, 70753, '\p{Script=newa}', "");
@@ -136075,16 +137419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70754, '\P{^Script=newa}', "");
     Expect(1, 70753, '\p{Script=:\Anewa\z:}', "");;
     Expect(0, 70754, '\p{Script=:\Anewa\z:}', "");;
-    Expect(1, 70753, '\p{Script=_ Newa}', "");
-    Expect(0, 70753, '\p{^Script=_ Newa}', "");
-    Expect(0, 70753, '\P{Script=_ Newa}', "");
-    Expect(1, 70753, '\P{^Script=_ Newa}', "");
-    Expect(0, 70754, '\p{Script=_ Newa}', "");
-    Expect(1, 70754, '\p{^Script=_ Newa}', "");
-    Expect(1, 70754, '\P{Script=_ Newa}', "");
-    Expect(0, 70754, '\P{^Script=_ Newa}', "");
-    Error('\p{Sc=/a/_ Newa}');
-    Error('\P{Sc=/a/_ Newa}');
+    Expect(1, 70753, '\p{Script=_Newa}', "");
+    Expect(0, 70753, '\p{^Script=_Newa}', "");
+    Expect(0, 70753, '\P{Script=_Newa}', "");
+    Expect(1, 70753, '\P{^Script=_Newa}', "");
+    Expect(0, 70754, '\p{Script=_Newa}', "");
+    Expect(1, 70754, '\p{^Script=_Newa}', "");
+    Expect(1, 70754, '\P{Script=_Newa}', "");
+    Expect(0, 70754, '\P{^Script=_Newa}', "");
+    Error('\p{Sc=__newa/a/}');
+    Error('\P{Sc=__newa/a/}');
     Expect(1, 70753, '\p{Sc=:\ANewa\z:}', "");;
     Expect(0, 70754, '\p{Sc=:\ANewa\z:}', "");;
     Expect(1, 70753, '\p{Sc=newa}', "");
@@ -136097,16 +137441,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70754, '\P{^Sc=newa}', "");
     Expect(1, 70753, '\p{Sc=:\Anewa\z:}', "");;
     Expect(0, 70754, '\p{Sc=:\Anewa\z:}', "");;
-    Expect(1, 70753, '\p{Sc=_Newa}', "");
-    Expect(0, 70753, '\p{^Sc=_Newa}', "");
-    Expect(0, 70753, '\P{Sc=_Newa}', "");
-    Expect(1, 70753, '\P{^Sc=_Newa}', "");
-    Expect(0, 70754, '\p{Sc=_Newa}', "");
-    Expect(1, 70754, '\p{^Sc=_Newa}', "");
-    Expect(1, 70754, '\P{Sc=_Newa}', "");
-    Expect(0, 70754, '\P{^Sc=_Newa}', "");
-    Error('\p{Is_Script:	/a/--Newa}');
-    Error('\P{Is_Script:	/a/--Newa}');
+    Expect(1, 70753, '\p{Sc=--NEWA}', "");
+    Expect(0, 70753, '\p{^Sc=--NEWA}', "");
+    Expect(0, 70753, '\P{Sc=--NEWA}', "");
+    Expect(1, 70753, '\P{^Sc=--NEWA}', "");
+    Expect(0, 70754, '\p{Sc=--NEWA}', "");
+    Expect(1, 70754, '\p{^Sc=--NEWA}', "");
+    Expect(1, 70754, '\P{Sc=--NEWA}', "");
+    Expect(0, 70754, '\P{^Sc=--NEWA}', "");
+    Error('\p{Is_Script= /a/Newa}');
+    Error('\P{Is_Script= /a/Newa}');
     Expect(1, 70753, '\p{Is_Script=newa}', "");
     Expect(0, 70753, '\p{^Is_Script=newa}', "");
     Expect(0, 70753, '\P{Is_Script=newa}', "");
@@ -136115,16 +137459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70754, '\p{^Is_Script=newa}', "");
     Expect(1, 70754, '\P{Is_Script=newa}', "");
     Expect(0, 70754, '\P{^Is_Script=newa}', "");
-    Expect(1, 70753, '\p{Is_Script=_	Newa}', "");
-    Expect(0, 70753, '\p{^Is_Script=_	Newa}', "");
-    Expect(0, 70753, '\P{Is_Script=_	Newa}', "");
-    Expect(1, 70753, '\P{^Is_Script=_	Newa}', "");
-    Expect(0, 70754, '\p{Is_Script=_	Newa}', "");
-    Expect(1, 70754, '\p{^Is_Script=_	Newa}', "");
-    Expect(1, 70754, '\P{Is_Script=_	Newa}', "");
-    Expect(0, 70754, '\P{^Is_Script=_	Newa}', "");
-    Error('\p{Is_Sc=-:=NEWA}');
-    Error('\P{Is_Sc=-:=NEWA}');
+    Expect(1, 70753, '\p{Is_Script=	-Newa}', "");
+    Expect(0, 70753, '\p{^Is_Script=	-Newa}', "");
+    Expect(0, 70753, '\P{Is_Script=	-Newa}', "");
+    Expect(1, 70753, '\P{^Is_Script=	-Newa}', "");
+    Expect(0, 70754, '\p{Is_Script=	-Newa}', "");
+    Expect(1, 70754, '\p{^Is_Script=	-Newa}', "");
+    Expect(1, 70754, '\P{Is_Script=	-Newa}', "");
+    Expect(0, 70754, '\P{^Is_Script=	-Newa}', "");
+    Error('\p{Is_Sc=_/a/newa}');
+    Error('\P{Is_Sc=_/a/newa}');
     Expect(1, 70753, '\p{Is_Sc=newa}', "");
     Expect(0, 70753, '\p{^Is_Sc=newa}', "");
     Expect(0, 70753, '\P{Is_Sc=newa}', "");
@@ -136133,16 +137477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70754, '\p{^Is_Sc=newa}', "");
     Expect(1, 70754, '\P{Is_Sc=newa}', "");
     Expect(0, 70754, '\P{^Is_Sc=newa}', "");
-    Expect(1, 70753, '\p{Is_Sc=_	Newa}', "");
-    Expect(0, 70753, '\p{^Is_Sc=_	Newa}', "");
-    Expect(0, 70753, '\P{Is_Sc=_	Newa}', "");
-    Expect(1, 70753, '\P{^Is_Sc=_	Newa}', "");
-    Expect(0, 70754, '\p{Is_Sc=_	Newa}', "");
-    Expect(1, 70754, '\p{^Is_Sc=_	Newa}', "");
-    Expect(1, 70754, '\P{Is_Sc=_	Newa}', "");
-    Expect(0, 70754, '\P{^Is_Sc=_	Newa}', "");
-    Error('\p{Script=_:=Nko}');
-    Error('\P{Script=_:=Nko}');
+    Expect(1, 70753, '\p{Is_Sc=_newa}', "");
+    Expect(0, 70753, '\p{^Is_Sc=_newa}', "");
+    Expect(0, 70753, '\P{Is_Sc=_newa}', "");
+    Expect(1, 70753, '\P{^Is_Sc=_newa}', "");
+    Expect(0, 70754, '\p{Is_Sc=_newa}', "");
+    Expect(1, 70754, '\p{^Is_Sc=_newa}', "");
+    Expect(1, 70754, '\P{Is_Sc=_newa}', "");
+    Expect(0, 70754, '\P{^Is_Sc=_newa}', "");
+    Error('\p{Script=/a/NKO}');
+    Error('\P{Script=/a/NKO}');
     Expect(1, 2047, '\p{Script=:\ANko\z:}', "");;
     Expect(0, 2048, '\p{Script=:\ANko\z:}', "");;
     Expect(1, 2047, '\p{Script=nko}', "");
@@ -136155,8 +137499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2048, '\P{^Script=nko}', "");
     Expect(1, 2047, '\p{Script=:\Anko\z:}', "");;
     Expect(0, 2048, '\p{Script=:\Anko\z:}', "");;
-    Error('\p{Sc=	:=Nkoo}');
-    Error('\P{Sc=	:=Nkoo}');
+    Expect(1, 2047, '\p{Script=	 NKO}', "");
+    Expect(0, 2047, '\p{^Script=	 NKO}', "");
+    Expect(0, 2047, '\P{Script=	 NKO}', "");
+    Expect(1, 2047, '\P{^Script=	 NKO}', "");
+    Expect(0, 2048, '\p{Script=	 NKO}', "");
+    Expect(1, 2048, '\p{^Script=	 NKO}', "");
+    Expect(1, 2048, '\P{Script=	 NKO}', "");
+    Expect(0, 2048, '\P{^Script=	 NKO}', "");
+    Error('\p{Sc=_	nkoo:=}');
+    Error('\P{Sc=_	nkoo:=}');
     Expect(1, 2047, '\p{Sc=:\ANkoo\z:}', "");;
     Expect(0, 2048, '\p{Sc=:\ANkoo\z:}', "");;
     Expect(1, 2047, '\p{Sc=nkoo}', "");
@@ -136169,34 +137521,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2048, '\P{^Sc=nkoo}', "");
     Expect(1, 2047, '\p{Sc=:\Ankoo\z:}', "");;
     Expect(0, 2048, '\p{Sc=:\Ankoo\z:}', "");;
-    Expect(1, 2047, '\p{Sc:_	Nkoo}', "");
-    Expect(0, 2047, '\p{^Sc:_	Nkoo}', "");
-    Expect(0, 2047, '\P{Sc:_	Nkoo}', "");
-    Expect(1, 2047, '\P{^Sc:_	Nkoo}', "");
-    Expect(0, 2048, '\p{Sc:_	Nkoo}', "");
-    Expect(1, 2048, '\p{^Sc:_	Nkoo}', "");
-    Expect(1, 2048, '\P{Sc:_	Nkoo}', "");
-    Expect(0, 2048, '\P{^Sc:_	Nkoo}', "");
-    Error('\p{Is_Script=/a/NKO}');
-    Error('\P{Is_Script=/a/NKO}');
-    Expect(1, 2047, '\p{Is_Script=nko}', "");
-    Expect(0, 2047, '\p{^Is_Script=nko}', "");
-    Expect(0, 2047, '\P{Is_Script=nko}', "");
-    Expect(1, 2047, '\P{^Is_Script=nko}', "");
-    Expect(0, 2048, '\p{Is_Script=nko}', "");
-    Expect(1, 2048, '\p{^Is_Script=nko}', "");
-    Expect(1, 2048, '\P{Is_Script=nko}', "");
-    Expect(0, 2048, '\P{^Is_Script=nko}', "");
-    Expect(1, 2047, '\p{Is_Script=	_NKO}', "");
-    Expect(0, 2047, '\p{^Is_Script=	_NKO}', "");
-    Expect(0, 2047, '\P{Is_Script=	_NKO}', "");
-    Expect(1, 2047, '\P{^Is_Script=	_NKO}', "");
-    Expect(0, 2048, '\p{Is_Script=	_NKO}', "");
-    Expect(1, 2048, '\p{^Is_Script=	_NKO}', "");
-    Expect(1, 2048, '\P{Is_Script=	_NKO}', "");
-    Expect(0, 2048, '\P{^Is_Script=	_NKO}', "");
-    Error('\p{Is_Sc=:=-_Nkoo}');
-    Error('\P{Is_Sc=:=-_Nkoo}');
+    Expect(1, 2047, '\p{Sc= _nkoo}', "");
+    Expect(0, 2047, '\p{^Sc= _nkoo}', "");
+    Expect(0, 2047, '\P{Sc= _nkoo}', "");
+    Expect(1, 2047, '\P{^Sc= _nkoo}', "");
+    Expect(0, 2048, '\p{Sc= _nkoo}', "");
+    Expect(1, 2048, '\p{^Sc= _nkoo}', "");
+    Expect(1, 2048, '\P{Sc= _nkoo}', "");
+    Expect(0, 2048, '\P{^Sc= _nkoo}', "");
+    Error('\p{Is_Script= Nko/a/}');
+    Error('\P{Is_Script= Nko/a/}');
+    Expect(1, 2047, '\p{Is_Script:	nko}', "");
+    Expect(0, 2047, '\p{^Is_Script:	nko}', "");
+    Expect(0, 2047, '\P{Is_Script:	nko}', "");
+    Expect(1, 2047, '\P{^Is_Script:	nko}', "");
+    Expect(0, 2048, '\p{Is_Script:	nko}', "");
+    Expect(1, 2048, '\p{^Is_Script:	nko}', "");
+    Expect(1, 2048, '\P{Is_Script:	nko}', "");
+    Expect(0, 2048, '\P{^Is_Script:	nko}', "");
+    Expect(1, 2047, '\p{Is_Script=_-NKO}', "");
+    Expect(0, 2047, '\p{^Is_Script=_-NKO}', "");
+    Expect(0, 2047, '\P{Is_Script=_-NKO}', "");
+    Expect(1, 2047, '\P{^Is_Script=_-NKO}', "");
+    Expect(0, 2048, '\p{Is_Script=_-NKO}', "");
+    Expect(1, 2048, '\p{^Is_Script=_-NKO}', "");
+    Expect(1, 2048, '\P{Is_Script=_-NKO}', "");
+    Expect(0, 2048, '\P{^Is_Script=_-NKO}', "");
+    Error('\p{Is_Sc=	/a/Nkoo}');
+    Error('\P{Is_Sc=	/a/Nkoo}');
     Expect(1, 2047, '\p{Is_Sc=nkoo}', "");
     Expect(0, 2047, '\p{^Is_Sc=nkoo}', "");
     Expect(0, 2047, '\P{Is_Sc=nkoo}', "");
@@ -136205,16 +137557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2048, '\p{^Is_Sc=nkoo}', "");
     Expect(1, 2048, '\P{Is_Sc=nkoo}', "");
     Expect(0, 2048, '\P{^Is_Sc=nkoo}', "");
-    Expect(1, 2047, '\p{Is_Sc:   	NKOO}', "");
-    Expect(0, 2047, '\p{^Is_Sc:   	NKOO}', "");
-    Expect(0, 2047, '\P{Is_Sc:   	NKOO}', "");
-    Expect(1, 2047, '\P{^Is_Sc:   	NKOO}', "");
-    Expect(0, 2048, '\p{Is_Sc:   	NKOO}', "");
-    Expect(1, 2048, '\p{^Is_Sc:   	NKOO}', "");
-    Expect(1, 2048, '\P{Is_Sc:   	NKOO}', "");
-    Expect(0, 2048, '\P{^Is_Sc:   	NKOO}', "");
-    Error('\p{Script=:=Nushu}');
-    Error('\P{Script=:=Nushu}');
+    Expect(1, 2047, '\p{Is_Sc=-NKOO}', "");
+    Expect(0, 2047, '\p{^Is_Sc=-NKOO}', "");
+    Expect(0, 2047, '\P{Is_Sc=-NKOO}', "");
+    Expect(1, 2047, '\P{^Is_Sc=-NKOO}', "");
+    Expect(0, 2048, '\p{Is_Sc=-NKOO}', "");
+    Expect(1, 2048, '\p{^Is_Sc=-NKOO}', "");
+    Expect(1, 2048, '\P{Is_Sc=-NKOO}', "");
+    Expect(0, 2048, '\P{^Is_Sc=-NKOO}', "");
+    Error('\p{Script=- NUSHU:=}');
+    Error('\P{Script=- NUSHU:=}');
     Expect(1, 111355, '\p{Script=:\ANushu\z:}', "");;
     Expect(0, 111356, '\p{Script=:\ANushu\z:}', "");;
     Expect(1, 111355, '\p{Script=nushu}', "");
@@ -136227,16 +137579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 111356, '\P{^Script=nushu}', "");
     Expect(1, 111355, '\p{Script=:\Anushu\z:}', "");;
     Expect(0, 111356, '\p{Script=:\Anushu\z:}', "");;
-    Expect(1, 111355, '\p{Script=		NUSHU}', "");
-    Expect(0, 111355, '\p{^Script=		NUSHU}', "");
-    Expect(0, 111355, '\P{Script=		NUSHU}', "");
-    Expect(1, 111355, '\P{^Script=		NUSHU}', "");
-    Expect(0, 111356, '\p{Script=		NUSHU}', "");
-    Expect(1, 111356, '\p{^Script=		NUSHU}', "");
-    Expect(1, 111356, '\P{Script=		NUSHU}', "");
-    Expect(0, 111356, '\P{^Script=		NUSHU}', "");
-    Error('\p{Sc=:=nshu}');
-    Error('\P{Sc=:=nshu}');
+    Expect(1, 111355, '\p{Script=-	nushu}', "");
+    Expect(0, 111355, '\p{^Script=-	nushu}', "");
+    Expect(0, 111355, '\P{Script=-	nushu}', "");
+    Expect(1, 111355, '\P{^Script=-	nushu}', "");
+    Expect(0, 111356, '\p{Script=-	nushu}', "");
+    Expect(1, 111356, '\p{^Script=-	nushu}', "");
+    Expect(1, 111356, '\P{Script=-	nushu}', "");
+    Expect(0, 111356, '\P{^Script=-	nushu}', "");
+    Error('\p{Sc=- NSHU:=}');
+    Error('\P{Sc=- NSHU:=}');
     Expect(1, 111355, '\p{Sc=:\ANshu\z:}', "");;
     Expect(0, 111356, '\p{Sc=:\ANshu\z:}', "");;
     Expect(1, 111355, '\p{Sc=nshu}', "");
@@ -136249,16 +137601,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 111356, '\P{^Sc=nshu}', "");
     Expect(1, 111355, '\p{Sc=:\Anshu\z:}', "");;
     Expect(0, 111356, '\p{Sc=:\Anshu\z:}', "");;
-    Expect(1, 111355, '\p{Sc=-NSHU}', "");
-    Expect(0, 111355, '\p{^Sc=-NSHU}', "");
-    Expect(0, 111355, '\P{Sc=-NSHU}', "");
-    Expect(1, 111355, '\P{^Sc=-NSHU}', "");
-    Expect(0, 111356, '\p{Sc=-NSHU}', "");
-    Expect(1, 111356, '\p{^Sc=-NSHU}', "");
-    Expect(1, 111356, '\P{Sc=-NSHU}', "");
-    Expect(0, 111356, '\P{^Sc=-NSHU}', "");
-    Error('\p{Is_Script= /a/Nushu}');
-    Error('\P{Is_Script= /a/Nushu}');
+    Expect(1, 111355, '\p{Sc=	Nshu}', "");
+    Expect(0, 111355, '\p{^Sc=	Nshu}', "");
+    Expect(0, 111355, '\P{Sc=	Nshu}', "");
+    Expect(1, 111355, '\P{^Sc=	Nshu}', "");
+    Expect(0, 111356, '\p{Sc=	Nshu}', "");
+    Expect(1, 111356, '\p{^Sc=	Nshu}', "");
+    Expect(1, 111356, '\P{Sc=	Nshu}', "");
+    Expect(0, 111356, '\P{^Sc=	Nshu}', "");
+    Error('\p{Is_Script=-:=NUSHU}');
+    Error('\P{Is_Script=-:=NUSHU}');
     Expect(1, 111355, '\p{Is_Script=nushu}', "");
     Expect(0, 111355, '\p{^Is_Script=nushu}', "");
     Expect(0, 111355, '\P{Is_Script=nushu}', "");
@@ -136267,34 +137619,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 111356, '\p{^Is_Script=nushu}', "");
     Expect(1, 111356, '\P{Is_Script=nushu}', "");
     Expect(0, 111356, '\P{^Is_Script=nushu}', "");
-    Expect(1, 111355, '\p{Is_Script=_-Nushu}', "");
-    Expect(0, 111355, '\p{^Is_Script=_-Nushu}', "");
-    Expect(0, 111355, '\P{Is_Script=_-Nushu}', "");
-    Expect(1, 111355, '\P{^Is_Script=_-Nushu}', "");
-    Expect(0, 111356, '\p{Is_Script=_-Nushu}', "");
-    Expect(1, 111356, '\p{^Is_Script=_-Nushu}', "");
-    Expect(1, 111356, '\P{Is_Script=_-Nushu}', "");
-    Expect(0, 111356, '\P{^Is_Script=_-Nushu}', "");
-    Error('\p{Is_Sc=-_nshu/a/}');
-    Error('\P{Is_Sc=-_nshu/a/}');
-    Expect(1, 111355, '\p{Is_Sc=nshu}', "");
-    Expect(0, 111355, '\p{^Is_Sc=nshu}', "");
-    Expect(0, 111355, '\P{Is_Sc=nshu}', "");
-    Expect(1, 111355, '\P{^Is_Sc=nshu}', "");
-    Expect(0, 111356, '\p{Is_Sc=nshu}', "");
-    Expect(1, 111356, '\p{^Is_Sc=nshu}', "");
-    Expect(1, 111356, '\P{Is_Sc=nshu}', "");
-    Expect(0, 111356, '\P{^Is_Sc=nshu}', "");
-    Expect(1, 111355, '\p{Is_Sc=-	NSHU}', "");
-    Expect(0, 111355, '\p{^Is_Sc=-	NSHU}', "");
-    Expect(0, 111355, '\P{Is_Sc=-	NSHU}', "");
-    Expect(1, 111355, '\P{^Is_Sc=-	NSHU}', "");
-    Expect(0, 111356, '\p{Is_Sc=-	NSHU}', "");
-    Expect(1, 111356, '\p{^Is_Sc=-	NSHU}', "");
-    Expect(1, 111356, '\P{Is_Sc=-	NSHU}', "");
-    Expect(0, 111356, '\P{^Is_Sc=-	NSHU}', "");
-    Error('\p{Script:/a/	-Ogham}');
-    Error('\P{Script:/a/	-Ogham}');
+    Expect(1, 111355, '\p{Is_Script= nushu}', "");
+    Expect(0, 111355, '\p{^Is_Script= nushu}', "");
+    Expect(0, 111355, '\P{Is_Script= nushu}', "");
+    Expect(1, 111355, '\P{^Is_Script= nushu}', "");
+    Expect(0, 111356, '\p{Is_Script= nushu}', "");
+    Expect(1, 111356, '\p{^Is_Script= nushu}', "");
+    Expect(1, 111356, '\P{Is_Script= nushu}', "");
+    Expect(0, 111356, '\P{^Is_Script= nushu}', "");
+    Error('\p{Is_Sc:   -nshu:=}');
+    Error('\P{Is_Sc:   -nshu:=}');
+    Expect(1, 111355, '\p{Is_Sc:   nshu}', "");
+    Expect(0, 111355, '\p{^Is_Sc:   nshu}', "");
+    Expect(0, 111355, '\P{Is_Sc:   nshu}', "");
+    Expect(1, 111355, '\P{^Is_Sc:   nshu}', "");
+    Expect(0, 111356, '\p{Is_Sc:   nshu}', "");
+    Expect(1, 111356, '\p{^Is_Sc:   nshu}', "");
+    Expect(1, 111356, '\P{Is_Sc:   nshu}', "");
+    Expect(0, 111356, '\P{^Is_Sc:   nshu}', "");
+    Expect(1, 111355, '\p{Is_Sc=	-Nshu}', "");
+    Expect(0, 111355, '\p{^Is_Sc=	-Nshu}', "");
+    Expect(0, 111355, '\P{Is_Sc=	-Nshu}', "");
+    Expect(1, 111355, '\P{^Is_Sc=	-Nshu}', "");
+    Expect(0, 111356, '\p{Is_Sc=	-Nshu}', "");
+    Expect(1, 111356, '\p{^Is_Sc=	-Nshu}', "");
+    Expect(1, 111356, '\P{Is_Sc=	-Nshu}', "");
+    Expect(0, 111356, '\P{^Is_Sc=	-Nshu}', "");
+    Error('\p{Script=	-ogham:=}');
+    Error('\P{Script=	-ogham:=}');
     Expect(1, 5788, '\p{Script=:\AOgham\z:}', "");;
     Expect(0, 5789, '\p{Script=:\AOgham\z:}', "");;
     Expect(1, 5788, '\p{Script=ogham}', "");
@@ -136307,16 +137659,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5789, '\P{^Script=ogham}', "");
     Expect(1, 5788, '\p{Script=:\Aogham\z:}', "");;
     Expect(0, 5789, '\p{Script=:\Aogham\z:}', "");;
-    Expect(1, 5788, '\p{Script=		Ogham}', "");
-    Expect(0, 5788, '\p{^Script=		Ogham}', "");
-    Expect(0, 5788, '\P{Script=		Ogham}', "");
-    Expect(1, 5788, '\P{^Script=		Ogham}', "");
-    Expect(0, 5789, '\p{Script=		Ogham}', "");
-    Expect(1, 5789, '\p{^Script=		Ogham}', "");
-    Expect(1, 5789, '\P{Script=		Ogham}', "");
-    Expect(0, 5789, '\P{^Script=		Ogham}', "");
-    Error('\p{Sc=/a/Ogam}');
-    Error('\P{Sc=/a/Ogam}');
+    Error('\p{Sc=-:=Ogam}');
+    Error('\P{Sc=-:=Ogam}');
     Expect(1, 5788, '\p{Sc=:\AOgam\z:}', "");;
     Expect(0, 5789, '\p{Sc=:\AOgam\z:}', "");;
     Expect(1, 5788, '\p{Sc=ogam}', "");
@@ -136329,16 +137673,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5789, '\P{^Sc=ogam}', "");
     Expect(1, 5788, '\p{Sc=:\Aogam\z:}', "");;
     Expect(0, 5789, '\p{Sc=:\Aogam\z:}', "");;
-    Expect(1, 5788, '\p{Sc=-_Ogam}', "");
-    Expect(0, 5788, '\p{^Sc=-_Ogam}', "");
-    Expect(0, 5788, '\P{Sc=-_Ogam}', "");
-    Expect(1, 5788, '\P{^Sc=-_Ogam}', "");
-    Expect(0, 5789, '\p{Sc=-_Ogam}', "");
-    Expect(1, 5789, '\p{^Sc=-_Ogam}', "");
-    Expect(1, 5789, '\P{Sc=-_Ogam}', "");
-    Expect(0, 5789, '\P{^Sc=-_Ogam}', "");
-    Error('\p{Is_Script=	:=Ogham}');
-    Error('\P{Is_Script=	:=Ogham}');
+    Expect(1, 5788, '\p{Sc=- ogam}', "");
+    Expect(0, 5788, '\p{^Sc=- ogam}', "");
+    Expect(0, 5788, '\P{Sc=- ogam}', "");
+    Expect(1, 5788, '\P{^Sc=- ogam}', "");
+    Expect(0, 5789, '\p{Sc=- ogam}', "");
+    Expect(1, 5789, '\p{^Sc=- ogam}', "");
+    Expect(1, 5789, '\P{Sc=- ogam}', "");
+    Expect(0, 5789, '\P{^Sc=- ogam}', "");
+    Error('\p{Is_Script=/a/-_ogham}');
+    Error('\P{Is_Script=/a/-_ogham}');
     Expect(1, 5788, '\p{Is_Script=ogham}', "");
     Expect(0, 5788, '\p{^Is_Script=ogham}', "");
     Expect(0, 5788, '\P{Is_Script=ogham}', "");
@@ -136347,56 +137691,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5789, '\p{^Is_Script=ogham}', "");
     Expect(1, 5789, '\P{Is_Script=ogham}', "");
     Expect(0, 5789, '\P{^Is_Script=ogham}', "");
-    Expect(1, 5788, '\p{Is_Script:   _ogham}', "");
-    Expect(0, 5788, '\p{^Is_Script:   _ogham}', "");
-    Expect(0, 5788, '\P{Is_Script:   _ogham}', "");
-    Expect(1, 5788, '\P{^Is_Script:   _ogham}', "");
-    Expect(0, 5789, '\p{Is_Script:   _ogham}', "");
-    Expect(1, 5789, '\p{^Is_Script:   _ogham}', "");
-    Expect(1, 5789, '\P{Is_Script:   _ogham}', "");
-    Expect(0, 5789, '\P{^Is_Script:   _ogham}', "");
-    Error('\p{Is_Sc=__OGAM:=}');
-    Error('\P{Is_Sc=__OGAM:=}');
-    Expect(1, 5788, '\p{Is_Sc:ogam}', "");
-    Expect(0, 5788, '\p{^Is_Sc:ogam}', "");
-    Expect(0, 5788, '\P{Is_Sc:ogam}', "");
-    Expect(1, 5788, '\P{^Is_Sc:ogam}', "");
-    Expect(0, 5789, '\p{Is_Sc:ogam}', "");
-    Expect(1, 5789, '\p{^Is_Sc:ogam}', "");
-    Expect(1, 5789, '\P{Is_Sc:ogam}', "");
-    Expect(0, 5789, '\P{^Is_Sc:ogam}', "");
-    Expect(1, 5788, '\p{Is_Sc=-	Ogam}', "");
-    Expect(0, 5788, '\p{^Is_Sc=-	Ogam}', "");
-    Expect(0, 5788, '\P{Is_Sc=-	Ogam}', "");
-    Expect(1, 5788, '\P{^Is_Sc=-	Ogam}', "");
-    Expect(0, 5789, '\p{Is_Sc=-	Ogam}', "");
-    Expect(1, 5789, '\p{^Is_Sc=-	Ogam}', "");
-    Expect(1, 5789, '\P{Is_Sc=-	Ogam}', "");
-    Expect(0, 5789, '\P{^Is_Sc=-	Ogam}', "");
-    Error('\p{Script=- ol_Chiki:=}');
-    Error('\P{Script=- ol_Chiki:=}');
+    Expect(1, 5788, '\p{Is_Script=  OGHAM}', "");
+    Expect(0, 5788, '\p{^Is_Script=  OGHAM}', "");
+    Expect(0, 5788, '\P{Is_Script=  OGHAM}', "");
+    Expect(1, 5788, '\P{^Is_Script=  OGHAM}', "");
+    Expect(0, 5789, '\p{Is_Script=  OGHAM}', "");
+    Expect(1, 5789, '\p{^Is_Script=  OGHAM}', "");
+    Expect(1, 5789, '\P{Is_Script=  OGHAM}', "");
+    Expect(0, 5789, '\P{^Is_Script=  OGHAM}', "");
+    Error('\p{Is_Sc=_ Ogam/a/}');
+    Error('\P{Is_Sc=_ Ogam/a/}');
+    Expect(1, 5788, '\p{Is_Sc=ogam}', "");
+    Expect(0, 5788, '\p{^Is_Sc=ogam}', "");
+    Expect(0, 5788, '\P{Is_Sc=ogam}', "");
+    Expect(1, 5788, '\P{^Is_Sc=ogam}', "");
+    Expect(0, 5789, '\p{Is_Sc=ogam}', "");
+    Expect(1, 5789, '\p{^Is_Sc=ogam}', "");
+    Expect(1, 5789, '\P{Is_Sc=ogam}', "");
+    Expect(0, 5789, '\P{^Is_Sc=ogam}', "");
+    Expect(1, 5788, '\p{Is_Sc:-Ogam}', "");
+    Expect(0, 5788, '\p{^Is_Sc:-Ogam}', "");
+    Expect(0, 5788, '\P{Is_Sc:-Ogam}', "");
+    Expect(1, 5788, '\P{^Is_Sc:-Ogam}', "");
+    Expect(0, 5789, '\p{Is_Sc:-Ogam}', "");
+    Expect(1, 5789, '\p{^Is_Sc:-Ogam}', "");
+    Expect(1, 5789, '\P{Is_Sc:-Ogam}', "");
+    Expect(0, 5789, '\P{^Is_Sc:-Ogam}', "");
+    Error('\p{Script=/a/ Ol_Chiki}');
+    Error('\P{Script=/a/ Ol_Chiki}');
     Expect(1, 7295, '\p{Script=:\AOl_Chiki\z:}', "");;
     Expect(0, 7296, '\p{Script=:\AOl_Chiki\z:}', "");;
-    Expect(1, 7295, '\p{Script: olchiki}', "");
-    Expect(0, 7295, '\p{^Script: olchiki}', "");
-    Expect(0, 7295, '\P{Script: olchiki}', "");
-    Expect(1, 7295, '\P{^Script: olchiki}', "");
-    Expect(0, 7296, '\p{Script: olchiki}', "");
-    Expect(1, 7296, '\p{^Script: olchiki}', "");
-    Expect(1, 7296, '\P{Script: olchiki}', "");
-    Expect(0, 7296, '\P{^Script: olchiki}', "");
+    Expect(1, 7295, '\p{Script=olchiki}', "");
+    Expect(0, 7295, '\p{^Script=olchiki}', "");
+    Expect(0, 7295, '\P{Script=olchiki}', "");
+    Expect(1, 7295, '\P{^Script=olchiki}', "");
+    Expect(0, 7296, '\p{Script=olchiki}', "");
+    Expect(1, 7296, '\p{^Script=olchiki}', "");
+    Expect(1, 7296, '\P{Script=olchiki}', "");
+    Expect(0, 7296, '\P{^Script=olchiki}', "");
     Expect(1, 7295, '\p{Script=:\Aolchiki\z:}', "");;
     Expect(0, 7296, '\p{Script=:\Aolchiki\z:}', "");;
-    Expect(1, 7295, '\p{Script=-	ol_Chiki}', "");
-    Expect(0, 7295, '\p{^Script=-	ol_Chiki}', "");
-    Expect(0, 7295, '\P{Script=-	ol_Chiki}', "");
-    Expect(1, 7295, '\P{^Script=-	ol_Chiki}', "");
-    Expect(0, 7296, '\p{Script=-	ol_Chiki}', "");
-    Expect(1, 7296, '\p{^Script=-	ol_Chiki}', "");
-    Expect(1, 7296, '\P{Script=-	ol_Chiki}', "");
-    Expect(0, 7296, '\P{^Script=-	ol_Chiki}', "");
-    Error('\p{Sc=:= _olck}');
-    Error('\P{Sc=:= _olck}');
+    Expect(1, 7295, '\p{Script= -ol_Chiki}', "");
+    Expect(0, 7295, '\p{^Script= -ol_Chiki}', "");
+    Expect(0, 7295, '\P{Script= -ol_Chiki}', "");
+    Expect(1, 7295, '\P{^Script= -ol_Chiki}', "");
+    Expect(0, 7296, '\p{Script= -ol_Chiki}', "");
+    Expect(1, 7296, '\p{^Script= -ol_Chiki}', "");
+    Expect(1, 7296, '\P{Script= -ol_Chiki}', "");
+    Expect(0, 7296, '\P{^Script= -ol_Chiki}', "");
+    Error('\p{Sc=/a/_-Olck}');
+    Error('\P{Sc=/a/_-Olck}');
     Expect(1, 7295, '\p{Sc=:\AOlck\z:}', "");;
     Expect(0, 7296, '\p{Sc=:\AOlck\z:}', "");;
     Expect(1, 7295, '\p{Sc:	olck}', "");
@@ -136409,16 +137753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7296, '\P{^Sc:	olck}', "");
     Expect(1, 7295, '\p{Sc=:\Aolck\z:}', "");;
     Expect(0, 7296, '\p{Sc=:\Aolck\z:}', "");;
-    Expect(1, 7295, '\p{Sc=	-olck}', "");
-    Expect(0, 7295, '\p{^Sc=	-olck}', "");
-    Expect(0, 7295, '\P{Sc=	-olck}', "");
-    Expect(1, 7295, '\P{^Sc=	-olck}', "");
-    Expect(0, 7296, '\p{Sc=	-olck}', "");
-    Expect(1, 7296, '\p{^Sc=	-olck}', "");
-    Expect(1, 7296, '\P{Sc=	-olck}', "");
-    Expect(0, 7296, '\P{^Sc=	-olck}', "");
-    Error('\p{Is_Script=/a/_ Ol_chiki}');
-    Error('\P{Is_Script=/a/_ Ol_chiki}');
+    Expect(1, 7295, '\p{Sc=-olck}', "");
+    Expect(0, 7295, '\p{^Sc=-olck}', "");
+    Expect(0, 7295, '\P{Sc=-olck}', "");
+    Expect(1, 7295, '\P{^Sc=-olck}', "");
+    Expect(0, 7296, '\p{Sc=-olck}', "");
+    Expect(1, 7296, '\p{^Sc=-olck}', "");
+    Expect(1, 7296, '\P{Sc=-olck}', "");
+    Expect(0, 7296, '\P{^Sc=-olck}', "");
+    Error('\p{Is_Script=:=Ol_Chiki}');
+    Error('\P{Is_Script=:=Ol_Chiki}');
     Expect(1, 7295, '\p{Is_Script=olchiki}', "");
     Expect(0, 7295, '\p{^Is_Script=olchiki}', "");
     Expect(0, 7295, '\P{Is_Script=olchiki}', "");
@@ -136427,34 +137771,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7296, '\p{^Is_Script=olchiki}', "");
     Expect(1, 7296, '\P{Is_Script=olchiki}', "");
     Expect(0, 7296, '\P{^Is_Script=olchiki}', "");
-    Expect(1, 7295, '\p{Is_Script=  OL_Chiki}', "");
-    Expect(0, 7295, '\p{^Is_Script=  OL_Chiki}', "");
-    Expect(0, 7295, '\P{Is_Script=  OL_Chiki}', "");
-    Expect(1, 7295, '\P{^Is_Script=  OL_Chiki}', "");
-    Expect(0, 7296, '\p{Is_Script=  OL_Chiki}', "");
-    Expect(1, 7296, '\p{^Is_Script=  OL_Chiki}', "");
-    Expect(1, 7296, '\P{Is_Script=  OL_Chiki}', "");
-    Expect(0, 7296, '\P{^Is_Script=  OL_Chiki}', "");
-    Error('\p{Is_Sc=	Olck:=}');
-    Error('\P{Is_Sc=	Olck:=}');
-    Expect(1, 7295, '\p{Is_Sc:	olck}', "");
-    Expect(0, 7295, '\p{^Is_Sc:	olck}', "");
-    Expect(0, 7295, '\P{Is_Sc:	olck}', "");
-    Expect(1, 7295, '\P{^Is_Sc:	olck}', "");
-    Expect(0, 7296, '\p{Is_Sc:	olck}', "");
-    Expect(1, 7296, '\p{^Is_Sc:	olck}', "");
-    Expect(1, 7296, '\P{Is_Sc:	olck}', "");
-    Expect(0, 7296, '\P{^Is_Sc:	olck}', "");
-    Expect(1, 7295, '\p{Is_Sc=-olck}', "");
-    Expect(0, 7295, '\p{^Is_Sc=-olck}', "");
-    Expect(0, 7295, '\P{Is_Sc=-olck}', "");
-    Expect(1, 7295, '\P{^Is_Sc=-olck}', "");
-    Expect(0, 7296, '\p{Is_Sc=-olck}', "");
-    Expect(1, 7296, '\p{^Is_Sc=-olck}', "");
-    Expect(1, 7296, '\P{Is_Sc=-olck}', "");
-    Expect(0, 7296, '\P{^Is_Sc=-olck}', "");
-    Error('\p{Script=:=		old_TURKIC}');
-    Error('\P{Script=:=		old_TURKIC}');
+    Expect(1, 7295, '\p{Is_Script=	-OL_Chiki}', "");
+    Expect(0, 7295, '\p{^Is_Script=	-OL_Chiki}', "");
+    Expect(0, 7295, '\P{Is_Script=	-OL_Chiki}', "");
+    Expect(1, 7295, '\P{^Is_Script=	-OL_Chiki}', "");
+    Expect(0, 7296, '\p{Is_Script=	-OL_Chiki}', "");
+    Expect(1, 7296, '\p{^Is_Script=	-OL_Chiki}', "");
+    Expect(1, 7296, '\P{Is_Script=	-OL_Chiki}', "");
+    Expect(0, 7296, '\P{^Is_Script=	-OL_Chiki}', "");
+    Error('\p{Is_Sc=:= 	olck}');
+    Error('\P{Is_Sc=:= 	olck}');
+    Expect(1, 7295, '\p{Is_Sc=olck}', "");
+    Expect(0, 7295, '\p{^Is_Sc=olck}', "");
+    Expect(0, 7295, '\P{Is_Sc=olck}', "");
+    Expect(1, 7295, '\P{^Is_Sc=olck}', "");
+    Expect(0, 7296, '\p{Is_Sc=olck}', "");
+    Expect(1, 7296, '\p{^Is_Sc=olck}', "");
+    Expect(1, 7296, '\P{Is_Sc=olck}', "");
+    Expect(0, 7296, '\P{^Is_Sc=olck}', "");
+    Expect(1, 7295, '\p{Is_Sc=_-Olck}', "");
+    Expect(0, 7295, '\p{^Is_Sc=_-Olck}', "");
+    Expect(0, 7295, '\P{Is_Sc=_-Olck}', "");
+    Expect(1, 7295, '\P{^Is_Sc=_-Olck}', "");
+    Expect(0, 7296, '\p{Is_Sc=_-Olck}', "");
+    Expect(1, 7296, '\p{^Is_Sc=_-Olck}', "");
+    Expect(1, 7296, '\P{Is_Sc=_-Olck}', "");
+    Expect(0, 7296, '\P{^Is_Sc=_-Olck}', "");
+    Error('\p{Script=-_old_TURKIC:=}');
+    Error('\P{Script=-_old_TURKIC:=}');
     Expect(1, 68680, '\p{Script=:\AOld_Turkic\z:}', "");;
     Expect(0, 68681, '\p{Script=:\AOld_Turkic\z:}', "");;
     Expect(1, 68680, '\p{Script=oldturkic}', "");
@@ -136467,16 +137811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68681, '\P{^Script=oldturkic}', "");
     Expect(1, 68680, '\p{Script=:\Aoldturkic\z:}', "");;
     Expect(0, 68681, '\p{Script=:\Aoldturkic\z:}', "");;
-    Expect(1, 68680, '\p{Script=--OLD_Turkic}', "");
-    Expect(0, 68680, '\p{^Script=--OLD_Turkic}', "");
-    Expect(0, 68680, '\P{Script=--OLD_Turkic}', "");
-    Expect(1, 68680, '\P{^Script=--OLD_Turkic}', "");
-    Expect(0, 68681, '\p{Script=--OLD_Turkic}', "");
-    Expect(1, 68681, '\p{^Script=--OLD_Turkic}', "");
-    Expect(1, 68681, '\P{Script=--OLD_Turkic}', "");
-    Expect(0, 68681, '\P{^Script=--OLD_Turkic}', "");
-    Error('\p{Sc=	-Orkh/a/}');
-    Error('\P{Sc=	-Orkh/a/}');
+    Expect(1, 68680, '\p{Script:   -_old_Turkic}', "");
+    Expect(0, 68680, '\p{^Script:   -_old_Turkic}', "");
+    Expect(0, 68680, '\P{Script:   -_old_Turkic}', "");
+    Expect(1, 68680, '\P{^Script:   -_old_Turkic}', "");
+    Expect(0, 68681, '\p{Script:   -_old_Turkic}', "");
+    Expect(1, 68681, '\p{^Script:   -_old_Turkic}', "");
+    Expect(1, 68681, '\P{Script:   -_old_Turkic}', "");
+    Expect(0, 68681, '\P{^Script:   -_old_Turkic}', "");
+    Error('\p{Sc=_ orkh:=}');
+    Error('\P{Sc=_ orkh:=}');
     Expect(1, 68680, '\p{Sc=:\AOrkh\z:}', "");;
     Expect(0, 68681, '\p{Sc=:\AOrkh\z:}', "");;
     Expect(1, 68680, '\p{Sc=orkh}', "");
@@ -136489,16 +137833,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68681, '\P{^Sc=orkh}', "");
     Expect(1, 68680, '\p{Sc=:\Aorkh\z:}', "");;
     Expect(0, 68681, '\p{Sc=:\Aorkh\z:}', "");;
-    Expect(1, 68680, '\p{Sc: _Orkh}', "");
-    Expect(0, 68680, '\p{^Sc: _Orkh}', "");
-    Expect(0, 68680, '\P{Sc: _Orkh}', "");
-    Expect(1, 68680, '\P{^Sc: _Orkh}', "");
-    Expect(0, 68681, '\p{Sc: _Orkh}', "");
-    Expect(1, 68681, '\p{^Sc: _Orkh}', "");
-    Expect(1, 68681, '\P{Sc: _Orkh}', "");
-    Expect(0, 68681, '\P{^Sc: _Orkh}', "");
-    Error('\p{Is_Script=/a/-_old_Turkic}');
-    Error('\P{Is_Script=/a/-_old_Turkic}');
+    Expect(1, 68680, '\p{Sc=	Orkh}', "");
+    Expect(0, 68680, '\p{^Sc=	Orkh}', "");
+    Expect(0, 68680, '\P{Sc=	Orkh}', "");
+    Expect(1, 68680, '\P{^Sc=	Orkh}', "");
+    Expect(0, 68681, '\p{Sc=	Orkh}', "");
+    Expect(1, 68681, '\p{^Sc=	Orkh}', "");
+    Expect(1, 68681, '\P{Sc=	Orkh}', "");
+    Expect(0, 68681, '\P{^Sc=	Orkh}', "");
+    Error('\p{Is_Script=-Old_Turkic/a/}');
+    Error('\P{Is_Script=-Old_Turkic/a/}');
     Expect(1, 68680, '\p{Is_Script=oldturkic}', "");
     Expect(0, 68680, '\p{^Is_Script=oldturkic}', "");
     Expect(0, 68680, '\P{Is_Script=oldturkic}', "");
@@ -136507,34 +137851,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68681, '\p{^Is_Script=oldturkic}', "");
     Expect(1, 68681, '\P{Is_Script=oldturkic}', "");
     Expect(0, 68681, '\P{^Is_Script=oldturkic}', "");
-    Expect(1, 68680, '\p{Is_Script:   -	Old_Turkic}', "");
-    Expect(0, 68680, '\p{^Is_Script:   -	Old_Turkic}', "");
-    Expect(0, 68680, '\P{Is_Script:   -	Old_Turkic}', "");
-    Expect(1, 68680, '\P{^Is_Script:   -	Old_Turkic}', "");
-    Expect(0, 68681, '\p{Is_Script:   -	Old_Turkic}', "");
-    Expect(1, 68681, '\p{^Is_Script:   -	Old_Turkic}', "");
-    Expect(1, 68681, '\P{Is_Script:   -	Old_Turkic}', "");
-    Expect(0, 68681, '\P{^Is_Script:   -	Old_Turkic}', "");
-    Error('\p{Is_Sc=/a/-	ORKH}');
-    Error('\P{Is_Sc=/a/-	ORKH}');
-    Expect(1, 68680, '\p{Is_Sc:orkh}', "");
-    Expect(0, 68680, '\p{^Is_Sc:orkh}', "");
-    Expect(0, 68680, '\P{Is_Sc:orkh}', "");
-    Expect(1, 68680, '\P{^Is_Sc:orkh}', "");
-    Expect(0, 68681, '\p{Is_Sc:orkh}', "");
-    Expect(1, 68681, '\p{^Is_Sc:orkh}', "");
-    Expect(1, 68681, '\P{Is_Sc:orkh}', "");
-    Expect(0, 68681, '\P{^Is_Sc:orkh}', "");
-    Expect(1, 68680, '\p{Is_Sc=	_orkh}', "");
-    Expect(0, 68680, '\p{^Is_Sc=	_orkh}', "");
-    Expect(0, 68680, '\P{Is_Sc=	_orkh}', "");
-    Expect(1, 68680, '\P{^Is_Sc=	_orkh}', "");
-    Expect(0, 68681, '\p{Is_Sc=	_orkh}', "");
-    Expect(1, 68681, '\p{^Is_Sc=	_orkh}', "");
-    Expect(1, 68681, '\P{Is_Sc=	_orkh}', "");
-    Expect(0, 68681, '\P{^Is_Sc=	_orkh}', "");
-    Error('\p{Script=_-Oriya/a/}');
-    Error('\P{Script=_-Oriya/a/}');
+    Expect(1, 68680, '\p{Is_Script=_ Old_TURKIC}', "");
+    Expect(0, 68680, '\p{^Is_Script=_ Old_TURKIC}', "");
+    Expect(0, 68680, '\P{Is_Script=_ Old_TURKIC}', "");
+    Expect(1, 68680, '\P{^Is_Script=_ Old_TURKIC}', "");
+    Expect(0, 68681, '\p{Is_Script=_ Old_TURKIC}', "");
+    Expect(1, 68681, '\p{^Is_Script=_ Old_TURKIC}', "");
+    Expect(1, 68681, '\P{Is_Script=_ Old_TURKIC}', "");
+    Expect(0, 68681, '\P{^Is_Script=_ Old_TURKIC}', "");
+    Error('\p{Is_Sc=/a/-orkh}');
+    Error('\P{Is_Sc=/a/-orkh}');
+    Expect(1, 68680, '\p{Is_Sc=orkh}', "");
+    Expect(0, 68680, '\p{^Is_Sc=orkh}', "");
+    Expect(0, 68680, '\P{Is_Sc=orkh}', "");
+    Expect(1, 68680, '\P{^Is_Sc=orkh}', "");
+    Expect(0, 68681, '\p{Is_Sc=orkh}', "");
+    Expect(1, 68681, '\p{^Is_Sc=orkh}', "");
+    Expect(1, 68681, '\P{Is_Sc=orkh}', "");
+    Expect(0, 68681, '\P{^Is_Sc=orkh}', "");
+    Expect(1, 68680, '\p{Is_Sc:   _ Orkh}', "");
+    Expect(0, 68680, '\p{^Is_Sc:   _ Orkh}', "");
+    Expect(0, 68680, '\P{Is_Sc:   _ Orkh}', "");
+    Expect(1, 68680, '\P{^Is_Sc:   _ Orkh}', "");
+    Expect(0, 68681, '\p{Is_Sc:   _ Orkh}', "");
+    Expect(1, 68681, '\p{^Is_Sc:   _ Orkh}', "");
+    Expect(1, 68681, '\P{Is_Sc:   _ Orkh}', "");
+    Expect(0, 68681, '\P{^Is_Sc:   _ Orkh}', "");
+    Error('\p{Script=:=--Oriya}');
+    Error('\P{Script=:=--Oriya}');
     Expect(1, 2935, '\p{Script=:\AOriya\z:}', "");;
     Expect(0, 2936, '\p{Script=:\AOriya\z:}', "");;
     Expect(1, 2935, '\p{Script=oriya}', "");
@@ -136547,16 +137891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2936, '\P{^Script=oriya}', "");
     Expect(1, 2935, '\p{Script=:\Aoriya\z:}', "");;
     Expect(0, 2936, '\p{Script=:\Aoriya\z:}', "");;
-    Expect(1, 2935, '\p{Script=-	ORIYA}', "");
-    Expect(0, 2935, '\p{^Script=-	ORIYA}', "");
-    Expect(0, 2935, '\P{Script=-	ORIYA}', "");
-    Expect(1, 2935, '\P{^Script=-	ORIYA}', "");
-    Expect(0, 2936, '\p{Script=-	ORIYA}', "");
-    Expect(1, 2936, '\p{^Script=-	ORIYA}', "");
-    Expect(1, 2936, '\P{Script=-	ORIYA}', "");
-    Expect(0, 2936, '\P{^Script=-	ORIYA}', "");
-    Error('\p{Sc= _ORYA/a/}');
-    Error('\P{Sc= _ORYA/a/}');
+    Expect(1, 2935, '\p{Script=	Oriya}', "");
+    Expect(0, 2935, '\p{^Script=	Oriya}', "");
+    Expect(0, 2935, '\P{Script=	Oriya}', "");
+    Expect(1, 2935, '\P{^Script=	Oriya}', "");
+    Expect(0, 2936, '\p{Script=	Oriya}', "");
+    Expect(1, 2936, '\p{^Script=	Oriya}', "");
+    Expect(1, 2936, '\P{Script=	Oriya}', "");
+    Expect(0, 2936, '\P{^Script=	Oriya}', "");
+    Error('\p{Sc=-:=orya}');
+    Error('\P{Sc=-:=orya}');
     Expect(1, 2935, '\p{Sc=:\AOrya\z:}', "");;
     Expect(0, 2936, '\p{Sc=:\AOrya\z:}', "");;
     Expect(1, 2935, '\p{Sc=orya}', "");
@@ -136569,16 +137913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2936, '\P{^Sc=orya}', "");
     Expect(1, 2935, '\p{Sc=:\Aorya\z:}', "");;
     Expect(0, 2936, '\p{Sc=:\Aorya\z:}', "");;
-    Expect(1, 2935, '\p{Sc=	 orya}', "");
-    Expect(0, 2935, '\p{^Sc=	 orya}', "");
-    Expect(0, 2935, '\P{Sc=	 orya}', "");
-    Expect(1, 2935, '\P{^Sc=	 orya}', "");
-    Expect(0, 2936, '\p{Sc=	 orya}', "");
-    Expect(1, 2936, '\p{^Sc=	 orya}', "");
-    Expect(1, 2936, '\P{Sc=	 orya}', "");
-    Expect(0, 2936, '\P{^Sc=	 orya}', "");
-    Error('\p{Is_Script=_:=ORIYA}');
-    Error('\P{Is_Script=_:=ORIYA}');
+    Expect(1, 2935, '\p{Sc:  _ORYA}', "");
+    Expect(0, 2935, '\p{^Sc:  _ORYA}', "");
+    Expect(0, 2935, '\P{Sc:  _ORYA}', "");
+    Expect(1, 2935, '\P{^Sc:  _ORYA}', "");
+    Expect(0, 2936, '\p{Sc:  _ORYA}', "");
+    Expect(1, 2936, '\p{^Sc:  _ORYA}', "");
+    Expect(1, 2936, '\P{Sc:  _ORYA}', "");
+    Expect(0, 2936, '\P{^Sc:  _ORYA}', "");
+    Error('\p{Is_Script=_/a/oriya}');
+    Error('\P{Is_Script=_/a/oriya}');
     Expect(1, 2935, '\p{Is_Script=oriya}', "");
     Expect(0, 2935, '\p{^Is_Script=oriya}', "");
     Expect(0, 2935, '\P{Is_Script=oriya}', "");
@@ -136587,16 +137931,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2936, '\p{^Is_Script=oriya}', "");
     Expect(1, 2936, '\P{Is_Script=oriya}', "");
     Expect(0, 2936, '\P{^Is_Script=oriya}', "");
-    Expect(1, 2935, '\p{Is_Script= ORIYA}', "");
-    Expect(0, 2935, '\p{^Is_Script= ORIYA}', "");
-    Expect(0, 2935, '\P{Is_Script= ORIYA}', "");
-    Expect(1, 2935, '\P{^Is_Script= ORIYA}', "");
-    Expect(0, 2936, '\p{Is_Script= ORIYA}', "");
-    Expect(1, 2936, '\p{^Is_Script= ORIYA}', "");
-    Expect(1, 2936, '\P{Is_Script= ORIYA}', "");
-    Expect(0, 2936, '\P{^Is_Script= ORIYA}', "");
-    Error('\p{Is_Sc=_/a/orya}');
-    Error('\P{Is_Sc=_/a/orya}');
+    Expect(1, 2935, '\p{Is_Script=_	ORIYA}', "");
+    Expect(0, 2935, '\p{^Is_Script=_	ORIYA}', "");
+    Expect(0, 2935, '\P{Is_Script=_	ORIYA}', "");
+    Expect(1, 2935, '\P{^Is_Script=_	ORIYA}', "");
+    Expect(0, 2936, '\p{Is_Script=_	ORIYA}', "");
+    Expect(1, 2936, '\p{^Is_Script=_	ORIYA}', "");
+    Expect(1, 2936, '\P{Is_Script=_	ORIYA}', "");
+    Expect(0, 2936, '\P{^Is_Script=_	ORIYA}', "");
+    Error('\p{Is_Sc=-ORYA/a/}');
+    Error('\P{Is_Sc=-ORYA/a/}');
     Expect(1, 2935, '\p{Is_Sc=orya}', "");
     Expect(0, 2935, '\p{^Is_Sc=orya}', "");
     Expect(0, 2935, '\P{Is_Sc=orya}', "");
@@ -136605,16 +137949,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2936, '\p{^Is_Sc=orya}', "");
     Expect(1, 2936, '\P{Is_Sc=orya}', "");
     Expect(0, 2936, '\P{^Is_Sc=orya}', "");
-    Expect(1, 2935, '\p{Is_Sc=	-Orya}', "");
-    Expect(0, 2935, '\p{^Is_Sc=	-Orya}', "");
-    Expect(0, 2935, '\P{Is_Sc=	-Orya}', "");
-    Expect(1, 2935, '\P{^Is_Sc=	-Orya}', "");
-    Expect(0, 2936, '\p{Is_Sc=	-Orya}', "");
-    Expect(1, 2936, '\p{^Is_Sc=	-Orya}', "");
-    Expect(1, 2936, '\P{Is_Sc=	-Orya}', "");
-    Expect(0, 2936, '\P{^Is_Sc=	-Orya}', "");
-    Error('\p{Script=/a/_	OSAGE}');
-    Error('\P{Script=/a/_	OSAGE}');
+    Expect(1, 2935, '\p{Is_Sc=	Orya}', "");
+    Expect(0, 2935, '\p{^Is_Sc=	Orya}', "");
+    Expect(0, 2935, '\P{Is_Sc=	Orya}', "");
+    Expect(1, 2935, '\P{^Is_Sc=	Orya}', "");
+    Expect(0, 2936, '\p{Is_Sc=	Orya}', "");
+    Expect(1, 2936, '\p{^Is_Sc=	Orya}', "");
+    Expect(1, 2936, '\P{Is_Sc=	Orya}', "");
+    Expect(0, 2936, '\P{^Is_Sc=	Orya}', "");
+    Error('\p{Script=/a/--Osage}');
+    Error('\P{Script=/a/--Osage}');
     Expect(1, 66811, '\p{Script=:\AOsage\z:}', "");;
     Expect(0, 66812, '\p{Script=:\AOsage\z:}', "");;
     Expect(1, 66811, '\p{Script=osage}', "");
@@ -136627,16 +137971,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66812, '\P{^Script=osage}', "");
     Expect(1, 66811, '\p{Script=:\Aosage\z:}', "");;
     Expect(0, 66812, '\p{Script=:\Aosage\z:}', "");;
-    Expect(1, 66811, '\p{Script=_Osage}', "");
-    Expect(0, 66811, '\p{^Script=_Osage}', "");
-    Expect(0, 66811, '\P{Script=_Osage}', "");
-    Expect(1, 66811, '\P{^Script=_Osage}', "");
-    Expect(0, 66812, '\p{Script=_Osage}', "");
-    Expect(1, 66812, '\p{^Script=_Osage}', "");
-    Expect(1, 66812, '\P{Script=_Osage}', "");
-    Expect(0, 66812, '\P{^Script=_Osage}', "");
-    Error('\p{Sc=/a/- Osge}');
-    Error('\P{Sc=/a/- Osge}');
+    Expect(1, 66811, '\p{Script=--Osage}', "");
+    Expect(0, 66811, '\p{^Script=--Osage}', "");
+    Expect(0, 66811, '\P{Script=--Osage}', "");
+    Expect(1, 66811, '\P{^Script=--Osage}', "");
+    Expect(0, 66812, '\p{Script=--Osage}', "");
+    Expect(1, 66812, '\p{^Script=--Osage}', "");
+    Expect(1, 66812, '\P{Script=--Osage}', "");
+    Expect(0, 66812, '\P{^Script=--Osage}', "");
+    Error('\p{Sc=/a/__Osge}');
+    Error('\P{Sc=/a/__Osge}');
     Expect(1, 66811, '\p{Sc=:\AOsge\z:}', "");;
     Expect(0, 66812, '\p{Sc=:\AOsge\z:}', "");;
     Expect(1, 66811, '\p{Sc=osge}', "");
@@ -136649,16 +137993,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66812, '\P{^Sc=osge}', "");
     Expect(1, 66811, '\p{Sc=:\Aosge\z:}', "");;
     Expect(0, 66812, '\p{Sc=:\Aosge\z:}', "");;
-    Expect(1, 66811, '\p{Sc=_OSGE}', "");
-    Expect(0, 66811, '\p{^Sc=_OSGE}', "");
-    Expect(0, 66811, '\P{Sc=_OSGE}', "");
-    Expect(1, 66811, '\P{^Sc=_OSGE}', "");
-    Expect(0, 66812, '\p{Sc=_OSGE}', "");
-    Expect(1, 66812, '\p{^Sc=_OSGE}', "");
-    Expect(1, 66812, '\P{Sc=_OSGE}', "");
-    Expect(0, 66812, '\P{^Sc=_OSGE}', "");
-    Error('\p{Is_Script= :=OSAGE}');
-    Error('\P{Is_Script= :=OSAGE}');
+    Expect(1, 66811, '\p{Sc:   _ Osge}', "");
+    Expect(0, 66811, '\p{^Sc:   _ Osge}', "");
+    Expect(0, 66811, '\P{Sc:   _ Osge}', "");
+    Expect(1, 66811, '\P{^Sc:   _ Osge}', "");
+    Expect(0, 66812, '\p{Sc:   _ Osge}', "");
+    Expect(1, 66812, '\p{^Sc:   _ Osge}', "");
+    Expect(1, 66812, '\P{Sc:   _ Osge}', "");
+    Expect(0, 66812, '\P{^Sc:   _ Osge}', "");
+    Error('\p{Is_Script=/a/__Osage}');
+    Error('\P{Is_Script=/a/__Osage}');
     Expect(1, 66811, '\p{Is_Script=osage}', "");
     Expect(0, 66811, '\p{^Is_Script=osage}', "");
     Expect(0, 66811, '\P{Is_Script=osage}', "");
@@ -136667,16 +138011,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66812, '\p{^Is_Script=osage}', "");
     Expect(1, 66812, '\P{Is_Script=osage}', "");
     Expect(0, 66812, '\P{^Is_Script=osage}', "");
-    Expect(1, 66811, '\p{Is_Script=_	OSAGE}', "");
-    Expect(0, 66811, '\p{^Is_Script=_	OSAGE}', "");
-    Expect(0, 66811, '\P{Is_Script=_	OSAGE}', "");
-    Expect(1, 66811, '\P{^Is_Script=_	OSAGE}', "");
-    Expect(0, 66812, '\p{Is_Script=_	OSAGE}', "");
-    Expect(1, 66812, '\p{^Is_Script=_	OSAGE}', "");
-    Expect(1, 66812, '\P{Is_Script=_	OSAGE}', "");
-    Expect(0, 66812, '\P{^Is_Script=_	OSAGE}', "");
-    Error('\p{Is_Sc=/a/	Osge}');
-    Error('\P{Is_Sc=/a/	Osge}');
+    Expect(1, 66811, '\p{Is_Script= OSAGE}', "");
+    Expect(0, 66811, '\p{^Is_Script= OSAGE}', "");
+    Expect(0, 66811, '\P{Is_Script= OSAGE}', "");
+    Expect(1, 66811, '\P{^Is_Script= OSAGE}', "");
+    Expect(0, 66812, '\p{Is_Script= OSAGE}', "");
+    Expect(1, 66812, '\p{^Is_Script= OSAGE}', "");
+    Expect(1, 66812, '\P{Is_Script= OSAGE}', "");
+    Expect(0, 66812, '\P{^Is_Script= OSAGE}', "");
+    Error('\p{Is_Sc=_	osge:=}');
+    Error('\P{Is_Sc=_	osge:=}');
     Expect(1, 66811, '\p{Is_Sc=osge}', "");
     Expect(0, 66811, '\p{^Is_Sc=osge}', "");
     Expect(0, 66811, '\P{Is_Sc=osge}', "");
@@ -136685,60 +138029,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66812, '\p{^Is_Sc=osge}', "");
     Expect(1, 66812, '\P{Is_Sc=osge}', "");
     Expect(0, 66812, '\P{^Is_Sc=osge}', "");
-    Expect(1, 66811, '\p{Is_Sc=	Osge}', "");
-    Expect(0, 66811, '\p{^Is_Sc=	Osge}', "");
-    Expect(0, 66811, '\P{Is_Sc=	Osge}', "");
-    Expect(1, 66811, '\P{^Is_Sc=	Osge}', "");
-    Expect(0, 66812, '\p{Is_Sc=	Osge}', "");
-    Expect(1, 66812, '\p{^Is_Sc=	Osge}', "");
-    Expect(1, 66812, '\P{Is_Sc=	Osge}', "");
-    Expect(0, 66812, '\P{^Is_Sc=	Osge}', "");
-    Error('\p{Script::= _Osmanya}');
-    Error('\P{Script::= _Osmanya}');
+    Expect(1, 66811, '\p{Is_Sc= -OSGE}', "");
+    Expect(0, 66811, '\p{^Is_Sc= -OSGE}', "");
+    Expect(0, 66811, '\P{Is_Sc= -OSGE}', "");
+    Expect(1, 66811, '\P{^Is_Sc= -OSGE}', "");
+    Expect(0, 66812, '\p{Is_Sc= -OSGE}', "");
+    Expect(1, 66812, '\p{^Is_Sc= -OSGE}', "");
+    Expect(1, 66812, '\P{Is_Sc= -OSGE}', "");
+    Expect(0, 66812, '\P{^Is_Sc= -OSGE}', "");
+    Error('\p{Script:	-osmanya:=}');
+    Error('\P{Script:	-osmanya:=}');
     Expect(1, 66729, '\p{Script=:\AOsmanya\z:}', "");;
     Expect(0, 66730, '\p{Script=:\AOsmanya\z:}', "");;
-    Expect(1, 66729, '\p{Script=osmanya}', "");
-    Expect(0, 66729, '\p{^Script=osmanya}', "");
-    Expect(0, 66729, '\P{Script=osmanya}', "");
-    Expect(1, 66729, '\P{^Script=osmanya}', "");
-    Expect(0, 66730, '\p{Script=osmanya}', "");
-    Expect(1, 66730, '\p{^Script=osmanya}', "");
-    Expect(1, 66730, '\P{Script=osmanya}', "");
-    Expect(0, 66730, '\P{^Script=osmanya}', "");
+    Expect(1, 66729, '\p{Script: osmanya}', "");
+    Expect(0, 66729, '\p{^Script: osmanya}', "");
+    Expect(0, 66729, '\P{Script: osmanya}', "");
+    Expect(1, 66729, '\P{^Script: osmanya}', "");
+    Expect(0, 66730, '\p{Script: osmanya}', "");
+    Expect(1, 66730, '\p{^Script: osmanya}', "");
+    Expect(1, 66730, '\P{Script: osmanya}', "");
+    Expect(0, 66730, '\P{^Script: osmanya}', "");
     Expect(1, 66729, '\p{Script=:\Aosmanya\z:}', "");;
     Expect(0, 66730, '\p{Script=:\Aosmanya\z:}', "");;
-    Expect(1, 66729, '\p{Script=-_osmanya}', "");
-    Expect(0, 66729, '\p{^Script=-_osmanya}', "");
-    Expect(0, 66729, '\P{Script=-_osmanya}', "");
-    Expect(1, 66729, '\P{^Script=-_osmanya}', "");
-    Expect(0, 66730, '\p{Script=-_osmanya}', "");
-    Expect(1, 66730, '\p{^Script=-_osmanya}', "");
-    Expect(1, 66730, '\P{Script=-_osmanya}', "");
-    Expect(0, 66730, '\P{^Script=-_osmanya}', "");
-    Error('\p{Sc=_osma:=}');
-    Error('\P{Sc=_osma:=}');
+    Expect(1, 66729, '\p{Script=-OSMANYA}', "");
+    Expect(0, 66729, '\p{^Script=-OSMANYA}', "");
+    Expect(0, 66729, '\P{Script=-OSMANYA}', "");
+    Expect(1, 66729, '\P{^Script=-OSMANYA}', "");
+    Expect(0, 66730, '\p{Script=-OSMANYA}', "");
+    Expect(1, 66730, '\p{^Script=-OSMANYA}', "");
+    Expect(1, 66730, '\P{Script=-OSMANYA}', "");
+    Expect(0, 66730, '\P{^Script=-OSMANYA}', "");
+    Error('\p{Sc=	:=Osma}');
+    Error('\P{Sc=	:=Osma}');
     Expect(1, 66729, '\p{Sc=:\AOsma\z:}', "");;
     Expect(0, 66730, '\p{Sc=:\AOsma\z:}', "");;
-    Expect(1, 66729, '\p{Sc=osma}', "");
-    Expect(0, 66729, '\p{^Sc=osma}', "");
-    Expect(0, 66729, '\P{Sc=osma}', "");
-    Expect(1, 66729, '\P{^Sc=osma}', "");
-    Expect(0, 66730, '\p{Sc=osma}', "");
-    Expect(1, 66730, '\p{^Sc=osma}', "");
-    Expect(1, 66730, '\P{Sc=osma}', "");
-    Expect(0, 66730, '\P{^Sc=osma}', "");
+    Expect(1, 66729, '\p{Sc:   osma}', "");
+    Expect(0, 66729, '\p{^Sc:   osma}', "");
+    Expect(0, 66729, '\P{Sc:   osma}', "");
+    Expect(1, 66729, '\P{^Sc:   osma}', "");
+    Expect(0, 66730, '\p{Sc:   osma}', "");
+    Expect(1, 66730, '\p{^Sc:   osma}', "");
+    Expect(1, 66730, '\P{Sc:   osma}', "");
+    Expect(0, 66730, '\P{^Sc:   osma}', "");
     Expect(1, 66729, '\p{Sc=:\Aosma\z:}', "");;
     Expect(0, 66730, '\p{Sc=:\Aosma\z:}', "");;
-    Expect(1, 66729, '\p{Sc= OSMA}', "");
-    Expect(0, 66729, '\p{^Sc= OSMA}', "");
-    Expect(0, 66729, '\P{Sc= OSMA}', "");
-    Expect(1, 66729, '\P{^Sc= OSMA}', "");
-    Expect(0, 66730, '\p{Sc= OSMA}', "");
-    Expect(1, 66730, '\p{^Sc= OSMA}', "");
-    Expect(1, 66730, '\P{Sc= OSMA}', "");
-    Expect(0, 66730, '\P{^Sc= OSMA}', "");
-    Error('\p{Is_Script=:= OSMANYA}');
-    Error('\P{Is_Script=:= OSMANYA}');
+    Expect(1, 66729, '\p{Sc=-_Osma}', "");
+    Expect(0, 66729, '\p{^Sc=-_Osma}', "");
+    Expect(0, 66729, '\P{Sc=-_Osma}', "");
+    Expect(1, 66729, '\P{^Sc=-_Osma}', "");
+    Expect(0, 66730, '\p{Sc=-_Osma}', "");
+    Expect(1, 66730, '\p{^Sc=-_Osma}', "");
+    Expect(1, 66730, '\P{Sc=-_Osma}', "");
+    Expect(0, 66730, '\P{^Sc=-_Osma}', "");
+    Error('\p{Is_Script:	/a/ Osmanya}');
+    Error('\P{Is_Script:	/a/ Osmanya}');
     Expect(1, 66729, '\p{Is_Script=osmanya}', "");
     Expect(0, 66729, '\p{^Is_Script=osmanya}', "");
     Expect(0, 66729, '\P{Is_Script=osmanya}', "");
@@ -136747,16 +138091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66730, '\p{^Is_Script=osmanya}', "");
     Expect(1, 66730, '\P{Is_Script=osmanya}', "");
     Expect(0, 66730, '\P{^Is_Script=osmanya}', "");
-    Expect(1, 66729, '\p{Is_Script:		-Osmanya}', "");
-    Expect(0, 66729, '\p{^Is_Script:		-Osmanya}', "");
-    Expect(0, 66729, '\P{Is_Script:		-Osmanya}', "");
-    Expect(1, 66729, '\P{^Is_Script:		-Osmanya}', "");
-    Expect(0, 66730, '\p{Is_Script:		-Osmanya}', "");
-    Expect(1, 66730, '\p{^Is_Script:		-Osmanya}', "");
-    Expect(1, 66730, '\P{Is_Script:		-Osmanya}', "");
-    Expect(0, 66730, '\P{^Is_Script:		-Osmanya}', "");
-    Error('\p{Is_Sc= 	Osma:=}');
-    Error('\P{Is_Sc= 	Osma:=}');
+    Expect(1, 66729, '\p{Is_Script=Osmanya}', "");
+    Expect(0, 66729, '\p{^Is_Script=Osmanya}', "");
+    Expect(0, 66729, '\P{Is_Script=Osmanya}', "");
+    Expect(1, 66729, '\P{^Is_Script=Osmanya}', "");
+    Expect(0, 66730, '\p{Is_Script=Osmanya}', "");
+    Expect(1, 66730, '\p{^Is_Script=Osmanya}', "");
+    Expect(1, 66730, '\P{Is_Script=Osmanya}', "");
+    Expect(0, 66730, '\P{^Is_Script=Osmanya}', "");
+    Error('\p{Is_Sc: /a/Osma}');
+    Error('\P{Is_Sc: /a/Osma}');
     Expect(1, 66729, '\p{Is_Sc=osma}', "");
     Expect(0, 66729, '\p{^Is_Sc=osma}', "");
     Expect(0, 66729, '\P{Is_Sc=osma}', "");
@@ -136765,16 +138109,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66730, '\p{^Is_Sc=osma}', "");
     Expect(1, 66730, '\P{Is_Sc=osma}', "");
     Expect(0, 66730, '\P{^Is_Sc=osma}', "");
-    Expect(1, 66729, '\p{Is_Sc=	-OSMA}', "");
-    Expect(0, 66729, '\p{^Is_Sc=	-OSMA}', "");
-    Expect(0, 66729, '\P{Is_Sc=	-OSMA}', "");
-    Expect(1, 66729, '\P{^Is_Sc=	-OSMA}', "");
-    Expect(0, 66730, '\p{Is_Sc=	-OSMA}', "");
-    Expect(1, 66730, '\p{^Is_Sc=	-OSMA}', "");
-    Expect(1, 66730, '\P{Is_Sc=	-OSMA}', "");
-    Expect(0, 66730, '\P{^Is_Sc=	-OSMA}', "");
-    Error('\p{Script=_:=Old_Uyghur}');
-    Error('\P{Script=_:=Old_Uyghur}');
+    Expect(1, 66729, '\p{Is_Sc=-_Osma}', "");
+    Expect(0, 66729, '\p{^Is_Sc=-_Osma}', "");
+    Expect(0, 66729, '\P{Is_Sc=-_Osma}', "");
+    Expect(1, 66729, '\P{^Is_Sc=-_Osma}', "");
+    Expect(0, 66730, '\p{Is_Sc=-_Osma}', "");
+    Expect(1, 66730, '\p{^Is_Sc=-_Osma}', "");
+    Expect(1, 66730, '\P{Is_Sc=-_Osma}', "");
+    Expect(0, 66730, '\P{^Is_Sc=-_Osma}', "");
+    Error('\p{Script=/a/_old_Uyghur}');
+    Error('\P{Script=/a/_old_Uyghur}');
     Expect(1, 69513, '\p{Script=:\AOld_Uyghur\z:}', "");;
     Expect(0, 69514, '\p{Script=:\AOld_Uyghur\z:}', "");;
     Expect(1, 69513, '\p{Script=olduyghur}', "");
@@ -136787,16 +138131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69514, '\P{^Script=olduyghur}', "");
     Expect(1, 69513, '\p{Script=:\Aolduyghur\z:}', "");;
     Expect(0, 69514, '\p{Script=:\Aolduyghur\z:}', "");;
-    Expect(1, 69513, '\p{Script=	old_uyghur}', "");
-    Expect(0, 69513, '\p{^Script=	old_uyghur}', "");
-    Expect(0, 69513, '\P{Script=	old_uyghur}', "");
-    Expect(1, 69513, '\P{^Script=	old_uyghur}', "");
-    Expect(0, 69514, '\p{Script=	old_uyghur}', "");
-    Expect(1, 69514, '\p{^Script=	old_uyghur}', "");
-    Expect(1, 69514, '\P{Script=	old_uyghur}', "");
-    Expect(0, 69514, '\P{^Script=	old_uyghur}', "");
-    Error('\p{Sc=:=	Ougr}');
-    Error('\P{Sc=:=	Ougr}');
+    Expect(1, 69513, '\p{Script= _Old_uyghur}', "");
+    Expect(0, 69513, '\p{^Script= _Old_uyghur}', "");
+    Expect(0, 69513, '\P{Script= _Old_uyghur}', "");
+    Expect(1, 69513, '\P{^Script= _Old_uyghur}', "");
+    Expect(0, 69514, '\p{Script= _Old_uyghur}', "");
+    Expect(1, 69514, '\p{^Script= _Old_uyghur}', "");
+    Expect(1, 69514, '\P{Script= _Old_uyghur}', "");
+    Expect(0, 69514, '\P{^Script= _Old_uyghur}', "");
+    Error('\p{Sc=:=Ougr}');
+    Error('\P{Sc=:=Ougr}');
     Expect(1, 69513, '\p{Sc=:\AOugr\z:}', "");;
     Expect(0, 69514, '\p{Sc=:\AOugr\z:}', "");;
     Expect(1, 69513, '\p{Sc=ougr}', "");
@@ -136809,34 +138153,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69514, '\P{^Sc=ougr}', "");
     Expect(1, 69513, '\p{Sc=:\Aougr\z:}', "");;
     Expect(0, 69514, '\p{Sc=:\Aougr\z:}', "");;
-    Expect(1, 69513, '\p{Sc=-ougr}', "");
-    Expect(0, 69513, '\p{^Sc=-ougr}', "");
-    Expect(0, 69513, '\P{Sc=-ougr}', "");
-    Expect(1, 69513, '\P{^Sc=-ougr}', "");
-    Expect(0, 69514, '\p{Sc=-ougr}', "");
-    Expect(1, 69514, '\p{^Sc=-ougr}', "");
-    Expect(1, 69514, '\P{Sc=-ougr}', "");
-    Expect(0, 69514, '\P{^Sc=-ougr}', "");
-    Error('\p{Is_Script=/a/_ Old_uyghur}');
-    Error('\P{Is_Script=/a/_ Old_uyghur}');
-    Expect(1, 69513, '\p{Is_Script: olduyghur}', "");
-    Expect(0, 69513, '\p{^Is_Script: olduyghur}', "");
-    Expect(0, 69513, '\P{Is_Script: olduyghur}', "");
-    Expect(1, 69513, '\P{^Is_Script: olduyghur}', "");
-    Expect(0, 69514, '\p{Is_Script: olduyghur}', "");
-    Expect(1, 69514, '\p{^Is_Script: olduyghur}', "");
-    Expect(1, 69514, '\P{Is_Script: olduyghur}', "");
-    Expect(0, 69514, '\P{^Is_Script: olduyghur}', "");
-    Expect(1, 69513, '\p{Is_Script= _OLD_uyghur}', "");
-    Expect(0, 69513, '\p{^Is_Script= _OLD_uyghur}', "");
-    Expect(0, 69513, '\P{Is_Script= _OLD_uyghur}', "");
-    Expect(1, 69513, '\P{^Is_Script= _OLD_uyghur}', "");
-    Expect(0, 69514, '\p{Is_Script= _OLD_uyghur}', "");
-    Expect(1, 69514, '\p{^Is_Script= _OLD_uyghur}', "");
-    Expect(1, 69514, '\P{Is_Script= _OLD_uyghur}', "");
-    Expect(0, 69514, '\P{^Is_Script= _OLD_uyghur}', "");
-    Error('\p{Is_Sc= /a/OUGR}');
-    Error('\P{Is_Sc= /a/OUGR}');
+    Expect(1, 69513, '\p{Sc= _Ougr}', "");
+    Expect(0, 69513, '\p{^Sc= _Ougr}', "");
+    Expect(0, 69513, '\P{Sc= _Ougr}', "");
+    Expect(1, 69513, '\P{^Sc= _Ougr}', "");
+    Expect(0, 69514, '\p{Sc= _Ougr}', "");
+    Expect(1, 69514, '\p{^Sc= _Ougr}', "");
+    Expect(1, 69514, '\P{Sc= _Ougr}', "");
+    Expect(0, 69514, '\P{^Sc= _Ougr}', "");
+    Error('\p{Is_Script=	:=old_Uyghur}');
+    Error('\P{Is_Script=	:=old_Uyghur}');
+    Expect(1, 69513, '\p{Is_Script=olduyghur}', "");
+    Expect(0, 69513, '\p{^Is_Script=olduyghur}', "");
+    Expect(0, 69513, '\P{Is_Script=olduyghur}', "");
+    Expect(1, 69513, '\P{^Is_Script=olduyghur}', "");
+    Expect(0, 69514, '\p{Is_Script=olduyghur}', "");
+    Expect(1, 69514, '\p{^Is_Script=olduyghur}', "");
+    Expect(1, 69514, '\P{Is_Script=olduyghur}', "");
+    Expect(0, 69514, '\P{^Is_Script=olduyghur}', "");
+    Expect(1, 69513, '\p{Is_Script=-	Old_Uyghur}', "");
+    Expect(0, 69513, '\p{^Is_Script=-	Old_Uyghur}', "");
+    Expect(0, 69513, '\P{Is_Script=-	Old_Uyghur}', "");
+    Expect(1, 69513, '\P{^Is_Script=-	Old_Uyghur}', "");
+    Expect(0, 69514, '\p{Is_Script=-	Old_Uyghur}', "");
+    Expect(1, 69514, '\p{^Is_Script=-	Old_Uyghur}', "");
+    Expect(1, 69514, '\P{Is_Script=-	Old_Uyghur}', "");
+    Expect(0, 69514, '\P{^Is_Script=-	Old_Uyghur}', "");
+    Error('\p{Is_Sc=	:=ougr}');
+    Error('\P{Is_Sc=	:=ougr}');
     Expect(1, 69513, '\p{Is_Sc=ougr}', "");
     Expect(0, 69513, '\p{^Is_Sc=ougr}', "");
     Expect(0, 69513, '\P{Is_Sc=ougr}', "");
@@ -136845,16 +138189,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69514, '\p{^Is_Sc=ougr}', "");
     Expect(1, 69514, '\P{Is_Sc=ougr}', "");
     Expect(0, 69514, '\P{^Is_Sc=ougr}', "");
-    Expect(1, 69513, '\p{Is_Sc=-	ougr}', "");
-    Expect(0, 69513, '\p{^Is_Sc=-	ougr}', "");
-    Expect(0, 69513, '\P{Is_Sc=-	ougr}', "");
-    Expect(1, 69513, '\P{^Is_Sc=-	ougr}', "");
-    Expect(0, 69514, '\p{Is_Sc=-	ougr}', "");
-    Expect(1, 69514, '\p{^Is_Sc=-	ougr}', "");
-    Expect(1, 69514, '\P{Is_Sc=-	ougr}', "");
-    Expect(0, 69514, '\P{^Is_Sc=-	ougr}', "");
-    Error('\p{Script=:=-PALMYRENE}');
-    Error('\P{Script=:=-PALMYRENE}');
+    Expect(1, 69513, '\p{Is_Sc=--OUGR}', "");
+    Expect(0, 69513, '\p{^Is_Sc=--OUGR}', "");
+    Expect(0, 69513, '\P{Is_Sc=--OUGR}', "");
+    Expect(1, 69513, '\P{^Is_Sc=--OUGR}', "");
+    Expect(0, 69514, '\p{Is_Sc=--OUGR}', "");
+    Expect(1, 69514, '\p{^Is_Sc=--OUGR}', "");
+    Expect(1, 69514, '\P{Is_Sc=--OUGR}', "");
+    Expect(0, 69514, '\P{^Is_Sc=--OUGR}', "");
+    Error('\p{Script=-:=palmyrene}');
+    Error('\P{Script=-:=palmyrene}');
     Expect(1, 67711, '\p{Script=:\APalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Script=:\APalmyrene\z:}', "");;
     Expect(1, 67711, '\p{Script=palmyrene}', "");
@@ -136867,16 +138211,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67712, '\P{^Script=palmyrene}', "");
     Expect(1, 67711, '\p{Script=:\Apalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Script=:\Apalmyrene\z:}', "");;
-    Expect(1, 67711, '\p{Script=	_PALMYRENE}', "");
-    Expect(0, 67711, '\p{^Script=	_PALMYRENE}', "");
-    Expect(0, 67711, '\P{Script=	_PALMYRENE}', "");
-    Expect(1, 67711, '\P{^Script=	_PALMYRENE}', "");
-    Expect(0, 67712, '\p{Script=	_PALMYRENE}', "");
-    Expect(1, 67712, '\p{^Script=	_PALMYRENE}', "");
-    Expect(1, 67712, '\P{Script=	_PALMYRENE}', "");
-    Expect(0, 67712, '\P{^Script=	_PALMYRENE}', "");
-    Error('\p{Sc=__PALM:=}');
-    Error('\P{Sc=__PALM:=}');
+    Expect(1, 67711, '\p{Script:	Palmyrene}', "");
+    Expect(0, 67711, '\p{^Script:	Palmyrene}', "");
+    Expect(0, 67711, '\P{Script:	Palmyrene}', "");
+    Expect(1, 67711, '\P{^Script:	Palmyrene}', "");
+    Expect(0, 67712, '\p{Script:	Palmyrene}', "");
+    Expect(1, 67712, '\p{^Script:	Palmyrene}', "");
+    Expect(1, 67712, '\P{Script:	Palmyrene}', "");
+    Expect(0, 67712, '\P{^Script:	Palmyrene}', "");
+    Error('\p{Sc=  palm/a/}');
+    Error('\P{Sc=  palm/a/}');
     Expect(1, 67711, '\p{Sc=:\APalm\z:}', "");;
     Expect(0, 67712, '\p{Sc=:\APalm\z:}', "");;
     Expect(1, 67711, '\p{Sc=palm}', "");
@@ -136889,16 +138233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67712, '\P{^Sc=palm}', "");
     Expect(1, 67711, '\p{Sc=:\Apalm\z:}', "");;
     Expect(0, 67712, '\p{Sc=:\Apalm\z:}', "");;
-    Expect(1, 67711, '\p{Sc=_-Palm}', "");
-    Expect(0, 67711, '\p{^Sc=_-Palm}', "");
-    Expect(0, 67711, '\P{Sc=_-Palm}', "");
-    Expect(1, 67711, '\P{^Sc=_-Palm}', "");
-    Expect(0, 67712, '\p{Sc=_-Palm}', "");
-    Expect(1, 67712, '\p{^Sc=_-Palm}', "");
-    Expect(1, 67712, '\P{Sc=_-Palm}', "");
-    Expect(0, 67712, '\P{^Sc=_-Palm}', "");
-    Error('\p{Is_Script=:=-	Palmyrene}');
-    Error('\P{Is_Script=:=-	Palmyrene}');
+    Expect(1, 67711, '\p{Sc=_palm}', "");
+    Expect(0, 67711, '\p{^Sc=_palm}', "");
+    Expect(0, 67711, '\P{Sc=_palm}', "");
+    Expect(1, 67711, '\P{^Sc=_palm}', "");
+    Expect(0, 67712, '\p{Sc=_palm}', "");
+    Expect(1, 67712, '\p{^Sc=_palm}', "");
+    Expect(1, 67712, '\P{Sc=_palm}', "");
+    Expect(0, 67712, '\P{^Sc=_palm}', "");
+    Error('\p{Is_Script=:=_	PALMYRENE}');
+    Error('\P{Is_Script=:=_	PALMYRENE}');
     Expect(1, 67711, '\p{Is_Script=palmyrene}', "");
     Expect(0, 67711, '\p{^Is_Script=palmyrene}', "");
     Expect(0, 67711, '\P{Is_Script=palmyrene}', "");
@@ -136907,16 +138251,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67712, '\p{^Is_Script=palmyrene}', "");
     Expect(1, 67712, '\P{Is_Script=palmyrene}', "");
     Expect(0, 67712, '\P{^Is_Script=palmyrene}', "");
-    Expect(1, 67711, '\p{Is_Script=-PALMYRENE}', "");
-    Expect(0, 67711, '\p{^Is_Script=-PALMYRENE}', "");
-    Expect(0, 67711, '\P{Is_Script=-PALMYRENE}', "");
-    Expect(1, 67711, '\P{^Is_Script=-PALMYRENE}', "");
-    Expect(0, 67712, '\p{Is_Script=-PALMYRENE}', "");
-    Expect(1, 67712, '\p{^Is_Script=-PALMYRENE}', "");
-    Expect(1, 67712, '\P{Is_Script=-PALMYRENE}', "");
-    Expect(0, 67712, '\P{^Is_Script=-PALMYRENE}', "");
-    Error('\p{Is_Sc=	:=palm}');
-    Error('\P{Is_Sc=	:=palm}');
+    Expect(1, 67711, '\p{Is_Script=_palmyrene}', "");
+    Expect(0, 67711, '\p{^Is_Script=_palmyrene}', "");
+    Expect(0, 67711, '\P{Is_Script=_palmyrene}', "");
+    Expect(1, 67711, '\P{^Is_Script=_palmyrene}', "");
+    Expect(0, 67712, '\p{Is_Script=_palmyrene}', "");
+    Expect(1, 67712, '\p{^Is_Script=_palmyrene}', "");
+    Expect(1, 67712, '\P{Is_Script=_palmyrene}', "");
+    Expect(0, 67712, '\P{^Is_Script=_palmyrene}', "");
+    Error('\p{Is_Sc=-:=palm}');
+    Error('\P{Is_Sc=-:=palm}');
     Expect(1, 67711, '\p{Is_Sc=palm}', "");
     Expect(0, 67711, '\p{^Is_Sc=palm}', "");
     Expect(0, 67711, '\P{Is_Sc=palm}', "");
@@ -136925,16 +138269,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67712, '\p{^Is_Sc=palm}', "");
     Expect(1, 67712, '\P{Is_Sc=palm}', "");
     Expect(0, 67712, '\P{^Is_Sc=palm}', "");
-    Expect(1, 67711, '\p{Is_Sc=_Palm}', "");
-    Expect(0, 67711, '\p{^Is_Sc=_Palm}', "");
-    Expect(0, 67711, '\P{Is_Sc=_Palm}', "");
-    Expect(1, 67711, '\P{^Is_Sc=_Palm}', "");
-    Expect(0, 67712, '\p{Is_Sc=_Palm}', "");
-    Expect(1, 67712, '\p{^Is_Sc=_Palm}', "");
-    Expect(1, 67712, '\P{Is_Sc=_Palm}', "");
-    Expect(0, 67712, '\P{^Is_Sc=_Palm}', "");
-    Error('\p{Script=_Pau_cin_hau:=}');
-    Error('\P{Script=_Pau_cin_hau:=}');
+    Expect(1, 67711, '\p{Is_Sc=	Palm}', "");
+    Expect(0, 67711, '\p{^Is_Sc=	Palm}', "");
+    Expect(0, 67711, '\P{Is_Sc=	Palm}', "");
+    Expect(1, 67711, '\P{^Is_Sc=	Palm}', "");
+    Expect(0, 67712, '\p{Is_Sc=	Palm}', "");
+    Expect(1, 67712, '\p{^Is_Sc=	Palm}', "");
+    Expect(1, 67712, '\P{Is_Sc=	Palm}', "");
+    Expect(0, 67712, '\P{^Is_Sc=	Palm}', "");
+    Error('\p{Script=		Pau_CIN_HAU/a/}');
+    Error('\P{Script=		Pau_CIN_HAU/a/}');
     Expect(1, 72440, '\p{Script=:\APau_Cin_Hau\z:}', "");;
     Expect(0, 72441, '\p{Script=:\APau_Cin_Hau\z:}', "");;
     Expect(1, 72440, '\p{Script=paucinhau}', "");
@@ -136947,16 +138291,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72441, '\P{^Script=paucinhau}', "");
     Expect(1, 72440, '\p{Script=:\Apaucinhau\z:}', "");;
     Expect(0, 72441, '\p{Script=:\Apaucinhau\z:}', "");;
-    Expect(1, 72440, '\p{Script=__pau_CIN_Hau}', "");
-    Expect(0, 72440, '\p{^Script=__pau_CIN_Hau}', "");
-    Expect(0, 72440, '\P{Script=__pau_CIN_Hau}', "");
-    Expect(1, 72440, '\P{^Script=__pau_CIN_Hau}', "");
-    Expect(0, 72441, '\p{Script=__pau_CIN_Hau}', "");
-    Expect(1, 72441, '\p{^Script=__pau_CIN_Hau}', "");
-    Expect(1, 72441, '\P{Script=__pau_CIN_Hau}', "");
-    Expect(0, 72441, '\P{^Script=__pau_CIN_Hau}', "");
-    Error('\p{Sc=_/a/pauc}');
-    Error('\P{Sc=_/a/pauc}');
+    Expect(1, 72440, '\p{Script=	-PAU_cin_HAU}', "");
+    Expect(0, 72440, '\p{^Script=	-PAU_cin_HAU}', "");
+    Expect(0, 72440, '\P{Script=	-PAU_cin_HAU}', "");
+    Expect(1, 72440, '\P{^Script=	-PAU_cin_HAU}', "");
+    Expect(0, 72441, '\p{Script=	-PAU_cin_HAU}', "");
+    Expect(1, 72441, '\p{^Script=	-PAU_cin_HAU}', "");
+    Expect(1, 72441, '\P{Script=	-PAU_cin_HAU}', "");
+    Expect(0, 72441, '\P{^Script=	-PAU_cin_HAU}', "");
+    Error('\p{Sc=/a/ PAUC}');
+    Error('\P{Sc=/a/ PAUC}');
     Expect(1, 72440, '\p{Sc=:\APauc\z:}', "");;
     Expect(0, 72441, '\p{Sc=:\APauc\z:}', "");;
     Expect(1, 72440, '\p{Sc=pauc}', "");
@@ -136969,34 +138313,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72441, '\P{^Sc=pauc}', "");
     Expect(1, 72440, '\p{Sc=:\Apauc\z:}', "");;
     Expect(0, 72441, '\p{Sc=:\Apauc\z:}', "");;
-    Expect(1, 72440, '\p{Sc=_Pauc}', "");
-    Expect(0, 72440, '\p{^Sc=_Pauc}', "");
-    Expect(0, 72440, '\P{Sc=_Pauc}', "");
-    Expect(1, 72440, '\P{^Sc=_Pauc}', "");
-    Expect(0, 72441, '\p{Sc=_Pauc}', "");
-    Expect(1, 72441, '\p{^Sc=_Pauc}', "");
-    Expect(1, 72441, '\P{Sc=_Pauc}', "");
-    Expect(0, 72441, '\P{^Sc=_Pauc}', "");
-    Error('\p{Is_Script=/a/_	pau_CIN_HAU}');
-    Error('\P{Is_Script=/a/_	pau_CIN_HAU}');
-    Expect(1, 72440, '\p{Is_Script=paucinhau}', "");
-    Expect(0, 72440, '\p{^Is_Script=paucinhau}', "");
-    Expect(0, 72440, '\P{Is_Script=paucinhau}', "");
-    Expect(1, 72440, '\P{^Is_Script=paucinhau}', "");
-    Expect(0, 72441, '\p{Is_Script=paucinhau}', "");
-    Expect(1, 72441, '\p{^Is_Script=paucinhau}', "");
-    Expect(1, 72441, '\P{Is_Script=paucinhau}', "");
-    Expect(0, 72441, '\P{^Is_Script=paucinhau}', "");
-    Expect(1, 72440, '\p{Is_Script=_pau_cin_hau}', "");
-    Expect(0, 72440, '\p{^Is_Script=_pau_cin_hau}', "");
-    Expect(0, 72440, '\P{Is_Script=_pau_cin_hau}', "");
-    Expect(1, 72440, '\P{^Is_Script=_pau_cin_hau}', "");
-    Expect(0, 72441, '\p{Is_Script=_pau_cin_hau}', "");
-    Expect(1, 72441, '\p{^Is_Script=_pau_cin_hau}', "");
-    Expect(1, 72441, '\P{Is_Script=_pau_cin_hau}', "");
-    Expect(0, 72441, '\P{^Is_Script=_pau_cin_hau}', "");
-    Error('\p{Is_Sc=__Pauc/a/}');
-    Error('\P{Is_Sc=__Pauc/a/}');
+    Expect(1, 72440, '\p{Sc:   - Pauc}', "");
+    Expect(0, 72440, '\p{^Sc:   - Pauc}', "");
+    Expect(0, 72440, '\P{Sc:   - Pauc}', "");
+    Expect(1, 72440, '\P{^Sc:   - Pauc}', "");
+    Expect(0, 72441, '\p{Sc:   - Pauc}', "");
+    Expect(1, 72441, '\p{^Sc:   - Pauc}', "");
+    Expect(1, 72441, '\P{Sc:   - Pauc}', "");
+    Expect(0, 72441, '\P{^Sc:   - Pauc}', "");
+    Error('\p{Is_Script=_Pau_cin_HAU:=}');
+    Error('\P{Is_Script=_Pau_cin_HAU:=}');
+    Expect(1, 72440, '\p{Is_Script:paucinhau}', "");
+    Expect(0, 72440, '\p{^Is_Script:paucinhau}', "");
+    Expect(0, 72440, '\P{Is_Script:paucinhau}', "");
+    Expect(1, 72440, '\P{^Is_Script:paucinhau}', "");
+    Expect(0, 72441, '\p{Is_Script:paucinhau}', "");
+    Expect(1, 72441, '\p{^Is_Script:paucinhau}', "");
+    Expect(1, 72441, '\P{Is_Script:paucinhau}', "");
+    Expect(0, 72441, '\P{^Is_Script:paucinhau}', "");
+    Expect(1, 72440, '\p{Is_Script=-	Pau_cin_hau}', "");
+    Expect(0, 72440, '\p{^Is_Script=-	Pau_cin_hau}', "");
+    Expect(0, 72440, '\P{Is_Script=-	Pau_cin_hau}', "");
+    Expect(1, 72440, '\P{^Is_Script=-	Pau_cin_hau}', "");
+    Expect(0, 72441, '\p{Is_Script=-	Pau_cin_hau}', "");
+    Expect(1, 72441, '\p{^Is_Script=-	Pau_cin_hau}', "");
+    Expect(1, 72441, '\P{Is_Script=-	Pau_cin_hau}', "");
+    Expect(0, 72441, '\P{^Is_Script=-	Pau_cin_hau}', "");
+    Error('\p{Is_Sc: 	:=Pauc}');
+    Error('\P{Is_Sc: 	:=Pauc}');
     Expect(1, 72440, '\p{Is_Sc=pauc}', "");
     Expect(0, 72440, '\p{^Is_Sc=pauc}', "");
     Expect(0, 72440, '\P{Is_Sc=pauc}', "");
@@ -137005,16 +138349,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72441, '\p{^Is_Sc=pauc}', "");
     Expect(1, 72441, '\P{Is_Sc=pauc}', "");
     Expect(0, 72441, '\P{^Is_Sc=pauc}', "");
-    Expect(1, 72440, '\p{Is_Sc=	-Pauc}', "");
-    Expect(0, 72440, '\p{^Is_Sc=	-Pauc}', "");
-    Expect(0, 72440, '\P{Is_Sc=	-Pauc}', "");
-    Expect(1, 72440, '\P{^Is_Sc=	-Pauc}', "");
-    Expect(0, 72441, '\p{Is_Sc=	-Pauc}', "");
-    Expect(1, 72441, '\p{^Is_Sc=	-Pauc}', "");
-    Expect(1, 72441, '\P{Is_Sc=	-Pauc}', "");
-    Expect(0, 72441, '\P{^Is_Sc=	-Pauc}', "");
-    Error('\p{Script=	_OLD_PERMIC/a/}');
-    Error('\P{Script=	_OLD_PERMIC/a/}');
+    Expect(1, 72440, '\p{Is_Sc= Pauc}', "");
+    Expect(0, 72440, '\p{^Is_Sc= Pauc}', "");
+    Expect(0, 72440, '\P{Is_Sc= Pauc}', "");
+    Expect(1, 72440, '\P{^Is_Sc= Pauc}', "");
+    Expect(0, 72441, '\p{Is_Sc= Pauc}', "");
+    Expect(1, 72441, '\p{^Is_Sc= Pauc}', "");
+    Expect(1, 72441, '\P{Is_Sc= Pauc}', "");
+    Expect(0, 72441, '\P{^Is_Sc= Pauc}', "");
+    Error('\p{Script=:=--OLD_PERMIC}');
+    Error('\P{Script=:=--OLD_PERMIC}');
     Expect(1, 66426, '\p{Script=:\AOld_Permic\z:}', "");;
     Expect(0, 66427, '\p{Script=:\AOld_Permic\z:}', "");;
     Expect(1, 66426, '\p{Script=oldpermic}', "");
@@ -137027,16 +138371,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66427, '\P{^Script=oldpermic}', "");
     Expect(1, 66426, '\p{Script=:\Aoldpermic\z:}', "");;
     Expect(0, 66427, '\p{Script=:\Aoldpermic\z:}', "");;
-    Expect(1, 66426, '\p{Script=  Old_permic}', "");
-    Expect(0, 66426, '\p{^Script=  Old_permic}', "");
-    Expect(0, 66426, '\P{Script=  Old_permic}', "");
-    Expect(1, 66426, '\P{^Script=  Old_permic}', "");
-    Expect(0, 66427, '\p{Script=  Old_permic}', "");
-    Expect(1, 66427, '\p{^Script=  Old_permic}', "");
-    Expect(1, 66427, '\P{Script=  Old_permic}', "");
-    Expect(0, 66427, '\P{^Script=  Old_permic}', "");
-    Error('\p{Sc= :=Perm}');
-    Error('\P{Sc= :=Perm}');
+    Expect(1, 66426, '\p{Script=	OLD_Permic}', "");
+    Expect(0, 66426, '\p{^Script=	OLD_Permic}', "");
+    Expect(0, 66426, '\P{Script=	OLD_Permic}', "");
+    Expect(1, 66426, '\P{^Script=	OLD_Permic}', "");
+    Expect(0, 66427, '\p{Script=	OLD_Permic}', "");
+    Expect(1, 66427, '\p{^Script=	OLD_Permic}', "");
+    Expect(1, 66427, '\P{Script=	OLD_Permic}', "");
+    Expect(0, 66427, '\P{^Script=	OLD_Permic}', "");
+    Error('\p{Sc=/a/PERM}');
+    Error('\P{Sc=/a/PERM}');
     Expect(1, 66426, '\p{Sc=:\APerm\z:}', "");;
     Expect(0, 66427, '\p{Sc=:\APerm\z:}', "");;
     Expect(1, 66426, '\p{Sc=perm}', "");
@@ -137049,34 +138393,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66427, '\P{^Sc=perm}', "");
     Expect(1, 66426, '\p{Sc=:\Aperm\z:}', "");;
     Expect(0, 66427, '\p{Sc=:\Aperm\z:}', "");;
-    Expect(1, 66426, '\p{Sc=  Perm}', "");
-    Expect(0, 66426, '\p{^Sc=  Perm}', "");
-    Expect(0, 66426, '\P{Sc=  Perm}', "");
-    Expect(1, 66426, '\P{^Sc=  Perm}', "");
-    Expect(0, 66427, '\p{Sc=  Perm}', "");
-    Expect(1, 66427, '\p{^Sc=  Perm}', "");
-    Expect(1, 66427, '\P{Sc=  Perm}', "");
-    Expect(0, 66427, '\P{^Sc=  Perm}', "");
-    Error('\p{Is_Script=-/a/Old_permic}');
-    Error('\P{Is_Script=-/a/Old_permic}');
-    Expect(1, 66426, '\p{Is_Script=oldpermic}', "");
-    Expect(0, 66426, '\p{^Is_Script=oldpermic}', "");
-    Expect(0, 66426, '\P{Is_Script=oldpermic}', "");
-    Expect(1, 66426, '\P{^Is_Script=oldpermic}', "");
-    Expect(0, 66427, '\p{Is_Script=oldpermic}', "");
-    Expect(1, 66427, '\p{^Is_Script=oldpermic}', "");
-    Expect(1, 66427, '\P{Is_Script=oldpermic}', "");
-    Expect(0, 66427, '\P{^Is_Script=oldpermic}', "");
-    Expect(1, 66426, '\p{Is_Script= 	old_PERMIC}', "");
-    Expect(0, 66426, '\p{^Is_Script= 	old_PERMIC}', "");
-    Expect(0, 66426, '\P{Is_Script= 	old_PERMIC}', "");
-    Expect(1, 66426, '\P{^Is_Script= 	old_PERMIC}', "");
-    Expect(0, 66427, '\p{Is_Script= 	old_PERMIC}', "");
-    Expect(1, 66427, '\p{^Is_Script= 	old_PERMIC}', "");
-    Expect(1, 66427, '\P{Is_Script= 	old_PERMIC}', "");
-    Expect(0, 66427, '\P{^Is_Script= 	old_PERMIC}', "");
-    Error('\p{Is_Sc=__PERM/a/}');
-    Error('\P{Is_Sc=__PERM/a/}');
+    Expect(1, 66426, '\p{Sc=-perm}', "");
+    Expect(0, 66426, '\p{^Sc=-perm}', "");
+    Expect(0, 66426, '\P{Sc=-perm}', "");
+    Expect(1, 66426, '\P{^Sc=-perm}', "");
+    Expect(0, 66427, '\p{Sc=-perm}', "");
+    Expect(1, 66427, '\p{^Sc=-perm}', "");
+    Expect(1, 66427, '\P{Sc=-perm}', "");
+    Expect(0, 66427, '\P{^Sc=-perm}', "");
+    Error('\p{Is_Script=:=	Old_Permic}');
+    Error('\P{Is_Script=:=	Old_Permic}');
+    Expect(1, 66426, '\p{Is_Script:   oldpermic}', "");
+    Expect(0, 66426, '\p{^Is_Script:   oldpermic}', "");
+    Expect(0, 66426, '\P{Is_Script:   oldpermic}', "");
+    Expect(1, 66426, '\P{^Is_Script:   oldpermic}', "");
+    Expect(0, 66427, '\p{Is_Script:   oldpermic}', "");
+    Expect(1, 66427, '\p{^Is_Script:   oldpermic}', "");
+    Expect(1, 66427, '\P{Is_Script:   oldpermic}', "");
+    Expect(0, 66427, '\P{^Is_Script:   oldpermic}', "");
+    Expect(1, 66426, '\p{Is_Script=-Old_Permic}', "");
+    Expect(0, 66426, '\p{^Is_Script=-Old_Permic}', "");
+    Expect(0, 66426, '\P{Is_Script=-Old_Permic}', "");
+    Expect(1, 66426, '\P{^Is_Script=-Old_Permic}', "");
+    Expect(0, 66427, '\p{Is_Script=-Old_Permic}', "");
+    Expect(1, 66427, '\p{^Is_Script=-Old_Permic}', "");
+    Expect(1, 66427, '\P{Is_Script=-Old_Permic}', "");
+    Expect(0, 66427, '\P{^Is_Script=-Old_Permic}', "");
+    Error('\p{Is_Sc=_	Perm/a/}');
+    Error('\P{Is_Sc=_	Perm/a/}');
     Expect(1, 66426, '\p{Is_Sc=perm}', "");
     Expect(0, 66426, '\p{^Is_Sc=perm}', "");
     Expect(0, 66426, '\P{Is_Sc=perm}', "");
@@ -137085,16 +138429,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66427, '\p{^Is_Sc=perm}', "");
     Expect(1, 66427, '\P{Is_Sc=perm}', "");
     Expect(0, 66427, '\P{^Is_Sc=perm}', "");
-    Expect(1, 66426, '\p{Is_Sc=	 perm}', "");
-    Expect(0, 66426, '\p{^Is_Sc=	 perm}', "");
-    Expect(0, 66426, '\P{Is_Sc=	 perm}', "");
-    Expect(1, 66426, '\P{^Is_Sc=	 perm}', "");
-    Expect(0, 66427, '\p{Is_Sc=	 perm}', "");
-    Expect(1, 66427, '\p{^Is_Sc=	 perm}', "");
-    Expect(1, 66427, '\P{Is_Sc=	 perm}', "");
-    Expect(0, 66427, '\P{^Is_Sc=	 perm}', "");
-    Error('\p{Script=	-PHAGS_PA/a/}');
-    Error('\P{Script=	-PHAGS_PA/a/}');
+    Expect(1, 66426, '\p{Is_Sc=_ Perm}', "");
+    Expect(0, 66426, '\p{^Is_Sc=_ Perm}', "");
+    Expect(0, 66426, '\P{Is_Sc=_ Perm}', "");
+    Expect(1, 66426, '\P{^Is_Sc=_ Perm}', "");
+    Expect(0, 66427, '\p{Is_Sc=_ Perm}', "");
+    Expect(1, 66427, '\p{^Is_Sc=_ Perm}', "");
+    Expect(1, 66427, '\P{Is_Sc=_ Perm}', "");
+    Expect(0, 66427, '\P{^Is_Sc=_ Perm}', "");
+    Error('\p{Script:_-Phags_Pa/a/}');
+    Error('\P{Script:_-Phags_Pa/a/}');
     Expect(1, 43127, '\p{Script=:\APhags_Pa\z:}', "");;
     Expect(0, 43128, '\p{Script=:\APhags_Pa\z:}', "");;
     Expect(1, 43127, '\p{Script=phagspa}', "");
@@ -137107,16 +138451,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43128, '\P{^Script=phagspa}', "");
     Expect(1, 43127, '\p{Script=:\Aphagspa\z:}', "");;
     Expect(0, 43128, '\p{Script=:\Aphagspa\z:}', "");;
-    Expect(1, 43127, '\p{Script= 	Phags_Pa}', "");
-    Expect(0, 43127, '\p{^Script= 	Phags_Pa}', "");
-    Expect(0, 43127, '\P{Script= 	Phags_Pa}', "");
-    Expect(1, 43127, '\P{^Script= 	Phags_Pa}', "");
-    Expect(0, 43128, '\p{Script= 	Phags_Pa}', "");
-    Expect(1, 43128, '\p{^Script= 	Phags_Pa}', "");
-    Expect(1, 43128, '\P{Script= 	Phags_Pa}', "");
-    Expect(0, 43128, '\P{^Script= 	Phags_Pa}', "");
-    Error('\p{Sc:-:=Phag}');
-    Error('\P{Sc:-:=Phag}');
+    Expect(1, 43127, '\p{Script=_PHAGS_Pa}', "");
+    Expect(0, 43127, '\p{^Script=_PHAGS_Pa}', "");
+    Expect(0, 43127, '\P{Script=_PHAGS_Pa}', "");
+    Expect(1, 43127, '\P{^Script=_PHAGS_Pa}', "");
+    Expect(0, 43128, '\p{Script=_PHAGS_Pa}', "");
+    Expect(1, 43128, '\p{^Script=_PHAGS_Pa}', "");
+    Expect(1, 43128, '\P{Script=_PHAGS_Pa}', "");
+    Expect(0, 43128, '\P{^Script=_PHAGS_Pa}', "");
+    Error('\p{Sc:   := _Phag}');
+    Error('\P{Sc:   := _Phag}');
     Expect(1, 43127, '\p{Sc=:\APhag\z:}', "");;
     Expect(0, 43128, '\p{Sc=:\APhag\z:}', "");;
     Expect(1, 43127, '\p{Sc=phag}', "");
@@ -137129,16 +138473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43128, '\P{^Sc=phag}', "");
     Expect(1, 43127, '\p{Sc=:\Aphag\z:}', "");;
     Expect(0, 43128, '\p{Sc=:\Aphag\z:}', "");;
-    Expect(1, 43127, '\p{Sc: -Phag}', "");
-    Expect(0, 43127, '\p{^Sc: -Phag}', "");
-    Expect(0, 43127, '\P{Sc: -Phag}', "");
-    Expect(1, 43127, '\P{^Sc: -Phag}', "");
-    Expect(0, 43128, '\p{Sc: -Phag}', "");
-    Expect(1, 43128, '\p{^Sc: -Phag}', "");
-    Expect(1, 43128, '\P{Sc: -Phag}', "");
-    Expect(0, 43128, '\P{^Sc: -Phag}', "");
-    Error('\p{Is_Script=-_Phags_pa/a/}');
-    Error('\P{Is_Script=-_Phags_pa/a/}');
+    Expect(1, 43127, '\p{Sc:	-PHAG}', "");
+    Expect(0, 43127, '\p{^Sc:	-PHAG}', "");
+    Expect(0, 43127, '\P{Sc:	-PHAG}', "");
+    Expect(1, 43127, '\P{^Sc:	-PHAG}', "");
+    Expect(0, 43128, '\p{Sc:	-PHAG}', "");
+    Expect(1, 43128, '\p{^Sc:	-PHAG}', "");
+    Expect(1, 43128, '\P{Sc:	-PHAG}', "");
+    Expect(0, 43128, '\P{^Sc:	-PHAG}', "");
+    Error('\p{Is_Script:    :=phags_Pa}');
+    Error('\P{Is_Script:    :=phags_Pa}');
     Expect(1, 43127, '\p{Is_Script=phagspa}', "");
     Expect(0, 43127, '\p{^Is_Script=phagspa}', "");
     Expect(0, 43127, '\P{Is_Script=phagspa}', "");
@@ -137147,16 +138491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43128, '\p{^Is_Script=phagspa}', "");
     Expect(1, 43128, '\P{Is_Script=phagspa}', "");
     Expect(0, 43128, '\P{^Is_Script=phagspa}', "");
-    Expect(1, 43127, '\p{Is_Script:	PHAGS_PA}', "");
-    Expect(0, 43127, '\p{^Is_Script:	PHAGS_PA}', "");
-    Expect(0, 43127, '\P{Is_Script:	PHAGS_PA}', "");
-    Expect(1, 43127, '\P{^Is_Script:	PHAGS_PA}', "");
-    Expect(0, 43128, '\p{Is_Script:	PHAGS_PA}', "");
-    Expect(1, 43128, '\p{^Is_Script:	PHAGS_PA}', "");
-    Expect(1, 43128, '\P{Is_Script:	PHAGS_PA}', "");
-    Expect(0, 43128, '\P{^Is_Script:	PHAGS_PA}', "");
-    Error('\p{Is_Sc=--phag:=}');
-    Error('\P{Is_Sc=--phag:=}');
+    Expect(1, 43127, '\p{Is_Script=	-phags_pa}', "");
+    Expect(0, 43127, '\p{^Is_Script=	-phags_pa}', "");
+    Expect(0, 43127, '\P{Is_Script=	-phags_pa}', "");
+    Expect(1, 43127, '\P{^Is_Script=	-phags_pa}', "");
+    Expect(0, 43128, '\p{Is_Script=	-phags_pa}', "");
+    Expect(1, 43128, '\p{^Is_Script=	-phags_pa}', "");
+    Expect(1, 43128, '\P{Is_Script=	-phags_pa}', "");
+    Expect(0, 43128, '\P{^Is_Script=	-phags_pa}', "");
+    Error('\p{Is_Sc=:=	 phag}');
+    Error('\P{Is_Sc=:=	 phag}');
     Expect(1, 43127, '\p{Is_Sc=phag}', "");
     Expect(0, 43127, '\p{^Is_Sc=phag}', "");
     Expect(0, 43127, '\P{Is_Sc=phag}', "");
@@ -137165,16 +138509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43128, '\p{^Is_Sc=phag}', "");
     Expect(1, 43128, '\P{Is_Sc=phag}', "");
     Expect(0, 43128, '\P{^Is_Sc=phag}', "");
-    Expect(1, 43127, '\p{Is_Sc=-Phag}', "");
-    Expect(0, 43127, '\p{^Is_Sc=-Phag}', "");
-    Expect(0, 43127, '\P{Is_Sc=-Phag}', "");
-    Expect(1, 43127, '\P{^Is_Sc=-Phag}', "");
-    Expect(0, 43128, '\p{Is_Sc=-Phag}', "");
-    Expect(1, 43128, '\p{^Is_Sc=-Phag}', "");
-    Expect(1, 43128, '\P{Is_Sc=-Phag}', "");
-    Expect(0, 43128, '\P{^Is_Sc=-Phag}', "");
-    Error('\p{Script= /a/Inscriptional_PAHLAVI}');
-    Error('\P{Script= /a/Inscriptional_PAHLAVI}');
+    Expect(1, 43127, '\p{Is_Sc:__PHAG}', "");
+    Expect(0, 43127, '\p{^Is_Sc:__PHAG}', "");
+    Expect(0, 43127, '\P{Is_Sc:__PHAG}', "");
+    Expect(1, 43127, '\P{^Is_Sc:__PHAG}', "");
+    Expect(0, 43128, '\p{Is_Sc:__PHAG}', "");
+    Expect(1, 43128, '\p{^Is_Sc:__PHAG}', "");
+    Expect(1, 43128, '\P{Is_Sc:__PHAG}', "");
+    Expect(0, 43128, '\P{^Is_Sc:__PHAG}', "");
+    Error('\p{Script=__Inscriptional_PAHLAVI:=}');
+    Error('\P{Script=__Inscriptional_PAHLAVI:=}');
     Expect(1, 68479, '\p{Script=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(0, 68480, '\p{Script=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(1, 68479, '\p{Script=inscriptionalpahlavi}', "");
@@ -137187,16 +138531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68480, '\P{^Script=inscriptionalpahlavi}', "");
     Expect(1, 68479, '\p{Script=:\Ainscriptionalpahlavi\z:}', "");;
     Expect(0, 68480, '\p{Script=:\Ainscriptionalpahlavi\z:}', "");;
-    Expect(1, 68479, '\p{Script=--Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\p{^Script=--Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\P{Script=--Inscriptional_pahlavi}', "");
-    Expect(1, 68479, '\P{^Script=--Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\p{Script=--Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\p{^Script=--Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\P{Script=--Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\P{^Script=--Inscriptional_pahlavi}', "");
-    Error('\p{Sc=:=	Phli}');
-    Error('\P{Sc=:=	Phli}');
+    Expect(1, 68479, '\p{Script=-_Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\p{^Script=-_Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\P{Script=-_Inscriptional_Pahlavi}', "");
+    Expect(1, 68479, '\P{^Script=-_Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\p{Script=-_Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\p{^Script=-_Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\P{Script=-_Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\P{^Script=-_Inscriptional_Pahlavi}', "");
+    Error('\p{Sc= :=Phli}');
+    Error('\P{Sc= :=Phli}');
     Expect(1, 68479, '\p{Sc=:\APhli\z:}', "");;
     Expect(0, 68480, '\p{Sc=:\APhli\z:}', "");;
     Expect(1, 68479, '\p{Sc=phli}', "");
@@ -137209,34 +138553,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68480, '\P{^Sc=phli}', "");
     Expect(1, 68479, '\p{Sc=:\Aphli\z:}', "");;
     Expect(0, 68480, '\p{Sc=:\Aphli\z:}', "");;
-    Expect(1, 68479, '\p{Sc= 	phli}', "");
-    Expect(0, 68479, '\p{^Sc= 	phli}', "");
-    Expect(0, 68479, '\P{Sc= 	phli}', "");
-    Expect(1, 68479, '\P{^Sc= 	phli}', "");
-    Expect(0, 68480, '\p{Sc= 	phli}', "");
-    Expect(1, 68480, '\p{^Sc= 	phli}', "");
-    Expect(1, 68480, '\P{Sc= 	phli}', "");
-    Expect(0, 68480, '\P{^Sc= 	phli}', "");
-    Error('\p{Is_Script=		INSCRIPTIONAL_Pahlavi:=}');
-    Error('\P{Is_Script=		INSCRIPTIONAL_Pahlavi:=}');
-    Expect(1, 68479, '\p{Is_Script:	inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\p{^Is_Script:	inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\P{Is_Script:	inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\P{^Is_Script:	inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\p{Is_Script:	inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\p{^Is_Script:	inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\P{Is_Script:	inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\P{^Is_Script:	inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(0, 68479, '\p{^Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(0, 68479, '\P{Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(1, 68479, '\P{^Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(0, 68480, '\p{Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(1, 68480, '\p{^Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(1, 68480, '\P{Is_Script= _Inscriptional_Pahlavi}', "");
-    Expect(0, 68480, '\P{^Is_Script= _Inscriptional_Pahlavi}', "");
-    Error('\p{Is_Sc=/a/-	Phli}');
-    Error('\P{Is_Sc=/a/-	Phli}');
+    Expect(1, 68479, '\p{Sc=	Phli}', "");
+    Expect(0, 68479, '\p{^Sc=	Phli}', "");
+    Expect(0, 68479, '\P{Sc=	Phli}', "");
+    Expect(1, 68479, '\P{^Sc=	Phli}', "");
+    Expect(0, 68480, '\p{Sc=	Phli}', "");
+    Expect(1, 68480, '\p{^Sc=	Phli}', "");
+    Expect(1, 68480, '\P{Sc=	Phli}', "");
+    Expect(0, 68480, '\P{^Sc=	Phli}', "");
+    Error('\p{Is_Script=- Inscriptional_pahlavi/a/}');
+    Error('\P{Is_Script=- Inscriptional_pahlavi/a/}');
+    Expect(1, 68479, '\p{Is_Script=inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\p{^Is_Script=inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\P{Is_Script=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\P{^Is_Script=inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\p{Is_Script=inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\p{^Is_Script=inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\P{Is_Script=inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\P{^Is_Script=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\p{Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(0, 68479, '\p{^Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(0, 68479, '\P{Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(1, 68479, '\P{^Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(0, 68480, '\p{Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(1, 68480, '\p{^Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(1, 68480, '\P{Is_Script=	-Inscriptional_pahlavi}', "");
+    Expect(0, 68480, '\P{^Is_Script=	-Inscriptional_pahlavi}', "");
+    Error('\p{Is_Sc=/a/_ phli}');
+    Error('\P{Is_Sc=/a/_ phli}');
     Expect(1, 68479, '\p{Is_Sc=phli}', "");
     Expect(0, 68479, '\p{^Is_Sc=phli}', "");
     Expect(0, 68479, '\P{Is_Sc=phli}', "");
@@ -137245,38 +138589,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68480, '\p{^Is_Sc=phli}', "");
     Expect(1, 68480, '\P{Is_Sc=phli}', "");
     Expect(0, 68480, '\P{^Is_Sc=phli}', "");
-    Expect(1, 68479, '\p{Is_Sc= _phli}', "");
-    Expect(0, 68479, '\p{^Is_Sc= _phli}', "");
-    Expect(0, 68479, '\P{Is_Sc= _phli}', "");
-    Expect(1, 68479, '\P{^Is_Sc= _phli}', "");
-    Expect(0, 68480, '\p{Is_Sc= _phli}', "");
-    Expect(1, 68480, '\p{^Is_Sc= _phli}', "");
-    Expect(1, 68480, '\P{Is_Sc= _phli}', "");
-    Expect(0, 68480, '\P{^Is_Sc= _phli}', "");
-    Error('\p{Script=psalter_Pahlavi:=}');
-    Error('\P{Script=psalter_Pahlavi:=}');
+    Expect(1, 68479, '\p{Is_Sc=_	PHLI}', "");
+    Expect(0, 68479, '\p{^Is_Sc=_	PHLI}', "");
+    Expect(0, 68479, '\P{Is_Sc=_	PHLI}', "");
+    Expect(1, 68479, '\P{^Is_Sc=_	PHLI}', "");
+    Expect(0, 68480, '\p{Is_Sc=_	PHLI}', "");
+    Expect(1, 68480, '\p{^Is_Sc=_	PHLI}', "");
+    Expect(1, 68480, '\P{Is_Sc=_	PHLI}', "");
+    Expect(0, 68480, '\P{^Is_Sc=_	PHLI}', "");
+    Error('\p{Script=/a/	psalter_PAHLAVI}');
+    Error('\P{Script=/a/	psalter_PAHLAVI}');
     Expect(1, 68527, '\p{Script=:\APsalter_Pahlavi\z:}', "");;
     Expect(0, 68528, '\p{Script=:\APsalter_Pahlavi\z:}', "");;
-    Expect(1, 68527, '\p{Script=psalterpahlavi}', "");
-    Expect(0, 68527, '\p{^Script=psalterpahlavi}', "");
-    Expect(0, 68527, '\P{Script=psalterpahlavi}', "");
-    Expect(1, 68527, '\P{^Script=psalterpahlavi}', "");
-    Expect(0, 68528, '\p{Script=psalterpahlavi}', "");
-    Expect(1, 68528, '\p{^Script=psalterpahlavi}', "");
-    Expect(1, 68528, '\P{Script=psalterpahlavi}', "");
-    Expect(0, 68528, '\P{^Script=psalterpahlavi}', "");
+    Expect(1, 68527, '\p{Script:psalterpahlavi}', "");
+    Expect(0, 68527, '\p{^Script:psalterpahlavi}', "");
+    Expect(0, 68527, '\P{Script:psalterpahlavi}', "");
+    Expect(1, 68527, '\P{^Script:psalterpahlavi}', "");
+    Expect(0, 68528, '\p{Script:psalterpahlavi}', "");
+    Expect(1, 68528, '\p{^Script:psalterpahlavi}', "");
+    Expect(1, 68528, '\P{Script:psalterpahlavi}', "");
+    Expect(0, 68528, '\P{^Script:psalterpahlavi}', "");
     Expect(1, 68527, '\p{Script=:\Apsalterpahlavi\z:}', "");;
     Expect(0, 68528, '\p{Script=:\Apsalterpahlavi\z:}', "");;
-    Expect(1, 68527, '\p{Script=--Psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^Script=--Psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{Script=--Psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^Script=--Psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{Script=--Psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^Script=--Psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{Script=--Psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^Script=--Psalter_pahlavi}', "");
-    Error('\p{Sc=:=_-Phlp}');
-    Error('\P{Sc=:=_-Phlp}');
+    Expect(1, 68527, '\p{Script=- PSALTER_Pahlavi}', "");
+    Expect(0, 68527, '\p{^Script=- PSALTER_Pahlavi}', "");
+    Expect(0, 68527, '\P{Script=- PSALTER_Pahlavi}', "");
+    Expect(1, 68527, '\P{^Script=- PSALTER_Pahlavi}', "");
+    Expect(0, 68528, '\p{Script=- PSALTER_Pahlavi}', "");
+    Expect(1, 68528, '\p{^Script=- PSALTER_Pahlavi}', "");
+    Expect(1, 68528, '\P{Script=- PSALTER_Pahlavi}', "");
+    Expect(0, 68528, '\P{^Script=- PSALTER_Pahlavi}', "");
+    Error('\p{Sc: 	-Phlp/a/}');
+    Error('\P{Sc: 	-Phlp/a/}');
     Expect(1, 68527, '\p{Sc=:\APhlp\z:}', "");;
     Expect(0, 68528, '\p{Sc=:\APhlp\z:}', "");;
     Expect(1, 68527, '\p{Sc=phlp}', "");
@@ -137289,34 +138633,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68528, '\P{^Sc=phlp}', "");
     Expect(1, 68527, '\p{Sc=:\Aphlp\z:}', "");;
     Expect(0, 68528, '\p{Sc=:\Aphlp\z:}', "");;
-    Expect(1, 68527, '\p{Sc:   		Phlp}', "");
-    Expect(0, 68527, '\p{^Sc:   		Phlp}', "");
-    Expect(0, 68527, '\P{Sc:   		Phlp}', "");
-    Expect(1, 68527, '\P{^Sc:   		Phlp}', "");
-    Expect(0, 68528, '\p{Sc:   		Phlp}', "");
-    Expect(1, 68528, '\p{^Sc:   		Phlp}', "");
-    Expect(1, 68528, '\P{Sc:   		Phlp}', "");
-    Expect(0, 68528, '\P{^Sc:   		Phlp}', "");
-    Error('\p{Is_Script= PSALTER_Pahlavi:=}');
-    Error('\P{Is_Script= PSALTER_Pahlavi:=}');
-    Expect(1, 68527, '\p{Is_Script:   psalterpahlavi}', "");
-    Expect(0, 68527, '\p{^Is_Script:   psalterpahlavi}', "");
-    Expect(0, 68527, '\P{Is_Script:   psalterpahlavi}', "");
-    Expect(1, 68527, '\P{^Is_Script:   psalterpahlavi}', "");
-    Expect(0, 68528, '\p{Is_Script:   psalterpahlavi}', "");
-    Expect(1, 68528, '\p{^Is_Script:   psalterpahlavi}', "");
-    Expect(1, 68528, '\P{Is_Script:   psalterpahlavi}', "");
-    Expect(0, 68528, '\P{^Is_Script:   psalterpahlavi}', "");
-    Expect(1, 68527, '\p{Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(0, 68527, '\p{^Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(0, 68527, '\P{Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(1, 68527, '\P{^Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(0, 68528, '\p{Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(1, 68528, '\p{^Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(1, 68528, '\P{Is_Script=_	PSALTER_Pahlavi}', "");
-    Expect(0, 68528, '\P{^Is_Script=_	PSALTER_Pahlavi}', "");
-    Error('\p{Is_Sc=	phlp:=}');
-    Error('\P{Is_Sc=	phlp:=}');
+    Expect(1, 68527, '\p{Sc=-PHLP}', "");
+    Expect(0, 68527, '\p{^Sc=-PHLP}', "");
+    Expect(0, 68527, '\P{Sc=-PHLP}', "");
+    Expect(1, 68527, '\P{^Sc=-PHLP}', "");
+    Expect(0, 68528, '\p{Sc=-PHLP}', "");
+    Expect(1, 68528, '\p{^Sc=-PHLP}', "");
+    Expect(1, 68528, '\P{Sc=-PHLP}', "");
+    Expect(0, 68528, '\P{^Sc=-PHLP}', "");
+    Error('\p{Is_Script=/a/ psalter_pahlavi}');
+    Error('\P{Is_Script=/a/ psalter_pahlavi}');
+    Expect(1, 68527, '\p{Is_Script=psalterpahlavi}', "");
+    Expect(0, 68527, '\p{^Is_Script=psalterpahlavi}', "");
+    Expect(0, 68527, '\P{Is_Script=psalterpahlavi}', "");
+    Expect(1, 68527, '\P{^Is_Script=psalterpahlavi}', "");
+    Expect(0, 68528, '\p{Is_Script=psalterpahlavi}', "");
+    Expect(1, 68528, '\p{^Is_Script=psalterpahlavi}', "");
+    Expect(1, 68528, '\P{Is_Script=psalterpahlavi}', "");
+    Expect(0, 68528, '\P{^Is_Script=psalterpahlavi}', "");
+    Expect(1, 68527, '\p{Is_Script= psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\p{^Is_Script= psalter_PAHLAVI}', "");
+    Expect(0, 68527, '\P{Is_Script= psalter_PAHLAVI}', "");
+    Expect(1, 68527, '\P{^Is_Script= psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\p{Is_Script= psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\p{^Is_Script= psalter_PAHLAVI}', "");
+    Expect(1, 68528, '\P{Is_Script= psalter_PAHLAVI}', "");
+    Expect(0, 68528, '\P{^Is_Script= psalter_PAHLAVI}', "");
+    Error('\p{Is_Sc::=_Phlp}');
+    Error('\P{Is_Sc::=_Phlp}');
     Expect(1, 68527, '\p{Is_Sc=phlp}', "");
     Expect(0, 68527, '\p{^Is_Sc=phlp}', "");
     Expect(0, 68527, '\P{Is_Sc=phlp}', "");
@@ -137325,52 +138669,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68528, '\p{^Is_Sc=phlp}', "");
     Expect(1, 68528, '\P{Is_Sc=phlp}', "");
     Expect(0, 68528, '\P{^Is_Sc=phlp}', "");
-    Expect(1, 68527, '\p{Is_Sc=_-Phlp}', "");
-    Expect(0, 68527, '\p{^Is_Sc=_-Phlp}', "");
-    Expect(0, 68527, '\P{Is_Sc=_-Phlp}', "");
-    Expect(1, 68527, '\P{^Is_Sc=_-Phlp}', "");
-    Expect(0, 68528, '\p{Is_Sc=_-Phlp}', "");
-    Expect(1, 68528, '\p{^Is_Sc=_-Phlp}', "");
-    Expect(1, 68528, '\P{Is_Sc=_-Phlp}', "");
-    Expect(0, 68528, '\P{^Is_Sc=_-Phlp}', "");
-    Error('\p{Script=-/a/phoenician}');
-    Error('\P{Script=-/a/phoenician}');
+    Expect(1, 68527, '\p{Is_Sc= PHLP}', "");
+    Expect(0, 68527, '\p{^Is_Sc= PHLP}', "");
+    Expect(0, 68527, '\P{Is_Sc= PHLP}', "");
+    Expect(1, 68527, '\P{^Is_Sc= PHLP}', "");
+    Expect(0, 68528, '\p{Is_Sc= PHLP}', "");
+    Expect(1, 68528, '\p{^Is_Sc= PHLP}', "");
+    Expect(1, 68528, '\P{Is_Sc= PHLP}', "");
+    Expect(0, 68528, '\P{^Is_Sc= PHLP}', "");
+    Error('\p{Script=	-phoenician:=}');
+    Error('\P{Script=	-phoenician:=}');
     Expect(1, 67871, '\p{Script=:\APhoenician\z:}', "");;
     Expect(0, 67872, '\p{Script=:\APhoenician\z:}', "");;
-    Expect(1, 67871, '\p{Script:phoenician}', "");
-    Expect(0, 67871, '\p{^Script:phoenician}', "");
-    Expect(0, 67871, '\P{Script:phoenician}', "");
-    Expect(1, 67871, '\P{^Script:phoenician}', "");
-    Expect(0, 67872, '\p{Script:phoenician}', "");
-    Expect(1, 67872, '\p{^Script:phoenician}', "");
-    Expect(1, 67872, '\P{Script:phoenician}', "");
-    Expect(0, 67872, '\P{^Script:phoenician}', "");
+    Expect(1, 67871, '\p{Script=phoenician}', "");
+    Expect(0, 67871, '\p{^Script=phoenician}', "");
+    Expect(0, 67871, '\P{Script=phoenician}', "");
+    Expect(1, 67871, '\P{^Script=phoenician}', "");
+    Expect(0, 67872, '\p{Script=phoenician}', "");
+    Expect(1, 67872, '\p{^Script=phoenician}', "");
+    Expect(1, 67872, '\P{Script=phoenician}', "");
+    Expect(0, 67872, '\P{^Script=phoenician}', "");
     Expect(1, 67871, '\p{Script=:\Aphoenician\z:}', "");;
     Expect(0, 67872, '\p{Script=:\Aphoenician\z:}', "");;
-    Error('\p{Sc=-Phnx/a/}');
-    Error('\P{Sc=-Phnx/a/}');
+    Expect(1, 67871, '\p{Script=--Phoenician}', "");
+    Expect(0, 67871, '\p{^Script=--Phoenician}', "");
+    Expect(0, 67871, '\P{Script=--Phoenician}', "");
+    Expect(1, 67871, '\P{^Script=--Phoenician}', "");
+    Expect(0, 67872, '\p{Script=--Phoenician}', "");
+    Expect(1, 67872, '\p{^Script=--Phoenician}', "");
+    Expect(1, 67872, '\P{Script=--Phoenician}', "");
+    Expect(0, 67872, '\P{^Script=--Phoenician}', "");
+    Error('\p{Sc=- phnx:=}');
+    Error('\P{Sc=- phnx:=}');
     Expect(1, 67871, '\p{Sc=:\APhnx\z:}', "");;
     Expect(0, 67872, '\p{Sc=:\APhnx\z:}', "");;
-    Expect(1, 67871, '\p{Sc:phnx}', "");
-    Expect(0, 67871, '\p{^Sc:phnx}', "");
-    Expect(0, 67871, '\P{Sc:phnx}', "");
-    Expect(1, 67871, '\P{^Sc:phnx}', "");
-    Expect(0, 67872, '\p{Sc:phnx}', "");
-    Expect(1, 67872, '\p{^Sc:phnx}', "");
-    Expect(1, 67872, '\P{Sc:phnx}', "");
-    Expect(0, 67872, '\P{^Sc:phnx}', "");
+    Expect(1, 67871, '\p{Sc=phnx}', "");
+    Expect(0, 67871, '\p{^Sc=phnx}', "");
+    Expect(0, 67871, '\P{Sc=phnx}', "");
+    Expect(1, 67871, '\P{^Sc=phnx}', "");
+    Expect(0, 67872, '\p{Sc=phnx}', "");
+    Expect(1, 67872, '\p{^Sc=phnx}', "");
+    Expect(1, 67872, '\P{Sc=phnx}', "");
+    Expect(0, 67872, '\P{^Sc=phnx}', "");
     Expect(1, 67871, '\p{Sc=:\Aphnx\z:}', "");;
     Expect(0, 67872, '\p{Sc=:\Aphnx\z:}', "");;
-    Expect(1, 67871, '\p{Sc= PHNX}', "");
-    Expect(0, 67871, '\p{^Sc= PHNX}', "");
-    Expect(0, 67871, '\P{Sc= PHNX}', "");
-    Expect(1, 67871, '\P{^Sc= PHNX}', "");
-    Expect(0, 67872, '\p{Sc= PHNX}', "");
-    Expect(1, 67872, '\p{^Sc= PHNX}', "");
-    Expect(1, 67872, '\P{Sc= PHNX}', "");
-    Expect(0, 67872, '\P{^Sc= PHNX}', "");
-    Error('\p{Is_Script=_ PHOENICIAN/a/}');
-    Error('\P{Is_Script=_ PHOENICIAN/a/}');
+    Expect(1, 67871, '\p{Sc=	Phnx}', "");
+    Expect(0, 67871, '\p{^Sc=	Phnx}', "");
+    Expect(0, 67871, '\P{Sc=	Phnx}', "");
+    Expect(1, 67871, '\P{^Sc=	Phnx}', "");
+    Expect(0, 67872, '\p{Sc=	Phnx}', "");
+    Expect(1, 67872, '\p{^Sc=	Phnx}', "");
+    Expect(1, 67872, '\P{Sc=	Phnx}', "");
+    Expect(0, 67872, '\P{^Sc=	Phnx}', "");
+    Error('\p{Is_Script=	Phoenician:=}');
+    Error('\P{Is_Script=	Phoenician:=}');
     Expect(1, 67871, '\p{Is_Script=phoenician}', "");
     Expect(0, 67871, '\p{^Is_Script=phoenician}', "");
     Expect(0, 67871, '\P{Is_Script=phoenician}', "");
@@ -137379,16 +138731,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67872, '\p{^Is_Script=phoenician}', "");
     Expect(1, 67872, '\P{Is_Script=phoenician}', "");
     Expect(0, 67872, '\P{^Is_Script=phoenician}', "");
-    Expect(1, 67871, '\p{Is_Script=		phoenician}', "");
-    Expect(0, 67871, '\p{^Is_Script=		phoenician}', "");
-    Expect(0, 67871, '\P{Is_Script=		phoenician}', "");
-    Expect(1, 67871, '\P{^Is_Script=		phoenician}', "");
-    Expect(0, 67872, '\p{Is_Script=		phoenician}', "");
-    Expect(1, 67872, '\p{^Is_Script=		phoenician}', "");
-    Expect(1, 67872, '\P{Is_Script=		phoenician}', "");
-    Expect(0, 67872, '\P{^Is_Script=		phoenician}', "");
-    Error('\p{Is_Sc= :=Phnx}');
-    Error('\P{Is_Sc= :=Phnx}');
+    Expect(1, 67871, '\p{Is_Script=	phoenician}', "");
+    Expect(0, 67871, '\p{^Is_Script=	phoenician}', "");
+    Expect(0, 67871, '\P{Is_Script=	phoenician}', "");
+    Expect(1, 67871, '\P{^Is_Script=	phoenician}', "");
+    Expect(0, 67872, '\p{Is_Script=	phoenician}', "");
+    Expect(1, 67872, '\p{^Is_Script=	phoenician}', "");
+    Expect(1, 67872, '\P{Is_Script=	phoenician}', "");
+    Expect(0, 67872, '\P{^Is_Script=	phoenician}', "");
+    Error('\p{Is_Sc:	/a/__PHNX}');
+    Error('\P{Is_Sc:	/a/__PHNX}');
     Expect(1, 67871, '\p{Is_Sc=phnx}', "");
     Expect(0, 67871, '\p{^Is_Sc=phnx}', "");
     Expect(0, 67871, '\P{Is_Sc=phnx}', "");
@@ -137397,16 +138749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67872, '\p{^Is_Sc=phnx}', "");
     Expect(1, 67872, '\P{Is_Sc=phnx}', "");
     Expect(0, 67872, '\P{^Is_Sc=phnx}', "");
-    Expect(1, 67871, '\p{Is_Sc=_-Phnx}', "");
-    Expect(0, 67871, '\p{^Is_Sc=_-Phnx}', "");
-    Expect(0, 67871, '\P{Is_Sc=_-Phnx}', "");
-    Expect(1, 67871, '\P{^Is_Sc=_-Phnx}', "");
-    Expect(0, 67872, '\p{Is_Sc=_-Phnx}', "");
-    Expect(1, 67872, '\p{^Is_Sc=_-Phnx}', "");
-    Expect(1, 67872, '\P{Is_Sc=_-Phnx}', "");
-    Expect(0, 67872, '\P{^Is_Sc=_-Phnx}', "");
-    Error('\p{Script=_/a/MIAO}');
-    Error('\P{Script=_/a/MIAO}');
+    Expect(1, 67871, '\p{Is_Sc=--phnx}', "");
+    Expect(0, 67871, '\p{^Is_Sc=--phnx}', "");
+    Expect(0, 67871, '\P{Is_Sc=--phnx}', "");
+    Expect(1, 67871, '\P{^Is_Sc=--phnx}', "");
+    Expect(0, 67872, '\p{Is_Sc=--phnx}', "");
+    Expect(1, 67872, '\p{^Is_Sc=--phnx}', "");
+    Expect(1, 67872, '\P{Is_Sc=--phnx}', "");
+    Expect(0, 67872, '\P{^Is_Sc=--phnx}', "");
+    Error('\p{Script=-/a/Miao}');
+    Error('\P{Script=-/a/Miao}');
     Expect(1, 94111, '\p{Script=:\AMiao\z:}', "");;
     Expect(0, 94112, '\p{Script=:\AMiao\z:}', "");;
     Expect(1, 94111, '\p{Script=miao}', "");
@@ -137419,16 +138771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 94112, '\P{^Script=miao}', "");
     Expect(1, 94111, '\p{Script=:\Amiao\z:}', "");;
     Expect(0, 94112, '\p{Script=:\Amiao\z:}', "");;
-    Expect(1, 94111, '\p{Script=_-Miao}', "");
-    Expect(0, 94111, '\p{^Script=_-Miao}', "");
-    Expect(0, 94111, '\P{Script=_-Miao}', "");
-    Expect(1, 94111, '\P{^Script=_-Miao}', "");
-    Expect(0, 94112, '\p{Script=_-Miao}', "");
-    Expect(1, 94112, '\p{^Script=_-Miao}', "");
-    Expect(1, 94112, '\P{Script=_-Miao}', "");
-    Expect(0, 94112, '\P{^Script=_-Miao}', "");
-    Error('\p{Sc=-_Plrd:=}');
-    Error('\P{Sc=-_Plrd:=}');
+    Expect(1, 94111, '\p{Script=		Miao}', "");
+    Expect(0, 94111, '\p{^Script=		Miao}', "");
+    Expect(0, 94111, '\P{Script=		Miao}', "");
+    Expect(1, 94111, '\P{^Script=		Miao}', "");
+    Expect(0, 94112, '\p{Script=		Miao}', "");
+    Expect(1, 94112, '\p{^Script=		Miao}', "");
+    Expect(1, 94112, '\P{Script=		Miao}', "");
+    Expect(0, 94112, '\P{^Script=		Miao}', "");
+    Error('\p{Sc:	_Plrd:=}');
+    Error('\P{Sc:	_Plrd:=}');
     Expect(1, 94111, '\p{Sc=:\APlrd\z:}', "");;
     Expect(0, 94112, '\p{Sc=:\APlrd\z:}', "");;
     Expect(1, 94111, '\p{Sc=plrd}', "");
@@ -137441,16 +138793,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 94112, '\P{^Sc=plrd}', "");
     Expect(1, 94111, '\p{Sc=:\Aplrd\z:}', "");;
     Expect(0, 94112, '\p{Sc=:\Aplrd\z:}', "");;
-    Expect(1, 94111, '\p{Sc=Plrd}', "");
-    Expect(0, 94111, '\p{^Sc=Plrd}', "");
-    Expect(0, 94111, '\P{Sc=Plrd}', "");
-    Expect(1, 94111, '\P{^Sc=Plrd}', "");
-    Expect(0, 94112, '\p{Sc=Plrd}', "");
-    Expect(1, 94112, '\p{^Sc=Plrd}', "");
-    Expect(1, 94112, '\P{Sc=Plrd}', "");
-    Expect(0, 94112, '\P{^Sc=Plrd}', "");
-    Error('\p{Is_Script=/a/		Miao}');
-    Error('\P{Is_Script=/a/		Miao}');
+    Expect(1, 94111, '\p{Sc=_	Plrd}', "");
+    Expect(0, 94111, '\p{^Sc=_	Plrd}', "");
+    Expect(0, 94111, '\P{Sc=_	Plrd}', "");
+    Expect(1, 94111, '\P{^Sc=_	Plrd}', "");
+    Expect(0, 94112, '\p{Sc=_	Plrd}', "");
+    Expect(1, 94112, '\p{^Sc=_	Plrd}', "");
+    Expect(1, 94112, '\P{Sc=_	Plrd}', "");
+    Expect(0, 94112, '\P{^Sc=_	Plrd}', "");
+    Error('\p{Is_Script=	miao/a/}');
+    Error('\P{Is_Script=	miao/a/}');
     Expect(1, 94111, '\p{Is_Script=miao}', "");
     Expect(0, 94111, '\p{^Is_Script=miao}', "");
     Expect(0, 94111, '\P{Is_Script=miao}', "");
@@ -137459,16 +138811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 94112, '\p{^Is_Script=miao}', "");
     Expect(1, 94112, '\P{Is_Script=miao}', "");
     Expect(0, 94112, '\P{^Is_Script=miao}', "");
-    Expect(1, 94111, '\p{Is_Script=_-Miao}', "");
-    Expect(0, 94111, '\p{^Is_Script=_-Miao}', "");
-    Expect(0, 94111, '\P{Is_Script=_-Miao}', "");
-    Expect(1, 94111, '\P{^Is_Script=_-Miao}', "");
-    Expect(0, 94112, '\p{Is_Script=_-Miao}', "");
-    Expect(1, 94112, '\p{^Is_Script=_-Miao}', "");
-    Expect(1, 94112, '\P{Is_Script=_-Miao}', "");
-    Expect(0, 94112, '\P{^Is_Script=_-Miao}', "");
-    Error('\p{Is_Sc=_Plrd/a/}');
-    Error('\P{Is_Sc=_Plrd/a/}');
+    Expect(1, 94111, '\p{Is_Script=_miao}', "");
+    Expect(0, 94111, '\p{^Is_Script=_miao}', "");
+    Expect(0, 94111, '\P{Is_Script=_miao}', "");
+    Expect(1, 94111, '\P{^Is_Script=_miao}', "");
+    Expect(0, 94112, '\p{Is_Script=_miao}', "");
+    Expect(1, 94112, '\p{^Is_Script=_miao}', "");
+    Expect(1, 94112, '\P{Is_Script=_miao}', "");
+    Expect(0, 94112, '\P{^Is_Script=_miao}', "");
+    Error('\p{Is_Sc=/a/-	Plrd}');
+    Error('\P{Is_Sc=/a/-	Plrd}');
     Expect(1, 94111, '\p{Is_Sc=plrd}', "");
     Expect(0, 94111, '\p{^Is_Sc=plrd}', "");
     Expect(0, 94111, '\P{Is_Sc=plrd}', "");
@@ -137477,16 +138829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 94112, '\p{^Is_Sc=plrd}', "");
     Expect(1, 94112, '\P{Is_Sc=plrd}', "");
     Expect(0, 94112, '\P{^Is_Sc=plrd}', "");
-    Expect(1, 94111, '\p{Is_Sc=- Plrd}', "");
-    Expect(0, 94111, '\p{^Is_Sc=- Plrd}', "");
-    Expect(0, 94111, '\P{Is_Sc=- Plrd}', "");
-    Expect(1, 94111, '\P{^Is_Sc=- Plrd}', "");
-    Expect(0, 94112, '\p{Is_Sc=- Plrd}', "");
-    Expect(1, 94112, '\p{^Is_Sc=- Plrd}', "");
-    Expect(1, 94112, '\P{Is_Sc=- Plrd}', "");
-    Expect(0, 94112, '\P{^Is_Sc=- Plrd}', "");
-    Error('\p{Script=-:=Inscriptional_Parthian}');
-    Error('\P{Script=-:=Inscriptional_Parthian}');
+    Expect(1, 94111, '\p{Is_Sc: -Plrd}', "");
+    Expect(0, 94111, '\p{^Is_Sc: -Plrd}', "");
+    Expect(0, 94111, '\P{Is_Sc: -Plrd}', "");
+    Expect(1, 94111, '\P{^Is_Sc: -Plrd}', "");
+    Expect(0, 94112, '\p{Is_Sc: -Plrd}', "");
+    Expect(1, 94112, '\p{^Is_Sc: -Plrd}', "");
+    Expect(1, 94112, '\P{Is_Sc: -Plrd}', "");
+    Expect(0, 94112, '\P{^Is_Sc: -Plrd}', "");
+    Error('\p{Script=	_inscriptional_PARTHIAN:=}');
+    Error('\P{Script=	_inscriptional_PARTHIAN:=}');
     Expect(1, 68447, '\p{Script=:\AInscriptional_Parthian\z:}', "");;
     Expect(0, 68448, '\p{Script=:\AInscriptional_Parthian\z:}', "");;
     Expect(1, 68447, '\p{Script=inscriptionalparthian}', "");
@@ -137499,16 +138851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68448, '\P{^Script=inscriptionalparthian}', "");
     Expect(1, 68447, '\p{Script=:\Ainscriptionalparthian\z:}', "");;
     Expect(0, 68448, '\p{Script=:\Ainscriptionalparthian\z:}', "");;
-    Expect(1, 68447, '\p{Script= Inscriptional_Parthian}', "");
-    Expect(0, 68447, '\p{^Script= Inscriptional_Parthian}', "");
-    Expect(0, 68447, '\P{Script= Inscriptional_Parthian}', "");
-    Expect(1, 68447, '\P{^Script= Inscriptional_Parthian}', "");
-    Expect(0, 68448, '\p{Script= Inscriptional_Parthian}', "");
-    Expect(1, 68448, '\p{^Script= Inscriptional_Parthian}', "");
-    Expect(1, 68448, '\P{Script= Inscriptional_Parthian}', "");
-    Expect(0, 68448, '\P{^Script= Inscriptional_Parthian}', "");
-    Error('\p{Sc=/a/Prti}');
-    Error('\P{Sc=/a/Prti}');
+    Expect(1, 68447, '\p{Script= Inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\p{^Script= Inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\P{Script= Inscriptional_PARTHIAN}', "");
+    Expect(1, 68447, '\P{^Script= Inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\p{Script= Inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\p{^Script= Inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\P{Script= Inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\P{^Script= Inscriptional_PARTHIAN}', "");
+    Error('\p{Sc: _Prti:=}');
+    Error('\P{Sc: _Prti:=}');
     Expect(1, 68447, '\p{Sc=:\APrti\z:}', "");;
     Expect(0, 68448, '\p{Sc=:\APrti\z:}', "");;
     Expect(1, 68447, '\p{Sc=prti}', "");
@@ -137521,16 +138873,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68448, '\P{^Sc=prti}', "");
     Expect(1, 68447, '\p{Sc=:\Aprti\z:}', "");;
     Expect(0, 68448, '\p{Sc=:\Aprti\z:}', "");;
-    Expect(1, 68447, '\p{Sc=-PRTI}', "");
-    Expect(0, 68447, '\p{^Sc=-PRTI}', "");
-    Expect(0, 68447, '\P{Sc=-PRTI}', "");
-    Expect(1, 68447, '\P{^Sc=-PRTI}', "");
-    Expect(0, 68448, '\p{Sc=-PRTI}', "");
-    Expect(1, 68448, '\p{^Sc=-PRTI}', "");
-    Expect(1, 68448, '\P{Sc=-PRTI}', "");
-    Expect(0, 68448, '\P{^Sc=-PRTI}', "");
-    Error('\p{Is_Script= inscriptional_parthian:=}');
-    Error('\P{Is_Script= inscriptional_parthian:=}');
+    Expect(1, 68447, '\p{Sc=- PRTI}', "");
+    Expect(0, 68447, '\p{^Sc=- PRTI}', "");
+    Expect(0, 68447, '\P{Sc=- PRTI}', "");
+    Expect(1, 68447, '\P{^Sc=- PRTI}', "");
+    Expect(0, 68448, '\p{Sc=- PRTI}', "");
+    Expect(1, 68448, '\p{^Sc=- PRTI}', "");
+    Expect(1, 68448, '\P{Sc=- PRTI}', "");
+    Expect(0, 68448, '\P{^Sc=- PRTI}', "");
+    Error('\p{Is_Script=	:=INSCRIPTIONAL_Parthian}');
+    Error('\P{Is_Script=	:=INSCRIPTIONAL_Parthian}');
     Expect(1, 68447, '\p{Is_Script=inscriptionalparthian}', "");
     Expect(0, 68447, '\p{^Is_Script=inscriptionalparthian}', "");
     Expect(0, 68447, '\P{Is_Script=inscriptionalparthian}', "");
@@ -137539,34 +138891,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68448, '\p{^Is_Script=inscriptionalparthian}', "");
     Expect(1, 68448, '\P{Is_Script=inscriptionalparthian}', "");
     Expect(0, 68448, '\P{^Is_Script=inscriptionalparthian}', "");
-    Expect(1, 68447, '\p{Is_Script=_inscriptional_parthian}', "");
-    Expect(0, 68447, '\p{^Is_Script=_inscriptional_parthian}', "");
-    Expect(0, 68447, '\P{Is_Script=_inscriptional_parthian}', "");
-    Expect(1, 68447, '\P{^Is_Script=_inscriptional_parthian}', "");
-    Expect(0, 68448, '\p{Is_Script=_inscriptional_parthian}', "");
-    Expect(1, 68448, '\p{^Is_Script=_inscriptional_parthian}', "");
-    Expect(1, 68448, '\P{Is_Script=_inscriptional_parthian}', "");
-    Expect(0, 68448, '\P{^Is_Script=_inscriptional_parthian}', "");
-    Error('\p{Is_Sc=:=	PRTI}');
-    Error('\P{Is_Sc=:=	PRTI}');
-    Expect(1, 68447, '\p{Is_Sc:   prti}', "");
-    Expect(0, 68447, '\p{^Is_Sc:   prti}', "");
-    Expect(0, 68447, '\P{Is_Sc:   prti}', "");
-    Expect(1, 68447, '\P{^Is_Sc:   prti}', "");
-    Expect(0, 68448, '\p{Is_Sc:   prti}', "");
-    Expect(1, 68448, '\p{^Is_Sc:   prti}', "");
-    Expect(1, 68448, '\P{Is_Sc:   prti}', "");
-    Expect(0, 68448, '\P{^Is_Sc:   prti}', "");
-    Expect(1, 68447, '\p{Is_Sc=PRTI}', "");
-    Expect(0, 68447, '\p{^Is_Sc=PRTI}', "");
-    Expect(0, 68447, '\P{Is_Sc=PRTI}', "");
-    Expect(1, 68447, '\P{^Is_Sc=PRTI}', "");
-    Expect(0, 68448, '\p{Is_Sc=PRTI}', "");
-    Expect(1, 68448, '\p{^Is_Sc=PRTI}', "");
-    Expect(1, 68448, '\P{Is_Sc=PRTI}', "");
-    Expect(0, 68448, '\P{^Is_Sc=PRTI}', "");
-    Error('\p{Script:/a/_-REJANG}');
-    Error('\P{Script:/a/_-REJANG}');
+    Expect(1, 68447, '\p{Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(0, 68447, '\p{^Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(0, 68447, '\P{Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(1, 68447, '\P{^Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(0, 68448, '\p{Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(1, 68448, '\p{^Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(1, 68448, '\P{Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Expect(0, 68448, '\P{^Is_Script=-	INSCRIPTIONAL_parthian}', "");
+    Error('\p{Is_Sc=:= -PRTI}');
+    Error('\P{Is_Sc=:= -PRTI}');
+    Expect(1, 68447, '\p{Is_Sc:prti}', "");
+    Expect(0, 68447, '\p{^Is_Sc:prti}', "");
+    Expect(0, 68447, '\P{Is_Sc:prti}', "");
+    Expect(1, 68447, '\P{^Is_Sc:prti}', "");
+    Expect(0, 68448, '\p{Is_Sc:prti}', "");
+    Expect(1, 68448, '\p{^Is_Sc:prti}', "");
+    Expect(1, 68448, '\P{Is_Sc:prti}', "");
+    Expect(0, 68448, '\P{^Is_Sc:prti}', "");
+    Expect(1, 68447, '\p{Is_Sc= -PRTI}', "");
+    Expect(0, 68447, '\p{^Is_Sc= -PRTI}', "");
+    Expect(0, 68447, '\P{Is_Sc= -PRTI}', "");
+    Expect(1, 68447, '\P{^Is_Sc= -PRTI}', "");
+    Expect(0, 68448, '\p{Is_Sc= -PRTI}', "");
+    Expect(1, 68448, '\p{^Is_Sc= -PRTI}', "");
+    Expect(1, 68448, '\P{Is_Sc= -PRTI}', "");
+    Expect(0, 68448, '\P{^Is_Sc= -PRTI}', "");
+    Error('\p{Script=	 REJANG/a/}');
+    Error('\P{Script=	 REJANG/a/}');
     Expect(1, 43359, '\p{Script=:\ARejang\z:}', "");;
     Expect(0, 43360, '\p{Script=:\ARejang\z:}', "");;
     Expect(1, 43359, '\p{Script=rejang}', "");
@@ -137579,56 +138931,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43360, '\P{^Script=rejang}', "");
     Expect(1, 43359, '\p{Script=:\Arejang\z:}', "");;
     Expect(0, 43360, '\p{Script=:\Arejang\z:}', "");;
-    Expect(1, 43359, '\p{Script=-_rejang}', "");
-    Expect(0, 43359, '\p{^Script=-_rejang}', "");
-    Expect(0, 43359, '\P{Script=-_rejang}', "");
-    Expect(1, 43359, '\P{^Script=-_rejang}', "");
-    Expect(0, 43360, '\p{Script=-_rejang}', "");
-    Expect(1, 43360, '\p{^Script=-_rejang}', "");
-    Expect(1, 43360, '\P{Script=-_rejang}', "");
-    Expect(0, 43360, '\P{^Script=-_rejang}', "");
-    Error('\p{Sc=rjng/a/}');
-    Error('\P{Sc=rjng/a/}');
+    Expect(1, 43359, '\p{Script=_rejang}', "");
+    Expect(0, 43359, '\p{^Script=_rejang}', "");
+    Expect(0, 43359, '\P{Script=_rejang}', "");
+    Expect(1, 43359, '\P{^Script=_rejang}', "");
+    Expect(0, 43360, '\p{Script=_rejang}', "");
+    Expect(1, 43360, '\p{^Script=_rejang}', "");
+    Expect(1, 43360, '\P{Script=_rejang}', "");
+    Expect(0, 43360, '\P{^Script=_rejang}', "");
+    Error('\p{Sc=__Rjng:=}');
+    Error('\P{Sc=__Rjng:=}');
     Expect(1, 43359, '\p{Sc=:\ARjng\z:}', "");;
     Expect(0, 43360, '\p{Sc=:\ARjng\z:}', "");;
-    Expect(1, 43359, '\p{Sc: rjng}', "");
-    Expect(0, 43359, '\p{^Sc: rjng}', "");
-    Expect(0, 43359, '\P{Sc: rjng}', "");
-    Expect(1, 43359, '\P{^Sc: rjng}', "");
-    Expect(0, 43360, '\p{Sc: rjng}', "");
-    Expect(1, 43360, '\p{^Sc: rjng}', "");
-    Expect(1, 43360, '\P{Sc: rjng}', "");
-    Expect(0, 43360, '\P{^Sc: rjng}', "");
+    Expect(1, 43359, '\p{Sc=rjng}', "");
+    Expect(0, 43359, '\p{^Sc=rjng}', "");
+    Expect(0, 43359, '\P{Sc=rjng}', "");
+    Expect(1, 43359, '\P{^Sc=rjng}', "");
+    Expect(0, 43360, '\p{Sc=rjng}', "");
+    Expect(1, 43360, '\p{^Sc=rjng}', "");
+    Expect(1, 43360, '\P{Sc=rjng}', "");
+    Expect(0, 43360, '\P{^Sc=rjng}', "");
     Expect(1, 43359, '\p{Sc=:\Arjng\z:}', "");;
     Expect(0, 43360, '\p{Sc=:\Arjng\z:}', "");;
-    Expect(1, 43359, '\p{Sc=RJNG}', "");
-    Expect(0, 43359, '\p{^Sc=RJNG}', "");
-    Expect(0, 43359, '\P{Sc=RJNG}', "");
-    Expect(1, 43359, '\P{^Sc=RJNG}', "");
-    Expect(0, 43360, '\p{Sc=RJNG}', "");
-    Expect(1, 43360, '\p{^Sc=RJNG}', "");
-    Expect(1, 43360, '\P{Sc=RJNG}', "");
-    Expect(0, 43360, '\P{^Sc=RJNG}', "");
-    Error('\p{Is_Script= /a/Rejang}');
-    Error('\P{Is_Script= /a/Rejang}');
-    Expect(1, 43359, '\p{Is_Script=rejang}', "");
-    Expect(0, 43359, '\p{^Is_Script=rejang}', "");
-    Expect(0, 43359, '\P{Is_Script=rejang}', "");
-    Expect(1, 43359, '\P{^Is_Script=rejang}', "");
-    Expect(0, 43360, '\p{Is_Script=rejang}', "");
-    Expect(1, 43360, '\p{^Is_Script=rejang}', "");
-    Expect(1, 43360, '\P{Is_Script=rejang}', "");
-    Expect(0, 43360, '\P{^Is_Script=rejang}', "");
-    Expect(1, 43359, '\p{Is_Script=  Rejang}', "");
-    Expect(0, 43359, '\p{^Is_Script=  Rejang}', "");
-    Expect(0, 43359, '\P{Is_Script=  Rejang}', "");
-    Expect(1, 43359, '\P{^Is_Script=  Rejang}', "");
-    Expect(0, 43360, '\p{Is_Script=  Rejang}', "");
-    Expect(1, 43360, '\p{^Is_Script=  Rejang}', "");
-    Expect(1, 43360, '\P{Is_Script=  Rejang}', "");
-    Expect(0, 43360, '\P{^Is_Script=  Rejang}', "");
-    Error('\p{Is_Sc=:=_ rjng}');
-    Error('\P{Is_Sc=:=_ rjng}');
+    Expect(1, 43359, '\p{Sc=-	rjng}', "");
+    Expect(0, 43359, '\p{^Sc=-	rjng}', "");
+    Expect(0, 43359, '\P{Sc=-	rjng}', "");
+    Expect(1, 43359, '\P{^Sc=-	rjng}', "");
+    Expect(0, 43360, '\p{Sc=-	rjng}', "");
+    Expect(1, 43360, '\p{^Sc=-	rjng}', "");
+    Expect(1, 43360, '\P{Sc=-	rjng}', "");
+    Expect(0, 43360, '\P{^Sc=-	rjng}', "");
+    Error('\p{Is_Script:   /a/ -rejang}');
+    Error('\P{Is_Script:   /a/ -rejang}');
+    Expect(1, 43359, '\p{Is_Script: rejang}', "");
+    Expect(0, 43359, '\p{^Is_Script: rejang}', "");
+    Expect(0, 43359, '\P{Is_Script: rejang}', "");
+    Expect(1, 43359, '\P{^Is_Script: rejang}', "");
+    Expect(0, 43360, '\p{Is_Script: rejang}', "");
+    Expect(1, 43360, '\p{^Is_Script: rejang}', "");
+    Expect(1, 43360, '\P{Is_Script: rejang}', "");
+    Expect(0, 43360, '\P{^Is_Script: rejang}', "");
+    Expect(1, 43359, '\p{Is_Script:		_Rejang}', "");
+    Expect(0, 43359, '\p{^Is_Script:		_Rejang}', "");
+    Expect(0, 43359, '\P{Is_Script:		_Rejang}', "");
+    Expect(1, 43359, '\P{^Is_Script:		_Rejang}', "");
+    Expect(0, 43360, '\p{Is_Script:		_Rejang}', "");
+    Expect(1, 43360, '\p{^Is_Script:		_Rejang}', "");
+    Expect(1, 43360, '\P{Is_Script:		_Rejang}', "");
+    Expect(0, 43360, '\P{^Is_Script:		_Rejang}', "");
+    Error('\p{Is_Sc= -RJNG/a/}');
+    Error('\P{Is_Sc= -RJNG/a/}');
     Expect(1, 43359, '\p{Is_Sc=rjng}', "");
     Expect(0, 43359, '\p{^Is_Sc=rjng}', "");
     Expect(0, 43359, '\P{Is_Sc=rjng}', "");
@@ -137637,16 +138989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43360, '\p{^Is_Sc=rjng}', "");
     Expect(1, 43360, '\P{Is_Sc=rjng}', "");
     Expect(0, 43360, '\P{^Is_Sc=rjng}', "");
-    Expect(1, 43359, '\p{Is_Sc= _rjng}', "");
-    Expect(0, 43359, '\p{^Is_Sc= _rjng}', "");
-    Expect(0, 43359, '\P{Is_Sc= _rjng}', "");
-    Expect(1, 43359, '\P{^Is_Sc= _rjng}', "");
-    Expect(0, 43360, '\p{Is_Sc= _rjng}', "");
-    Expect(1, 43360, '\p{^Is_Sc= _rjng}', "");
-    Expect(1, 43360, '\P{Is_Sc= _rjng}', "");
-    Expect(0, 43360, '\P{^Is_Sc= _rjng}', "");
-    Error('\p{Script=/a/HANIFI_Rohingya}');
-    Error('\P{Script=/a/HANIFI_Rohingya}');
+    Expect(1, 43359, '\p{Is_Sc:		rjng}', "");
+    Expect(0, 43359, '\p{^Is_Sc:		rjng}', "");
+    Expect(0, 43359, '\P{Is_Sc:		rjng}', "");
+    Expect(1, 43359, '\P{^Is_Sc:		rjng}', "");
+    Expect(0, 43360, '\p{Is_Sc:		rjng}', "");
+    Expect(1, 43360, '\p{^Is_Sc:		rjng}', "");
+    Expect(1, 43360, '\P{Is_Sc:		rjng}', "");
+    Expect(0, 43360, '\P{^Is_Sc:		rjng}', "");
+    Error('\p{Script::=	_HANIFI_Rohingya}');
+    Error('\P{Script::=	_HANIFI_Rohingya}');
     Expect(1, 68921, '\p{Script=:\AHanifi_Rohingya\z:}', "");;
     Expect(0, 68922, '\p{Script=:\AHanifi_Rohingya\z:}', "");;
     Expect(1, 68921, '\p{Script=hanifirohingya}', "");
@@ -137659,38 +139011,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68922, '\P{^Script=hanifirohingya}', "");
     Expect(1, 68921, '\p{Script=:\Ahanifirohingya\z:}', "");;
     Expect(0, 68922, '\p{Script=:\Ahanifirohingya\z:}', "");;
-    Expect(1, 68921, '\p{Script=-_Hanifi_rohingya}', "");
-    Expect(0, 68921, '\p{^Script=-_Hanifi_rohingya}', "");
-    Expect(0, 68921, '\P{Script=-_Hanifi_rohingya}', "");
-    Expect(1, 68921, '\P{^Script=-_Hanifi_rohingya}', "");
-    Expect(0, 68922, '\p{Script=-_Hanifi_rohingya}', "");
-    Expect(1, 68922, '\p{^Script=-_Hanifi_rohingya}', "");
-    Expect(1, 68922, '\P{Script=-_Hanifi_rohingya}', "");
-    Expect(0, 68922, '\P{^Script=-_Hanifi_rohingya}', "");
-    Error('\p{Sc=-:=Rohg}');
-    Error('\P{Sc=-:=Rohg}');
+    Expect(1, 68921, '\p{Script:	 	hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\p{^Script:	 	hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\P{Script:	 	hanifi_ROHINGYA}', "");
+    Expect(1, 68921, '\P{^Script:	 	hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\p{Script:	 	hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\p{^Script:	 	hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\P{Script:	 	hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\P{^Script:	 	hanifi_ROHINGYA}', "");
+    Error('\p{Sc=-Rohg/a/}');
+    Error('\P{Sc=-Rohg/a/}');
     Expect(1, 68921, '\p{Sc=:\ARohg\z:}', "");;
     Expect(0, 68922, '\p{Sc=:\ARohg\z:}', "");;
-    Expect(1, 68921, '\p{Sc=rohg}', "");
-    Expect(0, 68921, '\p{^Sc=rohg}', "");
-    Expect(0, 68921, '\P{Sc=rohg}', "");
-    Expect(1, 68921, '\P{^Sc=rohg}', "");
-    Expect(0, 68922, '\p{Sc=rohg}', "");
-    Expect(1, 68922, '\p{^Sc=rohg}', "");
-    Expect(1, 68922, '\P{Sc=rohg}', "");
-    Expect(0, 68922, '\P{^Sc=rohg}', "");
+    Expect(1, 68921, '\p{Sc:   rohg}', "");
+    Expect(0, 68921, '\p{^Sc:   rohg}', "");
+    Expect(0, 68921, '\P{Sc:   rohg}', "");
+    Expect(1, 68921, '\P{^Sc:   rohg}', "");
+    Expect(0, 68922, '\p{Sc:   rohg}', "");
+    Expect(1, 68922, '\p{^Sc:   rohg}', "");
+    Expect(1, 68922, '\P{Sc:   rohg}', "");
+    Expect(0, 68922, '\P{^Sc:   rohg}', "");
     Expect(1, 68921, '\p{Sc=:\Arohg\z:}', "");;
     Expect(0, 68922, '\p{Sc=:\Arohg\z:}', "");;
-    Expect(1, 68921, '\p{Sc=_rohg}', "");
-    Expect(0, 68921, '\p{^Sc=_rohg}', "");
-    Expect(0, 68921, '\P{Sc=_rohg}', "");
-    Expect(1, 68921, '\P{^Sc=_rohg}', "");
-    Expect(0, 68922, '\p{Sc=_rohg}', "");
-    Expect(1, 68922, '\p{^Sc=_rohg}', "");
-    Expect(1, 68922, '\P{Sc=_rohg}', "");
-    Expect(0, 68922, '\P{^Sc=_rohg}', "");
-    Error('\p{Is_Script=/a/-hanifi_rohingya}');
-    Error('\P{Is_Script=/a/-hanifi_rohingya}');
+    Expect(1, 68921, '\p{Sc=-ROHG}', "");
+    Expect(0, 68921, '\p{^Sc=-ROHG}', "");
+    Expect(0, 68921, '\P{Sc=-ROHG}', "");
+    Expect(1, 68921, '\P{^Sc=-ROHG}', "");
+    Expect(0, 68922, '\p{Sc=-ROHG}', "");
+    Expect(1, 68922, '\p{^Sc=-ROHG}', "");
+    Expect(1, 68922, '\P{Sc=-ROHG}', "");
+    Expect(0, 68922, '\P{^Sc=-ROHG}', "");
+    Error('\p{Is_Script=:=HANIFI_Rohingya}');
+    Error('\P{Is_Script=:=HANIFI_Rohingya}');
     Expect(1, 68921, '\p{Is_Script=hanifirohingya}', "");
     Expect(0, 68921, '\p{^Is_Script=hanifirohingya}', "");
     Expect(0, 68921, '\P{Is_Script=hanifirohingya}', "");
@@ -137699,34 +139051,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68922, '\p{^Is_Script=hanifirohingya}', "");
     Expect(1, 68922, '\P{Is_Script=hanifirohingya}', "");
     Expect(0, 68922, '\P{^Is_Script=hanifirohingya}', "");
-    Expect(1, 68921, '\p{Is_Script=_ Hanifi_rohingya}', "");
-    Expect(0, 68921, '\p{^Is_Script=_ Hanifi_rohingya}', "");
-    Expect(0, 68921, '\P{Is_Script=_ Hanifi_rohingya}', "");
-    Expect(1, 68921, '\P{^Is_Script=_ Hanifi_rohingya}', "");
-    Expect(0, 68922, '\p{Is_Script=_ Hanifi_rohingya}', "");
-    Expect(1, 68922, '\p{^Is_Script=_ Hanifi_rohingya}', "");
-    Expect(1, 68922, '\P{Is_Script=_ Hanifi_rohingya}', "");
-    Expect(0, 68922, '\P{^Is_Script=_ Hanifi_rohingya}', "");
-    Error('\p{Is_Sc=_:=Rohg}');
-    Error('\P{Is_Sc=_:=Rohg}');
-    Expect(1, 68921, '\p{Is_Sc:	rohg}', "");
-    Expect(0, 68921, '\p{^Is_Sc:	rohg}', "");
-    Expect(0, 68921, '\P{Is_Sc:	rohg}', "");
-    Expect(1, 68921, '\P{^Is_Sc:	rohg}', "");
-    Expect(0, 68922, '\p{Is_Sc:	rohg}', "");
-    Expect(1, 68922, '\p{^Is_Sc:	rohg}', "");
-    Expect(1, 68922, '\P{Is_Sc:	rohg}', "");
-    Expect(0, 68922, '\P{^Is_Sc:	rohg}', "");
-    Expect(1, 68921, '\p{Is_Sc=-ROHG}', "");
-    Expect(0, 68921, '\p{^Is_Sc=-ROHG}', "");
-    Expect(0, 68921, '\P{Is_Sc=-ROHG}', "");
-    Expect(1, 68921, '\P{^Is_Sc=-ROHG}', "");
-    Expect(0, 68922, '\p{Is_Sc=-ROHG}', "");
-    Expect(1, 68922, '\p{^Is_Sc=-ROHG}', "");
-    Expect(1, 68922, '\P{Is_Sc=-ROHG}', "");
-    Expect(0, 68922, '\P{^Is_Sc=-ROHG}', "");
-    Error('\p{Script=:=_	Runic}');
-    Error('\P{Script=:=_	Runic}');
+    Expect(1, 68921, '\p{Is_Script:-_hanifi_rohingya}', "");
+    Expect(0, 68921, '\p{^Is_Script:-_hanifi_rohingya}', "");
+    Expect(0, 68921, '\P{Is_Script:-_hanifi_rohingya}', "");
+    Expect(1, 68921, '\P{^Is_Script:-_hanifi_rohingya}', "");
+    Expect(0, 68922, '\p{Is_Script:-_hanifi_rohingya}', "");
+    Expect(1, 68922, '\p{^Is_Script:-_hanifi_rohingya}', "");
+    Expect(1, 68922, '\P{Is_Script:-_hanifi_rohingya}', "");
+    Expect(0, 68922, '\P{^Is_Script:-_hanifi_rohingya}', "");
+    Error('\p{Is_Sc=:= _ROHG}');
+    Error('\P{Is_Sc=:= _ROHG}');
+    Expect(1, 68921, '\p{Is_Sc=rohg}', "");
+    Expect(0, 68921, '\p{^Is_Sc=rohg}', "");
+    Expect(0, 68921, '\P{Is_Sc=rohg}', "");
+    Expect(1, 68921, '\P{^Is_Sc=rohg}', "");
+    Expect(0, 68922, '\p{Is_Sc=rohg}', "");
+    Expect(1, 68922, '\p{^Is_Sc=rohg}', "");
+    Expect(1, 68922, '\P{Is_Sc=rohg}', "");
+    Expect(0, 68922, '\P{^Is_Sc=rohg}', "");
+    Expect(1, 68921, '\p{Is_Sc=		rohg}', "");
+    Expect(0, 68921, '\p{^Is_Sc=		rohg}', "");
+    Expect(0, 68921, '\P{Is_Sc=		rohg}', "");
+    Expect(1, 68921, '\P{^Is_Sc=		rohg}', "");
+    Expect(0, 68922, '\p{Is_Sc=		rohg}', "");
+    Expect(1, 68922, '\p{^Is_Sc=		rohg}', "");
+    Expect(1, 68922, '\P{Is_Sc=		rohg}', "");
+    Expect(0, 68922, '\P{^Is_Sc=		rohg}', "");
+    Error('\p{Script:   /a/-_Runic}');
+    Error('\P{Script:   /a/-_Runic}');
     Expect(1, 5880, '\p{Script=:\ARunic\z:}', "");;
     Expect(0, 5881, '\p{Script=:\ARunic\z:}', "");;
     Expect(1, 5880, '\p{Script=runic}', "");
@@ -137739,16 +139091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5881, '\P{^Script=runic}', "");
     Expect(1, 5880, '\p{Script=:\Arunic\z:}', "");;
     Expect(0, 5881, '\p{Script=:\Arunic\z:}', "");;
-    Expect(1, 5880, '\p{Script=	 RUNIC}', "");
-    Expect(0, 5880, '\p{^Script=	 RUNIC}', "");
-    Expect(0, 5880, '\P{Script=	 RUNIC}', "");
-    Expect(1, 5880, '\P{^Script=	 RUNIC}', "");
-    Expect(0, 5881, '\p{Script=	 RUNIC}', "");
-    Expect(1, 5881, '\p{^Script=	 RUNIC}', "");
-    Expect(1, 5881, '\P{Script=	 RUNIC}', "");
-    Expect(0, 5881, '\P{^Script=	 RUNIC}', "");
-    Error('\p{Sc=	 Runr/a/}');
-    Error('\P{Sc=	 Runr/a/}');
+    Expect(1, 5880, '\p{Script=- Runic}', "");
+    Expect(0, 5880, '\p{^Script=- Runic}', "");
+    Expect(0, 5880, '\P{Script=- Runic}', "");
+    Expect(1, 5880, '\P{^Script=- Runic}', "");
+    Expect(0, 5881, '\p{Script=- Runic}', "");
+    Expect(1, 5881, '\p{^Script=- Runic}', "");
+    Expect(1, 5881, '\P{Script=- Runic}', "");
+    Expect(0, 5881, '\P{^Script=- Runic}', "");
+    Error('\p{Sc=/a/_	RUNR}');
+    Error('\P{Sc=/a/_	RUNR}');
     Expect(1, 5880, '\p{Sc=:\ARunr\z:}', "");;
     Expect(0, 5881, '\p{Sc=:\ARunr\z:}', "");;
     Expect(1, 5880, '\p{Sc=runr}', "");
@@ -137761,16 +139113,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5881, '\P{^Sc=runr}', "");
     Expect(1, 5880, '\p{Sc=:\Arunr\z:}', "");;
     Expect(0, 5881, '\p{Sc=:\Arunr\z:}', "");;
-    Expect(1, 5880, '\p{Sc=_Runr}', "");
-    Expect(0, 5880, '\p{^Sc=_Runr}', "");
-    Expect(0, 5880, '\P{Sc=_Runr}', "");
-    Expect(1, 5880, '\P{^Sc=_Runr}', "");
-    Expect(0, 5881, '\p{Sc=_Runr}', "");
-    Expect(1, 5881, '\p{^Sc=_Runr}', "");
-    Expect(1, 5881, '\P{Sc=_Runr}', "");
-    Expect(0, 5881, '\P{^Sc=_Runr}', "");
-    Error('\p{Is_Script=/a/Runic}');
-    Error('\P{Is_Script=/a/Runic}');
+    Expect(1, 5880, '\p{Sc=-	Runr}', "");
+    Expect(0, 5880, '\p{^Sc=-	Runr}', "");
+    Expect(0, 5880, '\P{Sc=-	Runr}', "");
+    Expect(1, 5880, '\P{^Sc=-	Runr}', "");
+    Expect(0, 5881, '\p{Sc=-	Runr}', "");
+    Expect(1, 5881, '\p{^Sc=-	Runr}', "");
+    Expect(1, 5881, '\P{Sc=-	Runr}', "");
+    Expect(0, 5881, '\P{^Sc=-	Runr}', "");
+    Error('\p{Is_Script=	-RUNIC:=}');
+    Error('\P{Is_Script=	-RUNIC:=}');
     Expect(1, 5880, '\p{Is_Script=runic}', "");
     Expect(0, 5880, '\p{^Is_Script=runic}', "");
     Expect(0, 5880, '\P{Is_Script=runic}', "");
@@ -137779,16 +139131,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5881, '\p{^Is_Script=runic}', "");
     Expect(1, 5881, '\P{Is_Script=runic}', "");
     Expect(0, 5881, '\P{^Is_Script=runic}', "");
-    Expect(1, 5880, '\p{Is_Script=  RUNIC}', "");
-    Expect(0, 5880, '\p{^Is_Script=  RUNIC}', "");
-    Expect(0, 5880, '\P{Is_Script=  RUNIC}', "");
-    Expect(1, 5880, '\P{^Is_Script=  RUNIC}', "");
-    Expect(0, 5881, '\p{Is_Script=  RUNIC}', "");
-    Expect(1, 5881, '\p{^Is_Script=  RUNIC}', "");
-    Expect(1, 5881, '\P{Is_Script=  RUNIC}', "");
-    Expect(0, 5881, '\P{^Is_Script=  RUNIC}', "");
-    Error('\p{Is_Sc=-:=runr}');
-    Error('\P{Is_Sc=-:=runr}');
+    Expect(1, 5880, '\p{Is_Script=	 RUNIC}', "");
+    Expect(0, 5880, '\p{^Is_Script=	 RUNIC}', "");
+    Expect(0, 5880, '\P{Is_Script=	 RUNIC}', "");
+    Expect(1, 5880, '\P{^Is_Script=	 RUNIC}', "");
+    Expect(0, 5881, '\p{Is_Script=	 RUNIC}', "");
+    Expect(1, 5881, '\p{^Is_Script=	 RUNIC}', "");
+    Expect(1, 5881, '\P{Is_Script=	 RUNIC}', "");
+    Expect(0, 5881, '\P{^Is_Script=	 RUNIC}', "");
+    Error('\p{Is_Sc=RUNR:=}');
+    Error('\P{Is_Sc=RUNR:=}');
     Expect(1, 5880, '\p{Is_Sc=runr}', "");
     Expect(0, 5880, '\p{^Is_Sc=runr}', "");
     Expect(0, 5880, '\P{Is_Sc=runr}', "");
@@ -137797,16 +139149,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5881, '\p{^Is_Sc=runr}', "");
     Expect(1, 5881, '\P{Is_Sc=runr}', "");
     Expect(0, 5881, '\P{^Is_Sc=runr}', "");
-    Expect(1, 5880, '\p{Is_Sc=	Runr}', "");
-    Expect(0, 5880, '\p{^Is_Sc=	Runr}', "");
-    Expect(0, 5880, '\P{Is_Sc=	Runr}', "");
-    Expect(1, 5880, '\P{^Is_Sc=	Runr}', "");
-    Expect(0, 5881, '\p{Is_Sc=	Runr}', "");
-    Expect(1, 5881, '\p{^Is_Sc=	Runr}', "");
-    Expect(1, 5881, '\P{Is_Sc=	Runr}', "");
-    Expect(0, 5881, '\P{^Is_Sc=	Runr}', "");
-    Error('\p{Script=-:=Samaritan}');
-    Error('\P{Script=-:=Samaritan}');
+    Expect(1, 5880, '\p{Is_Sc=	_Runr}', "");
+    Expect(0, 5880, '\p{^Is_Sc=	_Runr}', "");
+    Expect(0, 5880, '\P{Is_Sc=	_Runr}', "");
+    Expect(1, 5880, '\P{^Is_Sc=	_Runr}', "");
+    Expect(0, 5881, '\p{Is_Sc=	_Runr}', "");
+    Expect(1, 5881, '\p{^Is_Sc=	_Runr}', "");
+    Expect(1, 5881, '\P{Is_Sc=	_Runr}', "");
+    Expect(0, 5881, '\P{^Is_Sc=	_Runr}', "");
+    Error('\p{Script=/a/	Samaritan}');
+    Error('\P{Script=/a/	Samaritan}');
     Expect(1, 2110, '\p{Script=:\ASamaritan\z:}', "");;
     Expect(0, 2111, '\p{Script=:\ASamaritan\z:}', "");;
     Expect(1, 2110, '\p{Script=samaritan}', "");
@@ -137819,16 +139171,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2111, '\P{^Script=samaritan}', "");
     Expect(1, 2110, '\p{Script=:\Asamaritan\z:}', "");;
     Expect(0, 2111, '\p{Script=:\Asamaritan\z:}', "");;
-    Expect(1, 2110, '\p{Script=-samaritan}', "");
-    Expect(0, 2110, '\p{^Script=-samaritan}', "");
-    Expect(0, 2110, '\P{Script=-samaritan}', "");
-    Expect(1, 2110, '\P{^Script=-samaritan}', "");
-    Expect(0, 2111, '\p{Script=-samaritan}', "");
-    Expect(1, 2111, '\p{^Script=-samaritan}', "");
-    Expect(1, 2111, '\P{Script=-samaritan}', "");
-    Expect(0, 2111, '\P{^Script=-samaritan}', "");
-    Error('\p{Sc=_:=samr}');
-    Error('\P{Sc=_:=samr}');
+    Error('\p{Sc=	SAMR:=}');
+    Error('\P{Sc=	SAMR:=}');
     Expect(1, 2110, '\p{Sc=:\ASamr\z:}', "");;
     Expect(0, 2111, '\p{Sc=:\ASamr\z:}', "");;
     Expect(1, 2110, '\p{Sc=samr}', "");
@@ -137841,16 +139185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2111, '\P{^Sc=samr}', "");
     Expect(1, 2110, '\p{Sc=:\Asamr\z:}', "");;
     Expect(0, 2111, '\p{Sc=:\Asamr\z:}', "");;
-    Expect(1, 2110, '\p{Sc=- samr}', "");
-    Expect(0, 2110, '\p{^Sc=- samr}', "");
-    Expect(0, 2110, '\P{Sc=- samr}', "");
-    Expect(1, 2110, '\P{^Sc=- samr}', "");
-    Expect(0, 2111, '\p{Sc=- samr}', "");
-    Expect(1, 2111, '\p{^Sc=- samr}', "");
-    Expect(1, 2111, '\P{Sc=- samr}', "");
-    Expect(0, 2111, '\P{^Sc=- samr}', "");
-    Error('\p{Is_Script=:=__samaritan}');
-    Error('\P{Is_Script=:=__samaritan}');
+    Expect(1, 2110, '\p{Sc=	 Samr}', "");
+    Expect(0, 2110, '\p{^Sc=	 Samr}', "");
+    Expect(0, 2110, '\P{Sc=	 Samr}', "");
+    Expect(1, 2110, '\P{^Sc=	 Samr}', "");
+    Expect(0, 2111, '\p{Sc=	 Samr}', "");
+    Expect(1, 2111, '\p{^Sc=	 Samr}', "");
+    Expect(1, 2111, '\P{Sc=	 Samr}', "");
+    Expect(0, 2111, '\P{^Sc=	 Samr}', "");
+    Error('\p{Is_Script:   /a/SAMARITAN}');
+    Error('\P{Is_Script:   /a/SAMARITAN}');
     Expect(1, 2110, '\p{Is_Script=samaritan}', "");
     Expect(0, 2110, '\p{^Is_Script=samaritan}', "");
     Expect(0, 2110, '\P{Is_Script=samaritan}', "");
@@ -137859,16 +139203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^Is_Script=samaritan}', "");
     Expect(1, 2111, '\P{Is_Script=samaritan}', "");
     Expect(0, 2111, '\P{^Is_Script=samaritan}', "");
-    Expect(1, 2110, '\p{Is_Script=_	Samaritan}', "");
-    Expect(0, 2110, '\p{^Is_Script=_	Samaritan}', "");
-    Expect(0, 2110, '\P{Is_Script=_	Samaritan}', "");
-    Expect(1, 2110, '\P{^Is_Script=_	Samaritan}', "");
-    Expect(0, 2111, '\p{Is_Script=_	Samaritan}', "");
-    Expect(1, 2111, '\p{^Is_Script=_	Samaritan}', "");
-    Expect(1, 2111, '\P{Is_Script=_	Samaritan}', "");
-    Expect(0, 2111, '\P{^Is_Script=_	Samaritan}', "");
-    Error('\p{Is_Sc=_SAMR:=}');
-    Error('\P{Is_Sc=_SAMR:=}');
+    Expect(1, 2110, '\p{Is_Script:  _samaritan}', "");
+    Expect(0, 2110, '\p{^Is_Script:  _samaritan}', "");
+    Expect(0, 2110, '\P{Is_Script:  _samaritan}', "");
+    Expect(1, 2110, '\P{^Is_Script:  _samaritan}', "");
+    Expect(0, 2111, '\p{Is_Script:  _samaritan}', "");
+    Expect(1, 2111, '\p{^Is_Script:  _samaritan}', "");
+    Expect(1, 2111, '\P{Is_Script:  _samaritan}', "");
+    Expect(0, 2111, '\P{^Is_Script:  _samaritan}', "");
+    Error('\p{Is_Sc=_/a/Samr}');
+    Error('\P{Is_Sc=_/a/Samr}');
     Expect(1, 2110, '\p{Is_Sc=samr}', "");
     Expect(0, 2110, '\p{^Is_Sc=samr}', "");
     Expect(0, 2110, '\P{Is_Sc=samr}', "");
@@ -137877,16 +139221,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^Is_Sc=samr}', "");
     Expect(1, 2111, '\P{Is_Sc=samr}', "");
     Expect(0, 2111, '\P{^Is_Sc=samr}', "");
-    Expect(1, 2110, '\p{Is_Sc=		SAMR}', "");
-    Expect(0, 2110, '\p{^Is_Sc=		SAMR}', "");
-    Expect(0, 2110, '\P{Is_Sc=		SAMR}', "");
-    Expect(1, 2110, '\P{^Is_Sc=		SAMR}', "");
-    Expect(0, 2111, '\p{Is_Sc=		SAMR}', "");
-    Expect(1, 2111, '\p{^Is_Sc=		SAMR}', "");
-    Expect(1, 2111, '\P{Is_Sc=		SAMR}', "");
-    Expect(0, 2111, '\P{^Is_Sc=		SAMR}', "");
-    Error('\p{Script=__OLD_south_Arabian/a/}');
-    Error('\P{Script=__OLD_south_Arabian/a/}');
+    Error('\p{Script=_/a/old_South_ARABIAN}');
+    Error('\P{Script=_/a/old_South_ARABIAN}');
     Expect(1, 68223, '\p{Script=:\AOld_South_Arabian\z:}', "");;
     Expect(0, 68224, '\p{Script=:\AOld_South_Arabian\z:}', "");;
     Expect(1, 68223, '\p{Script=oldsoutharabian}', "");
@@ -137899,16 +139235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68224, '\P{^Script=oldsoutharabian}', "");
     Expect(1, 68223, '\p{Script=:\Aoldsoutharabian\z:}', "");;
     Expect(0, 68224, '\p{Script=:\Aoldsoutharabian\z:}', "");;
-    Expect(1, 68223, '\p{Script= _Old_SOUTH_arabian}', "");
-    Expect(0, 68223, '\p{^Script= _Old_SOUTH_arabian}', "");
-    Expect(0, 68223, '\P{Script= _Old_SOUTH_arabian}', "");
-    Expect(1, 68223, '\P{^Script= _Old_SOUTH_arabian}', "");
-    Expect(0, 68224, '\p{Script= _Old_SOUTH_arabian}', "");
-    Expect(1, 68224, '\p{^Script= _Old_SOUTH_arabian}', "");
-    Expect(1, 68224, '\P{Script= _Old_SOUTH_arabian}', "");
-    Expect(0, 68224, '\P{^Script= _Old_SOUTH_arabian}', "");
-    Error('\p{Sc= -Sarb:=}');
-    Error('\P{Sc= -Sarb:=}');
+    Expect(1, 68223, '\p{Script=- OLD_South_Arabian}', "");
+    Expect(0, 68223, '\p{^Script=- OLD_South_Arabian}', "");
+    Expect(0, 68223, '\P{Script=- OLD_South_Arabian}', "");
+    Expect(1, 68223, '\P{^Script=- OLD_South_Arabian}', "");
+    Expect(0, 68224, '\p{Script=- OLD_South_Arabian}', "");
+    Expect(1, 68224, '\p{^Script=- OLD_South_Arabian}', "");
+    Expect(1, 68224, '\P{Script=- OLD_South_Arabian}', "");
+    Expect(0, 68224, '\P{^Script=- OLD_South_Arabian}', "");
+    Error('\p{Sc=_sarb/a/}');
+    Error('\P{Sc=_sarb/a/}');
     Expect(1, 68223, '\p{Sc=:\ASarb\z:}', "");;
     Expect(0, 68224, '\p{Sc=:\ASarb\z:}', "");;
     Expect(1, 68223, '\p{Sc=sarb}', "");
@@ -137921,16 +139257,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68224, '\P{^Sc=sarb}', "");
     Expect(1, 68223, '\p{Sc=:\Asarb\z:}', "");;
     Expect(0, 68224, '\p{Sc=:\Asarb\z:}', "");;
-    Expect(1, 68223, '\p{Sc:   -_Sarb}', "");
-    Expect(0, 68223, '\p{^Sc:   -_Sarb}', "");
-    Expect(0, 68223, '\P{Sc:   -_Sarb}', "");
-    Expect(1, 68223, '\P{^Sc:   -_Sarb}', "");
-    Expect(0, 68224, '\p{Sc:   -_Sarb}', "");
-    Expect(1, 68224, '\p{^Sc:   -_Sarb}', "");
-    Expect(1, 68224, '\P{Sc:   -_Sarb}', "");
-    Expect(0, 68224, '\P{^Sc:   -_Sarb}', "");
-    Error('\p{Is_Script= _Old_South_Arabian/a/}');
-    Error('\P{Is_Script= _Old_South_Arabian/a/}');
+    Expect(1, 68223, '\p{Sc=_ Sarb}', "");
+    Expect(0, 68223, '\p{^Sc=_ Sarb}', "");
+    Expect(0, 68223, '\P{Sc=_ Sarb}', "");
+    Expect(1, 68223, '\P{^Sc=_ Sarb}', "");
+    Expect(0, 68224, '\p{Sc=_ Sarb}', "");
+    Expect(1, 68224, '\p{^Sc=_ Sarb}', "");
+    Expect(1, 68224, '\P{Sc=_ Sarb}', "");
+    Expect(0, 68224, '\P{^Sc=_ Sarb}', "");
+    Error('\p{Is_Script=:=__Old_South_Arabian}');
+    Error('\P{Is_Script=:=__Old_South_Arabian}');
     Expect(1, 68223, '\p{Is_Script=oldsoutharabian}', "");
     Expect(0, 68223, '\p{^Is_Script=oldsoutharabian}', "");
     Expect(0, 68223, '\P{Is_Script=oldsoutharabian}', "");
@@ -137939,16 +139275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68224, '\p{^Is_Script=oldsoutharabian}', "");
     Expect(1, 68224, '\P{Is_Script=oldsoutharabian}', "");
     Expect(0, 68224, '\P{^Is_Script=oldsoutharabian}', "");
-    Expect(1, 68223, '\p{Is_Script:	_OLD_south_Arabian}', "");
-    Expect(0, 68223, '\p{^Is_Script:	_OLD_south_Arabian}', "");
-    Expect(0, 68223, '\P{Is_Script:	_OLD_south_Arabian}', "");
-    Expect(1, 68223, '\P{^Is_Script:	_OLD_south_Arabian}', "");
-    Expect(0, 68224, '\p{Is_Script:	_OLD_south_Arabian}', "");
-    Expect(1, 68224, '\p{^Is_Script:	_OLD_south_Arabian}', "");
-    Expect(1, 68224, '\P{Is_Script:	_OLD_south_Arabian}', "");
-    Expect(0, 68224, '\P{^Is_Script:	_OLD_south_Arabian}', "");
-    Error('\p{Is_Sc=	_sarb/a/}');
-    Error('\P{Is_Sc=	_sarb/a/}');
+    Expect(1, 68223, '\p{Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(0, 68223, '\p{^Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(0, 68223, '\P{Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(1, 68223, '\P{^Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(0, 68224, '\p{Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(1, 68224, '\p{^Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(1, 68224, '\P{Is_Script=	-Old_South_ARABIAN}', "");
+    Expect(0, 68224, '\P{^Is_Script=	-Old_South_ARABIAN}', "");
+    Error('\p{Is_Sc= 	SARB/a/}');
+    Error('\P{Is_Sc= 	SARB/a/}');
     Expect(1, 68223, '\p{Is_Sc=sarb}', "");
     Expect(0, 68223, '\p{^Is_Sc=sarb}', "");
     Expect(0, 68223, '\P{Is_Sc=sarb}', "");
@@ -137957,16 +139293,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68224, '\p{^Is_Sc=sarb}', "");
     Expect(1, 68224, '\P{Is_Sc=sarb}', "");
     Expect(0, 68224, '\P{^Is_Sc=sarb}', "");
-    Expect(1, 68223, '\p{Is_Sc= -sarb}', "");
-    Expect(0, 68223, '\p{^Is_Sc= -sarb}', "");
-    Expect(0, 68223, '\P{Is_Sc= -sarb}', "");
-    Expect(1, 68223, '\P{^Is_Sc= -sarb}', "");
-    Expect(0, 68224, '\p{Is_Sc= -sarb}', "");
-    Expect(1, 68224, '\p{^Is_Sc= -sarb}', "");
-    Expect(1, 68224, '\P{Is_Sc= -sarb}', "");
-    Expect(0, 68224, '\P{^Is_Sc= -sarb}', "");
-    Error('\p{Script=_-Saurashtra/a/}');
-    Error('\P{Script=_-Saurashtra/a/}');
+    Expect(1, 68223, '\p{Is_Sc=-	SARB}', "");
+    Expect(0, 68223, '\p{^Is_Sc=-	SARB}', "");
+    Expect(0, 68223, '\P{Is_Sc=-	SARB}', "");
+    Expect(1, 68223, '\P{^Is_Sc=-	SARB}', "");
+    Expect(0, 68224, '\p{Is_Sc=-	SARB}', "");
+    Expect(1, 68224, '\p{^Is_Sc=-	SARB}', "");
+    Expect(1, 68224, '\P{Is_Sc=-	SARB}', "");
+    Expect(0, 68224, '\P{^Is_Sc=-	SARB}', "");
+    Error('\p{Script=:=Saurashtra}');
+    Error('\P{Script=:=Saurashtra}');
     Expect(1, 43225, '\p{Script=:\ASaurashtra\z:}', "");;
     Expect(0, 43226, '\p{Script=:\ASaurashtra\z:}', "");;
     Expect(1, 43225, '\p{Script=saurashtra}', "");
@@ -137979,16 +139315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43226, '\P{^Script=saurashtra}', "");
     Expect(1, 43225, '\p{Script=:\Asaurashtra\z:}', "");;
     Expect(0, 43226, '\p{Script=:\Asaurashtra\z:}', "");;
-    Expect(1, 43225, '\p{Script=	_Saurashtra}', "");
-    Expect(0, 43225, '\p{^Script=	_Saurashtra}', "");
-    Expect(0, 43225, '\P{Script=	_Saurashtra}', "");
-    Expect(1, 43225, '\P{^Script=	_Saurashtra}', "");
-    Expect(0, 43226, '\p{Script=	_Saurashtra}', "");
-    Expect(1, 43226, '\p{^Script=	_Saurashtra}', "");
-    Expect(1, 43226, '\P{Script=	_Saurashtra}', "");
-    Expect(0, 43226, '\P{^Script=	_Saurashtra}', "");
-    Error('\p{Sc=  Saur/a/}');
-    Error('\P{Sc=  Saur/a/}');
+    Expect(1, 43225, '\p{Script=	saurashtra}', "");
+    Expect(0, 43225, '\p{^Script=	saurashtra}', "");
+    Expect(0, 43225, '\P{Script=	saurashtra}', "");
+    Expect(1, 43225, '\P{^Script=	saurashtra}', "");
+    Expect(0, 43226, '\p{Script=	saurashtra}', "");
+    Expect(1, 43226, '\p{^Script=	saurashtra}', "");
+    Expect(1, 43226, '\P{Script=	saurashtra}', "");
+    Expect(0, 43226, '\P{^Script=	saurashtra}', "");
+    Error('\p{Sc=	 saur/a/}');
+    Error('\P{Sc=	 saur/a/}');
     Expect(1, 43225, '\p{Sc=:\ASaur\z:}', "");;
     Expect(0, 43226, '\p{Sc=:\ASaur\z:}', "");;
     Expect(1, 43225, '\p{Sc=saur}', "");
@@ -138001,16 +139337,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43226, '\P{^Sc=saur}', "");
     Expect(1, 43225, '\p{Sc=:\Asaur\z:}', "");;
     Expect(0, 43226, '\p{Sc=:\Asaur\z:}', "");;
-    Expect(1, 43225, '\p{Sc= 	saur}', "");
-    Expect(0, 43225, '\p{^Sc= 	saur}', "");
-    Expect(0, 43225, '\P{Sc= 	saur}', "");
-    Expect(1, 43225, '\P{^Sc= 	saur}', "");
-    Expect(0, 43226, '\p{Sc= 	saur}', "");
-    Expect(1, 43226, '\p{^Sc= 	saur}', "");
-    Expect(1, 43226, '\P{Sc= 	saur}', "");
-    Expect(0, 43226, '\P{^Sc= 	saur}', "");
-    Error('\p{Is_Script=--Saurashtra:=}');
-    Error('\P{Is_Script=--Saurashtra:=}');
+    Expect(1, 43225, '\p{Sc=-Saur}', "");
+    Expect(0, 43225, '\p{^Sc=-Saur}', "");
+    Expect(0, 43225, '\P{Sc=-Saur}', "");
+    Expect(1, 43225, '\P{^Sc=-Saur}', "");
+    Expect(0, 43226, '\p{Sc=-Saur}', "");
+    Expect(1, 43226, '\p{^Sc=-Saur}', "");
+    Expect(1, 43226, '\P{Sc=-Saur}', "");
+    Expect(0, 43226, '\P{^Sc=-Saur}', "");
+    Error('\p{Is_Script=/a/	-SAURASHTRA}');
+    Error('\P{Is_Script=/a/	-SAURASHTRA}');
     Expect(1, 43225, '\p{Is_Script=saurashtra}', "");
     Expect(0, 43225, '\p{^Is_Script=saurashtra}', "");
     Expect(0, 43225, '\P{Is_Script=saurashtra}', "");
@@ -138019,16 +139355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^Is_Script=saurashtra}', "");
     Expect(1, 43226, '\P{Is_Script=saurashtra}', "");
     Expect(0, 43226, '\P{^Is_Script=saurashtra}', "");
-    Expect(1, 43225, '\p{Is_Script=	 saurashtra}', "");
-    Expect(0, 43225, '\p{^Is_Script=	 saurashtra}', "");
-    Expect(0, 43225, '\P{Is_Script=	 saurashtra}', "");
-    Expect(1, 43225, '\P{^Is_Script=	 saurashtra}', "");
-    Expect(0, 43226, '\p{Is_Script=	 saurashtra}', "");
-    Expect(1, 43226, '\p{^Is_Script=	 saurashtra}', "");
-    Expect(1, 43226, '\P{Is_Script=	 saurashtra}', "");
-    Expect(0, 43226, '\P{^Is_Script=	 saurashtra}', "");
-    Error('\p{Is_Sc=_/a/Saur}');
-    Error('\P{Is_Sc=_/a/Saur}');
+    Expect(1, 43225, '\p{Is_Script=-	Saurashtra}', "");
+    Expect(0, 43225, '\p{^Is_Script=-	Saurashtra}', "");
+    Expect(0, 43225, '\P{Is_Script=-	Saurashtra}', "");
+    Expect(1, 43225, '\P{^Is_Script=-	Saurashtra}', "");
+    Expect(0, 43226, '\p{Is_Script=-	Saurashtra}', "");
+    Expect(1, 43226, '\p{^Is_Script=-	Saurashtra}', "");
+    Expect(1, 43226, '\P{Is_Script=-	Saurashtra}', "");
+    Expect(0, 43226, '\P{^Is_Script=-	Saurashtra}', "");
+    Error('\p{Is_Sc:	/a/_ Saur}');
+    Error('\P{Is_Sc:	/a/_ Saur}');
     Expect(1, 43225, '\p{Is_Sc=saur}', "");
     Expect(0, 43225, '\p{^Is_Sc=saur}', "");
     Expect(0, 43225, '\P{Is_Sc=saur}', "");
@@ -138037,16 +139373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^Is_Sc=saur}', "");
     Expect(1, 43226, '\P{Is_Sc=saur}', "");
     Expect(0, 43226, '\P{^Is_Sc=saur}', "");
-    Expect(1, 43225, '\p{Is_Sc=	SAUR}', "");
-    Expect(0, 43225, '\p{^Is_Sc=	SAUR}', "");
-    Expect(0, 43225, '\P{Is_Sc=	SAUR}', "");
-    Expect(1, 43225, '\P{^Is_Sc=	SAUR}', "");
-    Expect(0, 43226, '\p{Is_Sc=	SAUR}', "");
-    Expect(1, 43226, '\p{^Is_Sc=	SAUR}', "");
-    Expect(1, 43226, '\P{Is_Sc=	SAUR}', "");
-    Expect(0, 43226, '\P{^Is_Sc=	SAUR}', "");
-    Error('\p{Script=/a/_SignWriting}');
-    Error('\P{Script=/a/_SignWriting}');
+    Expect(1, 43225, '\p{Is_Sc=-Saur}', "");
+    Expect(0, 43225, '\p{^Is_Sc=-Saur}', "");
+    Expect(0, 43225, '\P{Is_Sc=-Saur}', "");
+    Expect(1, 43225, '\P{^Is_Sc=-Saur}', "");
+    Expect(0, 43226, '\p{Is_Sc=-Saur}', "");
+    Expect(1, 43226, '\p{^Is_Sc=-Saur}', "");
+    Expect(1, 43226, '\P{Is_Sc=-Saur}', "");
+    Expect(0, 43226, '\P{^Is_Sc=-Saur}', "");
+    Error('\p{Script=	 SIGNWRITING/a/}');
+    Error('\P{Script=	 SIGNWRITING/a/}');
     Expect(1, 121519, '\p{Script=:\ASignWriting\z:}', "");;
     Expect(0, 121520, '\p{Script=:\ASignWriting\z:}', "");;
     Expect(1, 121519, '\p{Script=signwriting}', "");
@@ -138059,38 +139395,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121520, '\P{^Script=signwriting}', "");
     Expect(1, 121519, '\p{Script=:\Asignwriting\z:}', "");;
     Expect(0, 121520, '\p{Script=:\Asignwriting\z:}', "");;
-    Expect(1, 121519, '\p{Script= -signwriting}', "");
-    Expect(0, 121519, '\p{^Script= -signwriting}', "");
-    Expect(0, 121519, '\P{Script= -signwriting}', "");
-    Expect(1, 121519, '\P{^Script= -signwriting}', "");
-    Expect(0, 121520, '\p{Script= -signwriting}', "");
-    Expect(1, 121520, '\p{^Script= -signwriting}', "");
-    Expect(1, 121520, '\P{Script= -signwriting}', "");
-    Expect(0, 121520, '\P{^Script= -signwriting}', "");
-    Error('\p{Sc= /a/sgnw}');
-    Error('\P{Sc= /a/sgnw}');
+    Expect(1, 121519, '\p{Script=- SignWriting}', "");
+    Expect(0, 121519, '\p{^Script=- SignWriting}', "");
+    Expect(0, 121519, '\P{Script=- SignWriting}', "");
+    Expect(1, 121519, '\P{^Script=- SignWriting}', "");
+    Expect(0, 121520, '\p{Script=- SignWriting}', "");
+    Expect(1, 121520, '\p{^Script=- SignWriting}', "");
+    Expect(1, 121520, '\P{Script=- SignWriting}', "");
+    Expect(0, 121520, '\P{^Script=- SignWriting}', "");
+    Error('\p{Sc=:= _Sgnw}');
+    Error('\P{Sc=:= _Sgnw}');
     Expect(1, 121519, '\p{Sc=:\ASgnw\z:}', "");;
     Expect(0, 121520, '\p{Sc=:\ASgnw\z:}', "");;
-    Expect(1, 121519, '\p{Sc:   sgnw}', "");
-    Expect(0, 121519, '\p{^Sc:   sgnw}', "");
-    Expect(0, 121519, '\P{Sc:   sgnw}', "");
-    Expect(1, 121519, '\P{^Sc:   sgnw}', "");
-    Expect(0, 121520, '\p{Sc:   sgnw}', "");
-    Expect(1, 121520, '\p{^Sc:   sgnw}', "");
-    Expect(1, 121520, '\P{Sc:   sgnw}', "");
-    Expect(0, 121520, '\P{^Sc:   sgnw}', "");
+    Expect(1, 121519, '\p{Sc=sgnw}', "");
+    Expect(0, 121519, '\p{^Sc=sgnw}', "");
+    Expect(0, 121519, '\P{Sc=sgnw}', "");
+    Expect(1, 121519, '\P{^Sc=sgnw}', "");
+    Expect(0, 121520, '\p{Sc=sgnw}', "");
+    Expect(1, 121520, '\p{^Sc=sgnw}', "");
+    Expect(1, 121520, '\P{Sc=sgnw}', "");
+    Expect(0, 121520, '\P{^Sc=sgnw}', "");
     Expect(1, 121519, '\p{Sc=:\Asgnw\z:}', "");;
     Expect(0, 121520, '\p{Sc=:\Asgnw\z:}', "");;
-    Expect(1, 121519, '\p{Sc=--SGNW}', "");
-    Expect(0, 121519, '\p{^Sc=--SGNW}', "");
-    Expect(0, 121519, '\P{Sc=--SGNW}', "");
-    Expect(1, 121519, '\P{^Sc=--SGNW}', "");
-    Expect(0, 121520, '\p{Sc=--SGNW}', "");
-    Expect(1, 121520, '\p{^Sc=--SGNW}', "");
-    Expect(1, 121520, '\P{Sc=--SGNW}', "");
-    Expect(0, 121520, '\P{^Sc=--SGNW}', "");
-    Error('\p{Is_Script=-/a/SignWriting}');
-    Error('\P{Is_Script=-/a/SignWriting}');
+    Expect(1, 121519, '\p{Sc:	-Sgnw}', "");
+    Expect(0, 121519, '\p{^Sc:	-Sgnw}', "");
+    Expect(0, 121519, '\P{Sc:	-Sgnw}', "");
+    Expect(1, 121519, '\P{^Sc:	-Sgnw}', "");
+    Expect(0, 121520, '\p{Sc:	-Sgnw}', "");
+    Expect(1, 121520, '\p{^Sc:	-Sgnw}', "");
+    Expect(1, 121520, '\P{Sc:	-Sgnw}', "");
+    Expect(0, 121520, '\P{^Sc:	-Sgnw}', "");
+    Error('\p{Is_Script=/a/_SIGNWRITING}');
+    Error('\P{Is_Script=/a/_SIGNWRITING}');
     Expect(1, 121519, '\p{Is_Script=signwriting}', "");
     Expect(0, 121519, '\p{^Is_Script=signwriting}', "");
     Expect(0, 121519, '\P{Is_Script=signwriting}', "");
@@ -138099,16 +139435,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^Is_Script=signwriting}', "");
     Expect(1, 121520, '\P{Is_Script=signwriting}', "");
     Expect(0, 121520, '\P{^Is_Script=signwriting}', "");
-    Expect(1, 121519, '\p{Is_Script=_SignWriting}', "");
-    Expect(0, 121519, '\p{^Is_Script=_SignWriting}', "");
-    Expect(0, 121519, '\P{Is_Script=_SignWriting}', "");
-    Expect(1, 121519, '\P{^Is_Script=_SignWriting}', "");
-    Expect(0, 121520, '\p{Is_Script=_SignWriting}', "");
-    Expect(1, 121520, '\p{^Is_Script=_SignWriting}', "");
-    Expect(1, 121520, '\P{Is_Script=_SignWriting}', "");
-    Expect(0, 121520, '\P{^Is_Script=_SignWriting}', "");
-    Error('\p{Is_Sc=_	Sgnw/a/}');
-    Error('\P{Is_Sc=_	Sgnw/a/}');
+    Expect(1, 121519, '\p{Is_Script=- SignWriting}', "");
+    Expect(0, 121519, '\p{^Is_Script=- SignWriting}', "");
+    Expect(0, 121519, '\P{Is_Script=- SignWriting}', "");
+    Expect(1, 121519, '\P{^Is_Script=- SignWriting}', "");
+    Expect(0, 121520, '\p{Is_Script=- SignWriting}', "");
+    Expect(1, 121520, '\p{^Is_Script=- SignWriting}', "");
+    Expect(1, 121520, '\P{Is_Script=- SignWriting}', "");
+    Expect(0, 121520, '\P{^Is_Script=- SignWriting}', "");
+    Error('\p{Is_Sc= :=SGNW}');
+    Error('\P{Is_Sc= :=SGNW}');
     Expect(1, 121519, '\p{Is_Sc=sgnw}', "");
     Expect(0, 121519, '\p{^Is_Sc=sgnw}', "");
     Expect(0, 121519, '\P{Is_Sc=sgnw}', "");
@@ -138117,16 +139453,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^Is_Sc=sgnw}', "");
     Expect(1, 121520, '\P{Is_Sc=sgnw}', "");
     Expect(0, 121520, '\P{^Is_Sc=sgnw}', "");
-    Expect(1, 121519, '\p{Is_Sc=_	Sgnw}', "");
-    Expect(0, 121519, '\p{^Is_Sc=_	Sgnw}', "");
-    Expect(0, 121519, '\P{Is_Sc=_	Sgnw}', "");
-    Expect(1, 121519, '\P{^Is_Sc=_	Sgnw}', "");
-    Expect(0, 121520, '\p{Is_Sc=_	Sgnw}', "");
-    Expect(1, 121520, '\p{^Is_Sc=_	Sgnw}', "");
-    Expect(1, 121520, '\P{Is_Sc=_	Sgnw}', "");
-    Expect(0, 121520, '\P{^Is_Sc=_	Sgnw}', "");
-    Error('\p{Script=:=_	SHAVIAN}');
-    Error('\P{Script=:=_	SHAVIAN}');
+    Expect(1, 121519, '\p{Is_Sc=	SGNW}', "");
+    Expect(0, 121519, '\p{^Is_Sc=	SGNW}', "");
+    Expect(0, 121519, '\P{Is_Sc=	SGNW}', "");
+    Expect(1, 121519, '\P{^Is_Sc=	SGNW}', "");
+    Expect(0, 121520, '\p{Is_Sc=	SGNW}', "");
+    Expect(1, 121520, '\p{^Is_Sc=	SGNW}', "");
+    Expect(1, 121520, '\P{Is_Sc=	SGNW}', "");
+    Expect(0, 121520, '\P{^Is_Sc=	SGNW}', "");
+    Error('\p{Script:   _:=SHAVIAN}');
+    Error('\P{Script:   _:=SHAVIAN}');
     Expect(1, 66687, '\p{Script=:\AShavian\z:}', "");;
     Expect(0, 66688, '\p{Script=:\AShavian\z:}', "");;
     Expect(1, 66687, '\p{Script=shavian}', "");
@@ -138139,16 +139475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66688, '\P{^Script=shavian}', "");
     Expect(1, 66687, '\p{Script=:\Ashavian\z:}', "");;
     Expect(0, 66688, '\p{Script=:\Ashavian\z:}', "");;
-    Expect(1, 66687, '\p{Script=_	SHAVIAN}', "");
-    Expect(0, 66687, '\p{^Script=_	SHAVIAN}', "");
-    Expect(0, 66687, '\P{Script=_	SHAVIAN}', "");
-    Expect(1, 66687, '\P{^Script=_	SHAVIAN}', "");
-    Expect(0, 66688, '\p{Script=_	SHAVIAN}', "");
-    Expect(1, 66688, '\p{^Script=_	SHAVIAN}', "");
-    Expect(1, 66688, '\P{Script=_	SHAVIAN}', "");
-    Expect(0, 66688, '\P{^Script=_	SHAVIAN}', "");
-    Error('\p{Sc=/a/SHAW}');
-    Error('\P{Sc=/a/SHAW}');
+    Expect(1, 66687, '\p{Script=--Shavian}', "");
+    Expect(0, 66687, '\p{^Script=--Shavian}', "");
+    Expect(0, 66687, '\P{Script=--Shavian}', "");
+    Expect(1, 66687, '\P{^Script=--Shavian}', "");
+    Expect(0, 66688, '\p{Script=--Shavian}', "");
+    Expect(1, 66688, '\p{^Script=--Shavian}', "");
+    Expect(1, 66688, '\P{Script=--Shavian}', "");
+    Expect(0, 66688, '\P{^Script=--Shavian}', "");
+    Error('\p{Sc=_SHAW/a/}');
+    Error('\P{Sc=_SHAW/a/}');
     Expect(1, 66687, '\p{Sc=:\AShaw\z:}', "");;
     Expect(0, 66688, '\p{Sc=:\AShaw\z:}', "");;
     Expect(1, 66687, '\p{Sc=shaw}', "");
@@ -138161,16 +139497,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66688, '\P{^Sc=shaw}', "");
     Expect(1, 66687, '\p{Sc=:\Ashaw\z:}', "");;
     Expect(0, 66688, '\p{Sc=:\Ashaw\z:}', "");;
-    Expect(1, 66687, '\p{Sc=	Shaw}', "");
-    Expect(0, 66687, '\p{^Sc=	Shaw}', "");
-    Expect(0, 66687, '\P{Sc=	Shaw}', "");
-    Expect(1, 66687, '\P{^Sc=	Shaw}', "");
-    Expect(0, 66688, '\p{Sc=	Shaw}', "");
-    Expect(1, 66688, '\p{^Sc=	Shaw}', "");
-    Expect(1, 66688, '\P{Sc=	Shaw}', "");
-    Expect(0, 66688, '\P{^Sc=	Shaw}', "");
-    Error('\p{Is_Script=:=	-shavian}');
-    Error('\P{Is_Script=:=	-shavian}');
+    Expect(1, 66687, '\p{Sc= _shaw}', "");
+    Expect(0, 66687, '\p{^Sc= _shaw}', "");
+    Expect(0, 66687, '\P{Sc= _shaw}', "");
+    Expect(1, 66687, '\P{^Sc= _shaw}', "");
+    Expect(0, 66688, '\p{Sc= _shaw}', "");
+    Expect(1, 66688, '\p{^Sc= _shaw}', "");
+    Expect(1, 66688, '\P{Sc= _shaw}', "");
+    Expect(0, 66688, '\P{^Sc= _shaw}', "");
+    Error('\p{Is_Script::=_	Shavian}');
+    Error('\P{Is_Script::=_	Shavian}');
     Expect(1, 66687, '\p{Is_Script=shavian}', "");
     Expect(0, 66687, '\p{^Is_Script=shavian}', "");
     Expect(0, 66687, '\P{Is_Script=shavian}', "");
@@ -138179,34 +139515,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66688, '\p{^Is_Script=shavian}', "");
     Expect(1, 66688, '\P{Is_Script=shavian}', "");
     Expect(0, 66688, '\P{^Is_Script=shavian}', "");
-    Expect(1, 66687, '\p{Is_Script=- shavian}', "");
-    Expect(0, 66687, '\p{^Is_Script=- shavian}', "");
-    Expect(0, 66687, '\P{Is_Script=- shavian}', "");
-    Expect(1, 66687, '\P{^Is_Script=- shavian}', "");
-    Expect(0, 66688, '\p{Is_Script=- shavian}', "");
-    Expect(1, 66688, '\p{^Is_Script=- shavian}', "");
-    Expect(1, 66688, '\P{Is_Script=- shavian}', "");
-    Expect(0, 66688, '\P{^Is_Script=- shavian}', "");
-    Error('\p{Is_Sc=/a/-_shaw}');
-    Error('\P{Is_Sc=/a/-_shaw}');
-    Expect(1, 66687, '\p{Is_Sc=shaw}', "");
-    Expect(0, 66687, '\p{^Is_Sc=shaw}', "");
-    Expect(0, 66687, '\P{Is_Sc=shaw}', "");
-    Expect(1, 66687, '\P{^Is_Sc=shaw}', "");
-    Expect(0, 66688, '\p{Is_Sc=shaw}', "");
-    Expect(1, 66688, '\p{^Is_Sc=shaw}', "");
-    Expect(1, 66688, '\P{Is_Sc=shaw}', "");
-    Expect(0, 66688, '\P{^Is_Sc=shaw}', "");
-    Expect(1, 66687, '\p{Is_Sc=  SHAW}', "");
-    Expect(0, 66687, '\p{^Is_Sc=  SHAW}', "");
-    Expect(0, 66687, '\P{Is_Sc=  SHAW}', "");
-    Expect(1, 66687, '\P{^Is_Sc=  SHAW}', "");
-    Expect(0, 66688, '\p{Is_Sc=  SHAW}', "");
-    Expect(1, 66688, '\p{^Is_Sc=  SHAW}', "");
-    Expect(1, 66688, '\P{Is_Sc=  SHAW}', "");
-    Expect(0, 66688, '\P{^Is_Sc=  SHAW}', "");
-    Error('\p{Script=_ Sharada/a/}');
-    Error('\P{Script=_ Sharada/a/}');
+    Expect(1, 66687, '\p{Is_Script=	shavian}', "");
+    Expect(0, 66687, '\p{^Is_Script=	shavian}', "");
+    Expect(0, 66687, '\P{Is_Script=	shavian}', "");
+    Expect(1, 66687, '\P{^Is_Script=	shavian}', "");
+    Expect(0, 66688, '\p{Is_Script=	shavian}', "");
+    Expect(1, 66688, '\p{^Is_Script=	shavian}', "");
+    Expect(1, 66688, '\P{Is_Script=	shavian}', "");
+    Expect(0, 66688, '\P{^Is_Script=	shavian}', "");
+    Error('\p{Is_Sc=	Shaw/a/}');
+    Error('\P{Is_Sc=	Shaw/a/}');
+    Expect(1, 66687, '\p{Is_Sc:shaw}', "");
+    Expect(0, 66687, '\p{^Is_Sc:shaw}', "");
+    Expect(0, 66687, '\P{Is_Sc:shaw}', "");
+    Expect(1, 66687, '\P{^Is_Sc:shaw}', "");
+    Expect(0, 66688, '\p{Is_Sc:shaw}', "");
+    Expect(1, 66688, '\p{^Is_Sc:shaw}', "");
+    Expect(1, 66688, '\P{Is_Sc:shaw}', "");
+    Expect(0, 66688, '\P{^Is_Sc:shaw}', "");
+    Expect(1, 66687, '\p{Is_Sc=	SHAW}', "");
+    Expect(0, 66687, '\p{^Is_Sc=	SHAW}', "");
+    Expect(0, 66687, '\P{Is_Sc=	SHAW}', "");
+    Expect(1, 66687, '\P{^Is_Sc=	SHAW}', "");
+    Expect(0, 66688, '\p{Is_Sc=	SHAW}', "");
+    Expect(1, 66688, '\p{^Is_Sc=	SHAW}', "");
+    Expect(1, 66688, '\P{Is_Sc=	SHAW}', "");
+    Expect(0, 66688, '\P{^Is_Sc=	SHAW}', "");
+    Error('\p{Script: /a/		Sharada}');
+    Error('\P{Script: /a/		Sharada}');
     Expect(1, 70111, '\p{Script=:\ASharada\z:}', "");;
     Expect(0, 70112, '\p{Script=:\ASharada\z:}', "");;
     Expect(1, 70111, '\p{Script=sharada}', "");
@@ -138219,16 +139555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70112, '\P{^Script=sharada}', "");
     Expect(1, 70111, '\p{Script=:\Asharada\z:}', "");;
     Expect(0, 70112, '\p{Script=:\Asharada\z:}', "");;
-    Expect(1, 70111, '\p{Script:-Sharada}', "");
-    Expect(0, 70111, '\p{^Script:-Sharada}', "");
-    Expect(0, 70111, '\P{Script:-Sharada}', "");
-    Expect(1, 70111, '\P{^Script:-Sharada}', "");
-    Expect(0, 70112, '\p{Script:-Sharada}', "");
-    Expect(1, 70112, '\p{^Script:-Sharada}', "");
-    Expect(1, 70112, '\P{Script:-Sharada}', "");
-    Expect(0, 70112, '\P{^Script:-Sharada}', "");
-    Error('\p{Sc= Shrd:=}');
-    Error('\P{Sc= Shrd:=}');
+    Expect(1, 70111, '\p{Script=_ Sharada}', "");
+    Expect(0, 70111, '\p{^Script=_ Sharada}', "");
+    Expect(0, 70111, '\P{Script=_ Sharada}', "");
+    Expect(1, 70111, '\P{^Script=_ Sharada}', "");
+    Expect(0, 70112, '\p{Script=_ Sharada}', "");
+    Expect(1, 70112, '\p{^Script=_ Sharada}', "");
+    Expect(1, 70112, '\P{Script=_ Sharada}', "");
+    Expect(0, 70112, '\P{^Script=_ Sharada}', "");
+    Error('\p{Sc=_:=SHRD}');
+    Error('\P{Sc=_:=SHRD}');
     Expect(1, 70111, '\p{Sc=:\AShrd\z:}', "");;
     Expect(0, 70112, '\p{Sc=:\AShrd\z:}', "");;
     Expect(1, 70111, '\p{Sc=shrd}', "");
@@ -138241,16 +139577,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70112, '\P{^Sc=shrd}', "");
     Expect(1, 70111, '\p{Sc=:\Ashrd\z:}', "");;
     Expect(0, 70112, '\p{Sc=:\Ashrd\z:}', "");;
-    Expect(1, 70111, '\p{Sc= 	SHRD}', "");
-    Expect(0, 70111, '\p{^Sc= 	SHRD}', "");
-    Expect(0, 70111, '\P{Sc= 	SHRD}', "");
-    Expect(1, 70111, '\P{^Sc= 	SHRD}', "");
-    Expect(0, 70112, '\p{Sc= 	SHRD}', "");
-    Expect(1, 70112, '\p{^Sc= 	SHRD}', "");
-    Expect(1, 70112, '\P{Sc= 	SHRD}', "");
-    Expect(0, 70112, '\P{^Sc= 	SHRD}', "");
-    Error('\p{Is_Script=Sharada:=}');
-    Error('\P{Is_Script=Sharada:=}');
+    Expect(1, 70111, '\p{Sc=		SHRD}', "");
+    Expect(0, 70111, '\p{^Sc=		SHRD}', "");
+    Expect(0, 70111, '\P{Sc=		SHRD}', "");
+    Expect(1, 70111, '\P{^Sc=		SHRD}', "");
+    Expect(0, 70112, '\p{Sc=		SHRD}', "");
+    Expect(1, 70112, '\p{^Sc=		SHRD}', "");
+    Expect(1, 70112, '\P{Sc=		SHRD}', "");
+    Expect(0, 70112, '\P{^Sc=		SHRD}', "");
+    Error('\p{Is_Script=/a/-_sharada}');
+    Error('\P{Is_Script=/a/-_sharada}');
     Expect(1, 70111, '\p{Is_Script=sharada}', "");
     Expect(0, 70111, '\p{^Is_Script=sharada}', "");
     Expect(0, 70111, '\P{Is_Script=sharada}', "");
@@ -138259,16 +139595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^Is_Script=sharada}', "");
     Expect(1, 70112, '\P{Is_Script=sharada}', "");
     Expect(0, 70112, '\P{^Is_Script=sharada}', "");
-    Expect(1, 70111, '\p{Is_Script= SHARADA}', "");
-    Expect(0, 70111, '\p{^Is_Script= SHARADA}', "");
-    Expect(0, 70111, '\P{Is_Script= SHARADA}', "");
-    Expect(1, 70111, '\P{^Is_Script= SHARADA}', "");
-    Expect(0, 70112, '\p{Is_Script= SHARADA}', "");
-    Expect(1, 70112, '\p{^Is_Script= SHARADA}', "");
-    Expect(1, 70112, '\P{Is_Script= SHARADA}', "");
-    Expect(0, 70112, '\P{^Is_Script= SHARADA}', "");
-    Error('\p{Is_Sc=_/a/Shrd}');
-    Error('\P{Is_Sc=_/a/Shrd}');
+    Expect(1, 70111, '\p{Is_Script=_sharada}', "");
+    Expect(0, 70111, '\p{^Is_Script=_sharada}', "");
+    Expect(0, 70111, '\P{Is_Script=_sharada}', "");
+    Expect(1, 70111, '\P{^Is_Script=_sharada}', "");
+    Expect(0, 70112, '\p{Is_Script=_sharada}', "");
+    Expect(1, 70112, '\p{^Is_Script=_sharada}', "");
+    Expect(1, 70112, '\P{Is_Script=_sharada}', "");
+    Expect(0, 70112, '\P{^Is_Script=_sharada}', "");
+    Error('\p{Is_Sc=-:=SHRD}');
+    Error('\P{Is_Sc=-:=SHRD}');
     Expect(1, 70111, '\p{Is_Sc=shrd}', "");
     Expect(0, 70111, '\p{^Is_Sc=shrd}', "");
     Expect(0, 70111, '\P{Is_Sc=shrd}', "");
@@ -138277,60 +139613,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^Is_Sc=shrd}', "");
     Expect(1, 70112, '\P{Is_Sc=shrd}', "");
     Expect(0, 70112, '\P{^Is_Sc=shrd}', "");
-    Expect(1, 70111, '\p{Is_Sc= 	Shrd}', "");
-    Expect(0, 70111, '\p{^Is_Sc= 	Shrd}', "");
-    Expect(0, 70111, '\P{Is_Sc= 	Shrd}', "");
-    Expect(1, 70111, '\P{^Is_Sc= 	Shrd}', "");
-    Expect(0, 70112, '\p{Is_Sc= 	Shrd}', "");
-    Expect(1, 70112, '\p{^Is_Sc= 	Shrd}', "");
-    Expect(1, 70112, '\P{Is_Sc= 	Shrd}', "");
-    Expect(0, 70112, '\P{^Is_Sc= 	Shrd}', "");
-    Error('\p{Script:-/a/siddham}');
-    Error('\P{Script:-/a/siddham}');
+    Expect(1, 70111, '\p{Is_Sc=	shrd}', "");
+    Expect(0, 70111, '\p{^Is_Sc=	shrd}', "");
+    Expect(0, 70111, '\P{Is_Sc=	shrd}', "");
+    Expect(1, 70111, '\P{^Is_Sc=	shrd}', "");
+    Expect(0, 70112, '\p{Is_Sc=	shrd}', "");
+    Expect(1, 70112, '\p{^Is_Sc=	shrd}', "");
+    Expect(1, 70112, '\P{Is_Sc=	shrd}', "");
+    Expect(0, 70112, '\P{^Is_Sc=	shrd}', "");
+    Error('\p{Script= 	Siddham/a/}');
+    Error('\P{Script= 	Siddham/a/}');
     Expect(1, 71133, '\p{Script=:\ASiddham\z:}', "");;
     Expect(0, 71134, '\p{Script=:\ASiddham\z:}', "");;
-    Expect(1, 71133, '\p{Script=siddham}', "");
-    Expect(0, 71133, '\p{^Script=siddham}', "");
-    Expect(0, 71133, '\P{Script=siddham}', "");
-    Expect(1, 71133, '\P{^Script=siddham}', "");
-    Expect(0, 71134, '\p{Script=siddham}', "");
-    Expect(1, 71134, '\p{^Script=siddham}', "");
-    Expect(1, 71134, '\P{Script=siddham}', "");
-    Expect(0, 71134, '\P{^Script=siddham}', "");
+    Expect(1, 71133, '\p{Script:siddham}', "");
+    Expect(0, 71133, '\p{^Script:siddham}', "");
+    Expect(0, 71133, '\P{Script:siddham}', "");
+    Expect(1, 71133, '\P{^Script:siddham}', "");
+    Expect(0, 71134, '\p{Script:siddham}', "");
+    Expect(1, 71134, '\p{^Script:siddham}', "");
+    Expect(1, 71134, '\P{Script:siddham}', "");
+    Expect(0, 71134, '\P{^Script:siddham}', "");
     Expect(1, 71133, '\p{Script=:\Asiddham\z:}', "");;
     Expect(0, 71134, '\p{Script=:\Asiddham\z:}', "");;
-    Expect(1, 71133, '\p{Script=- Siddham}', "");
-    Expect(0, 71133, '\p{^Script=- Siddham}', "");
-    Expect(0, 71133, '\P{Script=- Siddham}', "");
-    Expect(1, 71133, '\P{^Script=- Siddham}', "");
-    Expect(0, 71134, '\p{Script=- Siddham}', "");
-    Expect(1, 71134, '\p{^Script=- Siddham}', "");
-    Expect(1, 71134, '\P{Script=- Siddham}', "");
-    Expect(0, 71134, '\P{^Script=- Siddham}', "");
-    Error('\p{Sc=:=_-Sidd}');
-    Error('\P{Sc=:=_-Sidd}');
+    Expect(1, 71133, '\p{Script=-	Siddham}', "");
+    Expect(0, 71133, '\p{^Script=-	Siddham}', "");
+    Expect(0, 71133, '\P{Script=-	Siddham}', "");
+    Expect(1, 71133, '\P{^Script=-	Siddham}', "");
+    Expect(0, 71134, '\p{Script=-	Siddham}', "");
+    Expect(1, 71134, '\p{^Script=-	Siddham}', "");
+    Expect(1, 71134, '\P{Script=-	Siddham}', "");
+    Expect(0, 71134, '\P{^Script=-	Siddham}', "");
+    Error('\p{Sc=_	Sidd:=}');
+    Error('\P{Sc=_	Sidd:=}');
     Expect(1, 71133, '\p{Sc=:\ASidd\z:}', "");;
     Expect(0, 71134, '\p{Sc=:\ASidd\z:}', "");;
-    Expect(1, 71133, '\p{Sc=sidd}', "");
-    Expect(0, 71133, '\p{^Sc=sidd}', "");
-    Expect(0, 71133, '\P{Sc=sidd}', "");
-    Expect(1, 71133, '\P{^Sc=sidd}', "");
-    Expect(0, 71134, '\p{Sc=sidd}', "");
-    Expect(1, 71134, '\p{^Sc=sidd}', "");
-    Expect(1, 71134, '\P{Sc=sidd}', "");
-    Expect(0, 71134, '\P{^Sc=sidd}', "");
+    Expect(1, 71133, '\p{Sc: sidd}', "");
+    Expect(0, 71133, '\p{^Sc: sidd}', "");
+    Expect(0, 71133, '\P{Sc: sidd}', "");
+    Expect(1, 71133, '\P{^Sc: sidd}', "");
+    Expect(0, 71134, '\p{Sc: sidd}', "");
+    Expect(1, 71134, '\p{^Sc: sidd}', "");
+    Expect(1, 71134, '\P{Sc: sidd}', "");
+    Expect(0, 71134, '\P{^Sc: sidd}', "");
     Expect(1, 71133, '\p{Sc=:\Asidd\z:}', "");;
     Expect(0, 71134, '\p{Sc=:\Asidd\z:}', "");;
-    Expect(1, 71133, '\p{Sc=-_Sidd}', "");
-    Expect(0, 71133, '\p{^Sc=-_Sidd}', "");
-    Expect(0, 71133, '\P{Sc=-_Sidd}', "");
-    Expect(1, 71133, '\P{^Sc=-_Sidd}', "");
-    Expect(0, 71134, '\p{Sc=-_Sidd}', "");
-    Expect(1, 71134, '\p{^Sc=-_Sidd}', "");
-    Expect(1, 71134, '\P{Sc=-_Sidd}', "");
-    Expect(0, 71134, '\P{^Sc=-_Sidd}', "");
-    Error('\p{Is_Script=:=_-siddham}');
-    Error('\P{Is_Script=:=_-siddham}');
+    Expect(1, 71133, '\p{Sc= sidd}', "");
+    Expect(0, 71133, '\p{^Sc= sidd}', "");
+    Expect(0, 71133, '\P{Sc= sidd}', "");
+    Expect(1, 71133, '\P{^Sc= sidd}', "");
+    Expect(0, 71134, '\p{Sc= sidd}', "");
+    Expect(1, 71134, '\p{^Sc= sidd}', "");
+    Expect(1, 71134, '\P{Sc= sidd}', "");
+    Expect(0, 71134, '\P{^Sc= sidd}', "");
+    Error('\p{Is_Script=	 siddham:=}');
+    Error('\P{Is_Script=	 siddham:=}');
     Expect(1, 71133, '\p{Is_Script=siddham}', "");
     Expect(0, 71133, '\p{^Is_Script=siddham}', "");
     Expect(0, 71133, '\P{Is_Script=siddham}', "");
@@ -138339,34 +139675,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71134, '\p{^Is_Script=siddham}', "");
     Expect(1, 71134, '\P{Is_Script=siddham}', "");
     Expect(0, 71134, '\P{^Is_Script=siddham}', "");
-    Expect(1, 71133, '\p{Is_Script=		Siddham}', "");
-    Expect(0, 71133, '\p{^Is_Script=		Siddham}', "");
-    Expect(0, 71133, '\P{Is_Script=		Siddham}', "");
-    Expect(1, 71133, '\P{^Is_Script=		Siddham}', "");
-    Expect(0, 71134, '\p{Is_Script=		Siddham}', "");
-    Expect(1, 71134, '\p{^Is_Script=		Siddham}', "");
-    Expect(1, 71134, '\P{Is_Script=		Siddham}', "");
-    Expect(0, 71134, '\P{^Is_Script=		Siddham}', "");
-    Error('\p{Is_Sc=:=_Sidd}');
-    Error('\P{Is_Sc=:=_Sidd}');
-    Expect(1, 71133, '\p{Is_Sc=sidd}', "");
-    Expect(0, 71133, '\p{^Is_Sc=sidd}', "");
-    Expect(0, 71133, '\P{Is_Sc=sidd}', "");
-    Expect(1, 71133, '\P{^Is_Sc=sidd}', "");
-    Expect(0, 71134, '\p{Is_Sc=sidd}', "");
-    Expect(1, 71134, '\p{^Is_Sc=sidd}', "");
-    Expect(1, 71134, '\P{Is_Sc=sidd}', "");
-    Expect(0, 71134, '\P{^Is_Sc=sidd}', "");
-    Expect(1, 71133, '\p{Is_Sc:  _Sidd}', "");
-    Expect(0, 71133, '\p{^Is_Sc:  _Sidd}', "");
-    Expect(0, 71133, '\P{Is_Sc:  _Sidd}', "");
-    Expect(1, 71133, '\P{^Is_Sc:  _Sidd}', "");
-    Expect(0, 71134, '\p{Is_Sc:  _Sidd}', "");
-    Expect(1, 71134, '\p{^Is_Sc:  _Sidd}', "");
-    Expect(1, 71134, '\P{Is_Sc:  _Sidd}', "");
-    Expect(0, 71134, '\P{^Is_Sc:  _Sidd}', "");
-    Error('\p{Script=/a/- khudawadi}');
-    Error('\P{Script=/a/- khudawadi}');
+    Expect(1, 71133, '\p{Is_Script=-Siddham}', "");
+    Expect(0, 71133, '\p{^Is_Script=-Siddham}', "");
+    Expect(0, 71133, '\P{Is_Script=-Siddham}', "");
+    Expect(1, 71133, '\P{^Is_Script=-Siddham}', "");
+    Expect(0, 71134, '\p{Is_Script=-Siddham}', "");
+    Expect(1, 71134, '\p{^Is_Script=-Siddham}', "");
+    Expect(1, 71134, '\P{Is_Script=-Siddham}', "");
+    Expect(0, 71134, '\P{^Is_Script=-Siddham}', "");
+    Error('\p{Is_Sc=/a/-Sidd}');
+    Error('\P{Is_Sc=/a/-Sidd}');
+    Expect(1, 71133, '\p{Is_Sc:   sidd}', "");
+    Expect(0, 71133, '\p{^Is_Sc:   sidd}', "");
+    Expect(0, 71133, '\P{Is_Sc:   sidd}', "");
+    Expect(1, 71133, '\P{^Is_Sc:   sidd}', "");
+    Expect(0, 71134, '\p{Is_Sc:   sidd}', "");
+    Expect(1, 71134, '\p{^Is_Sc:   sidd}', "");
+    Expect(1, 71134, '\P{Is_Sc:   sidd}', "");
+    Expect(0, 71134, '\P{^Is_Sc:   sidd}', "");
+    Expect(1, 71133, '\p{Is_Sc=	-Sidd}', "");
+    Expect(0, 71133, '\p{^Is_Sc=	-Sidd}', "");
+    Expect(0, 71133, '\P{Is_Sc=	-Sidd}', "");
+    Expect(1, 71133, '\P{^Is_Sc=	-Sidd}', "");
+    Expect(0, 71134, '\p{Is_Sc=	-Sidd}', "");
+    Expect(1, 71134, '\p{^Is_Sc=	-Sidd}', "");
+    Expect(1, 71134, '\P{Is_Sc=	-Sidd}', "");
+    Expect(0, 71134, '\P{^Is_Sc=	-Sidd}', "");
+    Error('\p{Script:-_Khudawadi:=}');
+    Error('\P{Script:-_Khudawadi:=}');
     Expect(1, 70393, '\p{Script=:\AKhudawadi\z:}', "");;
     Expect(0, 70394, '\p{Script=:\AKhudawadi\z:}', "");;
     Expect(1, 70393, '\p{Script=khudawadi}', "");
@@ -138379,16 +139715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70394, '\P{^Script=khudawadi}', "");
     Expect(1, 70393, '\p{Script=:\Akhudawadi\z:}', "");;
     Expect(0, 70394, '\p{Script=:\Akhudawadi\z:}', "");;
-    Expect(1, 70393, '\p{Script=_ KHUDAWADI}', "");
-    Expect(0, 70393, '\p{^Script=_ KHUDAWADI}', "");
-    Expect(0, 70393, '\P{Script=_ KHUDAWADI}', "");
-    Expect(1, 70393, '\P{^Script=_ KHUDAWADI}', "");
-    Expect(0, 70394, '\p{Script=_ KHUDAWADI}', "");
-    Expect(1, 70394, '\p{^Script=_ KHUDAWADI}', "");
-    Expect(1, 70394, '\P{Script=_ KHUDAWADI}', "");
-    Expect(0, 70394, '\P{^Script=_ KHUDAWADI}', "");
-    Error('\p{Sc=/a/-sind}');
-    Error('\P{Sc=/a/-sind}');
+    Expect(1, 70393, '\p{Script=__KHUDAWADI}', "");
+    Expect(0, 70393, '\p{^Script=__KHUDAWADI}', "");
+    Expect(0, 70393, '\P{Script=__KHUDAWADI}', "");
+    Expect(1, 70393, '\P{^Script=__KHUDAWADI}', "");
+    Expect(0, 70394, '\p{Script=__KHUDAWADI}', "");
+    Expect(1, 70394, '\p{^Script=__KHUDAWADI}', "");
+    Expect(1, 70394, '\P{Script=__KHUDAWADI}', "");
+    Expect(0, 70394, '\P{^Script=__KHUDAWADI}', "");
+    Error('\p{Sc=_SIND/a/}');
+    Error('\P{Sc=_SIND/a/}');
     Expect(1, 70393, '\p{Sc=:\ASind\z:}', "");;
     Expect(0, 70394, '\p{Sc=:\ASind\z:}', "");;
     Expect(1, 70393, '\p{Sc=sind}', "");
@@ -138401,16 +139737,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70394, '\P{^Sc=sind}', "");
     Expect(1, 70393, '\p{Sc=:\Asind\z:}', "");;
     Expect(0, 70394, '\p{Sc=:\Asind\z:}', "");;
-    Expect(1, 70393, '\p{Sc:   _ Sind}', "");
-    Expect(0, 70393, '\p{^Sc:   _ Sind}', "");
-    Expect(0, 70393, '\P{Sc:   _ Sind}', "");
-    Expect(1, 70393, '\P{^Sc:   _ Sind}', "");
-    Expect(0, 70394, '\p{Sc:   _ Sind}', "");
-    Expect(1, 70394, '\p{^Sc:   _ Sind}', "");
-    Expect(1, 70394, '\P{Sc:   _ Sind}', "");
-    Expect(0, 70394, '\P{^Sc:   _ Sind}', "");
-    Error('\p{Is_Script=:=--Khudawadi}');
-    Error('\P{Is_Script=:=--Khudawadi}');
+    Expect(1, 70393, '\p{Sc:   -Sind}', "");
+    Expect(0, 70393, '\p{^Sc:   -Sind}', "");
+    Expect(0, 70393, '\P{Sc:   -Sind}', "");
+    Expect(1, 70393, '\P{^Sc:   -Sind}', "");
+    Expect(0, 70394, '\p{Sc:   -Sind}', "");
+    Expect(1, 70394, '\p{^Sc:   -Sind}', "");
+    Expect(1, 70394, '\P{Sc:   -Sind}', "");
+    Expect(0, 70394, '\P{^Sc:   -Sind}', "");
+    Error('\p{Is_Script=-/a/khudawadi}');
+    Error('\P{Is_Script=-/a/khudawadi}');
     Expect(1, 70393, '\p{Is_Script=khudawadi}', "");
     Expect(0, 70393, '\p{^Is_Script=khudawadi}', "");
     Expect(0, 70393, '\P{Is_Script=khudawadi}', "");
@@ -138419,16 +139755,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70394, '\p{^Is_Script=khudawadi}', "");
     Expect(1, 70394, '\P{Is_Script=khudawadi}', "");
     Expect(0, 70394, '\P{^Is_Script=khudawadi}', "");
-    Expect(1, 70393, '\p{Is_Script=	Khudawadi}', "");
-    Expect(0, 70393, '\p{^Is_Script=	Khudawadi}', "");
-    Expect(0, 70393, '\P{Is_Script=	Khudawadi}', "");
-    Expect(1, 70393, '\P{^Is_Script=	Khudawadi}', "");
-    Expect(0, 70394, '\p{Is_Script=	Khudawadi}', "");
-    Expect(1, 70394, '\p{^Is_Script=	Khudawadi}', "");
-    Expect(1, 70394, '\P{Is_Script=	Khudawadi}', "");
-    Expect(0, 70394, '\P{^Is_Script=	Khudawadi}', "");
-    Error('\p{Is_Sc=-:=sind}');
-    Error('\P{Is_Sc=-:=sind}');
+    Expect(1, 70393, '\p{Is_Script=_ KHUDAWADI}', "");
+    Expect(0, 70393, '\p{^Is_Script=_ KHUDAWADI}', "");
+    Expect(0, 70393, '\P{Is_Script=_ KHUDAWADI}', "");
+    Expect(1, 70393, '\P{^Is_Script=_ KHUDAWADI}', "");
+    Expect(0, 70394, '\p{Is_Script=_ KHUDAWADI}', "");
+    Expect(1, 70394, '\p{^Is_Script=_ KHUDAWADI}', "");
+    Expect(1, 70394, '\P{Is_Script=_ KHUDAWADI}', "");
+    Expect(0, 70394, '\P{^Is_Script=_ KHUDAWADI}', "");
+    Error('\p{Is_Sc= :=sind}');
+    Error('\P{Is_Sc= :=sind}');
     Expect(1, 70393, '\p{Is_Sc=sind}', "");
     Expect(0, 70393, '\p{^Is_Sc=sind}', "");
     Expect(0, 70393, '\P{Is_Sc=sind}', "");
@@ -138437,16 +139773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70394, '\p{^Is_Sc=sind}', "");
     Expect(1, 70394, '\P{Is_Sc=sind}', "");
     Expect(0, 70394, '\P{^Is_Sc=sind}', "");
-    Expect(1, 70393, '\p{Is_Sc:  _SIND}', "");
-    Expect(0, 70393, '\p{^Is_Sc:  _SIND}', "");
-    Expect(0, 70393, '\P{Is_Sc:  _SIND}', "");
-    Expect(1, 70393, '\P{^Is_Sc:  _SIND}', "");
-    Expect(0, 70394, '\p{Is_Sc:  _SIND}', "");
-    Expect(1, 70394, '\p{^Is_Sc:  _SIND}', "");
-    Expect(1, 70394, '\P{Is_Sc:  _SIND}', "");
-    Expect(0, 70394, '\P{^Is_Sc:  _SIND}', "");
-    Error('\p{Script=_/a/sinhala}');
-    Error('\P{Script=_/a/sinhala}');
+    Expect(1, 70393, '\p{Is_Sc= -SIND}', "");
+    Expect(0, 70393, '\p{^Is_Sc= -SIND}', "");
+    Expect(0, 70393, '\P{Is_Sc= -SIND}', "");
+    Expect(1, 70393, '\P{^Is_Sc= -SIND}', "");
+    Expect(0, 70394, '\p{Is_Sc= -SIND}', "");
+    Expect(1, 70394, '\p{^Is_Sc= -SIND}', "");
+    Expect(1, 70394, '\P{Is_Sc= -SIND}', "");
+    Expect(0, 70394, '\P{^Is_Sc= -SIND}', "");
+    Error('\p{Script=-/a/Sinhala}');
+    Error('\P{Script=-/a/Sinhala}');
     Expect(1, 70132, '\p{Script=:\ASinhala\z:}', "");;
     Expect(0, 70133, '\p{Script=:\ASinhala\z:}', "");;
     Expect(1, 70132, '\p{Script=sinhala}', "");
@@ -138459,16 +139795,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70133, '\P{^Script=sinhala}', "");
     Expect(1, 70132, '\p{Script=:\Asinhala\z:}', "");;
     Expect(0, 70133, '\p{Script=:\Asinhala\z:}', "");;
-    Expect(1, 70132, '\p{Script=_	SINHALA}', "");
-    Expect(0, 70132, '\p{^Script=_	SINHALA}', "");
-    Expect(0, 70132, '\P{Script=_	SINHALA}', "");
-    Expect(1, 70132, '\P{^Script=_	SINHALA}', "");
-    Expect(0, 70133, '\p{Script=_	SINHALA}', "");
-    Expect(1, 70133, '\p{^Script=_	SINHALA}', "");
-    Expect(1, 70133, '\P{Script=_	SINHALA}', "");
-    Expect(0, 70133, '\P{^Script=_	SINHALA}', "");
-    Error('\p{Sc=-SINH/a/}');
-    Error('\P{Sc=-SINH/a/}');
+    Expect(1, 70132, '\p{Script=-_Sinhala}', "");
+    Expect(0, 70132, '\p{^Script=-_Sinhala}', "");
+    Expect(0, 70132, '\P{Script=-_Sinhala}', "");
+    Expect(1, 70132, '\P{^Script=-_Sinhala}', "");
+    Expect(0, 70133, '\p{Script=-_Sinhala}', "");
+    Expect(1, 70133, '\p{^Script=-_Sinhala}', "");
+    Expect(1, 70133, '\P{Script=-_Sinhala}', "");
+    Expect(0, 70133, '\P{^Script=-_Sinhala}', "");
+    Error('\p{Sc=_-sinh:=}');
+    Error('\P{Sc=_-sinh:=}');
     Expect(1, 70132, '\p{Sc=:\ASinh\z:}', "");;
     Expect(0, 70133, '\p{Sc=:\ASinh\z:}', "");;
     Expect(1, 70132, '\p{Sc=sinh}', "");
@@ -138481,16 +139817,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70133, '\P{^Sc=sinh}', "");
     Expect(1, 70132, '\p{Sc=:\Asinh\z:}', "");;
     Expect(0, 70133, '\p{Sc=:\Asinh\z:}', "");;
-    Expect(1, 70132, '\p{Sc=	Sinh}', "");
-    Expect(0, 70132, '\p{^Sc=	Sinh}', "");
-    Expect(0, 70132, '\P{Sc=	Sinh}', "");
-    Expect(1, 70132, '\P{^Sc=	Sinh}', "");
-    Expect(0, 70133, '\p{Sc=	Sinh}', "");
-    Expect(1, 70133, '\p{^Sc=	Sinh}', "");
-    Expect(1, 70133, '\P{Sc=	Sinh}', "");
-    Expect(0, 70133, '\P{^Sc=	Sinh}', "");
-    Error('\p{Is_Script=/a/--Sinhala}');
-    Error('\P{Is_Script=/a/--Sinhala}');
+    Expect(1, 70132, '\p{Sc:   - Sinh}', "");
+    Expect(0, 70132, '\p{^Sc:   - Sinh}', "");
+    Expect(0, 70132, '\P{Sc:   - Sinh}', "");
+    Expect(1, 70132, '\P{^Sc:   - Sinh}', "");
+    Expect(0, 70133, '\p{Sc:   - Sinh}', "");
+    Expect(1, 70133, '\p{^Sc:   - Sinh}', "");
+    Expect(1, 70133, '\P{Sc:   - Sinh}', "");
+    Expect(0, 70133, '\P{^Sc:   - Sinh}', "");
+    Error('\p{Is_Script=_:=Sinhala}');
+    Error('\P{Is_Script=_:=Sinhala}');
     Expect(1, 70132, '\p{Is_Script=sinhala}', "");
     Expect(0, 70132, '\p{^Is_Script=sinhala}', "");
     Expect(0, 70132, '\P{Is_Script=sinhala}', "");
@@ -138499,16 +139835,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^Is_Script=sinhala}', "");
     Expect(1, 70133, '\P{Is_Script=sinhala}', "");
     Expect(0, 70133, '\P{^Is_Script=sinhala}', "");
-    Expect(1, 70132, '\p{Is_Script=--Sinhala}', "");
-    Expect(0, 70132, '\p{^Is_Script=--Sinhala}', "");
-    Expect(0, 70132, '\P{Is_Script=--Sinhala}', "");
-    Expect(1, 70132, '\P{^Is_Script=--Sinhala}', "");
-    Expect(0, 70133, '\p{Is_Script=--Sinhala}', "");
-    Expect(1, 70133, '\p{^Is_Script=--Sinhala}', "");
-    Expect(1, 70133, '\P{Is_Script=--Sinhala}', "");
-    Expect(0, 70133, '\P{^Is_Script=--Sinhala}', "");
-    Error('\p{Is_Sc=/a/__Sinh}');
-    Error('\P{Is_Sc=/a/__Sinh}');
+    Expect(1, 70132, '\p{Is_Script:   _Sinhala}', "");
+    Expect(0, 70132, '\p{^Is_Script:   _Sinhala}', "");
+    Expect(0, 70132, '\P{Is_Script:   _Sinhala}', "");
+    Expect(1, 70132, '\P{^Is_Script:   _Sinhala}', "");
+    Expect(0, 70133, '\p{Is_Script:   _Sinhala}', "");
+    Expect(1, 70133, '\p{^Is_Script:   _Sinhala}', "");
+    Expect(1, 70133, '\P{Is_Script:   _Sinhala}', "");
+    Expect(0, 70133, '\P{^Is_Script:   _Sinhala}', "");
+    Error('\p{Is_Sc=:=_-sinh}');
+    Error('\P{Is_Sc=:=_-sinh}');
     Expect(1, 70132, '\p{Is_Sc=sinh}', "");
     Expect(0, 70132, '\p{^Is_Sc=sinh}', "");
     Expect(0, 70132, '\P{Is_Sc=sinh}', "");
@@ -138517,16 +139853,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^Is_Sc=sinh}', "");
     Expect(1, 70133, '\P{Is_Sc=sinh}', "");
     Expect(0, 70133, '\P{^Is_Sc=sinh}', "");
-    Expect(1, 70132, '\p{Is_Sc:   _ Sinh}', "");
-    Expect(0, 70132, '\p{^Is_Sc:   _ Sinh}', "");
-    Expect(0, 70132, '\P{Is_Sc:   _ Sinh}', "");
-    Expect(1, 70132, '\P{^Is_Sc:   _ Sinh}', "");
-    Expect(0, 70133, '\p{Is_Sc:   _ Sinh}', "");
-    Expect(1, 70133, '\p{^Is_Sc:   _ Sinh}', "");
-    Expect(1, 70133, '\P{Is_Sc:   _ Sinh}', "");
-    Expect(0, 70133, '\P{^Is_Sc:   _ Sinh}', "");
-    Error('\p{Script=/a/__Sogdian}');
-    Error('\P{Script=/a/__Sogdian}');
+    Expect(1, 70132, '\p{Is_Sc=		SINH}', "");
+    Expect(0, 70132, '\p{^Is_Sc=		SINH}', "");
+    Expect(0, 70132, '\P{Is_Sc=		SINH}', "");
+    Expect(1, 70132, '\P{^Is_Sc=		SINH}', "");
+    Expect(0, 70133, '\p{Is_Sc=		SINH}', "");
+    Expect(1, 70133, '\p{^Is_Sc=		SINH}', "");
+    Expect(1, 70133, '\P{Is_Sc=		SINH}', "");
+    Expect(0, 70133, '\P{^Is_Sc=		SINH}', "");
+    Error('\p{Script=_-Sogdian:=}');
+    Error('\P{Script=_-Sogdian:=}');
     Expect(1, 69465, '\p{Script=:\ASogdian\z:}', "");;
     Expect(0, 69466, '\p{Script=:\ASogdian\z:}', "");;
     Expect(1, 69465, '\p{Script=sogdian}', "");
@@ -138539,74 +139875,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69466, '\P{^Script=sogdian}', "");
     Expect(1, 69465, '\p{Script=:\Asogdian\z:}', "");;
     Expect(0, 69466, '\p{Script=:\Asogdian\z:}', "");;
-    Expect(1, 69465, '\p{Script= SOGDIAN}', "");
-    Expect(0, 69465, '\p{^Script= SOGDIAN}', "");
-    Expect(0, 69465, '\P{Script= SOGDIAN}', "");
-    Expect(1, 69465, '\P{^Script= SOGDIAN}', "");
-    Expect(0, 69466, '\p{Script= SOGDIAN}', "");
-    Expect(1, 69466, '\p{^Script= SOGDIAN}', "");
-    Expect(1, 69466, '\P{Script= SOGDIAN}', "");
-    Expect(0, 69466, '\P{^Script= SOGDIAN}', "");
-    Error('\p{Sc=_	sogd:=}');
-    Error('\P{Sc=_	sogd:=}');
+    Expect(1, 69465, '\p{Script=	Sogdian}', "");
+    Expect(0, 69465, '\p{^Script=	Sogdian}', "");
+    Expect(0, 69465, '\P{Script=	Sogdian}', "");
+    Expect(1, 69465, '\P{^Script=	Sogdian}', "");
+    Expect(0, 69466, '\p{Script=	Sogdian}', "");
+    Expect(1, 69466, '\p{^Script=	Sogdian}', "");
+    Expect(1, 69466, '\P{Script=	Sogdian}', "");
+    Expect(0, 69466, '\P{^Script=	Sogdian}', "");
+    Error('\p{Sc=_:=Sogd}');
+    Error('\P{Sc=_:=Sogd}');
     Expect(1, 69465, '\p{Sc=:\ASogd\z:}', "");;
     Expect(0, 69466, '\p{Sc=:\ASogd\z:}', "");;
-    Expect(1, 69465, '\p{Sc=sogd}', "");
-    Expect(0, 69465, '\p{^Sc=sogd}', "");
-    Expect(0, 69465, '\P{Sc=sogd}', "");
-    Expect(1, 69465, '\P{^Sc=sogd}', "");
-    Expect(0, 69466, '\p{Sc=sogd}', "");
-    Expect(1, 69466, '\p{^Sc=sogd}', "");
-    Expect(1, 69466, '\P{Sc=sogd}', "");
-    Expect(0, 69466, '\P{^Sc=sogd}', "");
+    Expect(1, 69465, '\p{Sc:sogd}', "");
+    Expect(0, 69465, '\p{^Sc:sogd}', "");
+    Expect(0, 69465, '\P{Sc:sogd}', "");
+    Expect(1, 69465, '\P{^Sc:sogd}', "");
+    Expect(0, 69466, '\p{Sc:sogd}', "");
+    Expect(1, 69466, '\p{^Sc:sogd}', "");
+    Expect(1, 69466, '\P{Sc:sogd}', "");
+    Expect(0, 69466, '\P{^Sc:sogd}', "");
     Expect(1, 69465, '\p{Sc=:\Asogd\z:}', "");;
     Expect(0, 69466, '\p{Sc=:\Asogd\z:}', "");;
-    Expect(1, 69465, '\p{Sc= -SOGD}', "");
-    Expect(0, 69465, '\p{^Sc= -SOGD}', "");
-    Expect(0, 69465, '\P{Sc= -SOGD}', "");
-    Expect(1, 69465, '\P{^Sc= -SOGD}', "");
-    Expect(0, 69466, '\p{Sc= -SOGD}', "");
-    Expect(1, 69466, '\p{^Sc= -SOGD}', "");
-    Expect(1, 69466, '\P{Sc= -SOGD}', "");
-    Expect(0, 69466, '\P{^Sc= -SOGD}', "");
-    Error('\p{Is_Script:	-sogdian:=}');
-    Error('\P{Is_Script:	-sogdian:=}');
-    Expect(1, 69465, '\p{Is_Script: sogdian}', "");
-    Expect(0, 69465, '\p{^Is_Script: sogdian}', "");
-    Expect(0, 69465, '\P{Is_Script: sogdian}', "");
-    Expect(1, 69465, '\P{^Is_Script: sogdian}', "");
-    Expect(0, 69466, '\p{Is_Script: sogdian}', "");
-    Expect(1, 69466, '\p{^Is_Script: sogdian}', "");
-    Expect(1, 69466, '\P{Is_Script: sogdian}', "");
-    Expect(0, 69466, '\P{^Is_Script: sogdian}', "");
-    Expect(1, 69465, '\p{Is_Script=-SOGDIAN}', "");
-    Expect(0, 69465, '\p{^Is_Script=-SOGDIAN}', "");
-    Expect(0, 69465, '\P{Is_Script=-SOGDIAN}', "");
-    Expect(1, 69465, '\P{^Is_Script=-SOGDIAN}', "");
-    Expect(0, 69466, '\p{Is_Script=-SOGDIAN}', "");
-    Expect(1, 69466, '\p{^Is_Script=-SOGDIAN}', "");
-    Expect(1, 69466, '\P{Is_Script=-SOGDIAN}', "");
-    Expect(0, 69466, '\P{^Is_Script=-SOGDIAN}', "");
-    Error('\p{Is_Sc=	:=Sogd}');
-    Error('\P{Is_Sc=	:=Sogd}');
-    Expect(1, 69465, '\p{Is_Sc:   sogd}', "");
-    Expect(0, 69465, '\p{^Is_Sc:   sogd}', "");
-    Expect(0, 69465, '\P{Is_Sc:   sogd}', "");
-    Expect(1, 69465, '\P{^Is_Sc:   sogd}', "");
-    Expect(0, 69466, '\p{Is_Sc:   sogd}', "");
-    Expect(1, 69466, '\p{^Is_Sc:   sogd}', "");
-    Expect(1, 69466, '\P{Is_Sc:   sogd}', "");
-    Expect(0, 69466, '\P{^Is_Sc:   sogd}', "");
-    Expect(1, 69465, '\p{Is_Sc=-_Sogd}', "");
-    Expect(0, 69465, '\p{^Is_Sc=-_Sogd}', "");
-    Expect(0, 69465, '\P{Is_Sc=-_Sogd}', "");
-    Expect(1, 69465, '\P{^Is_Sc=-_Sogd}', "");
-    Expect(0, 69466, '\p{Is_Sc=-_Sogd}', "");
-    Expect(1, 69466, '\p{^Is_Sc=-_Sogd}', "");
-    Expect(1, 69466, '\P{Is_Sc=-_Sogd}', "");
-    Expect(0, 69466, '\P{^Is_Sc=-_Sogd}', "");
-    Error('\p{Script:	/a/Old_Sogdian}');
-    Error('\P{Script:	/a/Old_Sogdian}');
+    Expect(1, 69465, '\p{Sc=-SOGD}', "");
+    Expect(0, 69465, '\p{^Sc=-SOGD}', "");
+    Expect(0, 69465, '\P{Sc=-SOGD}', "");
+    Expect(1, 69465, '\P{^Sc=-SOGD}', "");
+    Expect(0, 69466, '\p{Sc=-SOGD}', "");
+    Expect(1, 69466, '\p{^Sc=-SOGD}', "");
+    Expect(1, 69466, '\P{Sc=-SOGD}', "");
+    Expect(0, 69466, '\P{^Sc=-SOGD}', "");
+    Error('\p{Is_Script=_:=SOGDIAN}');
+    Error('\P{Is_Script=_:=SOGDIAN}');
+    Expect(1, 69465, '\p{Is_Script=sogdian}', "");
+    Expect(0, 69465, '\p{^Is_Script=sogdian}', "");
+    Expect(0, 69465, '\P{Is_Script=sogdian}', "");
+    Expect(1, 69465, '\P{^Is_Script=sogdian}', "");
+    Expect(0, 69466, '\p{Is_Script=sogdian}', "");
+    Expect(1, 69466, '\p{^Is_Script=sogdian}', "");
+    Expect(1, 69466, '\P{Is_Script=sogdian}', "");
+    Expect(0, 69466, '\P{^Is_Script=sogdian}', "");
+    Expect(1, 69465, '\p{Is_Script=	-sogdian}', "");
+    Expect(0, 69465, '\p{^Is_Script=	-sogdian}', "");
+    Expect(0, 69465, '\P{Is_Script=	-sogdian}', "");
+    Expect(1, 69465, '\P{^Is_Script=	-sogdian}', "");
+    Expect(0, 69466, '\p{Is_Script=	-sogdian}', "");
+    Expect(1, 69466, '\p{^Is_Script=	-sogdian}', "");
+    Expect(1, 69466, '\P{Is_Script=	-sogdian}', "");
+    Expect(0, 69466, '\P{^Is_Script=	-sogdian}', "");
+    Error('\p{Is_Sc=/a/-	Sogd}');
+    Error('\P{Is_Sc=/a/-	Sogd}');
+    Expect(1, 69465, '\p{Is_Sc=sogd}', "");
+    Expect(0, 69465, '\p{^Is_Sc=sogd}', "");
+    Expect(0, 69465, '\P{Is_Sc=sogd}', "");
+    Expect(1, 69465, '\P{^Is_Sc=sogd}', "");
+    Expect(0, 69466, '\p{Is_Sc=sogd}', "");
+    Expect(1, 69466, '\p{^Is_Sc=sogd}', "");
+    Expect(1, 69466, '\P{Is_Sc=sogd}', "");
+    Expect(0, 69466, '\P{^Is_Sc=sogd}', "");
+    Expect(1, 69465, '\p{Is_Sc=	-Sogd}', "");
+    Expect(0, 69465, '\p{^Is_Sc=	-Sogd}', "");
+    Expect(0, 69465, '\P{Is_Sc=	-Sogd}', "");
+    Expect(1, 69465, '\P{^Is_Sc=	-Sogd}', "");
+    Expect(0, 69466, '\p{Is_Sc=	-Sogd}', "");
+    Expect(1, 69466, '\p{^Is_Sc=	-Sogd}', "");
+    Expect(1, 69466, '\P{Is_Sc=	-Sogd}', "");
+    Expect(0, 69466, '\P{^Is_Sc=	-Sogd}', "");
+    Error('\p{Script=- Old_SOGDIAN:=}');
+    Error('\P{Script=- Old_SOGDIAN:=}');
     Expect(1, 69415, '\p{Script=:\AOld_Sogdian\z:}', "");;
     Expect(0, 69416, '\p{Script=:\AOld_Sogdian\z:}', "");;
     Expect(1, 69415, '\p{Script=oldsogdian}', "");
@@ -138619,16 +139955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69416, '\P{^Script=oldsogdian}', "");
     Expect(1, 69415, '\p{Script=:\Aoldsogdian\z:}', "");;
     Expect(0, 69416, '\p{Script=:\Aoldsogdian\z:}', "");;
-    Expect(1, 69415, '\p{Script=_ Old_Sogdian}', "");
-    Expect(0, 69415, '\p{^Script=_ Old_Sogdian}', "");
-    Expect(0, 69415, '\P{Script=_ Old_Sogdian}', "");
-    Expect(1, 69415, '\P{^Script=_ Old_Sogdian}', "");
-    Expect(0, 69416, '\p{Script=_ Old_Sogdian}', "");
-    Expect(1, 69416, '\p{^Script=_ Old_Sogdian}', "");
-    Expect(1, 69416, '\P{Script=_ Old_Sogdian}', "");
-    Expect(0, 69416, '\P{^Script=_ Old_Sogdian}', "");
-    Error('\p{Sc=-SOGO:=}');
-    Error('\P{Sc=-SOGO:=}');
+    Expect(1, 69415, '\p{Script=	old_SOGDIAN}', "");
+    Expect(0, 69415, '\p{^Script=	old_SOGDIAN}', "");
+    Expect(0, 69415, '\P{Script=	old_SOGDIAN}', "");
+    Expect(1, 69415, '\P{^Script=	old_SOGDIAN}', "");
+    Expect(0, 69416, '\p{Script=	old_SOGDIAN}', "");
+    Expect(1, 69416, '\p{^Script=	old_SOGDIAN}', "");
+    Expect(1, 69416, '\P{Script=	old_SOGDIAN}', "");
+    Expect(0, 69416, '\P{^Script=	old_SOGDIAN}', "");
+    Error('\p{Sc=:=-	Sogo}');
+    Error('\P{Sc=:=-	Sogo}');
     Expect(1, 69415, '\p{Sc=:\ASogo\z:}', "");;
     Expect(0, 69416, '\p{Sc=:\ASogo\z:}', "");;
     Expect(1, 69415, '\p{Sc=sogo}', "");
@@ -138641,52 +139977,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69416, '\P{^Sc=sogo}', "");
     Expect(1, 69415, '\p{Sc=:\Asogo\z:}', "");;
     Expect(0, 69416, '\p{Sc=:\Asogo\z:}', "");;
-    Expect(1, 69415, '\p{Sc=-	Sogo}', "");
-    Expect(0, 69415, '\p{^Sc=-	Sogo}', "");
-    Expect(0, 69415, '\P{Sc=-	Sogo}', "");
-    Expect(1, 69415, '\P{^Sc=-	Sogo}', "");
-    Expect(0, 69416, '\p{Sc=-	Sogo}', "");
-    Expect(1, 69416, '\p{^Sc=-	Sogo}', "");
-    Expect(1, 69416, '\P{Sc=-	Sogo}', "");
-    Expect(0, 69416, '\P{^Sc=-	Sogo}', "");
-    Error('\p{Is_Script=  old_SOGDIAN:=}');
-    Error('\P{Is_Script=  old_SOGDIAN:=}');
-    Expect(1, 69415, '\p{Is_Script=oldsogdian}', "");
-    Expect(0, 69415, '\p{^Is_Script=oldsogdian}', "");
-    Expect(0, 69415, '\P{Is_Script=oldsogdian}', "");
-    Expect(1, 69415, '\P{^Is_Script=oldsogdian}', "");
-    Expect(0, 69416, '\p{Is_Script=oldsogdian}', "");
-    Expect(1, 69416, '\p{^Is_Script=oldsogdian}', "");
-    Expect(1, 69416, '\P{Is_Script=oldsogdian}', "");
-    Expect(0, 69416, '\P{^Is_Script=oldsogdian}', "");
-    Expect(1, 69415, '\p{Is_Script=		Old_Sogdian}', "");
-    Expect(0, 69415, '\p{^Is_Script=		Old_Sogdian}', "");
-    Expect(0, 69415, '\P{Is_Script=		Old_Sogdian}', "");
-    Expect(1, 69415, '\P{^Is_Script=		Old_Sogdian}', "");
-    Expect(0, 69416, '\p{Is_Script=		Old_Sogdian}', "");
-    Expect(1, 69416, '\p{^Is_Script=		Old_Sogdian}', "");
-    Expect(1, 69416, '\P{Is_Script=		Old_Sogdian}', "");
-    Expect(0, 69416, '\P{^Is_Script=		Old_Sogdian}', "");
-    Error('\p{Is_Sc= :=SOGO}');
-    Error('\P{Is_Sc= :=SOGO}');
-    Expect(1, 69415, '\p{Is_Sc:   sogo}', "");
-    Expect(0, 69415, '\p{^Is_Sc:   sogo}', "");
-    Expect(0, 69415, '\P{Is_Sc:   sogo}', "");
-    Expect(1, 69415, '\P{^Is_Sc:   sogo}', "");
-    Expect(0, 69416, '\p{Is_Sc:   sogo}', "");
-    Expect(1, 69416, '\p{^Is_Sc:   sogo}', "");
-    Expect(1, 69416, '\P{Is_Sc:   sogo}', "");
-    Expect(0, 69416, '\P{^Is_Sc:   sogo}', "");
-    Expect(1, 69415, '\p{Is_Sc=_Sogo}', "");
-    Expect(0, 69415, '\p{^Is_Sc=_Sogo}', "");
-    Expect(0, 69415, '\P{Is_Sc=_Sogo}', "");
-    Expect(1, 69415, '\P{^Is_Sc=_Sogo}', "");
-    Expect(0, 69416, '\p{Is_Sc=_Sogo}', "");
-    Expect(1, 69416, '\p{^Is_Sc=_Sogo}', "");
-    Expect(1, 69416, '\P{Is_Sc=_Sogo}', "");
-    Expect(0, 69416, '\P{^Is_Sc=_Sogo}', "");
-    Error('\p{Script= SORA_sompeng:=}');
-    Error('\P{Script= SORA_sompeng:=}');
+    Expect(1, 69415, '\p{Sc=  sogo}', "");
+    Expect(0, 69415, '\p{^Sc=  sogo}', "");
+    Expect(0, 69415, '\P{Sc=  sogo}', "");
+    Expect(1, 69415, '\P{^Sc=  sogo}', "");
+    Expect(0, 69416, '\p{Sc=  sogo}', "");
+    Expect(1, 69416, '\p{^Sc=  sogo}', "");
+    Expect(1, 69416, '\P{Sc=  sogo}', "");
+    Expect(0, 69416, '\P{^Sc=  sogo}', "");
+    Error('\p{Is_Script=:=_OLD_Sogdian}');
+    Error('\P{Is_Script=:=_OLD_Sogdian}');
+    Expect(1, 69415, '\p{Is_Script: oldsogdian}', "");
+    Expect(0, 69415, '\p{^Is_Script: oldsogdian}', "");
+    Expect(0, 69415, '\P{Is_Script: oldsogdian}', "");
+    Expect(1, 69415, '\P{^Is_Script: oldsogdian}', "");
+    Expect(0, 69416, '\p{Is_Script: oldsogdian}', "");
+    Expect(1, 69416, '\p{^Is_Script: oldsogdian}', "");
+    Expect(1, 69416, '\P{Is_Script: oldsogdian}', "");
+    Expect(0, 69416, '\P{^Is_Script: oldsogdian}', "");
+    Expect(1, 69415, '\p{Is_Script= Old_sogdian}', "");
+    Expect(0, 69415, '\p{^Is_Script= Old_sogdian}', "");
+    Expect(0, 69415, '\P{Is_Script= Old_sogdian}', "");
+    Expect(1, 69415, '\P{^Is_Script= Old_sogdian}', "");
+    Expect(0, 69416, '\p{Is_Script= Old_sogdian}', "");
+    Expect(1, 69416, '\p{^Is_Script= Old_sogdian}', "");
+    Expect(1, 69416, '\P{Is_Script= Old_sogdian}', "");
+    Expect(0, 69416, '\P{^Is_Script= Old_sogdian}', "");
+    Error('\p{Is_Sc=  Sogo:=}');
+    Error('\P{Is_Sc=  Sogo:=}');
+    Expect(1, 69415, '\p{Is_Sc=sogo}', "");
+    Expect(0, 69415, '\p{^Is_Sc=sogo}', "");
+    Expect(0, 69415, '\P{Is_Sc=sogo}', "");
+    Expect(1, 69415, '\P{^Is_Sc=sogo}', "");
+    Expect(0, 69416, '\p{Is_Sc=sogo}', "");
+    Expect(1, 69416, '\p{^Is_Sc=sogo}', "");
+    Expect(1, 69416, '\P{Is_Sc=sogo}', "");
+    Expect(0, 69416, '\P{^Is_Sc=sogo}', "");
+    Expect(1, 69415, '\p{Is_Sc:   - SOGO}', "");
+    Expect(0, 69415, '\p{^Is_Sc:   - SOGO}', "");
+    Expect(0, 69415, '\P{Is_Sc:   - SOGO}', "");
+    Expect(1, 69415, '\P{^Is_Sc:   - SOGO}', "");
+    Expect(0, 69416, '\p{Is_Sc:   - SOGO}', "");
+    Expect(1, 69416, '\p{^Is_Sc:   - SOGO}', "");
+    Expect(1, 69416, '\P{Is_Sc:   - SOGO}', "");
+    Expect(0, 69416, '\P{^Is_Sc:   - SOGO}', "");
+    Error('\p{Script=/a/		sora_SOMPENG}');
+    Error('\P{Script=/a/		sora_SOMPENG}');
     Expect(1, 69881, '\p{Script=:\ASora_Sompeng\z:}', "");;
     Expect(0, 69882, '\p{Script=:\ASora_Sompeng\z:}', "");;
     Expect(1, 69881, '\p{Script=sorasompeng}', "");
@@ -138699,16 +140035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69882, '\P{^Script=sorasompeng}', "");
     Expect(1, 69881, '\p{Script=:\Asorasompeng\z:}', "");;
     Expect(0, 69882, '\p{Script=:\Asorasompeng\z:}', "");;
-    Expect(1, 69881, '\p{Script= Sora_Sompeng}', "");
-    Expect(0, 69881, '\p{^Script= Sora_Sompeng}', "");
-    Expect(0, 69881, '\P{Script= Sora_Sompeng}', "");
-    Expect(1, 69881, '\P{^Script= Sora_Sompeng}', "");
-    Expect(0, 69882, '\p{Script= Sora_Sompeng}', "");
-    Expect(1, 69882, '\p{^Script= Sora_Sompeng}', "");
-    Expect(1, 69882, '\P{Script= Sora_Sompeng}', "");
-    Expect(0, 69882, '\P{^Script= Sora_Sompeng}', "");
-    Error('\p{Sc=--sora/a/}');
-    Error('\P{Sc=--sora/a/}');
+    Expect(1, 69881, '\p{Script= _Sora_sompeng}', "");
+    Expect(0, 69881, '\p{^Script= _Sora_sompeng}', "");
+    Expect(0, 69881, '\P{Script= _Sora_sompeng}', "");
+    Expect(1, 69881, '\P{^Script= _Sora_sompeng}', "");
+    Expect(0, 69882, '\p{Script= _Sora_sompeng}', "");
+    Expect(1, 69882, '\p{^Script= _Sora_sompeng}', "");
+    Expect(1, 69882, '\P{Script= _Sora_sompeng}', "");
+    Expect(0, 69882, '\P{^Script= _Sora_sompeng}', "");
+    Error('\p{Sc=	SORA:=}');
+    Error('\P{Sc=	SORA:=}');
     Expect(1, 69881, '\p{Sc=:\ASora\z:}', "");;
     Expect(0, 69882, '\p{Sc=:\ASora\z:}', "");;
     Expect(1, 69881, '\p{Sc=sora}', "");
@@ -138721,16 +140057,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69882, '\P{^Sc=sora}', "");
     Expect(1, 69881, '\p{Sc=:\Asora\z:}', "");;
     Expect(0, 69882, '\p{Sc=:\Asora\z:}', "");;
-    Expect(1, 69881, '\p{Sc:		-Sora}', "");
-    Expect(0, 69881, '\p{^Sc:		-Sora}', "");
-    Expect(0, 69881, '\P{Sc:		-Sora}', "");
-    Expect(1, 69881, '\P{^Sc:		-Sora}', "");
-    Expect(0, 69882, '\p{Sc:		-Sora}', "");
-    Expect(1, 69882, '\p{^Sc:		-Sora}', "");
-    Expect(1, 69882, '\P{Sc:		-Sora}', "");
-    Expect(0, 69882, '\P{^Sc:		-Sora}', "");
-    Error('\p{Is_Script:    	Sora_SOMPENG/a/}');
-    Error('\P{Is_Script:    	Sora_SOMPENG/a/}');
+    Expect(1, 69881, '\p{Sc=-sora}', "");
+    Expect(0, 69881, '\p{^Sc=-sora}', "");
+    Expect(0, 69881, '\P{Sc=-sora}', "");
+    Expect(1, 69881, '\P{^Sc=-sora}', "");
+    Expect(0, 69882, '\p{Sc=-sora}', "");
+    Expect(1, 69882, '\p{^Sc=-sora}', "");
+    Expect(1, 69882, '\P{Sc=-sora}', "");
+    Expect(0, 69882, '\P{^Sc=-sora}', "");
+    Error('\p{Is_Script= :=Sora_Sompeng}');
+    Error('\P{Is_Script= :=Sora_Sompeng}');
     Expect(1, 69881, '\p{Is_Script=sorasompeng}', "");
     Expect(0, 69881, '\p{^Is_Script=sorasompeng}', "");
     Expect(0, 69881, '\P{Is_Script=sorasompeng}', "");
@@ -138739,34 +140075,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69882, '\p{^Is_Script=sorasompeng}', "");
     Expect(1, 69882, '\P{Is_Script=sorasompeng}', "");
     Expect(0, 69882, '\P{^Is_Script=sorasompeng}', "");
-    Expect(1, 69881, '\p{Is_Script: _-SORA_SOMPENG}', "");
-    Expect(0, 69881, '\p{^Is_Script: _-SORA_SOMPENG}', "");
-    Expect(0, 69881, '\P{Is_Script: _-SORA_SOMPENG}', "");
-    Expect(1, 69881, '\P{^Is_Script: _-SORA_SOMPENG}', "");
-    Expect(0, 69882, '\p{Is_Script: _-SORA_SOMPENG}', "");
-    Expect(1, 69882, '\p{^Is_Script: _-SORA_SOMPENG}', "");
-    Expect(1, 69882, '\P{Is_Script: _-SORA_SOMPENG}', "");
-    Expect(0, 69882, '\P{^Is_Script: _-SORA_SOMPENG}', "");
-    Error('\p{Is_Sc=-:=SORA}');
-    Error('\P{Is_Sc=-:=SORA}');
-    Expect(1, 69881, '\p{Is_Sc:   sora}', "");
-    Expect(0, 69881, '\p{^Is_Sc:   sora}', "");
-    Expect(0, 69881, '\P{Is_Sc:   sora}', "");
-    Expect(1, 69881, '\P{^Is_Sc:   sora}', "");
-    Expect(0, 69882, '\p{Is_Sc:   sora}', "");
-    Expect(1, 69882, '\p{^Is_Sc:   sora}', "");
-    Expect(1, 69882, '\P{Is_Sc:   sora}', "");
-    Expect(0, 69882, '\P{^Is_Sc:   sora}', "");
-    Expect(1, 69881, '\p{Is_Sc=-_sora}', "");
-    Expect(0, 69881, '\p{^Is_Sc=-_sora}', "");
-    Expect(0, 69881, '\P{Is_Sc=-_sora}', "");
-    Expect(1, 69881, '\P{^Is_Sc=-_sora}', "");
-    Expect(0, 69882, '\p{Is_Sc=-_sora}', "");
-    Expect(1, 69882, '\p{^Is_Sc=-_sora}', "");
-    Expect(1, 69882, '\P{Is_Sc=-_sora}', "");
-    Expect(0, 69882, '\P{^Is_Sc=-_sora}', "");
-    Error('\p{Script= /a/soyombo}');
-    Error('\P{Script= /a/soyombo}');
+    Expect(1, 69881, '\p{Is_Script=		sora_Sompeng}', "");
+    Expect(0, 69881, '\p{^Is_Script=		sora_Sompeng}', "");
+    Expect(0, 69881, '\P{Is_Script=		sora_Sompeng}', "");
+    Expect(1, 69881, '\P{^Is_Script=		sora_Sompeng}', "");
+    Expect(0, 69882, '\p{Is_Script=		sora_Sompeng}', "");
+    Expect(1, 69882, '\p{^Is_Script=		sora_Sompeng}', "");
+    Expect(1, 69882, '\P{Is_Script=		sora_Sompeng}', "");
+    Expect(0, 69882, '\P{^Is_Script=		sora_Sompeng}', "");
+    Error('\p{Is_Sc=	/a/SORA}');
+    Error('\P{Is_Sc=	/a/SORA}');
+    Expect(1, 69881, '\p{Is_Sc=sora}', "");
+    Expect(0, 69881, '\p{^Is_Sc=sora}', "");
+    Expect(0, 69881, '\P{Is_Sc=sora}', "");
+    Expect(1, 69881, '\P{^Is_Sc=sora}', "");
+    Expect(0, 69882, '\p{Is_Sc=sora}', "");
+    Expect(1, 69882, '\p{^Is_Sc=sora}', "");
+    Expect(1, 69882, '\P{Is_Sc=sora}', "");
+    Expect(0, 69882, '\P{^Is_Sc=sora}', "");
+    Expect(1, 69881, '\p{Is_Sc=-sora}', "");
+    Expect(0, 69881, '\p{^Is_Sc=-sora}', "");
+    Expect(0, 69881, '\P{Is_Sc=-sora}', "");
+    Expect(1, 69881, '\P{^Is_Sc=-sora}', "");
+    Expect(0, 69882, '\p{Is_Sc=-sora}', "");
+    Expect(1, 69882, '\p{^Is_Sc=-sora}', "");
+    Expect(1, 69882, '\P{Is_Sc=-sora}', "");
+    Expect(0, 69882, '\P{^Is_Sc=-sora}', "");
+    Error('\p{Script=	soyombo/a/}');
+    Error('\P{Script=	soyombo/a/}');
     Expect(1, 72354, '\p{Script=:\ASoyombo\z:}', "");;
     Expect(0, 72355, '\p{Script=:\ASoyombo\z:}', "");;
     Expect(1, 72354, '\p{Script=soyombo}', "");
@@ -138779,16 +140115,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72355, '\P{^Script=soyombo}', "");
     Expect(1, 72354, '\p{Script=:\Asoyombo\z:}', "");;
     Expect(0, 72355, '\p{Script=:\Asoyombo\z:}', "");;
-    Expect(1, 72354, '\p{Script=-soyombo}', "");
-    Expect(0, 72354, '\p{^Script=-soyombo}', "");
-    Expect(0, 72354, '\P{Script=-soyombo}', "");
-    Expect(1, 72354, '\P{^Script=-soyombo}', "");
-    Expect(0, 72355, '\p{Script=-soyombo}', "");
-    Expect(1, 72355, '\p{^Script=-soyombo}', "");
-    Expect(1, 72355, '\P{Script=-soyombo}', "");
-    Expect(0, 72355, '\P{^Script=-soyombo}', "");
-    Error('\p{Sc=:=_soyo}');
-    Error('\P{Sc=:=_soyo}');
+    Expect(1, 72354, '\p{Script=_Soyombo}', "");
+    Expect(0, 72354, '\p{^Script=_Soyombo}', "");
+    Expect(0, 72354, '\P{Script=_Soyombo}', "");
+    Expect(1, 72354, '\P{^Script=_Soyombo}', "");
+    Expect(0, 72355, '\p{Script=_Soyombo}', "");
+    Expect(1, 72355, '\p{^Script=_Soyombo}', "");
+    Expect(1, 72355, '\P{Script=_Soyombo}', "");
+    Expect(0, 72355, '\P{^Script=_Soyombo}', "");
+    Error('\p{Sc: 	soyo/a/}');
+    Error('\P{Sc: 	soyo/a/}');
     Expect(1, 72354, '\p{Sc=:\ASoyo\z:}', "");;
     Expect(0, 72355, '\p{Sc=:\ASoyo\z:}', "");;
     Expect(1, 72354, '\p{Sc=soyo}', "");
@@ -138801,16 +140137,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72355, '\P{^Sc=soyo}', "");
     Expect(1, 72354, '\p{Sc=:\Asoyo\z:}', "");;
     Expect(0, 72355, '\p{Sc=:\Asoyo\z:}', "");;
-    Expect(1, 72354, '\p{Sc=-	soyo}', "");
-    Expect(0, 72354, '\p{^Sc=-	soyo}', "");
-    Expect(0, 72354, '\P{Sc=-	soyo}', "");
-    Expect(1, 72354, '\P{^Sc=-	soyo}', "");
-    Expect(0, 72355, '\p{Sc=-	soyo}', "");
-    Expect(1, 72355, '\p{^Sc=-	soyo}', "");
-    Expect(1, 72355, '\P{Sc=-	soyo}', "");
-    Expect(0, 72355, '\P{^Sc=-	soyo}', "");
-    Error('\p{Is_Script= /a/SOYOMBO}');
-    Error('\P{Is_Script= /a/SOYOMBO}');
+    Expect(1, 72354, '\p{Sc=	 soyo}', "");
+    Expect(0, 72354, '\p{^Sc=	 soyo}', "");
+    Expect(0, 72354, '\P{Sc=	 soyo}', "");
+    Expect(1, 72354, '\P{^Sc=	 soyo}', "");
+    Expect(0, 72355, '\p{Sc=	 soyo}', "");
+    Expect(1, 72355, '\p{^Sc=	 soyo}', "");
+    Expect(1, 72355, '\P{Sc=	 soyo}', "");
+    Expect(0, 72355, '\P{^Sc=	 soyo}', "");
+    Error('\p{Is_Script=--Soyombo/a/}');
+    Error('\P{Is_Script=--Soyombo/a/}');
     Expect(1, 72354, '\p{Is_Script=soyombo}', "");
     Expect(0, 72354, '\p{^Is_Script=soyombo}', "");
     Expect(0, 72354, '\P{Is_Script=soyombo}', "");
@@ -138819,34 +140155,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72355, '\p{^Is_Script=soyombo}', "");
     Expect(1, 72355, '\P{Is_Script=soyombo}', "");
     Expect(0, 72355, '\P{^Is_Script=soyombo}', "");
-    Expect(1, 72354, '\p{Is_Script=	_soyombo}', "");
-    Expect(0, 72354, '\p{^Is_Script=	_soyombo}', "");
-    Expect(0, 72354, '\P{Is_Script=	_soyombo}', "");
-    Expect(1, 72354, '\P{^Is_Script=	_soyombo}', "");
-    Expect(0, 72355, '\p{Is_Script=	_soyombo}', "");
-    Expect(1, 72355, '\p{^Is_Script=	_soyombo}', "");
-    Expect(1, 72355, '\P{Is_Script=	_soyombo}', "");
-    Expect(0, 72355, '\P{^Is_Script=	_soyombo}', "");
-    Error('\p{Is_Sc= /a/soyo}');
-    Error('\P{Is_Sc= /a/soyo}');
-    Expect(1, 72354, '\p{Is_Sc=soyo}', "");
-    Expect(0, 72354, '\p{^Is_Sc=soyo}', "");
-    Expect(0, 72354, '\P{Is_Sc=soyo}', "");
-    Expect(1, 72354, '\P{^Is_Sc=soyo}', "");
-    Expect(0, 72355, '\p{Is_Sc=soyo}', "");
-    Expect(1, 72355, '\p{^Is_Sc=soyo}', "");
-    Expect(1, 72355, '\P{Is_Sc=soyo}', "");
-    Expect(0, 72355, '\P{^Is_Sc=soyo}', "");
-    Expect(1, 72354, '\p{Is_Sc:   - Soyo}', "");
-    Expect(0, 72354, '\p{^Is_Sc:   - Soyo}', "");
-    Expect(0, 72354, '\P{Is_Sc:   - Soyo}', "");
-    Expect(1, 72354, '\P{^Is_Sc:   - Soyo}', "");
-    Expect(0, 72355, '\p{Is_Sc:   - Soyo}', "");
-    Expect(1, 72355, '\p{^Is_Sc:   - Soyo}', "");
-    Expect(1, 72355, '\P{Is_Sc:   - Soyo}', "");
-    Expect(0, 72355, '\P{^Is_Sc:   - Soyo}', "");
-    Error('\p{Script=:=-Sundanese}');
-    Error('\P{Script=:=-Sundanese}');
+    Expect(1, 72354, '\p{Is_Script=	soyombo}', "");
+    Expect(0, 72354, '\p{^Is_Script=	soyombo}', "");
+    Expect(0, 72354, '\P{Is_Script=	soyombo}', "");
+    Expect(1, 72354, '\P{^Is_Script=	soyombo}', "");
+    Expect(0, 72355, '\p{Is_Script=	soyombo}', "");
+    Expect(1, 72355, '\p{^Is_Script=	soyombo}', "");
+    Expect(1, 72355, '\P{Is_Script=	soyombo}', "");
+    Expect(0, 72355, '\P{^Is_Script=	soyombo}', "");
+    Error('\p{Is_Sc=	/a/SOYO}');
+    Error('\P{Is_Sc=	/a/SOYO}');
+    Expect(1, 72354, '\p{Is_Sc:   soyo}', "");
+    Expect(0, 72354, '\p{^Is_Sc:   soyo}', "");
+    Expect(0, 72354, '\P{Is_Sc:   soyo}', "");
+    Expect(1, 72354, '\P{^Is_Sc:   soyo}', "");
+    Expect(0, 72355, '\p{Is_Sc:   soyo}', "");
+    Expect(1, 72355, '\p{^Is_Sc:   soyo}', "");
+    Expect(1, 72355, '\P{Is_Sc:   soyo}', "");
+    Expect(0, 72355, '\P{^Is_Sc:   soyo}', "");
+    Expect(1, 72354, '\p{Is_Sc= _SOYO}', "");
+    Expect(0, 72354, '\p{^Is_Sc= _SOYO}', "");
+    Expect(0, 72354, '\P{Is_Sc= _SOYO}', "");
+    Expect(1, 72354, '\P{^Is_Sc= _SOYO}', "");
+    Expect(0, 72355, '\p{Is_Sc= _SOYO}', "");
+    Expect(1, 72355, '\p{^Is_Sc= _SOYO}', "");
+    Expect(1, 72355, '\P{Is_Sc= _SOYO}', "");
+    Expect(0, 72355, '\P{^Is_Sc= _SOYO}', "");
+    Error('\p{Script=/a/-SUNDANESE}');
+    Error('\P{Script=/a/-SUNDANESE}');
     Expect(1, 7367, '\p{Script=:\ASundanese\z:}', "");;
     Expect(0, 7368, '\p{Script=:\ASundanese\z:}', "");;
     Expect(1, 7367, '\p{Script=sundanese}', "");
@@ -138867,8 +140203,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^Script=  Sundanese}', "");
     Expect(1, 7368, '\P{Script=  Sundanese}', "");
     Expect(0, 7368, '\P{^Script=  Sundanese}', "");
-    Error('\p{Sc=		SUND/a/}');
-    Error('\P{Sc=		SUND/a/}');
+    Error('\p{Sc=	sund:=}');
+    Error('\P{Sc=	sund:=}');
     Expect(1, 7367, '\p{Sc=:\ASund\z:}', "");;
     Expect(0, 7368, '\p{Sc=:\ASund\z:}', "");;
     Expect(1, 7367, '\p{Sc=sund}', "");
@@ -138881,16 +140217,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7368, '\P{^Sc=sund}', "");
     Expect(1, 7367, '\p{Sc=:\Asund\z:}', "");;
     Expect(0, 7368, '\p{Sc=:\Asund\z:}', "");;
-    Expect(1, 7367, '\p{Sc= _Sund}', "");
-    Expect(0, 7367, '\p{^Sc= _Sund}', "");
-    Expect(0, 7367, '\P{Sc= _Sund}', "");
-    Expect(1, 7367, '\P{^Sc= _Sund}', "");
-    Expect(0, 7368, '\p{Sc= _Sund}', "");
-    Expect(1, 7368, '\p{^Sc= _Sund}', "");
-    Expect(1, 7368, '\P{Sc= _Sund}', "");
-    Expect(0, 7368, '\P{^Sc= _Sund}', "");
-    Error('\p{Is_Script=-/a/sundanese}');
-    Error('\P{Is_Script=-/a/sundanese}');
+    Expect(1, 7367, '\p{Sc=_ Sund}', "");
+    Expect(0, 7367, '\p{^Sc=_ Sund}', "");
+    Expect(0, 7367, '\P{Sc=_ Sund}', "");
+    Expect(1, 7367, '\P{^Sc=_ Sund}', "");
+    Expect(0, 7368, '\p{Sc=_ Sund}', "");
+    Expect(1, 7368, '\p{^Sc=_ Sund}', "");
+    Expect(1, 7368, '\P{Sc=_ Sund}', "");
+    Expect(0, 7368, '\P{^Sc=_ Sund}', "");
+    Error('\p{Is_Script=/a/ -Sundanese}');
+    Error('\P{Is_Script=/a/ -Sundanese}');
     Expect(1, 7367, '\p{Is_Script=sundanese}', "");
     Expect(0, 7367, '\p{^Is_Script=sundanese}', "");
     Expect(0, 7367, '\P{Is_Script=sundanese}', "");
@@ -138899,16 +140235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^Is_Script=sundanese}', "");
     Expect(1, 7368, '\P{Is_Script=sundanese}', "");
     Expect(0, 7368, '\P{^Is_Script=sundanese}', "");
-    Expect(1, 7367, '\p{Is_Script=--sundanese}', "");
-    Expect(0, 7367, '\p{^Is_Script=--sundanese}', "");
-    Expect(0, 7367, '\P{Is_Script=--sundanese}', "");
-    Expect(1, 7367, '\P{^Is_Script=--sundanese}', "");
-    Expect(0, 7368, '\p{Is_Script=--sundanese}', "");
-    Expect(1, 7368, '\p{^Is_Script=--sundanese}', "");
-    Expect(1, 7368, '\P{Is_Script=--sundanese}', "");
-    Expect(0, 7368, '\P{^Is_Script=--sundanese}', "");
-    Error('\p{Is_Sc= _sund/a/}');
-    Error('\P{Is_Sc= _sund/a/}');
+    Expect(1, 7367, '\p{Is_Script:   __SUNDANESE}', "");
+    Expect(0, 7367, '\p{^Is_Script:   __SUNDANESE}', "");
+    Expect(0, 7367, '\P{Is_Script:   __SUNDANESE}', "");
+    Expect(1, 7367, '\P{^Is_Script:   __SUNDANESE}', "");
+    Expect(0, 7368, '\p{Is_Script:   __SUNDANESE}', "");
+    Expect(1, 7368, '\p{^Is_Script:   __SUNDANESE}', "");
+    Expect(1, 7368, '\P{Is_Script:   __SUNDANESE}', "");
+    Expect(0, 7368, '\P{^Is_Script:   __SUNDANESE}', "");
+    Error('\p{Is_Sc=	:=Sund}');
+    Error('\P{Is_Sc=	:=Sund}');
     Expect(1, 7367, '\p{Is_Sc=sund}', "");
     Expect(0, 7367, '\p{^Is_Sc=sund}', "");
     Expect(0, 7367, '\P{Is_Sc=sund}', "");
@@ -138917,16 +140253,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^Is_Sc=sund}', "");
     Expect(1, 7368, '\P{Is_Sc=sund}', "");
     Expect(0, 7368, '\P{^Is_Sc=sund}', "");
-    Expect(1, 7367, '\p{Is_Sc=	Sund}', "");
-    Expect(0, 7367, '\p{^Is_Sc=	Sund}', "");
-    Expect(0, 7367, '\P{Is_Sc=	Sund}', "");
-    Expect(1, 7367, '\P{^Is_Sc=	Sund}', "");
-    Expect(0, 7368, '\p{Is_Sc=	Sund}', "");
-    Expect(1, 7368, '\p{^Is_Sc=	Sund}', "");
-    Expect(1, 7368, '\P{Is_Sc=	Sund}', "");
-    Expect(0, 7368, '\P{^Is_Sc=	Sund}', "");
-    Error('\p{Script=-_Syloti_Nagri:=}');
-    Error('\P{Script=-_Syloti_Nagri:=}');
+    Expect(1, 7367, '\p{Is_Sc=_Sund}', "");
+    Expect(0, 7367, '\p{^Is_Sc=_Sund}', "");
+    Expect(0, 7367, '\P{Is_Sc=_Sund}', "");
+    Expect(1, 7367, '\P{^Is_Sc=_Sund}', "");
+    Expect(0, 7368, '\p{Is_Sc=_Sund}', "");
+    Expect(1, 7368, '\p{^Is_Sc=_Sund}', "");
+    Expect(1, 7368, '\P{Is_Sc=_Sund}', "");
+    Expect(0, 7368, '\P{^Is_Sc=_Sund}', "");
+    Error('\p{Script:	-_SYLOTI_NAGRI/a/}');
+    Error('\P{Script:	-_SYLOTI_NAGRI/a/}');
     Expect(1, 43052, '\p{Script=:\ASyloti_Nagri\z:}', "");;
     Expect(0, 43053, '\p{Script=:\ASyloti_Nagri\z:}', "");;
     Expect(1, 43052, '\p{Script=sylotinagri}', "");
@@ -138939,16 +140275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43053, '\P{^Script=sylotinagri}', "");
     Expect(1, 43052, '\p{Script=:\Asylotinagri\z:}', "");;
     Expect(0, 43053, '\p{Script=:\Asylotinagri\z:}', "");;
-    Expect(1, 43052, '\p{Script=_	syloti_Nagri}', "");
-    Expect(0, 43052, '\p{^Script=_	syloti_Nagri}', "");
-    Expect(0, 43052, '\P{Script=_	syloti_Nagri}', "");
-    Expect(1, 43052, '\P{^Script=_	syloti_Nagri}', "");
-    Expect(0, 43053, '\p{Script=_	syloti_Nagri}', "");
-    Expect(1, 43053, '\p{^Script=_	syloti_Nagri}', "");
-    Expect(1, 43053, '\P{Script=_	syloti_Nagri}', "");
-    Expect(0, 43053, '\P{^Script=_	syloti_Nagri}', "");
-    Error('\p{Sc=/a/_SYLO}');
-    Error('\P{Sc=/a/_SYLO}');
+    Expect(1, 43052, '\p{Script=- Syloti_Nagri}', "");
+    Expect(0, 43052, '\p{^Script=- Syloti_Nagri}', "");
+    Expect(0, 43052, '\P{Script=- Syloti_Nagri}', "");
+    Expect(1, 43052, '\P{^Script=- Syloti_Nagri}', "");
+    Expect(0, 43053, '\p{Script=- Syloti_Nagri}', "");
+    Expect(1, 43053, '\p{^Script=- Syloti_Nagri}', "");
+    Expect(1, 43053, '\P{Script=- Syloti_Nagri}', "");
+    Expect(0, 43053, '\P{^Script=- Syloti_Nagri}', "");
+    Error('\p{Sc= /a/Sylo}');
+    Error('\P{Sc= /a/Sylo}');
     Expect(1, 43052, '\p{Sc=:\ASylo\z:}', "");;
     Expect(0, 43053, '\p{Sc=:\ASylo\z:}', "");;
     Expect(1, 43052, '\p{Sc=sylo}', "");
@@ -138961,52 +140297,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43053, '\P{^Sc=sylo}', "");
     Expect(1, 43052, '\p{Sc=:\Asylo\z:}', "");;
     Expect(0, 43053, '\p{Sc=:\Asylo\z:}', "");;
-    Expect(1, 43052, '\p{Sc=_sylo}', "");
-    Expect(0, 43052, '\p{^Sc=_sylo}', "");
-    Expect(0, 43052, '\P{Sc=_sylo}', "");
-    Expect(1, 43052, '\P{^Sc=_sylo}', "");
-    Expect(0, 43053, '\p{Sc=_sylo}', "");
-    Expect(1, 43053, '\p{^Sc=_sylo}', "");
-    Expect(1, 43053, '\P{Sc=_sylo}', "");
-    Expect(0, 43053, '\P{^Sc=_sylo}', "");
-    Error('\p{Is_Script= -Syloti_Nagri/a/}');
-    Error('\P{Is_Script= -Syloti_Nagri/a/}');
-    Expect(1, 43052, '\p{Is_Script:   sylotinagri}', "");
-    Expect(0, 43052, '\p{^Is_Script:   sylotinagri}', "");
-    Expect(0, 43052, '\P{Is_Script:   sylotinagri}', "");
-    Expect(1, 43052, '\P{^Is_Script:   sylotinagri}', "");
-    Expect(0, 43053, '\p{Is_Script:   sylotinagri}', "");
-    Expect(1, 43053, '\p{^Is_Script:   sylotinagri}', "");
-    Expect(1, 43053, '\P{Is_Script:   sylotinagri}', "");
-    Expect(0, 43053, '\P{^Is_Script:   sylotinagri}', "");
-    Expect(1, 43052, '\p{Is_Script=-Syloti_Nagri}', "");
-    Expect(0, 43052, '\p{^Is_Script=-Syloti_Nagri}', "");
-    Expect(0, 43052, '\P{Is_Script=-Syloti_Nagri}', "");
-    Expect(1, 43052, '\P{^Is_Script=-Syloti_Nagri}', "");
-    Expect(0, 43053, '\p{Is_Script=-Syloti_Nagri}', "");
-    Expect(1, 43053, '\p{^Is_Script=-Syloti_Nagri}', "");
-    Expect(1, 43053, '\P{Is_Script=-Syloti_Nagri}', "");
-    Expect(0, 43053, '\P{^Is_Script=-Syloti_Nagri}', "");
-    Error('\p{Is_Sc=/a/_sylo}');
-    Error('\P{Is_Sc=/a/_sylo}');
-    Expect(1, 43052, '\p{Is_Sc:sylo}', "");
-    Expect(0, 43052, '\p{^Is_Sc:sylo}', "");
-    Expect(0, 43052, '\P{Is_Sc:sylo}', "");
-    Expect(1, 43052, '\P{^Is_Sc:sylo}', "");
-    Expect(0, 43053, '\p{Is_Sc:sylo}', "");
-    Expect(1, 43053, '\p{^Is_Sc:sylo}', "");
-    Expect(1, 43053, '\P{Is_Sc:sylo}', "");
-    Expect(0, 43053, '\P{^Is_Sc:sylo}', "");
-    Expect(1, 43052, '\p{Is_Sc=_ Sylo}', "");
-    Expect(0, 43052, '\p{^Is_Sc=_ Sylo}', "");
-    Expect(0, 43052, '\P{Is_Sc=_ Sylo}', "");
-    Expect(1, 43052, '\P{^Is_Sc=_ Sylo}', "");
-    Expect(0, 43053, '\p{Is_Sc=_ Sylo}', "");
-    Expect(1, 43053, '\p{^Is_Sc=_ Sylo}', "");
-    Expect(1, 43053, '\P{Is_Sc=_ Sylo}', "");
-    Expect(0, 43053, '\P{^Is_Sc=_ Sylo}', "");
-    Error('\p{Script=:=-SYRIAC}');
-    Error('\P{Script=:=-SYRIAC}');
+    Expect(1, 43052, '\p{Sc=	_sylo}', "");
+    Expect(0, 43052, '\p{^Sc=	_sylo}', "");
+    Expect(0, 43052, '\P{Sc=	_sylo}', "");
+    Expect(1, 43052, '\P{^Sc=	_sylo}', "");
+    Expect(0, 43053, '\p{Sc=	_sylo}', "");
+    Expect(1, 43053, '\p{^Sc=	_sylo}', "");
+    Expect(1, 43053, '\P{Sc=	_sylo}', "");
+    Expect(0, 43053, '\P{^Sc=	_sylo}', "");
+    Error('\p{Is_Script=/a/ 	Syloti_Nagri}');
+    Error('\P{Is_Script=/a/ 	Syloti_Nagri}');
+    Expect(1, 43052, '\p{Is_Script=sylotinagri}', "");
+    Expect(0, 43052, '\p{^Is_Script=sylotinagri}', "");
+    Expect(0, 43052, '\P{Is_Script=sylotinagri}', "");
+    Expect(1, 43052, '\P{^Is_Script=sylotinagri}', "");
+    Expect(0, 43053, '\p{Is_Script=sylotinagri}', "");
+    Expect(1, 43053, '\p{^Is_Script=sylotinagri}', "");
+    Expect(1, 43053, '\P{Is_Script=sylotinagri}', "");
+    Expect(0, 43053, '\P{^Is_Script=sylotinagri}', "");
+    Expect(1, 43052, '\p{Is_Script=_ Syloti_nagri}', "");
+    Expect(0, 43052, '\p{^Is_Script=_ Syloti_nagri}', "");
+    Expect(0, 43052, '\P{Is_Script=_ Syloti_nagri}', "");
+    Expect(1, 43052, '\P{^Is_Script=_ Syloti_nagri}', "");
+    Expect(0, 43053, '\p{Is_Script=_ Syloti_nagri}', "");
+    Expect(1, 43053, '\p{^Is_Script=_ Syloti_nagri}', "");
+    Expect(1, 43053, '\P{Is_Script=_ Syloti_nagri}', "");
+    Expect(0, 43053, '\P{^Is_Script=_ Syloti_nagri}', "");
+    Error('\p{Is_Sc=/a/_Sylo}');
+    Error('\P{Is_Sc=/a/_Sylo}');
+    Expect(1, 43052, '\p{Is_Sc=sylo}', "");
+    Expect(0, 43052, '\p{^Is_Sc=sylo}', "");
+    Expect(0, 43052, '\P{Is_Sc=sylo}', "");
+    Expect(1, 43052, '\P{^Is_Sc=sylo}', "");
+    Expect(0, 43053, '\p{Is_Sc=sylo}', "");
+    Expect(1, 43053, '\p{^Is_Sc=sylo}', "");
+    Expect(1, 43053, '\P{Is_Sc=sylo}', "");
+    Expect(0, 43053, '\P{^Is_Sc=sylo}', "");
+    Expect(1, 43052, '\p{Is_Sc:  sylo}', "");
+    Expect(0, 43052, '\p{^Is_Sc:  sylo}', "");
+    Expect(0, 43052, '\P{Is_Sc:  sylo}', "");
+    Expect(1, 43052, '\P{^Is_Sc:  sylo}', "");
+    Expect(0, 43053, '\p{Is_Sc:  sylo}', "");
+    Expect(1, 43053, '\p{^Is_Sc:  sylo}', "");
+    Expect(1, 43053, '\P{Is_Sc:  sylo}', "");
+    Expect(0, 43053, '\P{^Is_Sc:  sylo}', "");
+    Error('\p{Script= /a/Syriac}');
+    Error('\P{Script= /a/Syriac}');
     Expect(1, 2154, '\p{Script=:\ASyriac\z:}', "");;
     Expect(0, 2155, '\p{Script=:\ASyriac\z:}', "");;
     Expect(1, 2154, '\p{Script=syriac}', "");
@@ -139019,16 +140355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2155, '\P{^Script=syriac}', "");
     Expect(1, 2154, '\p{Script=:\Asyriac\z:}', "");;
     Expect(0, 2155, '\p{Script=:\Asyriac\z:}', "");;
-    Expect(1, 2154, '\p{Script=- Syriac}', "");
-    Expect(0, 2154, '\p{^Script=- Syriac}', "");
-    Expect(0, 2154, '\P{Script=- Syriac}', "");
-    Expect(1, 2154, '\P{^Script=- Syriac}', "");
-    Expect(0, 2155, '\p{Script=- Syriac}', "");
-    Expect(1, 2155, '\p{^Script=- Syriac}', "");
-    Expect(1, 2155, '\P{Script=- Syriac}', "");
-    Expect(0, 2155, '\P{^Script=- Syriac}', "");
-    Error('\p{Sc=/a/--SYRC}');
-    Error('\P{Sc=/a/--SYRC}');
+    Expect(1, 2154, '\p{Script:   -_SYRIAC}', "");
+    Expect(0, 2154, '\p{^Script:   -_SYRIAC}', "");
+    Expect(0, 2154, '\P{Script:   -_SYRIAC}', "");
+    Expect(1, 2154, '\P{^Script:   -_SYRIAC}', "");
+    Expect(0, 2155, '\p{Script:   -_SYRIAC}', "");
+    Expect(1, 2155, '\p{^Script:   -_SYRIAC}', "");
+    Expect(1, 2155, '\P{Script:   -_SYRIAC}', "");
+    Expect(0, 2155, '\P{^Script:   -_SYRIAC}', "");
+    Error('\p{Sc=	/a/Syrc}');
+    Error('\P{Sc=	/a/Syrc}');
     Expect(1, 2154, '\p{Sc=:\ASyrc\z:}', "");;
     Expect(0, 2155, '\p{Sc=:\ASyrc\z:}', "");;
     Expect(1, 2154, '\p{Sc=syrc}', "");
@@ -139041,16 +140377,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2155, '\P{^Sc=syrc}', "");
     Expect(1, 2154, '\p{Sc=:\Asyrc\z:}', "");;
     Expect(0, 2155, '\p{Sc=:\Asyrc\z:}', "");;
-    Expect(1, 2154, '\p{Sc=	-Syrc}', "");
-    Expect(0, 2154, '\p{^Sc=	-Syrc}', "");
-    Expect(0, 2154, '\P{Sc=	-Syrc}', "");
-    Expect(1, 2154, '\P{^Sc=	-Syrc}', "");
-    Expect(0, 2155, '\p{Sc=	-Syrc}', "");
-    Expect(1, 2155, '\p{^Sc=	-Syrc}', "");
-    Expect(1, 2155, '\P{Sc=	-Syrc}', "");
-    Expect(0, 2155, '\P{^Sc=	-Syrc}', "");
-    Error('\p{Is_Script: _/a/Syriac}');
-    Error('\P{Is_Script: _/a/Syriac}');
+    Expect(1, 2154, '\p{Sc=_SYRC}', "");
+    Expect(0, 2154, '\p{^Sc=_SYRC}', "");
+    Expect(0, 2154, '\P{Sc=_SYRC}', "");
+    Expect(1, 2154, '\P{^Sc=_SYRC}', "");
+    Expect(0, 2155, '\p{Sc=_SYRC}', "");
+    Expect(1, 2155, '\p{^Sc=_SYRC}', "");
+    Expect(1, 2155, '\P{Sc=_SYRC}', "");
+    Expect(0, 2155, '\P{^Sc=_SYRC}', "");
+    Error('\p{Is_Script=_	syriac/a/}');
+    Error('\P{Is_Script=_	syriac/a/}');
     Expect(1, 2154, '\p{Is_Script=syriac}', "");
     Expect(0, 2154, '\p{^Is_Script=syriac}', "");
     Expect(0, 2154, '\P{Is_Script=syriac}', "");
@@ -139059,16 +140395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2155, '\p{^Is_Script=syriac}', "");
     Expect(1, 2155, '\P{Is_Script=syriac}', "");
     Expect(0, 2155, '\P{^Is_Script=syriac}', "");
-    Expect(1, 2154, '\p{Is_Script=__SYRIAC}', "");
-    Expect(0, 2154, '\p{^Is_Script=__SYRIAC}', "");
-    Expect(0, 2154, '\P{Is_Script=__SYRIAC}', "");
-    Expect(1, 2154, '\P{^Is_Script=__SYRIAC}', "");
-    Expect(0, 2155, '\p{Is_Script=__SYRIAC}', "");
-    Expect(1, 2155, '\p{^Is_Script=__SYRIAC}', "");
-    Expect(1, 2155, '\P{Is_Script=__SYRIAC}', "");
-    Expect(0, 2155, '\P{^Is_Script=__SYRIAC}', "");
-    Error('\p{Is_Sc=/a/_	Syrc}');
-    Error('\P{Is_Sc=/a/_	Syrc}');
+    Expect(1, 2154, '\p{Is_Script:		_SYRIAC}', "");
+    Expect(0, 2154, '\p{^Is_Script:		_SYRIAC}', "");
+    Expect(0, 2154, '\P{Is_Script:		_SYRIAC}', "");
+    Expect(1, 2154, '\P{^Is_Script:		_SYRIAC}', "");
+    Expect(0, 2155, '\p{Is_Script:		_SYRIAC}', "");
+    Expect(1, 2155, '\p{^Is_Script:		_SYRIAC}', "");
+    Expect(1, 2155, '\P{Is_Script:		_SYRIAC}', "");
+    Expect(0, 2155, '\P{^Is_Script:		_SYRIAC}', "");
+    Error('\p{Is_Sc= /a/Syrc}');
+    Error('\P{Is_Sc= /a/Syrc}');
     Expect(1, 2154, '\p{Is_Sc=syrc}', "");
     Expect(0, 2154, '\p{^Is_Sc=syrc}', "");
     Expect(0, 2154, '\P{Is_Sc=syrc}', "");
@@ -139077,16 +140413,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2155, '\p{^Is_Sc=syrc}', "");
     Expect(1, 2155, '\P{Is_Sc=syrc}', "");
     Expect(0, 2155, '\P{^Is_Sc=syrc}', "");
-    Expect(1, 2154, '\p{Is_Sc=-_Syrc}', "");
-    Expect(0, 2154, '\p{^Is_Sc=-_Syrc}', "");
-    Expect(0, 2154, '\P{Is_Sc=-_Syrc}', "");
-    Expect(1, 2154, '\P{^Is_Sc=-_Syrc}', "");
-    Expect(0, 2155, '\p{Is_Sc=-_Syrc}', "");
-    Expect(1, 2155, '\p{^Is_Sc=-_Syrc}', "");
-    Expect(1, 2155, '\P{Is_Sc=-_Syrc}', "");
-    Expect(0, 2155, '\P{^Is_Sc=-_Syrc}', "");
-    Error('\p{Script= :=Tagbanwa}');
-    Error('\P{Script= :=Tagbanwa}');
+    Expect(1, 2154, '\p{Is_Sc=	syrc}', "");
+    Expect(0, 2154, '\p{^Is_Sc=	syrc}', "");
+    Expect(0, 2154, '\P{Is_Sc=	syrc}', "");
+    Expect(1, 2154, '\P{^Is_Sc=	syrc}', "");
+    Expect(0, 2155, '\p{Is_Sc=	syrc}', "");
+    Expect(1, 2155, '\p{^Is_Sc=	syrc}', "");
+    Expect(1, 2155, '\P{Is_Sc=	syrc}', "");
+    Expect(0, 2155, '\P{^Is_Sc=	syrc}', "");
+    Error('\p{Script=-	TAGBANWA:=}');
+    Error('\P{Script=-	TAGBANWA:=}');
     Expect(1, 6003, '\p{Script=:\ATagbanwa\z:}', "");;
     Expect(0, 6004, '\p{Script=:\ATagbanwa\z:}', "");;
     Expect(1, 6003, '\p{Script=tagbanwa}', "");
@@ -139099,16 +140435,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6004, '\P{^Script=tagbanwa}', "");
     Expect(1, 6003, '\p{Script=:\Atagbanwa\z:}', "");;
     Expect(0, 6004, '\p{Script=:\Atagbanwa\z:}', "");;
-    Expect(1, 6003, '\p{Script=	Tagbanwa}', "");
-    Expect(0, 6003, '\p{^Script=	Tagbanwa}', "");
-    Expect(0, 6003, '\P{Script=	Tagbanwa}', "");
-    Expect(1, 6003, '\P{^Script=	Tagbanwa}', "");
-    Expect(0, 6004, '\p{Script=	Tagbanwa}', "");
-    Expect(1, 6004, '\p{^Script=	Tagbanwa}', "");
-    Expect(1, 6004, '\P{Script=	Tagbanwa}', "");
-    Expect(0, 6004, '\P{^Script=	Tagbanwa}', "");
-    Error('\p{Sc=/a/-Tagb}');
-    Error('\P{Sc=/a/-Tagb}');
+    Expect(1, 6003, '\p{Script=_Tagbanwa}', "");
+    Expect(0, 6003, '\p{^Script=_Tagbanwa}', "");
+    Expect(0, 6003, '\P{Script=_Tagbanwa}', "");
+    Expect(1, 6003, '\P{^Script=_Tagbanwa}', "");
+    Expect(0, 6004, '\p{Script=_Tagbanwa}', "");
+    Expect(1, 6004, '\p{^Script=_Tagbanwa}', "");
+    Expect(1, 6004, '\P{Script=_Tagbanwa}', "");
+    Expect(0, 6004, '\P{^Script=_Tagbanwa}', "");
+    Error('\p{Sc= _tagb:=}');
+    Error('\P{Sc= _tagb:=}');
     Expect(1, 6003, '\p{Sc=:\ATagb\z:}', "");;
     Expect(0, 6004, '\p{Sc=:\ATagb\z:}', "");;
     Expect(1, 6003, '\p{Sc=tagb}', "");
@@ -139121,16 +140457,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6004, '\P{^Sc=tagb}', "");
     Expect(1, 6003, '\p{Sc=:\Atagb\z:}', "");;
     Expect(0, 6004, '\p{Sc=:\Atagb\z:}', "");;
-    Expect(1, 6003, '\p{Sc=-_Tagb}', "");
-    Expect(0, 6003, '\p{^Sc=-_Tagb}', "");
-    Expect(0, 6003, '\P{Sc=-_Tagb}', "");
-    Expect(1, 6003, '\P{^Sc=-_Tagb}', "");
-    Expect(0, 6004, '\p{Sc=-_Tagb}', "");
-    Expect(1, 6004, '\p{^Sc=-_Tagb}', "");
-    Expect(1, 6004, '\P{Sc=-_Tagb}', "");
-    Expect(0, 6004, '\P{^Sc=-_Tagb}', "");
-    Error('\p{Is_Script=:=__Tagbanwa}');
-    Error('\P{Is_Script=:=__Tagbanwa}');
+    Expect(1, 6003, '\p{Sc=_-TAGB}', "");
+    Expect(0, 6003, '\p{^Sc=_-TAGB}', "");
+    Expect(0, 6003, '\P{Sc=_-TAGB}', "");
+    Expect(1, 6003, '\P{^Sc=_-TAGB}', "");
+    Expect(0, 6004, '\p{Sc=_-TAGB}', "");
+    Expect(1, 6004, '\p{^Sc=_-TAGB}', "");
+    Expect(1, 6004, '\P{Sc=_-TAGB}', "");
+    Expect(0, 6004, '\P{^Sc=_-TAGB}', "");
+    Error('\p{Is_Script=	tagbanwa/a/}');
+    Error('\P{Is_Script=	tagbanwa/a/}');
     Expect(1, 6003, '\p{Is_Script=tagbanwa}', "");
     Expect(0, 6003, '\p{^Is_Script=tagbanwa}', "");
     Expect(0, 6003, '\P{Is_Script=tagbanwa}', "");
@@ -139139,34 +140475,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^Is_Script=tagbanwa}', "");
     Expect(1, 6004, '\P{Is_Script=tagbanwa}', "");
     Expect(0, 6004, '\P{^Is_Script=tagbanwa}', "");
-    Expect(1, 6003, '\p{Is_Script:	-tagbanwa}', "");
-    Expect(0, 6003, '\p{^Is_Script:	-tagbanwa}', "");
-    Expect(0, 6003, '\P{Is_Script:	-tagbanwa}', "");
-    Expect(1, 6003, '\P{^Is_Script:	-tagbanwa}', "");
-    Expect(0, 6004, '\p{Is_Script:	-tagbanwa}', "");
-    Expect(1, 6004, '\p{^Is_Script:	-tagbanwa}', "");
-    Expect(1, 6004, '\P{Is_Script:	-tagbanwa}', "");
-    Expect(0, 6004, '\P{^Is_Script:	-tagbanwa}', "");
-    Error('\p{Is_Sc=/a/	TAGB}');
-    Error('\P{Is_Sc=/a/	TAGB}');
-    Expect(1, 6003, '\p{Is_Sc:	tagb}', "");
-    Expect(0, 6003, '\p{^Is_Sc:	tagb}', "");
-    Expect(0, 6003, '\P{Is_Sc:	tagb}', "");
-    Expect(1, 6003, '\P{^Is_Sc:	tagb}', "");
-    Expect(0, 6004, '\p{Is_Sc:	tagb}', "");
-    Expect(1, 6004, '\p{^Is_Sc:	tagb}', "");
-    Expect(1, 6004, '\P{Is_Sc:	tagb}', "");
-    Expect(0, 6004, '\P{^Is_Sc:	tagb}', "");
-    Expect(1, 6003, '\p{Is_Sc:	 Tagb}', "");
-    Expect(0, 6003, '\p{^Is_Sc:	 Tagb}', "");
-    Expect(0, 6003, '\P{Is_Sc:	 Tagb}', "");
-    Expect(1, 6003, '\P{^Is_Sc:	 Tagb}', "");
-    Expect(0, 6004, '\p{Is_Sc:	 Tagb}', "");
-    Expect(1, 6004, '\p{^Is_Sc:	 Tagb}', "");
-    Expect(1, 6004, '\P{Is_Sc:	 Tagb}', "");
-    Expect(0, 6004, '\P{^Is_Sc:	 Tagb}', "");
-    Error('\p{Script:    -TAKRI/a/}');
-    Error('\P{Script:    -TAKRI/a/}');
+    Expect(1, 6003, '\p{Is_Script=Tagbanwa}', "");
+    Expect(0, 6003, '\p{^Is_Script=Tagbanwa}', "");
+    Expect(0, 6003, '\P{Is_Script=Tagbanwa}', "");
+    Expect(1, 6003, '\P{^Is_Script=Tagbanwa}', "");
+    Expect(0, 6004, '\p{Is_Script=Tagbanwa}', "");
+    Expect(1, 6004, '\p{^Is_Script=Tagbanwa}', "");
+    Expect(1, 6004, '\P{Is_Script=Tagbanwa}', "");
+    Expect(0, 6004, '\P{^Is_Script=Tagbanwa}', "");
+    Error('\p{Is_Sc=:=	_Tagb}');
+    Error('\P{Is_Sc=:=	_Tagb}');
+    Expect(1, 6003, '\p{Is_Sc=tagb}', "");
+    Expect(0, 6003, '\p{^Is_Sc=tagb}', "");
+    Expect(0, 6003, '\P{Is_Sc=tagb}', "");
+    Expect(1, 6003, '\P{^Is_Sc=tagb}', "");
+    Expect(0, 6004, '\p{Is_Sc=tagb}', "");
+    Expect(1, 6004, '\p{^Is_Sc=tagb}', "");
+    Expect(1, 6004, '\P{Is_Sc=tagb}', "");
+    Expect(0, 6004, '\P{^Is_Sc=tagb}', "");
+    Expect(1, 6003, '\p{Is_Sc=_ tagb}', "");
+    Expect(0, 6003, '\p{^Is_Sc=_ tagb}', "");
+    Expect(0, 6003, '\P{Is_Sc=_ tagb}', "");
+    Expect(1, 6003, '\P{^Is_Sc=_ tagb}', "");
+    Expect(0, 6004, '\p{Is_Sc=_ tagb}', "");
+    Expect(1, 6004, '\p{^Is_Sc=_ tagb}', "");
+    Expect(1, 6004, '\P{Is_Sc=_ tagb}', "");
+    Expect(0, 6004, '\P{^Is_Sc=_ tagb}', "");
+    Error('\p{Script=	takri:=}');
+    Error('\P{Script=	takri:=}');
     Expect(1, 71369, '\p{Script=:\ATakri\z:}', "");;
     Expect(0, 71370, '\p{Script=:\ATakri\z:}', "");;
     Expect(1, 71369, '\p{Script=takri}', "");
@@ -139179,16 +140515,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71370, '\P{^Script=takri}', "");
     Expect(1, 71369, '\p{Script=:\Atakri\z:}', "");;
     Expect(0, 71370, '\p{Script=:\Atakri\z:}', "");;
-    Expect(1, 71369, '\p{Script=	-Takri}', "");
-    Expect(0, 71369, '\p{^Script=	-Takri}', "");
-    Expect(0, 71369, '\P{Script=	-Takri}', "");
-    Expect(1, 71369, '\P{^Script=	-Takri}', "");
-    Expect(0, 71370, '\p{Script=	-Takri}', "");
-    Expect(1, 71370, '\p{^Script=	-Takri}', "");
-    Expect(1, 71370, '\P{Script=	-Takri}', "");
-    Expect(0, 71370, '\P{^Script=	-Takri}', "");
-    Error('\p{Sc=-takr/a/}');
-    Error('\P{Sc=-takr/a/}');
+    Expect(1, 71369, '\p{Script=_Takri}', "");
+    Expect(0, 71369, '\p{^Script=_Takri}', "");
+    Expect(0, 71369, '\P{Script=_Takri}', "");
+    Expect(1, 71369, '\P{^Script=_Takri}', "");
+    Expect(0, 71370, '\p{Script=_Takri}', "");
+    Expect(1, 71370, '\p{^Script=_Takri}', "");
+    Expect(1, 71370, '\P{Script=_Takri}', "");
+    Expect(0, 71370, '\P{^Script=_Takri}', "");
+    Error('\p{Sc: :=Takr}');
+    Error('\P{Sc: :=Takr}');
     Expect(1, 71369, '\p{Sc=:\ATakr\z:}', "");;
     Expect(0, 71370, '\p{Sc=:\ATakr\z:}', "");;
     Expect(1, 71369, '\p{Sc=takr}', "");
@@ -139201,16 +140537,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71370, '\P{^Sc=takr}', "");
     Expect(1, 71369, '\p{Sc=:\Atakr\z:}', "");;
     Expect(0, 71370, '\p{Sc=:\Atakr\z:}', "");;
-    Expect(1, 71369, '\p{Sc=- Takr}', "");
-    Expect(0, 71369, '\p{^Sc=- Takr}', "");
-    Expect(0, 71369, '\P{Sc=- Takr}', "");
-    Expect(1, 71369, '\P{^Sc=- Takr}', "");
-    Expect(0, 71370, '\p{Sc=- Takr}', "");
-    Expect(1, 71370, '\p{^Sc=- Takr}', "");
-    Expect(1, 71370, '\P{Sc=- Takr}', "");
-    Expect(0, 71370, '\P{^Sc=- Takr}', "");
-    Error('\p{Is_Script=- TAKRI/a/}');
-    Error('\P{Is_Script=- TAKRI/a/}');
+    Expect(1, 71369, '\p{Sc=-Takr}', "");
+    Expect(0, 71369, '\p{^Sc=-Takr}', "");
+    Expect(0, 71369, '\P{Sc=-Takr}', "");
+    Expect(1, 71369, '\P{^Sc=-Takr}', "");
+    Expect(0, 71370, '\p{Sc=-Takr}', "");
+    Expect(1, 71370, '\p{^Sc=-Takr}', "");
+    Expect(1, 71370, '\P{Sc=-Takr}', "");
+    Expect(0, 71370, '\P{^Sc=-Takr}', "");
+    Error('\p{Is_Script=/a/_takri}');
+    Error('\P{Is_Script=/a/_takri}');
     Expect(1, 71369, '\p{Is_Script=takri}', "");
     Expect(0, 71369, '\p{^Is_Script=takri}', "");
     Expect(0, 71369, '\P{Is_Script=takri}', "");
@@ -139219,16 +140555,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^Is_Script=takri}', "");
     Expect(1, 71370, '\P{Is_Script=takri}', "");
     Expect(0, 71370, '\P{^Is_Script=takri}', "");
-    Expect(1, 71369, '\p{Is_Script= _TAKRI}', "");
-    Expect(0, 71369, '\p{^Is_Script= _TAKRI}', "");
-    Expect(0, 71369, '\P{Is_Script= _TAKRI}', "");
-    Expect(1, 71369, '\P{^Is_Script= _TAKRI}', "");
-    Expect(0, 71370, '\p{Is_Script= _TAKRI}', "");
-    Expect(1, 71370, '\p{^Is_Script= _TAKRI}', "");
-    Expect(1, 71370, '\P{Is_Script= _TAKRI}', "");
-    Expect(0, 71370, '\P{^Is_Script= _TAKRI}', "");
-    Error('\p{Is_Sc=:=  takr}');
-    Error('\P{Is_Sc=:=  takr}');
+    Expect(1, 71369, '\p{Is_Script=-takri}', "");
+    Expect(0, 71369, '\p{^Is_Script=-takri}', "");
+    Expect(0, 71369, '\P{Is_Script=-takri}', "");
+    Expect(1, 71369, '\P{^Is_Script=-takri}', "");
+    Expect(0, 71370, '\p{Is_Script=-takri}', "");
+    Expect(1, 71370, '\p{^Is_Script=-takri}', "");
+    Expect(1, 71370, '\P{Is_Script=-takri}', "");
+    Expect(0, 71370, '\P{^Is_Script=-takri}', "");
+    Error('\p{Is_Sc=:=__Takr}');
+    Error('\P{Is_Sc=:=__Takr}');
     Expect(1, 71369, '\p{Is_Sc=takr}', "");
     Expect(0, 71369, '\p{^Is_Sc=takr}', "");
     Expect(0, 71369, '\P{Is_Sc=takr}', "");
@@ -139237,16 +140573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^Is_Sc=takr}', "");
     Expect(1, 71370, '\P{Is_Sc=takr}', "");
     Expect(0, 71370, '\P{^Is_Sc=takr}', "");
-    Expect(1, 71369, '\p{Is_Sc=	_takr}', "");
-    Expect(0, 71369, '\p{^Is_Sc=	_takr}', "");
-    Expect(0, 71369, '\P{Is_Sc=	_takr}', "");
-    Expect(1, 71369, '\P{^Is_Sc=	_takr}', "");
-    Expect(0, 71370, '\p{Is_Sc=	_takr}', "");
-    Expect(1, 71370, '\p{^Is_Sc=	_takr}', "");
-    Expect(1, 71370, '\P{Is_Sc=	_takr}', "");
-    Expect(0, 71370, '\P{^Is_Sc=	_takr}', "");
-    Error('\p{Script=/a/Tai_Le}');
-    Error('\P{Script=/a/Tai_Le}');
+    Expect(1, 71369, '\p{Is_Sc=_-takr}', "");
+    Expect(0, 71369, '\p{^Is_Sc=_-takr}', "");
+    Expect(0, 71369, '\P{Is_Sc=_-takr}', "");
+    Expect(1, 71369, '\P{^Is_Sc=_-takr}', "");
+    Expect(0, 71370, '\p{Is_Sc=_-takr}', "");
+    Expect(1, 71370, '\p{^Is_Sc=_-takr}', "");
+    Expect(1, 71370, '\P{Is_Sc=_-takr}', "");
+    Expect(0, 71370, '\P{^Is_Sc=_-takr}', "");
+    Error('\p{Script=	:=tai_le}');
+    Error('\P{Script=	:=tai_le}');
     Expect(1, 6516, '\p{Script=:\ATai_Le\z:}', "");;
     Expect(0, 6517, '\p{Script=:\ATai_Le\z:}', "");;
     Expect(1, 6516, '\p{Script=taile}', "");
@@ -139259,16 +140595,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6517, '\P{^Script=taile}', "");
     Expect(1, 6516, '\p{Script=:\Ataile\z:}', "");;
     Expect(0, 6517, '\p{Script=:\Ataile\z:}', "");;
-    Expect(1, 6516, '\p{Script=--TAI_LE}', "");
-    Expect(0, 6516, '\p{^Script=--TAI_LE}', "");
-    Expect(0, 6516, '\P{Script=--TAI_LE}', "");
-    Expect(1, 6516, '\P{^Script=--TAI_LE}', "");
-    Expect(0, 6517, '\p{Script=--TAI_LE}', "");
-    Expect(1, 6517, '\p{^Script=--TAI_LE}', "");
-    Expect(1, 6517, '\P{Script=--TAI_LE}', "");
-    Expect(0, 6517, '\P{^Script=--TAI_LE}', "");
-    Error('\p{Sc=_Tale/a/}');
-    Error('\P{Sc=_Tale/a/}');
+    Expect(1, 6516, '\p{Script=	TAI_LE}', "");
+    Expect(0, 6516, '\p{^Script=	TAI_LE}', "");
+    Expect(0, 6516, '\P{Script=	TAI_LE}', "");
+    Expect(1, 6516, '\P{^Script=	TAI_LE}', "");
+    Expect(0, 6517, '\p{Script=	TAI_LE}', "");
+    Expect(1, 6517, '\p{^Script=	TAI_LE}', "");
+    Expect(1, 6517, '\P{Script=	TAI_LE}', "");
+    Expect(0, 6517, '\P{^Script=	TAI_LE}', "");
+    Error('\p{Sc= 	Tale/a/}');
+    Error('\P{Sc= 	Tale/a/}');
     Expect(1, 6516, '\p{Sc=:\ATale\z:}', "");;
     Expect(0, 6517, '\p{Sc=:\ATale\z:}', "");;
     Expect(1, 6516, '\p{Sc=tale}', "");
@@ -139281,16 +140617,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6517, '\P{^Sc=tale}', "");
     Expect(1, 6516, '\p{Sc=:\Atale\z:}', "");;
     Expect(0, 6517, '\p{Sc=:\Atale\z:}', "");;
-    Expect(1, 6516, '\p{Sc=_tale}', "");
-    Expect(0, 6516, '\p{^Sc=_tale}', "");
-    Expect(0, 6516, '\P{Sc=_tale}', "");
-    Expect(1, 6516, '\P{^Sc=_tale}', "");
-    Expect(0, 6517, '\p{Sc=_tale}', "");
-    Expect(1, 6517, '\p{^Sc=_tale}', "");
-    Expect(1, 6517, '\P{Sc=_tale}', "");
-    Expect(0, 6517, '\P{^Sc=_tale}', "");
-    Error('\p{Is_Script=	tai_Le/a/}');
-    Error('\P{Is_Script=	tai_Le/a/}');
+    Expect(1, 6516, '\p{Sc=	-Tale}', "");
+    Expect(0, 6516, '\p{^Sc=	-Tale}', "");
+    Expect(0, 6516, '\P{Sc=	-Tale}', "");
+    Expect(1, 6516, '\P{^Sc=	-Tale}', "");
+    Expect(0, 6517, '\p{Sc=	-Tale}', "");
+    Expect(1, 6517, '\p{^Sc=	-Tale}', "");
+    Expect(1, 6517, '\P{Sc=	-Tale}', "");
+    Expect(0, 6517, '\P{^Sc=	-Tale}', "");
+    Error('\p{Is_Script=:= 	Tai_Le}');
+    Error('\P{Is_Script=:= 	Tai_Le}');
     Expect(1, 6516, '\p{Is_Script=taile}', "");
     Expect(0, 6516, '\p{^Is_Script=taile}', "");
     Expect(0, 6516, '\P{Is_Script=taile}', "");
@@ -139299,16 +140635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^Is_Script=taile}', "");
     Expect(1, 6517, '\P{Is_Script=taile}', "");
     Expect(0, 6517, '\P{^Is_Script=taile}', "");
-    Expect(1, 6516, '\p{Is_Script=- Tai_Le}', "");
-    Expect(0, 6516, '\p{^Is_Script=- Tai_Le}', "");
-    Expect(0, 6516, '\P{Is_Script=- Tai_Le}', "");
-    Expect(1, 6516, '\P{^Is_Script=- Tai_Le}', "");
-    Expect(0, 6517, '\p{Is_Script=- Tai_Le}', "");
-    Expect(1, 6517, '\p{^Is_Script=- Tai_Le}', "");
-    Expect(1, 6517, '\P{Is_Script=- Tai_Le}', "");
-    Expect(0, 6517, '\P{^Is_Script=- Tai_Le}', "");
-    Error('\p{Is_Sc=_TALE/a/}');
-    Error('\P{Is_Sc=_TALE/a/}');
+    Expect(1, 6516, '\p{Is_Script=--tai_le}', "");
+    Expect(0, 6516, '\p{^Is_Script=--tai_le}', "");
+    Expect(0, 6516, '\P{Is_Script=--tai_le}', "");
+    Expect(1, 6516, '\P{^Is_Script=--tai_le}', "");
+    Expect(0, 6517, '\p{Is_Script=--tai_le}', "");
+    Expect(1, 6517, '\p{^Is_Script=--tai_le}', "");
+    Expect(1, 6517, '\P{Is_Script=--tai_le}', "");
+    Expect(0, 6517, '\P{^Is_Script=--tai_le}', "");
+    Error('\p{Is_Sc=_/a/TALE}');
+    Error('\P{Is_Sc=_/a/TALE}');
     Expect(1, 6516, '\p{Is_Sc=tale}', "");
     Expect(0, 6516, '\p{^Is_Sc=tale}', "");
     Expect(0, 6516, '\P{Is_Sc=tale}', "");
@@ -139317,16 +140653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^Is_Sc=tale}', "");
     Expect(1, 6517, '\P{Is_Sc=tale}', "");
     Expect(0, 6517, '\P{^Is_Sc=tale}', "");
-    Expect(1, 6516, '\p{Is_Sc=		tale}', "");
-    Expect(0, 6516, '\p{^Is_Sc=		tale}', "");
-    Expect(0, 6516, '\P{Is_Sc=		tale}', "");
-    Expect(1, 6516, '\P{^Is_Sc=		tale}', "");
-    Expect(0, 6517, '\p{Is_Sc=		tale}', "");
-    Expect(1, 6517, '\p{^Is_Sc=		tale}', "");
-    Expect(1, 6517, '\P{Is_Sc=		tale}', "");
-    Expect(0, 6517, '\P{^Is_Sc=		tale}', "");
-    Error('\p{Script=	_NEW_TAI_Lue:=}');
-    Error('\P{Script=	_NEW_TAI_Lue:=}');
+    Expect(1, 6516, '\p{Is_Sc: _Tale}', "");
+    Expect(0, 6516, '\p{^Is_Sc: _Tale}', "");
+    Expect(0, 6516, '\P{Is_Sc: _Tale}', "");
+    Expect(1, 6516, '\P{^Is_Sc: _Tale}', "");
+    Expect(0, 6517, '\p{Is_Sc: _Tale}', "");
+    Expect(1, 6517, '\p{^Is_Sc: _Tale}', "");
+    Expect(1, 6517, '\P{Is_Sc: _Tale}', "");
+    Expect(0, 6517, '\P{^Is_Sc: _Tale}', "");
+    Error('\p{Script=	/a/New_tai_Lue}');
+    Error('\P{Script=	/a/New_tai_Lue}');
     Expect(1, 6623, '\p{Script=:\ANew_Tai_Lue\z:}', "");;
     Expect(0, 6624, '\p{Script=:\ANew_Tai_Lue\z:}', "");;
     Expect(1, 6623, '\p{Script=newtailue}', "");
@@ -139339,16 +140675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6624, '\P{^Script=newtailue}', "");
     Expect(1, 6623, '\p{Script=:\Anewtailue\z:}', "");;
     Expect(0, 6624, '\p{Script=:\Anewtailue\z:}', "");;
-    Expect(1, 6623, '\p{Script= _New_Tai_Lue}', "");
-    Expect(0, 6623, '\p{^Script= _New_Tai_Lue}', "");
-    Expect(0, 6623, '\P{Script= _New_Tai_Lue}', "");
-    Expect(1, 6623, '\P{^Script= _New_Tai_Lue}', "");
-    Expect(0, 6624, '\p{Script= _New_Tai_Lue}', "");
-    Expect(1, 6624, '\p{^Script= _New_Tai_Lue}', "");
-    Expect(1, 6624, '\P{Script= _New_Tai_Lue}', "");
-    Expect(0, 6624, '\P{^Script= _New_Tai_Lue}', "");
-    Error('\p{Sc=/a/-	Talu}');
-    Error('\P{Sc=/a/-	Talu}');
+    Expect(1, 6623, '\p{Script= New_TAI_Lue}', "");
+    Expect(0, 6623, '\p{^Script= New_TAI_Lue}', "");
+    Expect(0, 6623, '\P{Script= New_TAI_Lue}', "");
+    Expect(1, 6623, '\P{^Script= New_TAI_Lue}', "");
+    Expect(0, 6624, '\p{Script= New_TAI_Lue}', "");
+    Expect(1, 6624, '\p{^Script= New_TAI_Lue}', "");
+    Expect(1, 6624, '\P{Script= New_TAI_Lue}', "");
+    Expect(0, 6624, '\P{^Script= New_TAI_Lue}', "");
+    Error('\p{Sc=:=	_talu}');
+    Error('\P{Sc=:=	_talu}');
     Expect(1, 6623, '\p{Sc=:\ATalu\z:}', "");;
     Expect(0, 6624, '\p{Sc=:\ATalu\z:}', "");;
     Expect(1, 6623, '\p{Sc=talu}', "");
@@ -139361,16 +140697,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6624, '\P{^Sc=talu}', "");
     Expect(1, 6623, '\p{Sc=:\Atalu\z:}', "");;
     Expect(0, 6624, '\p{Sc=:\Atalu\z:}', "");;
-    Expect(1, 6623, '\p{Sc= 	Talu}', "");
-    Expect(0, 6623, '\p{^Sc= 	Talu}', "");
-    Expect(0, 6623, '\P{Sc= 	Talu}', "");
-    Expect(1, 6623, '\P{^Sc= 	Talu}', "");
-    Expect(0, 6624, '\p{Sc= 	Talu}', "");
-    Expect(1, 6624, '\p{^Sc= 	Talu}', "");
-    Expect(1, 6624, '\P{Sc= 	Talu}', "");
-    Expect(0, 6624, '\P{^Sc= 	Talu}', "");
-    Error('\p{Is_Script=/a/_-NEW_Tai_Lue}');
-    Error('\P{Is_Script=/a/_-NEW_Tai_Lue}');
+    Expect(1, 6623, '\p{Sc=_	talu}', "");
+    Expect(0, 6623, '\p{^Sc=_	talu}', "");
+    Expect(0, 6623, '\P{Sc=_	talu}', "");
+    Expect(1, 6623, '\P{^Sc=_	talu}', "");
+    Expect(0, 6624, '\p{Sc=_	talu}', "");
+    Expect(1, 6624, '\p{^Sc=_	talu}', "");
+    Expect(1, 6624, '\P{Sc=_	talu}', "");
+    Expect(0, 6624, '\P{^Sc=_	talu}', "");
+    Error('\p{Is_Script=_ New_TAI_Lue:=}');
+    Error('\P{Is_Script=_ New_TAI_Lue:=}');
     Expect(1, 6623, '\p{Is_Script=newtailue}', "");
     Expect(0, 6623, '\p{^Is_Script=newtailue}', "");
     Expect(0, 6623, '\P{Is_Script=newtailue}', "");
@@ -139379,16 +140715,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6624, '\p{^Is_Script=newtailue}', "");
     Expect(1, 6624, '\P{Is_Script=newtailue}', "");
     Expect(0, 6624, '\P{^Is_Script=newtailue}', "");
-    Expect(1, 6623, '\p{Is_Script=_NEW_TAI_Lue}', "");
-    Expect(0, 6623, '\p{^Is_Script=_NEW_TAI_Lue}', "");
-    Expect(0, 6623, '\P{Is_Script=_NEW_TAI_Lue}', "");
-    Expect(1, 6623, '\P{^Is_Script=_NEW_TAI_Lue}', "");
-    Expect(0, 6624, '\p{Is_Script=_NEW_TAI_Lue}', "");
-    Expect(1, 6624, '\p{^Is_Script=_NEW_TAI_Lue}', "");
-    Expect(1, 6624, '\P{Is_Script=_NEW_TAI_Lue}', "");
-    Expect(0, 6624, '\P{^Is_Script=_NEW_TAI_Lue}', "");
-    Error('\p{Is_Sc=-:=talu}');
-    Error('\P{Is_Sc=-:=talu}');
+    Expect(1, 6623, '\p{Is_Script=-new_tai_LUE}', "");
+    Expect(0, 6623, '\p{^Is_Script=-new_tai_LUE}', "");
+    Expect(0, 6623, '\P{Is_Script=-new_tai_LUE}', "");
+    Expect(1, 6623, '\P{^Is_Script=-new_tai_LUE}', "");
+    Expect(0, 6624, '\p{Is_Script=-new_tai_LUE}', "");
+    Expect(1, 6624, '\p{^Is_Script=-new_tai_LUE}', "");
+    Expect(1, 6624, '\P{Is_Script=-new_tai_LUE}', "");
+    Expect(0, 6624, '\P{^Is_Script=-new_tai_LUE}', "");
+    Error('\p{Is_Sc=:= Talu}');
+    Error('\P{Is_Sc=:= Talu}');
     Expect(1, 6623, '\p{Is_Sc=talu}', "");
     Expect(0, 6623, '\p{^Is_Sc=talu}', "");
     Expect(0, 6623, '\P{Is_Sc=talu}', "");
@@ -139397,16 +140733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6624, '\p{^Is_Sc=talu}', "");
     Expect(1, 6624, '\P{Is_Sc=talu}', "");
     Expect(0, 6624, '\P{^Is_Sc=talu}', "");
-    Expect(1, 6623, '\p{Is_Sc=-_TALU}', "");
-    Expect(0, 6623, '\p{^Is_Sc=-_TALU}', "");
-    Expect(0, 6623, '\P{Is_Sc=-_TALU}', "");
-    Expect(1, 6623, '\P{^Is_Sc=-_TALU}', "");
-    Expect(0, 6624, '\p{Is_Sc=-_TALU}', "");
-    Expect(1, 6624, '\p{^Is_Sc=-_TALU}', "");
-    Expect(1, 6624, '\P{Is_Sc=-_TALU}', "");
-    Expect(0, 6624, '\P{^Is_Sc=-_TALU}', "");
-    Error('\p{Script=/a/	 tamil}');
-    Error('\P{Script=/a/	 tamil}');
+    Expect(1, 6623, '\p{Is_Sc=Talu}', "");
+    Expect(0, 6623, '\p{^Is_Sc=Talu}', "");
+    Expect(0, 6623, '\P{Is_Sc=Talu}', "");
+    Expect(1, 6623, '\P{^Is_Sc=Talu}', "");
+    Expect(0, 6624, '\p{Is_Sc=Talu}', "");
+    Expect(1, 6624, '\p{^Is_Sc=Talu}', "");
+    Expect(1, 6624, '\P{Is_Sc=Talu}', "");
+    Expect(0, 6624, '\P{^Is_Sc=Talu}', "");
+    Error('\p{Script=- Tamil/a/}');
+    Error('\P{Script=- Tamil/a/}');
     Expect(1, 73727, '\p{Script=:\ATamil\z:}', "");;
     Expect(0, 73728, '\p{Script=:\ATamil\z:}', "");;
     Expect(1, 73727, '\p{Script=tamil}', "");
@@ -139419,16 +140755,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73728, '\P{^Script=tamil}', "");
     Expect(1, 73727, '\p{Script=:\Atamil\z:}', "");;
     Expect(0, 73728, '\p{Script=:\Atamil\z:}', "");;
-    Expect(1, 73727, '\p{Script:    	tamil}', "");
-    Expect(0, 73727, '\p{^Script:    	tamil}', "");
-    Expect(0, 73727, '\P{Script:    	tamil}', "");
-    Expect(1, 73727, '\P{^Script:    	tamil}', "");
-    Expect(0, 73728, '\p{Script:    	tamil}', "");
-    Expect(1, 73728, '\p{^Script:    	tamil}', "");
-    Expect(1, 73728, '\P{Script:    	tamil}', "");
-    Expect(0, 73728, '\P{^Script:    	tamil}', "");
-    Error('\p{Sc=/a/Taml}');
-    Error('\P{Sc=/a/Taml}');
+    Expect(1, 73727, '\p{Script=	Tamil}', "");
+    Expect(0, 73727, '\p{^Script=	Tamil}', "");
+    Expect(0, 73727, '\P{Script=	Tamil}', "");
+    Expect(1, 73727, '\P{^Script=	Tamil}', "");
+    Expect(0, 73728, '\p{Script=	Tamil}', "");
+    Expect(1, 73728, '\p{^Script=	Tamil}', "");
+    Expect(1, 73728, '\P{Script=	Tamil}', "");
+    Expect(0, 73728, '\P{^Script=	Tamil}', "");
+    Error('\p{Sc=:=	TAML}');
+    Error('\P{Sc=:=	TAML}');
     Expect(1, 73727, '\p{Sc=:\ATaml\z:}', "");;
     Expect(0, 73728, '\p{Sc=:\ATaml\z:}', "");;
     Expect(1, 73727, '\p{Sc=taml}', "");
@@ -139441,34 +140777,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73728, '\P{^Sc=taml}', "");
     Expect(1, 73727, '\p{Sc=:\Ataml\z:}', "");;
     Expect(0, 73728, '\p{Sc=:\Ataml\z:}', "");;
-    Expect(1, 73727, '\p{Sc= taml}', "");
-    Expect(0, 73727, '\p{^Sc= taml}', "");
-    Expect(0, 73727, '\P{Sc= taml}', "");
-    Expect(1, 73727, '\P{^Sc= taml}', "");
-    Expect(0, 73728, '\p{Sc= taml}', "");
-    Expect(1, 73728, '\p{^Sc= taml}', "");
-    Expect(1, 73728, '\P{Sc= taml}', "");
-    Expect(0, 73728, '\P{^Sc= taml}', "");
-    Error('\p{Is_Script=-:=tamil}');
-    Error('\P{Is_Script=-:=tamil}');
-    Expect(1, 73727, '\p{Is_Script:tamil}', "");
-    Expect(0, 73727, '\p{^Is_Script:tamil}', "");
-    Expect(0, 73727, '\P{Is_Script:tamil}', "");
-    Expect(1, 73727, '\P{^Is_Script:tamil}', "");
-    Expect(0, 73728, '\p{Is_Script:tamil}', "");
-    Expect(1, 73728, '\p{^Is_Script:tamil}', "");
-    Expect(1, 73728, '\P{Is_Script:tamil}', "");
-    Expect(0, 73728, '\P{^Is_Script:tamil}', "");
-    Expect(1, 73727, '\p{Is_Script= -TAMIL}', "");
-    Expect(0, 73727, '\p{^Is_Script= -TAMIL}', "");
-    Expect(0, 73727, '\P{Is_Script= -TAMIL}', "");
-    Expect(1, 73727, '\P{^Is_Script= -TAMIL}', "");
-    Expect(0, 73728, '\p{Is_Script= -TAMIL}', "");
-    Expect(1, 73728, '\p{^Is_Script= -TAMIL}', "");
-    Expect(1, 73728, '\P{Is_Script= -TAMIL}', "");
-    Expect(0, 73728, '\P{^Is_Script= -TAMIL}', "");
-    Error('\p{Is_Sc=	 TAML/a/}');
-    Error('\P{Is_Sc=	 TAML/a/}');
+    Expect(1, 73727, '\p{Sc= 	taml}', "");
+    Expect(0, 73727, '\p{^Sc= 	taml}', "");
+    Expect(0, 73727, '\P{Sc= 	taml}', "");
+    Expect(1, 73727, '\P{^Sc= 	taml}', "");
+    Expect(0, 73728, '\p{Sc= 	taml}', "");
+    Expect(1, 73728, '\p{^Sc= 	taml}', "");
+    Expect(1, 73728, '\P{Sc= 	taml}', "");
+    Expect(0, 73728, '\P{^Sc= 	taml}', "");
+    Error('\p{Is_Script: :=_	tamil}');
+    Error('\P{Is_Script: :=_	tamil}');
+    Expect(1, 73727, '\p{Is_Script=tamil}', "");
+    Expect(0, 73727, '\p{^Is_Script=tamil}', "");
+    Expect(0, 73727, '\P{Is_Script=tamil}', "");
+    Expect(1, 73727, '\P{^Is_Script=tamil}', "");
+    Expect(0, 73728, '\p{Is_Script=tamil}', "");
+    Expect(1, 73728, '\p{^Is_Script=tamil}', "");
+    Expect(1, 73728, '\P{Is_Script=tamil}', "");
+    Expect(0, 73728, '\P{^Is_Script=tamil}', "");
+    Expect(1, 73727, '\p{Is_Script=	TAMIL}', "");
+    Expect(0, 73727, '\p{^Is_Script=	TAMIL}', "");
+    Expect(0, 73727, '\P{Is_Script=	TAMIL}', "");
+    Expect(1, 73727, '\P{^Is_Script=	TAMIL}', "");
+    Expect(0, 73728, '\p{Is_Script=	TAMIL}', "");
+    Expect(1, 73728, '\p{^Is_Script=	TAMIL}', "");
+    Expect(1, 73728, '\P{Is_Script=	TAMIL}', "");
+    Expect(0, 73728, '\P{^Is_Script=	TAMIL}', "");
+    Error('\p{Is_Sc=	:=Taml}');
+    Error('\P{Is_Sc=	:=Taml}');
     Expect(1, 73727, '\p{Is_Sc=taml}', "");
     Expect(0, 73727, '\p{^Is_Sc=taml}', "");
     Expect(0, 73727, '\P{Is_Sc=taml}', "");
@@ -139477,16 +140813,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^Is_Sc=taml}', "");
     Expect(1, 73728, '\P{Is_Sc=taml}', "");
     Expect(0, 73728, '\P{^Is_Sc=taml}', "");
-    Expect(1, 73727, '\p{Is_Sc=_taml}', "");
-    Expect(0, 73727, '\p{^Is_Sc=_taml}', "");
-    Expect(0, 73727, '\P{Is_Sc=_taml}', "");
-    Expect(1, 73727, '\P{^Is_Sc=_taml}', "");
-    Expect(0, 73728, '\p{Is_Sc=_taml}', "");
-    Expect(1, 73728, '\p{^Is_Sc=_taml}', "");
-    Expect(1, 73728, '\P{Is_Sc=_taml}', "");
-    Expect(0, 73728, '\P{^Is_Sc=_taml}', "");
-    Error('\p{Script=__Tangut:=}');
-    Error('\P{Script=__Tangut:=}');
+    Expect(1, 73727, '\p{Is_Sc=-_taml}', "");
+    Expect(0, 73727, '\p{^Is_Sc=-_taml}', "");
+    Expect(0, 73727, '\P{Is_Sc=-_taml}', "");
+    Expect(1, 73727, '\P{^Is_Sc=-_taml}', "");
+    Expect(0, 73728, '\p{Is_Sc=-_taml}', "");
+    Expect(1, 73728, '\p{^Is_Sc=-_taml}', "");
+    Expect(1, 73728, '\P{Is_Sc=-_taml}', "");
+    Expect(0, 73728, '\P{^Is_Sc=-_taml}', "");
+    Error('\p{Script=_	Tangut/a/}');
+    Error('\P{Script=_	Tangut/a/}');
     Expect(1, 101640, '\p{Script=:\ATangut\z:}', "");;
     Expect(0, 101641, '\p{Script=:\ATangut\z:}', "");;
     Expect(1, 101640, '\p{Script=tangut}', "");
@@ -139499,74 +140835,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 101641, '\P{^Script=tangut}', "");
     Expect(1, 101640, '\p{Script=:\Atangut\z:}', "");;
     Expect(0, 101641, '\p{Script=:\Atangut\z:}', "");;
-    Expect(1, 101640, '\p{Script=-	tangut}', "");
-    Expect(0, 101640, '\p{^Script=-	tangut}', "");
-    Expect(0, 101640, '\P{Script=-	tangut}', "");
-    Expect(1, 101640, '\P{^Script=-	tangut}', "");
-    Expect(0, 101641, '\p{Script=-	tangut}', "");
-    Expect(1, 101641, '\p{^Script=-	tangut}', "");
-    Expect(1, 101641, '\P{Script=-	tangut}', "");
-    Expect(0, 101641, '\P{^Script=-	tangut}', "");
-    Error('\p{Sc:   /a/ -tang}');
-    Error('\P{Sc:   /a/ -tang}');
+    Expect(1, 101640, '\p{Script=Tangut}', "");
+    Expect(0, 101640, '\p{^Script=Tangut}', "");
+    Expect(0, 101640, '\P{Script=Tangut}', "");
+    Expect(1, 101640, '\P{^Script=Tangut}', "");
+    Expect(0, 101641, '\p{Script=Tangut}', "");
+    Expect(1, 101641, '\p{^Script=Tangut}', "");
+    Expect(1, 101641, '\P{Script=Tangut}', "");
+    Expect(0, 101641, '\P{^Script=Tangut}', "");
+    Error('\p{Sc=/a/ _Tang}');
+    Error('\P{Sc=/a/ _Tang}');
     Expect(1, 101640, '\p{Sc=:\ATang\z:}', "");;
     Expect(0, 101641, '\p{Sc=:\ATang\z:}', "");;
-    Expect(1, 101640, '\p{Sc: tang}', "");
-    Expect(0, 101640, '\p{^Sc: tang}', "");
-    Expect(0, 101640, '\P{Sc: tang}', "");
-    Expect(1, 101640, '\P{^Sc: tang}', "");
-    Expect(0, 101641, '\p{Sc: tang}', "");
-    Expect(1, 101641, '\p{^Sc: tang}', "");
-    Expect(1, 101641, '\P{Sc: tang}', "");
-    Expect(0, 101641, '\P{^Sc: tang}', "");
+    Expect(1, 101640, '\p{Sc=tang}', "");
+    Expect(0, 101640, '\p{^Sc=tang}', "");
+    Expect(0, 101640, '\P{Sc=tang}', "");
+    Expect(1, 101640, '\P{^Sc=tang}', "");
+    Expect(0, 101641, '\p{Sc=tang}', "");
+    Expect(1, 101641, '\p{^Sc=tang}', "");
+    Expect(1, 101641, '\P{Sc=tang}', "");
+    Expect(0, 101641, '\P{^Sc=tang}', "");
     Expect(1, 101640, '\p{Sc=:\Atang\z:}', "");;
     Expect(0, 101641, '\p{Sc=:\Atang\z:}', "");;
-    Expect(1, 101640, '\p{Sc:		_Tang}', "");
-    Expect(0, 101640, '\p{^Sc:		_Tang}', "");
-    Expect(0, 101640, '\P{Sc:		_Tang}', "");
-    Expect(1, 101640, '\P{^Sc:		_Tang}', "");
-    Expect(0, 101641, '\p{Sc:		_Tang}', "");
-    Expect(1, 101641, '\p{^Sc:		_Tang}', "");
-    Expect(1, 101641, '\P{Sc:		_Tang}', "");
-    Expect(0, 101641, '\P{^Sc:		_Tang}', "");
-    Error('\p{Is_Script= -TANGUT/a/}');
-    Error('\P{Is_Script= -TANGUT/a/}');
-    Expect(1, 101640, '\p{Is_Script=tangut}', "");
-    Expect(0, 101640, '\p{^Is_Script=tangut}', "");
-    Expect(0, 101640, '\P{Is_Script=tangut}', "");
-    Expect(1, 101640, '\P{^Is_Script=tangut}', "");
-    Expect(0, 101641, '\p{Is_Script=tangut}', "");
-    Expect(1, 101641, '\p{^Is_Script=tangut}', "");
-    Expect(1, 101641, '\P{Is_Script=tangut}', "");
-    Expect(0, 101641, '\P{^Is_Script=tangut}', "");
-    Expect(1, 101640, '\p{Is_Script:		tangut}', "");
-    Expect(0, 101640, '\p{^Is_Script:		tangut}', "");
-    Expect(0, 101640, '\P{Is_Script:		tangut}', "");
-    Expect(1, 101640, '\P{^Is_Script:		tangut}', "");
-    Expect(0, 101641, '\p{Is_Script:		tangut}', "");
-    Expect(1, 101641, '\p{^Is_Script:		tangut}', "");
-    Expect(1, 101641, '\P{Is_Script:		tangut}', "");
-    Expect(0, 101641, '\P{^Is_Script:		tangut}', "");
-    Error('\p{Is_Sc::=		TANG}');
-    Error('\P{Is_Sc::=		TANG}');
-    Expect(1, 101640, '\p{Is_Sc:	tang}', "");
-    Expect(0, 101640, '\p{^Is_Sc:	tang}', "");
-    Expect(0, 101640, '\P{Is_Sc:	tang}', "");
-    Expect(1, 101640, '\P{^Is_Sc:	tang}', "");
-    Expect(0, 101641, '\p{Is_Sc:	tang}', "");
-    Expect(1, 101641, '\p{^Is_Sc:	tang}', "");
-    Expect(1, 101641, '\P{Is_Sc:	tang}', "");
-    Expect(0, 101641, '\P{^Is_Sc:	tang}', "");
-    Expect(1, 101640, '\p{Is_Sc=-Tang}', "");
-    Expect(0, 101640, '\p{^Is_Sc=-Tang}', "");
-    Expect(0, 101640, '\P{Is_Sc=-Tang}', "");
-    Expect(1, 101640, '\P{^Is_Sc=-Tang}', "");
-    Expect(0, 101641, '\p{Is_Sc=-Tang}', "");
-    Expect(1, 101641, '\p{^Is_Sc=-Tang}', "");
-    Expect(1, 101641, '\P{Is_Sc=-Tang}', "");
-    Expect(0, 101641, '\P{^Is_Sc=-Tang}', "");
-    Error('\p{Script=Tai_viet/a/}');
-    Error('\P{Script=Tai_viet/a/}');
+    Expect(1, 101640, '\p{Sc= tang}', "");
+    Expect(0, 101640, '\p{^Sc= tang}', "");
+    Expect(0, 101640, '\P{Sc= tang}', "");
+    Expect(1, 101640, '\P{^Sc= tang}', "");
+    Expect(0, 101641, '\p{Sc= tang}', "");
+    Expect(1, 101641, '\p{^Sc= tang}', "");
+    Expect(1, 101641, '\P{Sc= tang}', "");
+    Expect(0, 101641, '\P{^Sc= tang}', "");
+    Error('\p{Is_Script=/a/	-TANGUT}');
+    Error('\P{Is_Script=/a/	-TANGUT}');
+    Expect(1, 101640, '\p{Is_Script:	tangut}', "");
+    Expect(0, 101640, '\p{^Is_Script:	tangut}', "");
+    Expect(0, 101640, '\P{Is_Script:	tangut}', "");
+    Expect(1, 101640, '\P{^Is_Script:	tangut}', "");
+    Expect(0, 101641, '\p{Is_Script:	tangut}', "");
+    Expect(1, 101641, '\p{^Is_Script:	tangut}', "");
+    Expect(1, 101641, '\P{Is_Script:	tangut}', "");
+    Expect(0, 101641, '\P{^Is_Script:	tangut}', "");
+    Expect(1, 101640, '\p{Is_Script= Tangut}', "");
+    Expect(0, 101640, '\p{^Is_Script= Tangut}', "");
+    Expect(0, 101640, '\P{Is_Script= Tangut}', "");
+    Expect(1, 101640, '\P{^Is_Script= Tangut}', "");
+    Expect(0, 101641, '\p{Is_Script= Tangut}', "");
+    Expect(1, 101641, '\p{^Is_Script= Tangut}', "");
+    Expect(1, 101641, '\P{Is_Script= Tangut}', "");
+    Expect(0, 101641, '\P{^Is_Script= Tangut}', "");
+    Error('\p{Is_Sc=:=	TANG}');
+    Error('\P{Is_Sc=:=	TANG}');
+    Expect(1, 101640, '\p{Is_Sc:tang}', "");
+    Expect(0, 101640, '\p{^Is_Sc:tang}', "");
+    Expect(0, 101640, '\P{Is_Sc:tang}', "");
+    Expect(1, 101640, '\P{^Is_Sc:tang}', "");
+    Expect(0, 101641, '\p{Is_Sc:tang}', "");
+    Expect(1, 101641, '\p{^Is_Sc:tang}', "");
+    Expect(1, 101641, '\P{Is_Sc:tang}', "");
+    Expect(0, 101641, '\P{^Is_Sc:tang}', "");
+    Expect(1, 101640, '\p{Is_Sc=	 Tang}', "");
+    Expect(0, 101640, '\p{^Is_Sc=	 Tang}', "");
+    Expect(0, 101640, '\P{Is_Sc=	 Tang}', "");
+    Expect(1, 101640, '\P{^Is_Sc=	 Tang}', "");
+    Expect(0, 101641, '\p{Is_Sc=	 Tang}', "");
+    Expect(1, 101641, '\p{^Is_Sc=	 Tang}', "");
+    Expect(1, 101641, '\P{Is_Sc=	 Tang}', "");
+    Expect(0, 101641, '\P{^Is_Sc=	 Tang}', "");
+    Error('\p{Script= :=Tai_VIET}');
+    Error('\P{Script= :=Tai_VIET}');
     Expect(1, 43743, '\p{Script=:\ATai_Viet\z:}', "");;
     Expect(0, 43744, '\p{Script=:\ATai_Viet\z:}', "");;
     Expect(1, 43743, '\p{Script=taiviet}', "");
@@ -139579,16 +140915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43744, '\P{^Script=taiviet}', "");
     Expect(1, 43743, '\p{Script=:\Ataiviet\z:}', "");;
     Expect(0, 43744, '\p{Script=:\Ataiviet\z:}', "");;
-    Expect(1, 43743, '\p{Script=-Tai_VIET}', "");
-    Expect(0, 43743, '\p{^Script=-Tai_VIET}', "");
-    Expect(0, 43743, '\P{Script=-Tai_VIET}', "");
-    Expect(1, 43743, '\P{^Script=-Tai_VIET}', "");
-    Expect(0, 43744, '\p{Script=-Tai_VIET}', "");
-    Expect(1, 43744, '\p{^Script=-Tai_VIET}', "");
-    Expect(1, 43744, '\P{Script=-Tai_VIET}', "");
-    Expect(0, 43744, '\P{^Script=-Tai_VIET}', "");
-    Error('\p{Sc=	TAVT:=}');
-    Error('\P{Sc=	TAVT:=}');
+    Expect(1, 43743, '\p{Script=_ Tai_Viet}', "");
+    Expect(0, 43743, '\p{^Script=_ Tai_Viet}', "");
+    Expect(0, 43743, '\P{Script=_ Tai_Viet}', "");
+    Expect(1, 43743, '\P{^Script=_ Tai_Viet}', "");
+    Expect(0, 43744, '\p{Script=_ Tai_Viet}', "");
+    Expect(1, 43744, '\p{^Script=_ Tai_Viet}', "");
+    Expect(1, 43744, '\P{Script=_ Tai_Viet}', "");
+    Expect(0, 43744, '\P{^Script=_ Tai_Viet}', "");
+    Error('\p{Sc=:= tavt}');
+    Error('\P{Sc=:= tavt}');
     Expect(1, 43743, '\p{Sc=:\ATavt\z:}', "");;
     Expect(0, 43744, '\p{Sc=:\ATavt\z:}', "");;
     Expect(1, 43743, '\p{Sc=tavt}', "");
@@ -139601,16 +140937,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43744, '\P{^Sc=tavt}', "");
     Expect(1, 43743, '\p{Sc=:\Atavt\z:}', "");;
     Expect(0, 43744, '\p{Sc=:\Atavt\z:}', "");;
-    Expect(1, 43743, '\p{Sc=-	Tavt}', "");
-    Expect(0, 43743, '\p{^Sc=-	Tavt}', "");
-    Expect(0, 43743, '\P{Sc=-	Tavt}', "");
-    Expect(1, 43743, '\P{^Sc=-	Tavt}', "");
-    Expect(0, 43744, '\p{Sc=-	Tavt}', "");
-    Expect(1, 43744, '\p{^Sc=-	Tavt}', "");
-    Expect(1, 43744, '\P{Sc=-	Tavt}', "");
-    Expect(0, 43744, '\P{^Sc=-	Tavt}', "");
-    Error('\p{Is_Script= /a/Tai_Viet}');
-    Error('\P{Is_Script= /a/Tai_Viet}');
+    Expect(1, 43743, '\p{Sc= -TAVT}', "");
+    Expect(0, 43743, '\p{^Sc= -TAVT}', "");
+    Expect(0, 43743, '\P{Sc= -TAVT}', "");
+    Expect(1, 43743, '\P{^Sc= -TAVT}', "");
+    Expect(0, 43744, '\p{Sc= -TAVT}', "");
+    Expect(1, 43744, '\p{^Sc= -TAVT}', "");
+    Expect(1, 43744, '\P{Sc= -TAVT}', "");
+    Expect(0, 43744, '\P{^Sc= -TAVT}', "");
+    Error('\p{Is_Script=		tai_Viet:=}');
+    Error('\P{Is_Script=		tai_Viet:=}');
     Expect(1, 43743, '\p{Is_Script=taiviet}', "");
     Expect(0, 43743, '\p{^Is_Script=taiviet}', "");
     Expect(0, 43743, '\P{Is_Script=taiviet}', "");
@@ -139619,16 +140955,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^Is_Script=taiviet}', "");
     Expect(1, 43744, '\P{Is_Script=taiviet}', "");
     Expect(0, 43744, '\P{^Is_Script=taiviet}', "");
-    Expect(1, 43743, '\p{Is_Script=-Tai_VIET}', "");
-    Expect(0, 43743, '\p{^Is_Script=-Tai_VIET}', "");
-    Expect(0, 43743, '\P{Is_Script=-Tai_VIET}', "");
-    Expect(1, 43743, '\P{^Is_Script=-Tai_VIET}', "");
-    Expect(0, 43744, '\p{Is_Script=-Tai_VIET}', "");
-    Expect(1, 43744, '\p{^Is_Script=-Tai_VIET}', "");
-    Expect(1, 43744, '\P{Is_Script=-Tai_VIET}', "");
-    Expect(0, 43744, '\P{^Is_Script=-Tai_VIET}', "");
-    Error('\p{Is_Sc=:=-Tavt}');
-    Error('\P{Is_Sc=:=-Tavt}');
+    Expect(1, 43743, '\p{Is_Script=-	TAI_Viet}', "");
+    Expect(0, 43743, '\p{^Is_Script=-	TAI_Viet}', "");
+    Expect(0, 43743, '\P{Is_Script=-	TAI_Viet}', "");
+    Expect(1, 43743, '\P{^Is_Script=-	TAI_Viet}', "");
+    Expect(0, 43744, '\p{Is_Script=-	TAI_Viet}', "");
+    Expect(1, 43744, '\p{^Is_Script=-	TAI_Viet}', "");
+    Expect(1, 43744, '\P{Is_Script=-	TAI_Viet}', "");
+    Expect(0, 43744, '\P{^Is_Script=-	TAI_Viet}', "");
+    Error('\p{Is_Sc=/a/ 	tavt}');
+    Error('\P{Is_Sc=/a/ 	tavt}');
     Expect(1, 43743, '\p{Is_Sc=tavt}', "");
     Expect(0, 43743, '\p{^Is_Sc=tavt}', "");
     Expect(0, 43743, '\P{Is_Sc=tavt}', "");
@@ -139637,26 +140973,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^Is_Sc=tavt}', "");
     Expect(1, 43744, '\P{Is_Sc=tavt}', "");
     Expect(0, 43744, '\P{^Is_Sc=tavt}', "");
-    Expect(1, 43743, '\p{Is_Sc=-Tavt}', "");
-    Expect(0, 43743, '\p{^Is_Sc=-Tavt}', "");
-    Expect(0, 43743, '\P{Is_Sc=-Tavt}', "");
-    Expect(1, 43743, '\P{^Is_Sc=-Tavt}', "");
-    Expect(0, 43744, '\p{Is_Sc=-Tavt}', "");
-    Expect(1, 43744, '\p{^Is_Sc=-Tavt}', "");
-    Expect(1, 43744, '\P{Is_Sc=-Tavt}', "");
-    Expect(0, 43744, '\P{^Is_Sc=-Tavt}', "");
-    Error('\p{Script=:=Telugu}');
-    Error('\P{Script=:=Telugu}');
+    Expect(1, 43743, '\p{Is_Sc=-	Tavt}', "");
+    Expect(0, 43743, '\p{^Is_Sc=-	Tavt}', "");
+    Expect(0, 43743, '\P{Is_Sc=-	Tavt}', "");
+    Expect(1, 43743, '\P{^Is_Sc=-	Tavt}', "");
+    Expect(0, 43744, '\p{Is_Sc=-	Tavt}', "");
+    Expect(1, 43744, '\p{^Is_Sc=-	Tavt}', "");
+    Expect(1, 43744, '\P{Is_Sc=-	Tavt}', "");
+    Expect(0, 43744, '\P{^Is_Sc=-	Tavt}', "");
+    Error('\p{Script=:=	Telugu}');
+    Error('\P{Script=:=	Telugu}');
     Expect(1, 3199, '\p{Script=:\ATelugu\z:}', "");;
     Expect(0, 3200, '\p{Script=:\ATelugu\z:}', "");;
-    Expect(1, 3199, '\p{Script=telugu}', "");
-    Expect(0, 3199, '\p{^Script=telugu}', "");
-    Expect(0, 3199, '\P{Script=telugu}', "");
-    Expect(1, 3199, '\P{^Script=telugu}', "");
-    Expect(0, 3200, '\p{Script=telugu}', "");
-    Expect(1, 3200, '\p{^Script=telugu}', "");
-    Expect(1, 3200, '\P{Script=telugu}', "");
-    Expect(0, 3200, '\P{^Script=telugu}', "");
+    Expect(1, 3199, '\p{Script:telugu}', "");
+    Expect(0, 3199, '\p{^Script:telugu}', "");
+    Expect(0, 3199, '\P{Script:telugu}', "");
+    Expect(1, 3199, '\P{^Script:telugu}', "");
+    Expect(0, 3200, '\p{Script:telugu}', "");
+    Expect(1, 3200, '\p{^Script:telugu}', "");
+    Expect(1, 3200, '\P{Script:telugu}', "");
+    Expect(0, 3200, '\P{^Script:telugu}', "");
     Expect(1, 3199, '\p{Script=:\Atelugu\z:}', "");;
     Expect(0, 3200, '\p{Script=:\Atelugu\z:}', "");;
     Expect(1, 3199, '\p{Script=-telugu}', "");
@@ -139667,48 +141003,48 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3200, '\p{^Script=-telugu}', "");
     Expect(1, 3200, '\P{Script=-telugu}', "");
     Expect(0, 3200, '\P{^Script=-telugu}', "");
-    Error('\p{Sc=-/a/Telu}');
-    Error('\P{Sc=-/a/Telu}');
+    Error('\p{Sc= /a/Telu}');
+    Error('\P{Sc= /a/Telu}');
     Expect(1, 3199, '\p{Sc=:\ATelu\z:}', "");;
     Expect(0, 3200, '\p{Sc=:\ATelu\z:}', "");;
-    Expect(1, 3199, '\p{Sc: telu}', "");
-    Expect(0, 3199, '\p{^Sc: telu}', "");
-    Expect(0, 3199, '\P{Sc: telu}', "");
-    Expect(1, 3199, '\P{^Sc: telu}', "");
-    Expect(0, 3200, '\p{Sc: telu}', "");
-    Expect(1, 3200, '\p{^Sc: telu}', "");
-    Expect(1, 3200, '\P{Sc: telu}', "");
-    Expect(0, 3200, '\P{^Sc: telu}', "");
+    Expect(1, 3199, '\p{Sc=telu}', "");
+    Expect(0, 3199, '\p{^Sc=telu}', "");
+    Expect(0, 3199, '\P{Sc=telu}', "");
+    Expect(1, 3199, '\P{^Sc=telu}', "");
+    Expect(0, 3200, '\p{Sc=telu}', "");
+    Expect(1, 3200, '\p{^Sc=telu}', "");
+    Expect(1, 3200, '\P{Sc=telu}', "");
+    Expect(0, 3200, '\P{^Sc=telu}', "");
     Expect(1, 3199, '\p{Sc=:\Atelu\z:}', "");;
     Expect(0, 3200, '\p{Sc=:\Atelu\z:}', "");;
-    Expect(1, 3199, '\p{Sc=	telu}', "");
-    Expect(0, 3199, '\p{^Sc=	telu}', "");
-    Expect(0, 3199, '\P{Sc=	telu}', "");
-    Expect(1, 3199, '\P{^Sc=	telu}', "");
-    Expect(0, 3200, '\p{Sc=	telu}', "");
-    Expect(1, 3200, '\p{^Sc=	telu}', "");
-    Expect(1, 3200, '\P{Sc=	telu}', "");
-    Expect(0, 3200, '\P{^Sc=	telu}', "");
-    Error('\p{Is_Script= telugu/a/}');
-    Error('\P{Is_Script= telugu/a/}');
-    Expect(1, 3199, '\p{Is_Script:	telugu}', "");
-    Expect(0, 3199, '\p{^Is_Script:	telugu}', "");
-    Expect(0, 3199, '\P{Is_Script:	telugu}', "");
-    Expect(1, 3199, '\P{^Is_Script:	telugu}', "");
-    Expect(0, 3200, '\p{Is_Script:	telugu}', "");
-    Expect(1, 3200, '\p{^Is_Script:	telugu}', "");
-    Expect(1, 3200, '\P{Is_Script:	telugu}', "");
-    Expect(0, 3200, '\P{^Is_Script:	telugu}', "");
-    Expect(1, 3199, '\p{Is_Script=Telugu}', "");
-    Expect(0, 3199, '\p{^Is_Script=Telugu}', "");
-    Expect(0, 3199, '\P{Is_Script=Telugu}', "");
-    Expect(1, 3199, '\P{^Is_Script=Telugu}', "");
-    Expect(0, 3200, '\p{Is_Script=Telugu}', "");
-    Expect(1, 3200, '\p{^Is_Script=Telugu}', "");
-    Expect(1, 3200, '\P{Is_Script=Telugu}', "");
-    Expect(0, 3200, '\P{^Is_Script=Telugu}', "");
-    Error('\p{Is_Sc=-_Telu/a/}');
-    Error('\P{Is_Sc=-_Telu/a/}');
+    Expect(1, 3199, '\p{Sc=__TELU}', "");
+    Expect(0, 3199, '\p{^Sc=__TELU}', "");
+    Expect(0, 3199, '\P{Sc=__TELU}', "");
+    Expect(1, 3199, '\P{^Sc=__TELU}', "");
+    Expect(0, 3200, '\p{Sc=__TELU}', "");
+    Expect(1, 3200, '\p{^Sc=__TELU}', "");
+    Expect(1, 3200, '\P{Sc=__TELU}', "");
+    Expect(0, 3200, '\P{^Sc=__TELU}', "");
+    Error('\p{Is_Script=_:=Telugu}');
+    Error('\P{Is_Script=_:=Telugu}');
+    Expect(1, 3199, '\p{Is_Script=telugu}', "");
+    Expect(0, 3199, '\p{^Is_Script=telugu}', "");
+    Expect(0, 3199, '\P{Is_Script=telugu}', "");
+    Expect(1, 3199, '\P{^Is_Script=telugu}', "");
+    Expect(0, 3200, '\p{Is_Script=telugu}', "");
+    Expect(1, 3200, '\p{^Is_Script=telugu}', "");
+    Expect(1, 3200, '\P{Is_Script=telugu}', "");
+    Expect(0, 3200, '\P{^Is_Script=telugu}', "");
+    Expect(1, 3199, '\p{Is_Script=	_telugu}', "");
+    Expect(0, 3199, '\p{^Is_Script=	_telugu}', "");
+    Expect(0, 3199, '\P{Is_Script=	_telugu}', "");
+    Expect(1, 3199, '\P{^Is_Script=	_telugu}', "");
+    Expect(0, 3200, '\p{Is_Script=	_telugu}', "");
+    Expect(1, 3200, '\p{^Is_Script=	_telugu}', "");
+    Expect(1, 3200, '\P{Is_Script=	_telugu}', "");
+    Expect(0, 3200, '\P{^Is_Script=	_telugu}', "");
+    Error('\p{Is_Sc:_/a/Telu}');
+    Error('\P{Is_Sc:_/a/Telu}');
     Expect(1, 3199, '\p{Is_Sc=telu}', "");
     Expect(0, 3199, '\p{^Is_Sc=telu}', "");
     Expect(0, 3199, '\P{Is_Sc=telu}', "");
@@ -139717,16 +141053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3200, '\p{^Is_Sc=telu}', "");
     Expect(1, 3200, '\P{Is_Sc=telu}', "");
     Expect(0, 3200, '\P{^Is_Sc=telu}', "");
-    Expect(1, 3199, '\p{Is_Sc= -telu}', "");
-    Expect(0, 3199, '\p{^Is_Sc= -telu}', "");
-    Expect(0, 3199, '\P{Is_Sc= -telu}', "");
-    Expect(1, 3199, '\P{^Is_Sc= -telu}', "");
-    Expect(0, 3200, '\p{Is_Sc= -telu}', "");
-    Expect(1, 3200, '\p{^Is_Sc= -telu}', "");
-    Expect(1, 3200, '\P{Is_Sc= -telu}', "");
-    Expect(0, 3200, '\P{^Is_Sc= -telu}', "");
-    Error('\p{Script=- Tifinagh/a/}');
-    Error('\P{Script=- Tifinagh/a/}');
+    Expect(1, 3199, '\p{Is_Sc=	telu}', "");
+    Expect(0, 3199, '\p{^Is_Sc=	telu}', "");
+    Expect(0, 3199, '\P{Is_Sc=	telu}', "");
+    Expect(1, 3199, '\P{^Is_Sc=	telu}', "");
+    Expect(0, 3200, '\p{Is_Sc=	telu}', "");
+    Expect(1, 3200, '\p{^Is_Sc=	telu}', "");
+    Expect(1, 3200, '\P{Is_Sc=	telu}', "");
+    Expect(0, 3200, '\P{^Is_Sc=	telu}', "");
+    Error('\p{Script:   _:=Tifinagh}');
+    Error('\P{Script:   _:=Tifinagh}');
     Expect(1, 11647, '\p{Script=:\ATifinagh\z:}', "");;
     Expect(0, 11648, '\p{Script=:\ATifinagh\z:}', "");;
     Expect(1, 11647, '\p{Script=tifinagh}', "");
@@ -139739,16 +141075,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11648, '\P{^Script=tifinagh}', "");
     Expect(1, 11647, '\p{Script=:\Atifinagh\z:}', "");;
     Expect(0, 11648, '\p{Script=:\Atifinagh\z:}', "");;
-    Expect(1, 11647, '\p{Script=-Tifinagh}', "");
-    Expect(0, 11647, '\p{^Script=-Tifinagh}', "");
-    Expect(0, 11647, '\P{Script=-Tifinagh}', "");
-    Expect(1, 11647, '\P{^Script=-Tifinagh}', "");
-    Expect(0, 11648, '\p{Script=-Tifinagh}', "");
-    Expect(1, 11648, '\p{^Script=-Tifinagh}', "");
-    Expect(1, 11648, '\P{Script=-Tifinagh}', "");
-    Expect(0, 11648, '\P{^Script=-Tifinagh}', "");
-    Error('\p{Sc= TFNG:=}');
-    Error('\P{Sc= TFNG:=}');
+    Expect(1, 11647, '\p{Script=	tifinagh}', "");
+    Expect(0, 11647, '\p{^Script=	tifinagh}', "");
+    Expect(0, 11647, '\P{Script=	tifinagh}', "");
+    Expect(1, 11647, '\P{^Script=	tifinagh}', "");
+    Expect(0, 11648, '\p{Script=	tifinagh}', "");
+    Expect(1, 11648, '\p{^Script=	tifinagh}', "");
+    Expect(1, 11648, '\P{Script=	tifinagh}', "");
+    Expect(0, 11648, '\P{^Script=	tifinagh}', "");
+    Error('\p{Sc=:= TFNG}');
+    Error('\P{Sc=:= TFNG}');
     Expect(1, 11647, '\p{Sc=:\ATfng\z:}', "");;
     Expect(0, 11648, '\p{Sc=:\ATfng\z:}', "");;
     Expect(1, 11647, '\p{Sc=tfng}', "");
@@ -139761,16 +141097,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11648, '\P{^Sc=tfng}', "");
     Expect(1, 11647, '\p{Sc=:\Atfng\z:}', "");;
     Expect(0, 11648, '\p{Sc=:\Atfng\z:}', "");;
-    Expect(1, 11647, '\p{Sc= Tfng}', "");
-    Expect(0, 11647, '\p{^Sc= Tfng}', "");
-    Expect(0, 11647, '\P{Sc= Tfng}', "");
-    Expect(1, 11647, '\P{^Sc= Tfng}', "");
-    Expect(0, 11648, '\p{Sc= Tfng}', "");
-    Expect(1, 11648, '\p{^Sc= Tfng}', "");
-    Expect(1, 11648, '\P{Sc= Tfng}', "");
-    Expect(0, 11648, '\P{^Sc= Tfng}', "");
-    Error('\p{Is_Script: -_TIFINAGH/a/}');
-    Error('\P{Is_Script: -_TIFINAGH/a/}');
+    Expect(1, 11647, '\p{Sc=- Tfng}', "");
+    Expect(0, 11647, '\p{^Sc=- Tfng}', "");
+    Expect(0, 11647, '\P{Sc=- Tfng}', "");
+    Expect(1, 11647, '\P{^Sc=- Tfng}', "");
+    Expect(0, 11648, '\p{Sc=- Tfng}', "");
+    Expect(1, 11648, '\p{^Sc=- Tfng}', "");
+    Expect(1, 11648, '\P{Sc=- Tfng}', "");
+    Expect(0, 11648, '\P{^Sc=- Tfng}', "");
+    Error('\p{Is_Script=--TIFINAGH/a/}');
+    Error('\P{Is_Script=--TIFINAGH/a/}');
     Expect(1, 11647, '\p{Is_Script=tifinagh}', "");
     Expect(0, 11647, '\p{^Is_Script=tifinagh}', "");
     Expect(0, 11647, '\P{Is_Script=tifinagh}', "");
@@ -139779,34 +141115,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11648, '\p{^Is_Script=tifinagh}', "");
     Expect(1, 11648, '\P{Is_Script=tifinagh}', "");
     Expect(0, 11648, '\P{^Is_Script=tifinagh}', "");
-    Expect(1, 11647, '\p{Is_Script=	TIFINAGH}', "");
-    Expect(0, 11647, '\p{^Is_Script=	TIFINAGH}', "");
-    Expect(0, 11647, '\P{Is_Script=	TIFINAGH}', "");
-    Expect(1, 11647, '\P{^Is_Script=	TIFINAGH}', "");
-    Expect(0, 11648, '\p{Is_Script=	TIFINAGH}', "");
-    Expect(1, 11648, '\p{^Is_Script=	TIFINAGH}', "");
-    Expect(1, 11648, '\P{Is_Script=	TIFINAGH}', "");
-    Expect(0, 11648, '\P{^Is_Script=	TIFINAGH}', "");
-    Error('\p{Is_Sc: _:=Tfng}');
-    Error('\P{Is_Sc: _:=Tfng}');
-    Expect(1, 11647, '\p{Is_Sc: tfng}', "");
-    Expect(0, 11647, '\p{^Is_Sc: tfng}', "");
-    Expect(0, 11647, '\P{Is_Sc: tfng}', "");
-    Expect(1, 11647, '\P{^Is_Sc: tfng}', "");
-    Expect(0, 11648, '\p{Is_Sc: tfng}', "");
-    Expect(1, 11648, '\p{^Is_Sc: tfng}', "");
-    Expect(1, 11648, '\P{Is_Sc: tfng}', "");
-    Expect(0, 11648, '\P{^Is_Sc: tfng}', "");
-    Expect(1, 11647, '\p{Is_Sc= tfng}', "");
-    Expect(0, 11647, '\p{^Is_Sc= tfng}', "");
-    Expect(0, 11647, '\P{Is_Sc= tfng}', "");
-    Expect(1, 11647, '\P{^Is_Sc= tfng}', "");
-    Expect(0, 11648, '\p{Is_Sc= tfng}', "");
-    Expect(1, 11648, '\p{^Is_Sc= tfng}', "");
-    Expect(1, 11648, '\P{Is_Sc= tfng}', "");
-    Expect(0, 11648, '\P{^Is_Sc= tfng}', "");
-    Error('\p{Script=/a/_	tagalog}');
-    Error('\P{Script=/a/_	tagalog}');
+    Expect(1, 11647, '\p{Is_Script=  TIFINAGH}', "");
+    Expect(0, 11647, '\p{^Is_Script=  TIFINAGH}', "");
+    Expect(0, 11647, '\P{Is_Script=  TIFINAGH}', "");
+    Expect(1, 11647, '\P{^Is_Script=  TIFINAGH}', "");
+    Expect(0, 11648, '\p{Is_Script=  TIFINAGH}', "");
+    Expect(1, 11648, '\p{^Is_Script=  TIFINAGH}', "");
+    Expect(1, 11648, '\P{Is_Script=  TIFINAGH}', "");
+    Expect(0, 11648, '\P{^Is_Script=  TIFINAGH}', "");
+    Error('\p{Is_Sc=:= Tfng}');
+    Error('\P{Is_Sc=:= Tfng}');
+    Expect(1, 11647, '\p{Is_Sc:	tfng}', "");
+    Expect(0, 11647, '\p{^Is_Sc:	tfng}', "");
+    Expect(0, 11647, '\P{Is_Sc:	tfng}', "");
+    Expect(1, 11647, '\P{^Is_Sc:	tfng}', "");
+    Expect(0, 11648, '\p{Is_Sc:	tfng}', "");
+    Expect(1, 11648, '\p{^Is_Sc:	tfng}', "");
+    Expect(1, 11648, '\P{Is_Sc:	tfng}', "");
+    Expect(0, 11648, '\P{^Is_Sc:	tfng}', "");
+    Expect(1, 11647, '\p{Is_Sc=-Tfng}', "");
+    Expect(0, 11647, '\p{^Is_Sc=-Tfng}', "");
+    Expect(0, 11647, '\P{Is_Sc=-Tfng}', "");
+    Expect(1, 11647, '\P{^Is_Sc=-Tfng}', "");
+    Expect(0, 11648, '\p{Is_Sc=-Tfng}', "");
+    Expect(1, 11648, '\p{^Is_Sc=-Tfng}', "");
+    Expect(1, 11648, '\P{Is_Sc=-Tfng}', "");
+    Expect(0, 11648, '\P{^Is_Sc=-Tfng}', "");
+    Error('\p{Script=/a/_-tagalog}');
+    Error('\P{Script=/a/_-tagalog}');
     Expect(1, 5919, '\p{Script=:\ATagalog\z:}', "");;
     Expect(0, 5920, '\p{Script=:\ATagalog\z:}', "");;
     Expect(1, 5919, '\p{Script=tagalog}', "");
@@ -139819,16 +141155,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5920, '\P{^Script=tagalog}', "");
     Expect(1, 5919, '\p{Script=:\Atagalog\z:}', "");;
     Expect(0, 5920, '\p{Script=:\Atagalog\z:}', "");;
-    Expect(1, 5919, '\p{Script= Tagalog}', "");
-    Expect(0, 5919, '\p{^Script= Tagalog}', "");
-    Expect(0, 5919, '\P{Script= Tagalog}', "");
-    Expect(1, 5919, '\P{^Script= Tagalog}', "");
-    Expect(0, 5920, '\p{Script= Tagalog}', "");
-    Expect(1, 5920, '\p{^Script= Tagalog}', "");
-    Expect(1, 5920, '\P{Script= Tagalog}', "");
-    Expect(0, 5920, '\P{^Script= Tagalog}', "");
-    Error('\p{Sc=:=tglg}');
-    Error('\P{Sc=:=tglg}');
+    Expect(1, 5919, '\p{Script=	-tagalog}', "");
+    Expect(0, 5919, '\p{^Script=	-tagalog}', "");
+    Expect(0, 5919, '\P{Script=	-tagalog}', "");
+    Expect(1, 5919, '\P{^Script=	-tagalog}', "");
+    Expect(0, 5920, '\p{Script=	-tagalog}', "");
+    Expect(1, 5920, '\p{^Script=	-tagalog}', "");
+    Expect(1, 5920, '\P{Script=	-tagalog}', "");
+    Expect(0, 5920, '\P{^Script=	-tagalog}', "");
+    Error('\p{Sc=:=-tglg}');
+    Error('\P{Sc=:=-tglg}');
     Expect(1, 5919, '\p{Sc=:\ATglg\z:}', "");;
     Expect(0, 5920, '\p{Sc=:\ATglg\z:}', "");;
     Expect(1, 5919, '\p{Sc=tglg}', "");
@@ -139841,16 +141177,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5920, '\P{^Sc=tglg}', "");
     Expect(1, 5919, '\p{Sc=:\Atglg\z:}', "");;
     Expect(0, 5920, '\p{Sc=:\Atglg\z:}', "");;
-    Expect(1, 5919, '\p{Sc=-TGLG}', "");
-    Expect(0, 5919, '\p{^Sc=-TGLG}', "");
-    Expect(0, 5919, '\P{Sc=-TGLG}', "");
-    Expect(1, 5919, '\P{^Sc=-TGLG}', "");
-    Expect(0, 5920, '\p{Sc=-TGLG}', "");
-    Expect(1, 5920, '\p{^Sc=-TGLG}', "");
-    Expect(1, 5920, '\P{Sc=-TGLG}', "");
-    Expect(0, 5920, '\P{^Sc=-TGLG}', "");
-    Error('\p{Is_Script=:=tagalog}');
-    Error('\P{Is_Script=:=tagalog}');
+    Expect(1, 5919, '\p{Sc= -Tglg}', "");
+    Expect(0, 5919, '\p{^Sc= -Tglg}', "");
+    Expect(0, 5919, '\P{Sc= -Tglg}', "");
+    Expect(1, 5919, '\P{^Sc= -Tglg}', "");
+    Expect(0, 5920, '\p{Sc= -Tglg}', "");
+    Expect(1, 5920, '\p{^Sc= -Tglg}', "");
+    Expect(1, 5920, '\P{Sc= -Tglg}', "");
+    Expect(0, 5920, '\P{^Sc= -Tglg}', "");
+    Error('\p{Is_Script:/a/	_Tagalog}');
+    Error('\P{Is_Script:/a/	_Tagalog}');
     Expect(1, 5919, '\p{Is_Script=tagalog}', "");
     Expect(0, 5919, '\p{^Is_Script=tagalog}', "");
     Expect(0, 5919, '\P{Is_Script=tagalog}', "");
@@ -139859,16 +141195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5920, '\p{^Is_Script=tagalog}', "");
     Expect(1, 5920, '\P{Is_Script=tagalog}', "");
     Expect(0, 5920, '\P{^Is_Script=tagalog}', "");
-    Expect(1, 5919, '\p{Is_Script= 	TAGALOG}', "");
-    Expect(0, 5919, '\p{^Is_Script= 	TAGALOG}', "");
-    Expect(0, 5919, '\P{Is_Script= 	TAGALOG}', "");
-    Expect(1, 5919, '\P{^Is_Script= 	TAGALOG}', "");
-    Expect(0, 5920, '\p{Is_Script= 	TAGALOG}', "");
-    Expect(1, 5920, '\p{^Is_Script= 	TAGALOG}', "");
-    Expect(1, 5920, '\P{Is_Script= 	TAGALOG}', "");
-    Expect(0, 5920, '\P{^Is_Script= 	TAGALOG}', "");
-    Error('\p{Is_Sc=	 Tglg/a/}');
-    Error('\P{Is_Sc=	 Tglg/a/}');
+    Expect(1, 5919, '\p{Is_Script=--Tagalog}', "");
+    Expect(0, 5919, '\p{^Is_Script=--Tagalog}', "");
+    Expect(0, 5919, '\P{Is_Script=--Tagalog}', "");
+    Expect(1, 5919, '\P{^Is_Script=--Tagalog}', "");
+    Expect(0, 5920, '\p{Is_Script=--Tagalog}', "");
+    Expect(1, 5920, '\p{^Is_Script=--Tagalog}', "");
+    Expect(1, 5920, '\P{Is_Script=--Tagalog}', "");
+    Expect(0, 5920, '\P{^Is_Script=--Tagalog}', "");
+    Error('\p{Is_Sc=	/a/TGLG}');
+    Error('\P{Is_Sc=	/a/TGLG}');
     Expect(1, 5919, '\p{Is_Sc=tglg}', "");
     Expect(0, 5919, '\p{^Is_Sc=tglg}', "");
     Expect(0, 5919, '\P{Is_Sc=tglg}', "");
@@ -139877,16 +141213,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5920, '\p{^Is_Sc=tglg}', "");
     Expect(1, 5920, '\P{Is_Sc=tglg}', "");
     Expect(0, 5920, '\P{^Is_Sc=tglg}', "");
-    Expect(1, 5919, '\p{Is_Sc=	tglg}', "");
-    Expect(0, 5919, '\p{^Is_Sc=	tglg}', "");
-    Expect(0, 5919, '\P{Is_Sc=	tglg}', "");
-    Expect(1, 5919, '\P{^Is_Sc=	tglg}', "");
-    Expect(0, 5920, '\p{Is_Sc=	tglg}', "");
-    Expect(1, 5920, '\p{^Is_Sc=	tglg}', "");
-    Expect(1, 5920, '\P{Is_Sc=	tglg}', "");
-    Expect(0, 5920, '\P{^Is_Sc=	tglg}', "");
-    Error('\p{Script:	_:=thaana}');
-    Error('\P{Script:	_:=thaana}');
+    Expect(1, 5919, '\p{Is_Sc=	 TGLG}', "");
+    Expect(0, 5919, '\p{^Is_Sc=	 TGLG}', "");
+    Expect(0, 5919, '\P{Is_Sc=	 TGLG}', "");
+    Expect(1, 5919, '\P{^Is_Sc=	 TGLG}', "");
+    Expect(0, 5920, '\p{Is_Sc=	 TGLG}', "");
+    Expect(1, 5920, '\p{^Is_Sc=	 TGLG}', "");
+    Expect(1, 5920, '\P{Is_Sc=	 TGLG}', "");
+    Expect(0, 5920, '\P{^Is_Sc=	 TGLG}', "");
+    Error('\p{Script=-Thaana:=}');
+    Error('\P{Script=-Thaana:=}');
     Expect(1, 1969, '\p{Script=:\AThaana\z:}', "");;
     Expect(0, 1970, '\p{Script=:\AThaana\z:}', "");;
     Expect(1, 1969, '\p{Script=thaana}', "");
@@ -139899,16 +141235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 1970, '\P{^Script=thaana}', "");
     Expect(1, 1969, '\p{Script=:\Athaana\z:}', "");;
     Expect(0, 1970, '\p{Script=:\Athaana\z:}', "");;
-    Expect(1, 1969, '\p{Script= -thaana}', "");
-    Expect(0, 1969, '\p{^Script= -thaana}', "");
-    Expect(0, 1969, '\P{Script= -thaana}', "");
-    Expect(1, 1969, '\P{^Script= -thaana}', "");
-    Expect(0, 1970, '\p{Script= -thaana}', "");
-    Expect(1, 1970, '\p{^Script= -thaana}', "");
-    Expect(1, 1970, '\P{Script= -thaana}', "");
-    Expect(0, 1970, '\P{^Script= -thaana}', "");
-    Error('\p{Sc= -Thaa:=}');
-    Error('\P{Sc= -Thaa:=}');
+    Expect(1, 1969, '\p{Script=_ THAANA}', "");
+    Expect(0, 1969, '\p{^Script=_ THAANA}', "");
+    Expect(0, 1969, '\P{Script=_ THAANA}', "");
+    Expect(1, 1969, '\P{^Script=_ THAANA}', "");
+    Expect(0, 1970, '\p{Script=_ THAANA}', "");
+    Expect(1, 1970, '\p{^Script=_ THAANA}', "");
+    Expect(1, 1970, '\P{Script=_ THAANA}', "");
+    Expect(0, 1970, '\P{^Script=_ THAANA}', "");
+    Error('\p{Sc=-thaa:=}');
+    Error('\P{Sc=-thaa:=}');
     Expect(1, 1969, '\p{Sc=:\AThaa\z:}', "");;
     Expect(0, 1970, '\p{Sc=:\AThaa\z:}', "");;
     Expect(1, 1969, '\p{Sc=thaa}', "");
@@ -139921,16 +141257,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 1970, '\P{^Sc=thaa}', "");
     Expect(1, 1969, '\p{Sc=:\Athaa\z:}', "");;
     Expect(0, 1970, '\p{Sc=:\Athaa\z:}', "");;
-    Expect(1, 1969, '\p{Sc=- thaa}', "");
-    Expect(0, 1969, '\p{^Sc=- thaa}', "");
-    Expect(0, 1969, '\P{Sc=- thaa}', "");
-    Expect(1, 1969, '\P{^Sc=- thaa}', "");
-    Expect(0, 1970, '\p{Sc=- thaa}', "");
-    Expect(1, 1970, '\p{^Sc=- thaa}', "");
-    Expect(1, 1970, '\P{Sc=- thaa}', "");
-    Expect(0, 1970, '\P{^Sc=- thaa}', "");
-    Error('\p{Is_Script=-/a/Thaana}');
-    Error('\P{Is_Script=-/a/Thaana}');
+    Expect(1, 1969, '\p{Sc= Thaa}', "");
+    Expect(0, 1969, '\p{^Sc= Thaa}', "");
+    Expect(0, 1969, '\P{Sc= Thaa}', "");
+    Expect(1, 1969, '\P{^Sc= Thaa}', "");
+    Expect(0, 1970, '\p{Sc= Thaa}', "");
+    Expect(1, 1970, '\p{^Sc= Thaa}', "");
+    Expect(1, 1970, '\P{Sc= Thaa}', "");
+    Expect(0, 1970, '\P{^Sc= Thaa}', "");
+    Error('\p{Is_Script=/a/	-THAANA}');
+    Error('\P{Is_Script=/a/	-THAANA}');
     Expect(1, 1969, '\p{Is_Script=thaana}', "");
     Expect(0, 1969, '\p{^Is_Script=thaana}', "");
     Expect(0, 1969, '\P{Is_Script=thaana}', "");
@@ -139939,16 +141275,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1970, '\p{^Is_Script=thaana}', "");
     Expect(1, 1970, '\P{Is_Script=thaana}', "");
     Expect(0, 1970, '\P{^Is_Script=thaana}', "");
-    Expect(1, 1969, '\p{Is_Script=-	Thaana}', "");
-    Expect(0, 1969, '\p{^Is_Script=-	Thaana}', "");
-    Expect(0, 1969, '\P{Is_Script=-	Thaana}', "");
-    Expect(1, 1969, '\P{^Is_Script=-	Thaana}', "");
-    Expect(0, 1970, '\p{Is_Script=-	Thaana}', "");
-    Expect(1, 1970, '\p{^Is_Script=-	Thaana}', "");
-    Expect(1, 1970, '\P{Is_Script=-	Thaana}', "");
-    Expect(0, 1970, '\P{^Is_Script=-	Thaana}', "");
-    Error('\p{Is_Sc:	/a/_ Thaa}');
-    Error('\P{Is_Sc:	/a/_ Thaa}');
+    Expect(1, 1969, '\p{Is_Script=		thaana}', "");
+    Expect(0, 1969, '\p{^Is_Script=		thaana}', "");
+    Expect(0, 1969, '\P{Is_Script=		thaana}', "");
+    Expect(1, 1969, '\P{^Is_Script=		thaana}', "");
+    Expect(0, 1970, '\p{Is_Script=		thaana}', "");
+    Expect(1, 1970, '\p{^Is_Script=		thaana}', "");
+    Expect(1, 1970, '\P{Is_Script=		thaana}', "");
+    Expect(0, 1970, '\P{^Is_Script=		thaana}', "");
+    Error('\p{Is_Sc=	/a/Thaa}');
+    Error('\P{Is_Sc=	/a/Thaa}');
     Expect(1, 1969, '\p{Is_Sc=thaa}', "");
     Expect(0, 1969, '\p{^Is_Sc=thaa}', "");
     Expect(0, 1969, '\P{Is_Sc=thaa}', "");
@@ -139957,60 +141293,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1970, '\p{^Is_Sc=thaa}', "");
     Expect(1, 1970, '\P{Is_Sc=thaa}', "");
     Expect(0, 1970, '\P{^Is_Sc=thaa}', "");
-    Expect(1, 1969, '\p{Is_Sc=-Thaa}', "");
-    Expect(0, 1969, '\p{^Is_Sc=-Thaa}', "");
-    Expect(0, 1969, '\P{Is_Sc=-Thaa}', "");
-    Expect(1, 1969, '\P{^Is_Sc=-Thaa}', "");
-    Expect(0, 1970, '\p{Is_Sc=-Thaa}', "");
-    Expect(1, 1970, '\p{^Is_Sc=-Thaa}', "");
-    Expect(1, 1970, '\P{Is_Sc=-Thaa}', "");
-    Expect(0, 1970, '\P{^Is_Sc=-Thaa}', "");
-    Error('\p{Script=	 THAI/a/}');
-    Error('\P{Script=	 THAI/a/}');
+    Expect(1, 1969, '\p{Is_Sc=--thaa}', "");
+    Expect(0, 1969, '\p{^Is_Sc=--thaa}', "");
+    Expect(0, 1969, '\P{Is_Sc=--thaa}', "");
+    Expect(1, 1969, '\P{^Is_Sc=--thaa}', "");
+    Expect(0, 1970, '\p{Is_Sc=--thaa}', "");
+    Expect(1, 1970, '\p{^Is_Sc=--thaa}', "");
+    Expect(1, 1970, '\P{Is_Sc=--thaa}', "");
+    Expect(0, 1970, '\P{^Is_Sc=--thaa}', "");
+    Error('\p{Script=/a/	_thai}');
+    Error('\P{Script=/a/	_thai}');
     Expect(1, 3675, '\p{Script=:\AThai\z:}', "");;
     Expect(0, 3676, '\p{Script=:\AThai\z:}', "");;
-    Expect(1, 3675, '\p{Script=thai}', "");
-    Expect(0, 3675, '\p{^Script=thai}', "");
-    Expect(0, 3675, '\P{Script=thai}', "");
-    Expect(1, 3675, '\P{^Script=thai}', "");
-    Expect(0, 3676, '\p{Script=thai}', "");
-    Expect(1, 3676, '\p{^Script=thai}', "");
-    Expect(1, 3676, '\P{Script=thai}', "");
-    Expect(0, 3676, '\P{^Script=thai}', "");
+    Expect(1, 3675, '\p{Script:   thai}', "");
+    Expect(0, 3675, '\p{^Script:   thai}', "");
+    Expect(0, 3675, '\P{Script:   thai}', "");
+    Expect(1, 3675, '\P{^Script:   thai}', "");
+    Expect(0, 3676, '\p{Script:   thai}', "");
+    Expect(1, 3676, '\p{^Script:   thai}', "");
+    Expect(1, 3676, '\P{Script:   thai}', "");
+    Expect(0, 3676, '\P{^Script:   thai}', "");
     Expect(1, 3675, '\p{Script=:\Athai\z:}', "");;
     Expect(0, 3676, '\p{Script=:\Athai\z:}', "");;
-    Expect(1, 3675, '\p{Script=- Thai}', "");
-    Expect(0, 3675, '\p{^Script=- Thai}', "");
-    Expect(0, 3675, '\P{Script=- Thai}', "");
-    Expect(1, 3675, '\P{^Script=- Thai}', "");
-    Expect(0, 3676, '\p{Script=- Thai}', "");
-    Expect(1, 3676, '\p{^Script=- Thai}', "");
-    Expect(1, 3676, '\P{Script=- Thai}', "");
-    Expect(0, 3676, '\P{^Script=- Thai}', "");
-    Error('\p{Sc=:= _Thai}');
-    Error('\P{Sc=:= _Thai}');
+    Expect(1, 3675, '\p{Script=--Thai}', "");
+    Expect(0, 3675, '\p{^Script=--Thai}', "");
+    Expect(0, 3675, '\P{Script=--Thai}', "");
+    Expect(1, 3675, '\P{^Script=--Thai}', "");
+    Expect(0, 3676, '\p{Script=--Thai}', "");
+    Expect(1, 3676, '\p{^Script=--Thai}', "");
+    Expect(1, 3676, '\P{Script=--Thai}', "");
+    Expect(0, 3676, '\P{^Script=--Thai}', "");
+    Error('\p{Sc=/a/_	Thai}');
+    Error('\P{Sc=/a/_	Thai}');
     Expect(1, 3675, '\p{Sc=:\AThai\z:}', "");;
     Expect(0, 3676, '\p{Sc=:\AThai\z:}', "");;
-    Expect(1, 3675, '\p{Sc=thai}', "");
-    Expect(0, 3675, '\p{^Sc=thai}', "");
-    Expect(0, 3675, '\P{Sc=thai}', "");
-    Expect(1, 3675, '\P{^Sc=thai}', "");
-    Expect(0, 3676, '\p{Sc=thai}', "");
-    Expect(1, 3676, '\p{^Sc=thai}', "");
-    Expect(1, 3676, '\P{Sc=thai}', "");
-    Expect(0, 3676, '\P{^Sc=thai}', "");
+    Expect(1, 3675, '\p{Sc: thai}', "");
+    Expect(0, 3675, '\p{^Sc: thai}', "");
+    Expect(0, 3675, '\P{Sc: thai}', "");
+    Expect(1, 3675, '\P{^Sc: thai}', "");
+    Expect(0, 3676, '\p{Sc: thai}', "");
+    Expect(1, 3676, '\p{^Sc: thai}', "");
+    Expect(1, 3676, '\P{Sc: thai}', "");
+    Expect(0, 3676, '\P{^Sc: thai}', "");
     Expect(1, 3675, '\p{Sc=:\Athai\z:}', "");;
     Expect(0, 3676, '\p{Sc=:\Athai\z:}', "");;
-    Expect(1, 3675, '\p{Sc:	-Thai}', "");
-    Expect(0, 3675, '\p{^Sc:	-Thai}', "");
-    Expect(0, 3675, '\P{Sc:	-Thai}', "");
-    Expect(1, 3675, '\P{^Sc:	-Thai}', "");
-    Expect(0, 3676, '\p{Sc:	-Thai}', "");
-    Expect(1, 3676, '\p{^Sc:	-Thai}', "");
-    Expect(1, 3676, '\P{Sc:	-Thai}', "");
-    Expect(0, 3676, '\P{^Sc:	-Thai}', "");
-    Error('\p{Is_Script=/a/_THAI}');
-    Error('\P{Is_Script=/a/_THAI}');
+    Expect(1, 3675, '\p{Sc=Thai}', "");
+    Expect(0, 3675, '\p{^Sc=Thai}', "");
+    Expect(0, 3675, '\P{Sc=Thai}', "");
+    Expect(1, 3675, '\P{^Sc=Thai}', "");
+    Expect(0, 3676, '\p{Sc=Thai}', "");
+    Expect(1, 3676, '\p{^Sc=Thai}', "");
+    Expect(1, 3676, '\P{Sc=Thai}', "");
+    Expect(0, 3676, '\P{^Sc=Thai}', "");
+    Error('\p{Is_Script=:=  Thai}');
+    Error('\P{Is_Script=:=  Thai}');
     Expect(1, 3675, '\p{Is_Script=thai}', "");
     Expect(0, 3675, '\p{^Is_Script=thai}', "");
     Expect(0, 3675, '\P{Is_Script=thai}', "");
@@ -140019,16 +141355,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3676, '\p{^Is_Script=thai}', "");
     Expect(1, 3676, '\P{Is_Script=thai}', "");
     Expect(0, 3676, '\P{^Is_Script=thai}', "");
-    Expect(1, 3675, '\p{Is_Script=- Thai}', "");
-    Expect(0, 3675, '\p{^Is_Script=- Thai}', "");
-    Expect(0, 3675, '\P{Is_Script=- Thai}', "");
-    Expect(1, 3675, '\P{^Is_Script=- Thai}', "");
-    Expect(0, 3676, '\p{Is_Script=- Thai}', "");
-    Expect(1, 3676, '\p{^Is_Script=- Thai}', "");
-    Expect(1, 3676, '\P{Is_Script=- Thai}', "");
-    Expect(0, 3676, '\P{^Is_Script=- Thai}', "");
-    Error('\p{Is_Sc= :=THAI}');
-    Error('\P{Is_Sc= :=THAI}');
+    Expect(1, 3675, '\p{Is_Script=  Thai}', "");
+    Expect(0, 3675, '\p{^Is_Script=  Thai}', "");
+    Expect(0, 3675, '\P{Is_Script=  Thai}', "");
+    Expect(1, 3675, '\P{^Is_Script=  Thai}', "");
+    Expect(0, 3676, '\p{Is_Script=  Thai}', "");
+    Expect(1, 3676, '\p{^Is_Script=  Thai}', "");
+    Expect(1, 3676, '\P{Is_Script=  Thai}', "");
+    Expect(0, 3676, '\P{^Is_Script=  Thai}', "");
+    Error('\p{Is_Sc= :=Thai}');
+    Error('\P{Is_Sc= :=Thai}');
     Expect(1, 3675, '\p{Is_Sc=thai}', "");
     Expect(0, 3675, '\p{^Is_Sc=thai}', "");
     Expect(0, 3675, '\P{Is_Sc=thai}', "");
@@ -140037,16 +141373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3676, '\p{^Is_Sc=thai}', "");
     Expect(1, 3676, '\P{Is_Sc=thai}', "");
     Expect(0, 3676, '\P{^Is_Sc=thai}', "");
-    Expect(1, 3675, '\p{Is_Sc=	THAI}', "");
-    Expect(0, 3675, '\p{^Is_Sc=	THAI}', "");
-    Expect(0, 3675, '\P{Is_Sc=	THAI}', "");
-    Expect(1, 3675, '\P{^Is_Sc=	THAI}', "");
-    Expect(0, 3676, '\p{Is_Sc=	THAI}', "");
-    Expect(1, 3676, '\p{^Is_Sc=	THAI}', "");
-    Expect(1, 3676, '\P{Is_Sc=	THAI}', "");
-    Expect(0, 3676, '\P{^Is_Sc=	THAI}', "");
-    Error('\p{Script:   _:=TIBETAN}');
-    Error('\P{Script:   _:=TIBETAN}');
+    Expect(1, 3675, '\p{Is_Sc=_Thai}', "");
+    Expect(0, 3675, '\p{^Is_Sc=_Thai}', "");
+    Expect(0, 3675, '\P{Is_Sc=_Thai}', "");
+    Expect(1, 3675, '\P{^Is_Sc=_Thai}', "");
+    Expect(0, 3676, '\p{Is_Sc=_Thai}', "");
+    Expect(1, 3676, '\p{^Is_Sc=_Thai}', "");
+    Expect(1, 3676, '\P{Is_Sc=_Thai}', "");
+    Expect(0, 3676, '\P{^Is_Sc=_Thai}', "");
+    Error('\p{Script=-TIBETAN:=}');
+    Error('\P{Script=-TIBETAN:=}');
     Expect(1, 4058, '\p{Script=:\ATibetan\z:}', "");;
     Expect(0, 4059, '\p{Script=:\ATibetan\z:}', "");;
     Expect(1, 4058, '\p{Script=tibetan}', "");
@@ -140059,16 +141395,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 4059, '\P{^Script=tibetan}', "");
     Expect(1, 4058, '\p{Script=:\Atibetan\z:}', "");;
     Expect(0, 4059, '\p{Script=:\Atibetan\z:}', "");;
-    Expect(1, 4058, '\p{Script=--Tibetan}', "");
-    Expect(0, 4058, '\p{^Script=--Tibetan}', "");
-    Expect(0, 4058, '\P{Script=--Tibetan}', "");
-    Expect(1, 4058, '\P{^Script=--Tibetan}', "");
-    Expect(0, 4059, '\p{Script=--Tibetan}', "");
-    Expect(1, 4059, '\p{^Script=--Tibetan}', "");
-    Expect(1, 4059, '\P{Script=--Tibetan}', "");
-    Expect(0, 4059, '\P{^Script=--Tibetan}', "");
-    Error('\p{Sc=_TIBT/a/}');
-    Error('\P{Sc=_TIBT/a/}');
+    Expect(1, 4058, '\p{Script=__Tibetan}', "");
+    Expect(0, 4058, '\p{^Script=__Tibetan}', "");
+    Expect(0, 4058, '\P{Script=__Tibetan}', "");
+    Expect(1, 4058, '\P{^Script=__Tibetan}', "");
+    Expect(0, 4059, '\p{Script=__Tibetan}', "");
+    Expect(1, 4059, '\p{^Script=__Tibetan}', "");
+    Expect(1, 4059, '\P{Script=__Tibetan}', "");
+    Expect(0, 4059, '\P{^Script=__Tibetan}', "");
+    Error('\p{Sc= /a/TIBT}');
+    Error('\P{Sc= /a/TIBT}');
     Expect(1, 4058, '\p{Sc=:\ATibt\z:}', "");;
     Expect(0, 4059, '\p{Sc=:\ATibt\z:}', "");;
     Expect(1, 4058, '\p{Sc=tibt}', "");
@@ -140081,16 +141417,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 4059, '\P{^Sc=tibt}', "");
     Expect(1, 4058, '\p{Sc=:\Atibt\z:}', "");;
     Expect(0, 4059, '\p{Sc=:\Atibt\z:}', "");;
-    Expect(1, 4058, '\p{Sc= _tibt}', "");
-    Expect(0, 4058, '\p{^Sc= _tibt}', "");
-    Expect(0, 4058, '\P{Sc= _tibt}', "");
-    Expect(1, 4058, '\P{^Sc= _tibt}', "");
-    Expect(0, 4059, '\p{Sc= _tibt}', "");
-    Expect(1, 4059, '\p{^Sc= _tibt}', "");
-    Expect(1, 4059, '\P{Sc= _tibt}', "");
-    Expect(0, 4059, '\P{^Sc= _tibt}', "");
-    Error('\p{Is_Script::=_	Tibetan}');
-    Error('\P{Is_Script::=_	Tibetan}');
+    Expect(1, 4058, '\p{Sc=-_tibt}', "");
+    Expect(0, 4058, '\p{^Sc=-_tibt}', "");
+    Expect(0, 4058, '\P{Sc=-_tibt}', "");
+    Expect(1, 4058, '\P{^Sc=-_tibt}', "");
+    Expect(0, 4059, '\p{Sc=-_tibt}', "");
+    Expect(1, 4059, '\p{^Sc=-_tibt}', "");
+    Expect(1, 4059, '\P{Sc=-_tibt}', "");
+    Expect(0, 4059, '\P{^Sc=-_tibt}', "");
+    Error('\p{Is_Script=	TIBETAN:=}');
+    Error('\P{Is_Script=	TIBETAN:=}');
     Expect(1, 4058, '\p{Is_Script=tibetan}', "");
     Expect(0, 4058, '\p{^Is_Script=tibetan}', "");
     Expect(0, 4058, '\P{Is_Script=tibetan}', "");
@@ -140099,34 +141435,26 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 4059, '\p{^Is_Script=tibetan}', "");
     Expect(1, 4059, '\P{Is_Script=tibetan}', "");
     Expect(0, 4059, '\P{^Is_Script=tibetan}', "");
-    Expect(1, 4058, '\p{Is_Script=	tibetan}', "");
-    Expect(0, 4058, '\p{^Is_Script=	tibetan}', "");
-    Expect(0, 4058, '\P{Is_Script=	tibetan}', "");
-    Expect(1, 4058, '\P{^Is_Script=	tibetan}', "");
-    Expect(0, 4059, '\p{Is_Script=	tibetan}', "");
-    Expect(1, 4059, '\p{^Is_Script=	tibetan}', "");
-    Expect(1, 4059, '\P{Is_Script=	tibetan}', "");
-    Expect(0, 4059, '\P{^Is_Script=	tibetan}', "");
-    Error('\p{Is_Sc=	Tibt/a/}');
-    Error('\P{Is_Sc=	Tibt/a/}');
-    Expect(1, 4058, '\p{Is_Sc:tibt}', "");
-    Expect(0, 4058, '\p{^Is_Sc:tibt}', "");
-    Expect(0, 4058, '\P{Is_Sc:tibt}', "");
-    Expect(1, 4058, '\P{^Is_Sc:tibt}', "");
-    Expect(0, 4059, '\p{Is_Sc:tibt}', "");
-    Expect(1, 4059, '\p{^Is_Sc:tibt}', "");
-    Expect(1, 4059, '\P{Is_Sc:tibt}', "");
-    Expect(0, 4059, '\P{^Is_Sc:tibt}', "");
-    Expect(1, 4058, '\p{Is_Sc=	TIBT}', "");
-    Expect(0, 4058, '\p{^Is_Sc=	TIBT}', "");
-    Expect(0, 4058, '\P{Is_Sc=	TIBT}', "");
-    Expect(1, 4058, '\P{^Is_Sc=	TIBT}', "");
-    Expect(0, 4059, '\p{Is_Sc=	TIBT}', "");
-    Expect(1, 4059, '\p{^Is_Sc=	TIBT}', "");
-    Expect(1, 4059, '\P{Is_Sc=	TIBT}', "");
-    Expect(0, 4059, '\P{^Is_Sc=	TIBT}', "");
-    Error('\p{Script: /a/		Tirhuta}');
-    Error('\P{Script: /a/		Tirhuta}');
+    Expect(1, 4058, '\p{Is_Script=-Tibetan}', "");
+    Expect(0, 4058, '\p{^Is_Script=-Tibetan}', "");
+    Expect(0, 4058, '\P{Is_Script=-Tibetan}', "");
+    Expect(1, 4058, '\P{^Is_Script=-Tibetan}', "");
+    Expect(0, 4059, '\p{Is_Script=-Tibetan}', "");
+    Expect(1, 4059, '\p{^Is_Script=-Tibetan}', "");
+    Expect(1, 4059, '\P{Is_Script=-Tibetan}', "");
+    Expect(0, 4059, '\P{^Is_Script=-Tibetan}', "");
+    Error('\p{Is_Sc: Tibt:=}');
+    Error('\P{Is_Sc: Tibt:=}');
+    Expect(1, 4058, '\p{Is_Sc=tibt}', "");
+    Expect(0, 4058, '\p{^Is_Sc=tibt}', "");
+    Expect(0, 4058, '\P{Is_Sc=tibt}', "");
+    Expect(1, 4058, '\P{^Is_Sc=tibt}', "");
+    Expect(0, 4059, '\p{Is_Sc=tibt}', "");
+    Expect(1, 4059, '\p{^Is_Sc=tibt}', "");
+    Expect(1, 4059, '\P{Is_Sc=tibt}', "");
+    Expect(0, 4059, '\P{^Is_Sc=tibt}', "");
+    Error('\p{Script=-_TIRHUTA:=}');
+    Error('\P{Script=-_TIRHUTA:=}');
     Expect(1, 70873, '\p{Script=:\ATirhuta\z:}', "");;
     Expect(0, 70874, '\p{Script=:\ATirhuta\z:}', "");;
     Expect(1, 70873, '\p{Script=tirhuta}', "");
@@ -140139,16 +141467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70874, '\P{^Script=tirhuta}', "");
     Expect(1, 70873, '\p{Script=:\Atirhuta\z:}', "");;
     Expect(0, 70874, '\p{Script=:\Atirhuta\z:}', "");;
-    Expect(1, 70873, '\p{Script=_ Tirhuta}', "");
-    Expect(0, 70873, '\p{^Script=_ Tirhuta}', "");
-    Expect(0, 70873, '\P{Script=_ Tirhuta}', "");
-    Expect(1, 70873, '\P{^Script=_ Tirhuta}', "");
-    Expect(0, 70874, '\p{Script=_ Tirhuta}', "");
-    Expect(1, 70874, '\p{^Script=_ Tirhuta}', "");
-    Expect(1, 70874, '\P{Script=_ Tirhuta}', "");
-    Expect(0, 70874, '\P{^Script=_ Tirhuta}', "");
-    Error('\p{Sc=_:=TIRH}');
-    Error('\P{Sc=_:=TIRH}');
+    Expect(1, 70873, '\p{Script=-Tirhuta}', "");
+    Expect(0, 70873, '\p{^Script=-Tirhuta}', "");
+    Expect(0, 70873, '\P{Script=-Tirhuta}', "");
+    Expect(1, 70873, '\P{^Script=-Tirhuta}', "");
+    Expect(0, 70874, '\p{Script=-Tirhuta}', "");
+    Expect(1, 70874, '\p{^Script=-Tirhuta}', "");
+    Expect(1, 70874, '\P{Script=-Tirhuta}', "");
+    Expect(0, 70874, '\P{^Script=-Tirhuta}', "");
+    Error('\p{Sc=:=__TIRH}');
+    Error('\P{Sc=:=__TIRH}');
     Expect(1, 70873, '\p{Sc=:\ATirh\z:}', "");;
     Expect(0, 70874, '\p{Sc=:\ATirh\z:}', "");;
     Expect(1, 70873, '\p{Sc=tirh}', "");
@@ -140161,16 +141489,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70874, '\P{^Sc=tirh}', "");
     Expect(1, 70873, '\p{Sc=:\Atirh\z:}', "");;
     Expect(0, 70874, '\p{Sc=:\Atirh\z:}', "");;
-    Expect(1, 70873, '\p{Sc=		TIRH}', "");
-    Expect(0, 70873, '\p{^Sc=		TIRH}', "");
-    Expect(0, 70873, '\P{Sc=		TIRH}', "");
-    Expect(1, 70873, '\P{^Sc=		TIRH}', "");
-    Expect(0, 70874, '\p{Sc=		TIRH}', "");
-    Expect(1, 70874, '\p{^Sc=		TIRH}', "");
-    Expect(1, 70874, '\P{Sc=		TIRH}', "");
-    Expect(0, 70874, '\P{^Sc=		TIRH}', "");
-    Error('\p{Is_Script=/a/-_tirhuta}');
-    Error('\P{Is_Script=/a/-_tirhuta}');
+    Expect(1, 70873, '\p{Sc=	_Tirh}', "");
+    Expect(0, 70873, '\p{^Sc=	_Tirh}', "");
+    Expect(0, 70873, '\P{Sc=	_Tirh}', "");
+    Expect(1, 70873, '\P{^Sc=	_Tirh}', "");
+    Expect(0, 70874, '\p{Sc=	_Tirh}', "");
+    Expect(1, 70874, '\p{^Sc=	_Tirh}', "");
+    Expect(1, 70874, '\P{Sc=	_Tirh}', "");
+    Expect(0, 70874, '\P{^Sc=	_Tirh}', "");
+    Error('\p{Is_Script=:=	-Tirhuta}');
+    Error('\P{Is_Script=:=	-Tirhuta}');
     Expect(1, 70873, '\p{Is_Script=tirhuta}', "");
     Expect(0, 70873, '\p{^Is_Script=tirhuta}', "");
     Expect(0, 70873, '\P{Is_Script=tirhuta}', "");
@@ -140179,16 +141507,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^Is_Script=tirhuta}', "");
     Expect(1, 70874, '\P{Is_Script=tirhuta}', "");
     Expect(0, 70874, '\P{^Is_Script=tirhuta}', "");
-    Expect(1, 70873, '\p{Is_Script=_tirhuta}', "");
-    Expect(0, 70873, '\p{^Is_Script=_tirhuta}', "");
-    Expect(0, 70873, '\P{Is_Script=_tirhuta}', "");
-    Expect(1, 70873, '\P{^Is_Script=_tirhuta}', "");
-    Expect(0, 70874, '\p{Is_Script=_tirhuta}', "");
-    Expect(1, 70874, '\p{^Is_Script=_tirhuta}', "");
-    Expect(1, 70874, '\P{Is_Script=_tirhuta}', "");
-    Expect(0, 70874, '\P{^Is_Script=_tirhuta}', "");
-    Error('\p{Is_Sc=-:=TIRH}');
-    Error('\P{Is_Sc=-:=TIRH}');
+    Expect(1, 70873, '\p{Is_Script=__Tirhuta}', "");
+    Expect(0, 70873, '\p{^Is_Script=__Tirhuta}', "");
+    Expect(0, 70873, '\P{Is_Script=__Tirhuta}', "");
+    Expect(1, 70873, '\P{^Is_Script=__Tirhuta}', "");
+    Expect(0, 70874, '\p{Is_Script=__Tirhuta}', "");
+    Expect(1, 70874, '\p{^Is_Script=__Tirhuta}', "");
+    Expect(1, 70874, '\P{Is_Script=__Tirhuta}', "");
+    Expect(0, 70874, '\P{^Is_Script=__Tirhuta}', "");
+    Error('\p{Is_Sc:		:=tirh}');
+    Error('\P{Is_Sc:		:=tirh}');
     Expect(1, 70873, '\p{Is_Sc=tirh}', "");
     Expect(0, 70873, '\p{^Is_Sc=tirh}', "");
     Expect(0, 70873, '\P{Is_Sc=tirh}', "");
@@ -140197,60 +141525,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^Is_Sc=tirh}', "");
     Expect(1, 70874, '\P{Is_Sc=tirh}', "");
     Expect(0, 70874, '\P{^Is_Sc=tirh}', "");
-    Expect(1, 70873, '\p{Is_Sc=	tirh}', "");
-    Expect(0, 70873, '\p{^Is_Sc=	tirh}', "");
-    Expect(0, 70873, '\P{Is_Sc=	tirh}', "");
-    Expect(1, 70873, '\P{^Is_Sc=	tirh}', "");
-    Expect(0, 70874, '\p{Is_Sc=	tirh}', "");
-    Expect(1, 70874, '\p{^Is_Sc=	tirh}', "");
-    Expect(1, 70874, '\P{Is_Sc=	tirh}', "");
-    Expect(0, 70874, '\P{^Is_Sc=	tirh}', "");
-    Error('\p{Script= 	Tangsa/a/}');
-    Error('\P{Script= 	Tangsa/a/}');
+    Expect(1, 70873, '\p{Is_Sc=-	TIRH}', "");
+    Expect(0, 70873, '\p{^Is_Sc=-	TIRH}', "");
+    Expect(0, 70873, '\P{Is_Sc=-	TIRH}', "");
+    Expect(1, 70873, '\P{^Is_Sc=-	TIRH}', "");
+    Expect(0, 70874, '\p{Is_Sc=-	TIRH}', "");
+    Expect(1, 70874, '\p{^Is_Sc=-	TIRH}', "");
+    Expect(1, 70874, '\P{Is_Sc=-	TIRH}', "");
+    Expect(0, 70874, '\P{^Is_Sc=-	TIRH}', "");
+    Error('\p{Script=__tangsa/a/}');
+    Error('\P{Script=__tangsa/a/}');
     Expect(1, 92873, '\p{Script=:\ATangsa\z:}', "");;
     Expect(0, 92874, '\p{Script=:\ATangsa\z:}', "");;
-    Expect(1, 92873, '\p{Script:tangsa}', "");
-    Expect(0, 92873, '\p{^Script:tangsa}', "");
-    Expect(0, 92873, '\P{Script:tangsa}', "");
-    Expect(1, 92873, '\P{^Script:tangsa}', "");
-    Expect(0, 92874, '\p{Script:tangsa}', "");
-    Expect(1, 92874, '\p{^Script:tangsa}', "");
-    Expect(1, 92874, '\P{Script:tangsa}', "");
-    Expect(0, 92874, '\P{^Script:tangsa}', "");
+    Expect(1, 92873, '\p{Script=tangsa}', "");
+    Expect(0, 92873, '\p{^Script=tangsa}', "");
+    Expect(0, 92873, '\P{Script=tangsa}', "");
+    Expect(1, 92873, '\P{^Script=tangsa}', "");
+    Expect(0, 92874, '\p{Script=tangsa}', "");
+    Expect(1, 92874, '\p{^Script=tangsa}', "");
+    Expect(1, 92874, '\P{Script=tangsa}', "");
+    Expect(0, 92874, '\P{^Script=tangsa}', "");
     Expect(1, 92873, '\p{Script=:\Atangsa\z:}', "");;
     Expect(0, 92874, '\p{Script=:\Atangsa\z:}', "");;
-    Expect(1, 92873, '\p{Script=-	Tangsa}', "");
-    Expect(0, 92873, '\p{^Script=-	Tangsa}', "");
-    Expect(0, 92873, '\P{Script=-	Tangsa}', "");
-    Expect(1, 92873, '\P{^Script=-	Tangsa}', "");
-    Expect(0, 92874, '\p{Script=-	Tangsa}', "");
-    Expect(1, 92874, '\p{^Script=-	Tangsa}', "");
-    Expect(1, 92874, '\P{Script=-	Tangsa}', "");
-    Expect(0, 92874, '\P{^Script=-	Tangsa}', "");
-    Error('\p{Sc=_	Tnsa:=}');
-    Error('\P{Sc=_	Tnsa:=}');
+    Expect(1, 92873, '\p{Script=_ Tangsa}', "");
+    Expect(0, 92873, '\p{^Script=_ Tangsa}', "");
+    Expect(0, 92873, '\P{Script=_ Tangsa}', "");
+    Expect(1, 92873, '\P{^Script=_ Tangsa}', "");
+    Expect(0, 92874, '\p{Script=_ Tangsa}', "");
+    Expect(1, 92874, '\p{^Script=_ Tangsa}', "");
+    Expect(1, 92874, '\P{Script=_ Tangsa}', "");
+    Expect(0, 92874, '\P{^Script=_ Tangsa}', "");
+    Error('\p{Sc=_:=Tnsa}');
+    Error('\P{Sc=_:=Tnsa}');
     Expect(1, 92873, '\p{Sc=:\ATnsa\z:}', "");;
     Expect(0, 92874, '\p{Sc=:\ATnsa\z:}', "");;
-    Expect(1, 92873, '\p{Sc: tnsa}', "");
-    Expect(0, 92873, '\p{^Sc: tnsa}', "");
-    Expect(0, 92873, '\P{Sc: tnsa}', "");
-    Expect(1, 92873, '\P{^Sc: tnsa}', "");
-    Expect(0, 92874, '\p{Sc: tnsa}', "");
-    Expect(1, 92874, '\p{^Sc: tnsa}', "");
-    Expect(1, 92874, '\P{Sc: tnsa}', "");
-    Expect(0, 92874, '\P{^Sc: tnsa}', "");
+    Expect(1, 92873, '\p{Sc:tnsa}', "");
+    Expect(0, 92873, '\p{^Sc:tnsa}', "");
+    Expect(0, 92873, '\P{Sc:tnsa}', "");
+    Expect(1, 92873, '\P{^Sc:tnsa}', "");
+    Expect(0, 92874, '\p{Sc:tnsa}', "");
+    Expect(1, 92874, '\p{^Sc:tnsa}', "");
+    Expect(1, 92874, '\P{Sc:tnsa}', "");
+    Expect(0, 92874, '\P{^Sc:tnsa}', "");
     Expect(1, 92873, '\p{Sc=:\Atnsa\z:}', "");;
     Expect(0, 92874, '\p{Sc=:\Atnsa\z:}', "");;
-    Expect(1, 92873, '\p{Sc= tnsa}', "");
-    Expect(0, 92873, '\p{^Sc= tnsa}', "");
-    Expect(0, 92873, '\P{Sc= tnsa}', "");
-    Expect(1, 92873, '\P{^Sc= tnsa}', "");
-    Expect(0, 92874, '\p{Sc= tnsa}', "");
-    Expect(1, 92874, '\p{^Sc= tnsa}', "");
-    Expect(1, 92874, '\P{Sc= tnsa}', "");
-    Expect(0, 92874, '\P{^Sc= tnsa}', "");
-    Error('\p{Is_Script=	 tangsa:=}');
-    Error('\P{Is_Script=	 tangsa:=}');
+    Expect(1, 92873, '\p{Sc=-_Tnsa}', "");
+    Expect(0, 92873, '\p{^Sc=-_Tnsa}', "");
+    Expect(0, 92873, '\P{Sc=-_Tnsa}', "");
+    Expect(1, 92873, '\P{^Sc=-_Tnsa}', "");
+    Expect(0, 92874, '\p{Sc=-_Tnsa}', "");
+    Expect(1, 92874, '\p{^Sc=-_Tnsa}', "");
+    Expect(1, 92874, '\P{Sc=-_Tnsa}', "");
+    Expect(0, 92874, '\P{^Sc=-_Tnsa}', "");
+    Error('\p{Is_Script=_	tangsa:=}');
+    Error('\P{Is_Script=_	tangsa:=}');
     Expect(1, 92873, '\p{Is_Script=tangsa}', "");
     Expect(0, 92873, '\p{^Is_Script=tangsa}', "");
     Expect(0, 92873, '\P{Is_Script=tangsa}', "");
@@ -140259,34 +141587,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^Is_Script=tangsa}', "");
     Expect(1, 92874, '\P{Is_Script=tangsa}', "");
     Expect(0, 92874, '\P{^Is_Script=tangsa}', "");
-    Expect(1, 92873, '\p{Is_Script=-Tangsa}', "");
-    Expect(0, 92873, '\p{^Is_Script=-Tangsa}', "");
-    Expect(0, 92873, '\P{Is_Script=-Tangsa}', "");
-    Expect(1, 92873, '\P{^Is_Script=-Tangsa}', "");
-    Expect(0, 92874, '\p{Is_Script=-Tangsa}', "");
-    Expect(1, 92874, '\p{^Is_Script=-Tangsa}', "");
-    Expect(1, 92874, '\P{Is_Script=-Tangsa}', "");
-    Expect(0, 92874, '\P{^Is_Script=-Tangsa}', "");
-    Error('\p{Is_Sc=/a/-Tnsa}');
-    Error('\P{Is_Sc=/a/-Tnsa}');
-    Expect(1, 92873, '\p{Is_Sc:   tnsa}', "");
-    Expect(0, 92873, '\p{^Is_Sc:   tnsa}', "");
-    Expect(0, 92873, '\P{Is_Sc:   tnsa}', "");
-    Expect(1, 92873, '\P{^Is_Sc:   tnsa}', "");
-    Expect(0, 92874, '\p{Is_Sc:   tnsa}', "");
-    Expect(1, 92874, '\p{^Is_Sc:   tnsa}', "");
-    Expect(1, 92874, '\P{Is_Sc:   tnsa}', "");
-    Expect(0, 92874, '\P{^Is_Sc:   tnsa}', "");
-    Expect(1, 92873, '\p{Is_Sc=	-Tnsa}', "");
-    Expect(0, 92873, '\p{^Is_Sc=	-Tnsa}', "");
-    Expect(0, 92873, '\P{Is_Sc=	-Tnsa}', "");
-    Expect(1, 92873, '\P{^Is_Sc=	-Tnsa}', "");
-    Expect(0, 92874, '\p{Is_Sc=	-Tnsa}', "");
-    Expect(1, 92874, '\p{^Is_Sc=	-Tnsa}', "");
-    Expect(1, 92874, '\P{Is_Sc=	-Tnsa}', "");
-    Expect(0, 92874, '\P{^Is_Sc=	-Tnsa}', "");
-    Error('\p{Script:-_Toto:=}');
-    Error('\P{Script:-_Toto:=}');
+    Expect(1, 92873, '\p{Is_Script:- Tangsa}', "");
+    Expect(0, 92873, '\p{^Is_Script:- Tangsa}', "");
+    Expect(0, 92873, '\P{Is_Script:- Tangsa}', "");
+    Expect(1, 92873, '\P{^Is_Script:- Tangsa}', "");
+    Expect(0, 92874, '\p{Is_Script:- Tangsa}', "");
+    Expect(1, 92874, '\p{^Is_Script:- Tangsa}', "");
+    Expect(1, 92874, '\P{Is_Script:- Tangsa}', "");
+    Expect(0, 92874, '\P{^Is_Script:- Tangsa}', "");
+    Error('\p{Is_Sc:   	 TNSA/a/}');
+    Error('\P{Is_Sc:   	 TNSA/a/}');
+    Expect(1, 92873, '\p{Is_Sc:	tnsa}', "");
+    Expect(0, 92873, '\p{^Is_Sc:	tnsa}', "");
+    Expect(0, 92873, '\P{Is_Sc:	tnsa}', "");
+    Expect(1, 92873, '\P{^Is_Sc:	tnsa}', "");
+    Expect(0, 92874, '\p{Is_Sc:	tnsa}', "");
+    Expect(1, 92874, '\p{^Is_Sc:	tnsa}', "");
+    Expect(1, 92874, '\P{Is_Sc:	tnsa}', "");
+    Expect(0, 92874, '\P{^Is_Sc:	tnsa}', "");
+    Expect(1, 92873, '\p{Is_Sc=_TNSA}', "");
+    Expect(0, 92873, '\p{^Is_Sc=_TNSA}', "");
+    Expect(0, 92873, '\P{Is_Sc=_TNSA}', "");
+    Expect(1, 92873, '\P{^Is_Sc=_TNSA}', "");
+    Expect(0, 92874, '\p{Is_Sc=_TNSA}', "");
+    Expect(1, 92874, '\p{^Is_Sc=_TNSA}', "");
+    Expect(1, 92874, '\P{Is_Sc=_TNSA}', "");
+    Expect(0, 92874, '\P{^Is_Sc=_TNSA}', "");
+    Error('\p{Script=/a/__toto}');
+    Error('\P{Script=/a/__toto}');
     Expect(1, 123566, '\p{Script=:\AToto\z:}', "");;
     Expect(0, 123567, '\p{Script=:\AToto\z:}', "");;
     Expect(1, 123566, '\p{Script=toto}', "");
@@ -140299,16 +141627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 123567, '\P{^Script=toto}', "");
     Expect(1, 123566, '\p{Script=:\Atoto\z:}', "");;
     Expect(0, 123567, '\p{Script=:\Atoto\z:}', "");;
-    Expect(1, 123566, '\p{Script=__TOTO}', "");
-    Expect(0, 123566, '\p{^Script=__TOTO}', "");
-    Expect(0, 123566, '\P{Script=__TOTO}', "");
-    Expect(1, 123566, '\P{^Script=__TOTO}', "");
-    Expect(0, 123567, '\p{Script=__TOTO}', "");
-    Expect(1, 123567, '\p{^Script=__TOTO}', "");
-    Expect(1, 123567, '\P{Script=__TOTO}', "");
-    Expect(0, 123567, '\P{^Script=__TOTO}', "");
-    Error('\p{Sc=_TOTO/a/}');
-    Error('\P{Sc=_TOTO/a/}');
+    Expect(1, 123566, '\p{Script=__toto}', "");
+    Expect(0, 123566, '\p{^Script=__toto}', "");
+    Expect(0, 123566, '\P{Script=__toto}', "");
+    Expect(1, 123566, '\P{^Script=__toto}', "");
+    Expect(0, 123567, '\p{Script=__toto}', "");
+    Expect(1, 123567, '\p{^Script=__toto}', "");
+    Expect(1, 123567, '\P{Script=__toto}', "");
+    Expect(0, 123567, '\P{^Script=__toto}', "");
+    Error('\p{Sc= Toto/a/}');
+    Error('\P{Sc= Toto/a/}');
     Expect(1, 123566, '\p{Sc=:\AToto\z:}', "");;
     Expect(0, 123567, '\p{Sc=:\AToto\z:}', "");;
     Expect(1, 123566, '\p{Sc=toto}', "");
@@ -140321,16 +141649,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 123567, '\P{^Sc=toto}', "");
     Expect(1, 123566, '\p{Sc=:\Atoto\z:}', "");;
     Expect(0, 123567, '\p{Sc=:\Atoto\z:}', "");;
-    Expect(1, 123566, '\p{Sc:   -Toto}', "");
-    Expect(0, 123566, '\p{^Sc:   -Toto}', "");
-    Expect(0, 123566, '\P{Sc:   -Toto}', "");
-    Expect(1, 123566, '\P{^Sc:   -Toto}', "");
-    Expect(0, 123567, '\p{Sc:   -Toto}', "");
-    Expect(1, 123567, '\p{^Sc:   -Toto}', "");
-    Expect(1, 123567, '\P{Sc:   -Toto}', "");
-    Expect(0, 123567, '\P{^Sc:   -Toto}', "");
-    Error('\p{Is_Script=-/a/toto}');
-    Error('\P{Is_Script=-/a/toto}');
+    Expect(1, 123566, '\p{Sc=	-Toto}', "");
+    Expect(0, 123566, '\p{^Sc=	-Toto}', "");
+    Expect(0, 123566, '\P{Sc=	-Toto}', "");
+    Expect(1, 123566, '\P{^Sc=	-Toto}', "");
+    Expect(0, 123567, '\p{Sc=	-Toto}', "");
+    Expect(1, 123567, '\p{^Sc=	-Toto}', "");
+    Expect(1, 123567, '\P{Sc=	-Toto}', "");
+    Expect(0, 123567, '\P{^Sc=	-Toto}', "");
+    Error('\p{Is_Script=/a/	-Toto}');
+    Error('\P{Is_Script=/a/	-Toto}');
     Expect(1, 123566, '\p{Is_Script=toto}', "");
     Expect(0, 123566, '\p{^Is_Script=toto}', "");
     Expect(0, 123566, '\P{Is_Script=toto}', "");
@@ -140339,16 +141667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123567, '\p{^Is_Script=toto}', "");
     Expect(1, 123567, '\P{Is_Script=toto}', "");
     Expect(0, 123567, '\P{^Is_Script=toto}', "");
-    Expect(1, 123566, '\p{Is_Script=_ TOTO}', "");
-    Expect(0, 123566, '\p{^Is_Script=_ TOTO}', "");
-    Expect(0, 123566, '\P{Is_Script=_ TOTO}', "");
-    Expect(1, 123566, '\P{^Is_Script=_ TOTO}', "");
-    Expect(0, 123567, '\p{Is_Script=_ TOTO}', "");
-    Expect(1, 123567, '\p{^Is_Script=_ TOTO}', "");
-    Expect(1, 123567, '\P{Is_Script=_ TOTO}', "");
-    Expect(0, 123567, '\P{^Is_Script=_ TOTO}', "");
-    Error('\p{Is_Sc= :=toto}');
-    Error('\P{Is_Sc= :=toto}');
+    Expect(1, 123566, '\p{Is_Script= _Toto}', "");
+    Expect(0, 123566, '\p{^Is_Script= _Toto}', "");
+    Expect(0, 123566, '\P{Is_Script= _Toto}', "");
+    Expect(1, 123566, '\P{^Is_Script= _Toto}', "");
+    Expect(0, 123567, '\p{Is_Script= _Toto}', "");
+    Expect(1, 123567, '\p{^Is_Script= _Toto}', "");
+    Expect(1, 123567, '\P{Is_Script= _Toto}', "");
+    Expect(0, 123567, '\P{^Is_Script= _Toto}', "");
+    Error('\p{Is_Sc=_Toto:=}');
+    Error('\P{Is_Sc=_Toto:=}');
     Expect(1, 123566, '\p{Is_Sc=toto}', "");
     Expect(0, 123566, '\p{^Is_Sc=toto}', "");
     Expect(0, 123566, '\P{Is_Sc=toto}', "");
@@ -140357,16 +141685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123567, '\p{^Is_Sc=toto}', "");
     Expect(1, 123567, '\P{Is_Sc=toto}', "");
     Expect(0, 123567, '\P{^Is_Sc=toto}', "");
-    Expect(1, 123566, '\p{Is_Sc= -TOTO}', "");
-    Expect(0, 123566, '\p{^Is_Sc= -TOTO}', "");
-    Expect(0, 123566, '\P{Is_Sc= -TOTO}', "");
-    Expect(1, 123566, '\P{^Is_Sc= -TOTO}', "");
-    Expect(0, 123567, '\p{Is_Sc= -TOTO}', "");
-    Expect(1, 123567, '\p{^Is_Sc= -TOTO}', "");
-    Expect(1, 123567, '\P{Is_Sc= -TOTO}', "");
-    Expect(0, 123567, '\P{^Is_Sc= -TOTO}', "");
-    Error('\p{Script=-/a/Ugaritic}');
-    Error('\P{Script=-/a/Ugaritic}');
+    Expect(1, 123566, '\p{Is_Sc=	 Toto}', "");
+    Expect(0, 123566, '\p{^Is_Sc=	 Toto}', "");
+    Expect(0, 123566, '\P{Is_Sc=	 Toto}', "");
+    Expect(1, 123566, '\P{^Is_Sc=	 Toto}', "");
+    Expect(0, 123567, '\p{Is_Sc=	 Toto}', "");
+    Expect(1, 123567, '\p{^Is_Sc=	 Toto}', "");
+    Expect(1, 123567, '\P{Is_Sc=	 Toto}', "");
+    Expect(0, 123567, '\P{^Is_Sc=	 Toto}', "");
+    Error('\p{Script=/a/Ugaritic}');
+    Error('\P{Script=/a/Ugaritic}');
     Expect(1, 66463, '\p{Script=:\AUgaritic\z:}', "");;
     Expect(0, 66464, '\p{Script=:\AUgaritic\z:}', "");;
     Expect(1, 66463, '\p{Script=ugaritic}', "");
@@ -140379,16 +141707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66464, '\P{^Script=ugaritic}', "");
     Expect(1, 66463, '\p{Script=:\Augaritic\z:}', "");;
     Expect(0, 66464, '\p{Script=:\Augaritic\z:}', "");;
-    Expect(1, 66463, '\p{Script=-_Ugaritic}', "");
-    Expect(0, 66463, '\p{^Script=-_Ugaritic}', "");
-    Expect(0, 66463, '\P{Script=-_Ugaritic}', "");
-    Expect(1, 66463, '\P{^Script=-_Ugaritic}', "");
-    Expect(0, 66464, '\p{Script=-_Ugaritic}', "");
-    Expect(1, 66464, '\p{^Script=-_Ugaritic}', "");
-    Expect(1, 66464, '\P{Script=-_Ugaritic}', "");
-    Expect(0, 66464, '\P{^Script=-_Ugaritic}', "");
-    Error('\p{Sc=_-ugar:=}');
-    Error('\P{Sc=_-ugar:=}');
+    Expect(1, 66463, '\p{Script=	-UGARITIC}', "");
+    Expect(0, 66463, '\p{^Script=	-UGARITIC}', "");
+    Expect(0, 66463, '\P{Script=	-UGARITIC}', "");
+    Expect(1, 66463, '\P{^Script=	-UGARITIC}', "");
+    Expect(0, 66464, '\p{Script=	-UGARITIC}', "");
+    Expect(1, 66464, '\p{^Script=	-UGARITIC}', "");
+    Expect(1, 66464, '\P{Script=	-UGARITIC}', "");
+    Expect(0, 66464, '\P{^Script=	-UGARITIC}', "");
+    Error('\p{Sc= -Ugar/a/}');
+    Error('\P{Sc= -Ugar/a/}');
     Expect(1, 66463, '\p{Sc=:\AUgar\z:}', "");;
     Expect(0, 66464, '\p{Sc=:\AUgar\z:}', "");;
     Expect(1, 66463, '\p{Sc=ugar}', "");
@@ -140401,16 +141729,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66464, '\P{^Sc=ugar}', "");
     Expect(1, 66463, '\p{Sc=:\Augar\z:}', "");;
     Expect(0, 66464, '\p{Sc=:\Augar\z:}', "");;
-    Expect(1, 66463, '\p{Sc:   - Ugar}', "");
-    Expect(0, 66463, '\p{^Sc:   - Ugar}', "");
-    Expect(0, 66463, '\P{Sc:   - Ugar}', "");
-    Expect(1, 66463, '\P{^Sc:   - Ugar}', "");
-    Expect(0, 66464, '\p{Sc:   - Ugar}', "");
-    Expect(1, 66464, '\p{^Sc:   - Ugar}', "");
-    Expect(1, 66464, '\P{Sc:   - Ugar}', "");
-    Expect(0, 66464, '\P{^Sc:   - Ugar}', "");
-    Error('\p{Is_Script=_:=Ugaritic}');
-    Error('\P{Is_Script=_:=Ugaritic}');
+    Expect(1, 66463, '\p{Sc= Ugar}', "");
+    Expect(0, 66463, '\p{^Sc= Ugar}', "");
+    Expect(0, 66463, '\P{Sc= Ugar}', "");
+    Expect(1, 66463, '\P{^Sc= Ugar}', "");
+    Expect(0, 66464, '\p{Sc= Ugar}', "");
+    Expect(1, 66464, '\p{^Sc= Ugar}', "");
+    Expect(1, 66464, '\P{Sc= Ugar}', "");
+    Expect(0, 66464, '\P{^Sc= Ugar}', "");
+    Error('\p{Is_Script=/a/-Ugaritic}');
+    Error('\P{Is_Script=/a/-Ugaritic}');
     Expect(1, 66463, '\p{Is_Script=ugaritic}', "");
     Expect(0, 66463, '\p{^Is_Script=ugaritic}', "");
     Expect(0, 66463, '\P{Is_Script=ugaritic}', "");
@@ -140419,16 +141747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^Is_Script=ugaritic}', "");
     Expect(1, 66464, '\P{Is_Script=ugaritic}', "");
     Expect(0, 66464, '\P{^Is_Script=ugaritic}', "");
-    Expect(1, 66463, '\p{Is_Script:   _Ugaritic}', "");
-    Expect(0, 66463, '\p{^Is_Script:   _Ugaritic}', "");
-    Expect(0, 66463, '\P{Is_Script:   _Ugaritic}', "");
-    Expect(1, 66463, '\P{^Is_Script:   _Ugaritic}', "");
-    Expect(0, 66464, '\p{Is_Script:   _Ugaritic}', "");
-    Expect(1, 66464, '\p{^Is_Script:   _Ugaritic}', "");
-    Expect(1, 66464, '\P{Is_Script:   _Ugaritic}', "");
-    Expect(0, 66464, '\P{^Is_Script:   _Ugaritic}', "");
-    Error('\p{Is_Sc=:=_-ugar}');
-    Error('\P{Is_Sc=:=_-ugar}');
+    Expect(1, 66463, '\p{Is_Script=_ Ugaritic}', "");
+    Expect(0, 66463, '\p{^Is_Script=_ Ugaritic}', "");
+    Expect(0, 66463, '\P{Is_Script=_ Ugaritic}', "");
+    Expect(1, 66463, '\P{^Is_Script=_ Ugaritic}', "");
+    Expect(0, 66464, '\p{Is_Script=_ Ugaritic}', "");
+    Expect(1, 66464, '\p{^Is_Script=_ Ugaritic}', "");
+    Expect(1, 66464, '\P{Is_Script=_ Ugaritic}', "");
+    Expect(0, 66464, '\P{^Is_Script=_ Ugaritic}', "");
+    Error('\p{Is_Sc=/a/_	Ugar}');
+    Error('\P{Is_Sc=/a/_	Ugar}');
     Expect(1, 66463, '\p{Is_Sc=ugar}', "");
     Expect(0, 66463, '\p{^Is_Sc=ugar}', "");
     Expect(0, 66463, '\P{Is_Sc=ugar}', "");
@@ -140437,16 +141765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^Is_Sc=ugar}', "");
     Expect(1, 66464, '\P{Is_Sc=ugar}', "");
     Expect(0, 66464, '\P{^Is_Sc=ugar}', "");
-    Expect(1, 66463, '\p{Is_Sc=		UGAR}', "");
-    Expect(0, 66463, '\p{^Is_Sc=		UGAR}', "");
-    Expect(0, 66463, '\P{Is_Sc=		UGAR}', "");
-    Expect(1, 66463, '\P{^Is_Sc=		UGAR}', "");
-    Expect(0, 66464, '\p{Is_Sc=		UGAR}', "");
-    Expect(1, 66464, '\p{^Is_Sc=		UGAR}', "");
-    Expect(1, 66464, '\P{Is_Sc=		UGAR}', "");
-    Expect(0, 66464, '\P{^Is_Sc=		UGAR}', "");
-    Error('\p{Script=_-Vai:=}');
-    Error('\P{Script=_-Vai:=}');
+    Expect(1, 66463, '\p{Is_Sc= -UGAR}', "");
+    Expect(0, 66463, '\p{^Is_Sc= -UGAR}', "");
+    Expect(0, 66463, '\P{Is_Sc= -UGAR}', "");
+    Expect(1, 66463, '\P{^Is_Sc= -UGAR}', "");
+    Expect(0, 66464, '\p{Is_Sc= -UGAR}', "");
+    Expect(1, 66464, '\p{^Is_Sc= -UGAR}', "");
+    Expect(1, 66464, '\P{Is_Sc= -UGAR}', "");
+    Expect(0, 66464, '\P{^Is_Sc= -UGAR}', "");
+    Error('\p{Script=_-Vai/a/}');
+    Error('\P{Script=_-Vai/a/}');
     Expect(1, 42539, '\p{Script=:\AVai\z:}', "");;
     Expect(0, 42540, '\p{Script=:\AVai\z:}', "");;
     Expect(1, 42539, '\p{Script=vai}', "");
@@ -140459,38 +141787,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 42540, '\P{^Script=vai}', "");
     Expect(1, 42539, '\p{Script=:\Avai\z:}', "");;
     Expect(0, 42540, '\p{Script=:\Avai\z:}', "");;
-    Expect(1, 42539, '\p{Script=	Vai}', "");
-    Expect(0, 42539, '\p{^Script=	Vai}', "");
-    Expect(0, 42539, '\P{Script=	Vai}', "");
-    Expect(1, 42539, '\P{^Script=	Vai}', "");
-    Expect(0, 42540, '\p{Script=	Vai}', "");
-    Expect(1, 42540, '\p{^Script=	Vai}', "");
-    Expect(1, 42540, '\P{Script=	Vai}', "");
-    Expect(0, 42540, '\P{^Script=	Vai}', "");
-    Error('\p{Sc=_:=Vaii}');
-    Error('\P{Sc=_:=Vaii}');
+    Expect(1, 42539, '\p{Script= -Vai}', "");
+    Expect(0, 42539, '\p{^Script= -Vai}', "");
+    Expect(0, 42539, '\P{Script= -Vai}', "");
+    Expect(1, 42539, '\P{^Script= -Vai}', "");
+    Expect(0, 42540, '\p{Script= -Vai}', "");
+    Expect(1, 42540, '\p{^Script= -Vai}', "");
+    Expect(1, 42540, '\P{Script= -Vai}', "");
+    Expect(0, 42540, '\P{^Script= -Vai}', "");
+    Error('\p{Sc=:= -Vaii}');
+    Error('\P{Sc=:= -Vaii}');
     Expect(1, 42539, '\p{Sc=:\AVaii\z:}', "");;
     Expect(0, 42540, '\p{Sc=:\AVaii\z:}', "");;
-    Expect(1, 42539, '\p{Sc:vaii}', "");
-    Expect(0, 42539, '\p{^Sc:vaii}', "");
-    Expect(0, 42539, '\P{Sc:vaii}', "");
-    Expect(1, 42539, '\P{^Sc:vaii}', "");
-    Expect(0, 42540, '\p{Sc:vaii}', "");
-    Expect(1, 42540, '\p{^Sc:vaii}', "");
-    Expect(1, 42540, '\P{Sc:vaii}', "");
-    Expect(0, 42540, '\P{^Sc:vaii}', "");
+    Expect(1, 42539, '\p{Sc=vaii}', "");
+    Expect(0, 42539, '\p{^Sc=vaii}', "");
+    Expect(0, 42539, '\P{Sc=vaii}', "");
+    Expect(1, 42539, '\P{^Sc=vaii}', "");
+    Expect(0, 42540, '\p{Sc=vaii}', "");
+    Expect(1, 42540, '\p{^Sc=vaii}', "");
+    Expect(1, 42540, '\P{Sc=vaii}', "");
+    Expect(0, 42540, '\P{^Sc=vaii}', "");
     Expect(1, 42539, '\p{Sc=:\Avaii\z:}', "");;
     Expect(0, 42540, '\p{Sc=:\Avaii\z:}', "");;
-    Expect(1, 42539, '\p{Sc=-VAII}', "");
-    Expect(0, 42539, '\p{^Sc=-VAII}', "");
-    Expect(0, 42539, '\P{Sc=-VAII}', "");
-    Expect(1, 42539, '\P{^Sc=-VAII}', "");
-    Expect(0, 42540, '\p{Sc=-VAII}', "");
-    Expect(1, 42540, '\p{^Sc=-VAII}', "");
-    Expect(1, 42540, '\P{Sc=-VAII}', "");
-    Expect(0, 42540, '\P{^Sc=-VAII}', "");
-    Error('\p{Is_Script=_:=VAI}');
-    Error('\P{Is_Script=_:=VAI}');
+    Expect(1, 42539, '\p{Sc: _ VAII}', "");
+    Expect(0, 42539, '\p{^Sc: _ VAII}', "");
+    Expect(0, 42539, '\P{Sc: _ VAII}', "");
+    Expect(1, 42539, '\P{^Sc: _ VAII}', "");
+    Expect(0, 42540, '\p{Sc: _ VAII}', "");
+    Expect(1, 42540, '\p{^Sc: _ VAII}', "");
+    Expect(1, 42540, '\P{Sc: _ VAII}', "");
+    Expect(0, 42540, '\P{^Sc: _ VAII}', "");
+    Error('\p{Is_Script=/a/Vai}');
+    Error('\P{Is_Script=/a/Vai}');
     Expect(1, 42539, '\p{Is_Script=vai}', "");
     Expect(0, 42539, '\p{^Is_Script=vai}', "");
     Expect(0, 42539, '\P{Is_Script=vai}', "");
@@ -140499,16 +141827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^Is_Script=vai}', "");
     Expect(1, 42540, '\P{Is_Script=vai}', "");
     Expect(0, 42540, '\P{^Is_Script=vai}', "");
-    Expect(1, 42539, '\p{Is_Script=	-vai}', "");
-    Expect(0, 42539, '\p{^Is_Script=	-vai}', "");
-    Expect(0, 42539, '\P{Is_Script=	-vai}', "");
-    Expect(1, 42539, '\P{^Is_Script=	-vai}', "");
-    Expect(0, 42540, '\p{Is_Script=	-vai}', "");
-    Expect(1, 42540, '\p{^Is_Script=	-vai}', "");
-    Expect(1, 42540, '\P{Is_Script=	-vai}', "");
-    Expect(0, 42540, '\P{^Is_Script=	-vai}', "");
-    Error('\p{Is_Sc=/a/-	Vaii}');
-    Error('\P{Is_Sc=/a/-	Vaii}');
+    Expect(1, 42539, '\p{Is_Script=- Vai}', "");
+    Expect(0, 42539, '\p{^Is_Script=- Vai}', "");
+    Expect(0, 42539, '\P{Is_Script=- Vai}', "");
+    Expect(1, 42539, '\P{^Is_Script=- Vai}', "");
+    Expect(0, 42540, '\p{Is_Script=- Vai}', "");
+    Expect(1, 42540, '\p{^Is_Script=- Vai}', "");
+    Expect(1, 42540, '\P{Is_Script=- Vai}', "");
+    Expect(0, 42540, '\P{^Is_Script=- Vai}', "");
+    Error('\p{Is_Sc=_	VAII:=}');
+    Error('\P{Is_Sc=_	VAII:=}');
     Expect(1, 42539, '\p{Is_Sc=vaii}', "");
     Expect(0, 42539, '\p{^Is_Sc=vaii}', "");
     Expect(0, 42539, '\P{Is_Sc=vaii}', "");
@@ -140517,16 +141845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^Is_Sc=vaii}', "");
     Expect(1, 42540, '\P{Is_Sc=vaii}', "");
     Expect(0, 42540, '\P{^Is_Sc=vaii}', "");
-    Expect(1, 42539, '\p{Is_Sc=	-Vaii}', "");
-    Expect(0, 42539, '\p{^Is_Sc=	-Vaii}', "");
-    Expect(0, 42539, '\P{Is_Sc=	-Vaii}', "");
-    Expect(1, 42539, '\P{^Is_Sc=	-Vaii}', "");
-    Expect(0, 42540, '\p{Is_Sc=	-Vaii}', "");
-    Expect(1, 42540, '\p{^Is_Sc=	-Vaii}', "");
-    Expect(1, 42540, '\P{Is_Sc=	-Vaii}', "");
-    Expect(0, 42540, '\P{^Is_Sc=	-Vaii}', "");
-    Error('\p{Script=-/a/Vithkuqi}');
-    Error('\P{Script=-/a/Vithkuqi}');
+    Expect(1, 42539, '\p{Is_Sc= vaii}', "");
+    Expect(0, 42539, '\p{^Is_Sc= vaii}', "");
+    Expect(0, 42539, '\P{Is_Sc= vaii}', "");
+    Expect(1, 42539, '\P{^Is_Sc= vaii}', "");
+    Expect(0, 42540, '\p{Is_Sc= vaii}', "");
+    Expect(1, 42540, '\p{^Is_Sc= vaii}', "");
+    Expect(1, 42540, '\P{Is_Sc= vaii}', "");
+    Expect(0, 42540, '\P{^Is_Sc= vaii}', "");
+    Error('\p{Script=_:=VITHKUQI}');
+    Error('\P{Script=_:=VITHKUQI}');
     Expect(1, 67004, '\p{Script=:\AVithkuqi\z:}', "");;
     Expect(0, 67005, '\p{Script=:\AVithkuqi\z:}', "");;
     Expect(1, 67004, '\p{Script=vithkuqi}', "");
@@ -140539,16 +141867,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67005, '\P{^Script=vithkuqi}', "");
     Expect(1, 67004, '\p{Script=:\Avithkuqi\z:}', "");;
     Expect(0, 67005, '\p{Script=:\Avithkuqi\z:}', "");;
-    Expect(1, 67004, '\p{Script=-Vithkuqi}', "");
-    Expect(0, 67004, '\p{^Script=-Vithkuqi}', "");
-    Expect(0, 67004, '\P{Script=-Vithkuqi}', "");
-    Expect(1, 67004, '\P{^Script=-Vithkuqi}', "");
-    Expect(0, 67005, '\p{Script=-Vithkuqi}', "");
-    Expect(1, 67005, '\p{^Script=-Vithkuqi}', "");
-    Expect(1, 67005, '\P{Script=-Vithkuqi}', "");
-    Expect(0, 67005, '\P{^Script=-Vithkuqi}', "");
-    Error('\p{Sc:	_vith:=}');
-    Error('\P{Sc:	_vith:=}');
+    Expect(1, 67004, '\p{Script=	 Vithkuqi}', "");
+    Expect(0, 67004, '\p{^Script=	 Vithkuqi}', "");
+    Expect(0, 67004, '\P{Script=	 Vithkuqi}', "");
+    Expect(1, 67004, '\P{^Script=	 Vithkuqi}', "");
+    Expect(0, 67005, '\p{Script=	 Vithkuqi}', "");
+    Expect(1, 67005, '\p{^Script=	 Vithkuqi}', "");
+    Expect(1, 67005, '\P{Script=	 Vithkuqi}', "");
+    Expect(0, 67005, '\P{^Script=	 Vithkuqi}', "");
+    Error('\p{Sc=/a/Vith}');
+    Error('\P{Sc=/a/Vith}');
     Expect(1, 67004, '\p{Sc=:\AVith\z:}', "");;
     Expect(0, 67005, '\p{Sc=:\AVith\z:}', "");;
     Expect(1, 67004, '\p{Sc=vith}', "");
@@ -140561,52 +141889,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67005, '\P{^Sc=vith}', "");
     Expect(1, 67004, '\p{Sc=:\Avith\z:}', "");;
     Expect(0, 67005, '\p{Sc=:\Avith\z:}', "");;
-    Expect(1, 67004, '\p{Sc= Vith}', "");
-    Expect(0, 67004, '\p{^Sc= Vith}', "");
-    Expect(0, 67004, '\P{Sc= Vith}', "");
-    Expect(1, 67004, '\P{^Sc= Vith}', "");
-    Expect(0, 67005, '\p{Sc= Vith}', "");
-    Expect(1, 67005, '\p{^Sc= Vith}', "");
-    Expect(1, 67005, '\P{Sc= Vith}', "");
-    Expect(0, 67005, '\P{^Sc= Vith}', "");
-    Error('\p{Is_Script=-	Vithkuqi/a/}');
-    Error('\P{Is_Script=-	Vithkuqi/a/}');
-    Expect(1, 67004, '\p{Is_Script:vithkuqi}', "");
-    Expect(0, 67004, '\p{^Is_Script:vithkuqi}', "");
-    Expect(0, 67004, '\P{Is_Script:vithkuqi}', "");
-    Expect(1, 67004, '\P{^Is_Script:vithkuqi}', "");
-    Expect(0, 67005, '\p{Is_Script:vithkuqi}', "");
-    Expect(1, 67005, '\p{^Is_Script:vithkuqi}', "");
-    Expect(1, 67005, '\P{Is_Script:vithkuqi}', "");
-    Expect(0, 67005, '\P{^Is_Script:vithkuqi}', "");
-    Expect(1, 67004, '\p{Is_Script=-_Vithkuqi}', "");
-    Expect(0, 67004, '\p{^Is_Script=-_Vithkuqi}', "");
-    Expect(0, 67004, '\P{Is_Script=-_Vithkuqi}', "");
-    Expect(1, 67004, '\P{^Is_Script=-_Vithkuqi}', "");
-    Expect(0, 67005, '\p{Is_Script=-_Vithkuqi}', "");
-    Expect(1, 67005, '\p{^Is_Script=-_Vithkuqi}', "");
-    Expect(1, 67005, '\P{Is_Script=-_Vithkuqi}', "");
-    Expect(0, 67005, '\P{^Is_Script=-_Vithkuqi}', "");
-    Error('\p{Is_Sc=/a/- Vith}');
-    Error('\P{Is_Sc=/a/- Vith}');
-    Expect(1, 67004, '\p{Is_Sc:   vith}', "");
-    Expect(0, 67004, '\p{^Is_Sc:   vith}', "");
-    Expect(0, 67004, '\P{Is_Sc:   vith}', "");
-    Expect(1, 67004, '\P{^Is_Sc:   vith}', "");
-    Expect(0, 67005, '\p{Is_Sc:   vith}', "");
-    Expect(1, 67005, '\p{^Is_Sc:   vith}', "");
-    Expect(1, 67005, '\P{Is_Sc:   vith}', "");
-    Expect(0, 67005, '\P{^Is_Sc:   vith}', "");
-    Expect(1, 67004, '\p{Is_Sc= Vith}', "");
-    Expect(0, 67004, '\p{^Is_Sc= Vith}', "");
-    Expect(0, 67004, '\P{Is_Sc= Vith}', "");
-    Expect(1, 67004, '\P{^Is_Sc= Vith}', "");
-    Expect(0, 67005, '\p{Is_Sc= Vith}', "");
-    Expect(1, 67005, '\p{^Is_Sc= Vith}', "");
-    Expect(1, 67005, '\P{Is_Sc= Vith}', "");
-    Expect(0, 67005, '\P{^Is_Sc= Vith}', "");
-    Error('\p{Script= :=Warang_citi}');
-    Error('\P{Script= :=Warang_citi}');
+    Expect(1, 67004, '\p{Sc=- Vith}', "");
+    Expect(0, 67004, '\p{^Sc=- Vith}', "");
+    Expect(0, 67004, '\P{Sc=- Vith}', "");
+    Expect(1, 67004, '\P{^Sc=- Vith}', "");
+    Expect(0, 67005, '\p{Sc=- Vith}', "");
+    Expect(1, 67005, '\p{^Sc=- Vith}', "");
+    Expect(1, 67005, '\P{Sc=- Vith}', "");
+    Expect(0, 67005, '\P{^Sc=- Vith}', "");
+    Error('\p{Is_Script=:=__Vithkuqi}');
+    Error('\P{Is_Script=:=__Vithkuqi}');
+    Expect(1, 67004, '\p{Is_Script=vithkuqi}', "");
+    Expect(0, 67004, '\p{^Is_Script=vithkuqi}', "");
+    Expect(0, 67004, '\P{Is_Script=vithkuqi}', "");
+    Expect(1, 67004, '\P{^Is_Script=vithkuqi}', "");
+    Expect(0, 67005, '\p{Is_Script=vithkuqi}', "");
+    Expect(1, 67005, '\p{^Is_Script=vithkuqi}', "");
+    Expect(1, 67005, '\P{Is_Script=vithkuqi}', "");
+    Expect(0, 67005, '\P{^Is_Script=vithkuqi}', "");
+    Expect(1, 67004, '\p{Is_Script=-Vithkuqi}', "");
+    Expect(0, 67004, '\p{^Is_Script=-Vithkuqi}', "");
+    Expect(0, 67004, '\P{Is_Script=-Vithkuqi}', "");
+    Expect(1, 67004, '\P{^Is_Script=-Vithkuqi}', "");
+    Expect(0, 67005, '\p{Is_Script=-Vithkuqi}', "");
+    Expect(1, 67005, '\p{^Is_Script=-Vithkuqi}', "");
+    Expect(1, 67005, '\P{Is_Script=-Vithkuqi}', "");
+    Expect(0, 67005, '\P{^Is_Script=-Vithkuqi}', "");
+    Error('\p{Is_Sc=:=_VITH}');
+    Error('\P{Is_Sc=:=_VITH}');
+    Expect(1, 67004, '\p{Is_Sc:vith}', "");
+    Expect(0, 67004, '\p{^Is_Sc:vith}', "");
+    Expect(0, 67004, '\P{Is_Sc:vith}', "");
+    Expect(1, 67004, '\P{^Is_Sc:vith}', "");
+    Expect(0, 67005, '\p{Is_Sc:vith}', "");
+    Expect(1, 67005, '\p{^Is_Sc:vith}', "");
+    Expect(1, 67005, '\P{Is_Sc:vith}', "");
+    Expect(0, 67005, '\P{^Is_Sc:vith}', "");
+    Expect(1, 67004, '\p{Is_Sc= vith}', "");
+    Expect(0, 67004, '\p{^Is_Sc= vith}', "");
+    Expect(0, 67004, '\P{Is_Sc= vith}', "");
+    Expect(1, 67004, '\P{^Is_Sc= vith}', "");
+    Expect(0, 67005, '\p{Is_Sc= vith}', "");
+    Expect(1, 67005, '\p{^Is_Sc= vith}', "");
+    Expect(1, 67005, '\P{Is_Sc= vith}', "");
+    Expect(0, 67005, '\P{^Is_Sc= vith}', "");
+    Error('\p{Script=	WARANG_citi/a/}');
+    Error('\P{Script=	WARANG_citi/a/}');
     Expect(1, 71935, '\p{Script=:\AWarang_Citi\z:}', "");;
     Expect(0, 71936, '\p{Script=:\AWarang_Citi\z:}', "");;
     Expect(1, 71935, '\p{Script=warangciti}', "");
@@ -140619,16 +141947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71936, '\P{^Script=warangciti}', "");
     Expect(1, 71935, '\p{Script=:\Awarangciti\z:}', "");;
     Expect(0, 71936, '\p{Script=:\Awarangciti\z:}', "");;
-    Expect(1, 71935, '\p{Script= 	Warang_CITI}', "");
-    Expect(0, 71935, '\p{^Script= 	Warang_CITI}', "");
-    Expect(0, 71935, '\P{Script= 	Warang_CITI}', "");
-    Expect(1, 71935, '\P{^Script= 	Warang_CITI}', "");
-    Expect(0, 71936, '\p{Script= 	Warang_CITI}', "");
-    Expect(1, 71936, '\p{^Script= 	Warang_CITI}', "");
-    Expect(1, 71936, '\P{Script= 	Warang_CITI}', "");
-    Expect(0, 71936, '\P{^Script= 	Warang_CITI}', "");
-    Error('\p{Sc=:=-WARA}');
-    Error('\P{Sc=:=-WARA}');
+    Expect(1, 71935, '\p{Script=-WARANG_citi}', "");
+    Expect(0, 71935, '\p{^Script=-WARANG_citi}', "");
+    Expect(0, 71935, '\P{Script=-WARANG_citi}', "");
+    Expect(1, 71935, '\P{^Script=-WARANG_citi}', "");
+    Expect(0, 71936, '\p{Script=-WARANG_citi}', "");
+    Expect(1, 71936, '\p{^Script=-WARANG_citi}', "");
+    Expect(1, 71936, '\P{Script=-WARANG_citi}', "");
+    Expect(0, 71936, '\P{^Script=-WARANG_citi}', "");
+    Error('\p{Sc=-:=wara}');
+    Error('\P{Sc=-:=wara}');
     Expect(1, 71935, '\p{Sc=:\AWara\z:}', "");;
     Expect(0, 71936, '\p{Sc=:\AWara\z:}', "");;
     Expect(1, 71935, '\p{Sc=wara}', "");
@@ -140641,16 +141969,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71936, '\P{^Sc=wara}', "");
     Expect(1, 71935, '\p{Sc=:\Awara\z:}', "");;
     Expect(0, 71936, '\p{Sc=:\Awara\z:}', "");;
-    Expect(1, 71935, '\p{Sc:	 _Wara}', "");
-    Expect(0, 71935, '\p{^Sc:	 _Wara}', "");
-    Expect(0, 71935, '\P{Sc:	 _Wara}', "");
-    Expect(1, 71935, '\P{^Sc:	 _Wara}', "");
-    Expect(0, 71936, '\p{Sc:	 _Wara}', "");
-    Expect(1, 71936, '\p{^Sc:	 _Wara}', "");
-    Expect(1, 71936, '\P{Sc:	 _Wara}', "");
-    Expect(0, 71936, '\P{^Sc:	 _Wara}', "");
-    Error('\p{Is_Script=/a/-warang_Citi}');
-    Error('\P{Is_Script=/a/-warang_Citi}');
+    Expect(1, 71935, '\p{Sc=_ Wara}', "");
+    Expect(0, 71935, '\p{^Sc=_ Wara}', "");
+    Expect(0, 71935, '\P{Sc=_ Wara}', "");
+    Expect(1, 71935, '\P{^Sc=_ Wara}', "");
+    Expect(0, 71936, '\p{Sc=_ Wara}', "");
+    Expect(1, 71936, '\p{^Sc=_ Wara}', "");
+    Expect(1, 71936, '\P{Sc=_ Wara}', "");
+    Expect(0, 71936, '\P{^Sc=_ Wara}', "");
+    Error('\p{Is_Script=_WARANG_citi/a/}');
+    Error('\P{Is_Script=_WARANG_citi/a/}');
     Expect(1, 71935, '\p{Is_Script=warangciti}', "");
     Expect(0, 71935, '\p{^Is_Script=warangciti}', "");
     Expect(0, 71935, '\P{Is_Script=warangciti}', "");
@@ -140659,16 +141987,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^Is_Script=warangciti}', "");
     Expect(1, 71936, '\P{Is_Script=warangciti}', "");
     Expect(0, 71936, '\P{^Is_Script=warangciti}', "");
-    Expect(1, 71935, '\p{Is_Script:    warang_Citi}', "");
-    Expect(0, 71935, '\p{^Is_Script:    warang_Citi}', "");
-    Expect(0, 71935, '\P{Is_Script:    warang_Citi}', "");
-    Expect(1, 71935, '\P{^Is_Script:    warang_Citi}', "");
-    Expect(0, 71936, '\p{Is_Script:    warang_Citi}', "");
-    Expect(1, 71936, '\p{^Is_Script:    warang_Citi}', "");
-    Expect(1, 71936, '\P{Is_Script:    warang_Citi}', "");
-    Expect(0, 71936, '\P{^Is_Script:    warang_Citi}', "");
-    Error('\p{Is_Sc=_	WARA/a/}');
-    Error('\P{Is_Sc=_	WARA/a/}');
+    Expect(1, 71935, '\p{Is_Script= 	Warang_citi}', "");
+    Expect(0, 71935, '\p{^Is_Script= 	Warang_citi}', "");
+    Expect(0, 71935, '\P{Is_Script= 	Warang_citi}', "");
+    Expect(1, 71935, '\P{^Is_Script= 	Warang_citi}', "");
+    Expect(0, 71936, '\p{Is_Script= 	Warang_citi}', "");
+    Expect(1, 71936, '\p{^Is_Script= 	Warang_citi}', "");
+    Expect(1, 71936, '\P{Is_Script= 	Warang_citi}', "");
+    Expect(0, 71936, '\P{^Is_Script= 	Warang_citi}', "");
+    Error('\p{Is_Sc= /a/Wara}');
+    Error('\P{Is_Sc= /a/Wara}');
     Expect(1, 71935, '\p{Is_Sc=wara}', "");
     Expect(0, 71935, '\p{^Is_Sc=wara}', "");
     Expect(0, 71935, '\P{Is_Sc=wara}', "");
@@ -140677,16 +142005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^Is_Sc=wara}', "");
     Expect(1, 71936, '\P{Is_Sc=wara}', "");
     Expect(0, 71936, '\P{^Is_Sc=wara}', "");
-    Expect(1, 71935, '\p{Is_Sc: 	wara}', "");
-    Expect(0, 71935, '\p{^Is_Sc: 	wara}', "");
-    Expect(0, 71935, '\P{Is_Sc: 	wara}', "");
-    Expect(1, 71935, '\P{^Is_Sc: 	wara}', "");
-    Expect(0, 71936, '\p{Is_Sc: 	wara}', "");
-    Expect(1, 71936, '\p{^Is_Sc: 	wara}', "");
-    Expect(1, 71936, '\P{Is_Sc: 	wara}', "");
-    Expect(0, 71936, '\P{^Is_Sc: 	wara}', "");
-    Error('\p{Script=/a/_wancho}');
-    Error('\P{Script=/a/_wancho}');
+    Expect(1, 71935, '\p{Is_Sc=-_Wara}', "");
+    Expect(0, 71935, '\p{^Is_Sc=-_Wara}', "");
+    Expect(0, 71935, '\P{Is_Sc=-_Wara}', "");
+    Expect(1, 71935, '\P{^Is_Sc=-_Wara}', "");
+    Expect(0, 71936, '\p{Is_Sc=-_Wara}', "");
+    Expect(1, 71936, '\p{^Is_Sc=-_Wara}', "");
+    Expect(1, 71936, '\P{Is_Sc=-_Wara}', "");
+    Expect(0, 71936, '\P{^Is_Sc=-_Wara}', "");
+    Error('\p{Script=/a/ 	wancho}');
+    Error('\P{Script=/a/ 	wancho}');
     Expect(1, 123647, '\p{Script=:\AWancho\z:}', "");;
     Expect(0, 123648, '\p{Script=:\AWancho\z:}', "");;
     Expect(1, 123647, '\p{Script=wancho}', "");
@@ -140699,56 +142027,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 123648, '\P{^Script=wancho}', "");
     Expect(1, 123647, '\p{Script=:\Awancho\z:}', "");;
     Expect(0, 123648, '\p{Script=:\Awancho\z:}', "");;
-    Expect(1, 123647, '\p{Script=_Wancho}', "");
-    Expect(0, 123647, '\p{^Script=_Wancho}', "");
-    Expect(0, 123647, '\P{Script=_Wancho}', "");
-    Expect(1, 123647, '\P{^Script=_Wancho}', "");
-    Expect(0, 123648, '\p{Script=_Wancho}', "");
-    Expect(1, 123648, '\p{^Script=_Wancho}', "");
-    Expect(1, 123648, '\P{Script=_Wancho}', "");
-    Expect(0, 123648, '\P{^Script=_Wancho}', "");
-    Error('\p{Sc=_	Wcho/a/}');
-    Error('\P{Sc=_	Wcho/a/}');
+    Expect(1, 123647, '\p{Script=  Wancho}', "");
+    Expect(0, 123647, '\p{^Script=  Wancho}', "");
+    Expect(0, 123647, '\P{Script=  Wancho}', "");
+    Expect(1, 123647, '\P{^Script=  Wancho}', "");
+    Expect(0, 123648, '\p{Script=  Wancho}', "");
+    Expect(1, 123648, '\p{^Script=  Wancho}', "");
+    Expect(1, 123648, '\P{Script=  Wancho}', "");
+    Expect(0, 123648, '\P{^Script=  Wancho}', "");
+    Error('\p{Sc=	Wcho:=}');
+    Error('\P{Sc=	Wcho:=}');
     Expect(1, 123647, '\p{Sc=:\AWcho\z:}', "");;
     Expect(0, 123648, '\p{Sc=:\AWcho\z:}', "");;
-    Expect(1, 123647, '\p{Sc=wcho}', "");
-    Expect(0, 123647, '\p{^Sc=wcho}', "");
-    Expect(0, 123647, '\P{Sc=wcho}', "");
-    Expect(1, 123647, '\P{^Sc=wcho}', "");
-    Expect(0, 123648, '\p{Sc=wcho}', "");
-    Expect(1, 123648, '\p{^Sc=wcho}', "");
-    Expect(1, 123648, '\P{Sc=wcho}', "");
-    Expect(0, 123648, '\P{^Sc=wcho}', "");
+    Expect(1, 123647, '\p{Sc: wcho}', "");
+    Expect(0, 123647, '\p{^Sc: wcho}', "");
+    Expect(0, 123647, '\P{Sc: wcho}', "");
+    Expect(1, 123647, '\P{^Sc: wcho}', "");
+    Expect(0, 123648, '\p{Sc: wcho}', "");
+    Expect(1, 123648, '\p{^Sc: wcho}', "");
+    Expect(1, 123648, '\P{Sc: wcho}', "");
+    Expect(0, 123648, '\P{^Sc: wcho}', "");
     Expect(1, 123647, '\p{Sc=:\Awcho\z:}', "");;
     Expect(0, 123648, '\p{Sc=:\Awcho\z:}', "");;
-    Expect(1, 123647, '\p{Sc=_	Wcho}', "");
-    Expect(0, 123647, '\p{^Sc=_	Wcho}', "");
-    Expect(0, 123647, '\P{Sc=_	Wcho}', "");
-    Expect(1, 123647, '\P{^Sc=_	Wcho}', "");
-    Expect(0, 123648, '\p{Sc=_	Wcho}', "");
-    Expect(1, 123648, '\p{^Sc=_	Wcho}', "");
-    Expect(1, 123648, '\P{Sc=_	Wcho}', "");
-    Expect(0, 123648, '\P{^Sc=_	Wcho}', "");
-    Error('\p{Is_Script= -wancho/a/}');
-    Error('\P{Is_Script= -wancho/a/}');
-    Expect(1, 123647, '\p{Is_Script=wancho}', "");
-    Expect(0, 123647, '\p{^Is_Script=wancho}', "");
-    Expect(0, 123647, '\P{Is_Script=wancho}', "");
-    Expect(1, 123647, '\P{^Is_Script=wancho}', "");
-    Expect(0, 123648, '\p{Is_Script=wancho}', "");
-    Expect(1, 123648, '\p{^Is_Script=wancho}', "");
-    Expect(1, 123648, '\P{Is_Script=wancho}', "");
-    Expect(0, 123648, '\P{^Is_Script=wancho}', "");
-    Expect(1, 123647, '\p{Is_Script=	-wancho}', "");
-    Expect(0, 123647, '\p{^Is_Script=	-wancho}', "");
-    Expect(0, 123647, '\P{Is_Script=	-wancho}', "");
-    Expect(1, 123647, '\P{^Is_Script=	-wancho}', "");
-    Expect(0, 123648, '\p{Is_Script=	-wancho}', "");
-    Expect(1, 123648, '\p{^Is_Script=	-wancho}', "");
-    Expect(1, 123648, '\P{Is_Script=	-wancho}', "");
-    Expect(0, 123648, '\P{^Is_Script=	-wancho}', "");
-    Error('\p{Is_Sc=:=wcho}');
-    Error('\P{Is_Sc=:=wcho}');
+    Expect(1, 123647, '\p{Sc=Wcho}', "");
+    Expect(0, 123647, '\p{^Sc=Wcho}', "");
+    Expect(0, 123647, '\P{Sc=Wcho}', "");
+    Expect(1, 123647, '\P{^Sc=Wcho}', "");
+    Expect(0, 123648, '\p{Sc=Wcho}', "");
+    Expect(1, 123648, '\p{^Sc=Wcho}', "");
+    Expect(1, 123648, '\P{Sc=Wcho}', "");
+    Expect(0, 123648, '\P{^Sc=Wcho}', "");
+    Error('\p{Is_Script=	/a/Wancho}');
+    Error('\P{Is_Script=	/a/Wancho}');
+    Expect(1, 123647, '\p{Is_Script:wancho}', "");
+    Expect(0, 123647, '\p{^Is_Script:wancho}', "");
+    Expect(0, 123647, '\P{Is_Script:wancho}', "");
+    Expect(1, 123647, '\P{^Is_Script:wancho}', "");
+    Expect(0, 123648, '\p{Is_Script:wancho}', "");
+    Expect(1, 123648, '\p{^Is_Script:wancho}', "");
+    Expect(1, 123648, '\P{Is_Script:wancho}', "");
+    Expect(0, 123648, '\P{^Is_Script:wancho}', "");
+    Expect(1, 123647, '\p{Is_Script=	-WANCHO}', "");
+    Expect(0, 123647, '\p{^Is_Script=	-WANCHO}', "");
+    Expect(0, 123647, '\P{Is_Script=	-WANCHO}', "");
+    Expect(1, 123647, '\P{^Is_Script=	-WANCHO}', "");
+    Expect(0, 123648, '\p{Is_Script=	-WANCHO}', "");
+    Expect(1, 123648, '\p{^Is_Script=	-WANCHO}', "");
+    Expect(1, 123648, '\P{Is_Script=	-WANCHO}', "");
+    Expect(0, 123648, '\P{^Is_Script=	-WANCHO}', "");
+    Error('\p{Is_Sc= /a/wcho}');
+    Error('\P{Is_Sc= /a/wcho}');
     Expect(1, 123647, '\p{Is_Sc=wcho}', "");
     Expect(0, 123647, '\p{^Is_Sc=wcho}', "");
     Expect(0, 123647, '\P{Is_Sc=wcho}', "");
@@ -140757,16 +142085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123648, '\p{^Is_Sc=wcho}', "");
     Expect(1, 123648, '\P{Is_Sc=wcho}', "");
     Expect(0, 123648, '\P{^Is_Sc=wcho}', "");
-    Expect(1, 123647, '\p{Is_Sc= 	wcho}', "");
-    Expect(0, 123647, '\p{^Is_Sc= 	wcho}', "");
-    Expect(0, 123647, '\P{Is_Sc= 	wcho}', "");
-    Expect(1, 123647, '\P{^Is_Sc= 	wcho}', "");
-    Expect(0, 123648, '\p{Is_Sc= 	wcho}', "");
-    Expect(1, 123648, '\p{^Is_Sc= 	wcho}', "");
-    Expect(1, 123648, '\P{Is_Sc= 	wcho}', "");
-    Expect(0, 123648, '\P{^Is_Sc= 	wcho}', "");
-    Error('\p{Script=/a/-OLD_Persian}');
-    Error('\P{Script=/a/-OLD_Persian}');
+    Expect(1, 123647, '\p{Is_Sc=-WCHO}', "");
+    Expect(0, 123647, '\p{^Is_Sc=-WCHO}', "");
+    Expect(0, 123647, '\P{Is_Sc=-WCHO}', "");
+    Expect(1, 123647, '\P{^Is_Sc=-WCHO}', "");
+    Expect(0, 123648, '\p{Is_Sc=-WCHO}', "");
+    Expect(1, 123648, '\p{^Is_Sc=-WCHO}', "");
+    Expect(1, 123648, '\P{Is_Sc=-WCHO}', "");
+    Expect(0, 123648, '\P{^Is_Sc=-WCHO}', "");
+    Error('\p{Script=_OLD_PERSIAN:=}');
+    Error('\P{Script=_OLD_PERSIAN:=}');
     Expect(1, 66517, '\p{Script=:\AOld_Persian\z:}', "");;
     Expect(0, 66518, '\p{Script=:\AOld_Persian\z:}', "");;
     Expect(1, 66517, '\p{Script=oldpersian}', "");
@@ -140779,16 +142107,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66518, '\P{^Script=oldpersian}', "");
     Expect(1, 66517, '\p{Script=:\Aoldpersian\z:}', "");;
     Expect(0, 66518, '\p{Script=:\Aoldpersian\z:}', "");;
-    Expect(1, 66517, '\p{Script=- OLD_persian}', "");
-    Expect(0, 66517, '\p{^Script=- OLD_persian}', "");
-    Expect(0, 66517, '\P{Script=- OLD_persian}', "");
-    Expect(1, 66517, '\P{^Script=- OLD_persian}', "");
-    Expect(0, 66518, '\p{Script=- OLD_persian}', "");
-    Expect(1, 66518, '\p{^Script=- OLD_persian}', "");
-    Expect(1, 66518, '\P{Script=- OLD_persian}', "");
-    Expect(0, 66518, '\P{^Script=- OLD_persian}', "");
-    Error('\p{Sc:	:=  xpeo}');
-    Error('\P{Sc:	:=  xpeo}');
+    Expect(1, 66517, '\p{Script=_Old_Persian}', "");
+    Expect(0, 66517, '\p{^Script=_Old_Persian}', "");
+    Expect(0, 66517, '\P{Script=_Old_Persian}', "");
+    Expect(1, 66517, '\P{^Script=_Old_Persian}', "");
+    Expect(0, 66518, '\p{Script=_Old_Persian}', "");
+    Expect(1, 66518, '\p{^Script=_Old_Persian}', "");
+    Expect(1, 66518, '\P{Script=_Old_Persian}', "");
+    Expect(0, 66518, '\P{^Script=_Old_Persian}', "");
+    Error('\p{Sc=_Xpeo/a/}');
+    Error('\P{Sc=_Xpeo/a/}');
     Expect(1, 66517, '\p{Sc=:\AXpeo\z:}', "");;
     Expect(0, 66518, '\p{Sc=:\AXpeo\z:}', "");;
     Expect(1, 66517, '\p{Sc=xpeo}', "");
@@ -140801,34 +142129,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66518, '\P{^Sc=xpeo}', "");
     Expect(1, 66517, '\p{Sc=:\Axpeo\z:}', "");;
     Expect(0, 66518, '\p{Sc=:\Axpeo\z:}', "");;
-    Expect(1, 66517, '\p{Sc:   -	Xpeo}', "");
-    Expect(0, 66517, '\p{^Sc:   -	Xpeo}', "");
-    Expect(0, 66517, '\P{Sc:   -	Xpeo}', "");
-    Expect(1, 66517, '\P{^Sc:   -	Xpeo}', "");
-    Expect(0, 66518, '\p{Sc:   -	Xpeo}', "");
-    Expect(1, 66518, '\p{^Sc:   -	Xpeo}', "");
-    Expect(1, 66518, '\P{Sc:   -	Xpeo}', "");
-    Expect(0, 66518, '\P{^Sc:   -	Xpeo}', "");
-    Error('\p{Is_Script=/a/ Old_Persian}');
-    Error('\P{Is_Script=/a/ Old_Persian}');
-    Expect(1, 66517, '\p{Is_Script=oldpersian}', "");
-    Expect(0, 66517, '\p{^Is_Script=oldpersian}', "");
-    Expect(0, 66517, '\P{Is_Script=oldpersian}', "");
-    Expect(1, 66517, '\P{^Is_Script=oldpersian}', "");
-    Expect(0, 66518, '\p{Is_Script=oldpersian}', "");
-    Expect(1, 66518, '\p{^Is_Script=oldpersian}', "");
-    Expect(1, 66518, '\P{Is_Script=oldpersian}', "");
-    Expect(0, 66518, '\P{^Is_Script=oldpersian}', "");
-    Expect(1, 66517, '\p{Is_Script:   __old_PERSIAN}', "");
-    Expect(0, 66517, '\p{^Is_Script:   __old_PERSIAN}', "");
-    Expect(0, 66517, '\P{Is_Script:   __old_PERSIAN}', "");
-    Expect(1, 66517, '\P{^Is_Script:   __old_PERSIAN}', "");
-    Expect(0, 66518, '\p{Is_Script:   __old_PERSIAN}', "");
-    Expect(1, 66518, '\p{^Is_Script:   __old_PERSIAN}', "");
-    Expect(1, 66518, '\P{Is_Script:   __old_PERSIAN}', "");
-    Expect(0, 66518, '\P{^Is_Script:   __old_PERSIAN}', "");
-    Error('\p{Is_Sc=	:=Xpeo}');
-    Error('\P{Is_Sc=	:=Xpeo}');
+    Expect(1, 66517, '\p{Sc=-	xpeo}', "");
+    Expect(0, 66517, '\p{^Sc=-	xpeo}', "");
+    Expect(0, 66517, '\P{Sc=-	xpeo}', "");
+    Expect(1, 66517, '\P{^Sc=-	xpeo}', "");
+    Expect(0, 66518, '\p{Sc=-	xpeo}', "");
+    Expect(1, 66518, '\p{^Sc=-	xpeo}', "");
+    Expect(1, 66518, '\P{Sc=-	xpeo}', "");
+    Expect(0, 66518, '\P{^Sc=-	xpeo}', "");
+    Error('\p{Is_Script= OLD_PERSIAN/a/}');
+    Error('\P{Is_Script= OLD_PERSIAN/a/}');
+    Expect(1, 66517, '\p{Is_Script:	oldpersian}', "");
+    Expect(0, 66517, '\p{^Is_Script:	oldpersian}', "");
+    Expect(0, 66517, '\P{Is_Script:	oldpersian}', "");
+    Expect(1, 66517, '\P{^Is_Script:	oldpersian}', "");
+    Expect(0, 66518, '\p{Is_Script:	oldpersian}', "");
+    Expect(1, 66518, '\p{^Is_Script:	oldpersian}', "");
+    Expect(1, 66518, '\P{Is_Script:	oldpersian}', "");
+    Expect(0, 66518, '\P{^Is_Script:	oldpersian}', "");
+    Expect(1, 66517, '\p{Is_Script= _Old_Persian}', "");
+    Expect(0, 66517, '\p{^Is_Script= _Old_Persian}', "");
+    Expect(0, 66517, '\P{Is_Script= _Old_Persian}', "");
+    Expect(1, 66517, '\P{^Is_Script= _Old_Persian}', "");
+    Expect(0, 66518, '\p{Is_Script= _Old_Persian}', "");
+    Expect(1, 66518, '\p{^Is_Script= _Old_Persian}', "");
+    Expect(1, 66518, '\P{Is_Script= _Old_Persian}', "");
+    Expect(0, 66518, '\P{^Is_Script= _Old_Persian}', "");
+    Error('\p{Is_Sc= /a/XPEO}');
+    Error('\P{Is_Sc= /a/XPEO}');
     Expect(1, 66517, '\p{Is_Sc=xpeo}', "");
     Expect(0, 66517, '\p{^Is_Sc=xpeo}', "");
     Expect(0, 66517, '\P{Is_Sc=xpeo}', "");
@@ -140837,16 +142165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66518, '\p{^Is_Sc=xpeo}', "");
     Expect(1, 66518, '\P{Is_Sc=xpeo}', "");
     Expect(0, 66518, '\P{^Is_Sc=xpeo}', "");
-    Expect(1, 66517, '\p{Is_Sc=_Xpeo}', "");
-    Expect(0, 66517, '\p{^Is_Sc=_Xpeo}', "");
-    Expect(0, 66517, '\P{Is_Sc=_Xpeo}', "");
-    Expect(1, 66517, '\P{^Is_Sc=_Xpeo}', "");
-    Expect(0, 66518, '\p{Is_Sc=_Xpeo}', "");
-    Expect(1, 66518, '\p{^Is_Sc=_Xpeo}', "");
-    Expect(1, 66518, '\P{Is_Sc=_Xpeo}', "");
-    Expect(0, 66518, '\P{^Is_Sc=_Xpeo}', "");
-    Error('\p{Script:	_/a/CUNEIFORM}');
-    Error('\P{Script:	_/a/CUNEIFORM}');
+    Expect(1, 66517, '\p{Is_Sc=  Xpeo}', "");
+    Expect(0, 66517, '\p{^Is_Sc=  Xpeo}', "");
+    Expect(0, 66517, '\P{Is_Sc=  Xpeo}', "");
+    Expect(1, 66517, '\P{^Is_Sc=  Xpeo}', "");
+    Expect(0, 66518, '\p{Is_Sc=  Xpeo}', "");
+    Expect(1, 66518, '\p{^Is_Sc=  Xpeo}', "");
+    Expect(1, 66518, '\P{Is_Sc=  Xpeo}', "");
+    Expect(0, 66518, '\P{^Is_Sc=  Xpeo}', "");
+    Error('\p{Script=/a/- Cuneiform}');
+    Error('\P{Script=/a/- Cuneiform}');
     Expect(1, 75075, '\p{Script=:\ACuneiform\z:}', "");;
     Expect(0, 75076, '\p{Script=:\ACuneiform\z:}', "");;
     Expect(1, 75075, '\p{Script=cuneiform}', "");
@@ -140859,16 +142187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 75076, '\P{^Script=cuneiform}', "");
     Expect(1, 75075, '\p{Script=:\Acuneiform\z:}', "");;
     Expect(0, 75076, '\p{Script=:\Acuneiform\z:}', "");;
-    Expect(1, 75075, '\p{Script:	--cuneiform}', "");
-    Expect(0, 75075, '\p{^Script:	--cuneiform}', "");
-    Expect(0, 75075, '\P{Script:	--cuneiform}', "");
-    Expect(1, 75075, '\P{^Script:	--cuneiform}', "");
-    Expect(0, 75076, '\p{Script:	--cuneiform}', "");
-    Expect(1, 75076, '\p{^Script:	--cuneiform}', "");
-    Expect(1, 75076, '\P{Script:	--cuneiform}', "");
-    Expect(0, 75076, '\P{^Script:	--cuneiform}', "");
-    Error('\p{Sc=/a/	Xsux}');
-    Error('\P{Sc=/a/	Xsux}');
+    Expect(1, 75075, '\p{Script:-	Cuneiform}', "");
+    Expect(0, 75075, '\p{^Script:-	Cuneiform}', "");
+    Expect(0, 75075, '\P{Script:-	Cuneiform}', "");
+    Expect(1, 75075, '\P{^Script:-	Cuneiform}', "");
+    Expect(0, 75076, '\p{Script:-	Cuneiform}', "");
+    Expect(1, 75076, '\p{^Script:-	Cuneiform}', "");
+    Expect(1, 75076, '\P{Script:-	Cuneiform}', "");
+    Expect(0, 75076, '\P{^Script:-	Cuneiform}', "");
+    Error('\p{Sc=/a/--xsux}');
+    Error('\P{Sc=/a/--xsux}');
     Expect(1, 75075, '\p{Sc=:\AXsux\z:}', "");;
     Expect(0, 75076, '\p{Sc=:\AXsux\z:}', "");;
     Expect(1, 75075, '\p{Sc=xsux}', "");
@@ -140881,16 +142209,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 75076, '\P{^Sc=xsux}', "");
     Expect(1, 75075, '\p{Sc=:\Axsux\z:}', "");;
     Expect(0, 75076, '\p{Sc=:\Axsux\z:}', "");;
-    Expect(1, 75075, '\p{Sc=- xsux}', "");
-    Expect(0, 75075, '\p{^Sc=- xsux}', "");
-    Expect(0, 75075, '\P{Sc=- xsux}', "");
-    Expect(1, 75075, '\P{^Sc=- xsux}', "");
-    Expect(0, 75076, '\p{Sc=- xsux}', "");
-    Expect(1, 75076, '\p{^Sc=- xsux}', "");
-    Expect(1, 75076, '\P{Sc=- xsux}', "");
-    Expect(0, 75076, '\P{^Sc=- xsux}', "");
-    Error('\p{Is_Script=	_Cuneiform:=}');
-    Error('\P{Is_Script=	_Cuneiform:=}');
+    Expect(1, 75075, '\p{Sc=-_xsux}', "");
+    Expect(0, 75075, '\p{^Sc=-_xsux}', "");
+    Expect(0, 75075, '\P{Sc=-_xsux}', "");
+    Expect(1, 75075, '\P{^Sc=-_xsux}', "");
+    Expect(0, 75076, '\p{Sc=-_xsux}', "");
+    Expect(1, 75076, '\p{^Sc=-_xsux}', "");
+    Expect(1, 75076, '\P{Sc=-_xsux}', "");
+    Expect(0, 75076, '\P{^Sc=-_xsux}', "");
+    Error('\p{Is_Script=_	Cuneiform:=}');
+    Error('\P{Is_Script=_	Cuneiform:=}');
     Expect(1, 75075, '\p{Is_Script=cuneiform}', "");
     Expect(0, 75075, '\p{^Is_Script=cuneiform}', "");
     Expect(0, 75075, '\P{Is_Script=cuneiform}', "");
@@ -140899,16 +142227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 75076, '\p{^Is_Script=cuneiform}', "");
     Expect(1, 75076, '\P{Is_Script=cuneiform}', "");
     Expect(0, 75076, '\P{^Is_Script=cuneiform}', "");
-    Expect(1, 75075, '\p{Is_Script=	 Cuneiform}', "");
-    Expect(0, 75075, '\p{^Is_Script=	 Cuneiform}', "");
-    Expect(0, 75075, '\P{Is_Script=	 Cuneiform}', "");
-    Expect(1, 75075, '\P{^Is_Script=	 Cuneiform}', "");
-    Expect(0, 75076, '\p{Is_Script=	 Cuneiform}', "");
-    Expect(1, 75076, '\p{^Is_Script=	 Cuneiform}', "");
-    Expect(1, 75076, '\P{Is_Script=	 Cuneiform}', "");
-    Expect(0, 75076, '\P{^Is_Script=	 Cuneiform}', "");
-    Error('\p{Is_Sc=:= 	Xsux}');
-    Error('\P{Is_Sc=:= 	Xsux}');
+    Expect(1, 75075, '\p{Is_Script=-_Cuneiform}', "");
+    Expect(0, 75075, '\p{^Is_Script=-_Cuneiform}', "");
+    Expect(0, 75075, '\P{Is_Script=-_Cuneiform}', "");
+    Expect(1, 75075, '\P{^Is_Script=-_Cuneiform}', "");
+    Expect(0, 75076, '\p{Is_Script=-_Cuneiform}', "");
+    Expect(1, 75076, '\p{^Is_Script=-_Cuneiform}', "");
+    Expect(1, 75076, '\P{Is_Script=-_Cuneiform}', "");
+    Expect(0, 75076, '\P{^Is_Script=-_Cuneiform}', "");
+    Error('\p{Is_Sc:	:= -XSUX}');
+    Error('\P{Is_Sc:	:= -XSUX}');
     Expect(1, 75075, '\p{Is_Sc=xsux}', "");
     Expect(0, 75075, '\p{^Is_Sc=xsux}', "");
     Expect(0, 75075, '\P{Is_Sc=xsux}', "");
@@ -140917,16 +142245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 75076, '\p{^Is_Sc=xsux}', "");
     Expect(1, 75076, '\P{Is_Sc=xsux}', "");
     Expect(0, 75076, '\P{^Is_Sc=xsux}', "");
-    Expect(1, 75075, '\p{Is_Sc=__Xsux}', "");
-    Expect(0, 75075, '\p{^Is_Sc=__Xsux}', "");
-    Expect(0, 75075, '\P{Is_Sc=__Xsux}', "");
-    Expect(1, 75075, '\P{^Is_Sc=__Xsux}', "");
-    Expect(0, 75076, '\p{Is_Sc=__Xsux}', "");
-    Expect(1, 75076, '\p{^Is_Sc=__Xsux}', "");
-    Expect(1, 75076, '\P{Is_Sc=__Xsux}', "");
-    Expect(0, 75076, '\P{^Is_Sc=__Xsux}', "");
-    Error('\p{Script= /a/YEZIDI}');
-    Error('\P{Script= /a/YEZIDI}');
+    Expect(1, 75075, '\p{Is_Sc= -XSUX}', "");
+    Expect(0, 75075, '\p{^Is_Sc= -XSUX}', "");
+    Expect(0, 75075, '\P{Is_Sc= -XSUX}', "");
+    Expect(1, 75075, '\P{^Is_Sc= -XSUX}', "");
+    Expect(0, 75076, '\p{Is_Sc= -XSUX}', "");
+    Expect(1, 75076, '\p{^Is_Sc= -XSUX}', "");
+    Expect(1, 75076, '\P{Is_Sc= -XSUX}', "");
+    Expect(0, 75076, '\P{^Is_Sc= -XSUX}', "");
+    Error('\p{Script=:=Yezidi}');
+    Error('\P{Script=:=Yezidi}');
     Expect(1, 69297, '\p{Script=:\AYezidi\z:}', "");;
     Expect(0, 69298, '\p{Script=:\AYezidi\z:}', "");;
     Expect(1, 69297, '\p{Script=yezidi}', "");
@@ -140939,16 +142267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69298, '\P{^Script=yezidi}', "");
     Expect(1, 69297, '\p{Script=:\Ayezidi\z:}', "");;
     Expect(0, 69298, '\p{Script=:\Ayezidi\z:}', "");;
-    Expect(1, 69297, '\p{Script=	 yezidi}', "");
-    Expect(0, 69297, '\p{^Script=	 yezidi}', "");
-    Expect(0, 69297, '\P{Script=	 yezidi}', "");
-    Expect(1, 69297, '\P{^Script=	 yezidi}', "");
-    Expect(0, 69298, '\p{Script=	 yezidi}', "");
-    Expect(1, 69298, '\p{^Script=	 yezidi}', "");
-    Expect(1, 69298, '\P{Script=	 yezidi}', "");
-    Expect(0, 69298, '\P{^Script=	 yezidi}', "");
-    Error('\p{Sc=_:=yezi}');
-    Error('\P{Sc=_:=yezi}');
+    Expect(1, 69297, '\p{Script:   -yezidi}', "");
+    Expect(0, 69297, '\p{^Script:   -yezidi}', "");
+    Expect(0, 69297, '\P{Script:   -yezidi}', "");
+    Expect(1, 69297, '\P{^Script:   -yezidi}', "");
+    Expect(0, 69298, '\p{Script:   -yezidi}', "");
+    Expect(1, 69298, '\p{^Script:   -yezidi}', "");
+    Expect(1, 69298, '\P{Script:   -yezidi}', "");
+    Expect(0, 69298, '\P{^Script:   -yezidi}', "");
+    Error('\p{Sc=-yezi:=}');
+    Error('\P{Sc=-yezi:=}');
     Expect(1, 69297, '\p{Sc=:\AYezi\z:}', "");;
     Expect(0, 69298, '\p{Sc=:\AYezi\z:}', "");;
     Expect(1, 69297, '\p{Sc=yezi}', "");
@@ -140961,16 +142289,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69298, '\P{^Sc=yezi}', "");
     Expect(1, 69297, '\p{Sc=:\Ayezi\z:}', "");;
     Expect(0, 69298, '\p{Sc=:\Ayezi\z:}', "");;
-    Expect(1, 69297, '\p{Sc=		Yezi}', "");
-    Expect(0, 69297, '\p{^Sc=		Yezi}', "");
-    Expect(0, 69297, '\P{Sc=		Yezi}', "");
-    Expect(1, 69297, '\P{^Sc=		Yezi}', "");
-    Expect(0, 69298, '\p{Sc=		Yezi}', "");
-    Expect(1, 69298, '\p{^Sc=		Yezi}', "");
-    Expect(1, 69298, '\P{Sc=		Yezi}', "");
-    Expect(0, 69298, '\P{^Sc=		Yezi}', "");
-    Error('\p{Is_Script=:=__Yezidi}');
-    Error('\P{Is_Script=:=__Yezidi}');
+    Expect(1, 69297, '\p{Sc=	 YEZI}', "");
+    Expect(0, 69297, '\p{^Sc=	 YEZI}', "");
+    Expect(0, 69297, '\P{Sc=	 YEZI}', "");
+    Expect(1, 69297, '\P{^Sc=	 YEZI}', "");
+    Expect(0, 69298, '\p{Sc=	 YEZI}', "");
+    Expect(1, 69298, '\p{^Sc=	 YEZI}', "");
+    Expect(1, 69298, '\P{Sc=	 YEZI}', "");
+    Expect(0, 69298, '\P{^Sc=	 YEZI}', "");
+    Error('\p{Is_Script=	:=Yezidi}');
+    Error('\P{Is_Script=	:=Yezidi}');
     Expect(1, 69297, '\p{Is_Script=yezidi}', "");
     Expect(0, 69297, '\p{^Is_Script=yezidi}', "");
     Expect(0, 69297, '\P{Is_Script=yezidi}', "");
@@ -140979,16 +142307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69298, '\p{^Is_Script=yezidi}', "");
     Expect(1, 69298, '\P{Is_Script=yezidi}', "");
     Expect(0, 69298, '\P{^Is_Script=yezidi}', "");
-    Expect(1, 69297, '\p{Is_Script=		Yezidi}', "");
-    Expect(0, 69297, '\p{^Is_Script=		Yezidi}', "");
-    Expect(0, 69297, '\P{Is_Script=		Yezidi}', "");
-    Expect(1, 69297, '\P{^Is_Script=		Yezidi}', "");
-    Expect(0, 69298, '\p{Is_Script=		Yezidi}', "");
-    Expect(1, 69298, '\p{^Is_Script=		Yezidi}', "");
-    Expect(1, 69298, '\P{Is_Script=		Yezidi}', "");
-    Expect(0, 69298, '\P{^Is_Script=		Yezidi}', "");
-    Error('\p{Is_Sc=_:=Yezi}');
-    Error('\P{Is_Sc=_:=Yezi}');
+    Expect(1, 69297, '\p{Is_Script=_ Yezidi}', "");
+    Expect(0, 69297, '\p{^Is_Script=_ Yezidi}', "");
+    Expect(0, 69297, '\P{Is_Script=_ Yezidi}', "");
+    Expect(1, 69297, '\P{^Is_Script=_ Yezidi}', "");
+    Expect(0, 69298, '\p{Is_Script=_ Yezidi}', "");
+    Expect(1, 69298, '\p{^Is_Script=_ Yezidi}', "");
+    Expect(1, 69298, '\P{Is_Script=_ Yezidi}', "");
+    Expect(0, 69298, '\P{^Is_Script=_ Yezidi}', "");
+    Error('\p{Is_Sc= Yezi/a/}');
+    Error('\P{Is_Sc= Yezi/a/}');
     Expect(1, 69297, '\p{Is_Sc=yezi}', "");
     Expect(0, 69297, '\p{^Is_Sc=yezi}', "");
     Expect(0, 69297, '\P{Is_Sc=yezi}', "");
@@ -140997,16 +142325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69298, '\p{^Is_Sc=yezi}', "");
     Expect(1, 69298, '\P{Is_Sc=yezi}', "");
     Expect(0, 69298, '\P{^Is_Sc=yezi}', "");
-    Expect(1, 69297, '\p{Is_Sc= Yezi}', "");
-    Expect(0, 69297, '\p{^Is_Sc= Yezi}', "");
-    Expect(0, 69297, '\P{Is_Sc= Yezi}', "");
-    Expect(1, 69297, '\P{^Is_Sc= Yezi}', "");
-    Expect(0, 69298, '\p{Is_Sc= Yezi}', "");
-    Expect(1, 69298, '\p{^Is_Sc= Yezi}', "");
-    Expect(1, 69298, '\P{Is_Sc= Yezi}', "");
-    Expect(0, 69298, '\P{^Is_Sc= Yezi}', "");
-    Error('\p{Script=:=yi}');
-    Error('\P{Script=:=yi}');
+    Expect(1, 69297, '\p{Is_Sc=_-yezi}', "");
+    Expect(0, 69297, '\p{^Is_Sc=_-yezi}', "");
+    Expect(0, 69297, '\P{Is_Sc=_-yezi}', "");
+    Expect(1, 69297, '\P{^Is_Sc=_-yezi}', "");
+    Expect(0, 69298, '\p{Is_Sc=_-yezi}', "");
+    Expect(1, 69298, '\p{^Is_Sc=_-yezi}', "");
+    Expect(1, 69298, '\P{Is_Sc=_-yezi}', "");
+    Expect(0, 69298, '\P{^Is_Sc=_-yezi}', "");
+    Error('\p{Script=/a/ 	Yi}');
+    Error('\P{Script=/a/ 	Yi}');
     Expect(1, 42182, '\p{Script=:\AYi\z:}', "");;
     Expect(0, 42183, '\p{Script=:\AYi\z:}', "");;
     Expect(1, 42182, '\p{Script=yi}', "");
@@ -141019,16 +142347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 42183, '\P{^Script=yi}', "");
     Expect(1, 42182, '\p{Script=:\Ayi\z:}', "");;
     Expect(0, 42183, '\p{Script=:\Ayi\z:}', "");;
-    Expect(1, 42182, '\p{Script=--Yi}', "");
-    Expect(0, 42182, '\p{^Script=--Yi}', "");
-    Expect(0, 42182, '\P{Script=--Yi}', "");
-    Expect(1, 42182, '\P{^Script=--Yi}', "");
-    Expect(0, 42183, '\p{Script=--Yi}', "");
-    Expect(1, 42183, '\p{^Script=--Yi}', "");
-    Expect(1, 42183, '\P{Script=--Yi}', "");
-    Expect(0, 42183, '\P{^Script=--Yi}', "");
-    Error('\p{Sc=	_Yiii:=}');
-    Error('\P{Sc=	_Yiii:=}');
+    Expect(1, 42182, '\p{Script=	_yi}', "");
+    Expect(0, 42182, '\p{^Script=	_yi}', "");
+    Expect(0, 42182, '\P{Script=	_yi}', "");
+    Expect(1, 42182, '\P{^Script=	_yi}', "");
+    Expect(0, 42183, '\p{Script=	_yi}', "");
+    Expect(1, 42183, '\p{^Script=	_yi}', "");
+    Expect(1, 42183, '\P{Script=	_yi}', "");
+    Expect(0, 42183, '\P{^Script=	_yi}', "");
+    Error('\p{Sc:	-Yiii:=}');
+    Error('\P{Sc:	-Yiii:=}');
     Expect(1, 42182, '\p{Sc=:\AYiii\z:}', "");;
     Expect(0, 42183, '\p{Sc=:\AYiii\z:}', "");;
     Expect(1, 42182, '\p{Sc=yiii}', "");
@@ -141041,16 +142369,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 42183, '\P{^Sc=yiii}', "");
     Expect(1, 42182, '\p{Sc=:\Ayiii\z:}', "");;
     Expect(0, 42183, '\p{Sc=:\Ayiii\z:}', "");;
-    Expect(1, 42182, '\p{Sc=	 Yiii}', "");
-    Expect(0, 42182, '\p{^Sc=	 Yiii}', "");
-    Expect(0, 42182, '\P{Sc=	 Yiii}', "");
-    Expect(1, 42182, '\P{^Sc=	 Yiii}', "");
-    Expect(0, 42183, '\p{Sc=	 Yiii}', "");
-    Expect(1, 42183, '\p{^Sc=	 Yiii}', "");
-    Expect(1, 42183, '\P{Sc=	 Yiii}', "");
-    Expect(0, 42183, '\P{^Sc=	 Yiii}', "");
-    Error('\p{Is_Script=:= -Yi}');
-    Error('\P{Is_Script=:= -Yi}');
+    Expect(1, 42182, '\p{Sc=	_Yiii}', "");
+    Expect(0, 42182, '\p{^Sc=	_Yiii}', "");
+    Expect(0, 42182, '\P{Sc=	_Yiii}', "");
+    Expect(1, 42182, '\P{^Sc=	_Yiii}', "");
+    Expect(0, 42183, '\p{Sc=	_Yiii}', "");
+    Expect(1, 42183, '\p{^Sc=	_Yiii}', "");
+    Expect(1, 42183, '\P{Sc=	_Yiii}', "");
+    Expect(0, 42183, '\P{^Sc=	_Yiii}', "");
+    Error('\p{Is_Script=:=-	Yi}');
+    Error('\P{Is_Script=:=-	Yi}');
     Expect(1, 42182, '\p{Is_Script=yi}', "");
     Expect(0, 42182, '\p{^Is_Script=yi}', "");
     Expect(0, 42182, '\P{Is_Script=yi}', "");
@@ -141059,34 +142387,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42183, '\p{^Is_Script=yi}', "");
     Expect(1, 42183, '\P{Is_Script=yi}', "");
     Expect(0, 42183, '\P{^Is_Script=yi}', "");
-    Expect(1, 42182, '\p{Is_Script=-yi}', "");
-    Expect(0, 42182, '\p{^Is_Script=-yi}', "");
-    Expect(0, 42182, '\P{Is_Script=-yi}', "");
-    Expect(1, 42182, '\P{^Is_Script=-yi}', "");
-    Expect(0, 42183, '\p{Is_Script=-yi}', "");
-    Expect(1, 42183, '\p{^Is_Script=-yi}', "");
-    Expect(1, 42183, '\P{Is_Script=-yi}', "");
-    Expect(0, 42183, '\P{^Is_Script=-yi}', "");
-    Error('\p{Is_Sc=yiii:=}');
-    Error('\P{Is_Sc=yiii:=}');
-    Expect(1, 42182, '\p{Is_Sc: yiii}', "");
-    Expect(0, 42182, '\p{^Is_Sc: yiii}', "");
-    Expect(0, 42182, '\P{Is_Sc: yiii}', "");
-    Expect(1, 42182, '\P{^Is_Sc: yiii}', "");
-    Expect(0, 42183, '\p{Is_Sc: yiii}', "");
-    Expect(1, 42183, '\p{^Is_Sc: yiii}', "");
-    Expect(1, 42183, '\P{Is_Sc: yiii}', "");
-    Expect(0, 42183, '\P{^Is_Sc: yiii}', "");
-    Expect(1, 42182, '\p{Is_Sc=	Yiii}', "");
-    Expect(0, 42182, '\p{^Is_Sc=	Yiii}', "");
-    Expect(0, 42182, '\P{Is_Sc=	Yiii}', "");
-    Expect(1, 42182, '\P{^Is_Sc=	Yiii}', "");
-    Expect(0, 42183, '\p{Is_Sc=	Yiii}', "");
-    Expect(1, 42183, '\p{^Is_Sc=	Yiii}', "");
-    Expect(1, 42183, '\P{Is_Sc=	Yiii}', "");
-    Expect(0, 42183, '\P{^Is_Sc=	Yiii}', "");
-    Error('\p{Script=:=  zanabazar_Square}');
-    Error('\P{Script=:=  zanabazar_Square}');
+    Expect(1, 42182, '\p{Is_Script=_	Yi}', "");
+    Expect(0, 42182, '\p{^Is_Script=_	Yi}', "");
+    Expect(0, 42182, '\P{Is_Script=_	Yi}', "");
+    Expect(1, 42182, '\P{^Is_Script=_	Yi}', "");
+    Expect(0, 42183, '\p{Is_Script=_	Yi}', "");
+    Expect(1, 42183, '\p{^Is_Script=_	Yi}', "");
+    Expect(1, 42183, '\P{Is_Script=_	Yi}', "");
+    Expect(0, 42183, '\P{^Is_Script=_	Yi}', "");
+    Error('\p{Is_Sc=/a/  Yiii}');
+    Error('\P{Is_Sc=/a/  Yiii}');
+    Expect(1, 42182, '\p{Is_Sc=yiii}', "");
+    Expect(0, 42182, '\p{^Is_Sc=yiii}', "");
+    Expect(0, 42182, '\P{Is_Sc=yiii}', "");
+    Expect(1, 42182, '\P{^Is_Sc=yiii}', "");
+    Expect(0, 42183, '\p{Is_Sc=yiii}', "");
+    Expect(1, 42183, '\p{^Is_Sc=yiii}', "");
+    Expect(1, 42183, '\P{Is_Sc=yiii}', "");
+    Expect(0, 42183, '\P{^Is_Sc=yiii}', "");
+    Expect(1, 42182, '\p{Is_Sc=-Yiii}', "");
+    Expect(0, 42182, '\p{^Is_Sc=-Yiii}', "");
+    Expect(0, 42182, '\P{Is_Sc=-Yiii}', "");
+    Expect(1, 42182, '\P{^Is_Sc=-Yiii}', "");
+    Expect(0, 42183, '\p{Is_Sc=-Yiii}', "");
+    Expect(1, 42183, '\p{^Is_Sc=-Yiii}', "");
+    Expect(1, 42183, '\P{Is_Sc=-Yiii}', "");
+    Expect(0, 42183, '\P{^Is_Sc=-Yiii}', "");
+    Error('\p{Script:   :=--Zanabazar_SQUARE}');
+    Error('\P{Script:   :=--Zanabazar_SQUARE}');
     Expect(1, 72263, '\p{Script=:\AZanabazar_Square\z:}', "");;
     Expect(0, 72264, '\p{Script=:\AZanabazar_Square\z:}', "");;
     Expect(1, 72263, '\p{Script=zanabazarsquare}', "");
@@ -141099,16 +142427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72264, '\P{^Script=zanabazarsquare}', "");
     Expect(1, 72263, '\p{Script=:\Azanabazarsquare\z:}', "");;
     Expect(0, 72264, '\p{Script=:\Azanabazarsquare\z:}', "");;
-    Expect(1, 72263, '\p{Script=__zanabazar_Square}', "");
-    Expect(0, 72263, '\p{^Script=__zanabazar_Square}', "");
-    Expect(0, 72263, '\P{Script=__zanabazar_Square}', "");
-    Expect(1, 72263, '\P{^Script=__zanabazar_Square}', "");
-    Expect(0, 72264, '\p{Script=__zanabazar_Square}', "");
-    Expect(1, 72264, '\p{^Script=__zanabazar_Square}', "");
-    Expect(1, 72264, '\P{Script=__zanabazar_Square}', "");
-    Expect(0, 72264, '\P{^Script=__zanabazar_Square}', "");
-    Error('\p{Sc=:=_-Zanb}');
-    Error('\P{Sc=:=_-Zanb}');
+    Expect(1, 72263, '\p{Script:   -_Zanabazar_Square}', "");
+    Expect(0, 72263, '\p{^Script:   -_Zanabazar_Square}', "");
+    Expect(0, 72263, '\P{Script:   -_Zanabazar_Square}', "");
+    Expect(1, 72263, '\P{^Script:   -_Zanabazar_Square}', "");
+    Expect(0, 72264, '\p{Script:   -_Zanabazar_Square}', "");
+    Expect(1, 72264, '\p{^Script:   -_Zanabazar_Square}', "");
+    Expect(1, 72264, '\P{Script:   -_Zanabazar_Square}', "");
+    Expect(0, 72264, '\P{^Script:   -_Zanabazar_Square}', "");
+    Error('\p{Sc=	zanb:=}');
+    Error('\P{Sc=	zanb:=}');
     Expect(1, 72263, '\p{Sc=:\AZanb\z:}', "");;
     Expect(0, 72264, '\p{Sc=:\AZanb\z:}', "");;
     Expect(1, 72263, '\p{Sc=zanb}', "");
@@ -141121,16 +142449,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72264, '\P{^Sc=zanb}', "");
     Expect(1, 72263, '\p{Sc=:\Azanb\z:}', "");;
     Expect(0, 72264, '\p{Sc=:\Azanb\z:}', "");;
-    Expect(1, 72263, '\p{Sc=-Zanb}', "");
-    Expect(0, 72263, '\p{^Sc=-Zanb}', "");
-    Expect(0, 72263, '\P{Sc=-Zanb}', "");
-    Expect(1, 72263, '\P{^Sc=-Zanb}', "");
-    Expect(0, 72264, '\p{Sc=-Zanb}', "");
-    Expect(1, 72264, '\p{^Sc=-Zanb}', "");
-    Expect(1, 72264, '\P{Sc=-Zanb}', "");
-    Expect(0, 72264, '\P{^Sc=-Zanb}', "");
-    Error('\p{Is_Script= :=ZANABAZAR_square}');
-    Error('\P{Is_Script= :=ZANABAZAR_square}');
+    Expect(1, 72263, '\p{Sc=-	ZANB}', "");
+    Expect(0, 72263, '\p{^Sc=-	ZANB}', "");
+    Expect(0, 72263, '\P{Sc=-	ZANB}', "");
+    Expect(1, 72263, '\P{^Sc=-	ZANB}', "");
+    Expect(0, 72264, '\p{Sc=-	ZANB}', "");
+    Expect(1, 72264, '\p{^Sc=-	ZANB}', "");
+    Expect(1, 72264, '\P{Sc=-	ZANB}', "");
+    Expect(0, 72264, '\P{^Sc=-	ZANB}', "");
+    Error('\p{Is_Script=/a/ 	zanabazar_Square}');
+    Error('\P{Is_Script=/a/ 	zanabazar_Square}');
     Expect(1, 72263, '\p{Is_Script=zanabazarsquare}', "");
     Expect(0, 72263, '\p{^Is_Script=zanabazarsquare}', "");
     Expect(0, 72263, '\P{Is_Script=zanabazarsquare}', "");
@@ -141139,34 +142467,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^Is_Script=zanabazarsquare}', "");
     Expect(1, 72264, '\P{Is_Script=zanabazarsquare}', "");
     Expect(0, 72264, '\P{^Is_Script=zanabazarsquare}', "");
-    Expect(1, 72263, '\p{Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(0, 72263, '\p{^Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(0, 72263, '\P{Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(1, 72263, '\P{^Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(0, 72264, '\p{Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(1, 72264, '\p{^Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(1, 72264, '\P{Is_Script=_-ZANABAZAR_Square}', "");
-    Expect(0, 72264, '\P{^Is_Script=_-ZANABAZAR_Square}', "");
-    Error('\p{Is_Sc=-_Zanb:=}');
-    Error('\P{Is_Sc=-_Zanb:=}');
-    Expect(1, 72263, '\p{Is_Sc=zanb}', "");
-    Expect(0, 72263, '\p{^Is_Sc=zanb}', "");
-    Expect(0, 72263, '\P{Is_Sc=zanb}', "");
-    Expect(1, 72263, '\P{^Is_Sc=zanb}', "");
-    Expect(0, 72264, '\p{Is_Sc=zanb}', "");
-    Expect(1, 72264, '\p{^Is_Sc=zanb}', "");
-    Expect(1, 72264, '\P{Is_Sc=zanb}', "");
-    Expect(0, 72264, '\P{^Is_Sc=zanb}', "");
-    Expect(1, 72263, '\p{Is_Sc=	Zanb}', "");
-    Expect(0, 72263, '\p{^Is_Sc=	Zanb}', "");
-    Expect(0, 72263, '\P{Is_Sc=	Zanb}', "");
-    Expect(1, 72263, '\P{^Is_Sc=	Zanb}', "");
-    Expect(0, 72264, '\p{Is_Sc=	Zanb}', "");
-    Expect(1, 72264, '\p{^Is_Sc=	Zanb}', "");
-    Expect(1, 72264, '\P{Is_Sc=	Zanb}', "");
-    Expect(0, 72264, '\P{^Is_Sc=	Zanb}', "");
-    Error('\p{Script=-/a/inherited}');
-    Error('\P{Script=-/a/inherited}');
+    Expect(1, 72263, '\p{Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(0, 72263, '\p{^Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(0, 72263, '\P{Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(1, 72263, '\P{^Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(0, 72264, '\p{Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(1, 72264, '\p{^Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(1, 72264, '\P{Is_Script= 	ZANABAZAR_Square}', "");
+    Expect(0, 72264, '\P{^Is_Script= 	ZANABAZAR_Square}', "");
+    Error('\p{Is_Sc=_	Zanb/a/}');
+    Error('\P{Is_Sc=_	Zanb/a/}');
+    Expect(1, 72263, '\p{Is_Sc: zanb}', "");
+    Expect(0, 72263, '\p{^Is_Sc: zanb}', "");
+    Expect(0, 72263, '\P{Is_Sc: zanb}', "");
+    Expect(1, 72263, '\P{^Is_Sc: zanb}', "");
+    Expect(0, 72264, '\p{Is_Sc: zanb}', "");
+    Expect(1, 72264, '\p{^Is_Sc: zanb}', "");
+    Expect(1, 72264, '\P{Is_Sc: zanb}', "");
+    Expect(0, 72264, '\P{^Is_Sc: zanb}', "");
+    Expect(1, 72263, '\p{Is_Sc=--ZANB}', "");
+    Expect(0, 72263, '\p{^Is_Sc=--ZANB}', "");
+    Expect(0, 72263, '\P{Is_Sc=--ZANB}', "");
+    Expect(1, 72263, '\P{^Is_Sc=--ZANB}', "");
+    Expect(0, 72264, '\p{Is_Sc=--ZANB}', "");
+    Expect(1, 72264, '\p{^Is_Sc=--ZANB}', "");
+    Expect(1, 72264, '\P{Is_Sc=--ZANB}', "");
+    Expect(0, 72264, '\P{^Is_Sc=--ZANB}', "");
+    Error('\p{Script=--Inherited:=}');
+    Error('\P{Script=--Inherited:=}');
     Expect(1, 917999, '\p{Script=:\AInherited\z:}', "");;
     Expect(0, 918000, '\p{Script=:\AInherited\z:}', "");;
     Expect(1, 917999, '\p{Script=inherited}', "");
@@ -141179,16 +142507,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^Script=inherited}', "");
     Expect(1, 917999, '\p{Script=:\Ainherited\z:}', "");;
     Expect(0, 918000, '\p{Script=:\Ainherited\z:}', "");;
-    Expect(1, 917999, '\p{Script=_Inherited}', "");
-    Expect(0, 917999, '\p{^Script=_Inherited}', "");
-    Expect(0, 917999, '\P{Script=_Inherited}', "");
-    Expect(1, 917999, '\P{^Script=_Inherited}', "");
-    Expect(0, 918000, '\p{Script=_Inherited}', "");
-    Expect(1, 918000, '\p{^Script=_Inherited}', "");
-    Expect(1, 918000, '\P{Script=_Inherited}', "");
-    Expect(0, 918000, '\P{^Script=_Inherited}', "");
-    Error('\p{Sc=/a/_-zinh}');
-    Error('\P{Sc=/a/_-zinh}');
+    Expect(1, 917999, '\p{Script:  	inherited}', "");
+    Expect(0, 917999, '\p{^Script:  	inherited}', "");
+    Expect(0, 917999, '\P{Script:  	inherited}', "");
+    Expect(1, 917999, '\P{^Script:  	inherited}', "");
+    Expect(0, 918000, '\p{Script:  	inherited}', "");
+    Expect(1, 918000, '\p{^Script:  	inherited}', "");
+    Expect(1, 918000, '\P{Script:  	inherited}', "");
+    Expect(0, 918000, '\P{^Script:  	inherited}', "");
+    Error('\p{Sc=:=_	ZINH}');
+    Error('\P{Sc=:=_	ZINH}');
     Expect(1, 917999, '\p{Sc=:\AZinh\z:}', "");;
     Expect(0, 918000, '\p{Sc=:\AZinh\z:}', "");;
     Expect(1, 917999, '\p{Sc=zinh}', "");
@@ -141201,16 +142529,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^Sc=zinh}', "");
     Expect(1, 917999, '\p{Sc=:\Azinh\z:}', "");;
     Expect(0, 918000, '\p{Sc=:\Azinh\z:}', "");;
-    Expect(1, 917999, '\p{Sc=_ zinh}', "");
-    Expect(0, 917999, '\p{^Sc=_ zinh}', "");
-    Expect(0, 917999, '\P{Sc=_ zinh}', "");
-    Expect(1, 917999, '\P{^Sc=_ zinh}', "");
-    Expect(0, 918000, '\p{Sc=_ zinh}', "");
-    Expect(1, 918000, '\p{^Sc=_ zinh}', "");
-    Expect(1, 918000, '\P{Sc=_ zinh}', "");
-    Expect(0, 918000, '\P{^Sc=_ zinh}', "");
-    Error('\p{Is_Script=:=	Qaai}');
-    Error('\P{Is_Script=:=	Qaai}');
+    Expect(1, 917999, '\p{Sc=-zinh}', "");
+    Expect(0, 917999, '\p{^Sc=-zinh}', "");
+    Expect(0, 917999, '\P{Sc=-zinh}', "");
+    Expect(1, 917999, '\P{^Sc=-zinh}', "");
+    Expect(0, 918000, '\p{Sc=-zinh}', "");
+    Expect(1, 918000, '\p{^Sc=-zinh}', "");
+    Expect(1, 918000, '\P{Sc=-zinh}', "");
+    Expect(0, 918000, '\P{^Sc=-zinh}', "");
+    Error('\p{Is_Script=	_Qaai:=}');
+    Error('\P{Is_Script=	_Qaai:=}');
     Expect(1, 917999, '\p{Is_Script=qaai}', "");
     Expect(0, 917999, '\p{^Is_Script=qaai}', "");
     Expect(0, 917999, '\P{Is_Script=qaai}', "");
@@ -141219,16 +142547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_Script=qaai}', "");
     Expect(1, 918000, '\P{Is_Script=qaai}', "");
     Expect(0, 918000, '\P{^Is_Script=qaai}', "");
-    Expect(1, 917999, '\p{Is_Script=_	QAAI}', "");
-    Expect(0, 917999, '\p{^Is_Script=_	QAAI}', "");
-    Expect(0, 917999, '\P{Is_Script=_	QAAI}', "");
-    Expect(1, 917999, '\P{^Is_Script=_	QAAI}', "");
-    Expect(0, 918000, '\p{Is_Script=_	QAAI}', "");
-    Expect(1, 918000, '\p{^Is_Script=_	QAAI}', "");
-    Expect(1, 918000, '\P{Is_Script=_	QAAI}', "");
-    Expect(0, 918000, '\P{^Is_Script=_	QAAI}', "");
-    Error('\p{Is_Sc=	/a/inherited}');
-    Error('\P{Is_Sc=	/a/inherited}');
+    Expect(1, 917999, '\p{Is_Script=__qaai}', "");
+    Expect(0, 917999, '\p{^Is_Script=__qaai}', "");
+    Expect(0, 917999, '\P{Is_Script=__qaai}', "");
+    Expect(1, 917999, '\P{^Is_Script=__qaai}', "");
+    Expect(0, 918000, '\p{Is_Script=__qaai}', "");
+    Expect(1, 918000, '\p{^Is_Script=__qaai}', "");
+    Expect(1, 918000, '\P{Is_Script=__qaai}', "");
+    Expect(0, 918000, '\P{^Is_Script=__qaai}', "");
+    Error('\p{Is_Sc:	-:=INHERITED}');
+    Error('\P{Is_Sc:	-:=INHERITED}');
     Expect(1, 917999, '\p{Is_Sc=inherited}', "");
     Expect(0, 917999, '\p{^Is_Sc=inherited}', "");
     Expect(0, 917999, '\P{Is_Sc=inherited}', "");
@@ -141237,16 +142565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_Sc=inherited}', "");
     Expect(1, 918000, '\P{Is_Sc=inherited}', "");
     Expect(0, 918000, '\P{^Is_Sc=inherited}', "");
-    Expect(1, 917999, '\p{Is_Sc= Inherited}', "");
-    Expect(0, 917999, '\p{^Is_Sc= Inherited}', "");
-    Expect(0, 917999, '\P{Is_Sc= Inherited}', "");
-    Expect(1, 917999, '\P{^Is_Sc= Inherited}', "");
-    Expect(0, 918000, '\p{Is_Sc= Inherited}', "");
-    Expect(1, 918000, '\p{^Is_Sc= Inherited}', "");
-    Expect(1, 918000, '\P{Is_Sc= Inherited}', "");
-    Expect(0, 918000, '\P{^Is_Sc= Inherited}', "");
-    Error('\p{Script:	/a/	COMMON}');
-    Error('\P{Script:	/a/	COMMON}');
+    Expect(1, 917999, '\p{Is_Sc=_Inherited}', "");
+    Expect(0, 917999, '\p{^Is_Sc=_Inherited}', "");
+    Expect(0, 917999, '\P{Is_Sc=_Inherited}', "");
+    Expect(1, 917999, '\P{^Is_Sc=_Inherited}', "");
+    Expect(0, 918000, '\p{Is_Sc=_Inherited}', "");
+    Expect(1, 918000, '\p{^Is_Sc=_Inherited}', "");
+    Expect(1, 918000, '\P{Is_Sc=_Inherited}', "");
+    Expect(0, 918000, '\P{^Is_Sc=_Inherited}', "");
+    Error('\p{Script=- COMMON:=}');
+    Error('\P{Script=- COMMON:=}');
     Expect(1, 917631, '\p{Script=:\ACommon\z:}', "");;
     Expect(0, 917632, '\p{Script=:\ACommon\z:}', "");;
     Expect(1, 917631, '\p{Script=common}', "");
@@ -141259,16 +142587,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917632, '\P{^Script=common}', "");
     Expect(1, 917631, '\p{Script=:\Acommon\z:}', "");;
     Expect(0, 917632, '\p{Script=:\Acommon\z:}', "");;
-    Expect(1, 917631, '\p{Script=	Common}', "");
-    Expect(0, 917631, '\p{^Script=	Common}', "");
-    Expect(0, 917631, '\P{Script=	Common}', "");
-    Expect(1, 917631, '\P{^Script=	Common}', "");
-    Expect(0, 917632, '\p{Script=	Common}', "");
-    Expect(1, 917632, '\p{^Script=	Common}', "");
-    Expect(1, 917632, '\P{Script=	Common}', "");
-    Expect(0, 917632, '\P{^Script=	Common}', "");
-    Error('\p{Sc=:=ZYYY}');
-    Error('\P{Sc=:=ZYYY}');
+    Expect(1, 917631, '\p{Script=	COMMON}', "");
+    Expect(0, 917631, '\p{^Script=	COMMON}', "");
+    Expect(0, 917631, '\P{Script=	COMMON}', "");
+    Expect(1, 917631, '\P{^Script=	COMMON}', "");
+    Expect(0, 917632, '\p{Script=	COMMON}', "");
+    Expect(1, 917632, '\p{^Script=	COMMON}', "");
+    Expect(1, 917632, '\P{Script=	COMMON}', "");
+    Expect(0, 917632, '\P{^Script=	COMMON}', "");
+    Error('\p{Sc= :=Zyyy}');
+    Error('\P{Sc= :=Zyyy}');
     Expect(1, 917631, '\p{Sc=:\AZyyy\z:}', "");;
     Expect(0, 917632, '\p{Sc=:\AZyyy\z:}', "");;
     Expect(1, 917631, '\p{Sc=zyyy}', "");
@@ -141281,34 +142609,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917632, '\P{^Sc=zyyy}', "");
     Expect(1, 917631, '\p{Sc=:\Azyyy\z:}', "");;
     Expect(0, 917632, '\p{Sc=:\Azyyy\z:}', "");;
-    Expect(1, 917631, '\p{Sc= Zyyy}', "");
-    Expect(0, 917631, '\p{^Sc= Zyyy}', "");
-    Expect(0, 917631, '\P{Sc= Zyyy}', "");
-    Expect(1, 917631, '\P{^Sc= Zyyy}', "");
-    Expect(0, 917632, '\p{Sc= Zyyy}', "");
-    Expect(1, 917632, '\p{^Sc= Zyyy}', "");
-    Expect(1, 917632, '\P{Sc= Zyyy}', "");
-    Expect(0, 917632, '\P{^Sc= Zyyy}', "");
-    Error('\p{Is_Script=:=	_common}');
-    Error('\P{Is_Script=:=	_common}');
-    Expect(1, 917631, '\p{Is_Script=common}', "");
-    Expect(0, 917631, '\p{^Is_Script=common}', "");
-    Expect(0, 917631, '\P{Is_Script=common}', "");
-    Expect(1, 917631, '\P{^Is_Script=common}', "");
-    Expect(0, 917632, '\p{Is_Script=common}', "");
-    Expect(1, 917632, '\p{^Is_Script=common}', "");
-    Expect(1, 917632, '\P{Is_Script=common}', "");
-    Expect(0, 917632, '\P{^Is_Script=common}', "");
-    Expect(1, 917631, '\p{Is_Script=_	common}', "");
-    Expect(0, 917631, '\p{^Is_Script=_	common}', "");
-    Expect(0, 917631, '\P{Is_Script=_	common}', "");
-    Expect(1, 917631, '\P{^Is_Script=_	common}', "");
-    Expect(0, 917632, '\p{Is_Script=_	common}', "");
-    Expect(1, 917632, '\p{^Is_Script=_	common}', "");
-    Expect(1, 917632, '\P{Is_Script=_	common}', "");
-    Expect(0, 917632, '\P{^Is_Script=_	common}', "");
-    Error('\p{Is_Sc=_:=Zyyy}');
-    Error('\P{Is_Sc=_:=Zyyy}');
+    Expect(1, 917631, '\p{Sc=_ZYYY}', "");
+    Expect(0, 917631, '\p{^Sc=_ZYYY}', "");
+    Expect(0, 917631, '\P{Sc=_ZYYY}', "");
+    Expect(1, 917631, '\P{^Sc=_ZYYY}', "");
+    Expect(0, 917632, '\p{Sc=_ZYYY}', "");
+    Expect(1, 917632, '\p{^Sc=_ZYYY}', "");
+    Expect(1, 917632, '\P{Sc=_ZYYY}', "");
+    Expect(0, 917632, '\P{^Sc=_ZYYY}', "");
+    Error('\p{Is_Script=		Common:=}');
+    Error('\P{Is_Script=		Common:=}');
+    Expect(1, 917631, '\p{Is_Script:common}', "");
+    Expect(0, 917631, '\p{^Is_Script:common}', "");
+    Expect(0, 917631, '\P{Is_Script:common}', "");
+    Expect(1, 917631, '\P{^Is_Script:common}', "");
+    Expect(0, 917632, '\p{Is_Script:common}', "");
+    Expect(1, 917632, '\p{^Is_Script:common}', "");
+    Expect(1, 917632, '\P{Is_Script:common}', "");
+    Expect(0, 917632, '\P{^Is_Script:common}', "");
+    Expect(1, 917631, '\p{Is_Script=	_common}', "");
+    Expect(0, 917631, '\p{^Is_Script=	_common}', "");
+    Expect(0, 917631, '\P{Is_Script=	_common}', "");
+    Expect(1, 917631, '\P{^Is_Script=	_common}', "");
+    Expect(0, 917632, '\p{Is_Script=	_common}', "");
+    Expect(1, 917632, '\p{^Is_Script=	_common}', "");
+    Expect(1, 917632, '\P{Is_Script=	_common}', "");
+    Expect(0, 917632, '\P{^Is_Script=	_common}', "");
+    Error('\p{Is_Sc= :=zyyy}');
+    Error('\P{Is_Sc= :=zyyy}');
     Expect(1, 917631, '\p{Is_Sc=zyyy}', "");
     Expect(0, 917631, '\p{^Is_Sc=zyyy}', "");
     Expect(0, 917631, '\P{Is_Sc=zyyy}', "");
@@ -141317,16 +142645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917632, '\p{^Is_Sc=zyyy}', "");
     Expect(1, 917632, '\P{Is_Sc=zyyy}', "");
     Expect(0, 917632, '\P{^Is_Sc=zyyy}', "");
-    Expect(1, 917631, '\p{Is_Sc=ZYYY}', "");
-    Expect(0, 917631, '\p{^Is_Sc=ZYYY}', "");
-    Expect(0, 917631, '\P{Is_Sc=ZYYY}', "");
-    Expect(1, 917631, '\P{^Is_Sc=ZYYY}', "");
-    Expect(0, 917632, '\p{Is_Sc=ZYYY}', "");
-    Expect(1, 917632, '\p{^Is_Sc=ZYYY}', "");
-    Expect(1, 917632, '\P{Is_Sc=ZYYY}', "");
-    Expect(0, 917632, '\P{^Is_Sc=ZYYY}', "");
-    Error('\p{Script=:= -UNKNOWN}');
-    Error('\P{Script=:= -UNKNOWN}');
+    Expect(1, 917631, '\p{Is_Sc=_Zyyy}', "");
+    Expect(0, 917631, '\p{^Is_Sc=_Zyyy}', "");
+    Expect(0, 917631, '\P{Is_Sc=_Zyyy}', "");
+    Expect(1, 917631, '\P{^Is_Sc=_Zyyy}', "");
+    Expect(0, 917632, '\p{Is_Sc=_Zyyy}', "");
+    Expect(1, 917632, '\p{^Is_Sc=_Zyyy}', "");
+    Expect(1, 917632, '\P{Is_Sc=_Zyyy}', "");
+    Expect(0, 917632, '\P{^Is_Sc=_Zyyy}', "");
+    Error('\p{Script:   /a/UNKNOWN}');
+    Error('\P{Script:   /a/UNKNOWN}');
     Expect(1, 918000, '\p{Script=:\AUnknown\z:}', "");;
     Expect(0, 917999, '\p{Script=:\AUnknown\z:}', "");;
     Expect(1, 918000, '\p{Script=unknown}', "");
@@ -141339,16 +142667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^Script=unknown}', "");
     Expect(1, 918000, '\p{Script=:\Aunknown\z:}', "");;
     Expect(0, 917999, '\p{Script=:\Aunknown\z:}', "");;
-    Expect(1, 918000, '\p{Script=Unknown}', "");
-    Expect(0, 918000, '\p{^Script=Unknown}', "");
-    Expect(0, 918000, '\P{Script=Unknown}', "");
-    Expect(1, 918000, '\P{^Script=Unknown}', "");
-    Expect(0, 917999, '\p{Script=Unknown}', "");
-    Expect(1, 917999, '\p{^Script=Unknown}', "");
-    Expect(1, 917999, '\P{Script=Unknown}', "");
-    Expect(0, 917999, '\P{^Script=Unknown}', "");
-    Error('\p{Sc=/a/_zzzz}');
-    Error('\P{Sc=/a/_zzzz}');
+    Expect(1, 918000, '\p{Script= Unknown}', "");
+    Expect(0, 918000, '\p{^Script= Unknown}', "");
+    Expect(0, 918000, '\P{Script= Unknown}', "");
+    Expect(1, 918000, '\P{^Script= Unknown}', "");
+    Expect(0, 917999, '\p{Script= Unknown}', "");
+    Expect(1, 917999, '\p{^Script= Unknown}', "");
+    Expect(1, 917999, '\P{Script= Unknown}', "");
+    Expect(0, 917999, '\P{^Script= Unknown}', "");
+    Error('\p{Sc=_ ZZZZ:=}');
+    Error('\P{Sc=_ ZZZZ:=}');
     Expect(1, 918000, '\p{Sc=:\AZzzz\z:}', "");;
     Expect(0, 917999, '\p{Sc=:\AZzzz\z:}', "");;
     Expect(1, 918000, '\p{Sc=zzzz}', "");
@@ -141361,16 +142689,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^Sc=zzzz}', "");
     Expect(1, 918000, '\p{Sc=:\Azzzz\z:}', "");;
     Expect(0, 917999, '\p{Sc=:\Azzzz\z:}', "");;
-    Expect(1, 918000, '\p{Sc=_-Zzzz}', "");
-    Expect(0, 918000, '\p{^Sc=_-Zzzz}', "");
-    Expect(0, 918000, '\P{Sc=_-Zzzz}', "");
-    Expect(1, 918000, '\P{^Sc=_-Zzzz}', "");
-    Expect(0, 917999, '\p{Sc=_-Zzzz}', "");
-    Expect(1, 917999, '\p{^Sc=_-Zzzz}', "");
-    Expect(1, 917999, '\P{Sc=_-Zzzz}', "");
-    Expect(0, 917999, '\P{^Sc=_-Zzzz}', "");
-    Error('\p{Is_Script=_Unknown:=}');
-    Error('\P{Is_Script=_Unknown:=}');
+    Expect(1, 918000, '\p{Sc=- zzzz}', "");
+    Expect(0, 918000, '\p{^Sc=- zzzz}', "");
+    Expect(0, 918000, '\P{Sc=- zzzz}', "");
+    Expect(1, 918000, '\P{^Sc=- zzzz}', "");
+    Expect(0, 917999, '\p{Sc=- zzzz}', "");
+    Expect(1, 917999, '\p{^Sc=- zzzz}', "");
+    Expect(1, 917999, '\P{Sc=- zzzz}', "");
+    Expect(0, 917999, '\P{^Sc=- zzzz}', "");
+    Error('\p{Is_Script:	_:=unknown}');
+    Error('\P{Is_Script:	_:=unknown}');
     Expect(1, 918000, '\p{Is_Script=unknown}', "");
     Expect(0, 918000, '\p{^Is_Script=unknown}', "");
     Expect(0, 918000, '\P{Is_Script=unknown}', "");
@@ -141379,16 +142707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_Script=unknown}', "");
     Expect(1, 917999, '\P{Is_Script=unknown}', "");
     Expect(0, 917999, '\P{^Is_Script=unknown}', "");
-    Expect(1, 918000, '\p{Is_Script= Unknown}', "");
-    Expect(0, 918000, '\p{^Is_Script= Unknown}', "");
-    Expect(0, 918000, '\P{Is_Script= Unknown}', "");
-    Expect(1, 918000, '\P{^Is_Script= Unknown}', "");
-    Expect(0, 917999, '\p{Is_Script= Unknown}', "");
-    Expect(1, 917999, '\p{^Is_Script= Unknown}', "");
-    Expect(1, 917999, '\P{Is_Script= Unknown}', "");
-    Expect(0, 917999, '\P{^Is_Script= Unknown}', "");
-    Error('\p{Is_Sc=-/a/zzzz}');
-    Error('\P{Is_Sc=-/a/zzzz}');
+    Expect(1, 918000, '\p{Is_Script=	_unknown}', "");
+    Expect(0, 918000, '\p{^Is_Script=	_unknown}', "");
+    Expect(0, 918000, '\P{Is_Script=	_unknown}', "");
+    Expect(1, 918000, '\P{^Is_Script=	_unknown}', "");
+    Expect(0, 917999, '\p{Is_Script=	_unknown}', "");
+    Expect(1, 917999, '\p{^Is_Script=	_unknown}', "");
+    Expect(1, 917999, '\P{Is_Script=	_unknown}', "");
+    Expect(0, 917999, '\P{^Is_Script=	_unknown}', "");
+    Error('\p{Is_Sc=:=zzzz}');
+    Error('\P{Is_Sc=:=zzzz}');
     Expect(1, 918000, '\p{Is_Sc=zzzz}', "");
     Expect(0, 918000, '\p{^Is_Sc=zzzz}', "");
     Expect(0, 918000, '\P{Is_Sc=zzzz}', "");
@@ -141397,14 +142725,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_Sc=zzzz}', "");
     Expect(1, 917999, '\P{Is_Sc=zzzz}', "");
     Expect(0, 917999, '\P{^Is_Sc=zzzz}', "");
-    Expect(1, 918000, '\p{Is_Sc=	ZZZZ}', "");
-    Expect(0, 918000, '\p{^Is_Sc=	ZZZZ}', "");
-    Expect(0, 918000, '\P{Is_Sc=	ZZZZ}', "");
-    Expect(1, 918000, '\P{^Is_Sc=	ZZZZ}', "");
-    Expect(0, 917999, '\p{Is_Sc=	ZZZZ}', "");
-    Expect(1, 917999, '\p{^Is_Sc=	ZZZZ}', "");
-    Expect(1, 917999, '\P{Is_Sc=	ZZZZ}', "");
-    Expect(0, 917999, '\P{^Is_Sc=	ZZZZ}', "");
+    Expect(1, 918000, '\p{Is_Sc=		zzzz}', "");
+    Expect(0, 918000, '\p{^Is_Sc=		zzzz}', "");
+    Expect(0, 918000, '\P{Is_Sc=		zzzz}', "");
+    Expect(1, 918000, '\P{^Is_Sc=		zzzz}', "");
+    Expect(0, 917999, '\p{Is_Sc=		zzzz}', "");
+    Expect(1, 917999, '\p{^Is_Sc=		zzzz}', "");
+    Expect(1, 917999, '\P{Is_Sc=		zzzz}', "");
+    Expect(0, 917999, '\P{^Is_Sc=		zzzz}', "");
     Error('\p{simplecasefolding}');
     Error('\P{simplecasefolding}');
     Error('\p{scf}');
@@ -141415,30 +142743,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Error('\P{scriptextensions}');
     Error('\p{scx}');
     Error('\P{scx}');
-    Error('\p{Script_Extensions=_/a/adlam}');
-    Error('\P{Script_Extensions=_/a/adlam}');
+    Error('\p{Script_Extensions=/a/_Adlam}');
+    Error('\P{Script_Extensions=/a/_Adlam}');
     Expect(1, 125279, '\p{Script_Extensions=:\AAdlam\z:}', "");;
     Expect(0, 125280, '\p{Script_Extensions=:\AAdlam\z:}', "");;
-    Expect(1, 125279, '\p{Script_Extensions=adlam}', "");
-    Expect(0, 125279, '\p{^Script_Extensions=adlam}', "");
-    Expect(0, 125279, '\P{Script_Extensions=adlam}', "");
-    Expect(1, 125279, '\P{^Script_Extensions=adlam}', "");
-    Expect(0, 125280, '\p{Script_Extensions=adlam}', "");
-    Expect(1, 125280, '\p{^Script_Extensions=adlam}', "");
-    Expect(1, 125280, '\P{Script_Extensions=adlam}', "");
-    Expect(0, 125280, '\P{^Script_Extensions=adlam}', "");
+    Expect(1, 125279, '\p{Script_Extensions:	adlam}', "");
+    Expect(0, 125279, '\p{^Script_Extensions:	adlam}', "");
+    Expect(0, 125279, '\P{Script_Extensions:	adlam}', "");
+    Expect(1, 125279, '\P{^Script_Extensions:	adlam}', "");
+    Expect(0, 125280, '\p{Script_Extensions:	adlam}', "");
+    Expect(1, 125280, '\p{^Script_Extensions:	adlam}', "");
+    Expect(1, 125280, '\P{Script_Extensions:	adlam}', "");
+    Expect(0, 125280, '\P{^Script_Extensions:	adlam}', "");
     Expect(1, 125279, '\p{Script_Extensions=:\Aadlam\z:}', "");;
     Expect(0, 125280, '\p{Script_Extensions=:\Aadlam\z:}', "");;
-    Expect(1, 125279, '\p{Script_Extensions=--Adlam}', "");
-    Expect(0, 125279, '\p{^Script_Extensions=--Adlam}', "");
-    Expect(0, 125279, '\P{Script_Extensions=--Adlam}', "");
-    Expect(1, 125279, '\P{^Script_Extensions=--Adlam}', "");
-    Expect(0, 125280, '\p{Script_Extensions=--Adlam}', "");
-    Expect(1, 125280, '\p{^Script_Extensions=--Adlam}', "");
-    Expect(1, 125280, '\P{Script_Extensions=--Adlam}', "");
-    Expect(0, 125280, '\P{^Script_Extensions=--Adlam}', "");
-    Error('\p{Scx=:=-	adlm}');
-    Error('\P{Scx=:=-	adlm}');
+    Expect(1, 125279, '\p{Script_Extensions= 	Adlam}', "");
+    Expect(0, 125279, '\p{^Script_Extensions= 	Adlam}', "");
+    Expect(0, 125279, '\P{Script_Extensions= 	Adlam}', "");
+    Expect(1, 125279, '\P{^Script_Extensions= 	Adlam}', "");
+    Expect(0, 125280, '\p{Script_Extensions= 	Adlam}', "");
+    Expect(1, 125280, '\p{^Script_Extensions= 	Adlam}', "");
+    Expect(1, 125280, '\P{Script_Extensions= 	Adlam}', "");
+    Expect(0, 125280, '\P{^Script_Extensions= 	Adlam}', "");
+    Error('\p{Scx=-	ADLM:=}');
+    Error('\P{Scx=-	ADLM:=}');
     Expect(1, 125279, '\p{Scx=:\AAdlm\z:}', "");;
     Expect(0, 125280, '\p{Scx=:\AAdlm\z:}', "");;
     Expect(1, 125279, '\p{Scx=adlm}', "");
@@ -141451,16 +142779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 125280, '\P{^Scx=adlm}', "");
     Expect(1, 125279, '\p{Scx=:\Aadlm\z:}', "");;
     Expect(0, 125280, '\p{Scx=:\Aadlm\z:}', "");;
-    Expect(1, 125279, '\p{Scx=	Adlm}', "");
-    Expect(0, 125279, '\p{^Scx=	Adlm}', "");
-    Expect(0, 125279, '\P{Scx=	Adlm}', "");
-    Expect(1, 125279, '\P{^Scx=	Adlm}', "");
-    Expect(0, 125280, '\p{Scx=	Adlm}', "");
-    Expect(1, 125280, '\p{^Scx=	Adlm}', "");
-    Expect(1, 125280, '\P{Scx=	Adlm}', "");
-    Expect(0, 125280, '\P{^Scx=	Adlm}', "");
-    Error('\p{Is_Script_Extensions= :=Adlam}');
-    Error('\P{Is_Script_Extensions= :=Adlam}');
+    Expect(1, 125279, '\p{Scx= _adlm}', "");
+    Expect(0, 125279, '\p{^Scx= _adlm}', "");
+    Expect(0, 125279, '\P{Scx= _adlm}', "");
+    Expect(1, 125279, '\P{^Scx= _adlm}', "");
+    Expect(0, 125280, '\p{Scx= _adlm}', "");
+    Expect(1, 125280, '\p{^Scx= _adlm}', "");
+    Expect(1, 125280, '\P{Scx= _adlm}', "");
+    Expect(0, 125280, '\P{^Scx= _adlm}', "");
+    Error('\p{Is_Script_Extensions=-ADLAM:=}');
+    Error('\P{Is_Script_Extensions=-ADLAM:=}');
     Expect(1, 125279, '\p{Is_Script_Extensions=adlam}', "");
     Expect(0, 125279, '\p{^Is_Script_Extensions=adlam}', "");
     Expect(0, 125279, '\P{Is_Script_Extensions=adlam}', "");
@@ -141469,16 +142797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^Is_Script_Extensions=adlam}', "");
     Expect(1, 125280, '\P{Is_Script_Extensions=adlam}', "");
     Expect(0, 125280, '\P{^Is_Script_Extensions=adlam}', "");
-    Expect(1, 125279, '\p{Is_Script_Extensions=	-Adlam}', "");
-    Expect(0, 125279, '\p{^Is_Script_Extensions=	-Adlam}', "");
-    Expect(0, 125279, '\P{Is_Script_Extensions=	-Adlam}', "");
-    Expect(1, 125279, '\P{^Is_Script_Extensions=	-Adlam}', "");
-    Expect(0, 125280, '\p{Is_Script_Extensions=	-Adlam}', "");
-    Expect(1, 125280, '\p{^Is_Script_Extensions=	-Adlam}', "");
-    Expect(1, 125280, '\P{Is_Script_Extensions=	-Adlam}', "");
-    Expect(0, 125280, '\P{^Is_Script_Extensions=	-Adlam}', "");
-    Error('\p{Is_Scx:	/a/-ADLM}');
-    Error('\P{Is_Scx:	/a/-ADLM}');
+    Expect(1, 125279, '\p{Is_Script_Extensions=	_Adlam}', "");
+    Expect(0, 125279, '\p{^Is_Script_Extensions=	_Adlam}', "");
+    Expect(0, 125279, '\P{Is_Script_Extensions=	_Adlam}', "");
+    Expect(1, 125279, '\P{^Is_Script_Extensions=	_Adlam}', "");
+    Expect(0, 125280, '\p{Is_Script_Extensions=	_Adlam}', "");
+    Expect(1, 125280, '\p{^Is_Script_Extensions=	_Adlam}', "");
+    Expect(1, 125280, '\P{Is_Script_Extensions=	_Adlam}', "");
+    Expect(0, 125280, '\P{^Is_Script_Extensions=	_Adlam}', "");
+    Error('\p{Is_Scx=_Adlm:=}');
+    Error('\P{Is_Scx=_Adlm:=}');
     Expect(1, 125279, '\p{Is_Scx=adlm}', "");
     Expect(0, 125279, '\p{^Is_Scx=adlm}', "");
     Expect(0, 125279, '\P{Is_Scx=adlm}', "");
@@ -141487,16 +142815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 125280, '\p{^Is_Scx=adlm}', "");
     Expect(1, 125280, '\P{Is_Scx=adlm}', "");
     Expect(0, 125280, '\P{^Is_Scx=adlm}', "");
-    Expect(1, 125279, '\p{Is_Scx=	-ADLM}', "");
-    Expect(0, 125279, '\p{^Is_Scx=	-ADLM}', "");
-    Expect(0, 125279, '\P{Is_Scx=	-ADLM}', "");
-    Expect(1, 125279, '\P{^Is_Scx=	-ADLM}', "");
-    Expect(0, 125280, '\p{Is_Scx=	-ADLM}', "");
-    Expect(1, 125280, '\p{^Is_Scx=	-ADLM}', "");
-    Expect(1, 125280, '\P{Is_Scx=	-ADLM}', "");
-    Expect(0, 125280, '\P{^Is_Scx=	-ADLM}', "");
-    Error('\p{Script_Extensions=:=caucasian_ALBANIAN}');
-    Error('\P{Script_Extensions=:=caucasian_ALBANIAN}');
+    Expect(1, 125279, '\p{Is_Scx=	 ADLM}', "");
+    Expect(0, 125279, '\p{^Is_Scx=	 ADLM}', "");
+    Expect(0, 125279, '\P{Is_Scx=	 ADLM}', "");
+    Expect(1, 125279, '\P{^Is_Scx=	 ADLM}', "");
+    Expect(0, 125280, '\p{Is_Scx=	 ADLM}', "");
+    Expect(1, 125280, '\p{^Is_Scx=	 ADLM}', "");
+    Expect(1, 125280, '\P{Is_Scx=	 ADLM}', "");
+    Expect(0, 125280, '\P{^Is_Scx=	 ADLM}', "");
+    Error('\p{Script_Extensions=-:=CAUCASIAN_albanian}');
+    Error('\P{Script_Extensions=-:=CAUCASIAN_albanian}');
     Expect(1, 66927, '\p{Script_Extensions=:\ACaucasian_Albanian\z:}', "");;
     Expect(0, 66928, '\p{Script_Extensions=:\ACaucasian_Albanian\z:}', "");;
     Expect(1, 66927, '\p{Script_Extensions=caucasianalbanian}', "");
@@ -141509,38 +142837,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66928, '\P{^Script_Extensions=caucasianalbanian}', "");
     Expect(1, 66927, '\p{Script_Extensions=:\Acaucasianalbanian\z:}', "");;
     Expect(0, 66928, '\p{Script_Extensions=:\Acaucasianalbanian\z:}', "");;
-    Expect(1, 66927, '\p{Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(0, 66927, '\p{^Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(0, 66927, '\P{Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(1, 66927, '\P{^Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(0, 66928, '\p{Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(1, 66928, '\p{^Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(1, 66928, '\P{Script_Extensions= 	Caucasian_albanian}', "");
-    Expect(0, 66928, '\P{^Script_Extensions= 	Caucasian_albanian}', "");
-    Error('\p{Scx=:=_ Aghb}');
-    Error('\P{Scx=:=_ Aghb}');
+    Expect(1, 66927, '\p{Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(0, 66927, '\p{^Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(0, 66927, '\P{Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(1, 66927, '\P{^Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(0, 66928, '\p{Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(1, 66928, '\p{^Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(1, 66928, '\P{Script_Extensions= _Caucasian_Albanian}', "");
+    Expect(0, 66928, '\P{^Script_Extensions= _Caucasian_Albanian}', "");
+    Error('\p{Scx=/a/Aghb}');
+    Error('\P{Scx=/a/Aghb}');
     Expect(1, 66927, '\p{Scx=:\AAghb\z:}', "");;
     Expect(0, 66928, '\p{Scx=:\AAghb\z:}', "");;
-    Expect(1, 66927, '\p{Scx:   aghb}', "");
-    Expect(0, 66927, '\p{^Scx:   aghb}', "");
-    Expect(0, 66927, '\P{Scx:   aghb}', "");
-    Expect(1, 66927, '\P{^Scx:   aghb}', "");
-    Expect(0, 66928, '\p{Scx:   aghb}', "");
-    Expect(1, 66928, '\p{^Scx:   aghb}', "");
-    Expect(1, 66928, '\P{Scx:   aghb}', "");
-    Expect(0, 66928, '\P{^Scx:   aghb}', "");
+    Expect(1, 66927, '\p{Scx=aghb}', "");
+    Expect(0, 66927, '\p{^Scx=aghb}', "");
+    Expect(0, 66927, '\P{Scx=aghb}', "");
+    Expect(1, 66927, '\P{^Scx=aghb}', "");
+    Expect(0, 66928, '\p{Scx=aghb}', "");
+    Expect(1, 66928, '\p{^Scx=aghb}', "");
+    Expect(1, 66928, '\P{Scx=aghb}', "");
+    Expect(0, 66928, '\P{^Scx=aghb}', "");
     Expect(1, 66927, '\p{Scx=:\Aaghb\z:}', "");;
     Expect(0, 66928, '\p{Scx=:\Aaghb\z:}', "");;
-    Expect(1, 66927, '\p{Scx=		aghb}', "");
-    Expect(0, 66927, '\p{^Scx=		aghb}', "");
-    Expect(0, 66927, '\P{Scx=		aghb}', "");
-    Expect(1, 66927, '\P{^Scx=		aghb}', "");
-    Expect(0, 66928, '\p{Scx=		aghb}', "");
-    Expect(1, 66928, '\p{^Scx=		aghb}', "");
-    Expect(1, 66928, '\P{Scx=		aghb}', "");
-    Expect(0, 66928, '\P{^Scx=		aghb}', "");
-    Error('\p{Is_Script_Extensions=/a/	 CAUCASIAN_albanian}');
-    Error('\P{Is_Script_Extensions=/a/	 CAUCASIAN_albanian}');
+    Expect(1, 66927, '\p{Scx=AGHB}', "");
+    Expect(0, 66927, '\p{^Scx=AGHB}', "");
+    Expect(0, 66927, '\P{Scx=AGHB}', "");
+    Expect(1, 66927, '\P{^Scx=AGHB}', "");
+    Expect(0, 66928, '\p{Scx=AGHB}', "");
+    Expect(1, 66928, '\p{^Scx=AGHB}', "");
+    Expect(1, 66928, '\P{Scx=AGHB}', "");
+    Expect(0, 66928, '\P{^Scx=AGHB}', "");
+    Error('\p{Is_Script_Extensions:	/a/-	Caucasian_ALBANIAN}');
+    Error('\P{Is_Script_Extensions:	/a/-	Caucasian_ALBANIAN}');
     Expect(1, 66927, '\p{Is_Script_Extensions=caucasianalbanian}', "");
     Expect(0, 66927, '\p{^Is_Script_Extensions=caucasianalbanian}', "");
     Expect(0, 66927, '\P{Is_Script_Extensions=caucasianalbanian}', "");
@@ -141549,16 +142877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66928, '\p{^Is_Script_Extensions=caucasianalbanian}', "");
     Expect(1, 66928, '\P{Is_Script_Extensions=caucasianalbanian}', "");
     Expect(0, 66928, '\P{^Is_Script_Extensions=caucasianalbanian}', "");
-    Expect(1, 66927, '\p{Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(0, 66927, '\p{^Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(0, 66927, '\P{Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(1, 66927, '\P{^Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(0, 66928, '\p{Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(1, 66928, '\p{^Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(1, 66928, '\P{Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Expect(0, 66928, '\P{^Is_Script_Extensions:   	 Caucasian_Albanian}', "");
-    Error('\p{Is_Scx=/a/--AGHB}');
-    Error('\P{Is_Scx=/a/--AGHB}');
+    Expect(1, 66927, '\p{Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(0, 66927, '\p{^Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(0, 66927, '\P{Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(1, 66927, '\P{^Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(0, 66928, '\p{Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(1, 66928, '\p{^Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(1, 66928, '\P{Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Expect(0, 66928, '\P{^Is_Script_Extensions= -Caucasian_Albanian}', "");
+    Error('\p{Is_Scx=_/a/Aghb}');
+    Error('\P{Is_Scx=_/a/Aghb}');
     Expect(1, 66927, '\p{Is_Scx=aghb}', "");
     Expect(0, 66927, '\p{^Is_Scx=aghb}', "");
     Expect(0, 66927, '\P{Is_Scx=aghb}', "");
@@ -141567,16 +142895,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66928, '\p{^Is_Scx=aghb}', "");
     Expect(1, 66928, '\P{Is_Scx=aghb}', "");
     Expect(0, 66928, '\P{^Is_Scx=aghb}', "");
-    Expect(1, 66927, '\p{Is_Scx=_	aghb}', "");
-    Expect(0, 66927, '\p{^Is_Scx=_	aghb}', "");
-    Expect(0, 66927, '\P{Is_Scx=_	aghb}', "");
-    Expect(1, 66927, '\P{^Is_Scx=_	aghb}', "");
-    Expect(0, 66928, '\p{Is_Scx=_	aghb}', "");
-    Expect(1, 66928, '\p{^Is_Scx=_	aghb}', "");
-    Expect(1, 66928, '\P{Is_Scx=_	aghb}', "");
-    Expect(0, 66928, '\P{^Is_Scx=_	aghb}', "");
-    Error('\p{Script_Extensions=/a/ _Ahom}');
-    Error('\P{Script_Extensions=/a/ _Ahom}');
+    Expect(1, 66927, '\p{Is_Scx:  _Aghb}', "");
+    Expect(0, 66927, '\p{^Is_Scx:  _Aghb}', "");
+    Expect(0, 66927, '\P{Is_Scx:  _Aghb}', "");
+    Expect(1, 66927, '\P{^Is_Scx:  _Aghb}', "");
+    Expect(0, 66928, '\p{Is_Scx:  _Aghb}', "");
+    Expect(1, 66928, '\p{^Is_Scx:  _Aghb}', "");
+    Expect(1, 66928, '\P{Is_Scx:  _Aghb}', "");
+    Expect(0, 66928, '\P{^Is_Scx:  _Aghb}', "");
+    Error('\p{Script_Extensions=	ahom/a/}');
+    Error('\P{Script_Extensions=	ahom/a/}');
     Expect(1, 71494, '\p{Script_Extensions=:\AAhom\z:}', "");;
     Expect(0, 71495, '\p{Script_Extensions=:\AAhom\z:}', "");;
     Expect(1, 71494, '\p{Script_Extensions=ahom}', "");
@@ -141589,16 +142917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71495, '\P{^Script_Extensions=ahom}', "");
     Expect(1, 71494, '\p{Script_Extensions=:\Aahom\z:}', "");;
     Expect(0, 71495, '\p{Script_Extensions=:\Aahom\z:}', "");;
-    Expect(1, 71494, '\p{Script_Extensions=--ahom}', "");
-    Expect(0, 71494, '\p{^Script_Extensions=--ahom}', "");
-    Expect(0, 71494, '\P{Script_Extensions=--ahom}', "");
-    Expect(1, 71494, '\P{^Script_Extensions=--ahom}', "");
-    Expect(0, 71495, '\p{Script_Extensions=--ahom}', "");
-    Expect(1, 71495, '\p{^Script_Extensions=--ahom}', "");
-    Expect(1, 71495, '\P{Script_Extensions=--ahom}', "");
-    Expect(0, 71495, '\P{^Script_Extensions=--ahom}', "");
-    Error('\p{Scx=-:=AHOM}');
-    Error('\P{Scx=-:=AHOM}');
+    Expect(1, 71494, '\p{Script_Extensions:   -	ahom}', "");
+    Expect(0, 71494, '\p{^Script_Extensions:   -	ahom}', "");
+    Expect(0, 71494, '\P{Script_Extensions:   -	ahom}', "");
+    Expect(1, 71494, '\P{^Script_Extensions:   -	ahom}', "");
+    Expect(0, 71495, '\p{Script_Extensions:   -	ahom}', "");
+    Expect(1, 71495, '\p{^Script_Extensions:   -	ahom}', "");
+    Expect(1, 71495, '\P{Script_Extensions:   -	ahom}', "");
+    Expect(0, 71495, '\P{^Script_Extensions:   -	ahom}', "");
+    Error('\p{Scx=/a/-Ahom}');
+    Error('\P{Scx=/a/-Ahom}');
     Expect(1, 71494, '\p{Scx=:\AAhom\z:}', "");;
     Expect(0, 71495, '\p{Scx=:\AAhom\z:}', "");;
     Expect(1, 71494, '\p{Scx=ahom}', "");
@@ -141611,34 +142939,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71495, '\P{^Scx=ahom}', "");
     Expect(1, 71494, '\p{Scx=:\Aahom\z:}', "");;
     Expect(0, 71495, '\p{Scx=:\Aahom\z:}', "");;
-    Expect(1, 71494, '\p{Scx= _AHOM}', "");
-    Expect(0, 71494, '\p{^Scx= _AHOM}', "");
-    Expect(0, 71494, '\P{Scx= _AHOM}', "");
-    Expect(1, 71494, '\P{^Scx= _AHOM}', "");
-    Expect(0, 71495, '\p{Scx= _AHOM}', "");
-    Expect(1, 71495, '\p{^Scx= _AHOM}', "");
-    Expect(1, 71495, '\P{Scx= _AHOM}', "");
-    Expect(0, 71495, '\P{^Scx= _AHOM}', "");
-    Error('\p{Is_Script_Extensions=_/a/AHOM}');
-    Error('\P{Is_Script_Extensions=_/a/AHOM}');
-    Expect(1, 71494, '\p{Is_Script_Extensions=ahom}', "");
-    Expect(0, 71494, '\p{^Is_Script_Extensions=ahom}', "");
-    Expect(0, 71494, '\P{Is_Script_Extensions=ahom}', "");
-    Expect(1, 71494, '\P{^Is_Script_Extensions=ahom}', "");
-    Expect(0, 71495, '\p{Is_Script_Extensions=ahom}', "");
-    Expect(1, 71495, '\p{^Is_Script_Extensions=ahom}', "");
-    Expect(1, 71495, '\P{Is_Script_Extensions=ahom}', "");
-    Expect(0, 71495, '\P{^Is_Script_Extensions=ahom}', "");
-    Expect(1, 71494, '\p{Is_Script_Extensions=	Ahom}', "");
-    Expect(0, 71494, '\p{^Is_Script_Extensions=	Ahom}', "");
-    Expect(0, 71494, '\P{Is_Script_Extensions=	Ahom}', "");
-    Expect(1, 71494, '\P{^Is_Script_Extensions=	Ahom}', "");
-    Expect(0, 71495, '\p{Is_Script_Extensions=	Ahom}', "");
-    Expect(1, 71495, '\p{^Is_Script_Extensions=	Ahom}', "");
-    Expect(1, 71495, '\P{Is_Script_Extensions=	Ahom}', "");
-    Expect(0, 71495, '\P{^Is_Script_Extensions=	Ahom}', "");
-    Error('\p{Is_Scx=-ahom/a/}');
-    Error('\P{Is_Scx=-ahom/a/}');
+    Expect(1, 71494, '\p{Scx:   -	ahom}', "");
+    Expect(0, 71494, '\p{^Scx:   -	ahom}', "");
+    Expect(0, 71494, '\P{Scx:   -	ahom}', "");
+    Expect(1, 71494, '\P{^Scx:   -	ahom}', "");
+    Expect(0, 71495, '\p{Scx:   -	ahom}', "");
+    Expect(1, 71495, '\p{^Scx:   -	ahom}', "");
+    Expect(1, 71495, '\P{Scx:   -	ahom}', "");
+    Expect(0, 71495, '\P{^Scx:   -	ahom}', "");
+    Error('\p{Is_Script_Extensions=/a/_Ahom}');
+    Error('\P{Is_Script_Extensions=/a/_Ahom}');
+    Expect(1, 71494, '\p{Is_Script_Extensions: ahom}', "");
+    Expect(0, 71494, '\p{^Is_Script_Extensions: ahom}', "");
+    Expect(0, 71494, '\P{Is_Script_Extensions: ahom}', "");
+    Expect(1, 71494, '\P{^Is_Script_Extensions: ahom}', "");
+    Expect(0, 71495, '\p{Is_Script_Extensions: ahom}', "");
+    Expect(1, 71495, '\p{^Is_Script_Extensions: ahom}', "");
+    Expect(1, 71495, '\P{Is_Script_Extensions: ahom}', "");
+    Expect(0, 71495, '\P{^Is_Script_Extensions: ahom}', "");
+    Expect(1, 71494, '\p{Is_Script_Extensions=  Ahom}', "");
+    Expect(0, 71494, '\p{^Is_Script_Extensions=  Ahom}', "");
+    Expect(0, 71494, '\P{Is_Script_Extensions=  Ahom}', "");
+    Expect(1, 71494, '\P{^Is_Script_Extensions=  Ahom}', "");
+    Expect(0, 71495, '\p{Is_Script_Extensions=  Ahom}', "");
+    Expect(1, 71495, '\p{^Is_Script_Extensions=  Ahom}', "");
+    Expect(1, 71495, '\P{Is_Script_Extensions=  Ahom}', "");
+    Expect(0, 71495, '\P{^Is_Script_Extensions=  Ahom}', "");
+    Error('\p{Is_Scx=:=_	AHOM}');
+    Error('\P{Is_Scx=:=_	AHOM}');
     Expect(1, 71494, '\p{Is_Scx=ahom}', "");
     Expect(0, 71494, '\p{^Is_Scx=ahom}', "");
     Expect(0, 71494, '\P{Is_Scx=ahom}', "");
@@ -141647,38 +142975,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71495, '\p{^Is_Scx=ahom}', "");
     Expect(1, 71495, '\P{Is_Scx=ahom}', "");
     Expect(0, 71495, '\P{^Is_Scx=ahom}', "");
-    Expect(1, 71494, '\p{Is_Scx:   -Ahom}', "");
-    Expect(0, 71494, '\p{^Is_Scx:   -Ahom}', "");
-    Expect(0, 71494, '\P{Is_Scx:   -Ahom}', "");
-    Expect(1, 71494, '\P{^Is_Scx:   -Ahom}', "");
-    Expect(0, 71495, '\p{Is_Scx:   -Ahom}', "");
-    Expect(1, 71495, '\p{^Is_Scx:   -Ahom}', "");
-    Expect(1, 71495, '\P{Is_Scx:   -Ahom}', "");
-    Expect(0, 71495, '\P{^Is_Scx:   -Ahom}', "");
-    Error('\p{Script_Extensions=:=-arabic}');
-    Error('\P{Script_Extensions=:=-arabic}');
+    Expect(1, 71494, '\p{Is_Scx=_	ahom}', "");
+    Expect(0, 71494, '\p{^Is_Scx=_	ahom}', "");
+    Expect(0, 71494, '\P{Is_Scx=_	ahom}', "");
+    Expect(1, 71494, '\P{^Is_Scx=_	ahom}', "");
+    Expect(0, 71495, '\p{Is_Scx=_	ahom}', "");
+    Expect(1, 71495, '\p{^Is_Scx=_	ahom}', "");
+    Expect(1, 71495, '\P{Is_Scx=_	ahom}', "");
+    Expect(0, 71495, '\P{^Is_Scx=_	ahom}', "");
+    Error('\p{Script_Extensions=-:=arabic}');
+    Error('\P{Script_Extensions=-:=arabic}');
     Expect(1, 126705, '\p{Script_Extensions=:\AArabic\z:}', "");;
     Expect(0, 126706, '\p{Script_Extensions=:\AArabic\z:}', "");;
-    Expect(1, 126705, '\p{Script_Extensions=arabic}', "");
-    Expect(0, 126705, '\p{^Script_Extensions=arabic}', "");
-    Expect(0, 126705, '\P{Script_Extensions=arabic}', "");
-    Expect(1, 126705, '\P{^Script_Extensions=arabic}', "");
-    Expect(0, 126706, '\p{Script_Extensions=arabic}', "");
-    Expect(1, 126706, '\p{^Script_Extensions=arabic}', "");
-    Expect(1, 126706, '\P{Script_Extensions=arabic}', "");
-    Expect(0, 126706, '\P{^Script_Extensions=arabic}', "");
+    Expect(1, 126705, '\p{Script_Extensions:arabic}', "");
+    Expect(0, 126705, '\p{^Script_Extensions:arabic}', "");
+    Expect(0, 126705, '\P{Script_Extensions:arabic}', "");
+    Expect(1, 126705, '\P{^Script_Extensions:arabic}', "");
+    Expect(0, 126706, '\p{Script_Extensions:arabic}', "");
+    Expect(1, 126706, '\p{^Script_Extensions:arabic}', "");
+    Expect(1, 126706, '\P{Script_Extensions:arabic}', "");
+    Expect(0, 126706, '\P{^Script_Extensions:arabic}', "");
     Expect(1, 126705, '\p{Script_Extensions=:\Aarabic\z:}', "");;
     Expect(0, 126706, '\p{Script_Extensions=:\Aarabic\z:}', "");;
-    Expect(1, 126705, '\p{Script_Extensions= ARABIC}', "");
-    Expect(0, 126705, '\p{^Script_Extensions= ARABIC}', "");
-    Expect(0, 126705, '\P{Script_Extensions= ARABIC}', "");
-    Expect(1, 126705, '\P{^Script_Extensions= ARABIC}', "");
-    Expect(0, 126706, '\p{Script_Extensions= ARABIC}', "");
-    Expect(1, 126706, '\p{^Script_Extensions= ARABIC}', "");
-    Expect(1, 126706, '\P{Script_Extensions= ARABIC}', "");
-    Expect(0, 126706, '\P{^Script_Extensions= ARABIC}', "");
-    Error('\p{Scx=:=-arab}');
-    Error('\P{Scx=:=-arab}');
+    Expect(1, 126705, '\p{Script_Extensions:  _Arabic}', "");
+    Expect(0, 126705, '\p{^Script_Extensions:  _Arabic}', "");
+    Expect(0, 126705, '\P{Script_Extensions:  _Arabic}', "");
+    Expect(1, 126705, '\P{^Script_Extensions:  _Arabic}', "");
+    Expect(0, 126706, '\p{Script_Extensions:  _Arabic}', "");
+    Expect(1, 126706, '\p{^Script_Extensions:  _Arabic}', "");
+    Expect(1, 126706, '\P{Script_Extensions:  _Arabic}', "");
+    Expect(0, 126706, '\P{^Script_Extensions:  _Arabic}', "");
+    Error('\p{Scx=_:=ARAB}');
+    Error('\P{Scx=_:=ARAB}');
     Expect(1, 126705, '\p{Scx=:\AArab\z:}', "");;
     Expect(0, 126706, '\p{Scx=:\AArab\z:}', "");;
     Expect(1, 126705, '\p{Scx=arab}', "");
@@ -141691,16 +143019,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 126706, '\P{^Scx=arab}', "");
     Expect(1, 126705, '\p{Scx=:\Aarab\z:}', "");;
     Expect(0, 126706, '\p{Scx=:\Aarab\z:}', "");;
-    Expect(1, 126705, '\p{Scx=__Arab}', "");
-    Expect(0, 126705, '\p{^Scx=__Arab}', "");
-    Expect(0, 126705, '\P{Scx=__Arab}', "");
-    Expect(1, 126705, '\P{^Scx=__Arab}', "");
-    Expect(0, 126706, '\p{Scx=__Arab}', "");
-    Expect(1, 126706, '\p{^Scx=__Arab}', "");
-    Expect(1, 126706, '\P{Scx=__Arab}', "");
-    Expect(0, 126706, '\P{^Scx=__Arab}', "");
-    Error('\p{Is_Script_Extensions=/a/arabic}');
-    Error('\P{Is_Script_Extensions=/a/arabic}');
+    Expect(1, 126705, '\p{Scx=-	ARAB}', "");
+    Expect(0, 126705, '\p{^Scx=-	ARAB}', "");
+    Expect(0, 126705, '\P{Scx=-	ARAB}', "");
+    Expect(1, 126705, '\P{^Scx=-	ARAB}', "");
+    Expect(0, 126706, '\p{Scx=-	ARAB}', "");
+    Expect(1, 126706, '\p{^Scx=-	ARAB}', "");
+    Expect(1, 126706, '\P{Scx=-	ARAB}', "");
+    Expect(0, 126706, '\P{^Scx=-	ARAB}', "");
+    Error('\p{Is_Script_Extensions=_-Arabic:=}');
+    Error('\P{Is_Script_Extensions=_-Arabic:=}');
     Expect(1, 126705, '\p{Is_Script_Extensions=arabic}', "");
     Expect(0, 126705, '\p{^Is_Script_Extensions=arabic}', "");
     Expect(0, 126705, '\P{Is_Script_Extensions=arabic}', "");
@@ -141709,16 +143037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 126706, '\p{^Is_Script_Extensions=arabic}', "");
     Expect(1, 126706, '\P{Is_Script_Extensions=arabic}', "");
     Expect(0, 126706, '\P{^Is_Script_Extensions=arabic}', "");
-    Expect(1, 126705, '\p{Is_Script_Extensions=ARABIC}', "");
-    Expect(0, 126705, '\p{^Is_Script_Extensions=ARABIC}', "");
-    Expect(0, 126705, '\P{Is_Script_Extensions=ARABIC}', "");
-    Expect(1, 126705, '\P{^Is_Script_Extensions=ARABIC}', "");
-    Expect(0, 126706, '\p{Is_Script_Extensions=ARABIC}', "");
-    Expect(1, 126706, '\p{^Is_Script_Extensions=ARABIC}', "");
-    Expect(1, 126706, '\P{Is_Script_Extensions=ARABIC}', "");
-    Expect(0, 126706, '\P{^Is_Script_Extensions=ARABIC}', "");
-    Error('\p{Is_Scx:	:=  arab}');
-    Error('\P{Is_Scx:	:=  arab}');
+    Expect(1, 126705, '\p{Is_Script_Extensions=-Arabic}', "");
+    Expect(0, 126705, '\p{^Is_Script_Extensions=-Arabic}', "");
+    Expect(0, 126705, '\P{Is_Script_Extensions=-Arabic}', "");
+    Expect(1, 126705, '\P{^Is_Script_Extensions=-Arabic}', "");
+    Expect(0, 126706, '\p{Is_Script_Extensions=-Arabic}', "");
+    Expect(1, 126706, '\p{^Is_Script_Extensions=-Arabic}', "");
+    Expect(1, 126706, '\P{Is_Script_Extensions=-Arabic}', "");
+    Expect(0, 126706, '\P{^Is_Script_Extensions=-Arabic}', "");
+    Error('\p{Is_Scx= /a/ARAB}');
+    Error('\P{Is_Scx= /a/ARAB}');
     Expect(1, 126705, '\p{Is_Scx=arab}', "");
     Expect(0, 126705, '\p{^Is_Scx=arab}', "");
     Expect(0, 126705, '\P{Is_Scx=arab}', "");
@@ -141727,16 +143055,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 126706, '\p{^Is_Scx=arab}', "");
     Expect(1, 126706, '\P{Is_Scx=arab}', "");
     Expect(0, 126706, '\P{^Is_Scx=arab}', "");
-    Expect(1, 126705, '\p{Is_Scx=--ARAB}', "");
-    Expect(0, 126705, '\p{^Is_Scx=--ARAB}', "");
-    Expect(0, 126705, '\P{Is_Scx=--ARAB}', "");
-    Expect(1, 126705, '\P{^Is_Scx=--ARAB}', "");
-    Expect(0, 126706, '\p{Is_Scx=--ARAB}', "");
-    Expect(1, 126706, '\p{^Is_Scx=--ARAB}', "");
-    Expect(1, 126706, '\P{Is_Scx=--ARAB}', "");
-    Expect(0, 126706, '\P{^Is_Scx=--ARAB}', "");
-    Error('\p{Script_Extensions=-:=IMPERIAL_aramaic}');
-    Error('\P{Script_Extensions=-:=IMPERIAL_aramaic}');
+    Expect(1, 126705, '\p{Is_Scx=  ARAB}', "");
+    Expect(0, 126705, '\p{^Is_Scx=  ARAB}', "");
+    Expect(0, 126705, '\P{Is_Scx=  ARAB}', "");
+    Expect(1, 126705, '\P{^Is_Scx=  ARAB}', "");
+    Expect(0, 126706, '\p{Is_Scx=  ARAB}', "");
+    Expect(1, 126706, '\p{^Is_Scx=  ARAB}', "");
+    Expect(1, 126706, '\P{Is_Scx=  ARAB}', "");
+    Expect(0, 126706, '\P{^Is_Scx=  ARAB}', "");
+    Error('\p{Script_Extensions=_/a/IMPERIAL_Aramaic}');
+    Error('\P{Script_Extensions=_/a/IMPERIAL_Aramaic}');
     Expect(1, 67679, '\p{Script_Extensions=:\AImperial_Aramaic\z:}', "");;
     Expect(0, 67680, '\p{Script_Extensions=:\AImperial_Aramaic\z:}', "");;
     Expect(1, 67679, '\p{Script_Extensions=imperialaramaic}', "");
@@ -141749,16 +143077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67680, '\P{^Script_Extensions=imperialaramaic}', "");
     Expect(1, 67679, '\p{Script_Extensions=:\Aimperialaramaic\z:}', "");;
     Expect(0, 67680, '\p{Script_Extensions=:\Aimperialaramaic\z:}', "");;
-    Expect(1, 67679, '\p{Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(0, 67679, '\p{^Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(0, 67679, '\P{Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(1, 67679, '\P{^Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(0, 67680, '\p{Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(1, 67680, '\p{^Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(1, 67680, '\P{Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Expect(0, 67680, '\P{^Script_Extensions:	-_IMPERIAL_Aramaic}', "");
-    Error('\p{Scx=/a/	_armi}');
-    Error('\P{Scx=/a/	_armi}');
+    Expect(1, 67679, '\p{Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(0, 67679, '\p{^Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(0, 67679, '\P{Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(1, 67679, '\P{^Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(0, 67680, '\p{Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(1, 67680, '\p{^Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(1, 67680, '\P{Script_Extensions=_Imperial_ARAMAIC}', "");
+    Expect(0, 67680, '\P{^Script_Extensions=_Imperial_ARAMAIC}', "");
+    Error('\p{Scx=:=	 Armi}');
+    Error('\P{Scx=:=	 Armi}');
     Expect(1, 67679, '\p{Scx=:\AArmi\z:}', "");;
     Expect(0, 67680, '\p{Scx=:\AArmi\z:}', "");;
     Expect(1, 67679, '\p{Scx=armi}', "");
@@ -141771,16 +143099,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67680, '\P{^Scx=armi}', "");
     Expect(1, 67679, '\p{Scx=:\Aarmi\z:}', "");;
     Expect(0, 67680, '\p{Scx=:\Aarmi\z:}', "");;
-    Expect(1, 67679, '\p{Scx=--armi}', "");
-    Expect(0, 67679, '\p{^Scx=--armi}', "");
-    Expect(0, 67679, '\P{Scx=--armi}', "");
-    Expect(1, 67679, '\P{^Scx=--armi}', "");
-    Expect(0, 67680, '\p{Scx=--armi}', "");
-    Expect(1, 67680, '\p{^Scx=--armi}', "");
-    Expect(1, 67680, '\P{Scx=--armi}', "");
-    Expect(0, 67680, '\P{^Scx=--armi}', "");
-    Error('\p{Is_Script_Extensions=:=__Imperial_Aramaic}');
-    Error('\P{Is_Script_Extensions=:=__Imperial_Aramaic}');
+    Expect(1, 67679, '\p{Scx=_-ARMI}', "");
+    Expect(0, 67679, '\p{^Scx=_-ARMI}', "");
+    Expect(0, 67679, '\P{Scx=_-ARMI}', "");
+    Expect(1, 67679, '\P{^Scx=_-ARMI}', "");
+    Expect(0, 67680, '\p{Scx=_-ARMI}', "");
+    Expect(1, 67680, '\p{^Scx=_-ARMI}', "");
+    Expect(1, 67680, '\P{Scx=_-ARMI}', "");
+    Expect(0, 67680, '\P{^Scx=_-ARMI}', "");
+    Error('\p{Is_Script_Extensions=_/a/imperial_Aramaic}');
+    Error('\P{Is_Script_Extensions=_/a/imperial_Aramaic}');
     Expect(1, 67679, '\p{Is_Script_Extensions=imperialaramaic}', "");
     Expect(0, 67679, '\p{^Is_Script_Extensions=imperialaramaic}', "");
     Expect(0, 67679, '\P{Is_Script_Extensions=imperialaramaic}', "");
@@ -141789,16 +143117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67680, '\p{^Is_Script_Extensions=imperialaramaic}', "");
     Expect(1, 67680, '\P{Is_Script_Extensions=imperialaramaic}', "");
     Expect(0, 67680, '\P{^Is_Script_Extensions=imperialaramaic}', "");
-    Expect(1, 67679, '\p{Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(0, 67679, '\p{^Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(0, 67679, '\P{Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(1, 67679, '\P{^Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(0, 67680, '\p{Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(1, 67680, '\p{^Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(1, 67680, '\P{Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Expect(0, 67680, '\P{^Is_Script_Extensions=-_Imperial_aramaic}', "");
-    Error('\p{Is_Scx=:=		ARMI}');
-    Error('\P{Is_Scx=:=		ARMI}');
+    Expect(1, 67679, '\p{Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(0, 67679, '\p{^Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(0, 67679, '\P{Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(1, 67679, '\P{^Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(0, 67680, '\p{Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(1, 67680, '\p{^Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(1, 67680, '\P{Is_Script_Extensions=__imperial_aramaic}', "");
+    Expect(0, 67680, '\P{^Is_Script_Extensions=__imperial_aramaic}', "");
+    Error('\p{Is_Scx=-Armi:=}');
+    Error('\P{Is_Scx=-Armi:=}');
     Expect(1, 67679, '\p{Is_Scx=armi}', "");
     Expect(0, 67679, '\p{^Is_Scx=armi}', "");
     Expect(0, 67679, '\P{Is_Scx=armi}', "");
@@ -141807,16 +143135,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67680, '\p{^Is_Scx=armi}', "");
     Expect(1, 67680, '\P{Is_Scx=armi}', "");
     Expect(0, 67680, '\P{^Is_Scx=armi}', "");
-    Expect(1, 67679, '\p{Is_Scx:_ARMI}', "");
-    Expect(0, 67679, '\p{^Is_Scx:_ARMI}', "");
-    Expect(0, 67679, '\P{Is_Scx:_ARMI}', "");
-    Expect(1, 67679, '\P{^Is_Scx:_ARMI}', "");
-    Expect(0, 67680, '\p{Is_Scx:_ARMI}', "");
-    Expect(1, 67680, '\p{^Is_Scx:_ARMI}', "");
-    Expect(1, 67680, '\P{Is_Scx:_ARMI}', "");
-    Expect(0, 67680, '\P{^Is_Scx:_ARMI}', "");
-    Error('\p{Script_Extensions=/a/Armenian}');
-    Error('\P{Script_Extensions=/a/Armenian}');
+    Expect(1, 67679, '\p{Is_Scx= Armi}', "");
+    Expect(0, 67679, '\p{^Is_Scx= Armi}', "");
+    Expect(0, 67679, '\P{Is_Scx= Armi}', "");
+    Expect(1, 67679, '\P{^Is_Scx= Armi}', "");
+    Expect(0, 67680, '\p{Is_Scx= Armi}', "");
+    Expect(1, 67680, '\p{^Is_Scx= Armi}', "");
+    Expect(1, 67680, '\P{Is_Scx= Armi}', "");
+    Expect(0, 67680, '\P{^Is_Scx= Armi}', "");
+    Error('\p{Script_Extensions=/a/-Armenian}');
+    Error('\P{Script_Extensions=/a/-Armenian}');
     Expect(1, 64279, '\p{Script_Extensions=:\AArmenian\z:}', "");;
     Expect(0, 64280, '\p{Script_Extensions=:\AArmenian\z:}', "");;
     Expect(1, 64279, '\p{Script_Extensions=armenian}', "");
@@ -141829,16 +143157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64280, '\P{^Script_Extensions=armenian}', "");
     Expect(1, 64279, '\p{Script_Extensions=:\Aarmenian\z:}', "");;
     Expect(0, 64280, '\p{Script_Extensions=:\Aarmenian\z:}', "");;
-    Expect(1, 64279, '\p{Script_Extensions=--armenian}', "");
-    Expect(0, 64279, '\p{^Script_Extensions=--armenian}', "");
-    Expect(0, 64279, '\P{Script_Extensions=--armenian}', "");
-    Expect(1, 64279, '\P{^Script_Extensions=--armenian}', "");
-    Expect(0, 64280, '\p{Script_Extensions=--armenian}', "");
-    Expect(1, 64280, '\p{^Script_Extensions=--armenian}', "");
-    Expect(1, 64280, '\P{Script_Extensions=--armenian}', "");
-    Expect(0, 64280, '\P{^Script_Extensions=--armenian}', "");
-    Error('\p{Scx=:=--Armn}');
-    Error('\P{Scx=:=--Armn}');
+    Expect(1, 64279, '\p{Script_Extensions=__armenian}', "");
+    Expect(0, 64279, '\p{^Script_Extensions=__armenian}', "");
+    Expect(0, 64279, '\P{Script_Extensions=__armenian}', "");
+    Expect(1, 64279, '\P{^Script_Extensions=__armenian}', "");
+    Expect(0, 64280, '\p{Script_Extensions=__armenian}', "");
+    Expect(1, 64280, '\p{^Script_Extensions=__armenian}', "");
+    Expect(1, 64280, '\P{Script_Extensions=__armenian}', "");
+    Expect(0, 64280, '\P{^Script_Extensions=__armenian}', "");
+    Error('\p{Scx=:=_ armn}');
+    Error('\P{Scx=:=_ armn}');
     Expect(1, 64279, '\p{Scx=:\AArmn\z:}', "");;
     Expect(0, 64280, '\p{Scx=:\AArmn\z:}', "");;
     Expect(1, 64279, '\p{Scx=armn}', "");
@@ -141851,34 +143179,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64280, '\P{^Scx=armn}', "");
     Expect(1, 64279, '\p{Scx=:\Aarmn\z:}', "");;
     Expect(0, 64280, '\p{Scx=:\Aarmn\z:}', "");;
-    Expect(1, 64279, '\p{Scx=  ARMN}', "");
-    Expect(0, 64279, '\p{^Scx=  ARMN}', "");
-    Expect(0, 64279, '\P{Scx=  ARMN}', "");
-    Expect(1, 64279, '\P{^Scx=  ARMN}', "");
-    Expect(0, 64280, '\p{Scx=  ARMN}', "");
-    Expect(1, 64280, '\p{^Scx=  ARMN}', "");
-    Expect(1, 64280, '\P{Scx=  ARMN}', "");
-    Expect(0, 64280, '\P{^Scx=  ARMN}', "");
-    Error('\p{Is_Script_Extensions= -Armenian:=}');
-    Error('\P{Is_Script_Extensions= -Armenian:=}');
-    Expect(1, 64279, '\p{Is_Script_Extensions=armenian}', "");
-    Expect(0, 64279, '\p{^Is_Script_Extensions=armenian}', "");
-    Expect(0, 64279, '\P{Is_Script_Extensions=armenian}', "");
-    Expect(1, 64279, '\P{^Is_Script_Extensions=armenian}', "");
-    Expect(0, 64280, '\p{Is_Script_Extensions=armenian}', "");
-    Expect(1, 64280, '\p{^Is_Script_Extensions=armenian}', "");
-    Expect(1, 64280, '\P{Is_Script_Extensions=armenian}', "");
-    Expect(0, 64280, '\P{^Is_Script_Extensions=armenian}', "");
-    Expect(1, 64279, '\p{Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(0, 64279, '\p{^Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(0, 64279, '\P{Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(1, 64279, '\P{^Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(0, 64280, '\p{Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(1, 64280, '\p{^Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(1, 64280, '\P{Is_Script_Extensions= _ARMENIAN}', "");
-    Expect(0, 64280, '\P{^Is_Script_Extensions= _ARMENIAN}', "");
-    Error('\p{Is_Scx=-:=Armn}');
-    Error('\P{Is_Scx=-:=Armn}');
+    Expect(1, 64279, '\p{Scx: 	 armn}', "");
+    Expect(0, 64279, '\p{^Scx: 	 armn}', "");
+    Expect(0, 64279, '\P{Scx: 	 armn}', "");
+    Expect(1, 64279, '\P{^Scx: 	 armn}', "");
+    Expect(0, 64280, '\p{Scx: 	 armn}', "");
+    Expect(1, 64280, '\p{^Scx: 	 armn}', "");
+    Expect(1, 64280, '\P{Scx: 	 armn}', "");
+    Expect(0, 64280, '\P{^Scx: 	 armn}', "");
+    Error('\p{Is_Script_Extensions=_:=Armenian}');
+    Error('\P{Is_Script_Extensions=_:=Armenian}');
+    Expect(1, 64279, '\p{Is_Script_Extensions:	armenian}', "");
+    Expect(0, 64279, '\p{^Is_Script_Extensions:	armenian}', "");
+    Expect(0, 64279, '\P{Is_Script_Extensions:	armenian}', "");
+    Expect(1, 64279, '\P{^Is_Script_Extensions:	armenian}', "");
+    Expect(0, 64280, '\p{Is_Script_Extensions:	armenian}', "");
+    Expect(1, 64280, '\p{^Is_Script_Extensions:	armenian}', "");
+    Expect(1, 64280, '\P{Is_Script_Extensions:	armenian}', "");
+    Expect(0, 64280, '\P{^Is_Script_Extensions:	armenian}', "");
+    Expect(1, 64279, '\p{Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(0, 64279, '\p{^Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(0, 64279, '\P{Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(1, 64279, '\P{^Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(0, 64280, '\p{Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(1, 64280, '\p{^Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(1, 64280, '\P{Is_Script_Extensions=_	ARMENIAN}', "");
+    Expect(0, 64280, '\P{^Is_Script_Extensions=_	ARMENIAN}', "");
+    Error('\p{Is_Scx:	_armn/a/}');
+    Error('\P{Is_Scx:	_armn/a/}');
     Expect(1, 64279, '\p{Is_Scx=armn}', "");
     Expect(0, 64279, '\p{^Is_Scx=armn}', "");
     Expect(0, 64279, '\P{Is_Scx=armn}', "");
@@ -141887,16 +143215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64280, '\p{^Is_Scx=armn}', "");
     Expect(1, 64280, '\P{Is_Scx=armn}', "");
     Expect(0, 64280, '\P{^Is_Scx=armn}', "");
-    Expect(1, 64279, '\p{Is_Scx=_armn}', "");
-    Expect(0, 64279, '\p{^Is_Scx=_armn}', "");
-    Expect(0, 64279, '\P{Is_Scx=_armn}', "");
-    Expect(1, 64279, '\P{^Is_Scx=_armn}', "");
-    Expect(0, 64280, '\p{Is_Scx=_armn}', "");
-    Expect(1, 64280, '\p{^Is_Scx=_armn}', "");
-    Expect(1, 64280, '\P{Is_Scx=_armn}', "");
-    Expect(0, 64280, '\P{^Is_Scx=_armn}', "");
-    Error('\p{Script_Extensions=	Avestan/a/}');
-    Error('\P{Script_Extensions=	Avestan/a/}');
+    Expect(1, 64279, '\p{Is_Scx=__ARMN}', "");
+    Expect(0, 64279, '\p{^Is_Scx=__ARMN}', "");
+    Expect(0, 64279, '\P{Is_Scx=__ARMN}', "");
+    Expect(1, 64279, '\P{^Is_Scx=__ARMN}', "");
+    Expect(0, 64280, '\p{Is_Scx=__ARMN}', "");
+    Expect(1, 64280, '\p{^Is_Scx=__ARMN}', "");
+    Expect(1, 64280, '\P{Is_Scx=__ARMN}', "");
+    Expect(0, 64280, '\P{^Is_Scx=__ARMN}', "");
+    Error('\p{Script_Extensions= 	avestan:=}');
+    Error('\P{Script_Extensions= 	avestan:=}');
     Expect(1, 68415, '\p{Script_Extensions=:\AAvestan\z:}', "");;
     Expect(0, 68416, '\p{Script_Extensions=:\AAvestan\z:}', "");;
     Expect(1, 68415, '\p{Script_Extensions=avestan}', "");
@@ -141909,16 +143237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68416, '\P{^Script_Extensions=avestan}', "");
     Expect(1, 68415, '\p{Script_Extensions=:\Aavestan\z:}', "");;
     Expect(0, 68416, '\p{Script_Extensions=:\Aavestan\z:}', "");;
-    Expect(1, 68415, '\p{Script_Extensions=-Avestan}', "");
-    Expect(0, 68415, '\p{^Script_Extensions=-Avestan}', "");
-    Expect(0, 68415, '\P{Script_Extensions=-Avestan}', "");
-    Expect(1, 68415, '\P{^Script_Extensions=-Avestan}', "");
-    Expect(0, 68416, '\p{Script_Extensions=-Avestan}', "");
-    Expect(1, 68416, '\p{^Script_Extensions=-Avestan}', "");
-    Expect(1, 68416, '\P{Script_Extensions=-Avestan}', "");
-    Expect(0, 68416, '\P{^Script_Extensions=-Avestan}', "");
-    Error('\p{Scx=-:=Avst}');
-    Error('\P{Scx=-:=Avst}');
+    Expect(1, 68415, '\p{Script_Extensions:-avestan}', "");
+    Expect(0, 68415, '\p{^Script_Extensions:-avestan}', "");
+    Expect(0, 68415, '\P{Script_Extensions:-avestan}', "");
+    Expect(1, 68415, '\P{^Script_Extensions:-avestan}', "");
+    Expect(0, 68416, '\p{Script_Extensions:-avestan}', "");
+    Expect(1, 68416, '\p{^Script_Extensions:-avestan}', "");
+    Expect(1, 68416, '\P{Script_Extensions:-avestan}', "");
+    Expect(0, 68416, '\P{^Script_Extensions:-avestan}', "");
+    Error('\p{Scx=/a/_Avst}');
+    Error('\P{Scx=/a/_Avst}');
     Expect(1, 68415, '\p{Scx=:\AAvst\z:}', "");;
     Expect(0, 68416, '\p{Scx=:\AAvst\z:}', "");;
     Expect(1, 68415, '\p{Scx=avst}', "");
@@ -141931,34 +143259,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68416, '\P{^Scx=avst}', "");
     Expect(1, 68415, '\p{Scx=:\Aavst\z:}', "");;
     Expect(0, 68416, '\p{Scx=:\Aavst\z:}', "");;
-    Expect(1, 68415, '\p{Scx= _AVST}', "");
-    Expect(0, 68415, '\p{^Scx= _AVST}', "");
-    Expect(0, 68415, '\P{Scx= _AVST}', "");
-    Expect(1, 68415, '\P{^Scx= _AVST}', "");
-    Expect(0, 68416, '\p{Scx= _AVST}', "");
-    Expect(1, 68416, '\p{^Scx= _AVST}', "");
-    Expect(1, 68416, '\P{Scx= _AVST}', "");
-    Expect(0, 68416, '\P{^Scx= _AVST}', "");
-    Error('\p{Is_Script_Extensions=-/a/Avestan}');
-    Error('\P{Is_Script_Extensions=-/a/Avestan}');
-    Expect(1, 68415, '\p{Is_Script_Extensions=avestan}', "");
-    Expect(0, 68415, '\p{^Is_Script_Extensions=avestan}', "");
-    Expect(0, 68415, '\P{Is_Script_Extensions=avestan}', "");
-    Expect(1, 68415, '\P{^Is_Script_Extensions=avestan}', "");
-    Expect(0, 68416, '\p{Is_Script_Extensions=avestan}', "");
-    Expect(1, 68416, '\p{^Is_Script_Extensions=avestan}', "");
-    Expect(1, 68416, '\P{Is_Script_Extensions=avestan}', "");
-    Expect(0, 68416, '\P{^Is_Script_Extensions=avestan}', "");
-    Expect(1, 68415, '\p{Is_Script_Extensions: - Avestan}', "");
-    Expect(0, 68415, '\p{^Is_Script_Extensions: - Avestan}', "");
-    Expect(0, 68415, '\P{Is_Script_Extensions: - Avestan}', "");
-    Expect(1, 68415, '\P{^Is_Script_Extensions: - Avestan}', "");
-    Expect(0, 68416, '\p{Is_Script_Extensions: - Avestan}', "");
-    Expect(1, 68416, '\p{^Is_Script_Extensions: - Avestan}', "");
-    Expect(1, 68416, '\P{Is_Script_Extensions: - Avestan}', "");
-    Expect(0, 68416, '\P{^Is_Script_Extensions: - Avestan}', "");
-    Error('\p{Is_Scx=	:=Avst}');
-    Error('\P{Is_Scx=	:=Avst}');
+    Expect(1, 68415, '\p{Scx=_ Avst}', "");
+    Expect(0, 68415, '\p{^Scx=_ Avst}', "");
+    Expect(0, 68415, '\P{Scx=_ Avst}', "");
+    Expect(1, 68415, '\P{^Scx=_ Avst}', "");
+    Expect(0, 68416, '\p{Scx=_ Avst}', "");
+    Expect(1, 68416, '\p{^Scx=_ Avst}', "");
+    Expect(1, 68416, '\P{Scx=_ Avst}', "");
+    Expect(0, 68416, '\P{^Scx=_ Avst}', "");
+    Error('\p{Is_Script_Extensions= /a/avestan}');
+    Error('\P{Is_Script_Extensions= /a/avestan}');
+    Expect(1, 68415, '\p{Is_Script_Extensions:	avestan}', "");
+    Expect(0, 68415, '\p{^Is_Script_Extensions:	avestan}', "");
+    Expect(0, 68415, '\P{Is_Script_Extensions:	avestan}', "");
+    Expect(1, 68415, '\P{^Is_Script_Extensions:	avestan}', "");
+    Expect(0, 68416, '\p{Is_Script_Extensions:	avestan}', "");
+    Expect(1, 68416, '\p{^Is_Script_Extensions:	avestan}', "");
+    Expect(1, 68416, '\P{Is_Script_Extensions:	avestan}', "");
+    Expect(0, 68416, '\P{^Is_Script_Extensions:	avestan}', "");
+    Expect(1, 68415, '\p{Is_Script_Extensions= -Avestan}', "");
+    Expect(0, 68415, '\p{^Is_Script_Extensions= -Avestan}', "");
+    Expect(0, 68415, '\P{Is_Script_Extensions= -Avestan}', "");
+    Expect(1, 68415, '\P{^Is_Script_Extensions= -Avestan}', "");
+    Expect(0, 68416, '\p{Is_Script_Extensions= -Avestan}', "");
+    Expect(1, 68416, '\p{^Is_Script_Extensions= -Avestan}', "");
+    Expect(1, 68416, '\P{Is_Script_Extensions= -Avestan}', "");
+    Expect(0, 68416, '\P{^Is_Script_Extensions= -Avestan}', "");
+    Error('\p{Is_Scx=-	avst:=}');
+    Error('\P{Is_Scx=-	avst:=}');
     Expect(1, 68415, '\p{Is_Scx=avst}', "");
     Expect(0, 68415, '\p{^Is_Scx=avst}', "");
     Expect(0, 68415, '\P{Is_Scx=avst}', "");
@@ -141967,38 +143295,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68416, '\p{^Is_Scx=avst}', "");
     Expect(1, 68416, '\P{Is_Scx=avst}', "");
     Expect(0, 68416, '\P{^Is_Scx=avst}', "");
-    Expect(1, 68415, '\p{Is_Scx=	 AVST}', "");
-    Expect(0, 68415, '\p{^Is_Scx=	 AVST}', "");
-    Expect(0, 68415, '\P{Is_Scx=	 AVST}', "");
-    Expect(1, 68415, '\P{^Is_Scx=	 AVST}', "");
-    Expect(0, 68416, '\p{Is_Scx=	 AVST}', "");
-    Expect(1, 68416, '\p{^Is_Scx=	 AVST}', "");
-    Expect(1, 68416, '\P{Is_Scx=	 AVST}', "");
-    Expect(0, 68416, '\P{^Is_Scx=	 AVST}', "");
-    Error('\p{Script_Extensions=:= _BALINESE}');
-    Error('\P{Script_Extensions=:= _BALINESE}');
+    Expect(1, 68415, '\p{Is_Scx=-_Avst}', "");
+    Expect(0, 68415, '\p{^Is_Scx=-_Avst}', "");
+    Expect(0, 68415, '\P{Is_Scx=-_Avst}', "");
+    Expect(1, 68415, '\P{^Is_Scx=-_Avst}', "");
+    Expect(0, 68416, '\p{Is_Scx=-_Avst}', "");
+    Expect(1, 68416, '\p{^Is_Scx=-_Avst}', "");
+    Expect(1, 68416, '\P{Is_Scx=-_Avst}', "");
+    Expect(0, 68416, '\P{^Is_Scx=-_Avst}', "");
+    Error('\p{Script_Extensions=-BALINESE/a/}');
+    Error('\P{Script_Extensions=-BALINESE/a/}');
     Expect(1, 7038, '\p{Script_Extensions=:\ABalinese\z:}', "");;
     Expect(0, 7039, '\p{Script_Extensions=:\ABalinese\z:}', "");;
-    Expect(1, 7038, '\p{Script_Extensions=balinese}', "");
-    Expect(0, 7038, '\p{^Script_Extensions=balinese}', "");
-    Expect(0, 7038, '\P{Script_Extensions=balinese}', "");
-    Expect(1, 7038, '\P{^Script_Extensions=balinese}', "");
-    Expect(0, 7039, '\p{Script_Extensions=balinese}', "");
-    Expect(1, 7039, '\p{^Script_Extensions=balinese}', "");
-    Expect(1, 7039, '\P{Script_Extensions=balinese}', "");
-    Expect(0, 7039, '\P{^Script_Extensions=balinese}', "");
+    Expect(1, 7038, '\p{Script_Extensions:	balinese}', "");
+    Expect(0, 7038, '\p{^Script_Extensions:	balinese}', "");
+    Expect(0, 7038, '\P{Script_Extensions:	balinese}', "");
+    Expect(1, 7038, '\P{^Script_Extensions:	balinese}', "");
+    Expect(0, 7039, '\p{Script_Extensions:	balinese}', "");
+    Expect(1, 7039, '\p{^Script_Extensions:	balinese}', "");
+    Expect(1, 7039, '\P{Script_Extensions:	balinese}', "");
+    Expect(0, 7039, '\P{^Script_Extensions:	balinese}', "");
     Expect(1, 7038, '\p{Script_Extensions=:\Abalinese\z:}', "");;
     Expect(0, 7039, '\p{Script_Extensions=:\Abalinese\z:}', "");;
-    Expect(1, 7038, '\p{Script_Extensions=-BALINESE}', "");
-    Expect(0, 7038, '\p{^Script_Extensions=-BALINESE}', "");
-    Expect(0, 7038, '\P{Script_Extensions=-BALINESE}', "");
-    Expect(1, 7038, '\P{^Script_Extensions=-BALINESE}', "");
-    Expect(0, 7039, '\p{Script_Extensions=-BALINESE}', "");
-    Expect(1, 7039, '\p{^Script_Extensions=-BALINESE}', "");
-    Expect(1, 7039, '\P{Script_Extensions=-BALINESE}', "");
-    Expect(0, 7039, '\P{^Script_Extensions=-BALINESE}', "");
-    Error('\p{Scx=	:=Bali}');
-    Error('\P{Scx=	:=Bali}');
+    Expect(1, 7038, '\p{Script_Extensions=- Balinese}', "");
+    Expect(0, 7038, '\p{^Script_Extensions=- Balinese}', "");
+    Expect(0, 7038, '\P{Script_Extensions=- Balinese}', "");
+    Expect(1, 7038, '\P{^Script_Extensions=- Balinese}', "");
+    Expect(0, 7039, '\p{Script_Extensions=- Balinese}', "");
+    Expect(1, 7039, '\p{^Script_Extensions=- Balinese}', "");
+    Expect(1, 7039, '\P{Script_Extensions=- Balinese}', "");
+    Expect(0, 7039, '\P{^Script_Extensions=- Balinese}', "");
+    Error('\p{Scx=/a/_-BALI}');
+    Error('\P{Scx=/a/_-BALI}');
     Expect(1, 7038, '\p{Scx=:\ABali\z:}', "");;
     Expect(0, 7039, '\p{Scx=:\ABali\z:}', "");;
     Expect(1, 7038, '\p{Scx=bali}', "");
@@ -142011,16 +143339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7039, '\P{^Scx=bali}', "");
     Expect(1, 7038, '\p{Scx=:\Abali\z:}', "");;
     Expect(0, 7039, '\p{Scx=:\Abali\z:}', "");;
-    Expect(1, 7038, '\p{Scx=-bali}', "");
-    Expect(0, 7038, '\p{^Scx=-bali}', "");
-    Expect(0, 7038, '\P{Scx=-bali}', "");
-    Expect(1, 7038, '\P{^Scx=-bali}', "");
-    Expect(0, 7039, '\p{Scx=-bali}', "");
-    Expect(1, 7039, '\p{^Scx=-bali}', "");
-    Expect(1, 7039, '\P{Scx=-bali}', "");
-    Expect(0, 7039, '\P{^Scx=-bali}', "");
-    Error('\p{Is_Script_Extensions=_-Balinese:=}');
-    Error('\P{Is_Script_Extensions=_-Balinese:=}');
+    Expect(1, 7038, '\p{Scx: 		Bali}', "");
+    Expect(0, 7038, '\p{^Scx: 		Bali}', "");
+    Expect(0, 7038, '\P{Scx: 		Bali}', "");
+    Expect(1, 7038, '\P{^Scx: 		Bali}', "");
+    Expect(0, 7039, '\p{Scx: 		Bali}', "");
+    Expect(1, 7039, '\p{^Scx: 		Bali}', "");
+    Expect(1, 7039, '\P{Scx: 		Bali}', "");
+    Expect(0, 7039, '\P{^Scx: 		Bali}', "");
+    Error('\p{Is_Script_Extensions=/a/_	Balinese}');
+    Error('\P{Is_Script_Extensions=/a/_	Balinese}');
     Expect(1, 7038, '\p{Is_Script_Extensions=balinese}', "");
     Expect(0, 7038, '\p{^Is_Script_Extensions=balinese}', "");
     Expect(0, 7038, '\P{Is_Script_Extensions=balinese}', "");
@@ -142029,16 +143357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7039, '\p{^Is_Script_Extensions=balinese}', "");
     Expect(1, 7039, '\P{Is_Script_Extensions=balinese}', "");
     Expect(0, 7039, '\P{^Is_Script_Extensions=balinese}', "");
-    Expect(1, 7038, '\p{Is_Script_Extensions=  BALINESE}', "");
-    Expect(0, 7038, '\p{^Is_Script_Extensions=  BALINESE}', "");
-    Expect(0, 7038, '\P{Is_Script_Extensions=  BALINESE}', "");
-    Expect(1, 7038, '\P{^Is_Script_Extensions=  BALINESE}', "");
-    Expect(0, 7039, '\p{Is_Script_Extensions=  BALINESE}', "");
-    Expect(1, 7039, '\p{^Is_Script_Extensions=  BALINESE}', "");
-    Expect(1, 7039, '\P{Is_Script_Extensions=  BALINESE}', "");
-    Expect(0, 7039, '\P{^Is_Script_Extensions=  BALINESE}', "");
-    Error('\p{Is_Scx=		bali:=}');
-    Error('\P{Is_Scx=		bali:=}');
+    Expect(1, 7038, '\p{Is_Script_Extensions=_-BALINESE}', "");
+    Expect(0, 7038, '\p{^Is_Script_Extensions=_-BALINESE}', "");
+    Expect(0, 7038, '\P{Is_Script_Extensions=_-BALINESE}', "");
+    Expect(1, 7038, '\P{^Is_Script_Extensions=_-BALINESE}', "");
+    Expect(0, 7039, '\p{Is_Script_Extensions=_-BALINESE}', "");
+    Expect(1, 7039, '\p{^Is_Script_Extensions=_-BALINESE}', "");
+    Expect(1, 7039, '\P{Is_Script_Extensions=_-BALINESE}', "");
+    Expect(0, 7039, '\P{^Is_Script_Extensions=_-BALINESE}', "");
+    Error('\p{Is_Scx=:= Bali}');
+    Error('\P{Is_Scx=:= Bali}');
     Expect(1, 7038, '\p{Is_Scx=bali}', "");
     Expect(0, 7038, '\p{^Is_Scx=bali}', "");
     Expect(0, 7038, '\P{Is_Scx=bali}', "");
@@ -142047,16 +143375,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7039, '\p{^Is_Scx=bali}', "");
     Expect(1, 7039, '\P{Is_Scx=bali}', "");
     Expect(0, 7039, '\P{^Is_Scx=bali}', "");
-    Expect(1, 7038, '\p{Is_Scx=_	Bali}', "");
-    Expect(0, 7038, '\p{^Is_Scx=_	Bali}', "");
-    Expect(0, 7038, '\P{Is_Scx=_	Bali}', "");
-    Expect(1, 7038, '\P{^Is_Scx=_	Bali}', "");
-    Expect(0, 7039, '\p{Is_Scx=_	Bali}', "");
-    Expect(1, 7039, '\p{^Is_Scx=_	Bali}', "");
-    Expect(1, 7039, '\P{Is_Scx=_	Bali}', "");
-    Expect(0, 7039, '\P{^Is_Scx=_	Bali}', "");
-    Error('\p{Script_Extensions=:=- bamum}');
-    Error('\P{Script_Extensions=:=- bamum}');
+    Expect(1, 7038, '\p{Is_Scx=- bali}', "");
+    Expect(0, 7038, '\p{^Is_Scx=- bali}', "");
+    Expect(0, 7038, '\P{Is_Scx=- bali}', "");
+    Expect(1, 7038, '\P{^Is_Scx=- bali}', "");
+    Expect(0, 7039, '\p{Is_Scx=- bali}', "");
+    Expect(1, 7039, '\p{^Is_Scx=- bali}', "");
+    Expect(1, 7039, '\P{Is_Scx=- bali}', "");
+    Expect(0, 7039, '\P{^Is_Scx=- bali}', "");
+    Error('\p{Script_Extensions=/a/	 Bamum}');
+    Error('\P{Script_Extensions=/a/	 Bamum}');
     Expect(1, 92728, '\p{Script_Extensions=:\ABamum\z:}', "");;
     Expect(0, 92729, '\p{Script_Extensions=:\ABamum\z:}', "");;
     Expect(1, 92728, '\p{Script_Extensions=bamum}', "");
@@ -142069,16 +143397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92729, '\P{^Script_Extensions=bamum}', "");
     Expect(1, 92728, '\p{Script_Extensions=:\Abamum\z:}', "");;
     Expect(0, 92729, '\p{Script_Extensions=:\Abamum\z:}', "");;
-    Expect(1, 92728, '\p{Script_Extensions=__Bamum}', "");
-    Expect(0, 92728, '\p{^Script_Extensions=__Bamum}', "");
-    Expect(0, 92728, '\P{Script_Extensions=__Bamum}', "");
-    Expect(1, 92728, '\P{^Script_Extensions=__Bamum}', "");
-    Expect(0, 92729, '\p{Script_Extensions=__Bamum}', "");
-    Expect(1, 92729, '\p{^Script_Extensions=__Bamum}', "");
-    Expect(1, 92729, '\P{Script_Extensions=__Bamum}', "");
-    Expect(0, 92729, '\P{^Script_Extensions=__Bamum}', "");
-    Error('\p{Scx=:=	-Bamu}');
-    Error('\P{Scx=:=	-Bamu}');
+    Expect(1, 92728, '\p{Script_Extensions=_BAMUM}', "");
+    Expect(0, 92728, '\p{^Script_Extensions=_BAMUM}', "");
+    Expect(0, 92728, '\P{Script_Extensions=_BAMUM}', "");
+    Expect(1, 92728, '\P{^Script_Extensions=_BAMUM}', "");
+    Expect(0, 92729, '\p{Script_Extensions=_BAMUM}', "");
+    Expect(1, 92729, '\p{^Script_Extensions=_BAMUM}', "");
+    Expect(1, 92729, '\P{Script_Extensions=_BAMUM}', "");
+    Expect(0, 92729, '\P{^Script_Extensions=_BAMUM}', "");
+    Error('\p{Scx=:=Bamu}');
+    Error('\P{Scx=:=Bamu}');
     Expect(1, 92728, '\p{Scx=:\ABamu\z:}', "");;
     Expect(0, 92729, '\p{Scx=:\ABamu\z:}', "");;
     Expect(1, 92728, '\p{Scx=bamu}', "");
@@ -142091,16 +143419,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92729, '\P{^Scx=bamu}', "");
     Expect(1, 92728, '\p{Scx=:\Abamu\z:}', "");;
     Expect(0, 92729, '\p{Scx=:\Abamu\z:}', "");;
-    Expect(1, 92728, '\p{Scx=	Bamu}', "");
-    Expect(0, 92728, '\p{^Scx=	Bamu}', "");
-    Expect(0, 92728, '\P{Scx=	Bamu}', "");
-    Expect(1, 92728, '\P{^Scx=	Bamu}', "");
-    Expect(0, 92729, '\p{Scx=	Bamu}', "");
-    Expect(1, 92729, '\p{^Scx=	Bamu}', "");
-    Expect(1, 92729, '\P{Scx=	Bamu}', "");
-    Expect(0, 92729, '\P{^Scx=	Bamu}', "");
-    Error('\p{Is_Script_Extensions=_ Bamum:=}');
-    Error('\P{Is_Script_Extensions=_ Bamum:=}');
+    Expect(1, 92728, '\p{Scx= _bamu}', "");
+    Expect(0, 92728, '\p{^Scx= _bamu}', "");
+    Expect(0, 92728, '\P{Scx= _bamu}', "");
+    Expect(1, 92728, '\P{^Scx= _bamu}', "");
+    Expect(0, 92729, '\p{Scx= _bamu}', "");
+    Expect(1, 92729, '\p{^Scx= _bamu}', "");
+    Expect(1, 92729, '\P{Scx= _bamu}', "");
+    Expect(0, 92729, '\P{^Scx= _bamu}', "");
+    Error('\p{Is_Script_Extensions=/a/_Bamum}');
+    Error('\P{Is_Script_Extensions=/a/_Bamum}');
     Expect(1, 92728, '\p{Is_Script_Extensions=bamum}', "");
     Expect(0, 92728, '\p{^Is_Script_Extensions=bamum}', "");
     Expect(0, 92728, '\P{Is_Script_Extensions=bamum}', "");
@@ -142109,16 +143437,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92729, '\p{^Is_Script_Extensions=bamum}', "");
     Expect(1, 92729, '\P{Is_Script_Extensions=bamum}', "");
     Expect(0, 92729, '\P{^Is_Script_Extensions=bamum}', "");
-    Expect(1, 92728, '\p{Is_Script_Extensions=_Bamum}', "");
-    Expect(0, 92728, '\p{^Is_Script_Extensions=_Bamum}', "");
-    Expect(0, 92728, '\P{Is_Script_Extensions=_Bamum}', "");
-    Expect(1, 92728, '\P{^Is_Script_Extensions=_Bamum}', "");
-    Expect(0, 92729, '\p{Is_Script_Extensions=_Bamum}', "");
-    Expect(1, 92729, '\p{^Is_Script_Extensions=_Bamum}', "");
-    Expect(1, 92729, '\P{Is_Script_Extensions=_Bamum}', "");
-    Expect(0, 92729, '\P{^Is_Script_Extensions=_Bamum}', "");
-    Error('\p{Is_Scx= 	Bamu/a/}');
-    Error('\P{Is_Scx= 	Bamu/a/}');
+    Expect(1, 92728, '\p{Is_Script_Extensions=  bamum}', "");
+    Expect(0, 92728, '\p{^Is_Script_Extensions=  bamum}', "");
+    Expect(0, 92728, '\P{Is_Script_Extensions=  bamum}', "");
+    Expect(1, 92728, '\P{^Is_Script_Extensions=  bamum}', "");
+    Expect(0, 92729, '\p{Is_Script_Extensions=  bamum}', "");
+    Expect(1, 92729, '\p{^Is_Script_Extensions=  bamum}', "");
+    Expect(1, 92729, '\P{Is_Script_Extensions=  bamum}', "");
+    Expect(0, 92729, '\P{^Is_Script_Extensions=  bamum}', "");
+    Error('\p{Is_Scx=/a/	-bamu}');
+    Error('\P{Is_Scx=/a/	-bamu}');
     Expect(1, 92728, '\p{Is_Scx=bamu}', "");
     Expect(0, 92728, '\p{^Is_Scx=bamu}', "");
     Expect(0, 92728, '\P{Is_Scx=bamu}', "");
@@ -142127,16 +143455,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92729, '\p{^Is_Scx=bamu}', "");
     Expect(1, 92729, '\P{Is_Scx=bamu}', "");
     Expect(0, 92729, '\P{^Is_Scx=bamu}', "");
-    Expect(1, 92728, '\p{Is_Scx= _Bamu}', "");
-    Expect(0, 92728, '\p{^Is_Scx= _Bamu}', "");
-    Expect(0, 92728, '\P{Is_Scx= _Bamu}', "");
-    Expect(1, 92728, '\P{^Is_Scx= _Bamu}', "");
-    Expect(0, 92729, '\p{Is_Scx= _Bamu}', "");
-    Expect(1, 92729, '\p{^Is_Scx= _Bamu}', "");
-    Expect(1, 92729, '\P{Is_Scx= _Bamu}', "");
-    Expect(0, 92729, '\P{^Is_Scx= _Bamu}', "");
-    Error('\p{Script_Extensions=--BASSA_Vah:=}');
-    Error('\P{Script_Extensions=--BASSA_Vah:=}');
+    Expect(1, 92728, '\p{Is_Scx=Bamu}', "");
+    Expect(0, 92728, '\p{^Is_Scx=Bamu}', "");
+    Expect(0, 92728, '\P{Is_Scx=Bamu}', "");
+    Expect(1, 92728, '\P{^Is_Scx=Bamu}', "");
+    Expect(0, 92729, '\p{Is_Scx=Bamu}', "");
+    Expect(1, 92729, '\p{^Is_Scx=Bamu}', "");
+    Expect(1, 92729, '\P{Is_Scx=Bamu}', "");
+    Expect(0, 92729, '\P{^Is_Scx=Bamu}', "");
+    Error('\p{Script_Extensions=:=Bassa_Vah}');
+    Error('\P{Script_Extensions=:=Bassa_Vah}');
     Expect(1, 92917, '\p{Script_Extensions=:\ABassa_Vah\z:}', "");;
     Expect(0, 92918, '\p{Script_Extensions=:\ABassa_Vah\z:}', "");;
     Expect(1, 92917, '\p{Script_Extensions=bassavah}', "");
@@ -142149,16 +143477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92918, '\P{^Script_Extensions=bassavah}', "");
     Expect(1, 92917, '\p{Script_Extensions=:\Abassavah\z:}', "");;
     Expect(0, 92918, '\p{Script_Extensions=:\Abassavah\z:}', "");;
-    Expect(1, 92917, '\p{Script_Extensions=-bassa_Vah}', "");
-    Expect(0, 92917, '\p{^Script_Extensions=-bassa_Vah}', "");
-    Expect(0, 92917, '\P{Script_Extensions=-bassa_Vah}', "");
-    Expect(1, 92917, '\P{^Script_Extensions=-bassa_Vah}', "");
-    Expect(0, 92918, '\p{Script_Extensions=-bassa_Vah}', "");
-    Expect(1, 92918, '\p{^Script_Extensions=-bassa_Vah}', "");
-    Expect(1, 92918, '\P{Script_Extensions=-bassa_Vah}', "");
-    Expect(0, 92918, '\P{^Script_Extensions=-bassa_Vah}', "");
-    Error('\p{Scx=__Bass/a/}');
-    Error('\P{Scx=__Bass/a/}');
+    Expect(1, 92917, '\p{Script_Extensions=	bassa_vah}', "");
+    Expect(0, 92917, '\p{^Script_Extensions=	bassa_vah}', "");
+    Expect(0, 92917, '\P{Script_Extensions=	bassa_vah}', "");
+    Expect(1, 92917, '\P{^Script_Extensions=	bassa_vah}', "");
+    Expect(0, 92918, '\p{Script_Extensions=	bassa_vah}', "");
+    Expect(1, 92918, '\p{^Script_Extensions=	bassa_vah}', "");
+    Expect(1, 92918, '\P{Script_Extensions=	bassa_vah}', "");
+    Expect(0, 92918, '\P{^Script_Extensions=	bassa_vah}', "");
+    Error('\p{Scx=/a/ _Bass}');
+    Error('\P{Scx=/a/ _Bass}');
     Expect(1, 92917, '\p{Scx=:\ABass\z:}', "");;
     Expect(0, 92918, '\p{Scx=:\ABass\z:}', "");;
     Expect(1, 92917, '\p{Scx=bass}', "");
@@ -142171,16 +143499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92918, '\P{^Scx=bass}', "");
     Expect(1, 92917, '\p{Scx=:\Abass\z:}', "");;
     Expect(0, 92918, '\p{Scx=:\Abass\z:}', "");;
-    Expect(1, 92917, '\p{Scx=_ bass}', "");
-    Expect(0, 92917, '\p{^Scx=_ bass}', "");
-    Expect(0, 92917, '\P{Scx=_ bass}', "");
-    Expect(1, 92917, '\P{^Scx=_ bass}', "");
-    Expect(0, 92918, '\p{Scx=_ bass}', "");
-    Expect(1, 92918, '\p{^Scx=_ bass}', "");
-    Expect(1, 92918, '\P{Scx=_ bass}', "");
-    Expect(0, 92918, '\P{^Scx=_ bass}', "");
-    Error('\p{Is_Script_Extensions=	-Bassa_VAH:=}');
-    Error('\P{Is_Script_Extensions=	-Bassa_VAH:=}');
+    Expect(1, 92917, '\p{Scx:	- bass}', "");
+    Expect(0, 92917, '\p{^Scx:	- bass}', "");
+    Expect(0, 92917, '\P{Scx:	- bass}', "");
+    Expect(1, 92917, '\P{^Scx:	- bass}', "");
+    Expect(0, 92918, '\p{Scx:	- bass}', "");
+    Expect(1, 92918, '\p{^Scx:	- bass}', "");
+    Expect(1, 92918, '\P{Scx:	- bass}', "");
+    Expect(0, 92918, '\P{^Scx:	- bass}', "");
+    Error('\p{Is_Script_Extensions=_:=bassa_vah}');
+    Error('\P{Is_Script_Extensions=_:=bassa_vah}');
     Expect(1, 92917, '\p{Is_Script_Extensions=bassavah}', "");
     Expect(0, 92917, '\p{^Is_Script_Extensions=bassavah}', "");
     Expect(0, 92917, '\P{Is_Script_Extensions=bassavah}', "");
@@ -142189,34 +143517,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92918, '\p{^Is_Script_Extensions=bassavah}', "");
     Expect(1, 92918, '\P{Is_Script_Extensions=bassavah}', "");
     Expect(0, 92918, '\P{^Is_Script_Extensions=bassavah}', "");
-    Expect(1, 92917, '\p{Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(0, 92917, '\p{^Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(0, 92917, '\P{Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(1, 92917, '\P{^Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(0, 92918, '\p{Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(1, 92918, '\p{^Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(1, 92918, '\P{Is_Script_Extensions=_Bassa_vah}', "");
-    Expect(0, 92918, '\P{^Is_Script_Extensions=_Bassa_vah}', "");
-    Error('\p{Is_Scx=-/a/Bass}');
-    Error('\P{Is_Scx=-/a/Bass}');
-    Expect(1, 92917, '\p{Is_Scx=bass}', "");
-    Expect(0, 92917, '\p{^Is_Scx=bass}', "");
-    Expect(0, 92917, '\P{Is_Scx=bass}', "");
-    Expect(1, 92917, '\P{^Is_Scx=bass}', "");
-    Expect(0, 92918, '\p{Is_Scx=bass}', "");
-    Expect(1, 92918, '\p{^Is_Scx=bass}', "");
-    Expect(1, 92918, '\P{Is_Scx=bass}', "");
-    Expect(0, 92918, '\P{^Is_Scx=bass}', "");
-    Expect(1, 92917, '\p{Is_Scx=_ Bass}', "");
-    Expect(0, 92917, '\p{^Is_Scx=_ Bass}', "");
-    Expect(0, 92917, '\P{Is_Scx=_ Bass}', "");
-    Expect(1, 92917, '\P{^Is_Scx=_ Bass}', "");
-    Expect(0, 92918, '\p{Is_Scx=_ Bass}', "");
-    Expect(1, 92918, '\p{^Is_Scx=_ Bass}', "");
-    Expect(1, 92918, '\P{Is_Scx=_ Bass}', "");
-    Expect(0, 92918, '\P{^Is_Scx=_ Bass}', "");
-    Error('\p{Script_Extensions=_:=Batak}');
-    Error('\P{Script_Extensions=_:=Batak}');
+    Expect(1, 92917, '\p{Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(0, 92917, '\p{^Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(0, 92917, '\P{Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(1, 92917, '\P{^Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(0, 92918, '\p{Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(1, 92918, '\p{^Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(1, 92918, '\P{Is_Script_Extensions=--bassa_Vah}', "");
+    Expect(0, 92918, '\P{^Is_Script_Extensions=--bassa_Vah}', "");
+    Error('\p{Is_Scx:	-/a/Bass}');
+    Error('\P{Is_Scx:	-/a/Bass}');
+    Expect(1, 92917, '\p{Is_Scx:	bass}', "");
+    Expect(0, 92917, '\p{^Is_Scx:	bass}', "");
+    Expect(0, 92917, '\P{Is_Scx:	bass}', "");
+    Expect(1, 92917, '\P{^Is_Scx:	bass}', "");
+    Expect(0, 92918, '\p{Is_Scx:	bass}', "");
+    Expect(1, 92918, '\p{^Is_Scx:	bass}', "");
+    Expect(1, 92918, '\P{Is_Scx:	bass}', "");
+    Expect(0, 92918, '\P{^Is_Scx:	bass}', "");
+    Expect(1, 92917, '\p{Is_Scx=	Bass}', "");
+    Expect(0, 92917, '\p{^Is_Scx=	Bass}', "");
+    Expect(0, 92917, '\P{Is_Scx=	Bass}', "");
+    Expect(1, 92917, '\P{^Is_Scx=	Bass}', "");
+    Expect(0, 92918, '\p{Is_Scx=	Bass}', "");
+    Expect(1, 92918, '\p{^Is_Scx=	Bass}', "");
+    Expect(1, 92918, '\P{Is_Scx=	Bass}', "");
+    Expect(0, 92918, '\P{^Is_Scx=	Bass}', "");
+    Error('\p{Script_Extensions=/a/_Batak}');
+    Error('\P{Script_Extensions=/a/_Batak}');
     Expect(1, 7167, '\p{Script_Extensions=:\ABatak\z:}', "");;
     Expect(0, 7168, '\p{Script_Extensions=:\ABatak\z:}', "");;
     Expect(1, 7167, '\p{Script_Extensions=batak}', "");
@@ -142229,16 +143557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7168, '\P{^Script_Extensions=batak}', "");
     Expect(1, 7167, '\p{Script_Extensions=:\Abatak\z:}', "");;
     Expect(0, 7168, '\p{Script_Extensions=:\Abatak\z:}', "");;
-    Expect(1, 7167, '\p{Script_Extensions=_BATAK}', "");
-    Expect(0, 7167, '\p{^Script_Extensions=_BATAK}', "");
-    Expect(0, 7167, '\P{Script_Extensions=_BATAK}', "");
-    Expect(1, 7167, '\P{^Script_Extensions=_BATAK}', "");
-    Expect(0, 7168, '\p{Script_Extensions=_BATAK}', "");
-    Expect(1, 7168, '\p{^Script_Extensions=_BATAK}', "");
-    Expect(1, 7168, '\P{Script_Extensions=_BATAK}', "");
-    Expect(0, 7168, '\P{^Script_Extensions=_BATAK}', "");
-    Error('\p{Scx=:= BATK}');
-    Error('\P{Scx=:= BATK}');
+    Expect(1, 7167, '\p{Script_Extensions=	batak}', "");
+    Expect(0, 7167, '\p{^Script_Extensions=	batak}', "");
+    Expect(0, 7167, '\P{Script_Extensions=	batak}', "");
+    Expect(1, 7167, '\P{^Script_Extensions=	batak}', "");
+    Expect(0, 7168, '\p{Script_Extensions=	batak}', "");
+    Expect(1, 7168, '\p{^Script_Extensions=	batak}', "");
+    Expect(1, 7168, '\P{Script_Extensions=	batak}', "");
+    Expect(0, 7168, '\P{^Script_Extensions=	batak}', "");
+    Error('\p{Scx=/a/_	Batk}');
+    Error('\P{Scx=/a/_	Batk}');
     Expect(1, 7167, '\p{Scx=:\ABatk\z:}', "");;
     Expect(0, 7168, '\p{Scx=:\ABatk\z:}', "");;
     Expect(1, 7167, '\p{Scx=batk}', "");
@@ -142251,34 +143579,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7168, '\P{^Scx=batk}', "");
     Expect(1, 7167, '\p{Scx=:\Abatk\z:}', "");;
     Expect(0, 7168, '\p{Scx=:\Abatk\z:}', "");;
-    Expect(1, 7167, '\p{Scx=	-BATK}', "");
-    Expect(0, 7167, '\p{^Scx=	-BATK}', "");
-    Expect(0, 7167, '\P{Scx=	-BATK}', "");
-    Expect(1, 7167, '\P{^Scx=	-BATK}', "");
-    Expect(0, 7168, '\p{Scx=	-BATK}', "");
-    Expect(1, 7168, '\p{^Scx=	-BATK}', "");
-    Expect(1, 7168, '\P{Scx=	-BATK}', "");
-    Expect(0, 7168, '\P{^Scx=	-BATK}', "");
-    Error('\p{Is_Script_Extensions= batak/a/}');
-    Error('\P{Is_Script_Extensions= batak/a/}');
-    Expect(1, 7167, '\p{Is_Script_Extensions:   batak}', "");
-    Expect(0, 7167, '\p{^Is_Script_Extensions:   batak}', "");
-    Expect(0, 7167, '\P{Is_Script_Extensions:   batak}', "");
-    Expect(1, 7167, '\P{^Is_Script_Extensions:   batak}', "");
-    Expect(0, 7168, '\p{Is_Script_Extensions:   batak}', "");
-    Expect(1, 7168, '\p{^Is_Script_Extensions:   batak}', "");
-    Expect(1, 7168, '\P{Is_Script_Extensions:   batak}', "");
-    Expect(0, 7168, '\P{^Is_Script_Extensions:   batak}', "");
-    Expect(1, 7167, '\p{Is_Script_Extensions=-BATAK}', "");
-    Expect(0, 7167, '\p{^Is_Script_Extensions=-BATAK}', "");
-    Expect(0, 7167, '\P{Is_Script_Extensions=-BATAK}', "");
-    Expect(1, 7167, '\P{^Is_Script_Extensions=-BATAK}', "");
-    Expect(0, 7168, '\p{Is_Script_Extensions=-BATAK}', "");
-    Expect(1, 7168, '\p{^Is_Script_Extensions=-BATAK}', "");
-    Expect(1, 7168, '\P{Is_Script_Extensions=-BATAK}', "");
-    Expect(0, 7168, '\P{^Is_Script_Extensions=-BATAK}', "");
-    Error('\p{Is_Scx=-/a/BATK}');
-    Error('\P{Is_Scx=-/a/BATK}');
+    Expect(1, 7167, '\p{Scx= batk}', "");
+    Expect(0, 7167, '\p{^Scx= batk}', "");
+    Expect(0, 7167, '\P{Scx= batk}', "");
+    Expect(1, 7167, '\P{^Scx= batk}', "");
+    Expect(0, 7168, '\p{Scx= batk}', "");
+    Expect(1, 7168, '\p{^Scx= batk}', "");
+    Expect(1, 7168, '\P{Scx= batk}', "");
+    Expect(0, 7168, '\P{^Scx= batk}', "");
+    Error('\p{Is_Script_Extensions=_-BATAK:=}');
+    Error('\P{Is_Script_Extensions=_-BATAK:=}');
+    Expect(1, 7167, '\p{Is_Script_Extensions=batak}', "");
+    Expect(0, 7167, '\p{^Is_Script_Extensions=batak}', "");
+    Expect(0, 7167, '\P{Is_Script_Extensions=batak}', "");
+    Expect(1, 7167, '\P{^Is_Script_Extensions=batak}', "");
+    Expect(0, 7168, '\p{Is_Script_Extensions=batak}', "");
+    Expect(1, 7168, '\p{^Is_Script_Extensions=batak}', "");
+    Expect(1, 7168, '\P{Is_Script_Extensions=batak}', "");
+    Expect(0, 7168, '\P{^Is_Script_Extensions=batak}', "");
+    Expect(1, 7167, '\p{Is_Script_Extensions=	-batak}', "");
+    Expect(0, 7167, '\p{^Is_Script_Extensions=	-batak}', "");
+    Expect(0, 7167, '\P{Is_Script_Extensions=	-batak}', "");
+    Expect(1, 7167, '\P{^Is_Script_Extensions=	-batak}', "");
+    Expect(0, 7168, '\p{Is_Script_Extensions=	-batak}', "");
+    Expect(1, 7168, '\p{^Is_Script_Extensions=	-batak}', "");
+    Expect(1, 7168, '\P{Is_Script_Extensions=	-batak}', "");
+    Expect(0, 7168, '\P{^Is_Script_Extensions=	-batak}', "");
+    Error('\p{Is_Scx=__Batk:=}');
+    Error('\P{Is_Scx=__Batk:=}');
     Expect(1, 7167, '\p{Is_Scx=batk}', "");
     Expect(0, 7167, '\p{^Is_Scx=batk}', "");
     Expect(0, 7167, '\P{Is_Scx=batk}', "");
@@ -142287,16 +143615,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7168, '\p{^Is_Scx=batk}', "");
     Expect(1, 7168, '\P{Is_Scx=batk}', "");
     Expect(0, 7168, '\P{^Is_Scx=batk}', "");
-    Expect(1, 7167, '\p{Is_Scx= _Batk}', "");
-    Expect(0, 7167, '\p{^Is_Scx= _Batk}', "");
-    Expect(0, 7167, '\P{Is_Scx= _Batk}', "");
-    Expect(1, 7167, '\P{^Is_Scx= _Batk}', "");
-    Expect(0, 7168, '\p{Is_Scx= _Batk}', "");
-    Expect(1, 7168, '\p{^Is_Scx= _Batk}', "");
-    Expect(1, 7168, '\P{Is_Scx= _Batk}', "");
-    Expect(0, 7168, '\P{^Is_Scx= _Batk}', "");
-    Error('\p{Script_Extensions= Bengali/a/}');
-    Error('\P{Script_Extensions= Bengali/a/}');
+    Expect(1, 7167, '\p{Is_Scx=	Batk}', "");
+    Expect(0, 7167, '\p{^Is_Scx=	Batk}', "");
+    Expect(0, 7167, '\P{Is_Scx=	Batk}', "");
+    Expect(1, 7167, '\P{^Is_Scx=	Batk}', "");
+    Expect(0, 7168, '\p{Is_Scx=	Batk}', "");
+    Expect(1, 7168, '\p{^Is_Scx=	Batk}', "");
+    Expect(1, 7168, '\P{Is_Scx=	Batk}', "");
+    Expect(0, 7168, '\P{^Is_Scx=	Batk}', "");
+    Error('\p{Script_Extensions:   	Bengali/a/}');
+    Error('\P{Script_Extensions:   	Bengali/a/}');
     Expect(1, 43249, '\p{Script_Extensions=:\ABengali\z:}', "");;
     Expect(0, 43250, '\p{Script_Extensions=:\ABengali\z:}', "");;
     Expect(1, 43249, '\p{Script_Extensions=bengali}', "");
@@ -142309,16 +143637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43250, '\P{^Script_Extensions=bengali}', "");
     Expect(1, 43249, '\p{Script_Extensions=:\Abengali\z:}', "");;
     Expect(0, 43250, '\p{Script_Extensions=:\Abengali\z:}', "");;
-    Expect(1, 43249, '\p{Script_Extensions=__Bengali}', "");
-    Expect(0, 43249, '\p{^Script_Extensions=__Bengali}', "");
-    Expect(0, 43249, '\P{Script_Extensions=__Bengali}', "");
-    Expect(1, 43249, '\P{^Script_Extensions=__Bengali}', "");
-    Expect(0, 43250, '\p{Script_Extensions=__Bengali}', "");
-    Expect(1, 43250, '\p{^Script_Extensions=__Bengali}', "");
-    Expect(1, 43250, '\P{Script_Extensions=__Bengali}', "");
-    Expect(0, 43250, '\P{^Script_Extensions=__Bengali}', "");
-    Error('\p{Scx=/a/_-BENG}');
-    Error('\P{Scx=/a/_-BENG}');
+    Expect(1, 43249, '\p{Script_Extensions:   _ BENGALI}', "");
+    Expect(0, 43249, '\p{^Script_Extensions:   _ BENGALI}', "");
+    Expect(0, 43249, '\P{Script_Extensions:   _ BENGALI}', "");
+    Expect(1, 43249, '\P{^Script_Extensions:   _ BENGALI}', "");
+    Expect(0, 43250, '\p{Script_Extensions:   _ BENGALI}', "");
+    Expect(1, 43250, '\p{^Script_Extensions:   _ BENGALI}', "");
+    Expect(1, 43250, '\P{Script_Extensions:   _ BENGALI}', "");
+    Expect(0, 43250, '\P{^Script_Extensions:   _ BENGALI}', "");
+    Error('\p{Scx=:=Beng}');
+    Error('\P{Scx=:=Beng}');
     Expect(1, 43249, '\p{Scx=:\ABeng\z:}', "");;
     Expect(0, 43250, '\p{Scx=:\ABeng\z:}', "");;
     Expect(1, 43249, '\p{Scx=beng}', "");
@@ -142331,16 +143659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43250, '\P{^Scx=beng}', "");
     Expect(1, 43249, '\p{Scx=:\Abeng\z:}', "");;
     Expect(0, 43250, '\p{Scx=:\Abeng\z:}', "");;
-    Expect(1, 43249, '\p{Scx=	-Beng}', "");
-    Expect(0, 43249, '\p{^Scx=	-Beng}', "");
-    Expect(0, 43249, '\P{Scx=	-Beng}', "");
-    Expect(1, 43249, '\P{^Scx=	-Beng}', "");
-    Expect(0, 43250, '\p{Scx=	-Beng}', "");
-    Expect(1, 43250, '\p{^Scx=	-Beng}', "");
-    Expect(1, 43250, '\P{Scx=	-Beng}', "");
-    Expect(0, 43250, '\P{^Scx=	-Beng}', "");
-    Error('\p{Is_Script_Extensions=	bengali:=}');
-    Error('\P{Is_Script_Extensions=	bengali:=}');
+    Expect(1, 43249, '\p{Scx:	 	Beng}', "");
+    Expect(0, 43249, '\p{^Scx:	 	Beng}', "");
+    Expect(0, 43249, '\P{Scx:	 	Beng}', "");
+    Expect(1, 43249, '\P{^Scx:	 	Beng}', "");
+    Expect(0, 43250, '\p{Scx:	 	Beng}', "");
+    Expect(1, 43250, '\p{^Scx:	 	Beng}', "");
+    Expect(1, 43250, '\P{Scx:	 	Beng}', "");
+    Expect(0, 43250, '\P{^Scx:	 	Beng}', "");
+    Error('\p{Is_Script_Extensions=-	Bengali:=}');
+    Error('\P{Is_Script_Extensions=-	Bengali:=}');
     Expect(1, 43249, '\p{Is_Script_Extensions=bengali}', "");
     Expect(0, 43249, '\p{^Is_Script_Extensions=bengali}', "");
     Expect(0, 43249, '\P{Is_Script_Extensions=bengali}', "");
@@ -142349,16 +143677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43250, '\p{^Is_Script_Extensions=bengali}', "");
     Expect(1, 43250, '\P{Is_Script_Extensions=bengali}', "");
     Expect(0, 43250, '\P{^Is_Script_Extensions=bengali}', "");
-    Expect(1, 43249, '\p{Is_Script_Extensions=  Bengali}', "");
-    Expect(0, 43249, '\p{^Is_Script_Extensions=  Bengali}', "");
-    Expect(0, 43249, '\P{Is_Script_Extensions=  Bengali}', "");
-    Expect(1, 43249, '\P{^Is_Script_Extensions=  Bengali}', "");
-    Expect(0, 43250, '\p{Is_Script_Extensions=  Bengali}', "");
-    Expect(1, 43250, '\p{^Is_Script_Extensions=  Bengali}', "");
-    Expect(1, 43250, '\P{Is_Script_Extensions=  Bengali}', "");
-    Expect(0, 43250, '\P{^Is_Script_Extensions=  Bengali}', "");
-    Error('\p{Is_Scx= -beng:=}');
-    Error('\P{Is_Scx= -beng:=}');
+    Expect(1, 43249, '\p{Is_Script_Extensions=		BENGALI}', "");
+    Expect(0, 43249, '\p{^Is_Script_Extensions=		BENGALI}', "");
+    Expect(0, 43249, '\P{Is_Script_Extensions=		BENGALI}', "");
+    Expect(1, 43249, '\P{^Is_Script_Extensions=		BENGALI}', "");
+    Expect(0, 43250, '\p{Is_Script_Extensions=		BENGALI}', "");
+    Expect(1, 43250, '\p{^Is_Script_Extensions=		BENGALI}', "");
+    Expect(1, 43250, '\P{Is_Script_Extensions=		BENGALI}', "");
+    Expect(0, 43250, '\P{^Is_Script_Extensions=		BENGALI}', "");
+    Error('\p{Is_Scx: :=_	beng}');
+    Error('\P{Is_Scx: :=_	beng}');
     Expect(1, 43249, '\p{Is_Scx=beng}', "");
     Expect(0, 43249, '\p{^Is_Scx=beng}', "");
     Expect(0, 43249, '\P{Is_Scx=beng}', "");
@@ -142367,16 +143695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43250, '\p{^Is_Scx=beng}', "");
     Expect(1, 43250, '\P{Is_Scx=beng}', "");
     Expect(0, 43250, '\P{^Is_Scx=beng}', "");
-    Expect(1, 43249, '\p{Is_Scx=--Beng}', "");
-    Expect(0, 43249, '\p{^Is_Scx=--Beng}', "");
-    Expect(0, 43249, '\P{Is_Scx=--Beng}', "");
-    Expect(1, 43249, '\P{^Is_Scx=--Beng}', "");
-    Expect(0, 43250, '\p{Is_Scx=--Beng}', "");
-    Expect(1, 43250, '\p{^Is_Scx=--Beng}', "");
-    Expect(1, 43250, '\P{Is_Scx=--Beng}', "");
-    Expect(0, 43250, '\P{^Is_Scx=--Beng}', "");
-    Error('\p{Script_Extensions=/a/	_BHAIKSUKI}');
-    Error('\P{Script_Extensions=/a/	_BHAIKSUKI}');
+    Expect(1, 43249, '\p{Is_Scx=  Beng}', "");
+    Expect(0, 43249, '\p{^Is_Scx=  Beng}', "");
+    Expect(0, 43249, '\P{Is_Scx=  Beng}', "");
+    Expect(1, 43249, '\P{^Is_Scx=  Beng}', "");
+    Expect(0, 43250, '\p{Is_Scx=  Beng}', "");
+    Expect(1, 43250, '\p{^Is_Scx=  Beng}', "");
+    Expect(1, 43250, '\P{Is_Scx=  Beng}', "");
+    Expect(0, 43250, '\P{^Is_Scx=  Beng}', "");
+    Error('\p{Script_Extensions=/a/-_Bhaiksuki}');
+    Error('\P{Script_Extensions=/a/-_Bhaiksuki}');
     Expect(1, 72812, '\p{Script_Extensions=:\ABhaiksuki\z:}', "");;
     Expect(0, 72813, '\p{Script_Extensions=:\ABhaiksuki\z:}', "");;
     Expect(1, 72812, '\p{Script_Extensions=bhaiksuki}', "");
@@ -142389,16 +143717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72813, '\P{^Script_Extensions=bhaiksuki}', "");
     Expect(1, 72812, '\p{Script_Extensions=:\Abhaiksuki\z:}', "");;
     Expect(0, 72813, '\p{Script_Extensions=:\Abhaiksuki\z:}', "");;
-    Expect(1, 72812, '\p{Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(0, 72812, '\p{^Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(0, 72812, '\P{Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(1, 72812, '\P{^Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(0, 72813, '\p{Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(1, 72813, '\p{^Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(1, 72813, '\P{Script_Extensions:   _ Bhaiksuki}', "");
-    Expect(0, 72813, '\P{^Script_Extensions:   _ Bhaiksuki}', "");
-    Error('\p{Scx=		BHKS/a/}');
-    Error('\P{Scx=		BHKS/a/}');
+    Expect(1, 72812, '\p{Script_Extensions=  BHAIKSUKI}', "");
+    Expect(0, 72812, '\p{^Script_Extensions=  BHAIKSUKI}', "");
+    Expect(0, 72812, '\P{Script_Extensions=  BHAIKSUKI}', "");
+    Expect(1, 72812, '\P{^Script_Extensions=  BHAIKSUKI}', "");
+    Expect(0, 72813, '\p{Script_Extensions=  BHAIKSUKI}', "");
+    Expect(1, 72813, '\p{^Script_Extensions=  BHAIKSUKI}', "");
+    Expect(1, 72813, '\P{Script_Extensions=  BHAIKSUKI}', "");
+    Expect(0, 72813, '\P{^Script_Extensions=  BHAIKSUKI}', "");
+    Error('\p{Scx=/a/  Bhks}');
+    Error('\P{Scx=/a/  Bhks}');
     Expect(1, 72812, '\p{Scx=:\ABhks\z:}', "");;
     Expect(0, 72813, '\p{Scx=:\ABhks\z:}', "");;
     Expect(1, 72812, '\p{Scx=bhks}', "");
@@ -142411,16 +143739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72813, '\P{^Scx=bhks}', "");
     Expect(1, 72812, '\p{Scx=:\Abhks\z:}', "");;
     Expect(0, 72813, '\p{Scx=:\Abhks\z:}', "");;
-    Expect(1, 72812, '\p{Scx=	_BHKS}', "");
-    Expect(0, 72812, '\p{^Scx=	_BHKS}', "");
-    Expect(0, 72812, '\P{Scx=	_BHKS}', "");
-    Expect(1, 72812, '\P{^Scx=	_BHKS}', "");
-    Expect(0, 72813, '\p{Scx=	_BHKS}', "");
-    Expect(1, 72813, '\p{^Scx=	_BHKS}', "");
-    Expect(1, 72813, '\P{Scx=	_BHKS}', "");
-    Expect(0, 72813, '\P{^Scx=	_BHKS}', "");
-    Error('\p{Is_Script_Extensions=:=Bhaiksuki}');
-    Error('\P{Is_Script_Extensions=:=Bhaiksuki}');
+    Expect(1, 72812, '\p{Scx=_-Bhks}', "");
+    Expect(0, 72812, '\p{^Scx=_-Bhks}', "");
+    Expect(0, 72812, '\P{Scx=_-Bhks}', "");
+    Expect(1, 72812, '\P{^Scx=_-Bhks}', "");
+    Expect(0, 72813, '\p{Scx=_-Bhks}', "");
+    Expect(1, 72813, '\p{^Scx=_-Bhks}', "");
+    Expect(1, 72813, '\P{Scx=_-Bhks}', "");
+    Expect(0, 72813, '\P{^Scx=_-Bhks}', "");
+    Error('\p{Is_Script_Extensions=	 Bhaiksuki/a/}');
+    Error('\P{Is_Script_Extensions=	 Bhaiksuki/a/}');
     Expect(1, 72812, '\p{Is_Script_Extensions=bhaiksuki}', "");
     Expect(0, 72812, '\p{^Is_Script_Extensions=bhaiksuki}', "");
     Expect(0, 72812, '\P{Is_Script_Extensions=bhaiksuki}', "");
@@ -142429,16 +143757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72813, '\p{^Is_Script_Extensions=bhaiksuki}', "");
     Expect(1, 72813, '\P{Is_Script_Extensions=bhaiksuki}', "");
     Expect(0, 72813, '\P{^Is_Script_Extensions=bhaiksuki}', "");
-    Expect(1, 72812, '\p{Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(0, 72812, '\p{^Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(0, 72812, '\P{Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(1, 72812, '\P{^Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(0, 72813, '\p{Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(1, 72813, '\p{^Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(1, 72813, '\P{Is_Script_Extensions=-BHAIKSUKI}', "");
-    Expect(0, 72813, '\P{^Is_Script_Extensions=-BHAIKSUKI}', "");
-    Error('\p{Is_Scx=-:=Bhks}');
-    Error('\P{Is_Scx=-:=Bhks}');
+    Expect(1, 72812, '\p{Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(0, 72812, '\p{^Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(0, 72812, '\P{Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(1, 72812, '\P{^Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(0, 72813, '\p{Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(1, 72813, '\p{^Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(1, 72813, '\P{Is_Script_Extensions: 		bhaiksuki}', "");
+    Expect(0, 72813, '\P{^Is_Script_Extensions: 		bhaiksuki}', "");
+    Error('\p{Is_Scx=_/a/Bhks}');
+    Error('\P{Is_Scx=_/a/Bhks}');
     Expect(1, 72812, '\p{Is_Scx=bhks}', "");
     Expect(0, 72812, '\p{^Is_Scx=bhks}', "");
     Expect(0, 72812, '\P{Is_Scx=bhks}', "");
@@ -142447,16 +143775,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72813, '\p{^Is_Scx=bhks}', "");
     Expect(1, 72813, '\P{Is_Scx=bhks}', "");
     Expect(0, 72813, '\P{^Is_Scx=bhks}', "");
-    Expect(1, 72812, '\p{Is_Scx= -bhks}', "");
-    Expect(0, 72812, '\p{^Is_Scx= -bhks}', "");
-    Expect(0, 72812, '\P{Is_Scx= -bhks}', "");
-    Expect(1, 72812, '\P{^Is_Scx= -bhks}', "");
-    Expect(0, 72813, '\p{Is_Scx= -bhks}', "");
-    Expect(1, 72813, '\p{^Is_Scx= -bhks}', "");
-    Expect(1, 72813, '\P{Is_Scx= -bhks}', "");
-    Expect(0, 72813, '\P{^Is_Scx= -bhks}', "");
-    Error('\p{Script_Extensions=__Bopomofo/a/}');
-    Error('\P{Script_Extensions=__Bopomofo/a/}');
+    Expect(1, 72812, '\p{Is_Scx= -Bhks}', "");
+    Expect(0, 72812, '\p{^Is_Scx= -Bhks}', "");
+    Expect(0, 72812, '\P{Is_Scx= -Bhks}', "");
+    Expect(1, 72812, '\P{^Is_Scx= -Bhks}', "");
+    Expect(0, 72813, '\p{Is_Scx= -Bhks}', "");
+    Expect(1, 72813, '\p{^Is_Scx= -Bhks}', "");
+    Expect(1, 72813, '\P{Is_Scx= -Bhks}', "");
+    Expect(0, 72813, '\P{^Is_Scx= -Bhks}', "");
+    Error('\p{Script_Extensions=_Bopomofo/a/}');
+    Error('\P{Script_Extensions=_Bopomofo/a/}');
     Expect(1, 65381, '\p{Script_Extensions=:\ABopomofo\z:}', "");;
     Expect(0, 65382, '\p{Script_Extensions=:\ABopomofo\z:}', "");;
     Expect(1, 65381, '\p{Script_Extensions=bopomofo}', "");
@@ -142469,16 +143797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65382, '\P{^Script_Extensions=bopomofo}', "");
     Expect(1, 65381, '\p{Script_Extensions=:\Abopomofo\z:}', "");;
     Expect(0, 65382, '\p{Script_Extensions=:\Abopomofo\z:}', "");;
-    Expect(1, 65381, '\p{Script_Extensions=	BOPOMOFO}', "");
-    Expect(0, 65381, '\p{^Script_Extensions=	BOPOMOFO}', "");
-    Expect(0, 65381, '\P{Script_Extensions=	BOPOMOFO}', "");
-    Expect(1, 65381, '\P{^Script_Extensions=	BOPOMOFO}', "");
-    Expect(0, 65382, '\p{Script_Extensions=	BOPOMOFO}', "");
-    Expect(1, 65382, '\p{^Script_Extensions=	BOPOMOFO}', "");
-    Expect(1, 65382, '\P{Script_Extensions=	BOPOMOFO}', "");
-    Expect(0, 65382, '\P{^Script_Extensions=	BOPOMOFO}', "");
-    Error('\p{Scx=-_Bopo/a/}');
-    Error('\P{Scx=-_Bopo/a/}');
+    Expect(1, 65381, '\p{Script_Extensions=	_bopomofo}', "");
+    Expect(0, 65381, '\p{^Script_Extensions=	_bopomofo}', "");
+    Expect(0, 65381, '\P{Script_Extensions=	_bopomofo}', "");
+    Expect(1, 65381, '\P{^Script_Extensions=	_bopomofo}', "");
+    Expect(0, 65382, '\p{Script_Extensions=	_bopomofo}', "");
+    Expect(1, 65382, '\p{^Script_Extensions=	_bopomofo}', "");
+    Expect(1, 65382, '\P{Script_Extensions=	_bopomofo}', "");
+    Expect(0, 65382, '\P{^Script_Extensions=	_bopomofo}', "");
+    Error('\p{Scx=_ Bopo:=}');
+    Error('\P{Scx=_ Bopo:=}');
     Expect(1, 65381, '\p{Scx=:\ABopo\z:}', "");;
     Expect(0, 65382, '\p{Scx=:\ABopo\z:}', "");;
     Expect(1, 65381, '\p{Scx=bopo}', "");
@@ -142491,16 +143819,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65382, '\P{^Scx=bopo}', "");
     Expect(1, 65381, '\p{Scx=:\Abopo\z:}', "");;
     Expect(0, 65382, '\p{Scx=:\Abopo\z:}', "");;
-    Expect(1, 65381, '\p{Scx=--bopo}', "");
-    Expect(0, 65381, '\p{^Scx=--bopo}', "");
-    Expect(0, 65381, '\P{Scx=--bopo}', "");
-    Expect(1, 65381, '\P{^Scx=--bopo}', "");
-    Expect(0, 65382, '\p{Scx=--bopo}', "");
-    Expect(1, 65382, '\p{^Scx=--bopo}', "");
-    Expect(1, 65382, '\P{Scx=--bopo}', "");
-    Expect(0, 65382, '\P{^Scx=--bopo}', "");
-    Error('\p{Is_Script_Extensions=_:=BOPOMOFO}');
-    Error('\P{Is_Script_Extensions=_:=BOPOMOFO}');
+    Expect(1, 65381, '\p{Scx=Bopo}', "");
+    Expect(0, 65381, '\p{^Scx=Bopo}', "");
+    Expect(0, 65381, '\P{Scx=Bopo}', "");
+    Expect(1, 65381, '\P{^Scx=Bopo}', "");
+    Expect(0, 65382, '\p{Scx=Bopo}', "");
+    Expect(1, 65382, '\p{^Scx=Bopo}', "");
+    Expect(1, 65382, '\P{Scx=Bopo}', "");
+    Expect(0, 65382, '\P{^Scx=Bopo}', "");
+    Error('\p{Is_Script_Extensions= Bopomofo:=}');
+    Error('\P{Is_Script_Extensions= Bopomofo:=}');
     Expect(1, 65381, '\p{Is_Script_Extensions=bopomofo}', "");
     Expect(0, 65381, '\p{^Is_Script_Extensions=bopomofo}', "");
     Expect(0, 65381, '\P{Is_Script_Extensions=bopomofo}', "");
@@ -142509,16 +143837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65382, '\p{^Is_Script_Extensions=bopomofo}', "");
     Expect(1, 65382, '\P{Is_Script_Extensions=bopomofo}', "");
     Expect(0, 65382, '\P{^Is_Script_Extensions=bopomofo}', "");
-    Expect(1, 65381, '\p{Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(0, 65381, '\p{^Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(0, 65381, '\P{Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(1, 65381, '\P{^Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(0, 65382, '\p{Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(1, 65382, '\p{^Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(1, 65382, '\P{Is_Script_Extensions=_ Bopomofo}', "");
-    Expect(0, 65382, '\P{^Is_Script_Extensions=_ Bopomofo}', "");
-    Error('\p{Is_Scx=/a/-Bopo}');
-    Error('\P{Is_Scx=/a/-Bopo}');
+    Expect(1, 65381, '\p{Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(0, 65381, '\p{^Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(0, 65381, '\P{Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(1, 65381, '\P{^Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(0, 65382, '\p{Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(1, 65382, '\p{^Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(1, 65382, '\P{Is_Script_Extensions= 	Bopomofo}', "");
+    Expect(0, 65382, '\P{^Is_Script_Extensions= 	Bopomofo}', "");
+    Error('\p{Is_Scx=/a/-bopo}');
+    Error('\P{Is_Scx=/a/-bopo}');
     Expect(1, 65381, '\p{Is_Scx=bopo}', "");
     Expect(0, 65381, '\p{^Is_Scx=bopo}', "");
     Expect(0, 65381, '\P{Is_Scx=bopo}', "");
@@ -142527,38 +143855,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65382, '\p{^Is_Scx=bopo}', "");
     Expect(1, 65382, '\P{Is_Scx=bopo}', "");
     Expect(0, 65382, '\P{^Is_Scx=bopo}', "");
-    Expect(1, 65381, '\p{Is_Scx= Bopo}', "");
-    Expect(0, 65381, '\p{^Is_Scx= Bopo}', "");
-    Expect(0, 65381, '\P{Is_Scx= Bopo}', "");
-    Expect(1, 65381, '\P{^Is_Scx= Bopo}', "");
-    Expect(0, 65382, '\p{Is_Scx= Bopo}', "");
-    Expect(1, 65382, '\p{^Is_Scx= Bopo}', "");
-    Expect(1, 65382, '\P{Is_Scx= Bopo}', "");
-    Expect(0, 65382, '\P{^Is_Scx= Bopo}', "");
-    Error('\p{Script_Extensions=:=--Brahmi}');
-    Error('\P{Script_Extensions=:=--Brahmi}');
+    Expect(1, 65381, '\p{Is_Scx=_-BOPO}', "");
+    Expect(0, 65381, '\p{^Is_Scx=_-BOPO}', "");
+    Expect(0, 65381, '\P{Is_Scx=_-BOPO}', "");
+    Expect(1, 65381, '\P{^Is_Scx=_-BOPO}', "");
+    Expect(0, 65382, '\p{Is_Scx=_-BOPO}', "");
+    Expect(1, 65382, '\p{^Is_Scx=_-BOPO}', "");
+    Expect(1, 65382, '\P{Is_Scx=_-BOPO}', "");
+    Expect(0, 65382, '\P{^Is_Scx=_-BOPO}', "");
+    Error('\p{Script_Extensions=	 Brahmi/a/}');
+    Error('\P{Script_Extensions=	 Brahmi/a/}');
     Expect(1, 69759, '\p{Script_Extensions=:\ABrahmi\z:}', "");;
     Expect(0, 69760, '\p{Script_Extensions=:\ABrahmi\z:}', "");;
-    Expect(1, 69759, '\p{Script_Extensions=brahmi}', "");
-    Expect(0, 69759, '\p{^Script_Extensions=brahmi}', "");
-    Expect(0, 69759, '\P{Script_Extensions=brahmi}', "");
-    Expect(1, 69759, '\P{^Script_Extensions=brahmi}', "");
-    Expect(0, 69760, '\p{Script_Extensions=brahmi}', "");
-    Expect(1, 69760, '\p{^Script_Extensions=brahmi}', "");
-    Expect(1, 69760, '\P{Script_Extensions=brahmi}', "");
-    Expect(0, 69760, '\P{^Script_Extensions=brahmi}', "");
+    Expect(1, 69759, '\p{Script_Extensions:brahmi}', "");
+    Expect(0, 69759, '\p{^Script_Extensions:brahmi}', "");
+    Expect(0, 69759, '\P{Script_Extensions:brahmi}', "");
+    Expect(1, 69759, '\P{^Script_Extensions:brahmi}', "");
+    Expect(0, 69760, '\p{Script_Extensions:brahmi}', "");
+    Expect(1, 69760, '\p{^Script_Extensions:brahmi}', "");
+    Expect(1, 69760, '\P{Script_Extensions:brahmi}', "");
+    Expect(0, 69760, '\P{^Script_Extensions:brahmi}', "");
     Expect(1, 69759, '\p{Script_Extensions=:\Abrahmi\z:}', "");;
     Expect(0, 69760, '\p{Script_Extensions=:\Abrahmi\z:}', "");;
-    Expect(1, 69759, '\p{Script_Extensions= 	brahmi}', "");
-    Expect(0, 69759, '\p{^Script_Extensions= 	brahmi}', "");
-    Expect(0, 69759, '\P{Script_Extensions= 	brahmi}', "");
-    Expect(1, 69759, '\P{^Script_Extensions= 	brahmi}', "");
-    Expect(0, 69760, '\p{Script_Extensions= 	brahmi}', "");
-    Expect(1, 69760, '\p{^Script_Extensions= 	brahmi}', "");
-    Expect(1, 69760, '\P{Script_Extensions= 	brahmi}', "");
-    Expect(0, 69760, '\P{^Script_Extensions= 	brahmi}', "");
-    Error('\p{Scx=/a/-Brah}');
-    Error('\P{Scx=/a/-Brah}');
+    Expect(1, 69759, '\p{Script_Extensions=	 brahmi}', "");
+    Expect(0, 69759, '\p{^Script_Extensions=	 brahmi}', "");
+    Expect(0, 69759, '\P{Script_Extensions=	 brahmi}', "");
+    Expect(1, 69759, '\P{^Script_Extensions=	 brahmi}', "");
+    Expect(0, 69760, '\p{Script_Extensions=	 brahmi}', "");
+    Expect(1, 69760, '\p{^Script_Extensions=	 brahmi}', "");
+    Expect(1, 69760, '\P{Script_Extensions=	 brahmi}', "");
+    Expect(0, 69760, '\P{^Script_Extensions=	 brahmi}', "");
+    Error('\p{Scx=:=-	brah}');
+    Error('\P{Scx=:=-	brah}');
     Expect(1, 69759, '\p{Scx=:\ABrah\z:}', "");;
     Expect(0, 69760, '\p{Scx=:\ABrah\z:}', "");;
     Expect(1, 69759, '\p{Scx=brah}', "");
@@ -142571,16 +143899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69760, '\P{^Scx=brah}', "");
     Expect(1, 69759, '\p{Scx=:\Abrah\z:}', "");;
     Expect(0, 69760, '\p{Scx=:\Abrah\z:}', "");;
-    Expect(1, 69759, '\p{Scx=--brah}', "");
-    Expect(0, 69759, '\p{^Scx=--brah}', "");
-    Expect(0, 69759, '\P{Scx=--brah}', "");
-    Expect(1, 69759, '\P{^Scx=--brah}', "");
-    Expect(0, 69760, '\p{Scx=--brah}', "");
-    Expect(1, 69760, '\p{^Scx=--brah}', "");
-    Expect(1, 69760, '\P{Scx=--brah}', "");
-    Expect(0, 69760, '\P{^Scx=--brah}', "");
-    Error('\p{Is_Script_Extensions=-/a/BRAHMI}');
-    Error('\P{Is_Script_Extensions=-/a/BRAHMI}');
+    Expect(1, 69759, '\p{Scx=_BRAH}', "");
+    Expect(0, 69759, '\p{^Scx=_BRAH}', "");
+    Expect(0, 69759, '\P{Scx=_BRAH}', "");
+    Expect(1, 69759, '\P{^Scx=_BRAH}', "");
+    Expect(0, 69760, '\p{Scx=_BRAH}', "");
+    Expect(1, 69760, '\p{^Scx=_BRAH}', "");
+    Expect(1, 69760, '\P{Scx=_BRAH}', "");
+    Expect(0, 69760, '\P{^Scx=_BRAH}', "");
+    Error('\p{Is_Script_Extensions=--Brahmi:=}');
+    Error('\P{Is_Script_Extensions=--Brahmi:=}');
     Expect(1, 69759, '\p{Is_Script_Extensions=brahmi}', "");
     Expect(0, 69759, '\p{^Is_Script_Extensions=brahmi}', "");
     Expect(0, 69759, '\P{Is_Script_Extensions=brahmi}', "");
@@ -142589,16 +143917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69760, '\p{^Is_Script_Extensions=brahmi}', "");
     Expect(1, 69760, '\P{Is_Script_Extensions=brahmi}', "");
     Expect(0, 69760, '\P{^Is_Script_Extensions=brahmi}', "");
-    Expect(1, 69759, '\p{Is_Script_Extensions=_Brahmi}', "");
-    Expect(0, 69759, '\p{^Is_Script_Extensions=_Brahmi}', "");
-    Expect(0, 69759, '\P{Is_Script_Extensions=_Brahmi}', "");
-    Expect(1, 69759, '\P{^Is_Script_Extensions=_Brahmi}', "");
-    Expect(0, 69760, '\p{Is_Script_Extensions=_Brahmi}', "");
-    Expect(1, 69760, '\p{^Is_Script_Extensions=_Brahmi}', "");
-    Expect(1, 69760, '\P{Is_Script_Extensions=_Brahmi}', "");
-    Expect(0, 69760, '\P{^Is_Script_Extensions=_Brahmi}', "");
-    Error('\p{Is_Scx= -brah/a/}');
-    Error('\P{Is_Scx= -brah/a/}');
+    Expect(1, 69759, '\p{Is_Script_Extensions: - Brahmi}', "");
+    Expect(0, 69759, '\p{^Is_Script_Extensions: - Brahmi}', "");
+    Expect(0, 69759, '\P{Is_Script_Extensions: - Brahmi}', "");
+    Expect(1, 69759, '\P{^Is_Script_Extensions: - Brahmi}', "");
+    Expect(0, 69760, '\p{Is_Script_Extensions: - Brahmi}', "");
+    Expect(1, 69760, '\p{^Is_Script_Extensions: - Brahmi}', "");
+    Expect(1, 69760, '\P{Is_Script_Extensions: - Brahmi}', "");
+    Expect(0, 69760, '\P{^Is_Script_Extensions: - Brahmi}', "");
+    Error('\p{Is_Scx=:= Brah}');
+    Error('\P{Is_Scx=:= Brah}');
     Expect(1, 69759, '\p{Is_Scx=brah}', "");
     Expect(0, 69759, '\p{^Is_Scx=brah}', "");
     Expect(0, 69759, '\P{Is_Scx=brah}', "");
@@ -142607,16 +143935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69760, '\p{^Is_Scx=brah}', "");
     Expect(1, 69760, '\P{Is_Scx=brah}', "");
     Expect(0, 69760, '\P{^Is_Scx=brah}', "");
-    Expect(1, 69759, '\p{Is_Scx= -Brah}', "");
-    Expect(0, 69759, '\p{^Is_Scx= -Brah}', "");
-    Expect(0, 69759, '\P{Is_Scx= -Brah}', "");
-    Expect(1, 69759, '\P{^Is_Scx= -Brah}', "");
-    Expect(0, 69760, '\p{Is_Scx= -Brah}', "");
-    Expect(1, 69760, '\p{^Is_Scx= -Brah}', "");
-    Expect(1, 69760, '\P{Is_Scx= -Brah}', "");
-    Expect(0, 69760, '\P{^Is_Scx= -Brah}', "");
-    Error('\p{Script_Extensions=:=_ Braille}');
-    Error('\P{Script_Extensions=:=_ Braille}');
+    Expect(1, 69759, '\p{Is_Scx= brah}', "");
+    Expect(0, 69759, '\p{^Is_Scx= brah}', "");
+    Expect(0, 69759, '\P{Is_Scx= brah}', "");
+    Expect(1, 69759, '\P{^Is_Scx= brah}', "");
+    Expect(0, 69760, '\p{Is_Scx= brah}', "");
+    Expect(1, 69760, '\p{^Is_Scx= brah}', "");
+    Expect(1, 69760, '\P{Is_Scx= brah}', "");
+    Expect(0, 69760, '\P{^Is_Scx= brah}', "");
+    Error('\p{Script_Extensions=:=	_braille}');
+    Error('\P{Script_Extensions=:=	_braille}');
     Expect(1, 10495, '\p{Script_Extensions=:\ABraille\z:}', "");;
     Expect(0, 10496, '\p{Script_Extensions=:\ABraille\z:}', "");;
     Expect(1, 10495, '\p{Script_Extensions=braille}', "");
@@ -142629,38 +143957,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 10496, '\P{^Script_Extensions=braille}', "");
     Expect(1, 10495, '\p{Script_Extensions=:\Abraille\z:}', "");;
     Expect(0, 10496, '\p{Script_Extensions=:\Abraille\z:}', "");;
-    Expect(1, 10495, '\p{Script_Extensions=	_braille}', "");
-    Expect(0, 10495, '\p{^Script_Extensions=	_braille}', "");
-    Expect(0, 10495, '\P{Script_Extensions=	_braille}', "");
-    Expect(1, 10495, '\P{^Script_Extensions=	_braille}', "");
-    Expect(0, 10496, '\p{Script_Extensions=	_braille}', "");
-    Expect(1, 10496, '\p{^Script_Extensions=	_braille}', "");
-    Expect(1, 10496, '\P{Script_Extensions=	_braille}', "");
-    Expect(0, 10496, '\P{^Script_Extensions=	_braille}', "");
-    Error('\p{Scx=:= 	Brai}');
-    Error('\P{Scx=:= 	Brai}');
+    Expect(1, 10495, '\p{Script_Extensions=	-Braille}', "");
+    Expect(0, 10495, '\p{^Script_Extensions=	-Braille}', "");
+    Expect(0, 10495, '\P{Script_Extensions=	-Braille}', "");
+    Expect(1, 10495, '\P{^Script_Extensions=	-Braille}', "");
+    Expect(0, 10496, '\p{Script_Extensions=	-Braille}', "");
+    Expect(1, 10496, '\p{^Script_Extensions=	-Braille}', "");
+    Expect(1, 10496, '\P{Script_Extensions=	-Braille}', "");
+    Expect(0, 10496, '\P{^Script_Extensions=	-Braille}', "");
+    Error('\p{Scx=/a/ BRAI}');
+    Error('\P{Scx=/a/ BRAI}');
     Expect(1, 10495, '\p{Scx=:\ABrai\z:}', "");;
     Expect(0, 10496, '\p{Scx=:\ABrai\z:}', "");;
-    Expect(1, 10495, '\p{Scx=brai}', "");
-    Expect(0, 10495, '\p{^Scx=brai}', "");
-    Expect(0, 10495, '\P{Scx=brai}', "");
-    Expect(1, 10495, '\P{^Scx=brai}', "");
-    Expect(0, 10496, '\p{Scx=brai}', "");
-    Expect(1, 10496, '\p{^Scx=brai}', "");
-    Expect(1, 10496, '\P{Scx=brai}', "");
-    Expect(0, 10496, '\P{^Scx=brai}', "");
+    Expect(1, 10495, '\p{Scx:	brai}', "");
+    Expect(0, 10495, '\p{^Scx:	brai}', "");
+    Expect(0, 10495, '\P{Scx:	brai}', "");
+    Expect(1, 10495, '\P{^Scx:	brai}', "");
+    Expect(0, 10496, '\p{Scx:	brai}', "");
+    Expect(1, 10496, '\p{^Scx:	brai}', "");
+    Expect(1, 10496, '\P{Scx:	brai}', "");
+    Expect(0, 10496, '\P{^Scx:	brai}', "");
     Expect(1, 10495, '\p{Scx=:\Abrai\z:}', "");;
     Expect(0, 10496, '\p{Scx=:\Abrai\z:}', "");;
-    Expect(1, 10495, '\p{Scx=  Brai}', "");
-    Expect(0, 10495, '\p{^Scx=  Brai}', "");
-    Expect(0, 10495, '\P{Scx=  Brai}', "");
-    Expect(1, 10495, '\P{^Scx=  Brai}', "");
-    Expect(0, 10496, '\p{Scx=  Brai}', "");
-    Expect(1, 10496, '\p{^Scx=  Brai}', "");
-    Expect(1, 10496, '\P{Scx=  Brai}', "");
-    Expect(0, 10496, '\P{^Scx=  Brai}', "");
-    Error('\p{Is_Script_Extensions=-_braille:=}');
-    Error('\P{Is_Script_Extensions=-_braille:=}');
+    Expect(1, 10495, '\p{Scx= 	BRAI}', "");
+    Expect(0, 10495, '\p{^Scx= 	BRAI}', "");
+    Expect(0, 10495, '\P{Scx= 	BRAI}', "");
+    Expect(1, 10495, '\P{^Scx= 	BRAI}', "");
+    Expect(0, 10496, '\p{Scx= 	BRAI}', "");
+    Expect(1, 10496, '\p{^Scx= 	BRAI}', "");
+    Expect(1, 10496, '\P{Scx= 	BRAI}', "");
+    Expect(0, 10496, '\P{^Scx= 	BRAI}', "");
+    Error('\p{Is_Script_Extensions=_/a/Braille}');
+    Error('\P{Is_Script_Extensions=_/a/Braille}');
     Expect(1, 10495, '\p{Is_Script_Extensions=braille}', "");
     Expect(0, 10495, '\p{^Is_Script_Extensions=braille}', "");
     Expect(0, 10495, '\P{Is_Script_Extensions=braille}', "");
@@ -142669,16 +143997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10496, '\p{^Is_Script_Extensions=braille}', "");
     Expect(1, 10496, '\P{Is_Script_Extensions=braille}', "");
     Expect(0, 10496, '\P{^Is_Script_Extensions=braille}', "");
-    Expect(1, 10495, '\p{Is_Script_Extensions=-BRAILLE}', "");
-    Expect(0, 10495, '\p{^Is_Script_Extensions=-BRAILLE}', "");
-    Expect(0, 10495, '\P{Is_Script_Extensions=-BRAILLE}', "");
-    Expect(1, 10495, '\P{^Is_Script_Extensions=-BRAILLE}', "");
-    Expect(0, 10496, '\p{Is_Script_Extensions=-BRAILLE}', "");
-    Expect(1, 10496, '\p{^Is_Script_Extensions=-BRAILLE}', "");
-    Expect(1, 10496, '\P{Is_Script_Extensions=-BRAILLE}', "");
-    Expect(0, 10496, '\P{^Is_Script_Extensions=-BRAILLE}', "");
-    Error('\p{Is_Scx=	:=Brai}');
-    Error('\P{Is_Scx=	:=Brai}');
+    Expect(1, 10495, '\p{Is_Script_Extensions= _Braille}', "");
+    Expect(0, 10495, '\p{^Is_Script_Extensions= _Braille}', "");
+    Expect(0, 10495, '\P{Is_Script_Extensions= _Braille}', "");
+    Expect(1, 10495, '\P{^Is_Script_Extensions= _Braille}', "");
+    Expect(0, 10496, '\p{Is_Script_Extensions= _Braille}', "");
+    Expect(1, 10496, '\p{^Is_Script_Extensions= _Braille}', "");
+    Expect(1, 10496, '\P{Is_Script_Extensions= _Braille}', "");
+    Expect(0, 10496, '\P{^Is_Script_Extensions= _Braille}', "");
+    Error('\p{Is_Scx= /a/brai}');
+    Error('\P{Is_Scx= /a/brai}');
     Expect(1, 10495, '\p{Is_Scx=brai}', "");
     Expect(0, 10495, '\p{^Is_Scx=brai}', "");
     Expect(0, 10495, '\P{Is_Scx=brai}', "");
@@ -142687,16 +144015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 10496, '\p{^Is_Scx=brai}', "");
     Expect(1, 10496, '\P{Is_Scx=brai}', "");
     Expect(0, 10496, '\P{^Is_Scx=brai}', "");
-    Expect(1, 10495, '\p{Is_Scx= BRAI}', "");
-    Expect(0, 10495, '\p{^Is_Scx= BRAI}', "");
-    Expect(0, 10495, '\P{Is_Scx= BRAI}', "");
-    Expect(1, 10495, '\P{^Is_Scx= BRAI}', "");
-    Expect(0, 10496, '\p{Is_Scx= BRAI}', "");
-    Expect(1, 10496, '\p{^Is_Scx= BRAI}', "");
-    Expect(1, 10496, '\P{Is_Scx= BRAI}', "");
-    Expect(0, 10496, '\P{^Is_Scx= BRAI}', "");
-    Error('\p{Script_Extensions= /a/Buginese}');
-    Error('\P{Script_Extensions= /a/Buginese}');
+    Expect(1, 10495, '\p{Is_Scx=_BRAI}', "");
+    Expect(0, 10495, '\p{^Is_Scx=_BRAI}', "");
+    Expect(0, 10495, '\P{Is_Scx=_BRAI}', "");
+    Expect(1, 10495, '\P{^Is_Scx=_BRAI}', "");
+    Expect(0, 10496, '\p{Is_Scx=_BRAI}', "");
+    Expect(1, 10496, '\p{^Is_Scx=_BRAI}', "");
+    Expect(1, 10496, '\P{Is_Scx=_BRAI}', "");
+    Expect(0, 10496, '\P{^Is_Scx=_BRAI}', "");
+    Error('\p{Script_Extensions=:=  BUGINESE}');
+    Error('\P{Script_Extensions=:=  BUGINESE}');
     Expect(1, 43471, '\p{Script_Extensions=:\ABuginese\z:}', "");;
     Expect(0, 43472, '\p{Script_Extensions=:\ABuginese\z:}', "");;
     Expect(1, 43471, '\p{Script_Extensions=buginese}', "");
@@ -142709,16 +144037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43472, '\P{^Script_Extensions=buginese}', "");
     Expect(1, 43471, '\p{Script_Extensions=:\Abuginese\z:}', "");;
     Expect(0, 43472, '\p{Script_Extensions=:\Abuginese\z:}', "");;
-    Expect(1, 43471, '\p{Script_Extensions=	 buginese}', "");
-    Expect(0, 43471, '\p{^Script_Extensions=	 buginese}', "");
-    Expect(0, 43471, '\P{Script_Extensions=	 buginese}', "");
-    Expect(1, 43471, '\P{^Script_Extensions=	 buginese}', "");
-    Expect(0, 43472, '\p{Script_Extensions=	 buginese}', "");
-    Expect(1, 43472, '\p{^Script_Extensions=	 buginese}', "");
-    Expect(1, 43472, '\P{Script_Extensions=	 buginese}', "");
-    Expect(0, 43472, '\P{^Script_Extensions=	 buginese}', "");
-    Error('\p{Scx=_ Bugi/a/}');
-    Error('\P{Scx=_ Bugi/a/}');
+    Expect(1, 43471, '\p{Script_Extensions=	-Buginese}', "");
+    Expect(0, 43471, '\p{^Script_Extensions=	-Buginese}', "");
+    Expect(0, 43471, '\P{Script_Extensions=	-Buginese}', "");
+    Expect(1, 43471, '\P{^Script_Extensions=	-Buginese}', "");
+    Expect(0, 43472, '\p{Script_Extensions=	-Buginese}', "");
+    Expect(1, 43472, '\p{^Script_Extensions=	-Buginese}', "");
+    Expect(1, 43472, '\P{Script_Extensions=	-Buginese}', "");
+    Expect(0, 43472, '\P{^Script_Extensions=	-Buginese}', "");
+    Error('\p{Scx=/a/_bugi}');
+    Error('\P{Scx=/a/_bugi}');
     Expect(1, 43471, '\p{Scx=:\ABugi\z:}', "");;
     Expect(0, 43472, '\p{Scx=:\ABugi\z:}', "");;
     Expect(1, 43471, '\p{Scx=bugi}', "");
@@ -142731,16 +144059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43472, '\P{^Scx=bugi}', "");
     Expect(1, 43471, '\p{Scx=:\Abugi\z:}', "");;
     Expect(0, 43472, '\p{Scx=:\Abugi\z:}', "");;
-    Expect(1, 43471, '\p{Scx=__Bugi}', "");
-    Expect(0, 43471, '\p{^Scx=__Bugi}', "");
-    Expect(0, 43471, '\P{Scx=__Bugi}', "");
-    Expect(1, 43471, '\P{^Scx=__Bugi}', "");
-    Expect(0, 43472, '\p{Scx=__Bugi}', "");
-    Expect(1, 43472, '\p{^Scx=__Bugi}', "");
-    Expect(1, 43472, '\P{Scx=__Bugi}', "");
-    Expect(0, 43472, '\P{^Scx=__Bugi}', "");
-    Error('\p{Is_Script_Extensions= 	Buginese:=}');
-    Error('\P{Is_Script_Extensions= 	Buginese:=}');
+    Expect(1, 43471, '\p{Scx=_-Bugi}', "");
+    Expect(0, 43471, '\p{^Scx=_-Bugi}', "");
+    Expect(0, 43471, '\P{Scx=_-Bugi}', "");
+    Expect(1, 43471, '\P{^Scx=_-Bugi}', "");
+    Expect(0, 43472, '\p{Scx=_-Bugi}', "");
+    Expect(1, 43472, '\p{^Scx=_-Bugi}', "");
+    Expect(1, 43472, '\P{Scx=_-Bugi}', "");
+    Expect(0, 43472, '\P{^Scx=_-Bugi}', "");
+    Error('\p{Is_Script_Extensions=:=	BUGINESE}');
+    Error('\P{Is_Script_Extensions=:=	BUGINESE}');
     Expect(1, 43471, '\p{Is_Script_Extensions=buginese}', "");
     Expect(0, 43471, '\p{^Is_Script_Extensions=buginese}', "");
     Expect(0, 43471, '\P{Is_Script_Extensions=buginese}', "");
@@ -142749,34 +144077,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43472, '\p{^Is_Script_Extensions=buginese}', "");
     Expect(1, 43472, '\P{Is_Script_Extensions=buginese}', "");
     Expect(0, 43472, '\P{^Is_Script_Extensions=buginese}', "");
-    Expect(1, 43471, '\p{Is_Script_Extensions=_Buginese}', "");
-    Expect(0, 43471, '\p{^Is_Script_Extensions=_Buginese}', "");
-    Expect(0, 43471, '\P{Is_Script_Extensions=_Buginese}', "");
-    Expect(1, 43471, '\P{^Is_Script_Extensions=_Buginese}', "");
-    Expect(0, 43472, '\p{Is_Script_Extensions=_Buginese}', "");
-    Expect(1, 43472, '\p{^Is_Script_Extensions=_Buginese}', "");
-    Expect(1, 43472, '\P{Is_Script_Extensions=_Buginese}', "");
-    Expect(0, 43472, '\P{^Is_Script_Extensions=_Buginese}', "");
-    Error('\p{Is_Scx=		bugi:=}');
-    Error('\P{Is_Scx=		bugi:=}');
-    Expect(1, 43471, '\p{Is_Scx:bugi}', "");
-    Expect(0, 43471, '\p{^Is_Scx:bugi}', "");
-    Expect(0, 43471, '\P{Is_Scx:bugi}', "");
-    Expect(1, 43471, '\P{^Is_Scx:bugi}', "");
-    Expect(0, 43472, '\p{Is_Scx:bugi}', "");
-    Expect(1, 43472, '\p{^Is_Scx:bugi}', "");
-    Expect(1, 43472, '\P{Is_Scx:bugi}', "");
-    Expect(0, 43472, '\P{^Is_Scx:bugi}', "");
-    Expect(1, 43471, '\p{Is_Scx= 	BUGI}', "");
-    Expect(0, 43471, '\p{^Is_Scx= 	BUGI}', "");
-    Expect(0, 43471, '\P{Is_Scx= 	BUGI}', "");
-    Expect(1, 43471, '\P{^Is_Scx= 	BUGI}', "");
-    Expect(0, 43472, '\p{Is_Scx= 	BUGI}', "");
-    Expect(1, 43472, '\p{^Is_Scx= 	BUGI}', "");
-    Expect(1, 43472, '\P{Is_Scx= 	BUGI}', "");
-    Expect(0, 43472, '\P{^Is_Scx= 	BUGI}', "");
-    Error('\p{Script_Extensions:		 Buhid:=}');
-    Error('\P{Script_Extensions:		 Buhid:=}');
+    Expect(1, 43471, '\p{Is_Script_Extensions= buginese}', "");
+    Expect(0, 43471, '\p{^Is_Script_Extensions= buginese}', "");
+    Expect(0, 43471, '\P{Is_Script_Extensions= buginese}', "");
+    Expect(1, 43471, '\P{^Is_Script_Extensions= buginese}', "");
+    Expect(0, 43472, '\p{Is_Script_Extensions= buginese}', "");
+    Expect(1, 43472, '\p{^Is_Script_Extensions= buginese}', "");
+    Expect(1, 43472, '\P{Is_Script_Extensions= buginese}', "");
+    Expect(0, 43472, '\P{^Is_Script_Extensions= buginese}', "");
+    Error('\p{Is_Scx: /a/-Bugi}');
+    Error('\P{Is_Scx: /a/-Bugi}');
+    Expect(1, 43471, '\p{Is_Scx=bugi}', "");
+    Expect(0, 43471, '\p{^Is_Scx=bugi}', "");
+    Expect(0, 43471, '\P{Is_Scx=bugi}', "");
+    Expect(1, 43471, '\P{^Is_Scx=bugi}', "");
+    Expect(0, 43472, '\p{Is_Scx=bugi}', "");
+    Expect(1, 43472, '\p{^Is_Scx=bugi}', "");
+    Expect(1, 43472, '\P{Is_Scx=bugi}', "");
+    Expect(0, 43472, '\P{^Is_Scx=bugi}', "");
+    Expect(1, 43471, '\p{Is_Scx=Bugi}', "");
+    Expect(0, 43471, '\p{^Is_Scx=Bugi}', "");
+    Expect(0, 43471, '\P{Is_Scx=Bugi}', "");
+    Expect(1, 43471, '\P{^Is_Scx=Bugi}', "");
+    Expect(0, 43472, '\p{Is_Scx=Bugi}', "");
+    Expect(1, 43472, '\p{^Is_Scx=Bugi}', "");
+    Expect(1, 43472, '\P{Is_Scx=Bugi}', "");
+    Expect(0, 43472, '\P{^Is_Scx=Bugi}', "");
+    Error('\p{Script_Extensions=:=  Buhid}');
+    Error('\P{Script_Extensions=:=  Buhid}');
     Expect(1, 5971, '\p{Script_Extensions=:\ABuhid\z:}', "");;
     Expect(0, 5972, '\p{Script_Extensions=:\ABuhid\z:}', "");;
     Expect(1, 5971, '\p{Script_Extensions=buhid}', "");
@@ -142789,16 +144117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5972, '\P{^Script_Extensions=buhid}', "");
     Expect(1, 5971, '\p{Script_Extensions=:\Abuhid\z:}', "");;
     Expect(0, 5972, '\p{Script_Extensions=:\Abuhid\z:}', "");;
-    Expect(1, 5971, '\p{Script_Extensions=	-Buhid}', "");
-    Expect(0, 5971, '\p{^Script_Extensions=	-Buhid}', "");
-    Expect(0, 5971, '\P{Script_Extensions=	-Buhid}', "");
-    Expect(1, 5971, '\P{^Script_Extensions=	-Buhid}', "");
-    Expect(0, 5972, '\p{Script_Extensions=	-Buhid}', "");
-    Expect(1, 5972, '\p{^Script_Extensions=	-Buhid}', "");
-    Expect(1, 5972, '\P{Script_Extensions=	-Buhid}', "");
-    Expect(0, 5972, '\P{^Script_Extensions=	-Buhid}', "");
-    Error('\p{Scx= /a/Buhd}');
-    Error('\P{Scx= /a/Buhd}');
+    Expect(1, 5971, '\p{Script_Extensions=		BUHID}', "");
+    Expect(0, 5971, '\p{^Script_Extensions=		BUHID}', "");
+    Expect(0, 5971, '\P{Script_Extensions=		BUHID}', "");
+    Expect(1, 5971, '\P{^Script_Extensions=		BUHID}', "");
+    Expect(0, 5972, '\p{Script_Extensions=		BUHID}', "");
+    Expect(1, 5972, '\p{^Script_Extensions=		BUHID}', "");
+    Expect(1, 5972, '\P{Script_Extensions=		BUHID}', "");
+    Expect(0, 5972, '\P{^Script_Extensions=		BUHID}', "");
+    Error('\p{Scx=- Buhd/a/}');
+    Error('\P{Scx=- Buhd/a/}');
     Expect(1, 5971, '\p{Scx=:\ABuhd\z:}', "");;
     Expect(0, 5972, '\p{Scx=:\ABuhd\z:}', "");;
     Expect(1, 5971, '\p{Scx=buhd}', "");
@@ -142811,34 +144139,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5972, '\P{^Scx=buhd}', "");
     Expect(1, 5971, '\p{Scx=:\Abuhd\z:}', "");;
     Expect(0, 5972, '\p{Scx=:\Abuhd\z:}', "");;
-    Expect(1, 5971, '\p{Scx=	BUHD}', "");
-    Expect(0, 5971, '\p{^Scx=	BUHD}', "");
-    Expect(0, 5971, '\P{Scx=	BUHD}', "");
-    Expect(1, 5971, '\P{^Scx=	BUHD}', "");
-    Expect(0, 5972, '\p{Scx=	BUHD}', "");
-    Expect(1, 5972, '\p{^Scx=	BUHD}', "");
-    Expect(1, 5972, '\P{Scx=	BUHD}', "");
-    Expect(0, 5972, '\P{^Scx=	BUHD}', "");
-    Error('\p{Is_Script_Extensions=/a/--Buhid}');
-    Error('\P{Is_Script_Extensions=/a/--Buhid}');
-    Expect(1, 5971, '\p{Is_Script_Extensions:   buhid}', "");
-    Expect(0, 5971, '\p{^Is_Script_Extensions:   buhid}', "");
-    Expect(0, 5971, '\P{Is_Script_Extensions:   buhid}', "");
-    Expect(1, 5971, '\P{^Is_Script_Extensions:   buhid}', "");
-    Expect(0, 5972, '\p{Is_Script_Extensions:   buhid}', "");
-    Expect(1, 5972, '\p{^Is_Script_Extensions:   buhid}', "");
-    Expect(1, 5972, '\P{Is_Script_Extensions:   buhid}', "");
-    Expect(0, 5972, '\P{^Is_Script_Extensions:   buhid}', "");
-    Expect(1, 5971, '\p{Is_Script_Extensions=-BUHID}', "");
-    Expect(0, 5971, '\p{^Is_Script_Extensions=-BUHID}', "");
-    Expect(0, 5971, '\P{Is_Script_Extensions=-BUHID}', "");
-    Expect(1, 5971, '\P{^Is_Script_Extensions=-BUHID}', "");
-    Expect(0, 5972, '\p{Is_Script_Extensions=-BUHID}', "");
-    Expect(1, 5972, '\p{^Is_Script_Extensions=-BUHID}', "");
-    Expect(1, 5972, '\P{Is_Script_Extensions=-BUHID}', "");
-    Expect(0, 5972, '\P{^Is_Script_Extensions=-BUHID}', "");
-    Error('\p{Is_Scx=_/a/BUHD}');
-    Error('\P{Is_Scx=_/a/BUHD}');
+    Expect(1, 5971, '\p{Scx=-buhd}', "");
+    Expect(0, 5971, '\p{^Scx=-buhd}', "");
+    Expect(0, 5971, '\P{Scx=-buhd}', "");
+    Expect(1, 5971, '\P{^Scx=-buhd}', "");
+    Expect(0, 5972, '\p{Scx=-buhd}', "");
+    Expect(1, 5972, '\p{^Scx=-buhd}', "");
+    Expect(1, 5972, '\P{Scx=-buhd}', "");
+    Expect(0, 5972, '\P{^Scx=-buhd}', "");
+    Error('\p{Is_Script_Extensions= :=Buhid}');
+    Error('\P{Is_Script_Extensions= :=Buhid}');
+    Expect(1, 5971, '\p{Is_Script_Extensions=buhid}', "");
+    Expect(0, 5971, '\p{^Is_Script_Extensions=buhid}', "");
+    Expect(0, 5971, '\P{Is_Script_Extensions=buhid}', "");
+    Expect(1, 5971, '\P{^Is_Script_Extensions=buhid}', "");
+    Expect(0, 5972, '\p{Is_Script_Extensions=buhid}', "");
+    Expect(1, 5972, '\p{^Is_Script_Extensions=buhid}', "");
+    Expect(1, 5972, '\P{Is_Script_Extensions=buhid}', "");
+    Expect(0, 5972, '\P{^Is_Script_Extensions=buhid}', "");
+    Expect(1, 5971, '\p{Is_Script_Extensions=-buhid}', "");
+    Expect(0, 5971, '\p{^Is_Script_Extensions=-buhid}', "");
+    Expect(0, 5971, '\P{Is_Script_Extensions=-buhid}', "");
+    Expect(1, 5971, '\P{^Is_Script_Extensions=-buhid}', "");
+    Expect(0, 5972, '\p{Is_Script_Extensions=-buhid}', "");
+    Expect(1, 5972, '\p{^Is_Script_Extensions=-buhid}', "");
+    Expect(1, 5972, '\P{Is_Script_Extensions=-buhid}', "");
+    Expect(0, 5972, '\P{^Is_Script_Extensions=-buhid}', "");
+    Error('\p{Is_Scx=_	Buhd/a/}');
+    Error('\P{Is_Scx=_	Buhd/a/}');
     Expect(1, 5971, '\p{Is_Scx=buhd}', "");
     Expect(0, 5971, '\p{^Is_Scx=buhd}', "");
     Expect(0, 5971, '\P{Is_Scx=buhd}', "");
@@ -142847,16 +144175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5972, '\p{^Is_Scx=buhd}', "");
     Expect(1, 5972, '\P{Is_Scx=buhd}', "");
     Expect(0, 5972, '\P{^Is_Scx=buhd}', "");
-    Expect(1, 5971, '\p{Is_Scx=-_buhd}', "");
-    Expect(0, 5971, '\p{^Is_Scx=-_buhd}', "");
-    Expect(0, 5971, '\P{Is_Scx=-_buhd}', "");
-    Expect(1, 5971, '\P{^Is_Scx=-_buhd}', "");
-    Expect(0, 5972, '\p{Is_Scx=-_buhd}', "");
-    Expect(1, 5972, '\p{^Is_Scx=-_buhd}', "");
-    Expect(1, 5972, '\P{Is_Scx=-_buhd}', "");
-    Expect(0, 5972, '\P{^Is_Scx=-_buhd}', "");
-    Error('\p{Script_Extensions=--Chakma/a/}');
-    Error('\P{Script_Extensions=--Chakma/a/}');
+    Expect(1, 5971, '\p{Is_Scx=		Buhd}', "");
+    Expect(0, 5971, '\p{^Is_Scx=		Buhd}', "");
+    Expect(0, 5971, '\P{Is_Scx=		Buhd}', "");
+    Expect(1, 5971, '\P{^Is_Scx=		Buhd}', "");
+    Expect(0, 5972, '\p{Is_Scx=		Buhd}', "");
+    Expect(1, 5972, '\p{^Is_Scx=		Buhd}', "");
+    Expect(1, 5972, '\P{Is_Scx=		Buhd}', "");
+    Expect(0, 5972, '\P{^Is_Scx=		Buhd}', "");
+    Error('\p{Script_Extensions=-/a/Chakma}');
+    Error('\P{Script_Extensions=-/a/Chakma}');
     Expect(1, 69959, '\p{Script_Extensions=:\AChakma\z:}', "");;
     Expect(0, 69960, '\p{Script_Extensions=:\AChakma\z:}', "");;
     Expect(1, 69959, '\p{Script_Extensions=chakma}', "");
@@ -142869,38 +144197,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69960, '\P{^Script_Extensions=chakma}', "");
     Expect(1, 69959, '\p{Script_Extensions=:\Achakma\z:}', "");;
     Expect(0, 69960, '\p{Script_Extensions=:\Achakma\z:}', "");;
-    Expect(1, 69959, '\p{Script_Extensions= CHAKMA}', "");
-    Expect(0, 69959, '\p{^Script_Extensions= CHAKMA}', "");
-    Expect(0, 69959, '\P{Script_Extensions= CHAKMA}', "");
-    Expect(1, 69959, '\P{^Script_Extensions= CHAKMA}', "");
-    Expect(0, 69960, '\p{Script_Extensions= CHAKMA}', "");
-    Expect(1, 69960, '\p{^Script_Extensions= CHAKMA}', "");
-    Expect(1, 69960, '\P{Script_Extensions= CHAKMA}', "");
-    Expect(0, 69960, '\P{^Script_Extensions= CHAKMA}', "");
-    Error('\p{Scx=/a/	Cakm}');
-    Error('\P{Scx=/a/	Cakm}');
+    Expect(1, 69959, '\p{Script_Extensions=__chakma}', "");
+    Expect(0, 69959, '\p{^Script_Extensions=__chakma}', "");
+    Expect(0, 69959, '\P{Script_Extensions=__chakma}', "");
+    Expect(1, 69959, '\P{^Script_Extensions=__chakma}', "");
+    Expect(0, 69960, '\p{Script_Extensions=__chakma}', "");
+    Expect(1, 69960, '\p{^Script_Extensions=__chakma}', "");
+    Expect(1, 69960, '\P{Script_Extensions=__chakma}', "");
+    Expect(0, 69960, '\P{^Script_Extensions=__chakma}', "");
+    Error('\p{Scx:/a/  cakm}');
+    Error('\P{Scx:/a/  cakm}');
     Expect(1, 69959, '\p{Scx=:\ACakm\z:}', "");;
     Expect(0, 69960, '\p{Scx=:\ACakm\z:}', "");;
-    Expect(1, 69959, '\p{Scx: cakm}', "");
-    Expect(0, 69959, '\p{^Scx: cakm}', "");
-    Expect(0, 69959, '\P{Scx: cakm}', "");
-    Expect(1, 69959, '\P{^Scx: cakm}', "");
-    Expect(0, 69960, '\p{Scx: cakm}', "");
-    Expect(1, 69960, '\p{^Scx: cakm}', "");
-    Expect(1, 69960, '\P{Scx: cakm}', "");
-    Expect(0, 69960, '\P{^Scx: cakm}', "");
+    Expect(1, 69959, '\p{Scx=cakm}', "");
+    Expect(0, 69959, '\p{^Scx=cakm}', "");
+    Expect(0, 69959, '\P{Scx=cakm}', "");
+    Expect(1, 69959, '\P{^Scx=cakm}', "");
+    Expect(0, 69960, '\p{Scx=cakm}', "");
+    Expect(1, 69960, '\p{^Scx=cakm}', "");
+    Expect(1, 69960, '\P{Scx=cakm}', "");
+    Expect(0, 69960, '\P{^Scx=cakm}', "");
     Expect(1, 69959, '\p{Scx=:\Acakm\z:}', "");;
     Expect(0, 69960, '\p{Scx=:\Acakm\z:}', "");;
-    Expect(1, 69959, '\p{Scx=	 CAKM}', "");
-    Expect(0, 69959, '\p{^Scx=	 CAKM}', "");
-    Expect(0, 69959, '\P{Scx=	 CAKM}', "");
-    Expect(1, 69959, '\P{^Scx=	 CAKM}', "");
-    Expect(0, 69960, '\p{Scx=	 CAKM}', "");
-    Expect(1, 69960, '\p{^Scx=	 CAKM}', "");
-    Expect(1, 69960, '\P{Scx=	 CAKM}', "");
-    Expect(0, 69960, '\P{^Scx=	 CAKM}', "");
-    Error('\p{Is_Script_Extensions:	--Chakma/a/}');
-    Error('\P{Is_Script_Extensions:	--Chakma/a/}');
+    Expect(1, 69959, '\p{Scx=_Cakm}', "");
+    Expect(0, 69959, '\p{^Scx=_Cakm}', "");
+    Expect(0, 69959, '\P{Scx=_Cakm}', "");
+    Expect(1, 69959, '\P{^Scx=_Cakm}', "");
+    Expect(0, 69960, '\p{Scx=_Cakm}', "");
+    Expect(1, 69960, '\p{^Scx=_Cakm}', "");
+    Expect(1, 69960, '\P{Scx=_Cakm}', "");
+    Expect(0, 69960, '\P{^Scx=_Cakm}', "");
+    Error('\p{Is_Script_Extensions=	:=Chakma}');
+    Error('\P{Is_Script_Extensions=	:=Chakma}');
     Expect(1, 69959, '\p{Is_Script_Extensions=chakma}', "");
     Expect(0, 69959, '\p{^Is_Script_Extensions=chakma}', "");
     Expect(0, 69959, '\P{Is_Script_Extensions=chakma}', "");
@@ -142909,56 +144237,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69960, '\p{^Is_Script_Extensions=chakma}', "");
     Expect(1, 69960, '\P{Is_Script_Extensions=chakma}', "");
     Expect(0, 69960, '\P{^Is_Script_Extensions=chakma}', "");
-    Expect(1, 69959, '\p{Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(0, 69959, '\p{^Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(0, 69959, '\P{Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(1, 69959, '\P{^Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(0, 69960, '\p{Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(1, 69960, '\p{^Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(1, 69960, '\P{Is_Script_Extensions=_-CHAKMA}', "");
-    Expect(0, 69960, '\P{^Is_Script_Extensions=_-CHAKMA}', "");
-    Error('\p{Is_Scx=	:=Cakm}');
-    Error('\P{Is_Scx=	:=Cakm}');
-    Expect(1, 69959, '\p{Is_Scx:	cakm}', "");
-    Expect(0, 69959, '\p{^Is_Scx:	cakm}', "");
-    Expect(0, 69959, '\P{Is_Scx:	cakm}', "");
-    Expect(1, 69959, '\P{^Is_Scx:	cakm}', "");
-    Expect(0, 69960, '\p{Is_Scx:	cakm}', "");
-    Expect(1, 69960, '\p{^Is_Scx:	cakm}', "");
-    Expect(1, 69960, '\P{Is_Scx:	cakm}', "");
-    Expect(0, 69960, '\P{^Is_Scx:	cakm}', "");
-    Expect(1, 69959, '\p{Is_Scx=		Cakm}', "");
-    Expect(0, 69959, '\p{^Is_Scx=		Cakm}', "");
-    Expect(0, 69959, '\P{Is_Scx=		Cakm}', "");
-    Expect(1, 69959, '\P{^Is_Scx=		Cakm}', "");
-    Expect(0, 69960, '\p{Is_Scx=		Cakm}', "");
-    Expect(1, 69960, '\p{^Is_Scx=		Cakm}', "");
-    Expect(1, 69960, '\P{Is_Scx=		Cakm}', "");
-    Expect(0, 69960, '\P{^Is_Scx=		Cakm}', "");
-    Error('\p{Script_Extensions:	_:=canadian_Aboriginal}');
-    Error('\P{Script_Extensions:	_:=canadian_Aboriginal}');
+    Expect(1, 69959, '\p{Is_Script_Extensions= -CHAKMA}', "");
+    Expect(0, 69959, '\p{^Is_Script_Extensions= -CHAKMA}', "");
+    Expect(0, 69959, '\P{Is_Script_Extensions= -CHAKMA}', "");
+    Expect(1, 69959, '\P{^Is_Script_Extensions= -CHAKMA}', "");
+    Expect(0, 69960, '\p{Is_Script_Extensions= -CHAKMA}', "");
+    Expect(1, 69960, '\p{^Is_Script_Extensions= -CHAKMA}', "");
+    Expect(1, 69960, '\P{Is_Script_Extensions= -CHAKMA}', "");
+    Expect(0, 69960, '\P{^Is_Script_Extensions= -CHAKMA}', "");
+    Error('\p{Is_Scx: 	/a/CAKM}');
+    Error('\P{Is_Scx: 	/a/CAKM}');
+    Expect(1, 69959, '\p{Is_Scx=cakm}', "");
+    Expect(0, 69959, '\p{^Is_Scx=cakm}', "");
+    Expect(0, 69959, '\P{Is_Scx=cakm}', "");
+    Expect(1, 69959, '\P{^Is_Scx=cakm}', "");
+    Expect(0, 69960, '\p{Is_Scx=cakm}', "");
+    Expect(1, 69960, '\p{^Is_Scx=cakm}', "");
+    Expect(1, 69960, '\P{Is_Scx=cakm}', "");
+    Expect(0, 69960, '\P{^Is_Scx=cakm}', "");
+    Expect(1, 69959, '\p{Is_Scx=Cakm}', "");
+    Expect(0, 69959, '\p{^Is_Scx=Cakm}', "");
+    Expect(0, 69959, '\P{Is_Scx=Cakm}', "");
+    Expect(1, 69959, '\P{^Is_Scx=Cakm}', "");
+    Expect(0, 69960, '\p{Is_Scx=Cakm}', "");
+    Expect(1, 69960, '\p{^Is_Scx=Cakm}', "");
+    Expect(1, 69960, '\P{Is_Scx=Cakm}', "");
+    Expect(0, 69960, '\P{^Is_Scx=Cakm}', "");
+    Error('\p{Script_Extensions: -_canadian_ABORIGINAL/a/}');
+    Error('\P{Script_Extensions: -_canadian_ABORIGINAL/a/}');
     Expect(1, 72383, '\p{Script_Extensions=:\ACanadian_Aboriginal\z:}', "");;
     Expect(0, 72384, '\p{Script_Extensions=:\ACanadian_Aboriginal\z:}', "");;
-    Expect(1, 72383, '\p{Script_Extensions=canadianaboriginal}', "");
-    Expect(0, 72383, '\p{^Script_Extensions=canadianaboriginal}', "");
-    Expect(0, 72383, '\P{Script_Extensions=canadianaboriginal}', "");
-    Expect(1, 72383, '\P{^Script_Extensions=canadianaboriginal}', "");
-    Expect(0, 72384, '\p{Script_Extensions=canadianaboriginal}', "");
-    Expect(1, 72384, '\p{^Script_Extensions=canadianaboriginal}', "");
-    Expect(1, 72384, '\P{Script_Extensions=canadianaboriginal}', "");
-    Expect(0, 72384, '\P{^Script_Extensions=canadianaboriginal}', "");
+    Expect(1, 72383, '\p{Script_Extensions:canadianaboriginal}', "");
+    Expect(0, 72383, '\p{^Script_Extensions:canadianaboriginal}', "");
+    Expect(0, 72383, '\P{Script_Extensions:canadianaboriginal}', "");
+    Expect(1, 72383, '\P{^Script_Extensions:canadianaboriginal}', "");
+    Expect(0, 72384, '\p{Script_Extensions:canadianaboriginal}', "");
+    Expect(1, 72384, '\p{^Script_Extensions:canadianaboriginal}', "");
+    Expect(1, 72384, '\P{Script_Extensions:canadianaboriginal}', "");
+    Expect(0, 72384, '\P{^Script_Extensions:canadianaboriginal}', "");
     Expect(1, 72383, '\p{Script_Extensions=:\Acanadianaboriginal\z:}', "");;
     Expect(0, 72384, '\p{Script_Extensions=:\Acanadianaboriginal\z:}', "");;
-    Expect(1, 72383, '\p{Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(0, 72383, '\p{^Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(0, 72383, '\P{Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(1, 72383, '\P{^Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(0, 72384, '\p{Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(1, 72384, '\p{^Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(1, 72384, '\P{Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Expect(0, 72384, '\P{^Script_Extensions=	CANADIAN_Aboriginal}', "");
-    Error('\p{Scx=:=_	cans}');
-    Error('\P{Scx=:=_	cans}');
+    Expect(1, 72383, '\p{Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(0, 72383, '\p{^Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(0, 72383, '\P{Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(1, 72383, '\P{^Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(0, 72384, '\p{Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(1, 72384, '\p{^Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(1, 72384, '\P{Script_Extensions=	Canadian_Aboriginal}', "");
+    Expect(0, 72384, '\P{^Script_Extensions=	Canadian_Aboriginal}', "");
+    Error('\p{Scx=_:=Cans}');
+    Error('\P{Scx=_:=Cans}');
     Expect(1, 72383, '\p{Scx=:\ACans\z:}', "");;
     Expect(0, 72384, '\p{Scx=:\ACans\z:}', "");;
     Expect(1, 72383, '\p{Scx=cans}', "");
@@ -142971,16 +144299,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72384, '\P{^Scx=cans}', "");
     Expect(1, 72383, '\p{Scx=:\Acans\z:}', "");;
     Expect(0, 72384, '\p{Scx=:\Acans\z:}', "");;
-    Expect(1, 72383, '\p{Scx= _Cans}', "");
-    Expect(0, 72383, '\p{^Scx= _Cans}', "");
-    Expect(0, 72383, '\P{Scx= _Cans}', "");
-    Expect(1, 72383, '\P{^Scx= _Cans}', "");
-    Expect(0, 72384, '\p{Scx= _Cans}', "");
-    Expect(1, 72384, '\p{^Scx= _Cans}', "");
-    Expect(1, 72384, '\P{Scx= _Cans}', "");
-    Expect(0, 72384, '\P{^Scx= _Cans}', "");
-    Error('\p{Is_Script_Extensions=:=	 canadian_Aboriginal}');
-    Error('\P{Is_Script_Extensions=:=	 canadian_Aboriginal}');
+    Expect(1, 72383, '\p{Scx=_ CANS}', "");
+    Expect(0, 72383, '\p{^Scx=_ CANS}', "");
+    Expect(0, 72383, '\P{Scx=_ CANS}', "");
+    Expect(1, 72383, '\P{^Scx=_ CANS}', "");
+    Expect(0, 72384, '\p{Scx=_ CANS}', "");
+    Expect(1, 72384, '\p{^Scx=_ CANS}', "");
+    Expect(1, 72384, '\P{Scx=_ CANS}', "");
+    Expect(0, 72384, '\P{^Scx=_ CANS}', "");
+    Error('\p{Is_Script_Extensions=- CANADIAN_Aboriginal:=}');
+    Error('\P{Is_Script_Extensions=- CANADIAN_Aboriginal:=}');
     Expect(1, 72383, '\p{Is_Script_Extensions=canadianaboriginal}', "");
     Expect(0, 72383, '\p{^Is_Script_Extensions=canadianaboriginal}', "");
     Expect(0, 72383, '\P{Is_Script_Extensions=canadianaboriginal}', "");
@@ -142989,16 +144317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^Is_Script_Extensions=canadianaboriginal}', "");
     Expect(1, 72384, '\P{Is_Script_Extensions=canadianaboriginal}', "");
     Expect(0, 72384, '\P{^Is_Script_Extensions=canadianaboriginal}', "");
-    Expect(1, 72383, '\p{Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(0, 72383, '\p{^Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(0, 72383, '\P{Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(1, 72383, '\P{^Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(0, 72384, '\p{Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(1, 72384, '\p{^Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(1, 72384, '\P{Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Expect(0, 72384, '\P{^Is_Script_Extensions=_-Canadian_Aboriginal}', "");
-    Error('\p{Is_Scx=:=-Cans}');
-    Error('\P{Is_Scx=:=-Cans}');
+    Expect(1, 72383, '\p{Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(0, 72383, '\p{^Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(0, 72383, '\P{Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(1, 72383, '\P{^Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(0, 72384, '\p{Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(1, 72384, '\p{^Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(1, 72384, '\P{Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Expect(0, 72384, '\P{^Is_Script_Extensions=  canadian_Aboriginal}', "");
+    Error('\p{Is_Scx=:=	_CANS}');
+    Error('\P{Is_Scx=:=	_CANS}');
     Expect(1, 72383, '\p{Is_Scx=cans}', "");
     Expect(0, 72383, '\p{^Is_Scx=cans}', "");
     Expect(0, 72383, '\P{Is_Scx=cans}', "");
@@ -143007,16 +144335,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72384, '\p{^Is_Scx=cans}', "");
     Expect(1, 72384, '\P{Is_Scx=cans}', "");
     Expect(0, 72384, '\P{^Is_Scx=cans}', "");
-    Expect(1, 72383, '\p{Is_Scx=	cans}', "");
-    Expect(0, 72383, '\p{^Is_Scx=	cans}', "");
-    Expect(0, 72383, '\P{Is_Scx=	cans}', "");
-    Expect(1, 72383, '\P{^Is_Scx=	cans}', "");
-    Expect(0, 72384, '\p{Is_Scx=	cans}', "");
-    Expect(1, 72384, '\p{^Is_Scx=	cans}', "");
-    Expect(1, 72384, '\P{Is_Scx=	cans}', "");
-    Expect(0, 72384, '\P{^Is_Scx=	cans}', "");
-    Error('\p{Script_Extensions=:=-	CARIAN}');
-    Error('\P{Script_Extensions=:=-	CARIAN}');
+    Expect(1, 72383, '\p{Is_Scx=--Cans}', "");
+    Expect(0, 72383, '\p{^Is_Scx=--Cans}', "");
+    Expect(0, 72383, '\P{Is_Scx=--Cans}', "");
+    Expect(1, 72383, '\P{^Is_Scx=--Cans}', "");
+    Expect(0, 72384, '\p{Is_Scx=--Cans}', "");
+    Expect(1, 72384, '\p{^Is_Scx=--Cans}', "");
+    Expect(1, 72384, '\P{Is_Scx=--Cans}', "");
+    Expect(0, 72384, '\P{^Is_Scx=--Cans}', "");
+    Error('\p{Script_Extensions= -Carian:=}');
+    Error('\P{Script_Extensions= -Carian:=}');
     Expect(1, 66256, '\p{Script_Extensions=:\ACarian\z:}', "");;
     Expect(0, 66257, '\p{Script_Extensions=:\ACarian\z:}', "");;
     Expect(1, 66256, '\p{Script_Extensions=carian}', "");
@@ -143029,16 +144357,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66257, '\P{^Script_Extensions=carian}', "");
     Expect(1, 66256, '\p{Script_Extensions=:\Acarian\z:}', "");;
     Expect(0, 66257, '\p{Script_Extensions=:\Acarian\z:}', "");;
-    Expect(1, 66256, '\p{Script_Extensions= _CARIAN}', "");
-    Expect(0, 66256, '\p{^Script_Extensions= _CARIAN}', "");
-    Expect(0, 66256, '\P{Script_Extensions= _CARIAN}', "");
-    Expect(1, 66256, '\P{^Script_Extensions= _CARIAN}', "");
-    Expect(0, 66257, '\p{Script_Extensions= _CARIAN}', "");
-    Expect(1, 66257, '\p{^Script_Extensions= _CARIAN}', "");
-    Expect(1, 66257, '\P{Script_Extensions= _CARIAN}', "");
-    Expect(0, 66257, '\P{^Script_Extensions= _CARIAN}', "");
-    Error('\p{Scx=_:=Cari}');
-    Error('\P{Scx=_:=Cari}');
+    Expect(1, 66256, '\p{Script_Extensions:   --Carian}', "");
+    Expect(0, 66256, '\p{^Script_Extensions:   --Carian}', "");
+    Expect(0, 66256, '\P{Script_Extensions:   --Carian}', "");
+    Expect(1, 66256, '\P{^Script_Extensions:   --Carian}', "");
+    Expect(0, 66257, '\p{Script_Extensions:   --Carian}', "");
+    Expect(1, 66257, '\p{^Script_Extensions:   --Carian}', "");
+    Expect(1, 66257, '\P{Script_Extensions:   --Carian}', "");
+    Expect(0, 66257, '\P{^Script_Extensions:   --Carian}', "");
+    Error('\p{Scx=CARI/a/}');
+    Error('\P{Scx=CARI/a/}');
     Expect(1, 66256, '\p{Scx=:\ACari\z:}', "");;
     Expect(0, 66257, '\p{Scx=:\ACari\z:}', "");;
     Expect(1, 66256, '\p{Scx=cari}', "");
@@ -143051,34 +144379,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66257, '\P{^Scx=cari}', "");
     Expect(1, 66256, '\p{Scx=:\Acari\z:}', "");;
     Expect(0, 66257, '\p{Scx=:\Acari\z:}', "");;
-    Expect(1, 66256, '\p{Scx:-CARI}', "");
-    Expect(0, 66256, '\p{^Scx:-CARI}', "");
-    Expect(0, 66256, '\P{Scx:-CARI}', "");
-    Expect(1, 66256, '\P{^Scx:-CARI}', "");
-    Expect(0, 66257, '\p{Scx:-CARI}', "");
-    Expect(1, 66257, '\p{^Scx:-CARI}', "");
-    Expect(1, 66257, '\P{Scx:-CARI}', "");
-    Expect(0, 66257, '\P{^Scx:-CARI}', "");
-    Error('\p{Is_Script_Extensions=--Carian/a/}');
-    Error('\P{Is_Script_Extensions=--Carian/a/}');
-    Expect(1, 66256, '\p{Is_Script_Extensions=carian}', "");
-    Expect(0, 66256, '\p{^Is_Script_Extensions=carian}', "");
-    Expect(0, 66256, '\P{Is_Script_Extensions=carian}', "");
-    Expect(1, 66256, '\P{^Is_Script_Extensions=carian}', "");
-    Expect(0, 66257, '\p{Is_Script_Extensions=carian}', "");
-    Expect(1, 66257, '\p{^Is_Script_Extensions=carian}', "");
-    Expect(1, 66257, '\P{Is_Script_Extensions=carian}', "");
-    Expect(0, 66257, '\P{^Is_Script_Extensions=carian}', "");
-    Expect(1, 66256, '\p{Is_Script_Extensions= 	Carian}', "");
-    Expect(0, 66256, '\p{^Is_Script_Extensions= 	Carian}', "");
-    Expect(0, 66256, '\P{Is_Script_Extensions= 	Carian}', "");
-    Expect(1, 66256, '\P{^Is_Script_Extensions= 	Carian}', "");
-    Expect(0, 66257, '\p{Is_Script_Extensions= 	Carian}', "");
-    Expect(1, 66257, '\p{^Is_Script_Extensions= 	Carian}', "");
-    Expect(1, 66257, '\P{Is_Script_Extensions= 	Carian}', "");
-    Expect(0, 66257, '\P{^Is_Script_Extensions= 	Carian}', "");
-    Error('\p{Is_Scx=-/a/cari}');
-    Error('\P{Is_Scx=-/a/cari}');
+    Expect(1, 66256, '\p{Scx= -CARI}', "");
+    Expect(0, 66256, '\p{^Scx= -CARI}', "");
+    Expect(0, 66256, '\P{Scx= -CARI}', "");
+    Expect(1, 66256, '\P{^Scx= -CARI}', "");
+    Expect(0, 66257, '\p{Scx= -CARI}', "");
+    Expect(1, 66257, '\p{^Scx= -CARI}', "");
+    Expect(1, 66257, '\P{Scx= -CARI}', "");
+    Expect(0, 66257, '\P{^Scx= -CARI}', "");
+    Error('\p{Is_Script_Extensions=		CARIAN/a/}');
+    Error('\P{Is_Script_Extensions=		CARIAN/a/}');
+    Expect(1, 66256, '\p{Is_Script_Extensions:	carian}', "");
+    Expect(0, 66256, '\p{^Is_Script_Extensions:	carian}', "");
+    Expect(0, 66256, '\P{Is_Script_Extensions:	carian}', "");
+    Expect(1, 66256, '\P{^Is_Script_Extensions:	carian}', "");
+    Expect(0, 66257, '\p{Is_Script_Extensions:	carian}', "");
+    Expect(1, 66257, '\p{^Is_Script_Extensions:	carian}', "");
+    Expect(1, 66257, '\P{Is_Script_Extensions:	carian}', "");
+    Expect(0, 66257, '\P{^Is_Script_Extensions:	carian}', "");
+    Expect(1, 66256, '\p{Is_Script_Extensions=_ CARIAN}', "");
+    Expect(0, 66256, '\p{^Is_Script_Extensions=_ CARIAN}', "");
+    Expect(0, 66256, '\P{Is_Script_Extensions=_ CARIAN}', "");
+    Expect(1, 66256, '\P{^Is_Script_Extensions=_ CARIAN}', "");
+    Expect(0, 66257, '\p{Is_Script_Extensions=_ CARIAN}', "");
+    Expect(1, 66257, '\p{^Is_Script_Extensions=_ CARIAN}', "");
+    Expect(1, 66257, '\P{Is_Script_Extensions=_ CARIAN}', "");
+    Expect(0, 66257, '\P{^Is_Script_Extensions=_ CARIAN}', "");
+    Error('\p{Is_Scx=	 cari:=}');
+    Error('\P{Is_Scx=	 cari:=}');
     Expect(1, 66256, '\p{Is_Scx=cari}', "");
     Expect(0, 66256, '\p{^Is_Scx=cari}', "");
     Expect(0, 66256, '\P{Is_Scx=cari}', "");
@@ -143087,38 +144415,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66257, '\p{^Is_Scx=cari}', "");
     Expect(1, 66257, '\P{Is_Scx=cari}', "");
     Expect(0, 66257, '\P{^Is_Scx=cari}', "");
-    Expect(1, 66256, '\p{Is_Scx=-_CARI}', "");
-    Expect(0, 66256, '\p{^Is_Scx=-_CARI}', "");
-    Expect(0, 66256, '\P{Is_Scx=-_CARI}', "");
-    Expect(1, 66256, '\P{^Is_Scx=-_CARI}', "");
-    Expect(0, 66257, '\p{Is_Scx=-_CARI}', "");
-    Expect(1, 66257, '\p{^Is_Scx=-_CARI}', "");
-    Expect(1, 66257, '\P{Is_Scx=-_CARI}', "");
-    Expect(0, 66257, '\P{^Is_Scx=-_CARI}', "");
-    Error('\p{Script_Extensions=/a/ _cham}');
-    Error('\P{Script_Extensions=/a/ _cham}');
+    Expect(1, 66256, '\p{Is_Scx= 	Cari}', "");
+    Expect(0, 66256, '\p{^Is_Scx= 	Cari}', "");
+    Expect(0, 66256, '\P{Is_Scx= 	Cari}', "");
+    Expect(1, 66256, '\P{^Is_Scx= 	Cari}', "");
+    Expect(0, 66257, '\p{Is_Scx= 	Cari}', "");
+    Expect(1, 66257, '\p{^Is_Scx= 	Cari}', "");
+    Expect(1, 66257, '\P{Is_Scx= 	Cari}', "");
+    Expect(0, 66257, '\P{^Is_Scx= 	Cari}', "");
+    Error('\p{Script_Extensions=:=_	Cham}');
+    Error('\P{Script_Extensions=:=_	Cham}');
     Expect(1, 43615, '\p{Script_Extensions=:\ACham\z:}', "");;
     Expect(0, 43616, '\p{Script_Extensions=:\ACham\z:}', "");;
-    Expect(1, 43615, '\p{Script_Extensions:cham}', "");
-    Expect(0, 43615, '\p{^Script_Extensions:cham}', "");
-    Expect(0, 43615, '\P{Script_Extensions:cham}', "");
-    Expect(1, 43615, '\P{^Script_Extensions:cham}', "");
-    Expect(0, 43616, '\p{Script_Extensions:cham}', "");
-    Expect(1, 43616, '\p{^Script_Extensions:cham}', "");
-    Expect(1, 43616, '\P{Script_Extensions:cham}', "");
-    Expect(0, 43616, '\P{^Script_Extensions:cham}', "");
+    Expect(1, 43615, '\p{Script_Extensions=cham}', "");
+    Expect(0, 43615, '\p{^Script_Extensions=cham}', "");
+    Expect(0, 43615, '\P{Script_Extensions=cham}', "");
+    Expect(1, 43615, '\P{^Script_Extensions=cham}', "");
+    Expect(0, 43616, '\p{Script_Extensions=cham}', "");
+    Expect(1, 43616, '\p{^Script_Extensions=cham}', "");
+    Expect(1, 43616, '\P{Script_Extensions=cham}', "");
+    Expect(0, 43616, '\P{^Script_Extensions=cham}', "");
     Expect(1, 43615, '\p{Script_Extensions=:\Acham\z:}', "");;
     Expect(0, 43616, '\p{Script_Extensions=:\Acham\z:}', "");;
-    Expect(1, 43615, '\p{Script_Extensions:   		CHAM}', "");
-    Expect(0, 43615, '\p{^Script_Extensions:   		CHAM}', "");
-    Expect(0, 43615, '\P{Script_Extensions:   		CHAM}', "");
-    Expect(1, 43615, '\P{^Script_Extensions:   		CHAM}', "");
-    Expect(0, 43616, '\p{Script_Extensions:   		CHAM}', "");
-    Expect(1, 43616, '\p{^Script_Extensions:   		CHAM}', "");
-    Expect(1, 43616, '\P{Script_Extensions:   		CHAM}', "");
-    Expect(0, 43616, '\P{^Script_Extensions:   		CHAM}', "");
-    Error('\p{Scx=/a/_Cham}');
-    Error('\P{Scx=/a/_Cham}');
+    Expect(1, 43615, '\p{Script_Extensions=__Cham}', "");
+    Expect(0, 43615, '\p{^Script_Extensions=__Cham}', "");
+    Expect(0, 43615, '\P{Script_Extensions=__Cham}', "");
+    Expect(1, 43615, '\P{^Script_Extensions=__Cham}', "");
+    Expect(0, 43616, '\p{Script_Extensions=__Cham}', "");
+    Expect(1, 43616, '\p{^Script_Extensions=__Cham}', "");
+    Expect(1, 43616, '\P{Script_Extensions=__Cham}', "");
+    Expect(0, 43616, '\P{^Script_Extensions=__Cham}', "");
+    Error('\p{Scx=:=_Cham}');
+    Error('\P{Scx=:=_Cham}');
     Expect(1, 43615, '\p{Scx=:\ACham\z:}', "");;
     Expect(0, 43616, '\p{Scx=:\ACham\z:}', "");;
     Expect(1, 43615, '\p{Scx=cham}', "");
@@ -143131,16 +144459,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43616, '\P{^Scx=cham}', "");
     Expect(1, 43615, '\p{Scx=:\Acham\z:}', "");;
     Expect(0, 43616, '\p{Scx=:\Acham\z:}', "");;
-    Expect(1, 43615, '\p{Scx=--cham}', "");
-    Expect(0, 43615, '\p{^Scx=--cham}', "");
-    Expect(0, 43615, '\P{Scx=--cham}', "");
-    Expect(1, 43615, '\P{^Scx=--cham}', "");
-    Expect(0, 43616, '\p{Scx=--cham}', "");
-    Expect(1, 43616, '\p{^Scx=--cham}', "");
-    Expect(1, 43616, '\P{Scx=--cham}', "");
-    Expect(0, 43616, '\P{^Scx=--cham}', "");
-    Error('\p{Is_Script_Extensions=-:=cham}');
-    Error('\P{Is_Script_Extensions=-:=cham}');
+    Expect(1, 43615, '\p{Scx=	-CHAM}', "");
+    Expect(0, 43615, '\p{^Scx=	-CHAM}', "");
+    Expect(0, 43615, '\P{Scx=	-CHAM}', "");
+    Expect(1, 43615, '\P{^Scx=	-CHAM}', "");
+    Expect(0, 43616, '\p{Scx=	-CHAM}', "");
+    Expect(1, 43616, '\p{^Scx=	-CHAM}', "");
+    Expect(1, 43616, '\P{Scx=	-CHAM}', "");
+    Expect(0, 43616, '\P{^Scx=	-CHAM}', "");
+    Error('\p{Is_Script_Extensions=	-cham/a/}');
+    Error('\P{Is_Script_Extensions=	-cham/a/}');
     Expect(1, 43615, '\p{Is_Script_Extensions=cham}', "");
     Expect(0, 43615, '\p{^Is_Script_Extensions=cham}', "");
     Expect(0, 43615, '\P{Is_Script_Extensions=cham}', "");
@@ -143149,16 +144477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43616, '\p{^Is_Script_Extensions=cham}', "");
     Expect(1, 43616, '\P{Is_Script_Extensions=cham}', "");
     Expect(0, 43616, '\P{^Is_Script_Extensions=cham}', "");
-    Expect(1, 43615, '\p{Is_Script_Extensions=- CHAM}', "");
-    Expect(0, 43615, '\p{^Is_Script_Extensions=- CHAM}', "");
-    Expect(0, 43615, '\P{Is_Script_Extensions=- CHAM}', "");
-    Expect(1, 43615, '\P{^Is_Script_Extensions=- CHAM}', "");
-    Expect(0, 43616, '\p{Is_Script_Extensions=- CHAM}', "");
-    Expect(1, 43616, '\p{^Is_Script_Extensions=- CHAM}', "");
-    Expect(1, 43616, '\P{Is_Script_Extensions=- CHAM}', "");
-    Expect(0, 43616, '\P{^Is_Script_Extensions=- CHAM}', "");
-    Error('\p{Is_Scx= 	cham/a/}');
-    Error('\P{Is_Scx= 	cham/a/}');
+    Expect(1, 43615, '\p{Is_Script_Extensions=_CHAM}', "");
+    Expect(0, 43615, '\p{^Is_Script_Extensions=_CHAM}', "");
+    Expect(0, 43615, '\P{Is_Script_Extensions=_CHAM}', "");
+    Expect(1, 43615, '\P{^Is_Script_Extensions=_CHAM}', "");
+    Expect(0, 43616, '\p{Is_Script_Extensions=_CHAM}', "");
+    Expect(1, 43616, '\p{^Is_Script_Extensions=_CHAM}', "");
+    Expect(1, 43616, '\P{Is_Script_Extensions=_CHAM}', "");
+    Expect(0, 43616, '\P{^Is_Script_Extensions=_CHAM}', "");
+    Error('\p{Is_Scx=	CHAM:=}');
+    Error('\P{Is_Scx=	CHAM:=}');
     Expect(1, 43615, '\p{Is_Scx=cham}', "");
     Expect(0, 43615, '\p{^Is_Scx=cham}', "");
     Expect(0, 43615, '\P{Is_Scx=cham}', "");
@@ -143167,60 +144495,68 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43616, '\p{^Is_Scx=cham}', "");
     Expect(1, 43616, '\P{Is_Scx=cham}', "");
     Expect(0, 43616, '\P{^Is_Scx=cham}', "");
-    Expect(1, 43615, '\p{Is_Scx=	Cham}', "");
-    Expect(0, 43615, '\p{^Is_Scx=	Cham}', "");
-    Expect(0, 43615, '\P{Is_Scx=	Cham}', "");
-    Expect(1, 43615, '\P{^Is_Scx=	Cham}', "");
-    Expect(0, 43616, '\p{Is_Scx=	Cham}', "");
-    Expect(1, 43616, '\p{^Is_Scx=	Cham}', "");
-    Expect(1, 43616, '\P{Is_Scx=	Cham}', "");
-    Expect(0, 43616, '\P{^Is_Scx=	Cham}', "");
-    Error('\p{Script_Extensions=_-Cherokee:=}');
-    Error('\P{Script_Extensions=_-Cherokee:=}');
+    Expect(1, 43615, '\p{Is_Scx=-_Cham}', "");
+    Expect(0, 43615, '\p{^Is_Scx=-_Cham}', "");
+    Expect(0, 43615, '\P{Is_Scx=-_Cham}', "");
+    Expect(1, 43615, '\P{^Is_Scx=-_Cham}', "");
+    Expect(0, 43616, '\p{Is_Scx=-_Cham}', "");
+    Expect(1, 43616, '\p{^Is_Scx=-_Cham}', "");
+    Expect(1, 43616, '\P{Is_Scx=-_Cham}', "");
+    Expect(0, 43616, '\P{^Is_Scx=-_Cham}', "");
+    Error('\p{Script_Extensions=_:=CHEROKEE}');
+    Error('\P{Script_Extensions=_:=CHEROKEE}');
     Expect(1, 43967, '\p{Script_Extensions=:\ACherokee\z:}', "");;
     Expect(0, 43968, '\p{Script_Extensions=:\ACherokee\z:}', "");;
-    Expect(1, 43967, '\p{Script_Extensions=cherokee}', "");
-    Expect(0, 43967, '\p{^Script_Extensions=cherokee}', "");
-    Expect(0, 43967, '\P{Script_Extensions=cherokee}', "");
-    Expect(1, 43967, '\P{^Script_Extensions=cherokee}', "");
-    Expect(0, 43968, '\p{Script_Extensions=cherokee}', "");
-    Expect(1, 43968, '\p{^Script_Extensions=cherokee}', "");
-    Expect(1, 43968, '\P{Script_Extensions=cherokee}', "");
-    Expect(0, 43968, '\P{^Script_Extensions=cherokee}', "");
+    Expect(1, 43967, '\p{Script_Extensions:cherokee}', "");
+    Expect(0, 43967, '\p{^Script_Extensions:cherokee}', "");
+    Expect(0, 43967, '\P{Script_Extensions:cherokee}', "");
+    Expect(1, 43967, '\P{^Script_Extensions:cherokee}', "");
+    Expect(0, 43968, '\p{Script_Extensions:cherokee}', "");
+    Expect(1, 43968, '\p{^Script_Extensions:cherokee}', "");
+    Expect(1, 43968, '\P{Script_Extensions:cherokee}', "");
+    Expect(0, 43968, '\P{^Script_Extensions:cherokee}', "");
     Expect(1, 43967, '\p{Script_Extensions=:\Acherokee\z:}', "");;
     Expect(0, 43968, '\p{Script_Extensions=:\Acherokee\z:}', "");;
-    Expect(1, 43967, '\p{Script_Extensions=-_cherokee}', "");
-    Expect(0, 43967, '\p{^Script_Extensions=-_cherokee}', "");
-    Expect(0, 43967, '\P{Script_Extensions=-_cherokee}', "");
-    Expect(1, 43967, '\P{^Script_Extensions=-_cherokee}', "");
-    Expect(0, 43968, '\p{Script_Extensions=-_cherokee}', "");
-    Expect(1, 43968, '\p{^Script_Extensions=-_cherokee}', "");
-    Expect(1, 43968, '\P{Script_Extensions=-_cherokee}', "");
-    Expect(0, 43968, '\P{^Script_Extensions=-_cherokee}', "");
-    Error('\p{Scx: /a/Cher}');
-    Error('\P{Scx: /a/Cher}');
+    Expect(1, 43967, '\p{Script_Extensions=  CHEROKEE}', "");
+    Expect(0, 43967, '\p{^Script_Extensions=  CHEROKEE}', "");
+    Expect(0, 43967, '\P{Script_Extensions=  CHEROKEE}', "");
+    Expect(1, 43967, '\P{^Script_Extensions=  CHEROKEE}', "");
+    Expect(0, 43968, '\p{Script_Extensions=  CHEROKEE}', "");
+    Expect(1, 43968, '\p{^Script_Extensions=  CHEROKEE}', "");
+    Expect(1, 43968, '\P{Script_Extensions=  CHEROKEE}', "");
+    Expect(0, 43968, '\P{^Script_Extensions=  CHEROKEE}', "");
+    Error('\p{Scx=-_cher/a/}');
+    Error('\P{Scx=-_cher/a/}');
     Expect(1, 43967, '\p{Scx=:\ACher\z:}', "");;
     Expect(0, 43968, '\p{Scx=:\ACher\z:}', "");;
-    Expect(1, 43967, '\p{Scx=cher}', "");
-    Expect(0, 43967, '\p{^Scx=cher}', "");
-    Expect(0, 43967, '\P{Scx=cher}', "");
-    Expect(1, 43967, '\P{^Scx=cher}', "");
-    Expect(0, 43968, '\p{Scx=cher}', "");
-    Expect(1, 43968, '\p{^Scx=cher}', "");
-    Expect(1, 43968, '\P{Scx=cher}', "");
-    Expect(0, 43968, '\P{^Scx=cher}', "");
+    Expect(1, 43967, '\p{Scx:   cher}', "");
+    Expect(0, 43967, '\p{^Scx:   cher}', "");
+    Expect(0, 43967, '\P{Scx:   cher}', "");
+    Expect(1, 43967, '\P{^Scx:   cher}', "");
+    Expect(0, 43968, '\p{Scx:   cher}', "");
+    Expect(1, 43968, '\p{^Scx:   cher}', "");
+    Expect(1, 43968, '\P{Scx:   cher}', "");
+    Expect(0, 43968, '\P{^Scx:   cher}', "");
     Expect(1, 43967, '\p{Scx=:\Acher\z:}', "");;
     Expect(0, 43968, '\p{Scx=:\Acher\z:}', "");;
-    Error('\p{Is_Script_Extensions=-/a/Cherokee}');
-    Error('\P{Is_Script_Extensions=-/a/Cherokee}');
-    Expect(1, 43967, '\p{Is_Script_Extensions: cherokee}', "");
-    Expect(0, 43967, '\p{^Is_Script_Extensions: cherokee}', "");
-    Expect(0, 43967, '\P{Is_Script_Extensions: cherokee}', "");
-    Expect(1, 43967, '\P{^Is_Script_Extensions: cherokee}', "");
-    Expect(0, 43968, '\p{Is_Script_Extensions: cherokee}', "");
-    Expect(1, 43968, '\p{^Is_Script_Extensions: cherokee}', "");
-    Expect(1, 43968, '\P{Is_Script_Extensions: cherokee}', "");
-    Expect(0, 43968, '\P{^Is_Script_Extensions: cherokee}', "");
+    Expect(1, 43967, '\p{Scx=-Cher}', "");
+    Expect(0, 43967, '\p{^Scx=-Cher}', "");
+    Expect(0, 43967, '\P{Scx=-Cher}', "");
+    Expect(1, 43967, '\P{^Scx=-Cher}', "");
+    Expect(0, 43968, '\p{Scx=-Cher}', "");
+    Expect(1, 43968, '\p{^Scx=-Cher}', "");
+    Expect(1, 43968, '\P{Scx=-Cher}', "");
+    Expect(0, 43968, '\P{^Scx=-Cher}', "");
+    Error('\p{Is_Script_Extensions= /a/Cherokee}');
+    Error('\P{Is_Script_Extensions= /a/Cherokee}');
+    Expect(1, 43967, '\p{Is_Script_Extensions=cherokee}', "");
+    Expect(0, 43967, '\p{^Is_Script_Extensions=cherokee}', "");
+    Expect(0, 43967, '\P{Is_Script_Extensions=cherokee}', "");
+    Expect(1, 43967, '\P{^Is_Script_Extensions=cherokee}', "");
+    Expect(0, 43968, '\p{Is_Script_Extensions=cherokee}', "");
+    Expect(1, 43968, '\p{^Is_Script_Extensions=cherokee}', "");
+    Expect(1, 43968, '\P{Is_Script_Extensions=cherokee}', "");
+    Expect(0, 43968, '\P{^Is_Script_Extensions=cherokee}', "");
     Expect(1, 43967, '\p{Is_Script_Extensions=	CHEROKEE}', "");
     Expect(0, 43967, '\p{^Is_Script_Extensions=	CHEROKEE}', "");
     Expect(0, 43967, '\P{Is_Script_Extensions=	CHEROKEE}', "");
@@ -143229,8 +144565,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43968, '\p{^Is_Script_Extensions=	CHEROKEE}', "");
     Expect(1, 43968, '\P{Is_Script_Extensions=	CHEROKEE}', "");
     Expect(0, 43968, '\P{^Is_Script_Extensions=	CHEROKEE}', "");
-    Error('\p{Is_Scx:	_	cher:=}');
-    Error('\P{Is_Scx:	_	cher:=}');
+    Error('\p{Is_Scx=	/a/cher}');
+    Error('\P{Is_Scx=	/a/cher}');
     Expect(1, 43967, '\p{Is_Scx=cher}', "");
     Expect(0, 43967, '\p{^Is_Scx=cher}', "");
     Expect(0, 43967, '\P{Is_Scx=cher}', "");
@@ -143239,16 +144575,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43968, '\p{^Is_Scx=cher}', "");
     Expect(1, 43968, '\P{Is_Scx=cher}', "");
     Expect(0, 43968, '\P{^Is_Scx=cher}', "");
-    Expect(1, 43967, '\p{Is_Scx=--Cher}', "");
-    Expect(0, 43967, '\p{^Is_Scx=--Cher}', "");
-    Expect(0, 43967, '\P{Is_Scx=--Cher}', "");
-    Expect(1, 43967, '\P{^Is_Scx=--Cher}', "");
-    Expect(0, 43968, '\p{Is_Scx=--Cher}', "");
-    Expect(1, 43968, '\p{^Is_Scx=--Cher}', "");
-    Expect(1, 43968, '\P{Is_Scx=--Cher}', "");
-    Expect(0, 43968, '\P{^Is_Scx=--Cher}', "");
-    Error('\p{Script_Extensions=_	Chorasmian:=}');
-    Error('\P{Script_Extensions=_	Chorasmian:=}');
+    Expect(1, 43967, '\p{Is_Scx=-cher}', "");
+    Expect(0, 43967, '\p{^Is_Scx=-cher}', "");
+    Expect(0, 43967, '\P{Is_Scx=-cher}', "");
+    Expect(1, 43967, '\P{^Is_Scx=-cher}', "");
+    Expect(0, 43968, '\p{Is_Scx=-cher}', "");
+    Expect(1, 43968, '\p{^Is_Scx=-cher}', "");
+    Expect(1, 43968, '\P{Is_Scx=-cher}', "");
+    Expect(0, 43968, '\P{^Is_Scx=-cher}', "");
+    Error('\p{Script_Extensions=/a/ CHORASMIAN}');
+    Error('\P{Script_Extensions=/a/ CHORASMIAN}');
     Expect(1, 69579, '\p{Script_Extensions=:\AChorasmian\z:}', "");;
     Expect(0, 69580, '\p{Script_Extensions=:\AChorasmian\z:}', "");;
     Expect(1, 69579, '\p{Script_Extensions=chorasmian}', "");
@@ -143261,16 +144597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69580, '\P{^Script_Extensions=chorasmian}', "");
     Expect(1, 69579, '\p{Script_Extensions=:\Achorasmian\z:}', "");;
     Expect(0, 69580, '\p{Script_Extensions=:\Achorasmian\z:}', "");;
-    Expect(1, 69579, '\p{Script_Extensions=  Chorasmian}', "");
-    Expect(0, 69579, '\p{^Script_Extensions=  Chorasmian}', "");
-    Expect(0, 69579, '\P{Script_Extensions=  Chorasmian}', "");
-    Expect(1, 69579, '\P{^Script_Extensions=  Chorasmian}', "");
-    Expect(0, 69580, '\p{Script_Extensions=  Chorasmian}', "");
-    Expect(1, 69580, '\p{^Script_Extensions=  Chorasmian}', "");
-    Expect(1, 69580, '\P{Script_Extensions=  Chorasmian}', "");
-    Expect(0, 69580, '\P{^Script_Extensions=  Chorasmian}', "");
-    Error('\p{Scx=/a/	 chrs}');
-    Error('\P{Scx=/a/	 chrs}');
+    Expect(1, 69579, '\p{Script_Extensions=__chorasmian}', "");
+    Expect(0, 69579, '\p{^Script_Extensions=__chorasmian}', "");
+    Expect(0, 69579, '\P{Script_Extensions=__chorasmian}', "");
+    Expect(1, 69579, '\P{^Script_Extensions=__chorasmian}', "");
+    Expect(0, 69580, '\p{Script_Extensions=__chorasmian}', "");
+    Expect(1, 69580, '\p{^Script_Extensions=__chorasmian}', "");
+    Expect(1, 69580, '\P{Script_Extensions=__chorasmian}', "");
+    Expect(0, 69580, '\P{^Script_Extensions=__chorasmian}', "");
+    Error('\p{Scx=:=	Chrs}');
+    Error('\P{Scx=:=	Chrs}');
     Expect(1, 69579, '\p{Scx=:\AChrs\z:}', "");;
     Expect(0, 69580, '\p{Scx=:\AChrs\z:}', "");;
     Expect(1, 69579, '\p{Scx=chrs}', "");
@@ -143283,16 +144619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69580, '\P{^Scx=chrs}', "");
     Expect(1, 69579, '\p{Scx=:\Achrs\z:}', "");;
     Expect(0, 69580, '\p{Scx=:\Achrs\z:}', "");;
-    Expect(1, 69579, '\p{Scx=-CHRS}', "");
-    Expect(0, 69579, '\p{^Scx=-CHRS}', "");
-    Expect(0, 69579, '\P{Scx=-CHRS}', "");
-    Expect(1, 69579, '\P{^Scx=-CHRS}', "");
-    Expect(0, 69580, '\p{Scx=-CHRS}', "");
-    Expect(1, 69580, '\p{^Scx=-CHRS}', "");
-    Expect(1, 69580, '\P{Scx=-CHRS}', "");
-    Expect(0, 69580, '\P{^Scx=-CHRS}', "");
-    Error('\p{Is_Script_Extensions=:=Chorasmian}');
-    Error('\P{Is_Script_Extensions=:=Chorasmian}');
+    Expect(1, 69579, '\p{Scx=	 Chrs}', "");
+    Expect(0, 69579, '\p{^Scx=	 Chrs}', "");
+    Expect(0, 69579, '\P{Scx=	 Chrs}', "");
+    Expect(1, 69579, '\P{^Scx=	 Chrs}', "");
+    Expect(0, 69580, '\p{Scx=	 Chrs}', "");
+    Expect(1, 69580, '\p{^Scx=	 Chrs}', "");
+    Expect(1, 69580, '\P{Scx=	 Chrs}', "");
+    Expect(0, 69580, '\P{^Scx=	 Chrs}', "");
+    Error('\p{Is_Script_Extensions=:=CHORASMIAN}');
+    Error('\P{Is_Script_Extensions=:=CHORASMIAN}');
     Expect(1, 69579, '\p{Is_Script_Extensions=chorasmian}', "");
     Expect(0, 69579, '\p{^Is_Script_Extensions=chorasmian}', "");
     Expect(0, 69579, '\P{Is_Script_Extensions=chorasmian}', "");
@@ -143301,16 +144637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69580, '\p{^Is_Script_Extensions=chorasmian}', "");
     Expect(1, 69580, '\P{Is_Script_Extensions=chorasmian}', "");
     Expect(0, 69580, '\P{^Is_Script_Extensions=chorasmian}', "");
-    Expect(1, 69579, '\p{Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(0, 69579, '\p{^Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(0, 69579, '\P{Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(1, 69579, '\P{^Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(0, 69580, '\p{Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(1, 69580, '\p{^Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(1, 69580, '\P{Is_Script_Extensions=	-CHORASMIAN}', "");
-    Expect(0, 69580, '\P{^Is_Script_Extensions=	-CHORASMIAN}', "");
-    Error('\p{Is_Scx=:=__Chrs}');
-    Error('\P{Is_Scx=:=__Chrs}');
+    Expect(1, 69579, '\p{Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(0, 69579, '\p{^Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(0, 69579, '\P{Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(1, 69579, '\P{^Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(0, 69580, '\p{Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(1, 69580, '\p{^Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(1, 69580, '\P{Is_Script_Extensions=		CHORASMIAN}', "");
+    Expect(0, 69580, '\P{^Is_Script_Extensions=		CHORASMIAN}', "");
+    Error('\p{Is_Scx=	_CHRS:=}');
+    Error('\P{Is_Scx=	_CHRS:=}');
     Expect(1, 69579, '\p{Is_Scx=chrs}', "");
     Expect(0, 69579, '\p{^Is_Scx=chrs}', "");
     Expect(0, 69579, '\P{Is_Scx=chrs}', "");
@@ -143319,38 +144655,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69580, '\p{^Is_Scx=chrs}', "");
     Expect(1, 69580, '\P{Is_Scx=chrs}', "");
     Expect(0, 69580, '\P{^Is_Scx=chrs}', "");
-    Expect(1, 69579, '\p{Is_Scx=	Chrs}', "");
-    Expect(0, 69579, '\p{^Is_Scx=	Chrs}', "");
-    Expect(0, 69579, '\P{Is_Scx=	Chrs}', "");
-    Expect(1, 69579, '\P{^Is_Scx=	Chrs}', "");
-    Expect(0, 69580, '\p{Is_Scx=	Chrs}', "");
-    Expect(1, 69580, '\p{^Is_Scx=	Chrs}', "");
-    Expect(1, 69580, '\P{Is_Scx=	Chrs}', "");
-    Expect(0, 69580, '\P{^Is_Scx=	Chrs}', "");
-    Error('\p{Script_Extensions:   := 	Coptic}');
-    Error('\P{Script_Extensions:   := 	Coptic}');
+    Expect(1, 69579, '\p{Is_Scx=__chrs}', "");
+    Expect(0, 69579, '\p{^Is_Scx=__chrs}', "");
+    Expect(0, 69579, '\P{Is_Scx=__chrs}', "");
+    Expect(1, 69579, '\P{^Is_Scx=__chrs}', "");
+    Expect(0, 69580, '\p{Is_Scx=__chrs}', "");
+    Expect(1, 69580, '\p{^Is_Scx=__chrs}', "");
+    Expect(1, 69580, '\P{Is_Scx=__chrs}', "");
+    Expect(0, 69580, '\P{^Is_Scx=__chrs}', "");
+    Error('\p{Script_Extensions= _coptic/a/}');
+    Error('\P{Script_Extensions= _coptic/a/}');
     Expect(1, 66299, '\p{Script_Extensions=:\ACoptic\z:}', "");;
     Expect(0, 66300, '\p{Script_Extensions=:\ACoptic\z:}', "");;
-    Expect(1, 66299, '\p{Script_Extensions:	coptic}', "");
-    Expect(0, 66299, '\p{^Script_Extensions:	coptic}', "");
-    Expect(0, 66299, '\P{Script_Extensions:	coptic}', "");
-    Expect(1, 66299, '\P{^Script_Extensions:	coptic}', "");
-    Expect(0, 66300, '\p{Script_Extensions:	coptic}', "");
-    Expect(1, 66300, '\p{^Script_Extensions:	coptic}', "");
-    Expect(1, 66300, '\P{Script_Extensions:	coptic}', "");
-    Expect(0, 66300, '\P{^Script_Extensions:	coptic}', "");
+    Expect(1, 66299, '\p{Script_Extensions=coptic}', "");
+    Expect(0, 66299, '\p{^Script_Extensions=coptic}', "");
+    Expect(0, 66299, '\P{Script_Extensions=coptic}', "");
+    Expect(1, 66299, '\P{^Script_Extensions=coptic}', "");
+    Expect(0, 66300, '\p{Script_Extensions=coptic}', "");
+    Expect(1, 66300, '\p{^Script_Extensions=coptic}', "");
+    Expect(1, 66300, '\P{Script_Extensions=coptic}', "");
+    Expect(0, 66300, '\P{^Script_Extensions=coptic}', "");
     Expect(1, 66299, '\p{Script_Extensions=:\Acoptic\z:}', "");;
     Expect(0, 66300, '\p{Script_Extensions=:\Acoptic\z:}', "");;
-    Expect(1, 66299, '\p{Script_Extensions=-	Coptic}', "");
-    Expect(0, 66299, '\p{^Script_Extensions=-	Coptic}', "");
-    Expect(0, 66299, '\P{Script_Extensions=-	Coptic}', "");
-    Expect(1, 66299, '\P{^Script_Extensions=-	Coptic}', "");
-    Expect(0, 66300, '\p{Script_Extensions=-	Coptic}', "");
-    Expect(1, 66300, '\p{^Script_Extensions=-	Coptic}', "");
-    Expect(1, 66300, '\P{Script_Extensions=-	Coptic}', "");
-    Expect(0, 66300, '\P{^Script_Extensions=-	Coptic}', "");
-    Error('\p{Scx:	 :=Copt}');
-    Error('\P{Scx:	 :=Copt}');
+    Expect(1, 66299, '\p{Script_Extensions:	 -Coptic}', "");
+    Expect(0, 66299, '\p{^Script_Extensions:	 -Coptic}', "");
+    Expect(0, 66299, '\P{Script_Extensions:	 -Coptic}', "");
+    Expect(1, 66299, '\P{^Script_Extensions:	 -Coptic}', "");
+    Expect(0, 66300, '\p{Script_Extensions:	 -Coptic}', "");
+    Expect(1, 66300, '\p{^Script_Extensions:	 -Coptic}', "");
+    Expect(1, 66300, '\P{Script_Extensions:	 -Coptic}', "");
+    Expect(0, 66300, '\P{^Script_Extensions:	 -Coptic}', "");
+    Error('\p{Scx=_:=Copt}');
+    Error('\P{Scx=_:=Copt}');
     Expect(1, 66299, '\p{Scx=:\ACopt\z:}', "");;
     Expect(0, 66300, '\p{Scx=:\ACopt\z:}', "");;
     Expect(1, 66299, '\p{Scx=copt}', "");
@@ -143363,16 +144699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66300, '\P{^Scx=copt}', "");
     Expect(1, 66299, '\p{Scx=:\Acopt\z:}', "");;
     Expect(0, 66300, '\p{Scx=:\Acopt\z:}', "");;
-    Expect(1, 66299, '\p{Scx=	-Copt}', "");
-    Expect(0, 66299, '\p{^Scx=	-Copt}', "");
-    Expect(0, 66299, '\P{Scx=	-Copt}', "");
-    Expect(1, 66299, '\P{^Scx=	-Copt}', "");
-    Expect(0, 66300, '\p{Scx=	-Copt}', "");
-    Expect(1, 66300, '\p{^Scx=	-Copt}', "");
-    Expect(1, 66300, '\P{Scx=	-Copt}', "");
-    Expect(0, 66300, '\P{^Scx=	-Copt}', "");
-    Error('\p{Is_Script_Extensions=__QAAC:=}');
-    Error('\P{Is_Script_Extensions=__QAAC:=}');
+    Expect(1, 66299, '\p{Scx= _copt}', "");
+    Expect(0, 66299, '\p{^Scx= _copt}', "");
+    Expect(0, 66299, '\P{Scx= _copt}', "");
+    Expect(1, 66299, '\P{^Scx= _copt}', "");
+    Expect(0, 66300, '\p{Scx= _copt}', "");
+    Expect(1, 66300, '\p{^Scx= _copt}', "");
+    Expect(1, 66300, '\P{Scx= _copt}', "");
+    Expect(0, 66300, '\P{^Scx= _copt}', "");
+    Error('\p{Is_Script_Extensions:	-_Qaac/a/}');
+    Error('\P{Is_Script_Extensions:	-_Qaac/a/}');
     Expect(1, 66299, '\p{Is_Script_Extensions=qaac}', "");
     Expect(0, 66299, '\p{^Is_Script_Extensions=qaac}', "");
     Expect(0, 66299, '\P{Is_Script_Extensions=qaac}', "");
@@ -143381,16 +144717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66300, '\p{^Is_Script_Extensions=qaac}', "");
     Expect(1, 66300, '\P{Is_Script_Extensions=qaac}', "");
     Expect(0, 66300, '\P{^Is_Script_Extensions=qaac}', "");
-    Expect(1, 66299, '\p{Is_Script_Extensions: 	Qaac}', "");
-    Expect(0, 66299, '\p{^Is_Script_Extensions: 	Qaac}', "");
-    Expect(0, 66299, '\P{Is_Script_Extensions: 	Qaac}', "");
-    Expect(1, 66299, '\P{^Is_Script_Extensions: 	Qaac}', "");
-    Expect(0, 66300, '\p{Is_Script_Extensions: 	Qaac}', "");
-    Expect(1, 66300, '\p{^Is_Script_Extensions: 	Qaac}', "");
-    Expect(1, 66300, '\P{Is_Script_Extensions: 	Qaac}', "");
-    Expect(0, 66300, '\P{^Is_Script_Extensions: 	Qaac}', "");
-    Error('\p{Is_Scx:	/a/Coptic}');
-    Error('\P{Is_Scx:	/a/Coptic}');
+    Expect(1, 66299, '\p{Is_Script_Extensions=--Qaac}', "");
+    Expect(0, 66299, '\p{^Is_Script_Extensions=--Qaac}', "");
+    Expect(0, 66299, '\P{Is_Script_Extensions=--Qaac}', "");
+    Expect(1, 66299, '\P{^Is_Script_Extensions=--Qaac}', "");
+    Expect(0, 66300, '\p{Is_Script_Extensions=--Qaac}', "");
+    Expect(1, 66300, '\p{^Is_Script_Extensions=--Qaac}', "");
+    Expect(1, 66300, '\P{Is_Script_Extensions=--Qaac}', "");
+    Expect(0, 66300, '\P{^Is_Script_Extensions=--Qaac}', "");
+    Error('\p{Is_Scx=/a/	coptic}');
+    Error('\P{Is_Scx=/a/	coptic}');
     Expect(1, 66299, '\p{Is_Scx=coptic}', "");
     Expect(0, 66299, '\p{^Is_Scx=coptic}', "");
     Expect(0, 66299, '\P{Is_Scx=coptic}', "");
@@ -143399,16 +144735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66300, '\p{^Is_Scx=coptic}', "");
     Expect(1, 66300, '\P{Is_Scx=coptic}', "");
     Expect(0, 66300, '\P{^Is_Scx=coptic}', "");
-    Expect(1, 66299, '\p{Is_Scx= Coptic}', "");
-    Expect(0, 66299, '\p{^Is_Scx= Coptic}', "");
-    Expect(0, 66299, '\P{Is_Scx= Coptic}', "");
-    Expect(1, 66299, '\P{^Is_Scx= Coptic}', "");
-    Expect(0, 66300, '\p{Is_Scx= Coptic}', "");
-    Expect(1, 66300, '\p{^Is_Scx= Coptic}', "");
-    Expect(1, 66300, '\P{Is_Scx= Coptic}', "");
-    Expect(0, 66300, '\P{^Is_Scx= Coptic}', "");
-    Error('\p{Script_Extensions=	/a/CYPRO_Minoan}');
-    Error('\P{Script_Extensions=	/a/CYPRO_Minoan}');
+    Expect(1, 66299, '\p{Is_Scx=	COPTIC}', "");
+    Expect(0, 66299, '\p{^Is_Scx=	COPTIC}', "");
+    Expect(0, 66299, '\P{Is_Scx=	COPTIC}', "");
+    Expect(1, 66299, '\P{^Is_Scx=	COPTIC}', "");
+    Expect(0, 66300, '\p{Is_Scx=	COPTIC}', "");
+    Expect(1, 66300, '\p{^Is_Scx=	COPTIC}', "");
+    Expect(1, 66300, '\P{Is_Scx=	COPTIC}', "");
+    Expect(0, 66300, '\P{^Is_Scx=	COPTIC}', "");
+    Error('\p{Script_Extensions=/a/-Cypro_MINOAN}');
+    Error('\P{Script_Extensions=/a/-Cypro_MINOAN}');
     Expect(1, 77810, '\p{Script_Extensions=:\ACypro_Minoan\z:}', "");;
     Expect(0, 77811, '\p{Script_Extensions=:\ACypro_Minoan\z:}', "");;
     Expect(1, 77810, '\p{Script_Extensions=cyprominoan}', "");
@@ -143421,16 +144757,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 77811, '\P{^Script_Extensions=cyprominoan}', "");
     Expect(1, 77810, '\p{Script_Extensions=:\Acyprominoan\z:}', "");;
     Expect(0, 77811, '\p{Script_Extensions=:\Acyprominoan\z:}', "");;
-    Expect(1, 77810, '\p{Script_Extensions=_Cypro_minoan}', "");
-    Expect(0, 77810, '\p{^Script_Extensions=_Cypro_minoan}', "");
-    Expect(0, 77810, '\P{Script_Extensions=_Cypro_minoan}', "");
-    Expect(1, 77810, '\P{^Script_Extensions=_Cypro_minoan}', "");
-    Expect(0, 77811, '\p{Script_Extensions=_Cypro_minoan}', "");
-    Expect(1, 77811, '\p{^Script_Extensions=_Cypro_minoan}', "");
-    Expect(1, 77811, '\P{Script_Extensions=_Cypro_minoan}', "");
-    Expect(0, 77811, '\P{^Script_Extensions=_Cypro_minoan}', "");
-    Error('\p{Scx=:=_cpmn}');
-    Error('\P{Scx=:=_cpmn}');
+    Expect(1, 77810, '\p{Script_Extensions=-cypro_minoan}', "");
+    Expect(0, 77810, '\p{^Script_Extensions=-cypro_minoan}', "");
+    Expect(0, 77810, '\P{Script_Extensions=-cypro_minoan}', "");
+    Expect(1, 77810, '\P{^Script_Extensions=-cypro_minoan}', "");
+    Expect(0, 77811, '\p{Script_Extensions=-cypro_minoan}', "");
+    Expect(1, 77811, '\p{^Script_Extensions=-cypro_minoan}', "");
+    Expect(1, 77811, '\P{Script_Extensions=-cypro_minoan}', "");
+    Expect(0, 77811, '\P{^Script_Extensions=-cypro_minoan}', "");
+    Error('\p{Scx=:=		Cpmn}');
+    Error('\P{Scx=:=		Cpmn}');
     Expect(1, 77810, '\p{Scx=:\ACpmn\z:}', "");;
     Expect(0, 77811, '\p{Scx=:\ACpmn\z:}', "");;
     Expect(1, 77810, '\p{Scx=cpmn}', "");
@@ -143443,16 +144779,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 77811, '\P{^Scx=cpmn}', "");
     Expect(1, 77810, '\p{Scx=:\Acpmn\z:}', "");;
     Expect(0, 77811, '\p{Scx=:\Acpmn\z:}', "");;
-    Expect(1, 77810, '\p{Scx=--cpmn}', "");
-    Expect(0, 77810, '\p{^Scx=--cpmn}', "");
-    Expect(0, 77810, '\P{Scx=--cpmn}', "");
-    Expect(1, 77810, '\P{^Scx=--cpmn}', "");
-    Expect(0, 77811, '\p{Scx=--cpmn}', "");
-    Expect(1, 77811, '\p{^Scx=--cpmn}', "");
-    Expect(1, 77811, '\P{Scx=--cpmn}', "");
-    Expect(0, 77811, '\P{^Scx=--cpmn}', "");
-    Error('\p{Is_Script_Extensions=:=--CYPRO_MINOAN}');
-    Error('\P{Is_Script_Extensions=:=--CYPRO_MINOAN}');
+    Expect(1, 77810, '\p{Scx=- CPMN}', "");
+    Expect(0, 77810, '\p{^Scx=- CPMN}', "");
+    Expect(0, 77810, '\P{Scx=- CPMN}', "");
+    Expect(1, 77810, '\P{^Scx=- CPMN}', "");
+    Expect(0, 77811, '\p{Scx=- CPMN}', "");
+    Expect(1, 77811, '\p{^Scx=- CPMN}', "");
+    Expect(1, 77811, '\P{Scx=- CPMN}', "");
+    Expect(0, 77811, '\P{^Scx=- CPMN}', "");
+    Error('\p{Is_Script_Extensions=:=-cypro_Minoan}');
+    Error('\P{Is_Script_Extensions=:=-cypro_Minoan}');
     Expect(1, 77810, '\p{Is_Script_Extensions=cyprominoan}', "");
     Expect(0, 77810, '\p{^Is_Script_Extensions=cyprominoan}', "");
     Expect(0, 77810, '\P{Is_Script_Extensions=cyprominoan}', "");
@@ -143461,16 +144797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 77811, '\p{^Is_Script_Extensions=cyprominoan}', "");
     Expect(1, 77811, '\P{Is_Script_Extensions=cyprominoan}', "");
     Expect(0, 77811, '\P{^Is_Script_Extensions=cyprominoan}', "");
-    Expect(1, 77810, '\p{Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(0, 77810, '\p{^Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(0, 77810, '\P{Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(1, 77810, '\P{^Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(0, 77811, '\p{Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(1, 77811, '\p{^Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(1, 77811, '\P{Is_Script_Extensions= _Cypro_Minoan}', "");
-    Expect(0, 77811, '\P{^Is_Script_Extensions= _Cypro_Minoan}', "");
-    Error('\p{Is_Scx=/a/Cpmn}');
-    Error('\P{Is_Scx=/a/Cpmn}');
+    Expect(1, 77810, '\p{Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(0, 77810, '\p{^Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(0, 77810, '\P{Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(1, 77810, '\P{^Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(0, 77811, '\p{Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(1, 77811, '\p{^Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(1, 77811, '\P{Is_Script_Extensions=__cypro_Minoan}', "");
+    Expect(0, 77811, '\P{^Is_Script_Extensions=__cypro_Minoan}', "");
+    Error('\p{Is_Scx=/a/_Cpmn}');
+    Error('\P{Is_Scx=/a/_Cpmn}');
     Expect(1, 77810, '\p{Is_Scx=cpmn}', "");
     Expect(0, 77810, '\p{^Is_Scx=cpmn}', "");
     Expect(0, 77810, '\P{Is_Scx=cpmn}', "");
@@ -143479,16 +144815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 77811, '\p{^Is_Scx=cpmn}', "");
     Expect(1, 77811, '\P{Is_Scx=cpmn}', "");
     Expect(0, 77811, '\P{^Is_Scx=cpmn}', "");
-    Expect(1, 77810, '\p{Is_Scx=CPMN}', "");
-    Expect(0, 77810, '\p{^Is_Scx=CPMN}', "");
-    Expect(0, 77810, '\P{Is_Scx=CPMN}', "");
-    Expect(1, 77810, '\P{^Is_Scx=CPMN}', "");
-    Expect(0, 77811, '\p{Is_Scx=CPMN}', "");
-    Expect(1, 77811, '\p{^Is_Scx=CPMN}', "");
-    Expect(1, 77811, '\P{Is_Scx=CPMN}', "");
-    Expect(0, 77811, '\P{^Is_Scx=CPMN}', "");
-    Error('\p{Script_Extensions:	-/a/Cypriot}');
-    Error('\P{Script_Extensions:	-/a/Cypriot}');
+    Expect(1, 77810, '\p{Is_Scx:	Cpmn}', "");
+    Expect(0, 77810, '\p{^Is_Scx:	Cpmn}', "");
+    Expect(0, 77810, '\P{Is_Scx:	Cpmn}', "");
+    Expect(1, 77810, '\P{^Is_Scx:	Cpmn}', "");
+    Expect(0, 77811, '\p{Is_Scx:	Cpmn}', "");
+    Expect(1, 77811, '\p{^Is_Scx:	Cpmn}', "");
+    Expect(1, 77811, '\P{Is_Scx:	Cpmn}', "");
+    Expect(0, 77811, '\P{^Is_Scx:	Cpmn}', "");
+    Error('\p{Script_Extensions=:=		cypriot}');
+    Error('\P{Script_Extensions=:=		cypriot}');
     Expect(1, 67647, '\p{Script_Extensions=:\ACypriot\z:}', "");;
     Expect(0, 67648, '\p{Script_Extensions=:\ACypriot\z:}', "");;
     Expect(1, 67647, '\p{Script_Extensions=cypriot}', "");
@@ -143501,16 +144837,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67648, '\P{^Script_Extensions=cypriot}', "");
     Expect(1, 67647, '\p{Script_Extensions=:\Acypriot\z:}', "");;
     Expect(0, 67648, '\p{Script_Extensions=:\Acypriot\z:}', "");;
-    Expect(1, 67647, '\p{Script_Extensions=- cypriot}', "");
-    Expect(0, 67647, '\p{^Script_Extensions=- cypriot}', "");
-    Expect(0, 67647, '\P{Script_Extensions=- cypriot}', "");
-    Expect(1, 67647, '\P{^Script_Extensions=- cypriot}', "");
-    Expect(0, 67648, '\p{Script_Extensions=- cypriot}', "");
-    Expect(1, 67648, '\p{^Script_Extensions=- cypriot}', "");
-    Expect(1, 67648, '\P{Script_Extensions=- cypriot}', "");
-    Expect(0, 67648, '\P{^Script_Extensions=- cypriot}', "");
-    Error('\p{Scx=-:=CPRT}');
-    Error('\P{Scx=-:=CPRT}');
+    Expect(1, 67647, '\p{Script_Extensions= 	CYPRIOT}', "");
+    Expect(0, 67647, '\p{^Script_Extensions= 	CYPRIOT}', "");
+    Expect(0, 67647, '\P{Script_Extensions= 	CYPRIOT}', "");
+    Expect(1, 67647, '\P{^Script_Extensions= 	CYPRIOT}', "");
+    Expect(0, 67648, '\p{Script_Extensions= 	CYPRIOT}', "");
+    Expect(1, 67648, '\p{^Script_Extensions= 	CYPRIOT}', "");
+    Expect(1, 67648, '\P{Script_Extensions= 	CYPRIOT}', "");
+    Expect(0, 67648, '\P{^Script_Extensions= 	CYPRIOT}', "");
+    Error('\p{Scx= :=Cprt}');
+    Error('\P{Scx= :=Cprt}');
     Expect(1, 67647, '\p{Scx=:\ACprt\z:}', "");;
     Expect(0, 67648, '\p{Scx=:\ACprt\z:}', "");;
     Expect(1, 67647, '\p{Scx=cprt}', "");
@@ -143523,16 +144859,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67648, '\P{^Scx=cprt}', "");
     Expect(1, 67647, '\p{Scx=:\Acprt\z:}', "");;
     Expect(0, 67648, '\p{Scx=:\Acprt\z:}', "");;
-    Expect(1, 67647, '\p{Scx=  Cprt}', "");
-    Expect(0, 67647, '\p{^Scx=  Cprt}', "");
-    Expect(0, 67647, '\P{Scx=  Cprt}', "");
-    Expect(1, 67647, '\P{^Scx=  Cprt}', "");
-    Expect(0, 67648, '\p{Scx=  Cprt}', "");
-    Expect(1, 67648, '\p{^Scx=  Cprt}', "");
-    Expect(1, 67648, '\P{Scx=  Cprt}', "");
-    Expect(0, 67648, '\P{^Scx=  Cprt}', "");
-    Error('\p{Is_Script_Extensions=	CYPRIOT:=}');
-    Error('\P{Is_Script_Extensions=	CYPRIOT:=}');
+    Expect(1, 67647, '\p{Scx=	Cprt}', "");
+    Expect(0, 67647, '\p{^Scx=	Cprt}', "");
+    Expect(0, 67647, '\P{Scx=	Cprt}', "");
+    Expect(1, 67647, '\P{^Scx=	Cprt}', "");
+    Expect(0, 67648, '\p{Scx=	Cprt}', "");
+    Expect(1, 67648, '\p{^Scx=	Cprt}', "");
+    Expect(1, 67648, '\P{Scx=	Cprt}', "");
+    Expect(0, 67648, '\P{^Scx=	Cprt}', "");
+    Error('\p{Is_Script_Extensions:	-	cypriot/a/}');
+    Error('\P{Is_Script_Extensions:	-	cypriot/a/}');
     Expect(1, 67647, '\p{Is_Script_Extensions=cypriot}', "");
     Expect(0, 67647, '\p{^Is_Script_Extensions=cypriot}', "");
     Expect(0, 67647, '\P{Is_Script_Extensions=cypriot}', "");
@@ -143541,16 +144877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67648, '\p{^Is_Script_Extensions=cypriot}', "");
     Expect(1, 67648, '\P{Is_Script_Extensions=cypriot}', "");
     Expect(0, 67648, '\P{^Is_Script_Extensions=cypriot}', "");
-    Expect(1, 67647, '\p{Is_Script_Extensions=-cypriot}', "");
-    Expect(0, 67647, '\p{^Is_Script_Extensions=-cypriot}', "");
-    Expect(0, 67647, '\P{Is_Script_Extensions=-cypriot}', "");
-    Expect(1, 67647, '\P{^Is_Script_Extensions=-cypriot}', "");
-    Expect(0, 67648, '\p{Is_Script_Extensions=-cypriot}', "");
-    Expect(1, 67648, '\p{^Is_Script_Extensions=-cypriot}', "");
-    Expect(1, 67648, '\P{Is_Script_Extensions=-cypriot}', "");
-    Expect(0, 67648, '\P{^Is_Script_Extensions=-cypriot}', "");
-    Error('\p{Is_Scx=_CPRT:=}');
-    Error('\P{Is_Scx=_CPRT:=}');
+    Expect(1, 67647, '\p{Is_Script_Extensions:    -cypriot}', "");
+    Expect(0, 67647, '\p{^Is_Script_Extensions:    -cypriot}', "");
+    Expect(0, 67647, '\P{Is_Script_Extensions:    -cypriot}', "");
+    Expect(1, 67647, '\P{^Is_Script_Extensions:    -cypriot}', "");
+    Expect(0, 67648, '\p{Is_Script_Extensions:    -cypriot}', "");
+    Expect(1, 67648, '\p{^Is_Script_Extensions:    -cypriot}', "");
+    Expect(1, 67648, '\P{Is_Script_Extensions:    -cypriot}', "");
+    Expect(0, 67648, '\P{^Is_Script_Extensions:    -cypriot}', "");
+    Error('\p{Is_Scx=		CPRT/a/}');
+    Error('\P{Is_Scx=		CPRT/a/}');
     Expect(1, 67647, '\p{Is_Scx=cprt}', "");
     Expect(0, 67647, '\p{^Is_Scx=cprt}', "");
     Expect(0, 67647, '\P{Is_Scx=cprt}', "");
@@ -143559,176 +144895,176 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67648, '\p{^Is_Scx=cprt}', "");
     Expect(1, 67648, '\P{Is_Scx=cprt}', "");
     Expect(0, 67648, '\P{^Is_Scx=cprt}', "");
-    Expect(1, 67647, '\p{Is_Scx=	 cprt}', "");
-    Expect(0, 67647, '\p{^Is_Scx=	 cprt}', "");
-    Expect(0, 67647, '\P{Is_Scx=	 cprt}', "");
-    Expect(1, 67647, '\P{^Is_Scx=	 cprt}', "");
-    Expect(0, 67648, '\p{Is_Scx=	 cprt}', "");
-    Expect(1, 67648, '\p{^Is_Scx=	 cprt}', "");
-    Expect(1, 67648, '\P{Is_Scx=	 cprt}', "");
-    Expect(0, 67648, '\P{^Is_Scx=	 cprt}', "");
-    Error('\p{Script_Extensions=/a/_	CYRILLIC}');
-    Error('\P{Script_Extensions=/a/_	CYRILLIC}');
-    Expect(1, 65071, '\p{Script_Extensions=:\ACyrillic\z:}', "");;
-    Expect(0, 65072, '\p{Script_Extensions=:\ACyrillic\z:}', "");;
-    Expect(1, 65071, '\p{Script_Extensions=cyrillic}', "");
-    Expect(0, 65071, '\p{^Script_Extensions=cyrillic}', "");
-    Expect(0, 65071, '\P{Script_Extensions=cyrillic}', "");
-    Expect(1, 65071, '\P{^Script_Extensions=cyrillic}', "");
-    Expect(0, 65072, '\p{Script_Extensions=cyrillic}', "");
-    Expect(1, 65072, '\p{^Script_Extensions=cyrillic}', "");
-    Expect(1, 65072, '\P{Script_Extensions=cyrillic}', "");
-    Expect(0, 65072, '\P{^Script_Extensions=cyrillic}', "");
-    Expect(1, 65071, '\p{Script_Extensions=:\Acyrillic\z:}', "");;
-    Expect(0, 65072, '\p{Script_Extensions=:\Acyrillic\z:}', "");;
-    Expect(1, 65071, '\p{Script_Extensions: --Cyrillic}', "");
-    Expect(0, 65071, '\p{^Script_Extensions: --Cyrillic}', "");
-    Expect(0, 65071, '\P{Script_Extensions: --Cyrillic}', "");
-    Expect(1, 65071, '\P{^Script_Extensions: --Cyrillic}', "");
-    Expect(0, 65072, '\p{Script_Extensions: --Cyrillic}', "");
-    Expect(1, 65072, '\p{^Script_Extensions: --Cyrillic}', "");
-    Expect(1, 65072, '\P{Script_Extensions: --Cyrillic}', "");
-    Expect(0, 65072, '\P{^Script_Extensions: --Cyrillic}', "");
-    Error('\p{Scx=:=cyrl}');
-    Error('\P{Scx=:=cyrl}');
-    Expect(1, 65071, '\p{Scx=:\ACyrl\z:}', "");;
-    Expect(0, 65072, '\p{Scx=:\ACyrl\z:}', "");;
-    Expect(1, 65071, '\p{Scx=cyrl}', "");
-    Expect(0, 65071, '\p{^Scx=cyrl}', "");
-    Expect(0, 65071, '\P{Scx=cyrl}', "");
-    Expect(1, 65071, '\P{^Scx=cyrl}', "");
-    Expect(0, 65072, '\p{Scx=cyrl}', "");
-    Expect(1, 65072, '\p{^Scx=cyrl}', "");
-    Expect(1, 65072, '\P{Scx=cyrl}', "");
-    Expect(0, 65072, '\P{^Scx=cyrl}', "");
-    Expect(1, 65071, '\p{Scx=:\Acyrl\z:}', "");;
-    Expect(0, 65072, '\p{Scx=:\Acyrl\z:}', "");;
-    Expect(1, 65071, '\p{Scx=		Cyrl}', "");
-    Expect(0, 65071, '\p{^Scx=		Cyrl}', "");
-    Expect(0, 65071, '\P{Scx=		Cyrl}', "");
-    Expect(1, 65071, '\P{^Scx=		Cyrl}', "");
-    Expect(0, 65072, '\p{Scx=		Cyrl}', "");
-    Expect(1, 65072, '\p{^Scx=		Cyrl}', "");
-    Expect(1, 65072, '\P{Scx=		Cyrl}', "");
-    Expect(0, 65072, '\P{^Scx=		Cyrl}', "");
-    Error('\p{Is_Script_Extensions=/a/		Cyrillic}');
-    Error('\P{Is_Script_Extensions=/a/		Cyrillic}');
-    Expect(1, 65071, '\p{Is_Script_Extensions=cyrillic}', "");
-    Expect(0, 65071, '\p{^Is_Script_Extensions=cyrillic}', "");
-    Expect(0, 65071, '\P{Is_Script_Extensions=cyrillic}', "");
-    Expect(1, 65071, '\P{^Is_Script_Extensions=cyrillic}', "");
-    Expect(0, 65072, '\p{Is_Script_Extensions=cyrillic}', "");
-    Expect(1, 65072, '\p{^Is_Script_Extensions=cyrillic}', "");
-    Expect(1, 65072, '\P{Is_Script_Extensions=cyrillic}', "");
-    Expect(0, 65072, '\P{^Is_Script_Extensions=cyrillic}', "");
-    Expect(1, 65071, '\p{Is_Script_Extensions: 	cyrillic}', "");
-    Expect(0, 65071, '\p{^Is_Script_Extensions: 	cyrillic}', "");
-    Expect(0, 65071, '\P{Is_Script_Extensions: 	cyrillic}', "");
-    Expect(1, 65071, '\P{^Is_Script_Extensions: 	cyrillic}', "");
-    Expect(0, 65072, '\p{Is_Script_Extensions: 	cyrillic}', "");
-    Expect(1, 65072, '\p{^Is_Script_Extensions: 	cyrillic}', "");
-    Expect(1, 65072, '\P{Is_Script_Extensions: 	cyrillic}', "");
-    Expect(0, 65072, '\P{^Is_Script_Extensions: 	cyrillic}', "");
-    Error('\p{Is_Scx=-	CYRL:=}');
-    Error('\P{Is_Scx=-	CYRL:=}');
-    Expect(1, 65071, '\p{Is_Scx=cyrl}', "");
-    Expect(0, 65071, '\p{^Is_Scx=cyrl}', "");
-    Expect(0, 65071, '\P{Is_Scx=cyrl}', "");
-    Expect(1, 65071, '\P{^Is_Scx=cyrl}', "");
-    Expect(0, 65072, '\p{Is_Scx=cyrl}', "");
-    Expect(1, 65072, '\p{^Is_Scx=cyrl}', "");
-    Expect(1, 65072, '\P{Is_Scx=cyrl}', "");
-    Expect(0, 65072, '\P{^Is_Scx=cyrl}', "");
-    Expect(1, 65071, '\p{Is_Scx=_Cyrl}', "");
-    Expect(0, 65071, '\p{^Is_Scx=_Cyrl}', "");
-    Expect(0, 65071, '\P{Is_Scx=_Cyrl}', "");
-    Expect(1, 65071, '\P{^Is_Scx=_Cyrl}', "");
-    Expect(0, 65072, '\p{Is_Scx=_Cyrl}', "");
-    Expect(1, 65072, '\p{^Is_Scx=_Cyrl}', "");
-    Expect(1, 65072, '\P{Is_Scx=_Cyrl}', "");
-    Expect(0, 65072, '\P{^Is_Scx=_Cyrl}', "");
-    Error('\p{Script_Extensions=	 Devanagari:=}');
-    Error('\P{Script_Extensions=	 Devanagari:=}');
-    Expect(1, 43263, '\p{Script_Extensions=:\ADevanagari\z:}', "");;
-    Expect(0, 43264, '\p{Script_Extensions=:\ADevanagari\z:}', "");;
-    Expect(1, 43263, '\p{Script_Extensions=devanagari}', "");
-    Expect(0, 43263, '\p{^Script_Extensions=devanagari}', "");
-    Expect(0, 43263, '\P{Script_Extensions=devanagari}', "");
-    Expect(1, 43263, '\P{^Script_Extensions=devanagari}', "");
-    Expect(0, 43264, '\p{Script_Extensions=devanagari}', "");
-    Expect(1, 43264, '\p{^Script_Extensions=devanagari}', "");
-    Expect(1, 43264, '\P{Script_Extensions=devanagari}', "");
-    Expect(0, 43264, '\P{^Script_Extensions=devanagari}', "");
-    Expect(1, 43263, '\p{Script_Extensions=:\Adevanagari\z:}', "");;
-    Expect(0, 43264, '\p{Script_Extensions=:\Adevanagari\z:}', "");;
-    Expect(1, 43263, '\p{Script_Extensions=Devanagari}', "");
-    Expect(0, 43263, '\p{^Script_Extensions=Devanagari}', "");
-    Expect(0, 43263, '\P{Script_Extensions=Devanagari}', "");
-    Expect(1, 43263, '\P{^Script_Extensions=Devanagari}', "");
-    Expect(0, 43264, '\p{Script_Extensions=Devanagari}', "");
-    Expect(1, 43264, '\p{^Script_Extensions=Devanagari}', "");
-    Expect(1, 43264, '\P{Script_Extensions=Devanagari}', "");
-    Expect(0, 43264, '\P{^Script_Extensions=Devanagari}', "");
-    Error('\p{Scx=/a/_DEVA}');
-    Error('\P{Scx=/a/_DEVA}');
-    Expect(1, 43263, '\p{Scx=:\ADeva\z:}', "");;
-    Expect(0, 43264, '\p{Scx=:\ADeva\z:}', "");;
-    Expect(1, 43263, '\p{Scx:deva}', "");
-    Expect(0, 43263, '\p{^Scx:deva}', "");
-    Expect(0, 43263, '\P{Scx:deva}', "");
-    Expect(1, 43263, '\P{^Scx:deva}', "");
-    Expect(0, 43264, '\p{Scx:deva}', "");
-    Expect(1, 43264, '\p{^Scx:deva}', "");
-    Expect(1, 43264, '\P{Scx:deva}', "");
-    Expect(0, 43264, '\P{^Scx:deva}', "");
-    Expect(1, 43263, '\p{Scx=:\Adeva\z:}', "");;
-    Expect(0, 43264, '\p{Scx=:\Adeva\z:}', "");;
-    Expect(1, 43263, '\p{Scx:  deva}', "");
-    Expect(0, 43263, '\p{^Scx:  deva}', "");
-    Expect(0, 43263, '\P{Scx:  deva}', "");
-    Expect(1, 43263, '\P{^Scx:  deva}', "");
-    Expect(0, 43264, '\p{Scx:  deva}', "");
-    Expect(1, 43264, '\p{^Scx:  deva}', "");
-    Expect(1, 43264, '\P{Scx:  deva}', "");
-    Expect(0, 43264, '\P{^Scx:  deva}', "");
-    Error('\p{Is_Script_Extensions=/a/Devanagari}');
-    Error('\P{Is_Script_Extensions=/a/Devanagari}');
-    Expect(1, 43263, '\p{Is_Script_Extensions=devanagari}', "");
-    Expect(0, 43263, '\p{^Is_Script_Extensions=devanagari}', "");
-    Expect(0, 43263, '\P{Is_Script_Extensions=devanagari}', "");
-    Expect(1, 43263, '\P{^Is_Script_Extensions=devanagari}', "");
-    Expect(0, 43264, '\p{Is_Script_Extensions=devanagari}', "");
-    Expect(1, 43264, '\p{^Is_Script_Extensions=devanagari}', "");
-    Expect(1, 43264, '\P{Is_Script_Extensions=devanagari}', "");
-    Expect(0, 43264, '\P{^Is_Script_Extensions=devanagari}', "");
-    Expect(1, 43263, '\p{Is_Script_Extensions= devanagari}', "");
-    Expect(0, 43263, '\p{^Is_Script_Extensions= devanagari}', "");
-    Expect(0, 43263, '\P{Is_Script_Extensions= devanagari}', "");
-    Expect(1, 43263, '\P{^Is_Script_Extensions= devanagari}', "");
-    Expect(0, 43264, '\p{Is_Script_Extensions= devanagari}', "");
-    Expect(1, 43264, '\p{^Is_Script_Extensions= devanagari}', "");
-    Expect(1, 43264, '\P{Is_Script_Extensions= devanagari}', "");
-    Expect(0, 43264, '\P{^Is_Script_Extensions= devanagari}', "");
-    Error('\p{Is_Scx:	_:=Deva}');
-    Error('\P{Is_Scx:	_:=Deva}');
-    Expect(1, 43263, '\p{Is_Scx=deva}', "");
-    Expect(0, 43263, '\p{^Is_Scx=deva}', "");
-    Expect(0, 43263, '\P{Is_Scx=deva}', "");
-    Expect(1, 43263, '\P{^Is_Scx=deva}', "");
-    Expect(0, 43264, '\p{Is_Scx=deva}', "");
-    Expect(1, 43264, '\p{^Is_Scx=deva}', "");
-    Expect(1, 43264, '\P{Is_Scx=deva}', "");
-    Expect(0, 43264, '\P{^Is_Scx=deva}', "");
-    Expect(1, 43263, '\p{Is_Scx:   _ Deva}', "");
-    Expect(0, 43263, '\p{^Is_Scx:   _ Deva}', "");
-    Expect(0, 43263, '\P{Is_Scx:   _ Deva}', "");
-    Expect(1, 43263, '\P{^Is_Scx:   _ Deva}', "");
-    Expect(0, 43264, '\p{Is_Scx:   _ Deva}', "");
-    Expect(1, 43264, '\p{^Is_Scx:   _ Deva}', "");
-    Expect(1, 43264, '\P{Is_Scx:   _ Deva}', "");
-    Expect(0, 43264, '\P{^Is_Scx:   _ Deva}', "");
-    Error('\p{Script_Extensions=/a/ _Dives_AKURU}');
-    Error('\P{Script_Extensions=/a/ _Dives_AKURU}');
+    Expect(1, 67647, '\p{Is_Scx=	Cprt}', "");
+    Expect(0, 67647, '\p{^Is_Scx=	Cprt}', "");
+    Expect(0, 67647, '\P{Is_Scx=	Cprt}', "");
+    Expect(1, 67647, '\P{^Is_Scx=	Cprt}', "");
+    Expect(0, 67648, '\p{Is_Scx=	Cprt}', "");
+    Expect(1, 67648, '\p{^Is_Scx=	Cprt}', "");
+    Expect(1, 67648, '\P{Is_Scx=	Cprt}', "");
+    Expect(0, 67648, '\P{^Is_Scx=	Cprt}', "");
+    Error('\p{Script_Extensions=:=_CYRILLIC}');
+    Error('\P{Script_Extensions=:=_CYRILLIC}');
+    Expect(1, 123023, '\p{Script_Extensions=:\ACyrillic\z:}', "");;
+    Expect(0, 123024, '\p{Script_Extensions=:\ACyrillic\z:}', "");;
+    Expect(1, 123023, '\p{Script_Extensions=cyrillic}', "");
+    Expect(0, 123023, '\p{^Script_Extensions=cyrillic}', "");
+    Expect(0, 123023, '\P{Script_Extensions=cyrillic}', "");
+    Expect(1, 123023, '\P{^Script_Extensions=cyrillic}', "");
+    Expect(0, 123024, '\p{Script_Extensions=cyrillic}', "");
+    Expect(1, 123024, '\p{^Script_Extensions=cyrillic}', "");
+    Expect(1, 123024, '\P{Script_Extensions=cyrillic}', "");
+    Expect(0, 123024, '\P{^Script_Extensions=cyrillic}', "");
+    Expect(1, 123023, '\p{Script_Extensions=:\Acyrillic\z:}', "");;
+    Expect(0, 123024, '\p{Script_Extensions=:\Acyrillic\z:}', "");;
+    Expect(1, 123023, '\p{Script_Extensions=_Cyrillic}', "");
+    Expect(0, 123023, '\p{^Script_Extensions=_Cyrillic}', "");
+    Expect(0, 123023, '\P{Script_Extensions=_Cyrillic}', "");
+    Expect(1, 123023, '\P{^Script_Extensions=_Cyrillic}', "");
+    Expect(0, 123024, '\p{Script_Extensions=_Cyrillic}', "");
+    Expect(1, 123024, '\p{^Script_Extensions=_Cyrillic}', "");
+    Expect(1, 123024, '\P{Script_Extensions=_Cyrillic}', "");
+    Expect(0, 123024, '\P{^Script_Extensions=_Cyrillic}', "");
+    Error('\p{Scx=/a/-CYRL}');
+    Error('\P{Scx=/a/-CYRL}');
+    Expect(1, 123023, '\p{Scx=:\ACyrl\z:}', "");;
+    Expect(0, 123024, '\p{Scx=:\ACyrl\z:}', "");;
+    Expect(1, 123023, '\p{Scx=cyrl}', "");
+    Expect(0, 123023, '\p{^Scx=cyrl}', "");
+    Expect(0, 123023, '\P{Scx=cyrl}', "");
+    Expect(1, 123023, '\P{^Scx=cyrl}', "");
+    Expect(0, 123024, '\p{Scx=cyrl}', "");
+    Expect(1, 123024, '\p{^Scx=cyrl}', "");
+    Expect(1, 123024, '\P{Scx=cyrl}', "");
+    Expect(0, 123024, '\P{^Scx=cyrl}', "");
+    Expect(1, 123023, '\p{Scx=:\Acyrl\z:}', "");;
+    Expect(0, 123024, '\p{Scx=:\Acyrl\z:}', "");;
+    Expect(1, 123023, '\p{Scx=	-Cyrl}', "");
+    Expect(0, 123023, '\p{^Scx=	-Cyrl}', "");
+    Expect(0, 123023, '\P{Scx=	-Cyrl}', "");
+    Expect(1, 123023, '\P{^Scx=	-Cyrl}', "");
+    Expect(0, 123024, '\p{Scx=	-Cyrl}', "");
+    Expect(1, 123024, '\p{^Scx=	-Cyrl}', "");
+    Expect(1, 123024, '\P{Scx=	-Cyrl}', "");
+    Expect(0, 123024, '\P{^Scx=	-Cyrl}', "");
+    Error('\p{Is_Script_Extensions= /a/CYRILLIC}');
+    Error('\P{Is_Script_Extensions= /a/CYRILLIC}');
+    Expect(1, 123023, '\p{Is_Script_Extensions=cyrillic}', "");
+    Expect(0, 123023, '\p{^Is_Script_Extensions=cyrillic}', "");
+    Expect(0, 123023, '\P{Is_Script_Extensions=cyrillic}', "");
+    Expect(1, 123023, '\P{^Is_Script_Extensions=cyrillic}', "");
+    Expect(0, 123024, '\p{Is_Script_Extensions=cyrillic}', "");
+    Expect(1, 123024, '\p{^Is_Script_Extensions=cyrillic}', "");
+    Expect(1, 123024, '\P{Is_Script_Extensions=cyrillic}', "");
+    Expect(0, 123024, '\P{^Is_Script_Extensions=cyrillic}', "");
+    Expect(1, 123023, '\p{Is_Script_Extensions=--cyrillic}', "");
+    Expect(0, 123023, '\p{^Is_Script_Extensions=--cyrillic}', "");
+    Expect(0, 123023, '\P{Is_Script_Extensions=--cyrillic}', "");
+    Expect(1, 123023, '\P{^Is_Script_Extensions=--cyrillic}', "");
+    Expect(0, 123024, '\p{Is_Script_Extensions=--cyrillic}', "");
+    Expect(1, 123024, '\p{^Is_Script_Extensions=--cyrillic}', "");
+    Expect(1, 123024, '\P{Is_Script_Extensions=--cyrillic}', "");
+    Expect(0, 123024, '\P{^Is_Script_Extensions=--cyrillic}', "");
+    Error('\p{Is_Scx=:=_-Cyrl}');
+    Error('\P{Is_Scx=:=_-Cyrl}');
+    Expect(1, 123023, '\p{Is_Scx=cyrl}', "");
+    Expect(0, 123023, '\p{^Is_Scx=cyrl}', "");
+    Expect(0, 123023, '\P{Is_Scx=cyrl}', "");
+    Expect(1, 123023, '\P{^Is_Scx=cyrl}', "");
+    Expect(0, 123024, '\p{Is_Scx=cyrl}', "");
+    Expect(1, 123024, '\p{^Is_Scx=cyrl}', "");
+    Expect(1, 123024, '\P{Is_Scx=cyrl}', "");
+    Expect(0, 123024, '\P{^Is_Scx=cyrl}', "");
+    Expect(1, 123023, '\p{Is_Scx= -Cyrl}', "");
+    Expect(0, 123023, '\p{^Is_Scx= -Cyrl}', "");
+    Expect(0, 123023, '\P{Is_Scx= -Cyrl}', "");
+    Expect(1, 123023, '\P{^Is_Scx= -Cyrl}', "");
+    Expect(0, 123024, '\p{Is_Scx= -Cyrl}', "");
+    Expect(1, 123024, '\p{^Is_Scx= -Cyrl}', "");
+    Expect(1, 123024, '\P{Is_Scx= -Cyrl}', "");
+    Expect(0, 123024, '\P{^Is_Scx= -Cyrl}', "");
+    Error('\p{Script_Extensions= /a/Devanagari}');
+    Error('\P{Script_Extensions= /a/Devanagari}');
+    Expect(1, 72457, '\p{Script_Extensions=:\ADevanagari\z:}', "");;
+    Expect(0, 72458, '\p{Script_Extensions=:\ADevanagari\z:}', "");;
+    Expect(1, 72457, '\p{Script_Extensions=devanagari}', "");
+    Expect(0, 72457, '\p{^Script_Extensions=devanagari}', "");
+    Expect(0, 72457, '\P{Script_Extensions=devanagari}', "");
+    Expect(1, 72457, '\P{^Script_Extensions=devanagari}', "");
+    Expect(0, 72458, '\p{Script_Extensions=devanagari}', "");
+    Expect(1, 72458, '\p{^Script_Extensions=devanagari}', "");
+    Expect(1, 72458, '\P{Script_Extensions=devanagari}', "");
+    Expect(0, 72458, '\P{^Script_Extensions=devanagari}', "");
+    Expect(1, 72457, '\p{Script_Extensions=:\Adevanagari\z:}', "");;
+    Expect(0, 72458, '\p{Script_Extensions=:\Adevanagari\z:}', "");;
+    Expect(1, 72457, '\p{Script_Extensions=-DEVANAGARI}', "");
+    Expect(0, 72457, '\p{^Script_Extensions=-DEVANAGARI}', "");
+    Expect(0, 72457, '\P{Script_Extensions=-DEVANAGARI}', "");
+    Expect(1, 72457, '\P{^Script_Extensions=-DEVANAGARI}', "");
+    Expect(0, 72458, '\p{Script_Extensions=-DEVANAGARI}', "");
+    Expect(1, 72458, '\p{^Script_Extensions=-DEVANAGARI}', "");
+    Expect(1, 72458, '\P{Script_Extensions=-DEVANAGARI}', "");
+    Expect(0, 72458, '\P{^Script_Extensions=-DEVANAGARI}', "");
+    Error('\p{Scx=:=_deva}');
+    Error('\P{Scx=:=_deva}');
+    Expect(1, 72457, '\p{Scx=:\ADeva\z:}', "");;
+    Expect(0, 72458, '\p{Scx=:\ADeva\z:}', "");;
+    Expect(1, 72457, '\p{Scx=deva}', "");
+    Expect(0, 72457, '\p{^Scx=deva}', "");
+    Expect(0, 72457, '\P{Scx=deva}', "");
+    Expect(1, 72457, '\P{^Scx=deva}', "");
+    Expect(0, 72458, '\p{Scx=deva}', "");
+    Expect(1, 72458, '\p{^Scx=deva}', "");
+    Expect(1, 72458, '\P{Scx=deva}', "");
+    Expect(0, 72458, '\P{^Scx=deva}', "");
+    Expect(1, 72457, '\p{Scx=:\Adeva\z:}', "");;
+    Expect(0, 72458, '\p{Scx=:\Adeva\z:}', "");;
+    Expect(1, 72457, '\p{Scx:	-deva}', "");
+    Expect(0, 72457, '\p{^Scx:	-deva}', "");
+    Expect(0, 72457, '\P{Scx:	-deva}', "");
+    Expect(1, 72457, '\P{^Scx:	-deva}', "");
+    Expect(0, 72458, '\p{Scx:	-deva}', "");
+    Expect(1, 72458, '\p{^Scx:	-deva}', "");
+    Expect(1, 72458, '\P{Scx:	-deva}', "");
+    Expect(0, 72458, '\P{^Scx:	-deva}', "");
+    Error('\p{Is_Script_Extensions=- Devanagari:=}');
+    Error('\P{Is_Script_Extensions=- Devanagari:=}');
+    Expect(1, 72457, '\p{Is_Script_Extensions=devanagari}', "");
+    Expect(0, 72457, '\p{^Is_Script_Extensions=devanagari}', "");
+    Expect(0, 72457, '\P{Is_Script_Extensions=devanagari}', "");
+    Expect(1, 72457, '\P{^Is_Script_Extensions=devanagari}', "");
+    Expect(0, 72458, '\p{Is_Script_Extensions=devanagari}', "");
+    Expect(1, 72458, '\p{^Is_Script_Extensions=devanagari}', "");
+    Expect(1, 72458, '\P{Is_Script_Extensions=devanagari}', "");
+    Expect(0, 72458, '\P{^Is_Script_Extensions=devanagari}', "");
+    Expect(1, 72457, '\p{Is_Script_Extensions=-Devanagari}', "");
+    Expect(0, 72457, '\p{^Is_Script_Extensions=-Devanagari}', "");
+    Expect(0, 72457, '\P{Is_Script_Extensions=-Devanagari}', "");
+    Expect(1, 72457, '\P{^Is_Script_Extensions=-Devanagari}', "");
+    Expect(0, 72458, '\p{Is_Script_Extensions=-Devanagari}', "");
+    Expect(1, 72458, '\p{^Is_Script_Extensions=-Devanagari}', "");
+    Expect(1, 72458, '\P{Is_Script_Extensions=-Devanagari}', "");
+    Expect(0, 72458, '\P{^Is_Script_Extensions=-Devanagari}', "");
+    Error('\p{Is_Scx=:=__DEVA}');
+    Error('\P{Is_Scx=:=__DEVA}');
+    Expect(1, 72457, '\p{Is_Scx=deva}', "");
+    Expect(0, 72457, '\p{^Is_Scx=deva}', "");
+    Expect(0, 72457, '\P{Is_Scx=deva}', "");
+    Expect(1, 72457, '\P{^Is_Scx=deva}', "");
+    Expect(0, 72458, '\p{Is_Scx=deva}', "");
+    Expect(1, 72458, '\p{^Is_Scx=deva}', "");
+    Expect(1, 72458, '\P{Is_Scx=deva}', "");
+    Expect(0, 72458, '\P{^Is_Scx=deva}', "");
+    Expect(1, 72457, '\p{Is_Scx=_ Deva}', "");
+    Expect(0, 72457, '\p{^Is_Scx=_ Deva}', "");
+    Expect(0, 72457, '\P{Is_Scx=_ Deva}', "");
+    Expect(1, 72457, '\P{^Is_Scx=_ Deva}', "");
+    Expect(0, 72458, '\p{Is_Scx=_ Deva}', "");
+    Expect(1, 72458, '\p{^Is_Scx=_ Deva}', "");
+    Expect(1, 72458, '\P{Is_Scx=_ Deva}', "");
+    Expect(0, 72458, '\P{^Is_Scx=_ Deva}', "");
+    Error('\p{Script_Extensions= :=Dives_akuru}');
+    Error('\P{Script_Extensions= :=Dives_akuru}');
     Expect(1, 72025, '\p{Script_Extensions=:\ADives_Akuru\z:}', "");;
     Expect(0, 72026, '\p{Script_Extensions=:\ADives_Akuru\z:}', "");;
     Expect(1, 72025, '\p{Script_Extensions=divesakuru}', "");
@@ -143741,16 +145077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72026, '\P{^Script_Extensions=divesakuru}', "");
     Expect(1, 72025, '\p{Script_Extensions=:\Adivesakuru\z:}', "");;
     Expect(0, 72026, '\p{Script_Extensions=:\Adivesakuru\z:}', "");;
-    Expect(1, 72025, '\p{Script_Extensions=-_Dives_AKURU}', "");
-    Expect(0, 72025, '\p{^Script_Extensions=-_Dives_AKURU}', "");
-    Expect(0, 72025, '\P{Script_Extensions=-_Dives_AKURU}', "");
-    Expect(1, 72025, '\P{^Script_Extensions=-_Dives_AKURU}', "");
-    Expect(0, 72026, '\p{Script_Extensions=-_Dives_AKURU}', "");
-    Expect(1, 72026, '\p{^Script_Extensions=-_Dives_AKURU}', "");
-    Expect(1, 72026, '\P{Script_Extensions=-_Dives_AKURU}', "");
-    Expect(0, 72026, '\P{^Script_Extensions=-_Dives_AKURU}', "");
-    Error('\p{Scx=-:=diak}');
-    Error('\P{Scx=-:=diak}');
+    Expect(1, 72025, '\p{Script_Extensions=__Dives_Akuru}', "");
+    Expect(0, 72025, '\p{^Script_Extensions=__Dives_Akuru}', "");
+    Expect(0, 72025, '\P{Script_Extensions=__Dives_Akuru}', "");
+    Expect(1, 72025, '\P{^Script_Extensions=__Dives_Akuru}', "");
+    Expect(0, 72026, '\p{Script_Extensions=__Dives_Akuru}', "");
+    Expect(1, 72026, '\p{^Script_Extensions=__Dives_Akuru}', "");
+    Expect(1, 72026, '\P{Script_Extensions=__Dives_Akuru}', "");
+    Expect(0, 72026, '\P{^Script_Extensions=__Dives_Akuru}', "");
+    Error('\p{Scx:	 -Diak/a/}');
+    Error('\P{Scx:	 -Diak/a/}');
     Expect(1, 72025, '\p{Scx=:\ADiak\z:}', "");;
     Expect(0, 72026, '\p{Scx=:\ADiak\z:}', "");;
     Expect(1, 72025, '\p{Scx=diak}', "");
@@ -143763,34 +145099,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72026, '\P{^Scx=diak}', "");
     Expect(1, 72025, '\p{Scx=:\Adiak\z:}', "");;
     Expect(0, 72026, '\p{Scx=:\Adiak\z:}', "");;
-    Expect(1, 72025, '\p{Scx=-Diak}', "");
-    Expect(0, 72025, '\p{^Scx=-Diak}', "");
-    Expect(0, 72025, '\P{Scx=-Diak}', "");
-    Expect(1, 72025, '\P{^Scx=-Diak}', "");
-    Expect(0, 72026, '\p{Scx=-Diak}', "");
-    Expect(1, 72026, '\p{^Scx=-Diak}', "");
-    Expect(1, 72026, '\P{Scx=-Diak}', "");
-    Expect(0, 72026, '\P{^Scx=-Diak}', "");
-    Error('\p{Is_Script_Extensions=/a/	DIVES_Akuru}');
-    Error('\P{Is_Script_Extensions=/a/	DIVES_Akuru}');
-    Expect(1, 72025, '\p{Is_Script_Extensions=divesakuru}', "");
-    Expect(0, 72025, '\p{^Is_Script_Extensions=divesakuru}', "");
-    Expect(0, 72025, '\P{Is_Script_Extensions=divesakuru}', "");
-    Expect(1, 72025, '\P{^Is_Script_Extensions=divesakuru}', "");
-    Expect(0, 72026, '\p{Is_Script_Extensions=divesakuru}', "");
-    Expect(1, 72026, '\p{^Is_Script_Extensions=divesakuru}', "");
-    Expect(1, 72026, '\P{Is_Script_Extensions=divesakuru}', "");
-    Expect(0, 72026, '\P{^Is_Script_Extensions=divesakuru}', "");
-    Expect(1, 72025, '\p{Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(0, 72025, '\p{^Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(0, 72025, '\P{Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(1, 72025, '\P{^Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(0, 72026, '\p{Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(1, 72026, '\p{^Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(1, 72026, '\P{Is_Script_Extensions=	_dives_akuru}', "");
-    Expect(0, 72026, '\P{^Is_Script_Extensions=	_dives_akuru}', "");
-    Error('\p{Is_Scx=:=_DIAK}');
-    Error('\P{Is_Scx=:=_DIAK}');
+    Expect(1, 72025, '\p{Scx=  Diak}', "");
+    Expect(0, 72025, '\p{^Scx=  Diak}', "");
+    Expect(0, 72025, '\P{Scx=  Diak}', "");
+    Expect(1, 72025, '\P{^Scx=  Diak}', "");
+    Expect(0, 72026, '\p{Scx=  Diak}', "");
+    Expect(1, 72026, '\p{^Scx=  Diak}', "");
+    Expect(1, 72026, '\P{Scx=  Diak}', "");
+    Expect(0, 72026, '\P{^Scx=  Diak}', "");
+    Error('\p{Is_Script_Extensions=__Dives_Akuru/a/}');
+    Error('\P{Is_Script_Extensions=__Dives_Akuru/a/}');
+    Expect(1, 72025, '\p{Is_Script_Extensions:divesakuru}', "");
+    Expect(0, 72025, '\p{^Is_Script_Extensions:divesakuru}', "");
+    Expect(0, 72025, '\P{Is_Script_Extensions:divesakuru}', "");
+    Expect(1, 72025, '\P{^Is_Script_Extensions:divesakuru}', "");
+    Expect(0, 72026, '\p{Is_Script_Extensions:divesakuru}', "");
+    Expect(1, 72026, '\p{^Is_Script_Extensions:divesakuru}', "");
+    Expect(1, 72026, '\P{Is_Script_Extensions:divesakuru}', "");
+    Expect(0, 72026, '\P{^Is_Script_Extensions:divesakuru}', "");
+    Expect(1, 72025, '\p{Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(0, 72025, '\p{^Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(0, 72025, '\P{Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(1, 72025, '\P{^Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(0, 72026, '\p{Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(1, 72026, '\p{^Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(1, 72026, '\P{Is_Script_Extensions=--DIVES_akuru}', "");
+    Expect(0, 72026, '\P{^Is_Script_Extensions=--DIVES_akuru}', "");
+    Error('\p{Is_Scx: --Diak:=}');
+    Error('\P{Is_Scx: --Diak:=}');
     Expect(1, 72025, '\p{Is_Scx=diak}', "");
     Expect(0, 72025, '\p{^Is_Scx=diak}', "");
     Expect(0, 72025, '\P{Is_Scx=diak}', "");
@@ -143799,38 +145135,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72026, '\p{^Is_Scx=diak}', "");
     Expect(1, 72026, '\P{Is_Scx=diak}', "");
     Expect(0, 72026, '\P{^Is_Scx=diak}', "");
-    Expect(1, 72025, '\p{Is_Scx=_	Diak}', "");
-    Expect(0, 72025, '\p{^Is_Scx=_	Diak}', "");
-    Expect(0, 72025, '\P{Is_Scx=_	Diak}', "");
-    Expect(1, 72025, '\P{^Is_Scx=_	Diak}', "");
-    Expect(0, 72026, '\p{Is_Scx=_	Diak}', "");
-    Expect(1, 72026, '\p{^Is_Scx=_	Diak}', "");
-    Expect(1, 72026, '\P{Is_Scx=_	Diak}', "");
-    Expect(0, 72026, '\P{^Is_Scx=_	Diak}', "");
-    Error('\p{Script_Extensions=_	Dogra:=}');
-    Error('\P{Script_Extensions=_	Dogra:=}');
+    Expect(1, 72025, '\p{Is_Scx:		DIAK}', "");
+    Expect(0, 72025, '\p{^Is_Scx:		DIAK}', "");
+    Expect(0, 72025, '\P{Is_Scx:		DIAK}', "");
+    Expect(1, 72025, '\P{^Is_Scx:		DIAK}', "");
+    Expect(0, 72026, '\p{Is_Scx:		DIAK}', "");
+    Expect(1, 72026, '\p{^Is_Scx:		DIAK}', "");
+    Expect(1, 72026, '\P{Is_Scx:		DIAK}', "");
+    Expect(0, 72026, '\P{^Is_Scx:		DIAK}', "");
+    Error('\p{Script_Extensions=:=-dogra}');
+    Error('\P{Script_Extensions=:=-dogra}');
     Expect(1, 71739, '\p{Script_Extensions=:\ADogra\z:}', "");;
     Expect(0, 71740, '\p{Script_Extensions=:\ADogra\z:}', "");;
-    Expect(1, 71739, '\p{Script_Extensions=dogra}', "");
-    Expect(0, 71739, '\p{^Script_Extensions=dogra}', "");
-    Expect(0, 71739, '\P{Script_Extensions=dogra}', "");
-    Expect(1, 71739, '\P{^Script_Extensions=dogra}', "");
-    Expect(0, 71740, '\p{Script_Extensions=dogra}', "");
-    Expect(1, 71740, '\p{^Script_Extensions=dogra}', "");
-    Expect(1, 71740, '\P{Script_Extensions=dogra}', "");
-    Expect(0, 71740, '\P{^Script_Extensions=dogra}', "");
+    Expect(1, 71739, '\p{Script_Extensions:dogra}', "");
+    Expect(0, 71739, '\p{^Script_Extensions:dogra}', "");
+    Expect(0, 71739, '\P{Script_Extensions:dogra}', "");
+    Expect(1, 71739, '\P{^Script_Extensions:dogra}', "");
+    Expect(0, 71740, '\p{Script_Extensions:dogra}', "");
+    Expect(1, 71740, '\p{^Script_Extensions:dogra}', "");
+    Expect(1, 71740, '\P{Script_Extensions:dogra}', "");
+    Expect(0, 71740, '\P{^Script_Extensions:dogra}', "");
     Expect(1, 71739, '\p{Script_Extensions=:\Adogra\z:}', "");;
     Expect(0, 71740, '\p{Script_Extensions=:\Adogra\z:}', "");;
-    Expect(1, 71739, '\p{Script_Extensions= Dogra}', "");
-    Expect(0, 71739, '\p{^Script_Extensions= Dogra}', "");
-    Expect(0, 71739, '\P{Script_Extensions= Dogra}', "");
-    Expect(1, 71739, '\P{^Script_Extensions= Dogra}', "");
-    Expect(0, 71740, '\p{Script_Extensions= Dogra}', "");
-    Expect(1, 71740, '\p{^Script_Extensions= Dogra}', "");
-    Expect(1, 71740, '\P{Script_Extensions= Dogra}', "");
-    Expect(0, 71740, '\P{^Script_Extensions= Dogra}', "");
-    Error('\p{Scx=	Dogr:=}');
-    Error('\P{Scx=	Dogr:=}');
+    Expect(1, 71739, '\p{Script_Extensions=-_Dogra}', "");
+    Expect(0, 71739, '\p{^Script_Extensions=-_Dogra}', "");
+    Expect(0, 71739, '\P{Script_Extensions=-_Dogra}', "");
+    Expect(1, 71739, '\P{^Script_Extensions=-_Dogra}', "");
+    Expect(0, 71740, '\p{Script_Extensions=-_Dogra}', "");
+    Expect(1, 71740, '\p{^Script_Extensions=-_Dogra}', "");
+    Expect(1, 71740, '\P{Script_Extensions=-_Dogra}', "");
+    Expect(0, 71740, '\P{^Script_Extensions=-_Dogra}', "");
+    Error('\p{Scx=-/a/Dogr}');
+    Error('\P{Scx=-/a/Dogr}');
     Expect(1, 71739, '\p{Scx=:\ADogr\z:}', "");;
     Expect(0, 71740, '\p{Scx=:\ADogr\z:}', "");;
     Expect(1, 71739, '\p{Scx=dogr}', "");
@@ -143843,16 +145179,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71740, '\P{^Scx=dogr}', "");
     Expect(1, 71739, '\p{Scx=:\Adogr\z:}', "");;
     Expect(0, 71740, '\p{Scx=:\Adogr\z:}', "");;
-    Expect(1, 71739, '\p{Scx=	 dogr}', "");
-    Expect(0, 71739, '\p{^Scx=	 dogr}', "");
-    Expect(0, 71739, '\P{Scx=	 dogr}', "");
-    Expect(1, 71739, '\P{^Scx=	 dogr}', "");
-    Expect(0, 71740, '\p{Scx=	 dogr}', "");
-    Expect(1, 71740, '\p{^Scx=	 dogr}', "");
-    Expect(1, 71740, '\P{Scx=	 dogr}', "");
-    Expect(0, 71740, '\P{^Scx=	 dogr}', "");
-    Error('\p{Is_Script_Extensions=- dogra/a/}');
-    Error('\P{Is_Script_Extensions=- dogra/a/}');
+    Expect(1, 71739, '\p{Scx=  Dogr}', "");
+    Expect(0, 71739, '\p{^Scx=  Dogr}', "");
+    Expect(0, 71739, '\P{Scx=  Dogr}', "");
+    Expect(1, 71739, '\P{^Scx=  Dogr}', "");
+    Expect(0, 71740, '\p{Scx=  Dogr}', "");
+    Expect(1, 71740, '\p{^Scx=  Dogr}', "");
+    Expect(1, 71740, '\P{Scx=  Dogr}', "");
+    Expect(0, 71740, '\P{^Scx=  Dogr}', "");
+    Error('\p{Is_Script_Extensions=	_Dogra/a/}');
+    Error('\P{Is_Script_Extensions=	_Dogra/a/}');
     Expect(1, 71739, '\p{Is_Script_Extensions=dogra}', "");
     Expect(0, 71739, '\p{^Is_Script_Extensions=dogra}', "");
     Expect(0, 71739, '\P{Is_Script_Extensions=dogra}', "");
@@ -143861,16 +145197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71740, '\p{^Is_Script_Extensions=dogra}', "");
     Expect(1, 71740, '\P{Is_Script_Extensions=dogra}', "");
     Expect(0, 71740, '\P{^Is_Script_Extensions=dogra}', "");
-    Expect(1, 71739, '\p{Is_Script_Extensions=		Dogra}', "");
-    Expect(0, 71739, '\p{^Is_Script_Extensions=		Dogra}', "");
-    Expect(0, 71739, '\P{Is_Script_Extensions=		Dogra}', "");
-    Expect(1, 71739, '\P{^Is_Script_Extensions=		Dogra}', "");
-    Expect(0, 71740, '\p{Is_Script_Extensions=		Dogra}', "");
-    Expect(1, 71740, '\p{^Is_Script_Extensions=		Dogra}', "");
-    Expect(1, 71740, '\P{Is_Script_Extensions=		Dogra}', "");
-    Expect(0, 71740, '\P{^Is_Script_Extensions=		Dogra}', "");
-    Error('\p{Is_Scx=:=-_DOGR}');
-    Error('\P{Is_Scx=:=-_DOGR}');
+    Expect(1, 71739, '\p{Is_Script_Extensions=_	Dogra}', "");
+    Expect(0, 71739, '\p{^Is_Script_Extensions=_	Dogra}', "");
+    Expect(0, 71739, '\P{Is_Script_Extensions=_	Dogra}', "");
+    Expect(1, 71739, '\P{^Is_Script_Extensions=_	Dogra}', "");
+    Expect(0, 71740, '\p{Is_Script_Extensions=_	Dogra}', "");
+    Expect(1, 71740, '\p{^Is_Script_Extensions=_	Dogra}', "");
+    Expect(1, 71740, '\P{Is_Script_Extensions=_	Dogra}', "");
+    Expect(0, 71740, '\P{^Is_Script_Extensions=_	Dogra}', "");
+    Error('\p{Is_Scx=_dogr:=}');
+    Error('\P{Is_Scx=_dogr:=}');
     Expect(1, 71739, '\p{Is_Scx=dogr}', "");
     Expect(0, 71739, '\p{^Is_Scx=dogr}', "");
     Expect(0, 71739, '\P{Is_Scx=dogr}', "");
@@ -143879,16 +145215,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71740, '\p{^Is_Scx=dogr}', "");
     Expect(1, 71740, '\P{Is_Scx=dogr}', "");
     Expect(0, 71740, '\P{^Is_Scx=dogr}', "");
-    Expect(1, 71739, '\p{Is_Scx=-dogr}', "");
-    Expect(0, 71739, '\p{^Is_Scx=-dogr}', "");
-    Expect(0, 71739, '\P{Is_Scx=-dogr}', "");
-    Expect(1, 71739, '\P{^Is_Scx=-dogr}', "");
-    Expect(0, 71740, '\p{Is_Scx=-dogr}', "");
-    Expect(1, 71740, '\p{^Is_Scx=-dogr}', "");
-    Expect(1, 71740, '\P{Is_Scx=-dogr}', "");
-    Expect(0, 71740, '\P{^Is_Scx=-dogr}', "");
-    Error('\p{Script_Extensions=/a/DESERET}');
-    Error('\P{Script_Extensions=/a/DESERET}');
+    Expect(1, 71739, '\p{Is_Scx= -Dogr}', "");
+    Expect(0, 71739, '\p{^Is_Scx= -Dogr}', "");
+    Expect(0, 71739, '\P{Is_Scx= -Dogr}', "");
+    Expect(1, 71739, '\P{^Is_Scx= -Dogr}', "");
+    Expect(0, 71740, '\p{Is_Scx= -Dogr}', "");
+    Expect(1, 71740, '\p{^Is_Scx= -Dogr}', "");
+    Expect(1, 71740, '\P{Is_Scx= -Dogr}', "");
+    Expect(0, 71740, '\P{^Is_Scx= -Dogr}', "");
+    Error('\p{Script_Extensions=:=_	Deseret}');
+    Error('\P{Script_Extensions=:=_	Deseret}');
     Expect(1, 66639, '\p{Script_Extensions=:\ADeseret\z:}', "");;
     Expect(0, 66640, '\p{Script_Extensions=:\ADeseret\z:}', "");;
     Expect(1, 66639, '\p{Script_Extensions=deseret}', "");
@@ -143901,16 +145237,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66640, '\P{^Script_Extensions=deseret}', "");
     Expect(1, 66639, '\p{Script_Extensions=:\Adeseret\z:}', "");;
     Expect(0, 66640, '\p{Script_Extensions=:\Adeseret\z:}', "");;
-    Expect(1, 66639, '\p{Script_Extensions:__Deseret}', "");
-    Expect(0, 66639, '\p{^Script_Extensions:__Deseret}', "");
-    Expect(0, 66639, '\P{Script_Extensions:__Deseret}', "");
-    Expect(1, 66639, '\P{^Script_Extensions:__Deseret}', "");
-    Expect(0, 66640, '\p{Script_Extensions:__Deseret}', "");
-    Expect(1, 66640, '\p{^Script_Extensions:__Deseret}', "");
-    Expect(1, 66640, '\P{Script_Extensions:__Deseret}', "");
-    Expect(0, 66640, '\P{^Script_Extensions:__Deseret}', "");
-    Error('\p{Scx=/a/ -dsrt}');
-    Error('\P{Scx=/a/ -dsrt}');
+    Expect(1, 66639, '\p{Script_Extensions=_-DESERET}', "");
+    Expect(0, 66639, '\p{^Script_Extensions=_-DESERET}', "");
+    Expect(0, 66639, '\P{Script_Extensions=_-DESERET}', "");
+    Expect(1, 66639, '\P{^Script_Extensions=_-DESERET}', "");
+    Expect(0, 66640, '\p{Script_Extensions=_-DESERET}', "");
+    Expect(1, 66640, '\p{^Script_Extensions=_-DESERET}', "");
+    Expect(1, 66640, '\P{Script_Extensions=_-DESERET}', "");
+    Expect(0, 66640, '\P{^Script_Extensions=_-DESERET}', "");
+    Error('\p{Scx:	-	DSRT/a/}');
+    Error('\P{Scx:	-	DSRT/a/}');
     Expect(1, 66639, '\p{Scx=:\ADsrt\z:}', "");;
     Expect(0, 66640, '\p{Scx=:\ADsrt\z:}', "");;
     Expect(1, 66639, '\p{Scx=dsrt}', "");
@@ -143923,16 +145259,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66640, '\P{^Scx=dsrt}', "");
     Expect(1, 66639, '\p{Scx=:\Adsrt\z:}', "");;
     Expect(0, 66640, '\p{Scx=:\Adsrt\z:}', "");;
-    Expect(1, 66639, '\p{Scx= _DSRT}', "");
-    Expect(0, 66639, '\p{^Scx= _DSRT}', "");
-    Expect(0, 66639, '\P{Scx= _DSRT}', "");
-    Expect(1, 66639, '\P{^Scx= _DSRT}', "");
-    Expect(0, 66640, '\p{Scx= _DSRT}', "");
-    Expect(1, 66640, '\p{^Scx= _DSRT}', "");
-    Expect(1, 66640, '\P{Scx= _DSRT}', "");
-    Expect(0, 66640, '\P{^Scx= _DSRT}', "");
-    Error('\p{Is_Script_Extensions=-:=Deseret}');
-    Error('\P{Is_Script_Extensions=-:=Deseret}');
+    Expect(1, 66639, '\p{Scx=-DSRT}', "");
+    Expect(0, 66639, '\p{^Scx=-DSRT}', "");
+    Expect(0, 66639, '\P{Scx=-DSRT}', "");
+    Expect(1, 66639, '\P{^Scx=-DSRT}', "");
+    Expect(0, 66640, '\p{Scx=-DSRT}', "");
+    Expect(1, 66640, '\p{^Scx=-DSRT}', "");
+    Expect(1, 66640, '\P{Scx=-DSRT}', "");
+    Expect(0, 66640, '\P{^Scx=-DSRT}', "");
+    Error('\p{Is_Script_Extensions=-:=deseret}');
+    Error('\P{Is_Script_Extensions=-:=deseret}');
     Expect(1, 66639, '\p{Is_Script_Extensions=deseret}', "");
     Expect(0, 66639, '\p{^Is_Script_Extensions=deseret}', "");
     Expect(0, 66639, '\P{Is_Script_Extensions=deseret}', "");
@@ -143941,16 +145277,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66640, '\p{^Is_Script_Extensions=deseret}', "");
     Expect(1, 66640, '\P{Is_Script_Extensions=deseret}', "");
     Expect(0, 66640, '\P{^Is_Script_Extensions=deseret}', "");
-    Expect(1, 66639, '\p{Is_Script_Extensions= 	DESERET}', "");
-    Expect(0, 66639, '\p{^Is_Script_Extensions= 	DESERET}', "");
-    Expect(0, 66639, '\P{Is_Script_Extensions= 	DESERET}', "");
-    Expect(1, 66639, '\P{^Is_Script_Extensions= 	DESERET}', "");
-    Expect(0, 66640, '\p{Is_Script_Extensions= 	DESERET}', "");
-    Expect(1, 66640, '\p{^Is_Script_Extensions= 	DESERET}', "");
-    Expect(1, 66640, '\P{Is_Script_Extensions= 	DESERET}', "");
-    Expect(0, 66640, '\P{^Is_Script_Extensions= 	DESERET}', "");
-    Error('\p{Is_Scx=:=	Dsrt}');
-    Error('\P{Is_Scx=:=	Dsrt}');
+    Expect(1, 66639, '\p{Is_Script_Extensions= deseret}', "");
+    Expect(0, 66639, '\p{^Is_Script_Extensions= deseret}', "");
+    Expect(0, 66639, '\P{Is_Script_Extensions= deseret}', "");
+    Expect(1, 66639, '\P{^Is_Script_Extensions= deseret}', "");
+    Expect(0, 66640, '\p{Is_Script_Extensions= deseret}', "");
+    Expect(1, 66640, '\p{^Is_Script_Extensions= deseret}', "");
+    Expect(1, 66640, '\P{Is_Script_Extensions= deseret}', "");
+    Expect(0, 66640, '\P{^Is_Script_Extensions= deseret}', "");
+    Error('\p{Is_Scx=_-dsrt:=}');
+    Error('\P{Is_Scx=_-dsrt:=}');
     Expect(1, 66639, '\p{Is_Scx=dsrt}', "");
     Expect(0, 66639, '\p{^Is_Scx=dsrt}', "");
     Expect(0, 66639, '\P{Is_Scx=dsrt}', "");
@@ -143959,16 +145295,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66640, '\p{^Is_Scx=dsrt}', "");
     Expect(1, 66640, '\P{Is_Scx=dsrt}', "");
     Expect(0, 66640, '\P{^Is_Scx=dsrt}', "");
-    Expect(1, 66639, '\p{Is_Scx=- DSRT}', "");
-    Expect(0, 66639, '\p{^Is_Scx=- DSRT}', "");
-    Expect(0, 66639, '\P{Is_Scx=- DSRT}', "");
-    Expect(1, 66639, '\P{^Is_Scx=- DSRT}', "");
-    Expect(0, 66640, '\p{Is_Scx=- DSRT}', "");
-    Expect(1, 66640, '\p{^Is_Scx=- DSRT}', "");
-    Expect(1, 66640, '\P{Is_Scx=- DSRT}', "");
-    Expect(0, 66640, '\P{^Is_Scx=- DSRT}', "");
-    Error('\p{Script_Extensions=-Duployan:=}');
-    Error('\P{Script_Extensions=-Duployan:=}');
+    Expect(1, 66639, '\p{Is_Scx= -DSRT}', "");
+    Expect(0, 66639, '\p{^Is_Scx= -DSRT}', "");
+    Expect(0, 66639, '\P{Is_Scx= -DSRT}', "");
+    Expect(1, 66639, '\P{^Is_Scx= -DSRT}', "");
+    Expect(0, 66640, '\p{Is_Scx= -DSRT}', "");
+    Expect(1, 66640, '\p{^Is_Scx= -DSRT}', "");
+    Expect(1, 66640, '\P{Is_Scx= -DSRT}', "");
+    Expect(0, 66640, '\P{^Is_Scx= -DSRT}', "");
+    Error('\p{Script_Extensions:   /a/Duployan}');
+    Error('\P{Script_Extensions:   /a/Duployan}');
     Expect(1, 113827, '\p{Script_Extensions=:\ADuployan\z:}', "");;
     Expect(0, 113828, '\p{Script_Extensions=:\ADuployan\z:}', "");;
     Expect(1, 113827, '\p{Script_Extensions=duployan}', "");
@@ -143981,16 +145317,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 113828, '\P{^Script_Extensions=duployan}', "");
     Expect(1, 113827, '\p{Script_Extensions=:\Aduployan\z:}', "");;
     Expect(0, 113828, '\p{Script_Extensions=:\Aduployan\z:}', "");;
-    Expect(1, 113827, '\p{Script_Extensions=-DUPLOYAN}', "");
-    Expect(0, 113827, '\p{^Script_Extensions=-DUPLOYAN}', "");
-    Expect(0, 113827, '\P{Script_Extensions=-DUPLOYAN}', "");
-    Expect(1, 113827, '\P{^Script_Extensions=-DUPLOYAN}', "");
-    Expect(0, 113828, '\p{Script_Extensions=-DUPLOYAN}', "");
-    Expect(1, 113828, '\p{^Script_Extensions=-DUPLOYAN}', "");
-    Expect(1, 113828, '\P{Script_Extensions=-DUPLOYAN}', "");
-    Expect(0, 113828, '\P{^Script_Extensions=-DUPLOYAN}', "");
-    Error('\p{Scx= dupl/a/}');
-    Error('\P{Scx= dupl/a/}');
+    Expect(1, 113827, '\p{Script_Extensions=-	Duployan}', "");
+    Expect(0, 113827, '\p{^Script_Extensions=-	Duployan}', "");
+    Expect(0, 113827, '\P{Script_Extensions=-	Duployan}', "");
+    Expect(1, 113827, '\P{^Script_Extensions=-	Duployan}', "");
+    Expect(0, 113828, '\p{Script_Extensions=-	Duployan}', "");
+    Expect(1, 113828, '\p{^Script_Extensions=-	Duployan}', "");
+    Expect(1, 113828, '\P{Script_Extensions=-	Duployan}', "");
+    Expect(0, 113828, '\P{^Script_Extensions=-	Duployan}', "");
+    Error('\p{Scx=:=__Dupl}');
+    Error('\P{Scx=:=__Dupl}');
     Expect(1, 113827, '\p{Scx=:\ADupl\z:}', "");;
     Expect(0, 113828, '\p{Scx=:\ADupl\z:}', "");;
     Expect(1, 113827, '\p{Scx=dupl}', "");
@@ -144003,16 +145339,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 113828, '\P{^Scx=dupl}', "");
     Expect(1, 113827, '\p{Scx=:\Adupl\z:}', "");;
     Expect(0, 113828, '\p{Scx=:\Adupl\z:}', "");;
-    Expect(1, 113827, '\p{Scx= Dupl}', "");
-    Expect(0, 113827, '\p{^Scx= Dupl}', "");
-    Expect(0, 113827, '\P{Scx= Dupl}', "");
-    Expect(1, 113827, '\P{^Scx= Dupl}', "");
-    Expect(0, 113828, '\p{Scx= Dupl}', "");
-    Expect(1, 113828, '\p{^Scx= Dupl}', "");
-    Expect(1, 113828, '\P{Scx= Dupl}', "");
-    Expect(0, 113828, '\P{^Scx= Dupl}', "");
-    Error('\p{Is_Script_Extensions:	_duployan/a/}');
-    Error('\P{Is_Script_Extensions:	_duployan/a/}');
+    Expect(1, 113827, '\p{Scx:   -dupl}', "");
+    Expect(0, 113827, '\p{^Scx:   -dupl}', "");
+    Expect(0, 113827, '\P{Scx:   -dupl}', "");
+    Expect(1, 113827, '\P{^Scx:   -dupl}', "");
+    Expect(0, 113828, '\p{Scx:   -dupl}', "");
+    Expect(1, 113828, '\p{^Scx:   -dupl}', "");
+    Expect(1, 113828, '\P{Scx:   -dupl}', "");
+    Expect(0, 113828, '\P{^Scx:   -dupl}', "");
+    Error('\p{Is_Script_Extensions=:=	 DUPLOYAN}');
+    Error('\P{Is_Script_Extensions=:=	 DUPLOYAN}');
     Expect(1, 113827, '\p{Is_Script_Extensions=duployan}', "");
     Expect(0, 113827, '\p{^Is_Script_Extensions=duployan}', "");
     Expect(0, 113827, '\P{Is_Script_Extensions=duployan}', "");
@@ -144021,114 +145357,114 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 113828, '\p{^Is_Script_Extensions=duployan}', "");
     Expect(1, 113828, '\P{Is_Script_Extensions=duployan}', "");
     Expect(0, 113828, '\P{^Is_Script_Extensions=duployan}', "");
-    Expect(1, 113827, '\p{Is_Script_Extensions=	duployan}', "");
-    Expect(0, 113827, '\p{^Is_Script_Extensions=	duployan}', "");
-    Expect(0, 113827, '\P{Is_Script_Extensions=	duployan}', "");
-    Expect(1, 113827, '\P{^Is_Script_Extensions=	duployan}', "");
-    Expect(0, 113828, '\p{Is_Script_Extensions=	duployan}', "");
-    Expect(1, 113828, '\p{^Is_Script_Extensions=	duployan}', "");
-    Expect(1, 113828, '\P{Is_Script_Extensions=	duployan}', "");
-    Expect(0, 113828, '\P{^Is_Script_Extensions=	duployan}', "");
-    Error('\p{Is_Scx=_Dupl:=}');
-    Error('\P{Is_Scx=_Dupl:=}');
-    Expect(1, 113827, '\p{Is_Scx:	dupl}', "");
-    Expect(0, 113827, '\p{^Is_Scx:	dupl}', "");
-    Expect(0, 113827, '\P{Is_Scx:	dupl}', "");
-    Expect(1, 113827, '\P{^Is_Scx:	dupl}', "");
-    Expect(0, 113828, '\p{Is_Scx:	dupl}', "");
-    Expect(1, 113828, '\p{^Is_Scx:	dupl}', "");
-    Expect(1, 113828, '\P{Is_Scx:	dupl}', "");
-    Expect(0, 113828, '\P{^Is_Scx:	dupl}', "");
-    Expect(1, 113827, '\p{Is_Scx= 	DUPL}', "");
-    Expect(0, 113827, '\p{^Is_Scx= 	DUPL}', "");
-    Expect(0, 113827, '\P{Is_Scx= 	DUPL}', "");
-    Expect(1, 113827, '\P{^Is_Scx= 	DUPL}', "");
-    Expect(0, 113828, '\p{Is_Scx= 	DUPL}', "");
-    Expect(1, 113828, '\p{^Is_Scx= 	DUPL}', "");
-    Expect(1, 113828, '\P{Is_Scx= 	DUPL}', "");
-    Expect(0, 113828, '\P{^Is_Scx= 	DUPL}', "");
-    Error('\p{Script_Extensions=/a/_EGYPTIAN_Hieroglyphs}');
-    Error('\P{Script_Extensions=/a/_EGYPTIAN_Hieroglyphs}');
-    Expect(1, 78904, '\p{Script_Extensions=:\AEgyptian_Hieroglyphs\z:}', "");;
-    Expect(0, 78905, '\p{Script_Extensions=:\AEgyptian_Hieroglyphs\z:}', "");;
-    Expect(1, 78904, '\p{Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\p{^Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\P{Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\P{^Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\p{Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\p{^Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\P{Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\P{^Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\p{Script_Extensions=:\Aegyptianhieroglyphs\z:}', "");;
-    Expect(0, 78905, '\p{Script_Extensions=:\Aegyptianhieroglyphs\z:}', "");;
-    Expect(1, 78904, '\p{Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78904, '\p{^Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78904, '\P{Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(1, 78904, '\P{^Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78905, '\p{Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(1, 78905, '\p{^Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(1, 78905, '\P{Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Expect(0, 78905, '\P{^Script_Extensions=-	egyptian_HIEROGLYPHS}', "");
-    Error('\p{Scx=--egyp/a/}');
-    Error('\P{Scx=--egyp/a/}');
-    Expect(1, 78904, '\p{Scx=:\AEgyp\z:}', "");;
-    Expect(0, 78905, '\p{Scx=:\AEgyp\z:}', "");;
-    Expect(1, 78904, '\p{Scx:   egyp}', "");
-    Expect(0, 78904, '\p{^Scx:   egyp}', "");
-    Expect(0, 78904, '\P{Scx:   egyp}', "");
-    Expect(1, 78904, '\P{^Scx:   egyp}', "");
-    Expect(0, 78905, '\p{Scx:   egyp}', "");
-    Expect(1, 78905, '\p{^Scx:   egyp}', "");
-    Expect(1, 78905, '\P{Scx:   egyp}', "");
-    Expect(0, 78905, '\P{^Scx:   egyp}', "");
-    Expect(1, 78904, '\p{Scx=:\Aegyp\z:}', "");;
-    Expect(0, 78905, '\p{Scx=:\Aegyp\z:}', "");;
-    Expect(1, 78904, '\p{Scx=-	Egyp}', "");
-    Expect(0, 78904, '\p{^Scx=-	Egyp}', "");
-    Expect(0, 78904, '\P{Scx=-	Egyp}', "");
-    Expect(1, 78904, '\P{^Scx=-	Egyp}', "");
-    Expect(0, 78905, '\p{Scx=-	Egyp}', "");
-    Expect(1, 78905, '\p{^Scx=-	Egyp}', "");
-    Expect(1, 78905, '\P{Scx=-	Egyp}', "");
-    Expect(0, 78905, '\P{^Scx=-	Egyp}', "");
-    Error('\p{Is_Script_Extensions=_ Egyptian_HIEROGLYPHS/a/}');
-    Error('\P{Is_Script_Extensions=_ Egyptian_HIEROGLYPHS/a/}');
-    Expect(1, 78904, '\p{Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\p{^Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78904, '\P{Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\P{^Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\p{Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\p{^Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78905, '\P{Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(0, 78905, '\P{^Is_Script_Extensions=egyptianhieroglyphs}', "");
-    Expect(1, 78904, '\p{Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(0, 78904, '\p{^Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(0, 78904, '\P{Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(1, 78904, '\P{^Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(0, 78905, '\p{Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(1, 78905, '\p{^Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(1, 78905, '\P{Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Expect(0, 78905, '\P{^Is_Script_Extensions=_egyptian_Hieroglyphs}', "");
-    Error('\p{Is_Scx:		 EGYP/a/}');
-    Error('\P{Is_Scx:		 EGYP/a/}');
-    Expect(1, 78904, '\p{Is_Scx=egyp}', "");
-    Expect(0, 78904, '\p{^Is_Scx=egyp}', "");
-    Expect(0, 78904, '\P{Is_Scx=egyp}', "");
-    Expect(1, 78904, '\P{^Is_Scx=egyp}', "");
-    Expect(0, 78905, '\p{Is_Scx=egyp}', "");
-    Expect(1, 78905, '\p{^Is_Scx=egyp}', "");
-    Expect(1, 78905, '\P{Is_Scx=egyp}', "");
-    Expect(0, 78905, '\P{^Is_Scx=egyp}', "");
-    Expect(1, 78904, '\p{Is_Scx=		Egyp}', "");
-    Expect(0, 78904, '\p{^Is_Scx=		Egyp}', "");
-    Expect(0, 78904, '\P{Is_Scx=		Egyp}', "");
-    Expect(1, 78904, '\P{^Is_Scx=		Egyp}', "");
-    Expect(0, 78905, '\p{Is_Scx=		Egyp}', "");
-    Expect(1, 78905, '\p{^Is_Scx=		Egyp}', "");
-    Expect(1, 78905, '\P{Is_Scx=		Egyp}', "");
-    Expect(0, 78905, '\P{^Is_Scx=		Egyp}', "");
-    Error('\p{Script_Extensions=_-ELBASAN/a/}');
-    Error('\P{Script_Extensions=_-ELBASAN/a/}');
+    Expect(1, 113827, '\p{Is_Script_Extensions=--Duployan}', "");
+    Expect(0, 113827, '\p{^Is_Script_Extensions=--Duployan}', "");
+    Expect(0, 113827, '\P{Is_Script_Extensions=--Duployan}', "");
+    Expect(1, 113827, '\P{^Is_Script_Extensions=--Duployan}', "");
+    Expect(0, 113828, '\p{Is_Script_Extensions=--Duployan}', "");
+    Expect(1, 113828, '\p{^Is_Script_Extensions=--Duployan}', "");
+    Expect(1, 113828, '\P{Is_Script_Extensions=--Duployan}', "");
+    Expect(0, 113828, '\P{^Is_Script_Extensions=--Duployan}', "");
+    Error('\p{Is_Scx=:= 	dupl}');
+    Error('\P{Is_Scx=:= 	dupl}');
+    Expect(1, 113827, '\p{Is_Scx=dupl}', "");
+    Expect(0, 113827, '\p{^Is_Scx=dupl}', "");
+    Expect(0, 113827, '\P{Is_Scx=dupl}', "");
+    Expect(1, 113827, '\P{^Is_Scx=dupl}', "");
+    Expect(0, 113828, '\p{Is_Scx=dupl}', "");
+    Expect(1, 113828, '\p{^Is_Scx=dupl}', "");
+    Expect(1, 113828, '\P{Is_Scx=dupl}', "");
+    Expect(0, 113828, '\P{^Is_Scx=dupl}', "");
+    Expect(1, 113827, '\p{Is_Scx:	_Dupl}', "");
+    Expect(0, 113827, '\p{^Is_Scx:	_Dupl}', "");
+    Expect(0, 113827, '\P{Is_Scx:	_Dupl}', "");
+    Expect(1, 113827, '\P{^Is_Scx:	_Dupl}', "");
+    Expect(0, 113828, '\p{Is_Scx:	_Dupl}', "");
+    Expect(1, 113828, '\p{^Is_Scx:	_Dupl}', "");
+    Expect(1, 113828, '\P{Is_Scx:	_Dupl}', "");
+    Expect(0, 113828, '\P{^Is_Scx:	_Dupl}', "");
+    Error('\p{Script_Extensions=/a/	-egyptian_HIEROGLYPHS}');
+    Error('\P{Script_Extensions=/a/	-egyptian_HIEROGLYPHS}');
+    Expect(1, 78933, '\p{Script_Extensions=:\AEgyptian_Hieroglyphs\z:}', "");;
+    Expect(0, 78934, '\p{Script_Extensions=:\AEgyptian_Hieroglyphs\z:}', "");;
+    Expect(1, 78933, '\p{Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\p{^Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\P{Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\P{^Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\p{Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\p{^Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\P{Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\P{^Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\p{Script_Extensions=:\Aegyptianhieroglyphs\z:}', "");;
+    Expect(0, 78934, '\p{Script_Extensions=:\Aegyptianhieroglyphs\z:}', "");;
+    Expect(1, 78933, '\p{Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78933, '\p{^Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78933, '\P{Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(1, 78933, '\P{^Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78934, '\p{Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(1, 78934, '\p{^Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(1, 78934, '\P{Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78934, '\P{^Script_Extensions=_-EGYPTIAN_Hieroglyphs}', "");
+    Error('\p{Scx=-/a/egyp}');
+    Error('\P{Scx=-/a/egyp}');
+    Expect(1, 78933, '\p{Scx=:\AEgyp\z:}', "");;
+    Expect(0, 78934, '\p{Scx=:\AEgyp\z:}', "");;
+    Expect(1, 78933, '\p{Scx=egyp}', "");
+    Expect(0, 78933, '\p{^Scx=egyp}', "");
+    Expect(0, 78933, '\P{Scx=egyp}', "");
+    Expect(1, 78933, '\P{^Scx=egyp}', "");
+    Expect(0, 78934, '\p{Scx=egyp}', "");
+    Expect(1, 78934, '\p{^Scx=egyp}', "");
+    Expect(1, 78934, '\P{Scx=egyp}', "");
+    Expect(0, 78934, '\P{^Scx=egyp}', "");
+    Expect(1, 78933, '\p{Scx=:\Aegyp\z:}', "");;
+    Expect(0, 78934, '\p{Scx=:\Aegyp\z:}', "");;
+    Expect(1, 78933, '\p{Scx=- Egyp}', "");
+    Expect(0, 78933, '\p{^Scx=- Egyp}', "");
+    Expect(0, 78933, '\P{Scx=- Egyp}', "");
+    Expect(1, 78933, '\P{^Scx=- Egyp}', "");
+    Expect(0, 78934, '\p{Scx=- Egyp}', "");
+    Expect(1, 78934, '\p{^Scx=- Egyp}', "");
+    Expect(1, 78934, '\P{Scx=- Egyp}', "");
+    Expect(0, 78934, '\P{^Scx=- Egyp}', "");
+    Error('\p{Is_Script_Extensions=-	Egyptian_Hieroglyphs:=}');
+    Error('\P{Is_Script_Extensions=-	Egyptian_Hieroglyphs:=}');
+    Expect(1, 78933, '\p{Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\p{^Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78933, '\P{Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\P{^Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\p{Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\p{^Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78934, '\P{Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(0, 78934, '\P{^Is_Script_Extensions=egyptianhieroglyphs}', "");
+    Expect(1, 78933, '\p{Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78933, '\p{^Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78933, '\P{Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(1, 78933, '\P{^Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78934, '\p{Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(1, 78934, '\p{^Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(1, 78934, '\P{Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Expect(0, 78934, '\P{^Is_Script_Extensions=  EGYPTIAN_Hieroglyphs}', "");
+    Error('\p{Is_Scx= /a/EGYP}');
+    Error('\P{Is_Scx= /a/EGYP}');
+    Expect(1, 78933, '\p{Is_Scx=egyp}', "");
+    Expect(0, 78933, '\p{^Is_Scx=egyp}', "");
+    Expect(0, 78933, '\P{Is_Scx=egyp}', "");
+    Expect(1, 78933, '\P{^Is_Scx=egyp}', "");
+    Expect(0, 78934, '\p{Is_Scx=egyp}', "");
+    Expect(1, 78934, '\p{^Is_Scx=egyp}', "");
+    Expect(1, 78934, '\P{Is_Scx=egyp}', "");
+    Expect(0, 78934, '\P{^Is_Scx=egyp}', "");
+    Expect(1, 78933, '\p{Is_Scx=		Egyp}', "");
+    Expect(0, 78933, '\p{^Is_Scx=		Egyp}', "");
+    Expect(0, 78933, '\P{Is_Scx=		Egyp}', "");
+    Expect(1, 78933, '\P{^Is_Scx=		Egyp}', "");
+    Expect(0, 78934, '\p{Is_Scx=		Egyp}', "");
+    Expect(1, 78934, '\p{^Is_Scx=		Egyp}', "");
+    Expect(1, 78934, '\P{Is_Scx=		Egyp}', "");
+    Expect(0, 78934, '\P{^Is_Scx=		Egyp}', "");
+    Error('\p{Script_Extensions:  _elbasan/a/}');
+    Error('\P{Script_Extensions:  _elbasan/a/}');
     Expect(1, 66855, '\p{Script_Extensions=:\AElbasan\z:}', "");;
     Expect(0, 66856, '\p{Script_Extensions=:\AElbasan\z:}', "");;
     Expect(1, 66855, '\p{Script_Extensions=elbasan}', "");
@@ -144141,16 +145477,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66856, '\P{^Script_Extensions=elbasan}', "");
     Expect(1, 66855, '\p{Script_Extensions=:\Aelbasan\z:}', "");;
     Expect(0, 66856, '\p{Script_Extensions=:\Aelbasan\z:}', "");;
-    Expect(1, 66855, '\p{Script_Extensions:	_elbasan}', "");
-    Expect(0, 66855, '\p{^Script_Extensions:	_elbasan}', "");
-    Expect(0, 66855, '\P{Script_Extensions:	_elbasan}', "");
-    Expect(1, 66855, '\P{^Script_Extensions:	_elbasan}', "");
-    Expect(0, 66856, '\p{Script_Extensions:	_elbasan}', "");
-    Expect(1, 66856, '\p{^Script_Extensions:	_elbasan}', "");
-    Expect(1, 66856, '\P{Script_Extensions:	_elbasan}', "");
-    Expect(0, 66856, '\P{^Script_Extensions:	_elbasan}', "");
-    Error('\p{Scx= :=ELBA}');
-    Error('\P{Scx= :=ELBA}');
+    Expect(1, 66855, '\p{Script_Extensions=  Elbasan}', "");
+    Expect(0, 66855, '\p{^Script_Extensions=  Elbasan}', "");
+    Expect(0, 66855, '\P{Script_Extensions=  Elbasan}', "");
+    Expect(1, 66855, '\P{^Script_Extensions=  Elbasan}', "");
+    Expect(0, 66856, '\p{Script_Extensions=  Elbasan}', "");
+    Expect(1, 66856, '\p{^Script_Extensions=  Elbasan}', "");
+    Expect(1, 66856, '\P{Script_Extensions=  Elbasan}', "");
+    Expect(0, 66856, '\P{^Script_Extensions=  Elbasan}', "");
+    Error('\p{Scx=/a/	 Elba}');
+    Error('\P{Scx=/a/	 Elba}');
     Expect(1, 66855, '\p{Scx=:\AElba\z:}', "");;
     Expect(0, 66856, '\p{Scx=:\AElba\z:}', "");;
     Expect(1, 66855, '\p{Scx=elba}', "");
@@ -144163,16 +145499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66856, '\P{^Scx=elba}', "");
     Expect(1, 66855, '\p{Scx=:\Aelba\z:}', "");;
     Expect(0, 66856, '\p{Scx=:\Aelba\z:}', "");;
-    Expect(1, 66855, '\p{Scx=- elba}', "");
-    Expect(0, 66855, '\p{^Scx=- elba}', "");
-    Expect(0, 66855, '\P{Scx=- elba}', "");
-    Expect(1, 66855, '\P{^Scx=- elba}', "");
-    Expect(0, 66856, '\p{Scx=- elba}', "");
-    Expect(1, 66856, '\p{^Scx=- elba}', "");
-    Expect(1, 66856, '\P{Scx=- elba}', "");
-    Expect(0, 66856, '\P{^Scx=- elba}', "");
-    Error('\p{Is_Script_Extensions=_/a/Elbasan}');
-    Error('\P{Is_Script_Extensions=_/a/Elbasan}');
+    Expect(1, 66855, '\p{Scx=_elba}', "");
+    Expect(0, 66855, '\p{^Scx=_elba}', "");
+    Expect(0, 66855, '\P{Scx=_elba}', "");
+    Expect(1, 66855, '\P{^Scx=_elba}', "");
+    Expect(0, 66856, '\p{Scx=_elba}', "");
+    Expect(1, 66856, '\p{^Scx=_elba}', "");
+    Expect(1, 66856, '\P{Scx=_elba}', "");
+    Expect(0, 66856, '\P{^Scx=_elba}', "");
+    Error('\p{Is_Script_Extensions=:=Elbasan}');
+    Error('\P{Is_Script_Extensions=:=Elbasan}');
     Expect(1, 66855, '\p{Is_Script_Extensions=elbasan}', "");
     Expect(0, 66855, '\p{^Is_Script_Extensions=elbasan}', "");
     Expect(0, 66855, '\P{Is_Script_Extensions=elbasan}', "");
@@ -144181,16 +145517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66856, '\p{^Is_Script_Extensions=elbasan}', "");
     Expect(1, 66856, '\P{Is_Script_Extensions=elbasan}', "");
     Expect(0, 66856, '\P{^Is_Script_Extensions=elbasan}', "");
-    Expect(1, 66855, '\p{Is_Script_Extensions=	elbasan}', "");
-    Expect(0, 66855, '\p{^Is_Script_Extensions=	elbasan}', "");
-    Expect(0, 66855, '\P{Is_Script_Extensions=	elbasan}', "");
-    Expect(1, 66855, '\P{^Is_Script_Extensions=	elbasan}', "");
-    Expect(0, 66856, '\p{Is_Script_Extensions=	elbasan}', "");
-    Expect(1, 66856, '\p{^Is_Script_Extensions=	elbasan}', "");
-    Expect(1, 66856, '\P{Is_Script_Extensions=	elbasan}', "");
-    Expect(0, 66856, '\P{^Is_Script_Extensions=	elbasan}', "");
-    Error('\p{Is_Scx=/a/_	Elba}');
-    Error('\P{Is_Scx=/a/_	Elba}');
+    Expect(1, 66855, '\p{Is_Script_Extensions=-Elbasan}', "");
+    Expect(0, 66855, '\p{^Is_Script_Extensions=-Elbasan}', "");
+    Expect(0, 66855, '\P{Is_Script_Extensions=-Elbasan}', "");
+    Expect(1, 66855, '\P{^Is_Script_Extensions=-Elbasan}', "");
+    Expect(0, 66856, '\p{Is_Script_Extensions=-Elbasan}', "");
+    Expect(1, 66856, '\p{^Is_Script_Extensions=-Elbasan}', "");
+    Expect(1, 66856, '\P{Is_Script_Extensions=-Elbasan}', "");
+    Expect(0, 66856, '\P{^Is_Script_Extensions=-Elbasan}', "");
+    Error('\p{Is_Scx=--Elba:=}');
+    Error('\P{Is_Scx=--Elba:=}');
     Expect(1, 66855, '\p{Is_Scx=elba}', "");
     Expect(0, 66855, '\p{^Is_Scx=elba}', "");
     Expect(0, 66855, '\P{Is_Scx=elba}', "");
@@ -144199,16 +145535,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66856, '\p{^Is_Scx=elba}', "");
     Expect(1, 66856, '\P{Is_Scx=elba}', "");
     Expect(0, 66856, '\P{^Is_Scx=elba}', "");
-    Expect(1, 66855, '\p{Is_Scx= elba}', "");
-    Expect(0, 66855, '\p{^Is_Scx= elba}', "");
-    Expect(0, 66855, '\P{Is_Scx= elba}', "");
-    Expect(1, 66855, '\P{^Is_Scx= elba}', "");
-    Expect(0, 66856, '\p{Is_Scx= elba}', "");
-    Expect(1, 66856, '\p{^Is_Scx= elba}', "");
-    Expect(1, 66856, '\P{Is_Scx= elba}', "");
-    Expect(0, 66856, '\P{^Is_Scx= elba}', "");
-    Error('\p{Script_Extensions=_-ELYMAIC:=}');
-    Error('\P{Script_Extensions=_-ELYMAIC:=}');
+    Expect(1, 66855, '\p{Is_Scx=	_Elba}', "");
+    Expect(0, 66855, '\p{^Is_Scx=	_Elba}', "");
+    Expect(0, 66855, '\P{Is_Scx=	_Elba}', "");
+    Expect(1, 66855, '\P{^Is_Scx=	_Elba}', "");
+    Expect(0, 66856, '\p{Is_Scx=	_Elba}', "");
+    Expect(1, 66856, '\p{^Is_Scx=	_Elba}', "");
+    Expect(1, 66856, '\P{Is_Scx=	_Elba}', "");
+    Expect(0, 66856, '\P{^Is_Scx=	_Elba}', "");
+    Error('\p{Script_Extensions=_:=ELYMAIC}');
+    Error('\P{Script_Extensions=_:=ELYMAIC}');
     Expect(1, 69622, '\p{Script_Extensions=:\AElymaic\z:}', "");;
     Expect(0, 69623, '\p{Script_Extensions=:\AElymaic\z:}', "");;
     Expect(1, 69622, '\p{Script_Extensions=elymaic}', "");
@@ -144221,16 +145557,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69623, '\P{^Script_Extensions=elymaic}', "");
     Expect(1, 69622, '\p{Script_Extensions=:\Aelymaic\z:}', "");;
     Expect(0, 69623, '\p{Script_Extensions=:\Aelymaic\z:}', "");;
-    Expect(1, 69622, '\p{Script_Extensions=	-elymaic}', "");
-    Expect(0, 69622, '\p{^Script_Extensions=	-elymaic}', "");
-    Expect(0, 69622, '\P{Script_Extensions=	-elymaic}', "");
-    Expect(1, 69622, '\P{^Script_Extensions=	-elymaic}', "");
-    Expect(0, 69623, '\p{Script_Extensions=	-elymaic}', "");
-    Expect(1, 69623, '\p{^Script_Extensions=	-elymaic}', "");
-    Expect(1, 69623, '\P{Script_Extensions=	-elymaic}', "");
-    Expect(0, 69623, '\P{^Script_Extensions=	-elymaic}', "");
-    Error('\p{Scx=__Elym:=}');
-    Error('\P{Scx=__Elym:=}');
+    Expect(1, 69622, '\p{Script_Extensions= ELYMAIC}', "");
+    Expect(0, 69622, '\p{^Script_Extensions= ELYMAIC}', "");
+    Expect(0, 69622, '\P{Script_Extensions= ELYMAIC}', "");
+    Expect(1, 69622, '\P{^Script_Extensions= ELYMAIC}', "");
+    Expect(0, 69623, '\p{Script_Extensions= ELYMAIC}', "");
+    Expect(1, 69623, '\p{^Script_Extensions= ELYMAIC}', "");
+    Expect(1, 69623, '\P{Script_Extensions= ELYMAIC}', "");
+    Expect(0, 69623, '\P{^Script_Extensions= ELYMAIC}', "");
+    Error('\p{Scx:	:=elym}');
+    Error('\P{Scx:	:=elym}');
     Expect(1, 69622, '\p{Scx=:\AElym\z:}', "");;
     Expect(0, 69623, '\p{Scx=:\AElym\z:}', "");;
     Expect(1, 69622, '\p{Scx=elym}', "");
@@ -144243,16 +145579,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69623, '\P{^Scx=elym}', "");
     Expect(1, 69622, '\p{Scx=:\Aelym\z:}', "");;
     Expect(0, 69623, '\p{Scx=:\Aelym\z:}', "");;
-    Expect(1, 69622, '\p{Scx=	Elym}', "");
-    Expect(0, 69622, '\p{^Scx=	Elym}', "");
-    Expect(0, 69622, '\P{Scx=	Elym}', "");
-    Expect(1, 69622, '\P{^Scx=	Elym}', "");
-    Expect(0, 69623, '\p{Scx=	Elym}', "");
-    Expect(1, 69623, '\p{^Scx=	Elym}', "");
-    Expect(1, 69623, '\P{Scx=	Elym}', "");
-    Expect(0, 69623, '\P{^Scx=	Elym}', "");
-    Error('\p{Is_Script_Extensions:   	Elymaic/a/}');
-    Error('\P{Is_Script_Extensions:   	Elymaic/a/}');
+    Expect(1, 69622, '\p{Scx=	ELYM}', "");
+    Expect(0, 69622, '\p{^Scx=	ELYM}', "");
+    Expect(0, 69622, '\P{Scx=	ELYM}', "");
+    Expect(1, 69622, '\P{^Scx=	ELYM}', "");
+    Expect(0, 69623, '\p{Scx=	ELYM}', "");
+    Expect(1, 69623, '\p{^Scx=	ELYM}', "");
+    Expect(1, 69623, '\P{Scx=	ELYM}', "");
+    Expect(0, 69623, '\P{^Scx=	ELYM}', "");
+    Error('\p{Is_Script_Extensions=/a/	-elymaic}');
+    Error('\P{Is_Script_Extensions=/a/	-elymaic}');
     Expect(1, 69622, '\p{Is_Script_Extensions=elymaic}', "");
     Expect(0, 69622, '\p{^Is_Script_Extensions=elymaic}', "");
     Expect(0, 69622, '\P{Is_Script_Extensions=elymaic}', "");
@@ -144261,16 +145597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69623, '\p{^Is_Script_Extensions=elymaic}', "");
     Expect(1, 69623, '\P{Is_Script_Extensions=elymaic}', "");
     Expect(0, 69623, '\P{^Is_Script_Extensions=elymaic}', "");
-    Expect(1, 69622, '\p{Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(0, 69622, '\p{^Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(0, 69622, '\P{Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(1, 69622, '\P{^Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(0, 69623, '\p{Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(1, 69623, '\p{^Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(1, 69623, '\P{Is_Script_Extensions:   _ ELYMAIC}', "");
-    Expect(0, 69623, '\P{^Is_Script_Extensions:   _ ELYMAIC}', "");
-    Error('\p{Is_Scx=:=Elym}');
-    Error('\P{Is_Scx=:=Elym}');
+    Expect(1, 69622, '\p{Is_Script_Extensions=_-Elymaic}', "");
+    Expect(0, 69622, '\p{^Is_Script_Extensions=_-Elymaic}', "");
+    Expect(0, 69622, '\P{Is_Script_Extensions=_-Elymaic}', "");
+    Expect(1, 69622, '\P{^Is_Script_Extensions=_-Elymaic}', "");
+    Expect(0, 69623, '\p{Is_Script_Extensions=_-Elymaic}', "");
+    Expect(1, 69623, '\p{^Is_Script_Extensions=_-Elymaic}', "");
+    Expect(1, 69623, '\P{Is_Script_Extensions=_-Elymaic}', "");
+    Expect(0, 69623, '\P{^Is_Script_Extensions=_-Elymaic}', "");
+    Error('\p{Is_Scx= ELYM:=}');
+    Error('\P{Is_Scx= ELYM:=}');
     Expect(1, 69622, '\p{Is_Scx=elym}', "");
     Expect(0, 69622, '\p{^Is_Scx=elym}', "");
     Expect(0, 69622, '\P{Is_Scx=elym}', "");
@@ -144279,16 +145615,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69623, '\p{^Is_Scx=elym}', "");
     Expect(1, 69623, '\P{Is_Scx=elym}', "");
     Expect(0, 69623, '\P{^Is_Scx=elym}', "");
-    Expect(1, 69622, '\p{Is_Scx:	 	Elym}', "");
-    Expect(0, 69622, '\p{^Is_Scx:	 	Elym}', "");
-    Expect(0, 69622, '\P{Is_Scx:	 	Elym}', "");
-    Expect(1, 69622, '\P{^Is_Scx:	 	Elym}', "");
-    Expect(0, 69623, '\p{Is_Scx:	 	Elym}', "");
-    Expect(1, 69623, '\p{^Is_Scx:	 	Elym}', "");
-    Expect(1, 69623, '\P{Is_Scx:	 	Elym}', "");
-    Expect(0, 69623, '\P{^Is_Scx:	 	Elym}', "");
-    Error('\p{Script_Extensions=-	Ethiopic:=}');
-    Error('\P{Script_Extensions=-	Ethiopic:=}');
+    Expect(1, 69622, '\p{Is_Scx=_-ELYM}', "");
+    Expect(0, 69622, '\p{^Is_Scx=_-ELYM}', "");
+    Expect(0, 69622, '\P{Is_Scx=_-ELYM}', "");
+    Expect(1, 69622, '\P{^Is_Scx=_-ELYM}', "");
+    Expect(0, 69623, '\p{Is_Scx=_-ELYM}', "");
+    Expect(1, 69623, '\p{^Is_Scx=_-ELYM}', "");
+    Expect(1, 69623, '\P{Is_Scx=_-ELYM}', "");
+    Expect(0, 69623, '\P{^Is_Scx=_-ELYM}', "");
+    Error('\p{Script_Extensions=_/a/ETHIOPIC}');
+    Error('\P{Script_Extensions=_/a/ETHIOPIC}');
     Expect(1, 124926, '\p{Script_Extensions=:\AEthiopic\z:}', "");;
     Expect(0, 124927, '\p{Script_Extensions=:\AEthiopic\z:}', "");;
     Expect(1, 124926, '\p{Script_Extensions=ethiopic}', "");
@@ -144301,16 +145637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 124927, '\P{^Script_Extensions=ethiopic}', "");
     Expect(1, 124926, '\p{Script_Extensions=:\Aethiopic\z:}', "");;
     Expect(0, 124927, '\p{Script_Extensions=:\Aethiopic\z:}', "");;
-    Expect(1, 124926, '\p{Script_Extensions=		ETHIOPIC}', "");
-    Expect(0, 124926, '\p{^Script_Extensions=		ETHIOPIC}', "");
-    Expect(0, 124926, '\P{Script_Extensions=		ETHIOPIC}', "");
-    Expect(1, 124926, '\P{^Script_Extensions=		ETHIOPIC}', "");
-    Expect(0, 124927, '\p{Script_Extensions=		ETHIOPIC}', "");
-    Expect(1, 124927, '\p{^Script_Extensions=		ETHIOPIC}', "");
-    Expect(1, 124927, '\P{Script_Extensions=		ETHIOPIC}', "");
-    Expect(0, 124927, '\P{^Script_Extensions=		ETHIOPIC}', "");
-    Error('\p{Scx: :=_	ethi}');
-    Error('\P{Scx: :=_	ethi}');
+    Expect(1, 124926, '\p{Script_Extensions= ETHIOPIC}', "");
+    Expect(0, 124926, '\p{^Script_Extensions= ETHIOPIC}', "");
+    Expect(0, 124926, '\P{Script_Extensions= ETHIOPIC}', "");
+    Expect(1, 124926, '\P{^Script_Extensions= ETHIOPIC}', "");
+    Expect(0, 124927, '\p{Script_Extensions= ETHIOPIC}', "");
+    Expect(1, 124927, '\p{^Script_Extensions= ETHIOPIC}', "");
+    Expect(1, 124927, '\P{Script_Extensions= ETHIOPIC}', "");
+    Expect(0, 124927, '\P{^Script_Extensions= ETHIOPIC}', "");
+    Error('\p{Scx=	ethi/a/}');
+    Error('\P{Scx=	ethi/a/}');
     Expect(1, 124926, '\p{Scx=:\AEthi\z:}', "");;
     Expect(0, 124927, '\p{Scx=:\AEthi\z:}', "");;
     Expect(1, 124926, '\p{Scx=ethi}', "");
@@ -144323,16 +145659,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 124927, '\P{^Scx=ethi}', "");
     Expect(1, 124926, '\p{Scx=:\Aethi\z:}', "");;
     Expect(0, 124927, '\p{Scx=:\Aethi\z:}', "");;
-    Expect(1, 124926, '\p{Scx=  Ethi}', "");
-    Expect(0, 124926, '\p{^Scx=  Ethi}', "");
-    Expect(0, 124926, '\P{Scx=  Ethi}', "");
-    Expect(1, 124926, '\P{^Scx=  Ethi}', "");
-    Expect(0, 124927, '\p{Scx=  Ethi}', "");
-    Expect(1, 124927, '\p{^Scx=  Ethi}', "");
-    Expect(1, 124927, '\P{Scx=  Ethi}', "");
-    Expect(0, 124927, '\P{^Scx=  Ethi}', "");
-    Error('\p{Is_Script_Extensions=/a/-_Ethiopic}');
-    Error('\P{Is_Script_Extensions=/a/-_Ethiopic}');
+    Expect(1, 124926, '\p{Scx= -Ethi}', "");
+    Expect(0, 124926, '\p{^Scx= -Ethi}', "");
+    Expect(0, 124926, '\P{Scx= -Ethi}', "");
+    Expect(1, 124926, '\P{^Scx= -Ethi}', "");
+    Expect(0, 124927, '\p{Scx= -Ethi}', "");
+    Expect(1, 124927, '\p{^Scx= -Ethi}', "");
+    Expect(1, 124927, '\P{Scx= -Ethi}', "");
+    Expect(0, 124927, '\P{^Scx= -Ethi}', "");
+    Error('\p{Is_Script_Extensions=:=-_ETHIOPIC}');
+    Error('\P{Is_Script_Extensions=:=-_ETHIOPIC}');
     Expect(1, 124926, '\p{Is_Script_Extensions=ethiopic}', "");
     Expect(0, 124926, '\p{^Is_Script_Extensions=ethiopic}', "");
     Expect(0, 124926, '\P{Is_Script_Extensions=ethiopic}', "");
@@ -144341,16 +145677,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 124927, '\p{^Is_Script_Extensions=ethiopic}', "");
     Expect(1, 124927, '\P{Is_Script_Extensions=ethiopic}', "");
     Expect(0, 124927, '\P{^Is_Script_Extensions=ethiopic}', "");
-    Expect(1, 124926, '\p{Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(0, 124926, '\p{^Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(0, 124926, '\P{Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(1, 124926, '\P{^Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(0, 124927, '\p{Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(1, 124927, '\p{^Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(1, 124927, '\P{Is_Script_Extensions=  ETHIOPIC}', "");
-    Expect(0, 124927, '\P{^Is_Script_Extensions=  ETHIOPIC}', "");
-    Error('\p{Is_Scx=/a/  Ethi}');
-    Error('\P{Is_Scx=/a/  Ethi}');
+    Expect(1, 124926, '\p{Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(0, 124926, '\p{^Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(0, 124926, '\P{Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(1, 124926, '\P{^Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(0, 124927, '\p{Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(1, 124927, '\p{^Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(1, 124927, '\P{Is_Script_Extensions=__ETHIOPIC}', "");
+    Expect(0, 124927, '\P{^Is_Script_Extensions=__ETHIOPIC}', "");
+    Error('\p{Is_Scx=Ethi/a/}');
+    Error('\P{Is_Scx=Ethi/a/}');
     Expect(1, 124926, '\p{Is_Scx=ethi}', "");
     Expect(0, 124926, '\p{^Is_Scx=ethi}', "");
     Expect(0, 124926, '\P{Is_Scx=ethi}', "");
@@ -144359,16 +145695,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 124927, '\p{^Is_Scx=ethi}', "");
     Expect(1, 124927, '\P{Is_Scx=ethi}', "");
     Expect(0, 124927, '\P{^Is_Scx=ethi}', "");
-    Expect(1, 124926, '\p{Is_Scx=_-Ethi}', "");
-    Expect(0, 124926, '\p{^Is_Scx=_-Ethi}', "");
-    Expect(0, 124926, '\P{Is_Scx=_-Ethi}', "");
-    Expect(1, 124926, '\P{^Is_Scx=_-Ethi}', "");
-    Expect(0, 124927, '\p{Is_Scx=_-Ethi}', "");
-    Expect(1, 124927, '\p{^Is_Scx=_-Ethi}', "");
-    Expect(1, 124927, '\P{Is_Scx=_-Ethi}', "");
-    Expect(0, 124927, '\P{^Is_Scx=_-Ethi}', "");
-    Error('\p{Script_Extensions=	 Georgian/a/}');
-    Error('\P{Script_Extensions=	 Georgian/a/}');
+    Expect(1, 124926, '\p{Is_Scx=  ethi}', "");
+    Expect(0, 124926, '\p{^Is_Scx=  ethi}', "");
+    Expect(0, 124926, '\P{Is_Scx=  ethi}', "");
+    Expect(1, 124926, '\P{^Is_Scx=  ethi}', "");
+    Expect(0, 124927, '\p{Is_Scx=  ethi}', "");
+    Expect(1, 124927, '\p{^Is_Scx=  ethi}', "");
+    Expect(1, 124927, '\P{Is_Scx=  ethi}', "");
+    Expect(0, 124927, '\P{^Is_Scx=  ethi}', "");
+    Error('\p{Script_Extensions=/a/_georgian}');
+    Error('\P{Script_Extensions=/a/_georgian}');
     Expect(1, 11565, '\p{Script_Extensions=:\AGeorgian\z:}', "");;
     Expect(0, 11566, '\p{Script_Extensions=:\AGeorgian\z:}', "");;
     Expect(1, 11565, '\p{Script_Extensions=georgian}', "");
@@ -144381,16 +145717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11566, '\P{^Script_Extensions=georgian}', "");
     Expect(1, 11565, '\p{Script_Extensions=:\Ageorgian\z:}', "");;
     Expect(0, 11566, '\p{Script_Extensions=:\Ageorgian\z:}', "");;
-    Expect(1, 11565, '\p{Script_Extensions: 		georgian}', "");
-    Expect(0, 11565, '\p{^Script_Extensions: 		georgian}', "");
-    Expect(0, 11565, '\P{Script_Extensions: 		georgian}', "");
-    Expect(1, 11565, '\P{^Script_Extensions: 		georgian}', "");
-    Expect(0, 11566, '\p{Script_Extensions: 		georgian}', "");
-    Expect(1, 11566, '\p{^Script_Extensions: 		georgian}', "");
-    Expect(1, 11566, '\P{Script_Extensions: 		georgian}', "");
-    Expect(0, 11566, '\P{^Script_Extensions: 		georgian}', "");
-    Error('\p{Scx=_/a/Geor}');
-    Error('\P{Scx=_/a/Geor}');
+    Expect(1, 11565, '\p{Script_Extensions=-_georgian}', "");
+    Expect(0, 11565, '\p{^Script_Extensions=-_georgian}', "");
+    Expect(0, 11565, '\P{Script_Extensions=-_georgian}', "");
+    Expect(1, 11565, '\P{^Script_Extensions=-_georgian}', "");
+    Expect(0, 11566, '\p{Script_Extensions=-_georgian}', "");
+    Expect(1, 11566, '\p{^Script_Extensions=-_georgian}', "");
+    Expect(1, 11566, '\P{Script_Extensions=-_georgian}', "");
+    Expect(0, 11566, '\P{^Script_Extensions=-_georgian}', "");
+    Error('\p{Scx:   :=	_Geor}');
+    Error('\P{Scx:   :=	_Geor}');
     Expect(1, 11565, '\p{Scx=:\AGeor\z:}', "");;
     Expect(0, 11566, '\p{Scx=:\AGeor\z:}', "");;
     Expect(1, 11565, '\p{Scx=geor}', "");
@@ -144403,16 +145739,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11566, '\P{^Scx=geor}', "");
     Expect(1, 11565, '\p{Scx=:\Ageor\z:}', "");;
     Expect(0, 11566, '\p{Scx=:\Ageor\z:}', "");;
-    Expect(1, 11565, '\p{Scx= -Geor}', "");
-    Expect(0, 11565, '\p{^Scx= -Geor}', "");
-    Expect(0, 11565, '\P{Scx= -Geor}', "");
-    Expect(1, 11565, '\P{^Scx= -Geor}', "");
-    Expect(0, 11566, '\p{Scx= -Geor}', "");
-    Expect(1, 11566, '\p{^Scx= -Geor}', "");
-    Expect(1, 11566, '\P{Scx= -Geor}', "");
-    Expect(0, 11566, '\P{^Scx= -Geor}', "");
-    Error('\p{Is_Script_Extensions=_Georgian/a/}');
-    Error('\P{Is_Script_Extensions=_Georgian/a/}');
+    Expect(1, 11565, '\p{Scx=_GEOR}', "");
+    Expect(0, 11565, '\p{^Scx=_GEOR}', "");
+    Expect(0, 11565, '\P{Scx=_GEOR}', "");
+    Expect(1, 11565, '\P{^Scx=_GEOR}', "");
+    Expect(0, 11566, '\p{Scx=_GEOR}', "");
+    Expect(1, 11566, '\p{^Scx=_GEOR}', "");
+    Expect(1, 11566, '\P{Scx=_GEOR}', "");
+    Expect(0, 11566, '\P{^Scx=_GEOR}', "");
+    Error('\p{Is_Script_Extensions: -Georgian/a/}');
+    Error('\P{Is_Script_Extensions: -Georgian/a/}');
     Expect(1, 11565, '\p{Is_Script_Extensions=georgian}', "");
     Expect(0, 11565, '\p{^Is_Script_Extensions=georgian}', "");
     Expect(0, 11565, '\P{Is_Script_Extensions=georgian}', "");
@@ -144421,34 +145757,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11566, '\p{^Is_Script_Extensions=georgian}', "");
     Expect(1, 11566, '\P{Is_Script_Extensions=georgian}', "");
     Expect(0, 11566, '\P{^Is_Script_Extensions=georgian}', "");
-    Expect(1, 11565, '\p{Is_Script_Extensions=	_georgian}', "");
-    Expect(0, 11565, '\p{^Is_Script_Extensions=	_georgian}', "");
-    Expect(0, 11565, '\P{Is_Script_Extensions=	_georgian}', "");
-    Expect(1, 11565, '\P{^Is_Script_Extensions=	_georgian}', "");
-    Expect(0, 11566, '\p{Is_Script_Extensions=	_georgian}', "");
-    Expect(1, 11566, '\p{^Is_Script_Extensions=	_georgian}', "");
-    Expect(1, 11566, '\P{Is_Script_Extensions=	_georgian}', "");
-    Expect(0, 11566, '\P{^Is_Script_Extensions=	_georgian}', "");
-    Error('\p{Is_Scx=_ Geor:=}');
-    Error('\P{Is_Scx=_ Geor:=}');
-    Expect(1, 11565, '\p{Is_Scx=geor}', "");
-    Expect(0, 11565, '\p{^Is_Scx=geor}', "");
-    Expect(0, 11565, '\P{Is_Scx=geor}', "");
-    Expect(1, 11565, '\P{^Is_Scx=geor}', "");
-    Expect(0, 11566, '\p{Is_Scx=geor}', "");
-    Expect(1, 11566, '\p{^Is_Scx=geor}', "");
-    Expect(1, 11566, '\P{Is_Scx=geor}', "");
-    Expect(0, 11566, '\P{^Is_Scx=geor}', "");
-    Expect(1, 11565, '\p{Is_Scx=Geor}', "");
-    Expect(0, 11565, '\p{^Is_Scx=Geor}', "");
-    Expect(0, 11565, '\P{Is_Scx=Geor}', "");
-    Expect(1, 11565, '\P{^Is_Scx=Geor}', "");
-    Expect(0, 11566, '\p{Is_Scx=Geor}', "");
-    Expect(1, 11566, '\p{^Is_Scx=Geor}', "");
-    Expect(1, 11566, '\P{Is_Scx=Geor}', "");
-    Expect(0, 11566, '\P{^Is_Scx=Geor}', "");
-    Error('\p{Script_Extensions= Glagolitic:=}');
-    Error('\P{Script_Extensions= Glagolitic:=}');
+    Expect(1, 11565, '\p{Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(0, 11565, '\p{^Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(0, 11565, '\P{Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(1, 11565, '\P{^Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(0, 11566, '\p{Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(1, 11566, '\p{^Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(1, 11566, '\P{Is_Script_Extensions=	-GEORGIAN}', "");
+    Expect(0, 11566, '\P{^Is_Script_Extensions=	-GEORGIAN}', "");
+    Error('\p{Is_Scx= Geor:=}');
+    Error('\P{Is_Scx= Geor:=}');
+    Expect(1, 11565, '\p{Is_Scx:geor}', "");
+    Expect(0, 11565, '\p{^Is_Scx:geor}', "");
+    Expect(0, 11565, '\P{Is_Scx:geor}', "");
+    Expect(1, 11565, '\P{^Is_Scx:geor}', "");
+    Expect(0, 11566, '\p{Is_Scx:geor}', "");
+    Expect(1, 11566, '\p{^Is_Scx:geor}', "");
+    Expect(1, 11566, '\P{Is_Scx:geor}', "");
+    Expect(0, 11566, '\P{^Is_Scx:geor}', "");
+    Expect(1, 11565, '\p{Is_Scx=-	Geor}', "");
+    Expect(0, 11565, '\p{^Is_Scx=-	Geor}', "");
+    Expect(0, 11565, '\P{Is_Scx=-	Geor}', "");
+    Expect(1, 11565, '\P{^Is_Scx=-	Geor}', "");
+    Expect(0, 11566, '\p{Is_Scx=-	Geor}', "");
+    Expect(1, 11566, '\p{^Is_Scx=-	Geor}', "");
+    Expect(1, 11566, '\P{Is_Scx=-	Geor}', "");
+    Expect(0, 11566, '\P{^Is_Scx=-	Geor}', "");
+    Error('\p{Script_Extensions=_/a/Glagolitic}');
+    Error('\P{Script_Extensions=_/a/Glagolitic}');
     Expect(1, 122922, '\p{Script_Extensions=:\AGlagolitic\z:}', "");;
     Expect(0, 122923, '\p{Script_Extensions=:\AGlagolitic\z:}', "");;
     Expect(1, 122922, '\p{Script_Extensions=glagolitic}', "");
@@ -144461,56 +145797,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 122923, '\P{^Script_Extensions=glagolitic}', "");
     Expect(1, 122922, '\p{Script_Extensions=:\Aglagolitic\z:}', "");;
     Expect(0, 122923, '\p{Script_Extensions=:\Aglagolitic\z:}', "");;
-    Expect(1, 122922, '\p{Script_Extensions= 	Glagolitic}', "");
-    Expect(0, 122922, '\p{^Script_Extensions= 	Glagolitic}', "");
-    Expect(0, 122922, '\P{Script_Extensions= 	Glagolitic}', "");
-    Expect(1, 122922, '\P{^Script_Extensions= 	Glagolitic}', "");
-    Expect(0, 122923, '\p{Script_Extensions= 	Glagolitic}', "");
-    Expect(1, 122923, '\p{^Script_Extensions= 	Glagolitic}', "");
-    Expect(1, 122923, '\P{Script_Extensions= 	Glagolitic}', "");
-    Expect(0, 122923, '\P{^Script_Extensions= 	Glagolitic}', "");
-    Error('\p{Scx=/a/-glag}');
-    Error('\P{Scx=/a/-glag}');
+    Expect(1, 122922, '\p{Script_Extensions=	-Glagolitic}', "");
+    Expect(0, 122922, '\p{^Script_Extensions=	-Glagolitic}', "");
+    Expect(0, 122922, '\P{Script_Extensions=	-Glagolitic}', "");
+    Expect(1, 122922, '\P{^Script_Extensions=	-Glagolitic}', "");
+    Expect(0, 122923, '\p{Script_Extensions=	-Glagolitic}', "");
+    Expect(1, 122923, '\p{^Script_Extensions=	-Glagolitic}', "");
+    Expect(1, 122923, '\P{Script_Extensions=	-Glagolitic}', "");
+    Expect(0, 122923, '\P{^Script_Extensions=	-Glagolitic}', "");
+    Error('\p{Scx=_glag:=}');
+    Error('\P{Scx=_glag:=}');
     Expect(1, 122922, '\p{Scx=:\AGlag\z:}', "");;
     Expect(0, 122923, '\p{Scx=:\AGlag\z:}', "");;
-    Expect(1, 122922, '\p{Scx=glag}', "");
-    Expect(0, 122922, '\p{^Scx=glag}', "");
-    Expect(0, 122922, '\P{Scx=glag}', "");
-    Expect(1, 122922, '\P{^Scx=glag}', "");
-    Expect(0, 122923, '\p{Scx=glag}', "");
-    Expect(1, 122923, '\p{^Scx=glag}', "");
-    Expect(1, 122923, '\P{Scx=glag}', "");
-    Expect(0, 122923, '\P{^Scx=glag}', "");
+    Expect(1, 122922, '\p{Scx:	glag}', "");
+    Expect(0, 122922, '\p{^Scx:	glag}', "");
+    Expect(0, 122922, '\P{Scx:	glag}', "");
+    Expect(1, 122922, '\P{^Scx:	glag}', "");
+    Expect(0, 122923, '\p{Scx:	glag}', "");
+    Expect(1, 122923, '\p{^Scx:	glag}', "");
+    Expect(1, 122923, '\P{Scx:	glag}', "");
+    Expect(0, 122923, '\P{^Scx:	glag}', "");
     Expect(1, 122922, '\p{Scx=:\Aglag\z:}', "");;
     Expect(0, 122923, '\p{Scx=:\Aglag\z:}', "");;
-    Expect(1, 122922, '\p{Scx=_-GLAG}', "");
-    Expect(0, 122922, '\p{^Scx=_-GLAG}', "");
-    Expect(0, 122922, '\P{Scx=_-GLAG}', "");
-    Expect(1, 122922, '\P{^Scx=_-GLAG}', "");
-    Expect(0, 122923, '\p{Scx=_-GLAG}', "");
-    Expect(1, 122923, '\p{^Scx=_-GLAG}', "");
-    Expect(1, 122923, '\P{Scx=_-GLAG}', "");
-    Expect(0, 122923, '\P{^Scx=_-GLAG}', "");
-    Error('\p{Is_Script_Extensions=	 Glagolitic/a/}');
-    Error('\P{Is_Script_Extensions=	 Glagolitic/a/}');
-    Expect(1, 122922, '\p{Is_Script_Extensions:glagolitic}', "");
-    Expect(0, 122922, '\p{^Is_Script_Extensions:glagolitic}', "");
-    Expect(0, 122922, '\P{Is_Script_Extensions:glagolitic}', "");
-    Expect(1, 122922, '\P{^Is_Script_Extensions:glagolitic}', "");
-    Expect(0, 122923, '\p{Is_Script_Extensions:glagolitic}', "");
-    Expect(1, 122923, '\p{^Is_Script_Extensions:glagolitic}', "");
-    Expect(1, 122923, '\P{Is_Script_Extensions:glagolitic}', "");
-    Expect(0, 122923, '\P{^Is_Script_Extensions:glagolitic}', "");
-    Expect(1, 122922, '\p{Is_Script_Extensions=	 glagolitic}', "");
-    Expect(0, 122922, '\p{^Is_Script_Extensions=	 glagolitic}', "");
-    Expect(0, 122922, '\P{Is_Script_Extensions=	 glagolitic}', "");
-    Expect(1, 122922, '\P{^Is_Script_Extensions=	 glagolitic}', "");
-    Expect(0, 122923, '\p{Is_Script_Extensions=	 glagolitic}', "");
-    Expect(1, 122923, '\p{^Is_Script_Extensions=	 glagolitic}', "");
-    Expect(1, 122923, '\P{Is_Script_Extensions=	 glagolitic}', "");
-    Expect(0, 122923, '\P{^Is_Script_Extensions=	 glagolitic}', "");
-    Error('\p{Is_Scx=:=-	glag}');
-    Error('\P{Is_Scx=:=-	glag}');
+    Expect(1, 122922, '\p{Scx=- GLAG}', "");
+    Expect(0, 122922, '\p{^Scx=- GLAG}', "");
+    Expect(0, 122922, '\P{Scx=- GLAG}', "");
+    Expect(1, 122922, '\P{^Scx=- GLAG}', "");
+    Expect(0, 122923, '\p{Scx=- GLAG}', "");
+    Expect(1, 122923, '\p{^Scx=- GLAG}', "");
+    Expect(1, 122923, '\P{Scx=- GLAG}', "");
+    Expect(0, 122923, '\P{^Scx=- GLAG}', "");
+    Error('\p{Is_Script_Extensions=	 glagolitic/a/}');
+    Error('\P{Is_Script_Extensions=	 glagolitic/a/}');
+    Expect(1, 122922, '\p{Is_Script_Extensions=glagolitic}', "");
+    Expect(0, 122922, '\p{^Is_Script_Extensions=glagolitic}', "");
+    Expect(0, 122922, '\P{Is_Script_Extensions=glagolitic}', "");
+    Expect(1, 122922, '\P{^Is_Script_Extensions=glagolitic}', "");
+    Expect(0, 122923, '\p{Is_Script_Extensions=glagolitic}', "");
+    Expect(1, 122923, '\p{^Is_Script_Extensions=glagolitic}', "");
+    Expect(1, 122923, '\P{Is_Script_Extensions=glagolitic}', "");
+    Expect(0, 122923, '\P{^Is_Script_Extensions=glagolitic}', "");
+    Expect(1, 122922, '\p{Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(0, 122922, '\p{^Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(0, 122922, '\P{Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(1, 122922, '\P{^Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(0, 122923, '\p{Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(1, 122923, '\p{^Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(1, 122923, '\P{Is_Script_Extensions=_GLAGOLITIC}', "");
+    Expect(0, 122923, '\P{^Is_Script_Extensions=_GLAGOLITIC}', "");
+    Error('\p{Is_Scx= /a/GLAG}');
+    Error('\P{Is_Scx= /a/GLAG}');
     Expect(1, 122922, '\p{Is_Scx=glag}', "");
     Expect(0, 122922, '\p{^Is_Scx=glag}', "");
     Expect(0, 122922, '\P{Is_Scx=glag}', "");
@@ -144519,16 +145855,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 122923, '\p{^Is_Scx=glag}', "");
     Expect(1, 122923, '\P{Is_Scx=glag}', "");
     Expect(0, 122923, '\P{^Is_Scx=glag}', "");
-    Expect(1, 122922, '\p{Is_Scx=_GLAG}', "");
-    Expect(0, 122922, '\p{^Is_Scx=_GLAG}', "");
-    Expect(0, 122922, '\P{Is_Scx=_GLAG}', "");
-    Expect(1, 122922, '\P{^Is_Scx=_GLAG}', "");
-    Expect(0, 122923, '\p{Is_Scx=_GLAG}', "");
-    Expect(1, 122923, '\p{^Is_Scx=_GLAG}', "");
-    Expect(1, 122923, '\P{Is_Scx=_GLAG}', "");
-    Expect(0, 122923, '\P{^Is_Scx=_GLAG}', "");
-    Error('\p{Script_Extensions=:=-Gunjala_Gondi}');
-    Error('\P{Script_Extensions=:=-Gunjala_Gondi}');
+    Expect(1, 122922, '\p{Is_Scx=-Glag}', "");
+    Expect(0, 122922, '\p{^Is_Scx=-Glag}', "");
+    Expect(0, 122922, '\P{Is_Scx=-Glag}', "");
+    Expect(1, 122922, '\P{^Is_Scx=-Glag}', "");
+    Expect(0, 122923, '\p{Is_Scx=-Glag}', "");
+    Expect(1, 122923, '\p{^Is_Scx=-Glag}', "");
+    Expect(1, 122923, '\P{Is_Scx=-Glag}', "");
+    Expect(0, 122923, '\P{^Is_Scx=-Glag}', "");
+    Error('\p{Script_Extensions=GUNJALA_GONDI/a/}');
+    Error('\P{Script_Extensions=GUNJALA_GONDI/a/}');
     Expect(1, 73129, '\p{Script_Extensions=:\AGunjala_Gondi\z:}', "");;
     Expect(0, 73130, '\p{Script_Extensions=:\AGunjala_Gondi\z:}', "");;
     Expect(1, 73129, '\p{Script_Extensions=gunjalagondi}', "");
@@ -144541,16 +145877,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73130, '\P{^Script_Extensions=gunjalagondi}', "");
     Expect(1, 73129, '\p{Script_Extensions=:\Agunjalagondi\z:}', "");;
     Expect(0, 73130, '\p{Script_Extensions=:\Agunjalagondi\z:}', "");;
-    Expect(1, 73129, '\p{Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(0, 73129, '\p{^Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(0, 73129, '\P{Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(1, 73129, '\P{^Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(0, 73130, '\p{Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(1, 73130, '\p{^Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(1, 73130, '\P{Script_Extensions=-GUNJALA_gondi}', "");
-    Expect(0, 73130, '\P{^Script_Extensions=-GUNJALA_gondi}', "");
-    Error('\p{Scx=_GONG/a/}');
-    Error('\P{Scx=_GONG/a/}');
+    Expect(1, 73129, '\p{Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(0, 73129, '\p{^Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(0, 73129, '\P{Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(1, 73129, '\P{^Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(0, 73130, '\p{Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(1, 73130, '\p{^Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(1, 73130, '\P{Script_Extensions=	Gunjala_Gondi}', "");
+    Expect(0, 73130, '\P{^Script_Extensions=	Gunjala_Gondi}', "");
+    Error('\p{Scx=_ GONG:=}');
+    Error('\P{Scx=_ GONG:=}');
     Expect(1, 73129, '\p{Scx=:\AGong\z:}', "");;
     Expect(0, 73130, '\p{Scx=:\AGong\z:}', "");;
     Expect(1, 73129, '\p{Scx=gong}', "");
@@ -144563,16 +145899,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73130, '\P{^Scx=gong}', "");
     Expect(1, 73129, '\p{Scx=:\Agong\z:}', "");;
     Expect(0, 73130, '\p{Scx=:\Agong\z:}', "");;
-    Expect(1, 73129, '\p{Scx= 	gong}', "");
-    Expect(0, 73129, '\p{^Scx= 	gong}', "");
-    Expect(0, 73129, '\P{Scx= 	gong}', "");
-    Expect(1, 73129, '\P{^Scx= 	gong}', "");
-    Expect(0, 73130, '\p{Scx= 	gong}', "");
-    Expect(1, 73130, '\p{^Scx= 	gong}', "");
-    Expect(1, 73130, '\P{Scx= 	gong}', "");
-    Expect(0, 73130, '\P{^Scx= 	gong}', "");
-    Error('\p{Is_Script_Extensions=/a/ GUNJALA_gondi}');
-    Error('\P{Is_Script_Extensions=/a/ GUNJALA_gondi}');
+    Expect(1, 73129, '\p{Scx=-Gong}', "");
+    Expect(0, 73129, '\p{^Scx=-Gong}', "");
+    Expect(0, 73129, '\P{Scx=-Gong}', "");
+    Expect(1, 73129, '\P{^Scx=-Gong}', "");
+    Expect(0, 73130, '\p{Scx=-Gong}', "");
+    Expect(1, 73130, '\p{^Scx=-Gong}', "");
+    Expect(1, 73130, '\P{Scx=-Gong}', "");
+    Expect(0, 73130, '\P{^Scx=-Gong}', "");
+    Error('\p{Is_Script_Extensions=	/a/GUNJALA_GONDI}');
+    Error('\P{Is_Script_Extensions=	/a/GUNJALA_GONDI}');
     Expect(1, 73129, '\p{Is_Script_Extensions=gunjalagondi}', "");
     Expect(0, 73129, '\p{^Is_Script_Extensions=gunjalagondi}', "");
     Expect(0, 73129, '\P{Is_Script_Extensions=gunjalagondi}', "");
@@ -144581,16 +145917,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73130, '\p{^Is_Script_Extensions=gunjalagondi}', "");
     Expect(1, 73130, '\P{Is_Script_Extensions=gunjalagondi}', "");
     Expect(0, 73130, '\P{^Is_Script_Extensions=gunjalagondi}', "");
-    Expect(1, 73129, '\p{Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(0, 73129, '\p{^Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(0, 73129, '\P{Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(1, 73129, '\P{^Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(0, 73130, '\p{Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(1, 73130, '\p{^Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(1, 73130, '\P{Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Expect(0, 73130, '\P{^Is_Script_Extensions=  Gunjala_Gondi}', "");
-    Error('\p{Is_Scx=-:=Gong}');
-    Error('\P{Is_Scx=-:=Gong}');
+    Expect(1, 73129, '\p{Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(0, 73129, '\p{^Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(0, 73129, '\P{Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(1, 73129, '\P{^Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(0, 73130, '\p{Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(1, 73130, '\p{^Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(1, 73130, '\P{Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Expect(0, 73130, '\P{^Is_Script_Extensions= -GUNJALA_gondi}', "");
+    Error('\p{Is_Scx:   :=_ gong}');
+    Error('\P{Is_Scx:   :=_ gong}');
     Expect(1, 73129, '\p{Is_Scx=gong}', "");
     Expect(0, 73129, '\p{^Is_Scx=gong}', "");
     Expect(0, 73129, '\P{Is_Scx=gong}', "");
@@ -144599,16 +145935,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73130, '\p{^Is_Scx=gong}', "");
     Expect(1, 73130, '\P{Is_Scx=gong}', "");
     Expect(0, 73130, '\P{^Is_Scx=gong}', "");
-    Expect(1, 73129, '\p{Is_Scx=--GONG}', "");
-    Expect(0, 73129, '\p{^Is_Scx=--GONG}', "");
-    Expect(0, 73129, '\P{Is_Scx=--GONG}', "");
-    Expect(1, 73129, '\P{^Is_Scx=--GONG}', "");
-    Expect(0, 73130, '\p{Is_Scx=--GONG}', "");
-    Expect(1, 73130, '\p{^Is_Scx=--GONG}', "");
-    Expect(1, 73130, '\P{Is_Scx=--GONG}', "");
-    Expect(0, 73130, '\P{^Is_Scx=--GONG}', "");
-    Error('\p{Script_Extensions=/a/_ Masaram_GONDI}');
-    Error('\P{Script_Extensions=/a/_ Masaram_GONDI}');
+    Expect(1, 73129, '\p{Is_Scx=	GONG}', "");
+    Expect(0, 73129, '\p{^Is_Scx=	GONG}', "");
+    Expect(0, 73129, '\P{Is_Scx=	GONG}', "");
+    Expect(1, 73129, '\P{^Is_Scx=	GONG}', "");
+    Expect(0, 73130, '\p{Is_Scx=	GONG}', "");
+    Expect(1, 73130, '\p{^Is_Scx=	GONG}', "");
+    Expect(1, 73130, '\P{Is_Scx=	GONG}', "");
+    Expect(0, 73130, '\P{^Is_Scx=	GONG}', "");
+    Error('\p{Script_Extensions=_/a/Masaram_GONDI}');
+    Error('\P{Script_Extensions=_/a/Masaram_GONDI}');
     Expect(1, 73049, '\p{Script_Extensions=:\AMasaram_Gondi\z:}', "");;
     Expect(0, 73050, '\p{Script_Extensions=:\AMasaram_Gondi\z:}', "");;
     Expect(1, 73049, '\p{Script_Extensions=masaramgondi}', "");
@@ -144621,38 +145957,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73050, '\P{^Script_Extensions=masaramgondi}', "");
     Expect(1, 73049, '\p{Script_Extensions=:\Amasaramgondi\z:}', "");;
     Expect(0, 73050, '\p{Script_Extensions=:\Amasaramgondi\z:}', "");;
-    Expect(1, 73049, '\p{Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(0, 73049, '\p{^Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(0, 73049, '\P{Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(1, 73049, '\P{^Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(0, 73050, '\p{Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(1, 73050, '\p{^Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(1, 73050, '\P{Script_Extensions=		MASARAM_GONDI}', "");
-    Expect(0, 73050, '\P{^Script_Extensions=		MASARAM_GONDI}', "");
-    Error('\p{Scx=_/a/GONM}');
-    Error('\P{Scx=_/a/GONM}');
+    Expect(1, 73049, '\p{Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(0, 73049, '\p{^Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(0, 73049, '\P{Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(1, 73049, '\P{^Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(0, 73050, '\p{Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(1, 73050, '\p{^Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(1, 73050, '\P{Script_Extensions=-	MASARAM_gondi}', "");
+    Expect(0, 73050, '\P{^Script_Extensions=-	MASARAM_gondi}', "");
+    Error('\p{Scx= 	gonm/a/}');
+    Error('\P{Scx= 	gonm/a/}');
     Expect(1, 73049, '\p{Scx=:\AGonm\z:}', "");;
     Expect(0, 73050, '\p{Scx=:\AGonm\z:}', "");;
-    Expect(1, 73049, '\p{Scx:gonm}', "");
-    Expect(0, 73049, '\p{^Scx:gonm}', "");
-    Expect(0, 73049, '\P{Scx:gonm}', "");
-    Expect(1, 73049, '\P{^Scx:gonm}', "");
-    Expect(0, 73050, '\p{Scx:gonm}', "");
-    Expect(1, 73050, '\p{^Scx:gonm}', "");
-    Expect(1, 73050, '\P{Scx:gonm}', "");
-    Expect(0, 73050, '\P{^Scx:gonm}', "");
+    Expect(1, 73049, '\p{Scx=gonm}', "");
+    Expect(0, 73049, '\p{^Scx=gonm}', "");
+    Expect(0, 73049, '\P{Scx=gonm}', "");
+    Expect(1, 73049, '\P{^Scx=gonm}', "");
+    Expect(0, 73050, '\p{Scx=gonm}', "");
+    Expect(1, 73050, '\p{^Scx=gonm}', "");
+    Expect(1, 73050, '\P{Scx=gonm}', "");
+    Expect(0, 73050, '\P{^Scx=gonm}', "");
     Expect(1, 73049, '\p{Scx=:\Agonm\z:}', "");;
     Expect(0, 73050, '\p{Scx=:\Agonm\z:}', "");;
-    Expect(1, 73049, '\p{Scx=-GONM}', "");
-    Expect(0, 73049, '\p{^Scx=-GONM}', "");
-    Expect(0, 73049, '\P{Scx=-GONM}', "");
-    Expect(1, 73049, '\P{^Scx=-GONM}', "");
-    Expect(0, 73050, '\p{Scx=-GONM}', "");
-    Expect(1, 73050, '\p{^Scx=-GONM}', "");
-    Expect(1, 73050, '\P{Scx=-GONM}', "");
-    Expect(0, 73050, '\P{^Scx=-GONM}', "");
-    Error('\p{Is_Script_Extensions=:=	-MASARAM_GONDI}');
-    Error('\P{Is_Script_Extensions=:=	-MASARAM_GONDI}');
+    Expect(1, 73049, '\p{Scx:   - GONM}', "");
+    Expect(0, 73049, '\p{^Scx:   - GONM}', "");
+    Expect(0, 73049, '\P{Scx:   - GONM}', "");
+    Expect(1, 73049, '\P{^Scx:   - GONM}', "");
+    Expect(0, 73050, '\p{Scx:   - GONM}', "");
+    Expect(1, 73050, '\p{^Scx:   - GONM}', "");
+    Expect(1, 73050, '\P{Scx:   - GONM}', "");
+    Expect(0, 73050, '\P{^Scx:   - GONM}', "");
+    Error('\p{Is_Script_Extensions= MASARAM_GONDI:=}');
+    Error('\P{Is_Script_Extensions= MASARAM_GONDI:=}');
     Expect(1, 73049, '\p{Is_Script_Extensions=masaramgondi}', "");
     Expect(0, 73049, '\p{^Is_Script_Extensions=masaramgondi}', "");
     Expect(0, 73049, '\P{Is_Script_Extensions=masaramgondi}', "");
@@ -144661,16 +145997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73050, '\p{^Is_Script_Extensions=masaramgondi}', "");
     Expect(1, 73050, '\P{Is_Script_Extensions=masaramgondi}', "");
     Expect(0, 73050, '\P{^Is_Script_Extensions=masaramgondi}', "");
-    Expect(1, 73049, '\p{Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(0, 73049, '\p{^Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(0, 73049, '\P{Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(1, 73049, '\P{^Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(0, 73050, '\p{Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(1, 73050, '\p{^Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(1, 73050, '\P{Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Expect(0, 73050, '\P{^Is_Script_Extensions=	_MASARAM_GONDI}', "");
-    Error('\p{Is_Scx= :=Gonm}');
-    Error('\P{Is_Scx= :=Gonm}');
+    Expect(1, 73049, '\p{Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(0, 73049, '\p{^Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(0, 73049, '\P{Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(1, 73049, '\P{^Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(0, 73050, '\p{Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(1, 73050, '\p{^Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(1, 73050, '\P{Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Expect(0, 73050, '\P{^Is_Script_Extensions=-_Masaram_Gondi}', "");
+    Error('\p{Is_Scx=:=-	gonm}');
+    Error('\P{Is_Scx=:=-	gonm}');
     Expect(1, 73049, '\p{Is_Scx=gonm}', "");
     Expect(0, 73049, '\p{^Is_Scx=gonm}', "");
     Expect(0, 73049, '\P{Is_Scx=gonm}', "");
@@ -144679,16 +146015,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73050, '\p{^Is_Scx=gonm}', "");
     Expect(1, 73050, '\P{Is_Scx=gonm}', "");
     Expect(0, 73050, '\P{^Is_Scx=gonm}', "");
-    Expect(1, 73049, '\p{Is_Scx: 	-Gonm}', "");
-    Expect(0, 73049, '\p{^Is_Scx: 	-Gonm}', "");
-    Expect(0, 73049, '\P{Is_Scx: 	-Gonm}', "");
-    Expect(1, 73049, '\P{^Is_Scx: 	-Gonm}', "");
-    Expect(0, 73050, '\p{Is_Scx: 	-Gonm}', "");
-    Expect(1, 73050, '\p{^Is_Scx: 	-Gonm}', "");
-    Expect(1, 73050, '\P{Is_Scx: 	-Gonm}', "");
-    Expect(0, 73050, '\P{^Is_Scx: 	-Gonm}', "");
-    Error('\p{Script_Extensions:   -_gothic/a/}');
-    Error('\P{Script_Extensions:   -_gothic/a/}');
+    Expect(1, 73049, '\p{Is_Scx=-_Gonm}', "");
+    Expect(0, 73049, '\p{^Is_Scx=-_Gonm}', "");
+    Expect(0, 73049, '\P{Is_Scx=-_Gonm}', "");
+    Expect(1, 73049, '\P{^Is_Scx=-_Gonm}', "");
+    Expect(0, 73050, '\p{Is_Scx=-_Gonm}', "");
+    Expect(1, 73050, '\p{^Is_Scx=-_Gonm}', "");
+    Expect(1, 73050, '\P{Is_Scx=-_Gonm}', "");
+    Expect(0, 73050, '\P{^Is_Scx=-_Gonm}', "");
+    Error('\p{Script_Extensions=/a/ gothic}');
+    Error('\P{Script_Extensions=/a/ gothic}');
     Expect(1, 66378, '\p{Script_Extensions=:\AGothic\z:}', "");;
     Expect(0, 66379, '\p{Script_Extensions=:\AGothic\z:}', "");;
     Expect(1, 66378, '\p{Script_Extensions=gothic}', "");
@@ -144701,16 +146037,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66379, '\P{^Script_Extensions=gothic}', "");
     Expect(1, 66378, '\p{Script_Extensions=:\Agothic\z:}', "");;
     Expect(0, 66379, '\p{Script_Extensions=:\Agothic\z:}', "");;
-    Expect(1, 66378, '\p{Script_Extensions=	_GOTHIC}', "");
-    Expect(0, 66378, '\p{^Script_Extensions=	_GOTHIC}', "");
-    Expect(0, 66378, '\P{Script_Extensions=	_GOTHIC}', "");
-    Expect(1, 66378, '\P{^Script_Extensions=	_GOTHIC}', "");
-    Expect(0, 66379, '\p{Script_Extensions=	_GOTHIC}', "");
-    Expect(1, 66379, '\p{^Script_Extensions=	_GOTHIC}', "");
-    Expect(1, 66379, '\P{Script_Extensions=	_GOTHIC}', "");
-    Expect(0, 66379, '\P{^Script_Extensions=	_GOTHIC}', "");
-    Error('\p{Scx=_Goth/a/}');
-    Error('\P{Scx=_Goth/a/}');
+    Expect(1, 66378, '\p{Script_Extensions=-GOTHIC}', "");
+    Expect(0, 66378, '\p{^Script_Extensions=-GOTHIC}', "");
+    Expect(0, 66378, '\P{Script_Extensions=-GOTHIC}', "");
+    Expect(1, 66378, '\P{^Script_Extensions=-GOTHIC}', "");
+    Expect(0, 66379, '\p{Script_Extensions=-GOTHIC}', "");
+    Expect(1, 66379, '\p{^Script_Extensions=-GOTHIC}', "");
+    Expect(1, 66379, '\P{Script_Extensions=-GOTHIC}', "");
+    Expect(0, 66379, '\P{^Script_Extensions=-GOTHIC}', "");
+    Error('\p{Scx= /a/Goth}');
+    Error('\P{Scx= /a/Goth}');
     Expect(1, 66378, '\p{Scx=:\AGoth\z:}', "");;
     Expect(0, 66379, '\p{Scx=:\AGoth\z:}', "");;
     Expect(1, 66378, '\p{Scx=goth}', "");
@@ -144723,16 +146059,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66379, '\P{^Scx=goth}', "");
     Expect(1, 66378, '\p{Scx=:\Agoth\z:}', "");;
     Expect(0, 66379, '\p{Scx=:\Agoth\z:}', "");;
-    Expect(1, 66378, '\p{Scx=_	Goth}', "");
-    Expect(0, 66378, '\p{^Scx=_	Goth}', "");
-    Expect(0, 66378, '\P{Scx=_	Goth}', "");
-    Expect(1, 66378, '\P{^Scx=_	Goth}', "");
-    Expect(0, 66379, '\p{Scx=_	Goth}', "");
-    Expect(1, 66379, '\p{^Scx=_	Goth}', "");
-    Expect(1, 66379, '\P{Scx=_	Goth}', "");
-    Expect(0, 66379, '\P{^Scx=_	Goth}', "");
-    Error('\p{Is_Script_Extensions=_ Gothic/a/}');
-    Error('\P{Is_Script_Extensions=_ Gothic/a/}');
+    Expect(1, 66378, '\p{Scx=__GOTH}', "");
+    Expect(0, 66378, '\p{^Scx=__GOTH}', "");
+    Expect(0, 66378, '\P{Scx=__GOTH}', "");
+    Expect(1, 66378, '\P{^Scx=__GOTH}', "");
+    Expect(0, 66379, '\p{Scx=__GOTH}', "");
+    Expect(1, 66379, '\p{^Scx=__GOTH}', "");
+    Expect(1, 66379, '\P{Scx=__GOTH}', "");
+    Expect(0, 66379, '\P{^Scx=__GOTH}', "");
+    Error('\p{Is_Script_Extensions= /a/Gothic}');
+    Error('\P{Is_Script_Extensions= /a/Gothic}');
     Expect(1, 66378, '\p{Is_Script_Extensions=gothic}', "");
     Expect(0, 66378, '\p{^Is_Script_Extensions=gothic}', "");
     Expect(0, 66378, '\P{Is_Script_Extensions=gothic}', "");
@@ -144741,16 +146077,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66379, '\p{^Is_Script_Extensions=gothic}', "");
     Expect(1, 66379, '\P{Is_Script_Extensions=gothic}', "");
     Expect(0, 66379, '\P{^Is_Script_Extensions=gothic}', "");
-    Expect(1, 66378, '\p{Is_Script_Extensions=_GOTHIC}', "");
-    Expect(0, 66378, '\p{^Is_Script_Extensions=_GOTHIC}', "");
-    Expect(0, 66378, '\P{Is_Script_Extensions=_GOTHIC}', "");
-    Expect(1, 66378, '\P{^Is_Script_Extensions=_GOTHIC}', "");
-    Expect(0, 66379, '\p{Is_Script_Extensions=_GOTHIC}', "");
-    Expect(1, 66379, '\p{^Is_Script_Extensions=_GOTHIC}', "");
-    Expect(1, 66379, '\P{Is_Script_Extensions=_GOTHIC}', "");
-    Expect(0, 66379, '\P{^Is_Script_Extensions=_GOTHIC}', "");
-    Error('\p{Is_Scx=		Goth/a/}');
-    Error('\P{Is_Scx=		Goth/a/}');
+    Expect(1, 66378, '\p{Is_Script_Extensions=__gothic}', "");
+    Expect(0, 66378, '\p{^Is_Script_Extensions=__gothic}', "");
+    Expect(0, 66378, '\P{Is_Script_Extensions=__gothic}', "");
+    Expect(1, 66378, '\P{^Is_Script_Extensions=__gothic}', "");
+    Expect(0, 66379, '\p{Is_Script_Extensions=__gothic}', "");
+    Expect(1, 66379, '\p{^Is_Script_Extensions=__gothic}', "");
+    Expect(1, 66379, '\P{Is_Script_Extensions=__gothic}', "");
+    Expect(0, 66379, '\P{^Is_Script_Extensions=__gothic}', "");
+    Error('\p{Is_Scx= :=Goth}');
+    Error('\P{Is_Scx= :=Goth}');
     Expect(1, 66378, '\p{Is_Scx=goth}', "");
     Expect(0, 66378, '\p{^Is_Scx=goth}', "");
     Expect(0, 66378, '\P{Is_Scx=goth}', "");
@@ -144759,16 +146095,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66379, '\p{^Is_Scx=goth}', "");
     Expect(1, 66379, '\P{Is_Scx=goth}', "");
     Expect(0, 66379, '\P{^Is_Scx=goth}', "");
-    Expect(1, 66378, '\p{Is_Scx=_-goth}', "");
-    Expect(0, 66378, '\p{^Is_Scx=_-goth}', "");
-    Expect(0, 66378, '\P{Is_Scx=_-goth}', "");
-    Expect(1, 66378, '\P{^Is_Scx=_-goth}', "");
-    Expect(0, 66379, '\p{Is_Scx=_-goth}', "");
-    Expect(1, 66379, '\p{^Is_Scx=_-goth}', "");
-    Expect(1, 66379, '\P{Is_Scx=_-goth}', "");
-    Expect(0, 66379, '\P{^Is_Scx=_-goth}', "");
-    Error('\p{Script_Extensions= _Grantha/a/}');
-    Error('\P{Script_Extensions= _Grantha/a/}');
+    Expect(1, 66378, '\p{Is_Scx=  GOTH}', "");
+    Expect(0, 66378, '\p{^Is_Scx=  GOTH}', "");
+    Expect(0, 66378, '\P{Is_Scx=  GOTH}', "");
+    Expect(1, 66378, '\P{^Is_Scx=  GOTH}', "");
+    Expect(0, 66379, '\p{Is_Scx=  GOTH}', "");
+    Expect(1, 66379, '\p{^Is_Scx=  GOTH}', "");
+    Expect(1, 66379, '\P{Is_Scx=  GOTH}', "");
+    Expect(0, 66379, '\P{^Is_Scx=  GOTH}', "");
+    Error('\p{Script_Extensions=_/a/GRANTHA}');
+    Error('\P{Script_Extensions=_/a/GRANTHA}');
     Expect(1, 73683, '\p{Script_Extensions=:\AGrantha\z:}', "");;
     Expect(0, 73684, '\p{Script_Extensions=:\AGrantha\z:}', "");;
     Expect(1, 73683, '\p{Script_Extensions=grantha}', "");
@@ -144781,16 +146117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73684, '\P{^Script_Extensions=grantha}', "");
     Expect(1, 73683, '\p{Script_Extensions=:\Agrantha\z:}', "");;
     Expect(0, 73684, '\p{Script_Extensions=:\Agrantha\z:}', "");;
-    Expect(1, 73683, '\p{Script_Extensions= GRANTHA}', "");
-    Expect(0, 73683, '\p{^Script_Extensions= GRANTHA}', "");
-    Expect(0, 73683, '\P{Script_Extensions= GRANTHA}', "");
-    Expect(1, 73683, '\P{^Script_Extensions= GRANTHA}', "");
-    Expect(0, 73684, '\p{Script_Extensions= GRANTHA}', "");
-    Expect(1, 73684, '\p{^Script_Extensions= GRANTHA}', "");
-    Expect(1, 73684, '\P{Script_Extensions= GRANTHA}', "");
-    Expect(0, 73684, '\P{^Script_Extensions= GRANTHA}', "");
-    Error('\p{Scx=/a/ -gran}');
-    Error('\P{Scx=/a/ -gran}');
+    Expect(1, 73683, '\p{Script_Extensions=		grantha}', "");
+    Expect(0, 73683, '\p{^Script_Extensions=		grantha}', "");
+    Expect(0, 73683, '\P{Script_Extensions=		grantha}', "");
+    Expect(1, 73683, '\P{^Script_Extensions=		grantha}', "");
+    Expect(0, 73684, '\p{Script_Extensions=		grantha}', "");
+    Expect(1, 73684, '\p{^Script_Extensions=		grantha}', "");
+    Expect(1, 73684, '\P{Script_Extensions=		grantha}', "");
+    Expect(0, 73684, '\P{^Script_Extensions=		grantha}', "");
+    Error('\p{Scx=:=	GRAN}');
+    Error('\P{Scx=:=	GRAN}');
     Expect(1, 73683, '\p{Scx=:\AGran\z:}', "");;
     Expect(0, 73684, '\p{Scx=:\AGran\z:}', "");;
     Expect(1, 73683, '\p{Scx=gran}', "");
@@ -144803,16 +146139,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73684, '\P{^Scx=gran}', "");
     Expect(1, 73683, '\p{Scx=:\Agran\z:}', "");;
     Expect(0, 73684, '\p{Scx=:\Agran\z:}', "");;
-    Expect(1, 73683, '\p{Scx=__gran}', "");
-    Expect(0, 73683, '\p{^Scx=__gran}', "");
-    Expect(0, 73683, '\P{Scx=__gran}', "");
-    Expect(1, 73683, '\P{^Scx=__gran}', "");
-    Expect(0, 73684, '\p{Scx=__gran}', "");
-    Expect(1, 73684, '\p{^Scx=__gran}', "");
-    Expect(1, 73684, '\P{Scx=__gran}', "");
-    Expect(0, 73684, '\P{^Scx=__gran}', "");
-    Error('\p{Is_Script_Extensions:/a/  grantha}');
-    Error('\P{Is_Script_Extensions:/a/  grantha}');
+    Expect(1, 73683, '\p{Scx=Gran}', "");
+    Expect(0, 73683, '\p{^Scx=Gran}', "");
+    Expect(0, 73683, '\P{Scx=Gran}', "");
+    Expect(1, 73683, '\P{^Scx=Gran}', "");
+    Expect(0, 73684, '\p{Scx=Gran}', "");
+    Expect(1, 73684, '\p{^Scx=Gran}', "");
+    Expect(1, 73684, '\P{Scx=Gran}', "");
+    Expect(0, 73684, '\P{^Scx=Gran}', "");
+    Error('\p{Is_Script_Extensions=	:=Grantha}');
+    Error('\P{Is_Script_Extensions=	:=Grantha}');
     Expect(1, 73683, '\p{Is_Script_Extensions=grantha}', "");
     Expect(0, 73683, '\p{^Is_Script_Extensions=grantha}', "");
     Expect(0, 73683, '\P{Is_Script_Extensions=grantha}', "");
@@ -144821,16 +146157,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73684, '\p{^Is_Script_Extensions=grantha}', "");
     Expect(1, 73684, '\P{Is_Script_Extensions=grantha}', "");
     Expect(0, 73684, '\P{^Is_Script_Extensions=grantha}', "");
-    Expect(1, 73683, '\p{Is_Script_Extensions=_Grantha}', "");
-    Expect(0, 73683, '\p{^Is_Script_Extensions=_Grantha}', "");
-    Expect(0, 73683, '\P{Is_Script_Extensions=_Grantha}', "");
-    Expect(1, 73683, '\P{^Is_Script_Extensions=_Grantha}', "");
-    Expect(0, 73684, '\p{Is_Script_Extensions=_Grantha}', "");
-    Expect(1, 73684, '\p{^Is_Script_Extensions=_Grantha}', "");
-    Expect(1, 73684, '\P{Is_Script_Extensions=_Grantha}', "");
-    Expect(0, 73684, '\P{^Is_Script_Extensions=_Grantha}', "");
-    Error('\p{Is_Scx=	:=Gran}');
-    Error('\P{Is_Scx=	:=Gran}');
+    Expect(1, 73683, '\p{Is_Script_Extensions=- Grantha}', "");
+    Expect(0, 73683, '\p{^Is_Script_Extensions=- Grantha}', "");
+    Expect(0, 73683, '\P{Is_Script_Extensions=- Grantha}', "");
+    Expect(1, 73683, '\P{^Is_Script_Extensions=- Grantha}', "");
+    Expect(0, 73684, '\p{Is_Script_Extensions=- Grantha}', "");
+    Expect(1, 73684, '\p{^Is_Script_Extensions=- Grantha}', "");
+    Expect(1, 73684, '\P{Is_Script_Extensions=- Grantha}', "");
+    Expect(0, 73684, '\P{^Is_Script_Extensions=- Grantha}', "");
+    Error('\p{Is_Scx=-:=GRAN}');
+    Error('\P{Is_Scx=-:=GRAN}');
     Expect(1, 73683, '\p{Is_Scx=gran}', "");
     Expect(0, 73683, '\p{^Is_Scx=gran}', "");
     Expect(0, 73683, '\P{Is_Scx=gran}', "");
@@ -144839,16 +146175,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73684, '\p{^Is_Scx=gran}', "");
     Expect(1, 73684, '\P{Is_Scx=gran}', "");
     Expect(0, 73684, '\P{^Is_Scx=gran}', "");
-    Expect(1, 73683, '\p{Is_Scx= -GRAN}', "");
-    Expect(0, 73683, '\p{^Is_Scx= -GRAN}', "");
-    Expect(0, 73683, '\P{Is_Scx= -GRAN}', "");
-    Expect(1, 73683, '\P{^Is_Scx= -GRAN}', "");
-    Expect(0, 73684, '\p{Is_Scx= -GRAN}', "");
-    Expect(1, 73684, '\p{^Is_Scx= -GRAN}', "");
-    Expect(1, 73684, '\P{Is_Scx= -GRAN}', "");
-    Expect(0, 73684, '\P{^Is_Scx= -GRAN}', "");
-    Error('\p{Script_Extensions: 	/a/GREEK}');
-    Error('\P{Script_Extensions: 	/a/GREEK}');
+    Expect(1, 73683, '\p{Is_Scx= gran}', "");
+    Expect(0, 73683, '\p{^Is_Scx= gran}', "");
+    Expect(0, 73683, '\P{Is_Scx= gran}', "");
+    Expect(1, 73683, '\P{^Is_Scx= gran}', "");
+    Expect(0, 73684, '\p{Is_Scx= gran}', "");
+    Expect(1, 73684, '\p{^Is_Scx= gran}', "");
+    Expect(1, 73684, '\P{Is_Scx= gran}', "");
+    Expect(0, 73684, '\P{^Is_Scx= gran}', "");
+    Error('\p{Script_Extensions: :=Greek}');
+    Error('\P{Script_Extensions: :=Greek}');
     Expect(1, 119365, '\p{Script_Extensions=:\AGreek\z:}', "");;
     Expect(0, 119366, '\p{Script_Extensions=:\AGreek\z:}', "");;
     Expect(1, 119365, '\p{Script_Extensions=greek}', "");
@@ -144861,16 +146197,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 119366, '\P{^Script_Extensions=greek}', "");
     Expect(1, 119365, '\p{Script_Extensions=:\Agreek\z:}', "");;
     Expect(0, 119366, '\p{Script_Extensions=:\Agreek\z:}', "");;
-    Expect(1, 119365, '\p{Script_Extensions=Greek}', "");
-    Expect(0, 119365, '\p{^Script_Extensions=Greek}', "");
-    Expect(0, 119365, '\P{Script_Extensions=Greek}', "");
-    Expect(1, 119365, '\P{^Script_Extensions=Greek}', "");
-    Expect(0, 119366, '\p{Script_Extensions=Greek}', "");
-    Expect(1, 119366, '\p{^Script_Extensions=Greek}', "");
-    Expect(1, 119366, '\P{Script_Extensions=Greek}', "");
-    Expect(0, 119366, '\P{^Script_Extensions=Greek}', "");
-    Error('\p{Scx: 	/a/grek}');
-    Error('\P{Scx: 	/a/grek}');
+    Expect(1, 119365, '\p{Script_Extensions=  Greek}', "");
+    Expect(0, 119365, '\p{^Script_Extensions=  Greek}', "");
+    Expect(0, 119365, '\P{Script_Extensions=  Greek}', "");
+    Expect(1, 119365, '\P{^Script_Extensions=  Greek}', "");
+    Expect(0, 119366, '\p{Script_Extensions=  Greek}', "");
+    Expect(1, 119366, '\p{^Script_Extensions=  Greek}', "");
+    Expect(1, 119366, '\P{Script_Extensions=  Greek}', "");
+    Expect(0, 119366, '\P{^Script_Extensions=  Greek}', "");
+    Error('\p{Scx= /a/GREK}');
+    Error('\P{Scx= /a/GREK}');
     Expect(1, 119365, '\p{Scx=:\AGrek\z:}', "");;
     Expect(0, 119366, '\p{Scx=:\AGrek\z:}', "");;
     Expect(1, 119365, '\p{Scx=grek}', "");
@@ -144883,16 +146219,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 119366, '\P{^Scx=grek}', "");
     Expect(1, 119365, '\p{Scx=:\Agrek\z:}', "");;
     Expect(0, 119366, '\p{Scx=:\Agrek\z:}', "");;
-    Expect(1, 119365, '\p{Scx=  grek}', "");
-    Expect(0, 119365, '\p{^Scx=  grek}', "");
-    Expect(0, 119365, '\P{Scx=  grek}', "");
-    Expect(1, 119365, '\P{^Scx=  grek}', "");
-    Expect(0, 119366, '\p{Scx=  grek}', "");
-    Expect(1, 119366, '\p{^Scx=  grek}', "");
-    Expect(1, 119366, '\P{Scx=  grek}', "");
-    Expect(0, 119366, '\P{^Scx=  grek}', "");
-    Error('\p{Is_Script_Extensions=/a/GREEK}');
-    Error('\P{Is_Script_Extensions=/a/GREEK}');
+    Expect(1, 119365, '\p{Scx=	 GREK}', "");
+    Expect(0, 119365, '\p{^Scx=	 GREK}', "");
+    Expect(0, 119365, '\P{Scx=	 GREK}', "");
+    Expect(1, 119365, '\P{^Scx=	 GREK}', "");
+    Expect(0, 119366, '\p{Scx=	 GREK}', "");
+    Expect(1, 119366, '\p{^Scx=	 GREK}', "");
+    Expect(1, 119366, '\P{Scx=	 GREK}', "");
+    Expect(0, 119366, '\P{^Scx=	 GREK}', "");
+    Error('\p{Is_Script_Extensions=-_Greek/a/}');
+    Error('\P{Is_Script_Extensions=-_Greek/a/}');
     Expect(1, 119365, '\p{Is_Script_Extensions=greek}', "");
     Expect(0, 119365, '\p{^Is_Script_Extensions=greek}', "");
     Expect(0, 119365, '\P{Is_Script_Extensions=greek}', "");
@@ -144901,34 +146237,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 119366, '\p{^Is_Script_Extensions=greek}', "");
     Expect(1, 119366, '\P{Is_Script_Extensions=greek}', "");
     Expect(0, 119366, '\P{^Is_Script_Extensions=greek}', "");
-    Expect(1, 119365, '\p{Is_Script_Extensions= Greek}', "");
-    Expect(0, 119365, '\p{^Is_Script_Extensions= Greek}', "");
-    Expect(0, 119365, '\P{Is_Script_Extensions= Greek}', "");
-    Expect(1, 119365, '\P{^Is_Script_Extensions= Greek}', "");
-    Expect(0, 119366, '\p{Is_Script_Extensions= Greek}', "");
-    Expect(1, 119366, '\p{^Is_Script_Extensions= Greek}', "");
-    Expect(1, 119366, '\P{Is_Script_Extensions= Greek}', "");
-    Expect(0, 119366, '\P{^Is_Script_Extensions= Greek}', "");
-    Error('\p{Is_Scx=/a/__Grek}');
-    Error('\P{Is_Scx=/a/__Grek}');
-    Expect(1, 119365, '\p{Is_Scx:   grek}', "");
-    Expect(0, 119365, '\p{^Is_Scx:   grek}', "");
-    Expect(0, 119365, '\P{Is_Scx:   grek}', "");
-    Expect(1, 119365, '\P{^Is_Scx:   grek}', "");
-    Expect(0, 119366, '\p{Is_Scx:   grek}', "");
-    Expect(1, 119366, '\p{^Is_Scx:   grek}', "");
-    Expect(1, 119366, '\P{Is_Scx:   grek}', "");
-    Expect(0, 119366, '\P{^Is_Scx:   grek}', "");
-    Expect(1, 119365, '\p{Is_Scx=- GREK}', "");
-    Expect(0, 119365, '\p{^Is_Scx=- GREK}', "");
-    Expect(0, 119365, '\P{Is_Scx=- GREK}', "");
-    Expect(1, 119365, '\P{^Is_Scx=- GREK}', "");
-    Expect(0, 119366, '\p{Is_Scx=- GREK}', "");
-    Expect(1, 119366, '\p{^Is_Scx=- GREK}', "");
-    Expect(1, 119366, '\P{Is_Scx=- GREK}', "");
-    Expect(0, 119366, '\P{^Is_Scx=- GREK}', "");
-    Error('\p{Script_Extensions=/a/Gujarati}');
-    Error('\P{Script_Extensions=/a/Gujarati}');
+    Expect(1, 119365, '\p{Is_Script_Extensions=-Greek}', "");
+    Expect(0, 119365, '\p{^Is_Script_Extensions=-Greek}', "");
+    Expect(0, 119365, '\P{Is_Script_Extensions=-Greek}', "");
+    Expect(1, 119365, '\P{^Is_Script_Extensions=-Greek}', "");
+    Expect(0, 119366, '\p{Is_Script_Extensions=-Greek}', "");
+    Expect(1, 119366, '\p{^Is_Script_Extensions=-Greek}', "");
+    Expect(1, 119366, '\P{Is_Script_Extensions=-Greek}', "");
+    Expect(0, 119366, '\P{^Is_Script_Extensions=-Greek}', "");
+    Error('\p{Is_Scx=/a/  Grek}');
+    Error('\P{Is_Scx=/a/  Grek}');
+    Expect(1, 119365, '\p{Is_Scx=grek}', "");
+    Expect(0, 119365, '\p{^Is_Scx=grek}', "");
+    Expect(0, 119365, '\P{Is_Scx=grek}', "");
+    Expect(1, 119365, '\P{^Is_Scx=grek}', "");
+    Expect(0, 119366, '\p{Is_Scx=grek}', "");
+    Expect(1, 119366, '\p{^Is_Scx=grek}', "");
+    Expect(1, 119366, '\P{Is_Scx=grek}', "");
+    Expect(0, 119366, '\P{^Is_Scx=grek}', "");
+    Expect(1, 119365, '\p{Is_Scx:    GREK}', "");
+    Expect(0, 119365, '\p{^Is_Scx:    GREK}', "");
+    Expect(0, 119365, '\P{Is_Scx:    GREK}', "");
+    Expect(1, 119365, '\P{^Is_Scx:    GREK}', "");
+    Expect(0, 119366, '\p{Is_Scx:    GREK}', "");
+    Expect(1, 119366, '\p{^Is_Scx:    GREK}', "");
+    Expect(1, 119366, '\P{Is_Scx:    GREK}', "");
+    Expect(0, 119366, '\P{^Is_Scx:    GREK}', "");
+    Error('\p{Script_Extensions=:=-_gujarati}');
+    Error('\P{Script_Extensions=:=-_gujarati}');
     Expect(1, 43065, '\p{Script_Extensions=:\AGujarati\z:}', "");;
     Expect(0, 43066, '\p{Script_Extensions=:\AGujarati\z:}', "");;
     Expect(1, 43065, '\p{Script_Extensions=gujarati}', "");
@@ -144941,38 +146277,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43066, '\P{^Script_Extensions=gujarati}', "");
     Expect(1, 43065, '\p{Script_Extensions=:\Agujarati\z:}', "");;
     Expect(0, 43066, '\p{Script_Extensions=:\Agujarati\z:}', "");;
-    Expect(1, 43065, '\p{Script_Extensions: __Gujarati}', "");
-    Expect(0, 43065, '\p{^Script_Extensions: __Gujarati}', "");
-    Expect(0, 43065, '\P{Script_Extensions: __Gujarati}', "");
-    Expect(1, 43065, '\P{^Script_Extensions: __Gujarati}', "");
-    Expect(0, 43066, '\p{Script_Extensions: __Gujarati}', "");
-    Expect(1, 43066, '\p{^Script_Extensions: __Gujarati}', "");
-    Expect(1, 43066, '\P{Script_Extensions: __Gujarati}', "");
-    Expect(0, 43066, '\P{^Script_Extensions: __Gujarati}', "");
-    Error('\p{Scx=/a/_Gujr}');
-    Error('\P{Scx=/a/_Gujr}');
+    Expect(1, 43065, '\p{Script_Extensions=_	GUJARATI}', "");
+    Expect(0, 43065, '\p{^Script_Extensions=_	GUJARATI}', "");
+    Expect(0, 43065, '\P{Script_Extensions=_	GUJARATI}', "");
+    Expect(1, 43065, '\P{^Script_Extensions=_	GUJARATI}', "");
+    Expect(0, 43066, '\p{Script_Extensions=_	GUJARATI}', "");
+    Expect(1, 43066, '\p{^Script_Extensions=_	GUJARATI}', "");
+    Expect(1, 43066, '\P{Script_Extensions=_	GUJARATI}', "");
+    Expect(0, 43066, '\P{^Script_Extensions=_	GUJARATI}', "");
+    Error('\p{Scx=:=	GUJR}');
+    Error('\P{Scx=:=	GUJR}');
     Expect(1, 43065, '\p{Scx=:\AGujr\z:}', "");;
     Expect(0, 43066, '\p{Scx=:\AGujr\z:}', "");;
-    Expect(1, 43065, '\p{Scx=gujr}', "");
-    Expect(0, 43065, '\p{^Scx=gujr}', "");
-    Expect(0, 43065, '\P{Scx=gujr}', "");
-    Expect(1, 43065, '\P{^Scx=gujr}', "");
-    Expect(0, 43066, '\p{Scx=gujr}', "");
-    Expect(1, 43066, '\p{^Scx=gujr}', "");
-    Expect(1, 43066, '\P{Scx=gujr}', "");
-    Expect(0, 43066, '\P{^Scx=gujr}', "");
+    Expect(1, 43065, '\p{Scx: gujr}', "");
+    Expect(0, 43065, '\p{^Scx: gujr}', "");
+    Expect(0, 43065, '\P{Scx: gujr}', "");
+    Expect(1, 43065, '\P{^Scx: gujr}', "");
+    Expect(0, 43066, '\p{Scx: gujr}', "");
+    Expect(1, 43066, '\p{^Scx: gujr}', "");
+    Expect(1, 43066, '\P{Scx: gujr}', "");
+    Expect(0, 43066, '\P{^Scx: gujr}', "");
     Expect(1, 43065, '\p{Scx=:\Agujr\z:}', "");;
     Expect(0, 43066, '\p{Scx=:\Agujr\z:}', "");;
-    Expect(1, 43065, '\p{Scx=-gujr}', "");
-    Expect(0, 43065, '\p{^Scx=-gujr}', "");
-    Expect(0, 43065, '\P{Scx=-gujr}', "");
-    Expect(1, 43065, '\P{^Scx=-gujr}', "");
-    Expect(0, 43066, '\p{Scx=-gujr}', "");
-    Expect(1, 43066, '\p{^Scx=-gujr}', "");
-    Expect(1, 43066, '\P{Scx=-gujr}', "");
-    Expect(0, 43066, '\P{^Scx=-gujr}', "");
-    Error('\p{Is_Script_Extensions=	:=GUJARATI}');
-    Error('\P{Is_Script_Extensions=	:=GUJARATI}');
+    Expect(1, 43065, '\p{Scx=- Gujr}', "");
+    Expect(0, 43065, '\p{^Scx=- Gujr}', "");
+    Expect(0, 43065, '\P{Scx=- Gujr}', "");
+    Expect(1, 43065, '\P{^Scx=- Gujr}', "");
+    Expect(0, 43066, '\p{Scx=- Gujr}', "");
+    Expect(1, 43066, '\p{^Scx=- Gujr}', "");
+    Expect(1, 43066, '\P{Scx=- Gujr}', "");
+    Expect(0, 43066, '\P{^Scx=- Gujr}', "");
+    Error('\p{Is_Script_Extensions=	Gujarati:=}');
+    Error('\P{Is_Script_Extensions=	Gujarati:=}');
     Expect(1, 43065, '\p{Is_Script_Extensions=gujarati}', "");
     Expect(0, 43065, '\p{^Is_Script_Extensions=gujarati}', "");
     Expect(0, 43065, '\P{Is_Script_Extensions=gujarati}', "");
@@ -144981,78 +146317,78 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43066, '\p{^Is_Script_Extensions=gujarati}', "");
     Expect(1, 43066, '\P{Is_Script_Extensions=gujarati}', "");
     Expect(0, 43066, '\P{^Is_Script_Extensions=gujarati}', "");
-    Expect(1, 43065, '\p{Is_Script_Extensions=		Gujarati}', "");
-    Expect(0, 43065, '\p{^Is_Script_Extensions=		Gujarati}', "");
-    Expect(0, 43065, '\P{Is_Script_Extensions=		Gujarati}', "");
-    Expect(1, 43065, '\P{^Is_Script_Extensions=		Gujarati}', "");
-    Expect(0, 43066, '\p{Is_Script_Extensions=		Gujarati}', "");
-    Expect(1, 43066, '\p{^Is_Script_Extensions=		Gujarati}', "");
-    Expect(1, 43066, '\P{Is_Script_Extensions=		Gujarati}', "");
-    Expect(0, 43066, '\P{^Is_Script_Extensions=		Gujarati}', "");
-    Error('\p{Is_Scx=/a/-	Gujr}');
-    Error('\P{Is_Scx=/a/-	Gujr}');
-    Expect(1, 43065, '\p{Is_Scx: gujr}', "");
-    Expect(0, 43065, '\p{^Is_Scx: gujr}', "");
-    Expect(0, 43065, '\P{Is_Scx: gujr}', "");
-    Expect(1, 43065, '\P{^Is_Scx: gujr}', "");
-    Expect(0, 43066, '\p{Is_Scx: gujr}', "");
-    Expect(1, 43066, '\p{^Is_Scx: gujr}', "");
-    Expect(1, 43066, '\P{Is_Scx: gujr}', "");
-    Expect(0, 43066, '\P{^Is_Scx: gujr}', "");
-    Expect(1, 43065, '\p{Is_Scx= _Gujr}', "");
-    Expect(0, 43065, '\p{^Is_Scx= _Gujr}', "");
-    Expect(0, 43065, '\P{Is_Scx= _Gujr}', "");
-    Expect(1, 43065, '\P{^Is_Scx= _Gujr}', "");
-    Expect(0, 43066, '\p{Is_Scx= _Gujr}', "");
-    Expect(1, 43066, '\p{^Is_Scx= _Gujr}', "");
-    Expect(1, 43066, '\P{Is_Scx= _Gujr}', "");
-    Expect(0, 43066, '\P{^Is_Scx= _Gujr}', "");
-    Error('\p{Script_Extensions=-:=Gurmukhi}');
-    Error('\P{Script_Extensions=-:=Gurmukhi}');
+    Expect(1, 43065, '\p{Is_Script_Extensions:		GUJARATI}', "");
+    Expect(0, 43065, '\p{^Is_Script_Extensions:		GUJARATI}', "");
+    Expect(0, 43065, '\P{Is_Script_Extensions:		GUJARATI}', "");
+    Expect(1, 43065, '\P{^Is_Script_Extensions:		GUJARATI}', "");
+    Expect(0, 43066, '\p{Is_Script_Extensions:		GUJARATI}', "");
+    Expect(1, 43066, '\p{^Is_Script_Extensions:		GUJARATI}', "");
+    Expect(1, 43066, '\P{Is_Script_Extensions:		GUJARATI}', "");
+    Expect(0, 43066, '\P{^Is_Script_Extensions:		GUJARATI}', "");
+    Error('\p{Is_Scx=/a/--Gujr}');
+    Error('\P{Is_Scx=/a/--Gujr}');
+    Expect(1, 43065, '\p{Is_Scx=gujr}', "");
+    Expect(0, 43065, '\p{^Is_Scx=gujr}', "");
+    Expect(0, 43065, '\P{Is_Scx=gujr}', "");
+    Expect(1, 43065, '\P{^Is_Scx=gujr}', "");
+    Expect(0, 43066, '\p{Is_Scx=gujr}', "");
+    Expect(1, 43066, '\p{^Is_Scx=gujr}', "");
+    Expect(1, 43066, '\P{Is_Scx=gujr}', "");
+    Expect(0, 43066, '\P{^Is_Scx=gujr}', "");
+    Expect(1, 43065, '\p{Is_Scx=GUJR}', "");
+    Expect(0, 43065, '\p{^Is_Scx=GUJR}', "");
+    Expect(0, 43065, '\P{Is_Scx=GUJR}', "");
+    Expect(1, 43065, '\P{^Is_Scx=GUJR}', "");
+    Expect(0, 43066, '\p{Is_Scx=GUJR}', "");
+    Expect(1, 43066, '\p{^Is_Scx=GUJR}', "");
+    Expect(1, 43066, '\P{Is_Scx=GUJR}', "");
+    Expect(0, 43066, '\P{^Is_Scx=GUJR}', "");
+    Error('\p{Script_Extensions=/a/_ GURMUKHI}');
+    Error('\P{Script_Extensions=/a/_ GURMUKHI}');
     Expect(1, 43065, '\p{Script_Extensions=:\AGurmukhi\z:}', "");;
     Expect(0, 43066, '\p{Script_Extensions=:\AGurmukhi\z:}', "");;
-    Expect(1, 43065, '\p{Script_Extensions=gurmukhi}', "");
-    Expect(0, 43065, '\p{^Script_Extensions=gurmukhi}', "");
-    Expect(0, 43065, '\P{Script_Extensions=gurmukhi}', "");
-    Expect(1, 43065, '\P{^Script_Extensions=gurmukhi}', "");
-    Expect(0, 43066, '\p{Script_Extensions=gurmukhi}', "");
-    Expect(1, 43066, '\p{^Script_Extensions=gurmukhi}', "");
-    Expect(1, 43066, '\P{Script_Extensions=gurmukhi}', "");
-    Expect(0, 43066, '\P{^Script_Extensions=gurmukhi}', "");
+    Expect(1, 43065, '\p{Script_Extensions:	gurmukhi}', "");
+    Expect(0, 43065, '\p{^Script_Extensions:	gurmukhi}', "");
+    Expect(0, 43065, '\P{Script_Extensions:	gurmukhi}', "");
+    Expect(1, 43065, '\P{^Script_Extensions:	gurmukhi}', "");
+    Expect(0, 43066, '\p{Script_Extensions:	gurmukhi}', "");
+    Expect(1, 43066, '\p{^Script_Extensions:	gurmukhi}', "");
+    Expect(1, 43066, '\P{Script_Extensions:	gurmukhi}', "");
+    Expect(0, 43066, '\P{^Script_Extensions:	gurmukhi}', "");
     Expect(1, 43065, '\p{Script_Extensions=:\Agurmukhi\z:}', "");;
     Expect(0, 43066, '\p{Script_Extensions=:\Agurmukhi\z:}', "");;
-    Expect(1, 43065, '\p{Script_Extensions=- GURMUKHI}', "");
-    Expect(0, 43065, '\p{^Script_Extensions=- GURMUKHI}', "");
-    Expect(0, 43065, '\P{Script_Extensions=- GURMUKHI}', "");
-    Expect(1, 43065, '\P{^Script_Extensions=- GURMUKHI}', "");
-    Expect(0, 43066, '\p{Script_Extensions=- GURMUKHI}', "");
-    Expect(1, 43066, '\p{^Script_Extensions=- GURMUKHI}', "");
-    Expect(1, 43066, '\P{Script_Extensions=- GURMUKHI}', "");
-    Expect(0, 43066, '\P{^Script_Extensions=- GURMUKHI}', "");
-    Error('\p{Scx= Guru/a/}');
-    Error('\P{Scx= Guru/a/}');
+    Expect(1, 43065, '\p{Script_Extensions=_Gurmukhi}', "");
+    Expect(0, 43065, '\p{^Script_Extensions=_Gurmukhi}', "");
+    Expect(0, 43065, '\P{Script_Extensions=_Gurmukhi}', "");
+    Expect(1, 43065, '\P{^Script_Extensions=_Gurmukhi}', "");
+    Expect(0, 43066, '\p{Script_Extensions=_Gurmukhi}', "");
+    Expect(1, 43066, '\p{^Script_Extensions=_Gurmukhi}', "");
+    Expect(1, 43066, '\P{Script_Extensions=_Gurmukhi}', "");
+    Expect(0, 43066, '\P{^Script_Extensions=_Gurmukhi}', "");
+    Error('\p{Scx=-	Guru:=}');
+    Error('\P{Scx=-	Guru:=}');
     Expect(1, 43065, '\p{Scx=:\AGuru\z:}', "");;
     Expect(0, 43066, '\p{Scx=:\AGuru\z:}', "");;
-    Expect(1, 43065, '\p{Scx=guru}', "");
-    Expect(0, 43065, '\p{^Scx=guru}', "");
-    Expect(0, 43065, '\P{Scx=guru}', "");
-    Expect(1, 43065, '\P{^Scx=guru}', "");
-    Expect(0, 43066, '\p{Scx=guru}', "");
-    Expect(1, 43066, '\p{^Scx=guru}', "");
-    Expect(1, 43066, '\P{Scx=guru}', "");
-    Expect(0, 43066, '\P{^Scx=guru}', "");
+    Expect(1, 43065, '\p{Scx:   guru}', "");
+    Expect(0, 43065, '\p{^Scx:   guru}', "");
+    Expect(0, 43065, '\P{Scx:   guru}', "");
+    Expect(1, 43065, '\P{^Scx:   guru}', "");
+    Expect(0, 43066, '\p{Scx:   guru}', "");
+    Expect(1, 43066, '\p{^Scx:   guru}', "");
+    Expect(1, 43066, '\P{Scx:   guru}', "");
+    Expect(0, 43066, '\P{^Scx:   guru}', "");
     Expect(1, 43065, '\p{Scx=:\Aguru\z:}', "");;
     Expect(0, 43066, '\p{Scx=:\Aguru\z:}', "");;
-    Expect(1, 43065, '\p{Scx: 	_Guru}', "");
-    Expect(0, 43065, '\p{^Scx: 	_Guru}', "");
-    Expect(0, 43065, '\P{Scx: 	_Guru}', "");
-    Expect(1, 43065, '\P{^Scx: 	_Guru}', "");
-    Expect(0, 43066, '\p{Scx: 	_Guru}', "");
-    Expect(1, 43066, '\p{^Scx: 	_Guru}', "");
-    Expect(1, 43066, '\P{Scx: 	_Guru}', "");
-    Expect(0, 43066, '\P{^Scx: 	_Guru}', "");
-    Error('\p{Is_Script_Extensions=	:=Gurmukhi}');
-    Error('\P{Is_Script_Extensions=	:=Gurmukhi}');
+    Expect(1, 43065, '\p{Scx=	_GURU}', "");
+    Expect(0, 43065, '\p{^Scx=	_GURU}', "");
+    Expect(0, 43065, '\P{Scx=	_GURU}', "");
+    Expect(1, 43065, '\P{^Scx=	_GURU}', "");
+    Expect(0, 43066, '\p{Scx=	_GURU}', "");
+    Expect(1, 43066, '\p{^Scx=	_GURU}', "");
+    Expect(1, 43066, '\P{Scx=	_GURU}', "");
+    Expect(0, 43066, '\P{^Scx=	_GURU}', "");
+    Error('\p{Is_Script_Extensions=:=_-Gurmukhi}');
+    Error('\P{Is_Script_Extensions=:=_-Gurmukhi}');
     Expect(1, 43065, '\p{Is_Script_Extensions=gurmukhi}', "");
     Expect(0, 43065, '\p{^Is_Script_Extensions=gurmukhi}', "");
     Expect(0, 43065, '\P{Is_Script_Extensions=gurmukhi}', "");
@@ -145061,16 +146397,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43066, '\p{^Is_Script_Extensions=gurmukhi}', "");
     Expect(1, 43066, '\P{Is_Script_Extensions=gurmukhi}', "");
     Expect(0, 43066, '\P{^Is_Script_Extensions=gurmukhi}', "");
-    Expect(1, 43065, '\p{Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(0, 43065, '\p{^Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(0, 43065, '\P{Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(1, 43065, '\P{^Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(0, 43066, '\p{Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(1, 43066, '\p{^Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(1, 43066, '\P{Is_Script_Extensions=__Gurmukhi}', "");
-    Expect(0, 43066, '\P{^Is_Script_Extensions=__Gurmukhi}', "");
-    Error('\p{Is_Scx=:=_Guru}');
-    Error('\P{Is_Scx=:=_Guru}');
+    Expect(1, 43065, '\p{Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(0, 43065, '\p{^Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(0, 43065, '\P{Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(1, 43065, '\P{^Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(0, 43066, '\p{Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(1, 43066, '\p{^Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(1, 43066, '\P{Is_Script_Extensions=- Gurmukhi}', "");
+    Expect(0, 43066, '\P{^Is_Script_Extensions=- Gurmukhi}', "");
+    Error('\p{Is_Scx=:=-_guru}');
+    Error('\P{Is_Scx=:=-_guru}');
     Expect(1, 43065, '\p{Is_Scx=guru}', "");
     Expect(0, 43065, '\p{^Is_Scx=guru}', "");
     Expect(0, 43065, '\P{Is_Scx=guru}', "");
@@ -145079,38 +146415,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43066, '\p{^Is_Scx=guru}', "");
     Expect(1, 43066, '\P{Is_Scx=guru}', "");
     Expect(0, 43066, '\P{^Is_Scx=guru}', "");
-    Expect(1, 43065, '\p{Is_Scx=	-GURU}', "");
-    Expect(0, 43065, '\p{^Is_Scx=	-GURU}', "");
-    Expect(0, 43065, '\P{Is_Scx=	-GURU}', "");
-    Expect(1, 43065, '\P{^Is_Scx=	-GURU}', "");
-    Expect(0, 43066, '\p{Is_Scx=	-GURU}', "");
-    Expect(1, 43066, '\p{^Is_Scx=	-GURU}', "");
-    Expect(1, 43066, '\P{Is_Scx=	-GURU}', "");
-    Expect(0, 43066, '\P{^Is_Scx=	-GURU}', "");
-    Error('\p{Script_Extensions=	-hangul/a/}');
-    Error('\P{Script_Extensions=	-hangul/a/}');
+    Expect(1, 43065, '\p{Is_Scx=-GURU}', "");
+    Expect(0, 43065, '\p{^Is_Scx=-GURU}', "");
+    Expect(0, 43065, '\P{Is_Scx=-GURU}', "");
+    Expect(1, 43065, '\P{^Is_Scx=-GURU}', "");
+    Expect(0, 43066, '\p{Is_Scx=-GURU}', "");
+    Expect(1, 43066, '\p{^Is_Scx=-GURU}', "");
+    Expect(1, 43066, '\P{Is_Scx=-GURU}', "");
+    Expect(0, 43066, '\P{^Is_Scx=-GURU}', "");
+    Error('\p{Script_Extensions=:=HANGUL}');
+    Error('\P{Script_Extensions=:=HANGUL}');
     Expect(1, 65500, '\p{Script_Extensions=:\AHangul\z:}', "");;
     Expect(0, 65501, '\p{Script_Extensions=:\AHangul\z:}', "");;
-    Expect(1, 65500, '\p{Script_Extensions=hangul}', "");
-    Expect(0, 65500, '\p{^Script_Extensions=hangul}', "");
-    Expect(0, 65500, '\P{Script_Extensions=hangul}', "");
-    Expect(1, 65500, '\P{^Script_Extensions=hangul}', "");
-    Expect(0, 65501, '\p{Script_Extensions=hangul}', "");
-    Expect(1, 65501, '\p{^Script_Extensions=hangul}', "");
-    Expect(1, 65501, '\P{Script_Extensions=hangul}', "");
-    Expect(0, 65501, '\P{^Script_Extensions=hangul}', "");
+    Expect(1, 65500, '\p{Script_Extensions:	hangul}', "");
+    Expect(0, 65500, '\p{^Script_Extensions:	hangul}', "");
+    Expect(0, 65500, '\P{Script_Extensions:	hangul}', "");
+    Expect(1, 65500, '\P{^Script_Extensions:	hangul}', "");
+    Expect(0, 65501, '\p{Script_Extensions:	hangul}', "");
+    Expect(1, 65501, '\p{^Script_Extensions:	hangul}', "");
+    Expect(1, 65501, '\P{Script_Extensions:	hangul}', "");
+    Expect(0, 65501, '\P{^Script_Extensions:	hangul}', "");
     Expect(1, 65500, '\p{Script_Extensions=:\Ahangul\z:}', "");;
     Expect(0, 65501, '\p{Script_Extensions=:\Ahangul\z:}', "");;
-    Expect(1, 65500, '\p{Script_Extensions=_HANGUL}', "");
-    Expect(0, 65500, '\p{^Script_Extensions=_HANGUL}', "");
-    Expect(0, 65500, '\P{Script_Extensions=_HANGUL}', "");
-    Expect(1, 65500, '\P{^Script_Extensions=_HANGUL}', "");
-    Expect(0, 65501, '\p{Script_Extensions=_HANGUL}', "");
-    Expect(1, 65501, '\p{^Script_Extensions=_HANGUL}', "");
-    Expect(1, 65501, '\P{Script_Extensions=_HANGUL}', "");
-    Expect(0, 65501, '\P{^Script_Extensions=_HANGUL}', "");
-    Error('\p{Scx=	HANG:=}');
-    Error('\P{Scx=	HANG:=}');
+    Expect(1, 65500, '\p{Script_Extensions=--hangul}', "");
+    Expect(0, 65500, '\p{^Script_Extensions=--hangul}', "");
+    Expect(0, 65500, '\P{Script_Extensions=--hangul}', "");
+    Expect(1, 65500, '\P{^Script_Extensions=--hangul}', "");
+    Expect(0, 65501, '\p{Script_Extensions=--hangul}', "");
+    Expect(1, 65501, '\p{^Script_Extensions=--hangul}', "");
+    Expect(1, 65501, '\P{Script_Extensions=--hangul}', "");
+    Expect(0, 65501, '\P{^Script_Extensions=--hangul}', "");
+    Error('\p{Scx= :=Hang}');
+    Error('\P{Scx= :=Hang}');
     Expect(1, 65500, '\p{Scx=:\AHang\z:}', "");;
     Expect(0, 65501, '\p{Scx=:\AHang\z:}', "");;
     Expect(1, 65500, '\p{Scx=hang}', "");
@@ -145123,132 +146459,132 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65501, '\P{^Scx=hang}', "");
     Expect(1, 65500, '\p{Scx=:\Ahang\z:}', "");;
     Expect(0, 65501, '\p{Scx=:\Ahang\z:}', "");;
-    Expect(1, 65500, '\p{Scx=-_Hang}', "");
-    Expect(0, 65500, '\p{^Scx=-_Hang}', "");
-    Expect(0, 65500, '\P{Scx=-_Hang}', "");
-    Expect(1, 65500, '\P{^Scx=-_Hang}', "");
-    Expect(0, 65501, '\p{Scx=-_Hang}', "");
-    Expect(1, 65501, '\p{^Scx=-_Hang}', "");
-    Expect(1, 65501, '\P{Scx=-_Hang}', "");
-    Expect(0, 65501, '\P{^Scx=-_Hang}', "");
-    Error('\p{Is_Script_Extensions=_:=HANGUL}');
-    Error('\P{Is_Script_Extensions=_:=HANGUL}');
-    Expect(1, 65500, '\p{Is_Script_Extensions:hangul}', "");
-    Expect(0, 65500, '\p{^Is_Script_Extensions:hangul}', "");
-    Expect(0, 65500, '\P{Is_Script_Extensions:hangul}', "");
-    Expect(1, 65500, '\P{^Is_Script_Extensions:hangul}', "");
-    Expect(0, 65501, '\p{Is_Script_Extensions:hangul}', "");
-    Expect(1, 65501, '\p{^Is_Script_Extensions:hangul}', "");
-    Expect(1, 65501, '\P{Is_Script_Extensions:hangul}', "");
-    Expect(0, 65501, '\P{^Is_Script_Extensions:hangul}', "");
-    Expect(1, 65500, '\p{Is_Script_Extensions=  HANGUL}', "");
-    Expect(0, 65500, '\p{^Is_Script_Extensions=  HANGUL}', "");
-    Expect(0, 65500, '\P{Is_Script_Extensions=  HANGUL}', "");
-    Expect(1, 65500, '\P{^Is_Script_Extensions=  HANGUL}', "");
-    Expect(0, 65501, '\p{Is_Script_Extensions=  HANGUL}', "");
-    Expect(1, 65501, '\p{^Is_Script_Extensions=  HANGUL}', "");
-    Expect(1, 65501, '\P{Is_Script_Extensions=  HANGUL}', "");
-    Expect(0, 65501, '\P{^Is_Script_Extensions=  HANGUL}', "");
-    Error('\p{Is_Scx=-_hang/a/}');
-    Error('\P{Is_Scx=-_hang/a/}');
-    Expect(1, 65500, '\p{Is_Scx:   hang}', "");
-    Expect(0, 65500, '\p{^Is_Scx:   hang}', "");
-    Expect(0, 65500, '\P{Is_Scx:   hang}', "");
-    Expect(1, 65500, '\P{^Is_Scx:   hang}', "");
-    Expect(0, 65501, '\p{Is_Scx:   hang}', "");
-    Expect(1, 65501, '\p{^Is_Scx:   hang}', "");
-    Expect(1, 65501, '\P{Is_Scx:   hang}', "");
-    Expect(0, 65501, '\P{^Is_Scx:   hang}', "");
-    Expect(1, 65500, '\p{Is_Scx=-Hang}', "");
-    Expect(0, 65500, '\p{^Is_Scx=-Hang}', "");
-    Expect(0, 65500, '\P{Is_Scx=-Hang}', "");
-    Expect(1, 65500, '\P{^Is_Scx=-Hang}', "");
-    Expect(0, 65501, '\p{Is_Scx=-Hang}', "");
-    Expect(1, 65501, '\p{^Is_Scx=-Hang}', "");
-    Expect(1, 65501, '\P{Is_Scx=-Hang}', "");
-    Expect(0, 65501, '\P{^Is_Scx=-Hang}', "");
-    Error('\p{Script_Extensions= /a/Han}');
-    Error('\P{Script_Extensions= /a/Han}');
-    Expect(1, 201546, '\p{Script_Extensions=:\AHan\z:}', "");;
-    Expect(0, 201547, '\p{Script_Extensions=:\AHan\z:}', "");;
-    Expect(1, 201546, '\p{Script_Extensions=han}', "");
-    Expect(0, 201546, '\p{^Script_Extensions=han}', "");
-    Expect(0, 201546, '\P{Script_Extensions=han}', "");
-    Expect(1, 201546, '\P{^Script_Extensions=han}', "");
-    Expect(0, 201547, '\p{Script_Extensions=han}', "");
-    Expect(1, 201547, '\p{^Script_Extensions=han}', "");
-    Expect(1, 201547, '\P{Script_Extensions=han}', "");
-    Expect(0, 201547, '\P{^Script_Extensions=han}', "");
-    Expect(1, 201546, '\p{Script_Extensions=:\Ahan\z:}', "");;
-    Expect(0, 201547, '\p{Script_Extensions=:\Ahan\z:}', "");;
-    Expect(1, 201546, '\p{Script_Extensions=	HAN}', "");
-    Expect(0, 201546, '\p{^Script_Extensions=	HAN}', "");
-    Expect(0, 201546, '\P{Script_Extensions=	HAN}', "");
-    Expect(1, 201546, '\P{^Script_Extensions=	HAN}', "");
-    Expect(0, 201547, '\p{Script_Extensions=	HAN}', "");
-    Expect(1, 201547, '\p{^Script_Extensions=	HAN}', "");
-    Expect(1, 201547, '\P{Script_Extensions=	HAN}', "");
-    Expect(0, 201547, '\P{^Script_Extensions=	HAN}', "");
-    Error('\p{Scx=	/a/hani}');
-    Error('\P{Scx=	/a/hani}');
-    Expect(1, 201546, '\p{Scx=:\AHani\z:}', "");;
-    Expect(0, 201547, '\p{Scx=:\AHani\z:}', "");;
-    Expect(1, 201546, '\p{Scx=hani}', "");
-    Expect(0, 201546, '\p{^Scx=hani}', "");
-    Expect(0, 201546, '\P{Scx=hani}', "");
-    Expect(1, 201546, '\P{^Scx=hani}', "");
-    Expect(0, 201547, '\p{Scx=hani}', "");
-    Expect(1, 201547, '\p{^Scx=hani}', "");
-    Expect(1, 201547, '\P{Scx=hani}', "");
-    Expect(0, 201547, '\P{^Scx=hani}', "");
-    Expect(1, 201546, '\p{Scx=:\Ahani\z:}', "");;
-    Expect(0, 201547, '\p{Scx=:\Ahani\z:}', "");;
-    Expect(1, 201546, '\p{Scx=-hani}', "");
-    Expect(0, 201546, '\p{^Scx=-hani}', "");
-    Expect(0, 201546, '\P{Scx=-hani}', "");
-    Expect(1, 201546, '\P{^Scx=-hani}', "");
-    Expect(0, 201547, '\p{Scx=-hani}', "");
-    Expect(1, 201547, '\p{^Scx=-hani}', "");
-    Expect(1, 201547, '\P{Scx=-hani}', "");
-    Expect(0, 201547, '\P{^Scx=-hani}', "");
-    Error('\p{Is_Script_Extensions=/a/ HAN}');
-    Error('\P{Is_Script_Extensions=/a/ HAN}');
-    Expect(1, 201546, '\p{Is_Script_Extensions=han}', "");
-    Expect(0, 201546, '\p{^Is_Script_Extensions=han}', "");
-    Expect(0, 201546, '\P{Is_Script_Extensions=han}', "");
-    Expect(1, 201546, '\P{^Is_Script_Extensions=han}', "");
-    Expect(0, 201547, '\p{Is_Script_Extensions=han}', "");
-    Expect(1, 201547, '\p{^Is_Script_Extensions=han}', "");
-    Expect(1, 201547, '\P{Is_Script_Extensions=han}', "");
-    Expect(0, 201547, '\P{^Is_Script_Extensions=han}', "");
-    Expect(1, 201546, '\p{Is_Script_Extensions=__han}', "");
-    Expect(0, 201546, '\p{^Is_Script_Extensions=__han}', "");
-    Expect(0, 201546, '\P{Is_Script_Extensions=__han}', "");
-    Expect(1, 201546, '\P{^Is_Script_Extensions=__han}', "");
-    Expect(0, 201547, '\p{Is_Script_Extensions=__han}', "");
-    Expect(1, 201547, '\p{^Is_Script_Extensions=__han}', "");
-    Expect(1, 201547, '\P{Is_Script_Extensions=__han}', "");
-    Expect(0, 201547, '\P{^Is_Script_Extensions=__han}', "");
-    Error('\p{Is_Scx=:=	Hani}');
-    Error('\P{Is_Scx=:=	Hani}');
-    Expect(1, 201546, '\p{Is_Scx=hani}', "");
-    Expect(0, 201546, '\p{^Is_Scx=hani}', "");
-    Expect(0, 201546, '\P{Is_Scx=hani}', "");
-    Expect(1, 201546, '\P{^Is_Scx=hani}', "");
-    Expect(0, 201547, '\p{Is_Scx=hani}', "");
-    Expect(1, 201547, '\p{^Is_Scx=hani}', "");
-    Expect(1, 201547, '\P{Is_Scx=hani}', "");
-    Expect(0, 201547, '\P{^Is_Scx=hani}', "");
-    Expect(1, 201546, '\p{Is_Scx=	 Hani}', "");
-    Expect(0, 201546, '\p{^Is_Scx=	 Hani}', "");
-    Expect(0, 201546, '\P{Is_Scx=	 Hani}', "");
-    Expect(1, 201546, '\P{^Is_Scx=	 Hani}', "");
-    Expect(0, 201547, '\p{Is_Scx=	 Hani}', "");
-    Expect(1, 201547, '\p{^Is_Scx=	 Hani}', "");
-    Expect(1, 201547, '\P{Is_Scx=	 Hani}', "");
-    Expect(0, 201547, '\P{^Is_Scx=	 Hani}', "");
-    Error('\p{Script_Extensions=:=HANUNOO}');
-    Error('\P{Script_Extensions=:=HANUNOO}');
+    Expect(1, 65500, '\p{Scx=--Hang}', "");
+    Expect(0, 65500, '\p{^Scx=--Hang}', "");
+    Expect(0, 65500, '\P{Scx=--Hang}', "");
+    Expect(1, 65500, '\P{^Scx=--Hang}', "");
+    Expect(0, 65501, '\p{Scx=--Hang}', "");
+    Expect(1, 65501, '\p{^Scx=--Hang}', "");
+    Expect(1, 65501, '\P{Scx=--Hang}', "");
+    Expect(0, 65501, '\P{^Scx=--Hang}', "");
+    Error('\p{Is_Script_Extensions=-_Hangul/a/}');
+    Error('\P{Is_Script_Extensions=-_Hangul/a/}');
+    Expect(1, 65500, '\p{Is_Script_Extensions=hangul}', "");
+    Expect(0, 65500, '\p{^Is_Script_Extensions=hangul}', "");
+    Expect(0, 65500, '\P{Is_Script_Extensions=hangul}', "");
+    Expect(1, 65500, '\P{^Is_Script_Extensions=hangul}', "");
+    Expect(0, 65501, '\p{Is_Script_Extensions=hangul}', "");
+    Expect(1, 65501, '\p{^Is_Script_Extensions=hangul}', "");
+    Expect(1, 65501, '\P{Is_Script_Extensions=hangul}', "");
+    Expect(0, 65501, '\P{^Is_Script_Extensions=hangul}', "");
+    Expect(1, 65500, '\p{Is_Script_Extensions=_hangul}', "");
+    Expect(0, 65500, '\p{^Is_Script_Extensions=_hangul}', "");
+    Expect(0, 65500, '\P{Is_Script_Extensions=_hangul}', "");
+    Expect(1, 65500, '\P{^Is_Script_Extensions=_hangul}', "");
+    Expect(0, 65501, '\p{Is_Script_Extensions=_hangul}', "");
+    Expect(1, 65501, '\p{^Is_Script_Extensions=_hangul}', "");
+    Expect(1, 65501, '\P{Is_Script_Extensions=_hangul}', "");
+    Expect(0, 65501, '\P{^Is_Script_Extensions=_hangul}', "");
+    Error('\p{Is_Scx=:=_ hang}');
+    Error('\P{Is_Scx=:=_ hang}');
+    Expect(1, 65500, '\p{Is_Scx=hang}', "");
+    Expect(0, 65500, '\p{^Is_Scx=hang}', "");
+    Expect(0, 65500, '\P{Is_Scx=hang}', "");
+    Expect(1, 65500, '\P{^Is_Scx=hang}', "");
+    Expect(0, 65501, '\p{Is_Scx=hang}', "");
+    Expect(1, 65501, '\p{^Is_Scx=hang}', "");
+    Expect(1, 65501, '\P{Is_Scx=hang}', "");
+    Expect(0, 65501, '\P{^Is_Scx=hang}', "");
+    Expect(1, 65500, '\p{Is_Scx=_-Hang}', "");
+    Expect(0, 65500, '\p{^Is_Scx=_-Hang}', "");
+    Expect(0, 65500, '\P{Is_Scx=_-Hang}', "");
+    Expect(1, 65500, '\P{^Is_Scx=_-Hang}', "");
+    Expect(0, 65501, '\p{Is_Scx=_-Hang}', "");
+    Expect(1, 65501, '\p{^Is_Scx=_-Hang}', "");
+    Expect(1, 65501, '\P{Is_Scx=_-Hang}', "");
+    Expect(0, 65501, '\P{^Is_Scx=_-Hang}', "");
+    Error('\p{Script_Extensions=/a/ _Han}');
+    Error('\P{Script_Extensions=/a/ _Han}');
+    Expect(1, 205743, '\p{Script_Extensions=:\AHan\z:}', "");;
+    Expect(0, 205744, '\p{Script_Extensions=:\AHan\z:}', "");;
+    Expect(1, 205743, '\p{Script_Extensions:	han}', "");
+    Expect(0, 205743, '\p{^Script_Extensions:	han}', "");
+    Expect(0, 205743, '\P{Script_Extensions:	han}', "");
+    Expect(1, 205743, '\P{^Script_Extensions:	han}', "");
+    Expect(0, 205744, '\p{Script_Extensions:	han}', "");
+    Expect(1, 205744, '\p{^Script_Extensions:	han}', "");
+    Expect(1, 205744, '\P{Script_Extensions:	han}', "");
+    Expect(0, 205744, '\P{^Script_Extensions:	han}', "");
+    Expect(1, 205743, '\p{Script_Extensions=:\Ahan\z:}', "");;
+    Expect(0, 205744, '\p{Script_Extensions=:\Ahan\z:}', "");;
+    Expect(1, 205743, '\p{Script_Extensions=	Han}', "");
+    Expect(0, 205743, '\p{^Script_Extensions=	Han}', "");
+    Expect(0, 205743, '\P{Script_Extensions=	Han}', "");
+    Expect(1, 205743, '\P{^Script_Extensions=	Han}', "");
+    Expect(0, 205744, '\p{Script_Extensions=	Han}', "");
+    Expect(1, 205744, '\p{^Script_Extensions=	Han}', "");
+    Expect(1, 205744, '\P{Script_Extensions=	Han}', "");
+    Expect(0, 205744, '\P{^Script_Extensions=	Han}', "");
+    Error('\p{Scx=-	hani:=}');
+    Error('\P{Scx=-	hani:=}');
+    Expect(1, 205743, '\p{Scx=:\AHani\z:}', "");;
+    Expect(0, 205744, '\p{Scx=:\AHani\z:}', "");;
+    Expect(1, 205743, '\p{Scx=hani}', "");
+    Expect(0, 205743, '\p{^Scx=hani}', "");
+    Expect(0, 205743, '\P{Scx=hani}', "");
+    Expect(1, 205743, '\P{^Scx=hani}', "");
+    Expect(0, 205744, '\p{Scx=hani}', "");
+    Expect(1, 205744, '\p{^Scx=hani}', "");
+    Expect(1, 205744, '\P{Scx=hani}', "");
+    Expect(0, 205744, '\P{^Scx=hani}', "");
+    Expect(1, 205743, '\p{Scx=:\Ahani\z:}', "");;
+    Expect(0, 205744, '\p{Scx=:\Ahani\z:}', "");;
+    Expect(1, 205743, '\p{Scx= _Hani}', "");
+    Expect(0, 205743, '\p{^Scx= _Hani}', "");
+    Expect(0, 205743, '\P{Scx= _Hani}', "");
+    Expect(1, 205743, '\P{^Scx= _Hani}', "");
+    Expect(0, 205744, '\p{Scx= _Hani}', "");
+    Expect(1, 205744, '\p{^Scx= _Hani}', "");
+    Expect(1, 205744, '\P{Scx= _Hani}', "");
+    Expect(0, 205744, '\P{^Scx= _Hani}', "");
+    Error('\p{Is_Script_Extensions=-_Han/a/}');
+    Error('\P{Is_Script_Extensions=-_Han/a/}');
+    Expect(1, 205743, '\p{Is_Script_Extensions=han}', "");
+    Expect(0, 205743, '\p{^Is_Script_Extensions=han}', "");
+    Expect(0, 205743, '\P{Is_Script_Extensions=han}', "");
+    Expect(1, 205743, '\P{^Is_Script_Extensions=han}', "");
+    Expect(0, 205744, '\p{Is_Script_Extensions=han}', "");
+    Expect(1, 205744, '\p{^Is_Script_Extensions=han}', "");
+    Expect(1, 205744, '\P{Is_Script_Extensions=han}', "");
+    Expect(0, 205744, '\P{^Is_Script_Extensions=han}', "");
+    Expect(1, 205743, '\p{Is_Script_Extensions:__Han}', "");
+    Expect(0, 205743, '\p{^Is_Script_Extensions:__Han}', "");
+    Expect(0, 205743, '\P{Is_Script_Extensions:__Han}', "");
+    Expect(1, 205743, '\P{^Is_Script_Extensions:__Han}', "");
+    Expect(0, 205744, '\p{Is_Script_Extensions:__Han}', "");
+    Expect(1, 205744, '\p{^Is_Script_Extensions:__Han}', "");
+    Expect(1, 205744, '\P{Is_Script_Extensions:__Han}', "");
+    Expect(0, 205744, '\P{^Is_Script_Extensions:__Han}', "");
+    Error('\p{Is_Scx=:= hani}');
+    Error('\P{Is_Scx=:= hani}');
+    Expect(1, 205743, '\p{Is_Scx=hani}', "");
+    Expect(0, 205743, '\p{^Is_Scx=hani}', "");
+    Expect(0, 205743, '\P{Is_Scx=hani}', "");
+    Expect(1, 205743, '\P{^Is_Scx=hani}', "");
+    Expect(0, 205744, '\p{Is_Scx=hani}', "");
+    Expect(1, 205744, '\p{^Is_Scx=hani}', "");
+    Expect(1, 205744, '\P{Is_Scx=hani}', "");
+    Expect(0, 205744, '\P{^Is_Scx=hani}', "");
+    Expect(1, 205743, '\p{Is_Scx=_hani}', "");
+    Expect(0, 205743, '\p{^Is_Scx=_hani}', "");
+    Expect(0, 205743, '\P{Is_Scx=_hani}', "");
+    Expect(1, 205743, '\P{^Is_Scx=_hani}', "");
+    Expect(0, 205744, '\p{Is_Scx=_hani}', "");
+    Expect(1, 205744, '\p{^Is_Scx=_hani}', "");
+    Expect(1, 205744, '\P{Is_Scx=_hani}', "");
+    Expect(0, 205744, '\P{^Is_Scx=_hani}', "");
+    Error('\p{Script_Extensions=-/a/Hanunoo}');
+    Error('\P{Script_Extensions=-/a/Hanunoo}');
     Expect(1, 5942, '\p{Script_Extensions=:\AHanunoo\z:}', "");;
     Expect(0, 5943, '\p{Script_Extensions=:\AHanunoo\z:}', "");;
     Expect(1, 5942, '\p{Script_Extensions=hanunoo}', "");
@@ -145261,16 +146597,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5943, '\P{^Script_Extensions=hanunoo}', "");
     Expect(1, 5942, '\p{Script_Extensions=:\Ahanunoo\z:}', "");;
     Expect(0, 5943, '\p{Script_Extensions=:\Ahanunoo\z:}', "");;
-    Expect(1, 5942, '\p{Script_Extensions=		HANUNOO}', "");
-    Expect(0, 5942, '\p{^Script_Extensions=		HANUNOO}', "");
-    Expect(0, 5942, '\P{Script_Extensions=		HANUNOO}', "");
-    Expect(1, 5942, '\P{^Script_Extensions=		HANUNOO}', "");
-    Expect(0, 5943, '\p{Script_Extensions=		HANUNOO}', "");
-    Expect(1, 5943, '\p{^Script_Extensions=		HANUNOO}', "");
-    Expect(1, 5943, '\P{Script_Extensions=		HANUNOO}', "");
-    Expect(0, 5943, '\P{^Script_Extensions=		HANUNOO}', "");
-    Error('\p{Scx=	_HANO:=}');
-    Error('\P{Scx=	_HANO:=}');
+    Expect(1, 5942, '\p{Script_Extensions=	HANUNOO}', "");
+    Expect(0, 5942, '\p{^Script_Extensions=	HANUNOO}', "");
+    Expect(0, 5942, '\P{Script_Extensions=	HANUNOO}', "");
+    Expect(1, 5942, '\P{^Script_Extensions=	HANUNOO}', "");
+    Expect(0, 5943, '\p{Script_Extensions=	HANUNOO}', "");
+    Expect(1, 5943, '\p{^Script_Extensions=	HANUNOO}', "");
+    Expect(1, 5943, '\P{Script_Extensions=	HANUNOO}', "");
+    Expect(0, 5943, '\P{^Script_Extensions=	HANUNOO}', "");
+    Error('\p{Scx=hano/a/}');
+    Error('\P{Scx=hano/a/}');
     Expect(1, 5942, '\p{Scx=:\AHano\z:}', "");;
     Expect(0, 5943, '\p{Scx=:\AHano\z:}', "");;
     Expect(1, 5942, '\p{Scx=hano}', "");
@@ -145283,16 +146619,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5943, '\P{^Scx=hano}', "");
     Expect(1, 5942, '\p{Scx=:\Ahano\z:}', "");;
     Expect(0, 5943, '\p{Scx=:\Ahano\z:}', "");;
-    Expect(1, 5942, '\p{Scx=__hano}', "");
-    Expect(0, 5942, '\p{^Scx=__hano}', "");
-    Expect(0, 5942, '\P{Scx=__hano}', "");
-    Expect(1, 5942, '\P{^Scx=__hano}', "");
-    Expect(0, 5943, '\p{Scx=__hano}', "");
-    Expect(1, 5943, '\p{^Scx=__hano}', "");
-    Expect(1, 5943, '\P{Scx=__hano}', "");
-    Expect(0, 5943, '\P{^Scx=__hano}', "");
-    Error('\p{Is_Script_Extensions= _hanunoo/a/}');
-    Error('\P{Is_Script_Extensions= _hanunoo/a/}');
+    Expect(1, 5942, '\p{Scx=-	Hano}', "");
+    Expect(0, 5942, '\p{^Scx=-	Hano}', "");
+    Expect(0, 5942, '\P{Scx=-	Hano}', "");
+    Expect(1, 5942, '\P{^Scx=-	Hano}', "");
+    Expect(0, 5943, '\p{Scx=-	Hano}', "");
+    Expect(1, 5943, '\p{^Scx=-	Hano}', "");
+    Expect(1, 5943, '\P{Scx=-	Hano}', "");
+    Expect(0, 5943, '\P{^Scx=-	Hano}', "");
+    Error('\p{Is_Script_Extensions=-Hanunoo:=}');
+    Error('\P{Is_Script_Extensions=-Hanunoo:=}');
     Expect(1, 5942, '\p{Is_Script_Extensions=hanunoo}', "");
     Expect(0, 5942, '\p{^Is_Script_Extensions=hanunoo}', "");
     Expect(0, 5942, '\P{Is_Script_Extensions=hanunoo}', "");
@@ -145301,16 +146637,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^Is_Script_Extensions=hanunoo}', "");
     Expect(1, 5943, '\P{Is_Script_Extensions=hanunoo}', "");
     Expect(0, 5943, '\P{^Is_Script_Extensions=hanunoo}', "");
-    Expect(1, 5942, '\p{Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(0, 5942, '\p{^Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(0, 5942, '\P{Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(1, 5942, '\P{^Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(0, 5943, '\p{Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(1, 5943, '\p{^Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(1, 5943, '\P{Is_Script_Extensions:	 -Hanunoo}', "");
-    Expect(0, 5943, '\P{^Is_Script_Extensions:	 -Hanunoo}', "");
-    Error('\p{Is_Scx=_:=Hano}');
-    Error('\P{Is_Scx=_:=Hano}');
+    Expect(1, 5942, '\p{Is_Script_Extensions=  HANUNOO}', "");
+    Expect(0, 5942, '\p{^Is_Script_Extensions=  HANUNOO}', "");
+    Expect(0, 5942, '\P{Is_Script_Extensions=  HANUNOO}', "");
+    Expect(1, 5942, '\P{^Is_Script_Extensions=  HANUNOO}', "");
+    Expect(0, 5943, '\p{Is_Script_Extensions=  HANUNOO}', "");
+    Expect(1, 5943, '\p{^Is_Script_Extensions=  HANUNOO}', "");
+    Expect(1, 5943, '\P{Is_Script_Extensions=  HANUNOO}', "");
+    Expect(0, 5943, '\P{^Is_Script_Extensions=  HANUNOO}', "");
+    Error('\p{Is_Scx=/a/- Hano}');
+    Error('\P{Is_Scx=/a/- Hano}');
     Expect(1, 5942, '\p{Is_Scx=hano}', "");
     Expect(0, 5942, '\p{^Is_Scx=hano}', "");
     Expect(0, 5942, '\P{Is_Scx=hano}', "");
@@ -145319,38 +146655,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^Is_Scx=hano}', "");
     Expect(1, 5943, '\P{Is_Scx=hano}', "");
     Expect(0, 5943, '\P{^Is_Scx=hano}', "");
-    Expect(1, 5942, '\p{Is_Scx= _hano}', "");
-    Expect(0, 5942, '\p{^Is_Scx= _hano}', "");
-    Expect(0, 5942, '\P{Is_Scx= _hano}', "");
-    Expect(1, 5942, '\P{^Is_Scx= _hano}', "");
-    Expect(0, 5943, '\p{Is_Scx= _hano}', "");
-    Expect(1, 5943, '\p{^Is_Scx= _hano}', "");
-    Expect(1, 5943, '\P{Is_Scx= _hano}', "");
-    Expect(0, 5943, '\P{^Is_Scx= _hano}', "");
-    Error('\p{Script_Extensions:	-_Hatran/a/}');
-    Error('\P{Script_Extensions:	-_Hatran/a/}');
+    Expect(1, 5942, '\p{Is_Scx=	HANO}', "");
+    Expect(0, 5942, '\p{^Is_Scx=	HANO}', "");
+    Expect(0, 5942, '\P{Is_Scx=	HANO}', "");
+    Expect(1, 5942, '\P{^Is_Scx=	HANO}', "");
+    Expect(0, 5943, '\p{Is_Scx=	HANO}', "");
+    Expect(1, 5943, '\p{^Is_Scx=	HANO}', "");
+    Expect(1, 5943, '\P{Is_Scx=	HANO}', "");
+    Expect(0, 5943, '\P{^Is_Scx=	HANO}', "");
+    Error('\p{Script_Extensions= :=hatran}');
+    Error('\P{Script_Extensions= :=hatran}');
     Expect(1, 67839, '\p{Script_Extensions=:\AHatran\z:}', "");;
     Expect(0, 67840, '\p{Script_Extensions=:\AHatran\z:}', "");;
-    Expect(1, 67839, '\p{Script_Extensions=hatran}', "");
-    Expect(0, 67839, '\p{^Script_Extensions=hatran}', "");
-    Expect(0, 67839, '\P{Script_Extensions=hatran}', "");
-    Expect(1, 67839, '\P{^Script_Extensions=hatran}', "");
-    Expect(0, 67840, '\p{Script_Extensions=hatran}', "");
-    Expect(1, 67840, '\p{^Script_Extensions=hatran}', "");
-    Expect(1, 67840, '\P{Script_Extensions=hatran}', "");
-    Expect(0, 67840, '\P{^Script_Extensions=hatran}', "");
+    Expect(1, 67839, '\p{Script_Extensions:	hatran}', "");
+    Expect(0, 67839, '\p{^Script_Extensions:	hatran}', "");
+    Expect(0, 67839, '\P{Script_Extensions:	hatran}', "");
+    Expect(1, 67839, '\P{^Script_Extensions:	hatran}', "");
+    Expect(0, 67840, '\p{Script_Extensions:	hatran}', "");
+    Expect(1, 67840, '\p{^Script_Extensions:	hatran}', "");
+    Expect(1, 67840, '\P{Script_Extensions:	hatran}', "");
+    Expect(0, 67840, '\P{^Script_Extensions:	hatran}', "");
     Expect(1, 67839, '\p{Script_Extensions=:\Ahatran\z:}', "");;
     Expect(0, 67840, '\p{Script_Extensions=:\Ahatran\z:}', "");;
-    Expect(1, 67839, '\p{Script_Extensions=--Hatran}', "");
-    Expect(0, 67839, '\p{^Script_Extensions=--Hatran}', "");
-    Expect(0, 67839, '\P{Script_Extensions=--Hatran}', "");
-    Expect(1, 67839, '\P{^Script_Extensions=--Hatran}', "");
-    Expect(0, 67840, '\p{Script_Extensions=--Hatran}', "");
-    Expect(1, 67840, '\p{^Script_Extensions=--Hatran}', "");
-    Expect(1, 67840, '\P{Script_Extensions=--Hatran}', "");
-    Expect(0, 67840, '\P{^Script_Extensions=--Hatran}', "");
-    Error('\p{Scx=/a/	hatr}');
-    Error('\P{Scx=/a/	hatr}');
+    Expect(1, 67839, '\p{Script_Extensions= -Hatran}', "");
+    Expect(0, 67839, '\p{^Script_Extensions= -Hatran}', "");
+    Expect(0, 67839, '\P{Script_Extensions= -Hatran}', "");
+    Expect(1, 67839, '\P{^Script_Extensions= -Hatran}', "");
+    Expect(0, 67840, '\p{Script_Extensions= -Hatran}', "");
+    Expect(1, 67840, '\p{^Script_Extensions= -Hatran}', "");
+    Expect(1, 67840, '\P{Script_Extensions= -Hatran}', "");
+    Expect(0, 67840, '\P{^Script_Extensions= -Hatran}', "");
+    Error('\p{Scx=:=_ Hatr}');
+    Error('\P{Scx=:=_ Hatr}');
     Expect(1, 67839, '\p{Scx=:\AHatr\z:}', "");;
     Expect(0, 67840, '\p{Scx=:\AHatr\z:}', "");;
     Expect(1, 67839, '\p{Scx=hatr}', "");
@@ -145363,16 +146699,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67840, '\P{^Scx=hatr}', "");
     Expect(1, 67839, '\p{Scx=:\Ahatr\z:}', "");;
     Expect(0, 67840, '\p{Scx=:\Ahatr\z:}', "");;
-    Expect(1, 67839, '\p{Scx=	HATR}', "");
-    Expect(0, 67839, '\p{^Scx=	HATR}', "");
-    Expect(0, 67839, '\P{Scx=	HATR}', "");
-    Expect(1, 67839, '\P{^Scx=	HATR}', "");
-    Expect(0, 67840, '\p{Scx=	HATR}', "");
-    Expect(1, 67840, '\p{^Scx=	HATR}', "");
-    Expect(1, 67840, '\P{Scx=	HATR}', "");
-    Expect(0, 67840, '\P{^Scx=	HATR}', "");
-    Error('\p{Is_Script_Extensions=-/a/Hatran}');
-    Error('\P{Is_Script_Extensions=-/a/Hatran}');
+    Expect(1, 67839, '\p{Scx=_-Hatr}', "");
+    Expect(0, 67839, '\p{^Scx=_-Hatr}', "");
+    Expect(0, 67839, '\P{Scx=_-Hatr}', "");
+    Expect(1, 67839, '\P{^Scx=_-Hatr}', "");
+    Expect(0, 67840, '\p{Scx=_-Hatr}', "");
+    Expect(1, 67840, '\p{^Scx=_-Hatr}', "");
+    Expect(1, 67840, '\P{Scx=_-Hatr}', "");
+    Expect(0, 67840, '\P{^Scx=_-Hatr}', "");
+    Error('\p{Is_Script_Extensions=:=hatran}');
+    Error('\P{Is_Script_Extensions=:=hatran}');
     Expect(1, 67839, '\p{Is_Script_Extensions=hatran}', "");
     Expect(0, 67839, '\p{^Is_Script_Extensions=hatran}', "");
     Expect(0, 67839, '\P{Is_Script_Extensions=hatran}', "");
@@ -145381,16 +146717,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67840, '\p{^Is_Script_Extensions=hatran}', "");
     Expect(1, 67840, '\P{Is_Script_Extensions=hatran}', "");
     Expect(0, 67840, '\P{^Is_Script_Extensions=hatran}', "");
-    Expect(1, 67839, '\p{Is_Script_Extensions: 	_hatran}', "");
-    Expect(0, 67839, '\p{^Is_Script_Extensions: 	_hatran}', "");
-    Expect(0, 67839, '\P{Is_Script_Extensions: 	_hatran}', "");
-    Expect(1, 67839, '\P{^Is_Script_Extensions: 	_hatran}', "");
-    Expect(0, 67840, '\p{Is_Script_Extensions: 	_hatran}', "");
-    Expect(1, 67840, '\p{^Is_Script_Extensions: 	_hatran}', "");
-    Expect(1, 67840, '\P{Is_Script_Extensions: 	_hatran}', "");
-    Expect(0, 67840, '\P{^Is_Script_Extensions: 	_hatran}', "");
-    Error('\p{Is_Scx=:= 	hatr}');
-    Error('\P{Is_Scx=:= 	hatr}');
+    Expect(1, 67839, '\p{Is_Script_Extensions: -hatran}', "");
+    Expect(0, 67839, '\p{^Is_Script_Extensions: -hatran}', "");
+    Expect(0, 67839, '\P{Is_Script_Extensions: -hatran}', "");
+    Expect(1, 67839, '\P{^Is_Script_Extensions: -hatran}', "");
+    Expect(0, 67840, '\p{Is_Script_Extensions: -hatran}', "");
+    Expect(1, 67840, '\p{^Is_Script_Extensions: -hatran}', "");
+    Expect(1, 67840, '\P{Is_Script_Extensions: -hatran}', "");
+    Expect(0, 67840, '\P{^Is_Script_Extensions: -hatran}', "");
+    Error('\p{Is_Scx=/a/__HATR}');
+    Error('\P{Is_Scx=/a/__HATR}');
     Expect(1, 67839, '\p{Is_Scx=hatr}', "");
     Expect(0, 67839, '\p{^Is_Scx=hatr}', "");
     Expect(0, 67839, '\P{Is_Scx=hatr}', "");
@@ -145399,16 +146735,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67840, '\p{^Is_Scx=hatr}', "");
     Expect(1, 67840, '\P{Is_Scx=hatr}', "");
     Expect(0, 67840, '\P{^Is_Scx=hatr}', "");
-    Expect(1, 67839, '\p{Is_Scx=-	Hatr}', "");
-    Expect(0, 67839, '\p{^Is_Scx=-	Hatr}', "");
-    Expect(0, 67839, '\P{Is_Scx=-	Hatr}', "");
-    Expect(1, 67839, '\P{^Is_Scx=-	Hatr}', "");
-    Expect(0, 67840, '\p{Is_Scx=-	Hatr}', "");
-    Expect(1, 67840, '\p{^Is_Scx=-	Hatr}', "");
-    Expect(1, 67840, '\P{Is_Scx=-	Hatr}', "");
-    Expect(0, 67840, '\P{^Is_Scx=-	Hatr}', "");
-    Error('\p{Script_Extensions=-_Hebrew/a/}');
-    Error('\P{Script_Extensions=-_Hebrew/a/}');
+    Expect(1, 67839, '\p{Is_Scx=	HATR}', "");
+    Expect(0, 67839, '\p{^Is_Scx=	HATR}', "");
+    Expect(0, 67839, '\P{Is_Scx=	HATR}', "");
+    Expect(1, 67839, '\P{^Is_Scx=	HATR}', "");
+    Expect(0, 67840, '\p{Is_Scx=	HATR}', "");
+    Expect(1, 67840, '\p{^Is_Scx=	HATR}', "");
+    Expect(1, 67840, '\P{Is_Scx=	HATR}', "");
+    Expect(0, 67840, '\P{^Is_Scx=	HATR}', "");
+    Error('\p{Script_Extensions=_/a/Hebrew}');
+    Error('\P{Script_Extensions=_/a/Hebrew}');
     Expect(1, 64335, '\p{Script_Extensions=:\AHebrew\z:}', "");;
     Expect(0, 64336, '\p{Script_Extensions=:\AHebrew\z:}', "");;
     Expect(1, 64335, '\p{Script_Extensions=hebrew}', "");
@@ -145421,38 +146757,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64336, '\P{^Script_Extensions=hebrew}', "");
     Expect(1, 64335, '\p{Script_Extensions=:\Ahebrew\z:}', "");;
     Expect(0, 64336, '\p{Script_Extensions=:\Ahebrew\z:}', "");;
-    Expect(1, 64335, '\p{Script_Extensions:   	-Hebrew}', "");
-    Expect(0, 64335, '\p{^Script_Extensions:   	-Hebrew}', "");
-    Expect(0, 64335, '\P{Script_Extensions:   	-Hebrew}', "");
-    Expect(1, 64335, '\P{^Script_Extensions:   	-Hebrew}', "");
-    Expect(0, 64336, '\p{Script_Extensions:   	-Hebrew}', "");
-    Expect(1, 64336, '\p{^Script_Extensions:   	-Hebrew}', "");
-    Expect(1, 64336, '\P{Script_Extensions:   	-Hebrew}', "");
-    Expect(0, 64336, '\P{^Script_Extensions:   	-Hebrew}', "");
-    Error('\p{Scx=__Hebr:=}');
-    Error('\P{Scx=__Hebr:=}');
+    Expect(1, 64335, '\p{Script_Extensions=		HEBREW}', "");
+    Expect(0, 64335, '\p{^Script_Extensions=		HEBREW}', "");
+    Expect(0, 64335, '\P{Script_Extensions=		HEBREW}', "");
+    Expect(1, 64335, '\P{^Script_Extensions=		HEBREW}', "");
+    Expect(0, 64336, '\p{Script_Extensions=		HEBREW}', "");
+    Expect(1, 64336, '\p{^Script_Extensions=		HEBREW}', "");
+    Expect(1, 64336, '\P{Script_Extensions=		HEBREW}', "");
+    Expect(0, 64336, '\P{^Script_Extensions=		HEBREW}', "");
+    Error('\p{Scx=_/a/Hebr}');
+    Error('\P{Scx=_/a/Hebr}');
     Expect(1, 64335, '\p{Scx=:\AHebr\z:}', "");;
     Expect(0, 64336, '\p{Scx=:\AHebr\z:}', "");;
-    Expect(1, 64335, '\p{Scx:   hebr}', "");
-    Expect(0, 64335, '\p{^Scx:   hebr}', "");
-    Expect(0, 64335, '\P{Scx:   hebr}', "");
-    Expect(1, 64335, '\P{^Scx:   hebr}', "");
-    Expect(0, 64336, '\p{Scx:   hebr}', "");
-    Expect(1, 64336, '\p{^Scx:   hebr}', "");
-    Expect(1, 64336, '\P{Scx:   hebr}', "");
-    Expect(0, 64336, '\P{^Scx:   hebr}', "");
+    Expect(1, 64335, '\p{Scx=hebr}', "");
+    Expect(0, 64335, '\p{^Scx=hebr}', "");
+    Expect(0, 64335, '\P{Scx=hebr}', "");
+    Expect(1, 64335, '\P{^Scx=hebr}', "");
+    Expect(0, 64336, '\p{Scx=hebr}', "");
+    Expect(1, 64336, '\p{^Scx=hebr}', "");
+    Expect(1, 64336, '\P{Scx=hebr}', "");
+    Expect(0, 64336, '\P{^Scx=hebr}', "");
     Expect(1, 64335, '\p{Scx=:\Ahebr\z:}', "");;
     Expect(0, 64336, '\p{Scx=:\Ahebr\z:}', "");;
-    Expect(1, 64335, '\p{Scx=_HEBR}', "");
-    Expect(0, 64335, '\p{^Scx=_HEBR}', "");
-    Expect(0, 64335, '\P{Scx=_HEBR}', "");
-    Expect(1, 64335, '\P{^Scx=_HEBR}', "");
-    Expect(0, 64336, '\p{Scx=_HEBR}', "");
-    Expect(1, 64336, '\p{^Scx=_HEBR}', "");
-    Expect(1, 64336, '\P{Scx=_HEBR}', "");
-    Expect(0, 64336, '\P{^Scx=_HEBR}', "");
-    Error('\p{Is_Script_Extensions=/a/_HEBREW}');
-    Error('\P{Is_Script_Extensions=/a/_HEBREW}');
+    Expect(1, 64335, '\p{Scx=__Hebr}', "");
+    Expect(0, 64335, '\p{^Scx=__Hebr}', "");
+    Expect(0, 64335, '\P{Scx=__Hebr}', "");
+    Expect(1, 64335, '\P{^Scx=__Hebr}', "");
+    Expect(0, 64336, '\p{Scx=__Hebr}', "");
+    Expect(1, 64336, '\p{^Scx=__Hebr}', "");
+    Expect(1, 64336, '\P{Scx=__Hebr}', "");
+    Expect(0, 64336, '\P{^Scx=__Hebr}', "");
+    Error('\p{Is_Script_Extensions=	Hebrew/a/}');
+    Error('\P{Is_Script_Extensions=	Hebrew/a/}');
     Expect(1, 64335, '\p{Is_Script_Extensions=hebrew}', "");
     Expect(0, 64335, '\p{^Is_Script_Extensions=hebrew}', "");
     Expect(0, 64335, '\P{Is_Script_Extensions=hebrew}', "");
@@ -145461,16 +146797,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64336, '\p{^Is_Script_Extensions=hebrew}', "");
     Expect(1, 64336, '\P{Is_Script_Extensions=hebrew}', "");
     Expect(0, 64336, '\P{^Is_Script_Extensions=hebrew}', "");
-    Expect(1, 64335, '\p{Is_Script_Extensions=		Hebrew}', "");
-    Expect(0, 64335, '\p{^Is_Script_Extensions=		Hebrew}', "");
-    Expect(0, 64335, '\P{Is_Script_Extensions=		Hebrew}', "");
-    Expect(1, 64335, '\P{^Is_Script_Extensions=		Hebrew}', "");
-    Expect(0, 64336, '\p{Is_Script_Extensions=		Hebrew}', "");
-    Expect(1, 64336, '\p{^Is_Script_Extensions=		Hebrew}', "");
-    Expect(1, 64336, '\P{Is_Script_Extensions=		Hebrew}', "");
-    Expect(0, 64336, '\P{^Is_Script_Extensions=		Hebrew}', "");
-    Error('\p{Is_Scx= /a/hebr}');
-    Error('\P{Is_Scx= /a/hebr}');
+    Expect(1, 64335, '\p{Is_Script_Extensions=	_Hebrew}', "");
+    Expect(0, 64335, '\p{^Is_Script_Extensions=	_Hebrew}', "");
+    Expect(0, 64335, '\P{Is_Script_Extensions=	_Hebrew}', "");
+    Expect(1, 64335, '\P{^Is_Script_Extensions=	_Hebrew}', "");
+    Expect(0, 64336, '\p{Is_Script_Extensions=	_Hebrew}', "");
+    Expect(1, 64336, '\p{^Is_Script_Extensions=	_Hebrew}', "");
+    Expect(1, 64336, '\P{Is_Script_Extensions=	_Hebrew}', "");
+    Expect(0, 64336, '\P{^Is_Script_Extensions=	_Hebrew}', "");
+    Error('\p{Is_Scx=:=	Hebr}');
+    Error('\P{Is_Scx=:=	Hebr}');
     Expect(1, 64335, '\p{Is_Scx=hebr}', "");
     Expect(0, 64335, '\p{^Is_Scx=hebr}', "");
     Expect(0, 64335, '\P{Is_Scx=hebr}', "");
@@ -145479,16 +146815,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64336, '\p{^Is_Scx=hebr}', "");
     Expect(1, 64336, '\P{Is_Scx=hebr}', "");
     Expect(0, 64336, '\P{^Is_Scx=hebr}', "");
-    Expect(1, 64335, '\p{Is_Scx=		hebr}', "");
-    Expect(0, 64335, '\p{^Is_Scx=		hebr}', "");
-    Expect(0, 64335, '\P{Is_Scx=		hebr}', "");
-    Expect(1, 64335, '\P{^Is_Scx=		hebr}', "");
-    Expect(0, 64336, '\p{Is_Scx=		hebr}', "");
-    Expect(1, 64336, '\p{^Is_Scx=		hebr}', "");
-    Expect(1, 64336, '\P{Is_Scx=		hebr}', "");
-    Expect(0, 64336, '\P{^Is_Scx=		hebr}', "");
-    Error('\p{Script_Extensions=_Hiragana/a/}');
-    Error('\P{Script_Extensions=_Hiragana/a/}');
+    Expect(1, 64335, '\p{Is_Scx= -Hebr}', "");
+    Expect(0, 64335, '\p{^Is_Scx= -Hebr}', "");
+    Expect(0, 64335, '\P{Is_Scx= -Hebr}', "");
+    Expect(1, 64335, '\P{^Is_Scx= -Hebr}', "");
+    Expect(0, 64336, '\p{Is_Scx= -Hebr}', "");
+    Expect(1, 64336, '\p{^Is_Scx= -Hebr}', "");
+    Expect(1, 64336, '\P{Is_Scx= -Hebr}', "");
+    Expect(0, 64336, '\P{^Is_Scx= -Hebr}', "");
+    Error('\p{Script_Extensions=/a/--HIRAGANA}');
+    Error('\P{Script_Extensions=/a/--HIRAGANA}');
     Expect(1, 127488, '\p{Script_Extensions=:\AHiragana\z:}', "");;
     Expect(0, 127489, '\p{Script_Extensions=:\AHiragana\z:}', "");;
     Expect(1, 127488, '\p{Script_Extensions=hiragana}', "");
@@ -145501,74 +146837,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127489, '\P{^Script_Extensions=hiragana}', "");
     Expect(1, 127488, '\p{Script_Extensions=:\Ahiragana\z:}', "");;
     Expect(0, 127489, '\p{Script_Extensions=:\Ahiragana\z:}', "");;
-    Expect(1, 127488, '\p{Script_Extensions=	-Hiragana}', "");
-    Expect(0, 127488, '\p{^Script_Extensions=	-Hiragana}', "");
-    Expect(0, 127488, '\P{Script_Extensions=	-Hiragana}', "");
-    Expect(1, 127488, '\P{^Script_Extensions=	-Hiragana}', "");
-    Expect(0, 127489, '\p{Script_Extensions=	-Hiragana}', "");
-    Expect(1, 127489, '\p{^Script_Extensions=	-Hiragana}', "");
-    Expect(1, 127489, '\P{Script_Extensions=	-Hiragana}', "");
-    Expect(0, 127489, '\P{^Script_Extensions=	-Hiragana}', "");
-    Error('\p{Scx=	/a/HIRA}');
-    Error('\P{Scx=	/a/HIRA}');
+    Expect(1, 127488, '\p{Script_Extensions=-_hiragana}', "");
+    Expect(0, 127488, '\p{^Script_Extensions=-_hiragana}', "");
+    Expect(0, 127488, '\P{Script_Extensions=-_hiragana}', "");
+    Expect(1, 127488, '\P{^Script_Extensions=-_hiragana}', "");
+    Expect(0, 127489, '\p{Script_Extensions=-_hiragana}', "");
+    Expect(1, 127489, '\p{^Script_Extensions=-_hiragana}', "");
+    Expect(1, 127489, '\P{Script_Extensions=-_hiragana}', "");
+    Expect(0, 127489, '\P{^Script_Extensions=-_hiragana}', "");
+    Error('\p{Scx=/a/hira}');
+    Error('\P{Scx=/a/hira}');
     Expect(1, 127488, '\p{Scx=:\AHira\z:}', "");;
     Expect(0, 127489, '\p{Scx=:\AHira\z:}', "");;
-    Expect(1, 127488, '\p{Scx:   hira}', "");
-    Expect(0, 127488, '\p{^Scx:   hira}', "");
-    Expect(0, 127488, '\P{Scx:   hira}', "");
-    Expect(1, 127488, '\P{^Scx:   hira}', "");
-    Expect(0, 127489, '\p{Scx:   hira}', "");
-    Expect(1, 127489, '\p{^Scx:   hira}', "");
-    Expect(1, 127489, '\P{Scx:   hira}', "");
-    Expect(0, 127489, '\P{^Scx:   hira}', "");
+    Expect(1, 127488, '\p{Scx=hira}', "");
+    Expect(0, 127488, '\p{^Scx=hira}', "");
+    Expect(0, 127488, '\P{Scx=hira}', "");
+    Expect(1, 127488, '\P{^Scx=hira}', "");
+    Expect(0, 127489, '\p{Scx=hira}', "");
+    Expect(1, 127489, '\p{^Scx=hira}', "");
+    Expect(1, 127489, '\P{Scx=hira}', "");
+    Expect(0, 127489, '\P{^Scx=hira}', "");
     Expect(1, 127488, '\p{Scx=:\Ahira\z:}', "");;
     Expect(0, 127489, '\p{Scx=:\Ahira\z:}', "");;
-    Expect(1, 127488, '\p{Scx:  	HIRA}', "");
-    Expect(0, 127488, '\p{^Scx:  	HIRA}', "");
-    Expect(0, 127488, '\P{Scx:  	HIRA}', "");
-    Expect(1, 127488, '\P{^Scx:  	HIRA}', "");
-    Expect(0, 127489, '\p{Scx:  	HIRA}', "");
-    Expect(1, 127489, '\p{^Scx:  	HIRA}', "");
-    Expect(1, 127489, '\P{Scx:  	HIRA}', "");
-    Expect(0, 127489, '\P{^Scx:  	HIRA}', "");
-    Error('\p{Is_Script_Extensions=:=_Hiragana}');
-    Error('\P{Is_Script_Extensions=:=_Hiragana}');
-    Expect(1, 127488, '\p{Is_Script_Extensions=hiragana}', "");
-    Expect(0, 127488, '\p{^Is_Script_Extensions=hiragana}', "");
-    Expect(0, 127488, '\P{Is_Script_Extensions=hiragana}', "");
-    Expect(1, 127488, '\P{^Is_Script_Extensions=hiragana}', "");
-    Expect(0, 127489, '\p{Is_Script_Extensions=hiragana}', "");
-    Expect(1, 127489, '\p{^Is_Script_Extensions=hiragana}', "");
-    Expect(1, 127489, '\P{Is_Script_Extensions=hiragana}', "");
-    Expect(0, 127489, '\P{^Is_Script_Extensions=hiragana}', "");
-    Expect(1, 127488, '\p{Is_Script_Extensions=- Hiragana}', "");
-    Expect(0, 127488, '\p{^Is_Script_Extensions=- Hiragana}', "");
-    Expect(0, 127488, '\P{Is_Script_Extensions=- Hiragana}', "");
-    Expect(1, 127488, '\P{^Is_Script_Extensions=- Hiragana}', "");
-    Expect(0, 127489, '\p{Is_Script_Extensions=- Hiragana}', "");
-    Expect(1, 127489, '\p{^Is_Script_Extensions=- Hiragana}', "");
-    Expect(1, 127489, '\P{Is_Script_Extensions=- Hiragana}', "");
-    Expect(0, 127489, '\P{^Is_Script_Extensions=- Hiragana}', "");
-    Error('\p{Is_Scx=-	hira:=}');
-    Error('\P{Is_Scx=-	hira:=}');
-    Expect(1, 127488, '\p{Is_Scx=hira}', "");
-    Expect(0, 127488, '\p{^Is_Scx=hira}', "");
-    Expect(0, 127488, '\P{Is_Scx=hira}', "");
-    Expect(1, 127488, '\P{^Is_Scx=hira}', "");
-    Expect(0, 127489, '\p{Is_Scx=hira}', "");
-    Expect(1, 127489, '\p{^Is_Scx=hira}', "");
-    Expect(1, 127489, '\P{Is_Scx=hira}', "");
-    Expect(0, 127489, '\P{^Is_Scx=hira}', "");
-    Expect(1, 127488, '\p{Is_Scx:	_ Hira}', "");
-    Expect(0, 127488, '\p{^Is_Scx:	_ Hira}', "");
-    Expect(0, 127488, '\P{Is_Scx:	_ Hira}', "");
-    Expect(1, 127488, '\P{^Is_Scx:	_ Hira}', "");
-    Expect(0, 127489, '\p{Is_Scx:	_ Hira}', "");
-    Expect(1, 127489, '\p{^Is_Scx:	_ Hira}', "");
-    Expect(1, 127489, '\P{Is_Scx:	_ Hira}', "");
-    Expect(0, 127489, '\P{^Is_Scx:	_ Hira}', "");
-    Error('\p{Script_Extensions=_-anatolian_Hieroglyphs/a/}');
-    Error('\P{Script_Extensions=_-anatolian_Hieroglyphs/a/}');
+    Expect(1, 127488, '\p{Scx=_hira}', "");
+    Expect(0, 127488, '\p{^Scx=_hira}', "");
+    Expect(0, 127488, '\P{Scx=_hira}', "");
+    Expect(1, 127488, '\P{^Scx=_hira}', "");
+    Expect(0, 127489, '\p{Scx=_hira}', "");
+    Expect(1, 127489, '\p{^Scx=_hira}', "");
+    Expect(1, 127489, '\P{Scx=_hira}', "");
+    Expect(0, 127489, '\P{^Scx=_hira}', "");
+    Error('\p{Is_Script_Extensions=-:=hiragana}');
+    Error('\P{Is_Script_Extensions=-:=hiragana}');
+    Expect(1, 127488, '\p{Is_Script_Extensions:	hiragana}', "");
+    Expect(0, 127488, '\p{^Is_Script_Extensions:	hiragana}', "");
+    Expect(0, 127488, '\P{Is_Script_Extensions:	hiragana}', "");
+    Expect(1, 127488, '\P{^Is_Script_Extensions:	hiragana}', "");
+    Expect(0, 127489, '\p{Is_Script_Extensions:	hiragana}', "");
+    Expect(1, 127489, '\p{^Is_Script_Extensions:	hiragana}', "");
+    Expect(1, 127489, '\P{Is_Script_Extensions:	hiragana}', "");
+    Expect(0, 127489, '\P{^Is_Script_Extensions:	hiragana}', "");
+    Expect(1, 127488, '\p{Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(0, 127488, '\p{^Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(0, 127488, '\P{Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(1, 127488, '\P{^Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(0, 127489, '\p{Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(1, 127489, '\p{^Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(1, 127489, '\P{Is_Script_Extensions=-_HIRAGANA}', "");
+    Expect(0, 127489, '\P{^Is_Script_Extensions=-_HIRAGANA}', "");
+    Error('\p{Is_Scx=- hira/a/}');
+    Error('\P{Is_Scx=- hira/a/}');
+    Expect(1, 127488, '\p{Is_Scx:	hira}', "");
+    Expect(0, 127488, '\p{^Is_Scx:	hira}', "");
+    Expect(0, 127488, '\P{Is_Scx:	hira}', "");
+    Expect(1, 127488, '\P{^Is_Scx:	hira}', "");
+    Expect(0, 127489, '\p{Is_Scx:	hira}', "");
+    Expect(1, 127489, '\p{^Is_Scx:	hira}', "");
+    Expect(1, 127489, '\P{Is_Scx:	hira}', "");
+    Expect(0, 127489, '\P{^Is_Scx:	hira}', "");
+    Expect(1, 127488, '\p{Is_Scx:     Hira}', "");
+    Expect(0, 127488, '\p{^Is_Scx:     Hira}', "");
+    Expect(0, 127488, '\P{Is_Scx:     Hira}', "");
+    Expect(1, 127488, '\P{^Is_Scx:     Hira}', "");
+    Expect(0, 127489, '\p{Is_Scx:     Hira}', "");
+    Expect(1, 127489, '\p{^Is_Scx:     Hira}', "");
+    Expect(1, 127489, '\P{Is_Scx:     Hira}', "");
+    Expect(0, 127489, '\P{^Is_Scx:     Hira}', "");
+    Error('\p{Script_Extensions=:=-_Anatolian_Hieroglyphs}');
+    Error('\P{Script_Extensions=:=-_Anatolian_Hieroglyphs}');
     Expect(1, 83526, '\p{Script_Extensions=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(0, 83527, '\p{Script_Extensions=:\AAnatolian_Hieroglyphs\z:}', "");;
     Expect(1, 83526, '\p{Script_Extensions=anatolianhieroglyphs}', "");
@@ -145581,74 +146917,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 83527, '\P{^Script_Extensions=anatolianhieroglyphs}', "");
     Expect(1, 83526, '\p{Script_Extensions=:\Aanatolianhieroglyphs\z:}', "");;
     Expect(0, 83527, '\p{Script_Extensions=:\Aanatolianhieroglyphs\z:}', "");;
-    Expect(1, 83526, '\p{Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(0, 83526, '\p{^Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(0, 83526, '\P{Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(1, 83526, '\P{^Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(0, 83527, '\p{Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(1, 83527, '\p{^Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(1, 83527, '\P{Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Expect(0, 83527, '\P{^Script_Extensions=  Anatolian_HIEROGLYPHS}', "");
-    Error('\p{Scx=	/a/Hluw}');
-    Error('\P{Scx=	/a/Hluw}');
+    Expect(1, 83526, '\p{Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(0, 83526, '\p{^Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(0, 83526, '\P{Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(1, 83526, '\P{^Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(0, 83527, '\p{Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(1, 83527, '\p{^Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(1, 83527, '\P{Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Expect(0, 83527, '\P{^Script_Extensions:   _-anatolian_hieroglyphs}', "");
+    Error('\p{Scx=_:=Hluw}');
+    Error('\P{Scx=_:=Hluw}');
     Expect(1, 83526, '\p{Scx=:\AHluw\z:}', "");;
     Expect(0, 83527, '\p{Scx=:\AHluw\z:}', "");;
-    Expect(1, 83526, '\p{Scx:	hluw}', "");
-    Expect(0, 83526, '\p{^Scx:	hluw}', "");
-    Expect(0, 83526, '\P{Scx:	hluw}', "");
-    Expect(1, 83526, '\P{^Scx:	hluw}', "");
-    Expect(0, 83527, '\p{Scx:	hluw}', "");
-    Expect(1, 83527, '\p{^Scx:	hluw}', "");
-    Expect(1, 83527, '\P{Scx:	hluw}', "");
-    Expect(0, 83527, '\P{^Scx:	hluw}', "");
+    Expect(1, 83526, '\p{Scx=hluw}', "");
+    Expect(0, 83526, '\p{^Scx=hluw}', "");
+    Expect(0, 83526, '\P{Scx=hluw}', "");
+    Expect(1, 83526, '\P{^Scx=hluw}', "");
+    Expect(0, 83527, '\p{Scx=hluw}', "");
+    Expect(1, 83527, '\p{^Scx=hluw}', "");
+    Expect(1, 83527, '\P{Scx=hluw}', "");
+    Expect(0, 83527, '\P{^Scx=hluw}', "");
     Expect(1, 83526, '\p{Scx=:\Ahluw\z:}', "");;
     Expect(0, 83527, '\p{Scx=:\Ahluw\z:}', "");;
-    Expect(1, 83526, '\p{Scx=_-Hluw}', "");
-    Expect(0, 83526, '\p{^Scx=_-Hluw}', "");
-    Expect(0, 83526, '\P{Scx=_-Hluw}', "");
-    Expect(1, 83526, '\P{^Scx=_-Hluw}', "");
-    Expect(0, 83527, '\p{Scx=_-Hluw}', "");
-    Expect(1, 83527, '\p{^Scx=_-Hluw}', "");
-    Expect(1, 83527, '\P{Scx=_-Hluw}', "");
-    Expect(0, 83527, '\P{^Scx=_-Hluw}', "");
-    Error('\p{Is_Script_Extensions:	:=ANATOLIAN_Hieroglyphs}');
-    Error('\P{Is_Script_Extensions:	:=ANATOLIAN_Hieroglyphs}');
-    Expect(1, 83526, '\p{Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(0, 83526, '\p{^Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(0, 83526, '\P{Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(1, 83526, '\P{^Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(0, 83527, '\p{Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(1, 83527, '\p{^Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(1, 83527, '\P{Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(0, 83527, '\P{^Is_Script_Extensions: anatolianhieroglyphs}', "");
-    Expect(1, 83526, '\p{Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(0, 83526, '\p{^Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(0, 83526, '\P{Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(1, 83526, '\P{^Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(0, 83527, '\p{Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(1, 83527, '\p{^Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(1, 83527, '\P{Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Expect(0, 83527, '\P{^Is_Script_Extensions=  ANATOLIAN_HIEROGLYPHS}', "");
-    Error('\p{Is_Scx=_/a/Hluw}');
-    Error('\P{Is_Scx=_/a/Hluw}');
-    Expect(1, 83526, '\p{Is_Scx=hluw}', "");
-    Expect(0, 83526, '\p{^Is_Scx=hluw}', "");
-    Expect(0, 83526, '\P{Is_Scx=hluw}', "");
-    Expect(1, 83526, '\P{^Is_Scx=hluw}', "");
-    Expect(0, 83527, '\p{Is_Scx=hluw}', "");
-    Expect(1, 83527, '\p{^Is_Scx=hluw}', "");
-    Expect(1, 83527, '\P{Is_Scx=hluw}', "");
-    Expect(0, 83527, '\P{^Is_Scx=hluw}', "");
-    Expect(1, 83526, '\p{Is_Scx= 	Hluw}', "");
-    Expect(0, 83526, '\p{^Is_Scx= 	Hluw}', "");
-    Expect(0, 83526, '\P{Is_Scx= 	Hluw}', "");
-    Expect(1, 83526, '\P{^Is_Scx= 	Hluw}', "");
-    Expect(0, 83527, '\p{Is_Scx= 	Hluw}', "");
-    Expect(1, 83527, '\p{^Is_Scx= 	Hluw}', "");
-    Expect(1, 83527, '\P{Is_Scx= 	Hluw}', "");
-    Expect(0, 83527, '\P{^Is_Scx= 	Hluw}', "");
-    Error('\p{Script_Extensions=- PAHAWH_Hmong/a/}');
-    Error('\P{Script_Extensions=- PAHAWH_Hmong/a/}');
+    Expect(1, 83526, '\p{Scx= Hluw}', "");
+    Expect(0, 83526, '\p{^Scx= Hluw}', "");
+    Expect(0, 83526, '\P{Scx= Hluw}', "");
+    Expect(1, 83526, '\P{^Scx= Hluw}', "");
+    Expect(0, 83527, '\p{Scx= Hluw}', "");
+    Expect(1, 83527, '\p{^Scx= Hluw}', "");
+    Expect(1, 83527, '\P{Scx= Hluw}', "");
+    Expect(0, 83527, '\P{^Scx= Hluw}', "");
+    Error('\p{Is_Script_Extensions= 	ANATOLIAN_hieroglyphs:=}');
+    Error('\P{Is_Script_Extensions= 	ANATOLIAN_hieroglyphs:=}');
+    Expect(1, 83526, '\p{Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(0, 83526, '\p{^Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(0, 83526, '\P{Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(1, 83526, '\P{^Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(0, 83527, '\p{Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(1, 83527, '\p{^Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(1, 83527, '\P{Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(0, 83527, '\P{^Is_Script_Extensions=anatolianhieroglyphs}', "");
+    Expect(1, 83526, '\p{Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83526, '\p{^Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83526, '\P{Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(1, 83526, '\P{^Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83527, '\p{Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(1, 83527, '\p{^Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(1, 83527, '\P{Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Expect(0, 83527, '\P{^Is_Script_Extensions=  anatolian_HIEROGLYPHS}', "");
+    Error('\p{Is_Scx=--hluw:=}');
+    Error('\P{Is_Scx=--hluw:=}');
+    Expect(1, 83526, '\p{Is_Scx:   hluw}', "");
+    Expect(0, 83526, '\p{^Is_Scx:   hluw}', "");
+    Expect(0, 83526, '\P{Is_Scx:   hluw}', "");
+    Expect(1, 83526, '\P{^Is_Scx:   hluw}', "");
+    Expect(0, 83527, '\p{Is_Scx:   hluw}', "");
+    Expect(1, 83527, '\p{^Is_Scx:   hluw}', "");
+    Expect(1, 83527, '\P{Is_Scx:   hluw}', "");
+    Expect(0, 83527, '\P{^Is_Scx:   hluw}', "");
+    Expect(1, 83526, '\p{Is_Scx=_-HLUW}', "");
+    Expect(0, 83526, '\p{^Is_Scx=_-HLUW}', "");
+    Expect(0, 83526, '\P{Is_Scx=_-HLUW}', "");
+    Expect(1, 83526, '\P{^Is_Scx=_-HLUW}', "");
+    Expect(0, 83527, '\p{Is_Scx=_-HLUW}', "");
+    Expect(1, 83527, '\p{^Is_Scx=_-HLUW}', "");
+    Expect(1, 83527, '\P{Is_Scx=_-HLUW}', "");
+    Expect(0, 83527, '\P{^Is_Scx=_-HLUW}', "");
+    Error('\p{Script_Extensions=-/a/Pahawh_Hmong}');
+    Error('\P{Script_Extensions=-/a/Pahawh_Hmong}');
     Expect(1, 93071, '\p{Script_Extensions=:\APahawh_Hmong\z:}', "");;
     Expect(0, 93072, '\p{Script_Extensions=:\APahawh_Hmong\z:}', "");;
     Expect(1, 93071, '\p{Script_Extensions=pahawhhmong}', "");
@@ -145661,16 +146997,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93072, '\P{^Script_Extensions=pahawhhmong}', "");
     Expect(1, 93071, '\p{Script_Extensions=:\Apahawhhmong\z:}', "");;
     Expect(0, 93072, '\p{Script_Extensions=:\Apahawhhmong\z:}', "");;
-    Expect(1, 93071, '\p{Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(0, 93071, '\p{^Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(0, 93071, '\P{Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(1, 93071, '\P{^Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(0, 93072, '\p{Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(1, 93072, '\p{^Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(1, 93072, '\P{Script_Extensions=	_Pahawh_hmong}', "");
-    Expect(0, 93072, '\P{^Script_Extensions=	_Pahawh_hmong}', "");
-    Error('\p{Scx=	:=hmng}');
-    Error('\P{Scx=	:=hmng}');
+    Expect(1, 93071, '\p{Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(0, 93071, '\p{^Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(0, 93071, '\P{Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(1, 93071, '\P{^Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(0, 93072, '\p{Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(1, 93072, '\p{^Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(1, 93072, '\P{Script_Extensions= 	Pahawh_HMONG}', "");
+    Expect(0, 93072, '\P{^Script_Extensions= 	Pahawh_HMONG}', "");
+    Error('\p{Scx=	-Hmng:=}');
+    Error('\P{Scx=	-Hmng:=}');
     Expect(1, 93071, '\p{Scx=:\AHmng\z:}', "");;
     Expect(0, 93072, '\p{Scx=:\AHmng\z:}', "");;
     Expect(1, 93071, '\p{Scx=hmng}', "");
@@ -145683,34 +147019,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93072, '\P{^Scx=hmng}', "");
     Expect(1, 93071, '\p{Scx=:\Ahmng\z:}', "");;
     Expect(0, 93072, '\p{Scx=:\Ahmng\z:}', "");;
-    Expect(1, 93071, '\p{Scx:	 Hmng}', "");
-    Expect(0, 93071, '\p{^Scx:	 Hmng}', "");
-    Expect(0, 93071, '\P{Scx:	 Hmng}', "");
-    Expect(1, 93071, '\P{^Scx:	 Hmng}', "");
-    Expect(0, 93072, '\p{Scx:	 Hmng}', "");
-    Expect(1, 93072, '\p{^Scx:	 Hmng}', "");
-    Expect(1, 93072, '\P{Scx:	 Hmng}', "");
-    Expect(0, 93072, '\P{^Scx:	 Hmng}', "");
-    Error('\p{Is_Script_Extensions:	/a/	-PAHAWH_Hmong}');
-    Error('\P{Is_Script_Extensions:	/a/	-PAHAWH_Hmong}');
-    Expect(1, 93071, '\p{Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(0, 93071, '\p{^Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(0, 93071, '\P{Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(1, 93071, '\P{^Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(0, 93072, '\p{Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(1, 93072, '\p{^Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(1, 93072, '\P{Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(0, 93072, '\P{^Is_Script_Extensions:	pahawhhmong}', "");
-    Expect(1, 93071, '\p{Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(0, 93071, '\p{^Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(0, 93071, '\P{Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(1, 93071, '\P{^Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(0, 93072, '\p{Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(1, 93072, '\p{^Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(1, 93072, '\P{Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Expect(0, 93072, '\P{^Is_Script_Extensions=_Pahawh_Hmong}', "");
-    Error('\p{Is_Scx=_ Hmng/a/}');
-    Error('\P{Is_Scx=_ Hmng/a/}');
+    Expect(1, 93071, '\p{Scx=-HMNG}', "");
+    Expect(0, 93071, '\p{^Scx=-HMNG}', "");
+    Expect(0, 93071, '\P{Scx=-HMNG}', "");
+    Expect(1, 93071, '\P{^Scx=-HMNG}', "");
+    Expect(0, 93072, '\p{Scx=-HMNG}', "");
+    Expect(1, 93072, '\p{^Scx=-HMNG}', "");
+    Expect(1, 93072, '\P{Scx=-HMNG}', "");
+    Expect(0, 93072, '\P{^Scx=-HMNG}', "");
+    Error('\p{Is_Script_Extensions=:=_-Pahawh_HMONG}');
+    Error('\P{Is_Script_Extensions=:=_-Pahawh_HMONG}');
+    Expect(1, 93071, '\p{Is_Script_Extensions=pahawhhmong}', "");
+    Expect(0, 93071, '\p{^Is_Script_Extensions=pahawhhmong}', "");
+    Expect(0, 93071, '\P{Is_Script_Extensions=pahawhhmong}', "");
+    Expect(1, 93071, '\P{^Is_Script_Extensions=pahawhhmong}', "");
+    Expect(0, 93072, '\p{Is_Script_Extensions=pahawhhmong}', "");
+    Expect(1, 93072, '\p{^Is_Script_Extensions=pahawhhmong}', "");
+    Expect(1, 93072, '\P{Is_Script_Extensions=pahawhhmong}', "");
+    Expect(0, 93072, '\P{^Is_Script_Extensions=pahawhhmong}', "");
+    Expect(1, 93071, '\p{Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(0, 93071, '\p{^Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(0, 93071, '\P{Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(1, 93071, '\P{^Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(0, 93072, '\p{Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(1, 93072, '\p{^Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(1, 93072, '\P{Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Expect(0, 93072, '\P{^Is_Script_Extensions=__PAHAWH_hmong}', "");
+    Error('\p{Is_Scx= HMNG/a/}');
+    Error('\P{Is_Scx= HMNG/a/}');
     Expect(1, 93071, '\p{Is_Scx=hmng}', "");
     Expect(0, 93071, '\p{^Is_Scx=hmng}', "");
     Expect(0, 93071, '\P{Is_Scx=hmng}', "");
@@ -145719,60 +147055,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93072, '\p{^Is_Scx=hmng}', "");
     Expect(1, 93072, '\P{Is_Scx=hmng}', "");
     Expect(0, 93072, '\P{^Is_Scx=hmng}', "");
-    Expect(1, 93071, '\p{Is_Scx= _hmng}', "");
-    Expect(0, 93071, '\p{^Is_Scx= _hmng}', "");
-    Expect(0, 93071, '\P{Is_Scx= _hmng}', "");
-    Expect(1, 93071, '\P{^Is_Scx= _hmng}', "");
-    Expect(0, 93072, '\p{Is_Scx= _hmng}', "");
-    Expect(1, 93072, '\p{^Is_Scx= _hmng}', "");
-    Expect(1, 93072, '\P{Is_Scx= _hmng}', "");
-    Expect(0, 93072, '\P{^Is_Scx= _hmng}', "");
-    Error('\p{Script_Extensions=__NYIAKENG_Puachue_Hmong/a/}');
-    Error('\P{Script_Extensions=__NYIAKENG_Puachue_Hmong/a/}');
+    Expect(1, 93071, '\p{Is_Scx=_Hmng}', "");
+    Expect(0, 93071, '\p{^Is_Scx=_Hmng}', "");
+    Expect(0, 93071, '\P{Is_Scx=_Hmng}', "");
+    Expect(1, 93071, '\P{^Is_Scx=_Hmng}', "");
+    Expect(0, 93072, '\p{Is_Scx=_Hmng}', "");
+    Expect(1, 93072, '\p{^Is_Scx=_Hmng}', "");
+    Expect(1, 93072, '\P{Is_Scx=_Hmng}', "");
+    Expect(0, 93072, '\P{^Is_Scx=_Hmng}', "");
+    Error('\p{Script_Extensions=/a/-_Nyiakeng_PUACHUE_Hmong}');
+    Error('\P{Script_Extensions=/a/-_Nyiakeng_PUACHUE_Hmong}');
     Expect(1, 123215, '\p{Script_Extensions=:\ANyiakeng_Puachue_Hmong\z:}', "");;
     Expect(0, 123216, '\p{Script_Extensions=:\ANyiakeng_Puachue_Hmong\z:}', "");;
-    Expect(1, 123215, '\p{Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\p{^Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(0, 123215, '\P{Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\P{^Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\p{Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\p{^Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(1, 123216, '\P{Script_Extensions:nyiakengpuachuehmong}', "");
-    Expect(0, 123216, '\P{^Script_Extensions:nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\p{Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\p{^Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(0, 123215, '\P{Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(1, 123215, '\P{^Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\p{Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\p{^Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(1, 123216, '\P{Script_Extensions=nyiakengpuachuehmong}', "");
+    Expect(0, 123216, '\P{^Script_Extensions=nyiakengpuachuehmong}', "");
     Expect(1, 123215, '\p{Script_Extensions=:\Anyiakengpuachuehmong\z:}', "");;
     Expect(0, 123216, '\p{Script_Extensions=:\Anyiakengpuachuehmong\z:}', "");;
-    Expect(1, 123215, '\p{Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(0, 123215, '\p{^Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(0, 123215, '\P{Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(1, 123215, '\P{^Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(0, 123216, '\p{Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(1, 123216, '\p{^Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(1, 123216, '\P{Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Expect(0, 123216, '\P{^Script_Extensions=		NYIAKENG_puachue_HMONG}', "");
-    Error('\p{Scx=/a/-Hmnp}');
-    Error('\P{Scx=/a/-Hmnp}');
+    Expect(1, 123215, '\p{Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(0, 123215, '\p{^Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(0, 123215, '\P{Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(1, 123215, '\P{^Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(0, 123216, '\p{Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(1, 123216, '\p{^Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(1, 123216, '\P{Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Expect(0, 123216, '\P{^Script_Extensions=	_NYIAKENG_Puachue_HMONG}', "");
+    Error('\p{Scx=_Hmnp/a/}');
+    Error('\P{Scx=_Hmnp/a/}');
     Expect(1, 123215, '\p{Scx=:\AHmnp\z:}', "");;
     Expect(0, 123216, '\p{Scx=:\AHmnp\z:}', "");;
-    Expect(1, 123215, '\p{Scx:hmnp}', "");
-    Expect(0, 123215, '\p{^Scx:hmnp}', "");
-    Expect(0, 123215, '\P{Scx:hmnp}', "");
-    Expect(1, 123215, '\P{^Scx:hmnp}', "");
-    Expect(0, 123216, '\p{Scx:hmnp}', "");
-    Expect(1, 123216, '\p{^Scx:hmnp}', "");
-    Expect(1, 123216, '\P{Scx:hmnp}', "");
-    Expect(0, 123216, '\P{^Scx:hmnp}', "");
+    Expect(1, 123215, '\p{Scx=hmnp}', "");
+    Expect(0, 123215, '\p{^Scx=hmnp}', "");
+    Expect(0, 123215, '\P{Scx=hmnp}', "");
+    Expect(1, 123215, '\P{^Scx=hmnp}', "");
+    Expect(0, 123216, '\p{Scx=hmnp}', "");
+    Expect(1, 123216, '\p{^Scx=hmnp}', "");
+    Expect(1, 123216, '\P{Scx=hmnp}', "");
+    Expect(0, 123216, '\P{^Scx=hmnp}', "");
     Expect(1, 123215, '\p{Scx=:\Ahmnp\z:}', "");;
     Expect(0, 123216, '\p{Scx=:\Ahmnp\z:}', "");;
-    Expect(1, 123215, '\p{Scx= 	hmnp}', "");
-    Expect(0, 123215, '\p{^Scx= 	hmnp}', "");
-    Expect(0, 123215, '\P{Scx= 	hmnp}', "");
-    Expect(1, 123215, '\P{^Scx= 	hmnp}', "");
-    Expect(0, 123216, '\p{Scx= 	hmnp}', "");
-    Expect(1, 123216, '\p{^Scx= 	hmnp}', "");
-    Expect(1, 123216, '\P{Scx= 	hmnp}', "");
-    Expect(0, 123216, '\P{^Scx= 	hmnp}', "");
-    Error('\p{Is_Script_Extensions=:=-Nyiakeng_PUACHUE_HMONG}');
-    Error('\P{Is_Script_Extensions=:=-Nyiakeng_PUACHUE_HMONG}');
+    Expect(1, 123215, '\p{Scx=--hmnp}', "");
+    Expect(0, 123215, '\p{^Scx=--hmnp}', "");
+    Expect(0, 123215, '\P{Scx=--hmnp}', "");
+    Expect(1, 123215, '\P{^Scx=--hmnp}', "");
+    Expect(0, 123216, '\p{Scx=--hmnp}', "");
+    Expect(1, 123216, '\p{^Scx=--hmnp}', "");
+    Expect(1, 123216, '\P{Scx=--hmnp}', "");
+    Expect(0, 123216, '\P{^Scx=--hmnp}', "");
+    Error('\p{Is_Script_Extensions=	/a/NYIAKENG_PUACHUE_Hmong}');
+    Error('\P{Is_Script_Extensions=	/a/NYIAKENG_PUACHUE_Hmong}');
     Expect(1, 123215, '\p{Is_Script_Extensions=nyiakengpuachuehmong}', "");
     Expect(0, 123215, '\p{^Is_Script_Extensions=nyiakengpuachuehmong}', "");
     Expect(0, 123215, '\P{Is_Script_Extensions=nyiakengpuachuehmong}', "");
@@ -145781,16 +147117,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123216, '\p{^Is_Script_Extensions=nyiakengpuachuehmong}', "");
     Expect(1, 123216, '\P{Is_Script_Extensions=nyiakengpuachuehmong}', "");
     Expect(0, 123216, '\P{^Is_Script_Extensions=nyiakengpuachuehmong}', "");
-    Expect(1, 123215, '\p{Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(0, 123215, '\p{^Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(0, 123215, '\P{Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(1, 123215, '\P{^Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(0, 123216, '\p{Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(1, 123216, '\p{^Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(1, 123216, '\P{Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Expect(0, 123216, '\P{^Is_Script_Extensions=- nyiakeng_puachue_hmong}', "");
-    Error('\p{Is_Scx=	Hmnp/a/}');
-    Error('\P{Is_Scx=	Hmnp/a/}');
+    Expect(1, 123215, '\p{Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123215, '\p{^Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123215, '\P{Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123215, '\P{^Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123216, '\p{Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123216, '\p{^Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(1, 123216, '\P{Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Expect(0, 123216, '\P{^Is_Script_Extensions=__nyiakeng_Puachue_HMONG}', "");
+    Error('\p{Is_Scx= /a/Hmnp}');
+    Error('\P{Is_Scx= /a/Hmnp}');
     Expect(1, 123215, '\p{Is_Scx=hmnp}', "");
     Expect(0, 123215, '\p{^Is_Scx=hmnp}', "");
     Expect(0, 123215, '\P{Is_Scx=hmnp}', "");
@@ -145799,24 +147135,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123216, '\p{^Is_Scx=hmnp}', "");
     Expect(1, 123216, '\P{Is_Scx=hmnp}', "");
     Expect(0, 123216, '\P{^Is_Scx=hmnp}', "");
-    Expect(1, 123215, '\p{Is_Scx= Hmnp}', "");
-    Expect(0, 123215, '\p{^Is_Scx= Hmnp}', "");
-    Expect(0, 123215, '\P{Is_Scx= Hmnp}', "");
-    Expect(1, 123215, '\P{^Is_Scx= Hmnp}', "");
-    Expect(0, 123216, '\p{Is_Scx= Hmnp}', "");
-    Expect(1, 123216, '\p{^Is_Scx= Hmnp}', "");
-    Expect(1, 123216, '\P{Is_Scx= Hmnp}', "");
-    Expect(0, 123216, '\P{^Is_Scx= Hmnp}', "");
+    Expect(1, 123215, '\p{Is_Scx=-	Hmnp}', "");
+    Expect(0, 123215, '\p{^Is_Scx=-	Hmnp}', "");
+    Expect(0, 123215, '\P{Is_Scx=-	Hmnp}', "");
+    Expect(1, 123215, '\P{^Is_Scx=-	Hmnp}', "");
+    Expect(0, 123216, '\p{Is_Scx=-	Hmnp}', "");
+    Expect(1, 123216, '\p{^Is_Scx=-	Hmnp}', "");
+    Expect(1, 123216, '\P{Is_Scx=-	Hmnp}', "");
+    Expect(0, 123216, '\P{^Is_Scx=-	Hmnp}', "");
     Error('\p{Script_Extensions=Katakana_Or_Hiragana}');
     Error('\P{Script_Extensions=Katakana_Or_Hiragana}');
-    Error('\p{Scx=Hrkt}');
-    Error('\P{Scx=Hrkt}');
+    Error('\p{Scx:	Hrkt}');
+    Error('\P{Scx:	Hrkt}');
     Error('\p{Is_Script_Extensions=Katakana_Or_Hiragana}');
     Error('\P{Is_Script_Extensions=Katakana_Or_Hiragana}');
-    Error('\p{Is_Scx=Hrkt}');
-    Error('\P{Is_Scx=Hrkt}');
-    Error('\p{Script_Extensions=/a/OLD_hungarian}');
-    Error('\P{Script_Extensions=/a/OLD_hungarian}');
+    Error('\p{Is_Scx:   Hrkt}');
+    Error('\P{Is_Scx:   Hrkt}');
+    Error('\p{Script_Extensions=	-OLD_HUNGARIAN/a/}');
+    Error('\P{Script_Extensions=	-OLD_HUNGARIAN/a/}');
     Expect(1, 68863, '\p{Script_Extensions=:\AOld_Hungarian\z:}', "");;
     Expect(0, 68864, '\p{Script_Extensions=:\AOld_Hungarian\z:}', "");;
     Expect(1, 68863, '\p{Script_Extensions=oldhungarian}', "");
@@ -145829,16 +147165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68864, '\P{^Script_Extensions=oldhungarian}', "");
     Expect(1, 68863, '\p{Script_Extensions=:\Aoldhungarian\z:}', "");;
     Expect(0, 68864, '\p{Script_Extensions=:\Aoldhungarian\z:}', "");;
-    Expect(1, 68863, '\p{Script_Extensions=_Old_hungarian}', "");
-    Expect(0, 68863, '\p{^Script_Extensions=_Old_hungarian}', "");
-    Expect(0, 68863, '\P{Script_Extensions=_Old_hungarian}', "");
-    Expect(1, 68863, '\P{^Script_Extensions=_Old_hungarian}', "");
-    Expect(0, 68864, '\p{Script_Extensions=_Old_hungarian}', "");
-    Expect(1, 68864, '\p{^Script_Extensions=_Old_hungarian}', "");
-    Expect(1, 68864, '\P{Script_Extensions=_Old_hungarian}', "");
-    Expect(0, 68864, '\P{^Script_Extensions=_Old_hungarian}', "");
-    Error('\p{Scx= -hung:=}');
-    Error('\P{Scx= -hung:=}');
+    Expect(1, 68863, '\p{Script_Extensions=-_old_Hungarian}', "");
+    Expect(0, 68863, '\p{^Script_Extensions=-_old_Hungarian}', "");
+    Expect(0, 68863, '\P{Script_Extensions=-_old_Hungarian}', "");
+    Expect(1, 68863, '\P{^Script_Extensions=-_old_Hungarian}', "");
+    Expect(0, 68864, '\p{Script_Extensions=-_old_Hungarian}', "");
+    Expect(1, 68864, '\p{^Script_Extensions=-_old_Hungarian}', "");
+    Expect(1, 68864, '\P{Script_Extensions=-_old_Hungarian}', "");
+    Expect(0, 68864, '\P{^Script_Extensions=-_old_Hungarian}', "");
+    Error('\p{Scx=:=-Hung}');
+    Error('\P{Scx=:=-Hung}');
     Expect(1, 68863, '\p{Scx=:\AHung\z:}', "");;
     Expect(0, 68864, '\p{Scx=:\AHung\z:}', "");;
     Expect(1, 68863, '\p{Scx=hung}', "");
@@ -145851,16 +147187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68864, '\P{^Scx=hung}', "");
     Expect(1, 68863, '\p{Scx=:\Ahung\z:}', "");;
     Expect(0, 68864, '\p{Scx=:\Ahung\z:}', "");;
-    Expect(1, 68863, '\p{Scx= -Hung}', "");
-    Expect(0, 68863, '\p{^Scx= -Hung}', "");
-    Expect(0, 68863, '\P{Scx= -Hung}', "");
-    Expect(1, 68863, '\P{^Scx= -Hung}', "");
-    Expect(0, 68864, '\p{Scx= -Hung}', "");
-    Expect(1, 68864, '\p{^Scx= -Hung}', "");
-    Expect(1, 68864, '\P{Scx= -Hung}', "");
-    Expect(0, 68864, '\P{^Scx= -Hung}', "");
-    Error('\p{Is_Script_Extensions=-old_Hungarian:=}');
-    Error('\P{Is_Script_Extensions=-old_Hungarian:=}');
+    Expect(1, 68863, '\p{Scx=__Hung}', "");
+    Expect(0, 68863, '\p{^Scx=__Hung}', "");
+    Expect(0, 68863, '\P{Scx=__Hung}', "");
+    Expect(1, 68863, '\P{^Scx=__Hung}', "");
+    Expect(0, 68864, '\p{Scx=__Hung}', "");
+    Expect(1, 68864, '\p{^Scx=__Hung}', "");
+    Expect(1, 68864, '\P{Scx=__Hung}', "");
+    Expect(0, 68864, '\P{^Scx=__Hung}', "");
+    Error('\p{Is_Script_Extensions=-Old_Hungarian:=}');
+    Error('\P{Is_Script_Extensions=-Old_Hungarian:=}');
     Expect(1, 68863, '\p{Is_Script_Extensions=oldhungarian}', "");
     Expect(0, 68863, '\p{^Is_Script_Extensions=oldhungarian}', "");
     Expect(0, 68863, '\P{Is_Script_Extensions=oldhungarian}', "");
@@ -145869,34 +147205,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68864, '\p{^Is_Script_Extensions=oldhungarian}', "");
     Expect(1, 68864, '\P{Is_Script_Extensions=oldhungarian}', "");
     Expect(0, 68864, '\P{^Is_Script_Extensions=oldhungarian}', "");
-    Expect(1, 68863, '\p{Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(0, 68863, '\p{^Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(0, 68863, '\P{Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(1, 68863, '\P{^Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(0, 68864, '\p{Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(1, 68864, '\p{^Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(1, 68864, '\P{Is_Script_Extensions=	old_Hungarian}', "");
-    Expect(0, 68864, '\P{^Is_Script_Extensions=	old_Hungarian}', "");
-    Error('\p{Is_Scx:   :=_	HUNG}');
-    Error('\P{Is_Scx:   :=_	HUNG}');
-    Expect(1, 68863, '\p{Is_Scx=hung}', "");
-    Expect(0, 68863, '\p{^Is_Scx=hung}', "");
-    Expect(0, 68863, '\P{Is_Scx=hung}', "");
-    Expect(1, 68863, '\P{^Is_Scx=hung}', "");
-    Expect(0, 68864, '\p{Is_Scx=hung}', "");
-    Expect(1, 68864, '\p{^Is_Scx=hung}', "");
-    Expect(1, 68864, '\P{Is_Scx=hung}', "");
-    Expect(0, 68864, '\P{^Is_Scx=hung}', "");
-    Expect(1, 68863, '\p{Is_Scx= 	Hung}', "");
-    Expect(0, 68863, '\p{^Is_Scx= 	Hung}', "");
-    Expect(0, 68863, '\P{Is_Scx= 	Hung}', "");
-    Expect(1, 68863, '\P{^Is_Scx= 	Hung}', "");
-    Expect(0, 68864, '\p{Is_Scx= 	Hung}', "");
-    Expect(1, 68864, '\p{^Is_Scx= 	Hung}', "");
-    Expect(1, 68864, '\P{Is_Scx= 	Hung}', "");
-    Expect(0, 68864, '\P{^Is_Scx= 	Hung}', "");
-    Error('\p{Script_Extensions=/a/old_Italic}');
-    Error('\P{Script_Extensions=/a/old_Italic}');
+    Expect(1, 68863, '\p{Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(0, 68863, '\p{^Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(0, 68863, '\P{Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(1, 68863, '\P{^Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(0, 68864, '\p{Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(1, 68864, '\p{^Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(1, 68864, '\P{Is_Script_Extensions=--Old_Hungarian}', "");
+    Expect(0, 68864, '\P{^Is_Script_Extensions=--Old_Hungarian}', "");
+    Error('\p{Is_Scx=:=	Hung}');
+    Error('\P{Is_Scx=:=	Hung}');
+    Expect(1, 68863, '\p{Is_Scx: hung}', "");
+    Expect(0, 68863, '\p{^Is_Scx: hung}', "");
+    Expect(0, 68863, '\P{Is_Scx: hung}', "");
+    Expect(1, 68863, '\P{^Is_Scx: hung}', "");
+    Expect(0, 68864, '\p{Is_Scx: hung}', "");
+    Expect(1, 68864, '\p{^Is_Scx: hung}', "");
+    Expect(1, 68864, '\P{Is_Scx: hung}', "");
+    Expect(0, 68864, '\P{^Is_Scx: hung}', "");
+    Expect(1, 68863, '\p{Is_Scx= -Hung}', "");
+    Expect(0, 68863, '\p{^Is_Scx= -Hung}', "");
+    Expect(0, 68863, '\P{Is_Scx= -Hung}', "");
+    Expect(1, 68863, '\P{^Is_Scx= -Hung}', "");
+    Expect(0, 68864, '\p{Is_Scx= -Hung}', "");
+    Expect(1, 68864, '\p{^Is_Scx= -Hung}', "");
+    Expect(1, 68864, '\P{Is_Scx= -Hung}', "");
+    Expect(0, 68864, '\P{^Is_Scx= -Hung}', "");
+    Error('\p{Script_Extensions=_	Old_Italic/a/}');
+    Error('\P{Script_Extensions=_	Old_Italic/a/}');
     Expect(1, 66351, '\p{Script_Extensions=:\AOld_Italic\z:}', "");;
     Expect(0, 66352, '\p{Script_Extensions=:\AOld_Italic\z:}', "");;
     Expect(1, 66351, '\p{Script_Extensions=olditalic}', "");
@@ -145909,16 +147245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66352, '\P{^Script_Extensions=olditalic}', "");
     Expect(1, 66351, '\p{Script_Extensions=:\Aolditalic\z:}', "");;
     Expect(0, 66352, '\p{Script_Extensions=:\Aolditalic\z:}', "");;
-    Expect(1, 66351, '\p{Script_Extensions=_-Old_italic}', "");
-    Expect(0, 66351, '\p{^Script_Extensions=_-Old_italic}', "");
-    Expect(0, 66351, '\P{Script_Extensions=_-Old_italic}', "");
-    Expect(1, 66351, '\P{^Script_Extensions=_-Old_italic}', "");
-    Expect(0, 66352, '\p{Script_Extensions=_-Old_italic}', "");
-    Expect(1, 66352, '\p{^Script_Extensions=_-Old_italic}', "");
-    Expect(1, 66352, '\P{Script_Extensions=_-Old_italic}', "");
-    Expect(0, 66352, '\P{^Script_Extensions=_-Old_italic}', "");
-    Error('\p{Scx=:=_Ital}');
-    Error('\P{Scx=:=_Ital}');
+    Expect(1, 66351, '\p{Script_Extensions= Old_Italic}', "");
+    Expect(0, 66351, '\p{^Script_Extensions= Old_Italic}', "");
+    Expect(0, 66351, '\P{Script_Extensions= Old_Italic}', "");
+    Expect(1, 66351, '\P{^Script_Extensions= Old_Italic}', "");
+    Expect(0, 66352, '\p{Script_Extensions= Old_Italic}', "");
+    Expect(1, 66352, '\p{^Script_Extensions= Old_Italic}', "");
+    Expect(1, 66352, '\P{Script_Extensions= Old_Italic}', "");
+    Expect(0, 66352, '\P{^Script_Extensions= Old_Italic}', "");
+    Error('\p{Scx= 	ital:=}');
+    Error('\P{Scx= 	ital:=}');
     Expect(1, 66351, '\p{Scx=:\AItal\z:}', "");;
     Expect(0, 66352, '\p{Scx=:\AItal\z:}', "");;
     Expect(1, 66351, '\p{Scx=ital}', "");
@@ -145931,16 +147267,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66352, '\P{^Scx=ital}', "");
     Expect(1, 66351, '\p{Scx=:\Aital\z:}', "");;
     Expect(0, 66352, '\p{Scx=:\Aital\z:}', "");;
-    Expect(1, 66351, '\p{Scx=-_Ital}', "");
-    Expect(0, 66351, '\p{^Scx=-_Ital}', "");
-    Expect(0, 66351, '\P{Scx=-_Ital}', "");
-    Expect(1, 66351, '\P{^Scx=-_Ital}', "");
-    Expect(0, 66352, '\p{Scx=-_Ital}', "");
-    Expect(1, 66352, '\p{^Scx=-_Ital}', "");
-    Expect(1, 66352, '\P{Scx=-_Ital}', "");
-    Expect(0, 66352, '\P{^Scx=-_Ital}', "");
-    Error('\p{Is_Script_Extensions=/a/old_ITALIC}');
-    Error('\P{Is_Script_Extensions=/a/old_ITALIC}');
+    Expect(1, 66351, '\p{Scx= 	ITAL}', "");
+    Expect(0, 66351, '\p{^Scx= 	ITAL}', "");
+    Expect(0, 66351, '\P{Scx= 	ITAL}', "");
+    Expect(1, 66351, '\P{^Scx= 	ITAL}', "");
+    Expect(0, 66352, '\p{Scx= 	ITAL}', "");
+    Expect(1, 66352, '\p{^Scx= 	ITAL}', "");
+    Expect(1, 66352, '\P{Scx= 	ITAL}', "");
+    Expect(0, 66352, '\P{^Scx= 	ITAL}', "");
+    Error('\p{Is_Script_Extensions=:=-_old_ITALIC}');
+    Error('\P{Is_Script_Extensions=:=-_old_ITALIC}');
     Expect(1, 66351, '\p{Is_Script_Extensions=olditalic}', "");
     Expect(0, 66351, '\p{^Is_Script_Extensions=olditalic}', "");
     Expect(0, 66351, '\P{Is_Script_Extensions=olditalic}', "");
@@ -145949,16 +147285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66352, '\p{^Is_Script_Extensions=olditalic}', "");
     Expect(1, 66352, '\P{Is_Script_Extensions=olditalic}', "");
     Expect(0, 66352, '\P{^Is_Script_Extensions=olditalic}', "");
-    Expect(1, 66351, '\p{Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(0, 66351, '\p{^Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(0, 66351, '\P{Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(1, 66351, '\P{^Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(0, 66352, '\p{Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(1, 66352, '\p{^Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(1, 66352, '\P{Is_Script_Extensions=	 OLD_Italic}', "");
-    Expect(0, 66352, '\P{^Is_Script_Extensions=	 OLD_Italic}', "");
-    Error('\p{Is_Scx: _ital:=}');
-    Error('\P{Is_Scx: _ital:=}');
+    Expect(1, 66351, '\p{Is_Script_Extensions=	_old_Italic}', "");
+    Expect(0, 66351, '\p{^Is_Script_Extensions=	_old_Italic}', "");
+    Expect(0, 66351, '\P{Is_Script_Extensions=	_old_Italic}', "");
+    Expect(1, 66351, '\P{^Is_Script_Extensions=	_old_Italic}', "");
+    Expect(0, 66352, '\p{Is_Script_Extensions=	_old_Italic}', "");
+    Expect(1, 66352, '\p{^Is_Script_Extensions=	_old_Italic}', "");
+    Expect(1, 66352, '\P{Is_Script_Extensions=	_old_Italic}', "");
+    Expect(0, 66352, '\P{^Is_Script_Extensions=	_old_Italic}', "");
+    Error('\p{Is_Scx:	_:=ITAL}');
+    Error('\P{Is_Scx:	_:=ITAL}');
     Expect(1, 66351, '\p{Is_Scx=ital}', "");
     Expect(0, 66351, '\p{^Is_Scx=ital}', "");
     Expect(0, 66351, '\P{Is_Scx=ital}', "");
@@ -145967,16 +147303,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66352, '\p{^Is_Scx=ital}', "");
     Expect(1, 66352, '\P{Is_Scx=ital}', "");
     Expect(0, 66352, '\P{^Is_Scx=ital}', "");
-    Expect(1, 66351, '\p{Is_Scx=	-ITAL}', "");
-    Expect(0, 66351, '\p{^Is_Scx=	-ITAL}', "");
-    Expect(0, 66351, '\P{Is_Scx=	-ITAL}', "");
-    Expect(1, 66351, '\P{^Is_Scx=	-ITAL}', "");
-    Expect(0, 66352, '\p{Is_Scx=	-ITAL}', "");
-    Expect(1, 66352, '\p{^Is_Scx=	-ITAL}', "");
-    Expect(1, 66352, '\P{Is_Scx=	-ITAL}', "");
-    Expect(0, 66352, '\P{^Is_Scx=	-ITAL}', "");
-    Error('\p{Script_Extensions=-/a/javanese}');
-    Error('\P{Script_Extensions=-/a/javanese}');
+    Expect(1, 66351, '\p{Is_Scx=_	Ital}', "");
+    Expect(0, 66351, '\p{^Is_Scx=_	Ital}', "");
+    Expect(0, 66351, '\P{Is_Scx=_	Ital}', "");
+    Expect(1, 66351, '\P{^Is_Scx=_	Ital}', "");
+    Expect(0, 66352, '\p{Is_Scx=_	Ital}', "");
+    Expect(1, 66352, '\p{^Is_Scx=_	Ital}', "");
+    Expect(1, 66352, '\P{Is_Scx=_	Ital}', "");
+    Expect(0, 66352, '\P{^Is_Scx=_	Ital}', "");
+    Error('\p{Script_Extensions= /a/Javanese}');
+    Error('\P{Script_Extensions= /a/Javanese}');
     Expect(1, 43487, '\p{Script_Extensions=:\AJavanese\z:}', "");;
     Expect(0, 43488, '\p{Script_Extensions=:\AJavanese\z:}', "");;
     Expect(1, 43487, '\p{Script_Extensions=javanese}', "");
@@ -145989,16 +147325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43488, '\P{^Script_Extensions=javanese}', "");
     Expect(1, 43487, '\p{Script_Extensions=:\Ajavanese\z:}', "");;
     Expect(0, 43488, '\p{Script_Extensions=:\Ajavanese\z:}', "");;
-    Expect(1, 43487, '\p{Script_Extensions=		JAVANESE}', "");
-    Expect(0, 43487, '\p{^Script_Extensions=		JAVANESE}', "");
-    Expect(0, 43487, '\P{Script_Extensions=		JAVANESE}', "");
-    Expect(1, 43487, '\P{^Script_Extensions=		JAVANESE}', "");
-    Expect(0, 43488, '\p{Script_Extensions=		JAVANESE}', "");
-    Expect(1, 43488, '\p{^Script_Extensions=		JAVANESE}', "");
-    Expect(1, 43488, '\P{Script_Extensions=		JAVANESE}', "");
-    Expect(0, 43488, '\P{^Script_Extensions=		JAVANESE}', "");
-    Error('\p{Scx=/a/ -Java}');
-    Error('\P{Scx=/a/ -Java}');
+    Expect(1, 43487, '\p{Script_Extensions=_ JAVANESE}', "");
+    Expect(0, 43487, '\p{^Script_Extensions=_ JAVANESE}', "");
+    Expect(0, 43487, '\P{Script_Extensions=_ JAVANESE}', "");
+    Expect(1, 43487, '\P{^Script_Extensions=_ JAVANESE}', "");
+    Expect(0, 43488, '\p{Script_Extensions=_ JAVANESE}', "");
+    Expect(1, 43488, '\p{^Script_Extensions=_ JAVANESE}', "");
+    Expect(1, 43488, '\P{Script_Extensions=_ JAVANESE}', "");
+    Expect(0, 43488, '\P{^Script_Extensions=_ JAVANESE}', "");
+    Error('\p{Scx=__Java:=}');
+    Error('\P{Scx=__Java:=}');
     Expect(1, 43487, '\p{Scx=:\AJava\z:}', "");;
     Expect(0, 43488, '\p{Scx=:\AJava\z:}', "");;
     Expect(1, 43487, '\p{Scx=java}', "");
@@ -146011,16 +147347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43488, '\P{^Scx=java}', "");
     Expect(1, 43487, '\p{Scx=:\Ajava\z:}', "");;
     Expect(0, 43488, '\p{Scx=:\Ajava\z:}', "");;
-    Expect(1, 43487, '\p{Scx=- Java}', "");
-    Expect(0, 43487, '\p{^Scx=- Java}', "");
-    Expect(0, 43487, '\P{Scx=- Java}', "");
-    Expect(1, 43487, '\P{^Scx=- Java}', "");
-    Expect(0, 43488, '\p{Scx=- Java}', "");
-    Expect(1, 43488, '\p{^Scx=- Java}', "");
-    Expect(1, 43488, '\P{Scx=- Java}', "");
-    Expect(0, 43488, '\P{^Scx=- Java}', "");
-    Error('\p{Is_Script_Extensions=:=	-Javanese}');
-    Error('\P{Is_Script_Extensions=:=	-Javanese}');
+    Expect(1, 43487, '\p{Scx=		java}', "");
+    Expect(0, 43487, '\p{^Scx=		java}', "");
+    Expect(0, 43487, '\P{Scx=		java}', "");
+    Expect(1, 43487, '\P{^Scx=		java}', "");
+    Expect(0, 43488, '\p{Scx=		java}', "");
+    Expect(1, 43488, '\p{^Scx=		java}', "");
+    Expect(1, 43488, '\P{Scx=		java}', "");
+    Expect(0, 43488, '\P{^Scx=		java}', "");
+    Error('\p{Is_Script_Extensions=_-JAVANESE:=}');
+    Error('\P{Is_Script_Extensions=_-JAVANESE:=}');
     Expect(1, 43487, '\p{Is_Script_Extensions=javanese}', "");
     Expect(0, 43487, '\p{^Is_Script_Extensions=javanese}', "");
     Expect(0, 43487, '\P{Is_Script_Extensions=javanese}', "");
@@ -146029,16 +147365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43488, '\p{^Is_Script_Extensions=javanese}', "");
     Expect(1, 43488, '\P{Is_Script_Extensions=javanese}', "");
     Expect(0, 43488, '\P{^Is_Script_Extensions=javanese}', "");
-    Expect(1, 43487, '\p{Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(0, 43487, '\p{^Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(0, 43487, '\P{Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(1, 43487, '\P{^Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(0, 43488, '\p{Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(1, 43488, '\p{^Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(1, 43488, '\P{Is_Script_Extensions=_ JAVANESE}', "");
-    Expect(0, 43488, '\P{^Is_Script_Extensions=_ JAVANESE}', "");
-    Error('\p{Is_Scx=/a/Java}');
-    Error('\P{Is_Scx=/a/Java}');
+    Expect(1, 43487, '\p{Is_Script_Extensions= Javanese}', "");
+    Expect(0, 43487, '\p{^Is_Script_Extensions= Javanese}', "");
+    Expect(0, 43487, '\P{Is_Script_Extensions= Javanese}', "");
+    Expect(1, 43487, '\P{^Is_Script_Extensions= Javanese}', "");
+    Expect(0, 43488, '\p{Is_Script_Extensions= Javanese}', "");
+    Expect(1, 43488, '\p{^Is_Script_Extensions= Javanese}', "");
+    Expect(1, 43488, '\P{Is_Script_Extensions= Javanese}', "");
+    Expect(0, 43488, '\P{^Is_Script_Extensions= Javanese}', "");
+    Error('\p{Is_Scx=_/a/Java}');
+    Error('\P{Is_Scx=_/a/Java}');
     Expect(1, 43487, '\p{Is_Scx=java}', "");
     Expect(0, 43487, '\p{^Is_Scx=java}', "");
     Expect(0, 43487, '\P{Is_Scx=java}', "");
@@ -146047,16 +147383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43488, '\p{^Is_Scx=java}', "");
     Expect(1, 43488, '\P{Is_Scx=java}', "");
     Expect(0, 43488, '\P{^Is_Scx=java}', "");
-    Expect(1, 43487, '\p{Is_Scx= _Java}', "");
-    Expect(0, 43487, '\p{^Is_Scx= _Java}', "");
-    Expect(0, 43487, '\P{Is_Scx= _Java}', "");
-    Expect(1, 43487, '\P{^Is_Scx= _Java}', "");
-    Expect(0, 43488, '\p{Is_Scx= _Java}', "");
-    Expect(1, 43488, '\p{^Is_Scx= _Java}', "");
-    Expect(1, 43488, '\P{Is_Scx= _Java}', "");
-    Expect(0, 43488, '\P{^Is_Scx= _Java}', "");
-    Error('\p{Script_Extensions= _kayah_li/a/}');
-    Error('\P{Script_Extensions= _kayah_li/a/}');
+    Expect(1, 43487, '\p{Is_Scx=  Java}', "");
+    Expect(0, 43487, '\p{^Is_Scx=  Java}', "");
+    Expect(0, 43487, '\P{Is_Scx=  Java}', "");
+    Expect(1, 43487, '\P{^Is_Scx=  Java}', "");
+    Expect(0, 43488, '\p{Is_Scx=  Java}', "");
+    Expect(1, 43488, '\p{^Is_Scx=  Java}', "");
+    Expect(1, 43488, '\P{Is_Scx=  Java}', "");
+    Expect(0, 43488, '\P{^Is_Scx=  Java}', "");
+    Error('\p{Script_Extensions=	/a/Kayah_Li}');
+    Error('\P{Script_Extensions=	/a/Kayah_Li}');
     Expect(1, 43311, '\p{Script_Extensions=:\AKayah_Li\z:}', "");;
     Expect(0, 43312, '\p{Script_Extensions=:\AKayah_Li\z:}', "");;
     Expect(1, 43311, '\p{Script_Extensions=kayahli}', "");
@@ -146069,16 +147405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43312, '\P{^Script_Extensions=kayahli}', "");
     Expect(1, 43311, '\p{Script_Extensions=:\Akayahli\z:}', "");;
     Expect(0, 43312, '\p{Script_Extensions=:\Akayahli\z:}', "");;
-    Expect(1, 43311, '\p{Script_Extensions=	-Kayah_LI}', "");
-    Expect(0, 43311, '\p{^Script_Extensions=	-Kayah_LI}', "");
-    Expect(0, 43311, '\P{Script_Extensions=	-Kayah_LI}', "");
-    Expect(1, 43311, '\P{^Script_Extensions=	-Kayah_LI}', "");
-    Expect(0, 43312, '\p{Script_Extensions=	-Kayah_LI}', "");
-    Expect(1, 43312, '\p{^Script_Extensions=	-Kayah_LI}', "");
-    Expect(1, 43312, '\P{Script_Extensions=	-Kayah_LI}', "");
-    Expect(0, 43312, '\P{^Script_Extensions=	-Kayah_LI}', "");
-    Error('\p{Scx= -kali/a/}');
-    Error('\P{Scx= -kali/a/}');
+    Expect(1, 43311, '\p{Script_Extensions=-Kayah_LI}', "");
+    Expect(0, 43311, '\p{^Script_Extensions=-Kayah_LI}', "");
+    Expect(0, 43311, '\P{Script_Extensions=-Kayah_LI}', "");
+    Expect(1, 43311, '\P{^Script_Extensions=-Kayah_LI}', "");
+    Expect(0, 43312, '\p{Script_Extensions=-Kayah_LI}', "");
+    Expect(1, 43312, '\p{^Script_Extensions=-Kayah_LI}', "");
+    Expect(1, 43312, '\P{Script_Extensions=-Kayah_LI}', "");
+    Expect(0, 43312, '\P{^Script_Extensions=-Kayah_LI}', "");
+    Error('\p{Scx=_/a/Kali}');
+    Error('\P{Scx=_/a/Kali}');
     Expect(1, 43311, '\p{Scx=:\AKali\z:}', "");;
     Expect(0, 43312, '\p{Scx=:\AKali\z:}', "");;
     Expect(1, 43311, '\p{Scx=kali}', "");
@@ -146091,16 +147427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43312, '\P{^Scx=kali}', "");
     Expect(1, 43311, '\p{Scx=:\Akali\z:}', "");;
     Expect(0, 43312, '\p{Scx=:\Akali\z:}', "");;
-    Expect(1, 43311, '\p{Scx=Kali}', "");
-    Expect(0, 43311, '\p{^Scx=Kali}', "");
-    Expect(0, 43311, '\P{Scx=Kali}', "");
-    Expect(1, 43311, '\P{^Scx=Kali}', "");
-    Expect(0, 43312, '\p{Scx=Kali}', "");
-    Expect(1, 43312, '\p{^Scx=Kali}', "");
-    Expect(1, 43312, '\P{Scx=Kali}', "");
-    Expect(0, 43312, '\P{^Scx=Kali}', "");
-    Error('\p{Is_Script_Extensions=		KAYAH_Li/a/}');
-    Error('\P{Is_Script_Extensions=		KAYAH_Li/a/}');
+    Expect(1, 43311, '\p{Scx=- KALI}', "");
+    Expect(0, 43311, '\p{^Scx=- KALI}', "");
+    Expect(0, 43311, '\P{Scx=- KALI}', "");
+    Expect(1, 43311, '\P{^Scx=- KALI}', "");
+    Expect(0, 43312, '\p{Scx=- KALI}', "");
+    Expect(1, 43312, '\p{^Scx=- KALI}', "");
+    Expect(1, 43312, '\P{Scx=- KALI}', "");
+    Expect(0, 43312, '\P{^Scx=- KALI}', "");
+    Error('\p{Is_Script_Extensions=/a/__Kayah_Li}');
+    Error('\P{Is_Script_Extensions=/a/__Kayah_Li}');
     Expect(1, 43311, '\p{Is_Script_Extensions=kayahli}', "");
     Expect(0, 43311, '\p{^Is_Script_Extensions=kayahli}', "");
     Expect(0, 43311, '\P{Is_Script_Extensions=kayahli}', "");
@@ -146109,16 +147445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43312, '\p{^Is_Script_Extensions=kayahli}', "");
     Expect(1, 43312, '\P{Is_Script_Extensions=kayahli}', "");
     Expect(0, 43312, '\P{^Is_Script_Extensions=kayahli}', "");
-    Expect(1, 43311, '\p{Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(0, 43311, '\p{^Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(0, 43311, '\P{Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(1, 43311, '\P{^Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(0, 43312, '\p{Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(1, 43312, '\p{^Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(1, 43312, '\P{Is_Script_Extensions=-Kayah_Li}', "");
-    Expect(0, 43312, '\P{^Is_Script_Extensions=-Kayah_Li}', "");
-    Error('\p{Is_Scx=:=__Kali}');
-    Error('\P{Is_Scx=:=__Kali}');
+    Expect(1, 43311, '\p{Is_Script_Extensions=-Kayah_li}', "");
+    Expect(0, 43311, '\p{^Is_Script_Extensions=-Kayah_li}', "");
+    Expect(0, 43311, '\P{Is_Script_Extensions=-Kayah_li}', "");
+    Expect(1, 43311, '\P{^Is_Script_Extensions=-Kayah_li}', "");
+    Expect(0, 43312, '\p{Is_Script_Extensions=-Kayah_li}', "");
+    Expect(1, 43312, '\p{^Is_Script_Extensions=-Kayah_li}', "");
+    Expect(1, 43312, '\P{Is_Script_Extensions=-Kayah_li}', "");
+    Expect(0, 43312, '\P{^Is_Script_Extensions=-Kayah_li}', "");
+    Error('\p{Is_Scx=:=- Kali}');
+    Error('\P{Is_Scx=:=- Kali}');
     Expect(1, 43311, '\p{Is_Scx=kali}', "");
     Expect(0, 43311, '\p{^Is_Scx=kali}', "");
     Expect(0, 43311, '\P{Is_Scx=kali}', "");
@@ -146127,16 +147463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43312, '\p{^Is_Scx=kali}', "");
     Expect(1, 43312, '\P{Is_Scx=kali}', "");
     Expect(0, 43312, '\P{^Is_Scx=kali}', "");
-    Expect(1, 43311, '\p{Is_Scx:   -_Kali}', "");
-    Expect(0, 43311, '\p{^Is_Scx:   -_Kali}', "");
-    Expect(0, 43311, '\P{Is_Scx:   -_Kali}', "");
-    Expect(1, 43311, '\P{^Is_Scx:   -_Kali}', "");
-    Expect(0, 43312, '\p{Is_Scx:   -_Kali}', "");
-    Expect(1, 43312, '\p{^Is_Scx:   -_Kali}', "");
-    Expect(1, 43312, '\P{Is_Scx:   -_Kali}', "");
-    Expect(0, 43312, '\P{^Is_Scx:   -_Kali}', "");
-    Error('\p{Script_Extensions=-KATAKANA/a/}');
-    Error('\P{Script_Extensions=-KATAKANA/a/}');
+    Expect(1, 43311, '\p{Is_Scx:   __Kali}', "");
+    Expect(0, 43311, '\p{^Is_Scx:   __Kali}', "");
+    Expect(0, 43311, '\P{Is_Scx:   __Kali}', "");
+    Expect(1, 43311, '\P{^Is_Scx:   __Kali}', "");
+    Expect(0, 43312, '\p{Is_Scx:   __Kali}', "");
+    Expect(1, 43312, '\p{^Is_Scx:   __Kali}', "");
+    Expect(1, 43312, '\P{Is_Scx:   __Kali}', "");
+    Expect(0, 43312, '\P{^Is_Scx:   __Kali}', "");
+    Error('\p{Script_Extensions:	:=	Katakana}');
+    Error('\P{Script_Extensions:	:=	Katakana}');
     Expect(1, 110951, '\p{Script_Extensions=:\AKatakana\z:}', "");;
     Expect(0, 110952, '\p{Script_Extensions=:\AKatakana\z:}', "");;
     Expect(1, 110951, '\p{Script_Extensions=katakana}', "");
@@ -146149,16 +147485,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 110952, '\P{^Script_Extensions=katakana}', "");
     Expect(1, 110951, '\p{Script_Extensions=:\Akatakana\z:}', "");;
     Expect(0, 110952, '\p{Script_Extensions=:\Akatakana\z:}', "");;
-    Expect(1, 110951, '\p{Script_Extensions= _Katakana}', "");
-    Expect(0, 110951, '\p{^Script_Extensions= _Katakana}', "");
-    Expect(0, 110951, '\P{Script_Extensions= _Katakana}', "");
-    Expect(1, 110951, '\P{^Script_Extensions= _Katakana}', "");
-    Expect(0, 110952, '\p{Script_Extensions= _Katakana}', "");
-    Expect(1, 110952, '\p{^Script_Extensions= _Katakana}', "");
-    Expect(1, 110952, '\P{Script_Extensions= _Katakana}', "");
-    Expect(0, 110952, '\P{^Script_Extensions= _Katakana}', "");
-    Error('\p{Scx: :=_Kana}');
-    Error('\P{Scx: :=_Kana}');
+    Error('\p{Scx= Kana:=}');
+    Error('\P{Scx= Kana:=}');
     Expect(1, 110951, '\p{Scx=:\AKana\z:}', "");;
     Expect(0, 110952, '\p{Scx=:\AKana\z:}', "");;
     Expect(1, 110951, '\p{Scx=kana}', "");
@@ -146171,16 +147499,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 110952, '\P{^Scx=kana}', "");
     Expect(1, 110951, '\p{Scx=:\Akana\z:}', "");;
     Expect(0, 110952, '\p{Scx=:\Akana\z:}', "");;
-    Expect(1, 110951, '\p{Scx=	-kana}', "");
-    Expect(0, 110951, '\p{^Scx=	-kana}', "");
-    Expect(0, 110951, '\P{Scx=	-kana}', "");
-    Expect(1, 110951, '\P{^Scx=	-kana}', "");
-    Expect(0, 110952, '\p{Scx=	-kana}', "");
-    Expect(1, 110952, '\p{^Scx=	-kana}', "");
-    Expect(1, 110952, '\P{Scx=	-kana}', "");
-    Expect(0, 110952, '\P{^Scx=	-kana}', "");
-    Error('\p{Is_Script_Extensions=_:=Katakana}');
-    Error('\P{Is_Script_Extensions=_:=Katakana}');
+    Expect(1, 110951, '\p{Scx=  kana}', "");
+    Expect(0, 110951, '\p{^Scx=  kana}', "");
+    Expect(0, 110951, '\P{Scx=  kana}', "");
+    Expect(1, 110951, '\P{^Scx=  kana}', "");
+    Expect(0, 110952, '\p{Scx=  kana}', "");
+    Expect(1, 110952, '\p{^Scx=  kana}', "");
+    Expect(1, 110952, '\P{Scx=  kana}', "");
+    Expect(0, 110952, '\P{^Scx=  kana}', "");
+    Error('\p{Is_Script_Extensions=_	katakana/a/}');
+    Error('\P{Is_Script_Extensions=_	katakana/a/}');
     Expect(1, 110951, '\p{Is_Script_Extensions=katakana}', "");
     Expect(0, 110951, '\p{^Is_Script_Extensions=katakana}', "");
     Expect(0, 110951, '\P{Is_Script_Extensions=katakana}', "");
@@ -146189,16 +147517,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110952, '\p{^Is_Script_Extensions=katakana}', "");
     Expect(1, 110952, '\P{Is_Script_Extensions=katakana}', "");
     Expect(0, 110952, '\P{^Is_Script_Extensions=katakana}', "");
-    Expect(1, 110951, '\p{Is_Script_Extensions=	KATAKANA}', "");
-    Expect(0, 110951, '\p{^Is_Script_Extensions=	KATAKANA}', "");
-    Expect(0, 110951, '\P{Is_Script_Extensions=	KATAKANA}', "");
-    Expect(1, 110951, '\P{^Is_Script_Extensions=	KATAKANA}', "");
-    Expect(0, 110952, '\p{Is_Script_Extensions=	KATAKANA}', "");
-    Expect(1, 110952, '\p{^Is_Script_Extensions=	KATAKANA}', "");
-    Expect(1, 110952, '\P{Is_Script_Extensions=	KATAKANA}', "");
-    Expect(0, 110952, '\P{^Is_Script_Extensions=	KATAKANA}', "");
-    Error('\p{Is_Scx=-Kana:=}');
-    Error('\P{Is_Scx=-Kana:=}');
+    Expect(1, 110951, '\p{Is_Script_Extensions:   	katakana}', "");
+    Expect(0, 110951, '\p{^Is_Script_Extensions:   	katakana}', "");
+    Expect(0, 110951, '\P{Is_Script_Extensions:   	katakana}', "");
+    Expect(1, 110951, '\P{^Is_Script_Extensions:   	katakana}', "");
+    Expect(0, 110952, '\p{Is_Script_Extensions:   	katakana}', "");
+    Expect(1, 110952, '\p{^Is_Script_Extensions:   	katakana}', "");
+    Expect(1, 110952, '\P{Is_Script_Extensions:   	katakana}', "");
+    Expect(0, 110952, '\P{^Is_Script_Extensions:   	katakana}', "");
+    Error('\p{Is_Scx=/a/Kana}');
+    Error('\P{Is_Scx=/a/Kana}');
     Expect(1, 110951, '\p{Is_Scx=kana}', "");
     Expect(0, 110951, '\p{^Is_Scx=kana}', "");
     Expect(0, 110951, '\P{Is_Scx=kana}', "");
@@ -146207,16 +147535,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110952, '\p{^Is_Scx=kana}', "");
     Expect(1, 110952, '\P{Is_Scx=kana}', "");
     Expect(0, 110952, '\P{^Is_Scx=kana}', "");
-    Expect(1, 110951, '\p{Is_Scx= -Kana}', "");
-    Expect(0, 110951, '\p{^Is_Scx= -Kana}', "");
-    Expect(0, 110951, '\P{Is_Scx= -Kana}', "");
-    Expect(1, 110951, '\P{^Is_Scx= -Kana}', "");
-    Expect(0, 110952, '\p{Is_Scx= -Kana}', "");
-    Expect(1, 110952, '\p{^Is_Scx= -Kana}', "");
-    Expect(1, 110952, '\P{Is_Scx= -Kana}', "");
-    Expect(0, 110952, '\P{^Is_Scx= -Kana}', "");
-    Error('\p{Script_Extensions:/a/--kharoshthi}');
-    Error('\P{Script_Extensions:/a/--kharoshthi}');
+    Expect(1, 110951, '\p{Is_Scx= Kana}', "");
+    Expect(0, 110951, '\p{^Is_Scx= Kana}', "");
+    Expect(0, 110951, '\P{Is_Scx= Kana}', "");
+    Expect(1, 110951, '\P{^Is_Scx= Kana}', "");
+    Expect(0, 110952, '\p{Is_Scx= Kana}', "");
+    Expect(1, 110952, '\p{^Is_Scx= Kana}', "");
+    Expect(1, 110952, '\P{Is_Scx= Kana}', "");
+    Expect(0, 110952, '\P{^Is_Scx= Kana}', "");
+    Error('\p{Script_Extensions=-:=Kawi}');
+    Error('\P{Script_Extensions=-:=Kawi}');
+    Expect(1, 73561, '\p{Script_Extensions=:\AKawi\z:}', "");;
+    Expect(0, 73562, '\p{Script_Extensions=:\AKawi\z:}', "");;
+    Expect(1, 73561, '\p{Script_Extensions=kawi}', "");
+    Expect(0, 73561, '\p{^Script_Extensions=kawi}', "");
+    Expect(0, 73561, '\P{Script_Extensions=kawi}', "");
+    Expect(1, 73561, '\P{^Script_Extensions=kawi}', "");
+    Expect(0, 73562, '\p{Script_Extensions=kawi}', "");
+    Expect(1, 73562, '\p{^Script_Extensions=kawi}', "");
+    Expect(1, 73562, '\P{Script_Extensions=kawi}', "");
+    Expect(0, 73562, '\P{^Script_Extensions=kawi}', "");
+    Expect(1, 73561, '\p{Script_Extensions=:\Akawi\z:}', "");;
+    Expect(0, 73562, '\p{Script_Extensions=:\Akawi\z:}', "");;
+    Expect(1, 73561, '\p{Script_Extensions=	kawi}', "");
+    Expect(0, 73561, '\p{^Script_Extensions=	kawi}', "");
+    Expect(0, 73561, '\P{Script_Extensions=	kawi}', "");
+    Expect(1, 73561, '\P{^Script_Extensions=	kawi}', "");
+    Expect(0, 73562, '\p{Script_Extensions=	kawi}', "");
+    Expect(1, 73562, '\p{^Script_Extensions=	kawi}', "");
+    Expect(1, 73562, '\P{Script_Extensions=	kawi}', "");
+    Expect(0, 73562, '\P{^Script_Extensions=	kawi}', "");
+    Error('\p{Scx=	kawi/a/}');
+    Error('\P{Scx=	kawi/a/}');
+    Expect(1, 73561, '\p{Scx=:\AKawi\z:}', "");;
+    Expect(0, 73562, '\p{Scx=:\AKawi\z:}', "");;
+    Expect(1, 73561, '\p{Scx=kawi}', "");
+    Expect(0, 73561, '\p{^Scx=kawi}', "");
+    Expect(0, 73561, '\P{Scx=kawi}', "");
+    Expect(1, 73561, '\P{^Scx=kawi}', "");
+    Expect(0, 73562, '\p{Scx=kawi}', "");
+    Expect(1, 73562, '\p{^Scx=kawi}', "");
+    Expect(1, 73562, '\P{Scx=kawi}', "");
+    Expect(0, 73562, '\P{^Scx=kawi}', "");
+    Expect(1, 73561, '\p{Scx=:\Akawi\z:}', "");;
+    Expect(0, 73562, '\p{Scx=:\Akawi\z:}', "");;
+    Expect(1, 73561, '\p{Scx=	 Kawi}', "");
+    Expect(0, 73561, '\p{^Scx=	 Kawi}', "");
+    Expect(0, 73561, '\P{Scx=	 Kawi}', "");
+    Expect(1, 73561, '\P{^Scx=	 Kawi}', "");
+    Expect(0, 73562, '\p{Scx=	 Kawi}', "");
+    Expect(1, 73562, '\p{^Scx=	 Kawi}', "");
+    Expect(1, 73562, '\P{Scx=	 Kawi}', "");
+    Expect(0, 73562, '\P{^Scx=	 Kawi}', "");
+    Error('\p{Is_Script_Extensions=_	kawi/a/}');
+    Error('\P{Is_Script_Extensions=_	kawi/a/}');
+    Expect(1, 73561, '\p{Is_Script_Extensions=kawi}', "");
+    Expect(0, 73561, '\p{^Is_Script_Extensions=kawi}', "");
+    Expect(0, 73561, '\P{Is_Script_Extensions=kawi}', "");
+    Expect(1, 73561, '\P{^Is_Script_Extensions=kawi}', "");
+    Expect(0, 73562, '\p{Is_Script_Extensions=kawi}', "");
+    Expect(1, 73562, '\p{^Is_Script_Extensions=kawi}', "");
+    Expect(1, 73562, '\P{Is_Script_Extensions=kawi}', "");
+    Expect(0, 73562, '\P{^Is_Script_Extensions=kawi}', "");
+    Expect(1, 73561, '\p{Is_Script_Extensions=_-Kawi}', "");
+    Expect(0, 73561, '\p{^Is_Script_Extensions=_-Kawi}', "");
+    Expect(0, 73561, '\P{Is_Script_Extensions=_-Kawi}', "");
+    Expect(1, 73561, '\P{^Is_Script_Extensions=_-Kawi}', "");
+    Expect(0, 73562, '\p{Is_Script_Extensions=_-Kawi}', "");
+    Expect(1, 73562, '\p{^Is_Script_Extensions=_-Kawi}', "");
+    Expect(1, 73562, '\P{Is_Script_Extensions=_-Kawi}', "");
+    Expect(0, 73562, '\P{^Is_Script_Extensions=_-Kawi}', "");
+    Error('\p{Is_Scx=/a/ -kawi}');
+    Error('\P{Is_Scx=/a/ -kawi}');
+    Expect(1, 73561, '\p{Is_Scx=kawi}', "");
+    Expect(0, 73561, '\p{^Is_Scx=kawi}', "");
+    Expect(0, 73561, '\P{Is_Scx=kawi}', "");
+    Expect(1, 73561, '\P{^Is_Scx=kawi}', "");
+    Expect(0, 73562, '\p{Is_Scx=kawi}', "");
+    Expect(1, 73562, '\p{^Is_Scx=kawi}', "");
+    Expect(1, 73562, '\P{Is_Scx=kawi}', "");
+    Expect(0, 73562, '\P{^Is_Scx=kawi}', "");
+    Expect(1, 73561, '\p{Is_Scx:	-_Kawi}', "");
+    Expect(0, 73561, '\p{^Is_Scx:	-_Kawi}', "");
+    Expect(0, 73561, '\P{Is_Scx:	-_Kawi}', "");
+    Expect(1, 73561, '\P{^Is_Scx:	-_Kawi}', "");
+    Expect(0, 73562, '\p{Is_Scx:	-_Kawi}', "");
+    Expect(1, 73562, '\p{^Is_Scx:	-_Kawi}', "");
+    Expect(1, 73562, '\P{Is_Scx:	-_Kawi}', "");
+    Expect(0, 73562, '\P{^Is_Scx:	-_Kawi}', "");
+    Error('\p{Script_Extensions:	_ Kharoshthi:=}');
+    Error('\P{Script_Extensions:	_ Kharoshthi:=}');
     Expect(1, 68184, '\p{Script_Extensions=:\AKharoshthi\z:}', "");;
     Expect(0, 68185, '\p{Script_Extensions=:\AKharoshthi\z:}', "");;
     Expect(1, 68184, '\p{Script_Extensions=kharoshthi}', "");
@@ -146229,38 +147637,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68185, '\P{^Script_Extensions=kharoshthi}', "");
     Expect(1, 68184, '\p{Script_Extensions=:\Akharoshthi\z:}', "");;
     Expect(0, 68185, '\p{Script_Extensions=:\Akharoshthi\z:}', "");;
-    Expect(1, 68184, '\p{Script_Extensions=_	Kharoshthi}', "");
-    Expect(0, 68184, '\p{^Script_Extensions=_	Kharoshthi}', "");
-    Expect(0, 68184, '\P{Script_Extensions=_	Kharoshthi}', "");
-    Expect(1, 68184, '\P{^Script_Extensions=_	Kharoshthi}', "");
-    Expect(0, 68185, '\p{Script_Extensions=_	Kharoshthi}', "");
-    Expect(1, 68185, '\p{^Script_Extensions=_	Kharoshthi}', "");
-    Expect(1, 68185, '\P{Script_Extensions=_	Kharoshthi}', "");
-    Expect(0, 68185, '\P{^Script_Extensions=_	Kharoshthi}', "");
-    Error('\p{Scx=:=-KHAR}');
-    Error('\P{Scx=:=-KHAR}');
+    Expect(1, 68184, '\p{Script_Extensions= Kharoshthi}', "");
+    Expect(0, 68184, '\p{^Script_Extensions= Kharoshthi}', "");
+    Expect(0, 68184, '\P{Script_Extensions= Kharoshthi}', "");
+    Expect(1, 68184, '\P{^Script_Extensions= Kharoshthi}', "");
+    Expect(0, 68185, '\p{Script_Extensions= Kharoshthi}', "");
+    Expect(1, 68185, '\p{^Script_Extensions= Kharoshthi}', "");
+    Expect(1, 68185, '\P{Script_Extensions= Kharoshthi}', "");
+    Expect(0, 68185, '\P{^Script_Extensions= Kharoshthi}', "");
+    Error('\p{Scx= _KHAR:=}');
+    Error('\P{Scx= _KHAR:=}');
     Expect(1, 68184, '\p{Scx=:\AKhar\z:}', "");;
     Expect(0, 68185, '\p{Scx=:\AKhar\z:}', "");;
-    Expect(1, 68184, '\p{Scx: khar}', "");
-    Expect(0, 68184, '\p{^Scx: khar}', "");
-    Expect(0, 68184, '\P{Scx: khar}', "");
-    Expect(1, 68184, '\P{^Scx: khar}', "");
-    Expect(0, 68185, '\p{Scx: khar}', "");
-    Expect(1, 68185, '\p{^Scx: khar}', "");
-    Expect(1, 68185, '\P{Scx: khar}', "");
-    Expect(0, 68185, '\P{^Scx: khar}', "");
+    Expect(1, 68184, '\p{Scx:   khar}', "");
+    Expect(0, 68184, '\p{^Scx:   khar}', "");
+    Expect(0, 68184, '\P{Scx:   khar}', "");
+    Expect(1, 68184, '\P{^Scx:   khar}', "");
+    Expect(0, 68185, '\p{Scx:   khar}', "");
+    Expect(1, 68185, '\p{^Scx:   khar}', "");
+    Expect(1, 68185, '\P{Scx:   khar}', "");
+    Expect(0, 68185, '\P{^Scx:   khar}', "");
     Expect(1, 68184, '\p{Scx=:\Akhar\z:}', "");;
     Expect(0, 68185, '\p{Scx=:\Akhar\z:}', "");;
-    Expect(1, 68184, '\p{Scx=	Khar}', "");
-    Expect(0, 68184, '\p{^Scx=	Khar}', "");
-    Expect(0, 68184, '\P{Scx=	Khar}', "");
-    Expect(1, 68184, '\P{^Scx=	Khar}', "");
-    Expect(0, 68185, '\p{Scx=	Khar}', "");
-    Expect(1, 68185, '\p{^Scx=	Khar}', "");
-    Expect(1, 68185, '\P{Scx=	Khar}', "");
-    Expect(0, 68185, '\P{^Scx=	Khar}', "");
-    Error('\p{Is_Script_Extensions:   _/a/Kharoshthi}');
-    Error('\P{Is_Script_Extensions:   _/a/Kharoshthi}');
+    Expect(1, 68184, '\p{Scx=  KHAR}', "");
+    Expect(0, 68184, '\p{^Scx=  KHAR}', "");
+    Expect(0, 68184, '\P{Scx=  KHAR}', "");
+    Expect(1, 68184, '\P{^Scx=  KHAR}', "");
+    Expect(0, 68185, '\p{Scx=  KHAR}', "");
+    Expect(1, 68185, '\p{^Scx=  KHAR}', "");
+    Expect(1, 68185, '\P{Scx=  KHAR}', "");
+    Expect(0, 68185, '\P{^Scx=  KHAR}', "");
+    Error('\p{Is_Script_Extensions=:=_Kharoshthi}');
+    Error('\P{Is_Script_Extensions=:=_Kharoshthi}');
     Expect(1, 68184, '\p{Is_Script_Extensions=kharoshthi}', "");
     Expect(0, 68184, '\p{^Is_Script_Extensions=kharoshthi}', "");
     Expect(0, 68184, '\P{Is_Script_Extensions=kharoshthi}', "");
@@ -146269,16 +147677,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68185, '\p{^Is_Script_Extensions=kharoshthi}', "");
     Expect(1, 68185, '\P{Is_Script_Extensions=kharoshthi}', "");
     Expect(0, 68185, '\P{^Is_Script_Extensions=kharoshthi}', "");
-    Expect(1, 68184, '\p{Is_Script_Extensions=Kharoshthi}', "");
-    Expect(0, 68184, '\p{^Is_Script_Extensions=Kharoshthi}', "");
-    Expect(0, 68184, '\P{Is_Script_Extensions=Kharoshthi}', "");
-    Expect(1, 68184, '\P{^Is_Script_Extensions=Kharoshthi}', "");
-    Expect(0, 68185, '\p{Is_Script_Extensions=Kharoshthi}', "");
-    Expect(1, 68185, '\p{^Is_Script_Extensions=Kharoshthi}', "");
-    Expect(1, 68185, '\P{Is_Script_Extensions=Kharoshthi}', "");
-    Expect(0, 68185, '\P{^Is_Script_Extensions=Kharoshthi}', "");
-    Error('\p{Is_Scx=/a/ -KHAR}');
-    Error('\P{Is_Scx=/a/ -KHAR}');
+    Error('\p{Is_Scx=	/a/KHAR}');
+    Error('\P{Is_Scx=	/a/KHAR}');
     Expect(1, 68184, '\p{Is_Scx=khar}', "");
     Expect(0, 68184, '\p{^Is_Scx=khar}', "");
     Expect(0, 68184, '\P{Is_Scx=khar}', "");
@@ -146287,16 +147687,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68185, '\p{^Is_Scx=khar}', "");
     Expect(1, 68185, '\P{Is_Scx=khar}', "");
     Expect(0, 68185, '\P{^Is_Scx=khar}', "");
-    Expect(1, 68184, '\p{Is_Scx=-_Khar}', "");
-    Expect(0, 68184, '\p{^Is_Scx=-_Khar}', "");
-    Expect(0, 68184, '\P{Is_Scx=-_Khar}', "");
-    Expect(1, 68184, '\P{^Is_Scx=-_Khar}', "");
-    Expect(0, 68185, '\p{Is_Scx=-_Khar}', "");
-    Expect(1, 68185, '\p{^Is_Scx=-_Khar}', "");
-    Expect(1, 68185, '\P{Is_Scx=-_Khar}', "");
-    Expect(0, 68185, '\P{^Is_Scx=-_Khar}', "");
-    Error('\p{Script_Extensions=_	khmer/a/}');
-    Error('\P{Script_Extensions=_	khmer/a/}');
+    Expect(1, 68184, '\p{Is_Scx:	Khar}', "");
+    Expect(0, 68184, '\p{^Is_Scx:	Khar}', "");
+    Expect(0, 68184, '\P{Is_Scx:	Khar}', "");
+    Expect(1, 68184, '\P{^Is_Scx:	Khar}', "");
+    Expect(0, 68185, '\p{Is_Scx:	Khar}', "");
+    Expect(1, 68185, '\p{^Is_Scx:	Khar}', "");
+    Expect(1, 68185, '\P{Is_Scx:	Khar}', "");
+    Expect(0, 68185, '\P{^Is_Scx:	Khar}', "");
+    Error('\p{Script_Extensions=:=	-khmer}');
+    Error('\P{Script_Extensions=:=	-khmer}');
     Expect(1, 6655, '\p{Script_Extensions=:\AKhmer\z:}', "");;
     Expect(0, 6656, '\p{Script_Extensions=:\AKhmer\z:}', "");;
     Expect(1, 6655, '\p{Script_Extensions=khmer}', "");
@@ -146309,16 +147709,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6656, '\P{^Script_Extensions=khmer}', "");
     Expect(1, 6655, '\p{Script_Extensions=:\Akhmer\z:}', "");;
     Expect(0, 6656, '\p{Script_Extensions=:\Akhmer\z:}', "");;
-    Expect(1, 6655, '\p{Script_Extensions=	_Khmer}', "");
-    Expect(0, 6655, '\p{^Script_Extensions=	_Khmer}', "");
-    Expect(0, 6655, '\P{Script_Extensions=	_Khmer}', "");
-    Expect(1, 6655, '\P{^Script_Extensions=	_Khmer}', "");
-    Expect(0, 6656, '\p{Script_Extensions=	_Khmer}', "");
-    Expect(1, 6656, '\p{^Script_Extensions=	_Khmer}', "");
-    Expect(1, 6656, '\P{Script_Extensions=	_Khmer}', "");
-    Expect(0, 6656, '\P{^Script_Extensions=	_Khmer}', "");
-    Error('\p{Scx=/a/-Khmr}');
-    Error('\P{Scx=/a/-Khmr}');
+    Expect(1, 6655, '\p{Script_Extensions:    	KHMER}', "");
+    Expect(0, 6655, '\p{^Script_Extensions:    	KHMER}', "");
+    Expect(0, 6655, '\P{Script_Extensions:    	KHMER}', "");
+    Expect(1, 6655, '\P{^Script_Extensions:    	KHMER}', "");
+    Expect(0, 6656, '\p{Script_Extensions:    	KHMER}', "");
+    Expect(1, 6656, '\p{^Script_Extensions:    	KHMER}', "");
+    Expect(1, 6656, '\P{Script_Extensions:    	KHMER}', "");
+    Expect(0, 6656, '\P{^Script_Extensions:    	KHMER}', "");
+    Error('\p{Scx=	/a/KHMR}');
+    Error('\P{Scx=	/a/KHMR}');
     Expect(1, 6655, '\p{Scx=:\AKhmr\z:}', "");;
     Expect(0, 6656, '\p{Scx=:\AKhmr\z:}', "");;
     Expect(1, 6655, '\p{Scx=khmr}', "");
@@ -146331,34 +147731,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6656, '\P{^Scx=khmr}', "");
     Expect(1, 6655, '\p{Scx=:\Akhmr\z:}', "");;
     Expect(0, 6656, '\p{Scx=:\Akhmr\z:}', "");;
-    Expect(1, 6655, '\p{Scx=	khmr}', "");
-    Expect(0, 6655, '\p{^Scx=	khmr}', "");
-    Expect(0, 6655, '\P{Scx=	khmr}', "");
-    Expect(1, 6655, '\P{^Scx=	khmr}', "");
-    Expect(0, 6656, '\p{Scx=	khmr}', "");
-    Expect(1, 6656, '\p{^Scx=	khmr}', "");
-    Expect(1, 6656, '\P{Scx=	khmr}', "");
-    Expect(0, 6656, '\P{^Scx=	khmr}', "");
-    Error('\p{Is_Script_Extensions=:=-	khmer}');
-    Error('\P{Is_Script_Extensions=:=-	khmer}');
-    Expect(1, 6655, '\p{Is_Script_Extensions=khmer}', "");
-    Expect(0, 6655, '\p{^Is_Script_Extensions=khmer}', "");
-    Expect(0, 6655, '\P{Is_Script_Extensions=khmer}', "");
-    Expect(1, 6655, '\P{^Is_Script_Extensions=khmer}', "");
-    Expect(0, 6656, '\p{Is_Script_Extensions=khmer}', "");
-    Expect(1, 6656, '\p{^Is_Script_Extensions=khmer}', "");
-    Expect(1, 6656, '\P{Is_Script_Extensions=khmer}', "");
-    Expect(0, 6656, '\P{^Is_Script_Extensions=khmer}', "");
-    Expect(1, 6655, '\p{Is_Script_Extensions=	 Khmer}', "");
-    Expect(0, 6655, '\p{^Is_Script_Extensions=	 Khmer}', "");
-    Expect(0, 6655, '\P{Is_Script_Extensions=	 Khmer}', "");
-    Expect(1, 6655, '\P{^Is_Script_Extensions=	 Khmer}', "");
-    Expect(0, 6656, '\p{Is_Script_Extensions=	 Khmer}', "");
-    Expect(1, 6656, '\p{^Is_Script_Extensions=	 Khmer}', "");
-    Expect(1, 6656, '\P{Is_Script_Extensions=	 Khmer}', "");
-    Expect(0, 6656, '\P{^Is_Script_Extensions=	 Khmer}', "");
-    Error('\p{Is_Scx:   	khmr:=}');
-    Error('\P{Is_Scx:   	khmr:=}');
+    Expect(1, 6655, '\p{Scx=-_Khmr}', "");
+    Expect(0, 6655, '\p{^Scx=-_Khmr}', "");
+    Expect(0, 6655, '\P{Scx=-_Khmr}', "");
+    Expect(1, 6655, '\P{^Scx=-_Khmr}', "");
+    Expect(0, 6656, '\p{Scx=-_Khmr}', "");
+    Expect(1, 6656, '\p{^Scx=-_Khmr}', "");
+    Expect(1, 6656, '\P{Scx=-_Khmr}', "");
+    Expect(0, 6656, '\P{^Scx=-_Khmr}', "");
+    Error('\p{Is_Script_Extensions=_ Khmer:=}');
+    Error('\P{Is_Script_Extensions=_ Khmer:=}');
+    Expect(1, 6655, '\p{Is_Script_Extensions:khmer}', "");
+    Expect(0, 6655, '\p{^Is_Script_Extensions:khmer}', "");
+    Expect(0, 6655, '\P{Is_Script_Extensions:khmer}', "");
+    Expect(1, 6655, '\P{^Is_Script_Extensions:khmer}', "");
+    Expect(0, 6656, '\p{Is_Script_Extensions:khmer}', "");
+    Expect(1, 6656, '\p{^Is_Script_Extensions:khmer}', "");
+    Expect(1, 6656, '\P{Is_Script_Extensions:khmer}', "");
+    Expect(0, 6656, '\P{^Is_Script_Extensions:khmer}', "");
+    Expect(1, 6655, '\p{Is_Script_Extensions=--KHMER}', "");
+    Expect(0, 6655, '\p{^Is_Script_Extensions=--KHMER}', "");
+    Expect(0, 6655, '\P{Is_Script_Extensions=--KHMER}', "");
+    Expect(1, 6655, '\P{^Is_Script_Extensions=--KHMER}', "");
+    Expect(0, 6656, '\p{Is_Script_Extensions=--KHMER}', "");
+    Expect(1, 6656, '\p{^Is_Script_Extensions=--KHMER}', "");
+    Expect(1, 6656, '\P{Is_Script_Extensions=--KHMER}', "");
+    Expect(0, 6656, '\P{^Is_Script_Extensions=--KHMER}', "");
+    Error('\p{Is_Scx:	 	Khmr:=}');
+    Error('\P{Is_Scx:	 	Khmr:=}');
     Expect(1, 6655, '\p{Is_Scx=khmr}', "");
     Expect(0, 6655, '\p{^Is_Scx=khmr}', "");
     Expect(0, 6655, '\P{Is_Scx=khmr}', "");
@@ -146367,96 +147767,88 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6656, '\p{^Is_Scx=khmr}', "");
     Expect(1, 6656, '\P{Is_Scx=khmr}', "");
     Expect(0, 6656, '\P{^Is_Scx=khmr}', "");
-    Expect(1, 6655, '\p{Is_Scx=--Khmr}', "");
-    Expect(0, 6655, '\p{^Is_Scx=--Khmr}', "");
-    Expect(0, 6655, '\P{Is_Scx=--Khmr}', "");
-    Expect(1, 6655, '\P{^Is_Scx=--Khmr}', "");
-    Expect(0, 6656, '\p{Is_Scx=--Khmr}', "");
-    Expect(1, 6656, '\p{^Is_Scx=--Khmr}', "");
-    Expect(1, 6656, '\P{Is_Scx=--Khmr}', "");
-    Expect(0, 6656, '\P{^Is_Scx=--Khmr}', "");
-    Error('\p{Script_Extensions=:=-Khojki}');
-    Error('\P{Script_Extensions=:=-Khojki}');
-    Expect(1, 70206, '\p{Script_Extensions=:\AKhojki\z:}', "");;
-    Expect(0, 70207, '\p{Script_Extensions=:\AKhojki\z:}', "");;
-    Expect(1, 70206, '\p{Script_Extensions=khojki}', "");
-    Expect(0, 70206, '\p{^Script_Extensions=khojki}', "");
-    Expect(0, 70206, '\P{Script_Extensions=khojki}', "");
-    Expect(1, 70206, '\P{^Script_Extensions=khojki}', "");
-    Expect(0, 70207, '\p{Script_Extensions=khojki}', "");
-    Expect(1, 70207, '\p{^Script_Extensions=khojki}', "");
-    Expect(1, 70207, '\P{Script_Extensions=khojki}', "");
-    Expect(0, 70207, '\P{^Script_Extensions=khojki}', "");
-    Expect(1, 70206, '\p{Script_Extensions=:\Akhojki\z:}', "");;
-    Expect(0, 70207, '\p{Script_Extensions=:\Akhojki\z:}', "");;
-    Expect(1, 70206, '\p{Script_Extensions:	_	Khojki}', "");
-    Expect(0, 70206, '\p{^Script_Extensions:	_	Khojki}', "");
-    Expect(0, 70206, '\P{Script_Extensions:	_	Khojki}', "");
-    Expect(1, 70206, '\P{^Script_Extensions:	_	Khojki}', "");
-    Expect(0, 70207, '\p{Script_Extensions:	_	Khojki}', "");
-    Expect(1, 70207, '\p{^Script_Extensions:	_	Khojki}', "");
-    Expect(1, 70207, '\P{Script_Extensions:	_	Khojki}', "");
-    Expect(0, 70207, '\P{^Script_Extensions:	_	Khojki}', "");
-    Error('\p{Scx=/a/	Khoj}');
-    Error('\P{Scx=/a/	Khoj}');
-    Expect(1, 70206, '\p{Scx=:\AKhoj\z:}', "");;
-    Expect(0, 70207, '\p{Scx=:\AKhoj\z:}', "");;
-    Expect(1, 70206, '\p{Scx=khoj}', "");
-    Expect(0, 70206, '\p{^Scx=khoj}', "");
-    Expect(0, 70206, '\P{Scx=khoj}', "");
-    Expect(1, 70206, '\P{^Scx=khoj}', "");
-    Expect(0, 70207, '\p{Scx=khoj}', "");
-    Expect(1, 70207, '\p{^Scx=khoj}', "");
-    Expect(1, 70207, '\P{Scx=khoj}', "");
-    Expect(0, 70207, '\P{^Scx=khoj}', "");
-    Expect(1, 70206, '\p{Scx=:\Akhoj\z:}', "");;
-    Expect(0, 70207, '\p{Scx=:\Akhoj\z:}', "");;
-    Expect(1, 70206, '\p{Scx=	 KHOJ}', "");
-    Expect(0, 70206, '\p{^Scx=	 KHOJ}', "");
-    Expect(0, 70206, '\P{Scx=	 KHOJ}', "");
-    Expect(1, 70206, '\P{^Scx=	 KHOJ}', "");
-    Expect(0, 70207, '\p{Scx=	 KHOJ}', "");
-    Expect(1, 70207, '\p{^Scx=	 KHOJ}', "");
-    Expect(1, 70207, '\P{Scx=	 KHOJ}', "");
-    Expect(0, 70207, '\P{^Scx=	 KHOJ}', "");
-    Error('\p{Is_Script_Extensions:   _KHOJKI:=}');
-    Error('\P{Is_Script_Extensions:   _KHOJKI:=}');
-    Expect(1, 70206, '\p{Is_Script_Extensions=khojki}', "");
-    Expect(0, 70206, '\p{^Is_Script_Extensions=khojki}', "");
-    Expect(0, 70206, '\P{Is_Script_Extensions=khojki}', "");
-    Expect(1, 70206, '\P{^Is_Script_Extensions=khojki}', "");
-    Expect(0, 70207, '\p{Is_Script_Extensions=khojki}', "");
-    Expect(1, 70207, '\p{^Is_Script_Extensions=khojki}', "");
-    Expect(1, 70207, '\P{Is_Script_Extensions=khojki}', "");
-    Expect(0, 70207, '\P{^Is_Script_Extensions=khojki}', "");
-    Expect(1, 70206, '\p{Is_Script_Extensions=	-khojki}', "");
-    Expect(0, 70206, '\p{^Is_Script_Extensions=	-khojki}', "");
-    Expect(0, 70206, '\P{Is_Script_Extensions=	-khojki}', "");
-    Expect(1, 70206, '\P{^Is_Script_Extensions=	-khojki}', "");
-    Expect(0, 70207, '\p{Is_Script_Extensions=	-khojki}', "");
-    Expect(1, 70207, '\p{^Is_Script_Extensions=	-khojki}', "");
-    Expect(1, 70207, '\P{Is_Script_Extensions=	-khojki}', "");
-    Expect(0, 70207, '\P{^Is_Script_Extensions=	-khojki}', "");
-    Error('\p{Is_Scx=/a/-_khoj}');
-    Error('\P{Is_Scx=/a/-_khoj}');
-    Expect(1, 70206, '\p{Is_Scx:	khoj}', "");
-    Expect(0, 70206, '\p{^Is_Scx:	khoj}', "");
-    Expect(0, 70206, '\P{Is_Scx:	khoj}', "");
-    Expect(1, 70206, '\P{^Is_Scx:	khoj}', "");
-    Expect(0, 70207, '\p{Is_Scx:	khoj}', "");
-    Expect(1, 70207, '\p{^Is_Scx:	khoj}', "");
-    Expect(1, 70207, '\P{Is_Scx:	khoj}', "");
-    Expect(0, 70207, '\P{^Is_Scx:	khoj}', "");
-    Expect(1, 70206, '\p{Is_Scx= Khoj}', "");
-    Expect(0, 70206, '\p{^Is_Scx= Khoj}', "");
-    Expect(0, 70206, '\P{Is_Scx= Khoj}', "");
-    Expect(1, 70206, '\P{^Is_Scx= Khoj}', "");
-    Expect(0, 70207, '\p{Is_Scx= Khoj}', "");
-    Expect(1, 70207, '\p{^Is_Scx= Khoj}', "");
-    Expect(1, 70207, '\P{Is_Scx= Khoj}', "");
-    Expect(0, 70207, '\P{^Is_Scx= Khoj}', "");
-    Error('\p{Script_Extensions=:=_	Khitan_Small_script}');
-    Error('\P{Script_Extensions=:=_	Khitan_Small_script}');
+    Expect(1, 6655, '\p{Is_Scx=	_Khmr}', "");
+    Expect(0, 6655, '\p{^Is_Scx=	_Khmr}', "");
+    Expect(0, 6655, '\P{Is_Scx=	_Khmr}', "");
+    Expect(1, 6655, '\P{^Is_Scx=	_Khmr}', "");
+    Expect(0, 6656, '\p{Is_Scx=	_Khmr}', "");
+    Expect(1, 6656, '\p{^Is_Scx=	_Khmr}', "");
+    Expect(1, 6656, '\P{Is_Scx=	_Khmr}', "");
+    Expect(0, 6656, '\P{^Is_Scx=	_Khmr}', "");
+    Error('\p{Script_Extensions= :=khojki}');
+    Error('\P{Script_Extensions= :=khojki}');
+    Expect(1, 70209, '\p{Script_Extensions=:\AKhojki\z:}', "");;
+    Expect(0, 70210, '\p{Script_Extensions=:\AKhojki\z:}', "");;
+    Expect(1, 70209, '\p{Script_Extensions=khojki}', "");
+    Expect(0, 70209, '\p{^Script_Extensions=khojki}', "");
+    Expect(0, 70209, '\P{Script_Extensions=khojki}', "");
+    Expect(1, 70209, '\P{^Script_Extensions=khojki}', "");
+    Expect(0, 70210, '\p{Script_Extensions=khojki}', "");
+    Expect(1, 70210, '\p{^Script_Extensions=khojki}', "");
+    Expect(1, 70210, '\P{Script_Extensions=khojki}', "");
+    Expect(0, 70210, '\P{^Script_Extensions=khojki}', "");
+    Expect(1, 70209, '\p{Script_Extensions=:\Akhojki\z:}', "");;
+    Expect(0, 70210, '\p{Script_Extensions=:\Akhojki\z:}', "");;
+    Expect(1, 70209, '\p{Script_Extensions= -khojki}', "");
+    Expect(0, 70209, '\p{^Script_Extensions= -khojki}', "");
+    Expect(0, 70209, '\P{Script_Extensions= -khojki}', "");
+    Expect(1, 70209, '\P{^Script_Extensions= -khojki}', "");
+    Expect(0, 70210, '\p{Script_Extensions= -khojki}', "");
+    Expect(1, 70210, '\p{^Script_Extensions= -khojki}', "");
+    Expect(1, 70210, '\P{Script_Extensions= -khojki}', "");
+    Expect(0, 70210, '\P{^Script_Extensions= -khojki}', "");
+    Error('\p{Scx:   := Khoj}');
+    Error('\P{Scx:   := Khoj}');
+    Expect(1, 70209, '\p{Scx=:\AKhoj\z:}', "");;
+    Expect(0, 70210, '\p{Scx=:\AKhoj\z:}', "");;
+    Expect(1, 70209, '\p{Scx=khoj}', "");
+    Expect(0, 70209, '\p{^Scx=khoj}', "");
+    Expect(0, 70209, '\P{Scx=khoj}', "");
+    Expect(1, 70209, '\P{^Scx=khoj}', "");
+    Expect(0, 70210, '\p{Scx=khoj}', "");
+    Expect(1, 70210, '\p{^Scx=khoj}', "");
+    Expect(1, 70210, '\P{Scx=khoj}', "");
+    Expect(0, 70210, '\P{^Scx=khoj}', "");
+    Expect(1, 70209, '\p{Scx=:\Akhoj\z:}', "");;
+    Expect(0, 70210, '\p{Scx=:\Akhoj\z:}', "");;
+    Error('\p{Is_Script_Extensions=/a/	KHOJKI}');
+    Error('\P{Is_Script_Extensions=/a/	KHOJKI}');
+    Expect(1, 70209, '\p{Is_Script_Extensions=khojki}', "");
+    Expect(0, 70209, '\p{^Is_Script_Extensions=khojki}', "");
+    Expect(0, 70209, '\P{Is_Script_Extensions=khojki}', "");
+    Expect(1, 70209, '\P{^Is_Script_Extensions=khojki}', "");
+    Expect(0, 70210, '\p{Is_Script_Extensions=khojki}', "");
+    Expect(1, 70210, '\p{^Is_Script_Extensions=khojki}', "");
+    Expect(1, 70210, '\P{Is_Script_Extensions=khojki}', "");
+    Expect(0, 70210, '\P{^Is_Script_Extensions=khojki}', "");
+    Expect(1, 70209, '\p{Is_Script_Extensions=	KHOJKI}', "");
+    Expect(0, 70209, '\p{^Is_Script_Extensions=	KHOJKI}', "");
+    Expect(0, 70209, '\P{Is_Script_Extensions=	KHOJKI}', "");
+    Expect(1, 70209, '\P{^Is_Script_Extensions=	KHOJKI}', "");
+    Expect(0, 70210, '\p{Is_Script_Extensions=	KHOJKI}', "");
+    Expect(1, 70210, '\p{^Is_Script_Extensions=	KHOJKI}', "");
+    Expect(1, 70210, '\P{Is_Script_Extensions=	KHOJKI}', "");
+    Expect(0, 70210, '\P{^Is_Script_Extensions=	KHOJKI}', "");
+    Error('\p{Is_Scx=:=khoj}');
+    Error('\P{Is_Scx=:=khoj}');
+    Expect(1, 70209, '\p{Is_Scx=khoj}', "");
+    Expect(0, 70209, '\p{^Is_Scx=khoj}', "");
+    Expect(0, 70209, '\P{Is_Scx=khoj}', "");
+    Expect(1, 70209, '\P{^Is_Scx=khoj}', "");
+    Expect(0, 70210, '\p{Is_Scx=khoj}', "");
+    Expect(1, 70210, '\p{^Is_Scx=khoj}', "");
+    Expect(1, 70210, '\P{Is_Scx=khoj}', "");
+    Expect(0, 70210, '\P{^Is_Scx=khoj}', "");
+    Expect(1, 70209, '\p{Is_Scx=	KHOJ}', "");
+    Expect(0, 70209, '\p{^Is_Scx=	KHOJ}', "");
+    Expect(0, 70209, '\P{Is_Scx=	KHOJ}', "");
+    Expect(1, 70209, '\P{^Is_Scx=	KHOJ}', "");
+    Expect(0, 70210, '\p{Is_Scx=	KHOJ}', "");
+    Expect(1, 70210, '\p{^Is_Scx=	KHOJ}', "");
+    Expect(1, 70210, '\P{Is_Scx=	KHOJ}', "");
+    Expect(0, 70210, '\P{^Is_Scx=	KHOJ}', "");
+    Error('\p{Script_Extensions=	:=Khitan_small_SCRIPT}');
+    Error('\P{Script_Extensions=	:=Khitan_small_SCRIPT}');
     Expect(1, 101589, '\p{Script_Extensions=:\AKhitan_Small_Script\z:}', "");;
     Expect(0, 101590, '\p{Script_Extensions=:\AKhitan_Small_Script\z:}', "");;
     Expect(1, 101589, '\p{Script_Extensions=khitansmallscript}', "");
@@ -146469,16 +147861,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 101590, '\P{^Script_Extensions=khitansmallscript}', "");
     Expect(1, 101589, '\p{Script_Extensions=:\Akhitansmallscript\z:}', "");;
     Expect(0, 101590, '\p{Script_Extensions=:\Akhitansmallscript\z:}', "");;
-    Expect(1, 101589, '\p{Script_Extensions=-Khitan_small_Script}', "");
-    Expect(0, 101589, '\p{^Script_Extensions=-Khitan_small_Script}', "");
-    Expect(0, 101589, '\P{Script_Extensions=-Khitan_small_Script}', "");
-    Expect(1, 101589, '\P{^Script_Extensions=-Khitan_small_Script}', "");
-    Expect(0, 101590, '\p{Script_Extensions=-Khitan_small_Script}', "");
-    Expect(1, 101590, '\p{^Script_Extensions=-Khitan_small_Script}', "");
-    Expect(1, 101590, '\P{Script_Extensions=-Khitan_small_Script}', "");
-    Expect(0, 101590, '\P{^Script_Extensions=-Khitan_small_Script}', "");
-    Error('\p{Scx=	:=KITS}');
-    Error('\P{Scx=	:=KITS}');
+    Expect(1, 101589, '\p{Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(0, 101589, '\p{^Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(0, 101589, '\P{Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(1, 101589, '\P{^Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(0, 101590, '\p{Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(1, 101590, '\p{^Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(1, 101590, '\P{Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Expect(0, 101590, '\P{^Script_Extensions=		Khitan_Small_SCRIPT}', "");
+    Error('\p{Scx=KITS/a/}');
+    Error('\P{Scx=KITS/a/}');
     Expect(1, 101589, '\p{Scx=:\AKits\z:}', "");;
     Expect(0, 101590, '\p{Scx=:\AKits\z:}', "");;
     Expect(1, 101589, '\p{Scx=kits}', "");
@@ -146491,16 +147883,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 101590, '\P{^Scx=kits}', "");
     Expect(1, 101589, '\p{Scx=:\Akits\z:}', "");;
     Expect(0, 101590, '\p{Scx=:\Akits\z:}', "");;
-    Expect(1, 101589, '\p{Scx=- Kits}', "");
-    Expect(0, 101589, '\p{^Scx=- Kits}', "");
-    Expect(0, 101589, '\P{Scx=- Kits}', "");
-    Expect(1, 101589, '\P{^Scx=- Kits}', "");
-    Expect(0, 101590, '\p{Scx=- Kits}', "");
-    Expect(1, 101590, '\p{^Scx=- Kits}', "");
-    Expect(1, 101590, '\P{Scx=- Kits}', "");
-    Expect(0, 101590, '\P{^Scx=- Kits}', "");
-    Error('\p{Is_Script_Extensions=:=_ KHITAN_Small_script}');
-    Error('\P{Is_Script_Extensions=:=_ KHITAN_Small_script}');
+    Expect(1, 101589, '\p{Scx=	kits}', "");
+    Expect(0, 101589, '\p{^Scx=	kits}', "");
+    Expect(0, 101589, '\P{Scx=	kits}', "");
+    Expect(1, 101589, '\P{^Scx=	kits}', "");
+    Expect(0, 101590, '\p{Scx=	kits}', "");
+    Expect(1, 101590, '\p{^Scx=	kits}', "");
+    Expect(1, 101590, '\P{Scx=	kits}', "");
+    Expect(0, 101590, '\P{^Scx=	kits}', "");
+    Error('\p{Is_Script_Extensions:	:= 	KHITAN_Small_SCRIPT}');
+    Error('\P{Is_Script_Extensions:	:= 	KHITAN_Small_SCRIPT}');
     Expect(1, 101589, '\p{Is_Script_Extensions=khitansmallscript}', "");
     Expect(0, 101589, '\p{^Is_Script_Extensions=khitansmallscript}', "");
     Expect(0, 101589, '\P{Is_Script_Extensions=khitansmallscript}', "");
@@ -146509,34 +147901,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101590, '\p{^Is_Script_Extensions=khitansmallscript}', "");
     Expect(1, 101590, '\P{Is_Script_Extensions=khitansmallscript}', "");
     Expect(0, 101590, '\P{^Is_Script_Extensions=khitansmallscript}', "");
-    Expect(1, 101589, '\p{Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(0, 101589, '\p{^Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(0, 101589, '\P{Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(1, 101589, '\P{^Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(0, 101590, '\p{Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(1, 101590, '\p{^Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(1, 101590, '\P{Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Expect(0, 101590, '\P{^Is_Script_Extensions=_	KHITAN_small_script}', "");
-    Error('\p{Is_Scx=	:=kits}');
-    Error('\P{Is_Scx=	:=kits}');
-    Expect(1, 101589, '\p{Is_Scx:kits}', "");
-    Expect(0, 101589, '\p{^Is_Scx:kits}', "");
-    Expect(0, 101589, '\P{Is_Scx:kits}', "");
-    Expect(1, 101589, '\P{^Is_Scx:kits}', "");
-    Expect(0, 101590, '\p{Is_Scx:kits}', "");
-    Expect(1, 101590, '\p{^Is_Scx:kits}', "");
-    Expect(1, 101590, '\P{Is_Scx:kits}', "");
-    Expect(0, 101590, '\P{^Is_Scx:kits}', "");
-    Expect(1, 101589, '\p{Is_Scx=-	kits}', "");
-    Expect(0, 101589, '\p{^Is_Scx=-	kits}', "");
-    Expect(0, 101589, '\P{Is_Scx=-	kits}', "");
-    Expect(1, 101589, '\P{^Is_Scx=-	kits}', "");
-    Expect(0, 101590, '\p{Is_Scx=-	kits}', "");
-    Expect(1, 101590, '\p{^Is_Scx=-	kits}', "");
-    Expect(1, 101590, '\P{Is_Scx=-	kits}', "");
-    Expect(0, 101590, '\P{^Is_Scx=-	kits}', "");
-    Error('\p{Script_Extensions= 	kannada/a/}');
-    Error('\P{Script_Extensions= 	kannada/a/}');
+    Expect(1, 101589, '\p{Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(0, 101589, '\p{^Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(0, 101589, '\P{Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(1, 101589, '\P{^Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(0, 101590, '\p{Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(1, 101590, '\p{^Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(1, 101590, '\P{Is_Script_Extensions=  khitan_Small_script}', "");
+    Expect(0, 101590, '\P{^Is_Script_Extensions=  khitan_Small_script}', "");
+    Error('\p{Is_Scx=		KITS:=}');
+    Error('\P{Is_Scx=		KITS:=}');
+    Expect(1, 101589, '\p{Is_Scx=kits}', "");
+    Expect(0, 101589, '\p{^Is_Scx=kits}', "");
+    Expect(0, 101589, '\P{Is_Scx=kits}', "");
+    Expect(1, 101589, '\P{^Is_Scx=kits}', "");
+    Expect(0, 101590, '\p{Is_Scx=kits}', "");
+    Expect(1, 101590, '\p{^Is_Scx=kits}', "");
+    Expect(1, 101590, '\P{Is_Scx=kits}', "");
+    Expect(0, 101590, '\P{^Is_Scx=kits}', "");
+    Expect(1, 101589, '\p{Is_Scx=-	KITS}', "");
+    Expect(0, 101589, '\p{^Is_Scx=-	KITS}', "");
+    Expect(0, 101589, '\P{Is_Scx=-	KITS}', "");
+    Expect(1, 101589, '\P{^Is_Scx=-	KITS}', "");
+    Expect(0, 101590, '\p{Is_Scx=-	KITS}', "");
+    Expect(1, 101590, '\p{^Is_Scx=-	KITS}', "");
+    Expect(1, 101590, '\P{Is_Scx=-	KITS}', "");
+    Expect(0, 101590, '\P{^Is_Scx=-	KITS}', "");
+    Error('\p{Script_Extensions=/a/ _KANNADA}');
+    Error('\P{Script_Extensions=/a/ _KANNADA}');
     Expect(1, 43061, '\p{Script_Extensions=:\AKannada\z:}', "");;
     Expect(0, 43062, '\p{Script_Extensions=:\AKannada\z:}', "");;
     Expect(1, 43061, '\p{Script_Extensions=kannada}', "");
@@ -146549,16 +147941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43062, '\P{^Script_Extensions=kannada}', "");
     Expect(1, 43061, '\p{Script_Extensions=:\Akannada\z:}', "");;
     Expect(0, 43062, '\p{Script_Extensions=:\Akannada\z:}', "");;
-    Expect(1, 43061, '\p{Script_Extensions:   - KANNADA}', "");
-    Expect(0, 43061, '\p{^Script_Extensions:   - KANNADA}', "");
-    Expect(0, 43061, '\P{Script_Extensions:   - KANNADA}', "");
-    Expect(1, 43061, '\P{^Script_Extensions:   - KANNADA}', "");
-    Expect(0, 43062, '\p{Script_Extensions:   - KANNADA}', "");
-    Expect(1, 43062, '\p{^Script_Extensions:   - KANNADA}', "");
-    Expect(1, 43062, '\P{Script_Extensions:   - KANNADA}', "");
-    Expect(0, 43062, '\P{^Script_Extensions:   - KANNADA}', "");
-    Error('\p{Scx= /a/KNDA}');
-    Error('\P{Scx= /a/KNDA}');
+    Expect(1, 43061, '\p{Script_Extensions=-Kannada}', "");
+    Expect(0, 43061, '\p{^Script_Extensions=-Kannada}', "");
+    Expect(0, 43061, '\P{Script_Extensions=-Kannada}', "");
+    Expect(1, 43061, '\P{^Script_Extensions=-Kannada}', "");
+    Expect(0, 43062, '\p{Script_Extensions=-Kannada}', "");
+    Expect(1, 43062, '\p{^Script_Extensions=-Kannada}', "");
+    Expect(1, 43062, '\P{Script_Extensions=-Kannada}', "");
+    Expect(0, 43062, '\P{^Script_Extensions=-Kannada}', "");
+    Error('\p{Scx=:=	Knda}');
+    Error('\P{Scx=:=	Knda}');
     Expect(1, 43061, '\p{Scx=:\AKnda\z:}', "");;
     Expect(0, 43062, '\p{Scx=:\AKnda\z:}', "");;
     Expect(1, 43061, '\p{Scx=knda}', "");
@@ -146571,34 +147963,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43062, '\P{^Scx=knda}', "");
     Expect(1, 43061, '\p{Scx=:\Aknda\z:}', "");;
     Expect(0, 43062, '\p{Scx=:\Aknda\z:}', "");;
-    Expect(1, 43061, '\p{Scx=	-Knda}', "");
-    Expect(0, 43061, '\p{^Scx=	-Knda}', "");
-    Expect(0, 43061, '\P{Scx=	-Knda}', "");
-    Expect(1, 43061, '\P{^Scx=	-Knda}', "");
-    Expect(0, 43062, '\p{Scx=	-Knda}', "");
-    Expect(1, 43062, '\p{^Scx=	-Knda}', "");
-    Expect(1, 43062, '\P{Scx=	-Knda}', "");
-    Expect(0, 43062, '\P{^Scx=	-Knda}', "");
-    Error('\p{Is_Script_Extensions=/a/--kannada}');
-    Error('\P{Is_Script_Extensions=/a/--kannada}');
-    Expect(1, 43061, '\p{Is_Script_Extensions=kannada}', "");
-    Expect(0, 43061, '\p{^Is_Script_Extensions=kannada}', "");
-    Expect(0, 43061, '\P{Is_Script_Extensions=kannada}', "");
-    Expect(1, 43061, '\P{^Is_Script_Extensions=kannada}', "");
-    Expect(0, 43062, '\p{Is_Script_Extensions=kannada}', "");
-    Expect(1, 43062, '\p{^Is_Script_Extensions=kannada}', "");
-    Expect(1, 43062, '\P{Is_Script_Extensions=kannada}', "");
-    Expect(0, 43062, '\P{^Is_Script_Extensions=kannada}', "");
-    Expect(1, 43061, '\p{Is_Script_Extensions=-	kannada}', "");
-    Expect(0, 43061, '\p{^Is_Script_Extensions=-	kannada}', "");
-    Expect(0, 43061, '\P{Is_Script_Extensions=-	kannada}', "");
-    Expect(1, 43061, '\P{^Is_Script_Extensions=-	kannada}', "");
-    Expect(0, 43062, '\p{Is_Script_Extensions=-	kannada}', "");
-    Expect(1, 43062, '\p{^Is_Script_Extensions=-	kannada}', "");
-    Expect(1, 43062, '\P{Is_Script_Extensions=-	kannada}', "");
-    Expect(0, 43062, '\P{^Is_Script_Extensions=-	kannada}', "");
-    Error('\p{Is_Scx=-:=Knda}');
-    Error('\P{Is_Scx=-:=Knda}');
+    Expect(1, 43061, '\p{Scx=	Knda}', "");
+    Expect(0, 43061, '\p{^Scx=	Knda}', "");
+    Expect(0, 43061, '\P{Scx=	Knda}', "");
+    Expect(1, 43061, '\P{^Scx=	Knda}', "");
+    Expect(0, 43062, '\p{Scx=	Knda}', "");
+    Expect(1, 43062, '\p{^Scx=	Knda}', "");
+    Expect(1, 43062, '\P{Scx=	Knda}', "");
+    Expect(0, 43062, '\P{^Scx=	Knda}', "");
+    Error('\p{Is_Script_Extensions=  kannada:=}');
+    Error('\P{Is_Script_Extensions=  kannada:=}');
+    Expect(1, 43061, '\p{Is_Script_Extensions:kannada}', "");
+    Expect(0, 43061, '\p{^Is_Script_Extensions:kannada}', "");
+    Expect(0, 43061, '\P{Is_Script_Extensions:kannada}', "");
+    Expect(1, 43061, '\P{^Is_Script_Extensions:kannada}', "");
+    Expect(0, 43062, '\p{Is_Script_Extensions:kannada}', "");
+    Expect(1, 43062, '\p{^Is_Script_Extensions:kannada}', "");
+    Expect(1, 43062, '\P{Is_Script_Extensions:kannada}', "");
+    Expect(0, 43062, '\P{^Is_Script_Extensions:kannada}', "");
+    Expect(1, 43061, '\p{Is_Script_Extensions:Kannada}', "");
+    Expect(0, 43061, '\p{^Is_Script_Extensions:Kannada}', "");
+    Expect(0, 43061, '\P{Is_Script_Extensions:Kannada}', "");
+    Expect(1, 43061, '\P{^Is_Script_Extensions:Kannada}', "");
+    Expect(0, 43062, '\p{Is_Script_Extensions:Kannada}', "");
+    Expect(1, 43062, '\p{^Is_Script_Extensions:Kannada}', "");
+    Expect(1, 43062, '\P{Is_Script_Extensions:Kannada}', "");
+    Expect(0, 43062, '\P{^Is_Script_Extensions:Kannada}', "");
+    Error('\p{Is_Scx:   Knda:=}');
+    Error('\P{Is_Scx:   Knda:=}');
     Expect(1, 43061, '\p{Is_Scx=knda}', "");
     Expect(0, 43061, '\p{^Is_Scx=knda}', "");
     Expect(0, 43061, '\P{Is_Scx=knda}', "");
@@ -146607,38 +147999,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43062, '\p{^Is_Scx=knda}', "");
     Expect(1, 43062, '\P{Is_Scx=knda}', "");
     Expect(0, 43062, '\P{^Is_Scx=knda}', "");
-    Expect(1, 43061, '\p{Is_Scx=-KNDA}', "");
-    Expect(0, 43061, '\p{^Is_Scx=-KNDA}', "");
-    Expect(0, 43061, '\P{Is_Scx=-KNDA}', "");
-    Expect(1, 43061, '\P{^Is_Scx=-KNDA}', "");
-    Expect(0, 43062, '\p{Is_Scx=-KNDA}', "");
-    Expect(1, 43062, '\p{^Is_Scx=-KNDA}', "");
-    Expect(1, 43062, '\P{Is_Scx=-KNDA}', "");
-    Expect(0, 43062, '\P{^Is_Scx=-KNDA}', "");
-    Error('\p{Script_Extensions=/a/-Kaithi}');
-    Error('\P{Script_Extensions=/a/-Kaithi}');
+    Expect(1, 43061, '\p{Is_Scx=	_Knda}', "");
+    Expect(0, 43061, '\p{^Is_Scx=	_Knda}', "");
+    Expect(0, 43061, '\P{Is_Scx=	_Knda}', "");
+    Expect(1, 43061, '\P{^Is_Scx=	_Knda}', "");
+    Expect(0, 43062, '\p{Is_Scx=	_Knda}', "");
+    Expect(1, 43062, '\p{^Is_Scx=	_Knda}', "");
+    Expect(1, 43062, '\P{Is_Scx=	_Knda}', "");
+    Expect(0, 43062, '\P{^Is_Scx=	_Knda}', "");
+    Error('\p{Script_Extensions=/a/  KAITHI}');
+    Error('\P{Script_Extensions=/a/  KAITHI}');
     Expect(1, 69837, '\p{Script_Extensions=:\AKaithi\z:}', "");;
     Expect(0, 69838, '\p{Script_Extensions=:\AKaithi\z:}', "");;
-    Expect(1, 69837, '\p{Script_Extensions: kaithi}', "");
-    Expect(0, 69837, '\p{^Script_Extensions: kaithi}', "");
-    Expect(0, 69837, '\P{Script_Extensions: kaithi}', "");
-    Expect(1, 69837, '\P{^Script_Extensions: kaithi}', "");
-    Expect(0, 69838, '\p{Script_Extensions: kaithi}', "");
-    Expect(1, 69838, '\p{^Script_Extensions: kaithi}', "");
-    Expect(1, 69838, '\P{Script_Extensions: kaithi}', "");
-    Expect(0, 69838, '\P{^Script_Extensions: kaithi}', "");
+    Expect(1, 69837, '\p{Script_Extensions=kaithi}', "");
+    Expect(0, 69837, '\p{^Script_Extensions=kaithi}', "");
+    Expect(0, 69837, '\P{Script_Extensions=kaithi}', "");
+    Expect(1, 69837, '\P{^Script_Extensions=kaithi}', "");
+    Expect(0, 69838, '\p{Script_Extensions=kaithi}', "");
+    Expect(1, 69838, '\p{^Script_Extensions=kaithi}', "");
+    Expect(1, 69838, '\P{Script_Extensions=kaithi}', "");
+    Expect(0, 69838, '\P{^Script_Extensions=kaithi}', "");
     Expect(1, 69837, '\p{Script_Extensions=:\Akaithi\z:}', "");;
     Expect(0, 69838, '\p{Script_Extensions=:\Akaithi\z:}', "");;
-    Expect(1, 69837, '\p{Script_Extensions= -KAITHI}', "");
-    Expect(0, 69837, '\p{^Script_Extensions= -KAITHI}', "");
-    Expect(0, 69837, '\P{Script_Extensions= -KAITHI}', "");
-    Expect(1, 69837, '\P{^Script_Extensions= -KAITHI}', "");
-    Expect(0, 69838, '\p{Script_Extensions= -KAITHI}', "");
-    Expect(1, 69838, '\p{^Script_Extensions= -KAITHI}', "");
-    Expect(1, 69838, '\P{Script_Extensions= -KAITHI}', "");
-    Expect(0, 69838, '\P{^Script_Extensions= -KAITHI}', "");
-    Error('\p{Scx:   	/a/KTHI}');
-    Error('\P{Scx:   	/a/KTHI}');
+    Expect(1, 69837, '\p{Script_Extensions=__Kaithi}', "");
+    Expect(0, 69837, '\p{^Script_Extensions=__Kaithi}', "");
+    Expect(0, 69837, '\P{Script_Extensions=__Kaithi}', "");
+    Expect(1, 69837, '\P{^Script_Extensions=__Kaithi}', "");
+    Expect(0, 69838, '\p{Script_Extensions=__Kaithi}', "");
+    Expect(1, 69838, '\p{^Script_Extensions=__Kaithi}', "");
+    Expect(1, 69838, '\P{Script_Extensions=__Kaithi}', "");
+    Expect(0, 69838, '\P{^Script_Extensions=__Kaithi}', "");
+    Error('\p{Scx= -Kthi/a/}');
+    Error('\P{Scx= -Kthi/a/}');
     Expect(1, 69837, '\p{Scx=:\AKthi\z:}', "");;
     Expect(0, 69838, '\p{Scx=:\AKthi\z:}', "");;
     Expect(1, 69837, '\p{Scx=kthi}', "");
@@ -146651,16 +148043,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69838, '\P{^Scx=kthi}', "");
     Expect(1, 69837, '\p{Scx=:\Akthi\z:}', "");;
     Expect(0, 69838, '\p{Scx=:\Akthi\z:}', "");;
-    Expect(1, 69837, '\p{Scx=- KTHI}', "");
-    Expect(0, 69837, '\p{^Scx=- KTHI}', "");
-    Expect(0, 69837, '\P{Scx=- KTHI}', "");
-    Expect(1, 69837, '\P{^Scx=- KTHI}', "");
-    Expect(0, 69838, '\p{Scx=- KTHI}', "");
-    Expect(1, 69838, '\p{^Scx=- KTHI}', "");
-    Expect(1, 69838, '\P{Scx=- KTHI}', "");
-    Expect(0, 69838, '\P{^Scx=- KTHI}', "");
-    Error('\p{Is_Script_Extensions=:=		Kaithi}');
-    Error('\P{Is_Script_Extensions=:=		Kaithi}');
+    Expect(1, 69837, '\p{Scx= Kthi}', "");
+    Expect(0, 69837, '\p{^Scx= Kthi}', "");
+    Expect(0, 69837, '\P{Scx= Kthi}', "");
+    Expect(1, 69837, '\P{^Scx= Kthi}', "");
+    Expect(0, 69838, '\p{Scx= Kthi}', "");
+    Expect(1, 69838, '\p{^Scx= Kthi}', "");
+    Expect(1, 69838, '\P{Scx= Kthi}', "");
+    Expect(0, 69838, '\P{^Scx= Kthi}', "");
+    Error('\p{Is_Script_Extensions= :=Kaithi}');
+    Error('\P{Is_Script_Extensions= :=Kaithi}');
     Expect(1, 69837, '\p{Is_Script_Extensions=kaithi}', "");
     Expect(0, 69837, '\p{^Is_Script_Extensions=kaithi}', "");
     Expect(0, 69837, '\P{Is_Script_Extensions=kaithi}', "");
@@ -146669,16 +148061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69838, '\p{^Is_Script_Extensions=kaithi}', "");
     Expect(1, 69838, '\P{Is_Script_Extensions=kaithi}', "");
     Expect(0, 69838, '\P{^Is_Script_Extensions=kaithi}', "");
-    Expect(1, 69837, '\p{Is_Script_Extensions=--Kaithi}', "");
-    Expect(0, 69837, '\p{^Is_Script_Extensions=--Kaithi}', "");
-    Expect(0, 69837, '\P{Is_Script_Extensions=--Kaithi}', "");
-    Expect(1, 69837, '\P{^Is_Script_Extensions=--Kaithi}', "");
-    Expect(0, 69838, '\p{Is_Script_Extensions=--Kaithi}', "");
-    Expect(1, 69838, '\p{^Is_Script_Extensions=--Kaithi}', "");
-    Expect(1, 69838, '\P{Is_Script_Extensions=--Kaithi}', "");
-    Expect(0, 69838, '\P{^Is_Script_Extensions=--Kaithi}', "");
-    Error('\p{Is_Scx::= -kthi}');
-    Error('\P{Is_Scx::= -kthi}');
+    Expect(1, 69837, '\p{Is_Script_Extensions= 	kaithi}', "");
+    Expect(0, 69837, '\p{^Is_Script_Extensions= 	kaithi}', "");
+    Expect(0, 69837, '\P{Is_Script_Extensions= 	kaithi}', "");
+    Expect(1, 69837, '\P{^Is_Script_Extensions= 	kaithi}', "");
+    Expect(0, 69838, '\p{Is_Script_Extensions= 	kaithi}', "");
+    Expect(1, 69838, '\p{^Is_Script_Extensions= 	kaithi}', "");
+    Expect(1, 69838, '\P{Is_Script_Extensions= 	kaithi}', "");
+    Expect(0, 69838, '\P{^Is_Script_Extensions= 	kaithi}', "");
+    Error('\p{Is_Scx=:=_Kthi}');
+    Error('\P{Is_Scx=:=_Kthi}');
     Expect(1, 69837, '\p{Is_Scx=kthi}', "");
     Expect(0, 69837, '\p{^Is_Scx=kthi}', "");
     Expect(0, 69837, '\P{Is_Scx=kthi}', "");
@@ -146687,16 +148079,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69838, '\p{^Is_Scx=kthi}', "");
     Expect(1, 69838, '\P{Is_Scx=kthi}', "");
     Expect(0, 69838, '\P{^Is_Scx=kthi}', "");
-    Expect(1, 69837, '\p{Is_Scx= 	Kthi}', "");
-    Expect(0, 69837, '\p{^Is_Scx= 	Kthi}', "");
-    Expect(0, 69837, '\P{Is_Scx= 	Kthi}', "");
-    Expect(1, 69837, '\P{^Is_Scx= 	Kthi}', "");
-    Expect(0, 69838, '\p{Is_Scx= 	Kthi}', "");
-    Expect(1, 69838, '\p{^Is_Scx= 	Kthi}', "");
-    Expect(1, 69838, '\P{Is_Scx= 	Kthi}', "");
-    Expect(0, 69838, '\P{^Is_Scx= 	Kthi}', "");
-    Error('\p{Script_Extensions=:=	tai_THAM}');
-    Error('\P{Script_Extensions=:=	tai_THAM}');
+    Expect(1, 69837, '\p{Is_Scx=	Kthi}', "");
+    Expect(0, 69837, '\p{^Is_Scx=	Kthi}', "");
+    Expect(0, 69837, '\P{Is_Scx=	Kthi}', "");
+    Expect(1, 69837, '\P{^Is_Scx=	Kthi}', "");
+    Expect(0, 69838, '\p{Is_Scx=	Kthi}', "");
+    Expect(1, 69838, '\p{^Is_Scx=	Kthi}', "");
+    Expect(1, 69838, '\P{Is_Scx=	Kthi}', "");
+    Expect(0, 69838, '\P{^Is_Scx=	Kthi}', "");
+    Error('\p{Script_Extensions:   :=tai_tham}');
+    Error('\P{Script_Extensions:   :=tai_tham}');
     Expect(1, 6829, '\p{Script_Extensions=:\ATai_Tham\z:}', "");;
     Expect(0, 6830, '\p{Script_Extensions=:\ATai_Tham\z:}', "");;
     Expect(1, 6829, '\p{Script_Extensions=taitham}', "");
@@ -146709,38 +148101,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6830, '\P{^Script_Extensions=taitham}', "");
     Expect(1, 6829, '\p{Script_Extensions=:\Ataitham\z:}', "");;
     Expect(0, 6830, '\p{Script_Extensions=:\Ataitham\z:}', "");;
-    Expect(1, 6829, '\p{Script_Extensions:   	_Tai_Tham}', "");
-    Expect(0, 6829, '\p{^Script_Extensions:   	_Tai_Tham}', "");
-    Expect(0, 6829, '\P{Script_Extensions:   	_Tai_Tham}', "");
-    Expect(1, 6829, '\P{^Script_Extensions:   	_Tai_Tham}', "");
-    Expect(0, 6830, '\p{Script_Extensions:   	_Tai_Tham}', "");
-    Expect(1, 6830, '\p{^Script_Extensions:   	_Tai_Tham}', "");
-    Expect(1, 6830, '\P{Script_Extensions:   	_Tai_Tham}', "");
-    Expect(0, 6830, '\P{^Script_Extensions:   	_Tai_Tham}', "");
-    Error('\p{Scx= lana:=}');
-    Error('\P{Scx= lana:=}');
+    Expect(1, 6829, '\p{Script_Extensions=  tai_Tham}', "");
+    Expect(0, 6829, '\p{^Script_Extensions=  tai_Tham}', "");
+    Expect(0, 6829, '\P{Script_Extensions=  tai_Tham}', "");
+    Expect(1, 6829, '\P{^Script_Extensions=  tai_Tham}', "");
+    Expect(0, 6830, '\p{Script_Extensions=  tai_Tham}', "");
+    Expect(1, 6830, '\p{^Script_Extensions=  tai_Tham}', "");
+    Expect(1, 6830, '\P{Script_Extensions=  tai_Tham}', "");
+    Expect(0, 6830, '\P{^Script_Extensions=  tai_Tham}', "");
+    Error('\p{Scx=	-LANA:=}');
+    Error('\P{Scx=	-LANA:=}');
     Expect(1, 6829, '\p{Scx=:\ALana\z:}', "");;
     Expect(0, 6830, '\p{Scx=:\ALana\z:}', "");;
-    Expect(1, 6829, '\p{Scx=lana}', "");
-    Expect(0, 6829, '\p{^Scx=lana}', "");
-    Expect(0, 6829, '\P{Scx=lana}', "");
-    Expect(1, 6829, '\P{^Scx=lana}', "");
-    Expect(0, 6830, '\p{Scx=lana}', "");
-    Expect(1, 6830, '\p{^Scx=lana}', "");
-    Expect(1, 6830, '\P{Scx=lana}', "");
-    Expect(0, 6830, '\P{^Scx=lana}', "");
+    Expect(1, 6829, '\p{Scx: lana}', "");
+    Expect(0, 6829, '\p{^Scx: lana}', "");
+    Expect(0, 6829, '\P{Scx: lana}', "");
+    Expect(1, 6829, '\P{^Scx: lana}', "");
+    Expect(0, 6830, '\p{Scx: lana}', "");
+    Expect(1, 6830, '\p{^Scx: lana}', "");
+    Expect(1, 6830, '\P{Scx: lana}', "");
+    Expect(0, 6830, '\P{^Scx: lana}', "");
     Expect(1, 6829, '\p{Scx=:\Alana\z:}', "");;
     Expect(0, 6830, '\p{Scx=:\Alana\z:}', "");;
-    Expect(1, 6829, '\p{Scx= _Lana}', "");
-    Expect(0, 6829, '\p{^Scx= _Lana}', "");
-    Expect(0, 6829, '\P{Scx= _Lana}', "");
-    Expect(1, 6829, '\P{^Scx= _Lana}', "");
-    Expect(0, 6830, '\p{Scx= _Lana}', "");
-    Expect(1, 6830, '\p{^Scx= _Lana}', "");
-    Expect(1, 6830, '\P{Scx= _Lana}', "");
-    Expect(0, 6830, '\P{^Scx= _Lana}', "");
-    Error('\p{Is_Script_Extensions=-:=Tai_THAM}');
-    Error('\P{Is_Script_Extensions=-:=Tai_THAM}');
+    Expect(1, 6829, '\p{Scx=_Lana}', "");
+    Expect(0, 6829, '\p{^Scx=_Lana}', "");
+    Expect(0, 6829, '\P{Scx=_Lana}', "");
+    Expect(1, 6829, '\P{^Scx=_Lana}', "");
+    Expect(0, 6830, '\p{Scx=_Lana}', "");
+    Expect(1, 6830, '\p{^Scx=_Lana}', "");
+    Expect(1, 6830, '\P{Scx=_Lana}', "");
+    Expect(0, 6830, '\P{^Scx=_Lana}', "");
+    Error('\p{Is_Script_Extensions= _Tai_Tham:=}');
+    Error('\P{Is_Script_Extensions= _Tai_Tham:=}');
     Expect(1, 6829, '\p{Is_Script_Extensions=taitham}', "");
     Expect(0, 6829, '\p{^Is_Script_Extensions=taitham}', "");
     Expect(0, 6829, '\P{Is_Script_Extensions=taitham}', "");
@@ -146749,16 +148141,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^Is_Script_Extensions=taitham}', "");
     Expect(1, 6830, '\P{Is_Script_Extensions=taitham}', "");
     Expect(0, 6830, '\P{^Is_Script_Extensions=taitham}', "");
-    Expect(1, 6829, '\p{Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(0, 6829, '\p{^Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(0, 6829, '\P{Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(1, 6829, '\P{^Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(0, 6830, '\p{Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(1, 6830, '\p{^Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(1, 6830, '\P{Is_Script_Extensions=_ TAI_Tham}', "");
-    Expect(0, 6830, '\P{^Is_Script_Extensions=_ TAI_Tham}', "");
-    Error('\p{Is_Scx=:= LANA}');
-    Error('\P{Is_Scx=:= LANA}');
+    Expect(1, 6829, '\p{Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(0, 6829, '\p{^Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(0, 6829, '\P{Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(1, 6829, '\P{^Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(0, 6830, '\p{Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(1, 6830, '\p{^Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(1, 6830, '\P{Is_Script_Extensions= -Tai_THAM}', "");
+    Expect(0, 6830, '\P{^Is_Script_Extensions= -Tai_THAM}', "");
+    Error('\p{Is_Scx:   :=_LANA}');
+    Error('\P{Is_Scx:   :=_LANA}');
     Expect(1, 6829, '\p{Is_Scx=lana}', "");
     Expect(0, 6829, '\p{^Is_Scx=lana}', "");
     Expect(0, 6829, '\P{Is_Scx=lana}', "");
@@ -146767,16 +148159,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6830, '\p{^Is_Scx=lana}', "");
     Expect(1, 6830, '\P{Is_Scx=lana}', "");
     Expect(0, 6830, '\P{^Is_Scx=lana}', "");
-    Expect(1, 6829, '\p{Is_Scx= -LANA}', "");
-    Expect(0, 6829, '\p{^Is_Scx= -LANA}', "");
-    Expect(0, 6829, '\P{Is_Scx= -LANA}', "");
-    Expect(1, 6829, '\P{^Is_Scx= -LANA}', "");
-    Expect(0, 6830, '\p{Is_Scx= -LANA}', "");
-    Expect(1, 6830, '\p{^Is_Scx= -LANA}', "");
-    Expect(1, 6830, '\P{Is_Scx= -LANA}', "");
-    Expect(0, 6830, '\P{^Is_Scx= -LANA}', "");
-    Error('\p{Script_Extensions=Lao/a/}');
-    Error('\P{Script_Extensions=Lao/a/}');
+    Expect(1, 6829, '\p{Is_Scx:   _ lana}', "");
+    Expect(0, 6829, '\p{^Is_Scx:   _ lana}', "");
+    Expect(0, 6829, '\P{Is_Scx:   _ lana}', "");
+    Expect(1, 6829, '\P{^Is_Scx:   _ lana}', "");
+    Expect(0, 6830, '\p{Is_Scx:   _ lana}', "");
+    Expect(1, 6830, '\p{^Is_Scx:   _ lana}', "");
+    Expect(1, 6830, '\P{Is_Scx:   _ lana}', "");
+    Expect(0, 6830, '\P{^Is_Scx:   _ lana}', "");
+    Error('\p{Script_Extensions:   	/a/LAO}');
+    Error('\P{Script_Extensions:   	/a/LAO}');
     Expect(1, 3807, '\p{Script_Extensions=:\ALao\z:}', "");;
     Expect(0, 3808, '\p{Script_Extensions=:\ALao\z:}', "");;
     Expect(1, 3807, '\p{Script_Extensions=lao}', "");
@@ -146789,16 +148181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 3808, '\P{^Script_Extensions=lao}', "");
     Expect(1, 3807, '\p{Script_Extensions=:\Alao\z:}', "");;
     Expect(0, 3808, '\p{Script_Extensions=:\Alao\z:}', "");;
-    Expect(1, 3807, '\p{Script_Extensions=		Lao}', "");
-    Expect(0, 3807, '\p{^Script_Extensions=		Lao}', "");
-    Expect(0, 3807, '\P{Script_Extensions=		Lao}', "");
-    Expect(1, 3807, '\P{^Script_Extensions=		Lao}', "");
-    Expect(0, 3808, '\p{Script_Extensions=		Lao}', "");
-    Expect(1, 3808, '\p{^Script_Extensions=		Lao}', "");
-    Expect(1, 3808, '\P{Script_Extensions=		Lao}', "");
-    Expect(0, 3808, '\P{^Script_Extensions=		Lao}', "");
-    Error('\p{Scx=:= -Laoo}');
-    Error('\P{Scx=:= -Laoo}');
+    Expect(1, 3807, '\p{Script_Extensions= 	Lao}', "");
+    Expect(0, 3807, '\p{^Script_Extensions= 	Lao}', "");
+    Expect(0, 3807, '\P{Script_Extensions= 	Lao}', "");
+    Expect(1, 3807, '\P{^Script_Extensions= 	Lao}', "");
+    Expect(0, 3808, '\p{Script_Extensions= 	Lao}', "");
+    Expect(1, 3808, '\p{^Script_Extensions= 	Lao}', "");
+    Expect(1, 3808, '\P{Script_Extensions= 	Lao}', "");
+    Expect(0, 3808, '\P{^Script_Extensions= 	Lao}', "");
+    Error('\p{Scx=		LAOO/a/}');
+    Error('\P{Scx=		LAOO/a/}');
     Expect(1, 3807, '\p{Scx=:\ALaoo\z:}', "");;
     Expect(0, 3808, '\p{Scx=:\ALaoo\z:}', "");;
     Expect(1, 3807, '\p{Scx=laoo}', "");
@@ -146811,16 +148203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 3808, '\P{^Scx=laoo}', "");
     Expect(1, 3807, '\p{Scx=:\Alaoo\z:}', "");;
     Expect(0, 3808, '\p{Scx=:\Alaoo\z:}', "");;
-    Expect(1, 3807, '\p{Scx=--LAOO}', "");
-    Expect(0, 3807, '\p{^Scx=--LAOO}', "");
-    Expect(0, 3807, '\P{Scx=--LAOO}', "");
-    Expect(1, 3807, '\P{^Scx=--LAOO}', "");
-    Expect(0, 3808, '\p{Scx=--LAOO}', "");
-    Expect(1, 3808, '\p{^Scx=--LAOO}', "");
-    Expect(1, 3808, '\P{Scx=--LAOO}', "");
-    Expect(0, 3808, '\P{^Scx=--LAOO}', "");
-    Error('\p{Is_Script_Extensions=/a/LAO}');
-    Error('\P{Is_Script_Extensions=/a/LAO}');
+    Expect(1, 3807, '\p{Scx=	LAOO}', "");
+    Expect(0, 3807, '\p{^Scx=	LAOO}', "");
+    Expect(0, 3807, '\P{Scx=	LAOO}', "");
+    Expect(1, 3807, '\P{^Scx=	LAOO}', "");
+    Expect(0, 3808, '\p{Scx=	LAOO}', "");
+    Expect(1, 3808, '\p{^Scx=	LAOO}', "");
+    Expect(1, 3808, '\P{Scx=	LAOO}', "");
+    Expect(0, 3808, '\P{^Scx=	LAOO}', "");
+    Error('\p{Is_Script_Extensions: /a/lao}');
+    Error('\P{Is_Script_Extensions: /a/lao}');
     Expect(1, 3807, '\p{Is_Script_Extensions=lao}', "");
     Expect(0, 3807, '\p{^Is_Script_Extensions=lao}', "");
     Expect(0, 3807, '\P{Is_Script_Extensions=lao}', "");
@@ -146829,16 +148221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3808, '\p{^Is_Script_Extensions=lao}', "");
     Expect(1, 3808, '\P{Is_Script_Extensions=lao}', "");
     Expect(0, 3808, '\P{^Is_Script_Extensions=lao}', "");
-    Expect(1, 3807, '\p{Is_Script_Extensions= _Lao}', "");
-    Expect(0, 3807, '\p{^Is_Script_Extensions= _Lao}', "");
-    Expect(0, 3807, '\P{Is_Script_Extensions= _Lao}', "");
-    Expect(1, 3807, '\P{^Is_Script_Extensions= _Lao}', "");
-    Expect(0, 3808, '\p{Is_Script_Extensions= _Lao}', "");
-    Expect(1, 3808, '\p{^Is_Script_Extensions= _Lao}', "");
-    Expect(1, 3808, '\P{Is_Script_Extensions= _Lao}', "");
-    Expect(0, 3808, '\P{^Is_Script_Extensions= _Lao}', "");
-    Error('\p{Is_Scx=:=laoo}');
-    Error('\P{Is_Scx=:=laoo}');
+    Expect(1, 3807, '\p{Is_Script_Extensions=  lao}', "");
+    Expect(0, 3807, '\p{^Is_Script_Extensions=  lao}', "");
+    Expect(0, 3807, '\P{Is_Script_Extensions=  lao}', "");
+    Expect(1, 3807, '\P{^Is_Script_Extensions=  lao}', "");
+    Expect(0, 3808, '\p{Is_Script_Extensions=  lao}', "");
+    Expect(1, 3808, '\p{^Is_Script_Extensions=  lao}', "");
+    Expect(1, 3808, '\P{Is_Script_Extensions=  lao}', "");
+    Expect(0, 3808, '\P{^Is_Script_Extensions=  lao}', "");
+    Error('\p{Is_Scx= /a/laoo}');
+    Error('\P{Is_Scx= /a/laoo}');
     Expect(1, 3807, '\p{Is_Scx=laoo}', "");
     Expect(0, 3807, '\p{^Is_Scx=laoo}', "");
     Expect(0, 3807, '\P{Is_Scx=laoo}', "");
@@ -146847,118 +148239,118 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3808, '\p{^Is_Scx=laoo}', "");
     Expect(1, 3808, '\P{Is_Scx=laoo}', "");
     Expect(0, 3808, '\P{^Is_Scx=laoo}', "");
-    Expect(1, 3807, '\p{Is_Scx=_laoo}', "");
-    Expect(0, 3807, '\p{^Is_Scx=_laoo}', "");
-    Expect(0, 3807, '\P{Is_Scx=_laoo}', "");
-    Expect(1, 3807, '\P{^Is_Scx=_laoo}', "");
-    Expect(0, 3808, '\p{Is_Scx=_laoo}', "");
-    Expect(1, 3808, '\p{^Is_Scx=_laoo}', "");
-    Expect(1, 3808, '\P{Is_Scx=_laoo}', "");
-    Expect(0, 3808, '\P{^Is_Scx=_laoo}', "");
-    Error('\p{Script_Extensions= /a/latin}');
-    Error('\P{Script_Extensions= /a/latin}');
-    Expect(1, 122654, '\p{Script_Extensions=:\ALatin\z:}', "");;
-    Expect(0, 122655, '\p{Script_Extensions=:\ALatin\z:}', "");;
-    Expect(1, 122654, '\p{Script_Extensions=latin}', "");
-    Expect(0, 122654, '\p{^Script_Extensions=latin}', "");
-    Expect(0, 122654, '\P{Script_Extensions=latin}', "");
-    Expect(1, 122654, '\P{^Script_Extensions=latin}', "");
-    Expect(0, 122655, '\p{Script_Extensions=latin}', "");
-    Expect(1, 122655, '\p{^Script_Extensions=latin}', "");
-    Expect(1, 122655, '\P{Script_Extensions=latin}', "");
-    Expect(0, 122655, '\P{^Script_Extensions=latin}', "");
-    Expect(1, 122654, '\p{Script_Extensions=:\Alatin\z:}', "");;
-    Expect(0, 122655, '\p{Script_Extensions=:\Alatin\z:}', "");;
-    Expect(1, 122654, '\p{Script_Extensions=_LATIN}', "");
-    Expect(0, 122654, '\p{^Script_Extensions=_LATIN}', "");
-    Expect(0, 122654, '\P{Script_Extensions=_LATIN}', "");
-    Expect(1, 122654, '\P{^Script_Extensions=_LATIN}', "");
-    Expect(0, 122655, '\p{Script_Extensions=_LATIN}', "");
-    Expect(1, 122655, '\p{^Script_Extensions=_LATIN}', "");
-    Expect(1, 122655, '\P{Script_Extensions=_LATIN}', "");
-    Expect(0, 122655, '\P{^Script_Extensions=_LATIN}', "");
-    Error('\p{Scx=:= Latn}');
-    Error('\P{Scx=:= Latn}');
-    Expect(1, 122654, '\p{Scx=:\ALatn\z:}', "");;
-    Expect(0, 122655, '\p{Scx=:\ALatn\z:}', "");;
-    Expect(1, 122654, '\p{Scx=latn}', "");
-    Expect(0, 122654, '\p{^Scx=latn}', "");
-    Expect(0, 122654, '\P{Scx=latn}', "");
-    Expect(1, 122654, '\P{^Scx=latn}', "");
-    Expect(0, 122655, '\p{Scx=latn}', "");
-    Expect(1, 122655, '\p{^Scx=latn}', "");
-    Expect(1, 122655, '\P{Scx=latn}', "");
-    Expect(0, 122655, '\P{^Scx=latn}', "");
-    Expect(1, 122654, '\p{Scx=:\Alatn\z:}', "");;
-    Expect(0, 122655, '\p{Scx=:\Alatn\z:}', "");;
-    Expect(1, 122654, '\p{Scx=_-Latn}', "");
-    Expect(0, 122654, '\p{^Scx=_-Latn}', "");
-    Expect(0, 122654, '\P{Scx=_-Latn}', "");
-    Expect(1, 122654, '\P{^Scx=_-Latn}', "");
-    Expect(0, 122655, '\p{Scx=_-Latn}', "");
-    Expect(1, 122655, '\p{^Scx=_-Latn}', "");
-    Expect(1, 122655, '\P{Scx=_-Latn}', "");
-    Expect(0, 122655, '\P{^Scx=_-Latn}', "");
-    Error('\p{Is_Script_Extensions=/a/ Latin}');
-    Error('\P{Is_Script_Extensions=/a/ Latin}');
-    Expect(1, 122654, '\p{Is_Script_Extensions=latin}', "");
-    Expect(0, 122654, '\p{^Is_Script_Extensions=latin}', "");
-    Expect(0, 122654, '\P{Is_Script_Extensions=latin}', "");
-    Expect(1, 122654, '\P{^Is_Script_Extensions=latin}', "");
-    Expect(0, 122655, '\p{Is_Script_Extensions=latin}', "");
-    Expect(1, 122655, '\p{^Is_Script_Extensions=latin}', "");
-    Expect(1, 122655, '\P{Is_Script_Extensions=latin}', "");
-    Expect(0, 122655, '\P{^Is_Script_Extensions=latin}', "");
-    Expect(1, 122654, '\p{Is_Script_Extensions= _Latin}', "");
-    Expect(0, 122654, '\p{^Is_Script_Extensions= _Latin}', "");
-    Expect(0, 122654, '\P{Is_Script_Extensions= _Latin}', "");
-    Expect(1, 122654, '\P{^Is_Script_Extensions= _Latin}', "");
-    Expect(0, 122655, '\p{Is_Script_Extensions= _Latin}', "");
-    Expect(1, 122655, '\p{^Is_Script_Extensions= _Latin}', "");
-    Expect(1, 122655, '\P{Is_Script_Extensions= _Latin}', "");
-    Expect(0, 122655, '\P{^Is_Script_Extensions= _Latin}', "");
-    Error('\p{Is_Scx:Latn:=}');
-    Error('\P{Is_Scx:Latn:=}');
-    Expect(1, 122654, '\p{Is_Scx=latn}', "");
-    Expect(0, 122654, '\p{^Is_Scx=latn}', "");
-    Expect(0, 122654, '\P{Is_Scx=latn}', "");
-    Expect(1, 122654, '\P{^Is_Scx=latn}', "");
-    Expect(0, 122655, '\p{Is_Scx=latn}', "");
-    Expect(1, 122655, '\p{^Is_Scx=latn}', "");
-    Expect(1, 122655, '\P{Is_Scx=latn}', "");
-    Expect(0, 122655, '\P{^Is_Scx=latn}', "");
-    Expect(1, 122654, '\p{Is_Scx=	-Latn}', "");
-    Expect(0, 122654, '\p{^Is_Scx=	-Latn}', "");
-    Expect(0, 122654, '\P{Is_Scx=	-Latn}', "");
-    Expect(1, 122654, '\P{^Is_Scx=	-Latn}', "");
-    Expect(0, 122655, '\p{Is_Scx=	-Latn}', "");
-    Expect(1, 122655, '\p{^Is_Scx=	-Latn}', "");
-    Expect(1, 122655, '\P{Is_Scx=	-Latn}', "");
-    Expect(0, 122655, '\P{^Is_Scx=	-Latn}', "");
-    Error('\p{Script_Extensions= _Lepcha:=}');
-    Error('\P{Script_Extensions= _Lepcha:=}');
+    Expect(1, 3807, '\p{Is_Scx=  Laoo}', "");
+    Expect(0, 3807, '\p{^Is_Scx=  Laoo}', "");
+    Expect(0, 3807, '\P{Is_Scx=  Laoo}', "");
+    Expect(1, 3807, '\P{^Is_Scx=  Laoo}', "");
+    Expect(0, 3808, '\p{Is_Scx=  Laoo}', "");
+    Expect(1, 3808, '\p{^Is_Scx=  Laoo}', "");
+    Expect(1, 3808, '\P{Is_Scx=  Laoo}', "");
+    Expect(0, 3808, '\P{^Is_Scx=  Laoo}', "");
+    Error('\p{Script_Extensions=_	LATIN:=}');
+    Error('\P{Script_Extensions=_	LATIN:=}');
+    Expect(1, 122666, '\p{Script_Extensions=:\ALatin\z:}', "");;
+    Expect(0, 122667, '\p{Script_Extensions=:\ALatin\z:}', "");;
+    Expect(1, 122666, '\p{Script_Extensions=latin}', "");
+    Expect(0, 122666, '\p{^Script_Extensions=latin}', "");
+    Expect(0, 122666, '\P{Script_Extensions=latin}', "");
+    Expect(1, 122666, '\P{^Script_Extensions=latin}', "");
+    Expect(0, 122667, '\p{Script_Extensions=latin}', "");
+    Expect(1, 122667, '\p{^Script_Extensions=latin}', "");
+    Expect(1, 122667, '\P{Script_Extensions=latin}', "");
+    Expect(0, 122667, '\P{^Script_Extensions=latin}', "");
+    Expect(1, 122666, '\p{Script_Extensions=:\Alatin\z:}', "");;
+    Expect(0, 122667, '\p{Script_Extensions=:\Alatin\z:}', "");;
+    Expect(1, 122666, '\p{Script_Extensions=_	Latin}', "");
+    Expect(0, 122666, '\p{^Script_Extensions=_	Latin}', "");
+    Expect(0, 122666, '\P{Script_Extensions=_	Latin}', "");
+    Expect(1, 122666, '\P{^Script_Extensions=_	Latin}', "");
+    Expect(0, 122667, '\p{Script_Extensions=_	Latin}', "");
+    Expect(1, 122667, '\p{^Script_Extensions=_	Latin}', "");
+    Expect(1, 122667, '\P{Script_Extensions=_	Latin}', "");
+    Expect(0, 122667, '\P{^Script_Extensions=_	Latin}', "");
+    Error('\p{Scx=/a/- Latn}');
+    Error('\P{Scx=/a/- Latn}');
+    Expect(1, 122666, '\p{Scx=:\ALatn\z:}', "");;
+    Expect(0, 122667, '\p{Scx=:\ALatn\z:}', "");;
+    Expect(1, 122666, '\p{Scx=latn}', "");
+    Expect(0, 122666, '\p{^Scx=latn}', "");
+    Expect(0, 122666, '\P{Scx=latn}', "");
+    Expect(1, 122666, '\P{^Scx=latn}', "");
+    Expect(0, 122667, '\p{Scx=latn}', "");
+    Expect(1, 122667, '\p{^Scx=latn}', "");
+    Expect(1, 122667, '\P{Scx=latn}', "");
+    Expect(0, 122667, '\P{^Scx=latn}', "");
+    Expect(1, 122666, '\p{Scx=:\Alatn\z:}', "");;
+    Expect(0, 122667, '\p{Scx=:\Alatn\z:}', "");;
+    Expect(1, 122666, '\p{Scx=	 latn}', "");
+    Expect(0, 122666, '\p{^Scx=	 latn}', "");
+    Expect(0, 122666, '\P{Scx=	 latn}', "");
+    Expect(1, 122666, '\P{^Scx=	 latn}', "");
+    Expect(0, 122667, '\p{Scx=	 latn}', "");
+    Expect(1, 122667, '\p{^Scx=	 latn}', "");
+    Expect(1, 122667, '\P{Scx=	 latn}', "");
+    Expect(0, 122667, '\P{^Scx=	 latn}', "");
+    Error('\p{Is_Script_Extensions=	/a/Latin}');
+    Error('\P{Is_Script_Extensions=	/a/Latin}');
+    Expect(1, 122666, '\p{Is_Script_Extensions: latin}', "");
+    Expect(0, 122666, '\p{^Is_Script_Extensions: latin}', "");
+    Expect(0, 122666, '\P{Is_Script_Extensions: latin}', "");
+    Expect(1, 122666, '\P{^Is_Script_Extensions: latin}', "");
+    Expect(0, 122667, '\p{Is_Script_Extensions: latin}', "");
+    Expect(1, 122667, '\p{^Is_Script_Extensions: latin}', "");
+    Expect(1, 122667, '\P{Is_Script_Extensions: latin}', "");
+    Expect(0, 122667, '\P{^Is_Script_Extensions: latin}', "");
+    Expect(1, 122666, '\p{Is_Script_Extensions=- Latin}', "");
+    Expect(0, 122666, '\p{^Is_Script_Extensions=- Latin}', "");
+    Expect(0, 122666, '\P{Is_Script_Extensions=- Latin}', "");
+    Expect(1, 122666, '\P{^Is_Script_Extensions=- Latin}', "");
+    Expect(0, 122667, '\p{Is_Script_Extensions=- Latin}', "");
+    Expect(1, 122667, '\p{^Is_Script_Extensions=- Latin}', "");
+    Expect(1, 122667, '\P{Is_Script_Extensions=- Latin}', "");
+    Expect(0, 122667, '\P{^Is_Script_Extensions=- Latin}', "");
+    Error('\p{Is_Scx=:=Latn}');
+    Error('\P{Is_Scx=:=Latn}');
+    Expect(1, 122666, '\p{Is_Scx=latn}', "");
+    Expect(0, 122666, '\p{^Is_Scx=latn}', "");
+    Expect(0, 122666, '\P{Is_Scx=latn}', "");
+    Expect(1, 122666, '\P{^Is_Scx=latn}', "");
+    Expect(0, 122667, '\p{Is_Scx=latn}', "");
+    Expect(1, 122667, '\p{^Is_Scx=latn}', "");
+    Expect(1, 122667, '\P{Is_Scx=latn}', "");
+    Expect(0, 122667, '\P{^Is_Scx=latn}', "");
+    Expect(1, 122666, '\p{Is_Scx=_	Latn}', "");
+    Expect(0, 122666, '\p{^Is_Scx=_	Latn}', "");
+    Expect(0, 122666, '\P{Is_Scx=_	Latn}', "");
+    Expect(1, 122666, '\P{^Is_Scx=_	Latn}', "");
+    Expect(0, 122667, '\p{Is_Scx=_	Latn}', "");
+    Expect(1, 122667, '\p{^Is_Scx=_	Latn}', "");
+    Expect(1, 122667, '\P{Is_Scx=_	Latn}', "");
+    Expect(0, 122667, '\P{^Is_Scx=_	Latn}', "");
+    Error('\p{Script_Extensions= /a/Lepcha}');
+    Error('\P{Script_Extensions= /a/Lepcha}');
     Expect(1, 7247, '\p{Script_Extensions=:\ALepcha\z:}', "");;
     Expect(0, 7248, '\p{Script_Extensions=:\ALepcha\z:}', "");;
-    Expect(1, 7247, '\p{Script_Extensions=lepcha}', "");
-    Expect(0, 7247, '\p{^Script_Extensions=lepcha}', "");
-    Expect(0, 7247, '\P{Script_Extensions=lepcha}', "");
-    Expect(1, 7247, '\P{^Script_Extensions=lepcha}', "");
-    Expect(0, 7248, '\p{Script_Extensions=lepcha}', "");
-    Expect(1, 7248, '\p{^Script_Extensions=lepcha}', "");
-    Expect(1, 7248, '\P{Script_Extensions=lepcha}', "");
-    Expect(0, 7248, '\P{^Script_Extensions=lepcha}', "");
+    Expect(1, 7247, '\p{Script_Extensions:lepcha}', "");
+    Expect(0, 7247, '\p{^Script_Extensions:lepcha}', "");
+    Expect(0, 7247, '\P{Script_Extensions:lepcha}', "");
+    Expect(1, 7247, '\P{^Script_Extensions:lepcha}', "");
+    Expect(0, 7248, '\p{Script_Extensions:lepcha}', "");
+    Expect(1, 7248, '\p{^Script_Extensions:lepcha}', "");
+    Expect(1, 7248, '\P{Script_Extensions:lepcha}', "");
+    Expect(0, 7248, '\P{^Script_Extensions:lepcha}', "");
     Expect(1, 7247, '\p{Script_Extensions=:\Alepcha\z:}', "");;
     Expect(0, 7248, '\p{Script_Extensions=:\Alepcha\z:}', "");;
-    Expect(1, 7247, '\p{Script_Extensions=__Lepcha}', "");
-    Expect(0, 7247, '\p{^Script_Extensions=__Lepcha}', "");
-    Expect(0, 7247, '\P{Script_Extensions=__Lepcha}', "");
-    Expect(1, 7247, '\P{^Script_Extensions=__Lepcha}', "");
-    Expect(0, 7248, '\p{Script_Extensions=__Lepcha}', "");
-    Expect(1, 7248, '\p{^Script_Extensions=__Lepcha}', "");
-    Expect(1, 7248, '\P{Script_Extensions=__Lepcha}', "");
-    Expect(0, 7248, '\P{^Script_Extensions=__Lepcha}', "");
-    Error('\p{Scx=/a/Lepc}');
-    Error('\P{Scx=/a/Lepc}');
+    Expect(1, 7247, '\p{Script_Extensions=_LEPCHA}', "");
+    Expect(0, 7247, '\p{^Script_Extensions=_LEPCHA}', "");
+    Expect(0, 7247, '\P{Script_Extensions=_LEPCHA}', "");
+    Expect(1, 7247, '\P{^Script_Extensions=_LEPCHA}', "");
+    Expect(0, 7248, '\p{Script_Extensions=_LEPCHA}', "");
+    Expect(1, 7248, '\p{^Script_Extensions=_LEPCHA}', "");
+    Expect(1, 7248, '\P{Script_Extensions=_LEPCHA}', "");
+    Expect(0, 7248, '\P{^Script_Extensions=_LEPCHA}', "");
+    Error('\p{Scx:   /a/Lepc}');
+    Error('\P{Scx:   /a/Lepc}');
     Expect(1, 7247, '\p{Scx=:\ALepc\z:}', "");;
     Expect(0, 7248, '\p{Scx=:\ALepc\z:}', "");;
     Expect(1, 7247, '\p{Scx=lepc}', "");
@@ -146971,34 +148363,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7248, '\P{^Scx=lepc}', "");
     Expect(1, 7247, '\p{Scx=:\Alepc\z:}', "");;
     Expect(0, 7248, '\p{Scx=:\Alepc\z:}', "");;
-    Expect(1, 7247, '\p{Scx=_ LEPC}', "");
-    Expect(0, 7247, '\p{^Scx=_ LEPC}', "");
-    Expect(0, 7247, '\P{Scx=_ LEPC}', "");
-    Expect(1, 7247, '\P{^Scx=_ LEPC}', "");
-    Expect(0, 7248, '\p{Scx=_ LEPC}', "");
-    Expect(1, 7248, '\p{^Scx=_ LEPC}', "");
-    Expect(1, 7248, '\P{Scx=_ LEPC}', "");
-    Expect(0, 7248, '\P{^Scx=_ LEPC}', "");
-    Error('\p{Is_Script_Extensions=_/a/Lepcha}');
-    Error('\P{Is_Script_Extensions=_/a/Lepcha}');
-    Expect(1, 7247, '\p{Is_Script_Extensions:   lepcha}', "");
-    Expect(0, 7247, '\p{^Is_Script_Extensions:   lepcha}', "");
-    Expect(0, 7247, '\P{Is_Script_Extensions:   lepcha}', "");
-    Expect(1, 7247, '\P{^Is_Script_Extensions:   lepcha}', "");
-    Expect(0, 7248, '\p{Is_Script_Extensions:   lepcha}', "");
-    Expect(1, 7248, '\p{^Is_Script_Extensions:   lepcha}', "");
-    Expect(1, 7248, '\P{Is_Script_Extensions:   lepcha}', "");
-    Expect(0, 7248, '\P{^Is_Script_Extensions:   lepcha}', "");
-    Expect(1, 7247, '\p{Is_Script_Extensions=	 Lepcha}', "");
-    Expect(0, 7247, '\p{^Is_Script_Extensions=	 Lepcha}', "");
-    Expect(0, 7247, '\P{Is_Script_Extensions=	 Lepcha}', "");
-    Expect(1, 7247, '\P{^Is_Script_Extensions=	 Lepcha}', "");
-    Expect(0, 7248, '\p{Is_Script_Extensions=	 Lepcha}', "");
-    Expect(1, 7248, '\p{^Is_Script_Extensions=	 Lepcha}', "");
-    Expect(1, 7248, '\P{Is_Script_Extensions=	 Lepcha}', "");
-    Expect(0, 7248, '\P{^Is_Script_Extensions=	 Lepcha}', "");
-    Error('\p{Is_Scx=/a/		LEPC}');
-    Error('\P{Is_Scx=/a/		LEPC}');
+    Expect(1, 7247, '\p{Scx=--lepc}', "");
+    Expect(0, 7247, '\p{^Scx=--lepc}', "");
+    Expect(0, 7247, '\P{Scx=--lepc}', "");
+    Expect(1, 7247, '\P{^Scx=--lepc}', "");
+    Expect(0, 7248, '\p{Scx=--lepc}', "");
+    Expect(1, 7248, '\p{^Scx=--lepc}', "");
+    Expect(1, 7248, '\P{Scx=--lepc}', "");
+    Expect(0, 7248, '\P{^Scx=--lepc}', "");
+    Error('\p{Is_Script_Extensions=--lepcha:=}');
+    Error('\P{Is_Script_Extensions=--lepcha:=}');
+    Expect(1, 7247, '\p{Is_Script_Extensions=lepcha}', "");
+    Expect(0, 7247, '\p{^Is_Script_Extensions=lepcha}', "");
+    Expect(0, 7247, '\P{Is_Script_Extensions=lepcha}', "");
+    Expect(1, 7247, '\P{^Is_Script_Extensions=lepcha}', "");
+    Expect(0, 7248, '\p{Is_Script_Extensions=lepcha}', "");
+    Expect(1, 7248, '\p{^Is_Script_Extensions=lepcha}', "");
+    Expect(1, 7248, '\P{Is_Script_Extensions=lepcha}', "");
+    Expect(0, 7248, '\P{^Is_Script_Extensions=lepcha}', "");
+    Expect(1, 7247, '\p{Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(0, 7247, '\p{^Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(0, 7247, '\P{Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(1, 7247, '\P{^Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(0, 7248, '\p{Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(1, 7248, '\p{^Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(1, 7248, '\P{Is_Script_Extensions=-_LEPCHA}', "");
+    Expect(0, 7248, '\P{^Is_Script_Extensions=-_LEPCHA}', "");
+    Error('\p{Is_Scx=-	lepc:=}');
+    Error('\P{Is_Scx=-	lepc:=}');
     Expect(1, 7247, '\p{Is_Scx=lepc}', "");
     Expect(0, 7247, '\p{^Is_Scx=lepc}', "");
     Expect(0, 7247, '\P{Is_Scx=lepc}', "");
@@ -147007,38 +148399,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7248, '\p{^Is_Scx=lepc}', "");
     Expect(1, 7248, '\P{Is_Scx=lepc}', "");
     Expect(0, 7248, '\P{^Is_Scx=lepc}', "");
-    Expect(1, 7247, '\p{Is_Scx=_Lepc}', "");
-    Expect(0, 7247, '\p{^Is_Scx=_Lepc}', "");
-    Expect(0, 7247, '\P{Is_Scx=_Lepc}', "");
-    Expect(1, 7247, '\P{^Is_Scx=_Lepc}', "");
-    Expect(0, 7248, '\p{Is_Scx=_Lepc}', "");
-    Expect(1, 7248, '\p{^Is_Scx=_Lepc}', "");
-    Expect(1, 7248, '\P{Is_Scx=_Lepc}', "");
-    Expect(0, 7248, '\P{^Is_Scx=_Lepc}', "");
-    Error('\p{Script_Extensions=-limbu/a/}');
-    Error('\P{Script_Extensions=-limbu/a/}');
+    Expect(1, 7247, '\p{Is_Scx= _lepc}', "");
+    Expect(0, 7247, '\p{^Is_Scx= _lepc}', "");
+    Expect(0, 7247, '\P{Is_Scx= _lepc}', "");
+    Expect(1, 7247, '\P{^Is_Scx= _lepc}', "");
+    Expect(0, 7248, '\p{Is_Scx= _lepc}', "");
+    Expect(1, 7248, '\p{^Is_Scx= _lepc}', "");
+    Expect(1, 7248, '\P{Is_Scx= _lepc}', "");
+    Expect(0, 7248, '\P{^Is_Scx= _lepc}', "");
+    Error('\p{Script_Extensions=-:=limbu}');
+    Error('\P{Script_Extensions=-:=limbu}');
     Expect(1, 6479, '\p{Script_Extensions=:\ALimbu\z:}', "");;
     Expect(0, 6480, '\p{Script_Extensions=:\ALimbu\z:}', "");;
-    Expect(1, 6479, '\p{Script_Extensions=limbu}', "");
-    Expect(0, 6479, '\p{^Script_Extensions=limbu}', "");
-    Expect(0, 6479, '\P{Script_Extensions=limbu}', "");
-    Expect(1, 6479, '\P{^Script_Extensions=limbu}', "");
-    Expect(0, 6480, '\p{Script_Extensions=limbu}', "");
-    Expect(1, 6480, '\p{^Script_Extensions=limbu}', "");
-    Expect(1, 6480, '\P{Script_Extensions=limbu}', "");
-    Expect(0, 6480, '\P{^Script_Extensions=limbu}', "");
+    Expect(1, 6479, '\p{Script_Extensions:limbu}', "");
+    Expect(0, 6479, '\p{^Script_Extensions:limbu}', "");
+    Expect(0, 6479, '\P{Script_Extensions:limbu}', "");
+    Expect(1, 6479, '\P{^Script_Extensions:limbu}', "");
+    Expect(0, 6480, '\p{Script_Extensions:limbu}', "");
+    Expect(1, 6480, '\p{^Script_Extensions:limbu}', "");
+    Expect(1, 6480, '\P{Script_Extensions:limbu}', "");
+    Expect(0, 6480, '\P{^Script_Extensions:limbu}', "");
     Expect(1, 6479, '\p{Script_Extensions=:\Alimbu\z:}', "");;
     Expect(0, 6480, '\p{Script_Extensions=:\Alimbu\z:}', "");;
-    Expect(1, 6479, '\p{Script_Extensions=_-limbu}', "");
-    Expect(0, 6479, '\p{^Script_Extensions=_-limbu}', "");
-    Expect(0, 6479, '\P{Script_Extensions=_-limbu}', "");
-    Expect(1, 6479, '\P{^Script_Extensions=_-limbu}', "");
-    Expect(0, 6480, '\p{Script_Extensions=_-limbu}', "");
-    Expect(1, 6480, '\p{^Script_Extensions=_-limbu}', "");
-    Expect(1, 6480, '\P{Script_Extensions=_-limbu}', "");
-    Expect(0, 6480, '\P{^Script_Extensions=_-limbu}', "");
-    Error('\p{Scx=-_LIMB:=}');
-    Error('\P{Scx=-_LIMB:=}');
+    Expect(1, 6479, '\p{Script_Extensions=-limbu}', "");
+    Expect(0, 6479, '\p{^Script_Extensions=-limbu}', "");
+    Expect(0, 6479, '\P{Script_Extensions=-limbu}', "");
+    Expect(1, 6479, '\P{^Script_Extensions=-limbu}', "");
+    Expect(0, 6480, '\p{Script_Extensions=-limbu}', "");
+    Expect(1, 6480, '\p{^Script_Extensions=-limbu}', "");
+    Expect(1, 6480, '\P{Script_Extensions=-limbu}', "");
+    Expect(0, 6480, '\P{^Script_Extensions=-limbu}', "");
+    Error('\p{Scx=:=	_limb}');
+    Error('\P{Scx=:=	_limb}');
     Expect(1, 6479, '\p{Scx=:\ALimb\z:}', "");;
     Expect(0, 6480, '\p{Scx=:\ALimb\z:}', "");;
     Expect(1, 6479, '\p{Scx=limb}', "");
@@ -147051,16 +148443,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6480, '\P{^Scx=limb}', "");
     Expect(1, 6479, '\p{Scx=:\Alimb\z:}', "");;
     Expect(0, 6480, '\p{Scx=:\Alimb\z:}', "");;
-    Expect(1, 6479, '\p{Scx=	_LIMB}', "");
-    Expect(0, 6479, '\p{^Scx=	_LIMB}', "");
-    Expect(0, 6479, '\P{Scx=	_LIMB}', "");
-    Expect(1, 6479, '\P{^Scx=	_LIMB}', "");
-    Expect(0, 6480, '\p{Scx=	_LIMB}', "");
-    Expect(1, 6480, '\p{^Scx=	_LIMB}', "");
-    Expect(1, 6480, '\P{Scx=	_LIMB}', "");
-    Expect(0, 6480, '\P{^Scx=	_LIMB}', "");
-    Error('\p{Is_Script_Extensions=	-Limbu/a/}');
-    Error('\P{Is_Script_Extensions=	-Limbu/a/}');
+    Expect(1, 6479, '\p{Scx=	-Limb}', "");
+    Expect(0, 6479, '\p{^Scx=	-Limb}', "");
+    Expect(0, 6479, '\P{Scx=	-Limb}', "");
+    Expect(1, 6479, '\P{^Scx=	-Limb}', "");
+    Expect(0, 6480, '\p{Scx=	-Limb}', "");
+    Expect(1, 6480, '\p{^Scx=	-Limb}', "");
+    Expect(1, 6480, '\P{Scx=	-Limb}', "");
+    Expect(0, 6480, '\P{^Scx=	-Limb}', "");
+    Error('\p{Is_Script_Extensions=_:=Limbu}');
+    Error('\P{Is_Script_Extensions=_:=Limbu}');
     Expect(1, 6479, '\p{Is_Script_Extensions=limbu}', "");
     Expect(0, 6479, '\p{^Is_Script_Extensions=limbu}', "");
     Expect(0, 6479, '\P{Is_Script_Extensions=limbu}', "");
@@ -147069,16 +148461,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6480, '\p{^Is_Script_Extensions=limbu}', "");
     Expect(1, 6480, '\P{Is_Script_Extensions=limbu}', "");
     Expect(0, 6480, '\P{^Is_Script_Extensions=limbu}', "");
-    Expect(1, 6479, '\p{Is_Script_Extensions=_ limbu}', "");
-    Expect(0, 6479, '\p{^Is_Script_Extensions=_ limbu}', "");
-    Expect(0, 6479, '\P{Is_Script_Extensions=_ limbu}', "");
-    Expect(1, 6479, '\P{^Is_Script_Extensions=_ limbu}', "");
-    Expect(0, 6480, '\p{Is_Script_Extensions=_ limbu}', "");
-    Expect(1, 6480, '\p{^Is_Script_Extensions=_ limbu}', "");
-    Expect(1, 6480, '\P{Is_Script_Extensions=_ limbu}', "");
-    Expect(0, 6480, '\P{^Is_Script_Extensions=_ limbu}', "");
-    Error('\p{Is_Scx:/a/		Limb}');
-    Error('\P{Is_Scx:/a/		Limb}');
+    Expect(1, 6479, '\p{Is_Script_Extensions=	limbu}', "");
+    Expect(0, 6479, '\p{^Is_Script_Extensions=	limbu}', "");
+    Expect(0, 6479, '\P{Is_Script_Extensions=	limbu}', "");
+    Expect(1, 6479, '\P{^Is_Script_Extensions=	limbu}', "");
+    Expect(0, 6480, '\p{Is_Script_Extensions=	limbu}', "");
+    Expect(1, 6480, '\p{^Is_Script_Extensions=	limbu}', "");
+    Expect(1, 6480, '\P{Is_Script_Extensions=	limbu}', "");
+    Expect(0, 6480, '\P{^Is_Script_Extensions=	limbu}', "");
+    Error('\p{Is_Scx: :=Limb}');
+    Error('\P{Is_Scx: :=Limb}');
     Expect(1, 6479, '\p{Is_Scx=limb}', "");
     Expect(0, 6479, '\p{^Is_Scx=limb}', "");
     Expect(0, 6479, '\P{Is_Scx=limb}', "");
@@ -147087,16 +148479,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6480, '\p{^Is_Scx=limb}', "");
     Expect(1, 6480, '\P{Is_Scx=limb}', "");
     Expect(0, 6480, '\P{^Is_Scx=limb}', "");
-    Expect(1, 6479, '\p{Is_Scx=	-Limb}', "");
-    Expect(0, 6479, '\p{^Is_Scx=	-Limb}', "");
-    Expect(0, 6479, '\P{Is_Scx=	-Limb}', "");
-    Expect(1, 6479, '\P{^Is_Scx=	-Limb}', "");
-    Expect(0, 6480, '\p{Is_Scx=	-Limb}', "");
-    Expect(1, 6480, '\p{^Is_Scx=	-Limb}', "");
-    Expect(1, 6480, '\P{Is_Scx=	-Limb}', "");
-    Expect(0, 6480, '\P{^Is_Scx=	-Limb}', "");
-    Error('\p{Script_Extensions=_:=Linear_A}');
-    Error('\P{Script_Extensions=_:=Linear_A}');
+    Expect(1, 6479, '\p{Is_Scx= 	limb}', "");
+    Expect(0, 6479, '\p{^Is_Scx= 	limb}', "");
+    Expect(0, 6479, '\P{Is_Scx= 	limb}', "");
+    Expect(1, 6479, '\P{^Is_Scx= 	limb}', "");
+    Expect(0, 6480, '\p{Is_Scx= 	limb}', "");
+    Expect(1, 6480, '\p{^Is_Scx= 	limb}', "");
+    Expect(1, 6480, '\P{Is_Scx= 	limb}', "");
+    Expect(0, 6480, '\P{^Is_Scx= 	limb}', "");
+    Error('\p{Script_Extensions=:=_LINEAR_A}');
+    Error('\P{Script_Extensions=:=_LINEAR_A}');
     Expect(1, 67431, '\p{Script_Extensions=:\ALinear_A\z:}', "");;
     Expect(0, 67432, '\p{Script_Extensions=:\ALinear_A\z:}', "");;
     Expect(1, 67431, '\p{Script_Extensions=lineara}', "");
@@ -147109,16 +148501,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67432, '\P{^Script_Extensions=lineara}', "");
     Expect(1, 67431, '\p{Script_Extensions=:\Alineara\z:}', "");;
     Expect(0, 67432, '\p{Script_Extensions=:\Alineara\z:}', "");;
-    Expect(1, 67431, '\p{Script_Extensions=__Linear_A}', "");
-    Expect(0, 67431, '\p{^Script_Extensions=__Linear_A}', "");
-    Expect(0, 67431, '\P{Script_Extensions=__Linear_A}', "");
-    Expect(1, 67431, '\P{^Script_Extensions=__Linear_A}', "");
-    Expect(0, 67432, '\p{Script_Extensions=__Linear_A}', "");
-    Expect(1, 67432, '\p{^Script_Extensions=__Linear_A}', "");
-    Expect(1, 67432, '\P{Script_Extensions=__Linear_A}', "");
-    Expect(0, 67432, '\P{^Script_Extensions=__Linear_A}', "");
-    Error('\p{Scx:   _/a/Lina}');
-    Error('\P{Scx:   _/a/Lina}');
+    Expect(1, 67431, '\p{Script_Extensions=	-linear_A}', "");
+    Expect(0, 67431, '\p{^Script_Extensions=	-linear_A}', "");
+    Expect(0, 67431, '\P{Script_Extensions=	-linear_A}', "");
+    Expect(1, 67431, '\P{^Script_Extensions=	-linear_A}', "");
+    Expect(0, 67432, '\p{Script_Extensions=	-linear_A}', "");
+    Expect(1, 67432, '\p{^Script_Extensions=	-linear_A}', "");
+    Expect(1, 67432, '\P{Script_Extensions=	-linear_A}', "");
+    Expect(0, 67432, '\P{^Script_Extensions=	-linear_A}', "");
+    Error('\p{Scx= :=LINA}');
+    Error('\P{Scx= :=LINA}');
     Expect(1, 67431, '\p{Scx=:\ALina\z:}', "");;
     Expect(0, 67432, '\p{Scx=:\ALina\z:}', "");;
     Expect(1, 67431, '\p{Scx=lina}', "");
@@ -147131,34 +148523,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67432, '\P{^Scx=lina}', "");
     Expect(1, 67431, '\p{Scx=:\Alina\z:}', "");;
     Expect(0, 67432, '\p{Scx=:\Alina\z:}', "");;
-    Expect(1, 67431, '\p{Scx=	LINA}', "");
-    Expect(0, 67431, '\p{^Scx=	LINA}', "");
-    Expect(0, 67431, '\P{Scx=	LINA}', "");
-    Expect(1, 67431, '\P{^Scx=	LINA}', "");
-    Expect(0, 67432, '\p{Scx=	LINA}', "");
-    Expect(1, 67432, '\p{^Scx=	LINA}', "");
-    Expect(1, 67432, '\P{Scx=	LINA}', "");
-    Expect(0, 67432, '\P{^Scx=	LINA}', "");
-    Error('\p{Is_Script_Extensions=/a/_	linear_A}');
-    Error('\P{Is_Script_Extensions=/a/_	linear_A}');
-    Expect(1, 67431, '\p{Is_Script_Extensions=lineara}', "");
-    Expect(0, 67431, '\p{^Is_Script_Extensions=lineara}', "");
-    Expect(0, 67431, '\P{Is_Script_Extensions=lineara}', "");
-    Expect(1, 67431, '\P{^Is_Script_Extensions=lineara}', "");
-    Expect(0, 67432, '\p{Is_Script_Extensions=lineara}', "");
-    Expect(1, 67432, '\p{^Is_Script_Extensions=lineara}', "");
-    Expect(1, 67432, '\P{Is_Script_Extensions=lineara}', "");
-    Expect(0, 67432, '\P{^Is_Script_Extensions=lineara}', "");
-    Expect(1, 67431, '\p{Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(0, 67431, '\p{^Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(0, 67431, '\P{Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(1, 67431, '\P{^Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(0, 67432, '\p{Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(1, 67432, '\p{^Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(1, 67432, '\P{Is_Script_Extensions=_LINEAR_a}', "");
-    Expect(0, 67432, '\P{^Is_Script_Extensions=_LINEAR_a}', "");
-    Error('\p{Is_Scx=_/a/lina}');
-    Error('\P{Is_Scx=_/a/lina}');
+    Expect(1, 67431, '\p{Scx=-	lina}', "");
+    Expect(0, 67431, '\p{^Scx=-	lina}', "");
+    Expect(0, 67431, '\P{Scx=-	lina}', "");
+    Expect(1, 67431, '\P{^Scx=-	lina}', "");
+    Expect(0, 67432, '\p{Scx=-	lina}', "");
+    Expect(1, 67432, '\p{^Scx=-	lina}', "");
+    Expect(1, 67432, '\P{Scx=-	lina}', "");
+    Expect(0, 67432, '\P{^Scx=-	lina}', "");
+    Error('\p{Is_Script_Extensions:	__Linear_A:=}');
+    Error('\P{Is_Script_Extensions:	__Linear_A:=}');
+    Expect(1, 67431, '\p{Is_Script_Extensions:lineara}', "");
+    Expect(0, 67431, '\p{^Is_Script_Extensions:lineara}', "");
+    Expect(0, 67431, '\P{Is_Script_Extensions:lineara}', "");
+    Expect(1, 67431, '\P{^Is_Script_Extensions:lineara}', "");
+    Expect(0, 67432, '\p{Is_Script_Extensions:lineara}', "");
+    Expect(1, 67432, '\p{^Is_Script_Extensions:lineara}', "");
+    Expect(1, 67432, '\P{Is_Script_Extensions:lineara}', "");
+    Expect(0, 67432, '\P{^Is_Script_Extensions:lineara}', "");
+    Expect(1, 67431, '\p{Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(0, 67431, '\p{^Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(0, 67431, '\P{Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(1, 67431, '\P{^Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(0, 67432, '\p{Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(1, 67432, '\p{^Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(1, 67432, '\P{Is_Script_Extensions:   _-LINEAR_A}', "");
+    Expect(0, 67432, '\P{^Is_Script_Extensions:   _-LINEAR_A}', "");
+    Error('\p{Is_Scx=:=- Lina}');
+    Error('\P{Is_Scx=:=- Lina}');
     Expect(1, 67431, '\p{Is_Scx=lina}', "");
     Expect(0, 67431, '\p{^Is_Scx=lina}', "");
     Expect(0, 67431, '\P{Is_Scx=lina}', "");
@@ -147167,16 +148559,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67432, '\p{^Is_Scx=lina}', "");
     Expect(1, 67432, '\P{Is_Scx=lina}', "");
     Expect(0, 67432, '\P{^Is_Scx=lina}', "");
-    Expect(1, 67431, '\p{Is_Scx= Lina}', "");
-    Expect(0, 67431, '\p{^Is_Scx= Lina}', "");
-    Expect(0, 67431, '\P{Is_Scx= Lina}', "");
-    Expect(1, 67431, '\P{^Is_Scx= Lina}', "");
-    Expect(0, 67432, '\p{Is_Scx= Lina}', "");
-    Expect(1, 67432, '\p{^Is_Scx= Lina}', "");
-    Expect(1, 67432, '\P{Is_Scx= Lina}', "");
-    Expect(0, 67432, '\P{^Is_Scx= Lina}', "");
-    Error('\p{Script_Extensions= 	Linear_B/a/}');
-    Error('\P{Script_Extensions= 	Linear_B/a/}');
+    Expect(1, 67431, '\p{Is_Scx=_ LINA}', "");
+    Expect(0, 67431, '\p{^Is_Scx=_ LINA}', "");
+    Expect(0, 67431, '\P{Is_Scx=_ LINA}', "");
+    Expect(1, 67431, '\P{^Is_Scx=_ LINA}', "");
+    Expect(0, 67432, '\p{Is_Scx=_ LINA}', "");
+    Expect(1, 67432, '\p{^Is_Scx=_ LINA}', "");
+    Expect(1, 67432, '\P{Is_Scx=_ LINA}', "");
+    Expect(0, 67432, '\P{^Is_Scx=_ LINA}', "");
+    Error('\p{Script_Extensions=	linear_b/a/}');
+    Error('\P{Script_Extensions=	linear_b/a/}');
     Expect(1, 65855, '\p{Script_Extensions=:\ALinear_B\z:}', "");;
     Expect(0, 65856, '\p{Script_Extensions=:\ALinear_B\z:}', "");;
     Expect(1, 65855, '\p{Script_Extensions=linearb}', "");
@@ -147189,16 +148581,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65856, '\P{^Script_Extensions=linearb}', "");
     Expect(1, 65855, '\p{Script_Extensions=:\Alinearb\z:}', "");;
     Expect(0, 65856, '\p{Script_Extensions=:\Alinearb\z:}', "");;
-    Expect(1, 65855, '\p{Script_Extensions: -Linear_b}', "");
-    Expect(0, 65855, '\p{^Script_Extensions: -Linear_b}', "");
-    Expect(0, 65855, '\P{Script_Extensions: -Linear_b}', "");
-    Expect(1, 65855, '\P{^Script_Extensions: -Linear_b}', "");
-    Expect(0, 65856, '\p{Script_Extensions: -Linear_b}', "");
-    Expect(1, 65856, '\p{^Script_Extensions: -Linear_b}', "");
-    Expect(1, 65856, '\P{Script_Extensions: -Linear_b}', "");
-    Expect(0, 65856, '\P{^Script_Extensions: -Linear_b}', "");
-    Error('\p{Scx= -linb/a/}');
-    Error('\P{Scx= -linb/a/}');
+    Expect(1, 65855, '\p{Script_Extensions=	linear_b}', "");
+    Expect(0, 65855, '\p{^Script_Extensions=	linear_b}', "");
+    Expect(0, 65855, '\P{Script_Extensions=	linear_b}', "");
+    Expect(1, 65855, '\P{^Script_Extensions=	linear_b}', "");
+    Expect(0, 65856, '\p{Script_Extensions=	linear_b}', "");
+    Expect(1, 65856, '\p{^Script_Extensions=	linear_b}', "");
+    Expect(1, 65856, '\P{Script_Extensions=	linear_b}', "");
+    Expect(0, 65856, '\P{^Script_Extensions=	linear_b}', "");
+    Error('\p{Scx=_-Linb/a/}');
+    Error('\P{Scx=_-Linb/a/}');
     Expect(1, 65855, '\p{Scx=:\ALinb\z:}', "");;
     Expect(0, 65856, '\p{Scx=:\ALinb\z:}', "");;
     Expect(1, 65855, '\p{Scx=linb}', "");
@@ -147211,52 +148603,44 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65856, '\P{^Scx=linb}', "");
     Expect(1, 65855, '\p{Scx=:\Alinb\z:}', "");;
     Expect(0, 65856, '\p{Scx=:\Alinb\z:}', "");;
-    Expect(1, 65855, '\p{Scx=--LINB}', "");
-    Expect(0, 65855, '\p{^Scx=--LINB}', "");
-    Expect(0, 65855, '\P{Scx=--LINB}', "");
-    Expect(1, 65855, '\P{^Scx=--LINB}', "");
-    Expect(0, 65856, '\p{Scx=--LINB}', "");
-    Expect(1, 65856, '\p{^Scx=--LINB}', "");
-    Expect(1, 65856, '\P{Scx=--LINB}', "");
-    Expect(0, 65856, '\P{^Scx=--LINB}', "");
-    Error('\p{Is_Script_Extensions= :=Linear_b}');
-    Error('\P{Is_Script_Extensions= :=Linear_b}');
-    Expect(1, 65855, '\p{Is_Script_Extensions:	linearb}', "");
-    Expect(0, 65855, '\p{^Is_Script_Extensions:	linearb}', "");
-    Expect(0, 65855, '\P{Is_Script_Extensions:	linearb}', "");
-    Expect(1, 65855, '\P{^Is_Script_Extensions:	linearb}', "");
-    Expect(0, 65856, '\p{Is_Script_Extensions:	linearb}', "");
-    Expect(1, 65856, '\p{^Is_Script_Extensions:	linearb}', "");
-    Expect(1, 65856, '\P{Is_Script_Extensions:	linearb}', "");
-    Expect(0, 65856, '\P{^Is_Script_Extensions:	linearb}', "");
-    Expect(1, 65855, '\p{Is_Script_Extensions=_Linear_b}', "");
-    Expect(0, 65855, '\p{^Is_Script_Extensions=_Linear_b}', "");
-    Expect(0, 65855, '\P{Is_Script_Extensions=_Linear_b}', "");
-    Expect(1, 65855, '\P{^Is_Script_Extensions=_Linear_b}', "");
-    Expect(0, 65856, '\p{Is_Script_Extensions=_Linear_b}', "");
-    Expect(1, 65856, '\p{^Is_Script_Extensions=_Linear_b}', "");
-    Expect(1, 65856, '\P{Is_Script_Extensions=_Linear_b}', "");
-    Expect(0, 65856, '\P{^Is_Script_Extensions=_Linear_b}', "");
-    Error('\p{Is_Scx=:= 	Linb}');
-    Error('\P{Is_Scx=:= 	Linb}');
-    Expect(1, 65855, '\p{Is_Scx:   linb}', "");
-    Expect(0, 65855, '\p{^Is_Scx:   linb}', "");
-    Expect(0, 65855, '\P{Is_Scx:   linb}', "");
-    Expect(1, 65855, '\P{^Is_Scx:   linb}', "");
-    Expect(0, 65856, '\p{Is_Scx:   linb}', "");
-    Expect(1, 65856, '\p{^Is_Scx:   linb}', "");
-    Expect(1, 65856, '\P{Is_Scx:   linb}', "");
-    Expect(0, 65856, '\P{^Is_Scx:   linb}', "");
-    Expect(1, 65855, '\p{Is_Scx=_-linb}', "");
-    Expect(0, 65855, '\p{^Is_Scx=_-linb}', "");
-    Expect(0, 65855, '\P{Is_Scx=_-linb}', "");
-    Expect(1, 65855, '\P{^Is_Scx=_-linb}', "");
-    Expect(0, 65856, '\p{Is_Scx=_-linb}', "");
-    Expect(1, 65856, '\p{^Is_Scx=_-linb}', "");
-    Expect(1, 65856, '\P{Is_Scx=_-linb}', "");
-    Expect(0, 65856, '\P{^Is_Scx=_-linb}', "");
-    Error('\p{Script_Extensions=_LISU/a/}');
-    Error('\P{Script_Extensions=_LISU/a/}');
+    Error('\p{Is_Script_Extensions=-_linear_B:=}');
+    Error('\P{Is_Script_Extensions=-_linear_B:=}');
+    Expect(1, 65855, '\p{Is_Script_Extensions=linearb}', "");
+    Expect(0, 65855, '\p{^Is_Script_Extensions=linearb}', "");
+    Expect(0, 65855, '\P{Is_Script_Extensions=linearb}', "");
+    Expect(1, 65855, '\P{^Is_Script_Extensions=linearb}', "");
+    Expect(0, 65856, '\p{Is_Script_Extensions=linearb}', "");
+    Expect(1, 65856, '\p{^Is_Script_Extensions=linearb}', "");
+    Expect(1, 65856, '\P{Is_Script_Extensions=linearb}', "");
+    Expect(0, 65856, '\P{^Is_Script_Extensions=linearb}', "");
+    Expect(1, 65855, '\p{Is_Script_Extensions=Linear_B}', "");
+    Expect(0, 65855, '\p{^Is_Script_Extensions=Linear_B}', "");
+    Expect(0, 65855, '\P{Is_Script_Extensions=Linear_B}', "");
+    Expect(1, 65855, '\P{^Is_Script_Extensions=Linear_B}', "");
+    Expect(0, 65856, '\p{Is_Script_Extensions=Linear_B}', "");
+    Expect(1, 65856, '\p{^Is_Script_Extensions=Linear_B}', "");
+    Expect(1, 65856, '\P{Is_Script_Extensions=Linear_B}', "");
+    Expect(0, 65856, '\P{^Is_Script_Extensions=Linear_B}', "");
+    Error('\p{Is_Scx=	linb:=}');
+    Error('\P{Is_Scx=	linb:=}');
+    Expect(1, 65855, '\p{Is_Scx=linb}', "");
+    Expect(0, 65855, '\p{^Is_Scx=linb}', "");
+    Expect(0, 65855, '\P{Is_Scx=linb}', "");
+    Expect(1, 65855, '\P{^Is_Scx=linb}', "");
+    Expect(0, 65856, '\p{Is_Scx=linb}', "");
+    Expect(1, 65856, '\p{^Is_Scx=linb}', "");
+    Expect(1, 65856, '\P{Is_Scx=linb}', "");
+    Expect(0, 65856, '\P{^Is_Scx=linb}', "");
+    Expect(1, 65855, '\p{Is_Scx: 	-LINB}', "");
+    Expect(0, 65855, '\p{^Is_Scx: 	-LINB}', "");
+    Expect(0, 65855, '\P{Is_Scx: 	-LINB}', "");
+    Expect(1, 65855, '\P{^Is_Scx: 	-LINB}', "");
+    Expect(0, 65856, '\p{Is_Scx: 	-LINB}', "");
+    Expect(1, 65856, '\p{^Is_Scx: 	-LINB}', "");
+    Expect(1, 65856, '\P{Is_Scx: 	-LINB}', "");
+    Expect(0, 65856, '\P{^Is_Scx: 	-LINB}', "");
+    Error('\p{Script_Extensions:   /a/lisu}');
+    Error('\P{Script_Extensions:   /a/lisu}');
     Expect(1, 73648, '\p{Script_Extensions=:\ALisu\z:}', "");;
     Expect(0, 73649, '\p{Script_Extensions=:\ALisu\z:}', "");;
     Expect(1, 73648, '\p{Script_Extensions=lisu}', "");
@@ -147269,16 +148653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73649, '\P{^Script_Extensions=lisu}', "");
     Expect(1, 73648, '\p{Script_Extensions=:\Alisu\z:}', "");;
     Expect(0, 73649, '\p{Script_Extensions=:\Alisu\z:}', "");;
-    Expect(1, 73648, '\p{Script_Extensions=_lisu}', "");
-    Expect(0, 73648, '\p{^Script_Extensions=_lisu}', "");
-    Expect(0, 73648, '\P{Script_Extensions=_lisu}', "");
-    Expect(1, 73648, '\P{^Script_Extensions=_lisu}', "");
-    Expect(0, 73649, '\p{Script_Extensions=_lisu}', "");
-    Expect(1, 73649, '\p{^Script_Extensions=_lisu}', "");
-    Expect(1, 73649, '\P{Script_Extensions=_lisu}', "");
-    Expect(0, 73649, '\P{^Script_Extensions=_lisu}', "");
-    Error('\p{Scx=/a/	-lisu}');
-    Error('\P{Scx=/a/	-lisu}');
+    Expect(1, 73648, '\p{Script_Extensions=--LISU}', "");
+    Expect(0, 73648, '\p{^Script_Extensions=--LISU}', "");
+    Expect(0, 73648, '\P{Script_Extensions=--LISU}', "");
+    Expect(1, 73648, '\P{^Script_Extensions=--LISU}', "");
+    Expect(0, 73649, '\p{Script_Extensions=--LISU}', "");
+    Expect(1, 73649, '\p{^Script_Extensions=--LISU}', "");
+    Expect(1, 73649, '\P{Script_Extensions=--LISU}', "");
+    Expect(0, 73649, '\P{^Script_Extensions=--LISU}', "");
+    Error('\p{Scx=	Lisu:=}');
+    Error('\P{Scx=	Lisu:=}');
     Expect(1, 73648, '\p{Scx=:\ALisu\z:}', "");;
     Expect(0, 73649, '\p{Scx=:\ALisu\z:}', "");;
     Expect(1, 73648, '\p{Scx=lisu}', "");
@@ -147291,16 +148675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73649, '\P{^Scx=lisu}', "");
     Expect(1, 73648, '\p{Scx=:\Alisu\z:}', "");;
     Expect(0, 73649, '\p{Scx=:\Alisu\z:}', "");;
-    Expect(1, 73648, '\p{Scx=_-LISU}', "");
-    Expect(0, 73648, '\p{^Scx=_-LISU}', "");
-    Expect(0, 73648, '\P{Scx=_-LISU}', "");
-    Expect(1, 73648, '\P{^Scx=_-LISU}', "");
-    Expect(0, 73649, '\p{Scx=_-LISU}', "");
-    Expect(1, 73649, '\p{^Scx=_-LISU}', "");
-    Expect(1, 73649, '\P{Scx=_-LISU}', "");
-    Expect(0, 73649, '\P{^Scx=_-LISU}', "");
-    Error('\p{Is_Script_Extensions=-/a/lisu}');
-    Error('\P{Is_Script_Extensions=-/a/lisu}');
+    Expect(1, 73648, '\p{Scx=_-lisu}', "");
+    Expect(0, 73648, '\p{^Scx=_-lisu}', "");
+    Expect(0, 73648, '\P{Scx=_-lisu}', "");
+    Expect(1, 73648, '\P{^Scx=_-lisu}', "");
+    Expect(0, 73649, '\p{Scx=_-lisu}', "");
+    Expect(1, 73649, '\p{^Scx=_-lisu}', "");
+    Expect(1, 73649, '\P{Scx=_-lisu}', "");
+    Expect(0, 73649, '\P{^Scx=_-lisu}', "");
+    Error('\p{Is_Script_Extensions=/a/-lisu}');
+    Error('\P{Is_Script_Extensions=/a/-lisu}');
     Expect(1, 73648, '\p{Is_Script_Extensions=lisu}', "");
     Expect(0, 73648, '\p{^Is_Script_Extensions=lisu}', "");
     Expect(0, 73648, '\P{Is_Script_Extensions=lisu}', "");
@@ -147309,16 +148693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73649, '\p{^Is_Script_Extensions=lisu}', "");
     Expect(1, 73649, '\P{Is_Script_Extensions=lisu}', "");
     Expect(0, 73649, '\P{^Is_Script_Extensions=lisu}', "");
-    Expect(1, 73648, '\p{Is_Script_Extensions=-	LISU}', "");
-    Expect(0, 73648, '\p{^Is_Script_Extensions=-	LISU}', "");
-    Expect(0, 73648, '\P{Is_Script_Extensions=-	LISU}', "");
-    Expect(1, 73648, '\P{^Is_Script_Extensions=-	LISU}', "");
-    Expect(0, 73649, '\p{Is_Script_Extensions=-	LISU}', "");
-    Expect(1, 73649, '\p{^Is_Script_Extensions=-	LISU}', "");
-    Expect(1, 73649, '\P{Is_Script_Extensions=-	LISU}', "");
-    Expect(0, 73649, '\P{^Is_Script_Extensions=-	LISU}', "");
-    Error('\p{Is_Scx=__Lisu:=}');
-    Error('\P{Is_Scx=__Lisu:=}');
+    Expect(1, 73648, '\p{Is_Script_Extensions:   -_lisu}', "");
+    Expect(0, 73648, '\p{^Is_Script_Extensions:   -_lisu}', "");
+    Expect(0, 73648, '\P{Is_Script_Extensions:   -_lisu}', "");
+    Expect(1, 73648, '\P{^Is_Script_Extensions:   -_lisu}', "");
+    Expect(0, 73649, '\p{Is_Script_Extensions:   -_lisu}', "");
+    Expect(1, 73649, '\p{^Is_Script_Extensions:   -_lisu}', "");
+    Expect(1, 73649, '\P{Is_Script_Extensions:   -_lisu}', "");
+    Expect(0, 73649, '\P{^Is_Script_Extensions:   -_lisu}', "");
+    Error('\p{Is_Scx=	Lisu:=}');
+    Error('\P{Is_Scx=	Lisu:=}');
     Expect(1, 73648, '\p{Is_Scx=lisu}', "");
     Expect(0, 73648, '\p{^Is_Scx=lisu}', "");
     Expect(0, 73648, '\P{Is_Scx=lisu}', "");
@@ -147327,16 +148711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73649, '\p{^Is_Scx=lisu}', "");
     Expect(1, 73649, '\P{Is_Scx=lisu}', "");
     Expect(0, 73649, '\P{^Is_Scx=lisu}', "");
-    Expect(1, 73648, '\p{Is_Scx= lisu}', "");
-    Expect(0, 73648, '\p{^Is_Scx= lisu}', "");
-    Expect(0, 73648, '\P{Is_Scx= lisu}', "");
-    Expect(1, 73648, '\P{^Is_Scx= lisu}', "");
-    Expect(0, 73649, '\p{Is_Scx= lisu}', "");
-    Expect(1, 73649, '\p{^Is_Scx= lisu}', "");
-    Expect(1, 73649, '\P{Is_Scx= lisu}', "");
-    Expect(0, 73649, '\P{^Is_Scx= lisu}', "");
-    Error('\p{Script_Extensions=lycian:=}');
-    Error('\P{Script_Extensions=lycian:=}');
+    Expect(1, 73648, '\p{Is_Scx:	-LISU}', "");
+    Expect(0, 73648, '\p{^Is_Scx:	-LISU}', "");
+    Expect(0, 73648, '\P{Is_Scx:	-LISU}', "");
+    Expect(1, 73648, '\P{^Is_Scx:	-LISU}', "");
+    Expect(0, 73649, '\p{Is_Scx:	-LISU}', "");
+    Expect(1, 73649, '\p{^Is_Scx:	-LISU}', "");
+    Expect(1, 73649, '\P{Is_Scx:	-LISU}', "");
+    Expect(0, 73649, '\P{^Is_Scx:	-LISU}', "");
+    Error('\p{Script_Extensions=	:=lycian}');
+    Error('\P{Script_Extensions=	:=lycian}');
     Expect(1, 66204, '\p{Script_Extensions=:\ALycian\z:}', "");;
     Expect(0, 66205, '\p{Script_Extensions=:\ALycian\z:}', "");;
     Expect(1, 66204, '\p{Script_Extensions=lycian}', "");
@@ -147349,16 +148733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66205, '\P{^Script_Extensions=lycian}', "");
     Expect(1, 66204, '\p{Script_Extensions=:\Alycian\z:}', "");;
     Expect(0, 66205, '\p{Script_Extensions=:\Alycian\z:}', "");;
-    Expect(1, 66204, '\p{Script_Extensions=- lycian}', "");
-    Expect(0, 66204, '\p{^Script_Extensions=- lycian}', "");
-    Expect(0, 66204, '\P{Script_Extensions=- lycian}', "");
-    Expect(1, 66204, '\P{^Script_Extensions=- lycian}', "");
-    Expect(0, 66205, '\p{Script_Extensions=- lycian}', "");
-    Expect(1, 66205, '\p{^Script_Extensions=- lycian}', "");
-    Expect(1, 66205, '\P{Script_Extensions=- lycian}', "");
-    Expect(0, 66205, '\P{^Script_Extensions=- lycian}', "");
-    Error('\p{Scx= :=Lyci}');
-    Error('\P{Scx= :=Lyci}');
+    Expect(1, 66204, '\p{Script_Extensions=		Lycian}', "");
+    Expect(0, 66204, '\p{^Script_Extensions=		Lycian}', "");
+    Expect(0, 66204, '\P{Script_Extensions=		Lycian}', "");
+    Expect(1, 66204, '\P{^Script_Extensions=		Lycian}', "");
+    Expect(0, 66205, '\p{Script_Extensions=		Lycian}', "");
+    Expect(1, 66205, '\p{^Script_Extensions=		Lycian}', "");
+    Expect(1, 66205, '\P{Script_Extensions=		Lycian}', "");
+    Expect(0, 66205, '\P{^Script_Extensions=		Lycian}', "");
+    Error('\p{Scx=/a/- Lyci}');
+    Error('\P{Scx=/a/- Lyci}');
     Expect(1, 66204, '\p{Scx=:\ALyci\z:}', "");;
     Expect(0, 66205, '\p{Scx=:\ALyci\z:}', "");;
     Expect(1, 66204, '\p{Scx=lyci}', "");
@@ -147371,34 +148755,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66205, '\P{^Scx=lyci}', "");
     Expect(1, 66204, '\p{Scx=:\Alyci\z:}', "");;
     Expect(0, 66205, '\p{Scx=:\Alyci\z:}', "");;
-    Expect(1, 66204, '\p{Scx=	_lyci}', "");
-    Expect(0, 66204, '\p{^Scx=	_lyci}', "");
-    Expect(0, 66204, '\P{Scx=	_lyci}', "");
-    Expect(1, 66204, '\P{^Scx=	_lyci}', "");
-    Expect(0, 66205, '\p{Scx=	_lyci}', "");
-    Expect(1, 66205, '\p{^Scx=	_lyci}', "");
-    Expect(1, 66205, '\P{Scx=	_lyci}', "");
-    Expect(0, 66205, '\P{^Scx=	_lyci}', "");
-    Error('\p{Is_Script_Extensions=  LYCIAN/a/}');
-    Error('\P{Is_Script_Extensions=  LYCIAN/a/}');
-    Expect(1, 66204, '\p{Is_Script_Extensions:   lycian}', "");
-    Expect(0, 66204, '\p{^Is_Script_Extensions:   lycian}', "");
-    Expect(0, 66204, '\P{Is_Script_Extensions:   lycian}', "");
-    Expect(1, 66204, '\P{^Is_Script_Extensions:   lycian}', "");
-    Expect(0, 66205, '\p{Is_Script_Extensions:   lycian}', "");
-    Expect(1, 66205, '\p{^Is_Script_Extensions:   lycian}', "");
-    Expect(1, 66205, '\P{Is_Script_Extensions:   lycian}', "");
-    Expect(0, 66205, '\P{^Is_Script_Extensions:   lycian}', "");
-    Expect(1, 66204, '\p{Is_Script_Extensions=-_Lycian}', "");
-    Expect(0, 66204, '\p{^Is_Script_Extensions=-_Lycian}', "");
-    Expect(0, 66204, '\P{Is_Script_Extensions=-_Lycian}', "");
-    Expect(1, 66204, '\P{^Is_Script_Extensions=-_Lycian}', "");
-    Expect(0, 66205, '\p{Is_Script_Extensions=-_Lycian}', "");
-    Expect(1, 66205, '\p{^Is_Script_Extensions=-_Lycian}', "");
-    Expect(1, 66205, '\P{Is_Script_Extensions=-_Lycian}', "");
-    Expect(0, 66205, '\P{^Is_Script_Extensions=-_Lycian}', "");
-    Error('\p{Is_Scx=	/a/lyci}');
-    Error('\P{Is_Scx=	/a/lyci}');
+    Expect(1, 66204, '\p{Scx=  lyci}', "");
+    Expect(0, 66204, '\p{^Scx=  lyci}', "");
+    Expect(0, 66204, '\P{Scx=  lyci}', "");
+    Expect(1, 66204, '\P{^Scx=  lyci}', "");
+    Expect(0, 66205, '\p{Scx=  lyci}', "");
+    Expect(1, 66205, '\p{^Scx=  lyci}', "");
+    Expect(1, 66205, '\P{Scx=  lyci}', "");
+    Expect(0, 66205, '\P{^Scx=  lyci}', "");
+    Error('\p{Is_Script_Extensions:   -:=Lycian}');
+    Error('\P{Is_Script_Extensions:   -:=Lycian}');
+    Expect(1, 66204, '\p{Is_Script_Extensions=lycian}', "");
+    Expect(0, 66204, '\p{^Is_Script_Extensions=lycian}', "");
+    Expect(0, 66204, '\P{Is_Script_Extensions=lycian}', "");
+    Expect(1, 66204, '\P{^Is_Script_Extensions=lycian}', "");
+    Expect(0, 66205, '\p{Is_Script_Extensions=lycian}', "");
+    Expect(1, 66205, '\p{^Is_Script_Extensions=lycian}', "");
+    Expect(1, 66205, '\P{Is_Script_Extensions=lycian}', "");
+    Expect(0, 66205, '\P{^Is_Script_Extensions=lycian}', "");
+    Expect(1, 66204, '\p{Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(0, 66204, '\p{^Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(0, 66204, '\P{Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(1, 66204, '\P{^Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(0, 66205, '\p{Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(1, 66205, '\p{^Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(1, 66205, '\P{Is_Script_Extensions: 	-LYCIAN}', "");
+    Expect(0, 66205, '\P{^Is_Script_Extensions: 	-LYCIAN}', "");
+    Error('\p{Is_Scx=	:=LYCI}');
+    Error('\P{Is_Scx=	:=LYCI}');
     Expect(1, 66204, '\p{Is_Scx=lyci}', "");
     Expect(0, 66204, '\p{^Is_Scx=lyci}', "");
     Expect(0, 66204, '\P{Is_Scx=lyci}', "");
@@ -147407,16 +148791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66205, '\p{^Is_Scx=lyci}', "");
     Expect(1, 66205, '\P{Is_Scx=lyci}', "");
     Expect(0, 66205, '\P{^Is_Scx=lyci}', "");
-    Expect(1, 66204, '\p{Is_Scx=Lyci}', "");
-    Expect(0, 66204, '\p{^Is_Scx=Lyci}', "");
-    Expect(0, 66204, '\P{Is_Scx=Lyci}', "");
-    Expect(1, 66204, '\P{^Is_Scx=Lyci}', "");
-    Expect(0, 66205, '\p{Is_Scx=Lyci}', "");
-    Expect(1, 66205, '\p{^Is_Scx=Lyci}', "");
-    Expect(1, 66205, '\P{Is_Scx=Lyci}', "");
-    Expect(0, 66205, '\P{^Is_Scx=Lyci}', "");
-    Error('\p{Script_Extensions::= LYDIAN}');
-    Error('\P{Script_Extensions::= LYDIAN}');
+    Expect(1, 66204, '\p{Is_Scx=  Lyci}', "");
+    Expect(0, 66204, '\p{^Is_Scx=  Lyci}', "");
+    Expect(0, 66204, '\P{Is_Scx=  Lyci}', "");
+    Expect(1, 66204, '\P{^Is_Scx=  Lyci}', "");
+    Expect(0, 66205, '\p{Is_Scx=  Lyci}', "");
+    Expect(1, 66205, '\p{^Is_Scx=  Lyci}', "");
+    Expect(1, 66205, '\P{Is_Scx=  Lyci}', "");
+    Expect(0, 66205, '\P{^Is_Scx=  Lyci}', "");
+    Error('\p{Script_Extensions=/a/ 	Lydian}');
+    Error('\P{Script_Extensions=/a/ 	Lydian}');
     Expect(1, 67903, '\p{Script_Extensions=:\ALydian\z:}', "");;
     Expect(0, 67904, '\p{Script_Extensions=:\ALydian\z:}', "");;
     Expect(1, 67903, '\p{Script_Extensions=lydian}', "");
@@ -147429,38 +148813,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67904, '\P{^Script_Extensions=lydian}', "");
     Expect(1, 67903, '\p{Script_Extensions=:\Alydian\z:}', "");;
     Expect(0, 67904, '\p{Script_Extensions=:\Alydian\z:}', "");;
-    Expect(1, 67903, '\p{Script_Extensions=	_Lydian}', "");
-    Expect(0, 67903, '\p{^Script_Extensions=	_Lydian}', "");
-    Expect(0, 67903, '\P{Script_Extensions=	_Lydian}', "");
-    Expect(1, 67903, '\P{^Script_Extensions=	_Lydian}', "");
-    Expect(0, 67904, '\p{Script_Extensions=	_Lydian}', "");
-    Expect(1, 67904, '\p{^Script_Extensions=	_Lydian}', "");
-    Expect(1, 67904, '\P{Script_Extensions=	_Lydian}', "");
-    Expect(0, 67904, '\P{^Script_Extensions=	_Lydian}', "");
-    Error('\p{Scx=/a/LYDI}');
-    Error('\P{Scx=/a/LYDI}');
+    Expect(1, 67903, '\p{Script_Extensions=		Lydian}', "");
+    Expect(0, 67903, '\p{^Script_Extensions=		Lydian}', "");
+    Expect(0, 67903, '\P{Script_Extensions=		Lydian}', "");
+    Expect(1, 67903, '\P{^Script_Extensions=		Lydian}', "");
+    Expect(0, 67904, '\p{Script_Extensions=		Lydian}', "");
+    Expect(1, 67904, '\p{^Script_Extensions=		Lydian}', "");
+    Expect(1, 67904, '\P{Script_Extensions=		Lydian}', "");
+    Expect(0, 67904, '\P{^Script_Extensions=		Lydian}', "");
+    Error('\p{Scx=	:=lydi}');
+    Error('\P{Scx=	:=lydi}');
     Expect(1, 67903, '\p{Scx=:\ALydi\z:}', "");;
     Expect(0, 67904, '\p{Scx=:\ALydi\z:}', "");;
-    Expect(1, 67903, '\p{Scx:   lydi}', "");
-    Expect(0, 67903, '\p{^Scx:   lydi}', "");
-    Expect(0, 67903, '\P{Scx:   lydi}', "");
-    Expect(1, 67903, '\P{^Scx:   lydi}', "");
-    Expect(0, 67904, '\p{Scx:   lydi}', "");
-    Expect(1, 67904, '\p{^Scx:   lydi}', "");
-    Expect(1, 67904, '\P{Scx:   lydi}', "");
-    Expect(0, 67904, '\P{^Scx:   lydi}', "");
+    Expect(1, 67903, '\p{Scx=lydi}', "");
+    Expect(0, 67903, '\p{^Scx=lydi}', "");
+    Expect(0, 67903, '\P{Scx=lydi}', "");
+    Expect(1, 67903, '\P{^Scx=lydi}', "");
+    Expect(0, 67904, '\p{Scx=lydi}', "");
+    Expect(1, 67904, '\p{^Scx=lydi}', "");
+    Expect(1, 67904, '\P{Scx=lydi}', "");
+    Expect(0, 67904, '\P{^Scx=lydi}', "");
     Expect(1, 67903, '\p{Scx=:\Alydi\z:}', "");;
     Expect(0, 67904, '\p{Scx=:\Alydi\z:}', "");;
-    Expect(1, 67903, '\p{Scx=	Lydi}', "");
-    Expect(0, 67903, '\p{^Scx=	Lydi}', "");
-    Expect(0, 67903, '\P{Scx=	Lydi}', "");
-    Expect(1, 67903, '\P{^Scx=	Lydi}', "");
-    Expect(0, 67904, '\p{Scx=	Lydi}', "");
-    Expect(1, 67904, '\p{^Scx=	Lydi}', "");
-    Expect(1, 67904, '\P{Scx=	Lydi}', "");
-    Expect(0, 67904, '\P{^Scx=	Lydi}', "");
-    Error('\p{Is_Script_Extensions: 	lydian/a/}');
-    Error('\P{Is_Script_Extensions: 	lydian/a/}');
+    Expect(1, 67903, '\p{Scx=-_Lydi}', "");
+    Expect(0, 67903, '\p{^Scx=-_Lydi}', "");
+    Expect(0, 67903, '\P{Scx=-_Lydi}', "");
+    Expect(1, 67903, '\P{^Scx=-_Lydi}', "");
+    Expect(0, 67904, '\p{Scx=-_Lydi}', "");
+    Expect(1, 67904, '\p{^Scx=-_Lydi}', "");
+    Expect(1, 67904, '\P{Scx=-_Lydi}', "");
+    Expect(0, 67904, '\P{^Scx=-_Lydi}', "");
+    Error('\p{Is_Script_Extensions=	-Lydian/a/}');
+    Error('\P{Is_Script_Extensions=	-Lydian/a/}');
     Expect(1, 67903, '\p{Is_Script_Extensions=lydian}', "");
     Expect(0, 67903, '\p{^Is_Script_Extensions=lydian}', "");
     Expect(0, 67903, '\P{Is_Script_Extensions=lydian}', "");
@@ -147469,16 +148853,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67904, '\p{^Is_Script_Extensions=lydian}', "");
     Expect(1, 67904, '\P{Is_Script_Extensions=lydian}', "");
     Expect(0, 67904, '\P{^Is_Script_Extensions=lydian}', "");
-    Expect(1, 67903, '\p{Is_Script_Extensions=-_lydian}', "");
-    Expect(0, 67903, '\p{^Is_Script_Extensions=-_lydian}', "");
-    Expect(0, 67903, '\P{Is_Script_Extensions=-_lydian}', "");
-    Expect(1, 67903, '\P{^Is_Script_Extensions=-_lydian}', "");
-    Expect(0, 67904, '\p{Is_Script_Extensions=-_lydian}', "");
-    Expect(1, 67904, '\p{^Is_Script_Extensions=-_lydian}', "");
-    Expect(1, 67904, '\P{Is_Script_Extensions=-_lydian}', "");
-    Expect(0, 67904, '\P{^Is_Script_Extensions=-_lydian}', "");
-    Error('\p{Is_Scx=:=_ LYDI}');
-    Error('\P{Is_Scx=:=_ LYDI}');
+    Expect(1, 67903, '\p{Is_Script_Extensions=_lydian}', "");
+    Expect(0, 67903, '\p{^Is_Script_Extensions=_lydian}', "");
+    Expect(0, 67903, '\P{Is_Script_Extensions=_lydian}', "");
+    Expect(1, 67903, '\P{^Is_Script_Extensions=_lydian}', "");
+    Expect(0, 67904, '\p{Is_Script_Extensions=_lydian}', "");
+    Expect(1, 67904, '\p{^Is_Script_Extensions=_lydian}', "");
+    Expect(1, 67904, '\P{Is_Script_Extensions=_lydian}', "");
+    Expect(0, 67904, '\P{^Is_Script_Extensions=_lydian}', "");
+    Error('\p{Is_Scx=:=Lydi}');
+    Error('\P{Is_Scx=:=Lydi}');
     Expect(1, 67903, '\p{Is_Scx=lydi}', "");
     Expect(0, 67903, '\p{^Is_Scx=lydi}', "");
     Expect(0, 67903, '\P{Is_Scx=lydi}', "");
@@ -147487,60 +148871,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67904, '\p{^Is_Scx=lydi}', "");
     Expect(1, 67904, '\P{Is_Scx=lydi}', "");
     Expect(0, 67904, '\P{^Is_Scx=lydi}', "");
-    Expect(1, 67903, '\p{Is_Scx=-_Lydi}', "");
-    Expect(0, 67903, '\p{^Is_Scx=-_Lydi}', "");
-    Expect(0, 67903, '\P{Is_Scx=-_Lydi}', "");
-    Expect(1, 67903, '\P{^Is_Scx=-_Lydi}', "");
-    Expect(0, 67904, '\p{Is_Scx=-_Lydi}', "");
-    Expect(1, 67904, '\p{^Is_Scx=-_Lydi}', "");
-    Expect(1, 67904, '\P{Is_Scx=-_Lydi}', "");
-    Expect(0, 67904, '\P{^Is_Scx=-_Lydi}', "");
-    Error('\p{Script_Extensions=:=	_mahajani}');
-    Error('\P{Script_Extensions=:=	_mahajani}');
+    Expect(1, 67903, '\p{Is_Scx=_	Lydi}', "");
+    Expect(0, 67903, '\p{^Is_Scx=_	Lydi}', "");
+    Expect(0, 67903, '\P{Is_Scx=_	Lydi}', "");
+    Expect(1, 67903, '\P{^Is_Scx=_	Lydi}', "");
+    Expect(0, 67904, '\p{Is_Scx=_	Lydi}', "");
+    Expect(1, 67904, '\p{^Is_Scx=_	Lydi}', "");
+    Expect(1, 67904, '\P{Is_Scx=_	Lydi}', "");
+    Expect(0, 67904, '\P{^Is_Scx=_	Lydi}', "");
+    Error('\p{Script_Extensions=_:=MAHAJANI}');
+    Error('\P{Script_Extensions=_:=MAHAJANI}');
     Expect(1, 70006, '\p{Script_Extensions=:\AMahajani\z:}', "");;
     Expect(0, 70007, '\p{Script_Extensions=:\AMahajani\z:}', "");;
-    Expect(1, 70006, '\p{Script_Extensions=mahajani}', "");
-    Expect(0, 70006, '\p{^Script_Extensions=mahajani}', "");
-    Expect(0, 70006, '\P{Script_Extensions=mahajani}', "");
-    Expect(1, 70006, '\P{^Script_Extensions=mahajani}', "");
-    Expect(0, 70007, '\p{Script_Extensions=mahajani}', "");
-    Expect(1, 70007, '\p{^Script_Extensions=mahajani}', "");
-    Expect(1, 70007, '\P{Script_Extensions=mahajani}', "");
-    Expect(0, 70007, '\P{^Script_Extensions=mahajani}', "");
+    Expect(1, 70006, '\p{Script_Extensions: mahajani}', "");
+    Expect(0, 70006, '\p{^Script_Extensions: mahajani}', "");
+    Expect(0, 70006, '\P{Script_Extensions: mahajani}', "");
+    Expect(1, 70006, '\P{^Script_Extensions: mahajani}', "");
+    Expect(0, 70007, '\p{Script_Extensions: mahajani}', "");
+    Expect(1, 70007, '\p{^Script_Extensions: mahajani}', "");
+    Expect(1, 70007, '\P{Script_Extensions: mahajani}', "");
+    Expect(0, 70007, '\P{^Script_Extensions: mahajani}', "");
     Expect(1, 70006, '\p{Script_Extensions=:\Amahajani\z:}', "");;
     Expect(0, 70007, '\p{Script_Extensions=:\Amahajani\z:}', "");;
-    Expect(1, 70006, '\p{Script_Extensions=  MAHAJANI}', "");
-    Expect(0, 70006, '\p{^Script_Extensions=  MAHAJANI}', "");
-    Expect(0, 70006, '\P{Script_Extensions=  MAHAJANI}', "");
-    Expect(1, 70006, '\P{^Script_Extensions=  MAHAJANI}', "");
-    Expect(0, 70007, '\p{Script_Extensions=  MAHAJANI}', "");
-    Expect(1, 70007, '\p{^Script_Extensions=  MAHAJANI}', "");
-    Expect(1, 70007, '\P{Script_Extensions=  MAHAJANI}', "");
-    Expect(0, 70007, '\P{^Script_Extensions=  MAHAJANI}', "");
-    Error('\p{Scx=--mahj:=}');
-    Error('\P{Scx=--mahj:=}');
+    Expect(1, 70006, '\p{Script_Extensions=-mahajani}', "");
+    Expect(0, 70006, '\p{^Script_Extensions=-mahajani}', "");
+    Expect(0, 70006, '\P{Script_Extensions=-mahajani}', "");
+    Expect(1, 70006, '\P{^Script_Extensions=-mahajani}', "");
+    Expect(0, 70007, '\p{Script_Extensions=-mahajani}', "");
+    Expect(1, 70007, '\p{^Script_Extensions=-mahajani}', "");
+    Expect(1, 70007, '\P{Script_Extensions=-mahajani}', "");
+    Expect(0, 70007, '\P{^Script_Extensions=-mahajani}', "");
+    Error('\p{Scx=-	Mahj:=}');
+    Error('\P{Scx=-	Mahj:=}');
     Expect(1, 70006, '\p{Scx=:\AMahj\z:}', "");;
     Expect(0, 70007, '\p{Scx=:\AMahj\z:}', "");;
-    Expect(1, 70006, '\p{Scx:   mahj}', "");
-    Expect(0, 70006, '\p{^Scx:   mahj}', "");
-    Expect(0, 70006, '\P{Scx:   mahj}', "");
-    Expect(1, 70006, '\P{^Scx:   mahj}', "");
-    Expect(0, 70007, '\p{Scx:   mahj}', "");
-    Expect(1, 70007, '\p{^Scx:   mahj}', "");
-    Expect(1, 70007, '\P{Scx:   mahj}', "");
-    Expect(0, 70007, '\P{^Scx:   mahj}', "");
+    Expect(1, 70006, '\p{Scx=mahj}', "");
+    Expect(0, 70006, '\p{^Scx=mahj}', "");
+    Expect(0, 70006, '\P{Scx=mahj}', "");
+    Expect(1, 70006, '\P{^Scx=mahj}', "");
+    Expect(0, 70007, '\p{Scx=mahj}', "");
+    Expect(1, 70007, '\p{^Scx=mahj}', "");
+    Expect(1, 70007, '\P{Scx=mahj}', "");
+    Expect(0, 70007, '\P{^Scx=mahj}', "");
     Expect(1, 70006, '\p{Scx=:\Amahj\z:}', "");;
     Expect(0, 70007, '\p{Scx=:\Amahj\z:}', "");;
-    Expect(1, 70006, '\p{Scx=_-MAHJ}', "");
-    Expect(0, 70006, '\p{^Scx=_-MAHJ}', "");
-    Expect(0, 70006, '\P{Scx=_-MAHJ}', "");
-    Expect(1, 70006, '\P{^Scx=_-MAHJ}', "");
-    Expect(0, 70007, '\p{Scx=_-MAHJ}', "");
-    Expect(1, 70007, '\p{^Scx=_-MAHJ}', "");
-    Expect(1, 70007, '\P{Scx=_-MAHJ}', "");
-    Expect(0, 70007, '\P{^Scx=_-MAHJ}', "");
-    Error('\p{Is_Script_Extensions=/a/ -Mahajani}');
-    Error('\P{Is_Script_Extensions=/a/ -Mahajani}');
+    Expect(1, 70006, '\p{Scx= _Mahj}', "");
+    Expect(0, 70006, '\p{^Scx= _Mahj}', "");
+    Expect(0, 70006, '\P{Scx= _Mahj}', "");
+    Expect(1, 70006, '\P{^Scx= _Mahj}', "");
+    Expect(0, 70007, '\p{Scx= _Mahj}', "");
+    Expect(1, 70007, '\p{^Scx= _Mahj}', "");
+    Expect(1, 70007, '\P{Scx= _Mahj}', "");
+    Expect(0, 70007, '\P{^Scx= _Mahj}', "");
+    Error('\p{Is_Script_Extensions:		 Mahajani:=}');
+    Error('\P{Is_Script_Extensions:		 Mahajani:=}');
     Expect(1, 70006, '\p{Is_Script_Extensions=mahajani}', "");
     Expect(0, 70006, '\p{^Is_Script_Extensions=mahajani}', "");
     Expect(0, 70006, '\P{Is_Script_Extensions=mahajani}', "");
@@ -147549,16 +148933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70007, '\p{^Is_Script_Extensions=mahajani}', "");
     Expect(1, 70007, '\P{Is_Script_Extensions=mahajani}', "");
     Expect(0, 70007, '\P{^Is_Script_Extensions=mahajani}', "");
-    Expect(1, 70006, '\p{Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(0, 70006, '\p{^Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(0, 70006, '\P{Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(1, 70006, '\P{^Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(0, 70007, '\p{Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(1, 70007, '\p{^Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(1, 70007, '\P{Is_Script_Extensions:	_ Mahajani}', "");
-    Expect(0, 70007, '\P{^Is_Script_Extensions:	_ Mahajani}', "");
-    Error('\p{Is_Scx=/a/		Mahj}');
-    Error('\P{Is_Scx=/a/		Mahj}');
+    Expect(1, 70006, '\p{Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(0, 70006, '\p{^Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(0, 70006, '\P{Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(1, 70006, '\P{^Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(0, 70007, '\p{Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(1, 70007, '\p{^Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(1, 70007, '\P{Is_Script_Extensions:   -MAHAJANI}', "");
+    Expect(0, 70007, '\P{^Is_Script_Extensions:   -MAHAJANI}', "");
+    Error('\p{Is_Scx=	/a/MAHJ}');
+    Error('\P{Is_Scx=	/a/MAHJ}');
     Expect(1, 70006, '\p{Is_Scx=mahj}', "");
     Expect(0, 70006, '\p{^Is_Scx=mahj}', "");
     Expect(0, 70006, '\P{Is_Scx=mahj}', "");
@@ -147567,16 +148951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70007, '\p{^Is_Scx=mahj}', "");
     Expect(1, 70007, '\P{Is_Scx=mahj}', "");
     Expect(0, 70007, '\P{^Is_Scx=mahj}', "");
-    Expect(1, 70006, '\p{Is_Scx=	 Mahj}', "");
-    Expect(0, 70006, '\p{^Is_Scx=	 Mahj}', "");
-    Expect(0, 70006, '\P{Is_Scx=	 Mahj}', "");
-    Expect(1, 70006, '\P{^Is_Scx=	 Mahj}', "");
-    Expect(0, 70007, '\p{Is_Scx=	 Mahj}', "");
-    Expect(1, 70007, '\p{^Is_Scx=	 Mahj}', "");
-    Expect(1, 70007, '\P{Is_Scx=	 Mahj}', "");
-    Expect(0, 70007, '\P{^Is_Scx=	 Mahj}', "");
-    Error('\p{Script_Extensions=:=-MAKASAR}');
-    Error('\P{Script_Extensions=:=-MAKASAR}');
+    Expect(1, 70006, '\p{Is_Scx= _mahj}', "");
+    Expect(0, 70006, '\p{^Is_Scx= _mahj}', "");
+    Expect(0, 70006, '\P{Is_Scx= _mahj}', "");
+    Expect(1, 70006, '\P{^Is_Scx= _mahj}', "");
+    Expect(0, 70007, '\p{Is_Scx= _mahj}', "");
+    Expect(1, 70007, '\p{^Is_Scx= _mahj}', "");
+    Expect(1, 70007, '\P{Is_Scx= _mahj}', "");
+    Expect(0, 70007, '\P{^Is_Scx= _mahj}', "");
+    Error('\p{Script_Extensions: :=	-makasar}');
+    Error('\P{Script_Extensions: :=	-makasar}');
     Expect(1, 73464, '\p{Script_Extensions=:\AMakasar\z:}', "");;
     Expect(0, 73465, '\p{Script_Extensions=:\AMakasar\z:}', "");;
     Expect(1, 73464, '\p{Script_Extensions=makasar}', "");
@@ -147589,16 +148973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73465, '\P{^Script_Extensions=makasar}', "");
     Expect(1, 73464, '\p{Script_Extensions=:\Amakasar\z:}', "");;
     Expect(0, 73465, '\p{Script_Extensions=:\Amakasar\z:}', "");;
-    Expect(1, 73464, '\p{Script_Extensions=Makasar}', "");
-    Expect(0, 73464, '\p{^Script_Extensions=Makasar}', "");
-    Expect(0, 73464, '\P{Script_Extensions=Makasar}', "");
-    Expect(1, 73464, '\P{^Script_Extensions=Makasar}', "");
-    Expect(0, 73465, '\p{Script_Extensions=Makasar}', "");
-    Expect(1, 73465, '\p{^Script_Extensions=Makasar}', "");
-    Expect(1, 73465, '\P{Script_Extensions=Makasar}', "");
-    Expect(0, 73465, '\P{^Script_Extensions=Makasar}', "");
-    Error('\p{Scx= /a/Maka}');
-    Error('\P{Scx= /a/Maka}');
+    Expect(1, 73464, '\p{Script_Extensions=  Makasar}', "");
+    Expect(0, 73464, '\p{^Script_Extensions=  Makasar}', "");
+    Expect(0, 73464, '\P{Script_Extensions=  Makasar}', "");
+    Expect(1, 73464, '\P{^Script_Extensions=  Makasar}', "");
+    Expect(0, 73465, '\p{Script_Extensions=  Makasar}', "");
+    Expect(1, 73465, '\p{^Script_Extensions=  Makasar}', "");
+    Expect(1, 73465, '\P{Script_Extensions=  Makasar}', "");
+    Expect(0, 73465, '\P{^Script_Extensions=  Makasar}', "");
+    Error('\p{Scx: /a/_Maka}');
+    Error('\P{Scx: /a/_Maka}');
     Expect(1, 73464, '\p{Scx=:\AMaka\z:}', "");;
     Expect(0, 73465, '\p{Scx=:\AMaka\z:}', "");;
     Expect(1, 73464, '\p{Scx=maka}', "");
@@ -147611,16 +148995,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73465, '\P{^Scx=maka}', "");
     Expect(1, 73464, '\p{Scx=:\Amaka\z:}', "");;
     Expect(0, 73465, '\p{Scx=:\Amaka\z:}', "");;
-    Expect(1, 73464, '\p{Scx=- Maka}', "");
-    Expect(0, 73464, '\p{^Scx=- Maka}', "");
-    Expect(0, 73464, '\P{Scx=- Maka}', "");
-    Expect(1, 73464, '\P{^Scx=- Maka}', "");
-    Expect(0, 73465, '\p{Scx=- Maka}', "");
-    Expect(1, 73465, '\p{^Scx=- Maka}', "");
-    Expect(1, 73465, '\P{Scx=- Maka}', "");
-    Expect(0, 73465, '\P{^Scx=- Maka}', "");
-    Error('\p{Is_Script_Extensions=_Makasar:=}');
-    Error('\P{Is_Script_Extensions=_Makasar:=}');
+    Expect(1, 73464, '\p{Scx=_maka}', "");
+    Expect(0, 73464, '\p{^Scx=_maka}', "");
+    Expect(0, 73464, '\P{Scx=_maka}', "");
+    Expect(1, 73464, '\P{^Scx=_maka}', "");
+    Expect(0, 73465, '\p{Scx=_maka}', "");
+    Expect(1, 73465, '\p{^Scx=_maka}', "");
+    Expect(1, 73465, '\P{Scx=_maka}', "");
+    Expect(0, 73465, '\P{^Scx=_maka}', "");
+    Error('\p{Is_Script_Extensions=-Makasar/a/}');
+    Error('\P{Is_Script_Extensions=-Makasar/a/}');
     Expect(1, 73464, '\p{Is_Script_Extensions=makasar}', "");
     Expect(0, 73464, '\p{^Is_Script_Extensions=makasar}', "");
     Expect(0, 73464, '\P{Is_Script_Extensions=makasar}', "");
@@ -147629,16 +149013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73465, '\p{^Is_Script_Extensions=makasar}', "");
     Expect(1, 73465, '\P{Is_Script_Extensions=makasar}', "");
     Expect(0, 73465, '\P{^Is_Script_Extensions=makasar}', "");
-    Expect(1, 73464, '\p{Is_Script_Extensions= -Makasar}', "");
-    Expect(0, 73464, '\p{^Is_Script_Extensions= -Makasar}', "");
-    Expect(0, 73464, '\P{Is_Script_Extensions= -Makasar}', "");
-    Expect(1, 73464, '\P{^Is_Script_Extensions= -Makasar}', "");
-    Expect(0, 73465, '\p{Is_Script_Extensions= -Makasar}', "");
-    Expect(1, 73465, '\p{^Is_Script_Extensions= -Makasar}', "");
-    Expect(1, 73465, '\P{Is_Script_Extensions= -Makasar}', "");
-    Expect(0, 73465, '\P{^Is_Script_Extensions= -Makasar}', "");
-    Error('\p{Is_Scx=  maka:=}');
-    Error('\P{Is_Scx=  maka:=}');
+    Expect(1, 73464, '\p{Is_Script_Extensions=-makasar}', "");
+    Expect(0, 73464, '\p{^Is_Script_Extensions=-makasar}', "");
+    Expect(0, 73464, '\P{Is_Script_Extensions=-makasar}', "");
+    Expect(1, 73464, '\P{^Is_Script_Extensions=-makasar}', "");
+    Expect(0, 73465, '\p{Is_Script_Extensions=-makasar}', "");
+    Expect(1, 73465, '\p{^Is_Script_Extensions=-makasar}', "");
+    Expect(1, 73465, '\P{Is_Script_Extensions=-makasar}', "");
+    Expect(0, 73465, '\P{^Is_Script_Extensions=-makasar}', "");
+    Error('\p{Is_Scx=-	MAKA:=}');
+    Error('\P{Is_Scx=-	MAKA:=}');
     Expect(1, 73464, '\p{Is_Scx=maka}', "");
     Expect(0, 73464, '\p{^Is_Scx=maka}', "");
     Expect(0, 73464, '\P{Is_Scx=maka}', "");
@@ -147647,38 +149031,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73465, '\p{^Is_Scx=maka}', "");
     Expect(1, 73465, '\P{Is_Scx=maka}', "");
     Expect(0, 73465, '\P{^Is_Scx=maka}', "");
-    Expect(1, 73464, '\p{Is_Scx= Maka}', "");
-    Expect(0, 73464, '\p{^Is_Scx= Maka}', "");
-    Expect(0, 73464, '\P{Is_Scx= Maka}', "");
-    Expect(1, 73464, '\P{^Is_Scx= Maka}', "");
-    Expect(0, 73465, '\p{Is_Scx= Maka}', "");
-    Expect(1, 73465, '\p{^Is_Scx= Maka}', "");
-    Expect(1, 73465, '\P{Is_Scx= Maka}', "");
-    Expect(0, 73465, '\P{^Is_Scx= Maka}', "");
-    Error('\p{Script_Extensions=:=_-Mandaic}');
-    Error('\P{Script_Extensions=:=_-Mandaic}');
+    Expect(1, 73464, '\p{Is_Scx=- Maka}', "");
+    Expect(0, 73464, '\p{^Is_Scx=- Maka}', "");
+    Expect(0, 73464, '\P{Is_Scx=- Maka}', "");
+    Expect(1, 73464, '\P{^Is_Scx=- Maka}', "");
+    Expect(0, 73465, '\p{Is_Scx=- Maka}', "");
+    Expect(1, 73465, '\p{^Is_Scx=- Maka}', "");
+    Expect(1, 73465, '\P{Is_Scx=- Maka}', "");
+    Expect(0, 73465, '\P{^Is_Scx=- Maka}', "");
+    Error('\p{Script_Extensions= _Mandaic:=}');
+    Error('\P{Script_Extensions= _Mandaic:=}');
     Expect(1, 2142, '\p{Script_Extensions=:\AMandaic\z:}', "");;
     Expect(0, 2143, '\p{Script_Extensions=:\AMandaic\z:}', "");;
-    Expect(1, 2142, '\p{Script_Extensions=mandaic}', "");
-    Expect(0, 2142, '\p{^Script_Extensions=mandaic}', "");
-    Expect(0, 2142, '\P{Script_Extensions=mandaic}', "");
-    Expect(1, 2142, '\P{^Script_Extensions=mandaic}', "");
-    Expect(0, 2143, '\p{Script_Extensions=mandaic}', "");
-    Expect(1, 2143, '\p{^Script_Extensions=mandaic}', "");
-    Expect(1, 2143, '\P{Script_Extensions=mandaic}', "");
-    Expect(0, 2143, '\P{^Script_Extensions=mandaic}', "");
+    Expect(1, 2142, '\p{Script_Extensions:   mandaic}', "");
+    Expect(0, 2142, '\p{^Script_Extensions:   mandaic}', "");
+    Expect(0, 2142, '\P{Script_Extensions:   mandaic}', "");
+    Expect(1, 2142, '\P{^Script_Extensions:   mandaic}', "");
+    Expect(0, 2143, '\p{Script_Extensions:   mandaic}', "");
+    Expect(1, 2143, '\p{^Script_Extensions:   mandaic}', "");
+    Expect(1, 2143, '\P{Script_Extensions:   mandaic}', "");
+    Expect(0, 2143, '\P{^Script_Extensions:   mandaic}', "");
     Expect(1, 2142, '\p{Script_Extensions=:\Amandaic\z:}', "");;
     Expect(0, 2143, '\p{Script_Extensions=:\Amandaic\z:}', "");;
-    Expect(1, 2142, '\p{Script_Extensions=	_MANDAIC}', "");
-    Expect(0, 2142, '\p{^Script_Extensions=	_MANDAIC}', "");
-    Expect(0, 2142, '\P{Script_Extensions=	_MANDAIC}', "");
-    Expect(1, 2142, '\P{^Script_Extensions=	_MANDAIC}', "");
-    Expect(0, 2143, '\p{Script_Extensions=	_MANDAIC}', "");
-    Expect(1, 2143, '\p{^Script_Extensions=	_MANDAIC}', "");
-    Expect(1, 2143, '\P{Script_Extensions=	_MANDAIC}', "");
-    Expect(0, 2143, '\P{^Script_Extensions=	_MANDAIC}', "");
-    Error('\p{Scx=/a/ 	MAND}');
-    Error('\P{Scx=/a/ 	MAND}');
+    Expect(1, 2142, '\p{Script_Extensions=_Mandaic}', "");
+    Expect(0, 2142, '\p{^Script_Extensions=_Mandaic}', "");
+    Expect(0, 2142, '\P{Script_Extensions=_Mandaic}', "");
+    Expect(1, 2142, '\P{^Script_Extensions=_Mandaic}', "");
+    Expect(0, 2143, '\p{Script_Extensions=_Mandaic}', "");
+    Expect(1, 2143, '\p{^Script_Extensions=_Mandaic}', "");
+    Expect(1, 2143, '\P{Script_Extensions=_Mandaic}', "");
+    Expect(0, 2143, '\P{^Script_Extensions=_Mandaic}', "");
+    Error('\p{Scx= :=Mand}');
+    Error('\P{Scx= :=Mand}');
     Expect(1, 2142, '\p{Scx=:\AMand\z:}', "");;
     Expect(0, 2143, '\p{Scx=:\AMand\z:}', "");;
     Expect(1, 2142, '\p{Scx=mand}', "");
@@ -147691,14 +149075,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2143, '\P{^Scx=mand}', "");
     Expect(1, 2142, '\p{Scx=:\Amand\z:}', "");;
     Expect(0, 2143, '\p{Scx=:\Amand\z:}', "");;
-    Expect(1, 2142, '\p{Scx= mand}', "");
-    Expect(0, 2142, '\p{^Scx= mand}', "");
-    Expect(0, 2142, '\P{Scx= mand}', "");
-    Expect(1, 2142, '\P{^Scx= mand}', "");
-    Expect(0, 2143, '\p{Scx= mand}', "");
-    Expect(1, 2143, '\p{^Scx= mand}', "");
-    Expect(1, 2143, '\P{Scx= mand}', "");
-    Expect(0, 2143, '\P{^Scx= mand}', "");
+    Expect(1, 2142, '\p{Scx=-_mand}', "");
+    Expect(0, 2142, '\p{^Scx=-_mand}', "");
+    Expect(0, 2142, '\P{Scx=-_mand}', "");
+    Expect(1, 2142, '\P{^Scx=-_mand}', "");
+    Expect(0, 2143, '\p{Scx=-_mand}', "");
+    Expect(1, 2143, '\p{^Scx=-_mand}', "");
+    Expect(1, 2143, '\P{Scx=-_mand}', "");
+    Expect(0, 2143, '\P{^Scx=-_mand}', "");
     Error('\p{Is_Script_Extensions=	Mandaic/a/}');
     Error('\P{Is_Script_Extensions=	Mandaic/a/}');
     Expect(1, 2142, '\p{Is_Script_Extensions=mandaic}', "");
@@ -147709,16 +149093,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2143, '\p{^Is_Script_Extensions=mandaic}', "");
     Expect(1, 2143, '\P{Is_Script_Extensions=mandaic}', "");
     Expect(0, 2143, '\P{^Is_Script_Extensions=mandaic}', "");
-    Expect(1, 2142, '\p{Is_Script_Extensions=-	Mandaic}', "");
-    Expect(0, 2142, '\p{^Is_Script_Extensions=-	Mandaic}', "");
-    Expect(0, 2142, '\P{Is_Script_Extensions=-	Mandaic}', "");
-    Expect(1, 2142, '\P{^Is_Script_Extensions=-	Mandaic}', "");
-    Expect(0, 2143, '\p{Is_Script_Extensions=-	Mandaic}', "");
-    Expect(1, 2143, '\p{^Is_Script_Extensions=-	Mandaic}', "");
-    Expect(1, 2143, '\P{Is_Script_Extensions=-	Mandaic}', "");
-    Expect(0, 2143, '\P{^Is_Script_Extensions=-	Mandaic}', "");
-    Error('\p{Is_Scx=_:=MAND}');
-    Error('\P{Is_Scx=_:=MAND}');
+    Expect(1, 2142, '\p{Is_Script_Extensions= _Mandaic}', "");
+    Expect(0, 2142, '\p{^Is_Script_Extensions= _Mandaic}', "");
+    Expect(0, 2142, '\P{Is_Script_Extensions= _Mandaic}', "");
+    Expect(1, 2142, '\P{^Is_Script_Extensions= _Mandaic}', "");
+    Expect(0, 2143, '\p{Is_Script_Extensions= _Mandaic}', "");
+    Expect(1, 2143, '\p{^Is_Script_Extensions= _Mandaic}', "");
+    Expect(1, 2143, '\P{Is_Script_Extensions= _Mandaic}', "");
+    Expect(0, 2143, '\P{^Is_Script_Extensions= _Mandaic}', "");
+    Error('\p{Is_Scx=-/a/mand}');
+    Error('\P{Is_Scx=-/a/mand}');
     Expect(1, 2142, '\p{Is_Scx=mand}', "");
     Expect(0, 2142, '\p{^Is_Scx=mand}', "");
     Expect(0, 2142, '\P{Is_Scx=mand}', "");
@@ -147727,16 +149111,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2143, '\p{^Is_Scx=mand}', "");
     Expect(1, 2143, '\P{Is_Scx=mand}', "");
     Expect(0, 2143, '\P{^Is_Scx=mand}', "");
-    Expect(1, 2142, '\p{Is_Scx= Mand}', "");
-    Expect(0, 2142, '\p{^Is_Scx= Mand}', "");
-    Expect(0, 2142, '\P{Is_Scx= Mand}', "");
-    Expect(1, 2142, '\P{^Is_Scx= Mand}', "");
-    Expect(0, 2143, '\p{Is_Scx= Mand}', "");
-    Expect(1, 2143, '\p{^Is_Scx= Mand}', "");
-    Expect(1, 2143, '\P{Is_Scx= Mand}', "");
-    Expect(0, 2143, '\P{^Is_Scx= Mand}', "");
-    Error('\p{Script_Extensions=	-MANICHAEAN/a/}');
-    Error('\P{Script_Extensions=	-MANICHAEAN/a/}');
+    Expect(1, 2142, '\p{Is_Scx=	_MAND}', "");
+    Expect(0, 2142, '\p{^Is_Scx=	_MAND}', "");
+    Expect(0, 2142, '\P{Is_Scx=	_MAND}', "");
+    Expect(1, 2142, '\P{^Is_Scx=	_MAND}', "");
+    Expect(0, 2143, '\p{Is_Scx=	_MAND}', "");
+    Expect(1, 2143, '\p{^Is_Scx=	_MAND}', "");
+    Expect(1, 2143, '\P{Is_Scx=	_MAND}', "");
+    Expect(0, 2143, '\P{^Is_Scx=	_MAND}', "");
+    Error('\p{Script_Extensions=-:=Manichaean}');
+    Error('\P{Script_Extensions=-:=Manichaean}');
     Expect(1, 68342, '\p{Script_Extensions=:\AManichaean\z:}', "");;
     Expect(0, 68343, '\p{Script_Extensions=:\AManichaean\z:}', "");;
     Expect(1, 68342, '\p{Script_Extensions=manichaean}', "");
@@ -147749,16 +149133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68343, '\P{^Script_Extensions=manichaean}', "");
     Expect(1, 68342, '\p{Script_Extensions=:\Amanichaean\z:}', "");;
     Expect(0, 68343, '\p{Script_Extensions=:\Amanichaean\z:}', "");;
-    Expect(1, 68342, '\p{Script_Extensions= manichaean}', "");
-    Expect(0, 68342, '\p{^Script_Extensions= manichaean}', "");
-    Expect(0, 68342, '\P{Script_Extensions= manichaean}', "");
-    Expect(1, 68342, '\P{^Script_Extensions= manichaean}', "");
-    Expect(0, 68343, '\p{Script_Extensions= manichaean}', "");
-    Expect(1, 68343, '\p{^Script_Extensions= manichaean}', "");
-    Expect(1, 68343, '\P{Script_Extensions= manichaean}', "");
-    Expect(0, 68343, '\P{^Script_Extensions= manichaean}', "");
-    Error('\p{Scx:  Mani/a/}');
-    Error('\P{Scx:  Mani/a/}');
+    Expect(1, 68342, '\p{Script_Extensions=-Manichaean}', "");
+    Expect(0, 68342, '\p{^Script_Extensions=-Manichaean}', "");
+    Expect(0, 68342, '\P{Script_Extensions=-Manichaean}', "");
+    Expect(1, 68342, '\P{^Script_Extensions=-Manichaean}', "");
+    Expect(0, 68343, '\p{Script_Extensions=-Manichaean}', "");
+    Expect(1, 68343, '\p{^Script_Extensions=-Manichaean}', "");
+    Expect(1, 68343, '\P{Script_Extensions=-Manichaean}', "");
+    Expect(0, 68343, '\P{^Script_Extensions=-Manichaean}', "");
+    Error('\p{Scx=:=	_mani}');
+    Error('\P{Scx=:=	_mani}');
     Expect(1, 68342, '\p{Scx=:\AMani\z:}', "");;
     Expect(0, 68343, '\p{Scx=:\AMani\z:}', "");;
     Expect(1, 68342, '\p{Scx=mani}', "");
@@ -147771,16 +149155,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68343, '\P{^Scx=mani}', "");
     Expect(1, 68342, '\p{Scx=:\Amani\z:}', "");;
     Expect(0, 68343, '\p{Scx=:\Amani\z:}', "");;
-    Expect(1, 68342, '\p{Scx=_MANI}', "");
-    Expect(0, 68342, '\p{^Scx=_MANI}', "");
-    Expect(0, 68342, '\P{Scx=_MANI}', "");
-    Expect(1, 68342, '\P{^Scx=_MANI}', "");
-    Expect(0, 68343, '\p{Scx=_MANI}', "");
-    Expect(1, 68343, '\p{^Scx=_MANI}', "");
-    Expect(1, 68343, '\P{Scx=_MANI}', "");
-    Expect(0, 68343, '\P{^Scx=_MANI}', "");
-    Error('\p{Is_Script_Extensions=  MANICHAEAN:=}');
-    Error('\P{Is_Script_Extensions=  MANICHAEAN:=}');
+    Expect(1, 68342, '\p{Scx=-	MANI}', "");
+    Expect(0, 68342, '\p{^Scx=-	MANI}', "");
+    Expect(0, 68342, '\P{Scx=-	MANI}', "");
+    Expect(1, 68342, '\P{^Scx=-	MANI}', "");
+    Expect(0, 68343, '\p{Scx=-	MANI}', "");
+    Expect(1, 68343, '\p{^Scx=-	MANI}', "");
+    Expect(1, 68343, '\P{Scx=-	MANI}', "");
+    Expect(0, 68343, '\P{^Scx=-	MANI}', "");
+    Error('\p{Is_Script_Extensions=_MANICHAEAN/a/}');
+    Error('\P{Is_Script_Extensions=_MANICHAEAN/a/}');
     Expect(1, 68342, '\p{Is_Script_Extensions=manichaean}', "");
     Expect(0, 68342, '\p{^Is_Script_Extensions=manichaean}', "");
     Expect(0, 68342, '\P{Is_Script_Extensions=manichaean}', "");
@@ -147789,16 +149173,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68343, '\p{^Is_Script_Extensions=manichaean}', "");
     Expect(1, 68343, '\P{Is_Script_Extensions=manichaean}', "");
     Expect(0, 68343, '\P{^Is_Script_Extensions=manichaean}', "");
-    Expect(1, 68342, '\p{Is_Script_Extensions=-_Manichaean}', "");
-    Expect(0, 68342, '\p{^Is_Script_Extensions=-_Manichaean}', "");
-    Expect(0, 68342, '\P{Is_Script_Extensions=-_Manichaean}', "");
-    Expect(1, 68342, '\P{^Is_Script_Extensions=-_Manichaean}', "");
-    Expect(0, 68343, '\p{Is_Script_Extensions=-_Manichaean}', "");
-    Expect(1, 68343, '\p{^Is_Script_Extensions=-_Manichaean}', "");
-    Expect(1, 68343, '\P{Is_Script_Extensions=-_Manichaean}', "");
-    Expect(0, 68343, '\P{^Is_Script_Extensions=-_Manichaean}', "");
-    Error('\p{Is_Scx=		Mani/a/}');
-    Error('\P{Is_Scx=		Mani/a/}');
+    Expect(1, 68342, '\p{Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(0, 68342, '\p{^Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(0, 68342, '\P{Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(1, 68342, '\P{^Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(0, 68343, '\p{Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(1, 68343, '\p{^Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(1, 68343, '\P{Is_Script_Extensions= MANICHAEAN}', "");
+    Expect(0, 68343, '\P{^Is_Script_Extensions= MANICHAEAN}', "");
+    Error('\p{Is_Scx=/a/- mani}');
+    Error('\P{Is_Scx=/a/- mani}');
     Expect(1, 68342, '\p{Is_Scx=mani}', "");
     Expect(0, 68342, '\p{^Is_Scx=mani}', "");
     Expect(0, 68342, '\P{Is_Scx=mani}', "");
@@ -147807,38 +149191,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68343, '\p{^Is_Scx=mani}', "");
     Expect(1, 68343, '\P{Is_Scx=mani}', "");
     Expect(0, 68343, '\P{^Is_Scx=mani}', "");
-    Expect(1, 68342, '\p{Is_Scx: 	Mani}', "");
-    Expect(0, 68342, '\p{^Is_Scx: 	Mani}', "");
-    Expect(0, 68342, '\P{Is_Scx: 	Mani}', "");
-    Expect(1, 68342, '\P{^Is_Scx: 	Mani}', "");
-    Expect(0, 68343, '\p{Is_Scx: 	Mani}', "");
-    Expect(1, 68343, '\p{^Is_Scx: 	Mani}', "");
-    Expect(1, 68343, '\P{Is_Scx: 	Mani}', "");
-    Expect(0, 68343, '\P{^Is_Scx: 	Mani}', "");
-    Error('\p{Script_Extensions=	/a/MARCHEN}');
-    Error('\P{Script_Extensions=	/a/MARCHEN}');
+    Expect(1, 68342, '\p{Is_Scx=__Mani}', "");
+    Expect(0, 68342, '\p{^Is_Scx=__Mani}', "");
+    Expect(0, 68342, '\P{Is_Scx=__Mani}', "");
+    Expect(1, 68342, '\P{^Is_Scx=__Mani}', "");
+    Expect(0, 68343, '\p{Is_Scx=__Mani}', "");
+    Expect(1, 68343, '\p{^Is_Scx=__Mani}', "");
+    Expect(1, 68343, '\P{Is_Scx=__Mani}', "");
+    Expect(0, 68343, '\P{^Is_Scx=__Mani}', "");
+    Error('\p{Script_Extensions=/a/_	marchen}');
+    Error('\P{Script_Extensions=/a/_	marchen}');
     Expect(1, 72886, '\p{Script_Extensions=:\AMarchen\z:}', "");;
     Expect(0, 72887, '\p{Script_Extensions=:\AMarchen\z:}', "");;
-    Expect(1, 72886, '\p{Script_Extensions: marchen}', "");
-    Expect(0, 72886, '\p{^Script_Extensions: marchen}', "");
-    Expect(0, 72886, '\P{Script_Extensions: marchen}', "");
-    Expect(1, 72886, '\P{^Script_Extensions: marchen}', "");
-    Expect(0, 72887, '\p{Script_Extensions: marchen}', "");
-    Expect(1, 72887, '\p{^Script_Extensions: marchen}', "");
-    Expect(1, 72887, '\P{Script_Extensions: marchen}', "");
-    Expect(0, 72887, '\P{^Script_Extensions: marchen}', "");
+    Expect(1, 72886, '\p{Script_Extensions=marchen}', "");
+    Expect(0, 72886, '\p{^Script_Extensions=marchen}', "");
+    Expect(0, 72886, '\P{Script_Extensions=marchen}', "");
+    Expect(1, 72886, '\P{^Script_Extensions=marchen}', "");
+    Expect(0, 72887, '\p{Script_Extensions=marchen}', "");
+    Expect(1, 72887, '\p{^Script_Extensions=marchen}', "");
+    Expect(1, 72887, '\P{Script_Extensions=marchen}', "");
+    Expect(0, 72887, '\P{^Script_Extensions=marchen}', "");
     Expect(1, 72886, '\p{Script_Extensions=:\Amarchen\z:}', "");;
     Expect(0, 72887, '\p{Script_Extensions=:\Amarchen\z:}', "");;
-    Expect(1, 72886, '\p{Script_Extensions=_Marchen}', "");
-    Expect(0, 72886, '\p{^Script_Extensions=_Marchen}', "");
-    Expect(0, 72886, '\P{Script_Extensions=_Marchen}', "");
-    Expect(1, 72886, '\P{^Script_Extensions=_Marchen}', "");
-    Expect(0, 72887, '\p{Script_Extensions=_Marchen}', "");
-    Expect(1, 72887, '\p{^Script_Extensions=_Marchen}', "");
-    Expect(1, 72887, '\P{Script_Extensions=_Marchen}', "");
-    Expect(0, 72887, '\P{^Script_Extensions=_Marchen}', "");
-    Error('\p{Scx=Marc/a/}');
-    Error('\P{Scx=Marc/a/}');
+    Expect(1, 72886, '\p{Script_Extensions=_	Marchen}', "");
+    Expect(0, 72886, '\p{^Script_Extensions=_	Marchen}', "");
+    Expect(0, 72886, '\P{Script_Extensions=_	Marchen}', "");
+    Expect(1, 72886, '\P{^Script_Extensions=_	Marchen}', "");
+    Expect(0, 72887, '\p{Script_Extensions=_	Marchen}', "");
+    Expect(1, 72887, '\p{^Script_Extensions=_	Marchen}', "");
+    Expect(1, 72887, '\P{Script_Extensions=_	Marchen}', "");
+    Expect(0, 72887, '\P{^Script_Extensions=_	Marchen}', "");
+    Error('\p{Scx:-Marc/a/}');
+    Error('\P{Scx:-Marc/a/}');
     Expect(1, 72886, '\p{Scx=:\AMarc\z:}', "");;
     Expect(0, 72887, '\p{Scx=:\AMarc\z:}', "");;
     Expect(1, 72886, '\p{Scx=marc}', "");
@@ -147851,16 +149235,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72887, '\P{^Scx=marc}', "");
     Expect(1, 72886, '\p{Scx=:\Amarc\z:}', "");;
     Expect(0, 72887, '\p{Scx=:\Amarc\z:}', "");;
-    Expect(1, 72886, '\p{Scx=-_marc}', "");
-    Expect(0, 72886, '\p{^Scx=-_marc}', "");
-    Expect(0, 72886, '\P{Scx=-_marc}', "");
-    Expect(1, 72886, '\P{^Scx=-_marc}', "");
-    Expect(0, 72887, '\p{Scx=-_marc}', "");
-    Expect(1, 72887, '\p{^Scx=-_marc}', "");
-    Expect(1, 72887, '\P{Scx=-_marc}', "");
-    Expect(0, 72887, '\P{^Scx=-_marc}', "");
-    Error('\p{Is_Script_Extensions=/a/	 Marchen}');
-    Error('\P{Is_Script_Extensions=/a/	 Marchen}');
+    Expect(1, 72886, '\p{Scx=_	marc}', "");
+    Expect(0, 72886, '\p{^Scx=_	marc}', "");
+    Expect(0, 72886, '\P{Scx=_	marc}', "");
+    Expect(1, 72886, '\P{^Scx=_	marc}', "");
+    Expect(0, 72887, '\p{Scx=_	marc}', "");
+    Expect(1, 72887, '\p{^Scx=_	marc}', "");
+    Expect(1, 72887, '\P{Scx=_	marc}', "");
+    Expect(0, 72887, '\P{^Scx=_	marc}', "");
+    Error('\p{Is_Script_Extensions= /a/MARCHEN}');
+    Error('\P{Is_Script_Extensions= /a/MARCHEN}');
     Expect(1, 72886, '\p{Is_Script_Extensions=marchen}', "");
     Expect(0, 72886, '\p{^Is_Script_Extensions=marchen}', "");
     Expect(0, 72886, '\P{Is_Script_Extensions=marchen}', "");
@@ -147869,16 +149253,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72887, '\p{^Is_Script_Extensions=marchen}', "");
     Expect(1, 72887, '\P{Is_Script_Extensions=marchen}', "");
     Expect(0, 72887, '\P{^Is_Script_Extensions=marchen}', "");
-    Expect(1, 72886, '\p{Is_Script_Extensions=-	Marchen}', "");
-    Expect(0, 72886, '\p{^Is_Script_Extensions=-	Marchen}', "");
-    Expect(0, 72886, '\P{Is_Script_Extensions=-	Marchen}', "");
-    Expect(1, 72886, '\P{^Is_Script_Extensions=-	Marchen}', "");
-    Expect(0, 72887, '\p{Is_Script_Extensions=-	Marchen}', "");
-    Expect(1, 72887, '\p{^Is_Script_Extensions=-	Marchen}', "");
-    Expect(1, 72887, '\P{Is_Script_Extensions=-	Marchen}', "");
-    Expect(0, 72887, '\P{^Is_Script_Extensions=-	Marchen}', "");
-    Error('\p{Is_Scx=_ marc/a/}');
-    Error('\P{Is_Scx=_ marc/a/}');
+    Expect(1, 72886, '\p{Is_Script_Extensions:  	marchen}', "");
+    Expect(0, 72886, '\p{^Is_Script_Extensions:  	marchen}', "");
+    Expect(0, 72886, '\P{Is_Script_Extensions:  	marchen}', "");
+    Expect(1, 72886, '\P{^Is_Script_Extensions:  	marchen}', "");
+    Expect(0, 72887, '\p{Is_Script_Extensions:  	marchen}', "");
+    Expect(1, 72887, '\p{^Is_Script_Extensions:  	marchen}', "");
+    Expect(1, 72887, '\P{Is_Script_Extensions:  	marchen}', "");
+    Expect(0, 72887, '\P{^Is_Script_Extensions:  	marchen}', "");
+    Error('\p{Is_Scx=/a/_	MARC}');
+    Error('\P{Is_Scx=/a/_	MARC}');
     Expect(1, 72886, '\p{Is_Scx=marc}', "");
     Expect(0, 72886, '\p{^Is_Scx=marc}', "");
     Expect(0, 72886, '\P{Is_Scx=marc}', "");
@@ -147887,16 +149271,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72887, '\p{^Is_Scx=marc}', "");
     Expect(1, 72887, '\P{Is_Scx=marc}', "");
     Expect(0, 72887, '\P{^Is_Scx=marc}', "");
-    Expect(1, 72886, '\p{Is_Scx=	Marc}', "");
-    Expect(0, 72886, '\p{^Is_Scx=	Marc}', "");
-    Expect(0, 72886, '\P{Is_Scx=	Marc}', "");
-    Expect(1, 72886, '\P{^Is_Scx=	Marc}', "");
-    Expect(0, 72887, '\p{Is_Scx=	Marc}', "");
-    Expect(1, 72887, '\p{^Is_Scx=	Marc}', "");
-    Expect(1, 72887, '\P{Is_Scx=	Marc}', "");
-    Expect(0, 72887, '\P{^Is_Scx=	Marc}', "");
-    Error('\p{Script_Extensions=_ MEDEFAIDRIN:=}');
-    Error('\P{Script_Extensions=_ MEDEFAIDRIN:=}');
+    Expect(1, 72886, '\p{Is_Scx=__Marc}', "");
+    Expect(0, 72886, '\p{^Is_Scx=__Marc}', "");
+    Expect(0, 72886, '\P{Is_Scx=__Marc}', "");
+    Expect(1, 72886, '\P{^Is_Scx=__Marc}', "");
+    Expect(0, 72887, '\p{Is_Scx=__Marc}', "");
+    Expect(1, 72887, '\p{^Is_Scx=__Marc}', "");
+    Expect(1, 72887, '\P{Is_Scx=__Marc}', "");
+    Expect(0, 72887, '\P{^Is_Scx=__Marc}', "");
+    Error('\p{Script_Extensions=/a/ medefaidrin}');
+    Error('\P{Script_Extensions=/a/ medefaidrin}');
     Expect(1, 93850, '\p{Script_Extensions=:\AMedefaidrin\z:}', "");;
     Expect(0, 93851, '\p{Script_Extensions=:\AMedefaidrin\z:}', "");;
     Expect(1, 93850, '\p{Script_Extensions=medefaidrin}', "");
@@ -147909,16 +149293,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93851, '\P{^Script_Extensions=medefaidrin}', "");
     Expect(1, 93850, '\p{Script_Extensions=:\Amedefaidrin\z:}', "");;
     Expect(0, 93851, '\p{Script_Extensions=:\Amedefaidrin\z:}', "");;
-    Expect(1, 93850, '\p{Script_Extensions: _medefaidrin}', "");
-    Expect(0, 93850, '\p{^Script_Extensions: _medefaidrin}', "");
-    Expect(0, 93850, '\P{Script_Extensions: _medefaidrin}', "");
-    Expect(1, 93850, '\P{^Script_Extensions: _medefaidrin}', "");
-    Expect(0, 93851, '\p{Script_Extensions: _medefaidrin}', "");
-    Expect(1, 93851, '\p{^Script_Extensions: _medefaidrin}', "");
-    Expect(1, 93851, '\P{Script_Extensions: _medefaidrin}', "");
-    Expect(0, 93851, '\P{^Script_Extensions: _medefaidrin}', "");
-    Error('\p{Scx=_/a/MEDF}');
-    Error('\P{Scx=_/a/MEDF}');
+    Expect(1, 93850, '\p{Script_Extensions=  Medefaidrin}', "");
+    Expect(0, 93850, '\p{^Script_Extensions=  Medefaidrin}', "");
+    Expect(0, 93850, '\P{Script_Extensions=  Medefaidrin}', "");
+    Expect(1, 93850, '\P{^Script_Extensions=  Medefaidrin}', "");
+    Expect(0, 93851, '\p{Script_Extensions=  Medefaidrin}', "");
+    Expect(1, 93851, '\p{^Script_Extensions=  Medefaidrin}', "");
+    Expect(1, 93851, '\P{Script_Extensions=  Medefaidrin}', "");
+    Expect(0, 93851, '\P{^Script_Extensions=  Medefaidrin}', "");
+    Error('\p{Scx=/a/	-MEDF}');
+    Error('\P{Scx=/a/	-MEDF}');
     Expect(1, 93850, '\p{Scx=:\AMedf\z:}', "");;
     Expect(0, 93851, '\p{Scx=:\AMedf\z:}', "");;
     Expect(1, 93850, '\p{Scx=medf}', "");
@@ -147931,16 +149315,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 93851, '\P{^Scx=medf}', "");
     Expect(1, 93850, '\p{Scx=:\Amedf\z:}', "");;
     Expect(0, 93851, '\p{Scx=:\Amedf\z:}', "");;
-    Expect(1, 93850, '\p{Scx=_MEDF}', "");
-    Expect(0, 93850, '\p{^Scx=_MEDF}', "");
-    Expect(0, 93850, '\P{Scx=_MEDF}', "");
-    Expect(1, 93850, '\P{^Scx=_MEDF}', "");
-    Expect(0, 93851, '\p{Scx=_MEDF}', "");
-    Expect(1, 93851, '\p{^Scx=_MEDF}', "");
-    Expect(1, 93851, '\P{Scx=_MEDF}', "");
-    Expect(0, 93851, '\P{^Scx=_MEDF}', "");
-    Error('\p{Is_Script_Extensions=_Medefaidrin/a/}');
-    Error('\P{Is_Script_Extensions=_Medefaidrin/a/}');
+    Expect(1, 93850, '\p{Scx:	- MEDF}', "");
+    Expect(0, 93850, '\p{^Scx:	- MEDF}', "");
+    Expect(0, 93850, '\P{Scx:	- MEDF}', "");
+    Expect(1, 93850, '\P{^Scx:	- MEDF}', "");
+    Expect(0, 93851, '\p{Scx:	- MEDF}', "");
+    Expect(1, 93851, '\p{^Scx:	- MEDF}', "");
+    Expect(1, 93851, '\P{Scx:	- MEDF}', "");
+    Expect(0, 93851, '\P{^Scx:	- MEDF}', "");
+    Error('\p{Is_Script_Extensions=-Medefaidrin:=}');
+    Error('\P{Is_Script_Extensions=-Medefaidrin:=}');
     Expect(1, 93850, '\p{Is_Script_Extensions=medefaidrin}', "");
     Expect(0, 93850, '\p{^Is_Script_Extensions=medefaidrin}', "");
     Expect(0, 93850, '\P{Is_Script_Extensions=medefaidrin}', "");
@@ -147949,16 +149333,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93851, '\p{^Is_Script_Extensions=medefaidrin}', "");
     Expect(1, 93851, '\P{Is_Script_Extensions=medefaidrin}', "");
     Expect(0, 93851, '\P{^Is_Script_Extensions=medefaidrin}', "");
-    Expect(1, 93850, '\p{Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(0, 93850, '\p{^Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(0, 93850, '\P{Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(1, 93850, '\P{^Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(0, 93851, '\p{Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(1, 93851, '\p{^Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(1, 93851, '\P{Is_Script_Extensions=	Medefaidrin}', "");
-    Expect(0, 93851, '\P{^Is_Script_Extensions=	Medefaidrin}', "");
-    Error('\p{Is_Scx=_	Medf:=}');
-    Error('\P{Is_Scx=_	Medf:=}');
+    Expect(1, 93850, '\p{Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(0, 93850, '\p{^Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(0, 93850, '\P{Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(1, 93850, '\P{^Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(0, 93851, '\p{Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(1, 93851, '\p{^Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(1, 93851, '\P{Is_Script_Extensions:     Medefaidrin}', "");
+    Expect(0, 93851, '\P{^Is_Script_Extensions:     Medefaidrin}', "");
+    Error('\p{Is_Scx=-/a/Medf}');
+    Error('\P{Is_Scx=-/a/Medf}');
     Expect(1, 93850, '\p{Is_Scx=medf}', "");
     Expect(0, 93850, '\p{^Is_Scx=medf}', "");
     Expect(0, 93850, '\P{Is_Scx=medf}', "");
@@ -147967,16 +149351,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 93851, '\p{^Is_Scx=medf}', "");
     Expect(1, 93851, '\P{Is_Scx=medf}', "");
     Expect(0, 93851, '\P{^Is_Scx=medf}', "");
-    Expect(1, 93850, '\p{Is_Scx=		MEDF}', "");
-    Expect(0, 93850, '\p{^Is_Scx=		MEDF}', "");
-    Expect(0, 93850, '\P{Is_Scx=		MEDF}', "");
-    Expect(1, 93850, '\P{^Is_Scx=		MEDF}', "");
-    Expect(0, 93851, '\p{Is_Scx=		MEDF}', "");
-    Expect(1, 93851, '\p{^Is_Scx=		MEDF}', "");
-    Expect(1, 93851, '\P{Is_Scx=		MEDF}', "");
-    Expect(0, 93851, '\P{^Is_Scx=		MEDF}', "");
-    Error('\p{Script_Extensions=	/a/Mende_Kikakui}');
-    Error('\P{Script_Extensions=	/a/Mende_Kikakui}');
+    Expect(1, 93850, '\p{Is_Scx=	 medf}', "");
+    Expect(0, 93850, '\p{^Is_Scx=	 medf}', "");
+    Expect(0, 93850, '\P{Is_Scx=	 medf}', "");
+    Expect(1, 93850, '\P{^Is_Scx=	 medf}', "");
+    Expect(0, 93851, '\p{Is_Scx=	 medf}', "");
+    Expect(1, 93851, '\p{^Is_Scx=	 medf}', "");
+    Expect(1, 93851, '\P{Is_Scx=	 medf}', "");
+    Expect(0, 93851, '\P{^Is_Scx=	 medf}', "");
+    Error('\p{Script_Extensions: :=--mende_Kikakui}');
+    Error('\P{Script_Extensions: :=--mende_Kikakui}');
     Expect(1, 125142, '\p{Script_Extensions=:\AMende_Kikakui\z:}', "");;
     Expect(0, 125143, '\p{Script_Extensions=:\AMende_Kikakui\z:}', "");;
     Expect(1, 125142, '\p{Script_Extensions=mendekikakui}', "");
@@ -147989,16 +149373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 125143, '\P{^Script_Extensions=mendekikakui}', "");
     Expect(1, 125142, '\p{Script_Extensions=:\Amendekikakui\z:}', "");;
     Expect(0, 125143, '\p{Script_Extensions=:\Amendekikakui\z:}', "");;
-    Expect(1, 125142, '\p{Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(0, 125142, '\p{^Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(0, 125142, '\P{Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(1, 125142, '\P{^Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(0, 125143, '\p{Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(1, 125143, '\p{^Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(1, 125143, '\P{Script_Extensions=_-MENDE_kikakui}', "");
-    Expect(0, 125143, '\P{^Script_Extensions=_-MENDE_kikakui}', "");
-    Error('\p{Scx=	/a/Mend}');
-    Error('\P{Scx=	/a/Mend}');
+    Expect(1, 125142, '\p{Script_Extensions=-mende_kikakui}', "");
+    Expect(0, 125142, '\p{^Script_Extensions=-mende_kikakui}', "");
+    Expect(0, 125142, '\P{Script_Extensions=-mende_kikakui}', "");
+    Expect(1, 125142, '\P{^Script_Extensions=-mende_kikakui}', "");
+    Expect(0, 125143, '\p{Script_Extensions=-mende_kikakui}', "");
+    Expect(1, 125143, '\p{^Script_Extensions=-mende_kikakui}', "");
+    Expect(1, 125143, '\P{Script_Extensions=-mende_kikakui}', "");
+    Expect(0, 125143, '\P{^Script_Extensions=-mende_kikakui}', "");
+    Error('\p{Scx=/a/MEND}');
+    Error('\P{Scx=/a/MEND}');
     Expect(1, 125142, '\p{Scx=:\AMend\z:}', "");;
     Expect(0, 125143, '\p{Scx=:\AMend\z:}', "");;
     Expect(1, 125142, '\p{Scx=mend}', "");
@@ -148011,52 +149395,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 125143, '\P{^Scx=mend}', "");
     Expect(1, 125142, '\p{Scx=:\Amend\z:}', "");;
     Expect(0, 125143, '\p{Scx=:\Amend\z:}', "");;
-    Expect(1, 125142, '\p{Scx:   _MEND}', "");
-    Expect(0, 125142, '\p{^Scx:   _MEND}', "");
-    Expect(0, 125142, '\P{Scx:   _MEND}', "");
-    Expect(1, 125142, '\P{^Scx:   _MEND}', "");
-    Expect(0, 125143, '\p{Scx:   _MEND}', "");
-    Expect(1, 125143, '\p{^Scx:   _MEND}', "");
-    Expect(1, 125143, '\P{Scx:   _MEND}', "");
-    Expect(0, 125143, '\P{^Scx:   _MEND}', "");
-    Error('\p{Is_Script_Extensions= /a/mende_Kikakui}');
-    Error('\P{Is_Script_Extensions= /a/mende_Kikakui}');
-    Expect(1, 125142, '\p{Is_Script_Extensions=mendekikakui}', "");
-    Expect(0, 125142, '\p{^Is_Script_Extensions=mendekikakui}', "");
-    Expect(0, 125142, '\P{Is_Script_Extensions=mendekikakui}', "");
-    Expect(1, 125142, '\P{^Is_Script_Extensions=mendekikakui}', "");
-    Expect(0, 125143, '\p{Is_Script_Extensions=mendekikakui}', "");
-    Expect(1, 125143, '\p{^Is_Script_Extensions=mendekikakui}', "");
-    Expect(1, 125143, '\P{Is_Script_Extensions=mendekikakui}', "");
-    Expect(0, 125143, '\P{^Is_Script_Extensions=mendekikakui}', "");
-    Expect(1, 125142, '\p{Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(0, 125142, '\p{^Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(0, 125142, '\P{Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(1, 125142, '\P{^Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(0, 125143, '\p{Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(1, 125143, '\p{^Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(1, 125143, '\P{Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Expect(0, 125143, '\P{^Is_Script_Extensions=	Mende_KIKAKUI}', "");
-    Error('\p{Is_Scx=/a/		Mend}');
-    Error('\P{Is_Scx=/a/		Mend}');
-    Expect(1, 125142, '\p{Is_Scx:   mend}', "");
-    Expect(0, 125142, '\p{^Is_Scx:   mend}', "");
-    Expect(0, 125142, '\P{Is_Scx:   mend}', "");
-    Expect(1, 125142, '\P{^Is_Scx:   mend}', "");
-    Expect(0, 125143, '\p{Is_Scx:   mend}', "");
-    Expect(1, 125143, '\p{^Is_Scx:   mend}', "");
-    Expect(1, 125143, '\P{Is_Scx:   mend}', "");
-    Expect(0, 125143, '\P{^Is_Scx:   mend}', "");
-    Expect(1, 125142, '\p{Is_Scx=_ Mend}', "");
-    Expect(0, 125142, '\p{^Is_Scx=_ Mend}', "");
-    Expect(0, 125142, '\P{Is_Scx=_ Mend}', "");
-    Expect(1, 125142, '\P{^Is_Scx=_ Mend}', "");
-    Expect(0, 125143, '\p{Is_Scx=_ Mend}', "");
-    Expect(1, 125143, '\p{^Is_Scx=_ Mend}', "");
-    Expect(1, 125143, '\P{Is_Scx=_ Mend}', "");
-    Expect(0, 125143, '\P{^Is_Scx=_ Mend}', "");
-    Error('\p{Script_Extensions=	:=meroitic_cursive}');
-    Error('\P{Script_Extensions=	:=meroitic_cursive}');
+    Expect(1, 125142, '\p{Scx=	mend}', "");
+    Expect(0, 125142, '\p{^Scx=	mend}', "");
+    Expect(0, 125142, '\P{Scx=	mend}', "");
+    Expect(1, 125142, '\P{^Scx=	mend}', "");
+    Expect(0, 125143, '\p{Scx=	mend}', "");
+    Expect(1, 125143, '\p{^Scx=	mend}', "");
+    Expect(1, 125143, '\P{Scx=	mend}', "");
+    Expect(0, 125143, '\P{^Scx=	mend}', "");
+    Error('\p{Is_Script_Extensions: _-Mende_kikakui/a/}');
+    Error('\P{Is_Script_Extensions: _-Mende_kikakui/a/}');
+    Expect(1, 125142, '\p{Is_Script_Extensions:   mendekikakui}', "");
+    Expect(0, 125142, '\p{^Is_Script_Extensions:   mendekikakui}', "");
+    Expect(0, 125142, '\P{Is_Script_Extensions:   mendekikakui}', "");
+    Expect(1, 125142, '\P{^Is_Script_Extensions:   mendekikakui}', "");
+    Expect(0, 125143, '\p{Is_Script_Extensions:   mendekikakui}', "");
+    Expect(1, 125143, '\p{^Is_Script_Extensions:   mendekikakui}', "");
+    Expect(1, 125143, '\P{Is_Script_Extensions:   mendekikakui}', "");
+    Expect(0, 125143, '\P{^Is_Script_Extensions:   mendekikakui}', "");
+    Expect(1, 125142, '\p{Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(0, 125142, '\p{^Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(0, 125142, '\P{Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(1, 125142, '\P{^Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(0, 125143, '\p{Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(1, 125143, '\p{^Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(1, 125143, '\P{Is_Script_Extensions=		Mende_Kikakui}', "");
+    Expect(0, 125143, '\P{^Is_Script_Extensions=		Mende_Kikakui}', "");
+    Error('\p{Is_Scx=:=_MEND}');
+    Error('\P{Is_Scx=:=_MEND}');
+    Expect(1, 125142, '\p{Is_Scx=mend}', "");
+    Expect(0, 125142, '\p{^Is_Scx=mend}', "");
+    Expect(0, 125142, '\P{Is_Scx=mend}', "");
+    Expect(1, 125142, '\P{^Is_Scx=mend}', "");
+    Expect(0, 125143, '\p{Is_Scx=mend}', "");
+    Expect(1, 125143, '\p{^Is_Scx=mend}', "");
+    Expect(1, 125143, '\P{Is_Scx=mend}', "");
+    Expect(0, 125143, '\P{^Is_Scx=mend}', "");
+    Expect(1, 125142, '\p{Is_Scx: -	Mend}', "");
+    Expect(0, 125142, '\p{^Is_Scx: -	Mend}', "");
+    Expect(0, 125142, '\P{Is_Scx: -	Mend}', "");
+    Expect(1, 125142, '\P{^Is_Scx: -	Mend}', "");
+    Expect(0, 125143, '\p{Is_Scx: -	Mend}', "");
+    Expect(1, 125143, '\p{^Is_Scx: -	Mend}', "");
+    Expect(1, 125143, '\P{Is_Scx: -	Mend}', "");
+    Expect(0, 125143, '\P{^Is_Scx: -	Mend}', "");
+    Error('\p{Script_Extensions=:=	Meroitic_cursive}');
+    Error('\P{Script_Extensions=:=	Meroitic_cursive}');
     Expect(1, 68095, '\p{Script_Extensions=:\AMeroitic_Cursive\z:}', "");;
     Expect(0, 68096, '\p{Script_Extensions=:\AMeroitic_Cursive\z:}', "");;
     Expect(1, 68095, '\p{Script_Extensions=meroiticcursive}', "");
@@ -148069,16 +149453,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68096, '\P{^Script_Extensions=meroiticcursive}', "");
     Expect(1, 68095, '\p{Script_Extensions=:\Ameroiticcursive\z:}', "");;
     Expect(0, 68096, '\p{Script_Extensions=:\Ameroiticcursive\z:}', "");;
-    Expect(1, 68095, '\p{Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(0, 68095, '\p{^Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(0, 68095, '\P{Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(1, 68095, '\P{^Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(0, 68096, '\p{Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(1, 68096, '\p{^Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(1, 68096, '\P{Script_Extensions=Meroitic_CURSIVE}', "");
-    Expect(0, 68096, '\P{^Script_Extensions=Meroitic_CURSIVE}', "");
-    Error('\p{Scx=	-merc:=}');
-    Error('\P{Scx=	-merc:=}');
+    Expect(1, 68095, '\p{Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\p{^Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(0, 68095, '\P{Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(1, 68095, '\P{^Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\p{Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\p{^Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(1, 68096, '\P{Script_Extensions=  Meroitic_CURSIVE}', "");
+    Expect(0, 68096, '\P{^Script_Extensions=  Meroitic_CURSIVE}', "");
+    Error('\p{Scx=		Merc:=}');
+    Error('\P{Scx=		Merc:=}');
     Expect(1, 68095, '\p{Scx=:\AMerc\z:}', "");;
     Expect(0, 68096, '\p{Scx=:\AMerc\z:}', "");;
     Expect(1, 68095, '\p{Scx=merc}', "");
@@ -148091,16 +149475,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68096, '\P{^Scx=merc}', "");
     Expect(1, 68095, '\p{Scx=:\Amerc\z:}', "");;
     Expect(0, 68096, '\p{Scx=:\Amerc\z:}', "");;
-    Expect(1, 68095, '\p{Scx:	Merc}', "");
-    Expect(0, 68095, '\p{^Scx:	Merc}', "");
-    Expect(0, 68095, '\P{Scx:	Merc}', "");
-    Expect(1, 68095, '\P{^Scx:	Merc}', "");
-    Expect(0, 68096, '\p{Scx:	Merc}', "");
-    Expect(1, 68096, '\p{^Scx:	Merc}', "");
-    Expect(1, 68096, '\P{Scx:	Merc}', "");
-    Expect(0, 68096, '\P{^Scx:	Merc}', "");
-    Error('\p{Is_Script_Extensions=_/a/meroitic_CURSIVE}');
-    Error('\P{Is_Script_Extensions=_/a/meroitic_CURSIVE}');
+    Expect(1, 68095, '\p{Scx= -Merc}', "");
+    Expect(0, 68095, '\p{^Scx= -Merc}', "");
+    Expect(0, 68095, '\P{Scx= -Merc}', "");
+    Expect(1, 68095, '\P{^Scx= -Merc}', "");
+    Expect(0, 68096, '\p{Scx= -Merc}', "");
+    Expect(1, 68096, '\p{^Scx= -Merc}', "");
+    Expect(1, 68096, '\P{Scx= -Merc}', "");
+    Expect(0, 68096, '\P{^Scx= -Merc}', "");
+    Error('\p{Is_Script_Extensions=:=-_Meroitic_Cursive}');
+    Error('\P{Is_Script_Extensions=:=-_Meroitic_Cursive}');
     Expect(1, 68095, '\p{Is_Script_Extensions=meroiticcursive}', "");
     Expect(0, 68095, '\p{^Is_Script_Extensions=meroiticcursive}', "");
     Expect(0, 68095, '\P{Is_Script_Extensions=meroiticcursive}', "");
@@ -148109,16 +149493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68096, '\p{^Is_Script_Extensions=meroiticcursive}', "");
     Expect(1, 68096, '\P{Is_Script_Extensions=meroiticcursive}', "");
     Expect(0, 68096, '\P{^Is_Script_Extensions=meroiticcursive}', "");
-    Expect(1, 68095, '\p{Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(0, 68095, '\p{^Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(0, 68095, '\P{Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(1, 68095, '\P{^Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(0, 68096, '\p{Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(1, 68096, '\p{^Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(1, 68096, '\P{Is_Script_Extensions=	meroitic_cursive}', "");
-    Expect(0, 68096, '\P{^Is_Script_Extensions=	meroitic_cursive}', "");
-    Error('\p{Is_Scx=/a/-_Merc}');
-    Error('\P{Is_Scx=/a/-_Merc}');
+    Expect(1, 68095, '\p{Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(0, 68095, '\p{^Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(0, 68095, '\P{Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(1, 68095, '\P{^Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(0, 68096, '\p{Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(1, 68096, '\p{^Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(1, 68096, '\P{Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Expect(0, 68096, '\P{^Is_Script_Extensions:  Meroitic_Cursive}', "");
+    Error('\p{Is_Scx:	 :=MERC}');
+    Error('\P{Is_Scx:	 :=MERC}');
     Expect(1, 68095, '\p{Is_Scx=merc}', "");
     Expect(0, 68095, '\p{^Is_Scx=merc}', "");
     Expect(0, 68095, '\P{Is_Scx=merc}', "");
@@ -148127,16 +149511,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68096, '\p{^Is_Scx=merc}', "");
     Expect(1, 68096, '\P{Is_Scx=merc}', "");
     Expect(0, 68096, '\P{^Is_Scx=merc}', "");
-    Expect(1, 68095, '\p{Is_Scx=-	MERC}', "");
-    Expect(0, 68095, '\p{^Is_Scx=-	MERC}', "");
-    Expect(0, 68095, '\P{Is_Scx=-	MERC}', "");
-    Expect(1, 68095, '\P{^Is_Scx=-	MERC}', "");
-    Expect(0, 68096, '\p{Is_Scx=-	MERC}', "");
-    Expect(1, 68096, '\p{^Is_Scx=-	MERC}', "");
-    Expect(1, 68096, '\P{Is_Scx=-	MERC}', "");
-    Expect(0, 68096, '\P{^Is_Scx=-	MERC}', "");
-    Error('\p{Script_Extensions=/a/	_Meroitic_hieroglyphs}');
-    Error('\P{Script_Extensions=/a/	_Meroitic_hieroglyphs}');
+    Expect(1, 68095, '\p{Is_Scx=_	Merc}', "");
+    Expect(0, 68095, '\p{^Is_Scx=_	Merc}', "");
+    Expect(0, 68095, '\P{Is_Scx=_	Merc}', "");
+    Expect(1, 68095, '\P{^Is_Scx=_	Merc}', "");
+    Expect(0, 68096, '\p{Is_Scx=_	Merc}', "");
+    Expect(1, 68096, '\p{^Is_Scx=_	Merc}', "");
+    Expect(1, 68096, '\P{Is_Scx=_	Merc}', "");
+    Expect(0, 68096, '\P{^Is_Scx=_	Merc}', "");
+    Error('\p{Script_Extensions=/a/meroitic_Hieroglyphs}');
+    Error('\P{Script_Extensions=/a/meroitic_Hieroglyphs}');
     Expect(1, 67999, '\p{Script_Extensions=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Script_Extensions=:\AMeroitic_Hieroglyphs\z:}', "");;
     Expect(1, 67999, '\p{Script_Extensions=meroitichieroglyphs}', "");
@@ -148149,38 +149533,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68000, '\P{^Script_Extensions=meroitichieroglyphs}', "");
     Expect(1, 67999, '\p{Script_Extensions=:\Ameroitichieroglyphs\z:}', "");;
     Expect(0, 68000, '\p{Script_Extensions=:\Ameroitichieroglyphs\z:}', "");;
-    Expect(1, 67999, '\p{Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\p{^Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(0, 67999, '\P{Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(1, 67999, '\P{^Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\p{Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\p{^Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(1, 68000, '\P{Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Expect(0, 68000, '\P{^Script_Extensions:		_meroitic_Hieroglyphs}', "");
-    Error('\p{Scx=/a/-_Mero}');
-    Error('\P{Scx=/a/-_Mero}');
+    Expect(1, 67999, '\p{Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(0, 67999, '\p{^Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(0, 67999, '\P{Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(1, 67999, '\P{^Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(0, 68000, '\p{Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(1, 68000, '\p{^Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(1, 68000, '\P{Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Expect(0, 68000, '\P{^Script_Extensions=-	MEROITIC_hieroglyphs}', "");
+    Error('\p{Scx= :=mero}');
+    Error('\P{Scx= :=mero}');
     Expect(1, 67999, '\p{Scx=:\AMero\z:}', "");;
     Expect(0, 68000, '\p{Scx=:\AMero\z:}', "");;
-    Expect(1, 67999, '\p{Scx:mero}', "");
-    Expect(0, 67999, '\p{^Scx:mero}', "");
-    Expect(0, 67999, '\P{Scx:mero}', "");
-    Expect(1, 67999, '\P{^Scx:mero}', "");
-    Expect(0, 68000, '\p{Scx:mero}', "");
-    Expect(1, 68000, '\p{^Scx:mero}', "");
-    Expect(1, 68000, '\P{Scx:mero}', "");
-    Expect(0, 68000, '\P{^Scx:mero}', "");
+    Expect(1, 67999, '\p{Scx=mero}', "");
+    Expect(0, 67999, '\p{^Scx=mero}', "");
+    Expect(0, 67999, '\P{Scx=mero}', "");
+    Expect(1, 67999, '\P{^Scx=mero}', "");
+    Expect(0, 68000, '\p{Scx=mero}', "");
+    Expect(1, 68000, '\p{^Scx=mero}', "");
+    Expect(1, 68000, '\P{Scx=mero}', "");
+    Expect(0, 68000, '\P{^Scx=mero}', "");
     Expect(1, 67999, '\p{Scx=:\Amero\z:}', "");;
     Expect(0, 68000, '\p{Scx=:\Amero\z:}', "");;
-    Expect(1, 67999, '\p{Scx= -mero}', "");
-    Expect(0, 67999, '\p{^Scx= -mero}', "");
-    Expect(0, 67999, '\P{Scx= -mero}', "");
-    Expect(1, 67999, '\P{^Scx= -mero}', "");
-    Expect(0, 68000, '\p{Scx= -mero}', "");
-    Expect(1, 68000, '\p{^Scx= -mero}', "");
-    Expect(1, 68000, '\P{Scx= -mero}', "");
-    Expect(0, 68000, '\P{^Scx= -mero}', "");
-    Error('\p{Is_Script_Extensions=-Meroitic_hieroglyphs:=}');
-    Error('\P{Is_Script_Extensions=-Meroitic_hieroglyphs:=}');
+    Expect(1, 67999, '\p{Scx= 	mero}', "");
+    Expect(0, 67999, '\p{^Scx= 	mero}', "");
+    Expect(0, 67999, '\P{Scx= 	mero}', "");
+    Expect(1, 67999, '\P{^Scx= 	mero}', "");
+    Expect(0, 68000, '\p{Scx= 	mero}', "");
+    Expect(1, 68000, '\p{^Scx= 	mero}', "");
+    Expect(1, 68000, '\P{Scx= 	mero}', "");
+    Expect(0, 68000, '\P{^Scx= 	mero}', "");
+    Error('\p{Is_Script_Extensions=_ Meroitic_hieroglyphs/a/}');
+    Error('\P{Is_Script_Extensions=_ Meroitic_hieroglyphs/a/}');
     Expect(1, 67999, '\p{Is_Script_Extensions=meroitichieroglyphs}', "");
     Expect(0, 67999, '\p{^Is_Script_Extensions=meroitichieroglyphs}', "");
     Expect(0, 67999, '\P{Is_Script_Extensions=meroitichieroglyphs}', "");
@@ -148189,16 +149573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68000, '\p{^Is_Script_Extensions=meroitichieroglyphs}', "");
     Expect(1, 68000, '\P{Is_Script_Extensions=meroitichieroglyphs}', "");
     Expect(0, 68000, '\P{^Is_Script_Extensions=meroitichieroglyphs}', "");
-    Expect(1, 67999, '\p{Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(0, 67999, '\p{^Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(0, 67999, '\P{Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(1, 67999, '\P{^Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(0, 68000, '\p{Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(1, 68000, '\p{^Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(1, 68000, '\P{Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Expect(0, 68000, '\P{^Is_Script_Extensions= -meroitic_hieroglyphs}', "");
-    Error('\p{Is_Scx=-:=mero}');
-    Error('\P{Is_Scx=-:=mero}');
+    Expect(1, 67999, '\p{Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\p{^Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(0, 67999, '\P{Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(1, 67999, '\P{^Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\p{Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\p{^Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(1, 68000, '\P{Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Expect(0, 68000, '\P{^Is_Script_Extensions=-	Meroitic_hieroglyphs}', "");
+    Error('\p{Is_Scx= :=Mero}');
+    Error('\P{Is_Scx= :=Mero}');
     Expect(1, 67999, '\p{Is_Scx=mero}', "");
     Expect(0, 67999, '\p{^Is_Scx=mero}', "");
     Expect(0, 67999, '\P{Is_Scx=mero}', "");
@@ -148207,16 +149591,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68000, '\p{^Is_Scx=mero}', "");
     Expect(1, 68000, '\P{Is_Scx=mero}', "");
     Expect(0, 68000, '\P{^Is_Scx=mero}', "");
-    Expect(1, 67999, '\p{Is_Scx:		MERO}', "");
-    Expect(0, 67999, '\p{^Is_Scx:		MERO}', "");
-    Expect(0, 67999, '\P{Is_Scx:		MERO}', "");
-    Expect(1, 67999, '\P{^Is_Scx:		MERO}', "");
-    Expect(0, 68000, '\p{Is_Scx:		MERO}', "");
-    Expect(1, 68000, '\p{^Is_Scx:		MERO}', "");
-    Expect(1, 68000, '\P{Is_Scx:		MERO}', "");
-    Expect(0, 68000, '\P{^Is_Scx:		MERO}', "");
-    Error('\p{Script_Extensions=/a/_MALAYALAM}');
-    Error('\P{Script_Extensions=/a/_MALAYALAM}');
+    Expect(1, 67999, '\p{Is_Scx=	 Mero}', "");
+    Expect(0, 67999, '\p{^Is_Scx=	 Mero}', "");
+    Expect(0, 67999, '\P{Is_Scx=	 Mero}', "");
+    Expect(1, 67999, '\P{^Is_Scx=	 Mero}', "");
+    Expect(0, 68000, '\p{Is_Scx=	 Mero}', "");
+    Expect(1, 68000, '\p{^Is_Scx=	 Mero}', "");
+    Expect(1, 68000, '\P{Is_Scx=	 Mero}', "");
+    Expect(0, 68000, '\P{^Is_Scx=	 Mero}', "");
+    Error('\p{Script_Extensions:	_:=Malayalam}');
+    Error('\P{Script_Extensions:	_:=Malayalam}');
     Expect(1, 43058, '\p{Script_Extensions=:\AMalayalam\z:}', "");;
     Expect(0, 43059, '\p{Script_Extensions=:\AMalayalam\z:}', "");;
     Expect(1, 43058, '\p{Script_Extensions=malayalam}', "");
@@ -148229,16 +149613,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43059, '\P{^Script_Extensions=malayalam}', "");
     Expect(1, 43058, '\p{Script_Extensions=:\Amalayalam\z:}', "");;
     Expect(0, 43059, '\p{Script_Extensions=:\Amalayalam\z:}', "");;
-    Expect(1, 43058, '\p{Script_Extensions= Malayalam}', "");
-    Expect(0, 43058, '\p{^Script_Extensions= Malayalam}', "");
-    Expect(0, 43058, '\P{Script_Extensions= Malayalam}', "");
-    Expect(1, 43058, '\P{^Script_Extensions= Malayalam}', "");
-    Expect(0, 43059, '\p{Script_Extensions= Malayalam}', "");
-    Expect(1, 43059, '\p{^Script_Extensions= Malayalam}', "");
-    Expect(1, 43059, '\P{Script_Extensions= Malayalam}', "");
-    Expect(0, 43059, '\P{^Script_Extensions= Malayalam}', "");
-    Error('\p{Scx:	 Mlym:=}');
-    Error('\P{Scx:	 Mlym:=}');
+    Expect(1, 43058, '\p{Script_Extensions:	- Malayalam}', "");
+    Expect(0, 43058, '\p{^Script_Extensions:	- Malayalam}', "");
+    Expect(0, 43058, '\P{Script_Extensions:	- Malayalam}', "");
+    Expect(1, 43058, '\P{^Script_Extensions:	- Malayalam}', "");
+    Expect(0, 43059, '\p{Script_Extensions:	- Malayalam}', "");
+    Expect(1, 43059, '\p{^Script_Extensions:	- Malayalam}', "");
+    Expect(1, 43059, '\P{Script_Extensions:	- Malayalam}', "");
+    Expect(0, 43059, '\P{^Script_Extensions:	- Malayalam}', "");
+    Error('\p{Scx:/a/ -Mlym}');
+    Error('\P{Scx:/a/ -Mlym}');
     Expect(1, 43058, '\p{Scx=:\AMlym\z:}', "");;
     Expect(0, 43059, '\p{Scx=:\AMlym\z:}', "");;
     Expect(1, 43058, '\p{Scx=mlym}', "");
@@ -148251,16 +149635,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43059, '\P{^Scx=mlym}', "");
     Expect(1, 43058, '\p{Scx=:\Amlym\z:}', "");;
     Expect(0, 43059, '\p{Scx=:\Amlym\z:}', "");;
-    Expect(1, 43058, '\p{Scx=__Mlym}', "");
-    Expect(0, 43058, '\p{^Scx=__Mlym}', "");
-    Expect(0, 43058, '\P{Scx=__Mlym}', "");
-    Expect(1, 43058, '\P{^Scx=__Mlym}', "");
-    Expect(0, 43059, '\p{Scx=__Mlym}', "");
-    Expect(1, 43059, '\p{^Scx=__Mlym}', "");
-    Expect(1, 43059, '\P{Scx=__Mlym}', "");
-    Expect(0, 43059, '\P{^Scx=__Mlym}', "");
-    Error('\p{Is_Script_Extensions=/a/-	Malayalam}');
-    Error('\P{Is_Script_Extensions=/a/-	Malayalam}');
+    Expect(1, 43058, '\p{Scx=-MLYM}', "");
+    Expect(0, 43058, '\p{^Scx=-MLYM}', "");
+    Expect(0, 43058, '\P{Scx=-MLYM}', "");
+    Expect(1, 43058, '\P{^Scx=-MLYM}', "");
+    Expect(0, 43059, '\p{Scx=-MLYM}', "");
+    Expect(1, 43059, '\p{^Scx=-MLYM}', "");
+    Expect(1, 43059, '\P{Scx=-MLYM}', "");
+    Expect(0, 43059, '\P{^Scx=-MLYM}', "");
+    Error('\p{Is_Script_Extensions=:=_ Malayalam}');
+    Error('\P{Is_Script_Extensions=:=_ Malayalam}');
     Expect(1, 43058, '\p{Is_Script_Extensions=malayalam}', "");
     Expect(0, 43058, '\p{^Is_Script_Extensions=malayalam}', "");
     Expect(0, 43058, '\P{Is_Script_Extensions=malayalam}', "");
@@ -148269,16 +149653,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43059, '\p{^Is_Script_Extensions=malayalam}', "");
     Expect(1, 43059, '\P{Is_Script_Extensions=malayalam}', "");
     Expect(0, 43059, '\P{^Is_Script_Extensions=malayalam}', "");
-    Expect(1, 43058, '\p{Is_Script_Extensions=	_Malayalam}', "");
-    Expect(0, 43058, '\p{^Is_Script_Extensions=	_Malayalam}', "");
-    Expect(0, 43058, '\P{Is_Script_Extensions=	_Malayalam}', "");
-    Expect(1, 43058, '\P{^Is_Script_Extensions=	_Malayalam}', "");
-    Expect(0, 43059, '\p{Is_Script_Extensions=	_Malayalam}', "");
-    Expect(1, 43059, '\p{^Is_Script_Extensions=	_Malayalam}', "");
-    Expect(1, 43059, '\P{Is_Script_Extensions=	_Malayalam}', "");
-    Expect(0, 43059, '\P{^Is_Script_Extensions=	_Malayalam}', "");
-    Error('\p{Is_Scx=:=_MLYM}');
-    Error('\P{Is_Scx=:=_MLYM}');
+    Expect(1, 43058, '\p{Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(0, 43058, '\p{^Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(0, 43058, '\P{Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(1, 43058, '\P{^Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(0, 43059, '\p{Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(1, 43059, '\p{^Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(1, 43059, '\P{Is_Script_Extensions=	_MALAYALAM}', "");
+    Expect(0, 43059, '\P{^Is_Script_Extensions=	_MALAYALAM}', "");
+    Error('\p{Is_Scx=:=_	Mlym}');
+    Error('\P{Is_Scx=:=_	Mlym}');
     Expect(1, 43058, '\p{Is_Scx=mlym}', "");
     Expect(0, 43058, '\p{^Is_Scx=mlym}', "");
     Expect(0, 43058, '\P{Is_Scx=mlym}', "");
@@ -148287,38 +149671,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43059, '\p{^Is_Scx=mlym}', "");
     Expect(1, 43059, '\P{Is_Scx=mlym}', "");
     Expect(0, 43059, '\P{^Is_Scx=mlym}', "");
-    Expect(1, 43058, '\p{Is_Scx=-	Mlym}', "");
-    Expect(0, 43058, '\p{^Is_Scx=-	Mlym}', "");
-    Expect(0, 43058, '\P{Is_Scx=-	Mlym}', "");
-    Expect(1, 43058, '\P{^Is_Scx=-	Mlym}', "");
-    Expect(0, 43059, '\p{Is_Scx=-	Mlym}', "");
-    Expect(1, 43059, '\p{^Is_Scx=-	Mlym}', "");
-    Expect(1, 43059, '\P{Is_Scx=-	Mlym}', "");
-    Expect(0, 43059, '\P{^Is_Scx=-	Mlym}', "");
-    Error('\p{Script_Extensions=-:=modi}');
-    Error('\P{Script_Extensions=-:=modi}');
+    Expect(1, 43058, '\p{Is_Scx=	Mlym}', "");
+    Expect(0, 43058, '\p{^Is_Scx=	Mlym}', "");
+    Expect(0, 43058, '\P{Is_Scx=	Mlym}', "");
+    Expect(1, 43058, '\P{^Is_Scx=	Mlym}', "");
+    Expect(0, 43059, '\p{Is_Scx=	Mlym}', "");
+    Expect(1, 43059, '\p{^Is_Scx=	Mlym}', "");
+    Expect(1, 43059, '\P{Is_Scx=	Mlym}', "");
+    Expect(0, 43059, '\P{^Is_Scx=	Mlym}', "");
+    Error('\p{Script_Extensions= :=modi}');
+    Error('\P{Script_Extensions= :=modi}');
     Expect(1, 71257, '\p{Script_Extensions=:\AModi\z:}', "");;
     Expect(0, 71258, '\p{Script_Extensions=:\AModi\z:}', "");;
-    Expect(1, 71257, '\p{Script_Extensions:   modi}', "");
-    Expect(0, 71257, '\p{^Script_Extensions:   modi}', "");
-    Expect(0, 71257, '\P{Script_Extensions:   modi}', "");
-    Expect(1, 71257, '\P{^Script_Extensions:   modi}', "");
-    Expect(0, 71258, '\p{Script_Extensions:   modi}', "");
-    Expect(1, 71258, '\p{^Script_Extensions:   modi}', "");
-    Expect(1, 71258, '\P{Script_Extensions:   modi}', "");
-    Expect(0, 71258, '\P{^Script_Extensions:   modi}', "");
+    Expect(1, 71257, '\p{Script_Extensions=modi}', "");
+    Expect(0, 71257, '\p{^Script_Extensions=modi}', "");
+    Expect(0, 71257, '\P{Script_Extensions=modi}', "");
+    Expect(1, 71257, '\P{^Script_Extensions=modi}', "");
+    Expect(0, 71258, '\p{Script_Extensions=modi}', "");
+    Expect(1, 71258, '\p{^Script_Extensions=modi}', "");
+    Expect(1, 71258, '\P{Script_Extensions=modi}', "");
+    Expect(0, 71258, '\P{^Script_Extensions=modi}', "");
     Expect(1, 71257, '\p{Script_Extensions=:\Amodi\z:}', "");;
     Expect(0, 71258, '\p{Script_Extensions=:\Amodi\z:}', "");;
-    Expect(1, 71257, '\p{Script_Extensions=		modi}', "");
-    Expect(0, 71257, '\p{^Script_Extensions=		modi}', "");
-    Expect(0, 71257, '\P{Script_Extensions=		modi}', "");
-    Expect(1, 71257, '\P{^Script_Extensions=		modi}', "");
-    Expect(0, 71258, '\p{Script_Extensions=		modi}', "");
-    Expect(1, 71258, '\p{^Script_Extensions=		modi}', "");
-    Expect(1, 71258, '\P{Script_Extensions=		modi}', "");
-    Expect(0, 71258, '\P{^Script_Extensions=		modi}', "");
-    Error('\p{Scx=:=	_modi}');
-    Error('\P{Scx=:=	_modi}');
+    Expect(1, 71257, '\p{Script_Extensions=__MODI}', "");
+    Expect(0, 71257, '\p{^Script_Extensions=__MODI}', "");
+    Expect(0, 71257, '\P{Script_Extensions=__MODI}', "");
+    Expect(1, 71257, '\P{^Script_Extensions=__MODI}', "");
+    Expect(0, 71258, '\p{Script_Extensions=__MODI}', "");
+    Expect(1, 71258, '\p{^Script_Extensions=__MODI}', "");
+    Expect(1, 71258, '\P{Script_Extensions=__MODI}', "");
+    Expect(0, 71258, '\P{^Script_Extensions=__MODI}', "");
+    Error('\p{Scx:	/a/	Modi}');
+    Error('\P{Scx:	/a/	Modi}');
     Expect(1, 71257, '\p{Scx=:\AModi\z:}', "");;
     Expect(0, 71258, '\p{Scx=:\AModi\z:}', "");;
     Expect(1, 71257, '\p{Scx=modi}', "");
@@ -148339,8 +149723,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71258, '\p{^Scx=_Modi}', "");
     Expect(1, 71258, '\P{Scx=_Modi}', "");
     Expect(0, 71258, '\P{^Scx=_Modi}', "");
-    Error('\p{Is_Script_Extensions= /a/Modi}');
-    Error('\P{Is_Script_Extensions= /a/Modi}');
+    Error('\p{Is_Script_Extensions=-:=MODI}');
+    Error('\P{Is_Script_Extensions=-:=MODI}');
     Expect(1, 71257, '\p{Is_Script_Extensions=modi}', "");
     Expect(0, 71257, '\p{^Is_Script_Extensions=modi}', "");
     Expect(0, 71257, '\P{Is_Script_Extensions=modi}', "");
@@ -148349,16 +149733,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71258, '\p{^Is_Script_Extensions=modi}', "");
     Expect(1, 71258, '\P{Is_Script_Extensions=modi}', "");
     Expect(0, 71258, '\P{^Is_Script_Extensions=modi}', "");
-    Expect(1, 71257, '\p{Is_Script_Extensions=_MODI}', "");
-    Expect(0, 71257, '\p{^Is_Script_Extensions=_MODI}', "");
-    Expect(0, 71257, '\P{Is_Script_Extensions=_MODI}', "");
-    Expect(1, 71257, '\P{^Is_Script_Extensions=_MODI}', "");
-    Expect(0, 71258, '\p{Is_Script_Extensions=_MODI}', "");
-    Expect(1, 71258, '\p{^Is_Script_Extensions=_MODI}', "");
-    Expect(1, 71258, '\P{Is_Script_Extensions=_MODI}', "");
-    Expect(0, 71258, '\P{^Is_Script_Extensions=_MODI}', "");
-    Error('\p{Is_Scx=-:=Modi}');
-    Error('\P{Is_Scx=-:=Modi}');
+    Expect(1, 71257, '\p{Is_Script_Extensions=- modi}', "");
+    Expect(0, 71257, '\p{^Is_Script_Extensions=- modi}', "");
+    Expect(0, 71257, '\P{Is_Script_Extensions=- modi}', "");
+    Expect(1, 71257, '\P{^Is_Script_Extensions=- modi}', "");
+    Expect(0, 71258, '\p{Is_Script_Extensions=- modi}', "");
+    Expect(1, 71258, '\p{^Is_Script_Extensions=- modi}', "");
+    Expect(1, 71258, '\P{Is_Script_Extensions=- modi}', "");
+    Expect(0, 71258, '\P{^Is_Script_Extensions=- modi}', "");
+    Error('\p{Is_Scx=:=_-modi}');
+    Error('\P{Is_Scx=:=_-modi}');
     Expect(1, 71257, '\p{Is_Scx=modi}', "");
     Expect(0, 71257, '\p{^Is_Scx=modi}', "");
     Expect(0, 71257, '\P{Is_Scx=modi}', "");
@@ -148367,16 +149751,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71258, '\p{^Is_Scx=modi}', "");
     Expect(1, 71258, '\P{Is_Scx=modi}', "");
     Expect(0, 71258, '\P{^Is_Scx=modi}', "");
-    Expect(1, 71257, '\p{Is_Scx=-Modi}', "");
-    Expect(0, 71257, '\p{^Is_Scx=-Modi}', "");
-    Expect(0, 71257, '\P{Is_Scx=-Modi}', "");
-    Expect(1, 71257, '\P{^Is_Scx=-Modi}', "");
-    Expect(0, 71258, '\p{Is_Scx=-Modi}', "");
-    Expect(1, 71258, '\p{^Is_Scx=-Modi}', "");
-    Expect(1, 71258, '\P{Is_Scx=-Modi}', "");
-    Expect(0, 71258, '\P{^Is_Scx=-Modi}', "");
-    Error('\p{Script_Extensions: _/a/MONGOLIAN}');
-    Error('\P{Script_Extensions: _/a/MONGOLIAN}');
+    Expect(1, 71257, '\p{Is_Scx=		MODI}', "");
+    Expect(0, 71257, '\p{^Is_Scx=		MODI}', "");
+    Expect(0, 71257, '\P{Is_Scx=		MODI}', "");
+    Expect(1, 71257, '\P{^Is_Scx=		MODI}', "");
+    Expect(0, 71258, '\p{Is_Scx=		MODI}', "");
+    Expect(1, 71258, '\p{^Is_Scx=		MODI}', "");
+    Expect(1, 71258, '\P{Is_Scx=		MODI}', "");
+    Expect(0, 71258, '\P{^Is_Scx=		MODI}', "");
+    Error('\p{Script_Extensions=:=-	MONGOLIAN}');
+    Error('\P{Script_Extensions=:=-	MONGOLIAN}');
     Expect(1, 71276, '\p{Script_Extensions=:\AMongolian\z:}', "");;
     Expect(0, 71277, '\p{Script_Extensions=:\AMongolian\z:}', "");;
     Expect(1, 71276, '\p{Script_Extensions=mongolian}', "");
@@ -148389,38 +149773,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71277, '\P{^Script_Extensions=mongolian}', "");
     Expect(1, 71276, '\p{Script_Extensions=:\Amongolian\z:}', "");;
     Expect(0, 71277, '\p{Script_Extensions=:\Amongolian\z:}', "");;
-    Expect(1, 71276, '\p{Script_Extensions= -mongolian}', "");
-    Expect(0, 71276, '\p{^Script_Extensions= -mongolian}', "");
-    Expect(0, 71276, '\P{Script_Extensions= -mongolian}', "");
-    Expect(1, 71276, '\P{^Script_Extensions= -mongolian}', "");
-    Expect(0, 71277, '\p{Script_Extensions= -mongolian}', "");
-    Expect(1, 71277, '\p{^Script_Extensions= -mongolian}', "");
-    Expect(1, 71277, '\P{Script_Extensions= -mongolian}', "");
-    Expect(0, 71277, '\P{^Script_Extensions= -mongolian}', "");
-    Error('\p{Scx=/a/_	mong}');
-    Error('\P{Scx=/a/_	mong}');
+    Expect(1, 71276, '\p{Script_Extensions=	-mongolian}', "");
+    Expect(0, 71276, '\p{^Script_Extensions=	-mongolian}', "");
+    Expect(0, 71276, '\P{Script_Extensions=	-mongolian}', "");
+    Expect(1, 71276, '\P{^Script_Extensions=	-mongolian}', "");
+    Expect(0, 71277, '\p{Script_Extensions=	-mongolian}', "");
+    Expect(1, 71277, '\p{^Script_Extensions=	-mongolian}', "");
+    Expect(1, 71277, '\P{Script_Extensions=	-mongolian}', "");
+    Expect(0, 71277, '\P{^Script_Extensions=	-mongolian}', "");
+    Error('\p{Scx= 	Mong/a/}');
+    Error('\P{Scx= 	Mong/a/}');
     Expect(1, 71276, '\p{Scx=:\AMong\z:}', "");;
     Expect(0, 71277, '\p{Scx=:\AMong\z:}', "");;
-    Expect(1, 71276, '\p{Scx=mong}', "");
-    Expect(0, 71276, '\p{^Scx=mong}', "");
-    Expect(0, 71276, '\P{Scx=mong}', "");
-    Expect(1, 71276, '\P{^Scx=mong}', "");
-    Expect(0, 71277, '\p{Scx=mong}', "");
-    Expect(1, 71277, '\p{^Scx=mong}', "");
-    Expect(1, 71277, '\P{Scx=mong}', "");
-    Expect(0, 71277, '\P{^Scx=mong}', "");
+    Expect(1, 71276, '\p{Scx:mong}', "");
+    Expect(0, 71276, '\p{^Scx:mong}', "");
+    Expect(0, 71276, '\P{Scx:mong}', "");
+    Expect(1, 71276, '\P{^Scx:mong}', "");
+    Expect(0, 71277, '\p{Scx:mong}', "");
+    Expect(1, 71277, '\p{^Scx:mong}', "");
+    Expect(1, 71277, '\P{Scx:mong}', "");
+    Expect(0, 71277, '\P{^Scx:mong}', "");
     Expect(1, 71276, '\p{Scx=:\Among\z:}', "");;
     Expect(0, 71277, '\p{Scx=:\Among\z:}', "");;
-    Expect(1, 71276, '\p{Scx=	-Mong}', "");
-    Expect(0, 71276, '\p{^Scx=	-Mong}', "");
-    Expect(0, 71276, '\P{Scx=	-Mong}', "");
-    Expect(1, 71276, '\P{^Scx=	-Mong}', "");
-    Expect(0, 71277, '\p{Scx=	-Mong}', "");
-    Expect(1, 71277, '\p{^Scx=	-Mong}', "");
-    Expect(1, 71277, '\P{Scx=	-Mong}', "");
-    Expect(0, 71277, '\P{^Scx=	-Mong}', "");
-    Error('\p{Is_Script_Extensions=	/a/mongolian}');
-    Error('\P{Is_Script_Extensions=	/a/mongolian}');
+    Expect(1, 71276, '\p{Scx=	-mong}', "");
+    Expect(0, 71276, '\p{^Scx=	-mong}', "");
+    Expect(0, 71276, '\P{Scx=	-mong}', "");
+    Expect(1, 71276, '\P{^Scx=	-mong}', "");
+    Expect(0, 71277, '\p{Scx=	-mong}', "");
+    Expect(1, 71277, '\p{^Scx=	-mong}', "");
+    Expect(1, 71277, '\P{Scx=	-mong}', "");
+    Expect(0, 71277, '\P{^Scx=	-mong}', "");
+    Error('\p{Is_Script_Extensions: /a/-_mongolian}');
+    Error('\P{Is_Script_Extensions: /a/-_mongolian}');
     Expect(1, 71276, '\p{Is_Script_Extensions=mongolian}', "");
     Expect(0, 71276, '\p{^Is_Script_Extensions=mongolian}', "");
     Expect(0, 71276, '\P{Is_Script_Extensions=mongolian}', "");
@@ -148429,16 +149813,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71277, '\p{^Is_Script_Extensions=mongolian}', "");
     Expect(1, 71277, '\P{Is_Script_Extensions=mongolian}', "");
     Expect(0, 71277, '\P{^Is_Script_Extensions=mongolian}', "");
-    Expect(1, 71276, '\p{Is_Script_Extensions=	 mongolian}', "");
-    Expect(0, 71276, '\p{^Is_Script_Extensions=	 mongolian}', "");
-    Expect(0, 71276, '\P{Is_Script_Extensions=	 mongolian}', "");
-    Expect(1, 71276, '\P{^Is_Script_Extensions=	 mongolian}', "");
-    Expect(0, 71277, '\p{Is_Script_Extensions=	 mongolian}', "");
-    Expect(1, 71277, '\p{^Is_Script_Extensions=	 mongolian}', "");
-    Expect(1, 71277, '\P{Is_Script_Extensions=	 mongolian}', "");
-    Expect(0, 71277, '\P{^Is_Script_Extensions=	 mongolian}', "");
-    Error('\p{Is_Scx:		/a/mong}');
-    Error('\P{Is_Scx:		/a/mong}');
+    Expect(1, 71276, '\p{Is_Script_Extensions=_	mongolian}', "");
+    Expect(0, 71276, '\p{^Is_Script_Extensions=_	mongolian}', "");
+    Expect(0, 71276, '\P{Is_Script_Extensions=_	mongolian}', "");
+    Expect(1, 71276, '\P{^Is_Script_Extensions=_	mongolian}', "");
+    Expect(0, 71277, '\p{Is_Script_Extensions=_	mongolian}', "");
+    Expect(1, 71277, '\p{^Is_Script_Extensions=_	mongolian}', "");
+    Expect(1, 71277, '\P{Is_Script_Extensions=_	mongolian}', "");
+    Expect(0, 71277, '\P{^Is_Script_Extensions=_	mongolian}', "");
+    Error('\p{Is_Scx=:=_	mong}');
+    Error('\P{Is_Scx=:=_	mong}');
     Expect(1, 71276, '\p{Is_Scx=mong}', "");
     Expect(0, 71276, '\p{^Is_Scx=mong}', "");
     Expect(0, 71276, '\P{Is_Scx=mong}', "");
@@ -148447,16 +149831,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71277, '\p{^Is_Scx=mong}', "");
     Expect(1, 71277, '\P{Is_Scx=mong}', "");
     Expect(0, 71277, '\P{^Is_Scx=mong}', "");
-    Expect(1, 71276, '\p{Is_Scx=__Mong}', "");
-    Expect(0, 71276, '\p{^Is_Scx=__Mong}', "");
-    Expect(0, 71276, '\P{Is_Scx=__Mong}', "");
-    Expect(1, 71276, '\P{^Is_Scx=__Mong}', "");
-    Expect(0, 71277, '\p{Is_Scx=__Mong}', "");
-    Expect(1, 71277, '\p{^Is_Scx=__Mong}', "");
-    Expect(1, 71277, '\P{Is_Scx=__Mong}', "");
-    Expect(0, 71277, '\P{^Is_Scx=__Mong}', "");
-    Error('\p{Script_Extensions= _Mro:=}');
-    Error('\P{Script_Extensions= _Mro:=}');
+    Expect(1, 71276, '\p{Is_Scx=	_Mong}', "");
+    Expect(0, 71276, '\p{^Is_Scx=	_Mong}', "");
+    Expect(0, 71276, '\P{Is_Scx=	_Mong}', "");
+    Expect(1, 71276, '\P{^Is_Scx=	_Mong}', "");
+    Expect(0, 71277, '\p{Is_Scx=	_Mong}', "");
+    Expect(1, 71277, '\p{^Is_Scx=	_Mong}', "");
+    Expect(1, 71277, '\P{Is_Scx=	_Mong}', "");
+    Expect(0, 71277, '\P{^Is_Scx=	_Mong}', "");
+    Error('\p{Script_Extensions=-/a/mro}');
+    Error('\P{Script_Extensions=-/a/mro}');
     Expect(1, 92783, '\p{Script_Extensions=:\AMro\z:}', "");;
     Expect(0, 92784, '\p{Script_Extensions=:\AMro\z:}', "");;
     Expect(1, 92783, '\p{Script_Extensions=mro}', "");
@@ -148469,16 +149853,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92784, '\P{^Script_Extensions=mro}', "");
     Expect(1, 92783, '\p{Script_Extensions=:\Amro\z:}', "");;
     Expect(0, 92784, '\p{Script_Extensions=:\Amro\z:}', "");;
-    Expect(1, 92783, '\p{Script_Extensions= 	mro}', "");
-    Expect(0, 92783, '\p{^Script_Extensions= 	mro}', "");
-    Expect(0, 92783, '\P{Script_Extensions= 	mro}', "");
-    Expect(1, 92783, '\P{^Script_Extensions= 	mro}', "");
-    Expect(0, 92784, '\p{Script_Extensions= 	mro}', "");
-    Expect(1, 92784, '\p{^Script_Extensions= 	mro}', "");
-    Expect(1, 92784, '\P{Script_Extensions= 	mro}', "");
-    Expect(0, 92784, '\P{^Script_Extensions= 	mro}', "");
-    Error('\p{Scx= mroo:=}');
-    Error('\P{Scx= mroo:=}');
+    Expect(1, 92783, '\p{Script_Extensions= _mro}', "");
+    Expect(0, 92783, '\p{^Script_Extensions= _mro}', "");
+    Expect(0, 92783, '\P{Script_Extensions= _mro}', "");
+    Expect(1, 92783, '\P{^Script_Extensions= _mro}', "");
+    Expect(0, 92784, '\p{Script_Extensions= _mro}', "");
+    Expect(1, 92784, '\p{^Script_Extensions= _mro}', "");
+    Expect(1, 92784, '\P{Script_Extensions= _mro}', "");
+    Expect(0, 92784, '\P{^Script_Extensions= _mro}', "");
+    Error('\p{Scx=	MROO:=}');
+    Error('\P{Scx=	MROO:=}');
     Expect(1, 92783, '\p{Scx=:\AMroo\z:}', "");;
     Expect(0, 92784, '\p{Scx=:\AMroo\z:}', "");;
     Expect(1, 92783, '\p{Scx=mroo}', "");
@@ -148491,34 +149875,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92784, '\P{^Scx=mroo}', "");
     Expect(1, 92783, '\p{Scx=:\Amroo\z:}', "");;
     Expect(0, 92784, '\p{Scx=:\Amroo\z:}', "");;
-    Expect(1, 92783, '\p{Scx=-	Mroo}', "");
-    Expect(0, 92783, '\p{^Scx=-	Mroo}', "");
-    Expect(0, 92783, '\P{Scx=-	Mroo}', "");
-    Expect(1, 92783, '\P{^Scx=-	Mroo}', "");
-    Expect(0, 92784, '\p{Scx=-	Mroo}', "");
-    Expect(1, 92784, '\p{^Scx=-	Mroo}', "");
-    Expect(1, 92784, '\P{Scx=-	Mroo}', "");
-    Expect(0, 92784, '\P{^Scx=-	Mroo}', "");
-    Error('\p{Is_Script_Extensions=/a/ _Mro}');
-    Error('\P{Is_Script_Extensions=/a/ _Mro}');
-    Expect(1, 92783, '\p{Is_Script_Extensions:	mro}', "");
-    Expect(0, 92783, '\p{^Is_Script_Extensions:	mro}', "");
-    Expect(0, 92783, '\P{Is_Script_Extensions:	mro}', "");
-    Expect(1, 92783, '\P{^Is_Script_Extensions:	mro}', "");
-    Expect(0, 92784, '\p{Is_Script_Extensions:	mro}', "");
-    Expect(1, 92784, '\p{^Is_Script_Extensions:	mro}', "");
-    Expect(1, 92784, '\P{Is_Script_Extensions:	mro}', "");
-    Expect(0, 92784, '\P{^Is_Script_Extensions:	mro}', "");
-    Expect(1, 92783, '\p{Is_Script_Extensions=	_mro}', "");
-    Expect(0, 92783, '\p{^Is_Script_Extensions=	_mro}', "");
-    Expect(0, 92783, '\P{Is_Script_Extensions=	_mro}', "");
-    Expect(1, 92783, '\P{^Is_Script_Extensions=	_mro}', "");
-    Expect(0, 92784, '\p{Is_Script_Extensions=	_mro}', "");
-    Expect(1, 92784, '\p{^Is_Script_Extensions=	_mro}', "");
-    Expect(1, 92784, '\P{Is_Script_Extensions=	_mro}', "");
-    Expect(0, 92784, '\P{^Is_Script_Extensions=	_mro}', "");
-    Error('\p{Is_Scx= :=mroo}');
-    Error('\P{Is_Scx= :=mroo}');
+    Expect(1, 92783, '\p{Scx: --Mroo}', "");
+    Expect(0, 92783, '\p{^Scx: --Mroo}', "");
+    Expect(0, 92783, '\P{Scx: --Mroo}', "");
+    Expect(1, 92783, '\P{^Scx: --Mroo}', "");
+    Expect(0, 92784, '\p{Scx: --Mroo}', "");
+    Expect(1, 92784, '\p{^Scx: --Mroo}', "");
+    Expect(1, 92784, '\P{Scx: --Mroo}', "");
+    Expect(0, 92784, '\P{^Scx: --Mroo}', "");
+    Error('\p{Is_Script_Extensions=_MRO/a/}');
+    Error('\P{Is_Script_Extensions=_MRO/a/}');
+    Expect(1, 92783, '\p{Is_Script_Extensions=mro}', "");
+    Expect(0, 92783, '\p{^Is_Script_Extensions=mro}', "");
+    Expect(0, 92783, '\P{Is_Script_Extensions=mro}', "");
+    Expect(1, 92783, '\P{^Is_Script_Extensions=mro}', "");
+    Expect(0, 92784, '\p{Is_Script_Extensions=mro}', "");
+    Expect(1, 92784, '\p{^Is_Script_Extensions=mro}', "");
+    Expect(1, 92784, '\P{Is_Script_Extensions=mro}', "");
+    Expect(0, 92784, '\P{^Is_Script_Extensions=mro}', "");
+    Expect(1, 92783, '\p{Is_Script_Extensions=	MRO}', "");
+    Expect(0, 92783, '\p{^Is_Script_Extensions=	MRO}', "");
+    Expect(0, 92783, '\P{Is_Script_Extensions=	MRO}', "");
+    Expect(1, 92783, '\P{^Is_Script_Extensions=	MRO}', "");
+    Expect(0, 92784, '\p{Is_Script_Extensions=	MRO}', "");
+    Expect(1, 92784, '\p{^Is_Script_Extensions=	MRO}', "");
+    Expect(1, 92784, '\P{Is_Script_Extensions=	MRO}', "");
+    Expect(0, 92784, '\P{^Is_Script_Extensions=	MRO}', "");
+    Error('\p{Is_Scx=_Mroo/a/}');
+    Error('\P{Is_Scx=_Mroo/a/}');
     Expect(1, 92783, '\p{Is_Scx=mroo}', "");
     Expect(0, 92783, '\p{^Is_Scx=mroo}', "");
     Expect(0, 92783, '\P{Is_Scx=mroo}', "");
@@ -148527,16 +149911,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92784, '\p{^Is_Scx=mroo}', "");
     Expect(1, 92784, '\P{Is_Scx=mroo}', "");
     Expect(0, 92784, '\P{^Is_Scx=mroo}', "");
-    Expect(1, 92783, '\p{Is_Scx=_-mroo}', "");
-    Expect(0, 92783, '\p{^Is_Scx=_-mroo}', "");
-    Expect(0, 92783, '\P{Is_Scx=_-mroo}', "");
-    Expect(1, 92783, '\P{^Is_Scx=_-mroo}', "");
-    Expect(0, 92784, '\p{Is_Scx=_-mroo}', "");
-    Expect(1, 92784, '\p{^Is_Scx=_-mroo}', "");
-    Expect(1, 92784, '\P{Is_Scx=_-mroo}', "");
-    Expect(0, 92784, '\P{^Is_Scx=_-mroo}', "");
-    Error('\p{Script_Extensions=-_Meetei_MAYEK/a/}');
-    Error('\P{Script_Extensions=-_Meetei_MAYEK/a/}');
+    Expect(1, 92783, '\p{Is_Scx=	 mroo}', "");
+    Expect(0, 92783, '\p{^Is_Scx=	 mroo}', "");
+    Expect(0, 92783, '\P{Is_Scx=	 mroo}', "");
+    Expect(1, 92783, '\P{^Is_Scx=	 mroo}', "");
+    Expect(0, 92784, '\p{Is_Scx=	 mroo}', "");
+    Expect(1, 92784, '\p{^Is_Scx=	 mroo}', "");
+    Expect(1, 92784, '\P{Is_Scx=	 mroo}', "");
+    Expect(0, 92784, '\P{^Is_Scx=	 mroo}', "");
+    Error('\p{Script_Extensions= :=Meetei_mayek}');
+    Error('\P{Script_Extensions= :=Meetei_mayek}');
     Expect(1, 44025, '\p{Script_Extensions=:\AMeetei_Mayek\z:}', "");;
     Expect(0, 44026, '\p{Script_Extensions=:\AMeetei_Mayek\z:}', "");;
     Expect(1, 44025, '\p{Script_Extensions=meeteimayek}', "");
@@ -148549,38 +149933,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 44026, '\P{^Script_Extensions=meeteimayek}', "");
     Expect(1, 44025, '\p{Script_Extensions=:\Ameeteimayek\z:}', "");;
     Expect(0, 44026, '\p{Script_Extensions=:\Ameeteimayek\z:}', "");;
-    Expect(1, 44025, '\p{Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(0, 44025, '\p{^Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(0, 44025, '\P{Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(1, 44025, '\P{^Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(0, 44026, '\p{Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(1, 44026, '\p{^Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(1, 44026, '\P{Script_Extensions=_	MEETEI_Mayek}', "");
-    Expect(0, 44026, '\P{^Script_Extensions=_	MEETEI_Mayek}', "");
-    Error('\p{Scx=:=	Mtei}');
-    Error('\P{Scx=:=	Mtei}');
+    Expect(1, 44025, '\p{Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(0, 44025, '\p{^Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(0, 44025, '\P{Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(1, 44025, '\P{^Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(0, 44026, '\p{Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(1, 44026, '\p{^Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(1, 44026, '\P{Script_Extensions= -Meetei_MAYEK}', "");
+    Expect(0, 44026, '\P{^Script_Extensions= -Meetei_MAYEK}', "");
+    Error('\p{Scx=:=_Mtei}');
+    Error('\P{Scx=:=_Mtei}');
     Expect(1, 44025, '\p{Scx=:\AMtei\z:}', "");;
     Expect(0, 44026, '\p{Scx=:\AMtei\z:}', "");;
-    Expect(1, 44025, '\p{Scx=mtei}', "");
-    Expect(0, 44025, '\p{^Scx=mtei}', "");
-    Expect(0, 44025, '\P{Scx=mtei}', "");
-    Expect(1, 44025, '\P{^Scx=mtei}', "");
-    Expect(0, 44026, '\p{Scx=mtei}', "");
-    Expect(1, 44026, '\p{^Scx=mtei}', "");
-    Expect(1, 44026, '\P{Scx=mtei}', "");
-    Expect(0, 44026, '\P{^Scx=mtei}', "");
+    Expect(1, 44025, '\p{Scx: mtei}', "");
+    Expect(0, 44025, '\p{^Scx: mtei}', "");
+    Expect(0, 44025, '\P{Scx: mtei}', "");
+    Expect(1, 44025, '\P{^Scx: mtei}', "");
+    Expect(0, 44026, '\p{Scx: mtei}', "");
+    Expect(1, 44026, '\p{^Scx: mtei}', "");
+    Expect(1, 44026, '\P{Scx: mtei}', "");
+    Expect(0, 44026, '\P{^Scx: mtei}', "");
     Expect(1, 44025, '\p{Scx=:\Amtei\z:}', "");;
     Expect(0, 44026, '\p{Scx=:\Amtei\z:}', "");;
-    Expect(1, 44025, '\p{Scx=	 Mtei}', "");
-    Expect(0, 44025, '\p{^Scx=	 Mtei}', "");
-    Expect(0, 44025, '\P{Scx=	 Mtei}', "");
-    Expect(1, 44025, '\P{^Scx=	 Mtei}', "");
-    Expect(0, 44026, '\p{Scx=	 Mtei}', "");
-    Expect(1, 44026, '\p{^Scx=	 Mtei}', "");
-    Expect(1, 44026, '\P{Scx=	 Mtei}', "");
-    Expect(0, 44026, '\P{^Scx=	 Mtei}', "");
-    Error('\p{Is_Script_Extensions=_Meetei_Mayek/a/}');
-    Error('\P{Is_Script_Extensions=_Meetei_Mayek/a/}');
+    Expect(1, 44025, '\p{Scx=- Mtei}', "");
+    Expect(0, 44025, '\p{^Scx=- Mtei}', "");
+    Expect(0, 44025, '\P{Scx=- Mtei}', "");
+    Expect(1, 44025, '\P{^Scx=- Mtei}', "");
+    Expect(0, 44026, '\p{Scx=- Mtei}', "");
+    Expect(1, 44026, '\p{^Scx=- Mtei}', "");
+    Expect(1, 44026, '\P{Scx=- Mtei}', "");
+    Expect(0, 44026, '\P{^Scx=- Mtei}', "");
+    Error('\p{Is_Script_Extensions=/a/ _Meetei_MAYEK}');
+    Error('\P{Is_Script_Extensions=/a/ _Meetei_MAYEK}');
     Expect(1, 44025, '\p{Is_Script_Extensions=meeteimayek}', "");
     Expect(0, 44025, '\p{^Is_Script_Extensions=meeteimayek}', "");
     Expect(0, 44025, '\P{Is_Script_Extensions=meeteimayek}', "");
@@ -148589,16 +149973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 44026, '\p{^Is_Script_Extensions=meeteimayek}', "");
     Expect(1, 44026, '\P{Is_Script_Extensions=meeteimayek}', "");
     Expect(0, 44026, '\P{^Is_Script_Extensions=meeteimayek}', "");
-    Expect(1, 44025, '\p{Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(0, 44025, '\p{^Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(0, 44025, '\P{Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(1, 44025, '\P{^Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(0, 44026, '\p{Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(1, 44026, '\p{^Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(1, 44026, '\P{Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Expect(0, 44026, '\P{^Is_Script_Extensions= _Meetei_MAYEK}', "");
-    Error('\p{Is_Scx:__MTEI:=}');
-    Error('\P{Is_Scx:__MTEI:=}');
+    Expect(1, 44025, '\p{Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(0, 44025, '\p{^Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(0, 44025, '\P{Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(1, 44025, '\P{^Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(0, 44026, '\p{Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(1, 44026, '\p{^Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(1, 44026, '\P{Is_Script_Extensions=	meetei_mayek}', "");
+    Expect(0, 44026, '\P{^Is_Script_Extensions=	meetei_mayek}', "");
+    Error('\p{Is_Scx=__mtei/a/}');
+    Error('\P{Is_Scx=__mtei/a/}');
     Expect(1, 44025, '\p{Is_Scx=mtei}', "");
     Expect(0, 44025, '\p{^Is_Scx=mtei}', "");
     Expect(0, 44025, '\P{Is_Scx=mtei}', "");
@@ -148607,16 +149991,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 44026, '\p{^Is_Scx=mtei}', "");
     Expect(1, 44026, '\P{Is_Scx=mtei}', "");
     Expect(0, 44026, '\P{^Is_Scx=mtei}', "");
-    Expect(1, 44025, '\p{Is_Scx=-mtei}', "");
-    Expect(0, 44025, '\p{^Is_Scx=-mtei}', "");
-    Expect(0, 44025, '\P{Is_Scx=-mtei}', "");
-    Expect(1, 44025, '\P{^Is_Scx=-mtei}', "");
-    Expect(0, 44026, '\p{Is_Scx=-mtei}', "");
-    Expect(1, 44026, '\p{^Is_Scx=-mtei}', "");
-    Expect(1, 44026, '\P{Is_Scx=-mtei}', "");
-    Expect(0, 44026, '\P{^Is_Scx=-mtei}', "");
-    Error('\p{Script_Extensions= /a/Multani}');
-    Error('\P{Script_Extensions= /a/Multani}');
+    Expect(1, 44025, '\p{Is_Scx= 	Mtei}', "");
+    Expect(0, 44025, '\p{^Is_Scx= 	Mtei}', "");
+    Expect(0, 44025, '\P{Is_Scx= 	Mtei}', "");
+    Expect(1, 44025, '\P{^Is_Scx= 	Mtei}', "");
+    Expect(0, 44026, '\p{Is_Scx= 	Mtei}', "");
+    Expect(1, 44026, '\p{^Is_Scx= 	Mtei}', "");
+    Expect(1, 44026, '\P{Is_Scx= 	Mtei}', "");
+    Expect(0, 44026, '\P{^Is_Scx= 	Mtei}', "");
+    Error('\p{Script_Extensions:	 -Multani:=}');
+    Error('\P{Script_Extensions:	 -Multani:=}');
     Expect(1, 70313, '\p{Script_Extensions=:\AMultani\z:}', "");;
     Expect(0, 70314, '\p{Script_Extensions=:\AMultani\z:}', "");;
     Expect(1, 70313, '\p{Script_Extensions=multani}', "");
@@ -148629,16 +150013,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70314, '\P{^Script_Extensions=multani}', "");
     Expect(1, 70313, '\p{Script_Extensions=:\Amultani\z:}', "");;
     Expect(0, 70314, '\p{Script_Extensions=:\Amultani\z:}', "");;
-    Expect(1, 70313, '\p{Script_Extensions:-multani}', "");
-    Expect(0, 70313, '\p{^Script_Extensions:-multani}', "");
-    Expect(0, 70313, '\P{Script_Extensions:-multani}', "");
-    Expect(1, 70313, '\P{^Script_Extensions:-multani}', "");
-    Expect(0, 70314, '\p{Script_Extensions:-multani}', "");
-    Expect(1, 70314, '\p{^Script_Extensions:-multani}', "");
-    Expect(1, 70314, '\P{Script_Extensions:-multani}', "");
-    Expect(0, 70314, '\P{^Script_Extensions:-multani}', "");
-    Error('\p{Scx=:=	_MULT}');
-    Error('\P{Scx=:=	_MULT}');
+    Expect(1, 70313, '\p{Script_Extensions=_ Multani}', "");
+    Expect(0, 70313, '\p{^Script_Extensions=_ Multani}', "");
+    Expect(0, 70313, '\P{Script_Extensions=_ Multani}', "");
+    Expect(1, 70313, '\P{^Script_Extensions=_ Multani}', "");
+    Expect(0, 70314, '\p{Script_Extensions=_ Multani}', "");
+    Expect(1, 70314, '\p{^Script_Extensions=_ Multani}', "");
+    Expect(1, 70314, '\P{Script_Extensions=_ Multani}', "");
+    Expect(0, 70314, '\P{^Script_Extensions=_ Multani}', "");
+    Error('\p{Scx=-:=Mult}');
+    Error('\P{Scx=-:=Mult}');
     Expect(1, 70313, '\p{Scx=:\AMult\z:}', "");;
     Expect(0, 70314, '\p{Scx=:\AMult\z:}', "");;
     Expect(1, 70313, '\p{Scx=mult}', "");
@@ -148651,16 +150035,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70314, '\P{^Scx=mult}', "");
     Expect(1, 70313, '\p{Scx=:\Amult\z:}', "");;
     Expect(0, 70314, '\p{Scx=:\Amult\z:}', "");;
-    Expect(1, 70313, '\p{Scx: - Mult}', "");
-    Expect(0, 70313, '\p{^Scx: - Mult}', "");
-    Expect(0, 70313, '\P{Scx: - Mult}', "");
-    Expect(1, 70313, '\P{^Scx: - Mult}', "");
-    Expect(0, 70314, '\p{Scx: - Mult}', "");
-    Expect(1, 70314, '\p{^Scx: - Mult}', "");
-    Expect(1, 70314, '\P{Scx: - Mult}', "");
-    Expect(0, 70314, '\P{^Scx: - Mult}', "");
-    Error('\p{Is_Script_Extensions=_:=Multani}');
-    Error('\P{Is_Script_Extensions=_:=Multani}');
+    Expect(1, 70313, '\p{Scx=-_mult}', "");
+    Expect(0, 70313, '\p{^Scx=-_mult}', "");
+    Expect(0, 70313, '\P{Scx=-_mult}', "");
+    Expect(1, 70313, '\P{^Scx=-_mult}', "");
+    Expect(0, 70314, '\p{Scx=-_mult}', "");
+    Expect(1, 70314, '\p{^Scx=-_mult}', "");
+    Expect(1, 70314, '\P{Scx=-_mult}', "");
+    Expect(0, 70314, '\P{^Scx=-_mult}', "");
+    Error('\p{Is_Script_Extensions=-/a/multani}');
+    Error('\P{Is_Script_Extensions=-/a/multani}');
     Expect(1, 70313, '\p{Is_Script_Extensions=multani}', "");
     Expect(0, 70313, '\p{^Is_Script_Extensions=multani}', "");
     Expect(0, 70313, '\P{Is_Script_Extensions=multani}', "");
@@ -148669,16 +150053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70314, '\p{^Is_Script_Extensions=multani}', "");
     Expect(1, 70314, '\P{Is_Script_Extensions=multani}', "");
     Expect(0, 70314, '\P{^Is_Script_Extensions=multani}', "");
-    Expect(1, 70313, '\p{Is_Script_Extensions=_	MULTANI}', "");
-    Expect(0, 70313, '\p{^Is_Script_Extensions=_	MULTANI}', "");
-    Expect(0, 70313, '\P{Is_Script_Extensions=_	MULTANI}', "");
-    Expect(1, 70313, '\P{^Is_Script_Extensions=_	MULTANI}', "");
-    Expect(0, 70314, '\p{Is_Script_Extensions=_	MULTANI}', "");
-    Expect(1, 70314, '\p{^Is_Script_Extensions=_	MULTANI}', "");
-    Expect(1, 70314, '\P{Is_Script_Extensions=_	MULTANI}', "");
-    Expect(0, 70314, '\P{^Is_Script_Extensions=_	MULTANI}', "");
-    Error('\p{Is_Scx: :=_ Mult}');
-    Error('\P{Is_Scx: :=_ Mult}');
+    Expect(1, 70313, '\p{Is_Script_Extensions=-multani}', "");
+    Expect(0, 70313, '\p{^Is_Script_Extensions=-multani}', "");
+    Expect(0, 70313, '\P{Is_Script_Extensions=-multani}', "");
+    Expect(1, 70313, '\P{^Is_Script_Extensions=-multani}', "");
+    Expect(0, 70314, '\p{Is_Script_Extensions=-multani}', "");
+    Expect(1, 70314, '\p{^Is_Script_Extensions=-multani}', "");
+    Expect(1, 70314, '\P{Is_Script_Extensions=-multani}', "");
+    Expect(0, 70314, '\P{^Is_Script_Extensions=-multani}', "");
+    Error('\p{Is_Scx=	:=mult}');
+    Error('\P{Is_Scx=	:=mult}');
     Expect(1, 70313, '\p{Is_Scx=mult}', "");
     Expect(0, 70313, '\p{^Is_Scx=mult}', "");
     Expect(0, 70313, '\P{Is_Scx=mult}', "");
@@ -148687,16 +150071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70314, '\p{^Is_Scx=mult}', "");
     Expect(1, 70314, '\P{Is_Scx=mult}', "");
     Expect(0, 70314, '\P{^Is_Scx=mult}', "");
-    Expect(1, 70313, '\p{Is_Scx:	_MULT}', "");
-    Expect(0, 70313, '\p{^Is_Scx:	_MULT}', "");
-    Expect(0, 70313, '\P{Is_Scx:	_MULT}', "");
-    Expect(1, 70313, '\P{^Is_Scx:	_MULT}', "");
-    Expect(0, 70314, '\p{Is_Scx:	_MULT}', "");
-    Expect(1, 70314, '\p{^Is_Scx:	_MULT}', "");
-    Expect(1, 70314, '\P{Is_Scx:	_MULT}', "");
-    Expect(0, 70314, '\P{^Is_Scx:	_MULT}', "");
-    Error('\p{Script_Extensions=:=myanmar}');
-    Error('\P{Script_Extensions=:=myanmar}');
+    Expect(1, 70313, '\p{Is_Scx=_	mult}', "");
+    Expect(0, 70313, '\p{^Is_Scx=_	mult}', "");
+    Expect(0, 70313, '\P{Is_Scx=_	mult}', "");
+    Expect(1, 70313, '\P{^Is_Scx=_	mult}', "");
+    Expect(0, 70314, '\p{Is_Scx=_	mult}', "");
+    Expect(1, 70314, '\p{^Is_Scx=_	mult}', "");
+    Expect(1, 70314, '\P{Is_Scx=_	mult}', "");
+    Expect(0, 70314, '\P{^Is_Scx=_	mult}', "");
+    Error('\p{Script_Extensions=/a/	myanmar}');
+    Error('\P{Script_Extensions=/a/	myanmar}');
     Expect(1, 43647, '\p{Script_Extensions=:\AMyanmar\z:}', "");;
     Expect(0, 43648, '\p{Script_Extensions=:\AMyanmar\z:}', "");;
     Expect(1, 43647, '\p{Script_Extensions=myanmar}', "");
@@ -148709,38 +150093,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43648, '\P{^Script_Extensions=myanmar}', "");
     Expect(1, 43647, '\p{Script_Extensions=:\Amyanmar\z:}', "");;
     Expect(0, 43648, '\p{Script_Extensions=:\Amyanmar\z:}', "");;
-    Expect(1, 43647, '\p{Script_Extensions= myanmar}', "");
-    Expect(0, 43647, '\p{^Script_Extensions= myanmar}', "");
-    Expect(0, 43647, '\P{Script_Extensions= myanmar}', "");
-    Expect(1, 43647, '\P{^Script_Extensions= myanmar}', "");
-    Expect(0, 43648, '\p{Script_Extensions= myanmar}', "");
-    Expect(1, 43648, '\p{^Script_Extensions= myanmar}', "");
-    Expect(1, 43648, '\P{Script_Extensions= myanmar}', "");
-    Expect(0, 43648, '\P{^Script_Extensions= myanmar}', "");
-    Error('\p{Scx= :=Mymr}');
-    Error('\P{Scx= :=Mymr}');
+    Expect(1, 43647, '\p{Script_Extensions= _Myanmar}', "");
+    Expect(0, 43647, '\p{^Script_Extensions= _Myanmar}', "");
+    Expect(0, 43647, '\P{Script_Extensions= _Myanmar}', "");
+    Expect(1, 43647, '\P{^Script_Extensions= _Myanmar}', "");
+    Expect(0, 43648, '\p{Script_Extensions= _Myanmar}', "");
+    Expect(1, 43648, '\p{^Script_Extensions= _Myanmar}', "");
+    Expect(1, 43648, '\P{Script_Extensions= _Myanmar}', "");
+    Expect(0, 43648, '\P{^Script_Extensions= _Myanmar}', "");
+    Error('\p{Scx=	Mymr/a/}');
+    Error('\P{Scx=	Mymr/a/}');
     Expect(1, 43647, '\p{Scx=:\AMymr\z:}', "");;
     Expect(0, 43648, '\p{Scx=:\AMymr\z:}', "");;
-    Expect(1, 43647, '\p{Scx=mymr}', "");
-    Expect(0, 43647, '\p{^Scx=mymr}', "");
-    Expect(0, 43647, '\P{Scx=mymr}', "");
-    Expect(1, 43647, '\P{^Scx=mymr}', "");
-    Expect(0, 43648, '\p{Scx=mymr}', "");
-    Expect(1, 43648, '\p{^Scx=mymr}', "");
-    Expect(1, 43648, '\P{Scx=mymr}', "");
-    Expect(0, 43648, '\P{^Scx=mymr}', "");
+    Expect(1, 43647, '\p{Scx:mymr}', "");
+    Expect(0, 43647, '\p{^Scx:mymr}', "");
+    Expect(0, 43647, '\P{Scx:mymr}', "");
+    Expect(1, 43647, '\P{^Scx:mymr}', "");
+    Expect(0, 43648, '\p{Scx:mymr}', "");
+    Expect(1, 43648, '\p{^Scx:mymr}', "");
+    Expect(1, 43648, '\P{Scx:mymr}', "");
+    Expect(0, 43648, '\P{^Scx:mymr}', "");
     Expect(1, 43647, '\p{Scx=:\Amymr\z:}', "");;
     Expect(0, 43648, '\p{Scx=:\Amymr\z:}', "");;
-    Expect(1, 43647, '\p{Scx=  Mymr}', "");
-    Expect(0, 43647, '\p{^Scx=  Mymr}', "");
-    Expect(0, 43647, '\P{Scx=  Mymr}', "");
-    Expect(1, 43647, '\P{^Scx=  Mymr}', "");
-    Expect(0, 43648, '\p{Scx=  Mymr}', "");
-    Expect(1, 43648, '\p{^Scx=  Mymr}', "");
-    Expect(1, 43648, '\P{Scx=  Mymr}', "");
-    Expect(0, 43648, '\P{^Scx=  Mymr}', "");
-    Error('\p{Is_Script_Extensions=__myanmar:=}');
-    Error('\P{Is_Script_Extensions=__myanmar:=}');
+    Expect(1, 43647, '\p{Scx:     Mymr}', "");
+    Expect(0, 43647, '\p{^Scx:     Mymr}', "");
+    Expect(0, 43647, '\P{Scx:     Mymr}', "");
+    Expect(1, 43647, '\P{^Scx:     Mymr}', "");
+    Expect(0, 43648, '\p{Scx:     Mymr}', "");
+    Expect(1, 43648, '\p{^Scx:     Mymr}', "");
+    Expect(1, 43648, '\P{Scx:     Mymr}', "");
+    Expect(0, 43648, '\P{^Scx:     Mymr}', "");
+    Error('\p{Is_Script_Extensions=/a/ _myanmar}');
+    Error('\P{Is_Script_Extensions=/a/ _myanmar}');
     Expect(1, 43647, '\p{Is_Script_Extensions=myanmar}', "");
     Expect(0, 43647, '\p{^Is_Script_Extensions=myanmar}', "");
     Expect(0, 43647, '\P{Is_Script_Extensions=myanmar}', "");
@@ -148749,16 +150133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43648, '\p{^Is_Script_Extensions=myanmar}', "");
     Expect(1, 43648, '\P{Is_Script_Extensions=myanmar}', "");
     Expect(0, 43648, '\P{^Is_Script_Extensions=myanmar}', "");
-    Expect(1, 43647, '\p{Is_Script_Extensions=_Myanmar}', "");
-    Expect(0, 43647, '\p{^Is_Script_Extensions=_Myanmar}', "");
-    Expect(0, 43647, '\P{Is_Script_Extensions=_Myanmar}', "");
-    Expect(1, 43647, '\P{^Is_Script_Extensions=_Myanmar}', "");
-    Expect(0, 43648, '\p{Is_Script_Extensions=_Myanmar}', "");
-    Expect(1, 43648, '\p{^Is_Script_Extensions=_Myanmar}', "");
-    Expect(1, 43648, '\P{Is_Script_Extensions=_Myanmar}', "");
-    Expect(0, 43648, '\P{^Is_Script_Extensions=_Myanmar}', "");
-    Error('\p{Is_Scx=_Mymr:=}');
-    Error('\P{Is_Scx=_Mymr:=}');
+    Expect(1, 43647, '\p{Is_Script_Extensions=	 Myanmar}', "");
+    Expect(0, 43647, '\p{^Is_Script_Extensions=	 Myanmar}', "");
+    Expect(0, 43647, '\P{Is_Script_Extensions=	 Myanmar}', "");
+    Expect(1, 43647, '\P{^Is_Script_Extensions=	 Myanmar}', "");
+    Expect(0, 43648, '\p{Is_Script_Extensions=	 Myanmar}', "");
+    Expect(1, 43648, '\p{^Is_Script_Extensions=	 Myanmar}', "");
+    Expect(1, 43648, '\P{Is_Script_Extensions=	 Myanmar}', "");
+    Expect(0, 43648, '\P{^Is_Script_Extensions=	 Myanmar}', "");
+    Error('\p{Is_Scx=	 Mymr:=}');
+    Error('\P{Is_Scx=	 Mymr:=}');
     Expect(1, 43647, '\p{Is_Scx=mymr}', "");
     Expect(0, 43647, '\p{^Is_Scx=mymr}', "");
     Expect(0, 43647, '\P{Is_Scx=mymr}', "");
@@ -148767,16 +150151,96 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43648, '\p{^Is_Scx=mymr}', "");
     Expect(1, 43648, '\P{Is_Scx=mymr}', "");
     Expect(0, 43648, '\P{^Is_Scx=mymr}', "");
-    Expect(1, 43647, '\p{Is_Scx:   --Mymr}', "");
-    Expect(0, 43647, '\p{^Is_Scx:   --Mymr}', "");
-    Expect(0, 43647, '\P{Is_Scx:   --Mymr}', "");
-    Expect(1, 43647, '\P{^Is_Scx:   --Mymr}', "");
-    Expect(0, 43648, '\p{Is_Scx:   --Mymr}', "");
-    Expect(1, 43648, '\p{^Is_Scx:   --Mymr}', "");
-    Expect(1, 43648, '\P{Is_Scx:   --Mymr}', "");
-    Expect(0, 43648, '\P{^Is_Scx:   --Mymr}', "");
-    Error('\p{Script_Extensions=:= 	Nandinagari}');
-    Error('\P{Script_Extensions=:= 	Nandinagari}');
+    Expect(1, 43647, '\p{Is_Scx= Mymr}', "");
+    Expect(0, 43647, '\p{^Is_Scx= Mymr}', "");
+    Expect(0, 43647, '\P{Is_Scx= Mymr}', "");
+    Expect(1, 43647, '\P{^Is_Scx= Mymr}', "");
+    Expect(0, 43648, '\p{Is_Scx= Mymr}', "");
+    Expect(1, 43648, '\p{^Is_Scx= Mymr}', "");
+    Expect(1, 43648, '\P{Is_Scx= Mymr}', "");
+    Expect(0, 43648, '\P{^Is_Scx= Mymr}', "");
+    Error('\p{Script_Extensions=:=	Nag_mundari}');
+    Error('\P{Script_Extensions=:=	Nag_mundari}');
+    Expect(1, 124153, '\p{Script_Extensions=:\ANag_Mundari\z:}', "");;
+    Expect(0, 124154, '\p{Script_Extensions=:\ANag_Mundari\z:}', "");;
+    Expect(1, 124153, '\p{Script_Extensions:	nagmundari}', "");
+    Expect(0, 124153, '\p{^Script_Extensions:	nagmundari}', "");
+    Expect(0, 124153, '\P{Script_Extensions:	nagmundari}', "");
+    Expect(1, 124153, '\P{^Script_Extensions:	nagmundari}', "");
+    Expect(0, 124154, '\p{Script_Extensions:	nagmundari}', "");
+    Expect(1, 124154, '\p{^Script_Extensions:	nagmundari}', "");
+    Expect(1, 124154, '\P{Script_Extensions:	nagmundari}', "");
+    Expect(0, 124154, '\P{^Script_Extensions:	nagmundari}', "");
+    Expect(1, 124153, '\p{Script_Extensions=:\Anagmundari\z:}', "");;
+    Expect(0, 124154, '\p{Script_Extensions=:\Anagmundari\z:}', "");;
+    Expect(1, 124153, '\p{Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(0, 124153, '\p{^Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(0, 124153, '\P{Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(1, 124153, '\P{^Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(0, 124154, '\p{Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(1, 124154, '\p{^Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(1, 124154, '\P{Script_Extensions= -Nag_MUNDARI}', "");
+    Expect(0, 124154, '\P{^Script_Extensions= -Nag_MUNDARI}', "");
+    Error('\p{Scx=-_Nagm/a/}');
+    Error('\P{Scx=-_Nagm/a/}');
+    Expect(1, 124153, '\p{Scx=:\ANagm\z:}', "");;
+    Expect(0, 124154, '\p{Scx=:\ANagm\z:}', "");;
+    Expect(1, 124153, '\p{Scx:nagm}', "");
+    Expect(0, 124153, '\p{^Scx:nagm}', "");
+    Expect(0, 124153, '\P{Scx:nagm}', "");
+    Expect(1, 124153, '\P{^Scx:nagm}', "");
+    Expect(0, 124154, '\p{Scx:nagm}', "");
+    Expect(1, 124154, '\p{^Scx:nagm}', "");
+    Expect(1, 124154, '\P{Scx:nagm}', "");
+    Expect(0, 124154, '\P{^Scx:nagm}', "");
+    Expect(1, 124153, '\p{Scx=:\Anagm\z:}', "");;
+    Expect(0, 124154, '\p{Scx=:\Anagm\z:}', "");;
+    Expect(1, 124153, '\p{Scx= Nagm}', "");
+    Expect(0, 124153, '\p{^Scx= Nagm}', "");
+    Expect(0, 124153, '\P{Scx= Nagm}', "");
+    Expect(1, 124153, '\P{^Scx= Nagm}', "");
+    Expect(0, 124154, '\p{Scx= Nagm}', "");
+    Expect(1, 124154, '\p{^Scx= Nagm}', "");
+    Expect(1, 124154, '\P{Scx= Nagm}', "");
+    Expect(0, 124154, '\P{^Scx= Nagm}', "");
+    Error('\p{Is_Script_Extensions=/a/_Nag_Mundari}');
+    Error('\P{Is_Script_Extensions=/a/_Nag_Mundari}');
+    Expect(1, 124153, '\p{Is_Script_Extensions=nagmundari}', "");
+    Expect(0, 124153, '\p{^Is_Script_Extensions=nagmundari}', "");
+    Expect(0, 124153, '\P{Is_Script_Extensions=nagmundari}', "");
+    Expect(1, 124153, '\P{^Is_Script_Extensions=nagmundari}', "");
+    Expect(0, 124154, '\p{Is_Script_Extensions=nagmundari}', "");
+    Expect(1, 124154, '\p{^Is_Script_Extensions=nagmundari}', "");
+    Expect(1, 124154, '\P{Is_Script_Extensions=nagmundari}', "");
+    Expect(0, 124154, '\P{^Is_Script_Extensions=nagmundari}', "");
+    Expect(1, 124153, '\p{Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(0, 124153, '\p{^Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(0, 124153, '\P{Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(1, 124153, '\P{^Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(0, 124154, '\p{Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(1, 124154, '\p{^Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(1, 124154, '\P{Is_Script_Extensions=--nag_Mundari}', "");
+    Expect(0, 124154, '\P{^Is_Script_Extensions=--nag_Mundari}', "");
+    Error('\p{Is_Scx= :=Nagm}');
+    Error('\P{Is_Scx= :=Nagm}');
+    Expect(1, 124153, '\p{Is_Scx=nagm}', "");
+    Expect(0, 124153, '\p{^Is_Scx=nagm}', "");
+    Expect(0, 124153, '\P{Is_Scx=nagm}', "");
+    Expect(1, 124153, '\P{^Is_Scx=nagm}', "");
+    Expect(0, 124154, '\p{Is_Scx=nagm}', "");
+    Expect(1, 124154, '\p{^Is_Scx=nagm}', "");
+    Expect(1, 124154, '\P{Is_Scx=nagm}', "");
+    Expect(0, 124154, '\P{^Is_Scx=nagm}', "");
+    Expect(1, 124153, '\p{Is_Scx= 	nagm}', "");
+    Expect(0, 124153, '\p{^Is_Scx= 	nagm}', "");
+    Expect(0, 124153, '\P{Is_Scx= 	nagm}', "");
+    Expect(1, 124153, '\P{^Is_Scx= 	nagm}', "");
+    Expect(0, 124154, '\p{Is_Scx= 	nagm}', "");
+    Expect(1, 124154, '\p{^Is_Scx= 	nagm}', "");
+    Expect(1, 124154, '\P{Is_Scx= 	nagm}', "");
+    Expect(0, 124154, '\P{^Is_Scx= 	nagm}', "");
+    Error('\p{Script_Extensions=	:=Nandinagari}');
+    Error('\P{Script_Extensions=	:=Nandinagari}');
     Expect(1, 72164, '\p{Script_Extensions=:\ANandinagari\z:}', "");;
     Expect(0, 72165, '\p{Script_Extensions=:\ANandinagari\z:}', "");;
     Expect(1, 72164, '\p{Script_Extensions=nandinagari}', "");
@@ -148789,16 +150253,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72165, '\P{^Script_Extensions=nandinagari}', "");
     Expect(1, 72164, '\p{Script_Extensions=:\Anandinagari\z:}', "");;
     Expect(0, 72165, '\p{Script_Extensions=:\Anandinagari\z:}', "");;
-    Expect(1, 72164, '\p{Script_Extensions:   _NANDINAGARI}', "");
-    Expect(0, 72164, '\p{^Script_Extensions:   _NANDINAGARI}', "");
-    Expect(0, 72164, '\P{Script_Extensions:   _NANDINAGARI}', "");
-    Expect(1, 72164, '\P{^Script_Extensions:   _NANDINAGARI}', "");
-    Expect(0, 72165, '\p{Script_Extensions:   _NANDINAGARI}', "");
-    Expect(1, 72165, '\p{^Script_Extensions:   _NANDINAGARI}', "");
-    Expect(1, 72165, '\P{Script_Extensions:   _NANDINAGARI}', "");
-    Expect(0, 72165, '\P{^Script_Extensions:   _NANDINAGARI}', "");
-    Error('\p{Scx= NAND/a/}');
-    Error('\P{Scx= NAND/a/}');
+    Expect(1, 72164, '\p{Script_Extensions= _NANDINAGARI}', "");
+    Expect(0, 72164, '\p{^Script_Extensions= _NANDINAGARI}', "");
+    Expect(0, 72164, '\P{Script_Extensions= _NANDINAGARI}', "");
+    Expect(1, 72164, '\P{^Script_Extensions= _NANDINAGARI}', "");
+    Expect(0, 72165, '\p{Script_Extensions= _NANDINAGARI}', "");
+    Expect(1, 72165, '\p{^Script_Extensions= _NANDINAGARI}', "");
+    Expect(1, 72165, '\P{Script_Extensions= _NANDINAGARI}', "");
+    Expect(0, 72165, '\P{^Script_Extensions= _NANDINAGARI}', "");
+    Error('\p{Scx=	 Nand/a/}');
+    Error('\P{Scx=	 Nand/a/}');
     Expect(1, 72164, '\p{Scx=:\ANand\z:}', "");;
     Expect(0, 72165, '\p{Scx=:\ANand\z:}', "");;
     Expect(1, 72164, '\p{Scx=nand}', "");
@@ -148811,34 +150275,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72165, '\P{^Scx=nand}', "");
     Expect(1, 72164, '\p{Scx=:\Anand\z:}', "");;
     Expect(0, 72165, '\p{Scx=:\Anand\z:}', "");;
-    Expect(1, 72164, '\p{Scx:	-Nand}', "");
-    Expect(0, 72164, '\p{^Scx:	-Nand}', "");
-    Expect(0, 72164, '\P{Scx:	-Nand}', "");
-    Expect(1, 72164, '\P{^Scx:	-Nand}', "");
-    Expect(0, 72165, '\p{Scx:	-Nand}', "");
-    Expect(1, 72165, '\p{^Scx:	-Nand}', "");
-    Expect(1, 72165, '\P{Scx:	-Nand}', "");
-    Expect(0, 72165, '\P{^Scx:	-Nand}', "");
-    Error('\p{Is_Script_Extensions=/a/NANDINAGARI}');
-    Error('\P{Is_Script_Extensions=/a/NANDINAGARI}');
-    Expect(1, 72164, '\p{Is_Script_Extensions:	nandinagari}', "");
-    Expect(0, 72164, '\p{^Is_Script_Extensions:	nandinagari}', "");
-    Expect(0, 72164, '\P{Is_Script_Extensions:	nandinagari}', "");
-    Expect(1, 72164, '\P{^Is_Script_Extensions:	nandinagari}', "");
-    Expect(0, 72165, '\p{Is_Script_Extensions:	nandinagari}', "");
-    Expect(1, 72165, '\p{^Is_Script_Extensions:	nandinagari}', "");
-    Expect(1, 72165, '\P{Is_Script_Extensions:	nandinagari}', "");
-    Expect(0, 72165, '\P{^Is_Script_Extensions:	nandinagari}', "");
-    Expect(1, 72164, '\p{Is_Script_Extensions: Nandinagari}', "");
-    Expect(0, 72164, '\p{^Is_Script_Extensions: Nandinagari}', "");
-    Expect(0, 72164, '\P{Is_Script_Extensions: Nandinagari}', "");
-    Expect(1, 72164, '\P{^Is_Script_Extensions: Nandinagari}', "");
-    Expect(0, 72165, '\p{Is_Script_Extensions: Nandinagari}', "");
-    Expect(1, 72165, '\p{^Is_Script_Extensions: Nandinagari}', "");
-    Expect(1, 72165, '\P{Is_Script_Extensions: Nandinagari}', "");
-    Expect(0, 72165, '\P{^Is_Script_Extensions: Nandinagari}', "");
-    Error('\p{Is_Scx=/a/		NAND}');
-    Error('\P{Is_Scx=/a/		NAND}');
+    Expect(1, 72164, '\p{Scx:   -Nand}', "");
+    Expect(0, 72164, '\p{^Scx:   -Nand}', "");
+    Expect(0, 72164, '\P{Scx:   -Nand}', "");
+    Expect(1, 72164, '\P{^Scx:   -Nand}', "");
+    Expect(0, 72165, '\p{Scx:   -Nand}', "");
+    Expect(1, 72165, '\p{^Scx:   -Nand}', "");
+    Expect(1, 72165, '\P{Scx:   -Nand}', "");
+    Expect(0, 72165, '\P{^Scx:   -Nand}', "");
+    Error('\p{Is_Script_Extensions:   -:=NANDINAGARI}');
+    Error('\P{Is_Script_Extensions:   -:=NANDINAGARI}');
+    Expect(1, 72164, '\p{Is_Script_Extensions=nandinagari}', "");
+    Expect(0, 72164, '\p{^Is_Script_Extensions=nandinagari}', "");
+    Expect(0, 72164, '\P{Is_Script_Extensions=nandinagari}', "");
+    Expect(1, 72164, '\P{^Is_Script_Extensions=nandinagari}', "");
+    Expect(0, 72165, '\p{Is_Script_Extensions=nandinagari}', "");
+    Expect(1, 72165, '\p{^Is_Script_Extensions=nandinagari}', "");
+    Expect(1, 72165, '\P{Is_Script_Extensions=nandinagari}', "");
+    Expect(0, 72165, '\P{^Is_Script_Extensions=nandinagari}', "");
+    Expect(1, 72164, '\p{Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(0, 72164, '\p{^Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(0, 72164, '\P{Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(1, 72164, '\P{^Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(0, 72165, '\p{Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(1, 72165, '\p{^Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(1, 72165, '\P{Is_Script_Extensions=	-Nandinagari}', "");
+    Expect(0, 72165, '\P{^Is_Script_Extensions=	-Nandinagari}', "");
+    Error('\p{Is_Scx=/a/nand}');
+    Error('\P{Is_Scx=/a/nand}');
     Expect(1, 72164, '\p{Is_Scx=nand}', "");
     Expect(0, 72164, '\p{^Is_Scx=nand}', "");
     Expect(0, 72164, '\P{Is_Scx=nand}', "");
@@ -148847,16 +150311,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72165, '\p{^Is_Scx=nand}', "");
     Expect(1, 72165, '\P{Is_Scx=nand}', "");
     Expect(0, 72165, '\P{^Is_Scx=nand}', "");
-    Expect(1, 72164, '\p{Is_Scx=Nand}', "");
-    Expect(0, 72164, '\p{^Is_Scx=Nand}', "");
-    Expect(0, 72164, '\P{Is_Scx=Nand}', "");
-    Expect(1, 72164, '\P{^Is_Scx=Nand}', "");
-    Expect(0, 72165, '\p{Is_Scx=Nand}', "");
-    Expect(1, 72165, '\p{^Is_Scx=Nand}', "");
-    Expect(1, 72165, '\P{Is_Scx=Nand}', "");
-    Expect(0, 72165, '\P{^Is_Scx=Nand}', "");
-    Error('\p{Script_Extensions=	/a/OLD_North_ARABIAN}');
-    Error('\P{Script_Extensions=	/a/OLD_North_ARABIAN}');
+    Expect(1, 72164, '\p{Is_Scx=	 Nand}', "");
+    Expect(0, 72164, '\p{^Is_Scx=	 Nand}', "");
+    Expect(0, 72164, '\P{Is_Scx=	 Nand}', "");
+    Expect(1, 72164, '\P{^Is_Scx=	 Nand}', "");
+    Expect(0, 72165, '\p{Is_Scx=	 Nand}', "");
+    Expect(1, 72165, '\p{^Is_Scx=	 Nand}', "");
+    Expect(1, 72165, '\P{Is_Scx=	 Nand}', "");
+    Expect(0, 72165, '\P{^Is_Scx=	 Nand}', "");
+    Error('\p{Script_Extensions=/a/	_Old_North_Arabian}');
+    Error('\P{Script_Extensions=/a/	_Old_North_Arabian}');
     Expect(1, 68255, '\p{Script_Extensions=:\AOld_North_Arabian\z:}', "");;
     Expect(0, 68256, '\p{Script_Extensions=:\AOld_North_Arabian\z:}', "");;
     Expect(1, 68255, '\p{Script_Extensions=oldnortharabian}', "");
@@ -148869,38 +150333,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68256, '\P{^Script_Extensions=oldnortharabian}', "");
     Expect(1, 68255, '\p{Script_Extensions=:\Aoldnortharabian\z:}', "");;
     Expect(0, 68256, '\p{Script_Extensions=:\Aoldnortharabian\z:}', "");;
-    Expect(1, 68255, '\p{Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(0, 68255, '\p{^Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(0, 68255, '\P{Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(1, 68255, '\P{^Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(0, 68256, '\p{Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(1, 68256, '\p{^Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(1, 68256, '\P{Script_Extensions=_	OLD_North_Arabian}', "");
-    Expect(0, 68256, '\P{^Script_Extensions=_	OLD_North_Arabian}', "");
-    Error('\p{Scx=:=_	NARB}');
-    Error('\P{Scx=:=_	NARB}');
+    Expect(1, 68255, '\p{Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(0, 68255, '\p{^Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(0, 68255, '\P{Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(1, 68255, '\P{^Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(0, 68256, '\p{Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(1, 68256, '\p{^Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(1, 68256, '\P{Script_Extensions= 	OLD_North_Arabian}', "");
+    Expect(0, 68256, '\P{^Script_Extensions= 	OLD_North_Arabian}', "");
+    Error('\p{Scx= NARB/a/}');
+    Error('\P{Scx= NARB/a/}');
     Expect(1, 68255, '\p{Scx=:\ANarb\z:}', "");;
     Expect(0, 68256, '\p{Scx=:\ANarb\z:}', "");;
-    Expect(1, 68255, '\p{Scx=narb}', "");
-    Expect(0, 68255, '\p{^Scx=narb}', "");
-    Expect(0, 68255, '\P{Scx=narb}', "");
-    Expect(1, 68255, '\P{^Scx=narb}', "");
-    Expect(0, 68256, '\p{Scx=narb}', "");
-    Expect(1, 68256, '\p{^Scx=narb}', "");
-    Expect(1, 68256, '\P{Scx=narb}', "");
-    Expect(0, 68256, '\P{^Scx=narb}', "");
+    Expect(1, 68255, '\p{Scx:   narb}', "");
+    Expect(0, 68255, '\p{^Scx:   narb}', "");
+    Expect(0, 68255, '\P{Scx:   narb}', "");
+    Expect(1, 68255, '\P{^Scx:   narb}', "");
+    Expect(0, 68256, '\p{Scx:   narb}', "");
+    Expect(1, 68256, '\p{^Scx:   narb}', "");
+    Expect(1, 68256, '\P{Scx:   narb}', "");
+    Expect(0, 68256, '\P{^Scx:   narb}', "");
     Expect(1, 68255, '\p{Scx=:\Anarb\z:}', "");;
     Expect(0, 68256, '\p{Scx=:\Anarb\z:}', "");;
-    Expect(1, 68255, '\p{Scx=	_NARB}', "");
-    Expect(0, 68255, '\p{^Scx=	_NARB}', "");
-    Expect(0, 68255, '\P{Scx=	_NARB}', "");
-    Expect(1, 68255, '\P{^Scx=	_NARB}', "");
-    Expect(0, 68256, '\p{Scx=	_NARB}', "");
-    Expect(1, 68256, '\p{^Scx=	_NARB}', "");
-    Expect(1, 68256, '\P{Scx=	_NARB}', "");
-    Expect(0, 68256, '\P{^Scx=	_NARB}', "");
-    Error('\p{Is_Script_Extensions=/a/_ Old_north_ARABIAN}');
-    Error('\P{Is_Script_Extensions=/a/_ Old_north_ARABIAN}');
+    Expect(1, 68255, '\p{Scx: - narb}', "");
+    Expect(0, 68255, '\p{^Scx: - narb}', "");
+    Expect(0, 68255, '\P{Scx: - narb}', "");
+    Expect(1, 68255, '\P{^Scx: - narb}', "");
+    Expect(0, 68256, '\p{Scx: - narb}', "");
+    Expect(1, 68256, '\p{^Scx: - narb}', "");
+    Expect(1, 68256, '\P{Scx: - narb}', "");
+    Expect(0, 68256, '\P{^Scx: - narb}', "");
+    Error('\p{Is_Script_Extensions:    	OLD_north_Arabian:=}');
+    Error('\P{Is_Script_Extensions:    	OLD_north_Arabian:=}');
     Expect(1, 68255, '\p{Is_Script_Extensions=oldnortharabian}', "");
     Expect(0, 68255, '\p{^Is_Script_Extensions=oldnortharabian}', "");
     Expect(0, 68255, '\P{Is_Script_Extensions=oldnortharabian}', "");
@@ -148909,16 +150373,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68256, '\p{^Is_Script_Extensions=oldnortharabian}', "");
     Expect(1, 68256, '\P{Is_Script_Extensions=oldnortharabian}', "");
     Expect(0, 68256, '\P{^Is_Script_Extensions=oldnortharabian}', "");
-    Expect(1, 68255, '\p{Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(0, 68255, '\p{^Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(0, 68255, '\P{Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(1, 68255, '\P{^Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(0, 68256, '\p{Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(1, 68256, '\p{^Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(1, 68256, '\P{Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Expect(0, 68256, '\P{^Is_Script_Extensions:   -_OLD_NORTH_ARABIAN}', "");
-    Error('\p{Is_Scx=/a/ _NARB}');
-    Error('\P{Is_Scx=/a/ _NARB}');
+    Expect(1, 68255, '\p{Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(0, 68255, '\p{^Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(0, 68255, '\P{Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(1, 68255, '\P{^Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(0, 68256, '\p{Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(1, 68256, '\p{^Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(1, 68256, '\P{Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Expect(0, 68256, '\P{^Is_Script_Extensions= 	old_North_ARABIAN}', "");
+    Error('\p{Is_Scx=:=_-Narb}');
+    Error('\P{Is_Scx=:=_-Narb}');
     Expect(1, 68255, '\p{Is_Scx=narb}', "");
     Expect(0, 68255, '\p{^Is_Scx=narb}', "");
     Expect(0, 68255, '\P{Is_Scx=narb}', "");
@@ -148927,38 +150391,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68256, '\p{^Is_Scx=narb}', "");
     Expect(1, 68256, '\P{Is_Scx=narb}', "");
     Expect(0, 68256, '\P{^Is_Scx=narb}', "");
-    Expect(1, 68255, '\p{Is_Scx=Narb}', "");
-    Expect(0, 68255, '\p{^Is_Scx=Narb}', "");
-    Expect(0, 68255, '\P{Is_Scx=Narb}', "");
-    Expect(1, 68255, '\P{^Is_Scx=Narb}', "");
-    Expect(0, 68256, '\p{Is_Scx=Narb}', "");
-    Expect(1, 68256, '\p{^Is_Scx=Narb}', "");
-    Expect(1, 68256, '\P{Is_Scx=Narb}', "");
-    Expect(0, 68256, '\P{^Is_Scx=Narb}', "");
-    Error('\p{Script_Extensions:/a/_NABATAEAN}');
-    Error('\P{Script_Extensions:/a/_NABATAEAN}');
+    Expect(1, 68255, '\p{Is_Scx= _Narb}', "");
+    Expect(0, 68255, '\p{^Is_Scx= _Narb}', "");
+    Expect(0, 68255, '\P{Is_Scx= _Narb}', "");
+    Expect(1, 68255, '\P{^Is_Scx= _Narb}', "");
+    Expect(0, 68256, '\p{Is_Scx= _Narb}', "");
+    Expect(1, 68256, '\p{^Is_Scx= _Narb}', "");
+    Expect(1, 68256, '\P{Is_Scx= _Narb}', "");
+    Expect(0, 68256, '\P{^Is_Scx= _Narb}', "");
+    Error('\p{Script_Extensions=:=--Nabataean}');
+    Error('\P{Script_Extensions=:=--Nabataean}');
     Expect(1, 67759, '\p{Script_Extensions=:\ANabataean\z:}', "");;
     Expect(0, 67760, '\p{Script_Extensions=:\ANabataean\z:}', "");;
-    Expect(1, 67759, '\p{Script_Extensions:   nabataean}', "");
-    Expect(0, 67759, '\p{^Script_Extensions:   nabataean}', "");
-    Expect(0, 67759, '\P{Script_Extensions:   nabataean}', "");
-    Expect(1, 67759, '\P{^Script_Extensions:   nabataean}', "");
-    Expect(0, 67760, '\p{Script_Extensions:   nabataean}', "");
-    Expect(1, 67760, '\p{^Script_Extensions:   nabataean}', "");
-    Expect(1, 67760, '\P{Script_Extensions:   nabataean}', "");
-    Expect(0, 67760, '\P{^Script_Extensions:   nabataean}', "");
+    Expect(1, 67759, '\p{Script_Extensions=nabataean}', "");
+    Expect(0, 67759, '\p{^Script_Extensions=nabataean}', "");
+    Expect(0, 67759, '\P{Script_Extensions=nabataean}', "");
+    Expect(1, 67759, '\P{^Script_Extensions=nabataean}', "");
+    Expect(0, 67760, '\p{Script_Extensions=nabataean}', "");
+    Expect(1, 67760, '\p{^Script_Extensions=nabataean}', "");
+    Expect(1, 67760, '\P{Script_Extensions=nabataean}', "");
+    Expect(0, 67760, '\P{^Script_Extensions=nabataean}', "");
     Expect(1, 67759, '\p{Script_Extensions=:\Anabataean\z:}', "");;
     Expect(0, 67760, '\p{Script_Extensions=:\Anabataean\z:}', "");;
-    Expect(1, 67759, '\p{Script_Extensions:-Nabataean}', "");
-    Expect(0, 67759, '\p{^Script_Extensions:-Nabataean}', "");
-    Expect(0, 67759, '\P{Script_Extensions:-Nabataean}', "");
-    Expect(1, 67759, '\P{^Script_Extensions:-Nabataean}', "");
-    Expect(0, 67760, '\p{Script_Extensions:-Nabataean}', "");
-    Expect(1, 67760, '\p{^Script_Extensions:-Nabataean}', "");
-    Expect(1, 67760, '\P{Script_Extensions:-Nabataean}', "");
-    Expect(0, 67760, '\P{^Script_Extensions:-Nabataean}', "");
-    Error('\p{Scx=-NBAT/a/}');
-    Error('\P{Scx=-NBAT/a/}');
+    Expect(1, 67759, '\p{Script_Extensions=	nabataean}', "");
+    Expect(0, 67759, '\p{^Script_Extensions=	nabataean}', "");
+    Expect(0, 67759, '\P{Script_Extensions=	nabataean}', "");
+    Expect(1, 67759, '\P{^Script_Extensions=	nabataean}', "");
+    Expect(0, 67760, '\p{Script_Extensions=	nabataean}', "");
+    Expect(1, 67760, '\p{^Script_Extensions=	nabataean}', "");
+    Expect(1, 67760, '\P{Script_Extensions=	nabataean}', "");
+    Expect(0, 67760, '\P{^Script_Extensions=	nabataean}', "");
+    Error('\p{Scx=/a/- NBAT}');
+    Error('\P{Scx=/a/- NBAT}');
     Expect(1, 67759, '\p{Scx=:\ANbat\z:}', "");;
     Expect(0, 67760, '\p{Scx=:\ANbat\z:}', "");;
     Expect(1, 67759, '\p{Scx=nbat}', "");
@@ -148971,16 +150435,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67760, '\P{^Scx=nbat}', "");
     Expect(1, 67759, '\p{Scx=:\Anbat\z:}', "");;
     Expect(0, 67760, '\p{Scx=:\Anbat\z:}', "");;
-    Expect(1, 67759, '\p{Scx=-Nbat}', "");
-    Expect(0, 67759, '\p{^Scx=-Nbat}', "");
-    Expect(0, 67759, '\P{Scx=-Nbat}', "");
-    Expect(1, 67759, '\P{^Scx=-Nbat}', "");
-    Expect(0, 67760, '\p{Scx=-Nbat}', "");
-    Expect(1, 67760, '\p{^Scx=-Nbat}', "");
-    Expect(1, 67760, '\P{Scx=-Nbat}', "");
-    Expect(0, 67760, '\P{^Scx=-Nbat}', "");
-    Error('\p{Is_Script_Extensions=-Nabataean/a/}');
-    Error('\P{Is_Script_Extensions=-Nabataean/a/}');
+    Expect(1, 67759, '\p{Scx=	Nbat}', "");
+    Expect(0, 67759, '\p{^Scx=	Nbat}', "");
+    Expect(0, 67759, '\P{Scx=	Nbat}', "");
+    Expect(1, 67759, '\P{^Scx=	Nbat}', "");
+    Expect(0, 67760, '\p{Scx=	Nbat}', "");
+    Expect(1, 67760, '\p{^Scx=	Nbat}', "");
+    Expect(1, 67760, '\P{Scx=	Nbat}', "");
+    Expect(0, 67760, '\P{^Scx=	Nbat}', "");
+    Error('\p{Is_Script_Extensions=/a/- Nabataean}');
+    Error('\P{Is_Script_Extensions=/a/- Nabataean}');
     Expect(1, 67759, '\p{Is_Script_Extensions=nabataean}', "");
     Expect(0, 67759, '\p{^Is_Script_Extensions=nabataean}', "");
     Expect(0, 67759, '\P{Is_Script_Extensions=nabataean}', "");
@@ -148989,16 +150453,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67760, '\p{^Is_Script_Extensions=nabataean}', "");
     Expect(1, 67760, '\P{Is_Script_Extensions=nabataean}', "");
     Expect(0, 67760, '\P{^Is_Script_Extensions=nabataean}', "");
-    Expect(1, 67759, '\p{Is_Script_Extensions=		Nabataean}', "");
-    Expect(0, 67759, '\p{^Is_Script_Extensions=		Nabataean}', "");
-    Expect(0, 67759, '\P{Is_Script_Extensions=		Nabataean}', "");
-    Expect(1, 67759, '\P{^Is_Script_Extensions=		Nabataean}', "");
-    Expect(0, 67760, '\p{Is_Script_Extensions=		Nabataean}', "");
-    Expect(1, 67760, '\p{^Is_Script_Extensions=		Nabataean}', "");
-    Expect(1, 67760, '\P{Is_Script_Extensions=		Nabataean}', "");
-    Expect(0, 67760, '\P{^Is_Script_Extensions=		Nabataean}', "");
-    Error('\p{Is_Scx=_:=Nbat}');
-    Error('\P{Is_Scx=_:=Nbat}');
+    Expect(1, 67759, '\p{Is_Script_Extensions:  Nabataean}', "");
+    Expect(0, 67759, '\p{^Is_Script_Extensions:  Nabataean}', "");
+    Expect(0, 67759, '\P{Is_Script_Extensions:  Nabataean}', "");
+    Expect(1, 67759, '\P{^Is_Script_Extensions:  Nabataean}', "");
+    Expect(0, 67760, '\p{Is_Script_Extensions:  Nabataean}', "");
+    Expect(1, 67760, '\p{^Is_Script_Extensions:  Nabataean}', "");
+    Expect(1, 67760, '\P{Is_Script_Extensions:  Nabataean}', "");
+    Expect(0, 67760, '\P{^Is_Script_Extensions:  Nabataean}', "");
+    Error('\p{Is_Scx=:=-_Nbat}');
+    Error('\P{Is_Scx=:=-_Nbat}');
     Expect(1, 67759, '\p{Is_Scx=nbat}', "");
     Expect(0, 67759, '\p{^Is_Scx=nbat}', "");
     Expect(0, 67759, '\P{Is_Scx=nbat}', "");
@@ -149007,16 +150471,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67760, '\p{^Is_Scx=nbat}', "");
     Expect(1, 67760, '\P{Is_Scx=nbat}', "");
     Expect(0, 67760, '\P{^Is_Scx=nbat}', "");
-    Expect(1, 67759, '\p{Is_Scx=- nbat}', "");
-    Expect(0, 67759, '\p{^Is_Scx=- nbat}', "");
-    Expect(0, 67759, '\P{Is_Scx=- nbat}', "");
-    Expect(1, 67759, '\P{^Is_Scx=- nbat}', "");
-    Expect(0, 67760, '\p{Is_Scx=- nbat}', "");
-    Expect(1, 67760, '\p{^Is_Scx=- nbat}', "");
-    Expect(1, 67760, '\P{Is_Scx=- nbat}', "");
-    Expect(0, 67760, '\P{^Is_Scx=- nbat}', "");
-    Error('\p{Script_Extensions=/a/newa}');
-    Error('\P{Script_Extensions=/a/newa}');
+    Expect(1, 67759, '\p{Is_Scx=_NBAT}', "");
+    Expect(0, 67759, '\p{^Is_Scx=_NBAT}', "");
+    Expect(0, 67759, '\P{Is_Scx=_NBAT}', "");
+    Expect(1, 67759, '\P{^Is_Scx=_NBAT}', "");
+    Expect(0, 67760, '\p{Is_Scx=_NBAT}', "");
+    Expect(1, 67760, '\p{^Is_Scx=_NBAT}', "");
+    Expect(1, 67760, '\P{Is_Scx=_NBAT}', "");
+    Expect(0, 67760, '\P{^Is_Scx=_NBAT}', "");
+    Error('\p{Script_Extensions=_:=Newa}');
+    Error('\P{Script_Extensions=_:=Newa}');
     Expect(1, 70753, '\p{Script_Extensions=:\ANewa\z:}', "");;
     Expect(0, 70754, '\p{Script_Extensions=:\ANewa\z:}', "");;
     Expect(1, 70753, '\p{Script_Extensions=newa}', "");
@@ -149029,16 +150493,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70754, '\P{^Script_Extensions=newa}', "");
     Expect(1, 70753, '\p{Script_Extensions=:\Anewa\z:}', "");;
     Expect(0, 70754, '\p{Script_Extensions=:\Anewa\z:}', "");;
-    Expect(1, 70753, '\p{Script_Extensions=	_newa}', "");
-    Expect(0, 70753, '\p{^Script_Extensions=	_newa}', "");
-    Expect(0, 70753, '\P{Script_Extensions=	_newa}', "");
-    Expect(1, 70753, '\P{^Script_Extensions=	_newa}', "");
-    Expect(0, 70754, '\p{Script_Extensions=	_newa}', "");
-    Expect(1, 70754, '\p{^Script_Extensions=	_newa}', "");
-    Expect(1, 70754, '\P{Script_Extensions=	_newa}', "");
-    Expect(0, 70754, '\P{^Script_Extensions=	_newa}', "");
-    Error('\p{Scx=	:=Newa}');
-    Error('\P{Scx=	:=Newa}');
+    Expect(1, 70753, '\p{Script_Extensions=  Newa}', "");
+    Expect(0, 70753, '\p{^Script_Extensions=  Newa}', "");
+    Expect(0, 70753, '\P{Script_Extensions=  Newa}', "");
+    Expect(1, 70753, '\P{^Script_Extensions=  Newa}', "");
+    Expect(0, 70754, '\p{Script_Extensions=  Newa}', "");
+    Expect(1, 70754, '\p{^Script_Extensions=  Newa}', "");
+    Expect(1, 70754, '\P{Script_Extensions=  Newa}', "");
+    Expect(0, 70754, '\P{^Script_Extensions=  Newa}', "");
+    Error('\p{Scx=/a/_ Newa}');
+    Error('\P{Scx=/a/_ Newa}');
     Expect(1, 70753, '\p{Scx=:\ANewa\z:}', "");;
     Expect(0, 70754, '\p{Scx=:\ANewa\z:}', "");;
     Expect(1, 70753, '\p{Scx=newa}', "");
@@ -149051,34 +150515,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70754, '\P{^Scx=newa}', "");
     Expect(1, 70753, '\p{Scx=:\Anewa\z:}', "");;
     Expect(0, 70754, '\p{Scx=:\Anewa\z:}', "");;
-    Expect(1, 70753, '\p{Scx=Newa}', "");
-    Expect(0, 70753, '\p{^Scx=Newa}', "");
-    Expect(0, 70753, '\P{Scx=Newa}', "");
-    Expect(1, 70753, '\P{^Scx=Newa}', "");
-    Expect(0, 70754, '\p{Scx=Newa}', "");
-    Expect(1, 70754, '\p{^Scx=Newa}', "");
-    Expect(1, 70754, '\P{Scx=Newa}', "");
-    Expect(0, 70754, '\P{^Scx=Newa}', "");
-    Error('\p{Is_Script_Extensions=	 newa/a/}');
-    Error('\P{Is_Script_Extensions=	 newa/a/}');
-    Expect(1, 70753, '\p{Is_Script_Extensions:newa}', "");
-    Expect(0, 70753, '\p{^Is_Script_Extensions:newa}', "");
-    Expect(0, 70753, '\P{Is_Script_Extensions:newa}', "");
-    Expect(1, 70753, '\P{^Is_Script_Extensions:newa}', "");
-    Expect(0, 70754, '\p{Is_Script_Extensions:newa}', "");
-    Expect(1, 70754, '\p{^Is_Script_Extensions:newa}', "");
-    Expect(1, 70754, '\P{Is_Script_Extensions:newa}', "");
-    Expect(0, 70754, '\P{^Is_Script_Extensions:newa}', "");
-    Expect(1, 70753, '\p{Is_Script_Extensions= -Newa}', "");
-    Expect(0, 70753, '\p{^Is_Script_Extensions= -Newa}', "");
-    Expect(0, 70753, '\P{Is_Script_Extensions= -Newa}', "");
-    Expect(1, 70753, '\P{^Is_Script_Extensions= -Newa}', "");
-    Expect(0, 70754, '\p{Is_Script_Extensions= -Newa}', "");
-    Expect(1, 70754, '\p{^Is_Script_Extensions= -Newa}', "");
-    Expect(1, 70754, '\P{Is_Script_Extensions= -Newa}', "");
-    Expect(0, 70754, '\P{^Is_Script_Extensions= -Newa}', "");
-    Error('\p{Is_Scx=:=newa}');
-    Error('\P{Is_Scx=:=newa}');
+    Expect(1, 70753, '\p{Scx=_NEWA}', "");
+    Expect(0, 70753, '\p{^Scx=_NEWA}', "");
+    Expect(0, 70753, '\P{Scx=_NEWA}', "");
+    Expect(1, 70753, '\P{^Scx=_NEWA}', "");
+    Expect(0, 70754, '\p{Scx=_NEWA}', "");
+    Expect(1, 70754, '\p{^Scx=_NEWA}', "");
+    Expect(1, 70754, '\P{Scx=_NEWA}', "");
+    Expect(0, 70754, '\P{^Scx=_NEWA}', "");
+    Error('\p{Is_Script_Extensions=  Newa:=}');
+    Error('\P{Is_Script_Extensions=  Newa:=}');
+    Expect(1, 70753, '\p{Is_Script_Extensions=newa}', "");
+    Expect(0, 70753, '\p{^Is_Script_Extensions=newa}', "");
+    Expect(0, 70753, '\P{Is_Script_Extensions=newa}', "");
+    Expect(1, 70753, '\P{^Is_Script_Extensions=newa}', "");
+    Expect(0, 70754, '\p{Is_Script_Extensions=newa}', "");
+    Expect(1, 70754, '\p{^Is_Script_Extensions=newa}', "");
+    Expect(1, 70754, '\P{Is_Script_Extensions=newa}', "");
+    Expect(0, 70754, '\P{^Is_Script_Extensions=newa}', "");
+    Expect(1, 70753, '\p{Is_Script_Extensions=Newa}', "");
+    Expect(0, 70753, '\p{^Is_Script_Extensions=Newa}', "");
+    Expect(0, 70753, '\P{Is_Script_Extensions=Newa}', "");
+    Expect(1, 70753, '\P{^Is_Script_Extensions=Newa}', "");
+    Expect(0, 70754, '\p{Is_Script_Extensions=Newa}', "");
+    Expect(1, 70754, '\p{^Is_Script_Extensions=Newa}', "");
+    Expect(1, 70754, '\P{Is_Script_Extensions=Newa}', "");
+    Expect(0, 70754, '\P{^Is_Script_Extensions=Newa}', "");
+    Error('\p{Is_Scx=	/a/Newa}');
+    Error('\P{Is_Scx=	/a/Newa}');
     Expect(1, 70753, '\p{Is_Scx=newa}', "");
     Expect(0, 70753, '\p{^Is_Scx=newa}', "");
     Expect(0, 70753, '\P{Is_Scx=newa}', "");
@@ -149087,16 +150551,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70754, '\p{^Is_Scx=newa}', "");
     Expect(1, 70754, '\P{Is_Scx=newa}', "");
     Expect(0, 70754, '\P{^Is_Scx=newa}', "");
-    Expect(1, 70753, '\p{Is_Scx=_	NEWA}', "");
-    Expect(0, 70753, '\p{^Is_Scx=_	NEWA}', "");
-    Expect(0, 70753, '\P{Is_Scx=_	NEWA}', "");
-    Expect(1, 70753, '\P{^Is_Scx=_	NEWA}', "");
-    Expect(0, 70754, '\p{Is_Scx=_	NEWA}', "");
-    Expect(1, 70754, '\p{^Is_Scx=_	NEWA}', "");
-    Expect(1, 70754, '\P{Is_Scx=_	NEWA}', "");
-    Expect(0, 70754, '\P{^Is_Scx=_	NEWA}', "");
-    Error('\p{Script_Extensions=_	NKO/a/}');
-    Error('\P{Script_Extensions=_	NKO/a/}');
+    Expect(1, 70753, '\p{Is_Scx=__Newa}', "");
+    Expect(0, 70753, '\p{^Is_Scx=__Newa}', "");
+    Expect(0, 70753, '\P{Is_Scx=__Newa}', "");
+    Expect(1, 70753, '\P{^Is_Scx=__Newa}', "");
+    Expect(0, 70754, '\p{Is_Scx=__Newa}', "");
+    Expect(1, 70754, '\p{^Is_Scx=__Newa}', "");
+    Expect(1, 70754, '\P{Is_Scx=__Newa}', "");
+    Expect(0, 70754, '\P{^Is_Scx=__Newa}', "");
+    Error('\p{Script_Extensions=:=		Nko}');
+    Error('\P{Script_Extensions=:=		Nko}');
     Expect(1, 64831, '\p{Script_Extensions=:\ANko\z:}', "");;
     Expect(0, 64832, '\p{Script_Extensions=:\ANko\z:}', "");;
     Expect(1, 64831, '\p{Script_Extensions=nko}', "");
@@ -149109,16 +150573,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64832, '\P{^Script_Extensions=nko}', "");
     Expect(1, 64831, '\p{Script_Extensions=:\Anko\z:}', "");;
     Expect(0, 64832, '\p{Script_Extensions=:\Anko\z:}', "");;
-    Expect(1, 64831, '\p{Script_Extensions=	-nko}', "");
-    Expect(0, 64831, '\p{^Script_Extensions=	-nko}', "");
-    Expect(0, 64831, '\P{Script_Extensions=	-nko}', "");
-    Expect(1, 64831, '\P{^Script_Extensions=	-nko}', "");
-    Expect(0, 64832, '\p{Script_Extensions=	-nko}', "");
-    Expect(1, 64832, '\p{^Script_Extensions=	-nko}', "");
-    Expect(1, 64832, '\P{Script_Extensions=	-nko}', "");
-    Expect(0, 64832, '\P{^Script_Extensions=	-nko}', "");
-    Error('\p{Scx=:=	-Nkoo}');
-    Error('\P{Scx=:=	-Nkoo}');
+    Expect(1, 64831, '\p{Script_Extensions=	Nko}', "");
+    Expect(0, 64831, '\p{^Script_Extensions=	Nko}', "");
+    Expect(0, 64831, '\P{Script_Extensions=	Nko}', "");
+    Expect(1, 64831, '\P{^Script_Extensions=	Nko}', "");
+    Expect(0, 64832, '\p{Script_Extensions=	Nko}', "");
+    Expect(1, 64832, '\p{^Script_Extensions=	Nko}', "");
+    Expect(1, 64832, '\P{Script_Extensions=	Nko}', "");
+    Expect(0, 64832, '\P{^Script_Extensions=	Nko}', "");
+    Error('\p{Scx=_:=nkoo}');
+    Error('\P{Scx=_:=nkoo}');
     Expect(1, 64831, '\p{Scx=:\ANkoo\z:}', "");;
     Expect(0, 64832, '\p{Scx=:\ANkoo\z:}', "");;
     Expect(1, 64831, '\p{Scx=nkoo}', "");
@@ -149131,34 +150595,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64832, '\P{^Scx=nkoo}', "");
     Expect(1, 64831, '\p{Scx=:\Ankoo\z:}', "");;
     Expect(0, 64832, '\p{Scx=:\Ankoo\z:}', "");;
-    Expect(1, 64831, '\p{Scx=_	Nkoo}', "");
-    Expect(0, 64831, '\p{^Scx=_	Nkoo}', "");
-    Expect(0, 64831, '\P{Scx=_	Nkoo}', "");
-    Expect(1, 64831, '\P{^Scx=_	Nkoo}', "");
-    Expect(0, 64832, '\p{Scx=_	Nkoo}', "");
-    Expect(1, 64832, '\p{^Scx=_	Nkoo}', "");
-    Expect(1, 64832, '\P{Scx=_	Nkoo}', "");
-    Expect(0, 64832, '\P{^Scx=_	Nkoo}', "");
-    Error('\p{Is_Script_Extensions=-:=Nko}');
-    Error('\P{Is_Script_Extensions=-:=Nko}');
-    Expect(1, 64831, '\p{Is_Script_Extensions:	nko}', "");
-    Expect(0, 64831, '\p{^Is_Script_Extensions:	nko}', "");
-    Expect(0, 64831, '\P{Is_Script_Extensions:	nko}', "");
-    Expect(1, 64831, '\P{^Is_Script_Extensions:	nko}', "");
-    Expect(0, 64832, '\p{Is_Script_Extensions:	nko}', "");
-    Expect(1, 64832, '\p{^Is_Script_Extensions:	nko}', "");
-    Expect(1, 64832, '\P{Is_Script_Extensions:	nko}', "");
-    Expect(0, 64832, '\P{^Is_Script_Extensions:	nko}', "");
-    Expect(1, 64831, '\p{Is_Script_Extensions=- Nko}', "");
-    Expect(0, 64831, '\p{^Is_Script_Extensions=- Nko}', "");
-    Expect(0, 64831, '\P{Is_Script_Extensions=- Nko}', "");
-    Expect(1, 64831, '\P{^Is_Script_Extensions=- Nko}', "");
-    Expect(0, 64832, '\p{Is_Script_Extensions=- Nko}', "");
-    Expect(1, 64832, '\p{^Is_Script_Extensions=- Nko}', "");
-    Expect(1, 64832, '\P{Is_Script_Extensions=- Nko}', "");
-    Expect(0, 64832, '\P{^Is_Script_Extensions=- Nko}', "");
-    Error('\p{Is_Scx=/a/NKOO}');
-    Error('\P{Is_Scx=/a/NKOO}');
+    Expect(1, 64831, '\p{Scx=-NKOO}', "");
+    Expect(0, 64831, '\p{^Scx=-NKOO}', "");
+    Expect(0, 64831, '\P{Scx=-NKOO}', "");
+    Expect(1, 64831, '\P{^Scx=-NKOO}', "");
+    Expect(0, 64832, '\p{Scx=-NKOO}', "");
+    Expect(1, 64832, '\p{^Scx=-NKOO}', "");
+    Expect(1, 64832, '\P{Scx=-NKOO}', "");
+    Expect(0, 64832, '\P{^Scx=-NKOO}', "");
+    Error('\p{Is_Script_Extensions=__Nko/a/}');
+    Error('\P{Is_Script_Extensions=__Nko/a/}');
+    Expect(1, 64831, '\p{Is_Script_Extensions=nko}', "");
+    Expect(0, 64831, '\p{^Is_Script_Extensions=nko}', "");
+    Expect(0, 64831, '\P{Is_Script_Extensions=nko}', "");
+    Expect(1, 64831, '\P{^Is_Script_Extensions=nko}', "");
+    Expect(0, 64832, '\p{Is_Script_Extensions=nko}', "");
+    Expect(1, 64832, '\p{^Is_Script_Extensions=nko}', "");
+    Expect(1, 64832, '\P{Is_Script_Extensions=nko}', "");
+    Expect(0, 64832, '\P{^Is_Script_Extensions=nko}', "");
+    Expect(1, 64831, '\p{Is_Script_Extensions=	 Nko}', "");
+    Expect(0, 64831, '\p{^Is_Script_Extensions=	 Nko}', "");
+    Expect(0, 64831, '\P{Is_Script_Extensions=	 Nko}', "");
+    Expect(1, 64831, '\P{^Is_Script_Extensions=	 Nko}', "");
+    Expect(0, 64832, '\p{Is_Script_Extensions=	 Nko}', "");
+    Expect(1, 64832, '\p{^Is_Script_Extensions=	 Nko}', "");
+    Expect(1, 64832, '\P{Is_Script_Extensions=	 Nko}', "");
+    Expect(0, 64832, '\P{^Is_Script_Extensions=	 Nko}', "");
+    Error('\p{Is_Scx=-Nkoo/a/}');
+    Error('\P{Is_Scx=-Nkoo/a/}');
     Expect(1, 64831, '\p{Is_Scx=nkoo}', "");
     Expect(0, 64831, '\p{^Is_Scx=nkoo}', "");
     Expect(0, 64831, '\P{Is_Scx=nkoo}', "");
@@ -149167,38 +150631,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64832, '\p{^Is_Scx=nkoo}', "");
     Expect(1, 64832, '\P{Is_Scx=nkoo}', "");
     Expect(0, 64832, '\P{^Is_Scx=nkoo}', "");
-    Expect(1, 64831, '\p{Is_Scx= _nkoo}', "");
-    Expect(0, 64831, '\p{^Is_Scx= _nkoo}', "");
-    Expect(0, 64831, '\P{Is_Scx= _nkoo}', "");
-    Expect(1, 64831, '\P{^Is_Scx= _nkoo}', "");
-    Expect(0, 64832, '\p{Is_Scx= _nkoo}', "");
-    Expect(1, 64832, '\p{^Is_Scx= _nkoo}', "");
-    Expect(1, 64832, '\P{Is_Scx= _nkoo}', "");
-    Expect(0, 64832, '\P{^Is_Scx= _nkoo}', "");
-    Error('\p{Script_Extensions=	-nushu/a/}');
-    Error('\P{Script_Extensions=	-nushu/a/}');
+    Expect(1, 64831, '\p{Is_Scx=	-NKOO}', "");
+    Expect(0, 64831, '\p{^Is_Scx=	-NKOO}', "");
+    Expect(0, 64831, '\P{Is_Scx=	-NKOO}', "");
+    Expect(1, 64831, '\P{^Is_Scx=	-NKOO}', "");
+    Expect(0, 64832, '\p{Is_Scx=	-NKOO}', "");
+    Expect(1, 64832, '\p{^Is_Scx=	-NKOO}', "");
+    Expect(1, 64832, '\P{Is_Scx=	-NKOO}', "");
+    Expect(0, 64832, '\P{^Is_Scx=	-NKOO}', "");
+    Error('\p{Script_Extensions=	-Nushu:=}');
+    Error('\P{Script_Extensions=	-Nushu:=}');
     Expect(1, 111355, '\p{Script_Extensions=:\ANushu\z:}', "");;
     Expect(0, 111356, '\p{Script_Extensions=:\ANushu\z:}', "");;
-    Expect(1, 111355, '\p{Script_Extensions=nushu}', "");
-    Expect(0, 111355, '\p{^Script_Extensions=nushu}', "");
-    Expect(0, 111355, '\P{Script_Extensions=nushu}', "");
-    Expect(1, 111355, '\P{^Script_Extensions=nushu}', "");
-    Expect(0, 111356, '\p{Script_Extensions=nushu}', "");
-    Expect(1, 111356, '\p{^Script_Extensions=nushu}', "");
-    Expect(1, 111356, '\P{Script_Extensions=nushu}', "");
-    Expect(0, 111356, '\P{^Script_Extensions=nushu}', "");
+    Expect(1, 111355, '\p{Script_Extensions:nushu}', "");
+    Expect(0, 111355, '\p{^Script_Extensions:nushu}', "");
+    Expect(0, 111355, '\P{Script_Extensions:nushu}', "");
+    Expect(1, 111355, '\P{^Script_Extensions:nushu}', "");
+    Expect(0, 111356, '\p{Script_Extensions:nushu}', "");
+    Expect(1, 111356, '\p{^Script_Extensions:nushu}', "");
+    Expect(1, 111356, '\P{Script_Extensions:nushu}', "");
+    Expect(0, 111356, '\P{^Script_Extensions:nushu}', "");
     Expect(1, 111355, '\p{Script_Extensions=:\Anushu\z:}', "");;
     Expect(0, 111356, '\p{Script_Extensions=:\Anushu\z:}', "");;
-    Expect(1, 111355, '\p{Script_Extensions=	_nushu}', "");
-    Expect(0, 111355, '\p{^Script_Extensions=	_nushu}', "");
-    Expect(0, 111355, '\P{Script_Extensions=	_nushu}', "");
-    Expect(1, 111355, '\P{^Script_Extensions=	_nushu}', "");
-    Expect(0, 111356, '\p{Script_Extensions=	_nushu}', "");
-    Expect(1, 111356, '\p{^Script_Extensions=	_nushu}', "");
-    Expect(1, 111356, '\P{Script_Extensions=	_nushu}', "");
-    Expect(0, 111356, '\P{^Script_Extensions=	_nushu}', "");
-    Error('\p{Scx=_ Nshu:=}');
-    Error('\P{Scx=_ Nshu:=}');
+    Expect(1, 111355, '\p{Script_Extensions= NUSHU}', "");
+    Expect(0, 111355, '\p{^Script_Extensions= NUSHU}', "");
+    Expect(0, 111355, '\P{Script_Extensions= NUSHU}', "");
+    Expect(1, 111355, '\P{^Script_Extensions= NUSHU}', "");
+    Expect(0, 111356, '\p{Script_Extensions= NUSHU}', "");
+    Expect(1, 111356, '\p{^Script_Extensions= NUSHU}', "");
+    Expect(1, 111356, '\P{Script_Extensions= NUSHU}', "");
+    Expect(0, 111356, '\P{^Script_Extensions= NUSHU}', "");
+    Error('\p{Scx=	/a/Nshu}');
+    Error('\P{Scx=	/a/Nshu}');
     Expect(1, 111355, '\p{Scx=:\ANshu\z:}', "");;
     Expect(0, 111356, '\p{Scx=:\ANshu\z:}', "");;
     Expect(1, 111355, '\p{Scx=nshu}', "");
@@ -149211,16 +150675,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 111356, '\P{^Scx=nshu}', "");
     Expect(1, 111355, '\p{Scx=:\Anshu\z:}', "");;
     Expect(0, 111356, '\p{Scx=:\Anshu\z:}', "");;
-    Expect(1, 111355, '\p{Scx=-_Nshu}', "");
-    Expect(0, 111355, '\p{^Scx=-_Nshu}', "");
-    Expect(0, 111355, '\P{Scx=-_Nshu}', "");
-    Expect(1, 111355, '\P{^Scx=-_Nshu}', "");
-    Expect(0, 111356, '\p{Scx=-_Nshu}', "");
-    Expect(1, 111356, '\p{^Scx=-_Nshu}', "");
-    Expect(1, 111356, '\P{Scx=-_Nshu}', "");
-    Expect(0, 111356, '\P{^Scx=-_Nshu}', "");
-    Error('\p{Is_Script_Extensions=/a/-nushu}');
-    Error('\P{Is_Script_Extensions=/a/-nushu}');
+    Expect(1, 111355, '\p{Scx=_Nshu}', "");
+    Expect(0, 111355, '\p{^Scx=_Nshu}', "");
+    Expect(0, 111355, '\P{Scx=_Nshu}', "");
+    Expect(1, 111355, '\P{^Scx=_Nshu}', "");
+    Expect(0, 111356, '\p{Scx=_Nshu}', "");
+    Expect(1, 111356, '\p{^Scx=_Nshu}', "");
+    Expect(1, 111356, '\P{Scx=_Nshu}', "");
+    Expect(0, 111356, '\P{^Scx=_Nshu}', "");
+    Error('\p{Is_Script_Extensions=/a/	_Nushu}');
+    Error('\P{Is_Script_Extensions=/a/	_Nushu}');
     Expect(1, 111355, '\p{Is_Script_Extensions=nushu}', "");
     Expect(0, 111355, '\p{^Is_Script_Extensions=nushu}', "");
     Expect(0, 111355, '\P{Is_Script_Extensions=nushu}', "");
@@ -149229,16 +150693,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 111356, '\p{^Is_Script_Extensions=nushu}', "");
     Expect(1, 111356, '\P{Is_Script_Extensions=nushu}', "");
     Expect(0, 111356, '\P{^Is_Script_Extensions=nushu}', "");
-    Expect(1, 111355, '\p{Is_Script_Extensions=_Nushu}', "");
-    Expect(0, 111355, '\p{^Is_Script_Extensions=_Nushu}', "");
-    Expect(0, 111355, '\P{Is_Script_Extensions=_Nushu}', "");
-    Expect(1, 111355, '\P{^Is_Script_Extensions=_Nushu}', "");
-    Expect(0, 111356, '\p{Is_Script_Extensions=_Nushu}', "");
-    Expect(1, 111356, '\p{^Is_Script_Extensions=_Nushu}', "");
-    Expect(1, 111356, '\P{Is_Script_Extensions=_Nushu}', "");
-    Expect(0, 111356, '\P{^Is_Script_Extensions=_Nushu}', "");
-    Error('\p{Is_Scx:	 _Nshu:=}');
-    Error('\P{Is_Scx:	 _Nshu:=}');
+    Expect(1, 111355, '\p{Is_Script_Extensions=_nushu}', "");
+    Expect(0, 111355, '\p{^Is_Script_Extensions=_nushu}', "");
+    Expect(0, 111355, '\P{Is_Script_Extensions=_nushu}', "");
+    Expect(1, 111355, '\P{^Is_Script_Extensions=_nushu}', "");
+    Expect(0, 111356, '\p{Is_Script_Extensions=_nushu}', "");
+    Expect(1, 111356, '\p{^Is_Script_Extensions=_nushu}', "");
+    Expect(1, 111356, '\P{Is_Script_Extensions=_nushu}', "");
+    Expect(0, 111356, '\P{^Is_Script_Extensions=_nushu}', "");
+    Error('\p{Is_Scx=/a/ 	NSHU}');
+    Error('\P{Is_Scx=/a/ 	NSHU}');
     Expect(1, 111355, '\p{Is_Scx=nshu}', "");
     Expect(0, 111355, '\p{^Is_Scx=nshu}', "");
     Expect(0, 111355, '\P{Is_Scx=nshu}', "");
@@ -149247,16 +150711,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 111356, '\p{^Is_Scx=nshu}', "");
     Expect(1, 111356, '\P{Is_Scx=nshu}', "");
     Expect(0, 111356, '\P{^Is_Scx=nshu}', "");
-    Expect(1, 111355, '\p{Is_Scx=_	Nshu}', "");
-    Expect(0, 111355, '\p{^Is_Scx=_	Nshu}', "");
-    Expect(0, 111355, '\P{Is_Scx=_	Nshu}', "");
-    Expect(1, 111355, '\P{^Is_Scx=_	Nshu}', "");
-    Expect(0, 111356, '\p{Is_Scx=_	Nshu}', "");
-    Expect(1, 111356, '\p{^Is_Scx=_	Nshu}', "");
-    Expect(1, 111356, '\P{Is_Scx=_	Nshu}', "");
-    Expect(0, 111356, '\P{^Is_Scx=_	Nshu}', "");
-    Error('\p{Script_Extensions=	 OGHAM:=}');
-    Error('\P{Script_Extensions=	 OGHAM:=}');
+    Expect(1, 111355, '\p{Is_Scx=_NSHU}', "");
+    Expect(0, 111355, '\p{^Is_Scx=_NSHU}', "");
+    Expect(0, 111355, '\P{Is_Scx=_NSHU}', "");
+    Expect(1, 111355, '\P{^Is_Scx=_NSHU}', "");
+    Expect(0, 111356, '\p{Is_Scx=_NSHU}', "");
+    Expect(1, 111356, '\p{^Is_Scx=_NSHU}', "");
+    Expect(1, 111356, '\P{Is_Scx=_NSHU}', "");
+    Expect(0, 111356, '\P{^Is_Scx=_NSHU}', "");
+    Error('\p{Script_Extensions=:=OGHAM}');
+    Error('\P{Script_Extensions=:=OGHAM}');
     Expect(1, 5788, '\p{Script_Extensions=:\AOgham\z:}', "");;
     Expect(0, 5789, '\p{Script_Extensions=:\AOgham\z:}', "");;
     Expect(1, 5788, '\p{Script_Extensions=ogham}', "");
@@ -149269,38 +150733,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5789, '\P{^Script_Extensions=ogham}', "");
     Expect(1, 5788, '\p{Script_Extensions=:\Aogham\z:}', "");;
     Expect(0, 5789, '\p{Script_Extensions=:\Aogham\z:}', "");;
-    Expect(1, 5788, '\p{Script_Extensions=	OGHAM}', "");
-    Expect(0, 5788, '\p{^Script_Extensions=	OGHAM}', "");
-    Expect(0, 5788, '\P{Script_Extensions=	OGHAM}', "");
-    Expect(1, 5788, '\P{^Script_Extensions=	OGHAM}', "");
-    Expect(0, 5789, '\p{Script_Extensions=	OGHAM}', "");
-    Expect(1, 5789, '\p{^Script_Extensions=	OGHAM}', "");
-    Expect(1, 5789, '\P{Script_Extensions=	OGHAM}', "");
-    Expect(0, 5789, '\P{^Script_Extensions=	OGHAM}', "");
-    Error('\p{Scx=OGAM:=}');
-    Error('\P{Scx=OGAM:=}');
+    Expect(1, 5788, '\p{Script_Extensions=	Ogham}', "");
+    Expect(0, 5788, '\p{^Script_Extensions=	Ogham}', "");
+    Expect(0, 5788, '\P{Script_Extensions=	Ogham}', "");
+    Expect(1, 5788, '\P{^Script_Extensions=	Ogham}', "");
+    Expect(0, 5789, '\p{Script_Extensions=	Ogham}', "");
+    Expect(1, 5789, '\p{^Script_Extensions=	Ogham}', "");
+    Expect(1, 5789, '\P{Script_Extensions=	Ogham}', "");
+    Expect(0, 5789, '\P{^Script_Extensions=	Ogham}', "");
+    Error('\p{Scx: :=	OGAM}');
+    Error('\P{Scx: :=	OGAM}');
     Expect(1, 5788, '\p{Scx=:\AOgam\z:}', "");;
     Expect(0, 5789, '\p{Scx=:\AOgam\z:}', "");;
-    Expect(1, 5788, '\p{Scx=ogam}', "");
-    Expect(0, 5788, '\p{^Scx=ogam}', "");
-    Expect(0, 5788, '\P{Scx=ogam}', "");
-    Expect(1, 5788, '\P{^Scx=ogam}', "");
-    Expect(0, 5789, '\p{Scx=ogam}', "");
-    Expect(1, 5789, '\p{^Scx=ogam}', "");
-    Expect(1, 5789, '\P{Scx=ogam}', "");
-    Expect(0, 5789, '\P{^Scx=ogam}', "");
+    Expect(1, 5788, '\p{Scx: ogam}', "");
+    Expect(0, 5788, '\p{^Scx: ogam}', "");
+    Expect(0, 5788, '\P{Scx: ogam}', "");
+    Expect(1, 5788, '\P{^Scx: ogam}', "");
+    Expect(0, 5789, '\p{Scx: ogam}', "");
+    Expect(1, 5789, '\p{^Scx: ogam}', "");
+    Expect(1, 5789, '\P{Scx: ogam}', "");
+    Expect(0, 5789, '\P{^Scx: ogam}', "");
     Expect(1, 5788, '\p{Scx=:\Aogam\z:}', "");;
     Expect(0, 5789, '\p{Scx=:\Aogam\z:}', "");;
-    Expect(1, 5788, '\p{Scx=__Ogam}', "");
-    Expect(0, 5788, '\p{^Scx=__Ogam}', "");
-    Expect(0, 5788, '\P{Scx=__Ogam}', "");
-    Expect(1, 5788, '\P{^Scx=__Ogam}', "");
-    Expect(0, 5789, '\p{Scx=__Ogam}', "");
-    Expect(1, 5789, '\p{^Scx=__Ogam}', "");
-    Expect(1, 5789, '\P{Scx=__Ogam}', "");
-    Expect(0, 5789, '\P{^Scx=__Ogam}', "");
-    Error('\p{Is_Script_Extensions=:=	 Ogham}');
-    Error('\P{Is_Script_Extensions=:=	 Ogham}');
+    Expect(1, 5788, '\p{Scx= -Ogam}', "");
+    Expect(0, 5788, '\p{^Scx= -Ogam}', "");
+    Expect(0, 5788, '\P{Scx= -Ogam}', "");
+    Expect(1, 5788, '\P{^Scx= -Ogam}', "");
+    Expect(0, 5789, '\p{Scx= -Ogam}', "");
+    Expect(1, 5789, '\p{^Scx= -Ogam}', "");
+    Expect(1, 5789, '\P{Scx= -Ogam}', "");
+    Expect(0, 5789, '\P{^Scx= -Ogam}', "");
+    Error('\p{Is_Script_Extensions:/a/ogham}');
+    Error('\P{Is_Script_Extensions:/a/ogham}');
     Expect(1, 5788, '\p{Is_Script_Extensions=ogham}', "");
     Expect(0, 5788, '\p{^Is_Script_Extensions=ogham}', "");
     Expect(0, 5788, '\P{Is_Script_Extensions=ogham}', "");
@@ -149309,16 +150773,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5789, '\p{^Is_Script_Extensions=ogham}', "");
     Expect(1, 5789, '\P{Is_Script_Extensions=ogham}', "");
     Expect(0, 5789, '\P{^Is_Script_Extensions=ogham}', "");
-    Expect(1, 5788, '\p{Is_Script_Extensions=_	ogham}', "");
-    Expect(0, 5788, '\p{^Is_Script_Extensions=_	ogham}', "");
-    Expect(0, 5788, '\P{Is_Script_Extensions=_	ogham}', "");
-    Expect(1, 5788, '\P{^Is_Script_Extensions=_	ogham}', "");
-    Expect(0, 5789, '\p{Is_Script_Extensions=_	ogham}', "");
-    Expect(1, 5789, '\p{^Is_Script_Extensions=_	ogham}', "");
-    Expect(1, 5789, '\P{Is_Script_Extensions=_	ogham}', "");
-    Expect(0, 5789, '\P{^Is_Script_Extensions=_	ogham}', "");
-    Error('\p{Is_Scx=	Ogam:=}');
-    Error('\P{Is_Scx=	Ogam:=}');
+    Expect(1, 5788, '\p{Is_Script_Extensions=		Ogham}', "");
+    Expect(0, 5788, '\p{^Is_Script_Extensions=		Ogham}', "");
+    Expect(0, 5788, '\P{Is_Script_Extensions=		Ogham}', "");
+    Expect(1, 5788, '\P{^Is_Script_Extensions=		Ogham}', "");
+    Expect(0, 5789, '\p{Is_Script_Extensions=		Ogham}', "");
+    Expect(1, 5789, '\p{^Is_Script_Extensions=		Ogham}', "");
+    Expect(1, 5789, '\P{Is_Script_Extensions=		Ogham}', "");
+    Expect(0, 5789, '\P{^Is_Script_Extensions=		Ogham}', "");
+    Error('\p{Is_Scx=:=_	ogam}');
+    Error('\P{Is_Scx=:=_	ogam}');
     Expect(1, 5788, '\p{Is_Scx=ogam}', "");
     Expect(0, 5788, '\p{^Is_Scx=ogam}', "");
     Expect(0, 5788, '\P{Is_Scx=ogam}', "");
@@ -149327,16 +150791,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5789, '\p{^Is_Scx=ogam}', "");
     Expect(1, 5789, '\P{Is_Scx=ogam}', "");
     Expect(0, 5789, '\P{^Is_Scx=ogam}', "");
-    Expect(1, 5788, '\p{Is_Scx=--Ogam}', "");
-    Expect(0, 5788, '\p{^Is_Scx=--Ogam}', "");
-    Expect(0, 5788, '\P{Is_Scx=--Ogam}', "");
-    Expect(1, 5788, '\P{^Is_Scx=--Ogam}', "");
-    Expect(0, 5789, '\p{Is_Scx=--Ogam}', "");
-    Expect(1, 5789, '\p{^Is_Scx=--Ogam}', "");
-    Expect(1, 5789, '\P{Is_Scx=--Ogam}', "");
-    Expect(0, 5789, '\P{^Is_Scx=--Ogam}', "");
-    Error('\p{Script_Extensions=:=		Ol_chiki}');
-    Error('\P{Script_Extensions=:=		Ol_chiki}');
+    Expect(1, 5788, '\p{Is_Scx=-Ogam}', "");
+    Expect(0, 5788, '\p{^Is_Scx=-Ogam}', "");
+    Expect(0, 5788, '\P{Is_Scx=-Ogam}', "");
+    Expect(1, 5788, '\P{^Is_Scx=-Ogam}', "");
+    Expect(0, 5789, '\p{Is_Scx=-Ogam}', "");
+    Expect(1, 5789, '\p{^Is_Scx=-Ogam}', "");
+    Expect(1, 5789, '\P{Is_Scx=-Ogam}', "");
+    Expect(0, 5789, '\P{^Is_Scx=-Ogam}', "");
+    Error('\p{Script_Extensions=:=--OL_CHIKI}');
+    Error('\P{Script_Extensions=:=--OL_CHIKI}');
     Expect(1, 7295, '\p{Script_Extensions=:\AOl_Chiki\z:}', "");;
     Expect(0, 7296, '\p{Script_Extensions=:\AOl_Chiki\z:}', "");;
     Expect(1, 7295, '\p{Script_Extensions=olchiki}', "");
@@ -149349,74 +150813,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7296, '\P{^Script_Extensions=olchiki}', "");
     Expect(1, 7295, '\p{Script_Extensions=:\Aolchiki\z:}', "");;
     Expect(0, 7296, '\p{Script_Extensions=:\Aolchiki\z:}', "");;
-    Expect(1, 7295, '\p{Script_Extensions=_ Ol_chiki}', "");
-    Expect(0, 7295, '\p{^Script_Extensions=_ Ol_chiki}', "");
-    Expect(0, 7295, '\P{Script_Extensions=_ Ol_chiki}', "");
-    Expect(1, 7295, '\P{^Script_Extensions=_ Ol_chiki}', "");
-    Expect(0, 7296, '\p{Script_Extensions=_ Ol_chiki}', "");
-    Expect(1, 7296, '\p{^Script_Extensions=_ Ol_chiki}', "");
-    Expect(1, 7296, '\P{Script_Extensions=_ Ol_chiki}', "");
-    Expect(0, 7296, '\P{^Script_Extensions=_ Ol_chiki}', "");
-    Error('\p{Scx=  Olck/a/}');
-    Error('\P{Scx=  Olck/a/}');
+    Expect(1, 7295, '\p{Script_Extensions=-Ol_Chiki}', "");
+    Expect(0, 7295, '\p{^Script_Extensions=-Ol_Chiki}', "");
+    Expect(0, 7295, '\P{Script_Extensions=-Ol_Chiki}', "");
+    Expect(1, 7295, '\P{^Script_Extensions=-Ol_Chiki}', "");
+    Expect(0, 7296, '\p{Script_Extensions=-Ol_Chiki}', "");
+    Expect(1, 7296, '\p{^Script_Extensions=-Ol_Chiki}', "");
+    Expect(1, 7296, '\P{Script_Extensions=-Ol_Chiki}', "");
+    Expect(0, 7296, '\P{^Script_Extensions=-Ol_Chiki}', "");
+    Error('\p{Scx= /a/Olck}');
+    Error('\P{Scx= /a/Olck}');
     Expect(1, 7295, '\p{Scx=:\AOlck\z:}', "");;
     Expect(0, 7296, '\p{Scx=:\AOlck\z:}', "");;
-    Expect(1, 7295, '\p{Scx=olck}', "");
-    Expect(0, 7295, '\p{^Scx=olck}', "");
-    Expect(0, 7295, '\P{Scx=olck}', "");
-    Expect(1, 7295, '\P{^Scx=olck}', "");
-    Expect(0, 7296, '\p{Scx=olck}', "");
-    Expect(1, 7296, '\p{^Scx=olck}', "");
-    Expect(1, 7296, '\P{Scx=olck}', "");
-    Expect(0, 7296, '\P{^Scx=olck}', "");
+    Expect(1, 7295, '\p{Scx:	olck}', "");
+    Expect(0, 7295, '\p{^Scx:	olck}', "");
+    Expect(0, 7295, '\P{Scx:	olck}', "");
+    Expect(1, 7295, '\P{^Scx:	olck}', "");
+    Expect(0, 7296, '\p{Scx:	olck}', "");
+    Expect(1, 7296, '\p{^Scx:	olck}', "");
+    Expect(1, 7296, '\P{Scx:	olck}', "");
+    Expect(0, 7296, '\P{^Scx:	olck}', "");
     Expect(1, 7295, '\p{Scx=:\Aolck\z:}', "");;
     Expect(0, 7296, '\p{Scx=:\Aolck\z:}', "");;
-    Expect(1, 7295, '\p{Scx=-	OLCK}', "");
-    Expect(0, 7295, '\p{^Scx=-	OLCK}', "");
-    Expect(0, 7295, '\P{Scx=-	OLCK}', "");
-    Expect(1, 7295, '\P{^Scx=-	OLCK}', "");
-    Expect(0, 7296, '\p{Scx=-	OLCK}', "");
-    Expect(1, 7296, '\p{^Scx=-	OLCK}', "");
-    Expect(1, 7296, '\P{Scx=-	OLCK}', "");
-    Expect(0, 7296, '\P{^Scx=-	OLCK}', "");
-    Error('\p{Is_Script_Extensions= -OL_Chiki/a/}');
-    Error('\P{Is_Script_Extensions= -OL_Chiki/a/}');
-    Expect(1, 7295, '\p{Is_Script_Extensions: olchiki}', "");
-    Expect(0, 7295, '\p{^Is_Script_Extensions: olchiki}', "");
-    Expect(0, 7295, '\P{Is_Script_Extensions: olchiki}', "");
-    Expect(1, 7295, '\P{^Is_Script_Extensions: olchiki}', "");
-    Expect(0, 7296, '\p{Is_Script_Extensions: olchiki}', "");
-    Expect(1, 7296, '\p{^Is_Script_Extensions: olchiki}', "");
-    Expect(1, 7296, '\P{Is_Script_Extensions: olchiki}', "");
-    Expect(0, 7296, '\P{^Is_Script_Extensions: olchiki}', "");
-    Expect(1, 7295, '\p{Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(0, 7295, '\p{^Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(0, 7295, '\P{Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(1, 7295, '\P{^Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(0, 7296, '\p{Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(1, 7296, '\p{^Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(1, 7296, '\P{Is_Script_Extensions:    	ol_Chiki}', "");
-    Expect(0, 7296, '\P{^Is_Script_Extensions:    	ol_Chiki}', "");
-    Error('\p{Is_Scx= -OLCK:=}');
-    Error('\P{Is_Scx= -OLCK:=}');
-    Expect(1, 7295, '\p{Is_Scx: olck}', "");
-    Expect(0, 7295, '\p{^Is_Scx: olck}', "");
-    Expect(0, 7295, '\P{Is_Scx: olck}', "");
-    Expect(1, 7295, '\P{^Is_Scx: olck}', "");
-    Expect(0, 7296, '\p{Is_Scx: olck}', "");
-    Expect(1, 7296, '\p{^Is_Scx: olck}', "");
-    Expect(1, 7296, '\P{Is_Scx: olck}', "");
-    Expect(0, 7296, '\P{^Is_Scx: olck}', "");
-    Expect(1, 7295, '\p{Is_Scx: 		OLCK}', "");
-    Expect(0, 7295, '\p{^Is_Scx: 		OLCK}', "");
-    Expect(0, 7295, '\P{Is_Scx: 		OLCK}', "");
-    Expect(1, 7295, '\P{^Is_Scx: 		OLCK}', "");
-    Expect(0, 7296, '\p{Is_Scx: 		OLCK}', "");
-    Expect(1, 7296, '\p{^Is_Scx: 		OLCK}', "");
-    Expect(1, 7296, '\P{Is_Scx: 		OLCK}', "");
-    Expect(0, 7296, '\P{^Is_Scx: 		OLCK}', "");
-    Error('\p{Script_Extensions=:=-Old_Turkic}');
-    Error('\P{Script_Extensions=:=-Old_Turkic}');
+    Expect(1, 7295, '\p{Scx=__olck}', "");
+    Expect(0, 7295, '\p{^Scx=__olck}', "");
+    Expect(0, 7295, '\P{Scx=__olck}', "");
+    Expect(1, 7295, '\P{^Scx=__olck}', "");
+    Expect(0, 7296, '\p{Scx=__olck}', "");
+    Expect(1, 7296, '\p{^Scx=__olck}', "");
+    Expect(1, 7296, '\P{Scx=__olck}', "");
+    Expect(0, 7296, '\P{^Scx=__olck}', "");
+    Error('\p{Is_Script_Extensions=/a/_ol_CHIKI}');
+    Error('\P{Is_Script_Extensions=/a/_ol_CHIKI}');
+    Expect(1, 7295, '\p{Is_Script_Extensions=olchiki}', "");
+    Expect(0, 7295, '\p{^Is_Script_Extensions=olchiki}', "");
+    Expect(0, 7295, '\P{Is_Script_Extensions=olchiki}', "");
+    Expect(1, 7295, '\P{^Is_Script_Extensions=olchiki}', "");
+    Expect(0, 7296, '\p{Is_Script_Extensions=olchiki}', "");
+    Expect(1, 7296, '\p{^Is_Script_Extensions=olchiki}', "");
+    Expect(1, 7296, '\P{Is_Script_Extensions=olchiki}', "");
+    Expect(0, 7296, '\P{^Is_Script_Extensions=olchiki}', "");
+    Expect(1, 7295, '\p{Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(0, 7295, '\p{^Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(0, 7295, '\P{Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(1, 7295, '\P{^Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(0, 7296, '\p{Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(1, 7296, '\p{^Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(1, 7296, '\P{Is_Script_Extensions=_	Ol_chiki}', "");
+    Expect(0, 7296, '\P{^Is_Script_Extensions=_	Ol_chiki}', "");
+    Error('\p{Is_Scx=_:=OLCK}');
+    Error('\P{Is_Scx=_:=OLCK}');
+    Expect(1, 7295, '\p{Is_Scx=olck}', "");
+    Expect(0, 7295, '\p{^Is_Scx=olck}', "");
+    Expect(0, 7295, '\P{Is_Scx=olck}', "");
+    Expect(1, 7295, '\P{^Is_Scx=olck}', "");
+    Expect(0, 7296, '\p{Is_Scx=olck}', "");
+    Expect(1, 7296, '\p{^Is_Scx=olck}', "");
+    Expect(1, 7296, '\P{Is_Scx=olck}', "");
+    Expect(0, 7296, '\P{^Is_Scx=olck}', "");
+    Expect(1, 7295, '\p{Is_Scx= Olck}', "");
+    Expect(0, 7295, '\p{^Is_Scx= Olck}', "");
+    Expect(0, 7295, '\P{Is_Scx= Olck}', "");
+    Expect(1, 7295, '\P{^Is_Scx= Olck}', "");
+    Expect(0, 7296, '\p{Is_Scx= Olck}', "");
+    Expect(1, 7296, '\p{^Is_Scx= Olck}', "");
+    Expect(1, 7296, '\P{Is_Scx= Olck}', "");
+    Expect(0, 7296, '\P{^Is_Scx= Olck}', "");
+    Error('\p{Script_Extensions=_:=old_TURKIC}');
+    Error('\P{Script_Extensions=_:=old_TURKIC}');
     Expect(1, 68680, '\p{Script_Extensions=:\AOld_Turkic\z:}', "");;
     Expect(0, 68681, '\p{Script_Extensions=:\AOld_Turkic\z:}', "");;
     Expect(1, 68680, '\p{Script_Extensions=oldturkic}', "");
@@ -149429,16 +150893,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68681, '\P{^Script_Extensions=oldturkic}', "");
     Expect(1, 68680, '\p{Script_Extensions=:\Aoldturkic\z:}', "");;
     Expect(0, 68681, '\p{Script_Extensions=:\Aoldturkic\z:}', "");;
-    Expect(1, 68680, '\p{Script_Extensions= 	Old_turkic}', "");
-    Expect(0, 68680, '\p{^Script_Extensions= 	Old_turkic}', "");
-    Expect(0, 68680, '\P{Script_Extensions= 	Old_turkic}', "");
-    Expect(1, 68680, '\P{^Script_Extensions= 	Old_turkic}', "");
-    Expect(0, 68681, '\p{Script_Extensions= 	Old_turkic}', "");
-    Expect(1, 68681, '\p{^Script_Extensions= 	Old_turkic}', "");
-    Expect(1, 68681, '\P{Script_Extensions= 	Old_turkic}', "");
-    Expect(0, 68681, '\P{^Script_Extensions= 	Old_turkic}', "");
-    Error('\p{Scx=-	Orkh/a/}');
-    Error('\P{Scx=-	Orkh/a/}');
+    Expect(1, 68680, '\p{Script_Extensions=  Old_Turkic}', "");
+    Expect(0, 68680, '\p{^Script_Extensions=  Old_Turkic}', "");
+    Expect(0, 68680, '\P{Script_Extensions=  Old_Turkic}', "");
+    Expect(1, 68680, '\P{^Script_Extensions=  Old_Turkic}', "");
+    Expect(0, 68681, '\p{Script_Extensions=  Old_Turkic}', "");
+    Expect(1, 68681, '\p{^Script_Extensions=  Old_Turkic}', "");
+    Expect(1, 68681, '\P{Script_Extensions=  Old_Turkic}', "");
+    Expect(0, 68681, '\P{^Script_Extensions=  Old_Turkic}', "");
+    Error('\p{Scx=	:=orkh}');
+    Error('\P{Scx=	:=orkh}');
     Expect(1, 68680, '\p{Scx=:\AOrkh\z:}', "");;
     Expect(0, 68681, '\p{Scx=:\AOrkh\z:}', "");;
     Expect(1, 68680, '\p{Scx=orkh}', "");
@@ -149451,16 +150915,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68681, '\P{^Scx=orkh}', "");
     Expect(1, 68680, '\p{Scx=:\Aorkh\z:}', "");;
     Expect(0, 68681, '\p{Scx=:\Aorkh\z:}', "");;
-    Expect(1, 68680, '\p{Scx=-	orkh}', "");
-    Expect(0, 68680, '\p{^Scx=-	orkh}', "");
-    Expect(0, 68680, '\P{Scx=-	orkh}', "");
-    Expect(1, 68680, '\P{^Scx=-	orkh}', "");
-    Expect(0, 68681, '\p{Scx=-	orkh}', "");
-    Expect(1, 68681, '\p{^Scx=-	orkh}', "");
-    Expect(1, 68681, '\P{Scx=-	orkh}', "");
-    Expect(0, 68681, '\P{^Scx=-	orkh}', "");
-    Error('\p{Is_Script_Extensions=:=Old_Turkic}');
-    Error('\P{Is_Script_Extensions=:=Old_Turkic}');
+    Expect(1, 68680, '\p{Scx=Orkh}', "");
+    Expect(0, 68680, '\p{^Scx=Orkh}', "");
+    Expect(0, 68680, '\P{Scx=Orkh}', "");
+    Expect(1, 68680, '\P{^Scx=Orkh}', "");
+    Expect(0, 68681, '\p{Scx=Orkh}', "");
+    Expect(1, 68681, '\p{^Scx=Orkh}', "");
+    Expect(1, 68681, '\P{Scx=Orkh}', "");
+    Expect(0, 68681, '\P{^Scx=Orkh}', "");
+    Error('\p{Is_Script_Extensions=:= -Old_Turkic}');
+    Error('\P{Is_Script_Extensions=:= -Old_Turkic}');
     Expect(1, 68680, '\p{Is_Script_Extensions=oldturkic}', "");
     Expect(0, 68680, '\p{^Is_Script_Extensions=oldturkic}', "");
     Expect(0, 68680, '\P{Is_Script_Extensions=oldturkic}', "");
@@ -149469,16 +150933,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68681, '\p{^Is_Script_Extensions=oldturkic}', "");
     Expect(1, 68681, '\P{Is_Script_Extensions=oldturkic}', "");
     Expect(0, 68681, '\P{^Is_Script_Extensions=oldturkic}', "");
-    Expect(1, 68680, '\p{Is_Script_Extensions= Old_turkic}', "");
-    Expect(0, 68680, '\p{^Is_Script_Extensions= Old_turkic}', "");
-    Expect(0, 68680, '\P{Is_Script_Extensions= Old_turkic}', "");
-    Expect(1, 68680, '\P{^Is_Script_Extensions= Old_turkic}', "");
-    Expect(0, 68681, '\p{Is_Script_Extensions= Old_turkic}', "");
-    Expect(1, 68681, '\p{^Is_Script_Extensions= Old_turkic}', "");
-    Expect(1, 68681, '\P{Is_Script_Extensions= Old_turkic}', "");
-    Expect(0, 68681, '\P{^Is_Script_Extensions= Old_turkic}', "");
-    Error('\p{Is_Scx=	/a/ORKH}');
-    Error('\P{Is_Scx=	/a/ORKH}');
+    Expect(1, 68680, '\p{Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(0, 68680, '\p{^Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(0, 68680, '\P{Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(1, 68680, '\P{^Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(0, 68681, '\p{Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(1, 68681, '\p{^Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(1, 68681, '\P{Is_Script_Extensions:   	-Old_Turkic}', "");
+    Expect(0, 68681, '\P{^Is_Script_Extensions:   	-Old_Turkic}', "");
+    Error('\p{Is_Scx:	-/a/orkh}');
+    Error('\P{Is_Scx:	-/a/orkh}');
     Expect(1, 68680, '\p{Is_Scx=orkh}', "");
     Expect(0, 68680, '\p{^Is_Scx=orkh}', "");
     Expect(0, 68680, '\P{Is_Scx=orkh}', "");
@@ -149487,16 +150951,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68681, '\p{^Is_Scx=orkh}', "");
     Expect(1, 68681, '\P{Is_Scx=orkh}', "");
     Expect(0, 68681, '\P{^Is_Scx=orkh}', "");
-    Expect(1, 68680, '\p{Is_Scx:   orkh}', "");
-    Expect(0, 68680, '\p{^Is_Scx:   orkh}', "");
-    Expect(0, 68680, '\P{Is_Scx:   orkh}', "");
-    Expect(1, 68680, '\P{^Is_Scx:   orkh}', "");
-    Expect(0, 68681, '\p{Is_Scx:   orkh}', "");
-    Expect(1, 68681, '\p{^Is_Scx:   orkh}', "");
-    Expect(1, 68681, '\P{Is_Scx:   orkh}', "");
-    Expect(0, 68681, '\P{^Is_Scx:   orkh}', "");
-    Error('\p{Script_Extensions=		Oriya/a/}');
-    Error('\P{Script_Extensions=		Oriya/a/}');
+    Expect(1, 68680, '\p{Is_Scx=__Orkh}', "");
+    Expect(0, 68680, '\p{^Is_Scx=__Orkh}', "");
+    Expect(0, 68680, '\P{Is_Scx=__Orkh}', "");
+    Expect(1, 68680, '\P{^Is_Scx=__Orkh}', "");
+    Expect(0, 68681, '\p{Is_Scx=__Orkh}', "");
+    Expect(1, 68681, '\p{^Is_Scx=__Orkh}', "");
+    Expect(1, 68681, '\P{Is_Scx=__Orkh}', "");
+    Expect(0, 68681, '\P{^Is_Scx=__Orkh}', "");
+    Error('\p{Script_Extensions=/a/Oriya}');
+    Error('\P{Script_Extensions=/a/Oriya}');
     Expect(1, 7410, '\p{Script_Extensions=:\AOriya\z:}', "");;
     Expect(0, 7411, '\p{Script_Extensions=:\AOriya\z:}', "");;
     Expect(1, 7410, '\p{Script_Extensions=oriya}', "");
@@ -149509,16 +150973,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7411, '\P{^Script_Extensions=oriya}', "");
     Expect(1, 7410, '\p{Script_Extensions=:\Aoriya\z:}', "");;
     Expect(0, 7411, '\p{Script_Extensions=:\Aoriya\z:}', "");;
-    Expect(1, 7410, '\p{Script_Extensions=-_Oriya}', "");
-    Expect(0, 7410, '\p{^Script_Extensions=-_Oriya}', "");
-    Expect(0, 7410, '\P{Script_Extensions=-_Oriya}', "");
-    Expect(1, 7410, '\P{^Script_Extensions=-_Oriya}', "");
-    Expect(0, 7411, '\p{Script_Extensions=-_Oriya}', "");
-    Expect(1, 7411, '\p{^Script_Extensions=-_Oriya}', "");
-    Expect(1, 7411, '\P{Script_Extensions=-_Oriya}', "");
-    Expect(0, 7411, '\P{^Script_Extensions=-_Oriya}', "");
-    Error('\p{Scx=/a/ _Orya}');
-    Error('\P{Scx=/a/ _Orya}');
+    Expect(1, 7410, '\p{Script_Extensions=-oriya}', "");
+    Expect(0, 7410, '\p{^Script_Extensions=-oriya}', "");
+    Expect(0, 7410, '\P{Script_Extensions=-oriya}', "");
+    Expect(1, 7410, '\P{^Script_Extensions=-oriya}', "");
+    Expect(0, 7411, '\p{Script_Extensions=-oriya}', "");
+    Expect(1, 7411, '\p{^Script_Extensions=-oriya}', "");
+    Expect(1, 7411, '\P{Script_Extensions=-oriya}', "");
+    Expect(0, 7411, '\P{^Script_Extensions=-oriya}', "");
+    Error('\p{Scx=:=  ORYA}');
+    Error('\P{Scx=:=  ORYA}');
     Expect(1, 7410, '\p{Scx=:\AOrya\z:}', "");;
     Expect(0, 7411, '\p{Scx=:\AOrya\z:}', "");;
     Expect(1, 7410, '\p{Scx=orya}', "");
@@ -149531,52 +150995,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7411, '\P{^Scx=orya}', "");
     Expect(1, 7410, '\p{Scx=:\Aorya\z:}', "");;
     Expect(0, 7411, '\p{Scx=:\Aorya\z:}', "");;
-    Expect(1, 7410, '\p{Scx= Orya}', "");
-    Expect(0, 7410, '\p{^Scx= Orya}', "");
-    Expect(0, 7410, '\P{Scx= Orya}', "");
-    Expect(1, 7410, '\P{^Scx= Orya}', "");
-    Expect(0, 7411, '\p{Scx= Orya}', "");
-    Expect(1, 7411, '\p{^Scx= Orya}', "");
-    Expect(1, 7411, '\P{Scx= Orya}', "");
-    Expect(0, 7411, '\P{^Scx= Orya}', "");
-    Error('\p{Is_Script_Extensions=-	ORIYA/a/}');
-    Error('\P{Is_Script_Extensions=-	ORIYA/a/}');
-    Expect(1, 7410, '\p{Is_Script_Extensions:   oriya}', "");
-    Expect(0, 7410, '\p{^Is_Script_Extensions:   oriya}', "");
-    Expect(0, 7410, '\P{Is_Script_Extensions:   oriya}', "");
-    Expect(1, 7410, '\P{^Is_Script_Extensions:   oriya}', "");
-    Expect(0, 7411, '\p{Is_Script_Extensions:   oriya}', "");
-    Expect(1, 7411, '\p{^Is_Script_Extensions:   oriya}', "");
-    Expect(1, 7411, '\P{Is_Script_Extensions:   oriya}', "");
-    Expect(0, 7411, '\P{^Is_Script_Extensions:   oriya}', "");
-    Expect(1, 7410, '\p{Is_Script_Extensions=- Oriya}', "");
-    Expect(0, 7410, '\p{^Is_Script_Extensions=- Oriya}', "");
-    Expect(0, 7410, '\P{Is_Script_Extensions=- Oriya}', "");
-    Expect(1, 7410, '\P{^Is_Script_Extensions=- Oriya}', "");
-    Expect(0, 7411, '\p{Is_Script_Extensions=- Oriya}', "");
-    Expect(1, 7411, '\p{^Is_Script_Extensions=- Oriya}', "");
-    Expect(1, 7411, '\P{Is_Script_Extensions=- Oriya}', "");
-    Expect(0, 7411, '\P{^Is_Script_Extensions=- Oriya}', "");
-    Error('\p{Is_Scx=:=_orya}');
-    Error('\P{Is_Scx=:=_orya}');
-    Expect(1, 7410, '\p{Is_Scx=orya}', "");
-    Expect(0, 7410, '\p{^Is_Scx=orya}', "");
-    Expect(0, 7410, '\P{Is_Scx=orya}', "");
-    Expect(1, 7410, '\P{^Is_Scx=orya}', "");
-    Expect(0, 7411, '\p{Is_Scx=orya}', "");
-    Expect(1, 7411, '\p{^Is_Scx=orya}', "");
-    Expect(1, 7411, '\P{Is_Scx=orya}', "");
-    Expect(0, 7411, '\P{^Is_Scx=orya}', "");
-    Expect(1, 7410, '\p{Is_Scx=	-orya}', "");
-    Expect(0, 7410, '\p{^Is_Scx=	-orya}', "");
-    Expect(0, 7410, '\P{Is_Scx=	-orya}', "");
-    Expect(1, 7410, '\P{^Is_Scx=	-orya}', "");
-    Expect(0, 7411, '\p{Is_Scx=	-orya}', "");
-    Expect(1, 7411, '\p{^Is_Scx=	-orya}', "");
-    Expect(1, 7411, '\P{Is_Scx=	-orya}', "");
-    Expect(0, 7411, '\P{^Is_Scx=	-orya}', "");
-    Error('\p{Script_Extensions=-osage/a/}');
-    Error('\P{Script_Extensions=-osage/a/}');
+    Expect(1, 7410, '\p{Scx=	_Orya}', "");
+    Expect(0, 7410, '\p{^Scx=	_Orya}', "");
+    Expect(0, 7410, '\P{Scx=	_Orya}', "");
+    Expect(1, 7410, '\P{^Scx=	_Orya}', "");
+    Expect(0, 7411, '\p{Scx=	_Orya}', "");
+    Expect(1, 7411, '\p{^Scx=	_Orya}', "");
+    Expect(1, 7411, '\P{Scx=	_Orya}', "");
+    Expect(0, 7411, '\P{^Scx=	_Orya}', "");
+    Error('\p{Is_Script_Extensions=-:=oriya}');
+    Error('\P{Is_Script_Extensions=-:=oriya}');
+    Expect(1, 7410, '\p{Is_Script_Extensions=oriya}', "");
+    Expect(0, 7410, '\p{^Is_Script_Extensions=oriya}', "");
+    Expect(0, 7410, '\P{Is_Script_Extensions=oriya}', "");
+    Expect(1, 7410, '\P{^Is_Script_Extensions=oriya}', "");
+    Expect(0, 7411, '\p{Is_Script_Extensions=oriya}', "");
+    Expect(1, 7411, '\p{^Is_Script_Extensions=oriya}', "");
+    Expect(1, 7411, '\P{Is_Script_Extensions=oriya}', "");
+    Expect(0, 7411, '\P{^Is_Script_Extensions=oriya}', "");
+    Expect(1, 7410, '\p{Is_Script_Extensions=_ Oriya}', "");
+    Expect(0, 7410, '\p{^Is_Script_Extensions=_ Oriya}', "");
+    Expect(0, 7410, '\P{Is_Script_Extensions=_ Oriya}', "");
+    Expect(1, 7410, '\P{^Is_Script_Extensions=_ Oriya}', "");
+    Expect(0, 7411, '\p{Is_Script_Extensions=_ Oriya}', "");
+    Expect(1, 7411, '\p{^Is_Script_Extensions=_ Oriya}', "");
+    Expect(1, 7411, '\P{Is_Script_Extensions=_ Oriya}', "");
+    Expect(0, 7411, '\P{^Is_Script_Extensions=_ Oriya}', "");
+    Error('\p{Is_Scx=:=_ orya}');
+    Error('\P{Is_Scx=:=_ orya}');
+    Expect(1, 7410, '\p{Is_Scx:orya}', "");
+    Expect(0, 7410, '\p{^Is_Scx:orya}', "");
+    Expect(0, 7410, '\P{Is_Scx:orya}', "");
+    Expect(1, 7410, '\P{^Is_Scx:orya}', "");
+    Expect(0, 7411, '\p{Is_Scx:orya}', "");
+    Expect(1, 7411, '\p{^Is_Scx:orya}', "");
+    Expect(1, 7411, '\P{Is_Scx:orya}', "");
+    Expect(0, 7411, '\P{^Is_Scx:orya}', "");
+    Expect(1, 7410, '\p{Is_Scx=		ORYA}', "");
+    Expect(0, 7410, '\p{^Is_Scx=		ORYA}', "");
+    Expect(0, 7410, '\P{Is_Scx=		ORYA}', "");
+    Expect(1, 7410, '\P{^Is_Scx=		ORYA}', "");
+    Expect(0, 7411, '\p{Is_Scx=		ORYA}', "");
+    Expect(1, 7411, '\p{^Is_Scx=		ORYA}', "");
+    Expect(1, 7411, '\P{Is_Scx=		ORYA}', "");
+    Expect(0, 7411, '\P{^Is_Scx=		ORYA}', "");
+    Error('\p{Script_Extensions=/a/osage}');
+    Error('\P{Script_Extensions=/a/osage}');
     Expect(1, 66811, '\p{Script_Extensions=:\AOsage\z:}', "");;
     Expect(0, 66812, '\p{Script_Extensions=:\AOsage\z:}', "");;
     Expect(1, 66811, '\p{Script_Extensions=osage}', "");
@@ -149589,16 +151053,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66812, '\P{^Script_Extensions=osage}', "");
     Expect(1, 66811, '\p{Script_Extensions=:\Aosage\z:}', "");;
     Expect(0, 66812, '\p{Script_Extensions=:\Aosage\z:}', "");;
-    Expect(1, 66811, '\p{Script_Extensions: osage}', "");
-    Expect(0, 66811, '\p{^Script_Extensions: osage}', "");
-    Expect(0, 66811, '\P{Script_Extensions: osage}', "");
-    Expect(1, 66811, '\P{^Script_Extensions: osage}', "");
-    Expect(0, 66812, '\p{Script_Extensions: osage}', "");
-    Expect(1, 66812, '\p{^Script_Extensions: osage}', "");
-    Expect(1, 66812, '\P{Script_Extensions: osage}', "");
-    Expect(0, 66812, '\P{^Script_Extensions: osage}', "");
-    Error('\p{Scx:	 -Osge/a/}');
-    Error('\P{Scx:	 -Osge/a/}');
+    Expect(1, 66811, '\p{Script_Extensions=  osage}', "");
+    Expect(0, 66811, '\p{^Script_Extensions=  osage}', "");
+    Expect(0, 66811, '\P{Script_Extensions=  osage}', "");
+    Expect(1, 66811, '\P{^Script_Extensions=  osage}', "");
+    Expect(0, 66812, '\p{Script_Extensions=  osage}', "");
+    Expect(1, 66812, '\p{^Script_Extensions=  osage}', "");
+    Expect(1, 66812, '\P{Script_Extensions=  osage}', "");
+    Expect(0, 66812, '\P{^Script_Extensions=  osage}', "");
+    Error('\p{Scx=:=	Osge}');
+    Error('\P{Scx=:=	Osge}');
     Expect(1, 66811, '\p{Scx=:\AOsge\z:}', "");;
     Expect(0, 66812, '\p{Scx=:\AOsge\z:}', "");;
     Expect(1, 66811, '\p{Scx=osge}', "");
@@ -149611,16 +151075,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66812, '\P{^Scx=osge}', "");
     Expect(1, 66811, '\p{Scx=:\Aosge\z:}', "");;
     Expect(0, 66812, '\p{Scx=:\Aosge\z:}', "");;
-    Expect(1, 66811, '\p{Scx= 	OSGE}', "");
-    Expect(0, 66811, '\p{^Scx= 	OSGE}', "");
-    Expect(0, 66811, '\P{Scx= 	OSGE}', "");
-    Expect(1, 66811, '\P{^Scx= 	OSGE}', "");
-    Expect(0, 66812, '\p{Scx= 	OSGE}', "");
-    Expect(1, 66812, '\p{^Scx= 	OSGE}', "");
-    Expect(1, 66812, '\P{Scx= 	OSGE}', "");
-    Expect(0, 66812, '\P{^Scx= 	OSGE}', "");
-    Error('\p{Is_Script_Extensions=:=_	Osage}');
-    Error('\P{Is_Script_Extensions=:=_	Osage}');
+    Error('\p{Is_Script_Extensions=_:=OSAGE}');
+    Error('\P{Is_Script_Extensions=_:=OSAGE}');
     Expect(1, 66811, '\p{Is_Script_Extensions=osage}', "");
     Expect(0, 66811, '\p{^Is_Script_Extensions=osage}', "");
     Expect(0, 66811, '\P{Is_Script_Extensions=osage}', "");
@@ -149629,16 +151085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66812, '\p{^Is_Script_Extensions=osage}', "");
     Expect(1, 66812, '\P{Is_Script_Extensions=osage}', "");
     Expect(0, 66812, '\P{^Is_Script_Extensions=osage}', "");
-    Expect(1, 66811, '\p{Is_Script_Extensions= 	Osage}', "");
-    Expect(0, 66811, '\p{^Is_Script_Extensions= 	Osage}', "");
-    Expect(0, 66811, '\P{Is_Script_Extensions= 	Osage}', "");
-    Expect(1, 66811, '\P{^Is_Script_Extensions= 	Osage}', "");
-    Expect(0, 66812, '\p{Is_Script_Extensions= 	Osage}', "");
-    Expect(1, 66812, '\p{^Is_Script_Extensions= 	Osage}', "");
-    Expect(1, 66812, '\P{Is_Script_Extensions= 	Osage}', "");
-    Expect(0, 66812, '\P{^Is_Script_Extensions= 	Osage}', "");
-    Error('\p{Is_Scx: :=Osge}');
-    Error('\P{Is_Scx: :=Osge}');
+    Expect(1, 66811, '\p{Is_Script_Extensions=_Osage}', "");
+    Expect(0, 66811, '\p{^Is_Script_Extensions=_Osage}', "");
+    Expect(0, 66811, '\P{Is_Script_Extensions=_Osage}', "");
+    Expect(1, 66811, '\P{^Is_Script_Extensions=_Osage}', "");
+    Expect(0, 66812, '\p{Is_Script_Extensions=_Osage}', "");
+    Expect(1, 66812, '\p{^Is_Script_Extensions=_Osage}', "");
+    Expect(1, 66812, '\P{Is_Script_Extensions=_Osage}', "");
+    Expect(0, 66812, '\P{^Is_Script_Extensions=_Osage}', "");
+    Error('\p{Is_Scx=/a/Osge}');
+    Error('\P{Is_Scx=/a/Osge}');
     Expect(1, 66811, '\p{Is_Scx=osge}', "");
     Expect(0, 66811, '\p{^Is_Scx=osge}', "");
     Expect(0, 66811, '\P{Is_Scx=osge}', "");
@@ -149647,60 +151103,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66812, '\p{^Is_Scx=osge}', "");
     Expect(1, 66812, '\P{Is_Scx=osge}', "");
     Expect(0, 66812, '\P{^Is_Scx=osge}', "");
-    Expect(1, 66811, '\p{Is_Scx: --Osge}', "");
-    Expect(0, 66811, '\p{^Is_Scx: --Osge}', "");
-    Expect(0, 66811, '\P{Is_Scx: --Osge}', "");
-    Expect(1, 66811, '\P{^Is_Scx: --Osge}', "");
-    Expect(0, 66812, '\p{Is_Scx: --Osge}', "");
-    Expect(1, 66812, '\p{^Is_Scx: --Osge}', "");
-    Expect(1, 66812, '\P{Is_Scx: --Osge}', "");
-    Expect(0, 66812, '\P{^Is_Scx: --Osge}', "");
-    Error('\p{Script_Extensions=/a/-OSMANYA}');
-    Error('\P{Script_Extensions=/a/-OSMANYA}');
+    Expect(1, 66811, '\p{Is_Scx=	 OSGE}', "");
+    Expect(0, 66811, '\p{^Is_Scx=	 OSGE}', "");
+    Expect(0, 66811, '\P{Is_Scx=	 OSGE}', "");
+    Expect(1, 66811, '\P{^Is_Scx=	 OSGE}', "");
+    Expect(0, 66812, '\p{Is_Scx=	 OSGE}', "");
+    Expect(1, 66812, '\p{^Is_Scx=	 OSGE}', "");
+    Expect(1, 66812, '\P{Is_Scx=	 OSGE}', "");
+    Expect(0, 66812, '\P{^Is_Scx=	 OSGE}', "");
+    Error('\p{Script_Extensions=:=-	osmanya}');
+    Error('\P{Script_Extensions=:=-	osmanya}');
     Expect(1, 66729, '\p{Script_Extensions=:\AOsmanya\z:}', "");;
     Expect(0, 66730, '\p{Script_Extensions=:\AOsmanya\z:}', "");;
-    Expect(1, 66729, '\p{Script_Extensions:   osmanya}', "");
-    Expect(0, 66729, '\p{^Script_Extensions:   osmanya}', "");
-    Expect(0, 66729, '\P{Script_Extensions:   osmanya}', "");
-    Expect(1, 66729, '\P{^Script_Extensions:   osmanya}', "");
-    Expect(0, 66730, '\p{Script_Extensions:   osmanya}', "");
-    Expect(1, 66730, '\p{^Script_Extensions:   osmanya}', "");
-    Expect(1, 66730, '\P{Script_Extensions:   osmanya}', "");
-    Expect(0, 66730, '\P{^Script_Extensions:   osmanya}', "");
+    Expect(1, 66729, '\p{Script_Extensions=osmanya}', "");
+    Expect(0, 66729, '\p{^Script_Extensions=osmanya}', "");
+    Expect(0, 66729, '\P{Script_Extensions=osmanya}', "");
+    Expect(1, 66729, '\P{^Script_Extensions=osmanya}', "");
+    Expect(0, 66730, '\p{Script_Extensions=osmanya}', "");
+    Expect(1, 66730, '\p{^Script_Extensions=osmanya}', "");
+    Expect(1, 66730, '\P{Script_Extensions=osmanya}', "");
+    Expect(0, 66730, '\P{^Script_Extensions=osmanya}', "");
     Expect(1, 66729, '\p{Script_Extensions=:\Aosmanya\z:}', "");;
     Expect(0, 66730, '\p{Script_Extensions=:\Aosmanya\z:}', "");;
-    Expect(1, 66729, '\p{Script_Extensions=- Osmanya}', "");
-    Expect(0, 66729, '\p{^Script_Extensions=- Osmanya}', "");
-    Expect(0, 66729, '\P{Script_Extensions=- Osmanya}', "");
-    Expect(1, 66729, '\P{^Script_Extensions=- Osmanya}', "");
-    Expect(0, 66730, '\p{Script_Extensions=- Osmanya}', "");
-    Expect(1, 66730, '\p{^Script_Extensions=- Osmanya}', "");
-    Expect(1, 66730, '\P{Script_Extensions=- Osmanya}', "");
-    Expect(0, 66730, '\P{^Script_Extensions=- Osmanya}', "");
-    Error('\p{Scx=:=	-Osma}');
-    Error('\P{Scx=:=	-Osma}');
+    Expect(1, 66729, '\p{Script_Extensions:		 osmanya}', "");
+    Expect(0, 66729, '\p{^Script_Extensions:		 osmanya}', "");
+    Expect(0, 66729, '\P{Script_Extensions:		 osmanya}', "");
+    Expect(1, 66729, '\P{^Script_Extensions:		 osmanya}', "");
+    Expect(0, 66730, '\p{Script_Extensions:		 osmanya}', "");
+    Expect(1, 66730, '\p{^Script_Extensions:		 osmanya}', "");
+    Expect(1, 66730, '\P{Script_Extensions:		 osmanya}', "");
+    Expect(0, 66730, '\P{^Script_Extensions:		 osmanya}', "");
+    Error('\p{Scx=/a/ _OSMA}');
+    Error('\P{Scx=/a/ _OSMA}');
     Expect(1, 66729, '\p{Scx=:\AOsma\z:}', "");;
     Expect(0, 66730, '\p{Scx=:\AOsma\z:}', "");;
-    Expect(1, 66729, '\p{Scx:   osma}', "");
-    Expect(0, 66729, '\p{^Scx:   osma}', "");
-    Expect(0, 66729, '\P{Scx:   osma}', "");
-    Expect(1, 66729, '\P{^Scx:   osma}', "");
-    Expect(0, 66730, '\p{Scx:   osma}', "");
-    Expect(1, 66730, '\p{^Scx:   osma}', "");
-    Expect(1, 66730, '\P{Scx:   osma}', "");
-    Expect(0, 66730, '\P{^Scx:   osma}', "");
+    Expect(1, 66729, '\p{Scx=osma}', "");
+    Expect(0, 66729, '\p{^Scx=osma}', "");
+    Expect(0, 66729, '\P{Scx=osma}', "");
+    Expect(1, 66729, '\P{^Scx=osma}', "");
+    Expect(0, 66730, '\p{Scx=osma}', "");
+    Expect(1, 66730, '\p{^Scx=osma}', "");
+    Expect(1, 66730, '\P{Scx=osma}', "");
+    Expect(0, 66730, '\P{^Scx=osma}', "");
     Expect(1, 66729, '\p{Scx=:\Aosma\z:}', "");;
     Expect(0, 66730, '\p{Scx=:\Aosma\z:}', "");;
-    Expect(1, 66729, '\p{Scx=		Osma}', "");
-    Expect(0, 66729, '\p{^Scx=		Osma}', "");
-    Expect(0, 66729, '\P{Scx=		Osma}', "");
-    Expect(1, 66729, '\P{^Scx=		Osma}', "");
-    Expect(0, 66730, '\p{Scx=		Osma}', "");
-    Expect(1, 66730, '\p{^Scx=		Osma}', "");
-    Expect(1, 66730, '\P{Scx=		Osma}', "");
-    Expect(0, 66730, '\P{^Scx=		Osma}', "");
-    Error('\p{Is_Script_Extensions=  osmanya:=}');
-    Error('\P{Is_Script_Extensions=  osmanya:=}');
+    Expect(1, 66729, '\p{Scx=	_Osma}', "");
+    Expect(0, 66729, '\p{^Scx=	_Osma}', "");
+    Expect(0, 66729, '\P{Scx=	_Osma}', "");
+    Expect(1, 66729, '\P{^Scx=	_Osma}', "");
+    Expect(0, 66730, '\p{Scx=	_Osma}', "");
+    Expect(1, 66730, '\p{^Scx=	_Osma}', "");
+    Expect(1, 66730, '\P{Scx=	_Osma}', "");
+    Expect(0, 66730, '\P{^Scx=	_Osma}', "");
+    Error('\p{Is_Script_Extensions=_/a/Osmanya}');
+    Error('\P{Is_Script_Extensions=_/a/Osmanya}');
     Expect(1, 66729, '\p{Is_Script_Extensions=osmanya}', "");
     Expect(0, 66729, '\p{^Is_Script_Extensions=osmanya}', "");
     Expect(0, 66729, '\P{Is_Script_Extensions=osmanya}', "");
@@ -149709,16 +151165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66730, '\p{^Is_Script_Extensions=osmanya}', "");
     Expect(1, 66730, '\P{Is_Script_Extensions=osmanya}', "");
     Expect(0, 66730, '\P{^Is_Script_Extensions=osmanya}', "");
-    Expect(1, 66729, '\p{Is_Script_Extensions=_ osmanya}', "");
-    Expect(0, 66729, '\p{^Is_Script_Extensions=_ osmanya}', "");
-    Expect(0, 66729, '\P{Is_Script_Extensions=_ osmanya}', "");
-    Expect(1, 66729, '\P{^Is_Script_Extensions=_ osmanya}', "");
-    Expect(0, 66730, '\p{Is_Script_Extensions=_ osmanya}', "");
-    Expect(1, 66730, '\p{^Is_Script_Extensions=_ osmanya}', "");
-    Expect(1, 66730, '\P{Is_Script_Extensions=_ osmanya}', "");
-    Expect(0, 66730, '\P{^Is_Script_Extensions=_ osmanya}', "");
-    Error('\p{Is_Scx=	:=OSMA}');
-    Error('\P{Is_Scx=	:=OSMA}');
+    Expect(1, 66729, '\p{Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(0, 66729, '\p{^Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(0, 66729, '\P{Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(1, 66729, '\P{^Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(0, 66730, '\p{Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(1, 66730, '\p{^Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(1, 66730, '\P{Is_Script_Extensions=	 OSMANYA}', "");
+    Expect(0, 66730, '\P{^Is_Script_Extensions=	 OSMANYA}', "");
+    Error('\p{Is_Scx=/a/-Osma}');
+    Error('\P{Is_Scx=/a/-Osma}');
     Expect(1, 66729, '\p{Is_Scx=osma}', "");
     Expect(0, 66729, '\p{^Is_Scx=osma}', "");
     Expect(0, 66729, '\P{Is_Scx=osma}', "");
@@ -149727,16 +151183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66730, '\p{^Is_Scx=osma}', "");
     Expect(1, 66730, '\P{Is_Scx=osma}', "");
     Expect(0, 66730, '\P{^Is_Scx=osma}', "");
-    Expect(1, 66729, '\p{Is_Scx=_ OSMA}', "");
-    Expect(0, 66729, '\p{^Is_Scx=_ OSMA}', "");
-    Expect(0, 66729, '\P{Is_Scx=_ OSMA}', "");
-    Expect(1, 66729, '\P{^Is_Scx=_ OSMA}', "");
-    Expect(0, 66730, '\p{Is_Scx=_ OSMA}', "");
-    Expect(1, 66730, '\p{^Is_Scx=_ OSMA}', "");
-    Expect(1, 66730, '\P{Is_Scx=_ OSMA}', "");
-    Expect(0, 66730, '\P{^Is_Scx=_ OSMA}', "");
-    Error('\p{Script_Extensions= /a/Old_Uyghur}');
-    Error('\P{Script_Extensions= /a/Old_Uyghur}');
+    Expect(1, 66729, '\p{Is_Scx=-Osma}', "");
+    Expect(0, 66729, '\p{^Is_Scx=-Osma}', "");
+    Expect(0, 66729, '\P{Is_Scx=-Osma}', "");
+    Expect(1, 66729, '\P{^Is_Scx=-Osma}', "");
+    Expect(0, 66730, '\p{Is_Scx=-Osma}', "");
+    Expect(1, 66730, '\p{^Is_Scx=-Osma}', "");
+    Expect(1, 66730, '\P{Is_Scx=-Osma}', "");
+    Expect(0, 66730, '\P{^Is_Scx=-Osma}', "");
+    Error('\p{Script_Extensions:   /a/_Old_uyghur}');
+    Error('\P{Script_Extensions:   /a/_Old_uyghur}');
     Expect(1, 69513, '\p{Script_Extensions=:\AOld_Uyghur\z:}', "");;
     Expect(0, 69514, '\p{Script_Extensions=:\AOld_Uyghur\z:}', "");;
     Expect(1, 69513, '\p{Script_Extensions=olduyghur}', "");
@@ -149749,16 +151205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69514, '\P{^Script_Extensions=olduyghur}', "");
     Expect(1, 69513, '\p{Script_Extensions=:\Aolduyghur\z:}', "");;
     Expect(0, 69514, '\p{Script_Extensions=:\Aolduyghur\z:}', "");;
-    Expect(1, 69513, '\p{Script_Extensions= _Old_Uyghur}', "");
-    Expect(0, 69513, '\p{^Script_Extensions= _Old_Uyghur}', "");
-    Expect(0, 69513, '\P{Script_Extensions= _Old_Uyghur}', "");
-    Expect(1, 69513, '\P{^Script_Extensions= _Old_Uyghur}', "");
-    Expect(0, 69514, '\p{Script_Extensions= _Old_Uyghur}', "");
-    Expect(1, 69514, '\p{^Script_Extensions= _Old_Uyghur}', "");
-    Expect(1, 69514, '\P{Script_Extensions= _Old_Uyghur}', "");
-    Expect(0, 69514, '\P{^Script_Extensions= _Old_Uyghur}', "");
-    Error('\p{Scx:    :=Ougr}');
-    Error('\P{Scx:    :=Ougr}');
+    Expect(1, 69513, '\p{Script_Extensions= Old_UYGHUR}', "");
+    Expect(0, 69513, '\p{^Script_Extensions= Old_UYGHUR}', "");
+    Expect(0, 69513, '\P{Script_Extensions= Old_UYGHUR}', "");
+    Expect(1, 69513, '\P{^Script_Extensions= Old_UYGHUR}', "");
+    Expect(0, 69514, '\p{Script_Extensions= Old_UYGHUR}', "");
+    Expect(1, 69514, '\p{^Script_Extensions= Old_UYGHUR}', "");
+    Expect(1, 69514, '\P{Script_Extensions= Old_UYGHUR}', "");
+    Expect(0, 69514, '\P{^Script_Extensions= Old_UYGHUR}', "");
+    Error('\p{Scx=_	Ougr/a/}');
+    Error('\P{Scx=_	Ougr/a/}');
     Expect(1, 69513, '\p{Scx=:\AOugr\z:}', "");;
     Expect(0, 69514, '\p{Scx=:\AOugr\z:}', "");;
     Expect(1, 69513, '\p{Scx=ougr}', "");
@@ -149771,16 +151227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69514, '\P{^Scx=ougr}', "");
     Expect(1, 69513, '\p{Scx=:\Aougr\z:}', "");;
     Expect(0, 69514, '\p{Scx=:\Aougr\z:}', "");;
-    Expect(1, 69513, '\p{Scx=Ougr}', "");
-    Expect(0, 69513, '\p{^Scx=Ougr}', "");
-    Expect(0, 69513, '\P{Scx=Ougr}', "");
-    Expect(1, 69513, '\P{^Scx=Ougr}', "");
-    Expect(0, 69514, '\p{Scx=Ougr}', "");
-    Expect(1, 69514, '\p{^Scx=Ougr}', "");
-    Expect(1, 69514, '\P{Scx=Ougr}', "");
-    Expect(0, 69514, '\P{^Scx=Ougr}', "");
-    Error('\p{Is_Script_Extensions=__old_uyghur:=}');
-    Error('\P{Is_Script_Extensions=__old_uyghur:=}');
+    Expect(1, 69513, '\p{Scx=	-Ougr}', "");
+    Expect(0, 69513, '\p{^Scx=	-Ougr}', "");
+    Expect(0, 69513, '\P{Scx=	-Ougr}', "");
+    Expect(1, 69513, '\P{^Scx=	-Ougr}', "");
+    Expect(0, 69514, '\p{Scx=	-Ougr}', "");
+    Expect(1, 69514, '\p{^Scx=	-Ougr}', "");
+    Expect(1, 69514, '\P{Scx=	-Ougr}', "");
+    Expect(0, 69514, '\P{^Scx=	-Ougr}', "");
+    Error('\p{Is_Script_Extensions=:= _Old_Uyghur}');
+    Error('\P{Is_Script_Extensions=:= _Old_Uyghur}');
     Expect(1, 69513, '\p{Is_Script_Extensions=olduyghur}', "");
     Expect(0, 69513, '\p{^Is_Script_Extensions=olduyghur}', "");
     Expect(0, 69513, '\P{Is_Script_Extensions=olduyghur}', "");
@@ -149789,56 +151245,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69514, '\p{^Is_Script_Extensions=olduyghur}', "");
     Expect(1, 69514, '\P{Is_Script_Extensions=olduyghur}', "");
     Expect(0, 69514, '\P{^Is_Script_Extensions=olduyghur}', "");
-    Expect(1, 69513, '\p{Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(0, 69513, '\p{^Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(0, 69513, '\P{Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(1, 69513, '\P{^Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(0, 69514, '\p{Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(1, 69514, '\p{^Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(1, 69514, '\P{Is_Script_Extensions:_	Old_Uyghur}', "");
-    Expect(0, 69514, '\P{^Is_Script_Extensions:_	Old_Uyghur}', "");
-    Error('\p{Is_Scx:	/a/	_Ougr}');
-    Error('\P{Is_Scx:	/a/	_Ougr}');
-    Expect(1, 69513, '\p{Is_Scx:   ougr}', "");
-    Expect(0, 69513, '\p{^Is_Scx:   ougr}', "");
-    Expect(0, 69513, '\P{Is_Scx:   ougr}', "");
-    Expect(1, 69513, '\P{^Is_Scx:   ougr}', "");
-    Expect(0, 69514, '\p{Is_Scx:   ougr}', "");
-    Expect(1, 69514, '\p{^Is_Scx:   ougr}', "");
-    Expect(1, 69514, '\P{Is_Scx:   ougr}', "");
-    Expect(0, 69514, '\P{^Is_Scx:   ougr}', "");
-    Expect(1, 69513, '\p{Is_Scx=--Ougr}', "");
-    Expect(0, 69513, '\p{^Is_Scx=--Ougr}', "");
-    Expect(0, 69513, '\P{Is_Scx=--Ougr}', "");
-    Expect(1, 69513, '\P{^Is_Scx=--Ougr}', "");
-    Expect(0, 69514, '\p{Is_Scx=--Ougr}', "");
-    Expect(1, 69514, '\p{^Is_Scx=--Ougr}', "");
-    Expect(1, 69514, '\P{Is_Scx=--Ougr}', "");
-    Expect(0, 69514, '\P{^Is_Scx=--Ougr}', "");
-    Error('\p{Script_Extensions=	/a/Palmyrene}');
-    Error('\P{Script_Extensions=	/a/Palmyrene}');
+    Expect(1, 69513, '\p{Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(0, 69513, '\p{^Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(0, 69513, '\P{Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(1, 69513, '\P{^Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(0, 69514, '\p{Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(1, 69514, '\p{^Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(1, 69514, '\P{Is_Script_Extensions=-OLD_uyghur}', "");
+    Expect(0, 69514, '\P{^Is_Script_Extensions=-OLD_uyghur}', "");
+    Error('\p{Is_Scx=_	Ougr/a/}');
+    Error('\P{Is_Scx=_	Ougr/a/}');
+    Expect(1, 69513, '\p{Is_Scx=ougr}', "");
+    Expect(0, 69513, '\p{^Is_Scx=ougr}', "");
+    Expect(0, 69513, '\P{Is_Scx=ougr}', "");
+    Expect(1, 69513, '\P{^Is_Scx=ougr}', "");
+    Expect(0, 69514, '\p{Is_Scx=ougr}', "");
+    Expect(1, 69514, '\p{^Is_Scx=ougr}', "");
+    Expect(1, 69514, '\P{Is_Scx=ougr}', "");
+    Expect(0, 69514, '\P{^Is_Scx=ougr}', "");
+    Expect(1, 69513, '\p{Is_Scx=	Ougr}', "");
+    Expect(0, 69513, '\p{^Is_Scx=	Ougr}', "");
+    Expect(0, 69513, '\P{Is_Scx=	Ougr}', "");
+    Expect(1, 69513, '\P{^Is_Scx=	Ougr}', "");
+    Expect(0, 69514, '\p{Is_Scx=	Ougr}', "");
+    Expect(1, 69514, '\p{^Is_Scx=	Ougr}', "");
+    Expect(1, 69514, '\P{Is_Scx=	Ougr}', "");
+    Expect(0, 69514, '\P{^Is_Scx=	Ougr}', "");
+    Error('\p{Script_Extensions=Palmyrene/a/}');
+    Error('\P{Script_Extensions=Palmyrene/a/}');
     Expect(1, 67711, '\p{Script_Extensions=:\APalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Script_Extensions=:\APalmyrene\z:}', "");;
-    Expect(1, 67711, '\p{Script_Extensions: palmyrene}', "");
-    Expect(0, 67711, '\p{^Script_Extensions: palmyrene}', "");
-    Expect(0, 67711, '\P{Script_Extensions: palmyrene}', "");
-    Expect(1, 67711, '\P{^Script_Extensions: palmyrene}', "");
-    Expect(0, 67712, '\p{Script_Extensions: palmyrene}', "");
-    Expect(1, 67712, '\p{^Script_Extensions: palmyrene}', "");
-    Expect(1, 67712, '\P{Script_Extensions: palmyrene}', "");
-    Expect(0, 67712, '\P{^Script_Extensions: palmyrene}', "");
+    Expect(1, 67711, '\p{Script_Extensions=palmyrene}', "");
+    Expect(0, 67711, '\p{^Script_Extensions=palmyrene}', "");
+    Expect(0, 67711, '\P{Script_Extensions=palmyrene}', "");
+    Expect(1, 67711, '\P{^Script_Extensions=palmyrene}', "");
+    Expect(0, 67712, '\p{Script_Extensions=palmyrene}', "");
+    Expect(1, 67712, '\p{^Script_Extensions=palmyrene}', "");
+    Expect(1, 67712, '\P{Script_Extensions=palmyrene}', "");
+    Expect(0, 67712, '\P{^Script_Extensions=palmyrene}', "");
     Expect(1, 67711, '\p{Script_Extensions=:\Apalmyrene\z:}', "");;
     Expect(0, 67712, '\p{Script_Extensions=:\Apalmyrene\z:}', "");;
-    Expect(1, 67711, '\p{Script_Extensions:  palmyrene}', "");
-    Expect(0, 67711, '\p{^Script_Extensions:  palmyrene}', "");
-    Expect(0, 67711, '\P{Script_Extensions:  palmyrene}', "");
-    Expect(1, 67711, '\P{^Script_Extensions:  palmyrene}', "");
-    Expect(0, 67712, '\p{Script_Extensions:  palmyrene}', "");
-    Expect(1, 67712, '\p{^Script_Extensions:  palmyrene}', "");
-    Expect(1, 67712, '\P{Script_Extensions:  palmyrene}', "");
-    Expect(0, 67712, '\P{^Script_Extensions:  palmyrene}', "");
-    Error('\p{Scx=	/a/PALM}');
-    Error('\P{Scx=	/a/PALM}');
+    Expect(1, 67711, '\p{Script_Extensions=	-Palmyrene}', "");
+    Expect(0, 67711, '\p{^Script_Extensions=	-Palmyrene}', "");
+    Expect(0, 67711, '\P{Script_Extensions=	-Palmyrene}', "");
+    Expect(1, 67711, '\P{^Script_Extensions=	-Palmyrene}', "");
+    Expect(0, 67712, '\p{Script_Extensions=	-Palmyrene}', "");
+    Expect(1, 67712, '\p{^Script_Extensions=	-Palmyrene}', "");
+    Expect(1, 67712, '\P{Script_Extensions=	-Palmyrene}', "");
+    Expect(0, 67712, '\P{^Script_Extensions=	-Palmyrene}', "");
+    Error('\p{Scx=:= 	PALM}');
+    Error('\P{Scx=:= 	PALM}');
     Expect(1, 67711, '\p{Scx=:\APalm\z:}', "");;
     Expect(0, 67712, '\p{Scx=:\APalm\z:}', "");;
     Expect(1, 67711, '\p{Scx=palm}', "");
@@ -149851,16 +151307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67712, '\P{^Scx=palm}', "");
     Expect(1, 67711, '\p{Scx=:\Apalm\z:}', "");;
     Expect(0, 67712, '\p{Scx=:\Apalm\z:}', "");;
-    Expect(1, 67711, '\p{Scx= _palm}', "");
-    Expect(0, 67711, '\p{^Scx= _palm}', "");
-    Expect(0, 67711, '\P{Scx= _palm}', "");
-    Expect(1, 67711, '\P{^Scx= _palm}', "");
-    Expect(0, 67712, '\p{Scx= _palm}', "");
-    Expect(1, 67712, '\p{^Scx= _palm}', "");
-    Expect(1, 67712, '\P{Scx= _palm}', "");
-    Expect(0, 67712, '\P{^Scx= _palm}', "");
-    Error('\p{Is_Script_Extensions=__PALMYRENE:=}');
-    Error('\P{Is_Script_Extensions=__PALMYRENE:=}');
+    Expect(1, 67711, '\p{Scx= -PALM}', "");
+    Expect(0, 67711, '\p{^Scx= -PALM}', "");
+    Expect(0, 67711, '\P{Scx= -PALM}', "");
+    Expect(1, 67711, '\P{^Scx= -PALM}', "");
+    Expect(0, 67712, '\p{Scx= -PALM}', "");
+    Expect(1, 67712, '\p{^Scx= -PALM}', "");
+    Expect(1, 67712, '\P{Scx= -PALM}', "");
+    Expect(0, 67712, '\P{^Scx= -PALM}', "");
+    Error('\p{Is_Script_Extensions:	- PALMYRENE/a/}');
+    Error('\P{Is_Script_Extensions:	- PALMYRENE/a/}');
     Expect(1, 67711, '\p{Is_Script_Extensions=palmyrene}', "");
     Expect(0, 67711, '\p{^Is_Script_Extensions=palmyrene}', "");
     Expect(0, 67711, '\P{Is_Script_Extensions=palmyrene}', "");
@@ -149869,16 +151325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67712, '\p{^Is_Script_Extensions=palmyrene}', "");
     Expect(1, 67712, '\P{Is_Script_Extensions=palmyrene}', "");
     Expect(0, 67712, '\P{^Is_Script_Extensions=palmyrene}', "");
-    Expect(1, 67711, '\p{Is_Script_Extensions=-Palmyrene}', "");
-    Expect(0, 67711, '\p{^Is_Script_Extensions=-Palmyrene}', "");
-    Expect(0, 67711, '\P{Is_Script_Extensions=-Palmyrene}', "");
-    Expect(1, 67711, '\P{^Is_Script_Extensions=-Palmyrene}', "");
-    Expect(0, 67712, '\p{Is_Script_Extensions=-Palmyrene}', "");
-    Expect(1, 67712, '\p{^Is_Script_Extensions=-Palmyrene}', "");
-    Expect(1, 67712, '\P{Is_Script_Extensions=-Palmyrene}', "");
-    Expect(0, 67712, '\P{^Is_Script_Extensions=-Palmyrene}', "");
-    Error('\p{Is_Scx=	/a/Palm}');
-    Error('\P{Is_Scx=	/a/Palm}');
+    Expect(1, 67711, '\p{Is_Script_Extensions=_palmyrene}', "");
+    Expect(0, 67711, '\p{^Is_Script_Extensions=_palmyrene}', "");
+    Expect(0, 67711, '\P{Is_Script_Extensions=_palmyrene}', "");
+    Expect(1, 67711, '\P{^Is_Script_Extensions=_palmyrene}', "");
+    Expect(0, 67712, '\p{Is_Script_Extensions=_palmyrene}', "");
+    Expect(1, 67712, '\p{^Is_Script_Extensions=_palmyrene}', "");
+    Expect(1, 67712, '\P{Is_Script_Extensions=_palmyrene}', "");
+    Expect(0, 67712, '\P{^Is_Script_Extensions=_palmyrene}', "");
+    Error('\p{Is_Scx=-:=palm}');
+    Error('\P{Is_Scx=-:=palm}');
     Expect(1, 67711, '\p{Is_Scx=palm}', "");
     Expect(0, 67711, '\p{^Is_Scx=palm}', "");
     Expect(0, 67711, '\P{Is_Scx=palm}', "");
@@ -149887,118 +151343,118 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67712, '\p{^Is_Scx=palm}', "");
     Expect(1, 67712, '\P{Is_Scx=palm}', "");
     Expect(0, 67712, '\P{^Is_Scx=palm}', "");
-    Expect(1, 67711, '\p{Is_Scx: - palm}', "");
-    Expect(0, 67711, '\p{^Is_Scx: - palm}', "");
-    Expect(0, 67711, '\P{Is_Scx: - palm}', "");
-    Expect(1, 67711, '\P{^Is_Scx: - palm}', "");
-    Expect(0, 67712, '\p{Is_Scx: - palm}', "");
-    Expect(1, 67712, '\p{^Is_Scx: - palm}', "");
-    Expect(1, 67712, '\P{Is_Scx: - palm}', "");
-    Expect(0, 67712, '\P{^Is_Scx: - palm}', "");
-    Error('\p{Script_Extensions= :=pau_CIN_hau}');
-    Error('\P{Script_Extensions= :=pau_CIN_hau}');
+    Expect(1, 67711, '\p{Is_Scx=	Palm}', "");
+    Expect(0, 67711, '\p{^Is_Scx=	Palm}', "");
+    Expect(0, 67711, '\P{Is_Scx=	Palm}', "");
+    Expect(1, 67711, '\P{^Is_Scx=	Palm}', "");
+    Expect(0, 67712, '\p{Is_Scx=	Palm}', "");
+    Expect(1, 67712, '\p{^Is_Scx=	Palm}', "");
+    Expect(1, 67712, '\P{Is_Scx=	Palm}', "");
+    Expect(0, 67712, '\P{^Is_Scx=	Palm}', "");
+    Error('\p{Script_Extensions= /a/pau_Cin_Hau}');
+    Error('\P{Script_Extensions= /a/pau_Cin_Hau}');
     Expect(1, 72440, '\p{Script_Extensions=:\APau_Cin_Hau\z:}', "");;
     Expect(0, 72441, '\p{Script_Extensions=:\APau_Cin_Hau\z:}', "");;
-    Expect(1, 72440, '\p{Script_Extensions=paucinhau}', "");
-    Expect(0, 72440, '\p{^Script_Extensions=paucinhau}', "");
-    Expect(0, 72440, '\P{Script_Extensions=paucinhau}', "");
-    Expect(1, 72440, '\P{^Script_Extensions=paucinhau}', "");
-    Expect(0, 72441, '\p{Script_Extensions=paucinhau}', "");
-    Expect(1, 72441, '\p{^Script_Extensions=paucinhau}', "");
-    Expect(1, 72441, '\P{Script_Extensions=paucinhau}', "");
-    Expect(0, 72441, '\P{^Script_Extensions=paucinhau}', "");
+    Expect(1, 72440, '\p{Script_Extensions:   paucinhau}', "");
+    Expect(0, 72440, '\p{^Script_Extensions:   paucinhau}', "");
+    Expect(0, 72440, '\P{Script_Extensions:   paucinhau}', "");
+    Expect(1, 72440, '\P{^Script_Extensions:   paucinhau}', "");
+    Expect(0, 72441, '\p{Script_Extensions:   paucinhau}', "");
+    Expect(1, 72441, '\p{^Script_Extensions:   paucinhau}', "");
+    Expect(1, 72441, '\P{Script_Extensions:   paucinhau}', "");
+    Expect(0, 72441, '\P{^Script_Extensions:   paucinhau}', "");
     Expect(1, 72440, '\p{Script_Extensions=:\Apaucinhau\z:}', "");;
     Expect(0, 72441, '\p{Script_Extensions=:\Apaucinhau\z:}', "");;
-    Expect(1, 72440, '\p{Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(0, 72440, '\p{^Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(0, 72440, '\P{Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(1, 72440, '\P{^Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(0, 72441, '\p{Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(1, 72441, '\p{^Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(1, 72441, '\P{Script_Extensions=__PAU_cin_Hau}', "");
-    Expect(0, 72441, '\P{^Script_Extensions=__PAU_cin_Hau}', "");
-    Error('\p{Scx=:=	PAUC}');
-    Error('\P{Scx=:=	PAUC}');
+    Expect(1, 72440, '\p{Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(0, 72440, '\p{^Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(0, 72440, '\P{Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(1, 72440, '\P{^Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(0, 72441, '\p{Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(1, 72441, '\p{^Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(1, 72441, '\P{Script_Extensions:  	pau_Cin_Hau}', "");
+    Expect(0, 72441, '\P{^Script_Extensions:  	pau_Cin_Hau}', "");
+    Error('\p{Scx=_pauc:=}');
+    Error('\P{Scx=_pauc:=}');
     Expect(1, 72440, '\p{Scx=:\APauc\z:}', "");;
     Expect(0, 72441, '\p{Scx=:\APauc\z:}', "");;
-    Expect(1, 72440, '\p{Scx=pauc}', "");
-    Expect(0, 72440, '\p{^Scx=pauc}', "");
-    Expect(0, 72440, '\P{Scx=pauc}', "");
-    Expect(1, 72440, '\P{^Scx=pauc}', "");
-    Expect(0, 72441, '\p{Scx=pauc}', "");
-    Expect(1, 72441, '\p{^Scx=pauc}', "");
-    Expect(1, 72441, '\P{Scx=pauc}', "");
-    Expect(0, 72441, '\P{^Scx=pauc}', "");
+    Expect(1, 72440, '\p{Scx:	pauc}', "");
+    Expect(0, 72440, '\p{^Scx:	pauc}', "");
+    Expect(0, 72440, '\P{Scx:	pauc}', "");
+    Expect(1, 72440, '\P{^Scx:	pauc}', "");
+    Expect(0, 72441, '\p{Scx:	pauc}', "");
+    Expect(1, 72441, '\p{^Scx:	pauc}', "");
+    Expect(1, 72441, '\P{Scx:	pauc}', "");
+    Expect(0, 72441, '\P{^Scx:	pauc}', "");
     Expect(1, 72440, '\p{Scx=:\Apauc\z:}', "");;
     Expect(0, 72441, '\p{Scx=:\Apauc\z:}', "");;
-    Expect(1, 72440, '\p{Scx=- pauc}', "");
-    Expect(0, 72440, '\p{^Scx=- pauc}', "");
-    Expect(0, 72440, '\P{Scx=- pauc}', "");
-    Expect(1, 72440, '\P{^Scx=- pauc}', "");
-    Expect(0, 72441, '\p{Scx=- pauc}', "");
-    Expect(1, 72441, '\p{^Scx=- pauc}', "");
-    Expect(1, 72441, '\P{Scx=- pauc}', "");
-    Expect(0, 72441, '\P{^Scx=- pauc}', "");
-    Error('\p{Is_Script_Extensions=--Pau_cin_hau/a/}');
-    Error('\P{Is_Script_Extensions=--Pau_cin_hau/a/}');
-    Expect(1, 72440, '\p{Is_Script_Extensions:   paucinhau}', "");
-    Expect(0, 72440, '\p{^Is_Script_Extensions:   paucinhau}', "");
-    Expect(0, 72440, '\P{Is_Script_Extensions:   paucinhau}', "");
-    Expect(1, 72440, '\P{^Is_Script_Extensions:   paucinhau}', "");
-    Expect(0, 72441, '\p{Is_Script_Extensions:   paucinhau}', "");
-    Expect(1, 72441, '\p{^Is_Script_Extensions:   paucinhau}', "");
-    Expect(1, 72441, '\P{Is_Script_Extensions:   paucinhau}', "");
-    Expect(0, 72441, '\P{^Is_Script_Extensions:   paucinhau}', "");
-    Expect(1, 72440, '\p{Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(0, 72440, '\p{^Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(0, 72440, '\P{Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(1, 72440, '\P{^Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(0, 72441, '\p{Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(1, 72441, '\p{^Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(1, 72441, '\P{Is_Script_Extensions=-PAU_cin_hau}', "");
-    Expect(0, 72441, '\P{^Is_Script_Extensions=-PAU_cin_hau}', "");
-    Error('\p{Is_Scx=/a/PAUC}');
-    Error('\P{Is_Scx=/a/PAUC}');
-    Expect(1, 72440, '\p{Is_Scx=pauc}', "");
-    Expect(0, 72440, '\p{^Is_Scx=pauc}', "");
-    Expect(0, 72440, '\P{Is_Scx=pauc}', "");
-    Expect(1, 72440, '\P{^Is_Scx=pauc}', "");
-    Expect(0, 72441, '\p{Is_Scx=pauc}', "");
-    Expect(1, 72441, '\p{^Is_Scx=pauc}', "");
-    Expect(1, 72441, '\P{Is_Scx=pauc}', "");
-    Expect(0, 72441, '\P{^Is_Scx=pauc}', "");
-    Expect(1, 72440, '\p{Is_Scx=	pauc}', "");
-    Expect(0, 72440, '\p{^Is_Scx=	pauc}', "");
-    Expect(0, 72440, '\P{Is_Scx=	pauc}', "");
-    Expect(1, 72440, '\P{^Is_Scx=	pauc}', "");
-    Expect(0, 72441, '\p{Is_Scx=	pauc}', "");
-    Expect(1, 72441, '\p{^Is_Scx=	pauc}', "");
-    Expect(1, 72441, '\P{Is_Scx=	pauc}', "");
-    Expect(0, 72441, '\P{^Is_Scx=	pauc}', "");
-    Error('\p{Script_Extensions: _-Old_permic/a/}');
-    Error('\P{Script_Extensions: _-Old_permic/a/}');
+    Expect(1, 72440, '\p{Scx:	 Pauc}', "");
+    Expect(0, 72440, '\p{^Scx:	 Pauc}', "");
+    Expect(0, 72440, '\P{Scx:	 Pauc}', "");
+    Expect(1, 72440, '\P{^Scx:	 Pauc}', "");
+    Expect(0, 72441, '\p{Scx:	 Pauc}', "");
+    Expect(1, 72441, '\p{^Scx:	 Pauc}', "");
+    Expect(1, 72441, '\P{Scx:	 Pauc}', "");
+    Expect(0, 72441, '\P{^Scx:	 Pauc}', "");
+    Error('\p{Is_Script_Extensions: _ Pau_cin_Hau:=}');
+    Error('\P{Is_Script_Extensions: _ Pau_cin_Hau:=}');
+    Expect(1, 72440, '\p{Is_Script_Extensions: paucinhau}', "");
+    Expect(0, 72440, '\p{^Is_Script_Extensions: paucinhau}', "");
+    Expect(0, 72440, '\P{Is_Script_Extensions: paucinhau}', "");
+    Expect(1, 72440, '\P{^Is_Script_Extensions: paucinhau}', "");
+    Expect(0, 72441, '\p{Is_Script_Extensions: paucinhau}', "");
+    Expect(1, 72441, '\p{^Is_Script_Extensions: paucinhau}', "");
+    Expect(1, 72441, '\P{Is_Script_Extensions: paucinhau}', "");
+    Expect(0, 72441, '\P{^Is_Script_Extensions: paucinhau}', "");
+    Expect(1, 72440, '\p{Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(0, 72440, '\p{^Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(0, 72440, '\P{Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(1, 72440, '\P{^Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(0, 72441, '\p{Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(1, 72441, '\p{^Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(1, 72441, '\P{Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Expect(0, 72441, '\P{^Is_Script_Extensions= _PAU_Cin_hau}', "");
+    Error('\p{Is_Scx=- pauc/a/}');
+    Error('\P{Is_Scx=- pauc/a/}');
+    Expect(1, 72440, '\p{Is_Scx:   pauc}', "");
+    Expect(0, 72440, '\p{^Is_Scx:   pauc}', "");
+    Expect(0, 72440, '\P{Is_Scx:   pauc}', "");
+    Expect(1, 72440, '\P{^Is_Scx:   pauc}', "");
+    Expect(0, 72441, '\p{Is_Scx:   pauc}', "");
+    Expect(1, 72441, '\p{^Is_Scx:   pauc}', "");
+    Expect(1, 72441, '\P{Is_Scx:   pauc}', "");
+    Expect(0, 72441, '\P{^Is_Scx:   pauc}', "");
+    Expect(1, 72440, '\p{Is_Scx=	_Pauc}', "");
+    Expect(0, 72440, '\p{^Is_Scx=	_Pauc}', "");
+    Expect(0, 72440, '\P{Is_Scx=	_Pauc}', "");
+    Expect(1, 72440, '\P{^Is_Scx=	_Pauc}', "");
+    Expect(0, 72441, '\p{Is_Scx=	_Pauc}', "");
+    Expect(1, 72441, '\p{^Is_Scx=	_Pauc}', "");
+    Expect(1, 72441, '\P{Is_Scx=	_Pauc}', "");
+    Expect(0, 72441, '\P{^Is_Scx=	_Pauc}', "");
+    Error('\p{Script_Extensions=_old_PERMIC/a/}');
+    Error('\P{Script_Extensions=_old_PERMIC/a/}');
     Expect(1, 66426, '\p{Script_Extensions=:\AOld_Permic\z:}', "");;
     Expect(0, 66427, '\p{Script_Extensions=:\AOld_Permic\z:}', "");;
-    Expect(1, 66426, '\p{Script_Extensions:   oldpermic}', "");
-    Expect(0, 66426, '\p{^Script_Extensions:   oldpermic}', "");
-    Expect(0, 66426, '\P{Script_Extensions:   oldpermic}', "");
-    Expect(1, 66426, '\P{^Script_Extensions:   oldpermic}', "");
-    Expect(0, 66427, '\p{Script_Extensions:   oldpermic}', "");
-    Expect(1, 66427, '\p{^Script_Extensions:   oldpermic}', "");
-    Expect(1, 66427, '\P{Script_Extensions:   oldpermic}', "");
-    Expect(0, 66427, '\P{^Script_Extensions:   oldpermic}', "");
+    Expect(1, 66426, '\p{Script_Extensions: oldpermic}', "");
+    Expect(0, 66426, '\p{^Script_Extensions: oldpermic}', "");
+    Expect(0, 66426, '\P{Script_Extensions: oldpermic}', "");
+    Expect(1, 66426, '\P{^Script_Extensions: oldpermic}', "");
+    Expect(0, 66427, '\p{Script_Extensions: oldpermic}', "");
+    Expect(1, 66427, '\p{^Script_Extensions: oldpermic}', "");
+    Expect(1, 66427, '\P{Script_Extensions: oldpermic}', "");
+    Expect(0, 66427, '\P{^Script_Extensions: oldpermic}', "");
     Expect(1, 66426, '\p{Script_Extensions=:\Aoldpermic\z:}', "");;
     Expect(0, 66427, '\p{Script_Extensions=:\Aoldpermic\z:}', "");;
-    Expect(1, 66426, '\p{Script_Extensions=		Old_Permic}', "");
-    Expect(0, 66426, '\p{^Script_Extensions=		Old_Permic}', "");
-    Expect(0, 66426, '\P{Script_Extensions=		Old_Permic}', "");
-    Expect(1, 66426, '\P{^Script_Extensions=		Old_Permic}', "");
-    Expect(0, 66427, '\p{Script_Extensions=		Old_Permic}', "");
-    Expect(1, 66427, '\p{^Script_Extensions=		Old_Permic}', "");
-    Expect(1, 66427, '\P{Script_Extensions=		Old_Permic}', "");
-    Expect(0, 66427, '\P{^Script_Extensions=		Old_Permic}', "");
-    Error('\p{Scx=:=_PERM}');
-    Error('\P{Scx=:=_PERM}');
+    Expect(1, 66426, '\p{Script_Extensions= Old_PERMIC}', "");
+    Expect(0, 66426, '\p{^Script_Extensions= Old_PERMIC}', "");
+    Expect(0, 66426, '\P{Script_Extensions= Old_PERMIC}', "");
+    Expect(1, 66426, '\P{^Script_Extensions= Old_PERMIC}', "");
+    Expect(0, 66427, '\p{Script_Extensions= Old_PERMIC}', "");
+    Expect(1, 66427, '\p{^Script_Extensions= Old_PERMIC}', "");
+    Expect(1, 66427, '\P{Script_Extensions= Old_PERMIC}', "");
+    Expect(0, 66427, '\P{^Script_Extensions= Old_PERMIC}', "");
+    Error('\p{Scx: /a/	-Perm}');
+    Error('\P{Scx: /a/	-Perm}');
     Expect(1, 66426, '\p{Scx=:\APerm\z:}', "");;
     Expect(0, 66427, '\p{Scx=:\APerm\z:}', "");;
     Expect(1, 66426, '\p{Scx=perm}', "");
@@ -150011,16 +151467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66427, '\P{^Scx=perm}', "");
     Expect(1, 66426, '\p{Scx=:\Aperm\z:}', "");;
     Expect(0, 66427, '\p{Scx=:\Aperm\z:}', "");;
-    Expect(1, 66426, '\p{Scx: -	Perm}', "");
-    Expect(0, 66426, '\p{^Scx: -	Perm}', "");
-    Expect(0, 66426, '\P{Scx: -	Perm}', "");
-    Expect(1, 66426, '\P{^Scx: -	Perm}', "");
-    Expect(0, 66427, '\p{Scx: -	Perm}', "");
-    Expect(1, 66427, '\p{^Scx: -	Perm}', "");
-    Expect(1, 66427, '\P{Scx: -	Perm}', "");
-    Expect(0, 66427, '\P{^Scx: -	Perm}', "");
-    Error('\p{Is_Script_Extensions=:=	Old_permic}');
-    Error('\P{Is_Script_Extensions=:=	Old_permic}');
+    Expect(1, 66426, '\p{Scx:   -_PERM}', "");
+    Expect(0, 66426, '\p{^Scx:   -_PERM}', "");
+    Expect(0, 66426, '\P{Scx:   -_PERM}', "");
+    Expect(1, 66426, '\P{^Scx:   -_PERM}', "");
+    Expect(0, 66427, '\p{Scx:   -_PERM}', "");
+    Expect(1, 66427, '\p{^Scx:   -_PERM}', "");
+    Expect(1, 66427, '\P{Scx:   -_PERM}', "");
+    Expect(0, 66427, '\P{^Scx:   -_PERM}', "");
+    Error('\p{Is_Script_Extensions=	_OLD_PERMIC/a/}');
+    Error('\P{Is_Script_Extensions=	_OLD_PERMIC/a/}');
     Expect(1, 66426, '\p{Is_Script_Extensions=oldpermic}', "");
     Expect(0, 66426, '\p{^Is_Script_Extensions=oldpermic}', "");
     Expect(0, 66426, '\P{Is_Script_Extensions=oldpermic}', "");
@@ -150029,34 +151485,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66427, '\p{^Is_Script_Extensions=oldpermic}', "");
     Expect(1, 66427, '\P{Is_Script_Extensions=oldpermic}', "");
     Expect(0, 66427, '\P{^Is_Script_Extensions=oldpermic}', "");
-    Expect(1, 66426, '\p{Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(0, 66426, '\p{^Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(0, 66426, '\P{Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(1, 66426, '\P{^Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(0, 66427, '\p{Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(1, 66427, '\p{^Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(1, 66427, '\P{Is_Script_Extensions=  Old_PERMIC}', "");
-    Expect(0, 66427, '\P{^Is_Script_Extensions=  Old_PERMIC}', "");
-    Error('\p{Is_Scx=		Perm:=}');
-    Error('\P{Is_Scx=		Perm:=}');
-    Expect(1, 66426, '\p{Is_Scx=perm}', "");
-    Expect(0, 66426, '\p{^Is_Scx=perm}', "");
-    Expect(0, 66426, '\P{Is_Scx=perm}', "");
-    Expect(1, 66426, '\P{^Is_Scx=perm}', "");
-    Expect(0, 66427, '\p{Is_Scx=perm}', "");
-    Expect(1, 66427, '\p{^Is_Scx=perm}', "");
-    Expect(1, 66427, '\P{Is_Scx=perm}', "");
-    Expect(0, 66427, '\P{^Is_Scx=perm}', "");
-    Expect(1, 66426, '\p{Is_Scx= -Perm}', "");
-    Expect(0, 66426, '\p{^Is_Scx= -Perm}', "");
-    Expect(0, 66426, '\P{Is_Scx= -Perm}', "");
-    Expect(1, 66426, '\P{^Is_Scx= -Perm}', "");
-    Expect(0, 66427, '\p{Is_Scx= -Perm}', "");
-    Expect(1, 66427, '\p{^Is_Scx= -Perm}', "");
-    Expect(1, 66427, '\P{Is_Scx= -Perm}', "");
-    Expect(0, 66427, '\P{^Is_Scx= -Perm}', "");
-    Error('\p{Script_Extensions=:=-_Phags_Pa}');
-    Error('\P{Script_Extensions=:=-_Phags_Pa}');
+    Expect(1, 66426, '\p{Is_Script_Extensions:		Old_Permic}', "");
+    Expect(0, 66426, '\p{^Is_Script_Extensions:		Old_Permic}', "");
+    Expect(0, 66426, '\P{Is_Script_Extensions:		Old_Permic}', "");
+    Expect(1, 66426, '\P{^Is_Script_Extensions:		Old_Permic}', "");
+    Expect(0, 66427, '\p{Is_Script_Extensions:		Old_Permic}', "");
+    Expect(1, 66427, '\p{^Is_Script_Extensions:		Old_Permic}', "");
+    Expect(1, 66427, '\P{Is_Script_Extensions:		Old_Permic}', "");
+    Expect(0, 66427, '\P{^Is_Script_Extensions:		Old_Permic}', "");
+    Error('\p{Is_Scx=	-Perm:=}');
+    Error('\P{Is_Scx=	-Perm:=}');
+    Expect(1, 66426, '\p{Is_Scx:	perm}', "");
+    Expect(0, 66426, '\p{^Is_Scx:	perm}', "");
+    Expect(0, 66426, '\P{Is_Scx:	perm}', "");
+    Expect(1, 66426, '\P{^Is_Scx:	perm}', "");
+    Expect(0, 66427, '\p{Is_Scx:	perm}', "");
+    Expect(1, 66427, '\p{^Is_Scx:	perm}', "");
+    Expect(1, 66427, '\P{Is_Scx:	perm}', "");
+    Expect(0, 66427, '\P{^Is_Scx:	perm}', "");
+    Expect(1, 66426, '\p{Is_Scx= _PERM}', "");
+    Expect(0, 66426, '\p{^Is_Scx= _PERM}', "");
+    Expect(0, 66426, '\P{Is_Scx= _PERM}', "");
+    Expect(1, 66426, '\P{^Is_Scx= _PERM}', "");
+    Expect(0, 66427, '\p{Is_Scx= _PERM}', "");
+    Expect(1, 66427, '\p{^Is_Scx= _PERM}', "");
+    Expect(1, 66427, '\P{Is_Scx= _PERM}', "");
+    Expect(0, 66427, '\P{^Is_Scx= _PERM}', "");
+    Error('\p{Script_Extensions=:= PHAGS_Pa}');
+    Error('\P{Script_Extensions=:= PHAGS_Pa}');
     Expect(1, 43127, '\p{Script_Extensions=:\APhags_Pa\z:}', "");;
     Expect(0, 43128, '\p{Script_Extensions=:\APhags_Pa\z:}', "");;
     Expect(1, 43127, '\p{Script_Extensions=phagspa}', "");
@@ -150069,16 +151525,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43128, '\P{^Script_Extensions=phagspa}', "");
     Expect(1, 43127, '\p{Script_Extensions=:\Aphagspa\z:}', "");;
     Expect(0, 43128, '\p{Script_Extensions=:\Aphagspa\z:}', "");;
-    Expect(1, 43127, '\p{Script_Extensions:  Phags_Pa}', "");
-    Expect(0, 43127, '\p{^Script_Extensions:  Phags_Pa}', "");
-    Expect(0, 43127, '\P{Script_Extensions:  Phags_Pa}', "");
-    Expect(1, 43127, '\P{^Script_Extensions:  Phags_Pa}', "");
-    Expect(0, 43128, '\p{Script_Extensions:  Phags_Pa}', "");
-    Expect(1, 43128, '\p{^Script_Extensions:  Phags_Pa}', "");
-    Expect(1, 43128, '\P{Script_Extensions:  Phags_Pa}', "");
-    Expect(0, 43128, '\P{^Script_Extensions:  Phags_Pa}', "");
-    Error('\p{Scx:	 :=PHAG}');
-    Error('\P{Scx:	 :=PHAG}');
+    Expect(1, 43127, '\p{Script_Extensions=--Phags_Pa}', "");
+    Expect(0, 43127, '\p{^Script_Extensions=--Phags_Pa}', "");
+    Expect(0, 43127, '\P{Script_Extensions=--Phags_Pa}', "");
+    Expect(1, 43127, '\P{^Script_Extensions=--Phags_Pa}', "");
+    Expect(0, 43128, '\p{Script_Extensions=--Phags_Pa}', "");
+    Expect(1, 43128, '\p{^Script_Extensions=--Phags_Pa}', "");
+    Expect(1, 43128, '\P{Script_Extensions=--Phags_Pa}', "");
+    Expect(0, 43128, '\P{^Script_Extensions=--Phags_Pa}', "");
+    Error('\p{Scx=-_phag:=}');
+    Error('\P{Scx=-_phag:=}');
     Expect(1, 43127, '\p{Scx=:\APhag\z:}', "");;
     Expect(0, 43128, '\p{Scx=:\APhag\z:}', "");;
     Expect(1, 43127, '\p{Scx=phag}', "");
@@ -150091,16 +151547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43128, '\P{^Scx=phag}', "");
     Expect(1, 43127, '\p{Scx=:\Aphag\z:}', "");;
     Expect(0, 43128, '\p{Scx=:\Aphag\z:}', "");;
-    Expect(1, 43127, '\p{Scx=_	Phag}', "");
-    Expect(0, 43127, '\p{^Scx=_	Phag}', "");
-    Expect(0, 43127, '\P{Scx=_	Phag}', "");
-    Expect(1, 43127, '\P{^Scx=_	Phag}', "");
-    Expect(0, 43128, '\p{Scx=_	Phag}', "");
-    Expect(1, 43128, '\p{^Scx=_	Phag}', "");
-    Expect(1, 43128, '\P{Scx=_	Phag}', "");
-    Expect(0, 43128, '\P{^Scx=_	Phag}', "");
-    Error('\p{Is_Script_Extensions=/a/phags_Pa}');
-    Error('\P{Is_Script_Extensions=/a/phags_Pa}');
+    Expect(1, 43127, '\p{Scx=-	Phag}', "");
+    Expect(0, 43127, '\p{^Scx=-	Phag}', "");
+    Expect(0, 43127, '\P{Scx=-	Phag}', "");
+    Expect(1, 43127, '\P{^Scx=-	Phag}', "");
+    Expect(0, 43128, '\p{Scx=-	Phag}', "");
+    Expect(1, 43128, '\p{^Scx=-	Phag}', "");
+    Expect(1, 43128, '\P{Scx=-	Phag}', "");
+    Expect(0, 43128, '\P{^Scx=-	Phag}', "");
+    Error('\p{Is_Script_Extensions=-_Phags_pa:=}');
+    Error('\P{Is_Script_Extensions=-_Phags_pa:=}');
     Expect(1, 43127, '\p{Is_Script_Extensions=phagspa}', "");
     Expect(0, 43127, '\p{^Is_Script_Extensions=phagspa}', "");
     Expect(0, 43127, '\P{Is_Script_Extensions=phagspa}', "");
@@ -150109,16 +151565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43128, '\p{^Is_Script_Extensions=phagspa}', "");
     Expect(1, 43128, '\P{Is_Script_Extensions=phagspa}', "");
     Expect(0, 43128, '\P{^Is_Script_Extensions=phagspa}', "");
-    Expect(1, 43127, '\p{Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(0, 43127, '\p{^Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(0, 43127, '\P{Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(1, 43127, '\P{^Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(0, 43128, '\p{Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(1, 43128, '\p{^Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(1, 43128, '\P{Is_Script_Extensions=-	PHAGS_pa}', "");
-    Expect(0, 43128, '\P{^Is_Script_Extensions=-	PHAGS_pa}', "");
-    Error('\p{Is_Scx= :=phag}');
-    Error('\P{Is_Scx= :=phag}');
+    Expect(1, 43127, '\p{Is_Script_Extensions=_Phags_pa}', "");
+    Expect(0, 43127, '\p{^Is_Script_Extensions=_Phags_pa}', "");
+    Expect(0, 43127, '\P{Is_Script_Extensions=_Phags_pa}', "");
+    Expect(1, 43127, '\P{^Is_Script_Extensions=_Phags_pa}', "");
+    Expect(0, 43128, '\p{Is_Script_Extensions=_Phags_pa}', "");
+    Expect(1, 43128, '\p{^Is_Script_Extensions=_Phags_pa}', "");
+    Expect(1, 43128, '\P{Is_Script_Extensions=_Phags_pa}', "");
+    Expect(0, 43128, '\P{^Is_Script_Extensions=_Phags_pa}', "");
+    Error('\p{Is_Scx=	_phag:=}');
+    Error('\P{Is_Scx=	_phag:=}');
     Expect(1, 43127, '\p{Is_Scx=phag}', "");
     Expect(0, 43127, '\p{^Is_Scx=phag}', "");
     Expect(0, 43127, '\P{Is_Scx=phag}', "");
@@ -150127,38 +151583,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43128, '\p{^Is_Scx=phag}', "");
     Expect(1, 43128, '\P{Is_Scx=phag}', "");
     Expect(0, 43128, '\P{^Is_Scx=phag}', "");
-    Expect(1, 43127, '\p{Is_Scx= 	phag}', "");
-    Expect(0, 43127, '\p{^Is_Scx= 	phag}', "");
-    Expect(0, 43127, '\P{Is_Scx= 	phag}', "");
-    Expect(1, 43127, '\P{^Is_Scx= 	phag}', "");
-    Expect(0, 43128, '\p{Is_Scx= 	phag}', "");
-    Expect(1, 43128, '\p{^Is_Scx= 	phag}', "");
-    Expect(1, 43128, '\P{Is_Scx= 	phag}', "");
-    Expect(0, 43128, '\P{^Is_Scx= 	phag}', "");
-    Error('\p{Script_Extensions=_ Inscriptional_pahlavi/a/}');
-    Error('\P{Script_Extensions=_ Inscriptional_pahlavi/a/}');
+    Expect(1, 43127, '\p{Is_Scx=	_Phag}', "");
+    Expect(0, 43127, '\p{^Is_Scx=	_Phag}', "");
+    Expect(0, 43127, '\P{Is_Scx=	_Phag}', "");
+    Expect(1, 43127, '\P{^Is_Scx=	_Phag}', "");
+    Expect(0, 43128, '\p{Is_Scx=	_Phag}', "");
+    Expect(1, 43128, '\p{^Is_Scx=	_Phag}', "");
+    Expect(1, 43128, '\P{Is_Scx=	_Phag}', "");
+    Expect(0, 43128, '\P{^Is_Scx=	_Phag}', "");
+    Error('\p{Script_Extensions=:=	inscriptional_pahlavi}');
+    Error('\P{Script_Extensions=:=	inscriptional_pahlavi}');
     Expect(1, 68479, '\p{Script_Extensions=:\AInscriptional_Pahlavi\z:}', "");;
     Expect(0, 68480, '\p{Script_Extensions=:\AInscriptional_Pahlavi\z:}', "");;
-    Expect(1, 68479, '\p{Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\p{^Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(0, 68479, '\P{Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\P{^Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\p{Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\p{^Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(1, 68480, '\P{Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(0, 68480, '\P{^Script_Extensions=inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\p{Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\p{^Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(0, 68479, '\P{Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(1, 68479, '\P{^Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\p{Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\p{^Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(1, 68480, '\P{Script_Extensions: inscriptionalpahlavi}', "");
+    Expect(0, 68480, '\P{^Script_Extensions: inscriptionalpahlavi}', "");
     Expect(1, 68479, '\p{Script_Extensions=:\Ainscriptionalpahlavi\z:}', "");;
     Expect(0, 68480, '\p{Script_Extensions=:\Ainscriptionalpahlavi\z:}', "");;
-    Expect(1, 68479, '\p{Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\p{^Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(0, 68479, '\P{Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(1, 68479, '\P{^Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\p{Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\p{^Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(1, 68480, '\P{Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Expect(0, 68480, '\P{^Script_Extensions=-	Inscriptional_pahlavi}', "");
-    Error('\p{Scx= :=Phli}');
-    Error('\P{Scx= :=Phli}');
+    Expect(1, 68479, '\p{Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\p{^Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(0, 68479, '\P{Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(1, 68479, '\P{^Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\p{Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\p{^Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(1, 68480, '\P{Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Expect(0, 68480, '\P{^Script_Extensions= 	Inscriptional_Pahlavi}', "");
+    Error('\p{Scx: Phli/a/}');
+    Error('\P{Scx: Phli/a/}');
     Expect(1, 68479, '\p{Scx=:\APhli\z:}', "");;
     Expect(0, 68480, '\p{Scx=:\APhli\z:}', "");;
     Expect(1, 68479, '\p{Scx=phli}', "");
@@ -150171,16 +151627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68480, '\P{^Scx=phli}', "");
     Expect(1, 68479, '\p{Scx=:\Aphli\z:}', "");;
     Expect(0, 68480, '\p{Scx=:\Aphli\z:}', "");;
-    Expect(1, 68479, '\p{Scx=	 Phli}', "");
-    Expect(0, 68479, '\p{^Scx=	 Phli}', "");
-    Expect(0, 68479, '\P{Scx=	 Phli}', "");
-    Expect(1, 68479, '\P{^Scx=	 Phli}', "");
-    Expect(0, 68480, '\p{Scx=	 Phli}', "");
-    Expect(1, 68480, '\p{^Scx=	 Phli}', "");
-    Expect(1, 68480, '\P{Scx=	 Phli}', "");
-    Expect(0, 68480, '\P{^Scx=	 Phli}', "");
-    Error('\p{Is_Script_Extensions:	:= Inscriptional_pahlavi}');
-    Error('\P{Is_Script_Extensions:	:= Inscriptional_pahlavi}');
+    Expect(1, 68479, '\p{Scx=	 PHLI}', "");
+    Expect(0, 68479, '\p{^Scx=	 PHLI}', "");
+    Expect(0, 68479, '\P{Scx=	 PHLI}', "");
+    Expect(1, 68479, '\P{^Scx=	 PHLI}', "");
+    Expect(0, 68480, '\p{Scx=	 PHLI}', "");
+    Expect(1, 68480, '\p{^Scx=	 PHLI}', "");
+    Expect(1, 68480, '\P{Scx=	 PHLI}', "");
+    Expect(0, 68480, '\P{^Scx=	 PHLI}', "");
+    Error('\p{Is_Script_Extensions=/a/	-Inscriptional_pahlavi}');
+    Error('\P{Is_Script_Extensions=/a/	-Inscriptional_pahlavi}');
     Expect(1, 68479, '\p{Is_Script_Extensions=inscriptionalpahlavi}', "");
     Expect(0, 68479, '\p{^Is_Script_Extensions=inscriptionalpahlavi}', "");
     Expect(0, 68479, '\P{Is_Script_Extensions=inscriptionalpahlavi}', "");
@@ -150189,16 +151645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68480, '\p{^Is_Script_Extensions=inscriptionalpahlavi}', "");
     Expect(1, 68480, '\P{Is_Script_Extensions=inscriptionalpahlavi}', "");
     Expect(0, 68480, '\P{^Is_Script_Extensions=inscriptionalpahlavi}', "");
-    Expect(1, 68479, '\p{Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(0, 68479, '\p{^Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(0, 68479, '\P{Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(1, 68479, '\P{^Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(0, 68480, '\p{Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(1, 68480, '\p{^Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(1, 68480, '\P{Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Expect(0, 68480, '\P{^Is_Script_Extensions= Inscriptional_PAHLAVI}', "");
-    Error('\p{Is_Scx=/a/Phli}');
-    Error('\P{Is_Scx=/a/Phli}');
+    Expect(1, 68479, '\p{Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(0, 68479, '\p{^Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(0, 68479, '\P{Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(1, 68479, '\P{^Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(0, 68480, '\p{Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(1, 68480, '\p{^Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(1, 68480, '\P{Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Expect(0, 68480, '\P{^Is_Script_Extensions=	inscriptional_PAHLAVI}', "");
+    Error('\p{Is_Scx=	PHLI:=}');
+    Error('\P{Is_Scx=	PHLI:=}');
     Expect(1, 68479, '\p{Is_Scx=phli}', "");
     Expect(0, 68479, '\p{^Is_Scx=phli}', "");
     Expect(0, 68479, '\P{Is_Scx=phli}', "");
@@ -150207,16 +151663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68480, '\p{^Is_Scx=phli}', "");
     Expect(1, 68480, '\P{Is_Scx=phli}', "");
     Expect(0, 68480, '\P{^Is_Scx=phli}', "");
-    Expect(1, 68479, '\p{Is_Scx: __phli}', "");
-    Expect(0, 68479, '\p{^Is_Scx: __phli}', "");
-    Expect(0, 68479, '\P{Is_Scx: __phli}', "");
-    Expect(1, 68479, '\P{^Is_Scx: __phli}', "");
-    Expect(0, 68480, '\p{Is_Scx: __phli}', "");
-    Expect(1, 68480, '\p{^Is_Scx: __phli}', "");
-    Expect(1, 68480, '\P{Is_Scx: __phli}', "");
-    Expect(0, 68480, '\P{^Is_Scx: __phli}', "");
-    Error('\p{Script_Extensions=:=_-PSALTER_Pahlavi}');
-    Error('\P{Script_Extensions=:=_-PSALTER_Pahlavi}');
+    Expect(1, 68479, '\p{Is_Scx=_Phli}', "");
+    Expect(0, 68479, '\p{^Is_Scx=_Phli}', "");
+    Expect(0, 68479, '\P{Is_Scx=_Phli}', "");
+    Expect(1, 68479, '\P{^Is_Scx=_Phli}', "");
+    Expect(0, 68480, '\p{Is_Scx=_Phli}', "");
+    Expect(1, 68480, '\p{^Is_Scx=_Phli}', "");
+    Expect(1, 68480, '\P{Is_Scx=_Phli}', "");
+    Expect(0, 68480, '\P{^Is_Scx=_Phli}', "");
+    Error('\p{Script_Extensions=__Psalter_PAHLAVI:=}');
+    Error('\P{Script_Extensions=__Psalter_PAHLAVI:=}');
     Expect(1, 68527, '\p{Script_Extensions=:\APsalter_Pahlavi\z:}', "");;
     Expect(0, 68528, '\p{Script_Extensions=:\APsalter_Pahlavi\z:}', "");;
     Expect(1, 68527, '\p{Script_Extensions=psalterpahlavi}', "");
@@ -150229,16 +151685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68528, '\P{^Script_Extensions=psalterpahlavi}', "");
     Expect(1, 68527, '\p{Script_Extensions=:\Apsalterpahlavi\z:}', "");;
     Expect(0, 68528, '\p{Script_Extensions=:\Apsalterpahlavi\z:}', "");;
-    Expect(1, 68527, '\p{Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{Script_Extensions=__Psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^Script_Extensions=__Psalter_pahlavi}', "");
-    Error('\p{Scx=_Phlp/a/}');
-    Error('\P{Scx=_Phlp/a/}');
+    Expect(1, 68527, '\p{Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(0, 68527, '\p{^Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(0, 68527, '\P{Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(1, 68527, '\P{^Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(0, 68528, '\p{Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(1, 68528, '\p{^Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(1, 68528, '\P{Script_Extensions=-Psalter_pahlavi}', "");
+    Expect(0, 68528, '\P{^Script_Extensions=-Psalter_pahlavi}', "");
+    Error('\p{Scx: 	-Phlp/a/}');
+    Error('\P{Scx: 	-Phlp/a/}');
     Expect(1, 68527, '\p{Scx=:\APhlp\z:}', "");;
     Expect(0, 68528, '\p{Scx=:\APhlp\z:}', "");;
     Expect(1, 68527, '\p{Scx=phlp}', "");
@@ -150251,16 +151707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68528, '\P{^Scx=phlp}', "");
     Expect(1, 68527, '\p{Scx=:\Aphlp\z:}', "");;
     Expect(0, 68528, '\p{Scx=:\Aphlp\z:}', "");;
-    Expect(1, 68527, '\p{Scx=	 PHLP}', "");
-    Expect(0, 68527, '\p{^Scx=	 PHLP}', "");
-    Expect(0, 68527, '\P{Scx=	 PHLP}', "");
-    Expect(1, 68527, '\P{^Scx=	 PHLP}', "");
-    Expect(0, 68528, '\p{Scx=	 PHLP}', "");
-    Expect(1, 68528, '\p{^Scx=	 PHLP}', "");
-    Expect(1, 68528, '\P{Scx=	 PHLP}', "");
-    Expect(0, 68528, '\P{^Scx=	 PHLP}', "");
-    Error('\p{Is_Script_Extensions=	/a/Psalter_Pahlavi}');
-    Error('\P{Is_Script_Extensions=	/a/Psalter_Pahlavi}');
+    Expect(1, 68527, '\p{Scx=- phlp}', "");
+    Expect(0, 68527, '\p{^Scx=- phlp}', "");
+    Expect(0, 68527, '\P{Scx=- phlp}', "");
+    Expect(1, 68527, '\P{^Scx=- phlp}', "");
+    Expect(0, 68528, '\p{Scx=- phlp}', "");
+    Expect(1, 68528, '\p{^Scx=- phlp}', "");
+    Expect(1, 68528, '\P{Scx=- phlp}', "");
+    Expect(0, 68528, '\P{^Scx=- phlp}', "");
+    Error('\p{Is_Script_Extensions=/a/ -Psalter_pahlavi}');
+    Error('\P{Is_Script_Extensions=/a/ -Psalter_pahlavi}');
     Expect(1, 68527, '\p{Is_Script_Extensions=psalterpahlavi}', "");
     Expect(0, 68527, '\p{^Is_Script_Extensions=psalterpahlavi}', "");
     Expect(0, 68527, '\P{Is_Script_Extensions=psalterpahlavi}', "");
@@ -150269,16 +151725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68528, '\p{^Is_Script_Extensions=psalterpahlavi}', "");
     Expect(1, 68528, '\P{Is_Script_Extensions=psalterpahlavi}', "");
     Expect(0, 68528, '\P{^Is_Script_Extensions=psalterpahlavi}', "");
-    Expect(1, 68527, '\p{Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(0, 68527, '\p{^Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(0, 68527, '\P{Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(1, 68527, '\P{^Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(0, 68528, '\p{Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(1, 68528, '\p{^Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(1, 68528, '\P{Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Expect(0, 68528, '\P{^Is_Script_Extensions=  Psalter_pahlavi}', "");
-    Error('\p{Is_Scx=	:=Phlp}');
-    Error('\P{Is_Scx=	:=Phlp}');
+    Expect(1, 68527, '\p{Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(0, 68527, '\p{^Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(0, 68527, '\P{Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(1, 68527, '\P{^Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(0, 68528, '\p{Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(1, 68528, '\p{^Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(1, 68528, '\P{Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Expect(0, 68528, '\P{^Is_Script_Extensions=	_Psalter_pahlavi}', "");
+    Error('\p{Is_Scx=-	Phlp:=}');
+    Error('\P{Is_Scx=-	Phlp:=}');
     Expect(1, 68527, '\p{Is_Scx=phlp}', "");
     Expect(0, 68527, '\p{^Is_Scx=phlp}', "");
     Expect(0, 68527, '\P{Is_Scx=phlp}', "");
@@ -150287,16 +151743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68528, '\p{^Is_Scx=phlp}', "");
     Expect(1, 68528, '\P{Is_Scx=phlp}', "");
     Expect(0, 68528, '\P{^Is_Scx=phlp}', "");
-    Expect(1, 68527, '\p{Is_Scx= 	PHLP}', "");
-    Expect(0, 68527, '\p{^Is_Scx= 	PHLP}', "");
-    Expect(0, 68527, '\P{Is_Scx= 	PHLP}', "");
-    Expect(1, 68527, '\P{^Is_Scx= 	PHLP}', "");
-    Expect(0, 68528, '\p{Is_Scx= 	PHLP}', "");
-    Expect(1, 68528, '\p{^Is_Scx= 	PHLP}', "");
-    Expect(1, 68528, '\P{Is_Scx= 	PHLP}', "");
-    Expect(0, 68528, '\P{^Is_Scx= 	PHLP}', "");
-    Error('\p{Script_Extensions=_:=Phoenician}');
-    Error('\P{Script_Extensions=_:=Phoenician}');
+    Expect(1, 68527, '\p{Is_Scx=_-phlp}', "");
+    Expect(0, 68527, '\p{^Is_Scx=_-phlp}', "");
+    Expect(0, 68527, '\P{Is_Scx=_-phlp}', "");
+    Expect(1, 68527, '\P{^Is_Scx=_-phlp}', "");
+    Expect(0, 68528, '\p{Is_Scx=_-phlp}', "");
+    Expect(1, 68528, '\p{^Is_Scx=_-phlp}', "");
+    Expect(1, 68528, '\P{Is_Scx=_-phlp}', "");
+    Expect(0, 68528, '\P{^Is_Scx=_-phlp}', "");
+    Error('\p{Script_Extensions= -phoenician/a/}');
+    Error('\P{Script_Extensions= -phoenician/a/}');
     Expect(1, 67871, '\p{Script_Extensions=:\APhoenician\z:}', "");;
     Expect(0, 67872, '\p{Script_Extensions=:\APhoenician\z:}', "");;
     Expect(1, 67871, '\p{Script_Extensions=phoenician}', "");
@@ -150309,16 +151765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67872, '\P{^Script_Extensions=phoenician}', "");
     Expect(1, 67871, '\p{Script_Extensions=:\Aphoenician\z:}', "");;
     Expect(0, 67872, '\p{Script_Extensions=:\Aphoenician\z:}', "");;
-    Expect(1, 67871, '\p{Script_Extensions=	-Phoenician}', "");
-    Expect(0, 67871, '\p{^Script_Extensions=	-Phoenician}', "");
-    Expect(0, 67871, '\P{Script_Extensions=	-Phoenician}', "");
-    Expect(1, 67871, '\P{^Script_Extensions=	-Phoenician}', "");
-    Expect(0, 67872, '\p{Script_Extensions=	-Phoenician}', "");
-    Expect(1, 67872, '\p{^Script_Extensions=	-Phoenician}', "");
-    Expect(1, 67872, '\P{Script_Extensions=	-Phoenician}', "");
-    Expect(0, 67872, '\P{^Script_Extensions=	-Phoenician}', "");
-    Error('\p{Scx=	_phnx:=}');
-    Error('\P{Scx=	_phnx:=}');
+    Expect(1, 67871, '\p{Script_Extensions=__PHOENICIAN}', "");
+    Expect(0, 67871, '\p{^Script_Extensions=__PHOENICIAN}', "");
+    Expect(0, 67871, '\P{Script_Extensions=__PHOENICIAN}', "");
+    Expect(1, 67871, '\P{^Script_Extensions=__PHOENICIAN}', "");
+    Expect(0, 67872, '\p{Script_Extensions=__PHOENICIAN}', "");
+    Expect(1, 67872, '\p{^Script_Extensions=__PHOENICIAN}', "");
+    Expect(1, 67872, '\P{Script_Extensions=__PHOENICIAN}', "");
+    Expect(0, 67872, '\P{^Script_Extensions=__PHOENICIAN}', "");
+    Error('\p{Scx=		Phnx/a/}');
+    Error('\P{Scx=		Phnx/a/}');
     Expect(1, 67871, '\p{Scx=:\APhnx\z:}', "");;
     Expect(0, 67872, '\p{Scx=:\APhnx\z:}', "");;
     Expect(1, 67871, '\p{Scx=phnx}', "");
@@ -150331,16 +151787,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67872, '\P{^Scx=phnx}', "");
     Expect(1, 67871, '\p{Scx=:\Aphnx\z:}', "");;
     Expect(0, 67872, '\p{Scx=:\Aphnx\z:}', "");;
-    Expect(1, 67871, '\p{Scx=_	PHNX}', "");
-    Expect(0, 67871, '\p{^Scx=_	PHNX}', "");
-    Expect(0, 67871, '\P{Scx=_	PHNX}', "");
-    Expect(1, 67871, '\P{^Scx=_	PHNX}', "");
-    Expect(0, 67872, '\p{Scx=_	PHNX}', "");
-    Expect(1, 67872, '\p{^Scx=_	PHNX}', "");
-    Expect(1, 67872, '\P{Scx=_	PHNX}', "");
-    Expect(0, 67872, '\P{^Scx=_	PHNX}', "");
-    Error('\p{Is_Script_Extensions=-_phoenician/a/}');
-    Error('\P{Is_Script_Extensions=-_phoenician/a/}');
+    Expect(1, 67871, '\p{Scx=	Phnx}', "");
+    Expect(0, 67871, '\p{^Scx=	Phnx}', "");
+    Expect(0, 67871, '\P{Scx=	Phnx}', "");
+    Expect(1, 67871, '\P{^Scx=	Phnx}', "");
+    Expect(0, 67872, '\p{Scx=	Phnx}', "");
+    Expect(1, 67872, '\p{^Scx=	Phnx}', "");
+    Expect(1, 67872, '\P{Scx=	Phnx}', "");
+    Expect(0, 67872, '\P{^Scx=	Phnx}', "");
+    Error('\p{Is_Script_Extensions=/a/	 PHOENICIAN}');
+    Error('\P{Is_Script_Extensions=/a/	 PHOENICIAN}');
     Expect(1, 67871, '\p{Is_Script_Extensions=phoenician}', "");
     Expect(0, 67871, '\p{^Is_Script_Extensions=phoenician}', "");
     Expect(0, 67871, '\P{Is_Script_Extensions=phoenician}', "");
@@ -150349,16 +151805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67872, '\p{^Is_Script_Extensions=phoenician}', "");
     Expect(1, 67872, '\P{Is_Script_Extensions=phoenician}', "");
     Expect(0, 67872, '\P{^Is_Script_Extensions=phoenician}', "");
-    Expect(1, 67871, '\p{Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(0, 67871, '\p{^Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(0, 67871, '\P{Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(1, 67871, '\P{^Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(0, 67872, '\p{Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(1, 67872, '\p{^Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(1, 67872, '\P{Is_Script_Extensions=		PHOENICIAN}', "");
-    Expect(0, 67872, '\P{^Is_Script_Extensions=		PHOENICIAN}', "");
-    Error('\p{Is_Scx=/a/- Phnx}');
-    Error('\P{Is_Scx=/a/- Phnx}');
+    Expect(1, 67871, '\p{Is_Script_Extensions=		phoenician}', "");
+    Expect(0, 67871, '\p{^Is_Script_Extensions=		phoenician}', "");
+    Expect(0, 67871, '\P{Is_Script_Extensions=		phoenician}', "");
+    Expect(1, 67871, '\P{^Is_Script_Extensions=		phoenician}', "");
+    Expect(0, 67872, '\p{Is_Script_Extensions=		phoenician}', "");
+    Expect(1, 67872, '\p{^Is_Script_Extensions=		phoenician}', "");
+    Expect(1, 67872, '\P{Is_Script_Extensions=		phoenician}', "");
+    Expect(0, 67872, '\P{^Is_Script_Extensions=		phoenician}', "");
+    Error('\p{Is_Scx= :=phnx}');
+    Error('\P{Is_Scx= :=phnx}');
     Expect(1, 67871, '\p{Is_Scx=phnx}', "");
     Expect(0, 67871, '\p{^Is_Scx=phnx}', "");
     Expect(0, 67871, '\P{Is_Scx=phnx}', "");
@@ -150367,16 +151823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67872, '\p{^Is_Scx=phnx}', "");
     Expect(1, 67872, '\P{Is_Scx=phnx}', "");
     Expect(0, 67872, '\P{^Is_Scx=phnx}', "");
-    Expect(1, 67871, '\p{Is_Scx=	_phnx}', "");
-    Expect(0, 67871, '\p{^Is_Scx=	_phnx}', "");
-    Expect(0, 67871, '\P{Is_Scx=	_phnx}', "");
-    Expect(1, 67871, '\P{^Is_Scx=	_phnx}', "");
-    Expect(0, 67872, '\p{Is_Scx=	_phnx}', "");
-    Expect(1, 67872, '\p{^Is_Scx=	_phnx}', "");
-    Expect(1, 67872, '\P{Is_Scx=	_phnx}', "");
-    Expect(0, 67872, '\P{^Is_Scx=	_phnx}', "");
-    Error('\p{Script_Extensions=	Miao/a/}');
-    Error('\P{Script_Extensions=	Miao/a/}');
+    Expect(1, 67871, '\p{Is_Scx= _phnx}', "");
+    Expect(0, 67871, '\p{^Is_Scx= _phnx}', "");
+    Expect(0, 67871, '\P{Is_Scx= _phnx}', "");
+    Expect(1, 67871, '\P{^Is_Scx= _phnx}', "");
+    Expect(0, 67872, '\p{Is_Scx= _phnx}', "");
+    Expect(1, 67872, '\p{^Is_Scx= _phnx}', "");
+    Expect(1, 67872, '\P{Is_Scx= _phnx}', "");
+    Expect(0, 67872, '\P{^Is_Scx= _phnx}', "");
+    Error('\p{Script_Extensions=_:=MIAO}');
+    Error('\P{Script_Extensions=_:=MIAO}');
     Expect(1, 94111, '\p{Script_Extensions=:\AMiao\z:}', "");;
     Expect(0, 94112, '\p{Script_Extensions=:\AMiao\z:}', "");;
     Expect(1, 94111, '\p{Script_Extensions=miao}', "");
@@ -150389,16 +151845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 94112, '\P{^Script_Extensions=miao}', "");
     Expect(1, 94111, '\p{Script_Extensions=:\Amiao\z:}', "");;
     Expect(0, 94112, '\p{Script_Extensions=:\Amiao\z:}', "");;
-    Expect(1, 94111, '\p{Script_Extensions=	Miao}', "");
-    Expect(0, 94111, '\p{^Script_Extensions=	Miao}', "");
-    Expect(0, 94111, '\P{Script_Extensions=	Miao}', "");
-    Expect(1, 94111, '\P{^Script_Extensions=	Miao}', "");
-    Expect(0, 94112, '\p{Script_Extensions=	Miao}', "");
-    Expect(1, 94112, '\p{^Script_Extensions=	Miao}', "");
-    Expect(1, 94112, '\P{Script_Extensions=	Miao}', "");
-    Expect(0, 94112, '\P{^Script_Extensions=	Miao}', "");
-    Error('\p{Scx=_plrd:=}');
-    Error('\P{Scx=_plrd:=}');
+    Expect(1, 94111, '\p{Script_Extensions=_	miao}', "");
+    Expect(0, 94111, '\p{^Script_Extensions=_	miao}', "");
+    Expect(0, 94111, '\P{Script_Extensions=_	miao}', "");
+    Expect(1, 94111, '\P{^Script_Extensions=_	miao}', "");
+    Expect(0, 94112, '\p{Script_Extensions=_	miao}', "");
+    Expect(1, 94112, '\p{^Script_Extensions=_	miao}', "");
+    Expect(1, 94112, '\P{Script_Extensions=_	miao}', "");
+    Expect(0, 94112, '\P{^Script_Extensions=_	miao}', "");
+    Error('\p{Scx= -plrd:=}');
+    Error('\P{Scx= -plrd:=}');
     Expect(1, 94111, '\p{Scx=:\APlrd\z:}', "");;
     Expect(0, 94112, '\p{Scx=:\APlrd\z:}', "");;
     Expect(1, 94111, '\p{Scx=plrd}', "");
@@ -150411,16 +151867,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 94112, '\P{^Scx=plrd}', "");
     Expect(1, 94111, '\p{Scx=:\Aplrd\z:}', "");;
     Expect(0, 94112, '\p{Scx=:\Aplrd\z:}', "");;
-    Expect(1, 94111, '\p{Scx= 	plrd}', "");
-    Expect(0, 94111, '\p{^Scx= 	plrd}', "");
-    Expect(0, 94111, '\P{Scx= 	plrd}', "");
-    Expect(1, 94111, '\P{^Scx= 	plrd}', "");
-    Expect(0, 94112, '\p{Scx= 	plrd}', "");
-    Expect(1, 94112, '\p{^Scx= 	plrd}', "");
-    Expect(1, 94112, '\P{Scx= 	plrd}', "");
-    Expect(0, 94112, '\P{^Scx= 	plrd}', "");
-    Error('\p{Is_Script_Extensions= :=MIAO}');
-    Error('\P{Is_Script_Extensions= :=MIAO}');
+    Expect(1, 94111, '\p{Scx=_plrd}', "");
+    Expect(0, 94111, '\p{^Scx=_plrd}', "");
+    Expect(0, 94111, '\P{Scx=_plrd}', "");
+    Expect(1, 94111, '\P{^Scx=_plrd}', "");
+    Expect(0, 94112, '\p{Scx=_plrd}', "");
+    Expect(1, 94112, '\p{^Scx=_plrd}', "");
+    Expect(1, 94112, '\P{Scx=_plrd}', "");
+    Expect(0, 94112, '\P{^Scx=_plrd}', "");
+    Error('\p{Is_Script_Extensions= MIAO:=}');
+    Error('\P{Is_Script_Extensions= MIAO:=}');
     Expect(1, 94111, '\p{Is_Script_Extensions=miao}', "");
     Expect(0, 94111, '\p{^Is_Script_Extensions=miao}', "");
     Expect(0, 94111, '\P{Is_Script_Extensions=miao}', "");
@@ -150429,26 +151885,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 94112, '\p{^Is_Script_Extensions=miao}', "");
     Expect(1, 94112, '\P{Is_Script_Extensions=miao}', "");
     Expect(0, 94112, '\P{^Is_Script_Extensions=miao}', "");
-    Error('\p{Is_Scx=/a/--PLRD}');
-    Error('\P{Is_Scx=/a/--PLRD}');
-    Expect(1, 94111, '\p{Is_Scx=plrd}', "");
-    Expect(0, 94111, '\p{^Is_Scx=plrd}', "");
-    Expect(0, 94111, '\P{Is_Scx=plrd}', "");
-    Expect(1, 94111, '\P{^Is_Scx=plrd}', "");
-    Expect(0, 94112, '\p{Is_Scx=plrd}', "");
-    Expect(1, 94112, '\p{^Is_Scx=plrd}', "");
-    Expect(1, 94112, '\P{Is_Scx=plrd}', "");
-    Expect(0, 94112, '\P{^Is_Scx=plrd}', "");
-    Expect(1, 94111, '\p{Is_Scx=	-Plrd}', "");
-    Expect(0, 94111, '\p{^Is_Scx=	-Plrd}', "");
-    Expect(0, 94111, '\P{Is_Scx=	-Plrd}', "");
-    Expect(1, 94111, '\P{^Is_Scx=	-Plrd}', "");
-    Expect(0, 94112, '\p{Is_Scx=	-Plrd}', "");
-    Expect(1, 94112, '\p{^Is_Scx=	-Plrd}', "");
-    Expect(1, 94112, '\P{Is_Scx=	-Plrd}', "");
-    Expect(0, 94112, '\P{^Is_Scx=	-Plrd}', "");
-    Error('\p{Script_Extensions=:=_INSCRIPTIONAL_PARTHIAN}');
-    Error('\P{Script_Extensions=:=_INSCRIPTIONAL_PARTHIAN}');
+    Expect(1, 94111, '\p{Is_Script_Extensions= -miao}', "");
+    Expect(0, 94111, '\p{^Is_Script_Extensions= -miao}', "");
+    Expect(0, 94111, '\P{Is_Script_Extensions= -miao}', "");
+    Expect(1, 94111, '\P{^Is_Script_Extensions= -miao}', "");
+    Expect(0, 94112, '\p{Is_Script_Extensions= -miao}', "");
+    Expect(1, 94112, '\p{^Is_Script_Extensions= -miao}', "");
+    Expect(1, 94112, '\P{Is_Script_Extensions= -miao}', "");
+    Expect(0, 94112, '\P{^Is_Script_Extensions= -miao}', "");
+    Error('\p{Is_Scx:     plrd:=}');
+    Error('\P{Is_Scx:     plrd:=}');
+    Expect(1, 94111, '\p{Is_Scx:plrd}', "");
+    Expect(0, 94111, '\p{^Is_Scx:plrd}', "");
+    Expect(0, 94111, '\P{Is_Scx:plrd}', "");
+    Expect(1, 94111, '\P{^Is_Scx:plrd}', "");
+    Expect(0, 94112, '\p{Is_Scx:plrd}', "");
+    Expect(1, 94112, '\p{^Is_Scx:plrd}', "");
+    Expect(1, 94112, '\P{Is_Scx:plrd}', "");
+    Expect(0, 94112, '\P{^Is_Scx:plrd}', "");
+    Expect(1, 94111, '\p{Is_Scx=_	Plrd}', "");
+    Expect(0, 94111, '\p{^Is_Scx=_	Plrd}', "");
+    Expect(0, 94111, '\P{Is_Scx=_	Plrd}', "");
+    Expect(1, 94111, '\P{^Is_Scx=_	Plrd}', "");
+    Expect(0, 94112, '\p{Is_Scx=_	Plrd}', "");
+    Expect(1, 94112, '\p{^Is_Scx=_	Plrd}', "");
+    Expect(1, 94112, '\P{Is_Scx=_	Plrd}', "");
+    Expect(0, 94112, '\P{^Is_Scx=_	Plrd}', "");
+    Error('\p{Script_Extensions: /a/	_INSCRIPTIONAL_parthian}');
+    Error('\P{Script_Extensions: /a/	_INSCRIPTIONAL_parthian}');
     Expect(1, 68447, '\p{Script_Extensions=:\AInscriptional_Parthian\z:}', "");;
     Expect(0, 68448, '\p{Script_Extensions=:\AInscriptional_Parthian\z:}', "");;
     Expect(1, 68447, '\p{Script_Extensions=inscriptionalparthian}', "");
@@ -150461,16 +151925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68448, '\P{^Script_Extensions=inscriptionalparthian}', "");
     Expect(1, 68447, '\p{Script_Extensions=:\Ainscriptionalparthian\z:}', "");;
     Expect(0, 68448, '\p{Script_Extensions=:\Ainscriptionalparthian\z:}', "");;
-    Expect(1, 68447, '\p{Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(0, 68447, '\p{^Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(0, 68447, '\P{Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(1, 68447, '\P{^Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(0, 68448, '\p{Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(1, 68448, '\p{^Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(1, 68448, '\P{Script_Extensions=_	Inscriptional_parthian}', "");
-    Expect(0, 68448, '\P{^Script_Extensions=_	Inscriptional_parthian}', "");
-    Error('\p{Scx=-_PRTI/a/}');
-    Error('\P{Scx=-_PRTI/a/}');
+    Expect(1, 68447, '\p{Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(0, 68447, '\p{^Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(0, 68447, '\P{Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(1, 68447, '\P{^Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(0, 68448, '\p{Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(1, 68448, '\p{^Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(1, 68448, '\P{Script_Extensions= _inscriptional_Parthian}', "");
+    Expect(0, 68448, '\P{^Script_Extensions= _inscriptional_Parthian}', "");
+    Error('\p{Scx=	_PRTI/a/}');
+    Error('\P{Scx=	_PRTI/a/}');
     Expect(1, 68447, '\p{Scx=:\APrti\z:}', "");;
     Expect(0, 68448, '\p{Scx=:\APrti\z:}', "");;
     Expect(1, 68447, '\p{Scx=prti}', "");
@@ -150483,16 +151947,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68448, '\P{^Scx=prti}', "");
     Expect(1, 68447, '\p{Scx=:\Aprti\z:}', "");;
     Expect(0, 68448, '\p{Scx=:\Aprti\z:}', "");;
-    Expect(1, 68447, '\p{Scx=  prti}', "");
-    Expect(0, 68447, '\p{^Scx=  prti}', "");
-    Expect(0, 68447, '\P{Scx=  prti}', "");
-    Expect(1, 68447, '\P{^Scx=  prti}', "");
-    Expect(0, 68448, '\p{Scx=  prti}', "");
-    Expect(1, 68448, '\p{^Scx=  prti}', "");
-    Expect(1, 68448, '\P{Scx=  prti}', "");
-    Expect(0, 68448, '\P{^Scx=  prti}', "");
-    Error('\p{Is_Script_Extensions:	:=-	INSCRIPTIONAL_parthian}');
-    Error('\P{Is_Script_Extensions:	:=-	INSCRIPTIONAL_parthian}');
+    Expect(1, 68447, '\p{Scx=Prti}', "");
+    Expect(0, 68447, '\p{^Scx=Prti}', "");
+    Expect(0, 68447, '\P{Scx=Prti}', "");
+    Expect(1, 68447, '\P{^Scx=Prti}', "");
+    Expect(0, 68448, '\p{Scx=Prti}', "");
+    Expect(1, 68448, '\p{^Scx=Prti}', "");
+    Expect(1, 68448, '\P{Scx=Prti}', "");
+    Expect(0, 68448, '\P{^Scx=Prti}', "");
+    Error('\p{Is_Script_Extensions=:=--Inscriptional_Parthian}');
+    Error('\P{Is_Script_Extensions=:=--Inscriptional_Parthian}');
     Expect(1, 68447, '\p{Is_Script_Extensions=inscriptionalparthian}', "");
     Expect(0, 68447, '\p{^Is_Script_Extensions=inscriptionalparthian}', "");
     Expect(0, 68447, '\P{Is_Script_Extensions=inscriptionalparthian}', "");
@@ -150501,16 +151965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68448, '\p{^Is_Script_Extensions=inscriptionalparthian}', "");
     Expect(1, 68448, '\P{Is_Script_Extensions=inscriptionalparthian}', "");
     Expect(0, 68448, '\P{^Is_Script_Extensions=inscriptionalparthian}', "");
-    Expect(1, 68447, '\p{Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(0, 68447, '\p{^Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(0, 68447, '\P{Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(1, 68447, '\P{^Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(0, 68448, '\p{Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(1, 68448, '\p{^Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(1, 68448, '\P{Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Expect(0, 68448, '\P{^Is_Script_Extensions=_ Inscriptional_PARTHIAN}', "");
-    Error('\p{Is_Scx=:=	 Prti}');
-    Error('\P{Is_Scx=:=	 Prti}');
+    Expect(1, 68447, '\p{Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\p{^Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(0, 68447, '\P{Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(1, 68447, '\P{^Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\p{Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\p{^Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(1, 68448, '\P{Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Expect(0, 68448, '\P{^Is_Script_Extensions=	-inscriptional_PARTHIAN}', "");
+    Error('\p{Is_Scx=:=		PRTI}');
+    Error('\P{Is_Scx=:=		PRTI}');
     Expect(1, 68447, '\p{Is_Scx=prti}', "");
     Expect(0, 68447, '\p{^Is_Scx=prti}', "");
     Expect(0, 68447, '\P{Is_Scx=prti}', "");
@@ -150519,16 +151983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68448, '\p{^Is_Scx=prti}', "");
     Expect(1, 68448, '\P{Is_Scx=prti}', "");
     Expect(0, 68448, '\P{^Is_Scx=prti}', "");
-    Expect(1, 68447, '\p{Is_Scx=_-Prti}', "");
-    Expect(0, 68447, '\p{^Is_Scx=_-Prti}', "");
-    Expect(0, 68447, '\P{Is_Scx=_-Prti}', "");
-    Expect(1, 68447, '\P{^Is_Scx=_-Prti}', "");
-    Expect(0, 68448, '\p{Is_Scx=_-Prti}', "");
-    Expect(1, 68448, '\p{^Is_Scx=_-Prti}', "");
-    Expect(1, 68448, '\P{Is_Scx=_-Prti}', "");
-    Expect(0, 68448, '\P{^Is_Scx=_-Prti}', "");
-    Error('\p{Script_Extensions=_rejang/a/}');
-    Error('\P{Script_Extensions=_rejang/a/}');
+    Expect(1, 68447, '\p{Is_Scx=	_Prti}', "");
+    Expect(0, 68447, '\p{^Is_Scx=	_Prti}', "");
+    Expect(0, 68447, '\P{Is_Scx=	_Prti}', "");
+    Expect(1, 68447, '\P{^Is_Scx=	_Prti}', "");
+    Expect(0, 68448, '\p{Is_Scx=	_Prti}', "");
+    Expect(1, 68448, '\p{^Is_Scx=	_Prti}', "");
+    Expect(1, 68448, '\P{Is_Scx=	_Prti}', "");
+    Expect(0, 68448, '\P{^Is_Scx=	_Prti}', "");
+    Error('\p{Script_Extensions: :=rejang}');
+    Error('\P{Script_Extensions: :=rejang}');
     Expect(1, 43359, '\p{Script_Extensions=:\ARejang\z:}', "");;
     Expect(0, 43360, '\p{Script_Extensions=:\ARejang\z:}', "");;
     Expect(1, 43359, '\p{Script_Extensions=rejang}', "");
@@ -150541,38 +152005,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43360, '\P{^Script_Extensions=rejang}', "");
     Expect(1, 43359, '\p{Script_Extensions=:\Arejang\z:}', "");;
     Expect(0, 43360, '\p{Script_Extensions=:\Arejang\z:}', "");;
-    Expect(1, 43359, '\p{Script_Extensions=_	rejang}', "");
-    Expect(0, 43359, '\p{^Script_Extensions=_	rejang}', "");
-    Expect(0, 43359, '\P{Script_Extensions=_	rejang}', "");
-    Expect(1, 43359, '\P{^Script_Extensions=_	rejang}', "");
-    Expect(0, 43360, '\p{Script_Extensions=_	rejang}', "");
-    Expect(1, 43360, '\p{^Script_Extensions=_	rejang}', "");
-    Expect(1, 43360, '\P{Script_Extensions=_	rejang}', "");
-    Expect(0, 43360, '\P{^Script_Extensions=_	rejang}', "");
-    Error('\p{Scx=:= 	Rjng}');
-    Error('\P{Scx=:= 	Rjng}');
+    Expect(1, 43359, '\p{Script_Extensions=_rejang}', "");
+    Expect(0, 43359, '\p{^Script_Extensions=_rejang}', "");
+    Expect(0, 43359, '\P{Script_Extensions=_rejang}', "");
+    Expect(1, 43359, '\P{^Script_Extensions=_rejang}', "");
+    Expect(0, 43360, '\p{Script_Extensions=_rejang}', "");
+    Expect(1, 43360, '\p{^Script_Extensions=_rejang}', "");
+    Expect(1, 43360, '\P{Script_Extensions=_rejang}', "");
+    Expect(0, 43360, '\P{^Script_Extensions=_rejang}', "");
+    Error('\p{Scx=-_Rjng:=}');
+    Error('\P{Scx=-_Rjng:=}');
     Expect(1, 43359, '\p{Scx=:\ARjng\z:}', "");;
     Expect(0, 43360, '\p{Scx=:\ARjng\z:}', "");;
-    Expect(1, 43359, '\p{Scx:	rjng}', "");
-    Expect(0, 43359, '\p{^Scx:	rjng}', "");
-    Expect(0, 43359, '\P{Scx:	rjng}', "");
-    Expect(1, 43359, '\P{^Scx:	rjng}', "");
-    Expect(0, 43360, '\p{Scx:	rjng}', "");
-    Expect(1, 43360, '\p{^Scx:	rjng}', "");
-    Expect(1, 43360, '\P{Scx:	rjng}', "");
-    Expect(0, 43360, '\P{^Scx:	rjng}', "");
+    Expect(1, 43359, '\p{Scx=rjng}', "");
+    Expect(0, 43359, '\p{^Scx=rjng}', "");
+    Expect(0, 43359, '\P{Scx=rjng}', "");
+    Expect(1, 43359, '\P{^Scx=rjng}', "");
+    Expect(0, 43360, '\p{Scx=rjng}', "");
+    Expect(1, 43360, '\p{^Scx=rjng}', "");
+    Expect(1, 43360, '\P{Scx=rjng}', "");
+    Expect(0, 43360, '\P{^Scx=rjng}', "");
     Expect(1, 43359, '\p{Scx=:\Arjng\z:}', "");;
     Expect(0, 43360, '\p{Scx=:\Arjng\z:}', "");;
-    Expect(1, 43359, '\p{Scx= Rjng}', "");
-    Expect(0, 43359, '\p{^Scx= Rjng}', "");
-    Expect(0, 43359, '\P{Scx= Rjng}', "");
-    Expect(1, 43359, '\P{^Scx= Rjng}', "");
-    Expect(0, 43360, '\p{Scx= Rjng}', "");
-    Expect(1, 43360, '\p{^Scx= Rjng}', "");
-    Expect(1, 43360, '\P{Scx= Rjng}', "");
-    Expect(0, 43360, '\P{^Scx= Rjng}', "");
-    Error('\p{Is_Script_Extensions=_:=Rejang}');
-    Error('\P{Is_Script_Extensions=_:=Rejang}');
+    Expect(1, 43359, '\p{Scx=	RJNG}', "");
+    Expect(0, 43359, '\p{^Scx=	RJNG}', "");
+    Expect(0, 43359, '\P{Scx=	RJNG}', "");
+    Expect(1, 43359, '\P{^Scx=	RJNG}', "");
+    Expect(0, 43360, '\p{Scx=	RJNG}', "");
+    Expect(1, 43360, '\p{^Scx=	RJNG}', "");
+    Expect(1, 43360, '\P{Scx=	RJNG}', "");
+    Expect(0, 43360, '\P{^Scx=	RJNG}', "");
+    Error('\p{Is_Script_Extensions: :=_rejang}');
+    Error('\P{Is_Script_Extensions: :=_rejang}');
     Expect(1, 43359, '\p{Is_Script_Extensions=rejang}', "");
     Expect(0, 43359, '\p{^Is_Script_Extensions=rejang}', "");
     Expect(0, 43359, '\P{Is_Script_Extensions=rejang}', "");
@@ -150581,16 +152045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43360, '\p{^Is_Script_Extensions=rejang}', "");
     Expect(1, 43360, '\P{Is_Script_Extensions=rejang}', "");
     Expect(0, 43360, '\P{^Is_Script_Extensions=rejang}', "");
-    Expect(1, 43359, '\p{Is_Script_Extensions= _REJANG}', "");
-    Expect(0, 43359, '\p{^Is_Script_Extensions= _REJANG}', "");
-    Expect(0, 43359, '\P{Is_Script_Extensions= _REJANG}', "");
-    Expect(1, 43359, '\P{^Is_Script_Extensions= _REJANG}', "");
-    Expect(0, 43360, '\p{Is_Script_Extensions= _REJANG}', "");
-    Expect(1, 43360, '\p{^Is_Script_Extensions= _REJANG}', "");
-    Expect(1, 43360, '\P{Is_Script_Extensions= _REJANG}', "");
-    Expect(0, 43360, '\P{^Is_Script_Extensions= _REJANG}', "");
-    Error('\p{Is_Scx=-_rjng:=}');
-    Error('\P{Is_Scx=-_rjng:=}');
+    Expect(1, 43359, '\p{Is_Script_Extensions=_REJANG}', "");
+    Expect(0, 43359, '\p{^Is_Script_Extensions=_REJANG}', "");
+    Expect(0, 43359, '\P{Is_Script_Extensions=_REJANG}', "");
+    Expect(1, 43359, '\P{^Is_Script_Extensions=_REJANG}', "");
+    Expect(0, 43360, '\p{Is_Script_Extensions=_REJANG}', "");
+    Expect(1, 43360, '\p{^Is_Script_Extensions=_REJANG}', "");
+    Expect(1, 43360, '\P{Is_Script_Extensions=_REJANG}', "");
+    Expect(0, 43360, '\P{^Is_Script_Extensions=_REJANG}', "");
+    Error('\p{Is_Scx=/a/ Rjng}');
+    Error('\P{Is_Scx=/a/ Rjng}');
     Expect(1, 43359, '\p{Is_Scx=rjng}', "");
     Expect(0, 43359, '\p{^Is_Scx=rjng}', "");
     Expect(0, 43359, '\P{Is_Scx=rjng}', "");
@@ -150599,16 +152063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43360, '\p{^Is_Scx=rjng}', "");
     Expect(1, 43360, '\P{Is_Scx=rjng}', "");
     Expect(0, 43360, '\P{^Is_Scx=rjng}', "");
-    Expect(1, 43359, '\p{Is_Scx=- rjng}', "");
-    Expect(0, 43359, '\p{^Is_Scx=- rjng}', "");
-    Expect(0, 43359, '\P{Is_Scx=- rjng}', "");
-    Expect(1, 43359, '\P{^Is_Scx=- rjng}', "");
-    Expect(0, 43360, '\p{Is_Scx=- rjng}', "");
-    Expect(1, 43360, '\p{^Is_Scx=- rjng}', "");
-    Expect(1, 43360, '\P{Is_Scx=- rjng}', "");
-    Expect(0, 43360, '\P{^Is_Scx=- rjng}', "");
-    Error('\p{Script_Extensions= Hanifi_ROHINGYA/a/}');
-    Error('\P{Script_Extensions= Hanifi_ROHINGYA/a/}');
+    Expect(1, 43359, '\p{Is_Scx=Rjng}', "");
+    Expect(0, 43359, '\p{^Is_Scx=Rjng}', "");
+    Expect(0, 43359, '\P{Is_Scx=Rjng}', "");
+    Expect(1, 43359, '\P{^Is_Scx=Rjng}', "");
+    Expect(0, 43360, '\p{Is_Scx=Rjng}', "");
+    Expect(1, 43360, '\p{^Is_Scx=Rjng}', "");
+    Expect(1, 43360, '\P{Is_Scx=Rjng}', "");
+    Expect(0, 43360, '\P{^Is_Scx=Rjng}', "");
+    Error('\p{Script_Extensions=-/a/hanifi_ROHINGYA}');
+    Error('\P{Script_Extensions=-/a/hanifi_ROHINGYA}');
     Expect(1, 68921, '\p{Script_Extensions=:\AHanifi_Rohingya\z:}', "");;
     Expect(0, 68922, '\p{Script_Extensions=:\AHanifi_Rohingya\z:}', "");;
     Expect(1, 68921, '\p{Script_Extensions=hanifirohingya}', "");
@@ -150621,16 +152085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68922, '\P{^Script_Extensions=hanifirohingya}', "");
     Expect(1, 68921, '\p{Script_Extensions=:\Ahanifirohingya\z:}', "");;
     Expect(0, 68922, '\p{Script_Extensions=:\Ahanifirohingya\z:}', "");;
-    Expect(1, 68921, '\p{Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(0, 68921, '\p{^Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(0, 68921, '\P{Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(1, 68921, '\P{^Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(0, 68922, '\p{Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(1, 68922, '\p{^Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(1, 68922, '\P{Script_Extensions=	_Hanifi_rohingya}', "");
-    Expect(0, 68922, '\P{^Script_Extensions=	_Hanifi_rohingya}', "");
-    Error('\p{Scx=-	ROHG/a/}');
-    Error('\P{Scx=-	ROHG/a/}');
+    Expect(1, 68921, '\p{Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\p{^Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\P{Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(1, 68921, '\P{^Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\p{Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\p{^Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\P{Script_Extensions:     hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\P{^Script_Extensions:     hanifi_ROHINGYA}', "");
+    Error('\p{Scx=:=  Rohg}');
+    Error('\P{Scx=:=  Rohg}');
     Expect(1, 68921, '\p{Scx=:\ARohg\z:}', "");;
     Expect(0, 68922, '\p{Scx=:\ARohg\z:}', "");;
     Expect(1, 68921, '\p{Scx=rohg}', "");
@@ -150643,34 +152107,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68922, '\P{^Scx=rohg}', "");
     Expect(1, 68921, '\p{Scx=:\Arohg\z:}', "");;
     Expect(0, 68922, '\p{Scx=:\Arohg\z:}', "");;
-    Expect(1, 68921, '\p{Scx= Rohg}', "");
-    Expect(0, 68921, '\p{^Scx= Rohg}', "");
-    Expect(0, 68921, '\P{Scx= Rohg}', "");
-    Expect(1, 68921, '\P{^Scx= Rohg}', "");
-    Expect(0, 68922, '\p{Scx= Rohg}', "");
-    Expect(1, 68922, '\p{^Scx= Rohg}', "");
-    Expect(1, 68922, '\P{Scx= Rohg}', "");
-    Expect(0, 68922, '\P{^Scx= Rohg}', "");
-    Error('\p{Is_Script_Extensions=/a/-HANIFI_Rohingya}');
-    Error('\P{Is_Script_Extensions=/a/-HANIFI_Rohingya}');
-    Expect(1, 68921, '\p{Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(0, 68921, '\p{^Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(0, 68921, '\P{Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(1, 68921, '\P{^Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(0, 68922, '\p{Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(1, 68922, '\p{^Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(1, 68922, '\P{Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(0, 68922, '\P{^Is_Script_Extensions:   hanifirohingya}', "");
-    Expect(1, 68921, '\p{Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(0, 68921, '\p{^Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(0, 68921, '\P{Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(1, 68921, '\P{^Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(0, 68922, '\p{Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(1, 68922, '\p{^Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(1, 68922, '\P{Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Expect(0, 68922, '\P{^Is_Script_Extensions=_HANIFI_ROHINGYA}', "");
-    Error('\p{Is_Scx=	_Rohg:=}');
-    Error('\P{Is_Scx=	_Rohg:=}');
+    Expect(1, 68921, '\p{Scx=	Rohg}', "");
+    Expect(0, 68921, '\p{^Scx=	Rohg}', "");
+    Expect(0, 68921, '\P{Scx=	Rohg}', "");
+    Expect(1, 68921, '\P{^Scx=	Rohg}', "");
+    Expect(0, 68922, '\p{Scx=	Rohg}', "");
+    Expect(1, 68922, '\p{^Scx=	Rohg}', "");
+    Expect(1, 68922, '\P{Scx=	Rohg}', "");
+    Expect(0, 68922, '\P{^Scx=	Rohg}', "");
+    Error('\p{Is_Script_Extensions=/a/_Hanifi_rohingya}');
+    Error('\P{Is_Script_Extensions=/a/_Hanifi_rohingya}');
+    Expect(1, 68921, '\p{Is_Script_Extensions=hanifirohingya}', "");
+    Expect(0, 68921, '\p{^Is_Script_Extensions=hanifirohingya}', "");
+    Expect(0, 68921, '\P{Is_Script_Extensions=hanifirohingya}', "");
+    Expect(1, 68921, '\P{^Is_Script_Extensions=hanifirohingya}', "");
+    Expect(0, 68922, '\p{Is_Script_Extensions=hanifirohingya}', "");
+    Expect(1, 68922, '\p{^Is_Script_Extensions=hanifirohingya}', "");
+    Expect(1, 68922, '\P{Is_Script_Extensions=hanifirohingya}', "");
+    Expect(0, 68922, '\P{^Is_Script_Extensions=hanifirohingya}', "");
+    Expect(1, 68921, '\p{Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\p{^Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(0, 68921, '\P{Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(1, 68921, '\P{^Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\p{Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\p{^Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(1, 68922, '\P{Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Expect(0, 68922, '\P{^Is_Script_Extensions=_	Hanifi_ROHINGYA}', "");
+    Error('\p{Is_Scx=-_Rohg/a/}');
+    Error('\P{Is_Scx=-_Rohg/a/}');
     Expect(1, 68921, '\p{Is_Scx=rohg}', "");
     Expect(0, 68921, '\p{^Is_Scx=rohg}', "");
     Expect(0, 68921, '\P{Is_Scx=rohg}', "");
@@ -150679,16 +152143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68922, '\p{^Is_Scx=rohg}', "");
     Expect(1, 68922, '\P{Is_Scx=rohg}', "");
     Expect(0, 68922, '\P{^Is_Scx=rohg}', "");
-    Expect(1, 68921, '\p{Is_Scx= -ROHG}', "");
-    Expect(0, 68921, '\p{^Is_Scx= -ROHG}', "");
-    Expect(0, 68921, '\P{Is_Scx= -ROHG}', "");
-    Expect(1, 68921, '\P{^Is_Scx= -ROHG}', "");
-    Expect(0, 68922, '\p{Is_Scx= -ROHG}', "");
-    Expect(1, 68922, '\p{^Is_Scx= -ROHG}', "");
-    Expect(1, 68922, '\P{Is_Scx= -ROHG}', "");
-    Expect(0, 68922, '\P{^Is_Scx= -ROHG}', "");
-    Error('\p{Script_Extensions=:=	_RUNIC}');
-    Error('\P{Script_Extensions=:=	_RUNIC}');
+    Expect(1, 68921, '\p{Is_Scx=_	ROHG}', "");
+    Expect(0, 68921, '\p{^Is_Scx=_	ROHG}', "");
+    Expect(0, 68921, '\P{Is_Scx=_	ROHG}', "");
+    Expect(1, 68921, '\P{^Is_Scx=_	ROHG}', "");
+    Expect(0, 68922, '\p{Is_Scx=_	ROHG}', "");
+    Expect(1, 68922, '\p{^Is_Scx=_	ROHG}', "");
+    Expect(1, 68922, '\P{Is_Scx=_	ROHG}', "");
+    Expect(0, 68922, '\P{^Is_Scx=_	ROHG}', "");
+    Error('\p{Script_Extensions:_/a/runic}');
+    Error('\P{Script_Extensions:_/a/runic}');
     Expect(1, 5880, '\p{Script_Extensions=:\ARunic\z:}', "");;
     Expect(0, 5881, '\p{Script_Extensions=:\ARunic\z:}', "");;
     Expect(1, 5880, '\p{Script_Extensions=runic}', "");
@@ -150701,16 +152165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5881, '\P{^Script_Extensions=runic}', "");
     Expect(1, 5880, '\p{Script_Extensions=:\Arunic\z:}', "");;
     Expect(0, 5881, '\p{Script_Extensions=:\Arunic\z:}', "");;
-    Expect(1, 5880, '\p{Script_Extensions=  runic}', "");
-    Expect(0, 5880, '\p{^Script_Extensions=  runic}', "");
-    Expect(0, 5880, '\P{Script_Extensions=  runic}', "");
-    Expect(1, 5880, '\P{^Script_Extensions=  runic}', "");
-    Expect(0, 5881, '\p{Script_Extensions=  runic}', "");
-    Expect(1, 5881, '\p{^Script_Extensions=  runic}', "");
-    Expect(1, 5881, '\P{Script_Extensions=  runic}', "");
-    Expect(0, 5881, '\P{^Script_Extensions=  runic}', "");
-    Error('\p{Scx=	-Runr/a/}');
-    Error('\P{Scx=	-Runr/a/}');
+    Expect(1, 5880, '\p{Script_Extensions=_RUNIC}', "");
+    Expect(0, 5880, '\p{^Script_Extensions=_RUNIC}', "");
+    Expect(0, 5880, '\P{Script_Extensions=_RUNIC}', "");
+    Expect(1, 5880, '\P{^Script_Extensions=_RUNIC}', "");
+    Expect(0, 5881, '\p{Script_Extensions=_RUNIC}', "");
+    Expect(1, 5881, '\p{^Script_Extensions=_RUNIC}', "");
+    Expect(1, 5881, '\P{Script_Extensions=_RUNIC}', "");
+    Expect(0, 5881, '\P{^Script_Extensions=_RUNIC}', "");
+    Error('\p{Scx=-:=Runr}');
+    Error('\P{Scx=-:=Runr}');
     Expect(1, 5880, '\p{Scx=:\ARunr\z:}', "");;
     Expect(0, 5881, '\p{Scx=:\ARunr\z:}', "");;
     Expect(1, 5880, '\p{Scx=runr}', "");
@@ -150723,16 +152187,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5881, '\P{^Scx=runr}', "");
     Expect(1, 5880, '\p{Scx=:\Arunr\z:}', "");;
     Expect(0, 5881, '\p{Scx=:\Arunr\z:}', "");;
-    Expect(1, 5880, '\p{Scx=- RUNR}', "");
-    Expect(0, 5880, '\p{^Scx=- RUNR}', "");
-    Expect(0, 5880, '\P{Scx=- RUNR}', "");
-    Expect(1, 5880, '\P{^Scx=- RUNR}', "");
-    Expect(0, 5881, '\p{Scx=- RUNR}', "");
-    Expect(1, 5881, '\p{^Scx=- RUNR}', "");
-    Expect(1, 5881, '\P{Scx=- RUNR}', "");
-    Expect(0, 5881, '\P{^Scx=- RUNR}', "");
-    Error('\p{Is_Script_Extensions=_/a/Runic}');
-    Error('\P{Is_Script_Extensions=_/a/Runic}');
+    Expect(1, 5880, '\p{Scx=_runr}', "");
+    Expect(0, 5880, '\p{^Scx=_runr}', "");
+    Expect(0, 5880, '\P{Scx=_runr}', "");
+    Expect(1, 5880, '\P{^Scx=_runr}', "");
+    Expect(0, 5881, '\p{Scx=_runr}', "");
+    Expect(1, 5881, '\p{^Scx=_runr}', "");
+    Expect(1, 5881, '\P{Scx=_runr}', "");
+    Expect(0, 5881, '\P{^Scx=_runr}', "");
+    Error('\p{Is_Script_Extensions=:=runic}');
+    Error('\P{Is_Script_Extensions=:=runic}');
     Expect(1, 5880, '\p{Is_Script_Extensions=runic}', "");
     Expect(0, 5880, '\p{^Is_Script_Extensions=runic}', "");
     Expect(0, 5880, '\P{Is_Script_Extensions=runic}', "");
@@ -150741,34 +152205,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5881, '\p{^Is_Script_Extensions=runic}', "");
     Expect(1, 5881, '\P{Is_Script_Extensions=runic}', "");
     Expect(0, 5881, '\P{^Is_Script_Extensions=runic}', "");
-    Expect(1, 5880, '\p{Is_Script_Extensions= RUNIC}', "");
-    Expect(0, 5880, '\p{^Is_Script_Extensions= RUNIC}', "");
-    Expect(0, 5880, '\P{Is_Script_Extensions= RUNIC}', "");
-    Expect(1, 5880, '\P{^Is_Script_Extensions= RUNIC}', "");
-    Expect(0, 5881, '\p{Is_Script_Extensions= RUNIC}', "");
-    Expect(1, 5881, '\p{^Is_Script_Extensions= RUNIC}', "");
-    Expect(1, 5881, '\P{Is_Script_Extensions= RUNIC}', "");
-    Expect(0, 5881, '\P{^Is_Script_Extensions= RUNIC}', "");
-    Error('\p{Is_Scx=_Runr:=}');
-    Error('\P{Is_Scx=_Runr:=}');
-    Expect(1, 5880, '\p{Is_Scx=runr}', "");
-    Expect(0, 5880, '\p{^Is_Scx=runr}', "");
-    Expect(0, 5880, '\P{Is_Scx=runr}', "");
-    Expect(1, 5880, '\P{^Is_Scx=runr}', "");
-    Expect(0, 5881, '\p{Is_Scx=runr}', "");
-    Expect(1, 5881, '\p{^Is_Scx=runr}', "");
-    Expect(1, 5881, '\P{Is_Scx=runr}', "");
-    Expect(0, 5881, '\P{^Is_Scx=runr}', "");
-    Expect(1, 5880, '\p{Is_Scx=-	RUNR}', "");
-    Expect(0, 5880, '\p{^Is_Scx=-	RUNR}', "");
-    Expect(0, 5880, '\P{Is_Scx=-	RUNR}', "");
-    Expect(1, 5880, '\P{^Is_Scx=-	RUNR}', "");
-    Expect(0, 5881, '\p{Is_Scx=-	RUNR}', "");
-    Expect(1, 5881, '\p{^Is_Scx=-	RUNR}', "");
-    Expect(1, 5881, '\P{Is_Scx=-	RUNR}', "");
-    Expect(0, 5881, '\P{^Is_Scx=-	RUNR}', "");
-    Error('\p{Script_Extensions=/a/-	samaritan}');
-    Error('\P{Script_Extensions=/a/-	samaritan}');
+    Expect(1, 5880, '\p{Is_Script_Extensions= 	runic}', "");
+    Expect(0, 5880, '\p{^Is_Script_Extensions= 	runic}', "");
+    Expect(0, 5880, '\P{Is_Script_Extensions= 	runic}', "");
+    Expect(1, 5880, '\P{^Is_Script_Extensions= 	runic}', "");
+    Expect(0, 5881, '\p{Is_Script_Extensions= 	runic}', "");
+    Expect(1, 5881, '\p{^Is_Script_Extensions= 	runic}', "");
+    Expect(1, 5881, '\P{Is_Script_Extensions= 	runic}', "");
+    Expect(0, 5881, '\P{^Is_Script_Extensions= 	runic}', "");
+    Error('\p{Is_Scx= /a/Runr}');
+    Error('\P{Is_Scx= /a/Runr}');
+    Expect(1, 5880, '\p{Is_Scx:	runr}', "");
+    Expect(0, 5880, '\p{^Is_Scx:	runr}', "");
+    Expect(0, 5880, '\P{Is_Scx:	runr}', "");
+    Expect(1, 5880, '\P{^Is_Scx:	runr}', "");
+    Expect(0, 5881, '\p{Is_Scx:	runr}', "");
+    Expect(1, 5881, '\p{^Is_Scx:	runr}', "");
+    Expect(1, 5881, '\P{Is_Scx:	runr}', "");
+    Expect(0, 5881, '\P{^Is_Scx:	runr}', "");
+    Expect(1, 5880, '\p{Is_Scx=_RUNR}', "");
+    Expect(0, 5880, '\p{^Is_Scx=_RUNR}', "");
+    Expect(0, 5880, '\P{Is_Scx=_RUNR}', "");
+    Expect(1, 5880, '\P{^Is_Scx=_RUNR}', "");
+    Expect(0, 5881, '\p{Is_Scx=_RUNR}', "");
+    Expect(1, 5881, '\p{^Is_Scx=_RUNR}', "");
+    Expect(1, 5881, '\P{Is_Scx=_RUNR}', "");
+    Expect(0, 5881, '\P{^Is_Scx=_RUNR}', "");
+    Error('\p{Script_Extensions=	-Samaritan/a/}');
+    Error('\P{Script_Extensions=	-Samaritan/a/}');
     Expect(1, 2110, '\p{Script_Extensions=:\ASamaritan\z:}', "");;
     Expect(0, 2111, '\p{Script_Extensions=:\ASamaritan\z:}', "");;
     Expect(1, 2110, '\p{Script_Extensions=samaritan}', "");
@@ -150781,38 +152245,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 2111, '\P{^Script_Extensions=samaritan}', "");
     Expect(1, 2110, '\p{Script_Extensions=:\Asamaritan\z:}', "");;
     Expect(0, 2111, '\p{Script_Extensions=:\Asamaritan\z:}', "");;
-    Expect(1, 2110, '\p{Script_Extensions=_	SAMARITAN}', "");
-    Expect(0, 2110, '\p{^Script_Extensions=_	SAMARITAN}', "");
-    Expect(0, 2110, '\P{Script_Extensions=_	SAMARITAN}', "");
-    Expect(1, 2110, '\P{^Script_Extensions=_	SAMARITAN}', "");
-    Expect(0, 2111, '\p{Script_Extensions=_	SAMARITAN}', "");
-    Expect(1, 2111, '\p{^Script_Extensions=_	SAMARITAN}', "");
-    Expect(1, 2111, '\P{Script_Extensions=_	SAMARITAN}', "");
-    Expect(0, 2111, '\P{^Script_Extensions=_	SAMARITAN}', "");
-    Error('\p{Scx:	 Samr:=}');
-    Error('\P{Scx:	 Samr:=}');
+    Expect(1, 2110, '\p{Script_Extensions=--Samaritan}', "");
+    Expect(0, 2110, '\p{^Script_Extensions=--Samaritan}', "");
+    Expect(0, 2110, '\P{Script_Extensions=--Samaritan}', "");
+    Expect(1, 2110, '\P{^Script_Extensions=--Samaritan}', "");
+    Expect(0, 2111, '\p{Script_Extensions=--Samaritan}', "");
+    Expect(1, 2111, '\p{^Script_Extensions=--Samaritan}', "");
+    Expect(1, 2111, '\P{Script_Extensions=--Samaritan}', "");
+    Expect(0, 2111, '\P{^Script_Extensions=--Samaritan}', "");
+    Error('\p{Scx=/a/-_SAMR}');
+    Error('\P{Scx=/a/-_SAMR}');
     Expect(1, 2110, '\p{Scx=:\ASamr\z:}', "");;
     Expect(0, 2111, '\p{Scx=:\ASamr\z:}', "");;
-    Expect(1, 2110, '\p{Scx=samr}', "");
-    Expect(0, 2110, '\p{^Scx=samr}', "");
-    Expect(0, 2110, '\P{Scx=samr}', "");
-    Expect(1, 2110, '\P{^Scx=samr}', "");
-    Expect(0, 2111, '\p{Scx=samr}', "");
-    Expect(1, 2111, '\p{^Scx=samr}', "");
-    Expect(1, 2111, '\P{Scx=samr}', "");
-    Expect(0, 2111, '\P{^Scx=samr}', "");
+    Expect(1, 2110, '\p{Scx:	samr}', "");
+    Expect(0, 2110, '\p{^Scx:	samr}', "");
+    Expect(0, 2110, '\P{Scx:	samr}', "");
+    Expect(1, 2110, '\P{^Scx:	samr}', "");
+    Expect(0, 2111, '\p{Scx:	samr}', "");
+    Expect(1, 2111, '\p{^Scx:	samr}', "");
+    Expect(1, 2111, '\P{Scx:	samr}', "");
+    Expect(0, 2111, '\P{^Scx:	samr}', "");
     Expect(1, 2110, '\p{Scx=:\Asamr\z:}', "");;
     Expect(0, 2111, '\p{Scx=:\Asamr\z:}', "");;
-    Expect(1, 2110, '\p{Scx:_	Samr}', "");
-    Expect(0, 2110, '\p{^Scx:_	Samr}', "");
-    Expect(0, 2110, '\P{Scx:_	Samr}', "");
-    Expect(1, 2110, '\P{^Scx:_	Samr}', "");
-    Expect(0, 2111, '\p{Scx:_	Samr}', "");
-    Expect(1, 2111, '\p{^Scx:_	Samr}', "");
-    Expect(1, 2111, '\P{Scx:_	Samr}', "");
-    Expect(0, 2111, '\P{^Scx:_	Samr}', "");
-    Error('\p{Is_Script_Extensions=-:=Samaritan}');
-    Error('\P{Is_Script_Extensions=-:=Samaritan}');
+    Expect(1, 2110, '\p{Scx=__Samr}', "");
+    Expect(0, 2110, '\p{^Scx=__Samr}', "");
+    Expect(0, 2110, '\P{Scx=__Samr}', "");
+    Expect(1, 2110, '\P{^Scx=__Samr}', "");
+    Expect(0, 2111, '\p{Scx=__Samr}', "");
+    Expect(1, 2111, '\p{^Scx=__Samr}', "");
+    Expect(1, 2111, '\P{Scx=__Samr}', "");
+    Expect(0, 2111, '\P{^Scx=__Samr}', "");
+    Error('\p{Is_Script_Extensions=/a/	-samaritan}');
+    Error('\P{Is_Script_Extensions=/a/	-samaritan}');
     Expect(1, 2110, '\p{Is_Script_Extensions=samaritan}', "");
     Expect(0, 2110, '\p{^Is_Script_Extensions=samaritan}', "");
     Expect(0, 2110, '\P{Is_Script_Extensions=samaritan}', "");
@@ -150821,16 +152285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^Is_Script_Extensions=samaritan}', "");
     Expect(1, 2111, '\P{Is_Script_Extensions=samaritan}', "");
     Expect(0, 2111, '\P{^Is_Script_Extensions=samaritan}', "");
-    Expect(1, 2110, '\p{Is_Script_Extensions= -Samaritan}', "");
-    Expect(0, 2110, '\p{^Is_Script_Extensions= -Samaritan}', "");
-    Expect(0, 2110, '\P{Is_Script_Extensions= -Samaritan}', "");
-    Expect(1, 2110, '\P{^Is_Script_Extensions= -Samaritan}', "");
-    Expect(0, 2111, '\p{Is_Script_Extensions= -Samaritan}', "");
-    Expect(1, 2111, '\p{^Is_Script_Extensions= -Samaritan}', "");
-    Expect(1, 2111, '\P{Is_Script_Extensions= -Samaritan}', "");
-    Expect(0, 2111, '\P{^Is_Script_Extensions= -Samaritan}', "");
-    Error('\p{Is_Scx=_:=Samr}');
-    Error('\P{Is_Scx=_:=Samr}');
+    Expect(1, 2110, '\p{Is_Script_Extensions= samaritan}', "");
+    Expect(0, 2110, '\p{^Is_Script_Extensions= samaritan}', "");
+    Expect(0, 2110, '\P{Is_Script_Extensions= samaritan}', "");
+    Expect(1, 2110, '\P{^Is_Script_Extensions= samaritan}', "");
+    Expect(0, 2111, '\p{Is_Script_Extensions= samaritan}', "");
+    Expect(1, 2111, '\p{^Is_Script_Extensions= samaritan}', "");
+    Expect(1, 2111, '\P{Is_Script_Extensions= samaritan}', "");
+    Expect(0, 2111, '\P{^Is_Script_Extensions= samaritan}', "");
+    Error('\p{Is_Scx=-:=SAMR}');
+    Error('\P{Is_Scx=-:=SAMR}');
     Expect(1, 2110, '\p{Is_Scx=samr}', "");
     Expect(0, 2110, '\p{^Is_Scx=samr}', "");
     Expect(0, 2110, '\P{Is_Scx=samr}', "");
@@ -150839,38 +152303,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 2111, '\p{^Is_Scx=samr}', "");
     Expect(1, 2111, '\P{Is_Scx=samr}', "");
     Expect(0, 2111, '\P{^Is_Scx=samr}', "");
-    Expect(1, 2110, '\p{Is_Scx= SAMR}', "");
-    Expect(0, 2110, '\p{^Is_Scx= SAMR}', "");
-    Expect(0, 2110, '\P{Is_Scx= SAMR}', "");
-    Expect(1, 2110, '\P{^Is_Scx= SAMR}', "");
-    Expect(0, 2111, '\p{Is_Scx= SAMR}', "");
-    Expect(1, 2111, '\p{^Is_Scx= SAMR}', "");
-    Expect(1, 2111, '\P{Is_Scx= SAMR}', "");
-    Expect(0, 2111, '\P{^Is_Scx= SAMR}', "");
-    Error('\p{Script_Extensions=/a/	 old_South_ARABIAN}');
-    Error('\P{Script_Extensions=/a/	 old_South_ARABIAN}');
+    Expect(1, 2110, '\p{Is_Scx= -Samr}', "");
+    Expect(0, 2110, '\p{^Is_Scx= -Samr}', "");
+    Expect(0, 2110, '\P{Is_Scx= -Samr}', "");
+    Expect(1, 2110, '\P{^Is_Scx= -Samr}', "");
+    Expect(0, 2111, '\p{Is_Scx= -Samr}', "");
+    Expect(1, 2111, '\p{^Is_Scx= -Samr}', "");
+    Expect(1, 2111, '\P{Is_Scx= -Samr}', "");
+    Expect(0, 2111, '\P{^Is_Scx= -Samr}', "");
+    Error('\p{Script_Extensions= _old_SOUTH_Arabian:=}');
+    Error('\P{Script_Extensions= _old_SOUTH_Arabian:=}');
     Expect(1, 68223, '\p{Script_Extensions=:\AOld_South_Arabian\z:}', "");;
     Expect(0, 68224, '\p{Script_Extensions=:\AOld_South_Arabian\z:}', "");;
-    Expect(1, 68223, '\p{Script_Extensions: oldsoutharabian}', "");
-    Expect(0, 68223, '\p{^Script_Extensions: oldsoutharabian}', "");
-    Expect(0, 68223, '\P{Script_Extensions: oldsoutharabian}', "");
-    Expect(1, 68223, '\P{^Script_Extensions: oldsoutharabian}', "");
-    Expect(0, 68224, '\p{Script_Extensions: oldsoutharabian}', "");
-    Expect(1, 68224, '\p{^Script_Extensions: oldsoutharabian}', "");
-    Expect(1, 68224, '\P{Script_Extensions: oldsoutharabian}', "");
-    Expect(0, 68224, '\P{^Script_Extensions: oldsoutharabian}', "");
+    Expect(1, 68223, '\p{Script_Extensions=oldsoutharabian}', "");
+    Expect(0, 68223, '\p{^Script_Extensions=oldsoutharabian}', "");
+    Expect(0, 68223, '\P{Script_Extensions=oldsoutharabian}', "");
+    Expect(1, 68223, '\P{^Script_Extensions=oldsoutharabian}', "");
+    Expect(0, 68224, '\p{Script_Extensions=oldsoutharabian}', "");
+    Expect(1, 68224, '\p{^Script_Extensions=oldsoutharabian}', "");
+    Expect(1, 68224, '\P{Script_Extensions=oldsoutharabian}', "");
+    Expect(0, 68224, '\P{^Script_Extensions=oldsoutharabian}', "");
     Expect(1, 68223, '\p{Script_Extensions=:\Aoldsoutharabian\z:}', "");;
     Expect(0, 68224, '\p{Script_Extensions=:\Aoldsoutharabian\z:}', "");;
-    Expect(1, 68223, '\p{Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(0, 68223, '\p{^Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(0, 68223, '\P{Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(1, 68223, '\P{^Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(0, 68224, '\p{Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(1, 68224, '\p{^Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(1, 68224, '\P{Script_Extensions:	_	old_South_Arabian}', "");
-    Expect(0, 68224, '\P{^Script_Extensions:	_	old_South_Arabian}', "");
-    Error('\p{Scx=/a/-	sarb}');
-    Error('\P{Scx=/a/-	sarb}');
+    Expect(1, 68223, '\p{Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(0, 68223, '\p{^Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(0, 68223, '\P{Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(1, 68223, '\P{^Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(0, 68224, '\p{Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(1, 68224, '\p{^Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(1, 68224, '\P{Script_Extensions=-	Old_South_Arabian}', "");
+    Expect(0, 68224, '\P{^Script_Extensions=-	Old_South_Arabian}', "");
+    Error('\p{Scx:   :=	-SARB}');
+    Error('\P{Scx:   :=	-SARB}');
     Expect(1, 68223, '\p{Scx=:\ASarb\z:}', "");;
     Expect(0, 68224, '\p{Scx=:\ASarb\z:}', "");;
     Expect(1, 68223, '\p{Scx=sarb}', "");
@@ -150883,16 +152347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 68224, '\P{^Scx=sarb}', "");
     Expect(1, 68223, '\p{Scx=:\Asarb\z:}', "");;
     Expect(0, 68224, '\p{Scx=:\Asarb\z:}', "");;
-    Expect(1, 68223, '\p{Scx=SARB}', "");
-    Expect(0, 68223, '\p{^Scx=SARB}', "");
-    Expect(0, 68223, '\P{Scx=SARB}', "");
-    Expect(1, 68223, '\P{^Scx=SARB}', "");
-    Expect(0, 68224, '\p{Scx=SARB}', "");
-    Expect(1, 68224, '\p{^Scx=SARB}', "");
-    Expect(1, 68224, '\P{Scx=SARB}', "");
-    Expect(0, 68224, '\P{^Scx=SARB}', "");
-    Error('\p{Is_Script_Extensions=/a/_	old_South_ARABIAN}');
-    Error('\P{Is_Script_Extensions=/a/_	old_South_ARABIAN}');
+    Expect(1, 68223, '\p{Scx=	 SARB}', "");
+    Expect(0, 68223, '\p{^Scx=	 SARB}', "");
+    Expect(0, 68223, '\P{Scx=	 SARB}', "");
+    Expect(1, 68223, '\P{^Scx=	 SARB}', "");
+    Expect(0, 68224, '\p{Scx=	 SARB}', "");
+    Expect(1, 68224, '\p{^Scx=	 SARB}', "");
+    Expect(1, 68224, '\P{Scx=	 SARB}', "");
+    Expect(0, 68224, '\P{^Scx=	 SARB}', "");
+    Error('\p{Is_Script_Extensions=:=  Old_South_ARABIAN}');
+    Error('\P{Is_Script_Extensions=:=  Old_South_ARABIAN}');
     Expect(1, 68223, '\p{Is_Script_Extensions=oldsoutharabian}', "");
     Expect(0, 68223, '\p{^Is_Script_Extensions=oldsoutharabian}', "");
     Expect(0, 68223, '\P{Is_Script_Extensions=oldsoutharabian}', "");
@@ -150901,16 +152365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68224, '\p{^Is_Script_Extensions=oldsoutharabian}', "");
     Expect(1, 68224, '\P{Is_Script_Extensions=oldsoutharabian}', "");
     Expect(0, 68224, '\P{^Is_Script_Extensions=oldsoutharabian}', "");
-    Expect(1, 68223, '\p{Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(0, 68223, '\p{^Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(0, 68223, '\P{Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(1, 68223, '\P{^Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(0, 68224, '\p{Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(1, 68224, '\p{^Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(1, 68224, '\P{Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Expect(0, 68224, '\P{^Is_Script_Extensions= _old_SOUTH_Arabian}', "");
-    Error('\p{Is_Scx=__SARB/a/}');
-    Error('\P{Is_Scx=__SARB/a/}');
+    Expect(1, 68223, '\p{Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(0, 68223, '\p{^Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(0, 68223, '\P{Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(1, 68223, '\P{^Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(0, 68224, '\p{Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(1, 68224, '\p{^Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(1, 68224, '\P{Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Expect(0, 68224, '\P{^Is_Script_Extensions=	Old_SOUTH_arabian}', "");
+    Error('\p{Is_Scx=_sarb:=}');
+    Error('\P{Is_Scx=_sarb:=}');
     Expect(1, 68223, '\p{Is_Scx=sarb}', "");
     Expect(0, 68223, '\p{^Is_Scx=sarb}', "");
     Expect(0, 68223, '\P{Is_Scx=sarb}', "");
@@ -150919,16 +152383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 68224, '\p{^Is_Scx=sarb}', "");
     Expect(1, 68224, '\P{Is_Scx=sarb}', "");
     Expect(0, 68224, '\P{^Is_Scx=sarb}', "");
-    Expect(1, 68223, '\p{Is_Scx=__sarb}', "");
-    Expect(0, 68223, '\p{^Is_Scx=__sarb}', "");
-    Expect(0, 68223, '\P{Is_Scx=__sarb}', "");
-    Expect(1, 68223, '\P{^Is_Scx=__sarb}', "");
-    Expect(0, 68224, '\p{Is_Scx=__sarb}', "");
-    Expect(1, 68224, '\p{^Is_Scx=__sarb}', "");
-    Expect(1, 68224, '\P{Is_Scx=__sarb}', "");
-    Expect(0, 68224, '\P{^Is_Scx=__sarb}', "");
-    Error('\p{Script_Extensions=_Saurashtra:=}');
-    Error('\P{Script_Extensions=_Saurashtra:=}');
+    Expect(1, 68223, '\p{Is_Scx: 	SARB}', "");
+    Expect(0, 68223, '\p{^Is_Scx: 	SARB}', "");
+    Expect(0, 68223, '\P{Is_Scx: 	SARB}', "");
+    Expect(1, 68223, '\P{^Is_Scx: 	SARB}', "");
+    Expect(0, 68224, '\p{Is_Scx: 	SARB}', "");
+    Expect(1, 68224, '\p{^Is_Scx: 	SARB}', "");
+    Expect(1, 68224, '\P{Is_Scx: 	SARB}', "");
+    Expect(0, 68224, '\P{^Is_Scx: 	SARB}', "");
+    Error('\p{Script_Extensions=:=--saurashtra}');
+    Error('\P{Script_Extensions=:=--saurashtra}');
     Expect(1, 43225, '\p{Script_Extensions=:\ASaurashtra\z:}', "");;
     Expect(0, 43226, '\p{Script_Extensions=:\ASaurashtra\z:}', "");;
     Expect(1, 43225, '\p{Script_Extensions=saurashtra}', "");
@@ -150941,16 +152405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43226, '\P{^Script_Extensions=saurashtra}', "");
     Expect(1, 43225, '\p{Script_Extensions=:\Asaurashtra\z:}', "");;
     Expect(0, 43226, '\p{Script_Extensions=:\Asaurashtra\z:}', "");;
-    Expect(1, 43225, '\p{Script_Extensions= _saurashtra}', "");
-    Expect(0, 43225, '\p{^Script_Extensions= _saurashtra}', "");
-    Expect(0, 43225, '\P{Script_Extensions= _saurashtra}', "");
-    Expect(1, 43225, '\P{^Script_Extensions= _saurashtra}', "");
-    Expect(0, 43226, '\p{Script_Extensions= _saurashtra}', "");
-    Expect(1, 43226, '\p{^Script_Extensions= _saurashtra}', "");
-    Expect(1, 43226, '\P{Script_Extensions= _saurashtra}', "");
-    Expect(0, 43226, '\P{^Script_Extensions= _saurashtra}', "");
-    Error('\p{Scx=_:=Saur}');
-    Error('\P{Scx=_:=Saur}');
+    Expect(1, 43225, '\p{Script_Extensions= 	Saurashtra}', "");
+    Expect(0, 43225, '\p{^Script_Extensions= 	Saurashtra}', "");
+    Expect(0, 43225, '\P{Script_Extensions= 	Saurashtra}', "");
+    Expect(1, 43225, '\P{^Script_Extensions= 	Saurashtra}', "");
+    Expect(0, 43226, '\p{Script_Extensions= 	Saurashtra}', "");
+    Expect(1, 43226, '\p{^Script_Extensions= 	Saurashtra}', "");
+    Expect(1, 43226, '\P{Script_Extensions= 	Saurashtra}', "");
+    Expect(0, 43226, '\P{^Script_Extensions= 	Saurashtra}', "");
+    Error('\p{Scx=:=SAUR}');
+    Error('\P{Scx=:=SAUR}');
     Expect(1, 43225, '\p{Scx=:\ASaur\z:}', "");;
     Expect(0, 43226, '\p{Scx=:\ASaur\z:}', "");;
     Expect(1, 43225, '\p{Scx=saur}', "");
@@ -150963,16 +152427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43226, '\P{^Scx=saur}', "");
     Expect(1, 43225, '\p{Scx=:\Asaur\z:}', "");;
     Expect(0, 43226, '\p{Scx=:\Asaur\z:}', "");;
-    Expect(1, 43225, '\p{Scx=	_saur}', "");
-    Expect(0, 43225, '\p{^Scx=	_saur}', "");
-    Expect(0, 43225, '\P{Scx=	_saur}', "");
-    Expect(1, 43225, '\P{^Scx=	_saur}', "");
-    Expect(0, 43226, '\p{Scx=	_saur}', "");
-    Expect(1, 43226, '\p{^Scx=	_saur}', "");
-    Expect(1, 43226, '\P{Scx=	_saur}', "");
-    Expect(0, 43226, '\P{^Scx=	_saur}', "");
-    Error('\p{Is_Script_Extensions=/a/ 	Saurashtra}');
-    Error('\P{Is_Script_Extensions=/a/ 	Saurashtra}');
+    Expect(1, 43225, '\p{Scx=-saur}', "");
+    Expect(0, 43225, '\p{^Scx=-saur}', "");
+    Expect(0, 43225, '\P{Scx=-saur}', "");
+    Expect(1, 43225, '\P{^Scx=-saur}', "");
+    Expect(0, 43226, '\p{Scx=-saur}', "");
+    Expect(1, 43226, '\p{^Scx=-saur}', "");
+    Expect(1, 43226, '\P{Scx=-saur}', "");
+    Expect(0, 43226, '\P{^Scx=-saur}', "");
+    Error('\p{Is_Script_Extensions=/a/	Saurashtra}');
+    Error('\P{Is_Script_Extensions=/a/	Saurashtra}');
     Expect(1, 43225, '\p{Is_Script_Extensions=saurashtra}', "");
     Expect(0, 43225, '\p{^Is_Script_Extensions=saurashtra}', "");
     Expect(0, 43225, '\P{Is_Script_Extensions=saurashtra}', "");
@@ -150981,16 +152445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^Is_Script_Extensions=saurashtra}', "");
     Expect(1, 43226, '\P{Is_Script_Extensions=saurashtra}', "");
     Expect(0, 43226, '\P{^Is_Script_Extensions=saurashtra}', "");
-    Expect(1, 43225, '\p{Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(0, 43225, '\p{^Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(0, 43225, '\P{Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(1, 43225, '\P{^Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(0, 43226, '\p{Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(1, 43226, '\p{^Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(1, 43226, '\P{Is_Script_Extensions=	-SAURASHTRA}', "");
-    Expect(0, 43226, '\P{^Is_Script_Extensions=	-SAURASHTRA}', "");
-    Error('\p{Is_Scx=_/a/SAUR}');
-    Error('\P{Is_Scx=_/a/SAUR}');
+    Expect(1, 43225, '\p{Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(0, 43225, '\p{^Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(0, 43225, '\P{Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(1, 43225, '\P{^Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(0, 43226, '\p{Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(1, 43226, '\p{^Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(1, 43226, '\P{Is_Script_Extensions=		SAURASHTRA}', "");
+    Expect(0, 43226, '\P{^Is_Script_Extensions=		SAURASHTRA}', "");
+    Error('\p{Is_Scx=	SAUR:=}');
+    Error('\P{Is_Scx=	SAUR:=}');
     Expect(1, 43225, '\p{Is_Scx=saur}', "");
     Expect(0, 43225, '\p{^Is_Scx=saur}', "");
     Expect(0, 43225, '\P{Is_Scx=saur}', "");
@@ -150999,16 +152463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43226, '\p{^Is_Scx=saur}', "");
     Expect(1, 43226, '\P{Is_Scx=saur}', "");
     Expect(0, 43226, '\P{^Is_Scx=saur}', "");
-    Expect(1, 43225, '\p{Is_Scx= -saur}', "");
-    Expect(0, 43225, '\p{^Is_Scx= -saur}', "");
-    Expect(0, 43225, '\P{Is_Scx= -saur}', "");
-    Expect(1, 43225, '\P{^Is_Scx= -saur}', "");
-    Expect(0, 43226, '\p{Is_Scx= -saur}', "");
-    Expect(1, 43226, '\p{^Is_Scx= -saur}', "");
-    Expect(1, 43226, '\P{Is_Scx= -saur}', "");
-    Expect(0, 43226, '\P{^Is_Scx= -saur}', "");
-    Error('\p{Script_Extensions=:= _SIGNWRITING}');
-    Error('\P{Script_Extensions=:= _SIGNWRITING}');
+    Expect(1, 43225, '\p{Is_Scx=	 Saur}', "");
+    Expect(0, 43225, '\p{^Is_Scx=	 Saur}', "");
+    Expect(0, 43225, '\P{Is_Scx=	 Saur}', "");
+    Expect(1, 43225, '\P{^Is_Scx=	 Saur}', "");
+    Expect(0, 43226, '\p{Is_Scx=	 Saur}', "");
+    Expect(1, 43226, '\p{^Is_Scx=	 Saur}', "");
+    Expect(1, 43226, '\P{Is_Scx=	 Saur}', "");
+    Expect(0, 43226, '\P{^Is_Scx=	 Saur}', "");
+    Error('\p{Script_Extensions=	-SignWriting/a/}');
+    Error('\P{Script_Extensions=	-SignWriting/a/}');
     Expect(1, 121519, '\p{Script_Extensions=:\ASignWriting\z:}', "");;
     Expect(0, 121520, '\p{Script_Extensions=:\ASignWriting\z:}', "");;
     Expect(1, 121519, '\p{Script_Extensions=signwriting}', "");
@@ -151021,38 +152485,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121520, '\P{^Script_Extensions=signwriting}', "");
     Expect(1, 121519, '\p{Script_Extensions=:\Asignwriting\z:}', "");;
     Expect(0, 121520, '\p{Script_Extensions=:\Asignwriting\z:}', "");;
-    Expect(1, 121519, '\p{Script_Extensions=_-signwriting}', "");
-    Expect(0, 121519, '\p{^Script_Extensions=_-signwriting}', "");
-    Expect(0, 121519, '\P{Script_Extensions=_-signwriting}', "");
-    Expect(1, 121519, '\P{^Script_Extensions=_-signwriting}', "");
-    Expect(0, 121520, '\p{Script_Extensions=_-signwriting}', "");
-    Expect(1, 121520, '\p{^Script_Extensions=_-signwriting}', "");
-    Expect(1, 121520, '\P{Script_Extensions=_-signwriting}', "");
-    Expect(0, 121520, '\P{^Script_Extensions=_-signwriting}', "");
-    Error('\p{Scx=/a/_ Sgnw}');
-    Error('\P{Scx=/a/_ Sgnw}');
+    Expect(1, 121519, '\p{Script_Extensions=	SIGNWRITING}', "");
+    Expect(0, 121519, '\p{^Script_Extensions=	SIGNWRITING}', "");
+    Expect(0, 121519, '\P{Script_Extensions=	SIGNWRITING}', "");
+    Expect(1, 121519, '\P{^Script_Extensions=	SIGNWRITING}', "");
+    Expect(0, 121520, '\p{Script_Extensions=	SIGNWRITING}', "");
+    Expect(1, 121520, '\p{^Script_Extensions=	SIGNWRITING}', "");
+    Expect(1, 121520, '\P{Script_Extensions=	SIGNWRITING}', "");
+    Expect(0, 121520, '\P{^Script_Extensions=	SIGNWRITING}', "");
+    Error('\p{Scx=:=Sgnw}');
+    Error('\P{Scx=:=Sgnw}');
     Expect(1, 121519, '\p{Scx=:\ASgnw\z:}', "");;
     Expect(0, 121520, '\p{Scx=:\ASgnw\z:}', "");;
-    Expect(1, 121519, '\p{Scx:   sgnw}', "");
-    Expect(0, 121519, '\p{^Scx:   sgnw}', "");
-    Expect(0, 121519, '\P{Scx:   sgnw}', "");
-    Expect(1, 121519, '\P{^Scx:   sgnw}', "");
-    Expect(0, 121520, '\p{Scx:   sgnw}', "");
-    Expect(1, 121520, '\p{^Scx:   sgnw}', "");
-    Expect(1, 121520, '\P{Scx:   sgnw}', "");
-    Expect(0, 121520, '\P{^Scx:   sgnw}', "");
+    Expect(1, 121519, '\p{Scx=sgnw}', "");
+    Expect(0, 121519, '\p{^Scx=sgnw}', "");
+    Expect(0, 121519, '\P{Scx=sgnw}', "");
+    Expect(1, 121519, '\P{^Scx=sgnw}', "");
+    Expect(0, 121520, '\p{Scx=sgnw}', "");
+    Expect(1, 121520, '\p{^Scx=sgnw}', "");
+    Expect(1, 121520, '\P{Scx=sgnw}', "");
+    Expect(0, 121520, '\P{^Scx=sgnw}', "");
     Expect(1, 121519, '\p{Scx=:\Asgnw\z:}', "");;
     Expect(0, 121520, '\p{Scx=:\Asgnw\z:}', "");;
-    Expect(1, 121519, '\p{Scx: _ sgnw}', "");
-    Expect(0, 121519, '\p{^Scx: _ sgnw}', "");
-    Expect(0, 121519, '\P{Scx: _ sgnw}', "");
-    Expect(1, 121519, '\P{^Scx: _ sgnw}', "");
-    Expect(0, 121520, '\p{Scx: _ sgnw}', "");
-    Expect(1, 121520, '\p{^Scx: _ sgnw}', "");
-    Expect(1, 121520, '\P{Scx: _ sgnw}', "");
-    Expect(0, 121520, '\P{^Scx: _ sgnw}', "");
-    Error('\p{Is_Script_Extensions=-	SignWriting:=}');
-    Error('\P{Is_Script_Extensions=-	SignWriting:=}');
+    Expect(1, 121519, '\p{Scx=_SGNW}', "");
+    Expect(0, 121519, '\p{^Scx=_SGNW}', "");
+    Expect(0, 121519, '\P{Scx=_SGNW}', "");
+    Expect(1, 121519, '\P{^Scx=_SGNW}', "");
+    Expect(0, 121520, '\p{Scx=_SGNW}', "");
+    Expect(1, 121520, '\p{^Scx=_SGNW}', "");
+    Expect(1, 121520, '\P{Scx=_SGNW}', "");
+    Expect(0, 121520, '\P{^Scx=_SGNW}', "");
+    Error('\p{Is_Script_Extensions= SignWriting/a/}');
+    Error('\P{Is_Script_Extensions= SignWriting/a/}');
     Expect(1, 121519, '\p{Is_Script_Extensions=signwriting}', "");
     Expect(0, 121519, '\p{^Is_Script_Extensions=signwriting}', "");
     Expect(0, 121519, '\P{Is_Script_Extensions=signwriting}', "");
@@ -151061,16 +152525,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^Is_Script_Extensions=signwriting}', "");
     Expect(1, 121520, '\P{Is_Script_Extensions=signwriting}', "");
     Expect(0, 121520, '\P{^Is_Script_Extensions=signwriting}', "");
-    Expect(1, 121519, '\p{Is_Script_Extensions=--signwriting}', "");
-    Expect(0, 121519, '\p{^Is_Script_Extensions=--signwriting}', "");
-    Expect(0, 121519, '\P{Is_Script_Extensions=--signwriting}', "");
-    Expect(1, 121519, '\P{^Is_Script_Extensions=--signwriting}', "");
-    Expect(0, 121520, '\p{Is_Script_Extensions=--signwriting}', "");
-    Expect(1, 121520, '\p{^Is_Script_Extensions=--signwriting}', "");
-    Expect(1, 121520, '\P{Is_Script_Extensions=--signwriting}', "");
-    Expect(0, 121520, '\P{^Is_Script_Extensions=--signwriting}', "");
-    Error('\p{Is_Scx=:=__SGNW}');
-    Error('\P{Is_Scx=:=__SGNW}');
+    Expect(1, 121519, '\p{Is_Script_Extensions= 	signwriting}', "");
+    Expect(0, 121519, '\p{^Is_Script_Extensions= 	signwriting}', "");
+    Expect(0, 121519, '\P{Is_Script_Extensions= 	signwriting}', "");
+    Expect(1, 121519, '\P{^Is_Script_Extensions= 	signwriting}', "");
+    Expect(0, 121520, '\p{Is_Script_Extensions= 	signwriting}', "");
+    Expect(1, 121520, '\p{^Is_Script_Extensions= 	signwriting}', "");
+    Expect(1, 121520, '\P{Is_Script_Extensions= 	signwriting}', "");
+    Expect(0, 121520, '\P{^Is_Script_Extensions= 	signwriting}', "");
+    Error('\p{Is_Scx=/a/Sgnw}');
+    Error('\P{Is_Scx=/a/Sgnw}');
     Expect(1, 121519, '\p{Is_Scx=sgnw}', "");
     Expect(0, 121519, '\p{^Is_Scx=sgnw}', "");
     Expect(0, 121519, '\P{Is_Scx=sgnw}', "");
@@ -151079,16 +152543,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121520, '\p{^Is_Scx=sgnw}', "");
     Expect(1, 121520, '\P{Is_Scx=sgnw}', "");
     Expect(0, 121520, '\P{^Is_Scx=sgnw}', "");
-    Expect(1, 121519, '\p{Is_Scx=_	Sgnw}', "");
-    Expect(0, 121519, '\p{^Is_Scx=_	Sgnw}', "");
-    Expect(0, 121519, '\P{Is_Scx=_	Sgnw}', "");
-    Expect(1, 121519, '\P{^Is_Scx=_	Sgnw}', "");
-    Expect(0, 121520, '\p{Is_Scx=_	Sgnw}', "");
-    Expect(1, 121520, '\p{^Is_Scx=_	Sgnw}', "");
-    Expect(1, 121520, '\P{Is_Scx=_	Sgnw}', "");
-    Expect(0, 121520, '\P{^Is_Scx=_	Sgnw}', "");
-    Error('\p{Script_Extensions=:=-	shavian}');
-    Error('\P{Script_Extensions=:=-	shavian}');
+    Expect(1, 121519, '\p{Is_Scx=--SGNW}', "");
+    Expect(0, 121519, '\p{^Is_Scx=--SGNW}', "");
+    Expect(0, 121519, '\P{Is_Scx=--SGNW}', "");
+    Expect(1, 121519, '\P{^Is_Scx=--SGNW}', "");
+    Expect(0, 121520, '\p{Is_Scx=--SGNW}', "");
+    Expect(1, 121520, '\p{^Is_Scx=--SGNW}', "");
+    Expect(1, 121520, '\P{Is_Scx=--SGNW}', "");
+    Expect(0, 121520, '\P{^Is_Scx=--SGNW}', "");
+    Error('\p{Script_Extensions=	/a/shavian}');
+    Error('\P{Script_Extensions=	/a/shavian}');
     Expect(1, 66687, '\p{Script_Extensions=:\AShavian\z:}', "");;
     Expect(0, 66688, '\p{Script_Extensions=:\AShavian\z:}', "");;
     Expect(1, 66687, '\p{Script_Extensions=shavian}', "");
@@ -151101,38 +152565,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66688, '\P{^Script_Extensions=shavian}', "");
     Expect(1, 66687, '\p{Script_Extensions=:\Ashavian\z:}', "");;
     Expect(0, 66688, '\p{Script_Extensions=:\Ashavian\z:}', "");;
-    Expect(1, 66687, '\p{Script_Extensions=Shavian}', "");
-    Expect(0, 66687, '\p{^Script_Extensions=Shavian}', "");
-    Expect(0, 66687, '\P{Script_Extensions=Shavian}', "");
-    Expect(1, 66687, '\P{^Script_Extensions=Shavian}', "");
-    Expect(0, 66688, '\p{Script_Extensions=Shavian}', "");
-    Expect(1, 66688, '\p{^Script_Extensions=Shavian}', "");
-    Expect(1, 66688, '\P{Script_Extensions=Shavian}', "");
-    Expect(0, 66688, '\P{^Script_Extensions=Shavian}', "");
-    Error('\p{Scx=:=_Shaw}');
-    Error('\P{Scx=:=_Shaw}');
+    Expect(1, 66687, '\p{Script_Extensions=  shavian}', "");
+    Expect(0, 66687, '\p{^Script_Extensions=  shavian}', "");
+    Expect(0, 66687, '\P{Script_Extensions=  shavian}', "");
+    Expect(1, 66687, '\P{^Script_Extensions=  shavian}', "");
+    Expect(0, 66688, '\p{Script_Extensions=  shavian}', "");
+    Expect(1, 66688, '\p{^Script_Extensions=  shavian}', "");
+    Expect(1, 66688, '\P{Script_Extensions=  shavian}', "");
+    Expect(0, 66688, '\P{^Script_Extensions=  shavian}', "");
+    Error('\p{Scx:   	SHAW:=}');
+    Error('\P{Scx:   	SHAW:=}');
     Expect(1, 66687, '\p{Scx=:\AShaw\z:}', "");;
     Expect(0, 66688, '\p{Scx=:\AShaw\z:}', "");;
-    Expect(1, 66687, '\p{Scx=shaw}', "");
-    Expect(0, 66687, '\p{^Scx=shaw}', "");
-    Expect(0, 66687, '\P{Scx=shaw}', "");
-    Expect(1, 66687, '\P{^Scx=shaw}', "");
-    Expect(0, 66688, '\p{Scx=shaw}', "");
-    Expect(1, 66688, '\p{^Scx=shaw}', "");
-    Expect(1, 66688, '\P{Scx=shaw}', "");
-    Expect(0, 66688, '\P{^Scx=shaw}', "");
+    Expect(1, 66687, '\p{Scx:	shaw}', "");
+    Expect(0, 66687, '\p{^Scx:	shaw}', "");
+    Expect(0, 66687, '\P{Scx:	shaw}', "");
+    Expect(1, 66687, '\P{^Scx:	shaw}', "");
+    Expect(0, 66688, '\p{Scx:	shaw}', "");
+    Expect(1, 66688, '\p{^Scx:	shaw}', "");
+    Expect(1, 66688, '\P{Scx:	shaw}', "");
+    Expect(0, 66688, '\P{^Scx:	shaw}', "");
     Expect(1, 66687, '\p{Scx=:\Ashaw\z:}', "");;
     Expect(0, 66688, '\p{Scx=:\Ashaw\z:}', "");;
-    Expect(1, 66687, '\p{Scx= 	shaw}', "");
-    Expect(0, 66687, '\p{^Scx= 	shaw}', "");
-    Expect(0, 66687, '\P{Scx= 	shaw}', "");
-    Expect(1, 66687, '\P{^Scx= 	shaw}', "");
-    Expect(0, 66688, '\p{Scx= 	shaw}', "");
-    Expect(1, 66688, '\p{^Scx= 	shaw}', "");
-    Expect(1, 66688, '\P{Scx= 	shaw}', "");
-    Expect(0, 66688, '\P{^Scx= 	shaw}', "");
-    Error('\p{Is_Script_Extensions=--Shavian/a/}');
-    Error('\P{Is_Script_Extensions=--Shavian/a/}');
+    Expect(1, 66687, '\p{Scx:    SHAW}', "");
+    Expect(0, 66687, '\p{^Scx:    SHAW}', "");
+    Expect(0, 66687, '\P{Scx:    SHAW}', "");
+    Expect(1, 66687, '\P{^Scx:    SHAW}', "");
+    Expect(0, 66688, '\p{Scx:    SHAW}', "");
+    Expect(1, 66688, '\p{^Scx:    SHAW}', "");
+    Expect(1, 66688, '\P{Scx:    SHAW}', "");
+    Expect(0, 66688, '\P{^Scx:    SHAW}', "");
+    Error('\p{Is_Script_Extensions=/a/	_SHAVIAN}');
+    Error('\P{Is_Script_Extensions=/a/	_SHAVIAN}');
     Expect(1, 66687, '\p{Is_Script_Extensions=shavian}', "");
     Expect(0, 66687, '\p{^Is_Script_Extensions=shavian}', "");
     Expect(0, 66687, '\P{Is_Script_Extensions=shavian}', "");
@@ -151141,34 +152605,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66688, '\p{^Is_Script_Extensions=shavian}', "");
     Expect(1, 66688, '\P{Is_Script_Extensions=shavian}', "");
     Expect(0, 66688, '\P{^Is_Script_Extensions=shavian}', "");
-    Expect(1, 66687, '\p{Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(0, 66687, '\p{^Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(0, 66687, '\P{Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(1, 66687, '\P{^Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(0, 66688, '\p{Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(1, 66688, '\p{^Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(1, 66688, '\P{Is_Script_Extensions= -SHAVIAN}', "");
-    Expect(0, 66688, '\P{^Is_Script_Extensions= -SHAVIAN}', "");
-    Error('\p{Is_Scx=	SHAW:=}');
-    Error('\P{Is_Scx=	SHAW:=}');
-    Expect(1, 66687, '\p{Is_Scx=shaw}', "");
-    Expect(0, 66687, '\p{^Is_Scx=shaw}', "");
-    Expect(0, 66687, '\P{Is_Scx=shaw}', "");
-    Expect(1, 66687, '\P{^Is_Scx=shaw}', "");
-    Expect(0, 66688, '\p{Is_Scx=shaw}', "");
-    Expect(1, 66688, '\p{^Is_Scx=shaw}', "");
-    Expect(1, 66688, '\P{Is_Scx=shaw}', "");
-    Expect(0, 66688, '\P{^Is_Scx=shaw}', "");
-    Expect(1, 66687, '\p{Is_Scx=		SHAW}', "");
-    Expect(0, 66687, '\p{^Is_Scx=		SHAW}', "");
-    Expect(0, 66687, '\P{Is_Scx=		SHAW}', "");
-    Expect(1, 66687, '\P{^Is_Scx=		SHAW}', "");
-    Expect(0, 66688, '\p{Is_Scx=		SHAW}', "");
-    Expect(1, 66688, '\p{^Is_Scx=		SHAW}', "");
-    Expect(1, 66688, '\P{Is_Scx=		SHAW}', "");
-    Expect(0, 66688, '\P{^Is_Scx=		SHAW}', "");
-    Error('\p{Script_Extensions=/a/Sharada}');
-    Error('\P{Script_Extensions=/a/Sharada}');
+    Expect(1, 66687, '\p{Is_Script_Extensions:   _Shavian}', "");
+    Expect(0, 66687, '\p{^Is_Script_Extensions:   _Shavian}', "");
+    Expect(0, 66687, '\P{Is_Script_Extensions:   _Shavian}', "");
+    Expect(1, 66687, '\P{^Is_Script_Extensions:   _Shavian}', "");
+    Expect(0, 66688, '\p{Is_Script_Extensions:   _Shavian}', "");
+    Expect(1, 66688, '\p{^Is_Script_Extensions:   _Shavian}', "");
+    Expect(1, 66688, '\P{Is_Script_Extensions:   _Shavian}', "");
+    Expect(0, 66688, '\P{^Is_Script_Extensions:   _Shavian}', "");
+    Error('\p{Is_Scx:    shaw/a/}');
+    Error('\P{Is_Scx:    shaw/a/}');
+    Expect(1, 66687, '\p{Is_Scx:   shaw}', "");
+    Expect(0, 66687, '\p{^Is_Scx:   shaw}', "");
+    Expect(0, 66687, '\P{Is_Scx:   shaw}', "");
+    Expect(1, 66687, '\P{^Is_Scx:   shaw}', "");
+    Expect(0, 66688, '\p{Is_Scx:   shaw}', "");
+    Expect(1, 66688, '\p{^Is_Scx:   shaw}', "");
+    Expect(1, 66688, '\P{Is_Scx:   shaw}', "");
+    Expect(0, 66688, '\P{^Is_Scx:   shaw}', "");
+    Expect(1, 66687, '\p{Is_Scx=-_SHAW}', "");
+    Expect(0, 66687, '\p{^Is_Scx=-_SHAW}', "");
+    Expect(0, 66687, '\P{Is_Scx=-_SHAW}', "");
+    Expect(1, 66687, '\P{^Is_Scx=-_SHAW}', "");
+    Expect(0, 66688, '\p{Is_Scx=-_SHAW}', "");
+    Expect(1, 66688, '\p{^Is_Scx=-_SHAW}', "");
+    Expect(1, 66688, '\P{Is_Scx=-_SHAW}', "");
+    Expect(0, 66688, '\P{^Is_Scx=-_SHAW}', "");
+    Error('\p{Script_Extensions= Sharada/a/}');
+    Error('\P{Script_Extensions= Sharada/a/}');
     Expect(1, 70111, '\p{Script_Extensions=:\ASharada\z:}', "");;
     Expect(0, 70112, '\p{Script_Extensions=:\ASharada\z:}', "");;
     Expect(1, 70111, '\p{Script_Extensions=sharada}', "");
@@ -151181,16 +152645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70112, '\P{^Script_Extensions=sharada}', "");
     Expect(1, 70111, '\p{Script_Extensions=:\Asharada\z:}', "");;
     Expect(0, 70112, '\p{Script_Extensions=:\Asharada\z:}', "");;
-    Expect(1, 70111, '\p{Script_Extensions=_	sharada}', "");
-    Expect(0, 70111, '\p{^Script_Extensions=_	sharada}', "");
-    Expect(0, 70111, '\P{Script_Extensions=_	sharada}', "");
-    Expect(1, 70111, '\P{^Script_Extensions=_	sharada}', "");
-    Expect(0, 70112, '\p{Script_Extensions=_	sharada}', "");
-    Expect(1, 70112, '\p{^Script_Extensions=_	sharada}', "");
-    Expect(1, 70112, '\P{Script_Extensions=_	sharada}', "");
-    Expect(0, 70112, '\P{^Script_Extensions=_	sharada}', "");
-    Error('\p{Scx= :=shrd}');
-    Error('\P{Scx= :=shrd}');
+    Expect(1, 70111, '\p{Script_Extensions=_Sharada}', "");
+    Expect(0, 70111, '\p{^Script_Extensions=_Sharada}', "");
+    Expect(0, 70111, '\P{Script_Extensions=_Sharada}', "");
+    Expect(1, 70111, '\P{^Script_Extensions=_Sharada}', "");
+    Expect(0, 70112, '\p{Script_Extensions=_Sharada}', "");
+    Expect(1, 70112, '\p{^Script_Extensions=_Sharada}', "");
+    Expect(1, 70112, '\P{Script_Extensions=_Sharada}', "");
+    Expect(0, 70112, '\P{^Script_Extensions=_Sharada}', "");
+    Error('\p{Scx=:=_ SHRD}');
+    Error('\P{Scx=:=_ SHRD}');
     Expect(1, 70111, '\p{Scx=:\AShrd\z:}', "");;
     Expect(0, 70112, '\p{Scx=:\AShrd\z:}', "");;
     Expect(1, 70111, '\p{Scx=shrd}', "");
@@ -151203,34 +152667,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70112, '\P{^Scx=shrd}', "");
     Expect(1, 70111, '\p{Scx=:\Ashrd\z:}', "");;
     Expect(0, 70112, '\p{Scx=:\Ashrd\z:}', "");;
-    Expect(1, 70111, '\p{Scx=_ Shrd}', "");
-    Expect(0, 70111, '\p{^Scx=_ Shrd}', "");
-    Expect(0, 70111, '\P{Scx=_ Shrd}', "");
-    Expect(1, 70111, '\P{^Scx=_ Shrd}', "");
-    Expect(0, 70112, '\p{Scx=_ Shrd}', "");
-    Expect(1, 70112, '\p{^Scx=_ Shrd}', "");
-    Expect(1, 70112, '\P{Scx=_ Shrd}', "");
-    Expect(0, 70112, '\P{^Scx=_ Shrd}', "");
-    Error('\p{Is_Script_Extensions=-:=sharada}');
-    Error('\P{Is_Script_Extensions=-:=sharada}');
-    Expect(1, 70111, '\p{Is_Script_Extensions=sharada}', "");
-    Expect(0, 70111, '\p{^Is_Script_Extensions=sharada}', "");
-    Expect(0, 70111, '\P{Is_Script_Extensions=sharada}', "");
-    Expect(1, 70111, '\P{^Is_Script_Extensions=sharada}', "");
-    Expect(0, 70112, '\p{Is_Script_Extensions=sharada}', "");
-    Expect(1, 70112, '\p{^Is_Script_Extensions=sharada}', "");
-    Expect(1, 70112, '\P{Is_Script_Extensions=sharada}', "");
-    Expect(0, 70112, '\P{^Is_Script_Extensions=sharada}', "");
-    Expect(1, 70111, '\p{Is_Script_Extensions: -SHARADA}', "");
-    Expect(0, 70111, '\p{^Is_Script_Extensions: -SHARADA}', "");
-    Expect(0, 70111, '\P{Is_Script_Extensions: -SHARADA}', "");
-    Expect(1, 70111, '\P{^Is_Script_Extensions: -SHARADA}', "");
-    Expect(0, 70112, '\p{Is_Script_Extensions: -SHARADA}', "");
-    Expect(1, 70112, '\p{^Is_Script_Extensions: -SHARADA}', "");
-    Expect(1, 70112, '\P{Is_Script_Extensions: -SHARADA}', "");
-    Expect(0, 70112, '\P{^Is_Script_Extensions: -SHARADA}', "");
-    Error('\p{Is_Scx=:=-Shrd}');
-    Error('\P{Is_Scx=:=-Shrd}');
+    Expect(1, 70111, '\p{Scx=-SHRD}', "");
+    Expect(0, 70111, '\p{^Scx=-SHRD}', "");
+    Expect(0, 70111, '\P{Scx=-SHRD}', "");
+    Expect(1, 70111, '\P{^Scx=-SHRD}', "");
+    Expect(0, 70112, '\p{Scx=-SHRD}', "");
+    Expect(1, 70112, '\p{^Scx=-SHRD}', "");
+    Expect(1, 70112, '\P{Scx=-SHRD}', "");
+    Expect(0, 70112, '\P{^Scx=-SHRD}', "");
+    Error('\p{Is_Script_Extensions= 	SHARADA/a/}');
+    Error('\P{Is_Script_Extensions= 	SHARADA/a/}');
+    Expect(1, 70111, '\p{Is_Script_Extensions: sharada}', "");
+    Expect(0, 70111, '\p{^Is_Script_Extensions: sharada}', "");
+    Expect(0, 70111, '\P{Is_Script_Extensions: sharada}', "");
+    Expect(1, 70111, '\P{^Is_Script_Extensions: sharada}', "");
+    Expect(0, 70112, '\p{Is_Script_Extensions: sharada}', "");
+    Expect(1, 70112, '\p{^Is_Script_Extensions: sharada}', "");
+    Expect(1, 70112, '\P{Is_Script_Extensions: sharada}', "");
+    Expect(0, 70112, '\P{^Is_Script_Extensions: sharada}', "");
+    Expect(1, 70111, '\p{Is_Script_Extensions=_	sharada}', "");
+    Expect(0, 70111, '\p{^Is_Script_Extensions=_	sharada}', "");
+    Expect(0, 70111, '\P{Is_Script_Extensions=_	sharada}', "");
+    Expect(1, 70111, '\P{^Is_Script_Extensions=_	sharada}', "");
+    Expect(0, 70112, '\p{Is_Script_Extensions=_	sharada}', "");
+    Expect(1, 70112, '\p{^Is_Script_Extensions=_	sharada}', "");
+    Expect(1, 70112, '\P{Is_Script_Extensions=_	sharada}', "");
+    Expect(0, 70112, '\P{^Is_Script_Extensions=_	sharada}', "");
+    Error('\p{Is_Scx=	/a/Shrd}');
+    Error('\P{Is_Scx=	/a/Shrd}');
     Expect(1, 70111, '\p{Is_Scx=shrd}', "");
     Expect(0, 70111, '\p{^Is_Scx=shrd}', "");
     Expect(0, 70111, '\P{Is_Scx=shrd}', "");
@@ -151239,16 +152703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70112, '\p{^Is_Scx=shrd}', "");
     Expect(1, 70112, '\P{Is_Scx=shrd}', "");
     Expect(0, 70112, '\P{^Is_Scx=shrd}', "");
-    Expect(1, 70111, '\p{Is_Scx=	 SHRD}', "");
-    Expect(0, 70111, '\p{^Is_Scx=	 SHRD}', "");
-    Expect(0, 70111, '\P{Is_Scx=	 SHRD}', "");
-    Expect(1, 70111, '\P{^Is_Scx=	 SHRD}', "");
-    Expect(0, 70112, '\p{Is_Scx=	 SHRD}', "");
-    Expect(1, 70112, '\p{^Is_Scx=	 SHRD}', "");
-    Expect(1, 70112, '\P{Is_Scx=	 SHRD}', "");
-    Expect(0, 70112, '\P{^Is_Scx=	 SHRD}', "");
-    Error('\p{Script_Extensions=Siddham/a/}');
-    Error('\P{Script_Extensions=Siddham/a/}');
+    Expect(1, 70111, '\p{Is_Scx=_ Shrd}', "");
+    Expect(0, 70111, '\p{^Is_Scx=_ Shrd}', "");
+    Expect(0, 70111, '\P{Is_Scx=_ Shrd}', "");
+    Expect(1, 70111, '\P{^Is_Scx=_ Shrd}', "");
+    Expect(0, 70112, '\p{Is_Scx=_ Shrd}', "");
+    Expect(1, 70112, '\p{^Is_Scx=_ Shrd}', "");
+    Expect(1, 70112, '\P{Is_Scx=_ Shrd}', "");
+    Expect(0, 70112, '\P{^Is_Scx=_ Shrd}', "");
+    Error('\p{Script_Extensions=	:=siddham}');
+    Error('\P{Script_Extensions=	:=siddham}');
     Expect(1, 71133, '\p{Script_Extensions=:\ASiddham\z:}', "");;
     Expect(0, 71134, '\p{Script_Extensions=:\ASiddham\z:}', "");;
     Expect(1, 71133, '\p{Script_Extensions=siddham}', "");
@@ -151261,38 +152725,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71134, '\P{^Script_Extensions=siddham}', "");
     Expect(1, 71133, '\p{Script_Extensions=:\Asiddham\z:}', "");;
     Expect(0, 71134, '\p{Script_Extensions=:\Asiddham\z:}', "");;
-    Expect(1, 71133, '\p{Script_Extensions= _siddham}', "");
-    Expect(0, 71133, '\p{^Script_Extensions= _siddham}', "");
-    Expect(0, 71133, '\P{Script_Extensions= _siddham}', "");
-    Expect(1, 71133, '\P{^Script_Extensions= _siddham}', "");
-    Expect(0, 71134, '\p{Script_Extensions= _siddham}', "");
-    Expect(1, 71134, '\p{^Script_Extensions= _siddham}', "");
-    Expect(1, 71134, '\P{Script_Extensions= _siddham}', "");
-    Expect(0, 71134, '\P{^Script_Extensions= _siddham}', "");
-    Error('\p{Scx= _sidd/a/}');
-    Error('\P{Scx= _sidd/a/}');
+    Expect(1, 71133, '\p{Script_Extensions=	 SIDDHAM}', "");
+    Expect(0, 71133, '\p{^Script_Extensions=	 SIDDHAM}', "");
+    Expect(0, 71133, '\P{Script_Extensions=	 SIDDHAM}', "");
+    Expect(1, 71133, '\P{^Script_Extensions=	 SIDDHAM}', "");
+    Expect(0, 71134, '\p{Script_Extensions=	 SIDDHAM}', "");
+    Expect(1, 71134, '\p{^Script_Extensions=	 SIDDHAM}', "");
+    Expect(1, 71134, '\P{Script_Extensions=	 SIDDHAM}', "");
+    Expect(0, 71134, '\P{^Script_Extensions=	 SIDDHAM}', "");
+    Error('\p{Scx=	-Sidd/a/}');
+    Error('\P{Scx=	-Sidd/a/}');
     Expect(1, 71133, '\p{Scx=:\ASidd\z:}', "");;
     Expect(0, 71134, '\p{Scx=:\ASidd\z:}', "");;
-    Expect(1, 71133, '\p{Scx=sidd}', "");
-    Expect(0, 71133, '\p{^Scx=sidd}', "");
-    Expect(0, 71133, '\P{Scx=sidd}', "");
-    Expect(1, 71133, '\P{^Scx=sidd}', "");
-    Expect(0, 71134, '\p{Scx=sidd}', "");
-    Expect(1, 71134, '\p{^Scx=sidd}', "");
-    Expect(1, 71134, '\P{Scx=sidd}', "");
-    Expect(0, 71134, '\P{^Scx=sidd}', "");
+    Expect(1, 71133, '\p{Scx:	sidd}', "");
+    Expect(0, 71133, '\p{^Scx:	sidd}', "");
+    Expect(0, 71133, '\P{Scx:	sidd}', "");
+    Expect(1, 71133, '\P{^Scx:	sidd}', "");
+    Expect(0, 71134, '\p{Scx:	sidd}', "");
+    Expect(1, 71134, '\p{^Scx:	sidd}', "");
+    Expect(1, 71134, '\P{Scx:	sidd}', "");
+    Expect(0, 71134, '\P{^Scx:	sidd}', "");
     Expect(1, 71133, '\p{Scx=:\Asidd\z:}', "");;
     Expect(0, 71134, '\p{Scx=:\Asidd\z:}', "");;
-    Expect(1, 71133, '\p{Scx=SIDD}', "");
-    Expect(0, 71133, '\p{^Scx=SIDD}', "");
-    Expect(0, 71133, '\P{Scx=SIDD}', "");
-    Expect(1, 71133, '\P{^Scx=SIDD}', "");
-    Expect(0, 71134, '\p{Scx=SIDD}', "");
-    Expect(1, 71134, '\p{^Scx=SIDD}', "");
-    Expect(1, 71134, '\P{Scx=SIDD}', "");
-    Expect(0, 71134, '\P{^Scx=SIDD}', "");
-    Error('\p{Is_Script_Extensions=-/a/Siddham}');
-    Error('\P{Is_Script_Extensions=-/a/Siddham}');
+    Expect(1, 71133, '\p{Scx=_-SIDD}', "");
+    Expect(0, 71133, '\p{^Scx=_-SIDD}', "");
+    Expect(0, 71133, '\P{Scx=_-SIDD}', "");
+    Expect(1, 71133, '\P{^Scx=_-SIDD}', "");
+    Expect(0, 71134, '\p{Scx=_-SIDD}', "");
+    Expect(1, 71134, '\p{^Scx=_-SIDD}', "");
+    Expect(1, 71134, '\P{Scx=_-SIDD}', "");
+    Expect(0, 71134, '\P{^Scx=_-SIDD}', "");
+    Error('\p{Is_Script_Extensions=/a/  siddham}');
+    Error('\P{Is_Script_Extensions=/a/  siddham}');
     Expect(1, 71133, '\p{Is_Script_Extensions=siddham}', "");
     Expect(0, 71133, '\p{^Is_Script_Extensions=siddham}', "");
     Expect(0, 71133, '\P{Is_Script_Extensions=siddham}', "");
@@ -151301,34 +152765,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71134, '\p{^Is_Script_Extensions=siddham}', "");
     Expect(1, 71134, '\P{Is_Script_Extensions=siddham}', "");
     Expect(0, 71134, '\P{^Is_Script_Extensions=siddham}', "");
-    Expect(1, 71133, '\p{Is_Script_Extensions=	 Siddham}', "");
-    Expect(0, 71133, '\p{^Is_Script_Extensions=	 Siddham}', "");
-    Expect(0, 71133, '\P{Is_Script_Extensions=	 Siddham}', "");
-    Expect(1, 71133, '\P{^Is_Script_Extensions=	 Siddham}', "");
-    Expect(0, 71134, '\p{Is_Script_Extensions=	 Siddham}', "");
-    Expect(1, 71134, '\p{^Is_Script_Extensions=	 Siddham}', "");
-    Expect(1, 71134, '\P{Is_Script_Extensions=	 Siddham}', "");
-    Expect(0, 71134, '\P{^Is_Script_Extensions=	 Siddham}', "");
-    Error('\p{Is_Scx= /a/sidd}');
-    Error('\P{Is_Scx= /a/sidd}');
-    Expect(1, 71133, '\p{Is_Scx:sidd}', "");
-    Expect(0, 71133, '\p{^Is_Scx:sidd}', "");
-    Expect(0, 71133, '\P{Is_Scx:sidd}', "");
-    Expect(1, 71133, '\P{^Is_Scx:sidd}', "");
-    Expect(0, 71134, '\p{Is_Scx:sidd}', "");
-    Expect(1, 71134, '\p{^Is_Scx:sidd}', "");
-    Expect(1, 71134, '\P{Is_Scx:sidd}', "");
-    Expect(0, 71134, '\P{^Is_Scx:sidd}', "");
-    Expect(1, 71133, '\p{Is_Scx=-sidd}', "");
-    Expect(0, 71133, '\p{^Is_Scx=-sidd}', "");
-    Expect(0, 71133, '\P{Is_Scx=-sidd}', "");
-    Expect(1, 71133, '\P{^Is_Scx=-sidd}', "");
-    Expect(0, 71134, '\p{Is_Scx=-sidd}', "");
-    Expect(1, 71134, '\p{^Is_Scx=-sidd}', "");
-    Expect(1, 71134, '\P{Is_Scx=-sidd}', "");
-    Expect(0, 71134, '\P{^Is_Scx=-sidd}', "");
-    Error('\p{Script_Extensions=_:=khudawadi}');
-    Error('\P{Script_Extensions=_:=khudawadi}');
+    Expect(1, 71133, '\p{Is_Script_Extensions= siddham}', "");
+    Expect(0, 71133, '\p{^Is_Script_Extensions= siddham}', "");
+    Expect(0, 71133, '\P{Is_Script_Extensions= siddham}', "");
+    Expect(1, 71133, '\P{^Is_Script_Extensions= siddham}', "");
+    Expect(0, 71134, '\p{Is_Script_Extensions= siddham}', "");
+    Expect(1, 71134, '\p{^Is_Script_Extensions= siddham}', "");
+    Expect(1, 71134, '\P{Is_Script_Extensions= siddham}', "");
+    Expect(0, 71134, '\P{^Is_Script_Extensions= siddham}', "");
+    Error('\p{Is_Scx=/a/ _Sidd}');
+    Error('\P{Is_Scx=/a/ _Sidd}');
+    Expect(1, 71133, '\p{Is_Scx=sidd}', "");
+    Expect(0, 71133, '\p{^Is_Scx=sidd}', "");
+    Expect(0, 71133, '\P{Is_Scx=sidd}', "");
+    Expect(1, 71133, '\P{^Is_Scx=sidd}', "");
+    Expect(0, 71134, '\p{Is_Scx=sidd}', "");
+    Expect(1, 71134, '\p{^Is_Scx=sidd}', "");
+    Expect(1, 71134, '\P{Is_Scx=sidd}', "");
+    Expect(0, 71134, '\P{^Is_Scx=sidd}', "");
+    Expect(1, 71133, '\p{Is_Scx=	-Sidd}', "");
+    Expect(0, 71133, '\p{^Is_Scx=	-Sidd}', "");
+    Expect(0, 71133, '\P{Is_Scx=	-Sidd}', "");
+    Expect(1, 71133, '\P{^Is_Scx=	-Sidd}', "");
+    Expect(0, 71134, '\p{Is_Scx=	-Sidd}', "");
+    Expect(1, 71134, '\p{^Is_Scx=	-Sidd}', "");
+    Expect(1, 71134, '\P{Is_Scx=	-Sidd}', "");
+    Expect(0, 71134, '\P{^Is_Scx=	-Sidd}', "");
+    Error('\p{Script_Extensions=_-khudawadi/a/}');
+    Error('\P{Script_Extensions=_-khudawadi/a/}');
     Expect(1, 70393, '\p{Script_Extensions=:\AKhudawadi\z:}', "");;
     Expect(0, 70394, '\p{Script_Extensions=:\AKhudawadi\z:}', "");;
     Expect(1, 70393, '\p{Script_Extensions=khudawadi}', "");
@@ -151341,16 +152805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70394, '\P{^Script_Extensions=khudawadi}', "");
     Expect(1, 70393, '\p{Script_Extensions=:\Akhudawadi\z:}', "");;
     Expect(0, 70394, '\p{Script_Extensions=:\Akhudawadi\z:}', "");;
-    Expect(1, 70393, '\p{Script_Extensions=__khudawadi}', "");
-    Expect(0, 70393, '\p{^Script_Extensions=__khudawadi}', "");
-    Expect(0, 70393, '\P{Script_Extensions=__khudawadi}', "");
-    Expect(1, 70393, '\P{^Script_Extensions=__khudawadi}', "");
-    Expect(0, 70394, '\p{Script_Extensions=__khudawadi}', "");
-    Expect(1, 70394, '\p{^Script_Extensions=__khudawadi}', "");
-    Expect(1, 70394, '\P{Script_Extensions=__khudawadi}', "");
-    Expect(0, 70394, '\P{^Script_Extensions=__khudawadi}', "");
-    Error('\p{Scx=:=Sind}');
-    Error('\P{Scx=:=Sind}');
+    Expect(1, 70393, '\p{Script_Extensions=	_Khudawadi}', "");
+    Expect(0, 70393, '\p{^Script_Extensions=	_Khudawadi}', "");
+    Expect(0, 70393, '\P{Script_Extensions=	_Khudawadi}', "");
+    Expect(1, 70393, '\P{^Script_Extensions=	_Khudawadi}', "");
+    Expect(0, 70394, '\p{Script_Extensions=	_Khudawadi}', "");
+    Expect(1, 70394, '\p{^Script_Extensions=	_Khudawadi}', "");
+    Expect(1, 70394, '\P{Script_Extensions=	_Khudawadi}', "");
+    Expect(0, 70394, '\P{^Script_Extensions=	_Khudawadi}', "");
+    Error('\p{Scx: -/a/sind}');
+    Error('\P{Scx: -/a/sind}');
     Expect(1, 70393, '\p{Scx=:\ASind\z:}', "");;
     Expect(0, 70394, '\p{Scx=:\ASind\z:}', "");;
     Expect(1, 70393, '\p{Scx=sind}', "");
@@ -151363,16 +152827,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70394, '\P{^Scx=sind}', "");
     Expect(1, 70393, '\p{Scx=:\Asind\z:}', "");;
     Expect(0, 70394, '\p{Scx=:\Asind\z:}', "");;
-    Expect(1, 70393, '\p{Scx=	 Sind}', "");
-    Expect(0, 70393, '\p{^Scx=	 Sind}', "");
-    Expect(0, 70393, '\P{Scx=	 Sind}', "");
-    Expect(1, 70393, '\P{^Scx=	 Sind}', "");
-    Expect(0, 70394, '\p{Scx=	 Sind}', "");
-    Expect(1, 70394, '\p{^Scx=	 Sind}', "");
-    Expect(1, 70394, '\P{Scx=	 Sind}', "");
-    Expect(0, 70394, '\P{^Scx=	 Sind}', "");
-    Error('\p{Is_Script_Extensions=	/a/Khudawadi}');
-    Error('\P{Is_Script_Extensions=	/a/Khudawadi}');
+    Expect(1, 70393, '\p{Scx=- SIND}', "");
+    Expect(0, 70393, '\p{^Scx=- SIND}', "");
+    Expect(0, 70393, '\P{Scx=- SIND}', "");
+    Expect(1, 70393, '\P{^Scx=- SIND}', "");
+    Expect(0, 70394, '\p{Scx=- SIND}', "");
+    Expect(1, 70394, '\p{^Scx=- SIND}', "");
+    Expect(1, 70394, '\P{Scx=- SIND}', "");
+    Expect(0, 70394, '\P{^Scx=- SIND}', "");
+    Error('\p{Is_Script_Extensions:	_:=Khudawadi}');
+    Error('\P{Is_Script_Extensions:	_:=Khudawadi}');
     Expect(1, 70393, '\p{Is_Script_Extensions=khudawadi}', "");
     Expect(0, 70393, '\p{^Is_Script_Extensions=khudawadi}', "");
     Expect(0, 70393, '\P{Is_Script_Extensions=khudawadi}', "");
@@ -151381,16 +152845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70394, '\p{^Is_Script_Extensions=khudawadi}', "");
     Expect(1, 70394, '\P{Is_Script_Extensions=khudawadi}', "");
     Expect(0, 70394, '\P{^Is_Script_Extensions=khudawadi}', "");
-    Expect(1, 70393, '\p{Is_Script_Extensions=	khudawadi}', "");
-    Expect(0, 70393, '\p{^Is_Script_Extensions=	khudawadi}', "");
-    Expect(0, 70393, '\P{Is_Script_Extensions=	khudawadi}', "");
-    Expect(1, 70393, '\P{^Is_Script_Extensions=	khudawadi}', "");
-    Expect(0, 70394, '\p{Is_Script_Extensions=	khudawadi}', "");
-    Expect(1, 70394, '\p{^Is_Script_Extensions=	khudawadi}', "");
-    Expect(1, 70394, '\P{Is_Script_Extensions=	khudawadi}', "");
-    Expect(0, 70394, '\P{^Is_Script_Extensions=	khudawadi}', "");
-    Error('\p{Is_Scx=-/a/SIND}');
-    Error('\P{Is_Scx=-/a/SIND}');
+    Expect(1, 70393, '\p{Is_Script_Extensions= Khudawadi}', "");
+    Expect(0, 70393, '\p{^Is_Script_Extensions= Khudawadi}', "");
+    Expect(0, 70393, '\P{Is_Script_Extensions= Khudawadi}', "");
+    Expect(1, 70393, '\P{^Is_Script_Extensions= Khudawadi}', "");
+    Expect(0, 70394, '\p{Is_Script_Extensions= Khudawadi}', "");
+    Expect(1, 70394, '\p{^Is_Script_Extensions= Khudawadi}', "");
+    Expect(1, 70394, '\P{Is_Script_Extensions= Khudawadi}', "");
+    Expect(0, 70394, '\P{^Is_Script_Extensions= Khudawadi}', "");
+    Error('\p{Is_Scx=		Sind:=}');
+    Error('\P{Is_Scx=		Sind:=}');
     Expect(1, 70393, '\p{Is_Scx=sind}', "");
     Expect(0, 70393, '\p{^Is_Scx=sind}', "");
     Expect(0, 70393, '\P{Is_Scx=sind}', "");
@@ -151399,16 +152863,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70394, '\p{^Is_Scx=sind}', "");
     Expect(1, 70394, '\P{Is_Scx=sind}', "");
     Expect(0, 70394, '\P{^Is_Scx=sind}', "");
-    Expect(1, 70393, '\p{Is_Scx=_Sind}', "");
-    Expect(0, 70393, '\p{^Is_Scx=_Sind}', "");
-    Expect(0, 70393, '\P{Is_Scx=_Sind}', "");
-    Expect(1, 70393, '\P{^Is_Scx=_Sind}', "");
-    Expect(0, 70394, '\p{Is_Scx=_Sind}', "");
-    Expect(1, 70394, '\p{^Is_Scx=_Sind}', "");
-    Expect(1, 70394, '\P{Is_Scx=_Sind}', "");
-    Expect(0, 70394, '\P{^Is_Scx=_Sind}', "");
-    Error('\p{Script_Extensions=-	Sinhala/a/}');
-    Error('\P{Script_Extensions=-	Sinhala/a/}');
+    Expect(1, 70393, '\p{Is_Scx:  	sind}', "");
+    Expect(0, 70393, '\p{^Is_Scx:  	sind}', "");
+    Expect(0, 70393, '\P{Is_Scx:  	sind}', "");
+    Expect(1, 70393, '\P{^Is_Scx:  	sind}', "");
+    Expect(0, 70394, '\p{Is_Scx:  	sind}', "");
+    Expect(1, 70394, '\p{^Is_Scx:  	sind}', "");
+    Expect(1, 70394, '\P{Is_Scx:  	sind}', "");
+    Expect(0, 70394, '\P{^Is_Scx:  	sind}', "");
+    Error('\p{Script_Extensions=	:=Sinhala}');
+    Error('\P{Script_Extensions=	:=Sinhala}');
     Expect(1, 70132, '\p{Script_Extensions=:\ASinhala\z:}', "");;
     Expect(0, 70133, '\p{Script_Extensions=:\ASinhala\z:}', "");;
     Expect(1, 70132, '\p{Script_Extensions=sinhala}', "");
@@ -151421,38 +152885,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70133, '\P{^Script_Extensions=sinhala}', "");
     Expect(1, 70132, '\p{Script_Extensions=:\Asinhala\z:}', "");;
     Expect(0, 70133, '\p{Script_Extensions=:\Asinhala\z:}', "");;
-    Expect(1, 70132, '\p{Script_Extensions=__sinhala}', "");
-    Expect(0, 70132, '\p{^Script_Extensions=__sinhala}', "");
-    Expect(0, 70132, '\P{Script_Extensions=__sinhala}', "");
-    Expect(1, 70132, '\P{^Script_Extensions=__sinhala}', "");
-    Expect(0, 70133, '\p{Script_Extensions=__sinhala}', "");
-    Expect(1, 70133, '\p{^Script_Extensions=__sinhala}', "");
-    Expect(1, 70133, '\P{Script_Extensions=__sinhala}', "");
-    Expect(0, 70133, '\P{^Script_Extensions=__sinhala}', "");
-    Error('\p{Scx=_/a/Sinh}');
-    Error('\P{Scx=_/a/Sinh}');
+    Expect(1, 70132, '\p{Script_Extensions=  Sinhala}', "");
+    Expect(0, 70132, '\p{^Script_Extensions=  Sinhala}', "");
+    Expect(0, 70132, '\P{Script_Extensions=  Sinhala}', "");
+    Expect(1, 70132, '\P{^Script_Extensions=  Sinhala}', "");
+    Expect(0, 70133, '\p{Script_Extensions=  Sinhala}', "");
+    Expect(1, 70133, '\p{^Script_Extensions=  Sinhala}', "");
+    Expect(1, 70133, '\P{Script_Extensions=  Sinhala}', "");
+    Expect(0, 70133, '\P{^Script_Extensions=  Sinhala}', "");
+    Error('\p{Scx=_/a/sinh}');
+    Error('\P{Scx=_/a/sinh}');
     Expect(1, 70132, '\p{Scx=:\ASinh\z:}', "");;
     Expect(0, 70133, '\p{Scx=:\ASinh\z:}', "");;
-    Expect(1, 70132, '\p{Scx=sinh}', "");
-    Expect(0, 70132, '\p{^Scx=sinh}', "");
-    Expect(0, 70132, '\P{Scx=sinh}', "");
-    Expect(1, 70132, '\P{^Scx=sinh}', "");
-    Expect(0, 70133, '\p{Scx=sinh}', "");
-    Expect(1, 70133, '\p{^Scx=sinh}', "");
-    Expect(1, 70133, '\P{Scx=sinh}', "");
-    Expect(0, 70133, '\P{^Scx=sinh}', "");
+    Expect(1, 70132, '\p{Scx: sinh}', "");
+    Expect(0, 70132, '\p{^Scx: sinh}', "");
+    Expect(0, 70132, '\P{Scx: sinh}', "");
+    Expect(1, 70132, '\P{^Scx: sinh}', "");
+    Expect(0, 70133, '\p{Scx: sinh}', "");
+    Expect(1, 70133, '\p{^Scx: sinh}', "");
+    Expect(1, 70133, '\P{Scx: sinh}', "");
+    Expect(0, 70133, '\P{^Scx: sinh}', "");
     Expect(1, 70132, '\p{Scx=:\Asinh\z:}', "");;
     Expect(0, 70133, '\p{Scx=:\Asinh\z:}', "");;
-    Expect(1, 70132, '\p{Scx=_Sinh}', "");
-    Expect(0, 70132, '\p{^Scx=_Sinh}', "");
-    Expect(0, 70132, '\P{Scx=_Sinh}', "");
-    Expect(1, 70132, '\P{^Scx=_Sinh}', "");
-    Expect(0, 70133, '\p{Scx=_Sinh}', "");
-    Expect(1, 70133, '\p{^Scx=_Sinh}', "");
-    Expect(1, 70133, '\P{Scx=_Sinh}', "");
-    Expect(0, 70133, '\P{^Scx=_Sinh}', "");
-    Error('\p{Is_Script_Extensions=_/a/Sinhala}');
-    Error('\P{Is_Script_Extensions=_/a/Sinhala}');
+    Expect(1, 70132, '\p{Scx=	Sinh}', "");
+    Expect(0, 70132, '\p{^Scx=	Sinh}', "");
+    Expect(0, 70132, '\P{Scx=	Sinh}', "");
+    Expect(1, 70132, '\P{^Scx=	Sinh}', "");
+    Expect(0, 70133, '\p{Scx=	Sinh}', "");
+    Expect(1, 70133, '\p{^Scx=	Sinh}', "");
+    Expect(1, 70133, '\P{Scx=	Sinh}', "");
+    Expect(0, 70133, '\P{^Scx=	Sinh}', "");
+    Error('\p{Is_Script_Extensions=/a/	 SINHALA}');
+    Error('\P{Is_Script_Extensions=/a/	 SINHALA}');
     Expect(1, 70132, '\p{Is_Script_Extensions=sinhala}', "");
     Expect(0, 70132, '\p{^Is_Script_Extensions=sinhala}', "");
     Expect(0, 70132, '\P{Is_Script_Extensions=sinhala}', "");
@@ -151461,16 +152925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^Is_Script_Extensions=sinhala}', "");
     Expect(1, 70133, '\P{Is_Script_Extensions=sinhala}', "");
     Expect(0, 70133, '\P{^Is_Script_Extensions=sinhala}', "");
-    Expect(1, 70132, '\p{Is_Script_Extensions= SINHALA}', "");
-    Expect(0, 70132, '\p{^Is_Script_Extensions= SINHALA}', "");
-    Expect(0, 70132, '\P{Is_Script_Extensions= SINHALA}', "");
-    Expect(1, 70132, '\P{^Is_Script_Extensions= SINHALA}', "");
-    Expect(0, 70133, '\p{Is_Script_Extensions= SINHALA}', "");
-    Expect(1, 70133, '\p{^Is_Script_Extensions= SINHALA}', "");
-    Expect(1, 70133, '\P{Is_Script_Extensions= SINHALA}', "");
-    Expect(0, 70133, '\P{^Is_Script_Extensions= SINHALA}', "");
-    Error('\p{Is_Scx=_	SINH:=}');
-    Error('\P{Is_Scx=_	SINH:=}');
+    Expect(1, 70132, '\p{Is_Script_Extensions=_sinhala}', "");
+    Expect(0, 70132, '\p{^Is_Script_Extensions=_sinhala}', "");
+    Expect(0, 70132, '\P{Is_Script_Extensions=_sinhala}', "");
+    Expect(1, 70132, '\P{^Is_Script_Extensions=_sinhala}', "");
+    Expect(0, 70133, '\p{Is_Script_Extensions=_sinhala}', "");
+    Expect(1, 70133, '\p{^Is_Script_Extensions=_sinhala}', "");
+    Expect(1, 70133, '\P{Is_Script_Extensions=_sinhala}', "");
+    Expect(0, 70133, '\P{^Is_Script_Extensions=_sinhala}', "");
+    Error('\p{Is_Scx=	Sinh/a/}');
+    Error('\P{Is_Scx=	Sinh/a/}');
     Expect(1, 70132, '\p{Is_Scx=sinh}', "");
     Expect(0, 70132, '\p{^Is_Scx=sinh}', "");
     Expect(0, 70132, '\P{Is_Scx=sinh}', "");
@@ -151479,16 +152943,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70133, '\p{^Is_Scx=sinh}', "");
     Expect(1, 70133, '\P{Is_Scx=sinh}', "");
     Expect(0, 70133, '\P{^Is_Scx=sinh}', "");
-    Expect(1, 70132, '\p{Is_Scx: __SINH}', "");
-    Expect(0, 70132, '\p{^Is_Scx: __SINH}', "");
-    Expect(0, 70132, '\P{Is_Scx: __SINH}', "");
-    Expect(1, 70132, '\P{^Is_Scx: __SINH}', "");
-    Expect(0, 70133, '\p{Is_Scx: __SINH}', "");
-    Expect(1, 70133, '\p{^Is_Scx: __SINH}', "");
-    Expect(1, 70133, '\P{Is_Scx: __SINH}', "");
-    Expect(0, 70133, '\P{^Is_Scx: __SINH}', "");
-    Error('\p{Script_Extensions=-sogdian:=}');
-    Error('\P{Script_Extensions=-sogdian:=}');
+    Expect(1, 70132, '\p{Is_Scx=	_Sinh}', "");
+    Expect(0, 70132, '\p{^Is_Scx=	_Sinh}', "");
+    Expect(0, 70132, '\P{Is_Scx=	_Sinh}', "");
+    Expect(1, 70132, '\P{^Is_Scx=	_Sinh}', "");
+    Expect(0, 70133, '\p{Is_Scx=	_Sinh}', "");
+    Expect(1, 70133, '\p{^Is_Scx=	_Sinh}', "");
+    Expect(1, 70133, '\P{Is_Scx=	_Sinh}', "");
+    Expect(0, 70133, '\P{^Is_Scx=	_Sinh}', "");
+    Error('\p{Script_Extensions=_-Sogdian:=}');
+    Error('\P{Script_Extensions=_-Sogdian:=}');
     Expect(1, 69465, '\p{Script_Extensions=:\ASogdian\z:}', "");;
     Expect(0, 69466, '\p{Script_Extensions=:\ASogdian\z:}', "");;
     Expect(1, 69465, '\p{Script_Extensions=sogdian}', "");
@@ -151501,56 +152965,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69466, '\P{^Script_Extensions=sogdian}', "");
     Expect(1, 69465, '\p{Script_Extensions=:\Asogdian\z:}', "");;
     Expect(0, 69466, '\p{Script_Extensions=:\Asogdian\z:}', "");;
-    Expect(1, 69465, '\p{Script_Extensions=- sogdian}', "");
-    Expect(0, 69465, '\p{^Script_Extensions=- sogdian}', "");
-    Expect(0, 69465, '\P{Script_Extensions=- sogdian}', "");
-    Expect(1, 69465, '\P{^Script_Extensions=- sogdian}', "");
-    Expect(0, 69466, '\p{Script_Extensions=- sogdian}', "");
-    Expect(1, 69466, '\p{^Script_Extensions=- sogdian}', "");
-    Expect(1, 69466, '\P{Script_Extensions=- sogdian}', "");
-    Expect(0, 69466, '\P{^Script_Extensions=- sogdian}', "");
-    Error('\p{Scx=	-Sogd:=}');
-    Error('\P{Scx=	-Sogd:=}');
+    Expect(1, 69465, '\p{Script_Extensions= sogdian}', "");
+    Expect(0, 69465, '\p{^Script_Extensions= sogdian}', "");
+    Expect(0, 69465, '\P{Script_Extensions= sogdian}', "");
+    Expect(1, 69465, '\P{^Script_Extensions= sogdian}', "");
+    Expect(0, 69466, '\p{Script_Extensions= sogdian}', "");
+    Expect(1, 69466, '\p{^Script_Extensions= sogdian}', "");
+    Expect(1, 69466, '\P{Script_Extensions= sogdian}', "");
+    Expect(0, 69466, '\P{^Script_Extensions= sogdian}', "");
+    Error('\p{Scx=:=__SOGD}');
+    Error('\P{Scx=:=__SOGD}');
     Expect(1, 69465, '\p{Scx=:\ASogd\z:}', "");;
     Expect(0, 69466, '\p{Scx=:\ASogd\z:}', "");;
-    Expect(1, 69465, '\p{Scx:	sogd}', "");
-    Expect(0, 69465, '\p{^Scx:	sogd}', "");
-    Expect(0, 69465, '\P{Scx:	sogd}', "");
-    Expect(1, 69465, '\P{^Scx:	sogd}', "");
-    Expect(0, 69466, '\p{Scx:	sogd}', "");
-    Expect(1, 69466, '\p{^Scx:	sogd}', "");
-    Expect(1, 69466, '\P{Scx:	sogd}', "");
-    Expect(0, 69466, '\P{^Scx:	sogd}', "");
+    Expect(1, 69465, '\p{Scx: sogd}', "");
+    Expect(0, 69465, '\p{^Scx: sogd}', "");
+    Expect(0, 69465, '\P{Scx: sogd}', "");
+    Expect(1, 69465, '\P{^Scx: sogd}', "");
+    Expect(0, 69466, '\p{Scx: sogd}', "");
+    Expect(1, 69466, '\p{^Scx: sogd}', "");
+    Expect(1, 69466, '\P{Scx: sogd}', "");
+    Expect(0, 69466, '\P{^Scx: sogd}', "");
     Expect(1, 69465, '\p{Scx=:\Asogd\z:}', "");;
     Expect(0, 69466, '\p{Scx=:\Asogd\z:}', "");;
-    Expect(1, 69465, '\p{Scx=- sogd}', "");
-    Expect(0, 69465, '\p{^Scx=- sogd}', "");
-    Expect(0, 69465, '\P{Scx=- sogd}', "");
-    Expect(1, 69465, '\P{^Scx=- sogd}', "");
-    Expect(0, 69466, '\p{Scx=- sogd}', "");
-    Expect(1, 69466, '\p{^Scx=- sogd}', "");
-    Expect(1, 69466, '\P{Scx=- sogd}', "");
-    Expect(0, 69466, '\P{^Scx=- sogd}', "");
-    Error('\p{Is_Script_Extensions:	_-Sogdian:=}');
-    Error('\P{Is_Script_Extensions:	_-Sogdian:=}');
-    Expect(1, 69465, '\p{Is_Script_Extensions:	sogdian}', "");
-    Expect(0, 69465, '\p{^Is_Script_Extensions:	sogdian}', "");
-    Expect(0, 69465, '\P{Is_Script_Extensions:	sogdian}', "");
-    Expect(1, 69465, '\P{^Is_Script_Extensions:	sogdian}', "");
-    Expect(0, 69466, '\p{Is_Script_Extensions:	sogdian}', "");
-    Expect(1, 69466, '\p{^Is_Script_Extensions:	sogdian}', "");
-    Expect(1, 69466, '\P{Is_Script_Extensions:	sogdian}', "");
-    Expect(0, 69466, '\P{^Is_Script_Extensions:	sogdian}', "");
-    Expect(1, 69465, '\p{Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(0, 69465, '\p{^Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(0, 69465, '\P{Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(1, 69465, '\P{^Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(0, 69466, '\p{Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(1, 69466, '\p{^Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(1, 69466, '\P{Is_Script_Extensions=-_SOGDIAN}', "");
-    Expect(0, 69466, '\P{^Is_Script_Extensions=-_SOGDIAN}', "");
-    Error('\p{Is_Scx=	:=Sogd}');
-    Error('\P{Is_Scx=	:=Sogd}');
+    Expect(1, 69465, '\p{Scx:   _	Sogd}', "");
+    Expect(0, 69465, '\p{^Scx:   _	Sogd}', "");
+    Expect(0, 69465, '\P{Scx:   _	Sogd}', "");
+    Expect(1, 69465, '\P{^Scx:   _	Sogd}', "");
+    Expect(0, 69466, '\p{Scx:   _	Sogd}', "");
+    Expect(1, 69466, '\p{^Scx:   _	Sogd}', "");
+    Expect(1, 69466, '\P{Scx:   _	Sogd}', "");
+    Expect(0, 69466, '\P{^Scx:   _	Sogd}', "");
+    Error('\p{Is_Script_Extensions:	 :=Sogdian}');
+    Error('\P{Is_Script_Extensions:	 :=Sogdian}');
+    Expect(1, 69465, '\p{Is_Script_Extensions=sogdian}', "");
+    Expect(0, 69465, '\p{^Is_Script_Extensions=sogdian}', "");
+    Expect(0, 69465, '\P{Is_Script_Extensions=sogdian}', "");
+    Expect(1, 69465, '\P{^Is_Script_Extensions=sogdian}', "");
+    Expect(0, 69466, '\p{Is_Script_Extensions=sogdian}', "");
+    Expect(1, 69466, '\p{^Is_Script_Extensions=sogdian}', "");
+    Expect(1, 69466, '\P{Is_Script_Extensions=sogdian}', "");
+    Expect(0, 69466, '\P{^Is_Script_Extensions=sogdian}', "");
+    Expect(1, 69465, '\p{Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(0, 69465, '\p{^Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(0, 69465, '\P{Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(1, 69465, '\P{^Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(0, 69466, '\p{Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(1, 69466, '\p{^Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(1, 69466, '\P{Is_Script_Extensions=--SOGDIAN}', "");
+    Expect(0, 69466, '\P{^Is_Script_Extensions=--SOGDIAN}', "");
+    Error('\p{Is_Scx=:=  SOGD}');
+    Error('\P{Is_Scx=:=  SOGD}');
     Expect(1, 69465, '\p{Is_Scx=sogd}', "");
     Expect(0, 69465, '\p{^Is_Scx=sogd}', "");
     Expect(0, 69465, '\P{Is_Scx=sogd}', "");
@@ -151559,16 +153023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69466, '\p{^Is_Scx=sogd}', "");
     Expect(1, 69466, '\P{Is_Scx=sogd}', "");
     Expect(0, 69466, '\P{^Is_Scx=sogd}', "");
-    Expect(1, 69465, '\p{Is_Scx= -Sogd}', "");
-    Expect(0, 69465, '\p{^Is_Scx= -Sogd}', "");
-    Expect(0, 69465, '\P{Is_Scx= -Sogd}', "");
-    Expect(1, 69465, '\P{^Is_Scx= -Sogd}', "");
-    Expect(0, 69466, '\p{Is_Scx= -Sogd}', "");
-    Expect(1, 69466, '\p{^Is_Scx= -Sogd}', "");
-    Expect(1, 69466, '\P{Is_Scx= -Sogd}', "");
-    Expect(0, 69466, '\P{^Is_Scx= -Sogd}', "");
-    Error('\p{Script_Extensions=Old_sogdian/a/}');
-    Error('\P{Script_Extensions=Old_sogdian/a/}');
+    Expect(1, 69465, '\p{Is_Scx=-_Sogd}', "");
+    Expect(0, 69465, '\p{^Is_Scx=-_Sogd}', "");
+    Expect(0, 69465, '\P{Is_Scx=-_Sogd}', "");
+    Expect(1, 69465, '\P{^Is_Scx=-_Sogd}', "");
+    Expect(0, 69466, '\p{Is_Scx=-_Sogd}', "");
+    Expect(1, 69466, '\p{^Is_Scx=-_Sogd}', "");
+    Expect(1, 69466, '\P{Is_Scx=-_Sogd}', "");
+    Expect(0, 69466, '\P{^Is_Scx=-_Sogd}', "");
+    Error('\p{Script_Extensions=/a/Old_SOGDIAN}');
+    Error('\P{Script_Extensions=/a/Old_SOGDIAN}');
     Expect(1, 69415, '\p{Script_Extensions=:\AOld_Sogdian\z:}', "");;
     Expect(0, 69416, '\p{Script_Extensions=:\AOld_Sogdian\z:}', "");;
     Expect(1, 69415, '\p{Script_Extensions=oldsogdian}', "");
@@ -151581,16 +153045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69416, '\P{^Script_Extensions=oldsogdian}', "");
     Expect(1, 69415, '\p{Script_Extensions=:\Aoldsogdian\z:}', "");;
     Expect(0, 69416, '\p{Script_Extensions=:\Aoldsogdian\z:}', "");;
-    Expect(1, 69415, '\p{Script_Extensions: _Old_sogdian}', "");
-    Expect(0, 69415, '\p{^Script_Extensions: _Old_sogdian}', "");
-    Expect(0, 69415, '\P{Script_Extensions: _Old_sogdian}', "");
-    Expect(1, 69415, '\P{^Script_Extensions: _Old_sogdian}', "");
-    Expect(0, 69416, '\p{Script_Extensions: _Old_sogdian}', "");
-    Expect(1, 69416, '\p{^Script_Extensions: _Old_sogdian}', "");
-    Expect(1, 69416, '\P{Script_Extensions: _Old_sogdian}', "");
-    Expect(0, 69416, '\P{^Script_Extensions: _Old_sogdian}', "");
-    Error('\p{Scx=/a/	Sogo}');
-    Error('\P{Scx=/a/	Sogo}');
+    Expect(1, 69415, '\p{Script_Extensions=_-Old_Sogdian}', "");
+    Expect(0, 69415, '\p{^Script_Extensions=_-Old_Sogdian}', "");
+    Expect(0, 69415, '\P{Script_Extensions=_-Old_Sogdian}', "");
+    Expect(1, 69415, '\P{^Script_Extensions=_-Old_Sogdian}', "");
+    Expect(0, 69416, '\p{Script_Extensions=_-Old_Sogdian}', "");
+    Expect(1, 69416, '\p{^Script_Extensions=_-Old_Sogdian}', "");
+    Expect(1, 69416, '\P{Script_Extensions=_-Old_Sogdian}', "");
+    Expect(0, 69416, '\P{^Script_Extensions=_-Old_Sogdian}', "");
+    Error('\p{Scx: -Sogo/a/}');
+    Error('\P{Scx: -Sogo/a/}');
     Expect(1, 69415, '\p{Scx=:\ASogo\z:}', "");;
     Expect(0, 69416, '\p{Scx=:\ASogo\z:}', "");;
     Expect(1, 69415, '\p{Scx=sogo}', "");
@@ -151603,34 +153067,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69416, '\P{^Scx=sogo}', "");
     Expect(1, 69415, '\p{Scx=:\Asogo\z:}', "");;
     Expect(0, 69416, '\p{Scx=:\Asogo\z:}', "");;
-    Expect(1, 69415, '\p{Scx= 	Sogo}', "");
-    Expect(0, 69415, '\p{^Scx= 	Sogo}', "");
-    Expect(0, 69415, '\P{Scx= 	Sogo}', "");
-    Expect(1, 69415, '\P{^Scx= 	Sogo}', "");
-    Expect(0, 69416, '\p{Scx= 	Sogo}', "");
-    Expect(1, 69416, '\p{^Scx= 	Sogo}', "");
-    Expect(1, 69416, '\P{Scx= 	Sogo}', "");
-    Expect(0, 69416, '\P{^Scx= 	Sogo}', "");
-    Error('\p{Is_Script_Extensions= -OLD_Sogdian:=}');
-    Error('\P{Is_Script_Extensions= -OLD_Sogdian:=}');
-    Expect(1, 69415, '\p{Is_Script_Extensions=oldsogdian}', "");
-    Expect(0, 69415, '\p{^Is_Script_Extensions=oldsogdian}', "");
-    Expect(0, 69415, '\P{Is_Script_Extensions=oldsogdian}', "");
-    Expect(1, 69415, '\P{^Is_Script_Extensions=oldsogdian}', "");
-    Expect(0, 69416, '\p{Is_Script_Extensions=oldsogdian}', "");
-    Expect(1, 69416, '\p{^Is_Script_Extensions=oldsogdian}', "");
-    Expect(1, 69416, '\P{Is_Script_Extensions=oldsogdian}', "");
-    Expect(0, 69416, '\P{^Is_Script_Extensions=oldsogdian}', "");
-    Expect(1, 69415, '\p{Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(0, 69415, '\p{^Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(0, 69415, '\P{Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(1, 69415, '\P{^Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(0, 69416, '\p{Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(1, 69416, '\p{^Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(1, 69416, '\P{Is_Script_Extensions=--old_SOGDIAN}', "");
-    Expect(0, 69416, '\P{^Is_Script_Extensions=--old_SOGDIAN}', "");
-    Error('\p{Is_Scx=:=-Sogo}');
-    Error('\P{Is_Scx=:=-Sogo}');
+    Expect(1, 69415, '\p{Scx=	SOGO}', "");
+    Expect(0, 69415, '\p{^Scx=	SOGO}', "");
+    Expect(0, 69415, '\P{Scx=	SOGO}', "");
+    Expect(1, 69415, '\P{^Scx=	SOGO}', "");
+    Expect(0, 69416, '\p{Scx=	SOGO}', "");
+    Expect(1, 69416, '\p{^Scx=	SOGO}', "");
+    Expect(1, 69416, '\P{Scx=	SOGO}', "");
+    Expect(0, 69416, '\P{^Scx=	SOGO}', "");
+    Error('\p{Is_Script_Extensions=:=	-Old_Sogdian}');
+    Error('\P{Is_Script_Extensions=:=	-Old_Sogdian}');
+    Expect(1, 69415, '\p{Is_Script_Extensions:	oldsogdian}', "");
+    Expect(0, 69415, '\p{^Is_Script_Extensions:	oldsogdian}', "");
+    Expect(0, 69415, '\P{Is_Script_Extensions:	oldsogdian}', "");
+    Expect(1, 69415, '\P{^Is_Script_Extensions:	oldsogdian}', "");
+    Expect(0, 69416, '\p{Is_Script_Extensions:	oldsogdian}', "");
+    Expect(1, 69416, '\p{^Is_Script_Extensions:	oldsogdian}', "");
+    Expect(1, 69416, '\P{Is_Script_Extensions:	oldsogdian}', "");
+    Expect(0, 69416, '\P{^Is_Script_Extensions:	oldsogdian}', "");
+    Expect(1, 69415, '\p{Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(0, 69415, '\p{^Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(0, 69415, '\P{Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(1, 69415, '\P{^Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(0, 69416, '\p{Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(1, 69416, '\p{^Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(1, 69416, '\P{Is_Script_Extensions=-	Old_Sogdian}', "");
+    Expect(0, 69416, '\P{^Is_Script_Extensions=-	Old_Sogdian}', "");
+    Error('\p{Is_Scx=/a/SOGO}');
+    Error('\P{Is_Scx=/a/SOGO}');
     Expect(1, 69415, '\p{Is_Scx=sogo}', "");
     Expect(0, 69415, '\p{^Is_Scx=sogo}', "");
     Expect(0, 69415, '\P{Is_Scx=sogo}', "");
@@ -151639,38 +153103,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69416, '\p{^Is_Scx=sogo}', "");
     Expect(1, 69416, '\P{Is_Scx=sogo}', "");
     Expect(0, 69416, '\P{^Is_Scx=sogo}', "");
-    Expect(1, 69415, '\p{Is_Scx:	 _SOGO}', "");
-    Expect(0, 69415, '\p{^Is_Scx:	 _SOGO}', "");
-    Expect(0, 69415, '\P{Is_Scx:	 _SOGO}', "");
-    Expect(1, 69415, '\P{^Is_Scx:	 _SOGO}', "");
-    Expect(0, 69416, '\p{Is_Scx:	 _SOGO}', "");
-    Expect(1, 69416, '\p{^Is_Scx:	 _SOGO}', "");
-    Expect(1, 69416, '\P{Is_Scx:	 _SOGO}', "");
-    Expect(0, 69416, '\P{^Is_Scx:	 _SOGO}', "");
-    Error('\p{Script_Extensions=/a/Sora_sompeng}');
-    Error('\P{Script_Extensions=/a/Sora_sompeng}');
+    Expect(1, 69415, '\p{Is_Scx= -Sogo}', "");
+    Expect(0, 69415, '\p{^Is_Scx= -Sogo}', "");
+    Expect(0, 69415, '\P{Is_Scx= -Sogo}', "");
+    Expect(1, 69415, '\P{^Is_Scx= -Sogo}', "");
+    Expect(0, 69416, '\p{Is_Scx= -Sogo}', "");
+    Expect(1, 69416, '\p{^Is_Scx= -Sogo}', "");
+    Expect(1, 69416, '\P{Is_Scx= -Sogo}', "");
+    Expect(0, 69416, '\P{^Is_Scx= -Sogo}', "");
+    Error('\p{Script_Extensions=-/a/SORA_sompeng}');
+    Error('\P{Script_Extensions=-/a/SORA_sompeng}');
     Expect(1, 69881, '\p{Script_Extensions=:\ASora_Sompeng\z:}', "");;
     Expect(0, 69882, '\p{Script_Extensions=:\ASora_Sompeng\z:}', "");;
-    Expect(1, 69881, '\p{Script_Extensions: sorasompeng}', "");
-    Expect(0, 69881, '\p{^Script_Extensions: sorasompeng}', "");
-    Expect(0, 69881, '\P{Script_Extensions: sorasompeng}', "");
-    Expect(1, 69881, '\P{^Script_Extensions: sorasompeng}', "");
-    Expect(0, 69882, '\p{Script_Extensions: sorasompeng}', "");
-    Expect(1, 69882, '\p{^Script_Extensions: sorasompeng}', "");
-    Expect(1, 69882, '\P{Script_Extensions: sorasompeng}', "");
-    Expect(0, 69882, '\P{^Script_Extensions: sorasompeng}', "");
+    Expect(1, 69881, '\p{Script_Extensions=sorasompeng}', "");
+    Expect(0, 69881, '\p{^Script_Extensions=sorasompeng}', "");
+    Expect(0, 69881, '\P{Script_Extensions=sorasompeng}', "");
+    Expect(1, 69881, '\P{^Script_Extensions=sorasompeng}', "");
+    Expect(0, 69882, '\p{Script_Extensions=sorasompeng}', "");
+    Expect(1, 69882, '\p{^Script_Extensions=sorasompeng}', "");
+    Expect(1, 69882, '\P{Script_Extensions=sorasompeng}', "");
+    Expect(0, 69882, '\P{^Script_Extensions=sorasompeng}', "");
     Expect(1, 69881, '\p{Script_Extensions=:\Asorasompeng\z:}', "");;
     Expect(0, 69882, '\p{Script_Extensions=:\Asorasompeng\z:}', "");;
-    Expect(1, 69881, '\p{Script_Extensions=	-Sora_sompeng}', "");
-    Expect(0, 69881, '\p{^Script_Extensions=	-Sora_sompeng}', "");
-    Expect(0, 69881, '\P{Script_Extensions=	-Sora_sompeng}', "");
-    Expect(1, 69881, '\P{^Script_Extensions=	-Sora_sompeng}', "");
-    Expect(0, 69882, '\p{Script_Extensions=	-Sora_sompeng}', "");
-    Expect(1, 69882, '\p{^Script_Extensions=	-Sora_sompeng}', "");
-    Expect(1, 69882, '\P{Script_Extensions=	-Sora_sompeng}', "");
-    Expect(0, 69882, '\P{^Script_Extensions=	-Sora_sompeng}', "");
-    Error('\p{Scx: 	/a/sora}');
-    Error('\P{Scx: 	/a/sora}');
+    Expect(1, 69881, '\p{Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(0, 69881, '\p{^Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(0, 69881, '\P{Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(1, 69881, '\P{^Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(0, 69882, '\p{Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(1, 69882, '\p{^Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(1, 69882, '\P{Script_Extensions:	 Sora_Sompeng}', "");
+    Expect(0, 69882, '\P{^Script_Extensions:	 Sora_Sompeng}', "");
+    Error('\p{Scx=-SORA/a/}');
+    Error('\P{Scx=-SORA/a/}');
     Expect(1, 69881, '\p{Scx=:\ASora\z:}', "");;
     Expect(0, 69882, '\p{Scx=:\ASora\z:}', "");;
     Expect(1, 69881, '\p{Scx=sora}', "");
@@ -151683,16 +153147,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69882, '\P{^Scx=sora}', "");
     Expect(1, 69881, '\p{Scx=:\Asora\z:}', "");;
     Expect(0, 69882, '\p{Scx=:\Asora\z:}', "");;
-    Expect(1, 69881, '\p{Scx=-Sora}', "");
-    Expect(0, 69881, '\p{^Scx=-Sora}', "");
-    Expect(0, 69881, '\P{Scx=-Sora}', "");
-    Expect(1, 69881, '\P{^Scx=-Sora}', "");
-    Expect(0, 69882, '\p{Scx=-Sora}', "");
-    Expect(1, 69882, '\p{^Scx=-Sora}', "");
-    Expect(1, 69882, '\P{Scx=-Sora}', "");
-    Expect(0, 69882, '\P{^Scx=-Sora}', "");
-    Error('\p{Is_Script_Extensions=/a/--SORA_Sompeng}');
-    Error('\P{Is_Script_Extensions=/a/--SORA_Sompeng}');
+    Expect(1, 69881, '\p{Scx=_ SORA}', "");
+    Expect(0, 69881, '\p{^Scx=_ SORA}', "");
+    Expect(0, 69881, '\P{Scx=_ SORA}', "");
+    Expect(1, 69881, '\P{^Scx=_ SORA}', "");
+    Expect(0, 69882, '\p{Scx=_ SORA}', "");
+    Expect(1, 69882, '\p{^Scx=_ SORA}', "");
+    Expect(1, 69882, '\P{Scx=_ SORA}', "");
+    Expect(0, 69882, '\P{^Scx=_ SORA}', "");
+    Error('\p{Is_Script_Extensions=:=-_Sora_Sompeng}');
+    Error('\P{Is_Script_Extensions=:=-_Sora_Sompeng}');
     Expect(1, 69881, '\p{Is_Script_Extensions=sorasompeng}', "");
     Expect(0, 69881, '\p{^Is_Script_Extensions=sorasompeng}', "");
     Expect(0, 69881, '\P{Is_Script_Extensions=sorasompeng}', "");
@@ -151701,56 +153165,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 69882, '\p{^Is_Script_Extensions=sorasompeng}', "");
     Expect(1, 69882, '\P{Is_Script_Extensions=sorasompeng}', "");
     Expect(0, 69882, '\P{^Is_Script_Extensions=sorasompeng}', "");
-    Expect(1, 69881, '\p{Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(0, 69881, '\p{^Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(0, 69881, '\P{Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(1, 69881, '\P{^Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(0, 69882, '\p{Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(1, 69882, '\p{^Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(1, 69882, '\P{Is_Script_Extensions=SORA_sompeng}', "");
-    Expect(0, 69882, '\P{^Is_Script_Extensions=SORA_sompeng}', "");
-    Error('\p{Is_Scx=/a/-_Sora}');
-    Error('\P{Is_Scx=/a/-_Sora}');
-    Expect(1, 69881, '\p{Is_Scx=sora}', "");
-    Expect(0, 69881, '\p{^Is_Scx=sora}', "");
-    Expect(0, 69881, '\P{Is_Scx=sora}', "");
-    Expect(1, 69881, '\P{^Is_Scx=sora}', "");
-    Expect(0, 69882, '\p{Is_Scx=sora}', "");
-    Expect(1, 69882, '\p{^Is_Scx=sora}', "");
-    Expect(1, 69882, '\P{Is_Scx=sora}', "");
-    Expect(0, 69882, '\P{^Is_Scx=sora}', "");
-    Expect(1, 69881, '\p{Is_Scx=	 SORA}', "");
-    Expect(0, 69881, '\p{^Is_Scx=	 SORA}', "");
-    Expect(0, 69881, '\P{Is_Scx=	 SORA}', "");
-    Expect(1, 69881, '\P{^Is_Scx=	 SORA}', "");
-    Expect(0, 69882, '\p{Is_Scx=	 SORA}', "");
-    Expect(1, 69882, '\p{^Is_Scx=	 SORA}', "");
-    Expect(1, 69882, '\P{Is_Scx=	 SORA}', "");
-    Expect(0, 69882, '\P{^Is_Scx=	 SORA}', "");
-    Error('\p{Script_Extensions=/a/-Soyombo}');
-    Error('\P{Script_Extensions=/a/-Soyombo}');
+    Expect(1, 69881, '\p{Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(0, 69881, '\p{^Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(0, 69881, '\P{Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(1, 69881, '\P{^Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(0, 69882, '\p{Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(1, 69882, '\p{^Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(1, 69882, '\P{Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Expect(0, 69882, '\P{^Is_Script_Extensions=		SORA_SOMPENG}', "");
+    Error('\p{Is_Scx=_sora/a/}');
+    Error('\P{Is_Scx=_sora/a/}');
+    Expect(1, 69881, '\p{Is_Scx:	sora}', "");
+    Expect(0, 69881, '\p{^Is_Scx:	sora}', "");
+    Expect(0, 69881, '\P{Is_Scx:	sora}', "");
+    Expect(1, 69881, '\P{^Is_Scx:	sora}', "");
+    Expect(0, 69882, '\p{Is_Scx:	sora}', "");
+    Expect(1, 69882, '\p{^Is_Scx:	sora}', "");
+    Expect(1, 69882, '\P{Is_Scx:	sora}', "");
+    Expect(0, 69882, '\P{^Is_Scx:	sora}', "");
+    Expect(1, 69881, '\p{Is_Scx=- Sora}', "");
+    Expect(0, 69881, '\p{^Is_Scx=- Sora}', "");
+    Expect(0, 69881, '\P{Is_Scx=- Sora}', "");
+    Expect(1, 69881, '\P{^Is_Scx=- Sora}', "");
+    Expect(0, 69882, '\p{Is_Scx=- Sora}', "");
+    Expect(1, 69882, '\p{^Is_Scx=- Sora}', "");
+    Expect(1, 69882, '\P{Is_Scx=- Sora}', "");
+    Expect(0, 69882, '\P{^Is_Scx=- Sora}', "");
+    Error('\p{Script_Extensions=/a/	-soyombo}');
+    Error('\P{Script_Extensions=/a/	-soyombo}');
     Expect(1, 72354, '\p{Script_Extensions=:\ASoyombo\z:}', "");;
     Expect(0, 72355, '\p{Script_Extensions=:\ASoyombo\z:}', "");;
-    Expect(1, 72354, '\p{Script_Extensions=soyombo}', "");
-    Expect(0, 72354, '\p{^Script_Extensions=soyombo}', "");
-    Expect(0, 72354, '\P{Script_Extensions=soyombo}', "");
-    Expect(1, 72354, '\P{^Script_Extensions=soyombo}', "");
-    Expect(0, 72355, '\p{Script_Extensions=soyombo}', "");
-    Expect(1, 72355, '\p{^Script_Extensions=soyombo}', "");
-    Expect(1, 72355, '\P{Script_Extensions=soyombo}', "");
-    Expect(0, 72355, '\P{^Script_Extensions=soyombo}', "");
+    Expect(1, 72354, '\p{Script_Extensions:	soyombo}', "");
+    Expect(0, 72354, '\p{^Script_Extensions:	soyombo}', "");
+    Expect(0, 72354, '\P{Script_Extensions:	soyombo}', "");
+    Expect(1, 72354, '\P{^Script_Extensions:	soyombo}', "");
+    Expect(0, 72355, '\p{Script_Extensions:	soyombo}', "");
+    Expect(1, 72355, '\p{^Script_Extensions:	soyombo}', "");
+    Expect(1, 72355, '\P{Script_Extensions:	soyombo}', "");
+    Expect(0, 72355, '\P{^Script_Extensions:	soyombo}', "");
     Expect(1, 72354, '\p{Script_Extensions=:\Asoyombo\z:}', "");;
     Expect(0, 72355, '\p{Script_Extensions=:\Asoyombo\z:}', "");;
-    Expect(1, 72354, '\p{Script_Extensions=-Soyombo}', "");
-    Expect(0, 72354, '\p{^Script_Extensions=-Soyombo}', "");
-    Expect(0, 72354, '\P{Script_Extensions=-Soyombo}', "");
-    Expect(1, 72354, '\P{^Script_Extensions=-Soyombo}', "");
-    Expect(0, 72355, '\p{Script_Extensions=-Soyombo}', "");
-    Expect(1, 72355, '\p{^Script_Extensions=-Soyombo}', "");
-    Expect(1, 72355, '\P{Script_Extensions=-Soyombo}', "");
-    Expect(0, 72355, '\P{^Script_Extensions=-Soyombo}', "");
-    Error('\p{Scx:   Soyo:=}');
-    Error('\P{Scx:   Soyo:=}');
+    Expect(1, 72354, '\p{Script_Extensions=	soyombo}', "");
+    Expect(0, 72354, '\p{^Script_Extensions=	soyombo}', "");
+    Expect(0, 72354, '\P{Script_Extensions=	soyombo}', "");
+    Expect(1, 72354, '\P{^Script_Extensions=	soyombo}', "");
+    Expect(0, 72355, '\p{Script_Extensions=	soyombo}', "");
+    Expect(1, 72355, '\p{^Script_Extensions=	soyombo}', "");
+    Expect(1, 72355, '\P{Script_Extensions=	soyombo}', "");
+    Expect(0, 72355, '\P{^Script_Extensions=	soyombo}', "");
+    Error('\p{Scx=/a/_ Soyo}');
+    Error('\P{Scx=/a/_ Soyo}');
     Expect(1, 72354, '\p{Scx=:\ASoyo\z:}', "");;
     Expect(0, 72355, '\p{Scx=:\ASoyo\z:}', "");;
     Expect(1, 72354, '\p{Scx=soyo}', "");
@@ -151763,16 +153227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72355, '\P{^Scx=soyo}', "");
     Expect(1, 72354, '\p{Scx=:\Asoyo\z:}', "");;
     Expect(0, 72355, '\p{Scx=:\Asoyo\z:}', "");;
-    Expect(1, 72354, '\p{Scx= Soyo}', "");
-    Expect(0, 72354, '\p{^Scx= Soyo}', "");
-    Expect(0, 72354, '\P{Scx= Soyo}', "");
-    Expect(1, 72354, '\P{^Scx= Soyo}', "");
-    Expect(0, 72355, '\p{Scx= Soyo}', "");
-    Expect(1, 72355, '\p{^Scx= Soyo}', "");
-    Expect(1, 72355, '\P{Scx= Soyo}', "");
-    Expect(0, 72355, '\P{^Scx= Soyo}', "");
-    Error('\p{Is_Script_Extensions=	soyombo:=}');
-    Error('\P{Is_Script_Extensions=	soyombo:=}');
+    Expect(1, 72354, '\p{Scx=	-Soyo}', "");
+    Expect(0, 72354, '\p{^Scx=	-Soyo}', "");
+    Expect(0, 72354, '\P{Scx=	-Soyo}', "");
+    Expect(1, 72354, '\P{^Scx=	-Soyo}', "");
+    Expect(0, 72355, '\p{Scx=	-Soyo}', "");
+    Expect(1, 72355, '\p{^Scx=	-Soyo}', "");
+    Expect(1, 72355, '\P{Scx=	-Soyo}', "");
+    Expect(0, 72355, '\P{^Scx=	-Soyo}', "");
+    Error('\p{Is_Script_Extensions=/a/ -Soyombo}');
+    Error('\P{Is_Script_Extensions=/a/ -Soyombo}');
     Expect(1, 72354, '\p{Is_Script_Extensions=soyombo}', "");
     Expect(0, 72354, '\p{^Is_Script_Extensions=soyombo}', "");
     Expect(0, 72354, '\P{Is_Script_Extensions=soyombo}', "");
@@ -151781,56 +153245,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72355, '\p{^Is_Script_Extensions=soyombo}', "");
     Expect(1, 72355, '\P{Is_Script_Extensions=soyombo}', "");
     Expect(0, 72355, '\P{^Is_Script_Extensions=soyombo}', "");
-    Expect(1, 72354, '\p{Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(0, 72354, '\p{^Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(0, 72354, '\P{Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(1, 72354, '\P{^Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(0, 72355, '\p{Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(1, 72355, '\p{^Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(1, 72355, '\P{Is_Script_Extensions=	SOYOMBO}', "");
-    Expect(0, 72355, '\P{^Is_Script_Extensions=	SOYOMBO}', "");
-    Error('\p{Is_Scx=-/a/soyo}');
-    Error('\P{Is_Scx=-/a/soyo}');
-    Expect(1, 72354, '\p{Is_Scx=soyo}', "");
-    Expect(0, 72354, '\p{^Is_Scx=soyo}', "");
-    Expect(0, 72354, '\P{Is_Scx=soyo}', "");
-    Expect(1, 72354, '\P{^Is_Scx=soyo}', "");
-    Expect(0, 72355, '\p{Is_Scx=soyo}', "");
-    Expect(1, 72355, '\p{^Is_Scx=soyo}', "");
-    Expect(1, 72355, '\P{Is_Scx=soyo}', "");
-    Expect(0, 72355, '\P{^Is_Scx=soyo}', "");
-    Expect(1, 72354, '\p{Is_Scx=__SOYO}', "");
-    Expect(0, 72354, '\p{^Is_Scx=__SOYO}', "");
-    Expect(0, 72354, '\P{Is_Scx=__SOYO}', "");
-    Expect(1, 72354, '\P{^Is_Scx=__SOYO}', "");
-    Expect(0, 72355, '\p{Is_Scx=__SOYO}', "");
-    Expect(1, 72355, '\p{^Is_Scx=__SOYO}', "");
-    Expect(1, 72355, '\P{Is_Scx=__SOYO}', "");
-    Expect(0, 72355, '\P{^Is_Scx=__SOYO}', "");
-    Error('\p{Script_Extensions=--SUNDANESE/a/}');
-    Error('\P{Script_Extensions=--SUNDANESE/a/}');
+    Expect(1, 72354, '\p{Is_Script_Extensions=		soyombo}', "");
+    Expect(0, 72354, '\p{^Is_Script_Extensions=		soyombo}', "");
+    Expect(0, 72354, '\P{Is_Script_Extensions=		soyombo}', "");
+    Expect(1, 72354, '\P{^Is_Script_Extensions=		soyombo}', "");
+    Expect(0, 72355, '\p{Is_Script_Extensions=		soyombo}', "");
+    Expect(1, 72355, '\p{^Is_Script_Extensions=		soyombo}', "");
+    Expect(1, 72355, '\P{Is_Script_Extensions=		soyombo}', "");
+    Expect(0, 72355, '\P{^Is_Script_Extensions=		soyombo}', "");
+    Error('\p{Is_Scx:	 /a/SOYO}');
+    Error('\P{Is_Scx:	 /a/SOYO}');
+    Expect(1, 72354, '\p{Is_Scx:	soyo}', "");
+    Expect(0, 72354, '\p{^Is_Scx:	soyo}', "");
+    Expect(0, 72354, '\P{Is_Scx:	soyo}', "");
+    Expect(1, 72354, '\P{^Is_Scx:	soyo}', "");
+    Expect(0, 72355, '\p{Is_Scx:	soyo}', "");
+    Expect(1, 72355, '\p{^Is_Scx:	soyo}', "");
+    Expect(1, 72355, '\P{Is_Scx:	soyo}', "");
+    Expect(0, 72355, '\P{^Is_Scx:	soyo}', "");
+    Expect(1, 72354, '\p{Is_Scx:	-Soyo}', "");
+    Expect(0, 72354, '\p{^Is_Scx:	-Soyo}', "");
+    Expect(0, 72354, '\P{Is_Scx:	-Soyo}', "");
+    Expect(1, 72354, '\P{^Is_Scx:	-Soyo}', "");
+    Expect(0, 72355, '\p{Is_Scx:	-Soyo}', "");
+    Expect(1, 72355, '\p{^Is_Scx:	-Soyo}', "");
+    Expect(1, 72355, '\P{Is_Scx:	-Soyo}', "");
+    Expect(0, 72355, '\P{^Is_Scx:	-Soyo}', "");
+    Error('\p{Script_Extensions=/a/Sundanese}');
+    Error('\P{Script_Extensions=/a/Sundanese}');
     Expect(1, 7367, '\p{Script_Extensions=:\ASundanese\z:}', "");;
     Expect(0, 7368, '\p{Script_Extensions=:\ASundanese\z:}', "");;
-    Expect(1, 7367, '\p{Script_Extensions:sundanese}', "");
-    Expect(0, 7367, '\p{^Script_Extensions:sundanese}', "");
-    Expect(0, 7367, '\P{Script_Extensions:sundanese}', "");
-    Expect(1, 7367, '\P{^Script_Extensions:sundanese}', "");
-    Expect(0, 7368, '\p{Script_Extensions:sundanese}', "");
-    Expect(1, 7368, '\p{^Script_Extensions:sundanese}', "");
-    Expect(1, 7368, '\P{Script_Extensions:sundanese}', "");
-    Expect(0, 7368, '\P{^Script_Extensions:sundanese}', "");
+    Expect(1, 7367, '\p{Script_Extensions=sundanese}', "");
+    Expect(0, 7367, '\p{^Script_Extensions=sundanese}', "");
+    Expect(0, 7367, '\P{Script_Extensions=sundanese}', "");
+    Expect(1, 7367, '\P{^Script_Extensions=sundanese}', "");
+    Expect(0, 7368, '\p{Script_Extensions=sundanese}', "");
+    Expect(1, 7368, '\p{^Script_Extensions=sundanese}', "");
+    Expect(1, 7368, '\P{Script_Extensions=sundanese}', "");
+    Expect(0, 7368, '\P{^Script_Extensions=sundanese}', "");
     Expect(1, 7367, '\p{Script_Extensions=:\Asundanese\z:}', "");;
     Expect(0, 7368, '\p{Script_Extensions=:\Asundanese\z:}', "");;
-    Expect(1, 7367, '\p{Script_Extensions=_sundanese}', "");
-    Expect(0, 7367, '\p{^Script_Extensions=_sundanese}', "");
-    Expect(0, 7367, '\P{Script_Extensions=_sundanese}', "");
-    Expect(1, 7367, '\P{^Script_Extensions=_sundanese}', "");
-    Expect(0, 7368, '\p{Script_Extensions=_sundanese}', "");
-    Expect(1, 7368, '\p{^Script_Extensions=_sundanese}', "");
-    Expect(1, 7368, '\P{Script_Extensions=_sundanese}', "");
-    Expect(0, 7368, '\P{^Script_Extensions=_sundanese}', "");
-    Error('\p{Scx=_SUND/a/}');
-    Error('\P{Scx=_SUND/a/}');
+    Expect(1, 7367, '\p{Script_Extensions=	-Sundanese}', "");
+    Expect(0, 7367, '\p{^Script_Extensions=	-Sundanese}', "");
+    Expect(0, 7367, '\P{Script_Extensions=	-Sundanese}', "");
+    Expect(1, 7367, '\P{^Script_Extensions=	-Sundanese}', "");
+    Expect(0, 7368, '\p{Script_Extensions=	-Sundanese}', "");
+    Expect(1, 7368, '\p{^Script_Extensions=	-Sundanese}', "");
+    Expect(1, 7368, '\P{Script_Extensions=	-Sundanese}', "");
+    Expect(0, 7368, '\P{^Script_Extensions=	-Sundanese}', "");
+    Error('\p{Scx=:=	sund}');
+    Error('\P{Scx=:=	sund}');
     Expect(1, 7367, '\p{Scx=:\ASund\z:}', "");;
     Expect(0, 7368, '\p{Scx=:\ASund\z:}', "");;
     Expect(1, 7367, '\p{Scx=sund}', "");
@@ -151843,16 +153307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7368, '\P{^Scx=sund}', "");
     Expect(1, 7367, '\p{Scx=:\Asund\z:}', "");;
     Expect(0, 7368, '\p{Scx=:\Asund\z:}', "");;
-    Expect(1, 7367, '\p{Scx=	sund}', "");
-    Expect(0, 7367, '\p{^Scx=	sund}', "");
-    Expect(0, 7367, '\P{Scx=	sund}', "");
-    Expect(1, 7367, '\P{^Scx=	sund}', "");
-    Expect(0, 7368, '\p{Scx=	sund}', "");
-    Expect(1, 7368, '\p{^Scx=	sund}', "");
-    Expect(1, 7368, '\P{Scx=	sund}', "");
-    Expect(0, 7368, '\P{^Scx=	sund}', "");
-    Error('\p{Is_Script_Extensions=:=-sundanese}');
-    Error('\P{Is_Script_Extensions=:=-sundanese}');
+    Expect(1, 7367, '\p{Scx:		-sund}', "");
+    Expect(0, 7367, '\p{^Scx:		-sund}', "");
+    Expect(0, 7367, '\P{Scx:		-sund}', "");
+    Expect(1, 7367, '\P{^Scx:		-sund}', "");
+    Expect(0, 7368, '\p{Scx:		-sund}', "");
+    Expect(1, 7368, '\p{^Scx:		-sund}', "");
+    Expect(1, 7368, '\P{Scx:		-sund}', "");
+    Expect(0, 7368, '\P{^Scx:		-sund}', "");
+    Error('\p{Is_Script_Extensions= -sundanese/a/}');
+    Error('\P{Is_Script_Extensions= -sundanese/a/}');
     Expect(1, 7367, '\p{Is_Script_Extensions=sundanese}', "");
     Expect(0, 7367, '\p{^Is_Script_Extensions=sundanese}', "");
     Expect(0, 7367, '\P{Is_Script_Extensions=sundanese}', "");
@@ -151861,16 +153325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^Is_Script_Extensions=sundanese}', "");
     Expect(1, 7368, '\P{Is_Script_Extensions=sundanese}', "");
     Expect(0, 7368, '\P{^Is_Script_Extensions=sundanese}', "");
-    Expect(1, 7367, '\p{Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(0, 7367, '\p{^Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(0, 7367, '\P{Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(1, 7367, '\P{^Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(0, 7368, '\p{Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(1, 7368, '\p{^Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(1, 7368, '\P{Is_Script_Extensions=  SUNDANESE}', "");
-    Expect(0, 7368, '\P{^Is_Script_Extensions=  SUNDANESE}', "");
-    Error('\p{Is_Scx= /a/sund}');
-    Error('\P{Is_Scx= /a/sund}');
+    Expect(1, 7367, '\p{Is_Script_Extensions= Sundanese}', "");
+    Expect(0, 7367, '\p{^Is_Script_Extensions= Sundanese}', "");
+    Expect(0, 7367, '\P{Is_Script_Extensions= Sundanese}', "");
+    Expect(1, 7367, '\P{^Is_Script_Extensions= Sundanese}', "");
+    Expect(0, 7368, '\p{Is_Script_Extensions= Sundanese}', "");
+    Expect(1, 7368, '\p{^Is_Script_Extensions= Sundanese}', "");
+    Expect(1, 7368, '\P{Is_Script_Extensions= Sundanese}', "");
+    Expect(0, 7368, '\P{^Is_Script_Extensions= Sundanese}', "");
+    Error('\p{Is_Scx=_:=Sund}');
+    Error('\P{Is_Scx=_:=Sund}');
     Expect(1, 7367, '\p{Is_Scx=sund}', "");
     Expect(0, 7367, '\p{^Is_Scx=sund}', "");
     Expect(0, 7367, '\P{Is_Scx=sund}', "");
@@ -151879,16 +153343,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7368, '\p{^Is_Scx=sund}', "");
     Expect(1, 7368, '\P{Is_Scx=sund}', "");
     Expect(0, 7368, '\P{^Is_Scx=sund}', "");
-    Expect(1, 7367, '\p{Is_Scx: 	SUND}', "");
-    Expect(0, 7367, '\p{^Is_Scx: 	SUND}', "");
-    Expect(0, 7367, '\P{Is_Scx: 	SUND}', "");
-    Expect(1, 7367, '\P{^Is_Scx: 	SUND}', "");
-    Expect(0, 7368, '\p{Is_Scx: 	SUND}', "");
-    Expect(1, 7368, '\p{^Is_Scx: 	SUND}', "");
-    Expect(1, 7368, '\P{Is_Scx: 	SUND}', "");
-    Expect(0, 7368, '\P{^Is_Scx: 	SUND}', "");
-    Error('\p{Script_Extensions=	_Syloti_Nagri:=}');
-    Error('\P{Script_Extensions=	_Syloti_Nagri:=}');
+    Expect(1, 7367, '\p{Is_Scx= Sund}', "");
+    Expect(0, 7367, '\p{^Is_Scx= Sund}', "");
+    Expect(0, 7367, '\P{Is_Scx= Sund}', "");
+    Expect(1, 7367, '\P{^Is_Scx= Sund}', "");
+    Expect(0, 7368, '\p{Is_Scx= Sund}', "");
+    Expect(1, 7368, '\p{^Is_Scx= Sund}', "");
+    Expect(1, 7368, '\P{Is_Scx= Sund}', "");
+    Expect(0, 7368, '\P{^Is_Scx= Sund}', "");
+    Error('\p{Script_Extensions=-:=SYLOTI_nagri}');
+    Error('\P{Script_Extensions=-:=SYLOTI_nagri}');
     Expect(1, 43052, '\p{Script_Extensions=:\ASyloti_Nagri\z:}', "");;
     Expect(0, 43053, '\p{Script_Extensions=:\ASyloti_Nagri\z:}', "");;
     Expect(1, 43052, '\p{Script_Extensions=sylotinagri}', "");
@@ -151901,74 +153365,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43053, '\P{^Script_Extensions=sylotinagri}', "");
     Expect(1, 43052, '\p{Script_Extensions=:\Asylotinagri\z:}', "");;
     Expect(0, 43053, '\p{Script_Extensions=:\Asylotinagri\z:}', "");;
-    Expect(1, 43052, '\p{Script_Extensions= Syloti_nagri}', "");
-    Expect(0, 43052, '\p{^Script_Extensions= Syloti_nagri}', "");
-    Expect(0, 43052, '\P{Script_Extensions= Syloti_nagri}', "");
-    Expect(1, 43052, '\P{^Script_Extensions= Syloti_nagri}', "");
-    Expect(0, 43053, '\p{Script_Extensions= Syloti_nagri}', "");
-    Expect(1, 43053, '\p{^Script_Extensions= Syloti_nagri}', "");
-    Expect(1, 43053, '\P{Script_Extensions= Syloti_nagri}', "");
-    Expect(0, 43053, '\P{^Script_Extensions= Syloti_nagri}', "");
-    Error('\p{Scx=_	Sylo:=}');
-    Error('\P{Scx=_	Sylo:=}');
+    Expect(1, 43052, '\p{Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(0, 43052, '\p{^Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(0, 43052, '\P{Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(1, 43052, '\P{^Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(0, 43053, '\p{Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(1, 43053, '\p{^Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(1, 43053, '\P{Script_Extensions:   -	Syloti_Nagri}', "");
+    Expect(0, 43053, '\P{^Script_Extensions:   -	Syloti_Nagri}', "");
+    Error('\p{Scx= /a/SYLO}');
+    Error('\P{Scx= /a/SYLO}');
     Expect(1, 43052, '\p{Scx=:\ASylo\z:}', "");;
     Expect(0, 43053, '\p{Scx=:\ASylo\z:}', "");;
-    Expect(1, 43052, '\p{Scx=sylo}', "");
-    Expect(0, 43052, '\p{^Scx=sylo}', "");
-    Expect(0, 43052, '\P{Scx=sylo}', "");
-    Expect(1, 43052, '\P{^Scx=sylo}', "");
-    Expect(0, 43053, '\p{Scx=sylo}', "");
-    Expect(1, 43053, '\p{^Scx=sylo}', "");
-    Expect(1, 43053, '\P{Scx=sylo}', "");
-    Expect(0, 43053, '\P{^Scx=sylo}', "");
+    Expect(1, 43052, '\p{Scx:	sylo}', "");
+    Expect(0, 43052, '\p{^Scx:	sylo}', "");
+    Expect(0, 43052, '\P{Scx:	sylo}', "");
+    Expect(1, 43052, '\P{^Scx:	sylo}', "");
+    Expect(0, 43053, '\p{Scx:	sylo}', "");
+    Expect(1, 43053, '\p{^Scx:	sylo}', "");
+    Expect(1, 43053, '\P{Scx:	sylo}', "");
+    Expect(0, 43053, '\P{^Scx:	sylo}', "");
     Expect(1, 43052, '\p{Scx=:\Asylo\z:}', "");;
     Expect(0, 43053, '\p{Scx=:\Asylo\z:}', "");;
-    Expect(1, 43052, '\p{Scx= Sylo}', "");
-    Expect(0, 43052, '\p{^Scx= Sylo}', "");
-    Expect(0, 43052, '\P{Scx= Sylo}', "");
-    Expect(1, 43052, '\P{^Scx= Sylo}', "");
-    Expect(0, 43053, '\p{Scx= Sylo}', "");
-    Expect(1, 43053, '\p{^Scx= Sylo}', "");
-    Expect(1, 43053, '\P{Scx= Sylo}', "");
-    Expect(0, 43053, '\P{^Scx= Sylo}', "");
-    Error('\p{Is_Script_Extensions=:=SYLOTI_Nagri}');
-    Error('\P{Is_Script_Extensions=:=SYLOTI_Nagri}');
-    Expect(1, 43052, '\p{Is_Script_Extensions: sylotinagri}', "");
-    Expect(0, 43052, '\p{^Is_Script_Extensions: sylotinagri}', "");
-    Expect(0, 43052, '\P{Is_Script_Extensions: sylotinagri}', "");
-    Expect(1, 43052, '\P{^Is_Script_Extensions: sylotinagri}', "");
-    Expect(0, 43053, '\p{Is_Script_Extensions: sylotinagri}', "");
-    Expect(1, 43053, '\p{^Is_Script_Extensions: sylotinagri}', "");
-    Expect(1, 43053, '\P{Is_Script_Extensions: sylotinagri}', "");
-    Expect(0, 43053, '\P{^Is_Script_Extensions: sylotinagri}', "");
-    Expect(1, 43052, '\p{Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(0, 43052, '\p{^Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(0, 43052, '\P{Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(1, 43052, '\P{^Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(0, 43053, '\p{Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(1, 43053, '\p{^Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(1, 43053, '\P{Is_Script_Extensions=	Syloti_Nagri}', "");
-    Expect(0, 43053, '\P{^Is_Script_Extensions=	Syloti_Nagri}', "");
-    Error('\p{Is_Scx=_:=Sylo}');
-    Error('\P{Is_Scx=_:=Sylo}');
-    Expect(1, 43052, '\p{Is_Scx:	sylo}', "");
-    Expect(0, 43052, '\p{^Is_Scx:	sylo}', "");
-    Expect(0, 43052, '\P{Is_Scx:	sylo}', "");
-    Expect(1, 43052, '\P{^Is_Scx:	sylo}', "");
-    Expect(0, 43053, '\p{Is_Scx:	sylo}', "");
-    Expect(1, 43053, '\p{^Is_Scx:	sylo}', "");
-    Expect(1, 43053, '\P{Is_Scx:	sylo}', "");
-    Expect(0, 43053, '\P{^Is_Scx:	sylo}', "");
-    Expect(1, 43052, '\p{Is_Scx=-_SYLO}', "");
-    Expect(0, 43052, '\p{^Is_Scx=-_SYLO}', "");
-    Expect(0, 43052, '\P{Is_Scx=-_SYLO}', "");
-    Expect(1, 43052, '\P{^Is_Scx=-_SYLO}', "");
-    Expect(0, 43053, '\p{Is_Scx=-_SYLO}', "");
-    Expect(1, 43053, '\p{^Is_Scx=-_SYLO}', "");
-    Expect(1, 43053, '\P{Is_Scx=-_SYLO}', "");
-    Expect(0, 43053, '\P{^Is_Scx=-_SYLO}', "");
-    Error('\p{Script_Extensions=/a/ 	Syriac}');
-    Error('\P{Script_Extensions=/a/ 	Syriac}');
+    Expect(1, 43052, '\p{Scx=__Sylo}', "");
+    Expect(0, 43052, '\p{^Scx=__Sylo}', "");
+    Expect(0, 43052, '\P{Scx=__Sylo}', "");
+    Expect(1, 43052, '\P{^Scx=__Sylo}', "");
+    Expect(0, 43053, '\p{Scx=__Sylo}', "");
+    Expect(1, 43053, '\p{^Scx=__Sylo}', "");
+    Expect(1, 43053, '\P{Scx=__Sylo}', "");
+    Expect(0, 43053, '\P{^Scx=__Sylo}', "");
+    Error('\p{Is_Script_Extensions=	syloti_NAGRI/a/}');
+    Error('\P{Is_Script_Extensions=	syloti_NAGRI/a/}');
+    Expect(1, 43052, '\p{Is_Script_Extensions=sylotinagri}', "");
+    Expect(0, 43052, '\p{^Is_Script_Extensions=sylotinagri}', "");
+    Expect(0, 43052, '\P{Is_Script_Extensions=sylotinagri}', "");
+    Expect(1, 43052, '\P{^Is_Script_Extensions=sylotinagri}', "");
+    Expect(0, 43053, '\p{Is_Script_Extensions=sylotinagri}', "");
+    Expect(1, 43053, '\p{^Is_Script_Extensions=sylotinagri}', "");
+    Expect(1, 43053, '\P{Is_Script_Extensions=sylotinagri}', "");
+    Expect(0, 43053, '\P{^Is_Script_Extensions=sylotinagri}', "");
+    Expect(1, 43052, '\p{Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(0, 43052, '\p{^Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(0, 43052, '\P{Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(1, 43052, '\P{^Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(0, 43053, '\p{Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(1, 43053, '\p{^Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(1, 43053, '\P{Is_Script_Extensions= Syloti_Nagri}', "");
+    Expect(0, 43053, '\P{^Is_Script_Extensions= Syloti_Nagri}', "");
+    Error('\p{Is_Scx=/a/ Sylo}');
+    Error('\P{Is_Scx=/a/ Sylo}');
+    Expect(1, 43052, '\p{Is_Scx=sylo}', "");
+    Expect(0, 43052, '\p{^Is_Scx=sylo}', "");
+    Expect(0, 43052, '\P{Is_Scx=sylo}', "");
+    Expect(1, 43052, '\P{^Is_Scx=sylo}', "");
+    Expect(0, 43053, '\p{Is_Scx=sylo}', "");
+    Expect(1, 43053, '\p{^Is_Scx=sylo}', "");
+    Expect(1, 43053, '\P{Is_Scx=sylo}', "");
+    Expect(0, 43053, '\P{^Is_Scx=sylo}', "");
+    Expect(1, 43052, '\p{Is_Scx:_sylo}', "");
+    Expect(0, 43052, '\p{^Is_Scx:_sylo}', "");
+    Expect(0, 43052, '\P{Is_Scx:_sylo}', "");
+    Expect(1, 43052, '\P{^Is_Scx:_sylo}', "");
+    Expect(0, 43053, '\p{Is_Scx:_sylo}', "");
+    Expect(1, 43053, '\p{^Is_Scx:_sylo}', "");
+    Expect(1, 43053, '\P{Is_Scx:_sylo}', "");
+    Expect(0, 43053, '\P{^Is_Scx:_sylo}', "");
+    Error('\p{Script_Extensions=-Syriac/a/}');
+    Error('\P{Script_Extensions=-Syriac/a/}');
     Expect(1, 7674, '\p{Script_Extensions=:\ASyriac\z:}', "");;
     Expect(0, 7675, '\p{Script_Extensions=:\ASyriac\z:}', "");;
     Expect(1, 7674, '\p{Script_Extensions=syriac}', "");
@@ -151981,16 +153445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7675, '\P{^Script_Extensions=syriac}', "");
     Expect(1, 7674, '\p{Script_Extensions=:\Asyriac\z:}', "");;
     Expect(0, 7675, '\p{Script_Extensions=:\Asyriac\z:}', "");;
-    Expect(1, 7674, '\p{Script_Extensions= 	Syriac}', "");
-    Expect(0, 7674, '\p{^Script_Extensions= 	Syriac}', "");
-    Expect(0, 7674, '\P{Script_Extensions= 	Syriac}', "");
-    Expect(1, 7674, '\P{^Script_Extensions= 	Syriac}', "");
-    Expect(0, 7675, '\p{Script_Extensions= 	Syriac}', "");
-    Expect(1, 7675, '\p{^Script_Extensions= 	Syriac}', "");
-    Expect(1, 7675, '\P{Script_Extensions= 	Syriac}', "");
-    Expect(0, 7675, '\P{^Script_Extensions= 	Syriac}', "");
-    Error('\p{Scx=/a/--Syrc}');
-    Error('\P{Scx=/a/--Syrc}');
+    Expect(1, 7674, '\p{Script_Extensions=__Syriac}', "");
+    Expect(0, 7674, '\p{^Script_Extensions=__Syriac}', "");
+    Expect(0, 7674, '\P{Script_Extensions=__Syriac}', "");
+    Expect(1, 7674, '\P{^Script_Extensions=__Syriac}', "");
+    Expect(0, 7675, '\p{Script_Extensions=__Syriac}', "");
+    Expect(1, 7675, '\p{^Script_Extensions=__Syriac}', "");
+    Expect(1, 7675, '\P{Script_Extensions=__Syriac}', "");
+    Expect(0, 7675, '\P{^Script_Extensions=__Syriac}', "");
+    Error('\p{Scx=/a/	-SYRC}');
+    Error('\P{Scx=/a/	-SYRC}');
     Expect(1, 7674, '\p{Scx=:\ASyrc\z:}', "");;
     Expect(0, 7675, '\p{Scx=:\ASyrc\z:}', "");;
     Expect(1, 7674, '\p{Scx=syrc}', "");
@@ -152003,16 +153467,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7675, '\P{^Scx=syrc}', "");
     Expect(1, 7674, '\p{Scx=:\Asyrc\z:}', "");;
     Expect(0, 7675, '\p{Scx=:\Asyrc\z:}', "");;
-    Expect(1, 7674, '\p{Scx=	Syrc}', "");
-    Expect(0, 7674, '\p{^Scx=	Syrc}', "");
-    Expect(0, 7674, '\P{Scx=	Syrc}', "");
-    Expect(1, 7674, '\P{^Scx=	Syrc}', "");
-    Expect(0, 7675, '\p{Scx=	Syrc}', "");
-    Expect(1, 7675, '\p{^Scx=	Syrc}', "");
-    Expect(1, 7675, '\P{Scx=	Syrc}', "");
-    Expect(0, 7675, '\P{^Scx=	Syrc}', "");
-    Error('\p{Is_Script_Extensions=:=- syriac}');
-    Error('\P{Is_Script_Extensions=:=- syriac}');
+    Expect(1, 7674, '\p{Scx=-syrc}', "");
+    Expect(0, 7674, '\p{^Scx=-syrc}', "");
+    Expect(0, 7674, '\P{Scx=-syrc}', "");
+    Expect(1, 7674, '\P{^Scx=-syrc}', "");
+    Expect(0, 7675, '\p{Scx=-syrc}', "");
+    Expect(1, 7675, '\p{^Scx=-syrc}', "");
+    Expect(1, 7675, '\P{Scx=-syrc}', "");
+    Expect(0, 7675, '\P{^Scx=-syrc}', "");
+    Error('\p{Is_Script_Extensions=/a/Syriac}');
+    Error('\P{Is_Script_Extensions=/a/Syriac}');
     Expect(1, 7674, '\p{Is_Script_Extensions=syriac}', "");
     Expect(0, 7674, '\p{^Is_Script_Extensions=syriac}', "");
     Expect(0, 7674, '\P{Is_Script_Extensions=syriac}', "");
@@ -152021,16 +153485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7675, '\p{^Is_Script_Extensions=syriac}', "");
     Expect(1, 7675, '\P{Is_Script_Extensions=syriac}', "");
     Expect(0, 7675, '\P{^Is_Script_Extensions=syriac}', "");
-    Expect(1, 7674, '\p{Is_Script_Extensions= -SYRIAC}', "");
-    Expect(0, 7674, '\p{^Is_Script_Extensions= -SYRIAC}', "");
-    Expect(0, 7674, '\P{Is_Script_Extensions= -SYRIAC}', "");
-    Expect(1, 7674, '\P{^Is_Script_Extensions= -SYRIAC}', "");
-    Expect(0, 7675, '\p{Is_Script_Extensions= -SYRIAC}', "");
-    Expect(1, 7675, '\p{^Is_Script_Extensions= -SYRIAC}', "");
-    Expect(1, 7675, '\P{Is_Script_Extensions= -SYRIAC}', "");
-    Expect(0, 7675, '\P{^Is_Script_Extensions= -SYRIAC}', "");
-    Error('\p{Is_Scx::=-syrc}');
-    Error('\P{Is_Scx::=-syrc}');
+    Expect(1, 7674, '\p{Is_Script_Extensions=- Syriac}', "");
+    Expect(0, 7674, '\p{^Is_Script_Extensions=- Syriac}', "");
+    Expect(0, 7674, '\P{Is_Script_Extensions=- Syriac}', "");
+    Expect(1, 7674, '\P{^Is_Script_Extensions=- Syriac}', "");
+    Expect(0, 7675, '\p{Is_Script_Extensions=- Syriac}', "");
+    Expect(1, 7675, '\p{^Is_Script_Extensions=- Syriac}', "");
+    Expect(1, 7675, '\P{Is_Script_Extensions=- Syriac}', "");
+    Expect(0, 7675, '\P{^Is_Script_Extensions=- Syriac}', "");
+    Error('\p{Is_Scx=:=Syrc}');
+    Error('\P{Is_Scx=:=Syrc}');
     Expect(1, 7674, '\p{Is_Scx=syrc}', "");
     Expect(0, 7674, '\p{^Is_Scx=syrc}', "");
     Expect(0, 7674, '\P{Is_Scx=syrc}', "");
@@ -152039,16 +153503,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7675, '\p{^Is_Scx=syrc}', "");
     Expect(1, 7675, '\P{Is_Scx=syrc}', "");
     Expect(0, 7675, '\P{^Is_Scx=syrc}', "");
-    Expect(1, 7674, '\p{Is_Scx=		SYRC}', "");
-    Expect(0, 7674, '\p{^Is_Scx=		SYRC}', "");
-    Expect(0, 7674, '\P{Is_Scx=		SYRC}', "");
-    Expect(1, 7674, '\P{^Is_Scx=		SYRC}', "");
-    Expect(0, 7675, '\p{Is_Scx=		SYRC}', "");
-    Expect(1, 7675, '\p{^Is_Scx=		SYRC}', "");
-    Expect(1, 7675, '\P{Is_Scx=		SYRC}', "");
-    Expect(0, 7675, '\P{^Is_Scx=		SYRC}', "");
-    Error('\p{Script_Extensions: /a/_ TAGBANWA}');
-    Error('\P{Script_Extensions: /a/_ TAGBANWA}');
+    Expect(1, 7674, '\p{Is_Scx=SYRC}', "");
+    Expect(0, 7674, '\p{^Is_Scx=SYRC}', "");
+    Expect(0, 7674, '\P{Is_Scx=SYRC}', "");
+    Expect(1, 7674, '\P{^Is_Scx=SYRC}', "");
+    Expect(0, 7675, '\p{Is_Scx=SYRC}', "");
+    Expect(1, 7675, '\p{^Is_Scx=SYRC}', "");
+    Expect(1, 7675, '\P{Is_Scx=SYRC}', "");
+    Expect(0, 7675, '\P{^Is_Scx=SYRC}', "");
+    Error('\p{Script_Extensions=_Tagbanwa/a/}');
+    Error('\P{Script_Extensions=_Tagbanwa/a/}');
     Expect(1, 6003, '\p{Script_Extensions=:\ATagbanwa\z:}', "");;
     Expect(0, 6004, '\p{Script_Extensions=:\ATagbanwa\z:}', "");;
     Expect(1, 6003, '\p{Script_Extensions=tagbanwa}', "");
@@ -152061,16 +153525,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6004, '\P{^Script_Extensions=tagbanwa}', "");
     Expect(1, 6003, '\p{Script_Extensions=:\Atagbanwa\z:}', "");;
     Expect(0, 6004, '\p{Script_Extensions=:\Atagbanwa\z:}', "");;
-    Expect(1, 6003, '\p{Script_Extensions=__tagbanwa}', "");
-    Expect(0, 6003, '\p{^Script_Extensions=__tagbanwa}', "");
-    Expect(0, 6003, '\P{Script_Extensions=__tagbanwa}', "");
-    Expect(1, 6003, '\P{^Script_Extensions=__tagbanwa}', "");
-    Expect(0, 6004, '\p{Script_Extensions=__tagbanwa}', "");
-    Expect(1, 6004, '\p{^Script_Extensions=__tagbanwa}', "");
-    Expect(1, 6004, '\P{Script_Extensions=__tagbanwa}', "");
-    Expect(0, 6004, '\P{^Script_Extensions=__tagbanwa}', "");
-    Error('\p{Scx=/a/		Tagb}');
-    Error('\P{Scx=/a/		Tagb}');
+    Expect(1, 6003, '\p{Script_Extensions=-	TAGBANWA}', "");
+    Expect(0, 6003, '\p{^Script_Extensions=-	TAGBANWA}', "");
+    Expect(0, 6003, '\P{Script_Extensions=-	TAGBANWA}', "");
+    Expect(1, 6003, '\P{^Script_Extensions=-	TAGBANWA}', "");
+    Expect(0, 6004, '\p{Script_Extensions=-	TAGBANWA}', "");
+    Expect(1, 6004, '\p{^Script_Extensions=-	TAGBANWA}', "");
+    Expect(1, 6004, '\P{Script_Extensions=-	TAGBANWA}', "");
+    Expect(0, 6004, '\P{^Script_Extensions=-	TAGBANWA}', "");
+    Error('\p{Scx=-	tagb:=}');
+    Error('\P{Scx=-	tagb:=}');
     Expect(1, 6003, '\p{Scx=:\ATagb\z:}', "");;
     Expect(0, 6004, '\p{Scx=:\ATagb\z:}', "");;
     Expect(1, 6003, '\p{Scx=tagb}', "");
@@ -152083,16 +153547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6004, '\P{^Scx=tagb}', "");
     Expect(1, 6003, '\p{Scx=:\Atagb\z:}', "");;
     Expect(0, 6004, '\p{Scx=:\Atagb\z:}', "");;
-    Expect(1, 6003, '\p{Scx=	Tagb}', "");
-    Expect(0, 6003, '\p{^Scx=	Tagb}', "");
-    Expect(0, 6003, '\P{Scx=	Tagb}', "");
-    Expect(1, 6003, '\P{^Scx=	Tagb}', "");
-    Expect(0, 6004, '\p{Scx=	Tagb}', "");
-    Expect(1, 6004, '\p{^Scx=	Tagb}', "");
-    Expect(1, 6004, '\P{Scx=	Tagb}', "");
-    Expect(0, 6004, '\P{^Scx=	Tagb}', "");
-    Error('\p{Is_Script_Extensions= :=Tagbanwa}');
-    Error('\P{Is_Script_Extensions= :=Tagbanwa}');
+    Expect(1, 6003, '\p{Scx=-	Tagb}', "");
+    Expect(0, 6003, '\p{^Scx=-	Tagb}', "");
+    Expect(0, 6003, '\P{Scx=-	Tagb}', "");
+    Expect(1, 6003, '\P{^Scx=-	Tagb}', "");
+    Expect(0, 6004, '\p{Scx=-	Tagb}', "");
+    Expect(1, 6004, '\p{^Scx=-	Tagb}', "");
+    Expect(1, 6004, '\P{Scx=-	Tagb}', "");
+    Expect(0, 6004, '\P{^Scx=-	Tagb}', "");
+    Error('\p{Is_Script_Extensions=_-Tagbanwa:=}');
+    Error('\P{Is_Script_Extensions=_-Tagbanwa:=}');
     Expect(1, 6003, '\p{Is_Script_Extensions=tagbanwa}', "");
     Expect(0, 6003, '\p{^Is_Script_Extensions=tagbanwa}', "");
     Expect(0, 6003, '\P{Is_Script_Extensions=tagbanwa}', "");
@@ -152101,16 +153565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^Is_Script_Extensions=tagbanwa}', "");
     Expect(1, 6004, '\P{Is_Script_Extensions=tagbanwa}', "");
     Expect(0, 6004, '\P{^Is_Script_Extensions=tagbanwa}', "");
-    Expect(1, 6003, '\p{Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(0, 6003, '\p{^Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(0, 6003, '\P{Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(1, 6003, '\P{^Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(0, 6004, '\p{Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(1, 6004, '\p{^Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(1, 6004, '\P{Is_Script_Extensions:		_Tagbanwa}', "");
-    Expect(0, 6004, '\P{^Is_Script_Extensions:		_Tagbanwa}', "");
-    Error('\p{Is_Scx=_-tagb:=}');
-    Error('\P{Is_Scx=_-tagb:=}');
+    Expect(1, 6003, '\p{Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(0, 6003, '\p{^Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(0, 6003, '\P{Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(1, 6003, '\P{^Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(0, 6004, '\p{Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(1, 6004, '\p{^Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(1, 6004, '\P{Is_Script_Extensions=_-TAGBANWA}', "");
+    Expect(0, 6004, '\P{^Is_Script_Extensions=_-TAGBANWA}', "");
+    Error('\p{Is_Scx= :=Tagb}');
+    Error('\P{Is_Scx= :=Tagb}');
     Expect(1, 6003, '\p{Is_Scx=tagb}', "");
     Expect(0, 6003, '\p{^Is_Scx=tagb}', "");
     Expect(0, 6003, '\P{Is_Scx=tagb}', "");
@@ -152119,16 +153583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6004, '\p{^Is_Scx=tagb}', "");
     Expect(1, 6004, '\P{Is_Scx=tagb}', "");
     Expect(0, 6004, '\P{^Is_Scx=tagb}', "");
-    Expect(1, 6003, '\p{Is_Scx=_ TAGB}', "");
-    Expect(0, 6003, '\p{^Is_Scx=_ TAGB}', "");
-    Expect(0, 6003, '\P{Is_Scx=_ TAGB}', "");
-    Expect(1, 6003, '\P{^Is_Scx=_ TAGB}', "");
-    Expect(0, 6004, '\p{Is_Scx=_ TAGB}', "");
-    Expect(1, 6004, '\p{^Is_Scx=_ TAGB}', "");
-    Expect(1, 6004, '\P{Is_Scx=_ TAGB}', "");
-    Expect(0, 6004, '\P{^Is_Scx=_ TAGB}', "");
-    Error('\p{Script_Extensions=:=_Takri}');
-    Error('\P{Script_Extensions=:=_Takri}');
+    Expect(1, 6003, '\p{Is_Scx=-TAGB}', "");
+    Expect(0, 6003, '\p{^Is_Scx=-TAGB}', "");
+    Expect(0, 6003, '\P{Is_Scx=-TAGB}', "");
+    Expect(1, 6003, '\P{^Is_Scx=-TAGB}', "");
+    Expect(0, 6004, '\p{Is_Scx=-TAGB}', "");
+    Expect(1, 6004, '\p{^Is_Scx=-TAGB}', "");
+    Expect(1, 6004, '\P{Is_Scx=-TAGB}', "");
+    Expect(0, 6004, '\P{^Is_Scx=-TAGB}', "");
+    Error('\p{Script_Extensions=:= TAKRI}');
+    Error('\P{Script_Extensions=:= TAKRI}');
     Expect(1, 71369, '\p{Script_Extensions=:\ATakri\z:}', "");;
     Expect(0, 71370, '\p{Script_Extensions=:\ATakri\z:}', "");;
     Expect(1, 71369, '\p{Script_Extensions=takri}', "");
@@ -152141,38 +153605,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71370, '\P{^Script_Extensions=takri}', "");
     Expect(1, 71369, '\p{Script_Extensions=:\Atakri\z:}', "");;
     Expect(0, 71370, '\p{Script_Extensions=:\Atakri\z:}', "");;
-    Expect(1, 71369, '\p{Script_Extensions=_Takri}', "");
-    Expect(0, 71369, '\p{^Script_Extensions=_Takri}', "");
-    Expect(0, 71369, '\P{Script_Extensions=_Takri}', "");
-    Expect(1, 71369, '\P{^Script_Extensions=_Takri}', "");
-    Expect(0, 71370, '\p{Script_Extensions=_Takri}', "");
-    Expect(1, 71370, '\p{^Script_Extensions=_Takri}', "");
-    Expect(1, 71370, '\P{Script_Extensions=_Takri}', "");
-    Expect(0, 71370, '\P{^Script_Extensions=_Takri}', "");
-    Error('\p{Scx=-_takr:=}');
-    Error('\P{Scx=-_takr:=}');
+    Expect(1, 71369, '\p{Script_Extensions=-_takri}', "");
+    Expect(0, 71369, '\p{^Script_Extensions=-_takri}', "");
+    Expect(0, 71369, '\P{Script_Extensions=-_takri}', "");
+    Expect(1, 71369, '\P{^Script_Extensions=-_takri}', "");
+    Expect(0, 71370, '\p{Script_Extensions=-_takri}', "");
+    Expect(1, 71370, '\p{^Script_Extensions=-_takri}', "");
+    Expect(1, 71370, '\P{Script_Extensions=-_takri}', "");
+    Expect(0, 71370, '\P{^Script_Extensions=-_takri}', "");
+    Error('\p{Scx=:= Takr}');
+    Error('\P{Scx=:= Takr}');
     Expect(1, 71369, '\p{Scx=:\ATakr\z:}', "");;
     Expect(0, 71370, '\p{Scx=:\ATakr\z:}', "");;
-    Expect(1, 71369, '\p{Scx=takr}', "");
-    Expect(0, 71369, '\p{^Scx=takr}', "");
-    Expect(0, 71369, '\P{Scx=takr}', "");
-    Expect(1, 71369, '\P{^Scx=takr}', "");
-    Expect(0, 71370, '\p{Scx=takr}', "");
-    Expect(1, 71370, '\p{^Scx=takr}', "");
-    Expect(1, 71370, '\P{Scx=takr}', "");
-    Expect(0, 71370, '\P{^Scx=takr}', "");
+    Expect(1, 71369, '\p{Scx:	takr}', "");
+    Expect(0, 71369, '\p{^Scx:	takr}', "");
+    Expect(0, 71369, '\P{Scx:	takr}', "");
+    Expect(1, 71369, '\P{^Scx:	takr}', "");
+    Expect(0, 71370, '\p{Scx:	takr}', "");
+    Expect(1, 71370, '\p{^Scx:	takr}', "");
+    Expect(1, 71370, '\P{Scx:	takr}', "");
+    Expect(0, 71370, '\P{^Scx:	takr}', "");
     Expect(1, 71369, '\p{Scx=:\Atakr\z:}', "");;
     Expect(0, 71370, '\p{Scx=:\Atakr\z:}', "");;
-    Expect(1, 71369, '\p{Scx=	Takr}', "");
-    Expect(0, 71369, '\p{^Scx=	Takr}', "");
-    Expect(0, 71369, '\P{Scx=	Takr}', "");
-    Expect(1, 71369, '\P{^Scx=	Takr}', "");
-    Expect(0, 71370, '\p{Scx=	Takr}', "");
-    Expect(1, 71370, '\p{^Scx=	Takr}', "");
-    Expect(1, 71370, '\P{Scx=	Takr}', "");
-    Expect(0, 71370, '\P{^Scx=	Takr}', "");
-    Error('\p{Is_Script_Extensions=	Takri:=}');
-    Error('\P{Is_Script_Extensions=	Takri:=}');
+    Expect(1, 71369, '\p{Scx=_	Takr}', "");
+    Expect(0, 71369, '\p{^Scx=_	Takr}', "");
+    Expect(0, 71369, '\P{Scx=_	Takr}', "");
+    Expect(1, 71369, '\P{^Scx=_	Takr}', "");
+    Expect(0, 71370, '\p{Scx=_	Takr}', "");
+    Expect(1, 71370, '\p{^Scx=_	Takr}', "");
+    Expect(1, 71370, '\P{Scx=_	Takr}', "");
+    Expect(0, 71370, '\P{^Scx=_	Takr}', "");
+    Error('\p{Is_Script_Extensions=--TAKRI/a/}');
+    Error('\P{Is_Script_Extensions=--TAKRI/a/}');
     Expect(1, 71369, '\p{Is_Script_Extensions=takri}', "");
     Expect(0, 71369, '\p{^Is_Script_Extensions=takri}', "");
     Expect(0, 71369, '\P{Is_Script_Extensions=takri}', "");
@@ -152181,34 +153645,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71370, '\p{^Is_Script_Extensions=takri}', "");
     Expect(1, 71370, '\P{Is_Script_Extensions=takri}', "");
     Expect(0, 71370, '\P{^Is_Script_Extensions=takri}', "");
-    Expect(1, 71369, '\p{Is_Script_Extensions= takri}', "");
-    Expect(0, 71369, '\p{^Is_Script_Extensions= takri}', "");
-    Expect(0, 71369, '\P{Is_Script_Extensions= takri}', "");
-    Expect(1, 71369, '\P{^Is_Script_Extensions= takri}', "");
-    Expect(0, 71370, '\p{Is_Script_Extensions= takri}', "");
-    Expect(1, 71370, '\p{^Is_Script_Extensions= takri}', "");
-    Expect(1, 71370, '\P{Is_Script_Extensions= takri}', "");
-    Expect(0, 71370, '\P{^Is_Script_Extensions= takri}', "");
-    Error('\p{Is_Scx=:=  takr}');
-    Error('\P{Is_Scx=:=  takr}');
-    Expect(1, 71369, '\p{Is_Scx=takr}', "");
-    Expect(0, 71369, '\p{^Is_Scx=takr}', "");
-    Expect(0, 71369, '\P{Is_Scx=takr}', "");
-    Expect(1, 71369, '\P{^Is_Scx=takr}', "");
-    Expect(0, 71370, '\p{Is_Scx=takr}', "");
-    Expect(1, 71370, '\p{^Is_Scx=takr}', "");
-    Expect(1, 71370, '\P{Is_Scx=takr}', "");
-    Expect(0, 71370, '\P{^Is_Scx=takr}', "");
-    Expect(1, 71369, '\p{Is_Scx=-	Takr}', "");
-    Expect(0, 71369, '\p{^Is_Scx=-	Takr}', "");
-    Expect(0, 71369, '\P{Is_Scx=-	Takr}', "");
-    Expect(1, 71369, '\P{^Is_Scx=-	Takr}', "");
-    Expect(0, 71370, '\p{Is_Scx=-	Takr}', "");
-    Expect(1, 71370, '\p{^Is_Scx=-	Takr}', "");
-    Expect(1, 71370, '\P{Is_Scx=-	Takr}', "");
-    Expect(0, 71370, '\P{^Is_Scx=-	Takr}', "");
-    Error('\p{Script_Extensions=-:=tai_Le}');
-    Error('\P{Script_Extensions=-:=tai_Le}');
+    Expect(1, 71369, '\p{Is_Script_Extensions=-Takri}', "");
+    Expect(0, 71369, '\p{^Is_Script_Extensions=-Takri}', "");
+    Expect(0, 71369, '\P{Is_Script_Extensions=-Takri}', "");
+    Expect(1, 71369, '\P{^Is_Script_Extensions=-Takri}', "");
+    Expect(0, 71370, '\p{Is_Script_Extensions=-Takri}', "");
+    Expect(1, 71370, '\p{^Is_Script_Extensions=-Takri}', "");
+    Expect(1, 71370, '\P{Is_Script_Extensions=-Takri}', "");
+    Expect(0, 71370, '\P{^Is_Script_Extensions=-Takri}', "");
+    Error('\p{Is_Scx= :=Takr}');
+    Error('\P{Is_Scx= :=Takr}');
+    Expect(1, 71369, '\p{Is_Scx:	takr}', "");
+    Expect(0, 71369, '\p{^Is_Scx:	takr}', "");
+    Expect(0, 71369, '\P{Is_Scx:	takr}', "");
+    Expect(1, 71369, '\P{^Is_Scx:	takr}', "");
+    Expect(0, 71370, '\p{Is_Scx:	takr}', "");
+    Expect(1, 71370, '\p{^Is_Scx:	takr}', "");
+    Expect(1, 71370, '\P{Is_Scx:	takr}', "");
+    Expect(0, 71370, '\P{^Is_Scx:	takr}', "");
+    Expect(1, 71369, '\p{Is_Scx=-_Takr}', "");
+    Expect(0, 71369, '\p{^Is_Scx=-_Takr}', "");
+    Expect(0, 71369, '\P{Is_Scx=-_Takr}', "");
+    Expect(1, 71369, '\P{^Is_Scx=-_Takr}', "");
+    Expect(0, 71370, '\p{Is_Scx=-_Takr}', "");
+    Expect(1, 71370, '\p{^Is_Scx=-_Takr}', "");
+    Expect(1, 71370, '\P{Is_Scx=-_Takr}', "");
+    Expect(0, 71370, '\P{^Is_Scx=-_Takr}', "");
+    Error('\p{Script_Extensions=-tai_le/a/}');
+    Error('\P{Script_Extensions=-tai_le/a/}');
     Expect(1, 6516, '\p{Script_Extensions=:\ATai_Le\z:}', "");;
     Expect(0, 6517, '\p{Script_Extensions=:\ATai_Le\z:}', "");;
     Expect(1, 6516, '\p{Script_Extensions=taile}', "");
@@ -152221,16 +153685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6517, '\P{^Script_Extensions=taile}', "");
     Expect(1, 6516, '\p{Script_Extensions=:\Ataile\z:}', "");;
     Expect(0, 6517, '\p{Script_Extensions=:\Ataile\z:}', "");;
-    Expect(1, 6516, '\p{Script_Extensions=  Tai_le}', "");
-    Expect(0, 6516, '\p{^Script_Extensions=  Tai_le}', "");
-    Expect(0, 6516, '\P{Script_Extensions=  Tai_le}', "");
-    Expect(1, 6516, '\P{^Script_Extensions=  Tai_le}', "");
-    Expect(0, 6517, '\p{Script_Extensions=  Tai_le}', "");
-    Expect(1, 6517, '\p{^Script_Extensions=  Tai_le}', "");
-    Expect(1, 6517, '\P{Script_Extensions=  Tai_le}', "");
-    Expect(0, 6517, '\P{^Script_Extensions=  Tai_le}', "");
-    Error('\p{Scx:	_/a/tale}');
-    Error('\P{Scx:	_/a/tale}');
+    Expect(1, 6516, '\p{Script_Extensions=__TAI_Le}', "");
+    Expect(0, 6516, '\p{^Script_Extensions=__TAI_Le}', "");
+    Expect(0, 6516, '\P{Script_Extensions=__TAI_Le}', "");
+    Expect(1, 6516, '\P{^Script_Extensions=__TAI_Le}', "");
+    Expect(0, 6517, '\p{Script_Extensions=__TAI_Le}', "");
+    Expect(1, 6517, '\p{^Script_Extensions=__TAI_Le}', "");
+    Expect(1, 6517, '\P{Script_Extensions=__TAI_Le}', "");
+    Expect(0, 6517, '\P{^Script_Extensions=__TAI_Le}', "");
+    Error('\p{Scx=/a/Tale}');
+    Error('\P{Scx=/a/Tale}');
     Expect(1, 6516, '\p{Scx=:\ATale\z:}', "");;
     Expect(0, 6517, '\p{Scx=:\ATale\z:}', "");;
     Expect(1, 6516, '\p{Scx=tale}', "");
@@ -152243,16 +153707,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6517, '\P{^Scx=tale}', "");
     Expect(1, 6516, '\p{Scx=:\Atale\z:}', "");;
     Expect(0, 6517, '\p{Scx=:\Atale\z:}', "");;
-    Expect(1, 6516, '\p{Scx=_-tale}', "");
-    Expect(0, 6516, '\p{^Scx=_-tale}', "");
-    Expect(0, 6516, '\P{Scx=_-tale}', "");
-    Expect(1, 6516, '\P{^Scx=_-tale}', "");
-    Expect(0, 6517, '\p{Scx=_-tale}', "");
-    Expect(1, 6517, '\p{^Scx=_-tale}', "");
-    Expect(1, 6517, '\P{Scx=_-tale}', "");
-    Expect(0, 6517, '\P{^Scx=_-tale}', "");
-    Error('\p{Is_Script_Extensions=	Tai_Le:=}');
-    Error('\P{Is_Script_Extensions=	Tai_Le:=}');
+    Expect(1, 6516, '\p{Scx:	--TALE}', "");
+    Expect(0, 6516, '\p{^Scx:	--TALE}', "");
+    Expect(0, 6516, '\P{Scx:	--TALE}', "");
+    Expect(1, 6516, '\P{^Scx:	--TALE}', "");
+    Expect(0, 6517, '\p{Scx:	--TALE}', "");
+    Expect(1, 6517, '\p{^Scx:	--TALE}', "");
+    Expect(1, 6517, '\P{Scx:	--TALE}', "");
+    Expect(0, 6517, '\P{^Scx:	--TALE}', "");
+    Error('\p{Is_Script_Extensions=_/a/TAI_Le}');
+    Error('\P{Is_Script_Extensions=_/a/TAI_Le}');
     Expect(1, 6516, '\p{Is_Script_Extensions=taile}', "");
     Expect(0, 6516, '\p{^Is_Script_Extensions=taile}', "");
     Expect(0, 6516, '\P{Is_Script_Extensions=taile}', "");
@@ -152261,16 +153725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^Is_Script_Extensions=taile}', "");
     Expect(1, 6517, '\P{Is_Script_Extensions=taile}', "");
     Expect(0, 6517, '\P{^Is_Script_Extensions=taile}', "");
-    Expect(1, 6516, '\p{Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(0, 6516, '\p{^Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(0, 6516, '\P{Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(1, 6516, '\P{^Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(0, 6517, '\p{Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(1, 6517, '\p{^Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(1, 6517, '\P{Is_Script_Extensions=	_Tai_Le}', "");
-    Expect(0, 6517, '\P{^Is_Script_Extensions=	_Tai_Le}', "");
-    Error('\p{Is_Scx=_tale:=}');
-    Error('\P{Is_Scx=_tale:=}');
+    Expect(1, 6516, '\p{Is_Script_Extensions=  TAI_LE}', "");
+    Expect(0, 6516, '\p{^Is_Script_Extensions=  TAI_LE}', "");
+    Expect(0, 6516, '\P{Is_Script_Extensions=  TAI_LE}', "");
+    Expect(1, 6516, '\P{^Is_Script_Extensions=  TAI_LE}', "");
+    Expect(0, 6517, '\p{Is_Script_Extensions=  TAI_LE}', "");
+    Expect(1, 6517, '\p{^Is_Script_Extensions=  TAI_LE}', "");
+    Expect(1, 6517, '\P{Is_Script_Extensions=  TAI_LE}', "");
+    Expect(0, 6517, '\P{^Is_Script_Extensions=  TAI_LE}', "");
+    Error('\p{Is_Scx=/a/	 TALE}');
+    Error('\P{Is_Scx=/a/	 TALE}');
     Expect(1, 6516, '\p{Is_Scx=tale}', "");
     Expect(0, 6516, '\p{^Is_Scx=tale}', "");
     Expect(0, 6516, '\P{Is_Scx=tale}', "");
@@ -152279,16 +153743,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6517, '\p{^Is_Scx=tale}', "");
     Expect(1, 6517, '\P{Is_Scx=tale}', "");
     Expect(0, 6517, '\P{^Is_Scx=tale}', "");
-    Expect(1, 6516, '\p{Is_Scx=__Tale}', "");
-    Expect(0, 6516, '\p{^Is_Scx=__Tale}', "");
-    Expect(0, 6516, '\P{Is_Scx=__Tale}', "");
-    Expect(1, 6516, '\P{^Is_Scx=__Tale}', "");
-    Expect(0, 6517, '\p{Is_Scx=__Tale}', "");
-    Expect(1, 6517, '\p{^Is_Scx=__Tale}', "");
-    Expect(1, 6517, '\P{Is_Scx=__Tale}', "");
-    Expect(0, 6517, '\P{^Is_Scx=__Tale}', "");
-    Error('\p{Script_Extensions=:=	 New_Tai_Lue}');
-    Error('\P{Script_Extensions=:=	 New_Tai_Lue}');
+    Expect(1, 6516, '\p{Is_Scx= 	Tale}', "");
+    Expect(0, 6516, '\p{^Is_Scx= 	Tale}', "");
+    Expect(0, 6516, '\P{Is_Scx= 	Tale}', "");
+    Expect(1, 6516, '\P{^Is_Scx= 	Tale}', "");
+    Expect(0, 6517, '\p{Is_Scx= 	Tale}', "");
+    Expect(1, 6517, '\p{^Is_Scx= 	Tale}', "");
+    Expect(1, 6517, '\P{Is_Scx= 	Tale}', "");
+    Expect(0, 6517, '\P{^Is_Scx= 	Tale}', "");
+    Error('\p{Script_Extensions=-	New_TAI_LUE:=}');
+    Error('\P{Script_Extensions=-	New_TAI_LUE:=}');
     Expect(1, 6623, '\p{Script_Extensions=:\ANew_Tai_Lue\z:}', "");;
     Expect(0, 6624, '\p{Script_Extensions=:\ANew_Tai_Lue\z:}', "");;
     Expect(1, 6623, '\p{Script_Extensions=newtailue}', "");
@@ -152301,16 +153765,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6624, '\P{^Script_Extensions=newtailue}', "");
     Expect(1, 6623, '\p{Script_Extensions=:\Anewtailue\z:}', "");;
     Expect(0, 6624, '\p{Script_Extensions=:\Anewtailue\z:}', "");;
-    Expect(1, 6623, '\p{Script_Extensions=-	new_TAI_lue}', "");
-    Expect(0, 6623, '\p{^Script_Extensions=-	new_TAI_lue}', "");
-    Expect(0, 6623, '\P{Script_Extensions=-	new_TAI_lue}', "");
-    Expect(1, 6623, '\P{^Script_Extensions=-	new_TAI_lue}', "");
-    Expect(0, 6624, '\p{Script_Extensions=-	new_TAI_lue}', "");
-    Expect(1, 6624, '\p{^Script_Extensions=-	new_TAI_lue}', "");
-    Expect(1, 6624, '\P{Script_Extensions=-	new_TAI_lue}', "");
-    Expect(0, 6624, '\P{^Script_Extensions=-	new_TAI_lue}', "");
-    Error('\p{Scx=/a/_TALU}');
-    Error('\P{Scx=/a/_TALU}');
+    Expect(1, 6623, '\p{Script_Extensions=	_new_TAI_lue}', "");
+    Expect(0, 6623, '\p{^Script_Extensions=	_new_TAI_lue}', "");
+    Expect(0, 6623, '\P{Script_Extensions=	_new_TAI_lue}', "");
+    Expect(1, 6623, '\P{^Script_Extensions=	_new_TAI_lue}', "");
+    Expect(0, 6624, '\p{Script_Extensions=	_new_TAI_lue}', "");
+    Expect(1, 6624, '\p{^Script_Extensions=	_new_TAI_lue}', "");
+    Expect(1, 6624, '\P{Script_Extensions=	_new_TAI_lue}', "");
+    Expect(0, 6624, '\P{^Script_Extensions=	_new_TAI_lue}', "");
+    Error('\p{Scx= :=Talu}');
+    Error('\P{Scx= :=Talu}');
     Expect(1, 6623, '\p{Scx=:\ATalu\z:}', "");;
     Expect(0, 6624, '\p{Scx=:\ATalu\z:}', "");;
     Expect(1, 6623, '\p{Scx=talu}', "");
@@ -152323,16 +153787,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 6624, '\P{^Scx=talu}', "");
     Expect(1, 6623, '\p{Scx=:\Atalu\z:}', "");;
     Expect(0, 6624, '\p{Scx=:\Atalu\z:}', "");;
-    Expect(1, 6623, '\p{Scx=__talu}', "");
-    Expect(0, 6623, '\p{^Scx=__talu}', "");
-    Expect(0, 6623, '\P{Scx=__talu}', "");
-    Expect(1, 6623, '\P{^Scx=__talu}', "");
-    Expect(0, 6624, '\p{Scx=__talu}', "");
-    Expect(1, 6624, '\p{^Scx=__talu}', "");
-    Expect(1, 6624, '\P{Scx=__talu}', "");
-    Expect(0, 6624, '\P{^Scx=__talu}', "");
-    Error('\p{Is_Script_Extensions=/a/--new_tai_Lue}');
-    Error('\P{Is_Script_Extensions=/a/--new_tai_Lue}');
+    Expect(1, 6623, '\p{Scx=	-Talu}', "");
+    Expect(0, 6623, '\p{^Scx=	-Talu}', "");
+    Expect(0, 6623, '\P{Scx=	-Talu}', "");
+    Expect(1, 6623, '\P{^Scx=	-Talu}', "");
+    Expect(0, 6624, '\p{Scx=	-Talu}', "");
+    Expect(1, 6624, '\p{^Scx=	-Talu}', "");
+    Expect(1, 6624, '\P{Scx=	-Talu}', "");
+    Expect(0, 6624, '\P{^Scx=	-Talu}', "");
+    Error('\p{Is_Script_Extensions= -New_tai_lue:=}');
+    Error('\P{Is_Script_Extensions= -New_tai_lue:=}');
     Expect(1, 6623, '\p{Is_Script_Extensions=newtailue}', "");
     Expect(0, 6623, '\p{^Is_Script_Extensions=newtailue}', "");
     Expect(0, 6623, '\P{Is_Script_Extensions=newtailue}', "");
@@ -152341,16 +153805,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6624, '\p{^Is_Script_Extensions=newtailue}', "");
     Expect(1, 6624, '\P{Is_Script_Extensions=newtailue}', "");
     Expect(0, 6624, '\P{^Is_Script_Extensions=newtailue}', "");
-    Expect(1, 6623, '\p{Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(0, 6623, '\p{^Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(0, 6623, '\P{Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(1, 6623, '\P{^Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(0, 6624, '\p{Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(1, 6624, '\p{^Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(1, 6624, '\P{Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Expect(0, 6624, '\P{^Is_Script_Extensions=	-NEW_tai_lue}', "");
-    Error('\p{Is_Scx=- talu/a/}');
-    Error('\P{Is_Scx=- talu/a/}');
+    Expect(1, 6623, '\p{Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(0, 6623, '\p{^Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(0, 6623, '\P{Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(1, 6623, '\P{^Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(0, 6624, '\p{Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(1, 6624, '\p{^Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(1, 6624, '\P{Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Expect(0, 6624, '\P{^Is_Script_Extensions=-_New_TAI_LUE}', "");
+    Error('\p{Is_Scx=	/a/talu}');
+    Error('\P{Is_Scx=	/a/talu}');
     Expect(1, 6623, '\p{Is_Scx=talu}', "");
     Expect(0, 6623, '\p{^Is_Scx=talu}', "");
     Expect(0, 6623, '\P{Is_Scx=talu}', "");
@@ -152359,16 +153823,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 6624, '\p{^Is_Scx=talu}', "");
     Expect(1, 6624, '\P{Is_Scx=talu}', "");
     Expect(0, 6624, '\P{^Is_Scx=talu}', "");
-    Expect(1, 6623, '\p{Is_Scx=	Talu}', "");
-    Expect(0, 6623, '\p{^Is_Scx=	Talu}', "");
-    Expect(0, 6623, '\P{Is_Scx=	Talu}', "");
-    Expect(1, 6623, '\P{^Is_Scx=	Talu}', "");
-    Expect(0, 6624, '\p{Is_Scx=	Talu}', "");
-    Expect(1, 6624, '\p{^Is_Scx=	Talu}', "");
-    Expect(1, 6624, '\P{Is_Scx=	Talu}', "");
-    Expect(0, 6624, '\P{^Is_Scx=	Talu}', "");
-    Error('\p{Script_Extensions=	-tamil:=}');
-    Error('\P{Script_Extensions=	-tamil:=}');
+    Expect(1, 6623, '\p{Is_Scx=Talu}', "");
+    Expect(0, 6623, '\p{^Is_Scx=Talu}', "");
+    Expect(0, 6623, '\P{Is_Scx=Talu}', "");
+    Expect(1, 6623, '\P{^Is_Scx=Talu}', "");
+    Expect(0, 6624, '\p{Is_Scx=Talu}', "");
+    Expect(1, 6624, '\p{^Is_Scx=Talu}', "");
+    Expect(1, 6624, '\P{Is_Scx=Talu}', "");
+    Expect(0, 6624, '\P{^Is_Scx=Talu}', "");
+    Error('\p{Script_Extensions=/a/ _Tamil}');
+    Error('\P{Script_Extensions=/a/ _Tamil}');
     Expect(1, 73727, '\p{Script_Extensions=:\ATamil\z:}', "");;
     Expect(0, 73728, '\p{Script_Extensions=:\ATamil\z:}', "");;
     Expect(1, 73727, '\p{Script_Extensions=tamil}', "");
@@ -152381,16 +153845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73728, '\P{^Script_Extensions=tamil}', "");
     Expect(1, 73727, '\p{Script_Extensions=:\Atamil\z:}', "");;
     Expect(0, 73728, '\p{Script_Extensions=:\Atamil\z:}', "");;
-    Expect(1, 73727, '\p{Script_Extensions=_Tamil}', "");
-    Expect(0, 73727, '\p{^Script_Extensions=_Tamil}', "");
-    Expect(0, 73727, '\P{Script_Extensions=_Tamil}', "");
-    Expect(1, 73727, '\P{^Script_Extensions=_Tamil}', "");
-    Expect(0, 73728, '\p{Script_Extensions=_Tamil}', "");
-    Expect(1, 73728, '\p{^Script_Extensions=_Tamil}', "");
-    Expect(1, 73728, '\P{Script_Extensions=_Tamil}', "");
-    Expect(0, 73728, '\P{^Script_Extensions=_Tamil}', "");
-    Error('\p{Scx: /a/Taml}');
-    Error('\P{Scx: /a/Taml}');
+    Expect(1, 73727, '\p{Script_Extensions=-tamil}', "");
+    Expect(0, 73727, '\p{^Script_Extensions=-tamil}', "");
+    Expect(0, 73727, '\P{Script_Extensions=-tamil}', "");
+    Expect(1, 73727, '\P{^Script_Extensions=-tamil}', "");
+    Expect(0, 73728, '\p{Script_Extensions=-tamil}', "");
+    Expect(1, 73728, '\p{^Script_Extensions=-tamil}', "");
+    Expect(1, 73728, '\P{Script_Extensions=-tamil}', "");
+    Expect(0, 73728, '\P{^Script_Extensions=-tamil}', "");
+    Error('\p{Scx=-Taml:=}');
+    Error('\P{Scx=-Taml:=}');
     Expect(1, 73727, '\p{Scx=:\ATaml\z:}', "");;
     Expect(0, 73728, '\p{Scx=:\ATaml\z:}', "");;
     Expect(1, 73727, '\p{Scx=taml}', "");
@@ -152403,16 +153867,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 73728, '\P{^Scx=taml}', "");
     Expect(1, 73727, '\p{Scx=:\Ataml\z:}', "");;
     Expect(0, 73728, '\p{Scx=:\Ataml\z:}', "");;
-    Expect(1, 73727, '\p{Scx=		taml}', "");
-    Expect(0, 73727, '\p{^Scx=		taml}', "");
-    Expect(0, 73727, '\P{Scx=		taml}', "");
-    Expect(1, 73727, '\P{^Scx=		taml}', "");
-    Expect(0, 73728, '\p{Scx=		taml}', "");
-    Expect(1, 73728, '\p{^Scx=		taml}', "");
-    Expect(1, 73728, '\P{Scx=		taml}', "");
-    Expect(0, 73728, '\P{^Scx=		taml}', "");
-    Error('\p{Is_Script_Extensions= :=tamil}');
-    Error('\P{Is_Script_Extensions= :=tamil}');
+    Expect(1, 73727, '\p{Scx=	TAML}', "");
+    Expect(0, 73727, '\p{^Scx=	TAML}', "");
+    Expect(0, 73727, '\P{Scx=	TAML}', "");
+    Expect(1, 73727, '\P{^Scx=	TAML}', "");
+    Expect(0, 73728, '\p{Scx=	TAML}', "");
+    Expect(1, 73728, '\p{^Scx=	TAML}', "");
+    Expect(1, 73728, '\P{Scx=	TAML}', "");
+    Expect(0, 73728, '\P{^Scx=	TAML}', "");
+    Error('\p{Is_Script_Extensions=-/a/Tamil}');
+    Error('\P{Is_Script_Extensions=-/a/Tamil}');
     Expect(1, 73727, '\p{Is_Script_Extensions=tamil}', "");
     Expect(0, 73727, '\p{^Is_Script_Extensions=tamil}', "");
     Expect(0, 73727, '\P{Is_Script_Extensions=tamil}', "");
@@ -152421,16 +153885,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^Is_Script_Extensions=tamil}', "");
     Expect(1, 73728, '\P{Is_Script_Extensions=tamil}', "");
     Expect(0, 73728, '\P{^Is_Script_Extensions=tamil}', "");
-    Expect(1, 73727, '\p{Is_Script_Extensions= _tamil}', "");
-    Expect(0, 73727, '\p{^Is_Script_Extensions= _tamil}', "");
-    Expect(0, 73727, '\P{Is_Script_Extensions= _tamil}', "");
-    Expect(1, 73727, '\P{^Is_Script_Extensions= _tamil}', "");
-    Expect(0, 73728, '\p{Is_Script_Extensions= _tamil}', "");
-    Expect(1, 73728, '\p{^Is_Script_Extensions= _tamil}', "");
-    Expect(1, 73728, '\P{Is_Script_Extensions= _tamil}', "");
-    Expect(0, 73728, '\P{^Is_Script_Extensions= _tamil}', "");
-    Error('\p{Is_Scx=_:=TAML}');
-    Error('\P{Is_Scx=_:=TAML}');
+    Expect(1, 73727, '\p{Is_Script_Extensions=	-tamil}', "");
+    Expect(0, 73727, '\p{^Is_Script_Extensions=	-tamil}', "");
+    Expect(0, 73727, '\P{Is_Script_Extensions=	-tamil}', "");
+    Expect(1, 73727, '\P{^Is_Script_Extensions=	-tamil}', "");
+    Expect(0, 73728, '\p{Is_Script_Extensions=	-tamil}', "");
+    Expect(1, 73728, '\p{^Is_Script_Extensions=	-tamil}', "");
+    Expect(1, 73728, '\P{Is_Script_Extensions=	-tamil}', "");
+    Expect(0, 73728, '\P{^Is_Script_Extensions=	-tamil}', "");
+    Error('\p{Is_Scx=	 Taml/a/}');
+    Error('\P{Is_Scx=	 Taml/a/}');
     Expect(1, 73727, '\p{Is_Scx=taml}', "");
     Expect(0, 73727, '\p{^Is_Scx=taml}', "");
     Expect(0, 73727, '\P{Is_Scx=taml}', "");
@@ -152439,38 +153903,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 73728, '\p{^Is_Scx=taml}', "");
     Expect(1, 73728, '\P{Is_Scx=taml}', "");
     Expect(0, 73728, '\P{^Is_Scx=taml}', "");
-    Expect(1, 73727, '\p{Is_Scx=_	taml}', "");
-    Expect(0, 73727, '\p{^Is_Scx=_	taml}', "");
-    Expect(0, 73727, '\P{Is_Scx=_	taml}', "");
-    Expect(1, 73727, '\P{^Is_Scx=_	taml}', "");
-    Expect(0, 73728, '\p{Is_Scx=_	taml}', "");
-    Expect(1, 73728, '\p{^Is_Scx=_	taml}', "");
-    Expect(1, 73728, '\P{Is_Scx=_	taml}', "");
-    Expect(0, 73728, '\P{^Is_Scx=_	taml}', "");
-    Error('\p{Script_Extensions= -tangut:=}');
-    Error('\P{Script_Extensions= -tangut:=}');
+    Expect(1, 73727, '\p{Is_Scx=_Taml}', "");
+    Expect(0, 73727, '\p{^Is_Scx=_Taml}', "");
+    Expect(0, 73727, '\P{Is_Scx=_Taml}', "");
+    Expect(1, 73727, '\P{^Is_Scx=_Taml}', "");
+    Expect(0, 73728, '\p{Is_Scx=_Taml}', "");
+    Expect(1, 73728, '\p{^Is_Scx=_Taml}', "");
+    Expect(1, 73728, '\P{Is_Scx=_Taml}', "");
+    Expect(0, 73728, '\P{^Is_Scx=_Taml}', "");
+    Error('\p{Script_Extensions= Tangut/a/}');
+    Error('\P{Script_Extensions= Tangut/a/}');
     Expect(1, 101640, '\p{Script_Extensions=:\ATangut\z:}', "");;
     Expect(0, 101641, '\p{Script_Extensions=:\ATangut\z:}', "");;
-    Expect(1, 101640, '\p{Script_Extensions=tangut}', "");
-    Expect(0, 101640, '\p{^Script_Extensions=tangut}', "");
-    Expect(0, 101640, '\P{Script_Extensions=tangut}', "");
-    Expect(1, 101640, '\P{^Script_Extensions=tangut}', "");
-    Expect(0, 101641, '\p{Script_Extensions=tangut}', "");
-    Expect(1, 101641, '\p{^Script_Extensions=tangut}', "");
-    Expect(1, 101641, '\P{Script_Extensions=tangut}', "");
-    Expect(0, 101641, '\P{^Script_Extensions=tangut}', "");
+    Expect(1, 101640, '\p{Script_Extensions:tangut}', "");
+    Expect(0, 101640, '\p{^Script_Extensions:tangut}', "");
+    Expect(0, 101640, '\P{Script_Extensions:tangut}', "");
+    Expect(1, 101640, '\P{^Script_Extensions:tangut}', "");
+    Expect(0, 101641, '\p{Script_Extensions:tangut}', "");
+    Expect(1, 101641, '\p{^Script_Extensions:tangut}', "");
+    Expect(1, 101641, '\P{Script_Extensions:tangut}', "");
+    Expect(0, 101641, '\P{^Script_Extensions:tangut}', "");
     Expect(1, 101640, '\p{Script_Extensions=:\Atangut\z:}', "");;
     Expect(0, 101641, '\p{Script_Extensions=:\Atangut\z:}', "");;
-    Expect(1, 101640, '\p{Script_Extensions=_tangut}', "");
-    Expect(0, 101640, '\p{^Script_Extensions=_tangut}', "");
-    Expect(0, 101640, '\P{Script_Extensions=_tangut}', "");
-    Expect(1, 101640, '\P{^Script_Extensions=_tangut}', "");
-    Expect(0, 101641, '\p{Script_Extensions=_tangut}', "");
-    Expect(1, 101641, '\p{^Script_Extensions=_tangut}', "");
-    Expect(1, 101641, '\P{Script_Extensions=_tangut}', "");
-    Expect(0, 101641, '\P{^Script_Extensions=_tangut}', "");
-    Error('\p{Scx= TANG:=}');
-    Error('\P{Scx= TANG:=}');
+    Expect(1, 101640, '\p{Script_Extensions:   	tangut}', "");
+    Expect(0, 101640, '\p{^Script_Extensions:   	tangut}', "");
+    Expect(0, 101640, '\P{Script_Extensions:   	tangut}', "");
+    Expect(1, 101640, '\P{^Script_Extensions:   	tangut}', "");
+    Expect(0, 101641, '\p{Script_Extensions:   	tangut}', "");
+    Expect(1, 101641, '\p{^Script_Extensions:   	tangut}', "");
+    Expect(1, 101641, '\P{Script_Extensions:   	tangut}', "");
+    Expect(0, 101641, '\P{^Script_Extensions:   	tangut}', "");
+    Error('\p{Scx:	--TANG/a/}');
+    Error('\P{Scx:	--TANG/a/}');
     Expect(1, 101640, '\p{Scx=:\ATang\z:}', "");;
     Expect(0, 101641, '\p{Scx=:\ATang\z:}', "");;
     Expect(1, 101640, '\p{Scx=tang}', "");
@@ -152483,24 +153947,24 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 101641, '\P{^Scx=tang}', "");
     Expect(1, 101640, '\p{Scx=:\Atang\z:}', "");;
     Expect(0, 101641, '\p{Scx=:\Atang\z:}', "");;
-    Expect(1, 101640, '\p{Scx= -tang}', "");
-    Expect(0, 101640, '\p{^Scx= -tang}', "");
-    Expect(0, 101640, '\P{Scx= -tang}', "");
-    Expect(1, 101640, '\P{^Scx= -tang}', "");
-    Expect(0, 101641, '\p{Scx= -tang}', "");
-    Expect(1, 101641, '\p{^Scx= -tang}', "");
-    Expect(1, 101641, '\P{Scx= -tang}', "");
-    Expect(0, 101641, '\P{^Scx= -tang}', "");
-    Error('\p{Is_Script_Extensions:     tangut:=}');
-    Error('\P{Is_Script_Extensions:     tangut:=}');
-    Expect(1, 101640, '\p{Is_Script_Extensions:tangut}', "");
-    Expect(0, 101640, '\p{^Is_Script_Extensions:tangut}', "");
-    Expect(0, 101640, '\P{Is_Script_Extensions:tangut}', "");
-    Expect(1, 101640, '\P{^Is_Script_Extensions:tangut}', "");
-    Expect(0, 101641, '\p{Is_Script_Extensions:tangut}', "");
-    Expect(1, 101641, '\p{^Is_Script_Extensions:tangut}', "");
-    Expect(1, 101641, '\P{Is_Script_Extensions:tangut}', "");
-    Expect(0, 101641, '\P{^Is_Script_Extensions:tangut}', "");
+    Expect(1, 101640, '\p{Scx= _Tang}', "");
+    Expect(0, 101640, '\p{^Scx= _Tang}', "");
+    Expect(0, 101640, '\P{Scx= _Tang}', "");
+    Expect(1, 101640, '\P{^Scx= _Tang}', "");
+    Expect(0, 101641, '\p{Scx= _Tang}', "");
+    Expect(1, 101641, '\p{^Scx= _Tang}', "");
+    Expect(1, 101641, '\P{Scx= _Tang}', "");
+    Expect(0, 101641, '\P{^Scx= _Tang}', "");
+    Error('\p{Is_Script_Extensions=_:=Tangut}');
+    Error('\P{Is_Script_Extensions=_:=Tangut}');
+    Expect(1, 101640, '\p{Is_Script_Extensions=tangut}', "");
+    Expect(0, 101640, '\p{^Is_Script_Extensions=tangut}', "");
+    Expect(0, 101640, '\P{Is_Script_Extensions=tangut}', "");
+    Expect(1, 101640, '\P{^Is_Script_Extensions=tangut}', "");
+    Expect(0, 101641, '\p{Is_Script_Extensions=tangut}', "");
+    Expect(1, 101641, '\p{^Is_Script_Extensions=tangut}', "");
+    Expect(1, 101641, '\P{Is_Script_Extensions=tangut}', "");
+    Expect(0, 101641, '\P{^Is_Script_Extensions=tangut}', "");
     Expect(1, 101640, '\p{Is_Script_Extensions=_	Tangut}', "");
     Expect(0, 101640, '\p{^Is_Script_Extensions=_	Tangut}', "");
     Expect(0, 101640, '\P{Is_Script_Extensions=_	Tangut}', "");
@@ -152509,8 +153973,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101641, '\p{^Is_Script_Extensions=_	Tangut}', "");
     Expect(1, 101641, '\P{Is_Script_Extensions=_	Tangut}', "");
     Expect(0, 101641, '\P{^Is_Script_Extensions=_	Tangut}', "");
-    Error('\p{Is_Scx: 	TANG:=}');
-    Error('\P{Is_Scx: 	TANG:=}');
+    Error('\p{Is_Scx: _ tang:=}');
+    Error('\P{Is_Scx: _ tang:=}');
     Expect(1, 101640, '\p{Is_Scx=tang}', "");
     Expect(0, 101640, '\p{^Is_Scx=tang}', "");
     Expect(0, 101640, '\P{Is_Scx=tang}', "");
@@ -152519,16 +153983,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 101641, '\p{^Is_Scx=tang}', "");
     Expect(1, 101641, '\P{Is_Scx=tang}', "");
     Expect(0, 101641, '\P{^Is_Scx=tang}', "");
-    Expect(1, 101640, '\p{Is_Scx= -tang}', "");
-    Expect(0, 101640, '\p{^Is_Scx= -tang}', "");
-    Expect(0, 101640, '\P{Is_Scx= -tang}', "");
-    Expect(1, 101640, '\P{^Is_Scx= -tang}', "");
-    Expect(0, 101641, '\p{Is_Scx= -tang}', "");
-    Expect(1, 101641, '\p{^Is_Scx= -tang}', "");
-    Expect(1, 101641, '\P{Is_Scx= -tang}', "");
-    Expect(0, 101641, '\P{^Is_Scx= -tang}', "");
-    Error('\p{Script_Extensions= /a/tai_Viet}');
-    Error('\P{Script_Extensions= /a/tai_Viet}');
+    Expect(1, 101640, '\p{Is_Scx=- Tang}', "");
+    Expect(0, 101640, '\p{^Is_Scx=- Tang}', "");
+    Expect(0, 101640, '\P{Is_Scx=- Tang}', "");
+    Expect(1, 101640, '\P{^Is_Scx=- Tang}', "");
+    Expect(0, 101641, '\p{Is_Scx=- Tang}', "");
+    Expect(1, 101641, '\p{^Is_Scx=- Tang}', "");
+    Expect(1, 101641, '\P{Is_Scx=- Tang}', "");
+    Expect(0, 101641, '\P{^Is_Scx=- Tang}', "");
+    Error('\p{Script_Extensions=-TAI_Viet/a/}');
+    Error('\P{Script_Extensions=-TAI_Viet/a/}');
     Expect(1, 43743, '\p{Script_Extensions=:\ATai_Viet\z:}', "");;
     Expect(0, 43744, '\p{Script_Extensions=:\ATai_Viet\z:}', "");;
     Expect(1, 43743, '\p{Script_Extensions=taiviet}', "");
@@ -152541,16 +154005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43744, '\P{^Script_Extensions=taiviet}', "");
     Expect(1, 43743, '\p{Script_Extensions=:\Ataiviet\z:}', "");;
     Expect(0, 43744, '\p{Script_Extensions=:\Ataiviet\z:}', "");;
-    Expect(1, 43743, '\p{Script_Extensions=-_TAI_VIET}', "");
-    Expect(0, 43743, '\p{^Script_Extensions=-_TAI_VIET}', "");
-    Expect(0, 43743, '\P{Script_Extensions=-_TAI_VIET}', "");
-    Expect(1, 43743, '\P{^Script_Extensions=-_TAI_VIET}', "");
-    Expect(0, 43744, '\p{Script_Extensions=-_TAI_VIET}', "");
-    Expect(1, 43744, '\p{^Script_Extensions=-_TAI_VIET}', "");
-    Expect(1, 43744, '\P{Script_Extensions=-_TAI_VIET}', "");
-    Expect(0, 43744, '\P{^Script_Extensions=-_TAI_VIET}', "");
-    Error('\p{Scx=_tavt/a/}');
-    Error('\P{Scx=_tavt/a/}');
+    Expect(1, 43743, '\p{Script_Extensions= tai_Viet}', "");
+    Expect(0, 43743, '\p{^Script_Extensions= tai_Viet}', "");
+    Expect(0, 43743, '\P{Script_Extensions= tai_Viet}', "");
+    Expect(1, 43743, '\P{^Script_Extensions= tai_Viet}', "");
+    Expect(0, 43744, '\p{Script_Extensions= tai_Viet}', "");
+    Expect(1, 43744, '\p{^Script_Extensions= tai_Viet}', "");
+    Expect(1, 43744, '\P{Script_Extensions= tai_Viet}', "");
+    Expect(0, 43744, '\P{^Script_Extensions= tai_Viet}', "");
+    Error('\p{Scx:    /a/Tavt}');
+    Error('\P{Scx:    /a/Tavt}');
     Expect(1, 43743, '\p{Scx=:\ATavt\z:}', "");;
     Expect(0, 43744, '\p{Scx=:\ATavt\z:}', "");;
     Expect(1, 43743, '\p{Scx=tavt}', "");
@@ -152563,16 +154027,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 43744, '\P{^Scx=tavt}', "");
     Expect(1, 43743, '\p{Scx=:\Atavt\z:}', "");;
     Expect(0, 43744, '\p{Scx=:\Atavt\z:}', "");;
-    Expect(1, 43743, '\p{Scx=	 Tavt}', "");
-    Expect(0, 43743, '\p{^Scx=	 Tavt}', "");
-    Expect(0, 43743, '\P{Scx=	 Tavt}', "");
-    Expect(1, 43743, '\P{^Scx=	 Tavt}', "");
-    Expect(0, 43744, '\p{Scx=	 Tavt}', "");
-    Expect(1, 43744, '\p{^Scx=	 Tavt}', "");
-    Expect(1, 43744, '\P{Scx=	 Tavt}', "");
-    Expect(0, 43744, '\P{^Scx=	 Tavt}', "");
-    Error('\p{Is_Script_Extensions=/a/_-Tai_Viet}');
-    Error('\P{Is_Script_Extensions=/a/_-Tai_Viet}');
+    Expect(1, 43743, '\p{Scx=	-Tavt}', "");
+    Expect(0, 43743, '\p{^Scx=	-Tavt}', "");
+    Expect(0, 43743, '\P{Scx=	-Tavt}', "");
+    Expect(1, 43743, '\P{^Scx=	-Tavt}', "");
+    Expect(0, 43744, '\p{Scx=	-Tavt}', "");
+    Expect(1, 43744, '\p{^Scx=	-Tavt}', "");
+    Expect(1, 43744, '\P{Scx=	-Tavt}', "");
+    Expect(0, 43744, '\P{^Scx=	-Tavt}', "");
+    Error('\p{Is_Script_Extensions=/a/ Tai_viet}');
+    Error('\P{Is_Script_Extensions=/a/ Tai_viet}');
     Expect(1, 43743, '\p{Is_Script_Extensions=taiviet}', "");
     Expect(0, 43743, '\p{^Is_Script_Extensions=taiviet}', "");
     Expect(0, 43743, '\P{Is_Script_Extensions=taiviet}', "");
@@ -152581,16 +154045,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^Is_Script_Extensions=taiviet}', "");
     Expect(1, 43744, '\P{Is_Script_Extensions=taiviet}', "");
     Expect(0, 43744, '\P{^Is_Script_Extensions=taiviet}', "");
-    Expect(1, 43743, '\p{Is_Script_Extensions= _Tai_viet}', "");
-    Expect(0, 43743, '\p{^Is_Script_Extensions= _Tai_viet}', "");
-    Expect(0, 43743, '\P{Is_Script_Extensions= _Tai_viet}', "");
-    Expect(1, 43743, '\P{^Is_Script_Extensions= _Tai_viet}', "");
-    Expect(0, 43744, '\p{Is_Script_Extensions= _Tai_viet}', "");
-    Expect(1, 43744, '\p{^Is_Script_Extensions= _Tai_viet}', "");
-    Expect(1, 43744, '\P{Is_Script_Extensions= _Tai_viet}', "");
-    Expect(0, 43744, '\P{^Is_Script_Extensions= _Tai_viet}', "");
-    Error('\p{Is_Scx=:=	 TAVT}');
-    Error('\P{Is_Scx=:=	 TAVT}');
+    Expect(1, 43743, '\p{Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(0, 43743, '\p{^Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(0, 43743, '\P{Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(1, 43743, '\P{^Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(0, 43744, '\p{Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(1, 43744, '\p{^Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(1, 43744, '\P{Is_Script_Extensions=_Tai_Viet}', "");
+    Expect(0, 43744, '\P{^Is_Script_Extensions=_Tai_Viet}', "");
+    Error('\p{Is_Scx=_TAVT:=}');
+    Error('\P{Is_Scx=_TAVT:=}');
     Expect(1, 43743, '\p{Is_Scx=tavt}', "");
     Expect(0, 43743, '\p{^Is_Scx=tavt}', "");
     Expect(0, 43743, '\P{Is_Scx=tavt}', "");
@@ -152599,16 +154063,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 43744, '\p{^Is_Scx=tavt}', "");
     Expect(1, 43744, '\P{Is_Scx=tavt}', "");
     Expect(0, 43744, '\P{^Is_Scx=tavt}', "");
-    Expect(1, 43743, '\p{Is_Scx=_tavt}', "");
-    Expect(0, 43743, '\p{^Is_Scx=_tavt}', "");
-    Expect(0, 43743, '\P{Is_Scx=_tavt}', "");
-    Expect(1, 43743, '\P{^Is_Scx=_tavt}', "");
-    Expect(0, 43744, '\p{Is_Scx=_tavt}', "");
-    Expect(1, 43744, '\p{^Is_Scx=_tavt}', "");
-    Expect(1, 43744, '\P{Is_Scx=_tavt}', "");
-    Expect(0, 43744, '\P{^Is_Scx=_tavt}', "");
-    Error('\p{Script_Extensions=-_Telugu:=}');
-    Error('\P{Script_Extensions=-_Telugu:=}');
+    Expect(1, 43743, '\p{Is_Scx= _Tavt}', "");
+    Expect(0, 43743, '\p{^Is_Scx= _Tavt}', "");
+    Expect(0, 43743, '\P{Is_Scx= _Tavt}', "");
+    Expect(1, 43743, '\P{^Is_Scx= _Tavt}', "");
+    Expect(0, 43744, '\p{Is_Scx= _Tavt}', "");
+    Expect(1, 43744, '\p{^Is_Scx= _Tavt}', "");
+    Expect(1, 43744, '\P{Is_Scx= _Tavt}', "");
+    Expect(0, 43744, '\P{^Is_Scx= _Tavt}', "");
+    Error('\p{Script_Extensions=_:=TELUGU}');
+    Error('\P{Script_Extensions=_:=TELUGU}');
     Expect(1, 7410, '\p{Script_Extensions=:\ATelugu\z:}', "");;
     Expect(0, 7411, '\p{Script_Extensions=:\ATelugu\z:}', "");;
     Expect(1, 7410, '\p{Script_Extensions=telugu}', "");
@@ -152621,38 +154085,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 7411, '\P{^Script_Extensions=telugu}', "");
     Expect(1, 7410, '\p{Script_Extensions=:\Atelugu\z:}', "");;
     Expect(0, 7411, '\p{Script_Extensions=:\Atelugu\z:}', "");;
-    Expect(1, 7410, '\p{Script_Extensions=	TELUGU}', "");
-    Expect(0, 7410, '\p{^Script_Extensions=	TELUGU}', "");
-    Expect(0, 7410, '\P{Script_Extensions=	TELUGU}', "");
-    Expect(1, 7410, '\P{^Script_Extensions=	TELUGU}', "");
-    Expect(0, 7411, '\p{Script_Extensions=	TELUGU}', "");
-    Expect(1, 7411, '\p{^Script_Extensions=	TELUGU}', "");
-    Expect(1, 7411, '\P{Script_Extensions=	TELUGU}', "");
-    Expect(0, 7411, '\P{^Script_Extensions=	TELUGU}', "");
-    Error('\p{Scx: :=_telu}');
-    Error('\P{Scx: :=_telu}');
+    Expect(1, 7410, '\p{Script_Extensions=- telugu}', "");
+    Expect(0, 7410, '\p{^Script_Extensions=- telugu}', "");
+    Expect(0, 7410, '\P{Script_Extensions=- telugu}', "");
+    Expect(1, 7410, '\P{^Script_Extensions=- telugu}', "");
+    Expect(0, 7411, '\p{Script_Extensions=- telugu}', "");
+    Expect(1, 7411, '\p{^Script_Extensions=- telugu}', "");
+    Expect(1, 7411, '\P{Script_Extensions=- telugu}', "");
+    Expect(0, 7411, '\P{^Script_Extensions=- telugu}', "");
+    Error('\p{Scx=:=--TELU}');
+    Error('\P{Scx=:=--TELU}');
     Expect(1, 7410, '\p{Scx=:\ATelu\z:}', "");;
     Expect(0, 7411, '\p{Scx=:\ATelu\z:}', "");;
-    Expect(1, 7410, '\p{Scx=telu}', "");
-    Expect(0, 7410, '\p{^Scx=telu}', "");
-    Expect(0, 7410, '\P{Scx=telu}', "");
-    Expect(1, 7410, '\P{^Scx=telu}', "");
-    Expect(0, 7411, '\p{Scx=telu}', "");
-    Expect(1, 7411, '\p{^Scx=telu}', "");
-    Expect(1, 7411, '\P{Scx=telu}', "");
-    Expect(0, 7411, '\P{^Scx=telu}', "");
+    Expect(1, 7410, '\p{Scx:telu}', "");
+    Expect(0, 7410, '\p{^Scx:telu}', "");
+    Expect(0, 7410, '\P{Scx:telu}', "");
+    Expect(1, 7410, '\P{^Scx:telu}', "");
+    Expect(0, 7411, '\p{Scx:telu}', "");
+    Expect(1, 7411, '\p{^Scx:telu}', "");
+    Expect(1, 7411, '\P{Scx:telu}', "");
+    Expect(0, 7411, '\P{^Scx:telu}', "");
     Expect(1, 7410, '\p{Scx=:\Atelu\z:}', "");;
     Expect(0, 7411, '\p{Scx=:\Atelu\z:}', "");;
-    Expect(1, 7410, '\p{Scx=_TELU}', "");
-    Expect(0, 7410, '\p{^Scx=_TELU}', "");
-    Expect(0, 7410, '\P{Scx=_TELU}', "");
-    Expect(1, 7410, '\P{^Scx=_TELU}', "");
-    Expect(0, 7411, '\p{Scx=_TELU}', "");
-    Expect(1, 7411, '\p{^Scx=_TELU}', "");
-    Expect(1, 7411, '\P{Scx=_TELU}', "");
-    Expect(0, 7411, '\P{^Scx=_TELU}', "");
-    Error('\p{Is_Script_Extensions=/a/ Telugu}');
-    Error('\P{Is_Script_Extensions=/a/ Telugu}');
+    Expect(1, 7410, '\p{Scx=	TELU}', "");
+    Expect(0, 7410, '\p{^Scx=	TELU}', "");
+    Expect(0, 7410, '\P{Scx=	TELU}', "");
+    Expect(1, 7410, '\P{^Scx=	TELU}', "");
+    Expect(0, 7411, '\p{Scx=	TELU}', "");
+    Expect(1, 7411, '\p{^Scx=	TELU}', "");
+    Expect(1, 7411, '\P{Scx=	TELU}', "");
+    Expect(0, 7411, '\P{^Scx=	TELU}', "");
+    Error('\p{Is_Script_Extensions=/a/ _Telugu}');
+    Error('\P{Is_Script_Extensions=/a/ _Telugu}');
     Expect(1, 7410, '\p{Is_Script_Extensions=telugu}', "");
     Expect(0, 7410, '\p{^Is_Script_Extensions=telugu}', "");
     Expect(0, 7410, '\P{Is_Script_Extensions=telugu}', "");
@@ -152661,16 +154125,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7411, '\p{^Is_Script_Extensions=telugu}', "");
     Expect(1, 7411, '\P{Is_Script_Extensions=telugu}', "");
     Expect(0, 7411, '\P{^Is_Script_Extensions=telugu}', "");
-    Expect(1, 7410, '\p{Is_Script_Extensions=Telugu}', "");
-    Expect(0, 7410, '\p{^Is_Script_Extensions=Telugu}', "");
-    Expect(0, 7410, '\P{Is_Script_Extensions=Telugu}', "");
-    Expect(1, 7410, '\P{^Is_Script_Extensions=Telugu}', "");
-    Expect(0, 7411, '\p{Is_Script_Extensions=Telugu}', "");
-    Expect(1, 7411, '\p{^Is_Script_Extensions=Telugu}', "");
-    Expect(1, 7411, '\P{Is_Script_Extensions=Telugu}', "");
-    Expect(0, 7411, '\P{^Is_Script_Extensions=Telugu}', "");
-    Error('\p{Is_Scx=	/a/telu}');
-    Error('\P{Is_Scx=	/a/telu}');
+    Expect(1, 7410, '\p{Is_Script_Extensions=_	Telugu}', "");
+    Expect(0, 7410, '\p{^Is_Script_Extensions=_	Telugu}', "");
+    Expect(0, 7410, '\P{Is_Script_Extensions=_	Telugu}', "");
+    Expect(1, 7410, '\P{^Is_Script_Extensions=_	Telugu}', "");
+    Expect(0, 7411, '\p{Is_Script_Extensions=_	Telugu}', "");
+    Expect(1, 7411, '\p{^Is_Script_Extensions=_	Telugu}', "");
+    Expect(1, 7411, '\P{Is_Script_Extensions=_	Telugu}', "");
+    Expect(0, 7411, '\P{^Is_Script_Extensions=_	Telugu}', "");
+    Error('\p{Is_Scx=-Telu/a/}');
+    Error('\P{Is_Scx=-Telu/a/}');
     Expect(1, 7410, '\p{Is_Scx=telu}', "");
     Expect(0, 7410, '\p{^Is_Scx=telu}', "");
     Expect(0, 7410, '\P{Is_Scx=telu}', "");
@@ -152679,16 +154143,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 7411, '\p{^Is_Scx=telu}', "");
     Expect(1, 7411, '\P{Is_Scx=telu}', "");
     Expect(0, 7411, '\P{^Is_Scx=telu}', "");
-    Expect(1, 7410, '\p{Is_Scx=--Telu}', "");
-    Expect(0, 7410, '\p{^Is_Scx=--Telu}', "");
-    Expect(0, 7410, '\P{Is_Scx=--Telu}', "");
-    Expect(1, 7410, '\P{^Is_Scx=--Telu}', "");
-    Expect(0, 7411, '\p{Is_Scx=--Telu}', "");
-    Expect(1, 7411, '\p{^Is_Scx=--Telu}', "");
-    Expect(1, 7411, '\P{Is_Scx=--Telu}', "");
-    Expect(0, 7411, '\P{^Is_Scx=--Telu}', "");
-    Error('\p{Script_Extensions:Tifinagh/a/}');
-    Error('\P{Script_Extensions:Tifinagh/a/}');
+    Expect(1, 7410, '\p{Is_Scx=_	telu}', "");
+    Expect(0, 7410, '\p{^Is_Scx=_	telu}', "");
+    Expect(0, 7410, '\P{Is_Scx=_	telu}', "");
+    Expect(1, 7410, '\P{^Is_Scx=_	telu}', "");
+    Expect(0, 7411, '\p{Is_Scx=_	telu}', "");
+    Expect(1, 7411, '\p{^Is_Scx=_	telu}', "");
+    Expect(1, 7411, '\P{Is_Scx=_	telu}', "");
+    Expect(0, 7411, '\P{^Is_Scx=_	telu}', "");
+    Error('\p{Script_Extensions:   /a/- Tifinagh}');
+    Error('\P{Script_Extensions:   /a/- Tifinagh}');
     Expect(1, 11647, '\p{Script_Extensions=:\ATifinagh\z:}', "");;
     Expect(0, 11648, '\p{Script_Extensions=:\ATifinagh\z:}', "");;
     Expect(1, 11647, '\p{Script_Extensions=tifinagh}', "");
@@ -152701,16 +154165,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11648, '\P{^Script_Extensions=tifinagh}', "");
     Expect(1, 11647, '\p{Script_Extensions=:\Atifinagh\z:}', "");;
     Expect(0, 11648, '\p{Script_Extensions=:\Atifinagh\z:}', "");;
-    Expect(1, 11647, '\p{Script_Extensions=	Tifinagh}', "");
-    Expect(0, 11647, '\p{^Script_Extensions=	Tifinagh}', "");
-    Expect(0, 11647, '\P{Script_Extensions=	Tifinagh}', "");
-    Expect(1, 11647, '\P{^Script_Extensions=	Tifinagh}', "");
-    Expect(0, 11648, '\p{Script_Extensions=	Tifinagh}', "");
-    Expect(1, 11648, '\p{^Script_Extensions=	Tifinagh}', "");
-    Expect(1, 11648, '\P{Script_Extensions=	Tifinagh}', "");
-    Expect(0, 11648, '\P{^Script_Extensions=	Tifinagh}', "");
-    Error('\p{Scx=_	Tfng:=}');
-    Error('\P{Scx=_	Tfng:=}');
+    Expect(1, 11647, '\p{Script_Extensions= Tifinagh}', "");
+    Expect(0, 11647, '\p{^Script_Extensions= Tifinagh}', "");
+    Expect(0, 11647, '\P{Script_Extensions= Tifinagh}', "");
+    Expect(1, 11647, '\P{^Script_Extensions= Tifinagh}', "");
+    Expect(0, 11648, '\p{Script_Extensions= Tifinagh}', "");
+    Expect(1, 11648, '\p{^Script_Extensions= Tifinagh}', "");
+    Expect(1, 11648, '\P{Script_Extensions= Tifinagh}', "");
+    Expect(0, 11648, '\P{^Script_Extensions= Tifinagh}', "");
+    Error('\p{Scx:   /a/	TFNG}');
+    Error('\P{Scx:   /a/	TFNG}');
     Expect(1, 11647, '\p{Scx=:\ATfng\z:}', "");;
     Expect(0, 11648, '\p{Scx=:\ATfng\z:}', "");;
     Expect(1, 11647, '\p{Scx=tfng}', "");
@@ -152723,34 +154187,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11648, '\P{^Scx=tfng}', "");
     Expect(1, 11647, '\p{Scx=:\Atfng\z:}', "");;
     Expect(0, 11648, '\p{Scx=:\Atfng\z:}', "");;
-    Expect(1, 11647, '\p{Scx= -Tfng}', "");
-    Expect(0, 11647, '\p{^Scx= -Tfng}', "");
-    Expect(0, 11647, '\P{Scx= -Tfng}', "");
-    Expect(1, 11647, '\P{^Scx= -Tfng}', "");
-    Expect(0, 11648, '\p{Scx= -Tfng}', "");
-    Expect(1, 11648, '\p{^Scx= -Tfng}', "");
-    Expect(1, 11648, '\P{Scx= -Tfng}', "");
-    Expect(0, 11648, '\P{^Scx= -Tfng}', "");
-    Error('\p{Is_Script_Extensions=/a/	-Tifinagh}');
-    Error('\P{Is_Script_Extensions=/a/	-Tifinagh}');
-    Expect(1, 11647, '\p{Is_Script_Extensions: tifinagh}', "");
-    Expect(0, 11647, '\p{^Is_Script_Extensions: tifinagh}', "");
-    Expect(0, 11647, '\P{Is_Script_Extensions: tifinagh}', "");
-    Expect(1, 11647, '\P{^Is_Script_Extensions: tifinagh}', "");
-    Expect(0, 11648, '\p{Is_Script_Extensions: tifinagh}', "");
-    Expect(1, 11648, '\p{^Is_Script_Extensions: tifinagh}', "");
-    Expect(1, 11648, '\P{Is_Script_Extensions: tifinagh}', "");
-    Expect(0, 11648, '\P{^Is_Script_Extensions: tifinagh}', "");
-    Expect(1, 11647, '\p{Is_Script_Extensions=	_tifinagh}', "");
-    Expect(0, 11647, '\p{^Is_Script_Extensions=	_tifinagh}', "");
-    Expect(0, 11647, '\P{Is_Script_Extensions=	_tifinagh}', "");
-    Expect(1, 11647, '\P{^Is_Script_Extensions=	_tifinagh}', "");
-    Expect(0, 11648, '\p{Is_Script_Extensions=	_tifinagh}', "");
-    Expect(1, 11648, '\p{^Is_Script_Extensions=	_tifinagh}', "");
-    Expect(1, 11648, '\P{Is_Script_Extensions=	_tifinagh}', "");
-    Expect(0, 11648, '\P{^Is_Script_Extensions=	_tifinagh}', "");
-    Error('\p{Is_Scx=	Tfng/a/}');
-    Error('\P{Is_Scx=	Tfng/a/}');
+    Expect(1, 11647, '\p{Scx=_TFNG}', "");
+    Expect(0, 11647, '\p{^Scx=_TFNG}', "");
+    Expect(0, 11647, '\P{Scx=_TFNG}', "");
+    Expect(1, 11647, '\P{^Scx=_TFNG}', "");
+    Expect(0, 11648, '\p{Scx=_TFNG}', "");
+    Expect(1, 11648, '\p{^Scx=_TFNG}', "");
+    Expect(1, 11648, '\P{Scx=_TFNG}', "");
+    Expect(0, 11648, '\P{^Scx=_TFNG}', "");
+    Error('\p{Is_Script_Extensions=  Tifinagh:=}');
+    Error('\P{Is_Script_Extensions=  Tifinagh:=}');
+    Expect(1, 11647, '\p{Is_Script_Extensions=tifinagh}', "");
+    Expect(0, 11647, '\p{^Is_Script_Extensions=tifinagh}', "");
+    Expect(0, 11647, '\P{Is_Script_Extensions=tifinagh}', "");
+    Expect(1, 11647, '\P{^Is_Script_Extensions=tifinagh}', "");
+    Expect(0, 11648, '\p{Is_Script_Extensions=tifinagh}', "");
+    Expect(1, 11648, '\p{^Is_Script_Extensions=tifinagh}', "");
+    Expect(1, 11648, '\P{Is_Script_Extensions=tifinagh}', "");
+    Expect(0, 11648, '\P{^Is_Script_Extensions=tifinagh}', "");
+    Expect(1, 11647, '\p{Is_Script_Extensions=--tifinagh}', "");
+    Expect(0, 11647, '\p{^Is_Script_Extensions=--tifinagh}', "");
+    Expect(0, 11647, '\P{Is_Script_Extensions=--tifinagh}', "");
+    Expect(1, 11647, '\P{^Is_Script_Extensions=--tifinagh}', "");
+    Expect(0, 11648, '\p{Is_Script_Extensions=--tifinagh}', "");
+    Expect(1, 11648, '\p{^Is_Script_Extensions=--tifinagh}', "");
+    Expect(1, 11648, '\P{Is_Script_Extensions=--tifinagh}', "");
+    Expect(0, 11648, '\P{^Is_Script_Extensions=--tifinagh}', "");
+    Error('\p{Is_Scx=:= 	Tfng}');
+    Error('\P{Is_Scx=:= 	Tfng}');
     Expect(1, 11647, '\p{Is_Scx=tfng}', "");
     Expect(0, 11647, '\p{^Is_Scx=tfng}', "");
     Expect(0, 11647, '\P{Is_Scx=tfng}', "");
@@ -152759,16 +154223,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11648, '\p{^Is_Scx=tfng}', "");
     Expect(1, 11648, '\P{Is_Scx=tfng}', "");
     Expect(0, 11648, '\P{^Is_Scx=tfng}', "");
-    Expect(1, 11647, '\p{Is_Scx=-	Tfng}', "");
-    Expect(0, 11647, '\p{^Is_Scx=-	Tfng}', "");
-    Expect(0, 11647, '\P{Is_Scx=-	Tfng}', "");
-    Expect(1, 11647, '\P{^Is_Scx=-	Tfng}', "");
-    Expect(0, 11648, '\p{Is_Scx=-	Tfng}', "");
-    Expect(1, 11648, '\p{^Is_Scx=-	Tfng}', "");
-    Expect(1, 11648, '\P{Is_Scx=-	Tfng}', "");
-    Expect(0, 11648, '\P{^Is_Scx=-	Tfng}', "");
-    Error('\p{Script_Extensions:	/a/-	Tagalog}');
-    Error('\P{Script_Extensions:	/a/-	Tagalog}');
+    Expect(1, 11647, '\p{Is_Scx=_ Tfng}', "");
+    Expect(0, 11647, '\p{^Is_Scx=_ Tfng}', "");
+    Expect(0, 11647, '\P{Is_Scx=_ Tfng}', "");
+    Expect(1, 11647, '\P{^Is_Scx=_ Tfng}', "");
+    Expect(0, 11648, '\p{Is_Scx=_ Tfng}', "");
+    Expect(1, 11648, '\p{^Is_Scx=_ Tfng}', "");
+    Expect(1, 11648, '\P{Is_Scx=_ Tfng}', "");
+    Expect(0, 11648, '\P{^Is_Scx=_ Tfng}', "");
+    Error('\p{Script_Extensions=:=__tagalog}');
+    Error('\P{Script_Extensions=:=__tagalog}');
     Expect(1, 5942, '\p{Script_Extensions=:\ATagalog\z:}', "");;
     Expect(0, 5943, '\p{Script_Extensions=:\ATagalog\z:}', "");;
     Expect(1, 5942, '\p{Script_Extensions=tagalog}', "");
@@ -152781,16 +154245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5943, '\P{^Script_Extensions=tagalog}', "");
     Expect(1, 5942, '\p{Script_Extensions=:\Atagalog\z:}', "");;
     Expect(0, 5943, '\p{Script_Extensions=:\Atagalog\z:}', "");;
-    Expect(1, 5942, '\p{Script_Extensions=- Tagalog}', "");
-    Expect(0, 5942, '\p{^Script_Extensions=- Tagalog}', "");
-    Expect(0, 5942, '\P{Script_Extensions=- Tagalog}', "");
-    Expect(1, 5942, '\P{^Script_Extensions=- Tagalog}', "");
-    Expect(0, 5943, '\p{Script_Extensions=- Tagalog}', "");
-    Expect(1, 5943, '\p{^Script_Extensions=- Tagalog}', "");
-    Expect(1, 5943, '\P{Script_Extensions=- Tagalog}', "");
-    Expect(0, 5943, '\P{^Script_Extensions=- Tagalog}', "");
-    Error('\p{Scx=:=-Tglg}');
-    Error('\P{Scx=:=-Tglg}');
+    Expect(1, 5942, '\p{Script_Extensions=_	tagalog}', "");
+    Expect(0, 5942, '\p{^Script_Extensions=_	tagalog}', "");
+    Expect(0, 5942, '\P{Script_Extensions=_	tagalog}', "");
+    Expect(1, 5942, '\P{^Script_Extensions=_	tagalog}', "");
+    Expect(0, 5943, '\p{Script_Extensions=_	tagalog}', "");
+    Expect(1, 5943, '\p{^Script_Extensions=_	tagalog}', "");
+    Expect(1, 5943, '\P{Script_Extensions=_	tagalog}', "");
+    Expect(0, 5943, '\P{^Script_Extensions=_	tagalog}', "");
+    Error('\p{Scx:	:=	-Tglg}');
+    Error('\P{Scx:	:=	-Tglg}');
     Expect(1, 5942, '\p{Scx=:\ATglg\z:}', "");;
     Expect(0, 5943, '\p{Scx=:\ATglg\z:}', "");;
     Expect(1, 5942, '\p{Scx=tglg}', "");
@@ -152803,34 +154267,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 5943, '\P{^Scx=tglg}', "");
     Expect(1, 5942, '\p{Scx=:\Atglg\z:}', "");;
     Expect(0, 5943, '\p{Scx=:\Atglg\z:}', "");;
-    Expect(1, 5942, '\p{Scx:  -Tglg}', "");
-    Expect(0, 5942, '\p{^Scx:  -Tglg}', "");
-    Expect(0, 5942, '\P{Scx:  -Tglg}', "");
-    Expect(1, 5942, '\P{^Scx:  -Tglg}', "");
-    Expect(0, 5943, '\p{Scx:  -Tglg}', "");
-    Expect(1, 5943, '\p{^Scx:  -Tglg}', "");
-    Expect(1, 5943, '\P{Scx:  -Tglg}', "");
-    Expect(0, 5943, '\P{^Scx:  -Tglg}', "");
-    Error('\p{Is_Script_Extensions:   /a/  TAGALOG}');
-    Error('\P{Is_Script_Extensions:   /a/  TAGALOG}');
-    Expect(1, 5942, '\p{Is_Script_Extensions:	tagalog}', "");
-    Expect(0, 5942, '\p{^Is_Script_Extensions:	tagalog}', "");
-    Expect(0, 5942, '\P{Is_Script_Extensions:	tagalog}', "");
-    Expect(1, 5942, '\P{^Is_Script_Extensions:	tagalog}', "");
-    Expect(0, 5943, '\p{Is_Script_Extensions:	tagalog}', "");
-    Expect(1, 5943, '\p{^Is_Script_Extensions:	tagalog}', "");
-    Expect(1, 5943, '\P{Is_Script_Extensions:	tagalog}', "");
-    Expect(0, 5943, '\P{^Is_Script_Extensions:	tagalog}', "");
-    Expect(1, 5942, '\p{Is_Script_Extensions=_TAGALOG}', "");
-    Expect(0, 5942, '\p{^Is_Script_Extensions=_TAGALOG}', "");
-    Expect(0, 5942, '\P{Is_Script_Extensions=_TAGALOG}', "");
-    Expect(1, 5942, '\P{^Is_Script_Extensions=_TAGALOG}', "");
-    Expect(0, 5943, '\p{Is_Script_Extensions=_TAGALOG}', "");
-    Expect(1, 5943, '\p{^Is_Script_Extensions=_TAGALOG}', "");
-    Expect(1, 5943, '\P{Is_Script_Extensions=_TAGALOG}', "");
-    Expect(0, 5943, '\P{^Is_Script_Extensions=_TAGALOG}', "");
-    Error('\p{Is_Scx=	-Tglg/a/}');
-    Error('\P{Is_Scx=	-Tglg/a/}');
+    Expect(1, 5942, '\p{Scx=  tglg}', "");
+    Expect(0, 5942, '\p{^Scx=  tglg}', "");
+    Expect(0, 5942, '\P{Scx=  tglg}', "");
+    Expect(1, 5942, '\P{^Scx=  tglg}', "");
+    Expect(0, 5943, '\p{Scx=  tglg}', "");
+    Expect(1, 5943, '\p{^Scx=  tglg}', "");
+    Expect(1, 5943, '\P{Scx=  tglg}', "");
+    Expect(0, 5943, '\P{^Scx=  tglg}', "");
+    Error('\p{Is_Script_Extensions=	/a/TAGALOG}');
+    Error('\P{Is_Script_Extensions=	/a/TAGALOG}');
+    Expect(1, 5942, '\p{Is_Script_Extensions=tagalog}', "");
+    Expect(0, 5942, '\p{^Is_Script_Extensions=tagalog}', "");
+    Expect(0, 5942, '\P{Is_Script_Extensions=tagalog}', "");
+    Expect(1, 5942, '\P{^Is_Script_Extensions=tagalog}', "");
+    Expect(0, 5943, '\p{Is_Script_Extensions=tagalog}', "");
+    Expect(1, 5943, '\p{^Is_Script_Extensions=tagalog}', "");
+    Expect(1, 5943, '\P{Is_Script_Extensions=tagalog}', "");
+    Expect(0, 5943, '\P{^Is_Script_Extensions=tagalog}', "");
+    Expect(1, 5942, '\p{Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(0, 5942, '\p{^Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(0, 5942, '\P{Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(1, 5942, '\P{^Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(0, 5943, '\p{Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(1, 5943, '\p{^Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(1, 5943, '\P{Is_Script_Extensions:  _TAGALOG}', "");
+    Expect(0, 5943, '\P{^Is_Script_Extensions:  _TAGALOG}', "");
+    Error('\p{Is_Scx=:=TGLG}');
+    Error('\P{Is_Scx=:=TGLG}');
     Expect(1, 5942, '\p{Is_Scx=tglg}', "");
     Expect(0, 5942, '\p{^Is_Scx=tglg}', "");
     Expect(0, 5942, '\P{Is_Scx=tglg}', "");
@@ -152839,38 +154303,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 5943, '\p{^Is_Scx=tglg}', "");
     Expect(1, 5943, '\P{Is_Scx=tglg}', "");
     Expect(0, 5943, '\P{^Is_Scx=tglg}', "");
-    Expect(1, 5942, '\p{Is_Scx=--Tglg}', "");
-    Expect(0, 5942, '\p{^Is_Scx=--Tglg}', "");
-    Expect(0, 5942, '\P{Is_Scx=--Tglg}', "");
-    Expect(1, 5942, '\P{^Is_Scx=--Tglg}', "");
-    Expect(0, 5943, '\p{Is_Scx=--Tglg}', "");
-    Expect(1, 5943, '\p{^Is_Scx=--Tglg}', "");
-    Expect(1, 5943, '\P{Is_Scx=--Tglg}', "");
-    Expect(0, 5943, '\P{^Is_Scx=--Tglg}', "");
-    Error('\p{Script_Extensions=/a/-_THAANA}');
-    Error('\P{Script_Extensions=/a/-_THAANA}');
+    Expect(1, 5942, '\p{Is_Scx=_ TGLG}', "");
+    Expect(0, 5942, '\p{^Is_Scx=_ TGLG}', "");
+    Expect(0, 5942, '\P{Is_Scx=_ TGLG}', "");
+    Expect(1, 5942, '\P{^Is_Scx=_ TGLG}', "");
+    Expect(0, 5943, '\p{Is_Scx=_ TGLG}', "");
+    Expect(1, 5943, '\p{^Is_Scx=_ TGLG}', "");
+    Expect(1, 5943, '\P{Is_Scx=_ TGLG}', "");
+    Expect(0, 5943, '\P{^Is_Scx=_ TGLG}', "");
+    Error('\p{Script_Extensions=/a/THAANA}');
+    Error('\P{Script_Extensions=/a/THAANA}');
     Expect(1, 65021, '\p{Script_Extensions=:\AThaana\z:}', "");;
     Expect(0, 65022, '\p{Script_Extensions=:\AThaana\z:}', "");;
-    Expect(1, 65021, '\p{Script_Extensions:	thaana}', "");
-    Expect(0, 65021, '\p{^Script_Extensions:	thaana}', "");
-    Expect(0, 65021, '\P{Script_Extensions:	thaana}', "");
-    Expect(1, 65021, '\P{^Script_Extensions:	thaana}', "");
-    Expect(0, 65022, '\p{Script_Extensions:	thaana}', "");
-    Expect(1, 65022, '\p{^Script_Extensions:	thaana}', "");
-    Expect(1, 65022, '\P{Script_Extensions:	thaana}', "");
-    Expect(0, 65022, '\P{^Script_Extensions:	thaana}', "");
+    Expect(1, 65021, '\p{Script_Extensions=thaana}', "");
+    Expect(0, 65021, '\p{^Script_Extensions=thaana}', "");
+    Expect(0, 65021, '\P{Script_Extensions=thaana}', "");
+    Expect(1, 65021, '\P{^Script_Extensions=thaana}', "");
+    Expect(0, 65022, '\p{Script_Extensions=thaana}', "");
+    Expect(1, 65022, '\p{^Script_Extensions=thaana}', "");
+    Expect(1, 65022, '\P{Script_Extensions=thaana}', "");
+    Expect(0, 65022, '\P{^Script_Extensions=thaana}', "");
     Expect(1, 65021, '\p{Script_Extensions=:\Athaana\z:}', "");;
     Expect(0, 65022, '\p{Script_Extensions=:\Athaana\z:}', "");;
-    Expect(1, 65021, '\p{Script_Extensions=__Thaana}', "");
-    Expect(0, 65021, '\p{^Script_Extensions=__Thaana}', "");
-    Expect(0, 65021, '\P{Script_Extensions=__Thaana}', "");
-    Expect(1, 65021, '\P{^Script_Extensions=__Thaana}', "");
-    Expect(0, 65022, '\p{Script_Extensions=__Thaana}', "");
-    Expect(1, 65022, '\p{^Script_Extensions=__Thaana}', "");
-    Expect(1, 65022, '\P{Script_Extensions=__Thaana}', "");
-    Expect(0, 65022, '\P{^Script_Extensions=__Thaana}', "");
-    Error('\p{Scx=/a/	-thaa}');
-    Error('\P{Scx=/a/	-thaa}');
+    Expect(1, 65021, '\p{Script_Extensions=	_thaana}', "");
+    Expect(0, 65021, '\p{^Script_Extensions=	_thaana}', "");
+    Expect(0, 65021, '\P{Script_Extensions=	_thaana}', "");
+    Expect(1, 65021, '\P{^Script_Extensions=	_thaana}', "");
+    Expect(0, 65022, '\p{Script_Extensions=	_thaana}', "");
+    Expect(1, 65022, '\p{^Script_Extensions=	_thaana}', "");
+    Expect(1, 65022, '\P{Script_Extensions=	_thaana}', "");
+    Expect(0, 65022, '\P{^Script_Extensions=	_thaana}', "");
+    Error('\p{Scx= :=THAA}');
+    Error('\P{Scx= :=THAA}');
     Expect(1, 65021, '\p{Scx=:\AThaa\z:}', "");;
     Expect(0, 65022, '\p{Scx=:\AThaa\z:}', "");;
     Expect(1, 65021, '\p{Scx=thaa}', "");
@@ -152883,16 +154347,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65022, '\P{^Scx=thaa}', "");
     Expect(1, 65021, '\p{Scx=:\Athaa\z:}', "");;
     Expect(0, 65022, '\p{Scx=:\Athaa\z:}', "");;
-    Expect(1, 65021, '\p{Scx= thaa}', "");
-    Expect(0, 65021, '\p{^Scx= thaa}', "");
-    Expect(0, 65021, '\P{Scx= thaa}', "");
-    Expect(1, 65021, '\P{^Scx= thaa}', "");
-    Expect(0, 65022, '\p{Scx= thaa}', "");
-    Expect(1, 65022, '\p{^Scx= thaa}', "");
-    Expect(1, 65022, '\P{Scx= thaa}', "");
-    Expect(0, 65022, '\P{^Scx= thaa}', "");
-    Error('\p{Is_Script_Extensions=-:=THAANA}');
-    Error('\P{Is_Script_Extensions=-:=THAANA}');
+    Expect(1, 65021, '\p{Scx=		thaa}', "");
+    Expect(0, 65021, '\p{^Scx=		thaa}', "");
+    Expect(0, 65021, '\P{Scx=		thaa}', "");
+    Expect(1, 65021, '\P{^Scx=		thaa}', "");
+    Expect(0, 65022, '\p{Scx=		thaa}', "");
+    Expect(1, 65022, '\p{^Scx=		thaa}', "");
+    Expect(1, 65022, '\P{Scx=		thaa}', "");
+    Expect(0, 65022, '\P{^Scx=		thaa}', "");
+    Error('\p{Is_Script_Extensions=:=	-thaana}');
+    Error('\P{Is_Script_Extensions=:=	-thaana}');
     Expect(1, 65021, '\p{Is_Script_Extensions=thaana}', "");
     Expect(0, 65021, '\p{^Is_Script_Extensions=thaana}', "");
     Expect(0, 65021, '\P{Is_Script_Extensions=thaana}', "");
@@ -152901,16 +154365,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65022, '\p{^Is_Script_Extensions=thaana}', "");
     Expect(1, 65022, '\P{Is_Script_Extensions=thaana}', "");
     Expect(0, 65022, '\P{^Is_Script_Extensions=thaana}', "");
-    Expect(1, 65021, '\p{Is_Script_Extensions= -Thaana}', "");
-    Expect(0, 65021, '\p{^Is_Script_Extensions= -Thaana}', "");
-    Expect(0, 65021, '\P{Is_Script_Extensions= -Thaana}', "");
-    Expect(1, 65021, '\P{^Is_Script_Extensions= -Thaana}', "");
-    Expect(0, 65022, '\p{Is_Script_Extensions= -Thaana}', "");
-    Expect(1, 65022, '\p{^Is_Script_Extensions= -Thaana}', "");
-    Expect(1, 65022, '\P{Is_Script_Extensions= -Thaana}', "");
-    Expect(0, 65022, '\P{^Is_Script_Extensions= -Thaana}', "");
-    Error('\p{Is_Scx=_:=thaa}');
-    Error('\P{Is_Scx=_:=thaa}');
+    Expect(1, 65021, '\p{Is_Script_Extensions=_thaana}', "");
+    Expect(0, 65021, '\p{^Is_Script_Extensions=_thaana}', "");
+    Expect(0, 65021, '\P{Is_Script_Extensions=_thaana}', "");
+    Expect(1, 65021, '\P{^Is_Script_Extensions=_thaana}', "");
+    Expect(0, 65022, '\p{Is_Script_Extensions=_thaana}', "");
+    Expect(1, 65022, '\p{^Is_Script_Extensions=_thaana}', "");
+    Expect(1, 65022, '\P{Is_Script_Extensions=_thaana}', "");
+    Expect(0, 65022, '\P{^Is_Script_Extensions=_thaana}', "");
+    Error('\p{Is_Scx=	/a/Thaa}');
+    Error('\P{Is_Scx=	/a/Thaa}');
     Expect(1, 65021, '\p{Is_Scx=thaa}', "");
     Expect(0, 65021, '\p{^Is_Scx=thaa}', "");
     Expect(0, 65021, '\P{Is_Scx=thaa}', "");
@@ -152919,16 +154383,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65022, '\p{^Is_Scx=thaa}', "");
     Expect(1, 65022, '\P{Is_Scx=thaa}', "");
     Expect(0, 65022, '\P{^Is_Scx=thaa}', "");
-    Expect(1, 65021, '\p{Is_Scx=__Thaa}', "");
-    Expect(0, 65021, '\p{^Is_Scx=__Thaa}', "");
-    Expect(0, 65021, '\P{Is_Scx=__Thaa}', "");
-    Expect(1, 65021, '\P{^Is_Scx=__Thaa}', "");
-    Expect(0, 65022, '\p{Is_Scx=__Thaa}', "");
-    Expect(1, 65022, '\p{^Is_Scx=__Thaa}', "");
-    Expect(1, 65022, '\P{Is_Scx=__Thaa}', "");
-    Expect(0, 65022, '\P{^Is_Scx=__Thaa}', "");
-    Error('\p{Script_Extensions=	/a/thai}');
-    Error('\P{Script_Extensions=	/a/thai}');
+    Expect(1, 65021, '\p{Is_Scx=-Thaa}', "");
+    Expect(0, 65021, '\p{^Is_Scx=-Thaa}', "");
+    Expect(0, 65021, '\P{Is_Scx=-Thaa}', "");
+    Expect(1, 65021, '\P{^Is_Scx=-Thaa}', "");
+    Expect(0, 65022, '\p{Is_Scx=-Thaa}', "");
+    Expect(1, 65022, '\p{^Is_Scx=-Thaa}', "");
+    Expect(1, 65022, '\P{Is_Scx=-Thaa}', "");
+    Expect(0, 65022, '\P{^Is_Scx=-Thaa}', "");
+    Error('\p{Script_Extensions=:=	_THAI}');
+    Error('\P{Script_Extensions=:=	_THAI}');
     Expect(1, 3675, '\p{Script_Extensions=:\AThai\z:}', "");;
     Expect(0, 3676, '\p{Script_Extensions=:\AThai\z:}', "");;
     Expect(1, 3675, '\p{Script_Extensions=thai}', "");
@@ -152941,16 +154405,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 3676, '\P{^Script_Extensions=thai}', "");
     Expect(1, 3675, '\p{Script_Extensions=:\Athai\z:}', "");;
     Expect(0, 3676, '\p{Script_Extensions=:\Athai\z:}', "");;
-    Expect(1, 3675, '\p{Script_Extensions:	_THAI}', "");
-    Expect(0, 3675, '\p{^Script_Extensions:	_THAI}', "");
-    Expect(0, 3675, '\P{Script_Extensions:	_THAI}', "");
-    Expect(1, 3675, '\P{^Script_Extensions:	_THAI}', "");
-    Expect(0, 3676, '\p{Script_Extensions:	_THAI}', "");
-    Expect(1, 3676, '\p{^Script_Extensions:	_THAI}', "");
-    Expect(1, 3676, '\P{Script_Extensions:	_THAI}', "");
-    Expect(0, 3676, '\P{^Script_Extensions:	_THAI}', "");
-    Error('\p{Scx=/a/ -Thai}');
-    Error('\P{Scx=/a/ -Thai}');
+    Expect(1, 3675, '\p{Script_Extensions=-_Thai}', "");
+    Expect(0, 3675, '\p{^Script_Extensions=-_Thai}', "");
+    Expect(0, 3675, '\P{Script_Extensions=-_Thai}', "");
+    Expect(1, 3675, '\P{^Script_Extensions=-_Thai}', "");
+    Expect(0, 3676, '\p{Script_Extensions=-_Thai}', "");
+    Expect(1, 3676, '\p{^Script_Extensions=-_Thai}', "");
+    Expect(1, 3676, '\P{Script_Extensions=-_Thai}', "");
+    Expect(0, 3676, '\P{^Script_Extensions=-_Thai}', "");
+    Error('\p{Scx= 	THAI/a/}');
+    Error('\P{Scx= 	THAI/a/}');
     Expect(1, 3675, '\p{Scx=:\AThai\z:}', "");;
     Expect(0, 3676, '\p{Scx=:\AThai\z:}', "");;
     Expect(1, 3675, '\p{Scx=thai}', "");
@@ -152963,16 +154427,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 3676, '\P{^Scx=thai}', "");
     Expect(1, 3675, '\p{Scx=:\Athai\z:}', "");;
     Expect(0, 3676, '\p{Scx=:\Athai\z:}', "");;
-    Expect(1, 3675, '\p{Scx=	-Thai}', "");
-    Expect(0, 3675, '\p{^Scx=	-Thai}', "");
-    Expect(0, 3675, '\P{Scx=	-Thai}', "");
-    Expect(1, 3675, '\P{^Scx=	-Thai}', "");
-    Expect(0, 3676, '\p{Scx=	-Thai}', "");
-    Expect(1, 3676, '\p{^Scx=	-Thai}', "");
-    Expect(1, 3676, '\P{Scx=	-Thai}', "");
-    Expect(0, 3676, '\P{^Scx=	-Thai}', "");
-    Error('\p{Is_Script_Extensions= :=Thai}');
-    Error('\P{Is_Script_Extensions= :=Thai}');
+    Expect(1, 3675, '\p{Scx= 	thai}', "");
+    Expect(0, 3675, '\p{^Scx= 	thai}', "");
+    Expect(0, 3675, '\P{Scx= 	thai}', "");
+    Expect(1, 3675, '\P{^Scx= 	thai}', "");
+    Expect(0, 3676, '\p{Scx= 	thai}', "");
+    Expect(1, 3676, '\p{^Scx= 	thai}', "");
+    Expect(1, 3676, '\P{Scx= 	thai}', "");
+    Expect(0, 3676, '\P{^Scx= 	thai}', "");
+    Error('\p{Is_Script_Extensions=_:=Thai}');
+    Error('\P{Is_Script_Extensions=_:=Thai}');
     Expect(1, 3675, '\p{Is_Script_Extensions=thai}', "");
     Expect(0, 3675, '\p{^Is_Script_Extensions=thai}', "");
     Expect(0, 3675, '\P{Is_Script_Extensions=thai}', "");
@@ -152981,16 +154445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3676, '\p{^Is_Script_Extensions=thai}', "");
     Expect(1, 3676, '\P{Is_Script_Extensions=thai}', "");
     Expect(0, 3676, '\P{^Is_Script_Extensions=thai}', "");
-    Expect(1, 3675, '\p{Is_Script_Extensions= Thai}', "");
-    Expect(0, 3675, '\p{^Is_Script_Extensions= Thai}', "");
-    Expect(0, 3675, '\P{Is_Script_Extensions= Thai}', "");
-    Expect(1, 3675, '\P{^Is_Script_Extensions= Thai}', "");
-    Expect(0, 3676, '\p{Is_Script_Extensions= Thai}', "");
-    Expect(1, 3676, '\p{^Is_Script_Extensions= Thai}', "");
-    Expect(1, 3676, '\P{Is_Script_Extensions= Thai}', "");
-    Expect(0, 3676, '\P{^Is_Script_Extensions= Thai}', "");
-    Error('\p{Is_Scx=:= 	thai}');
-    Error('\P{Is_Scx=:= 	thai}');
+    Expect(1, 3675, '\p{Is_Script_Extensions=	-THAI}', "");
+    Expect(0, 3675, '\p{^Is_Script_Extensions=	-THAI}', "");
+    Expect(0, 3675, '\P{Is_Script_Extensions=	-THAI}', "");
+    Expect(1, 3675, '\P{^Is_Script_Extensions=	-THAI}', "");
+    Expect(0, 3676, '\p{Is_Script_Extensions=	-THAI}', "");
+    Expect(1, 3676, '\p{^Is_Script_Extensions=	-THAI}', "");
+    Expect(1, 3676, '\P{Is_Script_Extensions=	-THAI}', "");
+    Expect(0, 3676, '\P{^Is_Script_Extensions=	-THAI}', "");
+    Error('\p{Is_Scx=/a/- THAI}');
+    Error('\P{Is_Scx=/a/- THAI}');
     Expect(1, 3675, '\p{Is_Scx=thai}', "");
     Expect(0, 3675, '\p{^Is_Scx=thai}', "");
     Expect(0, 3675, '\P{Is_Scx=thai}', "");
@@ -152999,16 +154463,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 3676, '\p{^Is_Scx=thai}', "");
     Expect(1, 3676, '\P{Is_Scx=thai}', "");
     Expect(0, 3676, '\P{^Is_Scx=thai}', "");
-    Expect(1, 3675, '\p{Is_Scx=		Thai}', "");
-    Expect(0, 3675, '\p{^Is_Scx=		Thai}', "");
-    Expect(0, 3675, '\P{Is_Scx=		Thai}', "");
-    Expect(1, 3675, '\P{^Is_Scx=		Thai}', "");
-    Expect(0, 3676, '\p{Is_Scx=		Thai}', "");
-    Expect(1, 3676, '\p{^Is_Scx=		Thai}', "");
-    Expect(1, 3676, '\P{Is_Scx=		Thai}', "");
-    Expect(0, 3676, '\P{^Is_Scx=		Thai}', "");
-    Error('\p{Script_Extensions=_:=Tibetan}');
-    Error('\P{Script_Extensions=_:=Tibetan}');
+    Expect(1, 3675, '\p{Is_Scx= _Thai}', "");
+    Expect(0, 3675, '\p{^Is_Scx= _Thai}', "");
+    Expect(0, 3675, '\P{Is_Scx= _Thai}', "");
+    Expect(1, 3675, '\P{^Is_Scx= _Thai}', "");
+    Expect(0, 3676, '\p{Is_Scx= _Thai}', "");
+    Expect(1, 3676, '\p{^Is_Scx= _Thai}', "");
+    Expect(1, 3676, '\P{Is_Scx= _Thai}', "");
+    Expect(0, 3676, '\P{^Is_Scx= _Thai}', "");
+    Error('\p{Script_Extensions=/a/-Tibetan}');
+    Error('\P{Script_Extensions=/a/-Tibetan}');
     Expect(1, 4058, '\p{Script_Extensions=:\ATibetan\z:}', "");;
     Expect(0, 4059, '\p{Script_Extensions=:\ATibetan\z:}', "");;
     Expect(1, 4058, '\p{Script_Extensions=tibetan}', "");
@@ -153021,16 +154485,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 4059, '\P{^Script_Extensions=tibetan}', "");
     Expect(1, 4058, '\p{Script_Extensions=:\Atibetan\z:}', "");;
     Expect(0, 4059, '\p{Script_Extensions=:\Atibetan\z:}', "");;
-    Expect(1, 4058, '\p{Script_Extensions=	TIBETAN}', "");
-    Expect(0, 4058, '\p{^Script_Extensions=	TIBETAN}', "");
-    Expect(0, 4058, '\P{Script_Extensions=	TIBETAN}', "");
-    Expect(1, 4058, '\P{^Script_Extensions=	TIBETAN}', "");
-    Expect(0, 4059, '\p{Script_Extensions=	TIBETAN}', "");
-    Expect(1, 4059, '\p{^Script_Extensions=	TIBETAN}', "");
-    Expect(1, 4059, '\P{Script_Extensions=	TIBETAN}', "");
-    Expect(0, 4059, '\P{^Script_Extensions=	TIBETAN}', "");
-    Error('\p{Scx=:=-Tibt}');
-    Error('\P{Scx=:=-Tibt}');
+    Expect(1, 4058, '\p{Script_Extensions=	_Tibetan}', "");
+    Expect(0, 4058, '\p{^Script_Extensions=	_Tibetan}', "");
+    Expect(0, 4058, '\P{Script_Extensions=	_Tibetan}', "");
+    Expect(1, 4058, '\P{^Script_Extensions=	_Tibetan}', "");
+    Expect(0, 4059, '\p{Script_Extensions=	_Tibetan}', "");
+    Expect(1, 4059, '\p{^Script_Extensions=	_Tibetan}', "");
+    Expect(1, 4059, '\P{Script_Extensions=	_Tibetan}', "");
+    Expect(0, 4059, '\P{^Script_Extensions=	_Tibetan}', "");
+    Error('\p{Scx=/a/Tibt}');
+    Error('\P{Scx=/a/Tibt}');
     Expect(1, 4058, '\p{Scx=:\ATibt\z:}', "");;
     Expect(0, 4059, '\p{Scx=:\ATibt\z:}', "");;
     Expect(1, 4058, '\p{Scx=tibt}', "");
@@ -153043,16 +154507,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 4059, '\P{^Scx=tibt}', "");
     Expect(1, 4058, '\p{Scx=:\Atibt\z:}', "");;
     Expect(0, 4059, '\p{Scx=:\Atibt\z:}', "");;
-    Expect(1, 4058, '\p{Scx=	Tibt}', "");
-    Expect(0, 4058, '\p{^Scx=	Tibt}', "");
-    Expect(0, 4058, '\P{Scx=	Tibt}', "");
-    Expect(1, 4058, '\P{^Scx=	Tibt}', "");
-    Expect(0, 4059, '\p{Scx=	Tibt}', "");
-    Expect(1, 4059, '\p{^Scx=	Tibt}', "");
-    Expect(1, 4059, '\P{Scx=	Tibt}', "");
-    Expect(0, 4059, '\P{^Scx=	Tibt}', "");
-    Error('\p{Is_Script_Extensions:   	 Tibetan:=}');
-    Error('\P{Is_Script_Extensions:   	 Tibetan:=}');
+    Expect(1, 4058, '\p{Scx: --TIBT}', "");
+    Expect(0, 4058, '\p{^Scx: --TIBT}', "");
+    Expect(0, 4058, '\P{Scx: --TIBT}', "");
+    Expect(1, 4058, '\P{^Scx: --TIBT}', "");
+    Expect(0, 4059, '\p{Scx: --TIBT}', "");
+    Expect(1, 4059, '\p{^Scx: --TIBT}', "");
+    Expect(1, 4059, '\P{Scx: --TIBT}', "");
+    Expect(0, 4059, '\P{^Scx: --TIBT}', "");
+    Error('\p{Is_Script_Extensions=_/a/tibetan}');
+    Error('\P{Is_Script_Extensions=_/a/tibetan}');
     Expect(1, 4058, '\p{Is_Script_Extensions=tibetan}', "");
     Expect(0, 4058, '\p{^Is_Script_Extensions=tibetan}', "");
     Expect(0, 4058, '\P{Is_Script_Extensions=tibetan}', "");
@@ -153061,34 +154525,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 4059, '\p{^Is_Script_Extensions=tibetan}', "");
     Expect(1, 4059, '\P{Is_Script_Extensions=tibetan}', "");
     Expect(0, 4059, '\P{^Is_Script_Extensions=tibetan}', "");
-    Expect(1, 4058, '\p{Is_Script_Extensions=	tibetan}', "");
-    Expect(0, 4058, '\p{^Is_Script_Extensions=	tibetan}', "");
-    Expect(0, 4058, '\P{Is_Script_Extensions=	tibetan}', "");
-    Expect(1, 4058, '\P{^Is_Script_Extensions=	tibetan}', "");
-    Expect(0, 4059, '\p{Is_Script_Extensions=	tibetan}', "");
-    Expect(1, 4059, '\p{^Is_Script_Extensions=	tibetan}', "");
-    Expect(1, 4059, '\P{Is_Script_Extensions=	tibetan}', "");
-    Expect(0, 4059, '\P{^Is_Script_Extensions=	tibetan}', "");
-    Error('\p{Is_Scx=:=TIBT}');
-    Error('\P{Is_Scx=:=TIBT}');
-    Expect(1, 4058, '\p{Is_Scx:	tibt}', "");
-    Expect(0, 4058, '\p{^Is_Scx:	tibt}', "");
-    Expect(0, 4058, '\P{Is_Scx:	tibt}', "");
-    Expect(1, 4058, '\P{^Is_Scx:	tibt}', "");
-    Expect(0, 4059, '\p{Is_Scx:	tibt}', "");
-    Expect(1, 4059, '\p{^Is_Scx:	tibt}', "");
-    Expect(1, 4059, '\P{Is_Scx:	tibt}', "");
-    Expect(0, 4059, '\P{^Is_Scx:	tibt}', "");
-    Expect(1, 4058, '\p{Is_Scx=	_Tibt}', "");
-    Expect(0, 4058, '\p{^Is_Scx=	_Tibt}', "");
-    Expect(0, 4058, '\P{Is_Scx=	_Tibt}', "");
-    Expect(1, 4058, '\P{^Is_Scx=	_Tibt}', "");
-    Expect(0, 4059, '\p{Is_Scx=	_Tibt}', "");
-    Expect(1, 4059, '\p{^Is_Scx=	_Tibt}', "");
-    Expect(1, 4059, '\P{Is_Scx=	_Tibt}', "");
-    Expect(0, 4059, '\P{^Is_Scx=	_Tibt}', "");
-    Error('\p{Script_Extensions=	:=Tirhuta}');
-    Error('\P{Script_Extensions=	:=Tirhuta}');
+    Expect(1, 4058, '\p{Is_Script_Extensions:--TIBETAN}', "");
+    Expect(0, 4058, '\p{^Is_Script_Extensions:--TIBETAN}', "");
+    Expect(0, 4058, '\P{Is_Script_Extensions:--TIBETAN}', "");
+    Expect(1, 4058, '\P{^Is_Script_Extensions:--TIBETAN}', "");
+    Expect(0, 4059, '\p{Is_Script_Extensions:--TIBETAN}', "");
+    Expect(1, 4059, '\p{^Is_Script_Extensions:--TIBETAN}', "");
+    Expect(1, 4059, '\P{Is_Script_Extensions:--TIBETAN}', "");
+    Expect(0, 4059, '\P{^Is_Script_Extensions:--TIBETAN}', "");
+    Error('\p{Is_Scx:   -tibt/a/}');
+    Error('\P{Is_Scx:   -tibt/a/}');
+    Expect(1, 4058, '\p{Is_Scx=tibt}', "");
+    Expect(0, 4058, '\p{^Is_Scx=tibt}', "");
+    Expect(0, 4058, '\P{Is_Scx=tibt}', "");
+    Expect(1, 4058, '\P{^Is_Scx=tibt}', "");
+    Expect(0, 4059, '\p{Is_Scx=tibt}', "");
+    Expect(1, 4059, '\p{^Is_Scx=tibt}', "");
+    Expect(1, 4059, '\P{Is_Scx=tibt}', "");
+    Expect(0, 4059, '\P{^Is_Scx=tibt}', "");
+    Expect(1, 4058, '\p{Is_Scx=_Tibt}', "");
+    Expect(0, 4058, '\p{^Is_Scx=_Tibt}', "");
+    Expect(0, 4058, '\P{Is_Scx=_Tibt}', "");
+    Expect(1, 4058, '\P{^Is_Scx=_Tibt}', "");
+    Expect(0, 4059, '\p{Is_Scx=_Tibt}', "");
+    Expect(1, 4059, '\p{^Is_Scx=_Tibt}', "");
+    Expect(1, 4059, '\P{Is_Scx=_Tibt}', "");
+    Expect(0, 4059, '\P{^Is_Scx=_Tibt}', "");
+    Error('\p{Script_Extensions:	/a/_TIRHUTA}');
+    Error('\P{Script_Extensions:	/a/_TIRHUTA}');
     Expect(1, 70873, '\p{Script_Extensions=:\ATirhuta\z:}', "");;
     Expect(0, 70874, '\p{Script_Extensions=:\ATirhuta\z:}', "");;
     Expect(1, 70873, '\p{Script_Extensions=tirhuta}', "");
@@ -153101,16 +154565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70874, '\P{^Script_Extensions=tirhuta}', "");
     Expect(1, 70873, '\p{Script_Extensions=:\Atirhuta\z:}', "");;
     Expect(0, 70874, '\p{Script_Extensions=:\Atirhuta\z:}', "");;
-    Expect(1, 70873, '\p{Script_Extensions=-Tirhuta}', "");
-    Expect(0, 70873, '\p{^Script_Extensions=-Tirhuta}', "");
-    Expect(0, 70873, '\P{Script_Extensions=-Tirhuta}', "");
-    Expect(1, 70873, '\P{^Script_Extensions=-Tirhuta}', "");
-    Expect(0, 70874, '\p{Script_Extensions=-Tirhuta}', "");
-    Expect(1, 70874, '\p{^Script_Extensions=-Tirhuta}', "");
-    Expect(1, 70874, '\P{Script_Extensions=-Tirhuta}', "");
-    Expect(0, 70874, '\P{^Script_Extensions=-Tirhuta}', "");
-    Error('\p{Scx=:=	_Tirh}');
-    Error('\P{Scx=:=	_Tirh}');
+    Expect(1, 70873, '\p{Script_Extensions=__Tirhuta}', "");
+    Expect(0, 70873, '\p{^Script_Extensions=__Tirhuta}', "");
+    Expect(0, 70873, '\P{Script_Extensions=__Tirhuta}', "");
+    Expect(1, 70873, '\P{^Script_Extensions=__Tirhuta}', "");
+    Expect(0, 70874, '\p{Script_Extensions=__Tirhuta}', "");
+    Expect(1, 70874, '\p{^Script_Extensions=__Tirhuta}', "");
+    Expect(1, 70874, '\P{Script_Extensions=__Tirhuta}', "");
+    Expect(0, 70874, '\P{^Script_Extensions=__Tirhuta}', "");
+    Error('\p{Scx= :=Tirh}');
+    Error('\P{Scx= :=Tirh}');
     Expect(1, 70873, '\p{Scx=:\ATirh\z:}', "");;
     Expect(0, 70874, '\p{Scx=:\ATirh\z:}', "");;
     Expect(1, 70873, '\p{Scx=tirh}', "");
@@ -153123,16 +154587,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 70874, '\P{^Scx=tirh}', "");
     Expect(1, 70873, '\p{Scx=:\Atirh\z:}', "");;
     Expect(0, 70874, '\p{Scx=:\Atirh\z:}', "");;
-    Expect(1, 70873, '\p{Scx= Tirh}', "");
-    Expect(0, 70873, '\p{^Scx= Tirh}', "");
-    Expect(0, 70873, '\P{Scx= Tirh}', "");
-    Expect(1, 70873, '\P{^Scx= Tirh}', "");
-    Expect(0, 70874, '\p{Scx= Tirh}', "");
-    Expect(1, 70874, '\p{^Scx= Tirh}', "");
-    Expect(1, 70874, '\P{Scx= Tirh}', "");
-    Expect(0, 70874, '\P{^Scx= Tirh}', "");
-    Error('\p{Is_Script_Extensions:   /a/_-tirhuta}');
-    Error('\P{Is_Script_Extensions:   /a/_-tirhuta}');
+    Expect(1, 70873, '\p{Scx=	 Tirh}', "");
+    Expect(0, 70873, '\p{^Scx=	 Tirh}', "");
+    Expect(0, 70873, '\P{Scx=	 Tirh}', "");
+    Expect(1, 70873, '\P{^Scx=	 Tirh}', "");
+    Expect(0, 70874, '\p{Scx=	 Tirh}', "");
+    Expect(1, 70874, '\p{^Scx=	 Tirh}', "");
+    Expect(1, 70874, '\P{Scx=	 Tirh}', "");
+    Expect(0, 70874, '\P{^Scx=	 Tirh}', "");
+    Error('\p{Is_Script_Extensions=:=- Tirhuta}');
+    Error('\P{Is_Script_Extensions=:=- Tirhuta}');
     Expect(1, 70873, '\p{Is_Script_Extensions=tirhuta}', "");
     Expect(0, 70873, '\p{^Is_Script_Extensions=tirhuta}', "");
     Expect(0, 70873, '\P{Is_Script_Extensions=tirhuta}', "");
@@ -153141,16 +154605,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^Is_Script_Extensions=tirhuta}', "");
     Expect(1, 70874, '\P{Is_Script_Extensions=tirhuta}', "");
     Expect(0, 70874, '\P{^Is_Script_Extensions=tirhuta}', "");
-    Expect(1, 70873, '\p{Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(0, 70873, '\p{^Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(0, 70873, '\P{Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(1, 70873, '\P{^Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(0, 70874, '\p{Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(1, 70874, '\p{^Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(1, 70874, '\P{Is_Script_Extensions=_ Tirhuta}', "");
-    Expect(0, 70874, '\P{^Is_Script_Extensions=_ Tirhuta}', "");
-    Error('\p{Is_Scx=-:=Tirh}');
-    Error('\P{Is_Scx=-:=Tirh}');
+    Expect(1, 70873, '\p{Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(0, 70873, '\p{^Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(0, 70873, '\P{Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(1, 70873, '\P{^Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(0, 70874, '\p{Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(1, 70874, '\p{^Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(1, 70874, '\P{Is_Script_Extensions=	 Tirhuta}', "");
+    Expect(0, 70874, '\P{^Is_Script_Extensions=	 Tirhuta}', "");
+    Error('\p{Is_Scx=/a/Tirh}');
+    Error('\P{Is_Scx=/a/Tirh}');
     Expect(1, 70873, '\p{Is_Scx=tirh}', "");
     Expect(0, 70873, '\p{^Is_Scx=tirh}', "");
     Expect(0, 70873, '\P{Is_Scx=tirh}', "");
@@ -153159,16 +154623,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 70874, '\p{^Is_Scx=tirh}', "");
     Expect(1, 70874, '\P{Is_Scx=tirh}', "");
     Expect(0, 70874, '\P{^Is_Scx=tirh}', "");
-    Expect(1, 70873, '\p{Is_Scx: 	Tirh}', "");
-    Expect(0, 70873, '\p{^Is_Scx: 	Tirh}', "");
-    Expect(0, 70873, '\P{Is_Scx: 	Tirh}', "");
-    Expect(1, 70873, '\P{^Is_Scx: 	Tirh}', "");
-    Expect(0, 70874, '\p{Is_Scx: 	Tirh}', "");
-    Expect(1, 70874, '\p{^Is_Scx: 	Tirh}', "");
-    Expect(1, 70874, '\P{Is_Scx: 	Tirh}', "");
-    Expect(0, 70874, '\P{^Is_Scx: 	Tirh}', "");
-    Error('\p{Script_Extensions=-:=tangsa}');
-    Error('\P{Script_Extensions=-:=tangsa}');
+    Expect(1, 70873, '\p{Is_Scx=		TIRH}', "");
+    Expect(0, 70873, '\p{^Is_Scx=		TIRH}', "");
+    Expect(0, 70873, '\P{Is_Scx=		TIRH}', "");
+    Expect(1, 70873, '\P{^Is_Scx=		TIRH}', "");
+    Expect(0, 70874, '\p{Is_Scx=		TIRH}', "");
+    Expect(1, 70874, '\p{^Is_Scx=		TIRH}', "");
+    Expect(1, 70874, '\P{Is_Scx=		TIRH}', "");
+    Expect(0, 70874, '\P{^Is_Scx=		TIRH}', "");
+    Error('\p{Script_Extensions=- Tangsa:=}');
+    Error('\P{Script_Extensions=- Tangsa:=}');
     Expect(1, 92873, '\p{Script_Extensions=:\ATangsa\z:}', "");;
     Expect(0, 92874, '\p{Script_Extensions=:\ATangsa\z:}', "");;
     Expect(1, 92873, '\p{Script_Extensions:   tangsa}', "");
@@ -153181,16 +154645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92874, '\P{^Script_Extensions:   tangsa}', "");
     Expect(1, 92873, '\p{Script_Extensions=:\Atangsa\z:}', "");;
     Expect(0, 92874, '\p{Script_Extensions=:\Atangsa\z:}', "");;
-    Expect(1, 92873, '\p{Script_Extensions=		Tangsa}', "");
-    Expect(0, 92873, '\p{^Script_Extensions=		Tangsa}', "");
-    Expect(0, 92873, '\P{Script_Extensions=		Tangsa}', "");
-    Expect(1, 92873, '\P{^Script_Extensions=		Tangsa}', "");
-    Expect(0, 92874, '\p{Script_Extensions=		Tangsa}', "");
-    Expect(1, 92874, '\p{^Script_Extensions=		Tangsa}', "");
-    Expect(1, 92874, '\P{Script_Extensions=		Tangsa}', "");
-    Expect(0, 92874, '\P{^Script_Extensions=		Tangsa}', "");
-    Error('\p{Scx= _TNSA/a/}');
-    Error('\P{Scx= _TNSA/a/}');
+    Expect(1, 92873, '\p{Script_Extensions=_-Tangsa}', "");
+    Expect(0, 92873, '\p{^Script_Extensions=_-Tangsa}', "");
+    Expect(0, 92873, '\P{Script_Extensions=_-Tangsa}', "");
+    Expect(1, 92873, '\P{^Script_Extensions=_-Tangsa}', "");
+    Expect(0, 92874, '\p{Script_Extensions=_-Tangsa}', "");
+    Expect(1, 92874, '\p{^Script_Extensions=_-Tangsa}', "");
+    Expect(1, 92874, '\P{Script_Extensions=_-Tangsa}', "");
+    Expect(0, 92874, '\P{^Script_Extensions=_-Tangsa}', "");
+    Error('\p{Scx=_	Tnsa:=}');
+    Error('\P{Scx=_	Tnsa:=}');
     Expect(1, 92873, '\p{Scx=:\ATnsa\z:}', "");;
     Expect(0, 92874, '\p{Scx=:\ATnsa\z:}', "");;
     Expect(1, 92873, '\p{Scx=tnsa}', "");
@@ -153203,16 +154667,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 92874, '\P{^Scx=tnsa}', "");
     Expect(1, 92873, '\p{Scx=:\Atnsa\z:}', "");;
     Expect(0, 92874, '\p{Scx=:\Atnsa\z:}', "");;
-    Expect(1, 92873, '\p{Scx=	tnsa}', "");
-    Expect(0, 92873, '\p{^Scx=	tnsa}', "");
-    Expect(0, 92873, '\P{Scx=	tnsa}', "");
-    Expect(1, 92873, '\P{^Scx=	tnsa}', "");
-    Expect(0, 92874, '\p{Scx=	tnsa}', "");
-    Expect(1, 92874, '\p{^Scx=	tnsa}', "");
-    Expect(1, 92874, '\P{Scx=	tnsa}', "");
-    Expect(0, 92874, '\P{^Scx=	tnsa}', "");
-    Error('\p{Is_Script_Extensions=:=TANGSA}');
-    Error('\P{Is_Script_Extensions=:=TANGSA}');
+    Expect(1, 92873, '\p{Scx=	-TNSA}', "");
+    Expect(0, 92873, '\p{^Scx=	-TNSA}', "");
+    Expect(0, 92873, '\P{Scx=	-TNSA}', "");
+    Expect(1, 92873, '\P{^Scx=	-TNSA}', "");
+    Expect(0, 92874, '\p{Scx=	-TNSA}', "");
+    Expect(1, 92874, '\p{^Scx=	-TNSA}', "");
+    Expect(1, 92874, '\P{Scx=	-TNSA}', "");
+    Expect(0, 92874, '\P{^Scx=	-TNSA}', "");
+    Error('\p{Is_Script_Extensions=_:=tangsa}');
+    Error('\P{Is_Script_Extensions=_:=tangsa}');
     Expect(1, 92873, '\p{Is_Script_Extensions=tangsa}', "");
     Expect(0, 92873, '\p{^Is_Script_Extensions=tangsa}', "");
     Expect(0, 92873, '\P{Is_Script_Extensions=tangsa}', "");
@@ -153221,16 +154685,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^Is_Script_Extensions=tangsa}', "");
     Expect(1, 92874, '\P{Is_Script_Extensions=tangsa}', "");
     Expect(0, 92874, '\P{^Is_Script_Extensions=tangsa}', "");
-    Expect(1, 92873, '\p{Is_Script_Extensions= 	Tangsa}', "");
-    Expect(0, 92873, '\p{^Is_Script_Extensions= 	Tangsa}', "");
-    Expect(0, 92873, '\P{Is_Script_Extensions= 	Tangsa}', "");
-    Expect(1, 92873, '\P{^Is_Script_Extensions= 	Tangsa}', "");
-    Expect(0, 92874, '\p{Is_Script_Extensions= 	Tangsa}', "");
-    Expect(1, 92874, '\p{^Is_Script_Extensions= 	Tangsa}', "");
-    Expect(1, 92874, '\P{Is_Script_Extensions= 	Tangsa}', "");
-    Expect(0, 92874, '\P{^Is_Script_Extensions= 	Tangsa}', "");
-    Error('\p{Is_Scx=:=__tnsa}');
-    Error('\P{Is_Scx=:=__tnsa}');
+    Expect(1, 92873, '\p{Is_Script_Extensions=- Tangsa}', "");
+    Expect(0, 92873, '\p{^Is_Script_Extensions=- Tangsa}', "");
+    Expect(0, 92873, '\P{Is_Script_Extensions=- Tangsa}', "");
+    Expect(1, 92873, '\P{^Is_Script_Extensions=- Tangsa}', "");
+    Expect(0, 92874, '\p{Is_Script_Extensions=- Tangsa}', "");
+    Expect(1, 92874, '\p{^Is_Script_Extensions=- Tangsa}', "");
+    Expect(1, 92874, '\P{Is_Script_Extensions=- Tangsa}', "");
+    Expect(0, 92874, '\P{^Is_Script_Extensions=- Tangsa}', "");
+    Error('\p{Is_Scx=-/a/TNSA}');
+    Error('\P{Is_Scx=-/a/TNSA}');
     Expect(1, 92873, '\p{Is_Scx=tnsa}', "");
     Expect(0, 92873, '\p{^Is_Scx=tnsa}', "");
     Expect(0, 92873, '\P{Is_Scx=tnsa}', "");
@@ -153239,16 +154703,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 92874, '\p{^Is_Scx=tnsa}', "");
     Expect(1, 92874, '\P{Is_Scx=tnsa}', "");
     Expect(0, 92874, '\P{^Is_Scx=tnsa}', "");
-    Expect(1, 92873, '\p{Is_Scx=- Tnsa}', "");
-    Expect(0, 92873, '\p{^Is_Scx=- Tnsa}', "");
-    Expect(0, 92873, '\P{Is_Scx=- Tnsa}', "");
-    Expect(1, 92873, '\P{^Is_Scx=- Tnsa}', "");
-    Expect(0, 92874, '\p{Is_Scx=- Tnsa}', "");
-    Expect(1, 92874, '\p{^Is_Scx=- Tnsa}', "");
-    Expect(1, 92874, '\P{Is_Scx=- Tnsa}', "");
-    Expect(0, 92874, '\P{^Is_Scx=- Tnsa}', "");
-    Error('\p{Script_Extensions= _Toto/a/}');
-    Error('\P{Script_Extensions= _Toto/a/}');
+    Expect(1, 92873, '\p{Is_Scx= Tnsa}', "");
+    Expect(0, 92873, '\p{^Is_Scx= Tnsa}', "");
+    Expect(0, 92873, '\P{Is_Scx= Tnsa}', "");
+    Expect(1, 92873, '\P{^Is_Scx= Tnsa}', "");
+    Expect(0, 92874, '\p{Is_Scx= Tnsa}', "");
+    Expect(1, 92874, '\p{^Is_Scx= Tnsa}', "");
+    Expect(1, 92874, '\P{Is_Scx= Tnsa}', "");
+    Expect(0, 92874, '\P{^Is_Scx= Tnsa}', "");
+    Error('\p{Script_Extensions= /a/toto}');
+    Error('\P{Script_Extensions= /a/toto}');
     Expect(1, 123566, '\p{Script_Extensions=:\AToto\z:}', "");;
     Expect(0, 123567, '\p{Script_Extensions=:\AToto\z:}', "");;
     Expect(1, 123566, '\p{Script_Extensions=toto}', "");
@@ -153261,16 +154725,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 123567, '\P{^Script_Extensions=toto}', "");
     Expect(1, 123566, '\p{Script_Extensions=:\Atoto\z:}', "");;
     Expect(0, 123567, '\p{Script_Extensions=:\Atoto\z:}', "");;
-    Expect(1, 123566, '\p{Script_Extensions=	toto}', "");
-    Expect(0, 123566, '\p{^Script_Extensions=	toto}', "");
-    Expect(0, 123566, '\P{Script_Extensions=	toto}', "");
-    Expect(1, 123566, '\P{^Script_Extensions=	toto}', "");
-    Expect(0, 123567, '\p{Script_Extensions=	toto}', "");
-    Expect(1, 123567, '\p{^Script_Extensions=	toto}', "");
-    Expect(1, 123567, '\P{Script_Extensions=	toto}', "");
-    Expect(0, 123567, '\P{^Script_Extensions=	toto}', "");
-    Error('\p{Scx=:=_Toto}');
-    Error('\P{Scx=:=_Toto}');
+    Expect(1, 123566, '\p{Script_Extensions= -Toto}', "");
+    Expect(0, 123566, '\p{^Script_Extensions= -Toto}', "");
+    Expect(0, 123566, '\P{Script_Extensions= -Toto}', "");
+    Expect(1, 123566, '\P{^Script_Extensions= -Toto}', "");
+    Expect(0, 123567, '\p{Script_Extensions= -Toto}', "");
+    Expect(1, 123567, '\p{^Script_Extensions= -Toto}', "");
+    Expect(1, 123567, '\P{Script_Extensions= -Toto}', "");
+    Expect(0, 123567, '\P{^Script_Extensions= -Toto}', "");
+    Error('\p{Scx: :=  toto}');
+    Error('\P{Scx: :=  toto}');
     Expect(1, 123566, '\p{Scx=:\AToto\z:}', "");;
     Expect(0, 123567, '\p{Scx=:\AToto\z:}', "");;
     Expect(1, 123566, '\p{Scx=toto}', "");
@@ -153283,16 +154747,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 123567, '\P{^Scx=toto}', "");
     Expect(1, 123566, '\p{Scx=:\Atoto\z:}', "");;
     Expect(0, 123567, '\p{Scx=:\Atoto\z:}', "");;
-    Expect(1, 123566, '\p{Scx= _Toto}', "");
-    Expect(0, 123566, '\p{^Scx= _Toto}', "");
-    Expect(0, 123566, '\P{Scx= _Toto}', "");
-    Expect(1, 123566, '\P{^Scx= _Toto}', "");
-    Expect(0, 123567, '\p{Scx= _Toto}', "");
-    Expect(1, 123567, '\p{^Scx= _Toto}', "");
-    Expect(1, 123567, '\P{Scx= _Toto}', "");
-    Expect(0, 123567, '\P{^Scx= _Toto}', "");
-    Error('\p{Is_Script_Extensions= Toto:=}');
-    Error('\P{Is_Script_Extensions= Toto:=}');
+    Expect(1, 123566, '\p{Scx=	toto}', "");
+    Expect(0, 123566, '\p{^Scx=	toto}', "");
+    Expect(0, 123566, '\P{Scx=	toto}', "");
+    Expect(1, 123566, '\P{^Scx=	toto}', "");
+    Expect(0, 123567, '\p{Scx=	toto}', "");
+    Expect(1, 123567, '\p{^Scx=	toto}', "");
+    Expect(1, 123567, '\P{Scx=	toto}', "");
+    Expect(0, 123567, '\P{^Scx=	toto}', "");
+    Error('\p{Is_Script_Extensions=:=-TOTO}');
+    Error('\P{Is_Script_Extensions=:=-TOTO}');
     Expect(1, 123566, '\p{Is_Script_Extensions=toto}', "");
     Expect(0, 123566, '\p{^Is_Script_Extensions=toto}', "");
     Expect(0, 123566, '\P{Is_Script_Extensions=toto}', "");
@@ -153301,34 +154765,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123567, '\p{^Is_Script_Extensions=toto}', "");
     Expect(1, 123567, '\P{Is_Script_Extensions=toto}', "");
     Expect(0, 123567, '\P{^Is_Script_Extensions=toto}', "");
-    Expect(1, 123566, '\p{Is_Script_Extensions=  Toto}', "");
-    Expect(0, 123566, '\p{^Is_Script_Extensions=  Toto}', "");
-    Expect(0, 123566, '\P{Is_Script_Extensions=  Toto}', "");
-    Expect(1, 123566, '\P{^Is_Script_Extensions=  Toto}', "");
-    Expect(0, 123567, '\p{Is_Script_Extensions=  Toto}', "");
-    Expect(1, 123567, '\p{^Is_Script_Extensions=  Toto}', "");
-    Expect(1, 123567, '\P{Is_Script_Extensions=  Toto}', "");
-    Expect(0, 123567, '\P{^Is_Script_Extensions=  Toto}', "");
-    Error('\p{Is_Scx=-	Toto/a/}');
-    Error('\P{Is_Scx=-	Toto/a/}');
-    Expect(1, 123566, '\p{Is_Scx: toto}', "");
-    Expect(0, 123566, '\p{^Is_Scx: toto}', "");
-    Expect(0, 123566, '\P{Is_Scx: toto}', "");
-    Expect(1, 123566, '\P{^Is_Scx: toto}', "");
-    Expect(0, 123567, '\p{Is_Scx: toto}', "");
-    Expect(1, 123567, '\p{^Is_Scx: toto}', "");
-    Expect(1, 123567, '\P{Is_Scx: toto}', "");
-    Expect(0, 123567, '\P{^Is_Scx: toto}', "");
-    Expect(1, 123566, '\p{Is_Scx: 		Toto}', "");
-    Expect(0, 123566, '\p{^Is_Scx: 		Toto}', "");
-    Expect(0, 123566, '\P{Is_Scx: 		Toto}', "");
-    Expect(1, 123566, '\P{^Is_Scx: 		Toto}', "");
-    Expect(0, 123567, '\p{Is_Scx: 		Toto}', "");
-    Expect(1, 123567, '\p{^Is_Scx: 		Toto}', "");
-    Expect(1, 123567, '\P{Is_Scx: 		Toto}', "");
-    Expect(0, 123567, '\P{^Is_Scx: 		Toto}', "");
-    Error('\p{Script_Extensions:  /a/Ugaritic}');
-    Error('\P{Script_Extensions:  /a/Ugaritic}');
+    Expect(1, 123566, '\p{Is_Script_Extensions=	 toto}', "");
+    Expect(0, 123566, '\p{^Is_Script_Extensions=	 toto}', "");
+    Expect(0, 123566, '\P{Is_Script_Extensions=	 toto}', "");
+    Expect(1, 123566, '\P{^Is_Script_Extensions=	 toto}', "");
+    Expect(0, 123567, '\p{Is_Script_Extensions=	 toto}', "");
+    Expect(1, 123567, '\p{^Is_Script_Extensions=	 toto}', "");
+    Expect(1, 123567, '\P{Is_Script_Extensions=	 toto}', "");
+    Expect(0, 123567, '\P{^Is_Script_Extensions=	 toto}', "");
+    Error('\p{Is_Scx=:=-TOTO}');
+    Error('\P{Is_Scx=:=-TOTO}');
+    Expect(1, 123566, '\p{Is_Scx=toto}', "");
+    Expect(0, 123566, '\p{^Is_Scx=toto}', "");
+    Expect(0, 123566, '\P{Is_Scx=toto}', "");
+    Expect(1, 123566, '\P{^Is_Scx=toto}', "");
+    Expect(0, 123567, '\p{Is_Scx=toto}', "");
+    Expect(1, 123567, '\p{^Is_Scx=toto}', "");
+    Expect(1, 123567, '\P{Is_Scx=toto}', "");
+    Expect(0, 123567, '\P{^Is_Scx=toto}', "");
+    Expect(1, 123566, '\p{Is_Scx: -_Toto}', "");
+    Expect(0, 123566, '\p{^Is_Scx: -_Toto}', "");
+    Expect(0, 123566, '\P{Is_Scx: -_Toto}', "");
+    Expect(1, 123566, '\P{^Is_Scx: -_Toto}', "");
+    Expect(0, 123567, '\p{Is_Scx: -_Toto}', "");
+    Expect(1, 123567, '\p{^Is_Scx: -_Toto}', "");
+    Expect(1, 123567, '\P{Is_Scx: -_Toto}', "");
+    Expect(0, 123567, '\P{^Is_Scx: -_Toto}', "");
+    Error('\p{Script_Extensions=:=	Ugaritic}');
+    Error('\P{Script_Extensions=:=	Ugaritic}');
     Expect(1, 66463, '\p{Script_Extensions=:\AUgaritic\z:}', "");;
     Expect(0, 66464, '\p{Script_Extensions=:\AUgaritic\z:}', "");;
     Expect(1, 66463, '\p{Script_Extensions=ugaritic}', "");
@@ -153341,38 +154805,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66464, '\P{^Script_Extensions=ugaritic}', "");
     Expect(1, 66463, '\p{Script_Extensions=:\Augaritic\z:}', "");;
     Expect(0, 66464, '\p{Script_Extensions=:\Augaritic\z:}', "");;
-    Expect(1, 66463, '\p{Script_Extensions=-	Ugaritic}', "");
-    Expect(0, 66463, '\p{^Script_Extensions=-	Ugaritic}', "");
-    Expect(0, 66463, '\P{Script_Extensions=-	Ugaritic}', "");
-    Expect(1, 66463, '\P{^Script_Extensions=-	Ugaritic}', "");
-    Expect(0, 66464, '\p{Script_Extensions=-	Ugaritic}', "");
-    Expect(1, 66464, '\p{^Script_Extensions=-	Ugaritic}', "");
-    Expect(1, 66464, '\P{Script_Extensions=-	Ugaritic}', "");
-    Expect(0, 66464, '\P{^Script_Extensions=-	Ugaritic}', "");
-    Error('\p{Scx=:= -Ugar}');
-    Error('\P{Scx=:= -Ugar}');
+    Expect(1, 66463, '\p{Script_Extensions=	Ugaritic}', "");
+    Expect(0, 66463, '\p{^Script_Extensions=	Ugaritic}', "");
+    Expect(0, 66463, '\P{Script_Extensions=	Ugaritic}', "");
+    Expect(1, 66463, '\P{^Script_Extensions=	Ugaritic}', "");
+    Expect(0, 66464, '\p{Script_Extensions=	Ugaritic}', "");
+    Expect(1, 66464, '\p{^Script_Extensions=	Ugaritic}', "");
+    Expect(1, 66464, '\P{Script_Extensions=	Ugaritic}', "");
+    Expect(0, 66464, '\P{^Script_Extensions=	Ugaritic}', "");
+    Error('\p{Scx=_:=ugar}');
+    Error('\P{Scx=_:=ugar}');
     Expect(1, 66463, '\p{Scx=:\AUgar\z:}', "");;
     Expect(0, 66464, '\p{Scx=:\AUgar\z:}', "");;
-    Expect(1, 66463, '\p{Scx:ugar}', "");
-    Expect(0, 66463, '\p{^Scx:ugar}', "");
-    Expect(0, 66463, '\P{Scx:ugar}', "");
-    Expect(1, 66463, '\P{^Scx:ugar}', "");
-    Expect(0, 66464, '\p{Scx:ugar}', "");
-    Expect(1, 66464, '\p{^Scx:ugar}', "");
-    Expect(1, 66464, '\P{Scx:ugar}', "");
-    Expect(0, 66464, '\P{^Scx:ugar}', "");
+    Expect(1, 66463, '\p{Scx=ugar}', "");
+    Expect(0, 66463, '\p{^Scx=ugar}', "");
+    Expect(0, 66463, '\P{Scx=ugar}', "");
+    Expect(1, 66463, '\P{^Scx=ugar}', "");
+    Expect(0, 66464, '\p{Scx=ugar}', "");
+    Expect(1, 66464, '\p{^Scx=ugar}', "");
+    Expect(1, 66464, '\P{Scx=ugar}', "");
+    Expect(0, 66464, '\P{^Scx=ugar}', "");
     Expect(1, 66463, '\p{Scx=:\Augar\z:}', "");;
     Expect(0, 66464, '\p{Scx=:\Augar\z:}', "");;
-    Expect(1, 66463, '\p{Scx=	-Ugar}', "");
-    Expect(0, 66463, '\p{^Scx=	-Ugar}', "");
-    Expect(0, 66463, '\P{Scx=	-Ugar}', "");
-    Expect(1, 66463, '\P{^Scx=	-Ugar}', "");
-    Expect(0, 66464, '\p{Scx=	-Ugar}', "");
-    Expect(1, 66464, '\p{^Scx=	-Ugar}', "");
-    Expect(1, 66464, '\P{Scx=	-Ugar}', "");
-    Expect(0, 66464, '\P{^Scx=	-Ugar}', "");
-    Error('\p{Is_Script_Extensions=:=- Ugaritic}');
-    Error('\P{Is_Script_Extensions=:=- Ugaritic}');
+    Expect(1, 66463, '\p{Scx: _ugar}', "");
+    Expect(0, 66463, '\p{^Scx: _ugar}', "");
+    Expect(0, 66463, '\P{Scx: _ugar}', "");
+    Expect(1, 66463, '\P{^Scx: _ugar}', "");
+    Expect(0, 66464, '\p{Scx: _ugar}', "");
+    Expect(1, 66464, '\p{^Scx: _ugar}', "");
+    Expect(1, 66464, '\P{Scx: _ugar}', "");
+    Expect(0, 66464, '\P{^Scx: _ugar}', "");
+    Error('\p{Is_Script_Extensions=:=UGARITIC}');
+    Error('\P{Is_Script_Extensions=:=UGARITIC}');
     Expect(1, 66463, '\p{Is_Script_Extensions=ugaritic}', "");
     Expect(0, 66463, '\p{^Is_Script_Extensions=ugaritic}', "");
     Expect(0, 66463, '\P{Is_Script_Extensions=ugaritic}', "");
@@ -153381,16 +154845,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^Is_Script_Extensions=ugaritic}', "");
     Expect(1, 66464, '\P{Is_Script_Extensions=ugaritic}', "");
     Expect(0, 66464, '\P{^Is_Script_Extensions=ugaritic}', "");
-    Expect(1, 66463, '\p{Is_Script_Extensions= UGARITIC}', "");
-    Expect(0, 66463, '\p{^Is_Script_Extensions= UGARITIC}', "");
-    Expect(0, 66463, '\P{Is_Script_Extensions= UGARITIC}', "");
-    Expect(1, 66463, '\P{^Is_Script_Extensions= UGARITIC}', "");
-    Expect(0, 66464, '\p{Is_Script_Extensions= UGARITIC}', "");
-    Expect(1, 66464, '\p{^Is_Script_Extensions= UGARITIC}', "");
-    Expect(1, 66464, '\P{Is_Script_Extensions= UGARITIC}', "");
-    Expect(0, 66464, '\P{^Is_Script_Extensions= UGARITIC}', "");
-    Error('\p{Is_Scx=:=UGAR}');
-    Error('\P{Is_Scx=:=UGAR}');
+    Expect(1, 66463, '\p{Is_Script_Extensions=-UGARITIC}', "");
+    Expect(0, 66463, '\p{^Is_Script_Extensions=-UGARITIC}', "");
+    Expect(0, 66463, '\P{Is_Script_Extensions=-UGARITIC}', "");
+    Expect(1, 66463, '\P{^Is_Script_Extensions=-UGARITIC}', "");
+    Expect(0, 66464, '\p{Is_Script_Extensions=-UGARITIC}', "");
+    Expect(1, 66464, '\p{^Is_Script_Extensions=-UGARITIC}', "");
+    Expect(1, 66464, '\P{Is_Script_Extensions=-UGARITIC}', "");
+    Expect(0, 66464, '\P{^Is_Script_Extensions=-UGARITIC}', "");
+    Error('\p{Is_Scx::= 	UGAR}');
+    Error('\P{Is_Scx::= 	UGAR}');
     Expect(1, 66463, '\p{Is_Scx=ugar}', "");
     Expect(0, 66463, '\p{^Is_Scx=ugar}', "");
     Expect(0, 66463, '\P{Is_Scx=ugar}', "");
@@ -153399,38 +154863,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66464, '\p{^Is_Scx=ugar}', "");
     Expect(1, 66464, '\P{Is_Scx=ugar}', "");
     Expect(0, 66464, '\P{^Is_Scx=ugar}', "");
-    Expect(1, 66463, '\p{Is_Scx=_ ugar}', "");
-    Expect(0, 66463, '\p{^Is_Scx=_ ugar}', "");
-    Expect(0, 66463, '\P{Is_Scx=_ ugar}', "");
-    Expect(1, 66463, '\P{^Is_Scx=_ ugar}', "");
-    Expect(0, 66464, '\p{Is_Scx=_ ugar}', "");
-    Expect(1, 66464, '\p{^Is_Scx=_ ugar}', "");
-    Expect(1, 66464, '\P{Is_Scx=_ ugar}', "");
-    Expect(0, 66464, '\P{^Is_Scx=_ ugar}', "");
-    Error('\p{Script_Extensions:   :=_-Vai}');
-    Error('\P{Script_Extensions:   :=_-Vai}');
+    Expect(1, 66463, '\p{Is_Scx=	_ugar}', "");
+    Expect(0, 66463, '\p{^Is_Scx=	_ugar}', "");
+    Expect(0, 66463, '\P{Is_Scx=	_ugar}', "");
+    Expect(1, 66463, '\P{^Is_Scx=	_ugar}', "");
+    Expect(0, 66464, '\p{Is_Scx=	_ugar}', "");
+    Expect(1, 66464, '\p{^Is_Scx=	_ugar}', "");
+    Expect(1, 66464, '\P{Is_Scx=	_ugar}', "");
+    Expect(0, 66464, '\P{^Is_Scx=	_ugar}', "");
+    Error('\p{Script_Extensions:/a/_	Vai}');
+    Error('\P{Script_Extensions:/a/_	Vai}');
     Expect(1, 42539, '\p{Script_Extensions=:\AVai\z:}', "");;
     Expect(0, 42540, '\p{Script_Extensions=:\AVai\z:}', "");;
-    Expect(1, 42539, '\p{Script_Extensions=vai}', "");
-    Expect(0, 42539, '\p{^Script_Extensions=vai}', "");
-    Expect(0, 42539, '\P{Script_Extensions=vai}', "");
-    Expect(1, 42539, '\P{^Script_Extensions=vai}', "");
-    Expect(0, 42540, '\p{Script_Extensions=vai}', "");
-    Expect(1, 42540, '\p{^Script_Extensions=vai}', "");
-    Expect(1, 42540, '\P{Script_Extensions=vai}', "");
-    Expect(0, 42540, '\P{^Script_Extensions=vai}', "");
+    Expect(1, 42539, '\p{Script_Extensions:	vai}', "");
+    Expect(0, 42539, '\p{^Script_Extensions:	vai}', "");
+    Expect(0, 42539, '\P{Script_Extensions:	vai}', "");
+    Expect(1, 42539, '\P{^Script_Extensions:	vai}', "");
+    Expect(0, 42540, '\p{Script_Extensions:	vai}', "");
+    Expect(1, 42540, '\p{^Script_Extensions:	vai}', "");
+    Expect(1, 42540, '\P{Script_Extensions:	vai}', "");
+    Expect(0, 42540, '\P{^Script_Extensions:	vai}', "");
     Expect(1, 42539, '\p{Script_Extensions=:\Avai\z:}', "");;
     Expect(0, 42540, '\p{Script_Extensions=:\Avai\z:}', "");;
-    Expect(1, 42539, '\p{Script_Extensions=-_Vai}', "");
-    Expect(0, 42539, '\p{^Script_Extensions=-_Vai}', "");
-    Expect(0, 42539, '\P{Script_Extensions=-_Vai}', "");
-    Expect(1, 42539, '\P{^Script_Extensions=-_Vai}', "");
-    Expect(0, 42540, '\p{Script_Extensions=-_Vai}', "");
-    Expect(1, 42540, '\p{^Script_Extensions=-_Vai}', "");
-    Expect(1, 42540, '\P{Script_Extensions=-_Vai}', "");
-    Expect(0, 42540, '\P{^Script_Extensions=-_Vai}', "");
-    Error('\p{Scx=	_Vaii:=}');
-    Error('\P{Scx=	_Vaii:=}');
+    Expect(1, 42539, '\p{Script_Extensions=		VAI}', "");
+    Expect(0, 42539, '\p{^Script_Extensions=		VAI}', "");
+    Expect(0, 42539, '\P{Script_Extensions=		VAI}', "");
+    Expect(1, 42539, '\P{^Script_Extensions=		VAI}', "");
+    Expect(0, 42540, '\p{Script_Extensions=		VAI}', "");
+    Expect(1, 42540, '\p{^Script_Extensions=		VAI}', "");
+    Expect(1, 42540, '\P{Script_Extensions=		VAI}', "");
+    Expect(0, 42540, '\P{^Script_Extensions=		VAI}', "");
+    Error('\p{Scx=--Vaii/a/}');
+    Error('\P{Scx=--Vaii/a/}');
     Expect(1, 42539, '\p{Scx=:\AVaii\z:}', "");;
     Expect(0, 42540, '\p{Scx=:\AVaii\z:}', "");;
     Expect(1, 42539, '\p{Scx=vaii}', "");
@@ -153443,16 +154907,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 42540, '\P{^Scx=vaii}', "");
     Expect(1, 42539, '\p{Scx=:\Avaii\z:}', "");;
     Expect(0, 42540, '\p{Scx=:\Avaii\z:}', "");;
-    Expect(1, 42539, '\p{Scx=--Vaii}', "");
-    Expect(0, 42539, '\p{^Scx=--Vaii}', "");
-    Expect(0, 42539, '\P{Scx=--Vaii}', "");
-    Expect(1, 42539, '\P{^Scx=--Vaii}', "");
-    Expect(0, 42540, '\p{Scx=--Vaii}', "");
-    Expect(1, 42540, '\p{^Scx=--Vaii}', "");
-    Expect(1, 42540, '\P{Scx=--Vaii}', "");
-    Expect(0, 42540, '\P{^Scx=--Vaii}', "");
-    Error('\p{Is_Script_Extensions= 	vai/a/}');
-    Error('\P{Is_Script_Extensions= 	vai/a/}');
+    Expect(1, 42539, '\p{Scx=_-Vaii}', "");
+    Expect(0, 42539, '\p{^Scx=_-Vaii}', "");
+    Expect(0, 42539, '\P{Scx=_-Vaii}', "");
+    Expect(1, 42539, '\P{^Scx=_-Vaii}', "");
+    Expect(0, 42540, '\p{Scx=_-Vaii}', "");
+    Expect(1, 42540, '\p{^Scx=_-Vaii}', "");
+    Expect(1, 42540, '\P{Scx=_-Vaii}', "");
+    Expect(0, 42540, '\P{^Scx=_-Vaii}', "");
+    Error('\p{Is_Script_Extensions=	/a/Vai}');
+    Error('\P{Is_Script_Extensions=	/a/Vai}');
     Expect(1, 42539, '\p{Is_Script_Extensions=vai}', "");
     Expect(0, 42539, '\p{^Is_Script_Extensions=vai}', "");
     Expect(0, 42539, '\P{Is_Script_Extensions=vai}', "");
@@ -153461,16 +154925,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^Is_Script_Extensions=vai}', "");
     Expect(1, 42540, '\P{Is_Script_Extensions=vai}', "");
     Expect(0, 42540, '\P{^Is_Script_Extensions=vai}', "");
-    Expect(1, 42539, '\p{Is_Script_Extensions= 	Vai}', "");
-    Expect(0, 42539, '\p{^Is_Script_Extensions= 	Vai}', "");
-    Expect(0, 42539, '\P{Is_Script_Extensions= 	Vai}', "");
-    Expect(1, 42539, '\P{^Is_Script_Extensions= 	Vai}', "");
-    Expect(0, 42540, '\p{Is_Script_Extensions= 	Vai}', "");
-    Expect(1, 42540, '\p{^Is_Script_Extensions= 	Vai}', "");
-    Expect(1, 42540, '\P{Is_Script_Extensions= 	Vai}', "");
-    Expect(0, 42540, '\P{^Is_Script_Extensions= 	Vai}', "");
-    Error('\p{Is_Scx=	-vaii:=}');
-    Error('\P{Is_Scx=	-vaii:=}');
+    Expect(1, 42539, '\p{Is_Script_Extensions:   --Vai}', "");
+    Expect(0, 42539, '\p{^Is_Script_Extensions:   --Vai}', "");
+    Expect(0, 42539, '\P{Is_Script_Extensions:   --Vai}', "");
+    Expect(1, 42539, '\P{^Is_Script_Extensions:   --Vai}', "");
+    Expect(0, 42540, '\p{Is_Script_Extensions:   --Vai}', "");
+    Expect(1, 42540, '\p{^Is_Script_Extensions:   --Vai}', "");
+    Expect(1, 42540, '\P{Is_Script_Extensions:   --Vai}', "");
+    Expect(0, 42540, '\P{^Is_Script_Extensions:   --Vai}', "");
+    Error('\p{Is_Scx:	-VAII/a/}');
+    Error('\P{Is_Scx:	-VAII/a/}');
     Expect(1, 42539, '\p{Is_Scx=vaii}', "");
     Expect(0, 42539, '\p{^Is_Scx=vaii}', "");
     Expect(0, 42539, '\P{Is_Scx=vaii}', "");
@@ -153487,8 +154951,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 42540, '\p{^Is_Scx=__vaii}', "");
     Expect(1, 42540, '\P{Is_Scx=__vaii}', "");
     Expect(0, 42540, '\P{^Is_Scx=__vaii}', "");
-    Error('\p{Script_Extensions=-_VITHKUQI/a/}');
-    Error('\P{Script_Extensions=-_VITHKUQI/a/}');
+    Error('\p{Script_Extensions=VITHKUQI/a/}');
+    Error('\P{Script_Extensions=VITHKUQI/a/}');
     Expect(1, 67004, '\p{Script_Extensions=:\AVithkuqi\z:}', "");;
     Expect(0, 67005, '\p{Script_Extensions=:\AVithkuqi\z:}', "");;
     Expect(1, 67004, '\p{Script_Extensions=vithkuqi}', "");
@@ -153501,16 +154965,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67005, '\P{^Script_Extensions=vithkuqi}', "");
     Expect(1, 67004, '\p{Script_Extensions=:\Avithkuqi\z:}', "");;
     Expect(0, 67005, '\p{Script_Extensions=:\Avithkuqi\z:}', "");;
-    Expect(1, 67004, '\p{Script_Extensions=	-Vithkuqi}', "");
-    Expect(0, 67004, '\p{^Script_Extensions=	-Vithkuqi}', "");
-    Expect(0, 67004, '\P{Script_Extensions=	-Vithkuqi}', "");
-    Expect(1, 67004, '\P{^Script_Extensions=	-Vithkuqi}', "");
-    Expect(0, 67005, '\p{Script_Extensions=	-Vithkuqi}', "");
-    Expect(1, 67005, '\p{^Script_Extensions=	-Vithkuqi}', "");
-    Expect(1, 67005, '\P{Script_Extensions=	-Vithkuqi}', "");
-    Expect(0, 67005, '\P{^Script_Extensions=	-Vithkuqi}', "");
-    Error('\p{Scx:   :=__Vith}');
-    Error('\P{Scx:   :=__Vith}');
+    Expect(1, 67004, '\p{Script_Extensions=		vithkuqi}', "");
+    Expect(0, 67004, '\p{^Script_Extensions=		vithkuqi}', "");
+    Expect(0, 67004, '\P{Script_Extensions=		vithkuqi}', "");
+    Expect(1, 67004, '\P{^Script_Extensions=		vithkuqi}', "");
+    Expect(0, 67005, '\p{Script_Extensions=		vithkuqi}', "");
+    Expect(1, 67005, '\p{^Script_Extensions=		vithkuqi}', "");
+    Expect(1, 67005, '\P{Script_Extensions=		vithkuqi}', "");
+    Expect(0, 67005, '\P{^Script_Extensions=		vithkuqi}', "");
+    Error('\p{Scx=-/a/Vith}');
+    Error('\P{Scx=-/a/Vith}');
     Expect(1, 67004, '\p{Scx=:\AVith\z:}', "");;
     Expect(0, 67005, '\p{Scx=:\AVith\z:}', "");;
     Expect(1, 67004, '\p{Scx=vith}', "");
@@ -153523,16 +154987,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 67005, '\P{^Scx=vith}', "");
     Expect(1, 67004, '\p{Scx=:\Avith\z:}', "");;
     Expect(0, 67005, '\p{Scx=:\Avith\z:}', "");;
-    Expect(1, 67004, '\p{Scx=_	vith}', "");
-    Expect(0, 67004, '\p{^Scx=_	vith}', "");
-    Expect(0, 67004, '\P{Scx=_	vith}', "");
-    Expect(1, 67004, '\P{^Scx=_	vith}', "");
-    Expect(0, 67005, '\p{Scx=_	vith}', "");
-    Expect(1, 67005, '\p{^Scx=_	vith}', "");
-    Expect(1, 67005, '\P{Scx=_	vith}', "");
-    Expect(0, 67005, '\P{^Scx=_	vith}', "");
-    Error('\p{Is_Script_Extensions=-/a/vithkuqi}');
-    Error('\P{Is_Script_Extensions=-/a/vithkuqi}');
+    Expect(1, 67004, '\p{Scx=_	Vith}', "");
+    Expect(0, 67004, '\p{^Scx=_	Vith}', "");
+    Expect(0, 67004, '\P{Scx=_	Vith}', "");
+    Expect(1, 67004, '\P{^Scx=_	Vith}', "");
+    Expect(0, 67005, '\p{Scx=_	Vith}', "");
+    Expect(1, 67005, '\p{^Scx=_	Vith}', "");
+    Expect(1, 67005, '\P{Scx=_	Vith}', "");
+    Expect(0, 67005, '\P{^Scx=_	Vith}', "");
+    Error('\p{Is_Script_Extensions=/a/VITHKUQI}');
+    Error('\P{Is_Script_Extensions=/a/VITHKUQI}');
     Expect(1, 67004, '\p{Is_Script_Extensions=vithkuqi}', "");
     Expect(0, 67004, '\p{^Is_Script_Extensions=vithkuqi}', "");
     Expect(0, 67004, '\P{Is_Script_Extensions=vithkuqi}', "");
@@ -153541,16 +155005,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67005, '\p{^Is_Script_Extensions=vithkuqi}', "");
     Expect(1, 67005, '\P{Is_Script_Extensions=vithkuqi}', "");
     Expect(0, 67005, '\P{^Is_Script_Extensions=vithkuqi}', "");
-    Expect(1, 67004, '\p{Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(0, 67004, '\p{^Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(0, 67004, '\P{Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(1, 67004, '\P{^Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(0, 67005, '\p{Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(1, 67005, '\p{^Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(1, 67005, '\P{Is_Script_Extensions=_	VITHKUQI}', "");
-    Expect(0, 67005, '\P{^Is_Script_Extensions=_	VITHKUQI}', "");
-    Error('\p{Is_Scx=	-Vith:=}');
-    Error('\P{Is_Scx=	-Vith:=}');
+    Expect(1, 67004, '\p{Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(0, 67004, '\p{^Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(0, 67004, '\P{Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(1, 67004, '\P{^Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(0, 67005, '\p{Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(1, 67005, '\p{^Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(1, 67005, '\P{Is_Script_Extensions= _VITHKUQI}', "");
+    Expect(0, 67005, '\P{^Is_Script_Extensions= _VITHKUQI}', "");
+    Error('\p{Is_Scx=  vith/a/}');
+    Error('\P{Is_Scx=  vith/a/}');
     Expect(1, 67004, '\p{Is_Scx=vith}', "");
     Expect(0, 67004, '\p{^Is_Scx=vith}', "");
     Expect(0, 67004, '\P{Is_Scx=vith}', "");
@@ -153559,16 +155023,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 67005, '\p{^Is_Scx=vith}', "");
     Expect(1, 67005, '\P{Is_Scx=vith}', "");
     Expect(0, 67005, '\P{^Is_Scx=vith}', "");
-    Expect(1, 67004, '\p{Is_Scx=- VITH}', "");
-    Expect(0, 67004, '\p{^Is_Scx=- VITH}', "");
-    Expect(0, 67004, '\P{Is_Scx=- VITH}', "");
-    Expect(1, 67004, '\P{^Is_Scx=- VITH}', "");
-    Expect(0, 67005, '\p{Is_Scx=- VITH}', "");
-    Expect(1, 67005, '\p{^Is_Scx=- VITH}', "");
-    Expect(1, 67005, '\P{Is_Scx=- VITH}', "");
-    Expect(0, 67005, '\P{^Is_Scx=- VITH}', "");
-    Error('\p{Script_Extensions=__WARANG_CITI/a/}');
-    Error('\P{Script_Extensions=__WARANG_CITI/a/}');
+    Expect(1, 67004, '\p{Is_Scx=	_Vith}', "");
+    Expect(0, 67004, '\p{^Is_Scx=	_Vith}', "");
+    Expect(0, 67004, '\P{Is_Scx=	_Vith}', "");
+    Expect(1, 67004, '\P{^Is_Scx=	_Vith}', "");
+    Expect(0, 67005, '\p{Is_Scx=	_Vith}', "");
+    Expect(1, 67005, '\p{^Is_Scx=	_Vith}', "");
+    Expect(1, 67005, '\P{Is_Scx=	_Vith}', "");
+    Expect(0, 67005, '\P{^Is_Scx=	_Vith}', "");
+    Error('\p{Script_Extensions:/a/WARANG_Citi}');
+    Error('\P{Script_Extensions:/a/WARANG_Citi}');
     Expect(1, 71935, '\p{Script_Extensions=:\AWarang_Citi\z:}', "");;
     Expect(0, 71936, '\p{Script_Extensions=:\AWarang_Citi\z:}', "");;
     Expect(1, 71935, '\p{Script_Extensions=warangciti}', "");
@@ -153581,38 +155045,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 71936, '\P{^Script_Extensions=warangciti}', "");
     Expect(1, 71935, '\p{Script_Extensions=:\Awarangciti\z:}', "");;
     Expect(0, 71936, '\p{Script_Extensions=:\Awarangciti\z:}', "");;
-    Expect(1, 71935, '\p{Script_Extensions= Warang_citi}', "");
-    Expect(0, 71935, '\p{^Script_Extensions= Warang_citi}', "");
-    Expect(0, 71935, '\P{Script_Extensions= Warang_citi}', "");
-    Expect(1, 71935, '\P{^Script_Extensions= Warang_citi}', "");
-    Expect(0, 71936, '\p{Script_Extensions= Warang_citi}', "");
-    Expect(1, 71936, '\p{^Script_Extensions= Warang_citi}', "");
-    Expect(1, 71936, '\P{Script_Extensions= Warang_citi}', "");
-    Expect(0, 71936, '\P{^Script_Extensions= Warang_citi}', "");
-    Error('\p{Scx=:=__WARA}');
-    Error('\P{Scx=:=__WARA}');
+    Expect(1, 71935, '\p{Script_Extensions= Warang_Citi}', "");
+    Expect(0, 71935, '\p{^Script_Extensions= Warang_Citi}', "");
+    Expect(0, 71935, '\P{Script_Extensions= Warang_Citi}', "");
+    Expect(1, 71935, '\P{^Script_Extensions= Warang_Citi}', "");
+    Expect(0, 71936, '\p{Script_Extensions= Warang_Citi}', "");
+    Expect(1, 71936, '\p{^Script_Extensions= Warang_Citi}', "");
+    Expect(1, 71936, '\P{Script_Extensions= Warang_Citi}', "");
+    Expect(0, 71936, '\P{^Script_Extensions= Warang_Citi}', "");
+    Error('\p{Scx=:=wara}');
+    Error('\P{Scx=:=wara}');
     Expect(1, 71935, '\p{Scx=:\AWara\z:}', "");;
     Expect(0, 71936, '\p{Scx=:\AWara\z:}', "");;
-    Expect(1, 71935, '\p{Scx: wara}', "");
-    Expect(0, 71935, '\p{^Scx: wara}', "");
-    Expect(0, 71935, '\P{Scx: wara}', "");
-    Expect(1, 71935, '\P{^Scx: wara}', "");
-    Expect(0, 71936, '\p{Scx: wara}', "");
-    Expect(1, 71936, '\p{^Scx: wara}', "");
-    Expect(1, 71936, '\P{Scx: wara}', "");
-    Expect(0, 71936, '\P{^Scx: wara}', "");
+    Expect(1, 71935, '\p{Scx=wara}', "");
+    Expect(0, 71935, '\p{^Scx=wara}', "");
+    Expect(0, 71935, '\P{Scx=wara}', "");
+    Expect(1, 71935, '\P{^Scx=wara}', "");
+    Expect(0, 71936, '\p{Scx=wara}', "");
+    Expect(1, 71936, '\p{^Scx=wara}', "");
+    Expect(1, 71936, '\P{Scx=wara}', "");
+    Expect(0, 71936, '\P{^Scx=wara}', "");
     Expect(1, 71935, '\p{Scx=:\Awara\z:}', "");;
     Expect(0, 71936, '\p{Scx=:\Awara\z:}', "");;
-    Expect(1, 71935, '\p{Scx:   _	Wara}', "");
-    Expect(0, 71935, '\p{^Scx:   _	Wara}', "");
-    Expect(0, 71935, '\P{Scx:   _	Wara}', "");
-    Expect(1, 71935, '\P{^Scx:   _	Wara}', "");
-    Expect(0, 71936, '\p{Scx:   _	Wara}', "");
-    Expect(1, 71936, '\p{^Scx:   _	Wara}', "");
-    Expect(1, 71936, '\P{Scx:   _	Wara}', "");
-    Expect(0, 71936, '\P{^Scx:   _	Wara}', "");
-    Error('\p{Is_Script_Extensions:	/a/		Warang_CITI}');
-    Error('\P{Is_Script_Extensions:	/a/		Warang_CITI}');
+    Expect(1, 71935, '\p{Scx=	-Wara}', "");
+    Expect(0, 71935, '\p{^Scx=	-Wara}', "");
+    Expect(0, 71935, '\P{Scx=	-Wara}', "");
+    Expect(1, 71935, '\P{^Scx=	-Wara}', "");
+    Expect(0, 71936, '\p{Scx=	-Wara}', "");
+    Expect(1, 71936, '\p{^Scx=	-Wara}', "");
+    Expect(1, 71936, '\P{Scx=	-Wara}', "");
+    Expect(0, 71936, '\P{^Scx=	-Wara}', "");
+    Error('\p{Is_Script_Extensions=/a/WARANG_Citi}');
+    Error('\P{Is_Script_Extensions=/a/WARANG_Citi}');
     Expect(1, 71935, '\p{Is_Script_Extensions=warangciti}', "");
     Expect(0, 71935, '\p{^Is_Script_Extensions=warangciti}', "");
     Expect(0, 71935, '\P{Is_Script_Extensions=warangciti}', "");
@@ -153621,16 +155085,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^Is_Script_Extensions=warangciti}', "");
     Expect(1, 71936, '\P{Is_Script_Extensions=warangciti}', "");
     Expect(0, 71936, '\P{^Is_Script_Extensions=warangciti}', "");
-    Expect(1, 71935, '\p{Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(0, 71935, '\p{^Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(0, 71935, '\P{Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(1, 71935, '\P{^Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(0, 71936, '\p{Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(1, 71936, '\p{^Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(1, 71936, '\P{Is_Script_Extensions:	-Warang_citi}', "");
-    Expect(0, 71936, '\P{^Is_Script_Extensions:	-Warang_citi}', "");
-    Error('\p{Is_Scx:_:=WARA}');
-    Error('\P{Is_Scx:_:=WARA}');
+    Expect(1, 71935, '\p{Is_Script_Extensions= Warang_CITI}', "");
+    Expect(0, 71935, '\p{^Is_Script_Extensions= Warang_CITI}', "");
+    Expect(0, 71935, '\P{Is_Script_Extensions= Warang_CITI}', "");
+    Expect(1, 71935, '\P{^Is_Script_Extensions= Warang_CITI}', "");
+    Expect(0, 71936, '\p{Is_Script_Extensions= Warang_CITI}', "");
+    Expect(1, 71936, '\p{^Is_Script_Extensions= Warang_CITI}', "");
+    Expect(1, 71936, '\P{Is_Script_Extensions= Warang_CITI}', "");
+    Expect(0, 71936, '\P{^Is_Script_Extensions= Warang_CITI}', "");
+    Error('\p{Is_Scx:   /a/ -WARA}');
+    Error('\P{Is_Scx:   /a/ -WARA}');
     Expect(1, 71935, '\p{Is_Scx=wara}', "");
     Expect(0, 71935, '\p{^Is_Scx=wara}', "");
     Expect(0, 71935, '\P{Is_Scx=wara}', "");
@@ -153639,38 +155103,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 71936, '\p{^Is_Scx=wara}', "");
     Expect(1, 71936, '\P{Is_Scx=wara}', "");
     Expect(0, 71936, '\P{^Is_Scx=wara}', "");
-    Expect(1, 71935, '\p{Is_Scx=		Wara}', "");
-    Expect(0, 71935, '\p{^Is_Scx=		Wara}', "");
-    Expect(0, 71935, '\P{Is_Scx=		Wara}', "");
-    Expect(1, 71935, '\P{^Is_Scx=		Wara}', "");
-    Expect(0, 71936, '\p{Is_Scx=		Wara}', "");
-    Expect(1, 71936, '\p{^Is_Scx=		Wara}', "");
-    Expect(1, 71936, '\P{Is_Scx=		Wara}', "");
-    Expect(0, 71936, '\P{^Is_Scx=		Wara}', "");
-    Error('\p{Script_Extensions=:= WANCHO}');
-    Error('\P{Script_Extensions=:= WANCHO}');
+    Expect(1, 71935, '\p{Is_Scx=  Wara}', "");
+    Expect(0, 71935, '\p{^Is_Scx=  Wara}', "");
+    Expect(0, 71935, '\P{Is_Scx=  Wara}', "");
+    Expect(1, 71935, '\P{^Is_Scx=  Wara}', "");
+    Expect(0, 71936, '\p{Is_Scx=  Wara}', "");
+    Expect(1, 71936, '\p{^Is_Scx=  Wara}', "");
+    Expect(1, 71936, '\P{Is_Scx=  Wara}', "");
+    Expect(0, 71936, '\P{^Is_Scx=  Wara}', "");
+    Error('\p{Script_Extensions=_ wancho:=}');
+    Error('\P{Script_Extensions=_ wancho:=}');
     Expect(1, 123647, '\p{Script_Extensions=:\AWancho\z:}', "");;
     Expect(0, 123648, '\p{Script_Extensions=:\AWancho\z:}', "");;
-    Expect(1, 123647, '\p{Script_Extensions:	wancho}', "");
-    Expect(0, 123647, '\p{^Script_Extensions:	wancho}', "");
-    Expect(0, 123647, '\P{Script_Extensions:	wancho}', "");
-    Expect(1, 123647, '\P{^Script_Extensions:	wancho}', "");
-    Expect(0, 123648, '\p{Script_Extensions:	wancho}', "");
-    Expect(1, 123648, '\p{^Script_Extensions:	wancho}', "");
-    Expect(1, 123648, '\P{Script_Extensions:	wancho}', "");
-    Expect(0, 123648, '\P{^Script_Extensions:	wancho}', "");
+    Expect(1, 123647, '\p{Script_Extensions=wancho}', "");
+    Expect(0, 123647, '\p{^Script_Extensions=wancho}', "");
+    Expect(0, 123647, '\P{Script_Extensions=wancho}', "");
+    Expect(1, 123647, '\P{^Script_Extensions=wancho}', "");
+    Expect(0, 123648, '\p{Script_Extensions=wancho}', "");
+    Expect(1, 123648, '\p{^Script_Extensions=wancho}', "");
+    Expect(1, 123648, '\P{Script_Extensions=wancho}', "");
+    Expect(0, 123648, '\P{^Script_Extensions=wancho}', "");
     Expect(1, 123647, '\p{Script_Extensions=:\Awancho\z:}', "");;
     Expect(0, 123648, '\p{Script_Extensions=:\Awancho\z:}', "");;
-    Expect(1, 123647, '\p{Script_Extensions=_WANCHO}', "");
-    Expect(0, 123647, '\p{^Script_Extensions=_WANCHO}', "");
-    Expect(0, 123647, '\P{Script_Extensions=_WANCHO}', "");
-    Expect(1, 123647, '\P{^Script_Extensions=_WANCHO}', "");
-    Expect(0, 123648, '\p{Script_Extensions=_WANCHO}', "");
-    Expect(1, 123648, '\p{^Script_Extensions=_WANCHO}', "");
-    Expect(1, 123648, '\P{Script_Extensions=_WANCHO}', "");
-    Expect(0, 123648, '\P{^Script_Extensions=_WANCHO}', "");
-    Error('\p{Scx=:=-wcho}');
-    Error('\P{Scx=:=-wcho}');
+    Expect(1, 123647, '\p{Script_Extensions=	-WANCHO}', "");
+    Expect(0, 123647, '\p{^Script_Extensions=	-WANCHO}', "");
+    Expect(0, 123647, '\P{Script_Extensions=	-WANCHO}', "");
+    Expect(1, 123647, '\P{^Script_Extensions=	-WANCHO}', "");
+    Expect(0, 123648, '\p{Script_Extensions=	-WANCHO}', "");
+    Expect(1, 123648, '\p{^Script_Extensions=	-WANCHO}', "");
+    Expect(1, 123648, '\P{Script_Extensions=	-WANCHO}', "");
+    Expect(0, 123648, '\P{^Script_Extensions=	-WANCHO}', "");
+    Error('\p{Scx=:=_ Wcho}');
+    Error('\P{Scx=:=_ Wcho}');
     Expect(1, 123647, '\p{Scx=:\AWcho\z:}', "");;
     Expect(0, 123648, '\p{Scx=:\AWcho\z:}', "");;
     Expect(1, 123647, '\p{Scx=wcho}', "");
@@ -153683,34 +155147,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 123648, '\P{^Scx=wcho}', "");
     Expect(1, 123647, '\p{Scx=:\Awcho\z:}', "");;
     Expect(0, 123648, '\p{Scx=:\Awcho\z:}', "");;
-    Expect(1, 123647, '\p{Scx= wcho}', "");
-    Expect(0, 123647, '\p{^Scx= wcho}', "");
-    Expect(0, 123647, '\P{Scx= wcho}', "");
-    Expect(1, 123647, '\P{^Scx= wcho}', "");
-    Expect(0, 123648, '\p{Scx= wcho}', "");
-    Expect(1, 123648, '\p{^Scx= wcho}', "");
-    Expect(1, 123648, '\P{Scx= wcho}', "");
-    Expect(0, 123648, '\P{^Scx= wcho}', "");
-    Error('\p{Is_Script_Extensions:	:=	-Wancho}');
-    Error('\P{Is_Script_Extensions:	:=	-Wancho}');
-    Expect(1, 123647, '\p{Is_Script_Extensions:	wancho}', "");
-    Expect(0, 123647, '\p{^Is_Script_Extensions:	wancho}', "");
-    Expect(0, 123647, '\P{Is_Script_Extensions:	wancho}', "");
-    Expect(1, 123647, '\P{^Is_Script_Extensions:	wancho}', "");
-    Expect(0, 123648, '\p{Is_Script_Extensions:	wancho}', "");
-    Expect(1, 123648, '\p{^Is_Script_Extensions:	wancho}', "");
-    Expect(1, 123648, '\P{Is_Script_Extensions:	wancho}', "");
-    Expect(0, 123648, '\P{^Is_Script_Extensions:	wancho}', "");
-    Expect(1, 123647, '\p{Is_Script_Extensions=		Wancho}', "");
-    Expect(0, 123647, '\p{^Is_Script_Extensions=		Wancho}', "");
-    Expect(0, 123647, '\P{Is_Script_Extensions=		Wancho}', "");
-    Expect(1, 123647, '\P{^Is_Script_Extensions=		Wancho}', "");
-    Expect(0, 123648, '\p{Is_Script_Extensions=		Wancho}', "");
-    Expect(1, 123648, '\p{^Is_Script_Extensions=		Wancho}', "");
-    Expect(1, 123648, '\P{Is_Script_Extensions=		Wancho}', "");
-    Expect(0, 123648, '\P{^Is_Script_Extensions=		Wancho}', "");
-    Error('\p{Is_Scx=-:=wcho}');
-    Error('\P{Is_Scx=-:=wcho}');
+    Expect(1, 123647, '\p{Scx=Wcho}', "");
+    Expect(0, 123647, '\p{^Scx=Wcho}', "");
+    Expect(0, 123647, '\P{Scx=Wcho}', "");
+    Expect(1, 123647, '\P{^Scx=Wcho}', "");
+    Expect(0, 123648, '\p{Scx=Wcho}', "");
+    Expect(1, 123648, '\p{^Scx=Wcho}', "");
+    Expect(1, 123648, '\P{Scx=Wcho}', "");
+    Expect(0, 123648, '\P{^Scx=Wcho}', "");
+    Error('\p{Is_Script_Extensions=-	Wancho/a/}');
+    Error('\P{Is_Script_Extensions=-	Wancho/a/}');
+    Expect(1, 123647, '\p{Is_Script_Extensions=wancho}', "");
+    Expect(0, 123647, '\p{^Is_Script_Extensions=wancho}', "");
+    Expect(0, 123647, '\P{Is_Script_Extensions=wancho}', "");
+    Expect(1, 123647, '\P{^Is_Script_Extensions=wancho}', "");
+    Expect(0, 123648, '\p{Is_Script_Extensions=wancho}', "");
+    Expect(1, 123648, '\p{^Is_Script_Extensions=wancho}', "");
+    Expect(1, 123648, '\P{Is_Script_Extensions=wancho}', "");
+    Expect(0, 123648, '\P{^Is_Script_Extensions=wancho}', "");
+    Expect(1, 123647, '\p{Is_Script_Extensions= _Wancho}', "");
+    Expect(0, 123647, '\p{^Is_Script_Extensions= _Wancho}', "");
+    Expect(0, 123647, '\P{Is_Script_Extensions= _Wancho}', "");
+    Expect(1, 123647, '\P{^Is_Script_Extensions= _Wancho}', "");
+    Expect(0, 123648, '\p{Is_Script_Extensions= _Wancho}', "");
+    Expect(1, 123648, '\p{^Is_Script_Extensions= _Wancho}', "");
+    Expect(1, 123648, '\P{Is_Script_Extensions= _Wancho}', "");
+    Expect(0, 123648, '\P{^Is_Script_Extensions= _Wancho}', "");
+    Error('\p{Is_Scx=:= Wcho}');
+    Error('\P{Is_Scx=:= Wcho}');
     Expect(1, 123647, '\p{Is_Scx=wcho}', "");
     Expect(0, 123647, '\p{^Is_Scx=wcho}', "");
     Expect(0, 123647, '\P{Is_Scx=wcho}', "");
@@ -153719,16 +155183,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 123648, '\p{^Is_Scx=wcho}', "");
     Expect(1, 123648, '\P{Is_Scx=wcho}', "");
     Expect(0, 123648, '\P{^Is_Scx=wcho}', "");
-    Expect(1, 123647, '\p{Is_Scx=__wcho}', "");
-    Expect(0, 123647, '\p{^Is_Scx=__wcho}', "");
-    Expect(0, 123647, '\P{Is_Scx=__wcho}', "");
-    Expect(1, 123647, '\P{^Is_Scx=__wcho}', "");
-    Expect(0, 123648, '\p{Is_Scx=__wcho}', "");
-    Expect(1, 123648, '\p{^Is_Scx=__wcho}', "");
-    Expect(1, 123648, '\P{Is_Scx=__wcho}', "");
-    Expect(0, 123648, '\P{^Is_Scx=__wcho}', "");
-    Error('\p{Script_Extensions=/a/OLD_persian}');
-    Error('\P{Script_Extensions=/a/OLD_persian}');
+    Expect(1, 123647, '\p{Is_Scx:		wcho}', "");
+    Expect(0, 123647, '\p{^Is_Scx:		wcho}', "");
+    Expect(0, 123647, '\P{Is_Scx:		wcho}', "");
+    Expect(1, 123647, '\P{^Is_Scx:		wcho}', "");
+    Expect(0, 123648, '\p{Is_Scx:		wcho}', "");
+    Expect(1, 123648, '\p{^Is_Scx:		wcho}', "");
+    Expect(1, 123648, '\P{Is_Scx:		wcho}', "");
+    Expect(0, 123648, '\P{^Is_Scx:		wcho}', "");
+    Error('\p{Script_Extensions=:= Old_Persian}');
+    Error('\P{Script_Extensions=:= Old_Persian}');
     Expect(1, 66517, '\p{Script_Extensions=:\AOld_Persian\z:}', "");;
     Expect(0, 66518, '\p{Script_Extensions=:\AOld_Persian\z:}', "");;
     Expect(1, 66517, '\p{Script_Extensions=oldpersian}', "");
@@ -153741,16 +155205,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66518, '\P{^Script_Extensions=oldpersian}', "");
     Expect(1, 66517, '\p{Script_Extensions=:\Aoldpersian\z:}', "");;
     Expect(0, 66518, '\p{Script_Extensions=:\Aoldpersian\z:}', "");;
-    Expect(1, 66517, '\p{Script_Extensions=	OLD_persian}', "");
-    Expect(0, 66517, '\p{^Script_Extensions=	OLD_persian}', "");
-    Expect(0, 66517, '\P{Script_Extensions=	OLD_persian}', "");
-    Expect(1, 66517, '\P{^Script_Extensions=	OLD_persian}', "");
-    Expect(0, 66518, '\p{Script_Extensions=	OLD_persian}', "");
-    Expect(1, 66518, '\p{^Script_Extensions=	OLD_persian}', "");
-    Expect(1, 66518, '\P{Script_Extensions=	OLD_persian}', "");
-    Expect(0, 66518, '\P{^Script_Extensions=	OLD_persian}', "");
-    Error('\p{Scx=/a/	-Xpeo}');
-    Error('\P{Scx=/a/	-Xpeo}');
+    Expect(1, 66517, '\p{Script_Extensions= Old_Persian}', "");
+    Expect(0, 66517, '\p{^Script_Extensions= Old_Persian}', "");
+    Expect(0, 66517, '\P{Script_Extensions= Old_Persian}', "");
+    Expect(1, 66517, '\P{^Script_Extensions= Old_Persian}', "");
+    Expect(0, 66518, '\p{Script_Extensions= Old_Persian}', "");
+    Expect(1, 66518, '\p{^Script_Extensions= Old_Persian}', "");
+    Expect(1, 66518, '\P{Script_Extensions= Old_Persian}', "");
+    Expect(0, 66518, '\P{^Script_Extensions= Old_Persian}', "");
+    Error('\p{Scx=-/a/Xpeo}');
+    Error('\P{Scx=-/a/Xpeo}');
     Expect(1, 66517, '\p{Scx=:\AXpeo\z:}', "");;
     Expect(0, 66518, '\p{Scx=:\AXpeo\z:}', "");;
     Expect(1, 66517, '\p{Scx=xpeo}', "");
@@ -153763,16 +155227,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 66518, '\P{^Scx=xpeo}', "");
     Expect(1, 66517, '\p{Scx=:\Axpeo\z:}', "");;
     Expect(0, 66518, '\p{Scx=:\Axpeo\z:}', "");;
-    Expect(1, 66517, '\p{Scx=-_XPEO}', "");
-    Expect(0, 66517, '\p{^Scx=-_XPEO}', "");
-    Expect(0, 66517, '\P{Scx=-_XPEO}', "");
-    Expect(1, 66517, '\P{^Scx=-_XPEO}', "");
-    Expect(0, 66518, '\p{Scx=-_XPEO}', "");
-    Expect(1, 66518, '\p{^Scx=-_XPEO}', "");
-    Expect(1, 66518, '\P{Scx=-_XPEO}', "");
-    Expect(0, 66518, '\P{^Scx=-_XPEO}', "");
-    Error('\p{Is_Script_Extensions: 	old_Persian/a/}');
-    Error('\P{Is_Script_Extensions: 	old_Persian/a/}');
+    Expect(1, 66517, '\p{Scx=-XPEO}', "");
+    Expect(0, 66517, '\p{^Scx=-XPEO}', "");
+    Expect(0, 66517, '\P{Scx=-XPEO}', "");
+    Expect(1, 66517, '\P{^Scx=-XPEO}', "");
+    Expect(0, 66518, '\p{Scx=-XPEO}', "");
+    Expect(1, 66518, '\p{^Scx=-XPEO}', "");
+    Expect(1, 66518, '\P{Scx=-XPEO}', "");
+    Expect(0, 66518, '\P{^Scx=-XPEO}', "");
+    Error('\p{Is_Script_Extensions=-/a/Old_persian}');
+    Error('\P{Is_Script_Extensions=-/a/Old_persian}');
     Expect(1, 66517, '\p{Is_Script_Extensions=oldpersian}', "");
     Expect(0, 66517, '\p{^Is_Script_Extensions=oldpersian}', "");
     Expect(0, 66517, '\P{Is_Script_Extensions=oldpersian}', "");
@@ -153781,16 +155245,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66518, '\p{^Is_Script_Extensions=oldpersian}', "");
     Expect(1, 66518, '\P{Is_Script_Extensions=oldpersian}', "");
     Expect(0, 66518, '\P{^Is_Script_Extensions=oldpersian}', "");
-    Expect(1, 66517, '\p{Is_Script_Extensions=_-Old_persian}', "");
-    Expect(0, 66517, '\p{^Is_Script_Extensions=_-Old_persian}', "");
-    Expect(0, 66517, '\P{Is_Script_Extensions=_-Old_persian}', "");
-    Expect(1, 66517, '\P{^Is_Script_Extensions=_-Old_persian}', "");
-    Expect(0, 66518, '\p{Is_Script_Extensions=_-Old_persian}', "");
-    Expect(1, 66518, '\p{^Is_Script_Extensions=_-Old_persian}', "");
-    Expect(1, 66518, '\P{Is_Script_Extensions=_-Old_persian}', "");
-    Expect(0, 66518, '\P{^Is_Script_Extensions=_-Old_persian}', "");
-    Error('\p{Is_Scx=:=		xpeo}');
-    Error('\P{Is_Scx=:=		xpeo}');
+    Expect(1, 66517, '\p{Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(0, 66517, '\p{^Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(0, 66517, '\P{Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(1, 66517, '\P{^Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(0, 66518, '\p{Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(1, 66518, '\p{^Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(1, 66518, '\P{Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Expect(0, 66518, '\P{^Is_Script_Extensions=	-Old_PERSIAN}', "");
+    Error('\p{Is_Scx=-Xpeo/a/}');
+    Error('\P{Is_Scx=-Xpeo/a/}');
     Expect(1, 66517, '\p{Is_Scx=xpeo}', "");
     Expect(0, 66517, '\p{^Is_Scx=xpeo}', "");
     Expect(0, 66517, '\P{Is_Scx=xpeo}', "");
@@ -153799,16 +155263,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 66518, '\p{^Is_Scx=xpeo}', "");
     Expect(1, 66518, '\P{Is_Scx=xpeo}', "");
     Expect(0, 66518, '\P{^Is_Scx=xpeo}', "");
-    Expect(1, 66517, '\p{Is_Scx= xpeo}', "");
-    Expect(0, 66517, '\p{^Is_Scx= xpeo}', "");
-    Expect(0, 66517, '\P{Is_Scx= xpeo}', "");
-    Expect(1, 66517, '\P{^Is_Scx= xpeo}', "");
-    Expect(0, 66518, '\p{Is_Scx= xpeo}', "");
-    Expect(1, 66518, '\p{^Is_Scx= xpeo}', "");
-    Expect(1, 66518, '\P{Is_Scx= xpeo}', "");
-    Expect(0, 66518, '\P{^Is_Scx= xpeo}', "");
-    Error('\p{Script_Extensions=:=_Cuneiform}');
-    Error('\P{Script_Extensions=:=_Cuneiform}');
+    Expect(1, 66517, '\p{Is_Scx: --XPEO}', "");
+    Expect(0, 66517, '\p{^Is_Scx: --XPEO}', "");
+    Expect(0, 66517, '\P{Is_Scx: --XPEO}', "");
+    Expect(1, 66517, '\P{^Is_Scx: --XPEO}', "");
+    Expect(0, 66518, '\p{Is_Scx: --XPEO}', "");
+    Expect(1, 66518, '\p{^Is_Scx: --XPEO}', "");
+    Expect(1, 66518, '\P{Is_Scx: --XPEO}', "");
+    Expect(0, 66518, '\P{^Is_Scx: --XPEO}', "");
+    Error('\p{Script_Extensions=:=	_cuneiform}');
+    Error('\P{Script_Extensions=:=	_cuneiform}');
     Expect(1, 75075, '\p{Script_Extensions=:\ACuneiform\z:}', "");;
     Expect(0, 75076, '\p{Script_Extensions=:\ACuneiform\z:}', "");;
     Expect(1, 75075, '\p{Script_Extensions=cuneiform}', "");
@@ -153821,16 +155285,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 75076, '\P{^Script_Extensions=cuneiform}', "");
     Expect(1, 75075, '\p{Script_Extensions=:\Acuneiform\z:}', "");;
     Expect(0, 75076, '\p{Script_Extensions=:\Acuneiform\z:}', "");;
-    Expect(1, 75075, '\p{Script_Extensions= 	CUNEIFORM}', "");
-    Expect(0, 75075, '\p{^Script_Extensions= 	CUNEIFORM}', "");
-    Expect(0, 75075, '\P{Script_Extensions= 	CUNEIFORM}', "");
-    Expect(1, 75075, '\P{^Script_Extensions= 	CUNEIFORM}', "");
-    Expect(0, 75076, '\p{Script_Extensions= 	CUNEIFORM}', "");
-    Expect(1, 75076, '\p{^Script_Extensions= 	CUNEIFORM}', "");
-    Expect(1, 75076, '\P{Script_Extensions= 	CUNEIFORM}', "");
-    Expect(0, 75076, '\P{^Script_Extensions= 	CUNEIFORM}', "");
-    Error('\p{Scx=	_XSUX:=}');
-    Error('\P{Scx=	_XSUX:=}');
+    Expect(1, 75075, '\p{Script_Extensions=-_cuneiform}', "");
+    Expect(0, 75075, '\p{^Script_Extensions=-_cuneiform}', "");
+    Expect(0, 75075, '\P{Script_Extensions=-_cuneiform}', "");
+    Expect(1, 75075, '\P{^Script_Extensions=-_cuneiform}', "");
+    Expect(0, 75076, '\p{Script_Extensions=-_cuneiform}', "");
+    Expect(1, 75076, '\p{^Script_Extensions=-_cuneiform}', "");
+    Expect(1, 75076, '\P{Script_Extensions=-_cuneiform}', "");
+    Expect(0, 75076, '\P{^Script_Extensions=-_cuneiform}', "");
+    Error('\p{Scx= Xsux:=}');
+    Error('\P{Scx= Xsux:=}');
     Expect(1, 75075, '\p{Scx=:\AXsux\z:}', "");;
     Expect(0, 75076, '\p{Scx=:\AXsux\z:}', "");;
     Expect(1, 75075, '\p{Scx=xsux}', "");
@@ -153843,16 +155307,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 75076, '\P{^Scx=xsux}', "");
     Expect(1, 75075, '\p{Scx=:\Axsux\z:}', "");;
     Expect(0, 75076, '\p{Scx=:\Axsux\z:}', "");;
-    Expect(1, 75075, '\p{Scx=	-xsux}', "");
-    Expect(0, 75075, '\p{^Scx=	-xsux}', "");
-    Expect(0, 75075, '\P{Scx=	-xsux}', "");
-    Expect(1, 75075, '\P{^Scx=	-xsux}', "");
-    Expect(0, 75076, '\p{Scx=	-xsux}', "");
-    Expect(1, 75076, '\p{^Scx=	-xsux}', "");
-    Expect(1, 75076, '\P{Scx=	-xsux}', "");
-    Expect(0, 75076, '\P{^Scx=	-xsux}', "");
-    Error('\p{Is_Script_Extensions=/a/Cuneiform}');
-    Error('\P{Is_Script_Extensions=/a/Cuneiform}');
+    Expect(1, 75075, '\p{Scx= _Xsux}', "");
+    Expect(0, 75075, '\p{^Scx= _Xsux}', "");
+    Expect(0, 75075, '\P{Scx= _Xsux}', "");
+    Expect(1, 75075, '\P{^Scx= _Xsux}', "");
+    Expect(0, 75076, '\p{Scx= _Xsux}', "");
+    Expect(1, 75076, '\p{^Scx= _Xsux}', "");
+    Expect(1, 75076, '\P{Scx= _Xsux}', "");
+    Expect(0, 75076, '\P{^Scx= _Xsux}', "");
+    Error('\p{Is_Script_Extensions=:=__Cuneiform}');
+    Error('\P{Is_Script_Extensions=:=__Cuneiform}');
     Expect(1, 75075, '\p{Is_Script_Extensions=cuneiform}', "");
     Expect(0, 75075, '\p{^Is_Script_Extensions=cuneiform}', "");
     Expect(0, 75075, '\P{Is_Script_Extensions=cuneiform}', "");
@@ -153861,16 +155325,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 75076, '\p{^Is_Script_Extensions=cuneiform}', "");
     Expect(1, 75076, '\P{Is_Script_Extensions=cuneiform}', "");
     Expect(0, 75076, '\P{^Is_Script_Extensions=cuneiform}', "");
-    Expect(1, 75075, '\p{Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(0, 75075, '\p{^Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(0, 75075, '\P{Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(1, 75075, '\P{^Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(0, 75076, '\p{Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(1, 75076, '\p{^Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(1, 75076, '\P{Is_Script_Extensions=--CUNEIFORM}', "");
-    Expect(0, 75076, '\P{^Is_Script_Extensions=--CUNEIFORM}', "");
-    Error('\p{Is_Scx=_ Xsux:=}');
-    Error('\P{Is_Scx=_ Xsux:=}');
+    Expect(1, 75075, '\p{Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(0, 75075, '\p{^Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(0, 75075, '\P{Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(1, 75075, '\P{^Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(0, 75076, '\p{Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(1, 75076, '\p{^Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(1, 75076, '\P{Is_Script_Extensions=	 CUNEIFORM}', "");
+    Expect(0, 75076, '\P{^Is_Script_Extensions=	 CUNEIFORM}', "");
+    Error('\p{Is_Scx=	_Xsux:=}');
+    Error('\P{Is_Scx=	_Xsux:=}');
     Expect(1, 75075, '\p{Is_Scx=xsux}', "");
     Expect(0, 75075, '\p{^Is_Scx=xsux}', "");
     Expect(0, 75075, '\P{Is_Scx=xsux}', "");
@@ -153879,38 +155343,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 75076, '\p{^Is_Scx=xsux}', "");
     Expect(1, 75076, '\P{Is_Scx=xsux}', "");
     Expect(0, 75076, '\P{^Is_Scx=xsux}', "");
-    Expect(1, 75075, '\p{Is_Scx= xsux}', "");
-    Expect(0, 75075, '\p{^Is_Scx= xsux}', "");
-    Expect(0, 75075, '\P{Is_Scx= xsux}', "");
-    Expect(1, 75075, '\P{^Is_Scx= xsux}', "");
-    Expect(0, 75076, '\p{Is_Scx= xsux}', "");
-    Expect(1, 75076, '\p{^Is_Scx= xsux}', "");
-    Expect(1, 75076, '\P{Is_Scx= xsux}', "");
-    Expect(0, 75076, '\P{^Is_Scx= xsux}', "");
-    Error('\p{Script_Extensions=  Yezidi:=}');
-    Error('\P{Script_Extensions=  Yezidi:=}');
+    Expect(1, 75075, '\p{Is_Scx=-_Xsux}', "");
+    Expect(0, 75075, '\p{^Is_Scx=-_Xsux}', "");
+    Expect(0, 75075, '\P{Is_Scx=-_Xsux}', "");
+    Expect(1, 75075, '\P{^Is_Scx=-_Xsux}', "");
+    Expect(0, 75076, '\p{Is_Scx=-_Xsux}', "");
+    Expect(1, 75076, '\p{^Is_Scx=-_Xsux}', "");
+    Expect(1, 75076, '\P{Is_Scx=-_Xsux}', "");
+    Expect(0, 75076, '\P{^Is_Scx=-_Xsux}', "");
+    Error('\p{Script_Extensions=:= 	Yezidi}');
+    Error('\P{Script_Extensions=:= 	Yezidi}');
     Expect(1, 69297, '\p{Script_Extensions=:\AYezidi\z:}', "");;
     Expect(0, 69298, '\p{Script_Extensions=:\AYezidi\z:}', "");;
-    Expect(1, 69297, '\p{Script_Extensions:yezidi}', "");
-    Expect(0, 69297, '\p{^Script_Extensions:yezidi}', "");
-    Expect(0, 69297, '\P{Script_Extensions:yezidi}', "");
-    Expect(1, 69297, '\P{^Script_Extensions:yezidi}', "");
-    Expect(0, 69298, '\p{Script_Extensions:yezidi}', "");
-    Expect(1, 69298, '\p{^Script_Extensions:yezidi}', "");
-    Expect(1, 69298, '\P{Script_Extensions:yezidi}', "");
-    Expect(0, 69298, '\P{^Script_Extensions:yezidi}', "");
+    Expect(1, 69297, '\p{Script_Extensions=yezidi}', "");
+    Expect(0, 69297, '\p{^Script_Extensions=yezidi}', "");
+    Expect(0, 69297, '\P{Script_Extensions=yezidi}', "");
+    Expect(1, 69297, '\P{^Script_Extensions=yezidi}', "");
+    Expect(0, 69298, '\p{Script_Extensions=yezidi}', "");
+    Expect(1, 69298, '\p{^Script_Extensions=yezidi}', "");
+    Expect(1, 69298, '\P{Script_Extensions=yezidi}', "");
+    Expect(0, 69298, '\P{^Script_Extensions=yezidi}', "");
     Expect(1, 69297, '\p{Script_Extensions=:\Ayezidi\z:}', "");;
     Expect(0, 69298, '\p{Script_Extensions=:\Ayezidi\z:}', "");;
-    Expect(1, 69297, '\p{Script_Extensions= _Yezidi}', "");
-    Expect(0, 69297, '\p{^Script_Extensions= _Yezidi}', "");
-    Expect(0, 69297, '\P{Script_Extensions= _Yezidi}', "");
-    Expect(1, 69297, '\P{^Script_Extensions= _Yezidi}', "");
-    Expect(0, 69298, '\p{Script_Extensions= _Yezidi}', "");
-    Expect(1, 69298, '\p{^Script_Extensions= _Yezidi}', "");
-    Expect(1, 69298, '\P{Script_Extensions= _Yezidi}', "");
-    Expect(0, 69298, '\P{^Script_Extensions= _Yezidi}', "");
-    Error('\p{Scx=-	yezi:=}');
-    Error('\P{Scx=-	yezi:=}');
+    Expect(1, 69297, '\p{Script_Extensions=_Yezidi}', "");
+    Expect(0, 69297, '\p{^Script_Extensions=_Yezidi}', "");
+    Expect(0, 69297, '\P{Script_Extensions=_Yezidi}', "");
+    Expect(1, 69297, '\P{^Script_Extensions=_Yezidi}', "");
+    Expect(0, 69298, '\p{Script_Extensions=_Yezidi}', "");
+    Expect(1, 69298, '\p{^Script_Extensions=_Yezidi}', "");
+    Expect(1, 69298, '\P{Script_Extensions=_Yezidi}', "");
+    Expect(0, 69298, '\P{^Script_Extensions=_Yezidi}', "");
+    Error('\p{Scx=:= yezi}');
+    Error('\P{Scx=:= yezi}');
     Expect(1, 69297, '\p{Scx=:\AYezi\z:}', "");;
     Expect(0, 69298, '\p{Scx=:\AYezi\z:}', "");;
     Expect(1, 69297, '\p{Scx=yezi}', "");
@@ -153923,52 +155387,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 69298, '\P{^Scx=yezi}', "");
     Expect(1, 69297, '\p{Scx=:\Ayezi\z:}', "");;
     Expect(0, 69298, '\p{Scx=:\Ayezi\z:}', "");;
-    Expect(1, 69297, '\p{Scx=_-Yezi}', "");
-    Expect(0, 69297, '\p{^Scx=_-Yezi}', "");
-    Expect(0, 69297, '\P{Scx=_-Yezi}', "");
-    Expect(1, 69297, '\P{^Scx=_-Yezi}', "");
-    Expect(0, 69298, '\p{Scx=_-Yezi}', "");
-    Expect(1, 69298, '\p{^Scx=_-Yezi}', "");
-    Expect(1, 69298, '\P{Scx=_-Yezi}', "");
-    Expect(0, 69298, '\P{^Scx=_-Yezi}', "");
-    Error('\p{Is_Script_Extensions=	 Yezidi/a/}');
-    Error('\P{Is_Script_Extensions=	 Yezidi/a/}');
-    Expect(1, 69297, '\p{Is_Script_Extensions=yezidi}', "");
-    Expect(0, 69297, '\p{^Is_Script_Extensions=yezidi}', "");
-    Expect(0, 69297, '\P{Is_Script_Extensions=yezidi}', "");
-    Expect(1, 69297, '\P{^Is_Script_Extensions=yezidi}', "");
-    Expect(0, 69298, '\p{Is_Script_Extensions=yezidi}', "");
-    Expect(1, 69298, '\p{^Is_Script_Extensions=yezidi}', "");
-    Expect(1, 69298, '\P{Is_Script_Extensions=yezidi}', "");
-    Expect(0, 69298, '\P{^Is_Script_Extensions=yezidi}', "");
-    Expect(1, 69297, '\p{Is_Script_Extensions=-yezidi}', "");
-    Expect(0, 69297, '\p{^Is_Script_Extensions=-yezidi}', "");
-    Expect(0, 69297, '\P{Is_Script_Extensions=-yezidi}', "");
-    Expect(1, 69297, '\P{^Is_Script_Extensions=-yezidi}', "");
-    Expect(0, 69298, '\p{Is_Script_Extensions=-yezidi}', "");
-    Expect(1, 69298, '\p{^Is_Script_Extensions=-yezidi}', "");
-    Expect(1, 69298, '\P{Is_Script_Extensions=-yezidi}', "");
-    Expect(0, 69298, '\P{^Is_Script_Extensions=-yezidi}', "");
-    Error('\p{Is_Scx=:=	_Yezi}');
-    Error('\P{Is_Scx=:=	_Yezi}');
-    Expect(1, 69297, '\p{Is_Scx=yezi}', "");
-    Expect(0, 69297, '\p{^Is_Scx=yezi}', "");
-    Expect(0, 69297, '\P{Is_Scx=yezi}', "");
-    Expect(1, 69297, '\P{^Is_Scx=yezi}', "");
-    Expect(0, 69298, '\p{Is_Scx=yezi}', "");
-    Expect(1, 69298, '\p{^Is_Scx=yezi}', "");
-    Expect(1, 69298, '\P{Is_Scx=yezi}', "");
-    Expect(0, 69298, '\P{^Is_Scx=yezi}', "");
-    Expect(1, 69297, '\p{Is_Scx= Yezi}', "");
-    Expect(0, 69297, '\p{^Is_Scx= Yezi}', "");
-    Expect(0, 69297, '\P{Is_Scx= Yezi}', "");
-    Expect(1, 69297, '\P{^Is_Scx= Yezi}', "");
-    Expect(0, 69298, '\p{Is_Scx= Yezi}', "");
-    Expect(1, 69298, '\p{^Is_Scx= Yezi}', "");
-    Expect(1, 69298, '\P{Is_Scx= Yezi}', "");
-    Expect(0, 69298, '\P{^Is_Scx= Yezi}', "");
-    Error('\p{Script_Extensions=:=--YI}');
-    Error('\P{Script_Extensions=:=--YI}');
+    Expect(1, 69297, '\p{Scx=-	YEZI}', "");
+    Expect(0, 69297, '\p{^Scx=-	YEZI}', "");
+    Expect(0, 69297, '\P{Scx=-	YEZI}', "");
+    Expect(1, 69297, '\P{^Scx=-	YEZI}', "");
+    Expect(0, 69298, '\p{Scx=-	YEZI}', "");
+    Expect(1, 69298, '\p{^Scx=-	YEZI}', "");
+    Expect(1, 69298, '\P{Scx=-	YEZI}', "");
+    Expect(0, 69298, '\P{^Scx=-	YEZI}', "");
+    Error('\p{Is_Script_Extensions=_/a/Yezidi}');
+    Error('\P{Is_Script_Extensions=_/a/Yezidi}');
+    Expect(1, 69297, '\p{Is_Script_Extensions:   yezidi}', "");
+    Expect(0, 69297, '\p{^Is_Script_Extensions:   yezidi}', "");
+    Expect(0, 69297, '\P{Is_Script_Extensions:   yezidi}', "");
+    Expect(1, 69297, '\P{^Is_Script_Extensions:   yezidi}', "");
+    Expect(0, 69298, '\p{Is_Script_Extensions:   yezidi}', "");
+    Expect(1, 69298, '\p{^Is_Script_Extensions:   yezidi}', "");
+    Expect(1, 69298, '\P{Is_Script_Extensions:   yezidi}', "");
+    Expect(0, 69298, '\P{^Is_Script_Extensions:   yezidi}', "");
+    Expect(1, 69297, '\p{Is_Script_Extensions: _YEZIDI}', "");
+    Expect(0, 69297, '\p{^Is_Script_Extensions: _YEZIDI}', "");
+    Expect(0, 69297, '\P{Is_Script_Extensions: _YEZIDI}', "");
+    Expect(1, 69297, '\P{^Is_Script_Extensions: _YEZIDI}', "");
+    Expect(0, 69298, '\p{Is_Script_Extensions: _YEZIDI}', "");
+    Expect(1, 69298, '\p{^Is_Script_Extensions: _YEZIDI}', "");
+    Expect(1, 69298, '\P{Is_Script_Extensions: _YEZIDI}', "");
+    Expect(0, 69298, '\P{^Is_Script_Extensions: _YEZIDI}', "");
+    Error('\p{Is_Scx=/a/-	yezi}');
+    Error('\P{Is_Scx=/a/-	yezi}');
+    Expect(1, 69297, '\p{Is_Scx:   yezi}', "");
+    Expect(0, 69297, '\p{^Is_Scx:   yezi}', "");
+    Expect(0, 69297, '\P{Is_Scx:   yezi}', "");
+    Expect(1, 69297, '\P{^Is_Scx:   yezi}', "");
+    Expect(0, 69298, '\p{Is_Scx:   yezi}', "");
+    Expect(1, 69298, '\p{^Is_Scx:   yezi}', "");
+    Expect(1, 69298, '\P{Is_Scx:   yezi}', "");
+    Expect(0, 69298, '\P{^Is_Scx:   yezi}', "");
+    Expect(1, 69297, '\p{Is_Scx=- yezi}', "");
+    Expect(0, 69297, '\p{^Is_Scx=- yezi}', "");
+    Expect(0, 69297, '\P{Is_Scx=- yezi}', "");
+    Expect(1, 69297, '\P{^Is_Scx=- yezi}', "");
+    Expect(0, 69298, '\p{Is_Scx=- yezi}', "");
+    Expect(1, 69298, '\p{^Is_Scx=- yezi}', "");
+    Expect(1, 69298, '\P{Is_Scx=- yezi}', "");
+    Expect(0, 69298, '\P{^Is_Scx=- yezi}', "");
+    Error('\p{Script_Extensions=- Yi/a/}');
+    Error('\P{Script_Extensions=- Yi/a/}');
     Expect(1, 65381, '\p{Script_Extensions=:\AYi\z:}', "");;
     Expect(0, 65382, '\p{Script_Extensions=:\AYi\z:}', "");;
     Expect(1, 65381, '\p{Script_Extensions=yi}', "");
@@ -153981,16 +155445,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65382, '\P{^Script_Extensions=yi}', "");
     Expect(1, 65381, '\p{Script_Extensions=:\Ayi\z:}', "");;
     Expect(0, 65382, '\p{Script_Extensions=:\Ayi\z:}', "");;
-    Expect(1, 65381, '\p{Script_Extensions=-	Yi}', "");
-    Expect(0, 65381, '\p{^Script_Extensions=-	Yi}', "");
-    Expect(0, 65381, '\P{Script_Extensions=-	Yi}', "");
-    Expect(1, 65381, '\P{^Script_Extensions=-	Yi}', "");
-    Expect(0, 65382, '\p{Script_Extensions=-	Yi}', "");
-    Expect(1, 65382, '\p{^Script_Extensions=-	Yi}', "");
-    Expect(1, 65382, '\P{Script_Extensions=-	Yi}', "");
-    Expect(0, 65382, '\P{^Script_Extensions=-	Yi}', "");
-    Error('\p{Scx=/a/Yiii}');
-    Error('\P{Scx=/a/Yiii}');
+    Expect(1, 65381, '\p{Script_Extensions:	 _YI}', "");
+    Expect(0, 65381, '\p{^Script_Extensions:	 _YI}', "");
+    Expect(0, 65381, '\P{Script_Extensions:	 _YI}', "");
+    Expect(1, 65381, '\P{^Script_Extensions:	 _YI}', "");
+    Expect(0, 65382, '\p{Script_Extensions:	 _YI}', "");
+    Expect(1, 65382, '\p{^Script_Extensions:	 _YI}', "");
+    Expect(1, 65382, '\P{Script_Extensions:	 _YI}', "");
+    Expect(0, 65382, '\P{^Script_Extensions:	 _YI}', "");
+    Error('\p{Scx=/a/ Yiii}');
+    Error('\P{Scx=/a/ Yiii}');
     Expect(1, 65381, '\p{Scx=:\AYiii\z:}', "");;
     Expect(0, 65382, '\p{Scx=:\AYiii\z:}', "");;
     Expect(1, 65381, '\p{Scx=yiii}', "");
@@ -154003,74 +155467,74 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65382, '\P{^Scx=yiii}', "");
     Expect(1, 65381, '\p{Scx=:\Ayiii\z:}', "");;
     Expect(0, 65382, '\p{Scx=:\Ayiii\z:}', "");;
-    Expect(1, 65381, '\p{Scx=Yiii}', "");
-    Expect(0, 65381, '\p{^Scx=Yiii}', "");
-    Expect(0, 65381, '\P{Scx=Yiii}', "");
-    Expect(1, 65381, '\P{^Scx=Yiii}', "");
-    Expect(0, 65382, '\p{Scx=Yiii}', "");
-    Expect(1, 65382, '\p{^Scx=Yiii}', "");
-    Expect(1, 65382, '\P{Scx=Yiii}', "");
-    Expect(0, 65382, '\P{^Scx=Yiii}', "");
-    Error('\p{Is_Script_Extensions=:=Yi}');
-    Error('\P{Is_Script_Extensions=:=Yi}');
-    Expect(1, 65381, '\p{Is_Script_Extensions:	yi}', "");
-    Expect(0, 65381, '\p{^Is_Script_Extensions:	yi}', "");
-    Expect(0, 65381, '\P{Is_Script_Extensions:	yi}', "");
-    Expect(1, 65381, '\P{^Is_Script_Extensions:	yi}', "");
-    Expect(0, 65382, '\p{Is_Script_Extensions:	yi}', "");
-    Expect(1, 65382, '\p{^Is_Script_Extensions:	yi}', "");
-    Expect(1, 65382, '\P{Is_Script_Extensions:	yi}', "");
-    Expect(0, 65382, '\P{^Is_Script_Extensions:	yi}', "");
-    Expect(1, 65381, '\p{Is_Script_Extensions=_-Yi}', "");
-    Expect(0, 65381, '\p{^Is_Script_Extensions=_-Yi}', "");
-    Expect(0, 65381, '\P{Is_Script_Extensions=_-Yi}', "");
-    Expect(1, 65381, '\P{^Is_Script_Extensions=_-Yi}', "");
-    Expect(0, 65382, '\p{Is_Script_Extensions=_-Yi}', "");
-    Expect(1, 65382, '\p{^Is_Script_Extensions=_-Yi}', "");
-    Expect(1, 65382, '\P{Is_Script_Extensions=_-Yi}', "");
-    Expect(0, 65382, '\P{^Is_Script_Extensions=_-Yi}', "");
-    Error('\p{Is_Scx=/a/YIII}');
-    Error('\P{Is_Scx=/a/YIII}');
-    Expect(1, 65381, '\p{Is_Scx: yiii}', "");
-    Expect(0, 65381, '\p{^Is_Scx: yiii}', "");
-    Expect(0, 65381, '\P{Is_Scx: yiii}', "");
-    Expect(1, 65381, '\P{^Is_Scx: yiii}', "");
-    Expect(0, 65382, '\p{Is_Scx: yiii}', "");
-    Expect(1, 65382, '\p{^Is_Scx: yiii}', "");
-    Expect(1, 65382, '\P{Is_Scx: yiii}', "");
-    Expect(0, 65382, '\P{^Is_Scx: yiii}', "");
-    Expect(1, 65381, '\p{Is_Scx=_ Yiii}', "");
-    Expect(0, 65381, '\p{^Is_Scx=_ Yiii}', "");
-    Expect(0, 65381, '\P{Is_Scx=_ Yiii}', "");
-    Expect(1, 65381, '\P{^Is_Scx=_ Yiii}', "");
-    Expect(0, 65382, '\p{Is_Scx=_ Yiii}', "");
-    Expect(1, 65382, '\p{^Is_Scx=_ Yiii}', "");
-    Expect(1, 65382, '\P{Is_Scx=_ Yiii}', "");
-    Expect(0, 65382, '\P{^Is_Scx=_ Yiii}', "");
-    Error('\p{Script_Extensions:/a/zanabazar_Square}');
-    Error('\P{Script_Extensions:/a/zanabazar_Square}');
+    Expect(1, 65381, '\p{Scx:    -Yiii}', "");
+    Expect(0, 65381, '\p{^Scx:    -Yiii}', "");
+    Expect(0, 65381, '\P{Scx:    -Yiii}', "");
+    Expect(1, 65381, '\P{^Scx:    -Yiii}', "");
+    Expect(0, 65382, '\p{Scx:    -Yiii}', "");
+    Expect(1, 65382, '\p{^Scx:    -Yiii}', "");
+    Expect(1, 65382, '\P{Scx:    -Yiii}', "");
+    Expect(0, 65382, '\P{^Scx:    -Yiii}', "");
+    Error('\p{Is_Script_Extensions=yi/a/}');
+    Error('\P{Is_Script_Extensions=yi/a/}');
+    Expect(1, 65381, '\p{Is_Script_Extensions=yi}', "");
+    Expect(0, 65381, '\p{^Is_Script_Extensions=yi}', "");
+    Expect(0, 65381, '\P{Is_Script_Extensions=yi}', "");
+    Expect(1, 65381, '\P{^Is_Script_Extensions=yi}', "");
+    Expect(0, 65382, '\p{Is_Script_Extensions=yi}', "");
+    Expect(1, 65382, '\p{^Is_Script_Extensions=yi}', "");
+    Expect(1, 65382, '\P{Is_Script_Extensions=yi}', "");
+    Expect(0, 65382, '\P{^Is_Script_Extensions=yi}', "");
+    Expect(1, 65381, '\p{Is_Script_Extensions=	-YI}', "");
+    Expect(0, 65381, '\p{^Is_Script_Extensions=	-YI}', "");
+    Expect(0, 65381, '\P{Is_Script_Extensions=	-YI}', "");
+    Expect(1, 65381, '\P{^Is_Script_Extensions=	-YI}', "");
+    Expect(0, 65382, '\p{Is_Script_Extensions=	-YI}', "");
+    Expect(1, 65382, '\p{^Is_Script_Extensions=	-YI}', "");
+    Expect(1, 65382, '\P{Is_Script_Extensions=	-YI}', "");
+    Expect(0, 65382, '\P{^Is_Script_Extensions=	-YI}', "");
+    Error('\p{Is_Scx=/a/- Yiii}');
+    Error('\P{Is_Scx=/a/- Yiii}');
+    Expect(1, 65381, '\p{Is_Scx=yiii}', "");
+    Expect(0, 65381, '\p{^Is_Scx=yiii}', "");
+    Expect(0, 65381, '\P{Is_Scx=yiii}', "");
+    Expect(1, 65381, '\P{^Is_Scx=yiii}', "");
+    Expect(0, 65382, '\p{Is_Scx=yiii}', "");
+    Expect(1, 65382, '\p{^Is_Scx=yiii}', "");
+    Expect(1, 65382, '\P{Is_Scx=yiii}', "");
+    Expect(0, 65382, '\P{^Is_Scx=yiii}', "");
+    Expect(1, 65381, '\p{Is_Scx= -yiii}', "");
+    Expect(0, 65381, '\p{^Is_Scx= -yiii}', "");
+    Expect(0, 65381, '\P{Is_Scx= -yiii}', "");
+    Expect(1, 65381, '\P{^Is_Scx= -yiii}', "");
+    Expect(0, 65382, '\p{Is_Scx= -yiii}', "");
+    Expect(1, 65382, '\p{^Is_Scx= -yiii}', "");
+    Expect(1, 65382, '\P{Is_Scx= -yiii}', "");
+    Expect(0, 65382, '\P{^Is_Scx= -yiii}', "");
+    Error('\p{Script_Extensions= :=Zanabazar_Square}');
+    Error('\P{Script_Extensions= :=Zanabazar_Square}');
     Expect(1, 72263, '\p{Script_Extensions=:\AZanabazar_Square\z:}', "");;
     Expect(0, 72264, '\p{Script_Extensions=:\AZanabazar_Square\z:}', "");;
-    Expect(1, 72263, '\p{Script_Extensions=zanabazarsquare}', "");
-    Expect(0, 72263, '\p{^Script_Extensions=zanabazarsquare}', "");
-    Expect(0, 72263, '\P{Script_Extensions=zanabazarsquare}', "");
-    Expect(1, 72263, '\P{^Script_Extensions=zanabazarsquare}', "");
-    Expect(0, 72264, '\p{Script_Extensions=zanabazarsquare}', "");
-    Expect(1, 72264, '\p{^Script_Extensions=zanabazarsquare}', "");
-    Expect(1, 72264, '\P{Script_Extensions=zanabazarsquare}', "");
-    Expect(0, 72264, '\P{^Script_Extensions=zanabazarsquare}', "");
+    Expect(1, 72263, '\p{Script_Extensions:	zanabazarsquare}', "");
+    Expect(0, 72263, '\p{^Script_Extensions:	zanabazarsquare}', "");
+    Expect(0, 72263, '\P{Script_Extensions:	zanabazarsquare}', "");
+    Expect(1, 72263, '\P{^Script_Extensions:	zanabazarsquare}', "");
+    Expect(0, 72264, '\p{Script_Extensions:	zanabazarsquare}', "");
+    Expect(1, 72264, '\p{^Script_Extensions:	zanabazarsquare}', "");
+    Expect(1, 72264, '\P{Script_Extensions:	zanabazarsquare}', "");
+    Expect(0, 72264, '\P{^Script_Extensions:	zanabazarsquare}', "");
     Expect(1, 72263, '\p{Script_Extensions=:\Azanabazarsquare\z:}', "");;
     Expect(0, 72264, '\p{Script_Extensions=:\Azanabazarsquare\z:}', "");;
-    Expect(1, 72263, '\p{Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(0, 72263, '\p{^Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(0, 72263, '\P{Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(1, 72263, '\P{^Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(0, 72264, '\p{Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(1, 72264, '\p{^Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(1, 72264, '\P{Script_Extensions=_Zanabazar_SQUARE}', "");
-    Expect(0, 72264, '\P{^Script_Extensions=_Zanabazar_SQUARE}', "");
-    Error('\p{Scx:_	Zanb:=}');
-    Error('\P{Scx:_	Zanb:=}');
+    Expect(1, 72263, '\p{Script_Extensions=Zanabazar_Square}', "");
+    Expect(0, 72263, '\p{^Script_Extensions=Zanabazar_Square}', "");
+    Expect(0, 72263, '\P{Script_Extensions=Zanabazar_Square}', "");
+    Expect(1, 72263, '\P{^Script_Extensions=Zanabazar_Square}', "");
+    Expect(0, 72264, '\p{Script_Extensions=Zanabazar_Square}', "");
+    Expect(1, 72264, '\p{^Script_Extensions=Zanabazar_Square}', "");
+    Expect(1, 72264, '\P{Script_Extensions=Zanabazar_Square}', "");
+    Expect(0, 72264, '\P{^Script_Extensions=Zanabazar_Square}', "");
+    Error('\p{Scx=	/a/Zanb}');
+    Error('\P{Scx=	/a/Zanb}');
     Expect(1, 72263, '\p{Scx=:\AZanb\z:}', "");;
     Expect(0, 72264, '\p{Scx=:\AZanb\z:}', "");;
     Expect(1, 72263, '\p{Scx=zanb}', "");
@@ -154083,16 +155547,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 72264, '\P{^Scx=zanb}', "");
     Expect(1, 72263, '\p{Scx=:\Azanb\z:}', "");;
     Expect(0, 72264, '\p{Scx=:\Azanb\z:}', "");;
-    Expect(1, 72263, '\p{Scx=-Zanb}', "");
-    Expect(0, 72263, '\p{^Scx=-Zanb}', "");
-    Expect(0, 72263, '\P{Scx=-Zanb}', "");
-    Expect(1, 72263, '\P{^Scx=-Zanb}', "");
-    Expect(0, 72264, '\p{Scx=-Zanb}', "");
-    Expect(1, 72264, '\p{^Scx=-Zanb}', "");
-    Expect(1, 72264, '\P{Scx=-Zanb}', "");
-    Expect(0, 72264, '\P{^Scx=-Zanb}', "");
-    Error('\p{Is_Script_Extensions=_-ZANABAZAR_Square:=}');
-    Error('\P{Is_Script_Extensions=_-ZANABAZAR_Square:=}');
+    Expect(1, 72263, '\p{Scx:-zanb}', "");
+    Expect(0, 72263, '\p{^Scx:-zanb}', "");
+    Expect(0, 72263, '\P{Scx:-zanb}', "");
+    Expect(1, 72263, '\P{^Scx:-zanb}', "");
+    Expect(0, 72264, '\p{Scx:-zanb}', "");
+    Expect(1, 72264, '\p{^Scx:-zanb}', "");
+    Expect(1, 72264, '\P{Scx:-zanb}', "");
+    Expect(0, 72264, '\P{^Scx:-zanb}', "");
+    Error('\p{Is_Script_Extensions=_ ZANABAZAR_square/a/}');
+    Error('\P{Is_Script_Extensions=_ ZANABAZAR_square/a/}');
     Expect(1, 72263, '\p{Is_Script_Extensions=zanabazarsquare}', "");
     Expect(0, 72263, '\p{^Is_Script_Extensions=zanabazarsquare}', "");
     Expect(0, 72263, '\P{Is_Script_Extensions=zanabazarsquare}', "");
@@ -154101,16 +155565,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^Is_Script_Extensions=zanabazarsquare}', "");
     Expect(1, 72264, '\P{Is_Script_Extensions=zanabazarsquare}', "");
     Expect(0, 72264, '\P{^Is_Script_Extensions=zanabazarsquare}', "");
-    Expect(1, 72263, '\p{Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(0, 72263, '\p{^Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(0, 72263, '\P{Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(1, 72263, '\P{^Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(0, 72264, '\p{Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(1, 72264, '\p{^Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(1, 72264, '\P{Is_Script_Extensions=-_zanabazar_Square}', "");
-    Expect(0, 72264, '\P{^Is_Script_Extensions=-_zanabazar_Square}', "");
-    Error('\p{Is_Scx=:=_zanb}');
-    Error('\P{Is_Scx=:=_zanb}');
+    Expect(1, 72263, '\p{Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(0, 72263, '\p{^Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(0, 72263, '\P{Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(1, 72263, '\P{^Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(0, 72264, '\p{Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(1, 72264, '\p{^Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(1, 72264, '\P{Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Expect(0, 72264, '\P{^Is_Script_Extensions=- Zanabazar_SQUARE}', "");
+    Error('\p{Is_Scx=/a/ZANB}');
+    Error('\P{Is_Scx=/a/ZANB}');
     Expect(1, 72263, '\p{Is_Scx=zanb}', "");
     Expect(0, 72263, '\p{^Is_Scx=zanb}', "");
     Expect(0, 72263, '\P{Is_Scx=zanb}', "");
@@ -154119,16 +155583,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 72264, '\p{^Is_Scx=zanb}', "");
     Expect(1, 72264, '\P{Is_Scx=zanb}', "");
     Expect(0, 72264, '\P{^Is_Scx=zanb}', "");
-    Expect(1, 72263, '\p{Is_Scx=ZANB}', "");
-    Expect(0, 72263, '\p{^Is_Scx=ZANB}', "");
-    Expect(0, 72263, '\P{Is_Scx=ZANB}', "");
-    Expect(1, 72263, '\P{^Is_Scx=ZANB}', "");
-    Expect(0, 72264, '\p{Is_Scx=ZANB}', "");
-    Expect(1, 72264, '\p{^Is_Scx=ZANB}', "");
-    Expect(1, 72264, '\P{Is_Scx=ZANB}', "");
-    Expect(0, 72264, '\P{^Is_Scx=ZANB}', "");
-    Error('\p{Script_Extensions=_Inherited/a/}');
-    Error('\P{Script_Extensions=_Inherited/a/}');
+    Expect(1, 72263, '\p{Is_Scx=  Zanb}', "");
+    Expect(0, 72263, '\p{^Is_Scx=  Zanb}', "");
+    Expect(0, 72263, '\P{Is_Scx=  Zanb}', "");
+    Expect(1, 72263, '\P{^Is_Scx=  Zanb}', "");
+    Expect(0, 72264, '\p{Is_Scx=  Zanb}', "");
+    Expect(1, 72264, '\p{^Is_Scx=  Zanb}', "");
+    Expect(1, 72264, '\P{Is_Scx=  Zanb}', "");
+    Expect(0, 72264, '\P{^Is_Scx=  Zanb}', "");
+    Error('\p{Script_Extensions=_:=inherited}');
+    Error('\P{Script_Extensions=_:=inherited}');
     Expect(1, 917999, '\p{Script_Extensions=:\AInherited\z:}', "");;
     Expect(0, 918000, '\p{Script_Extensions=:\AInherited\z:}', "");;
     Expect(1, 917999, '\p{Script_Extensions=inherited}', "");
@@ -154141,16 +155605,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^Script_Extensions=inherited}', "");
     Expect(1, 917999, '\p{Script_Extensions=:\Ainherited\z:}', "");;
     Expect(0, 918000, '\p{Script_Extensions=:\Ainherited\z:}', "");;
-    Expect(1, 917999, '\p{Script_Extensions=-	INHERITED}', "");
-    Expect(0, 917999, '\p{^Script_Extensions=-	INHERITED}', "");
-    Expect(0, 917999, '\P{Script_Extensions=-	INHERITED}', "");
-    Expect(1, 917999, '\P{^Script_Extensions=-	INHERITED}', "");
-    Expect(0, 918000, '\p{Script_Extensions=-	INHERITED}', "");
-    Expect(1, 918000, '\p{^Script_Extensions=-	INHERITED}', "");
-    Expect(1, 918000, '\P{Script_Extensions=-	INHERITED}', "");
-    Expect(0, 918000, '\P{^Script_Extensions=-	INHERITED}', "");
-    Error('\p{Scx=-	zinh:=}');
-    Error('\P{Scx=-	zinh:=}');
+    Expect(1, 917999, '\p{Script_Extensions=- Inherited}', "");
+    Expect(0, 917999, '\p{^Script_Extensions=- Inherited}', "");
+    Expect(0, 917999, '\P{Script_Extensions=- Inherited}', "");
+    Expect(1, 917999, '\P{^Script_Extensions=- Inherited}', "");
+    Expect(0, 918000, '\p{Script_Extensions=- Inherited}', "");
+    Expect(1, 918000, '\p{^Script_Extensions=- Inherited}', "");
+    Expect(1, 918000, '\P{Script_Extensions=- Inherited}', "");
+    Expect(0, 918000, '\P{^Script_Extensions=- Inherited}', "");
+    Error('\p{Scx=-:=Zinh}');
+    Error('\P{Scx=-:=Zinh}');
     Expect(1, 917999, '\p{Scx=:\AZinh\z:}', "");;
     Expect(0, 918000, '\p{Scx=:\AZinh\z:}', "");;
     Expect(1, 917999, '\p{Scx=zinh}', "");
@@ -154163,16 +155627,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^Scx=zinh}', "");
     Expect(1, 917999, '\p{Scx=:\Azinh\z:}', "");;
     Expect(0, 918000, '\p{Scx=:\Azinh\z:}', "");;
-    Expect(1, 917999, '\p{Scx=-	Zinh}', "");
-    Expect(0, 917999, '\p{^Scx=-	Zinh}', "");
-    Expect(0, 917999, '\P{Scx=-	Zinh}', "");
-    Expect(1, 917999, '\P{^Scx=-	Zinh}', "");
-    Expect(0, 918000, '\p{Scx=-	Zinh}', "");
-    Expect(1, 918000, '\p{^Scx=-	Zinh}', "");
-    Expect(1, 918000, '\P{Scx=-	Zinh}', "");
-    Expect(0, 918000, '\P{^Scx=-	Zinh}', "");
-    Error('\p{Is_Script_Extensions=_-Qaai:=}');
-    Error('\P{Is_Script_Extensions=_-Qaai:=}');
+    Expect(1, 917999, '\p{Scx=		zinh}', "");
+    Expect(0, 917999, '\p{^Scx=		zinh}', "");
+    Expect(0, 917999, '\P{Scx=		zinh}', "");
+    Expect(1, 917999, '\P{^Scx=		zinh}', "");
+    Expect(0, 918000, '\p{Scx=		zinh}', "");
+    Expect(1, 918000, '\p{^Scx=		zinh}', "");
+    Expect(1, 918000, '\P{Scx=		zinh}', "");
+    Expect(0, 918000, '\P{^Scx=		zinh}', "");
+    Error('\p{Is_Script_Extensions=/a/- Qaai}');
+    Error('\P{Is_Script_Extensions=/a/- Qaai}');
     Expect(1, 917999, '\p{Is_Script_Extensions=qaai}', "");
     Expect(0, 917999, '\p{^Is_Script_Extensions=qaai}', "");
     Expect(0, 917999, '\P{Is_Script_Extensions=qaai}', "");
@@ -154181,16 +155645,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_Script_Extensions=qaai}', "");
     Expect(1, 918000, '\P{Is_Script_Extensions=qaai}', "");
     Expect(0, 918000, '\P{^Is_Script_Extensions=qaai}', "");
-    Expect(1, 917999, '\p{Is_Script_Extensions=_-QAAI}', "");
-    Expect(0, 917999, '\p{^Is_Script_Extensions=_-QAAI}', "");
-    Expect(0, 917999, '\P{Is_Script_Extensions=_-QAAI}', "");
-    Expect(1, 917999, '\P{^Is_Script_Extensions=_-QAAI}', "");
-    Expect(0, 918000, '\p{Is_Script_Extensions=_-QAAI}', "");
-    Expect(1, 918000, '\p{^Is_Script_Extensions=_-QAAI}', "");
-    Expect(1, 918000, '\P{Is_Script_Extensions=_-QAAI}', "");
-    Expect(0, 918000, '\P{^Is_Script_Extensions=_-QAAI}', "");
-    Error('\p{Is_Scx= :=Inherited}');
-    Error('\P{Is_Scx= :=Inherited}');
+    Expect(1, 917999, '\p{Is_Script_Extensions=_-Qaai}', "");
+    Expect(0, 917999, '\p{^Is_Script_Extensions=_-Qaai}', "");
+    Expect(0, 917999, '\P{Is_Script_Extensions=_-Qaai}', "");
+    Expect(1, 917999, '\P{^Is_Script_Extensions=_-Qaai}', "");
+    Expect(0, 918000, '\p{Is_Script_Extensions=_-Qaai}', "");
+    Expect(1, 918000, '\p{^Is_Script_Extensions=_-Qaai}', "");
+    Expect(1, 918000, '\P{Is_Script_Extensions=_-Qaai}', "");
+    Expect(0, 918000, '\P{^Is_Script_Extensions=_-Qaai}', "");
+    Error('\p{Is_Scx=/a/	-Inherited}');
+    Error('\P{Is_Scx=/a/	-Inherited}');
     Expect(1, 917999, '\p{Is_Scx=inherited}', "");
     Expect(0, 917999, '\p{^Is_Scx=inherited}', "");
     Expect(0, 917999, '\P{Is_Scx=inherited}', "");
@@ -154199,16 +155663,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_Scx=inherited}', "");
     Expect(1, 918000, '\P{Is_Scx=inherited}', "");
     Expect(0, 918000, '\P{^Is_Scx=inherited}', "");
-    Expect(1, 917999, '\p{Is_Scx=-INHERITED}', "");
-    Expect(0, 917999, '\p{^Is_Scx=-INHERITED}', "");
-    Expect(0, 917999, '\P{Is_Scx=-INHERITED}', "");
-    Expect(1, 917999, '\P{^Is_Scx=-INHERITED}', "");
-    Expect(0, 918000, '\p{Is_Scx=-INHERITED}', "");
-    Expect(1, 918000, '\p{^Is_Scx=-INHERITED}', "");
-    Expect(1, 918000, '\P{Is_Scx=-INHERITED}', "");
-    Expect(0, 918000, '\P{^Is_Scx=-INHERITED}', "");
-    Error('\p{Script_Extensions=:= COMMON}');
-    Error('\P{Script_Extensions=:= COMMON}');
+    Expect(1, 917999, '\p{Is_Scx= Inherited}', "");
+    Expect(0, 917999, '\p{^Is_Scx= Inherited}', "");
+    Expect(0, 917999, '\P{Is_Scx= Inherited}', "");
+    Expect(1, 917999, '\P{^Is_Scx= Inherited}', "");
+    Expect(0, 918000, '\p{Is_Scx= Inherited}', "");
+    Expect(1, 918000, '\p{^Is_Scx= Inherited}', "");
+    Expect(1, 918000, '\P{Is_Scx= Inherited}', "");
+    Expect(0, 918000, '\P{^Is_Scx= Inherited}', "");
+    Error('\p{Script_Extensions: /a/Common}');
+    Error('\P{Script_Extensions: /a/Common}');
     Expect(1, 917631, '\p{Script_Extensions=:\ACommon\z:}', "");;
     Expect(0, 917632, '\p{Script_Extensions=:\ACommon\z:}', "");;
     Expect(1, 917631, '\p{Script_Extensions=common}', "");
@@ -154221,38 +155685,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917632, '\P{^Script_Extensions=common}', "");
     Expect(1, 917631, '\p{Script_Extensions=:\Acommon\z:}', "");;
     Expect(0, 917632, '\p{Script_Extensions=:\Acommon\z:}', "");;
-    Expect(1, 917631, '\p{Script_Extensions=-_common}', "");
-    Expect(0, 917631, '\p{^Script_Extensions=-_common}', "");
-    Expect(0, 917631, '\P{Script_Extensions=-_common}', "");
-    Expect(1, 917631, '\P{^Script_Extensions=-_common}', "");
-    Expect(0, 917632, '\p{Script_Extensions=-_common}', "");
-    Expect(1, 917632, '\p{^Script_Extensions=-_common}', "");
-    Expect(1, 917632, '\P{Script_Extensions=-_common}', "");
-    Expect(0, 917632, '\P{^Script_Extensions=-_common}', "");
-    Error('\p{Scx=:= Zyyy}');
-    Error('\P{Scx=:= Zyyy}');
+    Expect(1, 917631, '\p{Script_Extensions= -COMMON}', "");
+    Expect(0, 917631, '\p{^Script_Extensions= -COMMON}', "");
+    Expect(0, 917631, '\P{Script_Extensions= -COMMON}', "");
+    Expect(1, 917631, '\P{^Script_Extensions= -COMMON}', "");
+    Expect(0, 917632, '\p{Script_Extensions= -COMMON}', "");
+    Expect(1, 917632, '\p{^Script_Extensions= -COMMON}', "");
+    Expect(1, 917632, '\P{Script_Extensions= -COMMON}', "");
+    Expect(0, 917632, '\P{^Script_Extensions= -COMMON}', "");
+    Error('\p{Scx=/a/_Zyyy}');
+    Error('\P{Scx=/a/_Zyyy}');
     Expect(1, 917631, '\p{Scx=:\AZyyy\z:}', "");;
     Expect(0, 917632, '\p{Scx=:\AZyyy\z:}', "");;
-    Expect(1, 917631, '\p{Scx:	zyyy}', "");
-    Expect(0, 917631, '\p{^Scx:	zyyy}', "");
-    Expect(0, 917631, '\P{Scx:	zyyy}', "");
-    Expect(1, 917631, '\P{^Scx:	zyyy}', "");
-    Expect(0, 917632, '\p{Scx:	zyyy}', "");
-    Expect(1, 917632, '\p{^Scx:	zyyy}', "");
-    Expect(1, 917632, '\P{Scx:	zyyy}', "");
-    Expect(0, 917632, '\P{^Scx:	zyyy}', "");
+    Expect(1, 917631, '\p{Scx=zyyy}', "");
+    Expect(0, 917631, '\p{^Scx=zyyy}', "");
+    Expect(0, 917631, '\P{Scx=zyyy}', "");
+    Expect(1, 917631, '\P{^Scx=zyyy}', "");
+    Expect(0, 917632, '\p{Scx=zyyy}', "");
+    Expect(1, 917632, '\p{^Scx=zyyy}', "");
+    Expect(1, 917632, '\P{Scx=zyyy}', "");
+    Expect(0, 917632, '\P{^Scx=zyyy}', "");
     Expect(1, 917631, '\p{Scx=:\Azyyy\z:}', "");;
     Expect(0, 917632, '\p{Scx=:\Azyyy\z:}', "");;
-    Expect(1, 917631, '\p{Scx=_	Zyyy}', "");
-    Expect(0, 917631, '\p{^Scx=_	Zyyy}', "");
-    Expect(0, 917631, '\P{Scx=_	Zyyy}', "");
-    Expect(1, 917631, '\P{^Scx=_	Zyyy}', "");
-    Expect(0, 917632, '\p{Scx=_	Zyyy}', "");
-    Expect(1, 917632, '\p{^Scx=_	Zyyy}', "");
-    Expect(1, 917632, '\P{Scx=_	Zyyy}', "");
-    Expect(0, 917632, '\P{^Scx=_	Zyyy}', "");
-    Error('\p{Is_Script_Extensions=--COMMON/a/}');
-    Error('\P{Is_Script_Extensions=--COMMON/a/}');
+    Expect(1, 917631, '\p{Scx=- ZYYY}', "");
+    Expect(0, 917631, '\p{^Scx=- ZYYY}', "");
+    Expect(0, 917631, '\P{Scx=- ZYYY}', "");
+    Expect(1, 917631, '\P{^Scx=- ZYYY}', "");
+    Expect(0, 917632, '\p{Scx=- ZYYY}', "");
+    Expect(1, 917632, '\p{^Scx=- ZYYY}', "");
+    Expect(1, 917632, '\P{Scx=- ZYYY}', "");
+    Expect(0, 917632, '\P{^Scx=- ZYYY}', "");
+    Error('\p{Is_Script_Extensions=:=	Common}');
+    Error('\P{Is_Script_Extensions=:=	Common}');
     Expect(1, 917631, '\p{Is_Script_Extensions=common}', "");
     Expect(0, 917631, '\p{^Is_Script_Extensions=common}', "");
     Expect(0, 917631, '\P{Is_Script_Extensions=common}', "");
@@ -154261,34 +155725,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917632, '\p{^Is_Script_Extensions=common}', "");
     Expect(1, 917632, '\P{Is_Script_Extensions=common}', "");
     Expect(0, 917632, '\P{^Is_Script_Extensions=common}', "");
-    Expect(1, 917631, '\p{Is_Script_Extensions=-Common}', "");
-    Expect(0, 917631, '\p{^Is_Script_Extensions=-Common}', "");
-    Expect(0, 917631, '\P{Is_Script_Extensions=-Common}', "");
-    Expect(1, 917631, '\P{^Is_Script_Extensions=-Common}', "");
-    Expect(0, 917632, '\p{Is_Script_Extensions=-Common}', "");
-    Expect(1, 917632, '\p{^Is_Script_Extensions=-Common}', "");
-    Expect(1, 917632, '\P{Is_Script_Extensions=-Common}', "");
-    Expect(0, 917632, '\P{^Is_Script_Extensions=-Common}', "");
-    Error('\p{Is_Scx= :=Zyyy}');
-    Error('\P{Is_Scx= :=Zyyy}');
-    Expect(1, 917631, '\p{Is_Scx:	zyyy}', "");
-    Expect(0, 917631, '\p{^Is_Scx:	zyyy}', "");
-    Expect(0, 917631, '\P{Is_Scx:	zyyy}', "");
-    Expect(1, 917631, '\P{^Is_Scx:	zyyy}', "");
-    Expect(0, 917632, '\p{Is_Scx:	zyyy}', "");
-    Expect(1, 917632, '\p{^Is_Scx:	zyyy}', "");
-    Expect(1, 917632, '\P{Is_Scx:	zyyy}', "");
-    Expect(0, 917632, '\P{^Is_Scx:	zyyy}', "");
-    Expect(1, 917631, '\p{Is_Scx=-_Zyyy}', "");
-    Expect(0, 917631, '\p{^Is_Scx=-_Zyyy}', "");
-    Expect(0, 917631, '\P{Is_Scx=-_Zyyy}', "");
-    Expect(1, 917631, '\P{^Is_Scx=-_Zyyy}', "");
-    Expect(0, 917632, '\p{Is_Scx=-_Zyyy}', "");
-    Expect(1, 917632, '\p{^Is_Scx=-_Zyyy}', "");
-    Expect(1, 917632, '\P{Is_Scx=-_Zyyy}', "");
-    Expect(0, 917632, '\P{^Is_Scx=-_Zyyy}', "");
-    Error('\p{Script_Extensions=	unknown/a/}');
-    Error('\P{Script_Extensions=	unknown/a/}');
+    Expect(1, 917631, '\p{Is_Script_Extensions=-_Common}', "");
+    Expect(0, 917631, '\p{^Is_Script_Extensions=-_Common}', "");
+    Expect(0, 917631, '\P{Is_Script_Extensions=-_Common}', "");
+    Expect(1, 917631, '\P{^Is_Script_Extensions=-_Common}', "");
+    Expect(0, 917632, '\p{Is_Script_Extensions=-_Common}', "");
+    Expect(1, 917632, '\p{^Is_Script_Extensions=-_Common}', "");
+    Expect(1, 917632, '\P{Is_Script_Extensions=-_Common}', "");
+    Expect(0, 917632, '\P{^Is_Script_Extensions=-_Common}', "");
+    Error('\p{Is_Scx=:=Zyyy}');
+    Error('\P{Is_Scx=:=Zyyy}');
+    Expect(1, 917631, '\p{Is_Scx=zyyy}', "");
+    Expect(0, 917631, '\p{^Is_Scx=zyyy}', "");
+    Expect(0, 917631, '\P{Is_Scx=zyyy}', "");
+    Expect(1, 917631, '\P{^Is_Scx=zyyy}', "");
+    Expect(0, 917632, '\p{Is_Scx=zyyy}', "");
+    Expect(1, 917632, '\p{^Is_Scx=zyyy}', "");
+    Expect(1, 917632, '\P{Is_Scx=zyyy}', "");
+    Expect(0, 917632, '\P{^Is_Scx=zyyy}', "");
+    Expect(1, 917631, '\p{Is_Scx=- zyyy}', "");
+    Expect(0, 917631, '\p{^Is_Scx=- zyyy}', "");
+    Expect(0, 917631, '\P{Is_Scx=- zyyy}', "");
+    Expect(1, 917631, '\P{^Is_Scx=- zyyy}', "");
+    Expect(0, 917632, '\p{Is_Scx=- zyyy}', "");
+    Expect(1, 917632, '\p{^Is_Scx=- zyyy}', "");
+    Expect(1, 917632, '\P{Is_Scx=- zyyy}', "");
+    Expect(0, 917632, '\P{^Is_Scx=- zyyy}', "");
+    Error('\p{Script_Extensions=/a/_Unknown}');
+    Error('\P{Script_Extensions=/a/_Unknown}');
     Expect(1, 918000, '\p{Script_Extensions=:\AUnknown\z:}', "");;
     Expect(0, 917999, '\p{Script_Extensions=:\AUnknown\z:}', "");;
     Expect(1, 918000, '\p{Script_Extensions=unknown}', "");
@@ -154301,38 +155765,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^Script_Extensions=unknown}', "");
     Expect(1, 918000, '\p{Script_Extensions=:\Aunknown\z:}', "");;
     Expect(0, 917999, '\p{Script_Extensions=:\Aunknown\z:}', "");;
-    Expect(1, 918000, '\p{Script_Extensions=_ UNKNOWN}', "");
-    Expect(0, 918000, '\p{^Script_Extensions=_ UNKNOWN}', "");
-    Expect(0, 918000, '\P{Script_Extensions=_ UNKNOWN}', "");
-    Expect(1, 918000, '\P{^Script_Extensions=_ UNKNOWN}', "");
-    Expect(0, 917999, '\p{Script_Extensions=_ UNKNOWN}', "");
-    Expect(1, 917999, '\p{^Script_Extensions=_ UNKNOWN}', "");
-    Expect(1, 917999, '\P{Script_Extensions=_ UNKNOWN}', "");
-    Expect(0, 917999, '\P{^Script_Extensions=_ UNKNOWN}', "");
-    Error('\p{Scx=-ZZZZ:=}');
-    Error('\P{Scx=-ZZZZ:=}');
+    Expect(1, 918000, '\p{Script_Extensions=	_Unknown}', "");
+    Expect(0, 918000, '\p{^Script_Extensions=	_Unknown}', "");
+    Expect(0, 918000, '\P{Script_Extensions=	_Unknown}', "");
+    Expect(1, 918000, '\P{^Script_Extensions=	_Unknown}', "");
+    Expect(0, 917999, '\p{Script_Extensions=	_Unknown}', "");
+    Expect(1, 917999, '\p{^Script_Extensions=	_Unknown}', "");
+    Expect(1, 917999, '\P{Script_Extensions=	_Unknown}', "");
+    Expect(0, 917999, '\P{^Script_Extensions=	_Unknown}', "");
+    Error('\p{Scx=:=zzzz}');
+    Error('\P{Scx=:=zzzz}');
     Expect(1, 918000, '\p{Scx=:\AZzzz\z:}', "");;
     Expect(0, 917999, '\p{Scx=:\AZzzz\z:}', "");;
-    Expect(1, 918000, '\p{Scx:zzzz}', "");
-    Expect(0, 918000, '\p{^Scx:zzzz}', "");
-    Expect(0, 918000, '\P{Scx:zzzz}', "");
-    Expect(1, 918000, '\P{^Scx:zzzz}', "");
-    Expect(0, 917999, '\p{Scx:zzzz}', "");
-    Expect(1, 917999, '\p{^Scx:zzzz}', "");
-    Expect(1, 917999, '\P{Scx:zzzz}', "");
-    Expect(0, 917999, '\P{^Scx:zzzz}', "");
+    Expect(1, 918000, '\p{Scx=zzzz}', "");
+    Expect(0, 918000, '\p{^Scx=zzzz}', "");
+    Expect(0, 918000, '\P{Scx=zzzz}', "");
+    Expect(1, 918000, '\P{^Scx=zzzz}', "");
+    Expect(0, 917999, '\p{Scx=zzzz}', "");
+    Expect(1, 917999, '\p{^Scx=zzzz}', "");
+    Expect(1, 917999, '\P{Scx=zzzz}', "");
+    Expect(0, 917999, '\P{^Scx=zzzz}', "");
     Expect(1, 918000, '\p{Scx=:\Azzzz\z:}', "");;
     Expect(0, 917999, '\p{Scx=:\Azzzz\z:}', "");;
-    Expect(1, 918000, '\p{Scx=--ZZZZ}', "");
-    Expect(0, 918000, '\p{^Scx=--ZZZZ}', "");
-    Expect(0, 918000, '\P{Scx=--ZZZZ}', "");
-    Expect(1, 918000, '\P{^Scx=--ZZZZ}', "");
-    Expect(0, 917999, '\p{Scx=--ZZZZ}', "");
-    Expect(1, 917999, '\p{^Scx=--ZZZZ}', "");
-    Expect(1, 917999, '\P{Scx=--ZZZZ}', "");
-    Expect(0, 917999, '\P{^Scx=--ZZZZ}', "");
-    Error('\p{Is_Script_Extensions=-:=Unknown}');
-    Error('\P{Is_Script_Extensions=-:=Unknown}');
+    Expect(1, 918000, '\p{Scx=	 ZZZZ}', "");
+    Expect(0, 918000, '\p{^Scx=	 ZZZZ}', "");
+    Expect(0, 918000, '\P{Scx=	 ZZZZ}', "");
+    Expect(1, 918000, '\P{^Scx=	 ZZZZ}', "");
+    Expect(0, 917999, '\p{Scx=	 ZZZZ}', "");
+    Expect(1, 917999, '\p{^Scx=	 ZZZZ}', "");
+    Expect(1, 917999, '\P{Scx=	 ZZZZ}', "");
+    Expect(0, 917999, '\P{^Scx=	 ZZZZ}', "");
+    Error('\p{Is_Script_Extensions=-UNKNOWN:=}');
+    Error('\P{Is_Script_Extensions=-UNKNOWN:=}');
     Expect(1, 918000, '\p{Is_Script_Extensions=unknown}', "");
     Expect(0, 918000, '\p{^Is_Script_Extensions=unknown}', "");
     Expect(0, 918000, '\P{Is_Script_Extensions=unknown}', "");
@@ -154341,192 +155805,192 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_Script_Extensions=unknown}', "");
     Expect(1, 917999, '\P{Is_Script_Extensions=unknown}', "");
     Expect(0, 917999, '\P{^Is_Script_Extensions=unknown}', "");
-    Expect(1, 918000, '\p{Is_Script_Extensions=_-unknown}', "");
-    Expect(0, 918000, '\p{^Is_Script_Extensions=_-unknown}', "");
-    Expect(0, 918000, '\P{Is_Script_Extensions=_-unknown}', "");
-    Expect(1, 918000, '\P{^Is_Script_Extensions=_-unknown}', "");
-    Expect(0, 917999, '\p{Is_Script_Extensions=_-unknown}', "");
-    Expect(1, 917999, '\p{^Is_Script_Extensions=_-unknown}', "");
-    Expect(1, 917999, '\P{Is_Script_Extensions=_-unknown}', "");
-    Expect(0, 917999, '\P{^Is_Script_Extensions=_-unknown}', "");
-    Error('\p{Is_Scx=_-zzzz/a/}');
-    Error('\P{Is_Scx=_-zzzz/a/}');
-    Expect(1, 918000, '\p{Is_Scx:	zzzz}', "");
-    Expect(0, 918000, '\p{^Is_Scx:	zzzz}', "");
-    Expect(0, 918000, '\P{Is_Scx:	zzzz}', "");
-    Expect(1, 918000, '\P{^Is_Scx:	zzzz}', "");
-    Expect(0, 917999, '\p{Is_Scx:	zzzz}', "");
-    Expect(1, 917999, '\p{^Is_Scx:	zzzz}', "");
-    Expect(1, 917999, '\P{Is_Scx:	zzzz}', "");
-    Expect(0, 917999, '\P{^Is_Scx:	zzzz}', "");
-    Expect(1, 918000, '\p{Is_Scx= 	ZZZZ}', "");
-    Expect(0, 918000, '\p{^Is_Scx= 	ZZZZ}', "");
-    Expect(0, 918000, '\P{Is_Scx= 	ZZZZ}', "");
-    Expect(1, 918000, '\P{^Is_Scx= 	ZZZZ}', "");
-    Expect(0, 917999, '\p{Is_Scx= 	ZZZZ}', "");
-    Expect(1, 917999, '\p{^Is_Scx= 	ZZZZ}', "");
-    Expect(1, 917999, '\P{Is_Scx= 	ZZZZ}', "");
-    Expect(0, 917999, '\P{^Is_Scx= 	ZZZZ}', "");
-    Error('\p{Soft_Dotted=-	No/a/}');
-    Error('\P{Soft_Dotted=-	No/a/}');
-    Expect(1, 122651, '\p{Soft_Dotted=:\ANo\z:}', "");;
-    Expect(0, 122650, '\p{Soft_Dotted=:\ANo\z:}', "");;
-    Expect(1, 122651, '\p{Soft_Dotted=no}', "");
-    Expect(0, 122651, '\p{^Soft_Dotted=no}', "");
-    Expect(0, 122651, '\P{Soft_Dotted=no}', "");
-    Expect(1, 122651, '\P{^Soft_Dotted=no}', "");
-    Expect(0, 122650, '\p{Soft_Dotted=no}', "");
-    Expect(1, 122650, '\p{^Soft_Dotted=no}', "");
-    Expect(1, 122650, '\P{Soft_Dotted=no}', "");
-    Expect(0, 122650, '\P{^Soft_Dotted=no}', "");
-    Expect(1, 122651, '\p{Soft_Dotted=:\Ano\z:}', "");;
-    Expect(0, 122650, '\p{Soft_Dotted=:\Ano\z:}', "");;
-    Expect(1, 122651, '\p{Soft_Dotted= -no}', "");
-    Expect(0, 122651, '\p{^Soft_Dotted= -no}', "");
-    Expect(0, 122651, '\P{Soft_Dotted= -no}', "");
-    Expect(1, 122651, '\P{^Soft_Dotted= -no}', "");
-    Expect(0, 122650, '\p{Soft_Dotted= -no}', "");
-    Expect(1, 122650, '\p{^Soft_Dotted= -no}', "");
-    Expect(1, 122650, '\P{Soft_Dotted= -no}', "");
-    Expect(0, 122650, '\P{^Soft_Dotted= -no}', "");
-    Error('\p{SD=	/a/N}');
-    Error('\P{SD=	/a/N}');
-    Expect(1, 122651, '\p{SD=:\AN\z:}', "");;
-    Expect(0, 122650, '\p{SD=:\AN\z:}', "");;
-    Expect(1, 122651, '\p{SD=n}', "");
-    Expect(0, 122651, '\p{^SD=n}', "");
-    Expect(0, 122651, '\P{SD=n}', "");
-    Expect(1, 122651, '\P{^SD=n}', "");
-    Expect(0, 122650, '\p{SD=n}', "");
-    Expect(1, 122650, '\p{^SD=n}', "");
-    Expect(1, 122650, '\P{SD=n}', "");
-    Expect(0, 122650, '\P{^SD=n}', "");
-    Expect(1, 122651, '\p{SD=:\An\z:}', "");;
-    Expect(0, 122650, '\p{SD=:\An\z:}', "");;
-    Expect(1, 122651, '\p{SD=-N}', "");
-    Expect(0, 122651, '\p{^SD=-N}', "");
-    Expect(0, 122651, '\P{SD=-N}', "");
-    Expect(1, 122651, '\P{^SD=-N}', "");
-    Expect(0, 122650, '\p{SD=-N}', "");
-    Expect(1, 122650, '\p{^SD=-N}', "");
-    Expect(1, 122650, '\P{SD=-N}', "");
-    Expect(0, 122650, '\P{^SD=-N}', "");
-    Error('\p{Is_Soft_Dotted=:=_F}');
-    Error('\P{Is_Soft_Dotted=:=_F}');
-    Expect(1, 122651, '\p{Is_Soft_Dotted=f}', "");
-    Expect(0, 122651, '\p{^Is_Soft_Dotted=f}', "");
-    Expect(0, 122651, '\P{Is_Soft_Dotted=f}', "");
-    Expect(1, 122651, '\P{^Is_Soft_Dotted=f}', "");
-    Expect(0, 122650, '\p{Is_Soft_Dotted=f}', "");
-    Expect(1, 122650, '\p{^Is_Soft_Dotted=f}', "");
-    Expect(1, 122650, '\P{Is_Soft_Dotted=f}', "");
-    Expect(0, 122650, '\P{^Is_Soft_Dotted=f}', "");
-    Expect(1, 122651, '\p{Is_Soft_Dotted:  f}', "");
-    Expect(0, 122651, '\p{^Is_Soft_Dotted:  f}', "");
-    Expect(0, 122651, '\P{Is_Soft_Dotted:  f}', "");
-    Expect(1, 122651, '\P{^Is_Soft_Dotted:  f}', "");
-    Expect(0, 122650, '\p{Is_Soft_Dotted:  f}', "");
-    Expect(1, 122650, '\p{^Is_Soft_Dotted:  f}', "");
-    Expect(1, 122650, '\P{Is_Soft_Dotted:  f}', "");
-    Expect(0, 122650, '\P{^Is_Soft_Dotted:  f}', "");
-    Error('\p{Is_SD= -false:=}');
-    Error('\P{Is_SD= -false:=}');
-    Expect(1, 122651, '\p{Is_SD=false}', "");
-    Expect(0, 122651, '\p{^Is_SD=false}', "");
-    Expect(0, 122651, '\P{Is_SD=false}', "");
-    Expect(1, 122651, '\P{^Is_SD=false}', "");
-    Expect(0, 122650, '\p{Is_SD=false}', "");
-    Expect(1, 122650, '\p{^Is_SD=false}', "");
-    Expect(1, 122650, '\P{Is_SD=false}', "");
-    Expect(0, 122650, '\P{^Is_SD=false}', "");
-    Expect(1, 122651, '\p{Is_SD=_ False}', "");
-    Expect(0, 122651, '\p{^Is_SD=_ False}', "");
-    Expect(0, 122651, '\P{Is_SD=_ False}', "");
-    Expect(1, 122651, '\P{^Is_SD=_ False}', "");
-    Expect(0, 122650, '\p{Is_SD=_ False}', "");
-    Expect(1, 122650, '\p{^Is_SD=_ False}', "");
-    Expect(1, 122650, '\P{Is_SD=_ False}', "");
-    Expect(0, 122650, '\P{^Is_SD=_ False}', "");
-    Error('\p{Soft_Dotted=_:=yes}');
-    Error('\P{Soft_Dotted=_:=yes}');
-    Expect(1, 122650, '\p{Soft_Dotted=:\AYes\z:}', "");;
-    Expect(0, 122651, '\p{Soft_Dotted=:\AYes\z:}', "");;
-    Expect(1, 122650, '\p{Soft_Dotted=yes}', "");
-    Expect(0, 122650, '\p{^Soft_Dotted=yes}', "");
-    Expect(0, 122650, '\P{Soft_Dotted=yes}', "");
-    Expect(1, 122650, '\P{^Soft_Dotted=yes}', "");
-    Expect(0, 122651, '\p{Soft_Dotted=yes}', "");
-    Expect(1, 122651, '\p{^Soft_Dotted=yes}', "");
-    Expect(1, 122651, '\P{Soft_Dotted=yes}', "");
-    Expect(0, 122651, '\P{^Soft_Dotted=yes}', "");
-    Expect(1, 122650, '\p{Soft_Dotted=:\Ayes\z:}', "");;
-    Expect(0, 122651, '\p{Soft_Dotted=:\Ayes\z:}', "");;
-    Expect(1, 122650, '\p{Soft_Dotted=_	yes}', "");
-    Expect(0, 122650, '\p{^Soft_Dotted=_	yes}', "");
-    Expect(0, 122650, '\P{Soft_Dotted=_	yes}', "");
-    Expect(1, 122650, '\P{^Soft_Dotted=_	yes}', "");
-    Expect(0, 122651, '\p{Soft_Dotted=_	yes}', "");
-    Expect(1, 122651, '\p{^Soft_Dotted=_	yes}', "");
-    Expect(1, 122651, '\P{Soft_Dotted=_	yes}', "");
-    Expect(0, 122651, '\P{^Soft_Dotted=_	yes}', "");
-    Error('\p{SD=_Y/a/}');
-    Error('\P{SD=_Y/a/}');
-    Expect(1, 122650, '\p{SD=:\AY\z:}', "");;
-    Expect(0, 122651, '\p{SD=:\AY\z:}', "");;
-    Expect(1, 122650, '\p{SD=y}', "");
-    Expect(0, 122650, '\p{^SD=y}', "");
-    Expect(0, 122650, '\P{SD=y}', "");
-    Expect(1, 122650, '\P{^SD=y}', "");
-    Expect(0, 122651, '\p{SD=y}', "");
-    Expect(1, 122651, '\p{^SD=y}', "");
-    Expect(1, 122651, '\P{SD=y}', "");
-    Expect(0, 122651, '\P{^SD=y}', "");
-    Expect(1, 122650, '\p{SD=:\Ay\z:}', "");;
-    Expect(0, 122651, '\p{SD=:\Ay\z:}', "");;
-    Expect(1, 122650, '\p{SD=_y}', "");
-    Expect(0, 122650, '\p{^SD=_y}', "");
-    Expect(0, 122650, '\P{SD=_y}', "");
-    Expect(1, 122650, '\P{^SD=_y}', "");
-    Expect(0, 122651, '\p{SD=_y}', "");
-    Expect(1, 122651, '\p{^SD=_y}', "");
-    Expect(1, 122651, '\P{SD=_y}', "");
-    Expect(0, 122651, '\P{^SD=_y}', "");
-    Error('\p{Is_Soft_Dotted:	_:=t}');
-    Error('\P{Is_Soft_Dotted:	_:=t}');
-    Expect(1, 122650, '\p{Is_Soft_Dotted=t}', "");
-    Expect(0, 122650, '\p{^Is_Soft_Dotted=t}', "");
-    Expect(0, 122650, '\P{Is_Soft_Dotted=t}', "");
-    Expect(1, 122650, '\P{^Is_Soft_Dotted=t}', "");
-    Expect(0, 122651, '\p{Is_Soft_Dotted=t}', "");
-    Expect(1, 122651, '\p{^Is_Soft_Dotted=t}', "");
-    Expect(1, 122651, '\P{Is_Soft_Dotted=t}', "");
-    Expect(0, 122651, '\P{^Is_Soft_Dotted=t}', "");
-    Expect(1, 122650, '\p{Is_Soft_Dotted=_T}', "");
-    Expect(0, 122650, '\p{^Is_Soft_Dotted=_T}', "");
-    Expect(0, 122650, '\P{Is_Soft_Dotted=_T}', "");
-    Expect(1, 122650, '\P{^Is_Soft_Dotted=_T}', "");
-    Expect(0, 122651, '\p{Is_Soft_Dotted=_T}', "");
-    Expect(1, 122651, '\p{^Is_Soft_Dotted=_T}', "");
-    Expect(1, 122651, '\P{Is_Soft_Dotted=_T}', "");
-    Expect(0, 122651, '\P{^Is_Soft_Dotted=_T}', "");
-    Error('\p{Is_SD:	:= -True}');
-    Error('\P{Is_SD:	:= -True}');
-    Expect(1, 122650, '\p{Is_SD=true}', "");
-    Expect(0, 122650, '\p{^Is_SD=true}', "");
-    Expect(0, 122650, '\P{Is_SD=true}', "");
-    Expect(1, 122650, '\P{^Is_SD=true}', "");
-    Expect(0, 122651, '\p{Is_SD=true}', "");
-    Expect(1, 122651, '\p{^Is_SD=true}', "");
-    Expect(1, 122651, '\P{Is_SD=true}', "");
-    Expect(0, 122651, '\P{^Is_SD=true}', "");
-    Expect(1, 122650, '\p{Is_SD: _	TRUE}', "");
-    Expect(0, 122650, '\p{^Is_SD: _	TRUE}', "");
-    Expect(0, 122650, '\P{Is_SD: _	TRUE}', "");
-    Expect(1, 122650, '\P{^Is_SD: _	TRUE}', "");
-    Expect(0, 122651, '\p{Is_SD: _	TRUE}', "");
-    Expect(1, 122651, '\p{^Is_SD: _	TRUE}', "");
-    Expect(1, 122651, '\P{Is_SD: _	TRUE}', "");
-    Expect(0, 122651, '\P{^Is_SD: _	TRUE}', "");
+    Expect(1, 918000, '\p{Is_Script_Extensions=	Unknown}', "");
+    Expect(0, 918000, '\p{^Is_Script_Extensions=	Unknown}', "");
+    Expect(0, 918000, '\P{Is_Script_Extensions=	Unknown}', "");
+    Expect(1, 918000, '\P{^Is_Script_Extensions=	Unknown}', "");
+    Expect(0, 917999, '\p{Is_Script_Extensions=	Unknown}', "");
+    Expect(1, 917999, '\p{^Is_Script_Extensions=	Unknown}', "");
+    Expect(1, 917999, '\P{Is_Script_Extensions=	Unknown}', "");
+    Expect(0, 917999, '\P{^Is_Script_Extensions=	Unknown}', "");
+    Error('\p{Is_Scx:	_/a/ZZZZ}');
+    Error('\P{Is_Scx:	_/a/ZZZZ}');
+    Expect(1, 918000, '\p{Is_Scx=zzzz}', "");
+    Expect(0, 918000, '\p{^Is_Scx=zzzz}', "");
+    Expect(0, 918000, '\P{Is_Scx=zzzz}', "");
+    Expect(1, 918000, '\P{^Is_Scx=zzzz}', "");
+    Expect(0, 917999, '\p{Is_Scx=zzzz}', "");
+    Expect(1, 917999, '\p{^Is_Scx=zzzz}', "");
+    Expect(1, 917999, '\P{Is_Scx=zzzz}', "");
+    Expect(0, 917999, '\P{^Is_Scx=zzzz}', "");
+    Expect(1, 918000, '\p{Is_Scx=__ZZZZ}', "");
+    Expect(0, 918000, '\p{^Is_Scx=__ZZZZ}', "");
+    Expect(0, 918000, '\P{Is_Scx=__ZZZZ}', "");
+    Expect(1, 918000, '\P{^Is_Scx=__ZZZZ}', "");
+    Expect(0, 917999, '\p{Is_Scx=__ZZZZ}', "");
+    Expect(1, 917999, '\p{^Is_Scx=__ZZZZ}', "");
+    Expect(1, 917999, '\P{Is_Scx=__ZZZZ}', "");
+    Expect(0, 917999, '\P{^Is_Scx=__ZZZZ}', "");
+    Error('\p{Soft_Dotted=:=--No}');
+    Error('\P{Soft_Dotted=:=--No}');
+    Expect(1, 122985, '\p{Soft_Dotted=:\ANo\z:}', "");;
+    Expect(0, 122984, '\p{Soft_Dotted=:\ANo\z:}', "");;
+    Expect(1, 122985, '\p{Soft_Dotted=no}', "");
+    Expect(0, 122985, '\p{^Soft_Dotted=no}', "");
+    Expect(0, 122985, '\P{Soft_Dotted=no}', "");
+    Expect(1, 122985, '\P{^Soft_Dotted=no}', "");
+    Expect(0, 122984, '\p{Soft_Dotted=no}', "");
+    Expect(1, 122984, '\p{^Soft_Dotted=no}', "");
+    Expect(1, 122984, '\P{Soft_Dotted=no}', "");
+    Expect(0, 122984, '\P{^Soft_Dotted=no}', "");
+    Expect(1, 122985, '\p{Soft_Dotted=:\Ano\z:}', "");;
+    Expect(0, 122984, '\p{Soft_Dotted=:\Ano\z:}', "");;
+    Expect(1, 122985, '\p{Soft_Dotted:   _-NO}', "");
+    Expect(0, 122985, '\p{^Soft_Dotted:   _-NO}', "");
+    Expect(0, 122985, '\P{Soft_Dotted:   _-NO}', "");
+    Expect(1, 122985, '\P{^Soft_Dotted:   _-NO}', "");
+    Expect(0, 122984, '\p{Soft_Dotted:   _-NO}', "");
+    Expect(1, 122984, '\p{^Soft_Dotted:   _-NO}', "");
+    Expect(1, 122984, '\P{Soft_Dotted:   _-NO}', "");
+    Expect(0, 122984, '\P{^Soft_Dotted:   _-NO}', "");
+    Error('\p{SD=:=	-N}');
+    Error('\P{SD=:=	-N}');
+    Expect(1, 122985, '\p{SD=:\AN\z:}', "");;
+    Expect(0, 122984, '\p{SD=:\AN\z:}', "");;
+    Expect(1, 122985, '\p{SD=n}', "");
+    Expect(0, 122985, '\p{^SD=n}', "");
+    Expect(0, 122985, '\P{SD=n}', "");
+    Expect(1, 122985, '\P{^SD=n}', "");
+    Expect(0, 122984, '\p{SD=n}', "");
+    Expect(1, 122984, '\p{^SD=n}', "");
+    Expect(1, 122984, '\P{SD=n}', "");
+    Expect(0, 122984, '\P{^SD=n}', "");
+    Expect(1, 122985, '\p{SD=:\An\z:}', "");;
+    Expect(0, 122984, '\p{SD=:\An\z:}', "");;
+    Expect(1, 122985, '\p{SD=- N}', "");
+    Expect(0, 122985, '\p{^SD=- N}', "");
+    Expect(0, 122985, '\P{SD=- N}', "");
+    Expect(1, 122985, '\P{^SD=- N}', "");
+    Expect(0, 122984, '\p{SD=- N}', "");
+    Expect(1, 122984, '\p{^SD=- N}', "");
+    Expect(1, 122984, '\P{SD=- N}', "");
+    Expect(0, 122984, '\P{^SD=- N}', "");
+    Error('\p{Is_Soft_Dotted= :=F}');
+    Error('\P{Is_Soft_Dotted= :=F}');
+    Expect(1, 122985, '\p{Is_Soft_Dotted=f}', "");
+    Expect(0, 122985, '\p{^Is_Soft_Dotted=f}', "");
+    Expect(0, 122985, '\P{Is_Soft_Dotted=f}', "");
+    Expect(1, 122985, '\P{^Is_Soft_Dotted=f}', "");
+    Expect(0, 122984, '\p{Is_Soft_Dotted=f}', "");
+    Expect(1, 122984, '\p{^Is_Soft_Dotted=f}', "");
+    Expect(1, 122984, '\P{Is_Soft_Dotted=f}', "");
+    Expect(0, 122984, '\P{^Is_Soft_Dotted=f}', "");
+    Expect(1, 122985, '\p{Is_Soft_Dotted=-_f}', "");
+    Expect(0, 122985, '\p{^Is_Soft_Dotted=-_f}', "");
+    Expect(0, 122985, '\P{Is_Soft_Dotted=-_f}', "");
+    Expect(1, 122985, '\P{^Is_Soft_Dotted=-_f}', "");
+    Expect(0, 122984, '\p{Is_Soft_Dotted=-_f}', "");
+    Expect(1, 122984, '\p{^Is_Soft_Dotted=-_f}', "");
+    Expect(1, 122984, '\P{Is_Soft_Dotted=-_f}', "");
+    Expect(0, 122984, '\P{^Is_Soft_Dotted=-_f}', "");
+    Error('\p{Is_SD=:=false}');
+    Error('\P{Is_SD=:=false}');
+    Expect(1, 122985, '\p{Is_SD=false}', "");
+    Expect(0, 122985, '\p{^Is_SD=false}', "");
+    Expect(0, 122985, '\P{Is_SD=false}', "");
+    Expect(1, 122985, '\P{^Is_SD=false}', "");
+    Expect(0, 122984, '\p{Is_SD=false}', "");
+    Expect(1, 122984, '\p{^Is_SD=false}', "");
+    Expect(1, 122984, '\P{Is_SD=false}', "");
+    Expect(0, 122984, '\P{^Is_SD=false}', "");
+    Expect(1, 122985, '\p{Is_SD=--False}', "");
+    Expect(0, 122985, '\p{^Is_SD=--False}', "");
+    Expect(0, 122985, '\P{Is_SD=--False}', "");
+    Expect(1, 122985, '\P{^Is_SD=--False}', "");
+    Expect(0, 122984, '\p{Is_SD=--False}', "");
+    Expect(1, 122984, '\p{^Is_SD=--False}', "");
+    Expect(1, 122984, '\P{Is_SD=--False}', "");
+    Expect(0, 122984, '\P{^Is_SD=--False}', "");
+    Error('\p{Soft_Dotted=-Yes/a/}');
+    Error('\P{Soft_Dotted=-Yes/a/}');
+    Expect(1, 122984, '\p{Soft_Dotted=:\AYes\z:}', "");;
+    Expect(0, 122985, '\p{Soft_Dotted=:\AYes\z:}', "");;
+    Expect(1, 122984, '\p{Soft_Dotted=yes}', "");
+    Expect(0, 122984, '\p{^Soft_Dotted=yes}', "");
+    Expect(0, 122984, '\P{Soft_Dotted=yes}', "");
+    Expect(1, 122984, '\P{^Soft_Dotted=yes}', "");
+    Expect(0, 122985, '\p{Soft_Dotted=yes}', "");
+    Expect(1, 122985, '\p{^Soft_Dotted=yes}', "");
+    Expect(1, 122985, '\P{Soft_Dotted=yes}', "");
+    Expect(0, 122985, '\P{^Soft_Dotted=yes}', "");
+    Expect(1, 122984, '\p{Soft_Dotted=:\Ayes\z:}', "");;
+    Expect(0, 122985, '\p{Soft_Dotted=:\Ayes\z:}', "");;
+    Expect(1, 122984, '\p{Soft_Dotted=-Yes}', "");
+    Expect(0, 122984, '\p{^Soft_Dotted=-Yes}', "");
+    Expect(0, 122984, '\P{Soft_Dotted=-Yes}', "");
+    Expect(1, 122984, '\P{^Soft_Dotted=-Yes}', "");
+    Expect(0, 122985, '\p{Soft_Dotted=-Yes}', "");
+    Expect(1, 122985, '\p{^Soft_Dotted=-Yes}', "");
+    Expect(1, 122985, '\P{Soft_Dotted=-Yes}', "");
+    Expect(0, 122985, '\P{^Soft_Dotted=-Yes}', "");
+    Error('\p{SD=/a/ -Y}');
+    Error('\P{SD=/a/ -Y}');
+    Expect(1, 122984, '\p{SD=:\AY\z:}', "");;
+    Expect(0, 122985, '\p{SD=:\AY\z:}', "");;
+    Expect(1, 122984, '\p{SD:	y}', "");
+    Expect(0, 122984, '\p{^SD:	y}', "");
+    Expect(0, 122984, '\P{SD:	y}', "");
+    Expect(1, 122984, '\P{^SD:	y}', "");
+    Expect(0, 122985, '\p{SD:	y}', "");
+    Expect(1, 122985, '\p{^SD:	y}', "");
+    Expect(1, 122985, '\P{SD:	y}', "");
+    Expect(0, 122985, '\P{^SD:	y}', "");
+    Expect(1, 122984, '\p{SD=:\Ay\z:}', "");;
+    Expect(0, 122985, '\p{SD=:\Ay\z:}', "");;
+    Expect(1, 122984, '\p{SD=-Y}', "");
+    Expect(0, 122984, '\p{^SD=-Y}', "");
+    Expect(0, 122984, '\P{SD=-Y}', "");
+    Expect(1, 122984, '\P{^SD=-Y}', "");
+    Expect(0, 122985, '\p{SD=-Y}', "");
+    Expect(1, 122985, '\p{^SD=-Y}', "");
+    Expect(1, 122985, '\P{SD=-Y}', "");
+    Expect(0, 122985, '\P{^SD=-Y}', "");
+    Error('\p{Is_Soft_Dotted= /a/T}');
+    Error('\P{Is_Soft_Dotted= /a/T}');
+    Expect(1, 122984, '\p{Is_Soft_Dotted:   t}', "");
+    Expect(0, 122984, '\p{^Is_Soft_Dotted:   t}', "");
+    Expect(0, 122984, '\P{Is_Soft_Dotted:   t}', "");
+    Expect(1, 122984, '\P{^Is_Soft_Dotted:   t}', "");
+    Expect(0, 122985, '\p{Is_Soft_Dotted:   t}', "");
+    Expect(1, 122985, '\p{^Is_Soft_Dotted:   t}', "");
+    Expect(1, 122985, '\P{Is_Soft_Dotted:   t}', "");
+    Expect(0, 122985, '\P{^Is_Soft_Dotted:   t}', "");
+    Expect(1, 122984, '\p{Is_Soft_Dotted= 	t}', "");
+    Expect(0, 122984, '\p{^Is_Soft_Dotted= 	t}', "");
+    Expect(0, 122984, '\P{Is_Soft_Dotted= 	t}', "");
+    Expect(1, 122984, '\P{^Is_Soft_Dotted= 	t}', "");
+    Expect(0, 122985, '\p{Is_Soft_Dotted= 	t}', "");
+    Expect(1, 122985, '\p{^Is_Soft_Dotted= 	t}', "");
+    Expect(1, 122985, '\P{Is_Soft_Dotted= 	t}', "");
+    Expect(0, 122985, '\P{^Is_Soft_Dotted= 	t}', "");
+    Error('\p{Is_SD=_-TRUE/a/}');
+    Error('\P{Is_SD=_-TRUE/a/}');
+    Expect(1, 122984, '\p{Is_SD: true}', "");
+    Expect(0, 122984, '\p{^Is_SD: true}', "");
+    Expect(0, 122984, '\P{Is_SD: true}', "");
+    Expect(1, 122984, '\P{^Is_SD: true}', "");
+    Expect(0, 122985, '\p{Is_SD: true}', "");
+    Expect(1, 122985, '\p{^Is_SD: true}', "");
+    Expect(1, 122985, '\P{Is_SD: true}', "");
+    Expect(0, 122985, '\P{^Is_SD: true}', "");
+    Expect(1, 122984, '\p{Is_SD=	_True}', "");
+    Expect(0, 122984, '\p{^Is_SD=	_True}', "");
+    Expect(0, 122984, '\P{Is_SD=	_True}', "");
+    Expect(1, 122984, '\P{^Is_SD=	_True}', "");
+    Expect(0, 122985, '\p{Is_SD=	_True}', "");
+    Expect(1, 122985, '\p{^Is_SD=	_True}', "");
+    Expect(1, 122985, '\P{Is_SD=	_True}', "");
+    Expect(0, 122985, '\P{^Is_SD=	_True}', "");
     Error('\p{simplelowercasemapping}');
     Error('\P{simplelowercasemapping}');
     Error('\p{slc}');
@@ -154535,30 +155999,30 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Error('\P{simpletitlecasemapping}');
     Error('\p{stc}');
     Error('\P{stc}');
-    Error('\p{Sentence_Terminal=_	NO/a/}');
-    Error('\P{Sentence_Terminal=_	NO/a/}');
+    Error('\p{Sentence_Terminal=/a/	_No}');
+    Error('\P{Sentence_Terminal=/a/	_No}');
     Expect(1, 121481, '\p{Sentence_Terminal=:\ANo\z:}', "");;
     Expect(0, 121480, '\p{Sentence_Terminal=:\ANo\z:}', "");;
-    Expect(1, 121481, '\p{Sentence_Terminal=no}', "");
-    Expect(0, 121481, '\p{^Sentence_Terminal=no}', "");
-    Expect(0, 121481, '\P{Sentence_Terminal=no}', "");
-    Expect(1, 121481, '\P{^Sentence_Terminal=no}', "");
-    Expect(0, 121480, '\p{Sentence_Terminal=no}', "");
-    Expect(1, 121480, '\p{^Sentence_Terminal=no}', "");
-    Expect(1, 121480, '\P{Sentence_Terminal=no}', "");
-    Expect(0, 121480, '\P{^Sentence_Terminal=no}', "");
+    Expect(1, 121481, '\p{Sentence_Terminal:   no}', "");
+    Expect(0, 121481, '\p{^Sentence_Terminal:   no}', "");
+    Expect(0, 121481, '\P{Sentence_Terminal:   no}', "");
+    Expect(1, 121481, '\P{^Sentence_Terminal:   no}', "");
+    Expect(0, 121480, '\p{Sentence_Terminal:   no}', "");
+    Expect(1, 121480, '\p{^Sentence_Terminal:   no}', "");
+    Expect(1, 121480, '\P{Sentence_Terminal:   no}', "");
+    Expect(0, 121480, '\P{^Sentence_Terminal:   no}', "");
     Expect(1, 121481, '\p{Sentence_Terminal=:\Ano\z:}', "");;
     Expect(0, 121480, '\p{Sentence_Terminal=:\Ano\z:}', "");;
-    Expect(1, 121481, '\p{Sentence_Terminal=	no}', "");
-    Expect(0, 121481, '\p{^Sentence_Terminal=	no}', "");
-    Expect(0, 121481, '\P{Sentence_Terminal=	no}', "");
-    Expect(1, 121481, '\P{^Sentence_Terminal=	no}', "");
-    Expect(0, 121480, '\p{Sentence_Terminal=	no}', "");
-    Expect(1, 121480, '\p{^Sentence_Terminal=	no}', "");
-    Expect(1, 121480, '\P{Sentence_Terminal=	no}', "");
-    Expect(0, 121480, '\P{^Sentence_Terminal=	no}', "");
-    Error('\p{STerm=-:=N}');
-    Error('\P{STerm=-:=N}');
+    Expect(1, 121481, '\p{Sentence_Terminal=- no}', "");
+    Expect(0, 121481, '\p{^Sentence_Terminal=- no}', "");
+    Expect(0, 121481, '\P{Sentence_Terminal=- no}', "");
+    Expect(1, 121481, '\P{^Sentence_Terminal=- no}', "");
+    Expect(0, 121480, '\p{Sentence_Terminal=- no}', "");
+    Expect(1, 121480, '\p{^Sentence_Terminal=- no}', "");
+    Expect(1, 121480, '\P{Sentence_Terminal=- no}', "");
+    Expect(0, 121480, '\P{^Sentence_Terminal=- no}', "");
+    Error('\p{STerm=:= -N}');
+    Error('\P{STerm=:= -N}');
     Expect(1, 121481, '\p{STerm=:\AN\z:}', "");;
     Expect(0, 121480, '\p{STerm=:\AN\z:}', "");;
     Expect(1, 121481, '\p{STerm=n}', "");
@@ -154571,34 +156035,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121480, '\P{^STerm=n}', "");
     Expect(1, 121481, '\p{STerm=:\An\z:}', "");;
     Expect(0, 121480, '\p{STerm=:\An\z:}', "");;
-    Expect(1, 121481, '\p{STerm:-N}', "");
-    Expect(0, 121481, '\p{^STerm:-N}', "");
-    Expect(0, 121481, '\P{STerm:-N}', "");
-    Expect(1, 121481, '\P{^STerm:-N}', "");
-    Expect(0, 121480, '\p{STerm:-N}', "");
-    Expect(1, 121480, '\p{^STerm:-N}', "");
-    Expect(1, 121480, '\P{STerm:-N}', "");
-    Expect(0, 121480, '\P{^STerm:-N}', "");
-    Error('\p{Is_Sentence_Terminal=_ F:=}');
-    Error('\P{Is_Sentence_Terminal=_ F:=}');
-    Expect(1, 121481, '\p{Is_Sentence_Terminal: f}', "");
-    Expect(0, 121481, '\p{^Is_Sentence_Terminal: f}', "");
-    Expect(0, 121481, '\P{Is_Sentence_Terminal: f}', "");
-    Expect(1, 121481, '\P{^Is_Sentence_Terminal: f}', "");
-    Expect(0, 121480, '\p{Is_Sentence_Terminal: f}', "");
-    Expect(1, 121480, '\p{^Is_Sentence_Terminal: f}', "");
-    Expect(1, 121480, '\P{Is_Sentence_Terminal: f}', "");
-    Expect(0, 121480, '\P{^Is_Sentence_Terminal: f}', "");
-    Expect(1, 121481, '\p{Is_Sentence_Terminal=	 f}', "");
-    Expect(0, 121481, '\p{^Is_Sentence_Terminal=	 f}', "");
-    Expect(0, 121481, '\P{Is_Sentence_Terminal=	 f}', "");
-    Expect(1, 121481, '\P{^Is_Sentence_Terminal=	 f}', "");
-    Expect(0, 121480, '\p{Is_Sentence_Terminal=	 f}', "");
-    Expect(1, 121480, '\p{^Is_Sentence_Terminal=	 f}', "");
-    Expect(1, 121480, '\P{Is_Sentence_Terminal=	 f}', "");
-    Expect(0, 121480, '\P{^Is_Sentence_Terminal=	 f}', "");
-    Error('\p{Is_STerm=	False:=}');
-    Error('\P{Is_STerm=	False:=}');
+    Expect(1, 121481, '\p{STerm=	 N}', "");
+    Expect(0, 121481, '\p{^STerm=	 N}', "");
+    Expect(0, 121481, '\P{STerm=	 N}', "");
+    Expect(1, 121481, '\P{^STerm=	 N}', "");
+    Expect(0, 121480, '\p{STerm=	 N}', "");
+    Expect(1, 121480, '\p{^STerm=	 N}', "");
+    Expect(1, 121480, '\P{STerm=	 N}', "");
+    Expect(0, 121480, '\P{^STerm=	 N}', "");
+    Error('\p{Is_Sentence_Terminal=_:=F}');
+    Error('\P{Is_Sentence_Terminal=_:=F}');
+    Expect(1, 121481, '\p{Is_Sentence_Terminal:	f}', "");
+    Expect(0, 121481, '\p{^Is_Sentence_Terminal:	f}', "");
+    Expect(0, 121481, '\P{Is_Sentence_Terminal:	f}', "");
+    Expect(1, 121481, '\P{^Is_Sentence_Terminal:	f}', "");
+    Expect(0, 121480, '\p{Is_Sentence_Terminal:	f}', "");
+    Expect(1, 121480, '\p{^Is_Sentence_Terminal:	f}', "");
+    Expect(1, 121480, '\P{Is_Sentence_Terminal:	f}', "");
+    Expect(0, 121480, '\P{^Is_Sentence_Terminal:	f}', "");
+    Expect(1, 121481, '\p{Is_Sentence_Terminal=_F}', "");
+    Expect(0, 121481, '\p{^Is_Sentence_Terminal=_F}', "");
+    Expect(0, 121481, '\P{Is_Sentence_Terminal=_F}', "");
+    Expect(1, 121481, '\P{^Is_Sentence_Terminal=_F}', "");
+    Expect(0, 121480, '\p{Is_Sentence_Terminal=_F}', "");
+    Expect(1, 121480, '\p{^Is_Sentence_Terminal=_F}', "");
+    Expect(1, 121480, '\P{Is_Sentence_Terminal=_F}', "");
+    Expect(0, 121480, '\P{^Is_Sentence_Terminal=_F}', "");
+    Error('\p{Is_STerm:   -:=False}');
+    Error('\P{Is_STerm:   -:=False}');
     Expect(1, 121481, '\p{Is_STerm=false}', "");
     Expect(0, 121481, '\p{^Is_STerm=false}', "");
     Expect(0, 121481, '\P{Is_STerm=false}', "");
@@ -154607,16 +156071,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121480, '\p{^Is_STerm=false}', "");
     Expect(1, 121480, '\P{Is_STerm=false}', "");
     Expect(0, 121480, '\P{^Is_STerm=false}', "");
-    Expect(1, 121481, '\p{Is_STerm= False}', "");
-    Expect(0, 121481, '\p{^Is_STerm= False}', "");
-    Expect(0, 121481, '\P{Is_STerm= False}', "");
-    Expect(1, 121481, '\P{^Is_STerm= False}', "");
-    Expect(0, 121480, '\p{Is_STerm= False}', "");
-    Expect(1, 121480, '\p{^Is_STerm= False}', "");
-    Expect(1, 121480, '\P{Is_STerm= False}', "");
-    Expect(0, 121480, '\P{^Is_STerm= False}', "");
-    Error('\p{Sentence_Terminal=-:=Yes}');
-    Error('\P{Sentence_Terminal=-:=Yes}');
+    Expect(1, 121481, '\p{Is_STerm=  FALSE}', "");
+    Expect(0, 121481, '\p{^Is_STerm=  FALSE}', "");
+    Expect(0, 121481, '\P{Is_STerm=  FALSE}', "");
+    Expect(1, 121481, '\P{^Is_STerm=  FALSE}', "");
+    Expect(0, 121480, '\p{Is_STerm=  FALSE}', "");
+    Expect(1, 121480, '\p{^Is_STerm=  FALSE}', "");
+    Expect(1, 121480, '\P{Is_STerm=  FALSE}', "");
+    Expect(0, 121480, '\P{^Is_STerm=  FALSE}', "");
+    Error('\p{Sentence_Terminal=:=YES}');
+    Error('\P{Sentence_Terminal=:=YES}');
     Expect(1, 121480, '\p{Sentence_Terminal=:\AYes\z:}', "");;
     Expect(0, 121481, '\p{Sentence_Terminal=:\AYes\z:}', "");;
     Expect(1, 121480, '\p{Sentence_Terminal=yes}', "");
@@ -154629,38 +156093,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121481, '\P{^Sentence_Terminal=yes}', "");
     Expect(1, 121480, '\p{Sentence_Terminal=:\Ayes\z:}', "");;
     Expect(0, 121481, '\p{Sentence_Terminal=:\Ayes\z:}', "");;
-    Expect(1, 121480, '\p{Sentence_Terminal=_YES}', "");
-    Expect(0, 121480, '\p{^Sentence_Terminal=_YES}', "");
-    Expect(0, 121480, '\P{Sentence_Terminal=_YES}', "");
-    Expect(1, 121480, '\P{^Sentence_Terminal=_YES}', "");
-    Expect(0, 121481, '\p{Sentence_Terminal=_YES}', "");
-    Expect(1, 121481, '\p{^Sentence_Terminal=_YES}', "");
-    Expect(1, 121481, '\P{Sentence_Terminal=_YES}', "");
-    Expect(0, 121481, '\P{^Sentence_Terminal=_YES}', "");
-    Error('\p{STerm=	Y:=}');
-    Error('\P{STerm=	Y:=}');
+    Expect(1, 121480, '\p{Sentence_Terminal=-_Yes}', "");
+    Expect(0, 121480, '\p{^Sentence_Terminal=-_Yes}', "");
+    Expect(0, 121480, '\P{Sentence_Terminal=-_Yes}', "");
+    Expect(1, 121480, '\P{^Sentence_Terminal=-_Yes}', "");
+    Expect(0, 121481, '\p{Sentence_Terminal=-_Yes}', "");
+    Expect(1, 121481, '\p{^Sentence_Terminal=-_Yes}', "");
+    Expect(1, 121481, '\P{Sentence_Terminal=-_Yes}', "");
+    Expect(0, 121481, '\P{^Sentence_Terminal=-_Yes}', "");
+    Error('\p{STerm=-_Y:=}');
+    Error('\P{STerm=-_Y:=}');
     Expect(1, 121480, '\p{STerm=:\AY\z:}', "");;
     Expect(0, 121481, '\p{STerm=:\AY\z:}', "");;
-    Expect(1, 121480, '\p{STerm: y}', "");
-    Expect(0, 121480, '\p{^STerm: y}', "");
-    Expect(0, 121480, '\P{STerm: y}', "");
-    Expect(1, 121480, '\P{^STerm: y}', "");
-    Expect(0, 121481, '\p{STerm: y}', "");
-    Expect(1, 121481, '\p{^STerm: y}', "");
-    Expect(1, 121481, '\P{STerm: y}', "");
-    Expect(0, 121481, '\P{^STerm: y}', "");
+    Expect(1, 121480, '\p{STerm=y}', "");
+    Expect(0, 121480, '\p{^STerm=y}', "");
+    Expect(0, 121480, '\P{STerm=y}', "");
+    Expect(1, 121480, '\P{^STerm=y}', "");
+    Expect(0, 121481, '\p{STerm=y}', "");
+    Expect(1, 121481, '\p{^STerm=y}', "");
+    Expect(1, 121481, '\P{STerm=y}', "");
+    Expect(0, 121481, '\P{^STerm=y}', "");
     Expect(1, 121480, '\p{STerm=:\Ay\z:}', "");;
     Expect(0, 121481, '\p{STerm=:\Ay\z:}', "");;
-    Expect(1, 121480, '\p{STerm=	y}', "");
-    Expect(0, 121480, '\p{^STerm=	y}', "");
-    Expect(0, 121480, '\P{STerm=	y}', "");
-    Expect(1, 121480, '\P{^STerm=	y}', "");
-    Expect(0, 121481, '\p{STerm=	y}', "");
-    Expect(1, 121481, '\p{^STerm=	y}', "");
-    Expect(1, 121481, '\P{STerm=	y}', "");
-    Expect(0, 121481, '\P{^STerm=	y}', "");
-    Error('\p{Is_Sentence_Terminal=:=T}');
-    Error('\P{Is_Sentence_Terminal=:=T}');
+    Expect(1, 121480, '\p{STerm:-	Y}', "");
+    Expect(0, 121480, '\p{^STerm:-	Y}', "");
+    Expect(0, 121480, '\P{STerm:-	Y}', "");
+    Expect(1, 121480, '\P{^STerm:-	Y}', "");
+    Expect(0, 121481, '\p{STerm:-	Y}', "");
+    Expect(1, 121481, '\p{^STerm:-	Y}', "");
+    Expect(1, 121481, '\P{STerm:-	Y}', "");
+    Expect(0, 121481, '\P{^STerm:-	Y}', "");
+    Error('\p{Is_Sentence_Terminal=_/a/T}');
+    Error('\P{Is_Sentence_Terminal=_/a/T}');
     Expect(1, 121480, '\p{Is_Sentence_Terminal=t}', "");
     Expect(0, 121480, '\p{^Is_Sentence_Terminal=t}', "");
     Expect(0, 121480, '\P{Is_Sentence_Terminal=t}', "");
@@ -154669,16 +156133,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^Is_Sentence_Terminal=t}', "");
     Expect(1, 121481, '\P{Is_Sentence_Terminal=t}', "");
     Expect(0, 121481, '\P{^Is_Sentence_Terminal=t}', "");
-    Expect(1, 121480, '\p{Is_Sentence_Terminal=_T}', "");
-    Expect(0, 121480, '\p{^Is_Sentence_Terminal=_T}', "");
-    Expect(0, 121480, '\P{Is_Sentence_Terminal=_T}', "");
-    Expect(1, 121480, '\P{^Is_Sentence_Terminal=_T}', "");
-    Expect(0, 121481, '\p{Is_Sentence_Terminal=_T}', "");
-    Expect(1, 121481, '\p{^Is_Sentence_Terminal=_T}', "");
-    Expect(1, 121481, '\P{Is_Sentence_Terminal=_T}', "");
-    Expect(0, 121481, '\P{^Is_Sentence_Terminal=_T}', "");
-    Error('\p{Is_STerm=_-True/a/}');
-    Error('\P{Is_STerm=_-True/a/}');
+    Expect(1, 121480, '\p{Is_Sentence_Terminal:__T}', "");
+    Expect(0, 121480, '\p{^Is_Sentence_Terminal:__T}', "");
+    Expect(0, 121480, '\P{Is_Sentence_Terminal:__T}', "");
+    Expect(1, 121480, '\P{^Is_Sentence_Terminal:__T}', "");
+    Expect(0, 121481, '\p{Is_Sentence_Terminal:__T}', "");
+    Expect(1, 121481, '\p{^Is_Sentence_Terminal:__T}', "");
+    Expect(1, 121481, '\P{Is_Sentence_Terminal:__T}', "");
+    Expect(0, 121481, '\P{^Is_Sentence_Terminal:__T}', "");
+    Error('\p{Is_STerm= /a/true}');
+    Error('\P{Is_STerm= /a/true}');
     Expect(1, 121480, '\p{Is_STerm=true}', "");
     Expect(0, 121480, '\p{^Is_STerm=true}', "");
     Expect(0, 121480, '\P{Is_STerm=true}', "");
@@ -154687,14 +156151,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121481, '\p{^Is_STerm=true}', "");
     Expect(1, 121481, '\P{Is_STerm=true}', "");
     Expect(0, 121481, '\P{^Is_STerm=true}', "");
-    Expect(1, 121480, '\p{Is_STerm=		TRUE}', "");
-    Expect(0, 121480, '\p{^Is_STerm=		TRUE}', "");
-    Expect(0, 121480, '\P{Is_STerm=		TRUE}', "");
-    Expect(1, 121480, '\P{^Is_STerm=		TRUE}', "");
-    Expect(0, 121481, '\p{Is_STerm=		TRUE}', "");
-    Expect(1, 121481, '\p{^Is_STerm=		TRUE}', "");
-    Expect(1, 121481, '\P{Is_STerm=		TRUE}', "");
-    Expect(0, 121481, '\P{^Is_STerm=		TRUE}', "");
+    Expect(1, 121480, '\p{Is_STerm= 	True}', "");
+    Expect(0, 121480, '\p{^Is_STerm= 	True}', "");
+    Expect(0, 121480, '\P{Is_STerm= 	True}', "");
+    Expect(1, 121480, '\P{^Is_STerm= 	True}', "");
+    Expect(0, 121481, '\p{Is_STerm= 	True}', "");
+    Expect(1, 121481, '\p{^Is_STerm= 	True}', "");
+    Expect(1, 121481, '\P{Is_STerm= 	True}', "");
+    Expect(0, 121481, '\P{^Is_STerm= 	True}', "");
     Error('\p{simpleuppercasemapping}');
     Error('\P{simpleuppercasemapping}');
     Error('\p{suc}');
@@ -154703,8 +156167,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Error('\P{titlecasemapping}');
     Error('\p{tc}');
     Error('\P{tc}');
-    Error('\p{Terminal_Punctuation=-_No:=}');
-    Error('\P{Terminal_Punctuation=-_No:=}');
+    Error('\p{Terminal_Punctuation=__No:=}');
+    Error('\P{Terminal_Punctuation=__No:=}');
     Expect(1, 121483, '\p{Terminal_Punctuation=:\ANo\z:}', "");;
     Expect(0, 121482, '\p{Terminal_Punctuation=:\ANo\z:}', "");;
     Expect(1, 121483, '\p{Terminal_Punctuation=no}', "");
@@ -154717,16 +156181,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121482, '\P{^Terminal_Punctuation=no}', "");
     Expect(1, 121483, '\p{Terminal_Punctuation=:\Ano\z:}', "");;
     Expect(0, 121482, '\p{Terminal_Punctuation=:\Ano\z:}', "");;
-    Expect(1, 121483, '\p{Terminal_Punctuation= 	NO}', "");
-    Expect(0, 121483, '\p{^Terminal_Punctuation= 	NO}', "");
-    Expect(0, 121483, '\P{Terminal_Punctuation= 	NO}', "");
-    Expect(1, 121483, '\P{^Terminal_Punctuation= 	NO}', "");
-    Expect(0, 121482, '\p{Terminal_Punctuation= 	NO}', "");
-    Expect(1, 121482, '\p{^Terminal_Punctuation= 	NO}', "");
-    Expect(1, 121482, '\P{Terminal_Punctuation= 	NO}', "");
-    Expect(0, 121482, '\P{^Terminal_Punctuation= 	NO}', "");
-    Error('\p{Term=_N:=}');
-    Error('\P{Term=_N:=}');
+    Expect(1, 121483, '\p{Terminal_Punctuation=	 NO}', "");
+    Expect(0, 121483, '\p{^Terminal_Punctuation=	 NO}', "");
+    Expect(0, 121483, '\P{Terminal_Punctuation=	 NO}', "");
+    Expect(1, 121483, '\P{^Terminal_Punctuation=	 NO}', "");
+    Expect(0, 121482, '\p{Terminal_Punctuation=	 NO}', "");
+    Expect(1, 121482, '\p{^Terminal_Punctuation=	 NO}', "");
+    Expect(1, 121482, '\P{Terminal_Punctuation=	 NO}', "");
+    Expect(0, 121482, '\P{^Terminal_Punctuation=	 NO}', "");
+    Error('\p{Term:   /a/-N}');
+    Error('\P{Term:   /a/-N}');
     Expect(1, 121483, '\p{Term=:\AN\z:}', "");;
     Expect(0, 121482, '\p{Term=:\AN\z:}', "");;
     Expect(1, 121483, '\p{Term=n}', "");
@@ -154739,16 +156203,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121482, '\P{^Term=n}', "");
     Expect(1, 121483, '\p{Term=:\An\z:}', "");;
     Expect(0, 121482, '\p{Term=:\An\z:}', "");;
-    Expect(1, 121483, '\p{Term=	_N}', "");
-    Expect(0, 121483, '\p{^Term=	_N}', "");
-    Expect(0, 121483, '\P{Term=	_N}', "");
-    Expect(1, 121483, '\P{^Term=	_N}', "");
-    Expect(0, 121482, '\p{Term=	_N}', "");
-    Expect(1, 121482, '\p{^Term=	_N}', "");
-    Expect(1, 121482, '\P{Term=	_N}', "");
-    Expect(0, 121482, '\P{^Term=	_N}', "");
-    Error('\p{Is_Terminal_Punctuation=/a/ -F}');
-    Error('\P{Is_Terminal_Punctuation=/a/ -F}');
+    Expect(1, 121483, '\p{Term= 	n}', "");
+    Expect(0, 121483, '\p{^Term= 	n}', "");
+    Expect(0, 121483, '\P{Term= 	n}', "");
+    Expect(1, 121483, '\P{^Term= 	n}', "");
+    Expect(0, 121482, '\p{Term= 	n}', "");
+    Expect(1, 121482, '\p{^Term= 	n}', "");
+    Expect(1, 121482, '\P{Term= 	n}', "");
+    Expect(0, 121482, '\P{^Term= 	n}', "");
+    Error('\p{Is_Terminal_Punctuation=:= 	F}');
+    Error('\P{Is_Terminal_Punctuation=:= 	F}');
     Expect(1, 121483, '\p{Is_Terminal_Punctuation=f}', "");
     Expect(0, 121483, '\p{^Is_Terminal_Punctuation=f}', "");
     Expect(0, 121483, '\P{Is_Terminal_Punctuation=f}', "");
@@ -154757,16 +156221,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121482, '\p{^Is_Terminal_Punctuation=f}', "");
     Expect(1, 121482, '\P{Is_Terminal_Punctuation=f}', "");
     Expect(0, 121482, '\P{^Is_Terminal_Punctuation=f}', "");
-    Expect(1, 121483, '\p{Is_Terminal_Punctuation= F}', "");
-    Expect(0, 121483, '\p{^Is_Terminal_Punctuation= F}', "");
-    Expect(0, 121483, '\P{Is_Terminal_Punctuation= F}', "");
-    Expect(1, 121483, '\P{^Is_Terminal_Punctuation= F}', "");
-    Expect(0, 121482, '\p{Is_Terminal_Punctuation= F}', "");
-    Expect(1, 121482, '\p{^Is_Terminal_Punctuation= F}', "");
-    Expect(1, 121482, '\P{Is_Terminal_Punctuation= F}', "");
-    Expect(0, 121482, '\P{^Is_Terminal_Punctuation= F}', "");
-    Error('\p{Is_Term= -FALSE/a/}');
-    Error('\P{Is_Term= -FALSE/a/}');
+    Expect(1, 121483, '\p{Is_Terminal_Punctuation= -F}', "");
+    Expect(0, 121483, '\p{^Is_Terminal_Punctuation= -F}', "");
+    Expect(0, 121483, '\P{Is_Terminal_Punctuation= -F}', "");
+    Expect(1, 121483, '\P{^Is_Terminal_Punctuation= -F}', "");
+    Expect(0, 121482, '\p{Is_Terminal_Punctuation= -F}', "");
+    Expect(1, 121482, '\p{^Is_Terminal_Punctuation= -F}', "");
+    Expect(1, 121482, '\P{Is_Terminal_Punctuation= -F}', "");
+    Expect(0, 121482, '\P{^Is_Terminal_Punctuation= -F}', "");
+    Error('\p{Is_Term=	:=False}');
+    Error('\P{Is_Term=	:=False}');
     Expect(1, 121483, '\p{Is_Term=false}', "");
     Expect(0, 121483, '\p{^Is_Term=false}', "");
     Expect(0, 121483, '\P{Is_Term=false}', "");
@@ -154775,38 +156239,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121482, '\p{^Is_Term=false}', "");
     Expect(1, 121482, '\P{Is_Term=false}', "");
     Expect(0, 121482, '\P{^Is_Term=false}', "");
-    Expect(1, 121483, '\p{Is_Term=	 false}', "");
-    Expect(0, 121483, '\p{^Is_Term=	 false}', "");
-    Expect(0, 121483, '\P{Is_Term=	 false}', "");
-    Expect(1, 121483, '\P{^Is_Term=	 false}', "");
-    Expect(0, 121482, '\p{Is_Term=	 false}', "");
-    Expect(1, 121482, '\p{^Is_Term=	 false}', "");
-    Expect(1, 121482, '\P{Is_Term=	 false}', "");
-    Expect(0, 121482, '\P{^Is_Term=	 false}', "");
-    Error('\p{Terminal_Punctuation= :=yes}');
-    Error('\P{Terminal_Punctuation= :=yes}');
+    Expect(1, 121483, '\p{Is_Term= _False}', "");
+    Expect(0, 121483, '\p{^Is_Term= _False}', "");
+    Expect(0, 121483, '\P{Is_Term= _False}', "");
+    Expect(1, 121483, '\P{^Is_Term= _False}', "");
+    Expect(0, 121482, '\p{Is_Term= _False}', "");
+    Expect(1, 121482, '\p{^Is_Term= _False}', "");
+    Expect(1, 121482, '\P{Is_Term= _False}', "");
+    Expect(0, 121482, '\P{^Is_Term= _False}', "");
+    Error('\p{Terminal_Punctuation=-Yes/a/}');
+    Error('\P{Terminal_Punctuation=-Yes/a/}');
     Expect(1, 121482, '\p{Terminal_Punctuation=:\AYes\z:}', "");;
     Expect(0, 121483, '\p{Terminal_Punctuation=:\AYes\z:}', "");;
-    Expect(1, 121482, '\p{Terminal_Punctuation=yes}', "");
-    Expect(0, 121482, '\p{^Terminal_Punctuation=yes}', "");
-    Expect(0, 121482, '\P{Terminal_Punctuation=yes}', "");
-    Expect(1, 121482, '\P{^Terminal_Punctuation=yes}', "");
-    Expect(0, 121483, '\p{Terminal_Punctuation=yes}', "");
-    Expect(1, 121483, '\p{^Terminal_Punctuation=yes}', "");
-    Expect(1, 121483, '\P{Terminal_Punctuation=yes}', "");
-    Expect(0, 121483, '\P{^Terminal_Punctuation=yes}', "");
+    Expect(1, 121482, '\p{Terminal_Punctuation:	yes}', "");
+    Expect(0, 121482, '\p{^Terminal_Punctuation:	yes}', "");
+    Expect(0, 121482, '\P{Terminal_Punctuation:	yes}', "");
+    Expect(1, 121482, '\P{^Terminal_Punctuation:	yes}', "");
+    Expect(0, 121483, '\p{Terminal_Punctuation:	yes}', "");
+    Expect(1, 121483, '\p{^Terminal_Punctuation:	yes}', "");
+    Expect(1, 121483, '\P{Terminal_Punctuation:	yes}', "");
+    Expect(0, 121483, '\P{^Terminal_Punctuation:	yes}', "");
     Expect(1, 121482, '\p{Terminal_Punctuation=:\Ayes\z:}', "");;
     Expect(0, 121483, '\p{Terminal_Punctuation=:\Ayes\z:}', "");;
-    Expect(1, 121482, '\p{Terminal_Punctuation=-_yes}', "");
-    Expect(0, 121482, '\p{^Terminal_Punctuation=-_yes}', "");
-    Expect(0, 121482, '\P{Terminal_Punctuation=-_yes}', "");
-    Expect(1, 121482, '\P{^Terminal_Punctuation=-_yes}', "");
-    Expect(0, 121483, '\p{Terminal_Punctuation=-_yes}', "");
-    Expect(1, 121483, '\p{^Terminal_Punctuation=-_yes}', "");
-    Expect(1, 121483, '\P{Terminal_Punctuation=-_yes}', "");
-    Expect(0, 121483, '\P{^Terminal_Punctuation=-_yes}', "");
-    Error('\p{Term= :=Y}');
-    Error('\P{Term= :=Y}');
+    Expect(1, 121482, '\p{Terminal_Punctuation=		yes}', "");
+    Expect(0, 121482, '\p{^Terminal_Punctuation=		yes}', "");
+    Expect(0, 121482, '\P{Terminal_Punctuation=		yes}', "");
+    Expect(1, 121482, '\P{^Terminal_Punctuation=		yes}', "");
+    Expect(0, 121483, '\p{Terminal_Punctuation=		yes}', "");
+    Expect(1, 121483, '\p{^Terminal_Punctuation=		yes}', "");
+    Expect(1, 121483, '\P{Terminal_Punctuation=		yes}', "");
+    Expect(0, 121483, '\P{^Terminal_Punctuation=		yes}', "");
+    Error('\p{Term:   _y:=}');
+    Error('\P{Term:   _y:=}');
     Expect(1, 121482, '\p{Term=:\AY\z:}', "");;
     Expect(0, 121483, '\p{Term=:\AY\z:}', "");;
     Expect(1, 121482, '\p{Term=y}', "");
@@ -154819,16 +156283,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 121483, '\P{^Term=y}', "");
     Expect(1, 121482, '\p{Term=:\Ay\z:}', "");;
     Expect(0, 121483, '\p{Term=:\Ay\z:}', "");;
-    Expect(1, 121482, '\p{Term=Y}', "");
-    Expect(0, 121482, '\p{^Term=Y}', "");
-    Expect(0, 121482, '\P{Term=Y}', "");
-    Expect(1, 121482, '\P{^Term=Y}', "");
-    Expect(0, 121483, '\p{Term=Y}', "");
-    Expect(1, 121483, '\p{^Term=Y}', "");
-    Expect(1, 121483, '\P{Term=Y}', "");
-    Expect(0, 121483, '\P{^Term=Y}', "");
-    Error('\p{Is_Terminal_Punctuation= 	T:=}');
-    Error('\P{Is_Terminal_Punctuation= 	T:=}');
+    Expect(1, 121482, '\p{Term=_	y}', "");
+    Expect(0, 121482, '\p{^Term=_	y}', "");
+    Expect(0, 121482, '\P{Term=_	y}', "");
+    Expect(1, 121482, '\P{^Term=_	y}', "");
+    Expect(0, 121483, '\p{Term=_	y}', "");
+    Expect(1, 121483, '\p{^Term=_	y}', "");
+    Expect(1, 121483, '\P{Term=_	y}', "");
+    Expect(0, 121483, '\P{^Term=_	y}', "");
+    Error('\p{Is_Terminal_Punctuation=	:=T}');
+    Error('\P{Is_Terminal_Punctuation=	:=T}');
     Expect(1, 121482, '\p{Is_Terminal_Punctuation=t}', "");
     Expect(0, 121482, '\p{^Is_Terminal_Punctuation=t}', "");
     Expect(0, 121482, '\P{Is_Terminal_Punctuation=t}', "");
@@ -154837,16 +156301,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121483, '\p{^Is_Terminal_Punctuation=t}', "");
     Expect(1, 121483, '\P{Is_Terminal_Punctuation=t}', "");
     Expect(0, 121483, '\P{^Is_Terminal_Punctuation=t}', "");
-    Expect(1, 121482, '\p{Is_Terminal_Punctuation=		T}', "");
-    Expect(0, 121482, '\p{^Is_Terminal_Punctuation=		T}', "");
-    Expect(0, 121482, '\P{Is_Terminal_Punctuation=		T}', "");
-    Expect(1, 121482, '\P{^Is_Terminal_Punctuation=		T}', "");
-    Expect(0, 121483, '\p{Is_Terminal_Punctuation=		T}', "");
-    Expect(1, 121483, '\p{^Is_Terminal_Punctuation=		T}', "");
-    Expect(1, 121483, '\P{Is_Terminal_Punctuation=		T}', "");
-    Expect(0, 121483, '\P{^Is_Terminal_Punctuation=		T}', "");
-    Error('\p{Is_Term=/a/True}');
-    Error('\P{Is_Term=/a/True}');
+    Expect(1, 121482, '\p{Is_Terminal_Punctuation= 	T}', "");
+    Expect(0, 121482, '\p{^Is_Terminal_Punctuation= 	T}', "");
+    Expect(0, 121482, '\P{Is_Terminal_Punctuation= 	T}', "");
+    Expect(1, 121482, '\P{^Is_Terminal_Punctuation= 	T}', "");
+    Expect(0, 121483, '\p{Is_Terminal_Punctuation= 	T}', "");
+    Expect(1, 121483, '\p{^Is_Terminal_Punctuation= 	T}', "");
+    Expect(1, 121483, '\P{Is_Terminal_Punctuation= 	T}', "");
+    Expect(0, 121483, '\P{^Is_Terminal_Punctuation= 	T}', "");
+    Error('\p{Is_Term=:=-	TRUE}');
+    Error('\P{Is_Term=:=-	TRUE}');
     Expect(1, 121482, '\p{Is_Term=true}', "");
     Expect(0, 121482, '\p{^Is_Term=true}', "");
     Expect(0, 121482, '\P{Is_Term=true}', "");
@@ -154855,180 +156319,180 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 121483, '\p{^Is_Term=true}', "");
     Expect(1, 121483, '\P{Is_Term=true}', "");
     Expect(0, 121483, '\P{^Is_Term=true}', "");
-    Expect(1, 121482, '\p{Is_Term=_TRUE}', "");
-    Expect(0, 121482, '\p{^Is_Term=_TRUE}', "");
-    Expect(0, 121482, '\P{Is_Term=_TRUE}', "");
-    Expect(1, 121482, '\P{^Is_Term=_TRUE}', "");
-    Expect(0, 121483, '\p{Is_Term=_TRUE}', "");
-    Expect(1, 121483, '\p{^Is_Term=_TRUE}', "");
-    Expect(1, 121483, '\P{Is_Term=_TRUE}', "");
-    Expect(0, 121483, '\P{^Is_Term=_TRUE}', "");
+    Expect(1, 121482, '\p{Is_Term: 	 True}', "");
+    Expect(0, 121482, '\p{^Is_Term: 	 True}', "");
+    Expect(0, 121482, '\P{Is_Term: 	 True}', "");
+    Expect(1, 121482, '\P{^Is_Term: 	 True}', "");
+    Expect(0, 121483, '\p{Is_Term: 	 True}', "");
+    Expect(1, 121483, '\p{^Is_Term: 	 True}', "");
+    Expect(1, 121483, '\P{Is_Term: 	 True}', "");
+    Expect(0, 121483, '\P{^Is_Term: 	 True}', "");
     Error('\p{uppercasemapping}');
     Error('\P{uppercasemapping}');
     Error('\p{uc}');
     Error('\P{uc}');
-    Error('\p{Unified_Ideograph=  No:=}');
-    Error('\P{Unified_Ideograph=  No:=}');
-    Expect(1, 201547, '\p{Unified_Ideograph=:\ANo\z:}', "");;
-    Expect(0, 201546, '\p{Unified_Ideograph=:\ANo\z:}', "");;
-    Expect(1, 201547, '\p{Unified_Ideograph=no}', "");
-    Expect(0, 201547, '\p{^Unified_Ideograph=no}', "");
-    Expect(0, 201547, '\P{Unified_Ideograph=no}', "");
-    Expect(1, 201547, '\P{^Unified_Ideograph=no}', "");
-    Expect(0, 201546, '\p{Unified_Ideograph=no}', "");
-    Expect(1, 201546, '\p{^Unified_Ideograph=no}', "");
-    Expect(1, 201546, '\P{Unified_Ideograph=no}', "");
-    Expect(0, 201546, '\P{^Unified_Ideograph=no}', "");
-    Expect(1, 201547, '\p{Unified_Ideograph=:\Ano\z:}', "");;
-    Expect(0, 201546, '\p{Unified_Ideograph=:\Ano\z:}', "");;
-    Expect(1, 201547, '\p{Unified_Ideograph=--no}', "");
-    Expect(0, 201547, '\p{^Unified_Ideograph=--no}', "");
-    Expect(0, 201547, '\P{Unified_Ideograph=--no}', "");
-    Expect(1, 201547, '\P{^Unified_Ideograph=--no}', "");
-    Expect(0, 201546, '\p{Unified_Ideograph=--no}', "");
-    Expect(1, 201546, '\p{^Unified_Ideograph=--no}', "");
-    Expect(1, 201546, '\P{Unified_Ideograph=--no}', "");
-    Expect(0, 201546, '\P{^Unified_Ideograph=--no}', "");
-    Error('\p{UIdeo=:= 	N}');
-    Error('\P{UIdeo=:= 	N}');
-    Expect(1, 201547, '\p{UIdeo=:\AN\z:}', "");;
-    Expect(0, 201546, '\p{UIdeo=:\AN\z:}', "");;
-    Expect(1, 201547, '\p{UIdeo=n}', "");
-    Expect(0, 201547, '\p{^UIdeo=n}', "");
-    Expect(0, 201547, '\P{UIdeo=n}', "");
-    Expect(1, 201547, '\P{^UIdeo=n}', "");
-    Expect(0, 201546, '\p{UIdeo=n}', "");
-    Expect(1, 201546, '\p{^UIdeo=n}', "");
-    Expect(1, 201546, '\P{UIdeo=n}', "");
-    Expect(0, 201546, '\P{^UIdeo=n}', "");
-    Expect(1, 201547, '\p{UIdeo=:\An\z:}', "");;
-    Expect(0, 201546, '\p{UIdeo=:\An\z:}', "");;
-    Expect(1, 201547, '\p{UIdeo=_ N}', "");
-    Expect(0, 201547, '\p{^UIdeo=_ N}', "");
-    Expect(0, 201547, '\P{UIdeo=_ N}', "");
-    Expect(1, 201547, '\P{^UIdeo=_ N}', "");
-    Expect(0, 201546, '\p{UIdeo=_ N}', "");
-    Expect(1, 201546, '\p{^UIdeo=_ N}', "");
-    Expect(1, 201546, '\P{UIdeo=_ N}', "");
-    Expect(0, 201546, '\P{^UIdeo=_ N}', "");
-    Error('\p{Is_Unified_Ideograph=:=__f}');
-    Error('\P{Is_Unified_Ideograph=:=__f}');
-    Expect(1, 201547, '\p{Is_Unified_Ideograph=f}', "");
-    Expect(0, 201547, '\p{^Is_Unified_Ideograph=f}', "");
-    Expect(0, 201547, '\P{Is_Unified_Ideograph=f}', "");
-    Expect(1, 201547, '\P{^Is_Unified_Ideograph=f}', "");
-    Expect(0, 201546, '\p{Is_Unified_Ideograph=f}', "");
-    Expect(1, 201546, '\p{^Is_Unified_Ideograph=f}', "");
-    Expect(1, 201546, '\P{Is_Unified_Ideograph=f}', "");
-    Expect(0, 201546, '\P{^Is_Unified_Ideograph=f}', "");
-    Expect(1, 201547, '\p{Is_Unified_Ideograph=_	f}', "");
-    Expect(0, 201547, '\p{^Is_Unified_Ideograph=_	f}', "");
-    Expect(0, 201547, '\P{Is_Unified_Ideograph=_	f}', "");
-    Expect(1, 201547, '\P{^Is_Unified_Ideograph=_	f}', "");
-    Expect(0, 201546, '\p{Is_Unified_Ideograph=_	f}', "");
-    Expect(1, 201546, '\p{^Is_Unified_Ideograph=_	f}', "");
-    Expect(1, 201546, '\P{Is_Unified_Ideograph=_	f}', "");
-    Expect(0, 201546, '\P{^Is_Unified_Ideograph=_	f}', "");
-    Error('\p{Is_UIdeo:	:=	-False}');
-    Error('\P{Is_UIdeo:	:=	-False}');
-    Expect(1, 201547, '\p{Is_UIdeo=false}', "");
-    Expect(0, 201547, '\p{^Is_UIdeo=false}', "");
-    Expect(0, 201547, '\P{Is_UIdeo=false}', "");
-    Expect(1, 201547, '\P{^Is_UIdeo=false}', "");
-    Expect(0, 201546, '\p{Is_UIdeo=false}', "");
-    Expect(1, 201546, '\p{^Is_UIdeo=false}', "");
-    Expect(1, 201546, '\P{Is_UIdeo=false}', "");
-    Expect(0, 201546, '\P{^Is_UIdeo=false}', "");
-    Expect(1, 201547, '\p{Is_UIdeo=  false}', "");
-    Expect(0, 201547, '\p{^Is_UIdeo=  false}', "");
-    Expect(0, 201547, '\P{Is_UIdeo=  false}', "");
-    Expect(1, 201547, '\P{^Is_UIdeo=  false}', "");
-    Expect(0, 201546, '\p{Is_UIdeo=  false}', "");
-    Expect(1, 201546, '\p{^Is_UIdeo=  false}', "");
-    Expect(1, 201546, '\P{Is_UIdeo=  false}', "");
-    Expect(0, 201546, '\P{^Is_UIdeo=  false}', "");
-    Error('\p{Unified_Ideograph=	/a/YES}');
-    Error('\P{Unified_Ideograph=	/a/YES}');
-    Expect(1, 201546, '\p{Unified_Ideograph=:\AYes\z:}', "");;
-    Expect(0, 201547, '\p{Unified_Ideograph=:\AYes\z:}', "");;
-    Expect(1, 201546, '\p{Unified_Ideograph=yes}', "");
-    Expect(0, 201546, '\p{^Unified_Ideograph=yes}', "");
-    Expect(0, 201546, '\P{Unified_Ideograph=yes}', "");
-    Expect(1, 201546, '\P{^Unified_Ideograph=yes}', "");
-    Expect(0, 201547, '\p{Unified_Ideograph=yes}', "");
-    Expect(1, 201547, '\p{^Unified_Ideograph=yes}', "");
-    Expect(1, 201547, '\P{Unified_Ideograph=yes}', "");
-    Expect(0, 201547, '\P{^Unified_Ideograph=yes}', "");
-    Expect(1, 201546, '\p{Unified_Ideograph=:\Ayes\z:}', "");;
-    Expect(0, 201547, '\p{Unified_Ideograph=:\Ayes\z:}', "");;
-    Expect(1, 201546, '\p{Unified_Ideograph:  _YES}', "");
-    Expect(0, 201546, '\p{^Unified_Ideograph:  _YES}', "");
-    Expect(0, 201546, '\P{Unified_Ideograph:  _YES}', "");
-    Expect(1, 201546, '\P{^Unified_Ideograph:  _YES}', "");
-    Expect(0, 201547, '\p{Unified_Ideograph:  _YES}', "");
-    Expect(1, 201547, '\p{^Unified_Ideograph:  _YES}', "");
-    Expect(1, 201547, '\P{Unified_Ideograph:  _YES}', "");
-    Expect(0, 201547, '\P{^Unified_Ideograph:  _YES}', "");
-    Error('\p{UIdeo=:=Y}');
-    Error('\P{UIdeo=:=Y}');
-    Expect(1, 201546, '\p{UIdeo=:\AY\z:}', "");;
-    Expect(0, 201547, '\p{UIdeo=:\AY\z:}', "");;
-    Expect(1, 201546, '\p{UIdeo=y}', "");
-    Expect(0, 201546, '\p{^UIdeo=y}', "");
-    Expect(0, 201546, '\P{UIdeo=y}', "");
-    Expect(1, 201546, '\P{^UIdeo=y}', "");
-    Expect(0, 201547, '\p{UIdeo=y}', "");
-    Expect(1, 201547, '\p{^UIdeo=y}', "");
-    Expect(1, 201547, '\P{UIdeo=y}', "");
-    Expect(0, 201547, '\P{^UIdeo=y}', "");
-    Expect(1, 201546, '\p{UIdeo=:\Ay\z:}', "");;
-    Expect(0, 201547, '\p{UIdeo=:\Ay\z:}', "");;
-    Expect(1, 201546, '\p{UIdeo=_ Y}', "");
-    Expect(0, 201546, '\p{^UIdeo=_ Y}', "");
-    Expect(0, 201546, '\P{UIdeo=_ Y}', "");
-    Expect(1, 201546, '\P{^UIdeo=_ Y}', "");
-    Expect(0, 201547, '\p{UIdeo=_ Y}', "");
-    Expect(1, 201547, '\p{^UIdeo=_ Y}', "");
-    Expect(1, 201547, '\P{UIdeo=_ Y}', "");
-    Expect(0, 201547, '\P{^UIdeo=_ Y}', "");
-    Error('\p{Is_Unified_Ideograph=/a/T}');
-    Error('\P{Is_Unified_Ideograph=/a/T}');
-    Expect(1, 201546, '\p{Is_Unified_Ideograph=t}', "");
-    Expect(0, 201546, '\p{^Is_Unified_Ideograph=t}', "");
-    Expect(0, 201546, '\P{Is_Unified_Ideograph=t}', "");
-    Expect(1, 201546, '\P{^Is_Unified_Ideograph=t}', "");
-    Expect(0, 201547, '\p{Is_Unified_Ideograph=t}', "");
-    Expect(1, 201547, '\p{^Is_Unified_Ideograph=t}', "");
-    Expect(1, 201547, '\P{Is_Unified_Ideograph=t}', "");
-    Expect(0, 201547, '\P{^Is_Unified_Ideograph=t}', "");
-    Expect(1, 201546, '\p{Is_Unified_Ideograph=	_t}', "");
-    Expect(0, 201546, '\p{^Is_Unified_Ideograph=	_t}', "");
-    Expect(0, 201546, '\P{Is_Unified_Ideograph=	_t}', "");
-    Expect(1, 201546, '\P{^Is_Unified_Ideograph=	_t}', "");
-    Expect(0, 201547, '\p{Is_Unified_Ideograph=	_t}', "");
-    Expect(1, 201547, '\p{^Is_Unified_Ideograph=	_t}', "");
-    Expect(1, 201547, '\P{Is_Unified_Ideograph=	_t}', "");
-    Expect(0, 201547, '\P{^Is_Unified_Ideograph=	_t}', "");
-    Error('\p{Is_UIdeo= :=TRUE}');
-    Error('\P{Is_UIdeo= :=TRUE}');
-    Expect(1, 201546, '\p{Is_UIdeo=true}', "");
-    Expect(0, 201546, '\p{^Is_UIdeo=true}', "");
-    Expect(0, 201546, '\P{Is_UIdeo=true}', "");
-    Expect(1, 201546, '\P{^Is_UIdeo=true}', "");
-    Expect(0, 201547, '\p{Is_UIdeo=true}', "");
-    Expect(1, 201547, '\p{^Is_UIdeo=true}', "");
-    Expect(1, 201547, '\P{Is_UIdeo=true}', "");
-    Expect(0, 201547, '\P{^Is_UIdeo=true}', "");
-    Expect(1, 201546, '\p{Is_UIdeo=		true}', "");
-    Expect(0, 201546, '\p{^Is_UIdeo=		true}', "");
-    Expect(0, 201546, '\P{Is_UIdeo=		true}', "");
-    Expect(1, 201546, '\P{^Is_UIdeo=		true}', "");
-    Expect(0, 201547, '\p{Is_UIdeo=		true}', "");
-    Expect(1, 201547, '\p{^Is_UIdeo=		true}', "");
-    Expect(1, 201547, '\P{Is_UIdeo=		true}', "");
-    Expect(0, 201547, '\P{^Is_UIdeo=		true}', "");
-    Error('\p{Uppercase=:=	-no}');
-    Error('\P{Uppercase=:=	-no}');
+    Error('\p{Unified_Ideograph=/a/ No}');
+    Error('\P{Unified_Ideograph=/a/ No}');
+    Expect(1, 205744, '\p{Unified_Ideograph=:\ANo\z:}', "");;
+    Expect(0, 205743, '\p{Unified_Ideograph=:\ANo\z:}', "");;
+    Expect(1, 205744, '\p{Unified_Ideograph=no}', "");
+    Expect(0, 205744, '\p{^Unified_Ideograph=no}', "");
+    Expect(0, 205744, '\P{Unified_Ideograph=no}', "");
+    Expect(1, 205744, '\P{^Unified_Ideograph=no}', "");
+    Expect(0, 205743, '\p{Unified_Ideograph=no}', "");
+    Expect(1, 205743, '\p{^Unified_Ideograph=no}', "");
+    Expect(1, 205743, '\P{Unified_Ideograph=no}', "");
+    Expect(0, 205743, '\P{^Unified_Ideograph=no}', "");
+    Expect(1, 205744, '\p{Unified_Ideograph=:\Ano\z:}', "");;
+    Expect(0, 205743, '\p{Unified_Ideograph=:\Ano\z:}', "");;
+    Expect(1, 205744, '\p{Unified_Ideograph: - NO}', "");
+    Expect(0, 205744, '\p{^Unified_Ideograph: - NO}', "");
+    Expect(0, 205744, '\P{Unified_Ideograph: - NO}', "");
+    Expect(1, 205744, '\P{^Unified_Ideograph: - NO}', "");
+    Expect(0, 205743, '\p{Unified_Ideograph: - NO}', "");
+    Expect(1, 205743, '\p{^Unified_Ideograph: - NO}', "");
+    Expect(1, 205743, '\P{Unified_Ideograph: - NO}', "");
+    Expect(0, 205743, '\P{^Unified_Ideograph: - NO}', "");
+    Error('\p{UIdeo=:=	N}');
+    Error('\P{UIdeo=:=	N}');
+    Expect(1, 205744, '\p{UIdeo=:\AN\z:}', "");;
+    Expect(0, 205743, '\p{UIdeo=:\AN\z:}', "");;
+    Expect(1, 205744, '\p{UIdeo=n}', "");
+    Expect(0, 205744, '\p{^UIdeo=n}', "");
+    Expect(0, 205744, '\P{UIdeo=n}', "");
+    Expect(1, 205744, '\P{^UIdeo=n}', "");
+    Expect(0, 205743, '\p{UIdeo=n}', "");
+    Expect(1, 205743, '\p{^UIdeo=n}', "");
+    Expect(1, 205743, '\P{UIdeo=n}', "");
+    Expect(0, 205743, '\P{^UIdeo=n}', "");
+    Expect(1, 205744, '\p{UIdeo=:\An\z:}', "");;
+    Expect(0, 205743, '\p{UIdeo=:\An\z:}', "");;
+    Expect(1, 205744, '\p{UIdeo=- N}', "");
+    Expect(0, 205744, '\p{^UIdeo=- N}', "");
+    Expect(0, 205744, '\P{UIdeo=- N}', "");
+    Expect(1, 205744, '\P{^UIdeo=- N}', "");
+    Expect(0, 205743, '\p{UIdeo=- N}', "");
+    Expect(1, 205743, '\p{^UIdeo=- N}', "");
+    Expect(1, 205743, '\P{UIdeo=- N}', "");
+    Expect(0, 205743, '\P{^UIdeo=- N}', "");
+    Error('\p{Is_Unified_Ideograph=:=	-F}');
+    Error('\P{Is_Unified_Ideograph=:=	-F}');
+    Expect(1, 205744, '\p{Is_Unified_Ideograph=f}', "");
+    Expect(0, 205744, '\p{^Is_Unified_Ideograph=f}', "");
+    Expect(0, 205744, '\P{Is_Unified_Ideograph=f}', "");
+    Expect(1, 205744, '\P{^Is_Unified_Ideograph=f}', "");
+    Expect(0, 205743, '\p{Is_Unified_Ideograph=f}', "");
+    Expect(1, 205743, '\p{^Is_Unified_Ideograph=f}', "");
+    Expect(1, 205743, '\P{Is_Unified_Ideograph=f}', "");
+    Expect(0, 205743, '\P{^Is_Unified_Ideograph=f}', "");
+    Expect(1, 205744, '\p{Is_Unified_Ideograph=	F}', "");
+    Expect(0, 205744, '\p{^Is_Unified_Ideograph=	F}', "");
+    Expect(0, 205744, '\P{Is_Unified_Ideograph=	F}', "");
+    Expect(1, 205744, '\P{^Is_Unified_Ideograph=	F}', "");
+    Expect(0, 205743, '\p{Is_Unified_Ideograph=	F}', "");
+    Expect(1, 205743, '\p{^Is_Unified_Ideograph=	F}', "");
+    Expect(1, 205743, '\P{Is_Unified_Ideograph=	F}', "");
+    Expect(0, 205743, '\P{^Is_Unified_Ideograph=	F}', "");
+    Error('\p{Is_UIdeo=:=FALSE}');
+    Error('\P{Is_UIdeo=:=FALSE}');
+    Expect(1, 205744, '\p{Is_UIdeo=false}', "");
+    Expect(0, 205744, '\p{^Is_UIdeo=false}', "");
+    Expect(0, 205744, '\P{Is_UIdeo=false}', "");
+    Expect(1, 205744, '\P{^Is_UIdeo=false}', "");
+    Expect(0, 205743, '\p{Is_UIdeo=false}', "");
+    Expect(1, 205743, '\p{^Is_UIdeo=false}', "");
+    Expect(1, 205743, '\P{Is_UIdeo=false}', "");
+    Expect(0, 205743, '\P{^Is_UIdeo=false}', "");
+    Expect(1, 205744, '\p{Is_UIdeo=_-False}', "");
+    Expect(0, 205744, '\p{^Is_UIdeo=_-False}', "");
+    Expect(0, 205744, '\P{Is_UIdeo=_-False}', "");
+    Expect(1, 205744, '\P{^Is_UIdeo=_-False}', "");
+    Expect(0, 205743, '\p{Is_UIdeo=_-False}', "");
+    Expect(1, 205743, '\p{^Is_UIdeo=_-False}', "");
+    Expect(1, 205743, '\P{Is_UIdeo=_-False}', "");
+    Expect(0, 205743, '\P{^Is_UIdeo=_-False}', "");
+    Error('\p{Unified_Ideograph:  Yes/a/}');
+    Error('\P{Unified_Ideograph:  Yes/a/}');
+    Expect(1, 205743, '\p{Unified_Ideograph=:\AYes\z:}', "");;
+    Expect(0, 205744, '\p{Unified_Ideograph=:\AYes\z:}', "");;
+    Expect(1, 205743, '\p{Unified_Ideograph=yes}', "");
+    Expect(0, 205743, '\p{^Unified_Ideograph=yes}', "");
+    Expect(0, 205743, '\P{Unified_Ideograph=yes}', "");
+    Expect(1, 205743, '\P{^Unified_Ideograph=yes}', "");
+    Expect(0, 205744, '\p{Unified_Ideograph=yes}', "");
+    Expect(1, 205744, '\p{^Unified_Ideograph=yes}', "");
+    Expect(1, 205744, '\P{Unified_Ideograph=yes}', "");
+    Expect(0, 205744, '\P{^Unified_Ideograph=yes}', "");
+    Expect(1, 205743, '\p{Unified_Ideograph=:\Ayes\z:}', "");;
+    Expect(0, 205744, '\p{Unified_Ideograph=:\Ayes\z:}', "");;
+    Expect(1, 205743, '\p{Unified_Ideograph=Yes}', "");
+    Expect(0, 205743, '\p{^Unified_Ideograph=Yes}', "");
+    Expect(0, 205743, '\P{Unified_Ideograph=Yes}', "");
+    Expect(1, 205743, '\P{^Unified_Ideograph=Yes}', "");
+    Expect(0, 205744, '\p{Unified_Ideograph=Yes}', "");
+    Expect(1, 205744, '\p{^Unified_Ideograph=Yes}', "");
+    Expect(1, 205744, '\P{Unified_Ideograph=Yes}', "");
+    Expect(0, 205744, '\P{^Unified_Ideograph=Yes}', "");
+    Error('\p{UIdeo=:=_ Y}');
+    Error('\P{UIdeo=:=_ Y}');
+    Expect(1, 205743, '\p{UIdeo=:\AY\z:}', "");;
+    Expect(0, 205744, '\p{UIdeo=:\AY\z:}', "");;
+    Expect(1, 205743, '\p{UIdeo:	y}', "");
+    Expect(0, 205743, '\p{^UIdeo:	y}', "");
+    Expect(0, 205743, '\P{UIdeo:	y}', "");
+    Expect(1, 205743, '\P{^UIdeo:	y}', "");
+    Expect(0, 205744, '\p{UIdeo:	y}', "");
+    Expect(1, 205744, '\p{^UIdeo:	y}', "");
+    Expect(1, 205744, '\P{UIdeo:	y}', "");
+    Expect(0, 205744, '\P{^UIdeo:	y}', "");
+    Expect(1, 205743, '\p{UIdeo=:\Ay\z:}', "");;
+    Expect(0, 205744, '\p{UIdeo=:\Ay\z:}', "");;
+    Expect(1, 205743, '\p{UIdeo= y}', "");
+    Expect(0, 205743, '\p{^UIdeo= y}', "");
+    Expect(0, 205743, '\P{UIdeo= y}', "");
+    Expect(1, 205743, '\P{^UIdeo= y}', "");
+    Expect(0, 205744, '\p{UIdeo= y}', "");
+    Expect(1, 205744, '\p{^UIdeo= y}', "");
+    Expect(1, 205744, '\P{UIdeo= y}', "");
+    Expect(0, 205744, '\P{^UIdeo= y}', "");
+    Error('\p{Is_Unified_Ideograph=_:=T}');
+    Error('\P{Is_Unified_Ideograph=_:=T}');
+    Expect(1, 205743, '\p{Is_Unified_Ideograph=t}', "");
+    Expect(0, 205743, '\p{^Is_Unified_Ideograph=t}', "");
+    Expect(0, 205743, '\P{Is_Unified_Ideograph=t}', "");
+    Expect(1, 205743, '\P{^Is_Unified_Ideograph=t}', "");
+    Expect(0, 205744, '\p{Is_Unified_Ideograph=t}', "");
+    Expect(1, 205744, '\p{^Is_Unified_Ideograph=t}', "");
+    Expect(1, 205744, '\P{Is_Unified_Ideograph=t}', "");
+    Expect(0, 205744, '\P{^Is_Unified_Ideograph=t}', "");
+    Expect(1, 205743, '\p{Is_Unified_Ideograph=-_T}', "");
+    Expect(0, 205743, '\p{^Is_Unified_Ideograph=-_T}', "");
+    Expect(0, 205743, '\P{Is_Unified_Ideograph=-_T}', "");
+    Expect(1, 205743, '\P{^Is_Unified_Ideograph=-_T}', "");
+    Expect(0, 205744, '\p{Is_Unified_Ideograph=-_T}', "");
+    Expect(1, 205744, '\p{^Is_Unified_Ideograph=-_T}', "");
+    Expect(1, 205744, '\P{Is_Unified_Ideograph=-_T}', "");
+    Expect(0, 205744, '\P{^Is_Unified_Ideograph=-_T}', "");
+    Error('\p{Is_UIdeo=:=-True}');
+    Error('\P{Is_UIdeo=:=-True}');
+    Expect(1, 205743, '\p{Is_UIdeo=true}', "");
+    Expect(0, 205743, '\p{^Is_UIdeo=true}', "");
+    Expect(0, 205743, '\P{Is_UIdeo=true}', "");
+    Expect(1, 205743, '\P{^Is_UIdeo=true}', "");
+    Expect(0, 205744, '\p{Is_UIdeo=true}', "");
+    Expect(1, 205744, '\p{^Is_UIdeo=true}', "");
+    Expect(1, 205744, '\P{Is_UIdeo=true}', "");
+    Expect(0, 205744, '\P{^Is_UIdeo=true}', "");
+    Expect(1, 205743, '\p{Is_UIdeo=- True}', "");
+    Expect(0, 205743, '\p{^Is_UIdeo=- True}', "");
+    Expect(0, 205743, '\P{Is_UIdeo=- True}', "");
+    Expect(1, 205743, '\P{^Is_UIdeo=- True}', "");
+    Expect(0, 205744, '\p{Is_UIdeo=- True}', "");
+    Expect(1, 205744, '\p{^Is_UIdeo=- True}', "");
+    Expect(1, 205744, '\P{Is_UIdeo=- True}', "");
+    Expect(0, 205744, '\P{^Is_UIdeo=- True}', "");
+    Error('\p{Uppercase= :=no}');
+    Error('\P{Uppercase= :=no}');
     Expect(1, 127370, '\p{Uppercase=:\ANo\z:}', "");;
     Expect(0, 127369, '\p{Uppercase=:\ANo\z:}', "");;
     Expect(1, 127370, '\p{Uppercase=no}', "");
@@ -155041,16 +156505,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127369, '\P{^Uppercase=no}', "");
     Expect(1, 127370, '\p{Uppercase=:\Ano\z:}', "");;
     Expect(0, 127369, '\p{Uppercase=:\Ano\z:}', "");;
-    Expect(1, 127370, '\p{Uppercase=_no}', "");
-    Expect(0, 127370, '\p{^Uppercase=_no}', "");
-    Expect(0, 127370, '\P{Uppercase=_no}', "");
-    Expect(1, 127370, '\P{^Uppercase=_no}', "");
-    Expect(0, 127369, '\p{Uppercase=_no}', "");
-    Expect(1, 127369, '\p{^Uppercase=_no}', "");
-    Expect(1, 127369, '\P{Uppercase=_no}', "");
-    Expect(0, 127369, '\P{^Uppercase=_no}', "");
-    Error('\p{Upper=	/a/N}');
-    Error('\P{Upper=	/a/N}');
+    Expect(1, 127370, '\p{Uppercase=	-No}', "");
+    Expect(0, 127370, '\p{^Uppercase=	-No}', "");
+    Expect(0, 127370, '\P{Uppercase=	-No}', "");
+    Expect(1, 127370, '\P{^Uppercase=	-No}', "");
+    Expect(0, 127369, '\p{Uppercase=	-No}', "");
+    Expect(1, 127369, '\p{^Uppercase=	-No}', "");
+    Expect(1, 127369, '\P{Uppercase=	-No}', "");
+    Expect(0, 127369, '\P{^Uppercase=	-No}', "");
+    Error('\p{Upper:   /a/	N}');
+    Error('\P{Upper:   /a/	N}');
     Expect(1, 127370, '\p{Upper=:\AN\z:}', "");;
     Expect(0, 127369, '\p{Upper=:\AN\z:}', "");;
     Expect(1, 127370, '\p{Upper=n}', "");
@@ -155063,16 +156527,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127369, '\P{^Upper=n}', "");
     Expect(1, 127370, '\p{Upper=:\An\z:}', "");;
     Expect(0, 127369, '\p{Upper=:\An\z:}', "");;
-    Expect(1, 127370, '\p{Upper=-N}', "");
-    Expect(0, 127370, '\p{^Upper=-N}', "");
-    Expect(0, 127370, '\P{Upper=-N}', "");
-    Expect(1, 127370, '\P{^Upper=-N}', "");
-    Expect(0, 127369, '\p{Upper=-N}', "");
-    Expect(1, 127369, '\p{^Upper=-N}', "");
-    Expect(1, 127369, '\P{Upper=-N}', "");
-    Expect(0, 127369, '\P{^Upper=-N}', "");
-    Error('\p{Is_Uppercase=:=	_F}');
-    Error('\P{Is_Uppercase=:=	_F}');
+    Expect(1, 127370, '\p{Upper:    _n}', "");
+    Expect(0, 127370, '\p{^Upper:    _n}', "");
+    Expect(0, 127370, '\P{Upper:    _n}', "");
+    Expect(1, 127370, '\P{^Upper:    _n}', "");
+    Expect(0, 127369, '\p{Upper:    _n}', "");
+    Expect(1, 127369, '\p{^Upper:    _n}', "");
+    Expect(1, 127369, '\P{Upper:    _n}', "");
+    Expect(0, 127369, '\P{^Upper:    _n}', "");
+    Error('\p{Is_Uppercase=-:=F}');
+    Error('\P{Is_Uppercase=-:=F}');
     Expect(1, 127370, '\p{Is_Uppercase=f}', "");
     Expect(0, 127370, '\p{^Is_Uppercase=f}', "");
     Expect(0, 127370, '\P{Is_Uppercase=f}', "");
@@ -155081,16 +156545,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127369, '\p{^Is_Uppercase=f}', "");
     Expect(1, 127369, '\P{Is_Uppercase=f}', "");
     Expect(0, 127369, '\P{^Is_Uppercase=f}', "");
-    Expect(1, 127370, '\p{Is_Uppercase=-_F}', "");
-    Expect(0, 127370, '\p{^Is_Uppercase=-_F}', "");
-    Expect(0, 127370, '\P{Is_Uppercase=-_F}', "");
-    Expect(1, 127370, '\P{^Is_Uppercase=-_F}', "");
-    Expect(0, 127369, '\p{Is_Uppercase=-_F}', "");
-    Expect(1, 127369, '\p{^Is_Uppercase=-_F}', "");
-    Expect(1, 127369, '\P{Is_Uppercase=-_F}', "");
-    Expect(0, 127369, '\P{^Is_Uppercase=-_F}', "");
-    Error('\p{Is_Upper= 	FALSE/a/}');
-    Error('\P{Is_Upper= 	FALSE/a/}');
+    Expect(1, 127370, '\p{Is_Uppercase=__F}', "");
+    Expect(0, 127370, '\p{^Is_Uppercase=__F}', "");
+    Expect(0, 127370, '\P{Is_Uppercase=__F}', "");
+    Expect(1, 127370, '\P{^Is_Uppercase=__F}', "");
+    Expect(0, 127369, '\p{Is_Uppercase=__F}', "");
+    Expect(1, 127369, '\p{^Is_Uppercase=__F}', "");
+    Expect(1, 127369, '\P{Is_Uppercase=__F}', "");
+    Expect(0, 127369, '\P{^Is_Uppercase=__F}', "");
+    Error('\p{Is_Upper=:=		False}');
+    Error('\P{Is_Upper=:=		False}');
     Expect(1, 127370, '\p{Is_Upper=false}', "");
     Expect(0, 127370, '\p{^Is_Upper=false}', "");
     Expect(0, 127370, '\P{Is_Upper=false}', "");
@@ -155099,14 +156563,14 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127369, '\p{^Is_Upper=false}', "");
     Expect(1, 127369, '\P{Is_Upper=false}', "");
     Expect(0, 127369, '\P{^Is_Upper=false}', "");
-    Expect(1, 127370, '\p{Is_Upper= 	false}', "");
-    Expect(0, 127370, '\p{^Is_Upper= 	false}', "");
-    Expect(0, 127370, '\P{Is_Upper= 	false}', "");
-    Expect(1, 127370, '\P{^Is_Upper= 	false}', "");
-    Expect(0, 127369, '\p{Is_Upper= 	false}', "");
-    Expect(1, 127369, '\p{^Is_Upper= 	false}', "");
-    Expect(1, 127369, '\P{Is_Upper= 	false}', "");
-    Expect(0, 127369, '\P{^Is_Upper= 	false}', "");
+    Expect(1, 127370, '\p{Is_Upper=-False}', "");
+    Expect(0, 127370, '\p{^Is_Upper=-False}', "");
+    Expect(0, 127370, '\P{Is_Upper=-False}', "");
+    Expect(1, 127370, '\P{^Is_Upper=-False}', "");
+    Expect(0, 127369, '\p{Is_Upper=-False}', "");
+    Expect(1, 127369, '\p{^Is_Upper=-False}', "");
+    Expect(1, 127369, '\P{Is_Upper=-False}', "");
+    Expect(0, 127369, '\P{^Is_Upper=-False}', "");
     Error('\p{Uppercase=_:=Yes}');
     Error('\P{Uppercase=_:=Yes}');
     Expect(1, 127369, '\p{Uppercase=:\AYes\z:}', "");;
@@ -155121,16 +156585,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127370, '\P{^Uppercase=yes}', "");
     Expect(1, 127369, '\p{Uppercase=:\Ayes\z:}', "");;
     Expect(0, 127370, '\p{Uppercase=:\Ayes\z:}', "");;
-    Expect(1, 127369, '\p{Uppercase=	-YES}', "");
-    Expect(0, 127369, '\p{^Uppercase=	-YES}', "");
-    Expect(0, 127369, '\P{Uppercase=	-YES}', "");
-    Expect(1, 127369, '\P{^Uppercase=	-YES}', "");
-    Expect(0, 127370, '\p{Uppercase=	-YES}', "");
-    Expect(1, 127370, '\p{^Uppercase=	-YES}', "");
-    Expect(1, 127370, '\P{Uppercase=	-YES}', "");
-    Expect(0, 127370, '\P{^Uppercase=	-YES}', "");
-    Error('\p{Upper=/a/- Y}');
-    Error('\P{Upper=/a/- Y}');
+    Expect(1, 127369, '\p{Uppercase: 	yes}', "");
+    Expect(0, 127369, '\p{^Uppercase: 	yes}', "");
+    Expect(0, 127369, '\P{Uppercase: 	yes}', "");
+    Expect(1, 127369, '\P{^Uppercase: 	yes}', "");
+    Expect(0, 127370, '\p{Uppercase: 	yes}', "");
+    Expect(1, 127370, '\p{^Uppercase: 	yes}', "");
+    Expect(1, 127370, '\P{Uppercase: 	yes}', "");
+    Expect(0, 127370, '\P{^Uppercase: 	yes}', "");
+    Error('\p{Upper= -Y/a/}');
+    Error('\P{Upper= -Y/a/}');
     Expect(1, 127369, '\p{Upper=:\AY\z:}', "");;
     Expect(0, 127370, '\p{Upper=:\AY\z:}', "");;
     Expect(1, 127369, '\p{Upper=y}', "");
@@ -155143,34 +156607,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127370, '\P{^Upper=y}', "");
     Expect(1, 127369, '\p{Upper=:\Ay\z:}', "");;
     Expect(0, 127370, '\p{Upper=:\Ay\z:}', "");;
-    Expect(1, 127369, '\p{Upper= _Y}', "");
-    Expect(0, 127369, '\p{^Upper= _Y}', "");
-    Expect(0, 127369, '\P{Upper= _Y}', "");
-    Expect(1, 127369, '\P{^Upper= _Y}', "");
-    Expect(0, 127370, '\p{Upper= _Y}', "");
-    Expect(1, 127370, '\p{^Upper= _Y}', "");
-    Expect(1, 127370, '\P{Upper= _Y}', "");
-    Expect(0, 127370, '\P{^Upper= _Y}', "");
-    Error('\p{Is_Uppercase=/a/-T}');
-    Error('\P{Is_Uppercase=/a/-T}');
-    Expect(1, 127369, '\p{Is_Uppercase=t}', "");
-    Expect(0, 127369, '\p{^Is_Uppercase=t}', "");
-    Expect(0, 127369, '\P{Is_Uppercase=t}', "");
-    Expect(1, 127369, '\P{^Is_Uppercase=t}', "");
-    Expect(0, 127370, '\p{Is_Uppercase=t}', "");
-    Expect(1, 127370, '\p{^Is_Uppercase=t}', "");
-    Expect(1, 127370, '\P{Is_Uppercase=t}', "");
-    Expect(0, 127370, '\P{^Is_Uppercase=t}', "");
-    Expect(1, 127369, '\p{Is_Uppercase=	_T}', "");
-    Expect(0, 127369, '\p{^Is_Uppercase=	_T}', "");
-    Expect(0, 127369, '\P{Is_Uppercase=	_T}', "");
-    Expect(1, 127369, '\P{^Is_Uppercase=	_T}', "");
-    Expect(0, 127370, '\p{Is_Uppercase=	_T}', "");
-    Expect(1, 127370, '\p{^Is_Uppercase=	_T}', "");
-    Expect(1, 127370, '\P{Is_Uppercase=	_T}', "");
-    Expect(0, 127370, '\P{^Is_Uppercase=	_T}', "");
-    Error('\p{Is_Upper=/a/True}');
-    Error('\P{Is_Upper=/a/True}');
+    Expect(1, 127369, '\p{Upper= 	Y}', "");
+    Expect(0, 127369, '\p{^Upper= 	Y}', "");
+    Expect(0, 127369, '\P{Upper= 	Y}', "");
+    Expect(1, 127369, '\P{^Upper= 	Y}', "");
+    Expect(0, 127370, '\p{Upper= 	Y}', "");
+    Expect(1, 127370, '\p{^Upper= 	Y}', "");
+    Expect(1, 127370, '\P{Upper= 	Y}', "");
+    Expect(0, 127370, '\P{^Upper= 	Y}', "");
+    Error('\p{Is_Uppercase=/a/t}');
+    Error('\P{Is_Uppercase=/a/t}');
+    Expect(1, 127369, '\p{Is_Uppercase:t}', "");
+    Expect(0, 127369, '\p{^Is_Uppercase:t}', "");
+    Expect(0, 127369, '\P{Is_Uppercase:t}', "");
+    Expect(1, 127369, '\P{^Is_Uppercase:t}', "");
+    Expect(0, 127370, '\p{Is_Uppercase:t}', "");
+    Expect(1, 127370, '\p{^Is_Uppercase:t}', "");
+    Expect(1, 127370, '\P{Is_Uppercase:t}', "");
+    Expect(0, 127370, '\P{^Is_Uppercase:t}', "");
+    Expect(1, 127369, '\p{Is_Uppercase= _T}', "");
+    Expect(0, 127369, '\p{^Is_Uppercase= _T}', "");
+    Expect(0, 127369, '\P{Is_Uppercase= _T}', "");
+    Expect(1, 127369, '\P{^Is_Uppercase= _T}', "");
+    Expect(0, 127370, '\p{Is_Uppercase= _T}', "");
+    Expect(1, 127370, '\p{^Is_Uppercase= _T}', "");
+    Expect(1, 127370, '\P{Is_Uppercase= _T}', "");
+    Expect(0, 127370, '\P{^Is_Uppercase= _T}', "");
+    Error('\p{Is_Upper=/a/  True}');
+    Error('\P{Is_Upper=/a/  True}');
     Expect(1, 127369, '\p{Is_Upper=true}', "");
     Expect(0, 127369, '\p{^Is_Upper=true}', "");
     Expect(0, 127369, '\P{Is_Upper=true}', "");
@@ -155179,20 +156643,20 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^Is_Upper=true}', "");
     Expect(1, 127370, '\P{Is_Upper=true}', "");
     Expect(0, 127370, '\P{^Is_Upper=true}', "");
-    Expect(1, 127369, '\p{Is_Upper: --TRUE}', "");
-    Expect(0, 127369, '\p{^Is_Upper: --TRUE}', "");
-    Expect(0, 127369, '\P{Is_Upper: --TRUE}', "");
-    Expect(1, 127369, '\P{^Is_Upper: --TRUE}', "");
-    Expect(0, 127370, '\p{Is_Upper: --TRUE}', "");
-    Expect(1, 127370, '\p{^Is_Upper: --TRUE}', "");
-    Expect(1, 127370, '\P{Is_Upper: --TRUE}', "");
-    Expect(0, 127370, '\P{^Is_Upper: --TRUE}', "");
+    Expect(1, 127369, '\p{Is_Upper= -true}', "");
+    Expect(0, 127369, '\p{^Is_Upper= -true}', "");
+    Expect(0, 127369, '\P{Is_Upper= -true}', "");
+    Expect(1, 127369, '\P{^Is_Upper= -true}', "");
+    Expect(0, 127370, '\p{Is_Upper= -true}', "");
+    Expect(1, 127370, '\p{^Is_Upper= -true}', "");
+    Expect(1, 127370, '\P{Is_Upper= -true}', "");
+    Expect(0, 127370, '\P{^Is_Upper= -true}', "");
     Error('\p{verticalorientation}');
     Error('\P{verticalorientation}');
     Error('\p{vo}');
     Error('\P{vo}');
-    Error('\p{Vertical_Orientation=_/a/rotated}');
-    Error('\P{Vertical_Orientation=_/a/rotated}');
+    Error('\p{Vertical_Orientation=	:=rotated}');
+    Error('\P{Vertical_Orientation=	:=rotated}');
     Expect(1, 262144, '\p{Vertical_Orientation=:\ARotated\z:}', "");;
     Expect(0, 1114109, '\p{Vertical_Orientation=:\ARotated\z:}', "");;
     Expect(1, 262144, '\p{Vertical_Orientation=rotated}', "");
@@ -155205,16 +156669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 1114109, '\P{^Vertical_Orientation=rotated}', "");
     Expect(1, 262144, '\p{Vertical_Orientation=:\Arotated\z:}', "");;
     Expect(0, 1114109, '\p{Vertical_Orientation=:\Arotated\z:}', "");;
-    Expect(1, 262144, '\p{Vertical_Orientation:--ROTATED}', "");
-    Expect(0, 262144, '\p{^Vertical_Orientation:--ROTATED}', "");
-    Expect(0, 262144, '\P{Vertical_Orientation:--ROTATED}', "");
-    Expect(1, 262144, '\P{^Vertical_Orientation:--ROTATED}', "");
-    Expect(0, 1114109, '\p{Vertical_Orientation:--ROTATED}', "");
-    Expect(1, 1114109, '\p{^Vertical_Orientation:--ROTATED}', "");
-    Expect(1, 1114109, '\P{Vertical_Orientation:--ROTATED}', "");
-    Expect(0, 1114109, '\P{^Vertical_Orientation:--ROTATED}', "");
-    Error('\p{Vo:   -r/a/}');
-    Error('\P{Vo:   -r/a/}');
+    Expect(1, 262144, '\p{Vertical_Orientation=	rotated}', "");
+    Expect(0, 262144, '\p{^Vertical_Orientation=	rotated}', "");
+    Expect(0, 262144, '\P{Vertical_Orientation=	rotated}', "");
+    Expect(1, 262144, '\P{^Vertical_Orientation=	rotated}', "");
+    Expect(0, 1114109, '\p{Vertical_Orientation=	rotated}', "");
+    Expect(1, 1114109, '\p{^Vertical_Orientation=	rotated}', "");
+    Expect(1, 1114109, '\P{Vertical_Orientation=	rotated}', "");
+    Expect(0, 1114109, '\P{^Vertical_Orientation=	rotated}', "");
+    Error('\p{Vo=  R:=}');
+    Error('\P{Vo=  R:=}');
     Expect(1, 262144, '\p{Vo=:\AR\z:}', "");;
     Expect(0, 1114109, '\p{Vo=:\AR\z:}', "");;
     Expect(1, 262144, '\p{Vo=r}', "");
@@ -155227,34 +156691,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 1114109, '\P{^Vo=r}', "");
     Expect(1, 262144, '\p{Vo=:\Ar\z:}', "");;
     Expect(0, 1114109, '\p{Vo=:\Ar\z:}', "");;
-    Expect(1, 262144, '\p{Vo=_R}', "");
-    Expect(0, 262144, '\p{^Vo=_R}', "");
-    Expect(0, 262144, '\P{Vo=_R}', "");
-    Expect(1, 262144, '\P{^Vo=_R}', "");
-    Expect(0, 1114109, '\p{Vo=_R}', "");
-    Expect(1, 1114109, '\p{^Vo=_R}', "");
-    Expect(1, 1114109, '\P{Vo=_R}', "");
-    Expect(0, 1114109, '\P{^Vo=_R}', "");
-    Error('\p{Is_Vertical_Orientation:	/a/_ROTATED}');
-    Error('\P{Is_Vertical_Orientation:	/a/_ROTATED}');
-    Expect(1, 262144, '\p{Is_Vertical_Orientation=rotated}', "");
-    Expect(0, 262144, '\p{^Is_Vertical_Orientation=rotated}', "");
-    Expect(0, 262144, '\P{Is_Vertical_Orientation=rotated}', "");
-    Expect(1, 262144, '\P{^Is_Vertical_Orientation=rotated}', "");
-    Expect(0, 1114109, '\p{Is_Vertical_Orientation=rotated}', "");
-    Expect(1, 1114109, '\p{^Is_Vertical_Orientation=rotated}', "");
-    Expect(1, 1114109, '\P{Is_Vertical_Orientation=rotated}', "");
-    Expect(0, 1114109, '\P{^Is_Vertical_Orientation=rotated}', "");
-    Expect(1, 262144, '\p{Is_Vertical_Orientation=__Rotated}', "");
-    Expect(0, 262144, '\p{^Is_Vertical_Orientation=__Rotated}', "");
-    Expect(0, 262144, '\P{Is_Vertical_Orientation=__Rotated}', "");
-    Expect(1, 262144, '\P{^Is_Vertical_Orientation=__Rotated}', "");
-    Expect(0, 1114109, '\p{Is_Vertical_Orientation=__Rotated}', "");
-    Expect(1, 1114109, '\p{^Is_Vertical_Orientation=__Rotated}', "");
-    Expect(1, 1114109, '\P{Is_Vertical_Orientation=__Rotated}', "");
-    Expect(0, 1114109, '\P{^Is_Vertical_Orientation=__Rotated}', "");
-    Error('\p{Is_Vo= :=R}');
-    Error('\P{Is_Vo= :=R}');
+    Expect(1, 262144, '\p{Vo= R}', "");
+    Expect(0, 262144, '\p{^Vo= R}', "");
+    Expect(0, 262144, '\P{Vo= R}', "");
+    Expect(1, 262144, '\P{^Vo= R}', "");
+    Expect(0, 1114109, '\p{Vo= R}', "");
+    Expect(1, 1114109, '\p{^Vo= R}', "");
+    Expect(1, 1114109, '\P{Vo= R}', "");
+    Expect(0, 1114109, '\P{^Vo= R}', "");
+    Error('\p{Is_Vertical_Orientation=:= 	Rotated}');
+    Error('\P{Is_Vertical_Orientation=:= 	Rotated}');
+    Expect(1, 262144, '\p{Is_Vertical_Orientation: rotated}', "");
+    Expect(0, 262144, '\p{^Is_Vertical_Orientation: rotated}', "");
+    Expect(0, 262144, '\P{Is_Vertical_Orientation: rotated}', "");
+    Expect(1, 262144, '\P{^Is_Vertical_Orientation: rotated}', "");
+    Expect(0, 1114109, '\p{Is_Vertical_Orientation: rotated}', "");
+    Expect(1, 1114109, '\p{^Is_Vertical_Orientation: rotated}', "");
+    Expect(1, 1114109, '\P{Is_Vertical_Orientation: rotated}', "");
+    Expect(0, 1114109, '\P{^Is_Vertical_Orientation: rotated}', "");
+    Expect(1, 262144, '\p{Is_Vertical_Orientation=	Rotated}', "");
+    Expect(0, 262144, '\p{^Is_Vertical_Orientation=	Rotated}', "");
+    Expect(0, 262144, '\P{Is_Vertical_Orientation=	Rotated}', "");
+    Expect(1, 262144, '\P{^Is_Vertical_Orientation=	Rotated}', "");
+    Expect(0, 1114109, '\p{Is_Vertical_Orientation=	Rotated}', "");
+    Expect(1, 1114109, '\p{^Is_Vertical_Orientation=	Rotated}', "");
+    Expect(1, 1114109, '\P{Is_Vertical_Orientation=	Rotated}', "");
+    Expect(0, 1114109, '\P{^Is_Vertical_Orientation=	Rotated}', "");
+    Error('\p{Is_Vo=_ R:=}');
+    Error('\P{Is_Vo=_ R:=}');
     Expect(1, 262144, '\p{Is_Vo=r}', "");
     Expect(0, 262144, '\p{^Is_Vo=r}', "");
     Expect(0, 262144, '\P{Is_Vo=r}', "");
@@ -155263,16 +156727,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1114109, '\p{^Is_Vo=r}', "");
     Expect(1, 1114109, '\P{Is_Vo=r}', "");
     Expect(0, 1114109, '\P{^Is_Vo=r}', "");
-    Expect(1, 262144, '\p{Is_Vo=	 R}', "");
-    Expect(0, 262144, '\p{^Is_Vo=	 R}', "");
-    Expect(0, 262144, '\P{Is_Vo=	 R}', "");
-    Expect(1, 262144, '\P{^Is_Vo=	 R}', "");
-    Expect(0, 1114109, '\p{Is_Vo=	 R}', "");
-    Expect(1, 1114109, '\p{^Is_Vo=	 R}', "");
-    Expect(1, 1114109, '\P{Is_Vo=	 R}', "");
-    Expect(0, 1114109, '\P{^Is_Vo=	 R}', "");
-    Error('\p{Vertical_Orientation= _Transformed_rotated:=}');
-    Error('\P{Vertical_Orientation= _Transformed_rotated:=}');
+    Expect(1, 262144, '\p{Is_Vo=__R}', "");
+    Expect(0, 262144, '\p{^Is_Vo=__R}', "");
+    Expect(0, 262144, '\P{Is_Vo=__R}', "");
+    Expect(1, 262144, '\P{^Is_Vo=__R}', "");
+    Expect(0, 1114109, '\p{Is_Vo=__R}', "");
+    Expect(1, 1114109, '\p{^Is_Vo=__R}', "");
+    Expect(1, 1114109, '\P{Is_Vo=__R}', "");
+    Expect(0, 1114109, '\P{^Is_Vo=__R}', "");
+    Error('\p{Vertical_Orientation=:=Transformed_ROTATED}');
+    Error('\P{Vertical_Orientation=:=Transformed_ROTATED}');
     Expect(1, 65507, '\p{Vertical_Orientation=:\ATransformed_Rotated\z:}', "");;
     Expect(0, 65508, '\p{Vertical_Orientation=:\ATransformed_Rotated\z:}', "");;
     Expect(1, 65507, '\p{Vertical_Orientation=transformedrotated}', "");
@@ -155285,16 +156749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65508, '\P{^Vertical_Orientation=transformedrotated}', "");
     Expect(1, 65507, '\p{Vertical_Orientation=:\Atransformedrotated\z:}', "");;
     Expect(0, 65508, '\p{Vertical_Orientation=:\Atransformedrotated\z:}', "");;
-    Expect(1, 65507, '\p{Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(0, 65507, '\p{^Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(0, 65507, '\P{Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(1, 65507, '\P{^Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(0, 65508, '\p{Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(1, 65508, '\p{^Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(1, 65508, '\P{Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Expect(0, 65508, '\P{^Vertical_Orientation=-_TRANSFORMED_rotated}', "");
-    Error('\p{Vo=-:=tr}');
-    Error('\P{Vo=-:=tr}');
+    Expect(1, 65507, '\p{Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(0, 65507, '\p{^Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(0, 65507, '\P{Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(1, 65507, '\P{^Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(0, 65508, '\p{Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(1, 65508, '\p{^Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(1, 65508, '\P{Vertical_Orientation=__Transformed_rotated}', "");
+    Expect(0, 65508, '\P{^Vertical_Orientation=__Transformed_rotated}', "");
+    Error('\p{Vo= Tr:=}');
+    Error('\P{Vo= Tr:=}');
     Expect(1, 65507, '\p{Vo=:\ATr\z:}', "");;
     Expect(0, 65508, '\p{Vo=:\ATr\z:}', "");;
     Expect(1, 65507, '\p{Vo=tr}', "");
@@ -155307,16 +156771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65508, '\P{^Vo=tr}', "");
     Expect(1, 65507, '\p{Vo=:\Atr\z:}', "");;
     Expect(0, 65508, '\p{Vo=:\Atr\z:}', "");;
-    Expect(1, 65507, '\p{Vo:_	Tr}', "");
-    Expect(0, 65507, '\p{^Vo:_	Tr}', "");
-    Expect(0, 65507, '\P{Vo:_	Tr}', "");
-    Expect(1, 65507, '\P{^Vo:_	Tr}', "");
-    Expect(0, 65508, '\p{Vo:_	Tr}', "");
-    Expect(1, 65508, '\p{^Vo:_	Tr}', "");
-    Expect(1, 65508, '\P{Vo:_	Tr}', "");
-    Expect(0, 65508, '\P{^Vo:_	Tr}', "");
-    Error('\p{Is_Vertical_Orientation=:=Transformed_Rotated}');
-    Error('\P{Is_Vertical_Orientation=:=Transformed_Rotated}');
+    Expect(1, 65507, '\p{Vo= TR}', "");
+    Expect(0, 65507, '\p{^Vo= TR}', "");
+    Expect(0, 65507, '\P{Vo= TR}', "");
+    Expect(1, 65507, '\P{^Vo= TR}', "");
+    Expect(0, 65508, '\p{Vo= TR}', "");
+    Expect(1, 65508, '\p{^Vo= TR}', "");
+    Expect(1, 65508, '\P{Vo= TR}', "");
+    Expect(0, 65508, '\P{^Vo= TR}', "");
+    Error('\p{Is_Vertical_Orientation=	-TRANSFORMED_Rotated/a/}');
+    Error('\P{Is_Vertical_Orientation=	-TRANSFORMED_Rotated/a/}');
     Expect(1, 65507, '\p{Is_Vertical_Orientation=transformedrotated}', "");
     Expect(0, 65507, '\p{^Is_Vertical_Orientation=transformedrotated}', "");
     Expect(0, 65507, '\P{Is_Vertical_Orientation=transformedrotated}', "");
@@ -155325,16 +156789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65508, '\p{^Is_Vertical_Orientation=transformedrotated}', "");
     Expect(1, 65508, '\P{Is_Vertical_Orientation=transformedrotated}', "");
     Expect(0, 65508, '\P{^Is_Vertical_Orientation=transformedrotated}', "");
-    Expect(1, 65507, '\p{Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(0, 65507, '\p{^Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(0, 65507, '\P{Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(1, 65507, '\P{^Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(0, 65508, '\p{Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(1, 65508, '\p{^Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(1, 65508, '\P{Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Expect(0, 65508, '\P{^Is_Vertical_Orientation:   TRANSFORMED_ROTATED}', "");
-    Error('\p{Is_Vo=/a/Tr}');
-    Error('\P{Is_Vo=/a/Tr}');
+    Expect(1, 65507, '\p{Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(0, 65507, '\p{^Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(0, 65507, '\P{Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(1, 65507, '\P{^Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(0, 65508, '\p{Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(1, 65508, '\p{^Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(1, 65508, '\P{Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Expect(0, 65508, '\P{^Is_Vertical_Orientation=		transformed_ROTATED}', "");
+    Error('\p{Is_Vo=:=	Tr}');
+    Error('\P{Is_Vo=:=	Tr}');
     Expect(1, 65507, '\p{Is_Vo=tr}', "");
     Expect(0, 65507, '\p{^Is_Vo=tr}', "");
     Expect(0, 65507, '\P{Is_Vo=tr}', "");
@@ -155343,16 +156807,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65508, '\p{^Is_Vo=tr}', "");
     Expect(1, 65508, '\P{Is_Vo=tr}', "");
     Expect(0, 65508, '\P{^Is_Vo=tr}', "");
-    Expect(1, 65507, '\p{Is_Vo= _Tr}', "");
-    Expect(0, 65507, '\p{^Is_Vo= _Tr}', "");
-    Expect(0, 65507, '\P{Is_Vo= _Tr}', "");
-    Expect(1, 65507, '\P{^Is_Vo= _Tr}', "");
-    Expect(0, 65508, '\p{Is_Vo= _Tr}', "");
-    Expect(1, 65508, '\p{^Is_Vo= _Tr}', "");
-    Expect(1, 65508, '\P{Is_Vo= _Tr}', "");
-    Expect(0, 65508, '\P{^Is_Vo= _Tr}', "");
-    Error('\p{Vertical_Orientation=_/a/Transformed_Upright}');
-    Error('\P{Vertical_Orientation=_/a/Transformed_Upright}');
+    Expect(1, 65507, '\p{Is_Vo=-_Tr}', "");
+    Expect(0, 65507, '\p{^Is_Vo=-_Tr}', "");
+    Expect(0, 65507, '\P{Is_Vo=-_Tr}', "");
+    Expect(1, 65507, '\P{^Is_Vo=-_Tr}', "");
+    Expect(0, 65508, '\p{Is_Vo=-_Tr}', "");
+    Expect(1, 65508, '\p{^Is_Vo=-_Tr}', "");
+    Expect(1, 65508, '\P{Is_Vo=-_Tr}', "");
+    Expect(0, 65508, '\P{^Is_Vo=-_Tr}', "");
+    Error('\p{Vertical_Orientation=/a/transformed_Upright}');
+    Error('\P{Vertical_Orientation=/a/transformed_Upright}');
     Expect(1, 127489, '\p{Vertical_Orientation=:\ATransformed_Upright\z:}', "");;
     Expect(0, 127490, '\p{Vertical_Orientation=:\ATransformed_Upright\z:}', "");;
     Expect(1, 127489, '\p{Vertical_Orientation=transformedupright}', "");
@@ -155365,16 +156829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127490, '\P{^Vertical_Orientation=transformedupright}', "");
     Expect(1, 127489, '\p{Vertical_Orientation=:\Atransformedupright\z:}', "");;
     Expect(0, 127490, '\p{Vertical_Orientation=:\Atransformedupright\z:}', "");;
-    Expect(1, 127489, '\p{Vertical_Orientation: -transformed_Upright}', "");
-    Expect(0, 127489, '\p{^Vertical_Orientation: -transformed_Upright}', "");
-    Expect(0, 127489, '\P{Vertical_Orientation: -transformed_Upright}', "");
-    Expect(1, 127489, '\P{^Vertical_Orientation: -transformed_Upright}', "");
-    Expect(0, 127490, '\p{Vertical_Orientation: -transformed_Upright}', "");
-    Expect(1, 127490, '\p{^Vertical_Orientation: -transformed_Upright}', "");
-    Expect(1, 127490, '\P{Vertical_Orientation: -transformed_Upright}', "");
-    Expect(0, 127490, '\P{^Vertical_Orientation: -transformed_Upright}', "");
-    Error('\p{Vo= Tu:=}');
-    Error('\P{Vo= Tu:=}');
+    Expect(1, 127489, '\p{Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(0, 127489, '\p{^Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(0, 127489, '\P{Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(1, 127489, '\P{^Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(0, 127490, '\p{Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(1, 127490, '\p{^Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(1, 127490, '\P{Vertical_Orientation:   	_Transformed_Upright}', "");
+    Expect(0, 127490, '\P{^Vertical_Orientation:   	_Transformed_Upright}', "");
+    Error('\p{Vo=:=	tu}');
+    Error('\P{Vo=:=	tu}');
     Expect(1, 127489, '\p{Vo=:\ATu\z:}', "");;
     Expect(0, 127490, '\p{Vo=:\ATu\z:}', "");;
     Expect(1, 127489, '\p{Vo=tu}', "");
@@ -155387,16 +156851,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127490, '\P{^Vo=tu}', "");
     Expect(1, 127489, '\p{Vo=:\Atu\z:}', "");;
     Expect(0, 127490, '\p{Vo=:\Atu\z:}', "");;
-    Expect(1, 127489, '\p{Vo=  TU}', "");
-    Expect(0, 127489, '\p{^Vo=  TU}', "");
-    Expect(0, 127489, '\P{Vo=  TU}', "");
-    Expect(1, 127489, '\P{^Vo=  TU}', "");
-    Expect(0, 127490, '\p{Vo=  TU}', "");
-    Expect(1, 127490, '\p{^Vo=  TU}', "");
-    Expect(1, 127490, '\P{Vo=  TU}', "");
-    Expect(0, 127490, '\P{^Vo=  TU}', "");
-    Error('\p{Is_Vertical_Orientation= :=transformed_UPRIGHT}');
-    Error('\P{Is_Vertical_Orientation= :=transformed_UPRIGHT}');
+    Expect(1, 127489, '\p{Vo=	 TU}', "");
+    Expect(0, 127489, '\p{^Vo=	 TU}', "");
+    Expect(0, 127489, '\P{Vo=	 TU}', "");
+    Expect(1, 127489, '\P{^Vo=	 TU}', "");
+    Expect(0, 127490, '\p{Vo=	 TU}', "");
+    Expect(1, 127490, '\p{^Vo=	 TU}', "");
+    Expect(1, 127490, '\P{Vo=	 TU}', "");
+    Expect(0, 127490, '\P{^Vo=	 TU}', "");
+    Error('\p{Is_Vertical_Orientation=/a/- Transformed_Upright}');
+    Error('\P{Is_Vertical_Orientation=/a/- Transformed_Upright}');
     Expect(1, 127489, '\p{Is_Vertical_Orientation=transformedupright}', "");
     Expect(0, 127489, '\p{^Is_Vertical_Orientation=transformedupright}', "");
     Expect(0, 127489, '\P{Is_Vertical_Orientation=transformedupright}', "");
@@ -155405,16 +156869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127490, '\p{^Is_Vertical_Orientation=transformedupright}', "");
     Expect(1, 127490, '\P{Is_Vertical_Orientation=transformedupright}', "");
     Expect(0, 127490, '\P{^Is_Vertical_Orientation=transformedupright}', "");
-    Expect(1, 127489, '\p{Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(0, 127489, '\p{^Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(0, 127489, '\P{Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(1, 127489, '\P{^Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(0, 127490, '\p{Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(1, 127490, '\p{^Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(1, 127490, '\P{Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Expect(0, 127490, '\P{^Is_Vertical_Orientation=		TRANSFORMED_Upright}', "");
-    Error('\p{Is_Vo=/a/	Tu}');
-    Error('\P{Is_Vo=/a/	Tu}');
+    Expect(1, 127489, '\p{Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(0, 127489, '\p{^Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(0, 127489, '\P{Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(1, 127489, '\P{^Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(0, 127490, '\p{Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(1, 127490, '\p{^Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(1, 127490, '\P{Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Expect(0, 127490, '\P{^Is_Vertical_Orientation=  Transformed_UPRIGHT}', "");
+    Error('\p{Is_Vo: 	/a/TU}');
+    Error('\P{Is_Vo: 	/a/TU}');
     Expect(1, 127489, '\p{Is_Vo=tu}', "");
     Expect(0, 127489, '\p{^Is_Vo=tu}', "");
     Expect(0, 127489, '\P{Is_Vo=tu}', "");
@@ -155423,16 +156887,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127490, '\p{^Is_Vo=tu}', "");
     Expect(1, 127490, '\P{Is_Vo=tu}', "");
     Expect(0, 127490, '\P{^Is_Vo=tu}', "");
-    Expect(1, 127489, '\p{Is_Vo=	Tu}', "");
-    Expect(0, 127489, '\p{^Is_Vo=	Tu}', "");
-    Expect(0, 127489, '\P{Is_Vo=	Tu}', "");
-    Expect(1, 127489, '\P{^Is_Vo=	Tu}', "");
-    Expect(0, 127490, '\p{Is_Vo=	Tu}', "");
-    Expect(1, 127490, '\p{^Is_Vo=	Tu}', "");
-    Expect(1, 127490, '\P{Is_Vo=	Tu}', "");
-    Expect(0, 127490, '\P{^Is_Vo=	Tu}', "");
-    Error('\p{Vertical_Orientation=:=_ Upright}');
-    Error('\P{Vertical_Orientation=:=_ Upright}');
+    Expect(1, 127489, '\p{Is_Vo= Tu}', "");
+    Expect(0, 127489, '\p{^Is_Vo= Tu}', "");
+    Expect(0, 127489, '\P{Is_Vo= Tu}', "");
+    Expect(1, 127489, '\P{^Is_Vo= Tu}', "");
+    Expect(0, 127490, '\p{Is_Vo= Tu}', "");
+    Expect(1, 127490, '\p{^Is_Vo= Tu}', "");
+    Expect(1, 127490, '\P{Is_Vo= Tu}', "");
+    Expect(0, 127490, '\P{^Is_Vo= Tu}', "");
+    Error('\p{Vertical_Orientation= upright/a/}');
+    Error('\P{Vertical_Orientation= upright/a/}');
     Expect(1, 1114109, '\p{Vertical_Orientation=:\AUpright\z:}', "");;
     Expect(0, 262144, '\p{Vertical_Orientation=:\AUpright\z:}', "");;
     Expect(1, 1114109, '\p{Vertical_Orientation=upright}', "");
@@ -155445,16 +156909,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 262144, '\P{^Vertical_Orientation=upright}', "");
     Expect(1, 1114109, '\p{Vertical_Orientation=:\Aupright\z:}', "");;
     Expect(0, 262144, '\p{Vertical_Orientation=:\Aupright\z:}', "");;
-    Expect(1, 1114109, '\p{Vertical_Orientation=__Upright}', "");
-    Expect(0, 1114109, '\p{^Vertical_Orientation=__Upright}', "");
-    Expect(0, 1114109, '\P{Vertical_Orientation=__Upright}', "");
-    Expect(1, 1114109, '\P{^Vertical_Orientation=__Upright}', "");
-    Expect(0, 262144, '\p{Vertical_Orientation=__Upright}', "");
-    Expect(1, 262144, '\p{^Vertical_Orientation=__Upright}', "");
-    Expect(1, 262144, '\P{Vertical_Orientation=__Upright}', "");
-    Expect(0, 262144, '\P{^Vertical_Orientation=__Upright}', "");
-    Error('\p{Vo=U:=}');
-    Error('\P{Vo=U:=}');
+    Expect(1, 1114109, '\p{Vertical_Orientation=--Upright}', "");
+    Expect(0, 1114109, '\p{^Vertical_Orientation=--Upright}', "");
+    Expect(0, 1114109, '\P{Vertical_Orientation=--Upright}', "");
+    Expect(1, 1114109, '\P{^Vertical_Orientation=--Upright}', "");
+    Expect(0, 262144, '\p{Vertical_Orientation=--Upright}', "");
+    Expect(1, 262144, '\p{^Vertical_Orientation=--Upright}', "");
+    Expect(1, 262144, '\P{Vertical_Orientation=--Upright}', "");
+    Expect(0, 262144, '\P{^Vertical_Orientation=--Upright}', "");
+    Error('\p{Vo: :=_ u}');
+    Error('\P{Vo: :=_ u}');
     Expect(1, 1114109, '\p{Vo=:\AU\z:}', "");;
     Expect(0, 262144, '\p{Vo=:\AU\z:}', "");;
     Expect(1, 1114109, '\p{Vo=u}', "");
@@ -155467,34 +156931,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 262144, '\P{^Vo=u}', "");
     Expect(1, 1114109, '\p{Vo=:\Au\z:}', "");;
     Expect(0, 262144, '\p{Vo=:\Au\z:}', "");;
-    Expect(1, 1114109, '\p{Vo=_	U}', "");
-    Expect(0, 1114109, '\p{^Vo=_	U}', "");
-    Expect(0, 1114109, '\P{Vo=_	U}', "");
-    Expect(1, 1114109, '\P{^Vo=_	U}', "");
-    Expect(0, 262144, '\p{Vo=_	U}', "");
-    Expect(1, 262144, '\p{^Vo=_	U}', "");
-    Expect(1, 262144, '\P{Vo=_	U}', "");
-    Expect(0, 262144, '\P{^Vo=_	U}', "");
-    Error('\p{Is_Vertical_Orientation=:=__upright}');
-    Error('\P{Is_Vertical_Orientation=:=__upright}');
-    Expect(1, 1114109, '\p{Is_Vertical_Orientation:   upright}', "");
-    Expect(0, 1114109, '\p{^Is_Vertical_Orientation:   upright}', "");
-    Expect(0, 1114109, '\P{Is_Vertical_Orientation:   upright}', "");
-    Expect(1, 1114109, '\P{^Is_Vertical_Orientation:   upright}', "");
-    Expect(0, 262144, '\p{Is_Vertical_Orientation:   upright}', "");
-    Expect(1, 262144, '\p{^Is_Vertical_Orientation:   upright}', "");
-    Expect(1, 262144, '\P{Is_Vertical_Orientation:   upright}', "");
-    Expect(0, 262144, '\P{^Is_Vertical_Orientation:   upright}', "");
-    Expect(1, 1114109, '\p{Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(0, 1114109, '\p{^Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(0, 1114109, '\P{Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(1, 1114109, '\P{^Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(0, 262144, '\p{Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(1, 262144, '\p{^Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(1, 262144, '\P{Is_Vertical_Orientation= -UPRIGHT}', "");
-    Expect(0, 262144, '\P{^Is_Vertical_Orientation= -UPRIGHT}', "");
-    Error('\p{Is_Vo:   	:=U}');
-    Error('\P{Is_Vo:   	:=U}');
+    Expect(1, 1114109, '\p{Vo=	U}', "");
+    Expect(0, 1114109, '\p{^Vo=	U}', "");
+    Expect(0, 1114109, '\P{Vo=	U}', "");
+    Expect(1, 1114109, '\P{^Vo=	U}', "");
+    Expect(0, 262144, '\p{Vo=	U}', "");
+    Expect(1, 262144, '\p{^Vo=	U}', "");
+    Expect(1, 262144, '\P{Vo=	U}', "");
+    Expect(0, 262144, '\P{^Vo=	U}', "");
+    Error('\p{Is_Vertical_Orientation= 	Upright/a/}');
+    Error('\P{Is_Vertical_Orientation= 	Upright/a/}');
+    Expect(1, 1114109, '\p{Is_Vertical_Orientation:upright}', "");
+    Expect(0, 1114109, '\p{^Is_Vertical_Orientation:upright}', "");
+    Expect(0, 1114109, '\P{Is_Vertical_Orientation:upright}', "");
+    Expect(1, 1114109, '\P{^Is_Vertical_Orientation:upright}', "");
+    Expect(0, 262144, '\p{Is_Vertical_Orientation:upright}', "");
+    Expect(1, 262144, '\p{^Is_Vertical_Orientation:upright}', "");
+    Expect(1, 262144, '\P{Is_Vertical_Orientation:upright}', "");
+    Expect(0, 262144, '\P{^Is_Vertical_Orientation:upright}', "");
+    Expect(1, 1114109, '\p{Is_Vertical_Orientation=_ Upright}', "");
+    Expect(0, 1114109, '\p{^Is_Vertical_Orientation=_ Upright}', "");
+    Expect(0, 1114109, '\P{Is_Vertical_Orientation=_ Upright}', "");
+    Expect(1, 1114109, '\P{^Is_Vertical_Orientation=_ Upright}', "");
+    Expect(0, 262144, '\p{Is_Vertical_Orientation=_ Upright}', "");
+    Expect(1, 262144, '\p{^Is_Vertical_Orientation=_ Upright}', "");
+    Expect(1, 262144, '\P{Is_Vertical_Orientation=_ Upright}', "");
+    Expect(0, 262144, '\P{^Is_Vertical_Orientation=_ Upright}', "");
+    Error('\p{Is_Vo=/a/__u}');
+    Error('\P{Is_Vo=/a/__u}');
     Expect(1, 1114109, '\p{Is_Vo=u}', "");
     Expect(0, 1114109, '\p{^Is_Vo=u}', "");
     Expect(0, 1114109, '\P{Is_Vo=u}', "");
@@ -155503,16 +156967,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 262144, '\p{^Is_Vo=u}', "");
     Expect(1, 262144, '\P{Is_Vo=u}', "");
     Expect(0, 262144, '\P{^Is_Vo=u}', "");
-    Expect(1, 1114109, '\p{Is_Vo= u}', "");
-    Expect(0, 1114109, '\p{^Is_Vo= u}', "");
-    Expect(0, 1114109, '\P{Is_Vo= u}', "");
-    Expect(1, 1114109, '\P{^Is_Vo= u}', "");
-    Expect(0, 262144, '\p{Is_Vo= u}', "");
-    Expect(1, 262144, '\p{^Is_Vo= u}', "");
-    Expect(1, 262144, '\P{Is_Vo= u}', "");
-    Expect(0, 262144, '\P{^Is_Vo= u}', "");
-    Error('\p{Variation_Selector=	/a/NO}');
-    Error('\P{Variation_Selector=	/a/NO}');
+    Expect(1, 1114109, '\p{Is_Vo=	U}', "");
+    Expect(0, 1114109, '\p{^Is_Vo=	U}', "");
+    Expect(0, 1114109, '\P{Is_Vo=	U}', "");
+    Expect(1, 1114109, '\P{^Is_Vo=	U}', "");
+    Expect(0, 262144, '\p{Is_Vo=	U}', "");
+    Expect(1, 262144, '\p{^Is_Vo=	U}', "");
+    Expect(1, 262144, '\P{Is_Vo=	U}', "");
+    Expect(0, 262144, '\P{^Is_Vo=	U}', "");
+    Error('\p{Variation_Selector: -:=no}');
+    Error('\P{Variation_Selector: -:=no}');
     Expect(1, 918000, '\p{Variation_Selector=:\ANo\z:}', "");;
     Expect(0, 917999, '\p{Variation_Selector=:\ANo\z:}', "");;
     Expect(1, 918000, '\p{Variation_Selector=no}', "");
@@ -155525,16 +156989,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^Variation_Selector=no}', "");
     Expect(1, 918000, '\p{Variation_Selector=:\Ano\z:}', "");;
     Expect(0, 917999, '\p{Variation_Selector=:\Ano\z:}', "");;
-    Expect(1, 918000, '\p{Variation_Selector=		No}', "");
-    Expect(0, 918000, '\p{^Variation_Selector=		No}', "");
-    Expect(0, 918000, '\P{Variation_Selector=		No}', "");
-    Expect(1, 918000, '\P{^Variation_Selector=		No}', "");
-    Expect(0, 917999, '\p{Variation_Selector=		No}', "");
-    Expect(1, 917999, '\p{^Variation_Selector=		No}', "");
-    Expect(1, 917999, '\P{Variation_Selector=		No}', "");
-    Expect(0, 917999, '\P{^Variation_Selector=		No}', "");
-    Error('\p{VS= :=n}');
-    Error('\P{VS= :=n}');
+    Expect(1, 918000, '\p{Variation_Selector=-no}', "");
+    Expect(0, 918000, '\p{^Variation_Selector=-no}', "");
+    Expect(0, 918000, '\P{Variation_Selector=-no}', "");
+    Expect(1, 918000, '\P{^Variation_Selector=-no}', "");
+    Expect(0, 917999, '\p{Variation_Selector=-no}', "");
+    Expect(1, 917999, '\p{^Variation_Selector=-no}', "");
+    Expect(1, 917999, '\P{Variation_Selector=-no}', "");
+    Expect(0, 917999, '\P{^Variation_Selector=-no}', "");
+    Error('\p{VS:/a/n}');
+    Error('\P{VS:/a/n}');
     Expect(1, 918000, '\p{VS=:\AN\z:}', "");;
     Expect(0, 917999, '\p{VS=:\AN\z:}', "");;
     Expect(1, 918000, '\p{VS=n}', "");
@@ -155547,16 +157011,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^VS=n}', "");
     Expect(1, 918000, '\p{VS=:\An\z:}', "");;
     Expect(0, 917999, '\p{VS=:\An\z:}', "");;
-    Expect(1, 918000, '\p{VS:	- N}', "");
-    Expect(0, 918000, '\p{^VS:	- N}', "");
-    Expect(0, 918000, '\P{VS:	- N}', "");
-    Expect(1, 918000, '\P{^VS:	- N}', "");
-    Expect(0, 917999, '\p{VS:	- N}', "");
-    Expect(1, 917999, '\p{^VS:	- N}', "");
-    Expect(1, 917999, '\P{VS:	- N}', "");
-    Expect(0, 917999, '\P{^VS:	- N}', "");
-    Error('\p{Is_Variation_Selector=-/a/F}');
-    Error('\P{Is_Variation_Selector=-/a/F}');
+    Expect(1, 918000, '\p{VS= N}', "");
+    Expect(0, 918000, '\p{^VS= N}', "");
+    Expect(0, 918000, '\P{VS= N}', "");
+    Expect(1, 918000, '\P{^VS= N}', "");
+    Expect(0, 917999, '\p{VS= N}', "");
+    Expect(1, 917999, '\p{^VS= N}', "");
+    Expect(1, 917999, '\P{VS= N}', "");
+    Expect(0, 917999, '\P{^VS= N}', "");
+    Error('\p{Is_Variation_Selector:	/a/ F}');
+    Error('\P{Is_Variation_Selector:	/a/ F}');
     Expect(1, 918000, '\p{Is_Variation_Selector=f}', "");
     Expect(0, 918000, '\p{^Is_Variation_Selector=f}', "");
     Expect(0, 918000, '\P{Is_Variation_Selector=f}', "");
@@ -155565,16 +157029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_Variation_Selector=f}', "");
     Expect(1, 917999, '\P{Is_Variation_Selector=f}', "");
     Expect(0, 917999, '\P{^Is_Variation_Selector=f}', "");
-    Expect(1, 918000, '\p{Is_Variation_Selector=--f}', "");
-    Expect(0, 918000, '\p{^Is_Variation_Selector=--f}', "");
-    Expect(0, 918000, '\P{Is_Variation_Selector=--f}', "");
-    Expect(1, 918000, '\P{^Is_Variation_Selector=--f}', "");
-    Expect(0, 917999, '\p{Is_Variation_Selector=--f}', "");
-    Expect(1, 917999, '\p{^Is_Variation_Selector=--f}', "");
-    Expect(1, 917999, '\P{Is_Variation_Selector=--f}', "");
-    Expect(0, 917999, '\P{^Is_Variation_Selector=--f}', "");
-    Error('\p{Is_VS=- False:=}');
-    Error('\P{Is_VS=- False:=}');
+    Expect(1, 918000, '\p{Is_Variation_Selector=	_F}', "");
+    Expect(0, 918000, '\p{^Is_Variation_Selector=	_F}', "");
+    Expect(0, 918000, '\P{Is_Variation_Selector=	_F}', "");
+    Expect(1, 918000, '\P{^Is_Variation_Selector=	_F}', "");
+    Expect(0, 917999, '\p{Is_Variation_Selector=	_F}', "");
+    Expect(1, 917999, '\p{^Is_Variation_Selector=	_F}', "");
+    Expect(1, 917999, '\P{Is_Variation_Selector=	_F}', "");
+    Expect(0, 917999, '\P{^Is_Variation_Selector=	_F}', "");
+    Error('\p{Is_VS=:=_False}');
+    Error('\P{Is_VS=:=_False}');
     Expect(1, 918000, '\p{Is_VS=false}', "");
     Expect(0, 918000, '\p{^Is_VS=false}', "");
     Expect(0, 918000, '\P{Is_VS=false}', "");
@@ -155583,38 +157047,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_VS=false}', "");
     Expect(1, 917999, '\P{Is_VS=false}', "");
     Expect(0, 917999, '\P{^Is_VS=false}', "");
-    Expect(1, 918000, '\p{Is_VS=  False}', "");
-    Expect(0, 918000, '\p{^Is_VS=  False}', "");
-    Expect(0, 918000, '\P{Is_VS=  False}', "");
-    Expect(1, 918000, '\P{^Is_VS=  False}', "");
-    Expect(0, 917999, '\p{Is_VS=  False}', "");
-    Expect(1, 917999, '\p{^Is_VS=  False}', "");
-    Expect(1, 917999, '\P{Is_VS=  False}', "");
-    Expect(0, 917999, '\P{^Is_VS=  False}', "");
-    Error('\p{Variation_Selector=_ YES:=}');
-    Error('\P{Variation_Selector=_ YES:=}');
+    Expect(1, 918000, '\p{Is_VS=	 False}', "");
+    Expect(0, 918000, '\p{^Is_VS=	 False}', "");
+    Expect(0, 918000, '\P{Is_VS=	 False}', "");
+    Expect(1, 918000, '\P{^Is_VS=	 False}', "");
+    Expect(0, 917999, '\p{Is_VS=	 False}', "");
+    Expect(1, 917999, '\p{^Is_VS=	 False}', "");
+    Expect(1, 917999, '\P{Is_VS=	 False}', "");
+    Expect(0, 917999, '\P{^Is_VS=	 False}', "");
+    Error('\p{Variation_Selector=:=  yes}');
+    Error('\P{Variation_Selector=:=  yes}');
     Expect(1, 917999, '\p{Variation_Selector=:\AYes\z:}', "");;
     Expect(0, 918000, '\p{Variation_Selector=:\AYes\z:}', "");;
-    Expect(1, 917999, '\p{Variation_Selector: yes}', "");
-    Expect(0, 917999, '\p{^Variation_Selector: yes}', "");
-    Expect(0, 917999, '\P{Variation_Selector: yes}', "");
-    Expect(1, 917999, '\P{^Variation_Selector: yes}', "");
-    Expect(0, 918000, '\p{Variation_Selector: yes}', "");
-    Expect(1, 918000, '\p{^Variation_Selector: yes}', "");
-    Expect(1, 918000, '\P{Variation_Selector: yes}', "");
-    Expect(0, 918000, '\P{^Variation_Selector: yes}', "");
+    Expect(1, 917999, '\p{Variation_Selector=yes}', "");
+    Expect(0, 917999, '\p{^Variation_Selector=yes}', "");
+    Expect(0, 917999, '\P{Variation_Selector=yes}', "");
+    Expect(1, 917999, '\P{^Variation_Selector=yes}', "");
+    Expect(0, 918000, '\p{Variation_Selector=yes}', "");
+    Expect(1, 918000, '\p{^Variation_Selector=yes}', "");
+    Expect(1, 918000, '\P{Variation_Selector=yes}', "");
+    Expect(0, 918000, '\P{^Variation_Selector=yes}', "");
     Expect(1, 917999, '\p{Variation_Selector=:\Ayes\z:}', "");;
     Expect(0, 918000, '\p{Variation_Selector=:\Ayes\z:}', "");;
-    Expect(1, 917999, '\p{Variation_Selector=-Yes}', "");
-    Expect(0, 917999, '\p{^Variation_Selector=-Yes}', "");
-    Expect(0, 917999, '\P{Variation_Selector=-Yes}', "");
-    Expect(1, 917999, '\P{^Variation_Selector=-Yes}', "");
-    Expect(0, 918000, '\p{Variation_Selector=-Yes}', "");
-    Expect(1, 918000, '\p{^Variation_Selector=-Yes}', "");
-    Expect(1, 918000, '\P{Variation_Selector=-Yes}', "");
-    Expect(0, 918000, '\P{^Variation_Selector=-Yes}', "");
-    Error('\p{VS=:=_	Y}');
-    Error('\P{VS=:=_	Y}');
+    Expect(1, 917999, '\p{Variation_Selector=- YES}', "");
+    Expect(0, 917999, '\p{^Variation_Selector=- YES}', "");
+    Expect(0, 917999, '\P{Variation_Selector=- YES}', "");
+    Expect(1, 917999, '\P{^Variation_Selector=- YES}', "");
+    Expect(0, 918000, '\p{Variation_Selector=- YES}', "");
+    Expect(1, 918000, '\p{^Variation_Selector=- YES}', "");
+    Expect(1, 918000, '\P{Variation_Selector=- YES}', "");
+    Expect(0, 918000, '\P{^Variation_Selector=- YES}', "");
+    Error('\p{VS=-	y/a/}');
+    Error('\P{VS=-	y/a/}');
     Expect(1, 917999, '\p{VS=:\AY\z:}', "");;
     Expect(0, 918000, '\p{VS=:\AY\z:}', "");;
     Expect(1, 917999, '\p{VS=y}', "");
@@ -155627,16 +157091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^VS=y}', "");
     Expect(1, 917999, '\p{VS=:\Ay\z:}', "");;
     Expect(0, 918000, '\p{VS=:\Ay\z:}', "");;
-    Expect(1, 917999, '\p{VS= Y}', "");
-    Expect(0, 917999, '\p{^VS= Y}', "");
-    Expect(0, 917999, '\P{VS= Y}', "");
-    Expect(1, 917999, '\P{^VS= Y}', "");
-    Expect(0, 918000, '\p{VS= Y}', "");
-    Expect(1, 918000, '\p{^VS= Y}', "");
-    Expect(1, 918000, '\P{VS= Y}', "");
-    Expect(0, 918000, '\P{^VS= Y}', "");
-    Error('\p{Is_Variation_Selector=- T/a/}');
-    Error('\P{Is_Variation_Selector=- T/a/}');
+    Expect(1, 917999, '\p{VS=		y}', "");
+    Expect(0, 917999, '\p{^VS=		y}', "");
+    Expect(0, 917999, '\P{VS=		y}', "");
+    Expect(1, 917999, '\P{^VS=		y}', "");
+    Expect(0, 918000, '\p{VS=		y}', "");
+    Expect(1, 918000, '\p{^VS=		y}', "");
+    Expect(1, 918000, '\P{VS=		y}', "");
+    Expect(0, 918000, '\P{^VS=		y}', "");
+    Error('\p{Is_Variation_Selector=_:=t}');
+    Error('\P{Is_Variation_Selector=_:=t}');
     Expect(1, 917999, '\p{Is_Variation_Selector=t}', "");
     Expect(0, 917999, '\p{^Is_Variation_Selector=t}', "");
     Expect(0, 917999, '\P{Is_Variation_Selector=t}', "");
@@ -155645,40 +157109,40 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_Variation_Selector=t}', "");
     Expect(1, 918000, '\P{Is_Variation_Selector=t}', "");
     Expect(0, 918000, '\P{^Is_Variation_Selector=t}', "");
-    Expect(1, 917999, '\p{Is_Variation_Selector:    -T}', "");
-    Expect(0, 917999, '\p{^Is_Variation_Selector:    -T}', "");
-    Expect(0, 917999, '\P{Is_Variation_Selector:    -T}', "");
-    Expect(1, 917999, '\P{^Is_Variation_Selector:    -T}', "");
-    Expect(0, 918000, '\p{Is_Variation_Selector:    -T}', "");
-    Expect(1, 918000, '\p{^Is_Variation_Selector:    -T}', "");
-    Expect(1, 918000, '\P{Is_Variation_Selector:    -T}', "");
-    Expect(0, 918000, '\P{^Is_Variation_Selector:    -T}', "");
-    Error('\p{Is_VS=_/a/True}');
-    Error('\P{Is_VS=_/a/True}');
-    Expect(1, 917999, '\p{Is_VS=true}', "");
-    Expect(0, 917999, '\p{^Is_VS=true}', "");
-    Expect(0, 917999, '\P{Is_VS=true}', "");
-    Expect(1, 917999, '\P{^Is_VS=true}', "");
-    Expect(0, 918000, '\p{Is_VS=true}', "");
-    Expect(1, 918000, '\p{^Is_VS=true}', "");
-    Expect(1, 918000, '\P{Is_VS=true}', "");
-    Expect(0, 918000, '\P{^Is_VS=true}', "");
-    Expect(1, 917999, '\p{Is_VS=	-True}', "");
-    Expect(0, 917999, '\p{^Is_VS=	-True}', "");
-    Expect(0, 917999, '\P{Is_VS=	-True}', "");
-    Expect(1, 917999, '\P{^Is_VS=	-True}', "");
-    Expect(0, 918000, '\p{Is_VS=	-True}', "");
-    Expect(1, 918000, '\p{^Is_VS=	-True}', "");
-    Expect(1, 918000, '\P{Is_VS=	-True}', "");
-    Expect(0, 918000, '\P{^Is_VS=	-True}', "");
+    Expect(1, 917999, '\p{Is_Variation_Selector=-T}', "");
+    Expect(0, 917999, '\p{^Is_Variation_Selector=-T}', "");
+    Expect(0, 917999, '\P{Is_Variation_Selector=-T}', "");
+    Expect(1, 917999, '\P{^Is_Variation_Selector=-T}', "");
+    Expect(0, 918000, '\p{Is_Variation_Selector=-T}', "");
+    Expect(1, 918000, '\p{^Is_Variation_Selector=-T}', "");
+    Expect(1, 918000, '\P{Is_Variation_Selector=-T}', "");
+    Expect(0, 918000, '\P{^Is_Variation_Selector=-T}', "");
+    Error('\p{Is_VS=:=TRUE}');
+    Error('\P{Is_VS=:=TRUE}');
+    Expect(1, 917999, '\p{Is_VS: true}', "");
+    Expect(0, 917999, '\p{^Is_VS: true}', "");
+    Expect(0, 917999, '\P{Is_VS: true}', "");
+    Expect(1, 917999, '\P{^Is_VS: true}', "");
+    Expect(0, 918000, '\p{Is_VS: true}', "");
+    Expect(1, 918000, '\p{^Is_VS: true}', "");
+    Expect(1, 918000, '\P{Is_VS: true}', "");
+    Expect(0, 918000, '\P{^Is_VS: true}', "");
+    Expect(1, 917999, '\p{Is_VS=_	True}', "");
+    Expect(0, 917999, '\p{^Is_VS=_	True}', "");
+    Expect(0, 917999, '\P{Is_VS=_	True}', "");
+    Expect(1, 917999, '\P{^Is_VS=_	True}', "");
+    Expect(0, 918000, '\p{Is_VS=_	True}', "");
+    Expect(1, 918000, '\p{^Is_VS=_	True}', "");
+    Expect(1, 918000, '\P{Is_VS=_	True}', "");
+    Expect(0, 918000, '\P{^Is_VS=_	True}', "");
     Error('\p{wordbreak}');
     Error('\P{wordbreak}');
     Error('\p{wb}');
     Error('\P{wb}');
     Error('\p{_perlwb}');
     Error('\P{_perlwb}');
-    Error('\p{Word_Break:/a/-	cr}');
-    Error('\P{Word_Break:/a/-	cr}');
+    Error('\p{Word_Break=_/a/cr}');
+    Error('\P{Word_Break=_/a/cr}');
     Expect(1, 13, '\p{Word_Break=:\ACR\z:}', "");;
     Expect(0, 14, '\p{Word_Break=:\ACR\z:}', "");;
     Expect(1, 13, '\p{Word_Break=cr}', "");
@@ -155691,38 +157155,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 14, '\P{^Word_Break=cr}', "");
     Expect(1, 13, '\p{Word_Break=:\Acr\z:}', "");;
     Expect(0, 14, '\p{Word_Break=:\Acr\z:}', "");;
-    Expect(1, 13, '\p{Word_Break=_ CR}', "");
-    Expect(0, 13, '\p{^Word_Break=_ CR}', "");
-    Expect(0, 13, '\P{Word_Break=_ CR}', "");
-    Expect(1, 13, '\P{^Word_Break=_ CR}', "");
-    Expect(0, 14, '\p{Word_Break=_ CR}', "");
-    Expect(1, 14, '\p{^Word_Break=_ CR}', "");
-    Expect(1, 14, '\P{Word_Break=_ CR}', "");
-    Expect(0, 14, '\P{^Word_Break=_ CR}', "");
-    Error('\p{WB=:=- CR}');
-    Error('\P{WB=:=- CR}');
+    Expect(1, 13, '\p{Word_Break: -CR}', "");
+    Expect(0, 13, '\p{^Word_Break: -CR}', "");
+    Expect(0, 13, '\P{Word_Break: -CR}', "");
+    Expect(1, 13, '\P{^Word_Break: -CR}', "");
+    Expect(0, 14, '\p{Word_Break: -CR}', "");
+    Expect(1, 14, '\p{^Word_Break: -CR}', "");
+    Expect(1, 14, '\P{Word_Break: -CR}', "");
+    Expect(0, 14, '\P{^Word_Break: -CR}', "");
+    Error('\p{WB: _-CR/a/}');
+    Error('\P{WB: _-CR/a/}');
     Expect(1, 13, '\p{WB=:\ACR\z:}', "");;
     Expect(0, 14, '\p{WB=:\ACR\z:}', "");;
-    Expect(1, 13, '\p{WB:cr}', "");
-    Expect(0, 13, '\p{^WB:cr}', "");
-    Expect(0, 13, '\P{WB:cr}', "");
-    Expect(1, 13, '\P{^WB:cr}', "");
-    Expect(0, 14, '\p{WB:cr}', "");
-    Expect(1, 14, '\p{^WB:cr}', "");
-    Expect(1, 14, '\P{WB:cr}', "");
-    Expect(0, 14, '\P{^WB:cr}', "");
+    Expect(1, 13, '\p{WB=cr}', "");
+    Expect(0, 13, '\p{^WB=cr}', "");
+    Expect(0, 13, '\P{WB=cr}', "");
+    Expect(1, 13, '\P{^WB=cr}', "");
+    Expect(0, 14, '\p{WB=cr}', "");
+    Expect(1, 14, '\p{^WB=cr}', "");
+    Expect(1, 14, '\P{WB=cr}', "");
+    Expect(0, 14, '\P{^WB=cr}', "");
     Expect(1, 13, '\p{WB=:\Acr\z:}', "");;
     Expect(0, 14, '\p{WB=:\Acr\z:}', "");;
-    Expect(1, 13, '\p{WB=_CR}', "");
-    Expect(0, 13, '\p{^WB=_CR}', "");
-    Expect(0, 13, '\P{WB=_CR}', "");
-    Expect(1, 13, '\P{^WB=_CR}', "");
-    Expect(0, 14, '\p{WB=_CR}', "");
-    Expect(1, 14, '\p{^WB=_CR}', "");
-    Expect(1, 14, '\P{WB=_CR}', "");
-    Expect(0, 14, '\P{^WB=_CR}', "");
-    Error('\p{Is_Word_Break=_:=CR}');
-    Error('\P{Is_Word_Break=_:=CR}');
+    Expect(1, 13, '\p{WB=	_cr}', "");
+    Expect(0, 13, '\p{^WB=	_cr}', "");
+    Expect(0, 13, '\P{WB=	_cr}', "");
+    Expect(1, 13, '\P{^WB=	_cr}', "");
+    Expect(0, 14, '\p{WB=	_cr}', "");
+    Expect(1, 14, '\p{^WB=	_cr}', "");
+    Expect(1, 14, '\P{WB=	_cr}', "");
+    Expect(0, 14, '\P{^WB=	_cr}', "");
+    Error('\p{Is_Word_Break= CR/a/}');
+    Error('\P{Is_Word_Break= CR/a/}');
     Expect(1, 13, '\p{Is_Word_Break=cr}', "");
     Expect(0, 13, '\p{^Is_Word_Break=cr}', "");
     Expect(0, 13, '\P{Is_Word_Break=cr}', "");
@@ -155731,16 +157195,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 14, '\p{^Is_Word_Break=cr}', "");
     Expect(1, 14, '\P{Is_Word_Break=cr}', "");
     Expect(0, 14, '\P{^Is_Word_Break=cr}', "");
-    Expect(1, 13, '\p{Is_Word_Break= CR}', "");
-    Expect(0, 13, '\p{^Is_Word_Break= CR}', "");
-    Expect(0, 13, '\P{Is_Word_Break= CR}', "");
-    Expect(1, 13, '\P{^Is_Word_Break= CR}', "");
-    Expect(0, 14, '\p{Is_Word_Break= CR}', "");
-    Expect(1, 14, '\p{^Is_Word_Break= CR}', "");
-    Expect(1, 14, '\P{Is_Word_Break= CR}', "");
-    Expect(0, 14, '\P{^Is_Word_Break= CR}', "");
-    Error('\p{Is_WB= :=CR}');
-    Error('\P{Is_WB= :=CR}');
+    Expect(1, 13, '\p{Is_Word_Break=  CR}', "");
+    Expect(0, 13, '\p{^Is_Word_Break=  CR}', "");
+    Expect(0, 13, '\P{Is_Word_Break=  CR}', "");
+    Expect(1, 13, '\P{^Is_Word_Break=  CR}', "");
+    Expect(0, 14, '\p{Is_Word_Break=  CR}', "");
+    Expect(1, 14, '\p{^Is_Word_Break=  CR}', "");
+    Expect(1, 14, '\P{Is_Word_Break=  CR}', "");
+    Expect(0, 14, '\P{^Is_Word_Break=  CR}', "");
+    Error('\p{Is_WB=_CR:=}');
+    Error('\P{Is_WB=_CR:=}');
     Expect(1, 13, '\p{Is_WB=cr}', "");
     Expect(0, 13, '\p{^Is_WB=cr}', "");
     Expect(0, 13, '\P{Is_WB=cr}', "");
@@ -155749,38 +157213,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 14, '\p{^Is_WB=cr}', "");
     Expect(1, 14, '\P{Is_WB=cr}', "");
     Expect(0, 14, '\P{^Is_WB=cr}', "");
-    Expect(1, 13, '\p{Is_WB=	cr}', "");
-    Expect(0, 13, '\p{^Is_WB=	cr}', "");
-    Expect(0, 13, '\P{Is_WB=	cr}', "");
-    Expect(1, 13, '\P{^Is_WB=	cr}', "");
-    Expect(0, 14, '\p{Is_WB=	cr}', "");
-    Expect(1, 14, '\p{^Is_WB=	cr}', "");
-    Expect(1, 14, '\P{Is_WB=	cr}', "");
-    Expect(0, 14, '\P{^Is_WB=	cr}', "");
-    Error('\p{Word_Break:   	DOUBLE_QUOTE/a/}');
-    Error('\P{Word_Break:   	DOUBLE_QUOTE/a/}');
+    Expect(1, 13, '\p{Is_WB= -CR}', "");
+    Expect(0, 13, '\p{^Is_WB= -CR}', "");
+    Expect(0, 13, '\P{Is_WB= -CR}', "");
+    Expect(1, 13, '\P{^Is_WB= -CR}', "");
+    Expect(0, 14, '\p{Is_WB= -CR}', "");
+    Expect(1, 14, '\p{^Is_WB= -CR}', "");
+    Expect(1, 14, '\P{Is_WB= -CR}', "");
+    Expect(0, 14, '\P{^Is_WB= -CR}', "");
+    Error('\p{Word_Break=-Double_QUOTE:=}');
+    Error('\P{Word_Break=-Double_QUOTE:=}');
     Expect(1, 34, '\p{Word_Break=:\ADouble_Quote\z:}', "");;
     Expect(0, 35, '\p{Word_Break=:\ADouble_Quote\z:}', "");;
-    Expect(1, 34, '\p{Word_Break:   doublequote}', "");
-    Expect(0, 34, '\p{^Word_Break:   doublequote}', "");
-    Expect(0, 34, '\P{Word_Break:   doublequote}', "");
-    Expect(1, 34, '\P{^Word_Break:   doublequote}', "");
-    Expect(0, 35, '\p{Word_Break:   doublequote}', "");
-    Expect(1, 35, '\p{^Word_Break:   doublequote}', "");
-    Expect(1, 35, '\P{Word_Break:   doublequote}', "");
-    Expect(0, 35, '\P{^Word_Break:   doublequote}', "");
+    Expect(1, 34, '\p{Word_Break=doublequote}', "");
+    Expect(0, 34, '\p{^Word_Break=doublequote}', "");
+    Expect(0, 34, '\P{Word_Break=doublequote}', "");
+    Expect(1, 34, '\P{^Word_Break=doublequote}', "");
+    Expect(0, 35, '\p{Word_Break=doublequote}', "");
+    Expect(1, 35, '\p{^Word_Break=doublequote}', "");
+    Expect(1, 35, '\P{Word_Break=doublequote}', "");
+    Expect(0, 35, '\P{^Word_Break=doublequote}', "");
     Expect(1, 34, '\p{Word_Break=:\Adoublequote\z:}', "");;
     Expect(0, 35, '\p{Word_Break=:\Adoublequote\z:}', "");;
-    Expect(1, 34, '\p{Word_Break:_	Double_QUOTE}', "");
-    Expect(0, 34, '\p{^Word_Break:_	Double_QUOTE}', "");
-    Expect(0, 34, '\P{Word_Break:_	Double_QUOTE}', "");
-    Expect(1, 34, '\P{^Word_Break:_	Double_QUOTE}', "");
-    Expect(0, 35, '\p{Word_Break:_	Double_QUOTE}', "");
-    Expect(1, 35, '\p{^Word_Break:_	Double_QUOTE}', "");
-    Expect(1, 35, '\P{Word_Break:_	Double_QUOTE}', "");
-    Expect(0, 35, '\P{^Word_Break:_	Double_QUOTE}', "");
-    Error('\p{WB=/a/	_DQ}');
-    Error('\P{WB=/a/	_DQ}');
+    Expect(1, 34, '\p{Word_Break= _double_quote}', "");
+    Expect(0, 34, '\p{^Word_Break= _double_quote}', "");
+    Expect(0, 34, '\P{Word_Break= _double_quote}', "");
+    Expect(1, 34, '\P{^Word_Break= _double_quote}', "");
+    Expect(0, 35, '\p{Word_Break= _double_quote}', "");
+    Expect(1, 35, '\p{^Word_Break= _double_quote}', "");
+    Expect(1, 35, '\P{Word_Break= _double_quote}', "");
+    Expect(0, 35, '\P{^Word_Break= _double_quote}', "");
+    Error('\p{WB:_DQ:=}');
+    Error('\P{WB:_DQ:=}');
     Expect(1, 34, '\p{WB=:\ADQ\z:}', "");;
     Expect(0, 35, '\p{WB=:\ADQ\z:}', "");;
     Expect(1, 34, '\p{WB=dq}', "");
@@ -155793,34 +157257,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 35, '\P{^WB=dq}', "");
     Expect(1, 34, '\p{WB=:\Adq\z:}', "");;
     Expect(0, 35, '\p{WB=:\Adq\z:}', "");;
-    Expect(1, 34, '\p{WB=_DQ}', "");
-    Expect(0, 34, '\p{^WB=_DQ}', "");
-    Expect(0, 34, '\P{WB=_DQ}', "");
-    Expect(1, 34, '\P{^WB=_DQ}', "");
-    Expect(0, 35, '\p{WB=_DQ}', "");
-    Expect(1, 35, '\p{^WB=_DQ}', "");
-    Expect(1, 35, '\P{WB=_DQ}', "");
-    Expect(0, 35, '\P{^WB=_DQ}', "");
-    Error('\p{Is_Word_Break:    -double_QUOTE:=}');
-    Error('\P{Is_Word_Break:    -double_QUOTE:=}');
-    Expect(1, 34, '\p{Is_Word_Break=doublequote}', "");
-    Expect(0, 34, '\p{^Is_Word_Break=doublequote}', "");
-    Expect(0, 34, '\P{Is_Word_Break=doublequote}', "");
-    Expect(1, 34, '\P{^Is_Word_Break=doublequote}', "");
-    Expect(0, 35, '\p{Is_Word_Break=doublequote}', "");
-    Expect(1, 35, '\p{^Is_Word_Break=doublequote}', "");
-    Expect(1, 35, '\P{Is_Word_Break=doublequote}', "");
-    Expect(0, 35, '\P{^Is_Word_Break=doublequote}', "");
-    Expect(1, 34, '\p{Is_Word_Break:	_ Double_Quote}', "");
-    Expect(0, 34, '\p{^Is_Word_Break:	_ Double_Quote}', "");
-    Expect(0, 34, '\P{Is_Word_Break:	_ Double_Quote}', "");
-    Expect(1, 34, '\P{^Is_Word_Break:	_ Double_Quote}', "");
-    Expect(0, 35, '\p{Is_Word_Break:	_ Double_Quote}', "");
-    Expect(1, 35, '\p{^Is_Word_Break:	_ Double_Quote}', "");
-    Expect(1, 35, '\P{Is_Word_Break:	_ Double_Quote}', "");
-    Expect(0, 35, '\P{^Is_Word_Break:	_ Double_Quote}', "");
-    Error('\p{Is_WB:   /a/DQ}');
-    Error('\P{Is_WB:   /a/DQ}');
+    Expect(1, 34, '\p{WB=-DQ}', "");
+    Expect(0, 34, '\p{^WB=-DQ}', "");
+    Expect(0, 34, '\P{WB=-DQ}', "");
+    Expect(1, 34, '\P{^WB=-DQ}', "");
+    Expect(0, 35, '\p{WB=-DQ}', "");
+    Expect(1, 35, '\p{^WB=-DQ}', "");
+    Expect(1, 35, '\P{WB=-DQ}', "");
+    Expect(0, 35, '\P{^WB=-DQ}', "");
+    Error('\p{Is_Word_Break=/a/_double_quote}');
+    Error('\P{Is_Word_Break=/a/_double_quote}');
+    Expect(1, 34, '\p{Is_Word_Break:doublequote}', "");
+    Expect(0, 34, '\p{^Is_Word_Break:doublequote}', "");
+    Expect(0, 34, '\P{Is_Word_Break:doublequote}', "");
+    Expect(1, 34, '\P{^Is_Word_Break:doublequote}', "");
+    Expect(0, 35, '\p{Is_Word_Break:doublequote}', "");
+    Expect(1, 35, '\p{^Is_Word_Break:doublequote}', "");
+    Expect(1, 35, '\P{Is_Word_Break:doublequote}', "");
+    Expect(0, 35, '\P{^Is_Word_Break:doublequote}', "");
+    Expect(1, 34, '\p{Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(0, 34, '\p{^Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(0, 34, '\P{Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(1, 34, '\P{^Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(0, 35, '\p{Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(1, 35, '\p{^Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(1, 35, '\P{Is_Word_Break=	DOUBLE_Quote}', "");
+    Expect(0, 35, '\P{^Is_Word_Break=	DOUBLE_Quote}', "");
+    Error('\p{Is_WB= /a/DQ}');
+    Error('\P{Is_WB= /a/DQ}');
     Expect(1, 34, '\p{Is_WB=dq}', "");
     Expect(0, 34, '\p{^Is_WB=dq}', "");
     Expect(0, 34, '\P{Is_WB=dq}', "");
@@ -155829,28 +157293,28 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 35, '\p{^Is_WB=dq}', "");
     Expect(1, 35, '\P{Is_WB=dq}', "");
     Expect(0, 35, '\P{^Is_WB=dq}', "");
-    Expect(1, 34, '\p{Is_WB=_-DQ}', "");
-    Expect(0, 34, '\p{^Is_WB=_-DQ}', "");
-    Expect(0, 34, '\P{Is_WB=_-DQ}', "");
-    Expect(1, 34, '\P{^Is_WB=_-DQ}', "");
-    Expect(0, 35, '\p{Is_WB=_-DQ}', "");
-    Expect(1, 35, '\p{^Is_WB=_-DQ}', "");
-    Expect(1, 35, '\P{Is_WB=_-DQ}', "");
-    Expect(0, 35, '\P{^Is_WB=_-DQ}', "");
-    Error('\p{Word_Break=_E_BASE:=}');
-    Error('\P{Word_Break=_E_BASE:=}');
+    Expect(1, 34, '\p{Is_WB=	DQ}', "");
+    Expect(0, 34, '\p{^Is_WB=	DQ}', "");
+    Expect(0, 34, '\P{Is_WB=	DQ}', "");
+    Expect(1, 34, '\P{^Is_WB=	DQ}', "");
+    Expect(0, 35, '\p{Is_WB=	DQ}', "");
+    Expect(1, 35, '\p{^Is_WB=	DQ}', "");
+    Expect(1, 35, '\P{Is_WB=	DQ}', "");
+    Expect(0, 35, '\P{^Is_WB=	DQ}', "");
+    Error('\p{Word_Break= /a/e_base}');
+    Error('\P{Word_Break= /a/e_base}');
     Expect(0, 1, '\p{Word_Break=:\AE_Base\z:}', "");;
     Expect(0, 1, '\p{Word_Break=ebase}', "");
     Expect(1, 1, '\p{^Word_Break=ebase}', "");
     Expect(1, 1, '\P{Word_Break=ebase}', "");
     Expect(0, 1, '\P{^Word_Break=ebase}', "");
     Expect(0, 1, '\p{Word_Break=:\Aebase\z:}', "");;
-    Expect(0, 1, '\p{Word_Break= _E_Base}', "");
-    Expect(1, 1, '\p{^Word_Break= _E_Base}', "");
-    Expect(1, 1, '\P{Word_Break= _E_Base}', "");
-    Expect(0, 1, '\P{^Word_Break= _E_Base}', "");
-    Error('\p{WB=/a/ EB}');
-    Error('\P{WB=/a/ EB}');
+    Expect(0, 1, '\p{Word_Break=--E_Base}', "");
+    Expect(1, 1, '\p{^Word_Break=--E_Base}', "");
+    Expect(1, 1, '\P{Word_Break=--E_Base}', "");
+    Expect(0, 1, '\P{^Word_Break=--E_Base}', "");
+    Error('\p{WB=-/a/EB}');
+    Error('\P{WB=-/a/EB}');
     Expect(0, 1, '\p{WB=:\AEB\z:}', "");;
     Expect(0, 1, '\p{WB=eb}', "");
     Expect(1, 1, '\p{^WB=eb}', "");
@@ -155861,116 +157325,116 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 1, '\p{^WB= EB}', "");
     Expect(1, 1, '\P{WB= EB}', "");
     Expect(0, 1, '\P{^WB= EB}', "");
-    Error('\p{Is_Word_Break= E_Base/a/}');
-    Error('\P{Is_Word_Break= E_Base/a/}');
+    Error('\p{Is_Word_Break=	/a/e_BASE}');
+    Error('\P{Is_Word_Break=	/a/e_BASE}');
     Expect(0, 1, '\p{Is_Word_Break=ebase}', "");
     Expect(1, 1, '\p{^Is_Word_Break=ebase}', "");
     Expect(1, 1, '\P{Is_Word_Break=ebase}', "");
     Expect(0, 1, '\P{^Is_Word_Break=ebase}', "");
-    Expect(0, 1, '\p{Is_Word_Break=e_BASE}', "");
-    Expect(1, 1, '\p{^Is_Word_Break=e_BASE}', "");
-    Expect(1, 1, '\P{Is_Word_Break=e_BASE}', "");
-    Expect(0, 1, '\P{^Is_Word_Break=e_BASE}', "");
-    Error('\p{Is_WB=_	eb/a/}');
-    Error('\P{Is_WB=_	eb/a/}');
+    Expect(0, 1, '\p{Is_Word_Break:	 	e_Base}', "");
+    Expect(1, 1, '\p{^Is_Word_Break:	 	e_Base}', "");
+    Expect(1, 1, '\P{Is_Word_Break:	 	e_Base}', "");
+    Expect(0, 1, '\P{^Is_Word_Break:	 	e_Base}', "");
+    Error('\p{Is_WB=-/a/EB}');
+    Error('\P{Is_WB=-/a/EB}');
     Expect(0, 1, '\p{Is_WB=eb}', "");
     Expect(1, 1, '\p{^Is_WB=eb}', "");
     Expect(1, 1, '\P{Is_WB=eb}', "");
     Expect(0, 1, '\P{^Is_WB=eb}', "");
-    Expect(0, 1, '\p{Is_WB=	eb}', "");
-    Expect(1, 1, '\p{^Is_WB=	eb}', "");
-    Expect(1, 1, '\P{Is_WB=	eb}', "");
-    Expect(0, 1, '\P{^Is_WB=	eb}', "");
-    Error('\p{Word_Break=/a/E_base_GAZ}');
-    Error('\P{Word_Break=/a/E_base_GAZ}');
+    Expect(0, 1, '\p{Is_WB=  eb}', "");
+    Expect(1, 1, '\p{^Is_WB=  eb}', "");
+    Expect(1, 1, '\P{Is_WB=  eb}', "");
+    Expect(0, 1, '\P{^Is_WB=  eb}', "");
+    Error('\p{Word_Break=:=-E_BASE_GAZ}');
+    Error('\P{Word_Break=:=-E_BASE_GAZ}');
     Expect(0, 1, '\p{Word_Break=:\AE_Base_GAZ\z:}', "");;
     Expect(0, 1, '\p{Word_Break=ebasegaz}', "");
     Expect(1, 1, '\p{^Word_Break=ebasegaz}', "");
     Expect(1, 1, '\P{Word_Break=ebasegaz}', "");
     Expect(0, 1, '\P{^Word_Break=ebasegaz}', "");
     Expect(0, 1, '\p{Word_Break=:\Aebasegaz\z:}', "");;
-    Expect(0, 1, '\p{Word_Break=--E_BASE_gaz}', "");
-    Expect(1, 1, '\p{^Word_Break=--E_BASE_gaz}', "");
-    Expect(1, 1, '\P{Word_Break=--E_BASE_gaz}', "");
-    Expect(0, 1, '\P{^Word_Break=--E_BASE_gaz}', "");
-    Error('\p{WB=__ebg:=}');
-    Error('\P{WB=__ebg:=}');
+    Expect(0, 1, '\p{Word_Break= -E_Base_gaz}', "");
+    Expect(1, 1, '\p{^Word_Break= -E_Base_gaz}', "");
+    Expect(1, 1, '\P{Word_Break= -E_Base_gaz}', "");
+    Expect(0, 1, '\P{^Word_Break= -E_Base_gaz}', "");
+    Error('\p{WB:	_-EBG/a/}');
+    Error('\P{WB:	_-EBG/a/}');
     Expect(0, 1, '\p{WB=:\AEBG\z:}', "");;
     Expect(0, 1, '\p{WB=ebg}', "");
     Expect(1, 1, '\p{^WB=ebg}', "");
     Expect(1, 1, '\P{WB=ebg}', "");
     Expect(0, 1, '\P{^WB=ebg}', "");
     Expect(0, 1, '\p{WB=:\Aebg\z:}', "");;
-    Expect(0, 1, '\p{WB:		-EBG}', "");
-    Expect(1, 1, '\p{^WB:		-EBG}', "");
-    Expect(1, 1, '\P{WB:		-EBG}', "");
-    Expect(0, 1, '\P{^WB:		-EBG}', "");
-    Error('\p{Is_Word_Break:	:=_e_Base_gaz}');
-    Error('\P{Is_Word_Break:	:=_e_Base_gaz}');
+    Expect(0, 1, '\p{WB=--EBG}', "");
+    Expect(1, 1, '\p{^WB=--EBG}', "");
+    Expect(1, 1, '\P{WB=--EBG}', "");
+    Expect(0, 1, '\P{^WB=--EBG}', "");
+    Error('\p{Is_Word_Break=:=__E_base_GAZ}');
+    Error('\P{Is_Word_Break=:=__E_base_GAZ}');
     Expect(0, 1, '\p{Is_Word_Break=ebasegaz}', "");
     Expect(1, 1, '\p{^Is_Word_Break=ebasegaz}', "");
     Expect(1, 1, '\P{Is_Word_Break=ebasegaz}', "");
     Expect(0, 1, '\P{^Is_Word_Break=ebasegaz}', "");
-    Expect(0, 1, '\p{Is_Word_Break=__E_Base_GAZ}', "");
-    Expect(1, 1, '\p{^Is_Word_Break=__E_Base_GAZ}', "");
-    Expect(1, 1, '\P{Is_Word_Break=__E_Base_GAZ}', "");
-    Expect(0, 1, '\P{^Is_Word_Break=__E_Base_GAZ}', "");
-    Error('\p{Is_WB=:= 	EBG}');
-    Error('\P{Is_WB=:= 	EBG}');
+    Expect(0, 1, '\p{Is_Word_Break=_E_BASE_GAZ}', "");
+    Expect(1, 1, '\p{^Is_Word_Break=_E_BASE_GAZ}', "");
+    Expect(1, 1, '\P{Is_Word_Break=_E_BASE_GAZ}', "");
+    Expect(0, 1, '\P{^Is_Word_Break=_E_BASE_GAZ}', "");
+    Error('\p{Is_WB=/a/_ EBG}');
+    Error('\P{Is_WB=/a/_ EBG}');
     Expect(0, 1, '\p{Is_WB=ebg}', "");
     Expect(1, 1, '\p{^Is_WB=ebg}', "");
     Expect(1, 1, '\P{Is_WB=ebg}', "");
     Expect(0, 1, '\P{^Is_WB=ebg}', "");
-    Expect(0, 1, '\p{Is_WB=	_ebg}', "");
-    Expect(1, 1, '\p{^Is_WB=	_ebg}', "");
-    Expect(1, 1, '\P{Is_WB=	_ebg}', "");
-    Expect(0, 1, '\P{^Is_WB=	_ebg}', "");
-    Error('\p{Word_Break= e_MODIFIER/a/}');
-    Error('\P{Word_Break= e_MODIFIER/a/}');
+    Expect(0, 1, '\p{Is_WB=	 EBG}', "");
+    Expect(1, 1, '\p{^Is_WB=	 EBG}', "");
+    Expect(1, 1, '\P{Is_WB=	 EBG}', "");
+    Expect(0, 1, '\P{^Is_WB=	 EBG}', "");
+    Error('\p{Word_Break=  E_Modifier/a/}');
+    Error('\P{Word_Break=  E_Modifier/a/}');
     Expect(0, 1, '\p{Word_Break=:\AE_Modifier\z:}', "");;
     Expect(0, 1, '\p{Word_Break=emodifier}', "");
     Expect(1, 1, '\p{^Word_Break=emodifier}', "");
     Expect(1, 1, '\P{Word_Break=emodifier}', "");
     Expect(0, 1, '\P{^Word_Break=emodifier}', "");
     Expect(0, 1, '\p{Word_Break=:\Aemodifier\z:}', "");;
-    Expect(0, 1, '\p{Word_Break= 	E_Modifier}', "");
-    Expect(1, 1, '\p{^Word_Break= 	E_Modifier}', "");
-    Expect(1, 1, '\P{Word_Break= 	E_Modifier}', "");
-    Expect(0, 1, '\P{^Word_Break= 	E_Modifier}', "");
-    Error('\p{WB=:=	 EM}');
-    Error('\P{WB=:=	 EM}');
+    Expect(0, 1, '\p{Word_Break=_ e_Modifier}', "");
+    Expect(1, 1, '\p{^Word_Break=_ e_Modifier}', "");
+    Expect(1, 1, '\P{Word_Break=_ e_Modifier}', "");
+    Expect(0, 1, '\P{^Word_Break=_ e_Modifier}', "");
+    Error('\p{WB=	 EM/a/}');
+    Error('\P{WB=	 EM/a/}');
     Expect(0, 1, '\p{WB=:\AEM\z:}', "");;
     Expect(0, 1, '\p{WB=em}', "");
     Expect(1, 1, '\p{^WB=em}', "");
     Expect(1, 1, '\P{WB=em}', "");
     Expect(0, 1, '\P{^WB=em}', "");
     Expect(0, 1, '\p{WB=:\Aem\z:}', "");;
-    Expect(0, 1, '\p{WB=-_EM}', "");
-    Expect(1, 1, '\p{^WB=-_EM}', "");
-    Expect(1, 1, '\P{WB=-_EM}', "");
-    Expect(0, 1, '\P{^WB=-_EM}', "");
-    Error('\p{Is_Word_Break=/a/_E_Modifier}');
-    Error('\P{Is_Word_Break=/a/_E_Modifier}');
-    Expect(0, 1, '\p{Is_Word_Break:   emodifier}', "");
-    Expect(1, 1, '\p{^Is_Word_Break:   emodifier}', "");
-    Expect(1, 1, '\P{Is_Word_Break:   emodifier}', "");
-    Expect(0, 1, '\P{^Is_Word_Break:   emodifier}', "");
-    Expect(0, 1, '\p{Is_Word_Break= -E_Modifier}', "");
-    Expect(1, 1, '\p{^Is_Word_Break= -E_Modifier}', "");
-    Expect(1, 1, '\P{Is_Word_Break= -E_Modifier}', "");
-    Expect(0, 1, '\P{^Is_Word_Break= -E_Modifier}', "");
-    Error('\p{Is_WB=	/a/EM}');
-    Error('\P{Is_WB=	/a/EM}');
-    Expect(0, 1, '\p{Is_WB:   em}', "");
-    Expect(1, 1, '\p{^Is_WB:   em}', "");
-    Expect(1, 1, '\P{Is_WB:   em}', "");
-    Expect(0, 1, '\P{^Is_WB:   em}', "");
-    Expect(0, 1, '\p{Is_WB=- em}', "");
-    Expect(1, 1, '\p{^Is_WB=- em}', "");
-    Expect(1, 1, '\P{Is_WB=- em}', "");
-    Expect(0, 1, '\P{^Is_WB=- em}', "");
-    Error('\p{Word_Break=- ExtendNumLet/a/}');
-    Error('\P{Word_Break=- ExtendNumLet/a/}');
+    Expect(0, 1, '\p{WB:	-EM}', "");
+    Expect(1, 1, '\p{^WB:	-EM}', "");
+    Expect(1, 1, '\P{WB:	-EM}', "");
+    Expect(0, 1, '\P{^WB:	-EM}', "");
+    Error('\p{Is_Word_Break=/a/ 	e_Modifier}');
+    Error('\P{Is_Word_Break=/a/ 	e_Modifier}');
+    Expect(0, 1, '\p{Is_Word_Break=emodifier}', "");
+    Expect(1, 1, '\p{^Is_Word_Break=emodifier}', "");
+    Expect(1, 1, '\P{Is_Word_Break=emodifier}', "");
+    Expect(0, 1, '\P{^Is_Word_Break=emodifier}', "");
+    Expect(0, 1, '\p{Is_Word_Break:   		E_MODIFIER}', "");
+    Expect(1, 1, '\p{^Is_Word_Break:   		E_MODIFIER}', "");
+    Expect(1, 1, '\P{Is_Word_Break:   		E_MODIFIER}', "");
+    Expect(0, 1, '\P{^Is_Word_Break:   		E_MODIFIER}', "");
+    Error('\p{Is_WB=  em:=}');
+    Error('\P{Is_WB=  em:=}');
+    Expect(0, 1, '\p{Is_WB=em}', "");
+    Expect(1, 1, '\p{^Is_WB=em}', "");
+    Expect(1, 1, '\P{Is_WB=em}', "");
+    Expect(0, 1, '\P{^Is_WB=em}', "");
+    Expect(0, 1, '\p{Is_WB=_EM}', "");
+    Expect(1, 1, '\p{^Is_WB=_EM}', "");
+    Expect(1, 1, '\P{Is_WB=_EM}', "");
+    Expect(0, 1, '\P{^Is_WB=_EM}', "");
+    Error('\p{Word_Break: /a/extendnumlet}');
+    Error('\P{Word_Break: /a/extendnumlet}');
     Expect(1, 65343, '\p{Word_Break=:\AExtendNumLet\z:}', "");;
     Expect(0, 65344, '\p{Word_Break=:\AExtendNumLet\z:}', "");;
     Expect(1, 65343, '\p{Word_Break=extendnumlet}', "");
@@ -155983,38 +157447,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65344, '\P{^Word_Break=extendnumlet}', "");
     Expect(1, 65343, '\p{Word_Break=:\Aextendnumlet\z:}', "");;
     Expect(0, 65344, '\p{Word_Break=:\Aextendnumlet\z:}', "");;
-    Expect(1, 65343, '\p{Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(0, 65343, '\p{^Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(0, 65343, '\P{Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(1, 65343, '\P{^Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(0, 65344, '\p{Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(1, 65344, '\p{^Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(1, 65344, '\P{Word_Break:	 _EXTENDNUMLET}', "");
-    Expect(0, 65344, '\P{^Word_Break:	 _EXTENDNUMLET}', "");
-    Error('\p{WB=/a/ EX}');
-    Error('\P{WB=/a/ EX}');
+    Expect(1, 65343, '\p{Word_Break:   _extendnumlet}', "");
+    Expect(0, 65343, '\p{^Word_Break:   _extendnumlet}', "");
+    Expect(0, 65343, '\P{Word_Break:   _extendnumlet}', "");
+    Expect(1, 65343, '\P{^Word_Break:   _extendnumlet}', "");
+    Expect(0, 65344, '\p{Word_Break:   _extendnumlet}', "");
+    Expect(1, 65344, '\p{^Word_Break:   _extendnumlet}', "");
+    Expect(1, 65344, '\P{Word_Break:   _extendnumlet}', "");
+    Expect(0, 65344, '\P{^Word_Break:   _extendnumlet}', "");
+    Error('\p{WB=	_EX:=}');
+    Error('\P{WB=	_EX:=}');
     Expect(1, 65343, '\p{WB=:\AEX\z:}', "");;
     Expect(0, 65344, '\p{WB=:\AEX\z:}', "");;
-    Expect(1, 65343, '\p{WB=ex}', "");
-    Expect(0, 65343, '\p{^WB=ex}', "");
-    Expect(0, 65343, '\P{WB=ex}', "");
-    Expect(1, 65343, '\P{^WB=ex}', "");
-    Expect(0, 65344, '\p{WB=ex}', "");
-    Expect(1, 65344, '\p{^WB=ex}', "");
-    Expect(1, 65344, '\P{WB=ex}', "");
-    Expect(0, 65344, '\P{^WB=ex}', "");
+    Expect(1, 65343, '\p{WB:ex}', "");
+    Expect(0, 65343, '\p{^WB:ex}', "");
+    Expect(0, 65343, '\P{WB:ex}', "");
+    Expect(1, 65343, '\P{^WB:ex}', "");
+    Expect(0, 65344, '\p{WB:ex}', "");
+    Expect(1, 65344, '\p{^WB:ex}', "");
+    Expect(1, 65344, '\P{WB:ex}', "");
+    Expect(0, 65344, '\P{^WB:ex}', "");
     Expect(1, 65343, '\p{WB=:\Aex\z:}', "");;
     Expect(0, 65344, '\p{WB=:\Aex\z:}', "");;
-    Expect(1, 65343, '\p{WB:    -EX}', "");
-    Expect(0, 65343, '\p{^WB:    -EX}', "");
-    Expect(0, 65343, '\P{WB:    -EX}', "");
-    Expect(1, 65343, '\P{^WB:    -EX}', "");
-    Expect(0, 65344, '\p{WB:    -EX}', "");
-    Expect(1, 65344, '\p{^WB:    -EX}', "");
-    Expect(1, 65344, '\P{WB:    -EX}', "");
-    Expect(0, 65344, '\P{^WB:    -EX}', "");
-    Error('\p{Is_Word_Break=extendnumlet/a/}');
-    Error('\P{Is_Word_Break=extendnumlet/a/}');
+    Expect(1, 65343, '\p{WB=-EX}', "");
+    Expect(0, 65343, '\p{^WB=-EX}', "");
+    Expect(0, 65343, '\P{WB=-EX}', "");
+    Expect(1, 65343, '\P{^WB=-EX}', "");
+    Expect(0, 65344, '\p{WB=-EX}', "");
+    Expect(1, 65344, '\p{^WB=-EX}', "");
+    Expect(1, 65344, '\P{WB=-EX}', "");
+    Expect(0, 65344, '\P{^WB=-EX}', "");
+    Error('\p{Is_Word_Break=	-EXTENDNUMLET:=}');
+    Error('\P{Is_Word_Break=	-EXTENDNUMLET:=}');
     Expect(1, 65343, '\p{Is_Word_Break=extendnumlet}', "");
     Expect(0, 65343, '\p{^Is_Word_Break=extendnumlet}', "");
     Expect(0, 65343, '\P{Is_Word_Break=extendnumlet}', "");
@@ -156023,16 +157487,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65344, '\p{^Is_Word_Break=extendnumlet}', "");
     Expect(1, 65344, '\P{Is_Word_Break=extendnumlet}', "");
     Expect(0, 65344, '\P{^Is_Word_Break=extendnumlet}', "");
-    Expect(1, 65343, '\p{Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(0, 65343, '\p{^Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(0, 65343, '\P{Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(1, 65343, '\P{^Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(0, 65344, '\p{Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(1, 65344, '\p{^Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(1, 65344, '\P{Is_Word_Break=	-EXTENDNUMLET}', "");
-    Expect(0, 65344, '\P{^Is_Word_Break=	-EXTENDNUMLET}', "");
-    Error('\p{Is_WB=/a/- EX}');
-    Error('\P{Is_WB=/a/- EX}');
+    Expect(1, 65343, '\p{Is_Word_Break=_ExtendNumLet}', "");
+    Expect(0, 65343, '\p{^Is_Word_Break=_ExtendNumLet}', "");
+    Expect(0, 65343, '\P{Is_Word_Break=_ExtendNumLet}', "");
+    Expect(1, 65343, '\P{^Is_Word_Break=_ExtendNumLet}', "");
+    Expect(0, 65344, '\p{Is_Word_Break=_ExtendNumLet}', "");
+    Expect(1, 65344, '\p{^Is_Word_Break=_ExtendNumLet}', "");
+    Expect(1, 65344, '\P{Is_Word_Break=_ExtendNumLet}', "");
+    Expect(0, 65344, '\P{^Is_Word_Break=_ExtendNumLet}', "");
+    Error('\p{Is_WB= 	EX/a/}');
+    Error('\P{Is_WB= 	EX/a/}');
     Expect(1, 65343, '\p{Is_WB=ex}', "");
     Expect(0, 65343, '\p{^Is_WB=ex}', "");
     Expect(0, 65343, '\P{Is_WB=ex}', "");
@@ -156041,38 +157505,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65344, '\p{^Is_WB=ex}', "");
     Expect(1, 65344, '\P{Is_WB=ex}', "");
     Expect(0, 65344, '\P{^Is_WB=ex}', "");
-    Expect(1, 65343, '\p{Is_WB= -ex}', "");
-    Expect(0, 65343, '\p{^Is_WB= -ex}', "");
-    Expect(0, 65343, '\P{Is_WB= -ex}', "");
-    Expect(1, 65343, '\P{^Is_WB= -ex}', "");
-    Expect(0, 65344, '\p{Is_WB= -ex}', "");
-    Expect(1, 65344, '\p{^Is_WB= -ex}', "");
-    Expect(1, 65344, '\P{Is_WB= -ex}', "");
-    Expect(0, 65344, '\P{^Is_WB= -ex}', "");
-    Error('\p{Word_Break=:=  Extend}');
-    Error('\P{Word_Break=:=  Extend}');
+    Expect(1, 65343, '\p{Is_WB=	-EX}', "");
+    Expect(0, 65343, '\p{^Is_WB=	-EX}', "");
+    Expect(0, 65343, '\P{Is_WB=	-EX}', "");
+    Expect(1, 65343, '\P{^Is_WB=	-EX}', "");
+    Expect(0, 65344, '\p{Is_WB=	-EX}', "");
+    Expect(1, 65344, '\p{^Is_WB=	-EX}', "");
+    Expect(1, 65344, '\P{Is_WB=	-EX}', "");
+    Expect(0, 65344, '\P{^Is_WB=	-EX}', "");
+    Error('\p{Word_Break=:=_	Extend}');
+    Error('\P{Word_Break=:=_	Extend}');
     Expect(1, 917999, '\p{Word_Break=:\AExtend\z:}', "");;
     Expect(0, 918000, '\p{Word_Break=:\AExtend\z:}', "");;
-    Expect(1, 917999, '\p{Word_Break:	extend}', "");
-    Expect(0, 917999, '\p{^Word_Break:	extend}', "");
-    Expect(0, 917999, '\P{Word_Break:	extend}', "");
-    Expect(1, 917999, '\P{^Word_Break:	extend}', "");
-    Expect(0, 918000, '\p{Word_Break:	extend}', "");
-    Expect(1, 918000, '\p{^Word_Break:	extend}', "");
-    Expect(1, 918000, '\P{Word_Break:	extend}', "");
-    Expect(0, 918000, '\P{^Word_Break:	extend}', "");
+    Expect(1, 917999, '\p{Word_Break=extend}', "");
+    Expect(0, 917999, '\p{^Word_Break=extend}', "");
+    Expect(0, 917999, '\P{Word_Break=extend}', "");
+    Expect(1, 917999, '\P{^Word_Break=extend}', "");
+    Expect(0, 918000, '\p{Word_Break=extend}', "");
+    Expect(1, 918000, '\p{^Word_Break=extend}', "");
+    Expect(1, 918000, '\P{Word_Break=extend}', "");
+    Expect(0, 918000, '\P{^Word_Break=extend}', "");
     Expect(1, 917999, '\p{Word_Break=:\Aextend\z:}', "");;
     Expect(0, 918000, '\p{Word_Break=:\Aextend\z:}', "");;
-    Expect(1, 917999, '\p{Word_Break=	Extend}', "");
-    Expect(0, 917999, '\p{^Word_Break=	Extend}', "");
-    Expect(0, 917999, '\P{Word_Break=	Extend}', "");
-    Expect(1, 917999, '\P{^Word_Break=	Extend}', "");
-    Expect(0, 918000, '\p{Word_Break=	Extend}', "");
-    Expect(1, 918000, '\p{^Word_Break=	Extend}', "");
-    Expect(1, 918000, '\P{Word_Break=	Extend}', "");
-    Expect(0, 918000, '\P{^Word_Break=	Extend}', "");
-    Error('\p{WB=/a/-	EXTEND}');
-    Error('\P{WB=/a/-	EXTEND}');
+    Expect(1, 917999, '\p{Word_Break: _Extend}', "");
+    Expect(0, 917999, '\p{^Word_Break: _Extend}', "");
+    Expect(0, 917999, '\P{Word_Break: _Extend}', "");
+    Expect(1, 917999, '\P{^Word_Break: _Extend}', "");
+    Expect(0, 918000, '\p{Word_Break: _Extend}', "");
+    Expect(1, 918000, '\p{^Word_Break: _Extend}', "");
+    Expect(1, 918000, '\P{Word_Break: _Extend}', "");
+    Expect(0, 918000, '\P{^Word_Break: _Extend}', "");
+    Error('\p{WB:		:=Extend}');
+    Error('\P{WB:		:=Extend}');
     Expect(1, 917999, '\p{WB=:\AExtend\z:}', "");;
     Expect(0, 918000, '\p{WB=:\AExtend\z:}', "");;
     Expect(1, 917999, '\p{WB=extend}', "");
@@ -156085,16 +157549,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^WB=extend}', "");
     Expect(1, 917999, '\p{WB=:\Aextend\z:}', "");;
     Expect(0, 918000, '\p{WB=:\Aextend\z:}', "");;
-    Expect(1, 917999, '\p{WB:-extend}', "");
-    Expect(0, 917999, '\p{^WB:-extend}', "");
-    Expect(0, 917999, '\P{WB:-extend}', "");
-    Expect(1, 917999, '\P{^WB:-extend}', "");
-    Expect(0, 918000, '\p{WB:-extend}', "");
-    Expect(1, 918000, '\p{^WB:-extend}', "");
-    Expect(1, 918000, '\P{WB:-extend}', "");
-    Expect(0, 918000, '\P{^WB:-extend}', "");
-    Error('\p{Is_Word_Break=/a/__EXTEND}');
-    Error('\P{Is_Word_Break=/a/__EXTEND}');
+    Expect(1, 917999, '\p{WB=_ EXTEND}', "");
+    Expect(0, 917999, '\p{^WB=_ EXTEND}', "");
+    Expect(0, 917999, '\P{WB=_ EXTEND}', "");
+    Expect(1, 917999, '\P{^WB=_ EXTEND}', "");
+    Expect(0, 918000, '\p{WB=_ EXTEND}', "");
+    Expect(1, 918000, '\p{^WB=_ EXTEND}', "");
+    Expect(1, 918000, '\P{WB=_ EXTEND}', "");
+    Expect(0, 918000, '\P{^WB=_ EXTEND}', "");
+    Error('\p{Is_Word_Break=:=		Extend}');
+    Error('\P{Is_Word_Break=:=		Extend}');
     Expect(1, 917999, '\p{Is_Word_Break=extend}', "");
     Expect(0, 917999, '\p{^Is_Word_Break=extend}', "");
     Expect(0, 917999, '\P{Is_Word_Break=extend}', "");
@@ -156103,34 +157567,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_Word_Break=extend}', "");
     Expect(1, 918000, '\P{Is_Word_Break=extend}', "");
     Expect(0, 918000, '\P{^Is_Word_Break=extend}', "");
-    Expect(1, 917999, '\p{Is_Word_Break=-EXTEND}', "");
-    Expect(0, 917999, '\p{^Is_Word_Break=-EXTEND}', "");
-    Expect(0, 917999, '\P{Is_Word_Break=-EXTEND}', "");
-    Expect(1, 917999, '\P{^Is_Word_Break=-EXTEND}', "");
-    Expect(0, 918000, '\p{Is_Word_Break=-EXTEND}', "");
-    Expect(1, 918000, '\p{^Is_Word_Break=-EXTEND}', "");
-    Expect(1, 918000, '\P{Is_Word_Break=-EXTEND}', "");
-    Expect(0, 918000, '\P{^Is_Word_Break=-EXTEND}', "");
-    Error('\p{Is_WB=:=_ extend}');
-    Error('\P{Is_WB=:=_ extend}');
-    Expect(1, 917999, '\p{Is_WB=extend}', "");
-    Expect(0, 917999, '\p{^Is_WB=extend}', "");
-    Expect(0, 917999, '\P{Is_WB=extend}', "");
-    Expect(1, 917999, '\P{^Is_WB=extend}', "");
-    Expect(0, 918000, '\p{Is_WB=extend}', "");
-    Expect(1, 918000, '\p{^Is_WB=extend}', "");
-    Expect(1, 918000, '\P{Is_WB=extend}', "");
-    Expect(0, 918000, '\P{^Is_WB=extend}', "");
-    Expect(1, 917999, '\p{Is_WB= 	EXTEND}', "");
-    Expect(0, 917999, '\p{^Is_WB= 	EXTEND}', "");
-    Expect(0, 917999, '\P{Is_WB= 	EXTEND}', "");
-    Expect(1, 917999, '\P{^Is_WB= 	EXTEND}', "");
-    Expect(0, 918000, '\p{Is_WB= 	EXTEND}', "");
-    Expect(1, 918000, '\p{^Is_WB= 	EXTEND}', "");
-    Expect(1, 918000, '\P{Is_WB= 	EXTEND}', "");
-    Expect(0, 918000, '\P{^Is_WB= 	EXTEND}', "");
-    Error('\p{Word_Break:	:=__FORMAT}');
-    Error('\P{Word_Break:	:=__FORMAT}');
+    Expect(1, 917999, '\p{Is_Word_Break=_Extend}', "");
+    Expect(0, 917999, '\p{^Is_Word_Break=_Extend}', "");
+    Expect(0, 917999, '\P{Is_Word_Break=_Extend}', "");
+    Expect(1, 917999, '\P{^Is_Word_Break=_Extend}', "");
+    Expect(0, 918000, '\p{Is_Word_Break=_Extend}', "");
+    Expect(1, 918000, '\p{^Is_Word_Break=_Extend}', "");
+    Expect(1, 918000, '\P{Is_Word_Break=_Extend}', "");
+    Expect(0, 918000, '\P{^Is_Word_Break=_Extend}', "");
+    Error('\p{Is_WB=	 EXTEND:=}');
+    Error('\P{Is_WB=	 EXTEND:=}');
+    Expect(1, 917999, '\p{Is_WB:   extend}', "");
+    Expect(0, 917999, '\p{^Is_WB:   extend}', "");
+    Expect(0, 917999, '\P{Is_WB:   extend}', "");
+    Expect(1, 917999, '\P{^Is_WB:   extend}', "");
+    Expect(0, 918000, '\p{Is_WB:   extend}', "");
+    Expect(1, 918000, '\p{^Is_WB:   extend}', "");
+    Expect(1, 918000, '\P{Is_WB:   extend}', "");
+    Expect(0, 918000, '\P{^Is_WB:   extend}', "");
+    Expect(1, 917999, '\p{Is_WB=-EXTEND}', "");
+    Expect(0, 917999, '\p{^Is_WB=-EXTEND}', "");
+    Expect(0, 917999, '\P{Is_WB=-EXTEND}', "");
+    Expect(1, 917999, '\P{^Is_WB=-EXTEND}', "");
+    Expect(0, 918000, '\p{Is_WB=-EXTEND}', "");
+    Expect(1, 918000, '\p{^Is_WB=-EXTEND}', "");
+    Expect(1, 918000, '\P{Is_WB=-EXTEND}', "");
+    Expect(0, 918000, '\P{^Is_WB=-EXTEND}', "");
+    Error('\p{Word_Break=  FORMAT:=}');
+    Error('\P{Word_Break=  FORMAT:=}');
     Expect(1, 917505, '\p{Word_Break=:\AFormat\z:}', "");;
     Expect(0, 917506, '\p{Word_Break=:\AFormat\z:}', "");;
     Expect(1, 917505, '\p{Word_Break=format}', "");
@@ -156143,16 +157607,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917506, '\P{^Word_Break=format}', "");
     Expect(1, 917505, '\p{Word_Break=:\Aformat\z:}', "");;
     Expect(0, 917506, '\p{Word_Break=:\Aformat\z:}', "");;
-    Expect(1, 917505, '\p{Word_Break=- Format}', "");
-    Expect(0, 917505, '\p{^Word_Break=- Format}', "");
-    Expect(0, 917505, '\P{Word_Break=- Format}', "");
-    Expect(1, 917505, '\P{^Word_Break=- Format}', "");
-    Expect(0, 917506, '\p{Word_Break=- Format}', "");
-    Expect(1, 917506, '\p{^Word_Break=- Format}', "");
-    Expect(1, 917506, '\P{Word_Break=- Format}', "");
-    Expect(0, 917506, '\P{^Word_Break=- Format}', "");
-    Error('\p{WB=-:=FO}');
-    Error('\P{WB=-:=FO}');
+    Expect(1, 917505, '\p{Word_Break: _-format}', "");
+    Expect(0, 917505, '\p{^Word_Break: _-format}', "");
+    Expect(0, 917505, '\P{Word_Break: _-format}', "");
+    Expect(1, 917505, '\P{^Word_Break: _-format}', "");
+    Expect(0, 917506, '\p{Word_Break: _-format}', "");
+    Expect(1, 917506, '\p{^Word_Break: _-format}', "");
+    Expect(1, 917506, '\P{Word_Break: _-format}', "");
+    Expect(0, 917506, '\P{^Word_Break: _-format}', "");
+    Error('\p{WB=/a/_-fo}');
+    Error('\P{WB=/a/_-fo}');
     Expect(1, 917505, '\p{WB=:\AFO\z:}', "");;
     Expect(0, 917506, '\p{WB=:\AFO\z:}', "");;
     Expect(1, 917505, '\p{WB=fo}', "");
@@ -156165,16 +157629,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917506, '\P{^WB=fo}', "");
     Expect(1, 917505, '\p{WB=:\Afo\z:}', "");;
     Expect(0, 917506, '\p{WB=:\Afo\z:}', "");;
-    Expect(1, 917505, '\p{WB=		fo}', "");
-    Expect(0, 917505, '\p{^WB=		fo}', "");
-    Expect(0, 917505, '\P{WB=		fo}', "");
-    Expect(1, 917505, '\P{^WB=		fo}', "");
-    Expect(0, 917506, '\p{WB=		fo}', "");
-    Expect(1, 917506, '\p{^WB=		fo}', "");
-    Expect(1, 917506, '\P{WB=		fo}', "");
-    Expect(0, 917506, '\P{^WB=		fo}', "");
-    Error('\p{Is_Word_Break=/a/- Format}');
-    Error('\P{Is_Word_Break=/a/- Format}');
+    Expect(1, 917505, '\p{WB=	FO}', "");
+    Expect(0, 917505, '\p{^WB=	FO}', "");
+    Expect(0, 917505, '\P{WB=	FO}', "");
+    Expect(1, 917505, '\P{^WB=	FO}', "");
+    Expect(0, 917506, '\p{WB=	FO}', "");
+    Expect(1, 917506, '\p{^WB=	FO}', "");
+    Expect(1, 917506, '\P{WB=	FO}', "");
+    Expect(0, 917506, '\P{^WB=	FO}', "");
+    Error('\p{Is_Word_Break=/a/		Format}');
+    Error('\P{Is_Word_Break=/a/		Format}');
     Expect(1, 917505, '\p{Is_Word_Break=format}', "");
     Expect(0, 917505, '\p{^Is_Word_Break=format}', "");
     Expect(0, 917505, '\P{Is_Word_Break=format}', "");
@@ -156183,16 +157647,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917506, '\p{^Is_Word_Break=format}', "");
     Expect(1, 917506, '\P{Is_Word_Break=format}', "");
     Expect(0, 917506, '\P{^Is_Word_Break=format}', "");
-    Expect(1, 917505, '\p{Is_Word_Break=_-Format}', "");
-    Expect(0, 917505, '\p{^Is_Word_Break=_-Format}', "");
-    Expect(0, 917505, '\P{Is_Word_Break=_-Format}', "");
-    Expect(1, 917505, '\P{^Is_Word_Break=_-Format}', "");
-    Expect(0, 917506, '\p{Is_Word_Break=_-Format}', "");
-    Expect(1, 917506, '\p{^Is_Word_Break=_-Format}', "");
-    Expect(1, 917506, '\P{Is_Word_Break=_-Format}', "");
-    Expect(0, 917506, '\P{^Is_Word_Break=_-Format}', "");
-    Error('\p{Is_WB=/a/	-FO}');
-    Error('\P{Is_WB=/a/	-FO}');
+    Expect(1, 917505, '\p{Is_Word_Break= Format}', "");
+    Expect(0, 917505, '\p{^Is_Word_Break= Format}', "");
+    Expect(0, 917505, '\P{Is_Word_Break= Format}', "");
+    Expect(1, 917505, '\P{^Is_Word_Break= Format}', "");
+    Expect(0, 917506, '\p{Is_Word_Break= Format}', "");
+    Expect(1, 917506, '\p{^Is_Word_Break= Format}', "");
+    Expect(1, 917506, '\P{Is_Word_Break= Format}', "");
+    Expect(0, 917506, '\P{^Is_Word_Break= Format}', "");
+    Error('\p{Is_WB=:=	_FO}');
+    Error('\P{Is_WB=:=	_FO}');
     Expect(1, 917505, '\p{Is_WB=fo}', "");
     Expect(0, 917505, '\p{^Is_WB=fo}', "");
     Expect(0, 917505, '\P{Is_WB=fo}', "");
@@ -156201,60 +157665,60 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917506, '\p{^Is_WB=fo}', "");
     Expect(1, 917506, '\P{Is_WB=fo}', "");
     Expect(0, 917506, '\P{^Is_WB=fo}', "");
-    Expect(1, 917505, '\p{Is_WB= FO}', "");
-    Expect(0, 917505, '\p{^Is_WB= FO}', "");
-    Expect(0, 917505, '\P{Is_WB= FO}', "");
-    Expect(1, 917505, '\P{^Is_WB= FO}', "");
-    Expect(0, 917506, '\p{Is_WB= FO}', "");
-    Expect(1, 917506, '\p{^Is_WB= FO}', "");
-    Expect(1, 917506, '\P{Is_WB= FO}', "");
-    Expect(0, 917506, '\P{^Is_WB= FO}', "");
-    Error('\p{Word_Break: /a/ -Glue_after_Zwj}');
-    Error('\P{Word_Break: /a/ -Glue_after_Zwj}');
+    Expect(1, 917505, '\p{Is_WB=-fo}', "");
+    Expect(0, 917505, '\p{^Is_WB=-fo}', "");
+    Expect(0, 917505, '\P{Is_WB=-fo}', "");
+    Expect(1, 917505, '\P{^Is_WB=-fo}', "");
+    Expect(0, 917506, '\p{Is_WB=-fo}', "");
+    Expect(1, 917506, '\p{^Is_WB=-fo}', "");
+    Expect(1, 917506, '\P{Is_WB=-fo}', "");
+    Expect(0, 917506, '\P{^Is_WB=-fo}', "");
+    Error('\p{Word_Break= :=Glue_After_Zwj}');
+    Error('\P{Word_Break= :=Glue_After_Zwj}');
     Expect(0, 1, '\p{Word_Break=:\AGlue_After_Zwj\z:}', "");;
-    Expect(0, 1, '\p{Word_Break=glueafterzwj}', "");
-    Expect(1, 1, '\p{^Word_Break=glueafterzwj}', "");
-    Expect(1, 1, '\P{Word_Break=glueafterzwj}', "");
-    Expect(0, 1, '\P{^Word_Break=glueafterzwj}', "");
+    Expect(0, 1, '\p{Word_Break:glueafterzwj}', "");
+    Expect(1, 1, '\p{^Word_Break:glueafterzwj}', "");
+    Expect(1, 1, '\P{Word_Break:glueafterzwj}', "");
+    Expect(0, 1, '\P{^Word_Break:glueafterzwj}', "");
     Expect(0, 1, '\p{Word_Break=:\Aglueafterzwj\z:}', "");;
-    Expect(0, 1, '\p{Word_Break: _Glue_After_Zwj}', "");
-    Expect(1, 1, '\p{^Word_Break: _Glue_After_Zwj}', "");
-    Expect(1, 1, '\P{Word_Break: _Glue_After_Zwj}', "");
-    Expect(0, 1, '\P{^Word_Break: _Glue_After_Zwj}', "");
-    Error('\p{WB= -gaz:=}');
-    Error('\P{WB= -gaz:=}');
+    Expect(0, 1, '\p{Word_Break= _glue_after_Zwj}', "");
+    Expect(1, 1, '\p{^Word_Break= _glue_after_Zwj}', "");
+    Expect(1, 1, '\P{Word_Break= _glue_after_Zwj}', "");
+    Expect(0, 1, '\P{^Word_Break= _glue_after_Zwj}', "");
+    Error('\p{WB=_/a/GAZ}');
+    Error('\P{WB=_/a/GAZ}');
     Expect(0, 1, '\p{WB=:\AGAZ\z:}', "");;
     Expect(0, 1, '\p{WB=gaz}', "");
     Expect(1, 1, '\p{^WB=gaz}', "");
     Expect(1, 1, '\P{WB=gaz}', "");
     Expect(0, 1, '\P{^WB=gaz}', "");
     Expect(0, 1, '\p{WB=:\Agaz\z:}', "");;
-    Expect(0, 1, '\p{WB:   _	GAZ}', "");
-    Expect(1, 1, '\p{^WB:   _	GAZ}', "");
-    Expect(1, 1, '\P{WB:   _	GAZ}', "");
-    Expect(0, 1, '\P{^WB:   _	GAZ}', "");
-    Error('\p{Is_Word_Break:   :=GLUE_after_ZWJ}');
-    Error('\P{Is_Word_Break:   :=GLUE_after_ZWJ}');
+    Expect(0, 1, '\p{WB=-GAZ}', "");
+    Expect(1, 1, '\p{^WB=-GAZ}', "");
+    Expect(1, 1, '\P{WB=-GAZ}', "");
+    Expect(0, 1, '\P{^WB=-GAZ}', "");
+    Error('\p{Is_Word_Break=:=Glue_after_Zwj}');
+    Error('\P{Is_Word_Break=:=Glue_after_Zwj}');
     Expect(0, 1, '\p{Is_Word_Break=glueafterzwj}', "");
     Expect(1, 1, '\p{^Is_Word_Break=glueafterzwj}', "");
     Expect(1, 1, '\P{Is_Word_Break=glueafterzwj}', "");
     Expect(0, 1, '\P{^Is_Word_Break=glueafterzwj}', "");
-    Expect(0, 1, '\p{Is_Word_Break=- Glue_after_zwj}', "");
-    Expect(1, 1, '\p{^Is_Word_Break=- Glue_after_zwj}', "");
-    Expect(1, 1, '\P{Is_Word_Break=- Glue_after_zwj}', "");
-    Expect(0, 1, '\P{^Is_Word_Break=- Glue_after_zwj}', "");
-    Error('\p{Is_WB=/a/_GAZ}');
-    Error('\P{Is_WB=/a/_GAZ}');
+    Expect(0, 1, '\p{Is_Word_Break=-GLUE_After_zwj}', "");
+    Expect(1, 1, '\p{^Is_Word_Break=-GLUE_After_zwj}', "");
+    Expect(1, 1, '\P{Is_Word_Break=-GLUE_After_zwj}', "");
+    Expect(0, 1, '\P{^Is_Word_Break=-GLUE_After_zwj}', "");
+    Error('\p{Is_WB=	 gaz:=}');
+    Error('\P{Is_WB=	 gaz:=}');
     Expect(0, 1, '\p{Is_WB=gaz}', "");
     Expect(1, 1, '\p{^Is_WB=gaz}', "");
     Expect(1, 1, '\P{Is_WB=gaz}', "");
     Expect(0, 1, '\P{^Is_WB=gaz}', "");
-    Expect(0, 1, '\p{Is_WB=	_GAZ}', "");
-    Expect(1, 1, '\p{^Is_WB=	_GAZ}', "");
-    Expect(1, 1, '\P{Is_WB=	_GAZ}', "");
-    Expect(0, 1, '\P{^Is_WB=	_GAZ}', "");
-    Error('\p{Word_Break=:=hebrew_Letter}');
-    Error('\P{Word_Break=:=hebrew_Letter}');
+    Expect(0, 1, '\p{Is_WB= 	GAZ}', "");
+    Expect(1, 1, '\p{^Is_WB= 	GAZ}', "");
+    Expect(1, 1, '\P{Is_WB= 	GAZ}', "");
+    Expect(0, 1, '\P{^Is_WB= 	GAZ}', "");
+    Error('\p{Word_Break=--Hebrew_Letter/a/}');
+    Error('\P{Word_Break=--Hebrew_Letter/a/}');
     Expect(1, 64335, '\p{Word_Break=:\AHebrew_Letter\z:}', "");;
     Expect(0, 64336, '\p{Word_Break=:\AHebrew_Letter\z:}', "");;
     Expect(1, 64335, '\p{Word_Break=hebrewletter}', "");
@@ -156267,16 +157731,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64336, '\P{^Word_Break=hebrewletter}', "");
     Expect(1, 64335, '\p{Word_Break=:\Ahebrewletter\z:}', "");;
     Expect(0, 64336, '\p{Word_Break=:\Ahebrewletter\z:}', "");;
-    Expect(1, 64335, '\p{Word_Break=_	HEBREW_LETTER}', "");
-    Expect(0, 64335, '\p{^Word_Break=_	HEBREW_LETTER}', "");
-    Expect(0, 64335, '\P{Word_Break=_	HEBREW_LETTER}', "");
-    Expect(1, 64335, '\P{^Word_Break=_	HEBREW_LETTER}', "");
-    Expect(0, 64336, '\p{Word_Break=_	HEBREW_LETTER}', "");
-    Expect(1, 64336, '\p{^Word_Break=_	HEBREW_LETTER}', "");
-    Expect(1, 64336, '\P{Word_Break=_	HEBREW_LETTER}', "");
-    Expect(0, 64336, '\P{^Word_Break=_	HEBREW_LETTER}', "");
-    Error('\p{WB=-_hl/a/}');
-    Error('\P{WB=-_hl/a/}');
+    Expect(1, 64335, '\p{Word_Break= HEBREW_LETTER}', "");
+    Expect(0, 64335, '\p{^Word_Break= HEBREW_LETTER}', "");
+    Expect(0, 64335, '\P{Word_Break= HEBREW_LETTER}', "");
+    Expect(1, 64335, '\P{^Word_Break= HEBREW_LETTER}', "");
+    Expect(0, 64336, '\p{Word_Break= HEBREW_LETTER}', "");
+    Expect(1, 64336, '\p{^Word_Break= HEBREW_LETTER}', "");
+    Expect(1, 64336, '\P{Word_Break= HEBREW_LETTER}', "");
+    Expect(0, 64336, '\P{^Word_Break= HEBREW_LETTER}', "");
+    Error('\p{WB=_-hl/a/}');
+    Error('\P{WB=_-hl/a/}');
     Expect(1, 64335, '\p{WB=:\AHL\z:}', "");;
     Expect(0, 64336, '\p{WB=:\AHL\z:}', "");;
     Expect(1, 64335, '\p{WB=hl}', "");
@@ -156289,16 +157753,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 64336, '\P{^WB=hl}', "");
     Expect(1, 64335, '\p{WB=:\Ahl\z:}', "");;
     Expect(0, 64336, '\p{WB=:\Ahl\z:}', "");;
-    Expect(1, 64335, '\p{WB:_-hl}', "");
-    Expect(0, 64335, '\p{^WB:_-hl}', "");
-    Expect(0, 64335, '\P{WB:_-hl}', "");
-    Expect(1, 64335, '\P{^WB:_-hl}', "");
-    Expect(0, 64336, '\p{WB:_-hl}', "");
-    Expect(1, 64336, '\p{^WB:_-hl}', "");
-    Expect(1, 64336, '\P{WB:_-hl}', "");
-    Expect(0, 64336, '\P{^WB:_-hl}', "");
-    Error('\p{Is_Word_Break=/a/HEBREW_Letter}');
-    Error('\P{Is_Word_Break=/a/HEBREW_Letter}');
+    Expect(1, 64335, '\p{WB: -	hl}', "");
+    Expect(0, 64335, '\p{^WB: -	hl}', "");
+    Expect(0, 64335, '\P{WB: -	hl}', "");
+    Expect(1, 64335, '\P{^WB: -	hl}', "");
+    Expect(0, 64336, '\p{WB: -	hl}', "");
+    Expect(1, 64336, '\p{^WB: -	hl}', "");
+    Expect(1, 64336, '\P{WB: -	hl}', "");
+    Expect(0, 64336, '\P{^WB: -	hl}', "");
+    Error('\p{Is_Word_Break=:= _Hebrew_LETTER}');
+    Error('\P{Is_Word_Break=:= _Hebrew_LETTER}');
     Expect(1, 64335, '\p{Is_Word_Break=hebrewletter}', "");
     Expect(0, 64335, '\p{^Is_Word_Break=hebrewletter}', "");
     Expect(0, 64335, '\P{Is_Word_Break=hebrewletter}', "");
@@ -156307,16 +157771,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64336, '\p{^Is_Word_Break=hebrewletter}', "");
     Expect(1, 64336, '\P{Is_Word_Break=hebrewletter}', "");
     Expect(0, 64336, '\P{^Is_Word_Break=hebrewletter}', "");
-    Expect(1, 64335, '\p{Is_Word_Break=		hebrew_Letter}', "");
-    Expect(0, 64335, '\p{^Is_Word_Break=		hebrew_Letter}', "");
-    Expect(0, 64335, '\P{Is_Word_Break=		hebrew_Letter}', "");
-    Expect(1, 64335, '\P{^Is_Word_Break=		hebrew_Letter}', "");
-    Expect(0, 64336, '\p{Is_Word_Break=		hebrew_Letter}', "");
-    Expect(1, 64336, '\p{^Is_Word_Break=		hebrew_Letter}', "");
-    Expect(1, 64336, '\P{Is_Word_Break=		hebrew_Letter}', "");
-    Expect(0, 64336, '\P{^Is_Word_Break=		hebrew_Letter}', "");
-    Error('\p{Is_WB=  HL/a/}');
-    Error('\P{Is_WB=  HL/a/}');
+    Expect(1, 64335, '\p{Is_Word_Break= Hebrew_Letter}', "");
+    Expect(0, 64335, '\p{^Is_Word_Break= Hebrew_Letter}', "");
+    Expect(0, 64335, '\P{Is_Word_Break= Hebrew_Letter}', "");
+    Expect(1, 64335, '\P{^Is_Word_Break= Hebrew_Letter}', "");
+    Expect(0, 64336, '\p{Is_Word_Break= Hebrew_Letter}', "");
+    Expect(1, 64336, '\p{^Is_Word_Break= Hebrew_Letter}', "");
+    Expect(1, 64336, '\P{Is_Word_Break= Hebrew_Letter}', "");
+    Expect(0, 64336, '\P{^Is_Word_Break= Hebrew_Letter}', "");
+    Error('\p{Is_WB=-:=HL}');
+    Error('\P{Is_WB=-:=HL}');
     Expect(1, 64335, '\p{Is_WB:   hl}', "");
     Expect(0, 64335, '\p{^Is_WB:   hl}', "");
     Expect(0, 64335, '\P{Is_WB:   hl}', "");
@@ -156325,16 +157789,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 64336, '\p{^Is_WB:   hl}', "");
     Expect(1, 64336, '\P{Is_WB:   hl}', "");
     Expect(0, 64336, '\P{^Is_WB:   hl}', "");
-    Expect(1, 64335, '\p{Is_WB=_-HL}', "");
-    Expect(0, 64335, '\p{^Is_WB=_-HL}', "");
-    Expect(0, 64335, '\P{Is_WB=_-HL}', "");
-    Expect(1, 64335, '\P{^Is_WB=_-HL}', "");
-    Expect(0, 64336, '\p{Is_WB=_-HL}', "");
-    Expect(1, 64336, '\p{^Is_WB=_-HL}', "");
-    Expect(1, 64336, '\P{Is_WB=_-HL}', "");
-    Expect(0, 64336, '\P{^Is_WB=_-HL}', "");
-    Error('\p{Word_Break=/a/KATAKANA}');
-    Error('\P{Word_Break=/a/KATAKANA}');
+    Expect(1, 64335, '\p{Is_WB:   -	hl}', "");
+    Expect(0, 64335, '\p{^Is_WB:   -	hl}', "");
+    Expect(0, 64335, '\P{Is_WB:   -	hl}', "");
+    Expect(1, 64335, '\P{^Is_WB:   -	hl}', "");
+    Expect(0, 64336, '\p{Is_WB:   -	hl}', "");
+    Expect(1, 64336, '\p{^Is_WB:   -	hl}', "");
+    Expect(1, 64336, '\P{Is_WB:   -	hl}', "");
+    Expect(0, 64336, '\P{^Is_WB:   -	hl}', "");
+    Error('\p{Word_Break=/a/katakana}');
+    Error('\P{Word_Break=/a/katakana}');
     Expect(1, 110951, '\p{Word_Break=:\AKatakana\z:}', "");;
     Expect(0, 110952, '\p{Word_Break=:\AKatakana\z:}', "");;
     Expect(1, 110951, '\p{Word_Break=katakana}', "");
@@ -156347,16 +157811,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 110952, '\P{^Word_Break=katakana}', "");
     Expect(1, 110951, '\p{Word_Break=:\Akatakana\z:}', "");;
     Expect(0, 110952, '\p{Word_Break=:\Akatakana\z:}', "");;
-    Expect(1, 110951, '\p{Word_Break=  katakana}', "");
-    Expect(0, 110951, '\p{^Word_Break=  katakana}', "");
-    Expect(0, 110951, '\P{Word_Break=  katakana}', "");
-    Expect(1, 110951, '\P{^Word_Break=  katakana}', "");
-    Expect(0, 110952, '\p{Word_Break=  katakana}', "");
-    Expect(1, 110952, '\p{^Word_Break=  katakana}', "");
-    Expect(1, 110952, '\P{Word_Break=  katakana}', "");
-    Expect(0, 110952, '\P{^Word_Break=  katakana}', "");
-    Error('\p{WB::=_-ka}');
-    Error('\P{WB::=_-ka}');
+    Expect(1, 110951, '\p{Word_Break= _Katakana}', "");
+    Expect(0, 110951, '\p{^Word_Break= _Katakana}', "");
+    Expect(0, 110951, '\P{Word_Break= _Katakana}', "");
+    Expect(1, 110951, '\P{^Word_Break= _Katakana}', "");
+    Expect(0, 110952, '\p{Word_Break= _Katakana}', "");
+    Expect(1, 110952, '\p{^Word_Break= _Katakana}', "");
+    Expect(1, 110952, '\P{Word_Break= _Katakana}', "");
+    Expect(0, 110952, '\P{^Word_Break= _Katakana}', "");
+    Error('\p{WB=	ka/a/}');
+    Error('\P{WB=	ka/a/}');
     Expect(1, 110951, '\p{WB=:\AKA\z:}', "");;
     Expect(0, 110952, '\p{WB=:\AKA\z:}', "");;
     Expect(1, 110951, '\p{WB=ka}', "");
@@ -156369,34 +157833,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 110952, '\P{^WB=ka}', "");
     Expect(1, 110951, '\p{WB=:\Aka\z:}', "");;
     Expect(0, 110952, '\p{WB=:\Aka\z:}', "");;
-    Expect(1, 110951, '\p{WB=_	KA}', "");
-    Expect(0, 110951, '\p{^WB=_	KA}', "");
-    Expect(0, 110951, '\P{WB=_	KA}', "");
-    Expect(1, 110951, '\P{^WB=_	KA}', "");
-    Expect(0, 110952, '\p{WB=_	KA}', "");
-    Expect(1, 110952, '\p{^WB=_	KA}', "");
-    Expect(1, 110952, '\P{WB=_	KA}', "");
-    Expect(0, 110952, '\P{^WB=_	KA}', "");
-    Error('\p{Is_Word_Break=:=-KATAKANA}');
-    Error('\P{Is_Word_Break=:=-KATAKANA}');
-    Expect(1, 110951, '\p{Is_Word_Break:	katakana}', "");
-    Expect(0, 110951, '\p{^Is_Word_Break:	katakana}', "");
-    Expect(0, 110951, '\P{Is_Word_Break:	katakana}', "");
-    Expect(1, 110951, '\P{^Is_Word_Break:	katakana}', "");
-    Expect(0, 110952, '\p{Is_Word_Break:	katakana}', "");
-    Expect(1, 110952, '\p{^Is_Word_Break:	katakana}', "");
-    Expect(1, 110952, '\P{Is_Word_Break:	katakana}', "");
-    Expect(0, 110952, '\P{^Is_Word_Break:	katakana}', "");
-    Expect(1, 110951, '\p{Is_Word_Break=Katakana}', "");
-    Expect(0, 110951, '\p{^Is_Word_Break=Katakana}', "");
-    Expect(0, 110951, '\P{Is_Word_Break=Katakana}', "");
-    Expect(1, 110951, '\P{^Is_Word_Break=Katakana}', "");
-    Expect(0, 110952, '\p{Is_Word_Break=Katakana}', "");
-    Expect(1, 110952, '\p{^Is_Word_Break=Katakana}', "");
-    Expect(1, 110952, '\P{Is_Word_Break=Katakana}', "");
-    Expect(0, 110952, '\P{^Is_Word_Break=Katakana}', "");
-    Error('\p{Is_WB: _:=KA}');
-    Error('\P{Is_WB: _:=KA}');
+    Expect(1, 110951, '\p{WB=	 KA}', "");
+    Expect(0, 110951, '\p{^WB=	 KA}', "");
+    Expect(0, 110951, '\P{WB=	 KA}', "");
+    Expect(1, 110951, '\P{^WB=	 KA}', "");
+    Expect(0, 110952, '\p{WB=	 KA}', "");
+    Expect(1, 110952, '\p{^WB=	 KA}', "");
+    Expect(1, 110952, '\P{WB=	 KA}', "");
+    Expect(0, 110952, '\P{^WB=	 KA}', "");
+    Error('\p{Is_Word_Break:		:=Katakana}');
+    Error('\P{Is_Word_Break:		:=Katakana}');
+    Expect(1, 110951, '\p{Is_Word_Break=katakana}', "");
+    Expect(0, 110951, '\p{^Is_Word_Break=katakana}', "");
+    Expect(0, 110951, '\P{Is_Word_Break=katakana}', "");
+    Expect(1, 110951, '\P{^Is_Word_Break=katakana}', "");
+    Expect(0, 110952, '\p{Is_Word_Break=katakana}', "");
+    Expect(1, 110952, '\p{^Is_Word_Break=katakana}', "");
+    Expect(1, 110952, '\P{Is_Word_Break=katakana}', "");
+    Expect(0, 110952, '\P{^Is_Word_Break=katakana}', "");
+    Expect(1, 110951, '\p{Is_Word_Break=	Katakana}', "");
+    Expect(0, 110951, '\p{^Is_Word_Break=	Katakana}', "");
+    Expect(0, 110951, '\P{Is_Word_Break=	Katakana}', "");
+    Expect(1, 110951, '\P{^Is_Word_Break=	Katakana}', "");
+    Expect(0, 110952, '\p{Is_Word_Break=	Katakana}', "");
+    Expect(1, 110952, '\p{^Is_Word_Break=	Katakana}', "");
+    Expect(1, 110952, '\P{Is_Word_Break=	Katakana}', "");
+    Expect(0, 110952, '\P{^Is_Word_Break=	Katakana}', "");
+    Error('\p{Is_WB= KA:=}');
+    Error('\P{Is_WB= KA:=}');
     Expect(1, 110951, '\p{Is_WB=ka}', "");
     Expect(0, 110951, '\p{^Is_WB=ka}', "");
     Expect(0, 110951, '\P{Is_WB=ka}', "");
@@ -156405,16 +157869,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 110952, '\p{^Is_WB=ka}', "");
     Expect(1, 110952, '\P{Is_WB=ka}', "");
     Expect(0, 110952, '\P{^Is_WB=ka}', "");
-    Expect(1, 110951, '\p{Is_WB:-KA}', "");
-    Expect(0, 110951, '\p{^Is_WB:-KA}', "");
-    Expect(0, 110951, '\P{Is_WB:-KA}', "");
-    Expect(1, 110951, '\P{^Is_WB:-KA}', "");
-    Expect(0, 110952, '\p{Is_WB:-KA}', "");
-    Expect(1, 110952, '\p{^Is_WB:-KA}', "");
-    Expect(1, 110952, '\P{Is_WB:-KA}', "");
-    Expect(0, 110952, '\P{^Is_WB:-KA}', "");
-    Error('\p{Word_Break=:=	 ALETTER}');
-    Error('\P{Word_Break=:=	 ALETTER}');
+    Expect(1, 110951, '\p{Is_WB=-	KA}', "");
+    Expect(0, 110951, '\p{^Is_WB=-	KA}', "");
+    Expect(0, 110951, '\P{Is_WB=-	KA}', "");
+    Expect(1, 110951, '\P{^Is_WB=-	KA}', "");
+    Expect(0, 110952, '\p{Is_WB=-	KA}', "");
+    Expect(1, 110952, '\p{^Is_WB=-	KA}', "");
+    Expect(1, 110952, '\P{Is_WB=-	KA}', "");
+    Expect(0, 110952, '\P{^Is_WB=-	KA}', "");
+    Error('\p{Word_Break= _ALetter:=}');
+    Error('\P{Word_Break= _ALetter:=}');
     Expect(1, 127369, '\p{Word_Break=:\AALetter\z:}', "");;
     Expect(0, 127370, '\p{Word_Break=:\AALetter\z:}', "");;
     Expect(1, 127369, '\p{Word_Break=aletter}', "");
@@ -156427,16 +157891,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127370, '\P{^Word_Break=aletter}', "");
     Expect(1, 127369, '\p{Word_Break=:\Aaletter\z:}', "");;
     Expect(0, 127370, '\p{Word_Break=:\Aaletter\z:}', "");;
-    Expect(1, 127369, '\p{Word_Break=_ ALETTER}', "");
-    Expect(0, 127369, '\p{^Word_Break=_ ALETTER}', "");
-    Expect(0, 127369, '\P{Word_Break=_ ALETTER}', "");
-    Expect(1, 127369, '\P{^Word_Break=_ ALETTER}', "");
-    Expect(0, 127370, '\p{Word_Break=_ ALETTER}', "");
-    Expect(1, 127370, '\p{^Word_Break=_ ALETTER}', "");
-    Expect(1, 127370, '\P{Word_Break=_ ALETTER}', "");
-    Expect(0, 127370, '\P{^Word_Break=_ ALETTER}', "");
-    Error('\p{WB=-:=LE}');
-    Error('\P{WB=-:=LE}');
+    Expect(1, 127369, '\p{Word_Break=	ALetter}', "");
+    Expect(0, 127369, '\p{^Word_Break=	ALetter}', "");
+    Expect(0, 127369, '\P{Word_Break=	ALetter}', "");
+    Expect(1, 127369, '\P{^Word_Break=	ALetter}', "");
+    Expect(0, 127370, '\p{Word_Break=	ALetter}', "");
+    Expect(1, 127370, '\p{^Word_Break=	ALetter}', "");
+    Expect(1, 127370, '\P{Word_Break=	ALetter}', "");
+    Expect(0, 127370, '\P{^Word_Break=	ALetter}', "");
+    Error('\p{WB=/a/le}');
+    Error('\P{WB=/a/le}');
     Expect(1, 127369, '\p{WB=:\ALE\z:}', "");;
     Expect(0, 127370, '\p{WB=:\ALE\z:}', "");;
     Expect(1, 127369, '\p{WB=le}', "");
@@ -156449,16 +157913,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127370, '\P{^WB=le}', "");
     Expect(1, 127369, '\p{WB=:\Ale\z:}', "");;
     Expect(0, 127370, '\p{WB=:\Ale\z:}', "");;
-    Expect(1, 127369, '\p{WB:    -le}', "");
-    Expect(0, 127369, '\p{^WB:    -le}', "");
-    Expect(0, 127369, '\P{WB:    -le}', "");
-    Expect(1, 127369, '\P{^WB:    -le}', "");
-    Expect(0, 127370, '\p{WB:    -le}', "");
-    Expect(1, 127370, '\p{^WB:    -le}', "");
-    Expect(1, 127370, '\P{WB:    -le}', "");
-    Expect(0, 127370, '\P{^WB:    -le}', "");
-    Error('\p{Is_Word_Break=-	ALETTER:=}');
-    Error('\P{Is_Word_Break=-	ALETTER:=}');
+    Expect(1, 127369, '\p{WB= LE}', "");
+    Expect(0, 127369, '\p{^WB= LE}', "");
+    Expect(0, 127369, '\P{WB= LE}', "");
+    Expect(1, 127369, '\P{^WB= LE}', "");
+    Expect(0, 127370, '\p{WB= LE}', "");
+    Expect(1, 127370, '\p{^WB= LE}', "");
+    Expect(1, 127370, '\P{WB= LE}', "");
+    Expect(0, 127370, '\P{^WB= LE}', "");
+    Error('\p{Is_Word_Break:	_ALetter/a/}');
+    Error('\P{Is_Word_Break:	_ALetter/a/}');
     Expect(1, 127369, '\p{Is_Word_Break=aletter}', "");
     Expect(0, 127369, '\p{^Is_Word_Break=aletter}', "");
     Expect(0, 127369, '\P{Is_Word_Break=aletter}', "");
@@ -156467,34 +157931,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127370, '\p{^Is_Word_Break=aletter}', "");
     Expect(1, 127370, '\P{Is_Word_Break=aletter}', "");
     Expect(0, 127370, '\P{^Is_Word_Break=aletter}', "");
-    Expect(1, 127369, '\p{Is_Word_Break= ALETTER}', "");
-    Expect(0, 127369, '\p{^Is_Word_Break= ALETTER}', "");
-    Expect(0, 127369, '\P{Is_Word_Break= ALETTER}', "");
-    Expect(1, 127369, '\P{^Is_Word_Break= ALETTER}', "");
-    Expect(0, 127370, '\p{Is_Word_Break= ALETTER}', "");
-    Expect(1, 127370, '\p{^Is_Word_Break= ALETTER}', "");
-    Expect(1, 127370, '\P{Is_Word_Break= ALETTER}', "");
-    Expect(0, 127370, '\P{^Is_Word_Break= ALETTER}', "");
-    Error('\p{Is_WB=/a/_	LE}');
-    Error('\P{Is_WB=/a/_	LE}');
-    Expect(1, 127369, '\p{Is_WB=le}', "");
-    Expect(0, 127369, '\p{^Is_WB=le}', "");
-    Expect(0, 127369, '\P{Is_WB=le}', "");
-    Expect(1, 127369, '\P{^Is_WB=le}', "");
-    Expect(0, 127370, '\p{Is_WB=le}', "");
-    Expect(1, 127370, '\p{^Is_WB=le}', "");
-    Expect(1, 127370, '\P{Is_WB=le}', "");
-    Expect(0, 127370, '\P{^Is_WB=le}', "");
-    Expect(1, 127369, '\p{Is_WB=-LE}', "");
-    Expect(0, 127369, '\p{^Is_WB=-LE}', "");
-    Expect(0, 127369, '\P{Is_WB=-LE}', "");
-    Expect(1, 127369, '\P{^Is_WB=-LE}', "");
-    Expect(0, 127370, '\p{Is_WB=-LE}', "");
-    Expect(1, 127370, '\p{^Is_WB=-LE}', "");
-    Expect(1, 127370, '\P{Is_WB=-LE}', "");
-    Expect(0, 127370, '\P{^Is_WB=-LE}', "");
-    Error('\p{Word_Break=/a/ LF}');
-    Error('\P{Word_Break=/a/ LF}');
+    Expect(1, 127369, '\p{Is_Word_Break=_-aletter}', "");
+    Expect(0, 127369, '\p{^Is_Word_Break=_-aletter}', "");
+    Expect(0, 127369, '\P{Is_Word_Break=_-aletter}', "");
+    Expect(1, 127369, '\P{^Is_Word_Break=_-aletter}', "");
+    Expect(0, 127370, '\p{Is_Word_Break=_-aletter}', "");
+    Expect(1, 127370, '\p{^Is_Word_Break=_-aletter}', "");
+    Expect(1, 127370, '\P{Is_Word_Break=_-aletter}', "");
+    Expect(0, 127370, '\P{^Is_Word_Break=_-aletter}', "");
+    Error('\p{Is_WB=-	LE/a/}');
+    Error('\P{Is_WB=-	LE/a/}');
+    Expect(1, 127369, '\p{Is_WB:le}', "");
+    Expect(0, 127369, '\p{^Is_WB:le}', "");
+    Expect(0, 127369, '\P{Is_WB:le}', "");
+    Expect(1, 127369, '\P{^Is_WB:le}', "");
+    Expect(0, 127370, '\p{Is_WB:le}', "");
+    Expect(1, 127370, '\p{^Is_WB:le}', "");
+    Expect(1, 127370, '\P{Is_WB:le}', "");
+    Expect(0, 127370, '\P{^Is_WB:le}', "");
+    Expect(1, 127369, '\p{Is_WB=_ le}', "");
+    Expect(0, 127369, '\p{^Is_WB=_ le}', "");
+    Expect(0, 127369, '\P{Is_WB=_ le}', "");
+    Expect(1, 127369, '\P{^Is_WB=_ le}', "");
+    Expect(0, 127370, '\p{Is_WB=_ le}', "");
+    Expect(1, 127370, '\p{^Is_WB=_ le}', "");
+    Expect(1, 127370, '\P{Is_WB=_ le}', "");
+    Expect(0, 127370, '\P{^Is_WB=_ le}', "");
+    Error('\p{Word_Break=	:=LF}');
+    Error('\P{Word_Break=	:=LF}');
     Expect(1, 10, '\p{Word_Break=:\ALF\z:}', "");;
     Expect(0, 11, '\p{Word_Break=:\ALF\z:}', "");;
     Expect(1, 10, '\p{Word_Break=lf}', "");
@@ -156507,56 +157971,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 11, '\P{^Word_Break=lf}', "");
     Expect(1, 10, '\p{Word_Break=:\Alf\z:}', "");;
     Expect(0, 11, '\p{Word_Break=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{Word_Break=  lf}', "");
-    Expect(0, 10, '\p{^Word_Break=  lf}', "");
-    Expect(0, 10, '\P{Word_Break=  lf}', "");
-    Expect(1, 10, '\P{^Word_Break=  lf}', "");
-    Expect(0, 11, '\p{Word_Break=  lf}', "");
-    Expect(1, 11, '\p{^Word_Break=  lf}', "");
-    Expect(1, 11, '\P{Word_Break=  lf}', "");
-    Expect(0, 11, '\P{^Word_Break=  lf}', "");
-    Error('\p{WB=_LF/a/}');
-    Error('\P{WB=_LF/a/}');
+    Expect(1, 10, '\p{Word_Break:  lf}', "");
+    Expect(0, 10, '\p{^Word_Break:  lf}', "");
+    Expect(0, 10, '\P{Word_Break:  lf}', "");
+    Expect(1, 10, '\P{^Word_Break:  lf}', "");
+    Expect(0, 11, '\p{Word_Break:  lf}', "");
+    Expect(1, 11, '\p{^Word_Break:  lf}', "");
+    Expect(1, 11, '\P{Word_Break:  lf}', "");
+    Expect(0, 11, '\P{^Word_Break:  lf}', "");
+    Error('\p{WB=:=__LF}');
+    Error('\P{WB=:=__LF}');
     Expect(1, 10, '\p{WB=:\ALF\z:}', "");;
     Expect(0, 11, '\p{WB=:\ALF\z:}', "");;
-    Expect(1, 10, '\p{WB:lf}', "");
-    Expect(0, 10, '\p{^WB:lf}', "");
-    Expect(0, 10, '\P{WB:lf}', "");
-    Expect(1, 10, '\P{^WB:lf}', "");
-    Expect(0, 11, '\p{WB:lf}', "");
-    Expect(1, 11, '\p{^WB:lf}', "");
-    Expect(1, 11, '\P{WB:lf}', "");
-    Expect(0, 11, '\P{^WB:lf}', "");
+    Expect(1, 10, '\p{WB=lf}', "");
+    Expect(0, 10, '\p{^WB=lf}', "");
+    Expect(0, 10, '\P{WB=lf}', "");
+    Expect(1, 10, '\P{^WB=lf}', "");
+    Expect(0, 11, '\p{WB=lf}', "");
+    Expect(1, 11, '\p{^WB=lf}', "");
+    Expect(1, 11, '\P{WB=lf}', "");
+    Expect(0, 11, '\P{^WB=lf}', "");
     Expect(1, 10, '\p{WB=:\Alf\z:}', "");;
     Expect(0, 11, '\p{WB=:\Alf\z:}', "");;
-    Expect(1, 10, '\p{WB=_-LF}', "");
-    Expect(0, 10, '\p{^WB=_-LF}', "");
-    Expect(0, 10, '\P{WB=_-LF}', "");
-    Expect(1, 10, '\P{^WB=_-LF}', "");
-    Expect(0, 11, '\p{WB=_-LF}', "");
-    Expect(1, 11, '\p{^WB=_-LF}', "");
-    Expect(1, 11, '\P{WB=_-LF}', "");
-    Expect(0, 11, '\P{^WB=_-LF}', "");
-    Error('\p{Is_Word_Break=  LF/a/}');
-    Error('\P{Is_Word_Break=  LF/a/}');
-    Expect(1, 10, '\p{Is_Word_Break=lf}', "");
-    Expect(0, 10, '\p{^Is_Word_Break=lf}', "");
-    Expect(0, 10, '\P{Is_Word_Break=lf}', "");
-    Expect(1, 10, '\P{^Is_Word_Break=lf}', "");
-    Expect(0, 11, '\p{Is_Word_Break=lf}', "");
-    Expect(1, 11, '\p{^Is_Word_Break=lf}', "");
-    Expect(1, 11, '\P{Is_Word_Break=lf}', "");
-    Expect(0, 11, '\P{^Is_Word_Break=lf}', "");
-    Expect(1, 10, '\p{Is_Word_Break=-	LF}', "");
-    Expect(0, 10, '\p{^Is_Word_Break=-	LF}', "");
-    Expect(0, 10, '\P{Is_Word_Break=-	LF}', "");
-    Expect(1, 10, '\P{^Is_Word_Break=-	LF}', "");
-    Expect(0, 11, '\p{Is_Word_Break=-	LF}', "");
-    Expect(1, 11, '\p{^Is_Word_Break=-	LF}', "");
-    Expect(1, 11, '\P{Is_Word_Break=-	LF}', "");
-    Expect(0, 11, '\P{^Is_Word_Break=-	LF}', "");
-    Error('\p{Is_WB=_/a/LF}');
-    Error('\P{Is_WB=_/a/LF}');
+    Expect(1, 10, '\p{WB=-	LF}', "");
+    Expect(0, 10, '\p{^WB=-	LF}', "");
+    Expect(0, 10, '\P{WB=-	LF}', "");
+    Expect(1, 10, '\P{^WB=-	LF}', "");
+    Expect(0, 11, '\p{WB=-	LF}', "");
+    Expect(1, 11, '\p{^WB=-	LF}', "");
+    Expect(1, 11, '\P{WB=-	LF}', "");
+    Expect(0, 11, '\P{^WB=-	LF}', "");
+    Error('\p{Is_Word_Break=__LF:=}');
+    Error('\P{Is_Word_Break=__LF:=}');
+    Expect(1, 10, '\p{Is_Word_Break:	lf}', "");
+    Expect(0, 10, '\p{^Is_Word_Break:	lf}', "");
+    Expect(0, 10, '\P{Is_Word_Break:	lf}', "");
+    Expect(1, 10, '\P{^Is_Word_Break:	lf}', "");
+    Expect(0, 11, '\p{Is_Word_Break:	lf}', "");
+    Expect(1, 11, '\p{^Is_Word_Break:	lf}', "");
+    Expect(1, 11, '\P{Is_Word_Break:	lf}', "");
+    Expect(0, 11, '\P{^Is_Word_Break:	lf}', "");
+    Expect(1, 10, '\p{Is_Word_Break= 	lf}', "");
+    Expect(0, 10, '\p{^Is_Word_Break= 	lf}', "");
+    Expect(0, 10, '\P{Is_Word_Break= 	lf}', "");
+    Expect(1, 10, '\P{^Is_Word_Break= 	lf}', "");
+    Expect(0, 11, '\p{Is_Word_Break= 	lf}', "");
+    Expect(1, 11, '\p{^Is_Word_Break= 	lf}', "");
+    Expect(1, 11, '\P{Is_Word_Break= 	lf}', "");
+    Expect(0, 11, '\P{^Is_Word_Break= 	lf}', "");
+    Error('\p{Is_WB=_:=LF}');
+    Error('\P{Is_WB=_:=LF}');
     Expect(1, 10, '\p{Is_WB=lf}', "");
     Expect(0, 10, '\p{^Is_WB=lf}', "");
     Expect(0, 10, '\P{Is_WB=lf}', "");
@@ -156565,16 +158029,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 11, '\p{^Is_WB=lf}', "");
     Expect(1, 11, '\P{Is_WB=lf}', "");
     Expect(0, 11, '\P{^Is_WB=lf}', "");
-    Expect(1, 10, '\p{Is_WB=__lf}', "");
-    Expect(0, 10, '\p{^Is_WB=__lf}', "");
-    Expect(0, 10, '\P{Is_WB=__lf}', "");
-    Expect(1, 10, '\P{^Is_WB=__lf}', "");
-    Expect(0, 11, '\p{Is_WB=__lf}', "");
-    Expect(1, 11, '\p{^Is_WB=__lf}', "");
-    Expect(1, 11, '\P{Is_WB=__lf}', "");
-    Expect(0, 11, '\P{^Is_WB=__lf}', "");
-    Error('\p{Word_Break=	/a/MIDNUMLET}');
-    Error('\P{Word_Break=	/a/MIDNUMLET}');
+    Expect(1, 10, '\p{Is_WB:   	lf}', "");
+    Expect(0, 10, '\p{^Is_WB:   	lf}', "");
+    Expect(0, 10, '\P{Is_WB:   	lf}', "");
+    Expect(1, 10, '\P{^Is_WB:   	lf}', "");
+    Expect(0, 11, '\p{Is_WB:   	lf}', "");
+    Expect(1, 11, '\p{^Is_WB:   	lf}', "");
+    Expect(1, 11, '\P{Is_WB:   	lf}', "");
+    Expect(0, 11, '\P{^Is_WB:   	lf}', "");
+    Error('\p{Word_Break= MidNumLet/a/}');
+    Error('\P{Word_Break= MidNumLet/a/}');
     Expect(1, 65294, '\p{Word_Break=:\AMidNumLet\z:}', "");;
     Expect(0, 65295, '\p{Word_Break=:\AMidNumLet\z:}', "");;
     Expect(1, 65294, '\p{Word_Break=midnumlet}', "");
@@ -156587,16 +158051,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65295, '\P{^Word_Break=midnumlet}', "");
     Expect(1, 65294, '\p{Word_Break=:\Amidnumlet\z:}', "");;
     Expect(0, 65295, '\p{Word_Break=:\Amidnumlet\z:}', "");;
-    Expect(1, 65294, '\p{Word_Break=__MidNumLet}', "");
-    Expect(0, 65294, '\p{^Word_Break=__MidNumLet}', "");
-    Expect(0, 65294, '\P{Word_Break=__MidNumLet}', "");
-    Expect(1, 65294, '\P{^Word_Break=__MidNumLet}', "");
-    Expect(0, 65295, '\p{Word_Break=__MidNumLet}', "");
-    Expect(1, 65295, '\p{^Word_Break=__MidNumLet}', "");
-    Expect(1, 65295, '\P{Word_Break=__MidNumLet}', "");
-    Expect(0, 65295, '\P{^Word_Break=__MidNumLet}', "");
-    Error('\p{WB=_/a/MB}');
-    Error('\P{WB=_/a/MB}');
+    Expect(1, 65294, '\p{Word_Break= -midnumlet}', "");
+    Expect(0, 65294, '\p{^Word_Break= -midnumlet}', "");
+    Expect(0, 65294, '\P{Word_Break= -midnumlet}', "");
+    Expect(1, 65294, '\P{^Word_Break= -midnumlet}', "");
+    Expect(0, 65295, '\p{Word_Break= -midnumlet}', "");
+    Expect(1, 65295, '\p{^Word_Break= -midnumlet}', "");
+    Expect(1, 65295, '\P{Word_Break= -midnumlet}', "");
+    Expect(0, 65295, '\P{^Word_Break= -midnumlet}', "");
+    Error('\p{WB= MB:=}');
+    Error('\P{WB= MB:=}');
     Expect(1, 65294, '\p{WB=:\AMB\z:}', "");;
     Expect(0, 65295, '\p{WB=:\AMB\z:}', "");;
     Expect(1, 65294, '\p{WB=mb}', "");
@@ -156609,16 +158073,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65295, '\P{^WB=mb}', "");
     Expect(1, 65294, '\p{WB=:\Amb\z:}', "");;
     Expect(0, 65295, '\p{WB=:\Amb\z:}', "");;
-    Expect(1, 65294, '\p{WB=	 mb}', "");
-    Expect(0, 65294, '\p{^WB=	 mb}', "");
-    Expect(0, 65294, '\P{WB=	 mb}', "");
-    Expect(1, 65294, '\P{^WB=	 mb}', "");
-    Expect(0, 65295, '\p{WB=	 mb}', "");
-    Expect(1, 65295, '\p{^WB=	 mb}', "");
-    Expect(1, 65295, '\P{WB=	 mb}', "");
-    Expect(0, 65295, '\P{^WB=	 mb}', "");
-    Error('\p{Is_Word_Break=	 MIDNUMLET/a/}');
-    Error('\P{Is_Word_Break=	 MIDNUMLET/a/}');
+    Expect(1, 65294, '\p{WB= -MB}', "");
+    Expect(0, 65294, '\p{^WB= -MB}', "");
+    Expect(0, 65294, '\P{WB= -MB}', "");
+    Expect(1, 65294, '\P{^WB= -MB}', "");
+    Expect(0, 65295, '\p{WB= -MB}', "");
+    Expect(1, 65295, '\p{^WB= -MB}', "");
+    Expect(1, 65295, '\P{WB= -MB}', "");
+    Expect(0, 65295, '\P{^WB= -MB}', "");
+    Error('\p{Is_Word_Break=_MIDNUMLET/a/}');
+    Error('\P{Is_Word_Break=_MIDNUMLET/a/}');
     Expect(1, 65294, '\p{Is_Word_Break=midnumlet}', "");
     Expect(0, 65294, '\p{^Is_Word_Break=midnumlet}', "");
     Expect(0, 65294, '\P{Is_Word_Break=midnumlet}', "");
@@ -156627,16 +158091,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65295, '\p{^Is_Word_Break=midnumlet}', "");
     Expect(1, 65295, '\P{Is_Word_Break=midnumlet}', "");
     Expect(0, 65295, '\P{^Is_Word_Break=midnumlet}', "");
-    Expect(1, 65294, '\p{Is_Word_Break=	_MidNumLet}', "");
-    Expect(0, 65294, '\p{^Is_Word_Break=	_MidNumLet}', "");
-    Expect(0, 65294, '\P{Is_Word_Break=	_MidNumLet}', "");
-    Expect(1, 65294, '\P{^Is_Word_Break=	_MidNumLet}', "");
-    Expect(0, 65295, '\p{Is_Word_Break=	_MidNumLet}', "");
-    Expect(1, 65295, '\p{^Is_Word_Break=	_MidNumLet}', "");
-    Expect(1, 65295, '\P{Is_Word_Break=	_MidNumLet}', "");
-    Expect(0, 65295, '\P{^Is_Word_Break=	_MidNumLet}', "");
-    Error('\p{Is_WB=/a/  MB}');
-    Error('\P{Is_WB=/a/  MB}');
+    Expect(1, 65294, '\p{Is_Word_Break= _MidNumLet}', "");
+    Expect(0, 65294, '\p{^Is_Word_Break= _MidNumLet}', "");
+    Expect(0, 65294, '\P{Is_Word_Break= _MidNumLet}', "");
+    Expect(1, 65294, '\P{^Is_Word_Break= _MidNumLet}', "");
+    Expect(0, 65295, '\p{Is_Word_Break= _MidNumLet}', "");
+    Expect(1, 65295, '\p{^Is_Word_Break= _MidNumLet}', "");
+    Expect(1, 65295, '\P{Is_Word_Break= _MidNumLet}', "");
+    Expect(0, 65295, '\P{^Is_Word_Break= _MidNumLet}', "");
+    Error('\p{Is_WB:   /a/MB}');
+    Error('\P{Is_WB:   /a/MB}');
     Expect(1, 65294, '\p{Is_WB=mb}', "");
     Expect(0, 65294, '\p{^Is_WB=mb}', "");
     Expect(0, 65294, '\P{Is_WB=mb}', "");
@@ -156645,38 +158109,38 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65295, '\p{^Is_WB=mb}', "");
     Expect(1, 65295, '\P{Is_WB=mb}', "");
     Expect(0, 65295, '\P{^Is_WB=mb}', "");
-    Expect(1, 65294, '\p{Is_WB=	-MB}', "");
-    Expect(0, 65294, '\p{^Is_WB=	-MB}', "");
-    Expect(0, 65294, '\P{Is_WB=	-MB}', "");
-    Expect(1, 65294, '\P{^Is_WB=	-MB}', "");
-    Expect(0, 65295, '\p{Is_WB=	-MB}', "");
-    Expect(1, 65295, '\p{^Is_WB=	-MB}', "");
-    Expect(1, 65295, '\P{Is_WB=	-MB}', "");
-    Expect(0, 65295, '\P{^Is_WB=	-MB}', "");
-    Error('\p{Word_Break=:=	 MIDLETTER}');
-    Error('\P{Word_Break=:=	 MIDLETTER}');
+    Expect(1, 65294, '\p{Is_WB= -mb}', "");
+    Expect(0, 65294, '\p{^Is_WB= -mb}', "");
+    Expect(0, 65294, '\P{Is_WB= -mb}', "");
+    Expect(1, 65294, '\P{^Is_WB= -mb}', "");
+    Expect(0, 65295, '\p{Is_WB= -mb}', "");
+    Expect(1, 65295, '\p{^Is_WB= -mb}', "");
+    Expect(1, 65295, '\P{Is_WB= -mb}', "");
+    Expect(0, 65295, '\P{^Is_WB= -mb}', "");
+    Error('\p{Word_Break=/a/__MIDLETTER}');
+    Error('\P{Word_Break=/a/__MIDLETTER}');
     Expect(1, 65306, '\p{Word_Break=:\AMidLetter\z:}', "");;
     Expect(0, 65307, '\p{Word_Break=:\AMidLetter\z:}', "");;
-    Expect(1, 65306, '\p{Word_Break:	midletter}', "");
-    Expect(0, 65306, '\p{^Word_Break:	midletter}', "");
-    Expect(0, 65306, '\P{Word_Break:	midletter}', "");
-    Expect(1, 65306, '\P{^Word_Break:	midletter}', "");
-    Expect(0, 65307, '\p{Word_Break:	midletter}', "");
-    Expect(1, 65307, '\p{^Word_Break:	midletter}', "");
-    Expect(1, 65307, '\P{Word_Break:	midletter}', "");
-    Expect(0, 65307, '\P{^Word_Break:	midletter}', "");
+    Expect(1, 65306, '\p{Word_Break=midletter}', "");
+    Expect(0, 65306, '\p{^Word_Break=midletter}', "");
+    Expect(0, 65306, '\P{Word_Break=midletter}', "");
+    Expect(1, 65306, '\P{^Word_Break=midletter}', "");
+    Expect(0, 65307, '\p{Word_Break=midletter}', "");
+    Expect(1, 65307, '\p{^Word_Break=midletter}', "");
+    Expect(1, 65307, '\P{Word_Break=midletter}', "");
+    Expect(0, 65307, '\P{^Word_Break=midletter}', "");
     Expect(1, 65306, '\p{Word_Break=:\Amidletter\z:}', "");;
     Expect(0, 65307, '\p{Word_Break=:\Amidletter\z:}', "");;
-    Expect(1, 65306, '\p{Word_Break=	MIDLETTER}', "");
-    Expect(0, 65306, '\p{^Word_Break=	MIDLETTER}', "");
-    Expect(0, 65306, '\P{Word_Break=	MIDLETTER}', "");
-    Expect(1, 65306, '\P{^Word_Break=	MIDLETTER}', "");
-    Expect(0, 65307, '\p{Word_Break=	MIDLETTER}', "");
-    Expect(1, 65307, '\p{^Word_Break=	MIDLETTER}', "");
-    Expect(1, 65307, '\P{Word_Break=	MIDLETTER}', "");
-    Expect(0, 65307, '\P{^Word_Break=	MIDLETTER}', "");
-    Error('\p{WB=-_ML:=}');
-    Error('\P{WB=-_ML:=}');
+    Expect(1, 65306, '\p{Word_Break=-_MidLetter}', "");
+    Expect(0, 65306, '\p{^Word_Break=-_MidLetter}', "");
+    Expect(0, 65306, '\P{Word_Break=-_MidLetter}', "");
+    Expect(1, 65306, '\P{^Word_Break=-_MidLetter}', "");
+    Expect(0, 65307, '\p{Word_Break=-_MidLetter}', "");
+    Expect(1, 65307, '\p{^Word_Break=-_MidLetter}', "");
+    Expect(1, 65307, '\P{Word_Break=-_MidLetter}', "");
+    Expect(0, 65307, '\P{^Word_Break=-_MidLetter}', "");
+    Error('\p{WB= ML:=}');
+    Error('\P{WB= ML:=}');
     Expect(1, 65306, '\p{WB=:\AML\z:}', "");;
     Expect(0, 65307, '\p{WB=:\AML\z:}', "");;
     Expect(1, 65306, '\p{WB=ml}', "");
@@ -156689,16 +158153,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65307, '\P{^WB=ml}', "");
     Expect(1, 65306, '\p{WB=:\Aml\z:}', "");;
     Expect(0, 65307, '\p{WB=:\Aml\z:}', "");;
-    Expect(1, 65306, '\p{WB= _ml}', "");
-    Expect(0, 65306, '\p{^WB= _ml}', "");
-    Expect(0, 65306, '\P{WB= _ml}', "");
-    Expect(1, 65306, '\P{^WB= _ml}', "");
-    Expect(0, 65307, '\p{WB= _ml}', "");
-    Expect(1, 65307, '\p{^WB= _ml}', "");
-    Expect(1, 65307, '\P{WB= _ml}', "");
-    Expect(0, 65307, '\P{^WB= _ml}', "");
-    Error('\p{Is_Word_Break=/a/	MidLetter}');
-    Error('\P{Is_Word_Break=/a/	MidLetter}');
+    Expect(1, 65306, '\p{WB=_	ML}', "");
+    Expect(0, 65306, '\p{^WB=_	ML}', "");
+    Expect(0, 65306, '\P{WB=_	ML}', "");
+    Expect(1, 65306, '\P{^WB=_	ML}', "");
+    Expect(0, 65307, '\p{WB=_	ML}', "");
+    Expect(1, 65307, '\p{^WB=_	ML}', "");
+    Expect(1, 65307, '\P{WB=_	ML}', "");
+    Expect(0, 65307, '\P{^WB=_	ML}', "");
+    Error('\p{Is_Word_Break=-	MIDLETTER/a/}');
+    Error('\P{Is_Word_Break=-	MIDLETTER/a/}');
     Expect(1, 65306, '\p{Is_Word_Break=midletter}', "");
     Expect(0, 65306, '\p{^Is_Word_Break=midletter}', "");
     Expect(0, 65306, '\P{Is_Word_Break=midletter}', "");
@@ -156707,34 +158171,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65307, '\p{^Is_Word_Break=midletter}', "");
     Expect(1, 65307, '\P{Is_Word_Break=midletter}', "");
     Expect(0, 65307, '\P{^Is_Word_Break=midletter}', "");
-    Expect(1, 65306, '\p{Is_Word_Break:	_-MidLetter}', "");
-    Expect(0, 65306, '\p{^Is_Word_Break:	_-MidLetter}', "");
-    Expect(0, 65306, '\P{Is_Word_Break:	_-MidLetter}', "");
-    Expect(1, 65306, '\P{^Is_Word_Break:	_-MidLetter}', "");
-    Expect(0, 65307, '\p{Is_Word_Break:	_-MidLetter}', "");
-    Expect(1, 65307, '\p{^Is_Word_Break:	_-MidLetter}', "");
-    Expect(1, 65307, '\P{Is_Word_Break:	_-MidLetter}', "");
-    Expect(0, 65307, '\P{^Is_Word_Break:	_-MidLetter}', "");
-    Error('\p{Is_WB=  ML:=}');
-    Error('\P{Is_WB=  ML:=}');
-    Expect(1, 65306, '\p{Is_WB=ml}', "");
-    Expect(0, 65306, '\p{^Is_WB=ml}', "");
-    Expect(0, 65306, '\P{Is_WB=ml}', "");
-    Expect(1, 65306, '\P{^Is_WB=ml}', "");
-    Expect(0, 65307, '\p{Is_WB=ml}', "");
-    Expect(1, 65307, '\p{^Is_WB=ml}', "");
-    Expect(1, 65307, '\P{Is_WB=ml}', "");
-    Expect(0, 65307, '\P{^Is_WB=ml}', "");
-    Expect(1, 65306, '\p{Is_WB=__ML}', "");
-    Expect(0, 65306, '\p{^Is_WB=__ML}', "");
-    Expect(0, 65306, '\P{Is_WB=__ML}', "");
-    Expect(1, 65306, '\P{^Is_WB=__ML}', "");
-    Expect(0, 65307, '\p{Is_WB=__ML}', "");
-    Expect(1, 65307, '\p{^Is_WB=__ML}', "");
-    Expect(1, 65307, '\P{Is_WB=__ML}', "");
-    Expect(0, 65307, '\P{^Is_WB=__ML}', "");
-    Error('\p{Word_Break=/a/	-MidNum}');
-    Error('\P{Word_Break=/a/	-MidNum}');
+    Expect(1, 65306, '\p{Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(0, 65306, '\p{^Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(0, 65306, '\P{Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(1, 65306, '\P{^Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(0, 65307, '\p{Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(1, 65307, '\p{^Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(1, 65307, '\P{Is_Word_Break:	 	MIDLETTER}', "");
+    Expect(0, 65307, '\P{^Is_Word_Break:	 	MIDLETTER}', "");
+    Error('\p{Is_WB=:=ML}');
+    Error('\P{Is_WB=:=ML}');
+    Expect(1, 65306, '\p{Is_WB:ml}', "");
+    Expect(0, 65306, '\p{^Is_WB:ml}', "");
+    Expect(0, 65306, '\P{Is_WB:ml}', "");
+    Expect(1, 65306, '\P{^Is_WB:ml}', "");
+    Expect(0, 65307, '\p{Is_WB:ml}', "");
+    Expect(1, 65307, '\p{^Is_WB:ml}', "");
+    Expect(1, 65307, '\P{Is_WB:ml}', "");
+    Expect(0, 65307, '\P{^Is_WB:ml}', "");
+    Expect(1, 65306, '\p{Is_WB=	ML}', "");
+    Expect(0, 65306, '\p{^Is_WB=	ML}', "");
+    Expect(0, 65306, '\P{Is_WB=	ML}', "");
+    Expect(1, 65306, '\P{^Is_WB=	ML}', "");
+    Expect(0, 65307, '\p{Is_WB=	ML}', "");
+    Expect(1, 65307, '\p{^Is_WB=	ML}', "");
+    Expect(1, 65307, '\P{Is_WB=	ML}', "");
+    Expect(0, 65307, '\P{^Is_WB=	ML}', "");
+    Error('\p{Word_Break=		MIDNUM/a/}');
+    Error('\P{Word_Break=		MIDNUM/a/}');
     Expect(1, 65307, '\p{Word_Break=:\AMidNum\z:}', "");;
     Expect(0, 65308, '\p{Word_Break=:\AMidNum\z:}', "");;
     Expect(1, 65307, '\p{Word_Break=midnum}', "");
@@ -156747,16 +158211,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65308, '\P{^Word_Break=midnum}', "");
     Expect(1, 65307, '\p{Word_Break=:\Amidnum\z:}', "");;
     Expect(0, 65308, '\p{Word_Break=:\Amidnum\z:}', "");;
-    Expect(1, 65307, '\p{Word_Break=_MidNum}', "");
-    Expect(0, 65307, '\p{^Word_Break=_MidNum}', "");
-    Expect(0, 65307, '\P{Word_Break=_MidNum}', "");
-    Expect(1, 65307, '\P{^Word_Break=_MidNum}', "");
-    Expect(0, 65308, '\p{Word_Break=_MidNum}', "");
-    Expect(1, 65308, '\p{^Word_Break=_MidNum}', "");
-    Expect(1, 65308, '\P{Word_Break=_MidNum}', "");
-    Expect(0, 65308, '\P{^Word_Break=_MidNum}', "");
-    Error('\p{WB=/a/	_MN}');
-    Error('\P{WB=/a/	_MN}');
+    Expect(1, 65307, '\p{Word_Break=_ MidNum}', "");
+    Expect(0, 65307, '\p{^Word_Break=_ MidNum}', "");
+    Expect(0, 65307, '\P{Word_Break=_ MidNum}', "");
+    Expect(1, 65307, '\P{^Word_Break=_ MidNum}', "");
+    Expect(0, 65308, '\p{Word_Break=_ MidNum}', "");
+    Expect(1, 65308, '\p{^Word_Break=_ MidNum}', "");
+    Expect(1, 65308, '\P{Word_Break=_ MidNum}', "");
+    Expect(0, 65308, '\P{^Word_Break=_ MidNum}', "");
+    Error('\p{WB:	-/a/mn}');
+    Error('\P{WB:	-/a/mn}');
     Expect(1, 65307, '\p{WB=:\AMN\z:}', "");;
     Expect(0, 65308, '\p{WB=:\AMN\z:}', "");;
     Expect(1, 65307, '\p{WB=mn}', "");
@@ -156769,16 +158233,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 65308, '\P{^WB=mn}', "");
     Expect(1, 65307, '\p{WB=:\Amn\z:}', "");;
     Expect(0, 65308, '\p{WB=:\Amn\z:}', "");;
-    Expect(1, 65307, '\p{WB=--MN}', "");
-    Expect(0, 65307, '\p{^WB=--MN}', "");
-    Expect(0, 65307, '\P{WB=--MN}', "");
-    Expect(1, 65307, '\P{^WB=--MN}', "");
-    Expect(0, 65308, '\p{WB=--MN}', "");
-    Expect(1, 65308, '\p{^WB=--MN}', "");
-    Expect(1, 65308, '\P{WB=--MN}', "");
-    Expect(0, 65308, '\P{^WB=--MN}', "");
-    Error('\p{Is_Word_Break=-/a/MidNum}');
-    Error('\P{Is_Word_Break=-/a/MidNum}');
+    Expect(1, 65307, '\p{WB:   _-MN}', "");
+    Expect(0, 65307, '\p{^WB:   _-MN}', "");
+    Expect(0, 65307, '\P{WB:   _-MN}', "");
+    Expect(1, 65307, '\P{^WB:   _-MN}', "");
+    Expect(0, 65308, '\p{WB:   _-MN}', "");
+    Expect(1, 65308, '\p{^WB:   _-MN}', "");
+    Expect(1, 65308, '\P{WB:   _-MN}', "");
+    Expect(0, 65308, '\P{^WB:   _-MN}', "");
+    Error('\p{Is_Word_Break=-:=midnum}');
+    Error('\P{Is_Word_Break=-:=midnum}');
     Expect(1, 65307, '\p{Is_Word_Break=midnum}', "");
     Expect(0, 65307, '\p{^Is_Word_Break=midnum}', "");
     Expect(0, 65307, '\P{Is_Word_Break=midnum}', "");
@@ -156787,34 +158251,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 65308, '\p{^Is_Word_Break=midnum}', "");
     Expect(1, 65308, '\P{Is_Word_Break=midnum}', "");
     Expect(0, 65308, '\P{^Is_Word_Break=midnum}', "");
-    Expect(1, 65307, '\p{Is_Word_Break=--MidNum}', "");
-    Expect(0, 65307, '\p{^Is_Word_Break=--MidNum}', "");
-    Expect(0, 65307, '\P{Is_Word_Break=--MidNum}', "");
-    Expect(1, 65307, '\P{^Is_Word_Break=--MidNum}', "");
-    Expect(0, 65308, '\p{Is_Word_Break=--MidNum}', "");
-    Expect(1, 65308, '\p{^Is_Word_Break=--MidNum}', "");
-    Expect(1, 65308, '\P{Is_Word_Break=--MidNum}', "");
-    Expect(0, 65308, '\P{^Is_Word_Break=--MidNum}', "");
-    Error('\p{Is_WB=--MN/a/}');
-    Error('\P{Is_WB=--MN/a/}');
-    Expect(1, 65307, '\p{Is_WB=mn}', "");
-    Expect(0, 65307, '\p{^Is_WB=mn}', "");
-    Expect(0, 65307, '\P{Is_WB=mn}', "");
-    Expect(1, 65307, '\P{^Is_WB=mn}', "");
-    Expect(0, 65308, '\p{Is_WB=mn}', "");
-    Expect(1, 65308, '\p{^Is_WB=mn}', "");
-    Expect(1, 65308, '\P{Is_WB=mn}', "");
-    Expect(0, 65308, '\P{^Is_WB=mn}', "");
-    Expect(1, 65307, '\p{Is_WB= 	MN}', "");
-    Expect(0, 65307, '\p{^Is_WB= 	MN}', "");
-    Expect(0, 65307, '\P{Is_WB= 	MN}', "");
-    Expect(1, 65307, '\P{^Is_WB= 	MN}', "");
-    Expect(0, 65308, '\p{Is_WB= 	MN}', "");
-    Expect(1, 65308, '\p{^Is_WB= 	MN}', "");
-    Expect(1, 65308, '\P{Is_WB= 	MN}', "");
-    Expect(0, 65308, '\P{^Is_WB= 	MN}', "");
-    Error('\p{Word_Break= NEWLINE/a/}');
-    Error('\P{Word_Break= NEWLINE/a/}');
+    Expect(1, 65307, '\p{Is_Word_Break=  MidNum}', "");
+    Expect(0, 65307, '\p{^Is_Word_Break=  MidNum}', "");
+    Expect(0, 65307, '\P{Is_Word_Break=  MidNum}', "");
+    Expect(1, 65307, '\P{^Is_Word_Break=  MidNum}', "");
+    Expect(0, 65308, '\p{Is_Word_Break=  MidNum}', "");
+    Expect(1, 65308, '\p{^Is_Word_Break=  MidNum}', "");
+    Expect(1, 65308, '\P{Is_Word_Break=  MidNum}', "");
+    Expect(0, 65308, '\P{^Is_Word_Break=  MidNum}', "");
+    Error('\p{Is_WB=:=MN}');
+    Error('\P{Is_WB=:=MN}');
+    Expect(1, 65307, '\p{Is_WB:	mn}', "");
+    Expect(0, 65307, '\p{^Is_WB:	mn}', "");
+    Expect(0, 65307, '\P{Is_WB:	mn}', "");
+    Expect(1, 65307, '\P{^Is_WB:	mn}', "");
+    Expect(0, 65308, '\p{Is_WB:	mn}', "");
+    Expect(1, 65308, '\p{^Is_WB:	mn}', "");
+    Expect(1, 65308, '\P{Is_WB:	mn}', "");
+    Expect(0, 65308, '\P{^Is_WB:	mn}', "");
+    Expect(1, 65307, '\p{Is_WB=MN}', "");
+    Expect(0, 65307, '\p{^Is_WB=MN}', "");
+    Expect(0, 65307, '\P{Is_WB=MN}', "");
+    Expect(1, 65307, '\P{^Is_WB=MN}', "");
+    Expect(0, 65308, '\p{Is_WB=MN}', "");
+    Expect(1, 65308, '\p{^Is_WB=MN}', "");
+    Expect(1, 65308, '\P{Is_WB=MN}', "");
+    Expect(0, 65308, '\P{^Is_WB=MN}', "");
+    Error('\p{Word_Break= Newline/a/}');
+    Error('\P{Word_Break= Newline/a/}');
     Expect(1, 8233, '\p{Word_Break=:\ANewline\z:}', "");;
     Expect(0, 8234, '\p{Word_Break=:\ANewline\z:}', "");;
     Expect(1, 8233, '\p{Word_Break=newline}', "");
@@ -156827,16 +158291,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 8234, '\P{^Word_Break=newline}', "");
     Expect(1, 8233, '\p{Word_Break=:\Anewline\z:}', "");;
     Expect(0, 8234, '\p{Word_Break=:\Anewline\z:}', "");;
-    Expect(1, 8233, '\p{Word_Break= NEWLINE}', "");
-    Expect(0, 8233, '\p{^Word_Break= NEWLINE}', "");
-    Expect(0, 8233, '\P{Word_Break= NEWLINE}', "");
-    Expect(1, 8233, '\P{^Word_Break= NEWLINE}', "");
-    Expect(0, 8234, '\p{Word_Break= NEWLINE}', "");
-    Expect(1, 8234, '\p{^Word_Break= NEWLINE}', "");
-    Expect(1, 8234, '\P{Word_Break= NEWLINE}', "");
-    Expect(0, 8234, '\P{^Word_Break= NEWLINE}', "");
-    Error('\p{WB=:=__nl}');
-    Error('\P{WB=:=__nl}');
+    Expect(1, 8233, '\p{Word_Break=	-Newline}', "");
+    Expect(0, 8233, '\p{^Word_Break=	-Newline}', "");
+    Expect(0, 8233, '\P{Word_Break=	-Newline}', "");
+    Expect(1, 8233, '\P{^Word_Break=	-Newline}', "");
+    Expect(0, 8234, '\p{Word_Break=	-Newline}', "");
+    Expect(1, 8234, '\p{^Word_Break=	-Newline}', "");
+    Expect(1, 8234, '\P{Word_Break=	-Newline}', "");
+    Expect(0, 8234, '\P{^Word_Break=	-Newline}', "");
+    Error('\p{WB=/a/_NL}');
+    Error('\P{WB=/a/_NL}');
     Expect(1, 8233, '\p{WB=:\ANL\z:}', "");;
     Expect(0, 8234, '\p{WB=:\ANL\z:}', "");;
     Expect(1, 8233, '\p{WB=nl}', "");
@@ -156849,16 +158313,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 8234, '\P{^WB=nl}', "");
     Expect(1, 8233, '\p{WB=:\Anl\z:}', "");;
     Expect(0, 8234, '\p{WB=:\Anl\z:}', "");;
-    Expect(1, 8233, '\p{WB:   	NL}', "");
-    Expect(0, 8233, '\p{^WB:   	NL}', "");
-    Expect(0, 8233, '\P{WB:   	NL}', "");
-    Expect(1, 8233, '\P{^WB:   	NL}', "");
-    Expect(0, 8234, '\p{WB:   	NL}', "");
-    Expect(1, 8234, '\p{^WB:   	NL}', "");
-    Expect(1, 8234, '\P{WB:   	NL}', "");
-    Expect(0, 8234, '\P{^WB:   	NL}', "");
-    Error('\p{Is_Word_Break= :=Newline}');
-    Error('\P{Is_Word_Break= :=Newline}');
+    Expect(1, 8233, '\p{WB=_NL}', "");
+    Expect(0, 8233, '\p{^WB=_NL}', "");
+    Expect(0, 8233, '\P{WB=_NL}', "");
+    Expect(1, 8233, '\P{^WB=_NL}', "");
+    Expect(0, 8234, '\p{WB=_NL}', "");
+    Expect(1, 8234, '\p{^WB=_NL}', "");
+    Expect(1, 8234, '\P{WB=_NL}', "");
+    Expect(0, 8234, '\P{^WB=_NL}', "");
+    Error('\p{Is_Word_Break=:=- NEWLINE}');
+    Error('\P{Is_Word_Break=:=- NEWLINE}');
     Expect(1, 8233, '\p{Is_Word_Break=newline}', "");
     Expect(0, 8233, '\p{^Is_Word_Break=newline}', "");
     Expect(0, 8233, '\P{Is_Word_Break=newline}', "");
@@ -156867,56 +158331,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8234, '\p{^Is_Word_Break=newline}', "");
     Expect(1, 8234, '\P{Is_Word_Break=newline}', "");
     Expect(0, 8234, '\P{^Is_Word_Break=newline}', "");
-    Expect(1, 8233, '\p{Is_Word_Break=	 NEWLINE}', "");
-    Expect(0, 8233, '\p{^Is_Word_Break=	 NEWLINE}', "");
-    Expect(0, 8233, '\P{Is_Word_Break=	 NEWLINE}', "");
-    Expect(1, 8233, '\P{^Is_Word_Break=	 NEWLINE}', "");
-    Expect(0, 8234, '\p{Is_Word_Break=	 NEWLINE}', "");
-    Expect(1, 8234, '\p{^Is_Word_Break=	 NEWLINE}', "");
-    Expect(1, 8234, '\P{Is_Word_Break=	 NEWLINE}', "");
-    Expect(0, 8234, '\P{^Is_Word_Break=	 NEWLINE}', "");
-    Error('\p{Is_WB=	NL/a/}');
-    Error('\P{Is_WB=	NL/a/}');
-    Expect(1, 8233, '\p{Is_WB:   nl}', "");
-    Expect(0, 8233, '\p{^Is_WB:   nl}', "");
-    Expect(0, 8233, '\P{Is_WB:   nl}', "");
-    Expect(1, 8233, '\P{^Is_WB:   nl}', "");
-    Expect(0, 8234, '\p{Is_WB:   nl}', "");
-    Expect(1, 8234, '\p{^Is_WB:   nl}', "");
-    Expect(1, 8234, '\P{Is_WB:   nl}', "");
-    Expect(0, 8234, '\P{^Is_WB:   nl}', "");
-    Expect(1, 8233, '\p{Is_WB:	-NL}', "");
-    Expect(0, 8233, '\p{^Is_WB:	-NL}', "");
-    Expect(0, 8233, '\P{Is_WB:	-NL}', "");
-    Expect(1, 8233, '\P{^Is_WB:	-NL}', "");
-    Expect(0, 8234, '\p{Is_WB:	-NL}', "");
-    Expect(1, 8234, '\p{^Is_WB:	-NL}', "");
-    Expect(1, 8234, '\P{Is_WB:	-NL}', "");
-    Expect(0, 8234, '\P{^Is_WB:	-NL}', "");
-    Error('\p{Word_Break=:= numeric}');
-    Error('\P{Word_Break=:= numeric}');
+    Expect(1, 8233, '\p{Is_Word_Break=_NEWLINE}', "");
+    Expect(0, 8233, '\p{^Is_Word_Break=_NEWLINE}', "");
+    Expect(0, 8233, '\P{Is_Word_Break=_NEWLINE}', "");
+    Expect(1, 8233, '\P{^Is_Word_Break=_NEWLINE}', "");
+    Expect(0, 8234, '\p{Is_Word_Break=_NEWLINE}', "");
+    Expect(1, 8234, '\p{^Is_Word_Break=_NEWLINE}', "");
+    Expect(1, 8234, '\P{Is_Word_Break=_NEWLINE}', "");
+    Expect(0, 8234, '\P{^Is_Word_Break=_NEWLINE}', "");
+    Error('\p{Is_WB=_/a/NL}');
+    Error('\P{Is_WB=_/a/NL}');
+    Expect(1, 8233, '\p{Is_WB=nl}', "");
+    Expect(0, 8233, '\p{^Is_WB=nl}', "");
+    Expect(0, 8233, '\P{Is_WB=nl}', "");
+    Expect(1, 8233, '\P{^Is_WB=nl}', "");
+    Expect(0, 8234, '\p{Is_WB=nl}', "");
+    Expect(1, 8234, '\p{^Is_WB=nl}', "");
+    Expect(1, 8234, '\P{Is_WB=nl}', "");
+    Expect(0, 8234, '\P{^Is_WB=nl}', "");
+    Expect(1, 8233, '\p{Is_WB=_NL}', "");
+    Expect(0, 8233, '\p{^Is_WB=_NL}', "");
+    Expect(0, 8233, '\P{Is_WB=_NL}', "");
+    Expect(1, 8233, '\P{^Is_WB=_NL}', "");
+    Expect(0, 8234, '\p{Is_WB=_NL}', "");
+    Expect(1, 8234, '\p{^Is_WB=_NL}', "");
+    Expect(1, 8234, '\P{Is_WB=_NL}', "");
+    Expect(0, 8234, '\P{^Is_WB=_NL}', "");
+    Error('\p{Word_Break=_Numeric/a/}');
+    Error('\P{Word_Break=_Numeric/a/}');
     Expect(1, 130041, '\p{Word_Break=:\ANumeric\z:}', "");;
     Expect(0, 130042, '\p{Word_Break=:\ANumeric\z:}', "");;
-    Expect(1, 130041, '\p{Word_Break=numeric}', "");
-    Expect(0, 130041, '\p{^Word_Break=numeric}', "");
-    Expect(0, 130041, '\P{Word_Break=numeric}', "");
-    Expect(1, 130041, '\P{^Word_Break=numeric}', "");
-    Expect(0, 130042, '\p{Word_Break=numeric}', "");
-    Expect(1, 130042, '\p{^Word_Break=numeric}', "");
-    Expect(1, 130042, '\P{Word_Break=numeric}', "");
-    Expect(0, 130042, '\P{^Word_Break=numeric}', "");
+    Expect(1, 130041, '\p{Word_Break:numeric}', "");
+    Expect(0, 130041, '\p{^Word_Break:numeric}', "");
+    Expect(0, 130041, '\P{Word_Break:numeric}', "");
+    Expect(1, 130041, '\P{^Word_Break:numeric}', "");
+    Expect(0, 130042, '\p{Word_Break:numeric}', "");
+    Expect(1, 130042, '\p{^Word_Break:numeric}', "");
+    Expect(1, 130042, '\P{Word_Break:numeric}', "");
+    Expect(0, 130042, '\P{^Word_Break:numeric}', "");
     Expect(1, 130041, '\p{Word_Break=:\Anumeric\z:}', "");;
     Expect(0, 130042, '\p{Word_Break=:\Anumeric\z:}', "");;
-    Expect(1, 130041, '\p{Word_Break=-_Numeric}', "");
-    Expect(0, 130041, '\p{^Word_Break=-_Numeric}', "");
-    Expect(0, 130041, '\P{Word_Break=-_Numeric}', "");
-    Expect(1, 130041, '\P{^Word_Break=-_Numeric}', "");
-    Expect(0, 130042, '\p{Word_Break=-_Numeric}', "");
-    Expect(1, 130042, '\p{^Word_Break=-_Numeric}', "");
-    Expect(1, 130042, '\P{Word_Break=-_Numeric}', "");
-    Expect(0, 130042, '\P{^Word_Break=-_Numeric}', "");
-    Error('\p{WB=- NU/a/}');
-    Error('\P{WB=- NU/a/}');
+    Expect(1, 130041, '\p{Word_Break=	Numeric}', "");
+    Expect(0, 130041, '\p{^Word_Break=	Numeric}', "");
+    Expect(0, 130041, '\P{Word_Break=	Numeric}', "");
+    Expect(1, 130041, '\P{^Word_Break=	Numeric}', "");
+    Expect(0, 130042, '\p{Word_Break=	Numeric}', "");
+    Expect(1, 130042, '\p{^Word_Break=	Numeric}', "");
+    Expect(1, 130042, '\P{Word_Break=	Numeric}', "");
+    Expect(0, 130042, '\P{^Word_Break=	Numeric}', "");
+    Error('\p{WB= :=NU}');
+    Error('\P{WB= :=NU}');
     Expect(1, 130041, '\p{WB=:\ANU\z:}', "");;
     Expect(0, 130042, '\p{WB=:\ANU\z:}', "");;
     Expect(1, 130041, '\p{WB=nu}', "");
@@ -156929,16 +158393,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 130042, '\P{^WB=nu}', "");
     Expect(1, 130041, '\p{WB=:\Anu\z:}', "");;
     Expect(0, 130042, '\p{WB=:\Anu\z:}', "");;
-    Expect(1, 130041, '\p{WB=-NU}', "");
-    Expect(0, 130041, '\p{^WB=-NU}', "");
-    Expect(0, 130041, '\P{WB=-NU}', "");
-    Expect(1, 130041, '\P{^WB=-NU}', "");
-    Expect(0, 130042, '\p{WB=-NU}', "");
-    Expect(1, 130042, '\p{^WB=-NU}', "");
-    Expect(1, 130042, '\P{WB=-NU}', "");
-    Expect(0, 130042, '\P{^WB=-NU}', "");
-    Error('\p{Is_Word_Break:   	:=Numeric}');
-    Error('\P{Is_Word_Break:   	:=Numeric}');
+    Expect(1, 130041, '\p{WB=	NU}', "");
+    Expect(0, 130041, '\p{^WB=	NU}', "");
+    Expect(0, 130041, '\P{WB=	NU}', "");
+    Expect(1, 130041, '\P{^WB=	NU}', "");
+    Expect(0, 130042, '\p{WB=	NU}', "");
+    Expect(1, 130042, '\p{^WB=	NU}', "");
+    Expect(1, 130042, '\P{WB=	NU}', "");
+    Expect(0, 130042, '\P{^WB=	NU}', "");
+    Error('\p{Is_Word_Break=_-numeric/a/}');
+    Error('\P{Is_Word_Break=_-numeric/a/}');
     Expect(1, 130041, '\p{Is_Word_Break=numeric}', "");
     Expect(0, 130041, '\p{^Is_Word_Break=numeric}', "");
     Expect(0, 130041, '\P{Is_Word_Break=numeric}', "");
@@ -156947,16 +158411,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130042, '\p{^Is_Word_Break=numeric}', "");
     Expect(1, 130042, '\P{Is_Word_Break=numeric}', "");
     Expect(0, 130042, '\P{^Is_Word_Break=numeric}', "");
-    Expect(1, 130041, '\p{Is_Word_Break=	Numeric}', "");
-    Expect(0, 130041, '\p{^Is_Word_Break=	Numeric}', "");
-    Expect(0, 130041, '\P{Is_Word_Break=	Numeric}', "");
-    Expect(1, 130041, '\P{^Is_Word_Break=	Numeric}', "");
-    Expect(0, 130042, '\p{Is_Word_Break=	Numeric}', "");
-    Expect(1, 130042, '\p{^Is_Word_Break=	Numeric}', "");
-    Expect(1, 130042, '\P{Is_Word_Break=	Numeric}', "");
-    Expect(0, 130042, '\P{^Is_Word_Break=	Numeric}', "");
-    Error('\p{Is_WB: := 	NU}');
-    Error('\P{Is_WB: := 	NU}');
+    Expect(1, 130041, '\p{Is_Word_Break=  NUMERIC}', "");
+    Expect(0, 130041, '\p{^Is_Word_Break=  NUMERIC}', "");
+    Expect(0, 130041, '\P{Is_Word_Break=  NUMERIC}', "");
+    Expect(1, 130041, '\P{^Is_Word_Break=  NUMERIC}', "");
+    Expect(0, 130042, '\p{Is_Word_Break=  NUMERIC}', "");
+    Expect(1, 130042, '\p{^Is_Word_Break=  NUMERIC}', "");
+    Expect(1, 130042, '\P{Is_Word_Break=  NUMERIC}', "");
+    Expect(0, 130042, '\P{^Is_Word_Break=  NUMERIC}', "");
+    Error('\p{Is_WB=		NU/a/}');
+    Error('\P{Is_WB=		NU/a/}');
     Expect(1, 130041, '\p{Is_WB=nu}', "");
     Expect(0, 130041, '\p{^Is_WB=nu}', "");
     Expect(0, 130041, '\P{Is_WB=nu}', "");
@@ -156973,8 +158437,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 130042, '\p{^Is_WB=-NU}', "");
     Expect(1, 130042, '\P{Is_WB=-NU}', "");
     Expect(0, 130042, '\P{^Is_WB=-NU}', "");
-    Error('\p{Word_Break=	/a/Regional_INDICATOR}');
-    Error('\P{Word_Break=	/a/Regional_INDICATOR}');
+    Error('\p{Word_Break=-:=regional_INDICATOR}');
+    Error('\P{Word_Break=-:=regional_INDICATOR}');
     Expect(1, 127487, '\p{Word_Break=:\ARegional_Indicator\z:}', "");;
     Expect(0, 127488, '\p{Word_Break=:\ARegional_Indicator\z:}', "");;
     Expect(1, 127487, '\p{Word_Break=regionalindicator}', "");
@@ -156987,16 +158451,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127488, '\P{^Word_Break=regionalindicator}', "");
     Expect(1, 127487, '\p{Word_Break=:\Aregionalindicator\z:}', "");;
     Expect(0, 127488, '\p{Word_Break=:\Aregionalindicator\z:}', "");;
-    Expect(1, 127487, '\p{Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(0, 127487, '\p{^Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(0, 127487, '\P{Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(1, 127487, '\P{^Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(0, 127488, '\p{Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(1, 127488, '\p{^Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(1, 127488, '\P{Word_Break=__REGIONAL_INDICATOR}', "");
-    Expect(0, 127488, '\P{^Word_Break=__REGIONAL_INDICATOR}', "");
-    Error('\p{WB=:=		RI}');
-    Error('\P{WB=:=		RI}');
+    Expect(1, 127487, '\p{Word_Break=Regional_Indicator}', "");
+    Expect(0, 127487, '\p{^Word_Break=Regional_Indicator}', "");
+    Expect(0, 127487, '\P{Word_Break=Regional_Indicator}', "");
+    Expect(1, 127487, '\P{^Word_Break=Regional_Indicator}', "");
+    Expect(0, 127488, '\p{Word_Break=Regional_Indicator}', "");
+    Expect(1, 127488, '\p{^Word_Break=Regional_Indicator}', "");
+    Expect(1, 127488, '\P{Word_Break=Regional_Indicator}', "");
+    Expect(0, 127488, '\P{^Word_Break=Regional_Indicator}', "");
+    Error('\p{WB= /a/RI}');
+    Error('\P{WB= /a/RI}');
     Expect(1, 127487, '\p{WB=:\ARI\z:}', "");;
     Expect(0, 127488, '\p{WB=:\ARI\z:}', "");;
     Expect(1, 127487, '\p{WB=ri}', "");
@@ -157009,16 +158473,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 127488, '\P{^WB=ri}', "");
     Expect(1, 127487, '\p{WB=:\Ari\z:}', "");;
     Expect(0, 127488, '\p{WB=:\Ari\z:}', "");;
-    Expect(1, 127487, '\p{WB=-RI}', "");
-    Expect(0, 127487, '\p{^WB=-RI}', "");
-    Expect(0, 127487, '\P{WB=-RI}', "");
-    Expect(1, 127487, '\P{^WB=-RI}', "");
-    Expect(0, 127488, '\p{WB=-RI}', "");
-    Expect(1, 127488, '\p{^WB=-RI}', "");
-    Expect(1, 127488, '\P{WB=-RI}', "");
-    Expect(0, 127488, '\P{^WB=-RI}', "");
-    Error('\p{Is_Word_Break=/a/_Regional_INDICATOR}');
-    Error('\P{Is_Word_Break=/a/_Regional_INDICATOR}');
+    Expect(1, 127487, '\p{WB=- RI}', "");
+    Expect(0, 127487, '\p{^WB=- RI}', "");
+    Expect(0, 127487, '\P{WB=- RI}', "");
+    Expect(1, 127487, '\P{^WB=- RI}', "");
+    Expect(0, 127488, '\p{WB=- RI}', "");
+    Expect(1, 127488, '\p{^WB=- RI}', "");
+    Expect(1, 127488, '\P{WB=- RI}', "");
+    Expect(0, 127488, '\P{^WB=- RI}', "");
+    Error('\p{Is_Word_Break=-/a/regional_INDICATOR}');
+    Error('\P{Is_Word_Break=-/a/regional_INDICATOR}');
     Expect(1, 127487, '\p{Is_Word_Break=regionalindicator}', "");
     Expect(0, 127487, '\p{^Is_Word_Break=regionalindicator}', "");
     Expect(0, 127487, '\P{Is_Word_Break=regionalindicator}', "");
@@ -157027,16 +158491,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127488, '\p{^Is_Word_Break=regionalindicator}', "");
     Expect(1, 127488, '\P{Is_Word_Break=regionalindicator}', "");
     Expect(0, 127488, '\P{^Is_Word_Break=regionalindicator}', "");
-    Expect(1, 127487, '\p{Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(0, 127487, '\p{^Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(0, 127487, '\P{Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(1, 127487, '\P{^Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(0, 127488, '\p{Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(1, 127488, '\p{^Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(1, 127488, '\P{Is_Word_Break=--regional_INDICATOR}', "");
-    Expect(0, 127488, '\P{^Is_Word_Break=--regional_INDICATOR}', "");
-    Error('\p{Is_WB=:=-_RI}');
-    Error('\P{Is_WB=:=-_RI}');
+    Expect(1, 127487, '\p{Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(0, 127487, '\p{^Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(0, 127487, '\P{Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(1, 127487, '\P{^Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(0, 127488, '\p{Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(1, 127488, '\p{^Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(1, 127488, '\P{Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Expect(0, 127488, '\P{^Is_Word_Break=	-REGIONAL_INDICATOR}', "");
+    Error('\p{Is_WB=-RI:=}');
+    Error('\P{Is_WB=-RI:=}');
     Expect(1, 127487, '\p{Is_WB=ri}', "");
     Expect(0, 127487, '\p{^Is_WB=ri}', "");
     Expect(0, 127487, '\P{Is_WB=ri}', "");
@@ -157045,16 +158509,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 127488, '\p{^Is_WB=ri}', "");
     Expect(1, 127488, '\P{Is_WB=ri}', "");
     Expect(0, 127488, '\P{^Is_WB=ri}', "");
-    Expect(1, 127487, '\p{Is_WB=-ri}', "");
-    Expect(0, 127487, '\p{^Is_WB=-ri}', "");
-    Expect(0, 127487, '\P{Is_WB=-ri}', "");
-    Expect(1, 127487, '\P{^Is_WB=-ri}', "");
-    Expect(0, 127488, '\p{Is_WB=-ri}', "");
-    Expect(1, 127488, '\p{^Is_WB=-ri}', "");
-    Expect(1, 127488, '\P{Is_WB=-ri}', "");
-    Expect(0, 127488, '\P{^Is_WB=-ri}', "");
-    Error('\p{Word_Break=_/a/Single_QUOTE}');
-    Error('\P{Word_Break=_/a/Single_QUOTE}');
+    Expect(1, 127487, '\p{Is_WB=- ri}', "");
+    Expect(0, 127487, '\p{^Is_WB=- ri}', "");
+    Expect(0, 127487, '\P{Is_WB=- ri}', "");
+    Expect(1, 127487, '\P{^Is_WB=- ri}', "");
+    Expect(0, 127488, '\p{Is_WB=- ri}', "");
+    Expect(1, 127488, '\p{^Is_WB=- ri}', "");
+    Expect(1, 127488, '\P{Is_WB=- ri}', "");
+    Expect(0, 127488, '\P{^Is_WB=- ri}', "");
+    Error('\p{Word_Break=/a/ 	SINGLE_Quote}');
+    Error('\P{Word_Break=/a/ 	SINGLE_Quote}');
     Expect(1, 39, '\p{Word_Break=:\ASingle_Quote\z:}', "");;
     Expect(0, 40, '\p{Word_Break=:\ASingle_Quote\z:}', "");;
     Expect(1, 39, '\p{Word_Break=singlequote}', "");
@@ -157067,16 +158531,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 40, '\P{^Word_Break=singlequote}', "");
     Expect(1, 39, '\p{Word_Break=:\Asinglequote\z:}', "");;
     Expect(0, 40, '\p{Word_Break=:\Asinglequote\z:}', "");;
-    Expect(1, 39, '\p{Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(0, 39, '\p{^Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(0, 39, '\P{Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(1, 39, '\P{^Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(0, 40, '\p{Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(1, 40, '\p{^Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(1, 40, '\P{Word_Break:	 SINGLE_QUOTE}', "");
-    Expect(0, 40, '\P{^Word_Break:	 SINGLE_QUOTE}', "");
-    Error('\p{WB=/a/--SQ}');
-    Error('\P{WB=/a/--SQ}');
+    Expect(1, 39, '\p{Word_Break= 	single_Quote}', "");
+    Expect(0, 39, '\p{^Word_Break= 	single_Quote}', "");
+    Expect(0, 39, '\P{Word_Break= 	single_Quote}', "");
+    Expect(1, 39, '\P{^Word_Break= 	single_Quote}', "");
+    Expect(0, 40, '\p{Word_Break= 	single_Quote}', "");
+    Expect(1, 40, '\p{^Word_Break= 	single_Quote}', "");
+    Expect(1, 40, '\P{Word_Break= 	single_Quote}', "");
+    Expect(0, 40, '\P{^Word_Break= 	single_Quote}', "");
+    Error('\p{WB=:=sq}');
+    Error('\P{WB=:=sq}');
     Expect(1, 39, '\p{WB=:\ASQ\z:}', "");;
     Expect(0, 40, '\p{WB=:\ASQ\z:}', "");;
     Expect(1, 39, '\p{WB=sq}', "");
@@ -157089,16 +158553,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 40, '\P{^WB=sq}', "");
     Expect(1, 39, '\p{WB=:\Asq\z:}', "");;
     Expect(0, 40, '\p{WB=:\Asq\z:}', "");;
-    Expect(1, 39, '\p{WB=-sq}', "");
-    Expect(0, 39, '\p{^WB=-sq}', "");
-    Expect(0, 39, '\P{WB=-sq}', "");
-    Expect(1, 39, '\P{^WB=-sq}', "");
-    Expect(0, 40, '\p{WB=-sq}', "");
-    Expect(1, 40, '\p{^WB=-sq}', "");
-    Expect(1, 40, '\P{WB=-sq}', "");
-    Expect(0, 40, '\P{^WB=-sq}', "");
-    Error('\p{Is_Word_Break=/a/-_Single_Quote}');
-    Error('\P{Is_Word_Break=/a/-_Single_Quote}');
+    Expect(1, 39, '\p{WB= _SQ}', "");
+    Expect(0, 39, '\p{^WB= _SQ}', "");
+    Expect(0, 39, '\P{WB= _SQ}', "");
+    Expect(1, 39, '\P{^WB= _SQ}', "");
+    Expect(0, 40, '\p{WB= _SQ}', "");
+    Expect(1, 40, '\p{^WB= _SQ}', "");
+    Expect(1, 40, '\P{WB= _SQ}', "");
+    Expect(0, 40, '\P{^WB= _SQ}', "");
+    Error('\p{Is_Word_Break=:=	-Single_QUOTE}');
+    Error('\P{Is_Word_Break=:=	-Single_QUOTE}');
     Expect(1, 39, '\p{Is_Word_Break=singlequote}', "");
     Expect(0, 39, '\p{^Is_Word_Break=singlequote}', "");
     Expect(0, 39, '\P{Is_Word_Break=singlequote}', "");
@@ -157107,16 +158571,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 40, '\p{^Is_Word_Break=singlequote}', "");
     Expect(1, 40, '\P{Is_Word_Break=singlequote}', "");
     Expect(0, 40, '\P{^Is_Word_Break=singlequote}', "");
-    Expect(1, 39, '\p{Is_Word_Break:   --Single_Quote}', "");
-    Expect(0, 39, '\p{^Is_Word_Break:   --Single_Quote}', "");
-    Expect(0, 39, '\P{Is_Word_Break:   --Single_Quote}', "");
-    Expect(1, 39, '\P{^Is_Word_Break:   --Single_Quote}', "");
-    Expect(0, 40, '\p{Is_Word_Break:   --Single_Quote}', "");
-    Expect(1, 40, '\p{^Is_Word_Break:   --Single_Quote}', "");
-    Expect(1, 40, '\P{Is_Word_Break:   --Single_Quote}', "");
-    Expect(0, 40, '\P{^Is_Word_Break:   --Single_Quote}', "");
-    Error('\p{Is_WB=	 SQ/a/}');
-    Error('\P{Is_WB=	 SQ/a/}');
+    Expect(1, 39, '\p{Is_Word_Break:	 -Single_quote}', "");
+    Expect(0, 39, '\p{^Is_Word_Break:	 -Single_quote}', "");
+    Expect(0, 39, '\P{Is_Word_Break:	 -Single_quote}', "");
+    Expect(1, 39, '\P{^Is_Word_Break:	 -Single_quote}', "");
+    Expect(0, 40, '\p{Is_Word_Break:	 -Single_quote}', "");
+    Expect(1, 40, '\p{^Is_Word_Break:	 -Single_quote}', "");
+    Expect(1, 40, '\P{Is_Word_Break:	 -Single_quote}', "");
+    Expect(0, 40, '\P{^Is_Word_Break:	 -Single_quote}', "");
+    Error('\p{Is_WB:_sq:=}');
+    Error('\P{Is_WB:_sq:=}');
     Expect(1, 39, '\p{Is_WB=sq}', "");
     Expect(0, 39, '\p{^Is_WB=sq}', "");
     Expect(0, 39, '\P{Is_WB=sq}', "");
@@ -157125,16 +158589,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 40, '\p{^Is_WB=sq}', "");
     Expect(1, 40, '\P{Is_WB=sq}', "");
     Expect(0, 40, '\P{^Is_WB=sq}', "");
-    Expect(1, 39, '\p{Is_WB=	sq}', "");
-    Expect(0, 39, '\p{^Is_WB=	sq}', "");
-    Expect(0, 39, '\P{Is_WB=	sq}', "");
-    Expect(1, 39, '\P{^Is_WB=	sq}', "");
-    Expect(0, 40, '\p{Is_WB=	sq}', "");
-    Expect(1, 40, '\p{^Is_WB=	sq}', "");
-    Expect(1, 40, '\P{Is_WB=	sq}', "");
-    Expect(0, 40, '\P{^Is_WB=	sq}', "");
-    Error('\p{Word_Break=__WSegSpace/a/}');
-    Error('\P{Word_Break=__WSegSpace/a/}');
+    Expect(1, 39, '\p{Is_WB= SQ}', "");
+    Expect(0, 39, '\p{^Is_WB= SQ}', "");
+    Expect(0, 39, '\P{Is_WB= SQ}', "");
+    Expect(1, 39, '\P{^Is_WB= SQ}', "");
+    Expect(0, 40, '\p{Is_WB= SQ}', "");
+    Expect(1, 40, '\p{^Is_WB= SQ}', "");
+    Expect(1, 40, '\P{Is_WB= SQ}', "");
+    Expect(0, 40, '\P{^Is_WB= SQ}', "");
+    Error('\p{Word_Break=:= -WSegSpace}');
+    Error('\P{Word_Break=:= -WSegSpace}');
     Expect(1, 12288, '\p{Word_Break=:\AWSegSpace\z:}', "");;
     Expect(0, 12289, '\p{Word_Break=:\AWSegSpace\z:}', "");;
     Expect(1, 12288, '\p{Word_Break=wsegspace}', "");
@@ -157147,16 +158611,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^Word_Break=wsegspace}', "");
     Expect(1, 12288, '\p{Word_Break=:\Awsegspace\z:}', "");;
     Expect(0, 12289, '\p{Word_Break=:\Awsegspace\z:}', "");;
-    Expect(1, 12288, '\p{Word_Break=_wsegspace}', "");
-    Expect(0, 12288, '\p{^Word_Break=_wsegspace}', "");
-    Expect(0, 12288, '\P{Word_Break=_wsegspace}', "");
-    Expect(1, 12288, '\P{^Word_Break=_wsegspace}', "");
-    Expect(0, 12289, '\p{Word_Break=_wsegspace}', "");
-    Expect(1, 12289, '\p{^Word_Break=_wsegspace}', "");
-    Expect(1, 12289, '\P{Word_Break=_wsegspace}', "");
-    Expect(0, 12289, '\P{^Word_Break=_wsegspace}', "");
-    Error('\p{WB=:= _wsegspace}');
-    Error('\P{WB=:= _wsegspace}');
+    Expect(1, 12288, '\p{Word_Break=	_WSegSpace}', "");
+    Expect(0, 12288, '\p{^Word_Break=	_WSegSpace}', "");
+    Expect(0, 12288, '\P{Word_Break=	_WSegSpace}', "");
+    Expect(1, 12288, '\P{^Word_Break=	_WSegSpace}', "");
+    Expect(0, 12289, '\p{Word_Break=	_WSegSpace}', "");
+    Expect(1, 12289, '\p{^Word_Break=	_WSegSpace}', "");
+    Expect(1, 12289, '\P{Word_Break=	_WSegSpace}', "");
+    Expect(0, 12289, '\P{^Word_Break=	_WSegSpace}', "");
+    Error('\p{WB=/a/ WSegSpace}');
+    Error('\P{WB=/a/ WSegSpace}');
     Expect(1, 12288, '\p{WB=:\AWSegSpace\z:}', "");;
     Expect(0, 12289, '\p{WB=:\AWSegSpace\z:}', "");;
     Expect(1, 12288, '\p{WB=wsegspace}', "");
@@ -157169,16 +158633,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^WB=wsegspace}', "");
     Expect(1, 12288, '\p{WB=:\Awsegspace\z:}', "");;
     Expect(0, 12289, '\p{WB=:\Awsegspace\z:}', "");;
-    Expect(1, 12288, '\p{WB: _WSegSpace}', "");
-    Expect(0, 12288, '\p{^WB: _WSegSpace}', "");
-    Expect(0, 12288, '\P{WB: _WSegSpace}', "");
-    Expect(1, 12288, '\P{^WB: _WSegSpace}', "");
-    Expect(0, 12289, '\p{WB: _WSegSpace}', "");
-    Expect(1, 12289, '\p{^WB: _WSegSpace}', "");
-    Expect(1, 12289, '\P{WB: _WSegSpace}', "");
-    Expect(0, 12289, '\P{^WB: _WSegSpace}', "");
-    Error('\p{Is_Word_Break=	wsegspace:=}');
-    Error('\P{Is_Word_Break=	wsegspace:=}');
+    Expect(1, 12288, '\p{WB=  WSegSpace}', "");
+    Expect(0, 12288, '\p{^WB=  WSegSpace}', "");
+    Expect(0, 12288, '\P{WB=  WSegSpace}', "");
+    Expect(1, 12288, '\P{^WB=  WSegSpace}', "");
+    Expect(0, 12289, '\p{WB=  WSegSpace}', "");
+    Expect(1, 12289, '\p{^WB=  WSegSpace}', "");
+    Expect(1, 12289, '\P{WB=  WSegSpace}', "");
+    Expect(0, 12289, '\P{^WB=  WSegSpace}', "");
+    Error('\p{Is_Word_Break=/a/  WSegSpace}');
+    Error('\P{Is_Word_Break=/a/  WSegSpace}');
     Expect(1, 12288, '\p{Is_Word_Break=wsegspace}', "");
     Expect(0, 12288, '\p{^Is_Word_Break=wsegspace}', "");
     Expect(0, 12288, '\P{Is_Word_Break=wsegspace}', "");
@@ -157187,16 +158651,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^Is_Word_Break=wsegspace}', "");
     Expect(1, 12289, '\P{Is_Word_Break=wsegspace}', "");
     Expect(0, 12289, '\P{^Is_Word_Break=wsegspace}', "");
-    Expect(1, 12288, '\p{Is_Word_Break:_-WSegSpace}', "");
-    Expect(0, 12288, '\p{^Is_Word_Break:_-WSegSpace}', "");
-    Expect(0, 12288, '\P{Is_Word_Break:_-WSegSpace}', "");
-    Expect(1, 12288, '\P{^Is_Word_Break:_-WSegSpace}', "");
-    Expect(0, 12289, '\p{Is_Word_Break:_-WSegSpace}', "");
-    Expect(1, 12289, '\p{^Is_Word_Break:_-WSegSpace}', "");
-    Expect(1, 12289, '\P{Is_Word_Break:_-WSegSpace}', "");
-    Expect(0, 12289, '\P{^Is_Word_Break:_-WSegSpace}', "");
-    Error('\p{Is_WB::=-_wsegspace}');
-    Error('\P{Is_WB::=-_wsegspace}');
+    Expect(1, 12288, '\p{Is_Word_Break=	WSegSpace}', "");
+    Expect(0, 12288, '\p{^Is_Word_Break=	WSegSpace}', "");
+    Expect(0, 12288, '\P{Is_Word_Break=	WSegSpace}', "");
+    Expect(1, 12288, '\P{^Is_Word_Break=	WSegSpace}', "");
+    Expect(0, 12289, '\p{Is_Word_Break=	WSegSpace}', "");
+    Expect(1, 12289, '\p{^Is_Word_Break=	WSegSpace}', "");
+    Expect(1, 12289, '\P{Is_Word_Break=	WSegSpace}', "");
+    Expect(0, 12289, '\P{^Is_Word_Break=	WSegSpace}', "");
+    Error('\p{Is_WB= -WSEGSPACE:=}');
+    Error('\P{Is_WB= -WSEGSPACE:=}');
     Expect(1, 12288, '\p{Is_WB=wsegspace}', "");
     Expect(0, 12288, '\p{^Is_WB=wsegspace}', "");
     Expect(0, 12288, '\P{Is_WB=wsegspace}', "");
@@ -157205,16 +158669,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^Is_WB=wsegspace}', "");
     Expect(1, 12289, '\P{Is_WB=wsegspace}', "");
     Expect(0, 12289, '\P{^Is_WB=wsegspace}', "");
-    Expect(1, 12288, '\p{Is_WB= wsegspace}', "");
-    Expect(0, 12288, '\p{^Is_WB= wsegspace}', "");
-    Expect(0, 12288, '\P{Is_WB= wsegspace}', "");
-    Expect(1, 12288, '\P{^Is_WB= wsegspace}', "");
-    Expect(0, 12289, '\p{Is_WB= wsegspace}', "");
-    Expect(1, 12289, '\p{^Is_WB= wsegspace}', "");
-    Expect(1, 12289, '\P{Is_WB= wsegspace}', "");
-    Expect(0, 12289, '\P{^Is_WB= wsegspace}', "");
-    Error('\p{Word_Break=		other/a/}');
-    Error('\P{Word_Break=		other/a/}');
+    Expect(1, 12288, '\p{Is_WB:	WSegSpace}', "");
+    Expect(0, 12288, '\p{^Is_WB:	WSegSpace}', "");
+    Expect(0, 12288, '\P{Is_WB:	WSegSpace}', "");
+    Expect(1, 12288, '\P{^Is_WB:	WSegSpace}', "");
+    Expect(0, 12289, '\p{Is_WB:	WSegSpace}', "");
+    Expect(1, 12289, '\p{^Is_WB:	WSegSpace}', "");
+    Expect(1, 12289, '\P{Is_WB:	WSegSpace}', "");
+    Expect(0, 12289, '\P{^Is_WB:	WSegSpace}', "");
+    Error('\p{Word_Break= -OTHER:=}');
+    Error('\P{Word_Break= -OTHER:=}');
     Expect(1, 918000, '\p{Word_Break=:\AOther\z:}', "");;
     Expect(0, 917999, '\p{Word_Break=:\AOther\z:}', "");;
     Expect(1, 918000, '\p{Word_Break=other}', "");
@@ -157227,16 +158691,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^Word_Break=other}', "");
     Expect(1, 918000, '\p{Word_Break=:\Aother\z:}', "");;
     Expect(0, 917999, '\p{Word_Break=:\Aother\z:}', "");;
-    Expect(1, 918000, '\p{Word_Break=	Other}', "");
-    Expect(0, 918000, '\p{^Word_Break=	Other}', "");
-    Expect(0, 918000, '\P{Word_Break=	Other}', "");
-    Expect(1, 918000, '\P{^Word_Break=	Other}', "");
-    Expect(0, 917999, '\p{Word_Break=	Other}', "");
-    Expect(1, 917999, '\p{^Word_Break=	Other}', "");
-    Expect(1, 917999, '\P{Word_Break=	Other}', "");
-    Expect(0, 917999, '\P{^Word_Break=	Other}', "");
-    Error('\p{WB=:=_xx}');
-    Error('\P{WB=:=_xx}');
+    Expect(1, 918000, '\p{Word_Break= 	Other}', "");
+    Expect(0, 918000, '\p{^Word_Break= 	Other}', "");
+    Expect(0, 918000, '\P{Word_Break= 	Other}', "");
+    Expect(1, 918000, '\P{^Word_Break= 	Other}', "");
+    Expect(0, 917999, '\p{Word_Break= 	Other}', "");
+    Expect(1, 917999, '\p{^Word_Break= 	Other}', "");
+    Expect(1, 917999, '\P{Word_Break= 	Other}', "");
+    Expect(0, 917999, '\P{^Word_Break= 	Other}', "");
+    Error('\p{WB:   :=_-XX}');
+    Error('\P{WB:   :=_-XX}');
     Expect(1, 918000, '\p{WB=:\AXX\z:}', "");;
     Expect(0, 917999, '\p{WB=:\AXX\z:}', "");;
     Expect(1, 918000, '\p{WB=xx}', "");
@@ -157249,16 +158713,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^WB=xx}', "");
     Expect(1, 918000, '\p{WB=:\Axx\z:}', "");;
     Expect(0, 917999, '\p{WB=:\Axx\z:}', "");;
-    Expect(1, 918000, '\p{WB=_XX}', "");
-    Expect(0, 918000, '\p{^WB=_XX}', "");
-    Expect(0, 918000, '\P{WB=_XX}', "");
-    Expect(1, 918000, '\P{^WB=_XX}', "");
-    Expect(0, 917999, '\p{WB=_XX}', "");
-    Expect(1, 917999, '\p{^WB=_XX}', "");
-    Expect(1, 917999, '\P{WB=_XX}', "");
-    Expect(0, 917999, '\P{^WB=_XX}', "");
-    Error('\p{Is_Word_Break: :=	_Other}');
-    Error('\P{Is_Word_Break: :=	_Other}');
+    Expect(1, 918000, '\p{WB:	XX}', "");
+    Expect(0, 918000, '\p{^WB:	XX}', "");
+    Expect(0, 918000, '\P{WB:	XX}', "");
+    Expect(1, 918000, '\P{^WB:	XX}', "");
+    Expect(0, 917999, '\p{WB:	XX}', "");
+    Expect(1, 917999, '\p{^WB:	XX}', "");
+    Expect(1, 917999, '\P{WB:	XX}', "");
+    Expect(0, 917999, '\P{^WB:	XX}', "");
+    Error('\p{Is_Word_Break:		 OTHER/a/}');
+    Error('\P{Is_Word_Break:		 OTHER/a/}');
     Expect(1, 918000, '\p{Is_Word_Break=other}', "");
     Expect(0, 918000, '\p{^Is_Word_Break=other}', "");
     Expect(0, 918000, '\P{Is_Word_Break=other}', "");
@@ -157267,16 +158731,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_Word_Break=other}', "");
     Expect(1, 917999, '\P{Is_Word_Break=other}', "");
     Expect(0, 917999, '\P{^Is_Word_Break=other}', "");
-    Expect(1, 918000, '\p{Is_Word_Break=-	OTHER}', "");
-    Expect(0, 918000, '\p{^Is_Word_Break=-	OTHER}', "");
-    Expect(0, 918000, '\P{Is_Word_Break=-	OTHER}', "");
-    Expect(1, 918000, '\P{^Is_Word_Break=-	OTHER}', "");
-    Expect(0, 917999, '\p{Is_Word_Break=-	OTHER}', "");
-    Expect(1, 917999, '\p{^Is_Word_Break=-	OTHER}', "");
-    Expect(1, 917999, '\P{Is_Word_Break=-	OTHER}', "");
-    Expect(0, 917999, '\P{^Is_Word_Break=-	OTHER}', "");
-    Error('\p{Is_WB=:=  XX}');
-    Error('\P{Is_WB=:=  XX}');
+    Expect(1, 918000, '\p{Is_Word_Break=_Other}', "");
+    Expect(0, 918000, '\p{^Is_Word_Break=_Other}', "");
+    Expect(0, 918000, '\P{Is_Word_Break=_Other}', "");
+    Expect(1, 918000, '\P{^Is_Word_Break=_Other}', "");
+    Expect(0, 917999, '\p{Is_Word_Break=_Other}', "");
+    Expect(1, 917999, '\p{^Is_Word_Break=_Other}', "");
+    Expect(1, 917999, '\P{Is_Word_Break=_Other}', "");
+    Expect(0, 917999, '\P{^Is_Word_Break=_Other}', "");
+    Error('\p{Is_WB=	XX:=}');
+    Error('\P{Is_WB=	XX:=}');
     Expect(1, 918000, '\p{Is_WB=xx}', "");
     Expect(0, 918000, '\p{^Is_WB=xx}', "");
     Expect(0, 918000, '\P{Is_WB=xx}', "");
@@ -157285,16 +158749,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_WB=xx}', "");
     Expect(1, 917999, '\P{Is_WB=xx}', "");
     Expect(0, 917999, '\P{^Is_WB=xx}', "");
-    Expect(1, 918000, '\p{Is_WB=_xx}', "");
-    Expect(0, 918000, '\p{^Is_WB=_xx}', "");
-    Expect(0, 918000, '\P{Is_WB=_xx}', "");
-    Expect(1, 918000, '\P{^Is_WB=_xx}', "");
-    Expect(0, 917999, '\p{Is_WB=_xx}', "");
-    Expect(1, 917999, '\p{^Is_WB=_xx}', "");
-    Expect(1, 917999, '\P{Is_WB=_xx}', "");
-    Expect(0, 917999, '\P{^Is_WB=_xx}', "");
-    Error('\p{Word_Break=/a/_	ZWJ}');
-    Error('\P{Word_Break=/a/_	ZWJ}');
+    Expect(1, 918000, '\p{Is_WB: -	XX}', "");
+    Expect(0, 918000, '\p{^Is_WB: -	XX}', "");
+    Expect(0, 918000, '\P{Is_WB: -	XX}', "");
+    Expect(1, 918000, '\P{^Is_WB: -	XX}', "");
+    Expect(0, 917999, '\p{Is_WB: -	XX}', "");
+    Expect(1, 917999, '\p{^Is_WB: -	XX}', "");
+    Expect(1, 917999, '\P{Is_WB: -	XX}', "");
+    Expect(0, 917999, '\P{^Is_WB: -	XX}', "");
+    Error('\p{Word_Break=/a/_-ZWJ}');
+    Error('\P{Word_Break=/a/_-ZWJ}');
     Expect(1, 8205, '\p{Word_Break=:\AZWJ\z:}', "");;
     Expect(0, 8206, '\p{Word_Break=:\AZWJ\z:}', "");;
     Expect(1, 8205, '\p{Word_Break=zwj}', "");
@@ -157307,56 +158771,56 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 8206, '\P{^Word_Break=zwj}', "");
     Expect(1, 8205, '\p{Word_Break=:\Azwj\z:}', "");;
     Expect(0, 8206, '\p{Word_Break=:\Azwj\z:}', "");;
-    Expect(1, 8205, '\p{Word_Break=  ZWJ}', "");
-    Expect(0, 8205, '\p{^Word_Break=  ZWJ}', "");
-    Expect(0, 8205, '\P{Word_Break=  ZWJ}', "");
-    Expect(1, 8205, '\P{^Word_Break=  ZWJ}', "");
-    Expect(0, 8206, '\p{Word_Break=  ZWJ}', "");
-    Expect(1, 8206, '\p{^Word_Break=  ZWJ}', "");
-    Expect(1, 8206, '\P{Word_Break=  ZWJ}', "");
-    Expect(0, 8206, '\P{^Word_Break=  ZWJ}', "");
-    Error('\p{WB=:=zwj}');
-    Error('\P{WB=:=zwj}');
+    Expect(1, 8205, '\p{Word_Break=_ ZWJ}', "");
+    Expect(0, 8205, '\p{^Word_Break=_ ZWJ}', "");
+    Expect(0, 8205, '\P{Word_Break=_ ZWJ}', "");
+    Expect(1, 8205, '\P{^Word_Break=_ ZWJ}', "");
+    Expect(0, 8206, '\p{Word_Break=_ ZWJ}', "");
+    Expect(1, 8206, '\p{^Word_Break=_ ZWJ}', "");
+    Expect(1, 8206, '\P{Word_Break=_ ZWJ}', "");
+    Expect(0, 8206, '\P{^Word_Break=_ ZWJ}', "");
+    Error('\p{WB=/a/ -ZWJ}');
+    Error('\P{WB=/a/ -ZWJ}');
     Expect(1, 8205, '\p{WB=:\AZWJ\z:}', "");;
     Expect(0, 8206, '\p{WB=:\AZWJ\z:}', "");;
-    Expect(1, 8205, '\p{WB:	zwj}', "");
-    Expect(0, 8205, '\p{^WB:	zwj}', "");
-    Expect(0, 8205, '\P{WB:	zwj}', "");
-    Expect(1, 8205, '\P{^WB:	zwj}', "");
-    Expect(0, 8206, '\p{WB:	zwj}', "");
-    Expect(1, 8206, '\p{^WB:	zwj}', "");
-    Expect(1, 8206, '\P{WB:	zwj}', "");
-    Expect(0, 8206, '\P{^WB:	zwj}', "");
+    Expect(1, 8205, '\p{WB=zwj}', "");
+    Expect(0, 8205, '\p{^WB=zwj}', "");
+    Expect(0, 8205, '\P{WB=zwj}', "");
+    Expect(1, 8205, '\P{^WB=zwj}', "");
+    Expect(0, 8206, '\p{WB=zwj}', "");
+    Expect(1, 8206, '\p{^WB=zwj}', "");
+    Expect(1, 8206, '\P{WB=zwj}', "");
+    Expect(0, 8206, '\P{^WB=zwj}', "");
     Expect(1, 8205, '\p{WB=:\Azwj\z:}', "");;
     Expect(0, 8206, '\p{WB=:\Azwj\z:}', "");;
-    Expect(1, 8205, '\p{WB=__ZWJ}', "");
-    Expect(0, 8205, '\p{^WB=__ZWJ}', "");
-    Expect(0, 8205, '\P{WB=__ZWJ}', "");
-    Expect(1, 8205, '\P{^WB=__ZWJ}', "");
-    Expect(0, 8206, '\p{WB=__ZWJ}', "");
-    Expect(1, 8206, '\p{^WB=__ZWJ}', "");
-    Expect(1, 8206, '\P{WB=__ZWJ}', "");
-    Expect(0, 8206, '\P{^WB=__ZWJ}', "");
-    Error('\p{Is_Word_Break:   -:=ZWJ}');
-    Error('\P{Is_Word_Break:   -:=ZWJ}');
-    Expect(1, 8205, '\p{Is_Word_Break=zwj}', "");
-    Expect(0, 8205, '\p{^Is_Word_Break=zwj}', "");
-    Expect(0, 8205, '\P{Is_Word_Break=zwj}', "");
-    Expect(1, 8205, '\P{^Is_Word_Break=zwj}', "");
-    Expect(0, 8206, '\p{Is_Word_Break=zwj}', "");
-    Expect(1, 8206, '\p{^Is_Word_Break=zwj}', "");
-    Expect(1, 8206, '\P{Is_Word_Break=zwj}', "");
-    Expect(0, 8206, '\P{^Is_Word_Break=zwj}', "");
-    Expect(1, 8205, '\p{Is_Word_Break=__zwj}', "");
-    Expect(0, 8205, '\p{^Is_Word_Break=__zwj}', "");
-    Expect(0, 8205, '\P{Is_Word_Break=__zwj}', "");
-    Expect(1, 8205, '\P{^Is_Word_Break=__zwj}', "");
-    Expect(0, 8206, '\p{Is_Word_Break=__zwj}', "");
-    Expect(1, 8206, '\p{^Is_Word_Break=__zwj}', "");
-    Expect(1, 8206, '\P{Is_Word_Break=__zwj}', "");
-    Expect(0, 8206, '\P{^Is_Word_Break=__zwj}', "");
-    Error('\p{Is_WB= zwj:=}');
-    Error('\P{Is_WB= zwj:=}');
+    Expect(1, 8205, '\p{WB=	zwj}', "");
+    Expect(0, 8205, '\p{^WB=	zwj}', "");
+    Expect(0, 8205, '\P{WB=	zwj}', "");
+    Expect(1, 8205, '\P{^WB=	zwj}', "");
+    Expect(0, 8206, '\p{WB=	zwj}', "");
+    Expect(1, 8206, '\p{^WB=	zwj}', "");
+    Expect(1, 8206, '\P{WB=	zwj}', "");
+    Expect(0, 8206, '\P{^WB=	zwj}', "");
+    Error('\p{Is_Word_Break:  :=ZWJ}');
+    Error('\P{Is_Word_Break:  :=ZWJ}');
+    Expect(1, 8205, '\p{Is_Word_Break:	zwj}', "");
+    Expect(0, 8205, '\p{^Is_Word_Break:	zwj}', "");
+    Expect(0, 8205, '\P{Is_Word_Break:	zwj}', "");
+    Expect(1, 8205, '\P{^Is_Word_Break:	zwj}', "");
+    Expect(0, 8206, '\p{Is_Word_Break:	zwj}', "");
+    Expect(1, 8206, '\p{^Is_Word_Break:	zwj}', "");
+    Expect(1, 8206, '\P{Is_Word_Break:	zwj}', "");
+    Expect(0, 8206, '\P{^Is_Word_Break:	zwj}', "");
+    Expect(1, 8205, '\p{Is_Word_Break=-ZWJ}', "");
+    Expect(0, 8205, '\p{^Is_Word_Break=-ZWJ}', "");
+    Expect(0, 8205, '\P{Is_Word_Break=-ZWJ}', "");
+    Expect(1, 8205, '\P{^Is_Word_Break=-ZWJ}', "");
+    Expect(0, 8206, '\p{Is_Word_Break=-ZWJ}', "");
+    Expect(1, 8206, '\p{^Is_Word_Break=-ZWJ}', "");
+    Expect(1, 8206, '\P{Is_Word_Break=-ZWJ}', "");
+    Expect(0, 8206, '\P{^Is_Word_Break=-ZWJ}', "");
+    Error('\p{Is_WB= :=ZWJ}');
+    Error('\P{Is_WB= :=ZWJ}');
     Expect(1, 8205, '\p{Is_WB=zwj}', "");
     Expect(0, 8205, '\p{^Is_WB=zwj}', "");
     Expect(0, 8205, '\P{Is_WB=zwj}', "");
@@ -157365,16 +158829,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 8206, '\p{^Is_WB=zwj}', "");
     Expect(1, 8206, '\P{Is_WB=zwj}', "");
     Expect(0, 8206, '\P{^Is_WB=zwj}', "");
-    Expect(1, 8205, '\p{Is_WB=_	ZWJ}', "");
-    Expect(0, 8205, '\p{^Is_WB=_	ZWJ}', "");
-    Expect(0, 8205, '\P{Is_WB=_	ZWJ}', "");
-    Expect(1, 8205, '\P{^Is_WB=_	ZWJ}', "");
-    Expect(0, 8206, '\p{Is_WB=_	ZWJ}', "");
-    Expect(1, 8206, '\p{^Is_WB=_	ZWJ}', "");
-    Expect(1, 8206, '\P{Is_WB=_	ZWJ}', "");
-    Expect(0, 8206, '\P{^Is_WB=_	ZWJ}', "");
-    Error('\p{White_Space=/a/		No}');
-    Error('\P{White_Space=/a/		No}');
+    Expect(1, 8205, '\p{Is_WB=--ZWJ}', "");
+    Expect(0, 8205, '\p{^Is_WB=--ZWJ}', "");
+    Expect(0, 8205, '\P{Is_WB=--ZWJ}', "");
+    Expect(1, 8205, '\P{^Is_WB=--ZWJ}', "");
+    Expect(0, 8206, '\p{Is_WB=--ZWJ}', "");
+    Expect(1, 8206, '\p{^Is_WB=--ZWJ}', "");
+    Expect(1, 8206, '\P{Is_WB=--ZWJ}', "");
+    Expect(0, 8206, '\P{^Is_WB=--ZWJ}', "");
+    Error('\p{White_Space: /a/NO}');
+    Error('\P{White_Space: /a/NO}');
     Expect(1, 12289, '\p{White_Space=:\ANo\z:}', "");;
     Expect(0, 12288, '\p{White_Space=:\ANo\z:}', "");;
     Expect(1, 12289, '\p{White_Space=no}', "");
@@ -157387,60 +158851,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12288, '\P{^White_Space=no}', "");
     Expect(1, 12289, '\p{White_Space=:\Ano\z:}', "");;
     Expect(0, 12288, '\p{White_Space=:\Ano\z:}', "");;
-    Expect(1, 12289, '\p{White_Space=_NO}', "");
-    Expect(0, 12289, '\p{^White_Space=_NO}', "");
-    Expect(0, 12289, '\P{White_Space=_NO}', "");
-    Expect(1, 12289, '\P{^White_Space=_NO}', "");
-    Expect(0, 12288, '\p{White_Space=_NO}', "");
-    Expect(1, 12288, '\p{^White_Space=_NO}', "");
-    Expect(1, 12288, '\P{White_Space=_NO}', "");
-    Expect(0, 12288, '\P{^White_Space=_NO}', "");
-    Error('\p{WSpace=_/a/N}');
-    Error('\P{WSpace=_/a/N}');
+    Error('\p{WSpace=-_N:=}');
+    Error('\P{WSpace=-_N:=}');
     Expect(1, 12289, '\p{WSpace=:\AN\z:}', "");;
     Expect(0, 12288, '\p{WSpace=:\AN\z:}', "");;
-    Expect(1, 12289, '\p{WSpace=n}', "");
-    Expect(0, 12289, '\p{^WSpace=n}', "");
-    Expect(0, 12289, '\P{WSpace=n}', "");
-    Expect(1, 12289, '\P{^WSpace=n}', "");
-    Expect(0, 12288, '\p{WSpace=n}', "");
-    Expect(1, 12288, '\p{^WSpace=n}', "");
-    Expect(1, 12288, '\P{WSpace=n}', "");
-    Expect(0, 12288, '\P{^WSpace=n}', "");
+    Expect(1, 12289, '\p{WSpace:   n}', "");
+    Expect(0, 12289, '\p{^WSpace:   n}', "");
+    Expect(0, 12289, '\P{WSpace:   n}', "");
+    Expect(1, 12289, '\P{^WSpace:   n}', "");
+    Expect(0, 12288, '\p{WSpace:   n}', "");
+    Expect(1, 12288, '\p{^WSpace:   n}', "");
+    Expect(1, 12288, '\P{WSpace:   n}', "");
+    Expect(0, 12288, '\P{^WSpace:   n}', "");
     Expect(1, 12289, '\p{WSpace=:\An\z:}', "");;
     Expect(0, 12288, '\p{WSpace=:\An\z:}', "");;
-    Expect(1, 12289, '\p{WSpace=	N}', "");
-    Expect(0, 12289, '\p{^WSpace=	N}', "");
-    Expect(0, 12289, '\P{WSpace=	N}', "");
-    Expect(1, 12289, '\P{^WSpace=	N}', "");
-    Expect(0, 12288, '\p{WSpace=	N}', "");
-    Expect(1, 12288, '\p{^WSpace=	N}', "");
-    Expect(1, 12288, '\P{WSpace=	N}', "");
-    Expect(0, 12288, '\P{^WSpace=	N}', "");
-    Error('\p{Space: -:=f}');
-    Error('\P{Space: -:=f}');
+    Expect(1, 12289, '\p{WSpace=-	n}', "");
+    Expect(0, 12289, '\p{^WSpace=-	n}', "");
+    Expect(0, 12289, '\P{WSpace=-	n}', "");
+    Expect(1, 12289, '\P{^WSpace=-	n}', "");
+    Expect(0, 12288, '\p{WSpace=-	n}', "");
+    Expect(1, 12288, '\p{^WSpace=-	n}', "");
+    Expect(1, 12288, '\P{WSpace=-	n}', "");
+    Expect(0, 12288, '\P{^WSpace=-	n}', "");
+    Error('\p{Space= F/a/}');
+    Error('\P{Space= F/a/}');
     Expect(1, 12289, '\p{Space=:\AF\z:}', "");;
     Expect(0, 12288, '\p{Space=:\AF\z:}', "");;
-    Expect(1, 12289, '\p{Space=f}', "");
-    Expect(0, 12289, '\p{^Space=f}', "");
-    Expect(0, 12289, '\P{Space=f}', "");
-    Expect(1, 12289, '\P{^Space=f}', "");
-    Expect(0, 12288, '\p{Space=f}', "");
-    Expect(1, 12288, '\p{^Space=f}', "");
-    Expect(1, 12288, '\P{Space=f}', "");
-    Expect(0, 12288, '\P{^Space=f}', "");
+    Expect(1, 12289, '\p{Space:	f}', "");
+    Expect(0, 12289, '\p{^Space:	f}', "");
+    Expect(0, 12289, '\P{Space:	f}', "");
+    Expect(1, 12289, '\P{^Space:	f}', "");
+    Expect(0, 12288, '\p{Space:	f}', "");
+    Expect(1, 12288, '\p{^Space:	f}', "");
+    Expect(1, 12288, '\P{Space:	f}', "");
+    Expect(0, 12288, '\P{^Space:	f}', "");
     Expect(1, 12289, '\p{Space=:\Af\z:}', "");;
     Expect(0, 12288, '\p{Space=:\Af\z:}', "");;
-    Expect(1, 12289, '\p{Space=-f}', "");
-    Expect(0, 12289, '\p{^Space=-f}', "");
-    Expect(0, 12289, '\P{Space=-f}', "");
-    Expect(1, 12289, '\P{^Space=-f}', "");
-    Expect(0, 12288, '\p{Space=-f}', "");
-    Expect(1, 12288, '\p{^Space=-f}', "");
-    Expect(1, 12288, '\P{Space=-f}', "");
-    Expect(0, 12288, '\P{^Space=-f}', "");
-    Error('\p{Is_White_Space:/a/false}');
-    Error('\P{Is_White_Space:/a/false}');
+    Expect(1, 12289, '\p{Space= f}', "");
+    Expect(0, 12289, '\p{^Space= f}', "");
+    Expect(0, 12289, '\P{Space= f}', "");
+    Expect(1, 12289, '\P{^Space= f}', "");
+    Expect(0, 12288, '\p{Space= f}', "");
+    Expect(1, 12288, '\p{^Space= f}', "");
+    Expect(1, 12288, '\P{Space= f}', "");
+    Expect(0, 12288, '\P{^Space= f}', "");
+    Error('\p{Is_White_Space= 	false:=}');
+    Error('\P{Is_White_Space= 	false:=}');
     Expect(1, 12289, '\p{Is_White_Space=false}', "");
     Expect(0, 12289, '\p{^Is_White_Space=false}', "");
     Expect(0, 12289, '\P{Is_White_Space=false}', "");
@@ -157449,16 +158905,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12288, '\p{^Is_White_Space=false}', "");
     Expect(1, 12288, '\P{Is_White_Space=false}', "");
     Expect(0, 12288, '\P{^Is_White_Space=false}', "");
-    Expect(1, 12289, '\p{Is_White_Space= False}', "");
-    Expect(0, 12289, '\p{^Is_White_Space= False}', "");
-    Expect(0, 12289, '\P{Is_White_Space= False}', "");
-    Expect(1, 12289, '\P{^Is_White_Space= False}', "");
-    Expect(0, 12288, '\p{Is_White_Space= False}', "");
-    Expect(1, 12288, '\p{^Is_White_Space= False}', "");
-    Expect(1, 12288, '\P{Is_White_Space= False}', "");
-    Expect(0, 12288, '\P{^Is_White_Space= False}', "");
-    Error('\p{Is_WSpace:	/a/ NO}');
-    Error('\P{Is_WSpace:	/a/ NO}');
+    Expect(1, 12289, '\p{Is_White_Space=		false}', "");
+    Expect(0, 12289, '\p{^Is_White_Space=		false}', "");
+    Expect(0, 12289, '\P{Is_White_Space=		false}', "");
+    Expect(1, 12289, '\P{^Is_White_Space=		false}', "");
+    Expect(0, 12288, '\p{Is_White_Space=		false}', "");
+    Expect(1, 12288, '\p{^Is_White_Space=		false}', "");
+    Expect(1, 12288, '\P{Is_White_Space=		false}', "");
+    Expect(0, 12288, '\P{^Is_White_Space=		false}', "");
+    Error('\p{Is_WSpace=-_NO/a/}');
+    Error('\P{Is_WSpace=-_NO/a/}');
     Expect(1, 12289, '\p{Is_WSpace=no}', "");
     Expect(0, 12289, '\p{^Is_WSpace=no}', "");
     Expect(0, 12289, '\P{Is_WSpace=no}', "");
@@ -157467,16 +158923,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12288, '\p{^Is_WSpace=no}', "");
     Expect(1, 12288, '\P{Is_WSpace=no}', "");
     Expect(0, 12288, '\P{^Is_WSpace=no}', "");
-    Expect(1, 12289, '\p{Is_WSpace=	_NO}', "");
-    Expect(0, 12289, '\p{^Is_WSpace=	_NO}', "");
-    Expect(0, 12289, '\P{Is_WSpace=	_NO}', "");
-    Expect(1, 12289, '\P{^Is_WSpace=	_NO}', "");
-    Expect(0, 12288, '\p{Is_WSpace=	_NO}', "");
-    Expect(1, 12288, '\p{^Is_WSpace=	_NO}', "");
-    Expect(1, 12288, '\P{Is_WSpace=	_NO}', "");
-    Expect(0, 12288, '\P{^Is_WSpace=	_NO}', "");
-    Error('\p{Is_Space=:=_N}');
-    Error('\P{Is_Space=:=_N}');
+    Expect(1, 12289, '\p{Is_WSpace= _NO}', "");
+    Expect(0, 12289, '\p{^Is_WSpace= _NO}', "");
+    Expect(0, 12289, '\P{Is_WSpace= _NO}', "");
+    Expect(1, 12289, '\P{^Is_WSpace= _NO}', "");
+    Expect(0, 12288, '\p{Is_WSpace= _NO}', "");
+    Expect(1, 12288, '\p{^Is_WSpace= _NO}', "");
+    Expect(1, 12288, '\P{Is_WSpace= _NO}', "");
+    Expect(0, 12288, '\P{^Is_WSpace= _NO}', "");
+    Error('\p{Is_Space=	:=N}');
+    Error('\P{Is_Space=	:=N}');
     Expect(1, 12289, '\p{Is_Space=n}', "");
     Expect(0, 12289, '\p{^Is_Space=n}', "");
     Expect(0, 12289, '\P{Is_Space=n}', "");
@@ -157485,16 +158941,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12288, '\p{^Is_Space=n}', "");
     Expect(1, 12288, '\P{Is_Space=n}', "");
     Expect(0, 12288, '\P{^Is_Space=n}', "");
-    Expect(1, 12289, '\p{Is_Space=	 N}', "");
-    Expect(0, 12289, '\p{^Is_Space=	 N}', "");
-    Expect(0, 12289, '\P{Is_Space=	 N}', "");
-    Expect(1, 12289, '\P{^Is_Space=	 N}', "");
-    Expect(0, 12288, '\p{Is_Space=	 N}', "");
-    Expect(1, 12288, '\p{^Is_Space=	 N}', "");
-    Expect(1, 12288, '\P{Is_Space=	 N}', "");
-    Expect(0, 12288, '\P{^Is_Space=	 N}', "");
-    Error('\p{White_Space=:=  yes}');
-    Error('\P{White_Space=:=  yes}');
+    Expect(1, 12289, '\p{Is_Space=-	n}', "");
+    Expect(0, 12289, '\p{^Is_Space=-	n}', "");
+    Expect(0, 12289, '\P{Is_Space=-	n}', "");
+    Expect(1, 12289, '\P{^Is_Space=-	n}', "");
+    Expect(0, 12288, '\p{Is_Space=-	n}', "");
+    Expect(1, 12288, '\p{^Is_Space=-	n}', "");
+    Expect(1, 12288, '\P{Is_Space=-	n}', "");
+    Expect(0, 12288, '\P{^Is_Space=-	n}', "");
+    Error('\p{White_Space=--YES/a/}');
+    Error('\P{White_Space=--YES/a/}');
     Expect(1, 12288, '\p{White_Space=:\AYes\z:}', "");;
     Expect(0, 12289, '\p{White_Space=:\AYes\z:}', "");;
     Expect(1, 12288, '\p{White_Space=yes}', "");
@@ -157507,16 +158963,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^White_Space=yes}', "");
     Expect(1, 12288, '\p{White_Space=:\Ayes\z:}', "");;
     Expect(0, 12289, '\p{White_Space=:\Ayes\z:}', "");;
-    Expect(1, 12288, '\p{White_Space=- YES}', "");
-    Expect(0, 12288, '\p{^White_Space=- YES}', "");
-    Expect(0, 12288, '\P{White_Space=- YES}', "");
-    Expect(1, 12288, '\P{^White_Space=- YES}', "");
-    Expect(0, 12289, '\p{White_Space=- YES}', "");
-    Expect(1, 12289, '\p{^White_Space=- YES}', "");
-    Expect(1, 12289, '\P{White_Space=- YES}', "");
-    Expect(0, 12289, '\P{^White_Space=- YES}', "");
-    Error('\p{WSpace=-	y/a/}');
-    Error('\P{WSpace=-	y/a/}');
+    Expect(1, 12288, '\p{White_Space=-yes}', "");
+    Expect(0, 12288, '\p{^White_Space=-yes}', "");
+    Expect(0, 12288, '\P{White_Space=-yes}', "");
+    Expect(1, 12288, '\P{^White_Space=-yes}', "");
+    Expect(0, 12289, '\p{White_Space=-yes}', "");
+    Expect(1, 12289, '\p{^White_Space=-yes}', "");
+    Expect(1, 12289, '\P{White_Space=-yes}', "");
+    Expect(0, 12289, '\P{^White_Space=-yes}', "");
+    Error('\p{WSpace:-:=Y}');
+    Error('\P{WSpace:-:=Y}');
     Expect(1, 12288, '\p{WSpace=:\AY\z:}', "");;
     Expect(0, 12289, '\p{WSpace=:\AY\z:}', "");;
     Expect(1, 12288, '\p{WSpace=y}', "");
@@ -157529,16 +158985,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^WSpace=y}', "");
     Expect(1, 12288, '\p{WSpace=:\Ay\z:}', "");;
     Expect(0, 12289, '\p{WSpace=:\Ay\z:}', "");;
-    Expect(1, 12288, '\p{WSpace=		y}', "");
-    Expect(0, 12288, '\p{^WSpace=		y}', "");
-    Expect(0, 12288, '\P{WSpace=		y}', "");
-    Expect(1, 12288, '\P{^WSpace=		y}', "");
-    Expect(0, 12289, '\p{WSpace=		y}', "");
-    Expect(1, 12289, '\p{^WSpace=		y}', "");
-    Expect(1, 12289, '\P{WSpace=		y}', "");
-    Expect(0, 12289, '\P{^WSpace=		y}', "");
-    Error('\p{Space=_:=t}');
-    Error('\P{Space=_:=t}');
+    Expect(1, 12288, '\p{WSpace:_Y}', "");
+    Expect(0, 12288, '\p{^WSpace:_Y}', "");
+    Expect(0, 12288, '\P{WSpace:_Y}', "");
+    Expect(1, 12288, '\P{^WSpace:_Y}', "");
+    Expect(0, 12289, '\p{WSpace:_Y}', "");
+    Expect(1, 12289, '\p{^WSpace:_Y}', "");
+    Expect(1, 12289, '\P{WSpace:_Y}', "");
+    Expect(0, 12289, '\P{^WSpace:_Y}', "");
+    Error('\p{Space=_ T:=}');
+    Error('\P{Space=_ T:=}');
     Expect(1, 12288, '\p{Space=:\AT\z:}', "");;
     Expect(0, 12289, '\p{Space=:\AT\z:}', "");;
     Expect(1, 12288, '\p{Space=t}', "");
@@ -157551,52 +159007,52 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 12289, '\P{^Space=t}', "");
     Expect(1, 12288, '\p{Space=:\At\z:}', "");;
     Expect(0, 12289, '\p{Space=:\At\z:}', "");;
-    Expect(1, 12288, '\p{Space=-T}', "");
-    Expect(0, 12288, '\p{^Space=-T}', "");
-    Expect(0, 12288, '\P{Space=-T}', "");
-    Expect(1, 12288, '\P{^Space=-T}', "");
-    Expect(0, 12289, '\p{Space=-T}', "");
-    Expect(1, 12289, '\p{^Space=-T}', "");
-    Expect(1, 12289, '\P{Space=-T}', "");
-    Expect(0, 12289, '\P{^Space=-T}', "");
-    Error('\p{Is_White_Space=:=TRUE}');
-    Error('\P{Is_White_Space=:=TRUE}');
-    Expect(1, 12288, '\p{Is_White_Space: true}', "");
-    Expect(0, 12288, '\p{^Is_White_Space: true}', "");
-    Expect(0, 12288, '\P{Is_White_Space: true}', "");
-    Expect(1, 12288, '\P{^Is_White_Space: true}', "");
-    Expect(0, 12289, '\p{Is_White_Space: true}', "");
-    Expect(1, 12289, '\p{^Is_White_Space: true}', "");
-    Expect(1, 12289, '\P{Is_White_Space: true}', "");
-    Expect(0, 12289, '\P{^Is_White_Space: true}', "");
-    Expect(1, 12288, '\p{Is_White_Space=_	True}', "");
-    Expect(0, 12288, '\p{^Is_White_Space=_	True}', "");
-    Expect(0, 12288, '\P{Is_White_Space=_	True}', "");
-    Expect(1, 12288, '\P{^Is_White_Space=_	True}', "");
-    Expect(0, 12289, '\p{Is_White_Space=_	True}', "");
-    Expect(1, 12289, '\p{^Is_White_Space=_	True}', "");
-    Expect(1, 12289, '\P{Is_White_Space=_	True}', "");
-    Expect(0, 12289, '\P{^Is_White_Space=_	True}', "");
-    Error('\p{Is_WSpace=_/a/yes}');
-    Error('\P{Is_WSpace=_/a/yes}');
-    Expect(1, 12288, '\p{Is_WSpace=yes}', "");
-    Expect(0, 12288, '\p{^Is_WSpace=yes}', "");
-    Expect(0, 12288, '\P{Is_WSpace=yes}', "");
-    Expect(1, 12288, '\P{^Is_WSpace=yes}', "");
-    Expect(0, 12289, '\p{Is_WSpace=yes}', "");
-    Expect(1, 12289, '\p{^Is_WSpace=yes}', "");
-    Expect(1, 12289, '\P{Is_WSpace=yes}', "");
-    Expect(0, 12289, '\P{^Is_WSpace=yes}', "");
-    Expect(1, 12288, '\p{Is_WSpace: -YES}', "");
-    Expect(0, 12288, '\p{^Is_WSpace: -YES}', "");
-    Expect(0, 12288, '\P{Is_WSpace: -YES}', "");
-    Expect(1, 12288, '\P{^Is_WSpace: -YES}', "");
-    Expect(0, 12289, '\p{Is_WSpace: -YES}', "");
-    Expect(1, 12289, '\p{^Is_WSpace: -YES}', "");
-    Expect(1, 12289, '\P{Is_WSpace: -YES}', "");
-    Expect(0, 12289, '\P{^Is_WSpace: -YES}', "");
-    Error('\p{Is_Space: _-Y/a/}');
-    Error('\P{Is_Space: _-Y/a/}');
+    Expect(1, 12288, '\p{Space=  T}', "");
+    Expect(0, 12288, '\p{^Space=  T}', "");
+    Expect(0, 12288, '\P{Space=  T}', "");
+    Expect(1, 12288, '\P{^Space=  T}', "");
+    Expect(0, 12289, '\p{Space=  T}', "");
+    Expect(1, 12289, '\p{^Space=  T}', "");
+    Expect(1, 12289, '\P{Space=  T}', "");
+    Expect(0, 12289, '\P{^Space=  T}', "");
+    Error('\p{Is_White_Space=	True:=}');
+    Error('\P{Is_White_Space=	True:=}');
+    Expect(1, 12288, '\p{Is_White_Space=true}', "");
+    Expect(0, 12288, '\p{^Is_White_Space=true}', "");
+    Expect(0, 12288, '\P{Is_White_Space=true}', "");
+    Expect(1, 12288, '\P{^Is_White_Space=true}', "");
+    Expect(0, 12289, '\p{Is_White_Space=true}', "");
+    Expect(1, 12289, '\p{^Is_White_Space=true}', "");
+    Expect(1, 12289, '\P{Is_White_Space=true}', "");
+    Expect(0, 12289, '\P{^Is_White_Space=true}', "");
+    Expect(1, 12288, '\p{Is_White_Space=-_true}', "");
+    Expect(0, 12288, '\p{^Is_White_Space=-_true}', "");
+    Expect(0, 12288, '\P{Is_White_Space=-_true}', "");
+    Expect(1, 12288, '\P{^Is_White_Space=-_true}', "");
+    Expect(0, 12289, '\p{Is_White_Space=-_true}', "");
+    Expect(1, 12289, '\p{^Is_White_Space=-_true}', "");
+    Expect(1, 12289, '\P{Is_White_Space=-_true}', "");
+    Expect(0, 12289, '\P{^Is_White_Space=-_true}', "");
+    Error('\p{Is_WSpace=_ Yes/a/}');
+    Error('\P{Is_WSpace=_ Yes/a/}');
+    Expect(1, 12288, '\p{Is_WSpace: yes}', "");
+    Expect(0, 12288, '\p{^Is_WSpace: yes}', "");
+    Expect(0, 12288, '\P{Is_WSpace: yes}', "");
+    Expect(1, 12288, '\P{^Is_WSpace: yes}', "");
+    Expect(0, 12289, '\p{Is_WSpace: yes}', "");
+    Expect(1, 12289, '\p{^Is_WSpace: yes}', "");
+    Expect(1, 12289, '\P{Is_WSpace: yes}', "");
+    Expect(0, 12289, '\P{^Is_WSpace: yes}', "");
+    Expect(1, 12288, '\p{Is_WSpace=Yes}', "");
+    Expect(0, 12288, '\p{^Is_WSpace=Yes}', "");
+    Expect(0, 12288, '\P{Is_WSpace=Yes}', "");
+    Expect(1, 12288, '\P{^Is_WSpace=Yes}', "");
+    Expect(0, 12289, '\p{Is_WSpace=Yes}', "");
+    Expect(1, 12289, '\p{^Is_WSpace=Yes}', "");
+    Expect(1, 12289, '\P{Is_WSpace=Yes}', "");
+    Expect(0, 12289, '\P{^Is_WSpace=Yes}', "");
+    Error('\p{Is_Space=/a/_	y}');
+    Error('\P{Is_Space=/a/_	y}');
     Expect(1, 12288, '\p{Is_Space=y}', "");
     Expect(0, 12288, '\p{^Is_Space=y}', "");
     Expect(0, 12288, '\P{Is_Space=y}', "");
@@ -157605,16 +159061,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 12289, '\p{^Is_Space=y}', "");
     Expect(1, 12289, '\P{Is_Space=y}', "");
     Expect(0, 12289, '\P{^Is_Space=y}', "");
-    Expect(1, 12288, '\p{Is_Space=	_y}', "");
-    Expect(0, 12288, '\p{^Is_Space=	_y}', "");
-    Expect(0, 12288, '\P{Is_Space=	_y}', "");
-    Expect(1, 12288, '\P{^Is_Space=	_y}', "");
-    Expect(0, 12289, '\p{Is_Space=	_y}', "");
-    Expect(1, 12289, '\p{^Is_Space=	_y}', "");
-    Expect(1, 12289, '\P{Is_Space=	_y}', "");
-    Expect(0, 12289, '\P{^Is_Space=	_y}', "");
-    Error('\p{XID_Continue= NO/a/}');
-    Error('\P{XID_Continue= NO/a/}');
+    Expect(1, 12288, '\p{Is_Space= y}', "");
+    Expect(0, 12288, '\p{^Is_Space= y}', "");
+    Expect(0, 12288, '\P{Is_Space= y}', "");
+    Expect(1, 12288, '\P{^Is_Space= y}', "");
+    Expect(0, 12289, '\p{Is_Space= y}', "");
+    Expect(1, 12289, '\p{^Is_Space= y}', "");
+    Expect(1, 12289, '\P{Is_Space= y}', "");
+    Expect(0, 12289, '\P{^Is_Space= y}', "");
+    Error('\p{XID_Continue=	/a/No}');
+    Error('\P{XID_Continue=	/a/No}');
     Expect(1, 918000, '\p{XID_Continue=:\ANo\z:}', "");;
     Expect(0, 917999, '\p{XID_Continue=:\ANo\z:}', "");;
     Expect(1, 918000, '\p{XID_Continue=no}', "");
@@ -157627,16 +159083,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^XID_Continue=no}', "");
     Expect(1, 918000, '\p{XID_Continue=:\Ano\z:}', "");;
     Expect(0, 917999, '\p{XID_Continue=:\Ano\z:}', "");;
-    Expect(1, 918000, '\p{XID_Continue=  NO}', "");
-    Expect(0, 918000, '\p{^XID_Continue=  NO}', "");
-    Expect(0, 918000, '\P{XID_Continue=  NO}', "");
-    Expect(1, 918000, '\P{^XID_Continue=  NO}', "");
-    Expect(0, 917999, '\p{XID_Continue=  NO}', "");
-    Expect(1, 917999, '\p{^XID_Continue=  NO}', "");
-    Expect(1, 917999, '\P{XID_Continue=  NO}', "");
-    Expect(0, 917999, '\P{^XID_Continue=  NO}', "");
-    Error('\p{XIDC=_N:=}');
-    Error('\P{XIDC=_N:=}');
+    Expect(1, 918000, '\p{XID_Continue=NO}', "");
+    Expect(0, 918000, '\p{^XID_Continue=NO}', "");
+    Expect(0, 918000, '\P{XID_Continue=NO}', "");
+    Expect(1, 918000, '\P{^XID_Continue=NO}', "");
+    Expect(0, 917999, '\p{XID_Continue=NO}', "");
+    Expect(1, 917999, '\p{^XID_Continue=NO}', "");
+    Expect(1, 917999, '\P{XID_Continue=NO}', "");
+    Expect(0, 917999, '\P{^XID_Continue=NO}', "");
+    Error('\p{XIDC=- N:=}');
+    Error('\P{XIDC=- N:=}');
     Expect(1, 918000, '\p{XIDC=:\AN\z:}', "");;
     Expect(0, 917999, '\p{XIDC=:\AN\z:}', "");;
     Expect(1, 918000, '\p{XIDC=n}', "");
@@ -157649,16 +159105,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 917999, '\P{^XIDC=n}', "");
     Expect(1, 918000, '\p{XIDC=:\An\z:}', "");;
     Expect(0, 917999, '\p{XIDC=:\An\z:}', "");;
-    Expect(1, 918000, '\p{XIDC= -N}', "");
-    Expect(0, 918000, '\p{^XIDC= -N}', "");
-    Expect(0, 918000, '\P{XIDC= -N}', "");
-    Expect(1, 918000, '\P{^XIDC= -N}', "");
-    Expect(0, 917999, '\p{XIDC= -N}', "");
-    Expect(1, 917999, '\p{^XIDC= -N}', "");
-    Expect(1, 917999, '\P{XIDC= -N}', "");
-    Expect(0, 917999, '\P{^XIDC= -N}', "");
-    Error('\p{Is_XID_Continue= /a/F}');
-    Error('\P{Is_XID_Continue= /a/F}');
+    Expect(1, 918000, '\p{XIDC=__n}', "");
+    Expect(0, 918000, '\p{^XIDC=__n}', "");
+    Expect(0, 918000, '\P{XIDC=__n}', "");
+    Expect(1, 918000, '\P{^XIDC=__n}', "");
+    Expect(0, 917999, '\p{XIDC=__n}', "");
+    Expect(1, 917999, '\p{^XIDC=__n}', "");
+    Expect(1, 917999, '\P{XIDC=__n}', "");
+    Expect(0, 917999, '\P{^XIDC=__n}', "");
+    Error('\p{Is_XID_Continue: -/a/F}');
+    Error('\P{Is_XID_Continue: -/a/F}');
     Expect(1, 918000, '\p{Is_XID_Continue=f}', "");
     Expect(0, 918000, '\p{^Is_XID_Continue=f}', "");
     Expect(0, 918000, '\P{Is_XID_Continue=f}', "");
@@ -157667,34 +159123,34 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 917999, '\p{^Is_XID_Continue=f}', "");
     Expect(1, 917999, '\P{Is_XID_Continue=f}', "");
     Expect(0, 917999, '\P{^Is_XID_Continue=f}', "");
-    Expect(1, 918000, '\p{Is_XID_Continue=-	F}', "");
-    Expect(0, 918000, '\p{^Is_XID_Continue=-	F}', "");
-    Expect(0, 918000, '\P{Is_XID_Continue=-	F}', "");
-    Expect(1, 918000, '\P{^Is_XID_Continue=-	F}', "");
-    Expect(0, 917999, '\p{Is_XID_Continue=-	F}', "");
-    Expect(1, 917999, '\p{^Is_XID_Continue=-	F}', "");
-    Expect(1, 917999, '\P{Is_XID_Continue=-	F}', "");
-    Expect(0, 917999, '\P{^Is_XID_Continue=-	F}', "");
-    Error('\p{Is_XIDC= /a/False}');
-    Error('\P{Is_XIDC= /a/False}');
-    Expect(1, 918000, '\p{Is_XIDC:	false}', "");
-    Expect(0, 918000, '\p{^Is_XIDC:	false}', "");
-    Expect(0, 918000, '\P{Is_XIDC:	false}', "");
-    Expect(1, 918000, '\P{^Is_XIDC:	false}', "");
-    Expect(0, 917999, '\p{Is_XIDC:	false}', "");
-    Expect(1, 917999, '\p{^Is_XIDC:	false}', "");
-    Expect(1, 917999, '\P{Is_XIDC:	false}', "");
-    Expect(0, 917999, '\P{^Is_XIDC:	false}', "");
-    Expect(1, 918000, '\p{Is_XIDC=	_False}', "");
-    Expect(0, 918000, '\p{^Is_XIDC=	_False}', "");
-    Expect(0, 918000, '\P{Is_XIDC=	_False}', "");
-    Expect(1, 918000, '\P{^Is_XIDC=	_False}', "");
-    Expect(0, 917999, '\p{Is_XIDC=	_False}', "");
-    Expect(1, 917999, '\p{^Is_XIDC=	_False}', "");
-    Expect(1, 917999, '\P{Is_XIDC=	_False}', "");
-    Expect(0, 917999, '\P{^Is_XIDC=	_False}', "");
-    Error('\p{XID_Continue:   :=-Yes}');
-    Error('\P{XID_Continue:   :=-Yes}');
+    Expect(1, 918000, '\p{Is_XID_Continue=F}', "");
+    Expect(0, 918000, '\p{^Is_XID_Continue=F}', "");
+    Expect(0, 918000, '\P{Is_XID_Continue=F}', "");
+    Expect(1, 918000, '\P{^Is_XID_Continue=F}', "");
+    Expect(0, 917999, '\p{Is_XID_Continue=F}', "");
+    Expect(1, 917999, '\p{^Is_XID_Continue=F}', "");
+    Expect(1, 917999, '\P{Is_XID_Continue=F}', "");
+    Expect(0, 917999, '\P{^Is_XID_Continue=F}', "");
+    Error('\p{Is_XIDC=_-False:=}');
+    Error('\P{Is_XIDC=_-False:=}');
+    Expect(1, 918000, '\p{Is_XIDC=false}', "");
+    Expect(0, 918000, '\p{^Is_XIDC=false}', "");
+    Expect(0, 918000, '\P{Is_XIDC=false}', "");
+    Expect(1, 918000, '\P{^Is_XIDC=false}', "");
+    Expect(0, 917999, '\p{Is_XIDC=false}', "");
+    Expect(1, 917999, '\p{^Is_XIDC=false}', "");
+    Expect(1, 917999, '\P{Is_XIDC=false}', "");
+    Expect(0, 917999, '\P{^Is_XIDC=false}', "");
+    Expect(1, 918000, '\p{Is_XIDC=_-False}', "");
+    Expect(0, 918000, '\p{^Is_XIDC=_-False}', "");
+    Expect(0, 918000, '\P{Is_XIDC=_-False}', "");
+    Expect(1, 918000, '\P{^Is_XIDC=_-False}', "");
+    Expect(0, 917999, '\p{Is_XIDC=_-False}', "");
+    Expect(1, 917999, '\p{^Is_XIDC=_-False}', "");
+    Expect(1, 917999, '\P{Is_XIDC=_-False}', "");
+    Expect(0, 917999, '\P{^Is_XIDC=_-False}', "");
+    Error('\p{XID_Continue=/a/ -Yes}');
+    Error('\P{XID_Continue=/a/ -Yes}');
     Expect(1, 917999, '\p{XID_Continue=:\AYes\z:}', "");;
     Expect(0, 918000, '\p{XID_Continue=:\AYes\z:}', "");;
     Expect(1, 917999, '\p{XID_Continue=yes}', "");
@@ -157707,16 +159163,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^XID_Continue=yes}', "");
     Expect(1, 917999, '\p{XID_Continue=:\Ayes\z:}', "");;
     Expect(0, 918000, '\p{XID_Continue=:\Ayes\z:}', "");;
-    Expect(1, 917999, '\p{XID_Continue=	_yes}', "");
-    Expect(0, 917999, '\p{^XID_Continue=	_yes}', "");
-    Expect(0, 917999, '\P{XID_Continue=	_yes}', "");
-    Expect(1, 917999, '\P{^XID_Continue=	_yes}', "");
-    Expect(0, 918000, '\p{XID_Continue=	_yes}', "");
-    Expect(1, 918000, '\p{^XID_Continue=	_yes}', "");
-    Expect(1, 918000, '\P{XID_Continue=	_yes}', "");
-    Expect(0, 918000, '\P{^XID_Continue=	_yes}', "");
-    Error('\p{XIDC= _Y:=}');
-    Error('\P{XIDC= _Y:=}');
+    Expect(1, 917999, '\p{XID_Continue=_yes}', "");
+    Expect(0, 917999, '\p{^XID_Continue=_yes}', "");
+    Expect(0, 917999, '\P{XID_Continue=_yes}', "");
+    Expect(1, 917999, '\P{^XID_Continue=_yes}', "");
+    Expect(0, 918000, '\p{XID_Continue=_yes}', "");
+    Expect(1, 918000, '\p{^XID_Continue=_yes}', "");
+    Expect(1, 918000, '\P{XID_Continue=_yes}', "");
+    Expect(0, 918000, '\P{^XID_Continue=_yes}', "");
+    Error('\p{XIDC=	y/a/}');
+    Error('\P{XIDC=	y/a/}');
     Expect(1, 917999, '\p{XIDC=:\AY\z:}', "");;
     Expect(0, 918000, '\p{XIDC=:\AY\z:}', "");;
     Expect(1, 917999, '\p{XIDC=y}', "");
@@ -157729,16 +159185,16 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(0, 918000, '\P{^XIDC=y}', "");
     Expect(1, 917999, '\p{XIDC=:\Ay\z:}', "");;
     Expect(0, 918000, '\p{XIDC=:\Ay\z:}', "");;
-    Expect(1, 917999, '\p{XIDC=	y}', "");
-    Expect(0, 917999, '\p{^XIDC=	y}', "");
-    Expect(0, 917999, '\P{XIDC=	y}', "");
-    Expect(1, 917999, '\P{^XIDC=	y}', "");
-    Expect(0, 918000, '\p{XIDC=	y}', "");
-    Expect(1, 918000, '\p{^XIDC=	y}', "");
-    Expect(1, 918000, '\P{XIDC=	y}', "");
-    Expect(0, 918000, '\P{^XIDC=	y}', "");
-    Error('\p{Is_XID_Continue=		t/a/}');
-    Error('\P{Is_XID_Continue=		t/a/}');
+    Expect(1, 917999, '\p{XIDC= Y}', "");
+    Expect(0, 917999, '\p{^XIDC= Y}', "");
+    Expect(0, 917999, '\P{XIDC= Y}', "");
+    Expect(1, 917999, '\P{^XIDC= Y}', "");
+    Expect(0, 918000, '\p{XIDC= Y}', "");
+    Expect(1, 918000, '\p{^XIDC= Y}', "");
+    Expect(1, 918000, '\P{XIDC= Y}', "");
+    Expect(0, 918000, '\P{^XIDC= Y}', "");
+    Error('\p{Is_XID_Continue=_/a/T}');
+    Error('\P{Is_XID_Continue=_/a/T}');
     Expect(1, 917999, '\p{Is_XID_Continue=t}', "");
     Expect(0, 917999, '\p{^Is_XID_Continue=t}', "");
     Expect(0, 917999, '\P{Is_XID_Continue=t}', "");
@@ -157747,198 +159203,198 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Expect(1, 918000, '\p{^Is_XID_Continue=t}', "");
     Expect(1, 918000, '\P{Is_XID_Continue=t}', "");
     Expect(0, 918000, '\P{^Is_XID_Continue=t}', "");
-    Expect(1, 917999, '\p{Is_XID_Continue=	 T}', "");
-    Expect(0, 917999, '\p{^Is_XID_Continue=	 T}', "");
-    Expect(0, 917999, '\P{Is_XID_Continue=	 T}', "");
-    Expect(1, 917999, '\P{^Is_XID_Continue=	 T}', "");
-    Expect(0, 918000, '\p{Is_XID_Continue=	 T}', "");
-    Expect(1, 918000, '\p{^Is_XID_Continue=	 T}', "");
-    Expect(1, 918000, '\P{Is_XID_Continue=	 T}', "");
-    Expect(0, 918000, '\P{^Is_XID_Continue=	 T}', "");
-    Error('\p{Is_XIDC: :=TRUE}');
-    Error('\P{Is_XIDC: :=TRUE}');
-    Expect(1, 917999, '\p{Is_XIDC: true}', "");
-    Expect(0, 917999, '\p{^Is_XIDC: true}', "");
-    Expect(0, 917999, '\P{Is_XIDC: true}', "");
-    Expect(1, 917999, '\P{^Is_XIDC: true}', "");
-    Expect(0, 918000, '\p{Is_XIDC: true}', "");
-    Expect(1, 918000, '\p{^Is_XIDC: true}', "");
-    Expect(1, 918000, '\P{Is_XIDC: true}', "");
-    Expect(0, 918000, '\P{^Is_XIDC: true}', "");
-    Expect(1, 917999, '\p{Is_XIDC= true}', "");
-    Expect(0, 917999, '\p{^Is_XIDC= true}', "");
-    Expect(0, 917999, '\P{Is_XIDC= true}', "");
-    Expect(1, 917999, '\P{^Is_XIDC= true}', "");
-    Expect(0, 918000, '\p{Is_XIDC= true}', "");
-    Expect(1, 918000, '\p{^Is_XIDC= true}', "");
-    Expect(1, 918000, '\P{Is_XIDC= true}', "");
-    Expect(0, 918000, '\P{^Is_XIDC= true}', "");
-    Error('\p{XID_Start= :=no}');
-    Error('\P{XID_Start= :=no}');
-    Expect(1, 201547, '\p{XID_Start=:\ANo\z:}', "");;
-    Expect(0, 201546, '\p{XID_Start=:\ANo\z:}', "");;
-    Expect(1, 201547, '\p{XID_Start:   no}', "");
-    Expect(0, 201547, '\p{^XID_Start:   no}', "");
-    Expect(0, 201547, '\P{XID_Start:   no}', "");
-    Expect(1, 201547, '\P{^XID_Start:   no}', "");
-    Expect(0, 201546, '\p{XID_Start:   no}', "");
-    Expect(1, 201546, '\p{^XID_Start:   no}', "");
-    Expect(1, 201546, '\P{XID_Start:   no}', "");
-    Expect(0, 201546, '\P{^XID_Start:   no}', "");
-    Expect(1, 201547, '\p{XID_Start=:\Ano\z:}', "");;
-    Expect(0, 201546, '\p{XID_Start=:\Ano\z:}', "");;
-    Expect(1, 201547, '\p{XID_Start=-_No}', "");
-    Expect(0, 201547, '\p{^XID_Start=-_No}', "");
-    Expect(0, 201547, '\P{XID_Start=-_No}', "");
-    Expect(1, 201547, '\P{^XID_Start=-_No}', "");
-    Expect(0, 201546, '\p{XID_Start=-_No}', "");
-    Expect(1, 201546, '\p{^XID_Start=-_No}', "");
-    Expect(1, 201546, '\P{XID_Start=-_No}', "");
-    Expect(0, 201546, '\P{^XID_Start=-_No}', "");
-    Error('\p{XIDS: _N/a/}');
-    Error('\P{XIDS: _N/a/}');
-    Expect(1, 201547, '\p{XIDS=:\AN\z:}', "");;
-    Expect(0, 201546, '\p{XIDS=:\AN\z:}', "");;
-    Expect(1, 201547, '\p{XIDS=n}', "");
-    Expect(0, 201547, '\p{^XIDS=n}', "");
-    Expect(0, 201547, '\P{XIDS=n}', "");
-    Expect(1, 201547, '\P{^XIDS=n}', "");
-    Expect(0, 201546, '\p{XIDS=n}', "");
-    Expect(1, 201546, '\p{^XIDS=n}', "");
-    Expect(1, 201546, '\P{XIDS=n}', "");
-    Expect(0, 201546, '\P{^XIDS=n}', "");
-    Expect(1, 201547, '\p{XIDS=:\An\z:}', "");;
-    Expect(0, 201546, '\p{XIDS=:\An\z:}', "");;
-    Expect(1, 201547, '\p{XIDS= 	n}', "");
-    Expect(0, 201547, '\p{^XIDS= 	n}', "");
-    Expect(0, 201547, '\P{XIDS= 	n}', "");
-    Expect(1, 201547, '\P{^XIDS= 	n}', "");
-    Expect(0, 201546, '\p{XIDS= 	n}', "");
-    Expect(1, 201546, '\p{^XIDS= 	n}', "");
-    Expect(1, 201546, '\P{XIDS= 	n}', "");
-    Expect(0, 201546, '\P{^XIDS= 	n}', "");
-    Error('\p{Is_XID_Start= F/a/}');
-    Error('\P{Is_XID_Start= F/a/}');
-    Expect(1, 201547, '\p{Is_XID_Start:f}', "");
-    Expect(0, 201547, '\p{^Is_XID_Start:f}', "");
-    Expect(0, 201547, '\P{Is_XID_Start:f}', "");
-    Expect(1, 201547, '\P{^Is_XID_Start:f}', "");
-    Expect(0, 201546, '\p{Is_XID_Start:f}', "");
-    Expect(1, 201546, '\p{^Is_XID_Start:f}', "");
-    Expect(1, 201546, '\P{Is_XID_Start:f}', "");
-    Expect(0, 201546, '\P{^Is_XID_Start:f}', "");
-    Expect(1, 201547, '\p{Is_XID_Start=		F}', "");
-    Expect(0, 201547, '\p{^Is_XID_Start=		F}', "");
-    Expect(0, 201547, '\P{Is_XID_Start=		F}', "");
-    Expect(1, 201547, '\P{^Is_XID_Start=		F}', "");
-    Expect(0, 201546, '\p{Is_XID_Start=		F}', "");
-    Expect(1, 201546, '\p{^Is_XID_Start=		F}', "");
-    Expect(1, 201546, '\P{Is_XID_Start=		F}', "");
-    Expect(0, 201546, '\P{^Is_XID_Start=		F}', "");
-    Error('\p{Is_XIDS=:=-False}');
-    Error('\P{Is_XIDS=:=-False}');
-    Expect(1, 201547, '\p{Is_XIDS=false}', "");
-    Expect(0, 201547, '\p{^Is_XIDS=false}', "");
-    Expect(0, 201547, '\P{Is_XIDS=false}', "");
-    Expect(1, 201547, '\P{^Is_XIDS=false}', "");
-    Expect(0, 201546, '\p{Is_XIDS=false}', "");
-    Expect(1, 201546, '\p{^Is_XIDS=false}', "");
-    Expect(1, 201546, '\P{Is_XIDS=false}', "");
-    Expect(0, 201546, '\P{^Is_XIDS=false}', "");
-    Expect(1, 201547, '\p{Is_XIDS=-	FALSE}', "");
-    Expect(0, 201547, '\p{^Is_XIDS=-	FALSE}', "");
-    Expect(0, 201547, '\P{Is_XIDS=-	FALSE}', "");
-    Expect(1, 201547, '\P{^Is_XIDS=-	FALSE}', "");
-    Expect(0, 201546, '\p{Is_XIDS=-	FALSE}', "");
-    Expect(1, 201546, '\p{^Is_XIDS=-	FALSE}', "");
-    Expect(1, 201546, '\P{Is_XIDS=-	FALSE}', "");
-    Expect(0, 201546, '\P{^Is_XIDS=-	FALSE}', "");
-    Error('\p{XID_Start:  _Yes:=}');
-    Error('\P{XID_Start:  _Yes:=}');
-    Expect(1, 201546, '\p{XID_Start=:\AYes\z:}', "");;
-    Expect(0, 201547, '\p{XID_Start=:\AYes\z:}', "");;
-    Expect(1, 201546, '\p{XID_Start=yes}', "");
-    Expect(0, 201546, '\p{^XID_Start=yes}', "");
-    Expect(0, 201546, '\P{XID_Start=yes}', "");
-    Expect(1, 201546, '\P{^XID_Start=yes}', "");
-    Expect(0, 201547, '\p{XID_Start=yes}', "");
-    Expect(1, 201547, '\p{^XID_Start=yes}', "");
-    Expect(1, 201547, '\P{XID_Start=yes}', "");
-    Expect(0, 201547, '\P{^XID_Start=yes}', "");
-    Expect(1, 201546, '\p{XID_Start=:\Ayes\z:}', "");;
-    Expect(0, 201547, '\p{XID_Start=:\Ayes\z:}', "");;
-    Expect(1, 201546, '\p{XID_Start=_ YES}', "");
-    Expect(0, 201546, '\p{^XID_Start=_ YES}', "");
-    Expect(0, 201546, '\P{XID_Start=_ YES}', "");
-    Expect(1, 201546, '\P{^XID_Start=_ YES}', "");
-    Expect(0, 201547, '\p{XID_Start=_ YES}', "");
-    Expect(1, 201547, '\p{^XID_Start=_ YES}', "");
-    Expect(1, 201547, '\P{XID_Start=_ YES}', "");
-    Expect(0, 201547, '\P{^XID_Start=_ YES}', "");
-    Error('\p{XIDS=-_y/a/}');
-    Error('\P{XIDS=-_y/a/}');
-    Expect(1, 201546, '\p{XIDS=:\AY\z:}', "");;
-    Expect(0, 201547, '\p{XIDS=:\AY\z:}', "");;
-    Expect(1, 201546, '\p{XIDS=y}', "");
-    Expect(0, 201546, '\p{^XIDS=y}', "");
-    Expect(0, 201546, '\P{XIDS=y}', "");
-    Expect(1, 201546, '\P{^XIDS=y}', "");
-    Expect(0, 201547, '\p{XIDS=y}', "");
-    Expect(1, 201547, '\p{^XIDS=y}', "");
-    Expect(1, 201547, '\P{XIDS=y}', "");
-    Expect(0, 201547, '\P{^XIDS=y}', "");
-    Expect(1, 201546, '\p{XIDS=:\Ay\z:}', "");;
-    Expect(0, 201547, '\p{XIDS=:\Ay\z:}', "");;
-    Expect(1, 201546, '\p{XIDS=-_Y}', "");
-    Expect(0, 201546, '\p{^XIDS=-_Y}', "");
-    Expect(0, 201546, '\P{XIDS=-_Y}', "");
-    Expect(1, 201546, '\P{^XIDS=-_Y}', "");
-    Expect(0, 201547, '\p{XIDS=-_Y}', "");
-    Expect(1, 201547, '\p{^XIDS=-_Y}', "");
-    Expect(1, 201547, '\P{XIDS=-_Y}', "");
-    Expect(0, 201547, '\P{^XIDS=-_Y}', "");
-    Error('\p{Is_XID_Start= /a/T}');
-    Error('\P{Is_XID_Start= /a/T}');
-    Expect(1, 201546, '\p{Is_XID_Start=t}', "");
-    Expect(0, 201546, '\p{^Is_XID_Start=t}', "");
-    Expect(0, 201546, '\P{Is_XID_Start=t}', "");
-    Expect(1, 201546, '\P{^Is_XID_Start=t}', "");
-    Expect(0, 201547, '\p{Is_XID_Start=t}', "");
-    Expect(1, 201547, '\p{^Is_XID_Start=t}', "");
-    Expect(1, 201547, '\P{Is_XID_Start=t}', "");
-    Expect(0, 201547, '\P{^Is_XID_Start=t}', "");
-    Expect(1, 201546, '\p{Is_XID_Start=-T}', "");
-    Expect(0, 201546, '\p{^Is_XID_Start=-T}', "");
-    Expect(0, 201546, '\P{Is_XID_Start=-T}', "");
-    Expect(1, 201546, '\P{^Is_XID_Start=-T}', "");
-    Expect(0, 201547, '\p{Is_XID_Start=-T}', "");
-    Expect(1, 201547, '\p{^Is_XID_Start=-T}', "");
-    Expect(1, 201547, '\P{Is_XID_Start=-T}', "");
-    Expect(0, 201547, '\P{^Is_XID_Start=-T}', "");
-    Error('\p{Is_XIDS=:=- TRUE}');
-    Error('\P{Is_XIDS=:=- TRUE}');
-    Expect(1, 201546, '\p{Is_XIDS=true}', "");
-    Expect(0, 201546, '\p{^Is_XIDS=true}', "");
-    Expect(0, 201546, '\P{Is_XIDS=true}', "");
-    Expect(1, 201546, '\P{^Is_XIDS=true}', "");
-    Expect(0, 201547, '\p{Is_XIDS=true}', "");
-    Expect(1, 201547, '\p{^Is_XIDS=true}', "");
-    Expect(1, 201547, '\P{Is_XIDS=true}', "");
-    Expect(0, 201547, '\P{^Is_XIDS=true}', "");
-    Expect(1, 201546, '\p{Is_XIDS=--True}', "");
-    Expect(0, 201546, '\p{^Is_XIDS=--True}', "");
-    Expect(0, 201546, '\P{Is_XIDS=--True}', "");
-    Expect(1, 201546, '\P{^Is_XIDS=--True}', "");
-    Expect(0, 201547, '\p{Is_XIDS=--True}', "");
-    Expect(1, 201547, '\p{^Is_XIDS=--True}', "");
-    Expect(1, 201547, '\P{Is_XIDS=--True}', "");
-    Expect(0, 201547, '\P{^Is_XIDS=--True}', "");
+    Expect(1, 917999, '\p{Is_XID_Continue=	T}', "");
+    Expect(0, 917999, '\p{^Is_XID_Continue=	T}', "");
+    Expect(0, 917999, '\P{Is_XID_Continue=	T}', "");
+    Expect(1, 917999, '\P{^Is_XID_Continue=	T}', "");
+    Expect(0, 918000, '\p{Is_XID_Continue=	T}', "");
+    Expect(1, 918000, '\p{^Is_XID_Continue=	T}', "");
+    Expect(1, 918000, '\P{Is_XID_Continue=	T}', "");
+    Expect(0, 918000, '\P{^Is_XID_Continue=	T}', "");
+    Error('\p{Is_XIDC=_	TRUE:=}');
+    Error('\P{Is_XIDC=_	TRUE:=}');
+    Expect(1, 917999, '\p{Is_XIDC=true}', "");
+    Expect(0, 917999, '\p{^Is_XIDC=true}', "");
+    Expect(0, 917999, '\P{Is_XIDC=true}', "");
+    Expect(1, 917999, '\P{^Is_XIDC=true}', "");
+    Expect(0, 918000, '\p{Is_XIDC=true}', "");
+    Expect(1, 918000, '\p{^Is_XIDC=true}', "");
+    Expect(1, 918000, '\P{Is_XIDC=true}', "");
+    Expect(0, 918000, '\P{^Is_XIDC=true}', "");
+    Expect(1, 917999, '\p{Is_XIDC=_True}', "");
+    Expect(0, 917999, '\p{^Is_XIDC=_True}', "");
+    Expect(0, 917999, '\P{Is_XIDC=_True}', "");
+    Expect(1, 917999, '\P{^Is_XIDC=_True}', "");
+    Expect(0, 918000, '\p{Is_XIDC=_True}', "");
+    Expect(1, 918000, '\p{^Is_XIDC=_True}', "");
+    Expect(1, 918000, '\P{Is_XIDC=_True}', "");
+    Expect(0, 918000, '\P{^Is_XIDC=_True}', "");
+    Error('\p{XID_Start=	:=No}');
+    Error('\P{XID_Start=	:=No}');
+    Expect(1, 205744, '\p{XID_Start=:\ANo\z:}', "");;
+    Expect(0, 205743, '\p{XID_Start=:\ANo\z:}', "");;
+    Expect(1, 205744, '\p{XID_Start=no}', "");
+    Expect(0, 205744, '\p{^XID_Start=no}', "");
+    Expect(0, 205744, '\P{XID_Start=no}', "");
+    Expect(1, 205744, '\P{^XID_Start=no}', "");
+    Expect(0, 205743, '\p{XID_Start=no}', "");
+    Expect(1, 205743, '\p{^XID_Start=no}', "");
+    Expect(1, 205743, '\P{XID_Start=no}', "");
+    Expect(0, 205743, '\P{^XID_Start=no}', "");
+    Expect(1, 205744, '\p{XID_Start=:\Ano\z:}', "");;
+    Expect(0, 205743, '\p{XID_Start=:\Ano\z:}', "");;
+    Expect(1, 205744, '\p{XID_Start:	-No}', "");
+    Expect(0, 205744, '\p{^XID_Start:	-No}', "");
+    Expect(0, 205744, '\P{XID_Start:	-No}', "");
+    Expect(1, 205744, '\P{^XID_Start:	-No}', "");
+    Expect(0, 205743, '\p{XID_Start:	-No}', "");
+    Expect(1, 205743, '\p{^XID_Start:	-No}', "");
+    Expect(1, 205743, '\P{XID_Start:	-No}', "");
+    Expect(0, 205743, '\P{^XID_Start:	-No}', "");
+    Error('\p{XIDS=/a/ -N}');
+    Error('\P{XIDS=/a/ -N}');
+    Expect(1, 205744, '\p{XIDS=:\AN\z:}', "");;
+    Expect(0, 205743, '\p{XIDS=:\AN\z:}', "");;
+    Expect(1, 205744, '\p{XIDS=n}', "");
+    Expect(0, 205744, '\p{^XIDS=n}', "");
+    Expect(0, 205744, '\P{XIDS=n}', "");
+    Expect(1, 205744, '\P{^XIDS=n}', "");
+    Expect(0, 205743, '\p{XIDS=n}', "");
+    Expect(1, 205743, '\p{^XIDS=n}', "");
+    Expect(1, 205743, '\P{XIDS=n}', "");
+    Expect(0, 205743, '\P{^XIDS=n}', "");
+    Expect(1, 205744, '\p{XIDS=:\An\z:}', "");;
+    Expect(0, 205743, '\p{XIDS=:\An\z:}', "");;
+    Expect(1, 205744, '\p{XIDS=N}', "");
+    Expect(0, 205744, '\p{^XIDS=N}', "");
+    Expect(0, 205744, '\P{XIDS=N}', "");
+    Expect(1, 205744, '\P{^XIDS=N}', "");
+    Expect(0, 205743, '\p{XIDS=N}', "");
+    Expect(1, 205743, '\p{^XIDS=N}', "");
+    Expect(1, 205743, '\P{XIDS=N}', "");
+    Expect(0, 205743, '\P{^XIDS=N}', "");
+    Error('\p{Is_XID_Start=:=__F}');
+    Error('\P{Is_XID_Start=:=__F}');
+    Expect(1, 205744, '\p{Is_XID_Start=f}', "");
+    Expect(0, 205744, '\p{^Is_XID_Start=f}', "");
+    Expect(0, 205744, '\P{Is_XID_Start=f}', "");
+    Expect(1, 205744, '\P{^Is_XID_Start=f}', "");
+    Expect(0, 205743, '\p{Is_XID_Start=f}', "");
+    Expect(1, 205743, '\p{^Is_XID_Start=f}', "");
+    Expect(1, 205743, '\P{Is_XID_Start=f}', "");
+    Expect(0, 205743, '\P{^Is_XID_Start=f}', "");
+    Expect(1, 205744, '\p{Is_XID_Start=__F}', "");
+    Expect(0, 205744, '\p{^Is_XID_Start=__F}', "");
+    Expect(0, 205744, '\P{Is_XID_Start=__F}', "");
+    Expect(1, 205744, '\P{^Is_XID_Start=__F}', "");
+    Expect(0, 205743, '\p{Is_XID_Start=__F}', "");
+    Expect(1, 205743, '\p{^Is_XID_Start=__F}', "");
+    Expect(1, 205743, '\P{Is_XID_Start=__F}', "");
+    Expect(0, 205743, '\P{^Is_XID_Start=__F}', "");
+    Error('\p{Is_XIDS: 	:=FALSE}');
+    Error('\P{Is_XIDS: 	:=FALSE}');
+    Expect(1, 205744, '\p{Is_XIDS=false}', "");
+    Expect(0, 205744, '\p{^Is_XIDS=false}', "");
+    Expect(0, 205744, '\P{Is_XIDS=false}', "");
+    Expect(1, 205744, '\P{^Is_XIDS=false}', "");
+    Expect(0, 205743, '\p{Is_XIDS=false}', "");
+    Expect(1, 205743, '\p{^Is_XIDS=false}', "");
+    Expect(1, 205743, '\P{Is_XIDS=false}', "");
+    Expect(0, 205743, '\P{^Is_XIDS=false}', "");
+    Expect(1, 205744, '\p{Is_XIDS=	_False}', "");
+    Expect(0, 205744, '\p{^Is_XIDS=	_False}', "");
+    Expect(0, 205744, '\P{Is_XIDS=	_False}', "");
+    Expect(1, 205744, '\P{^Is_XIDS=	_False}', "");
+    Expect(0, 205743, '\p{Is_XIDS=	_False}', "");
+    Expect(1, 205743, '\p{^Is_XIDS=	_False}', "");
+    Expect(1, 205743, '\P{Is_XIDS=	_False}', "");
+    Expect(0, 205743, '\P{^Is_XIDS=	_False}', "");
+    Error('\p{XID_Start: -Yes/a/}');
+    Error('\P{XID_Start: -Yes/a/}');
+    Expect(1, 205743, '\p{XID_Start=:\AYes\z:}', "");;
+    Expect(0, 205744, '\p{XID_Start=:\AYes\z:}', "");;
+    Expect(1, 205743, '\p{XID_Start=yes}', "");
+    Expect(0, 205743, '\p{^XID_Start=yes}', "");
+    Expect(0, 205743, '\P{XID_Start=yes}', "");
+    Expect(1, 205743, '\P{^XID_Start=yes}', "");
+    Expect(0, 205744, '\p{XID_Start=yes}', "");
+    Expect(1, 205744, '\p{^XID_Start=yes}', "");
+    Expect(1, 205744, '\P{XID_Start=yes}', "");
+    Expect(0, 205744, '\P{^XID_Start=yes}', "");
+    Expect(1, 205743, '\p{XID_Start=:\Ayes\z:}', "");;
+    Expect(0, 205744, '\p{XID_Start=:\Ayes\z:}', "");;
+    Expect(1, 205743, '\p{XID_Start: YES}', "");
+    Expect(0, 205743, '\p{^XID_Start: YES}', "");
+    Expect(0, 205743, '\P{XID_Start: YES}', "");
+    Expect(1, 205743, '\P{^XID_Start: YES}', "");
+    Expect(0, 205744, '\p{XID_Start: YES}', "");
+    Expect(1, 205744, '\p{^XID_Start: YES}', "");
+    Expect(1, 205744, '\P{XID_Start: YES}', "");
+    Expect(0, 205744, '\P{^XID_Start: YES}', "");
+    Error('\p{XIDS=:=	_Y}');
+    Error('\P{XIDS=:=	_Y}');
+    Expect(1, 205743, '\p{XIDS=:\AY\z:}', "");;
+    Expect(0, 205744, '\p{XIDS=:\AY\z:}', "");;
+    Expect(1, 205743, '\p{XIDS:   y}', "");
+    Expect(0, 205743, '\p{^XIDS:   y}', "");
+    Expect(0, 205743, '\P{XIDS:   y}', "");
+    Expect(1, 205743, '\P{^XIDS:   y}', "");
+    Expect(0, 205744, '\p{XIDS:   y}', "");
+    Expect(1, 205744, '\p{^XIDS:   y}', "");
+    Expect(1, 205744, '\P{XIDS:   y}', "");
+    Expect(0, 205744, '\P{^XIDS:   y}', "");
+    Expect(1, 205743, '\p{XIDS=:\Ay\z:}', "");;
+    Expect(0, 205744, '\p{XIDS=:\Ay\z:}', "");;
+    Expect(1, 205743, '\p{XIDS=	Y}', "");
+    Expect(0, 205743, '\p{^XIDS=	Y}', "");
+    Expect(0, 205743, '\P{XIDS=	Y}', "");
+    Expect(1, 205743, '\P{^XIDS=	Y}', "");
+    Expect(0, 205744, '\p{XIDS=	Y}', "");
+    Expect(1, 205744, '\p{^XIDS=	Y}', "");
+    Expect(1, 205744, '\P{XIDS=	Y}', "");
+    Expect(0, 205744, '\P{^XIDS=	Y}', "");
+    Error('\p{Is_XID_Start=		T/a/}');
+    Error('\P{Is_XID_Start=		T/a/}');
+    Expect(1, 205743, '\p{Is_XID_Start=t}', "");
+    Expect(0, 205743, '\p{^Is_XID_Start=t}', "");
+    Expect(0, 205743, '\P{Is_XID_Start=t}', "");
+    Expect(1, 205743, '\P{^Is_XID_Start=t}', "");
+    Expect(0, 205744, '\p{Is_XID_Start=t}', "");
+    Expect(1, 205744, '\p{^Is_XID_Start=t}', "");
+    Expect(1, 205744, '\P{Is_XID_Start=t}', "");
+    Expect(0, 205744, '\P{^Is_XID_Start=t}', "");
+    Expect(1, 205743, '\p{Is_XID_Start:		-t}', "");
+    Expect(0, 205743, '\p{^Is_XID_Start:		-t}', "");
+    Expect(0, 205743, '\P{Is_XID_Start:		-t}', "");
+    Expect(1, 205743, '\P{^Is_XID_Start:		-t}', "");
+    Expect(0, 205744, '\p{Is_XID_Start:		-t}', "");
+    Expect(1, 205744, '\p{^Is_XID_Start:		-t}', "");
+    Expect(1, 205744, '\P{Is_XID_Start:		-t}', "");
+    Expect(0, 205744, '\P{^Is_XID_Start:		-t}', "");
+    Error('\p{Is_XIDS= true/a/}');
+    Error('\P{Is_XIDS= true/a/}');
+    Expect(1, 205743, '\p{Is_XIDS=true}', "");
+    Expect(0, 205743, '\p{^Is_XIDS=true}', "");
+    Expect(0, 205743, '\P{Is_XIDS=true}', "");
+    Expect(1, 205743, '\P{^Is_XIDS=true}', "");
+    Expect(0, 205744, '\p{Is_XIDS=true}', "");
+    Expect(1, 205744, '\p{^Is_XIDS=true}', "");
+    Expect(1, 205744, '\P{Is_XIDS=true}', "");
+    Expect(0, 205744, '\P{^Is_XIDS=true}', "");
+    Expect(1, 205743, '\p{Is_XIDS=	True}', "");
+    Expect(0, 205743, '\p{^Is_XIDS=	True}', "");
+    Expect(0, 205743, '\P{Is_XIDS=	True}', "");
+    Expect(1, 205743, '\P{^Is_XIDS=	True}', "");
+    Expect(0, 205744, '\p{Is_XIDS=	True}', "");
+    Expect(1, 205744, '\p{^Is_XIDS=	True}', "");
+    Expect(1, 205744, '\P{Is_XIDS=	True}', "");
+    Expect(0, 205744, '\P{^Is_XIDS=	True}', "");
     Error('\p{Expands_On_NFC=No}');
     Error('\P{Expands_On_NFC=No}');
     Error('\p{XO_NFC=N}');
     Error('\P{XO_NFC=N}');
-    Error('\p{Is_Expands_On_NFC=F}');
-    Error('\P{Is_Expands_On_NFC=F}');
+    Error('\p{Is_Expands_On_NFC:   F}');
+    Error('\P{Is_Expands_On_NFC:   F}');
     Error('\p{Is_XO_NFC=False}');
     Error('\P{Is_XO_NFC=False}');
     Error('\p{Expands_On_NFC=Yes}');
@@ -157955,8 +159411,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Error('\P{XO_NFD=N}');
     Error('\p{Is_Expands_On_NFD=F}');
     Error('\P{Is_Expands_On_NFD=F}');
-    Error('\p{Is_XO_NFD:	False}');
-    Error('\P{Is_XO_NFD:	False}');
+    Error('\p{Is_XO_NFD: False}');
+    Error('\P{Is_XO_NFD: False}');
     Error('\p{Expands_On_NFD=Yes}');
     Error('\P{Expands_On_NFD=Yes}');
     Error('\p{XO_NFD=Y}');
@@ -157979,8 +159435,8 @@ if (!$::TESTCHUNK or $::TESTCHUNK == 4) 
     Error('\P{XO_NFKC=Y}');
     Error('\p{Is_Expands_On_NFKC=T}');
     Error('\P{Is_Expands_On_NFKC=T}');
-    Error('\p{Is_XO_NFKC:True}');
-    Error('\P{Is_XO_NFKC:True}');
+    Error('\p{Is_XO_NFKC=True}');
+    Error('\P{Is_XO_NFKC=True}');
     Error('\p{Expands_On_NFKD=No}');
     Error('\P{Expands_On_NFKD=No}');
     Error('\p{XO_NFKD=N}');
Index: gnu/usr.bin/perl/lib/unicore/UCD.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/UCD.pl,v
diff -u -p -a -u -p -r1.8 UCD.pl
--- gnu/usr.bin/perl/lib/unicore/UCD.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/UCD.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
@@ -499,13 +499,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'V2
 69759
 69760',
-'V6
-2673
-2674
-70199
-70200
-72344
-72345',
 'V4
 3660
 3661
@@ -523,13 +516,6 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'V2
 3976
 3981',
-'V6
-3406
-3407
-72001
-72002
-73030
-73031',
 'V2
 6092
 6093',
@@ -659,6 +645,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 4352
 4608',
 'V2
+73472
+73568',
+'V2
 42192
 42240',
 'V2
@@ -860,6 +849,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 196608
 201552',
 'V2
+201552
+205744',
+'V2
 66560
 66640',
 'V2
@@ -1154,6 +1146,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 2160
 2208',
 'V2
+69312
+69376',
+'V2
 126464
 126720',
 'V2
@@ -1190,6 +1185,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 11008
 11264',
 'V2
+124112
+124160',
+'V2
 66464
 66528',
 'V2
@@ -1313,6 +1311,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 7296
 7312',
 'V2
+122928
+123024',
+'V2
 768
 880',
 'V2
@@ -1394,6 +1395,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 11904
 12032',
 'V2
+72448
+72544',
+'V2
 68864
 68928',
 'V2
@@ -1469,6 +1473,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 43056
 43072',
 'V2
+119488
+119520',
+'V2
 65664
 65792',
 'V2
@@ -1581,7 +1588,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 130048',
 'V2
 78896
-78912',
+78944',
 'V6
 188
 191
@@ -2270,7 +2277,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 70144
 70162
 70163
-70207',
+70210',
 'V4
 69760
 69827
@@ -2487,11 +2494,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 43066
 71680
 71740',
-'V4
+'V2
 77824
-78895
-78896
-78905',
+78934',
 'V2
 66816
 66856',
@@ -2533,6 +2538,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 43482
 43486
 43488',
+'V6
+73472
+73489
+73490
+73531
+73534
+73562',
 'V4
 94180
 94181
@@ -2625,6 +2637,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 44014
 44016
 44026',
+'V2
+124112
+124154',
 'V4
 67712
 67743
@@ -2842,14 +2857,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'age=11.0' => 'Age/V110',
 'age=12' => 'Age/V120',
 'age=12.0' => 'Age/V120',
-'age=12.1' => '#/100',
+'age=12.1' => '#/98',
 'age=13' => 'Age/V130',
 'age=13.0' => 'Age/V130',
 'age=14' => 'Age/V140',
 'age=14.0' => 'Age/V140',
+'age=15' => 'Age/V150',
+'age=15.0' => 'Age/V150',
 'age=2' => 'Age/V20',
 'age=2.0' => 'Age/V20',
-'age=2.1' => '#/97',
+'age=2.1' => '#/95',
 'age=3' => 'Age/V30',
 'age=3.0' => 'Age/V30',
 'age=3.1' => 'Age/V31',
@@ -2864,8 +2881,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'age=6' => 'Age/V60',
 'age=6.0' => 'Age/V60',
 'age=6.1' => 'Age/V61',
-'age=6.2' => '#/98',
-'age=6.3' => '#/99',
+'age=6.2' => '#/96',
+'age=6.3' => '#/97',
 'age=7' => 'Age/V70',
 'age=7.0' => 'Age/V70',
 'age=8' => 'Age/V80',
@@ -2942,6 +2959,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'in=13.0' => 'In/13_0',
 'in=14' => 'In/14_0',
 'in=14.0' => 'In/14_0',
+'in=15' => 'In/15_0',
+'in=15.0' => 'In/15_0',
 'in=2' => 'In/2_0',
 'in=2.0' => 'In/2_0',
 'in=2.1' => 'In/2_1',
@@ -2967,148 +2986,148 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'in=8.0' => 'In/8_0',
 'in=9' => 'In/9_0',
 'in=9.0' => 'In/9_0',
-'nv=-1/2' => '#/574',
+'nv=-1/2' => '#/579',
 'nv=0' => 'Nv/0',
 'nv=1' => 'Nv/1',
-'nv=1/10' => '#/575',
-'nv=1/12' => '#/576',
+'nv=1/10' => '#/580',
+'nv=1/12' => '#/581',
 'nv=1/16' => 'Nv/1_16',
-'nv=1/160' => '#/591',
+'nv=1/160' => '#/596',
 'nv=1/2' => 'Nv/1_2',
-'nv=1/20' => '#/577',
+'nv=1/20' => '#/582',
 'nv=1/3' => 'Nv/1_3',
-'nv=1/32' => '#/578',
-'nv=1/320' => '#/592',
+'nv=1/32' => '#/583',
+'nv=1/320' => '#/597',
 'nv=1/4' => 'Nv/1_4',
-'nv=1/40' => '#/579',
-'nv=1/5' => '#/560',
+'nv=1/40' => '#/584',
+'nv=1/5' => '#/565',
 'nv=1/6' => 'Nv/1_6',
-'nv=1/64' => '#/580',
-'nv=1/7' => '#/561',
+'nv=1/64' => '#/585',
+'nv=1/7' => '#/566',
 'nv=1/8' => 'Nv/1_8',
-'nv=1/80' => '#/581',
-'nv=1/9' => '#/562',
+'nv=1/80' => '#/586',
+'nv=1/9' => '#/567',
 'nv=10' => 'Nv/10',
 'nv=100' => 'Nv/100',
 'nv=1000' => 'Nv/1000',
 'nv=10000' => 'Nv/10000',
 'nv=100000' => 'Nv/100000',
-'nv=1000000' => '#/604',
-'nv=10000000' => '#/605',
-'nv=100000000' => '#/607',
-'nv=10000000000' => '#/608',
-'nv=1000000000000' => '#/609',
+'nv=1000000' => '#/609',
+'nv=10000000' => '#/610',
+'nv=100000000' => '#/612',
+'nv=10000000000' => '#/613',
+'nv=1000000000000' => '#/614',
 'nv=11' => 'Nv/11',
-'nv=11/12' => '#/593',
-'nv=11/2' => '#/582',
+'nv=11/12' => '#/598',
+'nv=11/2' => '#/587',
 'nv=12' => 'Nv/12',
 'nv=13' => 'Nv/13',
-'nv=13/2' => '#/583',
+'nv=13/2' => '#/588',
 'nv=14' => 'Nv/14',
 'nv=15' => 'Nv/15',
-'nv=15/2' => '#/584',
+'nv=15/2' => '#/589',
 'nv=16' => 'Nv/16',
 'nv=17' => 'Nv/17',
-'nv=17/2' => '#/585',
+'nv=17/2' => '#/590',
 'nv=18' => 'Nv/18',
 'nv=19' => 'Nv/19',
 'nv=2' => 'Nv/2',
 'nv=2/3' => 'Nv/2_3',
-'nv=2/5' => '#/563',
+'nv=2/5' => '#/568',
 'nv=20' => 'Nv/20',
 'nv=200' => 'Nv/200',
 'nv=2000' => 'Nv/2000',
 'nv=20000' => 'Nv/20000',
-'nv=200000' => '#/594',
-'nv=20000000' => '#/606',
-'nv=21' => '#/533',
-'nv=216000' => '#/595',
-'nv=22' => '#/534',
-'nv=23' => '#/535',
-'nv=24' => '#/536',
-'nv=25' => '#/537',
-'nv=26' => '#/538',
-'nv=27' => '#/539',
-'nv=28' => '#/540',
-'nv=29' => '#/541',
+'nv=200000' => '#/599',
+'nv=20000000' => '#/611',
+'nv=21' => '#/538',
+'nv=216000' => '#/600',
+'nv=22' => '#/539',
+'nv=23' => '#/540',
+'nv=24' => '#/541',
+'nv=25' => '#/542',
+'nv=26' => '#/543',
+'nv=27' => '#/544',
+'nv=28' => '#/545',
+'nv=29' => '#/546',
 'nv=3' => 'Nv/3',
 'nv=3/16' => 'Nv/3_16',
-'nv=3/2' => '#/564',
-'nv=3/20' => '#/586',
+'nv=3/2' => '#/569',
+'nv=3/20' => '#/591',
 'nv=3/4' => 'Nv/3_4',
-'nv=3/5' => '#/565',
-'nv=3/64' => '#/587',
-'nv=3/8' => '#/566',
-'nv=3/80' => '#/588',
+'nv=3/5' => '#/570',
+'nv=3/64' => '#/592',
+'nv=3/8' => '#/571',
+'nv=3/80' => '#/593',
 'nv=30' => 'Nv/30',
 'nv=300' => 'Nv/300',
 'nv=3000' => 'Nv/3000',
 'nv=30000' => 'Nv/30000',
-'nv=300000' => '#/596',
-'nv=31' => '#/542',
-'nv=32' => '#/543',
-'nv=33' => '#/544',
-'nv=34' => '#/545',
-'nv=35' => '#/546',
-'nv=36' => '#/547',
-'nv=37' => '#/548',
-'nv=38' => '#/549',
-'nv=39' => '#/550',
+'nv=300000' => '#/601',
+'nv=31' => '#/547',
+'nv=32' => '#/548',
+'nv=33' => '#/549',
+'nv=34' => '#/550',
+'nv=35' => '#/551',
+'nv=36' => '#/552',
+'nv=37' => '#/553',
+'nv=38' => '#/554',
+'nv=39' => '#/555',
 'nv=4' => 'Nv/4',
-'nv=4/5' => '#/567',
+'nv=4/5' => '#/572',
 'nv=40' => 'Nv/40',
 'nv=400' => 'Nv/400',
 'nv=4000' => 'Nv/4000',
 'nv=40000' => 'Nv/40000',
-'nv=400000' => '#/597',
-'nv=41' => '#/551',
-'nv=42' => '#/552',
-'nv=43' => '#/553',
-'nv=432000' => '#/598',
-'nv=44' => '#/554',
-'nv=45' => '#/555',
-'nv=46' => '#/556',
-'nv=47' => '#/557',
-'nv=48' => '#/558',
-'nv=49' => '#/559',
+'nv=400000' => '#/602',
+'nv=41' => '#/556',
+'nv=42' => '#/557',
+'nv=43' => '#/558',
+'nv=432000' => '#/603',
+'nv=44' => '#/559',
+'nv=45' => '#/560',
+'nv=46' => '#/561',
+'nv=47' => '#/562',
+'nv=48' => '#/563',
+'nv=49' => '#/564',
 'nv=5' => 'Nv/5',
-'nv=5/12' => '#/589',
-'nv=5/2' => '#/568',
-'nv=5/6' => '#/569',
-'nv=5/8' => '#/570',
+'nv=5/12' => '#/594',
+'nv=5/2' => '#/573',
+'nv=5/6' => '#/574',
+'nv=5/8' => '#/575',
 'nv=50' => 'Nv/50',
 'nv=500' => 'Nv/500',
 'nv=5000' => 'Nv/5000',
 'nv=50000' => 'Nv/50000',
-'nv=500000' => '#/599',
+'nv=500000' => '#/604',
 'nv=6' => 'Nv/6',
 'nv=60' => 'Nv/60',
 'nv=600' => 'Nv/600',
 'nv=6000' => 'Nv/6000',
 'nv=60000' => 'Nv/60000',
-'nv=600000' => '#/600',
+'nv=600000' => '#/605',
 'nv=7' => 'Nv/7',
-'nv=7/12' => '#/590',
-'nv=7/2' => '#/571',
-'nv=7/8' => '#/572',
+'nv=7/12' => '#/595',
+'nv=7/2' => '#/576',
+'nv=7/8' => '#/577',
 'nv=70' => 'Nv/70',
 'nv=700' => 'Nv/700',
 'nv=7000' => 'Nv/7000',
 'nv=70000' => 'Nv/70000',
-'nv=700000' => '#/601',
+'nv=700000' => '#/606',
 'nv=8' => 'Nv/8',
 'nv=80' => 'Nv/80',
 'nv=800' => 'Nv/800',
 'nv=8000' => 'Nv/8000',
 'nv=80000' => 'Nv/80000',
-'nv=800000' => '#/602',
+'nv=800000' => '#/607',
 'nv=9' => 'Nv/9',
-'nv=9/2' => '#/573',
+'nv=9/2' => '#/578',
 'nv=90' => 'Nv/90',
 'nv=900' => 'Nv/900',
 'nv=9000' => 'Nv/9000',
 'nv=90000' => 'Nv/90000',
-'nv=900000' => '#/603',
+'nv=900000' => '#/608',
 );
 
 # Maps property, table to file for those using loose matching.  For paths
@@ -3117,18 +3136,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 %Unicode::UCD::loose_to_file_of = (
 'adlam' => 'Scx/Adlm',
 'adlm' => 'Scx/Adlm',
-'aegeannumbers' => '#/354',
+'aegeannumbers' => '#/357',
 'age=na' => 'Age/NA',
 'age=unassigned' => 'Age/NA',
 'age=v100' => 'Age/V100',
 'age=v11' => 'Age/V11',
 'age=v110' => 'Age/V110',
 'age=v120' => 'Age/V120',
-'age=v121' => '#/100',
+'age=v121' => '#/98',
 'age=v130' => 'Age/V130',
 'age=v140' => 'Age/V140',
+'age=v150' => 'Age/V150',
 'age=v20' => 'Age/V20',
-'age=v21' => '#/97',
+'age=v21' => '#/95',
 'age=v30' => 'Age/V30',
 'age=v31' => 'Age/V31',
 'age=v32' => 'Age/V32',
@@ -3139,12 +3159,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'age=v52' => 'Age/V52',
 'age=v60' => 'Age/V60',
 'age=v61' => 'Age/V61',
-'age=v62' => '#/98',
-'age=v63' => '#/99',
+'age=v62' => '#/96',
+'age=v63' => '#/97',
 'age=v70' => 'Age/V70',
 'age=v80' => 'Age/V80',
 'age=v90' => 'Age/V90',
-'aghb' => '#/649',
+'aghb' => '#/654',
 'ahex' => '#/60',
 'ahex=f' => '#/!60',
 'ahex=false' => '#/!60',
@@ -3154,7 +3174,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ahex=true' => '#/60',
 'ahex=y' => '#/60',
 'ahex=yes' => '#/60',
-'ahom' => '#/650',
+'ahom' => '#/655',
 'alchemical' => '#/285',
 'alchemicalsymbols' => '#/285',
 'all' => '#/1',
@@ -3169,22 +3189,24 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'alpha=y' => 'Alpha/Y',
 'alpha=yes' => 'Alpha/Y',
 'alphabetic' => 'Alpha/Y',
-'alphabeticpf' => '#/336',
-'alphabeticpresentationforms' => '#/336',
-'anatolianhieroglyphs' => '#/672',
-'ancientgreekmusic' => '#/399',
-'ancientgreekmusicalnotation' => '#/399',
-'ancientgreeknumbers' => '#/410',
-'ancientsymbols' => '#/364',
+'alphabeticpf' => '#/338',
+'alphabeticpresentationforms' => '#/338',
+'anatolianhieroglyphs' => '#/677',
+'ancientgreekmusic' => '#/404',
+'ancientgreekmusicalnotation' => '#/404',
+'ancientgreeknumbers' => '#/415',
+'ancientsymbols' => '#/367',
 'any' => '#/2',
 'arab' => 'Scx/Arab',
 'arabic' => 'Scx/Arab',
 'arabicexta' => '#/286',
 'arabicextb' => '#/287',
+'arabicextc' => '#/288',
 'arabicextendeda' => '#/286',
 'arabicextendedb' => '#/287',
-'arabicmath' => '#/288',
-'arabicmathematicalalphabeticsymbols' => '#/288',
+'arabicextendedc' => '#/288',
+'arabicmath' => '#/289',
+'arabicmathematicalalphabeticsymbols' => '#/289',
 'arabicpfa' => '#/255',
 'arabicpfb' => '#/256',
 'arabicpresentationformsa' => '#/255',
@@ -3192,25 +3214,25 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'arabicsup' => '#/257',
 'arabicsupplement' => '#/257',
 'armenian' => 'Scx/Armn',
-'armi' => '#/651',
+'armi' => '#/656',
 'armn' => 'Scx/Armn',
-'arrows' => '#/152',
-'ascii' => '#/132',
+'arrows' => '#/151',
+'ascii' => '#/131',
 'asciihexdigit' => '#/60',
 'assigned' => 'Perl/Assigned',
-'avestan' => '#/652',
-'avst' => '#/652',
-'bali' => '#/653',
-'balinese' => '#/653',
-'bamu' => '#/654',
-'bamum' => '#/654',
+'avestan' => '#/657',
+'avst' => '#/657',
+'bali' => '#/658',
+'balinese' => '#/658',
+'bamu' => '#/659',
+'bamum' => '#/659',
 'bamumsup' => '#/225',
 'bamumsupplement' => '#/225',
-'basiclatin' => '#/132',
-'bass' => '#/655',
-'bassavah' => '#/655',
-'batak' => '#/656',
-'batk' => '#/656',
+'basiclatin' => '#/131',
+'bass' => '#/660',
+'bassavah' => '#/660',
+'batak' => '#/661',
+'batk' => '#/661',
 'bc=al' => 'Bc/AL',
 'bc=an' => 'Bc/AN',
 'bc=arabicletter' => 'Bc/AL',
@@ -3226,35 +3248,35 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'bc=europeannumber' => 'Bc/EN',
 'bc=europeanseparator' => 'Bc/ES',
 'bc=europeanterminator' => 'Bc/ET',
-'bc=firststrongisolate' => '#/102',
-'bc=fsi' => '#/102',
+'bc=firststrongisolate' => '#/100',
+'bc=fsi' => '#/100',
 'bc=l' => 'Bc/L',
 'bc=lefttoright' => 'Bc/L',
-'bc=lefttorightembedding' => '#/103',
-'bc=lefttorightisolate' => '#/104',
-'bc=lefttorightoverride' => '#/105',
-'bc=lre' => '#/103',
-'bc=lri' => '#/104',
-'bc=lro' => '#/105',
+'bc=lefttorightembedding' => '#/101',
+'bc=lefttorightisolate' => '#/102',
+'bc=lefttorightoverride' => '#/103',
+'bc=lre' => '#/101',
+'bc=lri' => '#/102',
+'bc=lro' => '#/103',
 'bc=nonspacingmark' => 'Bc/NSM',
 'bc=nsm' => 'Bc/NSM',
 'bc=on' => 'Bc/ON',
 'bc=otherneutral' => 'Bc/ON',
 'bc=paragraphseparator' => 'Bc/B',
-'bc=pdf' => '#/106',
-'bc=pdi' => '#/107',
-'bc=popdirectionalformat' => '#/106',
-'bc=popdirectionalisolate' => '#/107',
+'bc=pdf' => '#/104',
+'bc=pdi' => '#/105',
+'bc=popdirectionalformat' => '#/104',
+'bc=popdirectionalisolate' => '#/105',
 'bc=r' => 'Bc/R',
 'bc=righttoleft' => 'Bc/R',
-'bc=righttoleftembedding' => '#/108',
-'bc=righttoleftisolate' => '#/109',
-'bc=righttoleftoverride' => '#/110',
-'bc=rle' => '#/108',
-'bc=rli' => '#/109',
-'bc=rlo' => '#/110',
-'bc=s' => '#/101',
-'bc=segmentseparator' => '#/101',
+'bc=righttoleftembedding' => '#/106',
+'bc=righttoleftisolate' => '#/107',
+'bc=righttoleftoverride' => '#/108',
+'bc=rle' => '#/106',
+'bc=rli' => '#/107',
+'bc=rlo' => '#/108',
+'bc=s' => '#/99',
+'bc=segmentseparator' => '#/99',
 'bc=whitespace' => 'Bc/WS',
 'bc=ws' => 'Bc/WS',
 'beng' => 'Scx/Beng',
@@ -3282,25 +3304,27 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'bidim=yes' => 'BidiM/Y',
 'bidimirrored' => 'BidiM/Y',
 'blank' => 'Perl/Blank',
-'blk=adlam' => '#/133',
-'blk=aegeannumbers' => '#/354',
-'blk=ahom' => '#/120',
+'blk=adlam' => '#/132',
+'blk=aegeannumbers' => '#/357',
+'blk=ahom' => '#/118',
 'blk=alchemical' => '#/285',
 'blk=alchemicalsymbols' => '#/285',
-'blk=alphabeticpf' => '#/336',
-'blk=alphabeticpresentationforms' => '#/336',
-'blk=anatolianhieroglyphs' => '#/417',
-'blk=ancientgreekmusic' => '#/399',
-'blk=ancientgreekmusicalnotation' => '#/399',
-'blk=ancientgreeknumbers' => '#/410',
-'blk=ancientsymbols' => '#/364',
-'blk=arabic' => '#/151',
+'blk=alphabeticpf' => '#/338',
+'blk=alphabeticpresentationforms' => '#/338',
+'blk=anatolianhieroglyphs' => '#/422',
+'blk=ancientgreekmusic' => '#/404',
+'blk=ancientgreekmusicalnotation' => '#/404',
+'blk=ancientgreeknumbers' => '#/415',
+'blk=ancientsymbols' => '#/367',
+'blk=arabic' => '#/150',
 'blk=arabicexta' => '#/286',
 'blk=arabicextb' => '#/287',
+'blk=arabicextc' => '#/288',
 'blk=arabicextendeda' => '#/286',
 'blk=arabicextendedb' => '#/287',
-'blk=arabicmath' => '#/288',
-'blk=arabicmathematicalalphabeticsymbols' => '#/288',
+'blk=arabicextendedc' => '#/288',
+'blk=arabicmath' => '#/289',
+'blk=arabicmathematicalalphabeticsymbols' => '#/289',
 'blk=arabicpfa' => '#/255',
 'blk=arabicpfb' => '#/256',
 'blk=arabicpresentationformsa' => '#/255',
@@ -3308,221 +3332,229 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'blk=arabicsup' => '#/257',
 'blk=arabicsupplement' => '#/257',
 'blk=armenian' => '#/223',
-'blk=arrows' => '#/152',
-'blk=ascii' => '#/132',
-'blk=avestan' => '#/180',
+'blk=arrows' => '#/151',
+'blk=ascii' => '#/131',
+'blk=avestan' => '#/179',
 'blk=balinese' => '#/224',
-'blk=bamum' => '#/134',
+'blk=bamum' => '#/133',
 'blk=bamumsup' => '#/225',
 'blk=bamumsupplement' => '#/225',
-'blk=basiclatin' => '#/132',
+'blk=basiclatin' => '#/131',
 'blk=bassavah' => '#/226',
-'blk=batak' => '#/135',
-'blk=bengali' => '#/181',
+'blk=batak' => '#/134',
+'blk=bengali' => '#/180',
 'blk=bhaiksuki' => '#/258',
-'blk=blockelements' => '#/355',
+'blk=blockelements' => '#/358',
 'blk=bopomofo' => '#/227',
-'blk=bopomofoext' => '#/310',
-'blk=bopomofoextended' => '#/310',
-'blk=boxdrawing' => '#/289',
-'blk=brahmi' => '#/153',
-'blk=braille' => '#/182',
-'blk=braillepatterns' => '#/182',
+'blk=bopomofoext' => '#/312',
+'blk=bopomofoextended' => '#/312',
+'blk=boxdrawing' => '#/290',
+'blk=brahmi' => '#/152',
+'blk=braille' => '#/181',
+'blk=braillepatterns' => '#/181',
 'blk=buginese' => '#/228',
-'blk=buhid' => '#/136',
-'blk=byzantinemusic' => '#/365',
-'blk=byzantinemusicalsymbols' => '#/365',
-'blk=canadiansyllabics' => '#/131',
-'blk=carian' => '#/154',
-'blk=caucasianalbanian' => '#/400',
-'blk=chakma' => '#/155',
-'blk=cham' => '#/121',
+'blk=buhid' => '#/135',
+'blk=byzantinemusic' => '#/368',
+'blk=byzantinemusicalsymbols' => '#/368',
+'blk=canadiansyllabics' => '#/130',
+'blk=carian' => '#/153',
+'blk=caucasianalbanian' => '#/405',
+'blk=chakma' => '#/154',
+'blk=cham' => '#/119',
 'blk=cherokee' => '#/229',
-'blk=cherokeesup' => '#/311',
-'blk=cherokeesupplement' => '#/311',
-'blk=chesssymbols' => '#/337',
-'blk=chorasmian' => '#/292',
-'blk=cjk' => '#/112',
+'blk=cherokeesup' => '#/313',
+'blk=cherokeesupplement' => '#/313',
+'blk=chesssymbols' => '#/339',
+'blk=chorasmian' => '#/293',
+'blk=cjk' => '#/110',
 'blk=cjkcompat' => '#/259',
-'blk=cjkcompatforms' => '#/366',
+'blk=cjkcompatforms' => '#/369',
 'blk=cjkcompatibility' => '#/259',
-'blk=cjkcompatibilityforms' => '#/366',
-'blk=cjkcompatibilityideographs' => '#/411',
-'blk=cjkcompatibilityideographssupplement' => '#/422',
-'blk=cjkcompatideographs' => '#/411',
-'blk=cjkcompatideographssup' => '#/422',
-'blk=cjkexta' => '#/183',
-'blk=cjkextb' => '#/184',
-'blk=cjkextc' => '#/185',
-'blk=cjkextd' => '#/186',
-'blk=cjkexte' => '#/187',
-'blk=cjkextf' => '#/188',
-'blk=cjkextg' => '#/189',
-'blk=cjkradicalssup' => '#/367',
-'blk=cjkradicalssupplement' => '#/367',
-'blk=cjkstrokes' => '#/290',
-'blk=cjksymbols' => '#/291',
-'blk=cjksymbolsandpunctuation' => '#/291',
-'blk=cjkunifiedideographs' => '#/112',
-'blk=cjkunifiedideographsextensiona' => '#/183',
-'blk=cjkunifiedideographsextensionb' => '#/184',
-'blk=cjkunifiedideographsextensionc' => '#/185',
-'blk=cjkunifiedideographsextensiond' => '#/186',
-'blk=cjkunifiedideographsextensione' => '#/187',
-'blk=cjkunifiedideographsextensionf' => '#/188',
-'blk=cjkunifiedideographsextensiong' => '#/189',
-'blk=combiningdiacriticalmarks' => '#/341',
-'blk=combiningdiacriticalmarksextended' => '#/376',
-'blk=combiningdiacriticalmarksforsymbols' => '#/423',
-'blk=combiningdiacriticalmarkssupplement' => '#/377',
+'blk=cjkcompatibilityforms' => '#/369',
+'blk=cjkcompatibilityideographs' => '#/416',
+'blk=cjkcompatibilityideographssupplement' => '#/427',
+'blk=cjkcompatideographs' => '#/416',
+'blk=cjkcompatideographssup' => '#/427',
+'blk=cjkexta' => '#/182',
+'blk=cjkextb' => '#/183',
+'blk=cjkextc' => '#/184',
+'blk=cjkextd' => '#/185',
+'blk=cjkexte' => '#/186',
+'blk=cjkextf' => '#/187',
+'blk=cjkextg' => '#/188',
+'blk=cjkexth' => '#/189',
+'blk=cjkradicalssup' => '#/370',
+'blk=cjkradicalssupplement' => '#/370',
+'blk=cjkstrokes' => '#/291',
+'blk=cjksymbols' => '#/292',
+'blk=cjksymbolsandpunctuation' => '#/292',
+'blk=cjkunifiedideographs' => '#/110',
+'blk=cjkunifiedideographsextensiona' => '#/182',
+'blk=cjkunifiedideographsextensionb' => '#/183',
+'blk=cjkunifiedideographsextensionc' => '#/184',
+'blk=cjkunifiedideographsextensiond' => '#/185',
+'blk=cjkunifiedideographsextensione' => '#/186',
+'blk=cjkunifiedideographsextensionf' => '#/187',
+'blk=cjkunifiedideographsextensiong' => '#/188',
+'blk=cjkunifiedideographsextensionh' => '#/189',
+'blk=combiningdiacriticalmarks' => '#/344',
+'blk=combiningdiacriticalmarksextended' => '#/380',
+'blk=combiningdiacriticalmarksforsymbols' => '#/428',
+'blk=combiningdiacriticalmarkssupplement' => '#/381',
 'blk=combininghalfmarks' => '#/262',
-'blk=combiningmarksforsymbols' => '#/423',
-'blk=commonindicnumberforms' => '#/392',
-'blk=compatjamo' => '#/293',
-'blk=controlpictures' => '#/374',
-'blk=coptic' => '#/156',
-'blk=copticepactnumbers' => '#/405',
-'blk=countingrod' => '#/312',
-'blk=countingrodnumerals' => '#/312',
+'blk=combiningmarksforsymbols' => '#/428',
+'blk=commonindicnumberforms' => '#/396',
+'blk=compatjamo' => '#/294',
+'blk=controlpictures' => '#/378',
+'blk=coptic' => '#/155',
+'blk=copticepactnumbers' => '#/410',
+'blk=countingrod' => '#/314',
+'blk=countingrodnumerals' => '#/314',
 'blk=cuneiform' => '#/260',
-'blk=cuneiformnumbers' => '#/387',
-'blk=cuneiformnumbersandpunctuation' => '#/387',
-'blk=currencysymbols' => '#/375',
-'blk=cypriotsyllabary' => '#/388',
-'blk=cyprominoan' => '#/313',
+'blk=cuneiformnumbers' => '#/391',
+'blk=cuneiformnumbersandpunctuation' => '#/391',
+'blk=currencysymbols' => '#/379',
+'blk=cypriotsyllabary' => '#/392',
+'blk=cyprominoan' => '#/315',
 'blk=cyrillic' => '#/230',
-'blk=cyrillicexta' => '#/338',
-'blk=cyrillicextb' => '#/339',
-'blk=cyrillicextc' => '#/340',
-'blk=cyrillicextendeda' => '#/338',
-'blk=cyrillicextendedb' => '#/339',
-'blk=cyrillicextendedc' => '#/340',
-'blk=cyrillicsup' => '#/314',
-'blk=cyrillicsupplement' => '#/314',
-'blk=cyrillicsupplementary' => '#/314',
+'blk=cyrillicexta' => '#/340',
+'blk=cyrillicextb' => '#/341',
+'blk=cyrillicextc' => '#/342',
+'blk=cyrillicextd' => '#/343',
+'blk=cyrillicextendeda' => '#/340',
+'blk=cyrillicextendedb' => '#/341',
+'blk=cyrillicextendedc' => '#/342',
+'blk=cyrillicextendedd' => '#/343',
+'blk=cyrillicsup' => '#/316',
+'blk=cyrillicsupplement' => '#/316',
+'blk=cyrillicsupplementary' => '#/316',
 'blk=deseret' => '#/190',
-'blk=devanagari' => '#/294',
-'blk=devanagariext' => '#/356',
-'blk=devanagariextended' => '#/356',
-'blk=diacriticals' => '#/341',
-'blk=diacriticalsext' => '#/376',
-'blk=diacriticalsforsymbols' => '#/423',
-'blk=diacriticalssup' => '#/377',
+'blk=devanagari' => '#/295',
+'blk=devanagariext' => '#/359',
+'blk=devanagariexta' => '#/371',
+'blk=devanagariextended' => '#/359',
+'blk=devanagariextendeda' => '#/371',
+'blk=diacriticals' => '#/344',
+'blk=diacriticalsext' => '#/380',
+'blk=diacriticalsforsymbols' => '#/428',
+'blk=diacriticalssup' => '#/381',
 'blk=dingbats' => '#/231',
-'blk=divesakuru' => '#/295',
-'blk=dogra' => '#/137',
-'blk=domino' => '#/157',
-'blk=dominotiles' => '#/157',
+'blk=divesakuru' => '#/296',
+'blk=dogra' => '#/136',
+'blk=domino' => '#/156',
+'blk=dominotiles' => '#/156',
 'blk=duployan' => '#/232',
-'blk=earlydynasticcuneiform' => '#/424',
-'blk=egyptianhieroglyphformatcontrols' => '#/430',
-'blk=egyptianhieroglyphs' => '#/412',
+'blk=earlydynasticcuneiform' => '#/429',
+'blk=egyptianhieroglyphformatcontrols' => '#/435',
+'blk=egyptianhieroglyphs' => '#/417',
 'blk=elbasan' => '#/191',
 'blk=elymaic' => '#/192',
 'blk=emoticons' => '#/261',
-'blk=enclosedalphanum' => '#/389',
-'blk=enclosedalphanumerics' => '#/389',
-'blk=enclosedalphanumericsupplement' => '#/413',
-'blk=enclosedalphanumsup' => '#/413',
-'blk=enclosedcjk' => '#/315',
-'blk=enclosedcjklettersandmonths' => '#/315',
-'blk=enclosedideographicsup' => '#/425',
-'blk=enclosedideographicsupplement' => '#/425',
+'blk=enclosedalphanum' => '#/393',
+'blk=enclosedalphanumerics' => '#/393',
+'blk=enclosedalphanumericsupplement' => '#/418',
+'blk=enclosedalphanumsup' => '#/418',
+'blk=enclosedcjk' => '#/317',
+'blk=enclosedcjklettersandmonths' => '#/317',
+'blk=enclosedideographicsup' => '#/430',
+'blk=enclosedideographicsupplement' => '#/430',
 'blk=ethiopic' => '#/233',
-'blk=ethiopicext' => '#/316',
-'blk=ethiopicexta' => '#/342',
-'blk=ethiopicextb' => '#/343',
-'blk=ethiopicextended' => '#/316',
-'blk=ethiopicextendeda' => '#/342',
-'blk=ethiopicextendedb' => '#/343',
-'blk=ethiopicsup' => '#/317',
-'blk=ethiopicsupplement' => '#/317',
-'blk=generalpunctuation' => '#/330',
-'blk=geometricshapes' => '#/378',
-'blk=geometricshapesext' => '#/406',
-'blk=geometricshapesextended' => '#/406',
+'blk=ethiopicext' => '#/318',
+'blk=ethiopicexta' => '#/345',
+'blk=ethiopicextb' => '#/346',
+'blk=ethiopicextended' => '#/318',
+'blk=ethiopicextendeda' => '#/345',
+'blk=ethiopicextendedb' => '#/346',
+'blk=ethiopicsup' => '#/319',
+'blk=ethiopicsupplement' => '#/319',
+'blk=generalpunctuation' => '#/332',
+'blk=geometricshapes' => '#/382',
+'blk=geometricshapesext' => '#/411',
+'blk=geometricshapesextended' => '#/411',
 'blk=georgian' => '#/234',
-'blk=georgianext' => '#/318',
-'blk=georgianextended' => '#/318',
-'blk=georgiansup' => '#/319',
-'blk=georgiansupplement' => '#/319',
-'blk=glagolitic' => '#/296',
-'blk=glagoliticsup' => '#/357',
-'blk=glagoliticsupplement' => '#/357',
-'blk=gothic' => '#/158',
+'blk=georgianext' => '#/320',
+'blk=georgianextended' => '#/320',
+'blk=georgiansup' => '#/321',
+'blk=georgiansupplement' => '#/321',
+'blk=glagolitic' => '#/297',
+'blk=glagoliticsup' => '#/360',
+'blk=glagoliticsupplement' => '#/360',
+'blk=gothic' => '#/157',
 'blk=grantha' => '#/193',
-'blk=greek' => '#/138',
-'blk=greekandcoptic' => '#/138',
+'blk=greek' => '#/137',
+'blk=greekandcoptic' => '#/137',
 'blk=greekext' => '#/235',
 'blk=greekextended' => '#/235',
 'blk=gujarati' => '#/236',
-'blk=gunjalagondi' => '#/344',
+'blk=gunjalagondi' => '#/347',
 'blk=gurmukhi' => '#/237',
-'blk=halfandfullforms' => '#/390',
+'blk=halfandfullforms' => '#/394',
 'blk=halfmarks' => '#/262',
-'blk=halfwidthandfullwidthforms' => '#/390',
-'blk=hangul' => '#/159',
-'blk=hangulcompatibilityjamo' => '#/293',
-'blk=hanguljamo' => '#/122',
+'blk=halfwidthandfullwidthforms' => '#/394',
+'blk=hangul' => '#/158',
+'blk=hangulcompatibilityjamo' => '#/294',
+'blk=hanguljamo' => '#/120',
 'blk=hanguljamoextendeda' => '#/239',
 'blk=hanguljamoextendedb' => '#/240',
-'blk=hangulsyllables' => '#/159',
-'blk=hanifirohingya' => '#/368',
+'blk=hangulsyllables' => '#/158',
+'blk=hanifirohingya' => '#/372',
 'blk=hanunoo' => '#/194',
-'blk=hatran' => '#/160',
-'blk=hebrew' => '#/161',
-'blk=highprivateusesurrogates' => '#/391',
-'blk=highpusurrogates' => '#/391',
-'blk=highsurrogates' => '#/369',
+'blk=hatran' => '#/159',
+'blk=hebrew' => '#/160',
+'blk=highprivateusesurrogates' => '#/395',
+'blk=highpusurrogates' => '#/395',
+'blk=highsurrogates' => '#/373',
 'blk=hiragana' => '#/238',
-'blk=idc' => '#/113',
-'blk=ideographicdescriptioncharacters' => '#/113',
-'blk=ideographicsymbols' => '#/407',
-'blk=ideographicsymbolsandpunctuation' => '#/407',
-'blk=imperialaramaic' => '#/379',
-'blk=indicnumberforms' => '#/392',
-'blk=indicsiyaqnumbers' => '#/401',
-'blk=inscriptionalpahlavi' => '#/418',
-'blk=inscriptionalparthian' => '#/420',
-'blk=ipaext' => '#/162',
-'blk=ipaextensions' => '#/162',
-'blk=jamo' => '#/122',
+'blk=idc' => '#/111',
+'blk=ideographicdescriptioncharacters' => '#/111',
+'blk=ideographicsymbols' => '#/412',
+'blk=ideographicsymbolsandpunctuation' => '#/412',
+'blk=imperialaramaic' => '#/383',
+'blk=indicnumberforms' => '#/396',
+'blk=indicsiyaqnumbers' => '#/406',
+'blk=inscriptionalpahlavi' => '#/423',
+'blk=inscriptionalparthian' => '#/425',
+'blk=ipaext' => '#/161',
+'blk=ipaextensions' => '#/161',
+'blk=jamo' => '#/120',
 'blk=jamoexta' => '#/239',
 'blk=jamoextb' => '#/240',
 'blk=javanese' => '#/241',
-'blk=kaithi' => '#/163',
+'blk=kaithi' => '#/162',
+'blk=kaktoviknumerals' => '#/397',
 'blk=kanaexta' => '#/242',
 'blk=kanaextb' => '#/243',
 'blk=kanaextendeda' => '#/242',
 'blk=kanaextendedb' => '#/243',
 'blk=kanasup' => '#/195',
 'blk=kanasupplement' => '#/195',
-'blk=kanbun' => '#/164',
-'blk=kangxi' => '#/165',
-'blk=kangxiradicals' => '#/165',
+'blk=kanbun' => '#/163',
+'blk=kangxi' => '#/164',
+'blk=kangxiradicals' => '#/164',
 'blk=kannada' => '#/196',
 'blk=katakana' => '#/244',
-'blk=katakanaext' => '#/320',
-'blk=katakanaphoneticextensions' => '#/320',
+'blk=katakanaext' => '#/322',
+'blk=katakanaphoneticextensions' => '#/322',
+'blk=kawi' => '#/121',
 'blk=kayahli' => '#/197',
-'blk=kharoshthi' => '#/297',
-'blk=khitansmallscript' => '#/402',
-'blk=khmer' => '#/139',
-'blk=khmersymbols' => '#/345',
-'blk=khojki' => '#/166',
+'blk=kharoshthi' => '#/298',
+'blk=khitansmallscript' => '#/407',
+'blk=khmer' => '#/138',
+'blk=khmersymbols' => '#/348',
+'blk=khojki' => '#/165',
 'blk=khudawadi' => '#/263',
-'blk=lao' => '#/114',
-'blk=latin1' => '#/167',
-'blk=latin1sup' => '#/167',
-'blk=latin1supplement' => '#/167',
+'blk=lao' => '#/112',
+'blk=latin1' => '#/166',
+'blk=latin1sup' => '#/166',
+'blk=latin1supplement' => '#/166',
 'blk=latinexta' => '#/264',
-'blk=latinextadditional' => '#/408',
+'blk=latinextadditional' => '#/413',
 'blk=latinextb' => '#/265',
 'blk=latinextc' => '#/266',
 'blk=latinextd' => '#/267',
 'blk=latinexte' => '#/268',
 'blk=latinextendeda' => '#/264',
-'blk=latinextendedadditional' => '#/408',
+'blk=latinextendedadditional' => '#/413',
 'blk=latinextendedb' => '#/265',
 'blk=latinextendedc' => '#/266',
 'blk=latinextendedd' => '#/267',
@@ -3531,244 +3563,245 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'blk=latinextendedg' => '#/270',
 'blk=latinextf' => '#/269',
 'blk=latinextg' => '#/270',
-'blk=lepcha' => '#/168',
-'blk=letterlikesymbols' => '#/403',
-'blk=limbu' => '#/140',
+'blk=lepcha' => '#/167',
+'blk=letterlikesymbols' => '#/408',
+'blk=limbu' => '#/139',
 'blk=lineara' => '#/198',
-'blk=linearbideograms' => '#/393',
-'blk=linearbsyllabary' => '#/394',
-'blk=lisu' => '#/123',
+'blk=linearbideograms' => '#/398',
+'blk=linearbsyllabary' => '#/399',
+'blk=lisu' => '#/122',
 'blk=lisusup' => '#/199',
 'blk=lisusupplement' => '#/199',
-'blk=lowsurrogates' => '#/358',
-'blk=lycian' => '#/169',
-'blk=lydian' => '#/170',
+'blk=lowsurrogates' => '#/361',
+'blk=lycian' => '#/168',
+'blk=lydian' => '#/169',
 'blk=mahajani' => '#/245',
 'blk=mahjong' => '#/200',
 'blk=mahjongtiles' => '#/200',
 'blk=makasar' => '#/201',
 'blk=malayalam' => '#/271',
 'blk=mandaic' => '#/202',
-'blk=manichaean' => '#/298',
+'blk=manichaean' => '#/299',
 'blk=marchen' => '#/203',
-'blk=masaramgondi' => '#/346',
-'blk=mathalphanum' => '#/347',
-'blk=mathematicalalphanumericsymbols' => '#/347',
-'blk=mathematicaloperators' => '#/359',
-'blk=mathoperators' => '#/359',
-'blk=mayannumerals' => '#/360',
-'blk=medefaidrin' => '#/321',
-'blk=meeteimayek' => '#/322',
-'blk=meeteimayekext' => '#/370',
-'blk=meeteimayekextensions' => '#/370',
-'blk=mendekikakui' => '#/348',
-'blk=meroiticcursive' => '#/380',
-'blk=meroitichieroglyphs' => '#/414',
-'blk=miao' => '#/124',
-'blk=miscarrows' => '#/299',
-'blk=miscellaneousmathematicalsymbolsa' => '#/395',
-'blk=miscellaneousmathematicalsymbolsb' => '#/396',
-'blk=miscellaneoussymbols' => '#/323',
-'blk=miscellaneoussymbolsandarrows' => '#/299',
-'blk=miscellaneoussymbolsandpictographs' => '#/381',
-'blk=miscellaneoustechnical' => '#/361',
-'blk=miscmathsymbolsa' => '#/395',
-'blk=miscmathsymbolsb' => '#/396',
-'blk=miscpictographs' => '#/381',
-'blk=miscsymbols' => '#/323',
-'blk=misctechnical' => '#/361',
-'blk=modi' => '#/125',
-'blk=modifierletters' => '#/382',
-'blk=modifiertoneletters' => '#/415',
+'blk=masaramgondi' => '#/349',
+'blk=mathalphanum' => '#/350',
+'blk=mathematicalalphanumericsymbols' => '#/350',
+'blk=mathematicaloperators' => '#/362',
+'blk=mathoperators' => '#/362',
+'blk=mayannumerals' => '#/363',
+'blk=medefaidrin' => '#/323',
+'blk=meeteimayek' => '#/324',
+'blk=meeteimayekext' => '#/374',
+'blk=meeteimayekextensions' => '#/374',
+'blk=mendekikakui' => '#/351',
+'blk=meroiticcursive' => '#/384',
+'blk=meroitichieroglyphs' => '#/419',
+'blk=miao' => '#/123',
+'blk=miscarrows' => '#/300',
+'blk=miscellaneousmathematicalsymbolsa' => '#/400',
+'blk=miscellaneousmathematicalsymbolsb' => '#/401',
+'blk=miscellaneoussymbols' => '#/325',
+'blk=miscellaneoussymbolsandarrows' => '#/300',
+'blk=miscellaneoussymbolsandpictographs' => '#/385',
+'blk=miscellaneoustechnical' => '#/364',
+'blk=miscmathsymbolsa' => '#/400',
+'blk=miscmathsymbolsb' => '#/401',
+'blk=miscpictographs' => '#/385',
+'blk=miscsymbols' => '#/325',
+'blk=misctechnical' => '#/364',
+'blk=modi' => '#/124',
+'blk=modifierletters' => '#/386',
+'blk=modifiertoneletters' => '#/420',
 'blk=mongolian' => '#/272',
-'blk=mongoliansup' => '#/349',
-'blk=mongoliansupplement' => '#/349',
-'blk=mro' => '#/115',
+'blk=mongoliansup' => '#/352',
+'blk=mongoliansupplement' => '#/352',
+'blk=mro' => '#/113',
 'blk=multani' => '#/204',
-'blk=music' => '#/141',
-'blk=musicalsymbols' => '#/141',
+'blk=music' => '#/140',
+'blk=musicalsymbols' => '#/140',
 'blk=myanmar' => '#/205',
-'blk=myanmarexta' => '#/324',
-'blk=myanmarextb' => '#/325',
-'blk=myanmarextendeda' => '#/324',
-'blk=myanmarextendedb' => '#/325',
+'blk=myanmarexta' => '#/326',
+'blk=myanmarextb' => '#/327',
+'blk=myanmarextendeda' => '#/326',
+'blk=myanmarextendedb' => '#/327',
 'blk=nabataean' => '#/273',
-'blk=nandinagari' => '#/326',
+'blk=nagmundari' => '#/301',
+'blk=nandinagari' => '#/328',
 'blk=nb' => 'Blk/NB',
-'blk=newa' => '#/126',
+'blk=newa' => '#/125',
 'blk=newtailue' => '#/274',
-'blk=nko' => '#/116',
+'blk=nko' => '#/114',
 'blk=noblock' => 'Blk/NB',
-'blk=numberforms' => '#/327',
-'blk=nushu' => '#/142',
-'blk=nyiakengpuachuehmong' => '#/419',
-'blk=ocr' => '#/117',
-'blk=ogham' => '#/143',
+'blk=numberforms' => '#/329',
+'blk=nushu' => '#/141',
+'blk=nyiakengpuachuehmong' => '#/424',
+'blk=ocr' => '#/115',
+'blk=ogham' => '#/142',
 'blk=olchiki' => '#/206',
-'blk=oldhungarian' => '#/350',
+'blk=oldhungarian' => '#/353',
 'blk=olditalic' => '#/275',
-'blk=oldnortharabian' => '#/383',
+'blk=oldnortharabian' => '#/387',
 'blk=oldpermic' => '#/276',
-'blk=oldpersian' => '#/300',
-'blk=oldsogdian' => '#/301',
-'blk=oldsoutharabian' => '#/384',
+'blk=oldpersian' => '#/302',
+'blk=oldsogdian' => '#/303',
+'blk=oldsoutharabian' => '#/388',
 'blk=oldturkic' => '#/277',
 'blk=olduyghur' => '#/278',
-'blk=opticalcharacterrecognition' => '#/117',
-'blk=oriya' => '#/144',
-'blk=ornamentaldingbats' => '#/409',
-'blk=osage' => '#/145',
+'blk=opticalcharacterrecognition' => '#/115',
+'blk=oriya' => '#/143',
+'blk=ornamentaldingbats' => '#/414',
+'blk=osage' => '#/144',
 'blk=osmanya' => '#/207',
-'blk=ottomansiyaqnumbers' => '#/416',
-'blk=pahawhhmong' => '#/328',
+'blk=ottomansiyaqnumbers' => '#/421',
+'blk=pahawhhmong' => '#/330',
 'blk=palmyrene' => '#/279',
 'blk=paucinhau' => '#/280',
 'blk=phagspa' => '#/208',
 'blk=phaistos' => '#/246',
 'blk=phaistosdisc' => '#/246',
-'blk=phoenician' => '#/302',
-'blk=phoneticext' => '#/329',
-'blk=phoneticextensions' => '#/329',
-'blk=phoneticextensionssupplement' => '#/371',
-'blk=phoneticextsup' => '#/371',
-'blk=playingcards' => '#/351',
-'blk=privateuse' => '#/118',
-'blk=privateusearea' => '#/118',
-'blk=psalterpahlavi' => '#/372',
-'blk=pua' => '#/118',
-'blk=punctuation' => '#/330',
-'blk=rejang' => '#/171',
-'blk=rumi' => '#/127',
-'blk=ruminumeralsymbols' => '#/127',
-'blk=runic' => '#/146',
+'blk=phoenician' => '#/304',
+'blk=phoneticext' => '#/331',
+'blk=phoneticextensions' => '#/331',
+'blk=phoneticextensionssupplement' => '#/375',
+'blk=phoneticextsup' => '#/375',
+'blk=playingcards' => '#/354',
+'blk=privateuse' => '#/116',
+'blk=privateusearea' => '#/116',
+'blk=psalterpahlavi' => '#/376',
+'blk=pua' => '#/116',
+'blk=punctuation' => '#/332',
+'blk=rejang' => '#/170',
+'blk=rumi' => '#/126',
+'blk=ruminumeralsymbols' => '#/126',
+'blk=runic' => '#/145',
 'blk=samaritan' => '#/281',
-'blk=saurashtra' => '#/303',
+'blk=saurashtra' => '#/305',
 'blk=sharada' => '#/209',
 'blk=shavian' => '#/210',
-'blk=shorthandformatcontrols' => '#/426',
+'blk=shorthandformatcontrols' => '#/431',
 'blk=siddham' => '#/211',
 'blk=sinhala' => '#/212',
-'blk=sinhalaarchaicnumbers' => '#/421',
-'blk=smallforms' => '#/304',
-'blk=smallformvariants' => '#/304',
-'blk=smallkanaext' => '#/352',
-'blk=smallkanaextension' => '#/352',
+'blk=sinhalaarchaicnumbers' => '#/426',
+'blk=smallforms' => '#/306',
+'blk=smallformvariants' => '#/306',
+'blk=smallkanaext' => '#/355',
+'blk=smallkanaextension' => '#/355',
 'blk=sogdian' => '#/213',
-'blk=sorasompeng' => '#/331',
+'blk=sorasompeng' => '#/333',
 'blk=soyombo' => '#/214',
-'blk=spacingmodifierletters' => '#/382',
+'blk=spacingmodifierletters' => '#/386',
 'blk=specials' => '#/247',
 'blk=sundanese' => '#/282',
-'blk=sundanesesup' => '#/353',
-'blk=sundanesesupplement' => '#/353',
-'blk=suparrowsa' => '#/305',
-'blk=suparrowsb' => '#/306',
-'blk=suparrowsc' => '#/307',
-'blk=superandsub' => '#/332',
-'blk=superscriptsandsubscripts' => '#/332',
-'blk=supmathoperators' => '#/397',
-'blk=supplementalarrowsa' => '#/305',
-'blk=supplementalarrowsb' => '#/306',
-'blk=supplementalarrowsc' => '#/307',
-'blk=supplementalmathematicaloperators' => '#/397',
-'blk=supplementalpunctuation' => '#/373',
-'blk=supplementalsymbolsandpictographs' => '#/427',
+'blk=sundanesesup' => '#/356',
+'blk=sundanesesupplement' => '#/356',
+'blk=suparrowsa' => '#/307',
+'blk=suparrowsb' => '#/308',
+'blk=suparrowsc' => '#/309',
+'blk=superandsub' => '#/334',
+'blk=superscriptsandsubscripts' => '#/334',
+'blk=supmathoperators' => '#/402',
+'blk=supplementalarrowsa' => '#/307',
+'blk=supplementalarrowsb' => '#/308',
+'blk=supplementalarrowsc' => '#/309',
+'blk=supplementalmathematicaloperators' => '#/402',
+'blk=supplementalpunctuation' => '#/377',
+'blk=supplementalsymbolsandpictographs' => '#/432',
 'blk=supplementaryprivateuseareaa' => '#/215',
 'blk=supplementaryprivateuseareab' => '#/216',
 'blk=suppuaa' => '#/215',
 'blk=suppuab' => '#/216',
-'blk=suppunctuation' => '#/373',
-'blk=supsymbolsandpictographs' => '#/427',
-'blk=suttonsignwriting' => '#/404',
-'blk=sylotinagri' => '#/333',
-'blk=symbolsandpictographsexta' => '#/428',
-'blk=symbolsandpictographsextendeda' => '#/428',
-'blk=symbolsforlegacycomputing' => '#/429',
-'blk=syriac' => '#/172',
+'blk=suppunctuation' => '#/377',
+'blk=supsymbolsandpictographs' => '#/432',
+'blk=suttonsignwriting' => '#/409',
+'blk=sylotinagri' => '#/335',
+'blk=symbolsandpictographsexta' => '#/433',
+'blk=symbolsandpictographsextendeda' => '#/433',
+'blk=symbolsforlegacycomputing' => '#/434',
+'blk=syriac' => '#/171',
 'blk=syriacsup' => '#/283',
 'blk=syriacsupplement' => '#/283',
 'blk=tagalog' => '#/217',
 'blk=tagbanwa' => '#/248',
-'blk=tags' => '#/128',
-'blk=taile' => '#/147',
+'blk=tags' => '#/127',
+'blk=taile' => '#/146',
 'blk=taitham' => '#/218',
 'blk=taiviet' => '#/219',
-'blk=taixuanjing' => '#/334',
-'blk=taixuanjingsymbols' => '#/334',
-'blk=takri' => '#/148',
-'blk=tamil' => '#/149',
+'blk=taixuanjing' => '#/336',
+'blk=taixuanjingsymbols' => '#/336',
+'blk=takri' => '#/147',
+'blk=tamil' => '#/148',
 'blk=tamilsup' => '#/249',
 'blk=tamilsupplement' => '#/249',
-'blk=tangsa' => '#/173',
-'blk=tangut' => '#/174',
-'blk=tangutcomponents' => '#/398',
+'blk=tangsa' => '#/172',
+'blk=tangut' => '#/173',
+'blk=tangutcomponents' => '#/403',
 'blk=tangutsup' => '#/284',
 'blk=tangutsupplement' => '#/284',
-'blk=telugu' => '#/175',
-'blk=thaana' => '#/176',
-'blk=thai' => '#/129',
+'blk=telugu' => '#/174',
+'blk=thaana' => '#/175',
+'blk=thai' => '#/128',
 'blk=tibetan' => '#/220',
 'blk=tifinagh' => '#/250',
 'blk=tirhuta' => '#/221',
-'blk=toto' => '#/130',
-'blk=transportandmap' => '#/385',
-'blk=transportandmapsymbols' => '#/385',
-'blk=ucas' => '#/131',
+'blk=toto' => '#/129',
+'blk=transportandmap' => '#/389',
+'blk=transportandmapsymbols' => '#/389',
+'blk=ucas' => '#/130',
 'blk=ucasext' => '#/222',
 'blk=ucasexta' => '#/251',
 'blk=ugaritic' => '#/252',
-'blk=unifiedcanadianaboriginalsyllabics' => '#/131',
+'blk=unifiedcanadianaboriginalsyllabics' => '#/130',
 'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/222',
 'blk=unifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
-'blk=vai' => '#/119',
-'blk=variationselectors' => '#/111',
-'blk=variationselectorssupplement' => '#/150',
+'blk=vai' => '#/117',
+'blk=variationselectors' => '#/109',
+'blk=variationselectorssupplement' => '#/149',
 'blk=vedicext' => '#/253',
 'blk=vedicextensions' => '#/253',
-'blk=verticalforms' => '#/362',
+'blk=verticalforms' => '#/365',
 'blk=vithkuqi' => '#/254',
-'blk=vs' => '#/111',
-'blk=vssup' => '#/150',
-'blk=wancho' => '#/177',
-'blk=warangciti' => '#/308',
-'blk=yezidi' => '#/178',
-'blk=yijing' => '#/179',
-'blk=yijinghexagramsymbols' => '#/179',
-'blk=yiradicals' => '#/309',
-'blk=yisyllables' => '#/335',
-'blk=zanabazarsquare' => '#/386',
-'blk=znamennymusic' => '#/363',
-'blk=znamennymusicalnotation' => '#/363',
-'blockelements' => '#/355',
+'blk=vs' => '#/109',
+'blk=vssup' => '#/149',
+'blk=wancho' => '#/176',
+'blk=warangciti' => '#/310',
+'blk=yezidi' => '#/177',
+'blk=yijing' => '#/178',
+'blk=yijinghexagramsymbols' => '#/178',
+'blk=yiradicals' => '#/311',
+'blk=yisyllables' => '#/337',
+'blk=zanabazarsquare' => '#/390',
+'blk=znamennymusic' => '#/366',
+'blk=znamennymusicalnotation' => '#/366',
+'blockelements' => '#/358',
 'bopo' => 'Scx/Bopo',
 'bopomofo' => 'Scx/Bopo',
-'bopomofoext' => '#/310',
-'bopomofoextended' => '#/310',
-'boxdrawing' => '#/289',
+'bopomofoext' => '#/312',
+'bopomofoextended' => '#/312',
+'boxdrawing' => '#/290',
 'bpt=c' => 'Bpt/C',
 'bpt=close' => 'Bpt/C',
 'bpt=n' => 'Bpt/N',
 'bpt=none' => 'Bpt/N',
 'bpt=o' => 'Bpt/O',
 'bpt=open' => 'Bpt/O',
-'brah' => '#/657',
-'brahmi' => '#/657',
-'brai' => '#/182',
-'braille' => '#/182',
-'braillepatterns' => '#/182',
-'bugi' => '#/658',
-'buginese' => '#/658',
-'buhd' => '#/659',
-'buhid' => '#/659',
-'byzantinemusic' => '#/365',
-'byzantinemusicalsymbols' => '#/365',
+'brah' => '#/662',
+'brahmi' => '#/662',
+'brai' => '#/181',
+'braille' => '#/181',
+'braillepatterns' => '#/181',
+'bugi' => '#/663',
+'buginese' => '#/663',
+'buhd' => '#/664',
+'buhid' => '#/664',
+'byzantinemusic' => '#/368',
+'byzantinemusicalsymbols' => '#/368',
 'c' => 'Gc/C',
 'cakm' => 'Scx/Cakm',
-'canadianaboriginal' => '#/660',
-'canadiansyllabics' => '#/131',
-'cans' => '#/660',
-'cari' => '#/661',
-'carian' => '#/661',
+'canadianaboriginal' => '#/665',
+'canadiansyllabics' => '#/130',
+'cans' => '#/665',
+'cari' => '#/666',
+'carian' => '#/666',
 'cased' => 'Cased/Y',
 'cased=f' => '!Cased/Y',
 'cased=false' => '!Cased/Y',
@@ -3780,8 +3813,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'cased=yes' => 'Cased/Y',
 'casedletter' => 'Gc/LC',
 'caseignorable' => 'CI/Y',
-'caucasianalbanian' => '#/649',
-'cc' => '#/434',
+'caucasianalbanian' => '#/654',
+'cc' => '#/439',
 'ccc=a' => 'Ccc/A',
 'ccc=above' => 'Ccc/A',
 'ccc=aboveleft' => 'Ccc/AL',
@@ -3879,13 +3912,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'changeswhennfkccasefolded' => 'CWKCF/Y',
 'changeswhentitlecased' => 'CWT/Y',
 'changeswhenuppercased' => 'CWU/Y',
-'cher' => '#/662',
-'cherokee' => '#/662',
-'cherokeesup' => '#/311',
-'cherokeesupplement' => '#/311',
-'chesssymbols' => '#/337',
-'chorasmian' => '#/663',
-'chrs' => '#/663',
+'cher' => '#/667',
+'cherokee' => '#/667',
+'cherokeesup' => '#/313',
+'cherokeesupplement' => '#/313',
+'chesssymbols' => '#/339',
+'chorasmian' => '#/668',
+'chrs' => '#/668',
 'ci' => 'CI/Y',
 'ci=f' => '!CI/Y',
 'ci=false' => '!CI/Y',
@@ -3895,49 +3928,51 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ci=true' => 'CI/Y',
 'ci=y' => 'CI/Y',
 'ci=yes' => 'CI/Y',
-'cjk' => '#/112',
+'cjk' => '#/110',
 'cjkcompat' => '#/259',
-'cjkcompatforms' => '#/366',
+'cjkcompatforms' => '#/369',
 'cjkcompatibility' => '#/259',
-'cjkcompatibilityforms' => '#/366',
-'cjkcompatibilityideographs' => '#/411',
-'cjkcompatibilityideographssupplement' => '#/422',
-'cjkcompatideographs' => '#/411',
-'cjkcompatideographssup' => '#/422',
-'cjkexta' => '#/183',
-'cjkextb' => '#/184',
-'cjkextc' => '#/185',
-'cjkextd' => '#/186',
-'cjkexte' => '#/187',
-'cjkextf' => '#/188',
-'cjkextg' => '#/189',
-'cjkradicalssup' => '#/367',
-'cjkradicalssupplement' => '#/367',
-'cjkstrokes' => '#/290',
-'cjksymbols' => '#/291',
-'cjksymbolsandpunctuation' => '#/291',
-'cjkunifiedideographs' => '#/112',
-'cjkunifiedideographsextensiona' => '#/183',
-'cjkunifiedideographsextensionb' => '#/184',
-'cjkunifiedideographsextensionc' => '#/185',
-'cjkunifiedideographsextensiond' => '#/186',
-'cjkunifiedideographsextensione' => '#/187',
-'cjkunifiedideographsextensionf' => '#/188',
-'cjkunifiedideographsextensiong' => '#/189',
+'cjkcompatibilityforms' => '#/369',
+'cjkcompatibilityideographs' => '#/416',
+'cjkcompatibilityideographssupplement' => '#/427',
+'cjkcompatideographs' => '#/416',
+'cjkcompatideographssup' => '#/427',
+'cjkexta' => '#/182',
+'cjkextb' => '#/183',
+'cjkextc' => '#/184',
+'cjkextd' => '#/185',
+'cjkexte' => '#/186',
+'cjkextf' => '#/187',
+'cjkextg' => '#/188',
+'cjkexth' => '#/189',
+'cjkradicalssup' => '#/370',
+'cjkradicalssupplement' => '#/370',
+'cjkstrokes' => '#/291',
+'cjksymbols' => '#/292',
+'cjksymbolsandpunctuation' => '#/292',
+'cjkunifiedideographs' => '#/110',
+'cjkunifiedideographsextensiona' => '#/182',
+'cjkunifiedideographsextensionb' => '#/183',
+'cjkunifiedideographsextensionc' => '#/184',
+'cjkunifiedideographsextensiond' => '#/185',
+'cjkunifiedideographsextensione' => '#/186',
+'cjkunifiedideographsextensionf' => '#/187',
+'cjkunifiedideographsextensiong' => '#/188',
+'cjkunifiedideographsextensionh' => '#/189',
 'closepunctuation' => 'Gc/Pe',
 'cn' => 'Gc/Cn',
-'cntrl' => '#/434',
-'co' => '#/435',
-'combiningdiacriticalmarks' => '#/341',
-'combiningdiacriticalmarksextended' => '#/376',
-'combiningdiacriticalmarksforsymbols' => '#/423',
-'combiningdiacriticalmarkssupplement' => '#/377',
+'cntrl' => '#/439',
+'co' => '#/440',
+'combiningdiacriticalmarks' => '#/344',
+'combiningdiacriticalmarksextended' => '#/380',
+'combiningdiacriticalmarksforsymbols' => '#/428',
+'combiningdiacriticalmarkssupplement' => '#/381',
 'combininghalfmarks' => '#/262',
 'combiningmark' => 'Gc/M',
-'combiningmarksforsymbols' => '#/423',
+'combiningmarksforsymbols' => '#/428',
 'common' => 'Scx/Zyyy',
-'commonindicnumberforms' => '#/392',
-'compatjamo' => '#/293',
+'commonindicnumberforms' => '#/396',
+'compatjamo' => '#/294',
 'compex' => 'CompEx/Y',
 'compex=f' => '!CompEx/Y',
 'compex=false' => '!CompEx/Y',
@@ -3949,21 +3984,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'compex=yes' => 'CompEx/Y',
 'compositionexclusion' => 'CE/Y',
 'connectorpunctuation' => 'Gc/Pc',
-'control' => '#/434',
-'controlpictures' => '#/374',
+'control' => '#/439',
+'controlpictures' => '#/378',
 'copt' => 'Scx/Copt',
 'coptic' => 'Scx/Copt',
-'copticepactnumbers' => '#/405',
-'countingrod' => '#/312',
-'countingrodnumerals' => '#/312',
-'cpmn' => '#/664',
+'copticepactnumbers' => '#/410',
+'countingrod' => '#/314',
+'countingrodnumerals' => '#/314',
+'cpmn' => '#/669',
 'cprt' => 'Scx/Cprt',
 'cs' => '#/14',
 'cuneiform' => 'Scx/Xsux',
-'cuneiformnumbers' => '#/387',
-'cuneiformnumbersandpunctuation' => '#/387',
+'cuneiformnumbers' => '#/391',
+'cuneiformnumbersandpunctuation' => '#/391',
 'currencysymbol' => 'Gc/Sc',
-'currencysymbols' => '#/375',
+'currencysymbols' => '#/379',
 'cwcf' => 'CWCF/Y',
 'cwcf=f' => '!CWCF/Y',
 'cwcf=false' => '!CWCF/Y',
@@ -4019,18 +4054,20 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'cwu=y' => 'CWU/Y',
 'cwu=yes' => 'CWU/Y',
 'cypriot' => 'Scx/Cprt',
-'cypriotsyllabary' => '#/388',
-'cyprominoan' => '#/664',
+'cypriotsyllabary' => '#/392',
+'cyprominoan' => '#/669',
 'cyrillic' => 'Scx/Cyrl',
-'cyrillicexta' => '#/338',
-'cyrillicextb' => '#/339',
-'cyrillicextc' => '#/340',
-'cyrillicextendeda' => '#/338',
-'cyrillicextendedb' => '#/339',
-'cyrillicextendedc' => '#/340',
-'cyrillicsup' => '#/314',
-'cyrillicsupplement' => '#/314',
-'cyrillicsupplementary' => '#/314',
+'cyrillicexta' => '#/340',
+'cyrillicextb' => '#/341',
+'cyrillicextc' => '#/342',
+'cyrillicextd' => '#/343',
+'cyrillicextendeda' => '#/340',
+'cyrillicextendedb' => '#/341',
+'cyrillicextendedc' => '#/342',
+'cyrillicextendedd' => '#/343',
+'cyrillicsup' => '#/316',
+'cyrillicsupplement' => '#/316',
+'cyrillicsupplementary' => '#/316',
 'cyrl' => 'Scx/Cyrl',
 'dash' => 'Dash/Y',
 'dash=f' => '!Dash/Y',
@@ -4057,8 +4094,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'deseret' => '#/190',
 'deva' => 'Scx/Deva',
 'devanagari' => 'Scx/Deva',
-'devanagariext' => '#/356',
-'devanagariextended' => '#/356',
+'devanagariext' => '#/359',
+'devanagariexta' => '#/371',
+'devanagariextended' => '#/359',
+'devanagariextendeda' => '#/371',
 'di' => 'DI/Y',
 'di=f' => '!DI/Y',
 'di=false' => '!DI/Y',
@@ -4078,18 +4117,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'dia=y' => 'Dia/Y',
 'dia=yes' => 'Dia/Y',
 'diacritic' => 'Dia/Y',
-'diacriticals' => '#/341',
-'diacriticalsext' => '#/376',
-'diacriticalsforsymbols' => '#/423',
-'diacriticalssup' => '#/377',
+'diacriticals' => '#/344',
+'diacriticalsext' => '#/380',
+'diacriticalsforsymbols' => '#/428',
+'diacriticalssup' => '#/381',
 'diak' => 'Scx/Diak',
 'digit' => 'Gc/Nd',
 'dingbats' => '#/231',
 'divesakuru' => 'Scx/Diak',
-'dogr' => '#/665',
-'dogra' => '#/665',
-'domino' => '#/157',
-'dominotiles' => '#/157',
+'dogr' => '#/670',
+'dogra' => '#/670',
+'domino' => '#/156',
+'dominotiles' => '#/156',
 'dsrt' => '#/190',
 'dt=can' => 'NFDQC/N',
 'dt=canonical' => 'NFDQC/N',
@@ -4100,8 +4139,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'dt=fin' => 'Dt/Fin',
 'dt=final' => 'Dt/Fin',
 'dt=font' => 'Dt/Font',
-'dt=fra' => '#/431',
-'dt=fraction' => '#/431',
+'dt=fra' => '#/436',
+'dt=fraction' => '#/436',
 'dt=init' => 'Dt/Init',
 'dt=initial' => 'Dt/Init',
 'dt=iso' => 'Dt/Iso',
@@ -4115,8 +4154,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'dt=noncanon' => 'Dt/NonCanon',
 'dt=noncanonical' => 'Dt/NonCanon',
 'dt=none' => 'NFKDQC/Y',
-'dt=small' => '#/432',
-'dt=sml' => '#/432',
+'dt=small' => '#/437',
+'dt=sml' => '#/437',
 'dt=sqr' => 'Dt/Sqr',
 'dt=square' => 'Dt/Sqr',
 'dt=sub' => 'Dt/Sub',
@@ -4124,13 +4163,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'dt=super' => 'Dt/Sup',
 'dt=vert' => 'Dt/Vert',
 'dt=vertical' => 'Dt/Vert',
-'dt=wide' => '#/433',
+'dt=wide' => '#/438',
 'dupl' => 'Scx/Dupl',
 'duployan' => 'Scx/Dupl',
 'ea=a' => 'Ea/A',
 'ea=ambiguous' => 'Ea/A',
-'ea=f' => '#/433',
-'ea=fullwidth' => '#/433',
+'ea=f' => '#/438',
+'ea=fullwidth' => '#/438',
 'ea=h' => 'Ea/H',
 'ea=halfwidth' => 'Ea/H',
 'ea=n' => 'Ea/N',
@@ -4139,7 +4178,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ea=neutral' => 'Ea/N',
 'ea=w' => 'Ea/W',
 'ea=wide' => 'Ea/W',
-'earlydynasticcuneiform' => '#/424',
+'earlydynasticcuneiform' => '#/429',
 'ebase' => 'EBase/Y',
 'ebase=f' => '!EBase/Y',
 'ebase=false' => '!EBase/Y',
@@ -4158,13 +4197,13 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ecomp=true' => 'EComp/Y',
 'ecomp=y' => 'EComp/Y',
 'ecomp=yes' => 'EComp/Y',
-'egyp' => '#/666',
-'egyptianhieroglyphformatcontrols' => '#/430',
-'egyptianhieroglyphs' => '#/666',
-'elba' => '#/667',
-'elbasan' => '#/667',
-'elym' => '#/668',
-'elymaic' => '#/668',
+'egyp' => '#/671',
+'egyptianhieroglyphformatcontrols' => '#/435',
+'egyptianhieroglyphs' => '#/671',
+'elba' => '#/672',
+'elbasan' => '#/672',
+'elym' => '#/673',
+'elymaic' => '#/673',
 'emod' => '#/61',
 'emod=f' => '#/!61',
 'emod=false' => '#/!61',
@@ -4188,14 +4227,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'emojimodifierbase' => 'EBase/Y',
 'emojipresentation' => 'EPres/Y',
 'emoticons' => '#/261',
-'enclosedalphanum' => '#/389',
-'enclosedalphanumerics' => '#/389',
-'enclosedalphanumericsupplement' => '#/413',
-'enclosedalphanumsup' => '#/413',
-'enclosedcjk' => '#/315',
-'enclosedcjklettersandmonths' => '#/315',
-'enclosedideographicsup' => '#/425',
-'enclosedideographicsupplement' => '#/425',
+'enclosedalphanum' => '#/393',
+'enclosedalphanumerics' => '#/393',
+'enclosedalphanumericsupplement' => '#/418',
+'enclosedalphanumsup' => '#/418',
+'enclosedcjk' => '#/317',
+'enclosedcjklettersandmonths' => '#/317',
+'enclosedideographicsup' => '#/430',
+'enclosedideographicsupplement' => '#/430',
 'enclosingmark' => 'Gc/Me',
 'epres' => 'EPres/Y',
 'epres=f' => '!EPres/Y',
@@ -4208,14 +4247,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'epres=yes' => 'EPres/Y',
 'ethi' => 'Scx/Ethi',
 'ethiopic' => 'Scx/Ethi',
-'ethiopicext' => '#/316',
-'ethiopicexta' => '#/342',
-'ethiopicextb' => '#/343',
-'ethiopicextended' => '#/316',
-'ethiopicextendeda' => '#/342',
-'ethiopicextendedb' => '#/343',
-'ethiopicsup' => '#/317',
-'ethiopicsupplement' => '#/317',
+'ethiopicext' => '#/318',
+'ethiopicexta' => '#/345',
+'ethiopicextb' => '#/346',
+'ethiopicextended' => '#/318',
+'ethiopicextendeda' => '#/345',
+'ethiopicextendedb' => '#/346',
+'ethiopicsup' => '#/319',
+'ethiopicsupplement' => '#/319',
 'ext' => 'Ext/Y',
 'ext=f' => '!Ext/Y',
 'ext=false' => '!Ext/Y',
@@ -4241,15 +4280,15 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'fullcompositionexclusion' => 'CompEx/Y',
 'gc=c' => 'Gc/C',
 'gc=casedletter' => 'Gc/LC',
-'gc=cc' => '#/434',
+'gc=cc' => '#/439',
 'gc=cf' => 'Gc/Cf',
 'gc=closepunctuation' => 'Gc/Pe',
 'gc=cn' => 'Gc/Cn',
-'gc=cntrl' => '#/434',
-'gc=co' => '#/435',
+'gc=cntrl' => '#/439',
+'gc=co' => '#/440',
 'gc=combiningmark' => 'Gc/M',
 'gc=connectorpunctuation' => 'Gc/Pc',
-'gc=control' => '#/434',
+'gc=control' => '#/439',
 'gc=cs' => '#/14',
 'gc=currencysymbol' => 'Gc/Sc',
 'gc=dashpunctuation' => 'Gc/Pd',
@@ -4265,7 +4304,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'gc=lc' => 'Gc/LC',
 'gc=letter' => 'Gc/L',
 'gc=letternumber' => 'Gc/Nl',
-'gc=lineseparator' => '#/436',
+'gc=lineseparator' => '#/441',
 'gc=ll' => 'Gc/Ll',
 'gc=lm' => 'Gc/Lm',
 'gc=lo' => 'Gc/Lo',
@@ -4293,14 +4332,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'gc=otherpunctuation' => 'Gc/Po',
 'gc=othersymbol' => 'Gc/So',
 'gc=p' => 'Gc/P',
-'gc=paragraphseparator' => '#/437',
+'gc=paragraphseparator' => '#/442',
 'gc=pc' => 'Gc/Pc',
 'gc=pd' => 'Gc/Pd',
 'gc=pe' => 'Gc/Pe',
 'gc=pf' => 'Gc/Pf',
 'gc=pi' => 'Gc/Pi',
 'gc=po' => 'Gc/Po',
-'gc=privateuse' => '#/435',
+'gc=privateuse' => '#/440',
 'gc=ps' => 'Gc/Ps',
 'gc=punct' => 'Gc/P',
 'gc=punctuation' => 'Gc/P',
@@ -4318,8 +4357,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'gc=unassigned' => 'Gc/Cn',
 'gc=uppercaseletter' => 'Gc/Lu',
 'gc=z' => 'Gc/Z',
-'gc=zl' => '#/436',
-'gc=zp' => '#/437',
+'gc=zl' => '#/441',
+'gc=zp' => '#/442',
 'gc=zs' => 'Gc/Zs',
 'gcb=cn' => 'GCB/CN',
 'gcb=control' => 'GCB/CN',
@@ -4349,24 +4388,24 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'gcb=v' => '#/65',
 'gcb=xx' => 'GCB/XX',
 'gcb=zwj' => '#/69',
-'generalpunctuation' => '#/330',
-'geometricshapes' => '#/378',
-'geometricshapesext' => '#/406',
-'geometricshapesextended' => '#/406',
+'generalpunctuation' => '#/332',
+'geometricshapes' => '#/382',
+'geometricshapesext' => '#/411',
+'geometricshapesextended' => '#/411',
 'geor' => 'Scx/Geor',
 'georgian' => 'Scx/Geor',
-'georgianext' => '#/318',
-'georgianextended' => '#/318',
-'georgiansup' => '#/319',
-'georgiansupplement' => '#/319',
+'georgianext' => '#/320',
+'georgianextended' => '#/320',
+'georgiansup' => '#/321',
+'georgiansupplement' => '#/321',
 'glag' => 'Scx/Glag',
 'glagolitic' => 'Scx/Glag',
-'glagoliticsup' => '#/357',
-'glagoliticsupplement' => '#/357',
+'glagoliticsup' => '#/360',
+'glagoliticsupplement' => '#/360',
 'gong' => 'Scx/Gong',
 'gonm' => 'Scx/Gonm',
-'goth' => '#/669',
-'gothic' => '#/669',
+'goth' => '#/674',
+'gothic' => '#/674',
 'gran' => 'Scx/Gran',
 'grantha' => 'Scx/Gran',
 'graph' => 'Perl/Graph',
@@ -4382,7 +4421,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'grbase=y' => 'GrBase/Y',
 'grbase=yes' => 'GrBase/Y',
 'greek' => 'Scx/Grek',
-'greekandcoptic' => '#/138',
+'greekandcoptic' => '#/137',
 'greekext' => '#/235',
 'greekextended' => '#/235',
 'grek' => 'Scx/Grek',
@@ -4400,23 +4439,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'gunjalagondi' => 'Scx/Gong',
 'gurmukhi' => 'Scx/Guru',
 'guru' => 'Scx/Guru',
-'halfandfullforms' => '#/390',
+'halfandfullforms' => '#/394',
 'halfmarks' => '#/262',
-'halfwidthandfullwidthforms' => '#/390',
+'halfwidthandfullwidthforms' => '#/394',
 'han' => 'Scx/Han',
 'hang' => 'Scx/Hang',
 'hangul' => 'Scx/Hang',
-'hangulcompatibilityjamo' => '#/293',
-'hanguljamo' => '#/122',
+'hangulcompatibilityjamo' => '#/294',
+'hanguljamo' => '#/120',
 'hanguljamoextendeda' => '#/239',
 'hanguljamoextendedb' => '#/240',
-'hangulsyllables' => '#/159',
+'hangulsyllables' => '#/158',
 'hani' => 'Scx/Han',
 'hanifirohingya' => 'Scx/Rohg',
-'hano' => '#/670',
-'hanunoo' => '#/670',
-'hatr' => '#/671',
-'hatran' => '#/671',
+'hano' => '#/675',
+'hanunoo' => '#/675',
+'hatr' => '#/676',
+'hatran' => '#/676',
 'hebr' => 'Scx/Hebr',
 'hebrew' => 'Scx/Hebr',
 'hex' => 'Hex/Y',
@@ -4429,12 +4468,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'hex=y' => 'Hex/Y',
 'hex=yes' => 'Hex/Y',
 'hexdigit' => 'Hex/Y',
-'highprivateusesurrogates' => '#/391',
-'highpusurrogates' => '#/391',
-'highsurrogates' => '#/369',
+'highprivateusesurrogates' => '#/395',
+'highpusurrogates' => '#/395',
+'highsurrogates' => '#/373',
 'hira' => 'Scx/Hira',
 'hiragana' => 'Scx/Hira',
-'hluw' => '#/672',
+'hluw' => '#/677',
 'hmng' => 'Scx/Hmng',
 'hmnp' => 'Scx/Hmnp',
 'horizspace' => 'Perl/Blank',
@@ -4450,7 +4489,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'hst=trailingjamo' => '#/64',
 'hst=v' => '#/65',
 'hst=voweljamo' => '#/65',
-'hung' => '#/673',
+'hung' => '#/678',
 'hyphen' => 'Hyphen/T',
 'hyphen=f' => '!Hyphen/T',
 'hyphen=false' => '!Hyphen/T',
@@ -4494,9 +4533,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ideo=y' => 'Ideo/Y',
 'ideo=yes' => 'Ideo/Y',
 'ideographic' => 'Ideo/Y',
-'ideographicdescriptioncharacters' => '#/113',
-'ideographicsymbols' => '#/407',
-'ideographicsymbolsandpunctuation' => '#/407',
+'ideographicdescriptioncharacters' => '#/111',
+'ideographicsymbols' => '#/412',
+'ideographicsymbolsandpunctuation' => '#/412',
 'ids' => 'IDS/Y',
 'ids=f' => '!IDS/Y',
 'ids=false' => '!IDS/Y',
@@ -4527,7 +4566,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'idst=yes' => '#/72',
 'idstart' => 'IDS/Y',
 'idstrinaryoperator' => '#/72',
-'imperialaramaic' => '#/651',
+'imperialaramaic' => '#/656',
 'in=na' => 'Age/NA',
 'in=unassigned' => 'Age/NA',
 'in=v100' => 'In/10_0',
@@ -4537,6 +4576,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'in=v121' => 'In/12_1',
 'in=v130' => 'In/13_0',
 'in=v140' => 'In/14_0',
+'in=v150' => 'In/15_0',
 'in=v20' => 'In/2_0',
 'in=v21' => 'In/2_1',
 'in=v30' => 'In/3_0',
@@ -4554,25 +4594,27 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'in=v70' => 'In/7_0',
 'in=v80' => 'In/8_0',
 'in=v90' => 'In/9_0',
-'inadlam' => '#/133',
-'inaegeannumbers' => '#/354',
-'inahom' => '#/120',
+'inadlam' => '#/132',
+'inaegeannumbers' => '#/357',
+'inahom' => '#/118',
 'inalchemical' => '#/285',
 'inalchemicalsymbols' => '#/285',
-'inalphabeticpf' => '#/336',
-'inalphabeticpresentationforms' => '#/336',
-'inanatolianhieroglyphs' => '#/417',
-'inancientgreekmusic' => '#/399',
-'inancientgreekmusicalnotation' => '#/399',
-'inancientgreeknumbers' => '#/410',
-'inancientsymbols' => '#/364',
-'inarabic' => '#/151',
+'inalphabeticpf' => '#/338',
+'inalphabeticpresentationforms' => '#/338',
+'inanatolianhieroglyphs' => '#/422',
+'inancientgreekmusic' => '#/404',
+'inancientgreekmusicalnotation' => '#/404',
+'inancientgreeknumbers' => '#/415',
+'inancientsymbols' => '#/367',
+'inarabic' => '#/150',
 'inarabicexta' => '#/286',
 'inarabicextb' => '#/287',
+'inarabicextc' => '#/288',
 'inarabicextendeda' => '#/286',
 'inarabicextendedb' => '#/287',
-'inarabicmath' => '#/288',
-'inarabicmathematicalalphabeticsymbols' => '#/288',
+'inarabicextendedc' => '#/288',
+'inarabicmath' => '#/289',
+'inarabicmathematicalalphabeticsymbols' => '#/289',
 'inarabicpfa' => '#/255',
 'inarabicpfb' => '#/256',
 'inarabicpresentationformsa' => '#/255',
@@ -4580,225 +4622,233 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'inarabicsup' => '#/257',
 'inarabicsupplement' => '#/257',
 'inarmenian' => '#/223',
-'inarrows' => '#/152',
-'inascii' => '#/132',
-'inavestan' => '#/180',
+'inarrows' => '#/151',
+'inascii' => '#/131',
+'inavestan' => '#/179',
 'inbalinese' => '#/224',
-'inbamum' => '#/134',
+'inbamum' => '#/133',
 'inbamumsup' => '#/225',
 'inbamumsupplement' => '#/225',
-'inbasiclatin' => '#/132',
+'inbasiclatin' => '#/131',
 'inbassavah' => '#/226',
-'inbatak' => '#/135',
-'inbengali' => '#/181',
+'inbatak' => '#/134',
+'inbengali' => '#/180',
 'inbhaiksuki' => '#/258',
-'inblockelements' => '#/355',
+'inblockelements' => '#/358',
 'inbopomofo' => '#/227',
-'inbopomofoext' => '#/310',
-'inbopomofoextended' => '#/310',
-'inboxdrawing' => '#/289',
-'inbrahmi' => '#/153',
-'inbraille' => '#/182',
-'inbraillepatterns' => '#/182',
+'inbopomofoext' => '#/312',
+'inbopomofoextended' => '#/312',
+'inboxdrawing' => '#/290',
+'inbrahmi' => '#/152',
+'inbraille' => '#/181',
+'inbraillepatterns' => '#/181',
 'inbuginese' => '#/228',
-'inbuhid' => '#/136',
-'inbyzantinemusic' => '#/365',
-'inbyzantinemusicalsymbols' => '#/365',
-'incanadiansyllabics' => '#/131',
-'incarian' => '#/154',
-'incaucasianalbanian' => '#/400',
-'inchakma' => '#/155',
-'incham' => '#/121',
+'inbuhid' => '#/135',
+'inbyzantinemusic' => '#/368',
+'inbyzantinemusicalsymbols' => '#/368',
+'incanadiansyllabics' => '#/130',
+'incarian' => '#/153',
+'incaucasianalbanian' => '#/405',
+'inchakma' => '#/154',
+'incham' => '#/119',
 'incherokee' => '#/229',
-'incherokeesup' => '#/311',
-'incherokeesupplement' => '#/311',
-'inchesssymbols' => '#/337',
-'inchorasmian' => '#/292',
-'incjk' => '#/112',
+'incherokeesup' => '#/313',
+'incherokeesupplement' => '#/313',
+'inchesssymbols' => '#/339',
+'inchorasmian' => '#/293',
+'incjk' => '#/110',
 'incjkcompat' => '#/259',
-'incjkcompatforms' => '#/366',
+'incjkcompatforms' => '#/369',
 'incjkcompatibility' => '#/259',
-'incjkcompatibilityforms' => '#/366',
-'incjkcompatibilityideographs' => '#/411',
-'incjkcompatibilityideographssupplement' => '#/422',
-'incjkcompatideographs' => '#/411',
-'incjkcompatideographssup' => '#/422',
-'incjkexta' => '#/183',
-'incjkextb' => '#/184',
-'incjkextc' => '#/185',
-'incjkextd' => '#/186',
-'incjkexte' => '#/187',
-'incjkextf' => '#/188',
-'incjkextg' => '#/189',
-'incjkradicalssup' => '#/367',
-'incjkradicalssupplement' => '#/367',
-'incjkstrokes' => '#/290',
-'incjksymbols' => '#/291',
-'incjksymbolsandpunctuation' => '#/291',
-'incjkunifiedideographs' => '#/112',
-'incjkunifiedideographsextensiona' => '#/183',
-'incjkunifiedideographsextensionb' => '#/184',
-'incjkunifiedideographsextensionc' => '#/185',
-'incjkunifiedideographsextensiond' => '#/186',
-'incjkunifiedideographsextensione' => '#/187',
-'incjkunifiedideographsextensionf' => '#/188',
-'incjkunifiedideographsextensiong' => '#/189',
-'incombiningdiacriticalmarks' => '#/341',
-'incombiningdiacriticalmarksextended' => '#/376',
-'incombiningdiacriticalmarksforsymbols' => '#/423',
-'incombiningdiacriticalmarkssupplement' => '#/377',
+'incjkcompatibilityforms' => '#/369',
+'incjkcompatibilityideographs' => '#/416',
+'incjkcompatibilityideographssupplement' => '#/427',
+'incjkcompatideographs' => '#/416',
+'incjkcompatideographssup' => '#/427',
+'incjkexta' => '#/182',
+'incjkextb' => '#/183',
+'incjkextc' => '#/184',
+'incjkextd' => '#/185',
+'incjkexte' => '#/186',
+'incjkextf' => '#/187',
+'incjkextg' => '#/188',
+'incjkexth' => '#/189',
+'incjkradicalssup' => '#/370',
+'incjkradicalssupplement' => '#/370',
+'incjkstrokes' => '#/291',
+'incjksymbols' => '#/292',
+'incjksymbolsandpunctuation' => '#/292',
+'incjkunifiedideographs' => '#/110',
+'incjkunifiedideographsextensiona' => '#/182',
+'incjkunifiedideographsextensionb' => '#/183',
+'incjkunifiedideographsextensionc' => '#/184',
+'incjkunifiedideographsextensiond' => '#/185',
+'incjkunifiedideographsextensione' => '#/186',
+'incjkunifiedideographsextensionf' => '#/187',
+'incjkunifiedideographsextensiong' => '#/188',
+'incjkunifiedideographsextensionh' => '#/189',
+'incombiningdiacriticalmarks' => '#/344',
+'incombiningdiacriticalmarksextended' => '#/380',
+'incombiningdiacriticalmarksforsymbols' => '#/428',
+'incombiningdiacriticalmarkssupplement' => '#/381',
 'incombininghalfmarks' => '#/262',
-'incombiningmarksforsymbols' => '#/423',
-'incommonindicnumberforms' => '#/392',
-'incompatjamo' => '#/293',
-'incontrolpictures' => '#/374',
-'incoptic' => '#/156',
-'incopticepactnumbers' => '#/405',
-'incountingrod' => '#/312',
-'incountingrodnumerals' => '#/312',
+'incombiningmarksforsymbols' => '#/428',
+'incommonindicnumberforms' => '#/396',
+'incompatjamo' => '#/294',
+'incontrolpictures' => '#/378',
+'incoptic' => '#/155',
+'incopticepactnumbers' => '#/410',
+'incountingrod' => '#/314',
+'incountingrodnumerals' => '#/314',
 'incuneiform' => '#/260',
-'incuneiformnumbers' => '#/387',
-'incuneiformnumbersandpunctuation' => '#/387',
-'incurrencysymbols' => '#/375',
-'incypriotsyllabary' => '#/388',
-'incyprominoan' => '#/313',
+'incuneiformnumbers' => '#/391',
+'incuneiformnumbersandpunctuation' => '#/391',
+'incurrencysymbols' => '#/379',
+'incypriotsyllabary' => '#/392',
+'incyprominoan' => '#/315',
 'incyrillic' => '#/230',
-'incyrillicexta' => '#/338',
-'incyrillicextb' => '#/339',
-'incyrillicextc' => '#/340',
-'incyrillicextendeda' => '#/338',
-'incyrillicextendedb' => '#/339',
-'incyrillicextendedc' => '#/340',
-'incyrillicsup' => '#/314',
-'incyrillicsupplement' => '#/314',
-'incyrillicsupplementary' => '#/314',
+'incyrillicexta' => '#/340',
+'incyrillicextb' => '#/341',
+'incyrillicextc' => '#/342',
+'incyrillicextd' => '#/343',
+'incyrillicextendeda' => '#/340',
+'incyrillicextendedb' => '#/341',
+'incyrillicextendedc' => '#/342',
+'incyrillicextendedd' => '#/343',
+'incyrillicsup' => '#/316',
+'incyrillicsupplement' => '#/316',
+'incyrillicsupplementary' => '#/316',
 'indeseret' => '#/190',
-'indevanagari' => '#/294',
-'indevanagariext' => '#/356',
-'indevanagariextended' => '#/356',
-'indiacriticals' => '#/341',
-'indiacriticalsext' => '#/376',
-'indiacriticalsforsymbols' => '#/423',
-'indiacriticalssup' => '#/377',
-'indicnumberforms' => '#/392',
-'indicsiyaqnumbers' => '#/401',
+'indevanagari' => '#/295',
+'indevanagariext' => '#/359',
+'indevanagariexta' => '#/371',
+'indevanagariextended' => '#/359',
+'indevanagariextendeda' => '#/371',
+'indiacriticals' => '#/344',
+'indiacriticalsext' => '#/380',
+'indiacriticalsforsymbols' => '#/428',
+'indiacriticalssup' => '#/381',
+'indicnumberforms' => '#/396',
+'indicsiyaqnumbers' => '#/406',
 'indingbats' => '#/231',
-'indivesakuru' => '#/295',
-'indogra' => '#/137',
-'indomino' => '#/157',
-'indominotiles' => '#/157',
+'indivesakuru' => '#/296',
+'indogra' => '#/136',
+'indomino' => '#/156',
+'indominotiles' => '#/156',
 'induployan' => '#/232',
-'inearlydynasticcuneiform' => '#/424',
-'inegyptianhieroglyphformatcontrols' => '#/430',
-'inegyptianhieroglyphs' => '#/412',
+'inearlydynasticcuneiform' => '#/429',
+'inegyptianhieroglyphformatcontrols' => '#/435',
+'inegyptianhieroglyphs' => '#/417',
 'inelbasan' => '#/191',
 'inelymaic' => '#/192',
 'inemoticons' => '#/261',
-'inenclosedalphanum' => '#/389',
-'inenclosedalphanumerics' => '#/389',
-'inenclosedalphanumericsupplement' => '#/413',
-'inenclosedalphanumsup' => '#/413',
-'inenclosedcjk' => '#/315',
-'inenclosedcjklettersandmonths' => '#/315',
-'inenclosedideographicsup' => '#/425',
-'inenclosedideographicsupplement' => '#/425',
+'inenclosedalphanum' => '#/393',
+'inenclosedalphanumerics' => '#/393',
+'inenclosedalphanumericsupplement' => '#/418',
+'inenclosedalphanumsup' => '#/418',
+'inenclosedcjk' => '#/317',
+'inenclosedcjklettersandmonths' => '#/317',
+'inenclosedideographicsup' => '#/430',
+'inenclosedideographicsupplement' => '#/430',
 'inethiopic' => '#/233',
-'inethiopicext' => '#/316',
-'inethiopicexta' => '#/342',
-'inethiopicextb' => '#/343',
-'inethiopicextended' => '#/316',
-'inethiopicextendeda' => '#/342',
-'inethiopicextendedb' => '#/343',
-'inethiopicsup' => '#/317',
-'inethiopicsupplement' => '#/317',
-'ingeneralpunctuation' => '#/330',
-'ingeometricshapes' => '#/378',
-'ingeometricshapesext' => '#/406',
-'ingeometricshapesextended' => '#/406',
+'inethiopicext' => '#/318',
+'inethiopicexta' => '#/345',
+'inethiopicextb' => '#/346',
+'inethiopicextended' => '#/318',
+'inethiopicextendeda' => '#/345',
+'inethiopicextendedb' => '#/346',
+'inethiopicsup' => '#/319',
+'inethiopicsupplement' => '#/319',
+'ingeneralpunctuation' => '#/332',
+'ingeometricshapes' => '#/382',
+'ingeometricshapesext' => '#/411',
+'ingeometricshapesextended' => '#/411',
 'ingeorgian' => '#/234',
-'ingeorgianext' => '#/318',
-'ingeorgianextended' => '#/318',
-'ingeorgiansup' => '#/319',
-'ingeorgiansupplement' => '#/319',
-'inglagolitic' => '#/296',
-'inglagoliticsup' => '#/357',
-'inglagoliticsupplement' => '#/357',
-'ingothic' => '#/158',
+'ingeorgianext' => '#/320',
+'ingeorgianextended' => '#/320',
+'ingeorgiansup' => '#/321',
+'ingeorgiansupplement' => '#/321',
+'inglagolitic' => '#/297',
+'inglagoliticsup' => '#/360',
+'inglagoliticsupplement' => '#/360',
+'ingothic' => '#/157',
 'ingrantha' => '#/193',
-'ingreek' => '#/138',
-'ingreekandcoptic' => '#/138',
+'ingreek' => '#/137',
+'ingreekandcoptic' => '#/137',
 'ingreekext' => '#/235',
 'ingreekextended' => '#/235',
 'ingujarati' => '#/236',
-'ingunjalagondi' => '#/344',
+'ingunjalagondi' => '#/347',
 'ingurmukhi' => '#/237',
-'inhalfandfullforms' => '#/390',
+'inhalfandfullforms' => '#/394',
 'inhalfmarks' => '#/262',
-'inhalfwidthandfullwidthforms' => '#/390',
-'inhangul' => '#/159',
-'inhangulcompatibilityjamo' => '#/293',
-'inhanguljamo' => '#/122',
+'inhalfwidthandfullwidthforms' => '#/394',
+'inhangul' => '#/158',
+'inhangulcompatibilityjamo' => '#/294',
+'inhanguljamo' => '#/120',
 'inhanguljamoextendeda' => '#/239',
 'inhanguljamoextendedb' => '#/240',
-'inhangulsyllables' => '#/159',
-'inhanifirohingya' => '#/368',
+'inhangulsyllables' => '#/158',
+'inhanifirohingya' => '#/372',
 'inhanunoo' => '#/194',
-'inhatran' => '#/160',
-'inhebrew' => '#/161',
+'inhatran' => '#/159',
+'inhebrew' => '#/160',
 'inherited' => 'Scx/Zinh',
-'inhighprivateusesurrogates' => '#/391',
-'inhighpusurrogates' => '#/391',
-'inhighsurrogates' => '#/369',
+'inhighprivateusesurrogates' => '#/395',
+'inhighpusurrogates' => '#/395',
+'inhighsurrogates' => '#/373',
 'inhiragana' => '#/238',
-'inidc' => '#/113',
-'inideographicdescriptioncharacters' => '#/113',
-'inideographicsymbols' => '#/407',
-'inideographicsymbolsandpunctuation' => '#/407',
-'inimperialaramaic' => '#/379',
-'inindicnumberforms' => '#/392',
-'inindicsiyaqnumbers' => '#/401',
-'ininscriptionalpahlavi' => '#/418',
-'ininscriptionalparthian' => '#/420',
-'inipaext' => '#/162',
-'inipaextensions' => '#/162',
+'inidc' => '#/111',
+'inideographicdescriptioncharacters' => '#/111',
+'inideographicsymbols' => '#/412',
+'inideographicsymbolsandpunctuation' => '#/412',
+'inimperialaramaic' => '#/383',
+'inindicnumberforms' => '#/396',
+'inindicsiyaqnumbers' => '#/406',
+'ininscriptionalpahlavi' => '#/423',
+'ininscriptionalparthian' => '#/425',
+'inipaext' => '#/161',
+'inipaextensions' => '#/161',
 'initialpunctuation' => 'Gc/Pi',
-'injamo' => '#/122',
+'injamo' => '#/120',
 'injamoexta' => '#/239',
 'injamoextb' => '#/240',
 'injavanese' => '#/241',
-'inkaithi' => '#/163',
+'inkaithi' => '#/162',
+'inkaktoviknumerals' => '#/397',
 'inkanaexta' => '#/242',
 'inkanaextb' => '#/243',
 'inkanaextendeda' => '#/242',
 'inkanaextendedb' => '#/243',
 'inkanasup' => '#/195',
 'inkanasupplement' => '#/195',
-'inkanbun' => '#/164',
-'inkangxi' => '#/165',
-'inkangxiradicals' => '#/165',
+'inkanbun' => '#/163',
+'inkangxi' => '#/164',
+'inkangxiradicals' => '#/164',
 'inkannada' => '#/196',
 'inkatakana' => '#/244',
-'inkatakanaext' => '#/320',
-'inkatakanaphoneticextensions' => '#/320',
+'inkatakanaext' => '#/322',
+'inkatakanaphoneticextensions' => '#/322',
+'inkawi' => '#/121',
 'inkayahli' => '#/197',
-'inkharoshthi' => '#/297',
-'inkhitansmallscript' => '#/402',
-'inkhmer' => '#/139',
-'inkhmersymbols' => '#/345',
-'inkhojki' => '#/166',
+'inkharoshthi' => '#/298',
+'inkhitansmallscript' => '#/407',
+'inkhmer' => '#/138',
+'inkhmersymbols' => '#/348',
+'inkhojki' => '#/165',
 'inkhudawadi' => '#/263',
-'inlao' => '#/114',
-'inlatin1' => '#/167',
-'inlatin1sup' => '#/167',
-'inlatin1supplement' => '#/167',
+'inlao' => '#/112',
+'inlatin1' => '#/166',
+'inlatin1sup' => '#/166',
+'inlatin1supplement' => '#/166',
 'inlatinexta' => '#/264',
-'inlatinextadditional' => '#/408',
+'inlatinextadditional' => '#/413',
 'inlatinextb' => '#/265',
 'inlatinextc' => '#/266',
 'inlatinextd' => '#/267',
 'inlatinexte' => '#/268',
 'inlatinextendeda' => '#/264',
-'inlatinextendedadditional' => '#/408',
+'inlatinextendedadditional' => '#/413',
 'inlatinextendedb' => '#/265',
 'inlatinextendedc' => '#/266',
 'inlatinextendedd' => '#/267',
@@ -4807,96 +4857,97 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'inlatinextendedg' => '#/270',
 'inlatinextf' => '#/269',
 'inlatinextg' => '#/270',
-'inlepcha' => '#/168',
-'inletterlikesymbols' => '#/403',
-'inlimbu' => '#/140',
+'inlepcha' => '#/167',
+'inletterlikesymbols' => '#/408',
+'inlimbu' => '#/139',
 'inlineara' => '#/198',
-'inlinearbideograms' => '#/393',
-'inlinearbsyllabary' => '#/394',
-'inlisu' => '#/123',
+'inlinearbideograms' => '#/398',
+'inlinearbsyllabary' => '#/399',
+'inlisu' => '#/122',
 'inlisusup' => '#/199',
 'inlisusupplement' => '#/199',
-'inlowsurrogates' => '#/358',
-'inlycian' => '#/169',
-'inlydian' => '#/170',
+'inlowsurrogates' => '#/361',
+'inlycian' => '#/168',
+'inlydian' => '#/169',
 'inmahajani' => '#/245',
 'inmahjong' => '#/200',
 'inmahjongtiles' => '#/200',
 'inmakasar' => '#/201',
 'inmalayalam' => '#/271',
 'inmandaic' => '#/202',
-'inmanichaean' => '#/298',
+'inmanichaean' => '#/299',
 'inmarchen' => '#/203',
-'inmasaramgondi' => '#/346',
-'inmathalphanum' => '#/347',
-'inmathematicalalphanumericsymbols' => '#/347',
-'inmathematicaloperators' => '#/359',
-'inmathoperators' => '#/359',
-'inmayannumerals' => '#/360',
-'inmedefaidrin' => '#/321',
-'inmeeteimayek' => '#/322',
-'inmeeteimayekext' => '#/370',
-'inmeeteimayekextensions' => '#/370',
-'inmendekikakui' => '#/348',
-'inmeroiticcursive' => '#/380',
-'inmeroitichieroglyphs' => '#/414',
-'inmiao' => '#/124',
-'inmiscarrows' => '#/299',
-'inmiscellaneousmathematicalsymbolsa' => '#/395',
-'inmiscellaneousmathematicalsymbolsb' => '#/396',
-'inmiscellaneoussymbols' => '#/323',
-'inmiscellaneoussymbolsandarrows' => '#/299',
-'inmiscellaneoussymbolsandpictographs' => '#/381',
-'inmiscellaneoustechnical' => '#/361',
-'inmiscmathsymbolsa' => '#/395',
-'inmiscmathsymbolsb' => '#/396',
-'inmiscpictographs' => '#/381',
-'inmiscsymbols' => '#/323',
-'inmisctechnical' => '#/361',
-'inmodi' => '#/125',
-'inmodifierletters' => '#/382',
-'inmodifiertoneletters' => '#/415',
+'inmasaramgondi' => '#/349',
+'inmathalphanum' => '#/350',
+'inmathematicalalphanumericsymbols' => '#/350',
+'inmathematicaloperators' => '#/362',
+'inmathoperators' => '#/362',
+'inmayannumerals' => '#/363',
+'inmedefaidrin' => '#/323',
+'inmeeteimayek' => '#/324',
+'inmeeteimayekext' => '#/374',
+'inmeeteimayekextensions' => '#/374',
+'inmendekikakui' => '#/351',
+'inmeroiticcursive' => '#/384',
+'inmeroitichieroglyphs' => '#/419',
+'inmiao' => '#/123',
+'inmiscarrows' => '#/300',
+'inmiscellaneousmathematicalsymbolsa' => '#/400',
+'inmiscellaneousmathematicalsymbolsb' => '#/401',
+'inmiscellaneoussymbols' => '#/325',
+'inmiscellaneoussymbolsandarrows' => '#/300',
+'inmiscellaneoussymbolsandpictographs' => '#/385',
+'inmiscellaneoustechnical' => '#/364',
+'inmiscmathsymbolsa' => '#/400',
+'inmiscmathsymbolsb' => '#/401',
+'inmiscpictographs' => '#/385',
+'inmiscsymbols' => '#/325',
+'inmisctechnical' => '#/364',
+'inmodi' => '#/124',
+'inmodifierletters' => '#/386',
+'inmodifiertoneletters' => '#/420',
 'inmongolian' => '#/272',
-'inmongoliansup' => '#/349',
-'inmongoliansupplement' => '#/349',
-'inmro' => '#/115',
+'inmongoliansup' => '#/352',
+'inmongoliansupplement' => '#/352',
+'inmro' => '#/113',
 'inmultani' => '#/204',
-'inmusic' => '#/141',
-'inmusicalsymbols' => '#/141',
+'inmusic' => '#/140',
+'inmusicalsymbols' => '#/140',
 'inmyanmar' => '#/205',
-'inmyanmarexta' => '#/324',
-'inmyanmarextb' => '#/325',
-'inmyanmarextendeda' => '#/324',
-'inmyanmarextendedb' => '#/325',
+'inmyanmarexta' => '#/326',
+'inmyanmarextb' => '#/327',
+'inmyanmarextendeda' => '#/326',
+'inmyanmarextendedb' => '#/327',
 'innabataean' => '#/273',
-'innandinagari' => '#/326',
+'innagmundari' => '#/301',
+'innandinagari' => '#/328',
 'innb' => 'Blk/NB',
-'innewa' => '#/126',
+'innewa' => '#/125',
 'innewtailue' => '#/274',
-'innko' => '#/116',
+'innko' => '#/114',
 'innoblock' => 'Blk/NB',
-'innumberforms' => '#/327',
-'innushu' => '#/142',
-'innyiakengpuachuehmong' => '#/419',
-'inocr' => '#/117',
-'inogham' => '#/143',
+'innumberforms' => '#/329',
+'innushu' => '#/141',
+'innyiakengpuachuehmong' => '#/424',
+'inocr' => '#/115',
+'inogham' => '#/142',
 'inolchiki' => '#/206',
-'inoldhungarian' => '#/350',
+'inoldhungarian' => '#/353',
 'inolditalic' => '#/275',
-'inoldnortharabian' => '#/383',
+'inoldnortharabian' => '#/387',
 'inoldpermic' => '#/276',
-'inoldpersian' => '#/300',
-'inoldsogdian' => '#/301',
-'inoldsoutharabian' => '#/384',
+'inoldpersian' => '#/302',
+'inoldsogdian' => '#/303',
+'inoldsoutharabian' => '#/388',
 'inoldturkic' => '#/277',
 'inolduyghur' => '#/278',
-'inopticalcharacterrecognition' => '#/117',
-'inoriya' => '#/144',
-'inornamentaldingbats' => '#/409',
-'inosage' => '#/145',
+'inopticalcharacterrecognition' => '#/115',
+'inoriya' => '#/143',
+'inornamentaldingbats' => '#/414',
+'inosage' => '#/144',
 'inosmanya' => '#/207',
-'inottomansiyaqnumbers' => '#/416',
-'inpahawhhmong' => '#/328',
+'inottomansiyaqnumbers' => '#/421',
+'inpahawhhmong' => '#/330',
 'inpalmyrene' => '#/279',
 'inpaucinhau' => '#/280',
 'inpc=bottom' => 'InPC/Bottom',
@@ -4918,51 +4969,51 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'inphagspa' => '#/208',
 'inphaistos' => '#/246',
 'inphaistosdisc' => '#/246',
-'inphoenician' => '#/302',
-'inphoneticext' => '#/329',
-'inphoneticextensions' => '#/329',
-'inphoneticextensionssupplement' => '#/371',
-'inphoneticextsup' => '#/371',
-'inplayingcards' => '#/351',
-'inprivateuse' => '#/118',
-'inprivateusearea' => '#/118',
-'inpsalterpahlavi' => '#/372',
-'inpua' => '#/118',
-'inpunctuation' => '#/330',
-'inrejang' => '#/171',
-'inrumi' => '#/127',
-'inruminumeralsymbols' => '#/127',
-'inrunic' => '#/146',
+'inphoenician' => '#/304',
+'inphoneticext' => '#/331',
+'inphoneticextensions' => '#/331',
+'inphoneticextensionssupplement' => '#/375',
+'inphoneticextsup' => '#/375',
+'inplayingcards' => '#/354',
+'inprivateuse' => '#/116',
+'inprivateusearea' => '#/116',
+'inpsalterpahlavi' => '#/376',
+'inpua' => '#/116',
+'inpunctuation' => '#/332',
+'inrejang' => '#/170',
+'inrumi' => '#/126',
+'inruminumeralsymbols' => '#/126',
+'inrunic' => '#/145',
 'insamaritan' => '#/281',
-'insaurashtra' => '#/303',
+'insaurashtra' => '#/305',
 'insc=avagraha' => 'InSC/Avagraha',
 'insc=bindu' => 'InSC/Bindu',
-'insc=brahmijoiningnumber' => '#/84',
+'insc=brahmijoiningnumber' => '#/83',
 'insc=cantillationmark' => 'InSC/Cantilla',
 'insc=consonant' => 'InSC/Consonan',
 'insc=consonantdead' => 'InSC/Consona2',
 'insc=consonantfinal' => 'InSC/Consona3',
-'insc=consonantheadletter' => '#/85',
-'insc=consonantinitialpostfixed' => '#/88',
-'insc=consonantkiller' => '#/81',
+'insc=consonantheadletter' => '#/84',
+'insc=consonantinitialpostfixed' => '#/86',
+'insc=consonantkiller' => '#/80',
 'insc=consonantmedial' => 'InSC/Consona4',
 'insc=consonantplaceholder' => 'InSC/Consona7',
-'insc=consonantprecedingrepha' => '#/86',
+'insc=consonantprecedingrepha' => 'InSC/Consona9',
 'insc=consonantprefixed' => 'InSC/Consona5',
 'insc=consonantsubjoined' => 'InSC/Consona6',
-'insc=consonantsucceedingrepha' => '#/87',
+'insc=consonantsucceedingrepha' => '#/85',
 'insc=consonantwithstacker' => 'InSC/Consona8',
-'insc=geminationmark' => '#/80',
+'insc=geminationmark' => 'InSC/Geminati',
 'insc=invisiblestacker' => 'InSC/Invisibl',
 'insc=joiner' => '#/69',
-'insc=modifyingletter' => '#/82',
+'insc=modifyingletter' => '#/81',
 'insc=nonjoiner' => '#/77',
 'insc=nukta' => 'InSC/Nukta',
 'insc=number' => 'InSC/Number',
 'insc=numberjoiner' => '#/79',
 'insc=other' => 'InSC/Other',
 'insc=purekiller' => 'InSC/PureKill',
-'insc=registershifter' => '#/83',
+'insc=registershifter' => '#/82',
 'insc=syllablemodifier' => 'InSC/Syllable',
 'insc=toneletter' => '#/78',
 'insc=tonemark' => 'InSC/ToneMark',
@@ -4971,134 +5022,136 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'insc=vowel' => 'InSC/Vowel',
 'insc=voweldependent' => 'InSC/VowelDep',
 'insc=vowelindependent' => 'InSC/VowelInd',
-'inscriptionalpahlavi' => '#/703',
-'inscriptionalparthian' => '#/705',
+'inscriptionalpahlavi' => '#/710',
+'inscriptionalparthian' => '#/712',
 'insharada' => '#/209',
 'inshavian' => '#/210',
-'inshorthandformatcontrols' => '#/426',
+'inshorthandformatcontrols' => '#/431',
 'insiddham' => '#/211',
 'insinhala' => '#/212',
-'insinhalaarchaicnumbers' => '#/421',
-'insmallforms' => '#/304',
-'insmallformvariants' => '#/304',
-'insmallkanaext' => '#/352',
-'insmallkanaextension' => '#/352',
+'insinhalaarchaicnumbers' => '#/426',
+'insmallforms' => '#/306',
+'insmallformvariants' => '#/306',
+'insmallkanaext' => '#/355',
+'insmallkanaextension' => '#/355',
 'insogdian' => '#/213',
-'insorasompeng' => '#/331',
+'insorasompeng' => '#/333',
 'insoyombo' => '#/214',
-'inspacingmodifierletters' => '#/382',
+'inspacingmodifierletters' => '#/386',
 'inspecials' => '#/247',
 'insundanese' => '#/282',
-'insundanesesup' => '#/353',
-'insundanesesupplement' => '#/353',
-'insuparrowsa' => '#/305',
-'insuparrowsb' => '#/306',
-'insuparrowsc' => '#/307',
-'insuperandsub' => '#/332',
-'insuperscriptsandsubscripts' => '#/332',
-'insupmathoperators' => '#/397',
-'insupplementalarrowsa' => '#/305',
-'insupplementalarrowsb' => '#/306',
-'insupplementalarrowsc' => '#/307',
-'insupplementalmathematicaloperators' => '#/397',
-'insupplementalpunctuation' => '#/373',
-'insupplementalsymbolsandpictographs' => '#/427',
+'insundanesesup' => '#/356',
+'insundanesesupplement' => '#/356',
+'insuparrowsa' => '#/307',
+'insuparrowsb' => '#/308',
+'insuparrowsc' => '#/309',
+'insuperandsub' => '#/334',
+'insuperscriptsandsubscripts' => '#/334',
+'insupmathoperators' => '#/402',
+'insupplementalarrowsa' => '#/307',
+'insupplementalarrowsb' => '#/308',
+'insupplementalarrowsc' => '#/309',
+'insupplementalmathematicaloperators' => '#/402',
+'insupplementalpunctuation' => '#/377',
+'insupplementalsymbolsandpictographs' => '#/432',
 'insupplementaryprivateuseareaa' => '#/215',
 'insupplementaryprivateuseareab' => '#/216',
 'insuppuaa' => '#/215',
 'insuppuab' => '#/216',
-'insuppunctuation' => '#/373',
-'insupsymbolsandpictographs' => '#/427',
-'insuttonsignwriting' => '#/404',
-'insylotinagri' => '#/333',
-'insymbolsandpictographsexta' => '#/428',
-'insymbolsandpictographsextendeda' => '#/428',
-'insymbolsforlegacycomputing' => '#/429',
-'insyriac' => '#/172',
+'insuppunctuation' => '#/377',
+'insupsymbolsandpictographs' => '#/432',
+'insuttonsignwriting' => '#/409',
+'insylotinagri' => '#/335',
+'insymbolsandpictographsexta' => '#/433',
+'insymbolsandpictographsextendeda' => '#/433',
+'insymbolsforlegacycomputing' => '#/434',
+'insyriac' => '#/171',
 'insyriacsup' => '#/283',
 'insyriacsupplement' => '#/283',
 'intagalog' => '#/217',
 'intagbanwa' => '#/248',
-'intags' => '#/128',
-'intaile' => '#/147',
+'intags' => '#/127',
+'intaile' => '#/146',
 'intaitham' => '#/218',
 'intaiviet' => '#/219',
-'intaixuanjing' => '#/334',
-'intaixuanjingsymbols' => '#/334',
-'intakri' => '#/148',
-'intamil' => '#/149',
+'intaixuanjing' => '#/336',
+'intaixuanjingsymbols' => '#/336',
+'intakri' => '#/147',
+'intamil' => '#/148',
 'intamilsup' => '#/249',
 'intamilsupplement' => '#/249',
-'intangsa' => '#/173',
-'intangut' => '#/174',
-'intangutcomponents' => '#/398',
+'intangsa' => '#/172',
+'intangut' => '#/173',
+'intangutcomponents' => '#/403',
 'intangutsup' => '#/284',
 'intangutsupplement' => '#/284',
-'intelugu' => '#/175',
-'inthaana' => '#/176',
-'inthai' => '#/129',
+'intelugu' => '#/174',
+'inthaana' => '#/175',
+'inthai' => '#/128',
 'intibetan' => '#/220',
 'intifinagh' => '#/250',
 'intirhuta' => '#/221',
-'intoto' => '#/130',
-'intransportandmap' => '#/385',
-'intransportandmapsymbols' => '#/385',
-'inucas' => '#/131',
+'intoto' => '#/129',
+'intransportandmap' => '#/389',
+'intransportandmapsymbols' => '#/389',
+'inucas' => '#/130',
 'inucasext' => '#/222',
 'inucasexta' => '#/251',
 'inugaritic' => '#/252',
-'inunifiedcanadianaboriginalsyllabics' => '#/131',
+'inunifiedcanadianaboriginalsyllabics' => '#/130',
 'inunifiedcanadianaboriginalsyllabicsextended' => '#/222',
 'inunifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
-'invai' => '#/119',
-'invariationselectors' => '#/111',
-'invariationselectorssupplement' => '#/150',
+'invai' => '#/117',
+'invariationselectors' => '#/109',
+'invariationselectorssupplement' => '#/149',
 'invedicext' => '#/253',
 'invedicextensions' => '#/253',
-'inverticalforms' => '#/362',
+'inverticalforms' => '#/365',
 'invithkuqi' => '#/254',
-'invs' => '#/111',
-'invssup' => '#/150',
-'inwancho' => '#/177',
-'inwarangciti' => '#/308',
-'inyezidi' => '#/178',
-'inyijing' => '#/179',
-'inyijinghexagramsymbols' => '#/179',
-'inyiradicals' => '#/309',
-'inyisyllables' => '#/335',
-'inzanabazarsquare' => '#/386',
-'inznamennymusic' => '#/363',
-'inznamennymusicalnotation' => '#/363',
-'ipaext' => '#/162',
-'ipaextensions' => '#/162',
+'invs' => '#/109',
+'invssup' => '#/149',
+'inwancho' => '#/176',
+'inwarangciti' => '#/310',
+'inyezidi' => '#/177',
+'inyijing' => '#/178',
+'inyijinghexagramsymbols' => '#/178',
+'inyiradicals' => '#/311',
+'inyisyllables' => '#/337',
+'inzanabazarsquare' => '#/390',
+'inznamennymusic' => '#/366',
+'inznamennymusicalnotation' => '#/366',
+'ipaext' => '#/161',
+'ipaextensions' => '#/161',
 'isadlam' => 'Scx/Adlm',
 'isadlm' => 'Scx/Adlm',
-'isaegeannumbers' => '#/354',
-'isaghb' => '#/649',
+'isaegeannumbers' => '#/357',
+'isaghb' => '#/654',
 'isahex' => '#/60',
-'isahom' => '#/650',
+'isahom' => '#/655',
 'isalchemical' => '#/285',
 'isalchemicalsymbols' => '#/285',
 'isall' => '#/1',
 'isalnum' => 'Perl/Alnum',
 'isalpha' => 'Alpha/Y',
 'isalphabetic' => 'Alpha/Y',
-'isalphabeticpf' => '#/336',
-'isalphabeticpresentationforms' => '#/336',
-'isanatolianhieroglyphs' => '#/672',
-'isancientgreekmusic' => '#/399',
-'isancientgreekmusicalnotation' => '#/399',
-'isancientgreeknumbers' => '#/410',
-'isancientsymbols' => '#/364',
+'isalphabeticpf' => '#/338',
+'isalphabeticpresentationforms' => '#/338',
+'isanatolianhieroglyphs' => '#/677',
+'isancientgreekmusic' => '#/404',
+'isancientgreekmusicalnotation' => '#/404',
+'isancientgreeknumbers' => '#/415',
+'isancientsymbols' => '#/367',
 'isany' => '#/2',
 'isarab' => 'Scx/Arab',
 'isarabic' => 'Scx/Arab',
 'isarabicexta' => '#/286',
 'isarabicextb' => '#/287',
+'isarabicextc' => '#/288',
 'isarabicextendeda' => '#/286',
 'isarabicextendedb' => '#/287',
-'isarabicmath' => '#/288',
-'isarabicmathematicalalphabeticsymbols' => '#/288',
+'isarabicextendedc' => '#/288',
+'isarabicmath' => '#/289',
+'isarabicmathematicalalphabeticsymbols' => '#/289',
 'isarabicpfa' => '#/255',
 'isarabicpfb' => '#/256',
 'isarabicpresentationformsa' => '#/255',
@@ -5106,25 +5159,25 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isarabicsup' => '#/257',
 'isarabicsupplement' => '#/257',
 'isarmenian' => 'Scx/Armn',
-'isarmi' => '#/651',
+'isarmi' => '#/656',
 'isarmn' => 'Scx/Armn',
-'isarrows' => '#/152',
-'isascii' => '#/132',
+'isarrows' => '#/151',
+'isascii' => '#/131',
 'isasciihexdigit' => '#/60',
 'isassigned' => 'Perl/Assigned',
-'isavestan' => '#/652',
-'isavst' => '#/652',
-'isbali' => '#/653',
-'isbalinese' => '#/653',
-'isbamu' => '#/654',
-'isbamum' => '#/654',
+'isavestan' => '#/657',
+'isavst' => '#/657',
+'isbali' => '#/658',
+'isbalinese' => '#/658',
+'isbamu' => '#/659',
+'isbamum' => '#/659',
 'isbamumsup' => '#/225',
 'isbamumsupplement' => '#/225',
-'isbasiclatin' => '#/132',
-'isbass' => '#/655',
-'isbassavah' => '#/655',
-'isbatak' => '#/656',
-'isbatk' => '#/656',
+'isbasiclatin' => '#/131',
+'isbass' => '#/660',
+'isbassavah' => '#/660',
+'isbatak' => '#/661',
+'isbatk' => '#/661',
 'isbeng' => 'Scx/Beng',
 'isbengali' => 'Scx/Beng',
 'isbhaiksuki' => 'Scx/Bhks',
@@ -5134,35 +5187,35 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isbidim' => 'BidiM/Y',
 'isbidimirrored' => 'BidiM/Y',
 'isblank' => 'Perl/Blank',
-'isblockelements' => '#/355',
+'isblockelements' => '#/358',
 'isbopo' => 'Scx/Bopo',
 'isbopomofo' => 'Scx/Bopo',
-'isbopomofoext' => '#/310',
-'isbopomofoextended' => '#/310',
-'isboxdrawing' => '#/289',
-'isbrah' => '#/657',
-'isbrahmi' => '#/657',
-'isbrai' => '#/182',
-'isbraille' => '#/182',
-'isbraillepatterns' => '#/182',
-'isbugi' => '#/658',
-'isbuginese' => '#/658',
-'isbuhd' => '#/659',
-'isbuhid' => '#/659',
-'isbyzantinemusic' => '#/365',
-'isbyzantinemusicalsymbols' => '#/365',
+'isbopomofoext' => '#/312',
+'isbopomofoextended' => '#/312',
+'isboxdrawing' => '#/290',
+'isbrah' => '#/662',
+'isbrahmi' => '#/662',
+'isbrai' => '#/181',
+'isbraille' => '#/181',
+'isbraillepatterns' => '#/181',
+'isbugi' => '#/663',
+'isbuginese' => '#/663',
+'isbuhd' => '#/664',
+'isbuhid' => '#/664',
+'isbyzantinemusic' => '#/368',
+'isbyzantinemusicalsymbols' => '#/368',
 'isc' => 'Gc/C',
 'iscakm' => 'Scx/Cakm',
-'iscanadianaboriginal' => '#/660',
-'iscanadiansyllabics' => '#/131',
-'iscans' => '#/660',
-'iscari' => '#/661',
-'iscarian' => '#/661',
+'iscanadianaboriginal' => '#/665',
+'iscanadiansyllabics' => '#/130',
+'iscans' => '#/665',
+'iscari' => '#/666',
+'iscarian' => '#/666',
 'iscased' => 'Cased/Y',
 'iscasedletter' => 'Gc/LC',
 'iscaseignorable' => 'CI/Y',
-'iscaucasianalbanian' => '#/649',
-'iscc' => '#/434',
+'iscaucasianalbanian' => '#/654',
+'iscc' => '#/439',
 'isce' => 'CE/Y',
 'iscf' => 'Gc/Cf',
 'ischakma' => 'Scx/Cakm',
@@ -5173,75 +5226,77 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ischangeswhennfkccasefolded' => 'CWKCF/Y',
 'ischangeswhentitlecased' => 'CWT/Y',
 'ischangeswhenuppercased' => 'CWU/Y',
-'ischer' => '#/662',
-'ischerokee' => '#/662',
-'ischerokeesup' => '#/311',
-'ischerokeesupplement' => '#/311',
-'ischesssymbols' => '#/337',
-'ischorasmian' => '#/663',
-'ischrs' => '#/663',
+'ischer' => '#/667',
+'ischerokee' => '#/667',
+'ischerokeesup' => '#/313',
+'ischerokeesupplement' => '#/313',
+'ischesssymbols' => '#/339',
+'ischorasmian' => '#/668',
+'ischrs' => '#/668',
 'isci' => 'CI/Y',
-'iscjk' => '#/112',
+'iscjk' => '#/110',
 'iscjkcompat' => '#/259',
-'iscjkcompatforms' => '#/366',
+'iscjkcompatforms' => '#/369',
 'iscjkcompatibility' => '#/259',
-'iscjkcompatibilityforms' => '#/366',
-'iscjkcompatibilityideographs' => '#/411',
-'iscjkcompatibilityideographssupplement' => '#/422',
-'iscjkcompatideographs' => '#/411',
-'iscjkcompatideographssup' => '#/422',
-'iscjkexta' => '#/183',
-'iscjkextb' => '#/184',
-'iscjkextc' => '#/185',
-'iscjkextd' => '#/186',
-'iscjkexte' => '#/187',
-'iscjkextf' => '#/188',
-'iscjkextg' => '#/189',
-'iscjkradicalssup' => '#/367',
-'iscjkradicalssupplement' => '#/367',
-'iscjkstrokes' => '#/290',
-'iscjksymbols' => '#/291',
-'iscjksymbolsandpunctuation' => '#/291',
-'iscjkunifiedideographs' => '#/112',
-'iscjkunifiedideographsextensiona' => '#/183',
-'iscjkunifiedideographsextensionb' => '#/184',
-'iscjkunifiedideographsextensionc' => '#/185',
-'iscjkunifiedideographsextensiond' => '#/186',
-'iscjkunifiedideographsextensione' => '#/187',
-'iscjkunifiedideographsextensionf' => '#/188',
-'iscjkunifiedideographsextensiong' => '#/189',
+'iscjkcompatibilityforms' => '#/369',
+'iscjkcompatibilityideographs' => '#/416',
+'iscjkcompatibilityideographssupplement' => '#/427',
+'iscjkcompatideographs' => '#/416',
+'iscjkcompatideographssup' => '#/427',
+'iscjkexta' => '#/182',
+'iscjkextb' => '#/183',
+'iscjkextc' => '#/184',
+'iscjkextd' => '#/185',
+'iscjkexte' => '#/186',
+'iscjkextf' => '#/187',
+'iscjkextg' => '#/188',
+'iscjkexth' => '#/189',
+'iscjkradicalssup' => '#/370',
+'iscjkradicalssupplement' => '#/370',
+'iscjkstrokes' => '#/291',
+'iscjksymbols' => '#/292',
+'iscjksymbolsandpunctuation' => '#/292',
+'iscjkunifiedideographs' => '#/110',
+'iscjkunifiedideographsextensiona' => '#/182',
+'iscjkunifiedideographsextensionb' => '#/183',
+'iscjkunifiedideographsextensionc' => '#/184',
+'iscjkunifiedideographsextensiond' => '#/185',
+'iscjkunifiedideographsextensione' => '#/186',
+'iscjkunifiedideographsextensionf' => '#/187',
+'iscjkunifiedideographsextensiong' => '#/188',
+'iscjkunifiedideographsextensionh' => '#/189',
 'isclosepunctuation' => 'Gc/Pe',
 'iscn' => 'Gc/Cn',
-'iscntrl' => '#/434',
-'isco' => '#/435',
-'iscombiningdiacriticalmarks' => '#/341',
-'iscombiningdiacriticalmarksextended' => '#/376',
-'iscombiningdiacriticalmarksforsymbols' => '#/423',
-'iscombiningdiacriticalmarkssupplement' => '#/377',
+'iscntrl' => '#/439',
+'isco' => '#/440',
+'iscombiningdiacriticalmarks' => '#/344',
+'iscombiningdiacriticalmarksextended' => '#/380',
+'iscombiningdiacriticalmarksforsymbols' => '#/428',
+'iscombiningdiacriticalmarkssupplement' => '#/381',
 'iscombininghalfmarks' => '#/262',
 'iscombiningmark' => 'Gc/M',
-'iscombiningmarksforsymbols' => '#/423',
+'iscombiningmarksforsymbols' => '#/428',
 'iscommon' => 'Scx/Zyyy',
-'iscommonindicnumberforms' => '#/392',
-'iscompatjamo' => '#/293',
+'iscommonindicnumberforms' => '#/396',
+'iscompatjamo' => '#/294',
 'iscompex' => 'CompEx/Y',
 'iscompositionexclusion' => 'CE/Y',
 'isconnectorpunctuation' => 'Gc/Pc',
-'iscontrol' => '#/434',
-'iscontrolpictures' => '#/374',
+'iscontrol' => '#/439',
+'iscontrolpictures' => '#/378',
 'iscopt' => 'Scx/Copt',
 'iscoptic' => 'Scx/Copt',
-'iscopticepactnumbers' => '#/405',
-'iscountingrod' => '#/312',
-'iscountingrodnumerals' => '#/312',
-'iscpmn' => '#/664',
+'iscopticepactnumbers' => '#/410',
+'iscountingrod' => '#/314',
+'iscountingrodnumerals' => '#/314',
+'iscpmn' => '#/669',
 'iscprt' => 'Scx/Cprt',
 'iscs' => '#/14',
 'iscuneiform' => 'Scx/Xsux',
-'iscuneiformnumbers' => '#/387',
-'iscuneiformnumbersandpunctuation' => '#/387',
+'iscuneiformnumbers' => '#/391',
+'iscuneiformnumbersandpunctuation' => '#/391',
 'iscurrencysymbol' => 'Gc/Sc',
-'iscurrencysymbols' => '#/375',
+'iscurrencysymbols' => '#/379',
 'iscwcf' => 'CWCF/Y',
 'iscwcm' => 'CWCM/Y',
 'iscwkcf' => 'CWKCF/Y',
@@ -5249,18 +5304,20 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'iscwt' => 'CWT/Y',
 'iscwu' => 'CWU/Y',
 'iscypriot' => 'Scx/Cprt',
-'iscypriotsyllabary' => '#/388',
-'iscyprominoan' => '#/664',
+'iscypriotsyllabary' => '#/392',
+'iscyprominoan' => '#/669',
 'iscyrillic' => 'Scx/Cyrl',
-'iscyrillicexta' => '#/338',
-'iscyrillicextb' => '#/339',
-'iscyrillicextc' => '#/340',
-'iscyrillicextendeda' => '#/338',
-'iscyrillicextendedb' => '#/339',
-'iscyrillicextendedc' => '#/340',
-'iscyrillicsup' => '#/314',
-'iscyrillicsupplement' => '#/314',
-'iscyrillicsupplementary' => '#/314',
+'iscyrillicexta' => '#/340',
+'iscyrillicextb' => '#/341',
+'iscyrillicextc' => '#/342',
+'iscyrillicextd' => '#/343',
+'iscyrillicextendeda' => '#/340',
+'iscyrillicextendedb' => '#/341',
+'iscyrillicextendedc' => '#/342',
+'iscyrillicextendedd' => '#/343',
+'iscyrillicsup' => '#/316',
+'iscyrillicsupplement' => '#/316',
+'iscyrillicsupplementary' => '#/316',
 'iscyrl' => 'Scx/Cyrl',
 'isdash' => 'Dash/Y',
 'isdashpunctuation' => 'Gc/Pd',
@@ -5271,36 +5328,38 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isdeseret' => '#/190',
 'isdeva' => 'Scx/Deva',
 'isdevanagari' => 'Scx/Deva',
-'isdevanagariext' => '#/356',
-'isdevanagariextended' => '#/356',
+'isdevanagariext' => '#/359',
+'isdevanagariexta' => '#/371',
+'isdevanagariextended' => '#/359',
+'isdevanagariextendeda' => '#/371',
 'isdi' => 'DI/Y',
 'isdia' => 'Dia/Y',
 'isdiacritic' => 'Dia/Y',
-'isdiacriticals' => '#/341',
-'isdiacriticalsext' => '#/376',
-'isdiacriticalsforsymbols' => '#/423',
-'isdiacriticalssup' => '#/377',
+'isdiacriticals' => '#/344',
+'isdiacriticalsext' => '#/380',
+'isdiacriticalsforsymbols' => '#/428',
+'isdiacriticalssup' => '#/381',
 'isdiak' => 'Scx/Diak',
 'isdigit' => 'Gc/Nd',
 'isdingbats' => '#/231',
 'isdivesakuru' => 'Scx/Diak',
-'isdogr' => '#/665',
-'isdogra' => '#/665',
-'isdomino' => '#/157',
-'isdominotiles' => '#/157',
+'isdogr' => '#/670',
+'isdogra' => '#/670',
+'isdomino' => '#/156',
+'isdominotiles' => '#/156',
 'isdsrt' => '#/190',
 'isdupl' => 'Scx/Dupl',
 'isduployan' => 'Scx/Dupl',
-'isearlydynasticcuneiform' => '#/424',
+'isearlydynasticcuneiform' => '#/429',
 'isebase' => 'EBase/Y',
 'isecomp' => 'EComp/Y',
-'isegyp' => '#/666',
-'isegyptianhieroglyphformatcontrols' => '#/430',
-'isegyptianhieroglyphs' => '#/666',
-'iselba' => '#/667',
-'iselbasan' => '#/667',
-'iselym' => '#/668',
-'iselymaic' => '#/668',
+'isegyp' => '#/671',
+'isegyptianhieroglyphformatcontrols' => '#/435',
+'isegyptianhieroglyphs' => '#/671',
+'iselba' => '#/672',
+'iselbasan' => '#/672',
+'iselym' => '#/673',
+'iselymaic' => '#/673',
 'isemod' => '#/61',
 'isemoji' => 'Emoji/Y',
 'isemojicomponent' => 'EComp/Y',
@@ -5308,26 +5367,26 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isemojimodifierbase' => 'EBase/Y',
 'isemojipresentation' => 'EPres/Y',
 'isemoticons' => '#/261',
-'isenclosedalphanum' => '#/389',
-'isenclosedalphanumerics' => '#/389',
-'isenclosedalphanumericsupplement' => '#/413',
-'isenclosedalphanumsup' => '#/413',
-'isenclosedcjk' => '#/315',
-'isenclosedcjklettersandmonths' => '#/315',
-'isenclosedideographicsup' => '#/425',
-'isenclosedideographicsupplement' => '#/425',
+'isenclosedalphanum' => '#/393',
+'isenclosedalphanumerics' => '#/393',
+'isenclosedalphanumericsupplement' => '#/418',
+'isenclosedalphanumsup' => '#/418',
+'isenclosedcjk' => '#/317',
+'isenclosedcjklettersandmonths' => '#/317',
+'isenclosedideographicsup' => '#/430',
+'isenclosedideographicsupplement' => '#/430',
 'isenclosingmark' => 'Gc/Me',
 'isepres' => 'EPres/Y',
 'isethi' => 'Scx/Ethi',
 'isethiopic' => 'Scx/Ethi',
-'isethiopicext' => '#/316',
-'isethiopicexta' => '#/342',
-'isethiopicextb' => '#/343',
-'isethiopicextended' => '#/316',
-'isethiopicextendeda' => '#/342',
-'isethiopicextendedb' => '#/343',
-'isethiopicsup' => '#/317',
-'isethiopicsupplement' => '#/317',
+'isethiopicext' => '#/318',
+'isethiopicexta' => '#/345',
+'isethiopicextb' => '#/346',
+'isethiopicextended' => '#/318',
+'isethiopicextendeda' => '#/345',
+'isethiopicextendedb' => '#/346',
+'isethiopicsup' => '#/319',
+'isethiopicsupplement' => '#/319',
 'isext' => 'Ext/Y',
 'isextendedpictographic' => 'ExtPict/Y',
 'isextender' => 'Ext/Y',
@@ -5335,24 +5394,24 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isfinalpunctuation' => 'Gc/Pf',
 'isformat' => 'Gc/Cf',
 'isfullcompositionexclusion' => 'CompEx/Y',
-'isgeneralpunctuation' => '#/330',
-'isgeometricshapes' => '#/378',
-'isgeometricshapesext' => '#/406',
-'isgeometricshapesextended' => '#/406',
+'isgeneralpunctuation' => '#/332',
+'isgeometricshapes' => '#/382',
+'isgeometricshapesext' => '#/411',
+'isgeometricshapesextended' => '#/411',
 'isgeor' => 'Scx/Geor',
 'isgeorgian' => 'Scx/Geor',
-'isgeorgianext' => '#/318',
-'isgeorgianextended' => '#/318',
-'isgeorgiansup' => '#/319',
-'isgeorgiansupplement' => '#/319',
+'isgeorgianext' => '#/320',
+'isgeorgianextended' => '#/320',
+'isgeorgiansup' => '#/321',
+'isgeorgiansupplement' => '#/321',
 'isglag' => 'Scx/Glag',
 'isglagolitic' => 'Scx/Glag',
-'isglagoliticsup' => '#/357',
-'isglagoliticsupplement' => '#/357',
+'isglagoliticsup' => '#/360',
+'isglagoliticsupplement' => '#/360',
 'isgong' => 'Scx/Gong',
 'isgonm' => 'Scx/Gonm',
-'isgoth' => '#/669',
-'isgothic' => '#/669',
+'isgoth' => '#/674',
+'isgothic' => '#/674',
 'isgran' => 'Scx/Gran',
 'isgrantha' => 'Scx/Gran',
 'isgraph' => 'Perl/Graph',
@@ -5360,7 +5419,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isgraphemeextend' => 'GrExt/Y',
 'isgrbase' => 'GrBase/Y',
 'isgreek' => 'Scx/Grek',
-'isgreekandcoptic' => '#/138',
+'isgreekandcoptic' => '#/137',
 'isgreekext' => '#/235',
 'isgreekextended' => '#/235',
 'isgrek' => 'Scx/Grek',
@@ -5370,69 +5429,70 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isgunjalagondi' => 'Scx/Gong',
 'isgurmukhi' => 'Scx/Guru',
 'isguru' => 'Scx/Guru',
-'ishalfandfullforms' => '#/390',
+'ishalfandfullforms' => '#/394',
 'ishalfmarks' => '#/262',
-'ishalfwidthandfullwidthforms' => '#/390',
+'ishalfwidthandfullwidthforms' => '#/394',
 'ishan' => 'Scx/Han',
 'ishang' => 'Scx/Hang',
 'ishangul' => 'Scx/Hang',
-'ishangulcompatibilityjamo' => '#/293',
-'ishanguljamo' => '#/122',
+'ishangulcompatibilityjamo' => '#/294',
+'ishanguljamo' => '#/120',
 'ishanguljamoextendeda' => '#/239',
 'ishanguljamoextendedb' => '#/240',
-'ishangulsyllables' => '#/159',
+'ishangulsyllables' => '#/158',
 'ishani' => 'Scx/Han',
 'ishanifirohingya' => 'Scx/Rohg',
-'ishano' => '#/670',
-'ishanunoo' => '#/670',
-'ishatr' => '#/671',
-'ishatran' => '#/671',
+'ishano' => '#/675',
+'ishanunoo' => '#/675',
+'ishatr' => '#/676',
+'ishatran' => '#/676',
 'ishebr' => 'Scx/Hebr',
 'ishebrew' => 'Scx/Hebr',
 'ishex' => 'Hex/Y',
 'ishexdigit' => 'Hex/Y',
-'ishighprivateusesurrogates' => '#/391',
-'ishighpusurrogates' => '#/391',
-'ishighsurrogates' => '#/369',
+'ishighprivateusesurrogates' => '#/395',
+'ishighpusurrogates' => '#/395',
+'ishighsurrogates' => '#/373',
 'ishira' => 'Scx/Hira',
 'ishiragana' => 'Scx/Hira',
-'ishluw' => '#/672',
+'ishluw' => '#/677',
 'ishmng' => 'Scx/Hmng',
 'ishmnp' => 'Scx/Hmnp',
 'ishorizspace' => 'Perl/Blank',
-'ishung' => '#/673',
+'ishung' => '#/678',
 'ishyphen' => 'Hyphen/T',
 'isidc' => 'IDC/Y',
 'isidcontinue' => 'IDC/Y',
 'isideo' => 'Ideo/Y',
 'isideographic' => 'Ideo/Y',
-'isideographicdescriptioncharacters' => '#/113',
-'isideographicsymbols' => '#/407',
-'isideographicsymbolsandpunctuation' => '#/407',
+'isideographicdescriptioncharacters' => '#/111',
+'isideographicsymbols' => '#/412',
+'isideographicsymbolsandpunctuation' => '#/412',
 'isids' => 'IDS/Y',
 'isidsb' => '#/70',
 'isidsbinaryoperator' => '#/70',
 'isidst' => '#/72',
 'isidstart' => 'IDS/Y',
 'isidstrinaryoperator' => '#/72',
-'isimperialaramaic' => '#/651',
-'isindicnumberforms' => '#/392',
-'isindicsiyaqnumbers' => '#/401',
+'isimperialaramaic' => '#/656',
+'isindicnumberforms' => '#/396',
+'isindicsiyaqnumbers' => '#/406',
 'isinherited' => 'Scx/Zinh',
 'isinitialpunctuation' => 'Gc/Pi',
-'isinscriptionalpahlavi' => '#/703',
-'isinscriptionalparthian' => '#/705',
-'isipaext' => '#/162',
-'isipaextensions' => '#/162',
-'isital' => '#/674',
-'isjamo' => '#/122',
+'isinscriptionalpahlavi' => '#/710',
+'isinscriptionalparthian' => '#/712',
+'isipaext' => '#/161',
+'isipaextensions' => '#/161',
+'isital' => '#/679',
+'isjamo' => '#/120',
 'isjamoexta' => '#/239',
 'isjamoextb' => '#/240',
-'isjava' => '#/675',
-'isjavanese' => '#/675',
-'isjoinc' => '#/89',
-'isjoincontrol' => '#/89',
+'isjava' => '#/680',
+'isjavanese' => '#/680',
+'isjoinc' => '#/87',
+'isjoincontrol' => '#/87',
 'iskaithi' => 'Scx/Kthi',
+'iskaktoviknumerals' => '#/397',
 'iskali' => '#/197',
 'iskana' => 'Scx/Kana',
 'iskanaexta' => '#/242',
@@ -5441,24 +5501,25 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'iskanaextendedb' => '#/243',
 'iskanasup' => '#/195',
 'iskanasupplement' => '#/195',
-'iskanbun' => '#/164',
-'iskangxi' => '#/165',
-'iskangxiradicals' => '#/165',
+'iskanbun' => '#/163',
+'iskangxi' => '#/164',
+'iskangxiradicals' => '#/164',
 'iskannada' => 'Scx/Knda',
 'iskatakana' => 'Scx/Kana',
-'iskatakanaext' => '#/320',
-'iskatakanaphoneticextensions' => '#/320',
+'iskatakanaext' => '#/322',
+'iskatakanaphoneticextensions' => '#/322',
+'iskawi' => '#/681',
 'iskayahli' => '#/197',
 'iskhar' => 'Scx/Khar',
 'iskharoshthi' => 'Scx/Khar',
-'iskhitansmallscript' => '#/676',
+'iskhitansmallscript' => '#/682',
 'iskhmer' => 'Scx/Khmr',
-'iskhmersymbols' => '#/345',
+'iskhmersymbols' => '#/348',
 'iskhmr' => 'Scx/Khmr',
 'iskhoj' => 'Scx/Khoj',
 'iskhojki' => 'Scx/Khoj',
 'iskhudawadi' => 'Scx/Sind',
-'iskits' => '#/676',
+'iskits' => '#/682',
 'isknda' => 'Scx/Knda',
 'iskthi' => 'Scx/Kthi',
 'isl' => 'Gc/L',
@@ -5468,17 +5529,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'islao' => 'Scx/Lao',
 'islaoo' => 'Scx/Lao',
 'islatin' => 'Scx/Latn',
-'islatin1' => '#/167',
-'islatin1sup' => '#/167',
-'islatin1supplement' => '#/167',
+'islatin1' => '#/166',
+'islatin1sup' => '#/166',
+'islatin1supplement' => '#/166',
 'islatinexta' => '#/264',
-'islatinextadditional' => '#/408',
+'islatinextadditional' => '#/413',
 'islatinextb' => '#/265',
 'islatinextc' => '#/266',
 'islatinextd' => '#/267',
 'islatinexte' => '#/268',
 'islatinextendeda' => '#/264',
-'islatinextendedadditional' => '#/408',
+'islatinextendedadditional' => '#/413',
 'islatinextendedb' => '#/265',
 'islatinextendedc' => '#/266',
 'islatinextendedd' => '#/267',
@@ -5489,10 +5550,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'islatinextg' => '#/270',
 'islatn' => 'Scx/Latn',
 'islc' => 'Gc/LC',
-'islepc' => '#/677',
-'islepcha' => '#/677',
+'islepc' => '#/683',
+'islepcha' => '#/683',
 'isletter' => 'Gc/L',
-'isletterlikesymbols' => '#/403',
+'isletterlikesymbols' => '#/408',
 'isletternumber' => 'Gc/Nl',
 'islimb' => 'Scx/Limb',
 'islimbu' => 'Scx/Limb',
@@ -5500,10 +5561,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'islinb' => 'Scx/Linb',
 'islineara' => 'Scx/Lina',
 'islinearb' => 'Scx/Linb',
-'islinearbideograms' => '#/393',
-'islinearbsyllabary' => '#/394',
-'islineseparator' => '#/436',
-'islisu' => '#/678',
+'islinearbideograms' => '#/398',
+'islinearbsyllabary' => '#/399',
+'islineseparator' => '#/441',
+'islisu' => '#/684',
 'islisusup' => '#/199',
 'islisusupplement' => '#/199',
 'isll' => 'Gc/Ll',
@@ -5514,96 +5575,98 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'islower' => 'Lower/Y',
 'islowercase' => 'Lower/Y',
 'islowercaseletter' => 'Gc/Ll',
-'islowsurrogates' => '#/358',
+'islowsurrogates' => '#/361',
 'islt' => 'Perl/Title',
 'islu' => 'Gc/Lu',
-'islyci' => '#/679',
-'islycian' => '#/679',
-'islydi' => '#/680',
-'islydian' => '#/680',
+'islyci' => '#/685',
+'islycian' => '#/685',
+'islydi' => '#/686',
+'islydian' => '#/686',
 'ism' => 'Gc/M',
-'ismahajani' => '#/681',
-'ismahj' => '#/681',
+'ismahajani' => '#/687',
+'ismahj' => '#/687',
 'ismahjong' => '#/200',
 'ismahjongtiles' => '#/200',
-'ismaka' => '#/682',
-'ismakasar' => '#/682',
+'ismaka' => '#/688',
+'ismakasar' => '#/688',
 'ismalayalam' => 'Scx/Mlym',
-'ismand' => '#/683',
-'ismandaic' => '#/683',
-'ismani' => '#/684',
-'ismanichaean' => '#/684',
-'ismarc' => '#/685',
-'ismarchen' => '#/685',
+'ismand' => '#/689',
+'ismandaic' => '#/689',
+'ismani' => '#/690',
+'ismanichaean' => '#/690',
+'ismarc' => '#/691',
+'ismarchen' => '#/691',
 'ismark' => 'Gc/M',
 'ismasaramgondi' => 'Scx/Gonm',
 'ismath' => 'Math/Y',
-'ismathalphanum' => '#/347',
-'ismathematicalalphanumericsymbols' => '#/347',
-'ismathematicaloperators' => '#/359',
-'ismathoperators' => '#/359',
+'ismathalphanum' => '#/350',
+'ismathematicalalphanumericsymbols' => '#/350',
+'ismathematicaloperators' => '#/362',
+'ismathoperators' => '#/362',
 'ismathsymbol' => 'Gc/Sm',
-'ismayannumerals' => '#/360',
+'ismayannumerals' => '#/363',
 'ismc' => 'Gc/Mc',
 'isme' => 'Gc/Me',
-'ismedefaidrin' => '#/686',
-'ismedf' => '#/686',
-'ismeeteimayek' => '#/691',
-'ismeeteimayekext' => '#/370',
-'ismeeteimayekextensions' => '#/370',
-'ismend' => '#/687',
-'ismendekikakui' => '#/687',
-'ismerc' => '#/688',
-'ismero' => '#/414',
-'ismeroiticcursive' => '#/688',
-'ismeroitichieroglyphs' => '#/414',
-'ismiao' => '#/689',
-'ismiscarrows' => '#/299',
-'ismiscellaneousmathematicalsymbolsa' => '#/395',
-'ismiscellaneousmathematicalsymbolsb' => '#/396',
-'ismiscellaneoussymbols' => '#/323',
-'ismiscellaneoussymbolsandarrows' => '#/299',
-'ismiscellaneoussymbolsandpictographs' => '#/381',
-'ismiscellaneoustechnical' => '#/361',
-'ismiscmathsymbolsa' => '#/395',
-'ismiscmathsymbolsb' => '#/396',
-'ismiscpictographs' => '#/381',
-'ismiscsymbols' => '#/323',
-'ismisctechnical' => '#/361',
+'ismedefaidrin' => '#/692',
+'ismedf' => '#/692',
+'ismeeteimayek' => '#/697',
+'ismeeteimayekext' => '#/374',
+'ismeeteimayekextensions' => '#/374',
+'ismend' => '#/693',
+'ismendekikakui' => '#/693',
+'ismerc' => '#/694',
+'ismero' => '#/419',
+'ismeroiticcursive' => '#/694',
+'ismeroitichieroglyphs' => '#/419',
+'ismiao' => '#/695',
+'ismiscarrows' => '#/300',
+'ismiscellaneousmathematicalsymbolsa' => '#/400',
+'ismiscellaneousmathematicalsymbolsb' => '#/401',
+'ismiscellaneoussymbols' => '#/325',
+'ismiscellaneoussymbolsandarrows' => '#/300',
+'ismiscellaneoussymbolsandpictographs' => '#/385',
+'ismiscellaneoustechnical' => '#/364',
+'ismiscmathsymbolsa' => '#/400',
+'ismiscmathsymbolsb' => '#/401',
+'ismiscpictographs' => '#/385',
+'ismiscsymbols' => '#/325',
+'ismisctechnical' => '#/364',
 'ismlym' => 'Scx/Mlym',
 'ismn' => 'Gc/Mn',
-'ismodi' => '#/690',
+'ismodi' => '#/696',
 'ismodifierletter' => 'Gc/Lm',
-'ismodifierletters' => '#/382',
+'ismodifierletters' => '#/386',
 'ismodifiersymbol' => 'Gc/Sk',
-'ismodifiertoneletters' => '#/415',
+'ismodifiertoneletters' => '#/420',
 'ismong' => 'Scx/Mong',
 'ismongolian' => 'Scx/Mong',
-'ismongoliansup' => '#/349',
-'ismongoliansupplement' => '#/349',
-'ismro' => '#/647',
-'ismroo' => '#/647',
-'ismtei' => '#/691',
+'ismongoliansup' => '#/352',
+'ismongoliansupplement' => '#/352',
+'ismro' => '#/652',
+'ismroo' => '#/652',
+'ismtei' => '#/697',
 'ismult' => 'Scx/Mult',
 'ismultani' => 'Scx/Mult',
-'ismusic' => '#/141',
-'ismusicalsymbols' => '#/141',
+'ismusic' => '#/140',
+'ismusicalsymbols' => '#/140',
 'ismyanmar' => 'Scx/Mymr',
-'ismyanmarexta' => '#/324',
-'ismyanmarextb' => '#/325',
-'ismyanmarextendeda' => '#/324',
-'ismyanmarextendedb' => '#/325',
+'ismyanmarexta' => '#/326',
+'ismyanmarextb' => '#/327',
+'ismyanmarextendeda' => '#/326',
+'ismyanmarextendedb' => '#/327',
 'ismymr' => 'Scx/Mymr',
 'isn' => 'Gc/N',
-'isnabataean' => '#/692',
+'isnabataean' => '#/699',
+'isnagm' => '#/698',
+'isnagmundari' => '#/698',
 'isnand' => 'Scx/Nand',
 'isnandinagari' => 'Scx/Nand',
-'isnarb' => '#/383',
+'isnarb' => '#/387',
 'isnb' => 'Blk/NB',
-'isnbat' => '#/692',
+'isnbat' => '#/699',
 'isnchar' => 'Perl/_PerlNch',
 'isnd' => 'Gc/Nd',
-'isnewa' => '#/693',
+'isnewa' => '#/700',
 'isnewtailue' => 'Scx/Talu',
 'isnko' => 'Scx/Nko',
 'isnkoo' => 'Scx/Nko',
@@ -5612,76 +5675,76 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isnoblock' => 'Blk/NB',
 'isnoncharactercodepoint' => 'Perl/_PerlNch',
 'isnonspacingmark' => 'Gc/Mn',
-'isnshu' => '#/694',
+'isnshu' => '#/701',
 'isnumber' => 'Gc/N',
-'isnumberforms' => '#/327',
-'isnushu' => '#/694',
+'isnumberforms' => '#/329',
+'isnushu' => '#/701',
 'isnyiakengpuachuehmong' => 'Scx/Hmnp',
-'isocr' => '#/117',
-'isogam' => '#/695',
-'isogham' => '#/695',
+'isocr' => '#/115',
+'isogam' => '#/702',
+'isogham' => '#/702',
 'isolchiki' => '#/206',
 'isolck' => '#/206',
-'isoldhungarian' => '#/673',
-'isolditalic' => '#/674',
-'isoldnortharabian' => '#/383',
-'isoldpermic' => '#/701',
-'isoldpersian' => '#/728',
-'isoldsogdian' => '#/713',
-'isoldsoutharabian' => '#/384',
-'isoldturkic' => '#/696',
-'isolduyghur' => '#/699',
+'isoldhungarian' => '#/678',
+'isolditalic' => '#/679',
+'isoldnortharabian' => '#/387',
+'isoldpermic' => '#/708',
+'isoldpersian' => '#/735',
+'isoldsogdian' => '#/720',
+'isoldsoutharabian' => '#/388',
+'isoldturkic' => '#/703',
+'isolduyghur' => '#/706',
 'isopenpunctuation' => 'Gc/Ps',
-'isopticalcharacterrecognition' => '#/117',
+'isopticalcharacterrecognition' => '#/115',
 'isoriya' => 'Scx/Orya',
-'isorkh' => '#/696',
-'isornamentaldingbats' => '#/409',
+'isorkh' => '#/703',
+'isornamentaldingbats' => '#/414',
 'isorya' => 'Scx/Orya',
-'isosage' => '#/697',
-'isosge' => '#/697',
-'isosma' => '#/698',
-'isosmanya' => '#/698',
+'isosage' => '#/704',
+'isosge' => '#/704',
+'isosma' => '#/705',
+'isosmanya' => '#/705',
 'isother' => 'Gc/C',
 'isotherletter' => 'Gc/Lo',
 'isothernumber' => 'Gc/No',
 'isotherpunctuation' => 'Gc/Po',
 'isothersymbol' => 'Gc/So',
-'isottomansiyaqnumbers' => '#/416',
-'isougr' => '#/699',
+'isottomansiyaqnumbers' => '#/421',
+'isougr' => '#/706',
 'isp' => 'Gc/P',
 'ispahawhhmong' => 'Scx/Hmng',
 'ispalm' => '#/279',
 'ispalmyrene' => '#/279',
-'isparagraphseparator' => '#/437',
+'isparagraphseparator' => '#/442',
 'ispatsyn' => 'PatSyn/Y',
 'ispatternsyntax' => 'PatSyn/Y',
 'ispatternwhitespace' => 'Perl/_PerlPat',
 'ispatws' => 'Perl/_PerlPat',
-'ispauc' => '#/700',
-'ispaucinhau' => '#/700',
+'ispauc' => '#/707',
+'ispaucinhau' => '#/707',
 'ispc' => 'Gc/Pc',
 'ispcm' => 'PCM/Y',
 'ispd' => 'Gc/Pd',
 'ispe' => 'Gc/Pe',
 'isperlspace' => '#/3',
 'isperlword' => 'Perl/PerlWord',
-'isperm' => '#/701',
+'isperm' => '#/708',
 'ispf' => 'Gc/Pf',
-'isphag' => '#/702',
-'isphagspa' => '#/702',
+'isphag' => '#/709',
+'isphagspa' => '#/709',
 'isphaistos' => '#/246',
 'isphaistosdisc' => '#/246',
-'isphli' => '#/703',
+'isphli' => '#/710',
 'isphlp' => 'Scx/Phlp',
-'isphnx' => '#/704',
-'isphoenician' => '#/704',
-'isphoneticext' => '#/329',
-'isphoneticextensions' => '#/329',
-'isphoneticextensionssupplement' => '#/371',
-'isphoneticextsup' => '#/371',
+'isphnx' => '#/711',
+'isphoenician' => '#/711',
+'isphoneticext' => '#/331',
+'isphoneticextensions' => '#/331',
+'isphoneticextensionssupplement' => '#/375',
+'isphoneticextsup' => '#/375',
 'ispi' => 'Gc/Pi',
-'isplayingcards' => '#/351',
-'isplrd' => '#/689',
+'isplayingcards' => '#/354',
+'isplrd' => '#/695',
 'ispo' => 'Gc/Po',
 'isposixalnum' => '#/5',
 'isposixalpha' => '#/6',
@@ -5698,161 +5761,161 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isposixxdigit' => '#/60',
 'isprependedconcatenationmark' => 'PCM/Y',
 'isprint' => 'Perl/Print',
-'isprivateuse' => '#/435',
-'isprivateusearea' => '#/118',
-'isprti' => '#/705',
+'isprivateuse' => '#/440',
+'isprivateusearea' => '#/116',
+'isprti' => '#/712',
 'isps' => 'Gc/Ps',
 'ispsalterpahlavi' => 'Scx/Phlp',
-'ispua' => '#/118',
+'ispua' => '#/116',
 'ispunct' => 'Gc/P',
 'ispunctuation' => 'Gc/P',
 'isqaac' => 'Scx/Copt',
 'isqaai' => 'Scx/Zinh',
 'isqmark' => 'QMark/Y',
 'isquotationmark' => 'QMark/Y',
-'isradical' => '#/92',
+'isradical' => '#/90',
 'isregionalindicator' => '#/68',
-'isrejang' => '#/706',
+'isrejang' => '#/713',
 'isri' => '#/68',
-'isrjng' => '#/706',
+'isrjng' => '#/713',
 'isrohg' => 'Scx/Rohg',
-'isrumi' => '#/127',
-'isruminumeralsymbols' => '#/127',
-'isrunic' => '#/707',
-'isrunr' => '#/707',
+'isrumi' => '#/126',
+'isruminumeralsymbols' => '#/126',
+'isrunic' => '#/714',
+'isrunr' => '#/714',
 'iss' => 'Gc/S',
-'issamaritan' => '#/708',
-'issamr' => '#/708',
-'issarb' => '#/384',
-'issaur' => '#/709',
-'issaurashtra' => '#/709',
+'issamaritan' => '#/715',
+'issamr' => '#/715',
+'issarb' => '#/388',
+'issaur' => '#/716',
+'issaurashtra' => '#/716',
 'issc' => 'Gc/Sc',
 'issd' => 'SD/Y',
 'issentenceterminal' => 'STerm/Y',
 'isseparator' => 'Gc/Z',
-'issgnw' => '#/710',
+'issgnw' => '#/717',
 'issharada' => 'Scx/Shrd',
 'isshavian' => '#/210',
 'isshaw' => '#/210',
-'isshorthandformatcontrols' => '#/426',
+'isshorthandformatcontrols' => '#/431',
 'isshrd' => 'Scx/Shrd',
-'issidd' => '#/711',
-'issiddham' => '#/711',
-'issignwriting' => '#/710',
+'issidd' => '#/718',
+'issiddham' => '#/718',
+'issignwriting' => '#/717',
 'issind' => 'Scx/Sind',
 'issinh' => 'Scx/Sinh',
 'issinhala' => 'Scx/Sinh',
-'issinhalaarchaicnumbers' => '#/421',
+'issinhalaarchaicnumbers' => '#/426',
 'issk' => 'Gc/Sk',
 'issm' => 'Gc/Sm',
-'issmallforms' => '#/304',
-'issmallformvariants' => '#/304',
-'issmallkanaext' => '#/352',
-'issmallkanaextension' => '#/352',
+'issmallforms' => '#/306',
+'issmallformvariants' => '#/306',
+'issmallkanaext' => '#/355',
+'issmallkanaextension' => '#/355',
 'isso' => 'Gc/So',
 'issoftdotted' => 'SD/Y',
-'issogd' => '#/712',
-'issogdian' => '#/712',
-'issogo' => '#/713',
-'issora' => '#/714',
-'issorasompeng' => '#/714',
-'issoyo' => '#/715',
-'issoyombo' => '#/715',
+'issogd' => '#/719',
+'issogdian' => '#/719',
+'issogo' => '#/720',
+'issora' => '#/721',
+'issorasompeng' => '#/721',
+'issoyo' => '#/722',
+'issoyombo' => '#/722',
 'isspace' => 'Perl/SpacePer',
 'isspaceperl' => 'Perl/SpacePer',
 'isspaceseparator' => 'Gc/Zs',
 'isspacingmark' => 'Gc/Mc',
-'isspacingmodifierletters' => '#/382',
+'isspacingmodifierletters' => '#/386',
 'isspecials' => '#/247',
 'issterm' => 'STerm/Y',
-'issund' => '#/716',
-'issundanese' => '#/716',
-'issundanesesup' => '#/353',
-'issundanesesupplement' => '#/353',
-'issuparrowsa' => '#/305',
-'issuparrowsb' => '#/306',
-'issuparrowsc' => '#/307',
-'issuperandsub' => '#/332',
-'issuperscriptsandsubscripts' => '#/332',
-'issupmathoperators' => '#/397',
-'issupplementalarrowsa' => '#/305',
-'issupplementalarrowsb' => '#/306',
-'issupplementalarrowsc' => '#/307',
-'issupplementalmathematicaloperators' => '#/397',
-'issupplementalpunctuation' => '#/373',
-'issupplementalsymbolsandpictographs' => '#/427',
+'issund' => '#/723',
+'issundanese' => '#/723',
+'issundanesesup' => '#/356',
+'issundanesesupplement' => '#/356',
+'issuparrowsa' => '#/307',
+'issuparrowsb' => '#/308',
+'issuparrowsc' => '#/309',
+'issuperandsub' => '#/334',
+'issuperscriptsandsubscripts' => '#/334',
+'issupmathoperators' => '#/402',
+'issupplementalarrowsa' => '#/307',
+'issupplementalarrowsb' => '#/308',
+'issupplementalarrowsc' => '#/309',
+'issupplementalmathematicaloperators' => '#/402',
+'issupplementalpunctuation' => '#/377',
+'issupplementalsymbolsandpictographs' => '#/432',
 'issupplementaryprivateuseareaa' => '#/215',
 'issupplementaryprivateuseareab' => '#/216',
 'issuppuaa' => '#/215',
 'issuppuab' => '#/216',
-'issuppunctuation' => '#/373',
-'issupsymbolsandpictographs' => '#/427',
+'issuppunctuation' => '#/377',
+'issupsymbolsandpictographs' => '#/432',
 'issurrogate' => '#/14',
-'issuttonsignwriting' => '#/404',
-'issylo' => '#/717',
-'issylotinagri' => '#/717',
+'issuttonsignwriting' => '#/409',
+'issylo' => '#/724',
+'issylotinagri' => '#/724',
 'issymbol' => 'Gc/S',
-'issymbolsandpictographsexta' => '#/428',
-'issymbolsandpictographsextendeda' => '#/428',
-'issymbolsforlegacycomputing' => '#/429',
+'issymbolsandpictographsexta' => '#/433',
+'issymbolsandpictographsextendeda' => '#/433',
+'issymbolsforlegacycomputing' => '#/434',
 'issyrc' => 'Scx/Syrc',
 'issyriac' => 'Scx/Syrc',
 'issyriacsup' => '#/283',
 'issyriacsupplement' => '#/283',
-'istagalog' => '#/721',
+'istagalog' => '#/728',
 'istagb' => 'Scx/Tagb',
 'istagbanwa' => 'Scx/Tagb',
-'istags' => '#/128',
-'istaile' => '#/718',
+'istags' => '#/127',
+'istaile' => '#/725',
 'istaitham' => 'Scx/Lana',
-'istaiviet' => '#/719',
-'istaixuanjing' => '#/334',
-'istaixuanjingsymbols' => '#/334',
+'istaiviet' => '#/726',
+'istaixuanjing' => '#/336',
+'istaixuanjingsymbols' => '#/336',
 'istakr' => 'Scx/Takr',
 'istakri' => 'Scx/Takr',
-'istale' => '#/718',
+'istale' => '#/725',
 'istalu' => 'Scx/Talu',
 'istamil' => 'Scx/Taml',
 'istamilsup' => '#/249',
 'istamilsupplement' => '#/249',
 'istaml' => 'Scx/Taml',
 'istang' => 'Scx/Tang',
-'istangsa' => '#/723',
+'istangsa' => '#/730',
 'istangut' => 'Scx/Tang',
-'istangutcomponents' => '#/398',
+'istangutcomponents' => '#/403',
 'istangutsup' => '#/284',
 'istangutsupplement' => '#/284',
-'istavt' => '#/719',
+'istavt' => '#/726',
 'istelu' => 'Scx/Telu',
 'istelugu' => 'Scx/Telu',
 'isterm' => 'Term/Y',
 'isterminalpunctuation' => 'Term/Y',
-'istfng' => '#/720',
-'istglg' => '#/721',
+'istfng' => '#/727',
+'istglg' => '#/728',
 'isthaa' => 'Scx/Thaa',
 'isthaana' => 'Scx/Thaa',
-'isthai' => '#/722',
+'isthai' => '#/729',
 'istibetan' => 'Scx/Tibt',
 'istibt' => 'Scx/Tibt',
-'istifinagh' => '#/720',
+'istifinagh' => '#/727',
 'istirh' => 'Scx/Tirh',
 'istirhuta' => 'Scx/Tirh',
 'istitle' => 'Perl/Title',
 'istitlecase' => 'Perl/Title',
 'istitlecaseletter' => 'Perl/Title',
-'istnsa' => '#/723',
-'istoto' => '#/724',
-'istransportandmap' => '#/385',
-'istransportandmapsymbols' => '#/385',
-'isucas' => '#/131',
+'istnsa' => '#/730',
+'istoto' => '#/731',
+'istransportandmap' => '#/389',
+'istransportandmapsymbols' => '#/389',
+'isucas' => '#/130',
 'isucasext' => '#/222',
 'isucasexta' => '#/251',
-'isugar' => '#/725',
-'isugaritic' => '#/725',
+'isugar' => '#/732',
+'isugaritic' => '#/732',
 'isuideo' => 'UIdeo/Y',
 'isunassigned' => 'Gc/Cn',
 'isunicode' => '#/2',
-'isunifiedcanadianaboriginalsyllabics' => '#/131',
+'isunifiedcanadianaboriginalsyllabics' => '#/130',
 'isunifiedcanadianaboriginalsyllabicsextended' => '#/222',
 'isunifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
 'isunifiedideograph' => 'UIdeo/Y',
@@ -5860,23 +5923,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isupper' => 'Upper/Y',
 'isuppercase' => 'Upper/Y',
 'isuppercaseletter' => 'Gc/Lu',
-'isvai' => '#/648',
-'isvaii' => '#/648',
+'isvai' => '#/653',
+'isvaii' => '#/653',
 'isvariationselector' => 'VS/Y',
-'isvariationselectors' => '#/111',
-'isvariationselectorssupplement' => '#/150',
+'isvariationselectors' => '#/109',
+'isvariationselectorssupplement' => '#/149',
 'isvedicext' => '#/253',
 'isvedicextensions' => '#/253',
-'isverticalforms' => '#/362',
+'isverticalforms' => '#/365',
 'isvertspace' => '#/4',
 'isvith' => 'Scx/Vith',
 'isvithkuqi' => 'Scx/Vith',
 'isvs' => 'VS/Y',
-'isvssup' => '#/150',
-'iswancho' => '#/727',
-'iswara' => '#/726',
-'iswarangciti' => '#/726',
-'iswcho' => '#/727',
+'isvssup' => '#/149',
+'iswancho' => '#/734',
+'iswara' => '#/733',
+'iswarangciti' => '#/733',
+'iswcho' => '#/734',
 'iswhitespace' => 'Perl/SpacePer',
 'isword' => 'Perl/Word',
 'iswspace' => 'Perl/SpacePer',
@@ -5885,12 +5948,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isxidcontinue' => 'XIDC/Y',
 'isxids' => 'XIDS/Y',
 'isxidstart' => 'XIDS/Y',
-'isxpeo' => '#/728',
+'isxpeo' => '#/735',
 'isxperlspace' => 'Perl/SpacePer',
 'isxposixalnum' => 'Perl/Alnum',
 'isxposixalpha' => 'Alpha/Y',
 'isxposixblank' => 'Perl/Blank',
-'isxposixcntrl' => '#/434',
+'isxposixcntrl' => '#/439',
 'isxposixdigit' => 'Gc/Nd',
 'isxposixgraph' => 'Perl/Graph',
 'isxposixlower' => 'Lower/Y',
@@ -5905,142 +5968,142 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'isyezidi' => 'Scx/Yezi',
 'isyi' => 'Scx/Yi',
 'isyiii' => 'Scx/Yi',
-'isyijing' => '#/179',
-'isyijinghexagramsymbols' => '#/179',
-'isyiradicals' => '#/309',
-'isyisyllables' => '#/335',
+'isyijing' => '#/178',
+'isyijinghexagramsymbols' => '#/178',
+'isyiradicals' => '#/311',
+'isyisyllables' => '#/337',
 'isz' => 'Gc/Z',
-'iszanabazarsquare' => '#/729',
-'iszanb' => '#/729',
+'iszanabazarsquare' => '#/736',
+'iszanb' => '#/736',
 'iszinh' => 'Scx/Zinh',
-'iszl' => '#/436',
-'isznamennymusic' => '#/363',
-'isznamennymusicalnotation' => '#/363',
-'iszp' => '#/437',
+'iszl' => '#/441',
+'isznamennymusic' => '#/366',
+'isznamennymusicalnotation' => '#/366',
+'iszp' => '#/442',
 'iszs' => 'Gc/Zs',
 'iszyyy' => 'Scx/Zyyy',
 'iszzzz' => 'Scx/Zzzz',
-'ital' => '#/674',
-'jamo' => '#/122',
+'ital' => '#/679',
+'jamo' => '#/120',
 'jamoexta' => '#/239',
 'jamoextb' => '#/240',
-'java' => '#/675',
-'javanese' => '#/675',
-'jg=africanfeh' => '#/469',
-'jg=africannoon' => '#/475',
-'jg=africanqaf' => '#/470',
+'java' => '#/680',
+'javanese' => '#/680',
+'jg=africanfeh' => '#/474',
+'jg=africannoon' => '#/480',
+'jg=africanqaf' => '#/475',
 'jg=ain' => 'Jg/Ain',
-'jg=alaph' => '#/456',
+'jg=alaph' => '#/461',
 'jg=alef' => 'Jg/Alef',
 'jg=beh' => 'Jg/Beh',
-'jg=beth' => '#/447',
-'jg=burushaskiyehbarree' => '#/521',
+'jg=beth' => '#/452',
+'jg=burushaskiyehbarree' => '#/526',
 'jg=dal' => 'Jg/Dal',
-'jg=dalathrish' => '#/471',
-'jg=e' => '#/438',
+'jg=dalathrish' => '#/476',
+'jg=e' => '#/443',
 'jg=farsiyeh' => 'Jg/FarsiYeh',
-'jg=fe' => '#/439',
+'jg=fe' => '#/444',
 'jg=feh' => 'Jg/Feh',
-'jg=finalsemkath' => '#/481',
+'jg=finalsemkath' => '#/486',
 'jg=gaf' => 'Jg/Gaf',
-'jg=gamal' => '#/457',
+'jg=gamal' => '#/462',
 'jg=hah' => 'Jg/Hah',
-'jg=hamzaonhehgoal' => '#/499',
+'jg=hamzaonhehgoal' => '#/504',
 'jg=hanifirohingyakinnaya' => 'Jg/HanifiRo',
-'jg=hanifirohingyapa' => '#/513',
-'jg=he' => '#/440',
-'jg=heh' => '#/442',
-'jg=hehgoal' => '#/463',
-'jg=heth' => '#/448',
+'jg=hanifirohingyapa' => '#/518',
+'jg=he' => '#/445',
+'jg=heh' => '#/447',
+'jg=hehgoal' => '#/468',
+'jg=heth' => '#/453',
 'jg=kaf' => 'Jg/Kaf',
-'jg=kaph' => '#/449',
-'jg=khaph' => '#/458',
-'jg=knottedheh' => '#/472',
+'jg=kaph' => '#/454',
+'jg=khaph' => '#/463',
+'jg=knottedheh' => '#/477',
 'jg=lam' => 'Jg/Lam',
-'jg=lamadh' => '#/461',
-'jg=malayalambha' => '#/482',
-'jg=malayalamja' => '#/476',
-'jg=malayalamlla' => '#/483',
-'jg=malayalamllla' => '#/491',
-'jg=malayalamnga' => '#/484',
-'jg=malayalamnna' => '#/485',
-'jg=malayalamnnna' => '#/492',
-'jg=malayalamnya' => '#/486',
-'jg=malayalamra' => '#/477',
-'jg=malayalamssa' => '#/487',
-'jg=malayalamtta' => '#/488',
-'jg=manichaeanaleph' => '#/509',
-'jg=manichaeanayin' => '#/500',
-'jg=manichaeanbeth' => '#/501',
-'jg=manichaeandaleth' => '#/514',
-'jg=manichaeandhamedh' => '#/518',
-'jg=manichaeanfive' => '#/502',
-'jg=manichaeangimel' => '#/510',
-'jg=manichaeanheth' => '#/503',
-'jg=manichaeanhundred' => '#/519',
-'jg=manichaeankaph' => '#/504',
-'jg=manichaeanlamedh' => '#/515',
-'jg=manichaeanmem' => '#/493',
-'jg=manichaeannun' => '#/494',
-'jg=manichaeanone' => '#/495',
-'jg=manichaeanpe' => '#/489',
-'jg=manichaeanqoph' => '#/505',
-'jg=manichaeanresh' => '#/506',
-'jg=manichaeansadhe' => '#/511',
-'jg=manichaeansamekh' => '#/516',
-'jg=manichaeantaw' => '#/496',
-'jg=manichaeanten' => '#/497',
-'jg=manichaeanteth' => '#/507',
-'jg=manichaeanthamedh' => '#/520',
-'jg=manichaeantwenty' => '#/517',
-'jg=manichaeanwaw' => '#/498',
-'jg=manichaeanyodh' => '#/508',
-'jg=manichaeanzayin' => '#/512',
-'jg=meem' => '#/450',
-'jg=mim' => '#/443',
+'jg=lamadh' => '#/466',
+'jg=malayalambha' => '#/487',
+'jg=malayalamja' => '#/481',
+'jg=malayalamlla' => '#/488',
+'jg=malayalamllla' => '#/496',
+'jg=malayalamnga' => '#/489',
+'jg=malayalamnna' => '#/490',
+'jg=malayalamnnna' => '#/497',
+'jg=malayalamnya' => '#/491',
+'jg=malayalamra' => '#/482',
+'jg=malayalamssa' => '#/492',
+'jg=malayalamtta' => '#/493',
+'jg=manichaeanaleph' => '#/514',
+'jg=manichaeanayin' => '#/505',
+'jg=manichaeanbeth' => '#/506',
+'jg=manichaeandaleth' => '#/519',
+'jg=manichaeandhamedh' => '#/523',
+'jg=manichaeanfive' => '#/507',
+'jg=manichaeangimel' => '#/515',
+'jg=manichaeanheth' => '#/508',
+'jg=manichaeanhundred' => '#/524',
+'jg=manichaeankaph' => '#/509',
+'jg=manichaeanlamedh' => '#/520',
+'jg=manichaeanmem' => '#/498',
+'jg=manichaeannun' => '#/499',
+'jg=manichaeanone' => '#/500',
+'jg=manichaeanpe' => '#/494',
+'jg=manichaeanqoph' => '#/510',
+'jg=manichaeanresh' => '#/511',
+'jg=manichaeansadhe' => '#/516',
+'jg=manichaeansamekh' => '#/521',
+'jg=manichaeantaw' => '#/501',
+'jg=manichaeanten' => '#/502',
+'jg=manichaeanteth' => '#/512',
+'jg=manichaeanthamedh' => '#/525',
+'jg=manichaeantwenty' => '#/522',
+'jg=manichaeanwaw' => '#/503',
+'jg=manichaeanyodh' => '#/513',
+'jg=manichaeanzayin' => '#/517',
+'jg=meem' => '#/455',
+'jg=mim' => '#/448',
 'jg=nojoininggroup' => 'Jg/NoJoinin',
 'jg=noon' => 'Jg/Noon',
-'jg=nun' => '#/444',
-'jg=nya' => '#/445',
-'jg=pe' => '#/441',
+'jg=nun' => '#/449',
+'jg=nya' => '#/450',
+'jg=pe' => '#/446',
 'jg=qaf' => 'Jg/Qaf',
-'jg=qaph' => '#/451',
+'jg=qaph' => '#/456',
 'jg=reh' => 'Jg/Reh',
-'jg=reversedpe' => '#/473',
-'jg=rohingyayeh' => '#/478',
+'jg=reversedpe' => '#/478',
+'jg=rohingyayeh' => '#/483',
 'jg=sad' => 'Jg/Sad',
-'jg=sadhe' => '#/459',
+'jg=sadhe' => '#/464',
 'jg=seen' => 'Jg/Seen',
-'jg=semkath' => '#/464',
-'jg=shin' => '#/452',
-'jg=straightwaw' => '#/479',
-'jg=swashkaf' => '#/466',
-'jg=syriacwaw' => '#/467',
+'jg=semkath' => '#/469',
+'jg=shin' => '#/457',
+'jg=straightwaw' => '#/484',
+'jg=swashkaf' => '#/471',
+'jg=syriacwaw' => '#/472',
 'jg=tah' => 'Jg/Tah',
-'jg=taw' => '#/446',
-'jg=tehmarbuta' => '#/474',
-'jg=tehmarbutagoal' => '#/499',
-'jg=teth' => '#/453',
-'jg=thinyeh' => '#/465',
-'jg=verticaltail' => '#/490',
+'jg=taw' => '#/451',
+'jg=tehmarbuta' => '#/479',
+'jg=tehmarbutagoal' => '#/504',
+'jg=teth' => '#/458',
+'jg=thinyeh' => '#/470',
+'jg=verticaltail' => '#/495',
 'jg=waw' => 'Jg/Waw',
 'jg=yeh' => 'Jg/Yeh',
-'jg=yehbarree' => '#/468',
-'jg=yehwithtail' => '#/480',
-'jg=yudh' => '#/454',
-'jg=yudhhe' => '#/462',
-'jg=zain' => '#/455',
-'jg=zhain' => '#/460',
-'joinc' => '#/89',
-'joinc=f' => '#/!89',
-'joinc=false' => '#/!89',
-'joinc=n' => '#/!89',
-'joinc=no' => '#/!89',
-'joinc=t' => '#/89',
-'joinc=true' => '#/89',
-'joinc=y' => '#/89',
-'joinc=yes' => '#/89',
-'joincontrol' => '#/89',
+'jg=yehbarree' => '#/473',
+'jg=yehwithtail' => '#/485',
+'jg=yudh' => '#/459',
+'jg=yudhhe' => '#/467',
+'jg=zain' => '#/460',
+'jg=zhain' => '#/465',
+'joinc' => '#/87',
+'joinc=f' => '#/!87',
+'joinc=false' => '#/!87',
+'joinc=n' => '#/!87',
+'joinc=no' => '#/!87',
+'joinc=t' => '#/87',
+'joinc=true' => '#/87',
+'joinc=y' => '#/87',
+'joinc=yes' => '#/87',
+'joincontrol' => '#/87',
 'jt=c' => 'Jt/C',
 'jt=d' => 'Jt/D',
 'jt=dualjoining' => 'Jt/D',
@@ -6054,6 +6117,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'jt=transparent' => 'Jt/T',
 'jt=u' => 'Jt/U',
 'kaithi' => 'Scx/Kthi',
+'kaktoviknumerals' => '#/397',
 'kali' => '#/197',
 'kana' => 'Scx/Kana',
 'kanaexta' => '#/242',
@@ -6062,24 +6126,25 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'kanaextendedb' => '#/243',
 'kanasup' => '#/195',
 'kanasupplement' => '#/195',
-'kanbun' => '#/164',
-'kangxi' => '#/165',
-'kangxiradicals' => '#/165',
+'kanbun' => '#/163',
+'kangxi' => '#/164',
+'kangxiradicals' => '#/164',
 'kannada' => 'Scx/Knda',
 'katakana' => 'Scx/Kana',
-'katakanaext' => '#/320',
-'katakanaphoneticextensions' => '#/320',
+'katakanaext' => '#/322',
+'katakanaphoneticextensions' => '#/322',
+'kawi' => '#/681',
 'kayahli' => '#/197',
 'khar' => 'Scx/Khar',
 'kharoshthi' => 'Scx/Khar',
-'khitansmallscript' => '#/676',
+'khitansmallscript' => '#/682',
 'khmer' => 'Scx/Khmr',
-'khmersymbols' => '#/345',
+'khmersymbols' => '#/348',
 'khmr' => 'Scx/Khmr',
 'khoj' => 'Scx/Khoj',
 'khojki' => 'Scx/Khoj',
 'khudawadi' => 'Scx/Sind',
-'kits' => '#/676',
+'kits' => '#/682',
 'knda' => 'Scx/Knda',
 'kthi' => 'Scx/Kthi',
 'l' => 'Gc/L',
@@ -6089,17 +6154,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'lao' => 'Scx/Lao',
 'laoo' => 'Scx/Lao',
 'latin' => 'Scx/Latn',
-'latin1' => '#/167',
-'latin1sup' => '#/167',
-'latin1supplement' => '#/167',
+'latin1' => '#/166',
+'latin1sup' => '#/166',
+'latin1supplement' => '#/166',
 'latinexta' => '#/264',
-'latinextadditional' => '#/408',
+'latinextadditional' => '#/413',
 'latinextb' => '#/265',
 'latinextc' => '#/266',
 'latinextd' => '#/267',
 'latinexte' => '#/268',
 'latinextendeda' => '#/264',
-'latinextendedadditional' => '#/408',
+'latinextendedadditional' => '#/413',
 'latinextendedb' => '#/265',
 'latinextendedc' => '#/266',
 'latinextendedd' => '#/267',
@@ -6113,26 +6178,26 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'lb=al' => 'Lb/AL',
 'lb=alphabetic' => 'Lb/AL',
 'lb=ambiguous' => 'Lb/AI',
-'lb=b2' => '#/522',
+'lb=b2' => '#/527',
 'lb=ba' => 'Lb/BA',
 'lb=bb' => 'Lb/BB',
-'lb=bk' => '#/523',
+'lb=bk' => '#/528',
 'lb=breakafter' => 'Lb/BA',
 'lb=breakbefore' => 'Lb/BB',
-'lb=breakboth' => '#/522',
-'lb=breaksymbols' => '#/530',
+'lb=breakboth' => '#/527',
+'lb=breaksymbols' => '#/535',
 'lb=carriagereturn' => '#/66',
-'lb=cb' => '#/524',
+'lb=cb' => '#/529',
 'lb=cj' => 'Lb/CJ',
 'lb=cl' => 'Lb/CL',
-'lb=closeparenthesis' => '#/525',
+'lb=closeparenthesis' => '#/530',
 'lb=closepunctuation' => 'Lb/CL',
 'lb=cm' => 'Lb/CM',
 'lb=combiningmark' => 'Lb/CM',
 'lb=complexcontext' => 'Lb/SA',
 'lb=conditionaljapanesestarter' => 'Lb/CJ',
-'lb=contingentbreak' => '#/524',
-'lb=cp' => '#/525',
+'lb=contingentbreak' => '#/529',
+'lb=cp' => '#/530',
 'lb=cr' => '#/66',
 'lb=eb' => 'EBase/Y',
 'lb=ebase' => 'EBase/Y',
@@ -6146,8 +6211,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'lb=h3' => 'GCB/LVT',
 'lb=hebrewletter' => 'WB/HL',
 'lb=hl' => 'WB/HL',
-'lb=hy' => '#/526',
-'lb=hyphen' => '#/526',
+'lb=hy' => '#/531',
+'lb=hyphen' => '#/531',
 'lb=id' => 'Lb/ID',
 'lb=ideographic' => 'Lb/ID',
 'lb=in' => 'Lb/IN',
@@ -6160,9 +6225,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'lb=jv' => '#/65',
 'lb=lf' => '#/67',
 'lb=linefeed' => '#/67',
-'lb=mandatorybreak' => '#/523',
-'lb=nextline' => '#/527',
-'lb=nl' => '#/527',
+'lb=mandatorybreak' => '#/528',
+'lb=nextline' => '#/532',
+'lb=nl' => '#/532',
 'lb=nonstarter' => 'Lb/NS',
 'lb=ns' => 'Lb/NS',
 'lb=nu' => 'Lb/NU',
@@ -6178,23 +6243,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'lb=regionalindicator' => '#/68',
 'lb=ri' => '#/68',
 'lb=sa' => 'Lb/SA',
-'lb=sg' => '#/528',
-'lb=sp' => '#/529',
-'lb=space' => '#/529',
-'lb=surrogate' => '#/528',
-'lb=sy' => '#/530',
+'lb=sg' => '#/533',
+'lb=sp' => '#/534',
+'lb=space' => '#/534',
+'lb=surrogate' => '#/533',
+'lb=sy' => '#/535',
 'lb=unknown' => 'Lb/XX',
-'lb=wj' => '#/531',
-'lb=wordjoiner' => '#/531',
+'lb=wj' => '#/536',
+'lb=wordjoiner' => '#/536',
 'lb=xx' => 'Lb/XX',
-'lb=zw' => '#/532',
+'lb=zw' => '#/537',
 'lb=zwj' => '#/69',
-'lb=zwspace' => '#/532',
+'lb=zwspace' => '#/537',
 'lc' => 'Gc/LC',
-'lepc' => '#/677',
-'lepcha' => '#/677',
+'lepc' => '#/683',
+'lepcha' => '#/683',
 'letter' => 'Gc/L',
-'letterlikesymbols' => '#/403',
+'letterlikesymbols' => '#/408',
 'letternumber' => 'Gc/Nl',
 'limb' => 'Scx/Limb',
 'limbu' => 'Scx/Limb',
@@ -6202,10 +6267,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'linb' => 'Scx/Linb',
 'lineara' => 'Scx/Lina',
 'linearb' => 'Scx/Linb',
-'linearbideograms' => '#/393',
-'linearbsyllabary' => '#/394',
-'lineseparator' => '#/436',
-'lisu' => '#/678',
+'linearbideograms' => '#/398',
+'linearbsyllabary' => '#/399',
+'lineseparator' => '#/441',
+'lisu' => '#/684',
 'lisusup' => '#/199',
 'lisusupplement' => '#/199',
 'll' => 'Gc/Ll',
@@ -6232,27 +6297,27 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'lower=yes' => 'Lower/Y',
 'lowercase' => 'Lower/Y',
 'lowercaseletter' => 'Gc/Ll',
-'lowsurrogates' => '#/358',
+'lowsurrogates' => '#/361',
 'lt' => 'Perl/Title',
 'lu' => 'Gc/Lu',
-'lyci' => '#/679',
-'lycian' => '#/679',
-'lydi' => '#/680',
-'lydian' => '#/680',
+'lyci' => '#/685',
+'lycian' => '#/685',
+'lydi' => '#/686',
+'lydian' => '#/686',
 'm' => 'Gc/M',
-'mahajani' => '#/681',
-'mahj' => '#/681',
+'mahajani' => '#/687',
+'mahj' => '#/687',
 'mahjong' => '#/200',
 'mahjongtiles' => '#/200',
-'maka' => '#/682',
-'makasar' => '#/682',
+'maka' => '#/688',
+'makasar' => '#/688',
 'malayalam' => 'Scx/Mlym',
-'mand' => '#/683',
-'mandaic' => '#/683',
-'mani' => '#/684',
-'manichaean' => '#/684',
-'marc' => '#/685',
-'marchen' => '#/685',
+'mand' => '#/689',
+'mandaic' => '#/689',
+'mani' => '#/690',
+'manichaean' => '#/690',
+'marc' => '#/691',
+'marchen' => '#/691',
 'mark' => 'Gc/M',
 'masaramgondi' => 'Scx/Gonm',
 'math' => 'Math/Y',
@@ -6264,69 +6329,71 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'math=true' => 'Math/Y',
 'math=y' => 'Math/Y',
 'math=yes' => 'Math/Y',
-'mathalphanum' => '#/347',
-'mathematicalalphanumericsymbols' => '#/347',
-'mathematicaloperators' => '#/359',
-'mathoperators' => '#/359',
+'mathalphanum' => '#/350',
+'mathematicalalphanumericsymbols' => '#/350',
+'mathematicaloperators' => '#/362',
+'mathoperators' => '#/362',
 'mathsymbol' => 'Gc/Sm',
-'mayannumerals' => '#/360',
+'mayannumerals' => '#/363',
 'mc' => 'Gc/Mc',
 'me' => 'Gc/Me',
-'medefaidrin' => '#/686',
-'medf' => '#/686',
-'meeteimayek' => '#/691',
-'meeteimayekext' => '#/370',
-'meeteimayekextensions' => '#/370',
-'mend' => '#/687',
-'mendekikakui' => '#/687',
-'merc' => '#/688',
-'mero' => '#/414',
-'meroiticcursive' => '#/688',
-'meroitichieroglyphs' => '#/414',
-'miao' => '#/689',
-'miscarrows' => '#/299',
-'miscellaneousmathematicalsymbolsa' => '#/395',
-'miscellaneousmathematicalsymbolsb' => '#/396',
-'miscellaneoussymbols' => '#/323',
-'miscellaneoussymbolsandarrows' => '#/299',
-'miscellaneoussymbolsandpictographs' => '#/381',
-'miscellaneoustechnical' => '#/361',
-'miscmathsymbolsa' => '#/395',
-'miscmathsymbolsb' => '#/396',
-'miscpictographs' => '#/381',
-'miscsymbols' => '#/323',
-'misctechnical' => '#/361',
+'medefaidrin' => '#/692',
+'medf' => '#/692',
+'meeteimayek' => '#/697',
+'meeteimayekext' => '#/374',
+'meeteimayekextensions' => '#/374',
+'mend' => '#/693',
+'mendekikakui' => '#/693',
+'merc' => '#/694',
+'mero' => '#/419',
+'meroiticcursive' => '#/694',
+'meroitichieroglyphs' => '#/419',
+'miao' => '#/695',
+'miscarrows' => '#/300',
+'miscellaneousmathematicalsymbolsa' => '#/400',
+'miscellaneousmathematicalsymbolsb' => '#/401',
+'miscellaneoussymbols' => '#/325',
+'miscellaneoussymbolsandarrows' => '#/300',
+'miscellaneoussymbolsandpictographs' => '#/385',
+'miscellaneoustechnical' => '#/364',
+'miscmathsymbolsa' => '#/400',
+'miscmathsymbolsb' => '#/401',
+'miscpictographs' => '#/385',
+'miscsymbols' => '#/325',
+'misctechnical' => '#/364',
 'mlym' => 'Scx/Mlym',
 'mn' => 'Gc/Mn',
-'modi' => '#/690',
+'modi' => '#/696',
 'modifierletter' => 'Gc/Lm',
-'modifierletters' => '#/382',
+'modifierletters' => '#/386',
 'modifiersymbol' => 'Gc/Sk',
-'modifiertoneletters' => '#/415',
+'modifiertoneletters' => '#/420',
 'mong' => 'Scx/Mong',
 'mongolian' => 'Scx/Mong',
-'mongoliansup' => '#/349',
-'mongoliansupplement' => '#/349',
-'mro' => '#/647',
-'mroo' => '#/647',
-'mtei' => '#/691',
+'mongoliansup' => '#/352',
+'mongoliansupplement' => '#/352',
+'mro' => '#/652',
+'mroo' => '#/652',
+'mtei' => '#/697',
 'mult' => 'Scx/Mult',
 'multani' => 'Scx/Mult',
-'music' => '#/141',
-'musicalsymbols' => '#/141',
+'music' => '#/140',
+'musicalsymbols' => '#/140',
 'myanmar' => 'Scx/Mymr',
-'myanmarexta' => '#/324',
-'myanmarextb' => '#/325',
-'myanmarextendeda' => '#/324',
-'myanmarextendedb' => '#/325',
+'myanmarexta' => '#/326',
+'myanmarextb' => '#/327',
+'myanmarextendeda' => '#/326',
+'myanmarextendedb' => '#/327',
 'mymr' => 'Scx/Mymr',
 'n' => 'Gc/N',
-'nabataean' => '#/692',
+'nabataean' => '#/699',
+'nagm' => '#/698',
+'nagmundari' => '#/698',
 'nand' => 'Scx/Nand',
 'nandinagari' => 'Scx/Nand',
-'narb' => '#/383',
+'narb' => '#/387',
 'nb' => 'Blk/NB',
-'nbat' => '#/692',
+'nbat' => '#/699',
 'nchar' => 'Perl/_PerlNch',
 'nchar=f' => '!Perl/_PerlNch',
 'nchar=false' => '!Perl/_PerlNch',
@@ -6337,7 +6404,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'nchar=y' => 'Perl/_PerlNch',
 'nchar=yes' => 'Perl/_PerlNch',
 'nd' => 'Gc/Nd',
-'newa' => '#/693',
+'newa' => '#/700',
 'newtailue' => 'Scx/Talu',
 'nfcqc=m' => 'NFCQC/M',
 'nfcqc=maybe' => 'NFCQC/M',
@@ -6366,7 +6433,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'noblock' => 'Blk/NB',
 'noncharactercodepoint' => 'Perl/_PerlNch',
 'nonspacingmark' => 'Gc/Mn',
-'nshu' => '#/694',
+'nshu' => '#/701',
 'nt=de' => 'Gc/Nd',
 'nt=decimal' => 'Gc/Nd',
 'nt=di' => 'Nt/Di',
@@ -6375,46 +6442,46 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'nt=nu' => 'Nt/Nu',
 'nt=numeric' => 'Nt/Nu',
 'number' => 'Gc/N',
-'numberforms' => '#/327',
-'nushu' => '#/694',
+'numberforms' => '#/329',
+'nushu' => '#/701',
 'nv=nan' => 'Nt/None',
 'nyiakengpuachuehmong' => 'Scx/Hmnp',
-'ocr' => '#/117',
-'ogam' => '#/695',
-'ogham' => '#/695',
+'ocr' => '#/115',
+'ogam' => '#/702',
+'ogham' => '#/702',
 'olchiki' => '#/206',
 'olck' => '#/206',
-'oldhungarian' => '#/673',
-'olditalic' => '#/674',
-'oldnortharabian' => '#/383',
-'oldpermic' => '#/701',
-'oldpersian' => '#/728',
-'oldsogdian' => '#/713',
-'oldsoutharabian' => '#/384',
-'oldturkic' => '#/696',
-'olduyghur' => '#/699',
+'oldhungarian' => '#/678',
+'olditalic' => '#/679',
+'oldnortharabian' => '#/387',
+'oldpermic' => '#/708',
+'oldpersian' => '#/735',
+'oldsogdian' => '#/720',
+'oldsoutharabian' => '#/388',
+'oldturkic' => '#/703',
+'olduyghur' => '#/706',
 'openpunctuation' => 'Gc/Ps',
-'opticalcharacterrecognition' => '#/117',
+'opticalcharacterrecognition' => '#/115',
 'oriya' => 'Scx/Orya',
-'orkh' => '#/696',
-'ornamentaldingbats' => '#/409',
+'orkh' => '#/703',
+'ornamentaldingbats' => '#/414',
 'orya' => 'Scx/Orya',
-'osage' => '#/697',
-'osge' => '#/697',
-'osma' => '#/698',
-'osmanya' => '#/698',
+'osage' => '#/704',
+'osge' => '#/704',
+'osma' => '#/705',
+'osmanya' => '#/705',
 'other' => 'Gc/C',
 'otherletter' => 'Gc/Lo',
 'othernumber' => 'Gc/No',
 'otherpunctuation' => 'Gc/Po',
 'othersymbol' => 'Gc/So',
-'ottomansiyaqnumbers' => '#/416',
-'ougr' => '#/699',
+'ottomansiyaqnumbers' => '#/421',
+'ougr' => '#/706',
 'p' => 'Gc/P',
 'pahawhhmong' => 'Scx/Hmng',
 'palm' => '#/279',
 'palmyrene' => '#/279',
-'paragraphseparator' => '#/437',
+'paragraphseparator' => '#/442',
 'patsyn' => 'PatSyn/Y',
 'patsyn=f' => '!PatSyn/Y',
 'patsyn=false' => '!PatSyn/Y',
@@ -6435,8 +6502,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'patws=true' => 'Perl/_PerlPat',
 'patws=y' => 'Perl/_PerlPat',
 'patws=yes' => 'Perl/_PerlPat',
-'pauc' => '#/700',
-'paucinhau' => '#/700',
+'pauc' => '#/707',
+'paucinhau' => '#/707',
 'pc' => 'Gc/Pc',
 'pcm' => 'PCM/Y',
 'pcm=f' => '!PCM/Y',
@@ -6451,23 +6518,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'pe' => 'Gc/Pe',
 'perlspace' => '#/3',
 'perlword' => 'Perl/PerlWord',
-'perm' => '#/701',
+'perm' => '#/708',
 'pf' => 'Gc/Pf',
-'phag' => '#/702',
-'phagspa' => '#/702',
+'phag' => '#/709',
+'phagspa' => '#/709',
 'phaistos' => '#/246',
 'phaistosdisc' => '#/246',
-'phli' => '#/703',
+'phli' => '#/710',
 'phlp' => 'Scx/Phlp',
-'phnx' => '#/704',
-'phoenician' => '#/704',
-'phoneticext' => '#/329',
-'phoneticextensions' => '#/329',
-'phoneticextensionssupplement' => '#/371',
-'phoneticextsup' => '#/371',
+'phnx' => '#/711',
+'phoenician' => '#/711',
+'phoneticext' => '#/331',
+'phoneticextensions' => '#/331',
+'phoneticextensionssupplement' => '#/375',
+'phoneticextsup' => '#/375',
 'pi' => 'Gc/Pi',
-'playingcards' => '#/351',
-'plrd' => '#/689',
+'playingcards' => '#/354',
+'plrd' => '#/695',
 'po' => 'Gc/Po',
 'posixalnum' => '#/5',
 'posixalpha' => '#/6',
@@ -6484,12 +6551,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'posixxdigit' => '#/60',
 'prependedconcatenationmark' => 'PCM/Y',
 'print' => 'Perl/Print',
-'privateuse' => '#/435',
-'privateusearea' => '#/118',
-'prti' => '#/705',
+'privateuse' => '#/440',
+'privateusearea' => '#/116',
+'prti' => '#/712',
 'ps' => 'Gc/Ps',
 'psalterpahlavi' => 'Scx/Phlp',
-'pua' => '#/118',
+'pua' => '#/116',
 'punct' => 'Gc/P',
 'punctuation' => 'Gc/P',
 'qaac' => 'Scx/Copt',
@@ -6504,17 +6571,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'qmark=y' => 'QMark/Y',
 'qmark=yes' => 'QMark/Y',
 'quotationmark' => 'QMark/Y',
-'radical' => '#/92',
-'radical=f' => '#/!92',
-'radical=false' => '#/!92',
-'radical=n' => '#/!92',
-'radical=no' => '#/!92',
-'radical=t' => '#/92',
-'radical=true' => '#/92',
-'radical=y' => '#/92',
-'radical=yes' => '#/92',
+'radical' => '#/90',
+'radical=f' => '#/!90',
+'radical=false' => '#/!90',
+'radical=n' => '#/!90',
+'radical=no' => '#/!90',
+'radical=t' => '#/90',
+'radical=true' => '#/90',
+'radical=y' => '#/90',
+'radical=yes' => '#/90',
 'regionalindicator' => '#/68',
-'rejang' => '#/706',
+'rejang' => '#/713',
 'ri' => '#/68',
 'ri=f' => '#/!68',
 'ri=false' => '#/!68',
@@ -6524,18 +6591,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'ri=true' => '#/68',
 'ri=y' => '#/68',
 'ri=yes' => '#/68',
-'rjng' => '#/706',
+'rjng' => '#/713',
 'rohg' => 'Scx/Rohg',
-'rumi' => '#/127',
-'ruminumeralsymbols' => '#/127',
-'runic' => '#/707',
-'runr' => '#/707',
+'rumi' => '#/126',
+'ruminumeralsymbols' => '#/126',
+'runic' => '#/714',
+'runr' => '#/714',
 's' => 'Gc/S',
-'samaritan' => '#/708',
-'samr' => '#/708',
-'sarb' => '#/384',
-'saur' => '#/709',
-'saurashtra' => '#/709',
+'samaritan' => '#/715',
+'samr' => '#/715',
+'sarb' => '#/388',
+'saur' => '#/716',
+'saurashtra' => '#/716',
 'sb=at' => 'SB/AT',
 'sb=aterm' => 'SB/AT',
 'sb=cl' => 'SB/CL',
@@ -6555,8 +6622,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sb=other' => 'SB/XX',
 'sb=sc' => 'SB/SC',
 'sb=scontinue' => 'SB/SC',
-'sb=se' => '#/93',
-'sb=sep' => '#/93',
+'sb=se' => '#/91',
+'sb=sep' => '#/91',
 'sb=sp' => 'SB/Sp',
 'sb=st' => 'SB/ST',
 'sb=sterm' => 'SB/ST',
@@ -6564,60 +6631,60 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sb=upper' => 'SB/UP',
 'sb=xx' => 'SB/XX',
 'sc' => 'Gc/Sc',
-'sc=adlam' => '#/612',
-'sc=adlm' => '#/612',
-'sc=aghb' => '#/649',
-'sc=ahom' => '#/650',
-'sc=anatolianhieroglyphs' => '#/672',
+'sc=adlam' => '#/617',
+'sc=adlm' => '#/617',
+'sc=aghb' => '#/654',
+'sc=ahom' => '#/655',
+'sc=anatolianhieroglyphs' => '#/677',
 'sc=arab' => 'Sc/Arab',
 'sc=arabic' => 'Sc/Arab',
 'sc=armenian' => 'Scx/Armn',
-'sc=armi' => '#/651',
+'sc=armi' => '#/656',
 'sc=armn' => 'Scx/Armn',
-'sc=avestan' => '#/652',
-'sc=avst' => '#/652',
-'sc=bali' => '#/653',
-'sc=balinese' => '#/653',
-'sc=bamu' => '#/654',
-'sc=bamum' => '#/654',
-'sc=bass' => '#/655',
-'sc=bassavah' => '#/655',
-'sc=batak' => '#/656',
-'sc=batk' => '#/656',
+'sc=avestan' => '#/657',
+'sc=avst' => '#/657',
+'sc=bali' => '#/658',
+'sc=balinese' => '#/658',
+'sc=bamu' => '#/659',
+'sc=bamum' => '#/659',
+'sc=bass' => '#/660',
+'sc=bassavah' => '#/660',
+'sc=batak' => '#/661',
+'sc=batk' => '#/661',
 'sc=beng' => 'Sc/Beng',
 'sc=bengali' => 'Sc/Beng',
 'sc=bhaiksuki' => 'Scx/Bhks',
 'sc=bhks' => 'Scx/Bhks',
-'sc=bopo' => '#/613',
-'sc=bopomofo' => '#/613',
-'sc=brah' => '#/657',
-'sc=brahmi' => '#/657',
-'sc=brai' => '#/182',
-'sc=braille' => '#/182',
-'sc=bugi' => '#/614',
-'sc=buginese' => '#/614',
-'sc=buhd' => '#/615',
-'sc=buhid' => '#/615',
-'sc=cakm' => '#/616',
-'sc=canadianaboriginal' => '#/660',
-'sc=cans' => '#/660',
-'sc=cari' => '#/661',
-'sc=carian' => '#/661',
-'sc=caucasianalbanian' => '#/649',
-'sc=chakma' => '#/616',
+'sc=bopo' => '#/618',
+'sc=bopomofo' => '#/618',
+'sc=brah' => '#/662',
+'sc=brahmi' => '#/662',
+'sc=brai' => '#/181',
+'sc=braille' => '#/181',
+'sc=bugi' => '#/619',
+'sc=buginese' => '#/619',
+'sc=buhd' => '#/620',
+'sc=buhid' => '#/620',
+'sc=cakm' => '#/621',
+'sc=canadianaboriginal' => '#/665',
+'sc=cans' => '#/665',
+'sc=cari' => '#/666',
+'sc=carian' => '#/666',
+'sc=caucasianalbanian' => '#/654',
+'sc=chakma' => '#/621',
 'sc=cham' => 'Scx/Cham',
-'sc=cher' => '#/662',
-'sc=cherokee' => '#/662',
-'sc=chorasmian' => '#/663',
-'sc=chrs' => '#/663',
+'sc=cher' => '#/667',
+'sc=cherokee' => '#/667',
+'sc=chorasmian' => '#/668',
+'sc=chrs' => '#/668',
 'sc=common' => 'Sc/Zyyy',
-'sc=copt' => '#/617',
-'sc=coptic' => '#/617',
-'sc=cpmn' => '#/618',
+'sc=copt' => '#/622',
+'sc=coptic' => '#/622',
+'sc=cpmn' => '#/623',
 'sc=cprt' => 'Sc/Cprt',
 'sc=cuneiform' => 'Scx/Xsux',
 'sc=cypriot' => 'Sc/Cprt',
-'sc=cyprominoan' => '#/618',
+'sc=cyprominoan' => '#/623',
 'sc=cyrillic' => 'Sc/Cyrl',
 'sc=cyrl' => 'Sc/Cyrl',
 'sc=deseret' => '#/190',
@@ -6625,17 +6692,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sc=devanagari' => 'Sc/Deva',
 'sc=diak' => 'Scx/Diak',
 'sc=divesakuru' => 'Scx/Diak',
-'sc=dogr' => '#/619',
-'sc=dogra' => '#/619',
+'sc=dogr' => '#/624',
+'sc=dogra' => '#/624',
 'sc=dsrt' => '#/190',
 'sc=dupl' => 'Sc/Dupl',
 'sc=duployan' => 'Sc/Dupl',
-'sc=egyp' => '#/666',
-'sc=egyptianhieroglyphs' => '#/666',
-'sc=elba' => '#/667',
-'sc=elbasan' => '#/667',
-'sc=elym' => '#/668',
-'sc=elymaic' => '#/668',
+'sc=egyp' => '#/671',
+'sc=egyptianhieroglyphs' => '#/671',
+'sc=elba' => '#/672',
+'sc=elbasan' => '#/672',
+'sc=elym' => '#/673',
+'sc=elymaic' => '#/673',
 'sc=ethi' => 'Scx/Ethi',
 'sc=ethiopic' => 'Scx/Ethi',
 'sc=geor' => 'Sc/Geor',
@@ -6644,8 +6711,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sc=glagolitic' => 'Sc/Glag',
 'sc=gong' => 'Sc/Gong',
 'sc=gonm' => 'Sc/Gonm',
-'sc=goth' => '#/669',
-'sc=gothic' => '#/669',
+'sc=goth' => '#/674',
+'sc=gothic' => '#/674',
 'sc=gran' => 'Sc/Gran',
 'sc=grantha' => 'Sc/Gran',
 'sc=greek' => 'Sc/Grek',
@@ -6659,284 +6726,287 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sc=hang' => 'Sc/Hang',
 'sc=hangul' => 'Sc/Hang',
 'sc=hani' => 'Sc/Han',
-'sc=hanifirohingya' => '#/636',
-'sc=hano' => '#/620',
-'sc=hanunoo' => '#/620',
-'sc=hatr' => '#/671',
-'sc=hatran' => '#/671',
+'sc=hanifirohingya' => '#/641',
+'sc=hano' => '#/625',
+'sc=hanunoo' => '#/625',
+'sc=hatr' => '#/676',
+'sc=hatran' => '#/676',
 'sc=hebr' => 'Scx/Hebr',
 'sc=hebrew' => 'Scx/Hebr',
 'sc=hira' => 'Sc/Hira',
 'sc=hiragana' => 'Sc/Hira',
-'sc=hluw' => '#/672',
+'sc=hluw' => '#/677',
 'sc=hmng' => 'Scx/Hmng',
 'sc=hmnp' => 'Scx/Hmnp',
-'sc=hung' => '#/673',
-'sc=imperialaramaic' => '#/651',
+'sc=hung' => '#/678',
+'sc=imperialaramaic' => '#/656',
 'sc=inherited' => 'Sc/Zinh',
-'sc=inscriptionalpahlavi' => '#/703',
-'sc=inscriptionalparthian' => '#/705',
-'sc=ital' => '#/674',
-'sc=java' => '#/621',
-'sc=javanese' => '#/621',
-'sc=kaithi' => '#/624',
-'sc=kali' => '#/622',
+'sc=inscriptionalpahlavi' => '#/710',
+'sc=inscriptionalparthian' => '#/712',
+'sc=ital' => '#/679',
+'sc=java' => '#/626',
+'sc=javanese' => '#/626',
+'sc=kaithi' => '#/629',
+'sc=kali' => '#/627',
 'sc=kana' => 'Sc/Kana',
 'sc=kannada' => 'Sc/Knda',
 'sc=katakana' => 'Sc/Kana',
-'sc=kayahli' => '#/622',
+'sc=kawi' => '#/681',
+'sc=kayahli' => '#/627',
 'sc=khar' => 'Scx/Khar',
 'sc=kharoshthi' => 'Scx/Khar',
-'sc=khitansmallscript' => '#/676',
+'sc=khitansmallscript' => '#/682',
 'sc=khmer' => 'Scx/Khmr',
 'sc=khmr' => 'Scx/Khmr',
-'sc=khoj' => '#/623',
-'sc=khojki' => '#/623',
-'sc=khudawadi' => '#/637',
-'sc=kits' => '#/676',
+'sc=khoj' => '#/628',
+'sc=khojki' => '#/628',
+'sc=khudawadi' => '#/642',
+'sc=kits' => '#/682',
 'sc=knda' => 'Sc/Knda',
-'sc=kthi' => '#/624',
+'sc=kthi' => '#/629',
 'sc=lana' => 'Scx/Lana',
 'sc=lao' => 'Scx/Lao',
 'sc=laoo' => 'Scx/Lao',
 'sc=latin' => 'Sc/Latn',
 'sc=latn' => 'Sc/Latn',
-'sc=lepc' => '#/677',
-'sc=lepcha' => '#/677',
+'sc=lepc' => '#/683',
+'sc=lepcha' => '#/683',
 'sc=limb' => 'Sc/Limb',
 'sc=limbu' => 'Sc/Limb',
-'sc=lina' => '#/625',
+'sc=lina' => '#/630',
 'sc=linb' => 'Sc/Linb',
-'sc=lineara' => '#/625',
+'sc=lineara' => '#/630',
 'sc=linearb' => 'Sc/Linb',
-'sc=lisu' => '#/678',
-'sc=lyci' => '#/679',
-'sc=lycian' => '#/679',
-'sc=lydi' => '#/680',
-'sc=lydian' => '#/680',
-'sc=mahajani' => '#/626',
-'sc=mahj' => '#/626',
-'sc=maka' => '#/682',
-'sc=makasar' => '#/682',
+'sc=lisu' => '#/684',
+'sc=lyci' => '#/685',
+'sc=lycian' => '#/685',
+'sc=lydi' => '#/686',
+'sc=lydian' => '#/686',
+'sc=mahajani' => '#/631',
+'sc=mahj' => '#/631',
+'sc=maka' => '#/688',
+'sc=makasar' => '#/688',
 'sc=malayalam' => 'Sc/Mlym',
-'sc=mand' => '#/627',
-'sc=mandaic' => '#/627',
-'sc=mani' => '#/628',
-'sc=manichaean' => '#/628',
-'sc=marc' => '#/685',
-'sc=marchen' => '#/685',
+'sc=mand' => '#/632',
+'sc=mandaic' => '#/632',
+'sc=mani' => '#/633',
+'sc=manichaean' => '#/633',
+'sc=marc' => '#/691',
+'sc=marchen' => '#/691',
 'sc=masaramgondi' => 'Sc/Gonm',
-'sc=medefaidrin' => '#/686',
-'sc=medf' => '#/686',
-'sc=meeteimayek' => '#/691',
-'sc=mend' => '#/687',
-'sc=mendekikakui' => '#/687',
-'sc=merc' => '#/688',
-'sc=mero' => '#/414',
-'sc=meroiticcursive' => '#/688',
-'sc=meroitichieroglyphs' => '#/414',
-'sc=miao' => '#/689',
+'sc=medefaidrin' => '#/692',
+'sc=medf' => '#/692',
+'sc=meeteimayek' => '#/697',
+'sc=mend' => '#/693',
+'sc=mendekikakui' => '#/693',
+'sc=merc' => '#/694',
+'sc=mero' => '#/419',
+'sc=meroiticcursive' => '#/694',
+'sc=meroitichieroglyphs' => '#/419',
+'sc=miao' => '#/695',
 'sc=mlym' => 'Sc/Mlym',
-'sc=modi' => '#/629',
+'sc=modi' => '#/634',
 'sc=mong' => 'Sc/Mong',
 'sc=mongolian' => 'Sc/Mong',
-'sc=mro' => '#/647',
-'sc=mroo' => '#/647',
-'sc=mtei' => '#/691',
+'sc=mro' => '#/652',
+'sc=mroo' => '#/652',
+'sc=mtei' => '#/697',
 'sc=mult' => 'Sc/Mult',
 'sc=multani' => 'Sc/Mult',
-'sc=myanmar' => '#/630',
-'sc=mymr' => '#/630',
-'sc=nabataean' => '#/692',
-'sc=nand' => '#/631',
-'sc=nandinagari' => '#/631',
-'sc=narb' => '#/383',
-'sc=nbat' => '#/692',
-'sc=newa' => '#/693',
+'sc=myanmar' => '#/635',
+'sc=mymr' => '#/635',
+'sc=nabataean' => '#/699',
+'sc=nagm' => '#/698',
+'sc=nagmundari' => '#/698',
+'sc=nand' => '#/636',
+'sc=nandinagari' => '#/636',
+'sc=narb' => '#/387',
+'sc=nbat' => '#/699',
+'sc=newa' => '#/700',
 'sc=newtailue' => 'Scx/Talu',
-'sc=nko' => '#/611',
-'sc=nkoo' => '#/611',
-'sc=nshu' => '#/694',
-'sc=nushu' => '#/694',
+'sc=nko' => '#/616',
+'sc=nkoo' => '#/616',
+'sc=nshu' => '#/701',
+'sc=nushu' => '#/701',
 'sc=nyiakengpuachuehmong' => 'Scx/Hmnp',
-'sc=ogam' => '#/695',
-'sc=ogham' => '#/695',
+'sc=ogam' => '#/702',
+'sc=ogham' => '#/702',
 'sc=olchiki' => '#/206',
 'sc=olck' => '#/206',
-'sc=oldhungarian' => '#/673',
-'sc=olditalic' => '#/674',
-'sc=oldnortharabian' => '#/383',
-'sc=oldpermic' => '#/633',
-'sc=oldpersian' => '#/728',
-'sc=oldsogdian' => '#/713',
-'sc=oldsoutharabian' => '#/384',
-'sc=oldturkic' => '#/696',
-'sc=olduyghur' => '#/632',
+'sc=oldhungarian' => '#/678',
+'sc=olditalic' => '#/679',
+'sc=oldnortharabian' => '#/387',
+'sc=oldpermic' => '#/638',
+'sc=oldpersian' => '#/735',
+'sc=oldsogdian' => '#/720',
+'sc=oldsoutharabian' => '#/388',
+'sc=oldturkic' => '#/703',
+'sc=olduyghur' => '#/637',
 'sc=oriya' => 'Sc/Orya',
-'sc=orkh' => '#/696',
+'sc=orkh' => '#/703',
 'sc=orya' => 'Sc/Orya',
-'sc=osage' => '#/697',
-'sc=osge' => '#/697',
-'sc=osma' => '#/698',
-'sc=osmanya' => '#/698',
-'sc=ougr' => '#/632',
+'sc=osage' => '#/704',
+'sc=osge' => '#/704',
+'sc=osma' => '#/705',
+'sc=osmanya' => '#/705',
+'sc=ougr' => '#/637',
 'sc=pahawhhmong' => 'Scx/Hmng',
 'sc=palm' => '#/279',
 'sc=palmyrene' => '#/279',
-'sc=pauc' => '#/700',
-'sc=paucinhau' => '#/700',
-'sc=perm' => '#/633',
-'sc=phag' => '#/634',
-'sc=phagspa' => '#/634',
-'sc=phli' => '#/703',
-'sc=phlp' => '#/635',
-'sc=phnx' => '#/704',
-'sc=phoenician' => '#/704',
-'sc=plrd' => '#/689',
-'sc=prti' => '#/705',
-'sc=psalterpahlavi' => '#/635',
-'sc=qaac' => '#/617',
+'sc=pauc' => '#/707',
+'sc=paucinhau' => '#/707',
+'sc=perm' => '#/638',
+'sc=phag' => '#/639',
+'sc=phagspa' => '#/639',
+'sc=phli' => '#/710',
+'sc=phlp' => '#/640',
+'sc=phnx' => '#/711',
+'sc=phoenician' => '#/711',
+'sc=plrd' => '#/695',
+'sc=prti' => '#/712',
+'sc=psalterpahlavi' => '#/640',
+'sc=qaac' => '#/622',
 'sc=qaai' => 'Sc/Zinh',
-'sc=rejang' => '#/706',
-'sc=rjng' => '#/706',
-'sc=rohg' => '#/636',
-'sc=runic' => '#/707',
-'sc=runr' => '#/707',
-'sc=samaritan' => '#/708',
-'sc=samr' => '#/708',
-'sc=sarb' => '#/384',
-'sc=saur' => '#/709',
-'sc=saurashtra' => '#/709',
-'sc=sgnw' => '#/710',
+'sc=rejang' => '#/713',
+'sc=rjng' => '#/713',
+'sc=rohg' => '#/641',
+'sc=runic' => '#/714',
+'sc=runr' => '#/714',
+'sc=samaritan' => '#/715',
+'sc=samr' => '#/715',
+'sc=sarb' => '#/388',
+'sc=saur' => '#/716',
+'sc=saurashtra' => '#/716',
+'sc=sgnw' => '#/717',
 'sc=sharada' => '#/209',
 'sc=shavian' => '#/210',
 'sc=shaw' => '#/210',
 'sc=shrd' => '#/209',
-'sc=sidd' => '#/711',
-'sc=siddham' => '#/711',
-'sc=signwriting' => '#/710',
-'sc=sind' => '#/637',
+'sc=sidd' => '#/718',
+'sc=siddham' => '#/718',
+'sc=signwriting' => '#/717',
+'sc=sind' => '#/642',
 'sc=sinh' => 'Sc/Sinh',
 'sc=sinhala' => 'Sc/Sinh',
-'sc=sogd' => '#/638',
-'sc=sogdian' => '#/638',
-'sc=sogo' => '#/713',
-'sc=sora' => '#/714',
-'sc=sorasompeng' => '#/714',
-'sc=soyo' => '#/715',
-'sc=soyombo' => '#/715',
-'sc=sund' => '#/716',
-'sc=sundanese' => '#/716',
-'sc=sylo' => '#/639',
-'sc=sylotinagri' => '#/639',
+'sc=sogd' => '#/643',
+'sc=sogdian' => '#/643',
+'sc=sogo' => '#/720',
+'sc=sora' => '#/721',
+'sc=sorasompeng' => '#/721',
+'sc=soyo' => '#/722',
+'sc=soyombo' => '#/722',
+'sc=sund' => '#/723',
+'sc=sundanese' => '#/723',
+'sc=sylo' => '#/644',
+'sc=sylotinagri' => '#/644',
 'sc=syrc' => 'Sc/Syrc',
 'sc=syriac' => 'Sc/Syrc',
-'sc=tagalog' => '#/643',
-'sc=tagb' => '#/640',
-'sc=tagbanwa' => '#/640',
-'sc=taile' => '#/642',
+'sc=tagalog' => '#/648',
+'sc=tagb' => '#/645',
+'sc=tagbanwa' => '#/645',
+'sc=taile' => '#/647',
 'sc=taitham' => 'Scx/Lana',
-'sc=taiviet' => '#/719',
-'sc=takr' => '#/641',
-'sc=takri' => '#/641',
-'sc=tale' => '#/642',
+'sc=taiviet' => '#/726',
+'sc=takr' => '#/646',
+'sc=takri' => '#/646',
+'sc=tale' => '#/647',
 'sc=talu' => 'Scx/Talu',
 'sc=tamil' => 'Sc/Taml',
 'sc=taml' => 'Sc/Taml',
 'sc=tang' => 'Scx/Tang',
-'sc=tangsa' => '#/723',
+'sc=tangsa' => '#/730',
 'sc=tangut' => 'Scx/Tang',
-'sc=tavt' => '#/719',
+'sc=tavt' => '#/726',
 'sc=telu' => 'Sc/Telu',
 'sc=telugu' => 'Sc/Telu',
-'sc=tfng' => '#/720',
-'sc=tglg' => '#/643',
-'sc=thaa' => '#/644',
-'sc=thaana' => '#/644',
-'sc=thai' => '#/722',
+'sc=tfng' => '#/727',
+'sc=tglg' => '#/648',
+'sc=thaa' => '#/649',
+'sc=thaana' => '#/649',
+'sc=thai' => '#/729',
 'sc=tibetan' => 'Scx/Tibt',
 'sc=tibt' => 'Scx/Tibt',
-'sc=tifinagh' => '#/720',
-'sc=tirh' => '#/645',
-'sc=tirhuta' => '#/645',
-'sc=tnsa' => '#/723',
-'sc=toto' => '#/724',
-'sc=ugar' => '#/725',
-'sc=ugaritic' => '#/725',
+'sc=tifinagh' => '#/727',
+'sc=tirh' => '#/650',
+'sc=tirhuta' => '#/650',
+'sc=tnsa' => '#/730',
+'sc=toto' => '#/731',
+'sc=ugar' => '#/732',
+'sc=ugaritic' => '#/732',
 'sc=unknown' => 'Scx/Zzzz',
-'sc=vai' => '#/648',
-'sc=vaii' => '#/648',
+'sc=vai' => '#/653',
+'sc=vaii' => '#/653',
 'sc=vith' => 'Scx/Vith',
 'sc=vithkuqi' => 'Scx/Vith',
-'sc=wancho' => '#/727',
-'sc=wara' => '#/726',
-'sc=warangciti' => '#/726',
-'sc=wcho' => '#/727',
-'sc=xpeo' => '#/728',
+'sc=wancho' => '#/734',
+'sc=wara' => '#/733',
+'sc=warangciti' => '#/733',
+'sc=wcho' => '#/734',
+'sc=xpeo' => '#/735',
 'sc=xsux' => 'Scx/Xsux',
-'sc=yezi' => '#/646',
-'sc=yezidi' => '#/646',
-'sc=yi' => '#/610',
-'sc=yiii' => '#/610',
-'sc=zanabazarsquare' => '#/729',
-'sc=zanb' => '#/729',
+'sc=yezi' => '#/651',
+'sc=yezidi' => '#/651',
+'sc=yi' => '#/615',
+'sc=yiii' => '#/615',
+'sc=zanabazarsquare' => '#/736',
+'sc=zanb' => '#/736',
 'sc=zinh' => 'Sc/Zinh',
 'sc=zyyy' => 'Sc/Zyyy',
 'sc=zzzz' => 'Scx/Zzzz',
 'scx=adlam' => 'Scx/Adlm',
 'scx=adlm' => 'Scx/Adlm',
-'scx=aghb' => '#/649',
-'scx=ahom' => '#/650',
-'scx=anatolianhieroglyphs' => '#/672',
+'scx=aghb' => '#/654',
+'scx=ahom' => '#/655',
+'scx=anatolianhieroglyphs' => '#/677',
 'scx=arab' => 'Scx/Arab',
 'scx=arabic' => 'Scx/Arab',
 'scx=armenian' => 'Scx/Armn',
-'scx=armi' => '#/651',
+'scx=armi' => '#/656',
 'scx=armn' => 'Scx/Armn',
-'scx=avestan' => '#/652',
-'scx=avst' => '#/652',
-'scx=bali' => '#/653',
-'scx=balinese' => '#/653',
-'scx=bamu' => '#/654',
-'scx=bamum' => '#/654',
-'scx=bass' => '#/655',
-'scx=bassavah' => '#/655',
-'scx=batak' => '#/656',
-'scx=batk' => '#/656',
+'scx=avestan' => '#/657',
+'scx=avst' => '#/657',
+'scx=bali' => '#/658',
+'scx=balinese' => '#/658',
+'scx=bamu' => '#/659',
+'scx=bamum' => '#/659',
+'scx=bass' => '#/660',
+'scx=bassavah' => '#/660',
+'scx=batak' => '#/661',
+'scx=batk' => '#/661',
 'scx=beng' => 'Scx/Beng',
 'scx=bengali' => 'Scx/Beng',
 'scx=bhaiksuki' => 'Scx/Bhks',
 'scx=bhks' => 'Scx/Bhks',
 'scx=bopo' => 'Scx/Bopo',
 'scx=bopomofo' => 'Scx/Bopo',
-'scx=brah' => '#/657',
-'scx=brahmi' => '#/657',
-'scx=brai' => '#/182',
-'scx=braille' => '#/182',
-'scx=bugi' => '#/658',
-'scx=buginese' => '#/658',
-'scx=buhd' => '#/659',
-'scx=buhid' => '#/659',
+'scx=brah' => '#/662',
+'scx=brahmi' => '#/662',
+'scx=brai' => '#/181',
+'scx=braille' => '#/181',
+'scx=bugi' => '#/663',
+'scx=buginese' => '#/663',
+'scx=buhd' => '#/664',
+'scx=buhid' => '#/664',
 'scx=cakm' => 'Scx/Cakm',
-'scx=canadianaboriginal' => '#/660',
-'scx=cans' => '#/660',
-'scx=cari' => '#/661',
-'scx=carian' => '#/661',
-'scx=caucasianalbanian' => '#/649',
+'scx=canadianaboriginal' => '#/665',
+'scx=cans' => '#/665',
+'scx=cari' => '#/666',
+'scx=carian' => '#/666',
+'scx=caucasianalbanian' => '#/654',
 'scx=chakma' => 'Scx/Cakm',
 'scx=cham' => 'Scx/Cham',
-'scx=cher' => '#/662',
-'scx=cherokee' => '#/662',
-'scx=chorasmian' => '#/663',
-'scx=chrs' => '#/663',
+'scx=cher' => '#/667',
+'scx=cherokee' => '#/667',
+'scx=chorasmian' => '#/668',
+'scx=chrs' => '#/668',
 'scx=common' => 'Scx/Zyyy',
 'scx=copt' => 'Scx/Copt',
 'scx=coptic' => 'Scx/Copt',
-'scx=cpmn' => '#/664',
+'scx=cpmn' => '#/669',
 'scx=cprt' => 'Scx/Cprt',
 'scx=cuneiform' => 'Scx/Xsux',
 'scx=cypriot' => 'Scx/Cprt',
-'scx=cyprominoan' => '#/664',
+'scx=cyprominoan' => '#/669',
 'scx=cyrillic' => 'Scx/Cyrl',
 'scx=cyrl' => 'Scx/Cyrl',
 'scx=deseret' => '#/190',
@@ -6944,17 +7014,17 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'scx=devanagari' => 'Scx/Deva',
 'scx=diak' => 'Scx/Diak',
 'scx=divesakuru' => 'Scx/Diak',
-'scx=dogr' => '#/665',
-'scx=dogra' => '#/665',
+'scx=dogr' => '#/670',
+'scx=dogra' => '#/670',
 'scx=dsrt' => '#/190',
 'scx=dupl' => 'Scx/Dupl',
 'scx=duployan' => 'Scx/Dupl',
-'scx=egyp' => '#/666',
-'scx=egyptianhieroglyphs' => '#/666',
-'scx=elba' => '#/667',
-'scx=elbasan' => '#/667',
-'scx=elym' => '#/668',
-'scx=elymaic' => '#/668',
+'scx=egyp' => '#/671',
+'scx=egyptianhieroglyphs' => '#/671',
+'scx=elba' => '#/672',
+'scx=elbasan' => '#/672',
+'scx=elym' => '#/673',
+'scx=elymaic' => '#/673',
 'scx=ethi' => 'Scx/Ethi',
 'scx=ethiopic' => 'Scx/Ethi',
 'scx=geor' => 'Scx/Geor',
@@ -6963,8 +7033,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'scx=glagolitic' => 'Scx/Glag',
 'scx=gong' => 'Scx/Gong',
 'scx=gonm' => 'Scx/Gonm',
-'scx=goth' => '#/669',
-'scx=gothic' => '#/669',
+'scx=goth' => '#/674',
+'scx=gothic' => '#/674',
 'scx=gran' => 'Scx/Gran',
 'scx=grantha' => 'Scx/Gran',
 'scx=greek' => 'Scx/Grek',
@@ -6979,40 +7049,41 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'scx=hangul' => 'Scx/Hang',
 'scx=hani' => 'Scx/Han',
 'scx=hanifirohingya' => 'Scx/Rohg',
-'scx=hano' => '#/670',
-'scx=hanunoo' => '#/670',
-'scx=hatr' => '#/671',
-'scx=hatran' => '#/671',
+'scx=hano' => '#/675',
+'scx=hanunoo' => '#/675',
+'scx=hatr' => '#/676',
+'scx=hatran' => '#/676',
 'scx=hebr' => 'Scx/Hebr',
 'scx=hebrew' => 'Scx/Hebr',
 'scx=hira' => 'Scx/Hira',
 'scx=hiragana' => 'Scx/Hira',
-'scx=hluw' => '#/672',
+'scx=hluw' => '#/677',
 'scx=hmng' => 'Scx/Hmng',
 'scx=hmnp' => 'Scx/Hmnp',
-'scx=hung' => '#/673',
-'scx=imperialaramaic' => '#/651',
+'scx=hung' => '#/678',
+'scx=imperialaramaic' => '#/656',
 'scx=inherited' => 'Scx/Zinh',
-'scx=inscriptionalpahlavi' => '#/703',
-'scx=inscriptionalparthian' => '#/705',
-'scx=ital' => '#/674',
-'scx=java' => '#/675',
-'scx=javanese' => '#/675',
+'scx=inscriptionalpahlavi' => '#/710',
+'scx=inscriptionalparthian' => '#/712',
+'scx=ital' => '#/679',
+'scx=java' => '#/680',
+'scx=javanese' => '#/680',
 'scx=kaithi' => 'Scx/Kthi',
 'scx=kali' => '#/197',
 'scx=kana' => 'Scx/Kana',
 'scx=kannada' => 'Scx/Knda',
 'scx=katakana' => 'Scx/Kana',
+'scx=kawi' => '#/681',
 'scx=kayahli' => '#/197',
 'scx=khar' => 'Scx/Khar',
 'scx=kharoshthi' => 'Scx/Khar',
-'scx=khitansmallscript' => '#/676',
+'scx=khitansmallscript' => '#/682',
 'scx=khmer' => 'Scx/Khmr',
 'scx=khmr' => 'Scx/Khmr',
 'scx=khoj' => 'Scx/Khoj',
 'scx=khojki' => 'Scx/Khoj',
 'scx=khudawadi' => 'Scx/Sind',
-'scx=kits' => '#/676',
+'scx=kits' => '#/682',
 'scx=knda' => 'Scx/Knda',
 'scx=kthi' => 'Scx/Kthi',
 'scx=lana' => 'Scx/Lana',
@@ -7020,185 +7091,187 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'scx=laoo' => 'Scx/Lao',
 'scx=latin' => 'Scx/Latn',
 'scx=latn' => 'Scx/Latn',
-'scx=lepc' => '#/677',
-'scx=lepcha' => '#/677',
+'scx=lepc' => '#/683',
+'scx=lepcha' => '#/683',
 'scx=limb' => 'Scx/Limb',
 'scx=limbu' => 'Scx/Limb',
 'scx=lina' => 'Scx/Lina',
 'scx=linb' => 'Scx/Linb',
 'scx=lineara' => 'Scx/Lina',
 'scx=linearb' => 'Scx/Linb',
-'scx=lisu' => '#/678',
-'scx=lyci' => '#/679',
-'scx=lycian' => '#/679',
-'scx=lydi' => '#/680',
-'scx=lydian' => '#/680',
-'scx=mahajani' => '#/681',
-'scx=mahj' => '#/681',
-'scx=maka' => '#/682',
-'scx=makasar' => '#/682',
+'scx=lisu' => '#/684',
+'scx=lyci' => '#/685',
+'scx=lycian' => '#/685',
+'scx=lydi' => '#/686',
+'scx=lydian' => '#/686',
+'scx=mahajani' => '#/687',
+'scx=mahj' => '#/687',
+'scx=maka' => '#/688',
+'scx=makasar' => '#/688',
 'scx=malayalam' => 'Scx/Mlym',
-'scx=mand' => '#/683',
-'scx=mandaic' => '#/683',
-'scx=mani' => '#/684',
-'scx=manichaean' => '#/684',
-'scx=marc' => '#/685',
-'scx=marchen' => '#/685',
+'scx=mand' => '#/689',
+'scx=mandaic' => '#/689',
+'scx=mani' => '#/690',
+'scx=manichaean' => '#/690',
+'scx=marc' => '#/691',
+'scx=marchen' => '#/691',
 'scx=masaramgondi' => 'Scx/Gonm',
-'scx=medefaidrin' => '#/686',
-'scx=medf' => '#/686',
-'scx=meeteimayek' => '#/691',
-'scx=mend' => '#/687',
-'scx=mendekikakui' => '#/687',
-'scx=merc' => '#/688',
-'scx=mero' => '#/414',
-'scx=meroiticcursive' => '#/688',
-'scx=meroitichieroglyphs' => '#/414',
-'scx=miao' => '#/689',
+'scx=medefaidrin' => '#/692',
+'scx=medf' => '#/692',
+'scx=meeteimayek' => '#/697',
+'scx=mend' => '#/693',
+'scx=mendekikakui' => '#/693',
+'scx=merc' => '#/694',
+'scx=mero' => '#/419',
+'scx=meroiticcursive' => '#/694',
+'scx=meroitichieroglyphs' => '#/419',
+'scx=miao' => '#/695',
 'scx=mlym' => 'Scx/Mlym',
-'scx=modi' => '#/690',
+'scx=modi' => '#/696',
 'scx=mong' => 'Scx/Mong',
 'scx=mongolian' => 'Scx/Mong',
-'scx=mro' => '#/647',
-'scx=mroo' => '#/647',
-'scx=mtei' => '#/691',
+'scx=mro' => '#/652',
+'scx=mroo' => '#/652',
+'scx=mtei' => '#/697',
 'scx=mult' => 'Scx/Mult',
 'scx=multani' => 'Scx/Mult',
 'scx=myanmar' => 'Scx/Mymr',
 'scx=mymr' => 'Scx/Mymr',
-'scx=nabataean' => '#/692',
+'scx=nabataean' => '#/699',
+'scx=nagm' => '#/698',
+'scx=nagmundari' => '#/698',
 'scx=nand' => 'Scx/Nand',
 'scx=nandinagari' => 'Scx/Nand',
-'scx=narb' => '#/383',
-'scx=nbat' => '#/692',
-'scx=newa' => '#/693',
+'scx=narb' => '#/387',
+'scx=nbat' => '#/699',
+'scx=newa' => '#/700',
 'scx=newtailue' => 'Scx/Talu',
 'scx=nko' => 'Scx/Nko',
 'scx=nkoo' => 'Scx/Nko',
-'scx=nshu' => '#/694',
-'scx=nushu' => '#/694',
+'scx=nshu' => '#/701',
+'scx=nushu' => '#/701',
 'scx=nyiakengpuachuehmong' => 'Scx/Hmnp',
-'scx=ogam' => '#/695',
-'scx=ogham' => '#/695',
+'scx=ogam' => '#/702',
+'scx=ogham' => '#/702',
 'scx=olchiki' => '#/206',
 'scx=olck' => '#/206',
-'scx=oldhungarian' => '#/673',
-'scx=olditalic' => '#/674',
-'scx=oldnortharabian' => '#/383',
-'scx=oldpermic' => '#/701',
-'scx=oldpersian' => '#/728',
-'scx=oldsogdian' => '#/713',
-'scx=oldsoutharabian' => '#/384',
-'scx=oldturkic' => '#/696',
-'scx=olduyghur' => '#/699',
+'scx=oldhungarian' => '#/678',
+'scx=olditalic' => '#/679',
+'scx=oldnortharabian' => '#/387',
+'scx=oldpermic' => '#/708',
+'scx=oldpersian' => '#/735',
+'scx=oldsogdian' => '#/720',
+'scx=oldsoutharabian' => '#/388',
+'scx=oldturkic' => '#/703',
+'scx=olduyghur' => '#/706',
 'scx=oriya' => 'Scx/Orya',
-'scx=orkh' => '#/696',
+'scx=orkh' => '#/703',
 'scx=orya' => 'Scx/Orya',
-'scx=osage' => '#/697',
-'scx=osge' => '#/697',
-'scx=osma' => '#/698',
-'scx=osmanya' => '#/698',
-'scx=ougr' => '#/699',
+'scx=osage' => '#/704',
+'scx=osge' => '#/704',
+'scx=osma' => '#/705',
+'scx=osmanya' => '#/705',
+'scx=ougr' => '#/706',
 'scx=pahawhhmong' => 'Scx/Hmng',
 'scx=palm' => '#/279',
 'scx=palmyrene' => '#/279',
-'scx=pauc' => '#/700',
-'scx=paucinhau' => '#/700',
-'scx=perm' => '#/701',
-'scx=phag' => '#/702',
-'scx=phagspa' => '#/702',
-'scx=phli' => '#/703',
+'scx=pauc' => '#/707',
+'scx=paucinhau' => '#/707',
+'scx=perm' => '#/708',
+'scx=phag' => '#/709',
+'scx=phagspa' => '#/709',
+'scx=phli' => '#/710',
 'scx=phlp' => 'Scx/Phlp',
-'scx=phnx' => '#/704',
-'scx=phoenician' => '#/704',
-'scx=plrd' => '#/689',
-'scx=prti' => '#/705',
+'scx=phnx' => '#/711',
+'scx=phoenician' => '#/711',
+'scx=plrd' => '#/695',
+'scx=prti' => '#/712',
 'scx=psalterpahlavi' => 'Scx/Phlp',
 'scx=qaac' => 'Scx/Copt',
 'scx=qaai' => 'Scx/Zinh',
-'scx=rejang' => '#/706',
-'scx=rjng' => '#/706',
+'scx=rejang' => '#/713',
+'scx=rjng' => '#/713',
 'scx=rohg' => 'Scx/Rohg',
-'scx=runic' => '#/707',
-'scx=runr' => '#/707',
-'scx=samaritan' => '#/708',
-'scx=samr' => '#/708',
-'scx=sarb' => '#/384',
-'scx=saur' => '#/709',
-'scx=saurashtra' => '#/709',
-'scx=sgnw' => '#/710',
+'scx=runic' => '#/714',
+'scx=runr' => '#/714',
+'scx=samaritan' => '#/715',
+'scx=samr' => '#/715',
+'scx=sarb' => '#/388',
+'scx=saur' => '#/716',
+'scx=saurashtra' => '#/716',
+'scx=sgnw' => '#/717',
 'scx=sharada' => 'Scx/Shrd',
 'scx=shavian' => '#/210',
 'scx=shaw' => '#/210',
 'scx=shrd' => 'Scx/Shrd',
-'scx=sidd' => '#/711',
-'scx=siddham' => '#/711',
-'scx=signwriting' => '#/710',
+'scx=sidd' => '#/718',
+'scx=siddham' => '#/718',
+'scx=signwriting' => '#/717',
 'scx=sind' => 'Scx/Sind',
 'scx=sinh' => 'Scx/Sinh',
 'scx=sinhala' => 'Scx/Sinh',
-'scx=sogd' => '#/712',
-'scx=sogdian' => '#/712',
-'scx=sogo' => '#/713',
-'scx=sora' => '#/714',
-'scx=sorasompeng' => '#/714',
-'scx=soyo' => '#/715',
-'scx=soyombo' => '#/715',
-'scx=sund' => '#/716',
-'scx=sundanese' => '#/716',
-'scx=sylo' => '#/717',
-'scx=sylotinagri' => '#/717',
+'scx=sogd' => '#/719',
+'scx=sogdian' => '#/719',
+'scx=sogo' => '#/720',
+'scx=sora' => '#/721',
+'scx=sorasompeng' => '#/721',
+'scx=soyo' => '#/722',
+'scx=soyombo' => '#/722',
+'scx=sund' => '#/723',
+'scx=sundanese' => '#/723',
+'scx=sylo' => '#/724',
+'scx=sylotinagri' => '#/724',
 'scx=syrc' => 'Scx/Syrc',
 'scx=syriac' => 'Scx/Syrc',
-'scx=tagalog' => '#/721',
+'scx=tagalog' => '#/728',
 'scx=tagb' => 'Scx/Tagb',
 'scx=tagbanwa' => 'Scx/Tagb',
-'scx=taile' => '#/718',
+'scx=taile' => '#/725',
 'scx=taitham' => 'Scx/Lana',
-'scx=taiviet' => '#/719',
+'scx=taiviet' => '#/726',
 'scx=takr' => 'Scx/Takr',
 'scx=takri' => 'Scx/Takr',
-'scx=tale' => '#/718',
+'scx=tale' => '#/725',
 'scx=talu' => 'Scx/Talu',
 'scx=tamil' => 'Scx/Taml',
 'scx=taml' => 'Scx/Taml',
 'scx=tang' => 'Scx/Tang',
-'scx=tangsa' => '#/723',
+'scx=tangsa' => '#/730',
 'scx=tangut' => 'Scx/Tang',
-'scx=tavt' => '#/719',
+'scx=tavt' => '#/726',
 'scx=telu' => 'Scx/Telu',
 'scx=telugu' => 'Scx/Telu',
-'scx=tfng' => '#/720',
-'scx=tglg' => '#/721',
+'scx=tfng' => '#/727',
+'scx=tglg' => '#/728',
 'scx=thaa' => 'Scx/Thaa',
 'scx=thaana' => 'Scx/Thaa',
-'scx=thai' => '#/722',
+'scx=thai' => '#/729',
 'scx=tibetan' => 'Scx/Tibt',
 'scx=tibt' => 'Scx/Tibt',
-'scx=tifinagh' => '#/720',
+'scx=tifinagh' => '#/727',
 'scx=tirh' => 'Scx/Tirh',
 'scx=tirhuta' => 'Scx/Tirh',
-'scx=tnsa' => '#/723',
-'scx=toto' => '#/724',
-'scx=ugar' => '#/725',
-'scx=ugaritic' => '#/725',
+'scx=tnsa' => '#/730',
+'scx=toto' => '#/731',
+'scx=ugar' => '#/732',
+'scx=ugaritic' => '#/732',
 'scx=unknown' => 'Scx/Zzzz',
-'scx=vai' => '#/648',
-'scx=vaii' => '#/648',
+'scx=vai' => '#/653',
+'scx=vaii' => '#/653',
 'scx=vith' => 'Scx/Vith',
 'scx=vithkuqi' => 'Scx/Vith',
-'scx=wancho' => '#/727',
-'scx=wara' => '#/726',
-'scx=warangciti' => '#/726',
-'scx=wcho' => '#/727',
-'scx=xpeo' => '#/728',
+'scx=wancho' => '#/734',
+'scx=wara' => '#/733',
+'scx=warangciti' => '#/733',
+'scx=wcho' => '#/734',
+'scx=xpeo' => '#/735',
 'scx=xsux' => 'Scx/Xsux',
 'scx=yezi' => 'Scx/Yezi',
 'scx=yezidi' => 'Scx/Yezi',
 'scx=yi' => 'Scx/Yi',
 'scx=yiii' => 'Scx/Yi',
-'scx=zanabazarsquare' => '#/729',
-'scx=zanb' => '#/729',
+'scx=zanabazarsquare' => '#/736',
+'scx=zanb' => '#/736',
 'scx=zinh' => 'Scx/Zinh',
 'scx=zyyy' => 'Scx/Zyyy',
 'scx=zzzz' => 'Scx/Zzzz',
@@ -7213,39 +7286,39 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sd=yes' => 'SD/Y',
 'sentenceterminal' => 'STerm/Y',
 'separator' => 'Gc/Z',
-'sgnw' => '#/710',
+'sgnw' => '#/717',
 'sharada' => 'Scx/Shrd',
 'shavian' => '#/210',
 'shaw' => '#/210',
-'shorthandformatcontrols' => '#/426',
+'shorthandformatcontrols' => '#/431',
 'shrd' => 'Scx/Shrd',
-'sidd' => '#/711',
-'siddham' => '#/711',
-'signwriting' => '#/710',
+'sidd' => '#/718',
+'siddham' => '#/718',
+'signwriting' => '#/717',
 'sind' => 'Scx/Sind',
 'sinh' => 'Scx/Sinh',
 'sinhala' => 'Scx/Sinh',
-'sinhalaarchaicnumbers' => '#/421',
+'sinhalaarchaicnumbers' => '#/426',
 'sk' => 'Gc/Sk',
 'sm' => 'Gc/Sm',
-'smallforms' => '#/304',
-'smallformvariants' => '#/304',
-'smallkanaext' => '#/352',
-'smallkanaextension' => '#/352',
+'smallforms' => '#/306',
+'smallformvariants' => '#/306',
+'smallkanaext' => '#/355',
+'smallkanaextension' => '#/355',
 'so' => 'Gc/So',
 'softdotted' => 'SD/Y',
-'sogd' => '#/712',
-'sogdian' => '#/712',
-'sogo' => '#/713',
-'sora' => '#/714',
-'sorasompeng' => '#/714',
-'soyo' => '#/715',
-'soyombo' => '#/715',
+'sogd' => '#/719',
+'sogdian' => '#/719',
+'sogo' => '#/720',
+'sora' => '#/721',
+'sorasompeng' => '#/721',
+'soyo' => '#/722',
+'soyombo' => '#/722',
 'space' => 'Perl/SpacePer',
 'spaceperl' => 'Perl/SpacePer',
 'spaceseparator' => 'Gc/Zs',
 'spacingmark' => 'Gc/Mc',
-'spacingmodifierletters' => '#/382',
+'spacingmodifierletters' => '#/386',
 'specials' => '#/247',
 'sterm' => 'STerm/Y',
 'sterm=f' => '!STerm/Y',
@@ -7256,64 +7329,64 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'sterm=true' => 'STerm/Y',
 'sterm=y' => 'STerm/Y',
 'sterm=yes' => 'STerm/Y',
-'sund' => '#/716',
-'sundanese' => '#/716',
-'sundanesesup' => '#/353',
-'sundanesesupplement' => '#/353',
-'suparrowsa' => '#/305',
-'suparrowsb' => '#/306',
-'suparrowsc' => '#/307',
-'superandsub' => '#/332',
-'superscriptsandsubscripts' => '#/332',
-'supmathoperators' => '#/397',
-'supplementalarrowsa' => '#/305',
-'supplementalarrowsb' => '#/306',
-'supplementalarrowsc' => '#/307',
-'supplementalmathematicaloperators' => '#/397',
-'supplementalpunctuation' => '#/373',
-'supplementalsymbolsandpictographs' => '#/427',
+'sund' => '#/723',
+'sundanese' => '#/723',
+'sundanesesup' => '#/356',
+'sundanesesupplement' => '#/356',
+'suparrowsa' => '#/307',
+'suparrowsb' => '#/308',
+'suparrowsc' => '#/309',
+'superandsub' => '#/334',
+'superscriptsandsubscripts' => '#/334',
+'supmathoperators' => '#/402',
+'supplementalarrowsa' => '#/307',
+'supplementalarrowsb' => '#/308',
+'supplementalarrowsc' => '#/309',
+'supplementalmathematicaloperators' => '#/402',
+'supplementalpunctuation' => '#/377',
+'supplementalsymbolsandpictographs' => '#/432',
 'supplementaryprivateuseareaa' => '#/215',
 'supplementaryprivateuseareab' => '#/216',
 'suppuaa' => '#/215',
 'suppuab' => '#/216',
-'suppunctuation' => '#/373',
-'supsymbolsandpictographs' => '#/427',
+'suppunctuation' => '#/377',
+'supsymbolsandpictographs' => '#/432',
 'surrogate' => '#/14',
-'suttonsignwriting' => '#/404',
-'sylo' => '#/717',
-'sylotinagri' => '#/717',
+'suttonsignwriting' => '#/409',
+'sylo' => '#/724',
+'sylotinagri' => '#/724',
 'symbol' => 'Gc/S',
-'symbolsandpictographsexta' => '#/428',
-'symbolsandpictographsextendeda' => '#/428',
-'symbolsforlegacycomputing' => '#/429',
+'symbolsandpictographsexta' => '#/433',
+'symbolsandpictographsextendeda' => '#/433',
+'symbolsforlegacycomputing' => '#/434',
 'syrc' => 'Scx/Syrc',
 'syriac' => 'Scx/Syrc',
 'syriacsup' => '#/283',
 'syriacsupplement' => '#/283',
-'tagalog' => '#/721',
+'tagalog' => '#/728',
 'tagb' => 'Scx/Tagb',
 'tagbanwa' => 'Scx/Tagb',
-'tags' => '#/128',
-'taile' => '#/718',
+'tags' => '#/127',
+'taile' => '#/725',
 'taitham' => 'Scx/Lana',
-'taiviet' => '#/719',
-'taixuanjing' => '#/334',
-'taixuanjingsymbols' => '#/334',
+'taiviet' => '#/726',
+'taixuanjing' => '#/336',
+'taixuanjingsymbols' => '#/336',
 'takr' => 'Scx/Takr',
 'takri' => 'Scx/Takr',
-'tale' => '#/718',
+'tale' => '#/725',
 'talu' => 'Scx/Talu',
 'tamil' => 'Scx/Taml',
 'tamilsup' => '#/249',
 'tamilsupplement' => '#/249',
 'taml' => 'Scx/Taml',
 'tang' => 'Scx/Tang',
-'tangsa' => '#/723',
+'tangsa' => '#/730',
 'tangut' => 'Scx/Tang',
-'tangutcomponents' => '#/398',
+'tangutcomponents' => '#/403',
 'tangutsup' => '#/284',
 'tangutsupplement' => '#/284',
-'tavt' => '#/719',
+'tavt' => '#/726',
 'telu' => 'Scx/Telu',
 'telugu' => 'Scx/Telu',
 'term' => 'Term/Y',
@@ -7326,28 +7399,28 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'term=y' => 'Term/Y',
 'term=yes' => 'Term/Y',
 'terminalpunctuation' => 'Term/Y',
-'tfng' => '#/720',
-'tglg' => '#/721',
+'tfng' => '#/727',
+'tglg' => '#/728',
 'thaa' => 'Scx/Thaa',
 'thaana' => 'Scx/Thaa',
-'thai' => '#/722',
+'thai' => '#/729',
 'tibetan' => 'Scx/Tibt',
 'tibt' => 'Scx/Tibt',
-'tifinagh' => '#/720',
+'tifinagh' => '#/727',
 'tirh' => 'Scx/Tirh',
 'tirhuta' => 'Scx/Tirh',
 'title' => 'Perl/Title',
 'titlecase' => 'Perl/Title',
 'titlecaseletter' => 'Perl/Title',
-'tnsa' => '#/723',
-'toto' => '#/724',
-'transportandmap' => '#/385',
-'transportandmapsymbols' => '#/385',
-'ucas' => '#/131',
+'tnsa' => '#/730',
+'toto' => '#/731',
+'transportandmap' => '#/389',
+'transportandmapsymbols' => '#/389',
+'ucas' => '#/130',
 'ucasext' => '#/222',
 'ucasexta' => '#/251',
-'ugar' => '#/725',
-'ugaritic' => '#/725',
+'ugar' => '#/732',
+'ugaritic' => '#/732',
 'uideo' => 'UIdeo/Y',
 'uideo=f' => '!UIdeo/Y',
 'uideo=false' => '!UIdeo/Y',
@@ -7359,7 +7432,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'uideo=yes' => 'UIdeo/Y',
 'unassigned' => 'Gc/Cn',
 'unicode' => '#/2',
-'unifiedcanadianaboriginalsyllabics' => '#/131',
+'unifiedcanadianaboriginalsyllabics' => '#/130',
 'unifiedcanadianaboriginalsyllabicsextended' => '#/222',
 'unifiedcanadianaboriginalsyllabicsextendeda' => '#/251',
 'unifiedideograph' => 'UIdeo/Y',
@@ -7375,14 +7448,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'upper=yes' => 'Upper/Y',
 'uppercase' => 'Upper/Y',
 'uppercaseletter' => 'Gc/Lu',
-'vai' => '#/648',
-'vaii' => '#/648',
+'vai' => '#/653',
+'vaii' => '#/653',
 'variationselector' => 'VS/Y',
-'variationselectors' => '#/111',
-'variationselectorssupplement' => '#/150',
+'variationselectors' => '#/109',
+'variationselectorssupplement' => '#/149',
 'vedicext' => '#/253',
 'vedicextensions' => '#/253',
-'verticalforms' => '#/362',
+'verticalforms' => '#/365',
 'vertspace' => '#/4',
 'vith' => 'Scx/Vith',
 'vithkuqi' => 'Scx/Vith',
@@ -7403,14 +7476,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'vs=true' => 'VS/Y',
 'vs=y' => 'VS/Y',
 'vs=yes' => 'VS/Y',
-'vssup' => '#/150',
-'wancho' => '#/727',
-'wara' => '#/726',
-'warangciti' => '#/726',
+'vssup' => '#/149',
+'wancho' => '#/734',
+'wara' => '#/733',
+'warangciti' => '#/733',
 'wb=aletter' => 'WB/LE',
 'wb=cr' => '#/66',
-'wb=doublequote' => '#/94',
-'wb=dq' => '#/94',
+'wb=doublequote' => '#/92',
+'wb=dq' => '#/92',
 'wb=eb' => '#/0',
 'wb=ebase' => '#/0',
 'wb=ebasegaz' => '#/0',
@@ -7436,19 +7509,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'wb=midnumlet' => 'WB/MB',
 'wb=ml' => 'WB/ML',
 'wb=mn' => 'WB/MN',
-'wb=newline' => '#/95',
-'wb=nl' => '#/95',
+'wb=newline' => '#/93',
+'wb=nl' => '#/93',
 'wb=nu' => 'WB/NU',
 'wb=numeric' => 'WB/NU',
 'wb=other' => 'WB/XX',
 'wb=regionalindicator' => '#/68',
 'wb=ri' => '#/68',
-'wb=singlequote' => '#/96',
-'wb=sq' => '#/96',
+'wb=singlequote' => '#/94',
+'wb=sq' => '#/94',
 'wb=wsegspace' => 'WB/WSegSpac',
 'wb=xx' => 'WB/XX',
 'wb=zwj' => '#/69',
-'wcho' => '#/727',
+'wcho' => '#/734',
 'whitespace' => 'Perl/SpacePer',
 'word' => 'Perl/Word',
 'wspace' => 'Perl/SpacePer',
@@ -7481,12 +7554,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'xids=y' => 'XIDS/Y',
 'xids=yes' => 'XIDS/Y',
 'xidstart' => 'XIDS/Y',
-'xpeo' => '#/728',
+'xpeo' => '#/735',
 'xperlspace' => 'Perl/SpacePer',
 'xposixalnum' => 'Perl/Alnum',
 'xposixalpha' => 'Alpha/Y',
 'xposixblank' => 'Perl/Blank',
-'xposixcntrl' => '#/434',
+'xposixcntrl' => '#/439',
 'xposixdigit' => 'Gc/Nd',
 'xposixgraph' => 'Perl/Graph',
 'xposixlower' => 'Lower/Y',
@@ -7501,18 +7574,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
 'yezidi' => 'Scx/Yezi',
 'yi' => 'Scx/Yi',
 'yiii' => 'Scx/Yi',
-'yijing' => '#/179',
-'yijinghexagramsymbols' => '#/179',
-'yiradicals' => '#/309',
-'yisyllables' => '#/335',
+'yijing' => '#/178',
+'yijinghexagramsymbols' => '#/178',
+'yiradicals' => '#/311',
+'yisyllables' => '#/337',
 'z' => 'Gc/Z',
-'zanabazarsquare' => '#/729',
-'zanb' => '#/729',
+'zanabazarsquare' => '#/736',
+'zanb' => '#/736',
 'zinh' => 'Scx/Zinh',
-'zl' => '#/436',
-'znamennymusic' => '#/363',
-'znamennymusicalnotation' => '#/363',
-'zp' => '#/437',
+'zl' => '#/441',
+'znamennymusic' => '#/366',
+'znamennymusicalnotation' => '#/366',
+'zp' => '#/442',
 'zs' => 'Gc/Zs',
 'zyyy' => 'Scx/Zyyy',
 'zzzz' => 'Scx/Zzzz',
@@ -7575,7 +7648,7 @@ $Unicode::UCD::e_precision = 3;
 # the table, so as to avoid duplication, as many property names can map to the
 # file, but we only need one entry for all of them.
 %Unicode::UCD::why_deprecated = (
-'#/528' => 'Surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
+'#/533' => 'Surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
 'Hyphen/T' => 'Supplanted by Line_Break property values; see www.unicode.org/reports/tr14',
 );
 
@@ -7778,6 +7851,7 @@ $Unicode::UCD::e_precision = 3;
 'age=12.1' => '12.1',
 'age=13.0' => '13.0',
 'age=14.0' => '14.0',
+'age=15.0' => '15.0',
 'age=2.0' => '2.0',
 'age=2.1' => '2.1',
 'age=3.0' => '3.0',
@@ -7804,6 +7878,7 @@ $Unicode::UCD::e_precision = 3;
 'age=v121' => '12.1',
 'age=v130' => '13.0',
 'age=v140' => '14.0',
+'age=v150' => '15.0',
 'age=v20' => '2.0',
 'age=v21' => '2.1',
 'age=v30' => '3.0',
@@ -7914,8 +7989,10 @@ $Unicode::UCD::e_precision = 3;
 'blk=arabic' => 'arabic',
 'blk=arabicexta' => 'arabicexta',
 'blk=arabicextb' => 'arabicextb',
+'blk=arabicextc' => 'arabicextc',
 'blk=arabicextendeda' => 'arabicexta',
 'blk=arabicextendedb' => 'arabicextb',
+'blk=arabicextendedc' => 'arabicextc',
 'blk=arabicmath' => 'arabicmath',
 'blk=arabicmathematicalalphabeticsymbols' => 'arabicmath',
 'blk=arabicpfa' => 'arabicpfa',
@@ -7975,6 +8052,7 @@ $Unicode::UCD::e_precision = 3;
 'blk=cjkexte' => 'cjkexte',
 'blk=cjkextf' => 'cjkextf',
 'blk=cjkextg' => 'cjkextg',
+'blk=cjkexth' => 'cjkexth',
 'blk=cjkradicalssup' => 'cjkradicalssup',
 'blk=cjkradicalssupplement' => 'cjkradicalssup',
 'blk=cjkstrokes' => 'cjkstrokes',
@@ -7988,6 +8066,7 @@ $Unicode::UCD::e_precision = 3;
 'blk=cjkunifiedideographsextensione' => 'cjkexte',
 'blk=cjkunifiedideographsextensionf' => 'cjkextf',
 'blk=cjkunifiedideographsextensiong' => 'cjkextg',
+'blk=cjkunifiedideographsextensionh' => 'cjkexth',
 'blk=combiningdiacriticalmarks' => 'diacriticals',
 'blk=combiningdiacriticalmarksextended' => 'diacriticalsext',
 'blk=combiningdiacriticalmarksforsymbols' => 'diacriticalsforsymbols',
@@ -8011,16 +8090,20 @@ $Unicode::UCD::e_precision = 3;
 'blk=cyrillicexta' => 'cyrillicexta',
 'blk=cyrillicextb' => 'cyrillicextb',
 'blk=cyrillicextc' => 'cyrillicextc',
+'blk=cyrillicextd' => 'cyrillicextd',
 'blk=cyrillicextendeda' => 'cyrillicexta',
 'blk=cyrillicextendedb' => 'cyrillicextb',
 'blk=cyrillicextendedc' => 'cyrillicextc',
+'blk=cyrillicextendedd' => 'cyrillicextd',
 'blk=cyrillicsup' => 'cyrillicsup',
 'blk=cyrillicsupplement' => 'cyrillicsup',
 'blk=cyrillicsupplementary' => 'cyrillicsup',
 'blk=deseret' => 'deseret',
 'blk=devanagari' => 'devanagari',
 'blk=devanagariext' => 'devanagariext',
+'blk=devanagariexta' => 'devanagariexta',
 'blk=devanagariextended' => 'devanagariext',
+'blk=devanagariextendeda' => 'devanagariexta',
 'blk=diacriticals' => 'diacriticals',
 'blk=diacriticalsext' => 'diacriticalsext',
 'blk=diacriticalsforsymbols' => 'diacriticalsforsymbols',
@@ -8108,6 +8191,7 @@ $Unicode::UCD::e_precision = 3;
 'blk=jamoextb' => 'jamoextb',
 'blk=javanese' => 'javanese',
 'blk=kaithi' => 'kaithi',
+'blk=kaktoviknumerals' => 'kaktoviknumerals',
 'blk=kanaexta' => 'kanaexta',
 'blk=kanaextb' => 'kanaextb',
 'blk=kanaextendeda' => 'kanaexta',
@@ -8121,6 +8205,7 @@ $Unicode::UCD::e_precision = 3;
 'blk=katakana' => 'katakana',
 'blk=katakanaext' => 'katakanaext',
 'blk=katakanaphoneticextensions' => 'katakanaext',
+'blk=kawi' => 'kawi',
 'blk=kayahli' => 'kayahli',
 'blk=kharoshthi' => 'kharoshthi',
 'blk=khitansmallscript' => 'khitansmallscript',
@@ -8210,6 +8295,7 @@ $Unicode::UCD::e_precision = 3;
 'blk=myanmarextendeda' => 'myanmarexta',
 'blk=myanmarextendedb' => 'myanmarextb',
 'blk=nabataean' => 'nabataean',
+'blk=nagmundari' => 'nagmundari',
 'blk=nandinagari' => 'nandinagari',
 'blk=nb' => 'nb',
 'blk=newa' => 'newa',
@@ -8928,6 +9014,7 @@ $Unicode::UCD::e_precision = 3;
 'in=12.1' => '12.1',
 'in=13.0' => '13.0',
 'in=14.0' => '14.0',
+'in=15.0' => '15.0',
 'in=2.0' => '2.0',
 'in=2.1' => '2.1',
 'in=3.0' => '3.0',
@@ -8954,6 +9041,7 @@ $Unicode::UCD::e_precision = 3;
 'in=v121' => '12.1',
 'in=v130' => '13.0',
 'in=v140' => '14.0',
+'in=v150' => '15.0',
 'in=v20' => '2.0',
 'in=v21' => '2.1',
 'in=v30' => '3.0',
@@ -9626,6 +9714,7 @@ $Unicode::UCD::e_precision = 3;
 'sc=kana' => 'kana',
 'sc=kannada' => 'knda',
 'sc=katakana' => 'kana',
+'sc=kawi' => 'kawi',
 'sc=kayahli' => 'kali',
 'sc=khar' => 'khar',
 'sc=kharoshthi' => 'khar',
@@ -9690,6 +9779,8 @@ $Unicode::UCD::e_precision = 3;
 'sc=myanmar' => 'mymr',
 'sc=mymr' => 'mymr',
 'sc=nabataean' => 'nbat',
+'sc=nagm' => 'nagm',
+'sc=nagmundari' => 'nagm',
 'sc=nand' => 'nand',
 'sc=nandinagari' => 'nand',
 'sc=narb' => 'narb',
@@ -9945,6 +10036,7 @@ $Unicode::UCD::e_precision = 3;
 'scx=kana' => 'kana',
 'scx=kannada' => 'knda',
 'scx=katakana' => 'kana',
+'scx=kawi' => 'kawi',
 'scx=kayahli' => 'kali',
 'scx=khar' => 'khar',
 'scx=kharoshthi' => 'khar',
@@ -10009,6 +10101,8 @@ $Unicode::UCD::e_precision = 3;
 'scx=myanmar' => 'mymr',
 'scx=mymr' => 'mymr',
 'scx=nabataean' => 'nbat',
+'scx=nagm' => 'nagm',
+'scx=nagmundari' => 'nagm',
 'scx=nand' => 'nand',
 'scx=nandinagari' => 'nand',
 'scx=narb' => 'narb',
@@ -11096,6 +11190,11 @@ $Unicode::UCD::e_precision = 3;
 '14.0',
 'V14_0',
 ],
+'15.0' => 
+[
+'15.0',
+'V15_0',
+],
 '2.0' => 
 [
 '2.0',
@@ -11428,6 +11527,11 @@ $Unicode::UCD::e_precision = 3;
 'Arabic_Ext_B',
 'Arabic_Extended_B',
 ],
+'arabicextc' => 
+[
+'Arabic_Ext_C',
+'Arabic_Extended_C',
+],
 'arabicmath' => 
 [
 'Arabic_Math',
@@ -11626,6 +11730,11 @@ $Unicode::UCD::e_precision = 3;
 'CJK_Ext_G',
 'CJK_Unified_Ideographs_Extension_G',
 ],
+'cjkexth' => 
+[
+'CJK_Ext_H',
+'CJK_Unified_Ideographs_Extension_H',
+],
 'cjkradicalssup' => 
 [
 'CJK_Radicals_Sup',
@@ -11702,6 +11811,11 @@ $Unicode::UCD::e_precision = 3;
 'Cyrillic_Ext_C',
 'Cyrillic_Extended_C',
 ],
+'cyrillicextd' => 
+[
+'Cyrillic_Ext_D',
+'Cyrillic_Extended_D',
+],
 'cyrillicsup' => 
 [
 'Cyrillic_Sup',
@@ -11721,6 +11835,11 @@ $Unicode::UCD::e_precision = 3;
 'Devanagari_Ext',
 'Devanagari_Extended',
 ],
+'devanagariexta' => 
+[
+'Devanagari_Ext_A',
+'Devanagari_Extended_A',
+],
 'diacriticals' => 
 [
 'Diacriticals',
@@ -11996,6 +12115,10 @@ $Unicode::UCD::e_precision = 3;
 [
 'Kaithi',
 ],
+'kaktoviknumerals' => 
+[
+'Kaktovik_Numerals',
+],
 'kanaexta' => 
 [
 'Kana_Ext_A',
@@ -12033,6 +12156,10 @@ $Unicode::UCD::e_precision = 3;
 'Katakana_Ext',
 'Katakana_Phonetic_Extensions',
 ],
+'kawi' => 
+[
+'Kawi',
+],
 'kayahli' => 
 [
 'Kayah_Li',
@@ -12315,6 +12442,10 @@ $Unicode::UCD::e_precision = 3;
 [
 'Nabataean',
 ],
+'nagmundari' => 
+[
+'Nag_Mundari',
+],
 'nandinagari' => 
 [
 'Nandinagari',
@@ -14223,6 +14354,12 @@ $Unicode::UCD::e_precision = 3;
 '14.0',
 'V14_0',
 ],
+'15.0' => 
+[
+'15.0',
+'15.0',
+'V15_0',
+],
 '2.0' => 
 [
 '2.0',
@@ -16440,6 +16577,10 @@ $Unicode::UCD::e_precision = 3;
 'Kana',
 'Katakana',
 ],
+'kawi' => 
+[
+'Kawi',
+],
 'khar' => 
 [
 'Khar',
@@ -16598,6 +16739,11 @@ $Unicode::UCD::e_precision = 3;
 'Mymr',
 'Myanmar',
 ],
+'nagm' => 
+[
+'Nagm',
+'Nag_Mundari',
+],
 'nand' => 
 [
 'Nand',
@@ -17253,6 +17399,10 @@ $Unicode::UCD::e_precision = 3;
 'Kana',
 'Katakana',
 ],
+'kawi' => 
+[
+'Kawi',
+],
 'khar' => 
 [
 'Khar',
@@ -17411,6 +17561,11 @@ $Unicode::UCD::e_precision = 3;
 'Mymr',
 'Myanmar',
 ],
+'nagm' => 
+[
+'Nagm',
+'Nag_Mundari',
+],
 'nand' => 
 [
 'Nand',
@@ -18107,7 +18262,7 @@ $Unicode::UCD::e_precision = 3;
 'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
 },
 {
-'high' => 177976,
+'high' => 177977,
 'low' => 173824,
 'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
 },
@@ -18134,6 +18289,11 @@ $Unicode::UCD::e_precision = 3;
 {
 'high' => 201546,
 'low' => 196608,
+'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
+},
+{
+'high' => 205743,
+'low' => 201552,
 'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
 },
 ,
Index: gnu/usr.bin/perl/lib/unicore/UnicodeData.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/UnicodeData.txt,v
diff -u -p -a -u -p -r1.6 UnicodeData.txt
--- gnu/usr.bin/perl/lib/unicore/UnicodeData.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/UnicodeData.txt	21 Feb 2024 15:47:02 -0000
@@ -2975,6 +2975,7 @@
 0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
 0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+0CF3;KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT;Mc;0;L;;;;;N;;;;;
 0D00;MALAYALAM SIGN COMBINING ANUSVARA ABOVE;Mn;0;NSM;;;;;N;;;;;
 0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
@@ -3339,6 +3340,7 @@
 0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
 0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
 0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ECE;LAO YAMAKKAN;Mn;0;NSM;;;;;N;;;;;
 0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
 0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
 0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -19393,6 +19395,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 10EAD;YEZIDI HYPHENATION MARK;Pd;0;R;;;;;N;;;;;
 10EB0;YEZIDI LETTER LAM WITH DOT ABOVE;Lo;0;R;;;;;N;;;;;
 10EB1;YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE;Lo;0;R;;;;;N;;;;;
+10EFD;ARABIC SMALL LOW WORD SAKTA;Mn;220;NSM;;;;;N;;;;;
+10EFE;ARABIC SMALL LOW WORD QASR;Mn;220;NSM;;;;;N;;;;;
+10EFF;ARABIC SMALL LOW WORD MADDA;Mn;220;NSM;;;;;N;;;;;
 10F00;OLD SOGDIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
 10F01;OLD SOGDIAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
 10F02;OLD SOGDIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
@@ -20058,6 +20063,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
 1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
 1123E;KHOJKI SIGN SUKUN;Mn;0;NSM;;;;;N;;;;;
+1123F;KHOJKI LETTER QA;Lo;0;L;;;;;N;;;;;
+11240;KHOJKI LETTER SHORT I;Lo;0;L;;;;;N;;;;;
+11241;KHOJKI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
 11280;MULTANI LETTER A;Lo;0;L;;;;;N;;;;;
 11281;MULTANI LETTER I;Lo;0;L;;;;;N;;;;;
 11282;MULTANI LETTER U;Lo;0;L;;;;;N;;;;;
@@ -21256,6 +21264,16 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
 11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;;
 11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
+11B00;DEVANAGARI HEAD MARK;Po;0;L;;;;;N;;;;;
+11B01;DEVANAGARI HEAD MARK WITH HEADSTROKE;Po;0;L;;;;;N;;;;;
+11B02;DEVANAGARI SIGN BHALE;Po;0;L;;;;;N;;;;;
+11B03;DEVANAGARI SIGN BHALE WITH HOOK;Po;0;L;;;;;N;;;;;
+11B04;DEVANAGARI SIGN EXTENDED BHALE;Po;0;L;;;;;N;;;;;
+11B05;DEVANAGARI SIGN EXTENDED BHALE WITH HOOK;Po;0;L;;;;;N;;;;;
+11B06;DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B07;DEVANAGARI SIGN WESTERN NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B08;DEVANAGARI SIGN REVERSED NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B09;DEVANAGARI SIGN MINDU;Po;0;L;;;;;N;;;;;
 11C00;BHAIKSUKI LETTER A;Lo;0;L;;;;;N;;;;;
 11C01;BHAIKSUKI LETTER AA;Lo;0;L;;;;;N;;;;;
 11C02;BHAIKSUKI LETTER I;Lo;0;L;;;;;N;;;;;
@@ -21584,6 +21602,92 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
 11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;;
 11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;;
+11F00;KAWI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11F01;KAWI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11F02;KAWI SIGN REPHA;Lo;0;L;;;;;N;;;;;
+11F03;KAWI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11F04;KAWI LETTER A;Lo;0;L;;;;;N;;;;;
+11F05;KAWI LETTER AA;Lo;0;L;;;;;N;;;;;
+11F06;KAWI LETTER I;Lo;0;L;;;;;N;;;;;
+11F07;KAWI LETTER II;Lo;0;L;;;;;N;;;;;
+11F08;KAWI LETTER U;Lo;0;L;;;;;N;;;;;
+11F09;KAWI LETTER UU;Lo;0;L;;;;;N;;;;;
+11F0A;KAWI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11F0B;KAWI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11F0C;KAWI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11F0D;KAWI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+11F0E;KAWI LETTER E;Lo;0;L;;;;;N;;;;;
+11F0F;KAWI LETTER AI;Lo;0;L;;;;;N;;;;;
+11F10;KAWI LETTER O;Lo;0;L;;;;;N;;;;;
+11F12;KAWI LETTER KA;Lo;0;L;;;;;N;;;;;
+11F13;KAWI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11F14;KAWI LETTER GA;Lo;0;L;;;;;N;;;;;
+11F15;KAWI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11F16;KAWI LETTER NGA;Lo;0;L;;;;;N;;;;;
+11F17;KAWI LETTER CA;Lo;0;L;;;;;N;;;;;
+11F18;KAWI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11F19;KAWI LETTER JA;Lo;0;L;;;;;N;;;;;
+11F1A;KAWI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11F1B;KAWI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11F1C;KAWI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11F1D;KAWI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11F1E;KAWI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11F1F;KAWI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11F20;KAWI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11F21;KAWI LETTER TA;Lo;0;L;;;;;N;;;;;
+11F22;KAWI LETTER THA;Lo;0;L;;;;;N;;;;;
+11F23;KAWI LETTER DA;Lo;0;L;;;;;N;;;;;
+11F24;KAWI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11F25;KAWI LETTER NA;Lo;0;L;;;;;N;;;;;
+11F26;KAWI LETTER PA;Lo;0;L;;;;;N;;;;;
+11F27;KAWI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11F28;KAWI LETTER BA;Lo;0;L;;;;;N;;;;;
+11F29;KAWI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11F2A;KAWI LETTER MA;Lo;0;L;;;;;N;;;;;
+11F2B;KAWI LETTER YA;Lo;0;L;;;;;N;;;;;
+11F2C;KAWI LETTER RA;Lo;0;L;;;;;N;;;;;
+11F2D;KAWI LETTER LA;Lo;0;L;;;;;N;;;;;
+11F2E;KAWI LETTER WA;Lo;0;L;;;;;N;;;;;
+11F2F;KAWI LETTER SHA;Lo;0;L;;;;;N;;;;;
+11F30;KAWI LETTER SSA;Lo;0;L;;;;;N;;;;;
+11F31;KAWI LETTER SA;Lo;0;L;;;;;N;;;;;
+11F32;KAWI LETTER HA;Lo;0;L;;;;;N;;;;;
+11F33;KAWI LETTER JNYA;Lo;0;L;;;;;N;;;;;
+11F34;KAWI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11F35;KAWI VOWEL SIGN ALTERNATE AA;Mc;0;L;;;;;N;;;;;
+11F36;KAWI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+11F37;KAWI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+11F38;KAWI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11F39;KAWI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+11F3A;KAWI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+11F3E;KAWI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+11F3F;KAWI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+11F40;KAWI VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;;
+11F41;KAWI SIGN KILLER;Mc;9;L;;;;;N;;;;;
+11F42;KAWI CONJOINER;Mn;9;NSM;;;;;N;;;;;
+11F43;KAWI DANDA;Po;0;L;;;;;N;;;;;
+11F44;KAWI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11F45;KAWI PUNCTUATION SECTION MARKER;Po;0;L;;;;;N;;;;;
+11F46;KAWI PUNCTUATION ALTERNATE SECTION MARKER;Po;0;L;;;;;N;;;;;
+11F47;KAWI PUNCTUATION FLOWER;Po;0;L;;;;;N;;;;;
+11F48;KAWI PUNCTUATION SPACE FILLER;Po;0;L;;;;;N;;;;;
+11F49;KAWI PUNCTUATION DOT;Po;0;L;;;;;N;;;;;
+11F4A;KAWI PUNCTUATION DOUBLE DOT;Po;0;L;;;;;N;;;;;
+11F4B;KAWI PUNCTUATION TRIPLE DOT;Po;0;L;;;;;N;;;;;
+11F4C;KAWI PUNCTUATION CIRCLE;Po;0;L;;;;;N;;;;;
+11F4D;KAWI PUNCTUATION FILLED CIRCLE;Po;0;L;;;;;N;;;;;
+11F4E;KAWI PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;;
+11F4F;KAWI PUNCTUATION CLOSING SPIRAL;Po;0;L;;;;;N;;;;;
+11F50;KAWI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11F51;KAWI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11F52;KAWI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11F53;KAWI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11F54;KAWI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11F55;KAWI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11F56;KAWI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11F57;KAWI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11F58;KAWI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11F59;KAWI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 11FB0;LISU LETTER YHA;Lo;0;L;;;;;N;;;;;
 11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;;
 11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;;
@@ -24040,6 +24144,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;;
 1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;;
 1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;;
+1342F;EGYPTIAN HIEROGLYPH V011D;Lo;0;L;;;;;N;;;;;
 13430;EGYPTIAN HIEROGLYPH VERTICAL JOINER;Cf;0;L;;;;;N;;;;;
 13431;EGYPTIAN HIEROGLYPH HORIZONTAL JOINER;Cf;0;L;;;;;N;;;;;
 13432;EGYPTIAN HIEROGLYPH INSERT AT TOP START;Cf;0;L;;;;;N;;;;;
@@ -24049,6 +24154,35 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 13436;EGYPTIAN HIEROGLYPH OVERLAY MIDDLE;Cf;0;L;;;;;N;;;;;
 13437;EGYPTIAN HIEROGLYPH BEGIN SEGMENT;Cf;0;L;;;;;N;;;;;
 13438;EGYPTIAN HIEROGLYPH END SEGMENT;Cf;0;L;;;;;N;;;;;
+13439;EGYPTIAN HIEROGLYPH INSERT AT MIDDLE;Cf;0;L;;;;;N;;;;;
+1343A;EGYPTIAN HIEROGLYPH INSERT AT TOP;Cf;0;L;;;;;N;;;;;
+1343B;EGYPTIAN HIEROGLYPH INSERT AT BOTTOM;Cf;0;L;;;;;N;;;;;
+1343C;EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343D;EGYPTIAN HIEROGLYPH END ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343E;EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343F;EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;;
+13440;EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY;Mn;0;NSM;;;;;N;;;;;
+13441;EGYPTIAN HIEROGLYPH FULL BLANK;Lo;0;L;;;;;N;;;;;
+13442;EGYPTIAN HIEROGLYPH HALF BLANK;Lo;0;L;;;;;N;;;;;
+13443;EGYPTIAN HIEROGLYPH LOST SIGN;Lo;0;L;;;;;N;;;;;
+13444;EGYPTIAN HIEROGLYPH HALF LOST SIGN;Lo;0;L;;;;;N;;;;;
+13445;EGYPTIAN HIEROGLYPH TALL LOST SIGN;Lo;0;L;;;;;N;;;;;
+13446;EGYPTIAN HIEROGLYPH WIDE LOST SIGN;Lo;0;L;;;;;N;;;;;
+13447;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START;Mn;0;NSM;;;;;N;;;;;
+13448;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START;Mn;0;NSM;;;;;N;;;;;
+13449;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START;Mn;0;NSM;;;;;N;;;;;
+1344A;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END;Mn;0;NSM;;;;;N;;;;;
+1344B;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP;Mn;0;NSM;;;;;N;;;;;
+1344C;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END;Mn;0;NSM;;;;;N;;;;;
+1344D;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP;Mn;0;NSM;;;;;N;;;;;
+1344E;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END;Mn;0;NSM;;;;;N;;;;;
+1344F;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END;Mn;0;NSM;;;;;N;;;;;
+13450;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM;Mn;0;NSM;;;;;N;;;;;
+13451;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM;Mn;0;NSM;;;;;N;;;;;
+13452;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END;Mn;0;NSM;;;;;N;;;;;
+13453;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END;Mn;0;NSM;;;;;N;;;;;
+13454;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END;Mn;0;NSM;;;;;N;;;;;
+13455;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED;Mn;0;NSM;;;;;N;;;;;
 14400;ANATOLIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
 14401;ANATOLIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
 14402;ANATOLIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -27289,9 +27423,11 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1B120;KATAKANA LETTER ARCHAIC YI;Lo;0;L;;;;;N;;;;;
 1B121;KATAKANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
 1B122;KATAKANA LETTER ARCHAIC WU;Lo;0;L;;;;;N;;;;;
+1B132;HIRAGANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;;
 1B150;HIRAGANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
 1B151;HIRAGANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
 1B152;HIRAGANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
+1B155;KATAKANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;;
 1B164;KATAKANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
 1B165;KATAKANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
 1B166;KATAKANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
@@ -28573,6 +28709,26 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
 1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
 1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D2C0;KAKTOVIK NUMERAL ZERO;No;0;L;;;;0;N;;;;;
+1D2C1;KAKTOVIK NUMERAL ONE;No;0;L;;;;1;N;;;;;
+1D2C2;KAKTOVIK NUMERAL TWO;No;0;L;;;;2;N;;;;;
+1D2C3;KAKTOVIK NUMERAL THREE;No;0;L;;;;3;N;;;;;
+1D2C4;KAKTOVIK NUMERAL FOUR;No;0;L;;;;4;N;;;;;
+1D2C5;KAKTOVIK NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+1D2C6;KAKTOVIK NUMERAL SIX;No;0;L;;;;6;N;;;;;
+1D2C7;KAKTOVIK NUMERAL SEVEN;No;0;L;;;;7;N;;;;;
+1D2C8;KAKTOVIK NUMERAL EIGHT;No;0;L;;;;8;N;;;;;
+1D2C9;KAKTOVIK NUMERAL NINE;No;0;L;;;;9;N;;;;;
+1D2CA;KAKTOVIK NUMERAL TEN;No;0;L;;;;10;N;;;;;
+1D2CB;KAKTOVIK NUMERAL ELEVEN;No;0;L;;;;11;N;;;;;
+1D2CC;KAKTOVIK NUMERAL TWELVE;No;0;L;;;;12;N;;;;;
+1D2CD;KAKTOVIK NUMERAL THIRTEEN;No;0;L;;;;13;N;;;;;
+1D2CE;KAKTOVIK NUMERAL FOURTEEN;No;0;L;;;;14;N;;;;;
+1D2CF;KAKTOVIK NUMERAL FIFTEEN;No;0;L;;;;15;N;;;;;
+1D2D0;KAKTOVIK NUMERAL SIXTEEN;No;0;L;;;;16;N;;;;;
+1D2D1;KAKTOVIK NUMERAL SEVENTEEN;No;0;L;;;;17;N;;;;;
+1D2D2;KAKTOVIK NUMERAL EIGHTEEN;No;0;L;;;;18;N;;;;;
+1D2D3;KAKTOVIK NUMERAL NINETEEN;No;0;L;;;;19;N;;;;;
 1D2E0;MAYAN NUMERAL ZERO;No;0;L;;;;0;N;;;;;
 1D2E1;MAYAN NUMERAL ONE;No;0;L;;;;1;N;;;;;
 1D2E2;MAYAN NUMERAL TWO;No;0;L;;;;2;N;;;;;
@@ -30404,6 +30560,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1DF1C;LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
 1DF1D;LATIN SMALL LETTER C WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
 1DF1E;LATIN SMALL LETTER S WITH CURL;Ll;0;L;;;;;N;;;;;
+1DF25;LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF26;LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF27;LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF28;LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF29;LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF2A;LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
 1E000;COMBINING GLAGOLITIC LETTER AZU;Mn;230;NSM;;;;;N;;;;;
 1E001;COMBINING GLAGOLITIC LETTER BUKY;Mn;230;NSM;;;;;N;;;;;
 1E002;COMBINING GLAGOLITIC LETTER VEDE;Mn;230;NSM;;;;;N;;;;;
@@ -30442,6 +30604,69 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1E028;COMBINING GLAGOLITIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;;
 1E029;COMBINING GLAGOLITIC LETTER IOTATED BIG YUS;Mn;230;NSM;;;;;N;;;;;
 1E02A;COMBINING GLAGOLITIC LETTER FITA;Mn;230;NSM;;;;;N;;;;;
+1E030;MODIFIER LETTER CYRILLIC SMALL A;Lm;0;L;<super> 0430;;;;N;;;;;
+1E031;MODIFIER LETTER CYRILLIC SMALL BE;Lm;0;L;<super> 0431;;;;N;;;;;
+1E032;MODIFIER LETTER CYRILLIC SMALL VE;Lm;0;L;<super> 0432;;;;N;;;;;
+1E033;MODIFIER LETTER CYRILLIC SMALL GHE;Lm;0;L;<super> 0433;;;;N;;;;;
+1E034;MODIFIER LETTER CYRILLIC SMALL DE;Lm;0;L;<super> 0434;;;;N;;;;;
+1E035;MODIFIER LETTER CYRILLIC SMALL IE;Lm;0;L;<super> 0435;;;;N;;;;;
+1E036;MODIFIER LETTER CYRILLIC SMALL ZHE;Lm;0;L;<super> 0436;;;;N;;;;;
+1E037;MODIFIER LETTER CYRILLIC SMALL ZE;Lm;0;L;<super> 0437;;;;N;;;;;
+1E038;MODIFIER LETTER CYRILLIC SMALL I;Lm;0;L;<super> 0438;;;;N;;;;;
+1E039;MODIFIER LETTER CYRILLIC SMALL KA;Lm;0;L;<super> 043A;;;;N;;;;;
+1E03A;MODIFIER LETTER CYRILLIC SMALL EL;Lm;0;L;<super> 043B;;;;N;;;;;
+1E03B;MODIFIER LETTER CYRILLIC SMALL EM;Lm;0;L;<super> 043C;;;;N;;;;;
+1E03C;MODIFIER LETTER CYRILLIC SMALL O;Lm;0;L;<super> 043E;;;;N;;;;;
+1E03D;MODIFIER LETTER CYRILLIC SMALL PE;Lm;0;L;<super> 043F;;;;N;;;;;
+1E03E;MODIFIER LETTER CYRILLIC SMALL ER;Lm;0;L;<super> 0440;;;;N;;;;;
+1E03F;MODIFIER LETTER CYRILLIC SMALL ES;Lm;0;L;<super> 0441;;;;N;;;;;
+1E040;MODIFIER LETTER CYRILLIC SMALL TE;Lm;0;L;<super> 0442;;;;N;;;;;
+1E041;MODIFIER LETTER CYRILLIC SMALL U;Lm;0;L;<super> 0443;;;;N;;;;;
+1E042;MODIFIER LETTER CYRILLIC SMALL EF;Lm;0;L;<super> 0444;;;;N;;;;;
+1E043;MODIFIER LETTER CYRILLIC SMALL HA;Lm;0;L;<super> 0445;;;;N;;;;;
+1E044;MODIFIER LETTER CYRILLIC SMALL TSE;Lm;0;L;<super> 0446;;;;N;;;;;
+1E045;MODIFIER LETTER CYRILLIC SMALL CHE;Lm;0;L;<super> 0447;;;;N;;;;;
+1E046;MODIFIER LETTER CYRILLIC SMALL SHA;Lm;0;L;<super> 0448;;;;N;;;;;
+1E047;MODIFIER LETTER CYRILLIC SMALL YERU;Lm;0;L;<super> 044B;;;;N;;;;;
+1E048;MODIFIER LETTER CYRILLIC SMALL E;Lm;0;L;<super> 044D;;;;N;;;;;
+1E049;MODIFIER LETTER CYRILLIC SMALL YU;Lm;0;L;<super> 044E;;;;N;;;;;
+1E04A;MODIFIER LETTER CYRILLIC SMALL DZZE;Lm;0;L;<super> A689;;;;N;;;;;
+1E04B;MODIFIER LETTER CYRILLIC SMALL SCHWA;Lm;0;L;<super> 04D9;;;;N;;;;;
+1E04C;MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<super> 0456;;;;N;;;;;
+1E04D;MODIFIER LETTER CYRILLIC SMALL JE;Lm;0;L;<super> 0458;;;;N;;;;;
+1E04E;MODIFIER LETTER CYRILLIC SMALL BARRED O;Lm;0;L;<super> 04E9;;;;N;;;;;
+1E04F;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U;Lm;0;L;<super> 04AF;;;;N;;;;;
+1E050;MODIFIER LETTER CYRILLIC SMALL PALOCHKA;Lm;0;L;<super> 04CF;;;;N;;;;;
+1E051;CYRILLIC SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0430;;;;N;;;;;
+1E052;CYRILLIC SUBSCRIPT SMALL LETTER BE;Lm;0;L;<sub> 0431;;;;N;;;;;
+1E053;CYRILLIC SUBSCRIPT SMALL LETTER VE;Lm;0;L;<sub> 0432;;;;N;;;;;
+1E054;CYRILLIC SUBSCRIPT SMALL LETTER GHE;Lm;0;L;<sub> 0433;;;;N;;;;;
+1E055;CYRILLIC SUBSCRIPT SMALL LETTER DE;Lm;0;L;<sub> 0434;;;;N;;;;;
+1E056;CYRILLIC SUBSCRIPT SMALL LETTER IE;Lm;0;L;<sub> 0435;;;;N;;;;;
+1E057;CYRILLIC SUBSCRIPT SMALL LETTER ZHE;Lm;0;L;<sub> 0436;;;;N;;;;;
+1E058;CYRILLIC SUBSCRIPT SMALL LETTER ZE;Lm;0;L;<sub> 0437;;;;N;;;;;
+1E059;CYRILLIC SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0438;;;;N;;;;;
+1E05A;CYRILLIC SUBSCRIPT SMALL LETTER KA;Lm;0;L;<sub> 043A;;;;N;;;;;
+1E05B;CYRILLIC SUBSCRIPT SMALL LETTER EL;Lm;0;L;<sub> 043B;;;;N;;;;;
+1E05C;CYRILLIC SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 043E;;;;N;;;;;
+1E05D;CYRILLIC SUBSCRIPT SMALL LETTER PE;Lm;0;L;<sub> 043F;;;;N;;;;;
+1E05E;CYRILLIC SUBSCRIPT SMALL LETTER ES;Lm;0;L;<sub> 0441;;;;N;;;;;
+1E05F;CYRILLIC SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0443;;;;N;;;;;
+1E060;CYRILLIC SUBSCRIPT SMALL LETTER EF;Lm;0;L;<sub> 0444;;;;N;;;;;
+1E061;CYRILLIC SUBSCRIPT SMALL LETTER HA;Lm;0;L;<sub> 0445;;;;N;;;;;
+1E062;CYRILLIC SUBSCRIPT SMALL LETTER TSE;Lm;0;L;<sub> 0446;;;;N;;;;;
+1E063;CYRILLIC SUBSCRIPT SMALL LETTER CHE;Lm;0;L;<sub> 0447;;;;N;;;;;
+1E064;CYRILLIC SUBSCRIPT SMALL LETTER SHA;Lm;0;L;<sub> 0448;;;;N;;;;;
+1E065;CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN;Lm;0;L;<sub> 044A;;;;N;;;;;
+1E066;CYRILLIC SUBSCRIPT SMALL LETTER YERU;Lm;0;L;<sub> 044B;;;;N;;;;;
+1E067;CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN;Lm;0;L;<sub> 0491;;;;N;;;;;
+1E068;CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<sub> 0456;;;;N;;;;;
+1E069;CYRILLIC SUBSCRIPT SMALL LETTER DZE;Lm;0;L;<sub> 0455;;;;N;;;;;
+1E06A;CYRILLIC SUBSCRIPT SMALL LETTER DZHE;Lm;0;L;<sub> 045F;;;;N;;;;;
+1E06B;MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER;Lm;0;L;<super> 04AB;;;;N;;;;;
+1E06C;MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER;Lm;0;L;<super> A651;;;;N;;;;;
+1E06D;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE;Lm;0;L;<super> 04B1;;;;N;;;;;
+1E08F;COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Mn;230;NSM;;;;;N;;;;;
 1E100;NYIAKENG PUACHUE HMONG LETTER MA;Lo;0;L;;;;;N;;;;;
 1E101;NYIAKENG PUACHUE HMONG LETTER TSA;Lo;0;L;;;;;N;;;;;
 1E102;NYIAKENG PUACHUE HMONG LETTER NTA;Lo;0;L;;;;;N;;;;;
@@ -30603,6 +30828,48 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1E2F8;WANCHO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 1E2F9;WANCHO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 1E2FF;WANCHO NGUN SIGN;Sc;0;ET;;;;;N;;;;;
+1E4D0;NAG MUNDARI LETTER O;Lo;0;L;;;;;N;;;;;
+1E4D1;NAG MUNDARI LETTER OP;Lo;0;L;;;;;N;;;;;
+1E4D2;NAG MUNDARI LETTER OL;Lo;0;L;;;;;N;;;;;
+1E4D3;NAG MUNDARI LETTER OY;Lo;0;L;;;;;N;;;;;
+1E4D4;NAG MUNDARI LETTER ONG;Lo;0;L;;;;;N;;;;;
+1E4D5;NAG MUNDARI LETTER A;Lo;0;L;;;;;N;;;;;
+1E4D6;NAG MUNDARI LETTER AJ;Lo;0;L;;;;;N;;;;;
+1E4D7;NAG MUNDARI LETTER AB;Lo;0;L;;;;;N;;;;;
+1E4D8;NAG MUNDARI LETTER ANY;Lo;0;L;;;;;N;;;;;
+1E4D9;NAG MUNDARI LETTER AH;Lo;0;L;;;;;N;;;;;
+1E4DA;NAG MUNDARI LETTER I;Lo;0;L;;;;;N;;;;;
+1E4DB;NAG MUNDARI LETTER IS;Lo;0;L;;;;;N;;;;;
+1E4DC;NAG MUNDARI LETTER IDD;Lo;0;L;;;;;N;;;;;
+1E4DD;NAG MUNDARI LETTER IT;Lo;0;L;;;;;N;;;;;
+1E4DE;NAG MUNDARI LETTER IH;Lo;0;L;;;;;N;;;;;
+1E4DF;NAG MUNDARI LETTER U;Lo;0;L;;;;;N;;;;;
+1E4E0;NAG MUNDARI LETTER UC;Lo;0;L;;;;;N;;;;;
+1E4E1;NAG MUNDARI LETTER UD;Lo;0;L;;;;;N;;;;;
+1E4E2;NAG MUNDARI LETTER UK;Lo;0;L;;;;;N;;;;;
+1E4E3;NAG MUNDARI LETTER UR;Lo;0;L;;;;;N;;;;;
+1E4E4;NAG MUNDARI LETTER E;Lo;0;L;;;;;N;;;;;
+1E4E5;NAG MUNDARI LETTER ENN;Lo;0;L;;;;;N;;;;;
+1E4E6;NAG MUNDARI LETTER EG;Lo;0;L;;;;;N;;;;;
+1E4E7;NAG MUNDARI LETTER EM;Lo;0;L;;;;;N;;;;;
+1E4E8;NAG MUNDARI LETTER EN;Lo;0;L;;;;;N;;;;;
+1E4E9;NAG MUNDARI LETTER ETT;Lo;0;L;;;;;N;;;;;
+1E4EA;NAG MUNDARI LETTER ELL;Lo;0;L;;;;;N;;;;;
+1E4EB;NAG MUNDARI SIGN OJOD;Lm;0;L;;;;;N;;;;;
+1E4EC;NAG MUNDARI SIGN MUHOR;Mn;232;NSM;;;;;N;;;;;
+1E4ED;NAG MUNDARI SIGN TOYOR;Mn;232;NSM;;;;;N;;;;;
+1E4EE;NAG MUNDARI SIGN IKIR;Mn;220;NSM;;;;;N;;;;;
+1E4EF;NAG MUNDARI SIGN SUTUH;Mn;230;NSM;;;;;N;;;;;
+1E4F0;NAG MUNDARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1E4F1;NAG MUNDARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1E4F2;NAG MUNDARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1E4F3;NAG MUNDARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1E4F4;NAG MUNDARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1E4F5;NAG MUNDARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1E4F6;NAG MUNDARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1E4F7;NAG MUNDARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1E4F8;NAG MUNDARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1E4F9;NAG MUNDARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 1E7E0;ETHIOPIC SYLLABLE HHYA;Lo;0;L;;;;;N;;;;;
 1E7E1;ETHIOPIC SYLLABLE HHYU;Lo;0;L;;;;;N;;;;;
 1E7E2;ETHIOPIC SYLLABLE HHYI;Lo;0;L;;;;;N;;;;;
@@ -32678,6 +32945,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
 1F6D6;HUT;So;0;ON;;;;;N;;;;;
 1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;;
+1F6DC;WIRELESS;So;0;ON;;;;;N;;;;;
 1F6DD;PLAYGROUND SLIDE;So;0;ON;;;;;N;;;;;
 1F6DE;WHEEL;So;0;ON;;;;;N;;;;;
 1F6DF;RING BUOY;So;0;ON;;;;;N;;;;;
@@ -32823,6 +33091,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;;
 1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;;
 1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;;
+1F774;LOT OF FORTUNE;So;0;ON;;;;;N;;;;;
+1F775;OCCULTATION;So;0;ON;;;;;N;;;;;
+1F776;LUNAR ECLIPSE;So;0;ON;;;;;N;;;;;
+1F77B;HAUMEA;So;0;ON;;;;;N;;;;;
+1F77C;MAKEMAKE;So;0;ON;;;;;N;;;;;
+1F77D;GONGGONG;So;0;ON;;;;;N;;;;;
+1F77E;QUAOAR;So;0;ON;;;;;N;;;;;
+1F77F;ORCUS;So;0;ON;;;;;N;;;;;
 1F780;BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
 1F781;BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
 1F782;BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
@@ -32912,6 +33188,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1F7D6;NEGATIVE CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;;
 1F7D7;CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
 1F7D8;NEGATIVE CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
+1F7D9;NINE POINTED WHITE STAR;So;0;ON;;;;;N;;;;;
 1F7E0;LARGE ORANGE CIRCLE;So;0;ON;;;;;N;;;;;
 1F7E1;LARGE YELLOW CIRCLE;So;0;ON;;;;;N;;;;;
 1F7E2;LARGE GREEN CIRCLE;So;0;ON;;;;;N;;;;;
@@ -33434,6 +33711,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FA72;BRIEFS;So;0;ON;;;;;N;;;;;
 1FA73;SHORTS;So;0;ON;;;;;N;;;;;
 1FA74;THONG SANDAL;So;0;ON;;;;;N;;;;;
+1FA75;LIGHT BLUE HEART;So;0;ON;;;;;N;;;;;
+1FA76;GREY HEART;So;0;ON;;;;;N;;;;;
+1FA77;PINK HEART;So;0;ON;;;;;N;;;;;
 1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;;
 1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;;
 1FA7A;STETHOSCOPE;So;0;ON;;;;;N;;;;;
@@ -33446,6 +33726,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FA84;MAGIC WAND;So;0;ON;;;;;N;;;;;
 1FA85;PINATA;So;0;ON;;;;;N;;;;;
 1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;;
+1FA87;MARACAS;So;0;ON;;;;;N;;;;;
+1FA88;FLUTE;So;0;ON;;;;;N;;;;;
 1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
 1FA91;CHAIR;So;0;ON;;;;;N;;;;;
 1FA92;RAZOR;So;0;ON;;;;;N;;;;;
@@ -33475,6 +33757,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FAAA;IDENTIFICATION CARD;So;0;ON;;;;;N;;;;;
 1FAAB;LOW BATTERY;So;0;ON;;;;;N;;;;;
 1FAAC;HAMSA;So;0;ON;;;;;N;;;;;
+1FAAD;FOLDING HAND FAN;So;0;ON;;;;;N;;;;;
+1FAAE;HAIR PICK;So;0;ON;;;;;N;;;;;
+1FAAF;KHANDA;So;0;ON;;;;;N;;;;;
 1FAB0;FLY;So;0;ON;;;;;N;;;;;
 1FAB1;WORM;So;0;ON;;;;;N;;;;;
 1FAB2;BEETLE;So;0;ON;;;;;N;;;;;
@@ -33486,12 +33771,18 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FAB8;CORAL;So;0;ON;;;;;N;;;;;
 1FAB9;EMPTY NEST;So;0;ON;;;;;N;;;;;
 1FABA;NEST WITH EGGS;So;0;ON;;;;;N;;;;;
+1FABB;HYACINTH;So;0;ON;;;;;N;;;;;
+1FABC;JELLYFISH;So;0;ON;;;;;N;;;;;
+1FABD;WING;So;0;ON;;;;;N;;;;;
+1FABF;GOOSE;So;0;ON;;;;;N;;;;;
 1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;;
 1FAC1;LUNGS;So;0;ON;;;;;N;;;;;
 1FAC2;PEOPLE HUGGING;So;0;ON;;;;;N;;;;;
 1FAC3;PREGNANT MAN;So;0;ON;;;;;N;;;;;
 1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;;
 1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;;
+1FACE;MOOSE;So;0;ON;;;;;N;;;;;
+1FACF;DONKEY;So;0;ON;;;;;N;;;;;
 1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;;
 1FAD1;BELL PEPPER;So;0;ON;;;;;N;;;;;
 1FAD2;OLIVE;So;0;ON;;;;;N;;;;;
@@ -33502,6 +33793,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FAD7;POURING LIQUID;So;0;ON;;;;;N;;;;;
 1FAD8;BEANS;So;0;ON;;;;;N;;;;;
 1FAD9;JAR;So;0;ON;;;;;N;;;;;
+1FADA;GINGER ROOT;So;0;ON;;;;;N;;;;;
+1FADB;PEA POD;So;0;ON;;;;;N;;;;;
 1FAE0;MELTING FACE;So;0;ON;;;;;N;;;;;
 1FAE1;SALUTING FACE;So;0;ON;;;;;N;;;;;
 1FAE2;FACE WITH OPEN EYES AND HAND OVER MOUTH;So;0;ON;;;;;N;;;;;
@@ -33510,6 +33803,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FAE5;DOTTED LINE FACE;So;0;ON;;;;;N;;;;;
 1FAE6;BITING LIP;So;0;ON;;;;;N;;;;;
 1FAE7;BUBBLES;So;0;ON;;;;;N;;;;;
+1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;;
 1FAF0;HAND WITH INDEX FINGER AND THUMB CROSSED;So;0;ON;;;;;N;;;;;
 1FAF1;RIGHTWARDS HAND;So;0;ON;;;;;N;;;;;
 1FAF2;LEFTWARDS HAND;So;0;ON;;;;;N;;;;;
@@ -33517,6 +33811,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 1FAF4;PALM UP HAND;So;0;ON;;;;;N;;;;;
 1FAF5;INDEX POINTING AT THE VIEWER;So;0;ON;;;;;N;;;;;
 1FAF6;HEART HANDS;So;0;ON;;;;;N;;;;;
+1FAF7;LEFTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;;
+1FAF8;RIGHTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;;
 1FB00;BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;;
 1FB01;BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;;
 1FB02;BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;;
@@ -33732,7 +34028,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
 2A6DF;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
 2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
-2B738;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
+2B739;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
 2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
 2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;;
 2B820;<CJK Ideograph Extension E, First>;Lo;0;L;;;;;N;;;;;
@@ -34283,6 +34579,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
 2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
 30000;<CJK Ideograph Extension G, First>;Lo;0;L;;;;;N;;;;;
 3134A;<CJK Ideograph Extension G, Last>;Lo;0;L;;;;;N;;;;;
+31350;<CJK Ideograph Extension H, First>;Lo;0;L;;;;;N;;;;;
+323AF;<CJK Ideograph Extension H, Last>;Lo;0;L;;;;;N;;;;;
 E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
 E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
 E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
Index: gnu/usr.bin/perl/lib/unicore/VerticalOrientation.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/VerticalOrientation.txt,v
diff -u -p -a -u -p -r1.1.1.4 VerticalOrientation.txt
--- gnu/usr.bin/perl/lib/unicore/VerticalOrientation.txt	15 Feb 2023 01:33:06 -0000	1.1.1.4
+++ gnu/usr.bin/perl/lib/unicore/VerticalOrientation.txt	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
-# VerticalOrientation-14.0.0.txt
-# Date: 2021-07-06, 09:58:53 GMT [EM, KI, LI, KW, MS]
-# © 2021 Unicode®, Inc.
+# VerticalOrientation-15.0.0.txt
+# Date: 2022-08-07, 18:01:57 GMT [EM, KI, LI, KW, MS]
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see https://www.unicode.org/terms_of_use.html
 #
@@ -42,7 +42,7 @@
 #         Specials:                           U+FFF0..U+FFF8
 #         Siddham:                           U+11580..U+115FF
 #         Zanabazar Square & Soyombo:        U+11A00..U+11AAF
-#         Egyptian Hieroglyphs & Controls:   U+13000..U+1343F
+#         Egyptian Hieroglyphs & Controls:   U+13000..U+1345F
 #         Anatolian Hieroglyphs:             U+14400..U+1467F
 #         Ideographic Symbols & Tangut:      U+16FE0..U+18AFF
 #         Khitan Small Script & Tangut Sup:  U+18B00..U+18D7F
@@ -468,6 +468,7 @@
 0CE2..0CE3     ; R  # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF     ; R  # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2     ; R  # Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3           ; R  # Mc         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01     ; R  # Mn     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03     ; R  # Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C     ; R  # Lo     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -529,7 +530,7 @@
 0EBD           ; R  # Lo         LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4     ; R  # Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6           ; R  # Lm         LAO KO LA
-0EC8..0ECD     ; R  # Mn     [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE     ; R  # Mn     [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9     ; R  # Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF     ; R  # Lo     [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00           ; R  # Lo         TIBETAN SYLLABLE OM
@@ -1769,6 +1770,7 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 10EAB..10EAC   ; R  # Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
 10EAD          ; R  # Pd         YEZIDI HYPHENATION MARK
 10EB0..10EB1   ; R  # Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF   ; R  # Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F00..10F1C   ; R  # Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F1D..10F26   ; R  # No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
 10F27          ; R  # Lo         OLD SOGDIAN LIGATURE AYIN-DALETH
@@ -1851,6 +1853,8 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 11236..11237   ; R  # Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 11238..1123D   ; R  # Po     [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
 1123E          ; R  # Mn         KHOJKI SIGN SUKUN
+1123F..11240   ; R  # Lo     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241          ; R  # Mn         KHOJKI VOWEL SIGN VOCALIC R
 11280..11286   ; R  # Lo     [7] MULTANI LETTER A..MULTANI LETTER GA
 11288          ; R  # Lo         MULTANI LETTER GHA
 1128A..1128D   ; R  # Lo     [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -2017,6 +2021,7 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 11AA3..11AAF   ; U  # Cn    [13] <reserved-11AA3>..<reserved-11AAF>
 11AB0..11ABF   ; U  # Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
 11AC0..11AF8   ; R  # Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09   ; R  # Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08   ; R  # Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E   ; R  # Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F          ; R  # Mc         BHAIKSUKI VOWEL SIGN AA
@@ -2062,6 +2067,19 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 11EF3..11EF4   ; R  # Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6   ; R  # Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8   ; R  # Po     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01   ; R  # Mn     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02          ; R  # Lo         KAWI SIGN REPHA
+11F03          ; R  # Mc         KAWI SIGN VISARGA
+11F04..11F10   ; R  # Lo    [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33   ; R  # Lo    [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35   ; R  # Mc     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A   ; R  # Mn     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F   ; R  # Mc     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40          ; R  # Mn         KAWI VOWEL SIGN EU
+11F41          ; R  # Mc         KAWI SIGN KILLER
+11F42          ; R  # Mn         KAWI CONJOINER
+11F43..11F4F   ; R  # Po    [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59   ; R  # Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0          ; R  # Lo         LISU LETTER YHA
 11FC0..11FD4   ; R  # No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC   ; R  # So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -2074,10 +2092,12 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 12480..12543   ; R  # Lo   [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0   ; R  # Lo    [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 12FF1..12FF2   ; R  # Po     [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E   ; U  # Lo  [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-1342F          ; U  # Cn         <reserved-1342F>
-13430..13438   ; U  # Cf     [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
-13439..1343F   ; U  # Cn     [7] <reserved-13439>..<reserved-1343F>
+13000..1342F   ; U  # Lo  [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F   ; U  # Cf    [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440          ; U  # Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446   ; U  # Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455   ; U  # Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+13456..1345F   ; U  # Cn    [10] <reserved-13456>..<reserved-1345F>
 14400..14646   ; U  # Lo   [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 14647..1467F   ; U  # Cn    [57] <reserved-14647>..<reserved-1467F>
 16800..16A38   ; R  # Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
@@ -2132,9 +2152,13 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 1B000..1B0FF   ; U  # Lo   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
 1B100..1B122   ; U  # Lo    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
 1B123..1B12F   ; U  # Cn    [13] <reserved-1B123>..<reserved-1B12F>
-1B130..1B14F   ; U  # Cn    [32] <reserved-1B130>..<reserved-1B14F>
+1B130..1B131   ; U  # Cn     [2] <reserved-1B130>..<reserved-1B131>
+1B132          ; U  # Lo         HIRAGANA LETTER SMALL KO
+1B133..1B14F   ; U  # Cn    [29] <reserved-1B133>..<reserved-1B14F>
 1B150..1B152   ; U  # Lo     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
-1B153..1B163   ; U  # Cn    [17] <reserved-1B153>..<reserved-1B163>
+1B153..1B154   ; U  # Cn     [2] <reserved-1B153>..<reserved-1B154>
+1B155          ; U  # Lo         KATAKANA LETTER SMALL KO
+1B156..1B163   ; U  # Cn    [14] <reserved-1B156>..<reserved-1B163>
 1B164..1B167   ; U  # Lo     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B168..1B16F   ; U  # Cn     [8] <reserved-1B168>..<reserved-1B16F>
 1B170..1B2FB   ; U  # Lo   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
@@ -2173,6 +2197,7 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 1D200..1D241   ; R  # So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D242..1D244   ; R  # Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
 1D245          ; R  # So         GREEK MUSICAL LEIMMA
+1D2C0..1D2D3   ; R  # No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3   ; U  # No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D2F4..1D2FF   ; U  # Cn    [12] <reserved-1D2F4>..<reserved-1D2FF>
 1D300..1D356   ; U  # So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
@@ -2237,11 +2262,14 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 1DF00..1DF09   ; R  # Ll    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A          ; R  # Lo         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E   ; R  # Ll    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A   ; R  # Ll     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006   ; R  # Mn     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018   ; R  # Mn    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021   ; R  # Mn     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024   ; R  # Mn     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A   ; R  # Mn     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D   ; R  # Lm    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F          ; R  # Mn         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C   ; R  # Lo    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E130..1E136   ; R  # Mn     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D   ; R  # Lm     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -2254,6 +2282,10 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 1E2EC..1E2EF   ; R  # Mn     [4] WANCHO TONE TUP..WANCHO TONE KOINI
 1E2F0..1E2F9   ; R  # Nd    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
 1E2FF          ; R  # Sc         WANCHO NGUN SIGN
+1E4D0..1E4EA   ; R  # Lo    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB          ; R  # Lm         NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF   ; R  # Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9   ; R  # Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6   ; R  # Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB   ; R  # Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE   ; R  # Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -2341,15 +2373,16 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 1F600..1F64F   ; U  # So    [80] GRINNING FACE..PERSON WITH FOLDED HANDS
 1F650..1F67F   ; U  # So    [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
 1F680..1F6D7   ; U  # So    [88] ROCKET..ELEVATOR
-1F6D8..1F6DC   ; U  # Cn     [5] <reserved-1F6D8>..<reserved-1F6DC>
-1F6DD..1F6EC   ; U  # So    [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6D8..1F6DB   ; U  # Cn     [4] <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC..1F6EC   ; U  # So    [17] WIRELESS..AIRPLANE ARRIVING
 1F6ED..1F6EF   ; U  # Cn     [3] <reserved-1F6ED>..<reserved-1F6EF>
 1F6F0..1F6FC   ; U  # So    [13] SATELLITE..ROLLER SKATE
 1F6FD..1F6FF   ; U  # Cn     [3] <reserved-1F6FD>..<reserved-1F6FF>
-1F700..1F773   ; U  # So   [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F774..1F77F   ; U  # Cn    [12] <reserved-1F774>..<reserved-1F77F>
-1F780..1F7D8   ; U  # So    [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
-1F7D9..1F7DF   ; U  # Cn     [7] <reserved-1F7D9>..<reserved-1F7DF>
+1F700..1F776   ; U  # So   [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F777..1F77A   ; U  # Cn     [4] <reserved-1F777>..<reserved-1F77A>
+1F77B..1F77F   ; U  # So     [5] HAUMEA..ORCUS
+1F780..1F7D9   ; U  # So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
+1F7DA..1F7DF   ; U  # Cn     [6] <reserved-1F7DA>..<reserved-1F7DF>
 1F7E0..1F7EB   ; U  # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7EC..1F7EF   ; U  # Cn     [4] <reserved-1F7EC>..<reserved-1F7EF>
 1F7F0          ; U  # So         HEAVY EQUALS SIGN
@@ -2365,31 +2398,27 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 1FA54..1FA5F   ; U  # Cn    [12] <reserved-1FA54>..<reserved-1FA5F>
 1FA60..1FA6D   ; U  # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
 1FA6E..1FA6F   ; U  # Cn     [2] <reserved-1FA6E>..<reserved-1FA6F>
-1FA70..1FA74   ; U  # So     [5] BALLET SHOES..THONG SANDAL
-1FA75..1FA77   ; U  # Cn     [3] <reserved-1FA75>..<reserved-1FA77>
-1FA78..1FA7C   ; U  # So     [5] DROP OF BLOOD..CRUTCH
+1FA70..1FA7C   ; U  # So    [13] BALLET SHOES..CRUTCH
 1FA7D..1FA7F   ; U  # Cn     [3] <reserved-1FA7D>..<reserved-1FA7F>
-1FA80..1FA86   ; U  # So     [7] YO-YO..NESTING DOLLS
-1FA87..1FA8F   ; U  # Cn     [9] <reserved-1FA87>..<reserved-1FA8F>
-1FA90..1FAAC   ; U  # So    [29] RINGED PLANET..HAMSA
-1FAAD..1FAAF   ; U  # Cn     [3] <reserved-1FAAD>..<reserved-1FAAF>
-1FAB0..1FABA   ; U  # So    [11] FLY..NEST WITH EGGS
-1FABB..1FABF   ; U  # Cn     [5] <reserved-1FABB>..<reserved-1FABF>
-1FAC0..1FAC5   ; U  # So     [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAC6..1FACF   ; U  # Cn    [10] <reserved-1FAC6>..<reserved-1FACF>
-1FAD0..1FAD9   ; U  # So    [10] BLUEBERRIES..JAR
-1FADA..1FADF   ; U  # Cn     [6] <reserved-1FADA>..<reserved-1FADF>
-1FAE0..1FAE7   ; U  # So     [8] MELTING FACE..BUBBLES
-1FAE8..1FAEF   ; U  # Cn     [8] <reserved-1FAE8>..<reserved-1FAEF>
-1FAF0..1FAF6   ; U  # So     [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
-1FAF7..1FAFF   ; U  # Cn     [9] <reserved-1FAF7>..<reserved-1FAFF>
+1FA80..1FA88   ; U  # So     [9] YO-YO..FLUTE
+1FA89..1FA8F   ; U  # Cn     [7] <reserved-1FA89>..<reserved-1FA8F>
+1FA90..1FABD   ; U  # So    [46] RINGED PLANET..WING
+1FABE          ; U  # Cn         <reserved-1FABE>
+1FABF..1FAC5   ; U  # So     [7] GOOSE..PERSON WITH CROWN
+1FAC6..1FACD   ; U  # Cn     [8] <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FADB   ; U  # So    [14] MOOSE..PEA POD
+1FADC..1FADF   ; U  # Cn     [4] <reserved-1FADC>..<reserved-1FADF>
+1FAE0..1FAE8   ; U  # So     [9] MELTING FACE..SHAKING FACE
+1FAE9..1FAEF   ; U  # Cn     [7] <reserved-1FAE9>..<reserved-1FAEF>
+1FAF0..1FAF8   ; U  # So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
+1FAF9..1FAFF   ; U  # Cn     [7] <reserved-1FAF9>..<reserved-1FAFF>
 1FB00..1FB92   ; R  # So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA   ; R  # So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 1FBF0..1FBF9   ; R  # Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 20000..2A6DF   ; U  # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
 2A6E0..2A6FF   ; U  # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738   ; U  # Lo  [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F   ; U  # Cn     [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739   ; U  # Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F   ; U  # Cn     [6] <reserved-2B73A>..<reserved-2B73F>
 2B740..2B81D   ; U  # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B81E..2B81F   ; U  # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
 2B820..2CEA1   ; U  # Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
@@ -2400,7 +2429,8 @@ FFFC..FFFD     ; U  # So     [2] OBJECT 
 2FA1E..2FFFD   ; U  # Cn  [1504] <reserved-2FA1E>..<reserved-2FFFD>
 30000..3134A   ; U  # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
 3134B..3134F   ; U  # Cn     [5] <reserved-3134B>..<reserved-3134F>
-31350..3FFFD   ; U  # Cn [60590] <reserved-31350>..<reserved-3FFFD>
+31350..323AF   ; U  # Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD   ; U  # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
 E0001          ; R  # Cf         LANGUAGE TAG
 E0020..E007F   ; R  # Cf    [96] TAG SPACE..CANCEL TAG
 E0100..E01EF   ; R  # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
Index: gnu/usr.bin/perl/lib/unicore/mktables
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/mktables,v
diff -u -p -a -u -p -r1.6 mktables
--- gnu/usr.bin/perl/lib/unicore/mktables	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/mktables	21 Feb 2024 15:47:02 -0000
@@ -36,6 +36,7 @@ use feature 'signatures';
 no warnings qw( experimental::builtin );
 
 sub DEBUG () { 0 }  # Set to 0 for production; 1 for development
+$| = 1 if DEBUG;
 my $debugging_build = $Config{"ccflags"} =~ /-DDEBUGGING/;
 
 sub NON_ASCII_PLATFORM { ord("A") != 65 }
@@ -49,7 +50,7 @@ sub NON_ASCII_PLATFORM { ord("A") != 65 
 # expected, a warning will be generated.  If an older version is being
 # compiled, any bounds tests that fail in the generated test file (-maketest
 # option) will be marked as TODO.
-my $version_of_mk_invlist_bounds = v14.0.0;
+my $version_of_mk_invlist_bounds = v15.0.0;
 
 ##########################################################################
 #
@@ -1183,7 +1184,12 @@ my $code_point_re = qr/\b$run_on_code_po
 # defaults for code points not listed (i.e., missing) in the file.  The code
 # depends on this ending with a semi-colon, so it can assume it is a valid
 # field when the line is split() by semi-colons
-my $missing_defaults_prefix = qr/^#\s+\@missing:\s+0000\.\.10FFFF\s*;/;
+my $missing_defaults_prefix = qr/ ^ \# \s+ \@missing: \s+
+                                           ($code_point_re)
+                                           \.\.
+                                           ($code_point_re)
+                                       \s* ;
+                                /x;
 
 # Property types.  Unicode has more types, but these are sufficient for our
 # purposes.
@@ -1854,8 +1860,7 @@ package main;
             no strict "refs";
 
             # Use typeglob to give the anonymous subroutine the name we want
-            *$destroy_name = sub {
-                my $self = shift;
+            *$destroy_name = sub ($self) {
                 my $addr = pack 'J', refaddr $self;
 
                 $self->$destroy_callback if $destroy_callback;
@@ -1870,9 +1875,8 @@ package main;
         unless ($package->can('dump')) {
             my $dump_name = "${package}::dump";
             no strict "refs";
-            *$dump_name = sub {
-                my $self = shift;
-                return dump_inside_out($self, $package_fields{$package}, @_);
+            *$dump_name = sub ($self, @_args) {
+                return dump_inside_out($self, $package_fields{$package}, @_args);
             }
         }
         return;
@@ -2798,19 +2802,30 @@ END
                             utf8::encode($BOM);
                             my $BOM_re = qr/ ^ (?:$BOM)? /x;
 
-                            while ($_ =~ s/$BOM_re//) { # BOM; seems to be on
-                                                        # many lines in some files!!
-                                $_ = <$file_handle>;
+                            do {
                                 chomp;
-                                if ($_ =~ /^# Version: (.*)/) {
-                                    $this_version = $1;
-                                    goto valid_version
-                                        if $this_version eq $string_version;
-                                    goto valid_version
-                                        if "$this_version.0" eq $string_version;
-                                    goto wrong_version;
+
+                                # BOM; seems to be on many lines in some
+                                # files!!
+                                $_ =~ s/$BOM_re//;
+
+                                if (/./) {
+
+                                    # Only look for the version if in the
+                                    # first comment block.
+                                    goto no_version unless $_ =~ /^#/;
+
+                                    if ($_ =~ /Version:? (\S*)/) {
+                                        $this_version = $1;
+                                        goto valid_version
+                                          if  $this_version eq $string_version;
+                                        goto valid_version
+                                            if  "$this_version.0"
+                                                            eq $string_version;
+                                    }
                                 }
-                            }
+                            } while (<$file_handle>);
+
                             goto no_version;
                         }
                     }
@@ -2936,6 +2951,9 @@ END
                     $self->carp_bad_line("Unexpected \@missing line.  Assuming no missing entries");
                 }
                 elsif ($has_missings_defaults{$addr} == $NOT_IGNORED) {
+                    my $start = $1;     # The pattern saves the beginning and
+                    my $end = $2;       # end points of the range the default
+                                        # is for
                     my @defaults = split /\s* ; \s*/x, $_;
 
                     # The first field is the @missing, which ends in a
@@ -3003,8 +3021,13 @@ END
                             $default = "Unknown";
                         }
 
-                        # Store them as a sub-arrays with both components.
-                        push @{$missings{$addr}}, [ $default, $property ];
+                        # Store them as a sub-hash as part of an array, with
+                        # both components.
+                        push @{$missings{$addr}}, { start    => hex $start,
+                                                    end      => hex $end,
+                                                    default  => $default,
+                                                    property => $property
+                                                  };
                     }
                 }
 
@@ -3218,9 +3241,9 @@ END
 
     sub get_missings($self) {
         # Returns the stored up @missings lines' values, and clears the list.
-        # The values are in an array, consisting of the default in the first
-        # element, and the property in the 2nd.  However, since these lines
-        # can be stacked up, the return is an array of all these arrays.
+        # The values are in a hash, consisting of 'default' and 'property'.
+        # However, since these lines can be stacked up, the return is an array
+        # of all these hashes.
 
         my $addr = pack 'J', refaddr $self;
 
@@ -3346,13 +3369,19 @@ END
 
 package Multi_Default;
 
+sub trace { return main::trace(@_); }
+
 # Certain properties in early versions of Unicode had more than one possible
 # default for code points missing from the files.  In these cases, one
 # default applies to everything left over after all the others are applied,
 # and for each of the others, there is a description of which class of code
 # points applies to it.  This object helps implement this by storing the
 # defaults, and for all but that final default, an eval string that generates
-# the class that it applies to.
+# the class that it applies to.  That class must be a Range_List, or contains
+# a Range_List that the overloaded operators recognize as to be operated on.
+# A string is used because this is called early when we know symbolically what
+# needs to be done, but typically before any data is gathered.  Thus the
+# evaluation gets delayed until we have at hand all the needed information.
 
 {   # Closure
 
@@ -3360,12 +3389,13 @@ package Multi_Default;
 
     my %class_defaults;
     # The defaults structure for the classes
-    main::set_access('class_defaults', \%class_defaults);
+    main::set_access('class_defaults', \%class_defaults, 'readable_array');
 
     my %other_default;
     # The default that applies to everything left over.
     main::set_access('other_default', \%other_default, 'r');
 
+    my %iterator;
 
     sub new {
         # The constructor is called with default => eval pairs, terminated by
@@ -3385,22 +3415,41 @@ package Multi_Default;
 
         my $self = bless \do{my $anonymous_scalar}, $class;
         my $addr = pack 'J', refaddr $self;
+        $iterator{$addr} = 0;
+
+        return $self unless @_;
 
         while (@_ > 1) {
-            my $default = shift;
-            my $eval = shift;
-            $class_defaults{$addr}->{$default} = $eval;
+            $self->append_default(shift, shift);
         }
 
-        $other_default{$addr} = shift;
+        $self->set_final_default(shift);
 
         return $self;
     }
 
+    sub append_default($self, $new_default, $eval) {
+        my $addr = pack 'J', refaddr $self;
+
+        # Pushes a default setting to the current list
+        push $class_defaults{$addr}->@*, [ $new_default, $eval ];
+    }
+
+    sub set_final_default($self, $new_default) {
+        my $addr = pack 'J', refaddr $self;
+        $other_default{$addr} = $new_default;
+    }
+
     sub get_next_defaults($self) {
         # Iterates and returns the next class of defaults.
 
-        return each %{$class_defaults{pack 'J', refaddr $self}};
+        my $addr = pack 'J', refaddr $self;
+        if ($iterator{$addr}++ < $class_defaults{$addr}->@*) {
+            return $class_defaults{$addr}->[$iterator{$addr}-1]->@*;
+        }
+
+        $iterator{$addr} = 0;
+        return undef;
     }
 }
 
@@ -3642,7 +3691,10 @@ sub trace { return main::trace(@_); }
         my $class = shift;
         my %args = @_;
 
-        # Optional initialization data for the range list.
+        # Optional initialization data for the range list.  NOTE: For large
+        # ranges, it is better to use Range object rather than
+        #   [ low .. high ]
+        # as it iterates through each one individually in the latter case.
         my $initialize = delete $args{'Initialize'};
 
         my $self;
@@ -8633,7 +8685,7 @@ package Property;
 # starts with unknown type, overridden by a parameter to the constructor, or
 # as match tables are added, or ranges added to the map table, the data is
 # inspected, and the type changed.  After the table is mostly or entirely
-# filled, compute_type() should be called to finalize they analysis.
+# filled, compute_type() should be called to finalize the analysis.
 #
 # There are very few operations defined.  One can safely remove a range from
 # the map table, and property_add_or_replace_non_nulls() adds the maps from another
@@ -9828,7 +9880,7 @@ sub UCD_name ($table, $alias) {
     }
 }
 
-sub dump_inside_out( $object, $fields_ref ) {
+sub dump_inside_out( $object, $fields_ref, @args ) {
     # Dump inside-out hashes in an object's state by converting them to a
     # regular hash and then calling simple_dumper on that.
 
@@ -9839,7 +9891,7 @@ sub dump_inside_out( $object, $fields_re
         $hash{$key} = $fields_ref->{$key}{$addr};
     }
 
-    return simple_dumper(\%hash, $object, $fields_ref);
+    return simple_dumper(\%hash, @args);
 }
 
 sub _operator_dot($self, $other="", $reversed=0) {
@@ -9989,8 +10041,25 @@ sub finish_property_setup($file) {
         }
     }
 
-    # The following use the Multi_Default class to create objects for
-    # defaults.
+    # For backwards compatibility with applications that may read the mapping
+    # file directly (it was documented in 5.12 and 5.14 as being thusly
+    # usable), keep it from being adjusted.  (range_size_1 is
+    # used to force the traditional format.)
+    if (defined (my $nfkc_cf = property_ref('NFKC_Casefold'))) {
+        $nfkc_cf->set_to_output_map($EXTERNAL_MAP);
+        $nfkc_cf->set_range_size_1(1);
+    }
+    if (defined (my $bmg = property_ref('Bidi_Mirroring_Glyph'))) {
+        $bmg->set_to_output_map($EXTERNAL_MAP);
+        $bmg->set_range_size_1(1);
+    }
+
+    property_ref('Numeric_Value')->set_to_output_map($OUTPUT_ADJUSTED);
+
+    # The rest of this sub is for properties that need the Multi_Default class
+    # to create objects for defaults.  As of v15.0, this is no longer needed.
+
+    return if $v_version ge v15.0.0;
 
     # Bidi class has a complicated default, but the derived file takes care of
     # the complications, leaving just 'L'.
@@ -10076,21 +10145,6 @@ sub finish_property_setup($file) {
         }
     }
 
-    # For backwards compatibility with applications that may read the mapping
-    # file directly (it was documented in 5.12 and 5.14 as being thusly
-    # usable), keep it from being adjusted.  (range_size_1 is
-    # used to force the traditional format.)
-    if (defined (my $nfkc_cf = property_ref('NFKC_Casefold'))) {
-        $nfkc_cf->set_to_output_map($EXTERNAL_MAP);
-        $nfkc_cf->set_range_size_1(1);
-    }
-    if (defined (my $bmg = property_ref('Bidi_Mirroring_Glyph'))) {
-        $bmg->set_to_output_map($EXTERNAL_MAP);
-        $bmg->set_range_size_1(1);
-    }
-
-    property_ref('Numeric_Value')->set_to_output_map($OUTPUT_ADJUSTED);
-
     return;
 }
 
@@ -10390,10 +10444,11 @@ END
     # entries in the file, and may not show up until the end.
     my @defaults = $file->get_missings;
     foreach my $default_ref (@defaults) {
-        my $default = $default_ref->[0];
-        my $property = property_ref($default_ref->[1]);
+        my $default = $default_ref->{default};
+        my $property = property_ref($default_ref->{property});
         $property->set_default_map($default);
     }
+
     return;
 }
 
@@ -10865,22 +10920,21 @@ sub output_perl_charnames_line ($code_po
 
                 # If not the first time for this property, retrieve info about
                 # it from the cache
-                if (defined ($property_info{$property_addr}{$TYPE})) {
-                    $property_type = $property_info{$property_addr}{$TYPE};
-                    $default_map = $property_info{$property_addr}{$DEFAULT_MAP};
-                    $map_type
-                        = $property_info{$property_addr}{$PSEUDO_MAP_TYPE};
-                    $default_table
-                            = $property_info{$property_addr}{$DEFAULT_TABLE};
+                my $this_property_info = $property_info{$property_addr};
+                if (defined ($this_property_info->{$TYPE})) {
+                    $property_type = $this_property_info->{$TYPE};
+                    $default_map = $this_property_info->{$DEFAULT_MAP};
+                    $map_type = $this_property_info->{$PSEUDO_MAP_TYPE};
+                    $default_table = $this_property_info->{$DEFAULT_TABLE};
                 }
                 else {
 
                     # Here, is the first time for this property.  Set up the
                     # cache.
-                    $property_type = $property_info{$property_addr}{$TYPE}
+                    $property_type = $this_property_info->{$TYPE}
                                    = $property_object->type;
                     $map_type
-                        = $property_info{$property_addr}{$PSEUDO_MAP_TYPE}
+                        = $this_property_info->{$PSEUDO_MAP_TYPE}
                         = $property_object->pseudo_map_type;
 
                     # The Unicode files are set up so that if the map is not
@@ -10893,9 +10947,8 @@ sub output_perl_charnames_line ($code_po
                         }
                         else {
                             $property_object->set_type($BINARY);
-                            $property_type
-                                = $property_info{$property_addr}{$TYPE}
-                                = $BINARY;
+                            $property_type = $this_property_info->{$TYPE}
+                                           = $BINARY;
                         }
                     }
 
@@ -10905,11 +10958,19 @@ sub output_perl_charnames_line ($code_po
                     # stored by the Input_file class until we access it here.
                     # It's possible that there is more than one such line
                     # waiting for us; collect them all, and parse
-                    my @missings_list = $file->get_missings
+                    my @missings_list;
+                    @missings_list = $file->get_missings
                                             if $file->has_missings_defaults;
+
                     foreach my $default_ref (@missings_list) {
-                        my $default = $default_ref->[0];
-                        my $addr = pack 'J', refaddr property_ref($default_ref->[1]);
+
+                        # For now, we are only interested in the fallback
+                        # default for the entire property. i.e., an @missing
+                        # line that is for the whole Unicode range.
+                        next if $default_ref->{start} != 0
+                             || $default_ref->{end} != $MAX_UNICODE_CODEPOINT;
+
+                        $default_map = $default_ref->{default};
 
                         # For string properties, the default is just what the
                         # file says, but non-string properties should already
@@ -10919,105 +10980,172 @@ sub output_perl_charnames_line ($code_po
                         if ($property_type == $STRING
                             || $property_type == $UNKNOWN)
                         {
-                            $property_info{$addr}{$MISSINGS} = $default;
+                            $this_property_info->{$MISSINGS} = $default_map;
                         }
                         else {
-                            $property_info{$addr}{$MISSINGS}
-                                        = $property_object->table($default);
+                            $default_map =
+                               $property_object->table($default_map)->full_name;
+                            $this_property_info->{$MISSINGS} = $default_map;
+                            $this_property_info->{$DEFAULT_MAP} = $default_map;
+                            if (! defined $property_object->default_map) {
+                                $property_object->set_default_map($default_map);
+                            }
                         }
                     }
 
-                    # Finished storing all the @missings defaults in the input
-                    # file so far.  Get the one for the current property.
-                    my $missings = $property_info{$property_addr}{$MISSINGS};
-
-                    # But we likely have separately stored what the default
-                    # should be.  (This is to accommodate versions of the
-                    # standard where the @missings lines are absent or
-                    # incomplete.)  Hopefully the two will match.  But check
-                    # it out.
-                    $default_map = $property_object->default_map;
-
-                    # If the map is a ref, it means that the default won't be
-                    # processed until later, so undef it, so next few lines
-                    # will redefine it to something that nothing will match
-                    undef $default_map if ref $default_map;
-
-                    # Create a $default_map if don't have one; maybe a dummy
-                    # that won't match anything.
-                    if (! defined $default_map) {
+                    # For later Unicode versions, multiple @missing lines for
+                    # a single property can appear in the files.  The first
+                    # always applies to the entire Unicode range, and was
+                    # handled above.  The subsequent ones are for smaller
+                    # ranges, and can be read as "But for this range, the
+                    # default is ...".  So each overrides all the preceding
+                    # ones for the range it applies to.  Typically they apply
+                    # to disjoint ranges, but don't have to.  What we do is to
+                    # set them up to work in reverse order, so that after the
+                    # rest of the table is filled, the highest priority
+                    # default range fills in any code points that haven't been
+                    # specified; then the next highest priority one is
+                    # applied, and so forth.
+                    if (@missings_list > 1 && $v_version ge v15.0.0) {
+                        if ($property_type != $ENUM) {
+                            Carp::my_carp_bug("Multiple \@missings lines only"
+                                            . " make sense for ENUM-type"
+                                            . " properties.  Changing type to"
+                                            . " that");
+                            $property_type = $this_property_info->{$TYPE}
+                                                                        = $ENUM;
+                            $property_object->set_type($ENUM);
+                        }
 
-                        # Use any @missings line in the file.
-                        if (defined $missings) {
-                            if (ref $missings) {
-                                $default_map = $missings->full_name;
-                                $default_table = $missings;
+                        my $multi = Multi_Default->new();
+
+                        # The overall default should be first on this list,
+                        # and is handled differently than the rest.
+                        $default_map = shift @missings_list;
+                        Carp::my_carp_bug("\@missings needs to be entire range")
+                            if $default_map->{start} != 0
+                            || $default_map->{end} != $MAX_UNICODE_CODEPOINT;
+
+                        # We already have looked at this line above.  Use that
+                        # result
+                        $multi->set_final_default($this_property_info->
+                                                                  {$MISSINGS});
+
+                        # Now get the individual range elements, and add them
+                        # to Multi_Default object
+                        while (@missings_list) {
+                            my $this_entry = pop @missings_list;
+                            my $subrange_default = $this_entry->{default};
+
+                            # Use the short name as a standard
+                            $subrange_default = $property_object->
+                                        table($subrange_default)->short_name;
+                            $multi->append_default($subrange_default,
+                                "Range_List->new(Initialize => Range->new("
+                              . "$this_entry->{start}, $this_entry->{end}))");
+                        }
+
+                        # Override the property's simple default with this.
+                        $property_object->set_default_map($multi);
+                    }
+
+                    if (! $default_map || $property_type != $ENUM) {
+
+                        # Finished storing all the @missings defaults in the
+                        # input file so far.  Get the one for the current
+                        # property.
+                        my $missings = $this_property_info->{$MISSINGS};
+
+                        # But we likely have separately stored what the
+                        # default should be.  (This is to accommodate versions
+                        # of the standard where the @missings lines are absent
+                        # or incomplete.)  Hopefully the two will match.  But
+                        # check it out.
+                        $default_map = $property_object->default_map;
+
+                        # If the map is a ref, it means that the default won't
+                        # be processed until later, so undef it, so next few
+                        # lines will redefine it to something that nothing
+                        # will match
+                        undef $default_map if ref $default_map;
+
+                        # Create a $default_map if don't have one; maybe a
+                        # dummy that won't match anything.
+                        if (! defined $default_map) {
+
+                            # Use any @missings line in the file.
+                            if (defined $missings) {
+                                if (ref $missings) {
+                                    $default_map = $missings->full_name;
+                                    $default_table = $missings;
+                                }
+                                else {
+                                    $default_map = $missings;
+                                }
+
+                                # And store it with the property for outside
+                                # use.
+                                $property_object->set_default_map($default_map);
                             }
                             else {
-                                $default_map = $missings;
-                            }
 
-                            # And store it with the property for outside use.
-                            $property_object->set_default_map($default_map);
+                                # Neither an @missings nor a default map.
+                                # Create a dummy one, so won't have to test
+                                # definedness in the main loop.
+                                $default_map = '_Perl This will never be in a'
+                                             . ' file from Unicode';
+                            }
                         }
-                        else {
 
-                            # Neither an @missings nor a default map.  Create
-                            # a dummy one, so won't have to test definedness
-                            # in the main loop.
-                            $default_map = '_Perl This will never be in a file
-                                            from Unicode';
-                        }
-                    }
+                        # Here, we have $default_map defined, possibly in
+                        # terms of $missings, but maybe not, and possibly is a
+                        # dummy one.
+                        if (defined $missings) {
 
-                    # Here, we have $default_map defined, possibly in terms of
-                    # $missings, but maybe not, and possibly is a dummy one.
-                    if (defined $missings) {
-
-                        # Make sure there is no conflict between the two.
-                        # $missings has priority.
-                        if (ref $missings) {
-                            $default_table
+                            # Make sure there is no conflict between the two.
+                            # $missings has priority.
+                            if (ref $missings) {
+                                $default_table
                                         = $property_object->table($default_map);
-                            if (! defined $default_table
-                                || $default_table != $missings)
-                            {
-                                if (! defined $default_table) {
-                                    $default_table = $UNDEF;
-                                }
-                                $file->carp_bad_line(<<END
+                                if ( ! defined $default_table
+                                    || $default_table != $missings)
+                                {
+                                    if (! defined $default_table) {
+                                        $default_table = $UNDEF;
+                                    }
+                                    $file->carp_bad_line(<<END
 The \@missings line for $property_name in $file says that missings default to
 $missings, but we expect it to be $default_table.  $missings used.
 END
-                                );
-                                $default_table = $missings;
-                                $default_map = $missings->full_name;
+                                    );
+                                    $default_table = $missings;
+                                    $default_map = $missings->full_name;
+                                }
+                                $this_property_info->{$DEFAULT_TABLE}
+                                                            = $default_table;
                             }
-                            $property_info{$property_addr}{$DEFAULT_TABLE}
-                                                        = $default_table;
-                        }
-                        elsif ($default_map ne $missings) {
-                            $file->carp_bad_line(<<END
+                            elsif ($default_map ne $missings) {
+                                $file->carp_bad_line(<<END
 The \@missings line for $property_name in $file says that missings default to
 $missings, but we expect it to be $default_map.  $missings used.
 END
-                            );
-                            $default_map = $missings;
+                                );
+                                $default_map = $missings;
+                            }
                         }
-                    }
 
-                    $property_info{$property_addr}{$DEFAULT_MAP}
-                                                    = $default_map;
+                        $this_property_info->{$DEFAULT_MAP} = $default_map;
 
-                    # If haven't done so already, find the table corresponding
-                    # to this map for non-string properties.
-                    if (! defined $default_table
-                        && $property_type != $STRING
-                        && $property_type != $UNKNOWN)
-                    {
-                        $default_table = $property_info{$property_addr}
-                                                        {$DEFAULT_TABLE}
-                                    = $property_object->table($default_map);
+                        # If haven't done so already, find the table
+                        # corresponding to this map for non-string properties.
+                        if (! defined $default_table
+                            && $property_type != $STRING
+                            && $property_type != $UNKNOWN)
+                        {
+                            $default_table
+                                        = $this_property_info->{$DEFAULT_TABLE}
+                                        = $property_object->table($default_map);
+                        }
                     }
                 } # End of is first time for this property
             } # End of switching properties.
@@ -11047,7 +11175,8 @@ END
                 }
             }
 
-            if ($default_map eq $CODE_POINT && $map =~ / ^ $code_point_re $/x)
+            if (   $default_map eq $CODE_POINT
+                && $map =~ / ^ $code_point_re $/x)
             {
 
                 # Here, we have a map to a particular code point, and the
@@ -11082,14 +11211,45 @@ END
                 }
             }
 
-            # If we can tell that this is a synonym for the default map, use
-            # the default one instead.
-            if ($property_type != $STRING
-                && $property_type != $UNKNOWN)
-            {
+            if ($property_type != $STRING && $property_type != $UNKNOWN) {
                 my $table = $property_object->table($map);
-                if (defined $table && $table == $default_table) {
-                    $map = $default_map;
+                if (defined $table) {
+
+                    # Unicode isn't very consistent about which synonym they
+                    # use in their .txt files, even within the same file, or
+                    # two files that are for the same property.  For enum
+                    # properties, we know already what all the synonyms are
+                    # (because we processed PropValueAliases already).
+                    # Therefore we can take the input and map it to a uniform
+                    # value now, saving us trouble later.
+                    #
+                    # Only if the map is well-behaved do we try this:
+                    # non-empty, all non-blank.
+                    if ($property_type == $ENUM && $map =~ / ^ \S+ $ /x) {
+
+                        # Use existing practice as much as easily practicable,
+                        # so that code that has assumptions about spelling
+                        # doesn't have to change
+                        my $short_name = $property_object->short_name;
+                        if ($short_name =~ / ^ (BC | EA | GC  |HST | JT |
+                                                Lb | BT | BPT | NFCQC |
+                                                NFKCQC) $ /ix)
+                        {
+                            $map = $table->short_name;
+                        }
+                        elsif ($short_name !~ / ^ ( Ccc | Age | InSC | JG |
+                                                    SB) $ /ix)
+                        {
+                            $map = $table->full_name;
+                        }
+                    }
+                    elsif ($table == $default_table) {
+
+                        # When it isn't an ENUM, we we can still tell if
+                        # this is a synonym for the default map.  If so, use
+                        # the default one instead.
+                        $map = $default_map;
+                    }
                 }
             }
 
@@ -13324,6 +13484,7 @@ END
             #
             # Go through each list.
             while (my ($default, $eval) = $default_map->get_next_defaults) {
+                last unless defined $eval;
 
                 # Get the class list, and intersect it with all the so-far
                 # unspecified code points yielding all the code points
@@ -13341,7 +13502,7 @@ END
                 # Add mappings to the property for each code point in the list
                 foreach my $range ($list->ranges) {
                     $property->add_map($range->start, $range->end, $default,
-                    Replace => $CROAK);
+                    Replace => $NO);
                 }
             }
 
@@ -17196,10 +17357,6 @@ sub make_Name_pm () {
 $HEADER
 $INTERNAL_ONLY_HEADER
 
-=head1 NAME -- Internal generated file for use by charnames
-
-=cut
-
 END
 
     # Convert these structures to output format.
@@ -19062,6 +19219,7 @@ my $Indic_Skip
             = "Provisional; for the analysis and processing of Indic scripts";
 my $Validation = "Validation Tests";
 my $Validation_Documentation = "Documentation of validation Tests";
+my $Unused_Skip = "Currently unused by Perl";
 
 # This is a list of the input files and how to handle them.  The files are
 # processed in their order in this list.  Some reordering is possible if
@@ -19623,6 +19781,18 @@ my @input_file_objects = (
                     Pre_Handler => \&setup_IdType,
                     Each_Line_Handler => \&filter_IdType_line,
                     Property => 'Identifier_Type',
+                    UCD => 0,
+                   ),
+    Input_file->new('confusables.txt', v15.0.0,
+                    Skip => $Unused_Skip,
+                    UCD => 0,
+                   ),
+    Input_file->new('confusablesSummary.txt', v15.0.0,
+                    Skip => $Unused_Skip,
+                    UCD => 0,
+                   ),
+    Input_file->new('intentional.txt', v15.0.0,
+                    Skip => $Unused_Skip,
                     UCD => 0,
                    ),
 );
Index: gnu/usr.bin/perl/lib/unicore/mktables.lst
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/mktables.lst,v
diff -u -p -a -u -p -r1.13 mktables.lst
--- gnu/usr.bin/perl/lib/unicore/mktables.lst	15 Feb 2023 01:39:51 -0000	1.13
+++ gnu/usr.bin/perl/lib/unicore/mktables.lst	21 Feb 2024 15:47:02 -0000
@@ -1,8 +1,8 @@
 #
 # mktables.lst -- File list for lib/unicore/mktables.
 #
-#   Autogenerated starting on 1672805144 (Tue Jan  3 20:05:44 2023)
-#   From options -C lib/unicore -P pod -maketest -makelist -p
+#   Autogenerated starting on 1704393521 (Thu Jan  4 10:38:41 2024)
+#   From options -C lib/unicore -P pod -maketest -makenormtest -makelist -p
 #
 # - First section is input files
 #   (lib/unicore/mktables itself is not listed but is automatically considered an input)
@@ -34,6 +34,7 @@ Jamo.txt
 LineBreak.txt
 NameAliases.txt
 NamedSequences.txt
+NormTest.txt
 PropList.txt
 PropValueAliases.txt
 PropertyAliases.txt
@@ -71,6 +72,7 @@ CombiningClass.pl
 Decomposition.pl
 Name.pl
 Name.pm
+TestNorm.pl
 TestProp.pl
 To/Age.pl
 To/Bc.pl
@@ -119,6 +121,7 @@ lib/Age/V110.pl
 lib/Age/V120.pl
 lib/Age/V130.pl
 lib/Age/V140.pl
+lib/Age/V150.pl
 lib/Age/V20.pl
 lib/Age/V30.pl
 lib/Age/V31.pl
@@ -269,6 +272,7 @@ lib/In/12_0.pl
 lib/In/12_1.pl
 lib/In/13_0.pl
 lib/In/14_0.pl
+lib/In/15_0.pl
 lib/In/2_0.pl
 lib/In/2_1.pl
 lib/In/3_0.pl
@@ -309,7 +313,9 @@ lib/InSC/Consona5.pl
 lib/InSC/Consona6.pl
 lib/InSC/Consona7.pl
 lib/InSC/Consona8.pl
+lib/InSC/Consona9.pl
 lib/InSC/Consonan.pl
+lib/InSC/Geminati.pl
 lib/InSC/Invisibl.pl
 lib/InSC/Nukta.pl
 lib/InSC/Number.pl
@@ -611,7 +617,7 @@ lib/WB/XX.pl
 lib/XIDC/Y.pl
 lib/XIDS/Y.pl
 
-# 48 input files
-# 545 output files
+# 49 input files
+# 550 output files
 
 # End list
Index: gnu/usr.bin/perl/lib/unicore/uni_keywords.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/uni_keywords.pl,v
diff -u -p -a -u -p -r1.1.1.3 uni_keywords.pl
--- gnu/usr.bin/perl/lib/unicore/uni_keywords.pl	15 Feb 2023 01:33:06 -0000	1.1.1.3
+++ gnu/usr.bin/perl/lib/unicore/uni_keywords.pl	21 Feb 2024 15:47:02 -0000
@@ -1,22 +1,22 @@
-# -*- buffer-read-only: t -*-
+# -*- mode: Perl; buffer-read-only: t -*-
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is built by regen/mk_invlists.pl from Unicode::UCD.
 # Any changes made here will be lost!
 
 %Unicode::UCD::uni_prop_ptrs_indices = (
-    '_perl_any_folds' => 1211,
-    '_perl_charname_begin' => 1212,
-    '_perl_charname_continue' => 1213,
-    '_perl_folds_to_multi_char' => 1214,
-    '_perl_idcont' => 1215,
-    '_perl_idstart' => 1216,
-    '_perl_is_in_multi_char_fold' => 1217,
-    '_perl_nchar' => 1218,
-    '_perl_patws' => 1219,
-    '_perl_problematic_locale_foldeds_start' => 1220,
-    '_perl_problematic_locale_folds' => 1221,
-    '_perl_quotemeta' => 1222,
-    '_perl_surrogate' => 1223,
+    '_perl_any_folds' => 1222,
+    '_perl_charname_begin' => 1223,
+    '_perl_charname_continue' => 1224,
+    '_perl_folds_to_multi_char' => 1225,
+    '_perl_idcont' => 1226,
+    '_perl_idstart' => 1227,
+    '_perl_is_in_multi_char_fold' => 1228,
+    '_perl_nchar' => 1229,
+    '_perl_patws' => 1230,
+    '_perl_problematic_locale_foldeds_start' => 1231,
+    '_perl_problematic_locale_folds' => 1232,
+    '_perl_quotemeta' => 1233,
+    '_perl_surrogate' => 1234,
     'adlm' => 1,
     'aegeannumbers' => 2,
     'age=10' => 3,
@@ -25,1303 +25,1315 @@
     'age=12.1' => 6,
     'age=13' => 7,
     'age=14' => 8,
-    'age=2' => 9,
-    'age=2.1' => 10,
-    'age=3' => 11,
-    'age=3.1' => 12,
-    'age=3.2' => 13,
-    'age=4' => 14,
-    'age=4.1' => 15,
-    'age=5' => 16,
-    'age=5.1' => 17,
-    'age=5.2' => 18,
-    'age=6' => 19,
-    'age=6.1' => 20,
-    'age=6.2' => 21,
-    'age=6.3' => 22,
-    'age=7' => 23,
-    'age=8' => 24,
-    'age=9' => 25,
-    'aghb' => 26,
-    'ahex' => 986,
-    'ahom' => 27,
-    'alchemical' => 28,
-    'all' => 29,
-    'alnum' => 1184,
-    'alpha' => 1185,
-    'alphabetic' => 1185,
-    'alphabeticpf' => 30,
-    'ancientgreekmusic' => 31,
-    'ancientgreeknumbers' => 32,
-    'ancientsymbols' => 33,
-    'any' => 34,
-    'arab' => 35,
-    'arabicexta' => 36,
-    'arabicextb' => 37,
-    'arabicmath' => 38,
-    'arabicpfa' => 39,
-    'arabicpfb' => 40,
-    'arabicsup' => 41,
-    'armi' => 42,
-    'armn' => 43,
-    'arrows' => 44,
-    'ascii' => 45,
-    'asciihexdigit' => 986,
-    'assigned' => 46,
-    'avst' => 47,
-    'bali' => 48,
-    'bamu' => 49,
-    'bamumsup' => 50,
-    'basiclatin' => 45,
-    'bass' => 51,
-    'batk' => 52,
-    'bc=al' => 53,
-    'bc=an' => 54,
-    'bc=b' => 55,
-    'bc=bn' => 56,
-    'bc=cs' => 57,
-    'bc=en' => 58,
-    'bc=es' => 59,
-    'bc=et' => 60,
-    'bc=fsi' => 61,
-    'bc=l' => 62,
-    'bc=lre' => 63,
-    'bc=lri' => 64,
-    'bc=lro' => 65,
-    'bc=nsm' => 66,
-    'bc=on' => 67,
-    'bc=pdf' => 68,
-    'bc=pdi' => 69,
-    'bc=r' => 70,
-    'bc=rle' => 71,
-    'bc=rli' => 72,
-    'bc=rlo' => 73,
-    'bc=s' => 74,
-    'bc=ws' => 75,
-    'beng' => 76,
-    'bhks' => 77,
-    'bidic' => 78,
-    'bidim' => 79,
-    'blank' => 1186,
-    'blockelements' => 80,
-    'bopo' => 81,
-    'bopomofoext' => 82,
-    'boxdrawing' => 83,
-    'bpt=c' => 84,
-    'bpt=n' => 85,
-    'bpt=o' => 86,
-    'brah' => 87,
-    'brai' => 88,
-    'bugi' => 89,
-    'buhd' => 90,
-    'byzantinemusic' => 91,
-    'c' => 92,
-    'cakm' => 93,
-    'cans' => 94,
-    'cari' => 95,
-    'cased' => 96,
-    'casedletter' => 97,
-    'cc' => 1187,
-    'ccc=0' => 98,
-    'ccc=1' => 99,
-    'ccc=10' => 100,
-    'ccc=103' => 101,
-    'ccc=107' => 102,
-    'ccc=11' => 103,
-    'ccc=118' => 104,
-    'ccc=12' => 105,
-    'ccc=122' => 106,
-    'ccc=129' => 107,
-    'ccc=13' => 108,
-    'ccc=130' => 109,
-    'ccc=132' => 110,
-    'ccc=14' => 111,
-    'ccc=15' => 112,
-    'ccc=16' => 113,
-    'ccc=17' => 114,
-    'ccc=18' => 115,
-    'ccc=19' => 116,
-    'ccc=20' => 117,
-    'ccc=202' => 118,
-    'ccc=21' => 119,
-    'ccc=214' => 120,
-    'ccc=216' => 121,
-    'ccc=22' => 122,
-    'ccc=23' => 123,
-    'ccc=24' => 124,
-    'ccc=25' => 125,
-    'ccc=26' => 126,
-    'ccc=27' => 127,
-    'ccc=28' => 128,
-    'ccc=29' => 129,
-    'ccc=30' => 130,
-    'ccc=31' => 131,
-    'ccc=32' => 132,
-    'ccc=33' => 133,
-    'ccc=34' => 134,
-    'ccc=35' => 135,
-    'ccc=36' => 136,
-    'ccc=6' => 137,
-    'ccc=7' => 138,
-    'ccc=8' => 139,
-    'ccc=84' => 140,
-    'ccc=9' => 141,
-    'ccc=91' => 142,
-    'ccc=a' => 143,
-    'ccc=al' => 144,
-    'ccc=ar' => 145,
-    'ccc=b' => 146,
-    'ccc=bl' => 147,
-    'ccc=br' => 148,
-    'ccc=da' => 149,
-    'ccc=db' => 150,
-    'ccc=is' => 151,
-    'ccc=l' => 152,
-    'ccc=r' => 153,
-    'ce' => 154,
-    'cf' => 155,
-    'cham' => 156,
-    'cher' => 157,
-    'cherokeesup' => 158,
-    'chesssymbols' => 159,
-    'chrs' => 160,
-    'ci' => 161,
-    'cjk' => 162,
-    'cjkcompat' => 163,
-    'cjkcompatforms' => 164,
-    'cjkcompatideographs' => 165,
-    'cjkcompatideographssup' => 166,
-    'cjkexta' => 167,
-    'cjkextb' => 168,
-    'cjkextc' => 169,
-    'cjkextd' => 170,
-    'cjkexte' => 171,
-    'cjkextf' => 172,
-    'cjkextg' => 173,
-    'cjkradicalssup' => 174,
-    'cjkstrokes' => 175,
-    'cjksymbols' => 176,
-    'cn' => 177,
-    'cntrl' => 1187,
-    'co' => 178,
-    'compatjamo' => 179,
-    'compex' => 180,
-    'control' => 1187,
-    'controlpictures' => 181,
-    'copt' => 182,
-    'copticepactnumbers' => 183,
-    'countingrod' => 184,
-    'cpmn' => 185,
-    'cprt' => 186,
-    'cuneiformnumbers' => 187,
-    'currencysymbols' => 188,
-    'cwcf' => 189,
-    'cwcm' => 190,
-    'cwkcf' => 191,
-    'cwl' => 192,
-    'cwt' => 193,
-    'cwu' => 194,
-    'cypriotsyllabary' => 195,
-    'cyrillicexta' => 196,
-    'cyrillicextb' => 197,
-    'cyrillicextc' => 198,
-    'cyrillicsup' => 199,
-    'cyrl' => 200,
-    'dash' => 201,
-    'decimalnumber' => 1188,
-    'dep' => 202,
-    'deva' => 203,
-    'devanagariext' => 204,
-    'di' => 205,
-    'dia' => 206,
-    'diacriticals' => 207,
-    'diacriticalsext' => 208,
-    'diacriticalsforsymbols' => 209,
-    'diacriticalssup' => 210,
-    'diak' => 211,
-    'digit' => 1188,
-    'dingbats' => 212,
-    'dogr' => 213,
-    'domino' => 214,
-    'dsrt' => 215,
-    'dt=can' => 216,
-    'dt=com' => 217,
-    'dt=enc' => 218,
-    'dt=fin' => 219,
-    'dt=font' => 220,
-    'dt=fra' => 221,
-    'dt=init' => 222,
-    'dt=iso' => 223,
-    'dt=med' => 224,
-    'dt=nar' => 225,
-    'dt=nb' => 226,
-    'dt=noncanon' => 227,
-    'dt=none' => 228,
-    'dt=sml' => 229,
-    'dt=sqr' => 230,
-    'dt=sub' => 231,
-    'dt=sup' => 232,
-    'dt=vert' => 233,
-    'dupl' => 234,
-    'ea=a' => 236,
-    'ea=f' => 237,
-    'ea=h' => 238,
-    'ea=n' => 239,
-    'ea=na' => 240,
-    'ea=w' => 241,
-    'earlydynasticcuneiform' => 235,
-    'ebase' => 242,
-    'ecomp' => 243,
-    'egyp' => 244,
-    'egyptianhieroglyphformatcontrols' => 245,
-    'elba' => 246,
-    'elym' => 247,
-    'emod' => 248,
-    'emoji' => 249,
-    'emoticons' => 250,
-    'enclosedalphanum' => 251,
-    'enclosedalphanumsup' => 252,
-    'enclosedcjk' => 253,
-    'enclosedideographicsup' => 254,
-    'epres' => 255,
-    'ethi' => 256,
-    'ethiopicext' => 257,
-    'ethiopicexta' => 258,
-    'ethiopicextb' => 259,
-    'ethiopicsup' => 260,
-    'ext' => 261,
-    'extpict' => 262,
-    'gcb=cn' => 263,
-    'gcb=ex' => 264,
-    'gcb=l' => 265,
-    'gcb=pp' => 266,
-    'gcb=sm' => 267,
-    'gcb=t' => 268,
-    'gcb=v' => 269,
-    'gcb=xx' => 270,
-    'geometricshapes' => 271,
-    'geometricshapesext' => 272,
-    'geor' => 273,
-    'georgianext' => 274,
-    'georgiansup' => 275,
-    'glag' => 276,
-    'glagoliticsup' => 277,
-    'gong' => 278,
-    'gonm' => 279,
-    'goth' => 280,
-    'gran' => 281,
-    'graph' => 1189,
-    'grbase' => 282,
-    'greekext' => 283,
-    'grek' => 284,
-    'grext' => 285,
-    'gujr' => 286,
-    'guru' => 287,
-    'halfandfullforms' => 288,
-    'halfmarks' => 289,
-    'han' => 290,
-    'hang' => 291,
-    'hano' => 292,
-    'hatr' => 293,
-    'hebr' => 294,
-    'hex' => 1196,
-    'hexdigit' => 1196,
-    'highpusurrogates' => 295,
-    'highsurrogates' => 296,
-    'hira' => 297,
-    'hluw' => 298,
-    'hmng' => 299,
-    'hmnp' => 300,
-    'horizspace' => 1186,
-    'hst=na' => 301,
-    'hung' => 302,
-    'hyphen_perl_aux' => 303,
-    'idc' => 304,
-    'identifierstatus=allowed' => 305,
-    'identifierstatus=restricted' => 306,
-    'identifiertype=defaultignorable' => 307,
-    'identifiertype=exclusion' => 308,
-    'identifiertype=inclusion' => 309,
-    'identifiertype=limiteduse' => 310,
-    'identifiertype=notcharacter' => 311,
-    'identifiertype=notnfkc' => 312,
-    'identifiertype=notxid' => 313,
-    'identifiertype=obsolete' => 314,
-    'identifiertype=recommended' => 315,
-    'identifiertype=technical' => 316,
-    'identifiertype=uncommonuse' => 317,
-    'ideo' => 318,
-    'ideographicsymbols' => 319,
-    'ids' => 320,
-    'idsb' => 321,
-    'idst' => 322,
-    'in=1.1' => 526,
-    'in=10' => 520,
-    'in=11' => 521,
-    'in=12' => 522,
-    'in=12.1' => 523,
-    'in=13' => 524,
-    'in=14' => 525,
-    'in=2' => 527,
-    'in=2.1' => 528,
-    'in=3' => 529,
-    'in=3.1' => 530,
-    'in=3.2' => 531,
-    'in=4' => 532,
-    'in=4.1' => 533,
-    'in=5' => 534,
-    'in=5.1' => 535,
-    'in=5.2' => 536,
-    'in=6' => 537,
-    'in=6.1' => 538,
-    'in=6.2' => 539,
-    'in=6.3' => 540,
-    'in=7' => 541,
-    'in=8' => 542,
-    'in=9' => 543,
-    'in=na' => 544,
-    'inadlam' => 323,
-    'inahom' => 324,
-    'inanatolianhieroglyphs' => 325,
-    'inarabic' => 326,
-    'inarmenian' => 327,
-    'inavestan' => 328,
-    'inbalinese' => 329,
-    'inbamum' => 330,
-    'inbassavah' => 331,
-    'inbatak' => 332,
-    'inbengali' => 333,
-    'inbhaiksuki' => 334,
-    'inbopomofo' => 335,
-    'inbrahmi' => 336,
-    'inbuginese' => 337,
-    'inbuhid' => 338,
-    'incarian' => 339,
-    'incaucasianalbanian' => 340,
-    'inchakma' => 341,
-    'incham' => 342,
-    'incherokee' => 343,
-    'inchorasmian' => 344,
-    'incoptic' => 345,
-    'incuneiform' => 346,
-    'incyprominoan' => 347,
-    'incyrillic' => 348,
-    'indevanagari' => 349,
-    'indicnumberforms' => 350,
-    'indicsiyaqnumbers' => 351,
-    'indivesakuru' => 352,
-    'indogra' => 353,
-    'induployan' => 354,
-    'inegyptianhieroglyphs' => 355,
-    'inelbasan' => 356,
-    'inelymaic' => 357,
-    'inethiopic' => 358,
-    'ingeorgian' => 359,
-    'inglagolitic' => 360,
-    'ingothic' => 361,
-    'ingrantha' => 362,
-    'ingreek' => 363,
-    'ingujarati' => 364,
-    'ingunjalagondi' => 365,
-    'ingurmukhi' => 366,
-    'inhangul' => 367,
-    'inhanifirohingya' => 368,
-    'inhanunoo' => 369,
-    'inhatran' => 370,
-    'inhebrew' => 371,
-    'inhiragana' => 372,
-    'inidc' => 373,
-    'inimperialaramaic' => 374,
-    'ininscriptionalpahlavi' => 375,
-    'ininscriptionalparthian' => 376,
-    'injavanese' => 377,
-    'inkaithi' => 378,
-    'inkannada' => 379,
-    'inkatakana' => 380,
-    'inkharoshthi' => 381,
-    'inkhitansmallscript' => 382,
-    'inkhmer' => 383,
-    'inkhojki' => 384,
-    'inkhudawadi' => 385,
-    'inlao' => 386,
-    'inlepcha' => 387,
-    'inlimbu' => 388,
-    'inlineara' => 389,
-    'inlisu' => 390,
-    'inlycian' => 391,
-    'inlydian' => 392,
-    'inmahajani' => 393,
-    'inmakasar' => 394,
-    'inmalayalam' => 395,
-    'inmandaic' => 396,
-    'inmanichaean' => 397,
-    'inmarchen' => 398,
-    'inmasaramgondi' => 399,
-    'inmedefaidrin' => 400,
-    'inmeeteimayek' => 401,
-    'inmendekikakui' => 402,
-    'inmeroiticcursive' => 403,
-    'inmiao' => 404,
-    'inmodi' => 405,
-    'inmongolian' => 406,
-    'inmro' => 407,
-    'inmultani' => 408,
-    'inmyanmar' => 409,
-    'innabataean' => 410,
-    'innandinagari' => 411,
-    'innewa' => 412,
-    'innewtailue' => 413,
-    'innko' => 414,
-    'innushu' => 415,
-    'innyiakengpuachuehmong' => 416,
-    'inogham' => 417,
-    'inoldhungarian' => 418,
-    'inolditalic' => 419,
-    'inoldpermic' => 420,
-    'inoldpersian' => 421,
-    'inoldsogdian' => 422,
-    'inoldturkic' => 423,
-    'inolduyghur' => 424,
-    'inoriya' => 425,
-    'inosage' => 426,
-    'inosmanya' => 427,
-    'inpahawhhmong' => 428,
-    'inpaucinhau' => 429,
-    'inpc=bottom' => 430,
-    'inpc=bottomandleft' => 431,
-    'inpc=bottomandright' => 432,
-    'inpc=left' => 433,
-    'inpc=leftandright' => 434,
-    'inpc=na' => 435,
-    'inpc=overstruck' => 436,
-    'inpc=right' => 437,
-    'inpc=top' => 438,
-    'inpc=topandbottom' => 439,
-    'inpc=topandbottomandleft' => 440,
-    'inpc=topandbottomandright' => 441,
-    'inpc=topandleft' => 442,
-    'inpc=topandleftandright' => 443,
-    'inpc=topandright' => 444,
-    'inphagspa' => 445,
-    'inphoenician' => 446,
-    'inpsalterpahlavi' => 447,
-    'inpunctuation' => 448,
-    'inrejang' => 449,
-    'inrunic' => 450,
-    'insamaritan' => 451,
-    'insaurashtra' => 452,
-    'insc=avagraha' => 453,
-    'insc=bindu' => 454,
-    'insc=brahmijoiningnumber' => 455,
-    'insc=cantillationmark' => 456,
-    'insc=consonant' => 457,
-    'insc=consonantdead' => 458,
-    'insc=consonantfinal' => 459,
-    'insc=consonantheadletter' => 460,
-    'insc=consonantinitialpostfixed' => 461,
-    'insc=consonantkiller' => 462,
-    'insc=consonantmedial' => 463,
-    'insc=consonantplaceholder' => 464,
-    'insc=consonantprecedingrepha' => 465,
-    'insc=consonantprefixed' => 466,
-    'insc=consonantsubjoined' => 467,
-    'insc=consonantsucceedingrepha' => 468,
-    'insc=consonantwithstacker' => 469,
-    'insc=geminationmark' => 470,
-    'insc=invisiblestacker' => 471,
-    'insc=modifyingletter' => 472,
-    'insc=nonjoiner' => 473,
-    'insc=nukta' => 474,
-    'insc=number' => 475,
-    'insc=numberjoiner' => 476,
-    'insc=other' => 477,
-    'insc=purekiller' => 478,
-    'insc=registershifter' => 479,
-    'insc=syllablemodifier' => 480,
-    'insc=toneletter' => 481,
-    'insc=tonemark' => 482,
-    'insc=virama' => 483,
-    'insc=visarga' => 484,
-    'insc=vowel' => 485,
-    'insc=voweldependent' => 486,
-    'insc=vowelindependent' => 487,
-    'insiddham' => 488,
-    'insinhala' => 489,
-    'insogdian' => 490,
-    'insorasompeng' => 491,
-    'insoyombo' => 492,
-    'insundanese' => 493,
-    'insylotinagri' => 494,
-    'insyriac' => 495,
-    'intagalog' => 496,
-    'intagbanwa' => 497,
-    'intaile' => 498,
-    'intaitham' => 499,
-    'intaiviet' => 500,
-    'intakri' => 501,
-    'intamil' => 502,
-    'intangsa' => 503,
-    'intangut' => 504,
-    'intelugu' => 505,
-    'inthaana' => 506,
-    'inthai' => 507,
-    'intibetan' => 508,
-    'intifinagh' => 509,
-    'intirhuta' => 510,
-    'intoto' => 511,
-    'inugaritic' => 512,
-    'invai' => 513,
-    'invithkuqi' => 514,
-    'invs' => 515,
-    'inwancho' => 516,
-    'inwarangciti' => 517,
-    'inyezidi' => 518,
-    'inzanabazarsquare' => 519,
-    'ipaext' => 545,
-    'ital' => 546,
-    'jamo' => 547,
-    'jamoexta' => 548,
-    'jamoextb' => 549,
-    'java' => 550,
-    'jg=africanfeh' => 551,
-    'jg=africannoon' => 552,
-    'jg=africanqaf' => 553,
-    'jg=ain' => 554,
-    'jg=alaph' => 555,
-    'jg=alef' => 556,
-    'jg=beh' => 557,
-    'jg=beth' => 558,
-    'jg=burushaskiyehbarree' => 559,
-    'jg=dal' => 560,
-    'jg=dalathrish' => 561,
-    'jg=e' => 562,
-    'jg=farsiyeh' => 563,
-    'jg=fe' => 564,
-    'jg=feh' => 565,
-    'jg=finalsemkath' => 566,
-    'jg=gaf' => 567,
-    'jg=gamal' => 568,
-    'jg=hah' => 569,
-    'jg=hamzaonhehgoal' => 570,
-    'jg=hanifirohingyakinnaya' => 571,
-    'jg=hanifirohingyapa' => 572,
-    'jg=he' => 573,
-    'jg=heh' => 574,
-    'jg=hehgoal' => 575,
-    'jg=heth' => 576,
-    'jg=kaf' => 577,
-    'jg=kaph' => 578,
-    'jg=khaph' => 579,
-    'jg=knottedheh' => 580,
-    'jg=lam' => 581,
-    'jg=lamadh' => 582,
-    'jg=malayalambha' => 583,
-    'jg=malayalamja' => 584,
-    'jg=malayalamlla' => 585,
-    'jg=malayalamllla' => 586,
-    'jg=malayalamnga' => 587,
-    'jg=malayalamnna' => 588,
-    'jg=malayalamnnna' => 589,
-    'jg=malayalamnya' => 590,
-    'jg=malayalamra' => 591,
-    'jg=malayalamssa' => 592,
-    'jg=malayalamtta' => 593,
-    'jg=manichaeanaleph' => 594,
-    'jg=manichaeanayin' => 595,
-    'jg=manichaeanbeth' => 596,
-    'jg=manichaeandaleth' => 597,
-    'jg=manichaeandhamedh' => 598,
-    'jg=manichaeanfive' => 599,
-    'jg=manichaeangimel' => 600,
-    'jg=manichaeanheth' => 601,
-    'jg=manichaeanhundred' => 602,
-    'jg=manichaeankaph' => 603,
-    'jg=manichaeanlamedh' => 604,
-    'jg=manichaeanmem' => 605,
-    'jg=manichaeannun' => 606,
-    'jg=manichaeanone' => 607,
-    'jg=manichaeanpe' => 608,
-    'jg=manichaeanqoph' => 609,
-    'jg=manichaeanresh' => 610,
-    'jg=manichaeansadhe' => 611,
-    'jg=manichaeansamekh' => 612,
-    'jg=manichaeantaw' => 613,
-    'jg=manichaeanten' => 614,
-    'jg=manichaeanteth' => 615,
-    'jg=manichaeanthamedh' => 616,
-    'jg=manichaeantwenty' => 617,
-    'jg=manichaeanwaw' => 618,
-    'jg=manichaeanyodh' => 619,
-    'jg=manichaeanzayin' => 620,
-    'jg=meem' => 621,
-    'jg=mim' => 622,
-    'jg=nojoininggroup' => 623,
-    'jg=noon' => 624,
-    'jg=nun' => 625,
-    'jg=nya' => 626,
-    'jg=pe' => 627,
-    'jg=qaf' => 628,
-    'jg=qaph' => 629,
-    'jg=reh' => 630,
-    'jg=reversedpe' => 631,
-    'jg=rohingyayeh' => 632,
-    'jg=sad' => 633,
-    'jg=sadhe' => 634,
-    'jg=seen' => 635,
-    'jg=semkath' => 636,
-    'jg=shin' => 637,
-    'jg=straightwaw' => 638,
-    'jg=swashkaf' => 639,
-    'jg=syriacwaw' => 640,
-    'jg=tah' => 641,
-    'jg=taw' => 642,
-    'jg=tehmarbuta' => 643,
-    'jg=teth' => 644,
-    'jg=thinyeh' => 645,
-    'jg=verticaltail' => 646,
-    'jg=waw' => 647,
-    'jg=yeh' => 648,
-    'jg=yehbarree' => 649,
-    'jg=yehwithtail' => 650,
-    'jg=yudh' => 651,
-    'jg=yudhhe' => 652,
-    'jg=zain' => 653,
-    'jg=zhain' => 654,
-    'joinc' => 655,
-    'jt=c' => 656,
-    'jt=d' => 657,
-    'jt=l' => 658,
-    'jt=r' => 659,
-    'jt=t' => 660,
-    'jt=u' => 661,
-    'kali' => 662,
-    'kana' => 663,
-    'kanaexta' => 664,
-    'kanaextb' => 665,
-    'kanasup' => 666,
-    'kanbun' => 667,
-    'kangxi' => 668,
-    'katakanaext' => 669,
-    'khar' => 670,
-    'khmersymbols' => 671,
-    'khmr' => 672,
-    'khoj' => 673,
-    'kits' => 674,
-    'knda' => 675,
-    'kthi' => 676,
-    'l' => 677,
-    'l_' => 97,
-    'l_amp_' => 97,
-    'lana' => 678,
-    'lao' => 679,
-    'latin1' => 680,
-    'latinexta' => 681,
-    'latinextadditional' => 682,
-    'latinextb' => 683,
-    'latinextc' => 684,
-    'latinextd' => 685,
-    'latinexte' => 686,
-    'latinextf' => 687,
-    'latinextg' => 688,
-    'latn' => 689,
-    'lb=ai' => 690,
-    'lb=al' => 691,
-    'lb=b2' => 692,
-    'lb=ba' => 693,
-    'lb=bb' => 694,
-    'lb=bk' => 695,
-    'lb=cb' => 696,
-    'lb=cj' => 697,
-    'lb=cl' => 698,
-    'lb=cm' => 699,
-    'lb=cp' => 700,
-    'lb=cr' => 701,
-    'lb=ex' => 702,
-    'lb=gl' => 703,
-    'lb=h2' => 704,
-    'lb=h3' => 705,
-    'lb=hl' => 706,
-    'lb=hy' => 707,
-    'lb=id' => 708,
-    'lb=in' => 709,
-    'lb=is' => 710,
-    'lb=lf' => 711,
-    'lb=nl' => 712,
-    'lb=ns' => 713,
-    'lb=nu' => 714,
-    'lb=op' => 715,
-    'lb=po' => 716,
-    'lb=pr' => 717,
-    'lb=qu' => 718,
-    'lb=sa' => 719,
-    'lb=sg_perl_aux' => 720,
-    'lb=sp' => 721,
-    'lb=sy' => 722,
-    'lb=wj' => 723,
-    'lb=xx' => 724,
-    'lb=zw' => 725,
-    'lb=zwj' => 726,
-    'lc' => 97,
-    'lepc' => 727,
-    'letterlikesymbols' => 728,
-    'limb' => 729,
-    'lina' => 730,
-    'linb' => 731,
-    'linearbideograms' => 732,
-    'linearbsyllabary' => 733,
-    'lisu' => 734,
-    'lisusup' => 735,
-    'll' => 739,
-    'lm' => 736,
-    'lo' => 737,
-    'loe' => 738,
-    'lower' => 1190,
-    'lowercase' => 1190,
-    'lowercaseletter' => 739,
-    'lowsurrogates' => 740,
-    'lt' => 1143,
-    'lu' => 1152,
-    'lyci' => 741,
-    'lydi' => 742,
-    'm' => 743,
-    'mahj' => 744,
-    'mahjong' => 745,
-    'maka' => 746,
-    'mand' => 747,
-    'mani' => 748,
-    'marc' => 749,
-    'math' => 750,
-    'mathalphanum' => 751,
-    'mathoperators' => 752,
-    'mayannumerals' => 753,
-    'mc' => 754,
-    'me' => 755,
-    'medf' => 756,
-    'meeteimayekext' => 757,
-    'mend' => 758,
-    'merc' => 759,
-    'mero' => 760,
-    'miao' => 761,
-    'miscarrows' => 762,
-    'miscmathsymbolsa' => 763,
-    'miscmathsymbolsb' => 764,
-    'miscpictographs' => 765,
-    'miscsymbols' => 766,
-    'misctechnical' => 767,
-    'mlym' => 768,
-    'mn' => 769,
-    'modi' => 770,
-    'modifierletters' => 771,
-    'modifiertoneletters' => 772,
-    'mong' => 773,
-    'mongoliansup' => 774,
-    'mro' => 775,
-    'mtei' => 776,
-    'mult' => 777,
-    'music' => 778,
-    'myanmarexta' => 779,
-    'myanmarextb' => 780,
-    'mymr' => 781,
-    'n' => 782,
-    'nand' => 783,
-    'narb' => 784,
-    'nb' => 785,
-    'nbat' => 786,
-    'nd' => 1188,
-    'newa' => 787,
-    'nfcqc=m' => 788,
-    'nfcqc=y' => 789,
-    'nfdqc=y' => 790,
-    'nfkcqc=n' => 791,
-    'nfkcqc=y' => 792,
-    'nfkdqc=n' => 793,
-    'nko' => 794,
-    'nl' => 795,
-    'no' => 796,
-    'nshu' => 797,
-    'nt=di' => 798,
-    'nt=nu' => 799,
-    'numberforms' => 800,
-    'nv=0' => 801,
-    'nv=1' => 802,
-    'nv=1/10' => 827,
-    'nv=1/12' => 828,
-    'nv=1/16' => 829,
-    'nv=1/160' => 830,
-    'nv=1/2' => 831,
-    'nv=1/20' => 832,
-    'nv=1/3' => 833,
-    'nv=1/32' => 834,
-    'nv=1/320' => 835,
-    'nv=1/4' => 836,
-    'nv=1/40' => 837,
-    'nv=1/5' => 838,
-    'nv=1/6' => 839,
-    'nv=1/64' => 840,
-    'nv=1/7' => 841,
-    'nv=1/8' => 842,
-    'nv=1/80' => 843,
-    'nv=1/9' => 844,
-    'nv=10' => 803,
-    'nv=100' => 804,
-    'nv=1000' => 805,
-    'nv=10000' => 806,
-    'nv=100000' => 807,
-    'nv=1000000' => 808,
-    'nv=10000000' => 809,
-    'nv=100000000' => 810,
-    'nv=10000000000' => 811,
-    'nv=1000000000000' => 812,
-    'nv=11' => 813,
-    'nv=11/12' => 814,
-    'nv=11/2' => 815,
-    'nv=12' => 816,
-    'nv=13' => 817,
-    'nv=13/2' => 818,
-    'nv=14' => 819,
-    'nv=15' => 820,
-    'nv=15/2' => 821,
-    'nv=16' => 822,
-    'nv=17' => 823,
-    'nv=17/2' => 824,
-    'nv=18' => 825,
-    'nv=19' => 826,
-    'nv=2' => 845,
-    'nv=2/3' => 862,
-    'nv=2/5' => 863,
-    'nv=20' => 846,
-    'nv=200' => 847,
-    'nv=2000' => 848,
-    'nv=20000' => 849,
-    'nv=200000' => 850,
-    'nv=20000000' => 851,
-    'nv=21' => 852,
-    'nv=216000' => 853,
-    'nv=22' => 854,
-    'nv=23' => 855,
-    'nv=24' => 856,
-    'nv=25' => 857,
-    'nv=26' => 858,
-    'nv=27' => 859,
-    'nv=28' => 860,
-    'nv=29' => 861,
-    'nv=3' => 864,
-    'nv=3/16' => 879,
-    'nv=3/2' => 880,
-    'nv=3/20' => 881,
-    'nv=3/4' => 882,
-    'nv=3/5' => 883,
-    'nv=3/64' => 884,
-    'nv=3/8' => 885,
-    'nv=3/80' => 886,
-    'nv=30' => 865,
-    'nv=300' => 866,
-    'nv=3000' => 867,
-    'nv=30000' => 868,
-    'nv=300000' => 869,
-    'nv=31' => 870,
-    'nv=32' => 871,
-    'nv=33' => 872,
-    'nv=34' => 873,
-    'nv=35' => 874,
-    'nv=36' => 875,
-    'nv=37' => 876,
-    'nv=38' => 877,
-    'nv=39' => 878,
-    'nv=4' => 887,
-    'nv=4/5' => 903,
-    'nv=40' => 888,
-    'nv=400' => 889,
-    'nv=4000' => 890,
-    'nv=40000' => 891,
-    'nv=400000' => 892,
-    'nv=41' => 893,
-    'nv=42' => 894,
-    'nv=43' => 895,
-    'nv=432000' => 896,
-    'nv=44' => 897,
-    'nv=45' => 898,
-    'nv=46' => 899,
-    'nv=47' => 900,
-    'nv=48' => 901,
-    'nv=49' => 902,
-    'nv=5' => 904,
-    'nv=5/12' => 910,
-    'nv=5/2' => 911,
-    'nv=5/6' => 912,
-    'nv=5/8' => 913,
-    'nv=50' => 905,
-    'nv=500' => 906,
-    'nv=5000' => 907,
-    'nv=50000' => 908,
-    'nv=500000' => 909,
-    'nv=6' => 914,
-    'nv=60' => 915,
-    'nv=600' => 916,
-    'nv=6000' => 917,
-    'nv=60000' => 918,
-    'nv=600000' => 919,
-    'nv=7' => 920,
-    'nv=7/12' => 926,
-    'nv=7/2' => 927,
-    'nv=7/8' => 928,
-    'nv=70' => 921,
-    'nv=700' => 922,
-    'nv=7000' => 923,
-    'nv=70000' => 924,
-    'nv=700000' => 925,
-    'nv=8' => 929,
-    'nv=80' => 930,
-    'nv=800' => 931,
-    'nv=8000' => 932,
-    'nv=80000' => 933,
-    'nv=800000' => 934,
-    'nv=9' => 935,
-    'nv=9/2' => 941,
-    'nv=90' => 936,
-    'nv=900' => 937,
-    'nv=9000' => 938,
-    'nv=90000' => 939,
-    'nv=900000' => 940,
-    'nv=_minus_1/2' => 943,
-    'nv=nan' => 942,
-    'ocr' => 944,
-    'ogam' => 945,
-    'olck' => 946,
-    'orkh' => 947,
-    'ornamentaldingbats' => 948,
-    'orya' => 949,
-    'osge' => 950,
-    'osma' => 951,
-    'ottomansiyaqnumbers' => 952,
-    'ougr' => 953,
-    'p' => 954,
-    'palm' => 955,
-    'patsyn' => 956,
-    'pauc' => 957,
-    'pc' => 958,
-    'pcm' => 959,
-    'pd' => 960,
-    'pe' => 961,
-    'perlspace' => 983,
-    'perlword' => 985,
-    'perm' => 962,
-    'pf' => 963,
-    'phag' => 964,
-    'phaistos' => 965,
-    'phli' => 966,
-    'phlp' => 967,
-    'phnx' => 968,
-    'phoneticext' => 969,
-    'phoneticextsup' => 970,
-    'pi' => 971,
-    'playingcards' => 972,
-    'po' => 973,
-    'posixalnum' => 974,
-    'posixalpha' => 975,
-    'posixblank' => 976,
-    'posixcntrl' => 977,
-    'posixdigit' => 978,
-    'posixgraph' => 979,
-    'posixlower' => 980,
-    'posixprint' => 981,
-    'posixpunct' => 982,
-    'posixspace' => 983,
-    'posixupper' => 984,
-    'posixword' => 985,
-    'posixxdigit' => 986,
-    'print' => 1191,
-    'prti' => 987,
-    'ps' => 988,
-    'pua' => 989,
-    'qaai' => 990,
-    'qmark' => 991,
-    'radical' => 992,
-    'ri' => 993,
-    'rjng' => 994,
-    'rohg' => 995,
-    'rumi' => 996,
-    'runr' => 997,
-    's' => 998,
-    'samr' => 999,
-    'sarb' => 1000,
-    'saur' => 1001,
-    'sb=at' => 1002,
-    'sb=cl' => 1003,
-    'sb=ex' => 1004,
-    'sb=fo' => 1005,
-    'sb=le' => 1006,
-    'sb=lo' => 1007,
-    'sb=nu' => 1008,
-    'sb=sc' => 1009,
-    'sb=se' => 1010,
-    'sb=sp' => 1011,
-    'sb=st' => 1012,
-    'sb=up' => 1013,
-    'sb=xx' => 1014,
-    'sc' => 1015,
-    'sc=adlm' => 1016,
-    'sc=arab' => 1017,
-    'sc=beng' => 1018,
-    'sc=bopo' => 1019,
-    'sc=bugi' => 1020,
-    'sc=buhd' => 1021,
-    'sc=cakm' => 1022,
-    'sc=copt' => 1023,
-    'sc=cpmn' => 1024,
-    'sc=cprt' => 1025,
-    'sc=cyrl' => 1026,
-    'sc=deva' => 1027,
-    'sc=dogr' => 1028,
-    'sc=dupl' => 1029,
-    'sc=geor' => 1030,
-    'sc=glag' => 1031,
-    'sc=gong' => 1032,
-    'sc=gonm' => 1033,
-    'sc=gran' => 1034,
-    'sc=grek' => 1035,
-    'sc=gujr' => 1036,
-    'sc=guru' => 1037,
-    'sc=han' => 1038,
-    'sc=hang' => 1039,
-    'sc=hano' => 1040,
-    'sc=hira' => 1041,
-    'sc=java' => 1042,
-    'sc=kali' => 1043,
-    'sc=kana' => 1044,
-    'sc=khoj' => 1045,
-    'sc=knda' => 1046,
-    'sc=kthi' => 1047,
-    'sc=latn' => 1048,
-    'sc=limb' => 1049,
-    'sc=lina' => 1050,
-    'sc=linb' => 1051,
-    'sc=mahj' => 1052,
-    'sc=mand' => 1053,
-    'sc=mani' => 1054,
-    'sc=mlym' => 1055,
-    'sc=modi' => 1056,
-    'sc=mong' => 1057,
-    'sc=mult' => 1058,
-    'sc=mymr' => 1059,
-    'sc=nand' => 1060,
-    'sc=nko' => 1061,
-    'sc=orya' => 1062,
-    'sc=ougr' => 1063,
-    'sc=perm' => 1064,
-    'sc=phag' => 1065,
-    'sc=phlp' => 1066,
-    'sc=qaai' => 1067,
-    'sc=rohg' => 1068,
-    'sc=shrd' => 1069,
-    'sc=sind' => 1070,
-    'sc=sinh' => 1071,
-    'sc=sogd' => 1072,
-    'sc=sylo' => 1073,
-    'sc=syrc' => 1074,
-    'sc=tagb' => 1075,
-    'sc=takr' => 1076,
-    'sc=tale' => 1077,
-    'sc=taml' => 1078,
-    'sc=telu' => 1079,
-    'sc=tglg' => 1080,
-    'sc=thaa' => 1081,
-    'sc=tirh' => 1082,
-    'sc=yezi' => 1083,
-    'sc=yi' => 1084,
-    'sc=zyyy' => 1085,
-    'sd' => 1086,
-    'sgnw' => 1087,
-    'shaw' => 1088,
-    'shorthandformatcontrols' => 1089,
-    'shrd' => 1090,
-    'sidd' => 1091,
-    'sind' => 1092,
-    'sinh' => 1093,
-    'sinhalaarchaicnumbers' => 1094,
-    'sk' => 1095,
-    'sm' => 1096,
-    'smallforms' => 1097,
-    'smallkanaext' => 1098,
-    'so' => 1099,
-    'sogd' => 1100,
-    'sogo' => 1101,
-    'sora' => 1102,
-    'soyo' => 1103,
-    'space' => 1193,
-    'spaceperl' => 1193,
-    'specials' => 1104,
-    'sterm' => 1105,
-    'sund' => 1106,
-    'sundanesesup' => 1107,
-    'suparrowsa' => 1108,
-    'suparrowsb' => 1109,
-    'suparrowsc' => 1110,
-    'superandsub' => 1111,
-    'supmathoperators' => 1112,
-    'suppuaa' => 1113,
-    'suppuab' => 1114,
-    'suppunctuation' => 1115,
-    'supsymbolsandpictographs' => 1116,
-    'suttonsignwriting' => 1117,
-    'sylo' => 1118,
-    'symbolsandpictographsexta' => 1119,
-    'symbolsforlegacycomputing' => 1120,
-    'syrc' => 1121,
-    'syriacsup' => 1122,
-    'tagb' => 1123,
-    'tags' => 1124,
-    'taixuanjing' => 1125,
-    'takr' => 1126,
-    'tale' => 1127,
-    'talu' => 1128,
-    'tamilsup' => 1129,
-    'taml' => 1130,
-    'tang' => 1131,
-    'tangutcomponents' => 1132,
-    'tangutsup' => 1133,
-    'tavt' => 1134,
-    'telu' => 1135,
-    'term' => 1136,
-    'tfng' => 1137,
-    'tglg' => 1138,
-    'thaa' => 1139,
-    'thai' => 1140,
-    'tibt' => 1141,
-    'tirh' => 1142,
-    'title' => 1143,
-    'titlecase' => 1143,
-    'titlecaseletter' => 1143,
-    'tnsa' => 1144,
-    'toto' => 1145,
-    'transportandmap' => 1146,
-    'ucas' => 1147,
-    'ucasext' => 1148,
-    'ucasexta' => 1149,
-    'ugar' => 1150,
-    'uideo' => 1151,
-    'upper' => 1194,
-    'uppercase' => 1194,
-    'uppercaseletter' => 1152,
-    'vai' => 1153,
-    'vedicext' => 1154,
-    'verticalforms' => 1155,
-    'vertspace' => 1156,
-    'vith' => 1157,
-    'vo=r' => 1158,
-    'vo=tr' => 1159,
-    'vo=tu' => 1160,
-    'vo=u' => 1161,
-    'vs' => 1162,
-    'vssup' => 1163,
-    'wara' => 1164,
-    'wb=dq' => 1165,
-    'wb=eb' => 1166,
-    'wb=ex' => 1167,
-    'wb=extend' => 1168,
-    'wb=fo' => 1169,
-    'wb=ka' => 1170,
-    'wb=le' => 1171,
-    'wb=mb' => 1172,
-    'wb=ml' => 1173,
-    'wb=mn' => 1174,
-    'wb=nl' => 1175,
-    'wb=nu' => 1176,
-    'wb=sq' => 1177,
-    'wb=wsegspace' => 1178,
-    'wb=xx' => 1179,
-    'wcho' => 1180,
-    'whitespace' => 1193,
-    'word' => 1195,
-    'wspace' => 1193,
-    'xdigit' => 1196,
-    'xidc' => 1181,
-    'xids' => 1182,
-    'xpeo' => 1183,
-    'xperlspace' => 1193,
-    'xposixalnum' => 1184,
-    'xposixalpha' => 1185,
-    'xposixblank' => 1186,
-    'xposixcntrl' => 1187,
-    'xposixdigit' => 1188,
-    'xposixgraph' => 1189,
-    'xposixlower' => 1190,
-    'xposixprint' => 1191,
-    'xposixpunct' => 1192,
-    'xposixspace' => 1193,
-    'xposixupper' => 1194,
-    'xposixword' => 1195,
-    'xposixxdigit' => 1196,
-    'xsux' => 1197,
-    'yezi' => 1198,
-    'yi' => 1199,
-    'yijing' => 1200,
-    'yiradicals' => 1201,
-    'yisyllables' => 1202,
-    'z' => 1203,
-    'zanb' => 1204,
-    'zl' => 1205,
-    'znamennymusic' => 1206,
-    'zp' => 1207,
-    'zs' => 1208,
-    'zyyy' => 1209,
-    'zzzz' => 1210,
+    'age=15' => 9,
+    'age=2' => 10,
+    'age=2.1' => 11,
+    'age=3' => 12,
+    'age=3.1' => 13,
+    'age=3.2' => 14,
+    'age=4' => 15,
+    'age=4.1' => 16,
+    'age=5' => 17,
+    'age=5.1' => 18,
+    'age=5.2' => 19,
+    'age=6' => 20,
+    'age=6.1' => 21,
+    'age=6.2' => 22,
+    'age=6.3' => 23,
+    'age=7' => 24,
+    'age=8' => 25,
+    'age=9' => 26,
+    'aghb' => 27,
+    'ahex' => 997,
+    'ahom' => 28,
+    'alchemical' => 29,
+    'all' => 30,
+    'alnum' => 1195,
+    'alpha' => 1196,
+    'alphabetic' => 1196,
+    'alphabeticpf' => 31,
+    'ancientgreekmusic' => 32,
+    'ancientgreeknumbers' => 33,
+    'ancientsymbols' => 34,
+    'any' => 35,
+    'arab' => 36,
+    'arabicexta' => 37,
+    'arabicextb' => 38,
+    'arabicextc' => 39,
+    'arabicmath' => 40,
+    'arabicpfa' => 41,
+    'arabicpfb' => 42,
+    'arabicsup' => 43,
+    'armi' => 44,
+    'armn' => 45,
+    'arrows' => 46,
+    'ascii' => 47,
+    'asciihexdigit' => 997,
+    'assigned' => 48,
+    'avst' => 49,
+    'bali' => 50,
+    'bamu' => 51,
+    'bamumsup' => 52,
+    'basiclatin' => 47,
+    'bass' => 53,
+    'batk' => 54,
+    'bc=al' => 55,
+    'bc=an' => 56,
+    'bc=b' => 57,
+    'bc=bn' => 58,
+    'bc=cs' => 59,
+    'bc=en' => 60,
+    'bc=es' => 61,
+    'bc=et' => 62,
+    'bc=fsi' => 63,
+    'bc=l' => 64,
+    'bc=lre' => 65,
+    'bc=lri' => 66,
+    'bc=lro' => 67,
+    'bc=nsm' => 68,
+    'bc=on' => 69,
+    'bc=pdf' => 70,
+    'bc=pdi' => 71,
+    'bc=r' => 72,
+    'bc=rle' => 73,
+    'bc=rli' => 74,
+    'bc=rlo' => 75,
+    'bc=s' => 76,
+    'bc=ws' => 77,
+    'beng' => 78,
+    'bhks' => 79,
+    'bidic' => 80,
+    'bidim' => 81,
+    'blank' => 1197,
+    'blockelements' => 82,
+    'bopo' => 83,
+    'bopomofoext' => 84,
+    'boxdrawing' => 85,
+    'bpt=c' => 86,
+    'bpt=n' => 87,
+    'bpt=o' => 88,
+    'brah' => 89,
+    'brai' => 90,
+    'bugi' => 91,
+    'buhd' => 92,
+    'byzantinemusic' => 93,
+    'c' => 94,
+    'cakm' => 95,
+    'cans' => 96,
+    'cari' => 97,
+    'cased' => 98,
+    'casedletter' => 99,
+    'cc' => 1198,
+    'ccc=0' => 100,
+    'ccc=1' => 101,
+    'ccc=10' => 102,
+    'ccc=103' => 103,
+    'ccc=107' => 104,
+    'ccc=11' => 105,
+    'ccc=118' => 106,
+    'ccc=12' => 107,
+    'ccc=122' => 108,
+    'ccc=129' => 109,
+    'ccc=13' => 110,
+    'ccc=130' => 111,
+    'ccc=132' => 112,
+    'ccc=14' => 113,
+    'ccc=15' => 114,
+    'ccc=16' => 115,
+    'ccc=17' => 116,
+    'ccc=18' => 117,
+    'ccc=19' => 118,
+    'ccc=20' => 119,
+    'ccc=202' => 120,
+    'ccc=21' => 121,
+    'ccc=214' => 122,
+    'ccc=216' => 123,
+    'ccc=22' => 124,
+    'ccc=23' => 125,
+    'ccc=24' => 126,
+    'ccc=25' => 127,
+    'ccc=26' => 128,
+    'ccc=27' => 129,
+    'ccc=28' => 130,
+    'ccc=29' => 131,
+    'ccc=30' => 132,
+    'ccc=31' => 133,
+    'ccc=32' => 134,
+    'ccc=33' => 135,
+    'ccc=34' => 136,
+    'ccc=35' => 137,
+    'ccc=36' => 138,
+    'ccc=6' => 139,
+    'ccc=7' => 140,
+    'ccc=8' => 141,
+    'ccc=84' => 142,
+    'ccc=9' => 143,
+    'ccc=91' => 144,
+    'ccc=a' => 145,
+    'ccc=al' => 146,
+    'ccc=ar' => 147,
+    'ccc=b' => 148,
+    'ccc=bl' => 149,
+    'ccc=br' => 150,
+    'ccc=da' => 151,
+    'ccc=db' => 152,
+    'ccc=is' => 153,
+    'ccc=l' => 154,
+    'ccc=r' => 155,
+    'ce' => 156,
+    'cf' => 157,
+    'cham' => 158,
+    'cher' => 159,
+    'cherokeesup' => 160,
+    'chesssymbols' => 161,
+    'chrs' => 162,
+    'ci' => 163,
+    'cjk' => 164,
+    'cjkcompat' => 165,
+    'cjkcompatforms' => 166,
+    'cjkcompatideographs' => 167,
+    'cjkcompatideographssup' => 168,
+    'cjkexta' => 169,
+    'cjkextb' => 170,
+    'cjkextc' => 171,
+    'cjkextd' => 172,
+    'cjkexte' => 173,
+    'cjkextf' => 174,
+    'cjkextg' => 175,
+    'cjkexth' => 176,
+    'cjkradicalssup' => 177,
+    'cjkstrokes' => 178,
+    'cjksymbols' => 179,
+    'cn' => 180,
+    'cntrl' => 1198,
+    'co' => 181,
+    'compatjamo' => 182,
+    'compex' => 183,
+    'control' => 1198,
+    'controlpictures' => 184,
+    'copt' => 185,
+    'copticepactnumbers' => 186,
+    'countingrod' => 187,
+    'cpmn' => 188,
+    'cprt' => 189,
+    'cuneiformnumbers' => 190,
+    'currencysymbols' => 191,
+    'cwcf' => 192,
+    'cwcm' => 193,
+    'cwkcf' => 194,
+    'cwl' => 195,
+    'cwt' => 196,
+    'cwu' => 197,
+    'cypriotsyllabary' => 198,
+    'cyrillicexta' => 199,
+    'cyrillicextb' => 200,
+    'cyrillicextc' => 201,
+    'cyrillicextd' => 202,
+    'cyrillicsup' => 203,
+    'cyrl' => 204,
+    'dash' => 205,
+    'decimalnumber' => 1199,
+    'dep' => 206,
+    'deva' => 207,
+    'devanagariext' => 208,
+    'devanagariexta' => 209,
+    'di' => 210,
+    'dia' => 211,
+    'diacriticals' => 212,
+    'diacriticalsext' => 213,
+    'diacriticalsforsymbols' => 214,
+    'diacriticalssup' => 215,
+    'diak' => 216,
+    'digit' => 1199,
+    'dingbats' => 217,
+    'dogr' => 218,
+    'domino' => 219,
+    'dsrt' => 220,
+    'dt=can' => 221,
+    'dt=com' => 222,
+    'dt=enc' => 223,
+    'dt=fin' => 224,
+    'dt=font' => 225,
+    'dt=fra' => 226,
+    'dt=init' => 227,
+    'dt=iso' => 228,
+    'dt=med' => 229,
+    'dt=nar' => 230,
+    'dt=nb' => 231,
+    'dt=noncanon' => 232,
+    'dt=none' => 233,
+    'dt=sml' => 234,
+    'dt=sqr' => 235,
+    'dt=sub' => 236,
+    'dt=sup' => 237,
+    'dt=vert' => 238,
+    'dupl' => 239,
+    'ea=a' => 241,
+    'ea=f' => 242,
+    'ea=h' => 243,
+    'ea=n' => 244,
+    'ea=na' => 245,
+    'ea=w' => 246,
+    'earlydynasticcuneiform' => 240,
+    'ebase' => 247,
+    'ecomp' => 248,
+    'egyp' => 249,
+    'egyptianhieroglyphformatcontrols' => 250,
+    'elba' => 251,
+    'elym' => 252,
+    'emod' => 253,
+    'emoji' => 254,
+    'emoticons' => 255,
+    'enclosedalphanum' => 256,
+    'enclosedalphanumsup' => 257,
+    'enclosedcjk' => 258,
+    'enclosedideographicsup' => 259,
+    'epres' => 260,
+    'ethi' => 261,
+    'ethiopicext' => 262,
+    'ethiopicexta' => 263,
+    'ethiopicextb' => 264,
+    'ethiopicsup' => 265,
+    'ext' => 266,
+    'extpict' => 267,
+    'gcb=cn' => 268,
+    'gcb=ex' => 269,
+    'gcb=l' => 270,
+    'gcb=pp' => 271,
+    'gcb=sm' => 272,
+    'gcb=t' => 273,
+    'gcb=v' => 274,
+    'gcb=xx' => 275,
+    'geometricshapes' => 276,
+    'geometricshapesext' => 277,
+    'geor' => 278,
+    'georgianext' => 279,
+    'georgiansup' => 280,
+    'glag' => 281,
+    'glagoliticsup' => 282,
+    'gong' => 283,
+    'gonm' => 284,
+    'goth' => 285,
+    'gran' => 286,
+    'graph' => 1200,
+    'grbase' => 287,
+    'greekext' => 288,
+    'grek' => 289,
+    'grext' => 290,
+    'gujr' => 291,
+    'guru' => 292,
+    'halfandfullforms' => 293,
+    'halfmarks' => 294,
+    'han' => 295,
+    'hang' => 296,
+    'hano' => 297,
+    'hatr' => 298,
+    'hebr' => 299,
+    'hex' => 1207,
+    'hexdigit' => 1207,
+    'highpusurrogates' => 300,
+    'highsurrogates' => 301,
+    'hira' => 302,
+    'hluw' => 303,
+    'hmng' => 304,
+    'hmnp' => 305,
+    'horizspace' => 1197,
+    'hst=na' => 306,
+    'hung' => 307,
+    'hyphen_perl_aux' => 308,
+    'idc' => 309,
+    'identifierstatus=allowed' => 310,
+    'identifierstatus=restricted' => 311,
+    'identifiertype=defaultignorable' => 312,
+    'identifiertype=exclusion' => 313,
+    'identifiertype=inclusion' => 314,
+    'identifiertype=limiteduse' => 315,
+    'identifiertype=notcharacter' => 316,
+    'identifiertype=notnfkc' => 317,
+    'identifiertype=notxid' => 318,
+    'identifiertype=obsolete' => 319,
+    'identifiertype=recommended' => 320,
+    'identifiertype=technical' => 321,
+    'identifiertype=uncommonuse' => 322,
+    'ideo' => 323,
+    'ideographicsymbols' => 324,
+    'ids' => 325,
+    'idsb' => 326,
+    'idst' => 327,
+    'in=1.1' => 534,
+    'in=10' => 527,
+    'in=11' => 528,
+    'in=12' => 529,
+    'in=12.1' => 530,
+    'in=13' => 531,
+    'in=14' => 532,
+    'in=15' => 533,
+    'in=2' => 535,
+    'in=2.1' => 536,
+    'in=3' => 537,
+    'in=3.1' => 538,
+    'in=3.2' => 539,
+    'in=4' => 540,
+    'in=4.1' => 541,
+    'in=5' => 542,
+    'in=5.1' => 543,
+    'in=5.2' => 544,
+    'in=6' => 545,
+    'in=6.1' => 546,
+    'in=6.2' => 547,
+    'in=6.3' => 548,
+    'in=7' => 549,
+    'in=8' => 550,
+    'in=9' => 551,
+    'in=na' => 552,
+    'inadlam' => 328,
+    'inahom' => 329,
+    'inanatolianhieroglyphs' => 330,
+    'inarabic' => 331,
+    'inarmenian' => 332,
+    'inavestan' => 333,
+    'inbalinese' => 334,
+    'inbamum' => 335,
+    'inbassavah' => 336,
+    'inbatak' => 337,
+    'inbengali' => 338,
+    'inbhaiksuki' => 339,
+    'inbopomofo' => 340,
+    'inbrahmi' => 341,
+    'inbuginese' => 342,
+    'inbuhid' => 343,
+    'incarian' => 344,
+    'incaucasianalbanian' => 345,
+    'inchakma' => 346,
+    'incham' => 347,
+    'incherokee' => 348,
+    'inchorasmian' => 349,
+    'incoptic' => 350,
+    'incuneiform' => 351,
+    'incyprominoan' => 352,
+    'incyrillic' => 353,
+    'indevanagari' => 354,
+    'indicnumberforms' => 355,
+    'indicsiyaqnumbers' => 356,
+    'indivesakuru' => 357,
+    'indogra' => 358,
+    'induployan' => 359,
+    'inegyptianhieroglyphs' => 360,
+    'inelbasan' => 361,
+    'inelymaic' => 362,
+    'inethiopic' => 363,
+    'ingeorgian' => 364,
+    'inglagolitic' => 365,
+    'ingothic' => 366,
+    'ingrantha' => 367,
+    'ingreek' => 368,
+    'ingujarati' => 369,
+    'ingunjalagondi' => 370,
+    'ingurmukhi' => 371,
+    'inhangul' => 372,
+    'inhanifirohingya' => 373,
+    'inhanunoo' => 374,
+    'inhatran' => 375,
+    'inhebrew' => 376,
+    'inhiragana' => 377,
+    'inidc' => 378,
+    'inimperialaramaic' => 379,
+    'ininscriptionalpahlavi' => 380,
+    'ininscriptionalparthian' => 381,
+    'injavanese' => 382,
+    'inkaithi' => 383,
+    'inkannada' => 384,
+    'inkatakana' => 385,
+    'inkawi' => 386,
+    'inkharoshthi' => 387,
+    'inkhitansmallscript' => 388,
+    'inkhmer' => 389,
+    'inkhojki' => 390,
+    'inkhudawadi' => 391,
+    'inlao' => 392,
+    'inlepcha' => 393,
+    'inlimbu' => 394,
+    'inlineara' => 395,
+    'inlisu' => 396,
+    'inlycian' => 397,
+    'inlydian' => 398,
+    'inmahajani' => 399,
+    'inmakasar' => 400,
+    'inmalayalam' => 401,
+    'inmandaic' => 402,
+    'inmanichaean' => 403,
+    'inmarchen' => 404,
+    'inmasaramgondi' => 405,
+    'inmedefaidrin' => 406,
+    'inmeeteimayek' => 407,
+    'inmendekikakui' => 408,
+    'inmeroiticcursive' => 409,
+    'inmiao' => 410,
+    'inmodi' => 411,
+    'inmongolian' => 412,
+    'inmro' => 413,
+    'inmultani' => 414,
+    'inmyanmar' => 415,
+    'innabataean' => 416,
+    'innagmundari' => 417,
+    'innandinagari' => 418,
+    'innewa' => 419,
+    'innewtailue' => 420,
+    'innko' => 421,
+    'innushu' => 422,
+    'innyiakengpuachuehmong' => 423,
+    'inogham' => 424,
+    'inoldhungarian' => 425,
+    'inolditalic' => 426,
+    'inoldpermic' => 427,
+    'inoldpersian' => 428,
+    'inoldsogdian' => 429,
+    'inoldturkic' => 430,
+    'inolduyghur' => 431,
+    'inoriya' => 432,
+    'inosage' => 433,
+    'inosmanya' => 434,
+    'inpahawhhmong' => 435,
+    'inpaucinhau' => 436,
+    'inpc=bottom' => 437,
+    'inpc=bottomandleft' => 438,
+    'inpc=bottomandright' => 439,
+    'inpc=left' => 440,
+    'inpc=leftandright' => 441,
+    'inpc=na' => 442,
+    'inpc=overstruck' => 443,
+    'inpc=right' => 444,
+    'inpc=top' => 445,
+    'inpc=topandbottom' => 446,
+    'inpc=topandbottomandleft' => 447,
+    'inpc=topandbottomandright' => 448,
+    'inpc=topandleft' => 449,
+    'inpc=topandleftandright' => 450,
+    'inpc=topandright' => 451,
+    'inphagspa' => 452,
+    'inphoenician' => 453,
+    'inpsalterpahlavi' => 454,
+    'inpunctuation' => 455,
+    'inrejang' => 456,
+    'inrunic' => 457,
+    'insamaritan' => 458,
+    'insaurashtra' => 459,
+    'insc=avagraha' => 460,
+    'insc=bindu' => 461,
+    'insc=brahmijoiningnumber' => 462,
+    'insc=cantillationmark' => 463,
+    'insc=consonant' => 464,
+    'insc=consonantdead' => 465,
+    'insc=consonantfinal' => 466,
+    'insc=consonantheadletter' => 467,
+    'insc=consonantinitialpostfixed' => 468,
+    'insc=consonantkiller' => 469,
+    'insc=consonantmedial' => 470,
+    'insc=consonantplaceholder' => 471,
+    'insc=consonantprecedingrepha' => 472,
+    'insc=consonantprefixed' => 473,
+    'insc=consonantsubjoined' => 474,
+    'insc=consonantsucceedingrepha' => 475,
+    'insc=consonantwithstacker' => 476,
+    'insc=geminationmark' => 477,
+    'insc=invisiblestacker' => 478,
+    'insc=modifyingletter' => 479,
+    'insc=nonjoiner' => 480,
+    'insc=nukta' => 481,
+    'insc=number' => 482,
+    'insc=numberjoiner' => 483,
+    'insc=other' => 484,
+    'insc=purekiller' => 485,
+    'insc=registershifter' => 486,
+    'insc=syllablemodifier' => 487,
+    'insc=toneletter' => 488,
+    'insc=tonemark' => 489,
+    'insc=virama' => 490,
+    'insc=visarga' => 491,
+    'insc=vowel' => 492,
+    'insc=voweldependent' => 493,
+    'insc=vowelindependent' => 494,
+    'insiddham' => 495,
+    'insinhala' => 496,
+    'insogdian' => 497,
+    'insorasompeng' => 498,
+    'insoyombo' => 499,
+    'insundanese' => 500,
+    'insylotinagri' => 501,
+    'insyriac' => 502,
+    'intagalog' => 503,
+    'intagbanwa' => 504,
+    'intaile' => 505,
+    'intaitham' => 506,
+    'intaiviet' => 507,
+    'intakri' => 508,
+    'intamil' => 509,
+    'intangsa' => 510,
+    'intangut' => 511,
+    'intelugu' => 512,
+    'inthaana' => 513,
+    'inthai' => 514,
+    'intibetan' => 515,
+    'intifinagh' => 516,
+    'intirhuta' => 517,
+    'intoto' => 518,
+    'inugaritic' => 519,
+    'invai' => 520,
+    'invithkuqi' => 521,
+    'invs' => 522,
+    'inwancho' => 523,
+    'inwarangciti' => 524,
+    'inyezidi' => 525,
+    'inzanabazarsquare' => 526,
+    'ipaext' => 553,
+    'ital' => 554,
+    'jamo' => 555,
+    'jamoexta' => 556,
+    'jamoextb' => 557,
+    'java' => 558,
+    'jg=africanfeh' => 559,
+    'jg=africannoon' => 560,
+    'jg=africanqaf' => 561,
+    'jg=ain' => 562,
+    'jg=alaph' => 563,
+    'jg=alef' => 564,
+    'jg=beh' => 565,
+    'jg=beth' => 566,
+    'jg=burushaskiyehbarree' => 567,
+    'jg=dal' => 568,
+    'jg=dalathrish' => 569,
+    'jg=e' => 570,
+    'jg=farsiyeh' => 571,
+    'jg=fe' => 572,
+    'jg=feh' => 573,
+    'jg=finalsemkath' => 574,
+    'jg=gaf' => 575,
+    'jg=gamal' => 576,
+    'jg=hah' => 577,
+    'jg=hamzaonhehgoal' => 578,
+    'jg=hanifirohingyakinnaya' => 579,
+    'jg=hanifirohingyapa' => 580,
+    'jg=he' => 581,
+    'jg=heh' => 582,
+    'jg=hehgoal' => 583,
+    'jg=heth' => 584,
+    'jg=kaf' => 585,
+    'jg=kaph' => 586,
+    'jg=khaph' => 587,
+    'jg=knottedheh' => 588,
+    'jg=lam' => 589,
+    'jg=lamadh' => 590,
+    'jg=malayalambha' => 591,
+    'jg=malayalamja' => 592,
+    'jg=malayalamlla' => 593,
+    'jg=malayalamllla' => 594,
+    'jg=malayalamnga' => 595,
+    'jg=malayalamnna' => 596,
+    'jg=malayalamnnna' => 597,
+    'jg=malayalamnya' => 598,
+    'jg=malayalamra' => 599,
+    'jg=malayalamssa' => 600,
+    'jg=malayalamtta' => 601,
+    'jg=manichaeanaleph' => 602,
+    'jg=manichaeanayin' => 603,
+    'jg=manichaeanbeth' => 604,
+    'jg=manichaeandaleth' => 605,
+    'jg=manichaeandhamedh' => 606,
+    'jg=manichaeanfive' => 607,
+    'jg=manichaeangimel' => 608,
+    'jg=manichaeanheth' => 609,
+    'jg=manichaeanhundred' => 610,
+    'jg=manichaeankaph' => 611,
+    'jg=manichaeanlamedh' => 612,
+    'jg=manichaeanmem' => 613,
+    'jg=manichaeannun' => 614,
+    'jg=manichaeanone' => 615,
+    'jg=manichaeanpe' => 616,
+    'jg=manichaeanqoph' => 617,
+    'jg=manichaeanresh' => 618,
+    'jg=manichaeansadhe' => 619,
+    'jg=manichaeansamekh' => 620,
+    'jg=manichaeantaw' => 621,
+    'jg=manichaeanten' => 622,
+    'jg=manichaeanteth' => 623,
+    'jg=manichaeanthamedh' => 624,
+    'jg=manichaeantwenty' => 625,
+    'jg=manichaeanwaw' => 626,
+    'jg=manichaeanyodh' => 627,
+    'jg=manichaeanzayin' => 628,
+    'jg=meem' => 629,
+    'jg=mim' => 630,
+    'jg=nojoininggroup' => 631,
+    'jg=noon' => 632,
+    'jg=nun' => 633,
+    'jg=nya' => 634,
+    'jg=pe' => 635,
+    'jg=qaf' => 636,
+    'jg=qaph' => 637,
+    'jg=reh' => 638,
+    'jg=reversedpe' => 639,
+    'jg=rohingyayeh' => 640,
+    'jg=sad' => 641,
+    'jg=sadhe' => 642,
+    'jg=seen' => 643,
+    'jg=semkath' => 644,
+    'jg=shin' => 645,
+    'jg=straightwaw' => 646,
+    'jg=swashkaf' => 647,
+    'jg=syriacwaw' => 648,
+    'jg=tah' => 649,
+    'jg=taw' => 650,
+    'jg=tehmarbuta' => 651,
+    'jg=teth' => 652,
+    'jg=thinyeh' => 653,
+    'jg=verticaltail' => 654,
+    'jg=waw' => 655,
+    'jg=yeh' => 656,
+    'jg=yehbarree' => 657,
+    'jg=yehwithtail' => 658,
+    'jg=yudh' => 659,
+    'jg=yudhhe' => 660,
+    'jg=zain' => 661,
+    'jg=zhain' => 662,
+    'joinc' => 663,
+    'jt=c' => 664,
+    'jt=d' => 665,
+    'jt=l' => 666,
+    'jt=r' => 667,
+    'jt=t' => 668,
+    'jt=u' => 669,
+    'kaktoviknumerals' => 670,
+    'kali' => 671,
+    'kana' => 672,
+    'kanaexta' => 673,
+    'kanaextb' => 674,
+    'kanasup' => 675,
+    'kanbun' => 676,
+    'kangxi' => 677,
+    'katakanaext' => 678,
+    'kawi' => 679,
+    'khar' => 680,
+    'khmersymbols' => 681,
+    'khmr' => 682,
+    'khoj' => 683,
+    'kits' => 684,
+    'knda' => 685,
+    'kthi' => 686,
+    'l' => 687,
+    'l_' => 99,
+    'l_amp_' => 99,
+    'lana' => 688,
+    'lao' => 689,
+    'latin1' => 690,
+    'latinexta' => 691,
+    'latinextadditional' => 692,
+    'latinextb' => 693,
+    'latinextc' => 694,
+    'latinextd' => 695,
+    'latinexte' => 696,
+    'latinextf' => 697,
+    'latinextg' => 698,
+    'latn' => 699,
+    'lb=ai' => 700,
+    'lb=al' => 701,
+    'lb=b2' => 702,
+    'lb=ba' => 703,
+    'lb=bb' => 704,
+    'lb=bk' => 705,
+    'lb=cb' => 706,
+    'lb=cj' => 707,
+    'lb=cl' => 708,
+    'lb=cm' => 709,
+    'lb=cp' => 710,
+    'lb=cr' => 711,
+    'lb=ex' => 712,
+    'lb=gl' => 713,
+    'lb=h2' => 714,
+    'lb=h3' => 715,
+    'lb=hl' => 716,
+    'lb=hy' => 717,
+    'lb=id' => 718,
+    'lb=in' => 719,
+    'lb=is' => 720,
+    'lb=lf' => 721,
+    'lb=nl' => 722,
+    'lb=ns' => 723,
+    'lb=nu' => 724,
+    'lb=op' => 725,
+    'lb=po' => 726,
+    'lb=pr' => 727,
+    'lb=qu' => 728,
+    'lb=sa' => 729,
+    'lb=sg_perl_aux' => 730,
+    'lb=sp' => 731,
+    'lb=sy' => 732,
+    'lb=wj' => 733,
+    'lb=xx' => 734,
+    'lb=zw' => 735,
+    'lb=zwj' => 736,
+    'lc' => 99,
+    'lepc' => 737,
+    'letterlikesymbols' => 738,
+    'limb' => 739,
+    'lina' => 740,
+    'linb' => 741,
+    'linearbideograms' => 742,
+    'linearbsyllabary' => 743,
+    'lisu' => 744,
+    'lisusup' => 745,
+    'll' => 749,
+    'lm' => 746,
+    'lo' => 747,
+    'loe' => 748,
+    'lower' => 1201,
+    'lowercase' => 1201,
+    'lowercaseletter' => 749,
+    'lowsurrogates' => 750,
+    'lt' => 1154,
+    'lu' => 1163,
+    'lyci' => 751,
+    'lydi' => 752,
+    'm' => 753,
+    'mahj' => 754,
+    'mahjong' => 755,
+    'maka' => 756,
+    'mand' => 757,
+    'mani' => 758,
+    'marc' => 759,
+    'math' => 760,
+    'mathalphanum' => 761,
+    'mathoperators' => 762,
+    'mayannumerals' => 763,
+    'mc' => 764,
+    'me' => 765,
+    'medf' => 766,
+    'meeteimayekext' => 767,
+    'mend' => 768,
+    'merc' => 769,
+    'mero' => 770,
+    'miao' => 771,
+    'miscarrows' => 772,
+    'miscmathsymbolsa' => 773,
+    'miscmathsymbolsb' => 774,
+    'miscpictographs' => 775,
+    'miscsymbols' => 776,
+    'misctechnical' => 777,
+    'mlym' => 778,
+    'mn' => 779,
+    'modi' => 780,
+    'modifierletters' => 781,
+    'modifiertoneletters' => 782,
+    'mong' => 783,
+    'mongoliansup' => 784,
+    'mro' => 785,
+    'mtei' => 786,
+    'mult' => 787,
+    'music' => 788,
+    'myanmarexta' => 789,
+    'myanmarextb' => 790,
+    'mymr' => 791,
+    'n' => 792,
+    'nagm' => 793,
+    'nand' => 794,
+    'narb' => 795,
+    'nb' => 796,
+    'nbat' => 797,
+    'nd' => 1199,
+    'newa' => 798,
+    'nfcqc=m' => 799,
+    'nfcqc=y' => 800,
+    'nfdqc=y' => 801,
+    'nfkcqc=n' => 802,
+    'nfkcqc=y' => 803,
+    'nfkdqc=n' => 804,
+    'nko' => 805,
+    'nl' => 806,
+    'no' => 807,
+    'nshu' => 808,
+    'nt=di' => 809,
+    'nt=nu' => 810,
+    'numberforms' => 811,
+    'nv=0' => 812,
+    'nv=1' => 813,
+    'nv=1/10' => 838,
+    'nv=1/12' => 839,
+    'nv=1/16' => 840,
+    'nv=1/160' => 841,
+    'nv=1/2' => 842,
+    'nv=1/20' => 843,
+    'nv=1/3' => 844,
+    'nv=1/32' => 845,
+    'nv=1/320' => 846,
+    'nv=1/4' => 847,
+    'nv=1/40' => 848,
+    'nv=1/5' => 849,
+    'nv=1/6' => 850,
+    'nv=1/64' => 851,
+    'nv=1/7' => 852,
+    'nv=1/8' => 853,
+    'nv=1/80' => 854,
+    'nv=1/9' => 855,
+    'nv=10' => 814,
+    'nv=100' => 815,
+    'nv=1000' => 816,
+    'nv=10000' => 817,
+    'nv=100000' => 818,
+    'nv=1000000' => 819,
+    'nv=10000000' => 820,
+    'nv=100000000' => 821,
+    'nv=10000000000' => 822,
+    'nv=1000000000000' => 823,
+    'nv=11' => 824,
+    'nv=11/12' => 825,
+    'nv=11/2' => 826,
+    'nv=12' => 827,
+    'nv=13' => 828,
+    'nv=13/2' => 829,
+    'nv=14' => 830,
+    'nv=15' => 831,
+    'nv=15/2' => 832,
+    'nv=16' => 833,
+    'nv=17' => 834,
+    'nv=17/2' => 835,
+    'nv=18' => 836,
+    'nv=19' => 837,
+    'nv=2' => 856,
+    'nv=2/3' => 873,
+    'nv=2/5' => 874,
+    'nv=20' => 857,
+    'nv=200' => 858,
+    'nv=2000' => 859,
+    'nv=20000' => 860,
+    'nv=200000' => 861,
+    'nv=20000000' => 862,
+    'nv=21' => 863,
+    'nv=216000' => 864,
+    'nv=22' => 865,
+    'nv=23' => 866,
+    'nv=24' => 867,
+    'nv=25' => 868,
+    'nv=26' => 869,
+    'nv=27' => 870,
+    'nv=28' => 871,
+    'nv=29' => 872,
+    'nv=3' => 875,
+    'nv=3/16' => 890,
+    'nv=3/2' => 891,
+    'nv=3/20' => 892,
+    'nv=3/4' => 893,
+    'nv=3/5' => 894,
+    'nv=3/64' => 895,
+    'nv=3/8' => 896,
+    'nv=3/80' => 897,
+    'nv=30' => 876,
+    'nv=300' => 877,
+    'nv=3000' => 878,
+    'nv=30000' => 879,
+    'nv=300000' => 880,
+    'nv=31' => 881,
+    'nv=32' => 882,
+    'nv=33' => 883,
+    'nv=34' => 884,
+    'nv=35' => 885,
+    'nv=36' => 886,
+    'nv=37' => 887,
+    'nv=38' => 888,
+    'nv=39' => 889,
+    'nv=4' => 898,
+    'nv=4/5' => 914,
+    'nv=40' => 899,
+    'nv=400' => 900,
+    'nv=4000' => 901,
+    'nv=40000' => 902,
+    'nv=400000' => 903,
+    'nv=41' => 904,
+    'nv=42' => 905,
+    'nv=43' => 906,
+    'nv=432000' => 907,
+    'nv=44' => 908,
+    'nv=45' => 909,
+    'nv=46' => 910,
+    'nv=47' => 911,
+    'nv=48' => 912,
+    'nv=49' => 913,
+    'nv=5' => 915,
+    'nv=5/12' => 921,
+    'nv=5/2' => 922,
+    'nv=5/6' => 923,
+    'nv=5/8' => 924,
+    'nv=50' => 916,
+    'nv=500' => 917,
+    'nv=5000' => 918,
+    'nv=50000' => 919,
+    'nv=500000' => 920,
+    'nv=6' => 925,
+    'nv=60' => 926,
+    'nv=600' => 927,
+    'nv=6000' => 928,
+    'nv=60000' => 929,
+    'nv=600000' => 930,
+    'nv=7' => 931,
+    'nv=7/12' => 937,
+    'nv=7/2' => 938,
+    'nv=7/8' => 939,
+    'nv=70' => 932,
+    'nv=700' => 933,
+    'nv=7000' => 934,
+    'nv=70000' => 935,
+    'nv=700000' => 936,
+    'nv=8' => 940,
+    'nv=80' => 941,
+    'nv=800' => 942,
+    'nv=8000' => 943,
+    'nv=80000' => 944,
+    'nv=800000' => 945,
+    'nv=9' => 946,
+    'nv=9/2' => 952,
+    'nv=90' => 947,
+    'nv=900' => 948,
+    'nv=9000' => 949,
+    'nv=90000' => 950,
+    'nv=900000' => 951,
+    'nv=_minus_1/2' => 954,
+    'nv=nan' => 953,
+    'ocr' => 955,
+    'ogam' => 956,
+    'olck' => 957,
+    'orkh' => 958,
+    'ornamentaldingbats' => 959,
+    'orya' => 960,
+    'osge' => 961,
+    'osma' => 962,
+    'ottomansiyaqnumbers' => 963,
+    'ougr' => 964,
+    'p' => 965,
+    'palm' => 966,
+    'patsyn' => 967,
+    'pauc' => 968,
+    'pc' => 969,
+    'pcm' => 970,
+    'pd' => 971,
+    'pe' => 972,
+    'perlspace' => 994,
+    'perlword' => 996,
+    'perm' => 973,
+    'pf' => 974,
+    'phag' => 975,
+    'phaistos' => 976,
+    'phli' => 977,
+    'phlp' => 978,
+    'phnx' => 979,
+    'phoneticext' => 980,
+    'phoneticextsup' => 981,
+    'pi' => 982,
+    'playingcards' => 983,
+    'po' => 984,
+    'posixalnum' => 985,
+    'posixalpha' => 986,
+    'posixblank' => 987,
+    'posixcntrl' => 988,
+    'posixdigit' => 989,
+    'posixgraph' => 990,
+    'posixlower' => 991,
+    'posixprint' => 992,
+    'posixpunct' => 993,
+    'posixspace' => 994,
+    'posixupper' => 995,
+    'posixword' => 996,
+    'posixxdigit' => 997,
+    'print' => 1202,
+    'prti' => 998,
+    'ps' => 999,
+    'pua' => 1000,
+    'qaai' => 1001,
+    'qmark' => 1002,
+    'radical' => 1003,
+    'ri' => 1004,
+    'rjng' => 1005,
+    'rohg' => 1006,
+    'rumi' => 1007,
+    'runr' => 1008,
+    's' => 1009,
+    'samr' => 1010,
+    'sarb' => 1011,
+    'saur' => 1012,
+    'sb=at' => 1013,
+    'sb=cl' => 1014,
+    'sb=ex' => 1015,
+    'sb=fo' => 1016,
+    'sb=le' => 1017,
+    'sb=lo' => 1018,
+    'sb=nu' => 1019,
+    'sb=sc' => 1020,
+    'sb=se' => 1021,
+    'sb=sp' => 1022,
+    'sb=st' => 1023,
+    'sb=up' => 1024,
+    'sb=xx' => 1025,
+    'sc' => 1026,
+    'sc=adlm' => 1027,
+    'sc=arab' => 1028,
+    'sc=beng' => 1029,
+    'sc=bopo' => 1030,
+    'sc=bugi' => 1031,
+    'sc=buhd' => 1032,
+    'sc=cakm' => 1033,
+    'sc=copt' => 1034,
+    'sc=cpmn' => 1035,
+    'sc=cprt' => 1036,
+    'sc=cyrl' => 1037,
+    'sc=deva' => 1038,
+    'sc=dogr' => 1039,
+    'sc=dupl' => 1040,
+    'sc=geor' => 1041,
+    'sc=glag' => 1042,
+    'sc=gong' => 1043,
+    'sc=gonm' => 1044,
+    'sc=gran' => 1045,
+    'sc=grek' => 1046,
+    'sc=gujr' => 1047,
+    'sc=guru' => 1048,
+    'sc=han' => 1049,
+    'sc=hang' => 1050,
+    'sc=hano' => 1051,
+    'sc=hira' => 1052,
+    'sc=java' => 1053,
+    'sc=kali' => 1054,
+    'sc=kana' => 1055,
+    'sc=khoj' => 1056,
+    'sc=knda' => 1057,
+    'sc=kthi' => 1058,
+    'sc=latn' => 1059,
+    'sc=limb' => 1060,
+    'sc=lina' => 1061,
+    'sc=linb' => 1062,
+    'sc=mahj' => 1063,
+    'sc=mand' => 1064,
+    'sc=mani' => 1065,
+    'sc=mlym' => 1066,
+    'sc=modi' => 1067,
+    'sc=mong' => 1068,
+    'sc=mult' => 1069,
+    'sc=mymr' => 1070,
+    'sc=nand' => 1071,
+    'sc=nko' => 1072,
+    'sc=orya' => 1073,
+    'sc=ougr' => 1074,
+    'sc=perm' => 1075,
+    'sc=phag' => 1076,
+    'sc=phlp' => 1077,
+    'sc=qaai' => 1078,
+    'sc=rohg' => 1079,
+    'sc=shrd' => 1080,
+    'sc=sind' => 1081,
+    'sc=sinh' => 1082,
+    'sc=sogd' => 1083,
+    'sc=sylo' => 1084,
+    'sc=syrc' => 1085,
+    'sc=tagb' => 1086,
+    'sc=takr' => 1087,
+    'sc=tale' => 1088,
+    'sc=taml' => 1089,
+    'sc=telu' => 1090,
+    'sc=tglg' => 1091,
+    'sc=thaa' => 1092,
+    'sc=tirh' => 1093,
+    'sc=yezi' => 1094,
+    'sc=yi' => 1095,
+    'sc=zyyy' => 1096,
+    'sd' => 1097,
+    'sgnw' => 1098,
+    'shaw' => 1099,
+    'shorthandformatcontrols' => 1100,
+    'shrd' => 1101,
+    'sidd' => 1102,
+    'sind' => 1103,
+    'sinh' => 1104,
+    'sinhalaarchaicnumbers' => 1105,
+    'sk' => 1106,
+    'sm' => 1107,
+    'smallforms' => 1108,
+    'smallkanaext' => 1109,
+    'so' => 1110,
+    'sogd' => 1111,
+    'sogo' => 1112,
+    'sora' => 1113,
+    'soyo' => 1114,
+    'space' => 1204,
+    'spaceperl' => 1204,
+    'specials' => 1115,
+    'sterm' => 1116,
+    'sund' => 1117,
+    'sundanesesup' => 1118,
+    'suparrowsa' => 1119,
+    'suparrowsb' => 1120,
+    'suparrowsc' => 1121,
+    'superandsub' => 1122,
+    'supmathoperators' => 1123,
+    'suppuaa' => 1124,
+    'suppuab' => 1125,
+    'suppunctuation' => 1126,
+    'supsymbolsandpictographs' => 1127,
+    'suttonsignwriting' => 1128,
+    'sylo' => 1129,
+    'symbolsandpictographsexta' => 1130,
+    'symbolsforlegacycomputing' => 1131,
+    'syrc' => 1132,
+    'syriacsup' => 1133,
+    'tagb' => 1134,
+    'tags' => 1135,
+    'taixuanjing' => 1136,
+    'takr' => 1137,
+    'tale' => 1138,
+    'talu' => 1139,
+    'tamilsup' => 1140,
+    'taml' => 1141,
+    'tang' => 1142,
+    'tangutcomponents' => 1143,
+    'tangutsup' => 1144,
+    'tavt' => 1145,
+    'telu' => 1146,
+    'term' => 1147,
+    'tfng' => 1148,
+    'tglg' => 1149,
+    'thaa' => 1150,
+    'thai' => 1151,
+    'tibt' => 1152,
+    'tirh' => 1153,
+    'title' => 1154,
+    'titlecase' => 1154,
+    'titlecaseletter' => 1154,
+    'tnsa' => 1155,
+    'toto' => 1156,
+    'transportandmap' => 1157,
+    'ucas' => 1158,
+    'ucasext' => 1159,
+    'ucasexta' => 1160,
+    'ugar' => 1161,
+    'uideo' => 1162,
+    'upper' => 1205,
+    'uppercase' => 1205,
+    'uppercaseletter' => 1163,
+    'vai' => 1164,
+    'vedicext' => 1165,
+    'verticalforms' => 1166,
+    'vertspace' => 1167,
+    'vith' => 1168,
+    'vo=r' => 1169,
+    'vo=tr' => 1170,
+    'vo=tu' => 1171,
+    'vo=u' => 1172,
+    'vs' => 1173,
+    'vssup' => 1174,
+    'wara' => 1175,
+    'wb=dq' => 1176,
+    'wb=eb' => 1177,
+    'wb=ex' => 1178,
+    'wb=extend' => 1179,
+    'wb=fo' => 1180,
+    'wb=ka' => 1181,
+    'wb=le' => 1182,
+    'wb=mb' => 1183,
+    'wb=ml' => 1184,
+    'wb=mn' => 1185,
+    'wb=nl' => 1186,
+    'wb=nu' => 1187,
+    'wb=sq' => 1188,
+    'wb=wsegspace' => 1189,
+    'wb=xx' => 1190,
+    'wcho' => 1191,
+    'whitespace' => 1204,
+    'word' => 1206,
+    'wspace' => 1204,
+    'xdigit' => 1207,
+    'xidc' => 1192,
+    'xids' => 1193,
+    'xpeo' => 1194,
+    'xperlspace' => 1204,
+    'xposixalnum' => 1195,
+    'xposixalpha' => 1196,
+    'xposixblank' => 1197,
+    'xposixcntrl' => 1198,
+    'xposixdigit' => 1199,
+    'xposixgraph' => 1200,
+    'xposixlower' => 1201,
+    'xposixprint' => 1202,
+    'xposixpunct' => 1203,
+    'xposixspace' => 1204,
+    'xposixupper' => 1205,
+    'xposixword' => 1206,
+    'xposixxdigit' => 1207,
+    'xsux' => 1208,
+    'yezi' => 1209,
+    'yi' => 1210,
+    'yijing' => 1211,
+    'yiradicals' => 1212,
+    'yisyllables' => 1213,
+    'z' => 1214,
+    'zanb' => 1215,
+    'zl' => 1216,
+    'znamennymusic' => 1217,
+    'zp' => 1218,
+    'zs' => 1219,
+    'zyyy' => 1220,
+    'zzzz' => 1221,
 );
 
 1;
 
 # Generated from:
 # 688d673ec947f7ccf898b4eae9848139d4d33676b688dee54f449f8bf9d3bbd2 lib/Unicode/UCD.pm
-# c7698811e9adb6cc98fb996a7de4be2b6532f2ac67e76055cc8afdbf6ee18af3 lib/unicore/ArabicShaping.txt
-# 24a74555f918bbe99f5b3f1b83cf36fc0e205bb8a600a6a3aa539c710a3dcf27 lib/unicore/BidiBrackets.txt
-# 7a5c74cedc1616a9af0a9d22e108ae592d86fe93649c144ae6ba49f193a44122 lib/unicore/BidiMirroring.txt
-# 598870dddef7b34b5a972916528c456aff2765b79cd4f9647fb58ceb767e7f17 lib/unicore/Blocks.txt
-# a566cd48687b2cd897e02501118b2413c14ae86d318f9abbbba97feb84189f0f lib/unicore/CaseFolding.txt
-# 3360762fc3295cea54ab251c31df621d05ba4b94d46c60eaac29aa16d70ad1e0 lib/unicore/CompositionExclusions.txt
-# 7e058dec02147098bc9c28d86209f0f251bba0538f3b5a705ad02ea3bb709fe0 lib/unicore/DAge.txt
-# e3eddd7d469cd1b0feed7528defad1a1cc7c6a9ceb0ae4446a6d10921ed2e7bc lib/unicore/DCoreProperties.txt
-# b2c444c20730b097787fdf50bd7d6dd3fc5256ab8084f5b35b11c8776eca674c lib/unicore/DNormalizationProps.txt
-# f901ac011aa32a09224d6555da71e2532c59c1d3381322829de0e3b880507250 lib/unicore/EastAsianWidth.txt
-# 5995522f01633073911dad1edb74d13aa832f42862c0392a79627b85d52f2391 lib/unicore/EquivalentUnifiedIdeograph.txt
-# cd1c9367cba438afa965fcb5edc6ed3ec6e685fd5dd21c0cc20c026f04beb0e5 lib/unicore/HangulSyllableType.txt
-# 3f3f368fccdb37f350ecedc20b37fa71ab31c04e847884c77780d34283539f73 lib/unicore/IdStatus.txt
-# 45a150c23961b58d7784704af6c4daccd6517d97b6489e53d13bbdbf9e4f065f lib/unicore/IdType.txt
-# d8704c8725568813a947ff2ef38bcf1f05e2a6fbea6876ba384890f187a8bf61 lib/unicore/IndicPositionalCategory.txt
-# c7b969b653dc278fb66ab4136223d320e30ad19367eb791ae60dcc6d92071b16 lib/unicore/IndicSyllabicCategory.txt
-# 39ff89e0a329e1ccce6d54fad8cf82e90926901928c0ca9b9a2ad5681f330dd9 lib/unicore/Jamo.txt
-# 9e06e9f35c6959fb91dcc7993f90d58523c3079bc62c6b25f828b4cdebc5d70c lib/unicore/LineBreak.txt
-# 14b3b677d33f95c51423dce6eef4a6a28b4b160451ecedee4b91edb6745cf4a3 lib/unicore/NameAliases.txt
-# db5745688affcdc0c3927a1ee0667018a96a7b24513f866d5235e98fef6c2436 lib/unicore/NamedSequences.txt
-# 6bddfdb850417a5bee6deff19290fd1b138589909afb50f5a049f343bf2c6722 lib/unicore/PropList.txt
-# eb755757e20b72b330b2948df3cf2ff7adb0e31bb060140dc09dafb132ace2cd lib/unicore/PropValueAliases.txt
-# 859d7225f2d2a460b3ccb1d61a7945f8cc219acdf5aa53b66b7a1e4bf6ebfc87 lib/unicore/PropertyAliases.txt
-# d37eedf63ff9c48bac863d5f76862373d6cf5269fd21253d499e2430d638c01d lib/unicore/ScriptExtensions.txt
-# 52db475c4ec445e73b0b16915448c357614946ad7062843c563e00d7535c6510 lib/unicore/Scripts.txt
-# c667b45908fd269af25fd55d2fc5bbc157fb1b77675936e25c513ce32e080334 lib/unicore/SpecialCasing.txt
-# 36018e68657fdcb3485f636630ffe8c8532e01c977703d2803f5b89d6c5feafb lib/unicore/UnicodeData.txt
-# 869ff43dd012f924d03c89fc268c88f0e7eea72f0228b91ca30455afdb84f8fd lib/unicore/VerticalOrientation.txt
-# ddc7d4d1f3838573b94fc5d83ff7217e63c47b22ae1cd40c5fe1a54efc15589b lib/unicore/auxiliary/GCBTest.txt
-# 97e79f1f8d9cd76d120f2420381a01abc00a7c78a2aa583fa3f9627264a99742 lib/unicore/auxiliary/GraphemeBreakProperty.txt
-# 488dbb6a7e1d0070d4aa7c175352c818ff6425172850d1b40c6177726658cb05 lib/unicore/auxiliary/LBTest.txt
-# 7e42dd749dbb94aa44b13faf9df6319d9a16ce2ea09a3a094fcfbb5962168040 lib/unicore/auxiliary/SBTest.txt
-# 7092ca4117cec891c25c7724132efc519e1dece01ae9fd6068035a9db04d526e lib/unicore/auxiliary/SentenceBreakProperty.txt
-# 8094b544ec1580c7e41ac0187805cc1aeb330a90301ec7505563e1a59318284e lib/unicore/auxiliary/WBTest.txt
-# 7716752aad296d4ab23ff4ed0a2746fc5328750ff84e9e7d6f3828ee9eaef742 lib/unicore/auxiliary/WordBreakProperty.txt
-# b597836124298b8f7fa076273802840cfc3271a25f5c397a082e120954b82c3c lib/unicore/emoji/emoji.txt
-# e5fe51acc74e3e83b4fb4c7b25f3c34491d6eb8095c9955d0712dafbca7b3c2b lib/unicore/extracted/DBidiClass.txt
-# cd0a14176d93bf440b77a582a0d678190fc0688b15442d4cfb250bf2e27956af lib/unicore/extracted/DBinaryProperties.txt
-# 12b0c3af9b600b49488d66545a3e7844ea980809627201bf9afeebe1c9f16f4e lib/unicore/extracted/DCombiningClass.txt
-# f76064b298cfbd715ba542e7894f7a507d32da2f011070d1d01df95cad9817d6 lib/unicore/extracted/DDecompositionType.txt
-# f9bef074cc916db57fece99d54a4505f8e7c7b17481619e3f0005211f7717d4b lib/unicore/extracted/DEastAsianWidth.txt
-# cde679c8461976ed40d7edf61ae98cbb947540831f06f5bc7da7decbf91a1420 lib/unicore/extracted/DGeneralCategory.txt
-# 9bb891831328713603a486a4a03df7f7987c3e1e8144a6d1ac71fd061ef3f732 lib/unicore/extracted/DJoinGroup.txt
-# e97c65bbea0a69d2fae6ec4182b09e519e13232e20bd804b3004edc0f36bb0d4 lib/unicore/extracted/DJoinType.txt
-# 43f6df50e4878f501b417e366b0ee097ae5ccb2d4ce942026bed3d62d78e7887 lib/unicore/extracted/DLineBreak.txt
-# a04502ebb36a45d83cbe48a7d8132ea8143edb7b3d34d0aa6afe4a9685049741 lib/unicore/extracted/DNumType.txt
-# 11075771b112e8e7ccf6ffa637c4c91eadc3ef3db0517b24e605df8fd3624239 lib/unicore/extracted/DNumValues.txt
-# 1e514199c3fa46f5df6148d272db7bddbfd5e89c9710e39773ef9d734f344a2f lib/unicore/mktables
-# c72bbdeda99714db1c8024d3311da4aef3c0db3b9b9f11455a7cfe10d5e9aba3 lib/unicore/version
+# eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 lib/unicore/ArabicShaping.txt
+# 333ae1e99db0504ca8a046a07dc45b5e7aa91869c685e6bf955ebe674804827a lib/unicore/BidiBrackets.txt
+# b4b9e1d87d8ea273613880de9d2b2f0b0b696244b42152bfa0a3106e7d983a20 lib/unicore/BidiMirroring.txt
+# 529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 lib/unicore/Blocks.txt
+# cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 lib/unicore/CaseFolding.txt
+# 3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 lib/unicore/CompositionExclusions.txt
+# 7570877e0fa197c45338f7c41a02636da4e14c8dba6a3611a01cd30bf329d5ca lib/unicore/DAge.txt
+# d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d lib/unicore/DCoreProperties.txt
+# d5687a48c95c7d6e1ec59cb29c0f2e8b052018eb069a4371b7368d0561e12a29 lib/unicore/DNormalizationProps.txt
+# 743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a lib/unicore/EastAsianWidth.txt
+# f2e04bae8c856fad3a16353a99d4cc2de6c72770260379f5e4974a97548aad2a lib/unicore/EquivalentUnifiedIdeograph.txt
+# 9a3ab36d36a22bdb84de7a17b17e9b9c242134f0080f0a8b4b28d209465a8fc8 lib/unicore/HangulSyllableType.txt
+# 790bc9595795c0e0a3860a21a7f97157a134b61a4fc4ab03c7d315d07c9a6eb7 lib/unicore/IdStatus.txt
+# 71d3ed8f15cd5d8cd00cdebe62015ff26356462774b261b4a2b83d3bf46b1639 lib/unicore/IdType.txt
+# 0ce56c1294da405c0a0a0071582ac839fd229bbf97bdd260462ee571309d4ec4 lib/unicore/IndicPositionalCategory.txt
+# ffae561a51b47ddbbe267fdd8505ac3776b85b2932268809127acee84200b573 lib/unicore/IndicSyllabicCategory.txt
+# 14733bcb6731ae0c07485bf59a41cb3db08785a50bd2b46b836b4341eab7ee46 lib/unicore/Jamo.txt
+# 012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf lib/unicore/LineBreak.txt
+# 3e39509e8fae3e5d50ba73759d0b97194501d14a9c63107a6372a46b38be18e8 lib/unicore/NameAliases.txt
+# 1d5202155f14841973aa540b1625f4befbde185ac77ce5aceaaaa0501a68bd66 lib/unicore/NamedSequences.txt
+# fb9ac8cc154a80cad6caac9897af55a4e75176af6f4e2bb6edc2bf8b1d57f326 lib/unicore/NormTest.txt
+# e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd lib/unicore/PropList.txt
+# 13a7666843abea5c6b7eb8c057c57ab9bb2ba96cfc936e204224dd67d71cafad lib/unicore/PropValueAliases.txt
+# e4935149af407fa455901832b710bccb63d2453e46d09190e234d019bcfbba45 lib/unicore/PropertyAliases.txt
+# 7e07313d9d0bee42220c476b64485995130ae30917bbcf7780b602d677d7e33f lib/unicore/ScriptExtensions.txt
+# cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 lib/unicore/Scripts.txt
+# 78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 lib/unicore/SpecialCasing.txt
+# 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 lib/unicore/UnicodeData.txt
+# ca6d332f485a6f5f452b29b4a74146af0f2c17b7577aa4c821d597210f70611a lib/unicore/VerticalOrientation.txt
+# 0d2080d0def294a4b7660801cc03ddfe5866ff300c789c2cc1b50fd7802b2d97 lib/unicore/auxiliary/GCBTest.txt
+# 5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+# 371bde4052aa593b108684ae292d8ea2dbb93c19990e0cdf416fa7239557aac3 lib/unicore/auxiliary/LBTest.txt
+# f62279d8fd10935ba0cf0d8417a1dcbe7ab0d4e62f59c17e02cbe40f580c4162 lib/unicore/auxiliary/SBTest.txt
+# 61e4ba975b0a5bc1a76ee931b94914395d7289ef624e3c0d4d6b9460ee387bea lib/unicore/auxiliary/SentenceBreakProperty.txt
+# 2a676130c71194245e7c74a837e58330f202600d8ddcf4518129dd476f26e18e lib/unicore/auxiliary/WBTest.txt
+# 5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 lib/unicore/auxiliary/WordBreakProperty.txt
+# 29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 lib/unicore/emoji/emoji.txt
+# 4841f2090c2dbc592d3ce43bb74c2191b3da50fb9a0d00274f1448c202851b02 lib/unicore/extracted/DBidiClass.txt
+# f10a35451429137f7348825f22d624b6390c526ead3d8e756d2af9e5ed5b2b67 lib/unicore/extracted/DBinaryProperties.txt
+# ca54f6360cd288ad92113415bf1f77749015abe11cbd6798d21f7fa81f04205d lib/unicore/extracted/DCombiningClass.txt
+# db059ce45e3cec49bfda56e262fa658b3a5561b1648de266c818d2a08a85b78a lib/unicore/extracted/DDecompositionType.txt
+# d62e6950f086e53f47c593a38342621f8838f48c49a1de070cf83d3959bd1688 lib/unicore/extracted/DEastAsianWidth.txt
+# fe29a45c0882500e591140aaa5c4f5067e6a5d746806148af34400c48b9c06f9 lib/unicore/extracted/DGeneralCategory.txt
+# e13ca1344b16023aa38c6ada39f9658536fc6bb7c3c24d579f0bc316a4f4f1e0 lib/unicore/extracted/DJoinGroup.txt
+# c4870b11e2b8b7d0eb70b99ce85608e5c28a399efa316cca97238a58ae160e5e lib/unicore/extracted/DJoinType.txt
+# 3f4f32ed2a577344a508114527e721d7a8b633d32f38945d47fe0c743650c585 lib/unicore/extracted/DLineBreak.txt
+# 710abf2d581ac9c57f244c0834f9d9969d9781e0396adccd330eaae658ac7d6b lib/unicore/extracted/DNumType.txt
+# 6bd30f385f3baf3ab5d5308c111a81de87bea5f494ba0ba69e8ab45263b8c34d lib/unicore/extracted/DNumValues.txt
+# f7265069b38ba9a0675a18600e241b1ec6fc8c55fd806fe4c13bc5d8cb0dc508 lib/unicore/mktables
+# 55d90fdc3f902e5c0b16b3378f9eaa36e970a1c09723c33de7d47d0370044012 lib/unicore/version
 # 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
-# 5f8520d3a17ade6317fc0c423f5091470924b1ef425bca0c41ce8e4a9f8460fe regen/mk_PL_charclass.pl
-# 1c73795f9150bd556573e7ae982789377289e22b6a7f3db0a05c36852e8d749f regen/mk_invlists.pl
-# ex: set ro:
+# c7ff8e0d207d3538c7feb4a1a152b159e5e902d20293b303569ea8323e84633e regen/mk_PL_charclass.pl
+# cdbafee25193032242e77f2a6332b731d8392ce342fa616dbabc2c14c7b44eb6 regen/mk_invlists.pl
+# ex: set ro ft=perl:
Index: gnu/usr.bin/perl/lib/unicore/version
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/version,v
diff -u -p -a -u -p -r1.6 version
--- gnu/usr.bin/perl/lib/unicore/version	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/version	21 Feb 2024 15:47:02 -0000
@@ -1 +1 @@
-14.0.0
+15.0.0
Index: gnu/usr.bin/perl/lib/unicore/To/Age.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Age.pl,v
diff -u -p -a -u -p -r1.8 Age.pl
--- gnu/usr.bin/perl/lib/unicore/To/Age.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Age.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -353,6 +353,7 @@ CE0	CE1	1.1
 CE2	CE3	5.0
 CE6	CEF	1.1
 CF1	CF2	5.0
+CF3		15.0
 D00		10.0
 D01		7.0
 D02	D03	1.1
@@ -421,6 +422,7 @@ EBB	EBD	1.1
 EC0	EC4	1.1
 EC6		1.1
 EC8	ECD	1.1
+ECE		15.0
 ED0	ED9	1.1
 EDC	EDD	1.1
 EDE	EDF	6.1
@@ -1154,6 +1156,7 @@ FFFD	FFFF	1.1
 10E80	10EA9	13.0
 10EAB	10EAD	13.0
 10EB0	10EB1	13.0
+10EFD	10EFF	15.0
 10F00	10F27	11.0
 10F30	10F59	11.0
 10F70	10F89	14.0
@@ -1184,6 +1187,7 @@ FFFD	FFFF	1.1
 11200	11211	7.0
 11213	1123D	7.0
 1123E		9.0
+1123F	11241	15.0
 11280	11286	8.0
 11288		8.0
 1128A	1128D	8.0
@@ -1254,6 +1258,7 @@ FFFD	FFFF	1.1
 11A9E	11AA2	10.0
 11AB0	11ABF	14.0
 11AC0	11AF8	7.0
+11B00	11B09	15.0
 11C00	11C08	9.0
 11C0A	11C36	9.0
 11C38	11C45	9.0
@@ -1275,6 +1280,9 @@ FFFD	FFFF	1.1
 11D93	11D98	11.0
 11DA0	11DA9	11.0
 11EE0	11EF8	11.0
+11F00	11F10	15.0
+11F12	11F3A	15.0
+11F3E	11F59	15.0
 11FB0		13.0
 11FC0	11FF1	12.0
 11FFF		12.0
@@ -1288,7 +1296,9 @@ FFFD	FFFF	1.1
 12480	12543	8.0
 12F90	12FF2	14.0
 13000	1342E	5.2
+1342F		15.0
 13430	13438	12.0
+13439	13455	15.0
 14400	14646	8.0
 16800	16A38	6.0
 16A40	16A5E	7.0
@@ -1327,7 +1337,9 @@ FFFD	FFFF	1.1
 1B000	1B001	6.0
 1B002	1B11E	10.0
 1B11F	1B122	14.0
+1B132		15.0
 1B150	1B152	12.0
+1B155		15.0
 1B164	1B167	12.0
 1B170	1B2FB	10.0
 1BC00	1BC6A	7.0
@@ -1345,6 +1357,7 @@ FFFD	FFFF	1.1
 1D1DE	1D1E8	8.0
 1D1E9	1D1EA	14.0
 1D200	1D245	4.1
+1D2C0	1D2D3	15.0
 1D2E0	1D2F3	11.0
 1D300	1D356	4.0
 1D360	1D371	5.0
@@ -1378,11 +1391,14 @@ FFFD	FFFF	1.1
 1DA9B	1DA9F	8.0
 1DAA1	1DAAF	8.0
 1DF00	1DF1E	14.0
+1DF25	1DF2A	15.0
 1E000	1E006	9.0
 1E008	1E018	9.0
 1E01B	1E021	9.0
 1E023	1E024	9.0
 1E026	1E02A	9.0
+1E030	1E06D	15.0
+1E08F		15.0
 1E100	1E12C	12.0
 1E130	1E13D	12.0
 1E140	1E149	12.0
@@ -1390,6 +1406,7 @@ FFFD	FFFF	1.1
 1E290	1E2AE	14.0
 1E2C0	1E2F9	12.0
 1E2FF		12.0
+1E4D0	1E4F9	15.0
 1E7E0	1E7E6	14.0
 1E7E8	1E7EB	14.0
 1E7ED	1E7EE	14.0
@@ -1564,6 +1581,7 @@ FFFD	FFFF	1.1
 1F6D3	1F6D4	10.0
 1F6D5		12.0
 1F6D6	1F6D7	13.0
+1F6DC		15.0
 1F6DD	1F6DF	14.0
 1F6E0	1F6EC	7.0
 1F6F0	1F6F3	7.0
@@ -1573,8 +1591,11 @@ FFFD	FFFF	1.1
 1F6FA		12.0
 1F6FB	1F6FC	13.0
 1F700	1F773	6.0
+1F774	1F776	15.0
+1F77B	1F77F	15.0
 1F780	1F7D4	7.0
 1F7D5	1F7D8	11.0
+1F7D9		15.0
 1F7E0	1F7EB	12.0
 1F7F0		14.0
 1F800	1F80B	7.0
@@ -1631,21 +1652,30 @@ FFFD	FFFF	1.1
 1FA60	1FA6D	11.0
 1FA70	1FA73	12.0
 1FA74		13.0
+1FA75	1FA77	15.0
 1FA78	1FA7A	12.0
 1FA7B	1FA7C	14.0
 1FA80	1FA82	12.0
 1FA83	1FA86	13.0
+1FA87	1FA88	15.0
 1FA90	1FA95	12.0
 1FA96	1FAA8	13.0
 1FAA9	1FAAC	14.0
+1FAAD	1FAAF	15.0
 1FAB0	1FAB6	13.0
 1FAB7	1FABA	14.0
+1FABB	1FABD	15.0
+1FABF		15.0
 1FAC0	1FAC2	13.0
 1FAC3	1FAC5	14.0
+1FACE	1FACF	15.0
 1FAD0	1FAD6	13.0
 1FAD7	1FAD9	14.0
+1FADA	1FADB	15.0
 1FAE0	1FAE7	14.0
+1FAE8		15.0
 1FAF0	1FAF6	14.0
+1FAF7	1FAF8	15.0
 1FB00	1FB92	13.0
 1FB94	1FBCA	13.0
 1FBF0	1FBF9	13.0
@@ -1655,12 +1685,14 @@ FFFD	FFFF	1.1
 2A6DE	2A6DF	14.0
 2A700	2B734	5.2
 2B735	2B738	14.0
+2B739		15.0
 2B740	2B81D	6.0
 2B820	2CEA1	8.0
 2CEB0	2EBE0	10.0
 2F800	2FA1D	3.1
 2FFFE	2FFFF	2.0
 30000	3134A	13.0
+31350	323AF	15.0
 3FFFE	3FFFF	2.0
 4FFFE	4FFFF	2.0
 5FFFE	5FFFF	2.0
Index: gnu/usr.bin/perl/lib/unicore/To/Bc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Bc.pl,v
diff -u -p -a -u -p -r1.8 Bc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Bc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Bc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -213,7 +213,7 @@ E3F		ET
 E47	E4E	NSM
 EB1		NSM
 EB4	EBC	NSM
-EC8	ECD	NSM
+EC8	ECE	NSM
 F18	F19	NSM
 F35		NSM
 F37		NSM
@@ -525,7 +525,10 @@ FFFE	FFFF	BN
 10E60	10E7E	AN
 10E7F	10EAA	R
 10EAB	10EAC	NSM
-10EAD	10F2F	R
+10EAD	10EBF	R
+10EC0	10EFC	AL
+10EFD	10EFF	NSM
+10F00	10F2F	R
 10F30	10F45	AL
 10F46	10F50	NSM
 10F51	10F6F	AL
@@ -553,6 +556,7 @@ FFFE	FFFF	BN
 11234		NSM
 11236	11237	NSM
 1123E		NSM
+11241		NSM
 112DF		NSM
 112E3	112EA	NSM
 11300	11301	NSM
@@ -615,9 +619,15 @@ FFFE	FFFF	BN
 11D95		NSM
 11D97		NSM
 11EF3	11EF4	NSM
+11F00	11F01	NSM
+11F36	11F3A	NSM
+11F40		NSM
+11F42		NSM
 11FD5	11FDC	ON
 11FDD	11FE0	ET
 11FE1	11FF1	ON
+13440		NSM
+13447	13455	NSM
 16AF0	16AF4	NSM
 16B30	16B36	NSM
 16F4F		NSM
@@ -655,10 +665,12 @@ FFFE	FFFF	BN
 1E01B	1E021	NSM
 1E023	1E024	NSM
 1E026	1E02A	NSM
+1E08F		NSM
 1E130	1E136	NSM
 1E2AE		NSM
 1E2EC	1E2EF	NSM
 1E2FF		ET
+1E4EC	1E4EF	NSM
 1E800	1E8CF	R
 1E8D0	1E8D6	NSM
 1E8D7	1E943	R
@@ -685,10 +697,10 @@ FFFE	FFFF	BN
 1F1AD		ON
 1F260	1F265	ON
 1F300	1F6D7	ON
-1F6DD	1F6EC	ON
+1F6DC	1F6EC	ON
 1F6F0	1F6FC	ON
-1F700	1F773	ON
-1F780	1F7D8	ON
+1F700	1F776	ON
+1F77B	1F7D9	ON
 1F7E0	1F7EB	ON
 1F7F0		ON
 1F800	1F80B	ON
@@ -699,15 +711,13 @@ FFFE	FFFF	BN
 1F8B0	1F8B1	ON
 1F900	1FA53	ON
 1FA60	1FA6D	ON
-1FA70	1FA74	ON
-1FA78	1FA7C	ON
-1FA80	1FA86	ON
-1FA90	1FAAC	ON
-1FAB0	1FABA	ON
-1FAC0	1FAC5	ON
-1FAD0	1FAD9	ON
-1FAE0	1FAE7	ON
-1FAF0	1FAF6	ON
+1FA70	1FA7C	ON
+1FA80	1FA88	ON
+1FA90	1FABD	ON
+1FABF	1FAC5	ON
+1FACE	1FADB	ON
+1FAE0	1FAE8	ON
+1FAF0	1FAF8	ON
 1FB00	1FB92	ON
 1FB94	1FBCA	ON
 1FBF0	1FBF9	EN
Index: gnu/usr.bin/perl/lib/unicore/To/Bmg.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Bmg.pl,v
diff -u -p -a -u -p -r1.9 Bmg.pl
--- gnu/usr.bin/perl/lib/unicore/To/Bmg.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/To/Bmg.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   IT IS DEPRECATED TO USE THIS FILE   !!!!!!!
 
Index: gnu/usr.bin/perl/lib/unicore/To/Bpb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Bpb.pl,v
diff -u -p -a -u -p -r1.6 Bpb.pl
--- gnu/usr.bin/perl/lib/unicore/To/Bpb.pl	15 Feb 2023 01:39:51 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/To/Bpb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Bpt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Bpt.pl,v
diff -u -p -a -u -p -r1.6 Bpt.pl
--- gnu/usr.bin/perl/lib/unicore/To/Bpt.pl	15 Feb 2023 01:39:51 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/To/Bpt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -17,132 +17,132 @@ $Unicode::UCD::SwashInfo{'ToBpt'}{'forma
 $Unicode::UCD::SwashInfo{'ToBpt'}{'missing'} = 'n';
 
 return <<'END';
-28		o
-29		c
-5B		o
-5D		c
-7B		o
-7D		c
-F3A		o
-F3B		c
-F3C		o
-F3D		c
-169B		o
-169C		c
-2045		o
-2046		c
-207D		o
-207E		c
-208D		o
-208E		c
-2308		o
-2309		c
-230A		o
-230B		c
-2329		o
-232A		c
-2768		o
-2769		c
-276A		o
-276B		c
-276C		o
-276D		c
-276E		o
-276F		c
-2770		o
-2771		c
-2772		o
-2773		c
-2774		o
-2775		c
-27C5		o
-27C6		c
-27E6		o
-27E7		c
-27E8		o
-27E9		c
-27EA		o
-27EB		c
-27EC		o
-27ED		c
-27EE		o
-27EF		c
-2983		o
-2984		c
-2985		o
-2986		c
-2987		o
-2988		c
-2989		o
-298A		c
-298B		o
-298C		c
-298D		o
-298E		c
-298F		o
-2990		c
-2991		o
-2992		c
-2993		o
-2994		c
-2995		o
-2996		c
-2997		o
-2998		c
-29D8		o
-29D9		c
-29DA		o
-29DB		c
-29FC		o
-29FD		c
-2E22		o
-2E23		c
-2E24		o
-2E25		c
-2E26		o
-2E27		c
-2E28		o
-2E29		c
-2E55		o
-2E56		c
-2E57		o
-2E58		c
-2E59		o
-2E5A		c
-2E5B		o
-2E5C		c
-3008		o
-3009		c
-300A		o
-300B		c
-300C		o
-300D		c
-300E		o
-300F		c
-3010		o
-3011		c
-3014		o
-3015		c
-3016		o
-3017		c
-3018		o
-3019		c
-301A		o
-301B		c
-FE59		o
-FE5A		c
-FE5B		o
-FE5C		c
-FE5D		o
-FE5E		c
-FF08		o
-FF09		c
-FF3B		o
-FF3D		c
-FF5B		o
-FF5D		c
-FF5F		o
-FF60		c
-FF62		o
-FF63		c
+28		O
+29		C
+5B		O
+5D		C
+7B		O
+7D		C
+F3A		O
+F3B		C
+F3C		O
+F3D		C
+169B		O
+169C		C
+2045		O
+2046		C
+207D		O
+207E		C
+208D		O
+208E		C
+2308		O
+2309		C
+230A		O
+230B		C
+2329		O
+232A		C
+2768		O
+2769		C
+276A		O
+276B		C
+276C		O
+276D		C
+276E		O
+276F		C
+2770		O
+2771		C
+2772		O
+2773		C
+2774		O
+2775		C
+27C5		O
+27C6		C
+27E6		O
+27E7		C
+27E8		O
+27E9		C
+27EA		O
+27EB		C
+27EC		O
+27ED		C
+27EE		O
+27EF		C
+2983		O
+2984		C
+2985		O
+2986		C
+2987		O
+2988		C
+2989		O
+298A		C
+298B		O
+298C		C
+298D		O
+298E		C
+298F		O
+2990		C
+2991		O
+2992		C
+2993		O
+2994		C
+2995		O
+2996		C
+2997		O
+2998		C
+29D8		O
+29D9		C
+29DA		O
+29DB		C
+29FC		O
+29FD		C
+2E22		O
+2E23		C
+2E24		O
+2E25		C
+2E26		O
+2E27		C
+2E28		O
+2E29		C
+2E55		O
+2E56		C
+2E57		O
+2E58		C
+2E59		O
+2E5A		C
+2E5B		O
+2E5C		C
+3008		O
+3009		C
+300A		O
+300B		C
+300C		O
+300D		C
+300E		O
+300F		C
+3010		O
+3011		C
+3014		O
+3015		C
+3016		O
+3017		C
+3018		O
+3019		C
+301A		O
+301B		C
+FE59		O
+FE5A		C
+FE5B		O
+FE5C		C
+FE5D		O
+FE5E		C
+FF08		O
+FF09		C
+FF3B		O
+FF3D		C
+FF5B		O
+FF5D		C
+FF5F		O
+FF60		C
+FF62		O
+FF63		C
 END
Index: gnu/usr.bin/perl/lib/unicore/To/Cf.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Cf.pl,v
diff -u -p -a -u -p -r1.8 Cf.pl
--- gnu/usr.bin/perl/lib/unicore/To/Cf.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Cf.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Ea.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Ea.pl,v
diff -u -p -a -u -p -r1.8 Ea.pl
--- gnu/usr.bin/perl/lib/unicore/To/Ea.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Ea.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -14,7 +14,7 @@
 # the main body of the table, and what all code points missing from this file
 # map to.
 $Unicode::UCD::SwashInfo{'ToEa'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToEa'}{'missing'} = 'Neutral';
+$Unicode::UCD::SwashInfo{'ToEa'}{'missing'} = 'N';
 
 return <<'END';
 20	7E	Na
@@ -270,7 +270,9 @@ FFFD		A
 1AFF5	1AFFB	W
 1AFFD	1AFFE	W
 1B000	1B122	W
+1B132		W
 1B150	1B152	W
+1B155		W
 1B164	1B167	W
 1B170	1B2FB	W
 1F004		W
@@ -310,7 +312,7 @@ FFFD		A
 1F6CC		W
 1F6D0	1F6D2	W
 1F6D5	1F6D7	W
-1F6DD	1F6DF	W
+1F6DC	1F6DF	W
 1F6EB	1F6EC	W
 1F6F4	1F6FC	W
 1F7E0	1F7EB	W
@@ -318,15 +320,13 @@ FFFD		A
 1F90C	1F93A	W
 1F93C	1F945	W
 1F947	1F9FF	W
-1FA70	1FA74	W
-1FA78	1FA7C	W
-1FA80	1FA86	W
-1FA90	1FAAC	W
-1FAB0	1FABA	W
-1FAC0	1FAC5	W
-1FAD0	1FAD9	W
-1FAE0	1FAE7	W
-1FAF0	1FAF6	W
+1FA70	1FA7C	W
+1FA80	1FA88	W
+1FA90	1FABD	W
+1FABF	1FAC5	W
+1FACE	1FADB	W
+1FAE0	1FAE8	W
+1FAF0	1FAF8	W
 20000	2FFFD	W
 30000	3FFFD	W
 E0100	E01EF	A
Index: gnu/usr.bin/perl/lib/unicore/To/EqUIdeo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/EqUIdeo.pl,v
diff -u -p -a -u -p -r1.3 EqUIdeo.pl
--- gnu/usr.bin/perl/lib/unicore/To/EqUIdeo.pl	15 Feb 2023 01:39:51 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/To/EqUIdeo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -36,7 +36,7 @@ return <<'END';
 2E92		5DF3
 2E93		5E7A
 2E94		5F51
-2E95		5F50
+2E95		2B739
 2E96		5FC4
 2E97		5FC3
 2E98		624C
Index: gnu/usr.bin/perl/lib/unicore/To/GCB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/GCB.pl,v
diff -u -p -a -u -p -r1.8 GCB.pl
--- gnu/usr.bin/perl/lib/unicore/To/GCB.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/GCB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -147,6 +147,7 @@ CCA	CCB	SpacingMark
 CCC	CCD	Extend
 CD5	CD6	Extend
 CE2	CE3	Extend
+CF3		SpacingMark
 D00	D01	Extend
 D02	D03	SpacingMark
 D3B	D3C	Extend
@@ -176,7 +177,7 @@ E47	E4E	Extend
 EB1		Extend
 EB3		SpacingMark
 EB4	EBC	Extend
-EC8	ECD	Extend
+EC8	ECE	Extend
 F18	F19	Extend
 F35		Extend
 F37		Extend
@@ -1219,6 +1220,7 @@ FFF0	FFFB	Control
 10AE5	10AE6	Extend
 10D24	10D27	Extend
 10EAB	10EAC	Extend
+10EFD	10EFF	Extend
 10F46	10F50	Extend
 10F82	10F85	Extend
 11000		SpacingMark
@@ -1258,6 +1260,7 @@ FFF0	FFFB	Control
 11235		SpacingMark
 11236	11237	Extend
 1123E		Extend
+11241		Extend
 112DF		Extend
 112E0	112E2	SpacingMark
 112E3	112EA	Extend
@@ -1377,7 +1380,18 @@ FFF0	FFFB	Control
 11D97		Extend
 11EF3	11EF4	Extend
 11EF5	11EF6	SpacingMark
-13430	13438	Control
+11F00	11F01	Extend
+11F02		Prepend
+11F03		SpacingMark
+11F34	11F35	SpacingMark
+11F36	11F3A	Extend
+11F3E	11F3F	SpacingMark
+11F40		Extend
+11F41		SpacingMark
+11F42		Extend
+13430	1343F	Control
+13440		Extend
+13447	13455	Extend
 16AF0	16AF4	Extend
 16B30	16B36	Extend
 16F4F		Extend
@@ -1410,9 +1424,11 @@ FFF0	FFFB	Control
 1E01B	1E021	Extend
 1E023	1E024	Extend
 1E026	1E02A	Extend
+1E08F		Extend
 1E130	1E136	Extend
 1E2AE		Extend
 1E2EC	1E2EF	Extend
+1E4EC	1E4EF	Extend
 1E8D0	1E8D6	Extend
 1E944	1E94A	Extend
 1F000	1F0FF	ExtPict_XX
Index: gnu/usr.bin/perl/lib/unicore/To/Gc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Gc.pl,v
diff -u -p -a -u -p -r1.8 Gc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Gc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Gc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -924,6 +924,7 @@ CE0	CE1	Lo
 CE2	CE3	Mn
 CE6	CEF	Nd
 CF1	CF2	Lo
+CF3		Mc
 D00	D01	Mn
 D02	D03	Mc
 D04	D0C	Lo
@@ -985,7 +986,7 @@ EB4	EBC	Mn
 EBD		Lo
 EC0	EC4	Lo
 EC6		Lm
-EC8	ECD	Mn
+EC8	ECE	Mn
 ED0	ED9	Nd
 EDC	EDF	Lo
 F00		Lo
@@ -2698,6 +2699,7 @@ FFFC	FFFD	So
 10EAB	10EAC	Mn
 10EAD		Pd
 10EB0	10EB1	Lo
+10EFD	10EFF	Mn
 10F00	10F1C	Lo
 10F1D	10F26	No
 10F27		Lo
@@ -2779,6 +2781,8 @@ FFFC	FFFD	So
 11236	11237	Mn
 11238	1123D	Po
 1123E		Mn
+1123F	11240	Lo
+11241		Mn
 11280	11286	Lo
 11288		Lo
 1128A	1128D	Lo
@@ -2940,6 +2944,7 @@ FFFC	FFFD	So
 11A9D		Lo
 11A9E	11AA2	Po
 11AB0	11AF8	Lo
+11B00	11B09	Po
 11C00	11C08	Lo
 11C0A	11C2E	Lo
 11C2F		Mc
@@ -2985,6 +2990,19 @@ FFFC	FFFD	So
 11EF3	11EF4	Mn
 11EF5	11EF6	Mc
 11EF7	11EF8	Po
+11F00	11F01	Mn
+11F02		Lo
+11F03		Mc
+11F04	11F10	Lo
+11F12	11F33	Lo
+11F34	11F35	Mc
+11F36	11F3A	Mn
+11F3E	11F3F	Mc
+11F40		Mn
+11F41		Mc
+11F42		Mn
+11F43	11F4F	Po
+11F50	11F59	Nd
 11FB0		Lo
 11FC0	11FD4	No
 11FD5	11FDC	So
@@ -2997,8 +3015,11 @@ FFFC	FFFD	So
 12480	12543	Lo
 12F90	12FF0	Lo
 12FF1	12FF2	Po
-13000	1342E	Lo
-13430	13438	Cf
+13000	1342F	Lo
+13430	1343F	Cf
+13440		Mn
+13441	13446	Lo
+13447	13455	Mn
 14400	14646	Lo
 16800	16A38	Lo
 16A40	16A5E	Lo
@@ -3042,7 +3063,9 @@ FFFC	FFFD	So
 1AFF5	1AFFB	Lm
 1AFFD	1AFFE	Lm
 1B000	1B122	Lo
+1B132		Lo
 1B150	1B152	Lo
+1B155		Lo
 1B164	1B167	Lo
 1B170	1B2FB	Lo
 1BC00	1BC6A	Lo
@@ -3073,6 +3096,7 @@ FFFC	FFFD	So
 1D200	1D241	So
 1D242	1D244	Mn
 1D245		So
+1D2C0	1D2D3	No
 1D2E0	1D2F3	No
 1D300	1D356	So
 1D360	1D378	No
@@ -3161,11 +3185,14 @@ FFFC	FFFD	So
 1DF00	1DF09	Ll
 1DF0A		Lo
 1DF0B	1DF1E	Ll
+1DF25	1DF2A	Ll
 1E000	1E006	Mn
 1E008	1E018	Mn
 1E01B	1E021	Mn
 1E023	1E024	Mn
 1E026	1E02A	Mn
+1E030	1E06D	Lm
+1E08F		Mn
 1E100	1E12C	Lo
 1E130	1E136	Mn
 1E137	1E13D	Lm
@@ -3178,6 +3205,10 @@ FFFC	FFFD	So
 1E2EC	1E2EF	Mn
 1E2F0	1E2F9	Nd
 1E2FF		Sc
+1E4D0	1E4EA	Lo
+1E4EB		Lm
+1E4EC	1E4EF	Mn
+1E4F0	1E4F9	Nd
 1E7E0	1E7E6	Lo
 1E7E8	1E7EB	Lo
 1E7ED	1E7EE	Lo
@@ -3249,10 +3280,10 @@ FFFC	FFFD	So
 1F300	1F3FA	So
 1F3FB	1F3FF	Sk
 1F400	1F6D7	So
-1F6DD	1F6EC	So
+1F6DC	1F6EC	So
 1F6F0	1F6FC	So
-1F700	1F773	So
-1F780	1F7D8	So
+1F700	1F776	So
+1F77B	1F7D9	So
 1F7E0	1F7EB	So
 1F7F0		So
 1F800	1F80B	So
@@ -3263,25 +3294,24 @@ FFFC	FFFD	So
 1F8B0	1F8B1	So
 1F900	1FA53	So
 1FA60	1FA6D	So
-1FA70	1FA74	So
-1FA78	1FA7C	So
-1FA80	1FA86	So
-1FA90	1FAAC	So
-1FAB0	1FABA	So
-1FAC0	1FAC5	So
-1FAD0	1FAD9	So
-1FAE0	1FAE7	So
-1FAF0	1FAF6	So
+1FA70	1FA7C	So
+1FA80	1FA88	So
+1FA90	1FABD	So
+1FABF	1FAC5	So
+1FACE	1FADB	So
+1FAE0	1FAE8	So
+1FAF0	1FAF8	So
 1FB00	1FB92	So
 1FB94	1FBCA	So
 1FBF0	1FBF9	Nd
 20000	2A6DF	Lo
-2A700	2B738	Lo
+2A700	2B739	Lo
 2B740	2B81D	Lo
 2B820	2CEA1	Lo
 2CEB0	2EBE0	Lo
 2F800	2FA1D	Lo
 30000	3134A	Lo
+31350	323AF	Lo
 E0001		Cf
 E0020	E007F	Cf
 E0100	E01EF	Mn
Index: gnu/usr.bin/perl/lib/unicore/To/Hst.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Hst.pl,v
diff -u -p -a -u -p -r1.8 Hst.pl
--- gnu/usr.bin/perl/lib/unicore/To/Hst.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Hst.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Identif2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Identif2.pl,v
diff -u -p -a -u -p -r1.2 Identif2.pl
--- gnu/usr.bin/perl/lib/unicore/To/Identif2.pl	15 Feb 2023 01:39:51 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/To/Identif2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -444,7 +444,7 @@ CDD		Recommended
 CDE		Obsolete
 CE0	CE3	Recommended
 CE6	CEF	Recommended
-CF1	CF2	Recommended
+CF1	CF3	Recommended
 D00		Recommended
 D01		Obsolete
 D02	D03	Recommended
@@ -504,7 +504,7 @@ EB3		Not_NFKC
 EB4	EBD	Recommended
 EC0	EC4	Recommended
 EC6		Recommended
-EC8	ECD	Recommended
+EC8	ECE	Recommended
 ED0	ED9	Recommended
 EDC	EDD	Not_NFKC
 EDE	EDF	Recommended
@@ -776,9 +776,7 @@ FCE	FDA	Not_XID
 1FFC		Recommended
 1FFD	1FFE	Not_NFKC
 2000	200A	Not_NFKC
-200B		Default_Ignorable
-200C	200D	Inclusion
-200E	200F	Default_Ignorable
+200B	200F	Default_Ignorable
 2010		Inclusion
 2011		Not_NFKC
 2012	2016	Not_XID
@@ -1262,6 +1260,7 @@ FFF9	FFFD	Not_XID
 10EAB	10EAC	Exclusion
 10EAD		Exclusion Not_XID
 10EB0	10EB1	Exclusion
+10EFD	10EFF	Uncommon_Use
 10F00	10F1C	Exclusion
 10F1D	10F26	Exclusion Not_XID
 10F27		Exclusion
@@ -1301,7 +1300,7 @@ FFF9	FFFD	Not_XID
 11200	11211	Exclusion
 11213	11237	Exclusion
 11238	1123D	Exclusion Not_XID
-1123E		Exclusion
+1123E	11241	Exclusion
 11280	11286	Exclusion
 11288		Exclusion
 1128A	1128D	Exclusion
@@ -1383,6 +1382,7 @@ FFF9	FFFD	Not_XID
 11A9E	11AA2	Exclusion Not_XID
 11AB0	11ABF	Limited_Use
 11AC0	11AF8	Exclusion
+11B00	11B09	Not_XID
 11C00	11C08	Exclusion
 11C0A	11C36	Exclusion
 11C38	11C40	Exclusion
@@ -1408,6 +1408,11 @@ FFF9	FFFD	Not_XID
 11DA0	11DA9	Limited_Use
 11EE0	11EF6	Exclusion
 11EF7	11EF8	Exclusion Not_XID
+11F00	11F10	Exclusion
+11F12	11F3A	Exclusion
+11F3E	11F42	Exclusion
+11F43	11F4F	Exclusion Not_XID
+11F50	11F59	Exclusion
 11FB0		Limited_Use
 11FC0	11FF1	Not_XID
 11FFF		Not_XID
@@ -1417,8 +1422,9 @@ FFF9	FFFD	Not_XID
 12480	12543	Exclusion
 12F90	12FF0	Exclusion
 12FF1	12FF2	Exclusion Not_XID
-13000	1342E	Exclusion
-13430	13438	Exclusion Not_XID
+13000	1342F	Exclusion
+13430	1343F	Exclusion Not_XID
+13440	13455	Exclusion
 14400	14646	Exclusion
 16800	16A38	Limited_Use
 16A40	16A5E	Uncommon_Use Exclusion
@@ -1455,7 +1461,9 @@ FFF9	FFFD	Not_XID
 1AFFD	1AFFE	Uncommon_Use
 1B000	1B11E	Obsolete
 1B11F	1B122	Recommended
+1B132		Recommended
 1B150	1B152	Recommended
+1B155		Recommended
 1B164	1B167	Recommended
 1B170	1B2FB	Exclusion
 1BC00	1BC6A	Exclusion
@@ -1490,6 +1498,7 @@ FFF9	FFFD	Not_XID
 1D200	1D241	Obsolete Not_XID
 1D242	1D244	Technical Obsolete
 1D245		Obsolete Not_XID
+1D2C0	1D2D3	Not_XID
 1D2E0	1D2F3	Not_XID
 1D300	1D356	Technical Not_XID
 1D360	1D378	Not_XID
@@ -1526,11 +1535,14 @@ FFF9	FFFD	Not_XID
 1DA9B	1DA9F	Exclusion
 1DAA1	1DAAF	Exclusion
 1DF00	1DF1E	Recommended
+1DF25	1DF2A	Recommended
 1E000	1E006	Exclusion
 1E008	1E018	Exclusion
 1E01B	1E021	Exclusion
 1E023	1E024	Exclusion
 1E026	1E02A	Exclusion
+1E030	1E06D	Not_NFKC
+1E08F		Recommended
 1E100	1E12C	Limited_Use
 1E130	1E13D	Limited_Use
 1E140	1E149	Limited_Use
@@ -1539,6 +1551,7 @@ FFF9	FFFD	Not_XID
 1E290	1E2AE	Exclusion
 1E2C0	1E2F9	Limited_Use
 1E2FF		Limited_Use Not_XID
+1E4D0	1E4F9	Exclusion
 1E7E0	1E7E6	Recommended
 1E7E8	1E7EB	Recommended
 1E7ED	1E7EE	Recommended
@@ -1610,10 +1623,10 @@ FFF9	FFFD	Not_XID
 1F300	1F54E	Not_XID
 1F54F		Uncommon_Use Not_XID
 1F550	1F6D7	Not_XID
-1F6DD	1F6EC	Not_XID
+1F6DC	1F6EC	Not_XID
 1F6F0	1F6FC	Not_XID
-1F700	1F773	Not_XID
-1F780	1F7D8	Not_XID
+1F700	1F776	Not_XID
+1F77B	1F7D9	Not_XID
 1F7E0	1F7EB	Not_XID
 1F7F0		Not_XID
 1F800	1F80B	Not_XID
@@ -1624,25 +1637,24 @@ FFF9	FFFD	Not_XID
 1F8B0	1F8B1	Not_XID
 1F900	1FA53	Not_XID
 1FA60	1FA6D	Not_XID
-1FA70	1FA74	Not_XID
-1FA78	1FA7C	Not_XID
-1FA80	1FA86	Not_XID
-1FA90	1FAAC	Not_XID
-1FAB0	1FABA	Not_XID
-1FAC0	1FAC5	Not_XID
-1FAD0	1FAD9	Not_XID
-1FAE0	1FAE7	Not_XID
-1FAF0	1FAF6	Not_XID
+1FA70	1FA7C	Not_XID
+1FA80	1FA88	Not_XID
+1FA90	1FABD	Not_XID
+1FABF	1FAC5	Not_XID
+1FACE	1FADB	Not_XID
+1FAE0	1FAE8	Not_XID
+1FAF0	1FAF8	Not_XID
 1FB00	1FB92	Not_XID
 1FB94	1FBCA	Not_XID
 1FBF0	1FBF9	Not_NFKC
 20000	2A6DF	Recommended
-2A700	2B738	Recommended
+2A700	2B739	Recommended
 2B740	2B81D	Recommended
 2B820	2CEA1	Recommended
 2CEB0	2EBE0	Recommended
 2F800	2FA1D	Not_NFKC
 30000	3134A	Recommended
+31350	323AF	Recommended
 E0001		Deprecated
 E0020	E007F	Default_Ignorable
 E0100	E01EF	Default_Ignorable
Index: gnu/usr.bin/perl/lib/unicore/To/Identifi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Identifi.pl,v
diff -u -p -a -u -p -r1.2 Identifi.pl
--- gnu/usr.bin/perl/lib/unicore/To/Identifi.pl	15 Feb 2023 01:39:51 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/To/Identifi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -195,7 +195,7 @@ CD5	CD6	Allowed
 CDD		Allowed
 CE0	CE3	Allowed
 CE6	CEF	Allowed
-CF1	CF2	Allowed
+CF1	CF3	Allowed
 D00		Allowed
 D02	D03	Allowed
 D05	D0C	Allowed
@@ -234,7 +234,7 @@ EA7	EB2	Allowed
 EB4	EBD	Allowed
 EC0	EC4	Allowed
 EC6		Allowed
-EC8	ECD	Allowed
+EC8	ECE	Allowed
 ED0	ED9	Allowed
 EDE	EDF	Allowed
 F00		Allowed
@@ -333,7 +333,6 @@ FC6		Allowed
 1FF6	1FF8	Allowed
 1FFA		Allowed
 1FFC		Allowed
-200C	200D	Allowed
 2010		Allowed
 2019		Allowed
 2027		Allowed
@@ -392,17 +391,22 @@ FA27	FA29	Allowed
 1133B	1133C	Allowed
 16FF0	16FF1	Allowed
 1B11F	1B122	Allowed
+1B132		Allowed
 1B150	1B152	Allowed
+1B155		Allowed
 1B164	1B167	Allowed
 1DF00	1DF1E	Allowed
+1DF25	1DF2A	Allowed
+1E08F		Allowed
 1E7E0	1E7E6	Allowed
 1E7E8	1E7EB	Allowed
 1E7ED	1E7EE	Allowed
 1E7F0	1E7FE	Allowed
 20000	2A6DF	Allowed
-2A700	2B738	Allowed
+2A700	2B739	Allowed
 2B740	2B81D	Allowed
 2B820	2CEA1	Allowed
 2CEB0	2EBE0	Allowed
 30000	3134A	Allowed
+31350	323AF	Allowed
 END
Index: gnu/usr.bin/perl/lib/unicore/To/InPC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/InPC.pl,v
diff -u -p -a -u -p -r1.5 InPC.pl
--- gnu/usr.bin/perl/lib/unicore/To/InPC.pl	15 Feb 2023 01:39:51 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/To/InPC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -33,7 +33,7 @@ return <<'END';
 94F		Right
 951		Top
 952		Bottom
-953	955	Top
+955		Top
 956	957	Bottom
 962	963	Bottom
 981		Top
@@ -124,6 +124,7 @@ CCA	CCB	Top_And_Right
 CCC	CCD	Top
 CD5	CD6	Right
 CE2	CE3	Bottom
+CF3		Right
 D00	D01	Top
 D02	D03	Right
 D3B	D3C	Top
@@ -166,7 +167,7 @@ EB8	EBA	Bottom
 EBB		Top
 EBC		Bottom
 EC0	EC4	Visual_Order_Left
-EC8	ECD	Top
+EC8	ECE	Top
 F18	F19	Bottom
 F35		Bottom
 F37		Bottom
@@ -348,6 +349,7 @@ A8C4		Bottom
 A8C5		Top
 A8E0	A8F1	Top
 A8FF		Top
+A926	A92A	Top
 A92B	A92D	Bottom
 A947	A949	Bottom
 A94A		Top
@@ -467,6 +469,7 @@ ABED		Bottom
 11235		Right
 11236	11237	Top
 1123E		Top
+11241		Bottom
 112DF		Top
 112E0		Right
 112E1		Left
@@ -628,4 +631,12 @@ ABED		Bottom
 11EF4		Bottom
 11EF5		Left
 11EF6		Right
+11F00	11F02	Top
+11F03		Right
+11F34	11F35	Right
+11F36	11F37	Top
+11F38	11F3A	Bottom
+11F3E	11F3F	Left
+11F40		Top
+11F41		Right
 END
Index: gnu/usr.bin/perl/lib/unicore/To/InSC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/InSC.pl,v
diff -u -p -a -u -p -r1.5 InSC.pl
--- gnu/usr.bin/perl/lib/unicore/To/InSC.pl	15 Feb 2023 01:39:51 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/To/InSC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -108,7 +108,9 @@ AE0	AE1	Vowel_Independent
 AE2	AE3	Vowel_Dependent
 AE6	AEF	Number
 AF9		Consonant
-AFA	AFC	Cantillation_Mark
+AFA		Cantillation_Mark
+AFB		Gemination_Mark
+AFC		Cantillation_Mark
 AFD	AFF	Nukta
 B01	B02	Bindu
 B03		Visarga
@@ -191,6 +193,7 @@ CE0	CE1	Vowel_Independent
 CE2	CE3	Vowel_Dependent
 CE6	CEF	Number
 CF1	CF2	Consonant_With_Stacker
+CF3		Bindu
 D00	D02	Bindu
 D03		Visarga
 D04		Bindu
@@ -247,6 +250,7 @@ EBC	EBD	Consonant_Medial
 EC0	EC4	Vowel_Dependent
 EC8	ECB	Tone_Mark
 ECD		Bindu
+ECE		Syllable_Modifier
 ED0	ED9	Number
 EDC	EDF	Consonant
 F20	F33	Number
@@ -586,6 +590,9 @@ ABF0	ABF9	Number
 11236		Nukta
 11237		Gemination_Mark
 1123E		Cantillation_Mark
+1123F		Consonant
+11240		Vowel_Independent
+11241		Vowel_Dependent
 11280	11283	Vowel_Independent
 11284	11286	Consonant
 11288		Consonant
@@ -775,4 +782,14 @@ ABF0	ABF9	Number
 11EE0	11EF1	Consonant
 11EF2		Consonant_Placeholder
 11EF3	11EF6	Vowel_Dependent
+11F00	11F01	Bindu
+11F02		Consonant_Preceding_Repha
+11F03		Visarga
+11F04	11F10	Vowel_Independent
+11F12	11F33	Consonant
+11F34	11F3A	Vowel_Dependent
+11F3E	11F40	Vowel_Dependent
+11F41		Pure_Killer
+11F42		Invisible_Stacker
+11F50	11F59	Number
 END
Index: gnu/usr.bin/perl/lib/unicore/To/Isc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Isc.pl,v
diff -u -p -a -u -p -r1.8 Isc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Isc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Isc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Jg.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Jg.pl,v
diff -u -p -a -u -p -r1.8 Jg.pl
--- gnu/usr.bin/perl/lib/unicore/To/Jg.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Jg.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Jt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Jt.pl,v
diff -u -p -a -u -p -r1.8 Jt.pl
--- gnu/usr.bin/perl/lib/unicore/To/Jt.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Jt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -14,7 +14,7 @@
 # the main body of the table, and what all code points missing from this file
 # map to.
 $Unicode::UCD::SwashInfo{'ToJt'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToJt'}{'missing'} = 'Non_Joining';
+$Unicode::UCD::SwashInfo{'ToJt'}{'missing'} = 'U';
 
 return <<'END';
 AD		T
@@ -198,7 +198,7 @@ E34	E3A	T
 E47	E4E	T
 EB1		T
 EB4	EBC	T
-EC8	ECD	T
+EC8	ECE	T
 F18	F19	T
 F35		T
 F37		T
@@ -374,6 +374,7 @@ FFF9	FFFB	T
 10D23		D
 10D24	10D27	T
 10EAB	10EAC	T
+10EFD	10EFF	T
 10F30	10F32	D
 10F33		R
 10F34	10F44	D
@@ -418,6 +419,7 @@ FFF9	FFFB	T
 11234		T
 11236	11237	T
 1123E		T
+11241		T
 112DF		T
 112E3	112EA	T
 11300	11301	T
@@ -479,7 +481,12 @@ FFF9	FFFB	T
 11D95		T
 11D97		T
 11EF3	11EF4	T
-13430	13438	T
+11F00	11F01	T
+11F36	11F3A	T
+11F40		T
+11F42		T
+13430	13440	T
+13447	13455	T
 16AF0	16AF4	T
 16B30	16B36	T
 16F4F		T
@@ -505,9 +512,11 @@ FFF9	FFFB	T
 1E01B	1E021	T
 1E023	1E024	T
 1E026	1E02A	T
+1E08F		T
 1E130	1E136	T
 1E2AE		T
 1E2EC	1E2EF	T
+1E4EC	1E4EF	T
 1E8D0	1E8D6	T
 1E900	1E943	D
 1E944	1E94B	T
Index: gnu/usr.bin/perl/lib/unicore/To/Lb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Lb.pl,v
diff -u -p -a -u -p -r1.8 Lb.pl
--- gnu/usr.bin/perl/lib/unicore/To/Lb.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Lb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -14,7 +14,7 @@
 # the main body of the table, and what all code points missing from this file
 # map to.
 $Unicode::UCD::SwashInfo{'ToLb'}{'format'} = 's'; # string
-$Unicode::UCD::SwashInfo{'ToLb'}{'missing'} = 'Unknown';
+$Unicode::UCD::SwashInfo{'ToLb'}{'missing'} = 'XX';
 
 return <<'END';
 0	8	CM
@@ -343,6 +343,7 @@ CE0	CE1	AL
 CE2	CE3	CM
 CE6	CEF	NU
 CF1	CF2	AL
+CF3		CM
 D00	D03	CM
 D04	D0C	AL
 D0E	D10	AL
@@ -388,7 +389,7 @@ EA5		SA
 EA7	EBD	SA
 EC0	EC4	SA
 EC6		SA
-EC8	ECD	SA
+EC8	ECE	SA
 ED0	ED9	NU
 EDC	EDF	SA
 F00		AL
@@ -588,7 +589,11 @@ FD9	FDA	GL
 1CF7	1CF9	CM
 1CFA		AL
 1D00	1DBF	AL
-1DC0	1DFF	CM
+1DC0	1DCC	CM
+1DCD		GL
+1DCE	1DFB	CM
+1DFC		GL
+1DFD	1DFF	CM
 1E00	1F15	AL
 1F18	1F1D	AL
 1F20	1F45	AL
@@ -644,7 +649,7 @@ FD9	FDA	GL
 2047	2049	NS
 204A	2055	AL
 2056		BA
-2057		AL
+2057		PO
 2058	205B	BA
 205C		AL
 205D	205F	BA
@@ -2243,6 +2248,7 @@ FFFD		AI
 10EAB	10EAC	CM
 10EAD		BA
 10EB0	10EB1	AL
+10EFD	10EFF	CM
 10F00	10F27	AL
 10F30	10F45	AL
 10F46	10F50	CM
@@ -2309,6 +2315,8 @@ FFFD		AI
 1123B	1123C	BA
 1123D		AL
 1123E		CM
+1123F	11240	AL
+11241		CM
 11280	11286	AL
 11288		AL
 1128A	1128D	AL
@@ -2425,6 +2433,7 @@ FFFD		AI
 11A9E	11AA0	BB
 11AA1	11AA2	BA
 11AB0	11AF8	AL
+11B00	11B09	BB
 11C00	11C08	AL
 11C0A	11C2E	AL
 11C2F	11C36	CM
@@ -2459,6 +2468,16 @@ FFFD		AI
 11EE0	11EF2	AL
 11EF3	11EF6	CM
 11EF7	11EF8	AL
+11F00	11F01	CM
+11F02		AL
+11F03		CM
+11F04	11F10	AL
+11F12	11F33	AL
+11F34	11F3A	CM
+11F3E	11F42	CM
+11F43	11F44	BA
+11F45	11F4F	ID
+11F50	11F59	NU
 11FB0		AL
 11FC0	11FDC	AL
 11FDD	11FE0	PO
@@ -2482,10 +2501,18 @@ FFFD		AI
 1328A	13378	AL
 13379		OP
 1337A	1337B	CL
-1337C	1342E	AL
+1337C	1342F	AL
 13430	13436	GL
 13437		OP
 13438		CL
+13439	1343B	GL
+1343C		OP
+1343D		CL
+1343E		OP
+1343F		CL
+13440		CM
+13441	13446	AL
+13447	13455	CM
 14400	145CD	AL
 145CE		OP
 145CF		CL
@@ -2529,7 +2556,9 @@ FFFD		AI
 1AFF5	1AFFB	AL
 1AFFD	1AFFE	AL
 1B000	1B122	ID
+1B132		CJ
 1B150	1B152	CJ
+1B155		CJ
 1B164	1B167	CJ
 1B170	1B2FB	ID
 1BC00	1BC6A	AL
@@ -2557,6 +2586,7 @@ FFFD		AI
 1D200	1D241	AL
 1D242	1D244	CM
 1D245		AL
+1D2C0	1D2D3	AL
 1D2E0	1D2F3	AL
 1D300	1D356	AL
 1D360	1D378	AL
@@ -2595,11 +2625,14 @@ FFFD		AI
 1DA9B	1DA9F	CM
 1DAA1	1DAAF	CM
 1DF00	1DF1E	AL
+1DF25	1DF2A	AL
 1E000	1E006	CM
 1E008	1E018	CM
 1E01B	1E021	CM
 1E023	1E024	CM
 1E026	1E02A	CM
+1E030	1E06D	AL
+1E08F		CM
 1E100	1E12C	AL
 1E130	1E136	CM
 1E137	1E13D	AL
@@ -2611,6 +2644,9 @@ FFFD		AI
 1E2EC	1E2EF	CM
 1E2F0	1E2F9	NU
 1E2FF		PR
+1E4D0	1E4EB	AL
+1E4EC	1E4EF	CM
+1E4F0	1E4F9	NU
 1E7E0	1E7E6	AL
 1E7E8	1E7EB	AL
 1E7ED	1E7EE	AL
@@ -2796,8 +2832,8 @@ FFFD		AI
 1FA54	1FAC2	ID
 1FAC3	1FAC5	EB
 1FAC6	1FAEF	ID
-1FAF0	1FAF6	EB
-1FAF7	1FAFF	ID
+1FAF0	1FAF8	EB
+1FAF9	1FAFF	ID
 1FB00	1FB92	AL
 1FB94	1FBCA	AL
 1FBF0	1FBF9	NU
Index: gnu/usr.bin/perl/lib/unicore/To/Lc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Lc.pl,v
diff -u -p -a -u -p -r1.8 Lc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Lc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Lc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/NFCQC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/NFCQC.pl,v
diff -u -p -a -u -p -r1.8 NFCQC.pl
--- gnu/usr.bin/perl/lib/unicore/To/NFCQC.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/NFCQC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/NFDQC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/NFDQC.pl,v
diff -u -p -a -u -p -r1.8 NFDQC.pl
--- gnu/usr.bin/perl/lib/unicore/To/NFDQC.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/NFDQC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/NFKCCF.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/NFKCCF.pl,v
diff -u -p -a -u -p -r1.9 NFKCCF.pl
--- gnu/usr.bin/perl/lib/unicore/To/NFKCCF.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/To/NFKCCF.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   IT IS DEPRECATED TO USE THIS FILE   !!!!!!!
 
@@ -9659,6 +9659,68 @@ FFEE		25CB
 1D7FD		0037
 1D7FE		0038
 1D7FF		0039
+1E030		0430
+1E031		0431
+1E032		0432
+1E033		0433
+1E034		0434
+1E035		0435
+1E036		0436
+1E037		0437
+1E038		0438
+1E039		043A
+1E03A		043B
+1E03B		043C
+1E03C		043E
+1E03D		043F
+1E03E		0440
+1E03F		0441
+1E040		0442
+1E041		0443
+1E042		0444
+1E043		0445
+1E044		0446
+1E045		0447
+1E046		0448
+1E047		044B
+1E048		044D
+1E049		044E
+1E04A		A689
+1E04B		04D9
+1E04C		0456
+1E04D		0458
+1E04E		04E9
+1E04F		04AF
+1E050		04CF
+1E051		0430
+1E052		0431
+1E053		0432
+1E054		0433
+1E055		0434
+1E056		0435
+1E057		0436
+1E058		0437
+1E059		0438
+1E05A		043A
+1E05B		043B
+1E05C		043E
+1E05D		043F
+1E05E		0441
+1E05F		0443
+1E060		0444
+1E061		0445
+1E062		0446
+1E063		0447
+1E064		0448
+1E065		044A
+1E066		044B
+1E067		0491
+1E068		0456
+1E069		0455
+1E06A		045F
+1E06B		04AB
+1E06C		A651
+1E06D		04B1
 1E900		1E922
 1E901		1E923
 1E902		1E924
Index: gnu/usr.bin/perl/lib/unicore/To/NFKCQC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/NFKCQC.pl,v
diff -u -p -a -u -p -r1.8 NFKCQC.pl
--- gnu/usr.bin/perl/lib/unicore/To/NFKCQC.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/NFKCQC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -269,6 +269,7 @@ FFE8	FFEE	N
 1D552	1D6A5	N
 1D6A8	1D7CB	N
 1D7CE	1D7FF	N
+1E030	1E06D	N
 1EE00	1EE03	N
 1EE05	1EE1F	N
 1EE21	1EE22	N
Index: gnu/usr.bin/perl/lib/unicore/To/NFKDQC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/NFKDQC.pl,v
diff -u -p -a -u -p -r1.8 NFKDQC.pl
--- gnu/usr.bin/perl/lib/unicore/To/NFKDQC.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/NFKDQC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -369,6 +369,7 @@ FFE8	FFEE	N
 1D552	1D6A5	N
 1D6A8	1D7CB	N
 1D7CE	1D7FF	N
+1E030	1E06D	N
 1EE00	1EE03	N
 1EE05	1EE1F	N
 1EE21	1EE22	N
Index: gnu/usr.bin/perl/lib/unicore/To/Na1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Na1.pl,v
diff -u -p -a -u -p -r1.8 Na1.pl
--- gnu/usr.bin/perl/lib/unicore/To/Na1.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Na1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/NameAlia.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/NameAlia.pl,v
diff -u -p -a -u -p -r1.8 NameAlia.pl
--- gnu/usr.bin/perl/lib/unicore/To/NameAlia.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/NameAlia.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -78,6 +78,7 @@ F		SI: abbreviation
 18		CAN: abbreviation
 19		END OF MEDIUM: control
 19		EOM: abbreviation
+19		EM: abbreviation
 1A		SUBSTITUTE: control
 1A		SUB: abbreviation
 1B		ESCAPE: control
@@ -178,6 +179,7 @@ AD		SHY: abbreviation
 1A2		LATIN CAPITAL LETTER GHA: correction
 1A3		LATIN SMALL LETTER GHA: correction
 34F		CGJ: abbreviation
+616		ARABIC SMALL HIGH LIGATURE ALEF WITH YEH BARREE: correction
 61C		ALM: abbreviation
 709		SYRIAC SUBLINEAR COLON SKEWED LEFT: correction
 CDE		KANNADA LETTER LLLA: correction
@@ -195,6 +197,7 @@ FD0		TIBETAN MARK BKA- SHOG GI MGO RGYAN
 180D		FVS3: abbreviation
 180E		MVS: abbreviation
 180F		FVS4: abbreviation
+1BBD		SUNDANESE LETTER ARCHAIC I: correction
 200B		ZWSP: abbreviation
 200C		ZWNJ: abbreviation
 200D		ZWJ: abbreviation
Index: gnu/usr.bin/perl/lib/unicore/To/Nt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Nt.pl,v
diff -u -p -a -u -p -r1.8 Nt.pl
--- gnu/usr.bin/perl/lib/unicore/To/Nt.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Nt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -212,6 +212,7 @@ FF10	FF19	Decimal
 11C5A	11C6C	Numeric
 11D50	11D59	Decimal
 11DA0	11DA9	Decimal
+11F50	11F59	Decimal
 11FC0	11FD4	Numeric
 12400	1246E	Numeric
 16A60	16A69	Decimal
@@ -219,11 +220,13 @@ FF10	FF19	Decimal
 16B50	16B59	Decimal
 16B5B	16B61	Numeric
 16E80	16E96	Numeric
+1D2C0	1D2D3	Numeric
 1D2E0	1D2F3	Numeric
 1D360	1D378	Numeric
 1D7CE	1D7FF	Decimal
 1E140	1E149	Decimal
 1E2F0	1E2F9	Decimal
+1E4F0	1E4F9	Decimal
 1E8C7	1E8CF	Numeric
 1E950	1E959	Decimal
 1EC71	1ECAB	Numeric
Index: gnu/usr.bin/perl/lib/unicore/To/Nv.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Nv.pl,v
diff -u -p -a -u -p -r1.8 Nv.pl
--- gnu/usr.bin/perl/lib/unicore/To/Nv.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Nv.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -584,6 +584,7 @@ FF10	FF19	0
 11C6C		100
 11D50	11D59	0
 11DA0	11DA9	0
+11F50	11F59	0
 11FC0		1/320
 11FC1		1/160
 11FC2		1/80
@@ -664,6 +665,7 @@ FF10	FF19	0
 16B61		1000000000000
 16E80	16E93	0
 16E94	16E96	1
+1D2C0	1D2D3	0
 1D2E0	1D2F3	0
 1D360	1D369	1
 1D36A		20
@@ -684,6 +686,7 @@ FF10	FF19	0
 1D7F6	1D7FF	0
 1E140	1E149	0
 1E2F0	1E2F9	0
+1E4F0	1E4F9	0
 1E8C7	1E8CF	1
 1E950	1E959	0
 1EC71	1EC7A	1
Index: gnu/usr.bin/perl/lib/unicore/To/PerlDeci.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/PerlDeci.pl,v
diff -u -p -a -u -p -r1.8 PerlDeci.pl
--- gnu/usr.bin/perl/lib/unicore/To/PerlDeci.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/PerlDeci.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -73,6 +73,7 @@ FF10	FF19	0
 11C50	11C59	0
 11D50	11D59	0
 11DA0	11DA9	0
+11F50	11F59	0
 16A60	16A69	0
 16AC0	16AC9	0
 16B50	16B59	0
@@ -83,6 +84,7 @@ FF10	FF19	0
 1D7F6	1D7FF	0
 1E140	1E149	0
 1E2F0	1E2F9	0
+1E4F0	1E4F9	0
 1E950	1E959	0
 1FBF0	1FBF9	0
 END
Index: gnu/usr.bin/perl/lib/unicore/To/SB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/SB.pl,v
diff -u -p -a -u -p -r1.8 SB.pl
--- gnu/usr.bin/perl/lib/unicore/To/SB.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/SB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -806,6 +806,7 @@ CE0	CE1	OLetter
 CE2	CE3	Extend
 CE6	CEF	Numeric
 CF1	CF2	OLetter
+CF3		Extend
 D00	D03	Extend
 D04	D0C	OLetter
 D0E	D10	OLetter
@@ -853,7 +854,7 @@ EB4	EBC	Extend
 EBD		OLetter
 EC0	EC4	OLetter
 EC6		OLetter
-EC8	ECD	Extend
+EC8	ECE	Extend
 ED0	ED9	Numeric
 EDC	EDF	OLetter
 F00		OLetter
@@ -897,7 +898,8 @@ FC6		Extend
 10C7		Upper
 10CD		Upper
 10D0	10FA	OLetter
-10FC	1248	OLetter
+10FC		Lower
+10FD	1248	OLetter
 124A	124D	OLetter
 1250	1256	OLetter
 1258		OLetter
@@ -1779,7 +1781,7 @@ A7D6		Upper
 A7D7		Lower
 A7D8		Upper
 A7D9		Lower
-A7F2	A7F4	OLetter
+A7F2	A7F4	Lower
 A7F5		Upper
 A7F6		Lower
 A7F7		OLetter
@@ -1857,8 +1859,7 @@ AB11	AB16	OLetter
 AB20	AB26	OLetter
 AB28	AB2E	OLetter
 AB30	AB5A	Lower
-AB5C	AB68	Lower
-AB69		OLetter
+AB5C	AB69	Lower
 AB70	ABBF	Lower
 ABC0	ABE2	OLetter
 ABE3	ABEA	Extend
@@ -2015,6 +2016,7 @@ FFF9	FFFB	Format
 10E80	10EA9	OLetter
 10EAB	10EAC	Extend
 10EB0	10EB1	OLetter
+10EFD	10EFF	Extend
 10F00	10F1C	OLetter
 10F27		OLetter
 10F30	10F45	OLetter
@@ -2072,6 +2074,8 @@ FFF9	FFFB	Format
 11238	11239	STerm
 1123B	1123C	STerm
 1123E		Extend
+1123F	11240	OLetter
+11241		Extend
 11280	11286	OLetter
 11288		OLetter
 1128A	1128D	OLetter
@@ -2205,13 +2209,25 @@ FFF9	FFFB	Format
 11EE0	11EF2	OLetter
 11EF3	11EF6	Extend
 11EF7	11EF8	STerm
+11F00	11F01	Extend
+11F02		OLetter
+11F03		Extend
+11F04	11F10	OLetter
+11F12	11F33	OLetter
+11F34	11F3A	Extend
+11F3E	11F42	Extend
+11F43	11F44	STerm
+11F50	11F59	Numeric
 11FB0		OLetter
 12000	12399	OLetter
 12400	1246E	OLetter
 12480	12543	OLetter
 12F90	12FF0	OLetter
-13000	1342E	OLetter
-13430	13438	Format
+13000	1342F	OLetter
+13430	1343F	Format
+13440		Extend
+13441	13446	OLetter
+13447	13455	Extend
 14400	14646	OLetter
 16800	16A38	OLetter
 16A40	16A5E	OLetter
@@ -2250,7 +2266,9 @@ FFF9	FFFB	Format
 1AFF5	1AFFB	OLetter
 1AFFD	1AFFE	OLetter
 1B000	1B122	OLetter
+1B132		OLetter
 1B150	1B152	OLetter
+1B155		OLetter
 1B164	1B167	OLetter
 1B170	1B2FB	OLetter
 1BC00	1BC6A	OLetter
@@ -2339,11 +2357,14 @@ FFF9	FFFB	Format
 1DF00	1DF09	Lower
 1DF0A		OLetter
 1DF0B	1DF1E	Lower
+1DF25	1DF2A	Lower
 1E000	1E006	Extend
 1E008	1E018	Extend
 1E01B	1E021	Extend
 1E023	1E024	Extend
 1E026	1E02A	Extend
+1E030	1E06D	Lower
+1E08F		Extend
 1E100	1E12C	OLetter
 1E130	1E136	Extend
 1E137	1E13D	OLetter
@@ -2354,6 +2375,9 @@ FFF9	FFFB	Format
 1E2C0	1E2EB	OLetter
 1E2EC	1E2EF	Extend
 1E2F0	1E2F9	Numeric
+1E4D0	1E4EB	OLetter
+1E4EC	1E4EF	Extend
+1E4F0	1E4F9	Numeric
 1E7E0	1E7E6	OLetter
 1E7E8	1E7EB	OLetter
 1E7ED	1E7EE	OLetter
@@ -2404,12 +2428,13 @@ FFF9	FFFB	Format
 1F676	1F678	Close
 1FBF0	1FBF9	Numeric
 20000	2A6DF	OLetter
-2A700	2B738	OLetter
+2A700	2B739	OLetter
 2B740	2B81D	OLetter
 2B820	2CEA1	OLetter
 2CEB0	2EBE0	OLetter
 2F800	2FA1D	OLetter
 30000	3134A	OLetter
+31350	323AF	OLetter
 E0001		Format
 E0020	E007F	Extend
 E0100	E01EF	Extend
Index: gnu/usr.bin/perl/lib/unicore/To/Sc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Sc.pl,v
diff -u -p -a -u -p -r1.8 Sc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Sc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Sc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -200,7 +200,7 @@ CD5	CD6	Kannada
 CDD	CDE	Kannada
 CE0	CE3	Kannada
 CE6	CEF	Kannada
-CF1	CF2	Kannada
+CF1	CF3	Kannada
 D00	D0C	Malayalam
 D0E	D10	Malayalam
 D12	D44	Malayalam
@@ -231,7 +231,7 @@ EA5		Lao
 EA7	EBD	Lao
 EC0	EC4	Lao
 EC6		Lao
-EC8	ECD	Lao
+EC8	ECE	Lao
 ED0	ED9	Lao
 EDC	EDF	Lao
 F00	F47	Tibetan
@@ -661,6 +661,7 @@ FFF9	FFFD	Common
 10E80	10EA9	Yezidi
 10EAB	10EAD	Yezidi
 10EB0	10EB1	Yezidi
+10EFD	10EFF	Arabic
 10F00	10F27	Old_Sogdian
 10F30	10F59	Sogdian
 10F70	10F89	Old_Uyghur
@@ -679,7 +680,7 @@ FFF9	FFFD	Common
 11180	111DF	Sharada
 111E1	111F4	Sinhala
 11200	11211	Khojki
-11213	1123E	Khojki
+11213	11241	Khojki
 11280	11286	Multani
 11288		Multani
 1128A	1128D	Multani
@@ -735,6 +736,7 @@ FFF9	FFFD	Common
 11A50	11AA2	Soyombo
 11AB0	11ABF	Canadian_Aboriginal
 11AC0	11AF8	Pau_Cin_Hau
+11B00	11B09	Devanagari
 11C00	11C08	Bhaiksuki
 11C0A	11C36	Bhaiksuki
 11C38	11C45	Bhaiksuki
@@ -756,6 +758,9 @@ FFF9	FFFD	Common
 11D93	11D98	Gunjala_Gondi
 11DA0	11DA9	Gunjala_Gondi
 11EE0	11EF8	Makasar
+11F00	11F10	Kawi
+11F12	11F3A	Kawi
+11F3E	11F59	Kawi
 11FB0		Lisu
 11FC0	11FF1	Tamil
 11FFF		Tamil
@@ -764,8 +769,7 @@ FFF9	FFFD	Common
 12470	12474	Cuneiform
 12480	12543	Cuneiform
 12F90	12FF2	Cypro_Minoan
-13000	1342E	Egyptian_Hieroglyphs
-13430	13438	Egyptian_Hieroglyphs
+13000	13455	Egyptian_Hieroglyphs
 14400	14646	Anatolian_Hieroglyphs
 16800	16A38	Bamum
 16A40	16A5E	Mro
@@ -799,7 +803,9 @@ FFF9	FFFD	Common
 1B000		Katakana
 1B001	1B11F	Hiragana
 1B120	1B122	Katakana
+1B132		Hiragana
 1B150	1B152	Hiragana
+1B155		Katakana
 1B164	1B167	Katakana
 1B170	1B2FB	Nushu
 1BC00	1BC6A	Duployan
@@ -823,6 +829,7 @@ FFF9	FFFD	Common
 1D1AA	1D1AD	Inherited
 1D1AE	1D1EA	Common
 1D200	1D245	Greek
+1D2C0	1D2D3	Common
 1D2E0	1D2F3	Common
 1D300	1D356	Common
 1D360	1D378	Common
@@ -851,11 +858,14 @@ FFF9	FFFD	Common
 1DA9B	1DA9F	SignWriting
 1DAA1	1DAAF	SignWriting
 1DF00	1DF1E	Latin
+1DF25	1DF2A	Latin
 1E000	1E006	Glagolitic
 1E008	1E018	Glagolitic
 1E01B	1E021	Glagolitic
 1E023	1E024	Glagolitic
 1E026	1E02A	Glagolitic
+1E030	1E06D	Cyrillic
+1E08F		Cyrillic
 1E100	1E12C	Nyiakeng_Puachue_Hmong
 1E130	1E13D	Nyiakeng_Puachue_Hmong
 1E140	1E149	Nyiakeng_Puachue_Hmong
@@ -863,6 +873,7 @@ FFF9	FFFD	Common
 1E290	1E2AE	Toto
 1E2C0	1E2F9	Wancho
 1E2FF		Wancho
+1E4D0	1E4F9	Nag_Mundari
 1E7E0	1E7E6	Ethiopic
 1E7E8	1E7EB	Ethiopic
 1E7ED	1E7EE	Ethiopic
@@ -923,10 +934,10 @@ FFF9	FFFD	Common
 1F250	1F251	Common
 1F260	1F265	Common
 1F300	1F6D7	Common
-1F6DD	1F6EC	Common
+1F6DC	1F6EC	Common
 1F6F0	1F6FC	Common
-1F700	1F773	Common
-1F780	1F7D8	Common
+1F700	1F776	Common
+1F77B	1F7D9	Common
 1F7E0	1F7EB	Common
 1F7F0		Common
 1F800	1F80B	Common
@@ -937,25 +948,24 @@ FFF9	FFFD	Common
 1F8B0	1F8B1	Common
 1F900	1FA53	Common
 1FA60	1FA6D	Common
-1FA70	1FA74	Common
-1FA78	1FA7C	Common
-1FA80	1FA86	Common
-1FA90	1FAAC	Common
-1FAB0	1FABA	Common
-1FAC0	1FAC5	Common
-1FAD0	1FAD9	Common
-1FAE0	1FAE7	Common
-1FAF0	1FAF6	Common
+1FA70	1FA7C	Common
+1FA80	1FA88	Common
+1FA90	1FABD	Common
+1FABF	1FAC5	Common
+1FACE	1FADB	Common
+1FAE0	1FAE8	Common
+1FAF0	1FAF8	Common
 1FB00	1FB92	Common
 1FB94	1FBCA	Common
 1FBF0	1FBF9	Common
 20000	2A6DF	Han
-2A700	2B738	Han
+2A700	2B739	Han
 2B740	2B81D	Han
 2B820	2CEA1	Han
 2CEB0	2EBE0	Han
 2F800	2FA1D	Han
 30000	3134A	Han
+31350	323AF	Han
 E0001		Common
 E0020	E007F	Common
 E0100	E01EF	Inherited
Index: gnu/usr.bin/perl/lib/unicore/To/Scx.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Scx.pl,v
diff -u -p -a -u -p -r1.8 Scx.pl
--- gnu/usr.bin/perl/lib/unicore/To/Scx.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Scx.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -221,7 +221,7 @@ CD5	CD6	Kannada
 CDD	CDE	Kannada
 CE0	CE3	Kannada
 CE6	CEF	Kannada Nandinagari
-CF1	CF2	Kannada
+CF1	CF3	Kannada
 D00	D0C	Malayalam
 D0E	D10	Malayalam
 D12	D44	Malayalam
@@ -252,7 +252,7 @@ EA5		Lao
 EA7	EBD	Lao
 EC0	EC4	Lao
 EC6		Lao
-EC8	ECD	Lao
+EC8	ECE	Lao
 ED0	ED9	Lao
 EDC	EDF	Lao
 F00	F47	Tibetan
@@ -747,6 +747,7 @@ FFF9	FFFD	Common
 10E80	10EA9	Yezidi
 10EAB	10EAD	Yezidi
 10EB0	10EB1	Yezidi
+10EFD	10EFF	Arabic
 10F00	10F27	Old_Sogdian
 10F30	10F59	Sogdian
 10F70	10F89	Old_Uyghur
@@ -765,7 +766,7 @@ FFF9	FFFD	Common
 11180	111DF	Sharada
 111E1	111F4	Sinhala
 11200	11211	Khojki
-11213	1123E	Khojki
+11213	11241	Khojki
 11280	11286	Multani
 11288		Multani
 1128A	1128D	Multani
@@ -824,6 +825,7 @@ FFF9	FFFD	Common
 11A50	11AA2	Soyombo
 11AB0	11ABF	Canadian_Aboriginal
 11AC0	11AF8	Pau_Cin_Hau
+11B00	11B09	Devanagari
 11C00	11C08	Bhaiksuki
 11C0A	11C36	Bhaiksuki
 11C38	11C45	Bhaiksuki
@@ -845,6 +847,9 @@ FFF9	FFFD	Common
 11D93	11D98	Gunjala_Gondi
 11DA0	11DA9	Gunjala_Gondi
 11EE0	11EF8	Makasar
+11F00	11F10	Kawi
+11F12	11F3A	Kawi
+11F3E	11F59	Kawi
 11FB0		Lisu
 11FC0	11FCF	Tamil
 11FD0	11FD1	Grantha Tamil
@@ -857,8 +862,7 @@ FFF9	FFFD	Common
 12470	12474	Cuneiform
 12480	12543	Cuneiform
 12F90	12FF2	Cypro_Minoan
-13000	1342E	Egyptian_Hieroglyphs
-13430	13438	Egyptian_Hieroglyphs
+13000	13455	Egyptian_Hieroglyphs
 14400	14646	Anatolian_Hieroglyphs
 16800	16A38	Bamum
 16A40	16A5E	Mro
@@ -892,7 +896,9 @@ FFF9	FFFD	Common
 1B000		Katakana
 1B001	1B11F	Hiragana
 1B120	1B122	Katakana
+1B132		Hiragana
 1B150	1B152	Hiragana
+1B155		Katakana
 1B164	1B167	Katakana
 1B170	1B2FB	Nushu
 1BC00	1BC6A	Duployan
@@ -915,6 +921,7 @@ FFF9	FFFD	Common
 1D1AA	1D1AD	Inherited
 1D1AE	1D1EA	Common
 1D200	1D245	Greek
+1D2C0	1D2D3	Common
 1D2E0	1D2F3	Common
 1D300	1D356	Common
 1D360	1D371	Han
@@ -944,11 +951,14 @@ FFF9	FFFD	Common
 1DA9B	1DA9F	SignWriting
 1DAA1	1DAAF	SignWriting
 1DF00	1DF1E	Latin
+1DF25	1DF2A	Latin
 1E000	1E006	Glagolitic
 1E008	1E018	Glagolitic
 1E01B	1E021	Glagolitic
 1E023	1E024	Glagolitic
 1E026	1E02A	Glagolitic
+1E030	1E06D	Cyrillic
+1E08F		Cyrillic
 1E100	1E12C	Nyiakeng_Puachue_Hmong
 1E130	1E13D	Nyiakeng_Puachue_Hmong
 1E140	1E149	Nyiakeng_Puachue_Hmong
@@ -956,6 +966,7 @@ FFF9	FFFD	Common
 1E290	1E2AE	Toto
 1E2C0	1E2F9	Wancho
 1E2FF		Wancho
+1E4D0	1E4F9	Nag_Mundari
 1E7E0	1E7E6	Ethiopic
 1E7E8	1E7EB	Ethiopic
 1E7ED	1E7EE	Ethiopic
@@ -1016,10 +1027,10 @@ FFF9	FFFD	Common
 1F250	1F251	Han
 1F260	1F265	Common
 1F300	1F6D7	Common
-1F6DD	1F6EC	Common
+1F6DC	1F6EC	Common
 1F6F0	1F6FC	Common
-1F700	1F773	Common
-1F780	1F7D8	Common
+1F700	1F776	Common
+1F77B	1F7D9	Common
 1F7E0	1F7EB	Common
 1F7F0		Common
 1F800	1F80B	Common
@@ -1030,25 +1041,24 @@ FFF9	FFFD	Common
 1F8B0	1F8B1	Common
 1F900	1FA53	Common
 1FA60	1FA6D	Common
-1FA70	1FA74	Common
-1FA78	1FA7C	Common
-1FA80	1FA86	Common
-1FA90	1FAAC	Common
-1FAB0	1FABA	Common
-1FAC0	1FAC5	Common
-1FAD0	1FAD9	Common
-1FAE0	1FAE7	Common
-1FAF0	1FAF6	Common
+1FA70	1FA7C	Common
+1FA80	1FA88	Common
+1FA90	1FABD	Common
+1FABF	1FAC5	Common
+1FACE	1FADB	Common
+1FAE0	1FAE8	Common
+1FAF0	1FAF8	Common
 1FB00	1FB92	Common
 1FB94	1FBCA	Common
 1FBF0	1FBF9	Common
 20000	2A6DF	Han
-2A700	2B738	Han
+2A700	2B739	Han
 2B740	2B81D	Han
 2B820	2CEA1	Han
 2CEB0	2EBE0	Han
 2F800	2FA1D	Han
 30000	3134A	Han
+31350	323AF	Han
 E0001		Common
 E0020	E007F	Common
 E0100	E01EF	Inherited
Index: gnu/usr.bin/perl/lib/unicore/To/Tc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Tc.pl,v
diff -u -p -a -u -p -r1.8 Tc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Tc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Tc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Uc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Uc.pl,v
diff -u -p -a -u -p -r1.8 Uc.pl
--- gnu/usr.bin/perl/lib/unicore/To/Uc.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/Uc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/To/Vo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/Vo.pl,v
diff -u -p -a -u -p -r1.4 Vo.pl
--- gnu/usr.bin/perl/lib/unicore/To/Vo.pl	15 Feb 2023 01:39:51 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/To/Vo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -18,21 +18,21 @@ $Unicode::UCD::SwashInfo{'ToVo'}{'missin
 
 return <<'END';
 0	A6	Rotated
-A7		U
+A7		Upright
 A8		Rotated
-A9		U
+A9		Upright
 AA	AD	Rotated
-AE		U
+AE		Upright
 AF	B0	Rotated
-B1		U
+B1		Upright
 B2	BB	Rotated
-BC	BE	U
+BC	BE	Upright
 BF	D6	Rotated
-D7		U
+D7		Upright
 D8	F6	Rotated
-F7		U
+F7		Upright
 F8	2E9	Rotated
-2EA	2EB	U
+2EA	2EB	Upright
 2EC	377	Rotated
 37A	37F	Rotated
 384	38A	Rotated
@@ -154,7 +154,7 @@ CD5	CD6	Rotated
 CDD	CDE	Rotated
 CE0	CE3	Rotated
 CE6	CEF	Rotated
-CF1	CF2	Rotated
+CF1	CF3	Rotated
 D00	D0C	Rotated
 D0E	D10	Rotated
 D12	D44	Rotated
@@ -184,7 +184,7 @@ EA5		Rotated
 EA7	EBD	Rotated
 EC0	EC4	Rotated
 EC6		Rotated
-EC8	ECD	Rotated
+EC8	ECE	Rotated
 ED0	ED9	Rotated
 EDC	EDF	Rotated
 F00	F47	Rotated
@@ -197,7 +197,7 @@ FCE	FDA	Rotated
 10C7		Rotated
 10CD		Rotated
 10D0	10FF	Rotated
-1100	11FF	U
+1100	11FF	Upright
 1200	1248	Rotated
 124A	124D	Rotated
 1250	1256	Rotated
@@ -219,7 +219,7 @@ FCE	FDA	Rotated
 13A0	13F5	Rotated
 13F8	13FD	Rotated
 1400		Rotated
-1401	167F	U
+1401	167F	Upright
 1680	169C	Rotated
 16A0	16F8	Rotated
 1700	1715	Rotated
@@ -234,7 +234,7 @@ FCE	FDA	Rotated
 1800	1819	Rotated
 1820	1878	Rotated
 1880	18AA	Rotated
-18B0	18FF	U
+18B0	18FF	Upright
 1900	191E	Rotated
 1920	192B	Rotated
 1930	193B	Rotated
@@ -277,102 +277,102 @@ FCE	FDA	Rotated
 1FF2	1FF4	Rotated
 1FF6	1FFE	Rotated
 2000	2015	Rotated
-2016		U
+2016		Upright
 2017	201F	Rotated
-2020	2021	U
+2020	2021	Upright
 2022	202F	Rotated
-2030	2031	U
+2030	2031	Upright
 2032	203A	Rotated
-203B	203C	U
+203B	203C	Upright
 203D	2041	Rotated
-2042		U
+2042		Upright
 2043	2046	Rotated
-2047	2049	U
+2047	2049	Upright
 204A	2050	Rotated
-2051		U
+2051		Upright
 2052	2064	Rotated
-2065		U
+2065		Upright
 2066	2071	Rotated
 2074	208E	Rotated
 2090	209C	Rotated
 20A0	20C0	Rotated
 20D0	20DC	Rotated
-20DD	20E0	U
+20DD	20E0	Upright
 20E1		Rotated
-20E2	20E4	U
+20E2	20E4	Upright
 20E5	20F0	Rotated
-2100	2101	U
+2100	2101	Upright
 2102		Rotated
-2103	2109	U
+2103	2109	Upright
 210A	210E	Rotated
-210F		U
+210F		Upright
 2110	2112	Rotated
-2113	2114	U
+2113	2114	Upright
 2115		Rotated
-2116	2117	U
+2116	2117	Upright
 2118	211D	Rotated
-211E	2123	U
+211E	2123	Upright
 2124		Rotated
-2125		U
+2125		Upright
 2126		Rotated
-2127		U
+2127		Upright
 2128		Rotated
-2129		U
+2129		Upright
 212A	212D	Rotated
-212E		U
+212E		Upright
 212F	2134	Rotated
-2135	213F	U
+2135	213F	Upright
 2140	2144	Rotated
-2145	214A	U
+2145	214A	Upright
 214B		Rotated
-214C	214D	U
+214C	214D	Upright
 214E		Rotated
-214F	2189	U
+214F	2189	Upright
 218A	218B	Rotated
-218C	218F	U
+218C	218F	Upright
 2190	221D	Rotated
-221E		U
+221E		Upright
 221F	2233	Rotated
-2234	2235	U
+2234	2235	Upright
 2236	22FF	Rotated
-2300	2307	U
+2300	2307	Upright
 2308	230B	Rotated
-230C	231F	U
+230C	231F	Upright
 2320	2323	Rotated
-2324	2328	U
-2329	232A	Tr
-232B		U
+2324	2328	Upright
+2329	232A	Transformed_Rotated
+232B		Upright
 232C	237C	Rotated
-237D	239A	U
+237D	239A	Upright
 239B	23BD	Rotated
-23BE	23CD	U
+23BE	23CD	Upright
 23CE		Rotated
-23CF		U
+23CF		Upright
 23D0		Rotated
-23D1	23DB	U
+23D1	23DB	Upright
 23DC	23E1	Rotated
-23E2	2422	U
+23E2	2422	Upright
 2423		Rotated
-2424	24FF	U
+2424	24FF	Upright
 2500	259F	Rotated
-25A0	2619	U
+25A0	2619	Upright
 261A	261F	Rotated
-2620	2767	U
+2620	2767	Upright
 2768	2775	Rotated
-2776	2793	U
+2776	2793	Upright
 2794	2B11	Rotated
-2B12	2B2F	U
+2B12	2B2F	Upright
 2B30	2B4F	Rotated
-2B50	2B59	U
+2B50	2B59	Upright
 2B5A	2B73	Rotated
 2B76	2B95	Rotated
-2B97		U
+2B97		Upright
 2B98	2BB7	Rotated
-2BB8	2BD1	U
+2BB8	2BD1	Upright
 2BD2		Rotated
-2BD3	2BEB	U
+2BD3	2BEB	Upright
 2BEC	2BEF	Rotated
-2BF0	2BFF	U
+2BF0	2BFF	Upright
 2C00	2CF3	Rotated
 2CF9	2D25	Rotated
 2D27		Rotated
@@ -389,74 +389,74 @@ FCE	FDA	Rotated
 2DD0	2DD6	Rotated
 2DD8	2DDE	Rotated
 2DE0	2E4F	Rotated
-2E50	2E51	U
+2E50	2E51	Upright
 2E52	2E5D	Rotated
-2E80	3000	U
-3001	3002	Tu
-3003	3007	U
-3008	3011	Tr
-3012	3013	U
-3014	301F	Tr
-3020	302F	U
-3030		Tr
-3031	3040	U
-3041		Tu
-3042		U
-3043		Tu
-3044		U
-3045		Tu
-3046		U
-3047		Tu
-3048		U
-3049		Tu
-304A	3062	U
-3063		Tu
-3064	3082	U
-3083		Tu
-3084		U
-3085		Tu
-3086		U
-3087		Tu
-3088	308D	U
-308E		Tu
-308F	3094	U
-3095	3096	Tu
-3097	309A	U
-309B	309C	Tu
-309D	309F	U
-30A0		Tr
-30A1		Tu
-30A2		U
-30A3		Tu
-30A4		U
-30A5		Tu
-30A6		U
-30A7		Tu
-30A8		U
-30A9		Tu
-30AA	30C2	U
-30C3		Tu
-30C4	30E2	U
-30E3		Tu
-30E4		U
-30E5		Tu
-30E6		U
-30E7		Tu
-30E8	30ED	U
-30EE		Tu
-30EF	30F4	U
-30F5	30F6	Tu
-30F7	30FB	U
-30FC		Tr
-30FD	3126	U
-3127		Tu
-3128	31EF	U
-31F0	31FF	Tu
-3200	32FE	U
-32FF	3357	Tu
-3358	337A	U
-337B	337F	Tu
-3380	A4CF	U
+2E80	3000	Upright
+3001	3002	Transformed_Upright
+3003	3007	Upright
+3008	3011	Transformed_Rotated
+3012	3013	Upright
+3014	301F	Transformed_Rotated
+3020	302F	Upright
+3030		Transformed_Rotated
+3031	3040	Upright
+3041		Transformed_Upright
+3042		Upright
+3043		Transformed_Upright
+3044		Upright
+3045		Transformed_Upright
+3046		Upright
+3047		Transformed_Upright
+3048		Upright
+3049		Transformed_Upright
+304A	3062	Upright
+3063		Transformed_Upright
+3064	3082	Upright
+3083		Transformed_Upright
+3084		Upright
+3085		Transformed_Upright
+3086		Upright
+3087		Transformed_Upright
+3088	308D	Upright
+308E		Transformed_Upright
+308F	3094	Upright
+3095	3096	Transformed_Upright
+3097	309A	Upright
+309B	309C	Transformed_Upright
+309D	309F	Upright
+30A0		Transformed_Rotated
+30A1		Transformed_Upright
+30A2		Upright
+30A3		Transformed_Upright
+30A4		Upright
+30A5		Transformed_Upright
+30A6		Upright
+30A7		Transformed_Upright
+30A8		Upright
+30A9		Transformed_Upright
+30AA	30C2	Upright
+30C3		Transformed_Upright
+30C4	30E2	Upright
+30E3		Transformed_Upright
+30E4		Upright
+30E5		Transformed_Upright
+30E6		Upright
+30E7		Transformed_Upright
+30E8	30ED	Upright
+30EE		Transformed_Upright
+30EF	30F4	Upright
+30F5	30F6	Transformed_Upright
+30F7	30FB	Upright
+30FC		Transformed_Rotated
+30FD	3126	Upright
+3127		Transformed_Upright
+3128	31EF	Upright
+31F0	31FF	Transformed_Upright
+3200	32FE	Upright
+32FF	3357	Transformed_Upright
+3358	337A	Upright
+337B	337F	Transformed_Upright
+3380	A4CF	Upright
 A4D0	A62B	Rotated
 A640	A6F7	Rotated
 A700	A7CA	Rotated
@@ -470,7 +470,7 @@ A880	A8C5	Rotated
 A8CE	A8D9	Rotated
 A8E0	A953	Rotated
 A95F		Rotated
-A960	A97F	U
+A960	A97F	Upright
 A980	A9CD	Rotated
 A9CF	A9D9	Rotated
 A9DE	A9FE	Rotated
@@ -487,9 +487,9 @@ AB28	AB2E	Rotated
 AB30	AB6B	Rotated
 AB70	ABED	Rotated
 ABF0	ABF9	Rotated
-AC00	D7FF	U
+AC00	D7FF	Upright
 D800	DFFF	Rotated
-E000	FAFF	U
+E000	FAFF	Upright
 FB00	FB06	Rotated
 FB13	FB17	Rotated
 FB1D	FB36	Rotated
@@ -502,51 +502,51 @@ FBD3	FD8F	Rotated
 FD92	FDC7	Rotated
 FDCF		Rotated
 FDF0	FE0F	Rotated
-FE10	FE1F	U
+FE10	FE1F	Upright
 FE20	FE2F	Rotated
-FE30	FE48	U
+FE30	FE48	Upright
 FE49	FE4F	Rotated
-FE50	FE52	Tu
-FE53	FE57	U
+FE50	FE52	Transformed_Upright
+FE53	FE57	Upright
 FE58		Rotated
-FE59	FE5E	Tr
-FE5F	FE62	U
+FE59	FE5E	Transformed_Rotated
+FE5F	FE62	Upright
 FE63	FE66	Rotated
-FE67	FE6F	U
+FE67	FE6F	Upright
 FE70	FE74	Rotated
 FE76	FEFC	Rotated
 FEFF		Rotated
-FF01		Tu
-FF02	FF07	U
-FF08	FF09	Tr
-FF0A	FF0B	U
-FF0C		Tu
+FF01		Transformed_Upright
+FF02	FF07	Upright
+FF08	FF09	Transformed_Rotated
+FF0A	FF0B	Upright
+FF0C		Transformed_Upright
 FF0D		Rotated
-FF0E		Tu
-FF0F	FF19	U
-FF1A	FF1B	Tr
+FF0E		Transformed_Upright
+FF0F	FF19	Upright
+FF1A	FF1B	Transformed_Rotated
 FF1C	FF1E	Rotated
-FF1F		Tu
-FF20	FF3A	U
-FF3B		Tr
-FF3C		U
-FF3D		Tr
-FF3E		U
-FF3F		Tr
-FF40	FF5A	U
-FF5B	FF60	Tr
+FF1F		Transformed_Upright
+FF20	FF3A	Upright
+FF3B		Transformed_Rotated
+FF3C		Upright
+FF3D		Transformed_Rotated
+FF3E		Upright
+FF3F		Transformed_Rotated
+FF40	FF5A	Upright
+FF5B	FF60	Transformed_Rotated
 FF61	FFBE	Rotated
 FFC2	FFC7	Rotated
 FFCA	FFCF	Rotated
 FFD2	FFD7	Rotated
 FFDA	FFDC	Rotated
-FFE0	FFE2	U
-FFE3		Tr
-FFE4	FFE7	U
+FFE0	FFE2	Upright
+FFE3		Transformed_Rotated
+FFE4	FFE7	Upright
 FFE8	FFEE	Rotated
-FFF0	FFF8	U
+FFF0	FFF8	Upright
 FFF9	FFFB	Rotated
-FFFC	FFFD	U
+FFFC	FFFD	Upright
 10000	1000B	Rotated
 1000D	10026	Rotated
 10028	1003A	Rotated
@@ -602,7 +602,7 @@ FFFC	FFFD	U
 108FB	1091B	Rotated
 1091F	10939	Rotated
 1093F		Rotated
-10980	1099F	U
+10980	1099F	Upright
 109A0	109B7	Rotated
 109BC	109CF	Rotated
 109D2	10A03	Rotated
@@ -631,7 +631,7 @@ FFFC	FFFD	U
 10E80	10EA9	Rotated
 10EAB	10EAD	Rotated
 10EB0	10EB1	Rotated
-10F00	10F27	Rotated
+10EFD	10F27	Rotated
 10F30	10F59	Rotated
 10F70	10F89	Rotated
 10FB0	10FCB	Rotated
@@ -648,7 +648,7 @@ FFFC	FFFD	U
 11180	111DF	Rotated
 111E1	111F4	Rotated
 11200	11211	Rotated
-11213	1123E	Rotated
+11213	11241	Rotated
 11280	11286	Rotated
 11288		Rotated
 1128A	1128D	Rotated
@@ -675,7 +675,7 @@ FFFC	FFFD	U
 1145D	11461	Rotated
 11480	114C7	Rotated
 114D0	114D9	Rotated
-11580	115FF	U
+11580	115FF	Upright
 11600	11644	Rotated
 11650	11659	Rotated
 11660	1166C	Rotated
@@ -697,8 +697,9 @@ FFFC	FFFD	U
 119A0	119A7	Rotated
 119AA	119D7	Rotated
 119DA	119E4	Rotated
-11A00	11ABF	U
+11A00	11ABF	Upright
 11AC0	11AF8	Rotated
+11B00	11B09	Rotated
 11C00	11C08	Rotated
 11C0A	11C36	Rotated
 11C38	11C45	Rotated
@@ -720,6 +721,9 @@ FFFC	FFFD	U
 11D93	11D98	Rotated
 11DA0	11DA9	Rotated
 11EE0	11EF8	Rotated
+11F00	11F10	Rotated
+11F12	11F3A	Rotated
+11F3E	11F59	Rotated
 11FB0		Rotated
 11FC0	11FF1	Rotated
 11FFF	12399	Rotated
@@ -727,8 +731,8 @@ FFFC	FFFD	U
 12470	12474	Rotated
 12480	12543	Rotated
 12F90	12FF2	Rotated
-13000	1343F	U
-14400	1467F	U
+13000	1345F	Upright
+14400	1467F	Upright
 16800	16A38	Rotated
 16A40	16A5E	Rotated
 16A60	16A69	Rotated
@@ -745,17 +749,18 @@ FFFC	FFFD	U
 16F00	16F4A	Rotated
 16F4F	16F87	Rotated
 16F8F	16F9F	Rotated
-16FE0	18D7F	U
-1AFF0	1B2FF	U
+16FE0	18D7F	Upright
+1AFF0	1B2FF	Upright
 1BC00	1BC6A	Rotated
 1BC70	1BC7C	Rotated
 1BC80	1BC88	Rotated
 1BC90	1BC99	Rotated
 1BC9C	1BCA3	Rotated
-1CF00	1CFCF	U
-1D000	1D1FF	U
+1CF00	1CFCF	Upright
+1D000	1D1FF	Upright
 1D200	1D245	Rotated
-1D2E0	1D37F	U
+1D2C0	1D2D3	Rotated
+1D2E0	1D37F	Upright
 1D400	1D454	Rotated
 1D456	1D49C	Rotated
 1D49E	1D49F	Rotated
@@ -777,13 +782,16 @@ FFFC	FFFD	U
 1D552	1D6A5	Rotated
 1D6A8	1D7CB	Rotated
 1D7CE	1D7FF	Rotated
-1D800	1DAAF	U
+1D800	1DAAF	Upright
 1DF00	1DF1E	Rotated
+1DF25	1DF2A	Rotated
 1E000	1E006	Rotated
 1E008	1E018	Rotated
 1E01B	1E021	Rotated
 1E023	1E024	Rotated
 1E026	1E02A	Rotated
+1E030	1E06D	Rotated
+1E08F		Rotated
 1E100	1E12C	Rotated
 1E130	1E13D	Rotated
 1E140	1E149	Rotated
@@ -791,6 +799,7 @@ FFFC	FFFD	U
 1E290	1E2AE	Rotated
 1E2C0	1E2F9	Rotated
 1E2FF		Rotated
+1E4D0	1E4F9	Rotated
 1E7E0	1E7E6	Rotated
 1E7E8	1E7EB	Rotated
 1E7ED	1E7EE	Rotated
@@ -836,24 +845,24 @@ FFFC	FFFD	U
 1EEA5	1EEA9	Rotated
 1EEAB	1EEBB	Rotated
 1EEF0	1EEF1	Rotated
-1F000	1F1FF	U
-1F200	1F201	Tu
-1F202	1F7FF	U
+1F000	1F1FF	Upright
+1F200	1F201	Transformed_Upright
+1F202	1F7FF	Upright
 1F800	1F80B	Rotated
 1F810	1F847	Rotated
 1F850	1F859	Rotated
 1F860	1F887	Rotated
 1F890	1F8AD	Rotated
 1F8B0	1F8B1	Rotated
-1F900	1FAFF	U
+1F900	1FAFF	Upright
 1FB00	1FB92	Rotated
 1FB94	1FBCA	Rotated
 1FBF0	1FBF9	Rotated
-20000	2FFFD	U
-30000	3FFFD	U
+20000	2FFFD	Upright
+30000	3FFFD	Upright
 E0001		Rotated
 E0020	E007F	Rotated
 E0100	E01EF	Rotated
-F0000	FFFFD	U
-100000	10FFFD	U
+F0000	FFFFD	Upright
+100000	10FFFD	Upright
 END
Index: gnu/usr.bin/perl/lib/unicore/To/WB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/WB.pl,v
diff -u -p -a -u -p -r1.8 WB.pl
--- gnu/usr.bin/perl/lib/unicore/To/WB.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/To/WB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -270,6 +270,7 @@ CE0	CE1	ALetter
 CE2	CE3	Extend
 CE6	CEF	Numeric
 CF1	CF2	ALetter
+CF3		Extend
 D00	D03	Extend
 D04	D0C	ALetter
 D0E	D10	ALetter
@@ -304,7 +305,7 @@ E47	E4E	Extend
 E50	E59	Numeric
 EB1		Extend
 EB4	EBC	Extend
-EC8	ECD	Extend
+EC8	ECE	Extend
 ED0	ED9	Numeric
 F00		ALetter
 F18	F19	Extend
@@ -777,6 +778,7 @@ FFF9	FFFB	Format
 10E80	10EA9	ALetter
 10EAB	10EAC	Extend
 10EB0	10EB1	ALetter
+10EFD	10EFF	Extend
 10F00	10F1C	ALetter
 10F27		ALetter
 10F30	10F45	ALetter
@@ -824,6 +826,8 @@ FFF9	FFFB	Format
 11213	1122B	ALetter
 1122C	11237	Extend
 1123E		Extend
+1123F	11240	ALetter
+11241		Extend
 11280	11286	ALetter
 11288		ALetter
 1128A	1128D	ALetter
@@ -942,13 +946,24 @@ FFF9	FFFB	Format
 11DA0	11DA9	Numeric
 11EE0	11EF2	ALetter
 11EF3	11EF6	Extend
+11F00	11F01	Extend
+11F02		ALetter
+11F03		Extend
+11F04	11F10	ALetter
+11F12	11F33	ALetter
+11F34	11F3A	Extend
+11F3E	11F42	Extend
+11F50	11F59	Numeric
 11FB0		ALetter
 12000	12399	ALetter
 12400	1246E	ALetter
 12480	12543	ALetter
 12F90	12FF0	ALetter
-13000	1342E	ALetter
-13430	13438	Format
+13000	1342F	ALetter
+13430	1343F	Format
+13440		Extend
+13441	13446	ALetter
+13447	13455	Extend
 14400	14646	ALetter
 16800	16A38	ALetter
 16A40	16A5E	ALetter
@@ -979,6 +994,7 @@ FFF9	FFFB	Format
 1AFFD	1AFFE	Katakana
 1B000		Katakana
 1B120	1B122	Katakana
+1B155		Katakana
 1B164	1B167	Katakana
 1BC00	1BC6A	ALetter
 1BC70	1BC7C	ALetter
@@ -1033,11 +1049,14 @@ FFF9	FFFB	Format
 1DA9B	1DA9F	Extend
 1DAA1	1DAAF	Extend
 1DF00	1DF1E	ALetter
+1DF25	1DF2A	ALetter
 1E000	1E006	Extend
 1E008	1E018	Extend
 1E01B	1E021	Extend
 1E023	1E024	Extend
 1E026	1E02A	Extend
+1E030	1E06D	ALetter
+1E08F		Extend
 1E100	1E12C	ALetter
 1E130	1E136	Extend
 1E137	1E13D	ALetter
@@ -1048,6 +1067,9 @@ FFF9	FFFB	Format
 1E2C0	1E2EB	ALetter
 1E2EC	1E2EF	Extend
 1E2F0	1E2F9	Numeric
+1E4D0	1E4EB	ALetter
+1E4EC	1E4EF	Extend
+1E4F0	1E4F9	Numeric
 1E7E0	1E7E6	ALetter
 1E7E8	1E7EB	ALetter
 1E7ED	1E7EE	ALetter
Index: gnu/usr.bin/perl/lib/unicore/To/_PerlLB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/_PerlLB.pl,v
diff -u -p -a -u -p -r1.5 _PerlLB.pl
--- gnu/usr.bin/perl/lib/unicore/To/_PerlLB.pl	15 Feb 2023 01:39:51 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/To/_PerlLB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -184,6 +184,7 @@ CCA	CCD	Combining_Mark
 CD5	CD6	Combining_Mark
 CE2	CE3	Combining_Mark
 CE6	CEF	Numeric
+CF3		Combining_Mark
 D00	D03	Combining_Mark
 D3B	D3C	Combining_Mark
 D3E	D44	Combining_Mark
@@ -208,7 +209,7 @@ E50	E59	Numeric
 E5A	E5B	Break_After
 EB1		Combining_Mark
 EB4	EBC	Combining_Mark
-EC8	ECD	Combining_Mark
+EC8	ECE	Combining_Mark
 ED0	ED9	Numeric
 F01	F04	Break_Before
 F06	F07	Break_Before
@@ -321,7 +322,11 @@ FD9	FDA	Glue
 1CED		Combining_Mark
 1CF4		Combining_Mark
 1CF7	1CF9	Combining_Mark
-1DC0	1DFF	Combining_Mark
+1DC0	1DCC	Combining_Mark
+1DCD		Glue
+1DCE	1DFB	Combining_Mark
+1DFC		Glue
+1DFD	1DFF	Combining_Mark
 1FFD		Break_Before
 2000	2006	Break_After
 2007		Glue
@@ -352,6 +357,7 @@ FD9	FDA	Glue
 2046		Close_Punctuation
 2047	2049	Nonstarter
 2056		Break_After
+2057		Postfix_Numeric
 2058	205B	Break_After
 205D	205F	Break_After
 2060		Word_Joiner
@@ -1589,6 +1595,7 @@ FFFC		Contingent_Break
 10D30	10D39	Numeric
 10EAB	10EAC	Combining_Mark
 10EAD		Break_After
+10EFD	10EFF	Combining_Mark
 10F46	10F50	Combining_Mark
 10F82	10F85	Combining_Mark
 11000	11002	Combining_Mark
@@ -1622,6 +1629,7 @@ FFFC		Contingent_Break
 11238	11239	Break_After
 1123B	1123C	Break_After
 1123E		Combining_Mark
+11241		Combining_Mark
 112A9		Break_After
 112DF	112EA	Combining_Mark
 112F0	112F9	Numeric
@@ -1682,6 +1690,7 @@ FFFC		Contingent_Break
 11A9A	11A9C	Break_After
 11A9E	11AA0	Break_Before
 11AA1	11AA2	Break_After
+11B00	11B09	Break_Before
 11C2F	11C36	Combining_Mark
 11C38	11C3F	Combining_Mark
 11C41	11C45	Break_After
@@ -1701,6 +1710,13 @@ FFFC		Contingent_Break
 11D93	11D97	Combining_Mark
 11DA0	11DA9	Numeric
 11EF3	11EF6	Combining_Mark
+11F00	11F01	Combining_Mark
+11F03		Combining_Mark
+11F34	11F3A	Combining_Mark
+11F3E	11F42	Combining_Mark
+11F43	11F44	Break_After
+11F45	11F4F	Ideographic
+11F50	11F59	Numeric
 11FDD	11FE0	Postfix_Numeric
 11FFF		Break_After
 12470	12474	Break_After
@@ -1716,6 +1732,13 @@ FFFC		Contingent_Break
 13430	13436	Glue
 13437		Open_Punctuation
 13438		Close_Punctuation
+13439	1343B	Glue
+1343C		Open_Punctuation
+1343D		Close_Punctuation
+1343E		Open_Punctuation
+1343F		Close_Punctuation
+13440		Combining_Mark
+13447	13455	Combining_Mark
 145CE		Open_Punctuation
 145CF		Close_Punctuation
 16A60	16A69	Numeric
@@ -1738,7 +1761,9 @@ FFFC		Contingent_Break
 18800	18AFF	Ideographic
 18D00	18D08	Ideographic
 1B000	1B122	Ideographic
+1B132		Nonstarter
 1B150	1B152	Nonstarter
+1B155		Nonstarter
 1B164	1B167	Nonstarter
 1B170	1B2FB	Ideographic
 1BC9D	1BC9E	Combining_Mark
@@ -1764,12 +1789,15 @@ FFFC		Contingent_Break
 1E01B	1E021	Combining_Mark
 1E023	1E024	Combining_Mark
 1E026	1E02A	Combining_Mark
+1E08F		Combining_Mark
 1E130	1E136	Combining_Mark
 1E140	1E149	Numeric
 1E2AE		Combining_Mark
 1E2EC	1E2EF	Combining_Mark
 1E2F0	1E2F9	Numeric
 1E2FF		Prefix_Numeric
+1E4EC	1E4EF	Combining_Mark
+1E4F0	1E4F9	Numeric
 1E8D0	1E8D6	Combining_Mark
 1E944	1E94A	Combining_Mark
 1E950	1E959	Numeric
@@ -1867,14 +1895,16 @@ FFFC		Contingent_Break
 1F6C1	1F6CB	Ideographic
 1F6CC		E_Base
 1F6CD	1F6D7	Ideographic
-1F6D8	1F6DC	Unassigned_Extended_Pictographic_Ideographic
-1F6DD	1F6EC	Ideographic
+1F6D8	1F6DB	Unassigned_Extended_Pictographic_Ideographic
+1F6DC	1F6EC	Ideographic
 1F6ED	1F6EF	Unassigned_Extended_Pictographic_Ideographic
 1F6F0	1F6FC	Ideographic
 1F6FD	1F6FF	Unassigned_Extended_Pictographic_Ideographic
-1F774	1F77F	Unassigned_Extended_Pictographic_Ideographic
-1F7D5	1F7D8	Ideographic
-1F7D9	1F7DF	Unassigned_Extended_Pictographic_Ideographic
+1F774	1F776	Ideographic
+1F777	1F77A	Unassigned_Extended_Pictographic_Ideographic
+1F77B	1F77F	Ideographic
+1F7D5	1F7D9	Ideographic
+1F7DA	1F7DF	Unassigned_Extended_Pictographic_Ideographic
 1F7E0	1F7EB	Ideographic
 1F7EC	1F7EF	Unassigned_Extended_Pictographic_Ideographic
 1F7F0		Ideographic
@@ -1913,25 +1943,21 @@ FFFC		Contingent_Break
 1FA54	1FA5F	Unassigned_Extended_Pictographic_Ideographic
 1FA60	1FA6D	Ideographic
 1FA6E	1FA6F	Unassigned_Extended_Pictographic_Ideographic
-1FA70	1FA74	Ideographic
-1FA75	1FA77	Unassigned_Extended_Pictographic_Ideographic
-1FA78	1FA7C	Ideographic
+1FA70	1FA7C	Ideographic
 1FA7D	1FA7F	Unassigned_Extended_Pictographic_Ideographic
-1FA80	1FA86	Ideographic
-1FA87	1FA8F	Unassigned_Extended_Pictographic_Ideographic
-1FA90	1FAAC	Ideographic
-1FAAD	1FAAF	Unassigned_Extended_Pictographic_Ideographic
-1FAB0	1FABA	Ideographic
-1FABB	1FABF	Unassigned_Extended_Pictographic_Ideographic
-1FAC0	1FAC2	Ideographic
+1FA80	1FA88	Ideographic
+1FA89	1FA8F	Unassigned_Extended_Pictographic_Ideographic
+1FA90	1FABD	Ideographic
+1FABE		Unassigned_Extended_Pictographic_Ideographic
+1FABF	1FAC2	Ideographic
 1FAC3	1FAC5	E_Base
-1FAC6	1FACF	Unassigned_Extended_Pictographic_Ideographic
-1FAD0	1FAD9	Ideographic
-1FADA	1FADF	Unassigned_Extended_Pictographic_Ideographic
-1FAE0	1FAE7	Ideographic
-1FAE8	1FAEF	Unassigned_Extended_Pictographic_Ideographic
-1FAF0	1FAF6	E_Base
-1FAF7	1FAFF	Unassigned_Extended_Pictographic_Ideographic
+1FAC6	1FACD	Unassigned_Extended_Pictographic_Ideographic
+1FACE	1FADB	Ideographic
+1FADC	1FADF	Unassigned_Extended_Pictographic_Ideographic
+1FAE0	1FAE8	Ideographic
+1FAE9	1FAEF	Unassigned_Extended_Pictographic_Ideographic
+1FAF0	1FAF8	E_Base
+1FAF9	1FAFF	Unassigned_Extended_Pictographic_Ideographic
 1FBF0	1FBF9	Numeric
 1FC00	1FFFD	Unassigned_Extended_Pictographic_Ideographic
 20000	2FFFD	Ideographic
Index: gnu/usr.bin/perl/lib/unicore/To/_PerlSCX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/To/_PerlSCX.pl,v
diff -u -p -a -u -p -r1.4 _PerlSCX.pl
--- gnu/usr.bin/perl/lib/unicore/To/_PerlSCX.pl	15 Feb 2023 01:39:51 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/To/_PerlSCX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -221,7 +221,7 @@ CD5	CD6	Kannada
 CDD	CDE	Kannada
 CE0	CE3	Kannada
 CE6	CEF	Kannada Nandinagari
-CF1	CF2	Kannada
+CF1	CF3	Kannada
 D00	D0C	Malayalam
 D0E	D10	Malayalam
 D12	D44	Malayalam
@@ -252,7 +252,7 @@ EA5		Lao
 EA7	EBD	Lao
 EC0	EC4	Lao
 EC6		Lao
-EC8	ECD	Lao
+EC8	ECE	Lao
 ED0	ED9	Lao
 EDC	EDF	Lao
 F00	F47	Tibetan
@@ -747,6 +747,7 @@ FFF9	FFFD	Common
 10E80	10EA9	Yezidi
 10EAB	10EAD	Yezidi
 10EB0	10EB1	Yezidi
+10EFD	10EFF	Arabic
 10F00	10F27	Old_Sogdian
 10F30	10F59	Sogdian
 10F70	10F89	Old_Uyghur
@@ -765,7 +766,7 @@ FFF9	FFFD	Common
 11180	111DF	Sharada
 111E1	111F4	Sinhala
 11200	11211	Khojki
-11213	1123E	Khojki
+11213	11241	Khojki
 11280	11286	Multani
 11288		Multani
 1128A	1128D	Multani
@@ -824,6 +825,7 @@ FFF9	FFFD	Common
 11A50	11AA2	Soyombo
 11AB0	11ABF	Canadian_Aboriginal
 11AC0	11AF8	Pau_Cin_Hau
+11B00	11B09	Devanagari
 11C00	11C08	Bhaiksuki
 11C0A	11C36	Bhaiksuki
 11C38	11C45	Bhaiksuki
@@ -845,6 +847,9 @@ FFF9	FFFD	Common
 11D93	11D98	Gunjala_Gondi
 11DA0	11DA9	Gunjala_Gondi
 11EE0	11EF8	Makasar
+11F00	11F10	Kawi
+11F12	11F3A	Kawi
+11F3E	11F59	Kawi
 11FB0		Lisu
 11FC0	11FCF	Tamil
 11FD0	11FD1	Grantha Tamil
@@ -857,8 +862,7 @@ FFF9	FFFD	Common
 12470	12474	Cuneiform
 12480	12543	Cuneiform
 12F90	12FF2	Cypro_Minoan
-13000	1342E	Egyptian_Hieroglyphs
-13430	13438	Egyptian_Hieroglyphs
+13000	13455	Egyptian_Hieroglyphs
 14400	14646	Anatolian_Hieroglyphs
 16800	16A38	Bamum
 16A40	16A5E	Mro
@@ -892,7 +896,9 @@ FFF9	FFFD	Common
 1B000		Katakana Jpan
 1B001	1B11F	Hiragana Jpan
 1B120	1B122	Katakana Jpan
+1B132		Hiragana Jpan
 1B150	1B152	Hiragana Jpan
+1B155		Katakana Jpan
 1B164	1B167	Katakana Jpan
 1B170	1B2FB	Nushu
 1BC00	1BC6A	Duployan
@@ -915,6 +921,7 @@ FFF9	FFFD	Common
 1D1AA	1D1AD	Inherited
 1D1AE	1D1EA	Common
 1D200	1D245	Greek
+1D2C0	1D2D3	Common
 1D2E0	1D2F3	Common
 1D300	1D356	Common
 1D360	1D371	Han Hanb Jpan Kore
@@ -944,11 +951,14 @@ FFF9	FFFD	Common
 1DA9B	1DA9F	SignWriting
 1DAA1	1DAAF	SignWriting
 1DF00	1DF1E	Latin
+1DF25	1DF2A	Latin
 1E000	1E006	Glagolitic
 1E008	1E018	Glagolitic
 1E01B	1E021	Glagolitic
 1E023	1E024	Glagolitic
 1E026	1E02A	Glagolitic
+1E030	1E06D	Cyrillic
+1E08F		Cyrillic
 1E100	1E12C	Nyiakeng_Puachue_Hmong
 1E130	1E13D	Nyiakeng_Puachue_Hmong
 1E140	1E149	Nyiakeng_Puachue_Hmong
@@ -956,6 +966,7 @@ FFF9	FFFD	Common
 1E290	1E2AE	Toto
 1E2C0	1E2F9	Wancho
 1E2FF		Wancho
+1E4D0	1E4F9	Nag_Mundari
 1E7E0	1E7E6	Ethiopic
 1E7E8	1E7EB	Ethiopic
 1E7ED	1E7EE	Ethiopic
@@ -1016,10 +1027,10 @@ FFF9	FFFD	Common
 1F250	1F251	Han Hanb Jpan Kore
 1F260	1F265	Common
 1F300	1F6D7	Common
-1F6DD	1F6EC	Common
+1F6DC	1F6EC	Common
 1F6F0	1F6FC	Common
-1F700	1F773	Common
-1F780	1F7D8	Common
+1F700	1F776	Common
+1F77B	1F7D9	Common
 1F7E0	1F7EB	Common
 1F7F0		Common
 1F800	1F80B	Common
@@ -1030,25 +1041,24 @@ FFF9	FFFD	Common
 1F8B0	1F8B1	Common
 1F900	1FA53	Common
 1FA60	1FA6D	Common
-1FA70	1FA74	Common
-1FA78	1FA7C	Common
-1FA80	1FA86	Common
-1FA90	1FAAC	Common
-1FAB0	1FABA	Common
-1FAC0	1FAC5	Common
-1FAD0	1FAD9	Common
-1FAE0	1FAE7	Common
-1FAF0	1FAF6	Common
+1FA70	1FA7C	Common
+1FA80	1FA88	Common
+1FA90	1FABD	Common
+1FABF	1FAC5	Common
+1FACE	1FADB	Common
+1FAE0	1FAE8	Common
+1FAF0	1FAF8	Common
 1FB00	1FB92	Common
 1FB94	1FBCA	Common
 1FBF0	1FBF9	Common
 20000	2A6DF	Han Hanb Jpan Kore
-2A700	2B738	Han Hanb Jpan Kore
+2A700	2B739	Han Hanb Jpan Kore
 2B740	2B81D	Han Hanb Jpan Kore
 2B820	2CEA1	Han Hanb Jpan Kore
 2CEB0	2EBE0	Han Hanb Jpan Kore
 2F800	2FA1D	Han Hanb Jpan Kore
 30000	3134A	Han Hanb Jpan Kore
+31350	323AF	Han Hanb Jpan Kore
 E0001		Common
 E0020	E007F	Common
 E0100	E01EF	Inherited
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/GCBTest.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/GCBTest.txt,v
diff -u -p -a -u -p -r1.6 GCBTest.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/GCBTest.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/GCBTest.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# GraphemeBreakTest-14.0.0.txt
-# Date: 2021-03-08, 06:22:32 GMT
-# © 2021 Unicode®, Inc.
+# GraphemeBreakTest-15.0.0.txt
+# Date: 2022-02-26, 00:38:37 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Default Grapheme_Cluster_Break Test
 #
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/GraphemeBreakProperty.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/GraphemeBreakProperty.txt,v
diff -u -p -a -u -p -r1.6 GraphemeBreakProperty.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/GraphemeBreakProperty.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/GraphemeBreakProperty.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# GraphemeBreakProperty-14.0.0.txt
-# Date: 2021-08-12, 23:13:02 GMT
-# © 2021 Unicode®, Inc.
+# GraphemeBreakProperty-15.0.0.txt
+# Date: 2022-04-27, 17:07:38 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -32,8 +32,9 @@
 11A3A         ; Prepend # Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
 11A84..11A89  ; Prepend # Lo   [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
 11D46         ; Prepend # Lo       MASARAM GONDI REPHA
+11F02         ; Prepend # Lo       KAWI SIGN REPHA
 
-# Total code points: 26
+# Total code points: 27
 
 # ================================================
 
@@ -67,7 +68,7 @@
 FEFF          ; Control # Cf       ZERO WIDTH NO-BREAK SPACE
 FFF0..FFF8    ; Control # Cn   [9] <reserved-FFF0>..<reserved-FFF8>
 FFF9..FFFB    ; Control # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-13430..13438  ; Control # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F  ; Control # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
 1BCA0..1BCA3  ; Control # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Control # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0000         ; Control # Cn       <reserved-E0000>
@@ -76,7 +77,7 @@ E0002..E001F  ; Control # Cn  [30] <rese
 E0080..E00FF  ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
 E01F0..E0FFF  ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
 
-# Total code points: 3886
+# Total code points: 3893
 
 # ================================================
 
@@ -185,7 +186,7 @@ E01F0..E0FFF  ; Control # Cn [3600] <res
 0E47..0E4E    ; Extend # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; Extend # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; Extend # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; Extend # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Extend # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -324,6 +325,7 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11001         ; Extend # Mn       BRAHMI SIGN ANUSVARA
@@ -346,6 +348,7 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 11234         ; Extend # Mn       KHOJKI SIGN ANUSVARA
 11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; Extend # Mn       KHOJKI SIGN SUKUN
+11241         ; Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
 112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
 11300..11301  ; Extend # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -413,6 +416,12 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 11D95         ; Extend # Mn       GUNJALA GONDI SIGN ANUSVARA
 11D97         ; Extend # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; Extend # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11F00..11F01  ; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A  ; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40         ; Extend # Mn       KAWI VOWEL SIGN EU
+11F42         ; Extend # Mn       KAWI CONJOINER
+13440         ; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -439,16 +448,18 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 1E01B..1E021  ; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Extend # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Extend # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; Extend # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; Extend # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; Extend # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 1F3FB..1F3FF  ; Extend # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 E0020..E007F  ; Extend # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2095
+# Total code points: 2130
 
 # ================================================
 
@@ -489,6 +500,7 @@ E0100..E01EF  ; Extend # Mn [240] VARIAT
 0CC3..0CC4    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
 0CC7..0CC8    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
 0CCA..0CCB    ; SpacingMark # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CF3          ; SpacingMark # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D02..0D03    ; SpacingMark # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3F..0D40    ; SpacingMark # Mc   [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
 0D46..0D48    ; SpacingMark # Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
@@ -614,12 +626,16 @@ ABEC          ; SpacingMark # Mc       M
 11D93..11D94  ; SpacingMark # Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
 11D96         ; SpacingMark # Mc       GUNJALA GONDI SIGN VISARGA
 11EF5..11EF6  ; SpacingMark # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F03         ; SpacingMark # Mc       KAWI SIGN VISARGA
+11F34..11F35  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F3E..11F3F  ; SpacingMark # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F41         ; SpacingMark # Mc       KAWI SIGN KILLER
 16F51..16F87  ; SpacingMark # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
 16FF0..16FF1  ; SpacingMark # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
 1D166         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D16D         ; SpacingMark # Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT
 
-# Total code points: 388
+# Total code points: 395
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/LBTest.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/LBTest.txt,v
diff -u -p -a -u -p -r1.5 LBTest.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/LBTest.txt	15 Feb 2023 01:36:34 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/LBTest.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# LineBreakTest-14.0.0.txt
-# Date: 2021-08-20, 21:08:45 GMT
-# © 2021 Unicode®, Inc.
+# LineBreakTest-15.0.0.txt
+# Date: 2022-02-26, 00:38:39 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Default Line_Break Test
 #
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/SBTest.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/SBTest.txt,v
diff -u -p -a -u -p -r1.5 SBTest.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/SBTest.txt	15 Feb 2023 01:36:34 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/SBTest.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# SentenceBreakTest-14.0.0.txt
-# Date: 2021-03-08, 06:22:40 GMT
-# © 2021 Unicode®, Inc.
+# SentenceBreakTest-15.0.0.txt
+# Date: 2022-02-26, 00:39:00 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Default Sentence_Break Test
 #
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/SentenceBreakProperty.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/SentenceBreakProperty.txt,v
diff -u -p -a -u -p -r1.6 SentenceBreakProperty.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/SentenceBreakProperty.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/SentenceBreakProperty.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# SentenceBreakProperty-14.0.0.txt
-# Date: 2021-08-12, 23:13:21 GMT
-# © 2021 Unicode®, Inc.
+# SentenceBreakProperty-15.0.0.txt
+# Date: 2022-08-05, 22:17:35 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -144,6 +144,7 @@
 0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3          ; Extend # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; Extend # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Extend # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3B..0D3C    ; Extend # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
@@ -167,7 +168,7 @@
 0E47..0E4E    ; Extend # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; Extend # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; Extend # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; Extend # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Extend # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -371,6 +372,7 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11000         ; Extend # Mc       BRAHMI SIGN CANDRABINDU
@@ -407,6 +409,7 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 11235         ; Extend # Mc       KHOJKI SIGN VIRAMA
 11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; Extend # Mn       KHOJKI SIGN SUKUN
+11241         ; Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
 112E0..112E2  ; Extend # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
 112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
@@ -516,6 +519,16 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 11D97         ; Extend # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; Extend # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; Extend # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03         ; Extend # Mc       KAWI SIGN VISARGA
+11F34..11F35  ; Extend # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; Extend # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; Extend # Mn       KAWI VOWEL SIGN EU
+11F41         ; Extend # Mc       KAWI SIGN KILLER
+11F42         ; Extend # Mn       KAWI CONJOINER
+13440         ; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -544,15 +557,17 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 1E01B..1E021  ; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Extend # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Extend # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; Extend # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; Extend # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; Extend # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 E0020..E007F  ; Extend # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2508
+# Total code points: 2550
 
 # ================================================
 
@@ -581,12 +596,12 @@ FEFF          ; Format # Cf       ZERO W
 FFF9..FFFB    ; Format # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Format # Cf       KAITHI NUMBER SIGN
 110CD         ; Format # Cf       KAITHI NUMBER SIGN ABOVE
-13430..13438  ; Format # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F  ; Format # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
 1BCA0..1BCA3  ; Format # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Format # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0001         ; Format # Cf       LANGUAGE TAG
 
-# Total code points: 65
+# Total code points: 72
 
 # ================================================
 
@@ -880,6 +895,7 @@ E0001         ; Format # Cf       LANGUA
 052D          ; Lower # L&       CYRILLIC SMALL LETTER DCHE
 052F          ; Lower # L&       CYRILLIC SMALL LETTER EL WITH DESCENDER
 0560..0588    ; Lower # L&  [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
+10FC          ; Lower # Lm       MODIFIER LETTER GEORGIAN NAR
 13F8..13FD    ; Lower # L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
 1C80..1C88    ; Lower # L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
 1D00..1D2B    ; Lower # L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
@@ -1228,12 +1244,14 @@ A7D3          ; Lower # L&       LATIN S
 A7D5          ; Lower # L&       LATIN SMALL LETTER DOUBLE WYNN
 A7D7          ; Lower # L&       LATIN SMALL LETTER MIDDLE SCOTS S
 A7D9          ; Lower # L&       LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4    ; Lower # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
 A7F6          ; Lower # L&       LATIN SMALL LETTER REVERSED HALF H
 A7F8..A7F9    ; Lower # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
 A7FA          ; Lower # L&       LATIN LETTER SMALL CAPITAL TURNED M
 AB30..AB5A    ; Lower # L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
 AB5C..AB5F    ; Lower # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
 AB60..AB68    ; Lower # L&   [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69          ; Lower # Lm       MODIFIER LETTER SMALL TURNED W
 AB70..ABBF    ; Lower # L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
 FB00..FB06    ; Lower # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
 FB13..FB17    ; Lower # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -1281,9 +1299,11 @@ FF41..FF5A    ; Lower # L&  [26] FULLWID
 1D7CB         ; Lower # L&       MATHEMATICAL BOLD SMALL DIGAMMA
 1DF00..1DF09  ; Lower # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0B..1DF1E  ; Lower # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Lower # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; Lower # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E922..1E943  ; Lower # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
 
-# Total code points: 2424
+# Total code points: 2497
 
 # ================================================
 
@@ -2102,7 +2122,6 @@ FF21..FF3A    ; Upper # L&  [26] FULLWID
 1075..1081    ; OLetter # Lo  [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
 108E          ; OLetter # Lo       MYANMAR LETTER RUMAI PALAUNG FA
 10D0..10FA    ; OLetter # L&  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
-10FC          ; OLetter # Lm       MODIFIER LETTER GEORGIAN NAR
 10FD..10FF    ; OLetter # L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
 1100..1248    ; OLetter # Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA
 124A..124D    ; OLetter # Lo   [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
@@ -2215,7 +2234,6 @@ A6E6..A6EF    ; OLetter # Nl  [10] BAMUM
 A717..A71F    ; OLetter # Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
 A788          ; OLetter # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
 A78F          ; OLetter # Lo       LATIN LETTER SINOLOGICAL DOT
-A7F2..A7F4    ; OLetter # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
 A7F7          ; OLetter # Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I
 A7FB..A801    ; OLetter # Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
 A803..A805    ; OLetter # Lo   [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
@@ -2258,7 +2276,6 @@ AB09..AB0E    ; OLetter # Lo   [6] ETHIO
 AB11..AB16    ; OLetter # Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
 AB20..AB26    ; OLetter # Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
 AB28..AB2E    ; OLetter # Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
-AB69          ; OLetter # Lm       MODIFIER LETTER SMALL TURNED W
 ABC0..ABE2    ; OLetter # Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
 AC00..D7A3    ; OLetter # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
 D7B0..D7C6    ; OLetter # Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
@@ -2366,6 +2383,7 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFW
 111DC         ; OLetter # Lo       SHARADA HEADSTROKE
 11200..11211  ; OLetter # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
 11213..1122B  ; OLetter # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240  ; OLetter # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; OLetter # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; OLetter # Lo       MULTANI LETTER GHA
 1128A..1128D  ; OLetter # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -2427,12 +2445,16 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFW
 11D6A..11D89  ; OLetter # Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
 11D98         ; OLetter # Lo       GUNJALA GONDI OM
 11EE0..11EF2  ; OLetter # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02         ; OLetter # Lo       KAWI SIGN REPHA
+11F04..11F10  ; OLetter # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; OLetter # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
 11FB0         ; OLetter # Lo       LISU LETTER YHA
 12000..12399  ; OLetter # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; OLetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; OLetter # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; OLetter # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; OLetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; OLetter # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; OLetter # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; OLetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; OLetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; OLetter # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -2454,7 +2476,9 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFW
 1AFF5..1AFFB  ; OLetter # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; OLetter # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; OLetter # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; OLetter # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; OLetter # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; OLetter # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; OLetter # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; OLetter # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; OLetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -2467,6 +2491,8 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFW
 1E14E         ; OLetter # Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E290..1E2AD  ; OLetter # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; OLetter # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; OLetter # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; OLetter # Lm       NAG MUNDARI SIGN OJOD
 1E7E0..1E7E6  ; OLetter # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; OLetter # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; OLetter # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -2507,14 +2533,15 @@ FFDA..FFDC    ; OLetter # Lo   [3] HALFW
 1EEA5..1EEA9  ; OLetter # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
 1EEAB..1EEBB  ; OLetter # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 20000..2A6DF  ; OLetter # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; OLetter # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; OLetter # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; OLetter # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; OLetter # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; OLetter # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; OLetter # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; OLetter # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; OLetter # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 127761
+# Total code points: 132036
 
 # ================================================
 
@@ -2573,16 +2600,18 @@ FF10..FF19    ; Numeric # Nd  [10] FULLW
 11C50..11C59  ; Numeric # Nd  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
 11D50..11D59  ; Numeric # Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11DA0..11DA9  ; Numeric # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59  ; Numeric # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 16A60..16A69  ; Numeric # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
 16AC0..16AC9  ; Numeric # Nd  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
 16B50..16B59  ; Numeric # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Numeric # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 1E140..1E149  ; Numeric # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
 1E2F0..1E2F9  ; Numeric # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9  ; Numeric # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E950..1E959  ; Numeric # Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
 1FBF0..1FBF9  ; Numeric # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 
-# Total code points: 662
+# Total code points: 682
 
 # ================================================
 
@@ -2664,6 +2693,7 @@ FF61          ; STerm # Po       HALFWID
 11A9B..11A9C  ; STerm # Po   [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD
 11C41..11C42  ; STerm # Po   [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA
 11EF7..11EF8  ; STerm # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F44  ; STerm # Po   [2] KAWI DANDA..KAWI DOUBLE DANDA
 16A6E..16A6F  ; STerm # Po   [2] MRO DANDA..MRO DOUBLE DANDA
 16AF5         ; STerm # Po       BASSA VAH FULL STOP
 16B37..16B38  ; STerm # Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
@@ -2672,7 +2702,7 @@ FF61          ; STerm # Po       HALFWID
 1BC9F         ; STerm # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1DA88         ; STerm # Po       SIGNWRITING FULL STOP
 
-# Total code points: 149
+# Total code points: 151
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/WBTest.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/WBTest.txt,v
diff -u -p -a -u -p -r1.5 WBTest.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/WBTest.txt	15 Feb 2023 01:36:34 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/WBTest.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# WordBreakTest-14.0.0.txt
-# Date: 2021-03-08, 06:22:40 GMT
-# © 2021 Unicode®, Inc.
+# WordBreakTest-15.0.0.txt
+# Date: 2022-02-26, 00:39:00 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 #
 # Default Word_Break Test
 #
Index: gnu/usr.bin/perl/lib/unicore/auxiliary/WordBreakProperty.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/auxiliary/WordBreakProperty.txt,v
diff -u -p -a -u -p -r1.6 WordBreakProperty.txt
--- gnu/usr.bin/perl/lib/unicore/auxiliary/WordBreakProperty.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/auxiliary/WordBreakProperty.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# WordBreakProperty-14.0.0.txt
-# Date: 2021-07-10, 00:35:32 GMT
-# © 2021 Unicode®, Inc.
+# WordBreakProperty-15.0.0.txt
+# Date: 2022-04-27, 02:41:26 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -180,6 +180,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10]
 0CCC..0CCD    ; Extend # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; Extend # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; Extend # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3          ; Extend # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; Extend # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; Extend # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3B..0D3C    ; Extend # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
@@ -203,7 +204,7 @@ FB46..FB4F    ; Hebrew_Letter # Lo  [10]
 0E47..0E4E    ; Extend # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; Extend # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; Extend # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; Extend # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Extend # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; Extend # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; Extend # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Extend # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -407,6 +408,7 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 10AE5..10AE6  ; Extend # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; Extend # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; Extend # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; Extend # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Extend # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Extend # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11000         ; Extend # Mc       BRAHMI SIGN CANDRABINDU
@@ -443,6 +445,7 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 11235         ; Extend # Mc       KHOJKI SIGN VIRAMA
 11236..11237  ; Extend # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; Extend # Mn       KHOJKI SIGN SUKUN
+11241         ; Extend # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Extend # Mn       KHUDAWADI SIGN ANUSVARA
 112E0..112E2  ; Extend # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
 112E3..112EA  ; Extend # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
@@ -552,6 +555,16 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 11D97         ; Extend # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; Extend # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; Extend # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; Extend # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03         ; Extend # Mc       KAWI SIGN VISARGA
+11F34..11F35  ; Extend # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; Extend # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; Extend # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; Extend # Mn       KAWI VOWEL SIGN EU
+11F41         ; Extend # Mc       KAWI SIGN KILLER
+11F42         ; Extend # Mn       KAWI CONJOINER
+13440         ; Extend # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; Extend # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Extend # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Extend # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; Extend # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -580,16 +593,18 @@ FF9E..FF9F    ; Extend # Lm   [2] HALFWI
 1E01B..1E021  ; Extend # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Extend # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Extend # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; Extend # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; Extend # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; Extend # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Extend # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; Extend # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; Extend # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; Extend # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 1F3FB..1F3FF  ; Extend # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 E0020..E007F  ; Extend # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2512
+# Total code points: 2554
 
 # ================================================
 
@@ -615,12 +630,12 @@ FEFF          ; Format # Cf       ZERO W
 FFF9..FFFB    ; Format # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Format # Cf       KAITHI NUMBER SIGN
 110CD         ; Format # Cf       KAITHI NUMBER SIGN ABOVE
-13430..13438  ; Format # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F  ; Format # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
 1BCA0..1BCA3  ; Format # Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Format # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0001         ; Format # Cf       LANGUAGE TAG
 
-# Total code points: 64
+# Total code points: 71
 
 # ================================================
 
@@ -641,9 +656,10 @@ FF71..FF9D    ; Katakana # Lo  [45] HALF
 1AFFD..1AFFE  ; Katakana # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000         ; Katakana # Lo       KATAKANA LETTER ARCHAIC E
 1B120..1B122  ; Katakana # Lo   [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
+1B155         ; Katakana # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Katakana # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 
-# Total code points: 330
+# Total code points: 331
 
 # ================================================
 
@@ -1127,6 +1143,7 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFW
 111DC         ; ALetter # Lo       SHARADA HEADSTROKE
 11200..11211  ; ALetter # Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
 11213..1122B  ; ALetter # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240  ; ALetter # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; ALetter # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; ALetter # Lo       MULTANI LETTER GHA
 1128A..1128D  ; ALetter # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1187,12 +1204,16 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFW
 11D6A..11D89  ; ALetter # Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
 11D98         ; ALetter # Lo       GUNJALA GONDI OM
 11EE0..11EF2  ; ALetter # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02         ; ALetter # Lo       KAWI SIGN REPHA
+11F04..11F10  ; ALetter # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; ALetter # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
 11FB0         ; ALetter # Lo       LISU LETTER YHA
 12000..12399  ; ALetter # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12400..1246E  ; ALetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 12480..12543  ; ALetter # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; ALetter # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; ALetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; ALetter # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; ALetter # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; ALetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; ALetter # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -1245,11 +1266,15 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFW
 1DF00..1DF09  ; ALetter # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; ALetter # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; ALetter # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; ALetter # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; ALetter # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; ALetter # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; ALetter # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E14E         ; ALetter # Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E290..1E2AD  ; ALetter # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; ALetter # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; ALetter # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; ALetter # Lm       NAG MUNDARI SIGN OJOD
 1E7E0..1E7E6  ; ALetter # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; ALetter # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; ALetter # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1294,7 +1319,7 @@ FFDA..FFDC    ; ALetter # Lo   [3] HALFW
 1F150..1F169  ; ALetter # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
 1F170..1F189  ; ALetter # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
 
-# Total code points: 29336
+# Total code points: 29489
 
 # ================================================
 
@@ -1398,16 +1423,18 @@ FF10..FF19    ; Numeric # Nd  [10] FULLW
 11C50..11C59  ; Numeric # Nd  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
 11D50..11D59  ; Numeric # Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11DA0..11DA9  ; Numeric # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59  ; Numeric # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 16A60..16A69  ; Numeric # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
 16AC0..16AC9  ; Numeric # Nd  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
 16B50..16B59  ; Numeric # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Numeric # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 1E140..1E149  ; Numeric # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
 1E2F0..1E2F9  ; Numeric # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9  ; Numeric # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E950..1E959  ; Numeric # Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
 1FBF0..1FBF9  ; Numeric # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 
-# Total code points: 661
+# Total code points: 681
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/emoji/emoji.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/emoji/emoji.txt,v
diff -u -p -a -u -p -r1.1.1.2 emoji.txt
--- gnu/usr.bin/perl/lib/unicore/emoji/emoji.txt	15 Feb 2023 01:33:08 -0000	1.1.1.2
+++ gnu/usr.bin/perl/lib/unicore/emoji/emoji.txt	21 Feb 2024 15:47:02 -0000
@@ -1,13 +1,13 @@
-# emoji-data-14.0.0.txt
-# Date: 2021-08-26, 17:22:22 GMT
-# © 2021 Unicode®, Inc.
+# emoji-data.txt
+# Date: 2022-08-02, 00:26:10 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Emoji Data for UTS #51
-# Used with Emoji Version 14.0 and subsequent minor revisions (if any)
+# Used with Emoji Version 15.0 and subsequent minor revisions (if any)
 #
-# For documentation and usage, see http://www.unicode.org/reports/tr51
+# For documentation and usage, see https://www.unicode.org/reports/tr51
 #
 # Format: 
 # <codepoint(s)> ; <property> # <comments> 
@@ -19,8 +19,7 @@
 
 # ================================================
 
-# All omitted code points have Emoji=No 
-# @missing: 0000..10FFFF  ; Emoji ; No
+# All omitted code points have Emoji=No
 
 0023          ; Emoji                # E0.0   [1] (#️)       hash sign
 002A          ; Emoji                # E0.0   [1] (*️)       asterisk
@@ -341,6 +340,7 @@
 1F6D1..1F6D2  ; Emoji                # E3.0   [2] (🛑..🛒)    stop sign..shopping cart
 1F6D5         ; Emoji                # E12.0  [1] (🛕)       hindu temple
 1F6D6..1F6D7  ; Emoji                # E13.0  [2] (🛖..🛗)    hut..elevator
+1F6DC         ; Emoji                # E15.0  [1] (🛜)       wireless
 1F6DD..1F6DF  ; Emoji                # E14.0  [3] (🛝..🛟)    playground slide..ring buoy
 1F6E0..1F6E5  ; Emoji                # E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
 1F6E9         ; Emoji                # E0.7   [1] (🛩️)       small airplane
@@ -401,28 +401,36 @@
 1F9E7..1F9FF  ; Emoji                # E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
 1FA70..1FA73  ; Emoji                # E12.0  [4] (🩰..🩳)    ballet shoes..shorts
 1FA74         ; Emoji                # E13.0  [1] (🩴)       thong sandal
+1FA75..1FA77  ; Emoji                # E15.0  [3] (🩵..🩷)    light blue heart..pink heart
 1FA78..1FA7A  ; Emoji                # E12.0  [3] (🩸..🩺)    drop of blood..stethoscope
 1FA7B..1FA7C  ; Emoji                # E14.0  [2] (🩻..🩼)    x-ray..crutch
 1FA80..1FA82  ; Emoji                # E12.0  [3] (🪀..🪂)    yo-yo..parachute
 1FA83..1FA86  ; Emoji                # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
+1FA87..1FA88  ; Emoji                # E15.0  [2] (🪇..🪈)    maracas..flute
 1FA90..1FA95  ; Emoji                # E12.0  [6] (🪐..🪕)    ringed planet..banjo
 1FA96..1FAA8  ; Emoji                # E13.0 [19] (🪖..🪨)    military helmet..rock
 1FAA9..1FAAC  ; Emoji                # E14.0  [4] (🪩..🪬)    mirror ball..hamsa
+1FAAD..1FAAF  ; Emoji                # E15.0  [3] (🪭..🪯)    folding hand fan..khanda
 1FAB0..1FAB6  ; Emoji                # E13.0  [7] (🪰..🪶)    fly..feather
 1FAB7..1FABA  ; Emoji                # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
+1FABB..1FABD  ; Emoji                # E15.0  [3] (🪻..🪽)    hyacinth..wing
+1FABF         ; Emoji                # E15.0  [1] (🪿)       goose
 1FAC0..1FAC2  ; Emoji                # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
 1FAC3..1FAC5  ; Emoji                # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+1FACE..1FACF  ; Emoji                # E15.0  [2] (🫎..🫏)    moose..donkey
 1FAD0..1FAD6  ; Emoji                # E13.0  [7] (🫐..🫖)    blueberries..teapot
 1FAD7..1FAD9  ; Emoji                # E14.0  [3] (🫗..🫙)    pouring liquid..jar
+1FADA..1FADB  ; Emoji                # E15.0  [2] (🫚..🫛)    ginger root..pea pod
 1FAE0..1FAE7  ; Emoji                # E14.0  [8] (🫠..🫧)    melting face..bubbles
+1FAE8         ; Emoji                # E15.0  [1] (🫨)       shaking face
 1FAF0..1FAF6  ; Emoji                # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8  ; Emoji                # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
 
-# Total elements: 1404
+# Total elements: 1424
 
 # ================================================
 
-# All omitted code points have Emoji_Presentation=No 
-# @missing: 0000..10FFFF  ; Emoji_Presentation ; No
+# All omitted code points have Emoji_Presentation=No
 
 231A..231B    ; Emoji_Presentation   # E0.6   [2] (⌚..⌛)    watch..hourglass done
 23E9..23EC    ; Emoji_Presentation   # E0.6   [4] (⏩..⏬)    fast-forward button..fast down button
@@ -625,6 +633,7 @@
 1F6D1..1F6D2  ; Emoji_Presentation   # E3.0   [2] (🛑..🛒)    stop sign..shopping cart
 1F6D5         ; Emoji_Presentation   # E12.0  [1] (🛕)       hindu temple
 1F6D6..1F6D7  ; Emoji_Presentation   # E13.0  [2] (🛖..🛗)    hut..elevator
+1F6DC         ; Emoji_Presentation   # E15.0  [1] (🛜)       wireless
 1F6DD..1F6DF  ; Emoji_Presentation   # E14.0  [3] (🛝..🛟)    playground slide..ring buoy
 1F6EB..1F6EC  ; Emoji_Presentation   # E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
 1F6F4..1F6F6  ; Emoji_Presentation   # E3.0   [3] (🛴..🛶)    kick scooter..canoe
@@ -681,28 +690,36 @@
 1F9E7..1F9FF  ; Emoji_Presentation   # E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
 1FA70..1FA73  ; Emoji_Presentation   # E12.0  [4] (🩰..🩳)    ballet shoes..shorts
 1FA74         ; Emoji_Presentation   # E13.0  [1] (🩴)       thong sandal
+1FA75..1FA77  ; Emoji_Presentation   # E15.0  [3] (🩵..🩷)    light blue heart..pink heart
 1FA78..1FA7A  ; Emoji_Presentation   # E12.0  [3] (🩸..🩺)    drop of blood..stethoscope
 1FA7B..1FA7C  ; Emoji_Presentation   # E14.0  [2] (🩻..🩼)    x-ray..crutch
 1FA80..1FA82  ; Emoji_Presentation   # E12.0  [3] (🪀..🪂)    yo-yo..parachute
 1FA83..1FA86  ; Emoji_Presentation   # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
+1FA87..1FA88  ; Emoji_Presentation   # E15.0  [2] (🪇..🪈)    maracas..flute
 1FA90..1FA95  ; Emoji_Presentation   # E12.0  [6] (🪐..🪕)    ringed planet..banjo
 1FA96..1FAA8  ; Emoji_Presentation   # E13.0 [19] (🪖..🪨)    military helmet..rock
 1FAA9..1FAAC  ; Emoji_Presentation   # E14.0  [4] (🪩..🪬)    mirror ball..hamsa
+1FAAD..1FAAF  ; Emoji_Presentation   # E15.0  [3] (🪭..🪯)    folding hand fan..khanda
 1FAB0..1FAB6  ; Emoji_Presentation   # E13.0  [7] (🪰..🪶)    fly..feather
 1FAB7..1FABA  ; Emoji_Presentation   # E14.0  [4] (🪷..🪺)    lotus..nest with eggs
+1FABB..1FABD  ; Emoji_Presentation   # E15.0  [3] (🪻..🪽)    hyacinth..wing
+1FABF         ; Emoji_Presentation   # E15.0  [1] (🪿)       goose
 1FAC0..1FAC2  ; Emoji_Presentation   # E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
 1FAC3..1FAC5  ; Emoji_Presentation   # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
+1FACE..1FACF  ; Emoji_Presentation   # E15.0  [2] (🫎..🫏)    moose..donkey
 1FAD0..1FAD6  ; Emoji_Presentation   # E13.0  [7] (🫐..🫖)    blueberries..teapot
 1FAD7..1FAD9  ; Emoji_Presentation   # E14.0  [3] (🫗..🫙)    pouring liquid..jar
+1FADA..1FADB  ; Emoji_Presentation   # E15.0  [2] (🫚..🫛)    ginger root..pea pod
 1FAE0..1FAE7  ; Emoji_Presentation   # E14.0  [8] (🫠..🫧)    melting face..bubbles
+1FAE8         ; Emoji_Presentation   # E15.0  [1] (🫨)       shaking face
 1FAF0..1FAF6  ; Emoji_Presentation   # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8  ; Emoji_Presentation   # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
 
-# Total elements: 1185
+# Total elements: 1205
 
 # ================================================
 
-# All omitted code points have Emoji_Modifier=No 
-# @missing: 0000..10FFFF  ; Emoji_Modifier ; No
+# All omitted code points have Emoji_Modifier=No
 
 1F3FB..1F3FF  ; Emoji_Modifier       # E1.0   [5] (🏻..🏿)    light skin tone..dark skin tone
 
@@ -710,8 +727,7 @@
 
 # ================================================
 
-# All omitted code points have Emoji_Modifier_Base=No 
-# @missing: 0000..10FFFF  ; Emoji_Modifier_Base ; No
+# All omitted code points have Emoji_Modifier_Base=No
 
 261D          ; Emoji_Modifier_Base  # E0.6   [1] (☝️)       index pointing up
 26F9          ; Emoji_Modifier_Base  # E0.7   [1] (⛹️)       person bouncing ball
@@ -762,13 +778,13 @@
 1F9D1..1F9DD  ; Emoji_Modifier_Base  # E5.0  [13] (🧑..🧝)    person..elf
 1FAC3..1FAC5  ; Emoji_Modifier_Base  # E14.0  [3] (🫃..🫅)    pregnant man..person with crown
 1FAF0..1FAF6  ; Emoji_Modifier_Base  # E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8  ; Emoji_Modifier_Base  # E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
 
-# Total elements: 132
+# Total elements: 134
 
 # ================================================
 
-# All omitted code points have Emoji_Component=No 
-# @missing: 0000..10FFFF  ; Emoji_Component ; No
+# All omitted code points have Emoji_Component=No
 
 0023          ; Emoji_Component      # E0.0   [1] (#️)       hash sign
 002A          ; Emoji_Component      # E0.0   [1] (*️)       asterisk
@@ -785,8 +801,7 @@ E0020..E007F  ; Emoji_Component      # E
 
 # ================================================
 
-# All omitted code points have Extended_Pictographic=No 
-# @missing: 0000..10FFFF  ; Extended_Pictographic ; No
+# All omitted code points have Extended_Pictographic=No
 
 00A9          ; Extended_Pictographic# E0.6   [1] (©️)       copyright
 00AE          ; Extended_Pictographic# E0.6   [1] (®️)       registered
@@ -1190,7 +1205,8 @@ E0020..E007F  ; Emoji_Component      # E
 1F6D3..1F6D4  ; Extended_Pictographic# E0.0   [2] (🛓..🛔)    STUPA..PAGODA
 1F6D5         ; Extended_Pictographic# E12.0  [1] (🛕)       hindu temple
 1F6D6..1F6D7  ; Extended_Pictographic# E13.0  [2] (🛖..🛗)    hut..elevator
-1F6D8..1F6DC  ; Extended_Pictographic# E0.0   [5] (🛘..🛜)    <reserved-1F6D8>..<reserved-1F6DC>
+1F6D8..1F6DB  ; Extended_Pictographic# E0.0   [4] (🛘..🛛)    <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC         ; Extended_Pictographic# E15.0  [1] (🛜)       wireless
 1F6DD..1F6DF  ; Extended_Pictographic# E14.0  [3] (🛝..🛟)    playground slide..ring buoy
 1F6E0..1F6E5  ; Extended_Pictographic# E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
 1F6E6..1F6E8  ; Extended_Pictographic# E0.0   [3] (🛦..🛨)    UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
@@ -1207,7 +1223,7 @@ E0020..E007F  ; Emoji_Component      # E
 1F6FA         ; Extended_Pictographic# E12.0  [1] (🛺)       auto rickshaw
 1F6FB..1F6FC  ; Extended_Pictographic# E13.0  [2] (🛻..🛼)    pickup truck..roller skate
 1F6FD..1F6FF  ; Extended_Pictographic# E0.0   [3] (🛽..🛿)    <reserved-1F6FD>..<reserved-1F6FF>
-1F774..1F77F  ; Extended_Pictographic# E0.0  [12] (🝴..🝿)    <reserved-1F774>..<reserved-1F77F>
+1F774..1F77F  ; Extended_Pictographic# E0.0  [12] (🝴..🝿)    LOT OF FORTUNE..ORCUS
 1F7D5..1F7DF  ; Extended_Pictographic# E0.0  [11] (🟕..🟟)    CIRCLED TRIANGLE..<reserved-1F7DF>
 1F7E0..1F7EB  ; Extended_Pictographic# E12.0 [12] (🟠..🟫)    orange circle..brown square
 1F7EC..1F7EF  ; Extended_Pictographic# E0.0   [4] (🟬..🟯)    <reserved-1F7EC>..<reserved-1F7EF>
@@ -1266,30 +1282,37 @@ E0020..E007F  ; Emoji_Component      # E
 1FA00..1FA6F  ; Extended_Pictographic# E0.0 [112] (🨀..🩯)    NEUTRAL CHESS KING..<reserved-1FA6F>
 1FA70..1FA73  ; Extended_Pictographic# E12.0  [4] (🩰..🩳)    ballet shoes..shorts
 1FA74         ; Extended_Pictographic# E13.0  [1] (🩴)       thong sandal
-1FA75..1FA77  ; Extended_Pictographic# E0.0   [3] (🩵..🩷)    <reserved-1FA75>..<reserved-1FA77>
+1FA75..1FA77  ; Extended_Pictographic# E15.0  [3] (🩵..🩷)    light blue heart..pink heart
 1FA78..1FA7A  ; Extended_Pictographic# E12.0  [3] (🩸..🩺)    drop of blood..stethoscope
 1FA7B..1FA7C  ; Extended_Pictographic# E14.0  [2] (🩻..🩼)    x-ray..crutch
 1FA7D..1FA7F  ; Extended_Pictographic# E0.0   [3] (🩽..🩿)    <reserved-1FA7D>..<reserved-1FA7F>
 1FA80..1FA82  ; Extended_Pictographic# E12.0  [3] (🪀..🪂)    yo-yo..parachute
 1FA83..1FA86  ; Extended_Pictographic# E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
-1FA87..1FA8F  ; Extended_Pictographic# E0.0   [9] (🪇..🪏)    <reserved-1FA87>..<reserved-1FA8F>
+1FA87..1FA88  ; Extended_Pictographic# E15.0  [2] (🪇..🪈)    maracas..flute
+1FA89..1FA8F  ; Extended_Pictographic# E0.0   [7] (🪉..🪏)    <reserved-1FA89>..<reserved-1FA8F>
 1FA90..1FA95  ; Extended_Pictographic# E12.0  [6] (🪐..🪕)    ringed planet..banjo
 1FA96..1FAA8  ; Extended_Pictographic# E13.0 [19] (🪖..🪨)    military helmet..rock
 1FAA9..1FAAC  ; Extended_Pictographic# E14.0  [4] (🪩..🪬)    mirror ball..hamsa
-1FAAD..1FAAF  ; Extended_Pictographic# E0.0   [3] (🪭..🪯)    <reserved-1FAAD>..<reserved-1FAAF>
+1FAAD..1FAAF  ; Extended_Pictographic# E15.0  [3] (🪭..🪯)    folding hand fan..khanda
 1FAB0..1FAB6  ; Extended_Pictographic# E13.0  [7] (🪰..🪶)    fly..feather
 1FAB7..1FABA  ; Extended_Pictographic# E14.0  [4] (🪷..🪺)    lotus..nest with eggs
-1FABB..1FABF  ; Extended_Pictographic# E0.0   [5] (🪻..🪿)    <reserved-1FABB>..<reserved-1FABF>
+1FABB..1FABD  ; Extended_Pictographic# E15.0  [3] (🪻..🪽)    hyacinth..wing
+1FABE         ; Extended_Pictographic# E0.0   [1] (🪾)       <reserved-1FABE>
+1FABF         ; Extended_Pictographic# E15.0  [1] (🪿)       goose
 1FAC0..1FAC2  ; Extended_Pictographic# E13.0  [3] (🫀..🫂)    anatomical heart..people hugging
 1FAC3..1FAC5  ; Extended_Pictographic# E14.0  [3] (🫃..🫅)    pregnant man..person with crown
-1FAC6..1FACF  ; Extended_Pictographic# E0.0  [10] (🫆..🫏)    <reserved-1FAC6>..<reserved-1FACF>
+1FAC6..1FACD  ; Extended_Pictographic# E0.0   [8] (🫆..🫍)    <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FACF  ; Extended_Pictographic# E15.0  [2] (🫎..🫏)    moose..donkey
 1FAD0..1FAD6  ; Extended_Pictographic# E13.0  [7] (🫐..🫖)    blueberries..teapot
 1FAD7..1FAD9  ; Extended_Pictographic# E14.0  [3] (🫗..🫙)    pouring liquid..jar
-1FADA..1FADF  ; Extended_Pictographic# E0.0   [6] (🫚..🫟)    <reserved-1FADA>..<reserved-1FADF>
+1FADA..1FADB  ; Extended_Pictographic# E15.0  [2] (🫚..🫛)    ginger root..pea pod
+1FADC..1FADF  ; Extended_Pictographic# E0.0   [4] (🫜..🫟)    <reserved-1FADC>..<reserved-1FADF>
 1FAE0..1FAE7  ; Extended_Pictographic# E14.0  [8] (🫠..🫧)    melting face..bubbles
-1FAE8..1FAEF  ; Extended_Pictographic# E0.0   [8] (🫨..🫯)    <reserved-1FAE8>..<reserved-1FAEF>
+1FAE8         ; Extended_Pictographic# E15.0  [1] (🫨)       shaking face
+1FAE9..1FAEF  ; Extended_Pictographic# E0.0   [7] (🫩..🫯)    <reserved-1FAE9>..<reserved-1FAEF>
 1FAF0..1FAF6  ; Extended_Pictographic# E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands
-1FAF7..1FAFF  ; Extended_Pictographic# E0.0   [9] (🫷..🫿)    <reserved-1FAF7>..<reserved-1FAFF>
+1FAF7..1FAF8  ; Extended_Pictographic# E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand
+1FAF9..1FAFF  ; Extended_Pictographic# E0.0   [7] (🫹..🫿)    <reserved-1FAF9>..<reserved-1FAFF>
 1FC00..1FFFD  ; Extended_Pictographic# E0.0[1022] (🰀..🿽)    <reserved-1FC00>..<reserved-1FFFD>
 
 # Total elements: 3537
Index: gnu/usr.bin/perl/lib/unicore/extracted/DBidiClass.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DBidiClass.txt,v
diff -u -p -a -u -p -r1.6 DBidiClass.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DBidiClass.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DBidiClass.txt	21 Feb 2024 15:47:02 -0000
@@ -1,36 +1,19 @@
-# DerivedBidiClass-14.0.0.txt
-# Date: 2021-07-10, 00:35:02 GMT
-# © 2021 Unicode®, Inc.
+# DerivedBidiClass-15.0.0.txt
+# Date: 2022-08-05, 17:39:24 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
 # Bidi Class (listing UnicodeData.txt, field 4: see UAX #44: https://www.unicode.org/reports/tr44/)
 # Unlike other properties, unassigned code points in blocks
-# reserved for right-to-left scripts are given either types R or AL.
-#
-# The unassigned code points that default to AL are in the ranges:
-#     [\u0600-\u07BF \u0860-\u08FF \uFB50-\uFDCF \uFDF0-\uFDFF \uFE70-\uFEFF
-#      \U00010D00-\U00010D3F \U00010F30-\U00010F6F
-#      \U0001EC70-\U0001ECBF \U0001ED00-\U0001ED4F \U0001EE00-\U0001EEFF]
-#
-#     This includes code points in the Arabic, Syriac, and Thaana blocks, among others.
-#
-# The unassigned code points that default to R are in the ranges:
-#     [\u0590-\u05FF \u07C0-\u085F \uFB1D-\uFB4F
-#      \U00010800-\U00010CFF \U00010D40-\U00010F2F \U00010F70-\U00010FFF
-#      \U0001E800-\U0001EC6F \U0001ECC0-\U0001ECFF \U0001ED50-\U0001EDFF \U0001EF00-\U0001EFFF]
-#
-#     This includes code points in the Hebrew, NKo, and Phoenician blocks, among others.
-#
-# The unassigned code points that default to ET are in the range:
-#     [\u20A0-\u20CF]
-#
-#     This consists of code points in the Currency Symbols block.
+# reserved for right-to-left scripts are given either values R or AL,
+# and unassigned code points in the Currency Symbols block are given the value ET.
+# For details see the @missing lines below.
 #
 # The unassigned code points that default to BN have one of the following properties:
 #     Default_Ignorable_Code_Point
@@ -43,6 +26,101 @@
 
 # @missing: 0000..10FFFF; Left_To_Right
 
+# 0590..05FF Hebrew
+# @missing: 0590..05FF; Right_To_Left
+
+# 0600..06FF Arabic
+# 0700..074F Syriac
+# 0750..077F Arabic_Supplement
+# 0780..07BF Thaana
+# @missing: 0600..07BF; Arabic_Letter
+
+# 07C0..07FF NKo
+# 0800..083F Samaritan
+# 0840..085F Mandaic
+# @missing: 07C0..085F; Right_To_Left
+
+# 0860..086F Syriac_Supplement
+# 0870..089F Arabic_Extended_B
+# 08A0..08FF Arabic_Extended_A
+# @missing: 0860..08FF; Arabic_Letter
+
+# 20A0..20CF Currency_Symbols
+# @missing: 20A0..20CF; European_Terminator
+
+# FB00..FB4F Alphabetic_Presentation_Forms (partial)
+# @missing: FB1D..FB4F; Right_To_Left
+
+# FB50..FDFF Arabic_Presentation_Forms_A (partial)
+# @missing: FB50..FDCF; Arabic_Letter
+
+# FB50..FDFF Arabic_Presentation_Forms_A (partial)
+# @missing: FDF0..FDFF; Arabic_Letter
+
+# FE70..FEFF Arabic_Presentation_Forms_B
+# @missing: FE70..FEFF; Arabic_Letter
+
+# 10800..1083F Cypriot_Syllabary
+# 10840..1085F Imperial_Aramaic
+# 10860..1087F Palmyrene
+# 10880..108AF Nabataean
+# 108E0..108FF Hatran
+# 10900..1091F Phoenician
+# 10920..1093F Lydian
+# 10980..1099F Meroitic_Hieroglyphs
+# 109A0..109FF Meroitic_Cursive
+# 10A00..10A5F Kharoshthi
+# 10A60..10A7F Old_South_Arabian
+# 10A80..10A9F Old_North_Arabian
+# 10AC0..10AFF Manichaean
+# 10B00..10B3F Avestan
+# 10B40..10B5F Inscriptional_Parthian
+# 10B60..10B7F Inscriptional_Pahlavi
+# 10B80..10BAF Psalter_Pahlavi
+# 10C00..10C4F Old_Turkic
+# 10C80..10CFF Old_Hungarian
+# @missing: 10800..10CFF; Right_To_Left
+
+# 10D00..10D3F Hanifi_Rohingya
+# @missing: 10D00..10D3F; Arabic_Letter
+
+# 10E60..10E7F Rumi_Numeral_Symbols
+# 10E80..10EBF Yezidi
+# @missing: 10D40..10EBF; Right_To_Left
+
+# 10EC0..10EFF Arabic_Extended_C
+# @missing: 10EC0..10EFF; Arabic_Letter
+
+# 10F00..10F2F Old_Sogdian
+# @missing: 10F00..10F2F; Right_To_Left
+
+# 10F30..10F6F Sogdian
+# @missing: 10F30..10F6F; Arabic_Letter
+
+# 10F70..10FAF Old_Uyghur
+# 10FB0..10FDF Chorasmian
+# 10FE0..10FFF Elymaic
+# @missing: 10F70..10FFF; Right_To_Left
+
+# 1E800..1E8DF Mende_Kikakui
+# 1E900..1E95F Adlam
+# @missing: 1E800..1EC6F; Right_To_Left
+
+# 1EC70..1ECBF Indic_Siyaq_Numbers
+# @missing: 1EC70..1ECBF; Arabic_Letter
+
+# @missing: 1ECC0..1ECFF; Right_To_Left
+
+# 1ED00..1ED4F Ottoman_Siyaq_Numbers
+# @missing: 1ED00..1ED4F; Arabic_Letter
+
+# @missing: 1ED50..1EDFF; Right_To_Left
+
+# 1EE00..1EEFF Arabic_Mathematical_Alphabetic_Symbols
+# @missing: 1EE00..1EEFF; Arabic_Letter
+
+# @missing: 1EF00..1EFFF; Right_To_Left
+
 # ================================================
 
 # Bidi_Class=Left_To_Right
@@ -219,6 +297,7 @@
 0CE0..0CE1    ; L # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
 0CE6..0CEF    ; L # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; L # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; L # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D02..0D03    ; L # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; L # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
 0D0E..0D10    ; L # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -795,6 +874,7 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 11232..11233  ; L # Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
 11235         ; L # Mc       KHOJKI SIGN VIRAMA
 11238..1123D  ; L # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+1123F..11240  ; L # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; L # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; L # Lo       MULTANI LETTER GHA
 1128A..1128D  ; L # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -910,6 +990,7 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 11A9D         ; L # Lo       SOYOMBO MARK PLUTA
 11A9E..11AA2  ; L # Po   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
 11AB0..11AF8  ; L # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09  ; L # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08  ; L # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E  ; L # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F         ; L # Mc       BHAIKSUKI VOWEL SIGN AA
@@ -940,6 +1021,15 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 11EE0..11EF2  ; L # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
 11EF5..11EF6  ; L # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8  ; L # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F02         ; L # Lo       KAWI SIGN REPHA
+11F03         ; L # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; L # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; L # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; L # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F3E..11F3F  ; L # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F41         ; L # Mc       KAWI SIGN KILLER
+11F43..11F4F  ; L # Po  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59  ; L # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0         ; L # Lo       LISU LETTER YHA
 11FC0..11FD4  ; L # No  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FFF         ; L # Po       TAMIL PUNCTUATION END OF TEXT
@@ -949,8 +1039,9 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 12480..12543  ; L # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; L # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 12FF1..12FF2  ; L # Po   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E  ; L # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438  ; L # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F  ; L # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F  ; L # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13441..13446  ; L # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; L # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; L # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; L # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -987,7 +1078,9 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 1AFF5..1AFFB  ; L # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; L # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; L # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; L # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; L # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; L # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; L # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; L # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; L # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -1006,6 +1099,7 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 1D183..1D184  ; L # So   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
 1D18C..1D1A9  ; L # So  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
 1D1AE..1D1E8  ; L # So  [59] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D2C0..1D2D3  ; L # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; L # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D360..1D378  ; L # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
 1D400..1D454  ; L # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
@@ -1052,6 +1146,8 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 1DF00..1DF09  ; L # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; L # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; L # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; L # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; L # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; L # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; L # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E140..1E149  ; L # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
@@ -1060,6 +1156,9 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 1E290..1E2AD  ; L # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; L # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
 1E2F0..1E2F9  ; L # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4D0..1E4EA  ; L # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; L # Lm       NAG MUNDARI SIGN OJOD
+1E4F0..1E4F9  ; L # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6  ; L # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; L # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; L # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1072,188 +1171,124 @@ FFDA..FFDC    ; L # Lo   [3] HALFWIDTH H
 1F240..1F248  ; L # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250..1F251  ; L # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
 20000..2A6DF  ; L # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; L # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; L # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; L # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; L # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; L # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; L # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; L # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; L # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 F0000..FFFFD  ; L # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 100000..10FFFD; L # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
-# The above property value applies to 825575 code points not listed here.
-# Total code points: 1096333
+# The above property value applies to 821089 code points not listed here.
+# Total code points: 1096272
 
 # ================================================
 
 # Bidi_Class=Right_To_Left
 
-0590          ; R # Cn       <reserved-0590>
 05BE          ; R # Pd       HEBREW PUNCTUATION MAQAF
 05C0          ; R # Po       HEBREW PUNCTUATION PASEQ
 05C3          ; R # Po       HEBREW PUNCTUATION SOF PASUQ
 05C6          ; R # Po       HEBREW PUNCTUATION NUN HAFUKHA
-05C8..05CF    ; R # Cn   [8] <reserved-05C8>..<reserved-05CF>
 05D0..05EA    ; R # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
-05EB..05EE    ; R # Cn   [4] <reserved-05EB>..<reserved-05EE>
 05EF..05F2    ; R # Lo   [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
 05F3..05F4    ; R # Po   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-05F5..05FF    ; R # Cn  [11] <reserved-05F5>..<reserved-05FF>
 07C0..07C9    ; R # Nd  [10] NKO DIGIT ZERO..NKO DIGIT NINE
 07CA..07EA    ; R # Lo  [33] NKO LETTER A..NKO LETTER JONA RA
 07F4..07F5    ; R # Lm   [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
 07FA          ; R # Lm       NKO LAJANYALAN
-07FB..07FC    ; R # Cn   [2] <reserved-07FB>..<reserved-07FC>
 07FE..07FF    ; R # Sc   [2] NKO DOROME SIGN..NKO TAMAN SIGN
 0800..0815    ; R # Lo  [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
 081A          ; R # Lm       SAMARITAN MODIFIER LETTER EPENTHETIC YUT
 0824          ; R # Lm       SAMARITAN MODIFIER LETTER SHORT A
 0828          ; R # Lm       SAMARITAN MODIFIER LETTER I
-082E..082F    ; R # Cn   [2] <reserved-082E>..<reserved-082F>
 0830..083E    ; R # Po  [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
-083F          ; R # Cn       <reserved-083F>
 0840..0858    ; R # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-085C..085D    ; R # Cn   [2] <reserved-085C>..<reserved-085D>
 085E          ; R # Po       MANDAIC PUNCTUATION
-085F          ; R # Cn       <reserved-085F>
 200F          ; R # Cf       RIGHT-TO-LEFT MARK
 FB1D          ; R # Lo       HEBREW LETTER YOD WITH HIRIQ
 FB1F..FB28    ; R # Lo  [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
 FB2A..FB36    ; R # Lo  [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
-FB37          ; R # Cn       <reserved-FB37>
 FB38..FB3C    ; R # Lo   [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
-FB3D          ; R # Cn       <reserved-FB3D>
 FB3E          ; R # Lo       HEBREW LETTER MEM WITH DAGESH
-FB3F          ; R # Cn       <reserved-FB3F>
 FB40..FB41    ; R # Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
-FB42          ; R # Cn       <reserved-FB42>
 FB43..FB44    ; R # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
-FB45          ; R # Cn       <reserved-FB45>
 FB46..FB4F    ; R # Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
 10800..10805  ; R # Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
-10806..10807  ; R # Cn   [2] <reserved-10806>..<reserved-10807>
 10808         ; R # Lo       CYPRIOT SYLLABLE JO
-10809         ; R # Cn       <reserved-10809>
 1080A..10835  ; R # Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
-10836         ; R # Cn       <reserved-10836>
 10837..10838  ; R # Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
-10839..1083B  ; R # Cn   [3] <reserved-10839>..<reserved-1083B>
 1083C         ; R # Lo       CYPRIOT SYLLABLE ZA
-1083D..1083E  ; R # Cn   [2] <reserved-1083D>..<reserved-1083E>
 1083F..10855  ; R # Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
-10856         ; R # Cn       <reserved-10856>
 10857         ; R # Po       IMPERIAL ARAMAIC SECTION SIGN
 10858..1085F  ; R # No   [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
 10860..10876  ; R # Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
 10877..10878  ; R # So   [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
 10879..1087F  ; R # No   [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
 10880..1089E  ; R # Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
-1089F..108A6  ; R # Cn   [8] <reserved-1089F>..<reserved-108A6>
 108A7..108AF  ; R # No   [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
-108B0..108DF  ; R # Cn  [48] <reserved-108B0>..<reserved-108DF>
 108E0..108F2  ; R # Lo  [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
-108F3         ; R # Cn       <reserved-108F3>
 108F4..108F5  ; R # Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
-108F6..108FA  ; R # Cn   [5] <reserved-108F6>..<reserved-108FA>
 108FB..108FF  ; R # No   [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
 10900..10915  ; R # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
 10916..1091B  ; R # No   [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
-1091C..1091E  ; R # Cn   [3] <reserved-1091C>..<reserved-1091E>
 10920..10939  ; R # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
-1093A..1093E  ; R # Cn   [5] <reserved-1093A>..<reserved-1093E>
 1093F         ; R # Po       LYDIAN TRIANGULAR MARK
-10940..1097F  ; R # Cn  [64] <reserved-10940>..<reserved-1097F>
 10980..109B7  ; R # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
-109B8..109BB  ; R # Cn   [4] <reserved-109B8>..<reserved-109BB>
 109BC..109BD  ; R # No   [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
 109BE..109BF  ; R # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
 109C0..109CF  ; R # No  [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
-109D0..109D1  ; R # Cn   [2] <reserved-109D0>..<reserved-109D1>
 109D2..109FF  ; R # No  [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
 10A00         ; R # Lo       KHAROSHTHI LETTER A
-10A04         ; R # Cn       <reserved-10A04>
-10A07..10A0B  ; R # Cn   [5] <reserved-10A07>..<reserved-10A0B>
 10A10..10A13  ; R # Lo   [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
-10A14         ; R # Cn       <reserved-10A14>
 10A15..10A17  ; R # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
-10A18         ; R # Cn       <reserved-10A18>
 10A19..10A35  ; R # Lo  [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
-10A36..10A37  ; R # Cn   [2] <reserved-10A36>..<reserved-10A37>
-10A3B..10A3E  ; R # Cn   [4] <reserved-10A3B>..<reserved-10A3E>
 10A40..10A48  ; R # No   [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
-10A49..10A4F  ; R # Cn   [7] <reserved-10A49>..<reserved-10A4F>
 10A50..10A58  ; R # Po   [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
-10A59..10A5F  ; R # Cn   [7] <reserved-10A59>..<reserved-10A5F>
 10A60..10A7C  ; R # Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
 10A7D..10A7E  ; R # No   [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
 10A7F         ; R # Po       OLD SOUTH ARABIAN NUMERIC INDICATOR
 10A80..10A9C  ; R # Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
 10A9D..10A9F  ; R # No   [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
-10AA0..10ABF  ; R # Cn  [32] <reserved-10AA0>..<reserved-10ABF>
 10AC0..10AC7  ; R # Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
 10AC8         ; R # So       MANICHAEAN SIGN UD
 10AC9..10AE4  ; R # Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
-10AE7..10AEA  ; R # Cn   [4] <reserved-10AE7>..<reserved-10AEA>
 10AEB..10AEF  ; R # No   [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
 10AF0..10AF6  ; R # Po   [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
-10AF7..10AFF  ; R # Cn   [9] <reserved-10AF7>..<reserved-10AFF>
 10B00..10B35  ; R # Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE
-10B36..10B38  ; R # Cn   [3] <reserved-10B36>..<reserved-10B38>
 10B40..10B55  ; R # Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
-10B56..10B57  ; R # Cn   [2] <reserved-10B56>..<reserved-10B57>
 10B58..10B5F  ; R # No   [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
 10B60..10B72  ; R # Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
-10B73..10B77  ; R # Cn   [5] <reserved-10B73>..<reserved-10B77>
 10B78..10B7F  ; R # No   [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
 10B80..10B91  ; R # Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
-10B92..10B98  ; R # Cn   [7] <reserved-10B92>..<reserved-10B98>
 10B99..10B9C  ; R # Po   [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
-10B9D..10BA8  ; R # Cn  [12] <reserved-10B9D>..<reserved-10BA8>
 10BA9..10BAF  ; R # No   [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
-10BB0..10BFF  ; R # Cn  [80] <reserved-10BB0>..<reserved-10BFF>
 10C00..10C48  ; R # Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
-10C49..10C7F  ; R # Cn  [55] <reserved-10C49>..<reserved-10C7F>
 10C80..10CB2  ; R # L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
-10CB3..10CBF  ; R # Cn  [13] <reserved-10CB3>..<reserved-10CBF>
 10CC0..10CF2  ; R # L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
-10CF3..10CF9  ; R # Cn   [7] <reserved-10CF3>..<reserved-10CF9>
 10CFA..10CFF  ; R # No   [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
-10D40..10E5F  ; R # Cn [288] <reserved-10D40>..<reserved-10E5F>
-10E7F         ; R # Cn       <reserved-10E7F>
 10E80..10EA9  ; R # Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
-10EAA         ; R # Cn       <reserved-10EAA>
 10EAD         ; R # Pd       YEZIDI HYPHENATION MARK
-10EAE..10EAF  ; R # Cn   [2] <reserved-10EAE>..<reserved-10EAF>
 10EB0..10EB1  ; R # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
-10EB2..10EFF  ; R # Cn  [78] <reserved-10EB2>..<reserved-10EFF>
 10F00..10F1C  ; R # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F1D..10F26  ; R # No  [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
 10F27         ; R # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
-10F28..10F2F  ; R # Cn   [8] <reserved-10F28>..<reserved-10F2F>
 10F70..10F81  ; R # Lo  [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
 10F86..10F89  ; R # Po   [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
-10F8A..10FAF  ; R # Cn  [38] <reserved-10F8A>..<reserved-10FAF>
 10FB0..10FC4  ; R # Lo  [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
 10FC5..10FCB  ; R # No   [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
-10FCC..10FDF  ; R # Cn  [20] <reserved-10FCC>..<reserved-10FDF>
 10FE0..10FF6  ; R # Lo  [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
-10FF7..10FFF  ; R # Cn   [9] <reserved-10FF7>..<reserved-10FFF>
 1E800..1E8C4  ; R # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
-1E8C5..1E8C6  ; R # Cn   [2] <reserved-1E8C5>..<reserved-1E8C6>
 1E8C7..1E8CF  ; R # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
-1E8D7..1E8FF  ; R # Cn  [41] <reserved-1E8D7>..<reserved-1E8FF>
 1E900..1E943  ; R # L&  [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
 1E94B         ; R # Lm       ADLAM NASALIZATION MARK
-1E94C..1E94F  ; R # Cn   [4] <reserved-1E94C>..<reserved-1E94F>
 1E950..1E959  ; R # Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
-1E95A..1E95D  ; R # Cn   [4] <reserved-1E95A>..<reserved-1E95D>
 1E95E..1E95F  ; R # Po   [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
-1E960..1EC6F  ; R # Cn [784] <reserved-1E960>..<reserved-1EC6F>
-1ECC0..1ECFF  ; R # Cn  [64] <reserved-1ECC0>..<reserved-1ECFF>
-1ED50..1EDFF  ; R # Cn [176] <reserved-1ED50>..<reserved-1EDFF>
-1EF00..1EFFF  ; R # Cn [256] <reserved-1EF00>..<reserved-1EFFF>
 
-# Total code points: 3711
+# The above property value applies to 2156 code points not listed here.
+# Total code points: 3647
 
 # ================================================
 
@@ -1313,7 +1348,6 @@ FF0D          ; ES # Pd       FULLWIDTH 
 17DB          ; ET # Sc       KHMER CURRENCY SYMBOL RIEL
 2030..2034    ; ET # Po   [5] PER MILLE SIGN..TRIPLE PRIME
 20A0..20C0    ; ET # Sc  [33] EURO-CURRENCY SIGN..SOM SIGN
-20C1..20CF    ; ET # Cn  [15] <reserved-20C1>..<reserved-20CF>
 212E          ; ET # So       ESTIMATED SYMBOL
 2213          ; ET # Sm       MINUS-OR-PLUS SIGN
 A838          ; ET # Sc       NORTH INDIC RUPEE MARK
@@ -1329,6 +1363,7 @@ FFE5..FFE6    ; ET # Sc   [2] FULLWIDTH 
 11FDD..11FE0  ; ET # Sc   [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
 1E2FF         ; ET # Sc       WANCHO NGUN SIGN
 
+# The above property value applies to 15 code points not listed here.
 # Total code points: 92
 
 # ================================================
@@ -1887,10 +1922,10 @@ FFFC..FFFD    ; ON # So   [2] OBJECT REP
 1F300..1F3FA  ; ON # So [251] CYCLONE..AMPHORA
 1F3FB..1F3FF  ; ON # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 1F400..1F6D7  ; ON # So [728] RAT..ELEVATOR
-1F6DD..1F6EC  ; ON # So  [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6DC..1F6EC  ; ON # So  [17] WIRELESS..AIRPLANE ARRIVING
 1F6F0..1F6FC  ; ON # So  [13] SATELLITE..ROLLER SKATE
-1F700..1F773  ; ON # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8  ; ON # So  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776  ; ON # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9  ; ON # So  [95] HAUMEA..NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; ON # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0         ; ON # So       HEAVY EQUALS SIGN
 1F800..1F80B  ; ON # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -1901,19 +1936,17 @@ FFFC..FFFD    ; ON # So   [2] OBJECT REP
 1F8B0..1F8B1  ; ON # So   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
 1F900..1FA53  ; ON # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
 1FA60..1FA6D  ; ON # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74  ; ON # So   [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C  ; ON # So   [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86  ; ON # So   [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC  ; ON # So  [29] RINGED PLANET..HAMSA
-1FAB0..1FABA  ; ON # So  [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5  ; ON # So   [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9  ; ON # So  [10] BLUEBERRIES..JAR
-1FAE0..1FAE7  ; ON # So   [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6  ; ON # So   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C  ; ON # So  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; ON # So   [9] YO-YO..FLUTE
+1FA90..1FABD  ; ON # So  [46] RINGED PLANET..WING
+1FABF..1FAC5  ; ON # So   [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB  ; ON # So  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; ON # So   [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8  ; ON # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 1FB00..1FB92  ; ON # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; ON # So  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 
-# Total code points: 6000
+# Total code points: 6029
 
 # ================================================
 
@@ -2054,7 +2087,7 @@ FFFFE..FFFFF  ; BN # Cn   [2] <noncharac
 0E47..0E4E    ; NSM # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; NSM # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; NSM # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; NSM # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; NSM # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; NSM # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; NSM # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; NSM # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -2189,6 +2222,7 @@ FE20..FE2F    ; NSM # Mn  [16] COMBINING
 10AE5..10AE6  ; NSM # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; NSM # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; NSM # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; NSM # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; NSM # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; NSM # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11001         ; NSM # Mn       BRAHMI SIGN ANUSVARA
@@ -2211,6 +2245,7 @@ FE20..FE2F    ; NSM # Mn  [16] COMBINING
 11234         ; NSM # Mn       KHOJKI SIGN ANUSVARA
 11236..11237  ; NSM # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; NSM # Mn       KHOJKI SIGN SUKUN
+11241         ; NSM # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; NSM # Mn       KHUDAWADI SIGN ANUSVARA
 112E3..112EA  ; NSM # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
 11300..11301  ; NSM # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -2272,6 +2307,12 @@ FE20..FE2F    ; NSM # Mn  [16] COMBINING
 11D95         ; NSM # Mn       GUNJALA GONDI SIGN ANUSVARA
 11D97         ; NSM # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; NSM # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11F00..11F01  ; NSM # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A  ; NSM # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40         ; NSM # Mn       KAWI VOWEL SIGN EU
+11F42         ; NSM # Mn       KAWI CONJOINER
+13440         ; NSM # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; NSM # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; NSM # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; NSM # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; NSM # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -2296,14 +2337,16 @@ FE20..FE2F    ; NSM # Mn  [16] COMBINING
 1E01B..1E021  ; NSM # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; NSM # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; NSM # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; NSM # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; NSM # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; NSM # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; NSM # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; NSM # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; NSM # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; NSM # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 E0100..E01EF  ; NSM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1958
+# Total code points: 1993
 
 # ================================================
 
@@ -2329,125 +2372,74 @@ E0100..E01EF  ; NSM # Mn [240] VARIATION
 06FD..06FE    ; AL # So   [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
 06FF          ; AL # Lo       ARABIC LETTER HEH WITH INVERTED V
 0700..070D    ; AL # Po  [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
-070E          ; AL # Cn       <reserved-070E>
 070F          ; AL # Cf       SYRIAC ABBREVIATION MARK
 0710          ; AL # Lo       SYRIAC LETTER ALAPH
 0712..072F    ; AL # Lo  [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
-074B..074C    ; AL # Cn   [2] <reserved-074B>..<reserved-074C>
 074D..07A5    ; AL # Lo  [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
 07B1          ; AL # Lo       THAANA LETTER NAA
-07B2..07BF    ; AL # Cn  [14] <reserved-07B2>..<reserved-07BF>
 0860..086A    ; AL # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
-086B..086F    ; AL # Cn   [5] <reserved-086B>..<reserved-086F>
 0870..0887    ; AL # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
 0888          ; AL # Sk       ARABIC RAISED ROUND DOT
 0889..088E    ; AL # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
-088F          ; AL # Cn       <reserved-088F>
-0892..0897    ; AL # Cn   [6] <reserved-0892>..<reserved-0897>
 08A0..08C8    ; AL # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
 08C9          ; AL # Lm       ARABIC SMALL FARSI YEH
 FB50..FBB1    ; AL # Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
 FBB2..FBC2    ; AL # Sk  [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
-FBC3..FBD2    ; AL # Cn  [16] <reserved-FBC3>..<reserved-FBD2>
 FBD3..FD3D    ; AL # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
 FD50..FD8F    ; AL # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD90..FD91    ; AL # Cn   [2] <reserved-FD90>..<reserved-FD91>
 FD92..FDC7    ; AL # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDC8..FDCE    ; AL # Cn   [7] <reserved-FDC8>..<reserved-FDCE>
 FDF0..FDFB    ; AL # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
 FDFC          ; AL # Sc       RIAL SIGN
 FE70..FE74    ; AL # Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
-FE75          ; AL # Cn       <reserved-FE75>
 FE76..FEFC    ; AL # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFD..FEFE    ; AL # Cn   [2] <reserved-FEFD>..<reserved-FEFE>
 10D00..10D23  ; AL # Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
-10D28..10D2F  ; AL # Cn   [8] <reserved-10D28>..<reserved-10D2F>
-10D3A..10D3F  ; AL # Cn   [6] <reserved-10D3A>..<reserved-10D3F>
 10F30..10F45  ; AL # Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
 10F51..10F54  ; AL # No   [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
 10F55..10F59  ; AL # Po   [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
-10F5A..10F6F  ; AL # Cn  [22] <reserved-10F5A>..<reserved-10F6F>
-1EC70         ; AL # Cn       <reserved-1EC70>
 1EC71..1ECAB  ; AL # No  [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
 1ECAC         ; AL # So       INDIC SIYAQ PLACEHOLDER
 1ECAD..1ECAF  ; AL # No   [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
 1ECB0         ; AL # Sc       INDIC SIYAQ RUPEE MARK
 1ECB1..1ECB4  ; AL # No   [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
-1ECB5..1ECBF  ; AL # Cn  [11] <reserved-1ECB5>..<reserved-1ECBF>
-1ED00         ; AL # Cn       <reserved-1ED00>
 1ED01..1ED2D  ; AL # No  [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
 1ED2E         ; AL # So       OTTOMAN SIYAQ MARRATAN
 1ED2F..1ED3D  ; AL # No  [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
-1ED3E..1ED4F  ; AL # Cn  [18] <reserved-1ED3E>..<reserved-1ED4F>
 1EE00..1EE03  ; AL # Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
-1EE04         ; AL # Cn       <reserved-1EE04>
 1EE05..1EE1F  ; AL # Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
-1EE20         ; AL # Cn       <reserved-1EE20>
 1EE21..1EE22  ; AL # Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
-1EE23         ; AL # Cn       <reserved-1EE23>
 1EE24         ; AL # Lo       ARABIC MATHEMATICAL INITIAL HEH
-1EE25..1EE26  ; AL # Cn   [2] <reserved-1EE25>..<reserved-1EE26>
 1EE27         ; AL # Lo       ARABIC MATHEMATICAL INITIAL HAH
-1EE28         ; AL # Cn       <reserved-1EE28>
 1EE29..1EE32  ; AL # Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
-1EE33         ; AL # Cn       <reserved-1EE33>
 1EE34..1EE37  ; AL # Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
-1EE38         ; AL # Cn       <reserved-1EE38>
 1EE39         ; AL # Lo       ARABIC MATHEMATICAL INITIAL DAD
-1EE3A         ; AL # Cn       <reserved-1EE3A>
 1EE3B         ; AL # Lo       ARABIC MATHEMATICAL INITIAL GHAIN
-1EE3C..1EE41  ; AL # Cn   [6] <reserved-1EE3C>..<reserved-1EE41>
 1EE42         ; AL # Lo       ARABIC MATHEMATICAL TAILED JEEM
-1EE43..1EE46  ; AL # Cn   [4] <reserved-1EE43>..<reserved-1EE46>
 1EE47         ; AL # Lo       ARABIC MATHEMATICAL TAILED HAH
-1EE48         ; AL # Cn       <reserved-1EE48>
 1EE49         ; AL # Lo       ARABIC MATHEMATICAL TAILED YEH
-1EE4A         ; AL # Cn       <reserved-1EE4A>
 1EE4B         ; AL # Lo       ARABIC MATHEMATICAL TAILED LAM
-1EE4C         ; AL # Cn       <reserved-1EE4C>
 1EE4D..1EE4F  ; AL # Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
-1EE50         ; AL # Cn       <reserved-1EE50>
 1EE51..1EE52  ; AL # Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
-1EE53         ; AL # Cn       <reserved-1EE53>
 1EE54         ; AL # Lo       ARABIC MATHEMATICAL TAILED SHEEN
-1EE55..1EE56  ; AL # Cn   [2] <reserved-1EE55>..<reserved-1EE56>
 1EE57         ; AL # Lo       ARABIC MATHEMATICAL TAILED KHAH
-1EE58         ; AL # Cn       <reserved-1EE58>
 1EE59         ; AL # Lo       ARABIC MATHEMATICAL TAILED DAD
-1EE5A         ; AL # Cn       <reserved-1EE5A>
 1EE5B         ; AL # Lo       ARABIC MATHEMATICAL TAILED GHAIN
-1EE5C         ; AL # Cn       <reserved-1EE5C>
 1EE5D         ; AL # Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON
-1EE5E         ; AL # Cn       <reserved-1EE5E>
 1EE5F         ; AL # Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF
-1EE60         ; AL # Cn       <reserved-1EE60>
 1EE61..1EE62  ; AL # Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
-1EE63         ; AL # Cn       <reserved-1EE63>
 1EE64         ; AL # Lo       ARABIC MATHEMATICAL STRETCHED HEH
-1EE65..1EE66  ; AL # Cn   [2] <reserved-1EE65>..<reserved-1EE66>
 1EE67..1EE6A  ; AL # Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
-1EE6B         ; AL # Cn       <reserved-1EE6B>
 1EE6C..1EE72  ; AL # Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
-1EE73         ; AL # Cn       <reserved-1EE73>
 1EE74..1EE77  ; AL # Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
-1EE78         ; AL # Cn       <reserved-1EE78>
 1EE79..1EE7C  ; AL # Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-1EE7D         ; AL # Cn       <reserved-1EE7D>
 1EE7E         ; AL # Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-1EE7F         ; AL # Cn       <reserved-1EE7F>
 1EE80..1EE89  ; AL # Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
-1EE8A         ; AL # Cn       <reserved-1EE8A>
 1EE8B..1EE9B  ; AL # Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
-1EE9C..1EEA0  ; AL # Cn   [5] <reserved-1EE9C>..<reserved-1EEA0>
 1EEA1..1EEA3  ; AL # Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-1EEA4         ; AL # Cn       <reserved-1EEA4>
 1EEA5..1EEA9  ; AL # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-1EEAA         ; AL # Cn       <reserved-1EEAA>
 1EEAB..1EEBB  ; AL # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-1EEBC..1EEEF  ; AL # Cn  [52] <reserved-1EEBC>..<reserved-1EEEF>
-1EEF2..1EEFF  ; AL # Cn  [14] <reserved-1EEF2>..<reserved-1EEFF>
 
-# Total code points: 1708
+# The above property value applies to 298 code points not listed here.
+# Total code points: 1769
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DBinaryProperties.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DBinaryProperties.txt,v
diff -u -p -a -u -p -r1.6 DBinaryProperties.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DBinaryProperties.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DBinaryProperties.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedBinaryProperties-14.0.0.txt
-# Date: 2021-06-04, 02:19:15 GMT
-# © 2021 Unicode®, Inc.
+# DerivedBinaryProperties-15.0.0.txt
+# Date: 2022-02-26, 00:38:29 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DCombiningClass.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DCombiningClass.txt,v
diff -u -p -a -u -p -r1.6 DCombiningClass.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DCombiningClass.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DCombiningClass.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedCombiningClass-14.0.0.txt
-# Date: 2021-07-10, 00:35:05 GMT
-# © 2021 Unicode®, Inc.
+# DerivedCombiningClass-15.0.0.txt
+# Date: 2022-04-26, 23:14:29 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -365,6 +365,7 @@
 0CE2..0CE3    ; 0 # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; 0 # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; 0 # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; 0 # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; 0 # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; 0 # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; 0 # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -425,7 +426,7 @@
 0EBD          ; 0 # Lo       LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4    ; 0 # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; 0 # Lm       LAO KO LA
-0ECC..0ECD    ; 0 # Mn   [2] LAO CANCELLATION MARK..LAO NIGGAHITA
+0ECC..0ECE    ; 0 # Mn   [3] LAO CANCELLATION MARK..LAO YAMAKKAN
 0ED0..0ED9    ; 0 # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF    ; 0 # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00          ; 0 # Lo       TIBETAN SYLLABLE OM
@@ -1536,6 +1537,8 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 11237         ; 0 # Mn       KHOJKI SIGN SHADDA
 11238..1123D  ; 0 # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
 1123E         ; 0 # Mn       KHOJKI SIGN SUKUN
+1123F..11240  ; 0 # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241         ; 0 # Mn       KHOJKI VOWEL SIGN VOCALIC R
 11280..11286  ; 0 # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; 0 # Lo       MULTANI LETTER GHA
 1128A..1128D  ; 0 # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1682,6 +1685,7 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 11A9D         ; 0 # Lo       SOYOMBO MARK PLUTA
 11A9E..11AA2  ; 0 # Po   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
 11AB0..11AF8  ; 0 # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09  ; 0 # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08  ; 0 # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E  ; 0 # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F         ; 0 # Mc       BHAIKSUKI VOWEL SIGN AA
@@ -1726,6 +1730,17 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 11EF3..11EF4  ; 0 # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; 0 # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8  ; 0 # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01  ; 0 # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; 0 # Lo       KAWI SIGN REPHA
+11F03         ; 0 # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; 0 # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; 0 # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; 0 # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; 0 # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; 0 # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; 0 # Mn       KAWI VOWEL SIGN EU
+11F43..11F4F  ; 0 # Po  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59  ; 0 # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0         ; 0 # Lo       LISU LETTER YHA
 11FC0..11FD4  ; 0 # No  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC  ; 0 # So   [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -1738,8 +1753,11 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 12480..12543  ; 0 # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; 0 # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 12FF1..12FF2  ; 0 # Po   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E  ; 0 # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438  ; 0 # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F  ; 0 # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F  ; 0 # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440         ; 0 # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446  ; 0 # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455  ; 0 # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..14646  ; 0 # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; 0 # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; 0 # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -1779,7 +1797,9 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 1AFF5..1AFFB  ; 0 # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; 0 # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; 0 # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; 0 # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; 0 # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; 0 # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; 0 # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; 0 # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; 0 # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -1803,6 +1823,7 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 1D1AE..1D1EA  ; 0 # So  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
 1D200..1D241  ; 0 # So  [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D245         ; 0 # So       GREEK MUSICAL LEIMMA
+1D2C0..1D2D3  ; 0 # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; 0 # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356  ; 0 # So  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378  ; 0 # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -1862,6 +1883,8 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 1DF00..1DF09  ; 0 # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; 0 # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; 0 # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; 0 # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; 0 # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; 0 # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; 0 # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E140..1E149  ; 0 # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
@@ -1871,6 +1894,9 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 1E2C0..1E2EB  ; 0 # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
 1E2F0..1E2F9  ; 0 # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
 1E2FF         ; 0 # Sc       WANCHO NGUN SIGN
+1E4D0..1E4EA  ; 0 # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; 0 # Lm       NAG MUNDARI SIGN OJOD
+1E4F0..1E4F9  ; 0 # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6  ; 0 # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; 0 # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; 0 # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1939,10 +1965,10 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 1F300..1F3FA  ; 0 # So [251] CYCLONE..AMPHORA
 1F3FB..1F3FF  ; 0 # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
 1F400..1F6D7  ; 0 # So [728] RAT..ELEVATOR
-1F6DD..1F6EC  ; 0 # So  [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6DC..1F6EC  ; 0 # So  [17] WIRELESS..AIRPLANE ARRIVING
 1F6F0..1F6FC  ; 0 # So  [13] SATELLITE..ROLLER SKATE
-1F700..1F773  ; 0 # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8  ; 0 # So  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776  ; 0 # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9  ; 0 # So  [95] HAUMEA..NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; 0 # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0         ; 0 # So       HEAVY EQUALS SIGN
 1F800..1F80B  ; 0 # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -1953,33 +1979,32 @@ FFFC..FFFD    ; 0 # So   [2] OBJECT REPL
 1F8B0..1F8B1  ; 0 # So   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
 1F900..1FA53  ; 0 # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
 1FA60..1FA6D  ; 0 # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74  ; 0 # So   [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C  ; 0 # So   [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86  ; 0 # So   [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC  ; 0 # So  [29] RINGED PLANET..HAMSA
-1FAB0..1FABA  ; 0 # So  [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5  ; 0 # So   [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9  ; 0 # So  [10] BLUEBERRIES..JAR
-1FAE0..1FAE7  ; 0 # So   [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6  ; 0 # So   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C  ; 0 # So  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; 0 # So   [9] YO-YO..FLUTE
+1FA90..1FABD  ; 0 # So  [46] RINGED PLANET..WING
+1FABF..1FAC5  ; 0 # So   [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB  ; 0 # So  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; 0 # So   [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8  ; 0 # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 1FB00..1FB92  ; 0 # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; 0 # So  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 1FBF0..1FBF9  ; 0 # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 20000..2A6DF  ; 0 # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; 0 # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; 0 # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; 0 # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; 0 # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; 0 # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; 0 # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; 0 # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; 0 # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 E0001         ; 0 # Cf       LANGUAGE TAG
 E0020..E007F  ; 0 # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; 0 # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 F0000..FFFFD  ; 0 # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 100000..10FFFD; 0 # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
-# The above property value applies to 831882 code points not listed here.
-# Total code points: 1113200
+# The above property value applies to 827393 code points not listed here.
+# Total code points: 1113190
 
 # ================================================
 
@@ -2110,8 +2135,10 @@ ABED          ; 9 # Mn       MEETEI MAYE
 11C3F         ; 9 # Mn       BHAIKSUKI SIGN VIRAMA
 11D44..11D45  ; 9 # Mn   [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
 11D97         ; 9 # Mn       GUNJALA GONDI VIRAMA
+11F41         ; 9 # Mc       KAWI SIGN KILLER
+11F42         ; 9 # Mn       KAWI CONJOINER
 
-# Total code points: 63
+# Total code points: 65
 
 # ================================================
 
@@ -2527,6 +2554,7 @@ FE27..FE2D    ; 220 # Mn   [7] COMBINING
 10A0D         ; 220 # Mn       KHAROSHTHI SIGN DOUBLE RING BELOW
 10A3A         ; 220 # Mn       KHAROSHTHI SIGN DOT BELOW
 10AE6         ; 220 # Mn       MANICHAEAN ABBREVIATION MARK BELOW
+10EFD..10EFF  ; 220 # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F47  ; 220 # Mn   [2] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING TWO DOTS BELOW
 10F4B         ; 220 # Mn       SOGDIAN COMBINING CURVE BELOW
 10F4D..10F50  ; 220 # Mn   [4] SOGDIAN COMBINING HOOK BELOW..SOGDIAN COMBINING STROKE BELOW
@@ -2534,9 +2562,10 @@ FE27..FE2D    ; 220 # Mn   [7] COMBINING
 10F85         ; 220 # Mn       OLD UYGHUR COMBINING TWO DOTS BELOW
 1D17B..1D182  ; 220 # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
 1D18A..1D18B  ; 220 # Mn   [2] MUSICAL SYMBOL COMBINING DOUBLE TONGUE..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1E4EE         ; 220 # Mn       NAG MUNDARI SIGN IKIR
 1E8D0..1E8D6  ; 220 # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 
-# Total code points: 177
+# Total code points: 181
 
 # ================================================
 
@@ -2703,12 +2732,14 @@ FE2E..FE2F    ; 230 # Mn   [2] COMBINING
 1E01B..1E021  ; 230 # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; 230 # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; 230 # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; 230 # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; 230 # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; 230 # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; 230 # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EF         ; 230 # Mn       NAG MUNDARI SIGN SUTUH
 1E944..1E949  ; 230 # Mn   [6] ADLAM ALIF LENGTHENER..ADLAM GEMINATE CONSONANT MODIFIER
 
-# Total code points: 508
+# Total code points: 510
 
 # ================================================
 
@@ -2719,8 +2750,9 @@ FE2E..FE2F    ; 230 # Mn   [2] COMBINING
 0358          ; 232 # Mn       COMBINING DOT ABOVE RIGHT
 1DF6          ; 232 # Mn       COMBINING KAVYKA ABOVE RIGHT
 302C          ; 232 # Mn       IDEOGRAPHIC DEPARTING TONE MARK
+1E4EC..1E4ED  ; 232 # Mn   [2] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN TOYOR
 
-# Total code points: 5
+# Total code points: 7
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DDecompositionType.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DDecompositionType.txt,v
diff -u -p -a -u -p -r1.6 DDecompositionType.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DDecompositionType.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DDecompositionType.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedDecompositionType-14.0.0.txt
-# Date: 2021-06-04, 02:19:17 GMT
-# © 2021 Unicode®, Inc.
+# DerivedDecompositionType-15.0.0.txt
+# Date: 2022-02-26, 00:38:31 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -868,9 +868,11 @@ AB69          ; Super # Lm       MODIFIE
 10781..10785  ; Super # Lm   [5] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SMALL B WITH HOOK
 10787..107B0  ; Super # Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
 107B2..107BA  ; Super # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+1E030..1E050  ; Super # Lm  [33] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E06B..1E06D  ; Super # Lm   [3] MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1F16A..1F16C  ; Super # So   [3] RAISED MC SIGN..RAISED MR SIGN
 
-# Total code points: 213
+# Total code points: 249
 
 # ================================================
 
@@ -881,8 +883,9 @@ AB69          ; Super # Lm       MODIFIE
 208E          ; Sub # Pe       SUBSCRIPT RIGHT PARENTHESIS
 2090..209C    ; Sub # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
 2C7C          ; Sub # Lm       LATIN SUBSCRIPT SMALL LETTER J
+1E051..1E06A  ; Sub # Lm  [26] CYRILLIC SUBSCRIPT SMALL LETTER A..CYRILLIC SUBSCRIPT SMALL LETTER DZHE
 
-# Total code points: 38
+# Total code points: 64
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DEastAsianWidth.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DEastAsianWidth.txt,v
diff -u -p -a -u -p -r1.6 DEastAsianWidth.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DEastAsianWidth.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DEastAsianWidth.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedEastAsianWidth-14.0.0.txt
-# Date: 2021-07-10, 00:35:07 GMT
-# © 2021 Unicode®, Inc.
+# DerivedEastAsianWidth-15.0.0.txt
+# Date: 2022-07-08, 23:49:26 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -16,6 +16,27 @@
 
 # @missing: 0000..10FFFF; Neutral
 
+# 3400..4DBF CJK_Unified_Ideographs_Extension_A
+# @missing: 3400..4DBF; Wide
+
+# 4E00..9FFF CJK_Unified_Ideographs
+# @missing: 4E00..9FFF; Wide
+
+# F900..FAFF CJK_Compatibility_Ideographs
+# @missing: F900..FAFF; Wide
+
+# 20000..2A6DF CJK_Unified_Ideographs_Extension_B
+# 2A700..2B73F CJK_Unified_Ideographs_Extension_C
+# 2B740..2B81F CJK_Unified_Ideographs_Extension_D
+# 2B820..2CEAF CJK_Unified_Ideographs_Extension_E
+# 2CEB0..2EBEF CJK_Unified_Ideographs_Extension_F
+# 2F800..2FA1F CJK_Compatibility_Ideographs_Supplement
+# @missing: 20000..2FFFD; Wide
+
+# 30000..3134F CJK_Unified_Ideographs_Extension_G
+# 31350..323AF CJK_Unified_Ideographs_Extension_H
+# @missing: 30000..3FFFD; Wide
+
 # ================================================
 
 # East_Asian_Width=Neutral
@@ -400,6 +421,7 @@
 0CE2..0CE3    ; N # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
 0CE6..0CEF    ; N # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
 0CF1..0CF2    ; N # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3          ; N # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; N # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; N # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D04..0D0C    ; N # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -461,7 +483,7 @@
 0EBD          ; N # Lo       LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4    ; N # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; N # Lm       LAO KO LA
-0EC8..0ECD    ; N # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; N # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0ED0..0ED9    ; N # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE
 0EDC..0EDF    ; N # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 0F00          ; N # Lo       TIBETAN SYLLABLE OM
@@ -1449,6 +1471,7 @@ FFFC          ; N # So       OBJECT REPL
 10EAB..10EAC  ; N # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
 10EAD         ; N # Pd       YEZIDI HYPHENATION MARK
 10EB0..10EB1  ; N # Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF  ; N # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F00..10F1C  ; N # Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
 10F1D..10F26  ; N # No  [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
 10F27         ; N # Lo       OLD SOGDIAN LIGATURE AYIN-DALETH
@@ -1530,6 +1553,8 @@ FFFC          ; N # So       OBJECT REPL
 11236..11237  ; N # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 11238..1123D  ; N # Po   [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
 1123E         ; N # Mn       KHOJKI SIGN SUKUN
+1123F..11240  ; N # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241         ; N # Mn       KHOJKI VOWEL SIGN VOCALIC R
 11280..11286  ; N # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; N # Lo       MULTANI LETTER GHA
 1128A..1128D  ; N # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1690,6 +1715,7 @@ FFFC          ; N # So       OBJECT REPL
 11A9D         ; N # Lo       SOYOMBO MARK PLUTA
 11A9E..11AA2  ; N # Po   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
 11AB0..11AF8  ; N # Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09  ; N # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C00..11C08  ; N # Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
 11C0A..11C2E  ; N # Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
 11C2F         ; N # Mc       BHAIKSUKI VOWEL SIGN AA
@@ -1735,6 +1761,19 @@ FFFC          ; N # So       OBJECT REPL
 11EF3..11EF4  ; N # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; N # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
 11EF7..11EF8  ; N # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01  ; N # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02         ; N # Lo       KAWI SIGN REPHA
+11F03         ; N # Mc       KAWI SIGN VISARGA
+11F04..11F10  ; N # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; N # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35  ; N # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; N # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; N # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; N # Mn       KAWI VOWEL SIGN EU
+11F41         ; N # Mc       KAWI SIGN KILLER
+11F42         ; N # Mn       KAWI CONJOINER
+11F43..11F4F  ; N # Po  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59  ; N # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 11FB0         ; N # Lo       LISU LETTER YHA
 11FC0..11FD4  ; N # No  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC  ; N # So   [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -1747,8 +1786,11 @@ FFFC          ; N # So       OBJECT REPL
 12480..12543  ; N # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; N # Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
 12FF1..12FF2  ; N # Po   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E  ; N # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438  ; N # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F  ; N # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F  ; N # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440         ; N # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446  ; N # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455  ; N # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 14400..14646  ; N # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; N # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; N # Lo  [31] MRO LETTER TA..MRO LETTER TEK
@@ -1807,6 +1849,7 @@ FFFC          ; N # So       OBJECT REPL
 1D200..1D241  ; N # So  [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D242..1D244  ; N # Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
 1D245         ; N # So       GREEK MUSICAL LEIMMA
+1D2C0..1D2D3  ; N # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; N # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356  ; N # So  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378  ; N # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -1866,11 +1909,14 @@ FFFC          ; N # So       OBJECT REPL
 1DF00..1DF09  ; N # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; N # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; N # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; N # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E000..1E006  ; N # Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
 1E008..1E018  ; N # Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
 1E01B..1E021  ; N # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; N # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; N # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D  ; N # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F         ; N # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E100..1E12C  ; N # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E130..1E136  ; N # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E137..1E13D  ; N # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -1883,6 +1929,10 @@ FFFC          ; N # So       OBJECT REPL
 1E2EC..1E2EF  ; N # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
 1E2F0..1E2F9  ; N # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
 1E2FF         ; N # Sc       WANCHO NGUN SIGN
+1E4D0..1E4EA  ; N # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; N # Lm       NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF  ; N # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9  ; N # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E7E0..1E7E6  ; N # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; N # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; N # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1973,8 +2023,8 @@ FFFC          ; N # So       OBJECT REPL
 1F6D3..1F6D4  ; N # So   [2] STUPA..PAGODA
 1F6E0..1F6EA  ; N # So  [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
 1F6F0..1F6F3  ; N # So   [4] SATELLITE..PASSENGER SHIP
-1F700..1F773  ; N # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8  ; N # So  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776  ; N # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9  ; N # So  [95] HAUMEA..NINE POINTED WHITE STAR
 1F800..1F80B  ; N # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
 1F810..1F847  ; N # So  [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
 1F850..1F859  ; N # So  [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
@@ -1992,8 +2042,8 @@ FFFC          ; N # So       OBJECT REPL
 E0001         ; N # Cf       LANGUAGE TAG
 E0020..E007F  ; N # Cf  [96] TAG SPACE..CANCEL TAG
 
-# The above property value applies to 766585 code points not listed here.
-# Total code points: 792645
+# The above property value applies to 766289 code points not listed here.
+# Total code points: 792623
 
 # ================================================
 
@@ -2343,9 +2393,7 @@ A490..A4C6    ; W # So  [55] YI RADICAL 
 A960..A97C    ; W # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
 AC00..D7A3    ; W # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
 F900..FA6D    ; W # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E..FA6F    ; W # Cn   [2] <reserved-FA6E>..<reserved-FA6F>
 FA70..FAD9    ; W # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA..FAFF    ; W # Cn  [38] <reserved-FADA>..<reserved-FAFF>
 FE10..FE16    ; W # Po   [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
 FE17          ; W # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
 FE18          ; W # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
@@ -2402,7 +2450,9 @@ FE6A..FE6B    ; W # Po   [2] SMALL PERCE
 1AFF5..1AFFB  ; W # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; W # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
 1B000..1B122  ; W # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; W # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; W # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; W # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; W # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; W # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1F004         ; W # So       MAHJONG TILE RED DRAGON
@@ -2438,7 +2488,7 @@ FE6A..FE6B    ; W # Po   [2] SMALL PERCE
 1F6CC         ; W # So       SLEEPING ACCOMMODATION
 1F6D0..1F6D2  ; W # So   [3] PLACE OF WORSHIP..SHOPPING TROLLEY
 1F6D5..1F6D7  ; W # So   [3] HINDU TEMPLE..ELEVATOR
-1F6DD..1F6DF  ; W # So   [3] PLAYGROUND SLIDE..RING BUOY
+1F6DC..1F6DF  ; W # So   [4] WIRELESS..RING BUOY
 1F6EB..1F6EC  ; W # So   [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
 1F6F4..1F6FC  ; W # So   [9] SCOOTER..ROLLER SKATE
 1F7E0..1F7EB  ; W # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
@@ -2446,31 +2496,24 @@ FE6A..FE6B    ; W # Po   [2] SMALL PERCE
 1F90C..1F93A  ; W # So  [47] PINCHED FINGERS..FENCER
 1F93C..1F945  ; W # So  [10] WRESTLERS..GOAL NET
 1F947..1F9FF  ; W # So [185] FIRST PLACE MEDAL..NAZAR AMULET
-1FA70..1FA74  ; W # So   [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C  ; W # So   [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86  ; W # So   [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC  ; W # So  [29] RINGED PLANET..HAMSA
-1FAB0..1FABA  ; W # So  [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5  ; W # So   [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9  ; W # So  [10] BLUEBERRIES..JAR
-1FAE0..1FAE7  ; W # So   [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6  ; W # So   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C  ; W # So  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; W # So   [9] YO-YO..FLUTE
+1FA90..1FABD  ; W # So  [46] RINGED PLANET..WING
+1FABF..1FAC5  ; W # So   [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB  ; W # So  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; W # So   [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8  ; W # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 20000..2A6DF  ; W # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A6E0..2A6FF  ; W # Cn  [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738  ; W # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F  ; W # Cn   [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739  ; W # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; W # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
-2B81E..2B81F  ; W # Cn   [2] <reserved-2B81E>..<reserved-2B81F>
 2B820..2CEA1  ; W # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
-2CEA2..2CEAF  ; W # Cn  [14] <reserved-2CEA2>..<reserved-2CEAF>
 2CEB0..2EBE0  ; W # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
-2EBE1..2F7FF  ; W # Cn [3103] <reserved-2EBE1>..<reserved-2F7FF>
 2F800..2FA1D  ; W # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E..2FFFD  ; W # Cn [1504] <reserved-2FA1E>..<reserved-2FFFD>
 30000..3134A  ; W # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD  ; W # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
+31350..323AF  ; W # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 182390
+# The above property value applies to 61104 code points not listed here.
+# Total code points: 182412
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DGeneralCategory.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DGeneralCategory.txt,v
diff -u -p -a -u -p -r1.6 DGeneralCategory.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DGeneralCategory.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DGeneralCategory.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedGeneralCategory-14.0.0.txt
-# Date: 2021-07-10, 00:35:08 GMT
-# © 2021 Unicode®, Inc.
+# DerivedGeneralCategory-15.0.0.txt
+# Date: 2022-04-26, 23:14:35 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -136,7 +136,7 @@
 0CDF          ; Cn #       <reserved-0CDF>
 0CE4..0CE5    ; Cn #   [2] <reserved-0CE4>..<reserved-0CE5>
 0CF0          ; Cn #       <reserved-0CF0>
-0CF3..0CFF    ; Cn #  [13] <reserved-0CF3>..<reserved-0CFF>
+0CF4..0CFF    ; Cn #  [12] <reserved-0CF4>..<reserved-0CFF>
 0D0D          ; Cn #       <reserved-0D0D>
 0D11          ; Cn #       <reserved-0D11>
 0D45          ; Cn #       <reserved-0D45>
@@ -166,7 +166,7 @@
 0EBE..0EBF    ; Cn #   [2] <reserved-0EBE>..<reserved-0EBF>
 0EC5          ; Cn #       <reserved-0EC5>
 0EC7          ; Cn #       <reserved-0EC7>
-0ECE..0ECF    ; Cn #   [2] <reserved-0ECE>..<reserved-0ECF>
+0ECF          ; Cn #       <reserved-0ECF>
 0EDA..0EDB    ; Cn #   [2] <reserved-0EDA>..<reserved-0EDB>
 0EE0..0EFF    ; Cn #  [32] <reserved-0EE0>..<reserved-0EFF>
 0F48          ; Cn #       <reserved-0F48>
@@ -436,7 +436,7 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 10E7F         ; Cn #       <reserved-10E7F>
 10EAA         ; Cn #       <reserved-10EAA>
 10EAE..10EAF  ; Cn #   [2] <reserved-10EAE>..<reserved-10EAF>
-10EB2..10EFF  ; Cn #  [78] <reserved-10EB2>..<reserved-10EFF>
+10EB2..10EFC  ; Cn #  [75] <reserved-10EB2>..<reserved-10EFC>
 10F28..10F2F  ; Cn #   [8] <reserved-10F28>..<reserved-10F2F>
 10F5A..10F6F  ; Cn #  [22] <reserved-10F5A>..<reserved-10F6F>
 10F8A..10FAF  ; Cn #  [38] <reserved-10F8A>..<reserved-10FAF>
@@ -454,7 +454,7 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 111E0         ; Cn #       <reserved-111E0>
 111F5..111FF  ; Cn #  [11] <reserved-111F5>..<reserved-111FF>
 11212         ; Cn #       <reserved-11212>
-1123F..1127F  ; Cn #  [65] <reserved-1123F>..<reserved-1127F>
+11242..1127F  ; Cn #  [62] <reserved-11242>..<reserved-1127F>
 11287         ; Cn #       <reserved-11287>
 11289         ; Cn #       <reserved-11289>
 1128E         ; Cn #       <reserved-1128E>
@@ -506,7 +506,8 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 119E5..119FF  ; Cn #  [27] <reserved-119E5>..<reserved-119FF>
 11A48..11A4F  ; Cn #   [8] <reserved-11A48>..<reserved-11A4F>
 11AA3..11AAF  ; Cn #  [13] <reserved-11AA3>..<reserved-11AAF>
-11AF9..11BFF  ; Cn # [263] <reserved-11AF9>..<reserved-11BFF>
+11AF9..11AFF  ; Cn #   [7] <reserved-11AF9>..<reserved-11AFF>
+11B0A..11BFF  ; Cn # [246] <reserved-11B0A>..<reserved-11BFF>
 11C09         ; Cn #       <reserved-11C09>
 11C37         ; Cn #       <reserved-11C37>
 11C46..11C4F  ; Cn #  [10] <reserved-11C46>..<reserved-11C4F>
@@ -527,7 +528,10 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 11D92         ; Cn #       <reserved-11D92>
 11D99..11D9F  ; Cn #   [7] <reserved-11D99>..<reserved-11D9F>
 11DAA..11EDF  ; Cn # [310] <reserved-11DAA>..<reserved-11EDF>
-11EF9..11FAF  ; Cn # [183] <reserved-11EF9>..<reserved-11FAF>
+11EF9..11EFF  ; Cn #   [7] <reserved-11EF9>..<reserved-11EFF>
+11F11         ; Cn #       <reserved-11F11>
+11F3B..11F3D  ; Cn #   [3] <reserved-11F3B>..<reserved-11F3D>
+11F5A..11FAF  ; Cn #  [86] <reserved-11F5A>..<reserved-11FAF>
 11FB1..11FBF  ; Cn #  [15] <reserved-11FB1>..<reserved-11FBF>
 11FF2..11FFE  ; Cn #  [13] <reserved-11FF2>..<reserved-11FFE>
 1239A..123FF  ; Cn # [102] <reserved-1239A>..<reserved-123FF>
@@ -535,8 +539,7 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 12475..1247F  ; Cn #  [11] <reserved-12475>..<reserved-1247F>
 12544..12F8F  ; Cn # [2636] <reserved-12544>..<reserved-12F8F>
 12FF3..12FFF  ; Cn #  [13] <reserved-12FF3>..<reserved-12FFF>
-1342F         ; Cn #       <reserved-1342F>
-13439..143FF  ; Cn # [4039] <reserved-13439>..<reserved-143FF>
+13456..143FF  ; Cn # [4010] <reserved-13456>..<reserved-143FF>
 14647..167FF  ; Cn # [8633] <reserved-14647>..<reserved-167FF>
 16A39..16A3F  ; Cn #   [7] <reserved-16A39>..<reserved-16A3F>
 16A5F         ; Cn #       <reserved-16A5F>
@@ -562,8 +565,10 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 1AFF4         ; Cn #       <reserved-1AFF4>
 1AFFC         ; Cn #       <reserved-1AFFC>
 1AFFF         ; Cn #       <reserved-1AFFF>
-1B123..1B14F  ; Cn #  [45] <reserved-1B123>..<reserved-1B14F>
-1B153..1B163  ; Cn #  [17] <reserved-1B153>..<reserved-1B163>
+1B123..1B131  ; Cn #  [15] <reserved-1B123>..<reserved-1B131>
+1B133..1B14F  ; Cn #  [29] <reserved-1B133>..<reserved-1B14F>
+1B153..1B154  ; Cn #   [2] <reserved-1B153>..<reserved-1B154>
+1B156..1B163  ; Cn #  [14] <reserved-1B156>..<reserved-1B163>
 1B168..1B16F  ; Cn #   [8] <reserved-1B168>..<reserved-1B16F>
 1B2FC..1BBFF  ; Cn # [2308] <reserved-1B2FC>..<reserved-1BBFF>
 1BC6B..1BC6F  ; Cn #   [5] <reserved-1BC6B>..<reserved-1BC6F>
@@ -577,7 +582,8 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 1D0F6..1D0FF  ; Cn #  [10] <reserved-1D0F6>..<reserved-1D0FF>
 1D127..1D128  ; Cn #   [2] <reserved-1D127>..<reserved-1D128>
 1D1EB..1D1FF  ; Cn #  [21] <reserved-1D1EB>..<reserved-1D1FF>
-1D246..1D2DF  ; Cn # [154] <reserved-1D246>..<reserved-1D2DF>
+1D246..1D2BF  ; Cn # [122] <reserved-1D246>..<reserved-1D2BF>
+1D2D4..1D2DF  ; Cn #  [12] <reserved-1D2D4>..<reserved-1D2DF>
 1D2F4..1D2FF  ; Cn #  [12] <reserved-1D2F4>..<reserved-1D2FF>
 1D357..1D35F  ; Cn #   [9] <reserved-1D357>..<reserved-1D35F>
 1D379..1D3FF  ; Cn # [135] <reserved-1D379>..<reserved-1D3FF>
@@ -604,19 +610,23 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 1DA8C..1DA9A  ; Cn #  [15] <reserved-1DA8C>..<reserved-1DA9A>
 1DAA0         ; Cn #       <reserved-1DAA0>
 1DAB0..1DEFF  ; Cn # [1104] <reserved-1DAB0>..<reserved-1DEFF>
-1DF1F..1DFFF  ; Cn # [225] <reserved-1DF1F>..<reserved-1DFFF>
+1DF1F..1DF24  ; Cn #   [6] <reserved-1DF1F>..<reserved-1DF24>
+1DF2B..1DFFF  ; Cn # [213] <reserved-1DF2B>..<reserved-1DFFF>
 1E007         ; Cn #       <reserved-1E007>
 1E019..1E01A  ; Cn #   [2] <reserved-1E019>..<reserved-1E01A>
 1E022         ; Cn #       <reserved-1E022>
 1E025         ; Cn #       <reserved-1E025>
-1E02B..1E0FF  ; Cn # [213] <reserved-1E02B>..<reserved-1E0FF>
+1E02B..1E02F  ; Cn #   [5] <reserved-1E02B>..<reserved-1E02F>
+1E06E..1E08E  ; Cn #  [33] <reserved-1E06E>..<reserved-1E08E>
+1E090..1E0FF  ; Cn # [112] <reserved-1E090>..<reserved-1E0FF>
 1E12D..1E12F  ; Cn #   [3] <reserved-1E12D>..<reserved-1E12F>
 1E13E..1E13F  ; Cn #   [2] <reserved-1E13E>..<reserved-1E13F>
 1E14A..1E14D  ; Cn #   [4] <reserved-1E14A>..<reserved-1E14D>
 1E150..1E28F  ; Cn # [320] <reserved-1E150>..<reserved-1E28F>
 1E2AF..1E2BF  ; Cn #  [17] <reserved-1E2AF>..<reserved-1E2BF>
 1E2FA..1E2FE  ; Cn #   [5] <reserved-1E2FA>..<reserved-1E2FE>
-1E300..1E7DF  ; Cn # [1248] <reserved-1E300>..<reserved-1E7DF>
+1E300..1E4CF  ; Cn # [464] <reserved-1E300>..<reserved-1E4CF>
+1E4FA..1E7DF  ; Cn # [742] <reserved-1E4FA>..<reserved-1E7DF>
 1E7E7         ; Cn #       <reserved-1E7E7>
 1E7EC         ; Cn #       <reserved-1E7EC>
 1E7EF         ; Cn #       <reserved-1E7EF>
@@ -674,11 +684,11 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 1F249..1F24F  ; Cn #   [7] <reserved-1F249>..<reserved-1F24F>
 1F252..1F25F  ; Cn #  [14] <reserved-1F252>..<reserved-1F25F>
 1F266..1F2FF  ; Cn # [154] <reserved-1F266>..<reserved-1F2FF>
-1F6D8..1F6DC  ; Cn #   [5] <reserved-1F6D8>..<reserved-1F6DC>
+1F6D8..1F6DB  ; Cn #   [4] <reserved-1F6D8>..<reserved-1F6DB>
 1F6ED..1F6EF  ; Cn #   [3] <reserved-1F6ED>..<reserved-1F6EF>
 1F6FD..1F6FF  ; Cn #   [3] <reserved-1F6FD>..<reserved-1F6FF>
-1F774..1F77F  ; Cn #  [12] <reserved-1F774>..<reserved-1F77F>
-1F7D9..1F7DF  ; Cn #   [7] <reserved-1F7D9>..<reserved-1F7DF>
+1F777..1F77A  ; Cn #   [4] <reserved-1F777>..<reserved-1F77A>
+1F7DA..1F7DF  ; Cn #   [6] <reserved-1F7DA>..<reserved-1F7DF>
 1F7EC..1F7EF  ; Cn #   [4] <reserved-1F7EC>..<reserved-1F7EF>
 1F7F1..1F7FF  ; Cn #  [15] <reserved-1F7F1>..<reserved-1F7FF>
 1F80C..1F80F  ; Cn #   [4] <reserved-1F80C>..<reserved-1F80F>
@@ -689,32 +699,31 @@ FFFE..FFFF    ; Cn #   [2] <noncharacter
 1F8B2..1F8FF  ; Cn #  [78] <reserved-1F8B2>..<reserved-1F8FF>
 1FA54..1FA5F  ; Cn #  [12] <reserved-1FA54>..<reserved-1FA5F>
 1FA6E..1FA6F  ; Cn #   [2] <reserved-1FA6E>..<reserved-1FA6F>
-1FA75..1FA77  ; Cn #   [3] <reserved-1FA75>..<reserved-1FA77>
 1FA7D..1FA7F  ; Cn #   [3] <reserved-1FA7D>..<reserved-1FA7F>
-1FA87..1FA8F  ; Cn #   [9] <reserved-1FA87>..<reserved-1FA8F>
-1FAAD..1FAAF  ; Cn #   [3] <reserved-1FAAD>..<reserved-1FAAF>
-1FABB..1FABF  ; Cn #   [5] <reserved-1FABB>..<reserved-1FABF>
-1FAC6..1FACF  ; Cn #  [10] <reserved-1FAC6>..<reserved-1FACF>
-1FADA..1FADF  ; Cn #   [6] <reserved-1FADA>..<reserved-1FADF>
-1FAE8..1FAEF  ; Cn #   [8] <reserved-1FAE8>..<reserved-1FAEF>
-1FAF7..1FAFF  ; Cn #   [9] <reserved-1FAF7>..<reserved-1FAFF>
+1FA89..1FA8F  ; Cn #   [7] <reserved-1FA89>..<reserved-1FA8F>
+1FABE         ; Cn #       <reserved-1FABE>
+1FAC6..1FACD  ; Cn #   [8] <reserved-1FAC6>..<reserved-1FACD>
+1FADC..1FADF  ; Cn #   [4] <reserved-1FADC>..<reserved-1FADF>
+1FAE9..1FAEF  ; Cn #   [7] <reserved-1FAE9>..<reserved-1FAEF>
+1FAF9..1FAFF  ; Cn #   [7] <reserved-1FAF9>..<reserved-1FAFF>
 1FB93         ; Cn #       <reserved-1FB93>
 1FBCB..1FBEF  ; Cn #  [37] <reserved-1FBCB>..<reserved-1FBEF>
 1FBFA..1FFFF  ; Cn # [1030] <reserved-1FBFA>..<noncharacter-1FFFF>
 2A6E0..2A6FF  ; Cn #  [32] <reserved-2A6E0>..<reserved-2A6FF>
-2B739..2B73F  ; Cn #   [7] <reserved-2B739>..<reserved-2B73F>
+2B73A..2B73F  ; Cn #   [6] <reserved-2B73A>..<reserved-2B73F>
 2B81E..2B81F  ; Cn #   [2] <reserved-2B81E>..<reserved-2B81F>
 2CEA2..2CEAF  ; Cn #  [14] <reserved-2CEA2>..<reserved-2CEAF>
 2EBE1..2F7FF  ; Cn # [3103] <reserved-2EBE1>..<reserved-2F7FF>
 2FA1E..2FFFF  ; Cn # [1506] <reserved-2FA1E>..<noncharacter-2FFFF>
-3134B..E0000  ; Cn # [715958] <reserved-3134B>..<reserved-E0000>
+3134B..3134F  ; Cn #   [5] <reserved-3134B>..<reserved-3134F>
+323B0..E0000  ; Cn # [711761] <reserved-323B0>..<reserved-E0000>
 E0002..E001F  ; Cn #  [30] <reserved-E0002>..<reserved-E001F>
 E0080..E00FF  ; Cn # [128] <reserved-E0080>..<reserved-E00FF>
 E01F0..EFFFF  ; Cn # [65040] <reserved-E01F0>..<noncharacter-EFFFF>
 FFFFE..FFFFF  ; Cn #   [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
 10FFFE..10FFFF; Cn #   [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
 
-# Total code points: 829834
+# Total code points: 825345
 
 # ================================================
 
@@ -2029,9 +2038,10 @@ FF41..FF5A    ; Ll #  [26] FULLWIDTH LAT
 1D7CB         ; Ll #       MATHEMATICAL BOLD SMALL DIGAMMA
 1DF00..1DF09  ; Ll #  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0B..1DF1E  ; Ll #  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; Ll #   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
 1E922..1E943  ; Ll #  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
 
-# Total code points: 2227
+# Total code points: 2233
 
 # ================================================
 
@@ -2121,10 +2131,12 @@ FF9E..FF9F    ; Lm #   [2] HALFWIDTH KAT
 1AFF0..1AFF3  ; Lm #   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
 1AFF5..1AFFB  ; Lm #   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
 1AFFD..1AFFE  ; Lm #   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1E030..1E06D  ; Lm #  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E137..1E13D  ; Lm #   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E4EB         ; Lm #       NAG MUNDARI SIGN OJOD
 1E94B         ; Lm #       ADLAM NASALIZATION MARK
 
-# Total code points: 334
+# Total code points: 397
 
 # ================================================
 
@@ -2494,6 +2506,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
 111DC         ; Lo #       SHARADA HEADSTROKE
 11200..11211  ; Lo #  [18] KHOJKI LETTER A..KHOJKI LETTER JJA
 11213..1122B  ; Lo #  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240  ; Lo #   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; Lo #   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; Lo #       MULTANI LETTER GHA
 1128A..1128D  ; Lo #   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -2555,11 +2568,15 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
 11D6A..11D89  ; Lo #  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
 11D98         ; Lo #       GUNJALA GONDI OM
 11EE0..11EF2  ; Lo #  [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02         ; Lo #       KAWI SIGN REPHA
+11F04..11F10  ; Lo #  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; Lo #  [34] KAWI LETTER KA..KAWI LETTER JNYA
 11FB0         ; Lo #       LISU LETTER YHA
 12000..12399  ; Lo # [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
 12480..12543  ; Lo # [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
 12F90..12FF0  ; Lo #  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E  ; Lo # [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F  ; Lo # [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; Lo #   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..14646  ; Lo # [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; Lo # [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
 16A40..16A5E  ; Lo #  [31] MRO LETTER TA..MRO LETTER TEK
@@ -2574,7 +2591,9 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
 18800..18CD5  ; Lo # [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
 18D00..18D08  ; Lo #   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
 1B000..1B122  ; Lo # [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132         ; Lo #       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; Lo #   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; Lo #       KATAKANA LETTER SMALL KO
 1B164..1B167  ; Lo #   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 1B170..1B2FB  ; Lo # [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1BC00..1BC6A  ; Lo # [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -2586,6 +2605,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
 1E14E         ; Lo #       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E290..1E2AD  ; Lo #  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; Lo #  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; Lo #  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
 1E7E0..1E7E6  ; Lo #   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; Lo #   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; Lo #   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -2625,14 +2645,15 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
 1EEA5..1EEA9  ; Lo #   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
 1EEAB..1EEBB  ; Lo #  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
 20000..2A6DF  ; Lo # [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738  ; Lo # [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739  ; Lo # [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; Lo # [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
 2B820..2CEA1  ; Lo # [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
 2CEB0..2EBE0  ; Lo # [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
 2F800..2FA1D  ; Lo # [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
 30000..3134A  ; Lo # [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF  ; Lo # [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 127333
+# Total code points: 131612
 
 # ================================================
 
@@ -2730,7 +2751,7 @@ FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
 0E47..0E4E    ; Mn #   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; Mn #       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; Mn #   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; Mn #   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; Mn #   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; Mn #   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; Mn #       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; Mn #       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -2861,6 +2882,7 @@ FE20..FE2F    ; Mn #  [16] COMBINING LIG
 10AE5..10AE6  ; Mn #   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; Mn #   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; Mn #   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; Mn #   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; Mn #  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; Mn #   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11001         ; Mn #       BRAHMI SIGN ANUSVARA
@@ -2883,6 +2905,7 @@ FE20..FE2F    ; Mn #  [16] COMBINING LIG
 11234         ; Mn #       KHOJKI SIGN ANUSVARA
 11236..11237  ; Mn #   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; Mn #       KHOJKI SIGN SUKUN
+11241         ; Mn #       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; Mn #       KHUDAWADI SIGN ANUSVARA
 112E3..112EA  ; Mn #   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
 11300..11301  ; Mn #   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -2944,6 +2967,12 @@ FE20..FE2F    ; Mn #  [16] COMBINING LIG
 11D95         ; Mn #       GUNJALA GONDI SIGN ANUSVARA
 11D97         ; Mn #       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; Mn #   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11F00..11F01  ; Mn #   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A  ; Mn #   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40         ; Mn #       KAWI VOWEL SIGN EU
+11F42         ; Mn #       KAWI CONJOINER
+13440         ; Mn #       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; Mn #  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; Mn #   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; Mn #   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; Mn #       MIAO SIGN CONSONANT MODIFIER BAR
@@ -2968,14 +2997,16 @@ FE20..FE2F    ; Mn #  [16] COMBINING LIG
 1E01B..1E021  ; Mn #   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; Mn #   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; Mn #   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; Mn #       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; Mn #   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; Mn #       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; Mn #   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; Mn #   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; Mn #   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; Mn #   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 E0100..E01EF  ; Mn # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 1950
+# Total code points: 1985
 
 # ================================================
 
@@ -3028,6 +3059,7 @@ A670..A672    ; Me #   [3] COMBINING CYR
 0CC7..0CC8    ; Mc #   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
 0CCA..0CCB    ; Mc #   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
 0CD5..0CD6    ; Mc #   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CF3          ; Mc #       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D02..0D03    ; Mc #   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3E..0D40    ; Mc #   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
 0D46..0D48    ; Mc #   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
@@ -3166,12 +3198,16 @@ ABEC          ; Mc #       MEETEI MAYEK 
 11D93..11D94  ; Mc #   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
 11D96         ; Mc #       GUNJALA GONDI SIGN VISARGA
 11EF5..11EF6  ; Mc #   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F03         ; Mc #       KAWI SIGN VISARGA
+11F34..11F35  ; Mc #   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F3E..11F3F  ; Mc #   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F41         ; Mc #       KAWI SIGN KILLER
 16F51..16F87  ; Mc #  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
 16FF0..16FF1  ; Mc #   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
 1D165..1D166  ; Mc #   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
 1D16D..1D172  ; Mc #   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
 
-# Total code points: 445
+# Total code points: 452
 
 # ================================================
 
@@ -3231,16 +3267,18 @@ FF10..FF19    ; Nd #  [10] FULLWIDTH DIG
 11C50..11C59  ; Nd #  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
 11D50..11D59  ; Nd #  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11DA0..11DA9  ; Nd #  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59  ; Nd #  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 16A60..16A69  ; Nd #  [10] MRO DIGIT ZERO..MRO DIGIT NINE
 16AC0..16AC9  ; Nd #  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
 16B50..16B59  ; Nd #  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Nd #  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 1E140..1E149  ; Nd #  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
 1E2F0..1E2F9  ; Nd #  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9  ; Nd #  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E950..1E959  ; Nd #  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
 1FBF0..1FBF9  ; Nd #  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 
-# Total code points: 660
+# Total code points: 680
 
 # ================================================
 
@@ -3327,6 +3365,7 @@ A830..A835    ; No #   [6] NORTH INDIC F
 11FC0..11FD4  ; No #  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 16B5B..16B61  ; No #   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
 16E80..16E96  ; No #  [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
+1D2C0..1D2D3  ; No #  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; No #  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D360..1D378  ; No #  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
 1E8C7..1E8CF  ; No #   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
@@ -3337,7 +3376,7 @@ A830..A835    ; No #   [6] NORTH INDIC F
 1ED2F..1ED3D  ; No #  [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
 1F100..1F10C  ; No #  [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 
-# Total code points: 895
+# Total code points: 915
 
 # ================================================
 
@@ -3398,13 +3437,13 @@ FEFF          ; Cf #       ZERO WIDTH NO
 FFF9..FFFB    ; Cf #   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
 110BD         ; Cf #       KAITHI NUMBER SIGN
 110CD         ; Cf #       KAITHI NUMBER SIGN ABOVE
-13430..13438  ; Cf #   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F  ; Cf #  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
 1BCA0..1BCA3  ; Cf #   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
 1D173..1D17A  ; Cf #   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
 E0001         ; Cf #       LANGUAGE TAG
 E0020..E007F  ; Cf #  [96] TAG SPACE..CANCEL TAG
 
-# Total code points: 163
+# Total code points: 170
 
 # ================================================
 
@@ -3806,9 +3845,11 @@ FF64..FF65    ; Po #   [2] HALFWIDTH IDE
 11A3F..11A46  ; Po #   [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
 11A9A..11A9C  ; Po #   [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
 11A9E..11AA2  ; Po #   [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+11B00..11B09  ; Po #  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C41..11C45  ; Po #   [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
 11C70..11C71  ; Po #   [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
 11EF7..11EF8  ; Po #   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F4F  ; Po #  [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
 11FFF         ; Po #       TAMIL PUNCTUATION END OF TEXT
 12470..12474  ; Po #   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 12FF1..12FF2  ; Po #   [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
@@ -3822,7 +3863,7 @@ FF64..FF65    ; Po #   [2] HALFWIDTH IDE
 1DA87..1DA8B  ; Po #   [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
 1E95E..1E95F  ; Po #   [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
 
-# Total code points: 605
+# Total code points: 628
 
 # ================================================
 
@@ -4126,10 +4167,10 @@ FFFC..FFFD    ; So #   [2] OBJECT REPLAC
 1F260..1F265  ; So #   [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
 1F300..1F3FA  ; So # [251] CYCLONE..AMPHORA
 1F400..1F6D7  ; So # [728] RAT..ELEVATOR
-1F6DD..1F6EC  ; So #  [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6DC..1F6EC  ; So #  [17] WIRELESS..AIRPLANE ARRIVING
 1F6F0..1F6FC  ; So #  [13] SATELLITE..ROLLER SKATE
-1F700..1F773  ; So # [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8  ; So #  [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776  ; So # [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9  ; So #  [95] HAUMEA..NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; So #  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
 1F7F0         ; So #       HEAVY EQUALS SIGN
 1F800..1F80B  ; So #  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -4140,19 +4181,17 @@ FFFC..FFFD    ; So #   [2] OBJECT REPLAC
 1F8B0..1F8B1  ; So #   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
 1F900..1FA53  ; So # [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
 1FA60..1FA6D  ; So #  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74  ; So #   [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C  ; So #   [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86  ; So #   [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC  ; So #  [29] RINGED PLANET..HAMSA
-1FAB0..1FABA  ; So #  [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5  ; So #   [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9  ; So #  [10] BLUEBERRIES..JAR
-1FAE0..1FAE7  ; So #   [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6  ; So #   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C  ; So #  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; So #   [9] YO-YO..FLUTE
+1FA90..1FABD  ; So #  [46] RINGED PLANET..WING
+1FABF..1FAC5  ; So #   [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB  ; So #  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; So #   [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8  ; So #   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 1FB00..1FB92  ; So # [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; So #  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 
-# Total code points: 6605
+# Total code points: 6634
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DJoinGroup.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DJoinGroup.txt,v
diff -u -p -a -u -p -r1.6 DJoinGroup.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DJoinGroup.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DJoinGroup.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedJoiningGroup-14.0.0.txt
-# Date: 2021-05-11, 21:19:35 GMT
-# © 2021 Unicode®, Inc.
+# DerivedJoiningGroup-15.0.0.txt
+# Date: 2022-02-26, 00:38:32 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DJoinType.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DJoinType.txt,v
diff -u -p -a -u -p -r1.6 DJoinType.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DJoinType.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DJoinType.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedJoiningType-14.0.0.txt
-# Date: 2021-05-28, 21:49:06 GMT
-# © 2021 Unicode®, Inc.
+# DerivedJoiningType-15.0.0.txt
+# Date: 2022-04-26, 23:14:36 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -296,7 +296,7 @@ A872          ; L # Lo       PHAGS-PA SU
 0E47..0E4E    ; T # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
 0EB1          ; T # Mn       LAO VOWEL SIGN MAI KAN
 0EB4..0EBC    ; T # Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD    ; T # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; T # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0F18..0F19    ; T # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
 0F35          ; T # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA
 0F37          ; T # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -438,6 +438,7 @@ FFF9..FFFB    ; T # Cf   [3] INTERLINEAR
 10AE5..10AE6  ; T # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; T # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; T # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; T # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; T # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; T # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11001         ; T # Mn       BRAHMI SIGN ANUSVARA
@@ -460,6 +461,7 @@ FFF9..FFFB    ; T # Cf   [3] INTERLINEAR
 11234         ; T # Mn       KHOJKI SIGN ANUSVARA
 11236..11237  ; T # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; T # Mn       KHOJKI SIGN SUKUN
+11241         ; T # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; T # Mn       KHUDAWADI SIGN ANUSVARA
 112E3..112EA  ; T # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
 11300..11301  ; T # Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -521,7 +523,13 @@ FFF9..FFFB    ; T # Cf   [3] INTERLINEAR
 11D95         ; T # Mn       GUNJALA GONDI SIGN ANUSVARA
 11D97         ; T # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; T # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
-13430..13438  ; T # Cf   [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+11F00..11F01  ; T # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A  ; T # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40         ; T # Mn       KAWI VOWEL SIGN EU
+11F42         ; T # Mn       KAWI CONJOINER
+13430..1343F  ; T # Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440         ; T # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; T # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; T # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; T # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; T # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -548,9 +556,11 @@ FFF9..FFFB    ; T # Cf   [3] INTERLINEAR
 1E01B..1E021  ; T # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; T # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; T # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; T # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; T # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; T # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; T # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; T # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; T # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; T # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 1E94B         ; T # Lm       ADLAM NASALIZATION MARK
@@ -558,6 +568,6 @@ E0001         ; T # Cf       LANGUAGE TA
 E0020..E007F  ; T # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2108
+# Total code points: 2150
 
 # EOF
Index: gnu/usr.bin/perl/lib/unicore/extracted/DLineBreak.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DLineBreak.txt,v
diff -u -p -a -u -p -r1.6 DLineBreak.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DLineBreak.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DLineBreak.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedLineBreak-14.0.0.txt
-# Date: 2021-07-10, 00:35:09 GMT
-# © 2021 Unicode®, Inc.
+# DerivedLineBreak-15.0.0.txt
+# Date: 2022-08-05, 17:39:33 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -16,6 +16,49 @@
 
 # @missing: 0000..10FFFF; Unknown
 
+# 20A0..20CF Currency_Symbols
+# @missing: 20A0..20CF; Prefix_Numeric
+
+# 3400..4DBF CJK_Unified_Ideographs_Extension_A
+# @missing: 3400..4DBF; Ideographic
+
+# 4E00..9FFF CJK_Unified_Ideographs
+# @missing: 4E00..9FFF; Ideographic
+
+# F900..FAFF CJK_Compatibility_Ideographs
+# @missing: F900..FAFF; Ideographic
+
+# 1F000..1F02F Mahjong_Tiles
+# 1F030..1F09F Domino_Tiles
+# 1F0A0..1F0FF Playing_Cards
+# 1F100..1F1FF Enclosed_Alphanumeric_Supplement
+# 1F200..1F2FF Enclosed_Ideographic_Supplement
+# 1F300..1F5FF Miscellaneous_Symbols_And_Pictographs
+# 1F600..1F64F Emoticons
+# 1F650..1F67F Ornamental_Dingbats
+# 1F680..1F6FF Transport_And_Map_Symbols
+# 1F700..1F77F Alchemical_Symbols
+# 1F780..1F7FF Geometric_Shapes_Extended
+# 1F800..1F8FF Supplemental_Arrows_C
+# 1F900..1F9FF Supplemental_Symbols_And_Pictographs
+# 1FA00..1FA6F Chess_Symbols
+# 1FA70..1FAFF Symbols_And_Pictographs_Extended_A
+# @missing: 1F000..1FAFF; Ideographic
+
+# @missing: 1FC00..1FFFD; Ideographic
+
+# 20000..2A6DF CJK_Unified_Ideographs_Extension_B
+# 2A700..2B73F CJK_Unified_Ideographs_Extension_C
+# 2B740..2B81F CJK_Unified_Ideographs_Extension_D
+# 2B820..2CEAF CJK_Unified_Ideographs_Extension_E
+# 2CEB0..2EBEF CJK_Unified_Ideographs_Extension_F
+# 2F800..2FA1F CJK_Compatibility_Ideographs_Supplement
+# @missing: 20000..2FFFD; Ideographic
+
+# 30000..3134F CJK_Unified_Ideographs_Extension_G
+# 31350..323AF CJK_Unified_Ideographs_Extension_H
+# @missing: 30000..3FFFD; Ideographic
+
 # ================================================
 
 # Line_Break=Unknown
@@ -24,8 +67,8 @@ E000..F8FF    ; XX # Co [6400] <private-
 F0000..FFFFD  ; XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
 100000..10FFFD; XX # Co [65534] <private-use-100000>..<private-use-10FFFD>
 
-# The above property value applies to 762997 code points not listed here.
-# Total code points: 900465
+# The above property value applies to 762730 code points not listed here.
+# Total code points: 900198
 
 # ================================================
 
@@ -118,10 +161,12 @@ FF62          ; OP # Ps       HALFWIDTH 
 13288         ; OP # Lo       EGYPTIAN HIEROGLYPH O036C
 13379         ; OP # Lo       EGYPTIAN HIEROGLYPH V011A
 13437         ; OP # Cf       EGYPTIAN HIEROGLYPH BEGIN SEGMENT
+1343C         ; OP # Cf       EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+1343E         ; OP # Cf       EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
 145CE         ; OP # Lo       ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
 1E95E..1E95F  ; OP # Po   [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
 
-# Total code points: 92
+# Total code points: 94
 
 # ================================================
 
@@ -215,9 +260,11 @@ FF64          ; CL # Po       HALFWIDTH 
 13289         ; CL # Lo       EGYPTIAN HIEROGLYPH O036D
 1337A..1337B  ; CL # Lo   [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
 13438         ; CL # Cf       EGYPTIAN HIEROGLYPH END SEGMENT
+1343D         ; CL # Cf       EGYPTIAN HIEROGLYPH END ENCLOSURE
+1343F         ; CL # Cf       EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
 145CF         ; CL # Lo       ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
 
-# Total code points: 95
+# Total code points: 97
 
 # ================================================
 
@@ -266,13 +313,16 @@ FF64          ; CL # Po       HALFWIDTH 
 0F12          ; GL # Po       TIBETAN MARK RGYA GRAM SHAD
 0FD9..0FDA    ; GL # Po   [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
 180E          ; GL # Cf       MONGOLIAN VOWEL SEPARATOR
+1DCD          ; GL # Mn       COMBINING DOUBLE CIRCUMFLEX ABOVE
+1DFC          ; GL # Mn       COMBINING DOUBLE INVERTED BREVE BELOW
 2007          ; GL # Zs       FIGURE SPACE
 2011          ; GL # Pd       NON-BREAKING HYPHEN
 202F          ; GL # Zs       NARROW NO-BREAK SPACE
 13430..13436  ; GL # Cf   [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
+13439..1343B  ; GL # Cf   [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
 16FE4         ; GL # Mn       KHITAN SMALL SCRIPT FILLER
 
-# Total code points: 26
+# Total code points: 31
 
 # ================================================
 
@@ -380,7 +430,6 @@ FE13..FE14    ; IS # Po   [2] PRESENTATI
 20B7..20BA    ; PR # Sc   [4] SPESMILO SIGN..TURKISH LIRA SIGN
 20BC..20BD    ; PR # Sc   [2] MANAT SIGN..RUBLE SIGN
 20BF          ; PR # Sc       BITCOIN SIGN
-20C1..20CF    ; PR # Cn  [15] <reserved-20C1>..<reserved-20CF>
 2116          ; PR # So       NUMERO SIGN
 2212..2213    ; PR # Sm   [2] MINUS SIGN..MINUS-OR-PLUS SIGN
 FE69          ; PR # Sc       SMALL DOLLAR SIGN
@@ -389,6 +438,7 @@ FFE1          ; PR # Sc       FULLWIDTH 
 FFE5..FFE6    ; PR # Sc   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
 1E2FF         ; PR # Sc       WANCHO NGUN SIGN
 
+# The above property value applies to 15 code points not listed here.
 # Total code points: 67
 
 # ================================================
@@ -405,6 +455,7 @@ FFE5..FFE6    ; PR # Sc   [2] FULLWIDTH 
 09F9          ; PO # No       BENGALI CURRENCY DENOMINATOR SIXTEEN
 0D79          ; PO # So       MALAYALAM DATE MARK
 2030..2037    ; PO # Po   [8] PER MILLE SIGN..REVERSED TRIPLE PRIME
+2057          ; PO # Po       QUADRUPLE PRIME
 20A7          ; PO # Sc       PESETA SIGN
 20B6          ; PO # Sc       LIVRE TOURNOIS SIGN
 20BB          ; PO # Sc       NORDIC MARK SIGN
@@ -421,7 +472,7 @@ FFE0          ; PO # Sc       FULLWIDTH 
 1ECAC         ; PO # So       INDIC SIYAQ PLACEHOLDER
 1ECB0         ; PO # Sc       INDIC SIYAQ RUPEE MARK
 
-# Total code points: 37
+# Total code points: 38
 
 # ================================================
 
@@ -481,16 +532,18 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAY
 11C50..11C59  ; NU # Nd  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
 11D50..11D59  ; NU # Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11DA0..11DA9  ; NU # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59  ; NU # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 16A60..16A69  ; NU # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
 16AC0..16AC9  ; NU # Nd  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
 16B50..16B59  ; NU # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; NU # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 1E140..1E149  ; NU # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
 1E2F0..1E2F9  ; NU # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9  ; NU # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E950..1E959  ; NU # Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
 1FBF0..1FBF9  ; NU # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 
-# Total code points: 652
+# Total code points: 672
 
 # ================================================
 
@@ -855,7 +908,6 @@ ABF0..ABF9    ; NU # Nd  [10] MEETEI MAY
 2053          ; AL # Po       SWUNG DASH
 2054          ; AL # Pc       INVERTED UNDERTIE
 2055          ; AL # Po       FLOWER PUNCTUATION MARK
-2057          ; AL # Po       QUADRUPLE PRIME
 205C          ; AL # Po       DOTTED CROSS
 2061..2064    ; AL # Cf   [4] FUNCTION APPLICATION..INVISIBLE PLUS
 2070          ; AL # No       SUPERSCRIPT ZERO
@@ -1300,6 +1352,7 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 11213..1122B  ; AL # Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
 1123A         ; AL # Po       KHOJKI WORD SEPARATOR
 1123D         ; AL # Po       KHOJKI ABBREVIATION SIGN
+1123F..11240  ; AL # Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
 11280..11286  ; AL # Lo   [7] MULTANI LETTER A..MULTANI LETTER GA
 11288         ; AL # Lo       MULTANI LETTER GHA
 1128A..1128D  ; AL # Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1372,6 +1425,9 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 11D98         ; AL # Lo       GUNJALA GONDI OM
 11EE0..11EF2  ; AL # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
 11EF7..11EF8  ; AL # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F02         ; AL # Lo       KAWI SIGN REPHA
+11F04..11F10  ; AL # Lo  [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33  ; AL # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
 11FB0         ; AL # Lo       LISU LETTER YHA
 11FC0..11FD4  ; AL # No  [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
 11FD5..11FDC  ; AL # So   [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -1385,7 +1441,8 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 1325E..13281  ; AL # Lo  [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033
 13283..13285  ; AL # Lo   [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036
 1328A..13378  ; AL # Lo [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
-1337C..1342E  ; AL # Lo [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
+1337C..1342F  ; AL # Lo [180] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH V011D
+13441..13446  ; AL # Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
 14400..145CD  ; AL # Lo [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409
 145D0..14646  ; AL # Lo [119] ANATOLIAN HIEROGLYPH A411..ANATOLIAN HIEROGLYPH A530
 16800..16A38  ; AL # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
@@ -1425,6 +1482,7 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 1D1AE..1D1EA  ; AL # So  [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
 1D200..1D241  ; AL # So  [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
 1D245         ; AL # So       GREEK MUSICAL LEIMMA
+1D2C0..1D2D3  ; AL # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; AL # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D300..1D356  ; AL # So  [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
 1D360..1D378  ; AL # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -1477,12 +1535,16 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 1DF00..1DF09  ; AL # L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
 1DF0A         ; AL # Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
 1DF0B..1DF1E  ; AL # L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A  ; AL # L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D  ; AL # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
 1E100..1E12C  ; AL # Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
 1E137..1E13D  ; AL # Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
 1E14E         ; AL # Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
 1E14F         ; AL # So       NYIAKENG PUACHUE HMONG CIRCLED CA
 1E290..1E2AD  ; AL # Lo  [30] TOTO LETTER PA..TOTO LETTER A
 1E2C0..1E2EB  ; AL # Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA  ; AL # Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB         ; AL # Lm       NAG MUNDARI SIGN OJOD
 1E7E0..1E7E6  ; AL # Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
 1E7E8..1E7EB  ; AL # Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
 1E7ED..1E7EE  ; AL # Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1560,7 +1622,7 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 1FB00..1FB92  ; AL # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
 1FB94..1FBCA  ; AL # So  [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
 
-# Total code points: 22043
+# Total code points: 22215
 
 # ================================================
 
@@ -1652,9 +1714,7 @@ FFED..FFEE    ; AL # So   [2] HALFWIDTH 
 A016..A48C    ; ID # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
 A490..A4C6    ; ID # So  [55] YI RADICAL QOT..YI RADICAL KE
 F900..FA6D    ; ID # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E..FA6F    ; ID # Cn   [2] <reserved-FA6E>..<reserved-FA6F>
 FA70..FAD9    ; ID # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA..FAFF    ; ID # Cn  [38] <reserved-FADA>..<reserved-FAFF>
 FE30          ; ID # Po       PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
 FE31..FE32    ; ID # Pd   [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
 FE33..FE34    ; ID # Pc   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
@@ -1696,37 +1756,26 @@ FFDA..FFDC    ; ID # Lo   [3] HALFWIDTH 
 FFE2          ; ID # Sm       FULLWIDTH NOT SIGN
 FFE3          ; ID # Sk       FULLWIDTH MACRON
 FFE4          ; ID # So       FULLWIDTH BROKEN BAR
+11F45..11F4F  ; ID # Po  [11] KAWI PUNCTUATION SECTION MARKER..KAWI PUNCTUATION CLOSING SPIRAL
 17000..187F7  ; ID # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
 18800..18AFF  ; ID # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
 18D00..18D08  ; ID # Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
 1B000..1B122  ; ID # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
 1B170..1B2FB  ; ID # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
 1F000..1F02B  ; ID # So  [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
-1F02C..1F02F  ; ID # Cn   [4] <reserved-1F02C>..<reserved-1F02F>
 1F030..1F093  ; ID # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
-1F094..1F09F  ; ID # Cn  [12] <reserved-1F094>..<reserved-1F09F>
 1F0A0..1F0AE  ; ID # So  [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0AF..1F0B0  ; ID # Cn   [2] <reserved-1F0AF>..<reserved-1F0B0>
 1F0B1..1F0BF  ; ID # So  [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
-1F0C0         ; ID # Cn       <reserved-1F0C0>
 1F0C1..1F0CF  ; ID # So  [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D0         ; ID # Cn       <reserved-1F0D0>
 1F0D1..1F0F5  ; ID # So  [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
-1F0F6..1F0FF  ; ID # Cn  [10] <reserved-1F0F6>..<reserved-1F0FF>
 1F10D..1F10F  ; ID # So   [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
 1F16D..1F16F  ; ID # So   [3] CIRCLED CC..CIRCLED HUMAN FIGURE
 1F1AD         ; ID # So       MASK WORK SYMBOL
-1F1AE..1F1E5  ; ID # Cn  [56] <reserved-1F1AE>..<reserved-1F1E5>
 1F200..1F202  ; ID # So   [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
-1F203..1F20F  ; ID # Cn  [13] <reserved-1F203>..<reserved-1F20F>
 1F210..1F23B  ; ID # So  [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
-1F23C..1F23F  ; ID # Cn   [4] <reserved-1F23C>..<reserved-1F23F>
 1F240..1F248  ; ID # So   [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F249..1F24F  ; ID # Cn   [7] <reserved-1F249>..<reserved-1F24F>
 1F250..1F251  ; ID # So   [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F252..1F25F  ; ID # Cn  [14] <reserved-1F252>..<reserved-1F25F>
 1F260..1F265  ; ID # So   [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
-1F266..1F2FF  ; ID # Cn [154] <reserved-1F266>..<reserved-1F2FF>
 1F300..1F384  ; ID # So [133] CYCLONE..CHRISTMAS TREE
 1F386..1F39B  ; ID # So  [22] FIREWORKS..CONTROL KNOBS
 1F39E..1F3B4  ; ID # So  [23] FILM FRAMES..FLOWER PLAYING CARDS
@@ -1765,25 +1814,14 @@ FFE4          ; ID # So       FULLWIDTH 
 1F6B7..1F6BF  ; ID # So   [9] NO PEDESTRIANS..SHOWER
 1F6C1..1F6CB  ; ID # So  [11] BATHTUB..COUCH AND LAMP
 1F6CD..1F6D7  ; ID # So  [11] SHOPPING BAGS..ELEVATOR
-1F6D8..1F6DC  ; ID # Cn   [5] <reserved-1F6D8>..<reserved-1F6DC>
-1F6DD..1F6EC  ; ID # So  [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
-1F6ED..1F6EF  ; ID # Cn   [3] <reserved-1F6ED>..<reserved-1F6EF>
+1F6DC..1F6EC  ; ID # So  [17] WIRELESS..AIRPLANE ARRIVING
 1F6F0..1F6FC  ; ID # So  [13] SATELLITE..ROLLER SKATE
-1F6FD..1F6FF  ; ID # Cn   [3] <reserved-1F6FD>..<reserved-1F6FF>
-1F774..1F77F  ; ID # Cn  [12] <reserved-1F774>..<reserved-1F77F>
-1F7D5..1F7D8  ; ID # So   [4] CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
-1F7D9..1F7DF  ; ID # Cn   [7] <reserved-1F7D9>..<reserved-1F7DF>
+1F774..1F776  ; ID # So   [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F77B..1F77F  ; ID # So   [5] HAUMEA..ORCUS
+1F7D5..1F7D9  ; ID # So   [5] CIRCLED TRIANGLE..NINE POINTED WHITE STAR
 1F7E0..1F7EB  ; ID # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
-1F7EC..1F7EF  ; ID # Cn   [4] <reserved-1F7EC>..<reserved-1F7EF>
 1F7F0         ; ID # So       HEAVY EQUALS SIGN
-1F7F1..1F7FF  ; ID # Cn  [15] <reserved-1F7F1>..<reserved-1F7FF>
-1F80C..1F80F  ; ID # Cn   [4] <reserved-1F80C>..<reserved-1F80F>
-1F848..1F84F  ; ID # Cn   [8] <reserved-1F848>..<reserved-1F84F>
-1F85A..1F85F  ; ID # Cn   [6] <reserved-1F85A>..<reserved-1F85F>
-1F888..1F88F  ; ID # Cn   [8] <reserved-1F888>..<reserved-1F88F>
-1F8AE..1F8AF  ; ID # Cn   [2] <reserved-1F8AE>..<reserved-1F8AF>
 1F8B0..1F8B1  ; ID # So   [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
-1F8B2..1F8FF  ; ID # Cn  [78] <reserved-1F8B2>..<reserved-1F8FF>
 1F90D..1F90E  ; ID # So   [2] WHITE HEART..BROWN HEART
 1F910..1F917  ; ID # So   [8] ZIPPER-MOUTH FACE..HUGGING FACE
 1F920..1F925  ; ID # So   [6] FACE WITH COWBOY HAT..LYING FACE
@@ -1796,43 +1834,24 @@ FFE4          ; ID # So       FULLWIDTH 
 1F9BC..1F9CC  ; ID # So  [17] MOTORIZED WHEELCHAIR..TROLL
 1F9D0         ; ID # So       FACE WITH MONOCLE
 1F9DE..1F9FF  ; ID # So  [34] GENIE..NAZAR AMULET
-1FA54..1FA5F  ; ID # Cn  [12] <reserved-1FA54>..<reserved-1FA5F>
 1FA60..1FA6D  ; ID # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA6E..1FA6F  ; ID # Cn   [2] <reserved-1FA6E>..<reserved-1FA6F>
-1FA70..1FA74  ; ID # So   [5] BALLET SHOES..THONG SANDAL
-1FA75..1FA77  ; ID # Cn   [3] <reserved-1FA75>..<reserved-1FA77>
-1FA78..1FA7C  ; ID # So   [5] DROP OF BLOOD..CRUTCH
-1FA7D..1FA7F  ; ID # Cn   [3] <reserved-1FA7D>..<reserved-1FA7F>
-1FA80..1FA86  ; ID # So   [7] YO-YO..NESTING DOLLS
-1FA87..1FA8F  ; ID # Cn   [9] <reserved-1FA87>..<reserved-1FA8F>
-1FA90..1FAAC  ; ID # So  [29] RINGED PLANET..HAMSA
-1FAAD..1FAAF  ; ID # Cn   [3] <reserved-1FAAD>..<reserved-1FAAF>
-1FAB0..1FABA  ; ID # So  [11] FLY..NEST WITH EGGS
-1FABB..1FABF  ; ID # Cn   [5] <reserved-1FABB>..<reserved-1FABF>
-1FAC0..1FAC2  ; ID # So   [3] ANATOMICAL HEART..PEOPLE HUGGING
-1FAC6..1FACF  ; ID # Cn  [10] <reserved-1FAC6>..<reserved-1FACF>
-1FAD0..1FAD9  ; ID # So  [10] BLUEBERRIES..JAR
-1FADA..1FADF  ; ID # Cn   [6] <reserved-1FADA>..<reserved-1FADF>
-1FAE0..1FAE7  ; ID # So   [8] MELTING FACE..BUBBLES
-1FAE8..1FAEF  ; ID # Cn   [8] <reserved-1FAE8>..<reserved-1FAEF>
-1FAF7..1FAFF  ; ID # Cn   [9] <reserved-1FAF7>..<reserved-1FAFF>
-1FC00..1FFFD  ; ID # Cn [1022] <reserved-1FC00>..<reserved-1FFFD>
+1FA70..1FA7C  ; ID # So  [13] BALLET SHOES..CRUTCH
+1FA80..1FA88  ; ID # So   [9] YO-YO..FLUTE
+1FA90..1FABD  ; ID # So  [46] RINGED PLANET..WING
+1FABF..1FAC2  ; ID # So   [4] GOOSE..PEOPLE HUGGING
+1FACE..1FADB  ; ID # So  [14] MOOSE..PEA POD
+1FAE0..1FAE8  ; ID # So   [9] MELTING FACE..SHAKING FACE
 20000..2A6DF  ; ID # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A6E0..2A6FF  ; ID # Cn  [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738  ; ID # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F  ; ID # Cn   [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739  ; ID # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
 2B740..2B81D  ; ID # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
-2B81E..2B81F  ; ID # Cn   [2] <reserved-2B81E>..<reserved-2B81F>
 2B820..2CEA1  ; ID # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
-2CEA2..2CEAF  ; ID # Cn  [14] <reserved-2CEA2>..<reserved-2CEAF>
 2CEB0..2EBE0  ; ID # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
-2EBE1..2F7FF  ; ID # Cn [3103] <reserved-2EBE1>..<reserved-2F7FF>
 2F800..2FA1D  ; ID # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E..2FFFD  ; ID # Cn [1504] <reserved-2FA1E>..<reserved-2FFFD>
 30000..3134A  ; ID # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD  ; ID # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
+31350..323AF  ; ID # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
 
-# Total code points: 172456
+# The above property value applies to 62600 code points not listed here.
+# Total code points: 172465
 
 # ================================================
 
@@ -1978,6 +1997,7 @@ FE19          ; IN # Po       PRESENTATI
 0CCC..0CCD    ; CM # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
 0CD5..0CD6    ; CM # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
 0CE2..0CE3    ; CM # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3          ; CM # Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
 0D00..0D01    ; CM # Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
 0D02..0D03    ; CM # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
 0D3B..0D3C    ; CM # Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
@@ -2072,7 +2092,9 @@ FE19          ; IN # Po       PRESENTATI
 1CF4          ; CM # Mn       VEDIC TONE CANDRA ABOVE
 1CF7          ; CM # Mc       VEDIC SIGN ATIKRAMA
 1CF8..1CF9    ; CM # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-1DC0..1DFF    ; CM # Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DCC    ; CM # Mn  [13] COMBINING DOTTED GRAVE ACCENT..COMBINING MACRON-BREVE
+1DCE..1DFB    ; CM # Mn  [46] COMBINING OGONEK ABOVE..COMBINING DELETION MARK
+1DFD..1DFF    ; CM # Mn   [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
 200C          ; CM # Cf       ZERO WIDTH NON-JOINER
 200E..200F    ; CM # Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
 202A..202E    ; CM # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
@@ -2152,6 +2174,7 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEA
 10AE5..10AE6  ; CM # Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
 10D24..10D27  ; CM # Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
 10EAB..10EAC  ; CM # Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF  ; CM # Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
 10F46..10F50  ; CM # Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
 10F82..10F85  ; CM # Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
 11000         ; CM # Mc       BRAHMI SIGN CANDRABINDU
@@ -2188,6 +2211,7 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEA
 11235         ; CM # Mc       KHOJKI SIGN VIRAMA
 11236..11237  ; CM # Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
 1123E         ; CM # Mn       KHOJKI SIGN SUKUN
+11241         ; CM # Mn       KHOJKI VOWEL SIGN VOCALIC R
 112DF         ; CM # Mn       KHUDAWADI SIGN ANUSVARA
 112E0..112E2  ; CM # Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
 112E3..112EA  ; CM # Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
@@ -2292,6 +2316,16 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEA
 11D97         ; CM # Mn       GUNJALA GONDI VIRAMA
 11EF3..11EF4  ; CM # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
 11EF5..11EF6  ; CM # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01  ; CM # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03         ; CM # Mc       KAWI SIGN VISARGA
+11F34..11F35  ; CM # Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A  ; CM # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F  ; CM # Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40         ; CM # Mn       KAWI VOWEL SIGN EU
+11F41         ; CM # Mc       KAWI SIGN KILLER
+11F42         ; CM # Mn       KAWI CONJOINER
+13440         ; CM # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455  ; CM # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 16AF0..16AF4  ; CM # Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
 16B30..16B36  ; CM # Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
 16F4F         ; CM # Mn       MIAO SIGN CONSONANT MODIFIER BAR
@@ -2321,16 +2355,18 @@ FFF9..FFFB    ; CM # Cf   [3] INTERLINEA
 1E01B..1E021  ; CM # Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
 1E023..1E024  ; CM # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
 1E026..1E02A  ; CM # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F         ; CM # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
 1E130..1E136  ; CM # Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
 1E2AE         ; CM # Mn       TOTO SIGN RISING TONE
 1E2EC..1E2EF  ; CM # Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF  ; CM # Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
 1E8D0..1E8D6  ; CM # Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
 1E944..1E94A  ; CM # Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
 E0001         ; CM # Cf       LANGUAGE TAG
 E0020..E007F  ; CM # Cf  [96] TAG SPACE..CANCEL TAG
 E0100..E01EF  ; CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
 
-# Total code points: 2399
+# Total code points: 2438
 
 # ================================================
 
@@ -2360,9 +2396,10 @@ A8FC          ; BB # Po       DEVANAGARI
 11A3F         ; BB # Po       ZANABAZAR SQUARE INITIAL HEAD MARK
 11A45         ; BB # Po       ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK
 11A9E..11AA0  ; BB # Po   [3] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO HEAD MARK WITH MOON AND SUN
+11B00..11B09  ; BB # Po  [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
 11C70         ; BB # Po       MARCHEN HEAD MARK
 
-# Total code points: 45
+# Total code points: 55
 
 # ================================================
 
@@ -2461,6 +2498,7 @@ ABEB          ; BA # Po       MEETEI MAY
 11A9A..11A9C  ; BA # Po   [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
 11AA1..11AA2  ; BA # Po   [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2
 11C41..11C45  ; BA # Po   [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+11F43..11F44  ; BA # Po   [2] KAWI DANDA..KAWI DOUBLE DANDA
 11FFF         ; BA # Po       TAMIL PUNCTUATION END OF TEXT
 12470..12474  ; BA # Po   [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
 16A6E..16A6F  ; BA # Po   [2] MRO DANDA..MRO DOUBLE DANDA
@@ -2471,7 +2509,7 @@ ABEB          ; BA # Po       MEETEI MAY
 1BC9F         ; BA # Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP
 1DA87..1DA8A  ; BA # Po   [4] SIGNWRITING COMMA..SIGNWRITING COLON
 
-# Total code points: 247
+# Total code points: 249
 
 # ================================================
 
@@ -2538,7 +2576,7 @@ FFFC          ; CB # So       OBJECT REP
 0EBD          ; SA # Lo       LAO SEMIVOWEL SIGN NYO
 0EC0..0EC4    ; SA # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
 0EC6          ; SA # Lm       LAO KO LA
-0EC8..0ECD    ; SA # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE    ; SA # Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN
 0EDC..0EDF    ; SA # Lo   [4] LAO HO NO..LAO LETTER KHMU NYO
 1000..102A    ; SA # Lo  [43] MYANMAR LETTER KA..MYANMAR LETTER AU
 102B..102C    ; SA # Mc   [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
@@ -2641,7 +2679,7 @@ AADE..AADF    ; SA # Po   [2] TAI VIET S
 1173F         ; SA # So       AHOM SYMBOL VI
 11740..11746  ; SA # Lo   [7] AHOM LETTER CA..AHOM LETTER LLA
 
-# Total code points: 757
+# Total code points: 758
 
 # ================================================
 
@@ -3706,10 +3744,12 @@ FB46..FB4F    ; HL # Lo  [10] HEBREW LET
 31F0..31FF    ; CJ # Lo  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
 FF67..FF6F    ; CJ # Lo   [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU
 FF70          ; CJ # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+1B132         ; CJ # Lo       HIRAGANA LETTER SMALL KO
 1B150..1B152  ; CJ # Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155         ; CJ # Lo       KATAKANA LETTER SMALL KO
 1B164..1B167  ; CJ # Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
 
-# Total code points: 58
+# Total code points: 60
 
 # ================================================
 
@@ -3762,9 +3802,9 @@ FF70          ; CJ # Lm       HALFWIDTH 
 1F9CD..1F9CF  ; EB # So   [3] STANDING PERSON..DEAF PERSON
 1F9D1..1F9DD  ; EB # So  [13] ADULT..ELF
 1FAC3..1FAC5  ; EB # So   [3] PREGNANT MAN..PERSON WITH CROWN
-1FAF0..1FAF6  ; EB # So   [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FAF0..1FAF8  ; EB # So   [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
 
-# Total code points: 132
+# Total code points: 134
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/extracted/DNumType.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DNumType.txt,v
diff -u -p -a -u -p -r1.6 DNumType.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DNumType.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DNumType.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedNumericType-14.0.0.txt
-# Date: 2021-03-08, 06:22:31 GMT
-# © 2021 Unicode®, Inc.
+# DerivedNumericType-15.0.0.txt
+# Date: 2022-02-26, 00:38:36 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -155,6 +155,7 @@ F9FD          ; Numeric # Lo       CJK C
 12400..1246E  ; Numeric # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
 16B5B..16B61  ; Numeric # No   [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
 16E80..16E96  ; Numeric # No  [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
+1D2C0..1D2D3  ; Numeric # No  [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
 1D2E0..1D2F3  ; Numeric # No  [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
 1D360..1D378  ; Numeric # No  [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
 1E8C7..1E8CF  ; Numeric # No   [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
@@ -181,7 +182,7 @@ F9FD          ; Numeric # Lo       CJK C
 2626D         ; Numeric # Lo       CJK UNIFIED IDEOGRAPH-2626D
 2F890         ; Numeric # Lo       CJK COMPATIBILITY IDEOGRAPH-2F890
 
-# Total code points: 1084
+# Total code points: 1104
 
 # ================================================
 
@@ -264,15 +265,17 @@ FF10..FF19    ; Decimal # Nd  [10] FULLW
 11C50..11C59  ; Decimal # Nd  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
 11D50..11D59  ; Decimal # Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
 11DA0..11DA9  ; Decimal # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59  ; Decimal # Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
 16A60..16A69  ; Decimal # Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE
 16AC0..16AC9  ; Decimal # Nd  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
 16B50..16B59  ; Decimal # Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
 1D7CE..1D7FF  ; Decimal # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
 1E140..1E149  ; Decimal # Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
 1E2F0..1E2F9  ; Decimal # Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9  ; Decimal # Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
 1E950..1E959  ; Decimal # Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
 1FBF0..1FBF9  ; Decimal # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
 
-# Total code points: 660
+# Total code points: 680
 
 # EOF
Index: gnu/usr.bin/perl/lib/unicore/extracted/DNumValues.txt
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/extracted/DNumValues.txt,v
diff -u -p -a -u -p -r1.6 DNumValues.txt
--- gnu/usr.bin/perl/lib/unicore/extracted/DNumValues.txt	15 Feb 2023 01:36:34 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/extracted/DNumValues.txt	21 Feb 2024 15:47:02 -0000
@@ -1,11 +1,11 @@
-# DerivedNumericValues-14.0.0.txt
-# Date: 2021-03-08, 06:22:32 GMT
-# © 2021 Unicode®, Inc.
+# DerivedNumericValues-15.0.0.txt
+# Date: 2022-02-26, 00:38:37 GMT
+# © 2022 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
-#   For documentation, see http://www.unicode.org/reports/tr44/
+#   For documentation, see https://www.unicode.org/reports/tr44/
 
 # ================================================
 
@@ -105,10 +105,12 @@ FF10          ; 0.0 ; ; 0 # Nd       FUL
 11C50         ; 0.0 ; ; 0 # Nd       BHAIKSUKI DIGIT ZERO
 11D50         ; 0.0 ; ; 0 # Nd       MASARAM GONDI DIGIT ZERO
 11DA0         ; 0.0 ; ; 0 # Nd       GUNJALA GONDI DIGIT ZERO
+11F50         ; 0.0 ; ; 0 # Nd       KAWI DIGIT ZERO
 16A60         ; 0.0 ; ; 0 # Nd       MRO DIGIT ZERO
 16AC0         ; 0.0 ; ; 0 # Nd       TANGSA DIGIT ZERO
 16B50         ; 0.0 ; ; 0 # Nd       PAHAWH HMONG DIGIT ZERO
 16E80         ; 0.0 ; ; 0 # No       MEDEFAIDRIN DIGIT ZERO
+1D2C0         ; 0.0 ; ; 0 # No       KAKTOVIK NUMERAL ZERO
 1D2E0         ; 0.0 ; ; 0 # No       MAYAN NUMERAL ZERO
 1D7CE         ; 0.0 ; ; 0 # Nd       MATHEMATICAL BOLD DIGIT ZERO
 1D7D8         ; 0.0 ; ; 0 # Nd       MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
@@ -117,12 +119,13 @@ FF10          ; 0.0 ; ; 0 # Nd       FUL
 1D7F6         ; 0.0 ; ; 0 # Nd       MATHEMATICAL MONOSPACE DIGIT ZERO
 1E140         ; 0.0 ; ; 0 # Nd       NYIAKENG PUACHUE HMONG DIGIT ZERO
 1E2F0         ; 0.0 ; ; 0 # Nd       WANCHO DIGIT ZERO
+1E4F0         ; 0.0 ; ; 0 # Nd       NAG MUNDARI DIGIT ZERO
 1E950         ; 0.0 ; ; 0 # Nd       ADLAM DIGIT ZERO
 1F100..1F101  ; 0.0 ; ; 0 # No   [2] DIGIT ZERO FULL STOP..DIGIT ZERO COMMA
 1F10B..1F10C  ; 0.0 ; ; 0 # No   [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
 1FBF0         ; 0.0 ; ; 0 # Nd       SEGMENTED DIGIT ZERO
 
-# Total code points: 84
+# Total code points: 87
 
 # ================================================
 
@@ -514,6 +517,7 @@ FF11          ; 1.0 ; ; 1 # Nd       FUL
 11C5A         ; 1.0 ; ; 1 # No       BHAIKSUKI NUMBER ONE
 11D51         ; 1.0 ; ; 1 # Nd       MASARAM GONDI DIGIT ONE
 11DA1         ; 1.0 ; ; 1 # Nd       GUNJALA GONDI DIGIT ONE
+11F51         ; 1.0 ; ; 1 # Nd       KAWI DIGIT ONE
 12415         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE GESH2
 1241E         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE GESHU
 1242C         ; 1.0 ; ; 1 # Nl       CUNEIFORM NUMERIC SIGN ONE SHARU
@@ -525,6 +529,7 @@ FF11          ; 1.0 ; ; 1 # Nd       FUL
 16B51         ; 1.0 ; ; 1 # Nd       PAHAWH HMONG DIGIT ONE
 16E81         ; 1.0 ; ; 1 # No       MEDEFAIDRIN DIGIT ONE
 16E94         ; 1.0 ; ; 1 # No       MEDEFAIDRIN DIGIT ONE ALTERNATE FORM
+1D2C1         ; 1.0 ; ; 1 # No       KAKTOVIK NUMERAL ONE
 1D2E1         ; 1.0 ; ; 1 # No       MAYAN NUMERAL ONE
 1D360         ; 1.0 ; ; 1 # No       COUNTING ROD UNIT DIGIT ONE
 1D372         ; 1.0 ; ; 1 # No       IDEOGRAPHIC TALLY MARK ONE
@@ -536,6 +541,7 @@ FF11          ; 1.0 ; ; 1 # Nd       FUL
 1D7F7         ; 1.0 ; ; 1 # Nd       MATHEMATICAL MONOSPACE DIGIT ONE
 1E141         ; 1.0 ; ; 1 # Nd       NYIAKENG PUACHUE HMONG DIGIT ONE
 1E2F1         ; 1.0 ; ; 1 # Nd       WANCHO DIGIT ONE
+1E4F1         ; 1.0 ; ; 1 # Nd       NAG MUNDARI DIGIT ONE
 1E8C7         ; 1.0 ; ; 1 # No       MENDE KIKAKUI DIGIT ONE
 1E951         ; 1.0 ; ; 1 # Nd       ADLAM DIGIT ONE
 1EC71         ; 1.0 ; ; 1 # No       INDIC SIYAQ NUMBER ONE
@@ -546,7 +552,7 @@ FF11          ; 1.0 ; ; 1 # Nd       FUL
 1FBF1         ; 1.0 ; ; 1 # Nd       SEGMENTED DIGIT ONE
 2092A         ; 1.0 ; ; 1 # Lo       CJK UNIFIED IDEOGRAPH-2092A
 
-# Total code points: 141
+# Total code points: 144
 
 # ================================================
 
@@ -658,6 +664,7 @@ FF12          ; 2.0 ; ; 2 # Nd       FUL
 11C5B         ; 2.0 ; ; 2 # No       BHAIKSUKI NUMBER TWO
 11D52         ; 2.0 ; ; 2 # Nd       MASARAM GONDI DIGIT TWO
 11DA2         ; 2.0 ; ; 2 # Nd       GUNJALA GONDI DIGIT TWO
+11F52         ; 2.0 ; ; 2 # Nd       KAWI DIGIT TWO
 12400         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO ASH
 12416         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO GESH2
 1241F         ; 2.0 ; ; 2 # Nl       CUNEIFORM NUMERIC SIGN TWO GESHU
@@ -673,6 +680,7 @@ FF12          ; 2.0 ; ; 2 # Nd       FUL
 16B52         ; 2.0 ; ; 2 # Nd       PAHAWH HMONG DIGIT TWO
 16E82         ; 2.0 ; ; 2 # No       MEDEFAIDRIN DIGIT TWO
 16E95         ; 2.0 ; ; 2 # No       MEDEFAIDRIN DIGIT TWO ALTERNATE FORM
+1D2C2         ; 2.0 ; ; 2 # No       KAKTOVIK NUMERAL TWO
 1D2E2         ; 2.0 ; ; 2 # No       MAYAN NUMERAL TWO
 1D361         ; 2.0 ; ; 2 # No       COUNTING ROD UNIT DIGIT TWO
 1D373         ; 2.0 ; ; 2 # No       IDEOGRAPHIC TALLY MARK TWO
@@ -683,6 +691,7 @@ FF12          ; 2.0 ; ; 2 # Nd       FUL
 1D7F8         ; 2.0 ; ; 2 # Nd       MATHEMATICAL MONOSPACE DIGIT TWO
 1E142         ; 2.0 ; ; 2 # Nd       NYIAKENG PUACHUE HMONG DIGIT TWO
 1E2F2         ; 2.0 ; ; 2 # Nd       WANCHO DIGIT TWO
+1E4F2         ; 2.0 ; ; 2 # Nd       NAG MUNDARI DIGIT TWO
 1E8C8         ; 2.0 ; ; 2 # No       MENDE KIKAKUI DIGIT TWO
 1E952         ; 2.0 ; ; 2 # Nd       ADLAM DIGIT TWO
 1EC72         ; 2.0 ; ; 2 # No       INDIC SIYAQ NUMBER TWO
@@ -694,7 +703,7 @@ FF12          ; 2.0 ; ; 2 # Nd       FUL
 1FBF2         ; 2.0 ; ; 2 # Nd       SEGMENTED DIGIT TWO
 22390         ; 2.0 ; ; 2 # Lo       CJK UNIFIED IDEOGRAPH-22390
 
-# Total code points: 140
+# Total code points: 143
 
 # ================================================
 
@@ -800,6 +809,7 @@ FF13          ; 3.0 ; ; 3 # Nd       FUL
 11C5C         ; 3.0 ; ; 3 # No       BHAIKSUKI NUMBER THREE
 11D53         ; 3.0 ; ; 3 # Nd       MASARAM GONDI DIGIT THREE
 11DA3         ; 3.0 ; ; 3 # Nd       GUNJALA GONDI DIGIT THREE
+11F53         ; 3.0 ; ; 3 # Nd       KAWI DIGIT THREE
 12401         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE ASH
 12408         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE DISH
 12417         ; 3.0 ; ; 3 # Nl       CUNEIFORM NUMERIC SIGN THREE GESH2
@@ -816,6 +826,7 @@ FF13          ; 3.0 ; ; 3 # Nd       FUL
 16B53         ; 3.0 ; ; 3 # Nd       PAHAWH HMONG DIGIT THREE
 16E83         ; 3.0 ; ; 3 # No       MEDEFAIDRIN DIGIT THREE
 16E96         ; 3.0 ; ; 3 # No       MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
+1D2C3         ; 3.0 ; ; 3 # No       KAKTOVIK NUMERAL THREE
 1D2E3         ; 3.0 ; ; 3 # No       MAYAN NUMERAL THREE
 1D362         ; 3.0 ; ; 3 # No       COUNTING ROD UNIT DIGIT THREE
 1D374         ; 3.0 ; ; 3 # No       IDEOGRAPHIC TALLY MARK THREE
@@ -826,6 +837,7 @@ FF13          ; 3.0 ; ; 3 # Nd       FUL
 1D7F9         ; 3.0 ; ; 3 # Nd       MATHEMATICAL MONOSPACE DIGIT THREE
 1E143         ; 3.0 ; ; 3 # Nd       NYIAKENG PUACHUE HMONG DIGIT THREE
 1E2F3         ; 3.0 ; ; 3 # Nd       WANCHO DIGIT THREE
+1E4F3         ; 3.0 ; ; 3 # Nd       NAG MUNDARI DIGIT THREE
 1E8C9         ; 3.0 ; ; 3 # No       MENDE KIKAKUI DIGIT THREE
 1E953         ; 3.0 ; ; 3 # Nd       ADLAM DIGIT THREE
 1EC73         ; 3.0 ; ; 3 # No       INDIC SIYAQ NUMBER THREE
@@ -839,7 +851,7 @@ FF13          ; 3.0 ; ; 3 # Nd       FUL
 22998         ; 3.0 ; ; 3 # Lo       CJK UNIFIED IDEOGRAPH-22998
 23B1B         ; 3.0 ; ; 3 # Lo       CJK UNIFIED IDEOGRAPH-23B1B
 
-# Total code points: 141
+# Total code points: 144
 
 # ================================================
 
@@ -939,6 +951,7 @@ FF14          ; 4.0 ; ; 4 # Nd       FUL
 11C5D         ; 4.0 ; ; 4 # No       BHAIKSUKI NUMBER FOUR
 11D54         ; 4.0 ; ; 4 # Nd       MASARAM GONDI DIGIT FOUR
 11DA4         ; 4.0 ; ; 4 # Nd       GUNJALA GONDI DIGIT FOUR
+11F54         ; 4.0 ; ; 4 # Nd       KAWI DIGIT FOUR
 12402         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR ASH
 12409         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR DISH
 1240F         ; 4.0 ; ; 4 # Nl       CUNEIFORM NUMERIC SIGN FOUR U
@@ -955,6 +968,7 @@ FF14          ; 4.0 ; ; 4 # Nd       FUL
 16AC4         ; 4.0 ; ; 4 # Nd       TANGSA DIGIT FOUR
 16B54         ; 4.0 ; ; 4 # Nd       PAHAWH HMONG DIGIT FOUR
 16E84         ; 4.0 ; ; 4 # No       MEDEFAIDRIN DIGIT FOUR
+1D2C4         ; 4.0 ; ; 4 # No       KAKTOVIK NUMERAL FOUR
 1D2E4         ; 4.0 ; ; 4 # No       MAYAN NUMERAL FOUR
 1D363         ; 4.0 ; ; 4 # No       COUNTING ROD UNIT DIGIT FOUR
 1D375         ; 4.0 ; ; 4 # No       IDEOGRAPHIC TALLY MARK FOUR
@@ -965,6 +979,7 @@ FF14          ; 4.0 ; ; 4 # Nd       FUL
 1D7FA         ; 4.0 ; ; 4 # Nd       MATHEMATICAL MONOSPACE DIGIT FOUR
 1E144         ; 4.0 ; ; 4 # Nd       NYIAKENG PUACHUE HMONG DIGIT FOUR
 1E2F4         ; 4.0 ; ; 4 # Nd       WANCHO DIGIT FOUR
+1E4F4         ; 4.0 ; ; 4 # Nd       NAG MUNDARI DIGIT FOUR
 1E8CA         ; 4.0 ; ; 4 # No       MENDE KIKAKUI DIGIT FOUR
 1E954         ; 4.0 ; ; 4 # Nd       ADLAM DIGIT FOUR
 1EC74         ; 4.0 ; ; 4 # No       INDIC SIYAQ NUMBER FOUR
@@ -977,7 +992,7 @@ FF14          ; 4.0 ; ; 4 # Nd       FUL
 200E2         ; 4.0 ; ; 4 # Lo       CJK UNIFIED IDEOGRAPH-200E2
 2626D         ; 4.0 ; ; 4 # Lo       CJK UNIFIED IDEOGRAPH-2626D
 
-# Total code points: 132
+# Total code points: 135
 
 # ================================================
 
@@ -1081,6 +1096,7 @@ FF15          ; 5.0 ; ; 5 # Nd       FUL
 11C5E         ; 5.0 ; ; 5 # No       BHAIKSUKI NUMBER FIVE
 11D55         ; 5.0 ; ; 5 # Nd       MASARAM GONDI DIGIT FIVE
 11DA5         ; 5.0 ; ; 5 # Nd       GUNJALA GONDI DIGIT FIVE
+11F55         ; 5.0 ; ; 5 # Nd       KAWI DIGIT FIVE
 12403         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE ASH
 1240A         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE DISH
 12410         ; 5.0 ; ; 5 # Nl       CUNEIFORM NUMERIC SIGN FIVE U
@@ -1096,6 +1112,7 @@ FF15          ; 5.0 ; ; 5 # Nd       FUL
 16AC5         ; 5.0 ; ; 5 # Nd       TANGSA DIGIT FIVE
 16B55         ; 5.0 ; ; 5 # Nd       PAHAWH HMONG DIGIT FIVE
 16E85         ; 5.0 ; ; 5 # No       MEDEFAIDRIN DIGIT FIVE
+1D2C5         ; 5.0 ; ; 5 # No       KAKTOVIK NUMERAL FIVE
 1D2E5         ; 5.0 ; ; 5 # No       MAYAN NUMERAL FIVE
 1D364         ; 5.0 ; ; 5 # No       COUNTING ROD UNIT DIGIT FIVE
 1D376         ; 5.0 ; ; 5 # No       IDEOGRAPHIC TALLY MARK FIVE
@@ -1107,6 +1124,7 @@ FF15          ; 5.0 ; ; 5 # Nd       FUL
 1D7FB         ; 5.0 ; ; 5 # Nd       MATHEMATICAL MONOSPACE DIGIT FIVE
 1E145         ; 5.0 ; ; 5 # Nd       NYIAKENG PUACHUE HMONG DIGIT FIVE
 1E2F5         ; 5.0 ; ; 5 # Nd       WANCHO DIGIT FIVE
+1E4F5         ; 5.0 ; ; 5 # Nd       NAG MUNDARI DIGIT FIVE
 1E8CB         ; 5.0 ; ; 5 # No       MENDE KIKAKUI DIGIT FIVE
 1E955         ; 5.0 ; ; 5 # Nd       ADLAM DIGIT FIVE
 1EC75         ; 5.0 ; ; 5 # No       INDIC SIYAQ NUMBER FIVE
@@ -1117,7 +1135,7 @@ FF15          ; 5.0 ; ; 5 # Nd       FUL
 1FBF5         ; 5.0 ; ; 5 # Nd       SEGMENTED DIGIT FIVE
 20121         ; 5.0 ; ; 5 # Lo       CJK UNIFIED IDEOGRAPH-20121
 
-# Total code points: 130
+# Total code points: 133
 
 # ================================================
 
@@ -1211,6 +1229,7 @@ FF16          ; 6.0 ; ; 6 # Nd       FUL
 11C5F         ; 6.0 ; ; 6 # No       BHAIKSUKI NUMBER SIX
 11D56         ; 6.0 ; ; 6 # Nd       MASARAM GONDI DIGIT SIX
 11DA6         ; 6.0 ; ; 6 # Nd       GUNJALA GONDI DIGIT SIX
+11F56         ; 6.0 ; ; 6 # Nd       KAWI DIGIT SIX
 12404         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX ASH
 1240B         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX DISH
 12411         ; 6.0 ; ; 6 # Nl       CUNEIFORM NUMERIC SIGN SIX U
@@ -1223,6 +1242,7 @@ FF16          ; 6.0 ; ; 6 # Nd       FUL
 16AC6         ; 6.0 ; ; 6 # Nd       TANGSA DIGIT SIX
 16B56         ; 6.0 ; ; 6 # Nd       PAHAWH HMONG DIGIT SIX
 16E86         ; 6.0 ; ; 6 # No       MEDEFAIDRIN DIGIT SIX
+1D2C6         ; 6.0 ; ; 6 # No       KAKTOVIK NUMERAL SIX
 1D2E6         ; 6.0 ; ; 6 # No       MAYAN NUMERAL SIX
 1D365         ; 6.0 ; ; 6 # No       COUNTING ROD UNIT DIGIT SIX
 1D7D4         ; 6.0 ; ; 6 # Nd       MATHEMATICAL BOLD DIGIT SIX
@@ -1232,6 +1252,7 @@ FF16          ; 6.0 ; ; 6 # Nd       FUL
 1D7FC         ; 6.0 ; ; 6 # Nd       MATHEMATICAL MONOSPACE DIGIT SIX
 1E146         ; 6.0 ; ; 6 # Nd       NYIAKENG PUACHUE HMONG DIGIT SIX
 1E2F6         ; 6.0 ; ; 6 # Nd       WANCHO DIGIT SIX
+1E4F6         ; 6.0 ; ; 6 # Nd       NAG MUNDARI DIGIT SIX
 1E8CC         ; 6.0 ; ; 6 # No       MENDE KIKAKUI DIGIT SIX
 1E956         ; 6.0 ; ; 6 # Nd       ADLAM DIGIT SIX
 1EC76         ; 6.0 ; ; 6 # No       INDIC SIYAQ NUMBER SIX
@@ -1242,7 +1263,7 @@ FF16          ; 6.0 ; ; 6 # Nd       FUL
 1FBF6         ; 6.0 ; ; 6 # Nd       SEGMENTED DIGIT SIX
 20AEA         ; 6.0 ; ; 6 # Lo       CJK UNIFIED IDEOGRAPH-20AEA
 
-# Total code points: 114
+# Total code points: 117
 
 # ================================================
 
@@ -1334,6 +1355,7 @@ FF17          ; 7.0 ; ; 7 # Nd       FUL
 11C60         ; 7.0 ; ; 7 # No       BHAIKSUKI NUMBER SEVEN
 11D57         ; 7.0 ; ; 7 # Nd       MASARAM GONDI DIGIT SEVEN
 11DA7         ; 7.0 ; ; 7 # Nd       GUNJALA GONDI DIGIT SEVEN
+11F57         ; 7.0 ; ; 7 # Nd       KAWI DIGIT SEVEN
 12405         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN ASH
 1240C         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN DISH
 12412         ; 7.0 ; ; 7 # Nl       CUNEIFORM NUMERIC SIGN SEVEN U
@@ -1345,6 +1367,7 @@ FF17          ; 7.0 ; ; 7 # Nd       FUL
 16AC7         ; 7.0 ; ; 7 # Nd       TANGSA DIGIT SEVEN
 16B57         ; 7.0 ; ; 7 # Nd       PAHAWH HMONG DIGIT SEVEN
 16E87         ; 7.0 ; ; 7 # No       MEDEFAIDRIN DIGIT SEVEN
+1D2C7         ; 7.0 ; ; 7 # No       KAKTOVIK NUMERAL SEVEN
 1D2E7         ; 7.0 ; ; 7 # No       MAYAN NUMERAL SEVEN
 1D366         ; 7.0 ; ; 7 # No       COUNTING ROD UNIT DIGIT SEVEN
 1D7D5         ; 7.0 ; ; 7 # Nd       MATHEMATICAL BOLD DIGIT SEVEN
@@ -1354,6 +1377,7 @@ FF17          ; 7.0 ; ; 7 # Nd       FUL
 1D7FD         ; 7.0 ; ; 7 # Nd       MATHEMATICAL MONOSPACE DIGIT SEVEN
 1E147         ; 7.0 ; ; 7 # Nd       NYIAKENG PUACHUE HMONG DIGIT SEVEN
 1E2F7         ; 7.0 ; ; 7 # Nd       WANCHO DIGIT SEVEN
+1E4F7         ; 7.0 ; ; 7 # Nd       NAG MUNDARI DIGIT SEVEN
 1E8CD         ; 7.0 ; ; 7 # No       MENDE KIKAKUI DIGIT SEVEN
 1E957         ; 7.0 ; ; 7 # Nd       ADLAM DIGIT SEVEN
 1EC77         ; 7.0 ; ; 7 # No       INDIC SIYAQ NUMBER SEVEN
@@ -1364,7 +1388,7 @@ FF17          ; 7.0 ; ; 7 # Nd       FUL
 1FBF7         ; 7.0 ; ; 7 # Nd       SEGMENTED DIGIT SEVEN
 20001         ; 7.0 ; ; 7 # Lo       CJK UNIFIED IDEOGRAPH-20001
 
-# Total code points: 113
+# Total code points: 116
 
 # ================================================
 
@@ -1454,6 +1478,7 @@ FF18          ; 8.0 ; ; 8 # Nd       FUL
 11C61         ; 8.0 ; ; 8 # No       BHAIKSUKI NUMBER EIGHT
 11D58         ; 8.0 ; ; 8 # Nd       MASARAM GONDI DIGIT EIGHT
 11DA8         ; 8.0 ; ; 8 # Nd       GUNJALA GONDI DIGIT EIGHT
+11F58         ; 8.0 ; ; 8 # Nd       KAWI DIGIT EIGHT
 12406         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT ASH
 1240D         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT DISH
 12413         ; 8.0 ; ; 8 # Nl       CUNEIFORM NUMERIC SIGN EIGHT U
@@ -1465,6 +1490,7 @@ FF18          ; 8.0 ; ; 8 # Nd       FUL
 16AC8         ; 8.0 ; ; 8 # Nd       TANGSA DIGIT EIGHT
 16B58         ; 8.0 ; ; 8 # Nd       PAHAWH HMONG DIGIT EIGHT
 16E88         ; 8.0 ; ; 8 # No       MEDEFAIDRIN DIGIT EIGHT
+1D2C8         ; 8.0 ; ; 8 # No       KAKTOVIK NUMERAL EIGHT
 1D2E8         ; 8.0 ; ; 8 # No       MAYAN NUMERAL EIGHT
 1D367         ; 8.0 ; ; 8 # No       COUNTING ROD UNIT DIGIT EIGHT
 1D7D6         ; 8.0 ; ; 8 # Nd       MATHEMATICAL BOLD DIGIT EIGHT
@@ -1474,6 +1500,7 @@ FF18          ; 8.0 ; ; 8 # Nd       FUL
 1D7FE         ; 8.0 ; ; 8 # Nd       MATHEMATICAL MONOSPACE DIGIT EIGHT
 1E148         ; 8.0 ; ; 8 # Nd       NYIAKENG PUACHUE HMONG DIGIT EIGHT
 1E2F8         ; 8.0 ; ; 8 # Nd       WANCHO DIGIT EIGHT
+1E4F8         ; 8.0 ; ; 8 # Nd       NAG MUNDARI DIGIT EIGHT
 1E8CE         ; 8.0 ; ; 8 # No       MENDE KIKAKUI DIGIT EIGHT
 1E958         ; 8.0 ; ; 8 # Nd       ADLAM DIGIT EIGHT
 1EC78         ; 8.0 ; ; 8 # No       INDIC SIYAQ NUMBER EIGHT
@@ -1483,7 +1510,7 @@ FF18          ; 8.0 ; ; 8 # Nd       FUL
 1F109         ; 8.0 ; ; 8 # No       DIGIT EIGHT COMMA
 1FBF8         ; 8.0 ; ; 8 # Nd       SEGMENTED DIGIT EIGHT
 
-# Total code points: 109
+# Total code points: 112
 
 # ================================================
 
@@ -1574,6 +1601,7 @@ FF19          ; 9.0 ; ; 9 # Nd       FUL
 11C62         ; 9.0 ; ; 9 # No       BHAIKSUKI NUMBER NINE
 11D59         ; 9.0 ; ; 9 # Nd       MASARAM GONDI DIGIT NINE
 11DA9         ; 9.0 ; ; 9 # Nd       GUNJALA GONDI DIGIT NINE
+11F59         ; 9.0 ; ; 9 # Nd       KAWI DIGIT NINE
 12407         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE ASH
 1240E         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE DISH
 12414         ; 9.0 ; ; 9 # Nl       CUNEIFORM NUMERIC SIGN NINE U
@@ -1585,6 +1613,7 @@ FF19          ; 9.0 ; ; 9 # Nd       FUL
 16AC9         ; 9.0 ; ; 9 # Nd       TANGSA DIGIT NINE
 16B59         ; 9.0 ; ; 9 # Nd       PAHAWH HMONG DIGIT NINE
 16E89         ; 9.0 ; ; 9 # No       MEDEFAIDRIN DIGIT NINE
+1D2C9         ; 9.0 ; ; 9 # No       KAKTOVIK NUMERAL NINE
 1D2E9         ; 9.0 ; ; 9 # No       MAYAN NUMERAL NINE
 1D368         ; 9.0 ; ; 9 # No       COUNTING ROD UNIT DIGIT NINE
 1D7D7         ; 9.0 ; ; 9 # Nd       MATHEMATICAL BOLD DIGIT NINE
@@ -1594,6 +1623,7 @@ FF19          ; 9.0 ; ; 9 # Nd       FUL
 1D7FF         ; 9.0 ; ; 9 # Nd       MATHEMATICAL MONOSPACE DIGIT NINE
 1E149         ; 9.0 ; ; 9 # Nd       NYIAKENG PUACHUE HMONG DIGIT NINE
 1E2F9         ; 9.0 ; ; 9 # Nd       WANCHO DIGIT NINE
+1E4F9         ; 9.0 ; ; 9 # Nd       NAG MUNDARI DIGIT NINE
 1E8CF         ; 9.0 ; ; 9 # No       MENDE KIKAKUI DIGIT NINE
 1E959         ; 9.0 ; ; 9 # Nd       ADLAM DIGIT NINE
 1EC79         ; 9.0 ; ; 9 # No       INDIC SIYAQ NUMBER NINE
@@ -1604,7 +1634,7 @@ FF19          ; 9.0 ; ; 9 # Nd       FUL
 1FBF9         ; 9.0 ; ; 9 # Nd       SEGMENTED DIGIT NINE
 2F890         ; 9.0 ; ; 9 # Lo       CJK COMPATIBILITY IDEOGRAPH-2F890
 
-# Total code points: 113
+# Total code points: 116
 
 # ================================================
 
@@ -1661,13 +1691,14 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 11C63         ; 10.0 ; ; 10 # No       BHAIKSUKI NUMBER TEN
 16B5B         ; 10.0 ; ; 10 # No       PAHAWH HMONG NUMBER TENS
 16E8A         ; 10.0 ; ; 10 # No       MEDEFAIDRIN NUMBER TEN
+1D2CA         ; 10.0 ; ; 10 # No       KAKTOVIK NUMERAL TEN
 1D2EA         ; 10.0 ; ; 10 # No       MAYAN NUMERAL TEN
 1D369         ; 10.0 ; ; 10 # No       COUNTING ROD TENS DIGIT ONE
 1EC7A         ; 10.0 ; ; 10 # No       INDIC SIYAQ NUMBER TEN
 1ED0A         ; 10.0 ; ; 10 # No       OTTOMAN SIYAQ NUMBER TEN
 1ED37         ; 10.0 ; ; 10 # No       OTTOMAN SIYAQ ALTERNATE NUMBER TEN
 
-# Total code points: 62
+# Total code points: 63
 
 # ================================================
 
@@ -1678,9 +1709,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2492          ; 11.0 ; ; 11 # No       NUMBER ELEVEN FULL STOP
 24EB          ; 11.0 ; ; 11 # No       NEGATIVE CIRCLED NUMBER ELEVEN
 16E8B         ; 11.0 ; ; 11 # No       MEDEFAIDRIN NUMBER ELEVEN
+1D2CB         ; 11.0 ; ; 11 # No       KAKTOVIK NUMERAL ELEVEN
 1D2EB         ; 11.0 ; ; 11 # No       MAYAN NUMERAL ELEVEN
 
-# Total code points: 8
+# Total code points: 9
 
 # ================================================
 
@@ -1691,9 +1723,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2493          ; 12.0 ; ; 12 # No       NUMBER TWELVE FULL STOP
 24EC          ; 12.0 ; ; 12 # No       NEGATIVE CIRCLED NUMBER TWELVE
 16E8C         ; 12.0 ; ; 12 # No       MEDEFAIDRIN NUMBER TWELVE
+1D2CC         ; 12.0 ; ; 12 # No       KAKTOVIK NUMERAL TWELVE
 1D2EC         ; 12.0 ; ; 12 # No       MAYAN NUMERAL TWELVE
 
-# Total code points: 8
+# Total code points: 9
 
 # ================================================
 
@@ -1702,9 +1735,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2494          ; 13.0 ; ; 13 # No       NUMBER THIRTEEN FULL STOP
 24ED          ; 13.0 ; ; 13 # No       NEGATIVE CIRCLED NUMBER THIRTEEN
 16E8D         ; 13.0 ; ; 13 # No       MEDEFAIDRIN NUMBER THIRTEEN
+1D2CD         ; 13.0 ; ; 13 # No       KAKTOVIK NUMERAL THIRTEEN
 1D2ED         ; 13.0 ; ; 13 # No       MAYAN NUMERAL THIRTEEN
 
-# Total code points: 6
+# Total code points: 7
 
 # ================================================
 
@@ -1713,9 +1747,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2495          ; 14.0 ; ; 14 # No       NUMBER FOURTEEN FULL STOP
 24EE          ; 14.0 ; ; 14 # No       NEGATIVE CIRCLED NUMBER FOURTEEN
 16E8E         ; 14.0 ; ; 14 # No       MEDEFAIDRIN NUMBER FOURTEEN
+1D2CE         ; 14.0 ; ; 14 # No       KAKTOVIK NUMERAL FOURTEEN
 1D2EE         ; 14.0 ; ; 14 # No       MAYAN NUMERAL FOURTEEN
 
-# Total code points: 6
+# Total code points: 7
 
 # ================================================
 
@@ -1724,9 +1759,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2496          ; 15.0 ; ; 15 # No       NUMBER FIFTEEN FULL STOP
 24EF          ; 15.0 ; ; 15 # No       NEGATIVE CIRCLED NUMBER FIFTEEN
 16E8F         ; 15.0 ; ; 15 # No       MEDEFAIDRIN NUMBER FIFTEEN
+1D2CF         ; 15.0 ; ; 15 # No       KAKTOVIK NUMERAL FIFTEEN
 1D2EF         ; 15.0 ; ; 15 # No       MAYAN NUMERAL FIFTEEN
 
-# Total code points: 6
+# Total code points: 7
 
 # ================================================
 
@@ -1736,9 +1772,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2497          ; 16.0 ; ; 16 # No       NUMBER SIXTEEN FULL STOP
 24F0          ; 16.0 ; ; 16 # No       NEGATIVE CIRCLED NUMBER SIXTEEN
 16E90         ; 16.0 ; ; 16 # No       MEDEFAIDRIN NUMBER SIXTEEN
+1D2D0         ; 16.0 ; ; 16 # No       KAKTOVIK NUMERAL SIXTEEN
 1D2F0         ; 16.0 ; ; 16 # No       MAYAN NUMERAL SIXTEEN
 
-# Total code points: 7
+# Total code points: 8
 
 # ================================================
 
@@ -1748,9 +1785,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2498          ; 17.0 ; ; 17 # No       NUMBER SEVENTEEN FULL STOP
 24F1          ; 17.0 ; ; 17 # No       NEGATIVE CIRCLED NUMBER SEVENTEEN
 16E91         ; 17.0 ; ; 17 # No       MEDEFAIDRIN NUMBER SEVENTEEN
+1D2D1         ; 17.0 ; ; 17 # No       KAKTOVIK NUMERAL SEVENTEEN
 1D2F1         ; 17.0 ; ; 17 # No       MAYAN NUMERAL SEVENTEEN
 
-# Total code points: 7
+# Total code points: 8
 
 # ================================================
 
@@ -1760,9 +1798,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 2499          ; 18.0 ; ; 18 # No       NUMBER EIGHTEEN FULL STOP
 24F2          ; 18.0 ; ; 18 # No       NEGATIVE CIRCLED NUMBER EIGHTEEN
 16E92         ; 18.0 ; ; 18 # No       MEDEFAIDRIN NUMBER EIGHTEEN
+1D2D2         ; 18.0 ; ; 18 # No       KAKTOVIK NUMERAL EIGHTEEN
 1D2F2         ; 18.0 ; ; 18 # No       MAYAN NUMERAL EIGHTEEN
 
-# Total code points: 7
+# Total code points: 8
 
 # ================================================
 
@@ -1772,9 +1811,10 @@ F9FD          ; 10.0 ; ; 10 # Lo       C
 249A          ; 19.0 ; ; 19 # No       NUMBER NINETEEN FULL STOP
 24F3          ; 19.0 ; ; 19 # No       NEGATIVE CIRCLED NUMBER NINETEEN
 16E93         ; 19.0 ; ; 19 # No       MEDEFAIDRIN NUMBER NINETEEN
+1D2D3         ; 19.0 ; ; 19 # No       KAKTOVIK NUMERAL NINETEEN
 1D2F3         ; 19.0 ; ; 19 # No       MAYAN NUMERAL NINETEEN
 
-# Total code points: 7
+# Total code points: 8
 
 # ================================================
 
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/NA.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/NA.pl,v
diff -u -p -a -u -p -r1.8 NA.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/NA.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/NA.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1411
+V1429
 888
 890
 896
@@ -253,7 +253,7 @@ V1411
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -313,7 +313,7 @@ V1411
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -850,7 +850,7 @@ V1411
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -885,7 +885,7 @@ V1411
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -990,6 +990,8 @@ V1411
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1032,6 +1034,12 @@ V1411
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1047,9 +1055,7 @@ V1411
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1102,8 +1108,12 @@ V1411
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1132,6 +1142,8 @@ V1411
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1186,6 +1198,8 @@ V1411
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1196,6 +1210,10 @@ V1411
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1210,6 +1228,8 @@ V1411
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1326,14 +1346,14 @@ V1411
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1355,23 +1375,19 @@ V1411
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1381,7 +1397,7 @@ V1411
 131070
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1392,6 +1408,8 @@ V1411
 195102
 196606
 201547
+201552
+205744
 262142
 262144
 327678
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V100.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V100.pl,v
diff -u -p -a -u -p -r1.4 V100.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V100.pl	15 Feb 2023 01:39:51 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V100.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V11.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V11.pl,v
diff -u -p -a -u -p -r1.8 V11.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V11.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V11.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V110.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V110.pl,v
diff -u -p -a -u -p -r1.3 V110.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V110.pl	15 Feb 2023 01:39:51 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V110.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V120.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V120.pl,v
diff -u -p -a -u -p -r1.3 V120.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V120.pl	15 Feb 2023 01:39:51 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V120.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V130.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V130.pl,v
diff -u -p -a -u -p -r1.2 V130.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V130.pl	15 Feb 2023 01:39:51 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V130.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V140.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V140.pl,v
diff -u -p -a -u -p -r1.1 V140.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V140.pl	15 Feb 2023 01:39:51 -0000	1.1
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V140.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V150.pl
===================================================================
RCS file: gnu/usr.bin/perl/lib/unicore/lib/Age/V150.pl
diff -N gnu/usr.bin/perl/lib/unicore/lib/Age/V150.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V150.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,78 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is machine-generated by lib/unicore/mktables from the Unicode
+# database, Version 15.0.0.  Any changes made here will be lost!
+
+# !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
+# This file is for internal use by core Perl only.  The format and even the
+# name or existence of this file are subject to change without notice.  Don't
+# use it directly.  Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V64
+3315
+3316
+3790
+3791
+69373
+69376
+70207
+70210
+72448
+72458
+73472
+73489
+73490
+73531
+73534
+73562
+78895
+78896
+78905
+78934
+110898
+110899
+110933
+110934
+119488
+119508
+122661
+122667
+122928
+122990
+123023
+123024
+124112
+124154
+128732
+128733
+128884
+128887
+128891
+128896
+128985
+128986
+129653
+129656
+129671
+129673
+129709
+129712
+129723
+129726
+129727
+129728
+129742
+129744
+129754
+129756
+129768
+129769
+129783
+129785
+177977
+177978
+201552
+205744
+END
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V20.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V20.pl,v
diff -u -p -a -u -p -r1.8 V20.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V20.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V20.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V30.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V30.pl,v
diff -u -p -a -u -p -r1.8 V30.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V30.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V30.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V31.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V31.pl,v
diff -u -p -a -u -p -r1.8 V31.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V31.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V31.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V32.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V32.pl,v
diff -u -p -a -u -p -r1.8 V32.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V32.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V32.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V40.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V40.pl,v
diff -u -p -a -u -p -r1.8 V40.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V40.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V40.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V41.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V41.pl,v
diff -u -p -a -u -p -r1.8 V41.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V41.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V41.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V50.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V50.pl,v
diff -u -p -a -u -p -r1.8 V50.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V50.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V50.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V51.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V51.pl,v
diff -u -p -a -u -p -r1.8 V51.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V51.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V51.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V52.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V52.pl,v
diff -u -p -a -u -p -r1.8 V52.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V52.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V52.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V60.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V60.pl,v
diff -u -p -a -u -p -r1.8 V60.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V60.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V60.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V61.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V61.pl,v
diff -u -p -a -u -p -r1.8 V61.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V61.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V61.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V70.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V70.pl,v
diff -u -p -a -u -p -r1.5 V70.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V70.pl	15 Feb 2023 01:39:51 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V70.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V80.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V80.pl,v
diff -u -p -a -u -p -r1.5 V80.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V80.pl	15 Feb 2023 01:39:51 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V80.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Age/V90.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Age/V90.pl,v
diff -u -p -a -u -p -r1.4 V90.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Age/V90.pl	15 Feb 2023 01:39:51 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Age/V90.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Alpha/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Alpha/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Alpha/Y.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Alpha/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1444
+V1464
 65
 91
 97
@@ -280,8 +280,6 @@ V1444
 3031
 3032
 3072
-3076
-3077
 3085
 3086
 3089
@@ -328,7 +326,7 @@ V1444
 3296
 3300
 3313
-3315
+3316
 3328
 3341
 3342
@@ -404,7 +402,7 @@ V1444
 3913
 3949
 3953
-3970
+3972
 3976
 3992
 3993
@@ -1007,7 +1005,7 @@ V1444
 69702
 69745
 69750
-69762
+69760
 69817
 69826
 69827
@@ -1038,7 +1036,7 @@ V1444
 70199
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1197,6 +1195,12 @@ V1444
 73113
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73537
 73648
 73649
 73728
@@ -1208,7 +1212,9 @@ V1444
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1255,8 +1261,12 @@ V1444
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1333,6 +1343,8 @@ V1444
 120780
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1343,6 +1355,10 @@ V1444
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123191
@@ -1353,6 +1369,8 @@ V1444
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1444,7 +1462,7 @@ V1444
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1455,4 +1473,6 @@ V1444
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/AL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/AL.pl,v
diff -u -p -a -u -p -r1.9 AL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/AL.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/AL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V56
+V58
 1544
 1545
 1547
@@ -55,6 +55,8 @@ V56
 68912
 68922
 68928
+69312
+69373
 69424
 69446
 69457
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/AN.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/AN.pl,v
diff -u -p -a -u -p -r1.9 AN.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/AN.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/AN.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/B.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/B.pl,v
diff -u -p -a -u -p -r1.9 B.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/B.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/B.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/BN.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/BN.pl,v
diff -u -p -a -u -p -r1.9 BN.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/BN.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/BN.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/CS.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/CS.pl,v
diff -u -p -a -u -p -r1.9 CS.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/CS.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/CS.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/EN.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/EN.pl,v
diff -u -p -a -u -p -r1.9 EN.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/EN.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/EN.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/ES.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/ES.pl,v
diff -u -p -a -u -p -r1.9 ES.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/ES.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/ES.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/ET.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/ET.pl,v
diff -u -p -a -u -p -r1.9 ET.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/ET.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/ET.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/L.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/L.pl,v
diff -u -p -a -u -p -r1.9 L.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/L.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/L.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V941
+V955
 65
 91
 97
@@ -191,7 +191,7 @@ V941
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -642,6 +642,8 @@ V941
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -766,8 +768,20 @@ V941
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
 73685
 73714
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -836,6 +850,8 @@ V941
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
@@ -844,6 +860,8 @@ V941
 123632
 123647
 123648
+124140
+124144
 124928
 127020
 127024
@@ -868,14 +886,14 @@ V941
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -897,23 +915,19 @@ V941
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/NSM.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/NSM.pl,v
diff -u -p -a -u -p -r1.9 NSM.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/NSM.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/NSM.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V662
+V682
 768
 880
 1155
@@ -192,7 +192,7 @@ V662
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -447,6 +447,8 @@ V662
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -491,6 +493,8 @@ V662
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -613,6 +617,18 @@ V662
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -661,12 +677,16 @@ V662
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/ON.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/ON.pl,v
diff -u -p -a -u -p -r1.9 ON.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/ON.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/ON.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V382
+V378
 33
 35
 38
@@ -343,14 +343,14 @@ V382
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -372,23 +372,19 @@ V382
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/R.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/R.pl,v
diff -u -p -a -u -p -r1.9 R.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/R.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/R.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V78
+V80
 1424
 1425
 1470
@@ -72,6 +72,8 @@ V78
 69247
 69291
 69293
+69312
+69376
 69424
 69488
 69506
Index: gnu/usr.bin/perl/lib/unicore/lib/Bc/WS.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bc/WS.pl,v
diff -u -p -a -u -p -r1.9 WS.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bc/WS.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Bc/WS.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/BidiC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/BidiC/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/BidiC/Y.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/BidiC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/BidiM/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/BidiM/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/BidiM/Y.pl	15 Feb 2023 01:39:51 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/BidiM/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Blk/NB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Blk/NB.pl,v
diff -u -p -a -u -p -r1.8 NB.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Blk/NB.pl	15 Feb 2023 01:39:51 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Blk/NB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -33,8 +33,6 @@ V103
 68736
 68928
 69216
-69312
-69376
 70224
 70272
 70528
@@ -49,17 +47,17 @@ V103
 71840
 72032
 72096
-72448
+72544
 72704
 72896
 72960
 73136
 73440
-73472
+73568
 73648
 75088
 77712
-78912
+78944
 82944
 83584
 92160
@@ -78,16 +76,18 @@ V103
 118736
 118784
 119376
-119520
+119488
 119680
 119808
 121520
 122624
-122928
+123024
 123136
 123216
 123536
 123648
+124112
+124160
 124896
 125152
 125184
@@ -107,7 +107,7 @@ V103
 194560
 195104
 196608
-201552
+205744
 917504
 917632
 917760
Index: gnu/usr.bin/perl/lib/unicore/lib/Bpt/C.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bpt/C.pl,v
diff -u -p -a -u -p -r1.6 C.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bpt/C.pl	15 Feb 2023 01:39:51 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Bpt/C.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bpt/N.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bpt/N.pl,v
diff -u -p -a -u -p -r1.6 N.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bpt/N.pl	15 Feb 2023 01:39:51 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Bpt/N.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Bpt/O.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Bpt/O.pl,v
diff -u -p -a -u -p -r1.6 O.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Bpt/O.pl	15 Feb 2023 01:39:51 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Bpt/O.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/CE/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CE/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CE/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CE/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/CI/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CI/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CI/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CI/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V854
+V874
 39
 40
 46
@@ -238,7 +238,7 @@ V854
 3782
 3783
 3784
-3790
+3791
 3864
 3866
 3893
@@ -615,6 +615,8 @@ V854
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -663,6 +665,8 @@ V854
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -785,8 +789,18 @@ V854
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
 78896
-78905
+78913
+78919
+78934
 92912
 92917
 92976
@@ -847,12 +861,18 @@ V854
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123184
 123198
 123566
 123567
 123628
 123632
+124139
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/CWCF/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CWCF/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CWCF/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CWCF/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/CWCM/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CWCM/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CWCM/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CWCM/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/CWKCF/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CWKCF/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CWKCF/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CWKCF/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1676
+V1678
 65
 91
 160
@@ -1595,6 +1595,8 @@ V1676
 120780
 120782
 120832
+122928
+122990
 125184
 125218
 126464
Index: gnu/usr.bin/perl/lib/unicore/lib/CWL/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CWL/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CWL/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CWL/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/CWT/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CWT/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CWT/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CWT/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/CWU/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CWU/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CWU/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CWU/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Cased/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Cased/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Cased/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Cased/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V310
+V314
 65
 91
 97
@@ -73,7 +73,7 @@ V310
 4302
 4304
 4347
-4349
+4348
 4352
 5024
 5110
@@ -193,14 +193,14 @@ V310
 42964
 42965
 42970
-42997
+42994
 42999
 43000
 43003
 43824
 43867
 43868
-43881
+43882
 43888
 43968
 64256
@@ -313,6 +313,10 @@ V310
 122634
 122635
 122655
+122661
+122667
+122928
+122990
 125184
 125252
 127280
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/A.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/A.pl,v
diff -u -p -a -u -p -r1.9 A.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/A.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/A.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V254
+V258
 768
 789
 829
@@ -257,12 +257,16 @@ V254
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124143
+124144
 125252
 125258
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/AL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/AL.pl,v
diff -u -p -a -u -p -r1.8 AL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/AL.pl	15 Feb 2023 01:39:52 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/AL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/AR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/AR.pl,v
diff -u -p -a -u -p -r1.9 AR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/AR.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/AR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V10
+V12
 789
 790
 794
@@ -21,4 +21,6 @@ V10
 7671
 12332
 12333
+124140
+124142
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/ATAR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/ATAR.pl,v
diff -u -p -a -u -p -r1.9 ATAR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/ATAR.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/ATAR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/B.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/B.pl,v
diff -u -p -a -u -p -r1.9 B.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/B.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/B.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V166
+V170
 790
 794
 796
@@ -161,6 +161,8 @@ V166
 68155
 68326
 68327
+69373
+69376
 69446
 69448
 69451
@@ -175,6 +177,8 @@ V166
 119171
 119178
 119180
+124142
+124143
 125136
 125143
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/BR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/BR.pl,v
diff -u -p -a -u -p -r1.9 BR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/BR.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/BR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/DB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/DB.pl,v
diff -u -p -a -u -p -r1.9 DB.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/DB.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/DB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/NK.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/NK.pl,v
diff -u -p -a -u -p -r1.9 NK.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/NK.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/NK.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/NR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/NR.pl,v
diff -u -p -a -u -p -r1.9 NR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/NR.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/NR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V377
+V385
 0
 768
 847
@@ -276,6 +276,8 @@ V377
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -348,6 +350,8 @@ V377
 73030
 73111
 73112
+73537
+73539
 92912
 92917
 92976
@@ -378,12 +382,16 @@ V377
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/OV.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/OV.pl,v
diff -u -p -a -u -p -r1.9 OV.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/OV.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/OV.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ccc/VR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ccc/VR.pl,v
diff -u -p -a -u -p -r1.9 VR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ccc/VR.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ccc/VR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V110
+V112
 2381
 2382
 2509
@@ -121,4 +121,6 @@ V110
 73030
 73111
 73112
+73537
+73539
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/CompEx/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/CompEx/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/CompEx/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/CompEx/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/DI/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/DI/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/DI/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/DI/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dash/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dash/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dash/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dash/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dep/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dep/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dep/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dep/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dia/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dia/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dia/Y.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dia/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V384
+V390
 94
 95
 96
@@ -289,6 +289,8 @@ V384
 68327
 68898
 68904
+69373
+69376
 69446
 69457
 69506
@@ -355,6 +357,8 @@ V384
 73030
 73111
 73112
+78919
+78934
 92912
 92917
 92976
@@ -383,6 +387,8 @@ V384
 119180
 119210
 119214
+122928
+122990
 123184
 123191
 123566
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Com.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Com.pl,v
diff -u -p -a -u -p -r1.9 Com.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Com.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Com.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Enc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Enc.pl,v
diff -u -p -a -u -p -r1.9 Enc.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Enc.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Enc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Fin.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Fin.pl,v
diff -u -p -a -u -p -r1.9 Fin.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Fin.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Fin.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Font.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Font.pl,v
diff -u -p -a -u -p -r1.9 Font.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Font.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Font.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Init.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Init.pl,v
diff -u -p -a -u -p -r1.9 Init.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Init.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Init.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Iso.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Iso.pl,v
diff -u -p -a -u -p -r1.9 Iso.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Iso.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Iso.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Med.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Med.pl,v
diff -u -p -a -u -p -r1.9 Med.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Med.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Med.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Nar.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Nar.pl,v
diff -u -p -a -u -p -r1.9 Nar.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Nar.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Nar.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Nb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Nb.pl,v
diff -u -p -a -u -p -r1.9 Nb.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Nb.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Nb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/NonCanon.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/NonCanon.pl,v
diff -u -p -a -u -p -r1.9 NonCanon.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/NonCanon.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/NonCanon.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V382
+V384
 160
 161
 168
@@ -307,6 +307,8 @@ V382
 120780
 120782
 120832
+122928
+122990
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Sqr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Sqr.pl,v
diff -u -p -a -u -p -r1.9 Sqr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Sqr.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Sqr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Sub.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Sub.pl,v
diff -u -p -a -u -p -r1.9 Sub.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Sub.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Sub.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V8
+V10
 7522
 7531
 8320
@@ -19,4 +19,6 @@ V8
 8349
 11388
 11389
+122961
+122987
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Sup.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Sup.pl,v
diff -u -p -a -u -p -r1.9 Sup.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Sup.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Sup.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V58
+V62
 170
 171
 178
@@ -67,6 +67,10 @@ V58
 67505
 67506
 67515
+122928
+122961
+122987
+122990
 127338
 127341
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Dt/Vert.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Dt/Vert.pl,v
diff -u -p -a -u -p -r1.9 Vert.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Dt/Vert.pl	15 Feb 2023 01:39:52 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Dt/Vert.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/EBase/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/EBase/Y.pl,v
diff -u -p -a -u -p -r1.2 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/EBase/Y.pl	15 Feb 2023 01:39:53 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/EBase/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -90,5 +90,5 @@ V80
 129731
 129734
 129776
-129783
+129785
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/EComp/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/EComp/Y.pl,v
diff -u -p -a -u -p -r1.2 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/EComp/Y.pl	15 Feb 2023 01:39:53 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/EComp/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/EPres/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/EPres/Y.pl,v
diff -u -p -a -u -p -r1.2 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/EPres/Y.pl	15 Feb 2023 01:39:53 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/EPres/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V166
+V162
 8986
 8988
 9193
@@ -143,7 +143,7 @@ V166
 128723
 128725
 128728
-128733
+128732
 128736
 128747
 128749
@@ -160,21 +160,17 @@ V166
 129351
 129536
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Ea/A.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ea/A.pl,v
diff -u -p -a -u -p -r1.9 A.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ea/A.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ea/A.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ea/H.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ea/H.pl,v
diff -u -p -a -u -p -r1.9 H.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ea/H.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ea/H.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ea/N.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ea/N.pl,v
diff -u -p -a -u -p -r1.9 N.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ea/N.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ea/N.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -458,8 +458,12 @@ V563
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -530,7 +534,7 @@ V563
 128723
 128725
 128728
-128733
+128732
 128736
 128747
 128749
@@ -547,23 +551,19 @@ V563
 129351
 129536
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 131072
 196606
 196608
Index: gnu/usr.bin/perl/lib/unicore/lib/Ea/Na.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ea/Na.pl,v
diff -u -p -a -u -p -r1.9 Na.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ea/Na.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ea/Na.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Ea/W.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ea/W.pl,v
diff -u -p -a -u -p -r1.9 W.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ea/W.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ea/W.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -143,8 +143,12 @@ V238
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -211,7 +215,7 @@ V238
 128723
 128725
 128728
-128733
+128732
 128736
 128747
 128749
@@ -228,23 +232,19 @@ V238
 129351
 129536
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 131072
 196606
 196608
Index: gnu/usr.bin/perl/lib/unicore/lib/Emoji/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Emoji/Y.pl,v
diff -u -p -a -u -p -r1.2 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Emoji/Y.pl	15 Feb 2023 01:39:53 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/Emoji/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V306
+V302
 35
 36
 42
@@ -279,7 +279,7 @@ V306
 128723
 128725
 128728
-128733
+128732
 128742
 128745
 128746
@@ -300,21 +300,17 @@ V306
 129351
 129536
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Ext/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ext/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ext/Y.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ext/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/ExtPict/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/ExtPict/Y.pl,v
diff -u -p -a -u -p -r1.2 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/ExtPict/Y.pl	15 Feb 2023 01:39:53 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/ExtPict/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/CN.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/CN.pl,v
diff -u -p -a -u -p -r1.9 CN.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/CN.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/CN.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -38,7 +38,7 @@ V38
 65520
 65532
 78896
-78905
+78912
 113824
 113828
 119155
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/EX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/EX.pl,v
diff -u -p -a -u -p -r1.9 EX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/EX.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/EX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V708
+V728
 768
 880
 1155
@@ -216,7 +216,7 @@ V708
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -473,6 +473,8 @@ V708
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -517,6 +519,8 @@ V708
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -651,6 +655,18 @@ V708
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -703,12 +719,16 @@ V708
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/LV.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/LV.pl,v
diff -u -p -a -u -p -r1.8 LV.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/LV.pl	15 Feb 2023 01:39:53 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/LV.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/LVT.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/LVT.pl,v
diff -u -p -a -u -p -r1.8 LVT.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/LVT.pl	15 Feb 2023 01:39:53 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/LVT.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/PP.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/PP.pl,v
diff -u -p -a -u -p -r1.6 PP.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/PP.pl	15 Feb 2023 01:39:53 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/PP.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V28
+V30
 1536
 1542
 1757
@@ -39,4 +39,6 @@ V28
 72330
 73030
 73031
+73474
+73475
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/SM.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/SM.pl,v
diff -u -p -a -u -p -r1.9 SM.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/SM.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/SM.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V320
+V330
 2307
 2308
 2363
@@ -73,6 +73,8 @@ V320
 3273
 3274
 3276
+3315
+3316
 3330
 3332
 3391
@@ -323,6 +325,14 @@ V320
 73111
 73461
 73463
+73475
+73476
+73524
+73526
+73534
+73536
+73537
+73538
 94033
 94088
 94192
Index: gnu/usr.bin/perl/lib/unicore/lib/GCB/XX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GCB/XX.pl,v
diff -u -p -a -u -p -r1.9 XX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GCB/XX.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/GCB/XX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V639
+V657
 32
 127
 160
@@ -182,6 +182,8 @@ V639
 3287
 3298
 3300
+3315
+3316
 3328
 3332
 3387
@@ -219,7 +221,7 @@ V639
 3763
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -446,6 +448,8 @@ V639
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -490,6 +494,8 @@ V639
 70200
 70206
 70207
+70209
+70210
 70367
 70379
 70400
@@ -578,8 +584,16 @@ V639
 73112
 73459
 73463
+73472
+73476
+73524
+73531
+73534
+73539
 78896
-78905
+78913
+78919
+78934
 92912
 92917
 92976
@@ -634,12 +648,16 @@ V639
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/C.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/C.pl,v
diff -u -p -a -u -p -r1.9 C.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/C.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/C.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1401
+V1423
 0
 32
 127
@@ -263,7 +263,7 @@ V1401
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -323,7 +323,7 @@ V1401
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -868,7 +868,7 @@ V1401
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -903,7 +903,7 @@ V1401
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -1008,6 +1008,8 @@ V1401
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1050,6 +1052,12 @@ V1401
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1065,7 +1073,9 @@ V1401
 77712
 77811
 77824
-78895
+78896
+78912
+78934
 82944
 83527
 92160
@@ -1118,8 +1128,12 @@ V1401
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1150,6 +1164,8 @@ V1401
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1204,6 +1220,8 @@ V1401
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1214,6 +1232,10 @@ V1401
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1228,6 +1250,8 @@ V1401
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1344,14 +1368,14 @@ V1401
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1373,23 +1397,19 @@ V1401
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1399,7 +1419,7 @@ V1401
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1410,6 +1430,8 @@ V1401
 195102
 196608
 201547
+201552
+205744
 917760
 918000
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Cf.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Cf.pl,v
diff -u -p -a -u -p -r1.9 Cf.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Cf.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Cf.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -44,7 +44,7 @@ V42
 69837
 69838
 78896
-78905
+78912
 113824
 113828
 119155
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Cn.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Cn.pl,v
diff -u -p -a -u -p -r1.9 Cn.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Cn.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Cn.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1395
+V1413
 888
 890
 896
@@ -253,7 +253,7 @@ V1395
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -313,7 +313,7 @@ V1395
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -854,7 +854,7 @@ V1395
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -889,7 +889,7 @@ V1395
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -994,6 +994,8 @@ V1395
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1036,6 +1038,12 @@ V1395
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1051,9 +1059,7 @@ V1395
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1106,8 +1112,12 @@ V1395
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1136,6 +1146,8 @@ V1395
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1190,6 +1202,8 @@ V1395
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1200,6 +1214,10 @@ V1395
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1214,6 +1232,8 @@ V1395
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1330,14 +1350,14 @@ V1395
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1359,23 +1379,19 @@ V1395
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1385,7 +1401,7 @@ V1395
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1396,6 +1412,8 @@ V1395
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/L.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/L.pl,v
diff -u -p -a -u -p -r1.9 L.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/L.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/L.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1296
+V1318
 65
 91
 97
@@ -949,6 +949,8 @@ V1296
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -1073,6 +1075,12 @@ V1296
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -1082,7 +1090,9 @@ V1296
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1127,8 +1137,12 @@ V1296
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1203,6 +1217,10 @@ V1296
 120780
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1213,6 +1231,8 @@ V1296
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1296,7 +1316,7 @@ V1296
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1307,4 +1327,6 @@ V1296
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/LC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/LC.pl,v
diff -u -p -a -u -p -r1.9 LC.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/LC.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/LC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V284
+V286
 65
 91
 97
@@ -293,6 +293,8 @@ V284
 122634
 122635
 122655
+122661
+122667
 125184
 125252
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Ll.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Ll.pl,v
diff -u -p -a -u -p -r1.9 Ll.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Ll.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Ll.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1314
+V1316
 97
 123
 181
@@ -1323,6 +1323,8 @@ V1314
 122634
 122635
 122655
+122661
+122667
 125218
 125252
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Lm.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Lm.pl,v
diff -u -p -a -u -p -r1.9 Lm.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Lm.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Lm.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V138
+V142
 688
 706
 710
@@ -145,8 +145,12 @@ V138
 110588
 110589
 110591
+122928
+122990
 123191
 123198
+124139
+124140
 125259
 125260
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Lo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Lo.pl,v
diff -u -p -a -u -p -r1.9 Lo.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Lo.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Lo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1002
+V1020
 170
 171
 186
@@ -739,6 +739,8 @@ V1002
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -861,6 +863,12 @@ V1002
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -870,7 +878,9 @@ V1002
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -899,8 +909,12 @@ V1002
 101641
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -923,6 +937,8 @@ V1002
 123566
 123584
 123628
+124112
+124139
 124896
 124903
 124904
@@ -1002,7 +1018,7 @@ V1002
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1013,4 +1029,6 @@ V1002
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Lu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Lu.pl,v
diff -u -p -a -u -p -r1.9 Lu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Lu.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Lu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/M.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/M.pl,v
diff -u -p -a -u -p -r1.9 M.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/M.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/M.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V598
+V620
 768
 880
 1155
@@ -171,6 +171,8 @@ V598
 3287
 3298
 3300
+3315
+3316
 3328
 3332
 3387
@@ -208,7 +210,7 @@ V598
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -411,6 +413,8 @@ V598
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -449,6 +453,8 @@ V598
 70200
 70206
 70207
+70209
+70210
 70367
 70379
 70400
@@ -543,6 +549,18 @@ V598
 73112
 73459
 73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -597,12 +615,16 @@ V598
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Mc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Mc.pl,v
diff -u -p -a -u -p -r1.9 Mc.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Mc.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Mc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V354
+V364
 2307
 2308
 2363
@@ -81,6 +81,8 @@ V354
 3276
 3285
 3287
+3315
+3316
 3330
 3332
 3390
@@ -357,6 +359,14 @@ V354
 73111
 73461
 73463
+73475
+73476
+73524
+73526
+73534
+73536
+73537
+73538
 94033
 94088
 94192
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Me.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Me.pl,v
diff -u -p -a -u -p -r1.9 Me.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Me.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Me.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Mn.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Mn.pl,v
diff -u -p -a -u -p -r1.9 Mn.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Mn.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Mn.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V672
+V692
 768
 880
 1155
@@ -196,7 +196,7 @@ V672
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -457,6 +457,8 @@ V672
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -501,6 +503,8 @@ V672
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -623,6 +627,18 @@ V672
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -671,12 +687,16 @@ V672
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/N.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/N.pl,v
diff -u -p -a -u -p -r1.9 N.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/N.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/N.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V268
+V274
 48
 58
 178
@@ -237,6 +237,8 @@ V268
 73050
 73120
 73130
+73552
+73562
 73664
 73685
 74752
@@ -251,6 +253,8 @@ V268
 93026
 93824
 93847
+119488
+119508
 119520
 119540
 119648
@@ -261,6 +265,8 @@ V268
 123210
 123632
 123642
+124144
+124154
 125127
 125136
 125264
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Nd.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Nd.pl,v
diff -u -p -a -u -p -r1.8 Nd.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Nd.pl	15 Feb 2023 01:39:53 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Nd.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V124
+V128
 48
 58
 1632
@@ -119,6 +119,8 @@ V124
 73050
 73120
 73130
+73552
+73562
 92768
 92778
 92864
@@ -131,6 +133,8 @@ V124
 123210
 123632
 123642
+124144
+124154
 125264
 125274
 130032
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Nl.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Nl.pl,v
diff -u -p -a -u -p -r1.9 Nl.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Nl.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Nl.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/No.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/No.pl,v
diff -u -p -a -u -p -r1.9 No.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/No.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/No.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V142
+V144
 178
 180
 185
@@ -135,6 +135,8 @@ V142
 93026
 93824
 93847
+119488
+119508
 119520
 119540
 119648
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/P.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/P.pl,v
diff -u -p -a -u -p -r1.9 P.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/P.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/P.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V378
+V382
 33
 36
 37
@@ -359,12 +359,16 @@ V378
 72349
 72350
 72355
+72448
+72458
 72769
 72774
 72816
 72818
 73463
 73465
+73539
+73552
 73727
 73728
 74864
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Pc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Pc.pl,v
diff -u -p -a -u -p -r1.6 Pc.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Pc.pl	15 Feb 2023 01:39:53 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Pc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Pd.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Pd.pl,v
diff -u -p -a -u -p -r1.9 Pd.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Pd.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Pd.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Pe.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Pe.pl,v
diff -u -p -a -u -p -r1.9 Pe.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Pe.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Pe.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Pf.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Pf.pl,v
diff -u -p -a -u -p -r1.9 Pf.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Pf.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Pf.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Pi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Pi.pl,v
diff -u -p -a -u -p -r1.9 Pi.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Pi.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Pi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Po.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Po.pl,v
diff -u -p -a -u -p -r1.9 Po.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Po.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Po.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V370
+V374
 33
 36
 37
@@ -351,12 +351,16 @@ V370
 72349
 72350
 72355
+72448
+72458
 72769
 72774
 72816
 72818
 73463
 73465
+73539
+73552
 73727
 73728
 74864
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Ps.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Ps.pl,v
diff -u -p -a -u -p -r1.9 Ps.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Ps.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Ps.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/S.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/S.pl,v
diff -u -p -a -u -p -r1.9 S.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/S.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/S.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V468
+V464
 36
 37
 43
@@ -429,14 +429,14 @@ V468
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -458,23 +458,19 @@ V468
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Sc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Sc.pl,v
diff -u -p -a -u -p -r1.9 Sc.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Sc.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Sc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Sk.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Sk.pl,v
diff -u -p -a -u -p -r1.9 Sk.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Sk.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Sk.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Sm.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Sm.pl,v
diff -u -p -a -u -p -r1.9 Sm.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Sm.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Sm.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/So.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/So.pl,v
diff -u -p -a -u -p -r1.9 So.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/So.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/So.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V372
+V368
 166
 167
 169
@@ -333,14 +333,14 @@ V372
 127995
 128000
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -362,23 +362,19 @@ V372
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Z.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Z.pl,v
diff -u -p -a -u -p -r1.9 Z.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Z.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Z.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Gc/Zs.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Gc/Zs.pl,v
diff -u -p -a -u -p -r1.9 Zs.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Gc/Zs.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Gc/Zs.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/GrBase/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GrBase/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GrBase/Y.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/GrBase/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1722
+V1750
 32
 127
 160
@@ -310,7 +310,7 @@ V1722
 3302
 3312
 3313
-3315
+3316
 3330
 3341
 3342
@@ -1147,6 +1147,8 @@ V1722
 70198
 70200
 70206
+70207
+70209
 70272
 70279
 70280
@@ -1319,6 +1321,8 @@ V1722
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1365,6 +1369,16 @@ V1722
 73459
 73461
 73465
+73474
+73489
+73490
+73526
+73534
+73536
+73537
+73538
+73539
+73562
 73648
 73649
 73664
@@ -1380,7 +1394,9 @@ V1722
 77712
 77811
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1435,8 +1451,12 @@ V1722
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1475,6 +1495,8 @@ V1722
 119362
 119365
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1533,6 +1555,10 @@ V1722
 121484
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1549,6 +1575,10 @@ V1722
 123642
 123647
 123648
+124112
+124140
+124144
+124154
 124896
 124903
 124904
@@ -1667,14 +1697,14 @@ V1722
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1696,23 +1726,19 @@ V1722
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1722,7 +1748,7 @@ V1722
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1733,4 +1759,6 @@ V1722
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/GrExt/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/GrExt/Y.pl,v
diff -u -p -a -u -p -r1.5 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/GrExt/Y.pl	15 Feb 2023 01:39:53 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/GrExt/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V706
+V726
 768
 880
 1155
@@ -216,7 +216,7 @@ V706
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -473,6 +473,8 @@ V706
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -517,6 +519,8 @@ V706
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -651,6 +655,18 @@ V706
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -703,12 +719,16 @@ V706
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Hex/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Hex/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Hex/Y.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Hex/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Hst/NA.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Hst/NA.pl,v
diff -u -p -a -u -p -r1.9 NA.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Hst/NA.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Hst/NA.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Hyphen/T.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Hyphen/T.pl,v
diff -u -p -a -u -p -r1.5 T.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Hyphen/T.pl	15 Feb 2023 01:39:53 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Hyphen/T.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/IDC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IDC/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IDC/Y.pl	15 Feb 2023 01:39:53 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/IDC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1512
+V1536
 48
 58
 65
@@ -328,7 +328,7 @@ V1512
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -394,7 +394,7 @@ V1512
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -1019,7 +1019,7 @@ V1512
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1066,7 +1066,7 @@ V1512
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1227,6 +1227,14 @@ V1512
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 73648
 73649
 73728
@@ -1238,7 +1246,9 @@ V1512
 77712
 77809
 77824
-78895
+78896
+78912
+78934
 82944
 83527
 92160
@@ -1293,8 +1303,12 @@ V1512
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1401,6 +1415,8 @@ V1512
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1411,6 +1427,10 @@ V1512
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1423,6 +1443,8 @@ V1512
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
@@ -1510,7 +1532,7 @@ V1512
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1521,6 +1543,8 @@ V1512
 195102
 196608
 201547
+201552
+205744
 917760
 918000
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/IDS/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IDS/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IDS/Y.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/IDS/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1296
+V1318
 65
 91
 97
@@ -947,6 +947,8 @@ V1296
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -1071,6 +1073,12 @@ V1296
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -1082,7 +1090,9 @@ V1296
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1127,8 +1137,12 @@ V1296
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1203,6 +1217,10 @@ V1296
 120780
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1213,6 +1231,8 @@ V1296
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1296,7 +1316,7 @@ V1296
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1307,4 +1327,6 @@ V1296
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Allowed.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Allowed.pl,v
diff -u -p -a -u -p -r1.2 Allowed.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Allowed.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Allowed.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V776
+V784
 39
 40
 45
@@ -368,7 +368,7 @@ V776
 3302
 3312
 3313
-3315
+3316
 3328
 3329
 3330
@@ -446,7 +446,7 @@ V776
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3806
@@ -643,8 +643,6 @@ V776
 8187
 8188
 8189
-8204
-8206
 8208
 8209
 8217
@@ -761,12 +759,20 @@ V776
 94194
 110879
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 122624
 122655
+122661
+122667
+123023
+123024
 124896
 124903
 124904
@@ -778,7 +784,7 @@ V776
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -787,4 +793,6 @@ V776
 191457
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Restrict.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Restrict.pl,v
diff -u -p -a -u -p -r1.2 Restrict.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Restrict.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdStatus/Restrict.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V777
+V785
 0
 39
 40
@@ -369,7 +369,7 @@ V777
 3302
 3312
 3313
-3315
+3316
 3328
 3329
 3330
@@ -447,7 +447,7 @@ V777
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3806
@@ -644,8 +644,6 @@ V777
 8187
 8188
 8189
-8204
-8206
 8208
 8209
 8217
@@ -762,12 +760,20 @@ V777
 94194
 110879
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 122624
 122655
+122661
+122667
+123023
+123024
 124896
 124903
 124904
@@ -779,7 +785,7 @@ V777
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -788,4 +794,6 @@ V777
 191457
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/DefaultI.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/DefaultI.pl,v
diff -u -p -a -u -p -r1.2 DefaultI.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/DefaultI.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/DefaultI.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V38
+V36
 173
 174
 847
@@ -24,8 +24,6 @@ V38
 6155
 6160
 8203
-8204
-8206
 8208
 8234
 8239
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/Exclusio.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/Exclusio.pl,v
diff -u -p -a -u -p -r1.2 Exclusio.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/Exclusio.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/Exclusio.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V442
+V448
 994
 1008
 2048
@@ -236,7 +236,7 @@ V442
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -369,6 +369,12 @@ V442
 73050
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73728
 74650
 74752
@@ -380,9 +386,7 @@ V442
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92736
@@ -449,6 +453,8 @@ V442
 122923
 123536
 123567
+124112
+124154
 124928
 125125
 125127
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/Inclusio.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/Inclusio.pl,v
diff -u -p -a -u -p -r1.2 Inclusio.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/Inclusio.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/Inclusio.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V30
+V28
 39
 40
 45
@@ -29,8 +29,6 @@ V30
 1791
 3851
 3852
-8204
-8206
 8208
 8209
 8217
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/LimitedU.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/LimitedU.pl,v
diff -u -p -a -u -p -r1.2 LimitedU.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/LimitedU.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/LimitedU.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/NotChara.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/NotChara.pl,v
diff -u -p -a -u -p -r1.2 NotChara.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/NotChara.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/NotChara.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1399
+V1417
 0
 9
 14
@@ -261,7 +261,7 @@ V1399
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -321,7 +321,7 @@ V1399
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -862,7 +862,7 @@ V1399
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -897,7 +897,7 @@ V1399
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -1002,6 +1002,8 @@ V1399
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1044,6 +1046,12 @@ V1399
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1059,9 +1067,7 @@ V1399
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1114,8 +1120,12 @@ V1399
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1144,6 +1154,8 @@ V1399
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1198,6 +1210,8 @@ V1399
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1208,6 +1222,10 @@ V1399
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1222,6 +1240,8 @@ V1399
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1338,14 +1358,14 @@ V1399
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1367,23 +1387,19 @@ V1399
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1393,7 +1409,7 @@ V1399
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1404,6 +1420,8 @@ V1399
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/NotNFKC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/NotNFKC.pl,v
diff -u -p -a -u -p -r1.2 NotNFKC.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/NotNFKC.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/NotNFKC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V510
+V512
 160
 161
 168
@@ -433,6 +433,8 @@ V510
 120780
 120782
 120832
+122928
+122990
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/NotXID.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/NotXID.pl,v
diff -u -p -a -u -p -r1.2 NotXID.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/NotXID.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/NotXID.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V706
+V708
 9
 14
 32
@@ -551,6 +551,8 @@ V706
 72349
 72350
 72355
+72448
+72458
 72769
 72774
 72794
@@ -559,6 +561,8 @@ V706
 72818
 73463
 73465
+73539
+73552
 73664
 73714
 73727
@@ -568,7 +572,7 @@ V706
 77809
 77811
 78896
-78905
+78912
 92782
 92784
 92917
@@ -609,6 +613,8 @@ V706
 119362
 119365
 119366
+119488
+119508
 119520
 119540
 119552
@@ -667,14 +673,14 @@ V706
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -696,23 +702,19 @@ V706
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/Obsolete.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/Obsolete.pl,v
diff -u -p -a -u -p -r1.2 Obsolete.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/Obsolete.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/Obsolete.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/Recommen.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/Recommen.pl,v
diff -u -p -a -u -p -r1.2 Recommen.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/Recommen.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/Recommen.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V760
+V770
 48
 58
 65
@@ -360,7 +360,7 @@ V760
 3302
 3312
 3313
-3315
+3316
 3328
 3329
 3330
@@ -438,7 +438,7 @@ V760
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3806
@@ -745,12 +745,20 @@ V760
 94194
 110879
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 122624
 122655
+122661
+122667
+123023
+123024
 124896
 124903
 124904
@@ -762,7 +770,7 @@ V760
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -771,4 +779,6 @@ V760
 191457
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/Technica.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/Technica.pl,v
diff -u -p -a -u -p -r1.2 Technica.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/Technica.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/Technica.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/IdType/Uncommon.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/IdType/Uncommon.pl,v
diff -u -p -a -u -p -r1.2 Uncommon.pl
--- gnu/usr.bin/perl/lib/unicore/lib/IdType/Uncommon.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/IdType/Uncommon.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V164
+V166
 385
 397
 398
@@ -161,6 +161,8 @@ V164
 65072
 67456
 67457
+69373
+69376
 92736
 92767
 92768
Index: gnu/usr.bin/perl/lib/unicore/lib/Ideo/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Ideo/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Ideo/Y.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Ideo/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V38
+V40
 12294
 12296
 12321
@@ -38,7 +38,7 @@ V38
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -49,4 +49,6 @@ V38
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/In/10_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/10_0.pl,v
diff -u -p -a -u -p -r1.4 10_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/10_0.pl	15 Feb 2023 01:39:54 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/In/10_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/11_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/11_0.pl,v
diff -u -p -a -u -p -r1.3 11_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/11_0.pl	15 Feb 2023 01:39:54 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/In/11_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/12_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/12_0.pl,v
diff -u -p -a -u -p -r1.3 12_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/12_0.pl	15 Feb 2023 01:39:54 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/In/12_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/12_1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/12_1.pl,v
diff -u -p -a -u -p -r1.3 12_1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/12_1.pl	15 Feb 2023 01:39:54 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/In/12_1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/13_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/13_0.pl,v
diff -u -p -a -u -p -r1.2 13_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/13_0.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/In/13_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/14_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/14_0.pl,v
diff -u -p -a -u -p -r1.1 14_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/14_0.pl	15 Feb 2023 01:39:54 -0000	1.1
+++ gnu/usr.bin/perl/lib/unicore/lib/In/14_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/15_0.pl
===================================================================
RCS file: gnu/usr.bin/perl/lib/unicore/lib/In/15_0.pl
diff -N gnu/usr.bin/perl/lib/unicore/lib/In/15_0.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/unicore/lib/In/15_0.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,1444 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is machine-generated by lib/unicore/mktables from the Unicode
+# database, Version 15.0.0.  Any changes made here will be lost!
+
+# !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
+# This file is for internal use by core Perl only.  The format and even the
+# name or existence of this file are subject to change without notice.  Don't
+# use it directly.  Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V1430
+0
+888
+890
+896
+900
+907
+908
+909
+910
+930
+931
+1328
+1329
+1367
+1369
+1419
+1421
+1424
+1425
+1480
+1488
+1515
+1519
+1525
+1536
+1806
+1807
+1867
+1869
+1970
+1984
+2043
+2045
+2094
+2096
+2111
+2112
+2140
+2142
+2143
+2144
+2155
+2160
+2191
+2192
+2194
+2200
+2436
+2437
+2445
+2447
+2449
+2451
+2473
+2474
+2481
+2482
+2483
+2486
+2490
+2492
+2501
+2503
+2505
+2507
+2511
+2519
+2520
+2524
+2526
+2527
+2532
+2534
+2559
+2561
+2564
+2565
+2571
+2575
+2577
+2579
+2601
+2602
+2609
+2610
+2612
+2613
+2615
+2616
+2618
+2620
+2621
+2622
+2627
+2631
+2633
+2635
+2638
+2641
+2642
+2649
+2653
+2654
+2655
+2662
+2679
+2689
+2692
+2693
+2702
+2703
+2706
+2707
+2729
+2730
+2737
+2738
+2740
+2741
+2746
+2748
+2758
+2759
+2762
+2763
+2766
+2768
+2769
+2784
+2788
+2790
+2802
+2809
+2816
+2817
+2820
+2821
+2829
+2831
+2833
+2835
+2857
+2858
+2865
+2866
+2868
+2869
+2874
+2876
+2885
+2887
+2889
+2891
+2894
+2901
+2904
+2908
+2910
+2911
+2916
+2918
+2936
+2946
+2948
+2949
+2955
+2958
+2961
+2962
+2966
+2969
+2971
+2972
+2973
+2974
+2976
+2979
+2981
+2984
+2987
+2990
+3002
+3006
+3011
+3014
+3017
+3018
+3022
+3024
+3025
+3031
+3032
+3046
+3067
+3072
+3085
+3086
+3089
+3090
+3113
+3114
+3130
+3132
+3141
+3142
+3145
+3146
+3150
+3157
+3159
+3160
+3163
+3165
+3166
+3168
+3172
+3174
+3184
+3191
+3213
+3214
+3217
+3218
+3241
+3242
+3252
+3253
+3258
+3260
+3269
+3270
+3273
+3274
+3278
+3285
+3287
+3293
+3295
+3296
+3300
+3302
+3312
+3313
+3316
+3328
+3341
+3342
+3345
+3346
+3397
+3398
+3401
+3402
+3408
+3412
+3428
+3430
+3456
+3457
+3460
+3461
+3479
+3482
+3506
+3507
+3516
+3517
+3518
+3520
+3527
+3530
+3531
+3535
+3541
+3542
+3543
+3544
+3552
+3558
+3568
+3570
+3573
+3585
+3643
+3647
+3676
+3713
+3715
+3716
+3717
+3718
+3723
+3724
+3748
+3749
+3750
+3751
+3774
+3776
+3781
+3782
+3783
+3784
+3791
+3792
+3802
+3804
+3808
+3840
+3912
+3913
+3949
+3953
+3992
+3993
+4029
+4030
+4045
+4046
+4059
+4096
+4294
+4295
+4296
+4301
+4302
+4304
+4681
+4682
+4686
+4688
+4695
+4696
+4697
+4698
+4702
+4704
+4745
+4746
+4750
+4752
+4785
+4786
+4790
+4792
+4799
+4800
+4801
+4802
+4806
+4808
+4823
+4824
+4881
+4882
+4886
+4888
+4955
+4957
+4989
+4992
+5018
+5024
+5110
+5112
+5118
+5120
+5789
+5792
+5881
+5888
+5910
+5919
+5943
+5952
+5972
+5984
+5997
+5998
+6001
+6002
+6004
+6016
+6110
+6112
+6122
+6128
+6138
+6144
+6170
+6176
+6265
+6272
+6315
+6320
+6390
+6400
+6431
+6432
+6444
+6448
+6460
+6464
+6465
+6468
+6510
+6512
+6517
+6528
+6572
+6576
+6602
+6608
+6619
+6622
+6684
+6686
+6751
+6752
+6781
+6783
+6794
+6800
+6810
+6816
+6830
+6832
+6863
+6912
+6989
+6992
+7039
+7040
+7156
+7164
+7224
+7227
+7242
+7245
+7305
+7312
+7355
+7357
+7368
+7376
+7419
+7424
+7958
+7960
+7966
+7968
+8006
+8008
+8014
+8016
+8024
+8025
+8026
+8027
+8028
+8029
+8030
+8031
+8062
+8064
+8117
+8118
+8133
+8134
+8148
+8150
+8156
+8157
+8176
+8178
+8181
+8182
+8191
+8192
+8293
+8294
+8306
+8308
+8335
+8336
+8349
+8352
+8385
+8400
+8433
+8448
+8588
+8592
+9255
+9280
+9291
+9312
+11124
+11126
+11158
+11159
+11508
+11513
+11558
+11559
+11560
+11565
+11566
+11568
+11624
+11631
+11633
+11647
+11671
+11680
+11687
+11688
+11695
+11696
+11703
+11704
+11711
+11712
+11719
+11720
+11727
+11728
+11735
+11736
+11743
+11744
+11870
+11904
+11930
+11931
+12020
+12032
+12246
+12272
+12284
+12288
+12352
+12353
+12439
+12441
+12544
+12549
+12592
+12593
+12687
+12688
+12772
+12784
+12831
+12832
+42125
+42128
+42183
+42192
+42540
+42560
+42744
+42752
+42955
+42960
+42962
+42963
+42964
+42965
+42970
+42994
+43053
+43056
+43066
+43072
+43128
+43136
+43206
+43214
+43226
+43232
+43348
+43359
+43389
+43392
+43470
+43471
+43482
+43486
+43519
+43520
+43575
+43584
+43598
+43600
+43610
+43612
+43715
+43739
+43767
+43777
+43783
+43785
+43791
+43793
+43799
+43808
+43815
+43816
+43823
+43824
+43884
+43888
+44014
+44016
+44026
+44032
+55204
+55216
+55239
+55243
+55292
+55296
+64110
+64112
+64218
+64256
+64263
+64275
+64280
+64285
+64311
+64312
+64317
+64318
+64319
+64320
+64322
+64323
+64325
+64326
+64451
+64467
+64912
+64914
+64968
+64975
+65050
+65056
+65107
+65108
+65127
+65128
+65132
+65136
+65141
+65142
+65277
+65279
+65280
+65281
+65471
+65474
+65480
+65482
+65488
+65490
+65496
+65498
+65501
+65504
+65511
+65512
+65519
+65529
+65548
+65549
+65575
+65576
+65595
+65596
+65598
+65599
+65614
+65616
+65630
+65664
+65787
+65792
+65795
+65799
+65844
+65847
+65935
+65936
+65949
+65952
+65953
+66000
+66046
+66176
+66205
+66208
+66257
+66272
+66300
+66304
+66340
+66349
+66379
+66384
+66427
+66432
+66462
+66463
+66500
+66504
+66518
+66560
+66718
+66720
+66730
+66736
+66772
+66776
+66812
+66816
+66856
+66864
+66916
+66927
+66939
+66940
+66955
+66956
+66963
+66964
+66966
+66967
+66978
+66979
+66994
+66995
+67002
+67003
+67005
+67072
+67383
+67392
+67414
+67424
+67432
+67456
+67462
+67463
+67505
+67506
+67515
+67584
+67590
+67592
+67593
+67594
+67638
+67639
+67641
+67644
+67645
+67647
+67670
+67671
+67743
+67751
+67760
+67808
+67827
+67828
+67830
+67835
+67868
+67871
+67898
+67903
+67904
+67968
+68024
+68028
+68048
+68050
+68100
+68101
+68103
+68108
+68116
+68117
+68120
+68121
+68150
+68152
+68155
+68159
+68169
+68176
+68185
+68192
+68256
+68288
+68327
+68331
+68343
+68352
+68406
+68409
+68438
+68440
+68467
+68472
+68498
+68505
+68509
+68521
+68528
+68608
+68681
+68736
+68787
+68800
+68851
+68858
+68904
+68912
+68922
+69216
+69247
+69248
+69290
+69291
+69294
+69296
+69298
+69373
+69416
+69424
+69466
+69488
+69514
+69552
+69580
+69600
+69623
+69632
+69710
+69714
+69750
+69759
+69827
+69837
+69838
+69840
+69865
+69872
+69882
+69888
+69941
+69942
+69960
+69968
+70007
+70016
+70112
+70113
+70133
+70144
+70162
+70163
+70210
+70272
+70279
+70280
+70281
+70282
+70286
+70287
+70302
+70303
+70314
+70320
+70379
+70384
+70394
+70400
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70459
+70469
+70471
+70473
+70475
+70478
+70480
+70481
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70656
+70748
+70749
+70754
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71134
+71168
+71237
+71248
+71258
+71264
+71277
+71296
+71354
+71360
+71370
+71424
+71451
+71453
+71468
+71472
+71495
+71680
+71740
+71840
+71923
+71935
+71943
+71945
+71946
+71948
+71956
+71957
+71959
+71960
+71990
+71991
+71993
+71995
+72007
+72016
+72026
+72096
+72104
+72106
+72152
+72154
+72165
+72192
+72264
+72272
+72355
+72368
+72441
+72448
+72458
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
+72960
+72967
+72968
+72970
+72971
+73015
+73018
+73019
+73020
+73022
+73023
+73032
+73040
+73050
+73056
+73062
+73063
+73065
+73066
+73103
+73104
+73106
+73107
+73113
+73120
+73130
+73440
+73465
+73472
+73489
+73490
+73531
+73534
+73562
+73648
+73649
+73664
+73714
+73727
+74650
+74752
+74863
+74864
+74869
+74880
+75076
+77712
+77811
+77824
+78934
+82944
+83527
+92160
+92729
+92736
+92767
+92768
+92778
+92782
+92863
+92864
+92874
+92880
+92910
+92912
+92918
+92928
+92998
+93008
+93018
+93019
+93026
+93027
+93048
+93053
+93072
+93760
+93851
+93952
+94027
+94031
+94088
+94095
+94112
+94176
+94181
+94192
+94194
+94208
+100344
+100352
+101590
+101632
+101641
+110576
+110580
+110581
+110588
+110589
+110591
+110592
+110883
+110898
+110899
+110928
+110931
+110933
+110934
+110948
+110952
+110960
+111356
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+118528
+118574
+118576
+118599
+118608
+118724
+118784
+119030
+119040
+119079
+119081
+119275
+119296
+119366
+119488
+119508
+119520
+119540
+119552
+119639
+119648
+119673
+119808
+119893
+119894
+119965
+119966
+119968
+119970
+119971
+119973
+119975
+119977
+119981
+119982
+119994
+119995
+119996
+119997
+120004
+120005
+120070
+120071
+120075
+120077
+120085
+120086
+120093
+120094
+120122
+120123
+120127
+120128
+120133
+120134
+120135
+120138
+120145
+120146
+120486
+120488
+120780
+120782
+121484
+121499
+121504
+121505
+121520
+122624
+122655
+122661
+122667
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+122928
+122990
+123023
+123024
+123136
+123181
+123184
+123198
+123200
+123210
+123214
+123216
+123536
+123567
+123584
+123642
+123647
+123648
+124112
+124154
+124896
+124903
+124904
+124908
+124909
+124911
+124912
+124927
+124928
+125125
+125127
+125143
+125184
+125260
+125264
+125274
+125278
+125280
+126065
+126133
+126209
+126270
+126464
+126468
+126469
+126496
+126497
+126499
+126500
+126501
+126503
+126504
+126505
+126515
+126516
+126520
+126521
+126522
+126523
+126524
+126530
+126531
+126535
+126536
+126537
+126538
+126539
+126540
+126541
+126544
+126545
+126547
+126548
+126549
+126551
+126552
+126553
+126554
+126555
+126556
+126557
+126558
+126559
+126560
+126561
+126563
+126564
+126565
+126567
+126571
+126572
+126579
+126580
+126584
+126585
+126589
+126590
+126591
+126592
+126602
+126603
+126620
+126625
+126628
+126629
+126634
+126635
+126652
+126704
+126706
+126976
+127020
+127024
+127124
+127136
+127151
+127153
+127168
+127169
+127184
+127185
+127222
+127232
+127406
+127462
+127491
+127504
+127548
+127552
+127561
+127568
+127570
+127584
+127590
+127744
+128728
+128732
+128749
+128752
+128765
+128768
+128887
+128891
+128986
+128992
+129004
+129008
+129009
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+129200
+129202
+129280
+129620
+129632
+129646
+129648
+129661
+129664
+129673
+129680
+129726
+129727
+129734
+129742
+129756
+129760
+129769
+129776
+129785
+129792
+129939
+129940
+129995
+130032
+130042
+131070
+173792
+173824
+177978
+177984
+178206
+178208
+183970
+183984
+191457
+194560
+195102
+196606
+201547
+201552
+205744
+262142
+262144
+327678
+327680
+393214
+393216
+458750
+458752
+524286
+524288
+589822
+589824
+655358
+655360
+720894
+720896
+786430
+786432
+851966
+851968
+917502
+917504
+917505
+917506
+917536
+917632
+917760
+918000
+983038
+1114112
+END
Index: gnu/usr.bin/perl/lib/unicore/lib/In/2_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/2_0.pl,v
diff -u -p -a -u -p -r1.9 2_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/2_0.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/2_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/2_1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/2_1.pl,v
diff -u -p -a -u -p -r1.9 2_1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/2_1.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/2_1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/3_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/3_0.pl,v
diff -u -p -a -u -p -r1.9 3_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/3_0.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/3_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/3_1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/3_1.pl,v
diff -u -p -a -u -p -r1.9 3_1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/3_1.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/3_1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/3_2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/3_2.pl,v
diff -u -p -a -u -p -r1.9 3_2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/3_2.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/3_2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/4_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/4_0.pl,v
diff -u -p -a -u -p -r1.9 4_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/4_0.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/4_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/4_1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/4_1.pl,v
diff -u -p -a -u -p -r1.9 4_1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/4_1.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/4_1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/5_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/5_0.pl,v
diff -u -p -a -u -p -r1.9 5_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/5_0.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/5_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/5_1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/5_1.pl,v
diff -u -p -a -u -p -r1.9 5_1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/5_1.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/5_1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/5_2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/5_2.pl,v
diff -u -p -a -u -p -r1.9 5_2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/5_2.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/In/5_2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/6_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/6_0.pl,v
diff -u -p -a -u -p -r1.8 6_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/6_0.pl	15 Feb 2023 01:39:54 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/In/6_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/6_1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/6_1.pl,v
diff -u -p -a -u -p -r1.8 6_1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/6_1.pl	15 Feb 2023 01:39:54 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/In/6_1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/6_2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/6_2.pl,v
diff -u -p -a -u -p -r1.7 6_2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/6_2.pl	15 Feb 2023 01:39:54 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/In/6_2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/6_3.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/6_3.pl,v
diff -u -p -a -u -p -r1.6 6_3.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/6_3.pl	15 Feb 2023 01:39:54 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/In/6_3.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/7_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/7_0.pl,v
diff -u -p -a -u -p -r1.5 7_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/7_0.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/In/7_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/8_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/8_0.pl,v
diff -u -p -a -u -p -r1.5 8_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/8_0.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/In/8_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/In/9_0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/In/9_0.pl,v
diff -u -p -a -u -p -r1.4 9_0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/In/9_0.pl	15 Feb 2023 01:39:54 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/In/9_0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/Bottom.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/Bottom.pl,v
diff -u -p -a -u -p -r1.5 Bottom.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/Bottom.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/Bottom.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V290
+V294
 2364
 2365
 2369
@@ -221,6 +221,8 @@ V290
 70093
 70191
 70192
+70209
+70210
 70371
 70373
 70377
@@ -301,4 +303,6 @@ V290
 73032
 73460
 73461
+73528
+73531
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/BottomAn.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/BottomAn.pl,v
diff -u -p -a -u -p -r1.2 BottomAn.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/BottomAn.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/BottomAn.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/Left.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/Left.pl,v
diff -u -p -a -u -p -r1.5 Left.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/Left.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/Left.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V94
+V96
 2367
 2368
 2382
@@ -105,4 +105,6 @@ V94
 72882
 73461
 73462
+73534
+73536
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/LeftAndR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/LeftAndR.pl,v
diff -u -p -a -u -p -r1.5 LeftAndR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/LeftAndR.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/LeftAndR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/NA.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/NA.pl,v
diff -u -p -a -u -p -r1.5 NA.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/NA.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/NA.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V429
+V441
 0
 2304
 2308
@@ -19,6 +19,8 @@ V429
 2366
 2384
 2385
+2387
+2389
 2392
 2402
 2404
@@ -120,6 +122,8 @@ V429
 3287
 3298
 3300
+3315
+3316
 3328
 3332
 3387
@@ -157,7 +161,7 @@ V429
 3776
 3781
 3784
-3790
+3791
 3864
 3866
 3893
@@ -276,7 +280,7 @@ V429
 43250
 43263
 43264
-43307
+43302
 43310
 43335
 43348
@@ -352,6 +356,8 @@ V429
 70200
 70206
 70207
+70209
+70210
 70367
 70379
 70400
@@ -440,4 +446,10 @@ V429
 73111
 73459
 73463
+73472
+73476
+73524
+73531
+73534
+73538
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/Overstru.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/Overstru.pl,v
diff -u -p -a -u -p -r1.5 Overstru.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/Overstru.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/Overstru.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/Right.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/Right.pl,v
diff -u -p -a -u -p -r1.5 Right.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/Right.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/Right.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V332
+V340
 2307
 2308
 2363
@@ -69,6 +69,8 @@ V332
 3269
 3285
 3287
+3315
+3316
 3330
 3332
 3390
@@ -343,4 +345,10 @@ V332
 73111
 73462
 73463
+73475
+73476
+73524
+73526
+73537
+73538
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/Top.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/Top.pl,v
diff -u -p -a -u -p -r1.5 Top.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/Top.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/Top.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V390
+V398
 2304
 2307
 2362
@@ -19,7 +19,7 @@ V390
 2377
 2385
 2386
-2387
+2389
 2390
 2433
 2434
@@ -98,7 +98,7 @@ V390
 3771
 3772
 3784
-3790
+3791
 3897
 3898
 3954
@@ -217,6 +217,8 @@ V390
 43250
 43263
 43264
+43302
+43307
 43338
 43339
 43343
@@ -401,4 +403,10 @@ V390
 73110
 73459
 73460
+73472
+73475
+73526
+73528
+73536
+73537
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndBo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndBo.pl,v
diff -u -p -a -u -p -r1.5 TopAndBo.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndBo.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndBo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndL2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndL2.pl,v
diff -u -p -a -u -p -r1.5 TopAndL2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndL2.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndL2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndLe.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndLe.pl,v
diff -u -p -a -u -p -r1.5 TopAndLe.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndLe.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndLe.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndRi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndRi.pl,v
diff -u -p -a -u -p -r1.5 TopAndRi.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndRi.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/TopAndRi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InPC/VisualOr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InPC/VisualOr.pl,v
diff -u -p -a -u -p -r1.5 VisualOr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InPC/VisualOr.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InPC/VisualOr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Avagraha.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Avagraha.pl,v
diff -u -p -a -u -p -r1.5 Avagraha.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Avagraha.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Avagraha.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Bindu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Bindu.pl,v
diff -u -p -a -u -p -r1.5 Bindu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Bindu.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Bindu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V112
+V116
 2304
 2307
 2433
@@ -33,6 +33,8 @@ V112
 3077
 3200
 3203
+3315
+3316
 3328
 3331
 3332
@@ -123,4 +125,6 @@ V112
 73025
 73109
 73110
+73472
+73474
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Cantilla.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Cantilla.pl,v
diff -u -p -a -u -p -r1.5 Cantilla.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Cantilla.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Cantilla.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,12 +10,14 @@
 
 
 return <<'END';
-V24
+V26
 2385
 2387
 2641
 2642
 2810
+2811
+2812
 2813
 7376
 7379
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona2.pl,v
diff -u -p -a -u -p -r1.5 Consona2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona2.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona3.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona3.pl,v
diff -u -p -a -u -p -r1.5 Consona3.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona3.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona3.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona4.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona4.pl,v
diff -u -p -a -u -p -r1.5 Consona4.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona4.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona4.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona5.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona5.pl,v
diff -u -p -a -u -p -r1.5 Consona5.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona5.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona5.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona6.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona6.pl,v
diff -u -p -a -u -p -r1.5 Consona6.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona6.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona6.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona7.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona7.pl,v
diff -u -p -a -u -p -r1.3 Consona7.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona7.pl	15 Feb 2023 01:39:54 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona7.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona8.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona8.pl,v
diff -u -p -a -u -p -r1.2 Consona8.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona8.pl	15 Feb 2023 01:39:54 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona8.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona9.pl
===================================================================
RCS file: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona9.pl
diff -N gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona9.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consona9.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,22 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is machine-generated by lib/unicore/mktables from the Unicode
+# database, Version 15.0.0.  Any changes made here will be lost!
+
+# !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
+# This file is for internal use by core Perl only.  The format and even the
+# name or existence of this file are subject to change without notice.  Don't
+# use it directly.  Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+3406
+3407
+72001
+72002
+73030
+73031
+73474
+73475
+END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Consonan.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Consonan.pl,v
diff -u -p -a -u -p -r1.5 Consonan.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Consonan.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Consonan.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V310
+V314
 2325
 2362
 2392
@@ -261,6 +261,8 @@ V310
 70162
 70163
 70188
+70207
+70208
 70276
 70279
 70280
@@ -321,4 +323,6 @@ V310
 73098
 73440
 73458
+73490
+73524
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Geminati.pl
===================================================================
RCS file: gnu/usr.bin/perl/lib/unicore/lib/InSC/Geminati.pl
diff -N gnu/usr.bin/perl/lib/unicore/lib/InSC/Geminati.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Geminati.pl	21 Feb 2024 15:47:02 -0000
@@ -0,0 +1,22 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is machine-generated by lib/unicore/mktables from the Unicode
+# database, Version 15.0.0.  Any changes made here will be lost!
+
+# !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
+# This file is for internal use by core Perl only.  The format and even the
+# name or existence of this file are subject to change without notice.  Don't
+# use it directly.  Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+2673
+2674
+2811
+2812
+70199
+70200
+72344
+72345
+END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Invisibl.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Invisibl.pl,v
diff -u -p -a -u -p -r1.5 Invisibl.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Invisibl.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Invisibl.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V24
+V26
 4153
 4154
 6098
@@ -35,4 +35,6 @@ V24
 73030
 73111
 73112
+73538
+73539
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Nukta.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Nukta.pl,v
diff -u -p -a -u -p -r1.5 Nukta.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Nukta.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Nukta.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Number.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Number.pl,v
diff -u -p -a -u -p -r1.5 Number.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Number.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Number.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V90
+V92
 48
 58
 2406
@@ -101,4 +101,6 @@ V90
 73050
 73120
 73130
+73552
+73562
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Other.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Other.pl,v
diff -u -p -a -u -p -r1.5 Other.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Other.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Other.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V647
+V655
 0
 45
 46
@@ -233,7 +233,7 @@ V647
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -305,7 +305,7 @@ V647
 3784
 3788
 3789
-3790
+3791
 3792
 3802
 3804
@@ -505,7 +505,7 @@ V647
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -658,4 +658,12 @@ V647
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/PureKill.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/PureKill.pl,v
diff -u -p -a -u -p -r1.5 PureKill.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/PureKill.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/PureKill.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V44
+V46
 3387
 3389
 3642
@@ -55,4 +55,6 @@ V44
 72245
 73028
 73029
+73537
+73538
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Syllable.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Syllable.pl,v
diff -u -p -a -u -p -r1.5 Syllable.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Syllable.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Syllable.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,11 +10,13 @@
 
 
 return <<'END';
-V38
+V40
 178
 180
 2558
 2559
+3790
+3791
 3893
 3894
 3895
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/ToneMark.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/ToneMark.pl,v
diff -u -p -a -u -p -r1.5 ToneMark.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/ToneMark.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/ToneMark.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Virama.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Virama.pl,v
diff -u -p -a -u -p -r1.5 Virama.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Virama.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Virama.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Visarga.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Visarga.pl,v
diff -u -p -a -u -p -r1.5 Visarga.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Visarga.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Visarga.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V70
+V72
 2307
 2308
 2435
@@ -81,4 +81,6 @@ V70
 73026
 73110
 73111
+73475
+73476
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/Vowel.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/Vowel.pl,v
diff -u -p -a -u -p -r1.5 Vowel.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/Vowel.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/Vowel.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelDep.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelDep.pl,v
diff -u -p -a -u -p -r1.5 VowelDep.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelDep.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelDep.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V268
+V274
 2362
 2364
 2366
@@ -209,6 +209,8 @@ V268
 70095
 70188
 70196
+70209
+70210
 70368
 70377
 70462
@@ -279,4 +281,8 @@ V268
 73109
 73459
 73463
+73524
+73531
+73534
+73537
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelInd.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelInd.pl,v
diff -u -p -a -u -p -r1.5 VowelInd.pl
--- gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelInd.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/InSC/VowelInd.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V176
+V180
 2308
 2325
 2400
@@ -133,6 +133,8 @@ V176
 70033
 70144
 70152
+70208
+70209
 70272
 70276
 70320
@@ -187,4 +189,6 @@ V176
 73065
 73066
 73068
+73476
+73489
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Ain.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Ain.pl,v
diff -u -p -a -u -p -r1.9 Ain.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Ain.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Ain.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Alef.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Alef.pl,v
diff -u -p -a -u -p -r1.9 Alef.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Alef.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Alef.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Beh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Beh.pl,v
diff -u -p -a -u -p -r1.9 Beh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Beh.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Beh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Dal.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Dal.pl,v
diff -u -p -a -u -p -r1.9 Dal.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Dal.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Dal.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/FarsiYeh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/FarsiYeh.pl,v
diff -u -p -a -u -p -r1.9 FarsiYeh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/FarsiYeh.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/FarsiYeh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Feh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Feh.pl,v
diff -u -p -a -u -p -r1.9 Feh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Feh.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Feh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Gaf.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Gaf.pl,v
diff -u -p -a -u -p -r1.9 Gaf.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Gaf.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Gaf.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Hah.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Hah.pl,v
diff -u -p -a -u -p -r1.9 Hah.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Hah.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Hah.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/HanifiRo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/HanifiRo.pl,v
diff -u -p -a -u -p -r1.3 HanifiRo.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/HanifiRo.pl	15 Feb 2023 01:39:54 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/HanifiRo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Kaf.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Kaf.pl,v
diff -u -p -a -u -p -r1.9 Kaf.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Kaf.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Kaf.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Lam.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Lam.pl,v
diff -u -p -a -u -p -r1.9 Lam.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Lam.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Lam.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/NoJoinin.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/NoJoinin.pl,v
diff -u -p -a -u -p -r1.9 NoJoinin.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/NoJoinin.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/NoJoinin.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Noon.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Noon.pl,v
diff -u -p -a -u -p -r1.5 Noon.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Noon.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Noon.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Qaf.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Qaf.pl,v
diff -u -p -a -u -p -r1.9 Qaf.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Qaf.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Qaf.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Reh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Reh.pl,v
diff -u -p -a -u -p -r1.9 Reh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Reh.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Reh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Sad.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Sad.pl,v
diff -u -p -a -u -p -r1.9 Sad.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Sad.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Sad.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Seen.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Seen.pl,v
diff -u -p -a -u -p -r1.9 Seen.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Seen.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Seen.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Tah.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Tah.pl,v
diff -u -p -a -u -p -r1.5 Tah.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Tah.pl	15 Feb 2023 01:39:54 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Tah.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Waw.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Waw.pl,v
diff -u -p -a -u -p -r1.9 Waw.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Waw.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Waw.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jg/Yeh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jg/Yeh.pl,v
diff -u -p -a -u -p -r1.9 Yeh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jg/Yeh.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jg/Yeh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jt/C.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jt/C.pl,v
diff -u -p -a -u -p -r1.9 C.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jt/C.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jt/C.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jt/D.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jt/D.pl,v
diff -u -p -a -u -p -r1.9 D.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jt/D.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jt/D.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jt/L.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jt/L.pl,v
diff -u -p -a -u -p -r1.3 L.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jt/L.pl	15 Feb 2023 01:39:54 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Jt/L.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jt/R.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jt/R.pl,v
diff -u -p -a -u -p -r1.9 R.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jt/R.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jt/R.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Jt/T.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jt/T.pl,v
diff -u -p -a -u -p -r1.9 T.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jt/T.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jt/T.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V694
+V712
 173
 174
 768
@@ -202,7 +202,7 @@ V694
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -471,6 +471,8 @@ V694
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -515,6 +517,8 @@ V694
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -637,8 +641,18 @@ V694
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
 78896
-78905
+78913
+78919
+78934
 92912
 92917
 92976
@@ -689,12 +703,16 @@ V694
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Jt/U.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Jt/U.pl,v
diff -u -p -a -u -p -r1.9 U.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Jt/U.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Jt/U.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V745
+V763
 0
 173
 174
@@ -223,7 +223,7 @@ V745
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -510,6 +510,8 @@ V745
 68904
 69291
 69293
+69373
+69376
 69424
 69445
 69446
@@ -566,6 +568,8 @@ V745
 70200
 70206
 70207
+70209
+70210
 70367
 70368
 70371
@@ -688,8 +692,18 @@ V745
 73112
 73459
 73461
+73472
+73474
+73526
+73531
+73536
+73537
+73538
+73539
 78896
-78905
+78913
+78919
+78934
 92912
 92917
 92976
@@ -740,12 +754,16 @@ V745
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125184
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/AI.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/AI.pl,v
diff -u -p -a -u -p -r1.9 AI.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/AI.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/AI.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/AL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/AL.pl,v
diff -u -p -a -u -p -r1.9 AL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/AL.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/AL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1596
+V1612
 35
 36
 38
@@ -547,8 +547,6 @@ V1596
 8260
 8266
 8278
-8279
-8280
 8284
 8285
 8289
@@ -1157,6 +1155,8 @@ V1596
 70203
 70205
 70206
+70207
+70209
 70272
 70279
 70280
@@ -1293,6 +1293,12 @@ V1596
 73459
 73463
 73465
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73664
@@ -1316,7 +1322,9 @@ V1596
 78474
 78713
 78716
-78895
+78896
+78913
+78919
 82944
 83406
 83408
@@ -1389,6 +1397,8 @@ V1596
 119362
 119365
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1449,6 +1459,10 @@ V1596
 121484
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1459,6 +1473,8 @@ V1596
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/BA.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/BA.pl,v
diff -u -p -a -u -p -r1.9 BA.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/BA.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/BA.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V200
+V202
 9
 10
 124
@@ -193,6 +193,8 @@ V200
 72355
 72769
 72774
+73539
+73541
 73727
 73728
 74864
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/BB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/BB.pl,v
diff -u -p -a -u -p -r1.9 BB.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/BB.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/BB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V48
+V50
 180
 181
 712
@@ -57,6 +57,8 @@ V48
 72262
 72350
 72353
+72448
+72458
 72816
 72817
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/CJ.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/CJ.pl,v
diff -u -p -a -u -p -r1.8 CJ.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/CJ.pl	15 Feb 2023 01:39:54 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/CJ.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V54
+V58
 12353
 12354
 12355
@@ -61,8 +61,12 @@ V54
 12800
 65383
 65393
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/CL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/CL.pl,v
diff -u -p -a -u -p -r1.9 CL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/CL.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/CL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V174
+V178
 125
 126
 3899
@@ -183,6 +183,10 @@ V174
 78716
 78904
 78905
+78909
+78910
+78911
+78912
 83407
 83408
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/CM.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/CM.pl,v
diff -u -p -a -u -p -r1.9 CM.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/CM.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/CM.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V574
+V600
 0
 9
 14
@@ -185,6 +185,8 @@ V574
 3287
 3298
 3300
+3315
+3316
 3328
 3332
 3387
@@ -286,6 +288,10 @@ V574
 7415
 7418
 7616
+7629
+7630
+7676
+7677
 7680
 8204
 8205
@@ -387,6 +393,8 @@ V574
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -425,6 +433,8 @@ V574
 70200
 70206
 70207
+70209
+70210
 70367
 70379
 70400
@@ -517,6 +527,18 @@ V574
 73112
 73459
 73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -569,12 +591,16 @@ V574
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/EX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/EX.pl,v
diff -u -p -a -u -p -r1.9 EX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/EX.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/EX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/GL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/GL.pl,v
diff -u -p -a -u -p -r1.9 GL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/GL.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/GL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V26
+V32
 160
 161
 847
@@ -27,6 +27,10 @@ V26
 4059
 6158
 6159
+7629
+7630
+7676
+7677
 8199
 8200
 8209
@@ -35,6 +39,8 @@ V26
 8240
 78896
 78903
+78905
+78908
 94180
 94181
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/ID.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/ID.pl,v
diff -u -p -a -u -p -r1.9 ID.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/ID.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/ID.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V334
+V336
 8986
 8988
 9200
@@ -201,6 +201,8 @@ V334
 65501
 65506
 65509
+73541
+73552
 94208
 100344
 100352
@@ -337,7 +339,7 @@ V334
 129731
 129734
 129776
-129783
+129785
 129792
 130048
 131070
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/IN.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/IN.pl,v
diff -u -p -a -u -p -r1.9 IN.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/IN.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/IN.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/IS.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/IS.pl,v
diff -u -p -a -u -p -r1.9 IS.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/IS.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/IS.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/NS.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/NS.pl,v
diff -u -p -a -u -p -r1.9 NS.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/NS.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/NS.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/NU.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/NU.pl,v
diff -u -p -a -u -p -r1.6 NU.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/NU.pl	15 Feb 2023 01:39:54 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/NU.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V124
+V128
 48
 58
 1632
@@ -119,6 +119,8 @@ V124
 73050
 73120
 73130
+73552
+73562
 92768
 92778
 92864
@@ -131,6 +133,8 @@ V124
 123210
 123632
 123642
+124144
+124154
 125264
 125274
 130032
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/OP.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/OP.pl,v
diff -u -p -a -u -p -r1.9 OP.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/OP.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/OP.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V178
+V182
 40
 41
 91
@@ -185,6 +185,10 @@ V178
 78714
 78903
 78904
+78908
+78909
+78910
+78911
 83406
 83407
 125278
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/PO.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/PO.pl,v
diff -u -p -a -u -p -r1.9 PO.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/PO.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/PO.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V48
+V50
 37
 38
 162
@@ -29,6 +29,8 @@ V48
 3450
 8240
 8248
+8279
+8280
 8359
 8360
 8374
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/PR.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/PR.pl,v
diff -u -p -a -u -p -r1.9 PR.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/PR.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/PR.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/QU.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/QU.pl,v
diff -u -p -a -u -p -r1.9 QU.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/QU.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/QU.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/SA.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/SA.pl,v
diff -u -p -a -u -p -r1.9 SA.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/SA.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/SA.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -32,7 +32,7 @@ V70
 3782
 3783
 3784
-3790
+3791
 3804
 3808
 4096
Index: gnu/usr.bin/perl/lib/unicore/lib/Lb/XX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lb/XX.pl,v
diff -u -p -a -u -p -r1.9 XX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lb/XX.pl	15 Feb 2023 01:39:54 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lb/XX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1307
+V1327
 888
 890
 896
@@ -253,7 +253,7 @@ V1307
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -313,7 +313,7 @@ V1307
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -850,7 +850,7 @@ V1307
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -885,7 +885,7 @@ V1307
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -990,6 +990,8 @@ V1307
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1032,6 +1034,12 @@ V1307
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1047,9 +1055,7 @@ V1307
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1102,8 +1108,12 @@ V1307
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1132,6 +1142,8 @@ V1307
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1186,6 +1198,8 @@ V1307
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1196,6 +1210,10 @@ V1307
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1210,6 +1228,8 @@ V1307
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
Index: gnu/usr.bin/perl/lib/unicore/lib/Lower/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Lower/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Lower/Y.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Lower/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1336
+V1342
 97
 123
 170
@@ -563,7 +563,7 @@ V1336
 1417
 4304
 4347
-4349
+4348
 4352
 5112
 5118
@@ -1243,6 +1243,8 @@ V1336
 42968
 42969
 42970
+42994
+42997
 42998
 42999
 43000
@@ -1250,7 +1252,7 @@ V1336
 43824
 43867
 43868
-43881
+43882
 43888
 43968
 64256
@@ -1345,6 +1347,10 @@ V1336
 122634
 122635
 122655
+122661
+122667
+122928
+122990
 125218
 125252
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Math/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Math/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Math/Y.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Math/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/NFCQC/M.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFCQC/M.pl,v
diff -u -p -a -u -p -r1.7 M.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFCQC/M.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/NFCQC/M.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/NFCQC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFCQC/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFCQC/Y.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/NFCQC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/NFDQC/N.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFDQC/N.pl,v
diff -u -p -a -u -p -r1.9 N.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFDQC/N.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/NFDQC/N.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/NFDQC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFDQC/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFDQC/Y.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/NFDQC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/N.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/N.pl,v
diff -u -p -a -u -p -r1.9 N.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/N.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/N.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V508
+V510
 160
 161
 168
@@ -431,6 +431,8 @@ V508
 120780
 120782
 120832
+122928
+122990
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/Y.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/NFKCQC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V585
+V587
 0
 160
 161
@@ -508,6 +508,8 @@ V585
 120780
 120782
 120832
+122928
+122990
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/N.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/N.pl,v
diff -u -p -a -u -p -r1.9 N.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/N.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/N.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V792
+V794
 160
 161
 168
@@ -715,6 +715,8 @@ V792
 120780
 120782
 120832
+122928
+122990
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/Y.pl,v
diff -u -p -a -u -p -r1.7 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/Y.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/NFKDQC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V793
+V795
 0
 160
 161
@@ -716,6 +716,8 @@ V793
 120780
 120782
 120832
+122928
+122990
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/Nt/Di.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nt/Di.pl,v
diff -u -p -a -u -p -r1.9 Di.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nt/Di.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nt/Di.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nt/None.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nt/None.pl,v
diff -u -p -a -u -p -r1.7 None.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nt/None.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nt/None.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V413
+V419
 0
 48
 58
@@ -350,6 +350,8 @@ V413
 73050
 73120
 73130
+73552
+73562
 73664
 73685
 74752
@@ -364,6 +366,8 @@ V413
 93026
 93824
 93847
+119488
+119508
 119520
 119540
 119648
@@ -374,6 +378,8 @@ V413
 123210
 123632
 123642
+124144
+124154
 125127
 125136
 125264
Index: gnu/usr.bin/perl/lib/unicore/lib/Nt/Nu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nt/Nu.pl,v
diff -u -p -a -u -p -r1.9 Nu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nt/Nu.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nt/Nu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V302
+V304
 188
 191
 2548
@@ -263,6 +263,8 @@ V302
 93026
 93824
 93847
+119488
+119508
 119520
 119540
 119648
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/0.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/0.pl,v
diff -u -p -a -u -p -r1.9 0.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/0.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/0.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V164
+V170
 48
 49
 1632
@@ -143,6 +143,8 @@ V164
 73041
 73120
 73121
+73552
+73553
 92768
 92769
 92864
@@ -151,6 +153,8 @@ V164
 93009
 93824
 93825
+119488
+119489
 119520
 119521
 120782
@@ -167,6 +171,8 @@ V164
 123201
 123632
 123633
+124144
+124145
 125264
 125265
 127232
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1.pl,v
diff -u -p -a -u -p -r1.9 1.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V276
+V282
 49
 50
 185
@@ -225,6 +225,8 @@ V276
 73042
 73121
 73122
+73553
+73554
 74773
 74774
 74782
@@ -247,6 +249,8 @@ V276
 93826
 93844
 93845
+119489
+119490
 119521
 119522
 119648
@@ -269,6 +273,8 @@ V276
 123202
 123633
 123634
+124145
+124146
 125127
 125128
 125265
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/10.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/10.pl,v
diff -u -p -a -u -p -r1.9 10.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/10.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/10.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V116
+V118
 3056
 3057
 3440
@@ -117,6 +117,8 @@ V116
 93020
 93834
 93835
+119498
+119499
 119530
 119531
 119657
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/100.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/100.pl,v
diff -u -p -a -u -p -r1.9 100.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/100.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/100.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1000.pl,v
diff -u -p -a -u -p -r1.9 1000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1000.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/10000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/10000.pl,v
diff -u -p -a -u -p -r1.9 10000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/10000.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/10000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/100000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/100000.pl,v
diff -u -p -a -u -p -r1.7 100000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/100000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/100000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/11.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/11.pl,v
diff -u -p -a -u -p -r1.9 11.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/11.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/11.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V16
+V18
 8554
 8555
 8570
@@ -25,6 +25,8 @@ V16
 9452
 93835
 93836
+119499
+119500
 119531
 119532
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/12.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/12.pl,v
diff -u -p -a -u -p -r1.9 12.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/12.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/12.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V16
+V18
 8555
 8556
 8571
@@ -25,6 +25,8 @@ V16
 9453
 93836
 93837
+119500
+119501
 119532
 119533
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/13.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/13.pl,v
diff -u -p -a -u -p -r1.9 13.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/13.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/13.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V12
+V14
 9324
 9325
 9344
@@ -21,6 +21,8 @@ V12
 9454
 93837
 93838
+119501
+119502
 119533
 119534
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/14.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/14.pl,v
diff -u -p -a -u -p -r1.9 14.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/14.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/14.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V12
+V14
 9325
 9326
 9345
@@ -21,6 +21,8 @@ V12
 9455
 93838
 93839
+119502
+119503
 119534
 119535
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/15.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/15.pl,v
diff -u -p -a -u -p -r1.9 15.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/15.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/15.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V12
+V14
 9326
 9327
 9346
@@ -21,6 +21,8 @@ V12
 9456
 93839
 93840
+119503
+119504
 119535
 119536
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/16.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/16.pl,v
diff -u -p -a -u -p -r1.9 16.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/16.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/16.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V14
+V16
 2553
 2554
 9327
@@ -23,6 +23,8 @@ V14
 9457
 93840
 93841
+119504
+119505
 119536
 119537
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/17.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/17.pl,v
diff -u -p -a -u -p -r1.9 17.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/17.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/17.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V14
+V16
 5870
 5871
 9328
@@ -23,6 +23,8 @@ V14
 9458
 93841
 93842
+119505
+119506
 119537
 119538
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/18.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/18.pl,v
diff -u -p -a -u -p -r1.9 18.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/18.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/18.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V14
+V16
 5871
 5872
 9329
@@ -23,6 +23,8 @@ V14
 9459
 93842
 93843
+119506
+119507
 119538
 119539
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/19.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/19.pl,v
diff -u -p -a -u -p -r1.9 19.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/19.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/19.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V14
+V16
 5872
 5873
 9330
@@ -23,6 +23,8 @@ V14
 9460
 93843
 93844
+119507
+119508
 119539
 119540
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1_16.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1_16.pl,v
diff -u -p -a -u -p -r1.8 1_16.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1_16.pl	15 Feb 2023 01:39:55 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1_16.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1_2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1_2.pl,v
diff -u -p -a -u -p -r1.9 1_2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1_2.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1_2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1_3.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1_3.pl,v
diff -u -p -a -u -p -r1.9 1_3.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1_3.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1_3.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1_4.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1_4.pl,v
diff -u -p -a -u -p -r1.9 1_4.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1_4.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1_4.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1_6.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1_6.pl,v
diff -u -p -a -u -p -r1.7 1_6.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1_6.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1_6.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/1_8.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/1_8.pl,v
diff -u -p -a -u -p -r1.9 1_8.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/1_8.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/1_8.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/2.pl,v
diff -u -p -a -u -p -r1.9 2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/2.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V274
+V280
 50
 51
 178
@@ -215,6 +215,8 @@ V274
 73043
 73122
 73123
+73554
+73555
 74752
 74753
 74774
@@ -245,6 +247,8 @@ V274
 93827
 93845
 93846
+119490
+119491
 119522
 119523
 119649
@@ -265,6 +269,8 @@ V274
 123203
 123634
 123635
+124146
+124147
 125128
 125129
 125266
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/20.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/20.pl,v
diff -u -p -a -u -p -r1.9 20.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/20.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/20.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/200.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/200.pl,v
diff -u -p -a -u -p -r1.9 200.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/200.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/200.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/2000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/2000.pl,v
diff -u -p -a -u -p -r1.7 2000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/2000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/2000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/20000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/20000.pl,v
diff -u -p -a -u -p -r1.7 20000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/20000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/20000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/2_3.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/2_3.pl,v
diff -u -p -a -u -p -r1.9 2_3.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/2_3.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/2_3.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/3.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/3.pl,v
diff -u -p -a -u -p -r1.9 3.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/3.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/3.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V268
+V274
 51
 52
 179
@@ -203,6 +203,8 @@ V268
 73044
 73123
 73124
+73555
+73556
 74753
 74754
 74760
@@ -235,6 +237,8 @@ V268
 93828
 93846
 93847
+119491
+119492
 119523
 119524
 119650
@@ -255,6 +259,8 @@ V268
 123204
 123635
 123636
+124147
+124148
 125129
 125130
 125267
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/30.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/30.pl,v
diff -u -p -a -u -p -r1.9 30.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/30.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/30.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/300.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/300.pl,v
diff -u -p -a -u -p -r1.9 300.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/300.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/300.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/3000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/3000.pl,v
diff -u -p -a -u -p -r1.7 3000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/3000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/3000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/30000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/30000.pl,v
diff -u -p -a -u -p -r1.7 30000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/30000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/30000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/3_16.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/3_16.pl,v
diff -u -p -a -u -p -r1.8 3_16.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/3_16.pl	15 Feb 2023 01:39:55 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/3_16.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/3_4.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/3_4.pl,v
diff -u -p -a -u -p -r1.9 3_4.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/3_4.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/3_4.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/4.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/4.pl,v
diff -u -p -a -u -p -r1.9 4.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/4.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/4.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V254
+V260
 52
 53
 1636
@@ -191,6 +191,8 @@ V254
 73045
 73124
 73125
+73556
+73557
 74754
 74755
 74761
@@ -223,6 +225,8 @@ V254
 93013
 93828
 93829
+119492
+119493
 119524
 119525
 119651
@@ -243,6 +247,8 @@ V254
 123205
 123636
 123637
+124148
+124149
 125130
 125131
 125268
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/40.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/40.pl,v
diff -u -p -a -u -p -r1.9 40.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/40.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/40.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/400.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/400.pl,v
diff -u -p -a -u -p -r1.9 400.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/400.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/400.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/4000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/4000.pl,v
diff -u -p -a -u -p -r1.7 4000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/4000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/4000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/40000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/40000.pl,v
diff -u -p -a -u -p -r1.7 40000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/40000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/40000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/5.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/5.pl,v
diff -u -p -a -u -p -r1.9 5.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/5.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/5.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V258
+V264
 53
 54
 1637
@@ -199,6 +199,8 @@ V258
 73046
 73125
 73126
+73557
+73558
 74755
 74756
 74762
@@ -229,6 +231,8 @@ V258
 93014
 93829
 93830
+119493
+119494
 119525
 119526
 119652
@@ -251,6 +255,8 @@ V258
 123206
 123637
 123638
+124149
+124150
 125131
 125132
 125269
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/50.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/50.pl,v
diff -u -p -a -u -p -r1.9 50.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/50.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/50.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/500.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/500.pl,v
diff -u -p -a -u -p -r1.9 500.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/500.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/500.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/5000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/5000.pl,v
diff -u -p -a -u -p -r1.9 5000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/5000.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/5000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/50000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/50000.pl,v
diff -u -p -a -u -p -r1.9 50000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/50000.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/50000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/6.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/6.pl,v
diff -u -p -a -u -p -r1.9 6.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/6.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/6.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V228
+V234
 54
 55
 1638
@@ -179,6 +179,8 @@ V228
 73047
 73126
 73127
+73558
+73559
 74756
 74757
 74763
@@ -203,6 +205,8 @@ V228
 93015
 93830
 93831
+119494
+119495
 119526
 119527
 119653
@@ -221,6 +225,8 @@ V228
 123207
 123638
 123639
+124150
+124151
 125132
 125133
 125270
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/60.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/60.pl,v
diff -u -p -a -u -p -r1.9 60.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/60.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/60.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/600.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/600.pl,v
diff -u -p -a -u -p -r1.9 600.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/600.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/600.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/6000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/6000.pl,v
diff -u -p -a -u -p -r1.7 6000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/6000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/6000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/60000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/60000.pl,v
diff -u -p -a -u -p -r1.7 60000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/60000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/60000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/7.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/7.pl,v
diff -u -p -a -u -p -r1.9 7.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/7.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/7.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V222
+V228
 55
 56
 1639
@@ -175,6 +175,8 @@ V222
 73048
 73127
 73128
+73559
+73560
 74757
 74758
 74764
@@ -197,6 +199,8 @@ V222
 93016
 93831
 93832
+119495
+119496
 119527
 119528
 119654
@@ -215,6 +219,8 @@ V222
 123208
 123639
 123640
+124151
+124152
 125133
 125134
 125271
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/70.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/70.pl,v
diff -u -p -a -u -p -r1.9 70.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/70.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/70.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/700.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/700.pl,v
diff -u -p -a -u -p -r1.9 700.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/700.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/700.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/7000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/7000.pl,v
diff -u -p -a -u -p -r1.7 7000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/7000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/7000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/70000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/70000.pl,v
diff -u -p -a -u -p -r1.7 70000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/70000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/70000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/8.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/8.pl,v
diff -u -p -a -u -p -r1.9 8.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/8.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/8.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V216
+V222
 56
 57
 1640
@@ -171,6 +171,8 @@ V216
 73049
 73128
 73129
+73560
+73561
 74758
 74759
 74765
@@ -193,6 +195,8 @@ V216
 93017
 93832
 93833
+119496
+119497
 119528
 119529
 119655
@@ -211,6 +215,8 @@ V216
 123209
 123640
 123641
+124152
+124153
 125134
 125135
 125272
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/80.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/80.pl,v
diff -u -p -a -u -p -r1.9 80.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/80.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/80.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/800.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/800.pl,v
diff -u -p -a -u -p -r1.9 800.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/800.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/800.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/8000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/8000.pl,v
diff -u -p -a -u -p -r1.7 8000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/8000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/8000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/80000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/80000.pl,v
diff -u -p -a -u -p -r1.7 80000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/80000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/80000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/9.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/9.pl,v
diff -u -p -a -u -p -r1.9 9.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/9.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/9.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V220
+V226
 57
 58
 1641
@@ -173,6 +173,8 @@ V220
 73050
 73129
 73130
+73561
+73562
 74759
 74760
 74766
@@ -195,6 +197,8 @@ V220
 93018
 93833
 93834
+119497
+119498
 119529
 119530
 119656
@@ -213,6 +217,8 @@ V220
 123210
 123641
 123642
+124153
+124154
 125135
 125136
 125273
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/90.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/90.pl,v
diff -u -p -a -u -p -r1.9 90.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/90.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/90.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/900.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/900.pl,v
diff -u -p -a -u -p -r1.9 900.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/900.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/900.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/9000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/9000.pl,v
diff -u -p -a -u -p -r1.7 9000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/9000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/9000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Nv/90000.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Nv/90000.pl,v
diff -u -p -a -u -p -r1.7 90000.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Nv/90000.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Nv/90000.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/PCM/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/PCM/Y.pl,v
diff -u -p -a -u -p -r1.4 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/PCM/Y.pl	15 Feb 2023 01:39:55 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/PCM/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/PatSyn/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/PatSyn/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/PatSyn/Y.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/PatSyn/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Alnum.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Alnum.pl,v
diff -u -p -a -u -p -r1.9 Alnum.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Alnum.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Alnum.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1520
+V1544
 48
 58
 65
@@ -288,8 +288,6 @@ V1520
 3046
 3056
 3072
-3076
-3077
 3085
 3086
 3089
@@ -340,7 +338,7 @@ V1520
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -426,7 +424,7 @@ V1520
 3913
 3949
 3953
-3970
+3972
 3976
 3992
 3993
@@ -1045,7 +1043,7 @@ V1520
 69744
 69745
 69750
-69762
+69760
 69817
 69826
 69827
@@ -1078,7 +1076,7 @@ V1520
 70199
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1257,6 +1255,14 @@ V1520
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73537
+73552
+73562
 73648
 73649
 73728
@@ -1268,7 +1274,9 @@ V1520
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1321,8 +1329,12 @@ V1520
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1401,6 +1413,8 @@ V1520
 120832
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1411,6 +1425,10 @@ V1520
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123191
@@ -1425,6 +1443,10 @@ V1520
 123628
 123632
 123642
+124112
+124140
+124144
+124154
 124896
 124903
 124904
@@ -1520,7 +1542,7 @@ V1520
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1531,4 +1553,6 @@ V1520
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Assigned.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Assigned.pl,v
diff -u -p -a -u -p -r1.9 Assigned.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Assigned.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Assigned.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1396
+V1414
 0
 888
 890
@@ -254,7 +254,7 @@ V1396
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -314,7 +314,7 @@ V1396
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -855,7 +855,7 @@ V1396
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -890,7 +890,7 @@ V1396
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -995,6 +995,8 @@ V1396
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1037,6 +1039,12 @@ V1396
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1052,9 +1060,7 @@ V1396
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1107,8 +1113,12 @@ V1396
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1137,6 +1147,8 @@ V1396
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1191,6 +1203,8 @@ V1396
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1201,6 +1215,10 @@ V1396
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1215,6 +1233,8 @@ V1396
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1331,14 +1351,14 @@ V1396
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1360,23 +1380,19 @@ V1396
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1386,7 +1402,7 @@ V1396
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1397,6 +1413,8 @@ V1396
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Blank.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Blank.pl,v
diff -u -p -a -u -p -r1.9 Blank.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Blank.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Blank.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Graph.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Graph.pl,v
diff -u -p -a -u -p -r1.9 Graph.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Graph.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Graph.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1406
+V1424
 33
 127
 161
@@ -256,7 +256,7 @@ V1406
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -316,7 +316,7 @@ V1406
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -865,7 +865,7 @@ V1406
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -900,7 +900,7 @@ V1406
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -1005,6 +1005,8 @@ V1406
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1047,6 +1049,12 @@ V1406
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1062,9 +1070,7 @@ V1406
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1117,8 +1123,12 @@ V1406
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1147,6 +1157,8 @@ V1406
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1201,6 +1213,8 @@ V1406
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1211,6 +1225,10 @@ V1406
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1225,6 +1243,8 @@ V1406
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1341,14 +1361,14 @@ V1406
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1370,23 +1390,19 @@ V1406
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1396,7 +1412,7 @@ V1406
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1407,6 +1423,8 @@ V1406
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/PerlWord.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/PerlWord.pl,v
diff -u -p -a -u -p -r1.9 PerlWord.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/PerlWord.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/PerlWord.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/PosixPun.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/PosixPun.pl,v
diff -u -p -a -u -p -r1.9 PosixPun.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/PosixPun.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/PosixPun.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Print.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Print.pl,v
diff -u -p -a -u -p -r1.9 Print.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Print.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Print.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1400
+V1418
 32
 127
 160
@@ -256,7 +256,7 @@ V1400
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -316,7 +316,7 @@ V1400
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -859,7 +859,7 @@ V1400
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -894,7 +894,7 @@ V1400
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -999,6 +999,8 @@ V1400
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1041,6 +1043,12 @@ V1400
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1056,9 +1064,7 @@ V1400
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1111,8 +1117,12 @@ V1400
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1141,6 +1151,8 @@ V1400
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1195,6 +1207,8 @@ V1400
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1205,6 +1219,10 @@ V1400
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1219,6 +1237,8 @@ V1400
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1335,14 +1355,14 @@ V1400
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1364,23 +1384,19 @@ V1400
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1390,7 +1406,7 @@ V1400
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1401,6 +1417,8 @@ V1400
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/SpacePer.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/SpacePer.pl,v
diff -u -p -a -u -p -r1.9 SpacePer.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/SpacePer.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/SpacePer.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Title.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Title.pl,v
diff -u -p -a -u -p -r1.8 Title.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Title.pl	15 Feb 2023 01:39:55 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Title.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/Word.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/Word.pl,v
diff -u -p -a -u -p -r1.9 Word.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/Word.pl	15 Feb 2023 01:39:55 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/Word.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1518
+V1542
 48
 58
 65
@@ -326,7 +326,7 @@ V1518
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -392,7 +392,7 @@ V1518
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -1019,7 +1019,7 @@ V1518
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1066,7 +1066,7 @@ V1518
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1227,6 +1227,14 @@ V1518
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 73648
 73649
 73728
@@ -1238,7 +1246,9 @@ V1518
 77712
 77809
 77824
-78895
+78896
+78912
+78934
 82944
 83527
 92160
@@ -1293,8 +1303,12 @@ V1518
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1401,6 +1415,8 @@ V1518
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1411,6 +1427,10 @@ V1518
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1423,6 +1443,8 @@ V1518
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
@@ -1516,7 +1538,7 @@ V1518
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1527,6 +1549,8 @@ V1518
 195102
 196608
 201547
+201552
+205744
 917760
 918000
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/XPosixPu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/XPosixPu.pl,v
diff -u -p -a -u -p -r1.8 XPosixPu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/XPosixPu.pl	15 Feb 2023 01:39:55 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/XPosixPu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V368
+V372
 33
 48
 58
@@ -349,12 +349,16 @@ V368
 72349
 72350
 72355
+72448
+72458
 72769
 72774
 72816
 72818
 73463
 73465
+73539
+73552
 73727
 73728
 74864
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlAny.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlAny.pl,v
diff -u -p -a -u -p -r1.7 _PerlAny.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlAny.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlAny.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCh2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCh2.pl,v
diff -u -p -a -u -p -r1.7 _PerlCh2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCh2.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCh2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1532
+V1556
 32
 33
 40
@@ -334,7 +334,7 @@ V1532
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -400,7 +400,7 @@ V1532
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -1039,7 +1039,7 @@ V1532
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1086,7 +1086,7 @@ V1532
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1247,6 +1247,14 @@ V1532
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 73648
 73649
 73728
@@ -1258,7 +1266,9 @@ V1532
 77712
 77809
 77824
-78895
+78896
+78912
+78934
 82944
 83527
 92160
@@ -1313,8 +1323,12 @@ V1532
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1421,6 +1435,8 @@ V1532
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1431,6 +1447,10 @@ V1532
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1443,6 +1463,8 @@ V1532
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
@@ -1530,7 +1552,7 @@ V1532
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1541,6 +1563,8 @@ V1532
 195102
 196608
 201547
+201552
+205744
 917760
 918000
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCha.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCha.pl,v
diff -u -p -a -u -p -r1.7 _PerlCha.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCha.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlCha.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1308
+V1330
 65
 91
 97
@@ -961,6 +961,8 @@ V1308
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -1085,6 +1087,12 @@ V1308
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -1094,7 +1102,9 @@ V1308
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1139,8 +1149,12 @@ V1308
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1215,6 +1229,10 @@ V1308
 120780
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1225,6 +1243,8 @@ V1308
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1308,7 +1328,7 @@ V1308
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1319,4 +1339,6 @@ V1308
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlFol.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlFol.pl,v
diff -u -p -a -u -p -r1.6 _PerlFol.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlFol.pl	15 Feb 2023 01:39:55 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlFol.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDC.pl,v
diff -u -p -a -u -p -r1.7 _PerlIDC.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDC.pl	15 Feb 2023 01:39:55 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1526
+V1550
 48
 58
 65
@@ -328,7 +328,7 @@ V1526
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -394,7 +394,7 @@ V1526
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -1033,7 +1033,7 @@ V1526
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1080,7 +1080,7 @@ V1526
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1241,6 +1241,14 @@ V1526
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 73648
 73649
 73728
@@ -1252,7 +1260,9 @@ V1526
 77712
 77809
 77824
-78895
+78896
+78912
+78934
 82944
 83527
 92160
@@ -1307,8 +1317,12 @@ V1526
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1415,6 +1429,8 @@ V1526
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1425,6 +1441,10 @@ V1526
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1437,6 +1457,8 @@ V1526
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
@@ -1524,7 +1546,7 @@ V1526
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1535,6 +1557,8 @@ V1526
 195102
 196608
 201547
+201552
+205744
 917760
 918000
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDS.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDS.pl,v
diff -u -p -a -u -p -r1.8 _PerlIDS.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDS.pl	15 Feb 2023 01:39:55 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIDS.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1314
+V1336
 65
 91
 95
@@ -965,6 +965,8 @@ V1314
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -1089,6 +1091,12 @@ V1314
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -1100,7 +1108,9 @@ V1314
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1145,8 +1155,12 @@ V1314
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1221,6 +1235,10 @@ V1314
 120780
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1231,6 +1249,8 @@ V1314
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1314,7 +1334,7 @@ V1314
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1325,4 +1345,6 @@ V1314
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIsI.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIsI.pl,v
diff -u -p -a -u -p -r1.3 _PerlIsI.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIsI.pl	15 Feb 2023 01:39:55 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlIsI.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlNch.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlNch.pl,v
diff -u -p -a -u -p -r1.5 _PerlNch.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlNch.pl	15 Feb 2023 01:39:55 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlNch.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPat.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPat.pl,v
diff -u -p -a -u -p -r1.5 _PerlPat.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPat.pl	15 Feb 2023 01:39:55 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPat.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPr2.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPr2.pl,v
diff -u -p -a -u -p -r1.6 _PerlPr2.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPr2.pl	15 Feb 2023 01:39:55 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPr2.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPro.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPro.pl,v
diff -u -p -a -u -p -r1.6 _PerlPro.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPro.pl	15 Feb 2023 01:39:55 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlPro.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlQuo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlQuo.pl,v
diff -u -p -a -u -p -r1.8 _PerlQuo.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlQuo.pl	15 Feb 2023 01:39:55 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Perl/_PerlQuo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/QMark/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/QMark/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/QMark/Y.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/QMark/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/AT.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/AT.pl,v
diff -u -p -a -u -p -r1.9 AT.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/AT.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/AT.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/CL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/CL.pl,v
diff -u -p -a -u -p -r1.9 CL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/CL.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/CL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/EX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/EX.pl,v
diff -u -p -a -u -p -r1.9 EX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/EX.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/EX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V604
+V626
 768
 880
 1155
@@ -171,6 +171,8 @@ V604
 3287
 3298
 3300
+3315
+3316
 3328
 3332
 3387
@@ -208,7 +210,7 @@ V604
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -415,6 +417,8 @@ V604
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -453,6 +457,8 @@ V604
 70200
 70206
 70207
+70209
+70210
 70367
 70379
 70400
@@ -547,6 +553,18 @@ V604
 73112
 73459
 73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -601,12 +619,16 @@ V604
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/FO.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/FO.pl,v
diff -u -p -a -u -p -r1.9 FO.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/FO.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/FO.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -46,7 +46,7 @@ V42
 69837
 69838
 78896
-78905
+78912
 113824
 113828
 119155
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/LE.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/LE.pl,v
diff -u -p -a -u -p -r1.9 LE.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/LE.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/LE.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1072
+V1086
 443
 444
 448
@@ -315,7 +315,7 @@ V1072
 4239
 4304
 4347
-4348
+4349
 4681
 4682
 4686
@@ -507,8 +507,6 @@ V1072
 42889
 42895
 42896
-42994
-42997
 42999
 43000
 43003
@@ -583,8 +581,6 @@ V1072
 43815
 43816
 43823
-43881
-43882
 43968
 44003
 44032
@@ -789,6 +785,8 @@ V1072
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -911,6 +909,12 @@ V1072
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -922,7 +926,9 @@ V1072
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -965,8 +971,12 @@ V1072
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -991,6 +1001,8 @@ V1072
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1072,7 +1084,7 @@ V1072
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1083,4 +1095,6 @@ V1072
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/LO.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/LO.pl,v
diff -u -p -a -u -p -r1.9 LO.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/LO.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/LO.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1330
+V1338
 97
 123
 170
@@ -559,6 +559,8 @@ V1330
 1328
 1376
 1417
+4348
+4349
 5112
 5118
 7296
@@ -1237,6 +1239,8 @@ V1330
 42968
 42969
 42970
+42994
+42997
 42998
 42999
 43000
@@ -1244,7 +1248,7 @@ V1330
 43824
 43867
 43868
-43881
+43882
 43888
 43968
 64256
@@ -1339,6 +1343,10 @@ V1330
 122634
 122635
 122655
+122661
+122667
+122928
+122990
 125218
 125252
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/NU.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/NU.pl,v
diff -u -p -a -u -p -r1.7 NU.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/NU.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/NU.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V126
+V130
 48
 58
 1632
@@ -121,6 +121,8 @@ V126
 73050
 73120
 73130
+73552
+73562
 92768
 92778
 92864
@@ -133,6 +135,8 @@ V126
 123210
 123632
 123642
+124144
+124154
 125264
 125274
 130032
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/SC.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/SC.pl,v
diff -u -p -a -u -p -r1.9 SC.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/SC.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/SC.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/ST.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/ST.pl,v
diff -u -p -a -u -p -r1.9 ST.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/ST.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/ST.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V152
+V154
 33
 34
 63
@@ -149,6 +149,8 @@ V152
 72771
 73463
 73465
+73539
+73541
 92782
 92784
 92917
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/Sp.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/Sp.pl,v
diff -u -p -a -u -p -r1.9 Sp.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/Sp.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/Sp.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/UP.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/UP.pl,v
diff -u -p -a -u -p -r1.9 UP.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/UP.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/UP.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/SB/XX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SB/XX.pl,v
diff -u -p -a -u -p -r1.9 XX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SB/XX.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SB/XX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1661
+V1681
 0
 9
 14
@@ -355,7 +355,7 @@ V1661
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -421,7 +421,7 @@ V1661
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -1138,7 +1138,7 @@ V1661
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1191,7 +1191,7 @@ V1661
 70203
 70205
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1360,6 +1360,14 @@ V1661
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73541
+73552
+73562
 73648
 73649
 73728
@@ -1371,9 +1379,7 @@ V1661
 77712
 77809
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1430,8 +1436,12 @@ V1661
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1538,6 +1548,8 @@ V1661
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1548,6 +1560,10 @@ V1661
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1560,6 +1576,8 @@ V1661
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
@@ -1655,7 +1673,7 @@ V1661
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1666,6 +1684,8 @@ V1661
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/SD/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/SD/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/SD/Y.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/SD/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V64
+V68
 105
 107
 303
@@ -75,4 +75,8 @@ V64
 120468
 122650
 122651
+122956
+122958
+122984
+122985
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/STerm/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/STerm/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/STerm/Y.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/STerm/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V158
+V160
 33
 34
 46
@@ -155,6 +155,8 @@ V158
 72771
 73463
 73465
+73539
+73541
 92782
 92784
 92917
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Arab.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Arab.pl,v
diff -u -p -a -u -p -r1.9 Arab.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Arab.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Arab.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V114
+V116
 1536
 1541
 1542
@@ -57,6 +57,8 @@ V114
 65277
 69216
 69247
+69373
+69376
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Beng.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Beng.pl,v
diff -u -p -a -u -p -r1.9 Beng.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Beng.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Beng.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Cprt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Cprt.pl,v
diff -u -p -a -u -p -r1.9 Cprt.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Cprt.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Cprt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Cyrl.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Cyrl.pl,v
diff -u -p -a -u -p -r1.9 Cyrl.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Cyrl.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Cyrl.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V16
+V20
 1024
 1157
 1159
@@ -27,4 +27,8 @@ V16
 42656
 65070
 65072
+122928
+122990
+123023
+123024
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Deva.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Deva.pl,v
diff -u -p -a -u -p -r1.9 Deva.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Deva.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Deva.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V8
+V10
 2304
 2385
 2389
@@ -19,4 +19,6 @@ V8
 2432
 43232
 43264
+72448
+72458
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Dupl.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Dupl.pl,v
diff -u -p -a -u -p -r1.5 Dupl.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Dupl.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Dupl.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Geor.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Geor.pl,v
diff -u -p -a -u -p -r1.9 Geor.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Geor.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Geor.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Glag.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Glag.pl,v
diff -u -p -a -u -p -r1.8 Glag.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Glag.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Glag.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Gong.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Gong.pl,v
diff -u -p -a -u -p -r1.3 Gong.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Gong.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Gong.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Gonm.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Gonm.pl,v
diff -u -p -a -u -p -r1.3 Gonm.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Gonm.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Gonm.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Gran.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Gran.pl,v
diff -u -p -a -u -p -r1.5 Gran.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Gran.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Gran.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Grek.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Grek.pl,v
diff -u -p -a -u -p -r1.9 Grek.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Grek.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Grek.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Gujr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Gujr.pl,v
diff -u -p -a -u -p -r1.9 Gujr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Gujr.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Gujr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Guru.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Guru.pl,v
diff -u -p -a -u -p -r1.9 Guru.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Guru.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Guru.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Han.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Han.pl,v
diff -u -p -a -u -p -r1.9 Han.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Han.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Han.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V40
+V42
 11904
 11930
 11931
@@ -40,7 +40,7 @@ V40
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -51,4 +51,6 @@ V40
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Hang.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Hang.pl,v
diff -u -p -a -u -p -r1.9 Hang.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Hang.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Hang.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Hira.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Hira.pl,v
diff -u -p -a -u -p -r1.9 Hira.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Hira.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Hira.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,13 +10,15 @@
 
 
 return <<'END';
-V10
+V12
 12353
 12439
 12445
 12448
 110593
 110880
+110898
+110899
 110928
 110931
 127488
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Kana.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Kana.pl,v
diff -u -p -a -u -p -r1.9 Kana.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Kana.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Kana.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V26
+V28
 12449
 12539
 12541
@@ -35,6 +35,8 @@ V26
 110593
 110880
 110883
+110933
+110934
 110948
 110952
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Knda.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Knda.pl,v
diff -u -p -a -u -p -r1.9 Knda.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Knda.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Knda.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -36,5 +36,5 @@ V26
 3302
 3312
 3313
-3315
+3316
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Latn.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Latn.pl,v
diff -u -p -a -u -p -r1.9 Latn.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Latn.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Latn.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V76
+V78
 65
 91
 97
@@ -87,4 +87,6 @@ V76
 67515
 122624
 122655
+122661
+122667
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Limb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Limb.pl,v
diff -u -p -a -u -p -r1.9 Limb.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Limb.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Limb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Linb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Linb.pl,v
diff -u -p -a -u -p -r1.9 Linb.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Linb.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Linb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Mlym.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Mlym.pl,v
diff -u -p -a -u -p -r1.9 Mlym.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Mlym.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Mlym.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Mong.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Mong.pl,v
diff -u -p -a -u -p -r1.9 Mong.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Mong.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Mong.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Mult.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Mult.pl,v
diff -u -p -a -u -p -r1.5 Mult.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Mult.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Mult.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Orya.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Orya.pl,v
diff -u -p -a -u -p -r1.9 Orya.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Orya.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Orya.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Sinh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Sinh.pl,v
diff -u -p -a -u -p -r1.9 Sinh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Sinh.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Sinh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Syrc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Syrc.pl,v
diff -u -p -a -u -p -r1.8 Syrc.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Syrc.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Syrc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Taml.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Taml.pl,v
diff -u -p -a -u -p -r1.9 Taml.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Taml.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Taml.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Telu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Telu.pl,v
diff -u -p -a -u -p -r1.9 Telu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Telu.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Telu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Zinh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Zinh.pl,v
diff -u -p -a -u -p -r1.9 Zinh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Zinh.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Zinh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Sc/Zyyy.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Sc/Zyyy.pl,v
diff -u -p -a -u -p -r1.9 Zyyy.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Sc/Zyyy.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Sc/Zyyy.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V348
+V346
 0
 65
 91
@@ -223,6 +223,8 @@ V348
 119210
 119214
 119275
+119488
+119508
 119520
 119540
 119552
@@ -303,14 +305,14 @@ V348
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -332,23 +334,19 @@ V348
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Adlm.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Adlm.pl,v
diff -u -p -a -u -p -r1.4 Adlm.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Adlm.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Adlm.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Arab.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Arab.pl,v
diff -u -p -a -u -p -r1.8 Arab.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Arab.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Arab.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V102
+V104
 1536
 1541
 1542
@@ -45,6 +45,8 @@ V102
 66300
 69216
 69247
+69373
+69376
 126464
 126468
 126469
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Armn.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Armn.pl,v
diff -u -p -a -u -p -r1.8 Armn.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Armn.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Armn.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Beng.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Beng.pl,v
diff -u -p -a -u -p -r1.8 Beng.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Beng.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Beng.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Bhks.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Bhks.pl,v
diff -u -p -a -u -p -r1.4 Bhks.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Bhks.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Bhks.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Bopo.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Bopo.pl,v
diff -u -p -a -u -p -r1.8 Bopo.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Bopo.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Bopo.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Cakm.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Cakm.pl,v
diff -u -p -a -u -p -r1.8 Cakm.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Cakm.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Cakm.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Cham.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Cham.pl,v
diff -u -p -a -u -p -r1.6 Cham.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Cham.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Cham.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Copt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Copt.pl,v
diff -u -p -a -u -p -r1.7 Copt.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Copt.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Copt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Cprt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Cprt.pl,v
diff -u -p -a -u -p -r1.8 Cprt.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Cprt.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Cprt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Cyrl.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Cyrl.pl,v
diff -u -p -a -u -p -r1.8 Cyrl.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Cyrl.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Cyrl.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V18
+V22
 1024
 1328
 7296
@@ -29,4 +29,8 @@ V18
 42656
 65070
 65072
+122928
+122990
+123023
+123024
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Deva.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Deva.pl,v
diff -u -p -a -u -p -r1.8 Deva.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Deva.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Deva.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V14
+V16
 2304
 2387
 2389
@@ -25,4 +25,6 @@ V14
 43066
 43232
 43264
+72448
+72458
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Diak.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Diak.pl,v
diff -u -p -a -u -p -r1.2 Diak.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Diak.pl	15 Feb 2023 01:39:56 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Diak.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Dupl.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Dupl.pl,v
diff -u -p -a -u -p -r1.5 Dupl.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Dupl.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Dupl.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Ethi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Ethi.pl,v
diff -u -p -a -u -p -r1.6 Ethi.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Ethi.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Ethi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Geor.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Geor.pl,v
diff -u -p -a -u -p -r1.8 Geor.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Geor.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Geor.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Glag.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Glag.pl,v
diff -u -p -a -u -p -r1.7 Glag.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Glag.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Glag.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Gong.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Gong.pl,v
diff -u -p -a -u -p -r1.3 Gong.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Gong.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Gong.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Gonm.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Gonm.pl,v
diff -u -p -a -u -p -r1.4 Gonm.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Gonm.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Gonm.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Gran.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Gran.pl,v
diff -u -p -a -u -p -r1.5 Gran.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Gran.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Gran.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Grek.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Grek.pl,v
diff -u -p -a -u -p -r1.8 Grek.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Grek.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Grek.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Gujr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Gujr.pl,v
diff -u -p -a -u -p -r1.8 Gujr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Gujr.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Gujr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Guru.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Guru.pl,v
diff -u -p -a -u -p -r1.8 Guru.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Guru.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Guru.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Han.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Han.pl,v
diff -u -p -a -u -p -r1.8 Han.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Han.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Han.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V74
+V76
 11904
 11930
 11931
@@ -74,7 +74,7 @@ V74
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -85,4 +85,6 @@ V74
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Hang.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Hang.pl,v
diff -u -p -a -u -p -r1.8 Hang.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Hang.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Hang.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Hebr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Hebr.pl,v
diff -u -p -a -u -p -r1.6 Hebr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Hebr.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Hebr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Hira.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Hira.pl,v
diff -u -p -a -u -p -r1.8 Hira.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Hira.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Hira.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V32
+V34
 12289
 12292
 12296
@@ -39,6 +39,8 @@ V32
 65440
 110593
 110880
+110898
+110899
 110928
 110931
 127488
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmng.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmng.pl,v
diff -u -p -a -u -p -r1.4 Hmng.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmng.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmng.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmnp.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmnp.pl,v
diff -u -p -a -u -p -r1.3 Hmnp.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmnp.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Hmnp.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Kana.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Kana.pl,v
diff -u -p -a -u -p -r1.8 Kana.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Kana.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Kana.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V38
+V40
 12289
 12292
 12296
@@ -47,6 +47,8 @@ V38
 110593
 110880
 110883
+110933
+110934
 110948
 110952
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Khar.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Khar.pl,v
diff -u -p -a -u -p -r1.6 Khar.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Khar.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Khar.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Khmr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Khmr.pl,v
diff -u -p -a -u -p -r1.6 Khmr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Khmr.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Khmr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Khoj.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Khoj.pl,v
diff -u -p -a -u -p -r1.3 Khoj.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Khoj.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Khoj.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -18,5 +18,5 @@ V8
 70144
 70162
 70163
-70207
+70210
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Knda.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Knda.pl,v
diff -u -p -a -u -p -r1.7 Knda.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Knda.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Knda.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -40,7 +40,7 @@ V42
 3302
 3312
 3313
-3315
+3316
 7376
 7377
 7378
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Kthi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Kthi.pl,v
diff -u -p -a -u -p -r1.6 Kthi.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Kthi.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Kthi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Lana.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Lana.pl,v
diff -u -p -a -u -p -r1.6 Lana.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Lana.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Lana.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Lao.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Lao.pl,v
diff -u -p -a -u -p -r1.6 Lao.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Lao.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Lao.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -28,7 +28,7 @@ V22
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Latn.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Latn.pl,v
diff -u -p -a -u -p -r1.8 Latn.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Latn.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Latn.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V92
+V94
 65
 91
 97
@@ -103,4 +103,6 @@ V92
 67515
 122624
 122655
+122661
+122667
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Limb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Limb.pl,v
diff -u -p -a -u -p -r1.7 Limb.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Limb.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Limb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Lina.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Lina.pl,v
diff -u -p -a -u -p -r1.4 Lina.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Lina.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Lina.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Linb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Linb.pl,v
diff -u -p -a -u -p -r1.8 Linb.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Linb.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Linb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Mlym.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Mlym.pl,v
diff -u -p -a -u -p -r1.7 Mlym.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Mlym.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Mlym.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Mong.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Mong.pl,v
diff -u -p -a -u -p -r1.8 Mong.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Mong.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Mong.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Mult.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Mult.pl,v
diff -u -p -a -u -p -r1.5 Mult.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Mult.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Mult.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Mymr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Mymr.pl,v
diff -u -p -a -u -p -r1.7 Mymr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Mymr.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Mymr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Nand.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Nand.pl,v
diff -u -p -a -u -p -r1.3 Nand.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Nand.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Nand.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Nko.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Nko.pl,v
diff -u -p -a -u -p -r1.3 Nko.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Nko.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Nko.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Orya.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Orya.pl,v
diff -u -p -a -u -p -r1.8 Orya.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Orya.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Orya.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Phlp.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Phlp.pl,v
diff -u -p -a -u -p -r1.5 Phlp.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Phlp.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Phlp.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Rohg.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Rohg.pl,v
diff -u -p -a -u -p -r1.3 Rohg.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Rohg.pl	15 Feb 2023 01:39:56 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Rohg.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Shrd.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Shrd.pl,v
diff -u -p -a -u -p -r1.7 Shrd.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Shrd.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Shrd.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Sind.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Sind.pl,v
diff -u -p -a -u -p -r1.5 Sind.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Sind.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Sind.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Sinh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Sinh.pl,v
diff -u -p -a -u -p -r1.7 Sinh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Sinh.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Sinh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Syrc.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Syrc.pl,v
diff -u -p -a -u -p -r1.8 Syrc.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Syrc.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Syrc.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Tagb.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Tagb.pl,v
diff -u -p -a -u -p -r1.8 Tagb.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Tagb.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Tagb.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Takr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Takr.pl,v
diff -u -p -a -u -p -r1.8 Takr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Takr.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Takr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Talu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Talu.pl,v
diff -u -p -a -u -p -r1.6 Talu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Talu.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Talu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Taml.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Taml.pl,v
diff -u -p -a -u -p -r1.7 Taml.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Taml.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Taml.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Tang.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Tang.pl,v
diff -u -p -a -u -p -r1.2 Tang.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Tang.pl	15 Feb 2023 01:39:56 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Tang.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Telu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Telu.pl,v
diff -u -p -a -u -p -r1.7 Telu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Telu.pl	15 Feb 2023 01:39:56 -0000	1.7
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Telu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Thaa.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Thaa.pl,v
diff -u -p -a -u -p -r1.8 Thaa.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Thaa.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Thaa.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Tibt.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Tibt.pl,v
diff -u -p -a -u -p -r1.6 Tibt.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Tibt.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Tibt.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Tirh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Tirh.pl,v
diff -u -p -a -u -p -r1.5 Tirh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Tirh.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Tirh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Vith.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Vith.pl,v
diff -u -p -a -u -p -r1.1 Vith.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Vith.pl	15 Feb 2023 01:39:56 -0000	1.1
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Vith.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Xsux.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Xsux.pl,v
diff -u -p -a -u -p -r1.6 Xsux.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Xsux.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Xsux.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Yezi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Yezi.pl,v
diff -u -p -a -u -p -r1.2 Yezi.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Yezi.pl	15 Feb 2023 01:39:56 -0000	1.2
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Yezi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Yi.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Yi.pl,v
diff -u -p -a -u -p -r1.8 Yi.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Yi.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Yi.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Zinh.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Zinh.pl,v
diff -u -p -a -u -p -r1.8 Zinh.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Zinh.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Zinh.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Zyyy.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Zyyy.pl,v
diff -u -p -a -u -p -r1.8 Zyyy.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Zyyy.pl	15 Feb 2023 01:39:56 -0000	1.8
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Zyyy.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V296
+V294
 0
 65
 91
@@ -173,6 +173,8 @@ V296
 119210
 119214
 119275
+119488
+119508
 119520
 119540
 119552
@@ -251,14 +253,14 @@ V296
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -280,23 +282,19 @@ V296
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
Index: gnu/usr.bin/perl/lib/unicore/lib/Scx/Zzzz.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Scx/Zzzz.pl,v
diff -u -p -a -u -p -r1.6 Zzzz.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Scx/Zzzz.pl	15 Feb 2023 01:39:56 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/Scx/Zzzz.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1391
+V1409
 888
 890
 896
@@ -253,7 +253,7 @@ V1391
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -313,7 +313,7 @@ V1391
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -854,7 +854,7 @@ V1391
 69294
 69296
 69298
-69376
+69373
 69416
 69424
 69466
@@ -889,7 +889,7 @@ V1391
 70144
 70162
 70163
-70207
+70210
 70272
 70279
 70280
@@ -994,6 +994,8 @@ V1391
 72355
 72368
 72441
+72448
+72458
 72704
 72713
 72714
@@ -1036,6 +1038,12 @@ V1391
 73130
 73440
 73465
+73472
+73489
+73490
+73531
+73534
+73562
 73648
 73649
 73664
@@ -1051,9 +1059,7 @@ V1391
 77712
 77811
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1106,8 +1112,12 @@ V1391
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1136,6 +1146,8 @@ V1391
 119275
 119296
 119366
+119488
+119508
 119520
 119540
 119552
@@ -1190,6 +1202,8 @@ V1391
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1200,6 +1214,10 @@ V1391
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1214,6 +1232,8 @@ V1391
 123642
 123647
 123648
+124112
+124154
 124896
 124903
 124904
@@ -1330,14 +1350,14 @@ V1391
 127590
 127744
 128728
-128733
+128732
 128749
 128752
 128765
 128768
-128884
-128896
-128985
+128887
+128891
+128986
 128992
 129004
 129008
@@ -1359,23 +1379,19 @@ V1391
 129632
 129646
 129648
-129653
-129656
 129661
 129664
-129671
+129673
 129680
-129709
-129712
-129723
-129728
+129726
+129727
 129734
-129744
-129754
+129742
+129756
 129760
-129768
+129769
 129776
-129783
+129785
 129792
 129939
 129940
@@ -1385,7 +1401,7 @@ V1391
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1396,6 +1412,8 @@ V1391
 195102
 196608
 201547
+201552
+205744
 917505
 917506
 917536
Index: gnu/usr.bin/perl/lib/unicore/lib/Term/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Term/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Term/Y.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Term/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V214
+V216
 33
 34
 44
@@ -209,6 +209,8 @@ V214
 72818
 73463
 73465
+73539
+73541
 74864
 74869
 92782
Index: gnu/usr.bin/perl/lib/unicore/lib/UIdeo/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/UIdeo/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/UIdeo/Y.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/UIdeo/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V30
+V32
 13312
 19904
 19968
@@ -32,7 +32,7 @@ V30
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -41,4 +41,6 @@ V30
 191457
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/Upper/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Upper/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Upper/Y.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/Upper/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/VS/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/VS/Y.pl,v
diff -u -p -a -u -p -r1.5 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/VS/Y.pl	15 Feb 2023 01:39:56 -0000	1.5
+++ gnu/usr.bin/perl/lib/unicore/lib/VS/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Vo/R.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Vo/R.pl,v
diff -u -p -a -u -p -r1.4 R.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Vo/R.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Vo/R.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -163,7 +163,7 @@ V179
 72192
 72384
 77824
-78912
+78944
 82944
 83584
 94176
Index: gnu/usr.bin/perl/lib/unicore/lib/Vo/Tr.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Vo/Tr.pl,v
diff -u -p -a -u -p -r1.4 Tr.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Vo/Tr.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Vo/Tr.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Vo/Tu.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Vo/Tu.pl,v
diff -u -p -a -u -p -r1.4 Tu.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Vo/Tu.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Vo/Tu.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/Vo/U.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/Vo/U.pl,v
diff -u -p -a -u -p -r1.4 U.pl
--- gnu/usr.bin/perl/lib/unicore/lib/Vo/U.pl	15 Feb 2023 01:39:56 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/Vo/U.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -238,7 +238,7 @@ V256
 72192
 72384
 77824
-78912
+78944
 82944
 83584
 94176
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/EX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/EX.pl,v
diff -u -p -a -u -p -r1.9 EX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/EX.pl	15 Feb 2023 01:39:56 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/EX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/Extend.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/Extend.pl,v
diff -u -p -a -u -p -r1.4 Extend.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/Extend.pl	15 Feb 2023 01:39:57 -0000	1.4
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/Extend.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V606
+V628
 768
 880
 1155
@@ -171,6 +171,8 @@ V606
 3287
 3298
 3300
+3315
+3316
 3328
 3332
 3387
@@ -208,7 +210,7 @@ V606
 3764
 3773
 3784
-3790
+3791
 3864
 3866
 3893
@@ -415,6 +417,8 @@ V606
 68904
 69291
 69293
+69373
+69376
 69446
 69457
 69506
@@ -453,6 +457,8 @@ V606
 70200
 70206
 70207
+70209
+70210
 70367
 70379
 70400
@@ -547,6 +553,18 @@ V606
 73112
 73459
 73463
+73472
+73474
+73475
+73476
+73524
+73531
+73534
+73539
+78912
+78913
+78919
+78934
 92912
 92917
 92976
@@ -601,12 +619,16 @@ V606
 122917
 122918
 122923
+123023
+123024
 123184
 123191
 123566
 123567
 123628
 123632
+124140
+124144
 125136
 125143
 125252
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/FO.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/FO.pl,v
diff -u -p -a -u -p -r1.9 FO.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/FO.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/FO.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -44,7 +44,7 @@ V40
 69837
 69838
 78896
-78905
+78912
 113824
 113828
 119155
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/HL.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/HL.pl,v
diff -u -p -a -u -p -r1.6 HL.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/HL.pl	15 Feb 2023 01:39:57 -0000	1.6
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/HL.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/KA.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/KA.pl,v
diff -u -p -a -u -p -r1.9 KA.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/KA.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/KA.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V28
+V30
 12337
 12342
 12443
@@ -37,6 +37,8 @@ V28
 110593
 110880
 110883
+110933
+110934
 110948
 110952
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/LE.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/LE.pl,v
diff -u -p -a -u -p -r1.9 LE.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/LE.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/LE.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1140
+V1156
 65
 91
 97
@@ -823,6 +823,8 @@ V1140
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -943,6 +945,12 @@ V1140
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -954,7 +962,9 @@ V1140
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1055,6 +1065,10 @@ V1140
 120780
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1065,6 +1079,8 @@ V1140
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/MB.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/MB.pl,v
diff -u -p -a -u -p -r1.9 MB.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/MB.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/MB.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/ML.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/ML.pl,v
diff -u -p -a -u -p -r1.9 ML.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/ML.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/ML.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/MN.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/MN.pl,v
diff -u -p -a -u -p -r1.9 MN.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/MN.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/MN.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/NU.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/NU.pl,v
diff -u -p -a -u -p -r1.9 NU.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/NU.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/NU.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V126
+V130
 48
 58
 1632
@@ -121,6 +121,8 @@ V126
 73050
 73120
 73130
+73552
+73562
 92768
 92778
 92864
@@ -133,6 +135,8 @@ V126
 123210
 123632
 123642
+124144
+124154
 125264
 125274
 130032
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/WSegSpac.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/WSegSpac.pl,v
diff -u -p -a -u -p -r1.3 WSegSpac.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/WSegSpac.pl	15 Feb 2023 01:39:57 -0000	1.3
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/WSegSpac.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
Index: gnu/usr.bin/perl/lib/unicore/lib/WB/XX.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/WB/XX.pl,v
diff -u -p -a -u -p -r1.9 XX.pl
--- gnu/usr.bin/perl/lib/unicore/lib/WB/XX.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/WB/XX.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1541
+V1557
 0
 10
 14
@@ -343,7 +343,7 @@ V1541
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -399,7 +399,7 @@ V1541
 3764
 3773
 3784
-3790
+3791
 3792
 3802
 3840
@@ -1054,7 +1054,7 @@ V1541
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1105,7 +1105,7 @@ V1541
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1262,6 +1262,14 @@ V1541
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 73648
 73649
 73728
@@ -1273,9 +1281,7 @@ V1541
 77712
 77809
 77824
-78895
-78896
-78905
+78934
 82944
 83527
 92160
@@ -1326,6 +1332,8 @@ V1541
 110593
 110880
 110883
+110933
+110934
 110948
 110952
 113664
@@ -1430,6 +1438,8 @@ V1541
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1440,6 +1450,10 @@ V1541
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1452,6 +1466,8 @@ V1541
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
Index: gnu/usr.bin/perl/lib/unicore/lib/XIDC/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/XIDC/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/XIDC/Y.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/XIDC/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1526
+V1550
 48
 58
 65
@@ -328,7 +328,7 @@ V1526
 3302
 3312
 3313
-3315
+3316
 3328
 3341
 3342
@@ -394,7 +394,7 @@ V1526
 3782
 3783
 3784
-3790
+3791
 3792
 3802
 3804
@@ -1033,7 +1033,7 @@ V1526
 69293
 69296
 69298
-69376
+69373
 69405
 69415
 69416
@@ -1080,7 +1080,7 @@ V1526
 70163
 70200
 70206
-70207
+70210
 70272
 70279
 70280
@@ -1241,6 +1241,14 @@ V1526
 73130
 73440
 73463
+73472
+73489
+73490
+73531
+73534
+73539
+73552
+73562
 73648
 73649
 73728
@@ -1252,7 +1260,9 @@ V1526
 77712
 77809
 77824
-78895
+78896
+78912
+78934
 82944
 83527
 92160
@@ -1307,8 +1317,12 @@ V1526
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1415,6 +1429,8 @@ V1526
 121520
 122624
 122655
+122661
+122667
 122880
 122887
 122888
@@ -1425,6 +1441,10 @@ V1526
 122917
 122918
 122923
+122928
+122990
+123023
+123024
 123136
 123181
 123184
@@ -1437,6 +1457,8 @@ V1526
 123567
 123584
 123642
+124112
+124154
 124896
 124903
 124904
@@ -1524,7 +1546,7 @@ V1526
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1535,6 +1557,8 @@ V1526
 195102
 196608
 201547
+201552
+205744
 917760
 918000
 END
Index: gnu/usr.bin/perl/lib/unicore/lib/XIDS/Y.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/unicore/lib/XIDS/Y.pl,v
diff -u -p -a -u -p -r1.9 Y.pl
--- gnu/usr.bin/perl/lib/unicore/lib/XIDS/Y.pl	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/lib/XIDS/Y.pl	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,6 @@
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 # !!!!!!!   INTERNAL PERL USE ONLY   !!!!!!!
 # This file is for internal use by core Perl only.  The format and even the
@@ -10,7 +10,7 @@
 
 
 return <<'END';
-V1310
+V1332
 65
 91
 97
@@ -961,6 +961,8 @@ V1310
 70162
 70163
 70188
+70207
+70209
 70272
 70279
 70280
@@ -1085,6 +1087,12 @@ V1310
 73113
 73440
 73459
+73474
+73475
+73476
+73489
+73490
+73524
 73648
 73649
 73728
@@ -1096,7 +1104,9 @@ V1310
 77712
 77809
 77824
-78895
+78896
+78913
+78919
 82944
 83527
 92160
@@ -1141,8 +1151,12 @@ V1310
 110591
 110592
 110883
+110898
+110899
 110928
 110931
+110933
+110934
 110948
 110952
 110960
@@ -1217,6 +1231,10 @@ V1310
 120780
 122624
 122655
+122661
+122667
+122928
+122990
 123136
 123181
 123191
@@ -1227,6 +1245,8 @@ V1310
 123566
 123584
 123628
+124112
+124140
 124896
 124903
 124904
@@ -1310,7 +1330,7 @@ V1310
 131072
 173792
 173824
-177977
+177978
 177984
 178206
 178208
@@ -1321,4 +1341,6 @@ V1310
 195102
 196608
 201547
+201552
+205744
 END
Index: gnu/usr.bin/perl/lib/warnings/register.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/lib/warnings/register.pm,v
diff -u -p -a -u -p -r1.2 register.pm
--- gnu/usr.bin/perl/lib/warnings/register.pm	5 Feb 2017 00:32:17 -0000	1.2
+++ gnu/usr.bin/perl/lib/warnings/register.pm	21 Feb 2024 15:47:02 -0000
@@ -1,6 +1,5 @@
-package warnings::register;
+package warnings::register 1.05;
 
-our $VERSION = '1.04';
 require warnings;
 
 # left here as cruft in case other users were using this undocumented routine
@@ -19,7 +18,7 @@ sub import
     shift;
     my @categories = @_;
 
-    my $package = (caller(0))[0];
+    my $package = caller;
     warnings::register_categories($package);
 
     warnings::register_categories($package . "::$_") for @categories;
Index: gnu/usr.bin/perl/os2/os2.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/os2/os2.c,v
diff -u -p -a -u -p -r1.19 os2.c
--- gnu/usr.bin/perl/os2/os2.c	15 Feb 2023 01:36:35 -0000	1.19
+++ gnu/usr.bin/perl/os2/os2.c	21 Feb 2024 15:47:02 -0000
@@ -5047,14 +5047,14 @@ my_tmpnam (char *str)
     char *p = PerlEnv_getenv("TMP"), *tpath;
 
     if (!p) p = PerlEnv_getenv("TEMP");
-    ENV_LOCK;
+    ENV_READ_LOCK;
     tpath = tempnam(p, "pltmp");
     if (str && tpath) {
         strcpy(str, tpath);
-        ENV_UNLOCK;
+        ENV_READ_UNLOCK;
         return str;
     }
-    ENV_UNLOCK;
+    ENV_READ_UNLOCK;
     return tpath;
 }
 
Index: gnu/usr.bin/perl/os2/os2ish.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/os2/os2ish.h,v
diff -u -p -a -u -p -r1.13 os2ish.h
--- gnu/usr.bin/perl/os2/os2ish.h	15 Feb 2023 01:36:35 -0000	1.13
+++ gnu/usr.bin/perl/os2/os2ish.h	21 Feb 2024 15:47:02 -0000
@@ -6,7 +6,7 @@
  *	This symbol, if defined, indicates that the ioctl() routine is
  *	available to set I/O characteristics
  */
-#define	HAS_IOCTL		/**/
+#define HAS_IOCTL               /**/
  
 /* HAS_UTIME:
  *	This symbol, if defined, indicates that the routine utime() is
@@ -192,7 +192,7 @@ extern int rc;
 #  define pthread_setspecific(k,v)	(*(k)=(v),0)
 #  define pthread_key_create(keyp,flag)			\
         ( DosAllocThreadLocalMemory(1,(unsigned long**)keyp)	\
-          ? Perl_croak_nocontext("LocalMemory"),1	\
+          ? Perl_croak_nocontext("Out of memory!"), 1        \
           : 0						\
         )
 #endif /* USE_SLOW_THREAD_SPECIFIC */
@@ -822,50 +822,50 @@ int os2_do_aspawn(pTHX_ SV *really, SV *
 #ifndef LOG_DAEMON
 
 /* Replacement for syslog.h */
-#  define	LOG_EMERG	0	/* system is unusable */
-#  define	LOG_ALERT	1	/* action must be taken immediately */
-#  define	LOG_CRIT	2	/* critical conditions */
-#  define	LOG_ERR	3	/* error conditions */
-#  define	LOG_WARNING	4	/* warning conditions */
-#  define	LOG_NOTICE	5	/* normal but significant condition */
-#  define	LOG_INFO	6	/* informational */
-#  define	LOG_DEBUG	7	/* debug-level messages */
+#  define LOG_EMERG     0       /* system is unusable */
+#  define LOG_ALERT     1       /* action must be taken immediately */
+#  define LOG_CRIT      2       /* critical conditions */
+#  define LOG_ERR       3       /* error conditions */
+#  define LOG_WARNING   4       /* warning conditions */
+#  define LOG_NOTICE    5       /* normal but significant condition */
+#  define LOG_INFO      6       /* informational */
+#  define LOG_DEBUG     7       /* debug-level messages */
 
-#  define	LOG_PRIMASK	0x007	/* mask to extract priority part (internal) */
+#  define LOG_PRIMASK   0x007   /* mask to extract priority part (internal) */
                                 /* extract priority */
-#  define	LOG_PRI(p)	((p) & LOG_PRIMASK)
-#  define	LOG_MAKEPRI(fac, pri)	(((fac) << 3) | (pri))
+#  define LOG_PRI(p)    ((p) & LOG_PRIMASK)
+#  define LOG_MAKEPRI(fac, pri) (((fac) << 3) | (pri))
 
 /* facility codes */
-#  define	LOG_KERN	(0<<3)	/* kernel messages */
-#  define	LOG_USER	(1<<3)	/* random user-level messages */
-#  define	LOG_MAIL	(2<<3)	/* mail system */
-#  define	LOG_DAEMON	(3<<3)	/* system daemons */
-#  define	LOG_AUTH	(4<<3)	/* security/authorization messages */
-#  define	LOG_SYSLOG	(5<<3)	/* messages generated internally by syslogd */
-#  define	LOG_LPR	(6<<3)	/* line printer subsystem */
-#  define	LOG_NEWS	(7<<3)	/* network news subsystem */
-#  define	LOG_UUCP	(8<<3)	/* UUCP subsystem */
-#  define	LOG_CRON	(15<<3)	/* clock daemon */
+#  define LOG_KERN      (0<<3)  /* kernel messages */
+#  define LOG_USER      (1<<3)  /* random user-level messages */
+#  define LOG_MAIL      (2<<3)  /* mail system */
+#  define LOG_DAEMON    (3<<3)  /* system daemons */
+#  define LOG_AUTH      (4<<3)  /* security/authorization messages */
+#  define LOG_SYSLOG    (5<<3)  /* messages generated internally by syslogd */
+#  define LOG_LPR       (6<<3)  /* line printer subsystem */
+#  define LOG_NEWS      (7<<3)  /* network news subsystem */
+#  define LOG_UUCP      (8<<3)  /* UUCP subsystem */
+#  define LOG_CRON      (15<<3) /* clock daemon */
         /* other codes through 15 reserved for system use */
-#  define	LOG_LOCAL0	(16<<3)	/* reserved for local use */
-#  define	LOG_LOCAL1	(17<<3)	/* reserved for local use */
-#  define	LOG_LOCAL2	(18<<3)	/* reserved for local use */
-#  define	LOG_LOCAL3	(19<<3)	/* reserved for local use */
-#  define	LOG_LOCAL4	(20<<3)	/* reserved for local use */
-#  define	LOG_LOCAL5	(21<<3)	/* reserved for local use */
-#  define	LOG_LOCAL6	(22<<3)	/* reserved for local use */
-#  define	LOG_LOCAL7	(23<<3)	/* reserved for local use */
+#  define LOG_LOCAL0    (16<<3) /* reserved for local use */
+#  define LOG_LOCAL1    (17<<3) /* reserved for local use */
+#  define LOG_LOCAL2    (18<<3) /* reserved for local use */
+#  define LOG_LOCAL3    (19<<3) /* reserved for local use */
+#  define LOG_LOCAL4    (20<<3) /* reserved for local use */
+#  define LOG_LOCAL5    (21<<3) /* reserved for local use */
+#  define LOG_LOCAL6    (22<<3) /* reserved for local use */
+#  define LOG_LOCAL7    (23<<3) /* reserved for local use */
 
-#  define	LOG_NFACILITIES	24	/* current number of facilities */
-#  define	LOG_FACMASK	0x03f8	/* mask to extract facility part */
+#  define LOG_NFACILITIES       24      /* current number of facilities */
+#  define LOG_FACMASK   0x03f8  /* mask to extract facility part */
                                 /* facility of pri */
-#  define	LOG_FAC(p)	(((p) & LOG_FACMASK) >> 3)
+#  define LOG_FAC(p)    (((p) & LOG_FACMASK) >> 3)
 
 /*
  * arguments to setlogmask.
  */
-#  define	LOG_MASK(pri)	(1 << (pri))		/* mask for one priority */
+#  define LOG_MASK(pri) (1 << (pri))            /* mask for one priority */
 #  define       LOG_UPTO(pri)   nBIT_MASK((pri)+1)      /* all priorities through pri */
 
 /*
@@ -874,12 +874,12 @@ int os2_do_aspawn(pTHX_ SV *really, SV *
  * LOG_ODELAY no longer does anything.
  * LOG_NDELAY is the inverse of what it used to be.
  */
-#  define	LOG_PID		0x01	/* log the pid with each message */
-#  define	LOG_CONS	0x02	/* log on the console if errors in sending */
-#  define	LOG_ODELAY	0x04	/* delay open until first syslog() (default) */
-#  define	LOG_NDELAY	0x08	/* don't delay open */
-#  define	LOG_NOWAIT	0x10	/* don't wait for console forks: DEPRECATED */
-#  define	LOG_PERROR	0x20	/* log to stderr as well */
+#  define LOG_PID               0x01    /* log the pid with each message */
+#  define LOG_CONS      0x02    /* log on the console if errors in sending */
+#  define LOG_ODELAY    0x04    /* delay open until first syslog() (default) */
+#  define LOG_NDELAY    0x08    /* don't delay open */
+#  define LOG_NOWAIT    0x10    /* don't wait for console forks: DEPRECATED */
+#  define LOG_PERROR    0x20    /* log to stderr as well */
 
 #endif
 
@@ -1239,4 +1239,3 @@ typedef struct {
 PQTOPLEVEL get_sysinfo(ULONG pid, ULONG flags);
 
 #endif /* _OS2_H */
-
Index: gnu/usr.bin/perl/os2/perlrexx.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/os2/perlrexx.c,v
diff -u -p -a -u -p -r1.1.1.6 perlrexx.c
--- gnu/usr.bin/perl/os2/perlrexx.c	15 Feb 2023 01:32:51 -0000	1.1.1.6
+++ gnu/usr.bin/perl/os2/perlrexx.c	21 Feb 2024 15:47:02 -0000
@@ -74,6 +74,7 @@ init_perl(int doparse)
         if (!my_perl)
             return 0;
         perl_construct(my_perl);
+        PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
         PL_perl_destruct_level = 1;
     }
     if (!doparse)
Index: gnu/usr.bin/perl/os2/OS2/OS2-REXX/REXX.pm
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/os2/OS2/OS2-REXX/REXX.pm,v
diff -u -p -a -u -p -r1.2 REXX.pm
--- gnu/usr.bin/perl/os2/OS2/OS2-REXX/REXX.pm	5 Feb 2017 00:32:17 -0000	1.2
+++ gnu/usr.bin/perl/os2/OS2/OS2-REXX/REXX.pm	21 Feb 2024 15:47:02 -0000
@@ -11,7 +11,7 @@ require OS2::DLL;
 # Other items we are prepared to export if requested
 @EXPORT_OK = qw(drop register);
 
-$VERSION = '1.05';
+$VERSION = '1.06';
 
 # We cannot just put OS2::DLL in @ISA, since some scripts would use
 # function interface, not method interface...
@@ -428,7 +428,7 @@ overridden. So unless you know better th
 variables (probably tied to Perl variables) or call REXX functions
 which access REXX queues or REXX variables in signal handlers.
 
-See C<t/rx*.t> and the next section for examples.
+See F<t/rx*.t> and the next section for examples.
 
 =head1 EXAMPLE
 
Index: gnu/usr.bin/perl/plan9/config.plan9
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/plan9/config.plan9,v
diff -u -p -a -u -p -r1.27 config.plan9
--- gnu/usr.bin/perl/plan9/config.plan9	15 Feb 2023 01:36:35 -0000	1.27
+++ gnu/usr.bin/perl/plan9/config.plan9	21 Feb 2024 15:47:02 -0000
@@ -141,7 +141,7 @@
  *	This symbol, if defined, indicates that the chsize routine is available
  *	to truncate files.  You might need a -lx to get this routine.
  */
-/*#define	HAS_CHSIZE		/ **/
+/*#define HAS_CHSIZE            / **/
 
 /* HAS_CUSERID:
  *	This symbol, if defined, indicates that the cuserid routine is
@@ -307,7 +307,7 @@
  *	This symbol, if defined, indicates that the mbstowcs routine is
  *	available to covert a multibyte string into a wide character string.
  */
-#define	HAS_MBSTOWCS		/**/
+#define HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *	This symbol, if defined, indicates that the mbtowc routine is available
@@ -636,7 +636,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-#define	I_ARPA_INET		/**/
+#define I_ARPA_INET             /**/
 
 /* I_DBM:
  *	This symbol, if defined, indicates that <dbm.h> exists and should
@@ -684,7 +684,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <locale.h>.
  */
-#define	I_LOCALE		/**/
+#define I_LOCALE                /**/
 
 /* I_NET_ERRNO:
  *	This symbol, if defined, indicates that <net/errno.h> exists and
@@ -718,7 +718,7 @@
  *	This symbol, if defined, indicates the <sys/sockio.h> should be included
  *	to get socket ioctl options, like SIOCATMARK.
  */
-#define	I_SYS_IOCTL		/**/
+#define I_SYS_IOCTL             /**/
 /*#define I_SYS_SOCKIO	/ **/
 
 /* I_SYS_NDIR:
@@ -750,19 +750,19 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/stat.h>.
  */
-#define	I_SYS_STAT		/**/
+#define I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/times.h>.
  */
-#define	I_SYS_TIMES		/**/
+#define I_SYS_TIMES             /**/
 
 /* I_SYS_TYPES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/types.h>.
  */
-#define	I_SYS_TYPES		/**/
+#define I_SYS_TYPES             /**/
 
 /* I_SYS_UN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -1048,7 +1048,7 @@
  *	This symbol is defined if the C compiler can cast negative
  *	or large floating point numbers to 32-bit ints.
  */
-/*#define	CASTI32		/ **/
+/*#define CASTI32               / **/
 
 /* CASTNEGFLOAT:
  *	This symbol is defined if the C compiler can cast negative
@@ -1062,7 +1062,7 @@
  *		2 = couldn't cast >= 0x80000000
  *		4 = couldn't cast in argument expression list
  */
-/*#define	CASTNEGFLOAT		/* config-skip */
+/*#define CASTNEGFLOAT          /* config-skip */
 #if _P9P_OBJTYPE == 386
 #  define CASTFLAGS 3           /**/ /* config-skip */
 #else
@@ -1163,7 +1163,7 @@
  *	to the program to supply one.  A good guess is
  *		extern double drand48(void);
  */
-/*#define	HAS_DRAND48_PROTO	/ **/
+/*#define HAS_DRAND48_PROTO     / **/
 
 /* HAS_ENDGRENT:
  *	This symbol, if defined, indicates that the getgrent routine is
@@ -1269,7 +1269,7 @@
  *	This symbol, if defined, indicates that the system supports filenames
  *	longer than 14 characters.
  */
-#define	FLEXFILENAMES		/**/
+#define FLEXFILENAMES           /**/
 
 /* HAS_FP_CLASS:
  *	This symbol, if defined, indicates that the fp_class routine is
@@ -1325,7 +1325,7 @@
 /* HAS_FPOS64_T:
  *	This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define	HAS_FPOS64_T    	/ **/
+/*#define HAS_FPOS64_T          / **/
 
 /* HAS_FREXPL:
  *	This symbol, if defined, indicates that the frexpl routine is
@@ -1498,7 +1498,7 @@
  *	gethostbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETHOST_PROTOS	/ **/
+/*#define HAS_GETHOST_PROTOS    / **/
 
 /* HAS_GETITIMER:
  *	This symbol, if defined, indicates that the getitimer routine is
@@ -1555,7 +1555,7 @@
  *	getnetbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETNET_PROTOS	/ **/
+/*#define HAS_GETNET_PROTOS     / **/
 
 /* HAS_GETPAGESIZE:
  *	This symbol, if defined, indicates that the getpagesize system call
@@ -1598,7 +1598,7 @@
  *	getprotobyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETPROTO_PROTOS	/ **/
+/*#define HAS_GETPROTO_PROTOS   / **/
 
 /* HAS_GETPRPWNAM:
  *	This symbol, if defined, indicates that the getprpwnam system call is
@@ -1664,7 +1664,7 @@
  *	getservbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETSERV_PROTOS	/ **/
+/*#define HAS_GETSERV_PROTOS    / **/
 
 /* HAS_GETSPNAM:
  *	This symbol, if defined, indicates that the getspnam system call is
@@ -1899,7 +1899,7 @@
  *	to the program to supply one.  A good guess is
  *		extern off_t lseek(int, off_t, int);
  */
-/*#define	HAS_LSEEK_PROTO	/ **/
+/*#define HAS_LSEEK_PROTO       / **/
 
 /* HAS_MADVISE:
  *	This symbol, if defined, indicates that the madvise system call is
@@ -1967,7 +1967,7 @@
 /* HAS_OFF64_T:
  *	This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define	HAS_OFF64_T    		/ **/
+/*#define HAS_OFF64_T                   / **/
 
 /* HAS_OPEN3:
  *	This manifest constant lets the C program know that the three
@@ -2050,7 +2050,7 @@
  *		extern void* sbrk(int);
  *		extern void* sbrk(size_t);
  */
-/*#define	HAS_SBRK_PROTO	/ **/
+/*#define HAS_SBRK_PROTO        / **/
 
 /* HAS_SEM:
  *	This symbol, if defined, indicates that the entire sem*(2) library is
@@ -2242,8 +2242,8 @@
  *	This symbol, if defined, indicates that the BSD socketpair() call is
  *	supported.
  */
-#define	HAS_SOCKET		/**/
-#define	HAS_SOCKETPAIR	/**/
+#define HAS_SOCKET              /**/
+#define HAS_SOCKETPAIR  /**/
 
 /* HAS_SOCKS5_INIT:
  *	This symbol, if defined, indicates that the socks5_init routine is
@@ -2446,7 +2446,7 @@
  *	to the program to supply one.  A good guess is
  *		extern long telldir(DIR*);
  */
-/*#define	HAS_TELLDIR_PROTO	/ **/
+/*#define HAS_TELLDIR_PROTO     / **/
 
 /* HAS_TIME:
  *	This symbol, if defined, indicates that the time() routine exists.
@@ -2555,7 +2555,7 @@
  *     This symbol, if defined, indicates that this system uses
  *	EBCDIC encoding.
  */
-/*#define	EBCDIC 		/ **/
+/*#define EBCDIC                / **/
 
 /* FFLUSH_NULL:
  *	This symbol, if defined, tells that fflush(NULL) does flush
@@ -2568,8 +2568,8 @@
  *	Note that if fflushNULL is defined, fflushall will not
  *	even be probed for and will be left undefined.
  */
-#define	FFLUSH_NULL 		/**/
-/*#define	FFLUSH_ALL 		/ **/
+#define FFLUSH_NULL             /**/
+/*#define FFLUSH_ALL            / **/
 
 /* Fpos_t:
  *	This symbol holds the type used to declare file positions in libc.
@@ -2581,7 +2581,7 @@
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		"hd"		/**/
+#define Gid_t_f         "hd"            /**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedess of a Gid_t.
@@ -2650,7 +2650,7 @@
  *	This symbol, if defined, indicates that <fp_class.h> exists and
  *	should be included.
  */
-/*#define	I_FP_CLASS		/ **/
+/*#define I_FP_CLASS            / **/
 
 /* I_GRP:
  *	This symbol, if defined, indicates to the C program that it should
@@ -2667,7 +2667,7 @@
  *	This symbol, if defined, indicates that <ieeefp.h> exists and
  *	should be included.
  */
-/*#define	I_IEEEFP		/ **/
+/*#define I_IEEEFP              / **/
 
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2679,7 +2679,7 @@
  *	This symbol, if defined, indicates that <libutil.h> exists and
  *	should be included.
  */
-/*#define	I_LIBUTIL		/ **/
+/*#define I_LIBUTIL             / **/
 
 /* I_MACH_CTHREADS:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2691,7 +2691,7 @@
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.
  */
-/*#define	I_MNTENT		/ **/
+/*#define I_MNTENT              / **/
 
 /* I_NETDB:
  *	This symbol, if defined, indicates that <netdb.h> exists and
@@ -2709,13 +2709,13 @@
  *	This symbol, if defined, indicates that <poll.h> exists and
  *	should be included.
  */
-/*#define	I_POLL		/ **/
+/*#define I_POLL                / **/
 
 /* I_PROT:
  *	This symbol, if defined, indicates that <prot.h> exists and
  *	should be included.
  */
-/*#define	I_PROT		/ **/
+/*#define I_PROT                / **/
 
 /* I_PTHREAD:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2773,72 +2773,72 @@
  *	This symbol, if defined, indicates that <quadmath.h> exists and
  *	should be included.
  */
-/*#define	I_QUADMATH		/ **/
+/*#define I_QUADMATH            / **/
 
 /* I_SHADOW:
  *	This symbol, if defined, indicates that <shadow.h> exists and
  *	should be included.
  */
-/*#define	I_SHADOW		/ **/
+/*#define I_SHADOW              / **/
 
 /* I_SOCKS:
  *	This symbol, if defined, indicates that <socks.h> exists and
  *	should be included.
  */
-/*#define	I_SOCKS		/ **/
+/*#define I_SOCKS               / **/
 
 /* I_SUNMATH:
  *	This symbol, if defined, indicates that <sunmath.h> exists and
  *	should be included.
  */
-/*#define	I_SUNMATH		/ **/
+/*#define I_SUNMATH             / **/
 
 /* I_SYSLOG:
  *	This symbol, if defined, indicates that <syslog.h> exists and
  *	should be included.
  */
-/*#define	I_SYSLOG		/ **/
+/*#define I_SYSLOG              / **/
 
 /* I_SYSMODE:
  *	This symbol, if defined, indicates that <sys/mode.h> exists and
  *	should be included.
  */
-/*#define	I_SYSMODE		/ **/
+/*#define I_SYSMODE             / **/
 
 /* I_SYS_MOUNT:
  *	This symbol, if defined, indicates that <sys/mount.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_MOUNT		/ **/
+/*#define I_SYS_MOUNT           / **/
 
 /* I_SYS_STATFS:
  *	This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-/*#define	I_SYS_STATFS		/ **/
+/*#define I_SYS_STATFS          / **/
 
 /* I_SYS_STATVFS:
  *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_STATVFS		/ **/
+/*#define I_SYS_STATVFS         / **/
 
 /* I_SYSUIO:
  *	This symbol, if defined, indicates that <sys/uio.h> exists and
  *	should be included.
  */
-#define	I_SYSUIO		/**/
+#define I_SYSUIO                /**/
 
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
  */
-#define	I_SYSUTSNAME		/**/
+#define I_SYSUTSNAME            /**/
 
 /* I_SYS_VFS:
  *	This symbol, if defined, indicates that <sys/vfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_VFS		/ **/
+/*#define I_SYS_VFS             / **/
 
 /* Plan 9: P9 has both <time.h> and <sys/time.h> */
 /* I_TIME:
@@ -2869,7 +2869,7 @@
  *	This symbol, if defined, indicates that <ustat.h> exists and
  *	should be included.
  */
-/*#define	I_USTAT		/ **/
+/*#define I_USTAT               / **/
 
 /* PERL_INC_VERSION_LIST:
  *	This variable specifies the list of subdirectories in over
@@ -3002,7 +3002,7 @@
  *	of copying mechanisms, handy.h defines a platform-
  *	independent macro, Perl_va_copy(src, dst), to do the job.
  */
-/*#define	NEED_VA_COPY		/ **/
+/*#define NEED_VA_COPY          / **/
 
 /* Netdb_host_t:
  *	This symbol holds the type used for the 1st argument
@@ -3119,35 +3119,35 @@
  *	This symbol, if defined, indicates that a variable of type NVTYPE
  *	stores 0.0 in memory as all bits zero.
  */
-#define	IVTYPE		long		/**/
-#define	UVTYPE		unsigned long		/**/
-#define	I8TYPE		char		/**/
-#define	U8TYPE		unsigned char		/**/
-#define	I16TYPE		short	/**/
-#define	U16TYPE		unsigned short	/**/
-#define	I32TYPE		long	/**/
-#define	U32TYPE		unsigned long	/**/
+#define IVTYPE          long            /**/
+#define UVTYPE          unsigned long           /**/
+#define I8TYPE          char            /**/
+#define U8TYPE          unsigned char           /**/
+#define I16TYPE         short   /**/
+#define U16TYPE         unsigned short  /**/
+#define I32TYPE         long    /**/
+#define U32TYPE         unsigned long   /**/
 #ifdef HAS_QUAD
-#define	I64TYPE		long long	/**/
-#define	U64TYPE		unsigned long long	/**/
+#define I64TYPE         long long       /**/
+#define U64TYPE         unsigned long long      /**/
 #endif
-#define	NVTYPE		double		/**/
-#define	IVSIZE		4		/**/
-#define	UVSIZE		4		/**/
-#define	I8SIZE		1		/**/
-#define	U8SIZE		1		/**/
-#define	I16SIZE		2	/**/
-#define	U16SIZE		2	/**/
-#define	I32SIZE		4	/**/
-#define	U32SIZE		4	/**/
+#define NVTYPE          double          /**/
+#define IVSIZE          4               /**/
+#define UVSIZE          4               /**/
+#define I8SIZE          1               /**/
+#define U8SIZE          1               /**/
+#define I16SIZE         2       /**/
+#define U16SIZE         2       /**/
+#define I32SIZE         4       /**/
+#define U32SIZE         4       /**/
 #ifdef HAS_QUAD
-#define	I64SIZE		8	/**/
-#define	U64SIZE		8	/**/
+#define I64SIZE         8       /**/
+#define U64SIZE         8       /**/
 #endif
-#define	NVSIZE		8		/**/
-#define	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	31
-#define	NV_OVERFLOWS_INTEGERS_AT	256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
+#define NVSIZE          8               /**/
+#define NV_PRESERVES_UV
+#define NV_PRESERVES_UV_BITS    31
+#define NV_OVERFLOWS_INTEGERS_AT        256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
 #undef	NV_ZERO_IS_ALLBITS_ZERO
 
 /* IVdf:
@@ -3182,14 +3182,39 @@
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		"ld"		/**/
-#define	UVuf		"lu"		/**/
-#define	UVof		"lo"		/**/
-#define	UVxf		"lx"		/**/
-#define	UVXf		"lX"		/**/
-#define	NVef		"e"		/**/
-#define	NVff		"f"		/**/
-#define	NVgf		"g"		/**/
+/* I32df:
+ *	This symbol defines the format string used for printing a Perl I32
+ *	as a signed decimal integer.
+ */
+/* U32uf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned decimal integer.
+ */
+/* U32of:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned octal integer.
+ */
+/* U32xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define IVdf            "ld"            /**/
+#define UVuf            "lu"            /**/
+#define UVof            "lo"            /**/
+#define UVxf            "lx"            /**/
+#define UVXf            "lX"            /**/
+#define NVef            "e"             /**/
+#define NVff            "f"             /**/
+#define NVgf            "g"             /**/
+#define I32df           "ld"            /**/
+#define U32uf           "lu"            /**/
+#define U32of           "lo"            /**/
+#define U32xf           "lx"            /**/
+#define U32Xf           "lX"            /**/
 
 /* Pid_t:
  *	This symbol holds the type used to declare process ids in the kernel.
@@ -3390,13 +3415,13 @@
  *	This symbol tells the name of the array holding the stdio streams.
  *	Usual values include _iob, __iob, and __sF.
  */
-/*#define	HAS_STDIO_STREAM_ARRAY	/ **/
+/*#define HAS_STDIO_STREAM_ARRAY        / **/
 #define STDIO_STREAM_ARRAY	
 
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		"hd"		/**/
+#define Uid_t_f         "hd"            /**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedess of a Uid_t.
@@ -3456,11 +3481,11 @@
  *	you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-/*#define	USE_64_BIT_INT		/ **/
+/*#define USE_64_BIT_INT                / **/
 #endif
 
 #ifndef USE_64_BIT_ALL
-/*#define	USE_64_BIT_ALL		/ **/
+/*#define USE_64_BIT_ALL                / **/
 #endif
 
 /* USE_FAST_STDIO:
@@ -3469,7 +3494,7 @@
  *	Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define	USE_FAST_STDIO		/ **/
+/*#define USE_FAST_STDIO                / **/
 #endif
 
 /* USE_LARGE_FILES:
@@ -3477,7 +3502,7 @@
  *	should be used when available.
  */
 #ifndef USE_LARGE_FILES
-#define	USE_LARGE_FILES		/**/
+#define USE_LARGE_FILES         /**/
 #endif
 
 /* USE_LONG_DOUBLE:
@@ -3485,7 +3510,7 @@
  *	be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define	USE_LONG_DOUBLE		/ **/
+/*#define USE_LONG_DOUBLE               / **/
 #endif
 
 /* USE_MORE_BITS:
@@ -3493,7 +3518,7 @@
  *	long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define	USE_MORE_BITS		/ **/
+/*#define USE_MORE_BITS         / **/
 #endif
 
 /* MULTIPLICITY:
@@ -3501,7 +3526,7 @@
  *	be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define	MULTIPLICITY		/ **/
+/*#define MULTIPLICITY          / **/
 #endif
 
 /* USE_PERLIO:
@@ -3510,7 +3535,7 @@
  *	used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-#define	USE_PERLIO		/**/
+#define USE_PERLIO              /**/
 #endif
 
 /* USE_QUADMATH:
@@ -3518,7 +3543,7 @@
  *	be used when available.
  */
 #ifndef USE_QUADMATH
-/*#define	USE_QUADMATH		/ **/
+/*#define USE_QUADMATH          / **/
 #endif
 
 /* USE_SOCKS:
@@ -3526,7 +3551,7 @@
  *	be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define	USE_SOCKS		/ **/
+/*#define USE_SOCKS             / **/
 #endif
 
 /* USE_ITHREADS:
@@ -3542,10 +3567,10 @@
  *	try to use the various _r versions of library functions.
  *	This is extremely experimental.
  */
-/*#define	USE_ITHREADS		/ **/
-/*#define		USE_THREADS		/ **/
-/*#define	OLD_PTHREADS_API		/ **/
-/*#define	USE_REENTRANT_API	/ **/
+/*#define USE_ITHREADS          / **/
+/*#define       USE_THREADS             / **/
+/*#define OLD_PTHREADS_API              / **/
+/*#define USE_REENTRANT_API     / **/
 
 /* PERL_VENDORARCH:
  *	If defined, this symbol contains the name of a private library.
@@ -3640,8 +3665,8 @@
  *	Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define	USE_CROSS_COMPILE	/ **/
-#define	PERL_TARGETARCH	""	/**/
+/*#define USE_CROSS_COMPILE     / **/
+#define PERL_TARGETARCH ""      /**/
 #endif
 
 /* HAS_COPYSIGNL:
@@ -3662,7 +3687,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int dbminit(char *);
  */
-/*#define	HAS_DBMINIT_PROTO	/ **/
+/*#define HAS_DBMINIT_PROTO     / **/
 
 /* HAS_DIRFD:
  *	This manifest constant lets the C program know that dirfd
@@ -3676,7 +3701,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int flock(int, int);
  */
-/*#define	HAS_FLOCK_PROTO	/ **/
+/*#define HAS_FLOCK_PROTO       / **/
 
 /* HAS_FPCLASSL:
  *	This symbol, if defined, indicates that the fpclassl routine is
@@ -3743,7 +3768,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int sockatmark(int);
  */
-/*#define	HAS_SOCKATMARK_PROTO	/ **/
+/*#define HAS_SOCKATMARK_PROTO  / **/
 
 /* HAS_SETRESGID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3751,7 +3776,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESGID_PROTO	/ **/
+/*#define HAS_SETRESGID_PROTO   / **/
 
 /* HAS_SETRESUID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3759,7 +3784,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESUID_PROTO	/ **/
+/*#define HAS_SETRESUID_PROTO   / **/
 
 /* HAS_STRFTIME:
  *	This symbol, if defined, indicates that the strftime routine is
@@ -3774,7 +3799,7 @@
  *		extern int syscall(int,  ...);
  *		extern int syscall(long, ...);
  */
-/*#define	HAS_SYSCALL_PROTO	/ **/
+/*#define HAS_SYSCALL_PROTO     / **/
 
 /* U32_ALIGNMENT_REQUIRED:
  *	This symbol, if defined, indicates that you must access
@@ -3790,25 +3815,25 @@
  *	to the program to supply one.  A good guess is
  *		extern int usleep(useconds_t);
  */
-/*#define	HAS_USLEEP_PROTO	/ **/
+/*#define HAS_USLEEP_PROTO      / **/
 
 /* I_CRYPT:
  *	This symbol, if defined, indicates that <crypt.h> exists and
  *	should be included.
  */
-/*#define	I_CRYPT		/ **/
+/*#define I_CRYPT               / **/
 
 /* I_FP:
  *	This symbol, if defined, indicates that <fp.h> exists and
  *	should be included.
  */
-/*#define	I_FP		/ **/
+/*#define I_FP          / **/
 
 /* I_LANGINFO:
  *	This symbol, if defined, indicates that <langinfo.h> exists and
  *	should be included.
  */
-/*#define	I_LANGINFO		/ **/
+/*#define I_LANGINFO            / **/
 
 /* HAS_CTERMID_R:
  *	This symbol, if defined, indicates that the ctermid_r routine
Index: gnu/usr.bin/perl/plan9/config_h.sample
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/plan9/config_h.sample,v
diff -u -p -a -u -p -r1.13 config_h.sample
--- gnu/usr.bin/perl/plan9/config_h.sample	15 Feb 2023 01:36:35 -0000	1.13
+++ gnu/usr.bin/perl/plan9/config_h.sample	21 Feb 2024 15:47:02 -0000
@@ -66,7 +66,7 @@
  *	This symbol, if defined, indicates that the chsize routine is available
  *	to truncate files.  You might need a -lx to get this routine.
  */
-/*#define	HAS_CHSIZE		/ **/
+/*#define HAS_CHSIZE            / **/
 
 /* HAS_CUSERID:
  *	This symbol, if defined, indicates that the cuserid routine is
@@ -232,7 +232,7 @@
  *	This symbol, if defined, indicates that the mbstowcs routine is
  *	available to covert a multibyte string into a wide character string.
  */
-#define	HAS_MBSTOWCS		/**/
+#define HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *	This symbol, if defined, indicates that the mbtowc routine is available
@@ -561,7 +561,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-#define	I_ARPA_INET		/**/
+#define I_ARPA_INET             /**/
 
 /* I_DBM:
  *	This symbol, if defined, indicates that <dbm.h> exists and should
@@ -609,7 +609,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <locale.h>.
  */
-#define	I_LOCALE		/**/
+#define I_LOCALE                /**/
 
 /* I_NET_ERRNO:
  *	This symbol, if defined, indicates that <net/errno.h> exists and 
@@ -643,7 +643,7 @@
  *	This symbol, if defined, indicates the <sys/sockio.h> should be included
  *	to get socket ioctl options, like SIOCATMARK.
  */
-#define	I_SYS_IOCTL		/**/
+#define I_SYS_IOCTL             /**/
 /*#define I_SYS_SOCKIO	/ **/
 
 /* I_SYS_NDIR:
@@ -674,19 +674,19 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/stat.h>.
  */
-#define	I_SYS_STAT		/**/
+#define I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/times.h>.
  */
-#define	I_SYS_TIMES		/**/
+#define I_SYS_TIMES             /**/
 
 /* I_SYS_TYPES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/types.h>.
  */
-#define	I_SYS_TYPES		/**/
+#define I_SYS_TYPES             /**/
 
 /* I_SYS_UN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -1001,7 +1001,7 @@
  *	This symbol is defined if the C compiler can cast negative
  *	or large floating point numbers to 32-bit ints.
  */
-/*#define	CASTI32		/ **/
+/*#define CASTI32               / **/
 
 /* CASTNEGFLOAT:
  *	This symbol is defined if the C compiler can cast negative
@@ -1015,7 +1015,7 @@
  *		2 = couldn't cast >= 0x80000000
  *		4 = couldn't cast in argument expression list
  */
-/*#define	CASTNEGFLOAT		/ **/
+/*#define CASTNEGFLOAT          / **/
 #define CASTFLAGS 7		/**/
 
 /* HAS_CLASS:
@@ -1112,7 +1112,7 @@
  *	to the program to supply one.  A good guess is
  *		extern double drand48(void);
  */
-/*#define	HAS_DRAND48_PROTO	/ **/
+/*#define HAS_DRAND48_PROTO     / **/
 
 /* HAS_ENDGRENT:
  *	This symbol, if defined, indicates that the getgrent routine is
@@ -1218,7 +1218,7 @@
  *	This symbol, if defined, indicates that the system supports filenames
  *	longer than 14 characters.
  */
-#define	FLEXFILENAMES		/**/
+#define FLEXFILENAMES           /**/
 
 /* HAS_FP_CLASS:
  *	This symbol, if defined, indicates that the fp_class routine is
@@ -1273,7 +1273,7 @@
 /* HAS_FPOS64_T:
  *	This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define	HAS_FPOS64_T    	/ **/
+/*#define HAS_FPOS64_T          / **/
 
 /* HAS_FREXPL:
  *	This symbol, if defined, indicates that the frexpl routine is
@@ -1446,7 +1446,7 @@
  *	gethostbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETHOST_PROTOS	/ **/
+/*#define HAS_GETHOST_PROTOS    / **/
 
 /* HAS_GETITIMER:
  *	This symbol, if defined, indicates that the getitimer routine is
@@ -1503,7 +1503,7 @@
  *	getnetbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETNET_PROTOS	/ **/
+/*#define HAS_GETNET_PROTOS     / **/
 
 /* HAS_GETPAGESIZE:
  *	This symbol, if defined, indicates that the getpagesize system call
@@ -1546,7 +1546,7 @@
  *	getprotobyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETPROTO_PROTOS	/ **/
+/*#define HAS_GETPROTO_PROTOS   / **/
 
 /* HAS_GETPRPWNAM:
  *	This symbol, if defined, indicates that the getprpwnam system call is
@@ -1612,7 +1612,7 @@
  *	getservbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETSERV_PROTOS	/ **/
+/*#define HAS_GETSERV_PROTOS    / **/
 
 /* HAS_GETSPNAM:
  *	This symbol, if defined, indicates that the getspnam system call is
@@ -1808,7 +1808,7 @@
  *	to the program to supply one.  A good guess is
  *		extern off_t lseek(int, off_t, int);
  */
-/*#define	HAS_LSEEK_PROTO	/ **/
+/*#define HAS_LSEEK_PROTO       / **/
 
 /* HAS_MADVISE:
  *	This symbol, if defined, indicates that the madvise system call is
@@ -1876,7 +1876,7 @@
 /* HAS_OFF64_T:
  *	This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define	HAS_OFF64_T    		/ **/
+/*#define HAS_OFF64_T                   / **/
 
 /* HAS_OPEN3:
  *	This manifest constant lets the C program know that the three
@@ -1959,7 +1959,7 @@
  *		extern void* sbrk(int);
  *		extern void* sbrk(size_t);
  */
-/*#define	HAS_SBRK_PROTO	/ **/
+/*#define HAS_SBRK_PROTO        / **/
 
 /* HAS_SEM:
  *	This symbol, if defined, indicates that the entire sem*(2) library is
@@ -2130,8 +2130,8 @@
  *	This symbol, if defined, indicates that the BSD socketpair() call is
  *	supported.
  */
-#define	HAS_SOCKET		/**/
-#define	HAS_SOCKETPAIR	/**/
+#define HAS_SOCKET              /**/
+#define HAS_SOCKETPAIR  /**/
 
 /* HAS_SOCKS5_INIT:
  *	This symbol, if defined, indicates that the socks5_init routine is
@@ -2334,7 +2334,7 @@
  *	to the program to supply one.  A good guess is
  *		extern long telldir(DIR*);
  */
-/*#define	HAS_TELLDIR_PROTO	/ **/
+/*#define HAS_TELLDIR_PROTO     / **/
 
 /* HAS_TIME:
  *	This symbol, if defined, indicates that the time() routine exists.
@@ -2443,7 +2443,7 @@
  *     This symbol, if defined, indicates that this system uses
  *	EBCDIC encoding.
  */
-/*#define	EBCDIC 		/ **/
+/*#define EBCDIC                / **/
 
 /* FFLUSH_NULL:
  *	This symbol, if defined, tells that fflush(NULL) does flush
@@ -2456,8 +2456,8 @@
  *	Note that if fflushNULL is defined, fflushall will not
  *	even be probed for and will be left undefined.
  */
-#define	FFLUSH_NULL 		/**/
-/*#define	FFLUSH_ALL 		/ **/
+#define FFLUSH_NULL             /**/
+/*#define FFLUSH_ALL            / **/
 
 /* Fpos_t:
  *	This symbol holds the type used to declare file positions in libc.
@@ -2469,7 +2469,7 @@
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		"hd"		/**/
+#define Gid_t_f         "hd"            /**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedess of a Gid_t.
@@ -2538,7 +2538,7 @@
  *	This symbol, if defined, indicates that <fp_class.h> exists and
  *	should be included.
  */
-/*#define	I_FP_CLASS		/ **/
+/*#define I_FP_CLASS            / **/
 
 /* I_GRP:
  *	This symbol, if defined, indicates to the C program that it should
@@ -2555,7 +2555,7 @@
  *	This symbol, if defined, indicates that <ieeefp.h> exists and
  *	should be included.
  */
-/*#define	I_IEEEFP		/ **/
+/*#define I_IEEEFP              / **/
 
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2567,7 +2567,7 @@
  *	This symbol, if defined, indicates that <libutil.h> exists and
  *	should be included.
  */
-/*#define	I_LIBUTIL		/ **/
+/*#define I_LIBUTIL             / **/
 
 /* I_MACH_CTHREADS:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2579,7 +2579,7 @@
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.
  */
-/*#define	I_MNTENT		/ **/
+/*#define I_MNTENT              / **/
 
 /* I_NETDB:
  *	This symbol, if defined, indicates that <netdb.h> exists and
@@ -2597,13 +2597,13 @@
  *	This symbol, if defined, indicates that <poll.h> exists and
  *	should be included.
  */
-/*#define	I_POLL		/ **/
+/*#define I_POLL                / **/
 
 /* I_PROT:
  *	This symbol, if defined, indicates that <prot.h> exists and
  *	should be included.
  */
-/*#define	I_PROT		/ **/
+/*#define I_PROT                / **/
 
 /* I_PTHREAD:
  *     This symbol, if defined, indicates to the C program that it should
@@ -2661,66 +2661,66 @@
  *	This symbol, if defined, indicates that <shadow.h> exists and
  *	should be included.
  */
-/*#define	I_SHADOW		/ **/
+/*#define I_SHADOW              / **/
 
 /* I_SOCKS:
  *	This symbol, if defined, indicates that <socks.h> exists and
  *	should be included.
  */
-/*#define	I_SOCKS		/ **/
+/*#define I_SOCKS               / **/
 
 /* I_SUNMATH:
  *	This symbol, if defined, indicates that <sunmath.h> exists and
  *	should be included.
  */
-/*#define	I_SUNMATH		/ **/
+/*#define I_SUNMATH             / **/
 
 /* I_SYSLOG:
  *	This symbol, if defined, indicates that <syslog.h> exists and
  *	should be included.
  */
-/*#define	I_SYSLOG		/ **/
+/*#define I_SYSLOG              / **/
 
 /* I_SYSMODE:
  *	This symbol, if defined, indicates that <sys/mode.h> exists and
  *	should be included.
  */
-/*#define	I_SYSMODE		/ **/
+/*#define I_SYSMODE             / **/
 
 /* I_SYS_MOUNT:
  *	This symbol, if defined, indicates that <sys/mount.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_MOUNT		/ **/
+/*#define I_SYS_MOUNT           / **/
 
 /* I_SYS_STATFS:
  *	This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-/*#define	I_SYS_STATFS		/ **/
+/*#define I_SYS_STATFS          / **/
 
 /* I_SYS_STATVFS:
  *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_STATVFS		/ **/
+/*#define I_SYS_STATVFS         / **/
 
 /* I_SYSUIO:
  *	This symbol, if defined, indicates that <sys/uio.h> exists and
  *	should be included.
  */
-#define	I_SYSUIO		/**/
+#define I_SYSUIO                /**/
 
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
  */
-#define	I_SYSUTSNAME		/**/
+#define I_SYSUTSNAME            /**/
 
 /* I_SYS_VFS:
  *	This symbol, if defined, indicates that <sys/vfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_VFS		/ **/
+/*#define I_SYS_VFS             / **/
 
 /* I_TIME:
  *	This symbol, if defined, indicates to the C program that it should
@@ -2750,7 +2750,7 @@
  *	This symbol, if defined, indicates that <ustat.h> exists and
  *	should be included.
  */
-/*#define	I_USTAT		/ **/
+/*#define I_USTAT               / **/
 
 /* PERL_INC_VERSION_LIST:
  *	This variable specifies the list of subdirectories in over
@@ -2862,7 +2862,7 @@
  *	of copying mechanisms, handy.h defines a platform-
  *	independent macro, Perl_va_copy(src, dst), to do the job.
  */
-/*#define	NEED_VA_COPY		/ **/
+/*#define NEED_VA_COPY          / **/
 
 /* Netdb_host_t:
  *	This symbol holds the type used for the 1st argument
@@ -2969,34 +2969,34 @@
  *	This symbol contains the number of bits a variable of type NVTYPE
  *	can preserve of a variable of type UVTYPE.
  */
-#define	IVTYPE		long		/**/
-#define	UVTYPE		unsigned long		/**/
-#define	I8TYPE		char		/**/
-#define	U8TYPE		unsigned char		/**/
-#define	I16TYPE		short	/**/
-#define	U16TYPE		unsigned short	/**/
-#define	I32TYPE		long	/**/
-#define	U32TYPE		unsigned long	/**/
+#define IVTYPE          long            /**/
+#define UVTYPE          unsigned long           /**/
+#define I8TYPE          char            /**/
+#define U8TYPE          unsigned char           /**/
+#define I16TYPE         short   /**/
+#define U16TYPE         unsigned short  /**/
+#define I32TYPE         long    /**/
+#define U32TYPE         unsigned long   /**/
 #ifdef HAS_QUAD
-#define	I64TYPE		long long	/**/
-#define	U64TYPE		unsigned long long	/**/
+#define I64TYPE         long long       /**/
+#define U64TYPE         unsigned long long      /**/
 #endif
-#define	NVTYPE		double		/**/
-#define	IVSIZE		4		/**/
-#define	UVSIZE		4		/**/
-#define	I8SIZE		1		/**/
-#define	U8SIZE		1		/**/
-#define	I16SIZE		2	/**/
-#define	U16SIZE		2	/**/
-#define	I32SIZE		4	/**/
-#define	U32SIZE		4	/**/
+#define NVTYPE          double          /**/
+#define IVSIZE          4               /**/
+#define UVSIZE          4               /**/
+#define I8SIZE          1               /**/
+#define U8SIZE          1               /**/
+#define I16SIZE         2       /**/
+#define U16SIZE         2       /**/
+#define I32SIZE         4       /**/
+#define U32SIZE         4       /**/
 #ifdef HAS_QUAD
-#define	I64SIZE		8	/**/
-#define	U64SIZE		8	/**/
+#define I64SIZE         8       /**/
+#define U64SIZE         8       /**/
 #endif
-#define	NVSIZE		8		/**/
+#define NVSIZE          8               /**/
 #undef	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	31
+#define NV_PRESERVES_UV_BITS    31
 
 /* IVdf:
  *	This symbol defines the format string used for printing a Perl IV
@@ -3030,14 +3030,39 @@
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		"ld"		/**/
-#define	UVuf		"lu"		/**/
-#define	UVof		"lo"		/**/
-#define	UVxf		"lx"		/**/
-#define	UVXf		"lX"		/**/
-#define	NVef		"e"		/**/
-#define	NVff		"f"		/**/
-#define	NVgf		"g"		/**/
+/* I32df:
+ *	This symbol defines the format string used for printing a Perl I32
+ *	as a signed decimal integer.
+ */
+/* U32uf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned decimal integer.
+ */
+/* U32of:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned octal integer.
+ */
+/* U32xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define IVdf            "ld"            /**/
+#define UVuf            "lu"            /**/
+#define UVof            "lo"            /**/
+#define UVxf            "lx"            /**/
+#define UVXf            "lX"            /**/
+#define NVef            "e"             /**/
+#define NVff            "f"             /**/
+#define NVgf            "g"             /**/
+#define I32df           "ld"            /**/
+#define U32uf           "lu"            /**/
+#define U32of           "lo"            /**/
+#define U32xf           "lx"            /**/
+#define U32Xf           "lX"            /**/
 
 /* Pid_t:
  *	This symbol holds the type used to declare process ids in the kernel.
@@ -3237,13 +3262,13 @@
  *	This symbol tells the name of the array holding the stdio streams.
  *	Usual values include _iob, __iob, and __sF.
  */
-/*#define	HAS_STDIO_STREAM_ARRAY	/ **/
+/*#define HAS_STDIO_STREAM_ARRAY        / **/
 #define STDIO_STREAM_ARRAY	
 
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		"hd"		/**/
+#define Uid_t_f         "hd"            /**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedess of a Uid_t.
@@ -3282,11 +3307,11 @@
  *	you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-/*#define	USE_64_BIT_INT		/ **/
+/*#define USE_64_BIT_INT                / **/
 #endif
 
 #ifndef USE_64_BIT_ALL
-/*#define	USE_64_BIT_ALL		/ **/
+/*#define USE_64_BIT_ALL                / **/
 #endif
 
 /* USE_FAST_STDIO:
@@ -3295,7 +3320,7 @@
  *	Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define	USE_FAST_STDIO		/ **/
+/*#define USE_FAST_STDIO                / **/
 #endif
 
 /* USE_LARGE_FILES:
@@ -3303,7 +3328,7 @@
  *	should be used when available.
  */
 #ifndef USE_LARGE_FILES
-#define	USE_LARGE_FILES		/**/
+#define USE_LARGE_FILES         /**/
 #endif
 
 /* USE_LONG_DOUBLE:
@@ -3311,7 +3336,7 @@
  *	be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define	USE_LONG_DOUBLE		/ **/
+/*#define USE_LONG_DOUBLE               / **/
 #endif
 
 /* USE_MORE_BITS:
@@ -3319,7 +3344,7 @@
  *	long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define	USE_MORE_BITS		/ **/
+/*#define USE_MORE_BITS         / **/
 #endif
 
 /* MULTIPLICITY:
@@ -3327,7 +3352,7 @@
  *	be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define	MULTIPLICITY		/ **/
+/*#define MULTIPLICITY          / **/
 #endif
 
 /* USE_PERLIO:
@@ -3336,7 +3361,7 @@
  *	used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-#define	USE_PERLIO		/**/
+#define USE_PERLIO              /**/
 #endif
 
 /* USE_SOCKS:
@@ -3344,7 +3369,7 @@
  *	be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define	USE_SOCKS		/ **/
+/*#define USE_SOCKS             / **/
 #endif
 
 /* USE_ITHREADS:
@@ -3366,10 +3391,10 @@
  *	try to use the various _r versions of library functions.
  *	This is extremely experimental.
  */
-/*#define	USE_ITHREADS		/ **/
-/*#define		USE_THREADS		/ **/
-/*#define	OLD_PTHREADS_API		/ **/
-/*#define	USE_REENTRANT_API	/ **/
+/*#define USE_ITHREADS          / **/
+/*#define       USE_THREADS             / **/
+/*#define OLD_PTHREADS_API              / **/
+/*#define USE_REENTRANT_API     / **/
 
 /* PERL_VENDORARCH:
  *	If defined, this symbol contains the name of a private library.
@@ -3464,8 +3489,8 @@
  *	Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define	USE_CROSS_COMPILE	/ **/
-#define	PERL_TARGETARCH	""	/**/
+/*#define USE_CROSS_COMPILE     / **/
+#define PERL_TARGETARCH ""      /**/
 #endif
 
 /* HAS_COPYSIGNL:
@@ -3486,7 +3511,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int dbminit(char *);
  */
-/*#define	HAS_DBMINIT_PROTO	/ **/
+/*#define HAS_DBMINIT_PROTO     / **/
 
 /* HAS_DIRFD:
  *	This manifest constant lets the C program know that dirfd
@@ -3500,7 +3525,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int flock(int, int);
  */
-/*#define	HAS_FLOCK_PROTO	/ **/
+/*#define HAS_FLOCK_PROTO       / **/
 
 /* HAS_FPCLASSL:
  *	This symbol, if defined, indicates that the fpclassl routine is
@@ -3567,7 +3592,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int sockatmark(int);
  */
-/*#define	HAS_SOCKATMARK_PROTO	/ **/
+/*#define HAS_SOCKATMARK_PROTO  / **/
 
 /* HAS_SETRESGID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3575,7 +3600,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESGID_PROTO	/ **/
+/*#define HAS_SETRESGID_PROTO   / **/
 
 /* HAS_SETRESUID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3583,7 +3608,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESUID_PROTO	/ **/
+/*#define HAS_SETRESUID_PROTO   / **/
 
 /* HAS_STRFTIME:
  *	This symbol, if defined, indicates that the strftime routine is
@@ -3610,7 +3635,7 @@
  *		extern int syscall(int,  ...);
  *		extern int syscall(long, ...);
  */
-/*#define	HAS_SYSCALL_PROTO	/ **/
+/*#define HAS_SYSCALL_PROTO     / **/
 
 /* U32_ALIGNMENT_REQUIRED:
  *	This symbol, if defined, indicates that you must access
@@ -3626,25 +3651,25 @@
  *	to the program to supply one.  A good guess is
  *		extern int usleep(useconds_t);
  */
-/*#define	HAS_USLEEP_PROTO	/ **/
+/*#define HAS_USLEEP_PROTO      / **/
 
 /* I_CRYPT:
  *	This symbol, if defined, indicates that <crypt.h> exists and
  *	should be included.
  */
-/*#define	I_CRYPT		/ **/
+/*#define I_CRYPT               / **/
 
 /* I_FP:
  *	This symbol, if defined, indicates that <fp.h> exists and
  *	should be included.
  */
-/*#define	I_FP		/ **/
+/*#define I_FP          / **/
 
 /* I_LANGINFO:
  *	This symbol, if defined, indicates that <langinfo.h> exists and
  *	should be included.
  */
-/*#define	I_LANGINFO		/ **/
+/*#define I_LANGINFO            / **/
 
 /* HAS_CTERMID_R:
  *	This symbol, if defined, indicates that the ctermid_r routine
Index: gnu/usr.bin/perl/plan9/config_sh.sample
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/plan9/config_sh.sample,v
diff -u -p -a -u -p -r1.17 config_sh.sample
--- gnu/usr.bin/perl/plan9/config_sh.sample	23 Dec 2023 21:02:21 -0000	1.17
+++ gnu/usr.bin/perl/plan9/config_sh.sample	21 Feb 2024 15:47:02 -0000
@@ -32,11 +32,11 @@ alignbytes='4'
 aphostname='/bin/uname -n'
 api_revision='5'
 api_subversion='0'
-api_version='36'
-api_versionstring='5.36.0'
+api_version='38'
+api_versionstring='5.38.0'
 ar='ar'
-archlib='/sys/lib/perl5/5.36.3/386'
-archlibexp='/sys/lib/perl5/5.36.3/386'
+archlib='/sys/lib/perl5/5.38.2/386'
+archlibexp='/sys/lib/perl5/5.38.2/386'
 archname64=''
 archname='386'
 archobjs=''
@@ -124,6 +124,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='undef'
@@ -489,6 +490,7 @@ d_semget='undef'
 d_semop='undef'
 d_sendmsg='undef'
 d_setegid='undef'
+d_setenv='undef'
 d_seteuid='undef'
 d_setgrent='define'
 d_setgrent_r='undef'
@@ -731,6 +733,7 @@ hint='recommended'
 hostcat=''
 i16size='2'
 i16type='short'
+i32dformat='"ld"'
 i32size='4'
 i32type='long'
 i64size='8'
@@ -801,6 +804,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='undef'
 i_sysstatvfs='undef'
+i_syssyscall='undef'
 i_systime='undef'
 i_systimek='undef'
 i_systimes='define'
@@ -825,17 +829,17 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='/sys/lib/perl/5.36.3/386'
+installarchlib='/sys/lib/perl/5.38.2/386'
 installbin='/usr/bin'
 installman1dir='/sys/man/1pub'
 installman3dir='/sys/man/2pub'
 installprefix='/usr'
 installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.36.3'
+installprivlib='/sys/lib/perl/5.38.2'
 installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.36.3/site_perl/386'
+installsitearch='/sys/lib/perl/5.38.2/site_perl/386'
 installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.36.3/site_perl'
+installsitelib='/sys/lib/perl/5.38.2/site_perl'
 installstyle='lib/perl5'
 installusrbinperl='undef'
 installvendorarch=''
@@ -961,8 +965,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/sys/lib/perl/5.36.3'
-privlibexp='/sys/lib/perl/5.36.3'
+privlib='/sys/lib/perl/5.38.2'
+privlibexp='/sys/lib/perl/5.38.2'
 procselfexe=''
 prototype='define'
 ptrsize='4'
@@ -1027,13 +1031,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0'
 sig_size='50'
 signal_t='void'
-sitearch='/sys/lib/perl/5.36.3/site_perl/386'
+sitearch='/sys/lib/perl/5.38.2/site_perl/386'
 sitearchexp='/sys/lib/perl/site_perl/386'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.36.3/site_perl'
-sitelib_stem='/sys/lib/perl/5.36.3/site_perl'
-sitelibexp='/sys/lib/perl/5.36.3/site_perl'
+sitelib='/sys/lib/perl/5.38.2/site_perl'
+sitelib_stem='/sys/lib/perl/5.38.2/site_perl'
+sitelibexp='/sys/lib/perl/5.38.2/site_perl'
 siteprefix='/usr'
 siteprefixexp='/usr'
 sizesize='4'
@@ -1068,7 +1072,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/sys/include/ape/string.h'
 submit=''
-subversion='3'
+subversion='2'
 sysman='/sys/man/1pub'
 tail=''
 tar=''
@@ -1088,8 +1092,12 @@ troff=''
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
 u32size='4'
 u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
 u64size='8'
 u64type='unsigned long long'
 u8size='1'
@@ -1149,8 +1157,8 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.36.3'
-version_patchlevel_string='version 36 subversion 3'
+version='5.38.2'
+version_patchlevel_string='version 38 subversion 2'
 versiononly='undef'
 vi=''
 xlibpth=''
@@ -1164,10 +1172,10 @@ config_arg0='./Configure'
 config_args=''
 config_argc=0
 PERL_REVISION=5
-PERL_VERSION=36
-PERL_SUBVERSION=3
+PERL_VERSION=38
+PERL_SUBVERSION=2
 PERL_API_REVISION=5
-PERL_API_VERSION=36
+PERL_API_VERSION=38
 PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
Index: gnu/usr.bin/perl/plan9/plan9.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/plan9/plan9.c,v
diff -u -p -a -u -p -r1.2 plan9.c
--- gnu/usr.bin/perl/plan9/plan9.c	15 Feb 2023 01:36:35 -0000	1.2
+++ gnu/usr.bin/perl/plan9/plan9.c	21 Feb 2024 15:47:02 -0000
@@ -106,7 +106,7 @@ void setprotoent(int a)
 
 void setservent(int a)
 {
-    croak("Function \"setservent\"  not implemented in this version of perl.");
+    croak("Function \"setservent\" not implemented in this version of perl.");
 }
 
 void endnetent()
Index: gnu/usr.bin/perl/plan9/plan9ish.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/plan9/plan9ish.h,v
diff -u -p -a -u -p -r1.9 plan9ish.h
--- gnu/usr.bin/perl/plan9/plan9ish.h	15 Feb 2023 01:36:35 -0000	1.9
+++ gnu/usr.bin/perl/plan9/plan9ish.h	21 Feb 2024 15:47:02 -0000
@@ -12,7 +12,7 @@
  *	This symbol, if defined, indicates that the ioctl() routine is
  *	available to set I/O characteristics
  */
-#define	HAS_IOCTL		/**/
+#define HAS_IOCTL               /**/
  
 /* HAS_UTIME:
  *	This symbol, if defined, indicates that the routine utime() is
Index: gnu/usr.bin/perl/pod/buildtoc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/buildtoc,v
diff -u -p -a -u -p -r1.18 buildtoc
--- gnu/usr.bin/perl/pod/buildtoc	15 Feb 2023 01:36:35 -0000	1.18
+++ gnu/usr.bin/perl/pod/buildtoc	21 Feb 2024 15:47:03 -0000
@@ -186,7 +186,7 @@ my ($inhead1, $inhead2, $initem);
 sub podset {
     my ($pod, $file) = @_;
 
-    open my $fh, '<:raw', $file or my_die "Can't open file '$file' for $pod: $!";
+    open my $fh, '<:', $file or my_die "Can't open file '$file' for $pod: $!";
 
     local *_;
     my $found_pod;
@@ -206,11 +206,12 @@ sub podset {
     local $/ = '';
 
     while(<$fh>) {
-	tr/\015//d;
+	s/\r$//;
 	if (s/^=head1 (NAME)\s*/=head2 /) {
 	    unhead1();
 	    $OUT .= "\n\n=head2 ";
 	    $_ = <$fh>;
+            last unless defined $_;
 	    # Remove svn keyword expansions from the Perl FAQ
 	    s/ \(\$Revision: \d+ \$\)//g;
 	    if ( /^\s*\Q$pod\E\b/ ) {
@@ -237,6 +238,8 @@ sub podset {
 	    s/^\s*\*\s*//;
 	    s/\n/ /g;
 	    s/\s+$//;
+	    # make sure inner links include the target page
+	    s{L<(?:[^|>]+\|)?\K/}{$pod/}g;
 	    next if /^[\d.]+$/;
 	    next if $pod eq 'perlmodlib' && /^ftp:/;
 	    $OUT .= ", " if $initem;
Index: gnu/usr.bin/perl/pod/perl.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perl.pod,v
diff -u -p -a -u -p -r1.40 perl.pod
--- gnu/usr.bin/perl/pod/perl.pod	23 Dec 2023 21:02:21 -0000	1.40
+++ gnu/usr.bin/perl/pod/perl.pod	21 Feb 2024 15:47:03 -0000
@@ -111,6 +111,7 @@ aux h2ph h2xs perlbug pl2pm pod2html pod
     perlform		Perl formats
     perlobj		Perl objects
     perltie		Perl objects hidden behind simple variables
+    perlclass           Perl class syntax
       perldbmfilter	Perl DBM filters
 
     perlipc		Perl interprocess communication
@@ -160,6 +161,7 @@ aux h2ph h2xs perlbug pl2pm pod2html pod
     perlmroapi		Perl method resolution plugin interface
     perlreapi		Perl regular expression plugin interface
     perlreguts		Perl regular expression engine internals
+    perlclassguts	Internals of class syntax
 
     perlapi		Perl API listing (autogenerated)
     perlintern		Perl internal functions (autogenerated)
@@ -179,9 +181,12 @@ aux h2ph h2xs perlbug pl2pm pod2html pod
 
     perlhist		Perl history records
     perldelta		Perl changes since previous version
-    perl5362delta       Perl changes in version 5.36.2
-    perl5361delta       Perl changes in version 5.36.1
-    perl5360delta       Perl changes in version 5.36.0
+    perl5381delta	Perl changes in version 5.38.1
+    perl5380delta	Perl changes in version 5.38.0
+    perl5363delta	Perl changes in version 5.36.3
+    perl5362delta	Perl changes in version 5.36.2
+    perl5361delta	Perl changes in version 5.36.1
+    perl5360delta	Perl changes in version 5.36.0
     perl5343delta	Perl changes in version 5.34.3
     perl5342delta	Perl changes in version 5.34.2
     perl5341delta	Perl changes in version 5.34.1
@@ -318,8 +323,8 @@ available as manpages for use with the F
 Some documentation is not available as man pages, so if a
 cross-reference is not found by man, try it with L<perldoc>.  Perldoc can
 also take you directly to documentation for functions (with the B<-f>
-switch). See C<perldoc --help> (or C<perldoc perldoc> or C<man perldoc>)
-for other helpful options L<perldoc> has to offer.
+switch). See S<C<perldoc --help>> (or S<C<perldoc perldoc>> or
+S<C<man perldoc>>) for other helpful options L<perldoc> has to offer.
 
 In general, if something strange has gone wrong with your program and you're
 not sure where you should look for help, try making your code comply with
Index: gnu/usr.bin/perl/pod/perl5200delta.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perl5200delta.pod,v
diff -u -p -a -u -p -r1.4 perl5200delta.pod
--- gnu/usr.bin/perl/pod/perl5200delta.pod	15 Feb 2023 01:36:35 -0000	1.4
+++ gnu/usr.bin/perl/pod/perl5200delta.pod	21 Feb 2024 15:47:03 -0000
@@ -1266,7 +1266,7 @@ locales.
 
 =item *
 
-C<goto EXPR> is now documented to handle an expression that evalutes to a
+C<goto EXPR> is now documented to handle an expression that evaluates to a
 code reference as if it was C<goto &$coderef>.  This behavior is at least ten
 years old.
 
Index: gnu/usr.bin/perl/pod/perl5340delta.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perl5340delta.pod,v
diff -u -p -a -u -p -r1.1.1.1 perl5340delta.pod
--- gnu/usr.bin/perl/pod/perl5340delta.pod	15 Feb 2023 01:32:51 -0000	1.1.1.1
+++ gnu/usr.bin/perl/pod/perl5340delta.pod	21 Feb 2024 15:47:03 -0000
@@ -1395,7 +1395,7 @@ Aaron Crane, Adam Hartley, Andy Doughert
 Zahradník, brian d foy, Chris 'BinGOs' Williams, Christian Walde
 (Mithaldu), Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Book, Daniel
 Böhmer, Daniel Laügt, Dan Kogai, David Cantrell, David Mitchell, Dominic
-Hamon, E. Choroba, Ed J, Eric Herman, Eric Lindblad, Eugene Alvin Villar,
+Hamon, E. Choroba, Ed J, Eric Herman, Eugene Alvin Villar,
 Felipe Gasper, Giovanni Tataranni, Graham Knop, Graham Ollis, Hauke D,
 H.Merijn Brand, Hugo van der Sanden, Ichinose Shogo, Ivan Baidakou, Jae
 Bradley, James E Keenan, Jason McIntosh, jkahrman, John Karr, John Lightsey,
Index: gnu/usr.bin/perl/pod/perl5360delta.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perl5360delta.pod,v
diff -u -p -a -u -p -r1.1 perl5360delta.pod
--- gnu/usr.bin/perl/pod/perl5360delta.pod	8 Jul 2023 14:18:36 -0000	1.1
+++ gnu/usr.bin/perl/pod/perl5360delta.pod	21 Feb 2024 15:47:03 -0000
@@ -325,7 +325,7 @@ block compiles, it means you're using pe
 We now probe for compiler support for C11 thread local storage, and where
 available use this for "implicit context" for XS extensions making API calls for
 a threaded Perl build.  This requires fewer function calls at the C level than
-POSIX thread specific storage. We continue to use the the pthreads approach if
+POSIX thread specific storage. We continue to use the pthreads approach if
 the C11 approach is not available.
 
 F<Configure> run with the defaults will build an unthreaded Perl (which is
@@ -1050,7 +1050,7 @@ that are strict in rejecting certain C99
 declarations and code, and hence it makes sense for XS module authors to audit
 that their code does not violate this. However, doing this is now only
 possible on these earlier versions of Perl, hence these modules need to be
-changed to only add this flag for C<<$] < 5.035005>>.
+changed to only add this flag for C<< $] < 5.035005 >>.
 
 =item *
 
Index: gnu/usr.bin/perl/pod/perl5362delta.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perl5362delta.pod,v
diff -u -p -a -u -p -r1.1 perl5362delta.pod
--- gnu/usr.bin/perl/pod/perl5362delta.pod	23 Dec 2023 21:02:21 -0000	1.1
+++ gnu/usr.bin/perl/pod/perl5362delta.pod	21 Feb 2024 15:47:03 -0000
@@ -46,7 +46,7 @@ be executed.
 
 =head1 Acknowledgements
 
-Perl 5.36.2 represents approximately 1 month of development since Perl
+Perl 5.36.2 represents approximately 7 months of development since Perl
 5.36.1 and contains approximately 2,300 lines of changes across 38 files
 from 4 authors.
 
Index: gnu/usr.bin/perl/pod/perl5363delta.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perl5363delta.pod
diff -N gnu/usr.bin/perl/pod/perl5363delta.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perl5363delta.pod	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,110 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5363delta - what is new for perl v5.36.3
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.36.1 release and the 5.36.3
+release.  B<Please note:> This document ignores Perl 5.36.2, a broken release
+which existed for a couple of days only.
+
+If you are upgrading from an earlier release such as 5.36.0, first read
+L<perl5361delta>, which describes differences between 5.36.0 and 5.36.1.
+
+=head1 Security
+
+This release fixes the following security issues. 
+
+=head2 CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property
+
+This vulnerability was reported directly to the Perl security team by
+Nathan Mills C<the.true.nathan.mills@gmail.com>.
+
+A crafted regular expression when compiled by perl 5.30.0 through
+5.38.0 can cause a one-byte attacker controlled buffer overflow in a
+heap allocated buffer.
+
+=head2 CVE-2023-47039 - Perl for Windows binary hijacking vulnerability
+
+This vulnerability was reported to the Intel Product Security Incident
+Response Team (PSIRT) by GitHub user ycdxsb
+L<https://github.com/ycdxsb/WindowsPrivilegeEscalation>. PSIRT then
+reported it to the Perl security team.
+
+Perl for Windows relies on the system path environment variable to
+find the shell (C<cmd.exe>). When running an executable which uses
+Windows Perl interpreter, Perl attempts to find and execute C<cmd.exe>
+within the operating system. However, due to path search order issues,
+Perl initially looks for cmd.exe in the current working directory.
+
+An attacker with limited privileges can exploit this behavior by
+placing C<cmd.exe> in locations with weak permissions, such as
+C<C:\ProgramData>. By doing so, when an administrator attempts to use
+this executable from these compromised locations, arbitrary code can
+be executed.
+
+=head1 Acknowledgements
+
+Perl 5.36.3 represents approximately 1 month of development since Perl
+5.36.1 and contains approximately 2,300 lines of changes across 38 files
+from 4 authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 1,400 lines of changes to 8 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its fourth decade thanks to a vibrant
+community of users and developers. The following people are known to have
+contributed the improvements that became Perl 5.36.3:
+
+Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
+
+The list above is almost certainly incomplete as it is automatically
+generated from version control history. In particular, it does not include
+the names of the (very much appreciated) contributors who reported issues to
+the Perl bug tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please
+see the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the perl bug database
+at L<https://github.com/Perl/perl5/issues>.  There may also be information at
+L<http://www.perl.org/>, the Perl Home Page.
+
+If you believe you have an unreported bug, please open an issue at
+L<https://github.com/Perl/perl5/issues>.  Be sure to trim your bug down to a
+tiny but sufficient test case.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a public issue tracker, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 Give Thanks
+
+If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
+you can do so by running the C<perlthanks> program:
+
+    perlthanks
+
+This will send an email to the Perl 5 Porters list with your show of thanks.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
Index: gnu/usr.bin/perl/pod/perl5380delta.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perl5380delta.pod
diff -N gnu/usr.bin/perl/pod/perl5380delta.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perl5380delta.pod	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,2260 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5380delta - what is new for perl v5.38.0
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.36.0 release and the 5.38.0
+release.
+
+=head1 Core Enhancements
+
+=head2 New C<class> Feature
+
+A new B<experimental> syntax is now available for defining object classes,
+where per-instance data is stored in "field" variables that behave like
+lexicals.
+
+    use feature 'class';
+
+    class Point
+    {
+        field $x;
+        field $y;
+
+        method zero { $x = $y = 0; }
+    }
+
+This is described in more detail in L<perlclass>.  Notes on the internals of
+its implementation and other related details can be found in L<perlclassguts>.
+
+This remains a new and experimental feature, and is very much still under
+development. It will be the subject of much further addition, refinement and
+alteration in future releases.  As it is experimental, it yields warnings in
+the C<experimental::class> category.  These can be silenced by a
+C<no warnings> statement.
+
+    use feature 'class';
+    no warnings 'experimental::class';
+
+=head2 Unicode 15.0 is supported
+
+See L<https://www.unicode.org/versions/Unicode15.0.0/> for details.
+
+=head2 Deprecation warnings now have specific subcategories
+
+All deprecation warnings now have their own specific deprecation category which
+can be disabled individually. You can see a list of all deprecated features in
+L<perldeprecation>, and in L<warnings>. The following list is from L<warnings>:
+
+         +- deprecated ----+
+         |                 |
+         |                 +- deprecated::apostrophe_as_package_separator
+         |                 |
+         |                 +- deprecated::delimiter_will_be_paired
+         |                 |
+         |                 +- deprecated::dot_in_inc
+         |                 |
+         |                 +- deprecated::goto_construct
+         |                 |
+         |                 +- deprecated::smartmatch
+         |                 |
+         |                 +- deprecated::unicode_property_name
+         |                 |
+         |                 +- deprecated::version_downgrade
+
+It is still possible to disable all deprecation warnings in a single
+statement with
+
+    no warnings 'deprecated';
+
+but now is possible to have a finer grained control. As has historically been
+the case these warnings are automatically enabled with
+
+    use warnings;
+
+=head2 %{^HOOK} API introduced
+
+For various reasons it can be difficult to create subroutine wrappers
+for some of perls keywords. Any keyword which has an undefined
+prototype simply cannot be wrapped with a subroutine, and some keywords
+which perl permits to be wrapped are in practice very tricky to wrap.
+For example C<require> is tricky to wrap, it is possible but doing so
+changes the stack depth, and the standard methods of exporting assume
+that they will be exporting to a package at certain stack depth up the
+stack, and the wrapper will thus change where functions are exported to
+unless implemented with a great deal of care. This can be very awkward
+to deal with.
+
+Accordingly we have introduced a new hash called C<%{^HOOK}> which is
+intended to facilitate such cases. When a keyword supports any kind of
+special hook then the hook will live in this new hash. Hooks in this
+hash will be named after the function they are called by, followed by
+two underbars and then the phase they are executed in, currently either
+before or after the keyword is executed.
+
+In this initial release we support two hooks C<require__before> and
+C<require__after>. These are provided to make it easier to perform tasks
+before and after a require statement.
+
+See L<perlvar> for more details.
+
+=head2 PERL_RAND_SEED
+
+Added a new environment variable C<PERL_RAND_SEED> which can be used to
+cause a perl program which uses C<rand> without using C<srand()>
+explicitly or which uses C<srand()> with no arguments to be repeatable.
+See L<perlrun>. This feature can be disabled at compile time by passing
+
+    -Accflags=-DNO_PERL_RAND_SEED
+
+to F<Configure> during the build process.
+
+=head2 Defined-or and logical-or assignment default expressions in signatures
+
+The default expression for a subroutine signature parameter can now be
+assigned using the C<//=> or C<||=> operators, to apply the defaults whenever
+the caller provided an undefined or false value (respectively), rather than
+simply when the parameter is missing entirely.  For more detail see the
+documentation in L<perlsub>.
+
+=head2 @INC Hook Enhancements and $INC and INCDIR
+
+The internals for C<@INC> hooks have been hardened to handle various
+edge cases and should no longer segfault or throw assert failures when
+hooks modify C<@INC> during a require operation.  As part of this we
+now ensure that any given hook is executed at most once during a require
+call, and that any duplicate directories do not trigger additional
+directory probes.
+
+To provide developers more control over dynamic module lookup, a new hook
+method C<INCDIR> is now supported. An object supporting this method may be
+injected into the C<@INC> array, and when it is encountered in the module
+search process it will be executed, just like how INC hooks are executed,
+and its return value used as a list of directories to search for the
+module. Returning an empty list acts as a no-op. Note that since any
+references returned by this hook will be stringified and used as strings,
+you may not return a hook to be executed later via this API.
+
+When an C<@INC> hook (either C<INC> or C<INCDIR>) is called during
+require, the C<$INC> variable will be localized to be the value of the
+index of C<@INC> that the hook came from. If the hook wishes to override
+what the "next" index in C<@INC> should be it may update C<$INC> to be one
+less than the desired index (C<undef> is equivalent to C<-1>). This
+allows an C<@INC> hook to completely rewrite the C<@INC> array and have
+perl restart its directory probes from the beginning of C<@INC>.
+
+Blessed CODE references in C<@INC> that do not support the C<INC> or
+C<INCDIR> methods will no longer trigger an exception, and instead will
+be treated the same as unblessed coderefs are, and executed as though
+they were an C<INC> hook.
+
+=head2 Forbidden control flow out of C<defer> or C<finally> now detected at compile-time
+
+It is forbidden to attempt to leave a C<defer> or C<finally> block by means
+of control flow such as C<return> or C<goto>. Previous versions of perl could
+only detect this when actually attempted at runtime.
+
+This version of perl adds compile-time detection for many cases that can be
+statically determined. This may mean that code which compiled successfully on
+a previous version of perl is now reported as a compile-time error with this
+one. This only happens in cases where it would have been an error to actually
+execute the code anyway; the error simply happens at an earlier time.
+
+=head2 Optimistic Eval in Patterns
+
+The use of C<(?{ ... })> and C<(??{ ... })> in a pattern disables various
+optimisations globally in that pattern. This may or may not be desired by the
+programmer. This release adds the C<(*{ ... })>
+equivalent. The only difference is that it does not and will never disable
+any optimisations in the regex engine. This may make it more unstable in the
+sense that it may be called more or less times in the future, however the
+number of times it executes will truly match how the regex engine functions.
+For example, certain types of optimisation are disabled when C<(?{ ... })> is
+included in a pattern, so that patterns which are O(N) in normal use become
+O(N*N) with a C<(?{ ... })> pattern in them. Switching to C<(*{ ... })> means
+the pattern will stay O(N).
+
+=head2 REG_INF has been raised from 65,536 to 2,147,483,647
+
+Many regex quantifiers used to be limited to C<U16_MAX> in the past, but are
+now limited to C<I32_MAX>, thus it is now possible to write
+C</(?:word){1000000}/> for example.  Note that doing so may cause the regex
+engine to run longer and use more memory.
+
+=head2 New API functions optimize_optree and finalize_optree
+
+There are two new API functions for operating on optree fragments, ensuring
+you can invoke the required parts of the optree-generation process that might
+otherwise not get invoked (e.g. when creating a custom LOGOP).  To get access
+to these functions, you first need to set a C<#define> to opt-in to using
+these functions.
+
+  #define PERL_USE_VOLATILE_API
+
+These functions are closely tied to the internals of how the interpreter
+works, and could be altered or removed at any time if other internal changes
+make that necessary.
+
+=head2 Some C<goto>s are now permitted in C<defer> and C<finally> blocks
+
+Perl version 5.36.0 added C<defer> blocks and permitted the C<finally> keyword
+to also add similar behaviour to C<try>/C<catch> syntax.  These did not permit
+any C<goto> expression within the body, as it could have caused control flow
+to jump out of the block.  Now, some C<goto> expressions are allowed, if they
+have a constant target label, and that label is found within the block.
+
+  use feature 'defer';
+
+  defer {
+    goto LABEL;
+    print "This does not execute\n";
+    LABEL: print "This does\n";
+  }
+
+=head2 New regexp variable ${^LAST_SUCCESSFUL_PATTERN}
+
+This allows access to the last succesful pattern that matched in the current
+scope.  Many aspects of the regex engine refer to the "last successful
+pattern". The empty pattern reuses it, and all of the magic regex vars relate
+to it. This allows access to its pattern. The following code
+
+    if (m/foo/ || m/bar/) {
+        s//PQR/;
+    }
+
+can be rewritten as follows
+
+    if (m/foo/ || m/bar/) {
+        s/${^LAST_SUCCESSFUL_PATTERN}/PQR/;
+    }
+
+and it will do the exactly same thing.
+
+=head2 Locale category LC_NAME now supported on participating platforms
+
+On platforms that have the GNU extension C<LC_NAME> category, you may now use
+it as the category parameter to L<POSIX/setlocale> to set and query its locale.
+
+=head1 Incompatible Changes
+
+=head2 readline() no longer clears the stream error and eof flags
+
+C<readline()>, also spelled C<< <> >>, would clear the handle's error
+and eof flags after an error occurred on the stream.
+
+In nearly all cases this clear is no longer done, so the error and
+eof flags now properly reflect the status of the stream after
+readline().
+
+Since the error flag is no longer cleared calling close() on the
+stream may fail and if the stream was not explicitly closed, the
+implicit close of the stream may produce a warning.
+
+This has resulted in two main types of problems in downstream CPAN
+modules, and these may also occur in your code:
+
+=over
+
+=item *
+
+If your code reads to end of file, and then rebinds the handle to a
+new file descriptor, previously since the eof flag wasn't set you
+could continue to read from the stream.  You now need to clear the eof
+flag yourself with C<< $handle->clearerr() >> to continue reading.
+
+=item *
+
+If your code encounters an error on the stream while reading with
+readline() you will need to call C<< $handle->clearerr >> to continue
+reading.  The one case this occurred the underlying file descriptor was
+marked non-blocking, so the read() system call was failing with
+C<EAGAIN>, which resulted in the error flag being set on the stream.
+
+=back
+
+The only case where error and eof flags continue to cleared on
+error is when reading from the child process for glob() in
+F<miniperl>.  This allows it to correctly report errors from the child
+process on close().  This is unlikely to be an issue during normal
+perl development.
+
+[L<GH #20060|https://github.com/Perl/perl5/issues/20060>]
+
+=head2 C<INIT> blocks no longer run after an C<exit()> in C<BEGIN>
+
+C<INIT> blocks will no longer run after an C<exit()> performed inside of
+a C<BEGIN>. This means that the combination of the C<-v> option and the
+C<-c> option no longer executes a compile check as well as showing the
+perl version. The C<-v> option executes an exit(0) after printing the
+version information inside of a C<BEGIN> block, and the C<-c> check is
+implemented by using C<INIT> hooks, resulting in the C<-v> option taking
+precedence.
+
+[L<GH #1537|https://github.com/Perl/perl5/issues/1537>]
+[L<GH #20181|https://github.com/Perl/perl5/issues/20181>]
+
+=head2 Syntax errors no longer produce "phantom error messages"
+
+Generally perl will continue parsing the source code even after
+encountering a compile error. In many cases this is helpful, for
+instance with misspelled variable names it is helpful to show as many
+examples of the error as possible. But in the case of syntax errors
+continuing often produces bizarre error messages and may even cause
+segmentation faults during the compile process. In this release the
+compiler will halt at the first syntax error encountered. This means
+that any code expecting to see the specific error messages we used to
+produce will be broken. The error that is emitted will be one of the
+diagnostics that used to be produced, but in some cases some messages
+that used to be produced will no longer be displayed.
+
+See L<Changes to Existing Diagnostics> for more details.
+
+=head2 L<C<utf8::upgrade()>|utf8/Utility functions>
+
+Starting in this release, if the input string is C<undef>, it remains
+C<undef>.  Previously it would be changed into a defined, zero-length
+string.
+
+=head2 Changes to "thread-safe" locales
+
+Perl 5.28 introduced "thread-safe" locales on systems that supported
+them, namely modern Windows, and systems supporting POSIX 2008 locale
+operations.  These systems accomplish this by having per-thread locales,
+while continuing to support the older global locale operations for code
+that doesn't take the steps necessary to use the newer per-thread ones.
+
+It turns out that some POSIX 2008 platforms have or have had buggy
+implementations, which forced perl to not use them.  The
+C<${^SAFE_LOCALES}> scalar variable contains 0 or 1 to indicate whether
+or not the current platform is considered by perl to have a working
+thread-safe implementation.  Some implementations have been fixed
+already, but FreeBSD and Cygwin have been newly discovered to be
+sufficiently buggy that the thread-safe operations are no longer used by
+perl, starting in this release.  Hence, C<${^SAFE_LOCALES}> is now 0 for
+them.  Older versions of perl can be configured to avoid these buggy
+implementations by adding the F<Configure> option
+C<-DNO_POSIX_2008_LOCALE>.
+
+And v5.38 fixes a bug in all previous perls that led to locales not
+being fully thread-safe.  The first thread that finishes caused
+the main thread (named C<thread0>) to revert to the global locale in
+effect at startup, discarding whatever the thread's locale had been
+previously set to.  If any other thread had switched to the global
+locale by calling C<switch_to_global_locale()> in XS code, those threads
+would all share the global locale, and C<thread0> would not be
+thread-safe.
+
+=head1 Deprecations
+
+=head2 Use of C<'> as a package name separator is deprecated
+
+Using C<'> as package separator in a variable named in a double-quoted
+string has warned since 5.28.  It is now deprecated in both string
+interpolation and non-interpolated contexts, and will be removed in
+Perl 5.42.
+
+=head2 Switch and Smart Match operator
+
+The "switch" feature and the smartmatch operator, C<~~>, were introduced in
+v5.10.  Their behavior was significantly changed in v5.10.1.  When the
+"experiment" system was added in v5.18.0, switch and smartmatch were
+retroactively declared experimental.  Over the years, proposals to fix or
+supplement the features have come and gone.
+
+In v5.38.0, we are declaring the experiment a failure.  Some future system may
+take the conceptual place of smartmatch, but it has not yet been designed or
+built.  
+
+These features will be entirely removed from perl in v5.42.0.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+Additional optree optimizations for common OP patterns. For example, multiple
+simple OPs replaced by a single streamlined OP, so as to be more efficient at
+runtime. [L<GH #19943|https://github.com/Perl/perl5/pull/19943>],
+[L<GH #20063|https://github.com/Perl/perl5/pull/20063>],
+[L<GH #20077|https://github.com/Perl/perl5/pull/20077>].
+
+=item *
+
+Creating an anonymous sub no longer generates an C<srefgen> op, the
+reference generation is now done in the C<anoncode> or C<anonconst>
+op, saving runtime. [L<GH #20290|https://github.com/Perl/perl5/pull/20290>]
+
+=back
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+Added the C<is_tainted()> builtin function. [L<GH #19854|https://github.com/Perl/perl5/issues/19854>]
+
+=item *
+
+Added the C<export_lexically()> builtin function as per L<PPC 0020|https://github.com/Perl/PPCs/blob/main/ppcs/ppc0020-lexical-export.md>. [L<GH #19895|https://github.com/Perl/perl5/issues/19895>]
+
+=item *
+
+Support for L<PPC 0018|https://github.com/Perl/PPCs/blob/main/ppcs/ppc0018-module-true.md>, C<use feature "module_true";> has been added to
+the default feature bundle for v5.38 and later. It may also be used
+explicitly. When enabled inside of a module the module does not need
+to return true explicitly, and in fact the return will be forced to
+a simple true value regardless of what it originally was.
+
+=item *
+
+L<Attribute::Handlers> has been upgraded from version 1.02 to 1.03.
+
+=item *
+
+L<attributes> has been upgraded from version 0.34 to 0.35.
+
+=item *
+
+L<autodie> has been upgraded from version 2.34 to 2.36.
+
+=item *
+
+L<B> has been upgraded from version 1.83 to 1.88.
+
+=item *
+
+L<B::Concise> has been upgraded from version 1.006 to 1.007.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.64 to 1.74.
+
+=item *
+
+L<Benchmark> has been upgraded from version 1.23 to 1.24.
+
+=item *
+
+L<bignum> has been upgraded from version 0.65 to 0.66.
+
+=item *
+
+L<Carp> has been upgraded from version 1.52 to 1.54.
+
+=item *
+
+L<Class::Struct> has been upgraded from version 0.66 to 0.68.
+
+=item *
+
+L<Compress::Raw::Bzip2> has been upgraded from version 2.103 to 2.204_001.
+
+=item *
+
+L<Compress::Raw::Zlib> has been upgraded from version 2.105 to 2.204_001.
+
+=item *
+
+L<Config::Perl::V> has been upgraded from version 0.33 to 0.36.
+
+=item *
+
+L<CPAN> has been upgraded from version 2.33 to 2.36.
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.184 to 2.188.
+
+=item *
+
+L<DB_File> has been upgraded from version 1.857 to 1.858.
+
+=item *
+
+L<Devel::Peek> has been upgraded from version 1.32 to 1.33.
+
+=item *
+
+L<Devel::PPPort> has been upgraded from version 3.68 to 3.71.
+
+=item *
+
+L<Digest::MD5> has been upgraded from version 2.58 to 2.58_01.
+
+=item *
+
+L<Digest::SHA> has been upgraded from version 6.02 to 6.04.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.52 to 1.54.
+
+=item *
+
+L<Encode> has been upgraded from version 3.17 to 3.19.
+
+=item *
+
+L<encoding::warnings> has been upgraded from version 0.13 to 0.14.
+
+=item *
+
+L<Env> has been upgraded from version 1.05 to 1.06.
+
+=item *
+
+L<Errno> has been upgraded from version 1.36 to 1.37.
+
+=item *
+
+L<experimental> has been upgraded from version 0.028 to 0.031.
+
+=item *
+
+L<ExtUtils::CBuilder> has been upgraded from version 0.280236 to 0.280238.
+
+=item *
+
+L<ExtUtils::Install> has been upgraded from version 2.20 to 2.22.
+
+=item *
+
+L<ExtUtils::MakeMaker> has been upgraded from version 7.64 to 7.70.
+
+=item *
+
+L<ExtUtils::Miniperl> has been upgraded from version 1.11 to 1.13.
+
+=item *
+
+L<ExtUtils::ParseXS> has been upgraded from version 3.45 to 3.51.
+
+=item *
+
+L<ExtUtils::PL2Bat> has been upgraded from version 0.004 to 0.005.
+
+=item *
+
+L<ExtUtils::Typemaps> has been upgraded from version 3.45 to 3.51.
+
+=item *
+
+L<feature> has been upgraded from version 1.72 to 1.82.
+
+=item *
+
+L<File::Basename> has been upgraded from version 2.85 to 2.86.
+
+=item *
+
+L<File::Copy> has been upgraded from version 2.39 to 2.41.
+
+=item *
+
+L<File::Find> has been upgraded from version 1.40 to 1.43.
+
+=item *
+
+L<File::Glob> has been upgraded from version 1.37 to 1.40.
+
+=item *
+
+L<File::Spec> has been upgraded from version 3.84 to 3.89.
+
+=item *
+
+L<File::stat> has been upgraded from version 1.12 to 1.13.
+
+=item *
+
+L<FileHandle> has been upgraded from version 2.03 to 2.05.
+
+=item *
+
+L<Filter::Util::Call> has been upgraded from version 1.60 to 1.64.
+
+=item *
+
+L<GDBM_File> has been upgraded from version 1.23 to 1.24.
+
+=item *
+
+L<Getopt::Long> has been upgraded from version 2.52 to 2.54.
+
+=item *
+
+L<Hash::Util> has been upgraded from version 0.28 to 0.30.
+
+=item *
+
+L<HTTP::Tiny> has been upgraded from version 0.080 to 0.083.
+
+=item *
+
+L<I18N::Langinfo> has been upgraded from version 0.21 to 0.22.
+
+=item *
+
+L<IO> has been upgraded from version 1.50 to 1.52.
+
+=item *
+
+IO-Compress has been upgraded from version 2.106 to 2.204.
+
+=item *
+
+L<IO::Socket::IP> has been upgraded from version 0.41 to 0.41_01.
+
+On DragonflyBSD, detect setsockopt() not actually clearing
+C<IPV6_V6ONLY> even when setsockopt() returns success.  [L<cpan
+#148293|https://rt.cpan.org/Ticket/Display.html?id=148293>]
+
+=item *
+
+L<IO::Zlib> has been upgraded from version 1.11 to 1.14.
+
+=item *
+
+L<JSON::PP> has been upgraded from version 4.07 to 4.16.
+
+=item *
+
+libnet has been upgraded from version 3.14 to 3.15.
+
+=item *
+
+L<Locale::Maketext> has been upgraded from version 1.31 to 1.33.
+
+=item *
+
+L<Math::BigInt> has been upgraded from version 1.999830 to 1.999837.
+
+=item *
+
+L<Math::BigInt::FastCalc> has been upgraded from version 0.5012 to 0.5013.
+
+=item *
+
+L<Math::BigRat> has been upgraded from version 0.2621 to 0.2624.
+
+=item *
+
+L<Math::Complex> has been upgraded from version 1.5902 to 1.62.
+
+=item *
+
+L<Memoize> has been upgraded from version 1.03_01 to 1.16.
+
+=item *
+
+L<MIME::Base64> has been upgraded from version 3.16 to 3.16_01.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20220520 to 5.20230520.
+
+=item *
+
+L<mro> has been upgraded from version 1.26 to 1.28.
+
+=item *
+
+L<NDBM_File> has been upgraded from version 1.15 to 1.16.
+
+=item *
+
+L<Net::Ping> has been upgraded from version 2.74 to 2.76.
+
+=item *
+
+L<ODBM_File> has been upgraded from version 1.17 to 1.18.
+
+=item *
+
+L<Opcode> has been upgraded from version 1.57 to 1.64.
+
+=item *
+
+L<overload> has been upgraded from version 1.35 to 1.37.
+
+=item *
+
+L<parent> has been upgraded from version 0.238 to 0.241.
+
+=item *
+
+L<PerlIO::via::QuotedPrint> has been upgraded from version 0.09 to 0.10.
+
+=item *
+
+L<Pod::Checker> has been upgraded from version 1.74 to 1.75.
+
+=item *
+
+L<Pod::Html> has been upgraded from version 1.33 to 1.34.
+
+=item *
+
+L<Pod::Usage> has been upgraded from version 2.01 to 2.03.
+
+=item *
+
+L<podlators> has been upgraded from version 4.14 to 5.01.
+
+=item *
+
+L<POSIX> has been upgraded from version 2.03 to 2.13.
+
+=item *
+
+L<re> has been upgraded from version 0.43 to 0.44.
+
+=item *
+
+L<Safe> has been upgraded from version 2.43 to 2.44.
+
+=item *
+
+L<Scalar::Util> has been upgraded from version 1.62 to 1.63.
+
+=item *
+
+L<SDBM_File> has been upgraded from version 1.15 to 1.17.
+
+=item *
+
+L<Socket> has been upgraded from version 2.033 to 2.036.
+
+=item *
+
+L<Storable> has been upgraded from version 3.26 to 3.32.
+
+=item *
+
+L<Sys::Hostname> has been upgraded from version 1.24 to 1.25.
+
+=item *
+
+L<Term::Cap> has been upgraded from version 1.17 to 1.18.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.302190 to 1.302194.
+
+=item *
+
+L<Text::Balanced> has been upgraded from version 2.04 to 2.06.
+
+=item *
+
+L<threads> has been upgraded from version 2.27 to 2.36.
+
+=item *
+
+L<threads::shared> has been upgraded from version 1.64 to 1.68.
+
+=item *
+
+L<Tie::File> has been upgraded from version 1.06 to 1.07.
+
+=item *
+
+L<Time::HiRes> has been upgraded from version 1.9770 to 1.9775.
+
+=item *
+
+L<Time::Piece> has been upgraded from version 1.3401 to 1.3401_01.
+
+=item *
+
+L<Unicode::Normalize> has been upgraded from version 1.31 to 1.32.
+
+=item *
+
+L<UNIVERSAL> has been upgraded from version 1.14 to 1.15.
+
+=item *
+
+L<User::grent> has been upgraded from version 1.03 to 1.04.
+
+=item *
+
+L<User::pwent> has been upgraded from version 1.01 to 1.02.
+
+=item *
+
+L<utf8> has been upgraded from version 1.24 to 1.25.
+
+=item *
+
+L<warnings> has been upgraded from version 1.58 to 1.65.
+
+=item *
+
+L<XS::APItest> has been upgraded from version 1.22 to 1.32.
+
+=item *
+
+L<XSLoader> has been upgraded from version 0.31 to 0.32.
+
+=back
+
+=head1 Documentation
+
+=head2 New Documentation
+
+=head3 L<perlclass>
+
+Describes the new C<class> feature.
+
+=head3 L<perlclassguts>
+
+Describes the internals of the new C<class> feature.
+
+=head2 Changes to Existing Documentation
+
+We have attempted to update the documentation to reflect the changes
+listed in this document.  If you find any we have missed, open an issue
+at L<https://github.com/Perl/perl5/issues>.
+
+Additionally, the following selected changes have been made:
+
+=head3 L<perlapi>
+
+=over 4
+
+=item *
+
+Documented L<C<hv_ksplit>|perlapi/hv_ksplit>
+
+=item *
+
+Documented L<C<hv_name_set>|perlapi/hv_name_set>
+
+=item *
+
+L<C<hv_store>|perlapi/hv_store> and L<C<hv_stores>|perlapi/hv_stores>
+documentation have been greatly improved.
+
+=item *
+
+Documented L<C<gv_autoload_pv>|perlapi/gv_autoload_pv>
+
+=item *
+
+Documented L<C<gv_autoload_pvn>|perlapi/gv_autoload_pvn>
+
+=item *
+
+Documented L<C<gv_autoload_sv>|perlapi/gv_autoload_sv>
+
+=item *
+
+Documented L<C<gv_name_set>|perlapi/gv_name_set>
+
+=item *
+
+Documented L<C<start_subparse>|perlapi/start_subparse>
+
+=item *
+
+Documented L<C<SV_CHECK_THINKFIRST_COW_DROP>|perlapi/SV_CHECK_THINKFIRST_COW_DROP>
+
+=item *
+
+Documented L<C<SV_CHECK_THINKFIRST>|perlapi/SV_CHECK_THINKFIRST>
+
+=item *
+
+Documented L<C<SvPV_shrink_to_cur>|perlapi/SvPV_shrink_to_cur>
+
+=item *
+
+Documented L<C<save_aelem>|perlapi/save_aelem>
+
+=item *
+
+Documented L<C<save_aelem_flags>|perlapi/save_aelem_flags>
+
+=item *
+
+Documented L<C<save_helem>|perlapi/save_helem>
+
+=item *
+
+Documented L<C<save_helem_flags>|perlapi/save_helem_flags>
+
+=back
+
+=head3 L<perldeprecation>
+
+=over 4
+
+=item *
+
+Added information about unscheduled deprecations and their categories.
+
+=item *
+
+Added category information for existing scheduled deprecations.
+
+=item *
+
+Added smartmatch and apostrophe as a package separator deprecation data.
+
+=back
+
+=head3 L<perlintern>
+
+=over 4
+
+=item *
+
+Documented L<C<save_pushptr>|perlintern/save_pushptr>
+
+=item *
+
+Documented L<C<save_scalar_at>|perlintern/save_scalar_at>
+
+=item *
+
+Entries have been added to L<perlguts> for the new C<newAV_alloc_x>, C<newAV_alloc_xz> and
+C<*_simple> functions.
+
+=item *
+
+References to the now-defunct PrePAN service have been removed from
+L<perlcommunity> and L<perlmodstyle>.
+
+=item *
+
+A section on symbol naming has been added to L<perlhacktips>.
+
+=item *
+
+L<perlexperiment> has been edited to properly reference the warning categories
+for the defer block modifier and extra paired delimiters for quote-like
+operators.
+
+=back
+
+=head3 L<perlexperiment>
+
+=over 4
+
+=item *
+
+Smartmatch has been moved from experimental status to deprecated status.
+Unfortunately the experiment did not work out.
+
+=back
+
+=head3 L<perlfunc>
+
+=over 4
+
+=item *
+
+Some wording improvements have been made for the C<ucfirst>, C<push>,
+C<unshift> and C<bless> functions, as well as additional examples added.
+
+=back
+
+=head3 perlhacktips
+
+=over 4
+
+=item *
+
+A new section, L<perlhacktips/Writing safer macros> has been added to discuss
+pitfalls and solutions to using C macros in C and XS code.
+
+=item *
+
+A new section, L<perlhacktips/Choosing good symbol names>, has been added to
+discuss unexpected gotchas with names.
+
+=back
+
+=head3 L<perlop>
+
+=over 4
+
+=item *
+
+Document the behavior of matching the empty pattern better and specify
+its relationship to the new C<${^LAST_SUCCESSFUL_PATTERN}> properly.
+
+=back
+
+=cut
+
+=head3 L<perlvar>
+
+=over 4
+
+=item *
+
+Added a section on "Scoping Rules of Regex Variables", and other wording
+improvements made throughout.
+
+=item *
+
+Added information on the new C<%{^HOOK}> interface, and the new
+C<require__before> and C<require__after> hooks which it exposes.
+
+=item *
+
+Correct information on the regex variables C<${^PREMATCH}>, C<${^MATCH}>
+and C<${^POSTMATCH}>, all of which were incorrectly documented due to an
+oversight. Specifically they only work properly after a regex operation
+that used the /p modifier to enable them.
+
+=item *
+
+Added information on the new regex variable C<${^LAST_SUCCESSFUL_PATTERN}>,
+which represents the pattern of the last successful regex match in scope.
+
+=back
+
+=head1 Diagnostics
+
+The following additions or changes have been made to diagnostic output,
+including warnings and fatal error messages.  For the complete list of
+diagnostic messages, see L<perldiag>.
+
+=head2 New Diagnostics
+
+=head3 New Errors
+
+=over 4
+
+=item *
+
+A new syntax error has been added for the error that a C<catch> block does
+not have its required variable declaration. See
+L<catch block requires a (VAR)|perldiag/"catch block requires a (VAR)">
+
+=item *
+
+L<Too many nested BEGIN blocks, maximum of %d allowed|perldiag/"Too many nested BEGIN blocks, maximum of %d allowed">
+
+=item *
+
+L<Execution of %s aborted due to compilation errors.|perldiag/"Execution of %s aborted due to compilation errors.">
+
+=item *
+
+L<Can't locate object method "INC", nor "INCDIR" nor string overload via
+package "%s" %s in @INC|perldiag/"Can't locate object method "INC", nor
+"INCDIR" nor string overload via package "%s" %s in @INC">
+
+=item *
+
+L<Attempt to bless into a class|perldiag/"Attempt to bless into a class">
+
+(F) You are attempting to call C<bless> with a package name that is a
+new-style C<class>.  This is not necessary, as instances created by the
+constructor are already in the correct class.  Instances cannot be created
+by other means, such as C<bless>.
+
+=item *
+
+L<Cannot assign :param(%s) to field %s because that name is already in use|perldiag/"Cannot assign :param(%s) to field %s because that name is already in use">
+
+(F) An attempt was made to apply a parameter name to a field, when the name
+is already being used by another field in the same class, or one of its
+parent classes. This would cause a name clash so is not allowed.
+
+=item *
+
+L<Cannot create class %s as it already has a non-empty @ISA|perldiag/"Cannot create class %s as it already has a non-empty @ISA">
+
+(F) An attempt was made to create a class out of a package that already has
+an C<@ISA> array, and the array is not empty.  This is not permitted, as it
+would lead to a class with inconsistent inheritance.
+
+=item *
+
+L<Cannot invoke a method of "%s" on an instance of "%s"|perldiag/"Cannot invoke a method of "%s" on
+an instance of "%s"">
+
+(F) You tried to directly call a C<method> subroutine of one class by passing
+in a value that is an instance of a different class.  This is not permitted,
+as the method would not have access to the correct instance fields.
+
+=item *
+
+L<Cannot invoke method on a non-instance|perldiag/"Cannot invoke method on a non-instance">
+
+(F) You tried to directly call a C<method> subroutine of a class by passing
+in a value that is not an instance of that class.  This is not permitted, as
+the method would not then have access to its instance fields.
+
+=item *
+
+L<Cannot '%s' outside of a 'class'|perldiag/"Cannot '%s' outside of a 'class'">
+
+(F) You attempted to use one of the keywords that only makes sense inside
+a C<class> definition, at a location that is not inside such a class.
+
+=item *
+
+L<Cannot reopen existing class "%s"|perldiag/"Cannot reopen existing class "%s"">
+
+(F) You tried to begin a C<class> definition for a class that already exists.
+A class may only have one definition block.
+
+=item *
+
+L<Can't bless an object reference|perldiag/"Can't bless an object reference">
+
+(F) You attempted to call C<bless> on a value that already refers to a real
+object instance.
+
+=item *
+
+L<can't convert empty path|perldiag/"can't convert empty path">
+
+(F) On Cygwin, you called a path conversion function with an empty path.
+Only non-empty paths are legal.
+
+=item *
+
+L<Class already has a superclass, cannot add another|perldiag/"Class already has a superclass, cannot add another">
+
+(F) You attempted to specify a second superclass for a C<class> by using
+the C<:isa> attribute, when one is already specified.  Unlike classes
+whose instances are created with C<bless>, classes created via the
+C<class> keyword cannot have more than one superclass.
+
+=item *
+
+L<Class attribute %s requires a value|perldiag/"Class attribute %s requires a value">
+
+(F) You specified an attribute for a class that would require a value to
+be passed in parentheses, but did not provide one.  Remember that
+whitespace is B<not> permitted between the attribute name and its value;
+you must write this as
+
+    class Example::Class :attr(VALUE) ...
+
+=item *
+
+L<Class :isa attribute requires a class but "%s" is not one|perldiag/"Class :isa attribute requires a class but "%s" is not one">
+
+(F) When creating a subclass using the C<class> C<:isa> attribute, the
+named superclass must also be a real class created using the C<class>
+keyword.
+
+=item *
+
+L<Field already has a parameter name, cannot add another|perldiag/"Field already has a parameter name, cannot add another">
+
+(F) A field may have at most one application of the C<:param> attribute to
+assign a parameter name to it; once applied a second one is not allowed.
+
+=item *
+
+L<Field attribute %s requires a value|perldiag/"Field attribute %s requires a value">
+
+(F) You specified an attribute for a field that would require a value to
+be passed in parentheses, but did not provide one.  Remember that
+whitespace is B<not> permitted between the attribute name and its value;
+you must write this as
+
+    field $var :attr(VALUE) ...
+
+=item *
+
+L<Field %s is not accessible outside a method|perldiag/"Field %s is not accessible outside a method">
+
+(F) An attempt was made to access a field variable of a class from code
+that does not appear inside the body of a C<method> subroutine.  This is not
+permitted, as only methods will have access to the fields of an instance.
+
+=item *
+
+L<Field %s of "%s" is not accessible in a method of "%s"|perldiag/"Field %s of "%s" is not accessible in a method of "%s"">
+
+(F) An attempt was made to access a field variable of a class, from a
+method of another class nested inside the one that actually defined it.
+This is not permitted, as only methods defined by a given class are
+permitted to access fields of that class.
+
+=item *
+
+L<Only scalar fields can take a :param attribute|perldiag/"Only scalar fields can take a :param attribute">
+
+(F) You tried to apply the C<:param> attribute to an array or hash field.
+Currently this is not permitted.
+
+=item *
+
+L<Required parameter '%s' is missing for %s constructor|perldiag/"Required parameter '%s' is missing for %s constructor">
+
+(F) You called the constructor for a class that has a required named
+parameter, but did not pass that parameter at all.
+
+=item *
+
+L<Unexpected characters while parsing class :isa attribute: %s|perldiag/"Unexpected characters while parsing class :isa attribute: %s">
+
+(F) You tried to specify something other than a single class name with an
+optional trailing version number as the value for a C<class> C<:isa>
+attribute.  This confused the parser.
+
+=item *
+
+L<Unrecognized class attribute %s|perldiag/"Unrecognized class attribute %s">
+
+(F) You attempted to add a named attribute to a C<class> definition, but
+perl does not recognise the name of the requested attribute.
+
+=item *
+
+L<Unrecognized field attribute %s|perldiag/"Unrecognized field attribute %s">
+
+(F) You attempted to add a named attribute to a C<field> definition, but
+perl does not recognise the name of the requested attribute.
+
+=item *
+
+L<${^HOOK}{%s} may only be a CODE reference or undef|perldiag/"${^HOOK}{%s} may only be a CODE reference or undef">
+
+=item *
+
+L<Attempt to set unknown hook '%s' in %{^HOOK}|perldiag/"Attempt to set unknown hook '%s' in %{^HOOK}">
+
+=item *
+
+L<Missing or undefined argument to %s via %{^HOOK}{require__before}|perldiag/"Missing or undefined argument to %s via %{^HOOK}{require__before}">
+
+=item *
+
+L<Too many capture groups (limit is %d) in regex mE<sol>%sE<sol>|perldiag/"Too many capture groups (limit is %d) in regex m/%s/">
+
+=back
+
+=head3 New Warnings
+
+=over 4
+
+=item *
+
+L<Unknown locale category %d|perldiag/"Unknown locale category %d">
+
+This is a shortened form of an already existing diagnostic, for use when
+there is no new locale being switched to.  The previous diagnostic was
+misleading in such circumstances.
+
+=item *
+
+L<Locale '%s' is unsupported, and may crash the interpreter.|perldiag/"Locale '%s' is unsupported, and may crash the interpreter.">
+
+=item *
+
+L<Treating %s::INIT block as BEGIN block as workaround|perldiag/"Treating %s::INIT block as BEGIN block as workaround">
+
+=item *
+
+L<Filehandle STD%s reopened as %s only for input|perldiag/"Filehandle STD%s reopened as %s only for input">
+
+=item *
+
+L<%s on BEGIN block ignored|perldiag/"%s on BEGIN block ignored">
+
+=item *
+
+L<ADJUST is experimental|perldiag/"ADJUST is experimental">
+
+(S experimental::class) This warning is emitted if you use the C<ADJUST>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
+=item *
+
+L<class is experimental|perldiag/"class is experimental">
+
+(S experimental::class) This warning is emitted if you use the C<class>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
+=item *
+
+L<Method %s redefined|perldiag/"Method %s redefined">
+
+(W redefine) You redefined a method.  To suppress this warning, say
+
+    {
+       no warnings 'redefine';
+       *name = method { ... };
+    }
+
+=item *
+
+L<Odd number of elements in hash field initialization|perldiag/"Odd number of elements in hash field initialization">
+
+(W misc) You specified an odd number of elements to initialise a hash
+field of an object.  Hashes are initialised from a list of key/value
+pairs so there must be a corresponding value to every key.  The final
+missing value will be filled in with undef instead.
+
+=item *
+
+L<Old package separator "'" deprecated|perldiag/"Old package separator "'" deprecated">
+
+(W deprecated, syntax) You used the old package separator "'" in a
+variable, subroutine or package name.  Support for the old package
+separator will be removed in Perl 5.40.
+
+=item *
+
+L<field is experimental|perldiag/"field is experimental">
+
+(S experimental::class) This warning is emitted if you use the C<field>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
+=item *
+
+L<method is experimental|perldiag/"method is experimental">
+
+(S experimental::class) This warning is emitted if you use the C<method>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
+=item *
+
+L<Can't call destructor for 0x%p in global destruction|perldiag/"Can't call destructor for 0x%p in global destruction">
+
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+The compiler will now stop parsing on the first syntax error it
+encounters. Historically the compiler would attempt to "skip past" the
+error and continue parsing so that it could list multiple errors. For
+things like undeclared variables under strict this makes sense. For
+syntax errors however it has been found that continuing tends to result
+in a storm of unrelated or bizarre errors that mostly just obscure the
+true error. In extreme cases it can even lead to segfaults and other
+incorrect behavior.
+
+Therefore we have reformed the continuation logic so that the parse will
+stop after the first seen syntax error. Semantic errors like undeclared
+variables will not stop the parse, so you may still see multiple errors
+when compiling code. However if there is a syntax error it will be the
+last error message reported by perl and all of the errors that you see
+will be something that actually needs to be fixed.
+
+=item *
+
+Error messages that output class or package names have been modified to
+output double quoted strings with various characters escaped so as to
+make the exact value clear to a reader. The exact rules on which
+characters are escaped may change over time but currently are that
+printable ASCII codepoints, with the exception of C<"> and C<\>, and
+unicode word characters whose codepoint is over 255 are output raw, and
+any other symbols are escaped much as Data::Dumper might escape them,
+using C<\n> for newline and C<\"> for double quotes, etc. Codepoints in
+the range 128-255 are always escaped as they can cause trouble on
+unicode terminals when output raw.
+
+In older versions of perl the one liner
+
+    $ perl -le'"thing\n"->foo()'
+
+would output the following error message exactly as shown here, with
+text spread over multiple lines because the "\n" would be emitted as
+a raw newline character:
+
+    Can't locate object method "foo" via package "thing
+    " (perhaps you forgot to load "thing
+    "?) at -e line 1.
+
+As of this release we would output this instead (as one line):
+
+    Can't locate object method "foo" via package "thing\n"
+      (perhaps you forgot to load "thing\n"?) at -e line 1.
+
+Notice the newline in the package name has been quoted and escaped, and
+thus the error message is a single line. The text is shown here wrapped
+to two lines only for readability.
+
+=item *
+
+When package or class names in errors are very large the middle excess
+portion will be elided from the message. As of this release error messages
+will show only up to the first 128 characters and the last 128 characters
+in a package or class name in error messages. For example
+
+ $ perl -le'("Foo" x 1000)->new()'
+
+will output the following as one line:
+
+ Can't locate object method "new" via package "FooFooFooFooFooFooFoo
+ FooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFoo
+ FooFooFooFooFooFooFooFooFooFooFooFooFooFo"..."oFooFooFooFooFooFooFoo
+ FooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFoo
+ FooFooFooFooFooFooFooFooFooFooFooFooFoo" (perhaps you forgot to load
+ "FooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFoo
+ FooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFo"...
+ "oFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFoo
+ FooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFooFoo"?)
+ at -e line 1.
+
+Notice the C< "prefix"..."suffix" > form of the package name in this case.
+In previous versions of perl the complete string would have been shown
+making the error message over 6k long and there was no upper limit on the
+length of the error message at all. If you accidentally used a 1MB string
+as a class name then the error message would be over 2MB long. In this perl
+the upper limit should be around 2k when eliding and escaping are taken into
+account.
+
+=item *
+
+Removed C<< Complex regular subexpression recursion limit (%d) exceeded >>
+
+The regular expresion engine has not used recursion in some time. This
+warning no longer makes sense.
+
+See [L<GH #19636|https://github.com/Perl/perl5/pull/19636>].
+
+=item *
+
+Various warnings that used to produce parenthesized hints underneath the
+main warning message and after its "location data" were chanaged to put
+the hint inline with the main message. For instance:
+
+ Bareword found where operator expected at -e line 1, near "foo bar"
+     (Do you need to predeclare foo?)
+
+will now look like this but as one line:
+
+ Bareword found where operator expected (Do you need to predeclare
+ foo?) at -e line 1, near "foo bar"
+
+as a result such warnings will no longer trigger C<$SIG{__WARN__}>
+twice, and the hint will be visible when fatal warnings is in effect.
+
+=item *
+
+The error message that is produced when a C<require> or C<use> statement
+fails has been changed. It used to contain the words C<@INC contains:>,
+and it used to show the state of C<@INC> *after* the require had
+completed and failed. The error message has been changed to say C<@INC
+entries checked:> and to reflect the actual directories or hooks that
+were executed during the require statement. For example:
+
+    perl -e'push @INC, sub {@INC=()}; eval "require Frobnitz"
+        or die $@'
+    Can't locate Frobnitz.pm in @INC (you may need to install the
+    Frobnitz module) (@INC contains:) at (eval 1) line 1.
+
+Will change to (with some output elided for clarity):
+
+    perl -e'push @INC, sub {@INC=()}; eval "require Frobnitz"
+        or die $@'
+    Can't locate Frobnitz.pm in @INC (you may need to install the
+    Frobnitz module) (@INC entries checked:
+    .../site_perl/5.38.0/x86_64-linux .../site_perl/5.38.0
+    .../5.38.0/x86_64-linux .../5.38.0 CODE(0x562745e684b8))
+    at (eval 1) line 1.
+
+thus showing the actual directories checked. Code that checks for
+C<@INC contains:> in error messages should be hardened against any future
+wording changes between the C<@INC> and C<:>, for instance use
+C<qr/\@INC[ \w]+:/> instead of using C<qr/\@INC contains:/> or
+C<qr/\@INC entries checked:/> in tests as this will ensure both forward
+and backward compatibility.
+
+=item *
+
+L<Old package separator used in string|perldiag/"Old package separator used in string">
+
+This diagnostic is now also part of the C<deprecated> category.
+
+=item *
+
+L<given is deprecated|perldiag/"given is deprecated"> replaces C<given is experimental>.
+
+=item *
+
+L<when is deprecated|perldiag/"when is deprecated"> replaces C<when is experimental>.
+
+=item *
+
+L<Smartmatch is deprecated|perldiag/"Smartmatch is deprecated"> replaces C<Smartmatch is experimental>.
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+C<make -j6 minitest> could fail due to a build conflict in building
+C<$(MINIPERL_EXE)> between the main make process and a child process.
+[L<GH #19829|https://github.com/Perl/perl5/issues/19829>]
+
+=item *
+
+Properly populate osvers on Dragonfly BSD when the hostname isn't set.
+
+=item *
+
+Fix typos for C99 macro name C<PRIX64>.
+
+=item *
+
+Remove ancient and broken GCC for VMS support
+
+=item *
+
+Remove vestigial reference to C</VAXC> qualifier
+
+=item *
+
+Remove sharedperl option on VMS
+
+=item *
+
+VMS now has mkostemp
+
+=item *
+
+C<Configure> now properly handles quoted elements outputted by gcc.
+[L<GH #20606|https://github.com/Perl/perl5/issues/20606>]
+
+=item *
+
+C<Configure> probed for the return type of malloc() and free() by
+testing whether declarations for those functions produced a function
+type mismatch with the implementation.  On Solaris, with a C++
+compiler, this check always failed, since Solaris instead imports
+malloc() and free() from C<std::> with C<using> for C++ builds.  Since
+the return types of malloc() and free() are well defined by the C
+standard, skip probing for them.  C<Configure> command-line arguments
+and hints can still override these type in the unlikely case that is
+needed.  [L<GH #20806|https://github.com/Perl/perl5/issues/20806>]
+
+=back
+
+=head1 Testing
+
+Tests were added and changed to reflect the other additions and
+changes in this release.  Furthermore, these significant changes were
+made:
+
+=over 4
+
+=item *
+
+Unicode normalization tests have been added.
+
+=item *
+
+t/test.pl: Add ability to cancel an watchdog timer
+
+=back
+
+=head1 Platform Support
+
+=head2 Discontinued Platforms
+
+=over 4
+
+=item Ultrix
+
+Support code for DEC Ultrix has been removed.  Ultrix was the native
+Unix-like operating system for various Digital Equipment Corporation
+machines.  Its final release was in 1995.
+
+=back
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item DragonflyBSD
+
+Skip tests to workaround an apparent bug in C<setproctitle()>.
+[L<GH #19894|https://github.com/Perl/perl5/issues/19894>]
+
+=item FreeBSD
+
+FreeBSD no longer uses thread-safe locale operations, to avoid L<a bug in
+FreeBSD|https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265950>
+
+Replace the first part of archname with C<uname -p>
+[L<GH #19791|https://github.com/Perl/perl5/issues/19791>]
+
+=item Solaris
+
+Avoid some compiler and compilation issues on NetBSD/Solaris from regexec.c and regcomp.c.
+
+=item Synology
+
+Update Synology Readme for DSM 7.
+
+=item Windows
+
+Fix win32 memory alignment needed for gcc-12 from vmem.h.
+
+utimes() on Win32 would print a message to stderr if it failed to
+convert a supplied C<time_t> to to a C<FILETIME>.
+[L<GH #19668|https://github.com/Perl/perl5/issues/19668>]
+
+In some cases, timestamps returned by L<stat()|perlfunc/stat> and
+L<lstat()|perlfunc/lstat> failed to take daylight saving time into account.
+[L<GH #20018|https://github.com/Perl/perl5/issues/20018>]
+[L<GH #20061|https://github.com/Perl/perl5/issues/20061>]
+
+stat() now works on C<AF_UNIX> socket files.
+[L<GH #20204|https://github.com/Perl/perl5/issues/20204>]
+
+readlink() now returns the C<PrintName> from a symbolic link reparse
+point instead of the C<SubstituteName>, which should make it better
+match the name the link was created with.
+[L<GH #20271|https://github.com/Perl/perl5/pull/20271>]
+
+lstat() on Windows now returns the length of the link target as the
+size of the file, as it does on POSIX systems.
+[L<GH #20476|https://github.com/Perl/perl5/issues/20476>]
+
+symlink() on Windows now replaces any C</> in the target with C<\>,
+since Windows does not recognise C</> in symbolic links.  The reverse
+translation is B<not> done by readlink().
+[L<GH #20506|https://github.com/Perl/perl5/issues/20506>]
+
+symlink() where the target was an absolute path to a directory was
+incorrectly created as a file symbolic link.
+[L<GH #20533|https://github.com/Perl/perl5/issues/20533>]
+
+C<POSIX::dup2> no longer creates broken sockets. [L<GH
+#20920|https://github.com/Perl/perl5/issues/20920>]
+
+Closing a busy pipe could cause Perl to hang. [L<GH
+#19963|https://github.com/Perl/perl5/issues/19963>]
+
+=back
+
+=head1 Internal Changes
+
+=over 4
+
+=item *
+
+Removed many deprecated C functions.
+
+These have been deprecated for a long time. See
+L<https://github.com/perl/perl5/commit/7008caa915ad99e650acf2aea40612b5e48b7ba2>
+for a full list.
+
+=item *
+
+C<get_op_descs>, C<get_op_names>, C<get_opargs>, C<get_no_modify> and
+C<get_ppaddr> have been marked deprecated.
+
+=item *
+
+C<hv_free_ent> has been marked as internal API.
+
+=item *
+
+C<save_pushptr>, C<save_pushptrptr>, and C<save_pushi32ptr> have been marked
+as internal API.
+
+=item *
+
+New bool related functions and macros have been added to complement the new
+bool type introduced in 5.36:
+
+The functions are:
+
+=over 4
+
+=item L<C<newSVbool(const bool bool_val)>|perlapi/newSVbool>
+
+=item L<C<newSV_true()>|perlapi/newSV_true>
+
+=item L<C<newSV_false()>|perlapi/newSV_false>
+
+=item L<C<sv_set_true(SV *sv)>|perlapi/sv_set_true>
+
+=item L<C<sv_set_false(SV *sv)>|perlapi/sv_set_false>
+
+=item L<C<sv_set_bool(SV *sv, const bool bool_val)>|perlapi/sv_set_bool>
+
+=back
+
+The macros are:
+
+=over 4
+
+=item L<C<SvIandPOK(sv)>|perlapi/SvIandPOK>
+
+=item L<C<SvIandPOK_off(sv)>|perlapi/SvIandPOK_off>
+
+=item L<C<SvIandPOK_on>|perlapi/SvIandPOK_on>
+
+=back
+
+=item *
+
+Perl is no longer manipulating the C<environ> array directly. The variable
+C<PL_use_safe_putenv> has been removed and C<PERL_USE_SAFE_PUTENV> is always
+defined. This means XS modules can now call C<setenv> and C<putenv> without
+causing segfaults. [L<perl #19399|https://github.com/Perl/perl5/issues/19399>]
+
+=item *
+
+Internal C API functions are now hidden with C<__attribute__((hidden))> on the
+platforms that support it. This means they are no longer callable from XS
+modules on those platforms.
+
+It should be noted that those functions have always been hidden on Windows. This
+change merely brings that to the other platforms.
+[L<perl #19655|https://github.com/Perl/perl5/pull/19655>]
+
+=item *
+
+New formatting symbols were added for printing values declared as C<U32> or
+C<I32>:
+
+=over
+
+=item I32df -- Like %d
+
+=item U32of -- Like %o
+
+=item U32uf -- Like %u
+
+=item U32xf -- Like %x
+
+=item U32Xf -- Like %X
+
+=back
+
+These are used in the same way already existing similar symbols, such as
+C<IVdf>, are used.  See L<perlapi/I/O Formats>.
+
+=item *
+
+new 'HvHasAUX' macro
+
+=item *
+
+regexec.c: Add some branch predictions reorder conds
+
+=item *
+
+locale: Change macro name to be C conformant
+
+=item *
+
+Rename the C<PADNAMEt_*> constants to C<PADNAMEf_*>
+
+=item *
+
+Changes all the API macros that retrieve a PV into a call to an
+inline function so as to evaluate the parameter just once.
+
+=item *
+
+regexec.c: multiple code refactor to make the code more readable
+
+=item *
+
+perl.h: Change macro name to be C conformant
+(remove leading _ from NOT_IN_NUMERIC macros)
+
+=item *
+
+regcomp.h: add new C<BITMAP_BIT> macro in addition to the existing C<BITMAP_BYTE>
+and C<BITMAP_TEST> ones.
+
+=item *
+
+Create new regnode type ANYOFH.
+populate_ANYOF_from_invlist was renamed to populate_bitmap_from_invlist
+
+=item *
+
+regex: Refactor bitmap vs non-bitmap of qr/[]/
+
+=item *
+
+regcomp.c: add new functions to convert from an inversion list to a bitmap (and vice versa)
+C<populate_bitmap_from_invlist> and C<populate_invlist_from_bitmap>.
+
+=item *
+
+Add C<newAVav()> to create an AV from an existing AV.
+Add C<newAVhv()> to create an AV using keys and values from an existing HV.
+
+=item *
+
+Fix definition of C<Perl_atof>.
+
+=item *
+
+Fix undefined behavior with overflow related C<OPTIMIZE_INFTY> and delta
+in F<regcomp.c>.
+
+=item *
+
+Fix regnode pointer alignment issue in F<regcomp.h>.
+
+=item *
+
+The C<CVf_METHOD> CV flag and associated C<CvMETHOD> macro has been renamed to
+C<CVf_NOWARN_AMBIGUOUS> and C<CvNOWARN_AMBIGUOUS>. This closer reflects its
+actual behaviour (it suppresses a warning that would otherwise be generated
+about ambiguous names), in order to be less confusing with C<CvIsMETHOD>,
+which indicates that a CV is a C<method> subroutine relating to the C<class>
+feature.
+
+=item *
+
+The C<OPf_SPECIAL> flag is no longer set on the C<OP_ENTERSUB> op
+constructed to call the C<VERSION>, C<import> and C<unimport> methods
+as part of a C<use> statement and attribute application, nor when
+assigning to an C<:lvalue> subroutine.
+
+=item *
+
+A new CV flag C<CVf_REFCOUNTED_ANYSV> has been added, which indicates that the
+CV is an XSUB and stores an SV pointer in the C<CvXSUBANY.any_sv> union field.
+Perl core operations such as cloning or destroying the CV will maintain the
+reference count of the pointed-to SV, destroying it when required.
+
+=item *
+
+A new API function L<perlapi/C<Perl_localeconv>> is added.  This is the
+same as L<C<POSIX::localeconv>|POSIX/localeconv> (returning a hash of
+the C<localeconv()> fields), but directly callable from XS code.
+
+=item *
+
+A new API function, L<perlapi/C<Perl_langinfo8>> is added.  This is the
+same as plain L<perlapi/C<Perl_langinfo>>, but with an extra parameter
+that allows the caller to simply and reliably know if the returned
+string is UTF-8.
+
+=item *
+
+We have introduced a limit on the number of nested C<eval EXPR>/C<BEGIN>
+blocks and C<require>/C<BEGIN> (and thus C<use> statements as well) to
+prevent C stack overflows. This variable can also be used to forbid
+C<BEGIN> blocks from executing during C<eval EXPR> compilation. The
+limit defaults to C<1000> but can be overridden by setting the
+C<${^MAX_NESTED_EVAL_BEGIN_BLOCKS}> variable. The default itself can be
+changed at compile time with
+
+    -Accflags='-DPERL_MAX_NESTED_EVAL_BEGIN_BLOCKS_DEFAULT=12345'
+
+Note that this value relates to the size of your C stack and if you
+choose an inappropriately large value Perl may segfault, be conservative
+about what you choose.
+
+=item *
+
+A new magic type C<PERL_MAGIC_extvalue> has been added. This is available for
+use like C<PERL_MAGIC_ext>, but is a value magic: upon localization the new
+value will not be magical.
+
+=item *
+
+The C<SSNEW()>, C<SSNEWt()>, C<SSNEWa()> and C<SSNEWat()> APIs now
+return a C<SSize_t> value.  The C<SSPTR()> and C<SSPTRt()> macros now
+expect a C<SSize_t> parameter, and enforce that on debugging builds.
+[L<GH #20411|https://github.com/Perl/perl5/issues/20411>]
+
+=item *
+
+Filenames in cops are now refcounted under threads.
+Under threads we were copying the filenames into each opcode. This is because in
+theory opcodes created in one thread can be destroyed in another.
+The change adds a new struct/type C<RCPV>, which is a refcounted
+string using shared memory. This is implemented in such a way that code
+that previously used a char * can continue to do so, as the refcounting
+data is located a specific offset before the char * pointer itself.
+
+=item *
+
+Added C<HvNAMEf> and C<HvNAMEf_QUOTEDPREFIX> special formats. They take an
+C<HV *> as an argument and use C<HvNAME()> and related macros to determine the
+string, its length, and whether it is utf8.
+
+=item *
+
+The underlying C<Perl_dowantarray> function implementing the
+long-deprecated L<C<GIMME>|perlapi/GIMME> macro has been marked as
+deprecated, so that use of the macro emits a compile-time warning.
+C<GIMME> has been documented as deprecated in favour of
+L<C<GIMME_V>|perlapi/GIMME_V> since Perl v5.6.0, but had not
+previously issued a warning.
+
+=item *
+
+The API function L<perlapi/utf8_length> is now more efficient.
+
+=item *
+
+Added C<SAVERCPV()> and C<SAVEFREERCPV()> for better support for working
+with C<RCPV> (reference counted string/pointer value) structures which
+currently are used in opcodes to share filename and warning bit data in
+a memory efficient manner.
+
+=item *
+
+Added C<MORTALSVFUNC_SV()> and C<MORTALDESTRUCTOR_SV()> macros, which
+make it possible to create a destructor which is fired at the end of
+the current statement. This uses the C<PERL_MAGIC_destruct> magic to
+use "free" magic to trigger an action when a variable is freed. The
+action can be specified as a C function or as a Perl code reference.
+
+=item *
+
+Added the C<%{^HOOK}> api and related C<PERL_MAGIC_hook> and
+C<PERL_MAGIC_hookelem> for providing ways to hook selected perl functions
+which for one reason or another are problematic to wrap with a customized
+subroutine.
+
+=item *
+
+Added support for C<${^HOOK}{require__before}> which can be used to
+rewrite the filename that C<require> will try to load, and also to block
+C<require> from loading a specific module, even via fully qualified
+filename. The hook can also be used to perform "pre-require" and
+"post-require" actions.
+
+=item *
+
+Added support for C<${^HOOK}{require__after}> which can be used to
+track what modules have been required after the fact.
+
+=item *
+
+Regular expression opcodes (regops) now use a standardized structure
+layout that uses unions to expose data in different format. This means
+it should be much easier to extend or modify regops to use more memory.
+This has been used to make a number of regops track how many parens
+they contain.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+Avoid recursion and stack overflow parsing 'pack' template
+
+[L<GH #16319|https://github.com/Perl/perl5/issues/16319>]
+
+=item *
+
+An eval() as the last statement in a regex code block could trigger an
+interpreter panic; e.g.
+
+    /(?{ ...; eval {....}; })/
+
+[L<GH #19680|https://github.com/Perl/perl5/issues/19680>]
+
+=item *
+
+Disabling the C<bareword_filehandles> feature no longer treats C<< print
+Class->method >> as an error.  [L<GH #19704|https://github.com/Perl/perl5/issues/19704>]
+
+=item *
+
+When a Perl subroutine tail-calls an XS subroutine using C<goto &xs_sub>,
+the XS subroutine can now correctly determine its calling context.
+Previously it was always reported as scalar.
+
+In addition, where the Perl subroutine is freed at the same time:
+
+    sub foo { *foo = sub {}; goto &xs_sub }
+
+this formerly could lead to crashes if the XS subroutine tried to use the
+value of C<PL_op>, since this was being set to NULL. This is now fixed.
+
+[L<GH #19936|https://github.com/Perl/perl5/issues/19936>]
+
+=item *
+
+setsockopt() now uses the mechanism added in 5.36 to better
+distinguish between numeric and string values supplied as the
+C<OPTVAL> parameter.  [L<GH #18761|https://github.com/Perl/perl5/issues/18761>]
+
+=item *
+
+4-argument C<select()> now rejects strings with code points above
+255. Additionally, for code points 128-255, this operator will now always
+give the corresponding octet to the OS, regardless of how Perl stores
+such code points in memory. (Previously Perl leaked its internal string
+storage to the OS.) [L<GH #19882|https://github.com/Perl/perl5/issues/19882>]
+
+=item *
+
+Fix panic issue from C<val {} inside /(?{...})/> [L<GH #19390|https://github.com/Perl/perl5/issues/19390>]
+
+=item *
+
+Fix multiple compiler warnings from F<regexp.c>, F<locale.c>
+[L<GH #19915|https://github.com/Perl/perl5/issues/19915>]
+
+=item *
+
+Fix a bug with querying locales on platforms that don't have C<LC_NUMERIC>
+[L<GH #19890|https://github.com/Perl/perl5/issues/19890>]
+
+=item *
+
+Prevent undefined behaviour in C<S_maybe_multideref()>.
+
+=item *
+
+Avoid signed integer overflow in C<use integer> ops.
+
+=item *
+
+Avoid adding an offset to a NULL pointer in C<hv_delete_common>.
+
+=item *
+
+PerlIO::get_layers will now accept IO references too
+
+Previously it would only take glob references or names of globs. Now it will
+also accept IO references.
+
+=item *
+
+Fixes to memory handling for C<PL_splitstr>:
+
+=over
+
+=item *
+
+If a thread was created the allocated string would be freed twice.
+
+=item *
+
+If two C<-F> switches were supplied the memory allocated for the first
+switch wouldn't be freed.
+
+=back
+
+=item *
+
+Correctly handle C<OP_ANONCODE> ops generated by CPAN modules that
+don't include the OPf_REF flag when propagating lvalue context.
+[L<GH #20532|https://github.com/Perl/perl5/pull/20532>]
+
+=item *
+
+L<POSIX::strxfrm|POSIX/strxfrm> now uses the C<LC_CTYPE> locale category
+to specify its collation, ignoring any differing C<LC_COLLATE>.  It
+doesn't make sense for a string to be encoded in one locale (say,
+ISO-8859-6, Arabic) and to collate it based on another (like ISO-8859-7,
+Greek).  Perl assumes that the current C<LC_CTYPE> locale correctly
+represents the encoding, and collates accordingly.
+
+Also, embedded C<NUL> characters are now allowed in the input.
+
+If locale collation is not enabled on the platform (C<LC_COLLATE>), the
+input is returned unchanged.
+
+=item *
+
+Double FETCH during stringification of tied scalars returning an
+overloaded object have been fixed. The FETCH method should only be
+called once, but prior to this release was actually called twice.
+[L<GH #20574|https://github.com/Perl/perl5/pull/20574>]
+
+=item *
+
+Writing to a magic variables associated with the selected output
+handle, C<$^>, C<$~>, C<$=>, C<$-> and C<$%>, no longer crashes perl
+if the IO object has been cleared from the selected output
+handle. [L<GH #20733|https://github.com/Perl/perl5/issues/20733>]
+
+=item *
+
+Redefining a C<use constant> list constant with C<use constant> now
+properly warns.  This changes the behaviour of C<use constant> but is
+a core change, not a change to F<constant.pm>.  [L<GH #20742|https://github.com/Perl/perl5/issues/20742>]
+
+=item *
+
+Redefining a C<use constant> list constant with an empty prototype
+constant sub would result in an assertion failure.  [L<GH #20742|https://github.com/Perl/perl5/issues/20742>]
+
+=item *
+
+Fixed a regression where the C<INC> method for objects in C<@INC>
+would not be resolved by C<AUTOLOAD>, while it was in 5.36.  The
+C<INCDIR> method for objects in C<@INC> cannot be resolved by
+C<AUTOLOAD> as C<INC> would have been resolved first.  [L<GH #20665|https://github.com/Perl/perl5/issues/20665>]
+
+=item *
+
+C<$SIG{__DIE__}> will now be called from eval when the code dies during
+compilation regardless of how it dies. This means that code expecting to
+be able to upgrade C<$@> into an object will be called consistently. In
+earlier versions of perl C<$SIG{__DIE__}> would not be called for
+certain compilation errors, for instance undeclared variables. For other
+errors it might be called if there were more than a certain number of
+errors, but not if there were less. Now you can expect that it will be
+called in every case.
+
+=item *
+
+Compilation of code with errors used to inconsistently stop depending on
+the count and type of errors encountered. The intent was that after 10
+errors compilation would halt, but bugs in this logic meant that certain
+types of error would be counted, but would not trigger the threshold
+check to stop compilation. Other errors would. With this release after
+at most 10 errors compilation will terminate, regardless of what type of
+error they were.
+
+Note that you can change the maximum count by defining
+C<PERL_STOP_PARSING_AFTER_N_ERRORS> to be something else during the
+configuration process. For instance
+
+    ./Configure ... -Accflags='-DPERL_STOP_PARSING_AFTER_N_ERRORS=100'
+
+would allow up to 100 errors.
+
+=item *
+
+The API function L<perlapi/my_snprintf> now prints a non-dot decimal
+point if the perl code it ultimately is called from is in the scope of
+C<use locale> and the locale in effect calls for that.
+
+=item *
+
+A number of bugs related to capture groups in quantified groups in regular
+expression have been fixed, especially in alternations. For example in
+a pattern like:
+
+	"foobazfoobar" =~ /((foo)baz|foo(bar))+/
+
+the regex variable C<$2> will not be "foo" as it once was, it will be undef.
+
+=item *
+
+Bugs with regex backreference operators that are inside of a capture
+group have been fixed. For instance:
+
+    "xa=xaaa" =~ /^(xa|=?\1a){2}\z/
+
+will now correctly not match. [L<GH #10073|https://github.com/Perl/perl5/issues/10073>]
+
+=item *
+
+C<SSGROW()> and C<SSCHECK()> have been reworked to ensure that the requested
+space is actually allocated. C<SSCHECK()> is now an alias for C<SSGROW()>.
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.38.0 represents approximately 12 months of development since Perl
+5.36.0 and contains approximately 290,000 lines of changes across 1,500
+files from 100 authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 190,000 lines of changes to 970 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its fourth decade thanks to a vibrant
+community of users and developers. The following people are known to have
+contributed the improvements that became Perl 5.38.0:
+
+Alex, Alexander Nikolov, Alex Davies, Andreas König, Andrew Fresh, Andrew
+Ruthven, Andy Lester, Aristotle Pagaltzis, Arne Johannessen, A. Sinan Unur,
+Bartosz Jarzyna, Bart Van Assche, Benjamin Smith, Bram, Branislav
+Zahradník, Brian Greenfield, Bruce Gray, Chad Granum, Chris 'BinGOs'
+Williams, chromatic, Clemens Wasser, Craig A. Berry, Dagfinn Ilmari
+Mannsåker, Dan Book, danielnachun, Dan Jacobson, Dan Kogai, David Cantrell,
+David Golden, David Mitchell, E. Choroba, Ed J, Ed Sabol, Elvin Aslanov,
+Eric Herman, Felipe Gasper, Ferenc Erki, Firas Khalil Khana, Florian Weimer,
+Graham Knop, Håkon Hægland, Harald Jörg, H.Merijn Brand, Hugo van der
+Sanden, James E Keenan, James Raspass, jkahrman, Joe McMahon, Johan Vromans,
+Jonathan Stowe, Jon Gentle, Karen Etheridge, Karl Williamson, Kenichi
+Ishigaki, Kenneth Ölwing, Kurt Fitzner, Leon Timmermans, Li Linjie, Loren
+Merritt, Lukas Mai, Marcel Telka, Mark Jason Dominus, Mark Shelor, Matthew
+Horsfall, Matthew O. Persico, Mattia Barbon, Max Maischein, Mohammad S
+Anwar, Nathan Mills, Neil Bowers, Nicholas Clark, Nicolas Mendoza, Nicolas
+R, Paul Evans, Paul Marquess, Peter John Acklam, Peter Levine, Philippe
+Bruhat (BooK), Reini Urban, Renee Baecker, Ricardo Signes, Richard Leach,
+Russ Allbery, Scott Baker, Sevan Janiyan, Sidney Markowitz, Sisyphus, Steve
+Hay, TAKAI Kousuke, Todd Rinaldo, Tomasz Konojacki, Tom Stellard, Tony Cook,
+Tsuyoshi Watanabe, Unicode Consortium, vsfos, Yves Orton, Zakariyya Mughal,
+Zefram, 小鸡.
+
+The list above is almost certainly incomplete as it is automatically
+generated from version control history. In particular, it does not include
+the names of the (very much appreciated) contributors who reported issues to
+the Perl bug tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please
+see the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the perl bug database
+at L<https://github.com/Perl/perl5/issues>.  There may also be information at
+L<http://www.perl.org/>, the Perl Home Page.
+
+If you believe you have an unreported bug, please open an issue at
+L<https://github.com/Perl/perl5/issues>.  Be sure to trim your bug down to a
+tiny but sufficient test case.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a public issue tracker, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 Give Thanks
+
+If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
+you can do so by running the C<perlthanks> program:
+
+    perlthanks
+
+This will send an email to the Perl 5 Porters list with your show of thanks.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
Index: gnu/usr.bin/perl/pod/perl5381delta.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perl5381delta.pod
diff -N gnu/usr.bin/perl/pod/perl5381delta.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perl5381delta.pod	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,109 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5381delta - what is new for perl v5.38.1
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.38.0 release and the 5.38.1
+release.
+
+If you are upgrading from an earlier release such as 5.37.0, first read
+L<perl5380delta>, which describes differences between 5.37.0 and 5.38.0.
+
+=head1 Security
+
+This release fixes the following security issues. 
+
+=head2 CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property
+
+This vulnerability was reported directly to the Perl security team by
+Nathan Mills C<the.true.nathan.mills@gmail.com>.
+
+A crafted regular expression when compiled by perl 5.30.0 through
+5.38.0 can cause a one-byte attacker controlled buffer overflow in a
+heap allocated buffer.
+
+=head2 CVE-2023-47039 - Perl for Windows binary hijacking vulnerability
+
+This vulnerability was reported to the Intel Product Security Incident
+Response Team (PSIRT) by GitHub user ycdxsb
+L<https://github.com/ycdxsb/WindowsPrivilegeEscalation>. PSIRT then
+reported it to the Perl security team.
+
+Perl for Windows relies on the system path environment variable to
+find the shell (C<cmd.exe>). When running an executable which uses
+Windows Perl interpreter, Perl attempts to find and execute C<cmd.exe>
+within the operating system. However, due to path search order issues,
+Perl initially looks for cmd.exe in the current working directory.
+
+An attacker with limited privileges can exploit this behavior by
+placing C<cmd.exe> in locations with weak permissions, such as
+C<C:\ProgramData>. By doing so, when an administrator attempts to use
+this executable from these compromised locations, arbitrary code can
+be executed.
+
+=head1 Acknowledgements
+
+Perl 5.38.1 represents approximately 5 months of development since Perl
+5.38.0 and contains approximately 6,100 lines of changes across 34 files
+from 4 authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 1,300 lines of changes to 9 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its fourth decade thanks to a vibrant
+community of users and developers. The following people are known to have
+contributed the improvements that became Perl 5.38.1:
+
+Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
+
+The list above is almost certainly incomplete as it is automatically
+generated from version control history. In particular, it does not include
+the names of the (very much appreciated) contributors who reported issues to
+the Perl bug tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please
+see the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the perl bug database
+at L<https://github.com/Perl/perl5/issues>.  There may also be information at
+L<http://www.perl.org/>, the Perl Home Page.
+
+If you believe you have an unreported bug, please open an issue at
+L<https://github.com/Perl/perl5/issues>.  Be sure to trim your bug down to a
+tiny but sufficient test case.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a public issue tracker, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 Give Thanks
+
+If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
+you can do so by running the C<perlthanks> program:
+
+    perlthanks
+
+This will send an email to the Perl 5 Porters list with your show of thanks.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
Index: gnu/usr.bin/perl/pod/perlapio.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlapio.pod,v
diff -u -p -a -u -p -r1.13 perlapio.pod
--- gnu/usr.bin/perl/pod/perlapio.pod	15 Feb 2023 01:36:35 -0000	1.13
+++ gnu/usr.bin/perl/pod/perlapio.pod	21 Feb 2024 15:47:03 -0000
@@ -89,10 +89,10 @@ perlapio - perl's IO abstraction interfa
 =for apidoc_item  |         |PerlIO_flush
 =for apidoc_item  |         |PerlIO_get_base
 =for apidoc_item  |         |PerlIO_get_bufsiz
-=for apidoc_item T|int      |PerlIO_getc|PerlIO *d
 =for apidoc_item  |         |PerlIO_get_cnt
-=for apidoc_item T|int      |PerlIO_getpos|PerlIO *f|SV *save
 =for apidoc_item  |         |PerlIO_get_ptr
+=for apidoc_item T|int      |PerlIO_getc|PerlIO *d
+=for apidoc_item T|int      |PerlIO_getpos|PerlIO *f|SV *save
 =for apidoc_item T|int      |PerlIO_has_base|PerlIO *f
 =for apidoc_item T|int      |PerlIO_has_cntptr|PerlIO *f
 =for apidoc_item T|PerlIO * |PerlIO_importFILE|FILE *stdio|const char *mode
@@ -106,9 +106,9 @@ perlapio - perl's IO abstraction interfa
 =for apidoc_item T|void     |PerlIO_rewind|PerlIO *f
 =for apidoc_item  |         |PerlIO_seek
 =for apidoc_item  |         |PerlIO_set_cnt
+=for apidoc_item  |         |PerlIO_set_ptrcnt
 =for apidoc_item  |         |PerlIO_setlinebuf
 =for apidoc_item T|int      |PerlIO_setpos|PerlIO *f|SV *saved
-=for apidoc_item  |         |PerlIO_set_ptrcnt
 =for apidoc_item  |         |PerlIO_stderr
 =for apidoc_item  |         |PerlIO_stdin
 =for apidoc_item  |         |PerlIO_stdout
Index: gnu/usr.bin/perl/pod/perlclass.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perlclass.pod
diff -N gnu/usr.bin/perl/pod/perlclass.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perlclass.pod	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,310 @@
+=head1 NAME
+
+perlclass - Perl class syntax reference
+
+=head1 SYNOPSIS
+
+    use v5.38;
+    use feature 'class';
+
+    class My::Example 1.234 {
+        field $x;
+
+        ADJUST {
+            $x = "Hello, world";
+        }
+
+        method print_message {
+            say $x;
+        }
+    }
+
+    My::Example->new->print_message;
+
+=head1 DESCRIPTION
+
+This document describes the syntax of the Perl's C<class> feature, which
+provides native keywords supporting object-oriented programming paradigm.
+
+=head2 History
+
+Since Perl 5, support for objects revolved around the concept of I<blessing>
+references with a package name. Such reference could then be used to call
+subroutines from the package it was blessed with (or any of its parents). This
+system, while bare-bones, was flexible enough to allow creation of multiple
+more advanced, community-driven systems for object orientation.
+
+Class feature is a core implementation of class syntax which is familiar to
+what one would find in other programming languages. It isn't a C<bless>
+wrapper, but a completely new system built right into the perl interpreter.
+
+=head1 KEYWORDS
+
+Enabling the C<class> feature allows the usage of the following new keywords in
+the scope of current package:
+
+=head2 class
+
+    class NAME BLOCK
+
+    class NAME VERSION BLOCK
+
+    class NAME;
+
+    class NAME VERSION;
+
+The C<class> keyword declares a new package which is intended to be a class.
+All other keywords from the C<class> feature should be used in scope of this
+declaration.
+
+    class WithVersion 1.000 {
+        # class definition goes here
+    }
+
+Classes can be declared in either block or statement syntax. If a block is
+used, the body of the block contains the implementation of the class. If the
+statement form is used, the remainder of the file is used up until the next
+C<class> or C<package> statement.
+
+C<class> and C<package> declarations are similar, but classes automatically get
+a constructor named C<new> - You don't have to (and should not) write one.
+Additionally, in the class BLOCK you are allowed to declare fields and methods.
+
+=head2 field
+
+    field VARIABLE_NAME;
+
+    field VARIABLE_NAME = EXPR;
+
+    field VARIABLE_NAME : ATTRIBUTES;
+
+    field VARIABLE_NAME : ATTRIBUTES = EXPR;
+
+Fields are variables which are visible in the scope of the class - more
+specifically within L</method> and C<ADJUST> blocks. Each class instance get
+their own storage of fields, independent of each other.
+
+A field behaves like a normal lexically scoped variable. It has a sigil and is
+private to the class (though creation of an accessor method will make it
+accessible from the outside). The main difference is that different instances
+access different values in the same scope.
+
+    class WithFields {
+        field $scalar = 42;
+        field @array  = qw(this is just an array);
+        field %hash   = (species => 'Martian', planet => 'Mars');
+    }
+
+Fields may optionally have initializing expressions. If present, the expression
+will be evaluated within the constructor of each object instance. During each
+evaluation, the expression can use the value of any previously-set field, as
+well as see any other variables in scope.
+
+    class WithACounter {
+        my $next_count = 1;
+        field $count = $next_count++;
+    }
+
+When combined with the C<:param> field attribute, the defaulting expression can
+use any of the C<=>, C<//=> or C<||=> operators. Expressions using C<=> will
+apply whenever the caller did not pass the corresponding parameter to the
+constructor at all. Expressions using C<//=> will also apply if the caller did
+pass the parameter but the value was undefined, and expressions using C<||=>
+will apply if the value was false.
+
+=head2 method
+
+    method METHOD_NAME SIGNATURE BLOCK
+
+    method METHOD_NAME BLOCK
+
+    method SIGNATURE BLOCK
+
+    method BLOCK
+
+Methods are subroutines intended to be called in the context of class objects.
+
+A variable named C<$self> populated with the current object instance will
+automatically be created in the lexical scope of C<method>.
+
+Methods always act as if C<use feature 'signatures'> is in effect, but C<$self>
+will not appear in the arguments list as far as the signature is concerned.
+
+    class WithMethods {
+        field $greetings;
+
+        ADJUST {
+            $greetings = "Hello";
+        }
+
+        method greet($name = "someone") {
+            say "$greetings, $name";
+        }
+    }
+
+Just like regular subroutines, methods I<can> be anonymous:
+
+    class AnonMethodFactory {
+
+        method get_anon_method {
+            return method {
+                return 'this is an anonymous method';
+            };
+        }
+    }
+
+=head1 ATTRIBUTES
+
+Specific aspects of the keywords mentioned above are managed using
+I<attributes>. Attributes all start with a colon, and one or more of them can
+be appended after the item's name, separated by a space.
+
+=head2 Class attributes
+
+=head3 :isa
+
+Classes may inherit from B<one> superclass, by using the C<:isa> class
+attribute.
+
+    class Example::Base { ... }
+
+    class Example::Subclass :isa(Example::Base) { ... }
+
+Inherited methods are visible and may be invoked. Fields are always lexical
+and therefore not visible by inheritance.
+
+The C<:isa> attribute may request a minimum version of the base class; it is
+applied similar to C<use> - if the provided version is too low it will fail at
+compile time.
+
+    class Example::Subclass :isa(Example::Base 2.345) { ... }
+
+The C<:isa> attribute will attempt to C<require> the named module if it is not
+already loaded.
+
+=head2 Field attributes
+
+=head3 :param
+
+A scalar field with a C<:param> attribute will take its value from a named
+parameter passed to the constructor. By default the parameter will have the
+same name as the field (minus its leading C<$> sigil), but a different name
+can be specified in the attribute.
+
+    field $x :param;
+    field $y :param(the_y_value);
+
+If there is no defaulting expression then the parameter is required by the
+constructor; the caller must pass it or an exception is thrown. With a
+defaulting expression this becomes optional.
+
+=head2 Method attributes
+
+None yet.
+
+=head1 OBJECT LIFECYCLE
+
+=head2 Construction
+
+Each object begins its life with a constructor call. The constructor is always
+named C<new> and is invoked like a method call on the class name:
+
+    my $object = My::Class->new(%arguments);
+
+During the construction, class fields are compared to C<%arguments> hash and
+populated where possible.
+
+=head2 Adjustment
+
+Object adjustment can be performed during the construction to run user-defined
+code. It is done with the help of C<ADJUST> blocks, which are called in order
+of declaration.
+
+They are similar to C<BEGIN> blocks, which run during the compilation of a
+package. However, they also have access to C<$self> lexical (object instance)
+and all object fields created up to that point.
+
+=head2 Lifetime
+
+After the construction phase, object is ready to be used.
+
+Using C<blessed> (C<Scalar::Util::blessed> or C<builtin::blessed>) on the
+object will return the name of the class, while C<reftype>
+(C<Scalar::Util::reftype> or C<builtin::reftype>) will return the string
+C<'OBJECT'>.
+
+=head2 Destruction
+
+Just like with other references, when object reference count reaches zero it
+will automatically be destroyed.
+
+=head1 TODO
+
+This feature is still experimental and very incomplete. The following list
+gives some overview of the kinds of work still to be added or changed:
+
+=over 4
+
+=item * Roles
+
+Some syntax for declaring a role (likely a C<role> keyword), and for consuming
+a role into a class (likely a C<:does()> attribute).
+
+=item * Parameters to ADJUST blocks
+
+Some syntax for declaring that an C<ADJUST> block can consume named
+parameters, which become part of the class constructor's API. This might be
+inspired by a similar plan to add named arguments to subroutine signatures.
+
+    class X {
+        ADJUST (:$alpha, :$beta = 123) {
+           ...
+        }
+    }
+
+    my $obj = X->new(alpha => 456);
+
+=item * ADJUST blocks as true blocks
+
+Currently, every ADJUST block is wrapped in its own CV that gets invoked with
+the full ENTERSUB overhead. It should be possible to use the same mechanism
+that makes all field initializer expressions appear within the same CV on
+ADJUST blocks as well, merging them all into a single CV per class. This will
+make it faster to invoke if a class has more than one of them.
+
+=item * Accessor generator attributes
+
+Attributes to request that accessor methods be generated for fields. Likely
+C<:reader> and C<:writer>.
+
+    class X {
+        field $name :reader;
+    }
+
+Equivalent to
+
+    class X {
+        field $name;
+        method name { return $name; }
+    }
+
+=item * Metaprogramming
+
+An extension of the metaprogramming API (currently proposed by
+L<RFC0022|https://github.com/Perl/RFCs/pull/25>) which adds knowledge of
+classes, methods, fields, ADJUST blocks, and other such class-related details.
+
+=item * Extension Customisation
+
+Ways in which out-of-core modules can interact with the class system,
+including an ability for them to provide new class or field attributes.
+
+=back
+
+=head1 AUTHORS
+
+Paul Evans
+
+Bartosz Jarzyna
+
+=cut
Index: gnu/usr.bin/perl/pod/perlclassguts.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perlclassguts.pod
diff -N gnu/usr.bin/perl/pod/perlclassguts.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perlclassguts.pod	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,409 @@
+=head1 NAME
+
+perlclassguts - Internals of how C<feature 'class'> and class syntax works
+
+=head1 DESCRIPTION
+
+This document provides in-depth information about the way in which the perl
+interpreter implements the C<feature 'class'> syntax and overall behaviour.
+It is not intended as an end-user guide on how to use the feature. For that,
+see L<perlclass>.
+
+The reader is assumed to be generally familiar with the perl interpreter
+internals overall. For a more general overview of these details, see also
+L<perlguts>.
+
+=head1 DATA STORAGE
+
+=head2 Classes
+
+A class is fundamentally a package, and exists in the symbol table as an HV
+with an aux structure in exactly the same way as a non-class package. It is
+distinguished from a non-class package by the fact that the
+C<HvSTASH_IS_CLASS()> macro will return true on it.
+
+Extra information relating to it being a class is stored in the
+C<struct xpvhv_aux> structure attached to the stash, in the following fields:
+
+    HV          *xhv_class_superclass;
+    CV          *xhv_class_initfields_cv;
+    AV          *xhv_class_adjust_blocks;
+    PADNAMELIST *xhv_class_fields;
+    PADOFFSET    xhv_class_next_fieldix;
+    HV          *xhv_class_param_map;
+
+=over 4
+
+=item *
+
+C<xhv_class_superclass> will be C<NULL> for a class with no superclass. It
+will point directly to the stash of the parent class if one has been set with
+the C<:isa()> class attribute.
+
+=item *
+
+C<xhv_class_initfields_cv> will contain a C<CV *> pointing to a function to be
+invoked as part of the constructor of this class or any subclass thereof. This
+CV is responsible for initializing all the fields defined by this class for a
+new instance. This CV will be an anonymous real function - i.e. while it has no
+name and no GV, it is I<not> a protosub and may be directly invoked.
+
+=item *
+
+C<xhv_class_adjust_blocks> may point to an AV containing CV pointers to each of
+the C<ADJUST> blocks defined on the class. If the class has a superclass, this
+array will additionally contain duplicate pointers of the CVs of its parent
+class. The AV is created lazily the first time an element is pushed to it; it
+is valid for there not to be one, and this pointer will be C<NULL> in that
+case.
+
+The CVs are stored directly, not via RVs. Each CV will be an anonymous real
+function.
+
+=item *
+
+C<xhv_class_fields> will point to a C<PADNAMELIST> containing C<PADNAME>s,
+each being one defined field of the class. They are stored in order of
+declaration. Note however, that the index into this array will not necessarily
+be equal to the C<fieldix> of each field, because in the case of a subclass,
+the array will begin at zero but the index of the first field in it will be
+non-zero if its parent class contains any fields at all.
+
+For more information on how individual fields are represented, see L</Fields>.
+
+=item *
+
+C<xhv_class_next_fieldix> gives the field index that will be assigned to the
+next field to be added to the class. It is only useful at compile-time.
+
+=item *
+
+C<xhv_class_param_map> may point to an HV which maps field C<:param> attribute
+names to the field index of the field with that name. This mapping is copied
+from parent classes; each class will contain the sum total of all its parents
+in addition to its own.
+
+=back
+
+=head2 Fields
+
+A field is still fundamentally a lexical variable declared in a scope, and
+exists in the C<PADNAMELIST> of its corresponding CV. Methods and other
+method-like CVs can still capture them exactly as they can with regular
+lexicals. A field is distinguished from other kinds of pad entry in that the
+C<PadnameIsFIELD()> macro will return true on it.
+
+Extra information relating to it being a field is stored in an additional
+structure accessible via the C<PadnameFIELDINFO()> macro on the padname. This
+structure has the following fields:
+
+    PADOFFSET  fieldix;
+    HV        *fieldstash;
+    OP        *defop;
+    SV        *paramname;
+    bool       def_if_undef;
+    bool       def_if_false;
+
+=over 4
+
+=item *
+
+C<fieldix> stores the "field index" of the field; that is, the index into the
+instance field array where this field's value will be stored. Note that the
+first index in the array is not specially reserved. The first field in a class
+will start from field index 0.
+
+=item *
+
+C<fieldstash> stores a pointer to the stash of the class that defined this
+field. This is necessary in case there are multiple classes defined within the
+same scope; it is used to disambiguate the fields of each.
+
+    {
+        class C1; field $x;
+        class C2; field $x;
+    }
+
+=item *
+
+C<defop> may store a pointer to a defaulting expression optree for this field.
+Defaulting expressions are optional; this field may be C<NULL>.
+
+=item *
+
+C<paramname> may point to a regular string SV containing the C<:param> name
+attribute given to the field. If none, it will be C<NULL>.
+
+=item *
+
+One of C<def_if_undef> and C<def_if_false> will be true if the defaulting
+expression was set using the C<//=> or C<||=> operators respectively.
+
+=back
+
+=head2 Methods
+
+A method is still fundamentally a CV, and has the same basic representation as
+one. It has an optree and a pad, and is stored via a GV in the stash of its
+containing package. It is distinguished from a non-method CV by the fact that
+the C<CvIsMETHOD()> macro will return true on it.
+
+(Note: This macro should not be confused with the one that was previously
+called C<CvMETHOD()>. That one does not relate to the class system, and was
+renamed to C<CvNOWARN_AMBIGUOUS()> to avoid this confusion.)
+
+There is currently no extra information that needs to be stored about a method
+CV, so the structure does not add any new fields.
+
+=head2 Instances
+
+Object instances are represented by an entirely new SV type, whose base type
+is C<SVt_PVOBJ>. This should still be blessed into its class stash and wrapped
+in an RV in the usual manner for classical object.
+
+As these are their own unique container type, distinct from hashes or arrays,
+the core C<builtin::reftype> function returns a new value when asked about
+these. That value is C<"OBJECT">.
+
+Internally, such an object is an array of SV pointers whose size is fixed at
+creation time (because the number of fields in a class is known after
+compilation). An object instance stores the max field index within it (for
+basic error-checking on access), and a fixed-size array of SV pointers storing
+the individual field values.
+
+Fields of array and hash type directly store AV or HV pointers into the array;
+they are not stored via an intervening RV.
+
+=head1 API
+
+The data structures described above are supported by the following API
+functions.
+
+=head2 Class Manipulation
+
+=head3 class_setup_stash
+
+    void class_setup_stash(HV *stash);
+
+Called by the parser on encountering the C<class> keyword. It upgrades the
+stash into being a class and prepares it for receiving class-specific items
+like methods and fields.
+
+=head3 class_seal_stash
+
+    void class_seal_stash(HV *stash);
+
+Called by the parser at the end of a C<class> block, or for unit classes its
+containing scope. This function performs various finalisation activities that
+are required before instances of the class can be constructed, but could not
+have been done until all the information about the members of the class is
+known.
+
+Any additions to or modifications of the class under compilation must be
+performed between these two function calls. Classes cannot be modified once
+they have been sealed.
+
+=head3 class_add_field
+
+    void class_add_field(HV *stash, PADNAME *pn);
+
+Called by F<pad.c> as part of defining a new field name in the current pad.
+Note that this function does I<not> create the padname; that must already be
+done by F<pad.c>. This API function simply informs the class that the new
+field name has been created and is now available for it.
+
+=head3 class_add_ADJUST
+
+    void class_add_ADJUST(HV *stash, CV *cv);
+
+Called by the parser once it has parsed and constructed a CV for a new
+C<ADJUST> block. This gets added to the list stored by the class.
+
+=head2 Field Manipulation
+
+=head3 class_prepare_initfield_parse
+
+    void class_prepare_initfield_parse();
+
+Called by the parser just before parsing an initializing expression for a
+field variable. This makes use of a suspended compcv to combine all the field
+initializing expressions into the same CV.
+
+=head3 class_set_field_defop
+
+    void class_set_field_defop(PADNAME *pn, OPCODE defmode, OP *defop);
+
+Called by the parser after it has parsed an initializing expression for the
+field. Sets the defaulting expression and mode of application. C<defmode>
+should either be zero, or one of C<OP_ORASSIGN> or C<OP_DORASSIGN> depending
+on the defaulting mode.
+
+=head3 padadd_FIELD
+
+    #define padadd_FIELD
+
+This flag constant tells the C<pad_add_name_*> family of functions that the
+new name should be added as a field. There is no need to call
+C<class_add_field()>; this will be done automatically.
+
+=head2 Method Manipulation
+
+=head3 class_prepare_method_parse
+
+    void class_prepare_method_parse(CV *cv);
+
+Called by the parser after C<start_subparse()> but immediately before doing
+anything else. This prepares the C<PL_compcv> for parsing a method; arranging
+for the C<CvIsMETHOD> test to be true, adding the C<$self> lexical, and any
+other activities that may be required.
+
+=head3 class_wrap_method_body
+
+    OP *class_wrap_method_body(OP *o);
+
+Called by the parser at the end of parsing a method body into an optree but
+just before wrapping it in the eventual CV. This function inserts extra ops
+into the optree to make the method work correctly.
+
+=head2 Object Instances
+
+=head3 SVt_PVOBJ
+
+    #define SVt_PVOBJ
+
+An SV type constant used for comparison with the C<SvTYPE()> macro.
+
+=head3 ObjectMAXFIELD
+
+    SSize_t ObjectMAXFIELD(sv);
+
+A function-like macro that obtains the maximum valid field index that can be
+accessed from the C<ObjectFIELDS> array.
+
+=head3 ObjectFIELDS
+
+    SV **ObjectFIELDS(sv);
+
+A function-like macro that obtains the fields array directly out of an object
+instance. Fields can be accessed by their field index, from 0 up to the maximum
+valid index given by C<ObjectMAXFIELD>.
+
+=head1 OPCODES
+
+=head2 OP_METHSTART
+
+    newUNOP_AUX(OP_METHSTART, ...);
+
+An C<OP_METHSTART> is an C<UNOP_AUX> which must be present at the start of a
+method CV in order to make it work properly. This is inserted by
+C<class_wrap_method_body()>, and even appears before any optree fragment
+associated with signature argument checking or extraction.
+
+This op is responsible for shifting the value of C<$self> out of the arguments
+list and binding any field variables that the method requires access to into
+the pad. The AUX vector will contain details of the field/pad index pairings
+required.
+
+This op also performs sanity checking on the invocant value. It checks that it
+is definitely an object reference of a compatible class type. If not, an
+exception is thrown.
+
+If the C<op_private> field includes the C<OPpINITFIELDS> flag, this indicates
+that the op begins the special C<xhv_class_initfields_cv> CV. In this case it
+should additionally take the second value from the arguments list, which
+should be a plain HV pointer (I<directly>, not via RV). and bind it to the
+second pad slot, where the generated optree will expect to find it.
+
+=head2 OP_INITFIELD
+
+An C<OP_INITFIELD> is only invoked as part of the C<xhv_class_initfields_cv>
+CV during the construction phase of an instance. This is the time that the
+individual SVs that make up the mutable fields of the instance (including AVs
+and HVs) are actually assigned into the C<ObjectFIELDS> array. The
+C<OPpINITFIELD_AV> and C<OPpINITFIELD_HV> private flags indicate whether it is
+creating an AV or HV; if neither is set then an SV is created.
+
+If the op has the C<OPf_STACKED> flag it expects to find an initializing value
+on the stack. For SVs this is the topmost SV on the data stack. For AVs and
+HVs it expects a marked list.
+
+=head1 COMPILE-TIME BEHAVIOUR
+
+=head2 C<ADJUST> Phasers
+
+During compiletime, parsing of an C<ADJUST> phaser is handled in a
+fundamentally different way to the existing perl phasers (C<BEGIN>, etc...)
+
+Rather than taking the usual route, the tokenizer recognises that the
+C<ADJUST> keyword introduces a phaser block. The parser then parses the body
+of this block similarly to how it would parse an (anonymous) method body,
+creating a CV that has no name GV. This is then inserted directly into the
+class information by calling C<class_add_ADJUST>, entirely bypassing the
+symbol table.
+
+=head2 Attributes
+
+During compilation, attributes of both classes and fields are handled in a
+different way to existing perl attributes on subroutines and lexical
+variables.
+
+The parser still forms an C<OP_LIST> optree of C<OP_CONST> nodes, but these
+are passed to the C<class_apply_attributes> or C<class_apply_field_attributes>
+functions. Rather than using a class lookup for a method in the class being
+parsed, a fixed internal list of known attributes is used to find functions to
+apply the attribute to the class or field. In future this may support
+user-supplied extension attribute, though at present it only recognises ones
+defined by the core itself.
+
+=head2 Field Initializing Expressions
+
+During compilation, the parser makes use of a suspended compcv when parsing
+the defaulting expression for a field. All the expressions for all the fields
+in the class share the same suspended compcv, which is then compiled up into
+the same internal CV called by the constructor to initialize all the fields
+provided by that class.
+
+=head1 RUNTIME BEHAVIOUR
+
+=head2 Constructor
+
+The generated constructor for a class itself is an XSUB which performs three
+tasks in order: it creates the instance SV itself, invokes the field
+initializers, then invokes the ADJUST block CVs. The constructor for any class
+is always the same basic shape, regardless of whether the class has a
+superclass or not.
+
+The field initializers are collected into a generated optree-based CV called
+the field initializer CV. This is the CV which contains all the optree
+fragments for the field initializing expressions. When invoked, the field
+initializer CV might make a chained call to the superclass initializer if one
+exists, before invoking all of the individual field initialization ops. The
+field initializer CV is invoked with two items on the stack; being the
+instance SV and a direct HV containing the constructor parameters. Note
+carefully: this HV is passed I<directly>, not via an RV reference. This is
+permitted because both the caller and the callee are directly generated code
+and not arbitrary pure-perl subroutines.
+
+The ADJUST block CVs are all collected into a single flat list, merging all of
+the ones defined by the superclass as well. They are all invoked in order,
+after the field initializer CV.
+
+=head2 C<$self> Access During Methods
+
+When C<class_prepare_method_parse()> is called, it arranges that the pad of
+the new CV body will begin with a lexical called C<$self>. Because the pad
+should be freshly-created at this point, this will have the pad index of 1.
+The function checks this and aborts if that is not true.
+
+Because of this fact, code within the body of a method or method-like CV can
+reliably use pad index 1 to obtain the invocant reference. The C<OP_INITFIELD>
+opcode also relies on this fact.
+
+In similar fashion, during the C<xhv_class_initfields_cv> the next pad slot is
+relied on to store the constructor parameters HV, at pad index 2.
+
+=head1 AUTHORS
+
+Paul Evans
+
+=cut
Index: gnu/usr.bin/perl/pod/perlcommunity.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlcommunity.pod,v
diff -u -p -a -u -p -r1.5 perlcommunity.pod
--- gnu/usr.bin/perl/pod/perlcommunity.pod	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/pod/perlcommunity.pod	21 Feb 2024 15:47:03 -0000
@@ -98,11 +98,6 @@ Stack Overflow is a free question-and-an
 focussed solely on Perl, but it does have an active group of users who do
 their best to help people with their Perl programming questions.
 
-=item L<http://prepan.org/>
-
-PrePAN is used as a place to discuss modules that you're considering uploading
-to the CPAN.  You can get feedback on their design before you upload.
-
 =back
 
 =head2 User Groups
Index: gnu/usr.bin/perl/pod/perldata.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perldata.pod,v
diff -u -p -a -u -p -r1.20 perldata.pod
--- gnu/usr.bin/perl/pod/perldata.pod	15 Feb 2023 01:36:35 -0000	1.20
+++ gnu/usr.bin/perl/pod/perldata.pod	21 Feb 2024 15:47:03 -0000
@@ -21,8 +21,8 @@ structure it refers.  The rest of the na
 value to which it refers.  Usually this name is a single I<identifier>,
 that is, a string beginning with a letter or underscore, and
 containing letters, underscores, and digits.  In some cases, it may
-be a chain of identifiers, separated by C<::> (or by the slightly
-archaic C<'>); all but the last are interpreted as names of packages,
+be a chain of identifiers, separated by C<::> (or by the deprecated C<'>);
+all but the last are interpreted as names of packages,
 to locate the namespace in which to look up the final identifier
 (see L<perlmod/Packages> for details).  For a more in-depth discussion
 on identifiers, see L</Identifier parsing>.  It's possible to
@@ -137,11 +137,12 @@ That is, any word character in the ASCII
 character is not a digit.
 
 There are two package separators in Perl: A double colon (C<::>) and a single
-quote (C<'>).  Normal identifiers can start or end with a double colon, and
-can contain several parts delimited by double colons.
-Single quotes have similar rules, but with the exception that they are not
-legal at the end of an identifier: That is, C<$'foo> and C<$foo'bar> are
-legal, but C<$foo'bar'> is not.
+quote (C<'>).  Use of C<'> as the package separator is deprecated and will be
+removed in Perl 5.40.  Normal identifiers can start or end with a double
+colon, and can contain several parts delimited by double colons.  Single
+quotes have similar rules, but with the exception that they are not legal at
+the end of an identifier: That is, C<$'foo> and C<$foo'bar> are legal, but
+C<$foo'bar'> is not.
 
 Additionally, if the identifier is preceded by a sigil --
 that is, if the identifier is part of a variable name -- it
Index: gnu/usr.bin/perl/pod/perldebguts.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perldebguts.pod,v
diff -u -p -a -u -p -r1.6 perldebguts.pod
--- gnu/usr.bin/perl/pod/perldebguts.pod	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/pod/perldebguts.pod	21 Feb 2024 15:47:03 -0000
@@ -621,7 +621,7 @@ will be lost.
  ANYOFHr          sv 1       Like ANYOFH, but the flags field contains
                              packed bounds for all matchable UTF-8 start
                              bytes.
- ANYOFHs          sv 1       Like ANYOFHb, but has a string field that
+ ANYOFHs          sv:str 1   Like ANYOFHb, but has a string field that
                              gives the leading matchable UTF-8 bytes;
                              flags field is len
  ANYOFR           packed 1   Matches any character in the range given by
@@ -632,6 +632,10 @@ will be lost.
  ANYOFRb          packed 1   Like ANYOFR, but all matches share the same
                              UTF-8 start byte, given in the flags field
 
+ ANYOFHbbm        none bbm   Like ANYOFHb, but only for 2-byte UTF-8
+                             characters; uses a bitmap to match the
+                             continuation byte
+
  ANYOFM           byte 1     Like ANYOF, but matches an invariant byte
                              as determined by the mask and arg
  NANYOFM          byte 1     complement of ANYOFM
@@ -664,7 +668,7 @@ will be lost.
  #               pointer of each individual branch points; each branch
  #               starts with the operand node of a BRANCH node.
  #
- BRANCH           node       Match this alternative, or the next...
+ BRANCH           node 1     Match this alternative, or the next...
 
  # Literals
 
@@ -743,14 +747,19 @@ will be lost.
  #               (one character per match) are implemented with STAR
  #               and PLUS for speed and to minimize recursive plunges.
  #
- STAR             node       Match this (simple) thing 0 or more times.
- PLUS             node       Match this (simple) thing 1 or more times.
-
- CURLY            sv 2       Match this simple thing {n,m} times.
- CURLYN           no 2       Capture next-after-this simple thing
- CURLYM           no 2       Capture this medium-complex thing {n,m}
+ STAR             node       Match this (simple) thing 0 or more times:
+                             /A{0,}B/ where A is width 1 char
+ PLUS             node       Match this (simple) thing 1 or more times:
+                             /A{1,}B/ where A is width 1 char
+
+ CURLY            sv 3       Match this (simple) thing {n,m} times:
+                             /A{m,n}B/ where A is width 1 char
+ CURLYN           no 3       Capture next-after-this simple thing:
+                             /(A){m,n}B/ where A is width 1 char
+ CURLYM           no 3       Capture this medium-complex thing {n,m}
+                             times: /(A){m,n}B/ where A is fixed-length
+ CURLYX           sv 3       Match/Capture this complex thing {n,m}
                              times.
- CURLYX           sv 2       Match this complex thing {n,m} times.
 
  # This terminator creates a loop structure for CURLYX
  WHILEM           no         Do curly processing and see if rest
@@ -764,30 +773,30 @@ will be lost.
  SROPEN           none       Same as OPEN, but for script run
  SRCLOSE          none       Close preceding SROPEN
 
- REF              num 1      Match some already matched string
- REFF             num 1      Match already matched string, using /di
+ REF              num 2      Match some already matched string
+ REFF             num 2      Match already matched string, using /di
                              rules.
- REFFL            num 1      Match already matched string, using /li
+ REFFL            num 2      Match already matched string, using /li
                              rules.
- REFFU            num 1      Match already matched string, usng /ui.
- REFFA            num 1      Match already matched string, using /aai
+ REFFU            num 2      Match already matched string, usng /ui.
+ REFFA            num 2      Match already matched string, using /aai
                              rules.
 
  # Named references.  Code in regcomp.c assumes that these all are after
  # the numbered references
- REFN             no-sv 1    Match some already matched string
- REFFN            no-sv 1    Match already matched string, using /di
+ REFN             no-sv 2    Match some already matched string
+ REFFN            no-sv 2    Match already matched string, using /di
                              rules.
- REFFLN           no-sv 1    Match already matched string, using /li
+ REFFLN           no-sv 2    Match already matched string, using /li
                              rules.
- REFFUN           num 1      Match already matched string, using /ui
+ REFFUN           num 2      Match already matched string, using /ui
                              rules.
- REFFAN           num 1      Match already matched string, using /aai
+ REFFAN           num 2      Match already matched string, using /aai
                              rules.
 
  # Support for long RE
  LONGJMP          off 1 1    Jump far away.
- BRANCHJ          off 1 1    BRANCH with long offset.
+ BRANCHJ          off 2 1    BRANCH with long offset.
 
  # Special Case Regops
  IFMATCH          off 1 1    Succeeds if the following matches; non-zero
@@ -805,7 +814,7 @@ will be lost.
  # The heavy worker
 
  EVAL             evl/flags  Execute some Perl code.
-                  2L
+                  2
 
  # Modifiers
 
@@ -816,7 +825,7 @@ will be lost.
  RENUM            off 1 1    Group with independently numbered parens.
 
  # Regex Subroutines
- GOSUB            num/ofs 2L recurse to paren arg1 at (signed) ofs arg2
+ GOSUB            num/ofs 2  recurse to paren arg1 at (signed) ofs arg2
 
  # Special conditionals
  GROUPPN          no-sv 1    Whether the group matched.
@@ -827,7 +836,7 @@ will be lost.
  ENDLIKE          none       Used only for the type field of verbs
  OPFAIL           no-sv 1    Same as (?!), but with verb arg
  ACCEPT           no-sv/num  Accepts the current matched string, with
-                  2L         verbar
+                  2          verbar
 
  # Verbs With Arguments
  VERB             no-sv 1    Used only for the type field of verbs
Index: gnu/usr.bin/perl/pod/perldebug.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perldebug.pod,v
diff -u -p -a -u -p -r1.19 perldebug.pod
--- gnu/usr.bin/perl/pod/perldebug.pod	15 Feb 2023 01:36:35 -0000	1.19
+++ gnu/usr.bin/perl/pod/perldebug.pod	21 Feb 2024 15:47:03 -0000
@@ -76,7 +76,7 @@ Interactively supply an arbitrary C<expr
 
 =item perl -d:ptkdb program_name
 
-Debug a given program via the C<Devel::ptkdb> GUI.
+Debug a given program via the L<Devel::ptkdb> GUI.
 
 =item perl -dt threaded_program_name
 
@@ -173,7 +173,7 @@ X<debugger command, y>
 Display all (or some) lexical variables (mnemonic: C<mY> variables)
 in the current scope or I<level> scopes higher.  You can limit the
 variables that you see with I<vars> which works exactly as it does
-for the C<V> and C<X> commands.  Requires the C<PadWalker> module
+for the C<V> and C<X> commands.  Requires the L<PadWalker> module
 version 0.08 or higher; will warn if this isn't installed.  Output
 is pretty-printed in the same style as for C<V> and the format is
 controlled by the same options.
@@ -579,13 +579,13 @@ Redo number'th previous command.
 X<debugger command, !>
 
 Redo last command that started with pattern.
-See C<o recallCommand>, too.
+See S<C<o recallCommand>>, too.
 
 =item !! cmd
 X<debugger command, !!>
 
 Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT) See
-C<o shellBang>, also.  Note that the user's current shell (well,
+S<C<o shellBang>>, also.  Note that the user's current shell (well,
 their C<$ENV{SHELL}> variable) will be used, which can interfere
 with proper interpretation of exit status or signal and coredump
 information.
@@ -862,7 +862,7 @@ include lexicals in a module's file scop
 X<debugger option, history, HistFile>
 
 The path of the file from which the history (assuming a usable
-Term::ReadLine backend) will be read on the debugger's startup, and to which
+L<Term::ReadLine> backend) will be read on the debugger's startup, and to which
 it will be saved on shutdown (for persistence across sessions). Similar in
 concept to Bash's C<.bash_history> file.
 
@@ -951,7 +951,7 @@ variable settings):
   $ ( PERLDB_OPTS="NonStop frame=1 AutoTrace LineInfo=tperl.out"
       perl -d myprogram )
 
-which may be useful for debugging a program that uses C<Term::ReadLine>
+which may be useful for debugging a program that uses L<Term::ReadLine>
 itself.  Do not forget to detach your shell from the TTY in the window that
 corresponds to F</dev/ttyXX>, say, by issuing a command like
 
@@ -1145,14 +1145,14 @@ use only, and as such are subject to cha
 
 As shipped, the only command-line history supplied is a simplistic one
 that checks for leading exclamation points.  However, if you install
-the Term::ReadKey and Term::ReadLine modules from CPAN (such as
-Term::ReadLine::Gnu, Term::ReadLine::Perl, ...) you will
+the L<Term::ReadKey> and L<Term::ReadLine> modules from CPAN (such as
+L<Term::ReadLine::Gnu>, L<Term::ReadLine::Perl>, ...) you will
 have full editing capabilities much like those GNU I<readline>(3) provides.
 Look for these in the F<modules/by-module/Term> directory on CPAN.
 These do not support normal B<vi> command-line editing, however.
 
 A rudimentary command-line completion is also available, including
-lexical variables in the current scope if the C<PadWalker> module
+lexical variables in the current scope if the L<PadWalker> module
 is installed.
 
 Without Readline support you may see the symbols "^[[A", "^[[C", "^[[B",
Index: gnu/usr.bin/perl/pod/perldelta.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perldelta.pod,v
diff -u -p -a -u -p -r1.26 perldelta.pod
--- gnu/usr.bin/perl/pod/perldelta.pod	23 Dec 2023 21:02:21 -0000	1.26
+++ gnu/usr.bin/perl/pod/perldelta.pod	21 Feb 2024 15:47:03 -0000
@@ -2,16 +2,16 @@
 
 =head1 NAME
 
-perldelta - what is new for perl v5.36.3
+perldelta - what is new for perl v5.38.2
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.36.1 release and the 5.36.3
-release.  B<Please note:> This document ignores Perl 5.36.2, a broken release
+This document describes differences between the 5.38.0 release and the 5.38.2
+release.  B<Please note:> This document ignores Perl 5.38.1, a broken release
 which existed for a couple of days only.
 
-If you are upgrading from an earlier release such as 5.36.0, first read
-L<perl5361delta>, which describes differences between 5.36.0 and 5.36.1.
+If you are upgrading from an earlier release such as 5.37.0, first read
+L<perl5380delta>, which describes differences between 5.37.0 and 5.38.0.
 
 =head1 Security
 
@@ -47,16 +47,16 @@ be executed.
 
 =head1 Acknowledgements
 
-Perl 5.36.3 represents approximately 1 month of development since Perl
-5.36.1 and contains approximately 2,300 lines of changes across 38 files
+Perl 5.38.2 represents approximately 5 months of development since Perl
+5.38.0 and contains approximately 6,100 lines of changes across 34 files
 from 4 authors.
 
 Excluding auto-generated files, documentation and release tools, there were
-approximately 1,400 lines of changes to 8 .pm, .t, .c and .h files.
+approximately 1,300 lines of changes to 9 .pm, .t, .c and .h files.
 
 Perl continues to flourish into its fourth decade thanks to a vibrant
 community of users and developers. The following people are known to have
-contributed the improvements that became Perl 5.36.3:
+contributed the improvements that became Perl 5.38.2:
 
 Karl Williamson, Paul Evans, Steve Hay, Tony Cook.
 
Index: gnu/usr.bin/perl/pod/perldeprecation.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perldeprecation.pod,v
diff -u -p -a -u -p -r1.1.1.4 perldeprecation.pod
--- gnu/usr.bin/perl/pod/perldeprecation.pod	15 Feb 2023 01:32:49 -0000	1.1.1.4
+++ gnu/usr.bin/perl/pod/perldeprecation.pod	21 Feb 2024 15:47:03 -0000
@@ -14,6 +14,73 @@ features are available.
 The deprecated features will be grouped by the version of Perl in
 which they will be removed.
 
+=head2 Unscheduled Deprecations
+
+=head3 Unicode Delimiter Will be Paired
+
+Some unicode delimiters used to be allowed as single characters but
+in the future will be part of a ballanced pair. This deprecation category
+is used to mark the ones that will change from being unpaired, to paired.
+
+Category: "deprecated::delimiter_will_be_paired"
+
+=head3 Dot In Inc
+
+The current working direct C<"."> used to be automatically included in
+C<@INC>, but in Perl 5.26 this was removed for security reasons. Ever
+since then we have produced a warning when a user uses C<do EXPR> and
+C<EXPR> does not include a path, and the file was not found in any
+directory in @INC but I<was> located C<".">. The file will not be loaded
+but a deprecated warning will be generated.
+
+Category: "deprecated::dot_in_inc"
+
+=head3 Goto Block Construct
+
+C<goto LABEL;> will produce a deprecated warning when jumping into the body
+of a loop or other block construct from outside. For instance
+
+    while (should_loop($x)) {
+        LABEL:
+            do_stuff();
+    }
+    goto LABEL;
+
+will produce a warning that this behavior is deprecated. In general you should
+just avoid doing this, the people that maintain your code will be grateful for
+your restraint.
+
+Category: "deprecated::goto_construct"
+
+=head3 Unicode Property Name
+
+Various types of unicode property name will generate deprecated warnings
+when used in a regex pattern. For instance surrogate characters will result
+in deprecation warnings.
+
+Category: "deprecated::unicode_property_name"
+
+=head2 Perl 5.42
+
+=head3 Smartmatch
+
+Smartmatch is now seen as a failed experiment and was marked as deprecated
+in Perl 5.37.10. This includes the C<when> and C<given> keywords, as well
+as the smartmatch operator C<~~>. The feature will be removed entirely in the
+Perl 5.42.0 production release.
+
+Category: "deprecated::smartmatch"
+
+=head3 Use of C<'> as a global name separator.
+
+Perl allows use of C<'> instead of C<::> to replace the parts of a
+package or global variable name, for example C<A::B> and C<A'B> are
+equivalent.
+
+C<'> will no longer be recognized as a name separator in Perl 5.42.
+
+Category: "deprecated::apostrophe_as_package_separator"
+
 =head2 Perl 5.40
 
 =head3 Downgrading a C<use VERSION> to below v5.11
@@ -37,6 +104,8 @@ disabled I<even if you had previously wr
 the previous behaviour of C<use VERSION>, which at present will track
 explicitly-enabled strictness flags independently.
 
+Category: "deprecated::version_downgrade"
+
 =head2 Perl 5.38
 
 =head3 Pod::Html utility functions
@@ -48,7 +117,7 @@ Perl 5.38 they will only be importable, 
 
 =head2 Perl 5.34
 
-There are no deprecations or fatalizations scheduled for Perl 5.34.
+There were no deprecations or fatalizations in Perl 5.34.
 
 =head2 Perl 5.32
 
Index: gnu/usr.bin/perl/pod/perldiag.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perldiag.pod,v
diff -u -p -a -u -p -r1.27 perldiag.pod
--- gnu/usr.bin/perl/pod/perldiag.pod	15 Feb 2023 01:36:35 -0000	1.27
+++ gnu/usr.bin/perl/pod/perldiag.pod	21 Feb 2024 15:47:03 -0000
@@ -50,6 +50,12 @@ letter.
 to check the return value of your socket() call?  See
 L<perlfunc/accept>.
 
+=item ADJUST is experimental
+
+(S experimental::class) This warning is emitted if you use the C<ADJUST>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
 =item Aliasing via reference is experimental
 
 (S experimental::refaliasing) This warning is emitted if you use
@@ -313,6 +319,13 @@ the current set of allowed keys of a res
 the current package to be freed.  Perl cannot figure out what to
 do, so it throws up its hands in despair.
 
+=item Attempt to bless into a class
+
+(F) You are attempting to call C<bless> with a package name that is a
+new-style C<class>.  This is not necessary, as instances created by the
+constructor are already in the correct class.  Instances cannot be created
+by other means, such as C<bless>.
+
 =item Attempt to bless into a reference
 
 (F) The CLASSNAME argument to the bless() operator is expected to be
@@ -455,6 +468,13 @@ This message can be seen quite often wit
 dynamic linking, like C<AIX> and C<OS/2>.  It is a bug of C<Berkeley DB>
 which is left unnoticed if C<DB> uses I<forgiving> system malloc().
 
+=item Bad infix plugin result (%zd) - did not consume entire identifier <%s>
+
+(F) A plugin using the C<PL_infix_plugin> mechanism to parse an infix
+keyword consumed part of a named identifier operator name but did not
+consume all of it.  This is not permitted as it leads to fragile parsing
+results.
+
 =item Badly placed ()'s
 
 (A) You've accidentally run your script through B<csh> instead
@@ -486,24 +506,9 @@ plugin API.
 had never been malloc()ed in the first place.  Mandatory, but can
 be disabled by setting the environment variable C<PERL_BADFREE> to 1.
 
-=item Bad symbol for array
-
-(P) An internal request asked to add an array entry to something that
-wasn't a symbol table entry.
-
-=item Bad symbol for dirhandle
-
-(P) An internal request asked to add a dirhandle entry to something
-that wasn't a symbol table entry.
-
-=item Bad symbol for filehandle
-
-(P) An internal request asked to add a filehandle entry to something
-that wasn't a symbol table entry.
+=item Bad symbol for %s
 
-=item Bad symbol for hash
-
-(P) An internal request asked to add a hash entry to something that
+(P) An internal request asked to add an entry of the named type to something that
 wasn't a symbol table entry.
 
 =item Bad symbol for scalar
@@ -668,6 +673,12 @@ checking.  Alternatively, if you are cer
 function correctly, you may put an ampersand before the name to avoid
 the warning.  See L<perlsub>.
 
+=item Cannot assign :param(%s) to field %s because that name is already in use
+
+(F) An attempt was made to apply a parameter name to a field, when the name
+is already being used by another field in the same class, or one of its
+parent classes. This would cause a name clash so is not allowed.
+
 =item Cannot chr %f
 
 (F) You passed an invalid number (like an infinity or not-a-number) to C<chr>.
@@ -708,11 +719,29 @@ no legal conversion from that type of re
 (P) Perl detected an attempt to copy a value to an internal type that cannot
 be directly assigned to.
 
+=item Cannot create class %s as it already has a non-empty @ISA
+
+(F) An attempt was made to create a class out of a package that already has
+an C<@ISA> array, and the array is not empty.  This is not permitted, as it
+would lead to a class with inconsistent inheritance.
+
 =item Cannot find encoding "%s"
 
 (S io) You tried to apply an encoding that did not exist to a filehandle,
 either with open() or binmode().
 
+=item Cannot invoke a method of "%s" on an instance of "%s"
+
+(F) You tried to directly call a C<method> subroutine of one class by passing
+in a value that is an instance of a different class.  This is not permitted,
+as the method would not have access to the correct instance fields.
+
+=item Cannot invoke method on a non-instance
+
+(F) You tried to directly call a C<method> subroutine of a class by passing
+in a value that is not an instance of that class.  This is not permitted, as
+the method would not then have access to its instance fields.
+
 =item Cannot open %s as a dirhandle: it is already open as a filehandle
 
 (F) You tried to use opendir() to associate a dirhandle to a symbol (glob
@@ -727,6 +756,11 @@ or scalar) that already holds a dirhandl
 your code confusing, it was deprecated in Perl 5.10.  As of Perl 5.28, it
 is a fatal error.
 
+=item Cannot '%s' outside of a 'class'
+
+(F) You attempted to use one of the keywords that only makes sense inside
+a C<class> definition, at a location that is not inside such a class.
+
 =item Cannot pack %f with '%c'
 
 (F) You tried converting an infinity or not-a-number to an integer,
@@ -737,6 +771,11 @@ which makes no sense.
 (F) You tried printing an infinity or not-a-number as a character (%c),
 which makes no sense.  Maybe you meant '%s', or just stringifying it?
 
+=item Cannot reopen existing class "%s"
+
+(F) You tried to begin a C<class> definition for a class that already exists.
+A class may only have one definition block.
+
 =item Cannot set tied @DB::args
 
 (F) C<caller> tried to set C<@DB::args>, but found it tied.  Tying C<@DB::args>
@@ -774,6 +813,11 @@ not permitted.
 (F) Similar to above, but involving a C<finally> block at the end of a
 C<try>/C<catch> construction rather than a C<defer> block.
 
+=item Can't bless an object reference
+
+(F) You attempted to call C<bless> on a value that already refers to a real
+object instance.
+
 =item Can't bless non-reference value
 
 (F) Only hard references may be blessed.  This is how Perl "enforces"
@@ -788,6 +832,14 @@ a C<given> block.  You probably meant to
 
 (F) You called C<break>, but you're not inside a C<given> block.
 
+=item Can't call destructor for 0x%p in global destruction
+
+(S) This should not happen. Internals code has set up a destructor
+using C<mortal_destructor_sv> or C<mortal_destructor_x> which is firing
+during global destruction. Please attempt to reduce the code that triggers
+this warning down to a small an example as possible and then report the
+problem to L<https://github.com/Perl/perl5/issues/new/choose>
+
 =item Can't call method "%s" on an undefined value
 
 (F) You used the syntax of a method call, but the slot filled by the
@@ -851,6 +903,11 @@ but then $foo no longer contains a glob.
 (F) You called C<continue>, but you're not inside a C<when>
 or C<default> block.
 
+=item can't convert empty path
+
+(F) On Cygwin, you called a path conversion function with an empty path.
+Only non-empty paths are legal.
+
 =item Can't create pipe mailbox
 
 (P) An error peculiar to VMS.  The process is suffering from exhausted
@@ -1191,6 +1248,14 @@ to load "%s"?)
 could not be found in UNIVERSAL.  This often means that a method
 requires a package that has not been loaded.
 
+=item Can't locate object method "INC", nor "INCDIR" nor string overload via package "%s" %s in @INC
+
+(F) You pushed an object, either directly or via an array reference hook,
+into C<@INC>, but the object doesn't support any known hook methods, nor
+a string overload and is also not a blessed CODE reference. In short the
+C<require> function does not know what to do with the object.
+See also L<perlfunc/require>.
+
 =item Can't locate package %s for @%s::ISA
 
 (W syntax) The @ISA array contained the name of another package that
@@ -1589,6 +1654,18 @@ or if you use an explicit C<continue>.)
 with an assignment operator, which implies modifying the value itself.
 Perhaps you need to copy the value to a temporary, and repeat that.
 
+=item catch block requires a (VAR)
+
+(F) You tried to use the C<try> and C<catch> syntax of C<use feature 'try'>
+but did not include the error variable in the C<catch> block. The
+parenthesized variable name is not optional, unlike in some other forms of
+syntax you may be familiar with from CPAN modules or other languages.
+
+The required syntax is
+
+    try { ... }
+    catch ($var) { ... }
+
 =item Character following "\c" must be printable ASCII
 
 (F) In C<\cI<X>>, I<X> must be a printable (non-control) ASCII character.
@@ -1703,6 +1780,34 @@ is better written as simply itself, perh
 for non-word characters.  Doing it the way you did is not portable
 between ASCII and EBCDIC platforms.
 
+=item Class already has a superclass, cannot add another
+
+(F) You attempted to specify a second superclass for a C<class> by using
+the C<:isa> attribute, when one is already specified.  Unlike classes
+whose instances are created with C<bless>, classes created via the
+C<class> keyword cannot have more than one superclass.
+
+=item Class attribute %s requires a value
+
+(F) You specified an attribute for a class that would require a value to
+be passed in parentheses, but did not provide one.  Remember that
+whitespace is B<not> permitted between the attribute name and its value;
+you must write this as
+
+    class Example::Class :attr(VALUE) ...
+
+=item class is experimental
+
+(S experimental::class) This warning is emitted if you use the C<class>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
+=item Class :isa attribute requires a class but "%s" is not one
+
+(F) When creating a subclass using the C<class> C<:isa> attribute, the
+named superclass must also be a real class created using the C<class>
+keyword.
+
 =item Cloning substitution context is unimplemented
 
 (F) Creating a new thread inside the C<s///> operator is not supported.
@@ -1803,18 +1908,6 @@ Perl yourself.  The #! line at the top o
 Perl uses this generic message when none of the errors that it
 encountered were severe enough to halt compilation immediately.
 
-=item Complex regular subexpression recursion limit (%d) exceeded
-
-(W regexp) The regular expression engine uses recursion in complex
-situations where back-tracking is required.  Recursion depth is limited
-to 32766, or perhaps less in architectures where the stack cannot grow
-arbitrarily.  ("Simple" and "medium" situations are handled without
-recursion and are not subject to a limit.)  Try shortening the string
-under examination; looping in Perl code (e.g. with C<while>) rather than
-in the regular expression engine; or rewriting the regular expression so
-that it is simpler or backtracks less.  (See L<perlfaq2> for information
-on I<Mastering Regular Expressions>.)
-
 =item connect() on closed socket %s
 
 (W closed) You tried to do a connect on a closed socket.  Did you forget
@@ -1931,7 +2024,7 @@ called as barewords.  Something like thi
 
 (P) This is either an error in Perl, or, if you're using
 one, your L<custom regular expression engine|perlreapi>.  If not the
-latter, report the problem to L<https://github.com/Perl/perl5/issues>.
+latter, report the problem to L<https://github.com/Perl/perl5/issues/new/choose>.
 
 =item corrupted regexp pointers
 
@@ -2075,11 +2168,11 @@ See L<perlfunc/pack>.
 
 =item do "%s" failed, '.' is no longer in @INC; did you mean do "./%s"?
 
-(D deprecated) Previously C< do "somefile"; > would search the current
-directory for the specified file.  Since perl v5.26.0, F<.> has been
-removed from C<@INC> by default, so this is no longer true.  To search the
-current directory (and only the current directory) you can write
-C< do "./somefile"; >.
+(D deprecated::dot_in_inc) Previously C< do "somefile"; > would search
+the current directory for the specified file. Since perl v5.26.0, F<.>
+has been removed from C<@INC> by default, so this is no longer true. To
+search the current directory (and only the current directory) you can
+write C< do "./somefile"; >.
 
 =item Don't know how to get file name
 
@@ -2092,12 +2185,12 @@ somehow called on another platform.  Thi
 
 =item Downgrading a use VERSION declaration to below v5.11 is deprecated
 
-(S deprecated) This warning is emitted on a C<use VERSION> statement that
-requests a version below v5.11 (when the effects of C<use strict> would be
-disabled), after a previous declaration of one having a larger number (which
-would have enabled these effects). Because of a change to the way that
-C<use VERSION> interacts with the strictness flags, this is no longer
-supported.
+(S deprecated::version_downgrade) This warning is emitted on a
+C<use VERSION> statement that requests a version below v5.11 (when the
+effects of C<use strict> would be disabled), after a previous
+declaration of one having a larger number (which would have enabled
+these effects). Because of a change to the way that C<use VERSION>
+interacts with the strictness flags, this is no longer supported.
 
 =item (Do you need to predeclare %s?)
 
@@ -2170,6 +2263,18 @@ the C<encoding> pragma, is no longer sup
 Setting it to anything other than C<undef> is a fatal error as of Perl
 5.28.
 
+=item ${^HOOK}{%s} may only be a CODE reference or undef
+
+(F) You attempted to assign something other than undef or a CODE ref to
+C<%{^HOOK}>. Hooks may only be CODE refs. See L<perlvar/%{^HOOK}> for
+details.
+
+=item Attempt to set unknown hook '%s' in %{^HOOK}
+
+(F) You attempted to assign something other than undef or a CODE ref to
+C<%{^HOOK}>. Hooks may only be CODE refs. See L<perlvar/%{^HOOK}> for
+details.
+
 =item entering effective %s failed
 
 (F) While under the C<use filetest> pragma, switching the real and
@@ -2250,6 +2355,10 @@ Catamount. See L<perlport>.
 
 (F) The final summary message when a Perl compilation fails.
 
+=item Execution of %s aborted due to compilation errors.
+
+(F) The final summary message when a Perl compilation fails.
+
 =item exists argument is not a HASH or ARRAY element or a subroutine
 
 (F) The argument to C<exists> must be a hash or array element or a
@@ -2290,6 +2399,12 @@ as a goto, or a loop control statement.
 (W exiting) You are exiting a substitution by unconventional means, such
 as a return, a goto, or a loop control statement.
 
+=item Expected %s reference in export_lexically
+
+(F) The type of a reference given to L<builtin/export_lexically> did not
+match the sigil of the preceding name, or the value was not a reference at
+all. 
+
 =item Expecting close bracket in regex; marked by S<<-- HERE> in m/%s/
 
 (F) You wrote something like
@@ -2342,6 +2457,12 @@ the effect of blessing the reference int
 usually not what you want.  Consider providing a default target package,
 e.g. bless($ref, $p || 'MyPackage');
 
+=item export_lexically can only be called at compile time
+
+(F) L<builtin/export_lexically> was called at runtime.  Because it creates
+new names in the lexical scope currently being compiled, it can only be
+called from code inside C<BEGIN> block in that scope.
+
 =item %s: Expression syntax
 
 (A) You've accidentally run your script through B<csh> instead of Perl.
@@ -2384,6 +2505,39 @@ PDP-11 or something?
 (F) A tied array claimed to have a negative number of elements, which
 is not possible.
 
+=item Field already has a parameter name, cannot add another
+
+(F) A field may have at most one application of the C<:param> attribute to
+assign a parameter name to it; once applied a second one is not allowed.
+
+=item Field attribute %s requires a value
+
+(F) You specified an attribute for a field that would require a value to
+be passed in parentheses, but did not provide one.  Remember that
+whitespace is B<not> permitted between the attribute name and its value;
+you must write this as
+
+    field $var :attr(VALUE) ...
+
+=item field is experimental
+
+(S experimental::class) This warning is emitted if you use the C<field>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
+=item Field %s is not accessible outside a method
+
+(F) An attempt was made to access a field variable of a class from code
+that does not appear inside the body of a C<method> subroutine.  This is not
+permitted, as only methods will have access to the fields of an instance.
+
+=item Field %s of "%s" is not accessible in a method of "%s"
+
+(F) An attempt was made to access a field variable of a class, from a
+method of another class nested inside the one that actually defined it.
+This is not permitted, as only methods defined by a given class are
+permitted to access fields of that class.
+
 =item Field too wide in 'u' format in pack
 
 (W pack) Each line in an uuencoded string starts with a length indicator
@@ -2418,6 +2572,11 @@ previously.
 (W io) You opened for writing a filehandle that got the same filehandle id
 as STDIN.  This occurred because you closed STDIN previously.
 
+=item Filehandle STD%s reopened as %s only for input
+
+(W io) You opened for reading a filehandle that got the same filehandle id
+as STDOUT or STDERR.  This occurred because you closed the handle previously.
+
 =item Final $ should be \$ or $name
 
 (F) You must now decide whether the final $ in a string was meant to be
@@ -2504,11 +2663,10 @@ C<getpwnam> operator returned an invalid
 forget to check the return value of your socket() call?  See
 L<perlfunc/getsockopt>.
 
-=item given is experimental
+=item given is deprecated
 
-(S experimental::smartmatch) C<given> depends on smartmatch, which
-is experimental, so its behavior may change or even be removed
-in any future release of perl.  See the explanation under
+(D deprecated::smartmatch) C<given> depends on smartmatch, which is
+deprecated. It will be removed in Perl 5.42. See the explanation under
 L<perlsyn/Experimental Details on given and when>.
 
 =item Global symbol "%s" requires explicit package name (did you forget to
@@ -3227,14 +3385,6 @@ neither as a system call nor an ioctl ca
 Perl.  The current valid ones are given in
 L<perlrebackslash/\b{}, \b, \B{}, \B>.
 
-=item %s is forbidden - matches null string many times in regex; marked by S<<-- HERE> in
-m/%s/
-
-(F) The pattern you've specified might cause the regular expression to
-infinite loop so it is forbidden.  The S<<-- HERE>
-shows whereabouts in the regular expression the problem was discovered.
-See L<perlre>.
-
 =item %s() isn't allowed on :utf8 handles
 
 (F) The sysread(), recv(), syswrite() and send() operators are
@@ -3441,12 +3591,22 @@ considered punctuation in the C locale (
 the C standard), and Unicode is generally considered a superset of
 the C locale.  But Unicode has added an extra category, "Symbol", and
 classifies these particular characters as being symbols.  Most UTF-8
-locales have them treated as punctuation, so that L<ispunct(2)> returns
+locales have them treated as punctuation, so that L<ispunct(3)> returns
 non-zero for them.  But a few locales have it return 0.   Perl takes
 the first approach, not using C<ispunct()> at all (see L<Note [5] in
 perlrecharclass|perlrecharclass/[5]>), and this message is raised to notify you that you
 are getting Perl's approach, not the locale's.
 
+=item Locale '%s' is unsupported, and may crash the interpreter.
+
+(S locale) The named locale is not supported by Perl, and using it leads
+to undefined behavior, including potentially crashing the computer.
+
+Currently the only locales that generate this severe warning are
+non-UTF-8 ones which have characters that require more than one byte to
+represent (common in older East Asian language locales).  See
+L<perllocale>.
+
 =item Locale '%s' may not work well.%s
 
 (W locale) You are using the named locale, which is a non-UTF-8 one, and
@@ -3706,16 +3866,36 @@ See L<perlfunc/unpack>.
 (F) An attempt was made to specify an entry in an overloading table that
 doesn't resolve to a valid subroutine.  See L<overload>.
 
+=item method is experimental
+
+(S experimental::class) This warning is emitted if you use the C<method>
+keyword of C<use feature 'class'>.  This keyword is currently
+experimental and its behaviour may change in future releases of Perl.
+
 =item Method %s not permitted
 
 See L</500 Server error>.
 
+=item Method %s redefined
+
+(W redefine) You redefined a method.  To suppress this warning, say
+
+    {
+	no warnings 'redefine';
+	*name = method { ... };
+    }
+
 =item Might be a runaway multi-line %s string starting on line %d
 
 (S) An advisory indicating that the previous error may have been caused
 by a missing delimiter on a string or pattern, because it eventually
 ended earlier on the current line.
 
+=item Mismatched brackets in template
+
+(F) A pack template could not be parsed because pairs of C<[...]> or
+C<(...)> could not be matched up. See L<perlfunc/pack>.
+
 =item Misplaced _ in number
 
 (W syntax) An underscore (underbar) in a numeric constant did not
@@ -3793,11 +3973,17 @@ can vary from one line to the next.
 
 =item Missing or undefined argument to %s
 
-(F) You tried to call require or do with no argument or with an undefined
-value as an argument.  Require expects either a package name or a
-file-specification as an argument; do expects a filename.  See
+(F) You tried to call C<require> or C<do> with no argument or with an
+undefined value as an argument.  Require expects either a package name or
+a file-specification as an argument; do expects a filename.  See
 L<perlfunc/require EXPR> and L<perlfunc/do EXPR>.
 
+=item Missing or undefined argument to %s via %{^HOOK}{require__before}
+
+(F) A C<%{^HOOK}{require__before}> hook rewrote the name of the file being
+compiled with C<require> or C<do> with an empty string an undefined value
+which is forbidden.  See L<perlvar/%{^HOOK}> and L<perlfunc/require EXPR>.
+
 =item Missing right brace on \%c{} in regex; marked by S<<-- HERE> in m/%s/
 
 (F) Missing right brace in C<\x{...}>, C<\p{...}>, C<\P{...}>, or C<\N{...}>.
@@ -4468,11 +4654,24 @@ arguments.  The arguments should come in
 (W misc) You specified an odd number of elements to initialize a hash,
 which is odd, because hashes come in key/value pairs.
 
+=item Odd number of elements in export_lexically
+
+(F) A call to L<builtin/export_lexically> contained an odd number of
+arguments.  This is not permitted, because each name must be paired with a
+valid reference value.
+
 =item Odd number of elements in hash assignment
 
 (W misc) You specified an odd number of elements to initialize a hash,
 which is odd, because hashes come in key/value pairs.
 
+=item Odd number of elements in hash field initialization
+
+(W misc) You specified an odd number of elements to initialise a hash
+field of an object.  Hashes are initialised from a list of key/value
+pairs so there must be a corresponding value to every key.  The final
+missing value will be filled in with undef instead.
+
 =item Offset outside string
 
 (F)(W layer) You tried to do a read/write/send/recv/seek operation
@@ -4483,12 +4682,26 @@ C<sysread()>ing a file, or when seeking 
 for I/O (in anticipation of future reads and to imitate the behavior
 with real files).
 
+=item Old package separator "'" deprecated
+
+(W deprecated::apostrophe_as_package_separator, syntax) You used the old package
+separator "'" in a variable, subroutine or package name. Support for the
+old package separator will be removed in Perl 5.42.
+
 =item Old package separator used in string
 
-(W syntax) You used the old package separator, "'", in a variable
-named inside a double-quoted string; e.g., C<"In $name's house">.  This
-is equivalent to C<"In $name::s house">.  If you meant the former, put
-a backslash before the apostrophe (C<"In $name\'s house">).
+(W deprecated::apostrophe_as_package_separator, syntax) You used the old package
+separator, "'", in a variable named inside a double-quoted string; e.g.,
+C<"In $name's house">. This is equivalent to C<"In $name::s house">. If
+you meant the former, put a backslash before the apostrophe
+(C<"In $name\'s house">).
+
+Support for the old package separator will be removed in Perl 5.42.
+
+=item Only scalar fields can take a :param attribute
+
+(F) You tried to apply the C<:param> attribute to an array or hash field.
+Currently this is not permitted.
 
 =item %s() on unopened %s
 
@@ -4916,7 +5129,7 @@ utility to report; in regex; marked by S
 (S regexp) You used a regular expression with case-insensitive matching,
 and there is a bug in Perl in which the built-in regular expression
 folding rules are not accurate.  This may lead to incorrect results.
-Please report this as a bug to L<https://github.com/Perl/perl5/issues>.
+Please report this as a bug to L<https://github.com/Perl/perl5/issues/new/choose>.
 
 =item Perl_my_%s() not available
 
@@ -5230,6 +5443,13 @@ the sub name and via the prototype attri
 parentheses is useless, since it will be replaced by the prototype
 from the attribute before it's ever used.
 
+=item %s on BEGIN block ignored
+
+(W syntax) C<BEGIN> blocks are executed immediately after they are parsed
+and then thrown away. Any prototypes or attributes are therefore
+meaningless and are ignored. You should remove them from the C<BEGIN> block.
+Note this also means you cannot create a constant called C<BEGIN>.
+
 =item Quantifier follows nothing in regex; marked by S<<-- HERE> in m/%s/
 
 (F) You started a regular expression with a quantifier.  Backslash it if
@@ -5483,6 +5703,11 @@ terminates.  You might use ^# instead.  
 search list.  So the additional elements in the replacement list
 are meaningless.
 
+=item Required parameter '%s' is missing for %s constructor
+
+(F) You called the constructor for a class that has a required named
+parameter, but did not pass that parameter at all.
+
 =item '(*%s' requires a terminating ':' in regex; marked by <-- HERE in m/%s/
 
 (F) You used a construct that needs a colon and pattern argument.
@@ -5839,14 +6064,13 @@ so there can't be any left to fill later
 overload it: Perl refuses to use the object's underlying structure
 for the smart match.
 
-=item Smartmatch is experimental
+=item Smartmatch is deprecated
 
-(S experimental::smartmatch) This warning is emitted if you
-use the smartmatch (C<~~>) operator.  This is currently an experimental
-feature, and its details are subject to change in future releases of
-Perl.  Particularly, its current behavior is noticed for being
-unnecessarily complex and unintuitive, and is very likely to be
-overhauled.
+(D deprecated::smartmatch) This warning is emitted if you
+use the smartmatch (C<~~>) operator.  This is a deprecated
+feature.  Particularly, its behavior is noticed for being
+unnecessarily complex and unintuitive, and it will be removed
+in Perl 5.42.
 
 =item Sorry, hash keys must be smaller than 2**31 bytes
 
@@ -6365,6 +6589,24 @@ setting C<${^RE_COMPILE_RECURSION_LIMIT}
 need to be done in a BEGIN block before the regular expression pattern
 is compiled.
 
+=item Too many nested BEGIN blocks, maximum of %d allowed
+
+(F) You have executed code that nests too many BEGIN blocks inside of
+each other, either explicitly as BEGIN{} or implicitly as use statements.
+This limit defaults to a rather high number which should not be exceeded
+in normal circumstances, and triggering likely indicates something is
+very wrong in your code. For instance infinite recursion of eval and
+BEGIN blocks is known to trigger this error.
+
+If you know that you have good reason to exceed the limit you can change
+it by setting C<${^MAX_NESTED_EVAL_BEGIN_BLOCKS}> to a different value from
+the default of 1000.
+
+=item Too many capture groups (limit is %d) in regex m/%s/
+
+(F) You have too many capture groups in your regex pattern. You need to rework
+your pattern to use less capture groups.
+
 =item Too many )'s
 
 (A) You've accidentally run your script through B<csh> instead of Perl.
@@ -6391,6 +6633,15 @@ C<$tr> or C<$y> may cause this error.
 (F) The lexer couldn't find the final delimiter of a tr///, tr[][],
 y/// or y[][] construct.
 
+=item Treating %s::INIT block as BEGIN block as workaround
+
+(S) A package is using an old version of C<Module::Install::DSL> to
+install, which makes unsafe assumptions about when INIT blocks will be
+called. Because C<Module::Install::DSL> is used to install other modules
+and is difficult to upgrade we have a special workaround in place to
+deal with this. Unless you are a maintainer of an affected module you
+can ignore this warning. We emit it only as a sanity check.
+
 =item '%s' trapped by operation mask
 
 (F) You tried to use an operator from a Safe compartment in which it's
@@ -6652,6 +6903,12 @@ within an inner pair of square brackets,
 Another possibility is that you forgot a backslash.  Perl isn't smart
 enough to figure out what you really meant.
 
+=item Unexpected characters while parsing class :isa attribute: %s
+
+(F) You tried to specify something other than a single class name with an
+optional trailing verison number as the value for a C<class> C<:isa>
+attribute.  This confused the parser.
+
 =item Unexpected exit %u
 
 (S) exit() was called or the script otherwise finished gracefully when
@@ -6733,6 +6990,21 @@ problems when being input or output, whi
 came from.  If you really really know what you are doing you can turn
 off this warning by C<no warnings 'surrogate';>.
 
+=item Unimplemented
+
+(F) In Perl 5.12 and above, you have executed an
+L<ellipsis statement|perlsyn/"The Ellipsis Statement">.  This is a
+bare C<...;>, meant to be used to allow you to outline code that
+is to be written, but is not complete, similar to the following:
+
+    sub not_done_yet {
+      my($self, $arg1, $arg2) = @_;
+      ...
+    }
+
+If C<not_done_yet()> is called, Perl will die with an C<Unimplemented> error
+at the line containing C<...>.
+
 =item Unknown charname '%s'
 
 (F) The name you used inside C<\N{}> is unknown to Perl.  Check the
@@ -6753,6 +7025,8 @@ compiler does not recognize.  Check your
 (P) Perl was about to print an error message in C<$@>, but the C<$@> variable
 did not exist, even after an attempt to create it.
 
+=item Unknown locale category %d
+
 =item Unknown locale category %d; can't set it to %s
 
 (W locale) You used a locale category that perl doesn't recognize, so it
@@ -6899,6 +7173,11 @@ in your Perl script (or eval) near the s
 tried  to run a compressed script, a binary program, or a directory as
 a Perl program.
 
+=item Unrecognized class attribute %s
+
+(F) You attempted to add a named attribute to a C<class> definition, but
+perl does not recognise the name of the requested attribute.
+
 =item Unrecognized escape \%c in character class in regex; marked by
 S<<-- HERE> in m/%s/
 
@@ -6929,6 +7208,11 @@ recognized by Perl.  The character(s) we
 this may change in a future version of Perl.  The S<<-- HERE> shows
 whereabouts in the regular expression the escape was discovered.
 
+=item Unrecognized field attribute %s
+
+(F) You attempted to add a named attribute to a C<field> definition, but
+perl does not recognise the name of the requested attribute.
+
 =item Unrecognized signal name "%s"
 
 (F) You specified a signal name to the kill() function that was not
@@ -7311,16 +7595,17 @@ repeatedly, the C</g> has no effect.
 
 =item Use of "goto" to jump into a construct is deprecated
 
-(D deprecated) Using C<goto> to jump from an outer scope into an inner
+(D deprecated::goto_construct) Using C<goto> to jump from an outer scope into an inner
 scope is deprecated and should be avoided.
 
 This was deprecated in Perl 5.12.
 
 =item Use of '%s' in \p{} or \P{} is deprecated because: %s
 
-(D deprecated) Certain properties are deprecated by Unicode, and may
-eventually be removed from the Standard, at which time Perl will follow
-along.  In the meantime, this message is raised to notify you.
+(D deprecated::unicode_property_name) Certain properties are deprecated
+by Unicode, and may eventually be removed from the Standard, at which
+time Perl will follow along. In the meantime, this message is raised to
+notify you.
 
 =item Use of inherited AUTOLOAD for non-method %s::%s() is no longer allowed
 
@@ -7338,12 +7623,13 @@ only C.  This usually means there's a be
 
 =item Use of '%s' is deprecated as a string delimiter
 
-(D deprecated) You used the given character as a starting delimiter of a
-string outside the scope of S<C<use feature 'extra_paired_delimiters'>>.
-This character is the mirror image of another Unicode character; within
-the scope of that feature, the two are considered a pair for delimitting
-strings.  It is planned to make that feature the default, at which point
-this usage would become illegal; hence this warning.
+(D deprecated::delimiter_will_be_paired) You used the given character as
+a starting delimiter of a string outside the scope of
+S<C<use feature 'extra_paired_delimiters'>>. This character is the
+mirror image of another Unicode character; within the scope of that
+feature, the two are considered a pair for delimitting strings. It is
+planned to make that feature the default, at which point this usage
+would become illegal; hence this warning.
 
 For now, you may live with this warning, or turn it off, but this code
 will no longer compile in a future version of Perl.  Or you can turn on
@@ -7771,12 +8057,12 @@ but in actual fact, you got
 
 So put in parentheses to say what you really mean.
 
-=item when is experimental
+=item when is deprecated
 
-(S experimental::smartmatch) C<when> depends on smartmatch, which is
-experimental.  Additionally, it has several special cases that may
-not be immediately obvious, and their behavior may change or
-even be removed in any future release of perl.  See the explanation
+(D deprecated::smartmatch) C<when> depends on smartmatch, which is
+deprecated.  Additionally, it has several special cases that may
+not be immediately obvious, and it will be removed in Perl 5.42.
+See the explanation
 under L<perlsyn/Experimental Details on given and when>.
 
 =item Wide character in %s
@@ -7857,7 +8143,7 @@ the beginning of the string being (un)pa
 
 =item 'x' outside of string in unpack
 
-(F) You had a pack template that specified a relative position after
+(F) You had an unpack template that specified a relative position after
 the end of the string being unpacked.  See L<perlfunc/pack>.
 
 =item YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!
Index: gnu/usr.bin/perl/pod/perlexperiment.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlexperiment.pod,v
diff -u -p -a -u -p -r1.7 perlexperiment.pod
--- gnu/usr.bin/perl/pod/perlexperiment.pod	8 Jul 2023 14:18:36 -0000	1.7
+++ gnu/usr.bin/perl/pod/perlexperiment.pod	21 Feb 2024 15:47:03 -0000
@@ -24,8 +24,12 @@ Introduced in Perl 5.10.0
 
 Modified in Perl 5.10.1, 5.12.0
 
+Deprecated in 5.38.0
+
+Will be removed in 5.42.0
+
 Using this feature triggers warnings in the category
-C<experimental::smartmatch>.
+C<deprecated>.
 
 The ticket for this experiment is
 L<[perl #13173]|https://github.com/Perl/perl5/issues/13173>.
Index: gnu/usr.bin/perl/pod/perlfilter.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlfilter.pod,v
diff -u -p -a -u -p -r1.4 perlfilter.pod
--- gnu/usr.bin/perl/pod/perlfilter.pod	15 Feb 2023 01:36:35 -0000	1.4
+++ gnu/usr.bin/perl/pod/perlfilter.pod	21 Feb 2024 15:47:03 -0000
@@ -12,7 +12,7 @@ about what source filters are, how they 
 own.
 
 The original purpose of source filters was to let you encrypt your
-program source to prevent casual piracy. This isn't all they can do, as
+program source to prevent casual reading. This isn't all they can do, as
 you'll soon learn. But first, the basics.
 
 =head1 CONCEPTS
@@ -205,18 +205,17 @@ source filter (see Decryption Filters, b
 All decryption filters work on the principle of "security through
 obscurity." Regardless of how well you write a decryption filter and
 how strong your encryption algorithm is, anyone determined enough can
-retrieve the original source code. The reason is quite simple - once
-the decryption filter has decrypted the source back to its original
-form, fragments of it will be stored in the computer's memory as Perl
-parses it. The source might only be in memory for a short period of
-time, but anyone possessing a debugger, skill, and lots of patience can
-eventually reconstruct your program.
+retrieve the original source code. The reason is quite simple:
+in order to execute your program Perl must parse its source code.
+This means that Perl must have all the information needed to decrypt
+your program, and that means that that information is also available to
+anyone able to run the program.
 
 That said, there are a number of steps that can be taken to make life
-difficult for the potential cracker. The most important: Write your
+difficult for the potential reader. The most important: Write your
 decryption filter in C and statically link the decryption module into
 the Perl binary. For further tips to make life difficult for the
-potential cracker, see the file I<decrypt.pm> in the source filters
+potential reader, see the file I<decrypt.pm> in the source filters
 distribution.
 
 =back
Index: gnu/usr.bin/perl/pod/perlfunc.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlfunc.pod,v
diff -u -p -a -u -p -r1.26 perlfunc.pod
--- gnu/usr.bin/perl/pod/perlfunc.pod	15 Feb 2023 01:36:35 -0000	1.26
+++ gnu/usr.bin/perl/pod/perlfunc.pod	21 Feb 2024 15:47:03 -0000
@@ -262,6 +262,7 @@ L<C<dump>|/dump LABEL>, L<C<eval>|/eval 
 L<C<evalbytes>|/evalbytes EXPR>, L<C<exit>|/exit EXPR>,
 L<C<__FILE__>|/__FILE__>, L<C<goto>|/goto LABEL>,
 L<C<last>|/last LABEL>, L<C<__LINE__>|/__LINE__>,
+L<C<method>|/method NAME BLOCK>,
 L<C<next>|/next LABEL>, L<C<__PACKAGE__>|/__PACKAGE__>,
 L<C<redo>|/redo LABEL>, L<C<return>|/return EXPR>,
 L<C<sub>|/sub NAME BLOCK>, L<C<__SUB__>|/__SUB__>,
@@ -293,9 +294,15 @@ current scope.
 
 =for Pod::Functions =Namespace
 
-L<C<caller>|/caller EXPR>, L<C<import>|/import LIST>,
-L<C<local>|/local EXPR>, L<C<my>|/my VARLIST>, L<C<our>|/our VARLIST>,
-L<C<package>|/package NAMESPACE>, L<C<state>|/state VARLIST>,
+L<C<caller>|/caller EXPR>,
+L<C<class>|/class NAMESPACE>, 
+L<C<field>|/field VARNAME>,
+L<C<import>|/import LIST>,
+L<C<local>|/local EXPR>,
+L<C<my>|/my VARLIST>,
+L<C<our>|/our VARLIST>,
+L<C<package>|/package NAMESPACE>,
+L<C<state>|/state VARLIST>,
 L<C<use>|/use Module VERSION LIST>
 
 L<C<state>|/state VARLIST> is available only if the
@@ -343,11 +350,18 @@ X<object> X<class> X<package>
 
 =for Pod::Functions =Objects
 
-L<C<bless>|/bless REF,CLASSNAME>, L<C<dbmclose>|/dbmclose HASH>,
+L<C<bless>|/bless REF,CLASSNAME>,
+L<C<class>|/class NAMESPACE>,
+L<C<dbmclose>|/dbmclose HASH>,
 L<C<dbmopen>|/dbmopen HASH,DBNAME,MASK>,
-L<C<package>|/package NAMESPACE>, L<C<ref>|/ref EXPR>,
-L<C<tie>|/tie VARIABLE,CLASSNAME,LIST>, L<C<tied>|/tied VARIABLE>,
-L<C<untie>|/untie VARIABLE>, L<C<use>|/use Module VERSION LIST>
+L<C<field>|/field VARNAME>,
+L<C<method>|/method NAME BLOCK>,
+L<C<package>|/package NAMESPACE>,
+L<C<ref>|/ref EXPR>,
+L<C<tie>|/tie VARIABLE,CLASSNAME,LIST>,
+L<C<tied>|/tied VARIABLE>,
+L<C<untie>|/untie VARIABLE>,
+L<C<use>|/use Module VERSION LIST>
 
 =item Low-level socket functions
 X<socket> X<sock>
@@ -426,6 +440,7 @@ L<C<time>|/time>, L<C<times>|/times>
 
 =for Pod::Functions =!Non-functions
 
+C<ADJUST>,
 C<and>,
 C<AUTOLOAD>,
 C<BEGIN>,
@@ -931,24 +946,63 @@ X<bless>
 
 =for Pod::Functions create an object
 
-This function tells the thingy referenced by REF that it is now an object
-in the CLASSNAME package.  If CLASSNAME is an empty string, it is
-interpreted as referring to the C<main> package.
-If CLASSNAME is omitted, the current package
-is used.  Because a L<C<bless>|/bless REF,CLASSNAME> is often the last
-thing in a constructor, it returns the reference for convenience.
-Always use the two-argument version if a derived class might inherit the
-method doing the blessing.  See L<perlobj> for more about the blessing
-(and blessings) of objects.
-
-Consider always blessing objects in CLASSNAMEs that are mixed case.
-Namespaces with all lowercase names are considered reserved for
-Perl pragmas.  Builtin types have all uppercase names.  To prevent
-confusion, you may wish to avoid such package names as well.
-It is advised to avoid the class name C<0>, because much code erroneously
-uses the result of L<C<ref>|/ref EXPR> as a truth value.
+C<bless> tells Perl to mark the item referred to by C<REF> as an
+object in a package.  The two-argument version of C<bless> is
+always preferable unless there is a specific reason to I<not>
+use it.
+
+=over
+
+=item * Bless the referred-to item into a specific package
+(recommended form):
+
+    bless $ref, $package;
+
+The two-argument form adds the object to the package specified
+as the second argument.
+
+=item * Bless the referred-to item into package C<main>:
+
+    bless $ref, "";
+
+If the second argument is an empty string, C<bless> adds the
+object to package C<main>.
+
+=item * Bless the referred-to item into the current package (not
+inheritable):
+
+    bless $ref;
+
+If C<bless> is used without its second argument, the object is
+created in the current package. The second argument should
+always be supplied if a derived class might inherit a method
+executing C<bless>. Because it is a potential source of bugs,
+one-argument C<bless> is discouraged.
+
+=back
+
+See L<perlobj> for more about the blessing (and blessings) of
+objects.
+
+L<C<bless>|/bless REF,CLASSNAME> returns its first argument, the
+supplied reference, as the value of the function; since C<bless>
+is commonly the last thing executed in constructors, this means
+that the reference to the object is returned as the
+constructor's value and allows the caller to immediately use
+this returned object in method calls.
+
+C<CLASSNAME> should always be a mixed-case name, as
+all-uppercase and all-lowercase names are meant to be used only
+for Perl builtin types and pragmas, respectively. Avoid creating
+all-uppercase or all-lowercase package names to prevent
+confusion.
+
+Also avoid <Cbless>ing things into the class name C<0>; this
+will cause code which (erroneously) checks the result of
+L<C<ref>|/ref EXPR> to see if a reference is C<bless>ed to fail,
+as "0", a falsy value, is returned.
 
-See L<perlmod/"Perl Modules">.
+See L<perlmod/"Perl Modules"> for more details.
 
 =item break
 
@@ -1278,6 +1332,21 @@ may be outside of the new root.
 
 Portability issues: L<perlport/chroot>.
 
+=item class NAMESPACE
+
+=item class NAMESPACE VERSION
+
+=item class NAMESPACE BLOCK
+
+=item class NAMESPACE VERSION BLOCK
+
+=for Pod::Functions declare a separate global namespace that is an object class
+
+Declares the BLOCK or the rest of the compilation unit as being in the given
+namespace, which implements an object class.  This behaves similarly to
+L<C<package>|/package NAMESPACE>, except that the newly-created package behaves
+as a class.
+
 =item close FILEHANDLE
 X<close>
 
@@ -1525,7 +1594,7 @@ filehandle, even though it looks like on
 database (without the F<.dir> or F<.pag> extension if any).  If the
 database does not exist, it is created with protection specified by MASK
 (as modified by the L<C<umask>|/umask EXPR>).  To prevent creation of
-the database if it doesn't exist, you may specify a MODE of 0, and the
+the database if it doesn't exist, you may specify a MASK of 0, and the
 function will return a false value if it can't find an existing
 database.  If your system supports only the older DBM functions, you may
 make only one L<C<dbmopen>|/dbmopen HASH,DBNAME,MASK> call in your
@@ -2237,6 +2306,16 @@ context of the current Perl program, any
 visible to it, and any package variable settings or subroutine and
 format definitions remain afterwards.
 
+Note that when C<BEGIN {}> blocks are embedded inside of an eval block
+the contents of the block will be executed immediately and before the rest
+of the eval code is executed. You can disable this entirely by
+
+   local ${^MAX_NESTED_EVAL_BEGIN_BLOCKS} = 0;
+   eval $string;
+
+which will cause any embedded C<BEGIN> blocks in C<$string> to throw an
+exception.
+
 =over 4
 
 =item Under the L<C<"unicode_eval"> feature|feature/The 'unicode_eval' and 'evalbytes' features>
@@ -2739,6 +2818,15 @@ A special token that returns the name of
 It can be altered by the mechanism described at
 L<perlsyn/"Plain Old Comments (Not!)">.
 
+=item field VARNAME
+X<field>
+
+=for Pod::Functions declare a field variable of the current class
+
+Declares a new field variable within the current class.  Methods and
+C<ADJUST> blocks of the class will have access to this variable as if it
+was a lexical in scope at that point.
+
 =item fileno FILEHANDLE
 X<fileno>
 
@@ -4105,7 +4193,7 @@ This makes it easy to get a month name f
     print "$abbr[$mon] $mday";
     # $mon=9, $mday=18 gives "Oct 18"
 
-C<$year> contains the number of years since 1900.  To get a 4-digit
+C<$year> contains the number of years since 1900.  To get the full
 year write:
 
     $year += 1900;
@@ -4303,6 +4391,16 @@ or to force an anon hash constructor use
 
 to get a list of anonymous hashes each with only one entry apiece.
 
+=item method NAME BLOCK
+X<method>
+
+=item method NAME : ATTRS BLOCK
+
+=for Pod::Functions declare a method of a class
+
+Creates a new named method in the scope of the class that it appears within.
+This is only valid inside a L<C<class>|/class NAMESPACE> declaration.
+
 =item mkdir FILENAME,MODE
 X<mkdir> X<md> X<directory, create>
 
@@ -4326,6 +4424,8 @@ a restrictive MODE and give the user no 
 The exceptions to this rule are when the file or directory should be
 kept private (mail files, for instance).  The documentation for
 L<C<umask>|/umask EXPR> discusses the choice of MODE in more detail.
+If bits in MODE other than the permission bits are set, the result may
+be implementation defined, per POSIX 1003.1-2008.
 
 Note that according to the POSIX 1003.1-1996 the FILENAME may have any
 number of trailing slashes.  Some operating and filesystems do not get
@@ -4572,7 +4672,7 @@ Reading from a file:
         or die "Can't open < input.txt: $!";
 
     # Process every line in input.txt
-    while (my $line = <$fh>) {
+    while (my $line = readline($fh)) {
         #
         # ... do something interesting with $line here ...
         #
@@ -5986,14 +6086,26 @@ X<pop> X<stack>
 
 =for Pod::Functions remove the last element from an array and return it
 
-Pops and returns the last value of the array, shortening the array by
+Removes and returns the B<last> element of the array, shortening the array by
 one element.
 
-Returns the undefined value if the array is empty, although this may
-also happen at other times.  If ARRAY is omitted, pops the
-L<C<@ARGV>|perlvar/@ARGV> array in the main program, but the
-L<C<@_>|perlvar/@_> array in subroutines, just like
-L<C<shift>|/shift ARRAY>.
+    my @arr  = ('cat', 'dog', 'mouse');
+    my $item = pop(@arr); # 'mouse'
+
+    # @arr is now ('cat', 'dog')
+
+Returns C<undef> if the array is empty.
+
+B<Note:> C<pop> may also return C<undef> if the last element in the array
+is C<undef>.
+
+    my @arr  = ('one', 'two', undef);
+    my $item = pop(@arr); # undef
+
+If ARRAY is omitted, C<pop> operates on the L<C<@ARGV>|perlvar/@ARGV> array
+in the main program, but the L<C<@_>|perlvar/@_> array in subroutines. C<pop>
+will operate on the C<@ARGV> array in C<eval STRING>, C<BEGIN {}>, C<INIT {}>,
+C<CHECK {}> blocks.
 
 Starting with Perl 5.14, an experimental feature allowed
 L<C<pop>|/pop ARRAY> to take a
@@ -6144,16 +6256,20 @@ X<push> X<stack>
 
 =for Pod::Functions append one or more elements to an array
 
-Treats ARRAY as a stack by appending the values of LIST to the end of
-ARRAY.  The length of ARRAY increases by the length of LIST.  Has the same
-effect as
+Adds one or more items to the B<end> of an array.
 
-    for my $value (LIST) {
-        $ARRAY[++$#ARRAY] = $value;
-    }
+	my @animals = ("cat");
+	push(@animals, "mouse"); # ("cat", "mouse")
+
+	my @colors = ("red");
+	push(@colors, ("blue", "green")); # ("red", "blue", "green")
+
+Returns the number of elements in the array following the completed
+L<C<push>|/push ARRAY,LIST>.
 
-but is more efficient.  Returns the number of elements in the array following
-the completed L<C<push>|/push ARRAY,LIST>.
+	my $color_count = push(@colors, ("yellow", "purple"));
+
+	say "There are $color_count colors in the updated array";
 
 Starting with Perl 5.14, an experimental feature allowed
 L<C<push>|/push ARRAY,LIST> to take a
@@ -6704,8 +6820,14 @@ would have semantics similar to the foll
             croak "Compilation failed in require";
         }
 
-        foreach $prefix (@INC) {
-            if (ref($prefix)) {
+        local $INC;
+        # this type of loop lets a hook overwrite $INC if they wish
+        for($INC = 0; $INC < @INC; $INC++) {
+            my $prefix = $INC[$INC];
+            if (!defined $prefix) {
+                next;
+            }
+            if (ref $prefix) {
                 #... do other stuff - see text below ....
             }
             # (see text below about possible appending of .pmc
@@ -6734,11 +6856,17 @@ would have semantics similar to the foll
 Note that the file will not be included twice under the same specified
 name.
 
-The file must return true as the last statement to indicate
+Historically the file must return true as the last statement to indicate
 successful execution of any initialization code, so it's customary to
 end such a file with C<1;> unless you're sure it'll return true
 otherwise.  But it's better just to put the C<1;>, in case you add more
-statements.
+statements. As of 5.37.6 this requirement may be avoided by enabling
+the 'module_true' feature, which is enabled by default in modern
+version bundles. Thus code with C<use v5.37;> no longer needs to concern
+itself with this issue. See L<feature> for more details. Note that this
+affects the compilation unit within which the feature is used, and using
+it before requiring a module will not change the behavior of existing
+modules that do not themselves also use it.
 
 If EXPR is a bareword, L<C<require>|/require VERSION> assumes a F<.pm>
 extension and replaces C<::> with C</> in the filename for you,
@@ -6782,16 +6910,20 @@ F<.pmc> extension.  If this file is foun
 any file ending in a F<.pm> extension. This applies to both the explicit
 C<require "Foo/Bar.pm";> form and the C<require Foo::Bar;> form.
 
-You can also insert hooks into the import facility by putting Perl code
-directly into the L<C<@INC>|perlvar/@INC> array.  There are three forms
-of hooks: subroutine references, array references, and blessed objects.
+You can also insert hooks into the import facility by putting Perl
+coderefs or objects directly into the L<C<@INC>|perlvar/@INC> array.
+There are two types of hooks, INC filters, and INCDIR hooks, and there
+are three forms of representing a hook: subroutine references, array
+references, and blessed objects.
 
 Subroutine references are the simplest case.  When the inclusion system
-walks through L<C<@INC>|perlvar/@INC> and encounters a subroutine, this
-subroutine gets called with two parameters, the first a reference to
-itself, and the second the name of the file to be included (e.g.,
-F<Foo/Bar.pm>).  The subroutine should return either nothing or else a
-list of up to four values in the following order:
+walks through L<C<@INC>|perlvar/@INC> and encounters a subroutine, unless
+this subroutine is blessed and supports an INCDIR hook this
+subroutine will be assumed to be an INC hook will be called with two
+parameters, the first a reference to itself, and the second the name of
+the file to be included (e.g., F<Foo/Bar.pm>).  The subroutine should
+return either nothing or else a list of up to four values in the
+following order:
 
 =over
 
@@ -6823,6 +6955,9 @@ Optional state for the subroutine.  The 
 
 =back
 
+C<AUTOLOAD> cannot be used to resolve the C<INCDIR> method, C<INC> is
+checked first, and C<AUTOLOAD> would resolve that.
+
 If an empty list, L<C<undef>|/undef EXPR>, or nothing that matches the
 first 3 values above is returned, then L<C<require>|/require VERSION>
 looks at the remaining elements of L<C<@INC>|perlvar/@INC>.
@@ -6830,10 +6965,37 @@ Note that this filehandle must be a real
 or reference to a typeglob, whether blessed or unblessed); tied filehandles
 will be ignored and processing will stop there.
 
-If the hook is an array reference, its first element must be a subroutine
-reference.  This subroutine is called as above, but the first parameter is
-the array reference.  This lets you indirectly pass arguments to
-the subroutine.
+If the hook is an object, it should provide an C<INC> or C<INCDIR>
+method that will be called as above, the first parameter being the
+object itself. If it does not provide either method, and the object is
+not CODE ref then an exception will be thrown, otherwise it will simply
+be executed like an unblessed CODE ref would. Note that you must fully
+qualify the method name when you declare an C<INC> sub (unlike the
+C<INCDIR> sub), as the unqualified symbol C<INC> is always forced into
+package C<main>.  Here is a typical code layout for an C<INC> hook:
+
+    # In Foo.pm
+    package Foo;
+    sub new { ... }
+    sub Foo::INC {
+        my ($self, $filename) = @_;
+        ...
+    }
+
+    # In the main program
+    push @INC, Foo->new(...);
+
+If the hook is an array reference, its first element must be a
+subroutine reference or an object as described above. When the first
+element is an object that supports an C<INC> or C<INCDIR> method then
+the method will be called with the object as the first argument, the
+filename requested as the second, and the hook array reference as the
+the third. When the first element is a subroutine then it will be
+called with the array as the first argument, and the filename as the
+second, no third parameter will be passed in. In both forms you can
+modify the contents of the array to provide state between calls, or
+whatever you like.
+
 
 In other words, you can write:
 
@@ -6853,26 +7015,130 @@ or:
         ...
     }
 
-If the hook is an object, it must provide an C<INC> method that will be
-called as above, the first parameter being the object itself.  (Note that
-you must fully qualify the sub's name, as unqualified C<INC> is always forced
-into package C<main>.)  Here is a typical code layout:
+or:
 
-    # In Foo.pm
-    package Foo;
-    sub new { ... }
-    sub Foo::INC {
-        my ($self, $filename) = @_;
+    push @INC, [ HookObj->new(), $x, $y, ... ];
+    sub HookObj::INC {
+        my ($self, $filename, $arrayref)= @_;
+        my (undef, @parameters) = @$arrayref;
         ...
     }
 
-    # In the main program
-    push @INC, Foo->new(...);
-
 These hooks are also permitted to set the L<C<%INC>|perlvar/%INC> entry
 corresponding to the files they have loaded.  See L<perlvar/%INC>.
+Should an C<INC> hook not do this then perl will set the C<%INC> entry
+to be the hook reference itself.
+
+A hook may also be used to rewrite the C<@INC> array. While this might
+sound strange, there are situations where it can be very useful to do
+this. Such hooks usually just return undef and do not mix filtering and
+C<@INC> modifications. While in older versions of perl having a hook
+modify C<@INC> was fraught with issues and could even result in
+segfaults or assert failures, as of 5.37.7 the logic has been made much
+more robust and the hook now has control over the loop iteration if it
+wishes to do so.
+
+There is a now a facility to control the iterator for the C<@INC> array
+traversal that is performed during require. The C<$INC> variable will be
+initialized with the index of the currently executing hook. Once the
+hook returns the next slot in C<@INC> that will be checked will be the
+integer successor of value in C<$INC> (or -1 if it is undef). For example
+the following code
+
+    push @INC, sub {
+        splice @INC, $INC, 1; # remove this hook from @INC
+        unshift @INC, sub { warn "A" };
+        undef $INC; # reset the $INC iterator so we
+                    # execute the newly installed sub
+                    # immediately.
+    };
+
+would install a sub into C<@INC> that when executed as a hook (by for
+instance a require of a file that does not exist), the hook will splice
+itself out of C<@INC>, and add a new sub to the front that will warn
+whenever someone does a require operation that requires an C<@INC>
+search, and then immediately execute that hook.
+
+Prior to 5.37.7, there was no way to cause perl to use the newly
+installed hook immediately, or to inspect any changed items in C<@INC> to
+the left of the iterator, and so the warning would only be generated on
+the second call to require. In more recent perl the presence of the last
+statement which undefines C<$INC> will cause perl to restart the
+traversal of the C<@INC> array at the beginning and execute the newly
+installed sub immediately.
+
+Whatever value C<$INC> held, if any, will be restored at the end of the
+require. Any changes made to C<$INC> during the lifetime of the hook
+will be unrolled after the hook exits, and its value only has meaning
+immediately after execution of the hook, thus setting C<$INC> to some
+value prior to executing a C<require> will have no effect on how the
+require executes at all.
+
+As of 5.37.7 C<@INC> values of undef will be silently ignored.
+
+The function C<require()> is difficult to wrap properly. Many modules
+consult the stack to find information about their caller, and injecting
+a new stack frame by wrapping C<require()> often breaks things.
+Nevertheless it can be very helpful to have the ability to perform
+actions before and after a C<require>, for instance for trace utilities
+like C<Devel::TraceUse> or to measure time to load and the memory
+consumption of the require graph. Because of the difficulties in safely
+creating a C<require()> wrapper in 5.37.10 we introduced a new mechanism.
+
+As of 5.37.10, prior to any other actions it performs, C<require> will
+check if C<${^HOOK}{require__before}> contains a coderef, and if it does
+it will be called with the filename form of the item being loaded. The hook
+may modify C<$_[0]> to load a different filename, or it may throw a fatal
+exception to cause the require to fail, which will be treated as though the
+required code itself had thrown an exception.
+
+The C<${^HOOK}{require__before}> hook may return a code reference, in
+which case the code reference will be executed (in an eval with the
+filname as a parameter) after the require completes. It will be executed
+regardless of how the compilation completed, and even if the require
+throws a fatal exception.  The function may consult C<%INC> to determine
+if the require failed or not.  For instance the following code will print
+some diagnostics before and after every C<require> statement.  The
+example also includes logic to chain the signal, so that multiple
+signals can cooperate. Well behaved C<${^HOOK}{require__before}>
+handlers should always take this into account.
+
+    {
+        use Scalar::Util qw(reftype);
+        my $old_hook = ${^HOOK}{require__before};
+        local ${^HOOK}{require__before} = sub {
+            my ($name) = @_;
+            my $old_hook_ret;
+            $old_hook_ret = $old_hook->($name) if $old_hook;
+            warn "Requiring: $name\n";
+            return sub {
+                $old_hook_ret->() if ref($old_hook_ret)
+                                  && reftype($old_hook_ret) eq "CODE";
+                warn sprintf "Finished requiring %s: %s\n",
+                        $name, $INC{$name} ? "loaded" :"failed";
+            };
+        };
+        require Whatever;
+    }
+
+This hook executes for ALL C<require> statements, unlike C<INC> and
+C<INCDIR> hooks, which are only executed for relative file names, and it
+executes first before any other special behaviour inside of require.
+Note that the initial hook in C<${^HOOK}{require__before}> is *not*
+executed inside of an eval, and throwing an exception will stop further
+processing, but the after hook it may return is executed inside of an
+eval, and any exceptions it throws will be silently ignored.  This is
+because it executes inside of the scope cleanup logic that is triggered
+after the require completes, and an exception at this time would not
+stop the module from being loaded, etc.
+
+There is a similar hook that fires after require completes,
+C<${^HOOK}{require__after}>, which will be called after each require statement
+completes, either via an exception or successfully. It will be called with
+the filename of the most recently executed require statement. It is executed
+in an eval, and will not in any way affect execution.
 
-For a yet-more-powerful import facility, see
+For a yet-more-powerful import facility built around C<require>, see
 L<C<use>|/use Module VERSION LIST> and L<perlmod>.
 
 =item reset EXPR
@@ -7142,10 +7408,10 @@ X<select> X<filehandle, default>
 
 Returns the currently selected filehandle.  If FILEHANDLE is supplied,
 sets the new current default filehandle for output.  This has two
-effects: first, a L<C<write>|/write FILEHANDLE> or a L<C<print>|/print
-FILEHANDLE LIST> without a filehandle
-default to this FILEHANDLE.  Second, references to variables related to
-output will refer to this output channel.
+effects: first, a L<C<write>|/write FILEHANDLE>,  L<C<print>|/print
+FILEHANDLE LIST>, or L<C<say>|/say FILEHANDLE LIST> without a
+filehandle default to this FILEHANDLE.  Second, references to variables
+related to output will refer to this output channel.
 
 For example, to set the top-of-form format for more than one
 output channel, you might do the following:
@@ -7168,6 +7434,34 @@ methods, preferring to write the last ex
 (Prior to Perl version 5.14, you have to C<use IO::Handle;> explicitly
 first.)
 
+Whilst you can use C<select> to temporarily "capture" the output of
+C<print> like this:
+
+    {
+        my $old_handle = select $new_handle;
+
+        # This goes to $new_handle:
+        print "ok 1\n";
+        ...
+
+        select $old_handle;
+    }
+
+you might find it easier to localize the typeglob instead:
+
+    {
+        local *STDOUT = $new_handle;
+
+        print "ok 1\n";
+        ...
+    }
+
+The two are not exactly equivalent, but the latter might be clearer and will
+restore STDOUT if the wrapped code dies.  The difference is that in the
+former, the original STDOUT can still be accessed by explicitly using it in a
+C<print> statement (as C<print STDOUT ...>), whereas in the latter the meaning
+of the STDOUT handle itself has temporarily been changed.
+
 Portability issues: L<perlport/select>.
 
 =item select RBITS,WBITS,EBITS,TIMEOUT
@@ -7376,14 +7670,25 @@ X<shift>
 
 =for Pod::Functions remove the first element of an array, and return it
 
-Shifts the first value of the array off and returns it, shortening the
-array by 1 and moving everything down.  If there are no elements in the
-array, returns the undefined value.  If ARRAY is omitted, shifts the
-L<C<@_>|perlvar/@_> array within the lexical scope of subroutines and
-formats, and the L<C<@ARGV>|perlvar/@ARGV> array outside a subroutine
-and also within the lexical scopes
-established by the C<eval STRING>, C<BEGIN {}>, C<INIT {}>, C<CHECK {}>,
-C<UNITCHECK {}>, and C<END {}> constructs.
+Removes and returns the B<first> element of an array. This shortens the
+array by one and moves everything down.
+
+    my @arr  = ('cat', 'dog');
+    my $item = shift(@arr); # 'cat'
+
+    # @arr is now ('dog');
+
+Returns C<undef> if the array is empty.
+
+B<Note:> C<shift> may also return C<undef> if the first element in the array
+is C<undef>.
+
+    my @arr  = (undef, 'two', 'three');
+    my $item = shift(@arr); # undef
+
+If ARRAY is omitted, C<shift> operates on the C<@ARGV> array in the main
+program, and the C<@_> array in subroutines. C<shift> will operate on the
+C<@ARGV> array in C<eval STRING>, C<BEGIN {}>, C<INIT {}>, C<CHECK {}> blocks.
 
 Starting with Perl 5.14, an experimental feature allowed
 L<C<shift>|/shift ARRAY> to take a
@@ -7498,7 +7803,10 @@ argument is given.  Returns the integer 
 
 EXPR should be a positive integer. If called with a negative integer,
 L<C<sleep>|/sleep EXPR> does not sleep but instead emits a warning, sets
-$! (C<errno>), and returns zero.
+C<$!> (C<errno>), and returns zero.
+
+If called with a non-integer, the fractional part is ignored.
+
 
 C<sleep 0> is permitted, but a function call to the underlying platform
 implementation still occurs, with any side effects that may have.
@@ -7593,7 +7901,7 @@ undefined.
 If SUBNAME or BLOCK is omitted, L<C<sort>|/sort SUBNAME LIST>s in
 standard string comparison
 order.  If SUBNAME is specified, it gives the name of a subroutine
-that returns an integer less than, equal to, or greater than C<0>,
+that returns a numeric value less than, equal to, or greater than C<0>,
 depending on how the elements of the list are to be ordered.  (The
 C<< <=> >> and C<cmp> operators are extremely useful in such routines.)
 SUBNAME may be a scalar variable name (unsubscripted), in which case
@@ -8450,7 +8758,7 @@ The point of the function is to "seed" t
 function so that L<C<rand>|/rand EXPR> can produce a different sequence
 each time you run your program.  When called with a parameter,
 L<C<srand>|/srand EXPR> uses that for the seed; otherwise it
-(semi-)randomly chooses a seed.  In either case, starting with Perl 5.14,
+(semi-)randomly chooses a seed (see below).  In either case, starting with Perl 5.14,
 it returns the seed.  To signal that your code will work I<only> on Perls
 of a recent vintage:
 
@@ -8482,6 +8790,20 @@ combinations to test comprehensively in 
 can test a random subset each time, and should there be a failure, log the seed
 used for that run so that it can later be used to reproduce the same results.
 
+If the C<PERL_RAND_SEED> environment variable is set to a non-negative
+integer during process startup then calls to C<srand()> with no
+arguments will initialize the perl random number generator with a
+consistent seed each time it is called, whether called explicitly with
+no arguments or implicitly via use of C<rand()>. The exact seeding that
+a given C<PERL_RAND_SEED> will produce is deliberately unspecified, but
+using different values for C<PERL_RAND_SEED> should produce different
+results. This is intended for debugging and performance analysis and is
+only guaranteed to produce consistent results between invocations of the
+same perl executable running the same code when all other factors are
+equal. The environment variable is read only once during process
+startup, and changing it during the program flow will not affect the
+currently running process. See L<perlrun> for more details.
+
 B<L<C<rand>|/rand EXPR> is not cryptographically secure.  You should not rely
 on it in security-sensitive situations.>  As of this writing, a
 number of third-party CPAN modules offer random number generators
@@ -8779,7 +9101,7 @@ Here's an example showing the behavior f
 An alternative to using
 L<C<substr>|/substr EXPR,OFFSET,LENGTH,REPLACEMENT> as an lvalue is to
 specify the
-replacement string as the 4th argument.  This allows you to replace
+REPLACEMENT string as the 4th argument.  This allows you to replace
 parts of the EXPR and return what was there before in one operation,
 just as you can with
 L<C<splice>|/splice ARRAY,OFFSET,LENGTH,LIST>.
@@ -9423,17 +9745,21 @@ X<ucfirst> X<uppercase>
 
 =item ucfirst
 
-=for Pod::Functions return a string with just the next letter in upper case
+=for Pod::Functions return a string with the first letter in upper case
 
-Returns the value of EXPR with the first character in uppercase
-(titlecase in Unicode).  This is the internal function implementing
-the C<\u> escape in double-quoted strings.
+Returns the value of EXPR with the B<first> character in uppercase
+(Unicode calls this titlecase). If EXPR is omitted, C<ucfirst> uses L<C<$_>|perlvar/$_>.
 
-If EXPR is omitted, uses L<C<$_>|perlvar/$_>.
+    my $str = ucfirst("hello world!"); # "Hello world!"
 
 This function behaves the same way under various pragmas, such as in a locale,
 as L<C<lc>|/lc EXPR> does.
 
+B<Note:> This is the internal function implementing the C<\u> escape in
+double-quoted strings.
+
+    my $str = "\uperl\E is great"; # "Perl is great"
+
 =item umask EXPR
 X<umask>
 
@@ -9619,12 +9945,21 @@ X<unshift>
 
 =for Pod::Functions prepend more elements to the beginning of a list
 
-Does the opposite of a L<C<shift>|/shift ARRAY>.  Or the opposite of a
-L<C<push>|/push ARRAY,LIST>,
-depending on how you look at it.  Prepends list to the front of the
-array and returns the new number of elements in the array.
+Add one or more elements to the B<beginning> of an array. This is the
+opposite of a L<C<shift>|/shift ARRAY>.
+
+    my @animals = ("cat");
+    unshift(@animals, "mouse"); # ("mouse", "cat")
+
+    my @colors = ("red");
+    unshift(@colors, ("blue", "green")); # ("blue", "green", "red")
+
+Returns the new number of elements in the updated array.
+
+    # Return value is the number of items in the updated array
+    my $color_count = unshift(@colors, ("yellow", "purple"));
 
-    unshift(@ARGV, '-e') unless $ARGV[0] =~ /^-/;
+    say "There are $color_count colors in the updated array";
 
 Note the LIST is prepended whole, not one element at a time, so the
 prepended elements stay in the same order.  Use
@@ -10514,6 +10849,14 @@ documented in L<perlsyn/"Try Catch Excep
 
 This flow-control keyword related to the experimental C<defer> feature is
 documented in L<perlsyn/"defer blocks">.
+
+=back
+
+=over
+
+=item ADJUST
+
+This class-related phaser block is documented in L<perlclass>.
 
 =back
 
Index: gnu/usr.bin/perl/pod/perlgit.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlgit.pod,v
diff -u -p -a -u -p -r1.6 perlgit.pod
--- gnu/usr.bin/perl/pod/perlgit.pod	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/pod/perlgit.pod	21 Feb 2024 15:47:03 -0000
@@ -785,6 +785,27 @@ When describing the merge commit, explai
 keep in mind that this description will probably be used by the
 eventual release engineer when reviewing the next perldelta document.
 
+If the subsequent I<push> fails then you must be careful on how you I<rebase>.
+If you use
+
+  % git rebase p5p/blead
+
+or
+
+  % git pull --rebase
+
+then your carefully created merge commit will be lost! To avoid this you
+can use:
+
+  % git fetch p5p
+  % git rebase --rebase-merges p5p/blead
+
+This will recreate your merge commit.
+
+(Should you be stuck with an older version of git (prior to 2.18), then
+C<git rebase> will not have the C<--rebase-merges> switch, instead you
+have to use the C<--preserve-merges> switch.)
+
 =head2 Committing to maintenance versions
 
 Maintenance versions should only be altered to add critical bug fixes,
Index: gnu/usr.bin/perl/pod/perlgov.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlgov.pod,v
diff -u -p -a -u -p -r1.1.1.2 perlgov.pod
--- gnu/usr.bin/perl/pod/perlgov.pod	15 Feb 2023 01:32:49 -0000	1.1.1.2
+++ gnu/usr.bin/perl/pod/perlgov.pod	21 Feb 2024 15:47:03 -0000
@@ -475,14 +475,27 @@ Vote, then the Core Team will select a V
 consensus cannot be reached within one week, the President of The Perl
 Foundation will select a Vote Administrator.
 
+=head1 Steering Council and Core Team Members
+
+The list below names the members of the Steering Council and Core Team
+responsible for creating the release of perl with which this document shipped.
+
+Remember, though that if you're reading the copy of this document that was
+installed with perl, it's very likely out of date.  Because every new stable
+feature release triggers an election, you're better off looking at L<the most
+up to date copy of this
+document|https://github.com/Perl/perl5/blob/blead/pod/perlgov.pod>, in the
+I<blead> branch of Perl's git repository.  Because it's git, you can also see
+how the membership has changed over time.
+
 =head1 Steering Council Members
 
 =over
 
-=item * Neil Bowers
-
 =item * Paul Evans
 
+=item * Philippe Bruhat
+
 =item * Ricardo Signes
 
 =back
@@ -503,18 +516,16 @@ The current members of the Perl Core Tea
 
 =item Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
 
-=item David Golden <xdg@xdg.me>
-
 =item David Mitchell <davem@iabyn.com>
 
+=item Graham Knop <haarg@haarg.org>
+
 =item H. Merijn Brand <perl5@tux.freedom.nl>
 
 =item Hugo van der Sanden <hv@crypt.org>
 
 =item James E Keenan <jkeenan@cpan.org>
 
-=item Jason McIntosh <jmac@jmac.org>
-
 =item Karen Etheridge <ether@cpan.org>
 
 =item Karl Williamson <khw@cpan.org>
@@ -545,6 +556,8 @@ The current members of the Perl Core Tea
 
 =item Tony Cook <tony@develop-help.com>
 
+=item Yves Orton <demerphq@gmail.com>
+
 =back
 
 =head2 Inactive Members
@@ -555,7 +568,11 @@ The current members of the Perl Core Tea
 
 =item Andy Dougherty <doughera@lafayette.edu>
 
+=item David Golden <xdg@xdg.me>
+
 =item Jan Dubois <jan@jandubois.com>
+
+=item Jason McIntosh <jmac@jmac.org>
 
 =item Jesse Vincent <jesse@fsck.com>
 
Index: gnu/usr.bin/perl/pod/perlguts.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlguts.pod,v
diff -u -p -a -u -p -r1.25 perlguts.pod
--- gnu/usr.bin/perl/pod/perlguts.pod	15 Feb 2023 01:36:35 -0000	1.25
+++ gnu/usr.bin/perl/pod/perlguts.pod	21 Feb 2024 15:47:03 -0000
@@ -61,17 +61,17 @@ A numeric constant can be specified with
 L<perlapi/C<UINTMAX_C>>, and similar.
 
 =for apidoc_section $integer
-=for apidoc Ayh||I8
+=for apidoc  Ayh ||IV
+=for apidoc_item ||I8
 =for apidoc_item ||I16
 =for apidoc_item ||I32
 =for apidoc_item ||I64
-=for apidoc_item ||IV
 
-=for apidoc Ayh||U8
+=for apidoc  Ayh ||UV
+=for apidoc_item ||U8
 =for apidoc_item ||U16
 =for apidoc_item ||U32
 =for apidoc_item ||U64
-=for apidoc_item ||UV
 
 =head2 Working with SVs
 
@@ -523,8 +523,8 @@ In general, though, it's best to use the
 
 =head2 Working with AVs
 
-There are two ways to create and load an AV.  The first method creates an
-empty AV:
+There are two main, longstanding ways to create and load an AV.  The first
+method creates an empty AV:
 
     AV*  newAV();
 
@@ -535,6 +535,20 @@ The second method both creates the AV an
 The second argument points to an array containing C<num> C<SV*>'s.  Once the
 AV has been created, the SVs can be destroyed, if so desired.
 
+Perl v5.36 added two new ways to create an AV and allocate a SV** array
+without populating it. These are more efficient than a newAV() followed by an
+av_extend().
+
+    /* Creates but does not initialize (Zero) the SV** array */
+    AV *av = newAV_alloc_x(1);
+    /* Creates and does initialize (Zero) the SV** array */
+    AV *av = newAV_alloc_xz(1);
+
+The numerical argument refers to the number of array elements to allocate, not
+an array index, and must be >0. The first form must only ever be used when all
+elements will be initialized before any read occurs. Reading a non-initialized
+SV* - i.e. treating a random memory address as a SV* - is a serious bug.
+
 Once the AV has been created, the following operations are possible on it:
 
     void  av_push(AV*, SV*);
@@ -587,6 +601,46 @@ This returns NULL if the variable does n
 See L</Understanding the Magic of Tied Hashes and Arrays> for more
 information on how to use the array access functions on tied arrays.
 
+=head3 More efficient working with new or vanilla AVs
+
+Perl v5.36 and v5.38 introduced streamlined, inlined versions of some
+functions:
+
+=over
+
+=item * C<av_store_simple>
+
+=item * C<av_fetch_simple>
+
+=item * C<av_push_simple>
+
+=back
+
+These are drop-in replacements, but can only be used on straightforward
+AVs that meet the following criteria:
+
+=over
+
+=item * are not magical
+
+=item * are not readonly
+
+=item * are "real" (refcounted) AVs
+
+=item * have an av_top_index value > -2
+
+=back
+
+AVs created using C<newAV()>, C<av_make>, C<newAV_alloc_x>, and
+C<newAV_alloc_xz> are all compatible at the time of creation. It is
+only if they are declared readonly or unreal, have magic attached, or
+are otherwise configured unusually that they will stop being compatible.
+
+Note that some interpreter functions may attach magic to an AV as part
+of normal operations. It is therefore safest, unless you are sure of the
+lifecycle of an AV, to only use these new functions close to the point
+of AV creation.
+
 =head2 Working with HVs
 
 To create an HV, you use the following routine:
@@ -1456,17 +1510,17 @@ will be lost.
                                              tables
  <  PERL_MAGIC_backref        vtbl_backref   For weak ref data
  @  PERL_MAGIC_arylen_p       (none)         To move arylen out of XPVAV
- B  PERL_MAGIC_bm             vtbl_regexp    Boyer-Moore 
+ B  PERL_MAGIC_bm             vtbl_regexp    Boyer-Moore
                                              (fast string search)
- c  PERL_MAGIC_overload_table vtbl_ovrld     Holds overload table 
+ c  PERL_MAGIC_overload_table vtbl_ovrld     Holds overload table
                                              (AMT) on stash
- D  PERL_MAGIC_regdata        vtbl_regdata   Regex match position data 
+ D  PERL_MAGIC_regdata        vtbl_regdata   Regex match position data
                                              (@+ and @- vars)
  d  PERL_MAGIC_regdatum       vtbl_regdatum  Regex match position data
                                              element
  E  PERL_MAGIC_env            vtbl_env       %ENV hash
  e  PERL_MAGIC_envelem        vtbl_envelem   %ENV hash element
- f  PERL_MAGIC_fm             vtbl_regexp    Formline 
+ f  PERL_MAGIC_fm             vtbl_regexp    Formline
                                              ('compiled' format)
  g  PERL_MAGIC_regex_global   vtbl_mglob     m//g target
  H  PERL_MAGIC_hints          vtbl_hints     %^H hash
@@ -1494,18 +1548,23 @@ will be lost.
  V  PERL_MAGIC_vstring        (none)         SV was vstring literal
  v  PERL_MAGIC_vec            vtbl_vec       vec() lvalue
  w  PERL_MAGIC_utf8           vtbl_utf8      Cached UTF-8 information
+ X  PERL_MAGIC_destruct       vtbl_destruct  destruct callback
  x  PERL_MAGIC_substr         vtbl_substr    substr() lvalue
  Y  PERL_MAGIC_nonelem        vtbl_nonelem   Array element that does not
                                              exist
  y  PERL_MAGIC_defelem        vtbl_defelem   Shadow "foreach" iterator
                                              variable / smart parameter
                                              vivification
+ Z  PERL_MAGIC_hook           vtbl_hook      %{^HOOK} hash
+ z  PERL_MAGIC_hookelem       vtbl_hookelem  %{^HOOK} hash element
  \  PERL_MAGIC_lvref          vtbl_lvref     Lvalue reference
                                              constructor
  ]  PERL_MAGIC_checkcall      vtbl_checkcall Inlining/mutation of call
                                              to this CV
- ~  PERL_MAGIC_ext            (none)         Available for use by
-                                             extensions
+ ^  PERL_MAGIC_extvalue       (none)         Value magic available for
+                                             use by extensions
+ ~  PERL_MAGIC_ext            (none)         Variable magic available
+                                             for use by extensions
 
 
 =for apidoc_section $magic
@@ -1519,12 +1578,16 @@ will be lost.
 =for apidoc_item ||PERL_MAGIC_dbline
 =for apidoc_item ||PERL_MAGIC_debugvar
 =for apidoc_item ||PERL_MAGIC_defelem
+=for apidoc_item ||PERL_MAGIC_destruct
 =for apidoc_item ||PERL_MAGIC_env
 =for apidoc_item ||PERL_MAGIC_envelem
 =for apidoc_item ||PERL_MAGIC_ext
+=for apidoc_item ||PERL_MAGIC_extvalue
 =for apidoc_item ||PERL_MAGIC_fm
 =for apidoc_item ||PERL_MAGIC_hints
 =for apidoc_item ||PERL_MAGIC_hintselem
+=for apidoc_item ||PERL_MAGIC_hook
+=for apidoc_item ||PERL_MAGIC_hookelem
 =for apidoc_item ||PERL_MAGIC_isa
 =for apidoc_item ||PERL_MAGIC_isaelem
 =for apidoc_item ||PERL_MAGIC_lvref
@@ -1562,12 +1625,15 @@ uppercase letter is typically used to re
 of that composite type.  Some internals code makes use of this case
 relationship.  However, 'v' and 'V' (vec and v-string) are in no way related.
 
-The C<PERL_MAGIC_ext> and C<PERL_MAGIC_uvar> magic types are defined
-specifically for use by extensions and will not be used by perl itself.
-Extensions can use C<PERL_MAGIC_ext> magic to 'attach' private information
-to variables (typically objects).  This is especially useful because
-there is no way for normal perl code to corrupt this private information
-(unlike using extra elements of a hash object).
+The C<PERL_MAGIC_ext>, C<PERL_MAGIC_extvalue> and C<PERL_MAGIC_uvar> magic types
+are defined specifically for use by extensions and will not be used by perl
+itself.  Extensions can use C<PERL_MAGIC_ext> or C<PERL_MAGIC_extvalue> magic to
+'attach' private information to variables (typically objects).  This is
+especially useful because there is no way for normal perl code to corrupt this
+private information (unlike using extra elements of a hash object).
+C<PERL_MAGIC_extvalue> is value magic (unlike C<PERL_MAGIC_ext> and
+C<PERL_MAGIC_uvar>) meaning that on localization the new value will not be
+magical.
 
 Similarly, C<PERL_MAGIC_uvar> magic can be used much like tie() to call a
 C function any time a scalar's value is used or changed.  The C<MAGIC>'s
@@ -1829,6 +1895,32 @@ and back.
 =for apidoc Amh||SAVESPTR|SV * s
 =for apidoc Amh||SAVEPPTR|char * p
 
+=item C<SAVERCPV(char **ppv)>
+
+This macro arranges to restore the value of a C<char *> variable which
+was allocated with a call to C<rcpv_new()> to its previous state when
+the current pseudo block is completed. The pointer stored in C<*ppv> at
+the time of the call will be refcount incremented and stored on the save
+stack. Later when the current I<pseudo-block> is completed the value
+stored in C<*ppv> will be refcount decremented, and the previous value
+restored from the savestack which will also be refcount decremented.
+
+This is the C<RCPV> equivalent of C<SAVEGENERICSV()>.
+
+=for apidoc Amh||SAVERCPV|char *pv
+
+=item C<SAVEGENERICSV(SV **psv)>
+
+This macro arranges to restore the value of a C<SV *> variable to its
+previous state when the current pseudo block is completed. The pointer
+stored in C<*psv> at the time of the call will be refcount incremented
+and stored on the save stack. Later when the current I<pseudo-block> is
+completed the value stored in C<*ppv> will be refcount decremented, and
+the previous value restored from the savestack which will also be refcount
+decremented. This the C equivalent of C<local $sv>.
+
+=for apidoc Amh||SAVEGENERICSV|char **psv
+
 =item C<SAVEFREESV(SV *sv)>
 
 The refcount of C<sv> will be decremented at the end of
@@ -1853,16 +1945,25 @@ live scope has finished executing.
 
 =item C<SAVEFREEOP(OP *op)>
 
-The C<OP *> is op_free()ed at the end of I<pseudo-block>.
+The C<OP *> is C<op_free()>ed at the end of I<pseudo-block>.
 
 =for apidoc Amh||SAVEFREEOP|OP *op
 
 =item C<SAVEFREEPV(p)>
 
-The chunk of memory which is pointed to by C<p> is Safefree()ed at the
-end of I<pseudo-block>.
+The chunk of memory which is pointed to by C<p> is C<Safefree()>ed at the
+end of the current I<pseudo-block>.
+
+=for apidoc Amh||SAVEFREEPV|char *pv
+
+=item C<SAVEFREERCPV(char *pv)>
 
-=for apidoc Amh||SAVEFREEPV|void * p
+Ensures that a C<char *> which was created by a call to C<rcpv_new()> is
+C<rcpv_free()>ed at the end of the current I<pseudo-block>.
+
+This is the RCPV equivalent of C<SAVEFREESV()>.
+
+=for apidoc Amh||SAVEFREERCPV|char *pv
 
 =item C<SAVECLEARSV(SV *sv)>
 
@@ -1883,7 +1984,7 @@ this:
 =item C<SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void *p)>
 
 At the end of I<pseudo-block> the function C<f> is called with the
-only argument C<p>.
+only argument C<p> which may be NULL.
 
 =for apidoc Ayh||DESTRUCTORFUNC_NOCONTEXT_t
 =for apidoc Amh||SAVEDESTRUCTOR|DESTRUCTORFUNC_NOCONTEXT_t f|void *p
@@ -1891,11 +1992,45 @@ only argument C<p>.
 =item C<SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)>
 
 At the end of I<pseudo-block> the function C<f> is called with the
-implicit context argument (if any), and C<p>.
+implicit context argument (if any), and C<p> which may be NULL.
+
+Note the I<end of the current pseudo-block> may occur much later than
+the I<end of the current statement>. You may wish to look at the
+C<MORTALDESTRUCTOR_X()> macro instead.
 
 =for apidoc Ayh||DESTRUCTORFUNC_t
 =for apidoc Amh||SAVEDESTRUCTOR_X|DESTRUCTORFUNC_t f|void *p
 
+=item C<MORTALSVFUNC_X(SVFUNC_t f, SV *sv)>
+
+At the end of I<the current statement> the function C<f> is called with
+the implicit context argument (if any), and C<sv> which may be NULL.
+
+Be aware that the parameter argument to the destructor function differs
+from the related C<SAVEDESTRUCTOR_X()> in that it MUST be either NULL or
+an C<SV*>.
+
+Note the I<end of the current statement> may occur much before the
+the I<end of the current pseudo-block>.  You may wish to look at the
+C<SAVEDESTRUCTOR_X()> macro instead.
+
+=for apidoc Amh||MORTALDESTRUCTOR_X|DESTRUCTORFUNC_t f|SV *sv
+
+=item C<MORTALDESTRUCTOR_SV(SV *coderef, SV *args)>
+
+At the end of I<the current statement> the Perl function contained in
+C<coderef> is called with the arguments provided (if any) in C<args>.
+See the documentation for C<mortal_destructor_sv()> for details on
+the C<args> parameter is handled.
+
+Note the I<end of the current statement> may occur much before the
+the I<end of the current pseudo-block>.  If you wish to call a perl
+function at the end of the current pseudo block you should use the
+C<SAVEDESTRUCTOR_X()> API instead, which will require you create a
+C wrapper to call the Perl function.
+
+=for apidoc Amh||MORTALDESTRUCTOR_SV|SV *coderef|SV *args
+
 =item C<SAVESTACK_POS()>
 
 The current offset on the Perl internal stack (cf. C<SP>) is restored
@@ -1940,13 +2075,6 @@ C<ENTER>/C<LEAVE> I<pseudo-block> the va
 using the stored value.  It doesn't handle magic.  Use C<save_scalar> if
 magic is affected.
 
-=item C<void save_list(SV **sarg, I32 maxsarg)>
-
-=for apidoc save_list
-
-A variant of C<save_item> which takes multiple arguments via an array
-C<sarg> of C<SV*> of length C<maxsarg>.
-
 =item C<SV* save_svref(SV **sptr)>
 
 =for apidoc save_svref
@@ -2102,7 +2230,7 @@ not constantly freed/created.
 
 Each of the targets is created only once (but see
 L</Scratchpads and recursion> below), and when an opcode needs to put
-an integer, a double, or a string on stack, it just sets the
+an integer, a double, or a string on the stack, it just sets the
 corresponding parts of its I<target> and puts the I<target> on stack.
 
 The macro to put this target on stack is C<PUSHTARG>, and it is
@@ -2841,6 +2969,9 @@ that there's an undeclared identifier in
 are needed for the XSUBs themselves, because the XS() macro is
 correctly defined to pass in the implicit context if needed.
 
+=for apidoc_section $concurrency
+=for apidoc AmnhU||PERL_NO_GET_CONTEXT
+
 The third, even more efficient way is to ape how it is done within
 the Perl guts:
 
@@ -3016,7 +3147,7 @@ compiled with C++, to maintain complianc
 Note that any filehandle being printed to under UTF-8 must be expecting
 UTF-8 in order to get good results and avoid Wide-character warnings.
 One way to do this for typical filehandles is to invoke perl with the
-C<-C>> parameter.  (See L<perlrun/-C [numberE<sol>list]>.
+C<-C> parameter.  (See L<perlrun/-C [numberE<sol>list]>.
 
 You can use this to concatenate two scalars:
 
@@ -3025,6 +3156,24 @@ You can use this to concatenate two scal
  SV *var3 = newSVpvf("var1=%" SVf " and var2=%" SVf,
                      SVfARG(var1), SVfARG(var2));
 
+=for apidoc Amnh||SVf_QUOTEDPREFIX
+
+C<SVf_QUOTEDPREFIX> is similar to C<SVf> except that it restricts the
+number of the characters printed, showing at most the first
+C<PERL_QUOTEDPREFIX_LEN> characters of the argument, and rendering it with
+double quotes and with the contents escaped using double quoted string
+escaping rules. If the string is longer than this then ellipses "..."
+will be appended after the trailing quote. This is intended for error
+messages where the string is assumed to be a class name.
+
+=for apidoc Amnh||HvNAMEf
+=for apidoc Amnh||HvNAMEf_QUOTEDPREFIX
+
+C<HvNAMEf> and C<HvNAMEf_QUOTEDPREFIX> are similar to C<SVf> except they
+extract the string, length and utf8 flags from the argument using the
+C<HvNAME()>, C<HvNAMELEN()>, C<HvNAMEUTF8()> macros. This is intended
+for stringifying a class name directly from an stash HV.
+
 =head2 Formatted Printing of Strings
 
 If you just want the bytes printed in a 7bit NUL-terminated string, you can
@@ -3054,10 +3203,15 @@ string.
 Note that any filehandle being printed to under UTF-8 must be expecting
 UTF-8 in order to get good results and avoid Wide-character warnings.
 One way to do this for typical filehandles is to invoke perl with the
-C<-C>> parameter.  (See L<perlrun/-C [numberE<sol>list]>.
+C<-C> parameter.  (See L<perlrun/-C [numberE<sol>list]>.
 
 =for apidoc_section $io_formats
 =for apidoc Amnh||UTF8f
+Output a possibly UTF8 value. Be sure to use UTF8fARG() to compose
+the arguments for this format.
+=for apidoc Amnh||UTF8f_QUOTEDPREFIX
+Same as C<UTF8f> but the output is quoted, escaped and length limited.
+See C<SVf_QUOTEDPREFIX> for more details on escaping.
 =for apidoc Amh||UTF8fARG|bool is_utf8|Size_t byte_len|char *str
 
 =cut
@@ -3634,12 +3788,12 @@ the only core C<PVOP>, C<OP_TRANS>, can 
 =for apidoc_item OA_COP
 =for apidoc_item OA_LISTOP
 =for apidoc_item OA_LOGOP
+=for apidoc_item OA_LOOP
 =for apidoc_item OA_PADOP
 =for apidoc_item OA_PMOP
 =for apidoc_item OA_PVOP_OR_SVOP
 =for apidoc_item OA_SVOP
 =for apidoc_item OA_UNOP
-=for apidoc_item OA_LOOP
 
 =back
 
Index: gnu/usr.bin/perl/pod/perlhack.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlhack.pod,v
diff -u -p -a -u -p -r1.7 perlhack.pod
--- gnu/usr.bin/perl/pod/perlhack.pod	15 Feb 2023 01:36:35 -0000	1.7
+++ gnu/usr.bin/perl/pod/perlhack.pod	21 Feb 2024 15:47:03 -0000
@@ -880,6 +880,19 @@ it doesn't redirect stderr to stdout.
 Note that under Win32 F<t/harness> is always used instead of F<t/TEST>,
 so there is no special "test_harness" target.
 
+Under the Unix build process you may use the TEST_ARGS and TEST_FILES
+parameters to pass arguments through to the underlying harness call.
+This means that for instance you could do
+
+    make test_harness TEST_ARGS="-v -re pat"
+
+which would make, and then run the test harness in verbose mode over
+files which contain "pat". Or you could do
+
+    make test_harness TEST_ARGS="-torture" TEST_FILES="op/*.t"
+
+and run torture tests on files matching the glob "op/*.t".
+
 Under Win32's "test" target you may use the TEST_SWITCHES and
 TEST_FILES environment variables to control the behaviour of
 F<t/harness>.  This means you can say
@@ -887,6 +900,9 @@ F<t/harness>.  This means you can say
     nmake test TEST_FILES="op/*.t"
     nmake test TEST_SWITCHES="-torture" TEST_FILES="op/*.t"
 
+Note that for compatibility with the unix build process TEST_ARGS
+may also be used instead of the traditional TEST_SWITCHES argument.
+
 =item * test-notty test_notty
 
 Sets PERL_SKIP_TTY_TEST to true before running normal test.
@@ -925,6 +941,16 @@ more recent faster ones with fewer cores
 Note that the command line above added a C<-j> parameter to make, so as
 to cause parallel compilation.  This may or may not work on your
 platform.
+
+Normally data on how long tests take is stored in F<t/test_state>,
+however you can change this to use a different filename by setting the
+C<PERL_TEST_STATE_FILE> environment variable to something different, or
+to a false value (0 or the empty string) to disable use of the state
+mechanism entirely.  There are no protections against the format of the
+state file changing over time, so if you have any issues related to this
+file it is up to you to delete the file manually and then let the
+harness recreate it, although the file format does not change frequently
+so this should not be necessary very often.
 
 =head2 Running tests by hand
 
Index: gnu/usr.bin/perl/pod/perlhacktips.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlhacktips.pod,v
diff -u -p -a -u -p -r1.7 perlhacktips.pod
--- gnu/usr.bin/perl/pod/perlhacktips.pod	15 Feb 2023 01:36:35 -0000	1.7
+++ gnu/usr.bin/perl/pod/perlhacktips.pod	21 Feb 2024 15:47:03 -0000
@@ -309,6 +309,211 @@ C<-xc99>
 
 =back
 
+=head2 Symbol Names and Namespace Pollution
+
+=head3 Choosing legal symbol names
+
+C reserves for its implementation any symbol whose name begins with an
+underscore followed immediately by either an uppercase letter C<[A-Z]>
+or another underscore.  C++ further reserves any symbol containing two
+consecutive underscores, and further reserves in the global name space any
+symbol beginning with an underscore, not just ones followed by a
+capital.  We care about C++ because C<hdr> files need to be compilable by
+it, and some people do all their development using a C++ compiler.
+
+The consequences of failing to do this are probably none.  Unless you
+stumble on a name that the implementation uses, things will work.
+Indeed, the perl core has more than a few instances of using
+implementation-reserved symbols.  (These are gradually being changed.)
+But your code might stop working any time that the implementation
+decides to use a name you already had chosen, potentially many years
+before.
+
+It's best then to:
+
+=over
+
+=item B<Don't begin a symbol name with an underscore>; (I<e.g.>, don't
+use: C<_FOOBAR>)
+
+=item B<Don't use two consecutive underscores in a symbol name>;
+(I<e.g.>, don't use C<FOO__BAR>)
+
+=back
+
+POSIX also reserves many symbols.  See Section 2.2.2 in
+L<http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html>.
+Perl also has conflicts with that.
+
+Perl reserves for its use any symbol beginning with C<Perl>, C<perl>, or
+C<PL_>.  Any time you introduce a macro into a C<hdr> file that doesn't
+follow that convention, you are creating the possiblity of a namespace
+clash with an existing XS module, unless you restrict it by, say,
+
+ #ifdef PERL_CORE
+ #  define my_symbol
+ #endif
+
+There are many symbols in C<hdr> files that aren't of this form, and
+which are accessible from XS namespace, intentionally or not, just about
+anything in F<config.h>, for example.
+
+Having to use one of these prefixes detracts from the readability of the
+code, and hasn't been an actual issue for non-trivial names.  Things
+like perl defining its own C<MAX> macro have been problematic, but they
+were quickly discovered, and a S<C<#ifdef PERL_CORE>> guard added.
+
+So there's no rule imposed about using such symbols, just be aware of
+the issues.
+
+=head3 Choosing good symbol names
+
+Ideally, a symbol name name should correctly and precisely describe its
+intended purpose.  But there is a tension between that and getting names
+that are overly long and hence awkward to type and read.  Metaphors
+could be helpful (a poetic name), but those tend to be culturally
+specific, and may not translate for someone whose native language isn't
+English, or even comes from a different cultural background.  Besides,
+the talent of writing poetry seems to be rare in programmers.
+
+Certain symbol names don't reflect their purpose, but are nonetheless
+fine to use because of long-standing conventions.  These often
+originated in the field of Mathematics, where C<i> and C<j> are
+frequently used as subscripts, and C<n> as a population count.  Since at
+least the 1950's, computer programs have used C<i>, I<etc.> as loop
+variables.
+
+Our guidance is to choose a name that reasonably describes the purpose,
+and to comment its declaration more precisely.
+
+One certainly shouldn't use misleading nor ambiguous names.  C<last_foo>
+could mean either the final C<foo> or the previous C<foo>, and so could
+be confusing to the reader, or even to the writer coming back to the
+code after a few months of working on something else.  Sometimes the
+programmer has a particular line of thought in mind, and it doesn't
+occur to them that ambiguity is present.
+
+There are probably still many off-by-1 bugs around because the name
+L<perlapi/C<av_len>> doesn't correspond to what other I<-len> constructs
+mean, such as L<perlapi/C<sv_len>>.  Awkward (and controversial)
+synonyms were created to use instead that conveyed its true meaning
+(L<perlapi/C<av_top_index>>).  Eventually, though someone had the better
+idea to create a new name to signify what most people think C<-len>
+signifies.  So L<perlapi/C<av_count>> was born.  And we wish it had been
+thought up much earlier.
+
+=head2 Writing safer macros
+
+Macros are used extensively in the Perl core for such things as hiding
+internal details from the caller, so that it doesn't have to be
+concerned about them.  For example, most lines of code don't need
+to know if they are running on a threaded versus unthreaded perl.  That
+detail is automatically mostly hidden.
+
+It is often better to use an inline function instead of a macro.  They
+are immune to name collisions with the caller, and don't magnify
+problems when called with parameters that are expressions with side
+effects.  There was a time when one might choose a macro over an inline
+function because compiler support for inline functions was quite
+limited.  Some only would actually only inline the first two or three
+encountered in a compilation.  But those days are long gone, and inline
+functions are fully supported in modern compilers.
+
+Nevertheless, there are situations where a function won't do, and a
+macro is required.  One example is when a parameter can be any of
+several types.  A function has to be declared with a single explicit
+
+Or maybe the code involved is so trivial that a function would be just
+complicating overkill, such as when the macro simply creates a mnemonic
+name for some constant value.
+
+If you do choose to use a non-trivial macro, be aware that there are
+several avoidable pitfalls that can occur.  Keep in mind that a macro is
+expanded within the lexical context of each place in the source it is
+called.  If you have a token C<foo> in the macro and the source happens
+also to have C<foo>, the meaning of the macro's C<foo> will become that
+of the caller's.  Sometimes that is exactly the behavior you want, but
+be aware that this tends to be confusing later on.  It effectively turns
+C<foo> into a reserved word for any code that calls the macro, and this
+fact is usually not documented nor considered.  It is safer to pass
+C<foo> as a parameter, so that C<foo> remains freely available to the
+caller and the macro interface is explicitly specified.
+
+Worse is when the equivalence between the two C<foo>'s is coincidental.
+Suppose for example, that the macro declares a variable
+
+ int foo
+
+That works fine as long as the caller doesn't define the string C<foo>
+in some way.  And it might not be until years later that someone comes
+along with an instance where C<foo> is used.  For example a future
+caller could do this:
+
+ #define foo  bar
+
+Then that declaration of C<foo> in the macro suddenly becomes
+
+ int bar
+
+That could mean that something completely different happens than
+intended.  It is hard to debug; the macro and call may not even be in
+the same file, so it would require some digging and gnashing of teeth to
+figure out.
+
+Therefore, if a macro does use variables, their names should be such
+that it is very unlikely that they would collide with any caller, now or
+forever.  One way to do that, now being used in the perl source, is to
+include the name of the macro itself as part of the name of each
+variable in the macro.  Suppose the macro is named C<SvPV>  Then we
+could have
+
+ int foo_svpv_ = 0;
+
+This is harder to read than plain C<foo>, but it is pretty much
+guaranteed that a caller will never naively use C<foo_svpv_> (and run
+into problems).  (The lowercasing makes it clearer that this is a
+variable, but assumes that there won't be two elements whose names
+differ only in the case of their letters.)  The trailing underscore
+makes it even more unlikely to clash, as those, by convention, signify a
+private variable name.  (See L</Choosing legal symbol names> for
+restrictions on what names you can use.)
+
+This kind of name collision doesn't happen with the macro's formal
+parameters, so they don't need to have complicated names.  But there are
+pitfalls when a a parameter is an expression, or has some Perl magic
+attached.  When calling a function, C will evaluate the parameter once,
+and pass the result to the function.  But when calling a macro, the
+parameter is copied as-is by the C preprocessor to each instance inside
+the macro.  This means that when evaluating a parameter having side
+effects, the function and macro results differ.  This is particularly
+fraught when a parameter has overload magic, say it is a tied variable
+that reads the next line in a file upon each evaluation.  Having it read
+multiple lines per call is probably not what the caller intended.  If a
+macro refers to a potentially overloadable parameter more than once, it
+should first make a copy and then use that copy the rest of the time.
+There are macros in the perl core that violate this, but are gradually
+being converted, usually by changing to use inline functions instead.
+
+Above we said "first make a copy".  In a macro, that is easier said than
+done, because macros are normally expressions, and declarations aren't
+allowed in expressions.  But the S<C<STMT_START> .. C<STMT_END>>
+construct, described in L<perlapi|perlapi/STMT_START>, allows you to
+have declarations in most contexts, as long as you don't need a return
+value.  If you do need a value returned, you can make the interface such
+that a pointer is passed to the construct, which then stores its result
+there.  (Or you can use GCC brace groups.  But these require a fallback
+if the code will ever get executed on a platform that lacks this
+non-standard extension to C.  And that fallback would be another code
+path, which can get out-of-sync with the brace group one, so doing this
+isn't advisable.)  In situations where there's no other way, Perl does
+furnish L<perlintern/C<PL_Sv>> and L<perlapi/C<PL_na>> to use (with a
+slight performance penalty) for some such common cases.  But beware that
+a call chain involving multiple macros using them will zap the other's
+use.  These have been very difficult to debug.
+
+For a concrete example of these pitfalls in action, see
+L<https://perlmonks.org/?node_id=11144355>
+
 =head2 Portability problems
 
 The following are common causes of compilation and/or execution
@@ -690,15 +895,19 @@ C<PERL_STATIC_INLINE> to transparently f
 
 Binding together several statements in a macro
 
-Use the macros STMT_START and STMT_END.
+Use the macros C<STMT_START> and C<STMT_END>.
 
    STMT_START {
       ...
    } STMT_END
 
+But there can be subtle (but avoidable if you do it right) bugs
+introduced with these; see L<perlapi/C<STMT_START>> for best practices
+for their use.
+
 =item *
 
-Testing for operating systems or versions when should be testing for
+Testing for operating systems or versions when you should be testing for
 features
 
   #ifdef __FOONIX__    /* BAD */
@@ -1695,6 +1904,8 @@ determine whether to log the event, and 
 
     $ENV{PERL_MEM_LOG} =~ /m/           Log all memory ops
     $ENV{PERL_MEM_LOG} =~ /s/           Log all SV ops
+    $ENV{PERL_MEM_LOG} =~ /c/           Additionally log C backtrace for
+                                        new_SV events
     $ENV{PERL_MEM_LOG} =~ /t/           include timestamp in Log
     $ENV{PERL_MEM_LOG} =~ /^(\d+)/      write to FD given (default is 2)
 
@@ -1709,6 +1920,10 @@ Since the logging doesn't use PerlIO, al
 no extra SV allocations are introduced by enabling the logging.  If
 compiled with C<-DDEBUG_LEAKING_SCALARS>, the serial number for each SV
 allocation is also logged.
+
+The C<c> option uses the C<Perl_c_backtrace> facility, and therefore
+additionally requires the Configure C<-Dusecbacktrace> compile flag in
+order to access it.
 
 =head2 DDD over gdb
 
Index: gnu/usr.bin/perl/pod/perlinterp.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlinterp.pod,v
diff -u -p -a -u -p -r1.1.1.5 perlinterp.pod
--- gnu/usr.bin/perl/pod/perlinterp.pod	15 Feb 2023 01:32:50 -0000	1.1.1.5
+++ gnu/usr.bin/perl/pod/perlinterp.pod	21 Feb 2024 15:47:03 -0000
@@ -159,69 +159,156 @@ built-in functions and operators.
 Note that each C<pp_> function is expected to return a pointer to the
 next op. Calls to perl subs (and eval blocks) are handled within the
 same runops loop, and do not consume extra space on the C stack. For
-example, C<pp_entersub> and C<pp_entertry> just push a C<CxSUB> or
-C<CxEVAL> block struct onto the context stack which contain the address
+example, C<pp_entersub> and C<pp_entertry> just push a C<CXt_SUB> or
+C<CXt_EVAL> block struct onto the context stack, which contain the address
 of the op following the sub call or eval. They then return the first op
 of that sub or eval block, and so execution continues of that sub or
-block. Later, a C<pp_leavesub> or C<pp_leavetry> op pops the C<CxSUB>
-or C<CxEVAL>, retrieves the return op from it, and returns it.
+block. Later, a C<pp_leavesub> or C<pp_leavetry> op pops the C<CXt_SUB>
+or C<CXt_EVAL>, retrieves the return op from it, and returns it.
 
 =head2 Exception handing
 
 Perl's exception handing (i.e. C<die> etc.) is built on top of the
 low-level C<setjmp()>/C<longjmp()> C-library functions. These basically
-provide a way to capture the current PC and SP registers and later
-restore them; i.e. a C<longjmp()> continues at the point in code where
-a previous C<setjmp()> was done, with anything further up on the C
-stack being lost. This is why code should always save values using
-C<SAVE_I<FOO>> rather than in auto variables.
-
-The perl core wraps C<setjmp()> etc in the macros C<JMPENV_PUSH> and
-C<JMPENV_JUMP>. The basic rule of perl exceptions is that C<exit>, and
-C<die> (in the absence of C<eval>) perform a C<JMPENV_JUMP(2)>, while
-C<die> within C<eval> does a C<JMPENV_JUMP(3)>.
+provide a way to capture the current PC and SP registers of the CPU and
+later restore them: i.e. a C<longjmp()> continues at the point in code
+where a previous C<setjmp()> was done, with anything further up on the C
+stack being lost. (This is why code should always save values using
+C<SAVE_I<FOO>> rather than in auto variables.)
 
 =for apidoc_section $exceptions
 =for apidoc Amh|void|JMPENV_PUSH|int v
 =for apidoc Amh|void|JMPENV_JUMP|int v
-
-At entry points to perl, such as C<perl_parse()>, C<perl_run()> and
-C<call_sv(cv, G_EVAL)> each does a C<JMPENV_PUSH>, then enter a runops
-loop or whatever, and handle possible exception returns. For a 2
-return, final cleanup is performed, such as popping stacks and calling
-C<CHECK> or C<END> blocks. Amongst other things, this is how scope
-cleanup still occurs during an C<exit>.
-
-If a C<die> can find a C<CxEVAL> block on the context stack, then the
-stack is popped to that level and the return op in that block is
-assigned to C<PL_restartop>; then a C<JMPENV_JUMP(3)> is performed.
-This normally passes control back to the guard. In the case of
-C<perl_run> and C<call_sv>, a non-null C<PL_restartop> triggers
-re-entry to the runops loop. The is the normal way that C<die> or
-C<croak> is handled within an C<eval>.
-
 =for apidoc Amnh|OP *|PL_restartop
 
-Sometimes ops are executed within an inner runops loop, such as tie,
-sort or overload code. In this case, something like
-
-    sub FETCH { eval { die } }
+The perl core wraps C<setjmp()> and C<longjmp()> in the macros
+C<JMPENV_PUSH> and C<JMPENV_JUMP>. The push operation, as well as setting
+a C<setjump()>, stores some temporary state in a struct local to the
+current function (allocated by C<dJMPENV>). In particular, it stores a
+pointer to the previous C<JMPENV> struct, and updates C<PL_top_env> to
+point to the newest one, forming a chain of C<JMPENV> states. Both the
+push and jump can output debugging information under C<perl -Dl>.
+
+A basic rule of the perl internals is that all interpreter exits are
+achieved via a C<JMPENV_JUMP()>. In particular:
+
+=over
+
+=item * level 2: perl-level exit() and internals my_exit()
+
+These unwind all stacks, then perform a JMPENV_JUMP(2).
+
+=item * level 3: perl-level die() and internals croak()
+
+If currently within an eval, these pop the context stack back to the
+nearest C<CXt_EVAL> frame, set C<$@> as appropriate, set C<PL_restartop>
+to the op which follows the eval associated with that frame, then perform
+a JMPENV_JUMP(3).
+
+Otherwise, the error message is printed to C<STDERR>, then it is treated
+as an exit: unwind all stacks and perform a JMPENV_JUMP(2).
+
+=item * level 1: unused
+
+JMPENV_JUMP(1) is currently unused except in perl_run().
+
+=item * level 0: normal return.
+
+The zero value is for a normal return from JMPENV_PUSH()
+
+=back
+
+So the perl interpreter expects that, at all times, there is a suitable
+C<JMPENV_PUSH> set up (and at a suitable location within the CPU call
+stack) that can catch and process a 2- or 3-valued jump; and in the case
+of a 3, start a new runops loop to execute C<PL_restartop> and all
+remaining ops (as will be explained shortly).
+
+The entry points to the perl interpreter all provide such a facility. For
+example, perl_parse(),  perl_run() and  C<call_sv(cv, G_EVAL)> all contain
+something similar in outline to:
+
+    {
+        dJMPENV;
+        JMPENV_PUSH(ret);
+        switch (ret) {
+        case 0:                     /* normal return from JMPENV_PUSH() */
+          redo_body:
+            CALLRUNOPS(aTHX);
+            break;
+        case 2:                     /* caught longjmp(2) - exit / die */
+            break;
+        case 3:                     /* caught longjmp(3) - eval { die } */
+            PL_op = PL_restartop;
+            goto redo_body;
+        }
+
+        JMPENV_POP;
+    }
+
+A runops loop such as Perl_runops_standard() (as set up by CALLRUNOPS())
+is, at its heart, just a simple:
+
+    while ((PL_op = PL_op->op_ppaddr(aTHX))) { 1; }
+
+which calls the pp() function associated with each op, relying on that to
+return a pointer to the next op to be executed.
+
+As well as setting catches at the entry points to the perl interpreter,
+you might expect perl to also do a JMPENV_PUSH() in places like
+pp_entertry(), just before some trappable ops are executed. In fact perl
+doesn't normally do this. The drawback with doing it is that with nested
+or recursive code such as:
+
+    sub foo { my ($i) = @_; return if $i < 0; eval { foo(--$i) } }
+
+Then the C stack would quickly overflow with pairs of entries like
+
+    ...
+    #N+3 Perl_runops()
+    #N+2 Perl_pp_entertry()
+    #N+1 Perl_runops()
+    #N   Perl_pp_entertry()
+    ...
+
+Instead, perl puts its guards at the I<callers> of runops loops. Then as
+many nested subroutine calls and evals may be called as you like, all
+within the one runops loop. If an exception occurs, control passes back to
+the caller of the loop, which just immediately restarts a new loop with
+C<PL_restartop> being the next op to call.
+
+So in normal operation where there are several nested evals, there
+will be multiple C<CXt_EVAL> context stack entries, but only a single
+runops loop, guarded by a single C<JMPENV_PUSH>. Each caught eval will pop
+the next C<CXt_EVAL> off the stack, set C<PL_restartop>, then longjmp()
+back to perl_run() and continue.
+
+However, ops are sometimes executed within an inner runops loop, such as
+in a tie, sort, or overload code. In this case, something like
+
+    sub FETCH { eval { die }; .... }
+
+would, unless handled specially, cause a longjmp() right back to the guard
+in perl_run(), popping I<both> the runops loops - which is clearly
+incorrect.  One way to avoid this is for the tie code to do a
+C<JMPENV_PUSH> before executing C<FETCH> in the inner runops loop, but for
+efficiency reasons, perl in fact just temporarily sets a flag using
+C<CATCH_SET(TRUE)>. This flag warns any subsequent C<require>,
+C<entereval> or C<entertry> ops that the caller is no longer promising to
+catch any raised exceptions on their behalf.
+
+These ops check this flag, and if true, they (via docatch()) do a
+C<JMPENV_PUSH> and start a new runops loop to execute the code, rather
+than doing it with the current loop.
 
-would cause a longjmp right back to the guard in C<perl_run>, popping
-both runops loops, which is clearly incorrect. One way to avoid this is
-for the tie code to do a C<JMPENV_PUSH> before executing C<FETCH> in
-the inner runops loop, but for efficiency reasons, perl in fact just
-sets a flag, using C<CATCH_SET(TRUE)>. The C<pp_require>,
-C<pp_entereval> and C<pp_entertry> ops check this flag, and if true,
-they call C<docatch>, which does a C<JMPENV_PUSH> and starts a new
-runops level to execute the code, rather than doing it on the current
-loop.
-
-As a further optimisation, on exit from the eval block in the C<FETCH>,
+As a consequence, on exit from the eval block in the C<FETCH> above,
 execution of the code following the block is still carried on in the
-inner loop. When an exception is raised, C<docatch> compares the
-C<JMPENV> level of the C<CxEVAL> with C<PL_top_env> and if they differ,
-just re-throws the exception. In this way any inner loops get popped.
+inner loop (i.e. the one established by the pp_entertry()). To avoid
+confusion, if a further exception is then raised, docatch() compares the
+C<JMPENV> level of the C<CXt_EVAL> with C<PL_top_env> and if they differ,
+just re-throws the exception. In this way any inner loops get popped,
+and the exception will be dealt with properly by the level which is
+expecting it.
 
 Here's an example.
 
@@ -231,31 +318,31 @@ Here's an example.
     4:     die;
     5: }
 
-To run this code, C<perl_run> is called, which does a C<JMPENV_PUSH>
-then enters a runops loop. This loop executes the eval and tie ops on
-line 1, with the eval pushing a C<CxEVAL> onto the context stack.
-
-The C<pp_tie> does a C<CATCH_SET(TRUE)>, then starts a second runops
-loop to execute the body of C<TIEARRAY>. When it executes the entertry
-op on line 3, C<CATCH_GET> is true, so C<pp_entertry> calls C<docatch>
-which does a C<JMPENV_PUSH> and starts a third runops loop, which then
-executes the die op. At this point the C call stack looks like this:
-
-    Perl_pp_die
-    Perl_runops      # third loop
-    S_docatch_body
-    S_docatch
-    Perl_pp_entertry
-    Perl_runops      # second loop
-    S_call_body
-    Perl_call_sv
-    Perl_pp_tie
-    Perl_runops      # first loop
-    S_run_body
-    perl_run
-    main
+To run this code, perl_run() is called, which does a JMPENV_PUSH(),
+then enters a runops loop. This loop executes the C<entereval> and C<tie>
+ops on line 1, with the C<entereval> pushing a C<CXt_EVAL> onto the context
+stack.
+
+The pp_tie() does a C<CATCH_SET(TRUE)>, then starts a second runops
+loop to execute the body of TIEARRAY(). When the loop executes the
+C<entertry> op on line 3, CATCH_GET() is true, so pp_entertry() calls
+docatch() which does a C<JMPENV_PUSH> and starts a third runops loop,
+which restarts the pp_entertry(), then executes the C<die> op. At this
+point the C call stack looks like this:
+
+    #10 Perl_pp_die()
+    #9  Perl_runops()      # runops loop 3
+    #8  S_docatch()        # JMPENV level 2
+    #7  Perl_pp_entertry()
+    #6  Perl_runops()      # runops loop 2
+    #5  Perl_call_sv()
+    #4  Perl_pp_tie()
+    #3  Perl_runops()      # runops loop 1
+    #2  S_run_body()
+    #1  perl_run()         # JMPENV level 1
+    #0  main()
 
-and the context and data stacks, as shown by C<-Dstv>, look like:
+and the context and data stacks, as shown by C<perl -Dstv>, look like:
 
     STACK 0: MAIN
       CX 0: BLOCK  =>
@@ -267,14 +354,14 @@ and the context and data stacks, as show
       CX 1: EVAL   => *
     retop=nextstate
 
-The die pops the first C<CxEVAL> off the context stack, sets
+The die() pops the first C<CXt_EVAL> off the context stack, sets
 C<PL_restartop> from it, does a C<JMPENV_JUMP(3)>, and control returns
-to the top C<docatch>. This then starts another third-level runops
-level, which executes the nextstate, pushmark and die ops on line 4. At
-the point that the second C<pp_die> is called, the C call stack looks
-exactly like that above, even though we are no longer within an inner
-eval; this is because of the optimization mentioned earlier. However,
-the context stack now looks like this, ie with the top CxEVAL popped:
+to the C<JMPENV> level set in docatch(). This then starts another
+third-level runops level, which executes the C<nextstate>, C<pushmark> and
+C<die> ops from line 4. At the point that the second pp_die() is called,
+the C call stack looks exactly like that above, even though we are no
+longer within an inner eval. However, the context stack now looks like
+this, i.e. with the top CXt_EVAL popped:
 
     STACK 0: MAIN
       CX 0: BLOCK  =>
@@ -284,35 +371,35 @@ the context stack now looks like this, i
       CX 0: SUB    =>
       retop=(null)
 
-The die on line 4 pops the context stack back down to the CxEVAL,
+The die() on line 4 pops the context stack back down to the C<CXt_EVAL>,
 leaving it as:
 
     STACK 0: MAIN
       CX 0: BLOCK  =>
 
-As usual, C<PL_restartop> is extracted from the C<CxEVAL>, and a
-C<JMPENV_JUMP(3)> done, which pops the C stack back to the docatch:
+As usual, C<PL_restartop> is extracted from the C<CXt_EVAL>, and a
+JMPENV_JUMP(3) done, which pops the C stack back to the docatch():
+
+    #8  S_docatch()        # JMPENV level 2
+    #7  Perl_pp_entertry()
+    #6  Perl_runops()      # runops loop 2
+    #5  Perl_call_sv()
+    #4  Perl_pp_tie()
+    #3  Perl_runops()      # runops loop 1
+    #2  S_run_body()
+    #1  perl_run()         # JMPENV level 1
+    #0  main()
+
+In  this case, because the C<JMPENV> level recorded in the C<CXt_EVAL>
+differs from the current one, docatch() just does a JMPENV_JUMP(3)
+to re-throw the exception, and the C stack unwinds to:
 
-    S_docatch
-    Perl_pp_entertry
-    Perl_runops      # second loop
-    S_call_body
-    Perl_call_sv
-    Perl_pp_tie
-    Perl_runops      # first loop
-    S_run_body
-    perl_run
-    main
-
-In  this case, because the C<JMPENV> level recorded in the C<CxEVAL>
-differs from the current one, C<docatch> just does a C<JMPENV_JUMP(3)>
-and the C stack unwinds to:
+    #1  perl_run()         # JMPENV level 1
+    #0  main()
 
-    perl_run
-    main
+Because C<PL_restartop> is non-null, run_body() starts a new runops
+loop, and execution continues.
 
-Because C<PL_restartop> is non-null, C<run_body> starts a new runops
-loop and execution continues.
 
 =head2 INTERNAL VARIABLE TYPES
 
Index: gnu/usr.bin/perl/pod/perllocale.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perllocale.pod,v
diff -u -p -a -u -p -r1.18 perllocale.pod
--- gnu/usr.bin/perl/pod/perllocale.pod	15 Feb 2023 01:36:35 -0000	1.18
+++ gnu/usr.bin/perl/pod/perllocale.pod	21 Feb 2024 15:47:03 -0000
@@ -1693,7 +1693,7 @@ and so uses other non-locale constructs 
 See L<perlxs/Thread-aware system interfaces>.
 
 POSIX does not define a way to get the name of the current per-thread
-locale.  Some systems, such as Darwin and NetBSD do implement a
+locale.  Some systems, such as Darwin and FreeBSD do implement a
 function, L<querylocale(3)> to do this.  On non-Windows systems without
 it, such as Linux, there are some additional caveats:
 
Index: gnu/usr.bin/perl/pod/perlmod.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlmod.pod,v
diff -u -p -a -u -p -r1.20 perlmod.pod
--- gnu/usr.bin/perl/pod/perlmod.pod	15 Feb 2023 01:36:35 -0000	1.20
+++ gnu/usr.bin/perl/pod/perlmod.pod	21 Feb 2024 15:47:03 -0000
@@ -81,6 +81,9 @@ the $s variable in package C<owner>, whi
 Use braces to disambiguate, as in C<"This is ${owner}'s house">.
 X<::> X<'>
 
+Using C<'> as a package separator is deprecated and will be removed in
+Perl 5.40.
+
 Packages may themselves contain package separators, as in
 C<$OUTER::INNER::var>.  This implies nothing about the order of
 name lookups, however.  There are no relative packages: all symbols
Index: gnu/usr.bin/perl/pod/perlmodstyle.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlmodstyle.pod,v
diff -u -p -a -u -p -r1.5 perlmodstyle.pod
--- gnu/usr.bin/perl/pod/perlmodstyle.pod	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/pod/perlmodstyle.pod	21 Feb 2024 15:47:03 -0000
@@ -182,8 +182,7 @@ been done in Perl, and avoid re-inventin
 good reason.
 
 Good places to look for pre-existing modules include
-L<MetaCPAN|https://metacpan.org> and L<PrePAN|http://prepan.org>
-and asking on C<module-authors@perl.org>
+L<MetaCPAN|https://metacpan.org> and asking on C<module-authors@perl.org>
 (L<https://lists.perl.org/list/module-authors.html>).
 
 If an existing module B<almost> does what you want, consider writing a
@@ -247,15 +246,11 @@ hierarchy already exists under which you
 =head2 Get feedback before publishing
 
 If you have never uploaded a module to CPAN before (and even if you have),
-you are strongly encouraged to get feedback on L<PrePAN|http://prepan.org>.
-PrePAN is a site dedicated to discussing ideas for CPAN modules with other
-Perl developers and is a great resource for new (and experienced) Perl
-developers.
-
-You should also try to get feedback from people who are already familiar
-with the module's application domain and the CPAN naming system.  Authors
-of similar modules, or modules with similar names, may be a good place to
-start, as are community sites like L<Perl Monks|https://www.perlmonks.org>.
+you are strongly encouraged to get feedback from people who are already
+familiar with the module's application domain and the CPAN naming system.
+Authors of similar modules, or modules with similar names, may be a good
+place to start, as are community sites like
+L<Perl Monks|https://www.perlmonks.org>.
 
 =head1 DESIGNING AND WRITING YOUR MODULE
 
Index: gnu/usr.bin/perl/pod/perlmroapi.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlmroapi.pod,v
diff -u -p -a -u -p -r1.4 perlmroapi.pod
--- gnu/usr.bin/perl/pod/perlmroapi.pod	15 Feb 2023 01:36:35 -0000	1.4
+++ gnu/usr.bin/perl/pod/perlmroapi.pod	21 Feb 2024 15:47:03 -0000
@@ -57,10 +57,10 @@ a I<level> of 0. The core always sets I<
 function - the parameter is provided to allow your implementation to track
 depth if it needs to recurse.
 
-The function should return a reference to an array containing the parent
-classes in order. The names of the classes should be the result of calling
-C<HvENAME()> on the stash. In those cases where C<HvENAME()> returns null,
-C<HvNAME()> should be used instead.
+The function should return a reference to an array containing string SVs
+giving the names of parent classes in order. The names of the classes should
+be the result of calling C<HvENAME()> on the stash. In those cases where
+C<HvENAME()> returns null, C<HvNAME()> should be used instead.
 
 The caller is responsible for incrementing the reference count of the array
 returned if it wants to keep the structure. Hence, if you have created a
Index: gnu/usr.bin/perl/pod/perlnewmod.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlnewmod.pod,v
diff -u -p -a -u -p -r1.5 perlnewmod.pod
--- gnu/usr.bin/perl/pod/perlnewmod.pod	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/pod/perlnewmod.pod	21 Feb 2024 15:47:03 -0000
@@ -88,7 +88,7 @@ written.
 
 There are a lot of modules on CPAN, and it's easy to miss one that's
 similar to what you're planning on contributing. Have a good plough
-through L<http://metacpan.org> and make sure you're not the one
+through L<https://metacpan.org> and make sure you're not the one
 reinventing the wheel!
 
 =item Discuss the need
@@ -234,7 +234,7 @@ file.
 =item Get a CPAN user ID
 
 Every developer publishing modules on CPAN needs a CPAN ID.  Visit
-C<L<http://pause.perl.org/>>, select "Request PAUSE Account", and wait for
+C<L<https://pause.perl.org/>>, select "Request PAUSE Account", and wait for
 your request to be approved by the PAUSE administrators.
 
 =item Make the tarball
@@ -278,4 +278,4 @@ Updated by Kirrily "Skud" Robert, C<skud
 L<perlmod>, L<perlmodlib>, L<perlmodinstall>, L<h2xs>, L<strict>,
 L<Carp>, L<Exporter>, L<perlpod>, L<Test::Simple>, L<Test::More>
 L<ExtUtils::MakeMaker>, L<Module::Build>, L<Module::Starter>
-L<http://www.cpan.org/>
+L<https://www.cpan.org/>
Index: gnu/usr.bin/perl/pod/perlop.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlop.pod,v
diff -u -p -a -u -p -r1.36 perlop.pod
--- gnu/usr.bin/perl/pod/perlop.pod	15 Feb 2023 01:38:23 -0000	1.36
+++ gnu/usr.bin/perl/pod/perlop.pod	21 Feb 2024 15:47:03 -0000
@@ -1833,7 +1833,7 @@ and although they often accept just C<"\
 C<"\015">.  If you get in the habit of using C<"\n"> for networking,
 you may be burned some day.
 X<newline> X<line terminator> X<eol> X<end of line>
-X<\r>
+X<\n> X<\r> X<\r\n>
 
 For constructs that do interpolate, variables beginning with "C<$>"
 or "C<@>" are interpolated.  Subscripted variables such as C<$a[3]> or
@@ -1949,8 +1949,8 @@ Options (specified by the following modi
         square-bracketed character classes
     p	When matching preserve a copy of the matched string so
         that ${^PREMATCH}, ${^MATCH}, ${^POSTMATCH} will be
-        defined (ignored starting in v5.20) as these are always
-        defined starting in that release
+        defined (ignored starting in v5.20 as these are always
+        defined starting in that release)
     o	Compile pattern only once.
     a   ASCII-restrict: Use ASCII for \d, \s, \w and [[:posix:]]
         character classes; specifying two a's adds the further
@@ -2055,11 +2055,24 @@ The bottom line is that using C</o> is a
 =item The empty pattern C<//>
 
 If the I<PATTERN> evaluates to the empty string, the last
-I<successfully> matched regular expression is used instead.  In this
-case, only the C<g> and C<c> flags on the empty pattern are honored;
-the other flags are taken from the original pattern.  If no match has
+I<successfully> matched regular expression is used instead. In this
+case, only the C<g> and C<c> flags on the empty pattern are honored; the
+other flags are taken from the original pattern. If no match has
 previously succeeded, this will (silently) act instead as a genuine
-empty pattern (which will always match).
+empty pattern (which will always match).  Using a user supplied string as
+a pattern has the risk that if the string is empty that it triggers the
+"last successful match" behavior, which can be very confusing. In such
+cases you are recommended to replace C<m/$pattern/> with
+C<m/(?:$pattern)/> to avoid this behavior.
+
+The last successful pattern may be accessed as a variable via
+C<${^LAST_SUCCESSFUL_PATTERN}>. Matching against it, or the empty
+pattern should have the same effect, with the exception that when there
+is no last successful pattern the empty pattern will silently match,
+whereas using the C<${^LAST_SUCCESSFUL_PATTERN}> variable will produce
+undefined warnings (if warnings are enabled). You can check
+C<defined(${^LAST_SUCCESSFUL_PATTERN})> to test if there is a "last
+successful match" in the current scope.
 
 Note that it's possible to confuse Perl into thinking C<//> (the empty
 regex) is really C<//> (the defined-or operator).  Perl is usually pretty
Index: gnu/usr.bin/perl/pod/perlperf.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlperf.pod,v
diff -u -p -a -u -p -r1.4 perlperf.pod
--- gnu/usr.bin/perl/pod/perlperf.pod	15 Feb 2023 01:36:35 -0000	1.4
+++ gnu/usr.bin/perl/pod/perlperf.pod	21 Feb 2024 15:47:03 -0000
@@ -456,7 +456,7 @@ from C<Devel::DProf>.  The 102% figure h
 where we have to use the tools at our disposal, and recognise their pros and
 cons, before using them.  Interestingly, the numbers of calls for each
 subroutine are identical in the two reports, it's the percentages which differ.
-As the author of C<Devel::Proviler> writes:
+As the author of C<Devel::Profiler> writes:
 
  ...running HTML::Template's test suite under Devel::DProf shows
  output() taking NO time but Devel::Profiler shows around 10% of the
@@ -490,7 +490,7 @@ C<-d> flag to Perl at runtime.
  words with only capital letters: 1316
  words with only vowels: 1701
 
-C<Devel::SmallProf> writes it's output into a file called F<smallprof.out>, by
+C<Devel::SmallProf> writes its output into a file called F<smallprof.out>, by
 default.  The format of the file looks like this:
 
  <num> <time> <ctime> <line>:<text>
Index: gnu/usr.bin/perl/pod/perlpodstyle.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlpodstyle.pod,v
diff -u -p -a -u -p -r1.5 perlpodstyle.pod
--- gnu/usr.bin/perl/pod/perlpodstyle.pod	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/pod/perlpodstyle.pod	21 Feb 2024 15:47:03 -0000
@@ -135,7 +135,7 @@ values should be given here.
 
 All possible messages the program can print out and what they mean.  You
 may wish to follow the same documentation style as the Perl documentation;
-see L<perldiag> for more details (and look at the POD source as well).
+see perldiag(1) for more details (and look at the POD source as well).
 
 If applicable, please include details on what the user should do to
 correct the error; documenting an error as indicating "the input buffer is
Index: gnu/usr.bin/perl/pod/perlport.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlport.pod,v
diff -u -p -a -u -p -r1.7 perlport.pod
--- gnu/usr.bin/perl/pod/perlport.pod	15 Feb 2023 01:36:35 -0000	1.7
+++ gnu/usr.bin/perl/pod/perlport.pod	21 Feb 2024 15:47:03 -0000
@@ -2102,6 +2102,12 @@ Since Windows needs to know whether the 
 creating the link the target Perl will only create the link as a directory
 link when the target exists and is a directory.
 
+Windows does not recognize forward slashes as path separators in
+symbolic links.  Hence on Windows, any C</> in the I<OLDFILE>
+parameter to symlink() are converted to C<\>.  This is reflected in
+the result returned by readlink(), the C<\> in the result are not
+converted back to C</>.
+
 (VMS)
 Implemented on 64 bit VMS 8.3.  VMS requires the symbolic link to be in Unix
 syntax if it is intended to resolve to a valid path.
@@ -2345,6 +2351,18 @@ ensure you have that library installed w
 
 =head1 EOL Platforms
 
+=head2 (Perl 5.37.1)
+
+The following platforms were supported by a previous version of
+Perl but have been officially removed from Perl's source code
+as of 5.37.1:
+
+=over
+
+=item Ultrix
+
+=back
+
 =head2 (Perl 5.36)
 
 The following platforms were supported by a previous version of
@@ -2514,7 +2532,6 @@ of any trouble.
         SVR2
         TI1500
         TitanOS
-        Ultrix
         Unisys Dynix
 
 The following platforms have their own source code distributions and
Index: gnu/usr.bin/perl/pod/perlre.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlre.pod,v
diff -u -p -a -u -p -r1.24 perlre.pod
--- gnu/usr.bin/perl/pod/perlre.pod	15 Feb 2023 01:36:35 -0000	1.24
+++ gnu/usr.bin/perl/pod/perlre.pod	21 Feb 2024 15:47:03 -0000
@@ -453,7 +453,8 @@ L</Overview> above.
 
 A single C</x> tells
 the regular expression parser to ignore most whitespace that is neither
-backslashed nor within a bracketed character class.  You can use this to
+backslashed nor within a bracketed character class, nor within the characters
+of a multi-character metapattern like C<(?i: ... )>.  You can use this to
 break up your regular expression into more readable parts.
 Also, the C<"#"> character is treated as a metacharacter introducing a
 comment that runs up to the pattern's closing delimiter, or to the end
@@ -1206,9 +1207,13 @@ require C<(??{})>.)
 
 Capture group contents are dynamically scoped and available to you outside the
 pattern until the end of the enclosing block or until the next successful
-match, whichever comes first.  (See L<perlsyn/"Compound Statements">.)
-You can refer to them by absolute number (using C<"$1"> instead of C<"\g1">,
-I<etc>); or by name via the C<%+> hash, using C<"$+{I<name>}">.
+match in the same scope, whichever comes first.
+See L<perlsyn/"Compound Statements"> and
+L<perlvar/"Scoping Rules of Regex Variables"> for more details.
+
+You can access the contents of a capture group by absolute number (using
+C<"$1"> instead of C<"\g1">, I<etc>); or by name via the C<%+> hash,
+using C<"$+{I<name>}">.
 
 Braces are required in referring to named capture groups, but are optional for
 absolute or relative numbered ones.  Braces are safer when creating a regex by
@@ -1990,6 +1995,18 @@ keep track of the number of nested paren
   /the (\S+)(?{ $color = $^N }) (\S+)(?{ $animal = $^N })/i;
   print "color = $color, animal = $animal\n";
 
+The use of this construct disables some optimisations globally in the
+pattern, and the pattern may execute much slower as a consequence.
+Use a C<*> instead of the C<?> block to create an optimistic form of
+this construct. C<(*{ ... })> should not disable any optimisations.
+
+=item C<(*{ I<code> })>
+X<(*{})> X<regex, optimistic code>
+
+This is *exactly* the same as C<(?{ I<code> })> with the exception
+that it does not disable B<any> optimisations at all in the regex engine.
+How often it is executed may vary from perl release to perl release.
+In a failing match it may not even be executed at all.
 
 =item C<(??{ I<code> })>
 X<(??{})>
@@ -2047,6 +2064,9 @@ consuming any input string will also res
 at which that happens is compiled into perl, so it can be changed with a
 custom build.
 
+The use of this construct disables some optimisations globally in the pattern,
+and the pattern may execute much slower as a consequence.
+
 =item C<(?I<PARNO>)> C<(?-I<PARNO>)> C<(?+I<PARNO>)> C<(?R)> C<(?0)>
 X<(?PARNO)> X<(?1)> X<(?R)> X<(?0)> X<(?-1)> X<(?+1)> X<(?-PARNO)> X<(?+PARNO)>
 X<regex, recursive> X<regexp, recursive> X<regular expression, recursive>
@@ -2201,7 +2221,15 @@ Full syntax: C<< (?(?=I<lookahead>)I<the
 =item C<(?{ I<CODE> })>
 
 Treats the return value of the code block as the condition.
-Full syntax: C<< (?(?{ I<code> })I<then>|I<else>) >>
+Full syntax: C<< (?(?{ I<CODE> })I<then>|I<else>) >>
+
+Note use of this construct may globally affect the performance
+of the pattern. Consider using C<(*{ I<CODE> })>
+
+=item C<(*{ I<CODE> })>
+
+Treats the return value of the code block as the condition.
+Full syntax: C<< (?(*{ I<CODE> })I<then>|I<else>) >>
 
 =item C<(R)>
 
@@ -2703,7 +2731,7 @@ accent of some type.  These are consider
 master character, and so never cause a script run to not match.
 
 The other one is "Common".  This consists of mostly punctuation, emoji,
-and characters used in mathematics and music, the ASCII digits C<0>
+characters used in mathematics and music, the ASCII digits C<0>
 through C<9>, and full-width forms of these digits.  These characters
 can appear intermixed in text in many of the world's scripts.  These
 also don't cause a script run to not match.  But like other scripts, all
@@ -3293,14 +3321,15 @@ part of this regular expression needs to
 
 =head2 Embedded Code Execution Frequency
 
-The exact rules for how often C<(??{})> and C<(?{})> are executed in a pattern
-are unspecified.  In the case of a successful match you can assume that
-they DWIM and will be executed in left to right order the appropriate
-number of times in the accepting path of the pattern as would any other
-meta-pattern.  How non-accepting pathways and match failures affect the
-number of times a pattern is executed is specifically unspecified and
-may vary depending on what optimizations can be applied to the pattern
-and is likely to change from version to version.
+The exact rules for how often C<(?{})> and C<(??{})> are executed in a pattern
+are unspecified, and this is even more true of C<(*{})>.
+In the case of a successful match you can assume that they DWIM and
+will be executed in left to right order the appropriate number of times in the
+accepting path of the pattern as would any other meta-pattern. How non-
+accepting pathways and match failures affect the number of times a pattern is
+executed is specifically unspecified and may vary depending on what
+optimizations can be applied to the pattern and is likely to change from
+version to version.
 
 For instance in
 
@@ -3325,6 +3354,13 @@ example:
   "good" =~ /g(?:o(?{print "o"}))*d/;
 
 will output "o" twice.
+
+For historical and consistency reasons the use of normal code blocks
+anywhere in a pattern will disable certain optimisations. As of 5.37.7
+you can use an "optimistic" codeblock, C<(*{ ... })> as a replacement
+for C<(?{ ... })>, if you do *not* wish to disable these optimisations.
+This may result in the code block being called less often than it might
+have been had they not been optimistic.
 
 =head2 PCRE/Python Support
 
Index: gnu/usr.bin/perl/pod/perlreapi.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlreapi.pod,v
diff -u -p -a -u -p -r1.5 perlreapi.pod
--- gnu/usr.bin/perl/pod/perlreapi.pod	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/pod/perlreapi.pod	21 Feb 2024 15:47:03 -0000
@@ -129,11 +129,11 @@ If this is in C<< rx->extflags >> it wil
 C<Perl_fbm_instr> by C<pp_split> which will treat the subject string
 as a multi-line string.
 
-=for apidoc Amnh||RXf_PMf_MULTILINE
-=for apidoc_item  RXf_PMf_SINGLELINE
+=for apidoc Amnh||RXf_PMf_EXTENDED
 =for apidoc_item  RXf_PMf_FOLD
-=for apidoc_item  RXf_PMf_EXTENDED
 =for apidoc_item  RXf_PMf_KEEPCOPY
+=for apidoc_item  RXf_PMf_MULTILINE
+=for apidoc_item  RXf_PMf_SINGLELINE
 
 =item C</s> - RXf_PMf_SINGLELINE
 
@@ -192,12 +192,12 @@ SKIPWHITE and WHITE extflags.  To do thi
 These flags can be set during compilation to enable optimizations in
 the C<split> operator.
 
-=for apidoc Amnh||RXf_SPLIT
+=for apidoc Amnh||RXf_NO_INPLACE_SUBST
+=for apidoc_item  RXf_NULL
 =for apidoc_item  RXf_SKIPWHITE
+=for apidoc_item  RXf_SPLIT
 =for apidoc_item  RXf_START_ONLY
 =for apidoc_item  RXf_WHITE
-=for apidoc_item  RXf_NULL
-=for apidoc_item  RXf_NO_INPLACE_SUBST
 
 =over 4
 
@@ -507,19 +507,19 @@ C<%+> or C<%+>, if any:
     RXapif_FIRSTKEY
     RXapif_NEXTKEY
 
-=for apidoc Amnh ||RXapif_CLEAR
+=for apidoc Amnh ||RXapif_ALL
+=for apidoc_item   RXapif_CLEAR
 =for apidoc_item   RXapif_DELETE
 =for apidoc_item   RXapif_EXISTS
 =for apidoc_item   RXapif_FETCH
 =for apidoc_item   RXapif_FIRSTKEY
 =for apidoc_item   RXapif_NEXTKEY
-=for apidoc_item   RXapif_SCALAR
-=for apidoc_item   RXapif_STORE
-=for apidoc_item   RXapif_ALL
 =for apidoc_item   RXapif_ONE
 =for apidoc_item   RXapif_REGNAME
 =for apidoc_item   RXapif_REGNAMES
 =for apidoc_item   RXapif_REGNAMES_COUNT
+=for apidoc_item   RXapif_SCALAR
+=for apidoc_item   RXapif_STORE
 
 If C<%+> or C<%-> is being operated on, if any.
 
@@ -844,9 +844,9 @@ number of bytes from the logical start o
 characters in the offset. The latter is needed to support C<@-> and C<@+>
 which work in characters, not bytes.
 
-=for apidoc Amnh||REXEC_COPY_STR
+=for apidoc Amnh ||REXEC_COPY_SKIP_POST
 =for apidoc_item ||REXEC_COPY_SKIP_PRE
-=for apidoc_item ||REXEC_COPY_SKIP_POST
+=for apidoc_item ||REXEC_COPY_STR
 
 =head2 C<wrapped> C<wraplen>
 
Index: gnu/usr.bin/perl/pod/perlref.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlref.pod,v
diff -u -p -a -u -p -r1.16 perlref.pod
--- gnu/usr.bin/perl/pod/perlref.pod	15 Feb 2023 01:36:35 -0000	1.16
+++ gnu/usr.bin/perl/pod/perlref.pod	21 Feb 2024 15:47:03 -0000
@@ -757,7 +757,9 @@ Glob elements can be extracted through t
 
 Postfix array and scalar dereferencing I<can> be used in interpolating
 strings (double quotes or the C<qq> operator), but only if the
-C<postderef_qq> feature is enabled.
+C<postderef_qq> feature is enabled. Interpolation of postfix array highest index
+access (C<< ->$#* >>) is also supported when the C<postderef_qq> feature is
+enabled.
 
 =head2 Postfix Reference Slicing
 
Index: gnu/usr.bin/perl/pod/perlreftut.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlreftut.pod,v
diff -u -p -a -u -p -r1.3 perlreftut.pod
--- gnu/usr.bin/perl/pod/perlreftut.pod	13 Feb 2019 21:15:29 -0000	1.3
+++ gnu/usr.bin/perl/pod/perlreftut.pod	21 Feb 2024 15:47:03 -0000
@@ -101,7 +101,6 @@ reference to that variable.
 
     $aref = \@array;         # $aref now holds a reference to @array
     $href = \%hash;          # $href now holds a reference to %hash
-    $sref = \$scalar;        # $sref now holds a reference to $scalar
 
 Once the reference is stored in a variable like $aref or $href, you
 can copy it or store it just the same as any other scalar value:
Index: gnu/usr.bin/perl/pod/perlreguts.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlreguts.pod,v
diff -u -p -a -u -p -r1.1.1.8 perlreguts.pod
--- gnu/usr.bin/perl/pod/perlreguts.pod	15 Feb 2023 01:32:49 -0000	1.1.1.8
+++ gnu/usr.bin/perl/pod/perlreguts.pod	21 Feb 2024 15:47:03 -0000
@@ -197,7 +197,7 @@ have been included.
 
 =back
 
-F<regnodes.h> defines an array called C<regarglen[]> which gives the size
+F<regnodes.h> defines an array called C<PL_regnode_arg_len[]> which gives the size
 of each opcode in units of C<size regnode> (4-byte). A macro is used
 to calculate the size of an C<EXACT> node based on its C<str_len> field.
 
@@ -214,41 +214,114 @@ and equivalents for reading and setting 
 C<STRING()> and C<OPERAND()> for manipulating strings and regop bearing
 types.
 
-=head3 What regop is next?
+=head3 What regnode is next?
 
-There are three distinct concepts of "next" in the regex engine, and
-it is important to keep them clear.
+There are two distinct concepts of "next regnode" in the regex engine,
+and it is important to keep them distinct in your thinking as they
+overlap conceptually in many places, but where they don't overlap the
+difference is critical. For the majority of regnode types the two
+concepts are (nearly) identical in practice. The two types are
+C<REGNODE_AFTER> which is used heavily during compilation but only
+occasionally during execution and C<regnext> which is used heavily
+during execution, and only occasionally during compilation.
 
 =over 4
 
-=item *
+=item "REGNODE_AFTER"
 
-There is the "next regnode" from a given regnode, a value which is
-rarely useful except that sometimes it matches up in terms of value
-with one of the others, and that sometimes the code assumes this to
-always be so.
-
-=item *
-
-There is the "next regop" from a given regop/regnode. This is the
-regop physically located after the current one, as determined by
-the size of the current regop. This is often useful, such as when
-dumping the structure we use this order to traverse. Sometimes the code
-assumes that the "next regnode" is the same as the "next regop", or in
-other words assumes that the sizeof a given regop type is always going
-to be one regnode large.
-
-=item *
-
-There is the "regnext" from a given regop. This is the regop which
-is reached by jumping forward by the value of C<NEXT_OFF()>,
-or in a few cases for longer jumps by the C<arg1> field of the C<regnode_1>
-structure. The subroutine C<regnext()> handles this transparently.
-This is the logical successor of the node, which in some cases, like
-that of the C<BRANCH> regop, has special meaning.
+This is the "positionally next regnode" in the compiled regex program.
+For the smaller regnode types it is C<regnode_ptr+1> under the hood, but
+as regnode sizes vary and can change over time we offer macros which
+hide the gory details.
+
+It is heavily used in the compiler phase but is only used by a few
+select regnode types in the execution phase. It is also heavily used in
+the code for dumping the regexp program for debugging.
+
+There are a selection of macros which can be used to compute this as
+efficiently as possible depending on the circumstances. The canonical
+macro is C<REGNODE_AFTER()>, which is the most powerful and should handle
+any case we have, but is also potentially the slowest. There are two
+additional macros for the special case that you KNOW the current regnode
+size is constant, and you know its type or opcode. In which case you can
+use C<REGNODE_AFTER_opcode()> or C<REGNODE_AFTER_type()>.
+
+In older versions of the regex engine C<REGNODE_AFTER()> was called
+C<NEXTOPER> but this was found to be confusing and it was renamed. There
+is also a C<REGNODE_BEFORE()>, but it is unsafe and should not be used
+in new code.
+
+=item "regnext"
+
+This is the regnode which can be reached by jumping forward by the value
+of the C<NEXT_OFF()> member of the regnode, or in a few cases for longer
+jumps by the C<arg1> field of the C<regnode_1> structure. The subroutine
+C<regnext()> handles this transparently. In the majority of cases the
+C<regnext> for a regnode is the regnode which should be executed after the
+current one has successfully matched, but in some cases this may not be
+true. In loop control and branch control regnode types the regnext may
+signify something special, for BRANCH nodes C<regnext> is the
+next BRANCH that should be executed if the current one fails execution,
+and some loop control regnodes set the regnext to be the end of the loop
+so they can jump to their cleanup if the current iteration fails to match.
 
 =back
 
+Most regnode types do not create a branch in the execution flow, and
+leaving aside optimizations the two concepts of "next" are the same.
+For instance the C<regnext> and C<REGNODE_AFTER> of a SBOL opcode are
+the same during compilation phase. The main place this is not true is
+C<BRANCH> regnodes where the C<REGNODE_AFTER> represents the start of
+the pattern in the branch and the C<regnext> represents the linkage to
+the next BRANCH should this one fail to match, or 0 if it is the last
+branch. The looping logic for quantifiers also makes similar use of
+the distinction between the two types, with C<REGNODE_AFTER> being the
+inside of the loop construct, and the C<regnext> pointing at the end
+of the loop.
+
+During compilation the engine may not know what the regnext is for a
+given node, so during compilation C<regnext> is only used where it must
+be used and is known to be correct. At the very end of the compilation
+phase we walk the regex program and correct the regnext data as
+appropriate, and also perform various optimizations which may result in
+regnodes that were required during construction becoming redundant, or
+we may replace a large regnode with a much smaller one and filling in the
+gap with OPTIMIZED regnodes. Thus we might start with something like
+this:
+
+    BRANCH
+      EXACT "foo"
+    BRANCH
+      EXACT "bar"
+    EXACT "!"
+
+and replace it with something like:
+
+    TRIE foo|bar
+    OPTIMIZED
+    OPTIMIZED
+    OPTIMIZED
+    EXACT "!"
+
+the C<REGNODE_AFTER> for the C<TRIE> node would be an C<OPTIMIZED>
+regnode, and in theory the C<regnext> would be the same as the
+C<REGNODE_AFTER>. But it would be inefficient to execute the OPTIMIZED
+regnode as a noop three times, so the optimizer fixes the C<regnext> so
+such nodes are skipped during execution phase.
+
+During execution phases we use the C<regnext()> almost exclusively, and
+only use C<REGNODE_AFTER> in special cases where it has a well defined
+meaning for a given regnode type. For instance /x+/ results in
+
+    PLUS
+        EXACT "x"
+    END
+
+the C<regnext> of the C<PLUS> regnode is the C<END> regnode, and the
+C<REGNODE_AFTER> of the C<PLUS> regnode is the C<EXACT> regnode. The
+C<regnext> and C<REGNODE_AFTER> of the C<EXACT> regnode is the
+C<END> regnode.
+
 =head1 Process Overview
 
 Broadly speaking, performing a match of a string against a pattern
@@ -795,9 +868,8 @@ specific to each engine.
 
 There are two structures used to store a compiled regular expression.
 One, the C<regexp> structure described in L<perlreapi> is populated by
-the engine currently being. used and some of its fields read by perl to
+the engine currently being used and some of its fields read by perl to
 implement things such as the stringification of C<qr//>.
-
 
 The other structure is pointed to by the C<regexp> struct's
 C<pprivate> and is in addition to C<intflags> in the same struct
Index: gnu/usr.bin/perl/pod/perlretut.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlretut.pod,v
diff -u -p -a -u -p -r1.5 perlretut.pod
--- gnu/usr.bin/perl/pod/perlretut.pod	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/pod/perlretut.pod	21 Feb 2024 15:47:03 -0000
@@ -63,7 +63,7 @@ many examples.  The first part of the tu
 simplest word searches to the basic regular expression concepts.  If
 you master the first part, you will have all the tools needed to solve
 about 98% of your needs.  The second part of the tutorial is for those
-comfortable with the basics and hungry for more power tools.  It
+comfortable with the basics, and hungry for more power tools.  It
 discusses the more advanced regular expression operators and
 introduces the latest cutting-edge innovations.
 
@@ -690,49 +690,51 @@ of what Perl does when it tries to match
 
 =over 4
 
-=item Z<>0. Start with the first letter in the string C<'a'>.
+=item 1.
 
-E<nbsp>
+Start with the first letter in the string C<'a'>.
 
-=item Z<>1. Try the first alternative in the first group C<'abd'>.
+=item 2.
 
-E<nbsp>
+Try the first alternative in the first group C<'abd'>.
 
-=item Z<>2.  Match C<'a'> followed by C<'b'>. So far so good.
+=item 3.
 
-E<nbsp>
+Match C<'a'> followed by C<'b'>. So far so good.
 
-=item Z<>3.  C<'d'> in the regexp doesn't match C<'c'> in the string - a
+=item 4.
+
+C<'d'> in the regexp doesn't match C<'c'> in the string - a
 dead end.  So backtrack two characters and pick the second alternative
 in the first group C<'abc'>.
 
-E<nbsp>
+=item 5.
 
-=item Z<>4.  Match C<'a'> followed by C<'b'> followed by C<'c'>.  We are on a roll
+Match C<'a'> followed by C<'b'> followed by C<'c'>.  We are on a roll
 and have satisfied the first group. Set C<$1> to C<'abc'>.
 
-E<nbsp>
+=item 6.
 
-=item Z<>5 Move on to the second group and pick the first alternative C<'df'>.
+Move on to the second group and pick the first alternative C<'df'>.
 
-E<nbsp>
+=item 7.
 
-=item Z<>6 Match the C<'d'>.
+Match the C<'d'>.
 
-E<nbsp>
+=item 8.
 
-=item Z<>7.  C<'f'> in the regexp doesn't match C<'e'> in the string, so a dead
+C<'f'> in the regexp doesn't match C<'e'> in the string, so a dead
 end.  Backtrack one character and pick the second alternative in the
 second group C<'d'>.
 
-E<nbsp>
+=item 9.
 
-=item Z<>8.  C<'d'> matches. The second grouping is satisfied, so set
+C<'d'> matches. The second grouping is satisfied, so set
 C<$2> to C<'d'>.
 
-E<nbsp>
+=item 10.
 
-=item Z<>9.  We are at the end of the regexp, so we are done! We have
+We are at the end of the regexp, so we are done! We have
 matched C<'abcd'> out of the string C<"abcde">.
 
 =back
@@ -1322,36 +1324,38 @@ backtracking.  Here is a step-by-step an
 
 =over 4
 
-=item Z<>0.  Start with the first letter in the string C<'t'>.
+=item 1.
+
+Start with the first letter in the string C<'t'>.
 
-E<nbsp>
+=item 2.
 
-=item Z<>1.  The first quantifier C<'.*'> starts out by matching the whole
-string "C<the cat in the hat>".
+The first quantifier C<'.*'> starts out by matching the whole
+string C<"the cat in the hat">.
 
-E<nbsp>
+=item 3.
 
-=item Z<>2.  C<'a'> in the regexp element C<'at'> doesn't match the end
+C<'a'> in the regexp element C<'at'> doesn't match the end
 of the string.  Backtrack one character.
 
-E<nbsp>
+=item 4.
 
-=item Z<>3.  C<'a'> in the regexp element C<'at'> still doesn't match
+C<'a'> in the regexp element C<'at'> still doesn't match
 the last letter of the string C<'t'>, so backtrack one more character.
 
-E<nbsp>
+=item 5.
 
-=item Z<>4.  Now we can match the C<'a'> and the C<'t'>.
+Now we can match the C<'a'> and the C<'t'>.
 
-E<nbsp>
+=item 6.
 
-=item Z<>5.  Move on to the third element C<'.*'>.  Since we are at the
+Move on to the third element C<'.*'>.  Since we are at the
 end of the string and C<'.*'> can match 0 times, assign it the empty
 string.
 
-E<nbsp>
+=item 7.
 
-=item Z<>6.  We are done!
+We are done!
 
 =back
 
@@ -2465,10 +2469,10 @@ parentheses and the second alternative C
 substring delimited by parentheses.  The problem with this regexp is
 that it is pathological: it has nested indeterminate quantifiers
 of the form C<(a+|b)+>.  We discussed in Part 1 how nested quantifiers
-like this could take an exponentially long time to execute if no match
-were possible.  To prevent the exponential blowup, we need to prevent
-useless backtracking at some point.  This can be done by enclosing the
-inner quantifier as an independent subexpression:
+like this could take an exponentially long time to execute if there
+is no match possible.  To prevent the exponential blowup, we need to
+prevent useless backtracking at some point.  This can be done by
+enclosing the inner quantifier as an independent subexpression:
 
     $x =~ /\( ( (?> [ ^ () ]+ ) | \([ ^ () ]* \) )+ \)/xx;
 
Index: gnu/usr.bin/perl/pod/perlrun.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlrun.pod,v
diff -u -p -a -u -p -r1.23 perlrun.pod
--- gnu/usr.bin/perl/pod/perlrun.pod	15 Feb 2023 01:36:35 -0000	1.23
+++ gnu/usr.bin/perl/pod/perlrun.pod	21 Feb 2024 15:47:03 -0000
@@ -440,7 +440,7 @@ B<-D14> is equivalent to B<-Dtls>):
 All these flags require B<-DDEBUGGING> when you compile the Perl
 executable (but see C<:opd> in L<Devel::Peek> or L<re/'debug' mode>
 which may change this).
-See the F<INSTALL> file in the Perl source distribution
+See the L<INSTALL> file in the Perl source distribution
 for how to do this.
 
 If you're just trying to get a print out of each line of Perl code
@@ -1404,6 +1404,32 @@ startup randomization (hash keys) if C<-
 with tainting enabled.
 
 Perl may be built to ignore this variable.
+
+=item PERL_RAND_SEED
+X<PERL_RAND_SEED>
+
+When set to an integer value this value will be used to seed the perl
+internal random number generator used for C<rand()> when it is used
+without an explicit C<srand()> call or for when an explicit no-argument
+C<srand()> call is made.
+
+Normally calling C<rand()> prior to calling C<srand()> or calling
+C<srand()> explicitly with no arguments should result in the random
+number generator using "best efforts" to seed the generator state with a
+relatively high quality random seed. When this environment variable is
+set then the seeds used will be deterministically computed from the
+value provided in the env var in such a way that the application process
+and any forks or threads should continue to have their own unique seed but
+that the program may be run twice with identical results as far as
+C<rand()> goes (assuming all else is equal).
+
+PERL_RAND_SEED is intended for performance measurements and debugging
+and is explicitly NOT intended for stable testing. The only guarantee is
+that a specific perl executable will produce the same results twice in a
+row, there is no guarantee that the results will be the same between
+perl releases or on different architectures.
+
+Ignored if perl is run setuid or setgid.
 
 =back
 
Index: gnu/usr.bin/perl/pod/perlsecpolicy.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlsecpolicy.pod,v
diff -u -p -a -u -p -r1.1.1.2 perlsecpolicy.pod
--- gnu/usr.bin/perl/pod/perlsecpolicy.pod	15 Feb 2023 01:32:50 -0000	1.1.1.2
+++ gnu/usr.bin/perl/pod/perlsecpolicy.pod	21 Feb 2024 15:47:03 -0000
@@ -488,10 +488,4 @@ omitted from announcements.
 The Perl project is a non-profit volunteer effort. We do not provide
 any monetary rewards for reporting security issues in Perl.
 
-The L<Internet Bug Bounty|https://internetbugbounty.org/> offers monetary
-rewards for some Perl security issues after they are fully resolved. The
-terms of this program are available at L<HackerOne|https://hackerone.com/ibb-perl>.
-
-This program is not run by the Perl project or the Perl security team.
-
 =cut
Index: gnu/usr.bin/perl/pod/perlstyle.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlstyle.pod,v
diff -u -p -a -u -p -r1.9 perlstyle.pod
--- gnu/usr.bin/perl/pod/perlstyle.pod	15 Feb 2023 01:36:35 -0000	1.9
+++ gnu/usr.bin/perl/pod/perlstyle.pod	21 Feb 2024 15:47:03 -0000
@@ -23,7 +23,7 @@ well as several other useful L<named fea
 
     use v5.36;
 
-Regarding aesthetics of code lay out, about the only thing Larry
+Regarding aesthetics of code layout, about the only thing Larry
 cares strongly about is that the closing curly bracket of
 a multi-line BLOCK should line up with the keyword that started the construct.
 Beyond that, he has other preferences that aren't so strong:
@@ -225,7 +225,7 @@ Don't use slash as a delimiter when your
 
 =item *
 
-Use the new C<and> and C<or> operators to avoid having to parenthesize
+Use the C<and> and C<or> operators to avoid having to parenthesize
 list operators so much, and to reduce the incidence of punctuation
 operators like C<&&> and C<||>.  Call your subroutines as if they were
 functions or list operators to avoid excessive ampersands and parentheses.
Index: gnu/usr.bin/perl/pod/perlsub.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlsub.pod,v
diff -u -p -a -u -p -r1.23 perlsub.pod
--- gnu/usr.bin/perl/pod/perlsub.pod	15 Feb 2023 01:36:35 -0000	1.23
+++ gnu/usr.bin/perl/pod/perlsub.pod	21 Feb 2024 15:47:03 -0000
@@ -8,32 +8,32 @@ perlsub - Perl subroutines
 To declare subroutines:
 X<subroutine, declaration> X<sub>
 
-    sub NAME;			  # A "forward" declaration.
-    sub NAME(PROTO);		  #  ditto, but with prototypes
-    sub NAME : ATTRS;		  #  with attributes
-    sub NAME(PROTO) : ATTRS;	  #  with attributes and prototypes
-
-    sub NAME BLOCK		  # A declaration and a definition.
-    sub NAME(PROTO) BLOCK	  #  ditto, but with prototypes
-    sub NAME : ATTRS BLOCK	  #  with attributes
-    sub NAME(PROTO) : ATTRS BLOCK #  with prototypes and attributes
+    sub NAME;                       # A "forward" declaration.
+    sub NAME(PROTO);                #  ditto, but with prototypes
+    sub NAME : ATTRS;               #  with attributes
+    sub NAME(PROTO) : ATTRS;        #  with attributes and prototypes
+
+    sub NAME BLOCK                  # A declaration and a definition.
+    sub NAME(PROTO) BLOCK           #  ditto, but with prototypes
+    sub NAME : ATTRS BLOCK          #  with attributes
+    sub NAME(PROTO) : ATTRS BLOCK   #  with prototypes and attributes
 
     use feature 'signatures';
-    sub NAME(SIG) BLOCK                    # with signature
-    sub NAME :ATTRS (SIG) BLOCK            # with signature, attributes
-    sub NAME :prototype(PROTO) (SIG) BLOCK # with signature, prototype
+    sub NAME(SIG) BLOCK                     # with signature
+    sub NAME :ATTRS (SIG) BLOCK             # with signature, attributes
+    sub NAME :prototype(PROTO) (SIG) BLOCK  # with signature, prototype
 
 To define an anonymous subroutine at runtime:
 X<subroutine, anonymous>
 
-    $subref = sub BLOCK;		 # no proto
-    $subref = sub (PROTO) BLOCK;	 # with proto
-    $subref = sub : ATTRS BLOCK;	 # with attributes
-    $subref = sub (PROTO) : ATTRS BLOCK; # with proto and attributes
+    $subref = sub BLOCK;                    # no proto
+    $subref = sub (PROTO) BLOCK;            # with proto
+    $subref = sub : ATTRS BLOCK;            # with attributes
+    $subref = sub (PROTO) : ATTRS BLOCK;    # with proto and attributes
 
     use feature 'signatures';
-    $subref = sub (SIG) BLOCK;           # with signature
-    $subref = sub : ATTRS(SIG) BLOCK;    # with signature, attributes
+    $subref = sub (SIG) BLOCK;          # with signature
+    $subref = sub : ATTRS(SIG) BLOCK;   # with signature, attributes
 
 To import subroutines:
 X<import>
@@ -43,10 +43,10 @@ X<import>
 To call subroutines:
 X<subroutine, call> X<call>
 
-    NAME(LIST);	   # & is optional with parentheses.
-    NAME LIST;	   # Parentheses optional if predeclared/imported.
-    &NAME(LIST);   # Circumvent prototypes.
-    &NAME;	   # Makes current @_ visible to called subroutine.
+    NAME(LIST);     # & is optional with parentheses.
+    NAME LIST;      # Parentheses optional if predeclared/imported.
+    &NAME(LIST);    # Circumvent prototypes.
+    &NAME;          # Makes current @_ visible to called subroutine.
 
 =head1 DESCRIPTION
 
@@ -70,7 +70,7 @@ X<subroutine, parameter> X<parameter>
 
 In a subroutine that uses signatures (see L</Signatures> below),
 arguments are assigned into lexical variables introduced by the
-signature.  In the current implementation of perl they are also
+signature.  In the current implementation of Perl they are also
 accessible in the C<@_> array in the same way as for non-signature
 subroutines, but accessing them in this manner is now discouraged inside
 such a signature-using subroutine.
@@ -115,11 +115,11 @@ X<subroutine, return value> X<return val
 Example:
 
     sub max {
-	my $max = shift(@_);
-	foreach $foo (@_) {
-	    $max = $foo if $max < $foo;
-	}
-	return $max;
+        my $max = shift(@_);
+        foreach $foo (@_) {
+            $max = $foo if $max < $foo;
+        }
+        return $max;
     }
     $bestday = max($mon,$tue,$wed,$thu,$fri);
 
@@ -129,28 +129,28 @@ Example:
     #  that start with whitespace
 
     sub get_line {
-	$thisline = $lookahead;  # global variables!
-	LINE: while (defined($lookahead = <STDIN>)) {
-	    if ($lookahead =~ /^[ \t]/) {
-		$thisline .= $lookahead;
-	    }
-	    else {
-		last LINE;
-	    }
-	}
-	return $thisline;
+        $thisline = $lookahead;  # global variables!
+        LINE: while (defined($lookahead = <STDIN>)) {
+            if ($lookahead =~ /^[ \t]/) {
+                $thisline .= $lookahead;
+            }
+            else {
+                last LINE;
+            }
+        }
+        return $thisline;
     }
 
-    $lookahead = <STDIN>;	# get first line
+    $lookahead = <STDIN>;       # get first line
     while (defined($line = get_line())) {
-	...
+        ...
     }
 
 Assigning to a list of private variables to name your arguments:
 
     sub maybeset {
-	my($key, $value) = @_;
-	$Foo{$key} = $value unless $Foo{$key};
+        my($key, $value) = @_;
+        $Foo{$key} = $value unless $Foo{$key};
     }
 
 Because the assignment copies the values, this also has the effect
@@ -161,7 +161,7 @@ X<call-by-reference> X<call-by-value>
 
     upcase_in($v1, $v2);  # this changes $v1 and $v2
     sub upcase_in {
-	for (@_) { tr/a-z/A-Z/ }
+        for (@_) { tr/a-z/A-Z/ }
     }
 
 You aren't allowed to modify constants in this way, of course.  If an
@@ -177,10 +177,10 @@ of changing them in place:
 
     ($v3, $v4) = upcase($v1, $v2);  # this doesn't change $v1 and $v2
     sub upcase {
-	return unless defined wantarray;  # void context, do nothing
-	my @parms = @_;
-	for (@parms) { tr/a-z/A-Z/ }
-  	return wantarray ? @parms : $parms[0];
+        return unless defined wantarray;  # void context, do nothing
+        my @parms = @_;
+        for (@parms) { tr/a-z/A-Z/ }
+        return wantarray ? @parms : $parms[0];
     }
 
 Notice how this (unprototyped) function doesn't care whether it was
@@ -195,11 +195,11 @@ definition even if we fed it things like
 
 Do not, however, be tempted to do this:
 
-    (@a, @b)   = upcase(@list1, @list2);
+    (@x, @y)   = upcase(@list1, @list2);
 
 Like the flattened incoming parameter list, the return list is also
 flattened on return.  So all you have managed to do here is stored
-everything in C<@a> and made C<@b> empty.  See 
+everything in C<@x> and made C<@y> empty.  See
 L</Pass by Reference> for alternatives.
 
 A subroutine may be called using an explicit C<&> prefix.  The
@@ -220,13 +220,13 @@ time of the call is visible to subroutin
 efficiency mechanism that new users may wish to avoid.
 X<recursion>
 
-    &foo(1,2,3);	# pass three arguments
-    foo(1,2,3);		# the same
+    &foo(1,2,3);        # pass three arguments
+    foo(1,2,3);         # the same
 
-    foo();		# pass a null list
-    &foo();		# the same
+    foo();              # pass a null list
+    &foo();             # the same
 
-    &foo;		# foo() get current args, like foo(@_) !!
+    &foo;               # foo() get current args, like foo(@_) !!
     use strict 'subs';
     foo;                # like foo() iff sub foo predeclared, else
                         # a compile-time error
@@ -247,9 +247,9 @@ your subroutine's name.
 
     use v5.16;
     my $factorial = sub {
-      my ($x) = @_;
-      return 1 if $x == 1;
-      return($x * __SUB__->( $x - 1 ) );
+        my ($x) = @_;
+        return 1 if $x == 1;
+        return($x * __SUB__->( $x - 1 ) );
     };
 
 The behavior of C<__SUB__> within a regex code block (such as C</(?{...})/>)
@@ -259,8 +259,8 @@ Subroutines whose names are in all upper
 core, as are modules whose names are in all lower case.  A subroutine in
 all capitals is a loosely-held convention meaning it will be called
 indirectly by the run-time system itself, usually due to a triggered event.
-Subroutines whose name start with a left parenthesis are also reserved the 
-same way.  The following is a list of some subroutines that currently do 
+Subroutines whose name start with a left parenthesis are also reserved the
+same way.  The following is a list of some subroutines that currently do
 special, pre-defined things.
 
 =over
@@ -279,23 +279,23 @@ C<DESTROY>, C<DOES>
 
 =item documented in L<perltie>
 
-C<BINMODE>, C<CLEAR>, C<CLOSE>, C<DELETE>, C<DESTROY>, C<EOF>, C<EXISTS>, 
-C<EXTEND>, C<FETCH>, C<FETCHSIZE>, C<FILENO>, C<FIRSTKEY>, C<GETC>, 
-C<NEXTKEY>, C<OPEN>, C<POP>, C<PRINT>, C<PRINTF>, C<PUSH>, C<READ>, 
-C<READLINE>, C<SCALAR>, C<SEEK>, C<SHIFT>, C<SPLICE>, C<STORE>, 
-C<STORESIZE>, C<TELL>, C<TIEARRAY>, C<TIEHANDLE>, C<TIEHASH>, 
+C<BINMODE>, C<CLEAR>, C<CLOSE>, C<DELETE>, C<DESTROY>, C<EOF>, C<EXISTS>,
+C<EXTEND>, C<FETCH>, C<FETCHSIZE>, C<FILENO>, C<FIRSTKEY>, C<GETC>,
+C<NEXTKEY>, C<OPEN>, C<POP>, C<PRINT>, C<PRINTF>, C<PUSH>, C<READ>,
+C<READLINE>, C<SCALAR>, C<SEEK>, C<SHIFT>, C<SPLICE>, C<STORE>,
+C<STORESIZE>, C<TELL>, C<TIEARRAY>, C<TIEHANDLE>, C<TIEHASH>,
 C<TIESCALAR>, C<UNSHIFT>, C<UNTIE>, C<WRITE>
 
 =item documented in L<PerlIO::via>
 
-C<BINMODE>, C<CLEARERR>, C<CLOSE>, C<EOF>, C<ERROR>, C<FDOPEN>, C<FILENO>, 
-C<FILL>, C<FLUSH>, C<OPEN>, C<POPPED>, C<PUSHED>, C<READ>, C<SEEK>, 
+C<BINMODE>, C<CLEARERR>, C<CLOSE>, C<EOF>, C<ERROR>, C<FDOPEN>, C<FILENO>,
+C<FILL>, C<FLUSH>, C<OPEN>, C<POPPED>, C<PUSHED>, C<READ>, C<SEEK>,
 C<SETLINEBUF>, C<SYSOPEN>, C<TELL>, C<UNREAD>, C<UTF8>, C<WRITE>
 
 =item documented in L<perlfunc>
 
-L<< C<import> | perlfunc/use >>, L<< C<unimport> | perlfunc/use >>,
-L<< C<INC> | perlfunc/require >>
+L<< C<import>|perlfunc/use >>, L<< C<unimport>|perlfunc/use >>,
+L<< C<INC>|perlfunc/require >>
 
 =item documented in L<UNIVERSAL>
 
@@ -335,7 +335,7 @@ block, after any name or attributes.
 
 For example,
 
-    sub foo :lvalue ($a, $b = 1, @c) { .... }
+    sub foo :lvalue ($x, $y = 1, @z) { .... }
 
 The signature declares lexical variables that are
 in scope for the block.  When the subroutine is called, the signature
@@ -348,7 +348,7 @@ Positional parameters are handled by sim
 the signature.  For example,
 
     sub foo ($left, $right) {
-	return $left + $right;
+        return $left + $right;
     }
 
 takes two positional parameters, which must be filled at runtime by
@@ -357,18 +357,18 @@ not permitted to pass more arguments tha
 equivalent to
 
     sub foo {
-	die "Too many arguments for subroutine" unless @_ <= 2;
-	die "Too few arguments for subroutine" unless @_ >= 2;
-	my $left = $_[0];
-	my $right = $_[1];
-	return $left + $right;
+        die "Too many arguments for subroutine" unless @_ <= 2;
+        die "Too few arguments for subroutine" unless @_ >= 2;
+        my $left = $_[0];
+        my $right = $_[1];
+        return $left + $right;
     }
 
 An argument can be ignored by omitting the main part of the name from
 a parameter declaration, leaving just a bare C<$> sigil.  For example,
 
     sub foo ($first, $, $third) {
-	return "first=$first, third=$third";
+        return "first=$first, third=$third";
     }
 
 Although the ignored argument doesn't go into a variable, it is still
@@ -378,7 +378,7 @@ A positional parameter is made optional 
 separated from the parameter name by C<=>:
 
     sub foo ($left, $right = 0) {
-	return $left + $right;
+        return $left + $right;
     }
 
 The above subroutine may be called with either one or two arguments.
@@ -389,7 +389,7 @@ For example,
 
     my $auto_id = 0;
     sub foo ($thing, $id = $auto_id++) {
-	print "$thing has ID $id";
+        print "$thing has ID $id";
     }
 
 automatically assigns distinct sequential IDs to things for which no
@@ -398,14 +398,32 @@ refer to parameters earlier in the signa
 one parameter vary according to the earlier parameters.  For example,
 
     sub foo ($first_name, $surname, $nickname = $first_name) {
-	print "$first_name $surname is known as \"$nickname\"";
+        print "$first_name $surname is known as \"$nickname\"";
+    }
+
+A default value expression can also be written using the C<//=> operator,
+where it will be evaluated and used if the caller omitted a value or the
+value provided was C<undef>.
+
+    sub foo ($name //= "world") {
+        print "Hello, $name";
+    }
+
+    foo(undef);  # will print "Hello, world"
+
+Similarly, the C<||=> operator can be used to provide a default
+expression to be used whenever the caller provided a false value (and
+remember that a missing or C<undef> value are also false).
+
+    sub foo ($x ||= 10) {
+        return 5 + $x;
     }
 
 An optional parameter can be nameless just like a mandatory parameter.
 For example,
 
     sub foo ($thing, $ = 1) {
-	print $thing;
+        print $thing;
     }
 
 The parameter's default value will still be evaluated if the corresponding
@@ -417,7 +435,7 @@ category is enabled.  If a nameless opti
 is not important, it may be omitted just as the parameter's name was:
 
     sub foo ($thing, $=) {
-	print $thing;
+        print $thing;
     }
 
 Optional positional parameters must come after all mandatory positional
@@ -431,7 +449,7 @@ After positional parameters, additional 
 slurpy parameter.  The simplest form of this is just an array variable:
 
     sub foo ($filter, @inputs) {
-	print $filter->($_) foreach @inputs;
+        print $filter->($_) foreach @inputs;
     }
 
 With a slurpy parameter in the signature, there is no upper limit on how
@@ -440,7 +458,7 @@ just like a positional parameter, in whi
 turn off the argument limit that would otherwise apply:
 
     sub foo ($thing, @) {
-	print $thing;
+        print $thing;
     }
 
 A slurpy parameter may instead be a hash, in which case the arguments
@@ -451,7 +469,7 @@ duplicates then the later instance takes
 as with standard hash construction.
 
     sub foo ($filter, %inputs) {
-	print $filter->($_, $inputs{$_}) foreach sort keys %inputs;
+        print $filter->($_, $inputs{$_}) foreach sort keys %inputs;
     }
 
 A slurpy hash parameter may be nameless just like other kinds of
@@ -459,7 +477,7 @@ parameter.  It still insists that the nu
 it be even, even though they're not being put into a variable.
 
     sub foo ($thing, %) {
-	print $thing;
+        print $thing;
     }
 
 A slurpy parameter, either array or hash, must be the last thing in the
@@ -472,7 +490,7 @@ A signature may be entirely empty, in wh
 that the caller passed no arguments:
 
     sub foo () {
-	return 123;
+        return 123;
     }
 
 Prior to Perl 5.36 these were considered experimental, and emitted a
@@ -483,7 +501,7 @@ statement such as:
 
     no warnings 'experimental::signatures';
 
-In the current perl implementation, when using a signature the arguments
+In the current Perl implementation, when using a signature the arguments
 are still also available in the special array variable C<@_>.  However,
 accessing them via this array is now discouraged, and should not be
 relied upon in newly-written code as this ability may change in a future
@@ -532,7 +550,7 @@ of calls to the subroutine, and the sign
 lexical variables at runtime.  You can therefore write
 
     sub foo :prototype($$) ($left, $right) {
-	return $left + $right;
+        return $left + $right;
     }
 
 The prototype attribute, and any other attributes, must come before
@@ -545,11 +563,11 @@ X<lexical scope> X<attributes, my>
 
 Synopsis:
 
-    my $foo;	    	# declare $foo lexically local
-    my (@wid, %get); 	# declare list of variables local
-    my $foo = "flurp";	# declare $foo lexical, and init it
-    my @oof = @bar;	# declare @oof lexical, and init it
-    my $x : Foo = $y;	# similar, with an attribute applied
+    my $foo;            # declare $foo lexically local
+    my (@wid, %get);    # declare list of variables local
+    my $foo = "flurp";  # declare $foo lexical, and init it
+    my @oof = @bar;     # declare @oof lexical, and init it
+    my $x : Foo = $y;   # similar, with an attribute applied
 
 B<WARNING>: The use of attribute lists on C<my> declarations is still
 evolving.  The current semantics and interface are subject to change.
@@ -579,7 +597,7 @@ to the lexical $x variable because both 
 occurred at the same scope, presumably file scope.
 
     my $x = 10;
-    sub bumpx { $x++ } 
+    sub bumpx { $x++ }
 
 An C<eval()>, however, can see lexical variables of the scope it is
 being evaluated in, so long as the names aren't hidden by declarations within
@@ -591,22 +609,22 @@ to initialize your variables.  (If no in
 particular variable, it is created with the undefined value.)  Commonly
 this is used to name input parameters to a subroutine.  Examples:
 
-    $arg = "fred";	  # "global" variable
+    $arg = "fred";          # "global" variable
     $n = cube_root(27);
     print "$arg thinks the root is $n\n";
- fred thinks the root is 3
+    # outputs: fred thinks the root is 3
 
     sub cube_root {
-	my $arg = shift;  # name doesn't matter
-	$arg **= 1/3;
-	return $arg;
+        my $arg = shift;  # name doesn't matter
+        $arg **= 1/3;
+        return $arg;
     }
 
 The C<my> is simply a modifier on something you might assign to.  So when
 you do assign to variables in its argument list, C<my> doesn't
 change whether those variables are viewed as a scalar or an array.  So
 
-    my ($foo) = <STDIN>;		# WRONG?
+    my ($foo) = <STDIN>;                # WRONG?
     my @FOO = <STDIN>;
 
 both supply a list context to the right-hand side, while
@@ -615,7 +633,7 @@ both supply a list context to the right-
 
 supplies a scalar context.  But the following declares only one variable:
 
-    my $foo, $bar = 1;			# WRONG
+    my $foo, $bar = 1;                  # WRONG
 
 That has the same effect as
 
@@ -653,12 +671,12 @@ it.  Similarly, in the conditional
     } elsif ($answer =~ /^no$/i) {
         user_disagrees();
     } else {
-	chomp $answer;
+        chomp $answer;
         die "'$answer' is neither 'yes' nor 'no'";
     }
 
 the scope of $answer extends from its declaration through the rest
-of that conditional, including any C<elsif> and C<else> clauses, 
+of that conditional, including any C<elsif> and C<else> clauses,
 but not beyond it.  See L<perlsyn/"Simple Statements"> for information
 on the scope of variables in statements with modifiers.
 
@@ -701,7 +719,7 @@ Variables declared with C<my> are not pa
 never fully qualified with the package name.  In particular, you're not
 allowed to try to make a package variable (or other global) lexical:
 
-    my $pack::var;	# ERROR!  Illegal syntax
+    my $pack::var;      # ERROR!  Illegal syntax
 
 In fact, a dynamic variable (also known as package or global variables)
 are still accessible using the fully qualified C<::> notation even while a
@@ -739,7 +757,8 @@ L<perlref/"Function Templates"> for some
 this.
 
 =head2 Persistent Private Variables
-X<state> X<state variable> X<static> X<variable, persistent> X<variable, static> X<closure>
+X<state> X<state variable> X<static> X<variable, persistent>
+X<variable, static> X<closure>
 
 There are two ways to build persistent private variables in Perl 5.10.
 First, you can simply use the C<state> feature.  Or, you can use closures,
@@ -772,7 +791,7 @@ And this example uses anonymous subrouti
 
     use feature 'state';
     sub create_counter {
-	return sub { state $x; return ++$x }
+        return sub { state $x; return ++$x }
     }
 
 Also, since C<$x> is lexical, it can't be reached or modified by any Perl
@@ -789,7 +808,7 @@ of the assignment involves any parenthes
 Just because a lexical variable is lexically (also called statically)
 scoped to its enclosing block, C<eval>, or C<do> FILE, this doesn't mean that
 within a function it works like a C static.  It normally works more
-like a C auto, but with implicit garbage collection.  
+like a C auto, but with implicit garbage collection.
 
 Unlike local variables in C or C++, Perl's lexical variables don't
 necessarily get recycled just because their scope has exited.
@@ -808,10 +827,10 @@ C's static variables, just enclose the w
 and put the static variable outside the function but in the block.
 
     {
-	my $secret_val = 0;
-	sub gimme_another {
-	    return ++$secret_val;
-	}
+        my $secret_val = 0;
+        sub gimme_another {
+            return ++$secret_val;
+        }
     }
     # $secret_val now becomes unreachable by the outside
     # world, but retains its value between calls to gimme_another
@@ -825,10 +844,10 @@ code block around it to make sure it get
 starts to run:
 
     BEGIN {
-	my $secret_val = 0;
-	sub gimme_another {
-	    return ++$secret_val;
-	}
+        my $secret_val = 0;
+        sub gimme_another {
+            return ++$secret_val;
+        }
     }
 
 See L<perlmod/"BEGIN, UNITCHECK, CHECK, INIT and END"> about the
@@ -855,19 +874,19 @@ Synopsis:
 
     # localization of values
 
-    local $foo;		       # make $foo dynamically local
-    local (@wid, %get);	       # make list of variables local
+    local $foo;                # make $foo dynamically local
+    local (@wid, %get);        # make list of variables local
     local $foo = "flurp";      # make $foo dynamic, and init it
-    local @oof = @bar;	       # make @oof dynamic, and init it
+    local @oof = @bar;        # make @oof dynamic, and init it
 
     local $hash{key} = "val";  # sets a local value for this hash entry
     delete local $hash{key};   # delete this entry for the current block
     local ($cond ? $v1 : $v2); # several types of lvalues support
-			       # localization
+                               # localization
 
     # localization of symbols
 
-    local *FH;		       # localize $FH, @FH, %FH, &FH  ...
+    local *FH;                 # localize $FH, @FH, %FH, &FH  ...
     local *merlyn = *randal;   # now $merlyn is really $randal, plus
                                #     @merlyn is really @randal, etc
     local *merlyn = 'randal';  # SAME THING: promote 'randal' to *randal
@@ -903,8 +922,8 @@ variables outside the loop.
 X<local, context>
 
 A C<local> is simply a modifier on an lvalue expression.  When you assign to
-a C<local>ized variable, the C<local> doesn't change whether its list is viewed
-as a scalar or an array.  So
+a C<local>ized variable, the C<local> doesn't change whether its list is
+viewed as a scalar or an array.  So
 
     local($foo) = <STDIN>;
     local @FOO = <STDIN>;
@@ -928,13 +947,13 @@ This feature allows code like this to wo
     { local $/ = undef; $slurp = <FILE>; }
 
 Note, however, that this restricts localization of some values ; for
-example, the following statement dies, as of perl 5.10.0, with an error
+example, the following statement dies, as of Perl 5.10.0, with an error
 I<Modification of a read-only value attempted>, because the $1 variable is
 magical and read-only :
 
     local $1 = 2;
 
-One exception is the default scalar variable: starting with perl 5.14
+One exception is the default scalar variable: starting with Perl 5.14
 C<local($_)> will always strip all magic from $_, to make it possible
 to safely reuse $_ in a subroutine.
 
@@ -964,7 +983,8 @@ will not have any effect on the internal
 separator.
 
 =head3 Localization of elements of composite types
-X<local, composite type element> X<local, array element> X<local, hash element>
+X<local, composite type element> X<local, array element>
+X<local, hash element>
 
 It's also worth taking a moment to explain what happens when you
 C<local>ize a member of a composite type (i.e. an array or hash element).
@@ -980,20 +1000,20 @@ skipped elements with C<undef>.  For ins
     %hash = ( 'This' => 'is', 'a' => 'test' );
     @ary  = ( 0..5 );
     {
-         local($ary[5]) = 6;
-         local($hash{'a'}) = 'drill';
-         while (my $e = pop(@ary)) {
-             print "$e . . .\n";
-             last unless $e > 3;
-         }
-         if (@ary) {
-             $hash{'only a'} = 'test';
-             delete $hash{'a'};
-         }
+        local($ary[5]) = 6;
+        local($hash{'a'}) = 'drill';
+        while (my $e = pop(@ary)) {
+            print "$e . . .\n";
+            last unless $e > 3;
+        }
+        if (@ary) {
+            $hash{'only a'} = 'test';
+            delete $hash{'a'};
+        }
     }
     print join(' ', map { "$_ $hash{$_}" } sort keys %hash),".\n";
     print "The array has ",scalar(@ary)," elements: ",
-          join(', ', map { defined $_ ? $_ : 'undef' } @ary),"\n";
+        join(', ', map { defined $_ ? $_ : 'undef' } @ary),"\n";
 
 Perl will print
 
@@ -1009,7 +1029,8 @@ on array elements specified using negati
 surprising, and is very likely to change.
 
 =head3 Localized deletion of elements of composite types
-X<delete> X<local, composite type element> X<local, array element> X<local, hash element>
+X<delete> X<local, composite type element> X<local, array element>
+X<local, hash element>
 
 You can use the C<delete local $array[$idx]> and C<delete local $hash{key}>
 constructs to delete a composite type entry for the current block and restore
@@ -1037,23 +1058,23 @@ scoped to the C<do> block.  Slices are
 also accepted.
 
     my %hash = (
-     a => [ 7, 8, 9 ],
-     b => 1,
+        a => [ 7, 8, 9 ],
+        b => 1,
     )
 
     {
-     my $a = delete local $hash{a};
-     # $a is [ 7, 8, 9 ]
-     # %hash is (b => 1)
-
-     {
-      my @nums = delete local @$a[0, 2]
-      # @nums is (7, 9)
-      # $a is [ undef, 8 ]
-
-      $a[0] = 999; # will be erased when the scope ends
-     }
-     # $a is back to [ 7, 8, 9 ]
+        my $x = delete local $hash{a};
+        # $x is [ 7, 8, 9 ]
+        # %hash is (b => 1)
+
+        {
+            my @nums = delete local @$x[0, 2]
+            # @nums is (7, 9)
+            # $x is [ undef, 8 ]
+
+            $x[0] = 999; # will be erased when the scope ends
+        }
+        # $x is back to [ 7, 8, 9 ]
 
     }
     # %hash is back to its original state
@@ -1068,10 +1089,10 @@ To do this, you have to declare the subr
 
     my $val;
     sub canmod : lvalue {
-	$val;  # or:  return $val;
+        $val;  # or:  return $val;
     }
     sub nomod {
-	$val;
+        $val;
     }
 
     canmod() = 5;   # assigns to $val
@@ -1171,11 +1192,11 @@ So, in general, "state" subroutines are 
 necessary if you want to create closures:
 
     sub whatever {
-	my $x = shift;
-	my sub inner {
-	    ... do something with $x ...
-	}
-	inner();
+        my $x = shift;
+        my sub inner {
+            ... do something with $x ...
+        }
+        inner();
     }
 
 In this example, a new C<$x> is created when C<whatever> is called, and
@@ -1193,12 +1214,12 @@ inside an inner scope:
     sub foo { ... }
 
     sub bar {
-	my sub foo { ... }
-	{
-	    # need to use the outer foo here
-	    our sub foo;
-	    foo();
-	}
+        my sub foo { ... }
+        {
+            # need to use the outer foo here
+            our sub foo;
+            foo();
+        }
     }
 
 and to make a subroutine visible to other packages in the same scope:
@@ -1208,9 +1229,9 @@ and to make a subroutine visible to othe
     our sub do_something { ... }
 
     sub do_something_with_caller {
-	package DB;
-	() = caller 1;		# sets @DB::args
-	do_something(@args);	# uses MySneakyModule::do_something
+        package DB;
+        () = caller 1;          # sets @DB::args
+        do_something(@args);    # uses MySneakyModule::do_something
     }
 
 =head2 Passing Symbol Table Entries (typeglobs)
@@ -1223,7 +1244,7 @@ mechanism is generally easier to work wi
 
 Sometimes you don't want to pass the value of an array to a subroutine
 but rather the name of it, so that the subroutine can modify the global
-copy of it rather than working with a local copy.  In perl you can
+copy of it rather than working with a local copy.  In Perl you can
 refer to all objects of a particular name by prefixing the name
 with a star: C<*foo>.  This is often known as a "typeglob", because the
 star on the front can be thought of as a wildcard match for all the
@@ -1235,10 +1256,10 @@ subroutine.  When assigned to, it causes
 whatever C<*> value was assigned to it.  Example:
 
     sub doubleary {
-	local(*someary) = @_;
-	foreach $elem (@someary) {
-	    $elem *= 2;
-	}
+        local(*someary) = @_;
+        foreach $elem (@someary) {
+            $elem *= 2;
+        }
     }
     doubleary(*foo);
     doubleary(*bar);
@@ -1269,17 +1290,17 @@ I<must> use C<local> instead of C<my>.
 
 You need to give a global variable a temporary value, especially $_.
 
-The global variables, like C<@ARGV> or the punctuation variables, must be 
+The global variables, like C<@ARGV> or the punctuation variables, must be
 C<local>ized with C<local()>.  This block reads in F</etc/motd>, and splits
 it up into chunks separated by lines of equal signs, which are placed
 in C<@Fields>.
 
     {
-	local @ARGV = ("/etc/motd");
+        local @ARGV = ("/etc/motd");
         local $/ = undef;
-        local $_ = <>;	
-	@Fields = split /^\s*=+\s*$/;
-    } 
+        local $_ = <>;
+        @Fields = split /^\s*=+\s*$/;
+    }
 
 It particular, it's important to C<local>ize $_ in any routine that assigns
 to it.  Look out for implicit assignments in C<while> conditionals.
@@ -1309,9 +1330,9 @@ a local alias.
     {
         local *grow = \&shrink; # only until this block exits
         grow();                # really calls shrink()
-	move();		       # if move() grow()s, it shrink()s too
+        move();                # if move() grow()s, it shrink()s too
     }
-    grow();		       # get the real grow() again
+    grow();                    # get the real grow() again
 
 See L<perlref/"Function Templates"> for more about manipulating
 functions by name in this way.
@@ -1324,9 +1345,9 @@ You can C<local>ize just one element of 
 is done on dynamics:
 
     {
-	local $SIG{INT} = 'IGNORE';
-	funct();			    # uninterruptible
-    } 
+        local $SIG{INT} = 'IGNORE';
+        funct();                            # uninterruptible
+    }
     # interruptibility automatically restored here
 
 But it also works on lexically declared aggregates.
@@ -1346,15 +1367,15 @@ Here are a few simple examples.  First, 
 to a function and have it C<pop> all of then, returning a new list
 of all their former last elements:
 
-    @tailings = popmany ( \@a, \@b, \@c, \@d );
+    @tailings = popmany ( \@w, \@x, \@y, \@z );
 
     sub popmany {
-	my $aref;
-	my @retlist;
-	foreach $aref ( @_ ) {
-	    push @retlist, pop @$aref;
-	}
-	return @retlist;
+        my $aref;
+        my @retlist;
+        foreach $aref ( @_ ) {
+            push @retlist, pop @$aref;
+        }
+        return @retlist;
     }
 
 Here's how you might write a function that returns a
@@ -1362,13 +1383,13 @@ list of keys occurring in all the hashes
 
     @common = inter( \%foo, \%bar, \%joe );
     sub inter {
-	my ($k, $href, %seen); # locals
-	foreach $href (@_) {
-	    while ( $k = each %$href ) {
-		$seen{$k}++;
-	    }
-	}
-	return grep { $seen{$_} == @_ } keys %seen;
+        my ($k, $href, %seen); # locals
+        foreach $href (@_) {
+            while ( $k = each %$href ) {
+                $seen{$k}++;
+            }
+        }
+        return grep { $seen{$_} == @_ } keys %seen;
     }
 
 So far, we're using just the normal list return mechanism.
@@ -1379,12 +1400,12 @@ a little expensive.
 
 Where people get into trouble is here:
 
-    (@a, @b) = func(@c, @d);
+    (@w, @x) = func(@y, @z);
 or
-    (%a, %b) = func(%c, %d);
+    (%w, %x) = func(%y, %z);
 
-That syntax simply won't work.  It sets just C<@a> or C<%a> and
-clears the C<@b> or C<%b>.  Plus the function didn't get passed
+That syntax simply won't work.  It sets just C<@w> or C<%w> and
+clears the C<@x> or C<%x>.  Plus the function didn't get passed
 into two separate arrays or hashes: it got one long list in C<@_>,
 as always.
 
@@ -1393,28 +1414,28 @@ cleaner code, although not so nice to lo
 takes two array references as arguments, returning the two array elements
 in order of how many elements they have in them:
 
-    ($aref, $bref) = func(\@c, \@d);
-    print "@$aref has more than @$bref\n";
+    ($wref, $xref) = func(\@y, \@z);
+    print "@$wref has more than @$xref\n";
     sub func {
-	my ($cref, $dref) = @_;
-	if (@$cref > @$dref) {
-	    return ($cref, $dref);
-	} else {
-	    return ($dref, $cref);
-	}
+        my ($yref, $zref) = @_;
+        if (@$yref > @$zref) {
+            return ($yref, $zref);
+        } else {
+            return ($zref, $yref);
+        }
     }
 
 It turns out that you can actually do this also:
 
-    (*a, *b) = func(\@c, \@d);
-    print "@a has more than @b\n";
+    (*w, *x) = func(\@y, \@z);
+    print "@w has more than @x\n";
     sub func {
-	local (*c, *d) = @_;
-	if (@c > @d) {
-	    return (\@c, \@d);
-	} else {
-	    return (\@d, \@c);
-	}
+        local (*y, *z) = @_;
+        if (@y > @z) {
+            return (\@y, \@z);
+        } else {
+            return (\@z, \@y);
+        }
     }
 
 Here we're using the typeglobs to do symbol table aliasing.  It's
@@ -1428,23 +1449,23 @@ For example:
 
     splutter(\*STDOUT);
     sub splutter {
-	my $fh = shift;
-	print $fh "her um well a hmmm\n";
+        my $fh = shift;
+        print $fh "her um well a hmmm\n";
     }
 
     $rec = get_rec(\*STDIN);
     sub get_rec {
-	my $fh = shift;
-	return scalar <$fh>;
+        my $fh = shift;
+        return scalar <$fh>;
     }
 
 If you're planning on generating new filehandles, you could do this.
 Notice to pass back just the bare *FH, not its reference.
 
     sub openit {
-	my $path = shift;
-	local *FH;
-	return open (FH, $path) ? *FH : undef;
+        my $path = shift;
+        local *FH;
+        return open (FH, $path) ? *FH : undef;
     }
 
 =head2 Prototypes
@@ -1485,22 +1506,22 @@ subroutines that work like built-in func
 for some other functions that parse almost exactly like the
 corresponding built-in.
 
-   Declared as		   Called as
+    Declared as             Called as
 
-   sub mylink ($$)	   mylink $old, $new
-   sub myvec ($$$)	   myvec $var, $offset, 1
-   sub myindex ($$;$)	   myindex &getstring, "substr"
-   sub mysyswrite ($$$;$)  mysyswrite $buf, 0, length($buf) - $off, $off
-   sub myreverse (@)	   myreverse $a, $b, $c
-   sub myjoin ($@)	   myjoin ":", $a, $b, $c
-   sub mypop (\@)	   mypop @array
-   sub mysplice (\@$$@)	   mysplice @array, 0, 2, @pushme
-   sub mykeys (\[%@])	   mykeys $hashref->%*
-   sub myopen (*;$)	   myopen HANDLE, $name
-   sub mypipe (**)	   mypipe READHANDLE, WRITEHANDLE
-   sub mygrep (&@)	   mygrep { /foo/ } $a, $b, $c
-   sub myrand (;$)	   myrand 42
-   sub mytime ()	   mytime
+    sub mylink ($$)         mylink $old, $new
+    sub myvec ($$$)         myvec $var, $offset, 1
+    sub myindex ($$;$)      myindex &getstring, "substr"
+    sub mysyswrite ($$$;$)  mysyswrite $buf, 0, length($buf) - $off, $off
+    sub myreverse (@)       myreverse $x, $y, $z
+    sub myjoin ($@)         myjoin ":", $x, $y, $z
+    sub mypop (\@)          mypop @array
+    sub mysplice (\@$$@)    mysplice @array, 0, 2, @pushme
+    sub mykeys (\[%@])      mykeys $hashref->%*
+    sub myopen (*;$)        myopen HANDLE, $name
+    sub mypipe (**)         mypipe READHANDLE, WRITEHANDLE
+    sub mygrep (&@)         mygrep { /foo/ } $x, $y, $z
+    sub myrand (;$)         myrand 42
+    sub mytime ()           mytime
 
 Any backslashed prototype character represents an actual argument
 that must start with that character (optionally preceded by C<my>,
@@ -1542,8 +1563,8 @@ follows:
     use Symbol 'qualify_to_ref';
 
     sub foo (*) {
-	my $fh = qualify_to_ref(shift, caller);
-	...
+        my $fh = qualify_to_ref(shift, caller);
+        ...
     }
 
 The C<+> prototype is a special alternative to C<$> that will act like
@@ -1580,26 +1601,26 @@ without a prototype.  If you want to for
 same precedence as a list operator, add C<;> to the end of the prototype:
 
     sub mygetprotobynumber($;);
-    mygetprotobynumber $a > $b; # parsed as mygetprotobynumber($a > $b)
+    mygetprotobynumber $x > $y; # parsed as mygetprotobynumber($x > $y)
 
 The interesting thing about C<&> is that you can generate new syntax with it,
 provided it's in the initial position:
 X<&>
 
     sub try (&@) {
-	my($try,$catch) = @_;
-	eval { &$try };
-	if ($@) {
-	    local $_ = $@;
-	    &$catch;
-	}
+        my($try,$catch) = @_;
+        eval { &$try };
+        if ($@) {
+            local $_ = $@;
+            &$catch;
+        }
     }
     sub catch (&) { $_[0] }
 
     try {
-	die "phooey";
+        die "phooey";
     } catch {
-	/phooey/ and print "unphooey\n";
+        /phooey/ and print "unphooey\n";
     };
 
 That prints C<"unphooey">.  (Yes, there are still unresolved
@@ -1612,12 +1633,12 @@ And here's a reimplementation of the Per
 X<grep>
 
     sub mygrep (&@) {
-	my $code = shift;
-	my @result;
-	foreach $_ (@_) {
-	    push(@result, $_) if &$code;
-	}
-	@result;
+        my $code = shift;
+        my @result;
+        foreach $_ (@_) {
+            push(@result, $_) if &$code;
+        }
+        @result;
     }
 
 Some folks would prefer full alphanumeric prototypes.  Alphanumerics have
@@ -1642,8 +1663,8 @@ silent impositions of differing list ver
 if you decide that a function should take just one parameter, like this:
 
     sub func ($) {
-	my $n = shift;
-	print "you gave me $n\n";
+        my $n = shift;
+        print "you gave me $n\n";
     }
 
 and someone has been calling it with an array or expression
@@ -1664,10 +1685,10 @@ until after the BLOCK is completely defi
 function with a prototype has to be predeclared for the prototype to take
 effect, like so:
 
-	sub foo($$);
-	sub foo($$) {
-		foo 1, 2;
-	}
+    sub foo($$);
+    sub foo($$) {
+        foo 1, 2;
+    }
 
 This is all very powerful, of course, and should be used only in moderation
 to make the world a better place.
@@ -1684,17 +1705,17 @@ L<constant> for an easy way to declare m
 
 The following functions would all be inlined:
 
-    sub pi ()		{ 3.14159 }		# Not exact, but close.
-    sub PI ()		{ 4 * atan2 1, 1 }	# As good as it gets,
-						# and it's inlined, too!
-    sub ST_DEV ()	{ 0 }
-    sub ST_INO ()	{ 1 }
-
-    sub FLAG_FOO ()	{ 1 << 8 }
-    sub FLAG_BAR ()	{ 1 << 9 }
-    sub FLAG_MASK ()	{ FLAG_FOO | FLAG_BAR }
+    sub pi ()           { 3.14159 }             # Not exact, but close.
+    sub PI ()           { 4 * atan2 1, 1 }      # As good as it gets,
+                                                # and it's inlined, too!
+    sub ST_DEV ()       { 0 }
+    sub ST_INO ()       { 1 }
+
+    sub FLAG_FOO ()     { 1 << 8 }
+    sub FLAG_BAR ()     { 1 << 9 }
+    sub FLAG_MASK ()    { FLAG_FOO | FLAG_BAR }
 
-    sub OPT_BAZ ()	{ not (0x1B58 & FLAG_MASK) }
+    sub OPT_BAZ ()      { not (0x1B58 & FLAG_MASK) }
 
     sub N () { int(OPT_BAZ) / 3 }
 
@@ -1707,12 +1728,12 @@ inner scopes.)  You can countermand inli
 C<return>:
 
     sub baz_val () {
-	if (OPT_BAZ) {
-	    return 23;
-	}
-	else {
-	    return 42;
-	}
+        if (OPT_BAZ) {
+            return 23;
+        }
+        else {
+            return 42;
+        }
     }
     sub bonk_val () { return 12345 }
 
@@ -1795,19 +1816,19 @@ L<B::Deparse>.  Consider this example of
 C<1>, one with a C<()> prototype causing it to be inlined, and one
 without (with deparse output truncated for clarity):
 
- $ perl -MO=Deparse -le 'sub ONE { 1 } if (ONE) { print ONE if ONE }'
- sub ONE {
-     1;
- }
- if (ONE ) {
-     print ONE() if ONE ;
- }
-
- $ perl -MO=Deparse -le 'sub ONE () { 1 } if (ONE) { print ONE if ONE }'
- sub ONE () { 1 }
- do {
-     print 1
- };
+    $ perl -MO=Deparse -e 'sub ONE { 1 } if (ONE) { print ONE if ONE }'
+    sub ONE {
+        1;
+    }
+    if (ONE ) {
+        print ONE() if ONE ;
+    }
+
+    $ perl -MO=Deparse -e 'sub ONE () { 1 } if (ONE) { print ONE if ONE }'
+    sub ONE () { 1 }
+    do {
+        print 1
+    };
 
 If you redefine a subroutine that was eligible for inlining, you'll
 get a warning by default.  You can use this warning to tell whether or
@@ -1852,8 +1873,8 @@ built-in name with the special package q
 saying C<CORE::open()> always refers to the built-in C<open()>, even
 if the current package has imported some other subroutine called
 C<&open()> from elsewhere.  Even though it looks like a regular
-function call, it isn't: the CORE:: prefix in that case is part of Perl's
-syntax, and works for any keyword, regardless of what is in the CORE
+function call, it isn't: the C<CORE::> prefix in that case is part of Perl's
+syntax, and works for any keyword, regardless of what is in the C<CORE>
 package.  Taking a reference to it, that is, C<\&CORE::open>, only works
 for some keywords.  See L<CORE>.
 
@@ -1886,30 +1907,30 @@ that understands regular expressions.
     @EXPORT_OK = 'glob';
 
     sub import {
-	my $pkg = shift;
-	return unless @_;
-	my $sym = shift;
-	my $where = ($sym =~ s/^GLOBAL_// ? 'CORE::GLOBAL' : caller(0));
-	$pkg->export($where, $sym, @_);
+        my $pkg = shift;
+        return unless @_;
+        my $sym = shift;
+        my $where = ($sym =~ s/^GLOBAL_// ? 'CORE::GLOBAL' : caller(0));
+        $pkg->export($where, $sym, @_);
     }
 
     sub glob {
-	my $pat = shift;
-	my @got;
-	if (opendir my $d, '.') { 
-	    @got = grep /$pat/, readdir $d; 
-	    closedir $d;   
-	}
-	return @got;
+        my $pat = shift;
+        my @got;
+        if (opendir my $d, '.') {
+            @got = grep /$pat/, readdir $d;
+            closedir $d;
+        }
+        return @got;
     }
     1;
 
 And here's how it could be (ab)used:
 
-    #use REGlob 'GLOBAL_glob';	    # override glob() in ALL namespaces
+    #use REGlob 'GLOBAL_glob';      # override glob() in ALL namespaces
     package Foo;
-    use REGlob 'glob';		    # override glob() in Foo:: only
-    print for <^[a-z_]+\.pm\$>;	    # show all pragmatic modules
+    use REGlob 'glob';              # override glob() in Foo:: only
+    print for <^[a-z_]+\.pm\$>;     # show all pragmatic modules
 
 The initial comment shows a contrived, even dangerous example.
 By overriding C<glob> globally, you would be forcing the new (and
@@ -1919,9 +1940,9 @@ those namespaces.  Naturally, this shoul
 it must be done at all.
 
 The C<REGlob> example above does not implement all the support needed to
-cleanly override perl's C<glob> operator.  The built-in C<glob> has
+cleanly override Perl's C<glob> operator.  The built-in C<glob> has
 different behaviors depending on whether it appears in a scalar or list
-context, but our C<REGlob> doesn't.  Indeed, many perl built-in have such
+context, but our C<REGlob> doesn't.  Indeed, many Perl built-ins have such
 context sensitive behaviors, and these must be adequately supported by
 a properly written override.  For a fully functional example of overriding
 C<glob>, study the implementation of C<File::DosGlob> in the standard
@@ -2036,11 +2057,11 @@ Examples of valid syntax (even though th
 
 Examples of invalid syntax:
 
-    sub fnord : switch(10,foo(); # ()-string not balanced
-    sub snoid : Ugly('(');	  # ()-string not balanced
-    sub xyzzy : 5x5;		  # "5x5" not a valid identifier
-    sub plugh : Y2::north;	  # "Y2::north" not a simple identifier
-    sub snurt : foo + bar;	  # "+" not a colon or space
+    sub fnord : switch(10,foo();    # ()-string not balanced
+    sub snoid : Ugly('(');          # ()-string not balanced
+    sub xyzzy : 5x5;                # "5x5" not a valid identifier
+    sub plugh : Y2::north;          # "Y2::north" not a simple identifier
+    sub snurt : foo + bar;          # "+" not a colon or space
 
 The attribute list is passed as a list of constant strings to the code
 which associates them with the subroutine.  In particular, the second example
@@ -2055,8 +2076,11 @@ see L<attributes> and L<Attribute::Handl
 =head1 SEE ALSO
 
 See L<perlref/"Function Templates"> for more about references and closures.
-See L<perlxs> if you'd like to learn about calling C subroutines from Perl.  
-See L<perlembed> if you'd like to learn about calling Perl subroutines from C.  
+See L<perlxs> if you'd like to learn about calling C subroutines from Perl.
+See L<perlembed> if you'd like to learn about calling Perl subroutines from C.
 See L<perlmod> to learn about bundling up your functions in separate files.
 See L<perlmodlib> to learn what library modules come standard on your system.
 See L<perlootut> to learn how to make object method calls.
+
+=for vi
+# ex: set sts=0 sw=4 et:
Index: gnu/usr.bin/perl/pod/perlsyn.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlsyn.pod,v
diff -u -p -a -u -p -r1.20 perlsyn.pod
--- gnu/usr.bin/perl/pod/perlsyn.pod	15 Feb 2023 01:36:35 -0000	1.20
+++ gnu/usr.bin/perl/pod/perlsyn.pod	21 Feb 2024 15:47:03 -0000
@@ -1155,7 +1155,8 @@ shell:
 =head2 Experimental Details on given and when
 
 As previously mentioned, the "switch" feature is considered highly
-experimental; it is subject to change with little notice.  In particular,
+experimental (it is also scheduled to be removed in perl 5.42.0);
+it is subject to change with little notice.  In particular,
 C<when> has tricky behaviours that are expected to change to become less
 tricky in the future.  Do not rely upon its current (mis)implementation.
 Before Perl 5.18, C<given> also had tricky behaviours that you should still
Index: gnu/usr.bin/perl/pod/perlunicode.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlunicode.pod,v
diff -u -p -a -u -p -r1.7 perlunicode.pod
--- gnu/usr.bin/perl/pod/perlunicode.pod	15 Feb 2023 01:36:35 -0000	1.7
+++ gnu/usr.bin/perl/pod/perlunicode.pod	21 Feb 2024 15:47:03 -0000
@@ -183,7 +183,7 @@ a whole character instead of only a sing
 
 The C<tr///> operator translates whole characters.  (Note that the
 C<tr///CU> functionality has been removed.  For similar functionality to
-that, see C<pack('U0', ...)> and C<pack('C0', ...)>).
+that, see S<C<pack('U0', ...)>> and S<C<pack('C0', ...)>>).
 
 =item *
 
@@ -1177,13 +1177,15 @@ C<\p{}> or C<\P{}> construct.
     if ($txt =~ /\p{IsForeign}+/) { ... }
 
 
-Note that the effect is compile-time and immutable once defined.
-However, the subroutines are passed a single parameter, which is 0 if
+The subroutines are passed a single parameter, which is 0 if
 case-sensitive matching is in effect and non-zero if caseless matching
 is in effect.  The subroutine may return different values depending on
-the value of the flag, and one set of values will immutably be in effect
-for all case-sensitive matches, and the other set for all case-insensitive
-matches.
+the value of the flag.  But the subroutine is never called more than
+once for each flag value (zero vs non-zero).  The return value is saved
+and used instead of calling the sub ever again.  If the sub is defined
+at the time the pattern is compiled, it will be called then; if not, it
+will be called the first time its value (for that flag) is needed during
+execution.
 
 Note that if the regular expression is tainted, then Perl will die rather
 than calling the subroutine when the name of the subroutine is
@@ -1679,7 +1681,7 @@ If you're writing code, such as an edito
 to handle any Unicode text data, then you shouldn't be using these code
 points yourself, and instead allow them in the input.  If you need
 sentinels, they should instead be something that isn't legal Unicode.
-For UTF-8 data, you can use the bytes 0xC1 and 0xC2 as sentinels, as
+For UTF-8 data, you can use the bytes 0xC0 and 0xC1 as sentinels, as
 they never appear in well-formed UTF-8.  (There are equivalents for
 UTF-EBCDIC).  You can also store your Unicode code points in integer
 variables and use negative values as sentinels.
Index: gnu/usr.bin/perl/pod/perluniprops.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perluniprops.pod,v
diff -u -p -a -u -p -r1.9 perluniprops.pod
--- gnu/usr.bin/perl/pod/perluniprops.pod	15 Feb 2023 01:39:57 -0000	1.9
+++ gnu/usr.bin/perl/pod/perluniprops.pod	21 Feb 2024 15:47:03 -0000
@@ -2,7 +2,7 @@
 
 # !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
 # This file is machine-generated by lib/unicore/mktables from the Unicode
-# database, Version 14.0.0.  Any changes made here will be lost!
+# database, Version 15.0.0.  Any changes made here will be lost!
 
 
 To change this file, edit lib/unicore/mktables instead.
@@ -11,7 +11,7 @@ To change this file, edit lib/unicore/mk
 
 =head1 NAME
 
-perluniprops - Index of Unicode Version 14.0.0 character properties in Perl
+perluniprops - Index of Unicode Version 15.0.0 character properties in Perl
 
 =head1 DESCRIPTION
 
@@ -418,11 +418,17 @@ stable.
                              'Present_In' (838: U+061D, U+0870..088E,
                              U+0890..0891, U+0898..089F, U+08B5,
                              U+08C8..08D2 ...)
-   \p{Age: NA}             \p{Age=Unassigned} (829_768 plus all
+ T \p{Age: 15.0}           \p{Age=V15_0} (4489)
+   \p{Age: V15_0}          Code point's usage was introduced in
+                             version 15.0; See also Property
+                             'Present_In' (4489: U+0CF3, U+0ECE,
+                             U+10EFD..10EFF, U+1123F..11241,
+                             U+11B00..11B09, U+11F00..11F10 ...)
+   \p{Age: NA}             \p{Age=Unassigned} (825_279 plus all
                              above-Unicode code points)
    \p{Age: Unassigned}     Code point's usage has not been assigned
                              in any Unicode release thus far.
- (Short: \p{Age=NA}) (829_768 plus all above-Unicode code points:
+ (Short: \p{Age=NA}) (825_279 plus all above-Unicode code points:
                              U+0378..0379, U+0380..0383, U+038B,
                              U+038D, U+03A2, U+0530 ...)
    \p{Aghb}                \p{Caucasian_Albanian} (=
@@ -442,20 +448,20 @@ stable.
                              Unicode.  Same as qr/./s (1_114_112 plus
                              all above-Unicode code points:
                              U+0000..infinity)
-   \p{Alnum}               \p{XPosixAlnum} (134_056)
+   \p{Alnum}               \p{XPosixAlnum} (138_445)
    \p{Alpha}               \p{XPosixAlpha} (= \p{Alphabetic=Y})
-                             (133_396)
+                             (137_765)
    \p{Alpha: *}            \p{Alphabetic: *}
    \p{Alphabetic}          \p{XPosixAlpha} (= \p{Alphabetic=Y})
-                             (133_396)
-   \p{Alphabetic: N*}      (Short: \p{Alpha=N}, \P{Alpha}) (980_716
+                             (137_765)
+   \p{Alphabetic: N*}      (Short: \p{Alpha=N}, \P{Alpha}) (976_347
                              plus all above-Unicode code points:
                              [\x00-\x20!\"#\$\%&\'\(\)*+,\-.\/0-9:;<=
                              >?\@\[\\\]\^_`\{\|\}~\x7f-\xa9\xab-\xb4
                              \xb6-\xb9\xbb-\xbf\xd7\xf7],
                              U+02C2..02C5, U+02D2..02DF,
                              U+02E5..02EB, U+02ED, U+02EF..0344 ...)
-   \p{Alphabetic: Y*}      (Short: \p{Alpha=Y}, \p{Alpha}) (133_396:
+   \p{Alphabetic: Y*}      (Short: \p{Alpha=Y}, \p{Alpha}) (137_765:
                              [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6
                              \xf8-\xff], U+0100..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE ...)
@@ -480,17 +486,21 @@ stable.
    \p{Any}                 All Unicode code points (1_114_112:
                              U+0000..10FFFF)
    \p{Arab}                \p{Arabic} (= \p{Script_Extensions=
-                             Arabic}) (NOT \p{Block=Arabic}) (1411)
+                             Arabic}) (NOT \p{Block=Arabic}) (1414)
    \p{Arabic}              \p{Script_Extensions=Arabic} (Short:
-                             \p{Arab}; NOT \p{Block=Arabic}) (1411)
+                             \p{Arab}; NOT \p{Block=Arabic}) (1414)
  X \p{Arabic_Ext_A}        \p{Arabic_Extended_A} (= \p{Block=
                              Arabic_Extended_A}) (96)
  X \p{Arabic_Ext_B}        \p{Arabic_Extended_B} (= \p{Block=
                              Arabic_Extended_B}) (48)
+ X \p{Arabic_Ext_C}        \p{Arabic_Extended_C} (= \p{Block=
+                             Arabic_Extended_C}) (64)
  X \p{Arabic_Extended_A}   \p{Block=Arabic_Extended_A} (Short:
                              \p{InArabicExtA}) (96)
  X \p{Arabic_Extended_B}   \p{Block=Arabic_Extended_B} (Short:
                              \p{InArabicExtB}) (48)
+ X \p{Arabic_Extended_C}   \p{Block=Arabic_Extended_C} (Short:
+                             \p{InArabicExtC}) (64)
  X \p{Arabic_Math}         \p{Arabic_Mathematical_Alphabetic_Symbols}
                              (= \p{Block=
                              Arabic_Mathematical_Alphabetic_Symbols})
@@ -532,7 +542,7 @@ stable.
                              U+0100..infinity)
    \p{ASCII_Hex_Digit: Y*} (Short: \p{AHex=Y}, \p{AHex}) (22: [0-9A-
                              Fa-f])
-   \p{Assigned}            All assigned code points (284_278:
+   \p{Assigned}            All assigned code points (288_767:
                              U+0000..0377, U+037A..037F,
                              U+0384..038A, U+038C, U+038E..03A1,
                              U+03A3..052F ...)
@@ -575,9 +585,9 @@ stable.
    \p{Bidi_C}              \p{Bidi_Control} (= \p{Bidi_Control=Y})
                              (12)
    \p{Bidi_C: *}           \p{Bidi_Control: *}
-   \p{Bidi_Class: AL}      \p{Bidi_Class=Arabic_Letter} (1708)
+   \p{Bidi_Class: AL}      \p{Bidi_Class=Arabic_Letter} (1769)
    \p{Bidi_Class: AN}      \p{Bidi_Class=Arabic_Number} (63)
-   \p{Bidi_Class: Arabic_Letter} (Short: \p{Bc=AL}) (1708: U+0608,
+   \p{Bidi_Class: Arabic_Letter} (Short: \p{Bc=AL}) (1769: U+0608,
                              U+060B, U+060D, U+061B..064A,
                              U+066D..066F, U+0671..06D5 ...)
    \p{Bidi_Class: Arabic_Number} (Short: \p{Bc=AN}) (63:
@@ -611,9 +621,9 @@ stable.
    \p{Bidi_Class: First_Strong_Isolate} (Short: \p{Bc=FSI}) (1:
                              U+2068)
    \p{Bidi_Class: FSI}     \p{Bidi_Class=First_Strong_Isolate} (1)
-   \p{Bidi_Class: L}       \p{Bidi_Class=Left_To_Right} (1_096_333
+   \p{Bidi_Class: L}       \p{Bidi_Class=Left_To_Right} (1_096_272
                              plus all above-Unicode code points)
-   \p{Bidi_Class: Left_To_Right} (Short: \p{Bc=L}) (1_096_333 plus
+   \p{Bidi_Class: Left_To_Right} (Short: \p{Bc=L}) (1_096_272 plus
                              all above-Unicode code points: [A-Za-z
                              \xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-
                              \xff], U+0100..02B8, U+02BB..02C1,
@@ -627,13 +637,13 @@ stable.
    \p{Bidi_Class: LRE}     \p{Bidi_Class=Left_To_Right_Embedding} (1)
    \p{Bidi_Class: LRI}     \p{Bidi_Class=Left_To_Right_Isolate} (1)
    \p{Bidi_Class: LRO}     \p{Bidi_Class=Left_To_Right_Override} (1)
-   \p{Bidi_Class: Nonspacing_Mark} (Short: \p{Bc=NSM}) (1958:
+   \p{Bidi_Class: Nonspacing_Mark} (Short: \p{Bc=NSM}) (1993:
                              U+0300..036F, U+0483..0489,
                              U+0591..05BD, U+05BF, U+05C1..05C2,
                              U+05C4..05C5 ...)
-   \p{Bidi_Class: NSM}     \p{Bidi_Class=Nonspacing_Mark} (1958)
-   \p{Bidi_Class: ON}      \p{Bidi_Class=Other_Neutral} (6000)
-   \p{Bidi_Class: Other_Neutral} (Short: \p{Bc=ON}) (6000: [!\"&\'
+   \p{Bidi_Class: NSM}     \p{Bidi_Class=Nonspacing_Mark} (1993)
+   \p{Bidi_Class: ON}      \p{Bidi_Class=Other_Neutral} (6029)
+   \p{Bidi_Class: Other_Neutral} (Short: \p{Bc=ON}) (6029: [!\"&\'
                              \(\)*;<=>?\@\[\\\]\^_`\{\|\}~\xa1\xa6-
                              \xa9\xab-\xac\xae-\xaf\xb4\xb6-\xb8\xbb-
                              \xbf\xd7\xf7], U+02B9..02BA,
@@ -647,8 +657,8 @@ stable.
                              U+202C)
    \p{Bidi_Class: Pop_Directional_Isolate} (Short: \p{Bc=PDI}) (1:
                              U+2069)
-   \p{Bidi_Class: R}       \p{Bidi_Class=Right_To_Left} (3711)
-   \p{Bidi_Class: Right_To_Left} (Short: \p{Bc=R}) (3711: U+0590,
+   \p{Bidi_Class: R}       \p{Bidi_Class=Right_To_Left} (3647)
+   \p{Bidi_Class: Right_To_Left} (Short: \p{Bc=R}) (3647: U+0590,
                              U+05BE, U+05C0, U+05C3, U+05C6,
                              U+05C8..05FF ...)
    \p{Bidi_Class: Right_To_Left_Embedding} (Short: \p{Bc=RLE}) (1:
@@ -739,10 +749,13 @@ stable.
                              U+0600..06FF)
    \p{Block: Arabic_Ext_A} \p{Block=Arabic_Extended_A} (96)
    \p{Block: Arabic_Ext_B} \p{Block=Arabic_Extended_B} (48)
+   \p{Block: Arabic_Ext_C} \p{Block=Arabic_Extended_C} (64)
    \p{Block: Arabic_Extended_A} (Short: \p{Blk=ArabicExtA}) (96:
                              U+08A0..08FF)
    \p{Block: Arabic_Extended_B} (Short: \p{Blk=ArabicExtB}) (48:
                              U+0870..089F)
+   \p{Block: Arabic_Extended_C} (Short: \p{Blk=ArabicExtC}) (64:
+                             U+10EC0..10EFF)
    \p{Block: Arabic_Math}  \p{Block=
                              Arabic_Mathematical_Alphabetic_Symbols}
                              (256)
@@ -856,6 +869,9 @@ stable.
    \p{Block: CJK_Ext_G}    \p{Block=
                              CJK_Unified_Ideographs_Extension_G}
                              (4944)
+   \p{Block: CJK_Ext_H}    \p{Block=
+                             CJK_Unified_Ideographs_Extension_H}
+                             (4192)
    \p{Block: CJK_Radicals_Sup} \p{Block=CJK_Radicals_Supplement} (128)
    \p{Block: CJK_Radicals_Supplement} (Short: \p{Blk=CJKRadicalsSup})
                              (128: U+2E80..2EFF)
@@ -879,6 +895,8 @@ stable.
                              CJKExtF}) (7488: U+2CEB0..2EBEF)
    \p{Block: CJK_Unified_Ideographs_Extension_G} (Short: \p{Blk=
                              CJKExtG}) (4944: U+30000..3134F)
+   \p{Block: CJK_Unified_Ideographs_Extension_H} (Short: \p{Blk=
+                             CJKExtH}) (4192: U+31350..323AF)
    \p{Block: Combining_Diacritical_Marks} (Short: \p{Blk=
                              Diacriticals}) (112: U+0300..036F)
    \p{Block: Combining_Diacritical_Marks_Extended} (Short: \p{Blk=
@@ -919,12 +937,15 @@ stable.
    \p{Block: Cyrillic_Ext_A} \p{Block=Cyrillic_Extended_A} (32)
    \p{Block: Cyrillic_Ext_B} \p{Block=Cyrillic_Extended_B} (96)
    \p{Block: Cyrillic_Ext_C} \p{Block=Cyrillic_Extended_C} (16)
+   \p{Block: Cyrillic_Ext_D} \p{Block=Cyrillic_Extended_D} (96)
    \p{Block: Cyrillic_Extended_A} (Short: \p{Blk=CyrillicExtA}) (32:
                              U+2DE0..2DFF)
    \p{Block: Cyrillic_Extended_B} (Short: \p{Blk=CyrillicExtB}) (96:
                              U+A640..A69F)
    \p{Block: Cyrillic_Extended_C} (Short: \p{Blk=CyrillicExtC}) (16:
                              U+1C80..1C8F)
+   \p{Block: Cyrillic_Extended_D} (Short: \p{Blk=CyrillicExtD}) (96:
+                             U+1E030..1E08F)
    \p{Block: Cyrillic_Sup} \p{Block=Cyrillic_Supplement} (48)
    \p{Block: Cyrillic_Supplement} (Short: \p{Blk=CyrillicSup}) (48:
                              U+0500..052F)
@@ -934,8 +955,11 @@ stable.
    \p{Block: Devanagari}   (NOT \p{Devanagari} NOR \p{Is_Devanagari})
                              (128: U+0900..097F)
    \p{Block: Devanagari_Ext} \p{Block=Devanagari_Extended} (32)
+   \p{Block: Devanagari_Ext_A} \p{Block=Devanagari_Extended_A} (96)
    \p{Block: Devanagari_Extended} (Short: \p{Blk=DevanagariExt}) (32:
                              U+A8E0..A8FF)
+   \p{Block: Devanagari_Extended_A} (Short: \p{Blk=DevanagariExtA})
+                             (96: U+11B00..11B5F)
    \p{Block: Diacriticals} \p{Block=Combining_Diacritical_Marks} (112)
    \p{Block: Diacriticals_Ext} \p{Block=
                              Combining_Diacritical_Marks_Extended}
@@ -957,7 +981,7 @@ stable.
    \p{Block: Duployan}     (NOT \p{Duployan} NOR \p{Is_Duployan})
                              (160: U+1BC00..1BC9F)
    \p{Block: Early_Dynastic_Cuneiform} (208: U+12480..1254F)
-   \p{Block: Egyptian_Hieroglyph_Format_Controls} (16: U+13430..1343F)
+   \p{Block: Egyptian_Hieroglyph_Format_Controls} (48: U+13430..1345F)
    \p{Block: Egyptian_Hieroglyphs} (NOT \p{Egyptian_Hieroglyphs} NOR
                              \p{Is_Egyptian_Hieroglyphs}) (1072:
                              U+13000..1342F)
@@ -1101,6 +1125,7 @@ stable.
                              (96: U+A980..A9DF)
    \p{Block: Kaithi}       (NOT \p{Kaithi} NOR \p{Is_Kaithi}) (80:
                              U+11080..110CF)
+   \p{Block: Kaktovik_Numerals} (32: U+1D2C0..1D2DF)
    \p{Block: Kana_Ext_A}   \p{Block=Kana_Extended_A} (48)
    \p{Block: Kana_Ext_B}   \p{Block=Kana_Extended_B} (16)
    \p{Block: Kana_Extended_A} (Short: \p{Blk=KanaExtA}) (48:
@@ -1121,6 +1146,8 @@ stable.
    \p{Block: Katakana_Ext} \p{Block=Katakana_Phonetic_Extensions} (16)
    \p{Block: Katakana_Phonetic_Extensions} (Short: \p{Blk=
                              KatakanaExt}) (16: U+31F0..31FF)
+   \p{Block: Kawi}         (NOT \p{Kawi} NOR \p{Is_Kawi}) (96:
+                             U+11F00..11F5F)
    \p{Block: Kayah_Li}     (48: U+A900..A92F)
    \p{Block: Kharoshthi}   (NOT \p{Kharoshthi} NOR \p{Is_Kharoshthi})
                              (96: U+10A00..10A5F)
@@ -1277,9 +1304,11 @@ stable.
                              U+A9E0..A9FF)
    \p{Block: Nabataean}    (NOT \p{Nabataean} NOR \p{Is_Nabataean})
                              (48: U+10880..108AF)
+   \p{Block: Nag_Mundari}  (NOT \p{Nag_Mundari} NOR
+                             \p{Is_Nag_Mundari}) (48: U+1E4D0..1E4FF)
    \p{Block: Nandinagari}  (NOT \p{Nandinagari} NOR
                              \p{Is_Nandinagari}) (96: U+119A0..119FF)
-   \p{Block: NB}           \p{Block=No_Block} (825_600 plus all
+   \p{Block: NB}           \p{Block=No_Block} (820_944 plus all
                              above-Unicode code points)
    \p{Block: New_Tai_Lue}  (NOT \p{New_Tai_Lue} NOR
                              \p{Is_New_Tai_Lue}) (96: U+1980..19DF)
@@ -1287,7 +1316,7 @@ stable.
                              U+11400..1147F)
    \p{Block: NKo}          (NOT \p{Nko} NOR \p{Is_NKo}) (64:
                              U+07C0..07FF)
-   \p{Block: No_Block}     (Short: \p{Blk=NB}) (825_600 plus all
+   \p{Block: No_Block}     (Short: \p{Blk=NB}) (820_944 plus all
                              above-Unicode code points: U+2FE0..2FEF,
                              U+10200..1027F, U+103E0..103FF,
                              U+105C0..105FF, U+107C0..107FF,
@@ -1587,7 +1616,7 @@ stable.
  X \p{Byzantine_Musical_Symbols} \p{Block=Byzantine_Musical_Symbols}
                              (Short: \p{InByzantineMusic}) (256)
    \p{C} \pC               \p{Other} (= \p{General_Category=Other})
-                             (969_578 plus all above-Unicode code
+                             (965_096 plus all above-Unicode code
                              points)
    \p{Cakm}                \p{Chakma} (= \p{Script_Extensions=
                              Chakma}) (NOT \p{Block=Chakma}) (91)
@@ -1598,7 +1627,7 @@ stable.
                              Unified_Canadian_Aboriginal_Syllabics})
                              (640)
  T \p{Canonical_Combining_Class: 0} \p{Canonical_Combining_Class=
-                             Not_Reordered} (1_113_200 plus all
+                             Not_Reordered} (1_113_190 plus all
                              above-Unicode code points)
  T \p{Canonical_Combining_Class: 1} \p{Canonical_Combining_Class=
                              Overlay} (32)
@@ -1609,7 +1638,7 @@ stable.
  T \p{Canonical_Combining_Class: 8} \p{Canonical_Combining_Class=
                              Kana_Voicing} (2)
  T \p{Canonical_Combining_Class: 9} \p{Canonical_Combining_Class=
-                             Virama} (63)
+                             Virama} (65)
  T \p{Canonical_Combining_Class: 10} \p{Canonical_Combining_Class=
                              CCC10} (1)
    \p{Canonical_Combining_Class: CCC10} (Short: \p{Ccc=CCC10}) (1:
@@ -1768,7 +1797,7 @@ stable.
  T \p{Canonical_Combining_Class: 218} \p{Canonical_Combining_Class=
                              Below_Left} (2)
  T \p{Canonical_Combining_Class: 220} \p{Canonical_Combining_Class=
-                             Below} (177)
+                             Below} (181)
  T \p{Canonical_Combining_Class: 222} \p{Canonical_Combining_Class=
                              Below_Right} (4)
  T \p{Canonical_Combining_Class: 224} \p{Canonical_Combining_Class=
@@ -1778,9 +1807,9 @@ stable.
  T \p{Canonical_Combining_Class: 228} \p{Canonical_Combining_Class=
                              Above_Left} (5)
  T \p{Canonical_Combining_Class: 230} \p{Canonical_Combining_Class=
-                             Above} (508)
+                             Above} (510)
  T \p{Canonical_Combining_Class: 232} \p{Canonical_Combining_Class=
-                             Above_Right} (5)
+                             Above_Right} (7)
  T \p{Canonical_Combining_Class: 233} \p{Canonical_Combining_Class=
                              Double_Below} (4)
  T \p{Canonical_Combining_Class: 234} \p{Canonical_Combining_Class=
@@ -1788,18 +1817,19 @@ stable.
  T \p{Canonical_Combining_Class: 240} \p{Canonical_Combining_Class=
                              Iota_Subscript} (1)
    \p{Canonical_Combining_Class: A} \p{Canonical_Combining_Class=
-                             Above} (508)
-   \p{Canonical_Combining_Class: Above} (Short: \p{Ccc=A}) (508:
+                             Above} (510)
+   \p{Canonical_Combining_Class: Above} (Short: \p{Ccc=A}) (510:
                              U+0300..0314, U+033D..0344, U+0346,
                              U+034A..034C, U+0350..0352, U+0357 ...)
    \p{Canonical_Combining_Class: Above_Left} (Short: \p{Ccc=AL}) (5:
                              U+05AE, U+18A9, U+1DF7..1DF8, U+302B)
-   \p{Canonical_Combining_Class: Above_Right} (Short: \p{Ccc=AR}) (5:
-                             U+0315, U+031A, U+0358, U+1DF6, U+302C)
+   \p{Canonical_Combining_Class: Above_Right} (Short: \p{Ccc=AR}) (7:
+                             U+0315, U+031A, U+0358, U+1DF6, U+302C,
+                             U+1E4EC..1E4ED)
    \p{Canonical_Combining_Class: AL} \p{Canonical_Combining_Class=
                              Above_Left} (5)
    \p{Canonical_Combining_Class: AR} \p{Canonical_Combining_Class=
-                             Above_Right} (5)
+                             Above_Right} (7)
    \p{Canonical_Combining_Class: ATA} \p{Canonical_Combining_Class=
                              Attached_Above} (1)
    \p{Canonical_Combining_Class: ATAR} \p{Canonical_Combining_Class=
@@ -1818,8 +1848,8 @@ stable.
    \p{Canonical_Combining_Class: Attached_Below_Left} (Short: \p{Ccc=
                              ATBL}) (0)
    \p{Canonical_Combining_Class: B} \p{Canonical_Combining_Class=
-                             Below} (177)
-   \p{Canonical_Combining_Class: Below} (Short: \p{Ccc=B}) (177:
+                             Below} (181)
+   \p{Canonical_Combining_Class: Below} (Short: \p{Ccc=B}) (181:
                              U+0316..0319, U+031C..0320,
                              U+0323..0326, U+0329..0333,
                              U+0339..033C, U+0347..0349 ...)
@@ -1858,12 +1888,12 @@ stable.
    \p{Canonical_Combining_Class: NK} \p{Canonical_Combining_Class=
                              Nukta} (27)
    \p{Canonical_Combining_Class: Not_Reordered} (Short: \p{Ccc=NR})
-                             (1_113_200 plus all above-Unicode code
+                             (1_113_190 plus all above-Unicode code
                              points: U+0000..02FF, U+034F,
                              U+0370..0482, U+0488..0590, U+05BE,
                              U+05C0 ...)
    \p{Canonical_Combining_Class: NR} \p{Canonical_Combining_Class=
-                             Not_Reordered} (1_113_200 plus all
+                             Not_Reordered} (1_113_190 plus all
                              above-Unicode code points)
    \p{Canonical_Combining_Class: Nukta} (Short: \p{Ccc=NK}) (27:
                              U+093C, U+09BC, U+0A3C, U+0ABC, U+0B3C,
@@ -1878,11 +1908,11 @@ stable.
                              Right} (1)
    \p{Canonical_Combining_Class: Right} (Short: \p{Ccc=R}) (1:
                              U+1D16D)
-   \p{Canonical_Combining_Class: Virama} (Short: \p{Ccc=VR}) (63:
+   \p{Canonical_Combining_Class: Virama} (Short: \p{Ccc=VR}) (65:
                              U+094D, U+09CD, U+0A4D, U+0ACD, U+0B4D,
                              U+0BCD ...)
    \p{Canonical_Combining_Class: VR} \p{Canonical_Combining_Class=
-                             Virama} (63)
+                             Virama} (65)
    \p{Cans}                \p{Canadian_Aboriginal} (=
                              \p{Script_Extensions=
                              Canadian_Aboriginal}) (726)
@@ -1890,33 +1920,33 @@ stable.
                              Carian}) (NOT \p{Block=Carian}) (49)
    \p{Carian}              \p{Script_Extensions=Carian} (Short:
                              \p{Cari}; NOT \p{Block=Carian}) (49)
-   \p{Case_Ignorable}      \p{Case_Ignorable=Y} (Short: \p{CI}) (2602)
-   \p{Case_Ignorable: N*}  (Short: \p{CI=N}, \P{CI}) (1_111_510 plus
+   \p{Case_Ignorable}      \p{Case_Ignorable=Y} (Short: \p{CI}) (2707)
+   \p{Case_Ignorable: N*}  (Short: \p{CI=N}, \P{CI}) (1_111_405 plus
                              all above-Unicode code points: [\x00-
                              \x20!\"#\$\%&\(\)*+,\-\/0-9;<=>?\@A-Z
                              \[\\\]_a-z\{\|\}~\x7f-\xa7\xa9-\xac\xae
                              \xb0-\xb3\xb5-\xb6\xb9-\xff],
                              U+0100..02AF, U+0370..0373,
                              U+0376..0379, U+037B..0383, U+0386 ...)
-   \p{Case_Ignorable: Y*}  (Short: \p{CI=Y}, \p{CI}) (2602: [\'.:\^`
+   \p{Case_Ignorable: Y*}  (Short: \p{CI=Y}, \p{CI}) (2707: [\'.:\^`
                              \xa8\xad\xaf\xb4\xb7-\xb8],
                              U+02B0..036F, U+0374..0375, U+037A,
                              U+0384..0385, U+0387 ...)
-   \p{Cased}               \p{Cased=Y} (4453)
-   \p{Cased: N*}           (Single: \P{Cased}) (1_109_659 plus all
+   \p{Cased}               \p{Cased=Y} (4526)
+   \p{Cased: N*}           (Single: \P{Cased}) (1_109_586 plus all
                              above-Unicode code points: [\x00-\x20!
                              \"#\$\%&\'\(\)*+,\-.\/0-9:;<=>?\@\[\\\]
                              \^_`\{\|\}~\x7f-\xa9\xab-\xb4\xb6-\xb9
                              \xbb-\xbf\xd7\xf7], U+01BB,
                              U+01C0..01C3, U+0294, U+02B9..02BF,
                              U+02C2..02DF ...)
-   \p{Cased: Y*}           (Single: \p{Cased}) (4453: [A-Za-z\xaa
+   \p{Cased: Y*}           (Single: \p{Cased}) (4526: [A-Za-z\xaa
                              \xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..01BA, U+01BC..01BF,
                              U+01C4..0293, U+0295..02B8, U+02C0..02C1
                              ...)
    \p{Cased_Letter}        \p{General_Category=Cased_Letter} (Short:
-                             \p{LC}) (4089)
+                             \p{LC}) (4095)
    \p{Category: *}         \p{General_Category: *}
    \p{Caucasian_Albanian}  \p{Script_Extensions=Caucasian_Albanian}
                              (Short: \p{Aghb}; NOT \p{Block=
@@ -1928,7 +1958,7 @@ stable.
                              \p{Composition_Exclusion=Y}) (81)
    \p{CE: *}               \p{Composition_Exclusion: *}
    \p{Cf}                  \p{Format} (= \p{General_Category=Format})
-                             (163)
+                             (170)
    \p{Chakma}              \p{Script_Extensions=Chakma} (Short:
                              \p{Cakm}; NOT \p{Block=Chakma}) (91)
    \p{Cham}                \p{Script_Extensions=Cham} (NOT \p{Block=
@@ -1970,9 +2000,9 @@ stable.
                              [A-Z\xc0-\xd6\xd8-\xde], U+0100, U+0102,
                              U+0104, U+0106, U+0108 ...)
    \p{Changes_When_NFKC_Casefolded} \p{Changes_When_NFKC_Casefolded=
-                             Y} (Short: \p{CWKCF}) (10_429)
+                             Y} (Short: \p{CWKCF}) (10_491)
    \p{Changes_When_NFKC_Casefolded: N*} (Short: \p{CWKCF=N},
-                             \P{CWKCF}) (1_103_683 plus all above-
+                             \P{CWKCF}) (1_103_621 plus all above-
                              Unicode code points: [\x00-\x20!\"#\$
                              \%&\'\(\)*+,\-.\/0-9:;<=>?\@\[\\\]\^_`a-
                              z\{\|\}~\x7f-\x9f\xa1-\xa7\xa9\xab-\xac
@@ -1980,7 +2010,7 @@ stable.
                              \xff], U+0101, U+0103, U+0105, U+0107,
                              U+0109 ...)
    \p{Changes_When_NFKC_Casefolded: Y*} (Short: \p{CWKCF=Y},
-                             \p{CWKCF}) (10_429: [A-Z\xa0\xa8\xaa
+                             \p{CWKCF}) (10_491: [A-Z\xa0\xa8\xaa
                              \xad\xaf\xb2-\xb5\xb8-\xba\xbc-\xbe\xc0-
                              \xd6\xd8-\xdf], U+0100, U+0102, U+0104,
                              U+0106, U+0108 ...)
@@ -2021,7 +2051,7 @@ stable.
                              Chorasmian}) (NOT \p{Block=Chorasmian})
                              (28)
    \p{CI}                  \p{Case_Ignorable} (= \p{Case_Ignorable=
-                             Y}) (2602)
+                             Y}) (2707)
    \p{CI: *}               \p{Case_Ignorable: *}
  X \p{CJK}                 \p{CJK_Unified_Ideographs} (= \p{Block=
                              CJK_Unified_Ideographs}) (20_992)
@@ -2076,6 +2106,10 @@ stable.
                              \p{Block=
                              CJK_Unified_Ideographs_Extension_G})
                              (4944)
+ X \p{CJK_Ext_H}           \p{CJK_Unified_Ideographs_Extension_H} (=
+                             \p{Block=
+                             CJK_Unified_Ideographs_Extension_H})
+                             (4192)
  X \p{CJK_Radicals_Sup}    \p{CJK_Radicals_Supplement} (= \p{Block=
                              CJK_Radicals_Supplement}) (128)
  X \p{CJK_Radicals_Supplement} \p{Block=CJK_Radicals_Supplement}
@@ -2110,10 +2144,13 @@ stable.
  X \p{CJK_Unified_Ideographs_Extension_G} \p{Block=
                              CJK_Unified_Ideographs_Extension_G}
                              (Short: \p{InCJKExtG}) (4944)
+ X \p{CJK_Unified_Ideographs_Extension_H} \p{Block=
+                             CJK_Unified_Ideographs_Extension_H}
+                             (Short: \p{InCJKExtH}) (4192)
    \p{Close_Punctuation}   \p{General_Category=Close_Punctuation}
                              (Short: \p{Pe}) (77)
    \p{Cn}                  \p{Unassigned} (= \p{General_Category=
-                             Unassigned}) (829_834 plus all above-
+                             Unassigned}) (825_345 plus all above-
                              Unicode code points)
    \p{Cntrl}               \p{XPosixCntrl} (= \p{General_Category=
                              Control}) (65)
@@ -2136,14 +2173,14 @@ stable.
  X \p{Combining_Half_Marks} \p{Block=Combining_Half_Marks} (Short:
                              \p{InHalfMarks}) (16)
    \p{Combining_Mark}      \p{Mark} (= \p{General_Category=Mark})
-                             (2408)
+                             (2450)
  X \p{Combining_Marks_For_Symbols}
                              \p{Combining_Diacritical_Marks_For_-
                              Symbols} (= \p{Block=
                              Combining_Diacritical_Marks_For_-
                              Symbols}) (48)
    \p{Common}              \p{Script_Extensions=Common} (Short:
-                             \p{Zyyy}) (7824)
+                             \p{Zyyy}) (7873)
  X \p{Common_Indic_Number_Forms} \p{Block=Common_Indic_Number_Forms}
                              (Short: \p{InIndicNumberForms}) (16)
    \p{Comp_Ex}             \p{Full_Composition_Exclusion} (=
@@ -2202,7 +2239,7 @@ stable.
    \p{CWCM: *}             \p{Changes_When_Casemapped: *}
    \p{CWKCF}               \p{Changes_When_NFKC_Casefolded} (=
                              \p{Changes_When_NFKC_Casefolded=Y})
-                             (10_429)
+                             (10_491)
    \p{CWKCF: *}            \p{Changes_When_NFKC_Casefolded: *}
    \p{CWL}                 \p{Changes_When_Lowercased} (=
                              \p{Changes_When_Lowercased=Y}) (1433)
@@ -2220,19 +2257,23 @@ stable.
                              \p{Cpmn}; NOT \p{Block=Cypro_Minoan})
                              (101)
    \p{Cyrillic}            \p{Script_Extensions=Cyrillic} (Short:
-                             \p{Cyrl}; NOT \p{Block=Cyrillic}) (447)
+                             \p{Cyrl}; NOT \p{Block=Cyrillic}) (510)
  X \p{Cyrillic_Ext_A}      \p{Cyrillic_Extended_A} (= \p{Block=
                              Cyrillic_Extended_A}) (32)
  X \p{Cyrillic_Ext_B}      \p{Cyrillic_Extended_B} (= \p{Block=
                              Cyrillic_Extended_B}) (96)
  X \p{Cyrillic_Ext_C}      \p{Cyrillic_Extended_C} (= \p{Block=
                              Cyrillic_Extended_C}) (16)
+ X \p{Cyrillic_Ext_D}      \p{Cyrillic_Extended_D} (= \p{Block=
+                             Cyrillic_Extended_D}) (96)
  X \p{Cyrillic_Extended_A} \p{Block=Cyrillic_Extended_A} (Short:
                              \p{InCyrillicExtA}) (32)
  X \p{Cyrillic_Extended_B} \p{Block=Cyrillic_Extended_B} (Short:
                              \p{InCyrillicExtB}) (96)
  X \p{Cyrillic_Extended_C} \p{Block=Cyrillic_Extended_C} (Short:
                              \p{InCyrillicExtC}) (16)
+ X \p{Cyrillic_Extended_D} \p{Block=Cyrillic_Extended_D} (Short:
+                             \p{InCyrillicExtD}) (96)
  X \p{Cyrillic_Sup}        \p{Cyrillic_Supplement} (= \p{Block=
                              Cyrillic_Supplement}) (48)
  X \p{Cyrillic_Supplement} \p{Block=Cyrillic_Supplement} (Short:
@@ -2240,7 +2281,7 @@ stable.
  X \p{Cyrillic_Supplementary} \p{Cyrillic_Supplement} (= \p{Block=
                              Cyrillic_Supplement}) (48)
    \p{Cyrl}                \p{Cyrillic} (= \p{Script_Extensions=
-                             Cyrillic}) (NOT \p{Block=Cyrillic}) (447)
+                             Cyrillic}) (NOT \p{Block=Cyrillic}) (510)
    \p{Dash}                \p{Dash=Y} (30)
    \p{Dash: N*}            (Single: \P{Dash}) (1_114_082 plus all
                              above-Unicode code points: [\x00-\x20!
@@ -2254,7 +2295,7 @@ stable.
    \p{Dash_Punctuation}    \p{General_Category=Dash_Punctuation}
                              (Short: \p{Pd}) (26)
    \p{Decimal_Number}      \p{XPosixDigit} (= \p{General_Category=
-                             Decimal_Number}) (660)
+                             Decimal_Number}) (680)
    \p{Decomposition_Type: Can} \p{Decomposition_Type=Canonical}
                              (13_233)
    \p{Decomposition_Type: Canonical} (Short: \p{Dt=Can}) (13_233:
@@ -2304,14 +2345,14 @@ stable.
    \p{Decomposition_Type: Nobreak} (Short: \p{Dt=Nb}) (5: [\xa0],
                              U+0F0C, U+2007, U+2011, U+202F)
    \p{Decomposition_Type: Non_Canon} \p{Decomposition_Type=
-                             Non_Canonical} (Perl extension) (3734)
+                             Non_Canonical} (Perl extension) (3796)
    \p{Decomposition_Type: Non_Canonical} Union of all non-canonical
                              decompositions (Short: \p{Dt=NonCanon})
-                             (Perl extension) (3734: [\xa0\xa8\xaa
+                             (Perl extension) (3796: [\xa0\xa8\xaa
                              \xaf\xb2-\xb5\xb8-\xba\xbc-\xbe],
                              U+0132..0133, U+013F..0140, U+0149,
                              U+017F, U+01C4..01CC ...)
-   \p{Decomposition_Type: None} (Short: \p{Dt=None}) (1_097_145 plus
+   \p{Decomposition_Type: None} (Short: \p{Dt=None}) (1_097_083 plus
                              all above-Unicode code points: [\x00-
                              \x9f\xa1-\xa7\xa9\xab-\xae\xb0-\xb1\xb6-
                              \xb7\xbb\xbf\xc6\xd0\xd7-\xd8\xde-\xdf
@@ -2325,10 +2366,11 @@ stable.
    \p{Decomposition_Type: Square} (Short: \p{Dt=Sqr}) (286: U+3250,
                              U+32CC..32CF, U+32FF..3357,
                              U+3371..33DF, U+33FF, U+1F130..1F14F ...)
-   \p{Decomposition_Type: Sub} (Short: \p{Dt=Sub}) (38: U+1D62..1D6A,
-                             U+2080..208E, U+2090..209C, U+2C7C)
-   \p{Decomposition_Type: Sup} \p{Decomposition_Type=Super} (213)
-   \p{Decomposition_Type: Super} (Short: \p{Dt=Sup}) (213: [\xaa\xb2-
+   \p{Decomposition_Type: Sub} (Short: \p{Dt=Sub}) (64: U+1D62..1D6A,
+                             U+2080..208E, U+2090..209C, U+2C7C,
+                             U+1E051..1E06A)
+   \p{Decomposition_Type: Sup} \p{Decomposition_Type=Super} (249)
+   \p{Decomposition_Type: Super} (Short: \p{Dt=Sup}) (249: [\xaa\xb2-
                              \xb3\xb9-\xba], U+02B0..02B8,
                              U+02E0..02E4, U+10FC, U+1D2C..1D2E,
                              U+1D30..1D3A ...)
@@ -2365,28 +2407,32 @@ stable.
                              \p{Dsrt}) (80)
    \p{Deva}                \p{Devanagari} (= \p{Script_Extensions=
                              Devanagari}) (NOT \p{Block=Devanagari})
-                             (210)
+                             (220)
    \p{Devanagari}          \p{Script_Extensions=Devanagari} (Short:
-                             \p{Deva}; NOT \p{Block=Devanagari}) (210)
+                             \p{Deva}; NOT \p{Block=Devanagari}) (220)
  X \p{Devanagari_Ext}      \p{Devanagari_Extended} (= \p{Block=
                              Devanagari_Extended}) (32)
+ X \p{Devanagari_Ext_A}    \p{Devanagari_Extended_A} (= \p{Block=
+                             Devanagari_Extended_A}) (96)
  X \p{Devanagari_Extended} \p{Block=Devanagari_Extended} (Short:
                              \p{InDevanagariExt}) (32)
+ X \p{Devanagari_Extended_A} \p{Block=Devanagari_Extended_A} (Short:
+                             \p{InDevanagariExtA}) (96)
    \p{DI}                  \p{Default_Ignorable_Code_Point} (=
                              \p{Default_Ignorable_Code_Point=Y})
                              (4174)
    \p{DI: *}               \p{Default_Ignorable_Code_Point: *}
-   \p{Dia}                 \p{Diacritic} (= \p{Diacritic=Y}) (1064)
+   \p{Dia}                 \p{Diacritic} (= \p{Diacritic=Y}) (1144)
    \p{Dia: *}              \p{Diacritic: *}
-   \p{Diacritic}           \p{Diacritic=Y} (Short: \p{Dia}) (1064)
-   \p{Diacritic: N*}       (Short: \p{Dia=N}, \P{Dia}) (1_113_048
+   \p{Diacritic}           \p{Diacritic=Y} (Short: \p{Dia}) (1144)
+   \p{Diacritic: N*}       (Short: \p{Dia=N}, \P{Dia}) (1_112_968
                              plus all above-Unicode code points:
                              [\x00-\x20!\"#\$\%&\'\(\)*+,\-.\/0-9:;<=
                              >?\@A-Z\[\\\]_a-z\{\|\}~\x7f-\xa7\xa9-
                              \xae\xb0-\xb3\xb5-\xb6\xb9-\xff],
                              U+0100..02AF, U+034F, U+0358..035C,
                              U+0363..0373, U+0376..0379 ...)
-   \p{Diacritic: Y*}       (Short: \p{Dia=Y}, \p{Dia}) (1064: [\^`
+   \p{Diacritic: Y*}       (Short: \p{Dia=Y}, \p{Dia}) (1144: [\^`
                              \xa8\xaf\xb4\xb7-\xb8], U+02B0..034E,
                              U+0350..0357, U+035D..0362,
                              U+0374..0375, U+037A ...)
@@ -2410,7 +2456,7 @@ stable.
                              Dives_Akuru}) (NOT \p{Block=
                              Dives_Akuru}) (72)
    \p{Digit}               \p{XPosixDigit} (= \p{General_Category=
-                             Decimal_Number}) (660)
+                             Decimal_Number}) (680)
  X \p{Dingbats}            \p{Block=Dingbats} (192)
    \p{Dives_Akuru}         \p{Script_Extensions=Dives_Akuru} (Short:
                              \p{Diak}; NOT \p{Block=Dives_Akuru}) (72)
@@ -2447,26 +2493,26 @@ stable.
                              U+FF61..FFBE, U+FFC2..FFC7,
                              U+FFCA..FFCF, U+FFD2..FFD7, U+FFDA..FFDC
                              ...)
-   \p{East_Asian_Width: N} \p{East_Asian_Width=Neutral} (792_645 plus
+   \p{East_Asian_Width: N} \p{East_Asian_Width=Neutral} (792_623 plus
                              all above-Unicode code points)
    \p{East_Asian_Width: Na} \p{East_Asian_Width=Narrow} (111)
    \p{East_Asian_Width: Narrow} (Short: \p{Ea=Na}) (111: [\x20-\x7e
                              \xa2-\xa3\xa5-\xa6\xac\xaf],
                              U+27E6..27ED, U+2985..2986)
-   \p{East_Asian_Width: Neutral} (Short: \p{Ea=N}) (792_645 plus all
+   \p{East_Asian_Width: Neutral} (Short: \p{Ea=N}) (792_623 plus all
                              above-Unicode code points: [\x00-\x1f
                              \x7f-\xa0\xa9\xab\xb5\xbb\xc0-\xc5\xc7-
                              \xcf\xd1-\xd6\xd9-\xdd\xe2-\xe5\xe7\xeb
                              \xee-\xef\xf1\xf4-\xf6\xfb\xfd\xff],
                              U+00FF..0100, U+0102..0110, U+0112,
                              U+0114..011A, U+011C..0125 ...)
-   \p{East_Asian_Width: W} \p{East_Asian_Width=Wide} (182_390)
-   \p{East_Asian_Width: Wide} (Short: \p{Ea=W}) (182_390:
+   \p{East_Asian_Width: W} \p{East_Asian_Width=Wide} (182_412)
+   \p{East_Asian_Width: Wide} (Short: \p{Ea=W}) (182_412:
                              U+1100..115F, U+231A..231B,
                              U+2329..232A, U+23E9..23EC, U+23F0,
                              U+23F3 ...)
    \p{EBase}               \p{Emoji_Modifier_Base} (=
-                             \p{Emoji_Modifier_Base=Y}) (132)
+                             \p{Emoji_Modifier_Base=Y}) (134)
    \p{EBase: *}            \p{Emoji_Modifier_Base: *}
    \p{EComp}               \p{Emoji_Component} (= \p{Emoji_Component=
                              Y}) (146)
@@ -2474,13 +2520,13 @@ stable.
    \p{Egyp}                \p{Egyptian_Hieroglyphs} (=
                              \p{Script_Extensions=
                              Egyptian_Hieroglyphs}) (NOT \p{Block=
-                             Egyptian_Hieroglyphs}) (1080)
+                             Egyptian_Hieroglyphs}) (1110)
  X \p{Egyptian_Hieroglyph_Format_Controls} \p{Block=
-                             Egyptian_Hieroglyph_Format_Controls} (16)
+                             Egyptian_Hieroglyph_Format_Controls} (48)
    \p{Egyptian_Hieroglyphs} \p{Script_Extensions=
                              Egyptian_Hieroglyphs} (Short: \p{Egyp};
                              NOT \p{Block=Egyptian_Hieroglyphs})
-                             (1080)
+                             (1110)
    \p{Elba}                \p{Elbasan} (= \p{Script_Extensions=
                              Elbasan}) (NOT \p{Block=Elbasan}) (40)
    \p{Elbasan}             \p{Script_Extensions=Elbasan} (Short:
@@ -2492,15 +2538,15 @@ stable.
    \p{EMod}                \p{Emoji_Modifier} (= \p{Emoji_Modifier=
                              Y}) (5)
    \p{EMod: *}             \p{Emoji_Modifier: *}
-   \p{Emoji}               \p{Emoji=Y} (1404)
-   \p{Emoji: N*}           (Single: \P{Emoji}) (1_112_708 plus all
+   \p{Emoji}               \p{Emoji=Y} (1424)
+   \p{Emoji: N*}           (Single: \P{Emoji}) (1_112_688 plus all
                              above-Unicode code points: [\x00-\x20!
                              \"\$\%&\'\(\)+,\-.\/:;<=>?\@A-Z\[\\\]
                              \^_`a-z\{\|\}~\x7f-\xa8\xaa-\xad\xaf-
                              \xff], U+0100..203B, U+203D..2048,
                              U+204A..2121, U+2123..2138, U+213A..2193
                              ...)
-   \p{Emoji: Y*}           (Single: \p{Emoji}) (1404: [#*0-9\xa9
+   \p{Emoji: Y*}           (Single: \p{Emoji}) (1424: [#*0-9\xa9
                              \xae], U+203C, U+2049, U+2122, U+2139,
                              U+2194..2199 ...)
    \p{Emoji_Component}     \p{Emoji_Component=Y} (Short: \p{EComp})
@@ -2522,23 +2568,23 @@ stable.
    \p{Emoji_Modifier: Y*}  (Short: \p{EMod=Y}, \p{EMod}) (5:
                              U+1F3FB..1F3FF)
    \p{Emoji_Modifier_Base} \p{Emoji_Modifier_Base=Y} (Short:
-                             \p{EBase}) (132)
+                             \p{EBase}) (134)
    \p{Emoji_Modifier_Base: N*} (Short: \p{EBase=N}, \P{EBase})
-                             (1_113_980 plus all above-Unicode code
+                             (1_113_978 plus all above-Unicode code
                              points: U+0000..261C, U+261E..26F8,
                              U+26FA..2709, U+270E..1F384,
                              U+1F386..1F3C1, U+1F3C5..1F3C6 ...)
-   \p{Emoji_Modifier_Base: Y*} (Short: \p{EBase=Y}, \p{EBase}) (132:
+   \p{Emoji_Modifier_Base: Y*} (Short: \p{EBase=Y}, \p{EBase}) (134:
                              U+261D, U+26F9, U+270A..270D, U+1F385,
                              U+1F3C2..1F3C4, U+1F3C7 ...)
    \p{Emoji_Presentation}  \p{Emoji_Presentation=Y} (Short:
-                             \p{EPres}) (1185)
+                             \p{EPres}) (1205)
    \p{Emoji_Presentation: N*} (Short: \p{EPres=N}, \P{EPres})
-                             (1_112_927 plus all above-Unicode code
+                             (1_112_907 plus all above-Unicode code
                              points: U+0000..2319, U+231C..23E8,
                              U+23ED..23EF, U+23F1..23F2,
                              U+23F4..25FC, U+25FF..2613 ...)
-   \p{Emoji_Presentation: Y*} (Short: \p{EPres=Y}, \p{EPres}) (1185:
+   \p{Emoji_Presentation: Y*} (Short: \p{EPres=Y}, \p{EPres}) (1205:
                              U+231A..231B, U+23E9..23EC, U+23F0,
                              U+23F3, U+25FD..25FE, U+2614..2615 ...)
  X \p{Emoticons}           \p{Block=Emoticons} (80)
@@ -2567,7 +2613,7 @@ stable.
    \p{Enclosing_Mark}      \p{General_Category=Enclosing_Mark}
                              (Short: \p{Me}) (13)
    \p{EPres}               \p{Emoji_Presentation} (=
-                             \p{Emoji_Presentation=Y}) (1185)
+                             \p{Emoji_Presentation=Y}) (1205)
    \p{EPres: *}            \p{Emoji_Presentation: *}
    \p{Ethi}                \p{Ethiopic} (= \p{Script_Extensions=
                              Ethiopic}) (NOT \p{Block=Ethiopic}) (523)
@@ -2617,7 +2663,7 @@ stable.
    \p{Final_Punctuation}   \p{General_Category=Final_Punctuation}
                              (Short: \p{Pf}) (10)
    \p{Format}              \p{General_Category=Format} (Short:
-                             \p{Cf}) (163)
+                             \p{Cf}) (170)
    \p{Full_Composition_Exclusion} \p{Full_Composition_Exclusion=Y}
                              (Short: \p{CompEx}) (1120)
    \p{Full_Composition_Exclusion: N*} (Short: \p{CompEx=N},
@@ -2631,25 +2677,25 @@ stable.
                              U+0958..095F ...)
    \p{Gc: *}               \p{General_Category: *}
    \p{GCB: *}              \p{Grapheme_Cluster_Break: *}
-   \p{General_Category: C} \p{General_Category=Other} (969_578 plus
+   \p{General_Category: C} \p{General_Category=Other} (965_096 plus
                              all above-Unicode code points)
    \p{General_Category: Cased_Letter} [\p{Ll}\p{Lu}\p{Lt}] (Short:
-                             \p{Gc=LC}, \p{LC}) (4089: [A-Za-z\xb5
+                             \p{Gc=LC}, \p{LC}) (4095: [A-Za-z\xb5
                              \xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..01BA, U+01BC..01BF,
                              U+01C4..0293, U+0295..02AF, U+0370..0373
                              ...)
    \p{General_Category: Cc} \p{General_Category=Control} (65)
-   \p{General_Category: Cf} \p{General_Category=Format} (163)
+   \p{General_Category: Cf} \p{General_Category=Format} (170)
    \p{General_Category: Close_Punctuation} (Short: \p{Gc=Pe}, \p{Pe})
                              (77: [\)\]\}], U+0F3B, U+0F3D, U+169C,
                              U+2046, U+207E ...)
-   \p{General_Category: Cn} \p{General_Category=Unassigned} (829_834
+   \p{General_Category: Cn} \p{General_Category=Unassigned} (825_345
                              plus all above-Unicode code points)
    \p{General_Category: Cntrl} \p{General_Category=Control} (65)
    \p{General_Category: Co} \p{General_Category=Private_Use} (137_468)
    \p{General_Category: Combining_Mark} \p{General_Category=Mark}
-                             (2408)
+                             (2450)
    \p{General_Category: Connector_Punctuation} (Short: \p{Gc=Pc},
                              \p{Pc}) (10: [_], U+203F..2040, U+2054,
                              U+FE33..FE34, U+FE4D..FE4F, U+FF3F)
@@ -2663,30 +2709,30 @@ stable.
                              (26: [\-], U+058A, U+05BE, U+1400,
                              U+1806, U+2010..2015 ...)
    \p{General_Category: Decimal_Number} (Short: \p{Gc=Nd}, \p{Nd})
-                             (660: [0-9], U+0660..0669, U+06F0..06F9,
+                             (680: [0-9], U+0660..0669, U+06F0..06F9,
                              U+07C0..07C9, U+0966..096F, U+09E6..09EF
                              ...)
    \p{General_Category: Digit} \p{General_Category=Decimal_Number}
-                             (660)
+                             (680)
    \p{General_Category: Enclosing_Mark} (Short: \p{Gc=Me}, \p{Me})
                              (13: U+0488..0489, U+1ABE, U+20DD..20E0,
                              U+20E2..20E4, U+A670..A672)
    \p{General_Category: Final_Punctuation} (Short: \p{Gc=Pf}, \p{Pf})
                              (10: [\xbb], U+2019, U+201D, U+203A,
                              U+2E03, U+2E05 ...)
-   \p{General_Category: Format} (Short: \p{Gc=Cf}, \p{Cf}) (163:
+   \p{General_Category: Format} (Short: \p{Gc=Cf}, \p{Cf}) (170:
                              [\xad], U+0600..0605, U+061C, U+06DD,
                              U+070F, U+0890..0891 ...)
    \p{General_Category: Initial_Punctuation} (Short: \p{Gc=Pi},
                              \p{Pi}) (12: [\xab], U+2018,
                              U+201B..201C, U+201F, U+2039, U+2E02 ...)
-   \p{General_Category: L} \p{General_Category=Letter} (131_756)
- X \p{General_Category: L&} \p{General_Category=Cased_Letter} (4089)
+   \p{General_Category: L} \p{General_Category=Letter} (136_104)
+ X \p{General_Category: L&} \p{General_Category=Cased_Letter} (4095)
  X \p{General_Category: L_} \p{General_Category=Cased_Letter} Note
                              the trailing '_' matters in spite of
-                             loose matching rules. (4089)
-   \p{General_Category: LC} \p{General_Category=Cased_Letter} (4089)
-   \p{General_Category: Letter} (Short: \p{Gc=L}, \p{L}) (131_756:
+                             loose matching rules. (4095)
+   \p{General_Category: LC} \p{General_Category=Cased_Letter} (4095)
+   \p{General_Category: Letter} (Short: \p{Gc=L}, \p{L}) (136_104:
                              [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6
                              \xf8-\xff], U+0100..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE ...)
@@ -2698,13 +2744,13 @@ stable.
                              (1: U+2028)
    \p{General_Category: Ll} \p{General_Category=Lowercase_Letter}
                              (/i= General_Category=Cased_Letter)
-                             (2227)
-   \p{General_Category: Lm} \p{General_Category=Modifier_Letter} (334)
+                             (2233)
+   \p{General_Category: Lm} \p{General_Category=Modifier_Letter} (397)
    \p{General_Category: Lo} \p{General_Category=Other_Letter}
-                             (127_333)
+                             (131_612)
    \p{General_Category: Lowercase_Letter} (Short: \p{Gc=Ll}, \p{Ll};
                              /i= General_Category=Cased_Letter)
-                             (2227: [a-z\xb5\xdf-\xf6\xf8-\xff],
+                             (2233: [a-z\xb5\xdf-\xf6\xf8-\xff],
                              U+0101, U+0103, U+0105, U+0107, U+0109
                              ...)
    \p{General_Category: Lt} \p{General_Category=Titlecase_Letter}
@@ -2712,8 +2758,8 @@ stable.
    \p{General_Category: Lu} \p{General_Category=Uppercase_Letter}
                              (/i= General_Category=Cased_Letter)
                              (1831)
-   \p{General_Category: M} \p{General_Category=Mark} (2408)
-   \p{General_Category: Mark} (Short: \p{Gc=M}, \p{M}) (2408:
+   \p{General_Category: M} \p{General_Category=Mark} (2450)
+   \p{General_Category: Mark} (Short: \p{Gc=M}, \p{M}) (2450:
                              U+0300..036F, U+0483..0489,
                              U+0591..05BD, U+05BF, U+05C1..05C2,
                              U+05C4..05C5 ...)
@@ -2721,54 +2767,54 @@ stable.
                              [+<=>\|~\xac\xb1\xd7\xf7], U+03F6,
                              U+0606..0608, U+2044, U+2052,
                              U+207A..207C ...)
-   \p{General_Category: Mc} \p{General_Category=Spacing_Mark} (445)
+   \p{General_Category: Mc} \p{General_Category=Spacing_Mark} (452)
    \p{General_Category: Me} \p{General_Category=Enclosing_Mark} (13)
    \p{General_Category: Mn} \p{General_Category=Nonspacing_Mark}
-                             (1950)
+                             (1985)
    \p{General_Category: Modifier_Letter} (Short: \p{Gc=Lm}, \p{Lm})
-                             (334: U+02B0..02C1, U+02C6..02D1,
+                             (397: U+02B0..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE, U+0374 ...)
    \p{General_Category: Modifier_Symbol} (Short: \p{Gc=Sk}, \p{Sk})
                              (125: [\^`\xa8\xaf\xb4\xb8],
                              U+02C2..02C5, U+02D2..02DF,
                              U+02E5..02EB, U+02ED, U+02EF..02FF ...)
-   \p{General_Category: N} \p{General_Category=Number} (1791)
-   \p{General_Category: Nd} \p{General_Category=Decimal_Number} (660)
+   \p{General_Category: N} \p{General_Category=Number} (1831)
+   \p{General_Category: Nd} \p{General_Category=Decimal_Number} (680)
    \p{General_Category: Nl} \p{General_Category=Letter_Number} (236)
-   \p{General_Category: No} \p{General_Category=Other_Number} (895)
+   \p{General_Category: No} \p{General_Category=Other_Number} (915)
    \p{General_Category: Nonspacing_Mark} (Short: \p{Gc=Mn}, \p{Mn})
-                             (1950: U+0300..036F, U+0483..0487,
+                             (1985: U+0300..036F, U+0483..0487,
                              U+0591..05BD, U+05BF, U+05C1..05C2,
                              U+05C4..05C5 ...)
-   \p{General_Category: Number} (Short: \p{Gc=N}, \p{N}) (1791: [0-9
+   \p{General_Category: Number} (Short: \p{Gc=N}, \p{N}) (1831: [0-9
                              \xb2-\xb3\xb9\xbc-\xbe], U+0660..0669,
                              U+06F0..06F9, U+07C0..07C9,
                              U+0966..096F, U+09E6..09EF ...)
    \p{General_Category: Open_Punctuation} (Short: \p{Gc=Ps}, \p{Ps})
                              (79: [\(\[\{], U+0F3A, U+0F3C, U+169B,
                              U+201A, U+201E ...)
-   \p{General_Category: Other} (Short: \p{Gc=C}, \p{C}) (969_578 plus
+   \p{General_Category: Other} (Short: \p{Gc=C}, \p{C}) (965_096 plus
                              all above-Unicode code points: [\x00-
                              \x1f\x7f-\x9f\xad], U+0378..0379,
                              U+0380..0383, U+038B, U+038D, U+03A2 ...)
    \p{General_Category: Other_Letter} (Short: \p{Gc=Lo}, \p{Lo})
-                             (127_333: [\xaa\xba], U+01BB,
+                             (131_612: [\xaa\xba], U+01BB,
                              U+01C0..01C3, U+0294, U+05D0..05EA,
                              U+05EF..05F2 ...)
    \p{General_Category: Other_Number} (Short: \p{Gc=No}, \p{No})
-                             (895: [\xb2-\xb3\xb9\xbc-\xbe],
+                             (915: [\xb2-\xb3\xb9\xbc-\xbe],
                              U+09F4..09F9, U+0B72..0B77,
                              U+0BF0..0BF2, U+0C78..0C7E, U+0D58..0D5E
                              ...)
    \p{General_Category: Other_Punctuation} (Short: \p{Gc=Po}, \p{Po})
-                             (605: [!\"#\%&\'*,.\/:;?\@\\\xa1\xa7
+                             (628: [!\"#\%&\'*,.\/:;?\@\\\xa1\xa7
                              \xb6-\xb7\xbf], U+037E, U+0387,
                              U+055A..055F, U+0589, U+05C0 ...)
    \p{General_Category: Other_Symbol} (Short: \p{Gc=So}, \p{So})
-                             (6605: [\xa6\xa9\xae\xb0], U+0482,
+                             (6634: [\xa6\xa9\xae\xb0], U+0482,
                              U+058D..058E, U+060E..060F, U+06DE,
                              U+06E9 ...)
-   \p{General_Category: P} \p{General_Category=Punctuation} (819)
+   \p{General_Category: P} \p{General_Category=Punctuation} (842)
    \p{General_Category: Paragraph_Separator} (Short: \p{Gc=Zp},
                              \p{Zp}) (1: U+2029)
    \p{General_Category: Pc} \p{General_Category=
@@ -2781,35 +2827,35 @@ stable.
    \p{General_Category: Pi} \p{General_Category=Initial_Punctuation}
                              (12)
    \p{General_Category: Po} \p{General_Category=Other_Punctuation}
-                             (605)
+                             (628)
    \p{General_Category: Private_Use} (Short: \p{Gc=Co}, \p{Co})
                              (137_468: U+E000..F8FF, U+F0000..FFFFD,
                              U+100000..10FFFD)
    \p{General_Category: Ps} \p{General_Category=Open_Punctuation} (79)
-   \p{General_Category: Punct} \p{General_Category=Punctuation} (819)
-   \p{General_Category: Punctuation} (Short: \p{Gc=P}, \p{P}) (819:
+   \p{General_Category: Punct} \p{General_Category=Punctuation} (842)
+   \p{General_Category: Punctuation} (Short: \p{Gc=P}, \p{P}) (842:
                              [!\"#\%&\'\(\)*,\-.\/:;?\@\[\\\]_\{\}
                              \xa1\xa7\xab\xb6-\xb7\xbb\xbf], U+037E,
                              U+0387, U+055A..055F, U+0589..058A,
                              U+05BE ...)
-   \p{General_Category: S} \p{General_Category=Symbol} (7741)
+   \p{General_Category: S} \p{General_Category=Symbol} (7770)
    \p{General_Category: Sc} \p{General_Category=Currency_Symbol} (63)
    \p{General_Category: Separator} (Short: \p{Gc=Z}, \p{Z}) (19:
                              [\x20\xa0], U+1680, U+2000..200A,
                              U+2028..2029, U+202F, U+205F ...)
    \p{General_Category: Sk} \p{General_Category=Modifier_Symbol} (125)
    \p{General_Category: Sm} \p{General_Category=Math_Symbol} (948)
-   \p{General_Category: So} \p{General_Category=Other_Symbol} (6605)
+   \p{General_Category: So} \p{General_Category=Other_Symbol} (6634)
    \p{General_Category: Space_Separator} (Short: \p{Gc=Zs}, \p{Zs})
                              (17: [\x20\xa0], U+1680, U+2000..200A,
                              U+202F, U+205F, U+3000)
    \p{General_Category: Spacing_Mark} (Short: \p{Gc=Mc}, \p{Mc})
-                             (445: U+0903, U+093B, U+093E..0940,
+                             (452: U+0903, U+093B, U+093E..0940,
                              U+0949..094C, U+094E..094F, U+0982..0983
                              ...)
    \p{General_Category: Surrogate} (Short: \p{Gc=Cs}, \p{Cs}) (2048:
                              U+D800..DFFF)
-   \p{General_Category: Symbol} (Short: \p{Gc=S}, \p{S}) (7741:
+   \p{General_Category: Symbol} (Short: \p{Gc=S}, \p{S}) (7770:
                              [\$+<=>\^`\|~\xa2-\xa6\xa8-\xa9\xac\xae-
                              \xb1\xb4\xb8\xd7\xf7], U+02C2..02C5,
                              U+02D2..02DF, U+02E5..02EB, U+02ED,
@@ -2819,7 +2865,7 @@ stable.
                              U+01C5, U+01C8, U+01CB, U+01F2,
                              U+1F88..1F8F, U+1F98..1F9F ...)
    \p{General_Category: Unassigned} (Short: \p{Gc=Cn}, \p{Cn})
-                             (829_834 plus all above-Unicode code
+                             (825_345 plus all above-Unicode code
                              points: U+0378..0379, U+0380..0383,
                              U+038B, U+038D, U+03A2, U+0530 ...)
    \p{General_Category: Uppercase_Letter} (Short: \p{Gc=Lu}, \p{Lu};
@@ -2871,30 +2917,30 @@ stable.
    \p{Gothic}              \p{Script_Extensions=Gothic} (Short:
                              \p{Goth}; NOT \p{Block=Gothic}) (27)
    \p{Gr_Base}             \p{Grapheme_Base} (= \p{Grapheme_Base=Y})
-                             (142_539)
+                             (146_986)
    \p{Gr_Base: *}          \p{Grapheme_Base: *}
    \p{Gr_Ext}              \p{Grapheme_Extend} (= \p{Grapheme_Extend=
-                             Y}) (2090)
+                             Y}) (2125)
    \p{Gr_Ext: *}           \p{Grapheme_Extend: *}
    \p{Gran}                \p{Grantha} (= \p{Script_Extensions=
                              Grantha}) (NOT \p{Block=Grantha}) (116)
    \p{Grantha}             \p{Script_Extensions=Grantha} (Short:
                              \p{Gran}; NOT \p{Block=Grantha}) (116)
-   \p{Graph}               \p{XPosixGraph} (282_146)
+   \p{Graph}               \p{XPosixGraph} (286_635)
    \p{Grapheme_Base}       \p{Grapheme_Base=Y} (Short: \p{GrBase})
-                             (142_539)
-   \p{Grapheme_Base: N*}   (Short: \p{GrBase=N}, \P{GrBase}) (971_573
+                             (146_986)
+   \p{Grapheme_Base: N*}   (Short: \p{GrBase=N}, \P{GrBase}) (967_126
                              plus all above-Unicode code points:
                              [\x00-\x1f\x7f-\x9f\xad], U+0300..036F,
                              U+0378..0379, U+0380..0383, U+038B,
                              U+038D ...)
    \p{Grapheme_Base: Y*}   (Short: \p{GrBase=Y}, \p{GrBase})
-                             (142_539: [\x20-\x7e\xa0-\xac\xae-\xff],
+                             (146_986: [\x20-\x7e\xa0-\xac\xae-\xff],
                              U+0100..02FF, U+0370..0377,
                              U+037A..037F, U+0384..038A, U+038C ...)
    \p{Grapheme_Cluster_Break: CN} \p{Grapheme_Cluster_Break=Control}
-                             (3886)
-   \p{Grapheme_Cluster_Break: Control} (Short: \p{GCB=CN}) (3886: [^
+                             (3893)
+   \p{Grapheme_Cluster_Break: Control} (Short: \p{GCB=CN}) (3893: [^
                              \n\r\x20-\x7e\xa0-\xac\xae-\xff],
                              U+061C, U+180E, U+200B, U+200E..200F,
                              U+2028..202E ...)
@@ -2909,8 +2955,8 @@ stable.
    \p{Grapheme_Cluster_Break: EM} \p{Grapheme_Cluster_Break=
                              E_Modifier} (0)
    \p{Grapheme_Cluster_Break: EX} \p{Grapheme_Cluster_Break=Extend}
-                             (2095)
-   \p{Grapheme_Cluster_Break: Extend} (Short: \p{GCB=EX}) (2095:
+                             (2130)
+   \p{Grapheme_Cluster_Break: Extend} (Short: \p{GCB=EX}) (2130:
                              U+0300..036F, U+0483..0489,
                              U+0591..05BD, U+05BF, U+05C1..05C2,
                              U+05C4..05C5 ...)
@@ -2927,14 +2973,14 @@ stable.
                              U+AC01..AC1B, U+AC1D..AC37,
                              U+AC39..AC53, U+AC55..AC6F,
                              U+AC71..AC8B, U+AC8D..ACA7 ...)
-   \p{Grapheme_Cluster_Break: Other} (Short: \p{GCB=XX}) (1_096_159
+   \p{Grapheme_Cluster_Break: Other} (Short: \p{GCB=XX}) (1_096_109
                              plus all above-Unicode code points:
                              [\x20-\x7e\xa0-\xac\xae-\xff],
                              U+0100..02FF, U+0370..0482,
                              U+048A..0590, U+05BE, U+05C0 ...)
    \p{Grapheme_Cluster_Break: PP} \p{Grapheme_Cluster_Break=Prepend}
-                             (26)
-   \p{Grapheme_Cluster_Break: Prepend} (Short: \p{GCB=PP}) (26:
+                             (27)
+   \p{Grapheme_Cluster_Break: Prepend} (Short: \p{GCB=PP}) (27:
                              U+0600..0605, U+06DD, U+070F,
                              U+0890..0891, U+08E2, U+0D4E ...)
    \p{Grapheme_Cluster_Break: Regional_Indicator} (Short: \p{GCB=RI})
@@ -2942,8 +2988,8 @@ stable.
    \p{Grapheme_Cluster_Break: RI} \p{Grapheme_Cluster_Break=
                              Regional_Indicator} (26)
    \p{Grapheme_Cluster_Break: SM} \p{Grapheme_Cluster_Break=
-                             SpacingMark} (388)
-   \p{Grapheme_Cluster_Break: SpacingMark} (Short: \p{GCB=SM}) (388:
+                             SpacingMark} (395)
+   \p{Grapheme_Cluster_Break: SpacingMark} (Short: \p{GCB=SM}) (395:
                              U+0903, U+093B, U+093E..0940,
                              U+0949..094C, U+094E..094F, U+0982..0983
                              ...)
@@ -2952,16 +2998,16 @@ stable.
    \p{Grapheme_Cluster_Break: V} (Short: \p{GCB=V}) (95:
                              U+1160..11A7, U+D7B0..D7C6)
    \p{Grapheme_Cluster_Break: XX} \p{Grapheme_Cluster_Break=Other}
-                             (1_096_159 plus all above-Unicode code
+                             (1_096_109 plus all above-Unicode code
                              points)
    \p{Grapheme_Cluster_Break: ZWJ} (Short: \p{GCB=ZWJ}) (1: U+200D)
    \p{Grapheme_Extend}     \p{Grapheme_Extend=Y} (Short: \p{GrExt})
-                             (2090)
-   \p{Grapheme_Extend: N*} (Short: \p{GrExt=N}, \P{GrExt}) (1_112_022
+                             (2125)
+   \p{Grapheme_Extend: N*} (Short: \p{GrExt=N}, \P{GrExt}) (1_111_987
                              plus all above-Unicode code points:
                              U+0000..02FF, U+0370..0482,
                              U+048A..0590, U+05BE, U+05C0, U+05C3 ...)
-   \p{Grapheme_Extend: Y*} (Short: \p{GrExt=Y}, \p{GrExt}) (2090:
+   \p{Grapheme_Extend: Y*} (Short: \p{GrExt=Y}, \p{GrExt}) (2125:
                              U+0300..036F, U+0483..0489,
                              U+0591..05BD, U+05BF, U+05C1..05C2,
                              U+05C4..05C5 ...)
@@ -2994,7 +3040,7 @@ stable.
  X \p{Halfwidth_And_Fullwidth_Forms} \p{Block=
                              Halfwidth_And_Fullwidth_Forms} (Short:
                              \p{InHalfAndFullForms}) (240)
-   \p{Han}                 \p{Script_Extensions=Han} (94_503)
+   \p{Han}                 \p{Script_Extensions=Han} (98_696)
    \p{Hang}                \p{Hangul} (= \p{Script_Extensions=
                              Hangul}) (NOT \p{Hangul_Syllables})
                              (11_775)
@@ -3043,7 +3089,7 @@ stable.
  X \p{Hangul_Syllables}    \p{Block=Hangul_Syllables} (Short:
                              \p{InHangul}) (11_184)
    \p{Hani}                \p{Han} (= \p{Script_Extensions=Han})
-                             (94_503)
+                             (98_696)
    \p{Hanifi_Rohingya}     \p{Script_Extensions=Hanifi_Rohingya}
                              (Short: \p{Rohg}; NOT \p{Block=
                              Hanifi_Rohingya}) (55)
@@ -3079,9 +3125,9 @@ stable.
                              (128)
  X \p{High_Surrogates}     \p{Block=High_Surrogates} (896)
    \p{Hira}                \p{Hiragana} (= \p{Script_Extensions=
-                             Hiragana}) (NOT \p{Block=Hiragana}) (432)
+                             Hiragana}) (NOT \p{Block=Hiragana}) (433)
    \p{Hiragana}            \p{Script_Extensions=Hiragana} (Short:
-                             \p{Hira}; NOT \p{Block=Hiragana}) (432)
+                             \p{Hira}; NOT \p{Block=Hiragana}) (433)
    \p{Hluw}                \p{Anatolian_Hieroglyphs} (=
                              \p{Script_Extensions=
                              Anatolian_Hieroglyphs}) (NOT \p{Block=
@@ -3115,69 +3161,69 @@ stable.
                              U+30FB ...)
    \p{ID_Continue}         \p{ID_Continue=Y} (Short: \p{IDC}; NOT
                              \p{Ideographic_Description_Characters})
-                             (135_072)
-   \p{ID_Continue: N*}     (Short: \p{IDC=N}, \P{IDC}) (979_040 plus
+                             (139_482)
+   \p{ID_Continue: N*}     (Short: \p{IDC=N}, \P{IDC}) (974_630 plus
                              all above-Unicode code points: [\x00-
                              \x20!\"#\$\%&\'\(\)*+,\-.\/:;<=>?\@
                              \[\\\]\^`\{\|\}~\x7f-\xa9\xab-\xb4\xb6
                              \xb8-\xb9\xbb-\xbf\xd7\xf7],
                              U+02C2..02C5, U+02D2..02DF,
                              U+02E5..02EB, U+02ED, U+02EF..02FF ...)
-   \p{ID_Continue: Y*}     (Short: \p{IDC=Y}, \p{IDC}) (135_072:
+   \p{ID_Continue: Y*}     (Short: \p{IDC=Y}, \p{IDC}) (139_482:
                              [0-9A-Z_a-z\xaa\xb5\xb7\xba\xc0-\xd6
                              \xd8-\xf6\xf8-\xff], U+0100..02C1,
                              U+02C6..02D1, U+02E0..02E4, U+02EC,
                              U+02EE ...)
-   \p{ID_Start}            \p{ID_Start=Y} (Short: \p{IDS}) (131_997)
-   \p{ID_Start: N*}        (Short: \p{IDS=N}, \P{IDS}) (982_115 plus
+   \p{ID_Start}            \p{ID_Start=Y} (Short: \p{IDS}) (136_345)
+   \p{ID_Start: N*}        (Short: \p{IDS=N}, \P{IDS}) (977_767 plus
                              all above-Unicode code points: [\x00-
                              \x20!\"#\$\%&\'\(\)*+,\-.\/0-9:;<=>?\@
                              \[\\\]\^_`\{\|\}~\x7f-\xa9\xab-\xb4\xb6-
                              \xb9\xbb-\xbf\xd7\xf7], U+02C2..02C5,
                              U+02D2..02DF, U+02E5..02EB, U+02ED,
                              U+02EF..036F ...)
-   \p{ID_Start: Y*}        (Short: \p{IDS=Y}, \p{IDS}) (131_997: [A-
+   \p{ID_Start: Y*}        (Short: \p{IDS=Y}, \p{IDS}) (136_345: [A-
                              Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-
                              \xff], U+0100..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE ...)
    \p{IDC}                 \p{ID_Continue} (= \p{ID_Continue=Y}) (NOT
                              \p{Ideographic_Description_Characters})
-                             (135_072)
+                             (139_482)
    \p{IDC: *}              \p{ID_Continue: *}
-   \p{Identifier_Status: Allowed} (107_957: [\'\-.0-9:A-Z_a-z\xb7
+   \p{Identifier_Status: Allowed} (112_159: [\'\-.0-9:A-Z_a-z\xb7
                              \xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..0131, U+0134..013E,
                              U+0141..0148, U+014A..017E, U+018F ...)
-   \p{Identifier_Status: Restricted} (1_006_155 plus all above-
+   \p{Identifier_Status: Restricted} (1_001_953 plus all above-
                              Unicode code points: [\x00-\x20!\"#\$
                              \%&\(\)*+,\/;<=>?\@\[\\\]\^`\{\|\}~\x7f-
                              \xb6\xb8-\xbf\xd7\xf7], U+0132..0133,
                              U+013F..0140, U+0149, U+017F..018E,
                              U+0190..019F ...)
-   \p{Identifier_Type: Default_Ignorable} (396: [\xad], U+034F,
+   \p{Identifier_Type: Default_Ignorable} (398: [\xad], U+034F,
                              U+061C, U+115F..1160, U+17B4..17B5,
                              U+180B..180F ...)
    \p{Identifier_Type: Deprecated} (15: U+0149, U+0673, U+0F77,
                              U+0F79, U+17A3..17A4, U+206A..206F ...)
-   \p{Identifier_Type: Exclusion} (17_080: U+03E2..03EF,
+   \p{Identifier_Type: Exclusion} (17_241: U+03E2..03EF,
                              U+0800..082D, U+0830..083E,
                              U+1680..169C, U+16A0..16EA, U+16EE..16F8
                              ...)
-   \p{Identifier_Type: Inclusion} (19: [\'\-.:\xb7], U+0375, U+058A,
+   \p{Identifier_Type: Inclusion} (17: [\'\-.:\xb7], U+0375, U+058A,
                              U+05F3..05F4, U+06FD..06FE, U+0F0B ...)
    \p{Identifier_Type: Limited_Use} (5268: U+0700..070D,
                              U+070F..074A, U+074D..074F,
                              U+07C0..07FA, U+07FD..07FF, U+0840..085B
                              ...)
-   \p{Identifier_Type: Not_Character} (969_409 plus all above-Unicode
+   \p{Identifier_Type: Not_Character} (964_920 plus all above-Unicode
                              code points: [^\t\n\cK\f\r\x20-\x7e\x85
                              \xa0-\xff], U+0378..0379, U+0380..0383,
                              U+038B, U+038D, U+03A2 ...)
-   \p{Identifier_Type: Not_NFKC} (4859: [\xa0\xa8\xaa\xaf\xb2-\xb5
+   \p{Identifier_Type: Not_NFKC} (4921: [\xa0\xa8\xaa\xaf\xb2-\xb5
                              \xb8-\xba\xbc-\xbe], U+0132..0133,
                              U+013F..0140, U+017F, U+01C4..01CC,
                              U+01F1..01F3 ...)
-   \p{Identifier_Type: Not_XID} (8198: [\t\n\cK\f\r\x20!\"#\$\%&
+   \p{Identifier_Type: Not_XID} (8277: [\t\n\cK\f\r\x20!\"#\$\%&
                              \(\)*+,\/;<=>?\@\[\\\]\^`\{\|\}~\x85
                              \xa1-\xa7\xa9\xab-\xac\xae\xb0-\xb1\xb6
                              \xbb\xbf\xd7\xf7], U+02C2..02C5,
@@ -3186,27 +3232,27 @@ stable.
    \p{Identifier_Type: Obsolete} (1627: U+018D, U+01AA..01AB,
                              U+01B9..01BB, U+01BE..01BF,
                              U+01F6..01F7, U+021C..021D ...)
-   \p{Identifier_Type: Recommended} (107_938: [0-9A-Z_a-z\xc0-\xd6
+   \p{Identifier_Type: Recommended} (112_142: [0-9A-Z_a-z\xc0-\xd6
                              \xd8-\xf6\xf8-\xff], U+0100..0131,
                              U+0134..013E, U+0141..0148,
                              U+014A..017E, U+018F ...)
    \p{Identifier_Type: Technical} (1660: U+0180, U+018D,
                              U+01AA..01AB, U+01BA..01BB, U+01BE,
                              U+01C0..01C3 ...)
-   \p{Identifier_Type: Uncommon_Use} (393: U+0181..018C, U+018E,
+   \p{Identifier_Type: Uncommon_Use} (396: U+0181..018C, U+018E,
                              U+0190..019F, U+01A2..01A9,
                              U+01AC..01AE, U+01B1..01B8 ...)
    \p{Ideo}                \p{Ideographic} (= \p{Ideographic=Y})
-                             (101_661)
+                             (105_854)
    \p{Ideo: *}             \p{Ideographic: *}
    \p{Ideographic}         \p{Ideographic=Y} (Short: \p{Ideo})
-                             (101_661)
-   \p{Ideographic: N*}     (Short: \p{Ideo=N}, \P{Ideo}) (1_012_451
+                             (105_854)
+   \p{Ideographic: N*}     (Short: \p{Ideo=N}, \P{Ideo}) (1_008_258
                              plus all above-Unicode code points:
                              U+0000..3005, U+3008..3020,
                              U+302A..3037, U+303B..33FF,
                              U+4DC0..4DFF, U+A000..F8FF ...)
-   \p{Ideographic: Y*}     (Short: \p{Ideo=Y}, \p{Ideo}) (101_661:
+   \p{Ideographic: Y*}     (Short: \p{Ideo=Y}, \p{Ideo}) (105_854:
                              U+3006..3007, U+3021..3029,
                              U+3038..303A, U+3400..4DBF,
                              U+4E00..9FFF, U+F900..FA6D ...)
@@ -3220,7 +3266,7 @@ stable.
  X \p{Ideographic_Symbols_And_Punctuation} \p{Block=
                              Ideographic_Symbols_And_Punctuation}
                              (Short: \p{InIdeographicSymbols}) (32)
-   \p{IDS}                 \p{ID_Start} (= \p{ID_Start=Y}) (131_997)
+   \p{IDS}                 \p{ID_Start} (= \p{ID_Start=Y}) (136_345)
    \p{IDS: *}              \p{ID_Start: *}
    \p{IDS_Binary_Operator} \p{IDS_Binary_Operator=Y} (Short:
                              \p{IDSB}) (10)
@@ -3251,33 +3297,33 @@ stable.
  X \p{Indic_Number_Forms}  \p{Common_Indic_Number_Forms} (= \p{Block=
                              Common_Indic_Number_Forms}) (16)
    \p{Indic_Positional_Category: Bottom} (Short: \p{InPC=Bottom})
-                             (352: U+093C, U+0941..0944, U+094D,
+                             (356: U+093C, U+0941..0944, U+094D,
                              U+0952, U+0956..0957, U+0962..0963 ...)
    \p{Indic_Positional_Category: Bottom_And_Left} (Short: \p{InPC=
                              BottomAndLeft}) (1: U+A9BF)
    \p{Indic_Positional_Category: Bottom_And_Right} (Short: \p{InPC=
                              BottomAndRight}) (4: U+1B3B, U+A9BE,
                              U+A9C0, U+11942)
-   \p{Indic_Positional_Category: Left} (Short: \p{InPC=Left}) (64:
+   \p{Indic_Positional_Category: Left} (Short: \p{InPC=Left}) (66:
                              U+093F, U+094E, U+09BF, U+09C7..09C8,
                              U+0A3F, U+0ABF ...)
    \p{Indic_Positional_Category: Left_And_Right} (Short: \p{InPC=
                              LeftAndRight}) (22: U+09CB..09CC,
                              U+0B4B, U+0BCA..0BCC, U+0D4A..0D4C,
                              U+0DDC, U+0DDE ...)
-   \p{Indic_Positional_Category: NA} (Short: \p{InPC=NA}) (1_112_896
+   \p{Indic_Positional_Category: NA} (Short: \p{InPC=NA}) (1_112_875
                              plus all above-Unicode code points:
                              U+0000..08FF, U+0904..0939, U+093D,
-                             U+0950, U+0958..0961, U+0964..0980 ...)
+                             U+0950, U+0953..0954, U+0958..0961 ...)
    \p{Indic_Positional_Category: Overstruck} (Short: \p{InPC=
                              Overstruck}) (10: U+1CD4, U+1CE2..1CE8,
                              U+10A01, U+10A06)
-   \p{Indic_Positional_Category: Right} (Short: \p{InPC=Right}) (290:
+   \p{Indic_Positional_Category: Right} (Short: \p{InPC=Right}) (295:
                              U+0903, U+093B, U+093E, U+0940,
                              U+0949..094C, U+094F ...)
-   \p{Indic_Positional_Category: Top} (Short: \p{InPC=Top}) (418:
+   \p{Indic_Positional_Category: Top} (Short: \p{InPC=Top}) (428:
                              U+0900..0902, U+093A, U+0945..0948,
-                             U+0951, U+0953..0955, U+0981 ...)
+                             U+0951, U+0955, U+0981 ...)
    \p{Indic_Positional_Category: Top_And_Bottom} (Short: \p{InPC=
                              TopAndBottom}) (10: U+0C48, U+0F73,
                              U+0F76..0F79, U+0F81, U+1B3C,
@@ -3306,18 +3352,18 @@ stable.
    \p{Indic_Syllabic_Category: Avagraha} (Short: \p{InSC=Avagraha})
                              (17: U+093D, U+09BD, U+0ABD, U+0B3D,
                              U+0C3D, U+0CBD ...)
-   \p{Indic_Syllabic_Category: Bindu} (Short: \p{InSC=Bindu}) (91:
+   \p{Indic_Syllabic_Category: Bindu} (Short: \p{InSC=Bindu}) (94:
                              U+0900..0902, U+0981..0982, U+09FC,
                              U+0A01..0A02, U+0A70, U+0A81..0A82 ...)
    \p{Indic_Syllabic_Category: Brahmi_Joining_Number} (Short:
                              \p{InSC=BrahmiJoiningNumber}) (20:
                              U+11052..11065)
    \p{Indic_Syllabic_Category: Cantillation_Mark} (Short: \p{InSC=
-                             CantillationMark}) (59: U+0951..0952,
-                             U+0A51, U+0AFA..0AFC, U+1CD0..1CD2,
-                             U+1CD4..1CE1, U+1CF4 ...)
+                             CantillationMark}) (58: U+0951..0952,
+                             U+0A51, U+0AFA, U+0AFC, U+1CD0..1CD2,
+                             U+1CD4..1CE1 ...)
    \p{Indic_Syllabic_Category: Consonant} (Short: \p{InSC=Consonant})
-                             (2206: U+0915..0939, U+0958..095F,
+                             (2241: U+0915..0939, U+0958..095F,
                              U+0978..097F, U+0995..09A8,
                              U+09AA..09B0, U+09B2 ...)
    \p{Indic_Syllabic_Category: Consonant_Dead} (Short: \p{InSC=
@@ -3345,8 +3391,8 @@ stable.
                              \xa0\xd7], U+0980, U+0A72..0A73, U+104B,
                              U+104E, U+1900 ...)
    \p{Indic_Syllabic_Category: Consonant_Preceding_Repha} (Short:
-                             \p{InSC=ConsonantPrecedingRepha}) (3:
-                             U+0D4E, U+11941, U+11D46)
+                             \p{InSC=ConsonantPrecedingRepha}) (4:
+                             U+0D4E, U+11941, U+11D46, U+11F02)
    \p{Indic_Syllabic_Category: Consonant_Prefixed} (Short: \p{InSC=
                              ConsonantPrefixed}) (10: U+111C2..111C3,
                              U+1193F, U+11A3A, U+11A84..11A89)
@@ -3362,10 +3408,10 @@ stable.
                              U+0CF1..0CF2, U+1CF5..1CF6,
                              U+11003..11004, U+11460..11461)
    \p{Indic_Syllabic_Category: Gemination_Mark} (Short: \p{InSC=
-                             GeminationMark}) (3: U+0A71, U+11237,
-                             U+11A98)
+                             GeminationMark}) (4: U+0A71, U+0AFB,
+                             U+11237, U+11A98)
    \p{Indic_Syllabic_Category: Invisible_Stacker} (Short: \p{InSC=
-                             InvisibleStacker}) (12: U+1039, U+17D2,
+                             InvisibleStacker}) (13: U+1039, U+17D2,
                              U+1A60, U+1BAB, U+AAF6, U+10A3F ...)
    \p{Indic_Syllabic_Category: Joiner} (Short: \p{InSC=Joiner}) (1:
                              U+200D)
@@ -3376,27 +3422,27 @@ stable.
    \p{Indic_Syllabic_Category: Nukta} (Short: \p{InSC=Nukta}) (32:
                              U+093C, U+09BC, U+0A3C, U+0ABC,
                              U+0AFD..0AFF, U+0B3C ...)
-   \p{Indic_Syllabic_Category: Number} (Short: \p{InSC=Number}) (491:
+   \p{Indic_Syllabic_Category: Number} (Short: \p{InSC=Number}) (501:
                              [0-9], U+0966..096F, U+09E6..09EF,
                              U+0A66..0A6F, U+0AE6..0AEF, U+0B66..0B6F
                              ...)
    \p{Indic_Syllabic_Category: Number_Joiner} (Short: \p{InSC=
                              NumberJoiner}) (1: U+1107F)
    \p{Indic_Syllabic_Category: Other} (Short: \p{InSC=Other})
-                             (1_109_551 plus all above-Unicode code
+                             (1_109_473 plus all above-Unicode code
                              points: [\x00-\x20!\"#\$\%&\'\(\)*+,.
                              \/:;<=>?\@A-Z\[\\\]\^_`a-z\{\|\}~\x7f-
                              \x9f\xa1-\xb1\xb4-\xd6\xd8-\xff],
                              U+0100..08FF, U+0950, U+0953..0954,
                              U+0964..0965, U+0970..0971 ...)
    \p{Indic_Syllabic_Category: Pure_Killer} (Short: \p{InSC=
-                             PureKiller}) (25: U+0D3B..0D3C, U+0E3A,
+                             PureKiller}) (26: U+0D3B..0D3C, U+0E3A,
                              U+0E4E, U+0EBA, U+0F84, U+103A ...)
    \p{Indic_Syllabic_Category: Register_Shifter} (Short: \p{InSC=
                              RegisterShifter}) (2: U+17C9..17CA)
    \p{Indic_Syllabic_Category: Syllable_Modifier} (Short: \p{InSC=
-                             SyllableModifier}) (25: [\xb2-\xb3],
-                             U+09FE, U+0F35, U+0F37, U+0FC6, U+17CB
+                             SyllableModifier}) (26: [\xb2-\xb3],
+                             U+09FE, U+0ECE, U+0F35, U+0F37, U+0FC6
                              ...)
    \p{Indic_Syllabic_Category: Tone_Letter} (Short: \p{InSC=
                              ToneLetter}) (7: U+1970..1974, U+AAC0,
@@ -3409,18 +3455,18 @@ stable.
                              U+094D, U+09CD, U+0A4D, U+0ACD, U+0B4D,
                              U+0BCD ...)
    \p{Indic_Syllabic_Category: Visarga} (Short: \p{InSC=Visarga})
-                             (35: U+0903, U+0983, U+0A03, U+0A83,
+                             (36: U+0903, U+0983, U+0A03, U+0A83,
                              U+0B03, U+0C03 ...)
    \p{Indic_Syllabic_Category: Vowel} (Short: \p{InSC=Vowel}) (30:
                              U+1963..196D, U+A85E..A861, U+A866,
                              U+A922..A92A, U+11150..11154)
    \p{Indic_Syllabic_Category: Vowel_Dependent} (Short: \p{InSC=
-                             VowelDependent}) (686: U+093A..093B,
+                             VowelDependent}) (697: U+093A..093B,
                              U+093E..094C, U+094E..094F,
                              U+0955..0957, U+0962..0963, U+09BE..09C4
                              ...)
    \p{Indic_Syllabic_Category: Vowel_Independent} (Short: \p{InSC=
-                             VowelIndependent}) (486: U+0904..0914,
+                             VowelIndependent}) (500: U+0904..0914,
                              U+0960..0961, U+0972..0977,
                              U+0985..098C, U+098F..0990, U+0993..0994
                              ...)
@@ -3676,7 +3722,7 @@ stable.
    \p{Joining_Type: L}     \p{Joining_Type=Left_Joining} (5)
    \p{Joining_Type: Left_Joining} (Short: \p{Jt=L}) (5: U+A872,
                              U+10ACD, U+10AD7, U+10D00, U+10FCB)
-   \p{Joining_Type: Non_Joining} (Short: \p{Jt=U}) (1_111_230 plus
+   \p{Joining_Type: Non_Joining} (Short: \p{Jt=U}) (1_111_188 plus
                              all above-Unicode code points: [\x00-
                              \xac\xae-\xff], U+0100..02FF,
                              U+0370..0482, U+048A..0590, U+05BE,
@@ -3685,19 +3731,20 @@ stable.
    \p{Joining_Type: Right_Joining} (Short: \p{Jt=R}) (152:
                              U+0622..0625, U+0627, U+0629,
                              U+062F..0632, U+0648, U+0671..0673 ...)
-   \p{Joining_Type: T}     \p{Joining_Type=Transparent} (2108)
-   \p{Joining_Type: Transparent} (Short: \p{Jt=T}) (2108: [\xad],
+   \p{Joining_Type: T}     \p{Joining_Type=Transparent} (2150)
+   \p{Joining_Type: Transparent} (Short: \p{Jt=T}) (2150: [\xad],
                              U+0300..036F, U+0483..0489,
                              U+0591..05BD, U+05BF, U+05C1..05C2 ...)
-   \p{Joining_Type: U}     \p{Joining_Type=Non_Joining} (1_111_230
+   \p{Joining_Type: U}     \p{Joining_Type=Non_Joining} (1_111_188
                              plus all above-Unicode code points)
    \p{Jt: *}               \p{Joining_Type: *}
    \p{Kaithi}              \p{Script_Extensions=Kaithi} (Short:
                              \p{Kthi}; NOT \p{Block=Kaithi}) (88)
+ X \p{Kaktovik_Numerals}   \p{Block=Kaktovik_Numerals} (32)
    \p{Kali}                \p{Kayah_Li} (= \p{Script_Extensions=
                              Kayah_Li}) (48)
    \p{Kana}                \p{Katakana} (= \p{Script_Extensions=
-                             Katakana}) (NOT \p{Block=Katakana}) (372)
+                             Katakana}) (NOT \p{Block=Katakana}) (373)
  X \p{Kana_Ext_A}          \p{Kana_Extended_A} (= \p{Block=
                              Kana_Extended_A}) (48)
  X \p{Kana_Ext_B}          \p{Kana_Extended_B} (= \p{Block=
@@ -3716,15 +3763,17 @@ stable.
  X \p{Kangxi_Radicals}     \p{Block=Kangxi_Radicals} (Short:
                              \p{InKangxi}) (224)
    \p{Kannada}             \p{Script_Extensions=Kannada} (Short:
-                             \p{Knda}; NOT \p{Block=Kannada}) (105)
+                             \p{Knda}; NOT \p{Block=Kannada}) (106)
    \p{Katakana}            \p{Script_Extensions=Katakana} (Short:
-                             \p{Kana}; NOT \p{Block=Katakana}) (372)
+                             \p{Kana}; NOT \p{Block=Katakana}) (373)
  X \p{Katakana_Ext}        \p{Katakana_Phonetic_Extensions} (=
                              \p{Block=Katakana_Phonetic_Extensions})
                              (16)
  X \p{Katakana_Phonetic_Extensions} \p{Block=
                              Katakana_Phonetic_Extensions} (Short:
                              \p{InKatakanaExt}) (16)
+   \p{Kawi}                \p{Script_Extensions=Kawi} (NOT \p{Block=
+                             Kawi}) (86)
    \p{Kayah_Li}            \p{Script_Extensions=Kayah_Li} (Short:
                              \p{Kali}) (48)
    \p{Khar}                \p{Kharoshthi} (= \p{Script_Extensions=
@@ -3741,9 +3790,9 @@ stable.
    \p{Khmr}                \p{Khmer} (= \p{Script_Extensions=Khmer})
                              (NOT \p{Block=Khmer}) (146)
    \p{Khoj}                \p{Khojki} (= \p{Script_Extensions=
-                             Khojki}) (NOT \p{Block=Khojki}) (82)
+                             Khojki}) (NOT \p{Block=Khojki}) (85)
    \p{Khojki}              \p{Script_Extensions=Khojki} (Short:
-                             \p{Khoj}; NOT \p{Block=Khojki}) (82)
+                             \p{Khoj}; NOT \p{Block=Khojki}) (85)
    \p{Khudawadi}           \p{Script_Extensions=Khudawadi} (Short:
                              \p{Sind}; NOT \p{Block=Khudawadi}) (81)
    \p{Kits}                \p{Khitan_Small_Script} (=
@@ -3751,25 +3800,25 @@ stable.
                              Khitan_Small_Script}) (NOT \p{Block=
                              Khitan_Small_Script}) (471)
    \p{Knda}                \p{Kannada} (= \p{Script_Extensions=
-                             Kannada}) (NOT \p{Block=Kannada}) (105)
+                             Kannada}) (NOT \p{Block=Kannada}) (106)
    \p{Kthi}                \p{Kaithi} (= \p{Script_Extensions=
                              Kaithi}) (NOT \p{Block=Kaithi}) (88)
    \p{L} \pL               \p{Letter} (= \p{General_Category=Letter})
-                             (131_756)
+                             (136_104)
  X \p{L&}                  \p{Cased_Letter} (= \p{General_Category=
-                             Cased_Letter}) (4089)
+                             Cased_Letter}) (4095)
  X \p{L_}                  \p{Cased_Letter} (= \p{General_Category=
                              Cased_Letter}) Note the trailing '_'
                              matters in spite of loose matching
-                             rules. (4089)
+                             rules. (4095)
    \p{Lana}                \p{Tai_Tham} (= \p{Script_Extensions=
                              Tai_Tham}) (NOT \p{Block=Tai_Tham}) (127)
    \p{Lao}                 \p{Script_Extensions=Lao} (NOT \p{Block=
-                             Lao}) (82)
+                             Lao}) (83)
    \p{Laoo}                \p{Lao} (= \p{Script_Extensions=Lao}) (NOT
-                             \p{Block=Lao}) (82)
+                             \p{Block=Lao}) (83)
    \p{Latin}               \p{Script_Extensions=Latin} (Short:
-                             \p{Latn}) (1504)
+                             \p{Latn}) (1510)
  X \p{Latin_1}             \p{Latin_1_Supplement} (= \p{Block=
                              Latin_1_Supplement}) (128)
  X \p{Latin_1_Sup}         \p{Latin_1_Supplement} (= \p{Block=
@@ -3810,16 +3859,16 @@ stable.
  X \p{Latin_Extended_G}    \p{Block=Latin_Extended_G} (Short:
                              \p{InLatinExtG}) (256)
    \p{Latn}                \p{Latin} (= \p{Script_Extensions=Latin})
-                             (1504)
+                             (1510)
    \p{Lb: *}               \p{Line_Break: *}
    \p{LC}                  \p{Cased_Letter} (= \p{General_Category=
-                             Cased_Letter}) (4089)
+                             Cased_Letter}) (4095)
    \p{Lepc}                \p{Lepcha} (= \p{Script_Extensions=
                              Lepcha}) (NOT \p{Block=Lepcha}) (74)
    \p{Lepcha}              \p{Script_Extensions=Lepcha} (Short:
                              \p{Lepc}; NOT \p{Block=Lepcha}) (74)
    \p{Letter}              \p{General_Category=Letter} (Short: \p{L})
-                             (131_756)
+                             (136_104)
    \p{Letter_Number}       \p{General_Category=Letter_Number} (Short:
                              \p{Nl}) (236)
  X \p{Letterlike_Symbols}  \p{Block=Letterlike_Symbols} (80)
@@ -3832,8 +3881,8 @@ stable.
    \p{Linb}                \p{Linear_B} (= \p{Script_Extensions=
                              Linear_B}) (268)
    \p{Line_Break: AI}      \p{Line_Break=Ambiguous} (707)
-   \p{Line_Break: AL}      \p{Line_Break=Alphabetic} (22_043)
-   \p{Line_Break: Alphabetic} (Short: \p{Lb=AL}) (22_043: [#&*<=>\@A-
+   \p{Line_Break: AL}      \p{Line_Break=Alphabetic} (22_215)
+   \p{Line_Break: Alphabetic} (Short: \p{Lb=AL}) (22_215: [#&*<=>\@A-
                              Z\^_`a-z~\xa6\xa9\xac\xae-\xaf\xb5\xc0-
                              \xd6\xd8-\xf6\xf8-\xff], U+0100..02C6,
                              U+02CE..02CF, U+02D1..02D7, U+02DC,
@@ -3843,13 +3892,13 @@ stable.
                              U+02C7, U+02C9..02CB, U+02CD, U+02D0,
                              U+02D8..02DB ...)
    \p{Line_Break: B2}      \p{Line_Break=Break_Both} (3)
-   \p{Line_Break: BA}      \p{Line_Break=Break_After} (247)
-   \p{Line_Break: BB}      \p{Line_Break=Break_Before} (45)
+   \p{Line_Break: BA}      \p{Line_Break=Break_After} (249)
+   \p{Line_Break: BB}      \p{Line_Break=Break_Before} (55)
    \p{Line_Break: BK}      \p{Line_Break=Mandatory_Break} (4)
-   \p{Line_Break: Break_After} (Short: \p{Lb=BA}) (247: [\t\|\xad],
+   \p{Line_Break: Break_After} (Short: \p{Lb=BA}) (249: [\t\|\xad],
                              U+058A, U+05BE, U+0964..0965,
                              U+0E5A..0E5B, U+0F0B ...)
-   \p{Line_Break: Break_Before} (Short: \p{Lb=BB}) (45: [\xb4],
+   \p{Line_Break: Break_Before} (Short: \p{Lb=BB}) (55: [\xb4],
                              U+02C8, U+02CC, U+02DF, U+0C77, U+0C84
                              ...)
    \p{Line_Break: Break_Both} (Short: \p{Lb=B2}) (3: U+2014,
@@ -3858,39 +3907,39 @@ stable.
    \p{Line_Break: Carriage_Return} (Short: \p{Lb=CR}) (1: [\r])
    \p{Line_Break: CB}      \p{Line_Break=Contingent_Break} (1)
    \p{Line_Break: CJ}      \p{Line_Break=
-                             Conditional_Japanese_Starter} (58)
-   \p{Line_Break: CL}      \p{Line_Break=Close_Punctuation} (95)
+                             Conditional_Japanese_Starter} (60)
+   \p{Line_Break: CL}      \p{Line_Break=Close_Punctuation} (97)
    \p{Line_Break: Close_Parenthesis} (Short: \p{Lb=CP}) (2: [\)\]])
-   \p{Line_Break: Close_Punctuation} (Short: \p{Lb=CL}) (95: [\}],
+   \p{Line_Break: Close_Punctuation} (Short: \p{Lb=CL}) (97: [\}],
                              U+0F3B, U+0F3D, U+169C, U+2046, U+207E
                              ...)
-   \p{Line_Break: CM}      \p{Line_Break=Combining_Mark} (2399)
-   \p{Line_Break: Combining_Mark} (Short: \p{Lb=CM}) (2399: [^\t\n
+   \p{Line_Break: CM}      \p{Line_Break=Combining_Mark} (2438)
+   \p{Line_Break: Combining_Mark} (Short: \p{Lb=CM}) (2438: [^\t\n
                              \cK\f\r\x20-\x7e\x85\xa0-\xff],
                              U+0300..034E, U+0350..035B,
                              U+0363..036F, U+0483..0489, U+0591..05BD
                              ...)
-   \p{Line_Break: Complex_Context} (Short: \p{Lb=SA}) (757:
+   \p{Line_Break: Complex_Context} (Short: \p{Lb=SA}) (758:
                              U+0E01..0E3A, U+0E40..0E4E,
                              U+0E81..0E82, U+0E84, U+0E86..0E8A,
                              U+0E8C..0EA3 ...)
    \p{Line_Break: Conditional_Japanese_Starter} (Short: \p{Lb=CJ})
-                             (58: U+3041, U+3043, U+3045, U+3047,
+                             (60: U+3041, U+3043, U+3045, U+3047,
                              U+3049, U+3063 ...)
    \p{Line_Break: Contingent_Break} (Short: \p{Lb=CB}) (1: U+FFFC)
    \p{Line_Break: CP}      \p{Line_Break=Close_Parenthesis} (2)
    \p{Line_Break: CR}      \p{Line_Break=Carriage_Return} (1)
-   \p{Line_Break: E_Base}  (Short: \p{Lb=EB}) (132: U+261D, U+26F9,
+   \p{Line_Break: E_Base}  (Short: \p{Lb=EB}) (134: U+261D, U+26F9,
                              U+270A..270D, U+1F385, U+1F3C2..1F3C4,
                              U+1F3C7 ...)
    \p{Line_Break: E_Modifier} (Short: \p{Lb=EM}) (5: U+1F3FB..1F3FF)
-   \p{Line_Break: EB}      \p{Line_Break=E_Base} (132)
+   \p{Line_Break: EB}      \p{Line_Break=E_Base} (134)
    \p{Line_Break: EM}      \p{Line_Break=E_Modifier} (5)
    \p{Line_Break: EX}      \p{Line_Break=Exclamation} (40)
    \p{Line_Break: Exclamation} (Short: \p{Lb=EX}) (40: [!?], U+05C6,
                              U+061B, U+061D..061F, U+06D4, U+07F9 ...)
-   \p{Line_Break: GL}      \p{Line_Break=Glue} (26)
-   \p{Line_Break: Glue}    (Short: \p{Lb=GL}) (26: [\xa0], U+034F,
+   \p{Line_Break: GL}      \p{Line_Break=Glue} (31)
+   \p{Line_Break: Glue}    (Short: \p{Lb=GL}) (31: [\xa0], U+034F,
                              U+035C..0362, U+0F08, U+0F0C, U+0F12 ...)
    \p{Line_Break: H2}      (Short: \p{Lb=H2}) (399: U+AC00, U+AC1C,
                              U+AC38, U+AC54, U+AC70, U+AC8C ...)
@@ -3905,8 +3954,8 @@ stable.
    \p{Line_Break: HL}      \p{Line_Break=Hebrew_Letter} (75)
    \p{Line_Break: HY}      \p{Line_Break=Hyphen} (1)
    \p{Line_Break: Hyphen}  (Short: \p{Lb=HY}) (1: [\-])
-   \p{Line_Break: ID}      \p{Line_Break=Ideographic} (172_456)
-   \p{Line_Break: Ideographic} (Short: \p{Lb=ID}) (172_456:
+   \p{Line_Break: ID}      \p{Line_Break=Ideographic} (172_465)
+   \p{Line_Break: Ideographic} (Short: \p{Lb=ID}) (172_465:
                              U+231A..231B, U+23F0..23F3,
                              U+2600..2603, U+2614..2615, U+2618,
                              U+261A..261C ...)
@@ -3934,17 +3983,17 @@ stable.
                              U+203C..203D, U+2047..2049, U+3005,
                              U+301C, U+303B..303C ...)
    \p{Line_Break: NS}      \p{Line_Break=Nonstarter} (33)
-   \p{Line_Break: NU}      \p{Line_Break=Numeric} (652)
-   \p{Line_Break: Numeric} (Short: \p{Lb=NU}) (652: [0-9],
+   \p{Line_Break: NU}      \p{Line_Break=Numeric} (672)
+   \p{Line_Break: Numeric} (Short: \p{Lb=NU}) (672: [0-9],
                              U+0660..0669, U+066B..066C,
                              U+06F0..06F9, U+07C0..07C9, U+0966..096F
                              ...)
-   \p{Line_Break: OP}      \p{Line_Break=Open_Punctuation} (92)
-   \p{Line_Break: Open_Punctuation} (Short: \p{Lb=OP}) (92: [\(\[\{
+   \p{Line_Break: OP}      \p{Line_Break=Open_Punctuation} (94)
+   \p{Line_Break: Open_Punctuation} (Short: \p{Lb=OP}) (94: [\(\[\{
                              \xa1\xbf], U+0F3A, U+0F3C, U+169B,
                              U+201A, U+201E ...)
-   \p{Line_Break: PO}      \p{Line_Break=Postfix_Numeric} (37)
-   \p{Line_Break: Postfix_Numeric} (Short: \p{Lb=PO}) (37: [\%\xa2
+   \p{Line_Break: PO}      \p{Line_Break=Postfix_Numeric} (38)
+   \p{Line_Break: Postfix_Numeric} (Short: \p{Lb=PO}) (38: [\%\xa2
                              \xb0], U+0609..060B, U+066A,
                              U+09F2..09F3, U+09F9, U+0D79 ...)
    \p{Line_Break: PR}      \p{Line_Break=Prefix_Numeric} (67)
@@ -3958,7 +4007,7 @@ stable.
    \p{Line_Break: Regional_Indicator} (Short: \p{Lb=RI}) (26:
                              U+1F1E6..1F1FF)
    \p{Line_Break: RI}      \p{Line_Break=Regional_Indicator} (26)
-   \p{Line_Break: SA}      \p{Line_Break=Complex_Context} (757)
+   \p{Line_Break: SA}      \p{Line_Break=Complex_Context} (758)
  D \p{Line_Break: SG}      \p{Line_Break=Surrogate} (2048)
    \p{Line_Break: SP}      \p{Line_Break=Space} (1)
    \p{Line_Break: Space}   (Short: \p{Lb=SP}) (1: [\x20])
@@ -3967,13 +4016,13 @@ stable.
                              the basis for line breaking (Short:
                              \p{Lb=SG}) (2048: U+D800..DFFF)
    \p{Line_Break: SY}      \p{Line_Break=Break_Symbols} (1)
-   \p{Line_Break: Unknown} (Short: \p{Lb=XX}) (900_465 plus all
+   \p{Line_Break: Unknown} (Short: \p{Lb=XX}) (900_198 plus all
                              above-Unicode code points: U+0378..0379,
                              U+0380..0383, U+038B, U+038D, U+03A2,
                              U+0530 ...)
    \p{Line_Break: WJ}      \p{Line_Break=Word_Joiner} (2)
    \p{Line_Break: Word_Joiner} (Short: \p{Lb=WJ}) (2: U+2060, U+FEFF)
-   \p{Line_Break: XX}      \p{Line_Break=Unknown} (900_465 plus all
+   \p{Line_Break: XX}      \p{Line_Break=Unknown} (900_198 plus all
                              above-Unicode code points)
    \p{Line_Break: ZW}      \p{Line_Break=ZWSpace} (1)
    \p{Line_Break: ZWJ}     (Short: \p{Lb=ZWJ}) (1: U+200D)
@@ -3995,12 +4044,12 @@ stable.
    \p{Ll}                  \p{Lowercase_Letter} (=
                              \p{General_Category=Lowercase_Letter})
                              (/i= General_Category=Cased_Letter)
-                             (2227)
+                             (2233)
    \p{Lm}                  \p{Modifier_Letter} (=
                              \p{General_Category=Modifier_Letter})
-                             (334)
+                             (397)
    \p{Lo}                  \p{Other_Letter} (= \p{General_Category=
-                             Other_Letter}) (127_333)
+                             Other_Letter}) (131_612)
    \p{LOE}                 \p{Logical_Order_Exception} (=
                              \p{Logical_Order_Exception=Y}) (19)
    \p{LOE: *}              \p{Logical_Order_Exception: *}
@@ -4017,24 +4066,24 @@ stable.
                              U+AAB9 ...)
  X \p{Low_Surrogates}      \p{Block=Low_Surrogates} (1024)
    \p{Lower}               \p{XPosixLower} (= \p{Lowercase=Y}) (/i=
-                             Cased=Yes) (2471)
+                             Cased=Yes) (2544)
    \p{Lower: *}            \p{Lowercase: *}
    \p{Lowercase}           \p{XPosixLower} (= \p{Lowercase=Y}) (/i=
-                             Cased=Yes) (2471)
+                             Cased=Yes) (2544)
    \p{Lowercase: N*}       (Short: \p{Lower=N}, \P{Lower}; /i= Cased=
-                             No) (1_111_641 plus all above-Unicode
+                             No) (1_111_568 plus all above-Unicode
                              code points: [\x00-\x20!\"#\$\%&\'
                              \(\)*+,\-.\/0-9:;<=>?\@A-Z\[\\\]\^_`\{
                              \|\}~\x7f-\xa9\xab-\xb4\xb6-\xb9\xbb-
                              \xde\xf7], U+0100, U+0102, U+0104,
                              U+0106, U+0108 ...)
    \p{Lowercase: Y*}       (Short: \p{Lower=Y}, \p{Lower}; /i= Cased=
-                             Yes) (2471: [a-z\xaa\xb5\xba\xdf-\xf6
+                             Yes) (2544: [a-z\xaa\xb5\xba\xdf-\xf6
                              \xf8-\xff], U+0101, U+0103, U+0105,
                              U+0107, U+0109 ...)
    \p{Lowercase_Letter}    \p{General_Category=Lowercase_Letter}
                              (Short: \p{Ll}; /i= General_Category=
-                             Cased_Letter) (2227)
+                             Cased_Letter) (2233)
    \p{Lt}                  \p{Titlecase_Letter} (=
                              \p{General_Category=Titlecase_Letter})
                              (/i= General_Category=Cased_Letter) (31)
@@ -4051,7 +4100,7 @@ stable.
    \p{Lydian}              \p{Script_Extensions=Lydian} (Short:
                              \p{Lydi}; NOT \p{Block=Lydian}) (27)
    \p{M} \pM               \p{Mark} (= \p{General_Category=Mark})
-                             (2408)
+                             (2450)
    \p{Mahajani}            \p{Script_Extensions=Mahajani} (Short:
                              \p{Mahj}; NOT \p{Block=Mahajani}) (61)
    \p{Mahj}                \p{Mahajani} (= \p{Script_Extensions=
@@ -4080,7 +4129,7 @@ stable.
    \p{Marchen}             \p{Script_Extensions=Marchen} (Short:
                              \p{Marc}; NOT \p{Block=Marchen}) (68)
    \p{Mark}                \p{General_Category=Mark} (Short: \p{M})
-                             (2408)
+                             (2450)
    \p{Masaram_Gondi}       \p{Script_Extensions=Masaram_Gondi}
                              (Short: \p{Gonm}; NOT \p{Block=
                              Masaram_Gondi}) (77)
@@ -4111,7 +4160,7 @@ stable.
                              (Short: \p{InMathOperators}) (256)
  X \p{Mayan_Numerals}      \p{Block=Mayan_Numerals} (32)
    \p{Mc}                  \p{Spacing_Mark} (= \p{General_Category=
-                             Spacing_Mark}) (445)
+                             Spacing_Mark}) (452)
    \p{Me}                  \p{Enclosing_Mark} (= \p{General_Category=
                              Enclosing_Mark}) (13)
    \p{Medefaidrin}         \p{Script_Extensions=Medefaidrin} (Short:
@@ -4186,11 +4235,11 @@ stable.
                              (126)
    \p{Mn}                  \p{Nonspacing_Mark} (=
                              \p{General_Category=Nonspacing_Mark})
-                             (1950)
+                             (1985)
    \p{Modi}                \p{Script_Extensions=Modi} (NOT \p{Block=
                              Modi}) (89)
    \p{Modifier_Letter}     \p{General_Category=Modifier_Letter}
-                             (Short: \p{Lm}) (334)
+                             (Short: \p{Lm}) (397)
  X \p{Modifier_Letters}    \p{Spacing_Modifier_Letters} (= \p{Block=
                              Spacing_Modifier_Letters}) (80)
    \p{Modifier_Symbol}     \p{General_Category=Modifier_Symbol}
@@ -4233,10 +4282,15 @@ stable.
    \p{Mymr}                \p{Myanmar} (= \p{Script_Extensions=
                              Myanmar}) (NOT \p{Block=Myanmar}) (224)
    \p{N} \pN               \p{Number} (= \p{General_Category=Number})
-                             (1791)
+                             (1831)
    \p{Na=*}                \p{Name=*}
    \p{Nabataean}           \p{Script_Extensions=Nabataean} (Short:
                              \p{Nbat}; NOT \p{Block=Nabataean}) (40)
+   \p{Nag_Mundari}         \p{Script_Extensions=Nag_Mundari} (Short:
+                             \p{Nagm}; NOT \p{Block=Nag_Mundari}) (42)
+   \p{Nagm}                \p{Nag_Mundari} (= \p{Script_Extensions=
+                             Nag_Mundari}) (NOT \p{Block=
+                             Nag_Mundari}) (42)
    \p{Name=*}              Combination of Name and Name_Alias
                              properties; has special loose matching
                              rules, for which see Unicode UAX #44
@@ -4249,7 +4303,7 @@ stable.
                              \p{Script_Extensions=Old_North_Arabian})
                              (32)
  X \p{NB}                  \p{No_Block} (= \p{Block=No_Block})
-                             (825_600 plus all above-Unicode code
+                             (820_944 plus all above-Unicode code
                              points)
    \p{Nbat}                \p{Nabataean} (= \p{Script_Extensions=
                              Nabataean}) (NOT \p{Block=Nabataean})
@@ -4258,7 +4312,7 @@ stable.
                              \p{Noncharacter_Code_Point=Y}) (66)
    \p{NChar: *}            \p{Noncharacter_Code_Point: *}
    \p{Nd}                  \p{XPosixDigit} (= \p{General_Category=
-                             Decimal_Number}) (660)
+                             Decimal_Number}) (680)
    \p{New_Tai_Lue}         \p{Script_Extensions=New_Tai_Lue} (Short:
                              \p{Talu}; NOT \p{Block=New_Tai_Lue}) (83)
    \p{Newa}                \p{Script_Extensions=Newa} (NOT \p{Block=
@@ -4314,20 +4368,20 @@ stable.
                              U+0311, U+0313..0314, U+031B ...)
    \p{NFKC_Quick_Check: N} \p{NFKC_Quick_Check=No} (NOT
                              \P{NFKC_Quick_Check} NOR \P{NFKC_QC})
-                             (4866)
+                             (4928)
    \p{NFKC_Quick_Check: No} (Short: \p{NFKCQC=N}; NOT
                              \P{NFKC_Quick_Check} NOR \P{NFKC_QC})
-                             (4866: [\xa0\xa8\xaa\xaf\xb2-\xb5\xb8-
+                             (4928: [\xa0\xa8\xaa\xaf\xb2-\xb5\xb8-
                              \xba\xbc-\xbe], U+0132..0133,
                              U+013F..0140, U+0149, U+017F,
                              U+01C4..01CC ...)
    \p{NFKC_Quick_Check: Y} \p{NFKC_Quick_Check=Yes} (NOT
                              \p{NFKC_Quick_Check} NOR \p{NFKC_QC})
-                             (1_109_135 plus all above-Unicode code
+                             (1_109_073 plus all above-Unicode code
                              points)
    \p{NFKC_Quick_Check: Yes} (Short: \p{NFKCQC=Y}; NOT
                              \p{NFKC_Quick_Check} NOR \p{NFKC_QC})
-                             (1_109_135 plus all above-Unicode code
+                             (1_109_073 plus all above-Unicode code
                              points: [\x00-\x9f\xa1-\xa7\xa9\xab-
                              \xae\xb0-\xb1\xb6-\xb7\xbb\xbf-\xff],
                              U+0100..0131, U+0134..013E,
@@ -4336,10 +4390,10 @@ stable.
    \p{NFKD_QC: *}          \p{NFKD_Quick_Check: *}
    \p{NFKD_Quick_Check: N} \p{NFKD_Quick_Check=No} (NOT
                              \P{NFKD_Quick_Check} NOR \P{NFKD_QC})
-                             (16_967)
+                             (17_029)
    \p{NFKD_Quick_Check: No} (Short: \p{NFKDQC=N}; NOT
                              \P{NFKD_Quick_Check} NOR \P{NFKD_QC})
-                             (16_967: [\xa0\xa8\xaa\xaf\xb2-\xb5\xb8-
+                             (17_029: [\xa0\xa8\xaa\xaf\xb2-\xb5\xb8-
                              \xba\xbc-\xbe\xc0-\xc5\xc7-\xcf\xd1-
                              \xd6\xd9-\xdd\xe0-\xe5\xe7-\xef\xf1-
                              \xf6\xf9-\xfd\xff], U+0100..010F,
@@ -4347,11 +4401,11 @@ stable.
                              U+0132..0137, U+0139..0140 ...)
    \p{NFKD_Quick_Check: Y} \p{NFKD_Quick_Check=Yes} (NOT
                              \p{NFKD_Quick_Check} NOR \p{NFKD_QC})
-                             (1_097_145 plus all above-Unicode code
+                             (1_097_083 plus all above-Unicode code
                              points)
    \p{NFKD_Quick_Check: Yes} (Short: \p{NFKDQC=Y}; NOT
                              \p{NFKD_Quick_Check} NOR \p{NFKD_QC})
-                             (1_097_145 plus all above-Unicode code
+                             (1_097_083 plus all above-Unicode code
                              points: [\x00-\x9f\xa1-\xa7\xa9\xab-
                              \xae\xb0-\xb1\xb6-\xb7\xbb\xbf\xc6\xd0
                              \xd7-\xd8\xde-\xdf\xe6\xf0\xf7-\xf8
@@ -4364,9 +4418,9 @@ stable.
    \p{Nl}                  \p{Letter_Number} (= \p{General_Category=
                              Letter_Number}) (236)
    \p{No}                  \p{Other_Number} (= \p{General_Category=
-                             Other_Number}) (895)
+                             Other_Number}) (915)
  X \p{No_Block}            \p{Block=No_Block} (Short: \p{InNB})
-                             (825_600 plus all above-Unicode code
+                             (820_944 plus all above-Unicode code
                              points)
    \p{Noncharacter_Code_Point} \p{Noncharacter_Code_Point=Y} (Short:
                              \p{NChar}) (66)
@@ -4380,15 +4434,15 @@ stable.
                              U+1FFFE..1FFFF, U+2FFFE..2FFFF,
                              U+3FFFE..3FFFF, U+4FFFE..4FFFF ...)
    \p{Nonspacing_Mark}     \p{General_Category=Nonspacing_Mark}
-                             (Short: \p{Mn}) (1950)
+                             (Short: \p{Mn}) (1985)
    \p{Nshu}                \p{Nushu} (= \p{Script_Extensions=Nushu})
                              (NOT \p{Block=Nushu}) (397)
    \p{Nt: *}               \p{Numeric_Type: *}
    \p{Number}              \p{General_Category=Number} (Short: \p{N})
-                             (1791)
+                             (1831)
  X \p{Number_Forms}        \p{Block=Number_Forms} (64)
-   \p{Numeric_Type: De}    \p{Numeric_Type=Decimal} (660)
-   \p{Numeric_Type: Decimal} (Short: \p{Nt=De}) (660: [0-9],
+   \p{Numeric_Type: De}    \p{Numeric_Type=Decimal} (680)
+   \p{Numeric_Type: Decimal} (Short: \p{Nt=De}) (680: [0-9],
                              U+0660..0669, U+06F0..06F9,
                              U+07C0..07C9, U+0966..096F, U+09E6..09EF
                              ...)
@@ -4396,20 +4450,20 @@ stable.
    \p{Numeric_Type: Digit} (Short: \p{Nt=Di}) (128: [\xb2-\xb3\xb9],
                              U+1369..1371, U+19DA, U+2070,
                              U+2074..2079, U+2080..2089 ...)
-   \p{Numeric_Type: None}  (Short: \p{Nt=None}) (1_112_240 plus all
+   \p{Numeric_Type: None}  (Short: \p{Nt=None}) (1_112_200 plus all
                              above-Unicode code points: [\x00-\x20!
                              \"#\$\%&\'\(\)*+,\-.\/:;<=>?\@A-Z\[\\\]
                              \^_`a-z\{\|\}~\x7f-\xb1\xb4-\xb8\xba-
                              \xbb\xbf-\xff], U+0100..065F,
                              U+066A..06EF, U+06FA..07BF,
                              U+07CA..0965, U+0970..09E5 ...)
-   \p{Numeric_Type: Nu}    \p{Numeric_Type=Numeric} (1084)
-   \p{Numeric_Type: Numeric} (Short: \p{Nt=Nu}) (1084: [\xbc-\xbe],
+   \p{Numeric_Type: Nu}    \p{Numeric_Type=Numeric} (1104)
+   \p{Numeric_Type: Numeric} (Short: \p{Nt=Nu}) (1104: [\xbc-\xbe],
                              U+09F4..09F9, U+0B72..0B77,
                              U+0BF0..0BF2, U+0C78..0C7E, U+0D58..0D5E
                              ...)
  T \p{Numeric_Value: -1/2} (Short: \p{Nv=-1/2}) (1: U+0F33)
- T \p{Numeric_Value: 0}    (Short: \p{Nv=0}) (84: [0], U+0660,
+ T \p{Numeric_Value: 0}    (Short: \p{Nv=0}) (87: [0], U+0660,
                              U+06F0, U+07C0, U+0966, U+09E6 ...)
  T \p{Numeric_Value: 1/320} (Short: \p{Nv=1/320}) (2: U+11FC0,
                              U+11FD4)
@@ -4458,51 +4512,51 @@ stable.
                              U+1245C)
  T \p{Numeric_Value: 7/8}  (Short: \p{Nv=7/8}) (1: U+215E)
  T \p{Numeric_Value: 11/12} (Short: \p{Nv=11/12}) (1: U+109BC)
- T \p{Numeric_Value: 1}    (Short: \p{Nv=1}) (141: [1\xb9], U+0661,
+ T \p{Numeric_Value: 1}    (Short: \p{Nv=1}) (144: [1\xb9], U+0661,
                              U+06F1, U+07C1, U+0967, U+09E7 ...)
  T \p{Numeric_Value: 3/2}  (Short: \p{Nv=3/2}) (1: U+0F2B)
- T \p{Numeric_Value: 2}    (Short: \p{Nv=2}) (140: [2\xb2], U+0662,
+ T \p{Numeric_Value: 2}    (Short: \p{Nv=2}) (143: [2\xb2], U+0662,
                              U+06F2, U+07C2, U+0968, U+09E8 ...)
  T \p{Numeric_Value: 5/2}  (Short: \p{Nv=5/2}) (1: U+0F2C)
- T \p{Numeric_Value: 3}    (Short: \p{Nv=3}) (141: [3\xb3], U+0663,
+ T \p{Numeric_Value: 3}    (Short: \p{Nv=3}) (144: [3\xb3], U+0663,
                              U+06F3, U+07C3, U+0969, U+09E9 ...)
  T \p{Numeric_Value: 7/2}  (Short: \p{Nv=7/2}) (1: U+0F2D)
- T \p{Numeric_Value: 4}    (Short: \p{Nv=4}) (132: [4], U+0664,
+ T \p{Numeric_Value: 4}    (Short: \p{Nv=4}) (135: [4], U+0664,
                              U+06F4, U+07C4, U+096A, U+09EA ...)
  T \p{Numeric_Value: 9/2}  (Short: \p{Nv=9/2}) (1: U+0F2E)
- T \p{Numeric_Value: 5}    (Short: \p{Nv=5}) (130: [5], U+0665,
+ T \p{Numeric_Value: 5}    (Short: \p{Nv=5}) (133: [5], U+0665,
                              U+06F5, U+07C5, U+096B, U+09EB ...)
  T \p{Numeric_Value: 11/2} (Short: \p{Nv=11/2}) (1: U+0F2F)
- T \p{Numeric_Value: 6}    (Short: \p{Nv=6}) (114: [6], U+0666,
+ T \p{Numeric_Value: 6}    (Short: \p{Nv=6}) (117: [6], U+0666,
                              U+06F6, U+07C6, U+096C, U+09EC ...)
  T \p{Numeric_Value: 13/2} (Short: \p{Nv=13/2}) (1: U+0F30)
- T \p{Numeric_Value: 7}    (Short: \p{Nv=7}) (113: [7], U+0667,
+ T \p{Numeric_Value: 7}    (Short: \p{Nv=7}) (116: [7], U+0667,
                              U+06F7, U+07C7, U+096D, U+09ED ...)
  T \p{Numeric_Value: 15/2} (Short: \p{Nv=15/2}) (1: U+0F31)
- T \p{Numeric_Value: 8}    (Short: \p{Nv=8}) (109: [8], U+0668,
+ T \p{Numeric_Value: 8}    (Short: \p{Nv=8}) (112: [8], U+0668,
                              U+06F8, U+07C8, U+096E, U+09EE ...)
  T \p{Numeric_Value: 17/2} (Short: \p{Nv=17/2}) (1: U+0F32)
- T \p{Numeric_Value: 9}    (Short: \p{Nv=9}) (113: [9], U+0669,
+ T \p{Numeric_Value: 9}    (Short: \p{Nv=9}) (116: [9], U+0669,
                              U+06F9, U+07C9, U+096F, U+09EF ...)
- T \p{Numeric_Value: 10}   (Short: \p{Nv=10}) (62: U+0BF0, U+0D70,
+ T \p{Numeric_Value: 10}   (Short: \p{Nv=10}) (63: U+0BF0, U+0D70,
                              U+1372, U+2169, U+2179, U+2469 ...)
- T \p{Numeric_Value: 11}   (Short: \p{Nv=11}) (8: U+216A, U+217A,
+ T \p{Numeric_Value: 11}   (Short: \p{Nv=11}) (9: U+216A, U+217A,
                              U+246A, U+247E, U+2492, U+24EB ...)
- T \p{Numeric_Value: 12}   (Short: \p{Nv=12}) (8: U+216B, U+217B,
+ T \p{Numeric_Value: 12}   (Short: \p{Nv=12}) (9: U+216B, U+217B,
                              U+246B, U+247F, U+2493, U+24EC ...)
- T \p{Numeric_Value: 13}   (Short: \p{Nv=13}) (6: U+246C, U+2480,
-                             U+2494, U+24ED, U+16E8D, U+1D2ED)
- T \p{Numeric_Value: 14}   (Short: \p{Nv=14}) (6: U+246D, U+2481,
-                             U+2495, U+24EE, U+16E8E, U+1D2EE)
- T \p{Numeric_Value: 15}   (Short: \p{Nv=15}) (6: U+246E, U+2482,
-                             U+2496, U+24EF, U+16E8F, U+1D2EF)
- T \p{Numeric_Value: 16}   (Short: \p{Nv=16}) (7: U+09F9, U+246F,
+ T \p{Numeric_Value: 13}   (Short: \p{Nv=13}) (7: U+246C, U+2480,
+                             U+2494, U+24ED, U+16E8D, U+1D2CD ...)
+ T \p{Numeric_Value: 14}   (Short: \p{Nv=14}) (7: U+246D, U+2481,
+                             U+2495, U+24EE, U+16E8E, U+1D2CE ...)
+ T \p{Numeric_Value: 15}   (Short: \p{Nv=15}) (7: U+246E, U+2482,
+                             U+2496, U+24EF, U+16E8F, U+1D2CF ...)
+ T \p{Numeric_Value: 16}   (Short: \p{Nv=16}) (8: U+09F9, U+246F,
                              U+2483, U+2497, U+24F0, U+16E90 ...)
- T \p{Numeric_Value: 17}   (Short: \p{Nv=17}) (7: U+16EE, U+2470,
+ T \p{Numeric_Value: 17}   (Short: \p{Nv=17}) (8: U+16EE, U+2470,
                              U+2484, U+2498, U+24F1, U+16E91 ...)
- T \p{Numeric_Value: 18}   (Short: \p{Nv=18}) (7: U+16EF, U+2471,
+ T \p{Numeric_Value: 18}   (Short: \p{Nv=18}) (8: U+16EF, U+2471,
                              U+2485, U+2499, U+24F2, U+16E92 ...)
- T \p{Numeric_Value: 19}   (Short: \p{Nv=19}) (7: U+16F0, U+2472,
+ T \p{Numeric_Value: 19}   (Short: \p{Nv=19}) (8: U+16F0, U+2472,
                              U+2486, U+249A, U+24F3, U+16E93 ...)
  T \p{Numeric_Value: 20}   (Short: \p{Nv=20}) (36: U+1373, U+2473,
                              U+2487, U+249B, U+24F4, U+3039 ...)
@@ -4638,7 +4692,7 @@ stable.
                              10000000000}) (1: U+16B60)
  T \p{Numeric_Value: 1000000000000} (= 1.0e+12) (Short: \p{Nv=
                              1000000000000}) (2: U+5146, U+16B61)
-   \p{Numeric_Value: NaN}  (Short: \p{Nv=NaN}) (1_112_240 plus all
+   \p{Numeric_Value: NaN}  (Short: \p{Nv=NaN}) (1_112_200 plus all
                              above-Unicode code points: [\x00-\x20!
                              \"#\$\%&\'\(\)*+,\-.\/:;<=>?\@A-Z\[\\\]
                              \^_`a-z\{\|\}~\x7f-\xb1\xb4-\xb8\xba-
@@ -4704,23 +4758,23 @@ stable.
    \p{Osmanya}             \p{Script_Extensions=Osmanya} (Short:
                              \p{Osma}; NOT \p{Block=Osmanya}) (40)
    \p{Other}               \p{General_Category=Other} (Short: \p{C})
-                             (969_578 plus all above-Unicode code
+                             (965_096 plus all above-Unicode code
                              points)
    \p{Other_Letter}        \p{General_Category=Other_Letter} (Short:
-                             \p{Lo}) (127_333)
+                             \p{Lo}) (131_612)
    \p{Other_Number}        \p{General_Category=Other_Number} (Short:
-                             \p{No}) (895)
+                             \p{No}) (915)
    \p{Other_Punctuation}   \p{General_Category=Other_Punctuation}
-                             (Short: \p{Po}) (605)
+                             (Short: \p{Po}) (628)
    \p{Other_Symbol}        \p{General_Category=Other_Symbol} (Short:
-                             \p{So}) (6605)
+                             \p{So}) (6634)
  X \p{Ottoman_Siyaq_Numbers} \p{Block=Ottoman_Siyaq_Numbers} (80)
    \p{Ougr}                \p{Old_Uyghur} (= \p{Script_Extensions=
                              Old_Uyghur}) (NOT \p{Block=Old_Uyghur})
                              (28)
    \p{P} \pP               \p{Punct} (= \p{General_Category=
                              Punctuation}) (NOT
-                             \p{General_Punctuation}) (819)
+                             \p{General_Punctuation}) (842)
    \p{Pahawh_Hmong}        \p{Script_Extensions=Pahawh_Hmong} (Short:
                              \p{Hmng}; NOT \p{Block=Pahawh_Hmong})
                              (127)
@@ -4825,7 +4879,7 @@ stable.
                              (NOT \p{Block=Miao}) (149)
    \p{Po}                  \p{Other_Punctuation} (=
                              \p{General_Category=Other_Punctuation})
-                             (605)
+                             (628)
    \p{PosixAlnum}          (62: [0-9A-Za-z])
    \p{PosixAlpha}          (52: [A-Za-z])
    \p{PosixBlank}          (2: [\t\x20])
@@ -5028,13 +5082,20 @@ stable.
                              U+038E..03A1, U+03A3..052F ...)
    \p{Present_In: V14_0}   \p{Present_In=14.0} (Perl extension)
                              (284_344)
+ T \p{Present_In: 15.0}    Code point's usage introduced in version
+                             15.0 or earlier (Short: \p{In=15.0})
+                             (Perl extension) (288_833: U+0000..0377,
+                             U+037A..037F, U+0384..038A, U+038C,
+                             U+038E..03A1, U+03A3..052F ...)
+   \p{Present_In: V15_0}   \p{Present_In=15.0} (Perl extension)
+                             (288_833)
    \p{Present_In: NA}      \p{Present_In=Unassigned} (= \p{Age=
-                             Unassigned}) (Perl extension) (829_768
+                             Unassigned}) (Perl extension) (825_279
                              plus all above-Unicode code points)
    \p{Present_In: Unassigned} \p{Age=Unassigned} (Short: \p{In=NA})
-                             (Perl extension) (829_768 plus all
+                             (Perl extension) (825_279 plus all
                              above-Unicode code points)
-   \p{Print}               \p{XPosixPrint} (282_163)
+   \p{Print}               \p{XPosixPrint} (286_652)
    \p{Private_Use}         \p{General_Category=Private_Use} (Short:
                              \p{Co}; NOT \p{Private_Use_Area})
                              (137_468)
@@ -5053,10 +5114,10 @@ stable.
  X \p{PUA}                 \p{Private_Use_Area} (= \p{Block=
                              Private_Use_Area}) (6400)
    \p{Punct}               \p{General_Category=Punctuation} (Short:
-                             \p{P}; NOT \p{General_Punctuation}) (819)
+                             \p{P}; NOT \p{General_Punctuation}) (842)
    \p{Punctuation}         \p{Punct} (= \p{General_Category=
                              Punctuation}) (NOT
-                             \p{General_Punctuation}) (819)
+                             \p{General_Punctuation}) (842)
    \p{Qaac}                \p{Coptic} (= \p{Script_Extensions=
                              Coptic}) (NOT \p{Block=Coptic}) (165)
    \p{Qaai}                \p{Inherited} (= \p{Script_Extensions=
@@ -5108,7 +5169,7 @@ stable.
    \p{Runr}                \p{Runic} (= \p{Script_Extensions=Runic})
                              (NOT \p{Block=Runic}) (86)
    \p{S} \pS               \p{Symbol} (= \p{General_Category=Symbol})
-                             (7741)
+                             (7770)
    \p{Samaritan}           \p{Script_Extensions=Samaritan} (Short:
                              \p{Samr}; NOT \p{Block=Samaritan}) (61)
    \p{Samr}                \p{Samaritan} (= \p{Script_Extensions=
@@ -5138,8 +5199,8 @@ stable.
    \p{Script: Anatolian_Hieroglyphs} \p{Script_Extensions=
                              Anatolian_Hieroglyphs} (Short: \p{Sc=
                              Hluw}, \p{Hluw}) (583)
-   \p{Script: Arab}        \p{Script=Arabic} (1365)
-   \p{Script: Arabic}      (Short: \p{Sc=Arab}) (1365: U+0600..0604,
+   \p{Script: Arab}        \p{Script=Arabic} (1368)
+   \p{Script: Arabic}      (Short: \p{Sc=Arab}) (1368: U+0600..0604,
                              U+0606..060B, U+060D..061A,
                              U+061C..061E, U+0620..063F, U+0641..064A
                              ...)
@@ -5220,7 +5281,7 @@ stable.
                              \p{Sc=Chrs}, \p{Chrs}) (28)
    \p{Script: Chrs}        \p{Script=Chorasmian} (=
                              \p{Script_Extensions=Chorasmian}) (28)
-   \p{Script: Common}      (Short: \p{Sc=Zyyy}) (8252: [\x00-\x20!
+   \p{Script: Common}      (Short: \p{Sc=Zyyy}) (8301: [\x00-\x20!
                              \"#\$\%&\'\(\)*+,\-.\/0-9:;<=>?\@\[\\\]
                              \^_`\{\|\}~\x7f-\xa9\xab-\xb9\xbb-\xbf
                              \xd7\xf7], U+02B9..02DF, U+02E5..02E9,
@@ -5236,15 +5297,16 @@ stable.
                              U+10808, U+1080A..10835, U+10837..10838,
                              U+1083C, U+1083F)
    \p{Script: Cypro_Minoan} (Short: \p{Sc=Cpmn}) (99: U+12F90..12FF2)
-   \p{Script: Cyrillic}    (Short: \p{Sc=Cyrl}) (443: U+0400..0484,
+   \p{Script: Cyrillic}    (Short: \p{Sc=Cyrl}) (506: U+0400..0484,
                              U+0487..052F, U+1C80..1C88, U+1D2B,
                              U+1D78, U+2DE0..2DFF ...)
-   \p{Script: Cyrl}        \p{Script=Cyrillic} (443)
+   \p{Script: Cyrl}        \p{Script=Cyrillic} (506)
    \p{Script: Deseret}     \p{Script_Extensions=Deseret} (Short:
                              \p{Sc=Dsrt}, \p{Dsrt}) (80)
-   \p{Script: Deva}        \p{Script=Devanagari} (154)
-   \p{Script: Devanagari}  (Short: \p{Sc=Deva}) (154: U+0900..0950,
-                             U+0955..0963, U+0966..097F, U+A8E0..A8FF)
+   \p{Script: Deva}        \p{Script=Devanagari} (164)
+   \p{Script: Devanagari}  (Short: \p{Sc=Deva}) (164: U+0900..0950,
+                             U+0955..0963, U+0966..097F,
+                             U+A8E0..A8FF, U+11B00..11B09)
    \p{Script: Diak}        \p{Script=Dives_Akuru} (=
                              \p{Script_Extensions=Dives_Akuru}) (72)
    \p{Script: Dives_Akuru} \p{Script_Extensions=Dives_Akuru} (Short:
@@ -5259,10 +5321,10 @@ stable.
                              U+1BC90..1BC99, U+1BC9C..1BC9F)
    \p{Script: Egyp}        \p{Script=Egyptian_Hieroglyphs} (=
                              \p{Script_Extensions=
-                             Egyptian_Hieroglyphs}) (1080)
+                             Egyptian_Hieroglyphs}) (1110)
    \p{Script: Egyptian_Hieroglyphs} \p{Script_Extensions=
                              Egyptian_Hieroglyphs} (Short: \p{Sc=
-                             Egyp}, \p{Egyp}) (1080)
+                             Egyp}, \p{Egyp}) (1110)
    \p{Script: Elba}        \p{Script=Elbasan} (=
                              \p{Script_Extensions=Elbasan}) (40)
    \p{Script: Elbasan}     \p{Script_Extensions=Elbasan} (Short:
@@ -5313,7 +5375,7 @@ stable.
                              U+0A13..0A28, U+0A2A..0A30, U+0A32..0A33
                              ...)
    \p{Script: Guru}        \p{Script=Gurmukhi} (80)
-   \p{Script: Han}         (Short: \p{Sc=Han}) (94_215: U+2E80..2E99,
+   \p{Script: Han}         (Short: \p{Sc=Han}) (98_408: U+2E80..2E99,
                              U+2E9B..2EF3, U+2F00..2FD5, U+3005,
                              U+3007, U+3021..3029 ...)
    \p{Script: Hang}        \p{Script=Hangul} (11_739)
@@ -5321,7 +5383,7 @@ stable.
                              U+1100..11FF, U+302E..302F,
                              U+3131..318E, U+3200..321E,
                              U+3260..327E, U+A960..A97C ...)
-   \p{Script: Hani}        \p{Script=Han} (94_215)
+   \p{Script: Hani}        \p{Script=Han} (98_408)
    \p{Script: Hanifi_Rohingya} (Short: \p{Sc=Rohg}) (50:
                              U+10D00..10D27, U+10D30..10D39)
    \p{Script: Hano}        \p{Script=Hanunoo} (21)
@@ -5334,9 +5396,9 @@ stable.
                              Hebrew}) (134)
    \p{Script: Hebrew}      \p{Script_Extensions=Hebrew} (Short:
                              \p{Sc=Hebr}, \p{Hebr}) (134)
-   \p{Script: Hira}        \p{Script=Hiragana} (380)
-   \p{Script: Hiragana}    (Short: \p{Sc=Hira}) (380: U+3041..3096,
-                             U+309D..309F, U+1B001..1B11F,
+   \p{Script: Hira}        \p{Script=Hiragana} (381)
+   \p{Script: Hiragana}    (Short: \p{Sc=Hira}) (381: U+3041..3096,
+                             U+309D..309F, U+1B001..1B11F, U+1B132,
                              U+1B150..1B152, U+1F200)
    \p{Script: Hluw}        \p{Script=Anatolian_Hieroglyphs} (=
                              \p{Script_Extensions=
@@ -5369,15 +5431,17 @@ stable.
    \p{Script: Kaithi}      (Short: \p{Sc=Kthi}) (68: U+11080..110C2,
                              U+110CD)
    \p{Script: Kali}        \p{Script=Kayah_Li} (47)
-   \p{Script: Kana}        \p{Script=Katakana} (320)
-   \p{Script: Kannada}     (Short: \p{Sc=Knda}) (90: U+0C80..0C8C,
+   \p{Script: Kana}        \p{Script=Katakana} (321)
+   \p{Script: Kannada}     (Short: \p{Sc=Knda}) (91: U+0C80..0C8C,
                              U+0C8E..0C90, U+0C92..0CA8,
                              U+0CAA..0CB3, U+0CB5..0CB9, U+0CBC..0CC4
                              ...)
-   \p{Script: Katakana}    (Short: \p{Sc=Kana}) (320: U+30A1..30FA,
+   \p{Script: Katakana}    (Short: \p{Sc=Kana}) (321: U+30A1..30FA,
                              U+30FD..30FF, U+31F0..31FF,
                              U+32D0..32FE, U+3300..3357, U+FF66..FF6F
                              ...)
+   \p{Script: Kawi}        \p{Script_Extensions=Kawi} (Short: \p{Sc=
+                             Kawi}, \p{Kawi}) (86)
    \p{Script: Kayah_Li}    (Short: \p{Sc=Kali}) (47: U+A900..A92D,
                              U+A92F)
    \p{Script: Khar}        \p{Script=Kharoshthi} (=
@@ -5391,28 +5455,28 @@ stable.
                              Khmr}, \p{Khmr}) (146)
    \p{Script: Khmr}        \p{Script=Khmer} (= \p{Script_Extensions=
                              Khmer}) (146)
-   \p{Script: Khoj}        \p{Script=Khojki} (62)
-   \p{Script: Khojki}      (Short: \p{Sc=Khoj}) (62: U+11200..11211,
-                             U+11213..1123E)
+   \p{Script: Khoj}        \p{Script=Khojki} (65)
+   \p{Script: Khojki}      (Short: \p{Sc=Khoj}) (65: U+11200..11211,
+                             U+11213..11241)
    \p{Script: Khudawadi}   (Short: \p{Sc=Sind}) (69: U+112B0..112EA,
                              U+112F0..112F9)
    \p{Script: Kits}        \p{Script=Khitan_Small_Script} (=
                              \p{Script_Extensions=
                              Khitan_Small_Script}) (471)
-   \p{Script: Knda}        \p{Script=Kannada} (90)
+   \p{Script: Knda}        \p{Script=Kannada} (91)
    \p{Script: Kthi}        \p{Script=Kaithi} (68)
    \p{Script: Lana}        \p{Script=Tai_Tham} (=
                              \p{Script_Extensions=Tai_Tham}) (127)
    \p{Script: Lao}         \p{Script_Extensions=Lao} (Short: \p{Sc=
-                             Lao}, \p{Lao}) (82)
+                             Lao}, \p{Lao}) (83)
    \p{Script: Laoo}        \p{Script=Lao} (= \p{Script_Extensions=
-                             Lao}) (82)
-   \p{Script: Latin}       (Short: \p{Sc=Latn}) (1475: [A-Za-z\xaa
+                             Lao}) (83)
+   \p{Script: Latin}       (Short: \p{Sc=Latn}) (1481: [A-Za-z\xaa
                              \xba\xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..02B8, U+02E0..02E4,
                              U+1D00..1D25, U+1D2C..1D5C, U+1D62..1D65
                              ...)
-   \p{Script: Latn}        \p{Script=Latin} (1475)
+   \p{Script: Latn}        \p{Script=Latin} (1481)
    \p{Script: Lepc}        \p{Script=Lepcha} (= \p{Script_Extensions=
                              Lepcha}) (74)
    \p{Script: Lepcha}      \p{Script_Extensions=Lepcha} (Short:
@@ -5510,6 +5574,10 @@ stable.
    \p{Script: Mymr}        \p{Script=Myanmar} (223)
    \p{Script: Nabataean}   \p{Script_Extensions=Nabataean} (Short:
                              \p{Sc=Nbat}, \p{Nbat}) (40)
+   \p{Script: Nag_Mundari} \p{Script_Extensions=Nag_Mundari} (Short:
+                             \p{Sc=Nagm}, \p{Nagm}) (42)
+   \p{Script: Nagm}        \p{Script=Nag_Mundari} (=
+                             \p{Script_Extensions=Nag_Mundari}) (42)
    \p{Script: Nand}        \p{Script=Nandinagari} (65)
    \p{Script: Nandinagari} (Short: \p{Sc=Nand}) (65: U+119A0..119A7,
                              U+119AA..119D7, U+119DA..119E4)
@@ -5724,7 +5792,7 @@ stable.
    \p{Script: Ugaritic}    \p{Script_Extensions=Ugaritic} (Short:
                              \p{Sc=Ugar}, \p{Ugar}) (31)
    \p{Script: Unknown}     \p{Script_Extensions=Unknown} (Short:
-                             \p{Sc=Zzzz}, \p{Zzzz}) (969_350 plus all
+                             \p{Sc=Zzzz}, \p{Zzzz}) (964_861 plus all
                              above-Unicode code points)
    \p{Script: Vai}         \p{Script_Extensions=Vai} (Short: \p{Sc=
                              Vai}, \p{Vai}) (300)
@@ -5759,9 +5827,9 @@ stable.
                              \p{Script_Extensions=Zanabazar_Square})
                              (72)
    \p{Script: Zinh}        \p{Script=Inherited} (657)
-   \p{Script: Zyyy}        \p{Script=Common} (8252)
+   \p{Script: Zyyy}        \p{Script=Common} (8301)
    \p{Script: Zzzz}        \p{Script=Unknown} (=
-                             \p{Script_Extensions=Unknown}) (969_350
+                             \p{Script_Extensions=Unknown}) (964_861
                              plus all above-Unicode code points)
    \p{Script_Extensions: Adlam} (Short: \p{Scx=Adlm}, \p{Adlm}) (90:
                              U+061F, U+0640, U+1E900..1E94B,
@@ -5774,9 +5842,9 @@ stable.
                              U+11730..11746)
    \p{Script_Extensions: Anatolian_Hieroglyphs} (Short: \p{Scx=Hluw},
                              \p{Hluw}) (583: U+14400..14646)
-   \p{Script_Extensions: Arab} \p{Script_Extensions=Arabic} (1411)
+   \p{Script_Extensions: Arab} \p{Script_Extensions=Arabic} (1414)
    \p{Script_Extensions: Arabic} (Short: \p{Scx=Arab}, \p{Arab})
-                             (1411: U+0600..0604, U+0606..06DC,
+                             (1414: U+0600..0604, U+0606..06DC,
                              U+06DE..06FF, U+0750..077F,
                              U+0870..088E, U+0890..0891 ...)
    \p{Script_Extensions: Armenian} (Short: \p{Scx=Armn}, \p{Armn})
@@ -5852,7 +5920,7 @@ stable.
                              (28: U+10FB0..10FCB)
    \p{Script_Extensions: Chrs} \p{Script_Extensions=Chorasmian} (28)
    \p{Script_Extensions: Common} (Short: \p{Scx=Zyyy}, \p{Zyyy})
-                             (7824: [\x00-\x20!\"#\$\%&\'\(\)*+,\-.
+                             (7873: [\x00-\x20!\"#\$\%&\'\(\)*+,\-.
                              \/0-9:;<=>?\@\[\\\]\^_`\{\|\}~\x7f-\xa9
                              \xab-\xb9\xbb-\xbf\xd7\xf7],
                              U+02B9..02DF, U+02E5..02E9,
@@ -5875,14 +5943,14 @@ stable.
                              \p{Cpmn}) (101: U+10100..10101,
                              U+12F90..12FF2)
    \p{Script_Extensions: Cyrillic} (Short: \p{Scx=Cyrl}, \p{Cyrl})
-                             (447: U+0400..052F, U+1C80..1C88,
+                             (510: U+0400..052F, U+1C80..1C88,
                              U+1D2B, U+1D78, U+1DF8, U+2DE0..2DFF ...)
-   \p{Script_Extensions: Cyrl} \p{Script_Extensions=Cyrillic} (447)
+   \p{Script_Extensions: Cyrl} \p{Script_Extensions=Cyrillic} (510)
    \p{Script_Extensions: Deseret} (Short: \p{Scx=Dsrt}, \p{Dsrt})
                              (80: U+10400..1044F)
-   \p{Script_Extensions: Deva} \p{Script_Extensions=Devanagari} (210)
+   \p{Script_Extensions: Deva} \p{Script_Extensions=Devanagari} (220)
    \p{Script_Extensions: Devanagari} (Short: \p{Scx=Deva}, \p{Deva})
-                             (210: U+0900..0952, U+0955..097F,
+                             (220: U+0900..0952, U+0955..097F,
                              U+1CD0..1CF6, U+1CF8..1CF9, U+20F0,
                              U+A830..A839 ...)
    \p{Script_Extensions: Diak} \p{Script_Extensions=Dives_Akuru} (72)
@@ -5901,10 +5969,9 @@ stable.
                              U+1BC80..1BC88, U+1BC90..1BC99,
                              U+1BC9C..1BCA3)
    \p{Script_Extensions: Egyp} \p{Script_Extensions=
-                             Egyptian_Hieroglyphs} (1080)
+                             Egyptian_Hieroglyphs} (1110)
    \p{Script_Extensions: Egyptian_Hieroglyphs} (Short: \p{Scx=Egyp},
-                             \p{Egyp}) (1080: U+13000..1342E,
-                             U+13430..13438)
+                             \p{Egyp}) (1110: U+13000..13455)
    \p{Script_Extensions: Elba} \p{Script_Extensions=Elbasan} (40)
    \p{Script_Extensions: Elbasan} (Short: \p{Scx=Elba}, \p{Elba})
                              (40: U+10500..10527)
@@ -5956,7 +6023,7 @@ stable.
                              U+0A01..0A03, U+0A05..0A0A,
                              U+0A0F..0A10, U+0A13..0A28 ...)
    \p{Script_Extensions: Guru} \p{Script_Extensions=Gurmukhi} (94)
-   \p{Script_Extensions: Han} (Short: \p{Scx=Han}, \p{Han}) (94_503:
+   \p{Script_Extensions: Han} (Short: \p{Scx=Han}, \p{Han}) (98_696:
                              U+2E80..2E99, U+2E9B..2EF3,
                              U+2F00..2FD5, U+3001..3003,
                              U+3005..3011, U+3013..301F ...)
@@ -5965,7 +6032,7 @@ stable.
                              (11_775: U+1100..11FF, U+3001..3003,
                              U+3008..3011, U+3013..301F,
                              U+302E..3030, U+3037 ...)
-   \p{Script_Extensions: Hani} \p{Script_Extensions=Han} (94_503)
+   \p{Script_Extensions: Hani} \p{Script_Extensions=Han} (98_696)
    \p{Script_Extensions: Hanifi_Rohingya} (Short: \p{Scx=Rohg},
                              \p{Rohg}) (55: U+060C, U+061B, U+061F,
                              U+0640, U+06D4, U+10D00..10D27 ...)
@@ -5981,9 +6048,9 @@ stable.
                              (134: U+0591..05C7, U+05D0..05EA,
                              U+05EF..05F4, U+FB1D..FB36,
                              U+FB38..FB3C, U+FB3E ...)
-   \p{Script_Extensions: Hira} \p{Script_Extensions=Hiragana} (432)
+   \p{Script_Extensions: Hira} \p{Script_Extensions=Hiragana} (433)
    \p{Script_Extensions: Hiragana} (Short: \p{Scx=Hira}, \p{Hira})
-                             (432: U+3001..3003, U+3008..3011,
+                             (433: U+3001..3003, U+3008..3011,
                              U+3013..301F, U+3030..3035, U+3037,
                              U+303C..303D ...)
    \p{Script_Extensions: Hluw} \p{Script_Extensions=
@@ -6016,15 +6083,18 @@ stable.
                              U+0966..096F, U+A830..A839,
                              U+11080..110C2, U+110CD)
    \p{Script_Extensions: Kali} \p{Script_Extensions=Kayah_Li} (48)
-   \p{Script_Extensions: Kana} \p{Script_Extensions=Katakana} (372)
+   \p{Script_Extensions: Kana} \p{Script_Extensions=Katakana} (373)
    \p{Script_Extensions: Kannada} (Short: \p{Scx=Knda}, \p{Knda})
-                             (105: U+0951..0952, U+0964..0965,
+                             (106: U+0951..0952, U+0964..0965,
                              U+0C80..0C8C, U+0C8E..0C90,
                              U+0C92..0CA8, U+0CAA..0CB3 ...)
    \p{Script_Extensions: Katakana} (Short: \p{Scx=Kana}, \p{Kana})
-                             (372: U+3001..3003, U+3008..3011,
+                             (373: U+3001..3003, U+3008..3011,
                              U+3013..301F, U+3030..3035, U+3037,
                              U+303C..303D ...)
+   \p{Script_Extensions: Kawi} (Short: \p{Scx=Kawi}, \p{Kawi}) (86:
+                             U+11F00..11F10, U+11F12..11F3A,
+                             U+11F3E..11F59)
    \p{Script_Extensions: Kayah_Li} (Short: \p{Scx=Kali}, \p{Kali})
                              (48: U+A900..A92F)
    \p{Script_Extensions: Khar} \p{Script_Extensions=Kharoshthi} (68)
@@ -6038,28 +6108,28 @@ stable.
                              U+1780..17DD, U+17E0..17E9,
                              U+17F0..17F9, U+19E0..19FF)
    \p{Script_Extensions: Khmr} \p{Script_Extensions=Khmer} (146)
-   \p{Script_Extensions: Khoj} \p{Script_Extensions=Khojki} (82)
-   \p{Script_Extensions: Khojki} (Short: \p{Scx=Khoj}, \p{Khoj}) (82:
+   \p{Script_Extensions: Khoj} \p{Script_Extensions=Khojki} (85)
+   \p{Script_Extensions: Khojki} (Short: \p{Scx=Khoj}, \p{Khoj}) (85:
                              U+0AE6..0AEF, U+A830..A839,
-                             U+11200..11211, U+11213..1123E)
+                             U+11200..11211, U+11213..11241)
    \p{Script_Extensions: Khudawadi} (Short: \p{Scx=Sind}, \p{Sind})
                              (81: U+0964..0965, U+A830..A839,
                              U+112B0..112EA, U+112F0..112F9)
    \p{Script_Extensions: Kits} \p{Script_Extensions=
                              Khitan_Small_Script} (471)
-   \p{Script_Extensions: Knda} \p{Script_Extensions=Kannada} (105)
+   \p{Script_Extensions: Knda} \p{Script_Extensions=Kannada} (106)
    \p{Script_Extensions: Kthi} \p{Script_Extensions=Kaithi} (88)
    \p{Script_Extensions: Lana} \p{Script_Extensions=Tai_Tham} (127)
-   \p{Script_Extensions: Lao} (Short: \p{Scx=Lao}, \p{Lao}) (82:
+   \p{Script_Extensions: Lao} (Short: \p{Scx=Lao}, \p{Lao}) (83:
                              U+0E81..0E82, U+0E84, U+0E86..0E8A,
                              U+0E8C..0EA3, U+0EA5, U+0EA7..0EBD ...)
-   \p{Script_Extensions: Laoo} \p{Script_Extensions=Lao} (82)
+   \p{Script_Extensions: Laoo} \p{Script_Extensions=Lao} (83)
    \p{Script_Extensions: Latin} (Short: \p{Scx=Latn}, \p{Latn})
-                             (1504: [A-Za-z\xaa\xba\xc0-\xd6\xd8-
+                             (1510: [A-Za-z\xaa\xba\xc0-\xd6\xd8-
                              \xf6\xf8-\xff], U+0100..02B8,
                              U+02E0..02E4, U+0363..036F,
                              U+0485..0486, U+0951..0952 ...)
-   \p{Script_Extensions: Latn} \p{Script_Extensions=Latin} (1504)
+   \p{Script_Extensions: Latn} \p{Script_Extensions=Latin} (1510)
    \p{Script_Extensions: Lepc} \p{Script_Extensions=Lepcha} (74)
    \p{Script_Extensions: Lepcha} (Short: \p{Scx=Lepc}, \p{Lepc}) (74:
                              U+1C00..1C37, U+1C3B..1C49, U+1C4D..1C4F)
@@ -6158,6 +6228,9 @@ stable.
    \p{Script_Extensions: Mymr} \p{Script_Extensions=Myanmar} (224)
    \p{Script_Extensions: Nabataean} (Short: \p{Scx=Nbat}, \p{Nbat})
                              (40: U+10880..1089E, U+108A7..108AF)
+   \p{Script_Extensions: Nag_Mundari} (Short: \p{Scx=Nagm}, \p{Nagm})
+                             (42: U+1E4D0..1E4F9)
+   \p{Script_Extensions: Nagm} \p{Script_Extensions=Nag_Mundari} (42)
    \p{Script_Extensions: Nand} \p{Script_Extensions=Nandinagari} (86)
    \p{Script_Extensions: Nandinagari} (Short: \p{Scx=Nand}, \p{Nand})
                              (86: U+0964..0965, U+0CE6..0CEF, U+1CE9,
@@ -6369,7 +6442,7 @@ stable.
    \p{Script_Extensions: Ugaritic} (Short: \p{Scx=Ugar}, \p{Ugar})
                              (31: U+10380..1039D, U+1039F)
    \p{Script_Extensions: Unknown} (Short: \p{Scx=Zzzz}, \p{Zzzz})
-                             (969_350 plus all above-Unicode code
+                             (964_861 plus all above-Unicode code
                              points: U+0378..0379, U+0380..0383,
                              U+038B, U+038D, U+03A2, U+0530 ...)
    \p{Script_Extensions: Vai} (Short: \p{Scx=Vai}, \p{Vai}) (300:
@@ -6402,11 +6475,11 @@ stable.
    \p{Script_Extensions: Zanb} \p{Script_Extensions=Zanabazar_Square}
                              (72)
    \p{Script_Extensions: Zinh} \p{Script_Extensions=Inherited} (586)
-   \p{Script_Extensions: Zyyy} \p{Script_Extensions=Common} (7824)
-   \p{Script_Extensions: Zzzz} \p{Script_Extensions=Unknown} (969_350
+   \p{Script_Extensions: Zyyy} \p{Script_Extensions=Common} (7873)
+   \p{Script_Extensions: Zzzz} \p{Script_Extensions=Unknown} (964_861
                              plus all above-Unicode code points)
    \p{Scx: *}              \p{Script_Extensions: *}
-   \p{SD}                  \p{Soft_Dotted} (= \p{Soft_Dotted=Y}) (47)
+   \p{SD}                  \p{Soft_Dotted} (= \p{Soft_Dotted=Y}) (50)
    \p{SD: *}               \p{Soft_Dotted: *}
    \p{Sentence_Break: AT}  \p{Sentence_Break=ATerm} (4)
    \p{Sentence_Break: ATerm} (Short: \p{SB=AT}) (4: [.], U+2024,
@@ -6417,29 +6490,29 @@ stable.
                              U+169B..169C, U+2018..201F,
                              U+2039..203A, U+2045..2046 ...)
    \p{Sentence_Break: CR}  (Short: \p{SB=CR}) (1: [\r])
-   \p{Sentence_Break: EX}  \p{Sentence_Break=Extend} (2508)
-   \p{Sentence_Break: Extend} (Short: \p{SB=EX}) (2508: U+0300..036F,
+   \p{Sentence_Break: EX}  \p{Sentence_Break=Extend} (2550)
+   \p{Sentence_Break: Extend} (Short: \p{SB=EX}) (2550: U+0300..036F,
                              U+0483..0489, U+0591..05BD, U+05BF,
                              U+05C1..05C2, U+05C4..05C5 ...)
-   \p{Sentence_Break: FO}  \p{Sentence_Break=Format} (65)
-   \p{Sentence_Break: Format} (Short: \p{SB=FO}) (65: [\xad],
+   \p{Sentence_Break: FO}  \p{Sentence_Break=Format} (72)
+   \p{Sentence_Break: Format} (Short: \p{SB=FO}) (72: [\xad],
                              U+0600..0605, U+061C, U+06DD, U+070F,
                              U+0890..0891 ...)
-   \p{Sentence_Break: LE}  \p{Sentence_Break=OLetter} (127_761)
+   \p{Sentence_Break: LE}  \p{Sentence_Break=OLetter} (132_036)
    \p{Sentence_Break: LF}  (Short: \p{SB=LF}) (1: [\n])
-   \p{Sentence_Break: LO}  \p{Sentence_Break=Lower} (2424)
-   \p{Sentence_Break: Lower} (Short: \p{SB=LO}) (2424: [a-z\xaa\xb5
+   \p{Sentence_Break: LO}  \p{Sentence_Break=Lower} (2497)
+   \p{Sentence_Break: Lower} (Short: \p{SB=LO}) (2497: [a-z\xaa\xb5
                              \xba\xdf-\xf6\xf8-\xff], U+0101, U+0103,
                              U+0105, U+0107, U+0109 ...)
-   \p{Sentence_Break: NU}  \p{Sentence_Break=Numeric} (662)
-   \p{Sentence_Break: Numeric} (Short: \p{SB=NU}) (662: [0-9],
+   \p{Sentence_Break: NU}  \p{Sentence_Break=Numeric} (682)
+   \p{Sentence_Break: Numeric} (Short: \p{SB=NU}) (682: [0-9],
                              U+0660..0669, U+066B..066C,
                              U+06F0..06F9, U+07C0..07C9, U+0966..096F
                              ...)
-   \p{Sentence_Break: OLetter} (Short: \p{SB=LE}) (127_761: U+01BB,
+   \p{Sentence_Break: OLetter} (Short: \p{SB=LE}) (132_036: U+01BB,
                              U+01C0..01C3, U+0294, U+02B9..02BF,
                              U+02C6..02D1, U+02EC ...)
-   \p{Sentence_Break: Other} (Short: \p{SB=XX}) (978_357 plus all
+   \p{Sentence_Break: Other} (Short: \p{SB=XX}) (973_938 plus all
                              above-Unicode code points: [^\t\n\cK\f
                              \r\x20!\"\'\(\),\-.0-9:?A-Z\[\]a-z\{\}
                              \x85\xa0\xaa-\xab\xad\xb5\xba-\xbb\xc0-
@@ -6456,26 +6529,26 @@ stable.
    \p{Sentence_Break: Sp}  (Short: \p{SB=Sp}) (20: [\t\cK\f\x20\xa0],
                              U+1680, U+2000..200A, U+202F, U+205F,
                              U+3000)
-   \p{Sentence_Break: ST}  \p{Sentence_Break=STerm} (149)
-   \p{Sentence_Break: STerm} (Short: \p{SB=ST}) (149: [!?], U+0589,
+   \p{Sentence_Break: ST}  \p{Sentence_Break=STerm} (151)
+   \p{Sentence_Break: STerm} (Short: \p{SB=ST}) (151: [!?], U+0589,
                              U+061D..061F, U+06D4, U+0700..0702,
                              U+07F9 ...)
    \p{Sentence_Break: UP}  \p{Sentence_Break=Upper} (1936)
    \p{Sentence_Break: Upper} (Short: \p{SB=UP}) (1936: [A-Z\xc0-\xd6
                              \xd8-\xde], U+0100, U+0102, U+0104,
                              U+0106, U+0108 ...)
-   \p{Sentence_Break: XX}  \p{Sentence_Break=Other} (978_357 plus all
+   \p{Sentence_Break: XX}  \p{Sentence_Break=Other} (973_938 plus all
                              above-Unicode code points)
    \p{Sentence_Terminal}   \p{Sentence_Terminal=Y} (Short: \p{STerm})
-                             (152)
+                             (154)
    \p{Sentence_Terminal: N*} (Short: \p{STerm=N}, \P{STerm})
-                             (1_113_960 plus all above-Unicode code
+                             (1_113_958 plus all above-Unicode code
                              points: [\x00-\x20\"#\$\%&\'\(\)*+,\-
                              \/0-9:;<=>\@A-Z\[\\\]\^_`a-z\{\|\}~\x7f-
                              \xff], U+0100..0588, U+058A..061C,
                              U+0620..06D3, U+06D5..06FF, U+0703..07F8
                              ...)
-   \p{Sentence_Terminal: Y*} (Short: \p{STerm=Y}, \p{STerm}) (152:
+   \p{Sentence_Terminal: Y*} (Short: \p{STerm=Y}, \p{STerm}) (154:
                              [!.?], U+0589, U+061D..061F, U+06D4,
                              U+0700..0702, U+07F9 ...)
    \p{Separator}           \p{General_Category=Separator} (Short:
@@ -6520,16 +6593,16 @@ stable.
  X \p{Small_Kana_Extension} \p{Block=Small_Kana_Extension} (Short:
                              \p{InSmallKanaExt}) (64)
    \p{So}                  \p{Other_Symbol} (= \p{General_Category=
-                             Other_Symbol}) (6605)
-   \p{Soft_Dotted}         \p{Soft_Dotted=Y} (Short: \p{SD}) (47)
-   \p{Soft_Dotted: N*}     (Short: \p{SD=N}, \P{SD}) (1_114_065 plus
+                             Other_Symbol}) (6634)
+   \p{Soft_Dotted}         \p{Soft_Dotted=Y} (Short: \p{SD}) (50)
+   \p{Soft_Dotted: N*}     (Short: \p{SD=N}, \P{SD}) (1_114_062 plus
                              all above-Unicode code points: [\x00-
                              \x20!\"#\$\%&\'\(\)*+,\-.\/0-9:;<=>?\@A-
                              Z\[\\\]\^_`a-hk-z\{\|\}~\x7f-\xff],
                              U+0100..012E, U+0130..0248,
                              U+024A..0267, U+0269..029C, U+029E..02B1
                              ...)
-   \p{Soft_Dotted: Y*}     (Short: \p{SD=Y}, \p{SD}) (47: [i-j],
+   \p{Soft_Dotted: Y*}     (Short: \p{SD=Y}, \p{SD}) (50: [i-j],
                              U+012F, U+0249, U+0268, U+029D, U+02B2
                              ...)
    \p{Sogd}                \p{Sogdian} (= \p{Script_Extensions=
@@ -6555,12 +6628,12 @@ stable.
                              (Short: \p{Zs}) (17)
    \p{SpacePerl}           \p{XPosixSpace} (25)
    \p{Spacing_Mark}        \p{General_Category=Spacing_Mark} (Short:
-                             \p{Mc}) (445)
+                             \p{Mc}) (452)
  X \p{Spacing_Modifier_Letters} \p{Block=Spacing_Modifier_Letters}
                              (Short: \p{InModifierLetters}) (80)
  X \p{Specials}            \p{Block=Specials} (16)
    \p{STerm}               \p{Sentence_Terminal} (=
-                             \p{Sentence_Terminal=Y}) (152)
+                             \p{Sentence_Terminal=Y}) (154)
    \p{STerm: *}            \p{Sentence_Terminal: *}
    \p{Sund}                \p{Sundanese} (= \p{Script_Extensions=
                              Sundanese}) (NOT \p{Block=Sundanese})
@@ -6633,7 +6706,7 @@ stable.
                              \p{Sylo}; NOT \p{Block=Syloti_Nagri})
                              (57)
    \p{Symbol}              \p{General_Category=Symbol} (Short: \p{S})
-                             (7741)
+                             (7770)
  X \p{Symbols_And_Pictographs_Ext_A}
                              \p{Symbols_And_Pictographs_Extended_A}
                              (= \p{Block=
@@ -6703,18 +6776,18 @@ stable.
    \p{Telugu}              \p{Script_Extensions=Telugu} (Short:
                              \p{Telu}; NOT \p{Block=Telugu}) (106)
    \p{Term}                \p{Terminal_Punctuation} (=
-                             \p{Terminal_Punctuation=Y}) (276)
+                             \p{Terminal_Punctuation=Y}) (278)
    \p{Term: *}             \p{Terminal_Punctuation: *}
    \p{Terminal_Punctuation} \p{Terminal_Punctuation=Y} (Short:
-                             \p{Term}) (276)
+                             \p{Term}) (278)
    \p{Terminal_Punctuation: N*} (Short: \p{Term=N}, \P{Term})
-                             (1_113_836 plus all above-Unicode code
+                             (1_113_834 plus all above-Unicode code
                              points: [\x00-\x20\"#\$\%&\'\(\)*+\-\/0-
                              9<=>\@A-Z\[\\\]\^_`a-z\{\|\}~\x7f-\xff],
                              U+0100..037D, U+037F..0386,
                              U+0388..0588, U+058A..05C2, U+05C4..060B
                              ...)
-   \p{Terminal_Punctuation: Y*} (Short: \p{Term=Y}, \p{Term}) (276:
+   \p{Terminal_Punctuation: Y*} (Short: \p{Term=Y}, \p{Term}) (278:
                              [!,.:;?], U+037E, U+0387, U+0589,
                              U+05C3, U+060C ...)
    \p{Tfng}                \p{Tifinagh} (= \p{Script_Extensions=
@@ -6769,10 +6842,10 @@ stable.
    \p{Ugaritic}            \p{Script_Extensions=Ugaritic} (Short:
                              \p{Ugar}; NOT \p{Block=Ugaritic}) (31)
    \p{UIdeo}               \p{Unified_Ideograph} (=
-                             \p{Unified_Ideograph=Y}) (92_865)
+                             \p{Unified_Ideograph=Y}) (97_058)
    \p{UIdeo: *}            \p{Unified_Ideograph: *}
    \p{Unassigned}          \p{General_Category=Unassigned} (Short:
-                             \p{Cn}) (829_834 plus all above-Unicode
+                             \p{Cn}) (825_345 plus all above-Unicode
                              code points)
    \p{Unicode}             \p{Any} (1_114_112)
  X \p{Unified_Canadian_Aboriginal_Syllabics} \p{Block=
@@ -6785,18 +6858,18 @@ stable.
                              Unified_Canadian_Aboriginal_Syllabics_-
                              Extended_A} (Short: \p{InUCASExtA}) (16)
    \p{Unified_Ideograph}   \p{Unified_Ideograph=Y} (Short: \p{UIdeo})
-                             (92_865)
+                             (97_058)
    \p{Unified_Ideograph: N*} (Short: \p{UIdeo=N}, \P{UIdeo})
-                             (1_021_247 plus all above-Unicode code
+                             (1_017_054 plus all above-Unicode code
                              points: U+0000..33FF, U+4DC0..4DFF,
                              U+A000..FA0D, U+FA10, U+FA12,
                              U+FA15..FA1E ...)
-   \p{Unified_Ideograph: Y*} (Short: \p{UIdeo=Y}, \p{UIdeo}) (92_865:
+   \p{Unified_Ideograph: Y*} (Short: \p{UIdeo=Y}, \p{UIdeo}) (97_058:
                              U+3400..4DBF, U+4E00..9FFF,
                              U+FA0E..FA0F, U+FA11, U+FA13..FA14,
                              U+FA1F ...)
    \p{Unknown}             \p{Script_Extensions=Unknown} (Short:
-                             \p{Zzzz}) (969_350 plus all above-
+                             \p{Zzzz}) (964_861 plus all above-
                              Unicode code points)
    \p{Upper}               \p{XPosixUpper} (= \p{Uppercase=Y}) (/i=
                              Cased=Yes) (1951)
@@ -6840,9 +6913,9 @@ stable.
                              \p{InVedicExt}) (48)
  X \p{Vertical_Forms}      \p{Block=Vertical_Forms} (16)
    \p{Vertical_Orientation: R} \p{Vertical_Orientation=Rotated}
-                             (786_641 plus all above-Unicode code
+                             (786_609 plus all above-Unicode code
                              points)
-   \p{Vertical_Orientation: Rotated} (Short: \p{Vo=R}) (786_641 plus
+   \p{Vertical_Orientation: Rotated} (Short: \p{Vo=R}) (786_609 plus
                              all above-Unicode code points: [\x00-
                              \xa6\xa8\xaa-\xad\xaf-\xb0\xb2-\xbb\xbf-
                              \xd6\xd8-\xf6\xf8-\xff], U+0100..02E9,
@@ -6859,8 +6932,8 @@ stable.
    \p{Vertical_Orientation: Tu} \p{Vertical_Orientation=
                              Transformed_Upright} (148)
    \p{Vertical_Orientation: U} \p{Vertical_Orientation=Upright}
-                             (327_276)
-   \p{Vertical_Orientation: Upright} (Short: \p{Vo=U}) (327_276:
+                             (327_308)
+   \p{Vertical_Orientation: Upright} (Short: \p{Vo=U}) (327_308:
                              [\xa7\xa9\xae\xb1\xbc-\xbe\xd7\xf7],
                              U+02EA..02EB, U+1100..11FF,
                              U+1401..167F, U+18B0..18FF, U+2016 ...)
@@ -6897,8 +6970,8 @@ stable.
                              \n\cK\f\r\x20\x85\xa0], U+1680,
                              U+2000..200A, U+2028..2029, U+202F,
                              U+205F ...)
-   \p{Word}                \p{XPosixWord} (135_202)
-   \p{Word_Break: ALetter} (Short: \p{WB=LE}) (29_336: [A-Za-z\xaa
+   \p{Word}                \p{XPosixWord} (139_612)
+   \p{Word_Break: ALetter} (Short: \p{WB=LE}) (29_489: [A-Za-z\xaa
                              \xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..02D7, U+02DE..02FF,
                              U+0370..0374, U+0376..0377, U+037A..037D
@@ -6913,15 +6986,15 @@ stable.
    \p{Word_Break: EBG}     \p{Word_Break=E_Base_GAZ} (0)
    \p{Word_Break: EM}      \p{Word_Break=E_Modifier} (0)
    \p{Word_Break: EX}      \p{Word_Break=ExtendNumLet} (11)
-   \p{Word_Break: Extend}  (Short: \p{WB=Extend}) (2512:
+   \p{Word_Break: Extend}  (Short: \p{WB=Extend}) (2554:
                              U+0300..036F, U+0483..0489,
                              U+0591..05BD, U+05BF, U+05C1..05C2,
                              U+05C4..05C5 ...)
    \p{Word_Break: ExtendNumLet} (Short: \p{WB=EX}) (11: [_], U+202F,
                              U+203F..2040, U+2054, U+FE33..FE34,
                              U+FE4D..FE4F ...)
-   \p{Word_Break: FO}      \p{Word_Break=Format} (64)
-   \p{Word_Break: Format}  (Short: \p{WB=FO}) (64: [\xad],
+   \p{Word_Break: FO}      \p{Word_Break=Format} (71)
+   \p{Word_Break: Format}  (Short: \p{WB=FO}) (71: [\xad],
                              U+0600..0605, U+061C, U+06DD, U+070F,
                              U+0890..0891 ...)
    \p{Word_Break: GAZ}     \p{Word_Break=Glue_After_Zwj} (0)
@@ -6931,12 +7004,12 @@ stable.
                              U+FB1F..FB28, U+FB2A..FB36, U+FB38..FB3C
                              ...)
    \p{Word_Break: HL}      \p{Word_Break=Hebrew_Letter} (75)
-   \p{Word_Break: KA}      \p{Word_Break=Katakana} (330)
-   \p{Word_Break: Katakana} (Short: \p{WB=KA}) (330: U+3031..3035,
+   \p{Word_Break: KA}      \p{Word_Break=Katakana} (331)
+   \p{Word_Break: Katakana} (Short: \p{WB=KA}) (331: U+3031..3035,
                              U+309B..309C, U+30A0..30FA,
                              U+30FC..30FF, U+31F0..31FF, U+32D0..32FE
                              ...)
-   \p{Word_Break: LE}      \p{Word_Break=ALetter} (29_336)
+   \p{Word_Break: LE}      \p{Word_Break=ALetter} (29_489)
    \p{Word_Break: LF}      (Short: \p{WB=LF}) (1: [\n])
    \p{Word_Break: MB}      \p{Word_Break=MidNumLet} (7)
    \p{Word_Break: MidLetter} (Short: \p{WB=ML}) (9: [:\xb7], U+0387,
@@ -6951,11 +7024,11 @@ stable.
    \p{Word_Break: Newline} (Short: \p{WB=NL}) (5: [\cK\f\x85],
                              U+2028..2029)
    \p{Word_Break: NL}      \p{Word_Break=Newline} (5)
-   \p{Word_Break: NU}      \p{Word_Break=Numeric} (661)
-   \p{Word_Break: Numeric} (Short: \p{WB=NU}) (661: [0-9],
+   \p{Word_Break: NU}      \p{Word_Break=Numeric} (681)
+   \p{Word_Break: Numeric} (Short: \p{WB=NU}) (681: [0-9],
                              U+0660..0669, U+066B, U+06F0..06F9,
                              U+07C0..07C9, U+0966..096F ...)
-   \p{Word_Break: Other}   (Short: \p{WB=XX}) (1_081_042 plus all
+   \p{Word_Break: Other}   (Short: \p{WB=XX}) (1_080_819 plus all
                              above-Unicode code points: [^\n\cK\f\r
                              \x20\"\',.0-9:;A-Z_a-z\x85\xaa\xad\xb5
                              \xb7\xba\xc0-\xd6\xd8-\xf6\xf8-\xff],
@@ -6969,54 +7042,54 @@ stable.
    \p{Word_Break: WSegSpace} (Short: \p{WB=WSegSpace}) (14: [\x20],
                              U+1680, U+2000..2006, U+2008..200A,
                              U+205F, U+3000)
-   \p{Word_Break: XX}      \p{Word_Break=Other} (1_081_042 plus all
+   \p{Word_Break: XX}      \p{Word_Break=Other} (1_080_819 plus all
                              above-Unicode code points)
    \p{Word_Break: ZWJ}     (Short: \p{WB=ZWJ}) (1: U+200D)
    \p{WSpace}              \p{White_Space} (= \p{White_Space=Y}) (25)
    \p{WSpace: *}           \p{White_Space: *}
    \p{XDigit}              \p{XPosixXDigit} (= \p{Hex_Digit=Y}) (44)
    \p{XID_Continue}        \p{XID_Continue=Y} (Short: \p{XIDC})
-                             (135_053)
-   \p{XID_Continue: N*}    (Short: \p{XIDC=N}, \P{XIDC}) (979_059
+                             (139_463)
+   \p{XID_Continue: N*}    (Short: \p{XIDC=N}, \P{XIDC}) (974_649
                              plus all above-Unicode code points:
                              [\x00-\x20!\"#\$\%&\'\(\)*+,\-.\/:;<=>?
                              \@\[\\\]\^`\{\|\}~\x7f-\xa9\xab-\xb4
                              \xb6\xb8-\xb9\xbb-\xbf\xd7\xf7],
                              U+02C2..02C5, U+02D2..02DF,
                              U+02E5..02EB, U+02ED, U+02EF..02FF ...)
-   \p{XID_Continue: Y*}    (Short: \p{XIDC=Y}, \p{XIDC}) (135_053:
+   \p{XID_Continue: Y*}    (Short: \p{XIDC=Y}, \p{XIDC}) (139_463:
                              [0-9A-Z_a-z\xaa\xb5\xb7\xba\xc0-\xd6
                              \xd8-\xf6\xf8-\xff], U+0100..02C1,
                              U+02C6..02D1, U+02E0..02E4, U+02EC,
                              U+02EE ...)
-   \p{XID_Start}           \p{XID_Start=Y} (Short: \p{XIDS}) (131_974)
-   \p{XID_Start: N*}       (Short: \p{XIDS=N}, \P{XIDS}) (982_138
+   \p{XID_Start}           \p{XID_Start=Y} (Short: \p{XIDS}) (136_322)
+   \p{XID_Start: N*}       (Short: \p{XIDS=N}, \P{XIDS}) (977_790
                              plus all above-Unicode code points:
                              [\x00-\x20!\"#\$\%&\'\(\)*+,\-.\/0-9:;<=
                              >?\@\[\\\]\^_`\{\|\}~\x7f-\xa9\xab-\xb4
                              \xb6-\xb9\xbb-\xbf\xd7\xf7],
                              U+02C2..02C5, U+02D2..02DF,
                              U+02E5..02EB, U+02ED, U+02EF..036F ...)
-   \p{XID_Start: Y*}       (Short: \p{XIDS=Y}, \p{XIDS}) (131_974:
+   \p{XID_Start: Y*}       (Short: \p{XIDS=Y}, \p{XIDS}) (136_322:
                              [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6
                              \xf8-\xff], U+0100..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE ...)
    \p{XIDC}                \p{XID_Continue} (= \p{XID_Continue=Y})
-                             (135_053)
+                             (139_463)
    \p{XIDC: *}             \p{XID_Continue: *}
-   \p{XIDS}                \p{XID_Start} (= \p{XID_Start=Y}) (131_974)
+   \p{XIDS}                \p{XID_Start} (= \p{XID_Start=Y}) (136_322)
    \p{XIDS: *}             \p{XID_Start: *}
    \p{Xpeo}                \p{Old_Persian} (= \p{Script_Extensions=
                              Old_Persian}) (NOT \p{Block=
                              Old_Persian}) (50)
    \p{XPerlSpace}          \p{XPosixSpace} (25)
    \p{XPosixAlnum}         Alphabetic and (decimal) Numeric (Short:
-                             \p{Alnum}) (134_056: [0-9A-Za-z\xaa\xb5
+                             \p{Alnum}) (138_445: [0-9A-Za-z\xaa\xb5
                              \xba\xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE ...)
    \p{XPosixAlpha}         \p{Alphabetic=Y} (Short: \p{Alpha})
-                             (133_396)
+                             (137_765)
    \p{XPosixBlank}         \h, Horizontal white space (Short:
                              \p{Blank}) (18: [\t\x20\xa0], U+1680,
                              U+2000..200A, U+202F, U+205F, U+3000)
@@ -7024,21 +7097,21 @@ stable.
                              characters (Short: \p{Cc}) (65)
    \p{XPosixDigit}         \p{General_Category=Decimal_Number} [0-9]
                              + all other decimal digits (Short:
-                             \p{Nd}) (660)
+                             \p{Nd}) (680)
    \p{XPosixGraph}         Characters that are graphical (Short:
-                             \p{Graph}) (282_146: [!\"#\$\%&\'
+                             \p{Graph}) (286_635: [!\"#\$\%&\'
                              \(\)*+,\-.\/0-9:;<=>?\@A-Z\[\\\]\^_`a-z
                              \{\|\}~\xa1-\xff], U+0100..0377,
                              U+037A..037F, U+0384..038A, U+038C,
                              U+038E..03A1 ...)
    \p{XPosixLower}         \p{Lowercase=Y} (Short: \p{Lower}; /i=
-                             Cased=Yes) (2471)
+                             Cased=Yes) (2544)
    \p{XPosixPrint}         Characters that are graphical plus space
                              characters (but no controls) (Short:
-                             \p{Print}) (282_163: [\x20-\x7e\xa0-
+                             \p{Print}) (286_652: [\x20-\x7e\xa0-
                              \xff], U+0100..0377, U+037A..037F,
                              U+0384..038A, U+038C, U+038E..03A1 ...)
-   \p{XPosixPunct}         \p{Punct} + ASCII-range \p{Symbol} (828:
+   \p{XPosixPunct}         \p{Punct} + ASCII-range \p{Symbol} (851:
                              [!\"#\$\%&\'\(\)*+,\-.\/:;<=>?\@\[\\\]
                              \^_`\{\|\}~\xa1\xa7\xab\xb6-\xb7\xbb
                              \xbf], U+037E, U+0387, U+055A..055F,
@@ -7051,7 +7124,7 @@ stable.
                              Cased=Yes) (1951)
    \p{XPosixWord}          \w, including beyond ASCII; = \p{Alnum} +
                              \pM + \p{Pc} + \p{Join_Control} (Short:
-                             \p{Word}) (135_202: [0-9A-Z_a-z\xaa\xb5
+                             \p{Word}) (139_612: [0-9A-Z_a-z\xaa\xb5
                              \xba\xc0-\xd6\xd8-\xf6\xf8-\xff],
                              U+0100..02C1, U+02C6..02D1,
                              U+02E0..02E4, U+02EC, U+02EE ...)
@@ -7094,9 +7167,9 @@ stable.
                              \p{General_Category=Space_Separator})
                              (17)
    \p{Zyyy}                \p{Common} (= \p{Script_Extensions=
-                             Common}) (7824)
+                             Common}) (7873)
    \p{Zzzz}                \p{Unknown} (= \p{Script_Extensions=
-                             Unknown}) (969_350 plus all above-
+                             Unknown}) (964_861 plus all above-
                              Unicode code points)
 
 
@@ -7733,8 +7806,6 @@ Documentation of validation Tests
 
 =item F<BidiTest.txt> 
 
-=item F<NormTest.txt> 
-
 Validation Tests
 
 
@@ -7742,6 +7813,16 @@ Validation Tests
 =item F<CJKRadicals.txt> 
 
 Maps the kRSUnicode property values to corresponding code points
+
+
+
+=item F<confusables.txt> 
+
+=item F<confusablesSummary.txt> 
+
+=item F<intentional.txt> 
+
+Currently unused by Perl
 
 
 
Index: gnu/usr.bin/perl/pod/perlutil.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlutil.pod,v
diff -u -p -a -u -p -r1.6 perlutil.pod
--- gnu/usr.bin/perl/pod/perlutil.pod	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/pod/perlutil.pod	21 Feb 2024 15:47:03 -0000
@@ -121,9 +121,9 @@ another name.
 
 Back before Perl had the XS system for connecting with C libraries,
 programmers used to get library constants by reading through the C
-header files. You may still see C<require 'syscall.ph'> or similar
+header files. You may still see S<C<require 'syscall.ph'>> or similar
 around - the F<.ph> file should be created by running F<h2ph> on the
-corresponding F<.h> file. See the F<h2ph> documentation for more on how
+corresponding F<.h> file. See the L<h2ph> documentation for more on how
 to convert a whole bunch of header files at once.
 
 =item L<h2xs>
Index: gnu/usr.bin/perl/pod/perlvar.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlvar.pod,v
diff -u -p -a -u -p -r1.21 perlvar.pod
--- gnu/usr.bin/perl/pod/perlvar.pod	15 Feb 2023 01:36:35 -0000	1.21
+++ gnu/usr.bin/perl/pod/perlvar.pod	21 Feb 2024 15:47:03 -0000
@@ -542,6 +542,23 @@ by default inserted into C<%INC> in plac
 that the hook may have set the C<%INC> entry by itself to provide some more
 specific info.
 
+=item $INC
+X<$INC>
+
+As of 5.37.7 when an C<@INC> hook is executed the index of the C<@INC>
+array that holds the hook will be localized into the C<$INC> variable.
+When the hook returns the integer successor of its value will be used to
+determine the next index in C<@INC> that will be checked, thus if it is
+set to -1 (or C<undef>) the traversal over the C<@INC> array will be
+restarted from its beginning.
+
+Normally traversal through the C<@INC> array is from beginning to end
+(C<0 .. $#INC>), and if the C<@INC> array is modified by the hook the
+iterator may be left in a state where newly added entries are skipped.
+Changing this value allows an C<@INC> hook to rewrite the C<@INC> array
+and tell Perl where to continue afterwards. See L<perlfunc/require> for
+details on C<@INC> hooks.
+
 =item $INPLACE_EDIT
 
 =item $^I
@@ -577,13 +594,61 @@ Then
     $^M = 'a' x (1 << 16);
 
 would allocate a 64K buffer for use in an emergency.  See the
-F<INSTALL> file in the Perl distribution for information on how to
+L<INSTALL> file in the Perl distribution for information on how to
 add custom C compilation flags when compiling perl.  To discourage casual
 use of this advanced feature, there is no L<English|English> long name for
 this variable.
 
 This variable was added in Perl 5.004.
 
+=item ${^MAX_NESTED_EVAL_BEGIN_BLOCKS}
+
+This variable determines the maximum number C<eval EXPR>/C<BEGIN> or
+C<require>/C<BEGIN> block nesting that is allowed. This means it also
+controls the maximum nesting of C<use> statements as well.
+
+The default of 1000 should be sufficiently large for normal working
+purposes, and if you must raise it then you should be conservative
+with your choice or you may encounter segfaults from exhaustion of
+the C stack. It seems unlikely that real code has a use depth above
+1000, but we have left this configurable just in case.
+
+When set to C<0> then C<BEGIN> blocks inside of C<eval EXPR> or
+C<require EXPR> are forbidden entirely and will trigger an exception
+which will terminate the compilation and in the case of C<require>
+will throw an exception, or in the case of C<eval> return the error in
+C<$@> as usual.
+
+Consider the code
+
+ perl -le'sub f { eval "BEGIN { f() }"; } f()'
+
+each invocation of C<f()> will consume considerable C stack, and this
+variable is used to cause code like this to die instead of exhausting
+the C stack and triggering a segfault. Needless to say code like this is
+unusual, it is unlikely you will actually need to raise the setting.
+However it may be useful to set it to 0 for a limited time period to
+prevent BEGIN{} blocks from being executed during an C<eval EXPR>.
+
+Note that setting this to 1 would NOT affect code like this:
+
+    BEGIN { $n += 1; BEGIN { $n += 2; BEGIN { $n += 4 } } }
+
+The reason is that BEGIN blocks are executed immediately after they are
+completed, thus the innermost will execute before the ones which contain
+it have even finished compiling, and the depth will not go above 1. In
+fact the above code is equivalent to
+
+    BEGIN { $n+=4 }
+    BEGIN { $n+=2 }
+    BEGIN { $n+=1 }
+
+which makes it obvious why a ${^MAX_EVAL_BEGIN_DEPTH} of 1 would not
+block this code.
+
+Only C<BEGIN>'s executed inside of an C<eval> or C<require> (possibly via
+C<use>) are affected.
+
 =item $OSNAME
 
 =item $^O
@@ -682,7 +747,7 @@ The C<$SIG{__DIE__}> hook is called even
 never intended to happen this way, but an implementation glitch made
 this possible. This used to be deprecated, as it allowed strange action
 at a distance like rewriting a pending exception in C<$@>. Plans to
-rectify this have been scrapped, as users found that rewriting a 
+rectify this have been scrapped, as users found that rewriting a
 pending exception is actually a useful feature, and not a bug.
 
 The C<$SIG{__DIE__}> doesn't support C<'IGNORE'>; it has the same
@@ -714,6 +779,71 @@ and use an C<END{}> or CORE::GLOBAL::die
 See L<perlfunc/die>, L<perlfunc/warn>, L<perlfunc/eval>, and
 L<warnings> for additional information.
 
+=item %{^HOOK}
+X<%{^HOOK}>
+
+This hash contains coderefs which are called when various perl keywords
+which are hard or impossible to wrap are called. The keys of this hash
+are named after the keyword that is being hooked, followed by two
+underbars and then a phase term; either "before" or "after".
+
+Perl will throw an error if you attempt modify a key which is not
+documented to exist, or if you attempt to store anything other than a
+code reference or undef in the hash.  If you wish to use an object to
+implement a hook you can use currying to embed the object into an
+anonymous code reference.
+
+Currently there is only one keyword which can be hooked, C<require>, but
+it is expected that in future releases there will be additional keywords
+with hook support.
+
+=over 4
+
+=item require__before
+
+The routine indicated by C<${^HOOK}{require__before}> is called by
+C<require> B<before> it checks C<%INC>, looks up C<@INC>, calls INC
+hooks, or compiles any code.  It is called with a single argument, the
+filename for the item being required (package names are converted to
+paths).  It may alter this filename to change what file is loaded.  If
+the hook dies during execution then it will block the require from executing.
+
+In order to make it easy to perform an action with shared state both
+before and after the require keyword was executed the C<require__before>
+hook may return a "post-action" coderef which will in turn be executed when
+the C<require> completes.  This coderef will be executed regardless as to
+whether the require completed succesfully or threw an exception.  It will
+be called with the filename that was required.  You can check %INC to
+determine if the require was successful.  Any other return from the
+C<require__before> hook will be silently ignored.
+
+C<require__before> hooks are called in FIFO order, and if the hook
+returns a code reference those code references will be called in FILO
+order.  In other words if A requires B requires C, then
+C<require__before> will be called first for A, then B and then C, and
+the post-action code reference will executed first for C, then B and
+then finally A.
+
+Well behaved code should ensure that when setting up a
+C<require__before> hook that any prior installed hook will be called,
+and that their return value, if a code reference, will be called as
+well.  See L<perlfunc/require> for an example implementation.
+
+=item require__after
+
+The routine indicated by C<${^HOOK}{require__after}> is called by
+C<require> B<after> the require completes.  It is called with a single
+argument, the filename for the item being required (package names are
+converted to paths).  It is executed when the C<require> completes,
+either via exception or via completion of the require statement, and you
+can check C<%INC> to determine if the require was successful.
+
+The C<require__after> hook is called for each required file in FILO
+order. In other words if A requires B requires C, then C<require__after>
+will be called first for C, then B and then A.
+
+=back
+
 =item $BASETIME
 
 =item $^T
@@ -823,49 +953,77 @@ command or referenced as a file.
 =head2 Variables related to regular expressions
 
 Most of the special variables related to regular expressions are side
-effects.  Perl sets these variables when it has a successful match, so
-you should check the match result before using them.  For instance:
+effects. Perl sets these variables when it has completed a match
+successfully, so you should check the match result before using them.
+For instance:
 
     if( /P(A)TT(ER)N/ ) {
         print "I found $1 and $2\n";
     }
 
-These variables are read-only and dynamically-scoped, unless we note
-otherwise.
-
-The dynamic nature of the regular expression variables means that
-their value is limited to the block that they are in, as demonstrated
-by this bit of code:
-
-    my $outer = 'Wallace and Grommit';
-    my $inner = 'Mutt and Jeff';
-
-    my $pattern = qr/(\S+) and (\S+)/;
-
-    sub show_n { print "\$1 is $1; \$2 is $2\n" }
+These variables are read-only and behave similarly to a dynamically
+scoped variable, with only a few exceptions which are explicitly
+documented as behaving otherwise.  See the following section for more
+details.
+
+=head3 Scoping Rules of Regex Variables
+
+Regular expression variables allow the programmer to access the state of
+the most recent I<successful> regex match in the current dynamic scope.
+
+The variables themselves are global and unscoped, but the data they
+access is scoped similarly to dynamically scoped variables, in that
+every successful match behaves as though it localizes a global state
+object to the current block or file scope.
+(See L<perlsyn/"Compound Statements"> for more details on dynamic
+scoping and the C<local> keyword.)
+
+A I<successful match> includes any successful match performed by the
+search and replace operator C<s///> as well as those performed by the
+C<m//> operator.
+
+Consider the following code:
+
+    my @state;
+    sub matchit {
+        push @state, $1;            # pushes "baz"
+        my $str = shift;
+        $str =~ /(zat)/;            # matches "zat"
+        push @state, $1;            # pushes "zat"
+    }
 
     {
-    OUTER:
-        show_n() if $outer =~ m/$pattern/;
-
-        INNER: {
-            show_n() if $inner =~ m/$pattern/;
+        $str = "foo bar baz blorp zat";
+        $str =~ /(foo)/;            # matches "foo"
+        push @state, $1;            # pushes "foo"
+        {
+            $str =~ /(pizza)/;      # does NOT match
+            push @state, $1;        # pushes "foo"
+            $str =~ /(bar)/;        # matches "bar"
+            push @state, $1;        # pushes "bar"
+            $str =~ /(baz)/;        # matches "baz"
+            matchit($str);          # see above
+            push @state, $1;        # pushes "baz"
         }
-
-        show_n();
+        $str =~ s/noodles/rice/;    # does NOT match
+        push @state, $1;            # pushes "foo"
+        $str =~ s/(blorp)/zwoop/;   # matches "blorp"
+        push @state, $1;            # pushes "blorp"
     }
+    # the following prints "foo, foo, bar, baz, zat, baz, foo, blorp"
+    print join ",", @state;
 
-The output shows that while in the C<OUTER> block, the values of C<$1>
-and C<$2> are from the match against C<$outer>.  Inside the C<INNER>
-block, the values of C<$1> and C<$2> are from the match against
-C<$inner>, but only until the end of the block (i.e. the dynamic
-scope).  After the C<INNER> block completes, the values of C<$1> and
-C<$2> return to the values for the match against C<$outer> even though
-we have not made another match:
-
-    $1 is Wallace; $2 is Grommit
-    $1 is Mutt; $2 is Jeff
-    $1 is Wallace; $2 is Grommit
+Notice that each successful match in the exact same scope overrides the
+match context of the previous successful match, but that unsuccessful
+matches do not. Also note that in an inner nested scope the previous
+state from an outer dynamic scope persists until it has been overriden
+by another successful match, but that when the inner nested scope exits
+whatever match context was in effect before the inner successful match
+is restored when the scope concludes.
+
+It is a known issue that C<goto LABEL> may interact poorly with the
+dynamically scoped match context. This may not be fixable, and is
+considered to be one of many good reasons to avoid C<goto LABEL>.
 
 =head3 Performance issues
 
@@ -907,8 +1065,8 @@ difference in something like
     $str =~ /x/g # one char copied a million times, not a million chars
 
 In Perl 5.20.0 a new copy-on-write system was enabled by default, which
-finally fixes all performance issues with these three variables, and makes
-them safe to use anywhere.
+finally fixes most of the performance issues with these three variables, and
+makes them safe to use anywhere.
 
 The C<Devel::NYTProf> and C<Devel::FindAmpersand> modules can help you
 find uses of these problematic match variables in your code.
@@ -919,14 +1077,14 @@ find uses of these problematic match var
 X<$1> X<$2> X<$3> X<$I<digits>>
 
 Contains the subpattern from the corresponding set of capturing
-parentheses from the last successful pattern match, not counting patterns
-matched in nested blocks that have been exited already.
+parentheses from the last successful pattern match in the current
+dynamic scope. (See L</Scoping Rules of Regex Variables>.)
 
 Note there is a distinction between a capture buffer which matches
 the empty string a capture buffer which is optional. Eg, C<(x?)> and
 C<(x)?> The latter may be undef, the former not.
 
-These variables are read-only and dynamically-scoped.
+These variables are read-only.
 
 Mnemonic: like \digits.
 
@@ -966,75 +1124,71 @@ This variable was added in 5.25.7
 =item $&
 X<$&> X<$MATCH>
 
-The string matched by the last successful pattern match (not counting
-any matches hidden within a BLOCK or C<eval()> enclosed by the current
-BLOCK).
+The string matched by the last successful pattern match.
+(See L</Scoping Rules of Regex Variables>.)
 
 See L</Performance issues> above for the serious performance implications
 of using this variable (even once) in your code.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 Mnemonic: like C<&> in some editors.
 
 =item ${^MATCH}
 X<${^MATCH}>
 
-This is similar to C<$&> (C<$MATCH>) except that it does not incur the
-performance penalty associated with that variable.
+It is only guaranteed to return a defined value when the pattern was
+compiled or executed with the C</p> modifier.
 
-See L</Performance issues> above.
+This is similar to C<$&> (C<$MATCH>) except that to use it you must
+use the C</p> modifier when executing the pattern, and it does not incur
+and performance penalty associated with that variable.
 
-In Perl v5.18 and earlier, it is only guaranteed
-to return a defined value when the pattern was compiled or executed with
-the C</p> modifier.  In Perl v5.20, the C</p> modifier does nothing, so
-C<${^MATCH}> does the same thing as C<$MATCH>.
+See L</Performance issues> above.
 
 This variable was added in Perl v5.10.0.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 =item $PREMATCH
 
 =item $`
-X<$`> X<$PREMATCH> X<${^PREMATCH}>
+X<$`> X<$PREMATCH>
 
 The string preceding whatever was matched by the last successful
-pattern match, not counting any matches hidden within a BLOCK or C<eval>
-enclosed by the current BLOCK.
+pattern match. (See L</Scoping Rules of Regex Variables>).
 
 See L</Performance issues> above for the serious performance implications
 of using this variable (even once) in your code.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 Mnemonic: C<`> often precedes a quoted string.
 
 =item ${^PREMATCH}
-X<$`> X<${^PREMATCH}>
+X<${^PREMATCH}>
+
+It is only guaranteed to return a defined value when the pattern was
+executed with the C</p> modifier.
 
-This is similar to C<$`> ($PREMATCH) except that it does not incur the
-performance penalty associated with that variable.
+This is similar to C<$`> ($PREMATCH) except that to use it you must
+use the C</p> modifier when executing the pattern, and it does not incur
+and performance penalty associated with that variable.
 
 See L</Performance issues> above.
 
-In Perl v5.18 and earlier, it is only guaranteed
-to return a defined value when the pattern was compiled or executed with
-the C</p> modifier.  In Perl v5.20, the C</p> modifier does nothing, so
-C<${^PREMATCH}> does the same thing as C<$PREMATCH>.
 
 This variable was added in Perl v5.10.0.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 =item $POSTMATCH
 
 =item $'
-X<$'> X<$POSTMATCH> X<${^POSTMATCH}> X<@->
+X<$'> X<$POSTMATCH> X<@->
 
 The string following whatever was matched by the last successful
-pattern match (not counting any matches hidden within a BLOCK or C<eval()>
-enclosed by the current BLOCK).  Example:
+pattern match. (See L</Scoping Rules of Regex Variables>). Example:
 
     local $_ = 'abcdefghi';
     /def/;
@@ -1043,26 +1197,25 @@ enclosed by the current BLOCK).  Example
 See L</Performance issues> above for the serious performance implications
 of using this variable (even once) in your code.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 Mnemonic: C<'> often follows a quoted string.
 
 =item ${^POSTMATCH}
-X<${^POSTMATCH}> X<$'> X<$POSTMATCH>
+X<${^POSTMATCH}>
 
-This is similar to C<$'> (C<$POSTMATCH>) except that it does not incur the
-performance penalty associated with that variable.
+It is only guaranteed to return a defined value when the pattern was
+compiled or executed with the C</p> modifier.
 
-See L</Performance issues> above.
+This is similar to C<$'> (C<$POSTMATCH>) except that to use it you must
+use the C</p> modifier when executing the pattern, and it does not incur
+and performance penalty associated with that variable.
 
-In Perl v5.18 and earlier, it is only guaranteed
-to return a defined value when the pattern was compiled or executed with
-the C</p> modifier.  In Perl v5.20, the C</p> modifier does nothing, so
-C<${^POSTMATCH}> does the same thing as C<$POSTMATCH>.
+See L</Performance issues> above.
 
 This variable was added in Perl v5.10.0.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 =item $LAST_PAREN_MATCH
 
@@ -1070,7 +1223,8 @@ This variable is read-only and dynamical
 X<$+> X<$LAST_PAREN_MATCH>
 
 The text matched by the highest used capture group of the last
-successful search pattern.  It is logically equivalent to the highest
+successful search pattern. (See L</Scoping Rules of Regex Variables>).
+It is logically equivalent to the highest
 numbered capture variable (C<$1>, C<$2>, ...) which has a defined value.
 
 This is useful if you don't know which one of a set of alternative patterns
@@ -1078,7 +1232,7 @@ matched.  For example:
 
     /Version: (.*)|Revision: (.*)/ && ($rev = $+);
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 Mnemonic: be positive and forward looking.
 
@@ -1088,8 +1242,11 @@ Mnemonic: be positive and forward lookin
 X<$^N> X<$LAST_SUBMATCH_RESULT>
 
 The text matched by the used group most-recently closed (i.e. the group
-with the rightmost closing parenthesis) of the last successful search
-pattern. This is subtly different from C<$+>. For example in
+with the rightmost closing parenthesis) of the last successful match.
+(See L</Scoping Rules of Regex Variables>).
+
+
+This is subtly different from C<$+>. For example in
 
     "ab" =~ /^((.)(.))$/
 
@@ -1108,6 +1265,8 @@ recently matched.  For example, to effec
 By setting and then using C<$var> in this way relieves you from having to
 worry about exactly which numbered set of parentheses they are.
 
+This variable is read-only, and its value is dynamically scoped.
+
 This variable was added in Perl v5.8.0.
 
 Mnemonic: the (possibly) Nested parenthesis that most recently closed.
@@ -1118,15 +1277,24 @@ Mnemonic: the (possibly) Nested parenthe
 X<@+> X<@LAST_MATCH_END>
 
 This array holds the offsets of the ends of the last successful
-submatches in the currently active dynamic scope.  C<$+[0]> is
-the offset into the string of the end of the entire match.  This
-is the same value as what the C<pos> function returns when called
-on the variable that was matched against.  The I<n>th element
-of this array holds the offset of the I<n>th submatch, so
-C<$+[1]> is the offset past where C<$1> ends, C<$+[2]> the offset
-past where C<$2> ends, and so on.  You can use C<$#+> to determine
-how many subgroups were in the last successful match.  See the
-examples given for the C<@-> variable.
+match and any matching capture buffers that the pattern contains.
+(See L</Scoping Rules of Regex Variables>)
+
+The number of elements it contains will be one more than the number
+of capture buffers in the pattern, regardless of which capture buffers
+actually matched. You can use this to determine how many capture
+buffers there are in the pattern. (As opposed to C<@-> which may
+have fewer elements.)
+
+C<$+[0]> is the offset into the string of the end of the entire match.
+This is the same value as what the C<pos> function returns when called
+on the variable that was matched against. The I<n>th element of this
+array holds the offset of the I<n>th submatch, so C<$+[1]> is the offset
+past where C<$1> ends, C<$+[2]> the offset past where C<$2> ends, and so
+on. You can use C<$#+> to determine how many subgroups were in the last
+successful match. See the examples given for the C<@-> variable.
+
+This variable is read-only, and its value is dynamically scoped.
 
 This variable was added in Perl v5.6.0.
 
@@ -1139,7 +1307,7 @@ X<%+> X<%LAST_PAREN_MATCH> X<%{^CAPTURE}
 
 Similar to C<@+>, the C<%+> hash allows access to the named capture
 buffers, should they exist, in the last successful match in the
-currently active dynamic scope.
+currently active dynamic scope. (See L</Scoping Rules of Regex Variables>).
 
 For example, C<$+{foo}> is equivalent to C<$1> after the following match:
 
@@ -1163,27 +1331,33 @@ surprising.
 This variable was added in Perl v5.10.0. The C<%{^CAPTURE}> alias was
 added in 5.25.7.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
 
 =item @LAST_MATCH_START
 
 =item @-
 X<@-> X<@LAST_MATCH_START>
 
+This array holds the offsets of the beginnings of the last successful
+match and any capture buffers it contains.
+(See L</Scoping Rules of Regex Variables>).
+
+The number of elements it contains will be one more than the number of
+the highest capture buffers (also called a subgroup) that actually
+matched something. (As opposed to C<@+> which may have fewer elements.)
+
 C<$-[0]> is the offset of the start of the last successful match.
 C<$-[I<n>]> is the offset of the start of the substring matched by
 I<n>-th subpattern, or undef if the subpattern did not match.
 
-Thus, after a match against C<$_>, C<$&> coincides with C<substr $_, $-[0],
-$+[0] - $-[0]>.  Similarly, $I<n> coincides with C<substr $_, $-[n],
-$+[n] - $-[n]> if C<$-[n]> is defined, and $+ coincides with
-C<substr $_, $-[$#-], $+[$#-] - $-[$#-]>.  One can use C<$#-> to find the
-last matched subgroup in the last successful match.  Contrast with
-C<$#+>, the number of subgroups in the regular expression.  Compare
-with C<@+>.
+Thus, after a match against C<$_>, C<$&> coincides with
+C<substr $_, $-[0], $+[0] - $-[0]>.  Similarly, C<$I<n>> coincides
+with C<substr $_, $-[n], $+[n] - $-[n]> if C<$-[n]> is defined, and
+C<$+> coincides with C<substr $_, $-[$#-], $+[$#-] - $-[$#-]>.
+One can use C<$#-> to find the last matched subgroup in the last
+successful match.  Contrast with C<$#+>, the number of subgroups
+in the regular expression.
 
-This array holds the offsets of the beginnings of the last
-successful submatches in the currently active dynamic scope.
 C<$-[0]> is the offset into the string of the beginning of the
 entire match.  The I<n>th element of this array holds the offset
 of the I<n>th submatch, so C<$-[1]> is the offset where C<$1>
@@ -1207,6 +1381,8 @@ After a match against some variable C<$v
 
 =back
 
+This variable is read-only, and its value is dynamically scoped.
+
 This variable was added in Perl v5.6.0.
 
 =item %{^CAPTURE_ALL}
@@ -1215,12 +1391,12 @@ X<%{^CAPTURE_ALL}>
 =item %-
 X<%->
 
-Similar to C<%+>, this variable allows access to the named capture groups
-in the last successful match in the currently active dynamic scope.  To
-each capture group name found in the regular expression, it associates a
-reference to an array containing the list of values captured by all
-buffers with that name (should there be several of them), in the order
-where they appear.
+Similar to C<%+>, this variable allows access to the named capture
+groups in the last successful match in the currently active dynamic
+scope. (See L</Scoping Rules of Regex Variables>). To each capture group
+name found in the regular expression, it associates a reference to an
+array containing the list of values captured by all buffers with that
+name (should there be several of them), in the order where they appear.
 
 Here's an example:
 
@@ -1254,12 +1430,33 @@ B<Note:> C<%-> and C<%+> are tied views 
 associated with the last successful regular expression.  Therefore mixing
 iterative access to them via C<each> may have unpredictable results.
 Likewise, if the last successful match changes, then the results may be
-surprising.
+surprising. See L</Scoping Rules of Regex Variables>.
 
 This variable was added in Perl v5.10.0. The C<%{^CAPTURE_ALL}> alias was
 added in 5.25.7.
 
-This variable is read-only and dynamically-scoped.
+This variable is read-only, and its value is dynamically scoped.
+
+=item ${^LAST_SUCCESSFUL_PATTERN}
+
+The last successful pattern that matched in the current scope.  The empty
+pattern defaults to matching to this. For instance:
+
+    if (m/foo/ || m/bar/) {
+        s//BLAH/;
+    }
+
+and
+
+    if (m/foo/ || m/bar/) {
+        s/${^LAST_SUCCESSFUL_PATTERN}/BLAH/;
+    }
+
+are equivalent.
+
+You can use this to debug which pattern matched last, or to match with it again.
+
+Added in Perl 5.37.10.
 
 =item $LAST_REGEXP_CODE_RESULT
 
@@ -1267,7 +1464,10 @@ This variable is read-only and dynamical
 X<$^R> X<$LAST_REGEXP_CODE_RESULT>
 
 The result of evaluation of the last successful C<(?{ code })>
-regular expression assertion (see L<perlre>).  May be written to.
+regular expression assertion (see L<perlre>).
+
+This variable may be written to, and its value is scoped normally,
+unlike most other regex variables.
 
 This variable was added in Perl 5.005.
 
@@ -1539,7 +1739,7 @@ Suppose we wrote the following string to
     $string .= "epsilon zeta eta\n\n";
     $string .= "theta\n";
 
-    my $file = 'simple_file.txt'; 
+    my $file = 'simple_file.txt';
     open my $OUT, '>', $file or die;
     print $OUT $string;
     close $OUT or die;
@@ -2168,7 +2368,7 @@ value when the interpreter started to co
 
 Each time a statement completes being compiled, the current value of
 C<$^H> is stored with that statement, and can later be retrieved via
-C<(caller($level))[8]>.
+C<(caller($level))[8]>.  See L<perlfunc/caller EXPR>.
 
 When perl begins to parse any block construct that provides a lexical scope
 (e.g., eval body, required file, subroutine body, loop body, or conditional
@@ -2212,15 +2412,14 @@ This variable was added in Perl 5.003.
 =item %^H
 X<%^H>
 
-The C<%^H> hash provides the same scoping semantic as C<$^H>.  This makes
-it useful for implementation of lexically scoped pragmas.  See
-L<perlpragma>.   All the entries are stringified when accessed at
-runtime, so only simple values can be accommodated.  This means no
-pointers to objects, for example.
+The C<%^H> hash provides the same scoping semantics as L<C<$^H>|/$^H>.  This
+makes it useful for implementing lexically scoped pragmas.  See L<perlpragma>.
+All the entries are stringified when accessed at runtime, so only simple values
+can be accommodated.  This means no references to objects, for example.
 
 Each time a statement completes being compiled, the current value of
 C<%^H> is stored with that statement, and can later be retrieved via
-C<(caller($level))[10]>.
+C<(caller($level))[10]>.  See L<perlfunc/caller EXPR>.
 
 When putting items into C<%^H>, in order to avoid conflicting with other
 users of the hash there is a convention regarding which keys to use.
Index: gnu/usr.bin/perl/pod/perlvms.pod
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/pod/perlvms.pod,v
diff -u -p -a -u -p -r1.3 perlvms.pod
--- gnu/usr.bin/perl/pod/perlvms.pod	13 Feb 2019 21:15:30 -0000	1.3
+++ gnu/usr.bin/perl/pod/perlvms.pod	21 Feb 2024 15:47:03 -0000
@@ -235,8 +235,8 @@ either don't use it at all, or make sure
 application environment support and use it.
 
 OpenVMS Alpha v7.3-1 and later and all version of OpenVMS I64 support
-case sensitivity as a process setting (see C<SET PROCESS
-/CASE_LOOKUP=SENSITIVE>). Perl does not currently support case
+case sensitivity as a process setting (see S<C<SET PROCESS
+/CASE_LOOKUP=SENSITIVE>>). Perl does not currently support case
 sensitivity on VMS, but it may in the future, so Perl programs should
 use the C<< File::Spec->case_tolerant >> method to determine the state, and
 not the C<$^O> variable.
@@ -249,7 +249,7 @@ in the filesystem and CRTL (generally 64
 There are a number of limitations and caveats to be aware of when
 working with symbolic links on VMS.  Most notably, the target of a valid
 symbolic link must be expressed as a Unix-style path and it must exist
-on a volume visible from your POSIX root (see the C<SHOW ROOT> command
+on a volume visible from your POSIX root (see the S<C<SHOW ROOT>> command
 in DCL help).  For further details on symbolic link capabilities and
 requirements, see chapter 12 of the CRTL manual that ships with OpenVMS
 v8.3 or later.
Index: gnu/usr.bin/perl/regen/HeaderParser.pm
===================================================================
RCS file: gnu/usr.bin/perl/regen/HeaderParser.pm
diff -N gnu/usr.bin/perl/regen/HeaderParser.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regen/HeaderParser.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,1839 @@
+package HeaderParser;
+use strict;
+use warnings;
+
+# these are required below in BEGIN statements, we cant have a
+# hard dependency on them as they might not be available when
+# we run as part of autodoc.pl
+#
+# use Data::Dumper;
+# use Storable qw(dclone);
+#
+use Carp       qw(confess);
+use Text::Tabs qw(expand unexpand);
+use Text::Wrap qw(wrap);
+
+# The style of this file is determined by:
+#
+# perltidy -w -ple -bbb -bbc -bbs -nolq -l=80 -noll -nola -nwls='=' \
+#   -isbc -nolc -otr -kis -ci=4 -se -sot -sct -nsbl -pt=2 -fs  \
+#   -fsb='#start-no-tidy' -fse='#end-no-tidy' -cpb -bfvt=2
+
+my (
+    %unop,              # unary operators and their precedence
+    %binop,             # binary operators and their precedence
+    %is_right_assoc,    # operators which are right associative
+    %precedence,        # precedence of all operators.
+    %associative,       # associative operators
+    %commutative,       # commutative operators
+    %cmpop,             # comparison operators
+    $unop_pat,          # pattern to match unary operators
+    $binop_pat,         # pattern to match binary operators
+    %op_names,          # map of op to description, used in error messages
+    $tokenize_pat       # a pattern which can tokenize an expression
+);
+
+BEGIN {
+    # this is initialization for the operator precedence expression parser
+    # we use for handling preprocessor conditions.
+    %op_names= (
+        '==' => 'equality',
+        '!=' => 'inequality',
+        '<<' => 'bit-shift-left',
+        '>>' => 'bit-shift-right',
+        '+'  => 'addition',
+        '-'  => 'subtraction',
+        '*'  => 'multiplication',
+        '/'  => 'division',
+        '%'  => 'modulo',
+        '||' => 'logical-or',       # Lowest precedence
+        '&&' => 'logical-and',
+        '|'  => 'binary-or',
+        '^'  => 'binary-xor',
+        '&'  => 'binary-and',
+        '<'  => 'less-than',        # split on spaces, all with equal precedence
+        '>'  => 'greater-than',
+        '<=' => 'less-than-or-equal',
+        '>=' => 'greater-than-or-equal',
+    );
+    my @cmpop= (
+        '== !=',                    # listed in lowest to highest precedence
+        '< > <= >=',                # split on spaces, all with equal precedence
+    );
+    my @binop= (
+        '||',                       # Lowest precedence
+        '&&',
+        '|',
+        '^',
+        '&',
+        @cmpop,    # include the numerical comparison operators.
+        '<< >>',
+        '+ -',
+        '* / %',    # highest prcedence operators.
+    );
+
+    my @unop= qw( ! ~ + - );
+    %unop= map  { $_ => 1 } @unop;
+    %cmpop= map { $_ => 1 } map { split /\s+/, $_ } @cmpop;
+    %binop= map { $_ => 1 } map { split /\s+/, $_ } @binop;
+
+    my $make_pat= sub {
+        my $pat= join "|", sort { length($b) <=> length($a) || $a cmp $b }
+            map quotemeta($_), @_;
+        return qr/$pat/;
+    };
+    $unop_pat= $make_pat->(@unop);
+    foreach my $ix (0 .. $#binop) {
+        my $sym= $binop[$ix];
+        $precedence{$_}= (1 + $ix) * 10 for split /\s+/, $sym;
+    }
+    $is_right_assoc{"?"}= 1;
+    $is_right_assoc{":"}= 1;
+    $precedence{"?"}= 1;
+    $precedence{":"}= 0;
+
+    $associative{$_}++
+        for qw( || && + *);    # we leave '==' out so we don't reorder terms
+    $commutative{$_}++ for qw( || && + *);
+
+    $binop_pat= $make_pat->(keys %precedence);
+    $tokenize_pat= qr/
+     ^(?:
+        (?<comment> \/\*.*?\*\/ )
+      | (?<ws>      \s+ )
+      | (?<term>
+            (?<literal>
+                (?<define> defined\(\w+\) )
+            |   (?<func>   \w+\s*\(\s*\w+(?:\s*,\s*\w+)*\s*\) )
+            |   (?<const>  (?:0x[a-fA-F0-9]+|\d+[LU]*|'.') )
+            |   (?<sym>    \w+ )
+            )
+        |   (?<op> $binop_pat | $unop_pat )
+        |   (?<paren> [\(\)] )
+        )
+      )
+    /xs;
+}
+
+# dump the arguments with dump. wraps loading Dumper
+# as we are executed by miniperl where Dumper isnt available
+sub dd {
+    my $self= shift;
+    local $self->{orig_content};
+    my $ret= "(dump not available)";
+    eval {
+        require Data::Dumper;
+        $ret= Data::Dumper->new(\@_)->Indent(1)->Sortkeys(1)->Useqq(1)->Dump();
+    };
+    return $ret;
+}
+
+my $has_storable;
+
+# same story here, in miniperl we use slow perl code,
+# in real perl we can use Storable and speed things up.
+BEGIN { eval "use Storable; \$has_storable=1;" }
+
+# recursively copy an AoAoA...
+sub copy_aoa {
+    my ($aoa)= @_;
+    if ($has_storable) {
+        return Storable::dclone($aoa);
+    }
+    else {
+        return _copy_aoa($aoa);
+    }
+}
+
+sub _copy_aoa {
+    my ($thing)= @_;
+    if (ref $thing) {
+        return [ map { ref($_) ? _copy_aoa($_) : $_ } @$thing ];
+    }
+    else {
+        return $thing;
+    }
+}
+
+# return the number characters that should go in between a '#' and
+# the name of a c preprocessor directive. Returns 0 spaces for level
+# 0, and 2 * ($level - 1) + 1 spaces for the rest. (1,3,5, etc)
+# This might sound weird, but consider these are tab *stops* and the
+# '#' is included in the total. which means indents of 2, 4, 6 etc.
+sub indent_chars {
+    my ($self, $level)= @_;
+    my $ind= "";
+    $ind .= " "                 if $level;
+    $ind .= "  " x ($level - 1) if $level > 1;
+    return $ind;
+}
+
+# we use OO to store state, etc.
+sub new {
+    my ($class, %args)= @_;
+    $args{add_commented_expr_after} //= 10;
+    $args{max_width} //= 78;
+    $args{min_break_width} //= 70;
+    return bless \%args,;
+}
+
+# this parses the expression into an array of tokens
+# this is somewhat crude, we could do this incrementally
+# if we wanted and avoid the overhead. but it makes it
+# easier to debug the tokenizer.
+sub _tokenize_expr {
+    my ($self, $expr)= @_;
+    delete $self->{tokens};
+    delete $self->{parse_tree};
+    $self->{original_expr}= $expr;
+
+    my @tokens;
+    while ($expr =~ s/$tokenize_pat//xs) {
+        push @tokens, {%+} if defined $+{'term'};
+    }
+    $self->{tokens}= \@tokens;
+    warn $self->dd($self) if $self->{debug};
+    if (length $expr) {
+        confess "Failed to tokenize_expr: $expr\n";
+    }
+    return \@tokens;
+}
+
+sub _count_ops {
+    my ($self, $term)= @_;
+    my $count= 0;
+    $count++ while $term =~ m/(?: \|\| | \&\& | \? )/gx;
+    return $count;
+}
+
+# sort terms in an expression in a way that puts things
+# in a sensible order. Anything starting with PERL_IN_
+# should be on the left in alphabetical order. Digits
+# should be on the right (eg 0), and ties are resolved
+# by stripping non-alpha-numerc, thus removing underbar
+# parens, spaces, logical operators, etc, and then by
+# lc comparison of the result.
+sub _sort_terms {
+    my $self= shift;
+    my (@terms)= map {
+        [
+            $_,                                # 0: raw
+            lc($_) =~ s/[^a-zA-Z0-9]//gr,      # 1: "_" stripped and caseless
+            $_     =~ m/PERL_IN_/  ? 1 : 0,    # 2: PERL_IN_ labeled define
+            $_     =~ m/^\d/       ? 1 : 0,    # 3: digit
+            $_     =~ m/DEBUGGING/ ? 1 : 0,    # 4: DEBUGGING?
+            $self->_count_ops($_),             # 5: Number of ops (||, &&)
+        ]
+    } @_;
+    my %seen;
+    #start-no-tidy
+    @terms= map { $seen{ $_->[0] }++ ? () : $_->[0] }
+        sort {
+            $a->[5] <=> $b->[5]         ||    # least number of ops
+            $b->[2] <=> $a->[2]         ||    # PERL_IN before others
+            $a->[3] <=> $b->[3]         ||    # digits after others
+            $a->[4] <=> $b->[4]         ||    # DEBUGGING after all else
+            $a->[1] cmp $b->[1]         ||    # stripped caseless cmp
+            lc($a->[0]) cmp lc($b->[0]) ||    # caseless cmp
+            $a->[0] cmp $b->[0]         ||    # exact cmp
+            0
+        } @terms;
+    #end-no-tidy
+    return @terms;
+}
+
+# normalize a condition expression by parsing it and then stringifying
+# the parse tree.
+sub tidy_cond {
+    my ($self, $expr)= @_;
+    my $ret= $self->{_tidy_cond_cache}{$expr} //= do {
+        $self->parse_expr($expr) if defined $expr;
+        my $text= $self->_pt_as_str();
+        $text;
+    };
+    $self->{last_expr}= $ret;
+    return $ret;
+}
+
+# convert a parse tree structure to a string recursively.
+#
+# Parse trees are currently made up of arrays, with the count
+# of items in the object determining the type of op it represents.
+# 1 argument:  literal value of some sort.
+# 2 arguments: unary operator: 0 slot is the operator, 1 is a parse tree
+#            : ternary: 0 slot holds '?', 1 is an array holding three
+#                       parse trees: cond, true, false
+# 3 arguments or more: binary operator. 0 slot is the op. 1..n are parse trees
+#                    : note, this is multigate for commutative operators like
+#                    : "+", "*", "&&" and "||", so an expr
+#                    : like "A && B && !C" would be represented as:
+#                    : [ "&&", ["A"], ["B"], [ "!",["C"] ] ]
+#
+sub _pt_as_str {
+    my ($self, $node, $parent_op, $depth)= @_;
+
+    $node ||= $self->{parse_tree}
+        or confess "No parse tree?";
+    $depth ||= 0;
+    if (@$node == 1) {
+
+        # its a literal
+        return $node->[0];
+    }
+    elsif (@$node == 2) {
+
+        # is this a ternary or an unop?
+        if ($node->[0] eq '?') {
+
+            # ternary, the three "parts" are tucked away in
+            # an array in the payload slot
+            my $expr=
+                  $self->_pt_as_str($node->[1][0], "?", $depth + 1) . " ? "
+                . $self->_pt_as_str($node->[1][1], "?", $depth + 1) . " : "
+                . $self->_pt_as_str($node->[1][2], "?", $depth + 1);
+
+            # stick parens on if this is a subexpression
+            $expr= "( " . $expr . " )" if $depth;
+            return $expr;
+        }
+        else {
+            if (    $node->[0] eq "!"
+                and @{ $node->[1] } == 2
+                and $node->[1][0] eq "!")
+            {
+                # normalize away !! in expressions.
+                return $self->_pt_as_str($node->[1][1], $parent_op, $depth);
+            }
+
+            # unop - the payload is a optree
+            return $node->[0]
+                . $self->_pt_as_str($node->[1], $node->[0], $depth + 1);
+        }
+    }
+
+    # if we get here we are dealing with a binary operator
+    # the nodes are not necessarily binary, as we "collect"
+    # the terms into a list, thus: A && B && C && D -> ['&&',A,B,C,D]
+    my ($op, @terms)= @$node;
+
+    # convert the terms to strings
+    @terms= map { $self->_pt_as_str($_, $op, $depth + 1) } @terms;
+
+    # sort them to normalize the subexpression
+    my $expr=
+        join " $op ", $associative{$op}
+        ? $self->_sort_terms(@terms)
+        : @terms;
+
+    # stick parens on if this is a subexpression
+    $expr= "( " . $expr . " )" if $depth and !$cmpop{$op};
+
+    # and we are done.
+    return $expr;
+}
+
+# Returns the precedence of an operator, returns 0 if there is no token
+# or the next token is not an op, or confesss if it encounters an op it does not
+# know.
+sub _precedence {
+    my $self= shift;
+    my $token= shift // return 0;
+
+    my $op= (ref $token ? $token->{op} : $token) // return 0;
+
+    return $precedence{$op} // confess "Unknown op '$op'";
+}
+
+# entry point into parsing the tokens, checks that we actually parsed everything
+# and didnt leave anything in the token stream (possible from a malformed expression)
+# Performs some minor textual cleanups using regexes, but then does a proper parse
+# of the expression.
+sub parse_expr {
+    my ($self, $expr)= @_;
+    if (defined $expr) {
+        $expr =~ s/\s*\\\n\s*/ /g;
+        $expr =~ s/defined\s+(\w+)/defined($1)/g;
+        $self->_tokenize_expr($expr);
+    }
+    my $ret= $self->_parse_expr();
+    if (@{ $self->{tokens} }) {
+
+        # if all was well with parsing we should not get here.
+        confess "Unparsed tokens: ", $self->dd($self->{tokens});
+    }
+    $self->{parse_tree}= $ret;
+    return $ret;
+}
+
+# this is just a wrapper around _parse_expr_assoc() which handles
+# parsing an arbitrary expression.
+sub _parse_expr {
+    my ($self)= @_;
+    return $self->_parse_expr_assoc($self->_parse_expr_primary(), 1);
+}
+
+# This handles extracting from the token stream
+#  - simple literals
+#  - unops (assumed to be right associative)
+#  - parens (which reset the precedence acceptable to the parser)
+#
+sub _parse_expr_primary {
+    my ($self)= @_;
+    my $tokens= $self->{tokens}
+        or confess "No tokens in _parse_expr_primary?";
+    my $first= $tokens->[0]
+        or confess "No primary?";
+    if ($first->{paren} and $first->{paren} eq "(") {
+        shift @$tokens;
+        my $expr= $self->_parse_expr();
+        $first= $tokens->[0];
+        if (!$first->{paren} or $first->{paren} ne ")") {
+            confess "Expecting close paren", $self->dd($tokens);
+        }
+        shift @$tokens;
+        return $expr;
+    }
+    elsif ($first->{op} and $unop{ $first->{op} }) {
+        my $op_token= shift @$tokens;
+        return [ $op_token->{op}, $self->_parse_expr_primary() ];
+    }
+    elsif (defined $first->{literal}) {
+        shift @$tokens;
+        return [ $first->{literal} ];
+    }
+    else {
+        die sprintf
+            "Unexpected token '%s', expecting literal, unary, or expression.\n",
+            $first->{term};
+    }
+}
+
+# This is the heart of the expression parser. It uses
+# a pair of nested loops to avoid excessive recursion during parsing,
+# which should be a bit faster than other strategies. It only should
+# recurse when the precedence level changes.
+sub _parse_expr_assoc {
+    my ($self, $lhs, $min_precedence)= @_;
+    my $tokens= $self->{tokens}
+        or confess "No tokens in _parse_expr_assoc";
+    my $la= $tokens->[0];                  # lookahead
+    my $la_pr= $self->_precedence($la);    # lookahead precedence
+    while ($la && $la_pr >= $min_precedence) {
+        my $op_token= shift @$tokens;
+        my $op_pr= $la_pr;                 # op precedence
+        if ($op_token->{op} eq "?") {
+            my $mid= $self->_parse_expr();
+            if (@$tokens and $tokens->[0]{op} and $tokens->[0]{op} eq ":") {
+                shift @$tokens;
+                my $tail= $self->_parse_expr();
+                return [ '?', [ $lhs, $mid, $tail ] ];
+            }
+            confess "Panic: expecting ':'", $self->dd($tokens);
+        }
+        my $rhs;
+        eval { $rhs= $self->_parse_expr_primary(); }
+            or die "Error in $op_names{$op_token->{op}} expression: $@";
+        $la= $tokens->[0];
+        $la_pr= $self->_precedence($la);
+        while (
+            $la_pr > $op_pr ||    # any and larger
+            (       $is_right_assoc{ $op_token->{op} }
+                and $la_pr == $op_pr)    # right and equal
+        ) {
+            my $new_precedence= $op_pr + ($la_pr > $op_pr ? 1 : 0);
+            $rhs= $self->_parse_expr_assoc($rhs, $new_precedence);
+            $la= $tokens->[0];
+            $la_pr= $self->_precedence($la);
+        }
+        if (   @$lhs >= 3
+            && $lhs->[0] eq $op_token->{op}
+            && $commutative{ $op_token->{op} })
+        {
+            push @$lhs, $rhs;
+        }
+        else {
+            my @lt= ($lhs);
+            my @rt= ($rhs);
+
+            # if we have '( a && b ) && ( c && d)'
+            # turn it into 'a && b && c && d'
+            if (@$lhs > 2 && $lhs->[0] eq $op_token->{op}) {
+                (undef,@lt)= @$lhs; # throw away op.
+            }
+            if (@$rhs > 2 && $rhs->[0] eq $op_token->{op}) {
+                (undef,@rt)= @$rhs; # throw away op.
+            }
+            $lhs= [ $op_token->{op}, @lt, @rt ];
+        }
+    }
+    return $lhs;
+}
+
+#entry point for normalizing and if/elif statements
+#returns the line and condition in normalized form.
+sub normalize_if_elif {
+    my ($self, $line, $line_info)= @_;
+    if (my $dat= $self->{cache_normalize_if_elif}{$line}) {
+        return $dat->{line}, $dat->{cond};
+    }
+    my ($cond);
+    eval {
+        ($line, $cond)= $self->_normalize_if_elif($line);
+        1;
+    } or die sprintf "Error at line %d\nLine %d: %s\n%s",
+        ($line_info->start_line_num()) x 2, $line, $@;
+    $self->{cache_normalize_if_elif}{$line}= { line => $line, cond => $cond };
+    return ($line, $cond);
+}
+
+#guts of the normalize_if_elif() - cleans up the line, extracts
+#the condition, and then tidies it with tidy_cond().
+sub _normalize_if_elif {
+    my ($self, $line)= @_;
+    my $nl= "";
+    $nl= $1 if $line =~ s/(\n+)\z//;
+    $line =~ s/\s+\z//;
+    my @comment;
+    push @comment, $1 while $line =~ s!\s*(/\*.*?\*/)\z!!;
+    $line =~ s/defined\s*\(\s*(\w+)\s*\)/defined($1)/g;
+    $line =~ s/!\s+defined/!defined/g;
+
+    if ($line =~ /^#((?:el)?if)(n?)def\s+(\w+)/) {
+        my $if= $1;
+        my $not= $2 ? "!" : "";
+        $line= "#$if ${not}defined($3)";
+    }
+    $line =~ s/#((?:el)?if)\s+//
+        or confess "Bad cond: $line";
+    my $if= $1;
+    $line =~ s/!\s+/!/g;
+
+    my $old_cond= $line;
+    my $cond= $self->tidy_cond($old_cond);
+
+    warn "cond - $old_cond\ncond + $cond\n"
+        if $old_cond ne $cond and $self->{debug};
+
+    $line= "#$if $cond";
+    $line .= "  " . join " ", reverse @comment if @comment;
+
+    $line .= $nl;
+    return ($line, $cond);
+}
+
+# parses a text buffer as though it was a file on disk
+# calls parse_fh()
+sub parse_text {
+    my ($self, $text)= @_;
+    local $self->{parse_source}= "(buffer)";
+    open my $fh, "<", \$text
+        or die "Failed to open buffer for read: $!";
+    return $self->parse_fh($fh);
+}
+
+# takes a readable filehandle and parses whatever contents is
+# returned by reading it. Returns an array of HeaderLine objects.
+# this is the main routing for parsing a header file.
+sub parse_fh {
+    my ($self, $fh)= @_;
+    my @lines;
+    my @cond;
+    my @cond_line;
+    my $last_cond;
+    local $self->{parse_source}= $self->{parse_source} || "(unknown)";
+    my $cb= $self->{pre_process_content};
+    $self->{orig_content}= "";
+    my $line_num= 1;
+
+    while (defined(my $line= readline($fh))) {
+        my $start_line_num= $line_num++;
+        $self->{orig_content} .= $line;
+        while ($line =~ /\\\n\z/ or $line =~ m</\*(?:(?!\*/).)*\s*\z>s) {
+            defined(my $read_line= readline($fh))
+                or last;
+            $self->{orig_content} .= $read_line;
+            $line_num++;
+            $line .= $read_line;
+        }
+        while ($line =~ m!/\*(.*?)(\*/|\z)!gs) {
+            my ($inner, $tail)= ($1, $2);
+            if ($tail ne "*/") {
+                confess
+                    "Unterminated comment starting at line $start_line_num\n";
+            }
+            elsif ($inner =~ m!/\*!) {
+                confess
+                    "Nested/broken comment starting at line $start_line_num\n";
+            }
+        }
+
+        my $raw= $line;
+        my $type= "content";
+        my $sub_type= "text";
+        my $level= @cond;
+        my $do_pop= 0;
+        my $flat= $line;
+        $flat =~ s/\s*\\\n\s*/ /g;
+        $flat =~ s!/\*.*?\*/! !gs;
+        $flat =~ s/\s+/ /g;
+        $flat =~ s/\s+\z//;
+        $flat =~ s/^\s*#\s*/#/g;
+
+        my $line_info=
+            HeaderLine->new(start_line_num => $start_line_num, raw => $raw);
+        my $do_cond_line;
+        if ($flat =~ /^#/) {
+            if ($flat =~ m/^(#(?:el)?if)(n?)def\s+(\w+)/) {
+                my $if= $1;
+                my $not= $2 ? "!" : "";
+                my $sym= $3;
+                $flat =~
+                    s/^(#(?:el)?if)(n?)def\s+(\w+)/$if ${not}defined($sym)/;
+            }
+            my $cond;    # used in various expressions below
+            if ($flat =~ /^#endif/) {
+                if (!@cond) {
+                    confess "Not expecting $flat";
+                }
+                $do_pop= 1;
+                $level--;
+                $type= "cond";
+                $sub_type= "#endif";
+            }
+            elsif ($flat =~ /^#if\b/) {
+                ($flat, $cond)= $self->normalize_if_elif($flat, $line_info);
+                push @cond,      [$cond];
+                push @cond_line, $line_info;
+                $type= "cond";
+                $sub_type= "#if";
+            }
+            elsif ($flat =~ /^#elif\b/) {
+                if (!@cond) {
+                    confess "No if for $flat";
+                }
+                $level--;
+                ($flat, $cond)= $self->normalize_if_elif($flat, $line_info);
+                $cond[-1][-1]= $self->tidy_cond("!($cond[-1][-1])");
+                $cond_line[-1]= $line_info;
+                push @{ $cond[-1] }, $cond;
+                $type= "cond";
+                $sub_type= "#elif";
+            }
+            elsif ($flat =~ /^#else\b/) {
+                if (!@cond) {
+                    confess "No if for $flat";
+                }
+                $level--;
+                $cond[-1][-1]= $self->tidy_cond("!($cond[-1][-1])");
+                $cond_line[-1]= $line_info;
+                $type= "cond";
+                $sub_type= "#else";
+            }
+            elsif ($flat =~ /#undef/) {
+                $type= "content";
+                $sub_type= "#undef";
+            }
+            elsif ($flat =~ /#pragma\b/) {
+                $type= "content";
+                $sub_type= "#pragma";
+            }
+            elsif ($flat =~ /#include\b/) {
+                $type= "content";
+                $sub_type= "#include";
+            }
+            elsif ($flat =~ /#define\b/) {
+                $type= "content";
+                $sub_type= "#define";
+            }
+            elsif ($flat =~ /#error\b/) {
+                $type= "content";
+                $sub_type= "#error";
+            }
+            else {
+                confess "Do not know what to do with $line";
+            }
+            if ($type eq "cond") {
+
+                # normalize conditional lines
+                $line= $flat;
+                $last_cond= $line_info;
+            }
+        }
+        $line =~ s/\n?\z/\n/;
+
+        %$line_info= (
+            cond           => copy_aoa(\@cond),
+            type           => $type,
+            sub_type       => $sub_type,
+            raw            => $raw,
+            flat           => $flat,
+            line           => $line,
+            level          => $level,
+            source         => $self->{parse_source},
+            start_line_num => $start_line_num,
+            n_lines        => $line_num - $start_line_num,
+        );
+
+        push @lines, $line_info;
+        if ($do_pop) {
+            $line_info->{inner_lines}=
+                $line_info->start_line_num - $cond_line[-1]->start_line_num;
+            pop @cond;
+            pop @cond_line;
+        }
+        if ($type eq "content" and $cb) {
+            $cb->($self, $lines[-1]);
+        }
+    }
+    if (@cond_line) {
+        my $msg= "Unterminated conditional block starting line "
+            . $cond_line[-1]->start_line_num();
+        $msg .=
+            " with last conditional operation at line "
+            . $last_cond->start_line_num()
+            if $cond_line[-1] != $last_cond;
+        confess $msg;
+    }
+    $self->{lines}= \@lines;
+    return \@lines;
+}
+
+# returns the last lines we parsed.
+sub lines { $_[0]->{lines} }
+
+# assuming a line looks like an embed.fnc entry parse it
+# and normalize it, and create and EmbedLine object from it.
+sub tidy_embed_fnc_entry {
+    my ($self, $line_data)= @_;
+    my $line= $line_data->{line};
+    return $line if $line =~ /^\s*:/;
+    return $line unless $line_data->{type} eq "content";
+    return $line unless $line =~ /\|/;
+
+    $line =~ s/\s*\\\n/ /g;
+    $line =~ s/\s+\z//;
+    ($line)= expand($line);
+    my ($flags, $ret, $name, @args)= split /\s*\|\s*/, $line;
+    my %flag_seen;
+    $flags= join "", grep !$flag_seen{$_}++, sort split //, $flags;
+    if ($flags =~ s/^#//) {
+        $flags .= "#";
+    }
+    if ($flags eq "#") {
+        die "Not allowed to use only '#' for flags"
+            . "in 'embed.fnc' at line $line_data->{start_line_num}";
+    }
+    if (!$flags) {
+        die "Missing flags in function definition"
+            . " in 'embed.fnc' at line $line_data->{start_line_num}\n"
+            . "Did you a forget a line continuation on the previous line?\n";
+    }
+    for ($ret, @args) {
+        s/(\w)\*/$1 */g;
+        s/\*\s+(\w)/*$1/g;
+        s/\*const/* const/g;
+    }
+    my $head= sprintf "%-8s|%-7s", $flags, $ret;
+    $head .= sprintf "|%*s", -(31 - length($head)), $name;
+    if (@args and length($head) > 32) {
+        $head .= "\\\n";
+        $head .= " " x 32;
+    }
+    foreach my $ix (0 .. $#args) {
+        my $arg= $args[$ix];
+        $head .= "|$arg";
+        $head .= "\\\n" . (" " x 32) if $ix < $#args;
+    }
+    $line= $head . "\n";
+
+    if ($line =~ /\\\n/) {
+        my @lines= split /\s*\\\n/, $line;
+        my $len= length($lines[0]);
+        $len < length($_) and $len= length($_) for @lines;
+        $len= int(($len + 7) / 8) * 8;
+        $len= 72 if $len < 72;
+        $line= join("\\\n",
+            (map { sprintf "%*s", -$len, $_ } @lines[ 0 .. $#lines - 1 ]),
+            $lines[-1]);
+    }
+    ($line)= unexpand($line);
+
+    $line_data->{embed}= EmbedLine->new(
+        flags       => $flags,
+        return_type => $ret,
+        name        => $name,
+        args        => \@args,
+    );
+    $line =~ s/\s+\z/\n/;
+    $line_data->{line}= $line;
+    return $line;
+}
+
+# line up the text in a multiline string by a given $fragment
+# of text, inserting whitespace in front or behind the $fragment
+# to get the text to line up. Returns the text. This is wrapped
+# by line_up() and is used to wrap long conditions and comments
+# in the generated code.
+sub _line_up_frag {
+    my ($self, $str, $fragment)= @_;
+    die "has tabs?!" if $str =~ /\t/;
+    my @lines= split /\n/, $str;
+    my $changed= 1;
+    while ($changed) {
+        $changed= 0;
+        foreach my $ix (0 .. $#lines - 1) {
+            my $f_index= 0;
+            my $n_index= 0;
+            while (1) {
+                $f_index= index($lines[$ix],       $fragment, $f_index);
+                $n_index= index($lines[ $ix + 1 ], $fragment, $n_index);
+                if ($f_index == -1 or $n_index == -1) {
+                    last;
+                }
+                if ($f_index < $n_index) {
+                    my $f_idx= $f_index;
+                    $f_idx-- while substr($lines[$ix], $f_idx, 1) ne " ";
+                    substr($lines[$ix], $f_idx, 0, " " x ($n_index - $f_index));
+                    $changed++;
+                    last;
+                }
+                elsif ($n_index < $f_index) {
+                    my $n_idx= $n_index;
+                    $n_idx-- while substr($lines[ $ix + 1 ], $n_idx, 1) ne " ";
+                    substr($lines[ $ix + 1 ],
+                        $n_idx, 0, " " x ($f_index - $n_index));
+                    $changed++;
+                    last;
+                }
+                $f_index++;
+                $n_index++;
+            }
+        }
+    }
+    my $ret= join "", map { "$_\n" } @lines;
+    return $ret;
+}
+
+sub _fixup_indent {
+    my ($self, $line)= @_;
+    my @lines= split /\n/, $line;
+    if ($lines[0]=~/^(#\s*\w+(?:\s*\/\*)?\s)(\s+)/) {
+        my $first_left_len = length $1;
+
+        while (1) {
+            my $ok = 1;
+            for (@lines) {
+                /^.{$first_left_len} /
+                    or do { $ok = 0; last; };
+            }
+            if ($ok) {
+                s/^(.{$first_left_len}) /$1/ for @lines;
+            } else {
+                last;
+            }
+        }
+    }
+
+    if ($lines[0]=~/^(#\s*\w+\s+)\(/) {
+        my $len = length($1);
+        for my $idx (1..$#lines) {
+            $lines[$idx]=~s/^([ ]{$len})(\s+)(\()/$1$3$2/;
+        }
+    }
+    my $ret= join "", map { "$_\n" } @lines;
+    return $ret;
+}
+
+# this is the workhorse for _break_line_at_op().
+sub __break_line_at_op {
+    my ($self, $limit, $line, $blank_prefix)= @_;
+    my @lines= ("");
+    while (length $line) {
+        my $part;
+        if ($line =~ s/^(.*?(?:\|\||&&)\s+)//) {
+            $part= $1;
+        }
+        else {
+            $part= $line;
+            $line= "";
+        }
+        if (length($lines[-1]) + length($part) < $limit) {
+            $lines[-1] .= $part;
+        }
+        else {
+            push @lines, $blank_prefix . $part;
+        }
+    }
+    return \@lines;
+}
+
+# Break a condition line into parts, while trying to keep the last
+# token on each line being an operator like || or && or ? or : We try
+# to keep each line at $limit characters, however, we also try to
+# ensure that each line has the same number of operators on it such
+# that across all the lines there are only two counts of operators (eg,
+# we either way each line to have two operators on it, or 0, or 1 or 0,
+# or 2 or 1, and so on.) If we cannot meet this requirement we reduce
+# the limit by 1 and try again, until we meet the objective, or the
+# limit ends up at 70 chars or less.
+sub _break_line_at_op {
+    my ($self, $limit, $line, $blank_prefix)= @_;
+    my $lines;
+    while (1) {
+        $lines= $self->__break_line_at_op($limit, $line, $blank_prefix);
+        my %op_counts;
+        foreach my $line_idx (0 .. $#$lines) {
+            my $line= $lines->[$line_idx];
+            my $count= 0;
+            $count++ while $line =~ /(\|\||&&|\?|:)/g;
+            $op_counts{$count}++;
+
+        }
+        if ($limit <= $self->{min_break_width} || keys(%op_counts) <= 2) {
+            last;
+        }
+        $limit--;
+    }
+
+    s/\s*\z/\n/ for @$lines;
+    return join "", @$lines;
+}
+
+sub _max { # cant use Scalar::Util so we roll our own
+    my $max= shift;
+    $max < $_ and $max= $_ for @_;
+    return $max;
+}
+
+# take a condition, split into $type and $rest
+# wrap it, and try to line up operators and defined() functions
+# that it contains. This is rather horrible code, but it does a
+# reasonable job applying the heuristics we need to lay our the
+# conditions in a reasonable way.
+sub _wrap_and_line_up_cond {
+    my ($self, $type, $rest)= @_;
+
+    my $limit= $self->{max_width};
+
+    # extract the expression part of the line, and normalize it, we do
+    # this here even though it might be duplicative as it is possible
+    # that the caller code has munged the expression in some way, and we
+    # might want to simplify the expression first. Eg:
+    # 'defined(FOO) && (defined(BAR) && defined(BAZ))' should be turned into
+    # 'defined(FOO) && defined(BAR) && defined(BAZ)' if possible.
+    my $rest_head= "";
+    my $rest_tail= "";
+    if ($rest =~ s!(if\s+)!!) {
+        $rest_head= $1;
+    }
+    if ($rest =~ s!(\s*/\*.*?\*/)\s*\z!! || $rest =~ s!(\s*\*/\s*)\z!!) {
+        $rest_tail= $1;
+    }
+    if ($rest) {
+        $rest= $self->tidy_cond($rest);
+        $rest= $rest_head . $rest . $rest_tail;
+    }
+
+    my $l= length($type);
+    my $line= $type;
+    $line .= $rest if length($rest);
+    my $blank_prefix= " " x $l;
+
+    # at this point we have a single line with the entire expression on it
+    # if it fits on one line we are done, we can return it right away.
+    if (length($line) <= $limit) {
+        $line =~ s/\s*\z/\n/;
+        return $line;
+    }
+    my $rest_copy= $rest;
+    my @fragments;
+    my $op_pat= qr/(?:\|\||&&|[?:])/;
+
+    # does the $rest contain a parenthesized group? If it does then
+    # there are a mixture of different ops being used, as if it was all
+    # the same opcode there would not be a parenthesized group.
+    # If it does then we handle it differently, and try to put the
+    # different parts of the expression on their own line.
+    if ($rest_copy =~ /$op_pat\s*\(/) {
+        my @parts;
+        while (length $rest_copy) {
+            if ($rest_copy =~ s/^(.*?$op_pat)(\s*!?\()/$2/) {
+                push @parts, $1;
+            } else {
+                #$rest_copy=~s/^\s+//;
+                push @parts, $rest_copy;
+                last;
+            }
+        }
+        $parts[0]= $type . $parts[0];
+        $parts[$_]= $blank_prefix . $parts[$_] for 1 .. $#parts;
+        foreach my $line (@parts) {
+            if (length($line) > $limit) {
+                $line= $self->_break_line_at_op($limit, $line, $blank_prefix);
+            }
+        }
+        s/\s*\z/\n/ for @parts;
+        $line= join "", @parts;
+        @fragments= ("defined", "||");
+    }
+    else {
+        # the expression consists of just one opcode type, so we can use
+        # simpler logic to break it apart with the objective of ensuring
+        # that the lines are similarly formed with trailing operators on
+        # each line but the last.
+        @fragments= ("||", "defined");
+        $line= $self->_break_line_at_op($limit, $type . $rest, $blank_prefix);
+    }
+
+    # try to line up the text on different lines. We stop after
+    # the first $fragment that modifies the text. The order
+    # of fragments we try is determined above based on the type
+    # of condition this is.
+    my $pre_line= $line;
+    foreach my $fragment (@fragments) {
+        $line= $self->_line_up_frag($line, $fragment);
+        last if $line ne $pre_line;
+    }
+
+    # if we have lined up by "defined" in _line_up_frag()
+    # then we may have " ||        defined(...)" type expressions
+    # convert these to "        || defined(...)" as it looks better.
+    $line =~ s/( )(\|\||&&|[()?:])([ ]{2,})(!?defined)/$3$2$1$4/g;
+    $line =~ s/(\|\||&&|[()?:])[ ]{10,}/$1 /g;
+
+    # add back the line continuations. this is all pretty inefficient,
+    # but it works nicely.
+    my @lines= split /\n/, $line;
+    my $last= pop @lines;
+    my $max_len= _max(map { length $_ } @lines);
+    $_= sprintf "%*s \\\n", -$max_len, $_ for @lines;
+    $last .= "\n";
+
+    $line= join "", @lines, $last;
+
+    # remove line continuations that are inside of a comment,
+    # we may have a variable number of lines of the expression
+    # or parts of lines of the expression in a comment, so
+    # we do this last.
+    $line =~ s!/\* (.*) \*/
+              !"/*"._strip_line_cont("$1")."*/"!xsge;
+
+    return $self->_fixup_indent($line);
+}
+
+#remove line continuations from the argument.
+sub _strip_line_cont {
+    my ($string)= @_;
+    $string =~ s/\s*\\\n/\n/g;
+    return $string;
+}
+
+# Takes an array of HeaderLines objects produced by parse_fh()
+# or by group_content(), and turn it into a string.
+sub lines_as_str {
+    my ($self, $lines, $post_process_content)= @_;
+    $lines ||= $self->{lines};
+    my $ret;
+    $post_process_content ||= $self->{post_process_content};
+    my $filter= $self->{filter_content};
+    my $last_line= "";
+
+    #warn $self->dd($lines);
+    foreach my $line_data (@$lines) {
+        my $line= $line_data->{line};
+        if ($line_data->{type} ne "content" or $line_data->{sub_type} ne "text")
+        {
+            my $level= $line_data->{level};
+            my $ind= $self->indent_chars($level);
+            $line =~ s/^#(\s*)/#$ind/;
+        }
+        if ($line_data->{type} eq "cond") {
+            my $add_commented_expr_after= $self->{add_commented_expr_after};
+            if ($line_data->{sub_type} =~ /#(?:else|endif)/) {
+                my $joined= join " && ",
+                    map { "($_)" } @{ $line_data->{cond}[-1] };
+                my $cond_txt= $self->tidy_cond($joined);
+                $cond_txt= "if $cond_txt" if $line_data->{sub_type} eq "#else";
+                $line =~ s!\s*\z! /* $cond_txt */\n!
+                    if $line_data->{inner_lines} >= $add_commented_expr_after;
+            }
+            elsif ($line_data->{sub_type} eq "#elif") {
+                my $last_frame= $line_data->{cond}[-1];
+                my $joined= join " && ",
+                    map { "($_)" } @$last_frame[ 0 .. ($#$last_frame - 1) ];
+                my $cond_txt= $self->tidy_cond($joined);
+                $line =~ s!\s*\z! /* && $cond_txt */\n!
+                    if $line_data->{inner_lines} >= $add_commented_expr_after;
+            }
+        }
+        $line =~ s/\s*\z/\n/;
+        if ($last_line eq "\n" and $line eq "\n") {
+            next;
+        }
+        $last_line= $line;
+        if ($line_data->{type} eq "cond") {
+            $line =~ m!(^\s*#\s*\w+[ ]*)([^/].*?\s*)?(/\*.*)?\n\z!
+                or die "Failed to split cond line: $line";
+            my ($type, $cond, $comment)= ($1, $2, $3);
+            $comment //= "";
+            $cond    //= "";
+            my $new_line;
+            if (!length($cond) and $comment) {
+                $comment =~ s!^(/\*\s+)!!
+                    and $type .= $1;
+            }
+
+            $line= $self->_wrap_and_line_up_cond($type, $cond . $comment);
+        }
+        $line_data->{line}= $line;
+        if ($post_process_content and $line_data->{type} eq "content") {
+            $post_process_content->($self, $line_data);
+        }
+        if ($filter and $line_data->{type} eq "content") {
+            $filter->($self, $line_data) or next;
+        }
+        $ret .= $line_data->{line};
+    }
+    return $ret;
+}
+
+# Text::Wrap::wrap has an odd api, so hide it behind a wrapper
+# sub which sets things up properly.
+sub _my_wrap {
+    my ($head, $rest, $line)= @_;
+    local $Text::Wrap::unexpand= 0;
+    local $Text::Wrap::huge= "overflow";
+    local $Text::Wrap::columns= 78;
+    unless (length $line) { return $head }
+    $line= wrap $head, $rest, $line;
+    return $line;
+}
+
+# recursively extract the && expressions from a parse tree,
+# returning the result as strings.
+# if $node is not a '&&' op then it returns $node as a string,
+# otherwise it returns the string form of the arguments to the
+# '&&' op, recursively flattening any '&&' nodes that it might
+# contain.
+sub _and_clauses {
+    my ($self, $node)= @_;
+
+    my @ret;
+    if (@$node < 3 or $node->[0] ne "&&") {
+        return $self->_pt_as_str($node);
+    }
+    foreach my $idx (1 .. $#$node) {
+        push @ret, $self->_and_clauses($node->[$idx]);
+    }
+    return @ret;
+}
+
+# recursively walk the a parse tree, and return the literal
+# terms it contains, ignoring any operators in the optree.
+sub _terms {
+    my ($self, $node)= @_;
+    if (@$node == 1) {
+        return $self->_pt_as_str($node);
+    }
+    my @ret;
+    if (@$node == 2) {
+        if ($node->[0] eq "?") {
+            push @ret, map { $self->_terms($_) } @{ $node->[1] };
+        }
+        else {
+            push @ret, $self->_terms($node->[1]);
+        }
+    }
+    else {
+        foreach my $i (1 .. $#$node) {
+            push @ret, $self->_terms($node->[$i]);
+        }
+    }
+    return @ret;
+}
+
+# takes a HeaderLine "cond" AoA and flattens it into
+# a single expression, and then extracts all the and clauses
+# it contains. Thus [['defined(A)'],['defined(B)']] and
+# [['defined(A) && defined(B)']], end up as ['defined(A)','defined(B)']
+sub _flatten_cond {
+    my ($self, $cond_ary)= @_;
+
+    my $expr= join " && ", map {
+        map { "($_)" }
+            @$_
+    } @$cond_ary;
+    return [] unless $expr;
+    my $tree= $self->parse_expr($expr);
+    my %seen;
+    my @and_clause= grep { !$seen{$_}++ } $self->_and_clauses($tree);
+    return \@and_clause;
+}
+
+# Find the best path into a tree of conditions, such that
+# we reuse the maximum number of existing branches. Returning
+# two arrays, the first contain the parts of $cond_array that
+# make up the best path, in the best path order, and a second array
+# with the remaining items in the initial order they were provided.
+# Thus if we have previously stored only the path "A", "B", "C"
+# into the tree, and want to find the best path for
+# ["E","D","C","B","A"] we should return: ["A","B","C"],["E","D"],
+#
+# This used to reduce the number of conditions in the grouped content,
+# and is especially helpful with dealing with DEBUGGING related
+# functionality. It is coupled with careful control over the order
+# that we add paths and conditions to the tree.
+sub _best_path {
+    my ($self, $tree_node, $cond_array, @path)= @_;
+    my $best= \@path;
+    my $rest= $cond_array;
+    foreach my $cond (@$cond_array) {
+        if ($tree_node->{$cond}) {
+            my ($new_best, $new_rest)=
+                $self->_best_path($tree_node->{$cond},
+                [ grep $_ ne $cond, @$cond_array ],
+                @path, $cond);
+            if (@$new_best > @$best) {
+                ($best, $rest)= ($new_best, $new_rest);
+            }
+        }
+    }
+    if (@$best == @path) {
+        foreach my $cond (@$cond_array) {
+            my $not_cond= $self->tidy_cond("!($cond)");
+            if ($tree_node->{$not_cond}) {
+                $best= [ @path, $cond ];
+                $rest= [ grep $_ ne $cond, @$cond_array ];
+                last;
+            }
+        }
+    }
+    return ($best, $rest);
+}
+
+# This builds a group content tree from a set of lines. each content line in
+# the original file is added to the file based on the conditions that apply to
+# the content.
+#
+# The tree is made up of nested HoH's with keys in the HoH being normalized
+# clauses from the {cond} data in the HeaderLine objects.
+#
+# Care is taken to minimize the number of pathways and to reorder clauses to
+# reuse existing pathways and minimize the total number of conditions in the
+# file.
+#
+# The '' key of a hash contains an array of the lines that are part of the
+# condition that lead to that key. Thus lines with no conditions are in
+# @{$tree{''}}, lines with the condition "defined(A) && defined(B)" would be
+# in $tree{"defined(A)"}{"defined(B)"}{""}.
+#
+# The result of this sub is normally passed into __recurse_group_content_tree()
+# which converts it back into a set of HeaderLine objects.
+#
+sub _build_group_content_tree {
+    my ($self, $lines)= @_;
+    $lines ||= $self->{lines};
+    my $filter= $self->{filter_content};
+    my %seen_normal;
+    foreach my $line_data (@$lines) {
+        next if $line_data->{type} ne "content";
+        next if $filter and !$filter->($self, $line_data);
+        my $cond_frames= $line_data->{cond};
+        my $cond_frame= $self->_flatten_cond($cond_frames);
+        my $flat_merged= join " && ", map "($_)", @$cond_frame;
+        my $normalized;
+        if (@$cond_frame) {
+            $normalized= $self->tidy_cond($flat_merged);
+        }
+        else {
+            $normalized= $flat_merged;    # empty string
+        }
+        push @{ $seen_normal{$normalized} }, $line_data;
+    }
+    my @debugging;
+    my @non_debugging;
+    foreach my $key (keys %seen_normal) {
+        if ($key =~ /DEBUGGING/) {
+            push @debugging, $key;
+        }
+        else {
+            push @non_debugging, $key;
+        }
+    }
+    @non_debugging=
+        sort { length($a) <=> length($b) || $a cmp $b } @non_debugging;
+    @debugging= sort { length($b) <=> length($a) || $a cmp $b } @debugging;
+    my %tree;
+    foreach my $normal_expr (@non_debugging, @debugging) {
+        my $all_line_data= $seen_normal{$normal_expr};
+
+        my $cond_frame=
+            (length $normal_expr)
+            ? $self->_flatten_cond([ [$normal_expr] ])
+            : [];
+        @$cond_frame= $self->_sort_terms(@$cond_frame);
+        my $node= \%tree;
+        my ($best, $rest)= $self->_best_path($node, $cond_frame);
+        die sprintf "Woah: %d %d %d", 0 + @$best, 0 + @$rest, 0 + @$cond_frame
+            unless @$best + @$rest == @$cond_frame;
+
+        foreach my $cond (@$best, @$rest) {
+            $node= $node->{$cond} ||= {};
+        }
+        push @{ $node->{''} }, @$all_line_data;
+    }
+
+    warn $self->dd(\%tree) if $self->{debug};
+    $self->{tree}= \%tree;
+    return \%tree;
+}
+
+sub _recurse_group_content_tree {
+    my ($self, $node, @path)= @_;
+
+    my @ret;
+    local $self->{rgct_ret}= \@ret;
+    local $self->{line_by_depth}= [];
+
+    $self->__recurse_group_content_tree($node, @path);
+    return \@ret;
+}
+
+# convert a tree of conditions constructed by _build_group_content_tree()
+# and turn it into a set of HeaderLines that represents it. Performs the
+# appropriate sets required to reconstitute an if/elif/elif/else sequence
+# by calling _handle_else().
+sub __recurse_group_content_tree {
+    my ($self, $node, @path)= @_;
+    my $depth= 0 + @path;
+    my $ind= $self->indent_chars($depth);
+    my $ret= $self->{rgct_ret};
+    if ($node->{''}) {
+        if (my $cb= $self->{post_process_grouped_content}) {
+            $cb->($self, $node->{''}, \@path);
+        }
+        if (my $cb= $self->{post_process_content}) {
+            $cb->($self, $_, \@path) for @{ $node->{''} };
+        }
+        push @$ret, map {
+            HeaderLine->new(
+                %$_,
+                cond           => [@path],
+                level          => $depth,
+                start_line_num => 0 + @$ret
+            )
+        } @{ $node->{''} };
+    }
+
+    my %skip;
+    foreach my $expr (
+        map  { $_->[0] }
+        sort { $a->[1] cmp $b->[1] || $a->[0] cmp $b->[0] }
+        map  { [ $_, lc($_) =~ s/[^A-Za-z0-9]+//gr ] } keys %$node
+    ) {
+        next unless length $expr;    # ignore payload
+        my $not= $self->tidy_cond("!($expr)");
+        if ($skip{$expr} or ($not !~ /^!/ and $node->{$not})) {
+            next;
+        }
+        my $kid= $node->{$expr};
+        while (!$node->{$not} and keys(%$kid) == 1 and !$kid->{''}) {
+            my ($kid_key)= keys(%$kid);
+            $expr= $self->tidy_cond("($expr) && ($kid_key)");
+            $kid= $kid->{$kid_key};
+            my $new_not= $self->tidy_cond("!($expr)");
+            if ($node->{$new_not}) {
+                $not= $new_not;
+                $skip{$not}++;
+            }
+        }
+        my $raw= "#${ind}if $expr\n";
+        my $hl= HeaderLine->new(
+            type           => "cond",
+            sub_type       => "#if",
+            raw            => $raw,
+            line           => $raw,
+            level          => $depth,
+            cond           => [ @path, [$expr] ],
+            start_line_num => 0 + @$ret,
+        );
+        $self->{line_by_depth}[$depth]= 0 + @$ret;
+        push @$ret, $hl;
+        $self->__recurse_group_content_tree($kid, @path, [$expr]);
+        if ($node->{$not}) {
+            $skip{$not}++;
+            $self->_handle_else($not, $node->{$not}, $ind, $depth, @path,
+                [$not]);
+        }
+
+        # and finally the #endif
+
+        $raw= "#${ind}endif\n";
+
+        # we need to extract the condition information from the last line in @ret,
+        # as we don't know which condition we are ending here. It could be an elsif
+        # from deep in the parse tree for instance.
+        # So we need to extract the last frame from the cond structure in the last
+        # line-info in @ret.
+        # BUT if this last line is itself an #endif, then we need to take the second
+        # to last line instead, as the endif would have "popped" that frame off the
+        # condition stack.
+        my $last_ret= $ret->[-1];
+        my $idx=
+            ($last_ret->{type} eq "cond" && $last_ret->{sub_type} eq "#endif")
+            ? -2
+            : -1;
+        my $end_line= HeaderLine->new(
+            type           => "cond",
+            sub_type       => "#endif",
+            raw            => $raw,
+            line           => $raw,
+            level          => $depth,
+            cond           => [ @path, $last_ret->{cond}[$idx] ],
+            start_line_num => 0 + @$ret,
+            inner_lines    => @$ret - $self->{line_by_depth}[$depth],
+        );
+        undef $self->{line_by_depth}[$depth];
+        push @$ret, $end_line;
+    }
+    return $ret;
+}
+
+# this handles the specific case of an else clause, detecting
+# when an elif can be constructed, may recursively call itself
+# to deal with if/elif/elif/else chains. Calls back into
+# __recurse_group_content_tree().
+sub _handle_else {
+    my ($self, $not, $kid, $ind, $depth, @path)= @_;
+
+    # extract the first 3 keys - from this we can detect
+    # which of the three scenarios we have to handle.
+    my ($k1, $k2, $k3)=
+        sort { length($a) <=> length($b) || $a cmp $b } keys %$kid;
+    my $not_k1;
+    if (length($k1) and defined($k2) and !defined($k3)) {
+
+        # if we do not have a payload (length($k1)) and we have exactly
+        # two keys (defined($k2) and !defined($k3)) we need to compute
+        # the inverse of $k1, which we will use later.
+        $not_k1= $self->tidy_cond("!($k1)");
+    }
+    my $ret= $self->{rgct_ret};
+    if (length($k1) and !defined($k2)) {
+
+        # only one child, no payload -> elsif $k1
+        my $sub_expr;
+        do {
+            $sub_expr=
+                 !$sub_expr
+                ? $k1
+                : $self->tidy_cond("($sub_expr) && ($k1)");
+            $kid= $kid->{$k1};
+            ($k1, $k2)=
+                sort { length($a) <=> length($b) || $a cmp $b } keys %$kid;
+        } while length($k1) and !defined $k2;
+
+        my $raw= "#${ind}elif $sub_expr\n";
+        push @{ $path[-1] }, $sub_expr;
+        my $hl= HeaderLine->new(
+            type           => "cond",
+            sub_type       => "#elif",
+            raw            => $raw,
+            line           => $raw,
+            level          => $depth,
+            cond           => [ map { [@$_] } @path ],
+            start_line_num => 0 + @$ret,
+            inner_lines    => @$ret - $self->{line_by_depth}[$depth],
+        );
+        $self->{line_by_depth}[$depth]= 0 + @$ret;
+        push @$ret, $hl;
+        $self->__recurse_group_content_tree($kid, @path);
+    }
+    elsif (defined($not_k1) and $not_k1 eq $k2) {
+
+        # two children which are complementary, no payload -> elif $k1 else..
+        my $raw= "#${ind}elif $k1\n";
+
+        push @{ $path[-1] }, $k1;
+        my $hl= HeaderLine->new(
+            type           => "cond",
+            sub_type       => "#elif",
+            raw            => $raw,
+            line           => $raw,
+            level          => $depth,
+            cond           => [ map { [@$_] } @path ],
+            start_line_num => 0 + @$ret,
+            inner_lines    => @$ret - $self->{line_by_depth}[$depth],
+        );
+        $self->{line_by_depth}[$depth]= 0 + @$ret;
+        push @$ret, $hl;
+        $self->__recurse_group_content_tree($kid->{$k1}, @path);
+        $path[-1][-1]= $k2;
+        $self->_handle_else($k2, $kid->{$k2}, $ind, $depth, @path);
+    }
+    else {
+        # payload, 3+ children, or 2 which are not complementary -> else
+        my $raw= "#${ind}else\n";
+        my $hl= HeaderLine->new(
+            type           => "cond",
+            sub_type       => "#else",
+            raw            => $raw,
+            line           => $raw,
+            level          => $depth,
+            cond           => [ map { [@$_] } @path ],
+            start_line_num => 0 + @$ret,
+            inner_lines    => @$ret - $self->{line_by_depth}[$depth],
+        );
+        $self->{line_by_depth}[$depth]= 0 + @$ret;
+        push @$ret, $hl;
+        $self->__recurse_group_content_tree($kid, @path);
+    }
+    return $ret;
+}
+
+# group the content in lines by the condition that apply to them
+# returns a set of lines representing the new structure
+sub group_content {
+    my ($self, $lines, $filter)= @_;
+    $lines ||= $self->{lines};
+    local $self->{filter_content}= $filter || $self->{filter_content};
+    my $tree= $self->_build_group_content_tree($lines);
+    return $self->_recurse_group_content_tree($tree);
+}
+
+#read a file by name - opens the file and passes the fh into parse_fh().
+sub read_file {
+    my ($self, $file_name, $callback)= @_;
+    $self= $self->new() unless ref $self;
+    local $self->{parse_source}= $file_name;
+    open my $fh, "<", $file_name
+        or confess "Failed to open '$file_name' for read: $!";
+    my $lines= $self->parse_fh($fh);
+    if ($callback) {
+        foreach my $line (@$lines) {
+            $callback->($self, $line);
+        }
+    }
+    return $self;
+}
+
+# These are utility methods for the HeaderLine objects.
+sub HeaderLine::new {
+    my ($class, %self)= @_;
+    return bless \%self, $class;
+}
+sub HeaderLine::cond        { $_[0]->{cond} }                             # AoA
+sub HeaderLine::type        { $_[0]->{type} }
+sub HeaderLine::type_is     { return $_[0]->type eq $_[1] ? 1 : 0 }
+sub HeaderLine::sub_type    { $_[0]->{sub_type} }
+sub HeaderLine::sub_type_is { return $_[0]->sub_type eq $_[1] ? 1 : 0 }
+sub HeaderLine::raw         { $_[0]->{raw} }
+sub HeaderLine::flat        { $_[0]->{flat} }
+sub HeaderLine::line        { $_[0]->{line} }
+sub HeaderLine::level       { $_[0]->{level} }
+sub HeaderLine::is_content  { return $_[0]->type_is("content") }
+sub HeaderLine::is_cond     { return $_[0]->type_is("cond") }
+sub HeaderLine::is_define   { return $_[0]->sub_type_is("#define") }
+sub HeaderLine::line_num    { $_[0]->{start_line_num} }
+sub HeaderLine::inner_lines { $_[0]->{inner_lines} }
+sub HeaderLine::n_lines     { $_[0]->{n_lines} }
+sub HeaderLine::embed       { $_[0]->{embed} }
+*HeaderLine::start_line_num= *HeaderLine::line_num;
+
+# these are methods for EmbedLine objects
+*EmbedLine::new= *HeaderLine::new;
+sub EmbedLine::flags       { $_[0]->{flags} }
+sub EmbedLine::return_type { $_[0]->{return_type} }
+sub EmbedLine::name        { $_[0]->{name} }
+sub EmbedLine::args        { $_[0]->{args} }          # array ref
+
+1;
+
+__END__
+
+=head1 NAME
+
+HeaderParser - A minimal header file parser that can be hooked by other porting
+scripts.
+
+=head1 SYNOPSIS
+
+    my $o= HeaderParser->new();
+    my $lines= $o->parse_fh($fh);
+
+=head1 DESCRIPTION
+
+HeaderParser is a tool to parse C preprocessor header files. The tool
+understands the syntax of preprocessor conditions, and is capable of creating
+a parse tree of the expressions involved, and normalizing them as well.
+
+C preprocessor files are a bit tricky to parse properly, especially with a
+"line by line" model. There are two issues that must be dealt with:
+
+=over 4
+
+=item Line Continuations
+
+Any line ending in "\\\n" (that is backslash newline) is considered to be part
+of a longer string which continues on the next line. Processors should replace
+the "\\\n" typically with a space when converting to a "real" line.
+
+=item Comments Acting As A Line Continuation
+
+The rules for header files stipulates that C style comments are stripped
+before processing other content, this means that comments can serve as a form
+of line continuation:
+
+    #if defined(foo) /*
+    */ && defined(bar)
+
+is the same as
+
+    #if defined(foo) && defined(bar)
+
+This type of comment usage is often overlooked by people writing header file
+parsers for the first time.
+
+=item Indented pre processor directives.
+
+It is easy to forget that there may be multiple spaces between the "#"
+character and the directive. It also easy to forget that there may be spaces
+in *front* of the "#" character. Both of these cases are often overlooked.
+
+=back
+
+The main idea of this module is to provide a single framework for correctly
+parsing the content of our header files in a consistent manner. A secondary
+purpose it to make various tasks we want to do easier, such as normalizing
+content or preprocessor expressions, or just extracting the real "content" of
+the file properly.
+
+=head2 parse_fh
+
+This function parses a filehandle into a set of lines.  Each line is represented by a hash
+based object which contains the following fields:
+
+    bless {
+        cond     => [['defined(a)'],['defined(b)']],
+        type     => "content",
+        sub_type => undef,
+        raw      => $raw_content_of_line,
+        line     => $normalized_content_of_line,
+        level    => $level,
+        source         => $filename_or_string,
+        start_line_num => $line_num_for_first_line,
+        n_lines        => $line_num - $line_num_for_first_line,
+    }, "HeaderLine"
+
+A "line" in this context is a logical line, and because of line continuations
+and comments may contain more than one physical line, and thus more than
+one newline, but will always include at least one and will always end with one
+(unless there is no newline at the end of the file). Thus
+
+    before /*
+     this is a comment
+    */ after \
+    and continues
+
+will be treated as a single logical line even though the content is
+spread over four lines.
+
+=over 4
+
+=item cond
+
+An array of arrays containing the normalized expressions of any C preprocessor
+conditional blocks which include the line. Each line has its own copy of the
+conditions it was operated on currently, but that may change so dont alter
+this data. The inner arrays may contain more than one element. If so then the
+line is part of an "#else" or "#elsif" and the clauses should be considered to
+be a conjuction when considering "when is this line included", however when
+considered as part of an if/elsif/else, each added clause represents the most
+recent condition. In the following you can see how:
+
+    before          /* cond => [ ]                      */
+    #if A           /* cond => [ ['A'] ]                */
+    do-a            /* cond => [ ['A'] ]                */
+    #elif B         /* cond => [ ['!A', 'B'] ]          */
+    do-b            /* cond => [ ['!A', 'B'] ]          */
+    #else           /* cond => [ ['!A', '!B'] ]         */
+    do-c            /* cond => [ ['!A', '!B'] ]         */
+    # if D          /* cond => [ ['!A', '!B'], ['D'] ]  */
+    do-d            /* cond => [ ['!A', '!B'], ['D'] ]  */
+    # endif         /* cond => [ ['!A', '!B'], ['D'] ]  */
+    #endif          /* cond => [ ['!A', '!B'] ]         */
+    after           /* cond => [ ]                      */
+
+So in the above we can see how the three clauses of the if produce
+a single "frame" in the cond array, but that frame "grows" and changes
+as additional else clauses are added. When an entirely new if block
+is started (D) it gets its own block. Each endif includes the clause
+it terminates.
+
+=item type
+
+This value indicates the type of the line. This may be one of the following:
+'content', 'cond', 'define', 'include' and 'error'. Several of the types
+have a sub_type.
+
+=item sub_type
+
+This value gives more detail on the type of the line where necessary.
+Not all types have a subtype.
+
+    Type    | Sub Type
+    --------+----------
+    content | text
+            | include
+            | define
+            | error
+    cond    | #if
+            | #elif
+            | #else
+            | #endif
+
+Note that there are no '#ifdef' or '#elifndef' or similar expressions. All
+expressions of that form are normalized into the '#if defined' form to
+simplify processing.
+
+=item raw
+
+This was the raw original text before HeaderParser performed any modifications
+to it.
+
+=item line
+
+This is the normalized and modified text after HeaderParser or any callbacks
+have processed it.
+
+=item level
+
+This is the "indent level" of a line and corresponds to the number of blocks
+that the line is within, not including any blocks that might be created by
+the line itself.
+
+    before          /* level => 0 */
+    #if A           /* level => 0 */
+    do-a            /* level => 1 */
+    #elif B         /* level => 0 */
+    do-b            /* level => 1 */
+    #else           /* level => 0 */
+    do-c            /* level => 1 */
+    # if D          /* level => 1 */
+    do-d            /* level => 2 */
+    # endif         /* level => 1 */
+    #endif          /* level => 0 */
+    after           /* level => 0 */
+
+=back
+
+parse_fh() will throw an exception if it encounters a malformed expression
+or input it cannot handle.
+
+=head2 lines_as_str
+
+This function will return a string representation of the lines it is provided.
+
+=head2 group_content
+
+This function will group the text in the file by the conditions which contain
+it. This is only useful for files where the content is essentially a list and
+where changing the order that lines are output in will not break the resulting
+file.
+
+Each content line will be grouped into a structure of nested if/else blocks
+(elif will produce a new nested block) such that the content under the control
+of a given set of normalized condition clauses are grouped together in the order
+the occurred in the file, such that each combined conditional clause is output
+only once.
+
+This means a file like this:
+
+    #if A
+    A
+    #elif K
+    AK
+    #else
+    ZA
+    #endif
+    #if B && Q
+    B
+    #endif
+    #if Q && B
+    BC
+    #endif
+    #if A
+    AD
+    #endif
+    #if !A
+    ZZ
+    #endif
+
+Will end up looking roughly like this:
+
+    #if A
+    A
+    AD
+    #else
+    ZZ
+    # if K
+    AK
+    # else
+    ZA
+    # endif
+    #endif
+    #if B && Q
+    B
+    BC
+    #endif
+
+Content at a given block level always goes before conditional clauses
+at the same nesting level.
+
+=head2 HOOKS
+
+There are severals hooks that are available, C<pre_process_content> and
+C<post_process_content>, and C<post_process_grouped_content>. All of these
+hooks  will be called with the HeaderParser object as the first argument.
+The "process_content" callbacks will be called with a line hash as the second
+argument, and C<post_process_grouped_content> will be called with an
+array of line hashes for the content in that group, so that the array may be
+modified or sorted.  Callbacks called from inside of C<group_content()>
+(that is C<post_process_content> and C<post_process_grouped_content> will be
+called with an additional argument containing and array specifying the actual
+conditional "path" to the content  (which may differ somewhat from the data in
+a lines "cond" property).
+
+These hooks may do what they like, but generally they will modify the
+"line" property of the line hash to change the final output returned
+by C<lines_as_str()> or C<group_content()>.
+
+=head2 FORMATTING AND INDENTING
+
+Header parser tries hard to produce neat and readable output with a consistent
+style and form. For example:
+
+    #if defined(FOO)
+    # define HAS_FOO
+    # if defined(BAR)
+    #   define HAS_FOO_AND_BAR
+    # else /* !defined(BAR) */
+    #   define HAS_FOO_NO_BAR
+    # endif /* !defined(BAR) */
+    #endif /* defined(FOO) */
+
+HeaderParser uses two space tab stops for indenting C pre-processor
+directives. It puts the spaces between the "#" and the directive. The "#" is
+considered "part" of the indent, even though the space comes after it. This
+means the first indent level "looks" like one space, and following indents
+look like 2. This should match what a sensible editor would do with two space
+tab stops. The C<indent_chars()> method can be used to convert an indent level
+into a string that contains the appropriate number of spaces to go in between
+the "#" and the directive.
+
+When emitting "#endif", "#elif" and "#else" directives comments will be
+emitted also to show the conditions that apply. These comments may be wrapped
+to cover multiple lines. Some effort is made to get these comments to line up
+visually, but it uses heuristics which may not always produce the best result.
+
+=cut
Index: gnu/usr.bin/perl/regen/ebcdic.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/ebcdic.pl,v
diff -u -p -a -u -p -r1.5 ebcdic.pl
--- gnu/usr.bin/perl/regen/ebcdic.pl	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/regen/ebcdic.pl	21 Feb 2024 15:47:03 -0000
@@ -384,9 +384,6 @@ END
  * is A-Z; all other code points map to themselves */
 END
         output_table(\@ascii_fold, "PL_fold");
-
-        # This table is also the correct folding for the default C locale
-        output_table(\@ascii_fold, "PL_fold_locale");
     }
 
     {
Index: gnu/usr.bin/perl/regen/embed.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/embed.pl,v
diff -u -p -a -u -p -r1.5 embed.pl
--- gnu/usr.bin/perl/regen/embed.pl	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/regen/embed.pl	21 Feb 2024 15:47:03 -0000
@@ -17,7 +17,7 @@
 #
 # This script is normally invoked from regen.pl.
 
-require 5.004;	# keep this compatible, an old perl is all we may have before
+require 5.004;  # keep this compatible, an old perl is all we may have before
                 # we build the new one
 
 use strict;
@@ -29,6 +29,7 @@ BEGIN {
 }
 
 my $unflagged_pointers;
+my @az = ('a'..'z');
 
 #
 # See database of global and static function prototypes in embed.fnc
@@ -48,7 +49,7 @@ sub full_name ($$) { # Returns the funct
                      # prefixes 'S_' or 'Perl_'
     my ($func, $flags) = @_;
 
-    return "Perl_$func" if $flags =~ /p/;
+    return "Perl_$func" if $flags =~ /[ps]/;
     return "S_$func" if $flags =~ /[SIi]/;
     return $func;
 }
@@ -58,32 +59,53 @@ sub open_print_header {
 
     return open_new($file, '>',
                     { file => $file, style => '*', by => 'regen/embed.pl',
-                      from => ['data in embed.fnc', 'regen/embed.pl',
-                               'regen/opcodes', 'intrpvar.h', 'perlvars.h'],
+                      from => [
+                               'embed.fnc',
+                               'intrpvar.h',
+                               'perlvars.h',
+                               'regen/opcodes',
+                               'regen/embed.pl',
+                               'regen/embed_lib.pl',
+                               'regen/HeaderParser.pm',
+                           ],
                       final => "\nEdit those files and run 'make regen_headers' to effect changes.\n",
-                      copyright => [1993 .. 2009], quote => $quote });
+                      copyright => [1993 .. 2022],
+                      quote => $quote });
 }
 
-my ($embed, $core, $ext, $api) = setup_embed();
+
+sub open_buf_out {
+    $_[0] //= "";
+    open my $fh,">", \$_[0]
+        or die "Failed to open buffer: $!";
+    return $fh;
+}
 
 # generate proto.h
-{
-    my $pr = open_print_header("proto.h");
-    print $pr "START_EXTERN_C\n";
+sub generate_proto_h {
+    my ($all)= @_;
+    my $pr = open_buf_out(my $proto_buffer);
     my $ret;
 
-    foreach (@$embed) {
-        if (@$_ == 1) {
-            print $pr "$_->[0]\n";
+    foreach (@$all) {
+        if ($_->{type} ne "content") {
+            print $pr "$_->{line}";
             next;
         }
+        my $embed= $_->{embed}
+            or next;
+
+        my $level= $_->{level};
+        my $ind= $level ? " " : "";
+        $ind .= "  " x ($level-1) if $level>1;
+        my $inner_ind= $ind ? "  " : " ";
 
-        my ($flags,$retval,$plain_func,@args) = @$_;
-        if ($flags =~ / ( [^AabCDdEefFGhIiMmNnOoPpRrSsTUuWXx] ) /x) {
+        my ($flags,$retval,$plain_func,$args) = @{$embed}{qw(flags return_type name args)};
+        if ($flags =~ / ( [^AabCDdEefFGhIiMmNnOoPpRrSsTUuWXx;] ) /x) {
             die_at_end "flag $1 is not legal (for function $plain_func)";
         }
         my @nonnull;
-        my $args_assert_line = ( $flags !~ /G/ );
+        my $args_assert_line = ( $flags !~ /[Gm]/ );
         my $has_depth = ( $flags =~ /W/ );
         my $has_context = ( $flags !~ /T/ );
         my $never_returns = ( $flags =~ /r/ );
@@ -106,22 +128,32 @@ my ($embed, $core, $ext, $api) = setup_e
         die_at_end "$plain_func: u flag only usable with m" if $flags =~ /u/
                                                             && $flags !~ /m/;
 
+        my ($static_flag, @extra_static_flags)= $flags =~/([SsIi])/g;
+
+        if (@extra_static_flags) {
+            my $flags_str = join ", ", $static_flag, @extra_static_flags;
+            $flags_str =~ s/, (\w)\z/ and $1/;
+            die_at_end "$plain_func: flags $flags_str are mutually exclusive\n";
+        }
+
         my $static_inline = 0;
-        if ($flags =~ /([SIi])/) {
+        if ($static_flag) {
             my $type;
             if ($never_returns) {
                 $type = {
                     'S' => 'PERL_STATIC_NO_RET',
+                    's' => 'PERL_STATIC_NO_RET',
                     'i' => 'PERL_STATIC_INLINE_NO_RET',
                     'I' => 'PERL_STATIC_FORCE_INLINE_NO_RET'
-                }->{$1};
+                }->{$static_flag};
             }
             else {
                 $type = {
                     'S' => 'STATIC',
+                    's' => 'STATIC',
                     'i' => 'PERL_STATIC_INLINE',
                     'I' => 'PERL_STATIC_FORCE_INLINE'
-                }->{$1};
+                }->{$static_flag};
             }
             $retval = "$type $retval";
             die_at_end "Don't declare static function '$plain_func' pure" if $flags =~ /P/;
@@ -140,15 +172,17 @@ my ($embed, $core, $ext, $api) = setup_e
 
         die_at_end "For '$plain_func', M flag requires p flag"
                                             if $flags =~ /M/ && $flags !~ /p/;
-        die_at_end "For '$plain_func', C flag requires one of [pIimb] flags"
-						   if $flags =~ /C/
-						   && ($flags !~ /[Iibmp]/
-
-						      # Notwithstanding the
-						      # above, if the name
-						      # won't clash with a
-						      # user name, it's ok.
-						   && $plain_func !~ /^[Pp]erl/);
+        my $C_required_flags = '[pIimbs]';
+        die_at_end
+            "For '$plain_func', C flag requires one of $C_required_flags] flags"
+                                                if $flags =~ /C/
+                                                && ($flags !~ /$C_required_flags/
+
+                                                   # Notwithstanding the
+                                                   # above, if the name won't
+                                                   # clash with a user name,
+                                                   # it's ok.
+                                                && $plain_func !~ /^[Pp]erl/);
 
         die_at_end "For '$plain_func', X flag requires one of [Iip] flags"
                                             if $flags =~ /X/ && $flags !~ /[Iip]/;
@@ -164,25 +198,39 @@ my ($embed, $core, $ext, $api) = setup_e
                                             if $flags =~ /I/ && $flags =~ /i/;
 
         $ret = "";
-        $ret .= "$retval\t$func(";
+        $ret .= "$retval\n";
+        $ret .= "$func(";
         if ( $has_context ) {
-            $ret .= @args ? "pTHX_ " : "pTHX";
+            $ret .= @$args ? "pTHX_ " : "pTHX";
         }
-        if (@args) {
+        if (@$args) {
             die_at_end "n flag is contradicted by having arguments"
                                                                 if $flags =~ /n/;
             my $n;
-            for my $arg ( @args ) {
+            for my $arg ( @$args ) {
                 ++$n;
-                if (   $args_assert_line
-		    && $arg =~ /\*/
-		    && $arg !~ /\b(NN|NULLOK)\b/ )
-		{
+                if ($arg =~ / ^ " (.+) " $ /x) {    # Handle literal string
+                    my $name = $1;
+
+                    # Make the string a legal C identifier; 'p' is arbitrary,
+                    # and is because C reserves leading underscores
+                    $name =~ s/^\W/p/a;
+                    $name =~ s/\W/_/ag;
+
+                    $arg = "const char * const $name";
+                    die_at_end 'm flag required for "literal" argument'
+                                                            unless $flags =~ /m/;
+                }
+                elsif (   $args_assert_line
+                       && $arg =~ /\*/
+                       && $arg !~ /\b(NN|NULLOK)\b/ )
+                {
                     warn "$func: $arg needs NN or NULLOK\n";
                     ++$unflagged_pointers;
                 }
                 my $nn = ( $arg =~ s/\s*\bNN\b\s+// );
                 push( @nonnull, $n ) if $nn;
+                my $nz = ( $arg =~ s/\s*\bNZ\b\s+// );
 
                 my $nullok = ( $arg =~ s/\s*\bNULLOK\b\s+// ); # strip NULLOK with no effect
 
@@ -195,16 +243,16 @@ my ($embed, $core, $ext, $api) = setup_e
                      && ($temp_arg !~ /\w+\s+(\w+)(?:\[\d+\])?\s*$/) ) {
                     die_at_end "$func: $arg ($n) doesn't have a name\n";
                 }
-                if (defined $1 && $nn && !($commented_out && !$binarycompat)) {
+                if (defined $1 && ($nn||$nz) && !($commented_out && !$binarycompat)) {
                     push @names_of_nn, $1;
                 }
             }
-            $ret .= join ", ", @args;
+            $ret .= join ", ", @$args;
         }
         else {
             $ret .= "void" if !$has_context;
         }
-        $ret .= " _pDEPTH" if $has_depth;
+        $ret .= " comma_pDEPTH" if $has_depth;
         $ret .= ")";
         my @attrs;
         if ( $flags =~ /r/ ) {
@@ -225,25 +273,33 @@ my ($embed, $core, $ext, $api) = setup_e
         if ( $flags =~ /I/ ) {
             push @attrs, "__attribute__always_inline__";
         }
+        # roughly the inverse of the rules used in makedef.pl
+        if ( $flags !~ /[AbCeIimSX]/ ) {
+            push @attrs, '__attribute__visibility__("hidden")'
+        }
         if( $flags =~ /f/ ) {
-            my $prefix	= $has_context ? 'pTHX_' : '';
-            my ($args, $pat);
-            if ($args[-1] eq '...') {
-                $args	= scalar @args;
-                $pat	= $args - 1;
-                $args	= $prefix . $args;
+            my $prefix  = $has_context ? 'pTHX_' : '';
+            my ($argc, $pat);
+            if (!defined $args->[1]) {
+                use Data::Dumper;
+                die Dumper($_);
+            }
+            if ($args->[-1] eq '...') {
+                $argc   = scalar @$args;
+                $pat    = $argc - 1;
+                $argc   = $prefix . $argc;
             }
             else {
                 # don't check args, and guess which arg is the pattern
                 # (one of 'fmt', 'pat', 'f'),
-                $args = 0;
-                my @fmts = grep $args[$_] =~ /\b(f|pat|fmt)$/, 0..$#args;
+                $argc = 0;
+                my @fmts = grep $args->[$_] =~ /\b(f|pat|fmt)$/, 0..$#$args;
                 if (@fmts != 1) {
                     die "embed.pl: '$plain_func': can't determine pattern arg\n";
                 }
                 $pat = $fmts[0] + 1;
             }
-            my $macro	= grep($_ == $pat, @nonnull)
+            my $macro   = grep($_ == $pat, @nonnull)
                                 ? '__attribute__format__'
                                 : '__attribute__format__null_ok__';
             if ($plain_func =~ /strftime/) {
@@ -251,275 +307,361 @@ my ($embed, $core, $ext, $api) = setup_e
             }
             else {
                 push @attrs, sprintf "%s(__printf__,%s%d,%s)", $macro,
-                                    $prefix, $pat, $args;
+                                    $prefix, $pat, $argc;
             }
         }
-        elsif ((grep { $_ eq '...' } @args) && $flags !~ /F/) {
+        elsif ((grep { $_ eq '...' } @$args) && $flags !~ /F/) {
             die_at_end "$plain_func: Function with '...' arguments must have"
                      . " f or F flag";
         }
         if ( @attrs ) {
             $ret .= "\n";
-            $ret .= join( "\n", map { "\t\t\t$_" } @attrs );
+            $ret .= join( "\n", map { (" " x 8) . $_ } @attrs );
         }
         $ret .= ";";
         $ret = "/* $ret */" if $commented_out;
 
-        $ret .= "\n#define PERL_ARGS_ASSERT_\U$plain_func\E"
-                                            if $args_assert_line || @names_of_nn;
-        $ret .= "\t\\\n\t" . join '; ', map "assert($_)", @names_of_nn
-                                                                if @names_of_nn;
+        if ($args_assert_line || @names_of_nn) {
+            $ret .= "\n#${ind}define PERL_ARGS_ASSERT_\U$plain_func\E";
+            if (@names_of_nn) {
+                $ret .= " \\\n";
+                my $def = " " x 8;
+                foreach my $ix (0..$#names_of_nn) {
+                    $def .= "assert($names_of_nn[$ix])";
+                    if ($ix == $#names_of_nn) {
+                        $def .= "\n";
+                    } elsif (length $def > 70) {
+                        $ret .= $def . "; \\\n";
+                        $def = " " x 8;
+                    } else {
+                        $def .= "; ";
+                    }
+                }
+                $ret .= $def;
+            }
+        }
+        $ret .= "\n";
+
+        $ret = "#${ind}ifndef PERL_NO_INLINE_FUNCTIONS\n$ret\n#${ind}endif"
+            if $static_inline;
+        $ret = "#${ind}ifndef NO_MATHOMS\n$ret\n#${ind}endif"
+            if $binarycompat;
 
-        $ret = "#ifndef PERL_NO_INLINE_FUNCTIONS\n$ret\n#endif" if $static_inline;
-        $ret = "#ifndef NO_MATHOMS\n$ret\n#endif" if $binarycompat;
         $ret .= @attrs ? "\n\n" : "\n";
 
         print $pr $ret;
     }
 
-    print $pr <<'EOF';
-#ifdef PERL_CORE
-#  include "pp_proto.h"
-#endif
-END_EXTERN_C
-EOF
 
-    read_only_bottom_close_and_rename($pr) if ! $error_count;
+    close $pr;
+
+    my $clean= normalize_group_content($proto_buffer);
+
+    my $fh = open_print_header("proto.h");
+    print $fh <<~"EOF";
+    START_EXTERN_C
+    $clean
+    #ifdef PERL_CORE
+    #  include "pp_proto.h"
+    #endif
+    END_EXTERN_C
+    EOF
+
+    read_only_bottom_close_and_rename($fh) if ! $error_count;
+}
+
+{
+    my $hp= HeaderParser->new();
+    sub normalize_group_content {
+        open my $in, "<", \$_[0]
+            or die "Failed to open buffer: $!";
+        $hp->parse_fh($in);
+        my $ppc= sub {
+            my ($self, $line_data)= @_;
+            # re-align defines so that the definitions line up at the 48th col
+            # as much as possible.
+            if ($line_data->{sub_type} eq "#define") {
+                $line_data->{line}=~s/^(\s*#\s*define\s+\S+?(?:\([^()]*\))?\s)(\s*)(\S+)/
+                    sprintf "%-48s%s", $1, $3/e;
+            }
+        };
+        my $clean= $hp->lines_as_str($hp->group_content(),$ppc);
+        return $clean;
+    }
+}
+
+sub normalize_and_print {
+    my ($file, $buffer)= @_;
+    my $fh = open_print_header($file);
+    print $fh normalize_group_content($buffer);
+    read_only_bottom_close_and_rename($fh);
 }
 
-die_at_end "$unflagged_pointers pointer arguments to clean up\n" if $unflagged_pointers;
 
 sub readvars {
     my ($file, $pre) = @_;
-    local (*FILE, $_);
+    my $hp= HeaderParser->new()->read_file($file);
     my %seen;
-    open(FILE, '<', $file)
-        or die "embed.pl: Can't open $file: $!\n";
-    while (<FILE>) {
-        s/[ \t]*#.*//;		# Delete comments.
-        if (/PERLVARA?I?C?\($pre,\s*(\w+)/) {
-            die_at_end "duplicate symbol $1 while processing $file line $.\n"
-                if $seen{$1}++;
+    foreach my $line_data (@{$hp->lines}) {
+        #next unless $line_data->is_content;
+        my $line= $line_data->line;
+        if ($line=~m/^\s*PERLVARA?I?C?\(\s*$pre\s*,\s*(\w+)/){
+            $seen{$1}++
+                and
+                die_at_end "duplicate symbol $1 while processing $file line "
+                       . ($line_data->start_line_num) . "\n"
         }
     }
-    close(FILE);
-    return sort keys %seen;
+    my @keys= sort { lc($a) cmp lc($b) ||
+                        $a  cmp    $b }
+              keys %seen;
+    return @keys;
 }
 
-my @intrp = readvars 'intrpvar.h','I';
-my @globvar = readvars 'perlvars.h','G';
+sub add_indent {
+    #my ($ret, $add, $width)= @_;
+    my $width= $_[2] || 48;
+    $_[0] .= " " x ($width-length($_[0])) if length($_[0])<$width;
+    $_[0] .= " " unless $_[0]=~/\s\z/;
+    if (defined $_[1]) {
+        $_[0] .= $_[1];
+    }
+    return $_[0];
+}
 
-sub hide {
-    my ($from, $to, $indent) = @_;
+sub indent_define {
+    my ($from, $to, $indent, $width) = @_;
     $indent = '' unless defined $indent;
-    my $t = int(length("$indent$from") / 8);
-    "#${indent}define $from" . "\t" x ($t < 3 ? 3 - $t : 1) . "$to\n";
+    my $ret= "#${indent}define $from";
+    add_indent($ret,"$to\n",$width);
 }
 
-sub multon ($$$) {
-    my ($sym,$pre,$ptr) = @_;
-    hide("PL_$sym", "($ptr$pre$sym)");
+sub multon {
+    my ($sym,$pre,$ptr,$ind) = @_;
+    $ind//="";
+    indent_define("PL_$sym", "($ptr$pre$sym)", $ind);
 }
 
-my $em = open_print_header('embed.h');
-
-print $em <<'END';
-/* (Doing namespace management portably in C is really gross.) */
-
-/* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms
- * (like warn instead of Perl_warn) for the API are not defined.
- * Not defining the short forms is a good thing for cleaner embedding.
- * BEWARE that a bunch of macros don't have long names, so either must be
- * added or don't use them if you define this symbol */
-
-#ifndef PERL_NO_SHORT_NAMES
-
-/* Hide global symbols */
-
-END
-
-my @az = ('a'..'z');
-
 sub embed_h {
-    my ($guard, $funcs) = @_;
-    print $em "$guard\n" if $guard;
+    my ($em, $guard, $funcs) = @_;
 
     my $lines;
     foreach (@$funcs) {
-        if (@$_ == 1) {
-            my $cond = $_->[0];
-            # Indent the conditionals if we are wrapped in an #if/#endif pair.
-            $cond =~ s/#(.*)/#  $1/ if $guard;
-            $lines .= "$cond\n";
+        if ($_->{type} ne "content") {
+            $lines .= $_->{line};
             next;
         }
+        my $level= $_->{level};
+        my $embed= $_->{embed} or next;
+        my ($flags,$retval,$func,$args) = @{$embed}{qw(flags return_type name args)};
         my $ret = "";
-        my ($flags,$retval,$func,@args) = @$_;
+        my $ind= $level ? " " : "";
+        $ind .= "  " x ($level-1) if $level>1;
+        my $inner_ind= $ind ? "  " : " ";
         unless ($flags =~ /[omM]/) {
-            my $args = scalar @args;
+            my $argc = scalar @$args;
             if ($flags =~ /T/) {
                 my $full_name = full_name($func, $flags);
-                next if $full_name eq $func;	# Don't output a no-op.
-                $ret = hide($func, $full_name);
-            }
-            elsif ($args and $args[$args-1] =~ /\.\.\./) {
-                if ($flags =~ /p/) {
-                    # we're out of luck for varargs functions under CPP
-                    # So we can only do these macros for non-MULTIPLICITY perls:
-                    $ret = "#ifndef MULTIPLICITY\n"
-                        . hide($func, full_name($func, $flags)) . "#endif\n";
-                }
+                next if $full_name eq $func;    # Don't output a no-op.
+                $ret = indent_define($func, $full_name, $ind);
             }
             else {
-                my $alist = join(",", @az[0..$args-1]);
-                $ret = "#define $func($alist)";
-                my $t = int(length($ret) / 8);
-                $ret .=  "\t" x ($t < 4 ? 4 - $t : 1);
-                $ret .= full_name($func, $flags) . "(aTHX";
-                $ret .= "_ " if $alist;
-                $ret .= $alist;
+                my $use_va_list = $argc && $args->[-1] =~ /\.\.\./;
+
+                if($use_va_list) {
+                    # CPP has trouble with empty __VA_ARGS__ and comma joining,
+                    # so we'll have to eat an extra params here.
+                    if($argc < 2) {
+                        die "Cannot use ... as the only parameter to a macro ($func)\n";
+                    }
+                    $argc -= 2;
+                }
+
+                my $paramlist   = join(",", @az[0..$argc-1],
+                    $use_va_list ? ("...") : ());
+                my $replacelist = join(",", @az[0..$argc-1],
+                    $use_va_list ? ("__VA_ARGS__") : ());
+                $ret = "#${ind}define $func($paramlist) ";
+                add_indent($ret,full_name($func, $flags) . "(aTHX");
+                $ret .= "_ " if $replacelist;
+                $ret .= $replacelist;
                 if ($flags =~ /W/) {
-                    if ($alist) {
-                        $ret .= " _aDEPTH";
+                    if ($replacelist) {
+                        $ret .= " comma_aDEPTH";
                     } else {
                         die "Can't use W without other args (currently)";
                     }
                 }
                 $ret .= ")\n";
+                if($use_va_list) {
+                    # Make them available to !MULTIPLICITY or PERL_CORE
+                    $ret = "#${ind}if !defined(MULTIPLICITY) || defined(PERL_CORE)\n" .
+                           $ret .
+                           "#${ind}endif\n";
+                }
             }
-            $ret = "#ifndef NO_MATHOMS\n$ret#endif\n" if $flags =~ /b/;
+            $ret = "#${ind}ifndef NO_MATHOMS\n$ret#${ind}endif\n" if $flags =~ /b/;
         }
         $lines .= $ret;
     }
-    # Prune empty #if/#endif pairs.
-    while ($lines =~ s/#\s*if[^\n]+\n#\s*endif\n//) {
+    # remove empty blocks
+    1 while $lines =~ s/^#\s*if.*\n#\s*endif.*\n//mg
+         or $lines =~ s/^(#\s*if)\s+(.*)\n#else.*\n/$1 !($2)\n/mg;
+    if ($guard) {
+        print $em "$guard /* guard */\n";
+        $lines=~s/^#(\s*)/"#".(length($1)?"  ":" ").$1/mge;
     }
-    # Merge adjacent blocks.
-    while ($lines =~ s/(#ifndef MULTIPLICITY
-[^\n]+
-)#endif
-#ifndef MULTIPLICITY
-/$1/) {
-    }
-
     print $em $lines;
     print $em "#endif\n" if $guard;
 }
 
-embed_h('', $api);
-embed_h('#if defined(PERL_CORE) || defined(PERL_EXT)', $ext);
-embed_h('#ifdef PERL_CORE', $core);
-
-print $em <<'END';
-
-#endif	/* #ifndef PERL_NO_SHORT_NAMES */
-
-/* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
-   disable them.
- */
-
-#if !defined(PERL_CORE)
-#  define sv_setptrobj(rv,ptr,name)	sv_setref_iv(rv,name,PTR2IV(ptr))
-#  define sv_setptrref(rv,ptr)		sv_setref_iv(rv,NULL,PTR2IV(ptr))
-#endif
-
-#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT)
-
-/* Compatibility for various misnamed functions.  All functions
-   in the API that begin with "perl_" (not "Perl_") take an explicit
-   interpreter context pointer.
-   The following are not like that, but since they had a "perl_"
-   prefix in previous versions, we provide compatibility macros.
- */
-#  define perl_atexit(a,b)		call_atexit(a,b)
-END
-
-foreach (@$embed) {
-    my ($flags, $retval, $func, @args) = @$_;
-    next unless $func;
-    next unless $flags =~ /O/;
-
-    my $alist = join ",", @az[0..$#args];
-    my $ret = "#  define perl_$func($alist)";
-    my $t = (length $ret) >> 3;
-    $ret .=  "\t" x ($t < 5 ? 5 - $t : 1);
-    print $em "$ret$func($alist)\n";
-}
+sub generate_embed_h {
+    my ($all, $api, $ext, $core)= @_;
 
-my @nocontext;
-{
-    my (%has_va, %has_nocontext);
-    foreach (@$embed) {
-        next unless @$_ > 1;
-        ++$has_va{$_->[2]} if $_->[-1] =~ /\.\.\./;
-        ++$has_nocontext{$1} if $_->[2] =~ /(.*)_nocontext/;
-    }
+    my $em= open_buf_out(my $embed_buffer);
 
-    @nocontext = sort grep {
-        $has_nocontext{$_}
-            && !/printf/ # Not clear to me why these are skipped but they are.
-    } keys %has_va;
-}
+    print $em <<~'END';
+    /* (Doing namespace management portably in C is really gross.) */
 
-print $em <<'END';
+    /* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms
+     * (like warn instead of Perl_warn) for the API are not defined.
+     * Not defining the short forms is a good thing for cleaner embedding.
+     * BEWARE that a bunch of macros don't have long names, so either must be
+     * added or don't use them if you define this symbol */
 
-/* varargs functions can't be handled with CPP macros. :-(
-   This provides a set of compatibility functions that don't take
-   an extra argument but grab the context pointer using the macro
-   dTHX.
- */
-#if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES)
-END
+    #ifndef PERL_NO_SHORT_NAMES
 
-foreach (@nocontext) {
-    print $em hide($_, "Perl_${_}_nocontext", "  ");
-}
+    /* Hide global symbols */
 
-print $em <<'END';
-#endif
+    END
 
-#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
+    embed_h($em, '', $api);
+    embed_h($em, '#if defined(PERL_CORE) || defined(PERL_EXT)', $ext);
+    embed_h($em, '#if defined(PERL_CORE)', $core);
 
-#if !defined(MULTIPLICITY)
-/* undefined symbols, point them back at the usual ones */
-END
+    print $em <<~'END';
 
-foreach (@nocontext) {
-    print $em hide("Perl_${_}_nocontext", "Perl_$_", "  ");
-}
+    #endif      /* #ifndef PERL_NO_SHORT_NAMES */
 
-print $em <<'END';
-#endif
-END
+    #if !defined(PERL_CORE)
+    /* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
+     * disable them.
+     */
+    #  define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr))
+    #  define sv_setptrref(rv,ptr)              sv_setref_iv(rv,NULL,PTR2IV(ptr))
+    #endif
 
-read_only_bottom_close_and_rename($em) if ! $error_count;
+    #if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT)
 
-$em = open_print_header('embedvar.h');
+    /* Compatibility for various misnamed functions.  All functions
+       in the API that begin with "perl_" (not "Perl_") take an explicit
+       interpreter context pointer.
+       The following are not like that, but since they had a "perl_"
+       prefix in previous versions, we provide compatibility macros.
+     */
+    #  define perl_atexit(a,b)          call_atexit(a,b)
+    END
 
-print $em <<'END';
-#if defined(MULTIPLICITY)
-#  define vTHX	aTHX
-END
+    foreach (@$all) {
+        my $embed= $_->{embed} or next;
+        my ($flags, $retval, $func, $args) = @{$embed}{qw(flags return_type name args)};
+        next unless $flags =~ /O/;
 
-my $sym;
+        my $alist = join ",", @az[0..$#$args];
+        my $ret = "#  define perl_$func($alist) ";
+        print $em add_indent($ret,"$func($alist)\n");
+    }
 
-for $sym (@intrp) {
-    if ($sym eq 'sawampersand') {
-        print $em "#ifndef PL_sawampersand\n";
+    my @nocontext;
+    {
+        my (%has_va, %has_nocontext);
+        foreach (@$all) {
+            my $embed= $_->{embed}
+                or next;
+            ++$has_va{$embed->{name}} if @{$embed->{args}} and $embed->{args}[-1] =~ /\.\.\./;
+            ++$has_nocontext{$1} if $embed->{name} =~ /(.*)_nocontext/;
+        }
+
+        @nocontext = sort grep {
+            $has_nocontext{$_}
+                && !/printf/ # Not clear to me why these are skipped but they are.
+        } keys %has_va;
     }
-    print $em multon($sym,'I','vTHX->');
-    if ($sym eq 'sawampersand') {
-        print $em "#endif\n";
+
+    print $em <<~'END';
+
+    /* varargs functions can't be handled with CPP macros. :-(
+       This provides a set of compatibility functions that don't take
+       an extra argument but grab the context pointer using the macro
+       dTHX.
+     */
+    #if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES)
+    END
+
+    foreach (@nocontext) {
+        print $em indent_define($_, "Perl_${_}_nocontext", "  ");
     }
+
+    print $em <<~'END';
+    #endif
+
+    #endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
+
+    #if !defined(MULTIPLICITY)
+    /* undefined symbols, point them back at the usual ones */
+    END
+
+    foreach (@nocontext) {
+        print $em indent_define("Perl_${_}_nocontext", "Perl_$_", "  ");
+    }
+
+    print $em "#endif\n";
+    close $em;
+
+    normalize_and_print('embed.h',$embed_buffer)
+        unless $error_count;
 }
 
-print $em <<'END';
+sub generate_embedvar_h {
+    my $em = open_buf_out(my $embedvar_buffer);
+
+    print $em "#if defined(MULTIPLICITY)\n",
+              indent_define("vTHX","aTHX"," ");
+
 
-#endif	/* MULTIPLICITY */
-END
+    my @intrp = readvars 'intrpvar.h','I';
+    #my @globvar = readvars 'perlvars.h','G';
 
-read_only_bottom_close_and_rename($em) if ! $error_count;
 
-die "$error_count errors found" if $error_count;
+    for my $sym (@intrp) {
+        my $ind = " ";
+        if ($sym eq 'sawampersand') {
+            print $em "# if !defined(PL_sawampersand)\n";
+            $ind = "   ";
+        }
+        my $line = multon($sym, 'I', 'vTHX->', $ind);
+        print $em $line;
+        if ($sym eq 'sawampersand') {
+            print $em "# endif /* !defined(PL_sawampersand) */\n";
+        }
+    }
+
+    print $em "#endif       /* MULTIPLICITY */\n";
+    close $em;
+
+    normalize_and_print('embedvar.h',$embedvar_buffer)
+        unless $error_count;
+}
+
+sub update_headers {
+    my ($all, $api, $ext, $core) = setup_embed(); # see regen/embed_lib.pl
+    generate_proto_h($all);
+    die_at_end "$unflagged_pointers pointer arguments to clean up\n" if $unflagged_pointers;
+    generate_embed_h($all, $api, $ext, $core);
+    generate_embedvar_h();
+    die "$error_count errors found" if $error_count;
+}
+
+update_headers() unless caller;
 
 # ex: set ts=8 sts=4 sw=4 noet:
Index: gnu/usr.bin/perl/regen/embed_lib.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/embed_lib.pl,v
diff -u -p -a -u -p -r1.5 embed_lib.pl
--- gnu/usr.bin/perl/regen/embed_lib.pl	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/regen/embed_lib.pl	21 Feb 2024 15:47:03 -0000
@@ -1,5 +1,16 @@
 #!/usr/bin/perl -w
+BEGIN {
+    for $n (qw(lib regen)) {
+        if (-e "../$n") {
+            push @INC, "../$n";
+        } elsif (-e "./$n") {
+            push @INC, "./$n";
+        }
+    }
+}
 use strict;
+use warnings;
+use HeaderParser;
 
 # read embed.fnc and regen/opcodes, needed by regen/embed.pl, makedef.pl,
 # autodoc.pl and t/porting/diag.t
@@ -7,158 +18,82 @@ use strict;
 require 5.004;	# keep this compatible, an old perl is all we may have before
                 # we build the new one
 
-# Records the current pre-processor state:
-my @state;
-# Nested structure to group functions by the pre-processor conditions that
-# control when they are compiled:
-my %groups;
-
-sub current_group {
-    my $group = \%groups;
-    # Nested #if blocks are effectively &&ed together
-    # For embed.fnc, ordering within the && isn't relevant, so we can
-    # sort them to try to group more functions together.
-    foreach (sort @state) {
-        $group->{$_} ||= {};
-        $group = $group->{$_};
-    }
-    return $group->{''} ||= [];
-}
-
-sub add_level {
-    my ($level, $indent, $wanted) = @_;
-    my $funcs = $level->{''};
-    my @entries;
-    if ($funcs) {
-        if (!defined $wanted) {
-            @entries = @$funcs;
-        } else {
-            foreach (@$funcs) {
-                if ($_->[0] =~ /[AC]/) { # 'C' is like 'A' for our purposes
-                                         # here
-                    push @entries, $_ if $wanted eq 'A';
-                } elsif ($_->[0] =~ /E/) {
-                    push @entries, $_ if $wanted eq 'E';
-                } else {
-                    push @entries, $_ if $wanted eq '';
-                }
-            }
-        }
-        @entries = sort {$a->[2] cmp $b->[2]} @entries;
-    }
-    foreach (sort grep {length $_} keys %$level) {
-        my @conditional = add_level($level->{$_}, $indent . '  ', $wanted);
-        push @entries,
-            ["#${indent}if $_"], @conditional, ["#${indent}endif"]
-                if @conditional;
-    }
-    return @entries;
-}
-
 sub setup_embed {
     my $prefix = shift || '';
-    open IN, '<', $prefix . 'embed.fnc' or die $!;
-
-    my @embed;
-    my %seen;
-    my $macro_depth = 0;
-
-    while (<IN>) {
-        chomp;
-        next if /^:/;
-        next if /^$/;
-        while (s|\\$||) {
-            $_ .= <IN>;
-            chomp;
-        }
-        s/\s+$//;
-        my @args;
-        if (/^\s*(#|$)/) {
-            @args = $_;
-        }
-        else {
-            @args = split /\s*\|\s*/, $_;
-        }
-        if (@args == 1) {
-            if ($args[0] !~ /^#\s*(?:if|ifdef|ifndef|else|endif)/) {
-                die "Illegal line $. '$args[0]' in embed.fnc";
-            }
-            $macro_depth++ if $args[0] =~/^#\s*if(n?def)?\b/;
-            $macro_depth-- if $args[0] =~/^#\s*endif\b/;
-            die "More #endif than #if in embed.fnc:$." if $macro_depth < 0;
-        }
-        else  {
-            die "Illegal line (less than 3 fields) in embed.fnc:$.: $_"
-                unless @args >= 3;
-            my $name = $args[2];
-            # only check for duplicates outside of #if's - otherwise
-            # they may be alternate definitions of the same function
-            if ($macro_depth == 0) {
-                die "Duplicate function name: '$name' in embed.fnc:$."
-                    if exists $seen{$name};
-            }
-            $seen{$name} = 1;
-        }
-
-        push @embed, \@args;
-    }
-    die "More #if than #endif by the end of embed.fnc" if $macro_depth != 0;
-
-    close IN or die "Problem reading embed.fnc: $!";
+    my $parser= HeaderParser->new(
+        pre_process_content => sub {
+            my ($self,$line_data)= @_;
+            # HeaderParser knows how to parse and normalize embed_fnc.
+            # calling this here ensures sets up the embed subpacket.
+            $self->tidy_embed_fnc_entry($line_data);
+            my $embed= $line_data->{embed}
+                or return;
+        },
+        post_process_grouped_content => sub {
+            # sort the group content by name.
+            @{$_[1]}=
+                sort {
+                    $a->{embed}{name} cmp $b->{embed}{name}
+                } @{$_[1]};
+        },
+    )->read_file($prefix . 'embed.fnc');
+    my $lines= $parser->lines();
 
-    open IN, '<', $prefix . 'regen/opcodes' or die $!;
+    # add the opcode checker functions automatically.
+    open my $in_fh, '<', $prefix . 'regen/opcodes' or die $!;
     {
         my %syms;
 
-        while (<IN>) {
-            chomp;
-            next unless $_;
-            next if /^#/;
-            my $check = (split /\t+/, $_)[2];
+        my $line_num = 0;
+        while (my $line= <$in_fh>) {
+            $line_num++;
+            chomp($line);
+            next unless $line;
+            next if $line=~/^#/;
+            my $check = (split /\t+/, $line)[2];
             next if $syms{$check}++;
 
             # These are all indirectly referenced by globals.c.
-            push @embed, ['pR', 'OP *', $check, 'NN OP *o'];
+            my $new= HeaderLine->new(
+                cond => [["defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)"]],
+                raw => "pR|OP *|$check|NN OP *o",
+                line => "pR|OP *|$check|NN OP *o",
+                type => "content",
+                level => 1,
+                source => 'regen/opcodes',
+                start_line_num => $line_num,
+            );
+            $parser->tidy_embed_fnc_entry($new);
+            push @$lines, $new;
         }
     }
-    close IN or die "Problem reading regen/opcodes: $!";
+    close $in_fh
+        or die "Problem reading regen/opcodes: $!";
 
     # Cluster entries in embed.fnc that have the same #ifdef guards.
     # Also, split out at the top level the three classes of functions.
-    # Output structure is actually the same as input structure - an
-    # (ordered) list of array references, where the elements in the
-    # reference determine what it is - a reference to a 1-element array is a
-    # pre-processor directive, a reference to 2+ element array is a function.
-
-    my $current = current_group();
-
-    foreach (@embed) {
-        if (@$_ > 1) {
-            push @$current, $_;
-            next;
-        }
-        $_->[0] =~ s/^#\s+/#/;
-        $_->[0] =~ /^\S*/;
-        $_->[0] =~ s/^#ifdef\s+(\S+)/#if defined($1)/;
-        $_->[0] =~ s/^#ifndef\s+(\S+)/#if !defined($1)/;
-        if ($_->[0] =~ /^#if\s*(.*)/) {
-            push @state, $1;
-        } elsif ($_->[0] =~ /^#else\s*$/) {
-            die "Unmatched #else in embed.fnc" unless @state;
-            $state[-1] = "!($state[-1])";
-        } elsif ($_->[0] =~ m!^#endif\s*(?:/\*.*\*/)?$!) {
-            die "Unmatched #endif in embed.fnc" unless @state;
-            pop @state;
-        } else {
-            die "Unhandled pre-processor directive '$_->[0]' in embed.fnc";
-        }
-        $current = current_group();
-    }
-
-    return ([add_level(\%groups, '')],
-            [add_level(\%groups, '', '')],    # core
-            [add_level(\%groups, '', 'E')],   # ext
-            [add_level(\%groups, '', 'A')]);  # api
+    # The result for each group_content() calls is an arrayref containing
+    # HeaderLine objects, with the embed.fnc data prenormalized, and each
+    # conditional clause containing a sorted list of functions, with
+    # any further conditional clauses following.
+    # Note this is a normalized and relatively smart grouping, and we can
+    # handle if/elif and etc properly. At the cost of being a touch slow.
+
+    return (
+        $parser->group_content($lines,
+                sub { $_[1]->{embed} }),                # everything
+        $parser->group_content($lines,
+                sub { $_[1]->{embed} &&
+                      $_[1]->{embed}{flags}=~/[AC]/ }), # only API and private API
+        $parser->group_content($lines,
+                sub { $_[1]->{embed} &&
+                      $_[1]->{embed}{flags}!~/[AC]/ &&  # otherwise Extensions
+                      $_[1]->{embed}{flags}=~/[E]/ }),
+        $parser->group_content($lines,
+                sub { $_[1]->{embed} &&
+                      $_[1]->{embed}{flags}!~/[AC]/ &&  # everything else.
+                      $_[1]->{embed}{flags}!~/[E]/ }),
+    );
 }
 
 1;
Index: gnu/usr.bin/perl/regen/feature.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/feature.pl,v
diff -u -p -a -u -p -r1.6 feature.pl
--- gnu/usr.bin/perl/regen/feature.pl	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/feature.pl	21 Feb 2024 15:47:03 -0000
@@ -11,8 +11,9 @@
 # This script is normally invoked from regen.pl.
 
 BEGIN {
-    require './regen/regen_lib.pl';
     push @INC, './lib';
+    require './regen/regen_lib.pl';
+    require './regen/HeaderParser.pm';
 }
 
 use strict;
@@ -23,26 +24,28 @@ use warnings;
 
 # (feature name) => (internal name, used in %^H and macro names)
 my %feature = (
-    say             => 'say',
-    state           => 'state',
-    switch          => 'switch',
-    bitwise         => 'bitwise',
-    evalbytes       => 'evalbytes',
-    current_sub     => '__SUB__',
-    refaliasing     => 'refaliasing',
-    postderef_qq    => 'postderef_qq',
-    unicode_eval    => 'unieval',
-    declared_refs   => 'myref',
-    unicode_strings => 'unicode',
-    fc              => 'fc',
-    signatures      => 'signatures',
-    isa             => 'isa',
-    indirect        => 'indirect',
-    multidimensional => 'multidimensional',
-    bareword_filehandles => 'bareword_filehandles',
-    try             => 'try',
-    defer           => 'defer',
+    say                     => 'say',
+    state                   => 'state',
+    switch                  => 'switch',
+    bitwise                 => 'bitwise',
+    evalbytes               => 'evalbytes',
+    current_sub             => '__SUB__',
+    refaliasing             => 'refaliasing',
+    postderef_qq            => 'postderef_qq',
+    unicode_eval            => 'unieval',
+    declared_refs           => 'myref',
+    unicode_strings         => 'unicode',
+    fc                      => 'fc',
+    signatures              => 'signatures',
+    isa                     => 'isa',
+    indirect                => 'indirect',
+    multidimensional        => 'multidimensional',
+    bareword_filehandles    => 'bareword_filehandles',
+    try                     => 'try',
+    defer                   => 'defer',
     extra_paired_delimiters => 'more_delims',
+    module_true             => 'module_true',
+    class                   => 'class',
 );
 
 # NOTE: If a feature is ever enabled in a non-contiguous range of Perl
@@ -62,6 +65,11 @@ use constant V5_35  => sort grep {; $_ n
                                  && $_ ne 'indirect'
                                  && $_ ne 'multidimensional' } +V5_27, qw{isa signatures};
 
+use constant V5_37  => sort grep {; $_ ne 'bareword_filehandles' } +V5_35, qw{module_true};
+
+#
+# when updating features please also update the Pod entry for L</"FEATURES CHEAT SHEET">
+#
 my %feature_bundle = (
     all     => [ sort keys %feature ],
     default => [ qw{indirect multidimensional bareword_filehandles} ],
@@ -86,6 +94,8 @@ my %feature_bundle = (
     "5.33"  => [ +V5_27 ],
     # using 5.35 features bundle
     "5.35"  => [ +V5_35 ],
+    # using 5.37 features bundle
+    "5.37"  => [ +V5_37 ],
 );
 
 my @noops = qw( postderef lexical_subs );
@@ -142,12 +152,15 @@ for my $bund (
 my $HintShift;
 my $HintMask;
 my $Uni8Bit;
+my $hp = HeaderParser->new()->read_file("perl.h");
 
-open "perl.h", "<", "perl.h" or die "$0 cannot open perl.h: $!";
-while (readline "perl.h") {
-    next unless /#\s*define\s+(HINT_FEATURE_MASK|HINT_UNI_8_BIT)/;
+foreach my $line_data (@{$hp->lines}) {
+    next unless $line_data->{type} eq "content"
+            and $line_data->{sub_type} eq "#define";
+    my $line = $line_data->{line};
+    next unless $line=~/^\s*#\s*define\s+(HINT_FEATURE_MASK|HINT_UNI_8_BIT)/;
     my $is_u8b = $1 =~ 8;
-    /(0x[A-Fa-f0-9]+)/ or die "No hex number in:\n\n$_\n ";
+    $line=~/(0x[A-Fa-f0-9]+)/ or die "No hex number in:\n\n$line\n ";
     if ($is_u8b) {
 	$Uni8Bit = $1;
     }
@@ -155,21 +168,19 @@ while (readline "perl.h") {
 	my $hex = $HintMask = $1;
 	my $bits = sprintf "%b", oct $1;
 	$bits =~ /^0*1+(0*)\z/
-	 or die "Non-contiguous bits in $bits (binary for $hex):\n\n$_\n ";
+         or die "Non-contiguous bits in $bits (binary for $hex):\n\n$line\n ";
 	$HintShift = length $1;
 	my $bits_needed =
 	    length sprintf "%b", scalar keys %UniqueBundles;
 	$bits =~ /1{$bits_needed}/
 	    or die "Not enough bits (need $bits_needed)"
-		 . " in $bits (binary for $hex):\n\n$_\n ";
+                 . " in $bits (binary for $hex):\n\n$line\n ";
     }
     if ($Uni8Bit && $HintMask) { last }
 }
 die "No HINT_FEATURE_MASK defined in perl.h" unless $HintMask;
 die "No HINT_UNI_8_BIT defined in perl.h"    unless $Uni8Bit;
 
-close "perl.h";
-
 my @HintedBundles =
     ('default', grep !/[^\d.]/, sort values %UniqueBundles);
 
@@ -298,8 +309,13 @@ for (@HintedBundles) {
 print $h <<'EOH';
 #define FEATURE_BUNDLE_CUSTOM	(HINT_FEATURE_MASK >> HINT_FEATURE_SHIFT)
 
-#define CURRENT_HINTS \
+/* this is preserved for testing and asserts */
+#define OLD_CURRENT_HINTS \
     (PL_curcop == &PL_compiling ? PL_hints : PL_curcop->cop_hints)
+/* this is the same thing, but simpler (no if) as PL_hints expands
+   to PL_compiling.cop_hints */
+#define CURRENT_HINTS \
+    PL_curcop->cop_hints
 #define CURRENT_FEATURE_BUNDLE \
     ((CURRENT_HINTS & HINT_FEATURE_MASK) >> HINT_FEATURE_SHIFT)
 
@@ -485,8 +501,7 @@ read_only_bottom_close_and_rename($h);
 
 __END__
 package feature;
-
-our $VERSION = '1.72';
+our $VERSION = '1.82';
 
 FEATURES
 
@@ -508,13 +523,13 @@ feature - Perl pragma to enable new feat
     say "The case-folded version of $x is: " . fc $x;
 
 
-    # set features to match the :5.10 bundle, which may turn off or on
-    # multiple features (see below)
-    use feature ':5.10';
+    # set features to match the :5.36 bundle, which may turn off or on
+    # multiple features (see "FEATURE BUNDLES" below)
+    use feature ':5.36';
 
 
-    # implicitly loads :5.10 feature bundle
-    use v5.10;
+    # implicitly loads :5.36 feature bundle
+    use v5.36;
 
 =head1 DESCRIPTION
 
@@ -556,6 +571,8 @@ disable I<all> features (an unusual requ
 
 =head1 AVAILABLE FEATURES
 
+Read L</"FEATURE BUNDLES"> for the feature cheat sheet summary.
+
 =head2 The 'say' feature
 
 C<use feature 'say'> tells the compiler to enable the Raku-inspired
@@ -588,6 +605,9 @@ given/when construct.
 See L<perlsyn/"Switch Statements"> for details.
 
 This feature is available starting with Perl 5.10.
+It is deprecated starting with Perl 5.38, and using
+C<given>, C<when> or smartmatch will throw a warning.
+It will be removed in Perl 5.42.
 
 =head2 The 'unicode_strings' feature
 
@@ -678,9 +698,10 @@ regardless of what feature declarations 
 =head2 The 'postderef' and 'postderef_qq' features
 
 The 'postderef_qq' feature extends the applicability of L<postfix
-dereference syntax|perlref/Postfix Dereference Syntax> so that postfix array
-and scalar dereference are available in double-quotish interpolations. For
-example, it makes the following two statements equivalent:
+dereference syntax|perlref/Postfix Dereference Syntax> so that
+postfix array dereference, postfix scalar dereference, and
+postfix array highest index access are available in double-quotish interpolations.
+For example, it makes the following two statements equivalent:
 
   my $s = "[@{ $h->{a} }]";
   my $s = "[$h->{a}->@*]";
@@ -771,7 +792,7 @@ warn when you use the feature, unless yo
     no warnings "experimental::declared_refs";
 
 This allows a reference to a variable to be declared with C<my>, C<state>,
-our C<our>, or localized with C<local>.  It is intended mainly for use in
+or C<our>, or localized with C<local>.  It is intended mainly for use in
 conjunction with the "refaliasing" feature.  See L<perlref/Declaring a
 Reference to a Variable> for examples.
 
@@ -823,7 +844,7 @@ previous versions, it was simply on all 
 You can use the L<multidimensional> module on CPAN to disable
 multidimensional array emulation for older versions of Perl.
 
-=head2 The 'bareword_filehandles' feature.
+=head2 The 'bareword_filehandles' feature
 
 This feature enables bareword filehandles for builtin functions
 operations, a generally discouraged practice.  It is enabled by
@@ -839,7 +860,7 @@ previous versions it was simply on all t
 You can use the L<bareword::filehandles> module on CPAN to disable
 bareword filehandles for older versions of perl.
 
-=head2 The 'try' feature.
+=head2 The 'try' feature
 
 B<WARNING>: This feature is still experimental and the implementation may
 change or be removed in future versions of Perl.  For this reason, Perl will
@@ -877,6 +898,10 @@ This feature enables the use of more pai
 traditional four, S<C<< <  > >>>, S<C<( )>>, S<C<{ }>>, and S<C<[ ]>>.  When
 this feature is on, for example, you can say S<C<qrE<171>patE<187>>>.
 
+As with any usage of non-ASCII delimiters in a UTF-8-encoded source file, you
+will want to ensure the parser will decode the source code from UTF-8 bytes
+with a declaration such as C<use utf8>.
+
 This feature is available starting in Perl 5.36.
 
 The complete list of accepted paired delimiters as of Unicode 14.0 is:
@@ -1269,6 +1294,25 @@ The complete list of accepted paired del
  🢫  🢪    U+1F8AB, U+1F8AA RIGHT/LEFTWARDS FRONT-TILTED SHADOWED WHITE
                           ARROW
 
+=head2 The 'module_true' feature
+
+This feature removes the need to return a true value at the end of a module
+loaded with C<require> or C<use>. Any errors during compilation will cause
+failures, but reaching the end of the module when this feature is in effect
+will prevent C<perl> from throwing an exception that the module "did not return
+a true value".
+
+=head2 The 'class' feature
+
+B<WARNING>: This feature is still experimental and the implementation may
+change or be removed in future versions of Perl.  For this reason, Perl will
+warn when you use the feature, unless you have explicitly disabled the warning:
+
+    no warnings "experimental::class";
+
+This feature enables the C<class> block syntax and other associated keywords
+which implement the "new" object system, previously codenamed "Corinna".
+
 =head1 FEATURE BUNDLES
 
 It's possible to load multiple features together, using
@@ -1311,12 +1355,12 @@ main compilation unit (that is, the one-
 By explicitly requiring a minimum Perl version number for your program, with
 the C<use VERSION> construct.  That is,
 
-    use v5.10.0;
+    use v5.36.0;
 
 will do an implicit
 
     no feature ':all';
-    use feature ':5.10';
+    use feature ':5.36';
 
 and so on.  Note how the trailing sub-version
 is automatically stripped from the
@@ -1324,7 +1368,7 @@ version.
 
 But to avoid portability warnings (see L<perlfunc/use>), you may prefer:
 
-    use 5.010;
+    use 5.036;
 
 with the same effect.
 
Index: gnu/usr.bin/perl/regen/keywords.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/keywords.pl,v
diff -u -p -a -u -p -r1.5 keywords.pl
--- gnu/usr.bin/perl/regen/keywords.pl	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/regen/keywords.pl	21 Feb 2024 15:47:03 -0000
@@ -51,6 +51,10 @@ my %feature_kw = (
     catch     => 'try',
     finally   => 'try',
     defer     => 'defer',
+    class     => 'class',
+    field     => 'class',
+    method    => 'class',
+    ADJUST    => 'class',
 );
 
 my %pos = map { ($_ => 1) } @{$by_strength{'+'}};
@@ -119,6 +123,7 @@ __END__
 +__DATA__
 +__END__
 -__SUB__
++ADJUST
 +AUTOLOAD
 +BEGIN
 +UNITCHECK
@@ -144,6 +149,7 @@ __END__
 -chown
 -chr
 -chroot
+-class
 -close
 -closedir
 -cmp
@@ -179,6 +185,7 @@ __END__
 -exp
 -fc
 -fcntl
+-field
 -fileno
 +finally
 -flock
@@ -244,6 +251,7 @@ __END__
 -lt
 +m
 +map
+-method
 -mkdir
 -msgctl
 -msgget
Index: gnu/usr.bin/perl/regen/mg_vtable.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/mg_vtable.pl,v
diff -u -p -a -u -p -r1.5 mg_vtable.pl
--- gnu/usr.bin/perl/regen/mg_vtable.pl	15 Feb 2023 01:36:35 -0000	1.5
+++ gnu/usr.bin/perl/regen/mg_vtable.pl	21 Feb 2024 15:47:03 -0000
@@ -168,10 +168,17 @@ my %mg =
                      desc => 'Tied scalar or handle' },
      qr => { char => 'r', vtable => 'regexp', value_magic => 1, 
              readonly_acceptable => 1, desc => 'Precompiled qr// regex' },
+
+     hook => { char => 'Z',
+         vtable => 'hook', desc => '%{^HOOK} hash' },
+     hookelem => { char => 'z',
+         vtable => 'hookelem', desc => '%{^HOOK} hash element' },
+
      sig => { char => 'S', vtable => 'sig',
 		      desc => '%SIG hash' },
      sigelem => { char => 's', vtable => 'sigelem',
                   desc => '%SIG hash element' },
+
      taint => { char => 't', vtable => 'taint', value_magic => 1,
                 desc => 'Taintedness' },
      uvar => { char => 'U', vtable => 'uvar',
@@ -202,21 +209,28 @@ my %mg =
                 desc => 'Extra data for restricted hashes' },
      arylen_p => { char => '@', value_magic => 1,
                    desc => 'To move arylen out of XPVAV' },
-     ext => { char => '~', desc => 'Available for use by extensions',
+     ext => { char => '~', desc => 'Variable magic available for use by extensions',
               readonly_acceptable => 1 },
+     extvalue => { char => '^', desc => 'Value magic available for use by extensions',
+              readonly_acceptable => 1, value_magic => 1 },
      checkcall => { char => ']', value_magic => 1, vtable => 'checkcall',
                     desc => 'Inlining/mutation of call to this CV'},
      debugvar => { char => '*', desc => '$DB::single, signal, trace vars',
                    vtable => 'debugvar' },
      lvref => { char => '\\', vtable => 'lvref',
                   desc => "Lvalue reference constructor" },
+     destruct => {
+        char        => "X",
+        vtable      => 'destruct',
+        desc        => "destruct callback",
+        value_magic => 1,
+     },
 );
 
 
-# %sig
+# %vtable_conf
 #
 # This hash is mainly concerned with populating the vtable.
-# (despite the name it has nothing to do with signals!)
 #
 # These have a subtly different "namespace" from the magic types.
 #
@@ -245,9 +259,9 @@ my %mg =
 #    dup
 #    local
 #       For each specified method, add a vtable function pointer
-#       of the form "Perl_magic_$sig{foo}{get}" etc
+#       of the form "Perl_magic_$vtable_conf{foo}{get}" etc
 
-my %sig =
+my %vtable_conf =
     (
      'sv' => {get => 'get', set => 'set'},
      'env' => {set => 'set_all_env', clear => 'clear_all_env'},
@@ -255,6 +269,10 @@ my %sig =
      'sig' => { set => 'setsigall' },
      'sigelem' => {get => 'getsig', set => 'setsig', clear => 'clearsig',
                    cond => '#ifndef PERL_MICRO'},
+
+     'hook' => { set => 'sethookall', clear => 'clearhookall' },
+     'hookelem' => {set => 'sethook', clear => 'clearhook'},
+
      'pack' => {len => 'sizepack', clear => 'wipepack'},
      'packelem' => {get => 'getpack', set => 'setpack', clear => 'clearpack'},
      'dbline' => {set => 'setdbline'},
@@ -287,6 +305,7 @@ my %sig =
      'checkcall' => {copy => 'copycallchecker'},
      'debugvar' => { set => 'setdebugvar', get => 'getdebugvar' },
      'lvref' => {set => 'setlvref'},
+     'destruct' => {free => 'freedestruct'},
 );
 
 
@@ -427,6 +446,7 @@ EOH
                     ($desc, @cont) = $desc =~ /(.{1,$desc_wrap})(?: |\z)/g
                 }
             }
+            s/\s+\z// for $desc, @cont;
             printf $format, $type, $vtbl, $desc;
             printf $format, '', '', $_ foreach @cont;
         }
@@ -453,9 +473,9 @@ EOH
 }
 
 
-# Process %sig - everything goes to mg_vtable.h
+# Process %vtable_conf - everything goes to mg_vtable.h
 
-my @names = sort keys %sig;
+my @names = sort keys %vtable_conf;
 {
     my $want = join ",\n    ", (map {"want_vtbl_$_"} @names), 'magic_vtable_max';
     my $names = join qq{",\n    "}, @names;
@@ -503,7 +523,7 @@ my @vtable_names;
 my @aliases;
 
 while (my $name = shift @names) {
-    my $data = $sig{$name};
+    my $data = $vtable_conf{$name};
     push @vtable_names, $name;
     my @funcs = map {
         $data->{$_} ? "Perl_magic_$data->{$_}" : 0;
Index: gnu/usr.bin/perl/regen/mk_PL_charclass.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/mk_PL_charclass.pl,v
diff -u -p -a -u -p -r1.6 mk_PL_charclass.pl
--- gnu/usr.bin/perl/regen/mk_PL_charclass.pl	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/mk_PL_charclass.pl	21 Feb 2024 15:47:03 -0000
@@ -13,7 +13,7 @@ use Unicode::UCD 'prop_invlist';
 # an application to see if the code point "i" has a particular property, it
 # just does
 #    'PL_charclass[i] & BIT'
-# The bit names are of the form '_CC_property_suffix', where 'CC' stands for
+# The bit names are of the form 'CC_property_suffix_', where 'CC' stands for
 # character class, and 'property' is the corresponding property, and 'suffix'
 # is one of '_A' to mean the property is true only if the corresponding code
 # point is ASCII, and '_L1' means that the range includes any Latin1
@@ -277,7 +277,7 @@ foreach my $bit_name (sort keys %bit_nam
     foreach my $cp (@code_points) {
         last if $cp > 0xFF;
         $bits[$cp] .= '|' if $bits[$cp];
-        $bits[$cp] .= "(1U<<_CC_$bit_name)";
+        $bits[$cp] .= "(1U<<CC_${bit_name}_)";
     }
 }
 
Index: gnu/usr.bin/perl/regen/mk_invlists.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/mk_invlists.pl,v
diff -u -p -a -u -p -r1.6 mk_invlists.pl
--- gnu/usr.bin/perl/regen/mk_invlists.pl	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/mk_invlists.pl	21 Feb 2024 15:47:03 -0000
@@ -11,12 +11,15 @@ use Unicode::UCD qw(prop_aliases
                     num
                     charblock
                    );
+use constant DEBUG => $ENV{DEBUG} // 0;
 require './regen/regen_lib.pl';
 require './regen/charset_translations.pl';
 require './lib/unicore/UCD.pl';
 require './regen/mph.pl';
 use re "/aa";
 
+print "Starting...\n" if DEBUG;
+
 # This program outputs charclass_invlists.h, which contains various inversion
 # lists in the form of C arrays that are to be used as-is for inversion lists.
 # Thus, the lists it contains are essentially pre-compiled, and need only a
@@ -72,10 +75,10 @@ print $out_fh <<'EOF';
  * encompassing all of the Unicode BMP, and thus including all the economically
  * important world scripts.  At 12 most of them are: including Arabic,
  * Cyrillic, Greek, Hebrew, Indian subcontinent, Latin, and Thai; but not Han,
- * Japanese, nor Korean.  (The regarglen structure in regnodes.h is a U8, and
- * the trie types TRIEC and AHOCORASICKC are larger than U8 for shift values
- * above 12.)  Be sure to benchmark before changing, as larger sizes do
- * significantly slow down the test suite */
+ * Japanese, nor Korean.  The regnode sizing data structure in regnodes.h currently
+ * uses a U8, and the trie types TRIEC and AHOCORASICKC are larger than U8 for
+ * shift values above 12.)  Be sure to benchmark before changing, as larger sizes
+ * do significantly slow down the test suite. */
 
 EOF
 
@@ -346,6 +349,8 @@ sub output_invlist ($$;$) {
     my $invlist = shift;     # Reference to inversion list array
     my $charset = shift // "";  # name of character set for comment
 
+    print "  output_invlist($name) $charset\n" if DEBUG;
+
     die "No inversion list for $name" unless defined $invlist
                                              && ref $invlist eq 'ARRAY';
 
@@ -392,6 +397,8 @@ sub output_invmap ($$$$$$$) {
                                 # property's standard possible values
     my $charset = shift // "";  # name of character set for comment
 
+    print "  output_invmap($name,$prop_name) $charset\n" if DEBUG;
+
     # Output the inversion map $invmap for property $prop_name, but use $name
     # as the actual data structure's name.
 
@@ -753,7 +760,7 @@ sub output_invmap ($$$$$$$) {
         switch_pound_if($name, $where, $charset);
 
         # The inversion lists here have to be UV because inversion lists are
-        # capable of storing any code point, and even though the the ones here
+        # capable of storing any code point, and even though the ones here
         # are only Unicode ones, which need just 21 bits, they are linked to
         # directly, rather than copied.  The inversion map and aux tables also
         # only need be 21 bits, and so we can get away with declaring them
@@ -968,6 +975,7 @@ sub mk_invlist_from_sorted_cp_list {
     return @invlist;
 }
 
+print "Reading Case Folding rules.\n" if DEBUG;
 # Read in the Case Folding rules, and construct arrays of code points for the
 # properties we need.
 my ($cp_ref, $folds_ref, $format, $default) = prop_invmap("Case_Folding");
@@ -975,6 +983,9 @@ die "Could not find inversion map for Ca
 die "Incorrect format '$format' for Case_Folding inversion map"
                                                     unless $format eq 'al'
                                                            || $format eq 'a';
+print "Finished reading Case Folding rules.\n" if DEBUG;
+
+
 sub _Perl_IVCF {
 
     # This creates a map of the inversion of case folding. i.e., given a
@@ -2460,6 +2471,8 @@ end_file_pound_if;
 #
 # An initial & means to use the subroutine from this file instead of an
 # official inversion list.
+#
+print "Computing unicode properties\n" if DEBUG;
 
 # Below is the list of property names to generate.  '&' means to use the
 # subroutine to generate the inversion list instead of the generic code
@@ -3083,6 +3096,8 @@ foreach my $prop (@props) {
     }
 }
 
+print "Finished computing unicode properties\n" if DEBUG;
+
 print $out_fh "\nconst char * const deprecated_property_msgs[] = {\n\t";
 print $out_fh join ",\n\t", map { "\"$_\"" } @deprecated_messages;
 print $out_fh "\n};\n";
@@ -3163,6 +3178,7 @@ my %joined_values;
 # the C compiler.
 my @values_indices;
 
+print "Computing short unicode properties\n" if DEBUG;
 # Go through each property which is specifiable by \p{prop=value}, and create
 # a hash with the keys being the canonicalized short property names, and the
 # values for each property being all possible values that it can take on.
@@ -3194,6 +3210,7 @@ for my $property (sort { prop_name_for_c
         }
     }
 }
+print "Finished computing short unicode properties\n" if DEBUG;
 
 # Also include the old style block names, using the recipe given in
 # Unicode::UCD
@@ -3201,6 +3218,7 @@ foreach my $block (prop_values('block'))
     push @{$all_values{'blk'}}, charblock((prop_invlist("block=$block"))[0]);
 }
 
+print "Creating property tables\n" if DEBUG;
 # Now create output tables for each property in @equals_properties (the keys
 # in %all_values) each containing that property's possible values as computed
 # just above.
@@ -3280,6 +3298,8 @@ output_WB_table();
 
 end_file_pound_if;
 
+print "Computing fold data\n" if DEBUG;
+
 print $out_fh <<"EOF";
 
 /* More than one code point may have the same code point as their fold.  This
@@ -3299,7 +3319,10 @@ my @sources = qw(regen/mk_invlists.pl
                );
 {
     # Depend on mktables’ own sources.  It’s a shorter list of files than
-    # those that Unicode::UCD uses.
+    # those that Unicode::UCD uses.  Some may not actually have an effect on
+    # the output of this program, but easier to just include all of them, and
+    # no real harm in doing so, as it is rare for one such to change without
+    # the others doing so as well.
     if (! open my $mktables_list, '<', $sources_list) {
 
           # This should force a rebuild once $sources_list exists
@@ -3349,6 +3372,8 @@ my $uni_pl = open_new('lib/unicore/uni_k
 }
 
 read_only_bottom_close_and_rename($uni_pl, \@sources);
+
+print "Computing minimal perfect hash for unicode properties.\n" if DEBUG;
 
 if (my $file= $ENV{DUMP_KEYWORDS_FILE}) {
     require Data::Dumper;
Index: gnu/usr.bin/perl/regen/op_private
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/op_private,v
diff -u -p -a -u -p -r1.4 op_private
--- gnu/usr.bin/perl/regen/op_private	15 Feb 2023 01:36:35 -0000	1.4
+++ gnu/usr.bin/perl/regen/op_private	21 Feb 2024 15:47:03 -0000
@@ -199,7 +199,7 @@ use strict;
     # find which ops use 0,1,2,3 or 4 bits of op_private for arg count info
 
     $args0{$_} = 1 for qw(entersub avhvswitch
-                       rv2hv);                  # UNOPs that usurp bit 0
+                       rv2hv aelemfastlex_store);                  # UNOPs that usurp bit 0
 
     # Historically, bit ops used bit 0 to indicate 'use integer' in scope;
     # For now, ban use of bits 0..1 as an arg count, in order to detect
@@ -318,7 +318,7 @@ addbits($_, 7 => qw(OPpLVAL_INTRO LVINTR
     for qw(gvsv rv2sv rv2hv rv2gv rv2av aelem helem aslice split
            hslice delete padsv padav padhv enteriter entersub padrange
            pushmark cond_expr refassign lvref lvrefslice lvavref multideref
-           multiconcat),
+           multiconcat padsv_store undef emptyavhv),
            'list', # this gets set in my_attrs() for some reason
            ;
 
@@ -499,7 +499,8 @@ addbits($_, 7 => qw(OPpPV_IS_UTF8 UTF)) 
 #   \state $foo = ...
 
 addbits($_, 6 => qw(OPpPAD_STATE STATE))  for qw(padav padhv padsv lvavref
-                                                 lvref refassign pushmark);
+                                                 lvref refassign pushmark
+                                                 padsv_store undef emptyavhv);
 
 # NB: both sassign and aassign use the 'OPpASSIGN' naming convention
 # for their private flags
@@ -626,7 +627,7 @@ addbits('padrange',
 
 
 
-for (qw(aelemfast aelemfast_lex)) {
+for (qw(aelemfast aelemfast_lex aelemfastlex_store)) {
     addbits($_,
         '0..7' =>  {
                 label     => 'key',
@@ -738,6 +739,8 @@ addbits('entereval',
     3 => qw(OPpEVAL_BYTES        BYTES  ),
     4 => qw(OPpEVAL_COPHH        COPHH  ), # Construct %^H from COP hints
     5 => qw(OPpEVAL_RE_REPARSING REPARSE), # eval_sv(..., G_RE_REPARSING)
+    6 => qw(OPpEVAL_EVALSV       EVALSV ), # called from eval_sv()
+
 );
 
 
@@ -849,6 +852,39 @@ addbits('multiconcat',
 
 addbits('pushdefer',
     7 => qw(OPpDEFER_FINALLY FINALLY),
+);
+
+# undef does not have the T flag set in regen/opcodes (and therefore
+# automatically get the TARGMY flag added), as this causes S_maybe_targlex
+# to do an unwanted optimization prior to Perl_rpeep.
+addbits('undef',
+    4 => qw(OPpTARGET_MY TARGMY),
+    5 => qw(OPpUNDEF_KEEP_PV KEEP_PV),
+);
+
+addbits('emptyavhv',
+  # 7       OPpLVAL_INTRO
+  # 6       OPpPAD_STATE
+    5 => qw(OPpEMPTYAVHV_IS_HV ANONHASH),
+  # 4       OPpTARGET_MY
+);
+
+addbits('argdefelem',
+    7 => qw(OPpARG_IF_UNDEF  IF_UNDEF),
+    6 => qw(OPpARG_IF_FALSE  IF_FALSE),
+);
+
+addbits('helemexistsor',
+    7 => qw(OPpHELEMEXISTSOR_DELETE DELETE),
+);
+
+addbits('methstart',
+    7 => qw(OPpINITFIELDS INITFIELDS),
+);
+
+addbits('initfield',
+    1 => qw(OPpINITFIELD_AV INITFIELD_AV),
+    2 => qw(OPpINITFIELD_HV INITFIELD_HV),
 );
 
 1;
Index: gnu/usr.bin/perl/regen/opcode.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/opcode.pl,v
diff -u -p -a -u -p -r1.6 opcode.pl
--- gnu/usr.bin/perl/regen/opcode.pl	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/opcode.pl	21 Feb 2024 15:47:03 -0000
@@ -16,7 +16,27 @@
 #
 # This script is normally invoked from regen.pl.
 
-use strict;
+use v5.26;
+use warnings;
+
+sub generate_opcode_h;
+sub generate_opcode_h_epilogue;
+sub generate_opcode_h_prologue;
+sub generate_opcode_h_defines;
+sub generate_opcode_h_opnames;
+sub generate_opcode_h_pl_check;
+sub generate_opcode_h_pl_opargs;
+sub generate_opcode_h_pl_ppaddr;
+
+sub generate_opnames_h;
+sub generate_opnames_h_opcode_enum;
+sub generate_opnames_h_epilogue;
+sub generate_opnames_h_opcode_predicates;
+
+sub generate_pp_proto_h;
+
+sub generate_b_op_private_pm;
+
 my $restrict_to_core = "if defined(PERL_CORE) || defined(PERL_EXT)";
 
 BEGIN {
@@ -24,23 +44,6 @@ BEGIN {
     require './regen/regen_lib.pl';
 }
 
-my $oc = open_new('opcode.h', '>',
-                  {by => 'regen/opcode.pl', from => 'its data',
-                   file => 'opcode.h', style => '*',
-                   copyright => [1993 .. 2007]});
-
-my $on = open_new('opnames.h', '>',
-                  { by => 'regen/opcode.pl', from => 'its data', style => '*',
-                    file => 'opnames.h', copyright => [1999 .. 2008] });
-
-my $oprivpm = open_new('lib/B/Op_private.pm', '>',
-                  { by => 'regen/opcode.pl',
-                    from => "data in\nregen/op_private "
-                           ."and pod embedded in regen/opcode.pl",
-                    style => '#',
-                    file => 'lib/B/Op_private.pm',
-                    copyright => [2014 .. 2014] });
-
 # Read 'opcodes' data.
 
 my %seen;
@@ -918,21 +921,119 @@ require './regen/op_private';
 #use Data::Dumper;
 #print Dumper \%LABELS, \%DEFINES, \%FLAGS, \%BITFIELDS;
 
-print $oc "#$restrict_to_core\n\n";
+# Emit allowed argument types.
+
+my $ARGBITS = 32;
+
+my %argnum = (
+    'S',  1,        # scalar
+    'L',  2,        # list
+    'A',  3,        # array value
+    'H',  4,        # hash value
+    'C',  5,        # code value
+    'F',  6,        # file value
+    'R',  7,        # scalar reference
+);
+
+my %opclass = (
+    '0',  0,        # baseop
+    '1',  1,        # unop
+    '2',  2,        # binop
+    '|',  3,        # logop
+    '@',  4,        # listop
+    '/',  5,        # pmop
+    '$',  6,        # svop_or_padop
+    '#',  7,        # padop
+    '"',  8,        # pvop_or_svop
+    '{',  9,        # loop
+    ';',  10,       # cop
+    '%',  11,       # baseop_or_unop
+    '-',  12,       # filestatop
+    '}',  13,       # loopexop
+    '.',  14,       # methop
+    '+',  15,       # unop_aux
+);
+
+my %opflags = (
+    'm' =>   1,     # needs stack mark
+    'f' =>   2,     # fold constants
+    's' =>   4,     # always produces scalar
+    't' =>   8,     # needs target scalar
+    'T' =>   8 | 16,    # ... which may be lexical
+    'i' =>   0,     # always produces integer (unused since e7311069)
+    'I' =>  32,     # has corresponding int op
+    'd' =>  64,     # danger, make temp copy in list assignment
+    'u' => 128,     # defaults to $_
+);
+
+generate_opcode_h;
+generate_opnames_h;
+generate_pp_proto_h;
+generate_b_op_private_pm;
+
+sub gen_op_is_macro {
+    my ($op_is, $macname) = @_;
+    if (keys %$op_is) {
+        
+        # get opnames whose numbers are lowest and highest
+        my ($first, @rest) = sort {
+            $op_is->{$a} <=> $op_is->{$b}
+        } keys %$op_is;
+        
+        my $last = pop @rest;   # @rest slurped, get its last
+        die "Invalid range of ops: $first .. $last\n" unless $last;
+
+        print "\n#define $macname(op)   \\\n\t(";
+
+        # verify that op-ct matches 1st..last range (and fencepost)
+        # (we know there are no dups)
+        if ( $op_is->{$last} - $op_is->{$first} == scalar @rest + 1) {
+            
+            # contiguous ops -> optimized version
+            print "(op) >= OP_" . uc($first)
+                . " && (op) <= OP_" . uc($last);
+        }
+        else {
+            print join(" || \\\n\t ",
+                           map { "(op) == OP_" . uc() } sort keys %$op_is);
+        }
+        print ")\n";
+    }
+}
+
+sub generate_opcode_h {
+    my $oc = open_new( 'opcode.h', '>', {
+        by        => 'regen/opcode.pl',
+        copyright => [1993 .. 2007],
+        file      => 'opcode.h',
+        from      => 'its data',
+        style     => '*',
+    });
+
+    my $old = select $oc;
+
+    generate_opcode_h_prologue;
+    generate_opcode_h_defines;
+    generate_opcode_h_opnames;
+    generate_opcode_h_pl_ppaddr;
+    generate_opcode_h_pl_check;
+    generate_opcode_h_pl_opargs;
+    generate_opcode_h_epilogue;
 
-# Emit defines.
+    select $old;
+}
 
-{
+my @unimplemented;
+sub generate_opcode_h_defines {
     my $last_cond = '';
-    my @unimplemented;
 
     sub unimplemented {
         if (@unimplemented) {
-            print $oc "#else\n";
+            print "#else\n";
             foreach (@unimplemented) {
-                print $oc "#define $_ Perl_unimplemented_op\n";
+                print "#define $_ Perl_unimplemented_op\n";
             }
-            print $oc "#endif\n";
+            print "#endif\n";
             @unimplemented = ();
         }
 
@@ -947,289 +1048,277 @@ print $oc "#$restrict_to_core\n\n";
             unimplemented();
             $last_cond = $cond;
             if ($last_cond) {
-                print $oc "$last_cond\n";
+                print "$last_cond\n";
             }
         }
         push @unimplemented, $op_func if $last_cond;
-        print $oc "#define $op_func $impl\n" if $impl ne $op_func;
+        print "#define $op_func $impl\n" if $impl ne $op_func;
     }
     # If the last op was conditional, we need to close it out:
     unimplemented();
+
+    print "\n#endif /* End of $restrict_to_core */\n\n";
 }
-print $oc "\n#endif /* End of $restrict_to_core */\n\n";
 
-print $on "typedef enum opcode {\n";
+sub generate_opcode_h_epilogue {
+    print "\n\n";
+    OP_PRIVATE::print_defines(select);
+    OP_PRIVATE::print_PL_op_private_tables(select);
+    read_only_bottom_close_and_rename(select);
+}
 
-my $i = 0;
-for (@ops) {
-      print $on "\t", tab(3,"OP_\U$_"), " = ", $i++, ",\n";
+sub generate_opcode_h_prologue {
+    print "#$restrict_to_core\n\n";
 }
-print $on "\t", tab(3,"OP_max"), "\n";
-print $on "} opcode;\n";
-print $on "\n#define MAXO ", scalar @ops, "\n";
-print $on "#define OP_FREED MAXO\n";
 
-# Emit op names and descriptions.
+sub generate_opcode_h_opnames {
+    # Emit op names and descriptions.
+    print <<~'END';
+    START_EXTERN_C
 
-print $oc <<'END';
-START_EXTERN_C
+    EXTCONST char* const PL_op_name[] INIT({
+    END
 
-#ifndef DOINIT
-EXTCONST char* const PL_op_name[];
-#else
-EXTCONST char* const PL_op_name[] = {
-END
+    for (@ops) {
+        print qq(\t"$_",\n);
+    }
 
-for (@ops) {
-    print $oc qq(\t"$_",\n);
-}
+    print <<~'END';
+            "freed",
+    });
 
-print $oc <<'END';
-        "freed",
-};
-#endif
+    EXTCONST char* const PL_op_desc[] INIT({
+    END
 
-#ifndef DOINIT
-EXTCONST char* const PL_op_desc[];
-#else
-EXTCONST char* const PL_op_desc[] = {
-END
+    for (@ops) {
+        my($safe_desc) = $desc{$_};
+
+        # Have to escape double quotes and escape characters.
+        $safe_desc =~ s/([\\"])/\\$1/g;
 
-for (@ops) {
-    my($safe_desc) = $desc{$_};
+        print qq(\t"$safe_desc",\n);
+    }
 
-    # Have to escape double quotes and escape characters.
-    $safe_desc =~ s/([\\"])/\\$1/g;
+    print <<~'END';
+        "freed op",
+    });
 
-    print $oc qq(\t"$safe_desc",\n);
+    END_EXTERN_C
+    END
 }
 
-print $oc <<'END';
-        "freed op",
-};
-#endif
+sub generate_opcode_h_pl_check {
+    print <<~'END';
 
-END_EXTERN_C
-END
+    EXT Perl_check_t PL_check[] /* or perlvars.h */
+    INIT({
+    END
+
+    for (@ops) {
+        print "\t", tab(3, "Perl_$check{$_},"), "\t/* $_ */\n";
+    }
 
-# Emit ppcode switch array.
+    print <<~'END';
+    });
+    END
+}
 
-print $oc <<'END';
+sub generate_opcode_h_pl_opargs {
+    my $OCSHIFT = 8;
+    my $OASHIFT = 12;
 
-START_EXTERN_C
+    print <<~'END';
 
-EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
-#if defined(DOINIT)
-= {
-END
+    EXTCONST U32 PL_opargs[] INIT({
+    END
 
-for (@ops) {
-    my $op_func = "Perl_pp_$_";
-    my $name = $alias{$_};
-    if ($name && $name->[0] ne $op_func) {
-        print $oc "\t$op_func,\t/* implemented by $name->[0] */\n";
-    }
-    else {
-        print $oc "\t$op_func,\n";
+    for my $op (@ops) {
+        my $argsum = 0;
+        my $flags = $flags{$op};
+        for my $flag (keys %opflags) {
+            if ($flags =~ s/$flag//) {
+                die "Flag collision for '$op' ($flags{$op}, $flag)\n"
+                    if $argsum & $opflags{$flag};
+                $argsum |= $opflags{$flag};
+            }
+        }
+        die qq[Opcode '$op' has no class indicator ($flags{$op} => $flags)\n]
+            unless exists $opclass{$flags};
+        $argsum |= $opclass{$flags} << $OCSHIFT;
+        my $argshift = $OASHIFT;
+        for my $arg (split(' ',$args{$op})) {
+            if ($arg =~ s/^D//) {
+                # handle 1st, just to put D 1st.
+            }
+            if ($arg =~ /^F/) {
+                # record opnums of these opnames
+                $arg =~ s/s//;
+                $arg =~ s/-//;
+                $arg =~ s/\+//;
+            } elsif ($arg =~ /^S./) {
+                $arg =~ s/<//;
+                $arg =~ s/\|//;
+            }
+            my $argnum = ($arg =~ s/\?//) ? 8 : 0;
+            die "op = $op, arg = $arg\n"
+                unless exists $argnum{$arg};
+            $argnum += $argnum{$arg};
+            die "Argument overflow for '$op'\n"
+                if $argshift >= $ARGBITS ||
+                $argnum > ((1 << ($ARGBITS - $argshift)) - 1);
+            $argsum += $argnum << $argshift;
+            $argshift += 4;
+        }
+        $argsum = sprintf("0x%08x", $argsum);
+        print "\t", tab(3, "$argsum,"), "/* $op */\n";
     }
-}
 
-print $oc <<'END';
+    print <<~'END';
+    });
+
+    END_EXTERN_C
+    END
 }
-#endif
-;
 
-EXT Perl_check_t PL_check[] /* or perlvars.h */
-#if defined(DOINIT)
-= {
-END
+sub generate_opcode_h_pl_ppaddr {
+    # Emit ppcode switch array.
 
-for (@ops) {
-    print $oc "\t", tab(3, "Perl_$check{$_},"), "\t/* $_ */\n";
-}
+    print <<~'END';
 
-print $oc <<'END';
-}
-#endif
-;
+    START_EXTERN_C
 
-#ifndef DOINIT
-EXTCONST U32 PL_opargs[];
-#else
-EXTCONST U32 PL_opargs[] = {
-END
+    EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
+    INIT({
+    END
 
-# Emit allowed argument types.
+    for (@ops) {
+        my $op_func = "Perl_pp_$_";
+        my $name = $alias{$_};
+        if ($name && $name->[0] ne $op_func) {
+            print "\t$op_func,\t/* implemented by $name->[0] */\n";
+        } else {
+            print "\t$op_func,\n";
+        }
+    }
 
-my $ARGBITS = 32;
+    print <<~'END';
+    });
+    END
+}
 
-my %argnum = (
-    'S',  1,		# scalar
-    'L',  2,		# list
-    'A',  3,		# array value
-    'H',  4,		# hash value
-    'C',  5,		# code value
-    'F',  6,		# file value
-    'R',  7,		# scalar reference
-);
+sub generate_opnames_h {
+    my $on = open_new('opnames.h', '>', {
+        by => 'regen/opcode.pl',
+        from => 'its data',
+        style => '*',
+        file => 'opnames.h',
+        copyright => [1999 .. 2008],
+    });
 
-my %opclass = (
-    '0',  0,		# baseop
-    '1',  1,		# unop
-    '2',  2,		# binop
-    '|',  3,		# logop
-    '@',  4,		# listop
-    '/',  5,		# pmop
-    '$',  6,		# svop_or_padop
-    '#',  7,		# padop
-    '"',  8,		# pvop_or_svop
-    '{',  9,		# loop
-    ';',  10,		# cop
-    '%',  11,		# baseop_or_unop
-    '-',  12,		# filestatop
-    '}',  13,		# loopexop
-    '.',  14,		# methop
-    '+',  15,		# unop_aux
-);
+    my $old = select $on;
 
-my %opflags = (
-    'm' =>   1,		# needs stack mark
-    'f' =>   2,		# fold constants
-    's' =>   4,		# always produces scalar
-    't' =>   8,		# needs target scalar
-    'T' =>   8 | 16,	# ... which may be lexical
-    'i' =>   0,		# always produces integer (unused since e7311069)
-    'I' =>  32,		# has corresponding int op
-    'd' =>  64,		# danger, make temp copy in list assignment
-    'u' => 128,		# defaults to $_
-);
+    generate_opnames_h_opcode_enum;
+    generate_opnames_h_opcode_predicates;
+    generate_opnames_h_epilogue;
 
-my %OP_IS_SOCKET;	# /Fs/
-my %OP_IS_FILETEST;	# /F-/
-my %OP_IS_FT_ACCESS;	# /F-+/
-my %OP_IS_NUMCOMPARE;	# /S</
-my %OP_IS_DIRHOP;	# /Fd/
-my %OP_IS_INFIX_BIT;	# /S\|/
-
-my $OCSHIFT = 8;
-my $OASHIFT = 12;
-
-for my $op (@ops) {
-    my $argsum = 0;
-    my $flags = $flags{$op};
-    for my $flag (keys %opflags) {
-        if ($flags =~ s/$flag//) {
-            die "Flag collision for '$op' ($flags{$op}, $flag)\n"
-                if $argsum & $opflags{$flag};
-            $argsum |= $opflags{$flag};
-        }
-    }
-    die qq[Opcode '$op' has no class indicator ($flags{$op} => $flags)\n]
-        unless exists $opclass{$flags};
-    $argsum |= $opclass{$flags} << $OCSHIFT;
-    my $argshift = $OASHIFT;
-    for my $arg (split(' ',$args{$op})) {
-        if ($arg =~ s/^D//) {
-            # handle 1st, just to put D 1st.
-            $OP_IS_DIRHOP{$op}   = $opnum{$op};
-        }
-        if ($arg =~ /^F/) {
-            # record opnums of these opnames
-            $OP_IS_SOCKET{$op}   = $opnum{$op} if $arg =~ s/s//;
-            $OP_IS_FILETEST{$op} = $opnum{$op} if $arg =~ s/-//;
-            $OP_IS_FT_ACCESS{$op} = $opnum{$op} if $arg =~ s/\+//;
-        }
-        elsif ($arg =~ /^S./) {
-            $OP_IS_NUMCOMPARE{$op} = $opnum{$op} if $arg =~ s/<//;
-            $OP_IS_INFIX_BIT {$op} = $opnum{$op} if $arg =~ s/\|//;
-        }
-        my $argnum = ($arg =~ s/\?//) ? 8 : 0;
-        die "op = $op, arg = $arg\n"
-            unless exists $argnum{$arg};
-        $argnum += $argnum{$arg};
-        die "Argument overflow for '$op'\n"
-            if $argshift >= $ARGBITS ||
-               $argnum > ((1 << ($ARGBITS - $argshift)) - 1);
-        $argsum += $argnum << $argshift;
-        $argshift += 4;
-    }
-    $argsum = sprintf("0x%08x", $argsum);
-    print $oc "\t", tab(3, "$argsum,"), "/* $op */\n";
+    select $old;
 }
 
-print $oc <<'END';
-};
-#endif
+sub generate_opnames_h_opcode_enum {
+    print "typedef enum opcode {\n";
 
-END_EXTERN_C
-END
+    my $i = 0;
+    for (@ops) {
+        print "\t", tab(3,"OP_\U$_"), " = ", $i++, ",\n";
+    }
 
-# Emit OP_IS_* macros
+    print "\t", tab(3,"OP_max"), "\n";
+    print "} opcode;\n";
+    print "\n#define MAXO ", scalar @ops, "\n";
+    print "#define OP_FREED MAXO\n";
+}
 
-print $on <<'EO_OP_IS_COMMENT';
+sub generate_opnames_h_epilogue {
+    read_only_bottom_close_and_rename(select);
+}
 
-/* the OP_IS_* macros are optimized to a simple range check because
-    all the member OPs are contiguous in regen/opcodes table.
-    opcode.pl verifies the range contiguity, or generates an OR-equals
-    expression */
-EO_OP_IS_COMMENT
-
-gen_op_is_macro( \%OP_IS_SOCKET, 'OP_IS_SOCKET');
-gen_op_is_macro( \%OP_IS_FILETEST, 'OP_IS_FILETEST');
-gen_op_is_macro( \%OP_IS_FT_ACCESS, 'OP_IS_FILETEST_ACCESS');
-gen_op_is_macro( \%OP_IS_NUMCOMPARE, 'OP_IS_NUMCOMPARE');
-gen_op_is_macro( \%OP_IS_DIRHOP, 'OP_IS_DIRHOP');
-gen_op_is_macro( \%OP_IS_INFIX_BIT, 'OP_IS_INFIX_BIT');
+sub generate_opnames_h_opcode_predicates {
+    # Emit OP_IS_* macros
+    print <<~'EO_OP_IS_COMMENT';
 
-sub gen_op_is_macro {
-    my ($op_is, $macname) = @_;
-    if (keys %$op_is) {
-        
-        # get opnames whose numbers are lowest and highest
-        my ($first, @rest) = sort {
-            $op_is->{$a} <=> $op_is->{$b}
-        } keys %$op_is;
-        
-        my $last = pop @rest;	# @rest slurped, get its last
-        die "Invalid range of ops: $first .. $last\n" unless $last;
+    /* the OP_IS_* macros are optimized to a simple range check because
+        all the member OPs are contiguous in regen/opcodes table.
+        opcode.pl verifies the range contiguity, or generates an OR-equals
+        expression */
+    EO_OP_IS_COMMENT
 
-        print $on "\n#define $macname(op)	\\\n\t(";
+    my %OP_IS_SOCKET;                    # /Fs/
+    my %OP_IS_FILETEST;                  # /F-/
+    my %OP_IS_FT_ACCESS;                 # /F-+/
+    my %OP_IS_NUMCOMPARE;                # /S</
+    my %OP_IS_DIRHOP;                    # /Fd/
+    my %OP_IS_INFIX_BIT;                 # /S\|/
 
-        # verify that op-ct matches 1st..last range (and fencepost)
-        # (we know there are no dups)
-        if ( $op_is->{$last} - $op_is->{$first} == scalar @rest + 1) {
-            
-            # contiguous ops -> optimized version
-            print $on "(op) >= OP_" . uc($first)
-                . " && (op) <= OP_" . uc($last);
-        }
-        else {
-            print $on join(" || \\\n\t ",
-                           map { "(op) == OP_" . uc() } sort keys %$op_is);
+    for my $op (@ops) {
+        for my $arg (split(' ',$args{$op})) {
+            if ($arg =~ s/^D//) {
+                # handle 1st, just to put D 1st.
+                $OP_IS_DIRHOP{$op}   = $opnum{$op};
+            }
+            if ($arg =~ /^F/) {
+                # record opnums of these opnames
+                $OP_IS_SOCKET{$op}   = $opnum{$op} if $arg =~ s/s//;
+                $OP_IS_FILETEST{$op} = $opnum{$op} if $arg =~ s/-//;
+                $OP_IS_FT_ACCESS{$op} = $opnum{$op} if $arg =~ s/\+//;
+            } elsif ($arg =~ /^S./) {
+                $OP_IS_NUMCOMPARE{$op} = $opnum{$op} if $arg =~ s/<//;
+                $OP_IS_INFIX_BIT {$op} = $opnum{$op} if $arg =~ s/\|//;
+            }
         }
-        print $on ")\n";
     }
+
+    gen_op_is_macro( \%OP_IS_SOCKET, 'OP_IS_SOCKET');
+    gen_op_is_macro( \%OP_IS_FILETEST, 'OP_IS_FILETEST');
+    gen_op_is_macro( \%OP_IS_FT_ACCESS, 'OP_IS_FILETEST_ACCESS');
+    gen_op_is_macro( \%OP_IS_NUMCOMPARE, 'OP_IS_NUMCOMPARE');
+    gen_op_is_macro( \%OP_IS_DIRHOP, 'OP_IS_DIRHOP');
+    gen_op_is_macro( \%OP_IS_INFIX_BIT, 'OP_IS_INFIX_BIT');
 }
 
-my $pp = open_new('pp_proto.h', '>',
-                  { by => 'opcode.pl', from => 'its data' });
+sub generate_pp_proto_h {
+    my $pp = open_new('pp_proto.h', '>', {
+        by => 'opcode.pl',
+        from => 'its data',
+    });
+
+    my $old = select $pp;
 
-{
     my %funcs;
     for (@ops) {
-        my $name = $alias{$_} ? $alias{$_}[0] : "Perl_pp_$_";
+        my $name = $alias{$_} ? $alias{$_}[0] : "pp_$_";
+        $name =~ s/^Perl_//;
         ++$funcs{$name};
     }
-    print $pp "PERL_CALLCONV OP *$_(pTHX);\n" foreach sort keys %funcs;
-}
 
-print $oc "\n\n";
-OP_PRIVATE::print_defines($oc);
-OP_PRIVATE::print_PL_op_private_tables($oc);
+    for (sort keys %funcs) {
+        print $pp qq{PERL_CALLCONV PP($_) __attribute__visibility__("hidden");\n};
+    }
 
-OP_PRIVATE::print_B_Op_private($oprivpm);
+    read_only_bottom_close_and_rename(select);
 
-foreach ($oc, $on, $pp, $oprivpm) {
-    read_only_bottom_close_and_rename($_);
+    select $old;
 }
 
+sub generate_b_op_private_pm {
+    my $oprivpm = open_new('lib/B/Op_private.pm', '>', {
+        by          => 'regen/opcode.pl',
+        from        => "data in\nregen/op_private and pod embedded in regen/opcode.pl",
+        style       => '#',
+        file        => 'lib/B/Op_private.pm',
+        copyright   => [2014 .. 2014],
+    });
+
+    OP_PRIVATE::print_B_Op_private($oprivpm);
+
+    read_only_bottom_close_and_rename($oprivpm);
+}
Index: gnu/usr.bin/perl/regen/opcodes
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/opcodes,v
diff -u -p -a -u -p -r1.6 opcodes
--- gnu/usr.bin/perl/regen/opcodes	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/opcodes	21 Feb 2024 15:47:03 -0000
@@ -53,6 +53,7 @@ gvsv		scalar variable		ck_null		ds$	
 gv		glob value		ck_null		ds$	
 gelem		glob elem		ck_null		ds2	S S
 padsv		private variable	ck_null		ds0
+padsv_store	padsv scalar assignment	ck_sassign	s1	S S
 padav		private array		ck_null		d0
 padhv		private hash		ck_null		d0
 padany		private value		ck_null		d0
@@ -222,6 +223,7 @@ quotemeta	quotemeta		ck_fun		fstu%	S?
 rv2av		array dereference	ck_rvconst	dt1	
 aelemfast	constant array element	ck_null		ds$	A S
 aelemfast_lex	constant lexical array element	ck_null		d0	A S
+aelemfastlex_store	const lexical array element store	ck_null		d1	A S
 aelem		array element		ck_null		s2	A S
 aslice		array slice		ck_null		m@	A L
 kvaslice	index/value array slice	ck_null		m@	A L
@@ -259,6 +261,7 @@ list		list			ck_null		m@	L
 lslice		list slice		ck_null		2	H L L
 anonlist	anonymous array ([])	ck_fun		ms@	L
 anonhash	anonymous hash ({})	ck_fun		ms@	L
+emptyavhv	empty anon hash/array	ck_fun		sT@	L
 
 splice		splice			ck_fun		m@	A S? S? L
 push		push			ck_fun		imsT@	A L
@@ -584,8 +587,8 @@ poptry		pop try			ck_null		@
 catch		catch {} block		ck_null		|
 pushdefer	push defer {} block	ck_null		|
 
-is_bool		boolean type test	ck_null		fsT1
-is_weak		weakref type test	ck_null		fsT1
+is_bool		boolean type test	ck_null		fs1
+is_weak		weakref type test	ck_null		fs1
 weaken		reference weaken	ck_null		1
 unweaken	reference unweaken	ck_null		1
 blessed		blessed			ck_null		fs1
@@ -593,3 +596,10 @@ refaddr		refaddr			ck_null		fsT1
 reftype		reftype			ck_null		fsT1
 ceil		ceil			ck_null		fsT1
 floor		floor			ck_null		fsT1
+is_tainted	is_tainted		ck_null		fs1
+
+# exists-or; not currently exposed as a Perl-callable op
+helemexistsor	hash element exists or	ck_helemexistsor	|	S S
+
+methstart	method start		ck_null		+
+initfield	initialise field	ck_null		+
Index: gnu/usr.bin/perl/regen/regcomp.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/regcomp.pl,v
diff -u -p -a -u -p -r1.6 regcomp.pl
--- gnu/usr.bin/perl/regen/regcomp.pl	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/regcomp.pl	21 Feb 2024 15:47:03 -0000
@@ -9,6 +9,7 @@
 # from information stored in
 #
 #    regcomp.sym
+#    op_reg_common.h
 #    regexp.h
 #
 # pod/perldebguts.pod is not completely regenerated.  Only the table of
@@ -17,10 +18,39 @@
 # Accepts the standard regen_lib -q and -v args.
 #
 # This script is normally invoked from regen.pl.
+#
+# F<regcomp.sym> defines the opcodes and states used in the regex
+# engine, it also includes documentation on the opcodes. This script
+# parses those definitions out and turns them into typedefs, defines,
+# and data structures, and maybe even code which the regex engine can
+# use to operate.
+#
+# F<regexp.h> and op_reg_common.h contain defines C<RXf_xxx> and
+# C<PREGf_xxx> that are used in flags in our code. These defines are
+# parsed out and data structures are created to allow the debug mode of
+# the regex engine to show things such as which flags were set during
+# compilation. In some cases we transform the C code in the header files
+# into perl code which we execute to C<eval()> the contents. For instance
+# in a situation like this:
+#
+#   #define RXf_X 0x1   /* the X mode */
+#   #define RXf_Y 0x2   /* the Y mode */
+#   #define RXf_Z (X|Y) /* the Z mode */
+#
+# this script might end up eval()ing something like C<0x1> and then
+# C<0x2> and then C<(0x1|0x2)> the results of which it then might use in
+# constructing a data structure, or pod in perldebguts, or a comment in
+# C<regnodes.h>. It also would separate out the "X", "Y", and "Z" and
+# use them, and would also use the data in the line comment if present.
+#
+# If you compile a regex under perl -Mre=Debug,ALL you can see much
+# of the content that this file generates and parses out of its input
+# files.
 
 BEGIN {
     # Get function prototypes
     require './regen/regen_lib.pl';
+    require './regen/HeaderParser.pm';
 }
 
 use strict;
@@ -51,8 +81,8 @@ use strict;
 # id            Both    integer value for this opcode/state
 # optype        Both    Either 'op' or 'state'
 # line_num      Both    line_num number of the input file for this item.
-# type          Op      Type of node (aka regkind)
-# code          Op      Apparently not used
+# type          Op      Type of node (aka regnode_kind)
+# code          Op      Meta about the node, used to detect variable length nodes
 # suffix        Op      which regnode struct this uses, so if this is '1', it
 #                       uses 'struct regnode_1'
 # flags         Op      S for simple; V for varies
@@ -272,10 +302,10 @@ sub print_process_EXACTish {
     print $out <<EOP,
 
 /* Is 'op', known to be of type EXACT, folding? */
-#define isEXACTFish(op) (__ASSERT_(PL_regkind[op] == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
+#define isEXACTFish(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACTFish_bitmask & (1U << (op - EXACT))))
 
 /* Do only UTF-8 target strings match 'op', known to be of type EXACT? */
-#define isEXACT_REQ8(op) (__ASSERT_(PL_regkind[op] == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
+#define isEXACT_REQ8(op) (__ASSERT_(REGNODE_TYPE(op) == EXACT) (PL_EXACT_REQ8_bitmask & (1U << (op - EXACT))))
 
 #ifndef DOINIT
 EXTCONST U32 PL_EXACTFish_bitmask;
@@ -456,105 +486,102 @@ sub print_state_def_line
     print $fh "\n"; # Blank line separates groups for clarity
 }
 
-sub print_regkind {
+sub print_typedefs {
     my ($out)= @_;
     print $out <<EOP;
 
-/* PL_regkind[] What type of regop or state is this. */
+/* typedefs for regex nodes - one typedef per node type */
 
-#ifndef DOINIT
-EXTCONST U8 PL_regkind[];
-#else
-EXTCONST U8 PL_regkind[] = {
 EOP
-    use Data::Dumper;
-    foreach my $node (@all) {
-        print Dumper($node) if !defined $node->{type} or !defined( $node->{name} );
-        printf $out "\t%*s\t/* %*s */\n",
-            -1 - $twidth, "$node->{type},", -$base_name_width, $node->{name};
-        print $out "\t/* ------------ States ------------- */\n"
-            if $node->{id} == $#ops and $node->{id} != $#all;
+    my $len= 0;
+    foreach my $node (@ops) {
+        if ($node->{suffix} and $len < length($node->{suffix})) {
+            $len= length $node->{suffix};
+        }
     }
+    $len += length "struct regnode_";
+    $len = (int($len/5)+2)*5;
+    my $prefix= "tregnode";
 
+    foreach my $node (sort { $a->{name} cmp $b->{name} } @ops) {
+        my $struct_name= "struct regnode";
+        if (my $suffix= $node->{suffix}) {
+            $struct_name .= "_$suffix";
+        }
+        $node->{typedef}= $prefix . "_" . $node->{name};
+        printf $out "typedef %*s %s;\n", -$len, $struct_name, $node->{typedef};
+    }
     print $out <<EOP;
-};
-#endif
-EOP
-}
 
-sub wrap_ifdef_print {
-    my $out= shift;
-    my $token= shift;
-    print $out <<EOP;
+/* end typedefs */
 
-#ifdef $token
 EOP
-    $_->($out) for @_;
-    print $out <<EOP;
-#endif /* $token */
 
-EOP
 }
 
-sub print_regarglen {
-    my ($out)= @_;
-    print $out <<EOP;
-
-/* regarglen[] - How large is the argument part of the node (in regnodes) */
-
-static const U8 regarglen[] = {
-EOP
-
-    foreach my $node (@ops) {
-        my $size= 0;
-        $size= "EXTRA_SIZE(struct regnode_$node->{suffix})" if $node->{suffix};
 
-        printf $out "\t%*s\t/* %*s */\n", -37, "$size,", -$rwidth, $node->{name};
-    }
 
-    print $out <<EOP;
-};
-EOP
-}
 
-sub print_reg_off_by_arg {
+sub print_regnode_info {
     my ($out)= @_;
     print $out <<EOP;
 
-/* reg_off_by_arg[] - Which argument holds the offset to the next node */
+/* PL_regnode_info[] - Opcode/state names in string form, for debugging */
 
-static const char reg_off_by_arg[] = {
+#ifndef DOINIT
+EXTCONST struct regnode_meta PL_regnode_info[];
+#else
+EXTCONST struct regnode_meta PL_regnode_info[] = {
 EOP
-
-    foreach my $node (@ops) {
-        my $size= $node->{longj} || 0;
-
-        printf $out "\t%d,\t/* %*s */\n", $size, -$rwidth, $node->{name};
+    my @fields= qw(type arg_len arg_len_varies off_by_arg);
+    foreach my $node_idx (0..$#all) {
+        my $node= $all[$node_idx];
+        {
+            my $size= 0;
+            $size= "EXTRA_SIZE($node->{typedef})" if $node->{suffix};
+            $node->{arg_len}= $size;
+
+        }
+        {
+            my $varies= 0;
+            $varies= 1 if $node->{code} and $node->{code}=~"str";
+            $node->{arg_len_varies}= $varies;
+        }
+        $node->{off_by_arg}= $node->{longj} || 0;
+        print $out "    {\n";
+        print $out "        /* #$node_idx $node->{optype} $node->{name} */\n";
+        foreach my $f_idx (0..$#fields) {
+            my $field= $fields[$f_idx];
+            printf $out  "        .%s = %s", $field, $node->{$field} // 0;
+            printf $out $f_idx == $#fields ? "\n" : ",\n";
+        }
+        print $out "    }";
+        print $out $node_idx==$#all ? "\n" : ",\n";
     }
 
     print $out <<EOP;
 };
+#endif /* DOINIT */
 
 EOP
 }
 
-sub print_reg_name {
+
+sub print_regnode_name {
     my ($out)= @_;
     print $out <<EOP;
 
-/* reg_name[] - Opcode/state names in string form, for debugging */
+/* PL_regnode_name[] - Opcode/state names in string form, for debugging */
 
 #ifndef DOINIT
-EXTCONST char * PL_reg_name[];
+EXTCONST char * PL_regnode_name[];
 #else
-EXTCONST char * const PL_reg_name[] = {
+EXTCONST char * const PL_regnode_name[] = {
 EOP
 
     my $ofs= 0;
     my $sym= "";
     foreach my $node (@all) {
-        my $size= $node->{longj} || 0;
-
         printf $out "\t%*s\t/* $sym%#04x */\n",
             -3 - $base_name_width, qq("$node->{name}",), $node->{id} - $ofs;
         if ( $node->{id} == $#ops and @ops != @all ) {
@@ -587,39 +614,44 @@ EOP
     my $val= 0;
     my %reverse;
     my $REG_EXTFLAGS_NAME_SIZE= 0;
+    my $hp= HeaderParser->new();
     foreach my $file ( "op_reg_common.h", "regexp.h" ) {
-        open my $in_fh, "<", $file or die "Can't read '$file': $!";
-        while (<$in_fh>) {
+        $hp->read_file($file);
+        foreach my $line_info (@{$hp->lines}) {
+            next unless $line_info->{type}     eq "content"
+                    and $line_info->{sub_type} eq "#define";
+            my $line= $line_info->{line};
+            $line=~s/\s*\\\n\s*/ /g;
 
             # optional leading '_'.  Return symbol in $1, and strip it from
             # comment of line.  Currently doesn't handle comments running onto
             # next line
-            if (s/^ \# \s* define \s+ ( _? RXf_ \w+ ) \s+ //xi) {
-                chomp;
+            if ($line=~s/^ \# \s* define \s+ ( _? RXf_ \w+ ) \s+ //xi) {
+                chomp($line);
                 my $define= $1;
                 my $orig= $_;
-                s{ /\* .*? \*/ }{ }x;    # Replace comments by a blank
+                $line=~s{ /\* .*? \*/ }{ }x;    # Replace comments by a blank
 
                 # Replace any prior defined symbols by their values
                 foreach my $key ( keys %definitions ) {
-                    s/\b$key\b/$definitions{$key}/g;
+                    $line=~s/\b$key\b/$definitions{$key}/g;
                 }
 
                 # Remove the U suffix from unsigned int literals
-                s/\b([0-9]+)U\b/$1/g;
+                $line=~s/\b([0-9]+)U\b/$1/g;
 
-                my $newval= eval $_;     # Get numeric definition
+                my $newval= eval $line;     # Get numeric definition
 
                 $definitions{$define}= $newval;
 
-                next unless $_ =~ /<</;    # Bit defines use left shift
+                next unless $line =~ /<</;    # Bit defines use left shift
                 if ( $val & $newval ) {
                     my @names= ( $define, $reverse{$newval} );
                     s/PMf_// for @names;
                     if ( $names[0] ne $names[1] ) {
                         die sprintf
                             "ERROR: both $define and $reverse{$newval} use 0x%08X (%s:%s)",
-                            $newval, $orig, $_;
+                            $newval, $orig, $line;
                     }
                     next;
                 }
@@ -693,29 +725,48 @@ EOP
     my $val= 0;
     my %reverse;
     my $REG_INTFLAGS_NAME_SIZE= 0;
+    my $hp= HeaderParser->new();
+    my $last_val = 0;
     foreach my $file ("regcomp.h") {
-        open my $fh, "<", $file or die "Can't read $file: $!";
-        while (<$fh>) {
+        $hp->read_file($file);
+        my @bit_tuples;
+        foreach my $line_info (@{$hp->lines}) {
+            next unless $line_info->{type}     eq "content"
+                    and $line_info->{sub_type} eq "#define";
+            my $line= $line_info->{line};
+            $line=~s/\s*\\\n\s*/ /g;
 
             # optional leading '_'.  Return symbol in $1, and strip it from
             # comment of line
             if (
-                m/^ \# \s* define \s+ ( PREGf_ ( \w+ ) ) \s+ 0x([0-9a-f]+)(?:\s*\/\*(.*)\*\/)?/xi
-                )
-            {
-                chomp;
+                $line =~ m/^ \# \s* define \s+ ( PREGf_ ( \w+ ) ) \s+ 0x([0-9a-f]+)(?:\s*\/\*(.*)\*\/)?/xi
+            ){
+                chomp $line;
                 my $define= $1;
                 my $abbr= $2;
                 my $hex= $3;
                 my $comment= $4;
                 my $val= hex($hex);
+                my $bin= sprintf "%b", $val;
+                if ($bin=~/1.*?1/) { die "Not expecting multiple bits in PREGf" }
+                my $bit= length($bin) - 1 ;
                 $comment= $comment ? " - $comment" : "";
-
-                printf $out qq(\t%-30s/* 0x%08x - %s%s */\n), qq("$abbr",),
-                    $val, $define, $comment;
-                $REG_INTFLAGS_NAME_SIZE++;
+                if ($bit_tuples[$bit]) {
+                    die "Duplicate PREGf bit '$bit': $define $val ($hex)";
+                }
+                $bit_tuples[$bit]= [ $bit, $val, $abbr, $define, $comment ];
+            }
+        }
+        foreach my $i (0..$#bit_tuples) {
+            my $bit_tuple= $bit_tuples[$i];
+            if (!$bit_tuple) {
+                $bit_tuple= [ $i, 1<<$i, "", "", "*UNUSED*" ];
             }
+            my ($bit, $val, $abbr, $define, $comment)= @$bit_tuple;
+            printf $out qq(\t%-30s/* (1<<%2d) - 0x%08x - %s%s */\n),
+                qq("$abbr",), $bit, $val, $define, $comment;
         }
+        $REG_INTFLAGS_NAME_SIZE=0+@bit_tuples;
     }
 
     print $out <<EOP;
@@ -802,18 +853,25 @@ END_OF_DESCR
 
 my $confine_to_core = 'defined(PERL_CORE) || defined(PERL_EXT_RE_BUILD)';
 read_definition("regcomp.sym");
+if ($ENV{DUMP}) {
+    require Data::Dumper;
+    print Data::Dumper::Dumper(\@all);
+    exit(1);
+}
 my $out= open_new( 'regnodes.h', '>',
-    { by => 'regen/regcomp.pl', from => 'regcomp.sym' } );
+    {
+        by      => 'regen/regcomp.pl',
+        from    => [ 'regcomp.sym', 'op_reg_common.h', 'regexp.h' ],
+    },
+);
 print $out "#if $confine_to_core\n\n";
+print_typedefs($out);
 print_state_defs($out);
-print_regkind($out);
-wrap_ifdef_print(
-    $out,
-    "REG_COMP_C",
-    \&print_regarglen,
-    \&print_reg_off_by_arg
-);
-print_reg_name($out);
+
+print_regnode_name($out);
+print_regnode_info($out);
+
+
 print_reg_extflags_name($out);
 print_reg_intflags_name($out);
 print_process_flags($out);
Index: gnu/usr.bin/perl/regen/regen_lib.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/regen_lib.pl,v
diff -u -p -a -u -p -r1.4 regen_lib.pl
--- gnu/usr.bin/perl/regen/regen_lib.pl	15 Feb 2023 01:36:35 -0000	1.4
+++ gnu/usr.bin/perl/regen/regen_lib.pl	21 Feb 2024 15:47:03 -0000
@@ -3,6 +3,7 @@ use strict;
 our (@Changed, $TAP);
 use File::Compare;
 use Symbol;
+use Carp;
 use Text::Wrap();
 
 # Common functions needed by the regen scripts
@@ -36,8 +37,11 @@ sub safer_unlink {
 sub open_new {
     my ($final_name, $mode, $header, $force) = @_;
     my $name = $final_name . '-new';
-    my $lang = $final_name =~ /\.pod$/ ? 'Pod' :
-        $final_name =~ /\.(?:c|h|inc|tab|act)$/ ? 'C' : 'Perl';
+    my $lang =
+        $final_name =~ /\.pod\z/ ? 'Pod' :
+        $final_name =~ /\.(?:c|h|inc|tab|act)\z/ ? 'C' :
+        $final_name =~ /\.gitignore\z/ ? 'None' :
+        'Perl';
     if ($force && -e $final_name) {
         chmod 0777, $name if $Needs_Write;
         CORE::unlink $final_name
@@ -94,13 +98,21 @@ sub close_and_rename {
                 $fail = "'$name' and '$final_name' differ";
             }
         }
+        # If someone wants to run t/porting/regen.t and keep the
+        # changes then they can set this env var, otherwise we
+        # unlink the generated file regardless.
+        my $keep_changes= $ENV{"REGEN_T_KEEP_CHANGES"};
+        safer_unlink($name) unless $keep_changes;
         if ($fail) {
             print STDOUT "not ok - $0 $final_name\n";
             die "$fail\n";
         } else {
             print STDOUT "ok - $0 $final_name\n";
         }
-        safer_unlink($name);
+        # If we get here then the file hasn't changed, and we should
+        # delete the new version if they have requested we keep changes
+        # as we wont have deleted it above like we would normally.
+        safer_unlink($name) if $keep_changes;
         return;
     }
     unless ($force) {
@@ -119,7 +131,12 @@ sub close_and_rename {
     rename $name, $final_name or die "renaming $name to $final_name: $!";
 }
 
-my %lang_opener = (Perl => '# ', Pod => '', C => '/* ');
+my %lang_opener = (
+    Perl => '# ',
+    Pod  => '',
+    C    => '/* ',
+    None => '# ',
+);
 
 sub read_only_top {
     my %args = @_;
@@ -129,7 +146,8 @@ sub read_only_top {
         unless exists $lang_opener{$lang};
     my $style = $args{style} ? " $args{style} " : '   ';
 
-    my $raw = "-*- buffer-read-only: t -*-\n";
+    # Generate the "modeline" for syntax highlighting based on the language
+    my $raw = "-*- " . ($lang eq 'None' ? "" : "mode: $lang; ") . "buffer-read-only: t -*-\n";
 
     if ($args{file}) {
         $raw .= "\n   $args{file}\n";
@@ -175,6 +193,7 @@ EOM
 sub read_only_bottom_close_and_rename {
     my ($fh, $sources) = @_;
     my ($name, $lang, $final_name) = @{*{$fh}}{qw(name lang final_name)};
+    confess "bad fh in read_only_bottom_close_and_rename" unless $name;
     die "No final name specified at open time for $name"
         unless $final_name;
 
@@ -192,14 +211,16 @@ sub read_only_bottom_close_and_rename {
             $comment .= "$digest $file\n";
         }
     }
-    $comment .= "ex: set ro:";
+    $comment .= "ex: set ro" . ($lang eq 'None' ? "" : " ft=\L$lang\E") . ":";
 
-    if (defined $lang && $lang eq 'Perl') {
-        $comment =~ s/^/# /mg;
-    } elsif (!defined $lang or $lang ne 'Pod') {
+    if ($lang eq 'Pod') {
+        # nothing
+    } elsif ($lang eq 'C') {
         $comment =~ s/^/ * /mg;
         $comment =~ s! \* !/* !;
         $comment .= " */";
+    } else {
+        $comment =~ s/^/# /mg;
     }
     print $fh "\n$comment\n";
 
Index: gnu/usr.bin/perl/regen/scope_types.pl
===================================================================
RCS file: gnu/usr.bin/perl/regen/scope_types.pl
diff -N gnu/usr.bin/perl/regen/scope_types.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regen/scope_types.pl	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,178 @@
+#!/usr/bin/perl -w
+#
+#
+# Regenerate (overwriting only if changed):
+#
+#    scope_types.h
+#
+# from information contained in this file in the
+# __DATA_ section below.
+#
+# To add a new type simply add its name to the list
+# below in the correct section (marked by C comments)
+# and then regenerate with 'make regen'.
+#
+# Accepts the standard regen_lib -q and -v args.
+#
+# This script is normally invoked from regen.pl.
+
+# The style of this file is determined by:
+#
+# perltidy -w -ple -bbb -bbc -bbs -nolq -l=80 -noll -nola -nwls='=' \
+#   -isbc -nolc -otr -kis -ci=4 -se -sot -sct -nsbl -pt=2 -fs  \
+#   -fsb='##!' -fse='##.'
+
+BEGIN {
+    # Get function prototypes
+    require './regen/regen_lib.pl';
+}
+
+use strict;
+use warnings;
+
+my %args= (
+    "zero"  => 0,
+    "one"   => 1,
+    "two"   => 2,
+    "three" => 3,
+);
+my $nargs= 0;
+my @arg_num;
+my @types;
+my $tlen= 0;
+my @lines;
+
+foreach my $line (<DATA>) {
+    $line =~ s/\s+\z//;
+    if ($line =~ /(\w+) arg/) {
+        $nargs= $args{$1} // die "panic: Bad arg number '$1'";
+    }
+    if ($line =~ /^SAVEt/) {
+        my $id= 0 + @arg_num;
+        $tlen= length($line) if $tlen < length($line);
+        push @types,   $line;
+        push @arg_num, [ $nargs, $line ];
+        push @lines,   [ $line,  $id ];
+    }
+    else {
+        push @lines, $line;
+    }
+}
+
+my $c_code= "";
+foreach my $num (0 .. $#lines) {
+    my $line= $lines[$num];
+    if (ref $line) {
+        my ($type, $id)= @$line;
+        $line= sprintf "#define %*s %*d",
+            -$tlen, $type, length(0 + @types), $id;
+    }
+    $c_code .= $line . "\n";
+}
+
+$c_code .= <<EOF_C;
+
+static const U8 leave_scope_arg_counts[] = {
+EOF_C
+
+foreach my $tuple (@arg_num) {
+    my ($nargs, $type)= @$tuple;
+    $c_code .= sprintf "    %d%s /* %*s */\n",
+        $nargs, $tuple == $arg_num[-1] ? " " : ",",
+        -$tlen, $type;
+}
+my $max_savet= $#arg_num;
+
+$c_code .= <<EOF_C;
+};
+
+#define MAX_SAVEt $max_savet
+EOF_C
+
+my $final= <<'EOF_FINAL';
+The defines and contents of the leave_scope_arg_counts[] array
+must match. To add a new type modify the __DATA__ section in
+regen/scope_types.pl and run `make regen` to rebuild the file.
+EOF_FINAL
+
+my $out= open_new(
+    'scope_types.h',
+    '>', {
+        by        => 'regen/scope_types.pl',
+        copyright => [2022],
+        final     => $final,
+    });
+print $out $c_code;
+read_only_bottom_close_and_rename($out);
+
+__DATA__
+/* zero args */
+
+SAVEt_ALLOC
+SAVEt_CLEARPADRANGE
+SAVEt_CLEARSV
+SAVEt_REGCONTEXT
+
+/* one arg */
+
+SAVEt_TMPSFLOOR
+SAVEt_BOOL
+SAVEt_COMPILE_WARNINGS
+SAVEt_CURCOP_WARNINGS
+SAVEt_COMPPAD
+SAVEt_FREECOPHH
+SAVEt_FREEOP
+SAVEt_FREEPV
+SAVEt_FREESV
+SAVEt_I16
+SAVEt_I32_SMALL
+SAVEt_I8
+SAVEt_INT_SMALL
+SAVEt_MORTALIZESV
+SAVEt_NSTAB
+SAVEt_OP
+SAVEt_PARSER
+SAVEt_STACK_POS
+SAVEt_READONLY_OFF
+SAVEt_FREEPADNAME
+SAVEt_STRLEN_SMALL
+SAVEt_FREERCPV
+
+/* two args */
+
+SAVEt_AV
+SAVEt_DESTRUCTOR
+SAVEt_DESTRUCTOR_X
+SAVEt_GENERIC_PVREF
+SAVEt_GENERIC_SVREF
+SAVEt_GP
+SAVEt_GVSV
+SAVEt_HINTS
+SAVEt_HPTR
+SAVEt_HV
+SAVEt_I32
+SAVEt_INT
+SAVEt_ITEM
+SAVEt_IV
+SAVEt_LONG
+SAVEt_PPTR
+SAVEt_SAVESWITCHSTACK
+SAVEt_SHARED_PVREF
+SAVEt_SPTR
+SAVEt_STRLEN
+SAVEt_SV
+SAVEt_SVREF
+SAVEt_VPTR
+SAVEt_ADELETE
+SAVEt_APTR
+SAVEt_RCPV
+
+/* three args */
+
+SAVEt_HELEM
+SAVEt_PADSV_AND_MORTALIZE
+SAVEt_SET_SVFLAGS
+SAVEt_GVSLOT
+SAVEt_AELEM
+SAVEt_DELETE
+SAVEt_HINTS_HH
Index: gnu/usr.bin/perl/regen/tidy_embed.pl
===================================================================
RCS file: gnu/usr.bin/perl/regen/tidy_embed.pl
diff -N gnu/usr.bin/perl/regen/tidy_embed.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/regen/tidy_embed.pl	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,79 @@
+use lib "regen";
+use HeaderParser;
+use strict;
+use warnings;
+
+my $parser= HeaderParser->new(
+        pre_process_content => sub {
+            my ($self,$line_data)= @_;
+            $self->tidy_embed_fnc_entry($line_data);
+            my $embed= $line_data->{embed}
+                or return;
+        },
+        post_process_grouped_content => sub {
+            my ($self, $group_ary)= @_;
+            my $last=chr(0x10FFFF);
+            for(my $i= $#$group_ary; $i>=0; $i--) {
+                my $entry= $group_ary->[$i];
+                if ($entry->{embed}) {
+                    $last = $entry->{embed}{name};
+                }
+                $entry->{sort}{klc}= lc($last)=~s/[^a-z]+//gr;
+                $entry->{sort}{key}= $last;
+                $entry->{sort}{idx}= $i;
+            }
+            @{$group_ary}=
+                sort {
+                    $a->{sort}{klc} cmp $b->{sort}{klc} ||
+                    $a->{sort}{key} cmp $b->{sort}{key} ||
+                    $a->{sort}{idx} <=> $b->{sort}{idx}
+                } @{$group_ary};
+            delete $_->{sort} for @$group_ary;
+        },
+    );
+my $tap;
+if (@ARGV and $ARGV[0] eq "--tap") {
+    $tap = shift @ARGV;
+}
+my $file= "embed.fnc";
+if (@ARGV) {
+    $file= shift @ARGV;
+}
+my $new= "$file.new";
+my $bak= "$file.bak";
+$parser->read_file($file);
+my $lines= $parser->lines;
+my (@head, @tail);
+# strip off comments at the start of the file
+while ($lines->[0]{type} eq "content" and !$lines->[0]{embed}) {
+    push @head, shift @$lines;
+}
+
+# strip off comments at the bottom of the file
+while ($lines->[-1]{type} eq "content" and !$lines->[-1]{embed})
+{
+    unshift @tail, pop @$lines;
+}
+
+my $grouped_content_ary= $parser->group_content();
+my $grouped_content_txt= $parser->lines_as_str(
+    [ @head, @$grouped_content_ary, @tail ]);
+if ($grouped_content_txt ne $parser->{orig_content}) {
+    if ($tap) {
+        print "not ok - $0 $file\n";
+    } elsif (-t) {
+        print "Updating $file\n";
+    }
+    open my $fh,">",$new
+        or die "Failed to open '$new' for write: $!";
+    print $fh $grouped_content_txt
+        or die "Failed to print to '$new': $!";
+    close $fh
+        or die "Failed to close '$new': $!";
+    rename $file, $bak
+        or die "Couldn't move '$file' to '$bak': $!";
+    rename $new, $file
+        or die "Couldn't move embed.fnc.new to embed.fnc: $!";
+} elsif ($tap) {
+    print "ok - $0 $file\n";
+}
Index: gnu/usr.bin/perl/regen/unicode_constants.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/unicode_constants.pl,v
diff -u -p -a -u -p -r1.6 unicode_constants.pl
--- gnu/usr.bin/perl/regen/unicode_constants.pl	15 Feb 2023 01:36:35 -0000	1.6
+++ gnu/usr.bin/perl/regen/unicode_constants.pl	21 Feb 2024 15:47:03 -0000
@@ -594,7 +594,7 @@ foreach my $list (qw(Punctuation Symbol)
 
         if ($is_Symbol) {
 
-            # Skip if the the direction is followed by a vertical motion
+            # Skip if the direction is followed by a vertical motion
             # (which defeats the left-right directionality).
             if (        $name =~ / ^ .* $no_barb_re
                                    \b (UP|DOWN|NORTH|SOUTH) /gx
@@ -869,7 +869,7 @@ foreach my $charset (get_supported_code_
     $max_PRINT_A = sprintf "0x%02X", $max_PRINT_A;
     print $out_fh <<"EOT";
 
-#   ifdef PERL_IN_REGCOMP_C
+#   ifdef PERL_IN_REGCOMP_ANY
 #     define MAX_PRINT_A  $max_PRINT_A   /* The max code point that isPRINT_A */
 #   endif
 EOT
@@ -931,7 +931,7 @@ $count = 0x110000 - $count;
 print $out_fh <<~"EOT";
 
     /* The number of code points not matching \\pC */
-    #ifdef PERL_IN_REGCOMP_C
+    #ifdef PERL_IN_REGCOMP_ANY
     #  define NON_OTHER_COUNT  $count
     #endif
     EOT
Index: gnu/usr.bin/perl/regen/warnings.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/regen/warnings.pl,v
diff -u -p -a -u -p -r1.7 warnings.pl
--- gnu/usr.bin/perl/regen/warnings.pl	15 Feb 2023 01:36:35 -0000	1.7
+++ gnu/usr.bin/perl/regen/warnings.pl	21 Feb 2024 15:47:03 -0000
@@ -5,18 +5,18 @@
 #    lib/warnings.pm
 #    warnings.h
 #
-# from information hardcoded into this script (the $TREE hash), plus the
+# from information hardcoded into this script (the $WARNING_TREE hash), plus the
 # template for warnings.pm in the DATA section.
 #
 # When changing the number of warnings, t/op/caller.t should change to
 # correspond with the value of $BYTES in lib/warnings.pm
 #
-# With an argument of 'tree', just dump the contents of $TREE and exits.
+# With an argument of 'tree', just dump the contents of $WARNING_TREE and exits.
 # Also accepts the standard regen_lib -q and -v args.
 #
 # This script is normally invoked from regen.pl.
 
-$VERSION = '1.58';
+$VERSION = '1.65';
 
 BEGIN {
     require './regen/regen_lib.pl';
@@ -44,7 +44,7 @@ sub DEFAULT_OFF () { 2 }
 # created. But the warnings category 'io' WILL include all the mask bits
 # necessary to turn on 'pipe', 'unopened' etc.
 
-my $TREE = {
+our $WARNING_TREE = {
 'all' => [ 5.008, {
         'io'            => [ 5.008, {
                                 'pipe'          => [ 5.008, DEFAULT_OFF],
@@ -74,7 +74,16 @@ my $TREE = {
                                 'debugging'     => [ 5.008, DEFAULT_ON],
                                 'malloc'        => [ 5.008, DEFAULT_ON],
                            }],
-        'deprecated'    => [ 5.008, DEFAULT_ON],
+        'deprecated'    => [ 5.008, DEFAULT_ON, {
+                                'deprecated::goto_construct'           => [ 5.011003, DEFAULT_ON],
+                                'deprecated::unicode_property_name'    => [ 5.011003, DEFAULT_ON],
+                                'deprecated::dot_in_inc'               => [ 5.025011, DEFAULT_ON],
+                                'deprecated::version_downgrade'        => [ 5.035009, DEFAULT_ON],
+                                'deprecated::delimiter_will_be_paired' => [ 5.035010, DEFAULT_ON],
+                                'deprecated::apostrophe_as_package_separator'
+                                                                       => [ 5.037009, DEFAULT_ON],
+                                'deprecated::smartmatch'               => [ 5.037010, DEFAULT_ON],
+                        }],
         'void'          => [ 5.008, DEFAULT_OFF],
         'recursion'     => [ 5.008, DEFAULT_OFF],
         'redefine'      => [ 5.008, DEFAULT_OFF],
@@ -146,6 +155,8 @@ my $TREE = {
                                     [ 5.035, DEFAULT_ON],
                                 'experimental::extra_paired_delimiters' =>
                                     [ 5.035, DEFAULT_ON],
+                                'experimental::class' =>
+                                    [ 5.037, DEFAULT_ON ],
                         }],
 
         'missing'       => [ 5.021, DEFAULT_OFF],
@@ -169,6 +180,19 @@ my %VALUE_TO_NAME; # (index_number => [ 
 
 my %NAME_TO_VALUE; # ('NAME'       => index_number,       ....);
 
+# the experiments were successful (or abandonned),
+# so no warning bit is needed anymore
+my %NO_BIT_FOR = map { ( uc $_ => 1, $_ => 1 ) } qw(
+  experimental::lexical_subs
+  experimental::postderef
+  experimental::signatures
+  experimental::bitwise
+  experimental::alpha_assertions
+  experimental::script_run
+  experimental::isa
+  experimental::smartmatch
+);
+
 ###########################################################################
 
 # Generate a hash with keys being the version number and values
@@ -189,12 +213,12 @@ sub valueWalk
         die "Value associated with key '$k' is not an ARRAY reference"
             if !ref $v || ref $v ne 'ARRAY' ;
 
-        my ($ver, $rest) = @{ $v } ;
+        my ($ver, $rest, $rest2) = @{ $v } ;
+        my $ref = ref $rest ? $rest : $rest2;
         push @{ $v_list->{$ver} }, $k;
 
-        if (ref $rest)
-          { valueWalk ($rest, $v_list) }
-
+        if (ref $ref)
+          { valueWalk ($ref, $v_list) }
     }
 }
 
@@ -218,6 +242,7 @@ sub orderValues
     my $index = 0;
     foreach my $ver ( sort { $a <=> $b } keys %v_list ) {
         foreach my $name (@{ $v_list{$ver} } ) {
+            next if $NO_BIT_FOR{$name};
             $VALUE_TO_NAME{ $index } = [ uc $name, $ver ] ;
             $NAME_TO_VALUE{ uc $name } = $index ++ ;
         }
@@ -242,17 +267,19 @@ sub walk
     foreach $k (sort keys %$tree) {
         $v = $tree->{$k};
         die "duplicate key $k\n" if defined $CATEGORIES{$k} ;
+        next if $NO_BIT_FOR{$k};
         die "Can't find key '$k'"
             if ! defined $NAME_TO_VALUE{uc $k} ;
         push @{ $CATEGORIES{$k} }, $NAME_TO_VALUE{uc $k} ;
         die "Value associated with key '$k' is not an ARRAY reference"
             if !ref $v || ref $v ne 'ARRAY' ;
 
-        my ($ver, $rest) = @{ $v } ;
-        if (ref $rest)
-          { push (@{ $CATEGORIES{$k} }, walk ($rest)) }
-        elsif ($rest == DEFAULT_ON)
+        my ($ver, $rest, $rest2) = @{ $v } ;
+        my $ref = ref $rest ? $rest : $rest2;
+        if (!ref $rest and $rest == DEFAULT_ON)
           { push @DEFAULTS, $NAME_TO_VALUE{uc $k} }
+        if (ref $ref)
+          { push (@{ $CATEGORIES{$k} }, walk ($ref)) }
 
         push @list, @{ $CATEGORIES{$k} } ;
     }
@@ -301,12 +328,13 @@ sub warningsTree
     my $rv = '';
 
     while ($k = shift @keys) {
+        next if $NO_BIT_FOR{$k};
         $v = $tree->{$k};
         die "Value associated with key '$k' is not an ARRAY reference"
             if !ref $v || ref $v ne 'ARRAY' ;
 
         my $offset ;
-        if ($tree ne $TREE) {
+        if ($tree ne $WARNING_TREE) {
             $rv .= $prefix . "|\n" ;
             $rv .= $prefix . "+- $k" ;
             $offset = ' ' x ($max + 4) ;
@@ -316,12 +344,13 @@ sub warningsTree
             $offset = ' ' x ($max + 1) ;
         }
 
-        my ($ver, $rest) = @{ $v } ;
-        if (ref $rest)
+        my ($ver, $rest, $rest2) = @{ $v } ;
+        my $ref = ref $rest ? $rest : $rest2;
+        if (ref $ref)
         {
             my $bar = @keys ? "|" : " ";
             $rv .= " -" . "-" x ($max - length $k ) . "+\n" ;
-            $rv .= warningsTree ($rest, $prefix . $bar . $offset )
+            $rv .= warningsTree ($ref, $prefix . $bar . $offset )
         }
         else
           { $rv .= "\n" }
@@ -375,142 +404,151 @@ sub mkOct
 
 
 ###########################################################################
+sub main {
 
-if (@ARGV && $ARGV[0] eq "tree")
-{
-    print warningsTree($TREE, "    ") ;
-    exit ;
-}
+    if (@ARGV && $ARGV[0] eq "tree")
+    {
+        print warningsTree($WARNING_TREE, "    ") ;
+        exit ;
+    }
 
-my ($warn_h, $warn_pm) = map {
-    open_new($_, '>', { by => 'regen/warnings.pl' });
-} 'warnings.h', 'lib/warnings.pm';
+    my ($warn_h, $warn_pm) = map {
+        open_new($_, '>', { by => 'regen/warnings.pl' });
+    } 'warnings.h', 'lib/warnings.pm';
 
-my ($index, $warn_size);
+    my ($index, $warn_size);
 
-# generate warnings.h
+    # generate warnings.h
 
-print $warn_h warnings_h_boilerplate_1();
+    print $warn_h warnings_h_boilerplate_1();
 
-$index = orderValues($TREE);
+    $index = orderValues($WARNING_TREE);
 
-die <<EOM if $index > 255 ;
-Too many warnings categories -- max is 255
-rewrite packWARN* & unpackWARN* macros
-EOM
+    die <<~EOM if $index > 255 ;
+    Too many warnings categories -- max is 255
+    rewrite packWARN* & unpackWARN* macros
+    EOM
 
-walk ($TREE) ;
-for (my $i = $index; $i & 3; $i++) {
-    push @{$CATEGORIES{all}}, $i;
-}
+    walk ($WARNING_TREE) ;
+    for (my $i = $index; $i & 3; $i++) {
+        push @{$CATEGORIES{all}}, $i;
+    }
 
-$index *= 2 ;
-$warn_size = int($index / 8) + ($index % 8 != 0) ;
+    $index *= 2 ;
+    $warn_size = int($index / 8) + ($index % 8 != 0) ;
 
-my $k ;
-my $last_ver = 0;
-my @names;
-foreach $k (sort { $a <=> $b } keys %VALUE_TO_NAME) {
-    my ($name, $version) = @{ $VALUE_TO_NAME{$k} };
-    print $warn_h "\n/* Warnings Categories added in Perl $version */\n\n"
-        if $last_ver != $version ;
-    $name =~ y/:/_/;
-    $name = "WARN_$name";
-    print $warn_h tab(6, "#define $name"), " $k\n" ;
-    push @names, $name;
-    $last_ver = $version ;
-}
+    my $k ;
+    my $last_ver = 0;
+    my @names;
+    foreach $k (sort { $a <=> $b } keys %VALUE_TO_NAME) {
+        my ($name, $version) = @{ $VALUE_TO_NAME{$k} };
+        print $warn_h "\n/* Warnings Categories added in Perl $version */\n\n"
+            if $last_ver != $version ;
+        $name =~ y/:/_/;
+        $name = "WARN_$name";
+        print $warn_h tab(6, "#define $name"), " $k\n" ;
+        push @names, $name;
+        $last_ver = $version ;
+    }
 
-print $warn_h tab(6, '#define WARNsize'),	" $warn_size\n" ;
-print $warn_h tab(6, '#define WARN_ALLstring'), ' "', ('\125' x $warn_size) , "\"\n" ;
-print $warn_h tab(6, '#define WARN_NONEstring'), ' "', ('\0' x $warn_size) , "\"\n" ;
+    print $warn_h tab(6, '#define WARNsize'),   " $warn_size\n" ;
+    print $warn_h tab(6, '#define WARN_ALLstring'), ' "', ('\125' x $warn_size) , "\"\n" ;
+    print $warn_h tab(6, '#define WARN_NONEstring'), ' "', ('\0' x $warn_size) , "\"\n" ;
 
-print $warn_h warnings_h_boilerplate_2();
+    print $warn_h warnings_h_boilerplate_2();
 
-print $warn_h "\n\n/*\n" ;
-print $warn_h map { "=for apidoc Amnh||$_\n" } @names;
-print $warn_h "\n=cut\n*/\n\n" ;
-print $warn_h "/* end of file warnings.h */\n";
+    print $warn_h "\n\n/*\n" ;
+    print $warn_h map { "=for apidoc Amnh||$_\n" } @names;
+    print $warn_h "\n=cut\n*/\n\n" ;
+    print $warn_h "/* end of file warnings.h */\n";
 
-read_only_bottom_close_and_rename($warn_h);
+    read_only_bottom_close_and_rename($warn_h);
 
 
-# generate warnings.pm
+    # generate warnings.pm
 
-while (<DATA>) {
-    last if /^VERSION$/ ;
-    print $warn_pm $_ ;
-}
+    while (<DATA>) {
+        last if /^VERSION$/ ;
+        print $warn_pm $_ ;
+    }
 
-print $warn_pm qq(our \$VERSION = "$::VERSION";\n);
+    print $warn_pm qq(our \$VERSION = "$::VERSION";\n);
 
-while (<DATA>) {
-    last if /^KEYWORDS$/ ;
-    print $warn_pm $_ ;
-}
+    while (<DATA>) {
+        last if /^KEYWORDS$/ ;
+        print $warn_pm $_ ;
+    }
 
-my $last_ver = 0;
-print $warn_pm "our %Offsets = (" ;
-foreach my $k (sort { $a <=> $b } keys %VALUE_TO_NAME) {
-    my ($name, $version) = @{ $VALUE_TO_NAME{$k} };
-    $name = lc $name;
-    $k *= 2 ;
-    if ( $last_ver != $version ) {
-        print $warn_pm "\n";
-        print $warn_pm tab(6, "    # Warnings Categories added in Perl $version");
-        print $warn_pm "\n";
+    $last_ver = 0;
+    print $warn_pm "our %Offsets = (" ;
+    foreach my $k (sort { $a <=> $b } keys %VALUE_TO_NAME) {
+        my ($name, $version) = @{ $VALUE_TO_NAME{$k} };
+        $name = lc $name;
+        $k *= 2 ;
+        if ( $last_ver != $version ) {
+            print $warn_pm "\n";
+            print $warn_pm tab(6, "    # Warnings Categories added in Perl $version");
+            print $warn_pm "\n";
+        }
+        print $warn_pm tab(6, "    '$name'"), "=> $k,\n" ;
+        $last_ver = $version;
     }
-    print $warn_pm tab(6, "    '$name'"), "=> $k,\n" ;
-    $last_ver = $version;
-}
 
-print $warn_pm ");\n\n" ;
+    print $warn_pm ");\n\n" ;
 
-print $warn_pm "our %Bits = (\n" ;
-foreach my $k (sort keys  %CATEGORIES) {
+    print $warn_pm "our %Bits = (\n" ;
+    foreach my $k (sort keys  %CATEGORIES) {
 
-    my $v = $CATEGORIES{$k} ;
-    my @list = sort { $a <=> $b } @$v ;
+        my $v = $CATEGORIES{$k} ;
+        my @list = sort { $a <=> $b } @$v ;
 
-    print $warn_pm tab(6, "    '$k'"), '=> "',
-                mkHex($warn_size, map $_ * 2 , @list),
-                '", # [', mkRange(@list), "]\n" ;
-}
+        print $warn_pm tab(6, "    '$k'"), '=> "',
+                    mkHex($warn_size, map $_ * 2 , @list),
+                    '", # [', mkRange(@list), "]\n" ;
+    }
 
-print $warn_pm ");\n\n" ;
+    print $warn_pm ");\n\n" ;
 
-print $warn_pm "our %DeadBits = (\n" ;
-foreach my $k (sort keys  %CATEGORIES) {
+    print $warn_pm "our %DeadBits = (\n" ;
+    foreach my $k (sort keys  %CATEGORIES) {
 
-    my $v = $CATEGORIES{$k} ;
-    my @list = sort { $a <=> $b } @$v ;
+        my $v = $CATEGORIES{$k} ;
+        my @list = sort { $a <=> $b } @$v ;
 
-    print $warn_pm tab(6, "    '$k'"), '=> "',
-                mkHex($warn_size, map $_ * 2 + 1 , @list),
-                '", # [', mkRange(@list), "]\n" ;
-}
+        print $warn_pm tab(6, "    '$k'"), '=> "',
+                    mkHex($warn_size, map $_ * 2 + 1 , @list),
+                    '", # [', mkRange(@list), "]\n" ;
+    }
+
+    print $warn_pm ");\n\n" ;
 
-print $warn_pm ");\n\n" ;
-print $warn_pm "# These are used by various things, including our own tests\n";
-print $warn_pm tab(6, 'our $NONE'), '=  "', ('\0' x $warn_size) , "\";\n" ;
-print $warn_pm tab(6, 'our $DEFAULT'), '=  "',
-                    mkHex($warn_size, map $_ * 2, @DEFAULTS),
-                    '"; # [', mkRange(sort { $a <=> $b } @DEFAULTS), "]\n" ;
-print $warn_pm tab(6, 'our $LAST_BIT'), '=  ' . "$index ;\n" ;
-print $warn_pm tab(6, 'our $BYTES'),    '=  ' . "$warn_size ;\n" ;
-while (<DATA>) {
-    if ($_ eq "=for warnings.pl tree-goes-here\n") {
-      print $warn_pm warningsTree($TREE, "    ");
-      next;
+    print $warn_pm "our %NoOp = (\n" ;
+    foreach my $k ( grep /\A[a-z:_]+\z/, sort keys %NO_BIT_FOR ) {
+        print $warn_pm tab(6, "    '$k'"), "=> 1,\n";
     }
-    print $warn_pm $_ ;
-}
 
-read_only_bottom_close_and_rename($warn_pm);
+    print $warn_pm ");\n\n" ;
+    print $warn_pm "# These are used by various things, including our own tests\n";
+    print $warn_pm tab(6, 'our $NONE'), '=  "', ('\0' x $warn_size) , "\";\n" ;
+    print $warn_pm tab(6, 'our $DEFAULT'), '=  "',
+                        mkHex($warn_size, map $_ * 2, @DEFAULTS),
+                        '"; # [', mkRange(sort { $a <=> $b } @DEFAULTS), "]\n" ;
+    print $warn_pm tab(6, 'our $LAST_BIT'), '=  ' . "$index ;\n" ;
+    print $warn_pm tab(6, 'our $BYTES'),    '=  ' . "$warn_size ;\n" ;
+    while (<DATA>) {
+        if ($_ eq "=for warnings.pl tree-goes-here\n") {
+          print $warn_pm warningsTree($WARNING_TREE, "    ");
+          next;
+        }
+        print $warn_pm $_ ;
+    }
 
-exit(0);
+    read_only_bottom_close_and_rename($warn_pm);
 
+    exit(0);
+}
 
+main() unless caller();
 # -----------------------------------------------------------------
 
 sub warnings_h_boilerplate_1 { return <<'EOM'; }
@@ -519,7 +557,6 @@ sub warnings_h_boilerplate_1 { return <<
 #define Perl_Warn_Bit_(x)           (1 << ((x) % 8))
 #define PerlWarnIsSet_(a, x)        ((a)[Perl_Warn_Off_(x)] & Perl_Warn_Bit_(x))
 
-
 #define G_WARN_OFF		0 	/* $^W == 0 */
 #define G_WARN_ON		1	/* -w flag and $^W != 0 */
 #define G_WARN_ALL_ON		2	/* -W flag */
@@ -528,8 +565,8 @@ sub warnings_h_boilerplate_1 { return <<
 #define G_WARN_ALL_MASK		(G_WARN_ALL_ON|G_WARN_ALL_OFF)
 
 #define pWARN_STD		NULL
-#define pWARN_ALL		(STRLEN *) &PL_WARN_ALL    /* use warnings 'all' */
-#define pWARN_NONE		(STRLEN *) &PL_WARN_NONE   /* no  warnings 'all' */
+#define pWARN_ALL               &PL_WARN_ALL    /* use warnings 'all' */
+#define pWARN_NONE              &PL_WARN_NONE   /* no  warnings 'all' */
 
 #define specialWARN(x)		((x) == pWARN_STD || (x) == pWARN_ALL ||	\
                                  (x) == pWARN_NONE)
@@ -547,13 +584,18 @@ sub warnings_h_boilerplate_2 { return <<
 #define isLEXWARN_off \
         cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
 #define isWARN_ONCE	(PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x)	(PerlWarnIsSet_((U8 *)(c + 1), 2*(x)))
-#define isWARNf_on(c,x)	(PerlWarnIsSet_((U8 *)(c + 1), 2*(x)+1))
+#define hasWARNBIT(c,x) (RCPV_LEN(c) > (2*(x)/8))
+#define isWARN_on(c,x)  (hasWARNBIT(c,x) \
+                        ? PerlWarnIsSet_((U8 *)(c), 2*(x)) \
+                        : 0)
+#define isWARNf_on(c,x) (hasWARNBIT(c,x) \
+                        ? PerlWarnIsSet_((U8 *)(c), 2*(x)+1) \
+                        : 0)
 
 #define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p)
 
 #define free_and_set_cop_warnings(cmp,w) STMT_START { \
-  if (!specialWARN((cmp)->cop_warnings)) PerlMemShared_free((cmp)->cop_warnings); \
+  if (!specialWARN((cmp)->cop_warnings)) rcpv_free((cmp)->cop_warnings); \
   (cmp)->cop_warnings = w; \
 } STMT_END
 
@@ -698,6 +740,7 @@ sub _bits {
 
     $mask = _expand_bits($mask);
     foreach my $word ( @_ ) {
+        next if $NoOp{$word};
         if ($word eq 'FATAL') {
             $fatal = 1;
             $no_fatal = 0;
@@ -759,6 +802,7 @@ sub unimport
 
     $mask = _expand_bits($mask);
     foreach my $word ( @_ ) {
+        next if $NoOp{$word};
         if ($word eq 'FATAL') {
             next;
         }
@@ -819,7 +863,7 @@ sub __chk
             unless defined $offset;
     }
     else {
-        $category = (caller(1))[0] ;
+        $category = caller(1);
         $offset = $Offsets{$category};
         Croaker("package '$category' not registered for warnings")
             unless defined $offset ;
@@ -1101,6 +1145,13 @@ which is equivalent to:
     use warnings 'all';
     no warnings  'experimental';
     use warnings 'experimental::somefeature';
+
+As experimental features become regular features of Perl,
+the corresponding warnings are not printed anymore.
+They also stop being listed in the L</Category Hierarchy> below.
+
+It is still possible to request turning on or off these warnings,
+but doing so has no effect.
 
 =head2 What's wrong with B<-w> and C<$^W>
 
Index: gnu/usr.bin/perl/t/TEST
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/TEST,v
diff -u -p -a -u -p -r1.21 TEST
--- gnu/usr.bin/perl/t/TEST	15 Feb 2023 01:36:36 -0000	1.21
+++ gnu/usr.bin/perl/t/TEST	21 Feb 2024 15:47:03 -0000
@@ -118,33 +118,53 @@ $| = 1;
 #BEGIN { require '../lib/strict.pm'; "strict"->import() };
 #BEGIN { require '../lib/warnings.pm'; "warnings"->import() };
 
-# remove empty elements due to insertion of empty symbols via "''p1'" syntax
-@ARGV = grep($_,@ARGV) if $^O eq 'VMS';
+my $OS = $ENV{FAKE_OS} || $^O;
+
+my $is_vms   = $OS eq "VMS";
+my $is_win32 = $OS eq "MSWin32";
+my $is_os2   = $OS eq "os2";
 
-# String eval to avoid loading File::Glob on non-miniperl.
-# (Windows only uses this script for miniperl.)
-@ARGV = eval 'map glob, @ARGV' if $^O eq 'MSWin32';
+# remove empty elements due to insertion of empty symbols via "''p1'" syntax
+@ARGV = grep($_,@ARGV) if $is_vms;
 
 our $show_elapsed_time = $ENV{HARNESS_TIMER} || 0;
 
+my $dump_tests = 0;
+
 # Cheesy version of Getopt::Std.  We can't replace it with that, because we
 # can't rely on require working.
 {
+    my %opt_vars = (
+	benchmark => \$::benchmark,
+	core      => \$::core,
+	v         => \$::verbose,
+	torture	  => \$::torture,
+	utf8      => \$::with_utf8,
+	utf16     => \$::with_utf16,
+	taintwarn => \$::taintwarn,
+	dumptests => \$dump_tests,
+    );
+
     my @argv = ();
     foreach my $idx (0..$#ARGV) {
-	push( @argv, $ARGV[$idx] ), next unless $ARGV[$idx] =~ /^-(\S+)$/;
-	$::benchmark = 1 if $1 eq 'benchmark';
-	$::core    = 1 if $1 eq 'core';
-	$::verbose = 1 if $1 eq 'v';
-	$::torture = 1 if $1 eq 'torture';
-	$::with_utf8 = 1 if $1 eq 'utf8';
-	$::with_utf16 = 1 if $1 eq 'utf16';
-	$::taintwarn = 1 if $1 eq 'taintwarn';
-	if ($1 =~ /^deparse(,.+)?$/) {
+	my $opt;
+	if ($ARGV[$idx] =~ /^-?-(\S+)$/) {
+	    $opt = $1;
+	} else {
+	    push @argv, $ARGV[$idx];
+	    next;
+	}
+	if (my $ref = $opt_vars{$opt}) {
+	    $$ref = 1;
+	}
+	elsif ($opt =~ /^deparse(,.+)?$/) {
 	    $::deparse = 1;
 	    $::deparse_opts = $1;
             _process_deparse_config();
 	}
+	else {
+	    die "Unknown option '$opt'\n";
+	}
     }
     @ARGV = @argv;
 }
@@ -157,6 +177,17 @@ if (-f 'TEST' && -f 'harness' && -d '../
 die "You need to run \"make test_prep\" first to set things up.\n"
   unless -e 'perl' or -e 'perl.exe' or -e 'perl.pm';
 
+if ($is_win32) {
+    # String eval to avoid loading File::Glob on non-miniperl.
+    # (Windows only uses this script for miniperl.)
+    my @argv;
+    if (eval '@argv = map glob, @ARGV; 1') {
+	@ARGV = @argv;
+    } else {
+	die "Failed to glob \@ARGV: $@";
+    }
+}
+
 # check leakage for embedders
 $ENV{PERL_DESTRUCT_LEVEL} = 2 unless exists $ENV{PERL_DESTRUCT_LEVEL};
 # check existence of all symbols
@@ -176,7 +207,7 @@ sub _find_files {
 	opendir DIR, $dir or die "Trouble opening $dir: $!";
 	foreach my $f (sort { $a cmp $b } readdir DIR) {
 	    next if $skip{$f};
-
+	    $dir =~ s/(?<!\^)\.dir(;1)?$//i if $is_vms; # trim .DIR extension
 	    my $fullpath = "$dir/$f";
 	    if (-d $fullpath) {
 		_find_files($patt, $fullpath);
@@ -222,7 +253,7 @@ sub _scan_test {
 
     close $script;
 
-    my $perl = $^O eq 'MSWin32' ? '.\perl' : './perl';
+    my $perl = $is_win32 ? '.\perl' : './perl';
     my $lib  = '../lib';
     my $run_dir;
     my $return_dir;
@@ -288,7 +319,7 @@ sub _cmd {
     }
     elsif ($type eq 'perl') {
         my $perl = $options->{perl};
-        my $redir = $^O eq 'VMS' ? '2>&1' : '';
+        my $redir = $is_vms ? '2>&1' : '';
 
         if ($ENV{PERL_VALGRIND}) {
             my $perl_supp = $options->{return_dir} ? "$options->{return_dir}/perl.supp" : "perl.supp";
@@ -379,7 +410,7 @@ sub _quote_args {
     foreach (split(/\s+/,$args)) {
        # In VMS protect with doublequotes because otherwise
        # DCL will lowercase -- unless already doublequoted.
-       $_ = q(").$_.q(") if ($^O eq 'VMS') && !/^\"/ && length($_) > 0;
+       $_ = q(").$_.q(") if $is_vms && !/^\"/ && length($_) > 0;
        $argstring = $argstring . ' ' . $_;
     }
     return $argstring;
@@ -391,7 +422,9 @@ sub _populate_hash {
 }
 
 sub _tests_from_manifest {
-    my ($extensions, $known_extensions) = @_;
+    my ($extensions, $known_extensions, $all) = @_;
+    s/\bCwd\b/PathTools/, s!\bList/Util\b!Scalar/List/Utils!
+	for $extensions, $known_extensions;
     my %skip;
     my %extensions = _populate_hash($extensions);
     my %known_extensions = _populate_hash($known_extensions);
@@ -402,10 +435,14 @@ sub _tests_from_manifest {
     }
 
     my @results;
+    my %non_ext;
+    push @results, \%non_ext if $all;
     my $mani = '../MANIFEST';
     if (open(MANI, $mani)) {
 	while (<MANI>) {
-	    if (m!^((?:cpan|dist|ext)/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
+	    chomp;
+	    my ($file)= split /\t/, $_;
+	    if ($file =~ m!^((?:cpan|dist|ext)/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\z!) {
 		my $t = $1;
 		my $extension = $2;
 
@@ -456,6 +493,17 @@ sub _tests_from_manifest {
 		    $::path_to_name{$path} = $t;
 		}
 	    }
+	    elsif ($file=~m!/(?:test\.pl|[^/\s]+\.t)\z! and $file ne "t/test.pl") {
+		my $munged = $file;
+		next if $munged=~m!^(?:t/)?os2/!	and !$is_os2;
+		next if $munged=~m!^(?:t/)?win32/!	and !$is_win32;
+		next if $munged=~m!^(?:t/)?japh/!	and !($::torture or $ENV{PERL_TORTURE_TEST});
+		next if $munged=~m!^(?:t/)?benchmark/!	and !($::benchmark or $ENV{PERL_BENCHMARK});
+		next if $munged=~m!^(?:t/)?bigmem/!	and !$ENV{PERL_TEST_MEMORY};
+		$munged =~ s!t/!! or $munged = "../$munged";
+
+		$non_ext{$munged}++;
+	    }
 	}
 	close MANI;
     } else {
@@ -464,18 +512,62 @@ sub _tests_from_manifest {
     return @results;
 }
 
+sub dump_tests {
+    my ($ary) = @_;
+    for my $test (sort @$ary) {
+        # convert it to a path from the root of the repo
+        $test=~s!^\.\./!! or $test=~s!^!t/!;
+        print "$test\n";
+    }
+    exit(0);
+}
+
+sub filter_taint_tests {
+    my $tests = shift;
+    require Config;
+    return unless $Config::Config{taint_disabled} eq "define";
+
+    # These are test files which are known to fail with -DNO_TAINT_SUPPORT
+    # but which do not have "taint" in their name, nor have shebang lines
+    # with -t or -T in them. So we exclude them specifically instead.
+    my %known_tainter = map { $_ => 0 } (
+        '../cpan/Test-Harness/t/regression.t',
+        '../cpan/Test-Harness/t/source_handler.t',
+        '../cpan/Test-Harness/t/compat/inc-propagation.t',
+    );
+    @$tests = grep {
+        my $file = $_;
+        open my $ifh, "<", $file
+            or die "Failed to read: '$file': $!";
+        my $line = <$ifh>;
+        my $keep = $file=~/taint/ ? 0 : ($known_tainter{$file} // 1);
+        if ($line=~/^#!.*perl\s+-(\w+)/) {
+            my $switch = $1;
+            if ($switch =~ s/[Tt]//) {
+                $keep = 0;
+            }
+        }
+        $keep
+    } @$tests;
+}
+
+
 unless (@ARGV) {
     # base first, as TEST bails out if that can't run
     # then comp, to validate that require works
     # then run, to validate that -M works
     # then we know we can -MTestInit for everything else, making life simpler
-    foreach my $dir (qw(base comp run cmd io re opbasic op uni mro perf)) {
+
+    # NOTE that _find_tests() is recursive, unlike what test_harness uses.
+    foreach my $dir (qw(base comp run cmd io re opbasic op uni mro class perf test_pl)) {
 	_find_tests($dir);
     }
     unless ($::core) {
 	_find_tests('porting');
         _find_tests("lib");
     }
+    _find_tests('win32') if $is_win32;
+    _find_tests('os2')	 if $is_os2;
     # Config.pm may be broken for make minitest. And this is only a refinement
     # for skipping tests on non-default builds, so it is allowed to fail.
     # What we want to do is make a list of extensions which we did not build.
@@ -504,13 +596,14 @@ unless (@ARGV) {
     # something is that badly wrong.
     push @ARGV, _tests_from_manifest($extensions, $known_extensions);
     unless ($::core) {
-	_find_tests('japh') if $::torture;
+	_find_tests('japh') if $::torture or $ENV{PERL_TORTURE_TEST};
 	_find_tests('benchmark') if $::benchmark or $ENV{PERL_BENCHMARK};
 	_find_tests('bigmem') if $ENV{PERL_TEST_MEMORY};
     }
 }
 @ARGV= do {
     my @order= (
+	"test_pl",
 	"base",
 	"comp",
 	"run",
@@ -519,8 +612,10 @@ unless (@ARGV) {
 	"re",
 	"opbasic",
 	"op",
+	"op/hook",
 	"uni",
 	"mro",
+	"class",
 	"lib",
 	"ext",
 	"dist",
@@ -541,6 +636,10 @@ unless (@ARGV) {
     } @ARGV;
 };
 
+dump_tests(\@ARGV) if $dump_tests;
+
+filter_taint_tests(\@ARGV);
+
 if ($::deparse) {
     _testprogs('deparse', '',   @ARGV);
 }
@@ -630,7 +729,7 @@ EOT
 	my $te = $::path_to_name{$test} . '.'
 		    x ($dotdotdot - length($::path_to_name{$test})) .' ';
 
-	if ($^O ne 'VMS') {  # defer printing on VMS due to piping bug
+	if (!$is_vms) {  # defer printing on VMS due to piping bug
 	    print $te;
 	    $te = '';
 	}
@@ -648,7 +747,7 @@ EOT
 	my %todo;
 	while (<$results>) {
 	    next if /^\s*$/; # skip blank lines
-	    if (/^1..$/ && ($^O eq 'VMS')) {
+	    if (/^1..$/ && $is_vms) {
 		# VMS pipe bug inserts blank lines.
 		my $l2 = <$results>;
 		if ($l2 =~ /^\s*$/) {
@@ -909,7 +1008,7 @@ sub gather_conf_platform_info {
 	@platform = grep /name|cpu/, <$fh>;
 	chomp $_ for @platform;
     }
-    unshift @platform, $^O;
+    unshift @platform, $OS;
 
     return (
 	conf => \%conf,
Index: gnu/usr.bin/perl/t/harness
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/harness,v
diff -u -p -a -u -p -r1.19 harness
--- gnu/usr.bin/perl/t/harness	15 Feb 2023 01:36:36 -0000	1.19
+++ gnu/usr.bin/perl/t/harness	21 Feb 2024 15:47:03 -0000
@@ -8,6 +8,45 @@ BEGIN {
     @INC = '../lib';              # pick up only this build's lib
 }
 
+##############################################################################
+# Test files which cannot be executed at the same time.
+#
+# List all files which might fail when executed at the same time as another
+# test file from the same test directory. Being listed here does not mean
+# the test will be run by itself, it just means it won't be run at the same
+# time as any other file in the same test directory, it might be run at the
+# same time as a file from a different test directory.
+#
+# Ideally this is always empty.
+#
+# Example: ../cpan/IO-Zlib/t/basic.t
+#
+my @_must_be_executed_serially = qw(
+);
+my %must_be_executed_serially = map { $_ => 1 } @_must_be_executed_serially;
+##############################################################################
+
+##############################################################################
+# Test files which must be executed alone.
+#
+# List files which cannot be run at the same time as any other test. Typically
+# this is used to handle tests which are sensitive to load and which might
+# fail if they were run at the same time as something load intensive.
+#
+# Example: ../dist/threads-shared/t/waithires.t
+#
+my @_must_be_executed_alone = qw();
+my %must_be_executed_alone = map { $_ => 1 } @_must_be_executed_alone;
+
+my $OS = $ENV{FAKE_OS} || $^O;
+my $is_linux = $OS eq "linux";
+my $is_win32 = $OS eq "MSWin32";
+
+if (!$is_linux) {
+    $must_be_executed_alone{"../dist/threads-shared/t/waithires.t"} = 1;
+}
+##############################################################################
+
 my $torture; # torture testing?
 
 use TAP::Harness 3.13;
@@ -25,7 +64,13 @@ $Verbose++ while @ARGV && $ARGV[0] eq '-
 my $htoolnm;
 my $hgrind_ct;
 
-if ($ARGV[0] && $ARGV[0] eq '-torture') {
+my $dump_tests = 0;
+if ($ARGV[0] && $ARGV[0] =~ /^-?-dumptests$/) {
+    shift;
+    $dump_tests = 1;
+}
+
+if ($ARGV[0] && $ARGV[0] =~ /^-?-torture$/) {
     shift;
     $torture = 1;
 }
@@ -39,29 +84,7 @@ my (@tests, @re, @anti_re);
 # [.VMS]TEST.COM calls harness with empty arguments, so clean-up @ARGV
 @ARGV = grep $_ && length( $_ ) => @ARGV;
 
-sub _extract_tests;
-sub _extract_tests {
-    # This can probably be done more tersely with a map, but I doubt that it
-    # would be as clear
-    my @results;
-    foreach (@_) {
-	my $ref = ref $_;
-	if ($ref) {
-	    if ($ref eq 'ARRAY') {
-		push @results, _extract_tests @$_;
-	    } elsif ($ref eq 'HASH') {
-		push @results, _extract_tests values %$_;
-	    } else {
-		die "Unknown reference type $ref";
-	    }
-	} else {
-	    push @results, glob $_;
-	}
-    }
-    @results;
-}
-
-while ($ARGV[0] && $ARGV[0]=~/^-(n?)re/) {
+while ($ARGV[0] && $ARGV[0]=~/^-?-(n?)re/) {
     my $ary= $1 ? \@anti_re : \@re;
 
     if ( $ARGV[0] !~ /=/ ) {
@@ -76,6 +99,7 @@ while ($ARGV[0] && $ARGV[0]=~/^-(n?)re/)
 
 my $jobs = $ENV{TEST_JOBS};
 my ($rules, $state, $color);
+
 if ($ENV{HARNESS_OPTIONS}) {
     for my $opt ( split /:/, $ENV{HARNESS_OPTIONS} ) {
         if ( $opt =~ /^j(\d*)$/ ) {
@@ -90,6 +114,195 @@ if ($ENV{HARNESS_OPTIONS}) {
     }
 }
 
+$jobs ||= 1;
+
+my %total_time;
+sub _compute_tests_and_ordering($) {
+    my @tests = $_[0]->@*;
+
+    my %dir;
+    my %all_dirs;
+    my %map_file_to_dir;
+
+    if (!$dump_tests) {
+        require App::Prove::State;
+        if (!$state) {
+            # silence unhelpful warnings from App::Prove::State about not having
+            # a save state, unless we actually set the PERL_TEST_STATE we don't care
+            # and we don't need to know if its fresh or not.
+            local $SIG{__WARN__} = $ENV{PERL_TEST_STATE} ? $SIG{__WARN__} : sub {
+                return if $_[0] and $_[0]=~/No saved state/;
+                warn $_[0];
+            };
+            my $state_file = $ENV{PERL_TEST_STATE_FILE} // 'test_state';
+            if ($state_file) { # set PERL_TEST_STATE_FILE to 0 to skip this
+                $state = App::Prove::State->new({ store => $state_file });
+                $state->apply_switch('save');
+                $state->apply_switch('slow') if $jobs > 1;
+            }
+        }
+        # For some reason get_tests returns *all* the tests previously run,
+        # (in the right order), not simply the selection in @tests
+        # (in the right order). Not sure if this is a bug or a feature.
+        # Whatever, *we* are only interested in the ones that are in @tests
+        my %seen;
+        @seen{@tests} = ();
+        @tests = grep {exists $seen{$_} } $state->get_tests(0, @tests);
+    }
+
+    my %times;
+    if ($state) {
+        # Where known, collate the elapsed times by test name
+        foreach ($state->results->tests()) {
+            $times{$_->name} = $_->elapsed();
+        }
+    }
+
+    my %partial_serials;
+    # Preprocess the list of tests
+    for my $file (@tests) {
+        if ($is_win32) {
+            $file =~ s,\\,/,g; # canonicalize path
+        };
+
+        # Keep a list of the distinct directory names, and another list of
+        if ($file =~ m! \A ( (?: \.\. / )?
+                                .*?
+                            )             # $1 is the directory path name
+                            /
+                            ( [^/]* \. (?: t | pl ) ) # $2 is the test name
+                        \z !x)
+        {
+            my $path = $1;
+            my $name = $2;
+
+            $all_dirs{$path} = 1;
+            $map_file_to_dir{$file} = $path;
+            # is this is a file that requires we do special processing
+            # on the directory as a whole?
+            if ($must_be_executed_serially{$file}) {
+                $partial_serials{$path} = 1;
+            }
+        }
+    }
+
+    my %split_partial_serials;
+
+    my @alone_files;
+    # Ready to figure out the timings.
+    for my $file (@tests) {
+        my $file_dir = $map_file_to_dir{$file};
+
+        # if this is a file which must be processed alone
+        if ($must_be_executed_alone{$file}) {
+            push @alone_files, $file;
+            next;
+        }
+
+        # Special handling is needed for a directory that has some test files
+        # to execute serially, and some to execute in parallel.  This loop
+        # gathers information that a later loop will process.
+        if (defined $partial_serials{$file_dir}) {
+            if ($must_be_executed_serially{$file}) {
+                # This is a file to execute serially.  Its time contributes
+                # directly to the total time for this directory.
+                $total_time{$file_dir} += $times{$file} || 0;
+
+                # Save the sequence number with the file for now; below we
+                # will come back to it.
+                push $split_partial_serials{$file_dir}{seq}->@*, [ $1, $file ];
+            }
+            else {
+                # This is a file to execute in parallel after all the
+                # sequential ones are done.  Save its time in the hash to
+                # later calculate its time contribution.
+                push $split_partial_serials{$file_dir}{par}->@*, $file;
+                $total_time{$file} = $times{$file} || 0;
+            }
+        }
+        else {
+            # Treat every file in each non-serial directory as its own
+            # "directory", so that it can be executed in parallel
+            $dir{$file} = { seq => $file };
+            $total_time{$file} = $times{$file} || 0;
+        }
+    }
+
+    undef %all_dirs;
+
+    # Here, everything is complete except for the directories that have both
+    # serial components and parallel components.  The loop just above gathered
+    # the information required to finish setting those up, which we now do.
+    for my $partial_serial_dir (keys %split_partial_serials) {
+
+        # Look at just the serial portion for now.
+        my @seq_list = $split_partial_serials{$partial_serial_dir}{seq}->@*;
+
+        # The 0th element contains the sequence number; the 1th element the
+        # file name.  Get the name, sorted first by the number, then by the
+        # name.  Doing it this way allows sequence numbers to be varying
+        # length, and still get a numeric sort
+        my @sorted_seq_list = map { $_->[1] }
+                                sort {    $a->[0] <=>    $b->[0]
+                                    or lc $a->[1] cmp lc $b->[1] } @seq_list;
+
+        # Now look at the tests to run in parallel.  Sort in descending order
+        # of execution time.
+        my @par_list = sort sort_by_execution_order
+                        $split_partial_serials{$partial_serial_dir}{par}->@*;
+
+        # The total time to execute this directory is the serial time (already
+        # calculated in the previous loop) plus the parallel time.  To
+        # calculate an approximate parallel time, note that the minimum
+        # parallel time is the maximum of each of the test files run in
+        # parallel.  If the number of parallel jobs J is more than the number
+        # of such files, N, it could be that all N get executed in parallel,
+        # so that maximum is the actual value.  But if N > J, a second, or
+        # third, ...  round will be required.  The code below just takes the
+        # longest-running time for each round and adds that to the previous
+        # total.  It is an imperfect estimate, but not unreasonable.
+        my $par_time = 0;
+        for (my $i = 0; $i < @par_list; $i += $jobs) {
+            $par_time += $times{$par_list[$i]} || 0;
+        }
+        $total_time{$partial_serial_dir} += $par_time;
+
+        # Now construct the rules.  Each of the parallel tests is made into a
+        # single element 'seq' structure, like is done for all the other
+        # parallel tests.
+        @par_list = map { { seq => $_ } } @par_list;
+
+        # Then the directory is ordered to have the sequential tests executed
+        # first (serially), then the parallel tests (in parallel)
+
+        $dir{$partial_serial_dir} =
+                                { 'seq' => [ { seq => \@sorted_seq_list },
+                                             { par => \@par_list        },
+                                           ],
+                                };
+    }
+
+    #print STDERR __LINE__, join "\n", sort sort_by_execution_order keys %dir
+
+    # Generate T::H schedule rules that run the contents of each directory
+    # sequentially.
+    my @seq = { par => [ map { $dir{$_} } sort sort_by_execution_order
+                                                                    keys %dir
+                        ]
+               };
+
+    # and lastly add in the files which must be run by themselves without
+    # any other tests /at all/ running at the same time.
+    push @seq, map { +{ seq => $_ } } sort @alone_files if @alone_files;
+
+    return \@seq;
+}
+
+sub sort_by_execution_order {
+    # Directories, ordered by total time descending then name ascending
+    return $total_time{$b} <=> $total_time{$a} || lc $a cmp lc $b;
+}
+
 if (@ARGV) {
     # If you want these run in speed order, just use prove
 
@@ -114,136 +327,53 @@ if (@ARGV) {
     # but for now, run all directories in sequence.
 
     unless (@tests) {
-	my @seq = <base/*.t>;
+        my @seq = <base/*.t>;
+        push @tests, @seq;
 
-        my @last;
-	my @next = qw(comp run cmd);
+        my (@next, @last);
 
         # The remaining core tests are either intermixed with the non-core for
         # more parallelism (if PERL_TEST_HARNESS_ASAP is set non-zero) or done
         # after the above basic sanity tests, before any non-core ones.
         my $which = $ENV{PERL_TEST_HARNESS_ASAP} ? \@last : \@next;
 
-        push @$which, qw(io re opbasic op uni mro lib porting perf);
-	push @$which, 'japh' if $torture;
-	push @$which, 'win32' if $^O eq 'MSWin32';
-	push @$which, 'benchmark' if $ENV{PERL_BENCHMARK};
-	push @$which, 'bigmem' if $ENV{PERL_TEST_MEMORY};
-
-	# Hopefully TAP::Parser::Scheduler will support this syntax soon.
-	# my $next = { par => '{' . join (',', @next) . '}/*.t' };
-	my $next = { par => [
-			     map { "$_/*.t" } @next
-			    ] };
-	@tests = _extract_tests ($next);
-
-	my $last = { par => '{' . join (',', @last) . '}/*.t' };
-	@last = _extract_tests ($last);
-
-	# This is a bit of a game, because we only want to sort these tests in
-	# speed order. base/*.t wants to run first, and ext,lib etc last and in
-	# MANIFEST order
-	if ($jobs) {
-	    require App::Prove::State;
-	    $state = App::Prove::State->new({ store => 'test_state' });
-	    $state->apply_switch('slow', 'save');
-	    # For some reason get_tests returns *all* the tests previously run,
-	    # (in the right order), not simply the selection in @tests
-	    # (in the right order). Not sure if this is a bug or a feature.
-	    # Whatever, *we* are only interested in the ones that are in @tests
-	    my %seen;
-	    @seen{@tests} = ();
-	    @tests = grep {exists $seen{$_} } $state->get_tests(0, @tests);
-	}
-	@tests = (@seq, @tests);
-	push @seq, $next;
-
-	push @last,
-	    _tests_from_manifest($Config{extensions}, $Config{known_extensions});
-	my %times;
-	if ($state) {
-	    # Where known, collate the elapsed times by test name
-	    foreach ($state->results->tests()) {
-		$times{$_->name} = $_->elapsed();
-	    }
-	}
-
-	my %dir;
-	my %total_time;
-        my %serials;
-        my %all_dirs;
-
-        # Preprocess the list of tests
-	for (@last) {
-	    if ($^O eq 'MSWin32') {
-		s,\\,/,g; # canonicalize path
-	    };
-
-            # Keep a list of the distinct directory names, and another list of
-            # those which contain a file whose name begins with a 0
-            if ( m! \A (?: \.\. / )?
-                                ( .*? )         # $1 is the directory path name
-                            /
-                                ( [^/]* \.t )   # $2 is the .t name
-                    \z !x)
-            {
-                my $path = $1;
-
-                $all_dirs{$path} = 1;
-                $serials{$path} = 1 if $2 =~ / \A 0 /x;
-            }
+        push @$which, qw(comp run cmd);
+        push @$which, qw(io re opbasic op op/hook uni mro lib class porting perf test_pl);
+        push @$which, 'japh' if $torture or $ENV{PERL_TORTURE_TEST};
+        push @$which, 'win32' if $is_win32;
+        push @$which, 'benchmark' if $ENV{PERL_BENCHMARK};
+        push @$which, 'bigmem' if $ENV{PERL_TEST_MEMORY};
+
+        if (@next) {
+            @next = map { glob ("$_/*.t") } @next;
+            push @tests, @next;
+            push @seq, _compute_tests_and_ordering(\@next)->@*;
         }
 
-        # We assume that the reason a test file's name begins with a 0 is to
-        # order its execution among the tests in its directory.  Hence, a
-        # directory containing such files should be tested in serial order.
-        #
-        # Add exceptions to the above rule
-        for (qw(cpan/IO-Zlib/t ext/File-Find/t)) {
-            $serials{$_} = 1;
-        }
-
-        my @nonexistent_serials = grep { not exists $all_dirs{$_} } keys %serials;
-        if (@nonexistent_serials) {
-            die "These directories to be run serially don't exist."
-              . "  Check your spelling:\n" . join "\n", @nonexistent_serials;
-        }
-
-        # Remove the serial testing directories from the list of all
-        # directories.  The remaining ones are testable in parallel.  Make the
-        # parallel list a scalar with names separated by '|' so that below
-        # they will be added to a regular expression.
-        my $non_serials = join "|", grep { not exists $serials{$_} } keys %all_dirs;
-        undef %all_dirs;
-        undef %serials;
+        @last = map { glob ("$_/*.t") } @last;
 
-	for (@last) {
-            # Treat every file in each non-serial directory as its own
-            # "directory", so that it can be executed in parallel
-            m! \A ( (?: \.\. / )? (?: $non_serials )
-                         / [^/]+ \.t \z | .* [/] ) !x
-                or die "'$_'";
-	    push @{$dir{$1}}, $_;
-
-            # This file contributes time to the total needed for the directory
-            # as a whole
-	    $total_time{$1} += $times{$_} || 0;
-	}
-        #print STDERR __LINE__, join "\n", sort { $total_time{$b} <=> $total_time{$a} } keys %dir, "  ";
-
-	push @tests, @last;
-
-	# Generate T::H schedule rules that run the contents of each directory
-	# sequentially.
-	push @seq, { par => [ map { s!/$!/*!; { seq => $_ } } sort {
-	    # Directories, ordered by total time descending then name ascending
-	    $total_time{$b} <=> $total_time{$a} || lc $a cmp lc $b
-	} keys %dir ] };
+        my ($non_ext, @ext_from_manifest)=
+            _tests_from_manifest($Config{extensions}, $Config{known_extensions}, "all");
+        push @last, @ext_from_manifest;
+
+        push @seq, _compute_tests_and_ordering(\@last)->@*;
+        push @tests, @last;
 
-	$rules = { seq => \@seq };
+        $rules = { seq => \@seq };
+
+        foreach my $test (@tests) {
+            delete $non_ext->{$test};
+        }
+
+        my @in_manifest_but_not_found = sort keys %$non_ext;
+        if (@in_manifest_but_not_found) {
+            die "There are test files which are in MANIFEST but are not found by the t/harness\n",
+                 "directory scanning rules. You should update t/harness line 339 or so.\n",
+                 "Files:\n", map { "    $_\n" } @in_manifest_but_not_found;
+        }
     }
 }
-if ($^O eq 'MSWin32') {
+if ($is_win32) {
     s,\\,/,g for @tests;
 }
 if (@re or @anti_re) {
@@ -269,7 +399,7 @@ if (@re or @anti_re) {
     @tests= @keepers;
 }
 
-# Allow eg ./perl t/harness t/op/lc.t
+# Allow e.g., ./perl t/harness t/op/lc.t
 for (@tests) {
     if (! -f $_ && !/^\.\./ && -f "../$_") {
         $_ = "../$_";
@@ -277,6 +407,10 @@ for (@tests) {
     }
 }
 
+dump_tests(\@tests) if $dump_tests;
+
+filter_taint_tests(\@tests);
+
 my %options;
 
 my $type = 'perl';
@@ -292,72 +426,73 @@ my $h = TAP::Harness->new({
     verbosity   => $Verbose,
     timer       => $ENV{HARNESS_TIMER},
     exec        => sub {
-	my ($harness, $test) = @_;
+        my ($harness, $test) = @_;
 
-	my $options = $options{$test};
-	if (!defined $options) {
-	    $options = $options{$test} = _scan_test($test, $type);
-	}
+        my $options = $options{$test};
+        if (!defined $options) {
+            $options = $options{$test} = _scan_test($test, $type);
+        }
 
-	(local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+        (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
 
-	return [ split ' ', _cmd($options, $type) ];
+        return [ split ' ', _cmd($options, $type) ];
     },
 });
 
 # Print valgrind output after test completes
 if ($ENV{PERL_VALGRIND}) {
     $h->callback(
-		 after_test => sub {
-		     my ($job) = @_;
-		     my $test = $job->[0];
-		     my $vfile = "$test.valgrind-current";
-	             $vfile =~ s/^.*\///;
-
-		     if ( (! -z $vfile) && open(my $voutput, '<', $vfile)) {
-			print "$test: Valgrind output:\n";
-			print "$test: $_" for <$voutput>;
-			close($voutput);
-		     }
-
-		     (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
-
-		     _check_valgrind(\$htoolnm, \$hgrind_ct, \$test);
-		 }
-		 );
+                 after_test => sub {
+                     my ($job) = @_;
+                     my $test = $job->[0];
+                     my $vfile = "$test.valgrind-current";
+                     $vfile =~ s/^.*\///;
+
+                     if ( (! -z $vfile) && open(my $voutput, '<', $vfile)) {
+                        print "$test: Valgrind output:\n";
+                        print "$test: $_" for <$voutput>;
+                        close($voutput);
+                     }
+
+                     (local $Valgrind_Log = "$test.valgrind-current") =~ s/^.*\///;
+
+                     _check_valgrind(\$htoolnm, \$hgrind_ct, \$test);
+                 }
+                 );
 }
 
 if ($state) {
     $h->callback(
-		 after_test => sub {
-		     $state->observe_test(@_);
-		 }
-		 );
+                 after_test => sub {
+                     $state->observe_test(@_);
+                 }
+                 );
     $h->callback(
-		 after_runtests => sub {
-		     $state->commit(@_);
-		 }
-		 );
+                 after_runtests => sub {
+                     $state->commit(@_);
+                 }
+                 );
 }
 
 $h->callback(
-	     parser_args => sub {
-		 my ($args, $job) = @_;
-		 my $test = $job->[0];
-		 _before_fork($options{$test});
-		 push @{ $args->{switches} }, "-I../../lib";
-	     }
-	     );
+             parser_args => sub {
+                 my ($args, $job) = @_;
+                 my $test = $job->[0];
+                 _before_fork($options{$test});
+                 push @{ $args->{switches} }, "-I../../lib";
+             }
+             );
 
 $h->callback(
-	     made_parser => sub {
-		 my ($parser, $job) = @_;
-		 my $test = $job->[0];
-		 my $options = delete $options{$test};
-		 _after_fork($options);
-	     }
-	     );
+             made_parser => sub {
+                 my ($parser, $job) = @_;
+                 my $test = $job->[0];
+                 my $options = delete $options{$test};
+                 _after_fork($options);
+             }
+             );
 
 my $agg = $h->runtests(@tests);
 _cleanup_valgrind(\$htoolnm, \$hgrind_ct);
+printf "Finished test run at %s.\n", scalar(localtime);
 exit $agg->has_errors ? 1 : 0;
Index: gnu/usr.bin/perl/t/loc_tools.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/loc_tools.pl,v
diff -u -p -a -u -p -r1.9 loc_tools.pl
--- gnu/usr.bin/perl/t/loc_tools.pl	15 Feb 2023 01:36:36 -0000	1.9
+++ gnu/usr.bin/perl/t/loc_tools.pl	21 Feb 2024 15:47:03 -0000
@@ -15,20 +15,25 @@ use strict;
 use warnings;
 use feature 'state';
 
+my %known_bad_locales = (   # XXX eventually will need version info if and
+                            # when these get fixed.
+    solaris => [ 'vi_VN.UTF-8', ],  # Use of U+A8 segfaults: GH #20578
+);
+
 eval { require POSIX; import POSIX 'locale_h'; };
 my $has_locale_h = ! $@;
 
 my @known_categories = ( qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY
                             LC_NUMERIC LC_TIME LC_ADDRESS LC_IDENTIFICATION
                             LC_MEASUREMENT LC_PAPER LC_TELEPHONE LC_SYNTAX
-                            LC_TOD));
+                            LC_TOD LC_NAME));
 my @platform_categories;
 
-sub is_category_valid($) {
+sub category_excluded($) {
     my $cat_name = shift =~ s/^LC_//r;
 
     # Recognize Configure option to exclude a category
-    return $Config{ccflags} !~ /\bD?NO_LOCALE_$cat_name\b/;
+    return $Config{ccflags} =~ /\bD?NO_LOCALE_$cat_name\b/;
 }
 
 # LC_ALL can be -1 on some platforms.  And, in fact the implementors could
@@ -83,6 +88,9 @@ sub _my_diag($) {
     }
 }
 
+# Larger than any real test
+my $my_count = 1_000_000;
+
 sub _my_fail($) {
     my $message = shift;
     if (defined &main::fail) {
@@ -90,10 +98,40 @@ sub _my_fail($) {
     }
     else {
         local($\, $", $,) = (undef, ' ', '');
-        print "not ok 0 $message\n";
+        print "not ok " . $my_count++ . $message . "\n";
     }
 }
 
+sub valid_locale_categories() {
+    # Returns a list of the locale categories (expressed as strings, like
+    # "LC_ALL) known to this program that are available on this platform.
+
+    return grep { ! category_excluded($_) } @platform_categories;
+}
+
+sub is_category_valid($) {
+    my $name = shift;
+    $name = 'LC_' . $name =~ s/^LC_//r;
+    return grep { $name eq $_ } valid_locale_categories();
+}
+
+# It turns out that strings generated under the control of a given locale
+# category are often affected as well by LC_CTYPE.  If the two categories
+# don't match, one can get mojibake or even core dumps.  (khw thinks it more
+# likely that it's the code set, not the locale that's critical here; but
+# didn't run experiments to verify this.)  Hence, in the code below, CTYPE and
+# the tested categories are all set to the same locale.  If CTYPE isn't
+# available on the platform, LC_ALL is instead used.  One might think to just
+# use LC_ALL all the time, but on Windows
+#    setlocale(LC_ALL, "some_borked_locale")
+# can return success, whereas setting LC_CTYPE to it fails.
+my $master_category;
+$master_category = $category_number{'CTYPE'}
+        if is_category_valid('LC_CTYPE') && defined $category_number{'CTYPE'};
+$master_category = $category_number{'ALL'}
+        if ! defined $master_category
+          && is_category_valid('LC_ALL') && defined $category_number{'ALL'};
+
 sub _trylocale ($$$$) { # For use only by other functions in this file!
 
     # Adds the locale given by the first parameter to the list given by the
@@ -109,7 +147,8 @@ sub _trylocale ($$$$) { # For use only b
     my $list = shift;
     my $allow_incompatible = shift;
 
-    return if ! $locale || grep { $locale eq $_ } @$list;
+    my $normalized_locale = lc ($locale =~ s/\W//gr);
+    return if ! $locale || grep { $normalized_locale eq lc ($_ =~ s/\W//gr) } @$list;
 
     # This is a toy (pig latin) locale that is not fully implemented on some
     # systems
@@ -122,63 +161,73 @@ sub _trylocale ($$$$) { # For use only b
     # such systems fully, but we shouldn't disable the user from using
     # locales, as it may work out for them (or not).
     return if    defined $Config{d_setlocale_accepts_any_locale_name}
-              && $locale !~ / ^ (?: C | POSIX | C\.UTF-8 ) $/ix;
+              && $locale !~ / ^ (?: C | POSIX | C\.UTF-?8 ) $/ix;
+
+    if (exists $known_bad_locales{$^O}) {
+        my @bad_locales = $known_bad_locales{$^O}->@*;
+        return if grep { $locale eq $_ } @bad_locales;
+    }
 
     $categories = [ $categories ] unless ref $categories;
 
     my $badutf8 = 0;
     my $plays_well = 1;
+    my $unsupported = 0;
 
     use warnings 'locale';
 
     local $SIG{__WARN__} = sub {
         $badutf8 = 1 if grep { /Malformed UTF-8/ } @_;
+        $unsupported = 1 if grep { /Locale .* is unsupported/i } @_;
         $plays_well = 0 if grep {
-                    /Locale .* may not work well(?#
+                    /The following characters .* may not have the same meaning as the Perl program expects(?#
                    )|The Perl program will use the expected meanings/i
             } @_;
     };
 
-    # Incompatible locales aren't warned about unless using locales.
-    use locale;
-
-    # Sort the input so CTYPE is first, COLLATE comes after all but ALL.  This
-    # is because locale.c detects bad locales only with CTYPE, and COLLATE on
-    # some platforms can core dump if it is a bad locale.
-    my @sorted;
-    my $has_ctype = 0;
-    my $has_all = 0;
-    my $has_collate = 0;
-    foreach my $category (@$categories) {
-        die "category '$category' must instead be a number"
-                                            unless $category =~ / ^ -? \d+ $ /x;
-        if ($category_name{$category} eq 'CTYPE') {
-            $has_ctype = 1;
+    my $first_time = 1;
+    foreach my $category ($master_category, $categories->@*) {
+        next if ! defined $category || (! $first_time && $category == $master_category);
+        $first_time = 0;
+
+        my $save_locale = setlocale($category);
+        if (! $save_locale) {
+            _my_fail("Verify could save previous locale");
+            return;
         }
-        elsif ($category_name{$category} eq 'ALL') {
-            $has_all = 1;
-        }
-        elsif ($category_name{$category} eq 'COLLATE') {
-            $has_collate = 1;
+
+        # Incompatible locales aren't warned about unless using locales.
+        use locale;
+
+        my $result = setlocale($category, $locale);
+        return unless defined $result;
+
+        no locale;
+
+        # We definitely don't want the locale set to something that is
+        # unsupported
+        if (! setlocale($category, $save_locale)) {
+            my $error_text = "\$!=$!";
+            $error_text .= "; \$^E=$^E" if $^E != $!;
+            die "Couldn't restore locale '$save_locale', category $category;"
+              . $error_text;
         }
-        else {
-            push @sorted, $category unless grep { $_ == $category } @sorted;
+        if ($badutf8) {
+            _my_fail("Verify locale name doesn't contain malformed utf8");
+            return;
         }
-    }
-    push @sorted, $category_number{'COLLATE'} if $has_collate;
-    push @sorted, $category_number{'ALL'} if $has_all;
-    unshift @sorted, $category_number{'CTYPE'} if $has_ctype || ! $allow_incompatible;
 
-    foreach my $category (@sorted) {
-        return unless setlocale($category, $locale);
-        last if $badutf8 || ! $plays_well;
-    }
+        return if $unsupported;
+
+        # Commas in locale names are bad in Windows, and there is a bug in
+        # some versions where setlocale() turns a legal input locale name into
+        # an illegal return value, which it can't later parse.
+        return if $result =~ /,/;
 
-    if ($badutf8) {
-        _my_fail("Verify locale name doesn't contain malformed utf8");
-        return;
+        return unless $plays_well || $allow_incompatible;
     }
-    push @$list, $locale if $plays_well || $allow_incompatible;
+
+    push @$list, $locale;
 }
 
 sub _decode_encodings { # For use only by other functions in this file!
@@ -208,13 +257,6 @@ sub _decode_encodings { # For use only b
     return @enc;
 }
 
-sub valid_locale_categories() {
-    # Returns a list of the locale categories (expressed as strings, like
-    # "LC_ALL) known to this program that are available on this platform.
-
-    return grep { is_category_valid($_) } @platform_categories;
-}
-
 sub locales_enabled(;$) {
     # If no parameter is specified, the function returns 1 if there is any
     # "safe" locale handling available to the caller; otherwise 0.  Safeness
@@ -318,8 +360,8 @@ sub locales_enabled(;$) {
                     unless defined $number;
             }
 
-            return 0 if     $number <= $max_bad_category_number
-                       || ! is_category_valid($name);
+            return 0 if   $number <= $max_bad_category_number
+                       || category_excluded($name);
 
 
             eval "defined &POSIX::LC_$name";
@@ -374,7 +416,9 @@ sub find_locales ($;$) {
     my $input_categories = shift;
     my $allow_incompatible = shift // 0;
 
-    my @categories = (ref $input_categories) ? $input_categories->@* : $input_categories;
+    my @categories = (ref $input_categories)
+                      ? $input_categories->@*
+                      : $input_categories;
     return unless locales_enabled(\@categories);
 
     # Note, the subroutine call above converts the $categories into a form
@@ -531,17 +575,17 @@ sub is_locale_utf8 ($) { # Return a bool
 
     my $locale = shift;
 
-    use locale;
     no warnings 'locale'; # We may be trying out a weird locale
+    use locale;
 
     my $save_locale = setlocale(&POSIX::LC_CTYPE());
     if (! $save_locale) {
-        ok(0, "Verify could save previous locale");
+        _my_fail("Verify could save previous locale");
         return 0;
     }
 
     if (! setlocale(&POSIX::LC_CTYPE(), $locale)) {
-        ok(0, "Verify could setlocale to $locale");
+        _my_fail("Verify could setlocale to $locale");
         return 0;
     }
 
@@ -554,7 +598,7 @@ sub is_locale_utf8 ($) { # Return a bool
     # go through testing all the locales on the platform.
     if (CORE::fc(chr utf8::unicode_to_native(0xdf)) ne "ss") {
         if ($locale =~ /UTF-?8/i) {
-            ok (0, "Verify $locale with UTF-8 in name is a UTF-8 locale");
+            _my_fail("Verify $locale with UTF-8 in name is a UTF-8 locale");
         }
     }
     else {
@@ -562,35 +606,51 @@ sub is_locale_utf8 ($) { # Return a bool
     }
 
     die "Couldn't restore locale '$save_locale'"
-        unless setlocale(&POSIX::LC_CTYPE(), $save_locale);
+                            unless setlocale(&POSIX::LC_CTYPE(), $save_locale);
 
     return $ret;
 }
 
-sub find_utf8_ctype_locales (;$) { # Return the names of the locales that core
-                                  # Perl thinks are UTF-8 LC_CTYPE locales.
-                                  # Optional parameter is a reference to a
-                                  # list of locales to try; if omitted, this
-                                  # tries all locales it can find on the
-                                  # platform
-    return unless locales_enabled('LC_CTYPE');
+sub classify_locales_wrt_utf8ness($) {
 
-    my $locales_ref = shift;
-    my @return;
+    # Takes the input list of locales, and returns two lists split apart from
+    # it: the UTF-8 ones, and the non-UTF-8 ones.
 
-    if (! defined $locales_ref) {
+    my $locales_ref = shift;
+    my (@utf8, @non_utf8);
 
-        my @locales = find_locales(&POSIX::LC_CTYPE());
-        $locales_ref = \@locales;
+    if (! locales_enabled('LC_CTYPE')) {  # No CTYPE implies all are non-UTF-8
+        @non_utf8 = $locales_ref->@*;
+        return ( \@utf8, \@non_utf8 );
     }
 
     foreach my $locale (@$locales_ref) {
-        push @return, $locale if is_locale_utf8($locale);
+        my $which = (is_locale_utf8($locale)) ? \@utf8 : \@non_utf8;
+        push $which->@*, $locale;
     }
 
-    return @return;
+    return ( \@utf8, \@non_utf8 );
 }
 
+sub find_utf8_ctype_locales (;$) {
+
+    # Return the names of the locales that core Perl thinks are UTF-8 LC_CTYPE
+    # locales.  Optional parameter is a reference to a list of locales to try;
+    # if omitted, this tries all locales it can find on the platform
+
+    return unless locales_enabled('LC_CTYPE');
+
+    my $locales_ref = shift;
+    if (! defined $locales_ref) {
+
+        my @locales = find_locales(&POSIX::LC_CTYPE());
+        $locales_ref = \@locales;
+    }
+
+    my ($utf8_ref, undef) = classify_locales_wrt_utf8ness($locales_ref);
+    return unless $utf8_ref;
+    return $utf8_ref->@*;
+}
 
 sub find_utf8_ctype_locale (;$) { # Return the name of a locale that core Perl
                                   # thinks is a UTF-8 LC_CTYPE non-turkic
@@ -632,7 +692,9 @@ sub find_utf8_turkic_locales (;$) {
         setlocale(&POSIX::LC_CTYPE(), $locale);
         push @return, $locale if uc('i') eq "\x{130}";
     }
-    setlocale(&POSIX::LC_CTYPE(), $save_locale);
+
+    die "Couldn't restore locale '$save_locale'"
+                            unless setlocale(&POSIX::LC_CTYPE(), $save_locale);
 
     return @return;
 }
Index: gnu/usr.bin/perl/t/test.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/test.pl,v
diff -u -p -a -u -p -r1.7 test.pl
--- gnu/usr.bin/perl/t/test.pl	21 Feb 2023 02:20:35 -0000	1.7
+++ gnu/usr.bin/perl/t/test.pl	21 Feb 2024 15:47:03 -0000
@@ -246,7 +246,7 @@ sub _ok {
         $name =~ s/#/\\#/g;
 	$out = $pass ? "ok $test - $name" : "not ok $test - $name";
     } else {
-	$out = $pass ? "ok $test" : "not ok $test";
+	$out = $pass ? "ok $test - [$where]" : "not ok $test - [$where]";
     }
 
     if ($TODO) {
@@ -274,8 +274,8 @@ sub _ok {
 }
 
 sub _where {
-    my @caller = caller($Level);
-    return "at $caller[1] line $caller[2]";
+    my (undef, $filename, $lineno) = caller($Level);
+    return "at $filename line $lineno";
 }
 
 # DON'T use this for matches. Use like() instead.
@@ -357,6 +357,16 @@ sub is ($$@) {
     unless ($pass) {
 	unshift(@mess, "#      got "._qq($got)."\n",
 		       "# expected "._qq($expected)."\n");
+        if (defined $got and defined $expected and
+            (length($got)>20 or length($expected)>20))
+        {
+            my $p = 0;
+            $p++ while substr($got,$p,1) eq substr($expected,$p,1);
+            push @mess,"#  diff at $p\n";
+            push @mess,"#    after "._qq(substr($got,$p-40<0 ? 0 : $p-40,40))."\n";
+            push @mess,"#     have "._qq(substr($got,$p,40))."\n";
+            push @mess,"#     want "._qq(substr($expected,$p,40))."\n";
+        }
     }
     _ok($pass, _where(), $name, @mess);
 }
@@ -476,6 +486,19 @@ sub like_yn ($$$@) {
     _ok($pass, _where(), $name, @mess);
 }
 
+sub refcount_is {
+    # Don't unpack first arg; access it directly via $_[0] to avoid creating
+    # another reference and upsetting the refcount
+    my (undef, $expected, $name, @mess) = @_;
+    my $got = &Internals::SvREFCNT($_[0]) + 1; # +1 to account for the & calling style
+    my $pass = $got == $expected;
+    unless ($pass) {
+        unshift @mess, "#      got $got references\n" .
+                       "# expected $expected\n";
+    }
+    _ok($pass, _where(), $name, @mess);
+}
+
 sub pass {
     _ok(1, '', @_);
 }
@@ -776,6 +799,11 @@ sub untaint_path {
             $path = $path . $sep;
         }
         $path = $path . '/bin';
+    } elsif (!$is_vms and !length $path) {
+        # empty PATH is the same as a path of "." on *nix so to prevent
+        # tests from dieing under taint we need to return something
+        # absolute. Perhaps "/" would be better? Anything absolute will do.
+        $path = "/usr/bin";
     }
 
     $path;
@@ -973,8 +1001,8 @@ sub _num_to_alpha {
     $max_char = 0 if !defined($max_char) or $max_char < 0;
 
     while( 1 ){
-        $alpha = $letters[ $num % 26 ] . $alpha;
-        $num = int( $num / 26 );
+        $alpha = $letters[ $num % @letters ] . $alpha;
+        $num = int( $num / @letters );
         last if $num == 0;
         $num = $num - 1;
 
@@ -1005,6 +1033,9 @@ $::tempfile_regexp = 'tmp_[A-Z]+_[A-Z]+'
 # Avoid ++, avoid ranges, avoid split //
 my $tempfile_count = 0;
 my $max_file_chars = 3;
+# Note that the max number of is NOT 26**3, it is 26**3 + 26**2 + 26,
+# as 3 character files are distinct from 2 character files, from 1 characters
+# files, etc.
 sub tempfile {
     # if you change the format returned by tempfile() you MUST change
     # the $::tempfile_regex define above.
@@ -1075,6 +1106,7 @@ sub fresh_perl {
     # it feels like the least-worse thing is to assume that auto-vivification
     # works. At least, this is only going to be a run-time failure, so won't
     # affect tests using this file but not this function.
+    my $trim= delete $runperl_args->{rtrim_result}; # hide from runperl
     $runperl_args->{progfile} ||= $tmpfile;
     $runperl_args->{stderr}     = 1 unless exists $runperl_args->{stderr};
 
@@ -1086,7 +1118,7 @@ sub fresh_perl {
     my $results = runperl(%$runperl_args);
     my $status = $?;    # Not necessary to save this, but it makes it clear to
                         # future maintainers.
-
+    $results=~s/[ \t]+\n/\n/g if $trim;
     # Clean up the results into something a bit more predictable.
     $results  =~ s/\n+$//;
     $results =~ s/at\s+$::tempfile_regexp\s+line/at - line/g;
@@ -1112,6 +1144,11 @@ sub fresh_perl {
 sub _fresh_perl {
     my($prog, $action, $expect, $runperl_args, $name) = @_;
 
+    local $Level = $Level + 1;
+
+    # strip trailing whitespace if requested - makes some tests easier
+    $expect=~s/[[:blank:]]+\n/\n/g if $runperl_args->{rtrim_result};
+
     my $results = fresh_perl($prog, $runperl_args);
     my $status = $?;
 
@@ -1155,7 +1192,7 @@ sub fresh_perl_is {
     # This will make it so the test author doesn't have to know that.
     $expected =~ s/\n+$//;
 
-    local $Level = 2;
+    local $Level = $Level + 1;
     _fresh_perl($prog, 'eq', $expected, $runperl_args, $name);
 }
 
@@ -1167,7 +1204,7 @@ sub fresh_perl_is {
 
 sub fresh_perl_like {
     my($prog, $expected, $runperl_args, $name) = @_;
-    local $Level = 2;
+    local $Level = $Level + 1;
     _fresh_perl($prog, '=~', $expected, $runperl_args, $name);
 }
 
@@ -1290,6 +1327,13 @@ sub run_multiple_progs {
         my $dummy;
         ($dummy, @prgs) = _setup_one_file(shift);
     }
+    my $taint_disabled;
+    if (! eval {require Config; 1}) {
+        warn "test.pl had problems loading Config: $@";
+        $taint_disabled = '';
+    } else {
+        $taint_disabled = $Config::Config{taint_disabled};
+    }
 
     my $tmpfile = tempfile();
 
@@ -1342,6 +1386,10 @@ sub run_multiple_progs {
         $name = "test from $file at line $line";
     }
 
+        if ($switch=~/[Tt]/ and $taint_disabled eq "define") {
+            $reason{skip} ||= "This perl does not support taint";
+        }
+
 	if ($reason{skip}) {
 	SKIP:
 	  {
@@ -1714,17 +1762,58 @@ sub warning_like {
     }
 }
 
-# Set a watchdog to timeout the entire test file
+# Set a watchdog to timeout the entire test file.  The input seconds is
+# multiplied by $ENV{PERL_TEST_TIME_OUT_FACTOR} (default 1; minimum 1).
+# Set this in your profile for slow boxes, or use it to override the timeout
+# temporarily for debugging.
+#
 # NOTE:  If the test file uses 'threads', then call the watchdog() function
 #        _AFTER_ the 'threads' module is loaded.
+{ # Closure
+    my $watchdog;
+    my $watchdog_thread;
+
 sub watchdog ($;$)
 {
     my $timeout = shift;
-    my $method  = shift || "";
+
+    # If cancelling, use the state variables to know which method was used to
+    # create the watchdog.
+    if ($timeout == 0) {
+        if ($watchdog_thread) {
+            $watchdog_thread->kill('KILL');
+            undef $watch_dog_thread;
+        }
+        elsif ($watchdog) {
+            kill('KILL', $watchdog);
+            undef $watch_dog;
+        }
+        else {
+            alarm(0);
+        }
+
+        return;
+    }
+
+    # Make sure these aren't defined.
+    undef $watchdog;
+    undef $watchdog_thread;
+
+    my $method = shift || "";
+
     my $timeout_msg = 'Test process timed out - terminating';
 
+    # Accept either spelling
+    my $timeout_factor = $ENV{PERL_TEST_TIME_OUT_FACTOR}
+                      || $ENV{PERL_TEST_TIMEOUT_FACTOR}
+                      || 1;
+    $timeout_factor = 1 if $timeout_factor < 1;
+    $timeout_factor = $1 if $timeout_factor =~ /^(\d+)$/;
+
     # Valgrind slows perl way down so give it more time before dying.
-    $timeout *= 10 if $ENV{PERL_VALGRIND};
+    $timeout_factor = 10 if $timeout_factor < 10 && $ENV{PERL_VALGRIND};
+
+    $timeout *= $timeout_factor;
 
     my $pid_to_kill = $$;   # PID for this process
 
@@ -1740,7 +1829,9 @@ sub watchdog ($;$)
     if (!$threads_on || $method eq "process") {
 
         # On Windows and VMS, try launching a watchdog process
-        #   using system(1, ...) (see perlport.pod)
+        #   using system(1, ...) (see perlport.pod).  system() returns
+        #   immediately on these platforms with effectively a pid of the new
+        #   process
         if ($is_mswin || $is_vms) {
             # On Windows, try to get the 'real' PID
             if ($is_mswin) {
@@ -1754,7 +1845,7 @@ sub watchdog ($;$)
             return if ($pid_to_kill <= 0);
 
             # Launch watchdog process
-            my $watchdog;
+            undef $watchdog;
             eval {
                 local $SIG{'__WARN__'} = sub {
                     _diag("Watchdog warning: $_[0]");
@@ -1803,7 +1894,7 @@ sub watchdog ($;$)
         }
 
         # Try using fork() to generate a watchdog process
-        my $watchdog;
+        undef $watchdog;
         eval { $watchdog = fork() };
         if (defined($watchdog)) {
             if ($watchdog) {   # Parent process
@@ -1848,10 +1939,16 @@ sub watchdog ($;$)
     # Use a watchdog thread because either 'threads' is loaded,
     #   or fork() failed
     if (eval {require threads; 1}) {
-        'threads'->create(sub {
+        $watchdog_thread = 'threads'->create(sub {
                 # Load POSIX if available
                 eval { require POSIX; };
 
+                $SIG{'KILL'} = sub { threads->exit(); };
+
+                # Detach after the signal handler is set up; the parent knows
+                # not to signal until detached.
+                'threads'->detach();
+
                 # Execute the timeout
                 my $time_left = $timeout;
                 do {
@@ -1864,7 +1961,18 @@ sub watchdog ($;$)
                 POSIX::_exit(1) if (defined(&POSIX::_exit));
                 my $sig = $is_vms ? 'TERM' : 'KILL';
                 kill($sig, $pid_to_kill);
-            })->detach();
+        });
+
+        # Don't proceed until the watchdog has set up its signal handler.
+        # (Otherwise there is a possibility that we will exit with threads
+        # running.)  The watchdog tells us the handler is set by detaching
+        # itself.  (The 'is_running()' is a fail-safe.)
+        while (     $watchdog_thread->is_running()
+               && ! $watchdog_thread->is_detached())
+        {
+            'threads'->yield();
+        }
+
         return;
     }
 
@@ -1884,6 +1992,7 @@ WATCHDOG_VIA_ALARM:
         };
     }
 }
+} # End closure
 
 # Orphaned Docker or Linux containers do not necessarily attach to PID 1. They might attach to 0 instead.
 sub is_linux_container {
Index: gnu/usr.bin/perl/t/base/num.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/base/num.t,v
diff -u -p -a -u -p -r1.1.1.7 num.t
--- gnu/usr.bin/perl/t/base/num.t	15 Feb 2023 01:33:03 -0000	1.1.1.7
+++ gnu/usr.bin/perl/t/base/num.t	21 Feb 2024 15:47:03 -0000
@@ -176,13 +176,13 @@ $a = 0.000499999999999999999999999999999
 $b = 0.0005000000000000000104;
 print $a <= $b ? "ok 46\n" : "not ok 46\n";
 
-if ($^O eq 'ultrix' || $^O eq 'VMS' ||
+if ($^O eq 'VMS' ||
     (pack("d", 1) =~ /^[\x80\x10]\x40/)  # VAX D_FLOAT, G_FLOAT.
     ) {
-  # Ultrix enters looong nirvana over this. VMS blows up when configured with
-  # D_FLOAT (but with G_FLOAT or IEEE works fine).  The test should probably
-  # make the number of 0's a function of NV_DIG, but that's not in Config and 
-  # we probably don't want to suck Config into a base test anyway.
+  # VMS blows up when configured with D_FLOAT (but with G_FLOAT or IEEE works
+  # fine).  The test should probably make the number of 0's a function of
+  # NV_DIG, but that's not in Config and we probably don't want to suck Config
+  # into a base test anyway.
   print "ok 47 # skipped on $^O\n";
 } else {
   $a = 0.00000000000000000000000000000000000000000000000000000000000000000001;
Index: gnu/usr.bin/perl/t/class/class.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/class.t
diff -N gnu/usr.bin/perl/t/class/class.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/class.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,86 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+{
+    class Test1 {
+        method hello { return "hello, world"; }
+    }
+
+    my $obj = Test1->new;
+    isa_ok($obj, "Test1", '$obj');
+
+    is($obj->hello, "hello, world", '$obj->hello');
+}
+
+# Classes are still regular packages
+{
+    class Test2 {
+        my $ok = "OK";
+        sub NotAMethod { return $ok }
+    }
+
+    is(Test2::NotAMethod(), "OK", 'Class can contain regular subs');
+}
+
+# Classes accept full package names
+{
+    class Test3::Foo {
+        method hello { return "This" }
+    }
+    is(Test3::Foo->new->hello, "This", 'Class supports fully-qualified package names');
+}
+
+# Unit class
+{
+    class Test4::A;
+    method m { return "unit-A" }
+
+    class Test4::B;
+    method m { return "unit-B" }
+
+    package main;
+    ok(eq_array([Test4::A->new->m, Test4::B->new->m], ["unit-A", "unit-B"]),
+        'Unit class syntax works');
+}
+
+# Class {BLOCK} syntax parses like package
+{
+    my $result = "";
+    eval q{
+        $result .= "a(" . __PACKAGE__ . "/" . eval("__PACKAGE__") . ")\n";
+        class Test5 1.23 {
+            $result .= "b(" . __PACKAGE__ . "/" . eval("__PACKAGE__") . ")\n";
+        }
+        $result .= "c(" . __PACKAGE__ . "/" . eval("__PACKAGE__") . ")\n";
+    } or die $@;
+    is($result, "a(main/main)\nb(Test5/Test5)\nc(main/main)\n",
+        'class sets __PACKAGE__ correctly');
+    is($Test5::VERSION, 1.23, 'class NAME VERSION { BLOCK } sets $VERSION');
+}
+
+# Unit class syntax parses like package
+{
+    my $result = "";
+    eval q{
+        $result .= "a(" . __PACKAGE__ . "/" . eval("__PACKAGE__") . ")\n";
+        class Test6 4.56;
+        $result .= "b(" . __PACKAGE__ . "/" . eval("__PACKAGE__") . ")\n";
+        package main;
+        $result .= "c(" . __PACKAGE__ . "/" . eval("__PACKAGE__") . ")\n";
+    } or die $@;
+    is($result, "a(main/main)\nb(Test6/Test6)\nc(main/main)\n",
+        'class sets __PACKAGE__ correctly');
+    is($Test6::VERSION, 4.56, 'class NAME VERSION; sets $VERSION');
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/construct.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/construct.t
diff -N gnu/usr.bin/perl/t/class/construct.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/construct.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,54 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings qw( experimental::class experimental::builtin );
+
+use builtin qw( blessed reftype );
+
+{
+    class Test1 {
+        field $x :param;
+        method x { return $x; }
+    }
+
+    my $obj = Test1->new(x => 123);
+    is($obj->x, 123, 'Value of $x set by constructor');
+
+    # The following tests aren't really related to construction, just the
+    # general nature of object instance refs. If this test file gets too long
+    # they could be moved to their own file.
+    is(ref $obj, "Test1", 'ref of $obj');
+    is(blessed $obj, "Test1", 'blessed of $obj');
+    is(reftype $obj, "OBJECT", 'reftype of $obj');
+
+    # num/stringification of object without overload
+    is($obj+0, builtin::refaddr($obj), 'numified object');
+    like("$obj", qr/^Test1=OBJECT\(0x[[:xdigit:]]+\)$/, 'stringified object' );
+
+    ok(!eval { Test1->new(x => 123, y => 456); 1 }, 'Unrecognised parameter fails');
+    like($@, qr/^Unrecognised parameters for "Test1" constructor: y at /,
+        'Exception thrown by constructor for unrecogniser parameter');
+}
+
+{
+    class Test2 {
+        use overload
+            '0+' => sub { return 12345 },
+            '""' => sub { "<Test2 instance>" },
+            fallback => 1;
+    }
+
+    my $obj = Test2->new;
+    is($obj+0, 12345, 'numified object with overload');
+    is("$obj", "<Test2 instance>", 'stringified object with overload' );
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/destruct.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/destruct.t
diff -N gnu/usr.bin/perl/t/class/destruct.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/destruct.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,60 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+# A legacy-perl class to act as a test helper
+package DestructionNotify {
+    sub new { my $pkg = shift; bless [ @_ ], $pkg }
+    sub DESTROY { my $self = shift; ${ $self->[0] } .= $self->[1] }
+}
+
+{
+    my $destroyed;
+    my $notifier = DestructionNotify->new( \$destroyed, 1 );
+    undef $notifier;
+    $destroyed or
+        BAIL_OUT('DestructionNotify does not work');
+}
+
+{
+    my $destroyed;
+
+    class Test1 {
+        field $x;
+        method x { return $x; }
+        ADJUST {
+            $x = DestructionNotify->new( \$destroyed, "x" );
+        }
+
+        field $y;
+        field $z;
+        ADJUST {
+            # These in the "wrong" order just to prove to ourselves that it
+            # doesn't matter
+            $z = DestructionNotify->new( \$destroyed, "z" );
+            $y = DestructionNotify->new( \$destroyed, "y" );
+        }
+    }
+
+    my $obj = Test1->new;
+    ok(!$destroyed, 'Destruction notify not yet triggered');
+
+    refcount_is $obj, 1, 'Object has one reference';
+
+    # one in $obj, one stack temporary here
+    refcount_is $obj->x, 2, 'DestructionNotify has two references';
+
+    undef $obj;
+    is($destroyed, "zyx", 'Destruction notify triggered by object destruction in the correct order');
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/field.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/field.t
diff -N gnu/usr.bin/perl/t/class/field.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/field.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,300 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+# We can't test fields in isolation without having at least one method to
+# use them from. We'll try to keep most of the heavy testing of method
+# abilities to t/class/method.t
+
+# field in method
+{
+    class Test1 {
+        field $f;
+        method incr { return ++$f; }
+    }
+
+    my $obj = Test1->new;
+    $obj->incr;
+    is($obj->incr, 2, 'Field $f incremented twice');
+
+    my $obj2 = Test1->new;
+    is($obj2->incr, 1, 'Fields are distinct between instances');
+}
+
+# fields are distinct
+{
+    class Test2 {
+        field $x;
+        field $y;
+
+        method setpos { $x = $_[0]; $y = $_[1] }
+        method x      { return $x; }
+        method y      { return $y; }
+    }
+
+    my $obj = Test2->new;
+    $obj->setpos(10, 20);
+    is($obj->x, 10, '$pos->x');
+    is($obj->y, 20, '$pos->y');
+}
+
+# fields of all variable types
+{
+    class Test3 {
+        field $s;
+        field @a;
+        field %h;
+
+        method setup {
+            $s = "scalar";
+            @a = ( "array" );
+            %h = ( key => "hash" );
+            return $self; # test chaining
+        }
+        method test {
+            ::is($s,      "scalar", 'scalar storage');
+            ::is($a[0],   "array",  'array storage');
+            ::is($h{key}, "hash",   'hash storage');
+        }
+    }
+
+    Test3->new->setup->test;
+}
+
+# fields can be captured by anon subs
+{
+    class Test4 {
+        field $count;
+
+        method make_incrsub {
+            return sub { $count++ };
+        }
+
+        method count { return $count }
+    }
+
+    my $obj = Test4->new;
+    my $incr = $obj->make_incrsub;
+
+    $incr->();
+    $incr->();
+    $incr->();
+
+    is($obj->count, 3, '$obj->count after invoking closure x 3');
+}
+
+# fields can be captured by anon methods
+{
+    class Test5 {
+        field $count;
+
+        method make_incrmeth {
+            return method { $count++ };
+        }
+
+        method count { return $count }
+    }
+
+    my $obj = Test5->new;
+    my $incr = $obj->make_incrmeth;
+
+    $obj->$incr;
+    $obj->$incr;
+    $obj->$incr;
+
+    is($obj->count, 3, '$obj->count after invoking method-closure x 3');
+}
+
+# fields of multiple unit classes are distinct
+{
+    class Test6::A;
+    field $x = "A";
+    method m { return "unit-$x" }
+
+    class Test6::B;
+    field $x = "B";
+    method m { return "unit-$x" }
+
+    package main;
+    ok(eq_array([Test6::A->new->m, Test6::B->new->m], ["unit-A", "unit-B"]),
+        'Fields of multiple unit classes remain distinct');
+}
+
+# fields can be initialised with constant expressions
+{
+    class Test7 {
+        field $scalar = 123;
+        method scalar { return $scalar; }
+
+        field @array = (4, 5, 6);
+        method array { return @array; }
+
+        field %hash  = (7 => 89);
+        method hash { return %hash; }
+    }
+
+    my $obj = Test7->new;
+
+    is($obj->scalar, 123, 'Scalar field can be constant initialised');
+
+    ok(eq_array([$obj->array], [4, 5, 6]), 'Array field can be constant initialised');
+
+    ok(eq_hash({$obj->hash}, {7 => 89}), 'Hash field can be constant initialised');
+}
+
+# field initialiser expressions are evaluated within the constructor of each
+# instance
+{
+    my $next_x = 1;
+    my @items;
+    my %mappings;
+
+    class Test8 {
+        field $x = $next_x++;
+        method x { return $x; }
+
+        field @y = ("more", @items);
+        method y { return @y; }
+
+        field %z = (first => "value", %mappings);
+        method z { return %z; }
+    }
+
+    is($next_x, 1, '$next_x before any objects');
+
+    @items = ("values");
+    $mappings{second} = "here";
+
+    my $obj1 = Test8->new;
+    my $obj2 = Test8->new;
+
+    is($obj1->x, 1, 'Object 1 has x == 1');
+    is($obj2->x, 2, 'Object 2 has x == 2');
+
+    is($next_x, 3, '$next_x after constructing two');
+
+    ok(eq_array([$obj1->y], ["more", "values"]),
+        'Object 1 has correct array field');
+    ok(eq_hash({$obj1->z}, {first => "value", second => "here"}),
+        'Object 1 has correct hash field');
+}
+
+# fields are visible during initialiser expressions of later fields
+{
+    class Test9 {
+        field $one   = 1;
+        field $two   = $one + 1;
+        field $three = $two + 1;
+
+        field @four = $one;
+        field @five = (@four, $two, $three);
+        field @six  = grep { $_ > 1 } @five;
+
+        method three { return $three; }
+
+        method six { return @six; }
+    }
+
+    my $obj = Test9->new;
+    is($obj->three, 3, 'Scalar fields initialised from earlier fields');
+    ok(eq_array([$obj->six], [2, 3]), 'Array fields initialised from earlier fields');
+}
+
+# fields can take :param attributes to consume constructor parameters
+{
+    my $next_gamma = 4;
+
+    class Test10 {
+        field $alpha :param        = undef;
+        field $beta  :param        = 123;
+        field $gamma :param(delta) = $next_gamma++;
+
+        method values { return ($alpha, $beta, $gamma); }
+    }
+
+    my $obj = Test10->new(
+        alpha => "A",
+        beta  => "B",
+        delta => "G",
+    );
+    ok(eq_array([$obj->values], [qw(A B G)]),
+        'Field initialised by :params');
+    is($next_gamma, 4, 'Defaulting expression not evaluated for passed value');
+
+    $obj = Test10->new();
+    ok(eq_array([$obj->values], [undef, 123, 4]),
+        'Field initialised by defaulting expressions');
+    is($next_gamma, 5, 'Defaulting expression evaluated for missing value');
+}
+
+# fields can be made non-optional
+{
+    class Test11 {
+        field $x :param;
+        field $y :param;
+    }
+
+    Test11->new(x => 1, y => 1);
+
+    ok(!eval { Test11->new(x => 2) },
+        'Constructor fails without y');
+    like($@, qr/^Required parameter 'y' is missing for "Test11" constructor at /,
+        'Failure from missing y argument');
+}
+
+# field assignment expressions on :param can use //= and ||=
+{
+    class Test12 {
+        field $if_exists  :param(e)   = "DEF";
+        field $if_defined :param(d) //= "DEF";
+        field $if_true    :param(t) ||= "DEF";
+
+        method values { return ($if_exists, $if_defined, $if_true); }
+    }
+
+    ok(eq_array(
+        [Test12->new(e => "yes", d => "yes", t => "yes")->values],
+        ["yes", "yes", "yes"]),
+        'Values for "yes"');
+
+    ok(eq_array(
+        [Test12->new(e => 0, d => 0, t => 0)->values],
+        [0, 0, "DEF"]),
+        'Values for 0');
+
+    ok(eq_array(
+        [Test12->new(e => undef, d => undef, t => undef)->values],
+        [undef, "DEF", "DEF"]),
+        'Values for undef');
+
+    ok(eq_array(
+        [Test12->new()->values],
+        ["DEF", "DEF", "DEF"]),
+        'Values for missing');
+}
+
+# field initialiser expressions permit `goto` in do {} blocks
+{
+    class Test13 {
+        field $forwards = do { goto HERE; HERE: 1 };
+        field $backwards = do { my $x; HERE: ; goto HERE if !$x++; 2 };
+
+        method values { return ($forwards, $backwards) }
+    }
+
+    ok(eq_array(
+        [Test13->new->values],
+        [1, 2],
+        'Values for goto inside do {} blocks in field initialisers'));
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/inherit.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/inherit.t
diff -N gnu/usr.bin/perl/t/class/inherit.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/inherit.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,84 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+{
+    class Test1A {
+        field $inita = "base";
+        method inita { return $inita; }
+        field $adja;
+        ADJUST { $adja = "base class" }
+        method adja { return $adja; }
+    }
+
+    class Test1B :isa(Test1A) {
+        field $initb = "derived";
+        method initb { return $initb; }
+        field $adjb;
+        ADJUST { $adjb = "derived class" }
+        method adjb { return $adjb; }
+    }
+
+    my $obj = Test1B->new;
+    ok($obj isa Test1B, 'Object is its own class');
+    ok($obj isa Test1A, 'Object is also its base class');
+
+    ok(eq_array(\@Test1B::ISA, ["Test1A"]), '@Test1B::ISA is set correctly');
+
+    is($obj->initb, "derived",       'Object has derived class initialised field');
+    is($obj->adjb,  "derived class", 'Object has derived class ADJUSTed field');
+
+    can_ok($obj, "inita");
+    is($obj->inita, "base",      'Object has base class initialised field');
+    can_ok($obj, "adja");
+    is($obj->adja, "base class", 'Object has base class ADJUSTed field');
+
+    class Test1C :isa(    Test1A    ) { }
+
+    my $objc = Test1C->new;
+    ok($objc isa Test1A, ':isa attribute trims whitespace');
+}
+
+{
+    class Test2A 1.23 { }
+
+    class Test2B :isa(Test2A 1.0) { } # OK
+
+    ok(!defined eval "class Test2C :isa(Test2A 2.0) {}; 1",
+        ':isa() version test can throw');
+    like($@, qr/^Test2A version 2\.0 required--this is only version 1\.23 at /,
+        'Exception thrown from :isa version test');
+}
+
+{
+    class Test3A {
+        field $x :param;
+        method x { return $x; }
+    }
+
+    class Test3B :isa(Test3A) {}
+
+    my $obj = Test3B->new(x => "X");
+    is($obj->x, "X", 'Constructor params passed through to superclass');
+}
+
+{
+    class Test4A { }
+
+    class Test4B :isa(Test4A);
+
+    package main;
+    my $obj = Test4B->new;
+    ok($obj isa Test4A, 'Unit class syntax allows :isa');
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/method.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/method.t
diff -N gnu/usr.bin/perl/t/class/method.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/method.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,92 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+# $self in method
+{
+    class Test1 {
+        method retself { return $self }
+    }
+
+    my $obj = Test1->new;
+    is($obj->retself, $obj, '$self inside method');
+}
+
+# methods have signatures; signatures do not capture $self
+{
+    # Turn off the 'signatures' feature to prove that 'method' is always
+    # signatured even without it
+    no feature 'signatures';
+
+    class Test2 {
+        method retfirst ( $x = 123 ) { return $x; }
+    }
+
+    my $obj = Test2->new;
+    is($obj->retfirst,      123, 'method signature params work');
+    is($obj->retfirst(456), 456, 'method signature params skip $self');
+}
+
+# methods can still capture regular package lexicals
+{
+    class Test3 {
+        my $count;
+        method inc { return $count++ }
+    }
+
+    my $obj1 = Test3->new;
+    $obj1->inc;
+
+    is($obj1->inc, 1, '$obj1->inc sees 1');
+
+    my $obj2 = Test3->new;
+    is($obj2->inc, 2, '$obj2->inc sees 2');
+}
+
+# $self is shifted from @_
+{
+    class Test4 {
+        method args { return @_ }
+    }
+
+    my $obj = Test4->new;
+    ok(eq_array([$obj->args("a", "b")], ["a", "b"]), '$self is shifted from @_');
+}
+
+# anon methods
+{
+    class Test5 {
+        method anonmeth {
+            return method {
+                return "Result";
+            }
+        }
+    }
+
+    my $obj = Test5->new;
+    my $mref = $obj->anonmeth;
+
+    is($obj->$mref, "Result", 'anon method can be invoked');
+}
+
+# methods can be forward declared without a body
+{
+    class Test6 {
+        method forwarded;
+
+        method forwarded { return "OK" }
+    }
+
+    is(Test6->new->forwarded, "OK", 'forward-declared method works');
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/phasers.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/phasers.t
diff -N gnu/usr.bin/perl/t/class/phasers.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/phasers.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,39 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+# ADJUST
+{
+    my $adjusted;
+
+    class Test1 {
+        ADJUST { $adjusted .= "a" }
+        ADJUST { $adjusted .= "b" }
+    }
+
+    Test1->new;
+    is($adjusted, "ab", 'both ADJUST blocks run in order');
+}
+
+# $self in ADJUST
+{
+    my $self_in_ADJUST;
+
+    class Test2 {
+        ADJUST { $self_in_ADJUST = $self; }
+    }
+
+    my $obj = Test2->new;
+    is($self_in_ADJUST, $obj, '$self is set correctly inside ADJUST blocks');
+}
+
+done_testing;
Index: gnu/usr.bin/perl/t/class/threads.t
===================================================================
RCS file: gnu/usr.bin/perl/t/class/threads.t
diff -N gnu/usr.bin/perl/t/class/threads.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/class/threads.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,47 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib');
+    require Config;
+
+    skip_all_without_config('useithreads');
+    skip_all_if_miniperl("no dynamic loading on miniperl, no threads");
+}
+
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+
+use threads;
+
+class Test1 {
+    field $x :param;
+    method x { return $x }
+}
+
+{
+    my $ret = threads->create(sub {
+        pass("Created dummy thread");
+        return 1;
+    })->join;
+    next_test(); # account for pass() inside thread
+    is($ret, 1, "Returned from dummy thread");
+}
+
+{
+    my $obj = Test1->new(x => 10);
+    threads->create(sub {
+        is($obj->x, 10, '$obj->x inside thread created before');
+    })->join;
+    next_test(); # account for is() inside thread
+}
+
+threads->create(sub {
+    my $obj = Test1->new(x => 20);
+    is($obj->x, 20, '$obj->x created inside thread');
+})->join;
+next_test(); # account for is() inside thread
+
+done_testing;
Index: gnu/usr.bin/perl/t/cmd/mod.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/cmd/mod.t,v
diff -u -p -a -u -p -r1.10 mod.t
--- gnu/usr.bin/perl/t/cmd/mod.t	5 Feb 2017 00:32:19 -0000	1.10
+++ gnu/usr.bin/perl/t/cmd/mod.t	21 Feb 2024 15:47:03 -0000
@@ -1,6 +1,6 @@
 #!./perl
 
-print "1..13\n";
+print "1..15\n";
 
 print "ok 1\n" if 1;
 print "not ok 1\n" unless 1;
@@ -54,3 +54,19 @@ print "not ok 12\n" if $x > 0;
 # This used to cause a segfault
 $x = "".("".do{"foo" for (1)});
 print "ok 13\n";
+
+$x = 0;
+do { ++$x } while 0;
+if ($x == 1) {
+    print "ok 14\n";
+} else {
+    print "not ok 14 # $x\n";
+}
+
+$x = 0;
+do { ++$x } until 1;
+if ($x == 1) {
+    print "ok 15\n";
+} else {
+    print "not ok 15 # $x\n";
+}
Index: gnu/usr.bin/perl/t/cmd/subval.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/cmd/subval.t,v
diff -u -p -a -u -p -r1.8 subval.t
--- gnu/usr.bin/perl/t/cmd/subval.t	29 Sep 2008 17:36:18 -0000	1.8
+++ gnu/usr.bin/perl/t/cmd/subval.t	21 Feb 2024 15:47:03 -0000
@@ -106,7 +106,7 @@ sub somesub {
 &somesub(27, 'main', __FILE__, __LINE__);
 
 package foo;
-&main'somesub(28, 'foo', __FILE__, __LINE__);
+&main::somesub(28, 'foo', __FILE__, __LINE__);
 
 package main;
 $i = 28;
@@ -151,28 +151,28 @@ sub iseof {
 
 {package foo;
 
- sub main'file_package {
+ sub main::file_package {
         local(*F) = @_;
 
         open(F, 'Cmd_subval.tmp') || die "can't open: $!\n";
-	$main'i++;
-        eof F ? print "not ok $main'i\n" : print "ok $main'i\n";
+	$main::i++;
+        eof F ? print "not ok $main::i\n" : print "ok $main::i\n";
  }
 
- sub main'info_package {
+ sub main::info_package {
         local(*F);
 
         open(F, 'Cmd_subval.tmp') || die "can't open: $!\n";
-	$main'i++;
-        eof F ? print "not ok $main'i\n" : print "ok $main'i\n";
+	$main::i++;
+        eof F ? print "not ok $main::i\n" : print "ok $main::i\n";
         &iseof(*F);
  }
 
  sub iseof {
         local(*UNIQ) = @_;
 
-	$main'i++;
-        eof UNIQ ? print "not ok $main'i\n" : print "ok $main'i\n";
+	$main::i++;
+        eof UNIQ ? print "not ok $main::i\n" : print "ok $main::i\n";
  }
 }
 
Index: gnu/usr.bin/perl/t/comp/package.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/comp/package.t,v
diff -u -p -a -u -p -r1.6 package.t
--- gnu/usr.bin/perl/t/comp/package.t	24 Sep 2010 15:07:05 -0000	1.6
+++ gnu/usr.bin/perl/t/comp/package.t	21 Feb 2024 15:47:03 -0000
@@ -1,5 +1,10 @@
 #!./perl
 
+BEGIN {
+    @INC = qw(. ../lib);
+    chdir 't' if -d 't';
+}
+
 print "1..14\n";
 
 $blurfl = 123;
@@ -13,11 +18,14 @@ $bar = 4;
 
 {
     package ABC;
+    no warnings qw(syntax deprecated);
     $blurfl = 5;
     $main'a = $'b;
 }
-
-$ABC'dyick = 6;
+{
+    no warnings qw(syntax deprecated);
+    $ABC'dyick = 6;
+}
 
 $xyz = 2;
 
@@ -28,10 +36,13 @@ $ABC = join(':', sort(keys %ABC::));
 if ('a' lt 'A') {
     print $xyz eq 'bar:main:new:xyz:ABC' ? "ok 1\n" : "not ok 1 '$xyz'\n";
 } else {
-    print $xyz eq 'ABC:bar:main:new:xyz' ? "ok 1\n" : "not ok 1 '$xyz'\n";
+    print $xyz eq 'ABC:BEGIN:bar:main:new:xyz' ? "ok 1\n" : "not ok 1 '$xyz'\n";
 }    
-print $ABC eq 'blurfl:dyick' ? "ok 2\n" : "not ok 2 '$ABC'\n";
-print $main'blurfl == 123 ? "ok 3\n" : "not ok 3\n";
+print $ABC eq 'BEGIN:blurfl:dyick' ? "ok 2\n" : "not ok 2 '$ABC'\n";
+{
+    no warnings qw(syntax deprecated);
+    print $main'blurfl == 123 ? "ok 3\n" : "not ok 3\n";
+}
 
 package ABC;
 
Index: gnu/usr.bin/perl/t/comp/parser.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/comp/parser.t,v
diff -u -p -a -u -p -r1.6 parser.t
--- gnu/usr.bin/perl/t/comp/parser.t	21 Feb 2023 02:20:36 -0000	1.6
+++ gnu/usr.bin/perl/t/comp/parser.t	21 Feb 2024 15:47:03 -0000
@@ -367,11 +367,14 @@ like($@, qr/BEGIN failed--compilation ab
   is(defined &zlonk, '', 'but no body defined');
 }
 
-# [perl #113016] CORE::print::foo
-sub CORE'print'foo { 43 } # apostrophes intentional; do not tempt fate
-sub CORE'foo'bar { 43 }
-is CORE::print::foo, 43, 'CORE::print::foo is not CORE::print ::foo';
-is scalar eval "CORE::foo'bar", 43, "CORE::foo'bar is not an error";
+{
+    no warnings;
+    # [perl #113016] CORE::print::foo
+    sub CORE'print'foo { 43 } # apostrophes intentional; do not tempt fate
+    sub CORE'foo'bar { 43 }
+    is CORE::print::foo, 43, 'CORE::print::foo is not CORE::print ::foo';
+    is scalar eval "CORE::foo'bar", 43, "CORE::foo'bar is not an error";
+}
 
 # bug #71748
 eval q{
@@ -448,8 +451,10 @@ END
 eval 's/${<<END}//';
 eval 's//${<<END}/';
 print "ok ", ++$test, " - unterminated here-docs in s/// in string eval\n";
-
-sub 'Hello'_he_said (_);
+{
+    no warnings qw(syntax deprecated);
+    sub 'Hello'_he_said (_);
+}
 is prototype "Hello::_he_said", '_', 'initial tick in sub declaration';
 
 {
@@ -471,11 +476,14 @@ is $pkg, 3, '[perl #114942] for my $foo(
 
 # Check that format 'Foo still works after removing the hack from
 # force_word
-$test++;
-format 'one =
+{
+    no warnings qw(syntax deprecated);
+    $test++;
+    format 'one =
 ok @<< - format 'foo still works
 $test
 .
+}
 {
     local $~ = "one";
     write();
Index: gnu/usr.bin/perl/t/comp/parser_run.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/comp/parser_run.t,v
diff -u -p -a -u -p -r1.1.1.3 parser_run.t
--- gnu/usr.bin/perl/t/comp/parser_run.t	15 Feb 2023 01:33:02 -0000	1.1.1.3
+++ gnu/usr.bin/perl/t/comp/parser_run.t	21 Feb 2024 15:47:03 -0000
@@ -10,7 +10,7 @@ BEGIN {
     set_up_inc( qw(. ../lib ) );
 }
 
-plan(7);
+plan(70);
 
 # [perl #130814] can reallocate lineptr while looking ahead for
 # "Missing $ on loop variable" diagnostic.
@@ -22,11 +22,38 @@ is($result . "\n", <<EXPECT);
 Identifier too long at - line 2.
 EXPECT
 
-fresh_perl_is(<<'EOS', <<'EXPECT', {}, "check zero vars");
-print $001;
-EOS
-Numeric variables with more than one digit may not start with '0' at - line 1.
-EXPECT
+for my $var ('$00','${00}','$001','${001}','$01','${01}','$09324', '${09324}') {
+    for my $utf8 ("","use utf8;") {
+        for my $strict ("","use strict;") {
+            fresh_perl_is(
+                "${strict}${utf8}print $var;",
+                "Numeric variables with more than one digit may not start with '0' at - line 1.",
+                {},
+                sprintf("check %s is illegal%s%s", $var,
+                    $utf8   ? " under utf8" : "",
+                    $strict ? " under strict" : ""
+                ),
+            );
+        }
+    }
+}
+
+for my $var ('$0', '${0}', '$1', '${1}', '$10', '${10}', '$9324', '${9324}') {
+    for my $utf8 ("","use utf8;") {
+        for my $strict ("","use strict;") {
+            fresh_perl_is(
+                "${strict}${utf8} print '$var' if $var or !$var;",
+                $var,
+                {},
+                sprintf("check %s is legal%s%s", $var,
+                    $utf8   ? " under utf8" : "",
+                    $strict ? " under strict" : ""
+                )
+            );
+        }
+    }
+}
+
 
 fresh_perl_is(<<EOS, <<'EXPECT', {}, "linestart before bufptr");
 \${ \xB6eeeeeeeeeeee
Index: gnu/usr.bin/perl/t/comp/proto.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/comp/proto.t,v
diff -u -p -a -u -p -r1.12 proto.t
--- gnu/usr.bin/perl/t/comp/proto.t	5 Feb 2017 00:32:19 -0000	1.12
+++ gnu/usr.bin/perl/t/comp/proto.t	21 Feb 2024 15:47:03 -0000
@@ -18,7 +18,7 @@ BEGIN {
 # strict
 use strict;
 
-print "1..215\n";
+print "1..216\n";
 
 my $i = 1;
 
@@ -892,3 +892,24 @@ $_ = sub ($$$$$$$) {};
 @_ = (1, 2, 3, prototype(), 4, 5, 6);
 print "not " unless "@_" eq '1 2 3 $$$$$$$ 4 5 6';
 print "ok ", $i++, " - [perl #123514] (got @_)\n";
+
+{
+    my $weird_failure = q<>;
+
+    if (eval 'sub scalarref (\$) { }; scalarref( sub {} ); 1') {
+        print "not ok $i: Unexpected scalarref success!\n";
+    }
+    else {
+        if ($@ !~ m/anonymous subroutine/ || $@ !~ m/scalarref/) {
+            $weird_failure = $@;
+
+            $weird_failure =~ s/^/# /m;
+
+            print "# Unexpected error (or none):$/$weird_failure";
+        }
+
+        print( ($weird_failure ? 'not ok' : 'ok') . " $i - anonsub passed to \\\$\n" );
+    }
+
+    $i++;
+}
Index: gnu/usr.bin/perl/t/comp/require.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/comp/require.t,v
diff -u -p -a -u -p -r1.9 require.t
--- gnu/usr.bin/perl/t/comp/require.t	15 Feb 2023 01:36:36 -0000	1.9
+++ gnu/usr.bin/perl/t/comp/require.t	21 Feb 2024 15:47:03 -0000
@@ -1,5 +1,9 @@
 #!./perl
 
+# NOTE this script messes with the perl debugger flags, if you run
+# it under the perl debugger (perl -d) it might not work as expected.
+# Look for code related to $^P below and adjust accordingly.
+
 BEGIN {
     chdir 't' if -d 't';
     @INC = '.';
@@ -14,10 +18,14 @@ sub do_require {
 }
 
 # don't make this lexical
-$i = 1;
+our $i = 1;
 
-my @files_to_delete = qw (bleah.pm bleah.do bleah.flg urkkk.pm urkkk.pmc
-krunch.pm krunch.pmc whap.pm whap.pmc);
+our @module_true_tests; # this is set up in a BEGIN later on.
+our $module_true_test_count; # this is set up in a BEGIN later on.
+my @files_to_delete = qw (bleah.pm bleah.do bleah.flg blorn.pm blunge.pm
+urkkk.pm urkkk.pmc krunch.pm krunch.pmc whap.pm whap.pmc
+Demo1.pm Demo2.pm Demo3.pm Demo4.pm);
+push @files_to_delete, "$_->[0].pm" for @module_true_tests;
 
 # there may be another copy of this test script running, or the files may
 # just not have been deleted at the end of the last run; if the former, we
@@ -26,14 +34,13 @@ krunch.pm krunch.pmc whap.pm whap.pmc);
 # to why there might be multiple execution of this test file, I don't
 # know; but this is an experiment to see if random smoke failures go away.
 
-if (grep -e, @files_to_delete) {
+if (!$ENV{NO_SLEEP} and grep -e, @files_to_delete) {
     print "# Sleeping for 20 secs waiting for other process to finish\n";
     sleep 20;
 }
 
-
 my $Is_UTF8   = (${^OPEN} || "") =~ /:utf8/;
-my $total_tests = 58;
+my $total_tests = 58 + $module_true_test_count;
 if ($Is_UTF8) { $total_tests -= 3; }
 print "1..$total_tests\n";
 
@@ -194,6 +201,7 @@ print "ok $i - require() context\n";
 1;
 **BLEAH**
 );
+my ($foo,@foo);
                               delete $INC{"bleah.pm"}; ++$::i;
 $foo = eval q{require bleah}; delete $INC{"bleah.pm"}; ++$::i;
 @foo = eval q{require bleah}; delete $INC{"bleah.pm"}; ++$::i;
@@ -348,6 +356,231 @@ if (defined &DynaLoader::boot_DynaLoader
     print "${not}ok $i - require does not localise %^H at run time\n";
 }
 
+
+BEGIN {
+    # These are the test for feature 'module_true', which when in effect
+    # avoids the requirement for a module to return a true value, and
+    # in fact forces the return value to be a simple "true"
+    # (eg, PL_sv_yes, aka 1).
+    # we have a lot of permutations of how this code might trigger, and
+    # etc. so we set up the test set here.
+
+    my @params = (
+            'use v5.37',
+            'use feature ":5.38"',
+            'use feature ":all"',
+            'use feature "module_true"',
+            'no feature "module_true"',
+            '',
+        );
+    my @module_code = (
+            '',
+            'sub foo {};',
+            'sub foo {}; 0;',
+            'sub foo {}; return 0;',
+            'sub foo {}; return (0,0,"some_true_value");',
+            'sub foo {}; return ("some_true_value",1,1);',
+            'sub foo {}; (0, return 0);',
+            'sub foo {}; "some_true_value";',
+            'sub foo {}; return "some_true_value";',
+            'sub foo {}; (0, return "some_true_value");',
+            'sub foo {}; (0, return "some_true_value");',
+            undef,
+        );
+    my @eval_code = (
+            'use PACK;',
+            'require PACK;',
+            '$return_val = require PACK;',
+            '@return_val = require PACK;',
+            'require "PACK.pm";',
+            '$return_val = require "PACK.pm";',
+            '@return_val = require "PACK.pm";',
+    );
+
+    # build a list of tuples. for now this just keeps the test
+    # indent level reasonable for the main test loop, but we could
+    # compute this at BEGIN time and then add the number of tests
+    # to the total count
+    my %seen;
+    foreach my $debugger_state (0,0xA) {
+        foreach my $param_str (@params) {
+            foreach my $mod_code (@module_code) {
+                foreach my $eval_code (@eval_code) {
+                    my $pack_name= sprintf "mttest%d", 0+@module_true_tests;
+                    my $eval_code_munged= $eval_code=~s/PACK/$pack_name/r;
+                    # this asks the debugger to preserve lines from evals.
+                    # it causes nextstate ops to convert to dbstate ops,
+                    # and we need to check that we can handle both cases.
+                    $eval_code_munged= '$^P = ' . $debugger_state .
+                                       '; ' . $eval_code_munged
+                        if $debugger_state;
+
+                    my $param_str_munged = $param_str;
+                    $param_str_munged .= ";\n" if $param_str;
+
+                    my $this_code= defined($mod_code)
+                        ? "package PACK;\n$param_str_munged$mod_code\n"
+                        : "";
+
+                    next if $seen{$eval_code_munged . "|" . $this_code}++;
+                    $this_code=~s/PACK/$pack_name/g;
+
+                    push @module_true_tests,
+                        [$pack_name, $param_str, $this_code, $mod_code, $eval_code_munged];
+
+                    if ($this_code!~/use/ and $this_code !~ /some_true_value/) {
+                        $module_true_test_count += 2;
+                    } elsif ($eval_code_munged=~/return_val/) {
+                        $module_true_test_count += 2;
+                    } else {
+                        $module_true_test_count += 1;
+                    }
+                }
+            }
+        }
+    }
+
+    # and more later on
+    $module_true_test_count += 12;
+}
+
+{
+    foreach my $tuple (@module_true_tests) {
+        my ($pack_name, $param_str, $this_code, $mod_code, $eval_code)= @$tuple;
+
+        write_file("$pack_name.pm", $this_code);
+        %INC = ();
+        # these might be assigned to in the $eval_code
+        my $return_val;
+        my @return_val;
+
+        my $descr= !$this_code ? "empty file loaded" :
+                  !$mod_code ? "default behavior with `$mod_code`" :
+                  "`$param_str` with `$mod_code`";
+        $descr .= " via `$eval_code`";
+
+        my $not = eval "$eval_code 1" ? "" : "not ";
+        my $err= $not ? $@ : "";
+        $^P = 0; # turn the debugger off after the eval.
+
+        if ($this_code=~/use/) {
+            # test the various ways the feature can be turned on
+            $i++;
+            print "${not}ok $i - (AA) $descr did not blow up\n";
+            if ($not) {
+                # we died, show the error:
+                print "# error: $_\n" for split /\n/, $err;
+            }
+            if ($eval_code=~/\$return_val/) {
+                $not = ($return_val && $return_val eq '1') ? "" : "not ";
+                $i++;
+                print "${not}ok $i - (AB) scalar return value "
+                      . "is simple true value <$return_val>\n";
+            }
+            elsif ($eval_code=~/\@return_val/) {
+                $not = (@return_val && $return_val[0] eq '1') ? "" : "not ";
+                $i++;
+                print "${not}ok $i - (AB) list return value "
+                      . "is simple true value <$return_val[0]>\n";
+            }
+        } elsif ($this_code!~/some_true_value/) {
+            # test cases where the feature is not on and return false
+            my $not= $not ? "" : "not ";
+            $i++;
+            print "${not}ok $i - (BA) $descr should die\n";
+            if ($not) {
+                print "# error: $_\n" for split /\n/, $err;
+                print "# code: $_\n" for split /\n/, $this_code || "NO CODE";
+            }
+            $not= $err=~/did not return a true value/ ? "" : "not ";
+            $i++;
+            print "${not}ok $i - (BB) saw expected error\n";
+        } else {
+            #test cases where the feature is not on and return true
+            $i++;
+            print "${not}ok $i - (CA) $descr should not die\n";
+            if ($eval_code=~/return_val/) {
+                $not = ($return_val || @return_val) ? "" : "not ";
+                $i++;
+                print "${not}ok $i - (CB) returned expected value\n";
+            }
+            if ($not) {
+                print "# error: $_\n" for split /\n/, $err;
+                print "# code: $_\n" for split /\n/, $this_code || "NO CODE";
+            }
+        }
+    }
+
+    {
+        write_file('blorn.pm', "package blorn;\nuse v5.37;\nsub foo {};\nno feature 'module_true';\n");
+
+        local $@;
+        my $result = 0;
+        my $not = eval "\$result = require 'blorn.pm'; 1" ? 'not ' : '';
+        $i++;
+        print "${not}ok $i - disabling module_true should not return a true value ($result)\n";
+        $not = $@ =~ /did not return a true value/ ? '' : 'not ';
+        $i++;
+        print "${not}ok $i - ... and should fail to compile without a true return value\n";
+    }
+
+    {
+        write_file('blunge.pm', "package blunge;\nuse feature ':5.38';\n".
+                                "sub bar {};\nno feature 'module_true';\n3;\n");
+
+        local $@;
+        my $result = 0;
+        eval "\$result = require 'blunge.pm'; 1";
+        my $not = $result == 3 ? '' : 'not ';
+        $i++;
+        print "${not}ok $i - disabling 'module_true' and should not override module's return value ($result)\n";
+        $not = $@ eq '' ? '' : 'not ';
+        $i++;
+        print "${not}ok $i - ... but should compile successfully with a provided return value\n";
+    }
+    for $main::test_mode (1..4) {
+        my $pack= "Demo$main::test_mode";
+        write_file("$pack.pm", sprintf(<<'CODE', $pack)=~s/^#//mgr);
+#package %s;
+#use feature 'module_true';
+#
+#return 1 if $main::test_mode == 1;
+#return 0 if $main::test_mode == 2;
+#
+#{
+#  no feature 'module_true';
+#  return 0 if $main::test_mode == 3;
+#}
+#no feature 'module_true';
+CODE
+        local $@;
+        my $result = 0;
+        my $ok= eval "\$result = require '$pack.pm'; 1";
+        my $err= $ok ? "" : $@;
+        if ($main::test_mode >= 3) {
+            my $not = $ok  ? 'not ' : '';
+            $i++;
+            print "${not}ok $i - in $pack disabling module_true "
+                  . "should not return a true value ($result)\n";
+            $not = $err =~ /did not return a true value/ ? '' : 'not ';
+            $i++;
+            print "${not}ok $i - ... and should throw the expected error\n";
+            if ($not) {
+                print "# $_\n" for split /\n/, $err;
+            }
+        } else {
+            my $not = $ok ? '' : 'not ';
+            $i++;
+            print "${not}ok $i - in $pack enabling module_true "
+                  . "should not return a true value ($result)\n";
+            $not = $result == 1 ? "" : "not ";
+            $i++;
+            print "${not}ok $i - ... and should return a simple true value\n";
+        }
+    }
+
+}
+
 ##########################################
 # What follows are UTF-8 specific tests. #
 # Add generic tests before this point.   #
@@ -379,7 +612,7 @@ foreach (sort keys %templates) {
 
 END {
     foreach my $file (@files_to_delete) {
-	1 while unlink $file;
+        1 while unlink $file;
     }
 }
 
Index: gnu/usr.bin/perl/t/comp/retainedlines.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/comp/retainedlines.t,v
diff -u -p -a -u -p -r1.1.1.4 retainedlines.t
--- gnu/usr.bin/perl/t/comp/retainedlines.t	17 Nov 2014 20:53:16 -0000	1.1.1.4
+++ gnu/usr.bin/perl/t/comp/retainedlines.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@
 # we've not yet verified that use works.
 # use strict;
 
-print "1..75\n";
+print "1..109\n";
 my $test = 0;
 
 sub failed {
@@ -55,7 +55,15 @@ sub check_retained_lines {
     # Is there a more efficient way to write this?
     my @expect_lines = (undef, map ({"$_\n"} split "\n", $prog), "\n", ';');
 
-    my @keys = grep {!$seen{$_}} grep { /eval/ } keys %::;
+    # sort in decreasing number so that $keys[0] is the from the most
+    # recent eval. In theory we should only have one, but if something
+    # breaks we might have more than one, and keys will return them in a
+    # random order, so if we dont do this then failing tests will have
+    # inconsistent results from run to run.
+    my @keys = map { $_->[0] }
+               sort { $b->[1] <=> $a->[1] }
+               map { (!$seen{$_} and /eval (\d+)/) ? [ $_, $1 ] : ()  }
+               keys %::;
 
     is ((scalar @keys), 1, "1 new eval");
 
@@ -67,7 +75,10 @@ sub check_retained_lines {
     for (0..$#expect_lines) {
 	is ($got_lines[$_], $expect_lines[$_], "Line $_ is correct");
     }
-    $seen{$keys[0]}++;
+    # if we are "leaking" evals we only want to fail the current test,
+    # so we need to mark them all seen (older code only marked $keys[0]
+    # seen and this caused tests to fail that actually worked properly.)
+    $seen{$_}++ for @keys;
 }
 
 my $name = 'foo';
@@ -90,7 +101,10 @@ for my $sep (' ', "\0") {
   my $prog = "sub $name {
     'This is $name'
   }
-1 +
+# 10 errors to triger a croak during compilation.
+1 +; 1 +; 1 +; 1 +; 1 +;
+1 +; 1 +; 1 +; 1 +; 1 +;
+1 +; # and one more for good measure.
 ";
 
   eval $prog and die;
@@ -108,7 +122,9 @@ foreach my $flags (0x0, 0x800, 0x1000, 0
     # This is easier if we accept that the guts eval will add a trailing \n
     # for us
     my $prog = "1 + 1 + 1\n";
-    my $fail = "1 + \n";
+    my $fail = "1 +;\n" x 11; # we need 10 errors to trigger a croak during
+                              # compile, we add an extra one just for good
+                              # measure.
 
     is (eval $prog, 3, 'String eval works');
     if ($flags & 0x800) {
@@ -148,6 +164,26 @@ for (0xA, 0) {
        "evals with BEGIN{die} are correctly cleaned up");
   }
 }
+
+for (0xA, 0) {
+  local $^P = $_;
+
+  eval (my $prog = "UNITCHECK{die}\n");
+  is (!!$@, 1, "Is \$@ true?");
+  is ($@=~/UNITCHECK failed--call queue aborted/, 1,
+      "Error is expected value?");
+
+  if ($_) {
+    check_retained_lines($prog, 'eval that defines UNITCHECK that dies');
+  }
+  else {
+    my @after = grep { /eval/ } keys %::;
+
+    is (scalar @after, 0 + keys %seen,
+       "evals with UNITCHECK{die} are correctly cleaned up");
+  }
+}
+
 
 # [perl #79442] A #line "foo" directive in a string eval was not updating
 # *{"_<foo"} in threaded perls, and was not putting the right lines into
Index: gnu/usr.bin/perl/t/io/eintr.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/io/eintr.t,v
diff -u -p -a -u -p -r1.4 eintr.t
--- gnu/usr.bin/perl/t/io/eintr.t	30 Dec 2019 02:13:56 -0000	1.4
+++ gnu/usr.bin/perl/t/io/eintr.t	21 Feb 2024 15:47:03 -0000
@@ -19,16 +19,16 @@ use Config;
 
 my $piped;
 eval {
-	pipe my $in, my $out;
-	$piped = 1;
+    pipe my $in, my $out;
+    $piped = 1;
 };
 if (!$piped) {
-	skip_all('pipe not implemented');
-	exit 0;
+    skip_all('pipe not implemented');
+    exit 0;
 }
 unless (exists  $Config{'d_alarm'}) {
-	skip_all('alarm not implemented');
-	exit 0;
+    skip_all('alarm not implemented');
+    exit 0;
 }
 
 # XXX for some reason the stdio layer doesn't seem to interrupt
@@ -36,8 +36,8 @@ unless (exists  $Config{'d_alarm'}) {
 # hang.
 
 if (exists $ENV{PERLIO} && $ENV{PERLIO} =~ /stdio/  ) {
-	skip_all('stdio not supported for this script');
-	exit 0;
+    skip_all('stdio not supported for this script');
+    exit 0;
 }
 
 # on Win32, alarm() won't interrupt the read/write call.
@@ -55,13 +55,13 @@ if ($^O eq 'VMS' || $^O eq 'MSWin32' || 
      ($^O eq 'darwin' && $osmajmin < 9) ||
     ((int($]*1000) & 1) == 0)
 ) {
-	skip_all('various portability issues');
-	exit 0;
+    skip_all('various portability issues');
+    exit 0;
 }
 
 
 
-my ($in, $out, $st, $sigst, $buf);
+my ($in, $out, $st, $sigst, $buf, $pipe_buf_size, $pipe_buf_err);
 
 plan(tests => 10);
 
@@ -69,10 +69,34 @@ plan(tests => 10);
 # make two handles that will always block
 
 sub fresh_io {
-	close $in if $in; close $out if $out;
-	undef $in; undef $out; # use fresh handles each time
-	pipe $in, $out;
-	$sigst = "";
+    close $in if $in; close $out if $out;
+    undef $in; undef $out; # use fresh handles each time
+    pipe $in, $out;
+    $sigst = "";
+    $pipe_buf_err = "";
+
+    # This used to be 1_000_000, but on Linux/ppc64 (POWER7) this kept
+    # consistently failing. At exactly 0x100000 it started passing
+    # again. Now we're asking the kernel what the pipe buffer is, and if
+    # that fails, hoping this number is bigger than any pipe buffer.
+    $pipe_buf_size = eval {
+        use Fcntl qw(F_GETPIPE_SZ);
+        # When F_GETPIPE_SZ isn't implemented then fcntl() raises an exception:
+        #   "Your vendor has not defined Fcntl macro F_GETPIPE_SZ ..."
+        # When F_GETPIPE_SZ is implemented then errors are still possible
+        # (EINVAL, EBADF, ...). These are not exceptions (i.e. these don't die)
+        # but instead these set $! and make fcntl() return undef.
+        fcntl($out, F_GETPIPE_SZ, 0) or die "$!\n";
+    };
+    if ($@ or not $pipe_buf_size) {
+        my $err = $@;;
+        chomp $err;
+        $pipe_buf_size = 0xfffff;
+        $pipe_buf_err = "fcntl F_GETPIPE_SZ failed" . ($err ? " ($err)" : "") .
+                        ", falling back to $pipe_buf_size";
+    };
+    $pipe_buf_size++; # goal is to completely fill the buffer so write one
+                      # byte more then the buffer size
 }
 
 $SIG{PIPE} = 'IGNORE';
@@ -84,9 +108,10 @@ $SIG{ALRM} = sub { $sigst = close($in) ?
 alarm(1);
 $st = read($in, $buf, 1);
 alarm(0);
-is($sigst, 'ok', 'read/close: sig handler close status');
-ok(!$st, 'read/close: read status');
-ok(!close($in), 'read/close: close status');
+my $result = is($sigst, 'ok', 'read/close: sig handler close status');
+$result &= ok(!$st, 'read/close: read status');
+$result &= ok(!close($in), 'read/close: close status');
+diag($pipe_buf_err) if (not $result and $pipe_buf_err);
 
 # die during read
 
@@ -95,49 +120,43 @@ $SIG{ALRM} = sub { die };
 alarm(1);
 $st = eval { read($in, $buf, 1) };
 alarm(0);
-ok(!$st, 'read/die: read status');
-ok(close($in), 'read/die: close status');
+$result = ok(!$st, 'read/die: read status');
+$result &= ok(close($in), 'read/die: close status');
+diag($pipe_buf_err) if (not $result and $pipe_buf_err);
 
 SKIP: {
     skip "Tests hang on older versions of Darwin", 5
           if $^O eq 'darwin' && $osmajmin < 16;
 
-    # This used to be 1_000_000, but on Linux/ppc64 (POWER7) this kept
-    # consistently failing. At exactly 0x100000 it started passing
-    # again. Now we're asking the kernel what the pipe buffer is, and if
-    # that fails, hoping this number is bigger than any pipe buffer.
-    my $surely_this_arbitrary_number_is_fine = (eval {
-        use Fcntl qw(F_GETPIPE_SZ);
-        fcntl($out, F_GETPIPE_SZ, 0);
-    } || 0xfffff) + 1;
-
     # close during print
 
     fresh_io;
     $SIG{ALRM} = sub { $sigst = close($out) ? "ok" : "nok" };
-    $buf = "a" x $surely_this_arbitrary_number_is_fine . "\n";
+    $buf = "a" x $pipe_buf_size . "\n";
     select $out; $| = 1; select STDOUT;
     alarm(1);
     $st = print $out $buf;
     alarm(0);
-    is($sigst, 'nok', 'print/close: sig handler close status');
-    ok(!$st, 'print/close: print status');
-    ok(!close($out), 'print/close: close status');
+    $result = is($sigst, 'nok', 'print/close: sig handler close status');
+    $result &= ok(!$st, 'print/close: print status');
+    $result &= ok(!close($out), 'print/close: close status');
+    diag($pipe_buf_err) if (not $result and $pipe_buf_err);
 
     # die during print
 
     fresh_io;
     $SIG{ALRM} = sub { die };
-    $buf = "a" x $surely_this_arbitrary_number_is_fine . "\n";
+    $buf = "a" x $pipe_buf_size . "\n";
     select $out; $| = 1; select STDOUT;
     alarm(1);
     $st = eval { print $out $buf };
     alarm(0);
-    ok(!$st, 'print/die: print status');
+    $result = ok(!$st, 'print/die: print status');
     # the close will hang since there's data to flush, so use alarm
     alarm(1);
-    ok(!eval {close($out)}, 'print/die: close status');
+    $result &= ok(!eval {close($out)}, 'print/die: close status');
     alarm(0);
+    diag($pipe_buf_err) if (not $result and $pipe_buf_err);
 
     # close during close
 
Index: gnu/usr.bin/perl/t/io/layers.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/io/layers.t,v
diff -u -p -a -u -p -r1.1.1.10 layers.t
--- gnu/usr.bin/perl/t/io/layers.t	15 Feb 2023 01:33:02 -0000	1.1.1.10
+++ gnu/usr.bin/perl/t/io/layers.t	21 Feb 2024 15:47:03 -0000
@@ -34,7 +34,7 @@ if (${^UNICODE} & 1) {
 } else {
     $UTF8_STDIN = 0;
 }
-my $NTEST = 60 - (($DOSISH || !$FASTSTDIO) ? 7 : 0) - ($DOSISH ? 7 : 0)
+my $NTEST = 62 - (($DOSISH || !$FASTSTDIO) ? 7 : 0) - ($DOSISH ? 7 : 0)
     + $UTF8_STDIN;
 
 sub PerlIO::F_UTF8 () { 0x00008000 } # from perliol.h
@@ -190,6 +190,10 @@ __EOH__
     binmode(F);
 
     check([ PerlIO::get_layers(F) ],
+	  [ "stdio" ],
+	  "binmode");
+
+    check([ PerlIO::get_layers(*F{IO}) ],
 	  [ "stdio" ],
 	  "binmode");
 
Index: gnu/usr.bin/perl/t/io/socket.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/io/socket.t,v
diff -u -p -a -u -p -r1.6 socket.t
--- gnu/usr.bin/perl/t/io/socket.t	15 Feb 2023 01:36:36 -0000	1.6
+++ gnu/usr.bin/perl/t/io/socket.t	21 Feb 2024 15:47:03 -0000
@@ -307,6 +307,80 @@ SKIP:
        "set SO_REUSEADDR from magic");
     isnt(getsockopt($sock, SOL_SOCKET, SO_REUSEADDR), pack("i", 0),
        "check SO_REUSEADDR set correctly");
+
+    # test whether boolean value treated as a number
+    ok(setsockopt($sock, SOL_SOCKET, SO_REUSEADDR, !1),
+       "clear SO_REUSEADDR by a boolean false");
+    is(getsockopt($sock, SOL_SOCKET, SO_REUSEADDR), pack("i", 0),
+       "check SO_REUSEADDR cleared correctly");
+    ok(setsockopt($sock, SOL_SOCKET, SO_REUSEADDR, !0),
+       "set SO_REUSEADDR by a boolean true");
+    isnt(getsockopt($sock, SOL_SOCKET, SO_REUSEADDR), pack("i", 0),
+         "check SO_REUSEADDR set correctly");
+}
+
+# GH #18642 - test whether setsockopt works with a numeric OPTVAL which also
+# has a cached stringified value
+SKIP: {
+    defined(my $IPPROTO_IP = eval { Socket::IPPROTO_IP() })
+        or skip 'no IPPROTO_IP', 4;
+    defined(my $IP_TTL = eval { Socket::IP_TTL() })
+        or skip 'no IP_TTL', 4;
+
+    my $sock;
+    socket($sock, PF_INET, SOCK_STREAM, $tcp) or BAIL_OUT "socket: $!";
+
+    my $ttl = 7;
+    my $integer_only_ttl = 0 + $ttl;
+    ok(setsockopt($sock, $IPPROTO_IP, $IP_TTL, $integer_only_ttl),
+       'setsockopt with an integer-only OPTVAL');
+    my $set_ttl = getsockopt($sock, $IPPROTO_IP, $IP_TTL);
+    is(unpack('i', $set_ttl // ''), $ttl, 'TTL set to desired value');
+
+    my $also_string_ttl = $ttl;
+    my $string = "$also_string_ttl";
+    ok(setsockopt($sock, $IPPROTO_IP, $IP_TTL, $also_string_ttl),
+       'setsockopt with an integer OPTVAL with stringified value');
+    $set_ttl = getsockopt($sock, $IPPROTO_IP, $IP_TTL);
+    is(unpack('i', $set_ttl // ''), $ttl, 'TTL set to desired value');
+}
+
+# GH #19892
+SKIP: {
+    eval { Socket::IPPROTO_TCP(); 1 } or skip 'no IPPROTO_TCP', 1;
+    eval { Socket::SOL_SOCKET(); 1 } or skip 'no SOL_SOCKET', 1;
+    eval { Socket::SO_SNDBUF(); 1 } or skip 'no SO_SNDBUF', 1;
+    skip 'setting socket buffer size requires elevated privileges', 1 if $^O eq 'VMS';
+
+    # The value of SNDBUF_SIZE constant below is changed from #19892 testcase;
+    # original "262144" may be clamped on low-memory systems.
+    fresh_perl_is(<<'EOP', "Ok.\n", {}, 'setsockopt works for a constant that is once stringified');
+use warnings;
+use strict;
+
+use Socket qw'PF_INET SOCK_STREAM IPPROTO_TCP SOL_SOCKET SO_SNDBUF';
+
+use constant { SNDBUF_SIZE => 32768 };
+
+socket(my $sock, PF_INET, SOCK_STREAM, IPPROTO_TCP)
+  or die "Could not create socket - $!\n";
+
+setsockopt($sock,SOL_SOCKET,SO_SNDBUF,SNDBUF_SIZE)
+  or die "Could not set SO_SNDBUF on socket - $!\n";
+
+my $sndBuf=getsockopt($sock,SOL_SOCKET,SO_SNDBUF)
+  or die "Could not get SO_SNDBUF on socket - $!\n";
+
+$sndBuf=unpack('i',$sndBuf);
+
+die "Unexpected SO_SNDBUF value: $sndBuf\n"
+  unless($sndBuf == SNDBUF_SIZE || $sndBuf == 2*SNDBUF_SIZE);
+
+print "Ok.\n";
+exit;
+
+sub bug {SNDBUF_SIZE.''}
+EOP
 }
 
 done_testing();
Index: gnu/usr.bin/perl/t/lib/Dies.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/Dies.pm
diff -N gnu/usr.bin/perl/t/lib/Dies.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/Dies.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1 @@
+die "error";
Index: gnu/usr.bin/perl/t/lib/dbmt_common.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/dbmt_common.pl,v
diff -u -p -a -u -p -r1.1.1.3 dbmt_common.pl
--- gnu/usr.bin/perl/t/lib/dbmt_common.pl	15 Feb 2023 01:33:03 -0000	1.1.1.3
+++ gnu/usr.bin/perl/t/lib/dbmt_common.pl	21 Feb 2024 15:47:03 -0000
@@ -136,7 +136,7 @@ is(join(':',200..400), join(':',@foo));
 is($h{'foo'}, '');
 is($h{''}, 'bar');
 
-if($DBM_Class eq 'SDBM_File') {
+if($DBM_Class eq 'SDBM_File' || $DBM_Class eq 'NDBM_File') {
     is(exists $h{goner1}, '');
     is(exists $h{foo}, 1);
 }
Index: gnu/usr.bin/perl/t/lib/GH_15109/Apack.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/GH_15109/Apack.pm
diff -N gnu/usr.bin/perl/t/lib/GH_15109/Apack.pm
--- gnu/usr.bin/perl/t/lib/GH_15109/Apack.pm	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
-# for use by caller.t for GH #15109
-package Apack;
-use Bpack;
-1;
Index: gnu/usr.bin/perl/t/lib/GH_15109/Bpack.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/GH_15109/Bpack.pm
diff -N gnu/usr.bin/perl/t/lib/GH_15109/Bpack.pm
--- gnu/usr.bin/perl/t/lib/GH_15109/Bpack.pm	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
-# for use by caller.t for GH #15109
-package Bpack;
-use Cpack;
-1;
Index: gnu/usr.bin/perl/t/lib/GH_15109/Cpack.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/GH_15109/Cpack.pm
diff -N gnu/usr.bin/perl/t/lib/GH_15109/Cpack.pm
--- gnu/usr.bin/perl/t/lib/GH_15109/Cpack.pm	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
-# for use by caller.t for GH #15109
-package Cpack;
-
-
-my $i = 0;
-
-while (my ($package, $file, $line) = caller($i++)) {
-    push @Cpack::callers, "$file:$line";
-}
-
-1;
Index: gnu/usr.bin/perl/t/lib/GH_15109/Foo.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/GH_15109/Foo.pm
diff -N gnu/usr.bin/perl/t/lib/GH_15109/Foo.pm
--- gnu/usr.bin/perl/t/lib/GH_15109/Foo.pm	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-# for use by caller.t for GH #15109
-
-package Foo;
-
-sub import {
-    use warnings; # restore default warnings
-    () = caller(1); # this used to cause valgrind errors
-}
-1;
Index: gnu/usr.bin/perl/t/lib/caller/Apack.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Apack.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Apack.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Apack.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,4 @@
+# for use by caller.t for GH #15109 and other tests
+package Apack;
+use Bpack;
+1;
Index: gnu/usr.bin/perl/t/lib/caller/Bicycle.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Bicycle.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Bicycle.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Bicycle.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,3 @@
+require Tricycle; # part of a cyclic dependency chain
+
+1;
Index: gnu/usr.bin/perl/t/lib/caller/Bpack.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Bpack.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Bpack.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Bpack.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,4 @@
+# for use by caller.t for GH #15109 and other tests
+package Bpack;
+use Cpack;
+1;
Index: gnu/usr.bin/perl/t/lib/caller/Cpack.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Cpack.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Cpack.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Cpack.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,11 @@
+# for use by caller.t for GH #15109 and other tests
+package Cpack;
+
+
+my $i = 0;
+
+while (my ($package, $file, $line) = caller($i++)) {
+    push @Cpack::callers, "$file:$line";
+}
+
+1;
Index: gnu/usr.bin/perl/t/lib/caller/Cycle.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Cycle.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Cycle.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Cycle.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,3 @@
+require Bicycle; # part of a cyclic dependency chain
+
+1;
Index: gnu/usr.bin/perl/t/lib/caller/Foo.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Foo.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Foo.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Foo.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,9 @@
+# for use by caller.t for GH #15109
+
+package Foo;
+
+sub import {
+    use warnings; # restore default warnings
+    () = caller(1); # this used to cause valgrind errors
+}
+1;
Index: gnu/usr.bin/perl/t/lib/caller/Tricycle.pm
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/caller/Tricycle.pm
diff -N gnu/usr.bin/perl/t/lib/caller/Tricycle.pm
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/caller/Tricycle.pm	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,3 @@
+require Cycle; # part of a cyclic dependency chain
+
+1;
Index: gnu/usr.bin/perl/t/lib/croak/class
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/croak/class
diff -N gnu/usr.bin/perl/t/lib/croak/class
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/croak/class	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,134 @@
+__END__
+# Method calls on no args
+no warnings 'experimental::class';
+use feature 'class';
+class XXX { method m { } }
+XXX::m()
+EXPECT
+Cannot invoke method "m" on a non-instance at - line 5.
+########
+# Method calls on non-ref
+no warnings 'experimental::class';
+use feature 'class';
+class XXX { method m { } }
+XXX::m(123)
+EXPECT
+Cannot invoke method "m" on a non-instance at - line 5.
+########
+# Method calls on non-object
+no warnings 'experimental::class';
+use feature 'class';
+class XXX { method m { } }
+XXX::m([])
+EXPECT
+Cannot invoke method "m" on a non-instance at - line 5.
+########
+# Method calls from a different class
+no warnings 'experimental::class';
+use feature 'class';
+class XXX { method m { } }
+class YYY {}
+YYY->new->XXX::m();
+EXPECT
+Cannot invoke a method of "XXX" on an instance of "YYY" at - line 6.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {}
+bless [], "XXX";
+EXPECT
+Attempt to bless into a class at - line 4.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {}
+bless(XXX->new, "main");
+EXPECT
+Can't bless an object reference at - line 4.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX { field $zz; $zz = 123; }
+EXPECT
+Field $zz is not accessible outside a method at - line 3.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX { field $x; sub f { print $x } }
+EXPECT
+Field $x is not accessible outside a method at - line 3.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {
+  field $x;
+  class YYY { method m { print $x } }
+}
+EXPECT
+Field $x of "XXX" is not accessible in a method of "YYY" at - line 5.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {}
+class XXX {}
+EXPECT
+Cannot reopen existing class "XXX" at - line 4.
+########
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {}
+push @XXX::ISA, q(Another);
+EXPECT
+Modification of a read-only value attempted at - line 4.
+########
+no warnings 'experimental::class';
+use feature 'class';
+BEGIN { push @XXX::ISA, q(Another); }
+class XXX {}
+EXPECT
+Cannot create class XXX as it already has a non-empty @ISA at - line 4.
+########
+use strict;
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {
+  field $x = $self + 1;
+}
+EXPECT
+Global symbol "$self" requires explicit package name (did you forget to declare "my $self"?) at - line 5.
+Execution of - aborted due to compilation errors.
+########
+# This test is known to leak: see GH #20812. Skip it for now so that ASAN
+# smokes don't fail. Start failing again on the next development branch so
+# that the issue isn't forgotten
+# SKIP ? $] < 5.039
+use strict;
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {
+  field $x = last;
+}
+EXPECT
+Can't "last" out of field initialiser expression at - line 5.
+########
+use strict;
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {
+  field $x :param(p);
+  field $y :param(p);
+}
+EXPECT
+Cannot assign :param(p) to field $y because that name is already in use at - line 6.
+########
+use strict;
+no warnings 'experimental::class';
+use feature 'class';
+class XXX {
+  field $x :param(p);
+}
+class YYY :isa(XXX) {
+  field $y :param(p);
+}
+EXPECT
+Cannot assign :param(p) to field $y because that name is already in use at - line 8.
Index: gnu/usr.bin/perl/t/lib/croak/op
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/croak/op,v
diff -u -p -a -u -p -r1.6 op
--- gnu/usr.bin/perl/t/lib/croak/op	15 Feb 2023 01:36:36 -0000	1.6
+++ gnu/usr.bin/perl/t/lib/croak/op	21 Feb 2024 15:47:03 -0000
@@ -251,3 +251,52 @@ Type of arg 1 to pop must be array (not 
 Type of arg 1 to shift must be array (not private hash) at - line 5, near "%a;"
 Type of arg 1 to unshift must be array (not private hash) at - line 6, near "1;"
 Execution of - aborted due to compilation errors.
+########
+use feature 'defer';
+no warnings 'experimental::defer';
+defer { return "retval" }
+EXPECT
+Can't "return" out of a "defer" block at - line 3.
+########
+use feature 'defer';
+no warnings 'experimental::defer';
+defer { goto HERE }
+HERE:
+EXPECT
+Can't "goto" out of a "defer" block at - line 3.
+########
+use feature 'defer';
+no warnings 'experimental::defer';
+my $subB = sub {};
+defer { goto &$subB }
+EXPECT
+Can't "goto" out of a "defer" block at - line 4.
+########
+use feature 'defer';
+no warnings 'experimental::defer';
+LOOP: while(1) {
+  defer { last LOOP }
+}
+EXPECT
+Can't "last" out of a "defer" block at - line 4.
+########
+use feature 'try';
+no warnings 'experimental::try';
+try {} catch ($e) {} finally { return "123" }
+EXPECT
+Can't "return" out of a "finally" block at - line 3.
+########
+use feature 'try';
+no warnings 'experimental::try';
+try {} catch ($e) {} finally { goto HERE; }
+HERE:
+EXPECT
+Can't "goto" out of a "finally" block at - line 3.
+########
+use feature 'try';
+no warnings 'experimental::try';
+LOOP: {
+  try {} catch ($e) {} finally { last LOOP; }
+}
+EXPECT
+Can't "last" out of a "finally" block at - line 4.
Index: gnu/usr.bin/perl/t/lib/croak/pp_ctl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/croak/pp_ctl,v
diff -u -p -a -u -p -r1.1.1.5 pp_ctl
--- gnu/usr.bin/perl/t/lib/croak/pp_ctl	1 Mar 2021 23:16:14 -0000	1.1.1.5
+++ gnu/usr.bin/perl/t/lib/croak/pp_ctl	21 Feb 2024 15:47:03 -0000
@@ -11,14 +11,12 @@ no warnings 'deprecated';
 goto f;
 CORE::given(1){f:}
 EXPECT
-given is experimental at - line 3.
 Can't "goto" into a "given" block at - line 3.
 ########
 # NAME goto from given topic expression
 no warnings 'deprecated';
 CORE::given(goto f){f:}
 EXPECT
-given is experimental at - line 2.
 Can't "goto" into a "given" block at - line 2.
 ########
 # NAME goto into expression
@@ -41,7 +39,7 @@ EXPECT
 Can't find label foo at - line 3.
 ########
 # NAME when outside given
-use 5.01; no warnings 'experimental::smartmatch';
+use 5.01; no warnings 'deprecated';
 when(undef){}
 EXPECT
 Can't "when" outside a topicalizer at - line 2.
Index: gnu/usr.bin/perl/t/lib/croak/toke
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/croak/toke,v
diff -u -p -a -u -p -r1.8 toke
--- gnu/usr.bin/perl/t/lib/croak/toke	21 Feb 2023 02:20:36 -0000	1.8
+++ gnu/usr.bin/perl/t/lib/croak/toke	21 Feb 2024 15:47:03 -0000
@@ -2,8 +2,7 @@ __END__
 # NAME foo found where operator expected
 myfunc 1,2,3
 EXPECT
-Number found where operator expected at - line 1, near "myfunc 1"
-	(Do you need to predeclare myfunc?)
+Number found where operator expected (Do you need to predeclare "myfunc"?) at - line 1, near "myfunc 1"
 syntax error at - line 1, near "myfunc 1"
 Execution of - aborted due to compilation errors.
 ########
@@ -14,45 +13,37 @@ $foo;
 myfunc 1,2,3
 EXPECT
 Global symbol "$foo" requires explicit package name (did you forget to declare "my $foo"?) at - line 3.
-Number found where operator expected at - line 4, near "myfunc 1"
-	(Do you need to predeclare myfunc?)
+Number found where operator expected (Do you need to predeclare "myfunc"?) at - line 4, near "myfunc 1"
 syntax error at - line 4, near "myfunc 1"
 Execution of - aborted due to compilation errors.
 ########
-# NAME (Missing operator before ${?) [perl #123737]
+# NAME (Missing operator before "${"?) [perl #123737]
 0${
 EXPECT
-Scalar found where operator expected at - line 1, near "0${"
-	(Missing operator before ${?)
+Scalar found where operator expected (Missing operator before "${"?) at - line 1, near "0${"
 syntax error at - line 1, near "0$"
-Missing right curly or square bracket at - line 1, at end of line
 Execution of - aborted due to compilation errors.
 ########
-# NAME (Missing operator before $#{?) [perl #123737]
+# NAME (Missing operator before "$#{"?) [perl #123737]
 0$#{
 EXPECT
-Array length found where operator expected at - line 1, near "0$#{"
-	(Missing operator before $#{?)
+Array length found where operator expected (Missing operator before "$#{"?) at - line 1, near "0$#{"
 syntax error at - line 1, near "0$#"
-Missing right curly or square bracket at - line 1, at end of line
 Execution of - aborted due to compilation errors.
 ########
-# NAME (Missing operator before @foo) [perl #123737]
+# NAME (Missing operator before "@foo") [perl #123737]
 0@foo
 EXPECT
-Array found where operator expected at - line 1, near "0@foo"
-	(Missing operator before @foo?)
+Array found where operator expected (Missing operator before "@foo"?) at - line 1, near "0@foo"
 syntax error at - line 1, near "0@foo
 "
 Execution of - aborted due to compilation errors.
 ########
-# NAME (Missing operator before @{) [perl #123737]
+# NAME (Missing operator before "@{") [perl #123737]
 0@{
 EXPECT
-Array found where operator expected at - line 1, near "0@{"
-	(Missing operator before @{?)
+Array found where operator expected (Missing operator before "@{"?) at - line 1, near "0@{"
 syntax error at - line 1, near "0@"
-Missing right curly or square bracket at - line 1, at end of line
 Execution of - aborted due to compilation errors.
 ########
 # NAME Unterminated here-doc in string eval
@@ -342,9 +333,8 @@ has cxxc => (
     default => sub { 1 }
 );
 EXPECT
-Bareword found where operator expected at - line 9, near "isa => 'Int"
+Bareword found where operator expected (Do you need to predeclare "isa"?) at - line 9, near "isa => 'Int"
   (Might be a runaway multi-line '' string starting on line 4)
-	(Do you need to predeclare isa?)
 Bad name after Int' at - line 9.
 ########
 # NAME Bad name after :: (with other helpful messages)
@@ -361,9 +351,8 @@ has cxxc => (
     default => sub { 1 }
 );
 EXPECT
-Bareword found where operator expected at - line 9, near "isa => "Foo"
+Bareword found where operator expected (Do you need to predeclare "isa"?) at - line 9, near "isa => "Foo"
   (Might be a runaway multi-line "" string starting on line 4)
-	(Do you need to predeclare isa?)
 Bad name after Foo:: at - line 9.
 ########
 # NAME Unterminated delimiter for here document
@@ -482,10 +471,7 @@ Use of bare << to mean <<"" is forbidden
 # NAME incomplete floating point decimal exponent (#131725)
 1e--5
 EXPECT
-Bareword found where operator expected at - line 1, near "1e"
-	(Missing operator before e?)
-Number found where operator expected at - line 1, near "--5"
-	(Missing operator before 5?)
+Bareword found where operator expected (Missing operator before "e"?) at - line 1, near "1e"
 syntax error at - line 1, near "1e"
 Execution of - aborted due to compilation errors.
 ########
@@ -507,8 +493,7 @@ Execution of - aborted due to compilatio
 01.1234567p0;
 07.8p0;
 EXPECT
-Bareword found where operator expected at - line 2, near "8p0"
-	(Missing operator before p0?)
+Bareword found where operator expected (Missing operator before "p0"?) at - line 2, near "8p0"
 syntax error at - line 2, near "8p0"
 Execution of - aborted due to compilation errors.
 ########
@@ -516,8 +501,7 @@ Execution of - aborted due to compilatio
 0b1.10p0;
 0b1.2p0;
 EXPECT
-Bareword found where operator expected at - line 2, near "2p0"
-	(Missing operator before p0?)
+Bareword found where operator expected (Missing operator before "p0"?) at - line 2, near "2p0"
 syntax error at - line 2, near "2p0"
 Execution of - aborted due to compilation errors.
 ########
@@ -572,11 +556,7 @@ Execution of - aborted due to compilatio
 # NAME [perl #134310] don't confuse S_no_op() with PL_bufptr after s
 0 0x@
 EXPECT
-Number found where operator expected at - line 1, near "0 0x"
-	(Missing operator before  0x?)
-Array found where operator expected at - line 1, near "0x@
-;"
-	(Missing operator before ;?)
+Number found where operator expected (Missing operator before "0x"?) at - line 1, near "0 0x"
 No digits found for hexadecimal literal at - line 1, near "0 0x@"
 syntax error at - line 1, near "0 0x"
 Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/lib/feature/bareword_filehandles
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/feature/bareword_filehandles,v
diff -u -p -a -u -p -r1.1.1.1 bareword_filehandles
--- gnu/usr.bin/perl/t/lib/feature/bareword_filehandles	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/lib/feature/bareword_filehandles	21 Feb 2024 15:47:03 -0000
@@ -127,8 +127,7 @@ my $x = atan2(FOO 1, 2);
 # atan2() above) could end up calling newGVREF(), producing an unexpected error message.
 EXPECT
 OPTIONS fatal
-Number found where operator expected at - line 2, near "FOO 1"
-	(Do you need to predeclare FOO?)
+Number found where operator expected (Do you need to predeclare "FOO"?) at - line 2, near "FOO 1"
 Missing comma after first argument to atan2 function at - line 2, near "2)"
 Execution of - aborted due to compilation errors.
 ########
@@ -362,6 +361,26 @@ no feature "bareword_filehandles";
 accept(FOO, CHILD);
 accept($fh, CHILD);
 accept(FOO, $fh);
+accept(*FOO, *CHILD);
+EXPECT
+OPTIONS fatal
+Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
+Bareword filehandle "CHILD" not allowed under 'no feature "bareword_filehandles"' at - line 5.
+Bareword filehandle "CHILD" not allowed under 'no feature "bareword_filehandles"' at - line 6.
+Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
+Execution of - aborted due to compilation errors.
+########
+# NAME accept some more
+accept FOO, CHILD ;
+accept $fh, CHILD ;
+accept FOO, $fh ;
+no feature "bareword_filehandles";
+accept FOO, CHILD ;
+accept $fh, CHILD ;
+accept FOO, $fh;
+package BAR {}
+accept QUUX BAR, $fh;
+sub BAR::QUUX { $fh }
 EXPECT
 OPTIONS fatal
 Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
@@ -495,4 +514,17 @@ say foo();
 say foo;
 -x foo();
 -x foo;
+EXPECT
+########
+# NAME method calls
+# https://github.com/Perl/perl5/issues/19704
+use feature "say";
+no feature "bareword_filehandles";
+sub foo {}
+print main->foo();
+print main->foo;
+say main->foo();
+say main->foo;
+-x main->foo();
+-x main->foo;
 EXPECT
Index: gnu/usr.bin/perl/t/lib/feature/bits
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/feature/bits,v
diff -u -p -a -u -p -r1.1.1.1 bits
--- gnu/usr.bin/perl/t/lib/feature/bits	1 Mar 2021 23:16:14 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/lib/feature/bits	21 Feb 2024 15:47:03 -0000
@@ -6,8 +6,7 @@ use feature 'say';
 BEGIN { %^H = () }
 say "Fail";
 EXPECT
-String found where operator expected at - line 3, near "say "Fail""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 3, near "say "Fail""
 syntax error at - line 3, near "say "Fail""
 Execution of - aborted due to compilation errors.
 ########
@@ -28,8 +27,7 @@ say "Hello";
 no feature 'say';
 say "Goodbye";
 EXPECT
-String found where operator expected at - line 4, near "say "Goodbye""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 4, near "say "Goodbye""
 syntax error at - line 4, near "say "Goodbye""
 Execution of - aborted due to compilation errors.
 ########
@@ -39,7 +37,6 @@ say "Hello";
 BEGIN { delete $^H{feature_say}; }
 say "Goodbye";
 EXPECT
-String found where operator expected at - line 4, near "say "Goodbye""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 4, near "say "Goodbye""
 syntax error at - line 4, near "say "Goodbye""
 Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/lib/feature/bundle
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/feature/bundle,v
diff -u -p -a -u -p -r1.5 bundle
--- gnu/usr.bin/perl/t/lib/feature/bundle	30 Dec 2019 02:13:56 -0000	1.5
+++ gnu/usr.bin/perl/t/lib/feature/bundle	21 Feb 2024 15:47:03 -0000
@@ -103,9 +103,10 @@ EXPECT
 Assigning non-zero to $[ is no longer possible at - line 3.
 ########
 # NAME $^H accidentally enabling all features
-eval 'BEGIN { $^H |= 0x1c020000 } $_ = evalbytes 12345';
+# HINT_FEATURE_MASK | HINT_LOCALIZE_HH
+eval 'BEGIN { $^H |= 0x3c020000 } $_ = evalbytes 12345';
 print $_||$@;
 EXPECT
-Number found where operator expected at (eval 1) line 1, near "evalbytes 12345"
-	(Do you need to predeclare evalbytes?)
+Number found where operator expected (Do you need to predeclare "evalbytes"?) at (eval 1) line 1, near "evalbytes 12345"
 syntax error at (eval 1) line 1, near "evalbytes 12345"
+Execution of (eval 1) aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/lib/feature/indirect
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/feature/indirect,v
diff -u -p -a -u -p -r1.1.1.1 indirect
--- gnu/usr.bin/perl/t/lib/feature/indirect	1 Mar 2021 23:16:14 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/lib/feature/indirect	21 Feb 2024 15:47:03 -0000
@@ -23,8 +23,7 @@ system $foox "foo", "bar";
 my $y = new Foo;
 EXPECT
 OPTIONS fatal
-Bareword found where operator expected at - line 19, near "new Foo"
-	(Do you need to predeclare new?)
+Bareword found where operator expected (Do you need to predeclare "new"?) at - line 19, near "new Foo"
 syntax error at - line 19, near "new Foo"
 Execution of - aborted due to compilation errors.
 ########
@@ -97,8 +96,7 @@ my $z = new $class;
 
 EXPECT
 OPTIONS fatal
-Scalar found where operator expected at - line 29, near "new $class"
-	(Do you need to predeclare new?)
+Scalar found where operator expected (Do you need to predeclare "new"?) at - line 29, near "new $class"
 syntax error at - line 29, near "new $class"
 Execution of - aborted due to compilation errors.
 ########
@@ -135,7 +133,6 @@ my $z = new $class ();
 
 EXPECT
 OPTIONS fatal
-Scalar found where operator expected at - line 29, near "new $class"
-	(Do you need to predeclare new?)
+Scalar found where operator expected (Do you need to predeclare "new"?) at - line 29, near "new $class"
 syntax error at - line 29, near "new $class "
 Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/lib/feature/say
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/feature/say,v
diff -u -p -a -u -p -r1.1.1.1 say
--- gnu/usr.bin/perl/t/lib/feature/say	29 Sep 2008 17:18:59 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/lib/feature/say	21 Feb 2024 15:47:03 -0000
@@ -7,8 +7,7 @@ use warnings;
 say "Hello", "world";
 EXPECT
 Unquoted string "say" may clash with future reserved word at - line 3.
-String found where operator expected at - line 3, near "say "Hello""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 3, near "say "Hello""
 syntax error at - line 3, near "say "Hello""
 Execution of - aborted due to compilation errors.
 ########
@@ -32,8 +31,7 @@ use warnings;
 say "Hello", "world";
 EXPECT
 Unquoted string "say" may clash with future reserved word at - line 4.
-String found where operator expected at - line 4, near "say "Hello""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 4, near "say "Hello""
 syntax error at - line 4, near "say "Hello""
 Execution of - aborted due to compilation errors.
 ########
@@ -45,8 +43,7 @@ no feature;
 say "Hello", "world";
 EXPECT
 Unquoted string "say" may clash with future reserved word at - line 6.
-String found where operator expected at - line 6, near "say "Hello""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 6, near "say "Hello""
 syntax error at - line 6, near "say "Hello""
 Execution of - aborted due to compilation errors.
 ########
@@ -58,7 +55,6 @@ no feature 'say';
 say "Hello", "world";
 EXPECT
 Unquoted string "say" may clash with future reserved word at - line 6.
-String found where operator expected at - line 6, near "say "Hello""
-	(Do you need to predeclare say?)
+String found where operator expected (Do you need to predeclare "say"?) at - line 6, near "say "Hello""
 syntax error at - line 6, near "say "Hello""
 Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/lib/feature/switch
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/feature/switch,v
diff -u -p -a -u -p -r1.1.1.3 switch
--- gnu/usr.bin/perl/t/lib/feature/switch	24 Mar 2014 14:59:09 -0000	1.1.1.3
+++ gnu/usr.bin/perl/t/lib/feature/switch	21 Feb 2024 15:47:03 -0000
@@ -3,28 +3,28 @@ Check the lexical scoping of the switch 
 
 __END__
 # No switch; given should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 print STDOUT given;
 EXPECT
 Unquoted string "given" may clash with future reserved word at - line 3.
 given
 ########
 # No switch; when should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 print STDOUT when;
 EXPECT
 Unquoted string "when" may clash with future reserved word at - line 3.
 when
 ########
 # No switch; default should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 print STDOUT default;
 EXPECT
 Unquoted string "default" may clash with future reserved word at - line 3.
 default
 ########
 # No switch; break should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 print STDOUT break;
 EXPECT
 Unquoted string "break" may clash with future reserved word at - line 3.
@@ -36,19 +36,19 @@ EXPECT
 Can't "continue" outside a when block at - line 2.
 ########
 # Use switch; so given is a keyword
-use feature 'switch'; no warnings 'experimental::smartmatch';
+use feature 'switch'; no warnings 'deprecated';
 given("okay\n") { print }
 EXPECT
 okay
 ########
 # Use switch; so when is a keyword
-use feature 'switch'; no warnings 'experimental::smartmatch';
+use feature 'switch'; no warnings 'deprecated';
 given(1) { when(1) { print "okay" } }
 EXPECT
 okay
 ########
 # Use switch; so default is a keyword
-use feature 'switch'; no warnings 'experimental::smartmatch';
+use feature 'switch'; no warnings 'deprecated';
 given(1) { default { print "okay" } }
 EXPECT
 okay
@@ -60,7 +60,7 @@ EXPECT
 Can't "break" outside a given block at - line 3.
 ########
 # switch out of scope; given should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 { use feature 'switch';
   given (1) {print "Okay here\n";}
 }
@@ -71,7 +71,7 @@ Okay here
 given
 ########
 # switch out of scope; when should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 { use feature 'switch';
   given (1) { when(1) {print "Okay here\n";} }
 }
@@ -82,7 +82,7 @@ Okay here
 when
 ########
 # switch out of scope; default should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 { use feature 'switch';
   given (1) { default {print "Okay here\n";} }
 }
@@ -93,7 +93,7 @@ Okay here
 default
 ########
 # switch out of scope; break should be a bareword.
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 { use feature 'switch';
   given (1) { break }  
 }
@@ -103,7 +103,7 @@ Unquoted string "break" may clash with f
 break
 ########
 # C<no feature 'switch'> should work
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 use feature 'switch';
 given (1) { when(1) {print "Okay here\n";} }
 no feature 'switch';
@@ -114,7 +114,7 @@ Okay here
 when
 ########
 # C<no feature> should work too
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 use feature 'switch';
 given (1) { when(1) {print "Okay here\n";} }
 no feature;
@@ -125,14 +125,14 @@ Okay here
 when
 ########
 # Without the feature, no 'Unambiguous use of' warning:
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 @break = ($break = "break");
 print ${break}, ${break[0]};
 EXPECT
 breakbreak
 ########
 # With the feature, we get an 'Unambiguous use of' warning:
-use warnings; no warnings 'experimental::smartmatch';
+use warnings; no warnings 'deprecated';
 use feature 'switch';
 @break = ($break = "break");
 print ${break}, ${break[0]};
Index: gnu/usr.bin/perl/t/lib/strict/vars
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/strict/vars,v
diff -u -p -a -u -p -r1.2 vars
--- gnu/usr.bin/perl/t/lib/strict/vars	5 Feb 2017 00:32:20 -0000	1.2
+++ gnu/usr.bin/perl/t/lib/strict/vars	21 Feb 2024 15:47:03 -0000
@@ -213,11 +213,6 @@ Global symbol "$m" requires explicit pac
 Global symbol "$d" requires explicit package name (did you forget to declare "my $d"?) at abc.pm line 6.
 Global symbol "$i" requires explicit package name (did you forget to declare "my $i"?) at abc.pm line 6.
 Global symbol "$n" requires explicit package name (did you forget to declare "my $n"?) at abc.pm line 6.
-Global symbol "$e" requires explicit package name (did you forget to declare "my $e"?) at abc.pm line 7.
-Global symbol "$j" requires explicit package name (did you forget to declare "my $j"?) at abc.pm line 7.
-Global symbol "$o" requires explicit package name (did you forget to declare "my $o"?) at abc.pm line 7.
-Global symbol "$p" requires explicit package name (did you forget to declare "my $p"?) at abc.pm line 8.
-Illegal binary digit '2' at abc.pm line 8, at end of line
 abc.pm has too many errors.
 Compilation failed in require at - line 1.
 BEGIN failed--compilation aborted at - line 1.
Index: gnu/usr.bin/perl/t/lib/subs/subs
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/subs/subs,v
diff -u -p -a -u -p -r1.1.1.1 subs
--- gnu/usr.bin/perl/t/lib/subs/subs	25 Mar 2013 20:09:34 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/lib/subs/subs	21 Feb 2024 15:47:03 -0000
@@ -4,8 +4,7 @@ __END__
 Fred 1,2 ;
 sub Fred {}
 EXPECT
-Number found where operator expected at - line 3, near "Fred 1"
-	(Do you need to predeclare Fred?)
+Number found where operator expected (Do you need to predeclare "Fred"?) at - line 3, near "Fred 1"
 syntax error at - line 3, near "Fred 1"
 Execution of - aborted due to compilation errors.
 ########
@@ -15,10 +14,9 @@ Fred 1,2 ;
 use subs qw( Fred ) ;
 sub Fred {}
 EXPECT
-Number found where operator expected at - line 3, near "Fred 1"
-	(Do you need to predeclare Fred?)
+Number found where operator expected (Do you need to predeclare "Fred"?) at - line 3, near "Fred 1"
 syntax error at - line 3, near "Fred 1"
-BEGIN not safe after errors--compilation aborted at - line 4.
+Execution of - aborted due to compilation errors.
 ########
 
 # AOK
@@ -88,8 +86,7 @@ use open qw( :utf8 :std );
 Frèd 1,2 ;
 sub Frèd {}
 EXPECT
-Number found where operator expected at - line 5, near "Frèd 1"
-	(Do you need to predeclare Frèd?)
+Number found where operator expected (Do you need to predeclare "Frèd"?) at - line 5, near "Frèd 1"
 syntax error at - line 5, near "Frèd 1"
 Execution of - aborted due to compilation errors.
 ########
@@ -101,7 +98,6 @@ use open qw( :utf8 :std );
 use subs qw( ふれど ) ;
 sub ふれど {}
 EXPECT
-Number found where operator expected at - line 5, near "ふれど 1"
-	(Do you need to predeclare ふれど?)
+Number found where operator expected (Do you need to predeclare "ふれど"?) at - line 5, near "ふれど 1"
 syntax error at - line 5, near "ふれど 1"
-BEGIN not safe after errors--compilation aborted at - line 6.
+Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/lib/warnings/7fatal
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/warnings/7fatal,v
diff -u -p -a -u -p -r1.4 7fatal
--- gnu/usr.bin/perl/t/lib/warnings/7fatal	15 Feb 2023 01:36:36 -0000	1.4
+++ gnu/usr.bin/perl/t/lib/warnings/7fatal	21 Feb 2024 15:47:03 -0000
@@ -545,8 +545,6 @@ if (1 {
 }
 EXPECT
 syntax error at - line 4, near "1 {"
-"my" variable $x masks earlier declaration in same statement at - line 6.
-syntax error at - line 7, near "}"
 Execution of - aborted due to compilation errors.
 ########
 
Index: gnu/usr.bin/perl/t/lib/warnings/9uninit
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/warnings/9uninit,v
diff -u -p -a -u -p -r1.4 9uninit
--- gnu/usr.bin/perl/t/lib/warnings/9uninit	1 Mar 2021 23:20:00 -0000	1.4
+++ gnu/usr.bin/perl/t/lib/warnings/9uninit	21 Feb 2024 15:47:03 -0000
@@ -1943,7 +1943,7 @@ $v = 1 + prototype $fn;
 EXPECT
 Use of uninitialized value in addition (+) at - line 4.
 ########
-use warnings 'uninitialized'; no warnings 'experimental::smartmatch';
+use warnings 'uninitialized'; no warnings 'deprecated';
 my $v;
 my $fn = sub {};
 $v = 1 + (1 ~~ $fn);
@@ -2216,3 +2216,33 @@ EXPECT
 Use of uninitialized value in regexp compilation at - line 5.
 Use of uninitialized value in regexp compilation at - line 5.
 Use of uninitialized value $x in regexp compilation at - line 5.
+########
+# GH #20945
+use warnings 'uninitialized';
+my ($v, $x, $y, @arr, %hash);
+
+$v = ($x = undef) + 1;
+$v = 1 + ($x = undef);
+$v = ($x = $y) - 1;
+$v = 1 - ($x = $y);
+$v = ($x = []->[0]) + ($y = [1]->[0]);
+$v = ($x = [1]->[0]) + ($y = []->[0]);
+$v = ($x = ()) * 2;
+(my $z = $y) =~ s/a/b/;
+($arr[0] = undef) =~ s/a/b/;
+($arr[0] = $z) =~ s/a/b/;
+($hash{foo} = undef) =~ s/a/b/;
+($hash{foo} = $z) =~ s/a/b/;
+EXPECT
+Use of uninitialized value $x in addition (+) at - line 5.
+Use of uninitialized value $x in addition (+) at - line 6.
+Use of uninitialized value $x in subtraction (-) at - line 7.
+Use of uninitialized value $x in subtraction (-) at - line 8.
+Use of uninitialized value $x in addition (+) at - line 9.
+Use of uninitialized value $y in addition (+) at - line 10.
+Use of uninitialized value $x in multiplication (*) at - line 11.
+Use of uninitialized value $z in substitution (s///) at - line 12.
+Use of uninitialized value $arr[0] in substitution (s///) at - line 13.
+Use of uninitialized value $arr[0] in substitution (s///) at - line 14.
+Use of uninitialized value $hash{"foo"} in substitution (s///) at - line 15.
+Use of uninitialized value $hash{"foo"} in substitution (s///) at - line 16.
Index: gnu/usr.bin/perl/t/lib/warnings/class
===================================================================
RCS file: gnu/usr.bin/perl/t/lib/warnings/class
diff -N gnu/usr.bin/perl/t/lib/warnings/class
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/lib/warnings/class	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,43 @@
+class.c        warnings from 'class' feature
+__END__
+# experimental warnings
+use strict;
+use feature 'class';
+class C {
+  method m {}
+}
+EXPECT
+class is experimental at - line 4.
+method is experimental at - line 5.
+########
+# constructor warnings
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+class C { }
+C->new();
+eval { C->new('foo') }; # suppress error
+EXPECT
+Odd number of arguments passed to "C" constructor at - line 7.
+########
+# field shadowing warning
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+class C {
+  field $x;
+  field $x;
+}
+EXPECT
+"field" variable $x masks earlier declaration in same scope at - line 7.
+########
+# odd number of elements in field init
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+class C {
+  field %h = (1, 2, 3);
+}
+C->new;
+EXPECT
+Odd number of elements in hash field initialization at - line 6.
Index: gnu/usr.bin/perl/t/lib/warnings/op
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/warnings/op,v
diff -u -p -a -u -p -r1.6 op
--- gnu/usr.bin/perl/t/lib/warnings/op	15 Feb 2023 01:36:36 -0000	1.6
+++ gnu/usr.bin/perl/t/lib/warnings/op	21 Feb 2024 15:47:03 -0000
@@ -284,7 +284,6 @@ my @s = @f["]", "a"];
 @h[glob ""];
 @h[readline ""];
 @h[m ""];
-use constant phoo => 1..3;
 @h[+phoo]; # rv2av
 @h[sort foo];
 @h[reverse foo];
@@ -364,7 +363,7 @@ OPTION fatal
 Can't use an array as a reference at - line 3.
 ########
 # op.c
-use warnings 'void' ; no warnings 'experimental::smartmatch'; close STDIN ;
+use warnings 'void' ; no warnings 'deprecated'; close STDIN ;
 #line 2
 1 x 3 ;			# OP_REPEAT (folded)
 (1) x 3 ;		# OP_REPEAT
@@ -1018,6 +1017,20 @@ sub fred () { 1 }
 *fred = sub () { 2 };
 EXPECT
 Constant subroutine main::fred redefined at - line 3.
+########
+# op.c github #20742
+use constant fred => 1, 2;
+use constant fred => 2, 3;
+EXPECT
+OPTIONS regex
+Constant subroutine main::fred redefined at .*lib/constant\.pm line \d+
+########
+# op.c related to github #20742
+# produced an assertion failure
+use constant x => 1, 2;
+sub x () { 1 }
+EXPECT
+Constant subroutine x redefined at - line 4.
 ########
 # op.c
 use feature "lexical_subs", "state";
Index: gnu/usr.bin/perl/t/lib/warnings/pp_hot
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/warnings/pp_hot,v
diff -u -p -a -u -p -r1.3 pp_hot
--- gnu/usr.bin/perl/t/lib/warnings/pp_hot	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/lib/warnings/pp_hot	21 Feb 2024 15:47:03 -0000
@@ -237,8 +237,8 @@ $a = <FOO> ;
 use warnings 'io' ;
 $a = <FOO> ;
 $a = <FH> ;
-close (FH) or die $! ;
-close (FOO) or die $! ;
+close (FH);
+close (FOO);
 unlink $file ;
 EXPECT
 Filehandle FH opened only for output at - line 5.
Index: gnu/usr.bin/perl/t/lib/warnings/regexec
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/warnings/regexec,v
diff -u -p -a -u -p -r1.6 regexec
--- gnu/usr.bin/perl/t/lib/warnings/regexec	15 Feb 2023 01:36:36 -0000	1.6
+++ gnu/usr.bin/perl/t/lib/warnings/regexec	21 Feb 2024 15:47:03 -0000
@@ -120,7 +120,7 @@ EXPECT
 ########
 # NAME Wide character in non-UTF-8 locale
 require '../loc_tools.pl';
-unless (locales_enabled()) {
+unless (locales_enabled('LC_CTYPE')) {
     print("SKIPPED\n# locales not available\n"),exit;
 }
 eval { require POSIX; POSIX->import("locale_h") };
@@ -150,7 +150,7 @@ Wide character (U+100) in pattern match 
 ########
 # NAME Wide character in UTF-8 locale
 require '../loc_tools.pl';
-unless (locales_enabled()) {
+unless (locales_enabled('LC_CTYPE')) {
     print("SKIPPED\n# locales not available\n"),exit;
 }
 eval { require POSIX; POSIX->import("locale_h") };
@@ -172,6 +172,10 @@ setlocale(&POSIX::LC_CTYPE, $utf8_locale
 EXPECT
 ########
 # NAME \b{} in non-UTF-8 locale
+require '../loc_tools.pl';
+unless (locales_enabled('LC_CTYPE')) {
+    print("SKIPPED\n# locales not available\n"),exit;
+}
 eval { require POSIX; POSIX->import("locale_h") };
 if ($@) {
     print("SKIPPED\n# no POSIX\n"),exit;
@@ -183,12 +187,12 @@ setlocale(&POSIX::LC_CTYPE, "C");
 no warnings 'locale';
 "a" =~ /\b{gcb}/l;
 EXPECT
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 8.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 12.
+Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 12.
 ########
 # NAME \b{} in UTF-8 locale
 require '../loc_tools.pl';
-unless (locales_enabled()) {
+unless (locales_enabled('LC_CTYPE')) {
     print("SKIPPED\n# locales not available\n"),exit;
 }
 eval { require POSIX; POSIX->import("locale_h") };
@@ -208,15 +212,19 @@ setlocale(&POSIX::LC_CTYPE, $utf8_locale
  "abc def" =~ /\b{wb}.*?/;
  "abc def" =~ /\B{wb}.*?/;
 EXPECT
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 16.
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 16.
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 17.
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 17.
-Use of \b{} or \B{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale at - line 17.
+OPTION regex
+\AUse of \\b\{\} or \\B\{\} for non-UTF-8 locale is wrong\.  Assuming a UTF-8 locale at - line 16\.
+Use of \\b\{\} or \\B\{\} for non-UTF-8 locale is wrong\.  Assuming a UTF-8 locale at - line 16\.
+Use of \\b\{\} or \\B\{\} for non-UTF-8 locale is wrong\.  Assuming a UTF-8 locale at - line 17\.
+Use of \\b\{\} or \\B\{\} for non-UTF-8 locale is wrong\.  Assuming a UTF-8 locale at - line 17\.
+Use of \\b\{\} or \\B\{\} for non-UTF-8 locale is wrong\.  Assuming a UTF-8 locale at - line 17\.(?:
+Locale '.*' contains \(at least\) the following characters which have
+unexpected meanings: .*
+The Perl program will use the expected meanings; codeset=UTF-8)?\z
 ########
 # NAME (?[ ]) in non-UTF-8 locale
 require '../loc_tools.pl';
-unless (locales_enabled()) {
+unless (locales_enabled('LC_CTYPE')) {
     print("SKIPPED\n# locales not available\n"),exit;
 }
 eval { require POSIX; POSIX->import("locale_h") };
@@ -243,7 +251,7 @@ Use of (?[ ]) for non-UTF-8 locale is wr
 ########
 # NAME (?[ ]) in UTF-8 locale
 require '../loc_tools.pl';
-unless (locales_enabled()) {
+unless (locales_enabled('LC_CTYPE')) {
     print("SKIPPED\n# locales not available\n"),exit;
 }
 eval { require POSIX; POSIX->import("locale_h") };
Index: gnu/usr.bin/perl/t/lib/warnings/toke
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/lib/warnings/toke,v
diff -u -p -a -u -p -r1.7 toke
--- gnu/usr.bin/perl/t/lib/warnings/toke	15 Feb 2023 01:36:36 -0000	1.7
+++ gnu/usr.bin/perl/t/lib/warnings/toke	21 Feb 2024 15:47:03 -0000
@@ -261,13 +261,8 @@ Reversed *= operator at - line 5.
 Reversed %= operator at - line 6.
 Reversed &= operator at - line 7.
 Reversed .= operator at - line 8.
-Reversed ^= operator at - line 9.
-Reversed |= operator at - line 10.
-Reversed <= operator at - line 11.
 syntax error at - line 8, near "=."
-syntax error at - line 9, near "=^"
-syntax error at - line 10, near "=|"
-Unterminated <> operator at - line 11.
+Execution of - aborted due to compilation errors.
 ########
 # toke.c
 no warnings 'syntax' ;
@@ -283,9 +278,7 @@ $a =< 2 ;
 $a =/ 2 ;
 EXPECT
 syntax error at - line 8, near "=."
-syntax error at - line 9, near "=^"
-syntax error at - line 10, near "=|"
-Unterminated <> operator at - line 11.
+Execution of - aborted due to compilation errors.
 ########
 # toke.c
 use warnings 'syntax' ;
@@ -415,21 +408,30 @@ sort ("")
 EXPECT
 
 ########
-use warnings 'syntax';
 @foo::bar = 1..3;
 () = "$foo'bar";
 () = "@foo'bar";
 () = "$#foo'bar";
-no warnings 'syntax' ;
+use warnings 'syntax';
+() = "$foo'bar";
+() = "@foo'bar";
+() = "$#foo'bar";
+no warnings 'syntax', 'deprecated' ;
 () = "$foo'bar";
 () = "@foo'bar";
 () = "$#foo'bar";
 EXPECT
-Old package separator used in string at - line 3.
+Old package separator used in string at - line 2.
 	(Did you mean "$foo\'bar" instead?)
+Old package separator used in string at - line 3.
+	(Did you mean "@foo\'bar" instead?)
 Old package separator used in string at - line 4.
+	(Did you mean "$#foo\'bar" instead?)
+Old package separator used in string at - line 6.
+	(Did you mean "$foo\'bar" instead?)
+Old package separator used in string at - line 7.
 	(Did you mean "@foo\'bar" instead?)
-Old package separator used in string at - line 5.
+Old package separator used in string at - line 8.
 	(Did you mean "$#foo\'bar" instead?)
 ########
 use warnings 'syntax'; use utf8;
@@ -437,7 +439,7 @@ use warnings 'syntax'; use utf8;
 () = "$fooл'barл";
 () = "@fooл'barл";
 () = "$#fooл'barл";
-no warnings 'syntax' ;
+no warnings 'syntax', 'deprecated' ;
 () = "$fooл'barл";
 () = "@fooл'barл";
 () = "$#fooл'barл";
@@ -449,6 +451,19 @@ Old package separator used in string at 
 Old package separator used in string at - line 5.
 	(Did you mean "$#fooл\'barл" instead?)
 ########
+# NAME deprecation of ' in names
+sub foo'bar { 1 }
+$a'b = 1;
+@a'c = ();
+%a'd = ();
+package a'e;
+EXPECT
+Old package separator "'" deprecated at - line 1.
+Old package separator "'" deprecated at - line 2.
+Old package separator "'" deprecated at - line 3.
+Old package separator "'" deprecated at - line 4.
+Old package separator "'" deprecated at - line 5.
+########
 # toke.c
 use warnings 'ambiguous' ;
 $a = ${time[2]};
@@ -1047,10 +1062,8 @@ Operator or semicolon missing before %fo
 Ambiguous use of % resolved as operator % at - line 8.
 Operator or semicolon missing before %foo at - line 10.
 Ambiguous use of % resolved as operator % at - line 10.
-Bareword found where operator expected at - line 12, near "$%foo"
-	(Missing operator before foo?)
-Bareword found where operator expected at - line 13, near "$ %foo"
-	(Missing operator before foo?)
+Bareword found where operator expected (Missing operator before "foo"?) at - line 12, near "$%foo"
+Bareword found where operator expected (Missing operator before "foo"?) at - line 13, near "$ %foo"
 Illegal modulus zero at - line 3.
 ########
 # toke.c
@@ -1074,10 +1087,8 @@ Operator or semicolon missing before &fo
 Ambiguous use of & resolved as operator & at - line 8.
 Operator or semicolon missing before &foo at - line 10.
 Ambiguous use of & resolved as operator & at - line 10.
-Bareword found where operator expected at - line 13, near "$&foo"
-	(Missing operator before foo?)
-Bareword found where operator expected at - line 14, near "$ &foo"
-	(Missing operator before foo?)
+Bareword found where operator expected (Missing operator before "foo"?) at - line 13, near "$&foo"
+Bareword found where operator expected (Missing operator before "foo"?) at - line 14, near "$ &foo"
 Undefined subroutine &main::foo called at - line 3.
 ########
 # toke.c
@@ -1276,8 +1287,7 @@ eval q/5 6/;
 no warnings "syntax";
 eval q/5 6/;
 EXPECT
-Number found where operator expected at (eval 1) line 1, near "5 6"
-	(Missing operator before  6?)
+Number found where operator expected (Missing operator before "6"?) at (eval 1) line 1, near "5 6"
 ########
 # toke.c
 use warnings "syntax"; no warnings "deprecated";
@@ -1784,3 +1794,11 @@ Use of '》' is deprecated as a string d
 Use of '‹' is deprecated as a string delimiter at - line 13.
 Use of '›' is deprecated as a string delimiter at - line 14.
 ########
+# NAME check bareword warning is a single error message
+BEGIN { $SIG{__WARN__}= sub { print STDERR "warn: $_[0]" }; }
+sub bar {}
+foo bar;
+EXPECT
+warn: Bareword found where operator expected (Do you need to predeclare "foo"?) at - line 3, near "foo bar"
+syntax error at - line 3, near "foo bar"
+Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/op/anonsub.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/anonsub.t,v
diff -u -p -a -u -p -r1.3 anonsub.t
--- gnu/usr.bin/perl/t/op/anonsub.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/anonsub.t	21 Feb 2024 15:47:03 -0000
@@ -86,6 +86,17 @@ print sub { return "ok 1\n" } -> ();
 EXPECT
 ok 1
 ########
+my @void_warnings;
+{
+    use warnings;
+    local $SIG{'__WARN__'} = sub { push @void_warnings, @_ };
+    sub { 1 };
+    1
+}
+"@void_warnings"
+EXPECT
+Useless use of anonymous subroutine in void context at - line 5.
+########
 # [perl #71154] undef &$code makes $code->() die with: Not a CODE reference
 sub __ANON__ { print "42\n" }
 undef &{$x=sub{}};
Index: gnu/usr.bin/perl/t/op/arith2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/arith2.t,v
diff -u -p -a -u -p -r1.1.1.1 arith2.t
--- gnu/usr.bin/perl/t/op/arith2.t	15 Feb 2023 01:33:02 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/op/arith2.t	21 Feb 2024 15:47:03 -0000
@@ -28,9 +28,6 @@ SKIP:
     elsif ($vms_no_ieee || !$Config{d_double_has_inf}) {
         skip "the IEEE infinity model is unavailable in this configuration", 1;
     }
-    elsif ($^O eq 'ultrix') {
-        skip "Ultrix enters deep nirvana instead of producing infinity.", 1;
-    }
     # The computation of $v should overflow and produce "infinity"
     # on any system whose max exponent is less than 10**1506.
     # The exact string used to represent infinity varies by OS,
Index: gnu/usr.bin/perl/t/op/attrs.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/attrs.t,v
diff -u -p -a -u -p -r1.4 attrs.t
--- gnu/usr.bin/perl/t/op/attrs.t	1 Mar 2021 23:20:01 -0000	1.4
+++ gnu/usr.bin/perl/t/op/attrs.t	21 Feb 2024 15:47:03 -0000
@@ -112,6 +112,11 @@ eval 'package A; sub PS : lvalue';
 @attrs = eval 'attributes::get \&A::PS';
 is "@attrs", "lvalue";
 
+# Multiple attributes at once
+eval 'package A; sub PS2 : lvalue method';
+@attrs = eval 'attributes::get \&A::PS2';
+is "@attrs", "lvalue method", 'Multiple builtin attributes can be set at once';
+
 # Test attributes on predeclared subroutines, after definition
 eval 'package A; sub PS : lvalue; sub PS { }';
 @attrs = eval 'attributes::get \&A::PS';
Index: gnu/usr.bin/perl/t/op/blocks.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/blocks.t,v
diff -u -p -a -u -p -r1.4 blocks.t
--- gnu/usr.bin/perl/t/op/blocks.t	15 Feb 2023 01:36:36 -0000	1.4
+++ gnu/usr.bin/perl/t/op/blocks.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan tests => 22;
+plan tests => 26;
 
 my @expect = qw(
 b1
@@ -147,7 +147,6 @@ fresh_perl_is('END { print "ok\n" } INIT
 	       {}, 'null PL_curcop in newGP');
 
 # [perl #2754] exit(0) didn't exit from inside a UNITCHECK or CHECK block
-
 my $testblocks =
     join(" ",
         "BEGIN { \$| = 1; }",
@@ -167,21 +166,21 @@ SKIP: {
     skip "VMS doesn't have the perl #2754 bug", 3 if $^O eq 'VMS';
     fresh_perl_is(
         "$testblocks BEGIN { exit 0; }",
-        "begin\nunitcheck\ncheck\ninit\nend",
+        "begin\nunitcheck\ncheck\nend",
         {},
         "BEGIN{exit 0} doesn't exit yet"
     );
 
     fresh_perl_is(
         "$testblocks UNITCHECK { exit 0; }",
-        "begin\nunitcheck\ncheck\ninit\nmain\nend",
+        "begin\nunitcheck\ncheck\nend",
         {},
         "UNITCHECK{exit 0} doesn't exit yet"
     );
 
     fresh_perl_is(
         "$testblocks CHECK { exit 0; }",
-        "begin\nunitcheck\ncheck\ninit\nmain\nend",
+        "begin\nunitcheck\ncheck\nend",
         {},
         "CHECK{exit 0} doesn't exit yet"
     );
@@ -189,10 +188,6 @@ SKIP: {
 
 
 SKIP: {
-    if ($^O =~ /^(MSWin32|os2)$/) {
-        skip "non_UNIX plafforms and PERL_EXIT_DESTRUCT_END (RT #132863)", 6;
-    }
-
     fresh_perl_is(
         "$testblocks BEGIN { exit 1; }",
         "begin\nunitcheck\ncheck\nend",
@@ -258,6 +253,34 @@ fresh_perl_like(
     "INIT{die} should exit"
 );
 
+fresh_perl_is(
+    "BEGIN{} BEGIN(){1} print 'done'",
+    "Prototype on BEGIN block ignored at - line 1.\ndone",
+    {},
+    "Prototypes on BEGIN blocks should warn"
+);
+
+SKIP: {
+    skip "Test requires full perl, this is miniperl", 1
+        if is_miniperl;
+
+    fresh_perl_is(
+        "use attributes; BEGIN{} sub BEGIN :blerg {1} print 'done'",
+        "Attribute on BEGIN block ignored at - line 1.\ndone",
+        {},
+        "Attributes on BEGIN blocks should warn"
+    );
+}
+
+fresh_perl_is(
+    'BEGIN() {10} foreach my $p (sort {lc($a) cmp lc($b)} keys %v)',
+    "Prototype on BEGIN block ignored at - line 1.\n"
+    . "syntax error at - line 1, at EOF\n"
+    . "Execution of - aborted due to compilation errors.",
+    {},
+    "Prototype on BEGIN blocks should warn"
+);
+
 TODO: {
     local $TODO = 'RT #2917: INIT{} in eval is wrongly considered too late';
     fresh_perl_is('eval "INIT { print qq(in init); };";', 'in init', {}, 'RT #2917: No constraint on how late INIT blocks can run');
@@ -265,3 +288,7 @@ TODO: {
 
 fresh_perl_is('eval "BEGIN {goto end}"; end:', '', {}, 'RT #113934: goto out of BEGIN causes assertion failure');
 
+fresh_perl_is('package Module::Install::DSL; BEGIN { eval "INIT { print q(INIT fired in eval) }" }',
+    "Treating Module::Install::DSL::INIT block as BEGIN block as workaround at (eval 1) line 1.\n"
+    ."INIT fired in eval", {},
+   'GH Issue #16300: Module::Install::DSL workaround');
Index: gnu/usr.bin/perl/t/op/caller.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/caller.t,v
diff -u -p -a -u -p -r1.4 caller.t
--- gnu/usr.bin/perl/t/op/caller.t	15 Feb 2023 01:36:36 -0000	1.4
+++ gnu/usr.bin/perl/t/op/caller.t	21 Feb 2024 15:47:03 -0000
@@ -339,14 +339,14 @@ do './op/caller.pl' or die $@;
 # See that callers within a nested series of 'use's gets the right
 # filenames.
 {
-    local @INC = 'lib/GH_15109/';
+    local @INC = 'lib/caller/';
     # Apack use's Bpack which use's Cpack which populates @Cpack::caller
     # with the file:N of all the callers
     eval 'use Apack; 1';
     is($@, "", "GH #15109 - eval");
     is (scalar(@Cpack::callers), 10, "GH #15109 - callers count");
-    like($Cpack::callers[$_], qr{GH_15109/Bpack.pm:3}, "GH #15109 level $_") for 0..2;
-    like($Cpack::callers[$_], qr{GH_15109/Apack.pm:3}, "GH #15109 level $_") for 3..5;
+    like($Cpack::callers[$_], qr{caller/Bpack.pm:3}, "GH #15109 level $_") for 0..2;
+    like($Cpack::callers[$_], qr{caller/Apack.pm:3}, "GH #15109 level $_") for 3..5;
     like($Cpack::callers[$_], qr{\(eval \d+\):1}, "GH #15109 level $_") for 6..8;
     like($Cpack::callers[$_], qr{caller\.t}, "GH #15109 level $_") for 9;
 
Index: gnu/usr.bin/perl/t/op/catch.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/catch.t,v
diff -u -p -a -u -p -r1.1.1.1 catch.t
--- gnu/usr.bin/perl/t/op/catch.t	13 Feb 2019 21:11:41 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/op/catch.t	21 Feb 2024 15:47:03 -0000
@@ -1,5 +1,11 @@
 #!perl
 
+# Test that exception catching is set up early enough when executing
+# pp_entereval() etc. There used to be a gap where an exception could
+# be raised before perl was ready to catch it.
+#
+# RT #105930: eval 'UNITCHECK{die}' crashes inside FETCH
+
 BEGIN {
     chdir 't' if -d 't';
     require './test.pl';
Index: gnu/usr.bin/perl/t/op/cmpchain.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/cmpchain.t,v
diff -u -p -a -u -p -r1.1.1.2 cmpchain.t
--- gnu/usr.bin/perl/t/op/cmpchain.t	15 Feb 2023 01:33:01 -0000	1.1.1.2
+++ gnu/usr.bin/perl/t/op/cmpchain.t	21 Feb 2024 15:47:03 -0000
@@ -7,7 +7,6 @@ BEGIN {
 }
 
 use feature "isa";
-no warnings qw(experimental::smartmatch);
 
 my @cheqop = qw(== != eq ne);
 my @nceqop = qw(<=> cmp ~~);
@@ -15,18 +14,21 @@ my @chrelop = qw(< > <= >= lt gt le ge);
 my @ncrelop = qw(isa);
 
 foreach my $c0 (@nceqop) {
+    no warnings qw(deprecated);
     foreach my $c1 (@nceqop) {
 	is eval("sub { \$a $c0 \$b $c1 \$c }"), undef,
 	    "$c0 $c1 non-associative";
     }
 }
 foreach my $c (@nceqop) {
+    no warnings qw(deprecated);
     foreach my $e (@cheqop) {
 	is eval("sub { \$a $c \$b $e \$c }"), undef, "$c $e non-associative";
 	is eval("sub { \$a $e \$b $c \$c }"), undef, "$e $c non-associative";
     }
 }
 foreach my $c (@nceqop) {
+    no warnings qw(deprecated);
     foreach my $e0 (@cheqop) {
 	foreach my $e1 (@cheqop) {
 	    is eval("sub { \$a $c \$b $e0 \$c $e1 \$d }"), undef,
Index: gnu/usr.bin/perl/t/op/coreamp.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/coreamp.t,v
diff -u -p -a -u -p -r1.5 coreamp.t
--- gnu/usr.bin/perl/t/op/coreamp.t	15 Feb 2023 01:36:36 -0000	1.5
+++ gnu/usr.bin/perl/t/op/coreamp.t	21 Feb 2024 15:47:03 -0000
@@ -15,8 +15,6 @@ BEGIN {
   $^P |= 0x100; # Provide informative "file" names for evals
 }
 
-no warnings 'experimental::smartmatch';
-
 sub lis($$;$) {
   &is(map(@$_ ? "[@{[map $_//'~~u~~', @$_]}]" : 'nought', @_[0,1]), $_[2]);
 }
@@ -375,6 +373,7 @@ test_proto 'break';
 {
   $tests ++;
   my $tmp;
+  no warnings 'deprecated';
   CORE::given(1) {
     CORE::when(1) {
       &mybreak;
@@ -463,6 +462,7 @@ SKIP:
 
 test_proto 'continue';
 $tests ++;
+no warnings 'deprecated';
 CORE::given(1) {
   CORE::when(1) {
     &mycontinue();
@@ -1158,12 +1158,12 @@ like $@, qr'^Undefined format "STDOUT" c
       File::Spec::Functions::updir,'regen','keywords.pl'
     );
   my %nottest_words = map { $_ => 1 } qw(
-    AUTOLOAD BEGIN CHECK CORE DESTROY END INIT UNITCHECK
+    ADJUST AUTOLOAD BEGIN CHECK CORE DESTROY END INIT UNITCHECK
     __DATA__ __END__
-    and catch cmp default defer do dump else elsif eq eval finally for foreach
-    format ge given goto grep gt if isa last le local lt m map my ne next no
-    or our package print printf q qq qr qw qx redo require return s say sort
-    state sub tr try unless until use when while x xor y
+    and catch class cmp default defer do dump else elsif eq eval field finally
+    for foreach format ge given goto grep gt if isa last le local lt m map
+    method my ne next no or our package print printf q qq qr qw qx redo require
+    return s say sort state sub tr try unless until use when while x xor y
   );
   open my $kh, $keywords_file
     or die "$0 cannot open $keywords_file: $!";
Index: gnu/usr.bin/perl/t/op/coresubs.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/coresubs.t,v
diff -u -p -a -u -p -r1.6 coresubs.t
--- gnu/usr.bin/perl/t/op/coresubs.t	15 Feb 2023 01:36:36 -0000	1.6
+++ gnu/usr.bin/perl/t/op/coresubs.t	21 Feb 2024 15:47:03 -0000
@@ -15,11 +15,11 @@ BEGIN {
 use B;
 
 my %unsupported = map +($_=>1), qw (
- __DATA__ __END__ AUTOLOAD BEGIN UNITCHECK CORE DESTROY END INIT CHECK
-  and catch cmp default defer do dump else elsif eq eval finally for foreach
-  format ge given goto grep gt if isa last le local lt m map my ne next
-  no  or  our  package  print  printf  q  qq  qr  qw  qx  redo  require
-  return s say sort state sub tr try unless until use
+ __DATA__ __END__ ADJUST AUTOLOAD BEGIN UNITCHECK CORE DESTROY END INIT CHECK
+  and catch class cmp default defer do dump else elsif eq eval field
+  finally for foreach format ge given goto grep gt if isa last le local
+  lt m map method my ne next no or our package print printf q qq qr qw qx
+  redo require return s say sort state sub tr try unless until use
   when while x xor y
 );
 my %args_for = (
Index: gnu/usr.bin/perl/t/op/defer.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/defer.t,v
diff -u -p -a -u -p -r1.1.1.1 defer.t
--- gnu/usr.bin/perl/t/op/defer.t	15 Feb 2023 01:33:02 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/op/defer.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan 30;
+plan 28;
 
 use feature 'defer';
 no warnings 'experimental::defer';
@@ -251,31 +251,15 @@ no warnings 'experimental::defer';
     like($e, qr/^Oopsie \d\n/, 'defer block can throw exception during exception unwind');
 }
 
+# goto
 {
-    my $sub = sub {
-        while(1) {
-            defer { return "retval" }
-            last;
-        }
-        return "wrong";
-    };
-
-    my $e = defined eval { $sub->(); 1 } ? undef : $@;
-    like($e, qr/^Can't "return" out of a "defer" block /,
-        'Cannot return out of defer block');
-}
-
-{
-    my $sub = sub {
-        while(1) {
-            defer { goto HERE }
-        }
-        HERE:
-    };
-
-    my $e = defined eval { $sub->(); 1 } ? undef : $@;
-    like($e, qr/^Can't "goto" out of a "defer" block /,
-        'Cannot goto out of defer block');
+    ok(defined eval 'sub { defer { goto HERE; HERE: 1; } }',
+        'goto forwards within defer {} is permitted') or
+        diag("Failure was $@");
+
+    ok(defined eval 'sub { defer { HERE: 1; goto HERE; } }',
+        'goto backwards within defer {} is permitted') or
+        diag("Failure was $@");
 }
 
 {
@@ -289,31 +273,6 @@ no warnings 'experimental::defer';
     my $e = defined eval { $sub->(); 1 } ? undef : $@;
     like($e, qr/^Can't "goto" into a "defer" block /,
         'Cannot goto into defer block');
-}
-
-{
-    my $subA = sub {
-        my $subB = sub {};
-        while(1) {
-            defer { goto &$subB }
-        }
-    };
-
-    my $e = defined eval { $subA->(); 1 } ? undef : $@;
-    like($e, qr/^Can't "goto" out of a "defer" block at /,
-        'Cannot goto &SUB out of a "defer" block');
-}
-
-{
-    my $sub = sub {
-        LOOP: while(1) {
-            defer { last LOOP }
-        }
-    };
-
-    my $e = defined eval { $sub->(); 1 } ? undef : $@;
-    like($e, qr/^Can't "last" out of a "defer" block /,
-        'Cannot last out of defer block');
 }
 
 {
Index: gnu/usr.bin/perl/t/op/die.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/die.t,v
diff -u -p -a -u -p -r1.4 die.t
--- gnu/usr.bin/perl/t/op/die.t	1 Mar 2021 23:20:01 -0000	1.4
+++ gnu/usr.bin/perl/t/op/die.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan tests => 21;
+plan tests => 26;
 
 use utf8;   # Tell EBCDIC translator to make this UTF-8,
 
@@ -101,10 +101,26 @@ like($@, qr/\.{3}propagated at/, '... an
     like($@."", qr/100\t\.{3}propagated at/,
          'check non-PVs in $@ are propagated');
 }
+{
+    my @error;
+    local $SIG{__DIE__}= sub { push @error, @_ };
+    use strict;
+    my $ok= eval '$intentionally_missing+1';
+    my $eval_error= $@;
+    is($ok,undef,"eval should return undef");
+    is(0+@error,1,"we should have captured 1 error via __DIE__");
+    like( $error[0],
+          qr/Global symbol \"\$intentionally_missing\"/,
+          "The __DIE__ handler should have seen this message");
+    like( $eval_error,
+          qr/Global symbol \"\$intentionally_missing\"/,
+          "The eval error in '\$@' should contain this message");
+    is( $error[0], $eval_error,
+        "__DIE__ handler and \$@ should be the same");
+}
 
 TODO: {
     local $TODO = 'RT #4821: die qr{x} does not check termination';
     my $out = runperl(prog => 'die qr{x}', stderr => 1);
     like($out, qr/at -e line 1./, 'RT #4821: output from die qr{x}');
 }
-
Index: gnu/usr.bin/perl/t/op/each.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/each.t,v
diff -u -p -a -u -p -r1.12 each.t
--- gnu/usr.bin/perl/t/op/each.t	15 Feb 2023 01:36:36 -0000	1.12
+++ gnu/usr.bin/perl/t/op/each.t	21 Feb 2024 15:47:03 -0000
@@ -266,24 +266,32 @@ for my $k (qw(each keys values)) {
     is join ("-", each %h), '1-2',
 	'each on apparently empty hash does not leave RITER set';
 }
-{
+SKIP:{
+    my $code= <<'TEST_CODE';
     my $warned= 0;
     local $SIG{__WARN__}= sub {
         /\QUse of each() on hash after insertion without resetting hash iterator results in undefined behavior\E/
-            and $warned++ for @_;
+            and $warned=1 for @_;
     };
     my %h= map { $_ => $_ } "A".."F";
     while (my ($k, $v)= each %h) {
         $h{"$k$k"}= $v;
     }
-    ok($warned,"each() after insert produces warnings");
+    print "a:$warned,";
     no warnings 'internal';
     $warned= 0;
     %h= map { $_ => $_ } "A".."F";
     while (my ($k, $v)= each %h) {
         $h{"$k$k"}= $v;
     }
-    ok(!$warned, "no warnings 'internal' silences each() after insert warnings");
+    print "b:$warned\n";
+TEST_CODE
+    local $ENV{PERL_HASH_SEED};
+    local $ENV{PERL_PERTURB_KEYS};
+    fresh_perl_like($code,
+            qr/\Aa:1,b:0\z/,
+            undef,
+            'Hash iterator reset warnings fires when expected');
 }
 {
     # Test that the call to hv_iternext_flags() that calls prime_env_iter()
Index: gnu/usr.bin/perl/t/op/eval.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/eval.t,v
diff -u -p -a -u -p -r1.14 eval.t
--- gnu/usr.bin/perl/t/op/eval.t	13 Feb 2019 21:15:31 -0000	1.14
+++ gnu/usr.bin/perl/t/op/eval.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan(tests => 140);
+plan(tests => 167);
 
 eval 'pass();';
 
@@ -514,7 +514,7 @@ END_EVAL_TEST
     my $t;
     my $s = "a";
     $s =~ s/a/$t = \%^H;  qq( qq() );/ee;
-    is(Internals::SvREFCNT(%$t), $count_expected, 'RT 63110');
+    refcount_is $t, $count_expected, 'RT 63110';
 }
 
 # make sure default arg eval only adds a hints hash once to entereval
@@ -531,9 +531,9 @@ END_EVAL_TEST
     # test that the CV compiled for the eval is freed by checking that no additional 
     # reference to outside lexicals are made.
     my $x;
-    is(Internals::SvREFCNT($x), 1, "originally only 1 reference");
+    refcount_is \$x, 1+1, "originally only 1 reference"; # + 1 to account for the ref here
     eval '$x';
-    is(Internals::SvREFCNT($x), 1, "execution eval doesn't create new references");
+    refcount_is \$x, 1+1, "execution eval doesn't create new references"; # + 1 the same
 }
 
 fresh_perl_is(<<'EOP', "ok\n", undef, 'RT #70862');
@@ -625,6 +625,7 @@ for("{;", "{") {
     eval $_; is $@ =~ s/eval \d+/eval 1/rag, <<'EOE',
 Missing right curly or square bracket at (eval 1) line 1, at end of line
 syntax error at (eval 1) line 1, at EOF
+Execution of (eval 1) aborted due to compilation errors.
 EOE
 	qq'Right line number for eval "$_"';
 }
@@ -696,4 +697,62 @@ pass("eval in freed package does not cra
 
     eval q{ { 1; { 1; my $x = bless []; die $x = 0, "die in eval"; } } };
     ::like ($@, qr/die in eval/, "FREETMPS: die eval string exit");
+}
+
+{
+    local ${^MAX_NESTED_EVAL_BEGIN_BLOCKS}= 0;
+    my ($x, $ok);
+    $x = 0;
+    $ok= eval 'BEGIN { $x++ } 1';
+    ::ok(!$ok,'${^MAX_NESTED_EVAL_BEGIN_BLOCKS} = 0 blocks BEGIN blocks entirely');
+    ::like($@,qr/Too many nested BEGIN blocks, maximum of 0 allowed/,
+        'Blocked BEGIN results in expected error');
+    ::is($x,0,'BEGIN really did nothing');
+
+    ${^MAX_NESTED_EVAL_BEGIN_BLOCKS}= 2;
+    $ok= eval 'sub f { my $n= shift; eval q[BEGIN { $x++; f($n-1) if $n>0 } 1] or die $@ } f(3); 1';
+    ::ok(!$ok,'${^MAX_NESTED_EVAL_BEGIN_BLOCKS} = 2 blocked three nested BEGIN blocks');
+    ::like($@,qr/Too many nested BEGIN blocks, maximum of 2 allowed/,
+        'Blocked BEGIN results in expected error');
+    ::is($x,2,'BEGIN really did nothing');
+
+}
+
+{
+    # make sure that none of these segfault.
+    foreach my $line (
+        'eval "UNITCHECK { eval q(UNITCHECK { die; }); print q(A-) }";',
+        'eval "UNITCHECK { eval q(BEGIN     { die; }); print q(A-) }";',
+        'eval "BEGIN     { eval q(UNITCHECK { die; }); print q(A-) }";',
+        'CHECK     { eval "]" } print q"A-";',
+        'INIT      { eval "]" } print q"A-";',
+        'UNITCHECK { eval "]" } print q"A-";',
+        'BEGIN     { eval "]" } print q"A-";',
+        'INIT      { eval q(UNITCHECK { die; } print 0;); print q(A-); }',
+    ) {
+        fresh_perl_is($line . ' print "ok";', "A-ok", {}, "No segfault: $line");
+
+        # sort blocks are somewhat special and things that work in normal blocks
+        # can blow up in sort blocks, so test these constructs specially.
+        my $sort_line= 'my @x= sort { ' . $line . ' } 1,2;';
+        fresh_perl_is($sort_line . ' print "ok";', "A-ok", {},
+            "No segfault inside sort: $sort_line");
+    }
+}
+{
+    # test that all of these cases behave the same
+    for my $fragment ('bar', '1+;', '1+;' x 11, 's/', ']') {
+        fresh_perl_is(
+            # code:
+            'use strict; use warnings; $SIG{__DIE__} = sub { die "X" }; ' .
+            'eval { eval "'.$fragment.'"; print "after eval $@"; };' .
+            'if ($@) { print "outer eval $@" }',
+            # wanted:
+            "after eval X at - line 1.",
+            # opts:
+            {},
+            # name:
+            "test that nested eval '$fragment' calls sig die as expected"
+        );
+    }
 }
Index: gnu/usr.bin/perl/t/op/for.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/for.t,v
diff -u -p -a -u -p -r1.5 for.t
--- gnu/usr.bin/perl/t/op/for.t	15 Feb 2023 01:36:36 -0000	1.5
+++ gnu/usr.bin/perl/t/op/for.t	21 Feb 2024 15:47:03 -0000
@@ -756,4 +756,20 @@ is(fscope(), 1, 'return via loop in sub'
     }
 }
 
+# the GV of the loop variable didn't have its refcount bumped while being
+# used by the loop, so it was possible to free it mid-loop.  This used to
+# assert/SEGV
+
+{
+    my $f = "a_low_refcnt_package_var";
+    my $i = 0;
+    no strict 'refs';
+    for ${*$f} (5,11,33) {
+        delete $main::{$f};
+        $i++;
+    }
+    is($i, 3, "deleting glob is safe");
+}
+
+
 done_testing();
Index: gnu/usr.bin/perl/t/op/fork.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/fork.t,v
diff -u -p -a -u -p -r1.17 fork.t
--- gnu/usr.bin/perl/t/op/fork.t	15 Feb 2023 01:36:36 -0000	1.17
+++ gnu/usr.bin/perl/t/op/fork.t	21 Feb 2024 15:47:03 -0000
@@ -21,6 +21,8 @@ my $shell = $ENV{SHELL} || '';
 SKIP: {
     skip "This test can only be run under bash or zsh"
         unless $shell =~ m{/(?:ba|z)sh$};
+    skip "LSAN noise failing to create a thread due to limits"
+        if $Config::Config{ccflags} =~ /sanitize=address/;
     my $probe = qx{
         $shell -c 'ulimit -u 1 2>/dev/null && echo good'
     };
Index: gnu/usr.bin/perl/t/op/glob.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/glob.t,v
diff -u -p -a -u -p -r1.13 glob.t
--- gnu/usr.bin/perl/t/op/glob.t	13 Feb 2019 21:15:31 -0000	1.13
+++ gnu/usr.bin/perl/t/op/glob.t	21 Feb 2024 15:47:03 -0000
@@ -19,10 +19,16 @@ elsif ($^O eq 'VMS') {
   map { s/;.*$//; delete $files{lc($_)}; } split /[\n]/, `directory/noheading/notrailing/versions=1 [.op]`,
 }
 else {
+  local %ENV = %ENV;
+  # disable any env vars that might cause ls or dir to add colors or
+  # otherwise modify the output.
+  /COLOR|LS|CLI/i and delete $ENV{$_} for keys %ENV;
+
   map { $files{$_}++ } <op/*>;
-  map { delete $files{$_} } split /\n/, `ls op/* | cat`;
+  map { delete $files{"op/$_"} } split /\n/, `ls op/ | cat`;
 }
-ok( !(keys(%files)),'leftover op/* files' ) or diag(join(' ',sort keys %files));
+ok( !(keys(%files)),'glob and directory listing agree' )
+    or diag(join(' ',sort keys %files));
 
 cmp_ok($/,'eq',"\n",'sane input record separator');
 
Index: gnu/usr.bin/perl/t/op/goto.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/goto.t,v
diff -u -p -a -u -p -r1.19 goto.t
--- gnu/usr.bin/perl/t/op/goto.t	15 Feb 2023 01:36:36 -0000	1.19
+++ gnu/usr.bin/perl/t/op/goto.t	21 Feb 2024 15:47:03 -0000
@@ -11,7 +11,7 @@ BEGIN {
 
 use warnings;
 use strict;
-plan tests => 125;
+plan tests => 133;
 our $TODO;
 
 my $deprecated = 0;
@@ -901,4 +901,52 @@ is $@,'', 'goto the first parameter of a
     }
     eval { f198(); };
     is $@, "", "v5.31.3-198-gd2cd363728";
+}
+
+# GH #19188
+#
+# 'goto &xs_sub' should provide the correct caller context to an XS sub
+
+SKIP:
+{
+    skip "No XS::APItest in miniperl", 6 if is_miniperl();
+
+    require XS::APItest;
+
+    sub f_19188 { goto &XS::APItest::gimme }
+    sub g_19188{ f_19188(); }
+    my ($s, @a);
+
+    f_19188();
+    is ($XS::APItest::GIMME_V, 1, 'xs_goto void (#19188)');
+
+    $s = f_19188();
+    is ($XS::APItest::GIMME_V, 2, 'xs_goto scalar (#19188)');
+
+    @a = f_19188();
+    is ($XS::APItest::GIMME_V, 3, 'xs_goto list (#19188)');
+
+    g_19188();
+    is ($XS::APItest::GIMME_V, 1, 'xs_goto indirect void (#19188)');
+
+    $s = g_19188();
+    is ($XS::APItest::GIMME_V, 2, 'xs_goto indirect scalar (#19188)');
+
+    @a = g_19188();
+    is ($XS::APItest::GIMME_V, 3, 'xs_goto indirect list (#19188)');
+}
+
+# GH #19936 segfault on goto &xs_sub when calling sub is replaced
+SKIP:
+{
+    skip "No XS::APItest in miniperl", 2 if is_miniperl();
+
+    # utf8::is_utf8() is just an example of an XS sub
+    sub foo_19936 { *foo_19936 = {}; goto &utf8::is_utf8 }
+    ok(foo_19936("\x{100}"), "GH #19936 utf8 XS call");
+
+    # the gimme XS function accesses PL_op, which was null before the fix
+    sub bar_19936 { *bar_19936 = {}; goto &XS::APItest::gimme }
+    my @a = bar_19936();
+    is($XS::APItest::GIMME_V, 3, "GH #19936 gimme XS call");
 }
Index: gnu/usr.bin/perl/t/op/heredoc.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/heredoc.t,v
diff -u -p -a -u -p -r1.4 heredoc.t
--- gnu/usr.bin/perl/t/op/heredoc.t	30 Dec 2019 02:13:56 -0000	1.4
+++ gnu/usr.bin/perl/t/op/heredoc.t	21 Feb 2024 15:47:03 -0000
@@ -7,7 +7,7 @@ BEGIN {
 }
 
 use strict;
-plan(tests => 137);
+plan(tests => 138);
 
 # heredoc without newline (#65838)
 {
@@ -93,7 +93,7 @@ HEREDOC
     fresh_perl_like(
         qq(0<<<<""0\n\n),
         # valgrind and asan reports an error between these two lines
-        qr/^Number found where operator expected at - line 1, near "<<""0"\s+\(Missing operator/,
+        qr/^Number found where operator expected \(Missing operator before "0"\?\) at - line 1, near "<<""0"/,
         {},
         "don't use an invalid oldoldbufptr"
     );
@@ -233,3 +233,13 @@ HEREDOC
         );
     }
 }
+fresh_perl_like(
+q#<<E1;
+${sub{b{]]]{} @{[ <<E2 ]}
+E2
+E1
+#,
+    qr/^syntax error/,
+    {},
+    "GH Issue #17397 - Syntax error inside of here doc causes segfault"
+);
Index: gnu/usr.bin/perl/t/op/hexfp.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/hexfp.t,v
diff -u -p -a -u -p -r1.5 hexfp.t
--- gnu/usr.bin/perl/t/op/hexfp.t	15 Feb 2023 01:36:36 -0000	1.5
+++ gnu/usr.bin/perl/t/op/hexfp.t	21 Feb 2024 15:47:03 -0000
@@ -138,10 +138,10 @@ sub get_warn() {
 
 { # Test certain things that are not hexfloats and should stay that way.
     eval '0xp3';
-    like(get_warn(), qr/Missing operator before p3/);
+    like(get_warn(), qr/Missing operator before "p3"/);
 
     eval '5p3';
-    like(get_warn(), qr/Missing operator before p3/);
+    like(get_warn(), qr/Missing operator before "p3"/);
 
     my @a;
     eval '@a = 0x3..5';
Index: gnu/usr.bin/perl/t/op/inccode.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/inccode.t,v
diff -u -p -a -u -p -r1.3 inccode.t
--- gnu/usr.bin/perl/t/op/inccode.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/inccode.t	21 Feb 2024 15:47:03 -0000
@@ -21,7 +21,7 @@ unless (is_miniperl()) {
 
 use strict;
 
-plan(tests => 68 + !is_miniperl() * (3 + 14 * $can_fork));
+plan(tests => 71 + !is_miniperl() * (4 + 14 * $can_fork));
 
 sub get_temp_fh {
     my $f = tempfile();
@@ -179,6 +179,26 @@ is( $INC{'Toto.pm'}, 'xyz',	   '  val To
 
 pop @INC;
 
+{
+    my $autoloaded;
+    package AutoInc {
+        sub AUTOLOAD {
+            my ($self, $filename) = @_;
+            $autoloaded = our $AUTOLOAD;
+            return ::get_temp_fh($filename);
+        }
+        sub DESTROY {}
+    }
+
+    push @INC, bless {}, "AutoInc";
+    $evalret = eval { require Quux3; 1 };
+    ok($evalret, "require Quux3 via AUTOLOADed INC");
+    ok(exists $INC{"Quux3.pm"}, "Quux3 in %INC");
+    is($autoloaded, "AutoInc::INC", "AUTOLOAD was called for INC");
+
+    pop @INC;
+}
+
 push @INC, sub {
     my ($self, $filename) = @_;
     if ($filename eq 'abc.pl') {
@@ -247,16 +267,17 @@ shift @INC;
     my $data = [];
     unshift @INC, sub { $die, $data };
 
-    my $initial_sub_refcnt = &Internals::SvREFCNT($die);
-    my $initial_data_refcnt = &Internals::SvREFCNT($data);
+    # + 1 to account for prototype-defeating &... calling convention
+    my $initial_sub_refcnt = &Internals::SvREFCNT($die) + 1;
+    my $initial_data_refcnt = &Internals::SvREFCNT($data) + 1;
 
     do "foo";
-    is(&Internals::SvREFCNT($die), $initial_sub_refcnt, "no leaks");
-    is(&Internals::SvREFCNT($data), $initial_data_refcnt, "no leaks");
+    refcount_is $die, $initial_sub_refcnt, "no leaks";
+    refcount_is $data, $initial_data_refcnt, "no leaks";
 
     do "bar";
-    is(&Internals::SvREFCNT($die), $initial_sub_refcnt, "no leaks");
-    is(&Internals::SvREFCNT($data), $initial_data_refcnt, "no leaks");
+    refcount_is $die, $initial_sub_refcnt, "no leaks";
+    refcount_is $data, $initial_data_refcnt, "no leaks";
 
     shift @INC;
 }
@@ -293,13 +314,13 @@ SKIP: {
     $$t = sub { $called ++; !1 };
     delete $INC{'foo.pm'}; # in case another test uses foo
     eval { require foo };
-    is $INCtie::count, 2, # 2nd time for "Can't locate" -- XXX correct?
+    is $INCtie::count, 1,
         'FETCH is called once on undef scalar-tied @INC elem';
     is $called, 1, 'sub in scalar-tied @INC elem is called';
     () = "$INC[0]"; # force a fetch, so the SV is ROK
     $INCtie::count = 0;
     eval { require foo };
-    is $INCtie::count, 2,
+    is $INCtie::count, 1,
         'FETCH is called once on scalar-tied @INC elem holding ref';
     is $called, 2, 'sub in scalar-tied @INC elem holding ref is called';
     $$t = [];
@@ -310,7 +331,7 @@ SKIP: {
     $$t = "string";
     $INCtie::count = 0;
     eval { require foo };
-    is $INCtie::count, 2,
+    is $INCtie::count, 1,
        'FETCH called once on scalar-tied @INC elem returning string';
 }
 
@@ -395,4 +416,13 @@ if ($can_fork) {
     require BBBLPLAST5;
 
     is ("@::bbblplast", "0 1 2 3 4 5", "All ran with a filter");
+}
+SKIP:{
+    skip "need fork",1 unless $can_fork;
+    fresh_perl_like('@INC=("A",bless({},"Hook"),"D"); '
+                 .'sub Hook::INCDIR { return "B","C"} '
+                 .'eval "require Frobnitz" or print $@;',
+                  qr/\(\@INC[\w ]+: A Hook=HASH\(0x[A-Fa-f0-9]+\) B C D\)/,
+                  {},
+                  "Check if INCDIR hook works as expected");
 }
Index: gnu/usr.bin/perl/t/op/lex.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/lex.t,v
diff -u -p -a -u -p -r1.7 lex.t
--- gnu/usr.bin/perl/t/op/lex.t	15 Feb 2023 01:36:36 -0000	1.7
+++ gnu/usr.bin/perl/t/op/lex.t	21 Feb 2024 15:47:03 -0000
@@ -5,7 +5,11 @@
 use strict;
 use warnings;
 
-BEGIN { chdir 't' if -d 't'; require './test.pl'; }
+BEGIN {
+    chdir "t" if -d "t";
+    require './test.pl';
+    @INC= "../lib";
+}
 
 plan(tests => 53);
 
@@ -131,20 +135,18 @@ SKIP: {
     skip "Different output on EBCDIC (presumably)", 3 if $::IS_EBCDIC;
     fresh_perl_is(
       qq'"ab}"ax;&\0z\x8Ao}\x82x;', <<gibberish,
-Bareword found where operator expected at - line 1, near ""ab}"ax"
-	(Missing operator before ax?)
+Bareword found where operator expected (Missing operator before "ax"?) at - line 1, near ""ab}"ax"
 syntax error at - line 1, near ""ab}"ax"
-Unrecognized character \\x8A; marked by <-- HERE after ab}"ax;&\0z<-- HERE near column 12 at - line 1.
+Execution of - aborted due to compilation errors.
 gibberish
        { stderr => 1 },
       'gibberish containing &\0z - used to crash [perl #123753]'
     );
     fresh_perl_is(
       qq'"ab}"ax;&{+z}\x8Ao}\x82x;', <<gibberish,
-Bareword found where operator expected at - line 1, near ""ab}"ax"
-	(Missing operator before ax?)
+Bareword found where operator expected (Missing operator before "ax"?) at - line 1, near ""ab}"ax"
 syntax error at - line 1, near ""ab}"ax"
-Unrecognized character \\x8A; marked by <-- HERE after }"ax;&{+z}<-- HERE near column 14 at - line 1.
+Execution of - aborted due to compilation errors.
 gibberish
        { stderr => 1 },
       'gibberish containing &{+z} - used to crash [perl #123753]'
Index: gnu/usr.bin/perl/t/op/lex_assign.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/lex_assign.t,v
diff -u -p -a -u -p -r1.4 lex_assign.t
--- gnu/usr.bin/perl/t/op/lex_assign.t	15 Feb 2023 01:36:36 -0000	1.4
+++ gnu/usr.bin/perl/t/op/lex_assign.t	21 Feb 2024 15:47:03 -0000
@@ -227,6 +227,35 @@ is($@, '', 'ex-PVBM assert'.$@);
     cmp_ok($diff, '<',  2,  "time delta is small");
 }
 
+# GH #20132 and parts of GH ##20114
+# During development of OP_PADSV_STORE, interactions with OP_PADRANGE
+# caused BBC failures not picked up by any pre-existing core tests.
+# (Problems only arose in list context, the void/scalar tests have been
+# included for completeness.)
+eval {
+    my $x = {}; my $y;
+    keys %{$y = $x};
+    1;
+};
+is($@, '', 'keys %{$y = $x}');
+
+eval {
+    my $x = {}; my $y;
+    my $foo = keys %{$y = $x};
+    1;
+};
+is($@, '', 'my $foo = keys %{$y = $x}');
+
+eval {
+    my $x = {}; my $y;
+    my @foo = keys %{$y = $x};
+    1;
+};
+is($@, '', 'my @foo = keys %{$y = $x}');
+
+fresh_perl_is('my ($x, $y); (($y = $x))', '', {}, '(($y = $x))');
+fresh_perl_is('my ($x, $y); my $z= (($y = $x))', '', {}, 'my $z= (($y = $x))');
+fresh_perl_is('my ($x, $y); my @z= (($y = $x))', '', {}, 'my @z= (($y = $x))');
 
 done_testing();
 
Index: gnu/usr.bin/perl/t/op/magic.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/magic.t,v
diff -u -p -a -u -p -r1.20 magic.t
--- gnu/usr.bin/perl/t/op/magic.t	15 Feb 2023 01:36:36 -0000	1.20
+++ gnu/usr.bin/perl/t/op/magic.t	21 Feb 2024 15:47:03 -0000
@@ -434,8 +434,13 @@ EOP
 }
 
 # Check that assigning to $0 properly handles UTF-8-stored strings:
+SKIP:
 {
-
+  # setproctitle() misbehaves on dragonfly
+  # https://bugs.dragonflybsd.org/issues/3319
+  # https://github.com/Perl/perl5/issues/19894
+  skip "setproctitle() is flaky on DragonflyBSD", 11
+      if $^O eq "dragonfly";
   # Test both ASCII and EBCDIC systems:
   my $char = chr( utf8::native_to_unicode(0xe9) );
 
Index: gnu/usr.bin/perl/t/op/method.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/method.t,v
diff -u -p -a -u -p -r1.15 method.t
--- gnu/usr.bin/perl/t/op/method.t	8 Jul 2023 14:18:37 -0000	1.15
+++ gnu/usr.bin/perl/t/op/method.t	21 Feb 2024 15:47:03 -0000
@@ -253,7 +253,10 @@ sub OtherSouper::method { "Isidore Ropen
    my @ret = $o->SUPER::method('whatever');
    ::is $ret[0], $o, 'object passed to SUPER::method';
    ::is $ret[1], 'whatever', 'argument passed to SUPER::method';
-   @ret = $o->SUPER'method('whatever');
+   {
+       no warnings qw(syntax deprecated);
+       @ret = $o->SUPER'method('whatever');
+   }
    ::is $ret[0], $o, "object passed to SUPER'method";
    ::is $ret[1], 'whatever', "argument passed to SUPER'method";
    @ret = Saab->SUPER::method;
@@ -428,7 +431,7 @@ is $kalled, 1, 'calling a class method v
     eval {
         NulTest->${ \"method\0Whoops" };
     };
-    like $@, qr/Can't locate object method "method\0Whoops" via package "NulTest" at/,
+    like $@, qr/Can't locate object method "method\\0Whoops" via package "NulTest" at/,
             "method lookup is nul-clean";
 
     *NulTest::AUTOLOAD = sub { our $AUTOLOAD; return $AUTOLOAD };
Index: gnu/usr.bin/perl/t/op/pack.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/pack.t,v
diff -u -p -a -u -p -r1.19 pack.t
--- gnu/usr.bin/perl/t/op/pack.t	15 Feb 2023 01:36:36 -0000	1.19
+++ gnu/usr.bin/perl/t/op/pack.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc(qw '../lib ../cpan/Math-BigInt/lib');
 }
 
-plan tests => 14720;
+plan tests => 14722;
 
 use strict;
 use warnings qw(FATAL all);
@@ -276,11 +276,7 @@ sub list_eq ($$) {
        if (($^O eq 'VMS') && !defined($Config{useieee}) || !$Config{d_double_has_inf});
 
     skip("-- $^O has serious fp indigestion on w-packed infinities", 1)
-       if (
-	   ($^O eq 'ultrix')
-	   ||
-	   ($^O =~ /^svr4/ && -f "/etc/issue" && -f "/etc/.relid") # NCR MP-RAS
-	   );
+       if $^O =~ /^svr4/ && -f "/etc/issue" && -f "/etc/.relid";  # NCR MP-RAS
 
     my $inf = eval '2**1000000';
 
@@ -300,9 +296,6 @@ sub list_eq ($$) {
     skip("-- the full range of an IEEE double may not be available in this configuration.", 3)
        if (($^O eq 'VMS') && !defined($Config{useieee}) || !$Config{d_double_style_ieee});
 
-    skip("-- $^O does not like 2**1023", 3)
-       if (($^O eq 'ultrix'));
-
     # This should be about the biggest thing possible on an IEEE double
     my $big = eval '2**1023';
 
@@ -2043,4 +2036,15 @@ SKIP:
     # only expect failure under ASAN (and maybe valgrind)
     fresh_perl_is('0.0 + unpack("u", "ab")', "", { stderr => 1 },
                   "ensure unpack u of invalid data nul terminates result");
+}
+
+{
+	# [GH #16319] SEGV caused by recursion
+	my $x = eval { pack "[" x 1_000_000 };
+	like("$@", qr{No group ending character \Q']'\E found in template},
+			"many opening brackets should not smash the stack");
+
+	$x = eval { pack "[(][)]" };
+	like("$@", qr{Mismatched brackets in template},
+			"should match brackets correctly even without recursion");
 }
Index: gnu/usr.bin/perl/t/op/readline.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/readline.t,v
diff -u -p -a -u -p -r1.4 readline.t
--- gnu/usr.bin/perl/t/op/readline.t	30 Dec 2019 02:13:56 -0000	1.4
+++ gnu/usr.bin/perl/t/op/readline.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan tests => 32;
+plan tests => 36;
 
 # [perl #19566]: sv_gets writes directly to its argument via
 # TARG. Test that we respect SvREADONLY.
@@ -287,6 +287,21 @@ is ${^LAST_FH}, undef, '${^LAST_FH} afte
     like $w, qr/^readline\(\) on unopened filehandle y at .*\n(?x:
                 )Undefined value assigned to typeglob at .*\n\z/,
         '[perl #123790] *x=<y> used to fail an assertion';
+}
+
+SKIP:
+{
+    skip_without_dynamic_extension("IO", 4);
+    my $tmpfile = tempfile();
+    open my $fh, ">", $tmpfile
+        or die "Cannot open $tmpfile: $!";
+    my @layers = PerlIO::get_layers($fh);
+    skip "fgetc doesn't set error flag on failure on solaris likes", 4
+        if $^O eq 'solaris' && $layers[-1] eq 'stdio';
+    ok(!$fh->error, "no error before we try to read");
+    ok(!<$fh>, "fail to readline file opened for write");
+    ok($fh->error, "error after trying to readline file opened for write");
+    ok(!close($fh), "closing the file should fail");
 }
 
 __DATA__
Index: gnu/usr.bin/perl/t/op/ref.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/ref.t,v
diff -u -p -a -u -p -r1.19 ref.t
--- gnu/usr.bin/perl/t/op/ref.t	15 Feb 2023 01:36:36 -0000	1.19
+++ gnu/usr.bin/perl/t/op/ref.t	21 Feb 2024 15:47:03 -0000
@@ -265,8 +265,10 @@ is (join('', sort values %$anonhash2), '
 # Test bless operator.
 
 package MYHASH;
-
-$object = bless $main'anonhash2;
+{
+    no warnings qw(syntax deprecated);
+    $object = bless $main'anonhash2;
+}
 main::is (ref $object, 'MYHASH');
 main::is ($object->{ABC}, 'XYZ');
 
@@ -290,7 +292,10 @@ sub mymethod {
 $string = "bad";
 $object = "foo";
 $string = "good";
-$main'anonhash2 = "foo";
+{
+    no warnings qw(syntax deprecated);
+    $main'anonhash2 = "foo";
+}
 $string = "";
 
 DESTROY {
@@ -307,7 +312,10 @@ package OBJ;
 
 @ISA = ('BASEOBJ');
 
-$main'object = bless {FOO => 'foo', BAR => 'bar'};
+{
+    no warnings qw(syntax deprecated);
+    $main'object = bless {FOO => 'foo', BAR => 'bar'};
+}
 
 package main;
 
@@ -320,10 +328,13 @@ is ($object->doit("BAR"), 'bar');
 $foo = doit $object "FOO";
 main::is ($foo, 'foo');
 
-sub BASEOBJ'doit {
-    local $ref = shift;
-    die "Not an OBJ" unless ref $ref eq 'OBJ';
-    $ref->{shift()};
+{
+    no warnings qw(syntax deprecated);
+    sub BASEOBJ'doit {
+        local $ref = shift;
+        die "Not an OBJ" unless ref $ref eq 'OBJ';
+        $ref->{shift()};
+    }
 }
 
 package UNIVERSAL;
Index: gnu/usr.bin/perl/t/op/require_errors.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/require_errors.t,v
diff -u -p -a -u -p -r1.5 require_errors.t
--- gnu/usr.bin/perl/t/op/require_errors.t	1 Mar 2021 23:20:01 -0000	1.5
+++ gnu/usr.bin/perl/t/op/require_errors.t	21 Feb 2024 15:47:03 -0000
@@ -9,7 +9,13 @@ BEGIN {
 use strict;
 use warnings;
 
-plan(tests => 57);
+plan(tests => 73);
+
+
+# Dedupe @INC. In a future patch we /may/ refuse to process items
+# more than once and deduping here will prevent the tests from failing
+# should we make that change.
+my %seen; @INC = grep {!$seen{$_}++} @INC;
 
 my $nonfile = tempfile();
 
@@ -21,7 +27,7 @@ for my $file ($nonfile, ' ') {
 	require $file;
     };
 
-    like $@, qr/^Can't locate $file in \@INC \(\@INC contains: @INC\) at/,
+    like $@, qr/^Can't locate $file in \@INC \(\@INC[\w ]+: \Q@INC\E\) at/,
 	"correct error message for require '$file'";
 }
 
@@ -85,7 +91,7 @@ for my $file ($nonfile, ' ') {
                 $hint =~ s/\.pm$//;
                 $exp .= " (you may need to install the $hint module)";
             }
-            $exp .= " (\@INC contains: @INC) at";
+            $exp .= " (\@INC entries checked: @INC) at";
         }
         else {
             # undef implies a require which doesn't compile,
@@ -133,14 +139,14 @@ eval {
     require "$nonfile.ph";
 };
 
-like $@, qr/^Can't locate $nonfile\.ph in \@INC \(did you run h2ph\?\) \(\@INC contains: @INC\) at/;
+like $@, qr/^Can't locate $nonfile\.ph in \@INC \(did you run h2ph\?\) \(\@INC[\w ]+: @INC\) at/;
 
 for my $file ("$nonfile.h", ".h") {
     eval {
 	require $file
     };
 
-    like $@, qr/^Can't locate \Q$file\E in \@INC \(change \.h to \.ph maybe\?\) \(did you run h2ph\?\) \(\@INC contains: @INC\) at/,
+    like $@, qr/^Can't locate \Q$file\E in \@INC \(change \.h to \.ph maybe\?\) \(did you run h2ph\?\) \(\@INC[\w ]+: @INC\) at/,
 	"correct error message for require '$file'";
 }
 
@@ -149,7 +155,7 @@ for my $file ("$nonfile.ph", ".ph") {
 	require $file
     };
 
-    like $@, qr/^Can't locate \Q$file\E in \@INC \(did you run h2ph\?\) \(\@INC contains: @INC\) at/,
+    like $@, qr/^Can't locate \Q$file\E in \@INC \(did you run h2ph\?\) \(\@INC[\w ]+: @INC\) at/,
 	"correct error message for require '$file'";
 }
 
@@ -282,4 +288,145 @@ like $@, qr/^Can't locate \Q$nonsearch\E
     ok(!eval { require CannotParse; },
        "check the second attempt also fails");
     like $@, qr/Attempt to reload/, "check we failed for the right reason";
+}
+
+{
+    fresh_perl_like(
+        'unshift @INC, sub { sub { 0 } }; require "asdasd";',
+        qr/asdasd did not return a true value/,
+        { }, '@INC hook blocks do not cause segfault');
+}
+
+{
+    # make sure that modifications to %INC during an INC hooks lifetime
+    # don't result in us having an empty string for the cop_file.
+    # Older perls will output "error at  line 1".
+
+    fresh_perl_like(
+        'use lib qq(./lib); BEGIN{ unshift @INC, '
+       .'sub { if ($_[1] eq "CannotParse.pm" and !$seen++) { '
+       .'eval q(require $_[1]); warn $@; my $code= qq[die qq(error)];'
+       .'open my $fh,"<", q(lib/Dies.pm); return $fh } } } require CannotParse;',
+        qr!\Asyntax error.*?^error at /loader/0x[A-Fa-f0-9]+/CannotParse\.pm line 1\.!ms,
+        { }, 'Inc hooks have the correct cop_file');
+}
+{
+    # this can segfault or assert prior to @INC hardening.
+    fresh_perl_like(
+        'unshift @INC, sub { *INC=["a","b"] }; '
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: CODE\(0x[A-Fa-f0-9]+\) b\)!,
+        { }, 'INC hooks do not segfault when overwritten');
+}
+{
+    # this is the defined behavior, but in older perls the error message
+    # would lie and say "contains: a b", which is true in the sense that
+    # it is the value of @INC after the require, but not the directory
+    # list that was looked at.
+    fresh_perl_like(
+        '@INC = (sub { @INC=("a","b"); () }, "z"); '
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: CODE\(0x[A-Fa-f0-9]+\) b\)!,
+        { }, 'INC hooks that overwrite @INC continue as expected (skips a and z)');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        '@INC = (sub { @INC=qw(a b); undef $INC }, "z"); '
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: CODE\(0x[A-Fa-f0-9]+\) a b\)!,
+        { }, 'INC hooks that overwrite @INC and undef $INC continue at start');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        'sub CB::INCDIR { return "b", "c","d" }; '
+       .'@INC = ("a",bless({},"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: a CB=HASH\(0x[A-Fa-f0-9]+\) b c d e\)!,
+        { }, 'INCDIR works as expected');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        '@INC = ("a",bless({},"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!Can't locate object method "INC", nor "INCDIR" nor string overload via package "CB" in object hook in \@INC!,
+        { }, 'Objects with no INC or INCDIR method and no overload throw an error');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        'package CB { use overload q("") => sub { "Fnorble" };} @INC = ("a",bless({},"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: a Fnorble e\)!,
+        { }, 'Objects with no INC or INCDIR method but with an overload are stringified');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        'package CB { use overload q(0+) => sub { 12345 }, fallback=>1;} @INC = ("a",bless({},"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: a 12345 e\)!,
+        { }, 'Objects with no INC or INCDIR method but with an overload with fallback are stringified');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        '{package CB; use overload qw("")=>sub { "blorg"};} '
+       .'@INC = ("a",bless({},"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: a blorg e\)!,
+        { }, 'Objects with overload and no INC or INCDIR method are stringified');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        '@INC = ("a",bless(sub { warn "blessed sub called" },"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!blessed sub called.*\(\@INC[\w ]+: a CB=CODE\(0x[a-fA-F0-9]+\) e\)!s,
+        { }, 'Blessed subs with no hook methods are executed');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        '@INC = ("a",bless(sub { die "blessed sub called" },"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!INC sub hook died--halting \@INC search!s,
+        { }, 'Blessed subs that die produce expected extra message');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        'sub CB::INC { die "bad mojo" } '
+       .'@INC = ("a",bless(sub { die "blessed sub called" },"CB"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!bad mojo.*INC method hook died--halting \@INC search!s,
+        { }, 'Blessed subs with methods call method and produce expected message');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        '@INC = ("a",[bless([],"CB"),1],"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!Can't locate object method "INC", nor "INCDIR" nor string overload via package "CB" in object in ARRAY hook in \@INC!s,
+        { }, 'Blessed objects with no hook methods in array form produce expected exception');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        'sub CB::INCDIR { "i" } sub CB2::INCDIR { }'
+       .'@INC = ("a",bless(sub{"b"},"CB"),bless(sub{"c"},"CB2"),"e");'
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: a CB=CODE\(0x[a-fA-F0-9]+\) i CB2=CODE\(0x[a-fA-F0-9]+\) e\)!s,
+        { }, 'Blessed subs with INCDIR methods call INCDIR');
+}
+{
+    # as of 5.37.7
+    fresh_perl_like(
+        'sub CB::INCDIR { return @{$_[2]} }'
+       .'@INC = ("a",[bless([],"CB"),"b"],"c");'
+       .'eval "require Frobnitz" or print $@',
+        qr!\(\@INC[\w ]+: a ARRAY\(0x[a-fA-F0-9]+\) CB=ARRAY\(0x[a-fA-F0-9]+\) b c\)!s,
+        { }, 'INCDIR ref returns are stringified');
 }
Index: gnu/usr.bin/perl/t/op/require_gh20577.t
===================================================================
RCS file: gnu/usr.bin/perl/t/op/require_gh20577.t
diff -N gnu/usr.bin/perl/t/op/require_gh20577.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/op/require_gh20577.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,58 @@
+#!perl -w
+
+# Check that modifying %INC during an @INC hook does not
+# clobber the hook by modifying @INC at the same time.
+# See GitHub Issue #20577
+
+chdir "t" if -d "t";
+require './test.pl';
+skip_all_if_miniperl("as PerlIO layer 'scalar' not supported under miniperl");
+set_up_inc( '../lib' );
+eval <<'EOF' or die $@;
+{
+    my %fatpacked;
+
+    $fatpacked{"Test1.pm"} = <<'TEST1';
+  package Test1;
+  sub import {
+      my $filename = 'Test2.pm';
+      $INC{$filename} = "the_test_file";
+  }
+  1;
+TEST1
+
+    $fatpacked{"Test2.pm"} = <<'TEST2';
+  package Test2;
+  use Test1;
+  1;
+TEST2
+
+    my $class = 'FatPacked';
+    no strict 'refs';
+
+    *{"${class}::INC"} = sub {
+        if ( my $fat = $_[0]{ $_[1] } ) {
+            open my $fh, '<', \$fat
+              or die;
+            return $fh;
+        }
+        return;
+    };
+
+    unshift @INC, bless \%fatpacked, $class;
+}
+1
+EOF
+
+ok(UNIVERSAL::isa($INC[0],"FatPacked"), '$INC[0] starts FatPacked');
+ok(!exists $INC{"Test1.pm"}, 'Test1.pm not in %INC');
+ok(!exists $INC{"Test2.pm"}, 'Test2.pm not in %INC');
+my $ok= eval "use Test2; 1";
+my $err= !$ok ? $@ : undef;
+is($err,undef,"No error loading Test2");
+is($ok,1,"Loaded Test2 successfully");
+ok(UNIVERSAL::isa($INC[0],"FatPacked"), '$INC[0] is still FatPacked');
+ok(UNIVERSAL::isa($INC{"Test1.pm"},"FatPacked"), '$INC{"Test1.pm"} is still FatPacked');
+is($INC{"Test2.pm"},"the_test_file", '$INC{"Test2.pm"} is as expected');
+is($INC[0],$INC{"Test1.pm"},'Same object in @INC and %INC');
+done_testing();
Index: gnu/usr.bin/perl/t/op/signatures.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/signatures.t,v
diff -u -p -a -u -p -r1.5 signatures.t
--- gnu/usr.bin/perl/t/op/signatures.t	15 Feb 2023 01:36:36 -0000	1.5
+++ gnu/usr.bin/perl/t/op/signatures.t	21 Feb 2024 15:47:03 -0000
@@ -598,6 +598,18 @@ Mandatory parameter follows optional par
 Mandatory parameter follows optional parameter at foo line 8, near "\$d) "
 EOF
 
+sub t206 ($x, $y //= 3) { return $x + $y }
+is eval("t206(5,4)"),     9, '//= present';
+is eval("t206(5)"),       8, '//= absent';
+is eval("t206(4,undef)"), 7, '//= undef';
+is eval("t206(4,0)"),     4, '//= zero';
+
+sub t207 ($x, $y ||= 3) { return $x + $y }
+is eval("t207(5,4)"),     9, '||= present';
+is eval("t207(5)"),       8, '||= absent';
+is eval("t207(4,undef)"), 7, '||= undef';
+is eval("t207(4,0)"),     7, '||= zero';
+
 sub t034 (@abc) { join("/", @abc).";".scalar(@abc) }
 is prototype(\&t034), undef;
 is eval("t034()"), ";0";
@@ -1001,10 +1013,10 @@ like $@, _create_mismatch_regexp('main::
 is $a, 123;
 
 eval "#line 8 foo\nsub t082 (, \$a) { }";
-is $@, qq{syntax error at foo line 8, near "(,"\n};
+is $@, qq{syntax error at foo line 8, near "(,"\nExecution of foo aborted due to compilation errors.\n};
 
 eval "#line 8 foo\nsub t083 (,) { }";
-is $@, qq{syntax error at foo line 8, near "(,"\n};
+is $@, qq{syntax error at foo line 8, near "(,"\nExecution of foo aborted due to compilation errors.\n};
 
 sub t084($a,$b){ $a.$b }
 is prototype(\&t084), undef;
@@ -1120,30 +1132,35 @@ eval "#line 8 foo\nsub t095 (\$a, 123) {
 is $@, <<EOF;
 A signature parameter must start with '\$', '\@' or '%' at foo line 8, near ", 1"
 syntax error at foo line 8, near ", 123"
+Execution of foo aborted due to compilation errors.
 EOF
 
 eval "#line 8 foo\nno warnings; sub t096 (\$a 123) { }";
 is $@, <<'EOF';
 Illegal operator following parameter in a subroutine signature at foo line 8, near "($a 123"
 syntax error at foo line 8, near "($a 123"
+Execution of foo aborted due to compilation errors.
 EOF
 
 eval "#line 8 foo\nsub t097 (\$a { }) { }";
 is $@, <<'EOF';
 Illegal operator following parameter in a subroutine signature at foo line 8, near "($a { }"
 syntax error at foo line 8, near "($a { }"
+Execution of foo aborted due to compilation errors.
 EOF
 
 eval "#line 8 foo\nsub t098 (\$a; \$b) { }";
 is $@, <<'EOF';
 Illegal operator following parameter in a subroutine signature at foo line 8, near "($a; "
 syntax error at foo line 8, near "($a; "
+Execution of foo aborted due to compilation errors.
 EOF
 
 eval "#line 8 foo\nsub t099 (\$\$) { }";
 is $@, <<EOF;
 Illegal character following sigil in a subroutine signature at foo line 8, near "(\$"
 syntax error at foo line 8, near "\$\$) "
+Execution of foo aborted due to compilation errors.
 EOF
 
 eval "#line 8 foo\nsub t101 (\@_) { }";
Index: gnu/usr.bin/perl/t/op/smartmatch.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/smartmatch.t,v
diff -u -p -a -u -p -r1.3 smartmatch.t
--- gnu/usr.bin/perl/t/op/smartmatch.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/smartmatch.t	21 Feb 2024 15:47:03 -0000
@@ -8,7 +8,7 @@ BEGIN {
 use strict;
 use warnings;
 no warnings 'uninitialized';
-no warnings 'experimental::smartmatch';
+no warnings 'deprecated';    # smartmatch is deprecated and will be removed in 5.042
 
 ++$|;
 
@@ -146,7 +146,7 @@ sub NOT_DEF() { undef }
   # re-introduced it will probably crash in one of the many smoke
   # builds.
   fresh_perl_is('print (q(x) ~~ q(x)) | (/x/ ~~ %!)', "1",
-		{ switches => [ "-MErrno", "-M-warnings=experimental::smartmatch" ] },
+		{ switches => [ "-MErrno", "-M-warnings=deprecated" ] },
 		 "don't fill the stack with rubbish");
 }
 
@@ -194,10 +194,10 @@ sub NOT_DEF() { undef }
     # if there was some other operator's arguments left on the stack, as with
     # the test cases.
     fresh_perl_is('print(0->[0 =~ qr/1/ ~~ 0])', '',
-                  { switches => [ "-M-warnings=experimental::smartmatch" ] },
+                  { switches => [ "-M-warnings=deprecated" ] },
                   "don't qr-ify left-side match against a stacked argument");
     fresh_perl_is('print(0->[0 ~~ (0 =~ qr/1/)])', '',
-                  { switches => [ "-M-warnings=experimental::smartmatch" ] },
+                  { switches => [ "-M-warnings=deprecated" ] },
                   "don't qr-ify right-side match against a stacked argument");
 }
 
Index: gnu/usr.bin/perl/t/op/sort.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/sort.t,v
diff -u -p -a -u -p -r1.20 sort.t
--- gnu/usr.bin/perl/t/op/sort.t	15 Feb 2023 01:36:36 -0000	1.20
+++ gnu/usr.bin/perl/t/op/sort.t	21 Feb 2024 15:47:03 -0000
@@ -237,6 +237,7 @@ eval { @b = sort twoface 4,1 };
 cmp_ok(substr($@,0,4), 'eq', 'good', 'twoface eval');
 
 eval <<'CODE';
+    no warnings qw(deprecated syntax);
     my @result = sort main'Backwards 'one', 'two';
 CODE
 cmp_ok($@,'eq','',q(old skool package));
@@ -900,12 +901,13 @@ cmp_ok($answer,'eq','good','sort subr ca
 # Sorting shouldn't increase the refcount of a sub
 {
     sub sportello {(1+$a) <=> (1+$b)}
-    my $refcnt = &Internals::SvREFCNT(\&sportello);
+    # + 1 to account for prototype-defeating &... calling convention
+    my $refcnt = &Internals::SvREFCNT(\&sportello) + 1;
     @output = sort sportello 3,7,9;
 
     {
         package Doc;
-        ::is($refcnt, &Internals::SvREFCNT(\&::sportello), "sort sub refcnt");
+        ::refcount_is \&::sportello, $refcnt, "sort sub refcnt";
         $fail_msg = q(Modification of a read-only value attempted);
         # Sorting a read-only array in-place shouldn't be allowed
         my @readonly = (1..10);
Index: gnu/usr.bin/perl/t/op/sprintf.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/sprintf.t,v
diff -u -p -a -u -p -r1.19 sprintf.t
--- gnu/usr.bin/perl/t/op/sprintf.t	15 Feb 2023 01:36:36 -0000	1.19
+++ gnu/usr.bin/perl/t/op/sprintf.t	21 Feb 2024 15:47:03 -0000
@@ -30,9 +30,6 @@ if ($^O eq 'VMS') {
     $Is_VMS_VAX = $hw_model < 1024 ? 1 : 0;
 }
 
-# No %Config.
-my $Is_Ultrix_VAX = $^O eq 'ultrix' && `uname -m` =~ /^VAX$/;
-
 # The most generic VAX catcher.
 my $Is_VAX_Float = (pack("d", 1) =~ /^[\x80\x10]\x40/);
 
@@ -55,7 +52,7 @@ while (<DATA>) {
         $data   =~ s/([eE])\-101$/${1}-56/;  # larger exponents
         $result =~ s/([eE])\-102$/${1}-57/;  #  "       "
     }
-    if ($Is_VMS_VAX || $Is_Ultrix_VAX || $Is_VAX_Float) {
+    if ($Is_VMS_VAX || $Is_VAX_Float) {
 	# VAX DEC C 5.3 at least since there is no
 	# ccflags =~ /float=ieee/ on VAX.
 	# AXP is unaffected whether or not it is using ieee.
Index: gnu/usr.bin/perl/t/op/sprintf2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/sprintf2.t,v
diff -u -p -a -u -p -r1.14 sprintf2.t
--- gnu/usr.bin/perl/t/op/sprintf2.t	15 Feb 2023 01:36:36 -0000	1.14
+++ gnu/usr.bin/perl/t/op/sprintf2.t	21 Feb 2024 15:47:03 -0000
@@ -1189,6 +1189,10 @@ if($Config{nvsize} == 8) {
                                    or
                                $^O eq 'VMS'
                                    or
+                               $^O eq 'hpux'
+                                   or
+                               $^O eq 'aix'
+                                   or
                                ($^O eq 'MSWin32' and
                                 $Config{cc} eq 'cl' and
                                 $Config{ccversion} =~ /^(\d+)/ and
@@ -1215,9 +1219,13 @@ elsif($Config{nvtype} eq 'long double' &
 }
 else {
     # IEEE-754 128-bit long double or __float128
-    cmp_ok(sprintf("%.115g", 0.3), 'eq',
+    TODO: {
+        local $::TODO = 'Extended precision %g formatting' if $^O eq 'hpux';
+
+        cmp_ok(sprintf("%.115g", 0.3), 'eq',
            '0.299999999999999999999999999999999990370350278063820734720110287075363407309491758923059023800306022167205810546875',
            "sprintf( \"%.115g\", 0.3 ) renders correctly");
+    }
 }
 
 done_testing();
Index: gnu/usr.bin/perl/t/op/srand.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/srand.t,v
diff -u -p -a -u -p -r1.3 srand.t
--- gnu/usr.bin/perl/t/op/srand.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/srand.t	21 Feb 2024 15:47:03 -0000
@@ -52,9 +52,12 @@ ok( !eq_array(\@first_run, \@second_run)
 }
 
 # This test checks whether Perl called srand for you.
-@first_run  = `$^X -le "print int rand 100 for 1..100"`;
-sleep(1); # in case our srand() is too time-dependent
-@second_run = `$^X -le "print int rand 100 for 1..100"`;
+{
+    local $ENV{PERL_RAND_SEED};
+    @first_run  = `$^X -le "print int rand 100 for 1..100"`;
+    sleep(1); # in case our srand() is too time-dependent
+    @second_run = `$^X -le "print int rand 100 for 1..100"`;
+}
 
 ok( !eq_array(\@first_run, \@second_run), 'srand() called automatically');
 
Index: gnu/usr.bin/perl/t/op/sselect.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/sselect.t,v
diff -u -p -a -u -p -r1.3 sselect.t
--- gnu/usr.bin/perl/t/op/sselect.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/sselect.t	21 Feb 2024 15:47:03 -0000
@@ -13,7 +13,7 @@ BEGIN {
 skip_all("Win32 miniperl has no socket select")
   if $^O eq "MSWin32" && is_miniperl();
 
-plan (16);
+plan (23);
 
 my $blank = "";
 eval {select undef, $blank, $blank, 0};
@@ -103,4 +103,81 @@ package _131645{
 }
 tie $tie, _131645::;
 select ($tie, undef, undef, $tie);
-ok("no crash from select $numeric_tie, undef, undef, $numeric_tie")
+ok("no crash from select $numeric_tie, undef, undef, $numeric_tie");
+
+SKIP: {
+    skip "Can't load modules under miniperl", 4 if is_miniperl;
+    my $SKIP_CR = sub {
+        skip shift, 4;
+    };
+
+    if ($^O =~ m<win32|vms>i) {
+        $SKIP_CR->("Perl's 4-arg select() in $^O only works with sockets.");
+    }
+
+    eval { require POSIX } or do {
+        $SKIP_CR->("Failed to load POSIX.pm: $@");
+    };
+
+    my $mask;
+
+    for (my $f=0; $f<100; $f++) {
+        my $fd = POSIX::dup(fileno \*STDOUT);
+
+        if (!defined $fd) {
+            $SKIP_CR->("dup(STDOUT): $!");
+            last UTF8TEST;
+        }
+
+        vec( my $curmask, $fd, 1 ) = 1;
+
+        if ($curmask =~ tr<\x80-\xff><>) {
+            note("FD = $fd");
+            $mask = $curmask;
+            last;
+        }
+    }
+
+
+    if (defined $mask) {
+        utf8::downgrade($mask);
+        my $mask2;
+
+        my $result = select $mask2 = $mask, undef, undef, 0;
+
+        isnt( $result, -1, 'select() read on non-utf8-flagged mask' );
+
+        utf8::upgrade($mask);
+        $result = select $mask2 = $mask, undef, undef, 0;
+
+        isnt( $result, -1, 'select() read on utf8-flagged mask' );
+
+        # ----------------------------------------
+
+        utf8::downgrade($mask);
+        $result = select undef, $mask2 = $mask, undef, 0;
+
+        isnt( $result, -1, 'select() write on non-utf8-flagged mask' );
+
+        utf8::upgrade($mask);
+        $result = select undef, $mask2 = $mask, undef, 0;
+
+        isnt( $result, -1, 'select() write on utf8-flagged mask' );
+    }
+    else {
+        $SKIP_CR->("No suitable file descriptor for UTF-8-flag test found.");
+    }
+}
+
+{
+    my $badmask = "\x{100}";
+
+    eval { select $badmask, undef, undef, 0 };
+    ok( $@, 'select() read fails when given a wide character' );
+
+    eval { select undef, $badmask, undef, 0 };
+    ok( $@, 'select() write fails when given a wide character' );
+
+    eval { select undef, undef, $badmask, 0 };
+    ok( $@, 'select() exception fails when given a wide character' );
+}
Index: gnu/usr.bin/perl/t/op/stash_parse_gv.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/stash_parse_gv.t,v
diff -u -p -a -u -p -r1.1.1.2 stash_parse_gv.t
--- gnu/usr.bin/perl/t/op/stash_parse_gv.t	30 Dec 2019 02:11:08 -0000	1.1.1.2
+++ gnu/usr.bin/perl/t/op/stash_parse_gv.t	21 Feb 2024 15:47:03 -0000
@@ -23,7 +23,7 @@ foreach my $t (@tests) {
     my ( $sub, $name ) = @$t;
 
     fresh_perl_is(
-        qq[sub $sub { print qq[ok\n]} &{"$sub"}; my \$d = defined *{"foo$sub"} ],
+        qq[no warnings qw(syntax deprecated); sub $sub { print qq[ok\n]} &{"$sub"}; my \$d = defined *{"foo$sub"} ],
         q[ok],
         { switches => ['-w'] },
         $name
Index: gnu/usr.bin/perl/t/op/state.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/state.t,v
diff -u -p -a -u -p -r1.3 state.t
--- gnu/usr.bin/perl/t/op/state.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/state.t	21 Feb 2024 15:47:03 -0000
@@ -346,7 +346,7 @@ foreach my $x (0 .. 4) {
 #
 my @spam = qw [spam ham bacon beans];
 foreach my $spam (@spam) {
-    no warnings 'experimental::smartmatch';
+    no warnings 'deprecated';
     given (state $spam = $spam) {
         when ($spam [0]) {ok 1, "given"}
         default          {ok 0, "given"}
Index: gnu/usr.bin/perl/t/op/sub.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/sub.t,v
diff -u -p -a -u -p -r1.5 sub.t
--- gnu/usr.bin/perl/t/op/sub.t	1 Mar 2021 23:20:01 -0000	1.5
+++ gnu/usr.bin/perl/t/op/sub.t	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan(tests => 62);
+plan(tests => 65);
 
 sub empty_sub {}
 
@@ -426,3 +426,24 @@ eval '
    CORE::state sub b; sub d { sub b {} sub d }
  ';
 eval '()=%e; sub e { sub e; eval q|$x| } e;';
+
+fresh_perl_like(
+    q#<s,,$0[sub{m]]]],}>0,shift#,
+    qr/^syntax error/,
+    {},
+    "GH Issue #16944 - Syntax error with sub and shift causes segfault"
+);
+
+# Bug 20010515.004 (#6998)
+# freeing array used as args to sub
+
+fresh_perl_like(
+    q{my @h = 1 .. 10; bad(@h); sub bad { undef @h; warn "O\n"; print for @_; warn "K\n";}},
+    qr/Use of freed value in iteration/,
+    {},
+    "#6998 freeing array used as args to sub",
+);
+
+# github #21044
+ok( eval { $_->{x} = 1 for sub { undef }->(); 1 }, "check sub return values are modifiable")
+  or diag $@;
Index: gnu/usr.bin/perl/t/op/switch.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/switch.t,v
diff -u -p -a -u -p -r1.4 switch.t
--- gnu/usr.bin/perl/t/op/switch.t	15 Feb 2023 01:36:36 -0000	1.4
+++ gnu/usr.bin/perl/t/op/switch.t	21 Feb 2024 15:47:03 -0000
@@ -8,7 +8,7 @@ BEGIN {
 
 use strict;
 use warnings;
-no warnings 'experimental::smartmatch';
+no warnings 'deprecated';
 
 plan tests => 197;
 
Index: gnu/usr.bin/perl/t/op/taint.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/taint.t,v
diff -u -p -a -u -p -r1.28 taint.t
--- gnu/usr.bin/perl/t/op/taint.t	8 Jul 2023 14:18:37 -0000	1.28
+++ gnu/usr.bin/perl/t/op/taint.t	21 Feb 2024 15:47:03 -0000
@@ -25,7 +25,7 @@ if ($NoTaintSupport) {
     exit 0;
 }
 
-plan tests => 1058;
+plan tests => 1065;
 
 $| = 1;
 
@@ -145,14 +145,17 @@ my $TEST = 'TEST';
 {
     $ENV{'DCL$PATH'} = '' if $Is_VMS;
 
-    $ENV{PATH} = ($Is_Cygwin) ? '/usr/bin' : '';
+    # Empty path is the same as "." on *nix, so we have to set it
+    # to something or we will fail taint tests. perhaps setting it
+    # to "/" would be better. Anything absolute will do.
+    $ENV{PATH} = $Is_VMS ? 'sys$system:' : '/usr/bin';
     delete @ENV{@MoreEnv};
     $ENV{TERM} = 'dumb';
 
     is(eval { `$echo 1` }, "1\n");
 
     SKIP: {
-        skip "Environment tainting tests skipped", 4
+        skip "Environment tainting tests skipped", 11
           if $Is_MSWin32 || $Is_VMS;
 
 	my @vars = ('PATH', @MoreEnv);
@@ -164,6 +167,16 @@ my $TEST = 'TEST';
 	}
 	is("@vars", "");
 
+        # make sure that the empty path or empty path components
+        # trigger an "Insecure directory in $ENV{PATH}" error.
+        for my $path ("", ".", "/:", ":/", "/::/", ".:/", "/:.") {
+            local $ENV{PATH} = $path;
+            eval {`$echo 1`};
+            ok($@ =~ /Insecure directory in \$ENV\{PATH\}/,
+                "path '$path' is insecure as expected")
+                or diag "$@";
+        }
+
 	# tainted $TERM is unsafe only if it contains metachars
 	local $ENV{TERM};
 	$ENV{TERM} = 'e=mc2';
@@ -2440,6 +2453,7 @@ EOF
 	my $desc = "tainted value returned from " . shift(@descriptions);
 
 	my $res = do {
+	    no warnings 'deprecated';
 	    given ($_) {
 		when ('x') { $letter }
 		when ('y') { goto leavegiven }
@@ -2469,7 +2483,7 @@ EOF
 # Tainted values with smartmatch
 # [perl #93590] S_do_smartmatch stealing its own string buffers
 {
-no warnings 'experimental::smartmatch';
+no warnings 'deprecated';
 ok "M$TAINT" ~~ ['m', 'M'], '$tainted ~~ ["whatever", "match"]';
 ok !("M$TAINT" ~~ ['m', undef]), '$tainted ~~ ["whatever", undef]';
 }
Index: gnu/usr.bin/perl/t/op/tie.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/tie.t,v
diff -u -p -a -u -p -r1.18 tie.t
--- gnu/usr.bin/perl/t/op/tie.t	15 Feb 2023 01:36:37 -0000	1.18
+++ gnu/usr.bin/perl/t/op/tie.t	21 Feb 2024 15:47:03 -0000
@@ -731,10 +731,10 @@ $foo{'exit'};
 print "overshot main\n"; # shouldn't reach here
 
 EXPECT
-eval: s0=EVAL-BD-BS-E1-S1-E2-S2-S2-S2-S2-S2-S2-S2-S2-S2-S2-R
-eval: s1=EVAL-BD-BS-E1-S1-E2-S2-S2-S2-S2-S2-S2-S2-S2-S2-S2-R
-eval: s2=EVAL-BD-BS-E1-S1-E2-S2-S2-S2-S2-S2-S2-S2-S2-S2-S2-R
-eval: s3=EVAL-BD-BS-E1-S1-E2-S2-S2-S2-S2-S2-S2-S2-S2-S2-S2-R
+eval: s0=EVAL-BD-BS-E1-S1-E2-S2-R
+eval: s1=EVAL-BD-BS-E1-S1-E2-S2-R
+eval: s2=EVAL-BD-BS-E1-S1-E2-S2-R
+eval: s3=EVAL-BD-BS-E1-S1-E2-S2-R
 require: s0=REQUIRE-0-ERQ-ENDRQ-1-ERQ-ENDRQ-2-ERQ-ENDRQ-3-ERQ-ENDRQ-R
 require: s1=REQUIRE-0-RQ
 require: s2=REQUIRE-0-ERQ-ENDRQ-1-ERQ-ENDRQ-2-ERQ-ENDRQ-3-ERQ-ENDRQ-R
Index: gnu/usr.bin/perl/t/op/tie_fetch_count.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/tie_fetch_count.t,v
diff -u -p -a -u -p -r1.3 tie_fetch_count.t
--- gnu/usr.bin/perl/t/op/tie_fetch_count.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/tie_fetch_count.t	21 Feb 2024 15:47:03 -0000
@@ -165,7 +165,7 @@ $_ = "foo";
 $dummy  =  $var =~ m/ / ; check_count 'm//';
 $dummy  =  $var =~ s/ //; check_count 's///';
 {
-    no warnings 'experimental::smartmatch';
+    no warnings 'deprecated';
     $dummy  =  $var ~~    1 ; check_count '~~';
 }
 $dummy  =  $var =~ y/ //; check_count 'y///';
Index: gnu/usr.bin/perl/t/op/try.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/try.t,v
diff -u -p -a -u -p -r1.1.1.1 try.t
--- gnu/usr.bin/perl/t/op/try.t	15 Feb 2023 01:33:02 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/op/try.t	21 Feb 2024 15:47:03 -0000
@@ -326,30 +326,13 @@ no warnings 'experimental::try';
     ok($finally_invoked, 'finally block still invoked for side-effects');
 }
 
-# Complaints about forbidden control flow talk about "finally" blocks, not "defer"
+# Nicer compiletime errors
 {
     my $e;
 
-    $e = defined eval {
-        try {} catch ($e) {} finally { return "123" }
-        1;
-    } ? undef : $@;
-    like($e, qr/^Can't "return" out of a "finally" block /,
-        'Cannot return out of finally block');
-
-    $e = defined eval {
-        try {} catch ($e) {} finally { goto HERE; }
-        HERE: 1;
-    } ? undef : $@;
-    like($e, qr/^Can't "goto" out of a "finally" block /,
-        'Cannot goto out of finally block');
-
-    $e = defined eval {
-        LOOP: { try {} catch ($e) {} finally { last LOOP; } }
-        1;
-    } ? undef : $@;
-    like($e, qr/^Can't "last" out of a "finally" block /,
-        'Cannot last out of finally block');
+    $e = defined eval 'try { A() } catch { B() }; 1;' ? undef : $@;
+    like($e, qr/^catch block requires a \(VAR\) at /,
+        'Parse error for catch without (VAR)');
 }
 
 done_testing;
Index: gnu/usr.bin/perl/t/op/undef.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/undef.t,v
diff -u -p -a -u -p -r1.12 undef.t
--- gnu/usr.bin/perl/t/op/undef.t	13 Feb 2019 21:15:31 -0000	1.12
+++ gnu/usr.bin/perl/t/op/undef.t	21 Feb 2024 15:47:03 -0000
@@ -10,7 +10,7 @@ use strict;
 
 my (@ary, %ary, %hash);
 
-plan 74;
+plan 88;
 
 ok !defined($a);
 
@@ -153,3 +153,58 @@ sub PVBM () { 'foo' }
 my $pvbm = PVBM;
 undef $pvbm;
 ok !defined $pvbm;
+
+# Prior to GH#20077 (Add OPpTARGET_MY optimization to OP_UNDEF), any PV
+# allocation was kept with "$x = undef" but freed with "undef $x". That
+# behaviour was carried over and is expected to still be present.
+# (I totally copied most of this block from other t/op/* files.)
+
+SKIP: {
+    skip_without_dynamic_extension("Devel::Peek", 2);
+
+    my $out = runperl(stderr => 1,
+                  progs => [ split /\n/, <<'EOS' ]);
+    require Devel::Peek;
+    my $f = q(x) x 40; $f = undef;
+    Devel::Peek::Dump($f);
+    undef $f;
+    Devel::Peek::Dump($f);
+EOS
+
+    my ($space, $first, $second) = split /SV =/, $out;
+    like($first, qr/\bPV = 0x[0-9a-f]+\b/, '$x = undef preserves PV allocation');
+    like($second, qr/\bPV = 0\b$/, 'undef $x frees PV allocation');
+}
+
+# Tests suggested for GH#20077 (Add OPpTARGET_MY optimization to OP_UNDEF)
+# (No failures were observed during development, these are just checking
+# that no failures are introduced down the line.)
+
+{
+    my $y= 1; my @x= ($y= undef);
+    is( defined($x[0]), "", 'lval undef assignment in list context');
+    is( defined($y)  , "", 'scalar undef assignment in list context');
+
+    $y= 1; my $z; sub f{$z = shift} f($y=undef);
+    is( defined($y)  , "", 'undef assignment in sub args');
+    is( defined($z)  , "", 'undef assignment reaches @_');
+
+    ($y,$z)=(1,2); sub f{} f(($y=undef),$z);
+    is( defined($y)  , "", 'undef assignment reaches @_');
+    is( $z, 2, 'undef adjacent argument is unchanged');
+}
+
+{
+    my $h= { baz => 1 }; my @k= keys %{($h=undef)||{}};
+    is( defined($h)  , "", 'scalar undef assignment in keys');
+    is( scalar @k, 0, 'undef assignment dor anonhash');
+
+    my $y= 1; my @x= \($y= undef);
+    is( defined($y)  , "", 'scalar undef assignment before reference');
+    is( scalar @x, 1, 'assignment of one element to array');
+    is( defined($x[0]->$*), "", 'assignment of undef element to array');
+}
+
+# GH#20336 - "my $x = undef" pushed &PL_sv_undef onto the stack, but
+#            should be pushing $x (i.e. a mutable copy of &PL_sv_undef)
+is( ++(my $x = undef), 1, '"my $x = undef" pushes $x onto the stack' );
Index: gnu/usr.bin/perl/t/op/vec.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/op/vec.t,v
diff -u -p -a -u -p -r1.15 vec.t
--- gnu/usr.bin/perl/t/op/vec.t	1 Mar 2021 23:20:01 -0000	1.15
+++ gnu/usr.bin/perl/t/op/vec.t	21 Feb 2024 15:47:03 -0000
@@ -6,12 +6,15 @@ BEGIN {
     set_up_inc('../lib');
 }
 
+use warnings;
+use strict;
 use Config;
 
 plan(tests => 78);
 
 my $exception_134139 = "Use of strings with code points over 0xFF as arguments to vec is forbidden";
 
+my $foo;
 is(vec($foo,0,1), 0);
 is(length($foo), undef);
 vec($foo,0,1) = 1;
@@ -29,11 +32,14 @@ is(vec($foo,1,8), 0xf1);
 is((unpack('C',substr($foo,1,1)) & 255), 0xf1);
 is(vec($foo,2,4), 1);;
 is(vec($foo,3,4), 15);
+
+my $Vec;
 vec($Vec, 0, 32) = 0xbaddacab;
 is($Vec, "\xba\xdd\xac\xab");
 is(vec($Vec, 0, 32), 3135089835);
 
 # ensure vec() handles numericalness correctly
+my ($bar, $baz);
 $foo = $bar = $baz = 0;
 vec($foo = 0,0,1) = 1;
 vec($bar = 0,1,1) = 1;
@@ -44,7 +50,7 @@ ok("$foo $bar $baz" eq "1 2 3");
 
 # error cases
 
-$x = eval { vec $foo, 0, 3 };
+my $x = eval { vec $foo, 0, 3 };
 like($@, qr/^Illegal number of bits in vec/);
 $@ = undef;
 $x = eval { vec $foo, 0, 0 };
@@ -67,7 +73,7 @@ is(vec($x, 0, 8), 255);
 $@ = undef;
 {
     local $@;
-    eval { vec($foo, 1, 8) };
+    eval { my $foo = vec($foo, 1, 8) };
     like($@, qr/$exception_134139/,
         "Caught exception: code point over 0xFF used as argument to vec");
     $@ = undef;
@@ -193,6 +199,7 @@ like($@, qr/^Modification of a read-only
         my $bytes = (1 << $power);
         my $biglog2 = $Config{sizesize} * 8 - $power;
         for my $i (0..1) {
+            no warnings 'portable';
             my $offset = (1 << $biglog2) - $i;
             $x = vec($s, $offset, $bytes*8);
             is($x, 0, "large offset: bytes=$bytes biglog2=$biglog2 i=$i: rval");
@@ -210,6 +217,7 @@ like($@, qr/^Modification of a read-only
     my $s = "\x01\x02\x03\x04\x05\x06\x07";
     my $s0 = $s . ("\0" x 8);
 
+            no warnings 'portable';
     for my $bytes (1, 2, 4, 8) {
         for my $offset (0..$bytes) {
             if ($Config{ivsize} < $bytes) {
@@ -236,7 +244,7 @@ like($@, qr/^Modification of a read-only
     like($@, qr/Negative offset to vec in lvalue context/, "RT131083 lval -1");
 
     $off = ~0;
-    my $v = RT131083(0, vec($s, $off, 8));
+    $v = RT131083(0, vec($s, $off, 8));
     is($v, 0, "RT131083 rval ~0");
     $v = eval { RT131083(1, vec($s, $off, 8)); };
     like($@, qr/Out of memory!/, "RT131083 lval ~0");
@@ -247,7 +255,7 @@ like($@, qr/^Modification of a read-only
 
     local $@;
     my $foo = "\x{100}" . "\xff\xfe";
-    eval { vec($foo, 1, 8) };
+    eval { my $bar = vec($foo, 1, 8) };
     like($@, qr/$exception_134139/,
         "RT 134139: Use of strings with code points over 0xFF as arguments to 'vec' is now forbidden");
 }
Index: gnu/usr.bin/perl/t/op/hook/require.t
===================================================================
RCS file: gnu/usr.bin/perl/t/op/hook/require.t
diff -N gnu/usr.bin/perl/t/op/hook/require.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/op/hook/require.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,215 @@
+#!perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc( qw(../lib) );
+}
+
+use strict;
+use warnings;
+
+plan(tests => 14);
+
+{
+    fresh_perl_like(
+        '${^HOOK}{require__before} = "x";',
+        qr!\$\{\^HOOK\}\{require__before\} may only be a CODE reference or undef!,
+        { },
+        '%{^HOOK} forbids non code refs (string)');
+}
+{
+    fresh_perl_like(
+        '${^HOOK}{require__before} = [];',
+        qr!\$\{\^HOOK\}\{require__before\} may only be a CODE reference or undef!,
+        { },
+        '%{^HOOK} forbids non code refs (array)');
+}
+{
+    fresh_perl_like(
+        '${^HOOK}{require__before} = sub { die "Not allowed to load $_[0]" }; require Frobnitz;',
+        qr!Not allowed to load Frobnitz\.pm!,
+        { },
+        '${^HOOK}{require__before} exceptions stop require');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '${^HOOK}{require__before} = '.
+        '  sub { my ($name) = @_; warn "before $name"; ' .
+        '       return sub { warn "after $name" } }; ' .
+        'require Apack;',
+        <<'EOF_WANT',
+before Apack.pm at - line 1.
+before Bpack.pm at - line 1.
+before Cpack.pm at - line 1.
+after Cpack.pm at - line 1.
+after Bpack.pm at - line 1.
+after Apack.pm at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__before} with post action works as expected with t/lib/caller/Apack');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '${^HOOK}{require__before} = '.
+        '  sub { $_[0] = "Apack.pm" if $_[0] eq "Cycle.pm";'.
+        '        my ($name) = @_; warn "before $name"; ' .
+        '        return sub { warn "after $name" } }; ' .
+        'require Cycle;',
+        <<'EOF_WANT',
+before Apack.pm at - line 1.
+before Bpack.pm at - line 1.
+before Cpack.pm at - line 1.
+after Cpack.pm at - line 1.
+after Bpack.pm at - line 1.
+after Apack.pm at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__before} with filename rewrite works as expected (Cycle.pm -> Apack.pm)');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '${^HOOK}{require__before} = '.
+        '  sub { my ($name) = @_; my $n = ++$::counter; warn "before $name ($n)"; ' .
+        '       return sub { warn "after $name ($n)" } }; ' .
+        'require Cycle;',
+        <<'EOF_WANT',
+before Cycle.pm (1) at - line 1.
+before Bicycle.pm (2) at - line 1.
+before Tricycle.pm (3) at - line 1.
+before Cycle.pm (4) at - line 1.
+after Cycle.pm (4) at - line 1.
+after Tricycle.pm (3) at - line 1.
+after Bicycle.pm (2) at - line 1.
+after Cycle.pm (1) at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__before} with post action with state work as expected with t/lib/caller/Cycle');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; my @seen;'.
+        '${^HOOK}{require__before} = '.
+        '  sub { die "Cycle detected: @seen $_[0]\n" if grep $_ eq $_[0], @seen; push @seen,$_[0]; ' .
+        '       return sub { pop @seen } }; ' .
+        'require Cycle;',
+        <<'EOF_WANT',
+Cycle detected: Cycle.pm Bicycle.pm Tricycle.pm Cycle.pm
+Compilation failed in require at lib/caller/Bicycle.pm line 1.
+Compilation failed in require at lib/caller/Cycle.pm line 1.
+Compilation failed in require at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__before} with post action with state work as expected with t/lib/caller/Cycle');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '${^HOOK}{require__before} = '.
+        '  sub { my ($before_name) = @_; warn "before $before_name"; ' .
+        '       return sub { my ($after_name) = @_; warn "after $after_name" } }; ' .
+        'require Apack;',
+        <<'EOF_WANT',
+before Apack.pm at - line 1.
+before Bpack.pm at - line 1.
+before Cpack.pm at - line 1.
+after Cpack.pm at - line 1.
+after Bpack.pm at - line 1.
+after Apack.pm at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__before} with post action and name arg works as expected');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '${^HOOK}{require__before} = '.
+        '  sub { my ($name) = @_; warn "before $name" };' .
+        'require Apack;',
+        <<'EOF_WANT',
+before Apack.pm at - line 1.
+before Bpack.pm at - line 1.
+before Cpack.pm at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__before} with no post action works as expected with t/lib/caller/Apack');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '${^HOOK}{require__after} = '.
+        '  sub { my ($name) = @_; warn "after $name" };' .
+        'require Apack;',
+        <<'EOF_WANT',
+after Cpack.pm at - line 1.
+after Bpack.pm at - line 1.
+after Apack.pm at - line 1.
+EOF_WANT
+        { },
+        '${^HOOK}{require__after} works as expected with t/lib/caller/Apack');
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '%{^HOOK} = ( require__before => sub { print "before: $_[0]\n" },
+                      require__after => sub { print "after: $_[0]\n" } );
+         { local %{^HOOK}; require Apack; }
+         print "done\n";',
+         "done\n",
+         { },
+         'local %{^HOOK} works to clear hooks.'
+    );
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '%{^HOOK} = ( require__before => sub { print "before: $_[0]\n" },
+                      require__after => sub { print "after: $_[0]\n" } );
+         { local %{^HOOK}; require Cycle; }
+         require Apack;',
+        <<'EOF_WANT',
+before: Apack.pm
+before: Bpack.pm
+before: Cpack.pm
+after: Cpack.pm
+after: Bpack.pm
+after: Apack.pm
+EOF_WANT
+         { },
+         'local %{^HOOK} works to clear and restore hooks.'
+    );
+}
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '%{^HOOK} = ( require__before => sub { print "before: $_[0]\n" } );
+         %{^HOOK} = ( require__after  => sub { print "after: $_[0]\n" } );
+         require Apack;',
+        <<'EOF_WANT',
+after: Cpack.pm
+after: Bpack.pm
+after: Apack.pm
+EOF_WANT
+         { },
+         '%{^HOOK} = (...); works as expected (part 1)'
+    );
+}
+
+{
+    fresh_perl_is(
+        'use lib "./lib/caller"; '.
+        '%{^HOOK} = ( require__after  => sub { print "after: $_[0]\n" } );
+         %{^HOOK} = ( require__before => sub { print "before: $_[0]\n" } );
+         require Apack;',
+        <<'EOF_WANT',
+before: Apack.pm
+before: Bpack.pm
+before: Cpack.pm
+EOF_WANT
+         { },
+         '%{^HOOK} = (...); works as expected (part 2)'
+    );
+}
Index: gnu/usr.bin/perl/t/perf/benchmarks
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/perf/benchmarks,v
diff -u -p -a -u -p -r1.4 benchmarks
--- gnu/usr.bin/perl/t/perf/benchmarks	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/t/perf/benchmarks	21 Feb 2024 15:47:03 -0000
@@ -1350,6 +1350,47 @@
 
     # scalar assign, OP_SASSIGN
    
+    'expr::sassign::undef_lex' => {
+        setup   => 'my $x',
+        code    => '$x = undef',
+    },
+    'expr::sassign::undef_lex_direc' => {
+        setup   => 'my $x',
+        code    => 'undef $x',
+    },
+    'expr::sassign::undef_my_lex' => {
+        setup   => '',
+        code    => 'my $x = undef',
+    },
+    'expr::sassign::undef_my_lex_direc' => {
+        setup   => '',
+        code    => 'undef my $x',
+    },
+
+    'expr::sassign::anonlist' => {
+        setup   => '',
+        code => '$x = []'
+    },
+    'expr::sassign::anonlist_lex' => {
+        setup   => 'my $x',
+        code => '$x = []'
+    },
+    'expr::sassign::my_anonlist_lex' => {
+        setup   => '',
+        code => 'my $x = []'
+    },
+    'expr::sassign::anonhash' => {
+        setup   => '',
+        code => '$x = {}'
+    },
+    'expr::sassign::anonhash_lex' => {
+        setup   => 'my $x',
+        code => '$x = {}'
+    },
+    'expr::sassign::my_anonhash_lex' => {
+        setup   => '',
+        code => 'my $x = {}'
+    },
 
     'expr::sassign::my_conststr' => {
         setup   => '',
@@ -1386,6 +1427,26 @@
         code    => '$r = []; $r = $r1;',
     },
 
+    'expr::sassign::aelemfast_lex_assign' => {
+        desc    => 'lexical $x[0] = 1',
+        setup   => 'my @x',
+        code    => '$x[0] = 1',
+    },
+    'expr::sassign::aelemfast_lex_assign_ref' => {
+        desc    => 'lexical $x[0] = []',
+        setup   => 'my @x',
+        code    => '$x[0] = []',
+    },
+    'expr::sassign::aelemfast_lex_assign_deref' => {
+        desc    => 'lexical $x[0][1]',
+        setup   => 'my @x = ([1,2])',
+        code    => '$x[0][1] = 1',
+    },
+
+    'expr::sassign::bless_lex' => {
+        setup   => 'my $x',
+        code    => '$x = bless {}, "X"'
+    },
 
     'func::grep::bool0' => {
         desc    => 'grep returning 0 items in boolean context',
Index: gnu/usr.bin/perl/t/perf/opcount.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/perf/opcount.t,v
diff -u -p -a -u -p -r1.4 opcount.t
--- gnu/usr.bin/perl/t/perf/opcount.t	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/t/perf/opcount.t	21 Feb 2024 15:47:03 -0000
@@ -712,8 +712,8 @@ test_opcount(0, "builtin::is_bool is rep
                 {
                     entersub => 0,
                     is_bool  => 1,
-                    padsv    => 3, # OA_TARGLEX applies so only 3, not 4
-                    sassign  => 0,
+                    padsv    => 3,
+                    padsv_store  => 1,
                 });
 
 test_opcount(0, "builtin::is_bool gets constant-folded",
@@ -779,6 +779,237 @@ test_opcount(0, "builtin::floor is repla
                 {
                     entersub => 0,
                     floor    => 1,
+                });
+
+test_opcount(0, "builtin::is_tainted is replaced with direct opcode",
+                sub { builtin::is_tainted($0); },
+                {
+                    entersub   => 0,
+                    is_tainted => 1,
+                });
+
+# sassign + padsv combinations are replaced by padsv_store
+test_opcount(0, "sassign + padsv replaced by padsv_store",
+                sub { my $y; my $z = $y = 3; },
+                {
+                    padsv        => 1,
+                    padsv_store  => 2,
+                });
+
+# OPpTARGET_MY optimizations on undef
+test_opcount(0, "undef + padsv (undef my \$x) is reduced to undef",
+                sub { undef my $x },
+                {
+                    undef       => 1,
+                    padsv       => 0,
+                    padsv_store => 0,
+                    sassign     => 0,
+                });
+test_opcount(0, "undef + padsv + sassign (my \$x = undef) is reduced to undef",
+                sub { my $x = undef },
+                {
+                    undef       => 1,
+                    padsv       => 0,
+                    padsv_store => 0,
+                    sassign     => 0,
+                });
+test_opcount(0, "undef + padsv (undef \$x) is reduced to undef",
+                sub { my $x; undef $x },
+                {
+                    undef       => 1,
+                    padsv       => 1,
+                    padsv_store => 0,
+                    sassign     => 0,
+                });
+test_opcount(0, "undef + padsv + sassign (\$x = undef) is reduced to undef",
+                sub { my $x; $x = undef },
+                {
+                    undef       => 1,
+                    padsv       => 1,
+                    padsv_store => 0,
+                    sassign     => 0,
+                });
+# Additional test cases requested by demerphq
+test_opcount(0, 'my $y= 1; my @x= ($y= undef);',
+                sub { my $y= 1; my @x= ($y= undef); },
+                {
+                    undef       => 1,
+                    aassign     => 1,
+                    padav       => 1,
+                    padsv       => 0,
+                    padsv_store => 1,
+                    sassign     => 0,
+                });
+
+test_opcount(0, 'my $x= 1; sub f{} f($x=undef);',
+                sub { my $x= 1; sub f{} f($x=undef); },
+                {
+                    undef       => 1,
+                    gv          => 1,
+                    padsv       => 0,
+                    padsv_store => 1,
+                    sassign     => 0,
+                });
+
+test_opcount(0, 'my ($x,$p)=(1,2); sub g{} g(($x=undef),$p);',
+                sub { my ($x,$p)=(1,2); sub g{} g(($x=undef),$p); },
+                {
+                    undef       => 1,
+                    aassign     => 1,
+                    gv          => 1,
+                    padrange    => 1,
+                    padsv       => 3,
+                    padsv_store => 0,
+                    sassign     => 0,
+                });
+
+test_opcount(0, 'my $h= {}; my @k= keys %{($h=undef)||{}};',
+                sub { my $h= {}; my @k= keys %{($h=undef)||{}}; },
+                {
+                    undef       => 1,
+                    aassign     => 1,
+                    emptyavhv   => 2,
+                    padav       => 1,
+                    padsv       => 0,
+                    padsv_store => 0,
+                    sassign     => 0,
+                });
+
+test_opcount(0, 'my $y= 1; my @x= \($y= undef);',
+                sub { my $y= 1; my @x= \($y= undef); },
+                {
+                    undef       => 1,
+                    aassign     => 1,
+                    padav       => 1,
+                    padsv       => 0,
+                    padsv_store => 1,
+                    sassign     => 0,
+                    srefgen     => 1,
+                });
+
+# aelemfast_lex + sassign are replaced by a combined OP
+test_opcount(0, "simple aelemfast_lex + sassign replacement",
+                sub { my @x; $x[0] = "foo" },
+                {
+                    aelemfast_lex      => 0,
+                    aelemfastlex_store => 1,
+                    padav              => 1,
+                    sassign            => 0,
+                });
+
+# aelemfast_lex + sassign are not replaced by a combined OP
+# when key <0 (not handled, to keep the pp_ function simple
+test_opcount(0, "aelemfast_lex + sassign replacement with neg key",
+                sub { my @x = (1,2); $x[-1] = 7 },
+                {
+                    aelemfast_lex      => 0,
+                    aelemfastlex_store => 1,
+                    padav              => 1,
+                    sassign            => 0,
+                });
+
+# aelemfast_lex + sassign optimization does not disrupt multideref
+test_opcount(0, "no aelemfast_lex + sassign replacement with multideref",
+                sub { my @x = ([1,2]); $x[0][1] = 1; },
+                {
+                    aelemfast_lex      => 0,
+                    aelemfastlex_store => 0,
+                    multideref         => 1,
+                    padav              => 1,
+                    sassign            => 1,
+                });
+
+# emptyavhv optimizations
+
+test_opcount(0, "Empty anonlist",
+                sub { [] },
+                {
+                    anonlist  => 0,
+                    emptyavhv => 1,
+                    sassign   => 0,
+                });
+test_opcount(0, "Empty anonlist with global assignment",
+                sub { our $x; $x = [] },
+                {
+                    anonlist  => 0,
+                    emptyavhv => 1,
+                    gvsv      => 1,
+                    pushmark  => 0,
+                    sassign   => 1,
+                });
+test_opcount(0, "Empty anonlist and lexical assignment",
+                sub { my $x; $x = [] },
+                {
+                    anonlist  => 0,
+                    emptyavhv => 1,
+                    padsv     => 1,
+                    pushmark  => 0,
+                    sassign   => 0,
+                });
+test_opcount(0, "Empty anonlist and direct lexical assignment",
+                sub { my $x = [] },
+                {
+                    anonlist  => 0,
+                    emptyavhv => 1,
+                    padsv     => 0,
+                    pushmark  => 0,
+                    sassign   => 0,
+                });
+test_opcount(0, "Empty anonlist ref and direct lexical assignment",
+                sub { my $x = \[] },
+                {
+                    anonlist    => 0,
+                    emptyavhv   => 1,
+                    padsv       => 0,
+                    padsv_store => 1,
+                    pushmark    => 0,
+                    sassign     => 0,
+                    srefgen     => 1,
+                });
+test_opcount(0, "Empty anonhash",
+                sub { {} },
+                {
+                    anonhash  => 0,
+                    emptyavhv => 1,
+                    sassign   => 0,
+                });
+test_opcount(0, "Empty anonhash with global assignment",
+                sub { our $x; $x = {} },
+                {
+                    anonhash  => 0,
+                    emptyavhv => 1,
+                    gvsv      => 1,
+                    pushmark  => 0,
+                    sassign   => 1,
+                });
+test_opcount(0, "Empty anonhash and lexical assignment",
+                sub { my $x; $x = {} },
+                {
+                    anonhash  => 0,
+                    emptyavhv => 1,
+                    padsv     => 1,
+                    pushmark  => 0,
+                    sassign   => 0,
+                });
+test_opcount(0, "Empty anonhash and direct lexical assignment",
+                sub { my $x = {} },
+                {
+                    anonhash  => 0,
+                    emptyavhv => 1,
+                    padsv     => 0,
+                    pushmark  => 0,
+                    sassign   => 0,
+                });
+test_opcount(0, "Empty anonhash ref and direct lexical assignment",
+                sub { my $x = \{} },
+                {
+                    anonhash    => 0,
+                    emptyavhv   => 1,
+                    padsv       => 0,
+                    padsv_store => 1,
+                    pushmark    => 0,
+                    sassign     => 0,
+                    srefgen     => 1,
                 });
 
 done_testing();
Index: gnu/usr.bin/perl/t/porting/authors.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/authors.t,v
diff -u -p -a -u -p -r1.1.1.5 authors.t
--- gnu/usr.bin/perl/t/porting/authors.t	15 Feb 2023 01:33:04 -0000	1.1.1.5
+++ gnu/usr.bin/perl/t/porting/authors.t	21 Feb 2024 15:47:03 -0000
@@ -9,13 +9,16 @@ BEGIN {
 
 use TestInit qw(T);    # T is chdir to the top level
 use strict;
-use File::Spec;
 
-find_git_or_skip('all');
+my $source_dir = find_git_or_skip('all');
 skip_all(
     "This distro may have modified some files in cpan/. Skipping validation.")
   if $ENV{'PERL_BUILD_PACKAGING'};
 
+skip_all(
+    "This is a shallow clone, this test requires history.")
+  if (-e "$source_dir/.git/shallow");
+
 my $revision_range = ''; # could use 'v5.22.0..' as default, no reason to recheck all previous commits...
 if ( $ENV{TRAVIS} && defined $ENV{TRAVIS_COMMIT_RANGE} ) {
 	# travisci is adding a merge commit when smoking a pull request
@@ -30,8 +33,7 @@ elsif( $ENV{GITHUB_ACTIONS} && length $E
     # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/using-environment-variables
 
     # we should be on a merge commit, but double check
-    my $null = File::Spec->devnull;
-    my $branch_head = `git rev-parse "HEAD^2" 2>$null`;
+    my $branch_head = `git rev-parse -q --verify "HEAD^2"`;
     chomp $branch_head;
 
     # gives the history of the branch being merged, excluding what it is
@@ -40,7 +42,5 @@ elsif( $ENV{GITHUB_ACTIONS} && length $E
         if $branch_head;
 }
 
-# This is the subset of "pretty=fuller" that checkAUTHORS.pl actually needs:
-print qx{git log --pretty=format:"Author: %an <%ae>" $revision_range | $^X Porting/checkAUTHORS.pl --tap -};
-
+exec("$^X Porting/updateAUTHORS.pl --validate $revision_range");
 # EOF
Index: gnu/usr.bin/perl/t/porting/bincompat.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/bincompat.t,v
diff -u -p -a -u -p -r1.2 bincompat.t
--- gnu/usr.bin/perl/t/porting/bincompat.t	5 Feb 2017 00:32:21 -0000	1.2
+++ gnu/usr.bin/perl/t/porting/bincompat.t	21 Feb 2024 15:47:03 -0000
@@ -1,19 +1,58 @@
 #!./perl -w
+BEGIN {
+    chdir ".." if -e "./test.pl";
+    push @INC, "lib";
+}
 use strict;
-require './test.pl';
+require './t/test.pl';
 skip_all("Sorting order differs under EBCDIC") if $::IS_EBCDIC || $::IS_EBCDIC;
 
 use Config;
 
-plan(2);
-
-# Defiantly a white box test...
+my %legacy_different = (
+    # define                       # string
+    'VMS_WE_ARE_CASE_SENSITIVE' => 'VMS_SYMBOL_CASE_AS_IS',
+    'WIN32_NO_REGISTRY'         => 'USE_NO_REGISTRY',
+);
 
 # As we need to call it direct, we'll take advantage of its result ordering:
 my @to_check = qw(bincompat_options non_bincompat_options);
+my @file = qw(perl.h perl.c);
+my @var = qw(PL_bincompat_options non_bincompat_options);
 my @V = map {s/^ //r} Internals::V();
 
 while (my ($index, $sub) = each @to_check) {
     my $got = join ' ', sort &{Config->can($sub)}();
     is($got, $V[$index], "C source code has $sub in sorted order");
+    open my $fh, "<", $file[$index]
+        or die "Failed to open '$file[$index]': $!";
+    my @strs;
+    my @define;
+    while (<$fh>) {
+        if (/$var[$index]\[\]\s*=/ .. /^\s*"";/) {
+            if (/ifdef\s+(\w+)/) {
+                my $name = $1;
+                # ignore PERL_HASH_ vars as they are handled differently
+                # from the rest.
+                $name=~/PERL_HASH_/ and next;
+                push @define, $name;
+            }
+            elsif (/" ([^"]+)"/) {
+                my $name = $1;
+                # ignore PERL_HASH_ vars as they are handled differently
+                # from the rest.
+                $name=~/PERL_HASH_/ and next;
+                push @strs, $name;
+            }
+        }
+    }
+    foreach my $j (0 .. $#strs) {
+        my $want = $legacy_different{$define[$j]} || $define[$j];
+        my $str = $strs[$j];
+        is($strs[$j],$want, "String and define $j are the same ($strs[$j]) for $var[$index] in $file[$index]");
+    }
+    my @sorted_strs = sort @strs;
+    is("@strs","@sorted_strs", "Strings are sorted for $var[$index] in $file[$index]");
 }
+
+done_testing();
Index: gnu/usr.bin/perl/t/porting/copyright.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/copyright.t,v
diff -u -p -a -u -p -r1.1.1.2 copyright.t
--- gnu/usr.bin/perl/t/porting/copyright.t	13 Feb 2019 21:11:42 -0000	1.1.1.2
+++ gnu/usr.bin/perl/t/porting/copyright.t	21 Feb 2024 15:47:03 -0000
@@ -30,6 +30,14 @@ my ($opt) = @ARGV;
 
 my $readme_year = readme_year();
 my $v_year = v_year();
+my $gh_readme_year;
+# git on windows renders symbolic links as a file containing
+# the file linked to
+if (-e "../.github/README.md" && -s "../.github/README.md" > 80)
+{
+  $gh_readme_year = readme_year(".github/README.md");
+}
+
 
 # Check that both copyright dates are up-to-date, but only if requested, so
 # that tests still pass for people intentionally working on older versions:
@@ -38,12 +46,22 @@ if ($opt eq '--now')
   my $current_year = (gmtime)[5] + 1900;
   is $v_year, $current_year, 'perl -v copyright includes current year';
   is $readme_year, $current_year, 'README copyright includes current year';
+  if ($gh_readme_year)
+  {
+    is ($gh_readme_year, $current_year,
+        '.github/README.md copyright includes current year');
+  }
 }
 
 # Otherwise simply check that the two copyright dates match each other:
 else
 {
   is $readme_year, $v_year, 'README and perl -v copyright dates match';
+  if ($gh_readme_year)
+  {
+    is ($gh_readme_year, $v_year,
+        '.github/README.md and perl -v copyright dates match');
+  }
 }
 
 done_testing;
@@ -52,15 +70,16 @@ done_testing;
 sub readme_year
 # returns the latest copyright year from the top-level README file
 {
+  my $file = shift || "README";
 
-  open my $readme, '<', '../README' or die "Opening README failed: $!";
+  open my $readme, '<', "../$file" or die "Opening $file failed: $!";
 
   # The copyright message is the first paragraph:
   local $/ = '';
   my $copyright_msg = <$readme>;
 
   my ($year) = $copyright_msg =~ /.*\b(\d{4,})/s
-      or die "Year not found in README copyright message '$copyright_msg'";
+      or die "Year not found in $file copyright message '$copyright_msg'";
 
   $year;
 }
Index: gnu/usr.bin/perl/t/porting/corelist.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/corelist.t,v
diff -u -p -a -u -p -r1.1.1.3 corelist.t
--- gnu/usr.bin/perl/t/porting/corelist.t	13 Feb 2019 21:11:42 -0000	1.1.1.3
+++ gnu/usr.bin/perl/t/porting/corelist.t	21 Feb 2024 15:47:03 -0000
@@ -1,7 +1,9 @@
 #!perl -w
 
 # Check that the current version of perl exists in Module-CoreList data
-
+BEGIN {
+    push @INC, "." if -e "TestInit.pm";
+}
 use TestInit qw(T);
 use strict;
 use Config;
Index: gnu/usr.bin/perl/t/porting/customized.dat
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/customized.dat,v
diff -u -p -a -u -p -r1.21 customized.dat
--- gnu/usr.bin/perl/t/porting/customized.dat	15 Feb 2023 01:38:23 -0000	1.21
+++ gnu/usr.bin/perl/t/porting/customized.dat	21 Feb 2024 15:47:03 -0000
@@ -1,50 +1,25 @@
 # Regenerate this file using:
 #     cd t
 #     ./perl -I../lib porting/customized.t --regen
-Digest::MD5 cpan/Digest-MD5/MD5.xs 3d56a25a9eaed20712d50223c19dd193444072bd
-Digest::MD5 cpan/Digest-MD5/t/files.t 889559c1419ab72f32a24160095018a3240e82ba
+AutoLoader cpan/AutoLoader/t/02AutoSplit.t bb90cda13b88599ad45de4b45799d5218afcb6d8
+Compress::Raw::Bzip2 cpan/Compress-Raw-Bzip2/Bzip2.xs 76ad65475e73a545d0e1513e3dfdc4033db3c7c0
+Compress::Raw::Zlib cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm 4198f92e2880d36d6cef4f1be216005b6738ada8
+Compress::Raw::Zlib cpan/Compress-Raw-Zlib/Zlib.xs 2ed95faab364703f6b93f7ffff6e0f2a2b2adedd
+Digest::MD5 cpan/Digest-MD5/MD5.pm cf2fd9d327f3e314e9e66bb6ecb7a62b4ec72767
+Digest::MD5 cpan/Digest-MD5/MD5.xs 288775759d20ddfb0a0cb02f2ea670afefe2ce6c
 ExtUtils::Constant cpan/ExtUtils-Constant/lib/ExtUtils/Constant/Base.pm 7560e1018f806db5689dee78728ccb8374aea741
 ExtUtils::Constant cpan/ExtUtils-Constant/t/Constant.t 165e9c7132b003fd192d32a737b0f51f9ba4999e
-Filter::Util::Call pod/perlfilter.pod 545265af2f45741a0e59eecdd0cfc0c9e490c1e8
+Filter::Util::Call pod/perlfilter.pod d1e217d0bc6083755b9017050b8724472c58275a
+IO::Socket::IP cpan/IO-Socket-IP/lib/IO/Socket/IP.pm a3390d0b3b617a0b810c75941bfc6e6d0be5b785
 Locale::Maketext::Simple cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm 57ed38905791a17c150210cd6f42ead22a7707b6
-Math::Complex cpan/Math-Complex/lib/Math/Complex.pm 66f28a17647e2de166909ca66e4ced26f8a0a62e
-Math::Complex cpan/Math-Complex/t/Complex.t 17039e03ee798539e770ea9a0d19a99364278306
-Math::Complex cpan/Math-Complex/t/Trig.t 508f8e27373c08228be13ca5d42b28812ab0e020
-Math::Complex cpan/Math-Complex/t/underbar.t 97e7b9615658eefc67a710d4b258349cc5bace63
-Memoize cpan/Memoize/Memoize.pm 902092ff91cdec9c7b4bd06202eb179e1ce26ca2
-Memoize cpan/Memoize/t/errors.t bcd0c02a4bc47dfda07a97d265d7210849871659
-Memoize cpan/Memoize/t/expmod_t.t a1c3d03fd3ec2e7c6c835f02316475756e1b16b7
-Memoize cpan/Memoize/t/speed.t 89fe8c8928f0164c9ed898b5a427dbbc814e9976
-Memoize cpan/Memoize/t/tie_gdbm.t d81c4f6208f6c925539b3878bff9a8ff1b73a37e
-Net::Ping dist/Net-Ping/t/000_load.t deff5dc2ca54dae28cb19d3631427db127279ac2
-Net::Ping dist/Net-Ping/t/001_new.t 7b24e05672e22edfe3e6b5cc0277f815efe557e5
-Net::Ping dist/Net-Ping/t/010_pingecho.t 218d7a9ee5b6d03ba2544210acaf6585f8dc5503
-Net::Ping dist/Net-Ping/t/450_service.t f6578680f2872d7fc9f24dd75388d55654761875
-Net::Ping dist/Net-Ping/t/500_ping_icmp.t 3eeb60181c01b85f876bd6658644548fdf2e24d4
-Net::Ping dist/Net-Ping/t/501_ping_icmpv6.t cd719bca662b054b676dd2ee6e0c73c7a5e50cf9
+MIME::Base64 cpan/MIME-Base64/Base64.xs ad617fe2d01932c35b92defa26d40aba601a95a8
+MIME::Base64 cpan/MIME-Base64/lib/MIME/Base64.pm 18e38d197c7c83f96b24f48bef514e93908e6a82
 Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm d97aa26b722e6e3120b19ee0d7cf9af04dfdfb7f
-Socket cpan/Socket/Socket.pm a993d3a80844b2c89a63d1f815d2e0ed0034a4f5
-Socket cpan/Socket/Socket.xs 146541e7deb5593f0469740a6e38bfd0b42c0329
 Test::Harness cpan/Test-Harness/t/harness.t 38b13cfc479d37d91c104b97dd364a74dfde0f2f
-version vutil.c 8f1e65848649b125b6e2d3a91d54f5e147d12e41
+Time::Piece cpan/Time-Piece/Piece.pm 8cec8b66183ceddb9bf2b6af35dcdd345bc9adfa
+Time::Piece cpan/Time-Piece/Piece.xs 543152540ee17788a638b2c5746b86c3d04401d1
 Win32API::File cpan/Win32API-File/File.pm 8fd212857f821cb26648878b96e57f13bf21b99e
 Win32API::File cpan/Win32API-File/File.xs beb870fed4490d2faa547b4a8576b8d64d1d27c5
-libnet cpan/libnet/lib/Net/Cmd.pm effaa3ba5c2ea320869d0c769aa206fb75d7dd89
-libnet cpan/libnet/lib/Net/Config.pm 0f60601c070988f06a89347df74350b2521f40f1
-libnet cpan/libnet/lib/Net/Domain.pm 9b4c8e8f5a5cc8ce112a3eb5d266baf951b50d50
-libnet cpan/libnet/lib/Net/FTP.pm 46580751a97ddf9fededd846dc16e6d90ecf1fa1
-libnet cpan/libnet/lib/Net/FTP/A.pm 0168df59404d9974b889fd8afb19b99c55f21fdc
-libnet cpan/libnet/lib/Net/FTP/dataconn.pm 8c0285111481d2919305bf2fd5d566d2a4dcccd6
-libnet cpan/libnet/lib/Net/FTP/E.pm ddac78c22e36fd320f2dfe361fac57c3494561c3
-libnet cpan/libnet/lib/Net/FTP/I.pm cf2d9df91339c5b10f343d652e8673e587f8403e
-libnet cpan/libnet/lib/Net/FTP/L.pm 34db024e515a0364d9e4dd7075643b9ce8704853
-libnet cpan/libnet/lib/Net/Netrc.pm e9d809813b976163fe5e0d94dbd2a8f2edac91dc
-libnet cpan/libnet/lib/Net/NNTP.pm 4349ac4c908e6dbcfb16ec77eaf1a9a00d7c6e57
-libnet cpan/libnet/lib/Net/POP3.pm 55a74121d7e6a122f63a12cec945777f6b8aa80b
-libnet cpan/libnet/lib/Net/SMTP.pm 33efbd55e75486fe8201f9c63cf3f0704310a7b6
-libnet cpan/libnet/lib/Net/Time.pm 3c86cd4d4db9ae207070d2e54f4d523b9ad58230
-podlators cpan/podlators/t/general/basic.t 603125aa84703f7bc2c4c838c42f95b26a72eb0a
-podlators cpan/podlators/t/man/empty.t c1c7eac7a3479a2f11fdbdd0914bc2af70489b72
-podlators cpan/podlators/t/man/no-encode.t 80eb9de201bdc0b7170d9cbde856dc32e37378a0
-podlators cpan/podlators/t/text/invalid.t 3d48179b7a0fd3cddb74c18e4f1cd6f66a0a7609
 version cpan/version/lib/version.pm a963b513cf812bd7f4d28b3422efd9904e70a34c
+version cpan/version/t/07locale.t b1cceee71544ce6b6c926d06656a52aabbfe8abf
+version vutil.c 8f1e65848649b125b6e2d3a91d54f5e147d12e41
Index: gnu/usr.bin/perl/t/porting/customized.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/customized.t,v
diff -u -p -a -u -p -r1.3 customized.t
--- gnu/usr.bin/perl/t/porting/customized.t	13 Feb 2019 21:15:32 -0000	1.3
+++ gnu/usr.bin/perl/t/porting/customized.t	21 Feb 2024 15:47:03 -0000
@@ -28,9 +28,12 @@ sub filter_customized {
     return @files
         unless my $customized = $Modules{$m}{CUSTOMIZED};
 
-    my ($pat) = map { qr/$_/ } join '|' => map {
-        ref $_ ? $_ : qr/\b\Q$_\E$/
-    } @{ $customized };
+    my ($pat) = map { qr/$_/ }
+        join ( '|' =>
+            map { ref $_ ? $_ : qr/\b\Q$_\E$/ } @{ $customized },
+            # https://github.com/Perl/perl5/issues/20228
+            qr/pod\/perlfilter\.pod/
+        );
 
     return grep { $_ =~ $pat } @files;
 }
Index: gnu/usr.bin/perl/t/porting/deprecation.t
===================================================================
RCS file: gnu/usr.bin/perl/t/porting/deprecation.t
diff -N gnu/usr.bin/perl/t/porting/deprecation.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/porting/deprecation.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,145 @@
+#!/usr/bin/perl
+
+BEGIN {
+  if (-f './TestInit.pm') {
+    @INC = '.';
+  } elsif (-f '../TestInit.pm') {
+    @INC = '..';
+  }
+}
+use TestInit qw(T); # T is chdir to the top level
+
+use warnings;
+use strict;
+use Config;
+use Data::Dumper;
+require './t/test.pl';
+
+plan("no_plan");
+
+# Test that all deprecations in regen/warnings.pl are mentioned in
+# pod/perldeprecation.pod and that there is sufficient time between them.
+
+my $pod_file = "./pod/perldeprecation.pod";
+my $warnings_file = "./regen/warnings.pl";
+
+do $warnings_file;
+our $WARNING_TREE;
+
+my $deprecated = $WARNING_TREE->{all}[1]{deprecated}[2];
+
+open my $fh, "<", $pod_file
+    or die "failed to open '$pod_file': $!";
+my $removed_in_version;
+my $subject;
+my %category_seen;
+my %subject_has_category;
+my $in_legacy;
+
+while (<$fh>) {
+    if (/^=head2 (?|Perl (5\.\d+)(?:\.\d+)?|(Unscheduled))/) { # ignore minor version
+        $removed_in_version = lc $1;
+        if ($removed_in_version eq "5.38") {
+            $in_legacy = 1;
+        }
+    }
+    elsif (/^=head3 (.*)/) {
+        my $new_subject = $1;
+        if (!$in_legacy and $subject) {
+            ok($subject_has_category{$subject},
+                "Subject '$subject' has a category specified");
+        }
+        $subject = $new_subject;
+    }
+    elsif (/^Category: "([::\w]+)"/) {
+        my $category = $1;
+        $category_seen{$category} = $removed_in_version;
+        $subject_has_category{$subject} = $category;
+        next if $removed_in_version eq "unscheduled";
+        my $tuple = $deprecated->{$category};
+        ok( $tuple, "Deprecated category '$category' ($subject) exists in $warnings_file")
+            or next;
+        my $added_in_version = $tuple->[0];
+        $added_in_version =~ s/(5\.\d{3})\d+/$1/;
+
+        my $diff = $removed_in_version - $added_in_version;
+        cmp_ok($diff, ">=", 0.004, # two production cycles
+            "Version change for '$category' ($subject) is sufficiently after deprecation date")
+    }
+}
+# make sure that all the deprecated categories have an entry of some sort
+foreach my $category (sort keys %$deprecated) {
+    ok($category_seen{$category},"Deprecated category '$category' is documented in $pod_file");
+}
+# make sure that there arent any new uses of WARN_DEPRECATED,
+# note that \< and \> are ERE expressions roughly equivalent to perl regex \b
+if (-e ".git") {
+    chomp(my @warn_deprecated = `git grep "\<WARN_DEPRECATED\>"`);
+    my %files;
+    foreach my $line (@warn_deprecated) {
+        my ($file, $text) = split /:/, $line, 2;
+        if ($file =~ m!^dist/Devel-PPPort! ||
+            $file eq "t/porting/diag.t" ||
+            ($file eq "warnings.h" && $text=~/^[=#]/)
+        ) {
+            next;
+        }
+        $files{$file}++;
+    }
+    is(0+keys %files, 0,
+        "There should not be any new files which mention WARN_DEPRECATED");
+}
+
+# Test that deprecation warnings are produced under "use warnings"
+# (set above)
+{
+    my $warning = "nada";
+    local $SIG{__WARN__} = sub { $warning = $_[0] };
+    my $count = 0;
+    while ($count<1) {
+        LABEL: $count++;
+        goto DONE if $count>1;
+    }
+    goto LABEL;
+    DONE:
+    like($warning,
+        qr/Use of "goto" to jump into a construct is deprecated/,
+        "Got expected deprecation warning");
+}
+# Test that we can silence deprecation warnings with "no warnings 'deprecated'"
+# as we used to.
+{
+    no warnings 'deprecated';
+    my $warning = "nada";
+    local $SIG{__WARN__} = sub { $warning = $_[0] };
+    my $count = 0;
+    while ($count<1) {
+        LABEL: $count++;
+        goto DONE if $count>1;
+    }
+    goto LABEL;
+    DONE:
+    like($warning, qr/nada/,
+        "no warnings 'deprecated'; silenced deprecation warning as expected");
+}
+
+# Test that we can silence a specific deprecation warnings with "no warnings 'deprecated::$subcategory'"
+# and that by doing so we don't silence any other deprecation warnings.
+{
+    no warnings 'deprecated::goto_construct';
+    my $warning = "nada";
+    local $SIG{__WARN__} = sub { $warning = $_[0] };
+    my $count = 0;
+    while ($count<1) {
+        LABEL: $count++;
+        goto DONE if $count>1;
+    }
+    goto LABEL;
+    DONE:
+    like($warning, qr/nada/,
+        "no warnings 'deprecated::goto_construct'; silenced deprecation warning as expected");
+    @INC = ();
+    do "regen.pl"; # this should produce a deprecation warning
+    like($warning, qr/is no longer in \@INC/,
+        "no warnings 'deprecated::goto_construct'; did not silence deprecated::dot_in_inc warnings");
+}
Index: gnu/usr.bin/perl/t/porting/diag.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/diag.t,v
diff -u -p -a -u -p -r1.6 diag.t
--- gnu/usr.bin/perl/t/porting/diag.t	15 Feb 2023 01:36:37 -0000	1.6
+++ gnu/usr.bin/perl/t/porting/diag.t	21 Feb 2024 15:47:03 -0000
@@ -1,14 +1,18 @@
 #!/usr/bin/perl
 
 BEGIN {
-  @INC = '..' if -f '../TestInit.pm';
+  if (-f './TestInit.pm') {
+    @INC = '.';
+  } elsif (-f '../TestInit.pm') {
+    @INC = '..';
+  }
 }
 use TestInit qw(T); # T is chdir to the top level
 
 use warnings;
 use strict;
 use Config;
-
+use Data::Dumper;
 require './t/test.pl';
 
 if ( $Config{usecrosscompile} ) {
@@ -31,15 +35,20 @@ require './regen/embed_lib.pl';
 # Look for functions that look like they could be diagnostic ones.
 my @functions;
 foreach (@{(setup_embed())[0]}) {
-  next if @$_ < 2;
-  next unless $_->[2]  =~ /warn|(?<!ov)err|(\b|_)die|croak/i;
+  my $embed= $_->{embed}
+    or next;
+  next unless $embed->{name}  =~ /warn|(?<!ov)err|(\b|_)die|croak|deprecate/i;
+  # Skip some known exceptions
+  next if $embed->{name} =~ /croak_kw_unless_class/;
   # The flag p means that this function may have a 'Perl_' prefix
   # The flag S means that this function may have a 'S_' prefix
-  push @functions, $_->[2];
-  push @functions, 'Perl_' . $_->[2] if $_->[0] =~ /p/;
-  push @functions, 'S_' . $_->[2] if $_->[0] =~ /S/;
+  push @functions, $embed->{name};
+  push @functions, 'Perl_' . $embed->{name} if $embed->{flags} =~ /p/;
+  push @functions, 'S_' . $embed->{name} if $embed->{flags} =~ /S/;
 };
 push @functions, 'Perl_mess';
+@functions = sort { length($b) <=> length($a) || $a cmp $b } @functions;
+push @functions, 'PERL_DIAG_(?<wrapper>\w+)';
 
 my $regcomp_fail_re = '\b(?:(?:Simple_)?v)?FAIL[2-4]?(?:utf8f)?\b';
 my $regcomp_re =
@@ -51,18 +60,27 @@ my $text_re = '"(?<text>(?:\\\\"|[^"]|"\
 my $source_msg_call_re = qr/$source_msg_re(?:_nocontext)? \s*
     \( (?: \s* Perl_form \( )? (?:aTHX_)? \s*
     (?:packWARN\d*\((?<category>.*?)\),)? \s*
+    (?:(?<category>WARN_DEPRECATED__\w+)\s*,(?:\s*(?<version_string>"[^"]+")\s*,)?)? \s*
     $text_re /x;
 my $bad_version_re = qr{BADVERSION\([^"]*$text_re};
    $regcomp_fail_re = qr/$regcomp_fail_re\([^"]*$text_re/;
 my $regcomp_call_re = qr/$regcomp_re.*?$text_re/;
 
 my %entries;
-
+my $data_start_line= 0;
 # Get the ignores that are compiled into this file
 my $reading_categorical_exceptions;
+# reset the DATA point to the top of the file, read until we find __DATA__
+# so that $. is "correct" for our purposes.
+seek DATA, 0, 0;
+while (<DATA>) {
+    /^__DATA__/ and last;
+}
 while (<DATA>) {
   chomp;
+  next if /^\s*#/ and !/\S/;
   $entries{$_}{todo} = 1;
+  $entries{$_}{todo_line}= $data_start_line + $.;
   $reading_categorical_exceptions and $entries{$_}{cattodo}=1;
   /__CATEGORIES__/ and ++$reading_categorical_exceptions;
 }
@@ -111,13 +129,16 @@ while (<$diagfh>) {
 
     if (exists $entries{$cur_entry} &&  $entries{$cur_entry}{todo}
                                     && !$entries{$cur_entry}{cattodo}) {
+        my $data_line= $entries{$cur_entry}{todo_line};
         TODO: {
-            local $::TODO = "Remove the TODO entry \"$cur_entry\" from DATA as it is already in $pod near line $.";
+            local $::TODO = "Remove the TODO entry \"$cur_entry\" from DATA "
+                          . "at $0 line $data_line as it is already in $pod near line $.";
             ok($cur_entry);
         }
     }
     # Make sure to init this here, so an actual entry in perldiag
     # overwrites one in DATA.
+    # diag("adding '$cur_entry'");
     $entries{$cur_entry}{todo} = 0;
     $entries{$cur_entry}{line_number} = $.;
   }
@@ -182,7 +203,9 @@ foreach my $cur_entry ( keys %entries) {
 # List from perlguts.pod "Formatted Printing of IVs, UVs, and NVs"
 # Convert from internal formats to ones that the readers will be familiar
 # with, while removing any format modifiers, such as precision, the
-# presence of which would just confuse the pod's explanation
+# presence of which would just confuse the pod's explanation.
+# Note that the 'S' formats get converted into \"%s\" as they inject
+# double quotes.
 my %specialformats = (IVdf => 'd',
 		      UVuf => 'd',
 		      UVof => 'o',
@@ -192,12 +215,21 @@ my %specialformats = (IVdf => 'd',
 		      NVff => 'f',
 		      NVgf => 'f',
 		      HEKf256=>'s',
+		      HEKf256_QUOTEDPREFIX => 'S',
 		      HEKf => 's',
+		      HEKf_QUOTEDPREFIX => 'S',
 		      UTF8f=> 's',
+		      UTF8f_QUOTEDPREFIX => 'S',
 		      SVf256=>'s',
 		      SVf32=> 's',
 		      SVf  => 's',
-		      PNf  => 's');
+		      SVf_QUOTEDPREFIX  => 'S',
+                      PVf_QUOTEDPREFIX  => 'S',
+		      PNf  => 's',
+                      HvNAMEf => 's',
+                      HvNAMEf_QUOTEDPREFIX => 'S',
+                  );
+
 my $format_modifiers = qr/ [#0\ +-]*              # optional flags
 			  (?: [1-9][0-9]* | \* )? # optional field width
 			  (?: \. \d* )?           # optional precision
@@ -205,8 +237,8 @@ my $format_modifiers = qr/ [#0\ +-]*    
 			/x;
 
 my $specialformats =
- join '|', sort { length $b cmp length $a } keys %specialformats;
-my $specialformats_re = qr/%$format_modifiers"\s*($specialformats)(\s*")?/;
+ join '|', sort { length($b) <=> length($a) || $a cmp $b } keys %specialformats;
+my $specialformats_re = qr/%$format_modifiers"\s*($specialformats)(\s*(?:"|\z))?/;
 
 # We skip the bodies of most XS functions, but not within these files
 my @include_xs_files = (
@@ -240,8 +272,14 @@ sub standardize {
   elsif ( $name =~ m/^(Invalid version format) \([^\)]*\)/ ) {
     $name = "$1 (\%s)";
   }
-  elsif ($name =~ m/^panic: /) {
-    $name = "panic: \%s";
+  elsif ($name =~ m/^(panic|Usage): /) {
+    $name = "$1: \%s";
+  }
+  else {
+    $name =~ s/ (*plb:^Function\ ")
+                (\w+)
+                (*pla:"\ not\ implemented\ in\ this\ version\ of\ perl\.)
+              /%s/gx;
   }
 
   return $name;
@@ -260,6 +298,7 @@ sub check_file {
   my $sub = 'top of file';
   while (<$codefh>) {
     chomp;
+    my $first_line = $.;
     # Getting too much here isn't a problem; we only use this to skip
     # errors inside of XS modules, which should get documented in the
     # docs for the module.
@@ -272,26 +311,26 @@ sub check_file {
       $listed_as_line = $.+1;
     }
     elsif (m</\*\s*diag_listed_as: (.*?)\s*\z>) {
-      $listed_as = $1;
-      my $finished;
+      my $new_listed_as = $1;
       while (<$codefh>) {
         if (m<\*/>) {
-          $listed_as .= $` =~ s/^\s*/ /r =~ s/\s+\z//r;
+          $new_listed_as .= $` =~ s/^\s*/ /r =~ s/\s+\z//r;
           $listed_as_line = $.+1;
-          $finished = 1;
+          $listed_as= $new_listed_as;
           last;
         }
         else {
-          $listed_as .= s/^\s*/ /r =~ s/\s+\z//r;
+          $new_listed_as .= s/^\s*/ /r =~ s/\s+\z//r;
         }
       }
-      if (!$finished) { $listed_as = undef }
     }
     next if /^#/;
 
     my $multiline = 0;
     # Loop to accumulate the message text all on one line.
-    if (m/(?!^)\b(?:$source_msg_re(?:_nocontext)?|$regcomp_re)\s*\(/) {
+    if (m/(?!^)\b(?:$source_msg_re(?:_nocontext)?|$regcomp_re)\s*\((?<tail>(?:[^()]+|\([^()]+\))+\))?/
+        and !$+{tail}
+    ) {
       while (not m/\);\s*$/) {
         my $nextline = <$codefh>;
         # Means we fell off the end of the file.  Not terribly surprising;
@@ -315,16 +354,32 @@ sub check_file {
     # in later lines.
 
     s/$specialformats_re/"%$specialformats{$1}" .  (defined $2 ? '' : '"')/ge;
+    s/\%S/\\"%s\\"/g; # convert an %S into a quoted %s.
 
     # Remove any remaining format modifiers, but not in %%
     s/ (?<!%) % $format_modifiers ( [dioxXucsfeEgGp] ) /%$1/xg;
 
     # The %"foo" thing needs to happen *before* this regex.
-    # diag($_);
+    # diag(">$_<");
     # DIE is just return Perl_die
-    my ($name, $category, $routine);
+    my ($name, $category, $routine, $wrapper);
     if (/\b$source_msg_call_re/) {
-      ($name, $category, $routine) = ($+{'text'}, $+{'category'}, $+{'routine'});
+      my $version_string;
+      ($name, $category, $routine, $wrapper, $version_string) =
+        ($+{'text'}, $+{'category'}, $+{'routine'}, $+{'wrapper'}, $+{'version_string'});
+      if ($wrapper) {
+        $category = $wrapper if $wrapper=~/WARN/;
+        $routine = "Perl_warner" if $wrapper=~/WARN/;
+        $routine = "yyerror" if $wrapper=~/DIE/;
+      }
+      if ($routine=~/^deprecate/) {
+        $name .= " is deprecated";
+        if ($version_string) {
+            like($version_string, qr/"5\.\d+"/,
+                "version string is of the correct form at $codefn line $first_line");
+        }
+      }
+      # diag(Dumper(\%+,{category=>$category, routine=>$routine, name=>$name}));
       # Sometimes the regexp will pick up too much for the category
       # e.g., WARN_UNINITIALIZED), PL_warn_uninit_sv ... up to the next )
       $category && $category =~ s/\).*//s;
@@ -371,6 +426,7 @@ sub check_file {
                  :  $routine =~ /ckWARN\d*reg_d/? 'S'
                  :  $routine =~ /ckWARN\d*reg/ ?  'W'
                  :  $routine =~ /vWARN\d/      ? '[WDS]'
+                 :  $routine =~ /^deprecate/   ? '[WDS]'
                  :                             '[PFX]';
     my $categories;
     if (defined $category) {
@@ -379,8 +435,9 @@ sub check_file {
         join ", ",
               sort map {s/^WARN_//; lc $_} split /\s*[|,]\s*/, $category;
     }
-    if ($listed_as and $listed_as_line == $. - $multiline) {
+    if ($listed_as) {
       $name = $listed_as;
+      undef $listed_as;
     } else {
       # The form listed in perldiag ignores most sorts of fancy printf
       # formatting, or makes it more perlish.
@@ -442,6 +499,7 @@ sub check_message {
         TODO: {
           no warnings 'once';
           local $::TODO = 'in DATA';
+          # diag(Dumper($entries{$key}));
           # There is no listing, but it is in the list of exceptions.  TODO FAIL.
           fail($key);
           diag(
@@ -463,14 +521,20 @@ sub check_message {
         state %qrs;
         my $qr = $qrs{$severity} ||= qr/$severity/;
 
+        my $pod_line = $entries{$key}{line_number} // "";
+
+        if ($pod_line) {
+            $pod_line = ", at perldiag.pod line $pod_line";
+        }
+
         like($entries{$key}{severity}, $qr,
-          $severity =~ /\[/
-            ? "severity is one of $severity for $key"
-            : "severity is $severity for $key");
+          ($severity =~ /\[/
+            ? "severity is one of $severity"
+            : "severity is $severity") . "for '$name' at $codefn line $.$pod_line");
 
         is($entries{$key}{category}, $categories,
            ($categories ? "categories are [$categories]" : "no category")
-             . " for $key");
+             . " for '$name' at $codefn line $.$pod_line");
       }
     } elsif ($partial) {
       # noop
@@ -504,28 +568,37 @@ sub check_message {
     return $ret;
 }
 
-# Lists all missing things as of the inauguration of this script, so we
-# don't have to go from "meh" to perfect all at once.
-# 
-# PLEASE DO NOT ADD TO THIS LIST.  Instead, write an entry in
-# pod/perldiag.pod for your new (warning|error).  Nevertheless,
-# listing exceptions here when this script is not smart enough
-# to recognize the messages is not so bad, as long as there are
-# entries in perldiag.
-
-# Entries after __CATEGORIES__ are those that are in perldiag but fail the
-# severity/category test.
+# The DATA section includes two types of entries, in two sets separated by a
+# blank line.
+#
+# The first set are entries whose text we think is fully explanatory and don't
+# need further elaboration in perldiag.  This set should consist of very few
+# entries.
+#
+# The second set, after the blank line, consists of TODO entries.  (There are
+# actually two subsets described below.)  This list should basically be just
+# those entries that otherwise would have generated an error upon inauguration
+# of this program, so we didn't have to go from "meh" to perfect all at once.
+# The only valid reason we can think of to add to the list is for cases where
+# this program is not smart enough to recognize the message is something that
+# actually is in perldiag.  Otherwise, DO NOT ADD TO THIS LIST.  Instead,
+# write an entry in pod/perldiag.pod for your new (warning|error).
+#
+# This second set has a subcategory, after the line marked __CATEGORIES__ .
+# These are entries that are in perldiag but fail the severity/category test.
 
-# Also FIXME this test, as the first entry in TODO *is* covered by the
-# description: Malformed UTF-8 character (%s)
 __DATA__
-Malformed UTF-8 character (unexpected non-continuation byte 0x%x, immediately after start byte 0x%x)
+Function "%s" not implemented in this version of perl.
+QUITing...
+Recompile perl with -DDEBUGGING to use -D switch (did you mean -d ?)
+System V IPC is not implemented on this machine
+Terminating on signal SIG%s(%d)
+This version of OS/2 does not support %s.%s
+Usage: %s
 
 Cannot apply "%s" in non-PerlIO perl
-Cannot set timer
 Can't find DLL name for the module `%s' by the handle %d, rc=%u=%x
 Can't find string terminator %c%s%c anywhere before EOF
-Can't fix broken locale name "%s"
 Can't get short module name from a handle
 Can't load DLL `%s', possible problematic module `%s'
 Can't locate %s:   %s
@@ -538,18 +611,15 @@ Can't %s "%s": %s
 Can't %s `%s' with ARGV[0] being `%s' (looking for executables only, not found)
 Can't use string ("%s"%s) as a subroutine ref while "strict refs" in use
 Character(s) in '%c' format wrapped in %s
-chown not implemented!
 clear %s
 Code missing after '/' in pack
 Code missing after '/' in unpack
-Could not find version 1.1 of winsock dll
 Could not find version 2.0 of winsock dll
 '%c' outside of string in pack
 Debug leaking scalars child failed%s with errno %d: %s
 detach of a thread which could not start
 detach on an already detached thread
 detach on a thread with a waiter
--Dp not implemented on this platform
 Empty array reference given to mod2fname
 endhostent not implemented!
 endnetent not implemented!
@@ -557,11 +627,9 @@ endprotoent not implemented!
 endservent not implemented!
 Error loading module '%s': %s
 Error reading "%s": %s
-execl not implemented!
 EVAL without pos change exceeded limit in regex
 Filehandle opened only for %sput
 Filehandle %s opened only for %sput
-Filehandle STD%s reopened as %s only for input
 file_type not implemented on DOS
 filter_del can only delete in reverse order (currently)
 fork() not available
@@ -569,29 +637,6 @@ fork() not implemented!
 YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET! FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!
 free %s
 Free to wrong pool %p not %p
-Function "endnetent" not implemented in this version of perl.
-Function "endprotoent" not implemented in this version of perl.
-Function "endservent" not implemented in this version of perl.
-Function "getnetbyaddr" not implemented in this version of perl.
-Function "getnetbyname" not implemented in this version of perl.
-Function "getnetent" not implemented in this version of perl.
-Function "getprotobyname" not implemented in this version of perl.
-Function "getprotobynumber" not implemented in this version of perl.
-Function "getprotoent" not implemented in this version of perl.
-Function "getservbyport" not implemented in this version of perl.
-Function "getservent" not implemented in this version of perl.
-Function "getsockopt" not implemented in this version of perl.
-Function "recvmsg" not implemented in this version of perl.
-Function "sendmsg" not implemented in this version of perl.
-Function "sethostent" not implemented in this version of perl.
-Function "setnetent" not implemented in this version of perl.
-Function "setprotoent" not implemented in this version of perl.
-Function "setservent"  not implemented in this version of perl.
-Function "setsockopt" not implemented in this version of perl.
-Function "tcdrain" not implemented in this version of perl.
-Function "tcflow" not implemented in this version of perl.
-Function "tcflush" not implemented in this version of perl.
-Function "tcsendbreak" not implemented in this version of perl.
 get %s %p %p %p
 gethostent not implemented!
 getnetbyaddr not implemented!
@@ -607,20 +652,13 @@ Goto undefined subroutine
 Goto undefined subroutine &%s
 Got signal %d
 ()-group starts with a count in %s
-Illegal binary digit '%c' ignored
-Illegal character %sin prototype for %s : %s
-Illegal hexadecimal digit '%c' ignored
 Illegal octal digit '%c' ignored
 INSTALL_PREFIX too long: `%s'
 Invalid argument to sv_cat_decode
 Invalid range "%c-%c" in transliteration operator
 Invalid separator character %c%c%c in PerlIO layer specification %s
-Invalid TOKEN object ignored
 ioctl implemented only on sockets
-ioctlsocket not implemented!
 join with a thread with a waiter
-killpg not implemented!
-List form of pipe open not implemented
 Looks like we have no PM; will not load DLL %s without $ENV{PERL_ASIF_PM}
 Malformed integer in [] in %s
 Malformed %s
@@ -638,17 +676,12 @@ Operator or semicolon missing before %c%
 Out of memory during list extend
 panic queryaddr
 Parse error
-PerlApp::TextQuery: no arguments, please
 POSIX syntax [%c %c] is reserved for future extensions in regex; marked by <-- HERE in m/%s/
 ptr wrong %p != %p fl=%x nl=%p e=%p for %d
-QUITing...
-Recompile perl with -DDEBUGGING to use -D switch (did you mean -d ?)
 recursion detected in %s
-Regexp *+ operand could be empty in regex; marked by <-- HERE in m/%s/
 Reversed %c= operator
 %s: Can't parse EXE/DLL name: '%s'
 %s(%f) failed
-%sCompilation failed in require
 %s: Error stripping dirs from EXE/DLL/INSTALLDIR name
 sethostent not implemented!
 setnetent not implemented!
@@ -664,19 +697,13 @@ Size magic not implemented
 %s not implemented!
 %s number > %s non-portable
 %srealloc() %signored
-%s in regex m/%s/
 %s on %s %s
-socketpair not implemented!
 %s: %s
 Starting Full Screen process with flag=%d, mytype=%d
 Starting PM process with flag=%d, mytype=%d
-sv_2iv assumed (U_V(fabs((double)SvNVX(sv))) < (UV)IV_MAX) but SvNVX(sv)=%f U_V is 0x%x, IV_MAX is 0x%x
 switching effective gid is not implemented
 switching effective uid is not implemented
-System V IPC is not implemented on this machine
-Terminating on signal SIG%s(%d)
 This perl was compiled without taint support. Cowardly refusing to run with -t or -T flags
-This version of OS/2 does not support %s.%s
 Too deeply nested ()-groups in %s
 Too many args on %s line of "%s"
 U0 mode on a byte string
@@ -686,27 +713,11 @@ Unexpected program mode %d when morphing
 Unrecognized character %s; marked by <-- HERE after %s<-- HERE near column %d
 Unstable directory path, current directory changed unexpectedly
 Unterminated compressed integer in unpack
-Usage: %s(%s)
-Usage: %s::%s(%s)
-Usage: CODE(0x%x)(%s)
-Usage: File::Copy::rmscopy(from,to[,date_flag])
-Usage: VMS::Filespec::candelete(spec)
-Usage: VMS::Filespec::fileify(spec)
-Usage: VMS::Filespec::pathify(spec)
-Usage: VMS::Filespec::rmsexpand(spec[,defspec])
-Usage: VMS::Filespec::unixify(spec)
-Usage: VMS::Filespec::unixpath(spec)
-Usage: VMS::Filespec::unixrealpath(spec)
-Usage: VMS::Filespec::vmsify(spec)
-Usage: VMS::Filespec::vmspath(spec)
-Usage: VMS::Filespec::vmsrealpath(spec)
 utf8 "\x%X" does not map to Unicode
 Value of logical "%s" too long. Truncating to %i bytes
 waitpid: process %x is not a child of process %x
 Wide character
 Wide character in $/
-win32_get_osfhandle() TBD on this platform
-win32_open_osfhandle() TBD on this platform
 Within []-length '*' not allowed in %s
 Within []-length '%c' not allowed in %s
 Wrong size of loadOrdinals array: expected %d, actual %d
Index: gnu/usr.bin/perl/t/porting/globvar.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/globvar.t,v
diff -u -p -a -u -p -r1.4 globvar.t
--- gnu/usr.bin/perl/t/porting/globvar.t	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/t/porting/globvar.t	21 Feb 2024 15:47:03 -0000
@@ -27,7 +27,7 @@ my $yes = `$trial`;
 
 skip_all("Could not run `$trial`") if $?;
 
-my $defined = qr/^[0-9a-fA-F]{8,16}\s+[^Uu]\s+_?/m;
+my $defined = $^O eq "hpux" ? qr/\|/ : qr/^[0-9a-fA-F]{8,16}\s+[^Uu]\s+_?/m;
 
 skip_all("Could not spot definition of PL_Yes in output of `$trial`")
     unless $yes =~ /${defined}PL_Yes/m;
@@ -75,10 +75,14 @@ foreach (sort keys %exported) {
  }
 }
 
+$::TODO = $::TODO; # silence uninitialized warnings
 foreach (sort keys %unexported) {
  SKIP: {
         skip("We don't export '$_'", 1) if $skip{$_};
-        fail("'$_' is defined, but we do not export it");
+        TODO: {
+            local $::TODO = "HPUX exports everything" if $^O eq "hpux";
+            fail("'$_' is defined, but we do not export it");
+        }
     }
 }
 
Index: gnu/usr.bin/perl/t/porting/header_parser.t
===================================================================
RCS file: gnu/usr.bin/perl/t/porting/header_parser.t
diff -N gnu/usr.bin/perl/t/porting/header_parser.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/porting/header_parser.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,620 @@
+#!./perl -w
+
+# Verify that all files generated by perl scripts are up to date.
+
+BEGIN {
+    if (-f "./TestInit.pm") {
+        push @INC, ".";
+    } elsif (-f '../TestInit.pm') {
+        push @INC, "..";
+    }
+}
+use TestInit qw(T A); # T is chdir to the top level, A makes paths absolute
+use strict;
+
+# this tests the functions in HeaderParser.pm which we use for make regen.
+
+require './t/test.pl';
+require './regen/HeaderParser.pm';
+
+skip_all_if_miniperl("needs Data::Dumper");
+
+require Data::Dumper;
+
+sub show_text {
+    my ($as_text)= @_;
+    print STDERR $as_text=~s/^/" " x 8/mger;
+}
+
+my $hp= HeaderParser->new();
+$hp->parse_text(<<~'EOF');
+    #ifdef A
+    #ifdef B
+    #define AB
+    content 1
+    #endif
+    content 2
+    #define A
+    #endif
+    /*comment
+      line */
+    #define C /* this is
+                 a hidden line continuation */ D
+    EOF
+my $normal= $hp->lines_as_str();
+my $lines= $hp->lines();
+my $lines_as_str= Data::Dumper->new([$lines])->Sortkeys(1)->Useqq(1)->Indent(1)->Dump();
+is($lines_as_str,<<~'DUMP_EOF', "Simple data structure as expected") or show_text($lines_as_str);
+        $VAR1 = [
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ]
+            ],
+            "flat" => "#if defined(A)",
+            "level" => 0,
+            "line" => "#if defined(A)\n",
+            "n_lines" => 1,
+            "raw" => "#ifdef A\n",
+            "source" => "(buffer)",
+            "start_line_num" => 1,
+            "sub_type" => "#if",
+            "type" => "cond"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ],
+              [
+                "defined(B)"
+              ]
+            ],
+            "flat" => "#if defined(B)",
+            "level" => 1,
+            "line" => "# if defined(B)\n",
+            "n_lines" => 1,
+            "raw" => "#ifdef B\n",
+            "source" => "(buffer)",
+            "start_line_num" => 2,
+            "sub_type" => "#if",
+            "type" => "cond"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ],
+              [
+                "defined(B)"
+              ]
+            ],
+            "flat" => "#define AB",
+            "level" => 2,
+            "line" => "#   define AB\n",
+            "n_lines" => 1,
+            "raw" => "#define AB\n",
+            "source" => "(buffer)",
+            "start_line_num" => 3,
+            "sub_type" => "#define",
+            "type" => "content"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ],
+              [
+                "defined(B)"
+              ]
+            ],
+            "flat" => "content 1",
+            "level" => 2,
+            "line" => "content 1\n",
+            "n_lines" => 1,
+            "raw" => "content 1\n",
+            "source" => "(buffer)",
+            "start_line_num" => 4,
+            "sub_type" => "text",
+            "type" => "content"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ],
+              [
+                "defined(B)"
+              ]
+            ],
+            "flat" => "#endif",
+            "inner_lines" => 3,
+            "level" => 1,
+            "line" => "# endif\n",
+            "n_lines" => 1,
+            "raw" => "#endif\n",
+            "source" => "(buffer)",
+            "start_line_num" => 5,
+            "sub_type" => "#endif",
+            "type" => "cond"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ]
+            ],
+            "flat" => "content 2",
+            "level" => 1,
+            "line" => "content 2\n",
+            "n_lines" => 1,
+            "raw" => "content 2\n",
+            "source" => "(buffer)",
+            "start_line_num" => 6,
+            "sub_type" => "text",
+            "type" => "content"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ]
+            ],
+            "flat" => "#define A",
+            "level" => 1,
+            "line" => "# define A\n",
+            "n_lines" => 1,
+            "raw" => "#define A\n",
+            "source" => "(buffer)",
+            "start_line_num" => 7,
+            "sub_type" => "#define",
+            "type" => "content"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [
+              [
+                "defined(A)"
+              ]
+            ],
+            "flat" => "#endif",
+            "inner_lines" => 7,
+            "level" => 0,
+            "line" => "#endif\n",
+            "n_lines" => 1,
+            "raw" => "#endif\n",
+            "source" => "(buffer)",
+            "start_line_num" => 8,
+            "sub_type" => "#endif",
+            "type" => "cond"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [],
+            "flat" => "",
+            "level" => 0,
+            "line" => "/*comment\n  line */\n",
+            "n_lines" => 2,
+            "raw" => "/*comment\n  line */\n",
+            "source" => "(buffer)",
+            "start_line_num" => 9,
+            "sub_type" => "text",
+            "type" => "content"
+          }, 'HeaderLine' ),
+          bless( {
+            "cond" => [],
+            "flat" => "#define C D",
+            "level" => 0,
+            "line" => "#define C /* this is\n             a hidden line continuation */ D\n",
+            "n_lines" => 2,
+            "raw" => "#define C /* this is\n             a hidden line continuation */ D\n",
+            "source" => "(buffer)",
+            "start_line_num" => 11,
+            "sub_type" => "#define",
+            "type" => "content"
+          }, 'HeaderLine' )
+        ];
+        DUMP_EOF
+
+is($normal,<<~'EOF',"Normalized text as expected");
+    #if defined(A)
+    # if defined(B)
+    #   define AB
+    content 1
+    # endif
+    content 2
+    # define A
+    #endif
+    /*comment
+      line */
+    #define C /* this is
+                 a hidden line continuation */ D
+    EOF
+
+{
+    my @warn;
+    local $SIG{__WARN__}= sub { push @warn, $_[0]; warn $_[0] };
+    my $ok= eval {
+        HeaderParser->new(add_commented_expr_after=>0)->parse_text(<<~'EOF'); 1
+        #ifdef A
+        #ifdef B
+        #endif
+        EOF
+    };
+    my $err= !$ok ? $@ : "";
+    ok(!$ok,"Should throw an error");
+    like($err,qr/Unterminated conditional block starting line 1 with last conditional operation at line 3/,
+         "Got expected error message");
+}
+{
+    my @warn;
+    local $SIG{__WARN__}= sub { push @warn, $_[0]; warn $_[0] };
+    my $ok= eval {
+        HeaderParser->new(add_commented_expr_after=>0)->parse_text(<<~'EOF'); 1
+        #ifdef A
+        #ifdef B
+        #elif C
+        EOF
+    };
+    my $err= !$ok ? $@ : "";
+    ok(!$ok,"Should throw an error");
+    like($err,qr/Unterminated conditional block starting line 3/,
+         "Unterminated block detected");
+}
+{
+    my @warn;
+    local $SIG{__WARN__}= sub { push @warn, $_[0]; warn $_[0] };
+    my $ok= eval {
+        HeaderParser->new(add_commented_expr_after=>0)->parse_text(<<~'EOF'); 1
+        #if 1 * * 10 > 5
+        #elifdef C
+        EOF
+    };
+    my $err= !$ok ? $@ : "";
+    ok(!$ok,"Should throw an error");
+    is($err,
+       "Error at line 1\n" .
+       "Line 1: #if 1 * * 10 > 5\n" .
+       "Error in multiplication expression: " .
+       "Unexpected token '*', expecting literal, unary, or expression.\n",
+         "Expected token error") or warn $err;
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+
+    $hp->parse_text(<<~'EOF');
+        #ifdef A
+        # ifdef B
+        #   define P
+        # else
+        #   define Q
+        # endif
+        # if !defined B
+        #   define R
+        # else
+        #   define S
+        # endif
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"inverted simple clauses get merged properly") or show_text($as_text);
+        #if defined(A)
+        # if defined(B)
+        #   define P
+        #   define S
+        # else /* if !defined(B) */
+        #   define Q
+        #   define R
+        # endif /* !defined(B) */
+        #endif /* defined(A) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A) && defined(B)
+        # if (defined(C) && defined(D))
+        #   define P
+        # else
+        #   define Q
+        # endif
+        # if !(defined C && defined D)
+        #   define R
+        # else
+        #   define S
+        # endif
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"inverted complex clauses get merged properly") or show_text($as_text);
+        #if defined(A) && defined(B)
+        # if defined(C) && defined(D)
+        #   define P
+        #   define S
+        # else /* if !( defined(C) && defined(D) ) */
+        #   define Q
+        #   define R
+        # endif /* !( defined(C) && defined(D) ) */
+        #endif /* defined(A) && defined(B) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A)
+        #define HAS_A
+        #elif defined(B)
+        #define HAS_B
+        #elif defined(C)
+        #define HAS_C
+        #else
+        #define HAS_D
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"test nested elif round trip") or show_text($as_text);
+        #if defined(A)
+        # define HAS_A
+        #elif defined(B) /* && !defined(A) */
+        # define HAS_B
+        #elif defined(C) /* && !defined(A) && !defined(B) */
+        # define HAS_C
+        #else /* if !defined(A) && !defined(B) && !defined(C) */
+        # define HAS_D
+        #endif /* !defined(A) && !defined(B) && !defined(C) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A)
+        #define HAS_A
+        #endif
+        #if !defined(A) && defined(B)
+        #define HAS_B
+        #endif
+        #if defined(C)
+        #if !defined(A)
+        #if !defined(B)
+        #define HAS_C
+        #endif
+        #endif
+        #endif
+        #if !defined(B) && !defined(A) && !defined(C)
+        #define HAS_D
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"test elif composition from disparate statements") or show_text($as_text);
+        #if defined(A)
+        # define HAS_A
+        #elif defined(B) /* && !defined(A) */
+        # define HAS_B
+        #elif defined(C) /* && !defined(A) && !defined(B) */
+        # define HAS_C
+        #else /* if !defined(A) && !defined(B) && !defined(C) */
+        # define HAS_D
+        #endif /* !defined(A) && !defined(B) && !defined(C) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A)
+        #define HAS_A
+        #endif
+        #if !defined(A)
+        #define HAS_NOT_A
+        #if !defined(C)
+        #define HAS_A_NOT_C
+        #endif
+        #endif
+        #if defined(C)
+        #define HAS_C
+        #if defined(A)
+        #define HAS_A_C
+        #endif
+        #else
+        #if defined(A)
+        #define HAS_NOT_C_A
+        #endif
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"test else composition") or show_text($as_text);
+        #if defined(A)
+        # define HAS_A
+        # if defined(C)
+        #   define HAS_A_C
+        # else /* if !defined(C) */
+        #   define HAS_NOT_C_A
+        # endif /* !defined(C) */
+        #else /* if !defined(A) */
+        # define HAS_NOT_A
+        # if !defined(C)
+        #   define HAS_A_NOT_C
+        # endif /* !defined(C) */
+        #endif /* !defined(A) */
+        #if defined(C)
+        # define HAS_C
+        #endif /* defined(C) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if !defined(A)
+        #define NOT_A1
+        #else
+        #define A1
+        #endif
+        #if !!!!defined(A)
+        #define A2
+        #else
+        #define NOT_A2
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"normalization into if/else") or show_text($as_text);
+        #if defined(A)
+        # define A1
+        # define A2
+        #else /* if !defined(A) */
+        # define NOT_A1
+        # define NOT_A2
+        #endif /* !defined(A) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if !!!(defined(A) && defined(B))
+        #define NOT_A_AND_B
+        #endif
+        #if defined(A)
+        #if defined(B)
+        #define A_AND_B
+        #endif
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"normalization with complex else") or show_text($as_text);
+        #if defined(A) && defined(B)
+        # define A_AND_B
+        #else /* if !( defined(A) && defined(B) ) */
+        # define NOT_A_AND_B
+        #endif /* !( defined(A) && defined(B) ) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A) && !!defined(A) && !!!!defined(A)
+        #define HAS_A
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"simplification") or show_text($as_text);
+        #if defined(A)
+        # define HAS_A
+        #endif /* defined(A) */
+        EOF
+}
+{
+    local $::TODO;
+    $::TODO= "Absorbtion not implemented yet";
+    # currently we don't handle absorbtion: (A && (A || B || C ...)) == A
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(X) && (defined(X) || defined(Y))
+        #define HAS_X
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"simplification by absorbtion"); # or show_text($as_text);
+        #if defined(X)
+        # define HAS_X
+        #endif /* defined(X) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A) && (defined(B) && defined(C))
+        #define HAS_A
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"expression flattening") or show_text($as_text);
+        #if defined(A) && defined(B) && defined(C)
+        # define HAS_A
+        #endif /* defined(A) && defined(B) && defined(C) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>3);
+    $hp->parse_text(<<~'EOF');
+        #if defined(A)
+        #define HAS_A1
+        #define HAS_A2
+        #define HAS_A3
+        #endif
+        #if defined(B)
+        #define HAS_B1
+        #else
+        #define HAS_B1e
+        #define HAS_B2e
+        #define HAS_B3e
+        #endif
+        #if defined(C)
+        #if defined(D)
+        #define HAS_D1
+        #endif
+        #elif defined(CC)
+        #define HAS_CC1
+        #define HAS_CC2
+        #define HAS_CC3
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"auto-comments") or show_text($as_text);
+        #if defined(A)
+        # define HAS_A1
+        # define HAS_A2
+        # define HAS_A3
+        #endif /* defined(A) */
+        #if defined(B)
+        # define HAS_B1
+        #else
+        # define HAS_B1e
+        # define HAS_B2e
+        # define HAS_B3e
+        #endif /* !defined(B) */
+        #if defined(C)
+        # if defined(D)
+        #   define HAS_D1
+        # endif
+        #elif defined(CC) /* && !defined(C) */
+        # define HAS_CC1
+        # define HAS_CC2
+        # define HAS_CC3
+        #endif /* !defined(C) && defined(CC) */
+        EOF
+}
+{
+    my $hp= HeaderParser->new(debug=>0,add_commented_expr_after=>0);
+    $hp->parse_text(<<~'EOF');
+        #if  defined(DEBUGGING)                                                    \
+             || (defined(USE_LOCALE) && (    defined(USE_THREADS)                  \
+                                        ||   defined(HAS_IGNORED_LOCALE_CATEGORIES)\
+                                        ||   defined(USE_POSIX_2008_LOCALE)        \
+                                        || ! defined(LC_ALL)))
+        # define X
+        #endif
+        EOF
+    my $grouped= $hp->group_content();
+    my $as_text= $hp->lines_as_str($grouped);
+    is($as_text,<<~'EOF',"Karls example") or show_text($as_text);
+        #if   defined(DEBUGGING) ||                                         \
+            ( defined(USE_LOCALE) &&                                        \
+            ( defined(HAS_IGNORED_LOCALE_CATEGORIES) || !defined(LC_ALL) || \
+              defined(USE_POSIX_2008_LOCALE) || defined(USE_THREADS) ) )
+        # define X
+        #endif /*   defined(DEBUGGING) ||
+                  ( defined(USE_LOCALE) &&
+                  ( defined(HAS_IGNORED_LOCALE_CATEGORIES) || !defined(LC_ALL) ||
+                    defined(USE_POSIX_2008_LOCALE) || defined(USE_THREADS) ) ) */
+        EOF
+}
+
+done_testing();
Index: gnu/usr.bin/perl/t/porting/known_pod_issues.dat
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/known_pod_issues.dat,v
diff -u -p -a -u -p -r1.6 known_pod_issues.dat
--- gnu/usr.bin/perl/t/porting/known_pod_issues.dat	15 Feb 2023 01:36:37 -0000	1.6
+++ gnu/usr.bin/perl/t/porting/known_pod_issues.dat	21 Feb 2024 15:47:03 -0000
@@ -93,6 +93,7 @@ DBIx::Profile
 dbm(3)
 dbm_open(3)
 Devel::Apache::Profiler
+Devel::Caller
 Devel::CallParser
 Devel::Callsite
 Devel::Cover
@@ -102,6 +103,7 @@ Devel::InnerPackage
 Devel::NYTProf
 Devel::NYTProf::Apache
 Devel::PPPort
+Devel::ptkdb
 Devel::SawAmpersand
 Devel::Spy
 dirfd(3)
@@ -168,7 +170,8 @@ ioctl(2)
 IPC::Run
 IPC::Shareable
 IPC::Signal
-ispunct(2)
+isalnum(3)
+ispunct(3)
 kill(3)
 langinfo(3)
 LaTeX::Encode
@@ -334,12 +337,15 @@ Switch
 tar(1)
 Template::Declare
 Term::ReadKey
+Term::ReadLine::Gnu
+Term::ReadLine::Perl
 Term::UI
 Term::UI::History
 Test::Harness::TAP
 Test::Inline
 Test::MockObject
 Test::Unit
+Test::Vars
 Text::Autoformat
 Text::Diff
 Text::Soundex
@@ -365,6 +371,7 @@ Unicode::Tussle
 Unicode::Unihan
 unzip(1)
 utime(2)
+Variable::Magic
 Version::Requirements
 vsprintf(3)
 wait(2)
@@ -382,8 +389,9 @@ YAML
 YAML::Syck
 YAML::Tiny
 dist/data-dumper/dumper.pm	? Should you be using L<...> instead of	1
-dist/devel-ppport/ppport.pm	Apparent broken link	1
 dist/env/lib/env.pm	? Should you be using F<...> or maybe L<...> instead of	1
+dist/math-complex/lib/math/complex.pm	Verbatim line length including indents exceeds 78 by	3
+dist/math-complex/lib/math/trig.pm	Verbatim line length including indents exceeds 78 by	4
 ext/dynaloader/dynaloader.pm	Verbatim line length including indents exceeds 78 by	1
 ext/hash-util/lib/hash/util.pm	Verbatim line length including indents exceeds 78 by	2
 ext/pod-html/corpus/perlvar-copy.pod	? Should you be using L<...> instead of	-1
@@ -412,7 +420,6 @@ pod/perlrun.pod	Verbatim line length inc
 pod/perlsolaris.pod	Verbatim line length including indents exceeds 78 by	-1
 pod/perltie.pod	Verbatim line length including indents exceeds 78 by	3
 pod/perltru64.pod	Verbatim line length including indents exceeds 78 by	1
-pod/perlwin32.pod	Verbatim line length including indents exceeds 78 by	1
 porting/epigraphs.pod	Verbatim line length including indents exceeds 78 by	-1
 porting/release_managers_guide.pod	Verbatim line length including indents exceeds 78 by	1
 lib/benchmark.pm	Verbatim line length including indents exceeds 78 by	2
Index: gnu/usr.bin/perl/t/porting/libperl.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/libperl.t,v
diff -u -p -a -u -p -r1.10 libperl.t
--- gnu/usr.bin/perl/t/porting/libperl.t	15 Feb 2023 01:36:37 -0000	1.10
+++ gnu/usr.bin/perl/t/porting/libperl.t	21 Feb 2024 15:47:03 -0000
@@ -9,6 +9,9 @@
 # - freebsd
 # and on other platforms, and if things seem odd, just give up (skip_all).
 #
+# Symbol types for LTO builds don't seem to match their final section, so
+# skip on LTO builds too.
+#
 # Debugging tip: nm output (this script's input) can be faked by
 # giving one command line argument for this script: it should be
 # either the filename to read, or "-" for STDIN.  You can also append
@@ -47,6 +50,15 @@ if ($Config{cc} =~ /g\+\+/) {
     skip_all "on g++";
 }
 
+# ccname is gcc for both gcc and clang
+if ($Config{ccname} eq "gcc" && $Config{ccflags} =~ /-flto\b/) {
+    # If we compile with gcc nm marks PL_no_mem as "D" (normal data) rather than a R (read only)
+    # but the symbol still ends up in the .rodata section of the image on linking.
+    # If we compile with clang 14, nm marks PL_no_mem as "T" (text, aka code) rather than R
+    # but the symbol still ends up in the .rodata section on linking.
+    skip_all "LTO libperl.a flags don't match the final linker sections";
+}
+
 my $libperl_a;
 
 for my $f (qw(../libperl.a libperl.a)) {
@@ -239,6 +251,10 @@ sub nm_parse_darwin {
         $symbols->{o} = $1;
         return;
     } else {
+        if ($^V < v5.39 && !defined $symbols->{o}) {
+            skip_all "nm parser requires an update on Darwin";
+        }
+
         die "$0: undefined current object: $line" unless defined $symbols->{o};
         # 64-bit systems have 16 hexdigits, 32-bit systems have 8.
         if (s/^[0-9a-f]{8}(?:[0-9a-f]{8})? //) {
@@ -317,9 +333,8 @@ unless (exists $symbols{text}) {
 
 # These should always be true for everyone.
 
-ok($symbols{obj}{'pp.o'}, "has object pp.o");
-ok($symbols{text}{'Perl_peep'}, "has text Perl_peep");
-ok($symbols{text}{'Perl_pp_uc'}{'pp.o'}, "has text Perl_pp_uc in pp.o");
+ok($symbols{obj}{'util.o'}, "has object util.o");
+ok($symbols{text}{'Perl_croak'}{'util.o'}, "has text Perl_croak in util.o");
 ok(exists $symbols{data}{const}, "has data const symbols");
 ok($symbols{data}{const}{PL_no_mem}{'globals.o'}, "has PL_no_mem");
 
Index: gnu/usr.bin/perl/t/porting/manifest.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/manifest.t,v
diff -u -p -a -u -p -r1.6 manifest.t
--- gnu/usr.bin/perl/t/porting/manifest.t	15 Feb 2023 01:36:37 -0000	1.6
+++ gnu/usr.bin/perl/t/porting/manifest.t	21 Feb 2024 15:47:03 -0000
@@ -60,11 +60,11 @@ while (<$m>) {
 	next;
     } elsif ($separator !~ tr/ //c) {
 	# It's all spaces
-	fail("Spaces in entry for $file in MANIFEST at line $.");
+	fail("Spaces in entry for $file in MANIFEST at line $. (run `make manisort` to fix)");
     } elsif ($separator =~ tr/\t//) {
-	fail("Mixed tabs and spaces in entry for $file in MANIFEST at line $.");
+	fail("Mixed tabs and spaces in entry for $file in MANIFEST at line $. (run `make manisort` to fix)");
     } else {
-	fail("Odd whitespace in entry for $file in MANIFEST at line $.");
+	fail("Odd whitespace in entry for $file in MANIFEST at line $. (run `make manisort` to fix)");
     }
 }
 
Index: gnu/usr.bin/perl/t/porting/pending-author.t
===================================================================
RCS file: gnu/usr.bin/perl/t/porting/pending-author.t
diff -N gnu/usr.bin/perl/t/porting/pending-author.t
--- gnu/usr.bin/perl/t/porting/pending-author.t	13 Feb 2019 21:11:42 -0000	1.1.1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,56 +0,0 @@
-#!./perl -w
-
-# What does this test?
-# This uses Porting/checkAUTHORS.pl to check that any pending commit isn't
-# about to break t/porting/authors.t
-#
-# Why do we test this?
-# t/porting/authors.t checks that the AUTHORS file is up to date, accounting
-# for the "Author:" of every commit. However, any pending changes can't be
-# tested, which leaves a gotcha - "make test" can pass, one then commits
-# the passing code, pushes it uptream, and tests fail. So this test attempts
-# to spot that problem before it happens, where it can.
-#
-# It's broken - how do I fix it?
-# It will fail if you're in a git checkout, have uncommitted changes, and the
-# e-mail address that your commit will default to is in AUTHORS, or the list
-# of author aliases in Porting/checkAUTHORS.pl. So one of
-# a) reset your pending changes
-# b) change your git config user.email to the previously-known e-mail address
-# c) add yourself to AUTHORS
-# d) add an alias to Porting/checkAUTHORS.pl
-
-BEGIN {
-    @INC = '..' if -f '../TestInit.pm';
-}
-use TestInit qw(T); # T is chdir to the top level
-use strict;
-use File::Spec;
-
-require './t/test.pl';
-find_git_or_skip('all');
-
-my $devnull = File::Spec->devnull;
-my @lines = `git status --porcelain 2>$devnull`;
-skip_all("git status --porcelain doesn't seem to work here")
-    if $? != 0;
-skip_all("No pending changes")
-    if !grep !/^\?\?/, @lines;
-
-sub get {
-    my $key = shift;
-    my $value = `git config --get user.$key`;
-    unless (defined $value && $value =~ /\S/) {
-	skip_all("git config --get user.$key returned nought");
-    }
-    chomp $value;
-    return $value;
-}
-
-my $email = get('email');
-my $name = get('name');
-
-open my $fh, '|-', "$^X Porting/checkAUTHORS.pl --tap -"
-    or die $!;
-print $fh "Author: $name <$email>\n";
-close $fh or die $!;
Index: gnu/usr.bin/perl/t/porting/podcheck.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/podcheck.t,v
diff -u -p -a -u -p -r1.6 podcheck.t
--- gnu/usr.bin/perl/t/porting/podcheck.t	15 Feb 2023 01:36:37 -0000	1.6
+++ gnu/usr.bin/perl/t/porting/podcheck.t	21 Feb 2024 15:47:03 -0000
@@ -447,7 +447,8 @@ my $non_pods = qr/
                            | core .*
                        )
                  $
-               ) | ~$
+               ) | ~$                    # Vim droppings
+                 | \.bak$                # Other editor droppings
                  | \ \(Autosaved\)\.txt$ # Other editor droppings
                  | ^cxx\$demangler_db\.$ # VMS name mangler database
                  | ^typemap\.?$          # typemap files
@@ -455,6 +456,10 @@ my $non_pods = qr/
                  | ^core (?: $ | \. .* )
                  | ^vgcore\.[1-9][0-9]*$
                  | \b Changes \b
+
+                   # This is a pod, but is part of a corpus to test agains; we
+                   # don't care about any issues in it.
+                 | ext\/Pod-Html\/corpus\/perlvar-copy.pod
              /x;
 
 # Matches something that looks like a file name, but is enclosed in C<...>
@@ -1130,7 +1135,8 @@ package My::Pod::Checker {      # Extend
 
             $self->poderror({ -line => $start_line{$addr} + $i,
                 -msg => $line_length,
-                parameter => "+$exceeds (including " . ($indent - $INDENT) . " from =over's)",
+                parameter => "+$exceeds (including " . ($indent - $INDENT) .
+                             " from =over's and $INDENT as base indent)",
             });
         }
 
@@ -1587,8 +1593,9 @@ sub is_pod_file {
 
     if (-d) {
         # Don't look at files in directories that are for tests, nor those
-        # beginning with a dot
-        if (m!/t\z! || m!/\.!) {
+        # beginning with a dot, nor those in the directory where Windows
+        # builds generate HTML from other POD sources.
+        if (m!/t\z! || m!/\.! || m!^./win32/html\z!) {
             $File::Find::prune = 1;
         }
         return;
@@ -2212,7 +2219,7 @@ following:
 
 1) If a problem is about a link to an unknown module or man page that
    you know exists, re-run the command something like:
-      ./perl -I../lib porting/podcheck.t --add-link MODULE man_page ...
+      ./perl -I../lib porting/podcheck.t --add-link { MODULE | man_page ... }
    (MODULEs should look like Foo::Bar, and man_pages should look like
    bar(3c); don't do this for a module or man page that you aren't sure
    about; instead treat as another type of issue and follow the
Index: gnu/usr.bin/perl/t/porting/regen.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/porting/regen.t,v
diff -u -p -a -u -p -r1.5 regen.t
--- gnu/usr.bin/perl/t/porting/regen.t	15 Feb 2023 01:36:37 -0000	1.5
+++ gnu/usr.bin/perl/t/porting/regen.t	21 Feb 2024 15:47:03 -0000
@@ -3,7 +3,8 @@
 # Verify that all files generated by perl scripts are up to date.
 
 BEGIN {
-    @INC = '..' if -f '../TestInit.pm';
+    push @INC, '..' if -f '../TestInit.pm';
+    push @INC, '.' if -f './TestInit.pm';
 }
 use TestInit qw(T A); # T is chdir to the top level, A makes paths absolute
 use strict;
@@ -26,7 +27,7 @@ if ( $Config{usecrosscompile} ) {
   skip_all( "Not all files are available during cross-compilation" );
 }
 
-my $tests = 24; # I can't see a clean way to calculate this automatically.
+my $tests = 27; # I can't see a clean way to calculate this automatically.
 
 my %skip = ("regen_perly.pl"    => [qw(perly.act perly.h perly.tab)],
             "regen/keywords.pl" => [qw(keywords.c keywords.h)],
@@ -50,29 +51,51 @@ for my $script (keys %other_requirement)
 
 my @files = map {@$_} sort values %skip;
 
-open my $fh, '<', 'regen.pl'
-    or die "Can't open regen.pl: $!";
+# find out what regen scripts would be executed by regen.pl which
+# is the script that implements `make regen`. We need to know this
+# because we will run regen.pl --tap, and it will in turn
+# so we don't need to execute the scripts it executes directly.
+my %regen_files;
+{
+    open my $fh, '<', 'regen.pl'
+        or die "Can't open regen.pl: $!";
 
-while (<$fh>) {
-    last if /^__END__/;
+    while (<$fh>) {
+        last if /^__END__/;
+    }
+    die "Can't find __END__ in regen.pl"
+        if eof $fh;
+    while (<$fh>) {
+        chomp $_;
+        ++$regen_files{$_};
+    }
+    close $fh
+        or die "Can't close regen.pl: $!";
 }
-die "Can't find __END__ in regen.pl"
-    if eof $fh;
 
-foreach (qw(embed_lib.pl regen_lib.pl uconfig_h.pl
-            regcharclass_multi_char_folds.pl
-            charset_translations.pl
-            mph.pl
-            ),
-         map {chomp $_; $_} <$fh>) {
+# This may look a bit weird but it makes sense. We build a skip hash of
+# all the scripts that we want to avoid executing /explicitly/ during
+# our tests. This includes the files listed in %regen_files because we
+# will execute them via regen.pl instead.
+foreach (
+    qw(
+        charset_translations.pl
+        embed_lib.pl
+        mph.pl
+        regcharclass_multi_char_folds.pl
+        regen_lib.pl
+        sorted_types.pl
+        uconfig_h.pl
+    ),
+    keys %regen_files
+) {
     ++$skip{"regen/$_"};
 }
 
-close $fh
-    or die "Can't close regen.pl: $!";
 
 my @progs = grep {!$skip{$_}} <regen/*.pl>;
 push @progs, 'regen.pl', map {"Porting/makemeta $_"} qw(-j -y);
+@progs = sort @progs;
 
 plan (tests => $tests + @files + @progs);
 
@@ -85,7 +108,7 @@ OUTER: foreach my $file (@files) {
     }
     my @bad;
     while (<$fh>) {
-	last if /ex: set ro:/;
+	last if /ex:[^:]+:/;
 	unless (/^(?: \* | #)([0-9a-f]+) (\S+)$/) {
 	    chomp $_;
 	    fail("Bad line in $file: '$_'");
@@ -104,13 +127,22 @@ OUTER: foreach my $file (@files) {
     }
 }
 
-foreach (@progs) {
-    my $args = qq[-Ilib $_ --tap];
+my @errors;
+foreach my $prog (@progs) {
+    my $args = qq[-Ilib $prog --tap];
     note("./perl $args");
     my $command = "$^X $args";
-    system $command
-        and die <<~"HINT";
-    Hint:  A failure in this file can often be corrected by running:
-     ./perl -Ilib $_
-HINT
+    if (system $command) { # if it exits with an error...
+        $command=~s/\s*--tap//;
+        push @errors, $prog eq "regen.pl"
+                          ? "make regen"
+                          : $command;
+    }
+}
+if ( @errors ) {
+    my $commands= join "\n", sort @errors;
+    die "\n\nERROR. There are generated files which are NOT up to date.\n",
+        "You should run the following commands to update these files:\n\n",
+        $commands, "\n\n",
+        "Once they are regenerated you should commit the changes.\n\n";
 }
Index: gnu/usr.bin/perl/t/porting/test_testlist.t
===================================================================
RCS file: gnu/usr.bin/perl/t/porting/test_testlist.t
diff -N gnu/usr.bin/perl/t/porting/test_testlist.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/porting/test_testlist.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,94 @@
+BEGIN {
+    chdir '..' if -d '../dist';
+    push @INC, "lib";
+    require './t/test.pl';
+}
+
+use strict;
+use warnings;
+
+# Test that t/TEST and t/harness test the same files, and that all the
+# test files (.t files) listed in MANIFEST are tested by both.
+#
+# We enabled the various special tests as this simplifies our MANIFEST
+# parsing.  In theory if someone adds a new test directory this should
+# tell us if one of the files does not know about it.
+
+plan tests => 3;
+
+my (%th, %tt, %all);
+$ENV{PERL_TORTURE_TEST} = 1;
+$ENV{PERL_TEST_MEMORY} = 1;
+$ENV{PERL_BENCHMARK} = 1;
+
+for my $file (`$^X t/harness -dumptests`) {
+    chomp $file;
+    $all{$file}++;
+    $th{$file}++;
+}
+
+for my $file (`$^X t/TEST -dumptests`) {
+    chomp $file;
+    $all{$file}++;
+    delete $th{$file} or $tt{$file}++;
+}
+
+is(0+keys(%th), 0, "t/harness will not test anything that t/TEST does not")
+    or print STDERR map { "# t/harness: $_\n" } sort keys %th;
+is(0+keys(%tt), 0, "t/TEST will not test aything that t/harness does not")
+    or print STDERR map { "# tTEST: $_\n" } sort keys %tt;
+
+sub get_extensions {
+    my %extensions;
+    open my $ifh, "<", "config.sh"
+        or die "Failed to open 'config.sh': $!";
+    while (<$ifh>) {
+        if (/^extensions='([^']+)'/) {
+            my $list = $1;
+            NAME:
+            foreach my $name (split /\s+/, $list) {
+                $name = "PathTools" if $name eq "Cwd";
+                $name = "Scalar/List/Utils" if $name eq "List/Util";
+                my $sub_dir = $name;
+                $sub_dir =~ s!/!-!g;
+                foreach my $dir (qw(cpan dist ext)) {
+                    if (-e "$dir/$sub_dir") {
+                        $extensions{"$dir/$sub_dir"} = $name;
+                        next NAME;
+                    }
+                }
+                die "Could not find '$name'\n";
+            }
+            last;
+        }
+    }
+    close $ifh;
+    return \%extensions;
+}
+
+sub find_in_manifest_but_missing {
+    my $extension = get_extensions();
+    my %missing;
+    my $is_os2 = $^O eq "os2";
+    my $is_win32 = $^O eq "MSWin32";
+    open my $ifh, "<", "MANIFEST"
+        or die "Failed to open 'MANIFEST' for read: $!";
+    while (<$ifh>) {
+        chomp;
+        my ($file, $descr) = split /\t+/, $_;
+        next if $file eq "t/test.pl"
+             or $file!~m!(?:\.t|/test\.pl)\z!
+             or (!$is_os2 and $file=~m!^(?:t/)?os2/!)
+             or (!$is_win32 and $file=~m!^(?:t/)?win32/!);
+        if ($file=~m!^(cpan|dist|ext/[^/]+)!) {
+            my $path = $1;
+            next unless $extension->{$path};
+        }
+        $missing{$file}++ unless $all{$file};
+    }
+    close $ifh;
+    return \%missing;
+}
+my $missing = find_in_manifest_but_missing();
+is(0+keys(%$missing), 0, "Nothing in manifest that we wouldn't test")
+    or print STDERR map { "# $_\n" } sort keys %$missing;
Index: gnu/usr.bin/perl/t/porting/update_authors.t
===================================================================
RCS file: gnu/usr.bin/perl/t/porting/update_authors.t
diff -N gnu/usr.bin/perl/t/porting/update_authors.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/porting/update_authors.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,190 @@
+#!./perl -w
+
+BEGIN {
+    chdir 't' if -d 't';
+    require "./test.pl";
+    set_up_inc('../lib', '..');
+}
+
+use TestInit qw(T);    # T is chdir to the top level
+use strict;
+
+find_git_or_skip('all');
+
+my $ok= do "./Porting/updateAUTHORS.pl";
+my $error= !$ok && $@;
+is($ok,1,"updateAUTHORS.pl compiles correctly");
+is($error, "", "updateAUTHORS.pl compiles without error");
+my $small_range= "544171f79ec3e50bb5003007e9f4ebb9a7e9fe84^^^"
+               . "..544171f79ec3e50bb5003007e9f4ebb9a7e9fe84";
+my $large_range= "6d02a9e121d037896df9b91ac623c1ab4c98c99a.."
+               . "544171f79ec3e50bb5003007e9f4ebb9a7e9fe8";
+my $with_unknown_range= "96a91e01636d3050d38ae3373a362c7d47a6647e^^^.."
+                      . "96a91e01636d3050d38ae3373a362c7d47a6647e";
+
+foreach my $tuple (
+    [ "--who", $small_range,
+               "James E Keenan, Karl Williamson, Mark Shelor." ],
+    [ "--files", $small_range, files_expected() ],
+    [ "--rank", $large_range, rank_expected()],
+    [ "--rank --percentage", $large_range, rank_percentage_expected()],
+    [ "--rank --percentage --cumulative", $large_range,
+        rank_percentage_cumulative_expected()],
+    [ "--thanks-applied", $large_range, thanks_applied_expected() ],
+    [ "--stats", $large_range, stats_expected() ],
+    [ "--stats --numstat", $large_range, stats_numstat_expected() ],
+    [ "--who" , $with_unknown_range, "Jarkko Hietaniemi.", "(no 'unknown' authors)" ],
+) {
+    my ($arg,$range,$expect, $msg_extra)= @$tuple;
+    my $skip_it;
+    for my $endpoint (split /\.+/, $range) {
+        my $parsed= `git rev-parse --verify -q $endpoint\{commit}`;
+        if (!$parsed or $?) {
+            $skip_it = 1;
+        }
+    }
+    SKIP: {
+        if ($skip_it) {
+            skip "commit range '$range' not available (this happens in CI)", 1;
+        }
+        $msg_extra= $msg_extra ? " $msg_extra" : "";
+        my $cmd= join " ", "$^X ./Porting/updateAUTHORS.pl",
+                           $arg, $range;
+        my $result= `$cmd`;
+        is(_clean($result), _clean($expect),"Option '$arg' works as expected$msg_extra")
+            or print STDERR "$cmd\n",$result
+    }
+}
+done_testing();
+exit 0;
+sub _clean {
+    my ($str)= @_;
+    $str=~s/\s+\z//;
+    $str=~s/[ ]+\n/\n/g;
+    return $str;
+}
+
+sub files_expected {
+    return <<'END_OF_REPORT';
+#Pos | commits | L++ | L-- | L+- | binary_change | Name
+#----+---------+-----+-----+-----+---------------+----------------------------------
+#1   |       1 |  28 |   0 |  28 |             0 | pod/perlfunc.pod
+#2   |       1 |  14 |   4 |  10 |             0 | cpan/Digest-SHA/lib/Digest/SHA.pm
+#3   |       1 |   5 |   5 |   0 |             0 | cpan/Digest-SHA/shasum
+#4   |       1 |   3 |   3 |   0 |             0 | cpan/Digest-SHA/src/sha64bit.c
+#5   |       1 |   3 |   3 |   0 |             0 | cpan/Digest-SHA/src/sha64bit.h
+#6   |       1 |   3 |   3 |   0 |             0 | cpan/Digest-SHA/src/sha.c
+#7   |       1 |   3 |   3 |   0 |             0 | cpan/Digest-SHA/src/sha.h
+#8   |       1 |   1 |   1 |   0 |             0 | Porting/Maintainers.pl
+#9   |       1 |   1 |   0 |   1 |             0 | AUTHORS
+END_OF_REPORT
+}
+
+sub rank_expected {
+    return <<'END_OF_REPORT';
+#Pos | Authored | Name
+#----+----------+-----------------
+#1   |       40 | Karl Williamson
+#2   |       32 | Yves Orton
+#3   |        8 | Paul Evans
+#4   |        6 | James E Keenan
+#5   |        4 | Elvin Aslanov
+#6   |        3 | Richard Leach
+#7   |        3 | Tony Cook
+#8   |        2 | Nicholas Clark
+#9   |        1 | Dan Kogai
+#10  |        1 | David Golden
+#11  |        1 | Graham Knop
+#12  |        1 | Mark Shelor
+#13  |        1 | Tomasz Konojacki
+END_OF_REPORT
+}
+
+sub rank_percentage_expected {
+    return <<'END_OF_REPORT';
+#Pos | %Authored | Name
+#----+-----------+-----------------
+#1   |     38.83 | Karl Williamson
+#2   |     31.07 | Yves Orton
+#3   |      7.77 | Paul Evans
+#4   |      5.83 | James E Keenan
+#5   |      3.88 | Elvin Aslanov
+#6   |      2.91 | Richard Leach
+#7   |      2.91 | Tony Cook
+#8   |      1.94 | Nicholas Clark
+#9   |      0.97 | Dan Kogai
+#10  |      0.97 | David Golden
+#11  |      0.97 | Graham Knop
+#12  |      0.97 | Mark Shelor
+#13  |      0.97 | Tomasz Konojacki
+END_OF_REPORT
+}
+
+sub rank_percentage_cumulative_expected {
+    return <<'END_OF_REPORT';
+#Pos | %Authored | Name
+#----+-----------+-----------------
+#1   |     38.83 | Karl Williamson
+#2   |     69.90 | Yves Orton
+#3   |     77.67 | Paul Evans
+#4   |     83.50 | James E Keenan
+#5   |     87.38 | Elvin Aslanov
+#6   |     90.29 | Richard Leach
+#7   |     93.20 | Tony Cook
+#8   |     95.15 | Nicholas Clark
+#9   |     96.12 | Dan Kogai
+#10  |     97.09 | David Golden
+#11  |     98.06 | Graham Knop
+#12  |     99.03 | Mark Shelor
+#13  |    100.00 | Tomasz Konojacki
+END_OF_REPORT
+}
+
+sub thanks_applied_expected {
+    return <<'END_OF_REPORT';
+#Pos | Applied | Name
+#----+---------+----------------
+#1   |       7 | Karl Williamson
+#2   |       4 | James E Keenan
+END_OF_REPORT
+}
+
+sub stats_expected {
+    return <<'END_OF_REPORT';
+#Pos | Authored | Applied | Committed | Name
+#----+----------+---------+-----------+-----------------
+#1   |       40 |       7 |        47 | Karl Williamson
+#2   |       32 |       0 |        31 | Yves Orton
+#3   |        8 |       0 |         8 | Paul Evans
+#4   |        6 |       4 |        10 | James E Keenan
+#5   |        4 |       0 |         1 | Elvin Aslanov
+#6   |        3 |       0 |         3 | Tony Cook
+#7   |        3 |       0 |         0 | Richard Leach
+#8   |        2 |       0 |         2 | Nicholas Clark
+#9   |        1 |       0 |         1 | Tomasz Konojacki
+#10  |        1 |       0 |         0 | Dan Kogai
+#11  |        1 |       0 |         0 | David Golden
+#12  |        1 |       0 |         0 | Graham Knop
+#13  |        1 |       0 |         0 | Mark Shelor
+END_OF_REPORT
+}
+
+sub stats_numstat_expected {
+    return <<'END_OF_REPORT';
+#Pos | Authored | Applied | Committed | NFiles |  L++ |  L-- |  L+- | Name
+#----+----------+---------+-----------+--------+------+------+------+-----------------
+#1   |       40 |       7 |        47 |     14 | 1179 |  874 |  305 | Karl Williamson
+#2   |       32 |       0 |        31 |     25 | 2547 | 1481 | 1066 | Yves Orton
+#3   |        8 |       0 |         8 |     15 |  161 |  102 |   59 | Paul Evans
+#4   |        6 |       4 |        10 |      4 |   44 |   11 |   33 | James E Keenan
+#5   |        4 |       0 |         1 |      4 |   16 |   13 |    3 | Elvin Aslanov
+#6   |        3 |       0 |         3 |      7 |    8 |    7 |    1 | Tony Cook
+#7   |        3 |       0 |         0 |     13 |   75 |   51 |   24 | Richard Leach
+#8   |        2 |       0 |         2 |      2 |   24 |    1 |   23 | Nicholas Clark
+#9   |        1 |       0 |         1 |      2 |   21 |   15 |    6 | Tomasz Konojacki
+#10  |        1 |       0 |         0 |      8 |   33 |   22 |   11 | Mark Shelor
+#11  |        1 |       0 |         0 |      5 |   93 |    7 |   86 | Graham Knop
+#12  |        1 |       0 |         0 |      4 |    9 |    4 |    5 | Dan Kogai
+#13  |        1 |       0 |         0 |      2 |   19 |    6 |   13 | David Golden
+END_OF_REPORT
+}
Index: gnu/usr.bin/perl/t/re/anyof.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/anyof.t,v
diff -u -p -a -u -p -r1.1.1.4 anyof.t
--- gnu/usr.bin/perl/t/re/anyof.t	15 Feb 2023 01:33:04 -0000	1.1.1.4
+++ gnu/usr.bin/perl/t/re/anyof.t	21 Feb 2024 15:47:03 -0000
@@ -137,6 +137,8 @@ my @tests = (
     '(?a)[[:^ascii:]\x{2C2}]' => 'NANYOFM[\x00-\x7F]',
     '[[:cntrl:]]' => 'POSIXD[:cntrl:]',
     '[^[:^print:][:^ascii:]]' => 'POSIXA[:print:]',
+    '[^[:^print:][:^ascii:]b]' => 'ANYOF[^\x00-\x1Fb\x7F-\xFF][0100-INFTY]',
+    '[^[:^print:][:^ascii:]b\p{Is_unresolved}]' => 'ANYOF[^\x00-\x1Fb\x7F-\xFF{+main::Is_unresolved}0100-INFTY]',
     '[[:blank:]]' => 'POSIXD[:blank:]',
     '[ [:blank:]]' => 'POSIXD[:blank:]',
     '[_[:blank:]]' => 'ANYOFD[\t _{utf8}\xA0][1680 2000-200A 202F 205F 3000]',
@@ -489,7 +491,7 @@ my @tests = (
     '[\x{00}-{INFTY}]' => 'SANY',
     '[\x{101}-{INFTY}]' => 'ANYOFH[0101-INFTY]',
     '[\x{101}-{HIGHEST_CP}]' => 'ANYOFH[0101-HIGHEST_CP]',
-    '[\x{102}\x{104}]' => 'ANYOFHb[0102 0104]',
+    '[\x{102}\x{104}]' => 'ANYOFHbbm[0102 0104]',
     '[\x{102}-\x{104}{HIGHEST_CP}]' => 'ANYOFH[0102-0104 HIGHEST_CP]',
     '[\x{102}-\x{104}\x{101}]' => 'ANYOFRb[0101-0104]',
     '[\x{102}-\x{104}\x{101}-{INFTY}]' => 'ANYOFH[0101-INFTY]',
@@ -506,86 +508,86 @@ my @tests = (
     '[\x{102}-\x{104}\x{105}]' => 'ANYOFRb[0102-0105]',
     '[\x{102}-\x{104}\x{105}-{INFTY}]' => 'ANYOFH[0102-INFTY]',
     '[\x{102}-\x{104}\x{105}-{HIGHEST_CP}]' => 'ANYOFH[0102-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{106}]' => 'ANYOFHb[0102-0104 0106]',
+    '[\x{102}-\x{104}\x{106}]' => 'ANYOFHbbm[0102-0104 0106]',
     '[\x{102}-\x{104}\x{106}-{INFTY}]' => 'ANYOFH[0102-0104 0106-INFTY]',
     '[\x{102}-\x{104}\x{106}-{HIGHEST_CP}]' => 'ANYOFH[0102-0104 0106-HIGHEST_CP]',
     '[\x{102}-\x{104}\x{108}-\x{10A}{HIGHEST_CP}]' => 'ANYOFH[0102-0104 0108-010A HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}]' => 'ANYOFHb[0101-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}]' => 'ANYOFHbbm[0101-0104 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-{INFTY}]' => 'ANYOFH[0101-INFTY]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-{HIGHEST_CP}]' => 'ANYOFH[0101-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{102}]' => 'ANYOFHb[0101-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{103}]' => 'ANYOFHb[0101-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{104}]' => 'ANYOFHb[0101-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{105}]' => 'ANYOFHb[0101-0105 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{106}]' => 'ANYOFHb[0101-0106 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{102}]' => 'ANYOFHbbm[0101-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{103}]' => 'ANYOFHbbm[0101-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{104}]' => 'ANYOFHbbm[0101-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{105}]' => 'ANYOFHbbm[0101-0105 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{106}]' => 'ANYOFHbbm[0101-0106 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{107}]' => 'ANYOFRb[0101-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{108}]' => 'ANYOFRb[0101-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{109}]' => 'ANYOFRb[0101-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{10A}]' => 'ANYOFRb[0101-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{101}-\x{10B}]' => 'ANYOFRb[0101-010B]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}]' => 'ANYOFHb[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-{INFTY}]' => 'ANYOFH[0102-INFTY]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-{HIGHEST_CP}]' => 'ANYOFH[0102-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{102}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{103}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{104}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{105}]' => 'ANYOFHb[0102-0105 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{106}]' => 'ANYOFHb[0102-0106 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{102}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{103}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{104}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{105}]' => 'ANYOFHbbm[0102-0105 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{106}]' => 'ANYOFHbbm[0102-0106 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{107}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{108}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{109}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{10A}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{10B}]' => 'ANYOFRb[0102-010B]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{102}-\x{10C}]' => 'ANYOFRb[0102-010C]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}]' => 'ANYOFHb[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-{INFTY}]' => 'ANYOFH[0102-INFTY]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-{HIGHEST_CP}]' => 'ANYOFH[0102-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{104}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{105}]' => 'ANYOFHb[0102-0105 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{106}]' => 'ANYOFHb[0102-0106 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{104}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{105}]' => 'ANYOFHbbm[0102-0105 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{106}]' => 'ANYOFHbbm[0102-0106 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{107}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{108}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{109}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{10A}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{10B}]' => 'ANYOFRb[0102-010B]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{103}-\x{10C}]' => 'ANYOFRb[0102-010C]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}]' => 'ANYOFHb[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-{INFTY}]' => 'ANYOFH[0102-INFTY]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-{HIGHEST_CP}]' => 'ANYOFH[0102-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{105}]' => 'ANYOFHb[0102-0105 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{106}]' => 'ANYOFHb[0102-0106 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{105}]' => 'ANYOFHbbm[0102-0105 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{106}]' => 'ANYOFHbbm[0102-0106 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{107}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{108}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{109}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{10A}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{10B}]' => 'ANYOFRb[0102-010B]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{104}-\x{10C}]' => 'ANYOFRb[0102-010C]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}]' => 'ANYOFHb[0102-0105 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}]' => 'ANYOFHbbm[0102-0105 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-{INFTY}]' => 'ANYOFH[0102-INFTY]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-{HIGHEST_CP}]' => 'ANYOFH[0102-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{106}]' => 'ANYOFHb[0102-0106 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{106}]' => 'ANYOFHbbm[0102-0106 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{107}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{108}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{109}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{10A}]' => 'ANYOFRb[0102-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{10B}]' => 'ANYOFRb[0102-010B]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{105}-\x{10C}]' => 'ANYOFRb[0102-010C]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}]' => 'ANYOFHb[0102-0104 0106 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}]' => 'ANYOFHbbm[0102-0104 0106 0108-010A]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-{INFTY}]' => 'ANYOFH[0102-0104 0106-INFTY]',
     '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-{HIGHEST_CP}]' => 'ANYOFH[0102-0104 0106-HIGHEST_CP]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{107}]' => 'ANYOFHb[0102-0104 0106-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{108}]' => 'ANYOFHb[0102-0104 0106-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{109}]' => 'ANYOFHb[0102-0104 0106-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{10A}]' => 'ANYOFHb[0102-0104 0106-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{10B}]' => 'ANYOFHb[0102-0104 0106-010B]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{10C}]' => 'ANYOFHb[0102-0104 0106-010C]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{107}]' => 'ANYOFHb[0102-0104 0107-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{108}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{109}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{10A}]' => 'ANYOFHb[0102-0104 0108-010A]',
-    '[\x{102}-\x{104}\x{108}-\x{10A}\x{10B}]' => 'ANYOFHb[0102-0104 0108-010B]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{107}]' => 'ANYOFHbbm[0102-0104 0106-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{108}]' => 'ANYOFHbbm[0102-0104 0106-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{109}]' => 'ANYOFHbbm[0102-0104 0106-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{10A}]' => 'ANYOFHbbm[0102-0104 0106-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{10B}]' => 'ANYOFHbbm[0102-0104 0106-010B]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{106}-\x{10C}]' => 'ANYOFHbbm[0102-0104 0106-010C]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{107}]' => 'ANYOFHbbm[0102-0104 0107-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{108}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{109}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{10A}]' => 'ANYOFHbbm[0102-0104 0108-010A]',
+    '[\x{102}-\x{104}\x{108}-\x{10A}\x{10B}]' => 'ANYOFHbbm[0102-0104 0108-010B]',
     '[\x{103}\x{102}]' => 'EXACTFU_REQ8 <\x{103}>',
-    '[\x{104}\x{102}]' => 'ANYOFHb[0102 0104]',
+    '[\x{104}\x{102}]' => 'ANYOFHbbm[0102 0104]',
     '[\x{104}\x{102}\x{103}]' => 'ANYOFRb[0102-0104]',
     '[\x{106}-{INFTY}\x{104}]' => 'ANYOFH[0104 0106-INFTY]',
     '[\x{106}-{INFTY}\x{104}-{INFTY}]' => 'ANYOFH[0104-INFTY]',
Index: gnu/usr.bin/perl/t/re/charset.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/charset.t,v
diff -u -p -a -u -p -r1.4 charset.t
--- gnu/usr.bin/perl/t/re/charset.t	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/t/re/charset.t	21 Feb 2024 15:47:03 -0000
@@ -1,4 +1,5 @@
 # Test the /a, /d, etc regex modifiers
+# For comprehensive tests, set $ENV{PERL_DEBUG_FULL_TEST} to some true value
 
 BEGIN {
     chdir 't' if -d 't';
@@ -15,33 +16,116 @@ use Config;
 
 plan('no_plan');
 
-# Each case is a valid element of its hash key.  Choose, where available, an
-# ASCII-range, Latin-1 non-ASCII range, and above Latin1 range code point.
+# Each case is a valid element of its hash key.  Choose, where available, at
+# least one of each type: ASCII-range, non-ASCII range Latin-1, and above
+# Latin1 range code point.
 my %testcases = (
-    '\w' => [ ord("A"), utf8::unicode_to_native(0xE2), 0x16B ],   # Below expects these to all be alpha
-    '\d' => [ ord("0"), 0x0662 ],
-    '\s' => [ ord("\t"), utf8::unicode_to_native(0xA0), 0x1680 ],  # Below expects these to be [:blank:]
-    '[:cntrl:]' => [ utf8::unicode_to_native(0x00), utf8::unicode_to_native(0x88) ],
-    '[:graph:]' => [ ord("&"), utf8::unicode_to_native(0xF7), 0x02C7 ], # Below expects these to be
-                                                                     # [:print:]
-    '[:lower:]' => [ ord("g"), utf8::unicode_to_native(0xE3), 0x0127 ],
-    '[:punct:]' => [ ord('`'), ord('^'), ord('~'), ord('<'), ord('='), ord('>'), ord('|'), ord('-'), ord(','), ord(';'), ord(':'), ord('!'), ord('?'), ord('/'), ord('.'), ord('"'), ord('('), ord(')'), ord('['), ord(']'), ord('{'), ord('}'), ord('@'), ord('$'), ord('*'), ord('\\'), ord('&'), ord('#'), ord('%'), ord('+'), ord("'"), utf8::unicode_to_native(0xBF), 0x055C ],
-    '[:upper:]' => [ ord("G"), utf8::unicode_to_native(0xC3), 0x0126 ],
-    '[:xdigit:]' => [ ord("4"), 0xFF15 ],
+    '\w' => [ 0x16B ],
+    '\d' => [ ord("0"), ord("1"), ord("2"), ord("3"), ord("4"), ord("5"),
+              ord("6"), ord("7"), ord("8"), ord("9"),
+              0x0662,
+            ],
+    '[:blank:]' => [ ord("\t"), ord(" "),
+                     0x1680
+                   ],
+    '\s' => [ ord("\t"), ord("\n"), ord("\cK"), ord("\f"), ord("\r"),
+              ord(" "),
+              utf8::unicode_to_native(0x85),
+              utf8::unicode_to_native(0xA0),
+              0x2029,
+            ],
+    '[:graph:]' => [ 0x02C7 ],
+    '[:lower:]' => [ ord("a"), ord("b"), ord("c"), ord("d"), ord("e"),
+                     ord("f"), ord("g"), ord("h"), ord("i"), ord("j"),
+                     ord("k"), ord("l"), ord("m"), ord("n"), ord("o"),
+                     ord("p"), ord("q"), ord("r"), ord("s"), ord("t"),
+                     ord("u"), ord("v"), ord("w"), ord("x"), ord("y"),
+                     ord("z"),
+                     0x0127 ],
+    '[:punct:]' => [ ord('`'), ord('^'), ord('~'), ord('<'), ord('='),
+                     ord('>'), ord('|'), ord('-'), ord(','), ord(';'),
+                     ord(':'), ord('!'), ord('?'), ord('/'), ord('.'),
+                     ord('"'), ord('('), ord(')'), ord('['), ord(']'),
+                     ord('{'), ord('}'), ord('@'), ord('$'), ord('*'),
+                     ord('\\'), ord('&'), ord('#'), ord('%'), ord('+'),
+                     ord("'"),
+                     0x055C
+                   ],
+    '[:upper:]' => [ ord("A"), ord("B"), ord("C"), ord("D"), ord("E"),
+                     ord("F"), ord("G"), ord("H"), ord("I"), ord("J"),
+                     ord("K"), ord("L"), ord("M"), ord("N"), ord("O"),
+                     ord("P"), ord("Q"), ord("R"), ord("S"), ord("T"),
+                     ord("U"), ord("V"), ord("W"), ord("X"), ord("Y"),
+                     ord("Z"),
+                     0x0126
+                   ],
+    '[:xdigit:]' => [ ord("0"), ord("1"), ord("2"), ord("3"), ord("4"),
+                      ord("5"), ord("6"), ord("7"), ord("8"), ord("9"),
+                      ord("A"), ord("B"), ord("C"), ord("D"), ord("E"),
+                      ord("F"), ord("a"), ord("b"), ord("c"), ord("d"),
+                      ord("e"), ord("f"),
+                      0xFF15,
+                    ],
 );
 
-$testcases{'[:digit:]'} = $testcases{'\d'};
-$testcases{'[:alnum:]'} = $testcases{'\w'};
-$testcases{'[:alpha:]'} = $testcases{'\w'};
-$testcases{'[:blank:]'} = $testcases{'\s'};
-$testcases{'[:print:]'} = $testcases{'[:graph:]'};
-$testcases{'[:space:]'} = $testcases{'\s'};
-$testcases{'[:word:]'} = $testcases{'\w'};
+if ($ENV{PERL_DEBUG_FULL_TEST}) {
+    push @{$testcases{'[:cntrl:]'}}, utf8::unicode_to_native($_)
+                                               for (0x00 .. 0x1F, 0x7F .. 0x9F);
+    push @{$testcases{'[:blank:]'}}, utf8::unicode_to_native(0xA0);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xA1);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native($_)
+                                                            for (0xA2 .. 0xA6);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xA7);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xA8);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xA9);
+    push @{$testcases{'[:lower:]'}}, utf8::unicode_to_native(0xAA);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xAB);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native($_)
+                                                            for (0xAC .. 0xB4);
+    push @{$testcases{'[:lower:]'}}, utf8::unicode_to_native(0xB5);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xB6);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xB7);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xB8);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xB9);
+    push @{$testcases{'[:lower:]'}}, utf8::unicode_to_native(0xBA);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xBB);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xBC);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xBD);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xBE);
+    push @{$testcases{'[:punct:]'}}, utf8::unicode_to_native(0xBF);
+    push @{$testcases{'[:upper:]'}}, utf8::unicode_to_native($_)
+                                                            for (0xC0 .. 0xD6);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xD7);
+    push @{$testcases{'[:upper:]'}}, utf8::unicode_to_native($_)
+                                                            for (0xD8 .. 0xDE);
+    push @{$testcases{'[:lower:]'}}, utf8::unicode_to_native($_)
+                                                            for (0xDF .. 0xF6);
+    push @{$testcases{'[:graph:]'}}, utf8::unicode_to_native(0xF7);
+    push @{$testcases{'[:lower:]'}}, utf8::unicode_to_native($_)
+                                                            for (0xF8 .. 0xF8);
+
+    push @{$testcases{'[:alpha:]'}}, @{$testcases{'[:lower:]'}},
+                                 @{$testcases{'[:upper:]'}};
+    push @{$testcases{'[:alnum:]'}}, @{$testcases{'[:alpha:]'}},
+                                 @{$testcases{'\d'}};
+    push @{$testcases{'\w'}}, @{$testcases{'[:alnum:]'}}, ord("_");
+    push @{$testcases{'[:print:]'}}, @{$testcases{'[:graph:]'}},
+                                ord(" "),
+                                utf8::unicode_to_native(0xA0);
+}
+
+@{$testcases{'[:digit:]'}} = @{$testcases{'\d'}};
+@{$testcases{'[:space:]'}} = @{$testcases{'\s'}};
+@{$testcases{'[:word:]'}}  = @{$testcases{'\w'}};
+
+#use Data::Dumper;
+#$Data::Dumper::Sortkeys = 1;
+#print STDERR Dumper \%testcases;
 
 my $utf8_locale;
 
 my @charsets = qw(a d u aa);
-my $locales_ok = locales_enabled('LC_CTYPE');
+my $locales_ok = locales_enabled([ 'LC_CTYPE', 'LC_ALL' ]);
 if (! is_miniperl() && $locales_ok) {
     require POSIX;
     my $current_locale = POSIX::setlocale( &POSIX::LC_ALL, "C") // "";
@@ -170,8 +254,10 @@ foreach my $charset (@charsets) {
                     if ($bracketed) {
 
                         # Adds an extra char to the character class to make sure
-                        # that the class doesn't get optimized away.
-                        $lb = ($bracketed) ? '[_' : "";
+                        # that the class doesn't get optimized away.  (Make
+                        # sure to not use the character being tested.)
+                        my $extra = ($char eq "_") ? ":" : "_";
+                        $lb = ($bracketed) ? "[$extra" : "";
                         $rb = ($bracketed) ? ']' : "";
                     }
                     else {  # [:posix:] must be inside outer [ ]
@@ -215,6 +301,9 @@ foreach my $charset (@charsets) {
                 # Test \b, \B adjacent to a non-word char, both before it and
                 # after.  We test with ASCII, Latin1 and Unicode non-word chars
                 foreach my $space_ord (@{$testcases{'\s'}}) {
+
+                    # This is an anomalous character, so skip.
+                    next if $space_ord == ord("\n");
 
                     # Useless to try to test non-utf8 when the ord itself
                     # forces utf8
Index: gnu/usr.bin/perl/t/re/fold_grind.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/fold_grind.pl,v
diff -u -p -a -u -p -r1.1.1.2 fold_grind.pl
--- gnu/usr.bin/perl/t/re/fold_grind.pl	15 Feb 2023 01:33:04 -0000	1.1.1.2
+++ gnu/usr.bin/perl/t/re/fold_grind.pl	21 Feb 2024 15:47:03 -0000
@@ -17,10 +17,8 @@ BEGIN {
     if ($^O eq 'dec_osf') {
       skip_all("$^O cannot handle this test");
     }
-    my $time_out_factor = $ENV{PERL_TEST_TIME_OUT_FACTOR} || 1;
-    $time_out_factor = 1 if $time_out_factor < 1;
 
-    watchdog(5 * 60 * $time_out_factor);
+    watchdog(5 * 60);
     require './loc_tools.pl';
 }
 
@@ -42,6 +40,8 @@ if ($charset eq 'T') {
     $use_turkic_rules = 1;
 }
 
+my $has_LC_CTYPE = is_category_valid('LC_CTYPE');
+
 # Special-cased characters in the .c's that we want to make sure get tested.
 my %be_sure_to_test = (
         chr utf8::unicode_to_native(0xDF) => 1, # LATIN_SMALL_LETTER_SHARP_S
@@ -591,7 +591,9 @@ foreach my $test (sort { numerically } k
     # Now grind out tests, using various combinations.
     {
       my $charset_mod = lc $charset;
-      my $current_locale = setlocale(&POSIX::LC_CTYPE);
+      my $current_locale = ($has_LC_CTYPE)
+                           ? setlocale(&POSIX::LC_CTYPE)
+                           : 'C';
       $current_locale = 'C locale' if $current_locale eq 'C';
       $okays = 0;
       $this_iteration = 0;
@@ -768,7 +770,8 @@ foreach my $test (sort { numerically } k
                                                   || ($charset eq 'd' && $utf8_pattern)
                                                   ||  $charset =~ /a/);
           my $upgrade_pattern = "";
-          $upgrade_pattern = ' utf8::upgrade($p);' if ! $pattern_above_latin1 && $utf8_pattern;
+          $upgrade_pattern = ' utf8::upgrade($rhs);'
+            if ! $pattern_above_latin1 && $utf8_pattern;
 
           my $lhs = join "", @x_target;
           my $lhs_str = eval qq{"$lhs"}; fail($@) if $@;
@@ -838,17 +841,29 @@ foreach my $test (sort { numerically } k
           $op = '!~' if $should_fail;
 
           my $todo = 0;  # No longer any todo's
-          my $eval = "my \$c = \"$lhs$rhs\"; my \$p = qr/(?$charset_mod:^($rhs)\\1\$)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+          my $eval = "my \$c = \"$lhs$rhs\"; my \$rhs = \"$rhs\"; "
+                   . $upgrade_pattern
+                   . " my \$p = qr/(?$charset_mod:^(\$rhs)\\1\$)/i;"
+                   . "$upgrade_target \$c $op \$p";
           run_test($eval, $todo, ($charset_mod eq 'l'), "");
 
-          $eval = "my \$c = \"$lhs$rhs\"; my \$p = qr/(?$charset_mod:^(?<grind>$rhs)\\k<grind>\$)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+          $eval = "my \$c = \"$lhs$rhs\"; my \$rhs = \"$rhs\"; "
+                . $upgrade_pattern
+                . " my \$p = qr/(?$charset_mod:^(?<grind>\$rhs)\\k<grind>\$)/i;"
+                . "$upgrade_target \$c $op \$p";
           run_test($eval, $todo, ($charset_mod eq 'l'), "");
 
           if ($lhs ne $rhs) {
-            $eval = "my \$c = \"$rhs$lhs\"; my \$p = qr/(?$charset_mod:^($rhs)\\1\$)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+            $eval = "my \$c = \"$rhs$lhs\"; my \$rhs = \"$rhs\"; "
+                  . $upgrade_pattern
+                  . " my \$p = qr/(?$charset_mod:^(\$rhs)\\1\$)/i;"
+                  . "$upgrade_target \$c $op \$p";
             run_test($eval, "", ($charset_mod eq 'l'), "");
 
-            $eval = "my \$c = \"$rhs$lhs\"; my \$p = qr/(?$charset_mod:^(?<grind>$rhs)\\k<grind>\$)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+            $eval = "my \$c = \"$rhs$lhs\"; my \$rhs = \"$rhs\"; "
+                  . $upgrade_pattern
+                  . " my \$p = qr/(?$charset_mod:^(?<grind>\$rhs)\\k<grind>\$)/i;"
+                  . "$upgrade_target \$c $op \$p";
             run_test($eval, "", ($charset_mod eq 'l'), "");
           }
 
@@ -862,7 +877,10 @@ foreach my $test (sort { numerically } k
             use bytes;
             $alternate = 'q' x length $evaled;
           }
-          $eval = "my \$c = \"$lhs\"; my \$p = qr/$rhs|$alternate/i$charset_mod;$upgrade_target$upgrade_pattern \$c $op \$p";
+          $eval = "my \$c = \"$lhs\"; my \$rhs = \"$rhs\"; "
+                . $upgrade_pattern
+                . " my \$p = qr/\$rhs|$alternate/i$charset_mod;"
+                . "$upgrade_target \$c $op \$p";
           run_test($eval, "", ($charset_mod eq 'l'), "");
 
           # Check that works when the folded character follows something that
@@ -878,11 +896,17 @@ foreach my $test (sort { numerically } k
           # quick, and this insulates these tests from changes in the
           # implementation.)
           for my $quantifier ('?', '??', '*', '*?', '+', '+?', '{1,2}', '{1,2}?') {
-            $eval = "my \$c = \"_$lhs\"; my \$p = qr/(?$charset_mod:.$quantifier$rhs)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+            $eval = "my \$c = \"_$lhs\"; my \$rhs = \"$rhs\"; $upgrade_pattern "
+                  . "my \$p = qr/(?$charset_mod:.$quantifier\$rhs)/i;"
+                  . "$upgrade_target \$c $op \$p";
             run_test($eval, "", ($charset_mod eq 'l'), "");
-            $eval = "my \$c = \"__$lhs\"; my \$p = qr/(?$charset_mod:(?:..)$quantifier$rhs)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+            $eval = "my \$c = \"__$lhs\"; my \$rhs = \"$rhs\"; $upgrade_pattern "
+                  . "my \$p = qr/(?$charset_mod:(?:..)$quantifier\$rhs)/i;"
+                  . "$upgrade_target \$c $op \$p";
             run_test($eval, "", ($charset_mod eq 'l'), "");
-            $eval = "my \$c = \"__$lhs\"; my \$p = qr/(?$charset_mod:(?:.|\\R)$quantifier$rhs)/i;$upgrade_target$upgrade_pattern \$c $op \$p";
+            $eval = "my \$c = \"__$lhs\"; my \$rhs = \"$rhs\"; $upgrade_pattern "
+                  . "my \$p = qr/(?$charset_mod:(?:.|\\R)$quantifier\$rhs)/i;"
+                  . "$upgrade_target \$c $op \$p";
             run_test($eval, "", ($charset_mod eq 'l'), "");
           }
 
@@ -960,7 +984,8 @@ foreach my $test (sort { numerically } k
                             my $must_match = ! $can_match_null || $both_sides;
                             # for performance, but doing this missed many failures
                             #next unless $must_match;
-                            my $quantified = "(?$charset_mod:$l_anchor$prepend$interior${quantifier}$append$r_anchor)";
+                            my $quantified = "(?$charset_mod:$l_anchor$prepend"
+                                           . "$interior${quantifier}$append$r_anchor)";
                             my $op;
                             if ($must_match && $should_fail)  {
                                 $op = 0;
@@ -1017,8 +1042,9 @@ foreach my $test (sort { numerically } k
                                         . '"); '
                             }
                             $desc .= "my \$c = \"$prepend$lhs$append\"; "
-                                    . "my \$p = qr/$quantified/i;"
-                                    . "$upgrade_target$upgrade_pattern "
+                                    . "my \$rhs = \"\"; $upgrade_pattern"
+                                    . "my \$p = qr/$quantified\$rhs/i;"
+                                    . "$upgrade_target "
                                     . "\$c " . ($op ? "=~" : "!~") . " \$p; ";
                             if ($DEBUG) {
                               $desc .= (
@@ -1037,9 +1063,10 @@ foreach my $test (sort { numerically } k
                             }
 
                             my $c = "$prepend$lhs_str$append";
-                            my $p = qr/$quantified/i;
+                            my $p = "$quantified"; # string copy deliberate
                             utf8::upgrade($c) if length($upgrade_target);
                             utf8::upgrade($p) if length($upgrade_pattern);
+                            $p = qr/$p/i;
                             my $res = $op ? ($c =~ $p): ($c !~ $p);
 
                             if (!$res || $list_all_tests) {
Index: gnu/usr.bin/perl/t/re/pat.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/pat.t,v
diff -u -p -a -u -p -r1.15 pat.t
--- gnu/usr.bin/perl/t/re/pat.t	15 Feb 2023 01:36:37 -0000	1.15
+++ gnu/usr.bin/perl/t/re/pat.t	21 Feb 2024 15:47:03 -0000
@@ -27,7 +27,7 @@ skip_all_without_unicode_tables();
 
 my $has_locales = locales_enabled('LC_CTYPE');
 
-plan tests => 1046;  # Update this when adding/deleting tests.
+plan tests => 1265;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -35,6 +35,34 @@ run_tests() unless caller;
 # Tests start here.
 #
 sub run_tests {
+    {
+        # see https://github.com/Perl/perl5/issues/12948
+        my $string="ABCDEFGHIJKL";
+        my $pat= "(.)" x length($string);
+        my $ok= $string=~/^$pat\z/;
+        foreach my $n (1 .. length($string)) {
+            $ok= eval sprintf 'is $%d, "%s", q($%d = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok($ok, "eval for \$$n test");
+            $ok= eval sprintf 'is ${%d}, "%s", q(${%d} = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok($ok, "eval for \${$n} test");
+
+            $ok= eval sprintf 'is $0%d, "%s", q($0%d = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok(!$ok, "eval failed as expected for \$0$n test");
+            $ok= eval sprintf 'is ${0%d}, "%s", q(${0%d} = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok(!$ok, "eval failed as expected for \${0$n} test");
+
+            no strict 'refs';
+            $ok= eval sprintf 'is ${0b%b}, "%s", q(${0b%b} = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok($ok, sprintf "eval for \${0b%b} test", $n);
+            $ok= eval sprintf 'is ${0x%x}, "%s", q(${0x%x} = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok($ok, sprintf "eval for \${0x%x} test", $n);
+            $ok= eval sprintf 'is ${0b%08b}, "%s", q(${0b%08b} = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok($ok, sprintf "eval for \${0b%b} test", $n);
+            $ok= eval sprintf 'is ${0x%04x}, "%s", q(${0x%04x} = %s); 1', ($n, substr($string,$n-1,1))x2;
+            ok($ok, sprintf "eval for \${0x%04x} test", $n);
+        }
+    }
+
     my $sharp_s = uni_to_native("\xdf");
 
     {
@@ -322,7 +350,7 @@ sub run_tests {
 
 	#  Defaults assumed if this fails
 	eval { require Config; };
-        $::reg_infty   = $Config::Config{reg_infty} // 65535;
+        $::reg_infty   = $Config::Config{reg_infty} // ((1<<31)-1);
         $::reg_infty_m = $::reg_infty - 1;
         $::reg_infty_p = $::reg_infty + 1;
         $::reg_infty_m = $::reg_infty_m;   # Suppress warning.
@@ -330,23 +358,28 @@ sub run_tests {
         # As well as failing if the pattern matches do unexpected things, the
         # next three tests will fail if you should have picked up a lower-than-
         # default value for $reg_infty from Config.pm, but have not.
+        SKIP: {
+            skip "REG_INFTY too big to test ($::reg_infty)", 7
+                if $::reg_infty > (1<<16);
 
-        is(eval q{('aaa' =~ /(a{1,$::reg_infty_m})/)[0]}, 'aaa', $message);
-        is($@, '', $message);
-        is(eval q{('a' x $::reg_infty_m) =~ /a{$::reg_infty_m}/}, 1, $message);
-        is($@, '', $message);
-        isnt(q{('a' x ($::reg_infty_m - 1)) !~ /a{$::reg_infty_m}/}, 1, $message);
-        is($@, '', $message);
+            is(eval q{('aaa' =~ /(a{1,$::reg_infty_m})/)[0]}, 'aaa', $message);
+            is($@, '', $message);
+            is(eval q{('a' x $::reg_infty_m) =~ /a{$::reg_infty_m}/}, 1, $message);
+            is($@, '', $message);
+            isnt(q{('a' x ($::reg_infty_m - 1)) !~ /a{$::reg_infty_m}/}, 1, $message);
+            is($@, '', $message);
+
+            # It should be 'a' x 2147483647, but that exhausts memory on
+            # reasonably sized modern machines
+            like('a' x $::reg_infty_m, qr/a{1,}/,
+                 "{1,} matches more times than REG_INFTY");
+        }
 
         eval "'aaa' =~ /a{1,$::reg_infty}/";
         like($@, qr/^\QQuantifier in {,} bigger than/, $message);
         eval "'aaa' =~ /a{1,$::reg_infty_p}/";
         like($@, qr/^\QQuantifier in {,} bigger than/, $message);
 
-        # It should be 'a' x 2147483647, but that exhausts memory on
-        # reasonably sized modern machines
-        like('a' x $::reg_infty_p, qr/a{1,}/,
-             "{1,} matches more times than REG_INFTY");
     }
 
     {
@@ -365,12 +398,17 @@ sub run_tests {
 
         for my $l (@trials) { # Ordered to free memory
             my $a = 'a' x $l;
-	    my $message = "Long monster, length = $l";
-	    like("ba$a=", qr/a$a=/, $message);
-            unlike("b$a=", qr/a$a=/, $message);
-            like("b$a=", qr/ba+=/, $message);
-
-	    like("ba$a=", qr/b(?:a|b)+=/, $message);
+            # we do not use like() or unlike() here as the string
+            # is very long and is not useful if the match fails,
+            # the useful part
+	    ok("ba$a=" =~ m/a$a=/, sprintf
+                'Long monster: ("ba".("a" x %d)."=") =~ m/aa...a=/', $l);
+            ok("b$a="  !~ m/a$a=/, sprintf
+                'Long monster: ("b" .("a" x %d)."=") !~ m/aa...a=/', $l);
+            ok("b$a="  =~ m/ba+=/, sprintf
+                'Long monster: ("b" .("a" x %d)."=") =~ m/ba+=/', $l);
+	    ok("ba$a=" =~ m/b(?:a|b)+=/, sprintf
+                'Long monster: ("ba".("a" x %d)."=") =~ m/b(?:a|b)+=/', $l);
         }
     }
 
@@ -2345,6 +2383,136 @@ SKIP:
         }, 'ok', {}, 'gh17743: test regexp corruption (2)');
     }
 
+    {
+        # Test branch reset (?|...|...) in list context. This was reported
+        # in GH Issue #20710, in relation to breaking App::pl. See
+        # https://github.com/Perl/perl5/issues/20710#issuecomment-1404549785
+        my $ok = 0;
+        my ($w,$x,$y,$z);
+        $ok = ($x,$y) = "ab"=~/(?|(p)(q)|(x)(y)|(a)(b))/;
+        ok($ok,"Branch reset pattern 1 matched as expected");
+        is($x,"a","Branch reset in list context check 1 (a)");
+        is($y,"b","Branch reset in list context check 2 (b)");
+
+        $ok = ($x,$y,$z) = "xyz"=~/(?|(p)(q)|(x)(y)|(a)(b))(z)/;
+        ok($ok,"Branch reset pattern 2 matched as expected");
+        is($x,"x","Branch reset in list context check 3 (x)");
+        is($y,"y","Branch reset in list context check 4 (y)");
+        is($z,"z","Branch reset in list context check 5 (z)");
+
+        $ok = ($w,$x,$y) = "wpq"=~/(w)(?|(p)(q)|(x)(y)|(a)(b))/;
+        ok($ok,"Branch reset pattern 3 matched as expected");
+        is($w,"w","Branch reset in list context check 6 (w)");
+        is($x,"p","Branch reset in list context check 7 (p)");
+        is($y,"q","Branch reset in list context check 8 (q)");
+
+        $ok = ($w,$x,$y,$z) = "wabz"=~/(w)(?|(p)(q)|(x)(y)|(a)(b))(z)/;
+        ok($ok,"Branch reset pattern 4 matched as expected");
+        is($w,"w","Branch reset in list context check 9  (w)");
+        is($x,"a","Branch reset in list context check 10 (a)");
+        is($y,"b","Branch reset in list context check 11 (b)");
+        is($z,"z","Branch reset in list context check 12 (z)");
+    }
+    {
+        # Test for GH Issue #20826. Save stack overflow introduced in
+        # 92373dea9d7bcc0a017f20cb37192c1d8400767f PR #20530.
+        # Note this test depends on an assert so it will only fail
+        # under DEBUGGING.
+        fresh_perl_is(q{
+            $_ = "x" x 1000;
+            my $pat = '(.)' x 200;
+            $pat = qr/($pat)+/;
+            m/$pat/;
+            print "ok";
+        }, 'ok', {}, 'gh20826: test regex save stack overflow');
+    }
+    {
+        my ($x, $y);
+        ok( "aaa" =~ /(?:(a)?\1)+/,
+            "GH Issue #18865 'aaa' - pattern matches");
+        $x = "($-[0],$+[0])";
+        ok( "aaa" =~ /(?:((?{})a)?\1)+/,
+            "GH Issue #18865 'aaa' - deoptimized pattern matches");
+        $y = "($-[0],$+[0])";
+        {
+            local $::TODO = "Not Yet Implemented";
+            is( $y, $x,
+                "GH Issue #18865 'aaa' - test optimization");
+        }
+        ok( "ababab" =~ /(?:(?:(ab))?\1)+/,
+            "GH Issue #18865 'ababab' - pattern matches");
+        $x = "($-[0],$+[0])";
+        ok( "ababab" =~ /(?:(?:((?{})ab))?\1)+/,
+            "GH Issue #18865 'ababab' - deoptimized pattern matches");
+        $y = "($-[0],$+[0])";
+        {
+            local $::TODO = "Not Yet Implemented";
+            is( $y, $x,
+                "GH Issue #18865 'ababab' - test optimization");
+        }
+        ok( "XaaXbbXb" =~ /(?:X([ab])?\1)+/,
+            "GH Issue #18865 'XaaXbbXb' - pattern matches");
+        $x = "($-[0],$+[0])";
+        ok( "XaaXbbXb" =~ /(?:X((?{})[ab])?\1)+/,
+            "GH Issue #18865 'XaaXbbXb' - deoptimized pattern matches");
+        $y = "($-[0],$+[0])";
+        {
+            local $::TODO = "Not Yet Implemented";
+            is( $y, $x,
+                "GH Issue #18865 'XaaXbbXb' - test optimization");
+        }
+    }
+    {
+        # Test that ${^LAST_SUCCESSFUL_PATTERN} works as expected.
+        # It should match like the empty pattern does, and it should be dynamic
+        # in the same was as $1 is dynamic.
+        my ($str,$pat);
+        $str = "ABCD";
+        $str =~/(D)/;
+        is("$1", "D", '$1 is "D"');
+        $pat = "${^LAST_SUCCESSFUL_PATTERN}";
+        is($pat, "(?^:(D))", 'Outer ${^LAST_SUCCESSFUL_PATTERN} is as expected');
+        {
+            if ($str=~/BX/ || $str=~/(BC)/) {
+                is("$1", "BC",'$1 is now "BC"');
+                $pat = "${^LAST_SUCCESSFUL_PATTERN}";
+                ok($str =~ s//ZZ/, "Empty pattern matched as expected");
+                is($str, "AZZD", "Empty pattern in s/// has result we expected");
+            }
+        }
+        is("$1", "D", '$1 should now be "D" again');
+        is($pat, "(?^:(BC))", 'inner ${^LAST_SUCCESSFUL_PATTERN} is as expected');
+        ok($str=~s//Q/, 'Empty pattern to "Q" was successful');
+        is($str, "AZZQ", "Empty pattern in s/// has result we expected (try2)");
+        $pat = "${^LAST_SUCCESSFUL_PATTERN}";
+        is($pat, "(?^:(D))", 'Outer ${^LAST_SUCCESSFUL_PATTERN} restored to its previous value as expected');
+
+        $str = "ABCD";
+        {
+            if ($str=~/BX/ || $str=~/(BC)/) {
+                is("$1", "BC",'$1 is now "BC"');
+                $pat = "${^LAST_SUCCESSFUL_PATTERN}";
+                ok($str=~s/${^LAST_SUCCESSFUL_PATTERN}/ZZ/, '${^LAST_SUCCESSFUL_PATTERN} matched as expected');
+                is($str, "AZZD", '${^LAST_SUCCESSFUL_PATTERN} in s/// has result we expected');
+            }
+        }
+        is("$1", "D", '$1 should now be "D" again');
+        is($pat, "(?^:(BC))", 'inner ${^LAST_SUCCESSFUL_PATTERN} is as expected');
+        is($str, "AZZD", 'Using ${^LAST_SUCCESSFUL_PATTERN} as a pattern has same result as empty pattern');
+        ok($str=~s/${^LAST_SUCCESSFUL_PATTERN}/Q/, '${^LAST_SUCCESSFUL_PATTERN} to "Q" was successful');
+        is($str, "AZZQ", '${^LAST_SUCCESSFUL_PATTERN} in s/// has result we expected');
+        ok($str=~/ZQ/, "/ZQ/ matched as expected");
+        $pat = "${^LAST_SUCCESSFUL_PATTERN}";
+        is($pat, "(?^:ZQ)", '${^LAST_SUCCESSFUL_PATTERN} changed as expected');
+
+        $str = "foobarfoo";
+        ok($str =~ s/foo//, "matched foo");
+        my $copy= ${^LAST_SUCCESSFUL_PATTERN};
+        ok(defined($copy), '$copy is defined');
+        ok($str =~ s/bar//,"matched bar");
+        ok($str =~ s/$copy/PQR/, 'replaced $copy with PQR');
+        is($str, "PQR", 'final string should be PQR');
+    }
 } # End of sub run_tests
 
 1;
Index: gnu/usr.bin/perl/t/re/pat_advanced.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/pat_advanced.t,v
diff -u -p -a -u -p -r1.8 pat_advanced.t
--- gnu/usr.bin/perl/t/re/pat_advanced.t	26 Nov 2023 16:52:13 -0000	1.8
+++ gnu/usr.bin/perl/t/re/pat_advanced.t	21 Feb 2024 15:47:03 -0000
@@ -1508,19 +1508,25 @@ sub run_tests {
     }
 
     {
-        my $res="";
+        no warnings 'uninitialized';
+        my $res = "";
 
         if ('1' =~ /(?|(?<digit>1)|(?<digit>2))/) {
             $res = "@{$- {digit}}";
         }
-        is($res, "1",
-	   "Check that (?|...) doesnt cause dupe entries in the names array");
+        is($res, "1 ",
+	   "Check that repeated named captures in branch reset (?|...) work as expected");
+        if ('2' =~ /(?|(?<digit>1)|(?<digit>2))/) {
+            $res = "@{$- {digit}}";
+        }
+        is($res, " 2",
+	   "Check that repeated named captures in branch reset (?|...) work as expected");
 
         $res = "";
         if ('11' =~ /(?|(?<digit>1)|(?<digit>2))(?&digit)/) {
             $res = "@{$- {digit}}";
         }
-        is($res, "1",
+        is($res, "1 ",
 	   "Check that (?&..) to a buffer inside a (?|...) goes to the leftmost");
     }
 
@@ -2138,8 +2144,8 @@ EOP
 
     {   # This was failing unless an explicit /d was added
         my $E0 = uni_to_native("\xE0");
+        utf8::upgrade($E0);
         my $p = qr/[_$E0]/i;
-        utf8::upgrade($p);
         like(uni_to_native("\xC0"), qr/$p/, "Verify \"\\xC0\" =~ /[\\xE0_]/i; pattern in utf8");
     }
 
@@ -2379,11 +2385,10 @@ EOF
         ok(1, $message);  # If it didn't crash, it worked.
     }
 
-    TODO: {   # Was looping
-        todo_skip('Triggers thread clone SEGV. See #86550')
-	  if $::running_as_thread && $::running_as_thread;
-        watchdog(10 * ($ENV{PERL_TEST_TIME_OUT_FACTOR} || 1));
+    {   # Was looping
+        watchdog(10);
         like("\x{00DF}", qr/[\x{1E9E}_]*/i, "\"\\x{00DF}\" =~ /[\\x{1E9E}_]*/i was looping");
+        watchdog(0);
     }
 
     {   # Bug #90536, caused failed assertion
@@ -2585,14 +2590,15 @@ Starting parse and generation
 <\g{c}>         |   6|            brnc   
                 |    |              piec   
                 |    |                atom   
-<>              |   8|            tail~ OPEN1 'b' (4) -> REFN
-                |    |            Setting close paren #1 to 8
-                |  10|          lsbr~ tying lastbr REFN0 (6) to ender CLOSE1 'b' (8) offset 2
-                |    |            tail~ REFN0 (6) -> CLOSE
+<>              |   9|            tail~ OPEN1 'b' (4) -> REFN
+                |    |            Setting close paren #1 to 9
+                |  11|          lsbr~ tying lastbr REFN <1> (6) to ender CLOSE1 'b' (9) offset 3
+                |    |            tail~ REFN <1> (6) -> CLOSE
 Unmatched ( in regex; marked by <-- HERE in m/(?{a})( <-- HERE ?<b>\g{c}/ at - line 1.
 Freeing REx: "(?{a})(?<b>\g{c}"
 EOF_DEBUG_OUT
-                      {}, "Github Issue #19350, assert fail in "
+                      {rtrim_result=>1},
+                      "Github Issue #19350, assert fail in "
                           . "Debug => 'ALL' from malformed qr// (heisenbug try $try)");
     }
     {   # Related to GH $19350 but segfaults instead of asserts, and does so reliably, not randomly.
@@ -2612,35 +2618,35 @@ Starting parse and generation
 <\g{c})(?<c>>...|   3|            brnc   
                 |    |              piec   
                 |    |                atom   
-<)(?<c>x)(?&b)> |   5|            tail~ OPEN1 'b' (1) -> REFN
-                |   7|          lsbr~ tying lastbr REFN0 (3) to ender CLOSE1 'b' (5) offset 2
-                |    |            tail~ REFN0 (3) -> CLOSE
+<)(?<c>x)(?&b)> |   6|            tail~ OPEN1 'b' (1) -> REFN
+                |   8|          lsbr~ tying lastbr REFN <1> (3) to ender CLOSE1 'b' (6) offset 3
+                |    |            tail~ REFN <1> (3) -> CLOSE
 <(?<c>x)(?&b)>  |    |      piec   
                 |    |        atom   
 <?<c>x)(?&b)>   |    |          reg    
-<x)(?&b)>       |   9|            brnc   
+<x)(?&b)>       |  10|            brnc
                 |    |              piec   
                 |    |                atom   
-<)(?&b)>        |  11|            tail~ OPEN2 'c' (7) -> EXACT
-                |  13|          lsbr~ tying lastbr EXACT <x> (9) to ender CLOSE2 'c' (11) offset 2
-                |    |            tail~ EXACT <x> (9) -> CLOSE
+<)(?&b)>        |  12|            tail~ OPEN2 'c' (8) -> EXACT
+                |  14|          lsbr~ tying lastbr EXACT <x> (10) to ender CLOSE2 'c' (12) offset 2
+                |    |            tail~ EXACT <x> (10) -> CLOSE
 <(?&b)>         |    |      tail~ OPEN1 'b' (1)  
-                |    |          ~ REFN0 (3)  
-                |    |          ~ CLOSE1 'b' (5) -> OPEN
+                |    |          ~ REFN <1> (3)
+                |    |          ~ CLOSE1 'b' (6) -> OPEN
                 |    |      piec   
                 |    |        atom   
 <?&b)>          |    |          reg    
-<>              |  16|      tail~ OPEN2 'c' (7)  
-                |    |          ~ EXACT <x> (9)  
-                |    |          ~ CLOSE2 'c' (11) -> GOSUB
-                |  17|  lsbr~ tying lastbr OPEN1 'b' (1) to ender END (16) offset 15
+<>              |  17|      tail~ OPEN2 'c' (8)
+                |    |          ~ EXACT <x> (10)
+                |    |          ~ CLOSE2 'c' (12) -> GOSUB
+                |  18|  lsbr~ tying lastbr OPEN1 'b' (1) to ender END (17) offset 16
                 |    |    tail~ OPEN1 'b' (1)  
-                |    |        ~ REFN0 (3)  
-                |    |        ~ CLOSE1 'b' (5)  
-                |    |        ~ OPEN2 'c' (7)  
-                |    |        ~ EXACT <x> (9)  
-                |    |        ~ CLOSE2 'c' (11)  
-                |    |        ~ GOSUB1[+0:13] 'b' (13) -> END
+                |    |        ~ REFN <1> (3)
+                |    |        ~ CLOSE1 'b' (6)
+                |    |        ~ OPEN2 'c' (8)
+                |    |        ~ EXACT <x> (10)
+                |    |        ~ CLOSE2 'c' (12)
+                |    |        ~ GOSUB1[+0:14] 'b' (14) -> END
 Need to redo parse
 Freeing REx: "(?<b>\g{c})(?<c>x)(?&b)"
 Starting parse and generation
@@ -2652,40 +2658,41 @@ Starting parse and generation
 <\g{c})(?<c>>...|   3|            brnc   
                 |    |              piec   
                 |    |                atom   
-<)(?<c>x)(?&b)> |   5|            tail~ OPEN1 'b' (1) -> REFN
-                |   7|          lsbr~ tying lastbr REFN12 'c' (3) to ender CLOSE1 'b' (5) offset 2
-                |    |            tail~ REFN12 'c' (3) -> CLOSE
+<)(?<c>x)(?&b)> |   6|            tail~ OPEN1 'b' (1) -> REFN
+                |   8|          lsbr~ tying lastbr REFN2 'c' <1> (3) to ender CLOSE1 'b' (6) offset 3
+                |    |            tail~ REFN2 'c' <1> (3) -> CLOSE
 <(?<c>x)(?&b)>  |    |      piec   
                 |    |        atom   
 <?<c>x)(?&b)>   |    |          reg    
-<x)(?&b)>       |   9|            brnc   
+<x)(?&b)>       |  10|            brnc
                 |    |              piec   
                 |    |                atom   
-<)(?&b)>        |  11|            tail~ OPEN2 'c' (7) -> EXACT
-                |  13|          lsbr~ tying lastbr EXACT <x> (9) to ender CLOSE2 'c' (11) offset 2
-                |    |            tail~ EXACT <x> (9) -> CLOSE
+<)(?&b)>        |  12|            tail~ OPEN2 'c' (8) -> EXACT
+                |  14|          lsbr~ tying lastbr EXACT <x> (10) to ender CLOSE2 'c' (12) offset 2
+                |    |            tail~ EXACT <x> (10) -> CLOSE
 <(?&b)>         |    |      tail~ OPEN1 'b' (1)  
-                |    |          ~ REFN12 'c' (3)  
-                |    |          ~ CLOSE1 'b' (5) -> OPEN
+                |    |          ~ REFN2 'c' <1> (3)
+                |    |          ~ CLOSE1 'b' (6) -> OPEN
                 |    |      piec   
                 |    |        atom   
 <?&b)>          |    |          reg    
-<>              |  16|      tail~ OPEN2 'c' (7)  
-                |    |          ~ EXACT <x> (9)  
-                |    |          ~ CLOSE2 'c' (11) -> GOSUB
-                |  17|  lsbr~ tying lastbr OPEN1 'b' (1) to ender END (16) offset 15
+<>              |  17|      tail~ OPEN2 'c' (8)
+                |    |          ~ EXACT <x> (10)
+                |    |          ~ CLOSE2 'c' (12) -> GOSUB
+                |  18|  lsbr~ tying lastbr OPEN1 'b' (1) to ender END (17) offset 16
                 |    |    tail~ OPEN1 'b' (1)  
-                |    |        ~ REFN12 'c' (3)  
-                |    |        ~ CLOSE1 'b' (5)  
-                |    |        ~ OPEN2 'c' (7)  
-                |    |        ~ EXACT <x> (9)  
-                |    |        ~ CLOSE2 'c' (11)  
-                |    |        ~ GOSUB1[+0:13] 'b' (13) -> END
-Required size 16 nodes
+                |    |        ~ REFN2 'c' <1> (3)
+                |    |        ~ CLOSE1 'b' (6)
+                |    |        ~ OPEN2 'c' (8)
+                |    |        ~ EXACT <x> (10)
+                |    |        ~ CLOSE2 'c' (12)
+                |    |        ~ GOSUB1[+0:14] 'b' (14) -> END
+Required size 17 nodes
 first at 3
 Freeing REx: "(?<b>\g{c})(?<c>x)(?&b)"
 EOF_DEBUG_OUT
-                      {}, "Related to Github Issue #19350, forward \\g{x} pattern segv under use re Debug => 'PARSE'");
+                      {rtrim_result=>1},
+                      "Related to Github Issue #19350, forward \\g{x} pattern segv under use re Debug => 'PARSE'");
     }
 
     {   # perl-security#140, read/write past buffer end
@@ -2694,6 +2701,12 @@ EOF_DEBUG_OUT
                         {}, "perl-security#140");
         fresh_perl_is('qr/\p{utf8::_perl_surrogate}/', "",
                         {}, "perl-security#140");
+    }
+
+    {   # GH 20009
+        my $x = "awesome quotes";
+        utf8::upgrade($x);
+        $x =~ s/^[\x{0301}\x{030C}]+//;
     }
 
 
Index: gnu/usr.bin/perl/t/re/pat_psycho.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/pat_psycho.t,v
diff -u -p -a -u -p -r1.1.1.6 pat_psycho.t
--- gnu/usr.bin/perl/t/re/pat_psycho.t	13 Feb 2019 21:11:42 -0000	1.1.1.6
+++ gnu/usr.bin/perl/t/re/pat_psycho.t	21 Feb 2024 15:47:03 -0000
@@ -24,10 +24,8 @@ BEGIN {
     if ($^O eq 'dec_osf') {
         skip_all("$^O cannot handle this test");
     }
-    my $time_out_factor = $ENV{PERL_TEST_TIME_OUT_FACTOR} || 1;
-    $time_out_factor = 1 if $time_out_factor < 1;
 
-    watchdog(5 * 60 * $time_out_factor);
+    watchdog(5 * 60);
 }
 
 
Index: gnu/usr.bin/perl/t/re/pat_re_eval.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/pat_re_eval.t,v
diff -u -p -a -u -p -r1.7 pat_re_eval.t
--- gnu/usr.bin/perl/t/re/pat_re_eval.t	8 Jul 2023 14:18:37 -0000	1.7
+++ gnu/usr.bin/perl/t/re/pat_re_eval.t	21 Feb 2024 15:47:03 -0000
@@ -24,7 +24,8 @@ BEGIN {
 
 our @global;
 
-plan tests => 508;  # Update this when adding/deleting tests.
+
+plan tests => 527;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -126,7 +127,66 @@ sub run_tests {
                "Postponed UTF-8 string in non-UTF-8 re doesn't match non-UTF-8";
         }
     }
+    {
+        our $this_counter;
+        ok( "ABDE" =~ /(A(A|B(*ACCEPT)|C)+D)(E)(?{ $this_counter++ })/,
+            "ACCEPT/CURLYX/EVAL - pattern should match");
+        is( "$1-$2", "AB-B",
+            "Make sure that ACCEPT works in CURLYX by using EVAL");
+    }
+    {
+        ok( "AB"=~/(A)(?(*{ 1 })B|C)/, "(?(*{ ... })yes|no) works as expected");
+        ok( "AC"=~/(A)(?(*{ 0 })B|C)/, "(?(*{ ... })yes|no) works as expected");
+    }
+
+    {
+        # Test if $^N and $+ work in (*{ }) (optimistic eval)
+        our @ctl_n = ();
+        our @plus = ();
+        my $nested_tags = qr{
+          (?<nested_tags>
+            <
+                ((\w)+)
+                (*{
+                       push @ctl_n, (defined $^N ? $^N : "undef");
+                       push @plus, (defined $+ ? $+ : "undef");
+                })
+            >
+            (?&nested_tags)*
+            </\s* \w+ \s*>
+          )
+        }x;
 
+        # note the results of this may change from perl to perl as different optimisations
+        # are added or enabled. It is testing that things *work*, not that they produce
+        # a specific output. The whole idea of optimistic eval is to have an eval that
+        # does not disable optimizations in the way a normal eval does.
+        my $c = 0;
+        for my $test (
+            # Test structure:
+            #  [ Expected result, Regex, Expected value(s) of $^N, Expected value(s) of $+, "note" ]
+            [ 1, qr#^$nested_tags$#, "bla blubb <bla><blubb></blubb></bla>", "a b a" ],
+            [ 1, qr#^($nested_tags)$#, "bla blubb <bla><blubb></blubb></bla>", "a b a" ],
+            [ 1, qr#^(|)$nested_tags$#, "bla blubb <bla><blubb></blubb></bla>", "a b a" ],
+            [ 1, qr#^(?:|)$nested_tags$#, "bla blubb <bla><blubb></blubb></bla>", "a b a" ],
+            [ 1, qr#^<(bl|bla)>$nested_tags<(/\1)>$#, "blubb /bla", "b /bla" ],
+        ) { #"#silence vim highlighting
+            $c++;
+            @ctl_n = ();
+            @plus = ();
+            my $match = (("<bla><blubb></blubb></bla>" =~ $test->[1]) ? 1 : 0);
+            push @ctl_n, (defined $^N ? $^N : "undef");
+            push @plus, (defined $+ ? $+ : "undef");
+            ok($test->[0] == $match, "(*{ ... }) match $c");
+            if ($test->[0] != $match) {
+              # unset @ctl_n and @plus
+              @ctl_n = @plus = ();
+            }
+            my $note = $test->[4] ? " - $test->[4]" : "";
+            is("@ctl_n", $test->[2], "(*{ ... }) ctl_n $c$note");
+            is("@plus", $test->[3], "(*{ ... }) plus $c$note");
+        }
+    }
 
     {
         # Test if $^N and $+ work in (?{})
@@ -162,7 +222,9 @@ sub run_tests {
             [ 1, qr#^((??{"(?:bla|)"}))((??{$nested_tags}))$#, "bla blubb <bla><blubb></blubb></bla>", "a b <bla><blubb></blubb></bla>" ],
             [ 1, qr#^((??{"(?!)?"}))((??{$nested_tags}))$#, "bla blubb <bla><blubb></blubb></bla>", "a b <bla><blubb></blubb></bla>" ],
             [ 1, qr#^((??{"(?:|<(/?bla)>)"}))((??{$nested_tags}))\1$#, "bla blubb <bla><blubb></blubb></bla>", "a b <bla><blubb></blubb></bla>" ],
-            [ 0, qr#^((??{"(?!)"}))?((??{$nested_tags}))(?!)$#, "bla blubb undef", "a b undef" ],
+            [ 0, qr#^((??{"(?!)"}))?((??{$nested_tags}))(?!)$#, # changed in perl 5.37.7
+                 "bla blubb blub blu bl b bl b undef",
+                 "a b b u l b l b undef" ],
 
         ) { #"#silence vim highlighting
             $c++;
Index: gnu/usr.bin/perl/t/re/pat_rt_report.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/pat_rt_report.t,v
diff -u -p -a -u -p -r1.4 pat_rt_report.t
--- gnu/usr.bin/perl/t/re/pat_rt_report.t	30 Dec 2019 02:13:57 -0000	1.4
+++ gnu/usr.bin/perl/t/re/pat_rt_report.t	21 Feb 2024 15:47:03 -0000
@@ -20,7 +20,7 @@ use warnings;
 use 5.010;
 use Config;
 
-plan tests => 2510;  # Update this when adding/deleting tests.
+plan tests => 2514;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -747,15 +747,25 @@ sub run_tests {
     }
 
     {
-        my $message = 'Match is linear, not quadratic; Bug 22395';
+        my $message = 'Match is quadratic due to eval; See Bug 22395';
         our $count;
         for my $l (10, 100, 1000) {
             $count = 0;
-            ('a' x $l) =~ /(.*)(?{$count++})[bc]/;
-            local $::TODO = "Should be L+1 not L*(L+3)/2 (L=$l)";
-            is($count, $l + 1, $message);
+            ('a' x $l) =~ /(.*)(?{ $count++ })[bc]/;
+            is($count, $l*($l+3)/2+1, $message);
         }
     }
+    {
+        my $message = 'Match is linear, not quadratic; Bug 22395.';
+        our $count;
+        my $ok= 0;
+        for my $l (10, 100, 1000) {
+            $count = 0;
+            ('a' x $l) =~ /(.*)(*{ $count++ })[bc]/;
+            $ok += is($count, $l + 1, $message);
+        }
+        is($ok,3, "Optimistic eval does not disable optimisations");
+    }
 
     {
         my $message = '@-/@+ should not have undefined values; Bug 22614';
@@ -1076,10 +1086,11 @@ SKIP: {
 	unless $Config{extensions} =~ / Encode /;
 
     # Test case cut down by jhi
-    fresh_perl_like(<<'EOP', qr!Malformed UTF-8 character \(unexpected end of string\) in substitution \(s///\) at!, {}, 'Segfault using HTML::Entities');
+    fresh_perl_like(<<'EOP', qr!Malformed UTF-8 character \(unexpected end of string\)!, {}, 'Segfault using HTML::Entities');
 use Encode;
 my $t = ord('A') == 193 ? "\xEA" : "\xE9";
 Encode::_utf8_on($t);
+substr($t,0);
 $t =~ s/([^a])//ge;
 EOP
     }
Index: gnu/usr.bin/perl/t/re/qr-72922.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/qr-72922.t,v
diff -u -p -a -u -p -r1.4 qr-72922.t
--- gnu/usr.bin/perl/t/re/qr-72922.t	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/t/re/qr-72922.t	21 Feb 2024 15:47:03 -0000
@@ -30,11 +30,11 @@ sub s1 {
     my $refcnt_start = Internals::SvREFCNT($$re_weak_copy);
 
     undef $re;
-    is(Internals::SvREFCNT($$re_weak_copy), $refcnt_start - 1, "refcnt decreased");
+    refcount_is $re_weak_copy, $refcnt_start - 1, "refcnt decreased";
     is("$re_weak_copy", $str_re, "weak copy still equals original");
 
     undef $re_copy2;
-    is(Internals::SvREFCNT($$re_weak_copy), $refcnt_start - 1, "refcnt not decreased");
+    refcount_is $re_weak_copy, $refcnt_start - 1, "refcnt not decreased";
     is("$re_weak_copy", $str_re, "weak copy still equals original");
 }
 s1();
Index: gnu/usr.bin/perl/t/re/re_tests
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/re_tests,v
diff -u -p -a -u -p -r1.10 re_tests
--- gnu/usr.bin/perl/t/re/re_tests	15 Feb 2023 01:36:37 -0000	1.10
+++ gnu/usr.bin/perl/t/re/re_tests	21 Feb 2024 15:47:03 -0000
@@ -478,7 +478,7 @@ a(?:b|c|d)+(.)	acdbcdbe	y	$1	e
 a(?:b|c|d){2}(.)	acdbcdbe	y	$1	b
 a(?:b|c|d){4,5}(.)	acdbcdbe	y	$1	b
 a(?:b|c|d){4,5}?(.)	acdbcdbe	y	$1	d
-((foo)|(bar))*	foobar	y	$1-$2-$3	bar-foo-bar
+((foo)|(bar))*	foobar	y	$1-$2-$3	bar--bar		# was bar-foo-bar prior to 5.37.10
 :(?:	-	c	-	Sequence (? incomplete
 a(?:b|c|d){6,7}(.)	acdbcdbe	y	$1	e
 a(?:b|c|d){6,7}?(.)	acdbcdbe	y	$1	e
@@ -496,10 +496,12 @@ a(?:b|(c|e){1,2}?|d)+?(.)	ace	y	$1$2	ce
 ^(a(?(1)\1)){4}$	aaaaaaaaaa	y	$1	aaaa
 ^(a(?(1)\1)){4}$	aaaaaaaaa	n	-	-
 ^(a(?(1)\1)){4}$	aaaaaaaaaaa	n	-	-
+((?(1)a|b))+	baaa	y	$&	baaa		# GH 7754
+((?(1)aa|b))+	baaaa	y	$&	baaaa		# GH 7754
 ((a{4})+)	aaaaaaaaa	y	$1	aaaaaaaa
 (((aa){2})+)	aaaaaaaaaa	y	$1	aaaaaaaa
 (((a{2}){2})+)	aaaaaaaaaa	y	$1	aaaaaaaa
-(?:(f)(o)(o)|(b)(a)(r))*	foobar	y	$1:$2:$3:$4:$5:$6	f:o:o:b:a:r
+(?:(f)(o)(o)|(b)(a)(r))*	foobar	y	$1:$2:$3:$4:$5:$6	:::b:a:r
 (?<=a)b	ab	y	$&	b
 (?<=af?)b	ab	y	$&	b
 (?<=a)b	cb	n	-	-
@@ -962,8 +964,8 @@ tt+$	xxxtt	y	-	-
 (?i)		y	-	-
 (?a:((?u)\w)\W)	\xC0\xC0	y	$&	\xC0\xC0
 '(?!\A)x'm	a\nxb\n	y	-	-
-^(a(b)?)+$	aba	y	-$1-$2-	-a--
-^(aa(bb)?)+$	aabbaa	y	-$1-$2-	-aa--
+^(a(b)?)+$	aba	y	-$1-$2-	-a--		
+^(aa(bb)?)+$	aabbaa	y	-$1-$2-	-aa--		
 '^.{9}abc.*\n'm	123\nabcabcabcabc\n	y	-	-
 ^(a)?a$	a	y	-$1-	--
 ^(a)?(?(1)a|b)+$	a	n	-	-
@@ -1949,7 +1951,7 @@ A+(*PRUNE)BC(?{})	AAABC	y	$&	AAABC
 /^(.\2?)(.)(?1)$/	abcb	y	$2	b
 /^(.\1?)(?1)$/	aba	y	$1	a
 /^ (\3(?2)\3)? ((.)) (?1) $/x	aaba	y	$2	a
-/^ (a|\3(?1)\2|(?2)) ((b|c)(?4)?) (?1) (d(?1)) $/x	abbcdcabbda	y	$2	b
+/^ (a|\3(?1)\2|(?2)) ((b|c)(?4)?) (?1) (d(?1)) $/x	abbcdcabbda	y	$1-$2-$3-$4	a-b-b-da
 
 # RT #121321 - perl 5.19.10 infinite loops on backrefs > number of capture buffers (npar) where npar>9
 /(a)\2/	a\2	c	-	Reference to nonexistent group in regex
@@ -2043,9 +2045,9 @@ AB\s+\x{100}	AB \x{100}X	y	-	-
 /(?:0)|(?:)(?:[1-9])/	q0	y	$&	0	# [https://github.com/Perl/perl5/issues/17372]
 /\x{_1_0000}/	\x{10000}	y	$&	\x{10000}		# khw doesn't like leading underscores, but don't rmv them accidentally
 /\o{_1_0000}/	\o{10000}	y	$&	\o{10000}
-/(?iaax:A? \K +)/	African_Feh	c	-	\\K + is forbidden - matches null string many times in regex
-/(?iaa:A?\K+)/	African_Feh	c	-	\\K+ is forbidden - matches null string many times in regex
-/(?iaa:A?\K*)/	African_Feh	c	-	\\K* is forbidden - matches null string many times in regex
+/(?iaax:A? \K +)/	African_Feh	y	$&	
+/(?iaa:A?\K+)/	African_Feh	y	$&	
+/(?iaa:A?\K*)/	African_Feh	y	$&	
 ^((\w|<(\s)*(?1)(?3)*>)(?:(?3)*\+(?3)*(?2))*)(?3)*\+	a + b + <c + d>	y	$1	a + b		# [GH #18096]
 ^((\w|<(\s)*(?1)(?3)*>)(?:(?3)*\+(?3)*(?2))*)(?3)*\+	a + <b> + c	y	$1	a + <b>		# [GH #18096]
 /0?\xdf\xdf\xdf\xdfs\o{500}|/i	\o{600}	y	$&				# [GH #18451]
@@ -2109,6 +2111,51 @@ AB\s+\x{100}	AB \x{100}X	y	-	-
 / (A (*ACCEPT) | BC){2} D{0,4}/x	A	y	$1	A	-	# ACCEPT optimizer check
 
 \p{nv=-0}	\x{660}	y	$&	\x{660}
+(?:a|xx){0,4}?b	aaaaab 	y	$&	aaaab		# Bug is GH #8369; test is GH #19781
+(?|(?<a>a)|(?<b>b))\1(?&a)(?&b)	bbab 	y	$&	bbab		# GH 20653
+(?|(?<a>a)|(?<b>b))(?(<a>)x|y)\1	byb 	y	$&	byb		# GH 20653
+(?|(?<a>a)|(?<b>b))(?(<a>)x|y)\1	bxb 	n	-	-		# GH 20653
+(?|(?<a>a)|(?<b>b))(?(<a>)x|y)\1	axa 	y	$&	axa		# GH 20653
+(?|(?<a>a)|(?<b>b))(?(<a>)x|y)\1	aya 	n	-	-		# GH 20653
+(?|(?<a>a)|(?<b>b))	a 	y	$1-$+{a}-$+{b}	a-a-		# GH 20653
+(?|(?<a>a)|(?<b>b))	b 	y	$1-$+{a}-$+{b}	b--b		# GH 20653
+(?<pre>pre)(?|(?<a>a)(?<b>b)(?<c>c)|(?<d>d)(?<e>e)|(?<f>f))(?<post>post)	preabcpost 	y	$2-$3-$4	a-b-c		# GH 20653
+(?<pre>pre)(?|(?<a>a)(?<b>b)(?<c>c)|(?<d>d)(?<e>e)|(?<f>f))(?<post>post)	predepost 	y	$2-$3-$4	d-e-		# GH 20653
+(?<pre>pre)(?|(?<a>a)(?<b>b)(?<c>c)|(?<d>d)(?<e>e)|(?<f>f))(?<post>post)	prefpost 	y	$2-$3-$4	f--		# GH 20653
+(?<pre>pre)(?|(?<a>a)(?<b>b)(?<c>c)|(?<d>d)(?<e>e)|(?<f>f))(?<post>post)	preabcpost 	y	$+{a}-$+{b}-$+{c}	a-b-c		# GH 20653
+((?|(?<a>a)(?-1)|(?<b>b)(?-1)|(?<c>c)(?-1)))	aa 	y	$1	aa		# GH 20653
+((?|(?<a>a)(?-1)|(?<b>b)(?-1)|(?<c>c)(?-1)))	bb 	y	$1	bb		# GH 20653
+((?|(?<a>a)(?-1)|(?<b>b)(?-1)|(?<c>c)(?-1)))	cc 	y	$1	cc		# GH 20653
+
+(?|(a)|(b))	b	y	$+	b		# GH 20912
+(?|(a)(?{$::plus_got=$+})|(b)(?{$::plus_got=$+}))	b	y	$::plus_got	b		# GH 20912
+(?|(a)|(b))	b	y	$^N	b		# GH 20912
+(?|(a)(?{$::caret_n_got=$^N})|(b)(?{$::caret_n_got=$^N}))	b	y	$::caret_n_got	b		# GH 20912
+(?|(a)|(b))	a	y	$+	a		# GH 20912
+(?|(a)(?{$::plus_got=$+})|(b)(?{$::plus_got=$+}))	a	y	$::plus_got	a		# GH 20912
+(?|(a)|(b))	a	y	$^N	a		# GH 20912
+(?|(a)(?{$::caret_n_got=$^N})|(b)(?{$::caret_n_got=$^N}))	a	y	$::caret_n_got	a		# GH 20912
+
+/(([ab]+)|([cd]+)|([ef]+))+/	ace	y	$1-$2-$3-$4=$&	e---e=ace
+/(([ab]+)|([cd]+)|([ef]+))+/	aceb	Ty	$1-$2-$3-$4=$&	b-b--=aceb
+/(([ab]+)|([cd]+)|([ef]+))+/	acebd	Ty	$1-$2-$3-$4=$&	d--d-=acebd
+/(([ab]+)|([cd]+)|([ef]+))+/	acebdf	y	$1-$2-$3-$4=$&	f---f=acebdf
+/((a)(b)(c)|(a)(b)|(a))+/	abcaba	y	$1+$2-$3-$4+$5-$6+$7=$&	a+--+-+a=abcaba
+
+/^(xa|=?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:=|zzzz|)\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:=|zzzz)?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|[Z=]?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|([Z=])?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|([Z=]|zzzz)?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(=|)\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:[Z=])?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:[Z=]|zzzz)?\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:=|)\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|=*\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|[Z=]*\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:[Z=])*\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
+/^(xa|(?:[Z=]|zzzz)*\1a){2}$/	xa=xaaa	n	-	-	# GH 10073 - RT72020
 
 # Keep these lines at the end of the file
 # pat	string	y/n/etc	expr	expected-expr	skip-reason	comment
Index: gnu/usr.bin/perl/t/re/reg_mesg.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/reg_mesg.t,v
diff -u -p -a -u -p -r1.10 reg_mesg.t
--- gnu/usr.bin/perl/t/re/reg_mesg.t	15 Feb 2023 01:36:37 -0000	1.10
+++ gnu/usr.bin/perl/t/re/reg_mesg.t	21 Feb 2024 15:47:03 -0000
@@ -108,7 +108,7 @@ sub mark_as_utf8 {
     return @ret;
 }
 
-my $inf_m1 = ($Config::Config{reg_infty} || 65535) - 1;
+my $inf_m1 = ($Config::Config{reg_infty} || ((1<<31)-1)) - 1;
 my $inf_p1 = $inf_m1 + 2;
 
 my $B_hex = sprintf("\\x%02X", ord "B");
Index: gnu/usr.bin/perl/t/re/regex_sets.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/regex_sets.t,v
diff -u -p -a -u -p -r1.8 regex_sets.t
--- gnu/usr.bin/perl/t/re/regex_sets.t	15 Feb 2023 01:36:37 -0000	1.8
+++ gnu/usr.bin/perl/t/re/regex_sets.t	21 Feb 2024 15:47:03 -0000
@@ -103,6 +103,7 @@ like("a", qr/(?[ (?#comment) [a]])/, "Ca
 if (! is_miniperl() && locales_enabled('LC_CTYPE')) {
     my $utf8_locale = find_utf8_ctype_locale;
     SKIP: {
+        skip("No LC_ALL on this platform", 8) unless locales_enabled('LC_ALL');
         skip("No utf8 locale available on this platform", 8) unless $utf8_locale;
 
         setlocale(&POSIX::LC_ALL, "C");
Index: gnu/usr.bin/perl/t/re/regexp.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/regexp.t,v
diff -u -p -a -u -p -r1.6 regexp.t
--- gnu/usr.bin/perl/t/re/regexp.t	15 Feb 2023 01:36:37 -0000	1.6
+++ gnu/usr.bin/perl/t/re/regexp.t	21 Feb 2024 15:47:03 -0000
@@ -144,7 +144,7 @@ $nulnul = "\0" x 2;
 my $OP = $qr ? 'qr' : 'm';
 
 $| = 1;
-
+$::normalize_pat = $::normalize_pat; # silence warning
 TEST:
 foreach (@tests) {
     $test_num++;
@@ -181,11 +181,28 @@ foreach (@tests) {
 
     convert_from_ascii(\$expect);
     $expect  = eval qq("$expect"); die $@ if $@;
-    $expect = $repl = '-' if $skip_amp and $input =~ /\$[&\`\']/;
+    my $has_amp = $input =~ /\$[&\`\']/;
+    $expect = $repl = '-' if $skip_amp and $has_amp;
 
     my $todo_qr = $qr_embed_thr && ($result =~ s/t//);
     my $skip = ($skip_amp ? ($result =~ s/B//i) : ($result =~ s/B//));
     ++$skip if $result =~ s/M// && !defined &DynaLoader::boot_DynaLoader;
+    
+    if ($::normalize_pat) {
+        my $opat= $pat;
+        # Convert (x)? to (?:(x)|) and (x)+ to (?:(x))+ and (x)* to (?:(x))*
+        $pat =~ s/\(([\w|.]+)\)\?(?![+*?])/(?:($1)|)/g;
+        $pat =~ s/\(([\w|.]+)\)([+*])(?![+*?])/(?:($1))$2/g;
+        if ($opat eq $pat) {
+            # we didn't change anything, no point in testing it again.
+            $skip++;
+            $reason = "Test not valid for $0";
+        } elsif ($comment=~/!\s*normal/) {
+            $result .= "T";
+            $comment = "# Known to be broken under $0";
+        }
+    }
+
     if ($result =~ s/ ( [Ss] ) //x) {
         if (($1 eq 'S' && $regex_sets) || ($1 eq 's' && ! $regex_sets)) {
             $skip++;
@@ -202,7 +219,7 @@ foreach (@tests) {
     }
     $reason = 'skipping $&' if $reason eq  '' && $skip_amp;
     $result =~ s/B//i unless $skip;
-    my $todo= $result =~ s/T// ? " # TODO" : "";
+    my $todo= ($result =~ s/T// && (!$skip_amp || !$has_amp)) ? " # TODO" : "";
     my $testname= $test_num;
     if ($comment) {
         $comment=~s/^\s*(?:#\s*)?//;
@@ -421,9 +438,28 @@ foreach (@tests) {
             $pat = $modified;
         }
     }
+    if ($::normalize_pat){
+        if (!$skip && ($result eq "y" or $result eq "n")) {
+            my $opat= $pat;
+            # Convert (x)? to (?:(x)|) and (x)+ to (?:(x))+ and (x)* to (?:(x))*
+            $pat =~ s/\(([\w|.]+)\)\?(?![+*?])/(?:($1)|)/g;
+            $pat =~ s/\(([\w|.]+)\)([+*])(?![+*?])/(?:($1))$2/g;
+            # inject an EVAL into the front of the pattern.
+            # this should disable all optimizations.
+            $pat =~ s/\A(.)/$1(?{ \$the_counter++ })/
+                or die $pat;
+        } elsif (!$skip) {
+            $skip = $reason = "Test not applicable to $0";
+        }
+    }
 
     for my $study ('', 'study $subject;', 'utf8::upgrade($subject);',
 		   'utf8::upgrade($subject); study $subject;') {
+        if ( $skip ) {
+            print "ok $testname # skipped", length($reason) ? ".  $reason" : '', "\n";
+            next TEST;
+        }
+        our $the_counter = 0; # used in normalization tests
 	# Need to make a copy, else the utf8::upgrade of an already studied
 	# scalar confuses things.
 	my $subject = $subject;
@@ -486,11 +522,7 @@ EOFCODE
 	    eval $code;
 	}
 	chomp( my $err = $@ );
-	if ( $skip ) {
-	    print "ok $testname # skipped", length($reason) ? ".  $reason" : '', "\n";
-	    next TEST;
-	}
-	elsif ($result eq 'c') {
+	if ($result eq 'c') {
 	    if ($err !~ m!^\Q$expect!) { print "not ok $testname$todo (compile) $input => '$err'\n"; next TEST }
 	    last;  # no need to study a syntax error
 	}
Index: gnu/usr.bin/perl/t/re/regexp_normal.t
===================================================================
RCS file: gnu/usr.bin/perl/t/re/regexp_normal.t
diff -N gnu/usr.bin/perl/t/re/regexp_normal.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/re/regexp_normal.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,10 @@
+#!./perl
+
+$::normalize_pat = 1;
+for $file ('./re/regexp.t', './t/re/regexp.t', ':re:regexp.t') {
+    if (-r $file) {
+	do $file or die $@;
+	exit;
+    }
+}
+die "Cannot find ./re/regexp.t or ./t/re/regexp.t\n";
Index: gnu/usr.bin/perl/t/re/speed.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/speed.t,v
diff -u -p -a -u -p -r1.14 speed.t
--- gnu/usr.bin/perl/t/re/speed.t	15 Feb 2023 01:38:23 -0000	1.14
+++ gnu/usr.bin/perl/t/re/speed.t	21 Feb 2024 15:47:03 -0000
@@ -42,9 +42,7 @@ run_tests() unless caller;
 sub run_tests {
 
 
-    watchdog(($ENV{PERL_TEST_TIME_OUT_FACTOR} || 1)
-             * (($::running_as_thread && $::running_as_thread)
-                ? 150 : 540));
+    watchdog((($::running_as_thread && $::running_as_thread) ? 150 : 540));
 
     {
         # [perl #120446]
Index: gnu/usr.bin/perl/t/re/stclass_threads.t
===================================================================
RCS file: gnu/usr.bin/perl/t/re/stclass_threads.t
diff -N gnu/usr.bin/perl/t/re/stclass_threads.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/re/stclass_threads.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,81 @@
+#!./perl
+#
+# This is a home for regular expression tests that don't fit into
+# the format supported by re/regexp.t.  If you want to add a test
+# that does fit that format, add it to re/re_tests, not here.
+
+use strict;
+use warnings;
+
+sub run_tests;
+
+$| = 1;
+
+BEGIN {
+    chdir 't' if -d 't';
+    require './test.pl';
+    set_up_inc('../lib', '.', '../ext/re');
+    require Config; import Config;
+}
+
+skip_all_without_config('useithreads');
+skip_all_if_miniperl("no dynamic loading on miniperl, no threads");
+
+plan tests => 6;  # Update this when adding/deleting tests.
+
+run_tests() unless caller;
+
+#
+# Tests start here.
+#
+sub run_tests {
+    my @res;
+    for my $len (10,100,1000) {
+        my $result1= fresh_perl(sprintf(<<'EOF_CODE', $len),
+        use threads;
+        use re 'debug';
+
+        sub start_thread {
+            warn "===\n";
+            split /[.;]+[\'\"]+/, $_[0];
+            warn "===\n";
+        }
+
+        my $buffer = '.' x %d;
+
+        start_thread $buffer;
+EOF_CODE
+        {});
+        my $result2= fresh_perl(sprintf(<<'EOF_CODE', $len),
+        use threads;
+        use re 'debug';
+
+        sub start_thread {
+            warn "\n===\n";
+            split /[.;]+[\'\"]+/, $_[0];
+            warn "\n===\n";
+        }
+
+        my $buffer = '.' x %d;
+        my $thr = threads->create('start_thread', $buffer);
+        $thr->join();
+EOF_CODE
+        {});
+        for ($result1, $result2) {
+            (undef,$_,undef)= split /\n===\n/, $_;
+        }
+        my @l1= split /\n/, $result1;
+        my @l2= split /\n/, $result2;
+        push @res, 0+@l2;
+        is(0+@l2,0+@l1, sprintf
+            "Threaded and unthreaded stclass behavior matches (n=%d)",
+            $len);
+    }
+    my $n10= $res[0]/10;
+    my $n100= $res[1]/100;
+    my $n1000= $res[2]/1000;
+    ok(abs($n10-$n100)<1,"Behavior appears to be sub quadratic ($n10, $n100)");
+    ok(abs($n100-$n1000)<0.1,"Behavior is linear and not quadratic ($n100, $n1000)");
+    ok(abs(3-$n1000)<0.1,"Behavior is linear as expected");
+}
+#
Index: gnu/usr.bin/perl/t/re/subst.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/re/subst.t,v
diff -u -p -a -u -p -r1.6 subst.t
--- gnu/usr.bin/perl/t/re/subst.t	30 Dec 2019 02:13:57 -0000	1.6
+++ gnu/usr.bin/perl/t/re/subst.t	21 Feb 2024 15:47:03 -0000
@@ -11,7 +11,7 @@ BEGIN {
     require './loc_tools.pl';
 }
 
-plan(tests => 278);
+plan(tests => 281);
 
 $_ = 'david';
 $a = s/david/rules/r;
@@ -87,9 +87,9 @@ $b = $m =~ s/xxx/yyy/r;
 ok( ! defined tied($b), 's///r magic isn\'t contagious' );
 
 my $ref = \("aaa" =~ s/aaa/bbb/r);
-is (Internals::SvREFCNT($$ref), 1, 's///r does not leak');
+refcount_is $ref, 1, 's///r does not leak';
 $ref = \("aaa" =~ s/aaa/bbb/rg);
-is (Internals::SvREFCNT($$ref), 1, 's///rg does not leak');
+refcount_is $ref, 1, 's///rg does not leak';
 
 $x = 'foo';
 $_ = "x";
@@ -1010,7 +1010,7 @@ eval { for (__PACKAGE__) { s/b/c/; } };
 like $@, qr/^Modification of a read-only value/,
     'read-only COW =~ s/does not match// should croak';
 
-SKIP: {
+{
     my $a_acute = chr utf8::unicode_to_native(0xE1); # LATIN SMALL LETTER A WITH ACUTE
     my $egrave = chr utf8::unicode_to_native(0xE8);  # LATIN SMALL LETTER E WITH GRAVE
     my $u_umlaut = chr utf8::unicode_to_native(0xFC);  # LATIN SMALL LETTER U WITH DIAERESIS
@@ -1059,22 +1059,22 @@ SKIP: {
         '[perl #126319: Segmentation fault in Perl_sv_catpvn_flags with \b{sb}'
     );
 
-SKIP: {
-    if (! locales_enabled('LC_ALL')) {
-        skip "Can't test locale (maybe you are missing POSIX)", 6;
+    SKIP: {
+        if (! locales_enabled('LC_ALL')) {
+            skip "Can't test locale (maybe you are missing POSIX)", 6;
+        }
+
+        setlocale(&POSIX::LC_ALL, "C");
+        use locale;
+        is("a.b" =~ s/\b/!/gr, "!a!.!b!", '\\b matches ASCII before string, mid, and end, /l');
+        is("$a_acute.$egrave" =~ s/\b/!/gr, "$a_acute.$egrave", '\\b matches Latin1 before string, mid, and end, /l');
+        is("\x{100}\x{101}.\x{102}" =~ s/\b/!/gr, "!\x{100}\x{101}!.!\x{102}!", '\\b matches above-Latin1 before string, mid, and end, /l');
+
+        is("..." =~ s/\B/!/gr, "!.!.!.!", '\\B matches ASCII before string, mid, and end, /l');
+        is("$division$division$division" =~ s/\B/!/gr, "!$division!$division!$division!", '\\B matches Latin1 before string, mid, and end, /l');
+        is("\x{2028}\x{2028}\x{2028}" =~ s/\B/!/gr, "!\x{2028}!\x{2028}!\x{2028}!", '\\B matches above-Latin1 before string, mid, and end, /l');
     }
 
-    setlocale(&POSIX::LC_ALL, "C");
-    use locale;
-    is("a.b" =~ s/\b/!/gr, "!a!.!b!", '\\b matches ASCII before string, mid, and end, /l');
-    is("$a_acute.$egrave" =~ s/\b/!/gr, "$a_acute.$egrave", '\\b matches Latin1 before string, mid, and end, /l');
-    is("\x{100}\x{101}.\x{102}" =~ s/\b/!/gr, "!\x{100}\x{101}!.!\x{102}!", '\\b matches above-Latin1 before string, mid, and end, /l');
-
-    is("..." =~ s/\B/!/gr, "!.!.!.!", '\\B matches ASCII before string, mid, and end, /l');
-    is("$division$division$division" =~ s/\B/!/gr, "!$division!$division!$division!", '\\B matches Latin1 before string, mid, and end, /l');
-    is("\x{2028}\x{2028}\x{2028}" =~ s/\B/!/gr, "!\x{2028}!\x{2028}!\x{2028}!", '\\B matches above-Latin1 before string, mid, and end, /l');
-}
-
 }
 
 {
@@ -1182,4 +1182,21 @@ __EOF__
 
 {
     fresh_perl_is("s//00000000000format            \0          '0000000\\x{800}/;eval", "", {}, "RT #133882");
+}
+
+{   # GH Issue 20690
+    my @ret;
+    my $str = "abc";
+    for my $upgrade (0,1) {
+        my $copy = $str;
+        utf8::upgrade($copy) if $upgrade;
+        my $r= $copy=~s/b{0}//gr;
+        push @ret, $r;
+    }
+    is( $ret[1], $ret[0], 
+        "Issue #20690 - s/b{0}//gr should work the same for utf8 and non-utf8 strings");
+    is( $ret[0], $str,
+        "Issue #20690 - s/b{0}//gr on non-utf8 string should not remove anything");
+    is( $ret[1], $str,
+        "Issue #20690 - s/b{0}//gr on utf8 string should not remove anything");
 }
Index: gnu/usr.bin/perl/t/run/fresh_perl.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/run/fresh_perl.t,v
diff -u -p -a -u -p -r1.5 fresh_perl.t
--- gnu/usr.bin/perl/t/run/fresh_perl.t	15 Feb 2023 01:36:37 -0000	1.5
+++ gnu/usr.bin/perl/t/run/fresh_perl.t	21 Feb 2024 15:47:03 -0000
@@ -619,19 +619,6 @@ EXPECT
 -w
 "x" =~ /(\G?x)?/;
 ########
-# Bug 20010515.004 (#6998)
-my @h = 1 .. 10;
-bad(@h);
-sub bad {
-   undef @h;
-   warn "O\n";
-   print for @_;
-   warn "K\n";
-}
-EXPECT
-O
-Use of freed value in iteration at - line 7.
-########
 # Bug 20010506.041 (#6952)
 "abcd\x{1234}" =~ /(a)(b[c])(d+)?/i and print "ok\n";
 EXPECT
@@ -817,8 +804,6 @@ meow {
 };
 EXPECT
 syntax error at - line 12, near "used"
-syntax error at - line 12, near "used}"
-Unmatched right curly bracket at - line 14, at end of line
 Execution of - aborted due to compilation errors.
 ######## [perl #112312] crash on syntax error - another test
 # SKIP: !defined &DynaLoader::boot_DynaLoader # miniperl
@@ -849,6 +834,4 @@ sub testo {
 
 EXPECT
 syntax error at - line 15, near "used"
-syntax error at - line 15, near "used}"
-Unmatched right curly bracket at - line 17, at end of line
 Execution of - aborted due to compilation errors.
Index: gnu/usr.bin/perl/t/run/locale.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/run/locale.t,v
diff -u -p -a -u -p -r1.5 locale.t
--- gnu/usr.bin/perl/t/run/locale.t	15 Feb 2023 01:36:37 -0000	1.5
+++ gnu/usr.bin/perl/t/run/locale.t	21 Feb 2024 15:47:03 -0000
@@ -21,7 +21,15 @@ BEGIN {
     }
 }
 use Config;
+
+if ($^O eq "aix" && ($Config{osvers} =~ /^(\d+)/)[0] < 7) {
+    # https://www.ibm.com/support/pages/apar/IV22174
+    skip_all("old AIX setlocale is broken in some cases");
+}
+
+use I18N::Langinfo qw(langinfo RADIXCHAR);
 my $have_strtod = $Config{d_strtod} eq 'define';
+my $have_localeconv = defined $Config{d_locconv} && $Config{d_locconv} eq 'define';
 my @locales = find_locales( [ 'LC_ALL', 'LC_CTYPE', 'LC_NUMERIC' ]);
 skip_all("no locales available") unless @locales;
 note("locales available: @locales");
@@ -34,8 +42,8 @@ if (defined $ARGV[0] && $ARGV[0] ne "") 
         exit 1
     }
     $debug = 1;
-    $switches = "switches => [ '-DLv' ]";
 }
+$switches = "switches => [ '-DLv' ]" if $debug;
 
 # reset the locale environment
 delete local @ENV{'LANGUAGE', 'LANG', (grep /^LC_[A-Z]+$/, keys %ENV)};
@@ -140,7 +148,7 @@ EOF
         } else {
             $different ||= $_;
             $difference ||= $s;
-            my $radix = localeconv()->{decimal_point};
+            my $radix = langinfo(RADIXCHAR);
 
             # For utf8 locales with a non-ascii radix, it should be encoded as
             # UTF-8 with the internal flag so set.
@@ -163,8 +171,8 @@ EOF
     SKIP: {
         skip("no UTF-8 locale available where LC_NUMERIC radix isn't ASCII", 1 )
             unless $utf8_radix;
-        ok($radix_encoded_as_utf8 == 1, "UTF-8 locale '$utf8_radix' with non-ASCII"
-                                        . " radix is marked UTF-8");
+        is($radix_encoded_as_utf8, 1, "UTF-8 locale '$utf8_radix' with non-ASCII"
+                                    . " radix is marked UTF-8");
     }
 
     SKIP: {
@@ -182,11 +190,11 @@ EOF
 EOF
                 "format() does not look at LC_NUMERIC without 'use locale'");
 
-    {
-    fresh_perl_is(<<'EOF', "$difference\n", { eval $switches },
-    use POSIX;
-    use locale;
-    format STDOUT =
+            {
+                fresh_perl_is(<<'EOF', "$difference\n", { eval $switches },
+                use POSIX;
+                use locale;
+                format STDOUT =
 @.#
 4.179
 .
@@ -195,8 +203,12 @@ EOF
                 "format() looks at LC_NUMERIC with 'use locale'");
             }
 
-            {
-                fresh_perl_is(<<'EOF', ",,", { eval $switches },
+      SKIP: {
+                unless ($have_localeconv) {
+                    skip("no localeconv()", 1);
+                }
+                else {
+                    fresh_perl_is(<<'EOF', ",,", { eval $switches },
     use POSIX;
     no warnings "utf8";
     print localeconv()->{decimal_point};
@@ -204,6 +216,7 @@ EOF
     print localeconv()->{decimal_point};
 EOF
                 "localeconv() looks at LC_NUMERIC with and without 'use locale'");
+                }
             }
 
             {
@@ -442,6 +455,31 @@ EOF
 EOF
                 "1,5\n2,5", { stderr => 'devnull' }, "Can do math when radix is a comma"); # [perl 115800]
 
+            SKIP: {
+                skip "Perl not compiled with 'useithreads'", 1 if ! $Config{'useithreads'};
+
+                local $ENV{LC_ALL} = undef;
+                local $ENV{LC_NUMERIC} = $comma;
+                fresh_perl_is(<<"EOF",
+                    use threads;
+
+                    my \$x = eval "1.25";
+                    print "\$x", "\n";  # number is ok before thread
+                    my \$str_x = "\$x";
+
+                    my \$thr = threads->create(sub {});
+                    \$thr->join();
+
+                    print "\$x\n";  # number stringifies the same after thread
+
+                    my \$y = eval "1.25";
+                    print "\$y\n";  # number is ok after threads
+                    print "\$y" eq "\$str_x" || 0;    # new number stringifies the same as old number
+EOF
+                "1.25\n1.25\n1.25\n1", { eval $switches }, "Thread join doesn't disrupt calling thread"
+                ); # [GH 20155]
+            }
+
           SKIP: {
             unless ($have_strtod) {
                 skip("no strtod()", 1);
@@ -514,7 +552,7 @@ SKIP:
 {
     use locale;
     # look for an english locale (so a < B, hopefully)
-    my ($en) = grep /^en_/, @locales;
+    my ($en) = grep { /^en_/ } find_locales( [ 'LC_COLLATE' ]);
     defined $en
         or skip "didn't find a suitable locale", 1;
     POSIX::setlocale(LC_COLLATE, $en);
@@ -535,6 +573,51 @@ else {
      print "ok\n";
 }
 EOF
+}
+
+SKIP: {   # GH #20085
+    my @utf8_locales = find_utf8_ctype_locales();
+    skip "didn't find a UTF-8 locale", 1 unless @utf8_locales;
+
+    local $ENV{LC_CTYPE} = $utf8_locales[0];
+    local $ENV{LC_ALL} = undef;
+    fresh_perl_is(<<~'EOF', "ok\n", {}, "check that setlocale overrides startup");
+        use POSIX;
+
+        my $a_acute = "\N{LATIN SMALL LETTER A WITH ACUTE}";
+        my $egrave  = "\N{LATIN SMALL LETTER E WITH GRAVE}";
+        my $combo = "$a_acute.$egrave";
+
+        setlocale(&POSIX::LC_ALL, "C");
+        use locale;
+
+        # In a UTF-8 locale, \b matches Latin1 before string, mid, and end
+        if ($combo eq ($combo =~ s/\b/!/gr)) {
+            print "ok\n";
+        }
+        else {
+            print "not ok\n";
+        }
+    EOF
+}
+
+SKIP: {   # GH #20054
+    skip "Even illegal locale names are accepted", 1
+                    if $Config{d_setlocale_accepts_any_locale_name}
+                    && $Config{d_setlocale_accepts_any_locale_name} eq 'define';
+	
+    my @lc_all_locales = find_locales('LC_ALL');
+    my $locale = $lc_all_locales[0];
+    skip "LC_ALL not enabled on this platform", 1 unless $locale;
+
+    local $ENV{LC_ALL} = "This is not a legal locale name";
+    local $ENV{LANG} = "Nor this neither";
+
+    my $fallback = ($^O eq "MSWin32")
+                    ? "system default"
+                    : "standard";
+    fresh_perl_like("", qr/Falling back to the $fallback locale/,
+                    {}, "check that illegal startup environment falls back");
 }
 
 done_testing();
Index: gnu/usr.bin/perl/t/run/runenv_randseed.t
===================================================================
RCS file: gnu/usr.bin/perl/t/run/runenv_randseed.t
diff -N gnu/usr.bin/perl/t/run/runenv_randseed.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/run/runenv_randseed.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,68 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib';
+    require './test.pl';
+    require Config;
+    Config->import;
+}
+
+skip_all_without_config('d_fork');
+skip_all("This perl is built with NO_PERL_RAND_SEED")
+    if $Config{ccflags} =~ /-DNO_PERL_RAND_SEED\b/;
+use strict;
+use warnings;
+
+for (1..2) {
+    local $ENV{PERL_RAND_SEED} = 1;
+    fresh_perl_is("print map { chr(rand(26)+65) } 1..10",
+                  "BLVIOAEZTJ", undef, "Test randomness with PERL_RAND_SEED=1");
+}
+
+for (1..2) {
+    local $ENV{PERL_RAND_SEED} = 2;
+    fresh_perl_is("print map { chr(rand(26)+65) } 1..10",
+                  "XEOUOFRPQZ", undef, "Test randomness with PERL_RAND_SEED=2");
+}
+
+my %got;
+for my $try (1..10) {
+    local $ENV{PERL_RAND_SEED};
+    my ($out,$err)= runperl_and_capture({}, ['-e',"print map { chr(rand(26)+65) } 1..10;"]);
+    if ($err) { diag $err }
+    $got{$out}++;
+}
+ok(8 <= keys %got, "Got at least 8 different strings");
+for (1..2) {
+    local $ENV{PERL_RAND_SEED} = 1;
+    my ($out,$err)= runperl_and_capture({}, ['-le',
+            <<'EOF_TEST_CODE'
+            for my $l ("A".."E") {
+                my $pid= fork;
+                if ($pid) {
+                    push @pids, $pid;
+                }
+                elsif (!defined $pid) {
+                    print "$l:failed fork";
+                } elsif (!$pid) {
+                    print "$l:", map { chr(rand(26)+65) } 1..10;
+                    exit;
+                }
+            }
+            waitpid $_,0 for @pids;
+EOF_TEST_CODE
+        ]);
+    is($err, "", "No exceptions forking.");
+    my @parts= sort { $a cmp $b } split /\n/, $out;
+    my @want= (
+            "A:KNXDITWWJZ",
+            "B:WDQJGTBJQS",
+            "C:ZGYCCINIHE",
+            "D:UGLGAEXFBP",
+            "E:MQLTNZGZQB"
+    );
+    is("@parts","@want","Works as expected with forks.");
+}
+
+done_testing();
Index: gnu/usr.bin/perl/t/run/switchDx.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/run/switchDx.t,v
diff -u -p -a -u -p -r1.3 switchDx.t
--- gnu/usr.bin/perl/t/run/switchDx.t	15 Feb 2023 01:36:37 -0000	1.3
+++ gnu/usr.bin/perl/t/run/switchDx.t	21 Feb 2024 15:47:03 -0000
@@ -48,9 +48,14 @@ END {
     fresh_perl_like("print qq(hello)", qr/define raw/,
                     { stderr => 1, switches => [ '-Di' ] },
                    "-Di defaults to stderr");
-    fresh_perl_like("print qq(hello)", qr/define raw/,
+    SKIP: {
+        skip("Your perl was built without taint support", 1)
+            unless $Config{taint_support};
+
+        fresh_perl_like("print qq(hello)", qr/define raw/,
                     { stderr => 1, switches => [ '-TDi' ] },
                    "Perlio debug output to STDERR with -TDi (no PERLIO_DEBUG)");
+    }
 }
 {
     # -DXv tests
Index: gnu/usr.bin/perl/t/run/switchF2.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/run/switchF2.t,v
diff -u -p -a -u -p -r1.1.1.1 switchF2.t
--- gnu/usr.bin/perl/t/run/switchF2.t	17 Nov 2014 20:53:19 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/run/switchF2.t	21 Feb 2024 15:47:03 -0000
@@ -5,7 +5,6 @@ BEGIN {
     @INC = '../lib';
     require './test.pl';
 }
-plan(tests => 3);
 
 { # perl #116190
   fresh_perl_is('print qq!@F!', '1 2',
@@ -24,3 +23,30 @@ plan(tests => 3);
 		 switches => [ '-a' ],
 		}, "passing -a implies -n");
 }
+
+
+my $have_config = eval { require Config; 1 };
+SKIP:
+{
+  $have_config or skip "Can't check if we have threads", 1;
+  $Config::Config{usethreads} or skip "No threads", 1;
+  is_miniperl() and skip "threads module not available under miniperl", 1;
+  # this would only fail under valgrind/ASAN
+  fresh_perl_is('print $F[1]; threads->new(sub {})->join', "b",
+                {
+                    switches => [ "-F,", "-Mthreads" ],
+                    stdin => "a,b,c",
+                }, "PL_splitstr freed in each thread");
+}
+
+{
+  # old value of PL_splitstr wasn't freed with multiple switches (it wasn't safe to before)
+  # this would only fail under valgrind/LSAN
+  fresh_perl_is('print $F[1]', "b",
+                {
+                    switches => [ "-F:", "-F," ],
+                    stdin => "a,b,c",
+                }, "PL_splitstr freed on extra -F switch");
+}
+
+done_testing();
Index: gnu/usr.bin/perl/t/test_pl/can_isa_ok.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/test_pl/can_isa_ok.t,v
diff -u -p -a -u -p -r1.1.1.1 can_isa_ok.t
--- gnu/usr.bin/perl/t/test_pl/can_isa_ok.t	25 Mar 2013 20:09:38 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/test_pl/can_isa_ok.t	21 Feb 2024 15:47:03 -0000
@@ -5,7 +5,11 @@
 use strict;
 use warnings;
 
-BEGIN { require "test.pl"; }
+BEGIN {
+    chdir 't' if -d 't';
+    push @INC, ".";
+    require 'test.pl';
+}
 
 require Test::More;
 
Index: gnu/usr.bin/perl/t/test_pl/plan_skip_all.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/test_pl/plan_skip_all.t,v
diff -u -p -a -u -p -r1.1 plan_skip_all.t
--- gnu/usr.bin/perl/t/test_pl/plan_skip_all.t	5 Feb 2017 00:32:21 -0000	1.1
+++ gnu/usr.bin/perl/t/test_pl/plan_skip_all.t	21 Feb 2024 15:47:03 -0000
@@ -2,6 +2,10 @@
 use strict;
 use warnings;
 
-BEGIN { require "test.pl"; }
+BEGIN {
+    chdir 't' if -d 't';
+    push @INC, ".";
+    require 'test.pl';
+}
 
 plan skip_all => "Test Test::More compatible plan skip_all => \$foo";
Index: gnu/usr.bin/perl/t/test_pl/tempfile.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/test_pl/tempfile.t,v
diff -u -p -a -u -p -r1.1.1.2 tempfile.t
--- gnu/usr.bin/perl/t/test_pl/tempfile.t	17 Nov 2014 20:53:19 -0000	1.1.1.2
+++ gnu/usr.bin/perl/t/test_pl/tempfile.t	21 Feb 2024 15:47:03 -0000
@@ -2,11 +2,14 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    require './test.pl';
+    push @INC, ".";
+    push @INC, "../lib";
+    require 'test.pl';
 }
+
 use strict;
 
-my $prefix = 'tmp'.$$;
+my $prefix = 'tmp_'._num_to_alpha($$)."_";
 
 sub skip_files{
     my($skip,$to,$next) = @_;
@@ -29,7 +32,7 @@ sub skip_files{
         if( $check eq $cmp ){
             pass( $common_mess );
         }else{
-            my($alpha) = $check =~ /\Atmp\d+([A-Z][A-Z]?)\Z/;
+            my($alpha) = $check =~ /\Atmp_[A-Z]+_([A-Z]+)\Z/;
             fail( $common_mess );
             diag( "only skipped to $alpha" );
         }
@@ -68,12 +71,15 @@ skip_files(24,'AY','AZ');
 is( tempfile(), "${prefix}AZ");
 is( tempfile(), "${prefix}BA");
 
-skip_files(26 * 24 + 24,'ZY','ZZ');
+# note that 3 character suffixes are distinct from 2 character suffixes,
+# which are distinct from 1 character suffixes. Thus 18278 files max for
+# a 3 character suffix max.
+skip_files((26 * 26 * 26) + (26*24 + 24) ,'ZZY','ZZZ');
 
-is( tempfile(), "${prefix}ZZ", 'Last available filename');
+is( tempfile(), "${prefix}ZZZ", 'Last available filename');
 ok( !eval{tempfile()}, 'Should bail after Last available filename' );
 my $err = "$@";
-like( $err, qr{^Can't find temporary file name starting}, 'check error string' );
+like( $err, qr{^panic: Too many tempfile\(\)s}, 'check error string' );
 
 {
     my $returned = runperl( progs => [
@@ -82,11 +88,15 @@ like( $err, qr{^Can't find temporary fil
         'print qq[$t|];',
         'print open(FH,q[>],$t) ? qq[ok|] : qq[not ok|] ;',
         'print -e $t ? qq[ok|] : qq[not ok|];',
+        'print close(FH) ? qq[ok] : qq[not ok];', # see comment below
     ] );
-    my($filename,$opened,$existed) = split /\|/, $returned;
+    # NOTE, on Win32 we cannot unlink an open file, so we MUST
+    # close the file before the program exits.
+    my($filename,$opened,$existed,$closed) = split /\|/, $returned;
 
     is( $opened, 'ok', "$filename created" );
     is( $existed, 'ok', "$filename did exist" );
+    is( $closed, 'ok', "$filename was closed" );
     ok( !-e $filename, "$filename doesn't exist now" );
 }
 
Index: gnu/usr.bin/perl/t/uni/method.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/uni/method.t,v
diff -u -p -a -u -p -r1.4 method.t
--- gnu/usr.bin/perl/t/uni/method.t	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/t/uni/method.t	21 Feb 2024 15:47:03 -0000
@@ -113,6 +113,7 @@ is( ref Føø::Bær->new, 'Føø::Bær')
 my $new_ascii = "new";
 my $new_latin = "nèw";
 my $e_with_grave = byte_utf8a_to_utf8n("\303\250");
+my $e_with_grave_escaped= $e_with_grave=~s/\x{a8}/\\\\x\\{a8\\}/r;
 my $new_utf8  = "n${e_with_grave}w";
 my $newoct    = "n${e_with_grave}w";
 utf8::decode($new_utf8);
@@ -123,7 +124,8 @@ like( Føø::Bær->$new_utf8, qr/Føø::
 {
     local $@;
     eval { Føø::Bær->$newoct };
-    like($@, qr/Can't locate object method "n${e_with_grave}w" via package "Føø::Bær"/u, "Can't access [$newoct], stored in a scalar, as a method through a UTF-8 package." );
+    like($@, qr/Can't locate object method "n${e_with_grave_escaped}w" via package "Føø::Bær"/u,
+        "Can't access [$newoct], stored in a scalar, as a method through a UTF-8 package." );
 }
 
 
@@ -139,8 +141,10 @@ like( $pkg_latin_1->$new_latin, qr/Føø
 like( $pkg_latin_1->$new_utf8, qr/Føø::Bær=HASH/u, "Can access \$new_utf8, [$new_utf8], stored in a scalar, as a method, when the UTF-8 package name is also in a scalar." );
 {
     local $@;
+
     eval { $pkg_latin_1->$newoct };
-    like($@, qr/Can't locate object method "n${e_with_grave}w" via package "Føø::Bær"/u, "Can't access [$newoct], stored in a scalar, as a method, when the UTF-8 package name is also in a scalar.");
+    like($@, qr/Can't locate object method "n${e_with_grave_escaped}w" via package "Føø::Bær"/u,
+        "Can't access [$newoct], stored in a scalar, as a method, when the UTF-8 package name is also in a scalar.");
 }
 
 ok !!Føø::Bær->can($new_ascii), "->can works for [$new_ascii]";
Index: gnu/usr.bin/perl/t/uni/overload.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/uni/overload.t,v
diff -u -p -a -u -p -r1.11 overload.t
--- gnu/usr.bin/perl/t/uni/overload.t	15 Feb 2023 01:36:37 -0000	1.11
+++ gnu/usr.bin/perl/t/uni/overload.t	21 Feb 2024 15:47:03 -0000
@@ -97,7 +97,7 @@ $uc = ucfirst $u;
 is (length $uc, 1);
 is ($uc, $e_acute, "e acute -> E acute");
 
-my $have_setlocale = locales_enabled('LC_ALL');
+my $have_setlocale = locales_enabled( [ 'LC_ALL', 'LC_CTYPE' ] );
 
 SKIP: {
     if (!$have_setlocale) {
Index: gnu/usr.bin/perl/t/uni/package.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/uni/package.t,v
diff -u -p -a -u -p -r1.2 package.t
--- gnu/usr.bin/perl/t/uni/package.t	5 Feb 2017 00:32:21 -0000	1.2
+++ gnu/usr.bin/perl/t/uni/package.t	21 Feb 2024 15:47:03 -0000
@@ -34,16 +34,23 @@ ok 1, "sanity check. If we got this far,
         $ㄅĽuṞfⳐ = 5;
     }
     
-    $압Ƈ'd읯ⱪ = 6;        #'
-
+    {
+        no warnings qw(syntax deprecated);
+        $압Ƈ'd읯ⱪ = 6;        #'
+    }
+    
     $ꑭʑ = 2;
     
     $ꑭʑ = join(':', sort(keys %ꑭʑ::));
     $압Ƈ = join(':', sort(keys %압Ƈ::));
     
-    ::is $ꑭʑ, 'bar:ニュー:ꑭʑ:압Ƈ', "comp/stash.t test 1";
+    ::is $ꑭʑ, 'BEGIN:bar:ニュー:ꑭʑ:압Ƈ', "comp/stash.t test 1";
     ::is $압Ƈ, "d읯ⱪ:ㄅĽuṞfⳐ", "comp/stash.t test 2";
-    ::is $main'ㄅĽuṞfⳐ, 123, "comp/stash.t test 3";
+
+    {
+        no warnings qw(syntax deprecated);
+        ::is $main'ㄅĽuṞfⳐ, 123, "comp/stash.t test 3";
+    }
 
     package 압Ƈ;
 
Index: gnu/usr.bin/perl/t/uni/parser.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/uni/parser.t,v
diff -u -p -a -u -p -r1.4 parser.t
--- gnu/usr.bin/perl/t/uni/parser.t	30 Dec 2019 02:13:57 -0000	1.4
+++ gnu/usr.bin/perl/t/uni/parser.t	21 Feb 2024 15:47:03 -0000
@@ -267,6 +267,7 @@ eval "sort \x{100}%";
 die $@;
 EOS
 syntax error at (eval 1) line 1, at EOF
+Execution of (eval 1) aborted due to compilation errors.
 EXPECT
 
 # New tests go here ^^^^^
Index: gnu/usr.bin/perl/t/uni/stash.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/uni/stash.t,v
diff -u -p -a -u -p -r1.3 stash.t
--- gnu/usr.bin/perl/t/uni/stash.t	13 Feb 2019 21:15:32 -0000	1.3
+++ gnu/usr.bin/perl/t/uni/stash.t	21 Feb 2024 15:47:03 -0000
@@ -287,4 +287,4 @@ plan( tests => 49 );
     # [perl #88138] ' not equivalent to :: before a null
     ${"à'\0b"} = "c";
     is ${"à::\0b"}, "c", "' is equivalent to :: before a null";
-}
\ No newline at end of file
+}
Index: gnu/usr.bin/perl/t/uni/variables.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/uni/variables.t,v
diff -u -p -a -u -p -r1.5 variables.t
--- gnu/usr.bin/perl/t/uni/variables.t	1 Mar 2021 23:20:01 -0000	1.5
+++ gnu/usr.bin/perl/t/uni/variables.t	21 Feb 2024 15:47:03 -0000
@@ -41,6 +41,7 @@ plan (tests => 66880);
     eval q<use strict; ${flark::fleem}>;
     is($@, '', q<${package::var} works>);
 
+    no warnings qw(syntax deprecated);
     local $@;
     eval q<use strict; ${fleem'flark}>;
     is($@, '', q<...as does ${package'var}>);
Index: gnu/usr.bin/perl/t/win32/seekdir.t
===================================================================
RCS file: gnu/usr.bin/perl/t/win32/seekdir.t
diff -N gnu/usr.bin/perl/t/win32/seekdir.t
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/t/win32/seekdir.t	21 Feb 2024 15:47:03 -0000
@@ -0,0 +1,75 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib';
+    require "./test.pl";
+}
+
+use warnings;
+use strict;
+use Errno;
+
+{ # Test we can seekdir to all positions.
+
+    my $dh;
+    ok(opendir($dh, ".") == 1, "able to opendir('.')");
+
+    # Build up a list of all the files and their positions.
+    my @p_f;  # ([POS_0, FILE_0], [POS_1, FILE_1], ...)
+    while (1) {
+        my $p = telldir $dh;
+        my $f = readdir $dh;
+        last unless defined $f;
+        push @p_f, [$p, $f];
+    }
+
+    # Test we can seekdir() to the given position and that
+    # readdir() returns the expected file name.
+    my $test = sub {
+        my ($p_f, $type) = @_;
+        my ($p, $f) = @$p_f;
+        ok(seekdir($dh, $p), "$type seekdir($p)");
+        ok(readdir($dh) eq $f, "$type readdir() -> $f \tas expected");
+    };
+    # Go forwards.
+    $test->($_, "forward") for @p_f;
+    # Go backwards.
+    $test->($_, "backward") for reverse @p_f;
+    # A mixed traversal: longest file names first.
+    my @sorted_p_f = sort {
+            length $b->[1] <=> length $a->[1]
+                or
+            $a->[1] cmp $b->[1]
+    } @p_f;
+    $test->($_, "mixed") for @sorted_p_f;
+
+    # Test behaviour of seekdir(-1).
+    ok(seekdir($dh, -1), "seekdir(-1) returns true...");
+    ok(!defined readdir($dh), "...but next readdir() gives undef");
+
+    # Test behaviour of seekdir() to a position beyond what we
+    # have read so far.
+    my $final_p_f = $p_f[-1];
+    my $end_pos = $final_p_f->[0] + length $final_p_f->[1];
+    ok(seekdir($dh, $end_pos), "seekdir($end_pos) possible");
+    ok(telldir($dh) == $end_pos, "telldir() equal to where we seekdir()d");
+    # At this point we readdir() the trailing NUL of the last file name.
+    ok(readdir($dh) eq '', "readdir() here gives an empty string");
+
+    # Reached the end of files to seekdir() to.
+    ok(telldir($dh) == -1, "telldir() now equal to -1");
+    ok(!defined readdir($dh), "next readdir() gives undef");
+
+    # NB. `seekdir(DH, POS)` always returns true regardless of the
+    # value of POS, providing DH is a valid directory handle.
+    # However, if POS _is_ out of range then `telldir(DH)` is -1,
+    # and `readdir(DH)` returns undef.
+    ok(seekdir($dh, $end_pos + 1), "seekdir($end_pos + 1) returns true...");
+    ok(telldir($dh) == -1, "....but telldir() == -1 indicating out of range");
+    ok(!defined readdir($dh), "... and next readdir() gives undef");
+
+    ok(closedir($dh) == 1, "Finally. closedir() returns true");
+}
+
+done_testing();
Index: gnu/usr.bin/perl/t/win32/stat.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/win32/stat.t,v
diff -u -p -a -u -p -r1.1.1.1 stat.t
--- gnu/usr.bin/perl/t/win32/stat.t	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/win32/stat.t	21 Feb 2024 15:47:03 -0000
@@ -8,6 +8,9 @@ BEGIN {
 
 use strict;
 use Fcntl ":seek";
+use Config;
+use Errno;
+use Cwd "getcwd";
 
 Win32::FsType() eq 'NTFS'
     or skip_all("need NTFS");
@@ -17,6 +20,7 @@ my (undef, $maj, $min) = Win32::GetOSVer
 my $vista_or_later = $maj >= 6;
 
 my $tmpfile1 = tempfile();
+my $tmpfile2 = tempfile();
 
 # test some of the win32 specific stat code, since we
 # don't depend on the CRT for some of it
@@ -101,6 +105,9 @@ if (system("mklink $tmpfile1 win32\\stat
     # our hard link no longer exists, check that is reflected in nlink
     is($st[3], $nlink-1, "check nlink updated");
 
+    is((lstat($tmpfile1))[7], length(readlink($tmpfile1)),
+       "check size matches length of link");
+
     unlink($tmpfile1);
 }
 
@@ -125,6 +132,10 @@ if (system("mklink /d $tmpfile1 win32") 
 if (system("mklink /j $tmpfile1 win32") == 0) {
     ok(-l $tmpfile1, "lstat sees a symlink on the directory junction");
 
+    my @st = lstat($tmpfile1);
+    is($st[7], length(readlink($tmpfile1)),
+       "check returned length matches POSIX");
+
     rmdir( $tmpfile1 );
 }
 
@@ -175,6 +186,19 @@ if (ok(mkdir($tmpfile1), "make a work di
     rmdir $tmpfile1;
 }
 
+ SKIP:
+{ # github 19668
+    $Config{ivsize} == 8
+        or skip "Need 64-bit int", 1;
+    open my $tmp, ">", $tmpfile1
+        or skip "Cannot create test file: $!", 1;
+    close $tmp;
+    fresh_perl_is("utime(500_000_000_000, 500_000_000_000, '$tmpfile1')",
+                  "", { stderr => 1 },
+                  "check debug output removed");
+    unlink $tmpfile1;
+}
+
 # Other stat issues possibly fixed by the stat() re-work
 
 # https://github.com/Perl/perl5/issues/9025 - win32 - file test operators don't work for //?/UNC/server/file filenames
@@ -235,4 +259,75 @@ if (ok(mkdir($tmpfile1), "make a work di
     ok(!-e '"', qq(filename '"' shouldn't exist));
 }
 
+# https://github.com/Perl/perl5/issues/20204
+# Win32: stat/unlink fails on UNIX sockets
+SKIP:
+{
+    use IO::Socket;
+    unlink $tmpfile1;
+    my $listen = IO::Socket::UNIX->new(Local => $tmpfile1, Listen => 0)
+        or skip "Cannot create unix socket", 1;
+    ok(-S $tmpfile1, "can stat a socket");
+    ok(!-l $tmpfile1, "doesn't look like a symlink");
+    unlink $tmpfile2;
+    if (system("mklink $tmpfile2 $tmpfile1") == 0) {
+        ok(-l $tmpfile2, "symlink to socket is a symlink (via lstat)");
+        ok(-S $tmpfile2, "symlink to socket is also a socket (via stat)");
+        unlink $tmpfile2;
+    }
+    close $listen;
+    unlink $tmpfile1;
+}
+
+{
+    # if a symlink chain leads to a socket, or loops, or is broken,
+    # CreateFileA() fails, so we do our own link following.
+    # The link leading to a socket is checked above, here check loops
+    # fail, and that we get ELOOP (which isn't what MSVC returns, but
+    # try to be better).
+    if (system("mklink $tmpfile1 $tmpfile2") == 0
+        && system("mklink $tmpfile2 $tmpfile1") == 0) {
+        ok(!stat($tmpfile1), "looping symlink chain fails stat");
+        is($!+0, &Errno::ELOOP, "check error set");
+        ok(lstat($tmpfile1), "looping symlink chain passes lstat");
+
+        unlink $tmpfile2;
+        ok(!stat($tmpfile1), "broken symlink");
+        is($!+0, &Errno::ENOENT, "check error set");
+        ok(lstat($tmpfile1), "broken symlink chain passes lstat");
+    }
+    unlink $tmpfile1, $tmpfile2;
+}
+
+{
+    # $tmpfile4 -> $tmpfile1/file1 -> ../$tmpfile2 -> abspath($tmpfile3)
+    # $tmpfile3 either doesn't exist, is a file, or is a socket
+    my ($tmpfile3, $tmpfile4) = (tempfile(), tempfile());
+    ok(mkdir($tmpfile1), "make a directory");
+    my $cwd = getcwd();
+    if (system(qq(mklink $tmpfile4 $tmpfile1\\file1)) == 0
+        && system(qq(mklink $tmpfile1\\file1 ..\\$tmpfile2)) == 0
+        && system(qq(mklink $tmpfile2 "$cwd\\$tmpfile3")) == 0) {
+        ok(-l $tmpfile4, "yes, $tmpfile4 is a symlink");
+        ok(!-e $tmpfile4, "but we can't stat it");
+
+        open my $fh, ">", $tmpfile3 or die $!;
+        close $fh;
+        ok(-f $tmpfile4, "now $tmpfile4 leads to a file");
+        unlink $tmpfile3;
+
+      SKIP:
+        {
+            my $listen = IO::Socket::UNIX->new(Local => $tmpfile3, Listen => 0)
+                or skip "Cannot create unix socket", 1;
+            ok(!-f $tmpfile4, "$tmpfile4 no longer leads to a file");
+            ok(-S $tmpfile4, "now $tmpfile4 leads to a socket");
+            ok(-S "$tmpfile1/file1", "$tmpfile1/file1 should lead to a socket");
+            ok(-S $tmpfile2, "$tmpfile2 should lead to a socket");
+            unlink $tmpfile3;
+        }
+    }
+    unlink $tmpfile2, $tmpfile4, "$tmpfile1/file1";
+    rmdir $tmpfile1;
+}
 done_testing();
Index: gnu/usr.bin/perl/t/win32/symlink.t
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/t/win32/symlink.t,v
diff -u -p -a -u -p -r1.1.1.1 symlink.t
--- gnu/usr.bin/perl/t/win32/symlink.t	15 Feb 2023 01:33:03 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/win32/symlink.t	21 Feb 2024 15:47:03 -0000
@@ -7,6 +7,7 @@ BEGIN {
 }
 
 use Errno;
+use Cwd qw(getcwd);
 
 Win32::FsType() eq 'NTFS'
     or skip_all("need NTFS");
@@ -74,10 +75,17 @@ close $fh if $fh;
 ok(symlink($tmpfile1, $tmpfile2), "link to it");
 ok(-l $tmpfile2, "-l sees a link");
 ok(!-f _, "-f on the lstat result is false");
-ok(-f $tmpfile2, "normal -d sees it as a file");
+ok(-f $tmpfile2, "normal -f sees it as a file");
 is(readlink($tmpfile2), $tmpfile1, "readlink works");
 check_stat($tmpfile1, $tmpfile2, "check file and link stat are the same");
 ok(unlink($tmpfile2), "unlink the symlink");
+
+# make a relative link
+unlike($tmpfile1, qr([\\/]), "temp filename has no path");
+ok(symlink("./$tmpfile1", $tmpfile2), "UNIX (/) relative link to the file");
+ok(-f $tmpfile2, "we can see it through the link");
+ok(unlink($tmpfile2), "unlink the symlink");
+
 ok(unlink($tmpfile1), "and the file");
 
 # test we don't treat directory junctions like symlinks
@@ -93,6 +101,16 @@ if (system("mklink /j $tmpfile2 $tmpfile
     ok(unlink($tmpfile2), "unlink magic for junctions");
 }
 rmdir($tmpfile1);
+
+{
+    # link to an absolute path to a directory
+    # 20533
+    my $cwd = getcwd();
+    ok(symlink($cwd, $tmpfile1),
+       "symlink to an absolute path to cwd");
+    ok(-d $tmpfile1, "the link looks like a directory");
+    unlink $tmpfile1;
+}
 
 done_testing();
 
Index: gnu/usr.bin/perl/utils/perlbug.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/utils/perlbug.PL,v
diff -u -p -a -u -p -r1.35 perlbug.PL
--- gnu/usr.bin/perl/utils/perlbug.PL	15 Feb 2023 01:38:23 -0000	1.35
+++ gnu/usr.bin/perl/utils/perlbug.PL	21 Feb 2024 15:47:03 -0000
@@ -86,7 +86,7 @@ BEGIN {
     $::HaveWrap = ($@ eq "");
 };
 
-our $VERSION = "1.42";
+our $VERSION = "1.43";
 
 #TODO:
 #       make sure failure (transmission-wise) of Mail::Send is accounted for.
@@ -619,6 +619,10 @@ generated with the help of perlbug $VERS
 
 EOF
 
+    if ($report_about_module) {
+	print REP "Module: $report_about_module\n\n";
+    }
+
     if ($body) {
 	print REP $body;
     } elsif ($usefile) {
@@ -645,12 +649,25 @@ EOF
 	    print REP <<'EOF';
 
 -----------------------------------------------------------------
-[Please describe your issue here]
+<!--[Please describe your issue here]-->
 
+**Description**
+<!-- A clear and concise description of what the bug is. -->
 
 
-[Please do not change anything below this line]
------------------------------------------------------------------
+
+**Steps to Reproduce**
+<!-- A one-liner or script to reproduce the issue. -->
+
+
+
+**Expected behavior**
+<!-- A clear and concise description of what you expected to happen. -->
+
+
+
+<!--[Please do not change anything below this line]-->
+<!------------------------------------------------------------------- -->
 EOF
 	}
     }
@@ -670,26 +687,30 @@ sub Dump {
     $severity ||= 'low';
 
     print OUT <<EFF;
+
+
 ---
-Flags:
-    category=$category
-    severity=$severity
+**Flags**
+- category=$category
+- severity=$severity
 EFF
 
     if ($has_patch) {
         print OUT <<EFF;
-    Type=Patch
-    PatchStatus=HasPatch
+- Type=Patch
+- PatchStatus=HasPatch
 EFF
     }
 
     if ($report_about_module ) { 
         print OUT <<EFF;
-    module=$report_about_module
+- module=$report_about_module
 EFF
     }
     print OUT <<EFF;
 ---
+**Perl configuration**
+```
 EFF
     print OUT "This perlbug was built using Perl $config_tag1\n",
 	    "It is being executed now by  Perl $config_tag2.\n\n"
@@ -744,6 +765,7 @@ EOF
 	    print OUT "$_='$value'\n";
 	}
     }
+    print OUT "```\n";
 } # sub Dump
 
 sub Edit {
Index: gnu/usr.bin/perl/vms/descrip_mms.template
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/vms/descrip_mms.template,v
diff -u -p -a -u -p -r1.14 descrip_mms.template
--- gnu/usr.bin/perl/vms/descrip_mms.template	23 Dec 2023 21:02:21 -0000	1.14
+++ gnu/usr.bin/perl/vms/descrip_mms.template	21 Feb 2024 15:47:03 -0000
@@ -23,7 +23,6 @@
 
 ~DECC~
 ~DECCXX~
-~GNUC~
 ~ARCH-TYPE~ = 1
 ~THREAD~
 ~SOCKET~
@@ -86,21 +85,6 @@ ARCHCORE = [.lib.$(ARCHNAME).$(PERL_VERS
 ARCHAUTO = [.lib.$(ARCHNAME).$(PERL_VERSION).auto]
 
 #: >>>>>Compiler-specific options <<<<<
-.ifdef GNUC
-.first
-	@ If F$TrnLnm("Sys").eqs."" Then Define/NoLog SYS GNU_CC_Include:[VMS]
-CC = gcc
-# -fno-builtin avoids bug in gcc up to version 2.6.2 which can destroy
-# data when memcpy() is called on large (>64 kB) blocks of memory
-# (fixed in gcc 2.6.3)
-XTRACCFLAGS = /Obj=$(MMS$TARGET_NAME)$(O)/NoCase_Hack/Optimize=2
-DBGSPECFLAGS =
-XTRADEF = 
-XTRAOBJS =
-LIBS1 = GNU_CC:[000000]GCCLIB.OLB/Library
-LIBS2 = Sys$Share:VAXCRTL/Shareable
-POSIX =
-.else
 XTRAOBJS = 
 LIBS1 = $(XTRAOBJS)
 DBGSPECFLAGS = /Show=(expansion,include)/machine
@@ -125,7 +109,6 @@ XTRACCFLAGS = /Include=[]/Standard=Relax
 .endif
 XTRADEF =
 POSIX = POSIX
-.endif
 
 #: >>>>> Configuration options <<<<<
 #: __DEBUG__: builds images with full VMS debugger support
@@ -226,27 +209,29 @@ FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLI
 
 #### End of system configuration section. ####
 
-c0 = $(MALLOC_C) av.c builtin.c caretx.c deb.c doio.c doop.c dquote.c dump.c globals.c gv.c hv.c mro_core.c
-c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c perl.c perlio.c
-c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regexec.c reentr.c
-c3 = run.c scope.c sv.c taint.c time64.c toke.c universal.c utf8.c util.c vms.c keywords.c
-c = $(c0) $(c1) $(c2) $(c3)
+c0 = $(MALLOC_C) av.c builtin.c caretx.c class.c deb.c doio.c doop.c dquote.c dump.c globals.c gv.c hv.c mro_core.c
+c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c peep.c perl.c perlio.c
+c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regcomp_debug.c
+c3 = regcomp_invlist.c regcomp_study.c regcomp_trie.c regexec.c reentr.c
+c4 = run.c scope.c sv.c taint.c time64.c toke.c universal.c utf8.c util.c vms.c keywords.c
+c = $(c0) $(c1) $(c2) $(c3) $(c4)
 
 obj0 = perl$(O)
-obj1 = $(MALLOC_O) av$(O) builtin$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dquote$(O) dump$(O) mro_core$(O) globals$(O) gv$(O) hv$(O)
-obj2 = keywords$(O) locale$(O) mathoms$(O) mg$(O) miniperlmain$(O) numeric$(O) op$(O) pad$(O) perlio$(O) 
+obj1 = $(MALLOC_O) av$(O) builtin$(O) caretx$(O) class$(O) deb$(O) doio$(O) doop$(O) dquote$(O) dump$(O) mro_core$(O) globals$(O) gv$(O) hv$(O)
+obj2 = keywords$(O) locale$(O) mathoms$(O) mg$(O) miniperlmain$(O) numeric$(O) op$(O) pad$(O) peep$(O) perlio$(O) 
 obj3 = perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) reentr$(O) pp_pack$(O) pp_sort$(O) pp_sys$(O) regcomp$(O) 
-obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) time64$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O)
+obj4 = regcomp_debug$(O) regcomp_invlist$(O) regcomp_study$(O) regcomp_trie$(O)
+obj5 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) time64$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O)
 
-mini_obj = perlmini$(O) $(obj1) $(obj2) $(obj3) $(obj4)
-obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4)
+mini_obj = perlmini$(O) $(obj1) $(obj2) $(obj3) $(obj4) $(obj5)
+obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4) $(obj5)
 
 h0 = av.h config.h cop.h cv.h embed.h embedvar.h
 h1 = EXTERN.h form.h gv.h handy.h hv.h l1_char_class_tab.h INTERN.h intrpvar.h
 h2 = iperlsys.h keywords.h mydtrace.h mg.h mg_vtable.h nostdio.h op.h 
 h3 = op_reg_common.h opcode.h opnames.h overload.h pad.h parser.h patchlevel.h 
 h4 = perl.h perlapi.h perlio.h perlsdio.h perlvars.h perly.h
-h5 = pp.h pp_proto.h proto.h regcomp.h regexp.h regnodes.h scope.h
+h5 = pp.h pp_proto.h proto.h regcomp.h regcomp_internal.h regexp.h regnodes.h scope.h
 h6 = sv.h thread.h utf8.h util.h vmsish.h warnings.h xsub.h
 h = $(h0) $(h1) $(h2) $(h3) $(h4) $(h5) $(h6)
 
@@ -313,7 +298,7 @@ utils : $(utils1) $(utils2) $(utils3) $(
 extra.pods : miniperl
 	@ @extra_pods.com
 
-PERLDELTA_CURRENT = [.pod]perl5363delta.pod
+PERLDELTA_CURRENT = [.pod]perl5382delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
 	Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
@@ -663,6 +648,8 @@ pad$(O) : pad.c $(h)
 	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
 op$(O) : op.c $(h)
 	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
+peep$(O) : peep.c $(h)
+	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
 perl$(O) : perl.c git_version.h $(h)
 	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
 perlio$(O) : perlio.c config.h $(h)
@@ -686,6 +673,14 @@ pp_sys$(O) : pp_sys.c $(h)
 reentr$(O) : reentr.c $(h)
 	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
 regcomp$(O) : regcomp.c $(h)
+	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
+regcomp_debug$(O) : regcomp_debug.c $(h)
+	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
+regcomp_invlist$(O) : regcomp_invlist.c $(h)
+	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
+regcomp_study$(O) : regcomp_study.c $(h)
+	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
+regcomp_trie$(O) : regcomp_trie.c $(h)
 	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
 regexec$(O) : regexec.c $(h)
 	$(CC) $(CORECFLAGS) $(MMS$SOURCE)
Index: gnu/usr.bin/perl/vms/gen_shrfls.pl
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/vms/gen_shrfls.pl,v
diff -u -p -a -u -p -r1.14 gen_shrfls.pl
--- gnu/usr.bin/perl/vms/gen_shrfls.pl	1 Mar 2021 23:20:01 -0000	1.14
+++ gnu/usr.bin/perl/vms/gen_shrfls.pl	21 Feb 2024 15:47:03 -0000
@@ -56,8 +56,8 @@ my $docc = ($cc_cmd !~ /^~~/);
 print "\$docc = $docc\n" if $debug;
 
 my ( $use_threads, $use_mymalloc, $care_about_case, $shorten_symbols,
-     $debugging_enabled, $hide_mymalloc, $isgcc, $use_perlio, $dir )
-   = ( 0, 0, 0, 0, 0, 0, 0, 0 );
+     $debugging_enabled, $hide_mymalloc, $use_perlio, $dir )
+   = ( 0, 0, 0, 0, 0, 0, 0 );
 
 if (-f 'perl.h') { $dir = '[]'; }
 elsif (-f '[-]perl.h') { $dir = '[-]'; }
@@ -73,7 +73,6 @@ while(<CONFIG>) {
     $shorten_symbols++ if /d_vms_shorten_long_symbols='(define|yes|true|t|y|1)'/i;
     $debugging_enabled++ if /usedebugging_perl='(define|yes|true|t|y|1)'/i;
     $hide_mymalloc++ if /embedmymalloc='(define|yes|true|t|y|1)'/i;
-    $isgcc++ if /gccversion='[^']/;
     $use_perlio++ if /useperlio='(define|yes|true|t|y|1)'/i;
 }
 close CONFIG;
@@ -89,10 +88,6 @@ if (my ($prefix,$defines,$suffix) =
 }
 print "Filtered \$cc_cmd: \\$cc_cmd\\\n" if $debug;
 
-# check for gcc - if present, we'll need to use MACRO hack to
-# define global symbols for shared variables
-
-print "\$isgcc: $isgcc\n" if $debug;
 print "\$debugging_enabled: $debugging_enabled\n" if $debug;
 
 my $objsuffix = shift @ARGV;
@@ -127,7 +122,6 @@ while (my $line = <$makedefs>) {
   }
 }
 
-if ($debugging_enabled and $isgcc) { $vars{'colors'}++ }
 foreach (split /\s+/, $extnames) {
   my($pkgname) = $_;
   $pkgname =~ s/::/__/g;
@@ -142,9 +136,8 @@ my $marord = 1;
 open(OPTBLD,'>', "${dir}${dbgprefix}perlshr_bld.opt")
   or die "$0: Can't write to ${dir}${dbgprefix}perlshr_bld.opt: $!\n";
 
-unless ($isgcc) {
-  print OPTBLD "PSECT_ATTR=LIB\$INITIALIZE,GBL,NOEXE,NOWRT,NOSHR,LONG\n";
-}
+
+print OPTBLD "PSECT_ATTR=LIB\$INITIALIZE,GBL,NOEXE,NOWRT,NOSHR,LONG\n";
 print OPTBLD "case_sensitive=yes\n" if $care_about_case;
 my $count = 0;
 foreach my $var (sort (keys %vars)) {
@@ -157,19 +150,8 @@ foreach my $func (sort keys %fcns) {
 
 open(OPTATTR, '>', "${dir}perlshr_attr.opt")
   or die "$0: Can't write to ${dir}perlshr_attr.opt: $!\n";
-if ($isgcc) {
-# TODO -- lost ability to distinguish constant vars from others when
-# we switched to using makedef.pl for input.
-#  foreach my $var (sort keys %cvars) {
-#    print OPTATTR "PSECT_ATTR=${var},PIC,OVR,RD,NOEXE,NOWRT,SHR\n";
-#  }
-  foreach my $var (sort keys %vars) {
-    print OPTATTR "PSECT_ATTR=${var},PIC,OVR,RD,NOEXE,WRT,NOSHR\n";
-  }
-}
-else {
-  print OPTATTR "! No additional linker directives are needed when using DECC\n";
-}
+
+print OPTATTR "! No additional linker directives are needed when using DECC\n";
 close OPTATTR;
 
 my $incstr = 'perl,globals';
Index: gnu/usr.bin/perl/vms/vms.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/vms/vms.c,v
diff -u -p -a -u -p -r1.21 vms.c
--- gnu/usr.bin/perl/vms/vms.c	15 Feb 2023 01:36:37 -0000	1.21
+++ gnu/usr.bin/perl/vms/vms.c	21 Feb 2024 15:47:03 -0000
@@ -5659,7 +5659,7 @@ int_expanded:
   if (!DECC_EFS_CASE_PRESERVE) {
     char * tbuf;
     for (tbuf = rms_get_fna(myfab, mynam); *tbuf; tbuf++)
-      if (islower(*tbuf)) { haslower = 1; break; }
+      if (isU8_LOWER_LC(*tbuf)) { haslower = 1; break; }
   }
 
    /* Is a long or a short name expected */
@@ -6281,7 +6281,7 @@ int_fileify_dirspec(const char *dir, cha
 #endif
 
       for (cp = trndir; *cp; cp++)
-        if (islower(*cp)) { haslower = 1; break; }
+        if (isU8_LOWER_LC(*cp)) { haslower = 1; break; }
       if (!((sts = sys$parse(&dirfab)) & STS$K_SUCCESS)) {
         if ((dirfab.fab$l_sts == RMS$_DIR) ||
             (dirfab.fab$l_sts == RMS$_DNF) ||
@@ -9490,7 +9490,7 @@ mp_expand_wild_cards(pTHX_ char *item, s
          */
         if (!DECC_EFS_CASE_PRESERVE) {
             for (c = string; *c; ++c)
-            if (isupper(*c))
+            if (isUPPER_L1(*c))
                 *c = toLOWER_L1(*c);
         }
         if (isunix) trim_unixpath(string,item,1);
@@ -13638,7 +13638,7 @@ mp_do_vms_realpath(pTHX_ const char *fil
                      */
                     if (!DECC_EFS_CASE_PRESERVE) {
                         for (cp = filespec; *cp; cp++)
-                            if (islower(*cp)) { haslower = 1; break; }
+                            if (isU8_LOWER_LC(*cp)) { haslower = 1; break; }
 
                         if (haslower) __mystrtolower(rslt);
                     }
@@ -13789,7 +13789,7 @@ mp_do_vms_realname(pTHX_ const char *fil
              */
             if (!DECC_EFS_CASE_PRESERVE) {
                 for (cp = filespec; *cp; cp++)
-                    if (islower(*cp)) { haslower = 1; break; }
+                    if (isU8_LOWER_LC(*cp)) { haslower = 1; break; }
 
                 if (haslower) __mystrtolower(outbuf);
             }
Index: gnu/usr.bin/perl/vms/vmsish.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/vms/vmsish.h,v
diff -u -p -a -u -p -r1.17 vmsish.h
--- gnu/usr.bin/perl/vms/vmsish.h	15 Feb 2023 01:36:37 -0000	1.17
+++ gnu/usr.bin/perl/vms/vmsish.h	21 Feb 2024 15:47:03 -0000
@@ -46,9 +46,7 @@
 #include <unixio.h>
 #include <unixlib.h>
 #include <file.h>  /* it's not <sys/file.h>, so don't use I_SYS_FILE */
-#if (defined(__DECC) && defined(__DECC_VER) && __DECC_VER > 20000000) || defined(__DECCXX)
-#  include <unistd.h> /* DECC has this; gcc doesn't */
-#endif
+#include <unistd.h>
 
 #ifdef NO_PERL_TYPEDEFS /* a2p; we don't want Perl's special routines */
 #  define DONT_MASK_RTL_CALLS
@@ -246,15 +244,9 @@
  */
 #define ALTERNATE_SHEBANG "$"
 
-/* Macros to set errno using the VAX thread-safe calls, if present */
-#if (defined(__DECC) || defined(__DECCXX)) && !defined(__ALPHA)
-#  define set_errno(v)      (cma$tis_errno_set_value(v))
-   void cma$tis_errno_set_value(int __value);  /* missing in some errno.h */
-#  define set_vaxc_errno(v) (vaxc$errno = (v))
-#else
-#  define set_errno(v)      (errno = (v))
-#  define set_vaxc_errno(v) (vaxc$errno = (v))
-#endif
+/* Macros to set errno.  */
+#define set_errno(v)      (errno = (v))
+#define set_vaxc_errno(v) (vaxc$errno = (v))
 
 /* Support for 'vmsish' behaviors enabled with C<use vmsish> pragma */
 
@@ -309,9 +301,8 @@ struct interp_intern {
 
 #define BIT_BUCKET "/dev/null"
 #define PERL_SYS_INIT_BODY(c,v)	MALLOC_CHECK_TAINT2(*c,*v) vms_image_init((c),(v)); PERLIO_INIT; MALLOC_INIT
-#define PERL_SYS_TERM_BODY()    HINTS_REFCNT_TERM; OP_REFCNT_TERM;      \
-                                PERLIO_TERM; MALLOC_TERM; LOCALE_TERM;  \
-                                ENV_TERM;
+/* Use standard PERL_SYS_TERM_BODY */
+
 #define dXSUB_SYS dNOOP
 #define HAS_KILL
 #define HAS_WAIT
@@ -340,7 +331,7 @@ struct interp_intern {
  *	This symbol, if defined, indicates that the ioctl() routine is
  *	available to set I/O characteristics
  */
-#define	HAS_IOCTL		/**/
+#define HAS_IOCTL               /**/
  
 /* HAS_UTIME:
  *	This symbol, if defined, indicates that the routine utime() is
Index: gnu/usr.bin/perl/win32/GNUmakefile
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/GNUmakefile,v
diff -u -p -a -u -p -r1.23 GNUmakefile
--- gnu/usr.bin/perl/win32/GNUmakefile	23 Dec 2023 21:02:21 -0000	1.23
+++ gnu/usr.bin/perl/win32/GNUmakefile	21 Feb 2024 15:47:03 -0000
@@ -6,7 +6,7 @@
 #	MinGW64 with gcc-4.4.3 or later
 #
 # This is set up to build a perl.exe that runs off a shared library
-# (perl536.dll).  Also makes individual DLLs for the XS extensions.
+# (perl538.dll).  Also makes individual DLLs for the XS extensions.
 #
 # The easiest way to customize the build process is to use parameters like this:
 #
@@ -63,7 +63,7 @@ INST_TOP := $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER	:= \5.36.3
+#INST_VER	:= \5.38.2
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -180,6 +180,7 @@ DEFAULT_INC_EXCLUDES_DOT := define
 
 #
 # Uncomment this if you want to build everything in C++ mode
+# This requires gcc or at least MSVC 2019.
 #
 #USE_CPLUSPLUS	:= define
 
@@ -219,7 +220,7 @@ DEFAULT_INC_EXCLUDES_DOT := define
 # set this to additionally provide a statically linked perl-static.exe.
 # Note that dynamic loading will not work with this perl, so you must
 # include required modules statically using the STATIC_EXT or ALL_STATIC
-# variables below. A static library perl536s.lib will also be created.
+# variables below. A static library perl538s.lib will also be created.
 # Ordinary perl.exe is not affected by this option.
 #
 #BUILD_STATIC	:= define
@@ -539,6 +540,9 @@ CPANDIR		= ..\cpan
 PODDIR		= ..\pod
 HTMLDIR		= .\html
 
+# Strip trailing backslash from INST_TOP
+override INST_TOP := $(INST_TOP:\=)
+
 INST_SCRIPT	= $(INST_TOP)$(INST_VER)\bin
 INST_BIN	= $(INST_SCRIPT)$(INST_ARCH)
 INST_LIB	= $(INST_TOP)$(INST_VER)\lib
@@ -605,11 +609,16 @@ LIBFILES	+= -lquadmath
 endif
 
 ifeq ($(CFG),Debug)
-OPTIMIZE	= -g -O2
+# According to https://gcc.gnu.org/onlinedocs/gcc-8.3.0/gcc/Optimize-Options.html
+# -Og should provide some optimizations while still giving convenient debugging
+OPTIMIZE	= -g -Og
 LINK_DBG	= -g
 DEFINES		+= -DDEBUGGING
 else
-OPTIMIZE	= -O2
+# In https://github.com/Perl/perl5/issues/20081 it is found that the previous
+# optimization level -O2 causes generated code that fails in mysterious ways
+# when run on Win11 (*even* if it was built and successfully tested on Win10!).
+OPTIMIZE	= -Os
 LINK_DBG	= -s
 endif
 
@@ -664,6 +673,9 @@ INCLUDES	= -I.\include -I. -I..
 DEFINES		= -DWIN32 -D_CONSOLE -DNO_STRICT
 LOCDEFS		= -DPERLDLL -DPERL_CORE
 CXX_FLAG	= -TP -EHsc
+ifeq ($(USE_CPLUSPLUS),define)
+CXX_FLAG	+= -std:c++20
+endif
 EXTRACFLAGS	= -nologo -GF -W3
 
 ifeq ($(CCTYPE),MSVC120)
@@ -736,7 +748,7 @@ endif
 endif
 
 # Avoid __intel_new_proc_init link error for libircmt.
-# libmmd is /MD equivelent, other variants exist.
+# libmmd is /MD equivalent, other variants exist.
 # libmmd is Intel C's math addon funcs to MS CRT, contains long doubles, C99,
 # and optimized C89 funcs
 ifeq ($(__ICC),define)
@@ -899,9 +911,9 @@ ifeq ($(CCTYPE),GCC)
 
 CFGSH_TMPL	= config.gc
 CFGH_TMPL	= config_H.gc
-PERLIMPLIB	= $(COREDIR)\libperl536$(a)
-PERLIMPLIBBASE	= libperl536$(a)
-PERLSTATICLIB	= ..\libperl536s$(a)
+PERLIMPLIB	= $(COREDIR)\libperl538$(a)
+PERLIMPLIBBASE	= libperl538$(a)
+PERLSTATICLIB	= ..\libperl538s$(a)
 INT64		= long long
 
 else
@@ -914,12 +926,12 @@ endif
 
 # makedef.pl must be updated if this changes, and this should normally
 # only change when there is an incompatible revision of the public API.
-PERLIMPLIB	?= $(COREDIR)\perl536$(a)
-PERLIMPLIBBASE	?= perl536$(a)
-PERLEXPLIB	?= $(COREDIR)\perl536.exp
-PERLSTATICLIB	?= ..\perl536s$(a)
-PERLDLL		= ..\perl536.dll
-PERLDLLBASE	= perl536.dll
+PERLIMPLIB	?= $(COREDIR)\perl538$(a)
+PERLIMPLIBBASE	?= perl538$(a)
+PERLEXPLIB	?= $(COREDIR)\perl538.exp
+PERLSTATICLIB	?= ..\perl538s$(a)
+PERLDLL		= ..\perl538.dll
+PERLDLLBASE	= perl538.dll
 
 # don't let "gmake -n all" try to run "miniperl.exe make_ext.pl"
 PLMAKE		= gmake
@@ -933,6 +945,10 @@ NOOP		= @rem
 MICROCORE_SRC	=		\
 		..\toke.c	\
 		..\regcomp.c	\
+		..\regcomp_trie.c	\
+		..\regcomp_debug.c	\
+		..\regcomp_invlist.c	\
+		..\regcomp_study.c	\
 		..\regexec.c	\
 		..\op.c		\
 		..\sv.c		\
@@ -949,6 +965,7 @@ MICROCORE_SRC	=		\
 		..\av.c		\
 		..\builtin.c	\
 		..\caretx.c	\
+		..\class.c	\
 		..\deb.c	\
 		..\doio.c	\
 		..\doop.c	\
@@ -961,6 +978,7 @@ MICROCORE_SRC	=		\
 		..\mg.c		\
 		..\numeric.c	\
 		..\pad.c	\
+		..\peep.c	\
 		..\perly.c	\
 		..\pp_sort.c	\
 		..\reentr.c	\
@@ -1008,6 +1026,7 @@ CORE_NOCFG_H	=		\
 		..\pp.h		\
 		..\proto.h	\
 		..\regcomp.h	\
+		..\regcomp_internal.h	\
 		..\regexp.h	\
 		..\scope.h	\
 		..\sv.h		\
@@ -1110,7 +1129,8 @@ CFG_VARS	=					\
 		"LINK_FLAGS=$(subst ",\",$(LINK_FLAGS))"\
 		"optimize=$(subst ",\",$(OPTIMIZE))"	\
 		"ARCHPREFIX=$(ARCHPREFIX)"		\
-		"WIN64=$(WIN64)"
+		"WIN64=$(WIN64)"                        \
+		"SKIP_CCHOME_CHECK=$(SKIP_CCHOME_CHECK)"
 
 #
 # Top targets
@@ -1144,7 +1164,15 @@ ifeq ($(CCTYPE),)
 endif
 
 
-..\regcomp$(o) : ..\regnodes.h ..\regcharclass.h
+..\regcomp$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_debug$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_invlist$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_study$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_trie$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
 
 ..\regexec$(o) : ..\regnodes.h ..\regcharclass.h
 
@@ -1171,7 +1199,9 @@ endif
 ..\perl$(o) : ..\git_version.h
 
 ..\config.sh : $(CFGSH_TMPL) config_sh.PL FindExt.pm $(HAVEMINIPERL)
-	$(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh
+	$(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh.tmp
+	if exist ..\config.sh del /f ..\config.sh
+	rename ..\config.sh.tmp config.sh
 
 # This target is for when changes to the main config.sh happen.
 # Edit config.gc, then make perl using GCC in a minimal configuration (i.e.
@@ -1184,7 +1214,7 @@ regen_config_h:
 	-$(MINIPERL) -I..\lib config_h.PL "ARCHPREFIX=$(ARCHPREFIX)"
 	rename config.h $(CFGH_TMPL)
 
-$(CONFIGPM): ..\config.sh config_h.PL
+$(CONFIGPM): ..\config.sh config_h.PL ..\git_version.h
 	$(MINIPERL) -I..\lib ..\configpm --chdir=..
 	-$(MINIPERL) -I..\lib config_h.PL "ARCHPREFIX=$(ARCHPREFIX)"
 
@@ -1624,7 +1654,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
 	copy ..\README.tw       ..\pod\perltw.pod
 	copy ..\README.vos      ..\pod\perlvos.pod
 	copy ..\README.win32    ..\pod\perlwin32.pod
-	copy ..\pod\perldelta.pod ..\pod\perl5363delta.pod
+	copy ..\pod\perldelta.pod ..\pod\perl5382delta.pod
 	$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
 	$(MINIPERL) -I..\lib ..\autodoc.pl ..
 	$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1724,7 +1754,7 @@ distclean: realclean
 	-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
 	-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
 	-cd $(PODDIR) && del /f *.html *.bat roffitall \
-	    perl5363delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+	    perl5382delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
 	    perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \
 	    perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \
 	    perlintern.pod perlirix.pod perljp.pod perlko.pod perllinux.pod \
@@ -1808,11 +1838,11 @@ endif
 
 test : test-prep
 	set PERL_STATIC_EXT=$(STATIC_EXT) && \
-	    cd ..\t && perl.exe harness $(TEST_SWITCHES) $(TEST_FILES)
+	    cd ..\t && perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) $(TEST_FILES)
 
 test_porting : test-prep
 	set PERL_STATIC_EXT=$(STATIC_EXT) && \
-	    cd ..\t && perl.exe harness $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t
+	    cd ..\t && perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t
 
 test-reonly : reonly utils
 	$(XCOPY) $(PERLEXE) ..\t\$(NULL)
@@ -1826,14 +1856,14 @@ regen :
 test-notty : test-prep
 	set PERL_STATIC_EXT=$(STATIC_EXT) && \
 	    set PERL_SKIP_TTY_TEST=1 && \
-	    cd ..\t && perl.exe harness $(TEST_SWITCHES) $(TEST_FILES)
+	    cd ..\t && perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) $(TEST_FILES)
 
 _test :
 	$(XCOPY) $(PERLEXE) ..\t\$(NULL)
 	$(XCOPY) $(PERLDLL) ..\t\$(NULL)
 	$(XCOPY) $(GLOBEXE) ..\t\$(NULL)
 	set PERL_STATIC_EXT=$(STATIC_EXT) && \
-	    cd ..\t && perl.exe harness $(TEST_SWITCHES) $(TEST_FILES)
+	    cd ..\t && perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) $(TEST_FILES)
 
 _clean :
 	-@erase miniperlmain$(o)
@@ -1883,4 +1913,3 @@ nok: utils $(PERLEXE) $(PERLDLL) Extensi
 
 nokfile: utils $(PERLEXE) $(PERLDLL) Extensions_nonxs Extensions
 	$(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok
-
Index: gnu/usr.bin/perl/win32/Makefile
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/Makefile,v
diff -u -p -a -u -p -r1.48 Makefile
--- gnu/usr.bin/perl/win32/Makefile	23 Dec 2023 21:02:21 -0000	1.48
+++ gnu/usr.bin/perl/win32/Makefile	21 Feb 2024 15:47:03 -0000
@@ -4,7 +4,7 @@
 #	Microsoft Visual C++ 12.0 or later
 #
 # This is set up to build a perl.exe that runs off a shared library
-# (perl536.dll).  Also makes individual DLLs for the XS extensions.
+# (perl538.dll).  Also makes individual DLLs for the XS extensions.
 #
 
 ##
@@ -37,7 +37,7 @@ INST_TOP	= $(INST_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-#INST_VER	= \5.36.3
+#INST_VER	= \5.38.2
 
 #
 # Comment this out if you DON'T want your perl installation to have
@@ -120,6 +120,7 @@ DEFAULT_INC_EXCLUDES_DOT = define
 
 #
 # Uncomment this if you want to build everything in C++ mode
+# This requires at least MSVC 2019.
 #
 #USE_CPLUSPLUS	= define
 
@@ -171,7 +172,7 @@ DEFAULT_INC_EXCLUDES_DOT = define
 # set this to additionally provide a statically linked perl-static.exe.
 # Note that dynamic loading will not work with this perl, so you must
 # include required modules statically using the STATIC_EXT or ALL_STATIC
-# variables below. A static library perl536s.lib will also be created.
+# variables below. A static library perl538s.lib will also be created.
 # Ordinary perl.exe is not affected by this option.
 #
 #BUILD_STATIC	= define
@@ -432,6 +433,9 @@ INCLUDES	= -I$(COREDIR) -I.\include -I. 
 DEFINES		= -DWIN32 -D_CONSOLE -DNO_STRICT
 LOCDEFS		= -DPERLDLL -DPERL_CORE
 CXX_FLAG	= -TP -EHsc
+!IF "$(USE_CPLUSPLUS)" == "define"
+CXX_FLAG	= $(CXX_FLAG) -std:c++20
+!ENDIF
 EXTRACFLAGS	= -nologo -GF -W3
 
 !IF "$(CCTYPE)" == "MSVC120"
@@ -504,7 +508,7 @@ LIBBASEFILES	= $(LIBBASEFILES) msvcrt.li
 !ENDIF
 
 # Avoid __intel_new_proc_init link error for libircmt.
-# libmmd is /MD equivelent, other variants exist.
+# libmmd is /MD equivalent, other variants exist.
 # libmmd is Intel C's math addon funcs to MS CRT, contains long doubles, C99,
 # and optimized C89 funcs
 !IF "$(__ICC)" == "define"
@@ -579,9 +583,9 @@ $(o).dll:
 
 # makedef.pl must be updated if this changes, and this should normally
 # only change when there is an incompatible revision of the public API.
-PERLIMPLIB	= ..\perl536.lib
-PERLSTATICLIB	= ..\perl536s.lib
-PERLDLL		= ..\perl536.dll
+PERLIMPLIB	= ..\perl538.lib
+PERLSTATICLIB	= ..\perl538s.lib
+PERLDLL		= ..\perl538.dll
 
 MINIPERL	= ..\miniperl.exe
 MINIDIR		= .\mini
@@ -671,6 +675,7 @@ DEL		= del
 MICROCORE_SRC	=		\
 		..\av.c		\
 		..\caretx.c	\
+		..\class.c	\
 		..\builtin.c	\
 		..\deb.c	\
 		..\doio.c	\
@@ -688,6 +693,7 @@ MICROCORE_SRC	=		\
 		..\numeric.c	\
 		..\op.c		\
 		..\pad.c	\
+		..\peep.c	\
 		..\perl.c	\
 		..\perly.c	\
 		..\pp.c		\
@@ -698,6 +704,10 @@ MICROCORE_SRC	=		\
 		..\pp_sys.c	\
 		..\reentr.c	\
 		..\regcomp.c	\
+		..\regcomp_trie.c	\
+		..\regcomp_debug.c	\
+		..\regcomp_invlist.c	\
+		..\regcomp_study.c	\
 		..\regexec.c	\
 		..\run.c	\
 		..\scope.c	\
@@ -746,6 +756,7 @@ CORE_NOCFG_H	=		\
 		..\pp.h		\
 		..\proto.h	\
 		..\regcomp.h	\
+		..\regcomp_internal.h	\
 		..\regexp.h	\
 		..\scope.h	\
 		..\sv.h		\
@@ -833,7 +844,8 @@ CFG_VARS	=					\
 		"default_inc_excludes_dot=$(DEFAULT_INC_EXCLUDES_DOT)"	\
 		"LINK_FLAGS=$(LINK_FLAGS:"=\")"		\
 		"optimize=$(OPTIMIZE:"=\")"		\
-		"WIN64=$(WIN64)"
+		"WIN64=$(WIN64)"                        \
+		"SKIP_CCHOME_CHECK=$(SKIP_CCHOME_CHECK)"
 
 #
 # Top targets
@@ -846,7 +858,15 @@ all : ..\git_version.h $(GLOBEXE) $(CONF
 
 regnodes : ..\regnodes.h
 
-..\regcomp$(o) : ..\regnodes.h ..\regcharclass.h
+..\regcomp$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_debug$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_invlist$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_study$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
+
+..\regcomp_trie$(o) : ..\regcomp.h ..\regcomp_internal.h ..\regnodes.h ..\regcharclass.h
 
 ..\regexec$(o) : ..\regnodes.h ..\regcharclass.h
 
@@ -871,7 +891,9 @@ perlglob$(o)  : perlglob.c
 ..\perl$(o) : ..\git_version.h
 
 ..\config.sh : $(CFGSH_TMPL) config_sh.PL FindExt.pm $(MINIPERL)
-	$(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh
+	$(MINIPERL) -I..\lib config_sh.PL $(CFG_VARS) $(CFGSH_TMPL) > ..\config.sh.tmp
+	if exist ..\config.sh del /f ..\config.sh
+	rename ..\config.sh.tmp config.sh
 
 # This target is for when changes to the main config.sh happen.
 # Edit config.vc, then make perl in a minimal configuration (i.e. with MULTI,
@@ -1156,7 +1178,7 @@ utils: $(PERLEXE) ..\utils\Makefile
 	copy ..\README.tw       ..\pod\perltw.pod
 	copy ..\README.vos      ..\pod\perlvos.pod
 	copy ..\README.win32    ..\pod\perlwin32.pod
-	copy ..\pod\perldelta.pod ..\pod\perl5363delta.pod
+	copy ..\pod\perldelta.pod ..\pod\perl5382delta.pod
 	cd ..\win32
 	$(PERLEXE) $(PL2BAT) $(UTILS)
 	$(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1257,7 +1279,7 @@ distclean: realclean
 	-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
 	-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
 	-cd $(PODDIR) && del /f *.html *.bat roffitall \
-	    perl5363delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+	    perl5382delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
 	    perlapi.pod perlbs2000.pod perlcn.pod perlcygwin.pod \
 	    perlfreebsd.pod perlhaiku.pod perlhpux.pod perlhurd.pod \
 	    perlintern.pod perlirix.pod perljp.pod perlko.pod perllinux.pod \
@@ -1322,12 +1344,12 @@ test-prep : all utils ../pod/perltoc.pod
 
 test : test-prep
 	cd ..\t
-	perl.exe harness $(TEST_SWITCHES) $(TEST_FILES)
+	perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) $(TEST_FILES)
 	cd ..\win32
 
 test_porting : test-prep
 	cd ..\t
-	perl.exe harness $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t
+	perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t
 	cd ..\win32
 
 test-reonly : reonly utils
@@ -1346,7 +1368,7 @@ regen :
 test-notty : test-prep
 	set PERL_SKIP_TTY_TEST=1
 	cd ..\t
-	perl.exe harness $(TEST_SWITCHES) $(TEST_FILES)
+	perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) $(TEST_FILES)
 	cd ..\win32
 
 _test : 
@@ -1354,7 +1376,7 @@ _test : 
        $(XCOPY) $(PERLDLL) ..\t\$(NULL)
        $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
        cd ..\t
-       perl.exe harness $(TEST_SWITCHES) $(TEST_FILES)
+       perl.exe harness $(TEST_ARGS) $(TEST_SWITCHES) $(TEST_FILES)
        cd ..\win32
 
 _clean :
Index: gnu/usr.bin/perl/win32/config.gc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/config.gc,v
diff -u -p -a -u -p -r1.9 config.gc
--- gnu/usr.bin/perl/win32/config.gc	15 Feb 2023 01:36:37 -0000	1.9
+++ gnu/usr.bin/perl/win32/config.gc	21 Feb 2024 15:47:03 -0000
@@ -111,6 +111,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='define'
@@ -307,8 +308,8 @@ d_ilogbl='define'
 d_inc_version_list='undef'
 d_index='undef'
 d_inetaton='undef'
-d_inetntop='undef'
-d_inetpton='undef'
+d_inetntop='define'
+d_inetpton='define'
 d_int64_t='undef'
 d_ip_mreq='undef'
 d_ip_mreq_source='undef'
@@ -478,6 +479,7 @@ d_semget='undef'
 d_semop='undef'
 d_sendmsg='undef'
 d_setegid='undef'
+d_setenv='undef'
 d_seteuid='undef'
 d_setgrent='undef'
 d_setgrent_r='undef'
@@ -728,6 +730,7 @@ html3dir=' '
 html3direxp=''
 i16size='2'
 i16type='short'
+i32dformat='"ld"'
 i32size='4'
 i32type='long'
 i64size='8'
@@ -798,6 +801,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='undef'
 i_sysstatvfs='undef'
+i_syssyscall='undef'
 i_systime='undef'
 i_systimek='undef'
 i_systimes='undef'
@@ -1112,8 +1116,12 @@ troff=''
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
 u32size='4'
 u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
 u64size='8'
 u64type='unsigned long long'
 u8size='1'
Index: gnu/usr.bin/perl/win32/config.vc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/config.vc,v
diff -u -p -a -u -p -r1.23 config.vc
--- gnu/usr.bin/perl/win32/config.vc	15 Feb 2023 01:36:37 -0000	1.23
+++ gnu/usr.bin/perl/win32/config.vc	21 Feb 2024 15:47:03 -0000
@@ -111,6 +111,7 @@ d_attribute_nonnull='undef'
 d_attribute_noreturn='undef'
 d_attribute_pure='undef'
 d_attribute_unused='undef'
+d_attribute_visibility='undef'
 d_attribute_warn_unused_result='undef'
 d_backtrace='undef'
 d_bsd='define'
@@ -478,6 +479,7 @@ d_semget='undef'
 d_semop='undef'
 d_sendmsg='undef'
 d_setegid='undef'
+d_setenv='undef'
 d_seteuid='undef'
 d_setgrent='undef'
 d_setgrent_r='undef'
@@ -727,6 +729,7 @@ html3dir=' '
 html3direxp=''
 i16size='2'
 i16type='short'
+i32dformat='"ld"'
 i32size='4'
 i32type='long'
 i64size='8'
@@ -797,6 +800,7 @@ i_syssockio='undef'
 i_sysstat='define'
 i_sysstatfs='undef'
 i_sysstatvfs='undef'
+i_syssyscall='undef'
 i_systime='undef'
 i_systimek='undef'
 i_systimes='undef'
@@ -1111,8 +1115,12 @@ troff=''
 ttyname_r_proto='0'
 u16size='2'
 u16type='unsigned short'
+u32XUformat='"lX"'
+u32oformat='"lo"'
 u32size='4'
 u32type='unsigned long'
+u32uformat='"lu"'
+u32xformat='"lx"'
 u64size='8'
 u64type='unsigned __int64'
 u8size='1'
Index: gnu/usr.bin/perl/win32/config_H.gc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/config_H.gc,v
diff -u -p -a -u -p -r1.22 config_H.gc
--- gnu/usr.bin/perl/win32/config_H.gc	15 Feb 2023 01:36:37 -0000	1.22
+++ gnu/usr.bin/perl/win32/config_H.gc	21 Feb 2024 15:47:03 -0000
@@ -50,7 +50,7 @@
  *	This symbol, if defined, indicates that the chsize routine is available
  *	to truncate files.  You might need a -lx to get this routine.
  */
-#define	HAS_CHSIZE		/**/
+#define HAS_CHSIZE              /**/
 
 /* HAS_CRYPT:
  *	This symbol, if defined, indicates that the crypt routine is available
@@ -228,7 +228,7 @@
  *	This symbol, if defined, indicates that the mbstowcs routine is
  *	available to convert a multibyte string into a wide character string.
  */
-#define	HAS_MBSTOWCS		/**/
+#define HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *	This symbol, if defined, indicates that the mbtowc routine is available
@@ -596,7 +596,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-#define	I_ARPA_INET		/**/
+#define I_ARPA_INET             /**/
 
 /* I_DBM:
  *	This symbol, if defined, indicates that <dbm.h> exists and should
@@ -630,7 +630,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <locale.h>.
  */
-#define	I_LOCALE		/**/
+#define I_LOCALE                /**/
 
 /* I_NETINET_IN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -658,7 +658,7 @@
  *	This symbol, if defined, indicates the <sys/sockio.h> should be included
  *	to get socket ioctl options, like SIOCATMARK.
  */
-/*#define	I_SYS_IOCTL		/ **/
+/*#define I_SYS_IOCTL           / **/
 /*#define I_SYS_SOCKIO	/ **/
 
 /* I_SYS_NDIR:
@@ -696,19 +696,19 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/stat.h>.
  */
-#define	I_SYS_STAT		/**/
+#define I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/times.h>.
  */
-/*#define	I_SYS_TIMES		/ **/
+/*#define I_SYS_TIMES           / **/
 
 /* I_SYS_TYPES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/types.h>.
  */
-#define	I_SYS_TYPES		/**/
+#define I_SYS_TYPES             /**/
 
 /* I_SYS_UN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -862,7 +862,7 @@
  *	This symbol is defined if the C compiler can cast negative
  *	or large floating point numbers to 32-bit ints.
  */
-#define	CASTI32		/**/
+#define CASTI32         /**/
 
 /* CASTNEGFLOAT:
  *	This symbol is defined if the C compiler can cast negative
@@ -876,7 +876,7 @@
  *		2 = couldn't cast >= 0x80000000
  *		4 = couldn't cast in argument expression list
  */
-#define	CASTNEGFLOAT		/**/
+#define CASTNEGFLOAT            /**/
 #define CASTFLAGS 0		/**/
 
 /* VOID_CLOSEDIR:
@@ -978,13 +978,13 @@
  *	This symbol, if defined, indicates that siginfo_t has the
  *	si_value member
  */
-/*#define	HAS_SIGINFO_SI_ERRNO	/ **/
-/*#define	HAS_SIGINFO_SI_PID	/ **/
-/*#define	HAS_SIGINFO_SI_UID	/ **/
-/*#define	HAS_SIGINFO_SI_ADDR	/ **/
-/*#define	HAS_SIGINFO_SI_STATUS	/ **/
-/*#define	HAS_SIGINFO_SI_BAND	/ **/
-/*#define	HAS_SIGINFO_SI_VALUE	/ **/
+/*#define HAS_SIGINFO_SI_ERRNO  / **/
+/*#define HAS_SIGINFO_SI_PID    / **/
+/*#define HAS_SIGINFO_SI_UID    / **/
+/*#define HAS_SIGINFO_SI_ADDR   / **/
+/*#define HAS_SIGINFO_SI_STATUS / **/
+/*#define HAS_SIGINFO_SI_BAND   / **/
+/*#define HAS_SIGINFO_SI_VALUE  / **/
 
 /* HAS_SIGSETJMP:
  *	This variable indicates to the C program that the sigsetjmp()
@@ -1226,7 +1226,7 @@
  *	This symbol, if defined, indicates that this system uses
  *	EBCDIC encoding.
  */
-/*#define	EBCDIC		/ **/
+/*#define EBCDIC                / **/
 
 /* ARCHLIB:
  *	This variable, if defined, holds the name of the directory in
@@ -1568,7 +1568,7 @@
  *	This symbol, if defined, indicates that the system supports filenames
  *	longer than 14 characters.
  */
-#define	FLEXFILENAMES		/**/
+#define FLEXFILENAMES           /**/
 
 /* HAS_GETGRENT:
  *	This symbol, if defined, indicates that the getgrent routine is
@@ -1947,16 +1947,16 @@
  *	This symbol, if defined, indicates the availability of
  *	struct ipv6_mreq_source;
  */
-#define	HAS_SOCKET		/**/
-/*#define	HAS_SOCKETPAIR	/ **/
-/*#define	HAS_SOCKADDR_SA_LEN	/ **/
-/*#define	HAS_SOCKADDR_IN6	/ **/
-#define	HAS_SOCKADDR_STORAGE	/**/
-#define	HAS_SIN6_SCOPE_ID	/**/
-/*#define	HAS_IP_MREQ	/ **/
-/*#define	HAS_IP_MREQ_SOURCE	/ **/
-/*#define	HAS_IPV6_MREQ	/ **/
-/*#define	HAS_IPV6_MREQ_SOURCE	/ **/
+#define HAS_SOCKET              /**/
+/*#define HAS_SOCKETPAIR        / **/
+/*#define HAS_SOCKADDR_SA_LEN   / **/
+/*#define HAS_SOCKADDR_IN6      / **/
+#define HAS_SOCKADDR_STORAGE    /**/
+#define HAS_SIN6_SCOPE_ID       /**/
+/*#define HAS_IP_MREQ   / **/
+/*#define HAS_IP_MREQ_SOURCE    / **/
+/*#define HAS_IPV6_MREQ / **/
+/*#define HAS_IPV6_MREQ_SOURCE  / **/
 
 /* USE_STAT_BLOCKS:
  *	This symbol is defined if this system has a stat structure declaring
@@ -2158,7 +2158,7 @@
  *	This symbol, if defined, indicates that <sys/uio.h> exists and
  *	should be included.
  */
-/*#define	I_SYSUIO		/ **/
+/*#define I_SYSUIO              / **/
 
 /* I_TERMIO:
  *	This symbol, if defined, indicates that the program should include
@@ -2257,8 +2257,8 @@
  *	Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define	USE_CROSS_COMPILE	/ **/
-#define	PERL_TARGETARCH	""	/**/
+/*#define USE_CROSS_COMPILE     / **/
+#define PERL_TARGETARCH ""      /**/
 #endif
 
 /* PERL_USE_DEVEL:
@@ -2266,7 +2266,7 @@
  *	-Dusedevel, to enable development features.  This should not be
  *	done for production builds.
  */
-/*#define	PERL_USE_DEVEL		/ **/
+/*#define PERL_USE_DEVEL                / **/
 
 /* HAS_ATOLF:
  *	This symbol, if defined, indicates that the atolf routine is
@@ -2352,7 +2352,7 @@
 /* HAS_C99_VARIADIC_MACROS:
  *	If defined, the compiler supports C99 variadic macros.
  */
-/*#define	HAS_C99_VARIADIC_MACROS	/ **/
+/*#define HAS_C99_VARIADIC_MACROS       / **/
 
 /* HAS_CLASS:
  *	This symbol, if defined, indicates that the class routine is
@@ -2408,10 +2408,10 @@
  *	to the program to supply one.  A good guess is
  *		extern int dbminit(char *);
  */
-/*#define	HAS_DBMINIT_PROTO	/ **/
+/*#define HAS_DBMINIT_PROTO     / **/
 
 /* HAS_DIR_DD_FD:
- *	This symbol, if defined, indicates that the the DIR* dirstream
+ *	This symbol, if defined, indicates that the DIR* dirstream
  *	structure contains a member variable named dd_fd.
  */
 /*#define HAS_DIR_DD_FD		/ **/
@@ -2428,7 +2428,7 @@
  *	makes sense if you *have* dlsym, which we will presume is the
  *	case if you're using dl_dlopen.xs.
  */
-/*#define	DLSYM_NEEDS_UNDERSCORE	/ **/
+/*#define DLSYM_NEEDS_UNDERSCORE        / **/
 
 /* HAS_DUP3:
  *	This symbol, if defined, indicates that the dup3 routine is
@@ -2531,7 +2531,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int flock(int, int);
  */
-#define	HAS_FLOCK_PROTO	/**/
+#define HAS_FLOCK_PROTO /**/
 
 /* HAS_FMA:
  *	This symbol, if defined, indicates that the fma routine is
@@ -2617,8 +2617,8 @@
  *	  FP_NAN        NaN
  *
  */
-/*#define	HAS_FPCLASSIFY		/ **/
-/*#define	HAS_FP_CLASSIFY		/ **/
+/*#define HAS_FPCLASSIFY                / **/
+/*#define HAS_FP_CLASSIFY               / **/
 
 /* HAS_FPCLASSL:
  *	This symbol, if defined, indicates that the fpclassl routine is
@@ -2647,7 +2647,7 @@
 /* HAS_FPOS64_T:
  *	This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define	HAS_FPOS64_T	/ **/
+/*#define HAS_FPOS64_T  / **/
 
 /* HAS_FREXPL:
  *	This symbol, if defined, indicates that the frexpl routine is
@@ -2677,11 +2677,11 @@
 /* HAS_UNLINKAT:
  *	This symbol is defined if the unlinkat() routine is available.
  */
-/*#define	HAS_FCHMODAT	/ **/
-/*#define	HAS_LINKAT	/ **/
-/*#define	HAS_OPENAT	/ **/
-/*#define	HAS_RENAMEAT	/ **/
-/*#define	HAS_UNLINKAT	/ **/
+/*#define HAS_FCHMODAT  / **/
+/*#define HAS_LINKAT    / **/
+/*#define HAS_OPENAT    / **/
+/*#define HAS_RENAMEAT  / **/
+/*#define HAS_UNLINKAT  / **/
 
 /* HAS_FSEEKO:
  *	This symbol, if defined, indicates that the fseeko routine is
@@ -2809,13 +2809,13 @@
  *	This symbol, if defined, indicates that the inet_ntop() function
  *	is available to parse IPv4 and IPv6 strings.
  */
-/*#define HAS_INETNTOP		/ **/
+#define HAS_INETNTOP		/**/
 
 /* HAS_INETPTON:
  *	This symbol, if defined, indicates that the inet_pton() function
  *	is available to parse IPv4 and IPv6 strings.
  */
-/*#define HAS_INETPTON		/ **/
+#define HAS_INETPTON		/**/
 
 /* HAS_INT64_T:
  *	This symbol will defined if the C compiler supports int64_t.
@@ -2889,8 +2889,8 @@
  *	j0l() function is available for Bessel functions of the first
  *	kind of the order zero, for long doubles.
  */
-#define	HAS_J0		/**/
-/*#define	HAS_J0L		/ **/
+#define HAS_J0          /**/
+/*#define HAS_J0L               / **/
 
 /* HAS_LC_MONETARY_2008:
  *	This symbol, if defined, indicates that the localeconv routine is
@@ -3126,13 +3126,13 @@
  *	This symbol, if defined, indicates that the C program should
  *	include <xlocale.h> to get newlocale() and its friends.
  */
-/*#define	HAS_NEWLOCALE	/ **/
-/*#define	HAS_FREELOCALE	/ **/
-/*#define	HAS_USELOCALE	/ **/
-/*#define	HAS_DUPLOCALE	/ **/
-/*#define	HAS_QUERYLOCALE	/ **/
-/*#define	NEED_XLOCALE_H	/ **/
-/*#define	I_XLOCALE               / **/
+/*#define HAS_NEWLOCALE / **/
+/*#define HAS_FREELOCALE        / **/
+/*#define HAS_USELOCALE / **/
+/*#define HAS_DUPLOCALE / **/
+/*#define HAS_QUERYLOCALE       / **/
+/*#define NEED_XLOCALE_H        / **/
+/*#define I_XLOCALE               / **/
 
 /* HAS_NEXTAFTER:
  *	This symbol, if defined, indicates that the nextafter routine is
@@ -3158,7 +3158,7 @@
 /* HAS_OFF64_T:
  *	This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define	HAS_OFF64_T		/ **/
+/*#define HAS_OFF64_T           / **/
 
 /* HAS_PIPE2:
  *	This symbol, if defined, indicates that the pipe2 routine is
@@ -3203,7 +3203,7 @@
 /* HAS_PTRDIFF_T:
  *	This symbol will be defined if the C compiler supports ptrdiff_t.
  */
-#define	HAS_PTRDIFF_T		/**/
+#define HAS_PTRDIFF_T           /**/
 
 /* HAS_READV:
  *	This symbol, if defined, indicates that the readv routine is
@@ -3250,7 +3250,7 @@
  *		extern void* sbrk(int);
  *		extern void* sbrk(size_t);
  */
-/*#define	HAS_SBRK_PROTO	/ **/
+/*#define HAS_SBRK_PROTO        / **/
 
 /* HAS_SCALBN:
  *	This symbol, if defined, indicates that the scalbn routine is
@@ -3316,7 +3316,7 @@
  *	be used.
  */
 #ifndef USE_SITECUSTOMIZE
-/*#define	USE_SITECUSTOMIZE		/ **/
+/*#define USE_SITECUSTOMIZE             / **/
 #endif
 
 /* HAS_SNPRINTF:
@@ -3342,7 +3342,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int sockatmark(int);
  */
-/*#define	HAS_SOCKATMARK_PROTO	/ **/
+/*#define HAS_SOCKATMARK_PROTO  / **/
 
 /* HAS_SOCKS5_INIT:
  *	This symbol, if defined, indicates that the socks5_init routine is
@@ -3362,7 +3362,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESGID_PROTO	/ **/
+/*#define HAS_SETRESGID_PROTO   / **/
 
 /* HAS_SETRESUID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3370,7 +3370,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESUID_PROTO	/ **/
+/*#define HAS_SETRESUID_PROTO   / **/
 
 /* HAS_STRUCT_STATFS_F_FLAGS:
  *	This symbol, if defined, indicates that the struct statfs
@@ -3469,7 +3469,7 @@
  *		extern int syscall(int,  ...);
  *		extern int syscall(long, ...);
  */
-/*#define	HAS_SYSCALL_PROTO	/ **/
+/*#define HAS_SYSCALL_PROTO     / **/
 
 /* HAS_TELLDIR_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3477,7 +3477,7 @@
  *	to the program to supply one.  A good guess is
  *		extern long telldir(DIR*);
  */
-#define	HAS_TELLDIR_PROTO	/**/
+#define HAS_TELLDIR_PROTO       /**/
 
 /* HAS_TGAMMA:
  *	This symbol, if defined, indicates that the tgamma routine is
@@ -3509,12 +3509,12 @@
  *	This symbol, if defined, indicates that the asctime64 () routine is
  *	available to do the 64bit variant of asctime ()
  */
-/*#define	HAS_CTIME64		/ **/
-/*#define	HAS_LOCALTIME64		/ **/
-/*#define	HAS_GMTIME64		/ **/
-/*#define	HAS_MKTIME64		/ **/
-/*#define	HAS_DIFFTIME64		/ **/
-/*#define	HAS_ASCTIME64		/ **/
+/*#define HAS_CTIME64           / **/
+/*#define HAS_LOCALTIME64               / **/
+/*#define HAS_GMTIME64          / **/
+/*#define HAS_MKTIME64          / **/
+/*#define HAS_DIFFTIME64                / **/
+/*#define HAS_ASCTIME64         / **/
 
 /* HAS_TIMEGM:
  *	This symbol, if defined, indicates that the timegm routine is
@@ -3579,7 +3579,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int usleep(useconds_t);
  */
-/*#define	HAS_USLEEP_PROTO	/ **/
+/*#define HAS_USLEEP_PROTO      / **/
 
 /* HAS_USTAT:
  *	This symbol, if defined, indicates that the ustat system call is
@@ -3595,7 +3595,7 @@
 
 /* HAS_WCSXFRM:
  *	This symbol, if defined, indicates that the wcsxfrm routine is
- *	available to tranform a wide character string for wcscmp().
+ *	available to transform a wide character string for wcscmp().
  */
 #define HAS_WCSXFRM	/**/
 
@@ -3630,20 +3630,20 @@
  *	Note that if fflushNULL is defined, fflushall will not
  *	even be probed for and will be left undefined.
  */
-#define	FFLUSH_NULL		/**/
-/*#define	FFLUSH_ALL		/ **/
+#define FFLUSH_NULL             /**/
+/*#define FFLUSH_ALL            / **/
 
 /* I_BFD:
  *	This symbol, if defined, indicates that <bfd.h> exists and
  *	can be included.
  */
-/*#define	I_BFD		/ **/
+/*#define I_BFD         / **/
 
 /* I_CRYPT:
  *	This symbol, if defined, indicates that <crypt.h> exists and
  *	should be included.
  */
-/*#define	I_CRYPT		/ **/
+/*#define I_CRYPT               / **/
 
 /* DB_Prefix_t:
  *	This symbol contains the type of the prefix structure element
@@ -3685,19 +3685,19 @@
  *	This symbol, if defined, indicates that <fp.h> exists and
  *	should be included.
  */
-/*#define	I_FP		/ **/
+/*#define I_FP          / **/
 
 /* I_FP_CLASS:
  *	This symbol, if defined, indicates that <fp_class.h> exists and
  *	should be included.
  */
-/*#define	I_FP_CLASS		/ **/
+/*#define I_FP_CLASS            / **/
 
 /* I_IEEEFP:
  *	This symbol, if defined, indicates that <ieeefp.h> exists and
  *	should be included.
  */
-/*#define	I_IEEEFP		/ **/
+/*#define I_IEEEFP              / **/
 
 /* I_INTTYPES:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3709,13 +3709,13 @@
  *	This symbol, if defined, indicates that <langinfo.h> exists and
  *	should be included.
  */
-/*#define	I_LANGINFO		/ **/
+/*#define I_LANGINFO            / **/
 
 /* I_LIBUTIL:
  *	This symbol, if defined, indicates that <libutil.h> exists and
  *	should be included.
  */
-/*#define	I_LIBUTIL		/ **/
+/*#define I_LIBUTIL             / **/
 
 /* I_MALLOCMALLOC:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3727,7 +3727,7 @@
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.
  */
-/*#define	I_MNTENT		/ **/
+/*#define I_MNTENT              / **/
 
 /* I_NETINET_TCP:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3739,37 +3739,37 @@
  *	This symbol, if defined, indicates that <poll.h> exists and
  *	should be included. (see also HAS_POLL)
  */
-/*#define	I_POLL		/ **/
+/*#define I_POLL                / **/
 
 /* I_PROT:
  *	This symbol, if defined, indicates that <prot.h> exists and
  *	should be included.
  */
-/*#define	I_PROT		/ **/
+/*#define I_PROT                / **/
 
 /* I_QUADMATH:
  *	This symbol, if defined, indicates that <quadmath.h> exists and
  *	should be included.
  */
-/*#define	I_QUADMATH		/ **/
+/*#define I_QUADMATH            / **/
 
 /* I_SHADOW:
  *	This symbol, if defined, indicates that <shadow.h> exists and
  *	should be included.
  */
-/*#define	I_SHADOW		/ **/
+/*#define I_SHADOW              / **/
 
 /* I_SOCKS:
  *	This symbol, if defined, indicates that <socks.h> exists and
  *	should be included.
  */
-/*#define	I_SOCKS		/ **/
+/*#define I_SOCKS               / **/
 
 /* I_STDBOOL:
  *	This symbol, if defined, indicates that <stdbool.h> exists and
  *	can be included.
  */
-#define	I_STDBOOL		/**/
+#define I_STDBOOL               /**/
 
 /* I_STDINT:
  *	This symbol, if defined, indicates that <stdint.h> exists and
@@ -3781,54 +3781,54 @@
  *	This symbol, if defined, indicates that <sunmath.h> exists and
  *	should be included.
  */
-/*#define	I_SUNMATH		/ **/
+/*#define I_SUNMATH             / **/
 
 /* I_SYSLOG:
  *	This symbol, if defined, indicates that <syslog.h> exists and
  *	should be included.
  */
-/*#define	I_SYSLOG		/ **/
+/*#define I_SYSLOG              / **/
 
 /* I_SYSMODE:
  *	This symbol, if defined, indicates that <sys/mode.h> exists and
  *	should be included.
  */
-/*#define	I_SYSMODE		/ **/
+/*#define I_SYSMODE             / **/
 
 /* I_SYS_MOUNT:
  *	This symbol, if defined, indicates that <sys/mount.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_MOUNT		/ **/
+/*#define I_SYS_MOUNT           / **/
 
 /* I_SYS_STATFS:
  *	This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-/*#define	I_SYS_STATFS		/ **/
+/*#define I_SYS_STATFS          / **/
 
 /* I_SYS_STATVFS:
  *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_STATVFS		/ **/
+/*#define I_SYS_STATVFS         / **/
 
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
  */
-/*#define	I_SYSUTSNAME		/ **/
+/*#define I_SYSUTSNAME          / **/
 
 /* I_SYS_VFS:
  *	This symbol, if defined, indicates that <sys/vfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_VFS		/ **/
+/*#define I_SYS_VFS             / **/
 
 /* I_USTAT:
  *	This symbol, if defined, indicates that <ustat.h> exists and
  *	should be included.
  */
-/*#define	I_USTAT		/ **/
+/*#define I_USTAT               / **/
 
 /* I_WCHAR:
  *	This symbol, if defined, indicates to the C program that <wchar.h>
@@ -3839,7 +3839,7 @@
 /* I_WCTYPE:
  *	This symbol, if defined, indicates that <wctype.h> exists.
  */
-/*#define	I_WCTYPE		/ **/
+/*#define I_WCTYPE              / **/
 
 /* DOUBLEINFBYTES:
  *	This symbol, if defined, is a comma-separated list of
@@ -3990,7 +3990,7 @@
  *	of copying mechanisms, handy.h defines a platform-
  *	independent macro, Perl_va_copy(src, dst), to do the job.
  */
-/*#define	NEED_VA_COPY		/ **/
+/*#define NEED_VA_COPY          / **/
 
 /* IVTYPE:
  *	This symbol defines the C type used for Perl's IV.
@@ -4081,36 +4081,36 @@
  *	This symbol, if defined, indicates that a variable of type NVTYPE
  *	stores 0.0 in memory as all bits zero.
  */
-#define	IVTYPE		long long		/**/
-#define	UVTYPE		unsigned long long		/**/
-#define	I8TYPE		char		/**/
-#define	U8TYPE		unsigned char		/**/
-#define	I16TYPE		short	/**/
-#define	U16TYPE		unsigned short	/**/
-#define	I32TYPE		long	/**/
-#define	U32TYPE		unsigned long	/**/
+#define IVTYPE          long long               /**/
+#define UVTYPE          unsigned long long              /**/
+#define I8TYPE          char            /**/
+#define U8TYPE          unsigned char           /**/
+#define I16TYPE         short   /**/
+#define U16TYPE         unsigned short  /**/
+#define I32TYPE         long    /**/
+#define U32TYPE         unsigned long   /**/
 #ifdef HAS_QUAD
-#define	I64TYPE		long long	/**/
-#define	U64TYPE		unsigned long long	/**/
+#define I64TYPE         long long       /**/
+#define U64TYPE         unsigned long long      /**/
 #endif
-#define	NVTYPE		double		/**/
-#define	IVSIZE		8		/**/
-#define	UVSIZE		8		/**/
-#define	I8SIZE		1		/**/
-#define	U8SIZE		1		/**/
-#define	I16SIZE		2	/**/
-#define	U16SIZE		2	/**/
-#define	I32SIZE		4	/**/
-#define	U32SIZE		4	/**/
+#define NVTYPE          double          /**/
+#define IVSIZE          8               /**/
+#define UVSIZE          8               /**/
+#define I8SIZE          1               /**/
+#define U8SIZE          1               /**/
+#define I16SIZE         2       /**/
+#define U16SIZE         2       /**/
+#define I32SIZE         4       /**/
+#define U32SIZE         4       /**/
 #ifdef HAS_QUAD
-#define	I64SIZE		8	/**/
-#define	U64SIZE		8	/**/
+#define I64SIZE         8       /**/
+#define U64SIZE         8       /**/
 #endif
-#define	NVSIZE		8		/**/
+#define NVSIZE          8               /**/
 #undef	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	53
-#define	NV_OVERFLOWS_INTEGERS_AT	(256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
-#define	NV_ZERO_IS_ALLBITS_ZERO
+#define NV_PRESERVES_UV_BITS    53
+#define NV_OVERFLOWS_INTEGERS_AT        (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
+#define NV_ZERO_IS_ALLBITS_ZERO
 #if UVSIZE == 8
 #   ifdef BYTEORDER
 #       if BYTEORDER == 0x1234
@@ -4157,14 +4157,39 @@
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		"I64d"		/**/
-#define	UVuf		"I64u"		/**/
-#define	UVof		"I64o"		/**/
-#define	UVxf		"I64x"		/**/
-#define	UVXf		"I64X"		/**/
-#define	NVef		"e"		/**/
-#define	NVff		"f"		/**/
-#define	NVgf		"g"		/**/
+/* I32df:
+ *	This symbol defines the format string used for printing a Perl I32
+ *	as a signed decimal integer.
+ */
+/* U32uf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned decimal integer.
+ */
+/* U32of:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned octal integer.
+ */
+/* U32xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define IVdf            "I64d"          /**/
+#define UVuf            "I64u"          /**/
+#define UVof            "I64o"          /**/
+#define UVxf            "I64x"          /**/
+#define UVXf            "I64X"          /**/
+#define NVef            "e"             /**/
+#define NVff            "f"             /**/
+#define NVgf            "g"             /**/
+#define I32df           "ld"            /**/
+#define U32uf           "lu"            /**/
+#define U32of           "lo"            /**/
+#define U32xf           "lx"            /**/
+#define U32Xf           "lX"            /**/
 
 /* SELECT_MIN_BITS:
  *	This symbol holds the minimum number of bits operated by select.
@@ -4209,7 +4234,7 @@
  *	This symbol tells the name of the array holding the stdio streams.
  *	Usual values include _iob, __iob, and __sF.
  */
-/*#define	HAS_STDIO_STREAM_ARRAY	/ **/
+/*#define HAS_STDIO_STREAM_ARRAY        / **/
 #ifdef HAS_STDIO_STREAM_ARRAY
 #define STDIO_STREAM_ARRAY	
 #endif
@@ -4254,10 +4279,10 @@
  *	you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-#define	USE_64_BIT_INT		/**/
+#define USE_64_BIT_INT          /**/
 #endif
 #ifndef USE_64_BIT_ALL
-/*#define	USE_64_BIT_ALL		/ **/
+/*#define USE_64_BIT_ALL                / **/
 #endif
 
 /* USE_C_BACKTRACE:
@@ -4284,7 +4309,7 @@
  *	Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define	USE_FAST_STDIO		/ **/
+/*#define USE_FAST_STDIO                / **/
 #endif
 
 /* USE_KERN_PROC_PATHNAME:
@@ -4299,7 +4324,7 @@
  *	should be used when available.
  */
 #ifndef USE_LARGE_FILES
-#define	USE_LARGE_FILES		/**/
+#define USE_LARGE_FILES         /**/
 #endif
 
 /* USE_LONG_DOUBLE:
@@ -4307,7 +4332,7 @@
  *	be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define	USE_LONG_DOUBLE		/ **/
+/*#define USE_LONG_DOUBLE               / **/
 #endif
 
 /* USE_MORE_BITS:
@@ -4315,7 +4340,7 @@
  *	long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define	USE_MORE_BITS		/ **/
+/*#define USE_MORE_BITS         / **/
 #endif
 
 /* MULTIPLICITY:
@@ -4323,7 +4348,7 @@
  *	be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define	MULTIPLICITY		/ **/
+/*#define MULTIPLICITY          / **/
 #endif
 
 /* USE_NSGETEXECUTABLEPATH:
@@ -4339,7 +4364,7 @@
  *	used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-#define	USE_PERLIO		/**/
+#define USE_PERLIO              /**/
 #endif
 
 /* USE_QUADMATH:
@@ -4347,7 +4372,7 @@
  *	be used when available.
  */
 #ifndef USE_QUADMATH
-/*#define	USE_QUADMATH		/ **/
+/*#define USE_QUADMATH          / **/
 #endif
 
 /* USE_SOCKS:
@@ -4355,7 +4380,7 @@
  *	be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define	USE_SOCKS		/ **/
+/*#define USE_SOCKS             / **/
 #endif
 
 /* HAS_DRAND48_PROTO:
@@ -4364,7 +4389,7 @@
  *	to the program to supply one.  A good guess is
  *		extern double drand48(void);
  */
-/*#define	HAS_DRAND48_PROTO	/ **/
+/*#define HAS_DRAND48_PROTO     / **/
 
 /* HAS_GETHOST_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4372,7 +4397,7 @@
  *	gethostbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETHOST_PROTOS	/**/
+#define HAS_GETHOST_PROTOS      /**/
 
 /* HAS_GETNET_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4380,7 +4405,7 @@
  *	getnetbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETNET_PROTOS	/ **/
+/*#define HAS_GETNET_PROTOS     / **/
 
 /* HAS_GETPROTO_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4388,7 +4413,7 @@
  *	getprotobyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETPROTO_PROTOS	/**/
+#define HAS_GETPROTO_PROTOS     /**/
 
 /* HAS_GETSERV_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4396,7 +4421,7 @@
  *	getservbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETSERV_PROTOS	/**/
+#define HAS_GETSERV_PROTOS      /**/
 
 /* HAS_LSEEK_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -4404,7 +4429,7 @@
  *	to the program to supply one.  A good guess is
  *		extern off_t lseek(int, off_t, int);
  */
-#define	HAS_LSEEK_PROTO	/**/
+#define HAS_LSEEK_PROTO /**/
 
 /* Netdb_host_t:
  *	This symbol holds the type used for the 1st argument
@@ -5215,10 +5240,10 @@
  *	try to use the various _r versions of library functions.
  *	This is extremely experimental.
  */
-/*#define	USE_ITHREADS		/ **/
-/*#define		USE_THREADS		/ **/
-/*#define	OLD_PTHREADS_API		/ **/
-/*#define	USE_REENTRANT_API	/ **/
+/*#define USE_ITHREADS          / **/
+/*#define       USE_THREADS             / **/
+/*#define OLD_PTHREADS_API              / **/
+/*#define USE_REENTRANT_API     / **/
 
 /* HAS_TIME:
  *	This symbol, if defined, indicates that the time() routine exists.
@@ -5248,7 +5273,7 @@
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		"ld"		/**/
+#define Gid_t_f         "ld"            /**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedness of a Gid_t.
@@ -5316,7 +5341,7 @@
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		"ld"		/**/
+#define Uid_t_f         "ld"            /**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedness of a Uid_t.
Index: gnu/usr.bin/perl/win32/config_H.vc
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/config_H.vc,v
diff -u -p -a -u -p -r1.21 config_H.vc
--- gnu/usr.bin/perl/win32/config_H.vc	15 Feb 2023 01:36:37 -0000	1.21
+++ gnu/usr.bin/perl/win32/config_H.vc	21 Feb 2024 15:47:03 -0000
@@ -50,7 +50,7 @@
  *	This symbol, if defined, indicates that the chsize routine is available
  *	to truncate files.  You might need a -lx to get this routine.
  */
-#define	HAS_CHSIZE		/**/
+#define HAS_CHSIZE              /**/
 
 /* HAS_CRYPT:
  *	This symbol, if defined, indicates that the crypt routine is available
@@ -228,7 +228,7 @@
  *	This symbol, if defined, indicates that the mbstowcs routine is
  *	available to convert a multibyte string into a wide character string.
  */
-#define	HAS_MBSTOWCS		/**/
+#define HAS_MBSTOWCS            /**/
 
 /* HAS_MBTOWC:
  *	This symbol, if defined, indicates that the mbtowc routine is available
@@ -596,7 +596,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <arpa/inet.h> to get inet_addr and friends declarations.
  */
-#define	I_ARPA_INET		/**/
+#define I_ARPA_INET             /**/
 
 /* I_DBM:
  *	This symbol, if defined, indicates that <dbm.h> exists and should
@@ -630,7 +630,7 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <locale.h>.
  */
-#define	I_LOCALE		/**/
+#define I_LOCALE                /**/
 
 /* I_NETINET_IN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -658,7 +658,7 @@
  *	This symbol, if defined, indicates the <sys/sockio.h> should be included
  *	to get socket ioctl options, like SIOCATMARK.
  */
-/*#define	I_SYS_IOCTL		/ **/
+/*#define I_SYS_IOCTL           / **/
 /*#define I_SYS_SOCKIO	/ **/
 
 /* I_SYS_NDIR:
@@ -696,19 +696,19 @@
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/stat.h>.
  */
-#define	I_SYS_STAT		/**/
+#define I_SYS_STAT              /**/
 
 /* I_SYS_TIMES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/times.h>.
  */
-/*#define	I_SYS_TIMES		/ **/
+/*#define I_SYS_TIMES           / **/
 
 /* I_SYS_TYPES:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <sys/types.h>.
  */
-#define	I_SYS_TYPES		/**/
+#define I_SYS_TYPES             /**/
 
 /* I_SYS_UN:
  *	This symbol, if defined, indicates to the C program that it should
@@ -862,7 +862,7 @@
  *	This symbol is defined if the C compiler can cast negative
  *	or large floating point numbers to 32-bit ints.
  */
-/*#define	CASTI32		/ **/
+/*#define CASTI32               / **/
 
 /* CASTNEGFLOAT:
  *	This symbol is defined if the C compiler can cast negative
@@ -876,7 +876,7 @@
  *		2 = couldn't cast >= 0x80000000
  *		4 = couldn't cast in argument expression list
  */
-#define	CASTNEGFLOAT		/**/
+#define CASTNEGFLOAT            /**/
 #define CASTFLAGS 0		/**/
 
 /* VOID_CLOSEDIR:
@@ -978,13 +978,13 @@
  *	This symbol, if defined, indicates that siginfo_t has the
  *	si_value member
  */
-/*#define	HAS_SIGINFO_SI_ERRNO	/ **/
-/*#define	HAS_SIGINFO_SI_PID	/ **/
-/*#define	HAS_SIGINFO_SI_UID	/ **/
-/*#define	HAS_SIGINFO_SI_ADDR	/ **/
-/*#define	HAS_SIGINFO_SI_STATUS	/ **/
-/*#define	HAS_SIGINFO_SI_BAND	/ **/
-/*#define	HAS_SIGINFO_SI_VALUE	/ **/
+/*#define HAS_SIGINFO_SI_ERRNO  / **/
+/*#define HAS_SIGINFO_SI_PID    / **/
+/*#define HAS_SIGINFO_SI_UID    / **/
+/*#define HAS_SIGINFO_SI_ADDR   / **/
+/*#define HAS_SIGINFO_SI_STATUS / **/
+/*#define HAS_SIGINFO_SI_BAND   / **/
+/*#define HAS_SIGINFO_SI_VALUE  / **/
 
 /* HAS_SIGSETJMP:
  *	This variable indicates to the C program that the sigsetjmp()
@@ -1226,7 +1226,7 @@
  *	This symbol, if defined, indicates that this system uses
  *	EBCDIC encoding.
  */
-/*#define	EBCDIC		/ **/
+/*#define EBCDIC                / **/
 
 /* ARCHLIB:
  *	This variable, if defined, holds the name of the directory in
@@ -1568,7 +1568,7 @@
  *	This symbol, if defined, indicates that the system supports filenames
  *	longer than 14 characters.
  */
-#define	FLEXFILENAMES		/**/
+#define FLEXFILENAMES           /**/
 
 /* HAS_GETGRENT:
  *	This symbol, if defined, indicates that the getgrent routine is
@@ -1947,16 +1947,16 @@
  *	This symbol, if defined, indicates the availability of
  *	struct ipv6_mreq_source;
  */
-#define	HAS_SOCKET		/**/
-/*#define	HAS_SOCKETPAIR	/ **/
-/*#define	HAS_SOCKADDR_SA_LEN	/ **/
-/*#define	HAS_SOCKADDR_IN6	/ **/
-#define	HAS_SOCKADDR_STORAGE	/**/
-#define	HAS_SIN6_SCOPE_ID	/**/
-/*#define	HAS_IP_MREQ	/ **/
-/*#define	HAS_IP_MREQ_SOURCE	/ **/
-/*#define	HAS_IPV6_MREQ	/ **/
-/*#define	HAS_IPV6_MREQ_SOURCE	/ **/
+#define HAS_SOCKET              /**/
+/*#define HAS_SOCKETPAIR        / **/
+/*#define HAS_SOCKADDR_SA_LEN   / **/
+/*#define HAS_SOCKADDR_IN6      / **/
+#define HAS_SOCKADDR_STORAGE    /**/
+#define HAS_SIN6_SCOPE_ID       /**/
+/*#define HAS_IP_MREQ   / **/
+/*#define HAS_IP_MREQ_SOURCE    / **/
+/*#define HAS_IPV6_MREQ / **/
+/*#define HAS_IPV6_MREQ_SOURCE  / **/
 
 /* USE_STAT_BLOCKS:
  *	This symbol is defined if this system has a stat structure declaring
@@ -2158,7 +2158,7 @@
  *	This symbol, if defined, indicates that <sys/uio.h> exists and
  *	should be included.
  */
-/*#define	I_SYSUIO		/ **/
+/*#define I_SYSUIO              / **/
 
 /* I_TERMIO:
  *	This symbol, if defined, indicates that the program should include
@@ -2257,8 +2257,8 @@
  *	Perl has been cross-compiled to.  Undefined if not a cross-compile.
  */
 #ifndef USE_CROSS_COMPILE
-/*#define	USE_CROSS_COMPILE	/ **/
-#define	PERL_TARGETARCH	""	/**/
+/*#define USE_CROSS_COMPILE     / **/
+#define PERL_TARGETARCH ""      /**/
 #endif
 
 /* PERL_USE_DEVEL:
@@ -2266,7 +2266,7 @@
  *	-Dusedevel, to enable development features.  This should not be
  *	done for production builds.
  */
-/*#define	PERL_USE_DEVEL		/ **/
+/*#define PERL_USE_DEVEL                / **/
 
 /* HAS_ATOLF:
  *	This symbol, if defined, indicates that the atolf routine is
@@ -2352,7 +2352,7 @@
 /* HAS_C99_VARIADIC_MACROS:
  *	If defined, the compiler supports C99 variadic macros.
  */
-/*#define	HAS_C99_VARIADIC_MACROS	/ **/
+/*#define HAS_C99_VARIADIC_MACROS       / **/
 
 /* HAS_CLASS:
  *	This symbol, if defined, indicates that the class routine is
@@ -2408,10 +2408,10 @@
  *	to the program to supply one.  A good guess is
  *		extern int dbminit(char *);
  */
-/*#define	HAS_DBMINIT_PROTO	/ **/
+/*#define HAS_DBMINIT_PROTO     / **/
 
 /* HAS_DIR_DD_FD:
- *	This symbol, if defined, indicates that the the DIR* dirstream
+ *	This symbol, if defined, indicates that the DIR* dirstream
  *	structure contains a member variable named dd_fd.
  */
 /*#define HAS_DIR_DD_FD		/ **/
@@ -2428,7 +2428,7 @@
  *	makes sense if you *have* dlsym, which we will presume is the
  *	case if you're using dl_dlopen.xs.
  */
-/*#define	DLSYM_NEEDS_UNDERSCORE	/ **/
+/*#define DLSYM_NEEDS_UNDERSCORE        / **/
 
 /* HAS_DUP3:
  *	This symbol, if defined, indicates that the dup3 routine is
@@ -2531,7 +2531,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int flock(int, int);
  */
-#define	HAS_FLOCK_PROTO	/**/
+#define HAS_FLOCK_PROTO /**/
 
 /* HAS_FMA:
  *	This symbol, if defined, indicates that the fma routine is
@@ -2617,8 +2617,8 @@
  *	  FP_NAN        NaN
  *
  */
-/*#define	HAS_FPCLASSIFY		/ **/
-/*#define	HAS_FP_CLASSIFY		/ **/
+/*#define HAS_FPCLASSIFY                / **/
+/*#define HAS_FP_CLASSIFY               / **/
 
 /* HAS_FPCLASSL:
  *	This symbol, if defined, indicates that the fpclassl routine is
@@ -2647,7 +2647,7 @@
 /* HAS_FPOS64_T:
  *	This symbol will be defined if the C compiler supports fpos64_t.
  */
-/*#define	HAS_FPOS64_T	/ **/
+/*#define HAS_FPOS64_T  / **/
 
 /* HAS_FREXPL:
  *	This symbol, if defined, indicates that the frexpl routine is
@@ -2677,11 +2677,11 @@
 /* HAS_UNLINKAT:
  *	This symbol is defined if the unlinkat() routine is available.
  */
-/*#define	HAS_FCHMODAT	/ **/
-/*#define	HAS_LINKAT	/ **/
-/*#define	HAS_OPENAT	/ **/
-/*#define	HAS_RENAMEAT	/ **/
-/*#define	HAS_UNLINKAT	/ **/
+/*#define HAS_FCHMODAT  / **/
+/*#define HAS_LINKAT    / **/
+/*#define HAS_OPENAT    / **/
+/*#define HAS_RENAMEAT  / **/
+/*#define HAS_UNLINKAT  / **/
 
 /* HAS_FSEEKO:
  *	This symbol, if defined, indicates that the fseeko routine is
@@ -2889,8 +2889,8 @@
  *	j0l() function is available for Bessel functions of the first
  *	kind of the order zero, for long doubles.
  */
-/*#define	HAS_J0		/ **/
-/*#define	HAS_J0L		/ **/
+/*#define HAS_J0                / **/
+/*#define HAS_J0L               / **/
 
 /* HAS_LC_MONETARY_2008:
  *	This symbol, if defined, indicates that the localeconv routine is
@@ -3126,13 +3126,13 @@
  *	This symbol, if defined, indicates that the C program should
  *	include <xlocale.h> to get newlocale() and its friends.
  */
-/*#define	HAS_NEWLOCALE	/ **/
-/*#define	HAS_FREELOCALE	/ **/
-/*#define	HAS_USELOCALE	/ **/
-/*#define	HAS_DUPLOCALE	/ **/
-/*#define	HAS_QUERYLOCALE	/ **/
-/*#define	NEED_XLOCALE_H	/ **/
-/*#define	I_XLOCALE               / **/
+/*#define HAS_NEWLOCALE / **/
+/*#define HAS_FREELOCALE        / **/
+/*#define HAS_USELOCALE / **/
+/*#define HAS_DUPLOCALE / **/
+/*#define HAS_QUERYLOCALE       / **/
+/*#define NEED_XLOCALE_H        / **/
+/*#define I_XLOCALE               / **/
 
 /* HAS_NEXTAFTER:
  *	This symbol, if defined, indicates that the nextafter routine is
@@ -3158,7 +3158,7 @@
 /* HAS_OFF64_T:
  *	This symbol will be defined if the C compiler supports off64_t.
  */
-/*#define	HAS_OFF64_T		/ **/
+/*#define HAS_OFF64_T           / **/
 
 /* HAS_PIPE2:
  *	This symbol, if defined, indicates that the pipe2 routine is
@@ -3203,7 +3203,7 @@
 /* HAS_PTRDIFF_T:
  *	This symbol will be defined if the C compiler supports ptrdiff_t.
  */
-#define	HAS_PTRDIFF_T		/**/
+#define HAS_PTRDIFF_T           /**/
 
 /* HAS_READV:
  *	This symbol, if defined, indicates that the readv routine is
@@ -3250,7 +3250,7 @@
  *		extern void* sbrk(int);
  *		extern void* sbrk(size_t);
  */
-/*#define	HAS_SBRK_PROTO	/ **/
+/*#define HAS_SBRK_PROTO        / **/
 
 /* HAS_SCALBN:
  *	This symbol, if defined, indicates that the scalbn routine is
@@ -3316,7 +3316,7 @@
  *	be used.
  */
 #ifndef USE_SITECUSTOMIZE
-/*#define	USE_SITECUSTOMIZE		/ **/
+/*#define USE_SITECUSTOMIZE             / **/
 #endif
 
 /* HAS_SNPRINTF:
@@ -3342,7 +3342,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int sockatmark(int);
  */
-/*#define	HAS_SOCKATMARK_PROTO	/ **/
+/*#define HAS_SOCKATMARK_PROTO  / **/
 
 /* HAS_SOCKS5_INIT:
  *	This symbol, if defined, indicates that the socks5_init routine is
@@ -3362,7 +3362,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESGID_PROTO	/ **/
+/*#define HAS_SETRESGID_PROTO   / **/
 
 /* HAS_SETRESUID_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3370,7 +3370,7 @@
  *	to the program to supply one.  Good guesses are
  *		extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
  */
-/*#define	HAS_SETRESUID_PROTO	/ **/
+/*#define HAS_SETRESUID_PROTO   / **/
 
 /* HAS_STRUCT_STATFS_F_FLAGS:
  *	This symbol, if defined, indicates that the struct statfs
@@ -3469,7 +3469,7 @@
  *		extern int syscall(int,  ...);
  *		extern int syscall(long, ...);
  */
-/*#define	HAS_SYSCALL_PROTO	/ **/
+/*#define HAS_SYSCALL_PROTO     / **/
 
 /* HAS_TELLDIR_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -3477,7 +3477,7 @@
  *	to the program to supply one.  A good guess is
  *		extern long telldir(DIR*);
  */
-#define	HAS_TELLDIR_PROTO	/**/
+#define HAS_TELLDIR_PROTO       /**/
 
 /* HAS_TGAMMA:
  *	This symbol, if defined, indicates that the tgamma routine is
@@ -3509,12 +3509,12 @@
  *	This symbol, if defined, indicates that the asctime64 () routine is
  *	available to do the 64bit variant of asctime ()
  */
-/*#define	HAS_CTIME64		/ **/
-/*#define	HAS_LOCALTIME64		/ **/
-/*#define	HAS_GMTIME64		/ **/
-/*#define	HAS_MKTIME64		/ **/
-/*#define	HAS_DIFFTIME64		/ **/
-/*#define	HAS_ASCTIME64		/ **/
+/*#define HAS_CTIME64           / **/
+/*#define HAS_LOCALTIME64               / **/
+/*#define HAS_GMTIME64          / **/
+/*#define HAS_MKTIME64          / **/
+/*#define HAS_DIFFTIME64                / **/
+/*#define HAS_ASCTIME64         / **/
 
 /* HAS_TIMEGM:
  *	This symbol, if defined, indicates that the timegm routine is
@@ -3579,7 +3579,7 @@
  *	to the program to supply one.  A good guess is
  *		extern int usleep(useconds_t);
  */
-/*#define	HAS_USLEEP_PROTO	/ **/
+/*#define HAS_USLEEP_PROTO      / **/
 
 /* HAS_USTAT:
  *	This symbol, if defined, indicates that the ustat system call is
@@ -3595,7 +3595,7 @@
 
 /* HAS_WCSXFRM:
  *	This symbol, if defined, indicates that the wcsxfrm routine is
- *	available to tranform a wide character string for wcscmp().
+ *	available to transform a wide character string for wcscmp().
  */
 #define HAS_WCSXFRM	/**/
 
@@ -3630,20 +3630,20 @@
  *	Note that if fflushNULL is defined, fflushall will not
  *	even be probed for and will be left undefined.
  */
-#define	FFLUSH_NULL		/**/
-/*#define	FFLUSH_ALL		/ **/
+#define FFLUSH_NULL             /**/
+/*#define FFLUSH_ALL            / **/
 
 /* I_BFD:
  *	This symbol, if defined, indicates that <bfd.h> exists and
  *	can be included.
  */
-/*#define	I_BFD		/ **/
+/*#define I_BFD         / **/
 
 /* I_CRYPT:
  *	This symbol, if defined, indicates that <crypt.h> exists and
  *	should be included.
  */
-/*#define	I_CRYPT		/ **/
+/*#define I_CRYPT               / **/
 
 /* DB_Prefix_t:
  *	This symbol contains the type of the prefix structure element
@@ -3685,19 +3685,19 @@
  *	This symbol, if defined, indicates that <fp.h> exists and
  *	should be included.
  */
-/*#define	I_FP		/ **/
+/*#define I_FP          / **/
 
 /* I_FP_CLASS:
  *	This symbol, if defined, indicates that <fp_class.h> exists and
  *	should be included.
  */
-/*#define	I_FP_CLASS		/ **/
+/*#define I_FP_CLASS            / **/
 
 /* I_IEEEFP:
  *	This symbol, if defined, indicates that <ieeefp.h> exists and
  *	should be included.
  */
-/*#define	I_IEEEFP		/ **/
+/*#define I_IEEEFP              / **/
 
 /* I_INTTYPES:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3709,13 +3709,13 @@
  *	This symbol, if defined, indicates that <langinfo.h> exists and
  *	should be included.
  */
-/*#define	I_LANGINFO		/ **/
+/*#define I_LANGINFO            / **/
 
 /* I_LIBUTIL:
  *	This symbol, if defined, indicates that <libutil.h> exists and
  *	should be included.
  */
-/*#define	I_LIBUTIL		/ **/
+/*#define I_LIBUTIL             / **/
 
 /* I_MALLOCMALLOC:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3727,7 +3727,7 @@
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.
  */
-/*#define	I_MNTENT		/ **/
+/*#define I_MNTENT              / **/
 
 /* I_NETINET_TCP:
  *	This symbol, if defined, indicates to the C program that it should
@@ -3739,37 +3739,37 @@
  *	This symbol, if defined, indicates that <poll.h> exists and
  *	should be included. (see also HAS_POLL)
  */
-/*#define	I_POLL		/ **/
+/*#define I_POLL                / **/
 
 /* I_PROT:
  *	This symbol, if defined, indicates that <prot.h> exists and
  *	should be included.
  */
-/*#define	I_PROT		/ **/
+/*#define I_PROT                / **/
 
 /* I_QUADMATH:
  *	This symbol, if defined, indicates that <quadmath.h> exists and
  *	should be included.
  */
-/*#define	I_QUADMATH		/ **/
+/*#define I_QUADMATH            / **/
 
 /* I_SHADOW:
  *	This symbol, if defined, indicates that <shadow.h> exists and
  *	should be included.
  */
-/*#define	I_SHADOW		/ **/
+/*#define I_SHADOW              / **/
 
 /* I_SOCKS:
  *	This symbol, if defined, indicates that <socks.h> exists and
  *	should be included.
  */
-/*#define	I_SOCKS		/ **/
+/*#define I_SOCKS               / **/
 
 /* I_STDBOOL:
  *	This symbol, if defined, indicates that <stdbool.h> exists and
  *	can be included.
  */
-/*#define	I_STDBOOL		/ **/
+/*#define I_STDBOOL             / **/
 
 /* I_STDINT:
  *	This symbol, if defined, indicates that <stdint.h> exists and
@@ -3781,54 +3781,54 @@
  *	This symbol, if defined, indicates that <sunmath.h> exists and
  *	should be included.
  */
-/*#define	I_SUNMATH		/ **/
+/*#define I_SUNMATH             / **/
 
 /* I_SYSLOG:
  *	This symbol, if defined, indicates that <syslog.h> exists and
  *	should be included.
  */
-/*#define	I_SYSLOG		/ **/
+/*#define I_SYSLOG              / **/
 
 /* I_SYSMODE:
  *	This symbol, if defined, indicates that <sys/mode.h> exists and
  *	should be included.
  */
-/*#define	I_SYSMODE		/ **/
+/*#define I_SYSMODE             / **/
 
 /* I_SYS_MOUNT:
  *	This symbol, if defined, indicates that <sys/mount.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_MOUNT		/ **/
+/*#define I_SYS_MOUNT           / **/
 
 /* I_SYS_STATFS:
  *	This symbol, if defined, indicates that <sys/statfs.h> exists.
  */
-/*#define	I_SYS_STATFS		/ **/
+/*#define I_SYS_STATFS          / **/
 
 /* I_SYS_STATVFS:
  *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_STATVFS		/ **/
+/*#define I_SYS_STATVFS         / **/
 
 /* I_SYSUTSNAME:
  *	This symbol, if defined, indicates that <sys/utsname.h> exists and
  *	should be included.
  */
-/*#define	I_SYSUTSNAME		/ **/
+/*#define I_SYSUTSNAME          / **/
 
 /* I_SYS_VFS:
  *	This symbol, if defined, indicates that <sys/vfs.h> exists and
  *	should be included.
  */
-/*#define	I_SYS_VFS		/ **/
+/*#define I_SYS_VFS             / **/
 
 /* I_USTAT:
  *	This symbol, if defined, indicates that <ustat.h> exists and
  *	should be included.
  */
-/*#define	I_USTAT		/ **/
+/*#define I_USTAT               / **/
 
 /* I_WCHAR:
  *	This symbol, if defined, indicates to the C program that <wchar.h>
@@ -3839,7 +3839,7 @@
 /* I_WCTYPE:
  *	This symbol, if defined, indicates that <wctype.h> exists.
  */
-/*#define	I_WCTYPE		/ **/
+/*#define I_WCTYPE              / **/
 
 /* DOUBLEINFBYTES:
  *	This symbol, if defined, is a comma-separated list of
@@ -3990,7 +3990,7 @@
  *	of copying mechanisms, handy.h defines a platform-
  *	independent macro, Perl_va_copy(src, dst), to do the job.
  */
-/*#define	NEED_VA_COPY		/ **/
+/*#define NEED_VA_COPY          / **/
 
 /* IVTYPE:
  *	This symbol defines the C type used for Perl's IV.
@@ -4081,36 +4081,36 @@
  *	This symbol, if defined, indicates that a variable of type NVTYPE
  *	stores 0.0 in memory as all bits zero.
  */
-#define	IVTYPE		__int64		/**/
-#define	UVTYPE		unsigned __int64		/**/
-#define	I8TYPE		char		/**/
-#define	U8TYPE		unsigned char		/**/
-#define	I16TYPE		short	/**/
-#define	U16TYPE		unsigned short	/**/
-#define	I32TYPE		long	/**/
-#define	U32TYPE		unsigned long	/**/
+#define IVTYPE          __int64         /**/
+#define UVTYPE          unsigned __int64                /**/
+#define I8TYPE          char            /**/
+#define U8TYPE          unsigned char           /**/
+#define I16TYPE         short   /**/
+#define U16TYPE         unsigned short  /**/
+#define I32TYPE         long    /**/
+#define U32TYPE         unsigned long   /**/
 #ifdef HAS_QUAD
-#define	I64TYPE		__int64	/**/
-#define	U64TYPE		unsigned __int64	/**/
+#define I64TYPE         __int64 /**/
+#define U64TYPE         unsigned __int64        /**/
 #endif
-#define	NVTYPE		double		/**/
-#define	IVSIZE		8		/**/
-#define	UVSIZE		8		/**/
-#define	I8SIZE		1		/**/
-#define	U8SIZE		1		/**/
-#define	I16SIZE		2	/**/
-#define	U16SIZE		2	/**/
-#define	I32SIZE		4	/**/
-#define	U32SIZE		4	/**/
+#define NVTYPE          double          /**/
+#define IVSIZE          8               /**/
+#define UVSIZE          8               /**/
+#define I8SIZE          1               /**/
+#define U8SIZE          1               /**/
+#define I16SIZE         2       /**/
+#define U16SIZE         2       /**/
+#define I32SIZE         4       /**/
+#define U32SIZE         4       /**/
 #ifdef HAS_QUAD
-#define	I64SIZE		8	/**/
-#define	U64SIZE		8	/**/
+#define I64SIZE         8       /**/
+#define U64SIZE         8       /**/
 #endif
-#define	NVSIZE		8		/**/
+#define NVSIZE          8               /**/
 #undef	NV_PRESERVES_UV
-#define	NV_PRESERVES_UV_BITS	53
-#define	NV_OVERFLOWS_INTEGERS_AT	(256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
-#define	NV_ZERO_IS_ALLBITS_ZERO
+#define NV_PRESERVES_UV_BITS    53
+#define NV_OVERFLOWS_INTEGERS_AT        (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0)
+#define NV_ZERO_IS_ALLBITS_ZERO
 #if UVSIZE == 8
 #   ifdef BYTEORDER
 #       if BYTEORDER == 0x1234
@@ -4157,14 +4157,39 @@
  *	This symbol defines the format string used for printing a Perl NV
  *	using %g-ish floating point format.
  */
-#define	IVdf		"I64d"		/**/
-#define	UVuf		"I64u"		/**/
-#define	UVof		"I64o"		/**/
-#define	UVxf		"I64x"		/**/
-#define	UVXf		"I64X"		/**/
-#define	NVef		"e"		/**/
-#define	NVff		"f"		/**/
-#define	NVgf		"g"		/**/
+/* I32df:
+ *	This symbol defines the format string used for printing a Perl I32
+ *	as a signed decimal integer.
+ */
+/* U32uf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned decimal integer.
+ */
+/* U32of:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned octal integer.
+ */
+/* U32xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in lowercase abcdef.
+ */
+/* U32Xf:
+ *	This symbol defines the format string used for printing a Perl U32
+ *	as an unsigned hexadecimal integer in uppercase ABCDEF.
+ */
+#define IVdf            "I64d"          /**/
+#define UVuf            "I64u"          /**/
+#define UVof            "I64o"          /**/
+#define UVxf            "I64x"          /**/
+#define UVXf            "I64X"          /**/
+#define NVef            "e"             /**/
+#define NVff            "f"             /**/
+#define NVgf            "g"             /**/
+#define I32df           "ld"            /**/
+#define U32uf           "lu"            /**/
+#define U32of           "lo"            /**/
+#define U32xf           "lx"            /**/
+#define U32Xf           "lX"            /**/
 
 /* SELECT_MIN_BITS:
  *	This symbol holds the minimum number of bits operated by select.
@@ -4209,7 +4234,7 @@
  *	This symbol tells the name of the array holding the stdio streams.
  *	Usual values include _iob, __iob, and __sF.
  */
-/*#define	HAS_STDIO_STREAM_ARRAY	/ **/
+/*#define HAS_STDIO_STREAM_ARRAY        / **/
 #ifdef HAS_STDIO_STREAM_ARRAY
 #define STDIO_STREAM_ARRAY	
 #endif
@@ -4254,10 +4279,10 @@
  *	you may need at least to reboot your OS to 64-bit mode.
  */
 #ifndef USE_64_BIT_INT
-#define	USE_64_BIT_INT		/**/
+#define USE_64_BIT_INT          /**/
 #endif
 #ifndef USE_64_BIT_ALL
-/*#define	USE_64_BIT_ALL		/ **/
+/*#define USE_64_BIT_ALL                / **/
 #endif
 
 /* USE_C_BACKTRACE:
@@ -4284,7 +4309,7 @@
  *	Defaults to define in Perls 5.8 and earlier, to undef later.
  */
 #ifndef USE_FAST_STDIO
-/*#define	USE_FAST_STDIO		/ **/
+/*#define USE_FAST_STDIO                / **/
 #endif
 
 /* USE_KERN_PROC_PATHNAME:
@@ -4299,7 +4324,7 @@
  *	should be used when available.
  */
 #ifndef USE_LARGE_FILES
-#define	USE_LARGE_FILES		/**/
+#define USE_LARGE_FILES         /**/
 #endif
 
 /* USE_LONG_DOUBLE:
@@ -4307,7 +4332,7 @@
  *	be used when available.
  */
 #ifndef USE_LONG_DOUBLE
-/*#define	USE_LONG_DOUBLE		/ **/
+/*#define USE_LONG_DOUBLE               / **/
 #endif
 
 /* USE_MORE_BITS:
@@ -4315,7 +4340,7 @@
  *	long doubles should be used when available.
  */
 #ifndef USE_MORE_BITS
-/*#define	USE_MORE_BITS		/ **/
+/*#define USE_MORE_BITS         / **/
 #endif
 
 /* MULTIPLICITY:
@@ -4323,7 +4348,7 @@
  *	be built to use multiplicity.
  */
 #ifndef MULTIPLICITY
-/*#define	MULTIPLICITY		/ **/
+/*#define MULTIPLICITY          / **/
 #endif
 
 /* USE_NSGETEXECUTABLEPATH:
@@ -4339,7 +4364,7 @@
  *	used in a fully backward compatible manner.
  */
 #ifndef USE_PERLIO
-#define	USE_PERLIO		/**/
+#define USE_PERLIO              /**/
 #endif
 
 /* USE_QUADMATH:
@@ -4347,7 +4372,7 @@
  *	be used when available.
  */
 #ifndef USE_QUADMATH
-/*#define	USE_QUADMATH		/ **/
+/*#define USE_QUADMATH          / **/
 #endif
 
 /* USE_SOCKS:
@@ -4355,7 +4380,7 @@
  *	be built to use socks.
  */
 #ifndef USE_SOCKS
-/*#define	USE_SOCKS		/ **/
+/*#define USE_SOCKS             / **/
 #endif
 
 /* HAS_DRAND48_PROTO:
@@ -4364,7 +4389,7 @@
  *	to the program to supply one.  A good guess is
  *		extern double drand48(void);
  */
-/*#define	HAS_DRAND48_PROTO	/ **/
+/*#define HAS_DRAND48_PROTO     / **/
 
 /* HAS_GETHOST_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4372,7 +4397,7 @@
  *	gethostbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETHOST_PROTOS	/**/
+#define HAS_GETHOST_PROTOS      /**/
 
 /* HAS_GETNET_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4380,7 +4405,7 @@
  *	getnetbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-/*#define	HAS_GETNET_PROTOS	/ **/
+/*#define HAS_GETNET_PROTOS     / **/
 
 /* HAS_GETPROTO_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4388,7 +4413,7 @@
  *	getprotobyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETPROTO_PROTOS	/**/
+#define HAS_GETPROTO_PROTOS     /**/
 
 /* HAS_GETSERV_PROTOS:
  *	This symbol, if defined, indicates that <netdb.h> includes
@@ -4396,7 +4421,7 @@
  *	getservbyaddr().  Otherwise, it is up to the program to guess
  *	them.  See netdbtype.U for probing for various Netdb_xxx_t types.
  */
-#define	HAS_GETSERV_PROTOS	/**/
+#define HAS_GETSERV_PROTOS      /**/
 
 /* HAS_LSEEK_PROTO:
  *	This symbol, if defined, indicates that the system provides
@@ -4404,7 +4429,7 @@
  *	to the program to supply one.  A good guess is
  *		extern off_t lseek(int, off_t, int);
  */
-#define	HAS_LSEEK_PROTO	/**/
+#define HAS_LSEEK_PROTO /**/
 
 /* Netdb_host_t:
  *	This symbol holds the type used for the 1st argument
@@ -5215,10 +5240,10 @@
  *	try to use the various _r versions of library functions.
  *	This is extremely experimental.
  */
-/*#define	USE_ITHREADS		/ **/
-/*#define		USE_THREADS		/ **/
-/*#define	OLD_PTHREADS_API		/ **/
-/*#define	USE_REENTRANT_API	/ **/
+/*#define USE_ITHREADS          / **/
+/*#define       USE_THREADS             / **/
+/*#define OLD_PTHREADS_API              / **/
+/*#define USE_REENTRANT_API     / **/
 
 /* HAS_TIME:
  *	This symbol, if defined, indicates that the time() routine exists.
@@ -5248,7 +5273,7 @@
 /* Gid_t_f:
  *	This symbol defines the format string used for printing a Gid_t.
  */
-#define	Gid_t_f		"ld"		/**/
+#define Gid_t_f         "ld"            /**/
 
 /* Gid_t_sign:
  *	This symbol holds the signedness of a Gid_t.
@@ -5316,7 +5341,7 @@
 /* Uid_t_f:
  *	This symbol defines the format string used for printing a Uid_t.
  */
-#define	Uid_t_f		"ld"		/**/
+#define Uid_t_f         "ld"            /**/
 
 /* Uid_t_sign:
  *	This symbol holds the signedness of a Uid_t.
Index: gnu/usr.bin/perl/win32/config_sh.PL
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/config_sh.PL,v
diff -u -p -a -u -p -r1.17 config_sh.PL
--- gnu/usr.bin/perl/win32/config_sh.PL	15 Feb 2023 01:36:37 -0000	1.17
+++ gnu/usr.bin/perl/win32/config_sh.PL	21 Feb 2024 15:47:03 -0000
@@ -11,7 +11,32 @@ sub mungepath {
     $p =~ s/[ ;]+$//;
     $p =~ s/'/"/g;
     my @p = map { $_ = "\"$_\"" if /\s/ and !/^".*"$/; $_ } split /;/, $p;
-    return join(' ', @p);
+    return wantarray ? @p : join(' ', @p);
+}
+
+# check that the directories in the provided var exist
+sub check_path {
+    my $opt = shift;
+    my $p = shift;
+    my @paths = mungepath($p);
+    my $header_seen = 0;
+    foreach my $path (@paths) {
+        $path =~ s/^"(.*)"$/$1/;
+        next, if -d $path;
+
+        if (not $header_seen++) {
+            print STDERR "'$opt' contains the following non-existing paths:\n";
+        }
+        print STDERR "\t$path\n";
+    }
+    if ($header_seen) {
+        print STDERR <<EOF;
+Did you provide a correct value for the 'CCHOME' option?
+
+(This check can be skipped by using the SKIP_CCHOME_CHECK=1 option)
+EOF
+        exit 1;
+    }
 }
 
 # generate an array of option strings from command-line args
@@ -111,6 +136,11 @@ if (!$opt{cf_email}) {
     $opt{cf_email} = $opt{cf_by} . '@' . $computername;
 }
 $opt{usemymalloc} = 'y' if $opt{d_mymalloc} eq 'define';
+
+unless ($opt{SKIP_CCHOME_CHECK}) {
+    check_path('CCLIBDIR', $opt{libpth});
+    check_path('CCINCDIR', $opt{incpath});
+}
 
 $opt{libpth} = mungepath($opt{libpth}) if exists $opt{libpth};
 $opt{incpath} = mungepath($opt{incpath}) if exists $opt{incpath};
Index: gnu/usr.bin/perl/win32/fcrypt.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/fcrypt.c,v
diff -u -p -a -u -p -r1.3 fcrypt.c
--- gnu/usr.bin/perl/win32/fcrypt.c	15 Feb 2023 01:36:37 -0000	1.3
+++ gnu/usr.bin/perl/win32/fcrypt.c	21 Feb 2024 15:47:03 -0000
@@ -4,7 +4,7 @@
 #include <errno.h>
 
 /* Eric Young.
- * This version of crypt has been developed from my MIT compatable
+ * This version of crypt has been developed from my MIT compatible
  * DES library.
  * The library is available at pub/DES at ftp.psy.uq.oz.au
  * eay@psych.psy.uq.oz.au
Index: gnu/usr.bin/perl/win32/perlhost.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/perlhost.h,v
diff -u -p -a -u -p -r1.7 perlhost.h
--- gnu/usr.bin/perl/win32/perlhost.h	15 Feb 2023 01:36:37 -0000	1.7
+++ gnu/usr.bin/perl/win32/perlhost.h	21 Feb 2024 15:47:03 -0000
@@ -108,7 +108,7 @@ public:
     };
 
 /* IPerlMemParse */
-    /* Assume something else is using locks to mangaging serialize
+    /* Assume something else is using locks to manage serialization
        on a batch basis
      */
     inline void GetLockParse(void) { m_pVMemParse->GetLock(); };
Index: gnu/usr.bin/perl/win32/perllib.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/perllib.c,v
diff -u -p -a -u -p -r1.16 perllib.c
--- gnu/usr.bin/perl/win32/perllib.c	15 Feb 2023 01:36:37 -0000	1.16
+++ gnu/usr.bin/perl/win32/perllib.c	21 Feb 2024 15:47:03 -0000
@@ -34,7 +34,7 @@ EXTERN_C void boot_DynaLoader (pTHX_ CV*
 static void
 xs_init(pTHX)
 {
-    char *file = __FILE__;
+    const char *file = __FILE__;
     dXSUB_SYS;
     newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
     /* other similar records will be included from "perllibst.h" */
@@ -180,6 +180,7 @@ RunPerl(int argc, char **argv, char **en
     if (!(my_perl = perl_alloc()))
         return (1);
     perl_construct(my_perl);
+    PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
     PL_perl_destruct_level = 0;
 
     /* PERL_SYS_INIT() may update the environment, e.g. via ansify_path().
@@ -247,7 +248,7 @@ DllMain(HINSTANCE hModule,	/* DLL module
          * process termination or call to FreeLibrary.
          */
     case DLL_PROCESS_DETACH:
-        /* As long as we use TerminateProcess()/TerminateThread() etc. for mimicing kill()
+        /* As long as we use TerminateProcess()/TerminateThread() etc. for mimicking kill()
            anything here had better be harmless if:
             A. Not called at all.
             B. Called after memory allocation for Heap has been forcibly removed by OS.
Index: gnu/usr.bin/perl/win32/pod.mak
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/pod.mak,v
diff -u -p -a -u -p -r1.29 pod.mak
--- gnu/usr.bin/perl/win32/pod.mak	23 Dec 2023 21:02:21 -0000	1.29
+++ gnu/usr.bin/perl/win32/pod.mak	21 Feb 2024 15:47:03 -0000
@@ -72,6 +72,9 @@ POD = perl.pod	\
 	perl5361delta.pod	\
 	perl5362delta.pod	\
 	perl5363delta.pod	\
+	perl5380delta.pod	\
+	perl5381delta.pod	\
+	perl5382delta.pod	\
 	perl561delta.pod	\
 	perl56delta.pod	\
 	perl581delta.pod	\
@@ -92,6 +95,8 @@ POD = perl.pod	\
 	perlbot.pod	\
 	perlcall.pod	\
 	perlcheat.pod	\
+	perlclass.pod	\
+	perlclassguts.pod	\
 	perlclib.pod	\
 	perlcommunity.pod	\
 	perldata.pod	\
@@ -242,6 +247,9 @@ MAN = perl.man	\
 	perl5361delta.man	\
 	perl5362delta.man	\
 	perl5363delta.man	\
+	perl5380delta.man	\
+	perl5381delta.man	\
+	perl5382delta.man	\
 	perl561delta.man	\
 	perl56delta.man	\
 	perl581delta.man	\
@@ -262,6 +270,8 @@ MAN = perl.man	\
 	perlbot.man	\
 	perlcall.man	\
 	perlcheat.man	\
+	perlclass.man	\
+	perlclassguts.man	\
 	perlclib.man	\
 	perlcommunity.man	\
 	perldata.man	\
@@ -412,6 +422,9 @@ HTML = perl.html	\
 	perl5361delta.html	\
 	perl5362delta.html	\
 	perl5363delta.html	\
+	perl5380delta.html	\
+	perl5381delta.html	\
+	perl5382delta.html	\
 	perl561delta.html	\
 	perl56delta.html	\
 	perl581delta.html	\
@@ -432,6 +445,8 @@ HTML = perl.html	\
 	perlbot.html	\
 	perlcall.html	\
 	perlcheat.html	\
+	perlclass.html	\
+	perlclassguts.html	\
 	perlclib.html	\
 	perlcommunity.html	\
 	perldata.html	\
@@ -582,6 +597,9 @@ TEX = perl.tex	\
 	perl5361delta.tex	\
 	perl5362delta.tex	\
 	perl5363delta.tex	\
+	perl5380delta.tex	\
+	perl5381delta.tex	\
+	perl5382delta.tex	\
 	perl561delta.tex	\
 	perl56delta.tex	\
 	perl581delta.tex	\
@@ -602,6 +620,8 @@ TEX = perl.tex	\
 	perlbot.tex	\
 	perlcall.tex	\
 	perlcheat.tex	\
+	perlclass.tex	\
+	perlclassguts.tex	\
 	perlclib.tex	\
 	perlcommunity.tex	\
 	perldata.tex	\
Index: gnu/usr.bin/perl/win32/vmem.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/vmem.h,v
diff -u -p -a -u -p -r1.4 vmem.h
--- gnu/usr.bin/perl/win32/vmem.h	15 Feb 2023 01:36:37 -0000	1.4
+++ gnu/usr.bin/perl/win32/vmem.h	21 Feb 2024 15:47:03 -0000
@@ -64,17 +64,35 @@ inline void MEMODSlx(char *str, long x)
 
 /* 
  * Pass all memory requests through to the compiler's msvcr*.dll.
- * Optionaly track by using a doubly linked header.
+ * Optionally track by using a doubly linked header.
  */
 
 #ifdef _USE_LINKED_LIST
 class VMem;
+
+/*
+ * Address an alignment issue with x64 mingw-w64 ports of gcc-12 and
+ * (presumably) later. We do the same thing again 16 lines further down.
+ * See https://github.com/Perl/perl5/issues/19824
+ */
+
+#if defined(__MINGW64__) && __GNUC__ > 11
+typedef struct _MemoryBlockHeader* PMEMORY_BLOCK_HEADER __attribute__ ((aligned(16)));
+#else
 typedef struct _MemoryBlockHeader* PMEMORY_BLOCK_HEADER;
+#endif
+
 typedef struct _MemoryBlockHeader {
     PMEMORY_BLOCK_HEADER    pNext;
     PMEMORY_BLOCK_HEADER    pPrev;
     VMem *owner;
+
+#if defined(__MINGW64__) && __GNUC__ > 11
+} MEMORY_BLOCK_HEADER __attribute__ ((aligned(16))), *PMEMORY_BLOCK_HEADER;
+#else
 } MEMORY_BLOCK_HEADER, *PMEMORY_BLOCK_HEADER;
+#endif
+
 #endif
 
 class VMem
Index: gnu/usr.bin/perl/win32/win32.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/win32.c,v
diff -u -p -a -u -p -r1.24 win32.c
--- gnu/usr.bin/perl/win32/win32.c	23 Dec 2023 21:02:21 -0000	1.24
+++ gnu/usr.bin/perl/win32/win32.c	21 Feb 2024 15:47:03 -0000
@@ -38,6 +38,7 @@
 #include <io.h>
 #include <signal.h>
 #include <winioctl.h>
+#include <winternl.h>
 
 /* #include "config.h" */
 
@@ -72,7 +73,7 @@
 int _CRT_glob = 0;
 #endif
 
-#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1)
+#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1)	
 /* Mingw32-1.1 is missing some prototypes */
 START_EXTERN_C
 FILE * _wfopen(LPCWSTR wszFileName, LPCWSTR wszMode);
@@ -109,7 +110,7 @@ static char*	get_regstr(const char *valu
 #endif
 
 static char*	get_emd_part(SV **prev_pathp, STRLEN *const len,
-                        char *trailing, ...);
+                        const char *trailing, ...);
 static char*	win32_get_xlib(const char *pl,
                         WIN32_NO_REGISTRY_M_(const char *xlib)
                         const char *libname, STRLEN *const len);
@@ -156,9 +157,6 @@ static void translate_to_errno(void);
 START_EXTERN_C
 HANDLE	w32_perldll_handle = INVALID_HANDLE_VALUE;
 char	w32_module_name[MAX_PATH+1];
-#ifdef WIN32_DYN_IOINFO_SIZE
-Size_t	w32_ioinfo_size;/* avoid 0 extend op b4 mul, otherwise could be a U8 */
-#endif
 END_EXTERN_C
 
 static OSVERSIONINFO g_osver = {0, 0, 0, 0, 0, ""};
@@ -204,9 +202,9 @@ set_silent_invalid_parameter_handler(BOO
 
 static void
 my_invalid_parameter_handler(const wchar_t* expression,
-    const wchar_t* function,
-    const wchar_t* file,
-    unsigned int line,
+    const wchar_t* function, 
+    const wchar_t* file, 
+    unsigned int line, 
     uintptr_t pReserved)
 {
 #  ifdef _DEBUG
@@ -328,7 +326,7 @@ get_regstr(const char *valuename, SV **s
 
 /* *prev_pathp (if non-NULL) is expected to be POK (valid allocated SvPVX(sv)) */
 static char *
-get_emd_part(SV **prev_pathp, STRLEN *const len, char *trailing_path, ...)
+get_emd_part(SV **prev_pathp, STRLEN *const len, const char *trailing_path, ...)
 {
     char base[10];
     va_list ap;
@@ -396,7 +394,7 @@ get_emd_part(SV **prev_pathp, STRLEN *co
 EXTERN_C char *
 win32_get_privlib(WIN32_NO_REGISTRY_M_(const char *pl) STRLEN *const len)
 {
-    char *stdlib = "lib";
+    const char *stdlib = "lib";
     SV *sv = NULL;
 #ifndef WIN32_NO_REGISTRY
     char buffer[MAX_PATH+1];
@@ -672,7 +670,7 @@ get_shell(void)
 int
 Perl_do_aspawn(pTHX_ SV *really, SV **mark, SV **sp)
 {
-    char **argv;
+    const char **argv;
     char *str;
     int status;
     int flag = P_WAIT;
@@ -687,7 +685,7 @@ Perl_do_aspawn(pTHX_ SV *really, SV **ma
     if (get_shell() < 0)
         return -1;
 
-    Newx(argv, (sp - mark) + w32_perlshell_items + 2, char*);
+    Newx(argv, (sp - mark) + w32_perlshell_items + 2, const char*);
 
     if (SvNIOKp(*(mark+1)) && !SvPOKp(*(mark+1))) {
         ++mark;
@@ -1066,7 +1064,12 @@ win32_telldir(DIR *dirp)
 DllExport void
 win32_seekdir(DIR *dirp, long loc)
 {
-    dirp->curr = loc == -1 ? NULL : dirp->start + loc;
+    /* Ensure dirp->curr remains within `dirp->start` buffer. */
+    if (loc >= 0 && dirp->end - dirp->start > (ptrdiff_t) loc) {
+        dirp->curr = dirp->start + loc;
+    } else {
+        dirp->curr = NULL;
+    }
 }
 
 /* Rewinddir resets the string pointer to the start */
@@ -1519,35 +1522,102 @@ win32_kill(int pid, int sig)
 PERL_STATIC_INLINE
 time_t
 translate_ft_to_time_t(FILETIME ft) {
-    SYSTEMTIME st, local_st;
+    SYSTEMTIME st;
     struct tm pt;
+    time_t retval;
+    dTHX;
 
-    if (!FileTimeToSystemTime(&ft, &st) ||
-        !SystemTimeToTzSpecificLocalTime(NULL, &st, &local_st)) {
+    if (!FileTimeToSystemTime(&ft, &st))
         return -1;
-    }
 
     Zero(&pt, 1, struct tm);
-    pt.tm_year = local_st.wYear - 1900;
-    pt.tm_mon = local_st.wMonth - 1;
-    pt.tm_mday = local_st.wDay;
-    pt.tm_hour = local_st.wHour;
-    pt.tm_min = local_st.wMinute;
-    pt.tm_sec = local_st.wSecond;
-    pt.tm_isdst = -1;
+    pt.tm_year = st.wYear - 1900;
+    pt.tm_mon = st.wMonth - 1;
+    pt.tm_mday = st.wDay;
+    pt.tm_hour = st.wHour;
+    pt.tm_min = st.wMinute;
+    pt.tm_sec = st.wSecond;
+
+    MKTIME_LOCK;
+    retval = _mkgmtime(&pt);
+    MKTIME_UNLOCK;
 
-    return mktime(&pt);
+    return retval;
 }
 
 typedef DWORD (__stdcall *pGetFinalPathNameByHandleA_t)(HANDLE, LPSTR, DWORD, DWORD);
 
+/* Adapted from:
+
+https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/ns-ntifs-_reparse_data_buffer
+
+Renamed to avoid conflicts, apparently some SDKs define this
+structure.
+
+Hoisted the symlink and mount point data into a new type to allow us
+to make a pointer to it, and to avoid C++ scoping issues.
+
+*/
+
+typedef struct {
+    USHORT SubstituteNameOffset;
+    USHORT SubstituteNameLength;
+    USHORT PrintNameOffset;
+    USHORT PrintNameLength;
+    ULONG  Flags;
+    WCHAR  PathBuffer[MAX_PATH*3];
+} MY_SYMLINK_REPARSE_BUFFER, *PMY_SYMLINK_REPARSE_BUFFER;
+
+typedef struct {
+    USHORT SubstituteNameOffset;
+    USHORT SubstituteNameLength;
+    USHORT PrintNameOffset;
+    USHORT PrintNameLength;
+    WCHAR  PathBuffer[MAX_PATH*3];
+} MY_MOUNT_POINT_REPARSE_BUFFER;
+
+typedef struct {
+  ULONG  ReparseTag;
+  USHORT ReparseDataLength;
+  USHORT Reserved;
+  union {
+    MY_SYMLINK_REPARSE_BUFFER SymbolicLinkReparseBuffer;
+    MY_MOUNT_POINT_REPARSE_BUFFER MountPointReparseBuffer;
+    struct {
+      UCHAR DataBuffer[1];
+    } GenericReparseBuffer;
+  } Data;
+} MY_REPARSE_DATA_BUFFER, *PMY_REPARSE_DATA_BUFFER;
+
+#ifndef IO_REPARSE_TAG_SYMLINK
+#  define IO_REPARSE_TAG_SYMLINK                  (0xA000000CL)
+#endif
+#ifndef IO_REPARSE_TAG_AF_UNIX
+#  define IO_REPARSE_TAG_AF_UNIX 0x80000023
+#endif
+#ifndef IO_REPARSE_TAG_LX_FIFO
+#  define IO_REPARSE_TAG_LX_FIFO 0x80000024
+#endif
+#ifndef IO_REPARSE_TAG_LX_CHR
+#  define IO_REPARSE_TAG_LX_CHR  0x80000025
+#endif
+#ifndef IO_REPARSE_TAG_LX_BLK
+#  define IO_REPARSE_TAG_LX_BLK  0x80000026
+#endif
+
 static int
-win32_stat_low(HANDLE handle, const char *path, STRLEN len, Stat_t *sbuf) {
+win32_stat_low(HANDLE handle, const char *path, STRLEN len, Stat_t *sbuf,
+               DWORD reparse_type) {
     DWORD type = GetFileType(handle);
     BY_HANDLE_FILE_INFORMATION bhi;
 
     Zero(sbuf, 1, Stat_t);
 
+    if (reparse_type) {
+        /* Lie to get to the right place */
+        type = FILE_TYPE_DISK;
+    }
+
     type &= ~FILE_TYPE_REMOTE;
 
     switch (type) {
@@ -1571,7 +1641,35 @@ win32_stat_low(HANDLE handle, const char
             sbuf->st_mtime = translate_ft_to_time_t(bhi.ftLastWriteTime);
             sbuf->st_ctime = translate_ft_to_time_t(bhi.ftCreationTime);
 
-            if (bhi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+            if (reparse_type) {
+                /* https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/c8e77b37-3909-4fe6-a4ea-2b9d423b1ee4
+                   describes all of these as WSL only, but the AF_UNIX tag
+                   is known to be used for AF_UNIX sockets without WSL.
+                */
+                switch (reparse_type) {
+                case IO_REPARSE_TAG_AF_UNIX:
+                    sbuf->st_mode = _S_IFSOCK;
+                    break;
+
+                case IO_REPARSE_TAG_LX_FIFO:
+                    sbuf->st_mode = _S_IFIFO;
+                    break;
+
+                case IO_REPARSE_TAG_LX_CHR:
+                    sbuf->st_mode = _S_IFCHR;
+                    break;
+
+                case IO_REPARSE_TAG_LX_BLK:
+                    sbuf->st_mode = _S_IFBLK;
+                    break;
+
+                default:
+                    /* Is there anything else we can do here? */
+                    errno = EINVAL;
+                    return -1;
+                }
+            }
+            else if (bhi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
                 sbuf->st_mode = _S_IFDIR | _S_IREAD | _S_IEXEC;
                 /* duplicate the logic from the end of the old win32_stat() */
                 if (!(bhi.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
@@ -1638,6 +1736,122 @@ win32_stat_low(HANDLE handle, const char
     return 0;
 }
 
+/* https://docs.microsoft.com/en-us/windows/win32/fileio/reparse-points */
+#define SYMLINK_FOLLOW_LIMIT 63
+
+/*
+
+Given a pathname, required to be a symlink, follow it until we find a
+non-symlink path.
+
+This should only be called when the symlink() chain doesn't lead to a
+normal file, which should have been caught earlier.
+
+On success, returns a HANDLE to the target and sets *reparse_type to
+the ReparseTag of the target.
+
+Returns INVALID_HANDLE_VALUE on error, which might be that the symlink
+chain is broken, or requires too many links to resolve.
+
+*/
+
+static HANDLE
+S_follow_symlinks_to(pTHX_ const char *pathname, DWORD *reparse_type) {
+    char link_target[MAX_PATH];
+    SV *work_path = newSVpvn(pathname, strlen(pathname));
+    int link_count = 0;
+    int link_len;
+    HANDLE handle;
+
+    *reparse_type = 0;
+
+    while ((link_len = win32_readlink(SvPVX(work_path), link_target,
+                                      sizeof(link_target))) > 0) {
+        if (link_count++ >= SYMLINK_FOLLOW_LIMIT) {
+            /* Windows doesn't appear to ever return ELOOP,
+               let's do better ourselves
+            */
+            SvREFCNT_dec(work_path);
+            errno = ELOOP;
+            return INVALID_HANDLE_VALUE;
+        }
+        /* Adjust the linktarget based on the link source or current
+           directory as needed.
+        */
+        if (link_target[0] == '\\'
+            || link_target[0] == '/'
+            || (link_len >=2 && link_target[1] == ':')) {
+            /* link is absolute */
+            sv_setpvn(work_path, link_target, link_len);
+        }
+        else {
+            STRLEN work_len;
+            const char *workp = SvPV(work_path, work_len);
+            const char *final_bslash =
+                (const char *)my_memrchr(workp, '\\', work_len);
+            const char *final_slash =
+                (const char *)my_memrchr(workp, '/', work_len);
+            const char *path_sep = NULL;
+            if (final_bslash && final_slash)
+                path_sep = final_bslash > final_slash ? final_bslash : final_slash;
+            else if (final_bslash)
+                path_sep = final_bslash;
+            else if (final_slash)
+                path_sep = final_slash;
+
+            if (path_sep) {
+                SV *new_path = newSVpv(workp, path_sep - workp + 1);
+                sv_catpvn(new_path, link_target, link_len);
+                SvREFCNT_dec(work_path);
+                work_path = new_path;
+            }
+            else {
+                /* should only get here the first time around */
+                assert(link_count == 1);
+                char path_temp[MAX_PATH];
+                DWORD path_len = GetCurrentDirectoryA(sizeof(path_temp), path_temp);
+                if (!path_len || path_len > sizeof(path_temp)) {
+                    SvREFCNT_dec(work_path);
+                    errno = EINVAL;
+                    return INVALID_HANDLE_VALUE;
+                }
+
+                SV *new_path = newSVpvn(path_temp, path_len);
+                if (path_temp[path_len-1] != '\\') {
+                    sv_catpvs(new_path, "\\");
+                }
+                sv_catpvn(new_path, link_target, link_len);
+                SvREFCNT_dec(work_path);
+                work_path = new_path;
+            }
+        }
+    }
+
+    handle =
+        CreateFileA(SvPVX(work_path), GENERIC_READ, 0, NULL, OPEN_EXISTING,
+                    FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0);
+    SvREFCNT_dec(work_path);
+    if (handle != INVALID_HANDLE_VALUE) {
+        MY_REPARSE_DATA_BUFFER linkdata;
+        DWORD linkdata_returned;
+
+        if (!DeviceIoControl(handle, FSCTL_GET_REPARSE_POINT, NULL, 0,
+                             &linkdata, sizeof(linkdata),
+                             &linkdata_returned, NULL)) {
+            translate_to_errno();
+            CloseHandle(handle);
+            return INVALID_HANDLE_VALUE;
+        }
+        *reparse_type = linkdata.ReparseTag;
+        return handle;
+    }
+    else {
+        translate_to_errno();
+    }
+
+    return handle;
+}
+
 DllExport int
 win32_stat(const char *path, Stat_t *sbuf)
 {
@@ -1645,6 +1859,7 @@ win32_stat(const char *path, Stat_t *sbu
     BOOL        expect_dir = FALSE;
     int result;
     HANDLE handle;
+    DWORD reparse_type = 0;
 
     path = PerlDir_mapA(path);
 
@@ -1652,8 +1867,21 @@ win32_stat(const char *path, Stat_t *sbu
         CreateFileA(path, FILE_READ_ATTRIBUTES,
                     FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
                     NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
+    if (handle == INVALID_HANDLE_VALUE) {
+        /* AF_UNIX sockets need to be opened as a reparse point, but
+           that will also open symlinks rather than following them.
+
+           There may be other reparse points that need similar
+           treatment.
+        */
+        handle = S_follow_symlinks_to(aTHX_ path, &reparse_type);
+        if (handle == INVALID_HANDLE_VALUE) {
+            /* S_follow_symlinks_to() will set errno */
+            return -1;
+        }
+    }
     if (handle != INVALID_HANDLE_VALUE) {
-        result = win32_stat_low(handle, path, strlen(path), sbuf);
+        result = win32_stat_low(handle, path, strlen(path), sbuf, reparse_type);
         CloseHandle(handle);
     }
     else {
@@ -1706,52 +1934,6 @@ translate_to_errno(void)
     }
 }
 
-/* Adapted from:
-
-https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/ns-ntifs-_reparse_data_buffer
-
-Renamed to avoid conflicts, apparently some SDKs define this
-structure.
-
-Hoisted the symlink and mount point data into a new type to allow us
-to make a pointer to it, and to avoid C++ scoping issues.
-
-*/
-
-typedef struct {
-    USHORT SubstituteNameOffset;
-    USHORT SubstituteNameLength;
-    USHORT PrintNameOffset;
-    USHORT PrintNameLength;
-    ULONG  Flags;
-    WCHAR  PathBuffer[MAX_PATH*3];
-} MY_SYMLINK_REPARSE_BUFFER, *PMY_SYMLINK_REPARSE_BUFFER;
-
-typedef struct {
-    USHORT SubstituteNameOffset;
-    USHORT SubstituteNameLength;
-    USHORT PrintNameOffset;
-    USHORT PrintNameLength;
-    WCHAR  PathBuffer[MAX_PATH*3];
-} MY_MOUNT_POINT_REPARSE_BUFFER;
-
-typedef struct {
-  ULONG  ReparseTag;
-  USHORT ReparseDataLength;
-  USHORT Reserved;
-  union {
-    MY_SYMLINK_REPARSE_BUFFER SymbolicLinkReparseBuffer;
-    MY_MOUNT_POINT_REPARSE_BUFFER MountPointReparseBuffer;
-    struct {
-      UCHAR DataBuffer[1];
-    } GenericReparseBuffer;
-  } Data;
-} MY_REPARSE_DATA_BUFFER, *PMY_REPARSE_DATA_BUFFER;
-
-#ifndef IO_REPARSE_TAG_SYMLINK
-#  define IO_REPARSE_TAG_SYMLINK                  (0xA000000CL)
-#endif
-
 static BOOL
 is_symlink(HANDLE h) {
     MY_REPARSE_DATA_BUFFER linkdata;
@@ -1788,41 +1970,21 @@ is_symlink_name(const char *name) {
     return result;
 }
 
-DllExport int
-win32_readlink(const char *pathname, char *buf, size_t bufsiz) {
+static int
+do_readlink_handle(HANDLE hlink, char *buf, size_t bufsiz, bool *is_symlink) {
     MY_REPARSE_DATA_BUFFER linkdata;
-    HANDLE hlink;
-    DWORD fileattr = GetFileAttributes(pathname);
     DWORD linkdata_returned;
-    int bytes_out;
-    BOOL used_default;
-
-    if (fileattr == INVALID_FILE_ATTRIBUTES) {
-        translate_to_errno();
-        return -1;
-    }
 
-    if (!(fileattr & FILE_ATTRIBUTE_REPARSE_POINT)) {
-        /* not a symbolic link */
-        errno = EINVAL;
-        return -1;
-    }
-
-    hlink =
-        CreateFileA(pathname, GENERIC_READ, 0, NULL, OPEN_EXISTING,
-                    FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0);
-    if (hlink == INVALID_HANDLE_VALUE) {
-        translate_to_errno();
-        return -1;
-    }
+    if (is_symlink)
+        *is_symlink = FALSE;
 
     if (!DeviceIoControl(hlink, FSCTL_GET_REPARSE_POINT, NULL, 0, &linkdata, sizeof(linkdata), &linkdata_returned, NULL)) {
         translate_to_errno();
-        CloseHandle(hlink);
         return -1;
     }
-    CloseHandle(hlink);
 
+    int bytes_out;
+    BOOL used_default;
     switch (linkdata.ReparseTag) {
     case IO_REPARSE_TAG_SYMLINK:
         {
@@ -1834,9 +1996,11 @@ win32_readlink(const char *pathname, cha
             }
             bytes_out =
                 WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS,
-                                    sd->PathBuffer + sd->SubstituteNameOffset/2,
-                                    sd->SubstituteNameLength/2,
+                                    sd->PathBuffer + sd->PrintNameOffset/2,
+                                    sd->PrintNameLength/2,
                                     buf, (int)bufsiz, NULL, &used_default);
+            if (is_symlink)
+                *is_symlink = TRUE;
         }
         break;
     case IO_REPARSE_TAG_MOUNT_POINT:
@@ -1849,9 +2013,11 @@ win32_readlink(const char *pathname, cha
             }
             bytes_out =
                 WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS,
-                                    rd->PathBuffer + rd->SubstituteNameOffset/2,
-                                    rd->SubstituteNameLength/2,
+                                    rd->PathBuffer + rd->PrintNameOffset/2,
+                                    rd->PrintNameLength/2,
                                     buf, (int)bufsiz, NULL, &used_default);
+            if (is_symlink)
+                *is_symlink = TRUE;
         }
         break;
 
@@ -1865,6 +2031,47 @@ win32_readlink(const char *pathname, cha
         errno = EINVAL;
         return -1;
     }
+
+    return bytes_out;
+}
+
+DllExport int
+win32_readlink(const char *pathname, char *buf, size_t bufsiz) {
+    if (pathname == NULL || buf == NULL) {
+        errno = EFAULT;
+        return -1;
+    }
+    if (bufsiz <= 0) {
+        errno = EINVAL;
+        return -1;
+    }
+
+    DWORD fileattr = GetFileAttributes(pathname);
+    if (fileattr == INVALID_FILE_ATTRIBUTES) {
+        translate_to_errno();
+        return -1;
+    }
+
+    if (!(fileattr & FILE_ATTRIBUTE_REPARSE_POINT)) {
+        /* not a symbolic link */
+        errno = EINVAL;
+        return -1;
+    }
+
+    HANDLE hlink =
+        CreateFileA(pathname, GENERIC_READ, 0, NULL, OPEN_EXISTING,
+                    FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0);
+    if (hlink == INVALID_HANDLE_VALUE) {
+        translate_to_errno();
+        return -1;
+    }
+    int bytes_out = do_readlink_handle(hlink, buf, bufsiz, NULL);
+    CloseHandle(hlink);
+    if (bytes_out < 0) {
+        /* errno already set */
+        return -1;
+    }
+
     if ((size_t)bytes_out > bufsiz) {
         errno = EINVAL;
         return -1;
@@ -1895,18 +2102,25 @@ win32_lstat(const char *path, Stat_t *sb
         translate_to_errno();
         return -1;
     }
-
-    if (!is_symlink(f)) {
+    bool is_symlink;
+    int size = do_readlink_handle(f, NULL, 0, &is_symlink);
+    if (!is_symlink) {
+        /* it isn't a symlink, fallback to normal stat */
         CloseHandle(f);
         return win32_stat(path, sbuf);
     }
-
-    result = win32_stat_low(f, NULL, 0, sbuf);
-    CloseHandle(f);
+    else if (size < 0) {
+        /* some other error, errno already set */
+        CloseHandle(f);
+        return -1;
+    }
+    result = win32_stat_low(f, NULL, 0, sbuf, 0);
 
     if (result != -1){
         sbuf->st_mode = (sbuf->st_mode & ~_S_IFMT) | _S_IFLNK;
+        sbuf->st_size = size;
     }
+    CloseHandle(f);
 
     return result;
 }
@@ -2119,14 +2333,14 @@ win32_getenvironmentstrings(void)
     }
 
     /* Get the number of bytes required to store the ACP encoded string */
-    aenvstrings_len = WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS,
+    aenvstrings_len = WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, 
                                           lpWStr, wenvstrings_len, NULL, 0, NULL, NULL);
     lpTmp = lpStr = (char *)win32_calloc(aenvstrings_len, sizeof(char));
     if(!lpTmp)
         out_of_memory();
 
     /* Convert the string from UTF-16 encoding to ACP encoding */
-    WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, lpWStr, wenvstrings_len, lpStr,
+    WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, lpWStr, wenvstrings_len, lpStr, 
                         aenvstrings_len, NULL, NULL);
 
     FreeEnvironmentStringsW(lpWStr);
@@ -2268,12 +2482,14 @@ filetime_from_time(PFILETIME pFileTime, 
 {
     struct tm *pt;
     SYSTEMTIME st;
+    dTHX;
 
+    GMTIME_LOCK;
     pt = gmtime(&Time);
     if (!pt) {
+        GMTIME_UNLOCK;
         pFileTime->dwLowDateTime = 0;
         pFileTime->dwHighDateTime = 0;
-        fprintf(stderr, "fail bad gmtime\n");
         return FALSE;
     }
 
@@ -2285,6 +2501,8 @@ filetime_from_time(PFILETIME pFileTime, 
     st.wSecond = pt->tm_sec;
     st.wMilliseconds = 0;
 
+    GMTIME_UNLOCK;
+
     if (!SystemTimeToFileTime(&st, pFileTime)) {
         pFileTime->dwLowDateTime = 0;
         pFileTime->dwHighDateTime = 0;
@@ -2456,7 +2674,7 @@ win32_uname(struct utsname *name)
     {
         SYSTEM_INFO info;
         DWORD procarch;
-        char *arch;
+        const char *arch;
         GetSystemInfo(&info);
 
 #if (defined(__MINGW32__) && !defined(_ANONYMOUS_UNION) && !defined(__MINGW_EXTENSION))
@@ -2487,7 +2705,7 @@ win32_uname(struct utsname *name)
 /* Timing related stuff */
 
 int
-do_raise(pTHX_ int sig)
+do_raise(pTHX_ int sig) 
 {
     if (sig < SIG_SIZE) {
         Sighandler_t handler = w32_sighandler[sig];
@@ -2523,8 +2741,8 @@ void
 sig_terminate(pTHX_ int sig)
 {
     Perl_warn(aTHX_ "Terminating on signal SIG%s(%d)\n",PL_sig_name[sig], sig);
-    /* exit() seems to be safe, my_exit() or die() is a problem in ^C
-       thread
+    /* exit() seems to be safe, my_exit() or die() is a problem in ^C 
+       thread 
      */
     exit(sig);
 }
@@ -2535,7 +2753,7 @@ win32_async_check(pTHX)
     MSG msg;
     HWND hwnd = w32_message_hwnd;
 
-    /* Reset w32_poll_count before doing anything else, incase we dispatch
+    /* Reset w32_poll_count before doing anything else, in case we dispatch
      * messages that end up calling back into perl */
     w32_poll_count = 0;
 
@@ -2575,7 +2793,7 @@ win32_async_check(pTHX)
     /* Above or other stuff may have set a signal flag */
     if (PL_sig_pending)
         despatch_signals();
-
+    
     return 1;
 }
 
@@ -2819,7 +3037,7 @@ DllExport unsigned int
 win32_alarm(unsigned int sec)
 {
     /*
-     * the 'obvious' implentation is SetTimer() with a callback
+     * the 'obvious' implementation is SetTimer() with a callback
      * which does whatever receiving SIGALRM would do
      * we cannot use SIGALRM even via raise() as it is not
      * one of the supported codes in <signal.h>
@@ -3145,11 +3363,7 @@ win32_freopen(const char *path, const ch
 DllExport int
 win32_fclose(FILE *pf)
 {
-#ifdef WIN32_NO_SOCKETS
     return fclose(pf);
-#else
-    return my_fclose(pf);	/* defined in win32sck.c */
-#endif
 }
 
 DllExport int
@@ -3306,7 +3520,7 @@ win32_fstat(int fd, Stat_t *sbufptr)
 {
     HANDLE handle = (HANDLE)win32_get_osfhandle(fd);
 
-    return win32_stat_low(handle, NULL, 0, sbufptr);
+    return win32_stat_low(handle, NULL, 0, sbufptr, 0);
 }
 
 DllExport int
@@ -3543,6 +3757,24 @@ win32_symlink(const char *oldfile, const
     */
     newfile = PerlDir_mapA(newfile);
 
+    if (strchr(oldfile, '/')) {
+        /* Win32 (or perhaps NTFS) won't follow symlinks containing
+           /, so replace any with \\
+        */
+        char *temp = savepv(oldfile);
+        SAVEFREEPV(temp);
+        char *p = temp;
+        while (*p) {
+            if (*p == '/') {
+                *p = '\\';
+            }
+            ++p;
+        }
+        *p = 0;
+        oldfile = temp;
+        oldfile_len = p - temp;
+    }
+
     /* are we linking to a directory?
        CreateSymlinkA() needs to know if the target is a directory,
        If it looks like a directory name:
@@ -3560,7 +3792,6 @@ win32_symlink(const char *oldfile, const
         strEQ(oldfile, ".") ||
         (isSLASH(oldfile[oldfile_len-2]) && oldfile[oldfile_len-1] == '.') ||
         strEQ(oldfile+oldfile_len-3, "\\..") ||
-        strEQ(oldfile+oldfile_len-3, "/..") ||
         (oldfile_len == 2 && oldfile[1] == ':')) {
         create_flags |= SYMBOLIC_LINK_FLAG_DIRECTORY;
     }
@@ -3569,15 +3800,15 @@ win32_symlink(const char *oldfile, const
         const char *dest_path = oldfile;
         char szTargetName[MAX_PATH+1];
 
-        if (oldfile_len >= 3 && oldfile[1] == ':' && oldfile[2] != '\\' && oldfile[2] != '/') {
-            /* relative to current directory on a drive */
+        if (oldfile_len >= 3 && oldfile[1] == ':') {
+            /* relative to current directory on a drive, or absolute */
             /* dest_path = oldfile; already done */
         }
-        else if (oldfile[0] != '\\' && oldfile[0] != '/') {
+        else if (oldfile[0] != '\\') {
             size_t newfile_len = strlen(newfile);
-            char *last_slash = strrchr(newfile, '/');
-            char *last_bslash = strrchr(newfile, '\\');
-            char *end_dir = last_slash && last_bslash
+            const char *last_slash = strrchr(newfile, '/');
+            const char *last_bslash = strrchr(newfile, '\\');
+            const char *end_dir = last_slash && last_bslash
                 ? ( last_slash > last_bslash ? last_slash : last_bslash)
                 : last_slash ? last_slash : last_bslash ? last_bslash : NULL;
 
@@ -3733,17 +3964,10 @@ win32_open(const char *path, int flag, .
     return open(PerlDir_mapA(path), flag, pmode);
 }
 
-/* close() that understands socket */
-extern int my_close(int);	/* in win32sck.c */
-
 DllExport int
 win32_close(int fd)
 {
-#ifdef WIN32_NO_SOCKETS
-    return close(fd);
-#else
-    return my_close(fd);
-#endif
+    return _close(fd);
 }
 
 DllExport int
@@ -3900,7 +4124,7 @@ win32_read(int fd, void *buf, unsigned i
     int ret;
     if (UNLIKELY(win32_isatty(fd) && GetConsoleCP() == 65001)) {
         MUTEX_LOCK(&win32_read_console_mutex);
-        ret = win32_read_console(fd, buf, cnt);
+        ret = win32_read_console(fd, (U8 *)buf, cnt);
         MUTEX_UNLOCK(&win32_read_console_mutex);
     }
     else
@@ -4809,7 +5033,7 @@ void
 Perl_init_os_extras(void)
 {
     dTHXa(NULL);
-    char *file = __FILE__;
+    const char *file = __FILE__;
 
     /* Initialize Win32CORE if it has been statically linked. */
 #ifndef PERL_IS_MINIPERL
@@ -4996,6 +5220,197 @@ ansify_path(void)
     win32_free(wide_path);
 }
 
+/* This hooks a function that is imported by the specified module. The hook is
+ * local to that module. */
+static bool
+win32_hook_imported_function_in_module(
+    HMODULE module, LPCSTR fun_name, FARPROC hook_ptr
+)
+{
+    ULONG_PTR image_base = (ULONG_PTR)module;
+    PIMAGE_DOS_HEADER dos_header = (PIMAGE_DOS_HEADER)image_base;
+    PIMAGE_NT_HEADERS nt_headers
+        = (PIMAGE_NT_HEADERS)(image_base + dos_header->e_lfanew);
+    PIMAGE_OPTIONAL_HEADER opt_header = &nt_headers->OptionalHeader;
+
+    PIMAGE_DATA_DIRECTORY data_dir = opt_header->DataDirectory;
+    DWORD data_dir_len = opt_header->NumberOfRvaAndSizes;
+
+    BOOL is_idt_present = data_dir_len > IMAGE_DIRECTORY_ENTRY_IMPORT
+        && data_dir[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress != 0;
+
+    if (!is_idt_present)
+        return FALSE;
+
+    BOOL found = FALSE;
+
+    /* Import Directory Table */
+    PIMAGE_IMPORT_DESCRIPTOR idt = (PIMAGE_IMPORT_DESCRIPTOR)(
+        image_base + data_dir[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress
+    );
+
+    for (; idt->Name != 0; ++idt) {
+        /* Import Lookup Table */
+        PIMAGE_THUNK_DATA ilt
+            = (PIMAGE_THUNK_DATA)(image_base + idt->OriginalFirstThunk);
+        /* Import Address Table */
+        PIMAGE_THUNK_DATA iat
+            = (PIMAGE_THUNK_DATA)(image_base + idt->FirstThunk);
+
+        ULONG_PTR address_of_data;
+        for (; address_of_data = ilt->u1.AddressOfData; ++ilt, ++iat) {
+            /* Ordinal imports are quite rare, so skipping them will most likely
+             * not cause any problems. */
+            BOOL is_ordinal
+                = address_of_data >> ((sizeof(address_of_data) * 8) - 1);
+
+            if (is_ordinal)
+                continue;
+
+            LPCSTR name = (
+                (PIMAGE_IMPORT_BY_NAME)(image_base + address_of_data)
+            )->Name;
+
+            if (strEQ(name, fun_name)) {
+                DWORD old_protect = 0;
+                BOOL succ = VirtualProtect(
+                    &iat->u1.Function, sizeof(iat->u1.Function), PAGE_READWRITE,
+                    &old_protect
+                );
+                if (!succ)
+                    return FALSE;
+
+                iat->u1.Function = (ULONG_PTR)hook_ptr;
+                found = TRUE;
+
+                VirtualProtect(
+                    &iat->u1.Function, sizeof(iat->u1.Function), old_protect,
+                    &old_protect
+                );
+                break;
+            }
+        }
+    }
+
+    return found;
+}
+
+typedef NTSTATUS (NTAPI *pNtQueryInformationFile_t)(HANDLE, PIO_STATUS_BLOCK, PVOID, ULONG, ULONG);
+pNtQueryInformationFile_t pNtQueryInformationFile = NULL;
+
+typedef BOOL (WINAPI *pCloseHandle)(HANDLE h);
+static pCloseHandle CloseHandle_orig;
+
+/* CloseHandle() that supports sockets. CRT uses mutexes during file operations,
+ * so the lack of thread safety in this function isn't a problem. */
+static BOOL WINAPI
+my_CloseHandle(HANDLE h)
+{
+    /* In theory, passing a non-socket handle to closesocket() is fine. It
+     * should return a WSAENOTSOCK error, which is easy to recover from.
+     * However, we should avoid doing that because it's not that simple in
+     * practice. For instance, it can deadlock on a handle to a stuck pipe (see:
+     * https://github.com/Perl/perl5/issues/19963).
+     *
+     * There's no foolproof way to tell if a handle is a socket (mostly because
+     * of the non-IFS sockets), but in some cases we can tell if a handle
+     * is definitely *not* a socket.
+     */
+
+    /* GetFileType() always returns FILE_TYPE_PIPE for sockets. */
+    BOOL maybe_socket = (GetFileType(h) == FILE_TYPE_PIPE);
+
+    if (maybe_socket && pNtQueryInformationFile) {
+        IO_STATUS_BLOCK isb;
+        struct {
+            ULONG name_len;
+            WCHAR name[100];
+        } volume = {0};
+
+        /* There are many ways to tell a named pipe from a socket, but almost
+         * all of them can deadlock on a handle to a stuck pipe (like in the
+         * bug ticket mentioned above). According to my tests,
+         * FileVolumeNameInfomation is the only relevant function that doesn't
+         * suffer from this problem.
+         *
+         * It's undocumented and it requires Windows 10, so on older systems
+         * we always pass pipes to closesocket().
+         */
+        NTSTATUS s = pNtQueryInformationFile(
+            h, &isb, &volume, sizeof(volume), 58 /* FileVolumeNameInformation */
+        );
+        if (NT_SUCCESS(s)) {
+            maybe_socket = (_wcsnicmp(
+                volume.name, L"\\Device\\NamedPipe", C_ARRAY_LENGTH(volume.name)
+            ) != 0);
+        }
+    }
+
+    if (maybe_socket)
+        if (closesocket((SOCKET)h) == 0)
+            return TRUE;
+        else if (WSAGetLastError() != WSAENOTSOCK)
+            return FALSE;
+
+    return CloseHandle_orig(h);
+}
+
+/* Hook CloseHandle() inside CRT so its functions like _close() or
+ * _dup2() can close sockets properly. */
+static void
+win32_hook_closehandle_in_crt()
+{
+    /* Get the handle to the CRT module basing on the address of _close()
+     * function. */
+    HMODULE crt_handle;
+    BOOL succ = GetModuleHandleExA(
+        GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
+        | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCSTR)_close,
+        &crt_handle
+    );
+    if (!succ)
+        return;
+
+    CloseHandle_orig = (pCloseHandle)GetProcAddress(
+        GetModuleHandleA("kernel32.dll"), "CloseHandle"
+    );
+    if (!CloseHandle_orig)
+        return;
+
+    win32_hook_imported_function_in_module(
+        crt_handle, "CloseHandle", (FARPROC)my_CloseHandle
+    );
+
+    pNtQueryInformationFile = (pNtQueryInformationFile_t)GetProcAddress(
+        GetModuleHandleA("ntdll.dll"), "NtQueryInformationFile"
+    );
+}
+
+/* Remove the hook installed by win32_hook_closehandle_crt(). This is needed in
+ * case the Perl DLL is unloaded, which would cause the hook become invalid.
+ * This can happen in embedded Perls, for example in mod_perl. */
+static void
+win32_unhook_closehandle_in_crt()
+{
+    if (!CloseHandle_orig)
+        return;
+
+    HMODULE crt_handle;
+    BOOL succ = GetModuleHandleExA(
+        GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
+        | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCSTR)_close,
+        &crt_handle
+    );
+    if (!succ)
+        return;
+
+    win32_hook_imported_function_in_module(
+        crt_handle, "CloseHandle", (FARPROC)CloseHandle_orig
+    );
+
+    CloseHandle_orig = NULL;
+}
+
 void
 Perl_win32_init(int *argcp, char ***argvp)
 {
@@ -5026,20 +5441,13 @@ Perl_win32_init(int *argcp, char ***argv
      */
     InitCommonControls();
 
+    WSADATA wsadata;
+    WSAStartup(MAKEWORD(2, 2), &wsadata);
+
     g_osver.dwOSVersionInfoSize = sizeof(g_osver);
     GetVersionEx(&g_osver);
 
-#ifdef WIN32_DYN_IOINFO_SIZE
-    {
-        Size_t ioinfo_size = _msize((void*)__pioinfo[0]);;
-        if((SSize_t)ioinfo_size <= 0) { /* -1 is err */
-            fprintf(stderr, "panic: invalid size for ioinfo\n"); /* no interp */
-            exit(1);
-        }
-        ioinfo_size /= IOINFO_ARRAY_ELTS;
-        w32_ioinfo_size = ioinfo_size;
-    }
-#endif
+    win32_hook_closehandle_in_crt();
 
     ansify_path();
 
@@ -5087,6 +5495,7 @@ Perl_win32_term(void)
     RegCloseKey(HKCU_Perl_hnd);
     /* the handles are in an undefined state until the next PERL_SYS_INIT3 */
 #endif
+    win32_unhook_closehandle_in_crt();
 }
 
 void
Index: gnu/usr.bin/perl/win32/win32.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/win32.h,v
diff -u -p -a -u -p -r1.19 win32.h
--- gnu/usr.bin/perl/win32/win32.h	15 Feb 2023 01:36:37 -0000	1.19
+++ gnu/usr.bin/perl/win32/win32.h	21 Feb 2024 15:47:03 -0000
@@ -15,45 +15,16 @@
 
 /* Win32 only optimizations for faster building */
 #ifdef PERL_IS_MINIPERL
-/* this macro will remove Winsock only on miniperl, PERL_IMPLICIT_SYS and
- * makedef.pl create dependencies that will keep Winsock linked in even with
- * this macro defined, even though sockets will be umimplemented from a script
- * level in full perl
- */
-#  define WIN32_NO_SOCKETS
 /* less I/O calls during each require */
 #  define PERL_DISABLE_PMC
 
-/* unnecessery for miniperl to lookup anything from an "installed" perl */
+/* unnecessary for miniperl to lookup anything from an "installed" perl */
 #  define WIN32_NO_REGISTRY
 
 /* allow minitest to work */
 #  define PERL_TEXTMODE_SCRIPTS
 #endif
 
-#ifdef WIN32_NO_SOCKETS
-#  undef HAS_SOCKET
-#  undef HAS_GETPROTOBYNAME
-#  undef HAS_GETPROTOBYNUMBER
-#  undef HAS_GETPROTOENT
-#  undef HAS_GETNETBYNAME
-#  undef HAS_GETNETBYADDR
-#  undef HAS_GETNETENT
-#  undef HAS_GETSERVBYNAME
-#  undef HAS_GETSERVBYPORT
-#  undef HAS_GETSERVENT
-#  undef HAS_GETHOSTBYNAME
-#  undef HAS_GETHOSTBYADDR
-#  undef HAS_GETHOSTENT
-#  undef HAS_SELECT
-#  undef HAS_IOCTL
-#  undef HAS_NTOHL
-#  undef HAS_HTONL
-#  undef HAS_HTONS
-#  undef HAS_NTOHS
-#  define WIN32SCK_IS_STDSCK
-#endif
-
 #if defined(PERL_IMPLICIT_SYS)
 #  define DYNAMIC_ENV_FETCH
 #  define HAS_GETENV_LEN
@@ -233,10 +204,10 @@ struct utsname {
 
 /* access() mode bits */
 #ifndef R_OK
-#  define	R_OK	4
-#  define	W_OK	2
-#  define	X_OK	1
-#  define	F_OK	0
+#  define R_OK  4
+#  define W_OK  2
+#  define X_OK  1
+#  define F_OK  0
 #endif
 
 /* for waitpid() */
@@ -284,8 +255,8 @@ MSVC_DIAG_RESTORE
    importing __PL_nan_u across DLL boundaries in size in the importing DLL
    will be more than the 8 bytes it will take up being in each XS DLL if
    that DLL actually uses __PL_nan_u */
-extern const __declspec(selectany) union { unsigned __int64 __q; double __d; }
-__PL_nan_u = { 0x7FF8000000000000UI64 };
+union PerlNan { unsigned __int64 __q; double __d; };
+extern const __declspec(selectany) union PerlNan __PL_nan_u = { 0x7FF8000000000000UI64 };
 #define NV_NAN ((NV)__PL_nan_u.__d)
 
 /* The CRT was rewritten in VS2015. */
@@ -455,7 +426,6 @@ DllExport void		win32_get_child_IO(child
 DllExport HWND		win32_create_message_window(void);
 DllExport int		win32_async_check(pTHX);
 
-extern int		my_fclose(FILE *);
 extern char *		win32_get_privlib(WIN32_NO_REGISTRY_M_(const char *pl) STRLEN *const len);
 extern char *		win32_get_sitelib(const char *pl, STRLEN *const len);
 extern char *		win32_get_vendorlib(const char *pl, STRLEN *const len);
@@ -595,83 +565,6 @@ void win32_wait_for_children(pTHX);
 #  define PERL_WAIT_FOR_CHILDREN win32_wait_for_children(aTHX)
 #endif
 
-/* The following ioinfo struct manipulations had been removed but were
- * reinstated to fix RT#120091/118059. However, they do not work with
- * the rewritten CRT in VS2015 so they are removed once again for VS2015
- * onwards, which will therefore suffer from the reintroduction of the
- * close socket bug. */
-#if (!defined(_MSC_VER)) || (defined(_MSC_VER) && _MSC_VER < 1900)
-
-#ifdef PERL_CORE
-
-/* C doesn't like repeat struct definitions */
-#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION>=3)
-#  undef _CRTIMP
-#endif
-#ifndef _CRTIMP
-#  define _CRTIMP __declspec(dllimport)
-#endif
-
-#ifndef __MINGW32__
-/* size of ioinfo struct is determined at runtime */
-#  define WIN32_DYN_IOINFO_SIZE
-#endif
-
-#ifndef WIN32_DYN_IOINFO_SIZE
-/*
- * Control structure for lowio file handles
- */
-typedef struct {
-    intptr_t osfhnd;/* underlying OS file HANDLE */
-    char osfile;    /* attributes of file (e.g., open in text mode?) */
-    char pipech;    /* one char buffer for handles opened on pipes */
-    int lockinitflag;
-    CRITICAL_SECTION lock;
-} ioinfo;
-#else
-typedef intptr_t ioinfo;
-#endif
-
-/*
- * Array of arrays of control structures for lowio files.
- */
-EXTERN_C _CRTIMP ioinfo* __pioinfo[];
-
-/*
- * Definition of IOINFO_L2E, the log base 2 of the number of elements in each
- * array of ioinfo structs.
- */
-#define IOINFO_L2E	    5
-
-/*
- * Definition of IOINFO_ARRAY_ELTS, the number of elements in ioinfo array
- */
-#define IOINFO_ARRAY_ELTS   (1 << IOINFO_L2E)
-
-/*
- * Access macros for getting at an ioinfo struct and its fields from a
- * file handle
- */
-#ifdef WIN32_DYN_IOINFO_SIZE
-#  define _pioinfo(i) ((intptr_t *) \
-     (((Size_t)__pioinfo[(i) >> IOINFO_L2E])/* * to head of array ioinfo [] */\
-      /* offset to the head of a particular ioinfo struct */ \
-      + (((i) & (IOINFO_ARRAY_ELTS - 1)) * w32_ioinfo_size)) \
-   )
-/* first slice of ioinfo is always the OS handle */
-#  define _osfhnd(i)  (*(_pioinfo(i)))
-#else
-#  define _pioinfo(i) (__pioinfo[(i) >> IOINFO_L2E] + ((i) & (IOINFO_ARRAY_ELTS - 1)))
-#  define _osfhnd(i)  (_pioinfo(i)->osfhnd)
-#endif
-
-/* since we are not doing a dup2(), this works fine */
-#define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = (intptr_t)osfh)
-
-#endif /* PERL_CORE */
-
-#endif /* !defined(_MSC_VER) || _MSC_VER<1900 */
-
 /* IO.xs and POSIX.xs define PERLIO_NOT_STDIO to 1 */
 #if defined(PERL_EXT_IO) || defined(PERL_EXT_POSIX)
 #undef  PERLIO_NOT_STDIO
@@ -694,11 +587,20 @@ DllExport void *win32_signal_context(voi
 
 /* ucrt at least seems to allocate a whole bit per type,
    just mask off one bit from the mask for our symlink
-   file type.
+   and socket file types.
 */
-#define _S_IFLNK ((unsigned)(_S_IFMT ^ (_S_IFMT & -_S_IFMT)))
+#define _S_IFLNK ((unsigned)(_S_IFDIR | _S_IFCHR))
+#define _S_IFSOCK ((unsigned)(_S_IFDIR | _S_IFIFO))
+/* mingw64 defines _S_IFBLK to 0x3000 which is _S_IFDIR | _S_IFIFO */
+#ifndef _S_IFBLK
+#  define _S_IFBLK ((unsigned)(_S_IFCHR | _S_IFIFO))
+#endif
 #undef S_ISLNK
 #define S_ISLNK(mode) (((mode) & _S_IFMT) == _S_IFLNK)
+#undef S_ISSOCK
+#define S_ISSOCK(mode) (((mode) & _S_IFMT) == _S_IFSOCK)
+#undef S_ISBLK
+#define S_ISBLK(mode) (((mode) & _S_IFMT) == _S_IFBLK)
 
 /*
 
Index: gnu/usr.bin/perl/win32/win32iop.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/win32iop.h,v
diff -u -p -a -u -p -r1.16 win32iop.h
--- gnu/usr.bin/perl/win32/win32iop.h	15 Feb 2023 01:36:37 -0000	1.16
+++ gnu/usr.bin/perl/win32/win32iop.h	21 Feb 2024 15:47:03 -0000
@@ -200,7 +200,7 @@ END_EXTERN_C
 
 #define stderr				win32_stderr()
 #define stdout				win32_stdout()
-#define	stdin				win32_stdin()
+#define stdin                           win32_stdin()
 #define feof(f)				win32_feof(f)
 #define ferror(f)			win32_ferror(f)
 #define errno 				(*win32_errno())
@@ -210,17 +210,17 @@ END_EXTERN_C
  * redirect to our own version
  */
 #undef fprintf
-#define	fprintf			win32_fprintf
-#define	vfprintf		win32_vfprintf
-#define	printf			win32_printf
-#define	vprintf			win32_vprintf
+#define fprintf                 win32_fprintf
+#define vfprintf                win32_vfprintf
+#define printf                  win32_printf
+#define vprintf                 win32_vprintf
 #define fread(buf,size,count,f)	win32_fread(buf,size,count,f)
 #define fwrite(buf,size,count,f)	win32_fwrite(buf,size,count,f)
 #define fopen			win32_fopen
 #undef fdopen
 #define fdopen			win32_fdopen
 #define freopen			win32_freopen
-#define	fclose(f)		win32_fclose(f)
+#define fclose(f)               win32_fclose(f)
 #define fputs(s,f)		win32_fputs(s,f)
 #define fputc(c,f)		win32_fputc(c,f)
 #define ungetc(c,f)		win32_ungetc(c,f)
Index: gnu/usr.bin/perl/win32/win32sck.c
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/win32sck.c,v
diff -u -p -a -u -p -r1.20 win32sck.c
--- gnu/usr.bin/perl/win32/win32sck.c	15 Feb 2023 01:36:37 -0000	1.20
+++ gnu/usr.bin/perl/win32/win32sck.c	21 Feb 2024 15:47:03 -0000
@@ -33,15 +33,8 @@
 #define OPEN_SOCKET(x)	win32_open_osfhandle(x,O_RDWR|O_BINARY)
 #define TO_SOCKET(x)	_get_osfhandle(x)
 
-#define StartSockets() \
-    STMT_START {					\
-        if (!wsock_started)				\
-            start_sockets();				\
-    } STMT_END
-
 #define SOCKET_TEST(x, y) \
     STMT_START {					\
-        StartSockets();					\
         if((x) == (y))					\
             {						\
             int wsaerr = WSAGetLastError();		\
@@ -56,8 +49,6 @@ static struct servent* win32_savecopyser
                                              struct servent*s,
                                              const char *proto);
 
-static int wsock_started = 0;
-
 #ifdef WIN32_DYN_IOINFO_SIZE
 EXTERN_C Size_t w32_ioinfo_size;
 #endif
@@ -65,8 +56,7 @@ EXTERN_C Size_t w32_ioinfo_size;
 EXTERN_C void
 EndSockets(void)
 {
-    if (wsock_started)
-        WSACleanup();
+    WSACleanup();
 }
 
 /* Translate WSAExxx values to corresponding Exxx values where possible. Not all
@@ -326,63 +316,27 @@ convert_errno_to_wsa_error(int err)
 }
 #endif /* ERRNO_HAS_POSIX_SUPPLEMENT */
 
-void
-start_sockets(void) 
-{
-    unsigned short version;
-    WSADATA retdata;
-    int ret;
-
-    /*
-     * initalize the winsock interface and insure that it is
-     * cleaned up at exit.
-     */
-    version = 0x2;
-    if(ret = WSAStartup(version, &retdata))
-        Perl_croak_nocontext("Unable to locate winsock library!\n");
-    if(retdata.wVersion != version)
-        Perl_croak_nocontext("Could not find version 2.0 of winsock dll\n");
-
-    /* atexit((void (*)(void)) EndSockets); */
-    wsock_started = 1;
-}
-
-/* in no sockets Win32 builds, these use the inline functions defined in
- * perl.h
- */
 u_long
 win32_htonl(u_long hostlong)
 {
-#ifndef WIN32_NO_SOCKETS
-    StartSockets();
-#endif
     return htonl(hostlong);
 }
 
 u_short
 win32_htons(u_short hostshort)
 {
-#ifndef WIN32_NO_SOCKETS
-    StartSockets();
-#endif
     return htons(hostshort);
 }
 
 u_long
 win32_ntohl(u_long netlong)
 {
-#ifndef WIN32_NO_SOCKETS
-    StartSockets();
-#endif
     return ntohl(netlong);
 }
 
 u_short
 win32_ntohs(u_short netshort)
 {
-#ifndef WIN32_NO_SOCKETS
-    StartSockets();
-#endif
     return ntohs(netshort);
 }
 
@@ -495,8 +449,6 @@ win32_select(int nfds, Perl_fd_set* rd, 
     FD_SET nrd, nwr, nex;
     bool just_sleep = TRUE;
 
-    StartSockets();
-
     FD_ZERO(&nrd);
     FD_ZERO(&nwr);
     FD_ZERO(&nex);
@@ -668,8 +620,6 @@ win32_socket(int af, int type, int proto
 {
     SOCKET s;
 
-    StartSockets();
-
     if((s = open_ifs_socket(af, type, protocol)) == INVALID_SOCKET)
         {
         int wsaerr = WSAGetLastError();
@@ -682,84 +632,6 @@ win32_socket(int af, int type, int proto
     return s;
 }
 
-/*
- * close RTL fd while respecting sockets
- * added as temporary measure until PerlIO has real
- * Win32 native layer
- *   -- BKS, 11-11-2000
-*/
-
-int my_close(int fd)
-{
-    int osf;
-    if (!wsock_started)		/* No WinSock? */
-        return(close(fd));	/* Then not a socket. */
-    osf = TO_SOCKET(fd);/* Get it now before it's gone! */
-    if (osf != -1) {
-        int err;
-        err = closesocket(osf);
-        if (err == 0) {
-#ifdef _set_osfhnd
-            assert(_osfhnd(fd) == osf); /* catch a bad ioinfo struct def */
-            /* don't close freed handle */
-            _set_osfhnd(fd, INVALID_HANDLE_VALUE);
-            return close(fd);
-#else
-            (void)close(fd);    /* handle already closed, ignore error */
-            return 0;
-#endif
-        }
-        else if (err == SOCKET_ERROR) {
-            int wsaerr = WSAGetLastError();
-            err = convert_wsa_error_to_errno(wsaerr);
-            if (err != ENOTSOCK) {
-                (void)close(fd);
-                errno = err;
-                SetLastError(wsaerr);
-                return EOF;
-            }
-        }
-    }
-    return close(fd);
-}
-
-#undef fclose
-int
-my_fclose (FILE *pf)
-{
-    int osf;
-    if (!wsock_started)		/* No WinSock? */
-        return(fclose(pf));	/* Then not a socket. */
-    osf = TO_SOCKET(win32_fileno(pf));/* Get it now before it's gone! */
-    if (osf != -1) {
-        int err;
-        win32_fflush(pf);
-        err = closesocket(osf);
-        if (err == 0) {
-#ifdef _set_osfhnd
-            assert(_osfhnd(win32_fileno(pf)) == osf); /* catch a bad ioinfo struct def */
-            /* don't close freed handle */
-            _set_osfhnd(win32_fileno(pf), INVALID_HANDLE_VALUE);
-            return fclose(pf);
-#else
-            (void)fclose(pf);   /* handle already closed, ignore error */
-            return 0;
-#endif
-        }
-        else if (err == SOCKET_ERROR) {
-            int wsaerr = WSAGetLastError();
-            err = convert_wsa_error_to_errno(wsaerr);
-            if (err != ENOTSOCK) {
-                (void)fclose(pf);
-                errno = err;
-                SetLastError(wsaerr);
-                return EOF;
-            }
-        }
-    }
-    return fclose(pf);
-}
-
 struct hostent *
 win32_gethostbyaddr(const char *addr, int len, int type)
 {
@@ -839,11 +711,6 @@ win32_ioctl(int i, unsigned int u, char 
     u_long u_long_arg; 
     int retval;
     
-    if (!wsock_started) {
-        Perl_croak_nocontext("ioctl implemented only on sockets");
-        /* NOTREACHED */
-    }
-
     /* mauke says using memcpy avoids alignment issues */
     memcpy(&u_long_arg, data, sizeof u_long_arg); 
     retval = ioctlsocket(TO_SOCKET(i), (long)u, &u_long_arg);
@@ -865,14 +732,12 @@ win32_ioctl(int i, unsigned int u, char 
 char FAR *
 win32_inet_ntoa(struct in_addr in)
 {
-    StartSockets();
     return inet_ntoa(in);
 }
 
 unsigned long
 win32_inet_addr(const char FAR *cp)
 {
-    StartSockets();
     return inet_addr(cp);
 }
 
@@ -967,6 +832,8 @@ win32_setservent(int stayopen)
     win32_croak_not_implemented("setservent");
 }
 
+static char tcp_proto[] = "tcp";
+
 static struct servent*
 win32_savecopyservent(struct servent*d, struct servent*s, const char *proto)
 {
@@ -979,7 +846,7 @@ win32_savecopyservent(struct servent*d, 
     if (proto && strlen(proto))
         d->s_proto = (char *)proto;
     else
-        d->s_proto = "tcp";
+        d->s_proto = tcp_proto;
    
     return d;
 }
Index: gnu/usr.bin/perl/win32/include/sys/socket.h
===================================================================
RCS file: /home/afresh1/OpenBSD-perl/OP/cvs/src/gnu/usr.bin/perl/win32/include/sys/socket.h,v
diff -u -p -a -u -p -r1.12 socket.h
--- gnu/usr.bin/perl/win32/include/sys/socket.h	15 Feb 2023 01:36:38 -0000	1.12
+++ gnu/usr.bin/perl/win32/include/sys/socket.h	21 Feb 2024 15:47:03 -0000
@@ -35,7 +35,7 @@ extern "C" {
 #endif
 
 #define PERL_BITS_PER_BYTE	8
-#define	PERL_NFDBITS		(sizeof(Perl_fd_mask)*PERL_BITS_PER_BYTE)
+#define PERL_NFDBITS            (sizeof(Perl_fd_mask)*PERL_BITS_PER_BYTE)
 
 typedef int			Perl_fd_mask;
 
Index: distrib/sets//lists/base/md.alpha
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.alpha,v
retrieving revision 1.1169
diff -u -p -r1.1169 md.alpha
--- distrib/sets//lists/base/md.alpha	18 Feb 2024 00:02:52 -0000	1.1169
+++ distrib/sets//lists/base/md.alpha	21 Feb 2024 15:53:45 -0000
@@ -73,6 +73,7 @@
 ./usr/libdata/perl5/alpha-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/alpha-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/perly.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/pp.h
@@ -81,10 +82,13 @@
 ./usr/libdata/perl5/alpha-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/alpha-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/regexp.h
+./usr/libdata/perl5/alpha-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/scope.h
+./usr/libdata/perl5/alpha-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/sv.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/alpha-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.amd64
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.amd64,v
retrieving revision 1.900
diff -u -p -r1.900 md.amd64
--- distrib/sets//lists/base/md.amd64	26 Jan 2024 18:57:06 -0000	1.900
+++ distrib/sets//lists/base/md.amd64	21 Feb 2024 15:53:45 -0000
@@ -78,6 +78,7 @@
 ./usr/libdata/perl5/amd64-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/amd64-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/perly.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/pp.h
@@ -86,10 +87,13 @@
 ./usr/libdata/perl5/amd64-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/amd64-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/regexp.h
+./usr/libdata/perl5/amd64-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/scope.h
+./usr/libdata/perl5/amd64-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/sv.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/amd64-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.arm64
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.arm64,v
retrieving revision 1.44
diff -u -p -r1.44 md.arm64
--- distrib/sets//lists/base/md.arm64	26 Jan 2024 18:57:07 -0000	1.44
+++ distrib/sets//lists/base/md.arm64	21 Feb 2024 15:53:45 -0000
@@ -73,6 +73,7 @@
 ./usr/libdata/perl5/aarch64-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/aarch64-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/perly.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/pp.h
@@ -81,10 +82,13 @@
 ./usr/libdata/perl5/aarch64-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/aarch64-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/regexp.h
+./usr/libdata/perl5/aarch64-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/scope.h
+./usr/libdata/perl5/aarch64-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/sv.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/aarch64-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.armv7
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.armv7,v
retrieving revision 1.306
diff -u -p -r1.306 md.armv7
--- distrib/sets//lists/base/md.armv7	26 Jan 2024 18:57:07 -0000	1.306
+++ distrib/sets//lists/base/md.armv7	21 Feb 2024 15:53:45 -0000
@@ -73,6 +73,7 @@
 ./usr/libdata/perl5/arm-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/arm-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/arm-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/arm-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/arm-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/arm-openbsd/CORE/perly.h
 ./usr/libdata/perl5/arm-openbsd/CORE/pp.h
@@ -81,10 +82,13 @@
 ./usr/libdata/perl5/arm-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/arm-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/arm-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/arm-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/arm-openbsd/CORE/regexp.h
+./usr/libdata/perl5/arm-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/arm-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/arm-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/arm-openbsd/CORE/scope.h
+./usr/libdata/perl5/arm-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/arm-openbsd/CORE/sv.h
 ./usr/libdata/perl5/arm-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/arm-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.hppa
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.hppa,v
retrieving revision 1.938
diff -u -p -r1.938 md.hppa
--- distrib/sets//lists/base/md.hppa	18 Feb 2024 00:02:52 -0000	1.938
+++ distrib/sets//lists/base/md.hppa	21 Feb 2024 15:53:45 -0000
@@ -75,6 +75,7 @@
 ./usr/libdata/perl5/hppa-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/hppa-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/perly.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/pp.h
@@ -83,10 +84,13 @@
 ./usr/libdata/perl5/hppa-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/hppa-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/regexp.h
+./usr/libdata/perl5/hppa-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/scope.h
+./usr/libdata/perl5/hppa-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/sv.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/hppa-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.i386
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.i386,v
retrieving revision 1.1275
diff -u -p -r1.1275 md.i386
--- distrib/sets//lists/base/md.i386	26 Jan 2024 18:57:07 -0000	1.1275
+++ distrib/sets//lists/base/md.i386	21 Feb 2024 15:53:45 -0000
@@ -80,6 +80,7 @@
 ./usr/libdata/perl5/i386-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/i386-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/i386-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/i386-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/i386-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/i386-openbsd/CORE/perly.h
 ./usr/libdata/perl5/i386-openbsd/CORE/pp.h
@@ -88,10 +89,13 @@
 ./usr/libdata/perl5/i386-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/i386-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/i386-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/i386-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/i386-openbsd/CORE/regexp.h
+./usr/libdata/perl5/i386-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/i386-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/i386-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/i386-openbsd/CORE/scope.h
+./usr/libdata/perl5/i386-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/i386-openbsd/CORE/sv.h
 ./usr/libdata/perl5/i386-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/i386-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.landisk
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.landisk,v
retrieving revision 1.633
diff -u -p -r1.633 md.landisk
--- distrib/sets//lists/base/md.landisk	18 Feb 2024 00:02:52 -0000	1.633
+++ distrib/sets//lists/base/md.landisk	21 Feb 2024 15:53:45 -0000
@@ -72,6 +72,7 @@
 ./usr/libdata/perl5/sh-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/sh-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/sh-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/sh-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/sh-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/sh-openbsd/CORE/perly.h
 ./usr/libdata/perl5/sh-openbsd/CORE/pp.h
@@ -80,10 +81,13 @@
 ./usr/libdata/perl5/sh-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/sh-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/sh-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/sh-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/sh-openbsd/CORE/regexp.h
+./usr/libdata/perl5/sh-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/sh-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/sh-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/sh-openbsd/CORE/scope.h
+./usr/libdata/perl5/sh-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/sh-openbsd/CORE/sv.h
 ./usr/libdata/perl5/sh-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/sh-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.loongson
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.loongson,v
retrieving revision 1.481
diff -u -p -r1.481 md.loongson
--- distrib/sets//lists/base/md.loongson	26 Jan 2024 18:57:07 -0000	1.481
+++ distrib/sets//lists/base/md.loongson	21 Feb 2024 15:53:45 -0000
@@ -73,6 +73,7 @@
 ./usr/libdata/perl5/mips64el-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/mips64el-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/perly.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/pp.h
@@ -81,10 +82,13 @@
 ./usr/libdata/perl5/mips64el-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/mips64el-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/regexp.h
+./usr/libdata/perl5/mips64el-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/scope.h
+./usr/libdata/perl5/mips64el-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/sv.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/mips64el-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.luna88k
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.luna88k,v
retrieving revision 1.689
diff -u -p -r1.689 md.luna88k
--- distrib/sets//lists/base/md.luna88k	18 Feb 2024 00:02:52 -0000	1.689
+++ distrib/sets//lists/base/md.luna88k	21 Feb 2024 15:53:45 -0000
@@ -71,6 +71,7 @@
 ./usr/libdata/perl5/m88k-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/m88k-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/perly.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/pp.h
@@ -79,10 +80,13 @@
 ./usr/libdata/perl5/m88k-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/m88k-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/regexp.h
+./usr/libdata/perl5/m88k-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/scope.h
+./usr/libdata/perl5/m88k-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/sv.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/m88k-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.macppc
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.macppc,v
retrieving revision 1.1050
diff -u -p -r1.1050 md.macppc
--- distrib/sets//lists/base/md.macppc	26 Jan 2024 18:57:07 -0000	1.1050
+++ distrib/sets//lists/base/md.macppc	21 Feb 2024 15:53:45 -0000
@@ -77,6 +77,7 @@
 ./usr/libdata/perl5/powerpc-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/powerpc-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/perly.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/pp.h
@@ -85,10 +86,13 @@
 ./usr/libdata/perl5/powerpc-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/powerpc-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/regexp.h
+./usr/libdata/perl5/powerpc-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/scope.h
+./usr/libdata/perl5/powerpc-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/sv.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/powerpc-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.octeon
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.octeon,v
retrieving revision 1.331
diff -u -p -r1.331 md.octeon
--- distrib/sets//lists/base/md.octeon	26 Jan 2024 18:57:07 -0000	1.331
+++ distrib/sets//lists/base/md.octeon	21 Feb 2024 15:53:45 -0000
@@ -71,6 +71,7 @@
 ./usr/libdata/perl5/mips64-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/mips64-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/perly.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/pp.h
@@ -79,10 +80,13 @@
 ./usr/libdata/perl5/mips64-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/mips64-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/regexp.h
+./usr/libdata/perl5/mips64-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/scope.h
+./usr/libdata/perl5/mips64-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/sv.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/mips64-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.powerpc64
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.powerpc64,v
retrieving revision 1.20
diff -u -p -r1.20 md.powerpc64
--- distrib/sets//lists/base/md.powerpc64	26 Jan 2024 18:57:07 -0000	1.20
+++ distrib/sets//lists/base/md.powerpc64	21 Feb 2024 15:53:45 -0000
@@ -73,6 +73,7 @@
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/powerpc64-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/perly.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/pp.h
@@ -81,10 +82,13 @@
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/powerpc64-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/regexp.h
+./usr/libdata/perl5/powerpc64-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/scope.h
+./usr/libdata/perl5/powerpc64-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/sv.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/powerpc64-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.riscv64
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.riscv64,v
retrieving revision 1.12
diff -u -p -r1.12 md.riscv64
--- distrib/sets//lists/base/md.riscv64	26 Jan 2024 18:57:07 -0000	1.12
+++ distrib/sets//lists/base/md.riscv64	21 Feb 2024 15:53:45 -0000
@@ -73,6 +73,7 @@
 ./usr/libdata/perl5/riscv64-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/riscv64-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/perly.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/pp.h
@@ -81,10 +82,13 @@
 ./usr/libdata/perl5/riscv64-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/riscv64-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/regexp.h
+./usr/libdata/perl5/riscv64-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/scope.h
+./usr/libdata/perl5/riscv64-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/sv.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/riscv64-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/md.sparc64
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/md.sparc64,v
retrieving revision 1.1051
diff -u -p -r1.1051 md.sparc64
--- distrib/sets//lists/base/md.sparc64	18 Feb 2024 00:02:52 -0000	1.1051
+++ distrib/sets//lists/base/md.sparc64	21 Feb 2024 15:53:45 -0000
@@ -84,6 +84,7 @@
 ./usr/libdata/perl5/sparc64-openbsd/CORE/perlio.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/perliol.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/perlsdio.h
+./usr/libdata/perl5/sparc64-openbsd/CORE/perlstatic.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/perlvars.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/perly.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/pp.h
@@ -92,10 +93,13 @@
 ./usr/libdata/perl5/sparc64-openbsd/CORE/reentr.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/regcharclass.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/regcomp.h
+./usr/libdata/perl5/sparc64-openbsd/CORE/regcomp_internal.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/regexp.h
+./usr/libdata/perl5/sparc64-openbsd/CORE/reginline.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/regnodes.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/sbox32_hash.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/scope.h
+./usr/libdata/perl5/sparc64-openbsd/CORE/scope_types.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/sv.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/sv_inline.h
 ./usr/libdata/perl5/sparc64-openbsd/CORE/syscall_emulator.h
Index: distrib/sets//lists/base/mi
===================================================================
RCS file: /cvs/src/distrib/sets/lists/base/mi,v
retrieving revision 1.1119
diff -u -p -r1.1119 mi
--- distrib/sets//lists/base/mi	17 Feb 2024 23:33:52 -0000	1.1119
+++ distrib/sets//lists/base/mi	21 Feb 2024 15:53:45 -0000
@@ -764,7 +764,7 @@
 ./usr/lib/libpanel.so.7.0
 ./usr/lib/libpanelw.so.7.0
 ./usr/lib/libpcap.so.9.0
-./usr/lib/libperl.so.23.0
+./usr/lib/libperl.so.24.0
 ./usr/lib/libpthread.so.27.1
 ./usr/lib/libradius.so.1.0
 ./usr/lib/libreadline.so.5.0
@@ -1092,8 +1092,6 @@
 ./usr/libdata/perl5/Memoize.pm
 ./usr/libdata/perl5/Memoize/AnyDBM_File.pm
 ./usr/libdata/perl5/Memoize/Expire.pm
-./usr/libdata/perl5/Memoize/ExpireFile.pm
-./usr/libdata/perl5/Memoize/ExpireTest.pm
 ./usr/libdata/perl5/Memoize/NDBM_File.pm
 ./usr/libdata/perl5/Memoize/SDBM_File.pm
 ./usr/libdata/perl5/Memoize/Storable.pm
@@ -1671,6 +1669,9 @@
 ./usr/libdata/perl5/pod/perl5361delta.pod
 ./usr/libdata/perl5/pod/perl5362delta.pod
 ./usr/libdata/perl5/pod/perl5363delta.pod
+./usr/libdata/perl5/pod/perl5380delta.pod
+./usr/libdata/perl5/pod/perl5381delta.pod
+./usr/libdata/perl5/pod/perl5382delta.pod
 ./usr/libdata/perl5/pod/perl561delta.pod
 ./usr/libdata/perl5/pod/perl56delta.pod
 ./usr/libdata/perl5/pod/perl581delta.pod
@@ -1695,6 +1696,8 @@
 ./usr/libdata/perl5/pod/perlbs2000.pod
 ./usr/libdata/perl5/pod/perlcall.pod
 ./usr/libdata/perl5/pod/perlcheat.pod
+./usr/libdata/perl5/pod/perlclass.pod
+./usr/libdata/perl5/pod/perlclassguts.pod
 ./usr/libdata/perl5/pod/perlclib.pod
 ./usr/libdata/perl5/pod/perlcn.pod
 ./usr/libdata/perl5/pod/perlcommunity.pod
@@ -1825,6 +1828,7 @@
 ./usr/libdata/perl5/pod/perlxstypemap.pod
 ./usr/libdata/perl5/sigtrap.pm
 ./usr/libdata/perl5/sort.pm
+./usr/libdata/perl5/stable.pm
 ./usr/libdata/perl5/strict.pm
 ./usr/libdata/perl5/subs.pm
 ./usr/libdata/perl5/unicore
@@ -1835,6 +1839,7 @@
 ./usr/libdata/perl5/unicore/Name.pm
 ./usr/libdata/perl5/unicore/NamedSequences.txt
 ./usr/libdata/perl5/unicore/SpecialCasing.txt
+./usr/libdata/perl5/unicore/TestNorm.pl
 ./usr/libdata/perl5/unicore/To
 ./usr/libdata/perl5/unicore/To/Age.pl
 ./usr/libdata/perl5/unicore/To/Bc.pl
@@ -1885,6 +1890,7 @@
 ./usr/libdata/perl5/unicore/lib/Age/V120.pl
 ./usr/libdata/perl5/unicore/lib/Age/V130.pl
 ./usr/libdata/perl5/unicore/lib/Age/V140.pl
+./usr/libdata/perl5/unicore/lib/Age/V150.pl
 ./usr/libdata/perl5/unicore/lib/Age/V20.pl
 ./usr/libdata/perl5/unicore/lib/Age/V30.pl
 ./usr/libdata/perl5/unicore/lib/Age/V31.pl
@@ -2077,6 +2083,7 @@
 ./usr/libdata/perl5/unicore/lib/In/12_1.pl
 ./usr/libdata/perl5/unicore/lib/In/13_0.pl
 ./usr/libdata/perl5/unicore/lib/In/14_0.pl
+./usr/libdata/perl5/unicore/lib/In/15_0.pl
 ./usr/libdata/perl5/unicore/lib/In/2_0.pl
 ./usr/libdata/perl5/unicore/lib/In/2_1.pl
 ./usr/libdata/perl5/unicore/lib/In/3_0.pl
@@ -2119,7 +2126,9 @@
 ./usr/libdata/perl5/unicore/lib/InSC/Consona6.pl
 ./usr/libdata/perl5/unicore/lib/InSC/Consona7.pl
 ./usr/libdata/perl5/unicore/lib/InSC/Consona8.pl
+./usr/libdata/perl5/unicore/lib/InSC/Consona9.pl
 ./usr/libdata/perl5/unicore/lib/InSC/Consonan.pl
+./usr/libdata/perl5/unicore/lib/InSC/Geminati.pl
 ./usr/libdata/perl5/unicore/lib/InSC/Invisibl.pl
 ./usr/libdata/perl5/unicore/lib/InSC/Nukta.pl
 ./usr/libdata/perl5/unicore/lib/InSC/Number.pl
Index: distrib/sets//lists/man/mi
===================================================================
RCS file: /cvs/src/distrib/sets/lists/man/mi,v
retrieving revision 1.1713
diff -u -p -r1.1713 mi
--- distrib/sets//lists/man/mi	15 Feb 2024 15:08:00 -0000	1.1713
+++ distrib/sets//lists/man/mi	21 Feb 2024 15:53:45 -0000
@@ -255,6 +255,9 @@
 ./usr/share/man/man1/perl5361delta.1
 ./usr/share/man/man1/perl5362delta.1
 ./usr/share/man/man1/perl5363delta.1
+./usr/share/man/man1/perl5380delta.1
+./usr/share/man/man1/perl5381delta.1
+./usr/share/man/man1/perl5382delta.1
 ./usr/share/man/man1/perl561delta.1
 ./usr/share/man/man1/perl56delta.1
 ./usr/share/man/man1/perl581delta.1
@@ -275,6 +278,8 @@
 ./usr/share/man/man1/perlbug.1
 ./usr/share/man/man1/perlcall.1
 ./usr/share/man/man1/perlcheat.1
+./usr/share/man/man1/perlclass.1
+./usr/share/man/man1/perlclassguts.1
 ./usr/share/man/man1/perlclib.1
 ./usr/share/man/man1/perlcommunity.1
 ./usr/share/man/man1/perldata.1
@@ -790,8 +795,6 @@
 ./usr/share/man/man3p/Memoize.3p
 ./usr/share/man/man3p/Memoize::AnyDBM_File.3p
 ./usr/share/man/man3p/Memoize::Expire.3p
-./usr/share/man/man3p/Memoize::ExpireFile.3p
-./usr/share/man/man3p/Memoize::ExpireTest.3p
 ./usr/share/man/man3p/Memoize::NDBM_File.3p
 ./usr/share/man/man3p/Memoize::SDBM_File.3p
 ./usr/share/man/man3p/Memoize::Storable.3p
@@ -1118,6 +1121,7 @@
 ./usr/share/man/man3p/re.3p
 ./usr/share/man/man3p/sigtrap.3p
 ./usr/share/man/man3p/sort.3p
+./usr/share/man/man3p/stable.3p
 ./usr/share/man/man3p/strict.3p
 ./usr/share/man/man3p/subs.3p
 ./usr/share/man/man3p/threads.3p